diff --git a/crates/bpf-builder/include/aarch64/vmlinux.h b/crates/bpf-builder/include/aarch64/vmlinux.h index 545efbd9..e38f7d98 120000 --- a/crates/bpf-builder/include/aarch64/vmlinux.h +++ b/crates/bpf-builder/include/aarch64/vmlinux.h @@ -1 +1 @@ -vmlinux_6_5_2.h \ No newline at end of file +vmlinux_6_7_2.h \ No newline at end of file diff --git a/crates/bpf-builder/include/aarch64/vmlinux_6_5_2.h b/crates/bpf-builder/include/aarch64/vmlinux_6_7_2.h similarity index 96% rename from crates/bpf-builder/include/aarch64/vmlinux_6_5_2.h rename to crates/bpf-builder/include/aarch64/vmlinux_6_7_2.h index 0d3174b0..efba59b4 100644 --- a/crates/bpf-builder/include/aarch64/vmlinux_6_5_2.h +++ b/crates/bpf-builder/include/aarch64/vmlinux_6_7_2.h @@ -1,5 +1,5 @@ // File autogenerated with `cargo xtask vmlinux`. DO NOT EDIT MANUALLY! -// Kernel 6.5.2 compiled with clang +// Kernel 6.7.2 compiled with clang-15 #ifndef __VMLINUX_H__ #define __VMLINUX_H__ @@ -8,19 +8,19 @@ #pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record) #endif -enum { - false = 0, - true = 1, +struct obs_kernel_param { + const char *str; + int (*setup_func)(char *); + int early; }; -enum hrtimer_restart { - HRTIMER_NORESTART = 0, - HRTIMER_RESTART = 1, -}; +typedef unsigned long long __u64; -typedef unsigned short umode_t; +typedef __u64 u64; -struct ctl_table; +typedef u64 phys_addr_t; + +typedef unsigned short umode_t; typedef unsigned long __kernel_ulong_t; @@ -28,6 +28,8 @@ typedef __kernel_ulong_t __kernel_size_t; typedef __kernel_size_t size_t; +struct ctl_table; + typedef long long __kernel_loff_t; typedef __kernel_loff_t loff_t; @@ -108,6 +110,35 @@ struct ctl_table_poll { wait_queue_head_t wait; }; +enum { + Root_NFS = 255, + Root_CIFS = 254, + Root_Generic = 253, + Root_RAM0 = 1048576, +}; + +enum { + false = 0, + true = 1, +}; + +typedef unsigned int gfp_t; + +typedef _Bool bool; + +typedef unsigned int __u32; + +typedef __u32 u32; + +typedef u32 __kernel_dev_t; + +typedef __kernel_dev_t dev_t; + +enum hrtimer_restart { + HRTIMER_NORESTART = 0, + HRTIMER_RESTART = 1, +}; + enum pid_type { PIDTYPE_PID = 0, PIDTYPE_TGID = 1, @@ -131,12 +162,6 @@ enum memory_type { MEMORY_DEVICE_PCI_P2PDMA = 5, }; -enum page_entry_size { - PE_SIZE_PTE = 0, - PE_SIZE_PMD = 1, - PE_SIZE_PUD = 2, -}; - enum fault_flag { FAULT_FLAG_WRITE = 1, FAULT_FLAG_MKWRITE = 2, @@ -166,95 +191,9 @@ enum kobj_ns_type { KOBJ_NS_TYPES = 2, }; -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, -}; - -enum print_line_t { - TRACE_TYPE_PARTIAL_LINE = 0, - TRACE_TYPE_HANDLED = 1, - TRACE_TYPE_UNHANDLED = 2, - TRACE_TYPE_NO_CONSUME = 3, -}; - -enum probe_type { - PROBE_DEFAULT_STRATEGY = 0, - PROBE_PREFER_ASYNCHRONOUS = 1, - PROBE_FORCE_SYNCHRONOUS = 2, -}; - -enum dl_dev_state { - DL_DEV_NO_DRIVER = 0, - DL_DEV_PROBING = 1, - DL_DEV_DRIVER_BOUND = 2, - DL_DEV_UNBINDING = 3, -}; - -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, -}; - -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, -}; - -enum device_removable { - DEVICE_REMOVABLE_NOT_SUPPORTED = 0, - DEVICE_REMOVABLE_UNKNOWN = 1, - DEVICE_FIXED = 2, - DEVICE_REMOVABLE = 3, -}; - -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, -}; - -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, +enum freeze_holder { + FREEZE_HOLDER_KERNEL = 1, + FREEZE_HOLDER_USERSPACE = 2, }; enum quota_type { @@ -282,20 +221,6 @@ enum fp_type { FP_STATE_SVE = 2, }; -enum vec_type { - ARM64_VEC_SVE = 0, - ARM64_VEC_SME = 1, - ARM64_VEC_MAX = 2, -}; - -typedef unsigned int __u32; - -typedef __u32 u32; - -typedef unsigned long long __u64; - -typedef __u64 u64; - struct thread_info { unsigned long flags; union { @@ -308,8 +233,6 @@ struct thread_info { u32 cpu; }; -typedef unsigned long uintptr_t; - struct refcount_struct { atomic_t refs; }; @@ -341,6 +264,10 @@ struct rb_node { struct rb_node *rb_left; }; +typedef long long __s64; + +typedef __s64 s64; + struct util_est { unsigned int enqueued; unsigned int ewma; @@ -363,12 +290,16 @@ struct cfs_rq; struct sched_entity { struct load_weight load; struct rb_node run_node; + u64 deadline; + u64 min_deadline; struct list_head group_node; unsigned int on_rq; u64 exec_start; u64 sum_exec_runtime; - u64 vruntime; u64 prev_sum_exec_runtime; + u64 vruntime; + s64 vlag; + u64 slice; u64 nr_migrations; int depth; struct sched_entity *parent; @@ -377,10 +308,6 @@ struct sched_entity { unsigned long runnable_weight; long: 64; long: 64; - long: 64; - long: 64; - long: 64; - long: 64; struct sched_avg avg; }; @@ -394,10 +321,6 @@ struct sched_rt_entity { struct sched_rt_entity *back; }; -typedef long long __s64; - -typedef __s64 s64; - typedef s64 ktime_t; struct timerqueue_node { @@ -651,7 +574,13 @@ struct seqcount_spinlock { typedef struct seqcount_spinlock seqcount_spinlock_t; -struct tlbflush_unmap_batch {}; +struct arch_tlbflush_unmap_batch {}; + +struct tlbflush_unmap_batch { + struct arch_tlbflush_unmap_batch arch; + bool flush_required; + bool writable; +}; struct page; @@ -661,8 +590,6 @@ struct page_frag { __u32 size; }; -typedef unsigned int gfp_t; - struct kmap_ctrl {}; struct timer_list { @@ -762,6 +689,8 @@ struct rcu_node; struct mm_struct; +struct address_space; + struct pid; struct completion; @@ -824,6 +753,8 @@ struct ftrace_ret_stack; struct mem_cgroup; +struct obj_cgroup; + struct gendisk; struct uprobe_task; @@ -839,6 +770,7 @@ struct user_event_mm; struct task_struct { struct thread_info thread_info; unsigned int __state; + unsigned int saved_state; void *stack; refcount_t usage; unsigned int flags; @@ -896,6 +828,7 @@ struct task_struct { struct rb_node pushable_dl_tasks; struct mm_struct *mm; struct mm_struct *active_mm; + struct address_space *faults_disabled_mapping; int exit_state; int exit_code; int exit_signal; @@ -907,6 +840,7 @@ struct task_struct { unsigned int sched_migrated: 1; long: 29; unsigned int sched_remote_wakeup: 1; + unsigned int sched_rt_mutex: 1; unsigned int in_execve: 1; unsigned int in_iowait: 1; unsigned int in_user_fault: 1; @@ -928,7 +862,6 @@ struct task_struct { 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; @@ -1054,6 +987,7 @@ struct task_struct { int memcg_oom_order; unsigned int memcg_nr_pages_over_high; struct mem_cgroup *active_memcg; + struct obj_cgroup *objcg; struct gendisk *throttle_disk; struct uprobe_task *utask; struct kmap_ctrl kmap_ctrl; @@ -1069,7 +1003,6 @@ struct task_struct { struct bpf_run_ctx *bpf_ctx; struct llist_head kretprobe_instances; struct user_event_mm *user_event_mm; - long: 64; struct thread_struct thread; }; @@ -1112,8 +1045,6 @@ struct hrtimer_cpu_base { struct hrtimer_clock_base clock_base[8]; }; -typedef _Bool bool; - struct rq; struct rq_flags; @@ -1125,7 +1056,7 @@ struct sched_class { 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); + void (*wakeup_preempt)(struct rq *, struct task_struct *, int); struct task_struct * (*pick_next_task)(struct rq *); void (*put_prev_task)(struct rq *, struct task_struct *); void (*set_next_task)(struct rq *, struct task_struct *, bool); @@ -1156,8 +1087,8 @@ struct maple_tree { spinlock_t ma_lock; lockdep_map_p ma_external_lock; }; - void __attribute__((btf_type_tag("rcu"))) *ma_root; unsigned int ma_flags; + void __attribute__((btf_type_tag("rcu"))) *ma_root; }; typedef u64 pgdval_t; @@ -1286,11 +1217,20 @@ struct mm_struct { unsigned long numa_scan_offset; int numa_scan_seq; 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 ksm_merging_pages; unsigned long ksm_rmap_items; + unsigned long ksm_zero_pages; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; unsigned long cpu_bitmap[0]; }; @@ -1347,8 +1287,6 @@ struct inode; struct file_operations; -struct address_space; - struct file { union { struct llist_node f_llist; @@ -1437,21 +1375,17 @@ struct pid_namespace { int memfd_noexec_scope; }; -struct uid_gid_extent { - u32 first; - u32 lower_first; - u32 count; -}; +struct nsset; -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 { + 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 *); }; typedef unsigned int __kernel_gid32_t; @@ -1462,76 +1396,44 @@ typedef struct { gid_t val; } kgid_t; -struct ctl_table_root; - -struct ctl_table_set; +typedef struct { + u64 val; +} kernel_cap_t; -struct ctl_dir; +struct user_struct; -struct ctl_node; +struct group_info; -struct ctl_table_header { +struct cred { + atomic_long_t usage; + kuid_t uid; + kgid_t gid; + kuid_t suid; + kgid_t sgid; + kuid_t euid; + kgid_t egid; + kuid_t fsuid; + kgid_t fsgid; + unsigned int securebits; + kernel_cap_t cap_inheritable; + kernel_cap_t cap_permitted; + kernel_cap_t cap_effective; + kernel_cap_t cap_bset; + kernel_cap_t cap_ambient; + unsigned char jit_keyring; + struct key *session_keyring; + struct key *process_keyring; + struct key *thread_keyring; + struct key *request_key_auth; + void *security; + struct user_struct *user; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct group_info *group_info; union { - struct { - struct ctl_table *ctl_table; - int used; - int count; - int nreg; - }; + int non_rcu; 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 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[12]; - 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 *); }; typedef __s64 time64_t; @@ -1672,77 +1574,6 @@ struct key_type { struct lock_class_key lock_class; }; -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[12]; - atomic_long_t rlimit[4]; -}; - -typedef struct { - u64 val; -} 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; @@ -1765,7 +1596,7 @@ struct user_struct { }; struct group_info { - atomic_t usage; + refcount_t usage; int ngroups; kgid_t gid[0]; }; @@ -1835,10 +1666,6 @@ struct dentry { } d_u; }; -typedef u32 __kernel_dev_t; - -typedef __kernel_dev_t dev_t; - struct timespec64 { time64_t tv_sec; long tv_nsec; @@ -1855,11 +1682,11 @@ struct address_space { 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; + struct rw_semaphore i_mmap_rwsem; errseq_t wb_err; spinlock_t private_lock; struct list_head private_list; @@ -1897,9 +1724,9 @@ struct inode { }; dev_t i_rdev; loff_t i_size; - struct timespec64 i_atime; - struct timespec64 i_mtime; - struct timespec64 i_ctime; + struct timespec64 __i_atime; + struct timespec64 __i_mtime; + struct timespec64 __i_ctime; spinlock_t i_lock; unsigned short i_bytes; u8 i_blkbits; @@ -1963,6 +1790,8 @@ struct fiemap_extent_info; struct fileattr; +struct offset_ctx; + struct inode_operations { struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int); const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *); @@ -1981,13 +1810,21 @@ struct inode_operations { 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 (*update_time)(struct inode *, int); int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t); int (*tmpfile)(struct mnt_idmap *, struct inode *, struct file *, umode_t); struct posix_acl * (*get_acl)(struct mnt_idmap *, struct dentry *, int); int (*set_acl)(struct mnt_idmap *, struct dentry *, struct posix_acl *, int); int (*fileattr_set)(struct mnt_idmap *, struct dentry *, struct fileattr *); int (*fileattr_get)(struct dentry *, struct fileattr *); + struct offset_ctx * (*get_offset_ctx)(struct inode *); + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; struct delayed_call { @@ -2045,6 +1882,11 @@ struct kstat { u64 change_cookie; }; +struct offset_ctx { + struct xarray xa; + u32 next_offset; +}; + struct hlist_bl_head { struct hlist_bl_node *first; }; @@ -2095,7 +1937,8 @@ struct percpu_rw_semaphore { }; struct sb_writers { - int frozen; + unsigned short frozen; + unsigned short freeze_holders; struct percpu_rw_semaphore rw_sem[3]; }; @@ -2103,19 +1946,6 @@ typedef struct { __u8 b[16]; } uuid_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; - int id; - atomic_long_t *nr_deferred; -}; - struct list_lru_node; struct list_lru { @@ -2140,10 +1970,14 @@ struct xattr_handler; struct block_device; +struct bdev_handle; + struct backing_dev_info; struct mtd_info; +struct shrinker; + struct workqueue_struct; struct super_block { @@ -2165,10 +1999,11 @@ struct super_block { int s_count; atomic_t s_active; void *s_security; - const struct xattr_handler **s_xattr; + const struct xattr_handler * const *s_xattr; struct hlist_bl_head s_roots; struct list_head s_mounts; struct block_device *s_bdev; + struct bdev_handle *s_bdev_handle; struct backing_dev_info *s_bdi; struct mtd_info *s_mtd; struct hlist_node s_instances; @@ -2187,7 +2022,7 @@ struct super_block { struct mutex s_vfs_rename_mutex; const char *s_subtype; const struct dentry_operations *s_d_op; - struct shrinker s_shrink; + struct shrinker *s_shrink; atomic_long_t s_remove_count; atomic_long_t s_fsnotify_connectors; int s_readonly_remount; @@ -2204,8 +2039,6 @@ struct super_block { 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; @@ -2499,6 +2332,7 @@ struct bin_attribute { struct address_space * (*f_mapping)(); ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); + loff_t (*llseek)(struct file *, struct kobject *, struct bin_attribute *, loff_t, int); int (*mmap)(struct file *, struct kobject *, struct bin_attribute *, struct vm_area_struct *); }; @@ -2539,8 +2373,6 @@ struct address_space_operations { int (*swap_rw)(struct kiocb *, struct iov_iter *); }; -typedef struct page *pgtable_t; - struct page_pool; struct dev_pagemap; @@ -2570,24 +2402,11 @@ struct page { 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; - }; + 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; @@ -2623,6 +2442,16 @@ struct percpu_ref { struct percpu_ref_data *data; }; +struct swait_queue_head { + raw_spinlock_t lock; + struct list_head task_list; +}; + +struct completion { + unsigned int done; + struct swait_queue_head wait; +}; + struct dev_pagemap_ops; struct dev_pagemap { @@ -2684,6 +2513,8 @@ typedef struct { pudval_t pud; } pud_t; +typedef struct page *pgtable_t; + struct vm_fault { struct { struct vm_area_struct *vma; @@ -2766,7 +2597,7 @@ struct vm_operations_struct { 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 (*huge_fault)(struct vm_fault *, unsigned int); vm_fault_t (*map_pages)(struct vm_fault *, unsigned long, unsigned long); unsigned long (*pagesize)(struct vm_area_struct *); vm_fault_t (*page_mkwrite)(struct vm_fault *); @@ -2774,16 +2605,21 @@ struct vm_operations_struct { int (*access)(struct vm_area_struct *, unsigned long, void *, int, int); const char * (*name)(struct vm_area_struct *); int (*set_policy)(struct vm_area_struct *, struct mempolicy *); - struct mempolicy * (*get_policy)(struct vm_area_struct *, unsigned long); + struct mempolicy * (*get_policy)(struct vm_area_struct *, unsigned long, unsigned long *); struct page * (*find_special_page)(struct vm_area_struct *, unsigned long); }; struct vma_numab_state { unsigned long next_scan; - unsigned long next_pid_reset; - unsigned long access_pids[2]; + unsigned long pids_active_reset; + unsigned long pids_active[2]; + int prev_scan_seq; }; +typedef struct { + unsigned long val; +} swp_entry_t; + struct folio { union { struct { @@ -2797,7 +2633,10 @@ struct folio { }; struct address_space *mapping; unsigned long index; - void *private; + union { + void *private; + swp_entry_t swap; + }; atomic_t _mapcount; atomic_t _refcount; unsigned long memcg_data; @@ -2808,8 +2647,7 @@ struct folio { struct { unsigned long _flags_1; unsigned long _head_1; - unsigned char _folio_dtor; - unsigned char _folio_order; + unsigned long _folio_avail; atomic_t _entire_mapcount; atomic_t _nr_pages_mapped; atomic_t _pincount; @@ -2844,7 +2682,10 @@ struct kiocb { void *private; int ki_flags; u16 ki_ioprio; - struct wait_page_queue *ki_waitq; + union { + struct wait_page_queue *ki_waitq; + ssize_t (*dio_complete)(void *); + }; }; struct iovec { @@ -2861,11 +2702,7 @@ struct iov_iter { bool copy_mc; bool nofault; bool data_source; - bool user_backed; - union { - size_t iov_offset; - int last_offset; - }; + size_t iov_offset; union { struct iovec __ubuf_iovec; struct { @@ -2972,6 +2809,7 @@ struct kernfs_ops { ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t); __poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *); int (*mmap)(struct kernfs_open_file *, struct vm_area_struct *); + loff_t (*llseek)(struct kernfs_open_file *, loff_t, int); }; struct kernfs_open_file { @@ -2990,37 +2828,6 @@ struct kernfs_open_file { const struct vm_operations_struct *vm_ops; }; -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 *); -}; - -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 kernfs_open_node { struct callback_head callback_head; atomic_t event; @@ -3275,621 +3082,978 @@ struct tracepoint_func { int prio; }; -struct trace_event_functions; - -struct trace_event { - struct hlist_node node; - int type; - struct trace_event_functions *funcs; +struct error_injection_entry { + unsigned long addr; + int etype; }; -struct trace_event_class; +struct kstatfs; -struct event_filter; +struct dquot; -struct bpf_prog_array; +struct shrink_control; -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 *); +struct super_operations { + struct inode * (*alloc_inode)(struct super_block *); + void (*destroy_inode)(struct inode *); + void (*free_inode)(struct inode *); + void (*dirty_inode)(struct inode *, int); + int (*write_inode)(struct inode *, struct writeback_control *); + int (*drop_inode)(struct inode *); + void (*evict_inode)(struct inode *); + void (*put_super)(struct super_block *); + int (*sync_fs)(struct super_block *, int); + int (*freeze_super)(struct super_block *, enum freeze_holder); + int (*freeze_fs)(struct super_block *); + int (*thaw_super)(struct super_block *, enum freeze_holder); + int (*unfreeze_fs)(struct super_block *); + int (*statfs)(struct dentry *, struct kstatfs *); + int (*remount_fs)(struct super_block *, int *, char *); + void (*umount_begin)(struct super_block *); + int (*show_options)(struct seq_file *, struct dentry *); + int (*show_devname)(struct seq_file *, struct dentry *); + int (*show_path)(struct seq_file *, struct dentry *); + int (*show_stats)(struct seq_file *, struct dentry *); + 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 *); + void (*shutdown)(struct super_block *); }; -struct trace_event_fields; +typedef __kernel_uid32_t projid_t; -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 *); -}; +typedef struct { + projid_t val; +} kprojid_t; -struct trace_event_fields { - const char *type; +struct kqid { 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 *); + kuid_t uid; + kgid_t gid; + kprojid_t projid; }; + enum quota_type type; }; -struct trace_iterator; - -typedef enum print_line_t (*trace_print_func)(struct trace_iterator *, int, struct trace_event *); - -struct trace_event_functions { - trace_print_func trace; - trace_print_func raw; - trace_print_func hex; - trace_print_func binary; +struct 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 seq_buf { - char *buffer; - size_t size; - size_t len; - loff_t readpos; +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 trace_seq { - char buffer[4096]; - struct seq_buf seq; - int full; +struct shrink_control { + gfp_t gfp_mask; + int nid; + unsigned long nr_to_scan; + unsigned long nr_scanned; + struct mem_cgroup *memcg; }; -typedef struct cpumask cpumask_var_t[1]; - -struct trace_array; - -struct tracer; +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 array_buffer; +struct qc_info; -struct ring_buffer_iter; +struct qc_dqblk; -struct trace_entry; +struct qc_state; -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 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 trace_entry { - unsigned short type; - unsigned char flags; - unsigned char preempt_count; - int pid; +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 bpf_prog; - -struct bpf_cgroup_storage; +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 bpf_prog_array_item { - struct bpf_prog *prog; - union { - struct bpf_cgroup_storage *cgroup_storage[2]; - u64 bpf_cookie; - }; +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 bpf_prog_array { - struct callback_head rcu; - struct bpf_prog_array_item items[0]; +struct qc_state { + unsigned int s_incoredqs; + struct qc_type_state s_state[3]; }; -typedef struct { - atomic_long_t a; -} local_t; +struct fid; -typedef struct { - local_t a; -} local64_t; +struct iomap; -struct perf_event_attr { - __u32 type; - __u32 size; - __u64 config; - union { - __u64 sample_period; - __u64 sample_freq; - }; - __u64 sample_type; - __u64 read_format; - __u64 disabled: 1; - __u64 inherit: 1; - __u64 pinned: 1; - __u64 exclusive: 1; - __u64 exclude_user: 1; - __u64 exclude_kernel: 1; - __u64 exclude_hv: 1; - __u64 exclude_idle: 1; - __u64 mmap: 1; - __u64 comm: 1; - __u64 freq: 1; - __u64 inherit_stat: 1; - __u64 enable_on_exec: 1; - __u64 task: 1; - __u64 watermark: 1; - __u64 precise_ip: 2; - __u64 mmap_data: 1; - __u64 sample_id_all: 1; - __u64 exclude_host: 1; - __u64 exclude_guest: 1; - __u64 exclude_callchain_kernel: 1; - __u64 exclude_callchain_user: 1; - __u64 mmap2: 1; - __u64 comm_exec: 1; - __u64 use_clockid: 1; - __u64 context_switch: 1; - __u64 write_backward: 1; - __u64 namespaces: 1; - __u64 ksymbol: 1; - __u64 bpf_event: 1; - __u64 aux_output: 1; - __u64 cgroup: 1; - __u64 text_poke: 1; - __u64 build_id: 1; - __u64 inherit_thread: 1; - __u64 remove_on_exec: 1; - __u64 sigtrap: 1; - __u64 __reserved_1: 26; - union { - __u32 wakeup_events; - __u32 wakeup_watermark; - }; - __u32 bp_type; - union { - __u64 bp_addr; - __u64 kprobe_func; - __u64 uprobe_path; - __u64 config1; - }; - union { - __u64 bp_len; - __u64 kprobe_addr; - __u64 probe_offset; - __u64 config2; - }; - __u64 branch_sample_type; - __u64 sample_regs_user; - __u32 sample_stack_user; - __s32 clockid; - __u64 sample_regs_intr; - __u32 aux_watermark; - __u16 sample_max_stack; - __u16 __reserved_2; - __u32 aux_sample_size; - __u32 __reserved_3; - __u64 sig_data; - __u64 config3; +struct 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 hw_perf_event_extra { - u64 config; - unsigned int reg; - int alloc; - int idx; +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 arch_hw_breakpoint_ctrl { - u32 __reserved: 19; - u32 len: 8; - u32 type: 2; - u32 privilege: 2; - u32 enabled: 1; +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 arch_hw_breakpoint { - u64 address; - u64 trigger; - struct arch_hw_breakpoint_ctrl ctrl; +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 *); }; -struct rhash_head { - struct rhash_head __attribute__((btf_type_tag("rcu"))) *next; -}; +typedef struct { + int val[2]; +} __kernel_fsid_t; -struct rhlist_head { - struct rhash_head rhead; - struct rhlist_head __attribute__((btf_type_tag("rcu"))) *next; -}; +typedef struct fsnotify_mark_connector __attribute__((btf_type_tag("rcu"))) *fsnotify_connp_t; -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; +struct fsnotify_mark_connector { + spinlock_t lock; + unsigned short type; + unsigned short flags; + __kernel_fsid_t fsid; union { - struct { - u64 last_period; - local64_t period_left; - }; - struct { - u64 saved_metric; - u64 saved_slots; - }; + fsnotify_connp_t *obj; + struct fsnotify_mark_connector *destroy_next; }; - u64 interrupts_seq; - u64 interrupts; - u64 freq_time_stamp; - u64 freq_count_stamp; + struct hlist_head list; }; -struct irq_work { - struct __call_single_node node; - void (*func)(struct irq_work *); - struct rcuwait irqwait; +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 perf_addr_filters_head { +struct shrinker { + unsigned long (*count_objects)(struct shrinker *, struct shrink_control *); + unsigned long (*scan_objects)(struct shrinker *, struct shrink_control *); + long batch; + int seeks; + unsigned int flags; + refcount_t refcount; + struct completion done; + struct callback_head rcu; + void *private_data; struct list_head list; - raw_spinlock_t lock; - unsigned int nr_file_filters; + int id; + atomic_long_t *nr_deferred; }; -struct perf_sample_data; +struct list_lru_one { + struct list_head list; + long nr_items; +}; -struct pt_regs; +struct list_lru_node { + spinlock_t lock; + struct list_lru_one lru; + long nr_items; + long: 64; + long: 64; + long: 64; +}; -typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *); +typedef void *fl_owner_t; -struct ftrace_ops; +struct io_comp_batch; -struct ftrace_regs; +struct dir_context; -typedef void (*ftrace_func_t)(unsigned long, unsigned long, struct ftrace_ops *, struct ftrace_regs *); +struct file_lock; -struct ftrace_hash; +struct io_uring_cmd; -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; +struct file_operations { + struct module *owner; + loff_t (*llseek)(struct file *, loff_t, int); + ssize_t (*read)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + ssize_t (*write)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + ssize_t (*read_iter)(struct kiocb *, struct iov_iter *); + ssize_t (*write_iter)(struct kiocb *, struct iov_iter *); + int (*iopoll)(struct kiocb *, struct io_comp_batch *, unsigned int); + int (*iterate_shared)(struct file *, struct dir_context *); + __poll_t (*poll)(struct file *, struct poll_table_struct *); + long (*unlocked_ioctl)(struct file *, unsigned int, unsigned long); + long (*compat_ioctl)(struct file *, unsigned int, unsigned long); + int (*mmap)(struct file *, struct vm_area_struct *); + unsigned long mmap_supported_flags; + int (*open)(struct inode *, struct file *); + int (*flush)(struct file *, fl_owner_t); + int (*release)(struct inode *, struct file *); + int (*fsync)(struct file *, loff_t, loff_t, int); + int (*fasync)(int, struct file *, int); + int (*lock)(struct file *, int, struct file_lock *); + unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); + int (*check_flags)(int); + int (*flock)(struct file *, int, struct file_lock *); + ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); + ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*splice_eof)(struct file *); + int (*setlease)(struct file *, int, struct file_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); }; -typedef int (*ftrace_ops_func_t)(struct ftrace_ops *, enum ftrace_ops_cmd); +typedef bool (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64, unsigned int); -struct ftrace_ops { - ftrace_func_t func; - struct ftrace_ops __attribute__((btf_type_tag("rcu"))) *next; - unsigned long flags; - void *private; - ftrace_func_t saved_func; - struct ftrace_ops_hash local_hash; - struct ftrace_ops_hash *func_hash; - struct ftrace_ops_hash old_hash; - unsigned long trampoline; - unsigned long trampoline_size; - struct list_head list; - ftrace_ops_func_t ops_func; - unsigned long direct_call; +struct dir_context { + filldir_t actor; + loff_t pos; }; -struct pmu; - -struct perf_event_pmu_context; - -struct perf_buffer; - -struct fasync_struct; - -struct perf_addr_filter_range; +struct mm_cid { + u64 time; + int cid; +}; -struct perf_cgroup; +struct kioctx; -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; - __u32 orig_type; +struct kioctx_table { + struct callback_head rcu; + unsigned int nr; + struct kioctx __attribute__((btf_type_tag("rcu"))) *table[0]; }; -struct device; +typedef long long __kernel_time64_t; -struct perf_cpu_pmu_context; +struct __kernel_timespec { + __kernel_time64_t tv_sec; + long long tv_nsec; +}; -struct perf_output_handle; +typedef s32 old_time32_t; -struct pmu { - struct list_head entry; - struct module *module; - struct device *dev; - struct device *parent; - const struct attribute_group **attr_groups; - const struct attribute_group **attr_update; - const char *name; - int type; - int capabilities; - int __attribute__((btf_type_tag("percpu"))) *pmu_disable_count; - struct perf_cpu_pmu_context __attribute__((btf_type_tag("percpu"))) *cpu_pmu_context; - atomic_t exclusive_cnt; - int task_ctx_nr; - int hrtimer_interval_ms; - unsigned int nr_addr_filters; - void (*pmu_enable)(struct pmu *); - void (*pmu_disable)(struct pmu *); - int (*event_init)(struct perf_event *); - void (*event_mapped)(struct perf_event *, struct mm_struct *); - void (*event_unmapped)(struct perf_event *, struct mm_struct *); - int (*add)(struct perf_event *, int); - void (*del)(struct perf_event *, int); - void (*start)(struct perf_event *, int); - void (*stop)(struct perf_event *, int); - void (*read)(struct perf_event *); - void (*start_txn)(struct pmu *, unsigned int); - int (*commit_txn)(struct pmu *); - void (*cancel_txn)(struct pmu *); - int (*event_idx)(struct perf_event *); - void (*sched_task)(struct perf_event_pmu_context *, bool); - struct kmem_cache *task_ctx_cache; - void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *); - void * (*setup_aux)(struct perf_event *, void **, int, bool); - void (*free_aux)(void *); - long (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, unsigned long); - int (*addr_filters_validate)(struct list_head *); - void (*addr_filters_sync)(struct perf_event *); - int (*aux_output_match)(struct perf_event *); - bool (*filter)(struct pmu *, int); - int (*check_period)(struct perf_event *, u64); +struct old_timespec32 { + old_time32_t tv_sec; + s32 tv_nsec; }; -struct dev_links_info { - struct list_head suppliers; - struct list_head consumers; - struct list_head defer_sync; - enum dl_dev_state status; +struct pollfd { + int fd; + short events; + short revents; }; -struct pm_message { - int event; -}; +struct uts_namespace; -typedef struct pm_message pm_message_t; +struct ipc_namespace; -struct wakeup_source; +struct mnt_namespace; -struct wake_irq; +struct net; -struct pm_subsys_data; +struct time_namespace; -struct dev_pm_qos; +struct cgroup_namespace; -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 nsproxy { + refcount_t count; + struct uts_namespace *uts_ns; + struct ipc_namespace *ipc_ns; + struct mnt_namespace *mnt_ns; + struct pid_namespace *pid_ns_for_children; + struct net *net_ns; + struct time_namespace *time_ns; + struct time_namespace *time_ns_for_children; + struct cgroup_namespace *cgroup_ns; }; -struct irq_domain; +struct cpu_itimer { + u64 expires; + u64 incr; +}; -struct msi_device_data; +struct task_cputime_atomic { + atomic64_t utime; + atomic64_t stime; + atomic64_t sum_exec_runtime; +}; -struct dev_msi_info { - struct irq_domain *domain; - struct msi_device_data *data; +struct thread_group_cputimer { + struct task_cputime_atomic cputime_atomic; }; -struct dev_archdata {}; +typedef struct { + seqcount_spinlock_t seqcount; + spinlock_t lock; +} seqlock_t; -struct device_private; +struct rlimit { + __kernel_ulong_t rlim_cur; + __kernel_ulong_t rlim_max; +}; -struct device_type; +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 bus_type; +struct core_state; -struct device_driver; +struct tty_struct; -struct dev_pm_domain; +struct autogroup; + +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; + unsigned int next_posix_timer_id; + struct list_head posix_timers; + struct hrtimer real_timer; + ktime_t it_real_incr; + struct cpu_itimer it[2]; + struct thread_group_cputimer cputimer; + struct posix_cputimers posix_cputimers; + struct pid *pids[4]; + struct pid *tty_old_pgrp; + int leader; + struct tty_struct *tty; + struct autogroup *autogroup; + 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; +}; + +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_cq; + +struct io_context { + atomic_long_t refcount; + atomic_t active_ref; + unsigned short ioprio; + spinlock_t lock; + struct xarray icq_tree; + struct io_cq __attribute__((btf_type_tag("rcu"))) *icq_hint; + struct hlist_head icq_list; + struct work_struct release_work; +}; + +struct request_queue; + +struct io_cq { + struct request_queue *q; + struct io_context *ioc; + union { + struct list_head q_node; + struct kmem_cache *__rcu_icq_cache; + }; + union { + struct hlist_node ioc_node; + struct callback_head __rcu_head; + }; + unsigned int flags; +}; + +typedef int __kernel_timer_t; + +union sigval { + int sival_int; + void __attribute__((btf_type_tag("user"))) *sival_ptr; +}; + +typedef union sigval sigval_t; + +typedef __kernel_long_t __kernel_clock_t; + +union __sifields { + struct { + __kernel_pid_t _pid; + __kernel_uid32_t _uid; + } _kill; + struct { + __kernel_timer_t _tid; + int _overrun; + sigval_t _sigval; + int _sys_private; + } _timer; + struct { + __kernel_pid_t _pid; + __kernel_uid32_t _uid; + sigval_t _sigval; + } _rt; + struct { + __kernel_pid_t _pid; + __kernel_uid32_t _uid; + int _status; + __kernel_clock_t _utime; + __kernel_clock_t _stime; + } _sigchld; + struct { + void __attribute__((btf_type_tag("user"))) *_addr; + union { + int _trapno; + short _addr_lsb; + struct { + char _dummy_bnd[8]; + void __attribute__((btf_type_tag("user"))) *_lower; + void __attribute__((btf_type_tag("user"))) *_upper; + } _addr_bnd; + struct { + char _dummy_pkey[8]; + __u32 _pkey; + } _addr_pkey; + struct { + unsigned long _data; + __u32 _type; + __u32 _flags; + } _perf; + }; + } _sigfault; + struct { + long _band; + int _fd; + } _sigpoll; + struct { + void __attribute__((btf_type_tag("user"))) *_call_addr; + int _syscall; + unsigned int _arch; + } _sigsys; +}; + +struct kernel_siginfo { + struct { + int si_signo; + int si_errno; + int si_code; + union __sifields _sifields; + }; +}; + +struct cgroup_subsys_state; + +struct cgroup; + +struct css_set { + struct cgroup_subsys_state *subsys[14]; + refcount_t refcount; + struct css_set *dom_cset; + struct cgroup *dfl_cgrp; + int nr_tasks; + struct list_head tasks; + struct list_head mg_tasks; + struct list_head dying_tasks; + struct list_head task_iters; + struct list_head e_cset_node[14]; + struct list_head threaded_csets; + struct list_head threaded_csets_node; + struct hlist_node hlist; + struct list_head cgrp_links; + struct list_head mg_src_preload_node; + struct list_head mg_dst_preload_node; + struct list_head mg_node; + struct cgroup *mg_src_cgrp; + struct cgroup *mg_dst_cgrp; + struct css_set *mg_dst_cset; + bool dead; + struct callback_head callback_head; +}; + +struct 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 numa_group { + refcount_t refcount; + spinlock_t lock; + int nr_tasks; + pid_t gid; + int active_nodes; + struct callback_head rcu; + unsigned long total_faults; + unsigned long max_faults_cpu; + unsigned long faults[0]; +}; + +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 long subtime; + unsigned long fp; + unsigned long *retp; +}; + +struct arch_uprobe_task {}; + +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 vm_struct { + struct vm_struct *next; + void *addr; + unsigned long size; + unsigned long flags; + struct page **pages; + unsigned int page_order; + unsigned int nr_pages; + phys_addr_t phys_addr; + const void *caller; +}; + +struct 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; +}; + +typedef bool (*stack_trace_consume_fn)(void *, unsigned long); + +struct user_pt_regs { + __u64 regs[31]; + __u64 sp; + __u64 pc; + __u64 pstate; +}; + +struct pt_regs { + union { + struct user_pt_regs user_regs; + struct { + u64 regs[31]; + u64 sp; + u64 pc; + u64 pstate; + }; + }; + u64 orig_x0; + s32 syscallno; + u32 unused2; + u64 sdei_ttbr1; + u64 pmr_save; + u64 stackframe[2]; + u64 lockdep_hardirqs; + u64 exit_rcu; +}; + +struct return_address_data { + unsigned int level; + void *addr; +}; + +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 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; +}; + +enum dl_dev_state { + DL_DEV_NO_DRIVER = 0, + DL_DEV_PROBING = 1, + DL_DEV_DRIVER_BOUND = 2, + DL_DEV_UNBINDING = 3, +}; + +struct dev_links_info { + struct list_head suppliers; + struct list_head consumers; + struct list_head defer_sync; + enum dl_dev_state status; +}; + +struct pm_message { + int event; +}; + +typedef struct pm_message pm_message_t; + +enum rpm_request { + RPM_REQ_NONE = 0, + RPM_REQ_IDLE = 1, + RPM_REQ_SUSPEND = 2, + RPM_REQ_AUTOSUSPEND = 3, + RPM_REQ_RESUME = 4, +}; + +enum rpm_status { + RPM_INVALID = -1, + RPM_ACTIVE = 0, + RPM_RESUMING = 1, + RPM_SUSPENDED = 2, + RPM_SUSPENDING = 3, +}; + +struct wakeup_source; + +struct wake_irq; + +struct pm_subsys_data; + +struct device; + +struct dev_pm_qos; + +struct dev_pm_info { + pm_message_t power_state; + 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 em_perf_domain; @@ -3969,6 +4133,62 @@ struct device { bool dma_coherent: 1; }; +struct cpu { + int node_id; + int hotpluggable; + struct device dev; +}; + +struct cpuinfo_32bit { + u32 reg_id_dfr0; + u32 reg_id_dfr1; + u32 reg_id_isar0; + u32 reg_id_isar1; + u32 reg_id_isar2; + u32 reg_id_isar3; + u32 reg_id_isar4; + u32 reg_id_isar5; + u32 reg_id_isar6; + u32 reg_id_mmfr0; + u32 reg_id_mmfr1; + u32 reg_id_mmfr2; + u32 reg_id_mmfr3; + u32 reg_id_mmfr4; + u32 reg_id_mmfr5; + u32 reg_id_pfr0; + u32 reg_id_pfr1; + u32 reg_id_pfr2; + u32 reg_mvfr0; + u32 reg_mvfr1; + u32 reg_mvfr2; +}; + +struct cpuinfo_arm64 { + struct cpu cpu; + struct kobject kobj; + u64 reg_ctr; + u64 reg_cntfrq; + u64 reg_dczid; + u64 reg_midr; + u64 reg_revidr; + u64 reg_gmid; + u64 reg_smidr; + u64 reg_id_aa64dfr0; + u64 reg_id_aa64dfr1; + u64 reg_id_aa64isar0; + u64 reg_id_aa64isar1; + u64 reg_id_aa64isar2; + u64 reg_id_aa64mmfr0; + u64 reg_id_aa64mmfr1; + u64 reg_id_aa64mmfr2; + u64 reg_id_aa64mmfr3; + u64 reg_id_aa64pfr0; + u64 reg_id_aa64pfr1; + u64 reg_id_aa64zfr0; + u64 reg_id_aa64smfr0; + struct cpuinfo_32bit aarch32; +}; + struct dev_pm_ops; struct device_type { @@ -4032,6 +4252,12 @@ struct bus_type { 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; @@ -4082,6 +4308,7 @@ enum iommu_cap { IOMMU_CAP_PRE_BOOT_PROTECTION = 2, IOMMU_CAP_ENFORCE_CACHE_COHERENCY = 3, IOMMU_CAP_DEFERRED_FLUSH = 4, + IOMMU_CAP_DIRTY_TRACKING = 5, }; enum iommu_dev_features { @@ -4093,6 +4320,8 @@ typedef unsigned int ioasid_t; struct iommu_domain; +struct iommu_user_data; + struct iommu_device; struct of_phandle_args; @@ -4105,11 +4334,13 @@ struct iommu_domain_ops; struct iommu_ops { bool (*capable)(struct device *, enum iommu_cap); + void * (*hw_info)(struct device *, u32 *, u32 *); struct iommu_domain * (*domain_alloc)(unsigned int); + struct iommu_domain * (*domain_alloc_user)(struct device *, u32, struct iommu_domain *, const struct iommu_user_data *); + struct iommu_domain * (*domain_alloc_paging)(struct device *); 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 *); @@ -4122,6 +4353,9 @@ struct iommu_ops { const struct iommu_domain_ops *default_domain_ops; unsigned long pgsize_bitmap; struct module *owner; + struct iommu_domain *identity_domain; + struct iommu_domain *blocked_domain; + struct iommu_domain *default_domain; }; struct wakeup_source { @@ -4165,6 +4399,7 @@ struct dev_pm_domain { int (*activate)(struct device *); void (*sync)(struct device *); void (*dismiss)(struct device *); + int (*set_performance_state)(struct device *, unsigned int); }; struct em_perf_state; @@ -4192,8 +4427,6 @@ enum dma_data_direction { DMA_NONE = 3, }; -typedef u64 phys_addr_t; - struct sg_table; struct scatterlist; @@ -4239,64 +4472,6 @@ struct device_dma_parameters { unsigned long segment_boundary_mask; }; -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; -}; - -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 class { const char *name; const struct attribute_group **class_groups; @@ -4312,6 +4487,28 @@ struct class { const struct dev_pm_ops *pm; }; +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; @@ -4320,254 +4517,427 @@ struct device_physical_location { 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 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 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; +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, }; -struct perf_event_groups { - struct rb_root tree; - u64 index; +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_PERCPU_CNT_DEAD = 31, + CPUHP_RADIX_DEAD = 32, + CPUHP_PAGE_ALLOC = 33, + CPUHP_NET_DEV_DEAD = 34, + CPUHP_PCI_XGENE_DEAD = 35, + CPUHP_IOMMU_IOVA_DEAD = 36, + CPUHP_LUSTRE_CFS_DEAD = 37, + CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 38, + CPUHP_PADATA_DEAD = 39, + CPUHP_AP_DTPM_CPU_DEAD = 40, + CPUHP_RANDOM_PREPARE = 41, + CPUHP_WORKQUEUE_PREP = 42, + CPUHP_POWER_NUMA_PREPARE = 43, + CPUHP_HRTIMERS_PREPARE = 44, + CPUHP_PROFILE_PREPARE = 45, + CPUHP_X2APIC_PREPARE = 46, + CPUHP_SMPCFD_PREPARE = 47, + CPUHP_RELAY_PREPARE = 48, + CPUHP_SLAB_PREPARE = 49, + CPUHP_MD_RAID5_PREPARE = 50, + CPUHP_RCUTREE_PREP = 51, + CPUHP_CPUIDLE_COUPLED_PREPARE = 52, + CPUHP_POWERPC_PMAC_PREPARE = 53, + CPUHP_POWERPC_MMU_CTX_PREPARE = 54, + CPUHP_XEN_PREPARE = 55, + CPUHP_XEN_EVTCHN_PREPARE = 56, + CPUHP_ARM_SHMOBILE_SCU_PREPARE = 57, + CPUHP_SH_SH3X_PREPARE = 58, + CPUHP_NET_FLOW_PREPARE = 59, + CPUHP_TOPOLOGY_PREPARE = 60, + CPUHP_NET_IUCV_PREPARE = 61, + CPUHP_ARM_BL_PREPARE = 62, + CPUHP_TRACE_RB_PREPARE = 63, + CPUHP_MM_ZS_PREPARE = 64, + CPUHP_MM_ZSWP_MEM_PREPARE = 65, + CPUHP_MM_ZSWP_POOL_PREPARE = 66, + CPUHP_KVM_PPC_BOOK3S_PREPARE = 67, + CPUHP_ZCOMP_PREPARE = 68, + CPUHP_TIMERS_PREPARE = 69, + CPUHP_MIPS_SOC_PREPARE = 70, + CPUHP_BP_PREPARE_DYN = 71, + CPUHP_BP_PREPARE_DYN_END = 91, + CPUHP_BP_KICK_AP = 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_VFP_STARTING = 118, + CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 119, + CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 120, + CPUHP_AP_PERF_ARM_ACPI_STARTING = 121, + CPUHP_AP_PERF_ARM_STARTING = 122, + CPUHP_AP_PERF_RISCV_STARTING = 123, + CPUHP_AP_ARM_L2X0_STARTING = 124, + CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 125, + CPUHP_AP_ARM_ARCH_TIMER_STARTING = 126, + CPUHP_AP_ARM_ARCH_TIMER_EVTSTRM_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_XEN_RUNSTATE_STARTING = 144, + CPUHP_AP_ARM_CORESIGHT_STARTING = 145, + CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 146, + CPUHP_AP_ARM64_ISNDEP_STARTING = 147, + CPUHP_AP_SMPCFD_DYING = 148, + CPUHP_AP_HRTIMERS_DYING = 149, + CPUHP_AP_X86_TBOOT_DYING = 150, + CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 151, + CPUHP_AP_ONLINE = 152, + CPUHP_TEARDOWN_CPU = 153, + CPUHP_AP_ONLINE_IDLE = 154, + CPUHP_AP_HYPERV_ONLINE = 155, + CPUHP_AP_KVM_ONLINE = 156, + CPUHP_AP_SCHED_WAIT_EMPTY = 157, + CPUHP_AP_SMPBOOT_THREADS = 158, + CPUHP_AP_IRQ_AFFINITY_ONLINE = 159, + CPUHP_AP_BLK_MQ_ONLINE = 160, + CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 161, + CPUHP_AP_X86_INTEL_EPB_ONLINE = 162, + CPUHP_AP_PERF_ONLINE = 163, + CPUHP_AP_PERF_X86_ONLINE = 164, + CPUHP_AP_PERF_X86_UNCORE_ONLINE = 165, + CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 166, + CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 167, + CPUHP_AP_PERF_X86_RAPL_ONLINE = 168, + CPUHP_AP_PERF_X86_CQM_ONLINE = 169, + CPUHP_AP_PERF_X86_CSTATE_ONLINE = 170, + CPUHP_AP_PERF_X86_IDXD_ONLINE = 171, + CPUHP_AP_PERF_S390_CF_ONLINE = 172, + CPUHP_AP_PERF_S390_SF_ONLINE = 173, + CPUHP_AP_PERF_ARM_CCI_ONLINE = 174, + CPUHP_AP_PERF_ARM_CCN_ONLINE = 175, + CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 176, + CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 177, + CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 178, + CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 179, + CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 180, + CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 181, + CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 182, + CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 183, + CPUHP_AP_PERF_ARM_L2X0_ONLINE = 184, + CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 185, + CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 186, + CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 187, + CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 188, + CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 189, + CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 190, + CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 191, + CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 192, + CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 193, + CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 194, + CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 195, + CPUHP_AP_PERF_CSKY_ONLINE = 196, + CPUHP_AP_WATCHDOG_ONLINE = 197, + CPUHP_AP_WORKQUEUE_ONLINE = 198, + CPUHP_AP_RANDOM_ONLINE = 199, + CPUHP_AP_RCUTREE_ONLINE = 200, + CPUHP_AP_BASE_CACHEINFO_ONLINE = 201, + CPUHP_AP_ONLINE_DYN = 202, + CPUHP_AP_ONLINE_DYN_END = 232, + CPUHP_AP_MM_DEMOTION_ONLINE = 233, + CPUHP_AP_X86_HPET_ONLINE = 234, + CPUHP_AP_X86_KVM_CLK_ONLINE = 235, + CPUHP_AP_ACTIVE = 236, + CPUHP_ONLINE = 237, }; -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 midr_range { + u32 model; + u32 rv_min; + u32 rv_max; }; -struct perf_output_handle { - struct perf_event *event; - struct perf_buffer *rb; - unsigned long wakeup; - unsigned long size; - u64 aux_flags; +struct arm64_midr_revidr; + +struct arm64_cpu_capabilities { + const char *desc; + u16 capability; + u16 type; + bool (*matches)(const struct arm64_cpu_capabilities *, int); + void (*cpu_enable)(const struct arm64_cpu_capabilities *); union { - void *addr; - unsigned long head; + struct { + struct midr_range midr_range; + const struct arm64_midr_revidr * const fixed_revs; + }; + const struct midr_range *midr_range_list; + struct { + u32 sys_reg; + u8 field_pos; + u8 field_width; + u8 min_field_value; + u8 hwcap_type; + bool sign; + unsigned long hwcap; + }; }; - int page; + const struct arm64_cpu_capabilities *match_list; + const struct cpumask *cpus; }; -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 arm64_midr_revidr { + u32 midr_rv; + u32 revidr_mask; }; -struct perf_addr_filter_range { - unsigned long start; - unsigned long size; +struct static_key_false { + struct static_key key; }; -union perf_sample_weight { - __u64 full; - struct { - __u32 var1_dw; - __u16 var2_w; - __u16 var3_w; - }; -}; +struct arm64_ftr_override; -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 arm64_ftr_bits; -struct perf_regs { - __u64 abi; - struct pt_regs *regs; +struct arm64_ftr_reg { + const char *name; + u64 strict_mask; + u64 user_mask; + u64 sys_val; + u64 user_val; + struct arm64_ftr_override *override; + const struct arm64_ftr_bits *ftr_bits; }; -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 arm64_ftr_override { + u64 val; + u64 mask; }; -struct perf_callchain_entry { - __u64 nr; - __u64 ip[0]; +enum ftr_type { + FTR_EXACT = 0, + FTR_LOWER_SAFE = 1, + FTR_HIGHER_SAFE = 2, + FTR_HIGHER_OR_ZERO_SAFE = 3, }; -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 arm64_ftr_bits { + bool sign; + bool visible; + bool strict; + enum ftr_type type; + u8 shift; + u8 width; + s64 safe_val; }; -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; +typedef struct cpumask cpumask_var_t[1]; + +struct __ftr_reg_entry { + u32 sys_id; + struct arm64_ftr_reg *reg; }; -struct perf_branch_stack { - __u64 nr; - __u64 hw_idx; - struct perf_branch_entry entries[0]; +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); }; -struct user_pt_regs { - __u64 regs[31]; - __u64 sp; - __u64 pc; - __u64 pstate; +struct uid_gid_extent { + u32 first; + u32 lower_first; + u32 count; }; -struct pt_regs { +struct uid_gid_map { + u32 nr_extents; union { - struct user_pt_regs user_regs; + struct uid_gid_extent extent[5]; struct { - u64 regs[31]; - u64 sp; - u64 pc; - u64 pstate; + struct uid_gid_extent *forward; + struct uid_gid_extent *reverse; }; }; - u64 orig_x0; - s32 syscallno; - u32 unused2; - u64 sdei_ttbr1; - u64 pmr_save; - u64 stackframe[2]; - u64 lockdep_hardirqs; - u64 exit_rcu; }; -struct ftrace_regs { - unsigned long regs[9]; - unsigned long direct_tramp; - unsigned long fp; - unsigned long lr; - unsigned long sp; - unsigned long pc; +struct ctl_table_root; + +struct ctl_table_set; + +struct ctl_dir; + +struct ctl_node; + +struct ctl_table_header { + union { + struct { + struct ctl_table *ctl_table; + int ctl_table_size; + int used; + int count; + int nreg; + }; + struct callback_head rcu; + }; + struct completion *unregistering; + struct ctl_table *ctl_table_arg; + struct ctl_table_root *root; + struct ctl_table_set *set; + struct ctl_dir *parent; + struct ctl_node *node; + struct hlist_head inodes; }; -struct ftrace_hash { - unsigned long size_bits; - struct hlist_head *buckets; - unsigned long count; +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 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; - struct callback_head rcu; + 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[12]; + long rlimit_max[4]; +}; + +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[12]; + atomic_long_t rlimit[4]; +}; + +struct cgroup_namespace { + struct ns_common ns; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct css_set *root_cset; }; struct rcu_work { @@ -4576,8 +4946,6 @@ struct rcu_work { struct workqueue_struct *wq; }; -struct cgroup; - struct cgroup_subsys; struct cgroup_subsys_state { @@ -4596,13 +4964,6 @@ struct cgroup_subsys_state { struct cgroup_subsys_state *parent; }; -struct perf_cgroup_info; - -struct perf_cgroup { - struct cgroup_subsys_state css; - struct perf_cgroup_info __attribute__((btf_type_tag("percpu"))) *info; -}; - struct cgroup_file { struct kernfs_node *kn; unsigned long notified_at; @@ -4619,10 +4980,12 @@ 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 bpf_prog_array __attribute__((btf_type_tag("rcu"))) *effective[38]; + struct hlist_head progs[38]; + u8 flags[38]; struct list_head storages; struct bpf_prog_array *inactive; struct percpu_ref refcnt; @@ -4662,10 +5025,10 @@ struct cgroup { u16 subtree_ss_mask; u16 old_subtree_control; u16 old_subtree_ss_mask; - struct cgroup_subsys_state __attribute__((btf_type_tag("rcu"))) *subsys[10]; + struct cgroup_subsys_state __attribute__((btf_type_tag("rcu"))) *subsys[14]; struct cgroup_root *root; struct list_head cset_links; - struct list_head e_csets[10]; + struct list_head e_csets[14]; struct cgroup *dom_cgrp; struct cgroup *old_dom_cgrp; struct cgroup_rstat_cpu __attribute__((btf_type_tag("percpu"))) *rstat_cpu; @@ -4704,23 +5067,29 @@ struct cgroup_rstat_cpu { struct u64_stats_sync bsync; struct cgroup_base_stat bstat; struct cgroup_base_stat last_bstat; + struct cgroup_base_stat subtree_bstat; + struct cgroup_base_stat last_subtree_bstat; struct cgroup *updated_children; struct cgroup *updated_next; }; struct psi_group {}; -struct bpf_local_storage_data; +struct bpf_prog; -struct bpf_local_storage_map; +struct bpf_cgroup_storage; -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 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; - raw_spinlock_t lock; + struct bpf_prog_array_item items[0]; }; struct cgroup_taskset; @@ -4736,6 +5105,7 @@ struct cgroup_subsys { void (*css_reset)(struct cgroup_subsys_state *); void (*css_rstat_flush)(struct cgroup_subsys_state *, int); int (*css_extra_stat_show)(struct seq_file *, struct cgroup_subsys_state *); + int (*css_local_stat_show)(struct seq_file *, struct cgroup_subsys_state *); int (*can_attach)(struct cgroup_taskset *); void (*cancel_attach)(struct cgroup_taskset *); void (*attach)(struct cgroup_taskset *); @@ -4760,31 +5130,6 @@ struct cgroup_subsys { unsigned int depends_on; }; -struct css_set { - struct cgroup_subsys_state *subsys[10]; - 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[10]; - 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 cftype { char name[64]; unsigned long private; @@ -4808,524 +5153,6 @@ struct cftype { __poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *); }; -struct perf_cgroup_info { - u64 time; - u64 timestamp; - u64 timeoffset; - int active; -}; - -struct trace_eval_map { - const char *system; - const char *eval_string; - unsigned long eval_value; -}; - -struct error_injection_entry { - unsigned long addr; - int etype; -}; - -struct kstatfs; - -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 *); - void (*shutdown)(struct super_block *); -}; - -typedef __kernel_uid32_t projid_t; - -typedef struct { - projid_t val; -} kprojid_t; - -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 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 fid; - -struct iomap; - -struct export_operations { - int (*encode_fh)(struct inode *, __u32 *, int *, struct inode *); - struct dentry * (*fh_to_dentry)(struct super_block *, struct fid *, int, int); - struct dentry * (*fh_to_parent)(struct super_block *, struct fid *, int, int); - int (*get_name)(struct dentry *, char *, struct dentry *); - struct dentry * (*get_parent)(struct dentry *); - int (*commit_metadata)(struct inode *); - int (*get_uuid)(struct super_block *, u8 *, u32 *, u64 *); - int (*map_blocks)(struct inode *, loff_t, u64, struct iomap *, bool, u32 *); - int (*commit_blocks)(struct inode *, struct iomap *, int, struct iattr *); - unsigned long flags; -}; - -struct xattr_handler { - const char *name; - const char *prefix; - int flags; - bool (*list)(struct dentry *); - int (*get)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t); - int (*set)(const struct xattr_handler *, struct mnt_idmap *, struct dentry *, struct inode *, const char *, const void *, size_t, int); -}; - -struct quota_format_type { - int qf_fmt_id; - const struct quota_format_ops *qf_ops; - struct module *qf_owner; - struct quota_format_type *qf_next; -}; - -struct quota_format_ops { - int (*check_quota_file)(struct super_block *, int); - int (*read_file_info)(struct super_block *, int); - int (*write_file_info)(struct super_block *, int); - int (*free_file_info)(struct super_block *, int); - int (*read_dqblk)(struct dquot *); - int (*commit_dqblk)(struct dquot *); - int (*release_dqblk)(struct dquot *); - int (*get_next_id)(struct super_block *, struct kqid *); -}; - -typedef struct { - 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 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 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; -}; - -typedef void *fl_owner_t; - -struct io_comp_batch; - -struct dir_context; - -struct file_lock; - -struct io_uring_cmd; - -struct file_operations { - struct module *owner; - loff_t (*llseek)(struct file *, loff_t, int); - ssize_t (*read)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - ssize_t (*write)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - ssize_t (*read_iter)(struct kiocb *, struct iov_iter *); - ssize_t (*write_iter)(struct kiocb *, struct iov_iter *); - int (*iopoll)(struct kiocb *, struct io_comp_batch *, unsigned int); - int (*iterate_shared)(struct file *, struct dir_context *); - __poll_t (*poll)(struct file *, struct poll_table_struct *); - long (*unlocked_ioctl)(struct file *, unsigned int, unsigned long); - long (*compat_ioctl)(struct file *, unsigned int, unsigned long); - int (*mmap)(struct file *, struct vm_area_struct *); - unsigned long mmap_supported_flags; - int (*open)(struct inode *, struct file *); - int (*flush)(struct file *, fl_owner_t); - int (*release)(struct inode *, struct file *); - int (*fsync)(struct file *, loff_t, loff_t, int); - int (*fasync)(int, struct file *, int); - int (*lock)(struct file *, int, struct file_lock *); - unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); - int (*check_flags)(int); - int (*flock)(struct file *, int, struct file_lock *); - ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); - ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); - void (*splice_eof)(struct file *); - int (*setlease)(struct file *, 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); -}; - -typedef bool (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64, unsigned int); - -struct dir_context { - filldir_t actor; - loff_t pos; -}; - -struct mm_cid { - u64 time; - int cid; -}; - -struct kioctx; - -struct kioctx_table { - struct callback_head rcu; - unsigned int nr; - struct kioctx __attribute__((btf_type_tag("rcu"))) *table[0]; -}; - -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 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 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 autogroup; - -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; - unsigned int next_posix_timer_id; - struct list_head posix_timers; - struct hrtimer real_timer; - ktime_t it_real_incr; - struct cpu_itimer it[2]; - struct thread_group_cputimer cputimer; - struct posix_cputimers posix_cputimers; - struct pid *pids[4]; - struct pid *tty_old_pgrp; - int leader; - struct tty_struct *tty; - struct autogroup *autogroup; - 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; @@ -5386,506 +5213,734 @@ struct taskstats { __u64 irq_delay_total; }; -typedef void __signalfn_t(int); - -typedef __signalfn_t __attribute__((btf_type_tag("user"))) *__sighandler_t; - -typedef void __restorefn_t(); - -typedef __restorefn_t __attribute__((btf_type_tag("user"))) *__sigrestore_t; - -struct sigaction { - __sighandler_t sa_handler; - unsigned long sa_flags; - __sigrestore_t sa_restorer; - sigset_t sa_mask; +struct perf_event_groups { + struct rb_root tree; + u64 index; }; -struct k_sigaction { - struct sigaction sa; -}; +typedef struct { + atomic_long_t a; +} local_t; -struct sighand_struct { - spinlock_t siglock; - refcount_t count; - wait_queue_head_t signalfd_wqh; - struct k_sigaction action[64]; +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 io_cq; - -struct io_context { - atomic_long_t refcount; - atomic_t active_ref; - unsigned short ioprio; - spinlock_t lock; - struct xarray icq_tree; - struct io_cq __attribute__((btf_type_tag("rcu"))) *icq_hint; - struct hlist_head icq_list; - struct work_struct release_work; +enum perf_event_state { + PERF_EVENT_STATE_DEAD = -4, + PERF_EVENT_STATE_EXIT = -3, + PERF_EVENT_STATE_ERROR = -2, + PERF_EVENT_STATE_OFF = -1, + PERF_EVENT_STATE_INACTIVE = 0, + PERF_EVENT_STATE_ACTIVE = 1, }; -struct request_queue; +typedef struct { + local_t a; +} local64_t; -struct io_cq { - struct request_queue *q; - struct io_context *ioc; +struct perf_event_attr { + __u32 type; + __u32 size; + __u64 config; union { - struct list_head q_node; - struct kmem_cache *__rcu_icq_cache; + __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 { - struct hlist_node ioc_node; - struct callback_head __rcu_head; + __u64 bp_addr; + __u64 kprobe_func; + __u64 uprobe_path; + __u64 config1; }; - unsigned int flags; + 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 int __kernel_timer_t; +struct hw_perf_event_extra { + u64 config; + unsigned int reg; + int alloc; + int idx; +}; -union sigval { - int sival_int; - void __attribute__((btf_type_tag("user"))) *sival_ptr; +struct arch_hw_breakpoint_ctrl { + u32 __reserved: 19; + u32 len: 8; + u32 type: 2; + u32 privilege: 2; + u32 enabled: 1; }; -typedef union sigval sigval_t; +struct arch_hw_breakpoint { + u64 address; + u64 trigger; + struct arch_hw_breakpoint_ctrl ctrl; +}; -typedef __kernel_long_t __kernel_clock_t; +struct rhash_head { + struct rhash_head __attribute__((btf_type_tag("rcu"))) *next; +}; -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 rhlist_head { + struct rhash_head rhead; + struct rhlist_head __attribute__((btf_type_tag("rcu"))) *next; }; -struct kernel_siginfo { - struct { - int si_signo; - int si_errno; - int si_code; - union __sifields _sifields; +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 robust_list { - struct robust_list __attribute__((btf_type_tag("user"))) *next; +struct irq_work { + struct __call_single_node node; + void (*func)(struct irq_work *); + struct rcuwait irqwait; }; -struct robust_list_head { - struct robust_list list; - long futex_offset; - struct robust_list __attribute__((btf_type_tag("user"))) *list_op_pending; +struct perf_addr_filters_head { + struct list_head list; + raw_spinlock_t lock; + unsigned int nr_file_filters; }; -typedef u32 compat_uptr_t; +struct perf_sample_data; -struct compat_robust_list { - compat_uptr_t next; -}; +typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *); -typedef s32 compat_long_t; +struct ftrace_ops; -struct compat_robust_list_head { - struct compat_robust_list list; - compat_long_t futex_offset; - compat_uptr_t list_op_pending; -}; +struct ftrace_regs; -struct numa_group { - refcount_t refcount; - spinlock_t lock; - int nr_tasks; - pid_t gid; - int active_nodes; - struct callback_head rcu; - unsigned long total_faults; - unsigned long max_faults_cpu; - unsigned long faults[0]; -}; +typedef void (*ftrace_func_t)(unsigned long, unsigned long, struct ftrace_ops *, struct ftrace_regs *); -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_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; }; -struct ftrace_ret_stack { - unsigned long ret; - unsigned long func; - unsigned long long calltime; - unsigned long long subtime; - unsigned long fp; - unsigned long *retp; +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, }; -struct arch_uprobe_task {}; +typedef int (*ftrace_ops_func_t)(struct ftrace_ops *, enum ftrace_ops_cmd); -struct uprobe; +struct ftrace_ops { + ftrace_func_t func; + struct ftrace_ops __attribute__((btf_type_tag("rcu"))) *next; + unsigned long flags; + void *private; + ftrace_func_t saved_func; + struct ftrace_ops_hash local_hash; + struct ftrace_ops_hash *func_hash; + struct ftrace_ops_hash old_hash; + unsigned long trampoline; + unsigned long trampoline_size; + struct list_head list; + ftrace_ops_func_t ops_func; + unsigned long direct_call; +}; -struct return_instance; +struct pmu; -struct uprobe_task { - enum uprobe_task_state state; +struct perf_event_pmu_context; + +struct perf_buffer; + +struct fasync_struct; + +struct perf_addr_filter_range; + +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; + unsigned int group_generation; + struct perf_event *group_leader; + struct pmu *pmu; + void *pmu_private; + enum perf_event_state state; + unsigned int attach_state; + local64_t count; + atomic64_t child_count; + u64 total_time_enabled; + u64 total_time_running; + u64 tstamp; + struct perf_event_attr attr; + u16 header_size; + u16 id_header_size; + u16 read_size; + struct hw_perf_event hw; + struct perf_event_context *ctx; + struct perf_event_pmu_context *pmu_ctx; + atomic_long_t refcount; + atomic64_t child_total_time_enabled; + atomic64_t child_total_time_running; + struct mutex child_mutex; + struct list_head child_list; + struct perf_event *parent; + int oncpu; + int cpu; + struct list_head owner_entry; + struct task_struct *owner; + struct mutex mmap_mutex; + atomic_t mmap_count; + struct perf_buffer *rb; + struct list_head rb_entry; + unsigned long rcu_batches; + int rcu_pending; + wait_queue_head_t waitq; + struct fasync_struct *fasync; + unsigned int pending_wakeup; + unsigned int pending_kill; + unsigned int pending_disable; + unsigned int pending_sigtrap; + unsigned long pending_addr; + struct irq_work pending_irq; + struct callback_head pending_task; + unsigned int pending_work; + atomic_t event_limit; + struct perf_addr_filters_head addr_filters; + struct perf_addr_filter_range *addr_filter_ranges; + unsigned long addr_filters_gen; + struct perf_event *aux_event; + void (*destroy)(struct perf_event *); + struct callback_head callback_head; + struct pid_namespace *ns; + u64 id; + atomic64_t lost_samples; + u64 (*clock)(); + perf_overflow_handler_t overflow_handler; + void *overflow_handler_context; + perf_overflow_handler_t orig_overflow_handler; + struct bpf_prog *prog; + u64 bpf_cookie; + struct trace_event_call *tp_event; + struct event_filter *filter; + struct ftrace_ops ftrace_ops; + struct perf_cgroup *cgrp; + void *security; + struct list_head sb_list; + __u32 orig_type; +}; + +struct perf_cpu_pmu_context; + +struct perf_output_handle; + +struct pmu { + struct list_head entry; + struct module *module; + struct device *dev; + struct device *parent; + const struct attribute_group **attr_groups; + const struct attribute_group **attr_update; + const char *name; + int type; + int capabilities; + int __attribute__((btf_type_tag("percpu"))) *pmu_disable_count; + struct perf_cpu_pmu_context __attribute__((btf_type_tag("percpu"))) *cpu_pmu_context; + atomic_t exclusive_cnt; + int task_ctx_nr; + int hrtimer_interval_ms; + unsigned int nr_addr_filters; + void (*pmu_enable)(struct pmu *); + void (*pmu_disable)(struct pmu *); + int (*event_init)(struct perf_event *); + void (*event_mapped)(struct perf_event *, struct mm_struct *); + void (*event_unmapped)(struct perf_event *, struct mm_struct *); + int (*add)(struct perf_event *, int); + void (*del)(struct perf_event *, int); + void (*start)(struct perf_event *, int); + void (*stop)(struct perf_event *, int); + void (*read)(struct perf_event *); + void (*start_txn)(struct pmu *, unsigned int); + int (*commit_txn)(struct pmu *); + void (*cancel_txn)(struct pmu *); + int (*event_idx)(struct perf_event *); + void (*sched_task)(struct perf_event_pmu_context *, bool); + struct kmem_cache *task_ctx_cache; + void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *); + void * (*setup_aux)(struct perf_event *, void **, int, bool); + void (*free_aux)(void *); + long (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, unsigned long); + int (*addr_filters_validate)(struct list_head *); + void (*addr_filters_sync)(struct perf_event *); + int (*aux_output_match)(struct perf_event *); + bool (*filter)(struct pmu *, int); + int (*check_period)(struct perf_event *, u64); +}; + +struct perf_event_pmu_context { + struct pmu *pmu; + struct perf_event_context *ctx; + struct list_head pmu_ctx_entry; + struct list_head pinned_active; + struct list_head flexible_active; + unsigned int embedded: 1; + unsigned int nr_events; + unsigned int nr_cgroups; + atomic_t refcount; + struct callback_head callback_head; + void *task_ctx_data; + int rotate_necessary; +}; + +struct perf_cpu_pmu_context { + struct perf_event_pmu_context epc; + struct perf_event_pmu_context *task_epc; + struct list_head sched_cb_entry; + int sched_cb_usage; + int active_oncpu; + int exclusive; + raw_spinlock_t hrtimer_lock; + struct hrtimer hrtimer; + ktime_t hrtimer_interval; + unsigned int hrtimer_active; +}; + +struct perf_output_handle { + struct perf_event *event; + struct perf_buffer *rb; + unsigned long wakeup; + unsigned long size; + u64 aux_flags; union { - struct { - struct arch_uprobe_task autask; - unsigned long vaddr; - }; - struct { - struct callback_head dup_xol_work; - unsigned long dup_xol_addr; - }; + void *addr; + unsigned long head; }; - struct uprobe *active_uprobe; - unsigned long xol_vaddr; - struct return_instance *return_instances; - unsigned int depth; + int page; }; -struct return_instance { - struct uprobe *uprobe; - unsigned long func; - unsigned long stack; - unsigned long orig_ret_vaddr; - bool chained; - struct return_instance *next; +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 vm_struct { - struct vm_struct *next; - void *addr; +struct perf_addr_filter_range { + unsigned long start; 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; }; -typedef long (*syscall_fn_t)(const struct pt_regs *); +union perf_sample_weight { + __u64 full; + struct { + __u32 var1_dw; + __u16 var2_w; + __u16 var3_w; + }; +}; -struct obs_kernel_param { - const char *str; - int (*setup_func)(char *); - int early; +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 midr_range { - u32 model; - u32 rv_min; - u32 rv_max; +struct perf_regs { + __u64 abi; + struct pt_regs *regs; }; -enum mitigation_state { - SPECTRE_UNAFFECTED = 0, - SPECTRE_MITIGATED = 1, - SPECTRE_VULNERABLE = 2, +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; }; -enum arm64_hyp_spectre_vector { - HYP_VECTOR_DIRECT = 0, - HYP_VECTOR_SPECTRE_DIRECT = 1, - HYP_VECTOR_INDIRECT = 2, - HYP_VECTOR_SPECTRE_INDIRECT = 3, +struct perf_callchain_entry { + __u64 nr; + __u64 ip[0]; }; -typedef void (*bp_hardening_cb_t)(); +typedef unsigned long (*perf_copy_f)(void *, const void *, unsigned long, unsigned long); -struct bp_hardening_data { - enum arm64_hyp_spectre_vector slot; - bp_hardening_cb_t fn; +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; }; -enum spectre_v4_policy { - SPECTRE_V4_POLICY_MITIGATION_DYNAMIC = 0, - SPECTRE_V4_POLICY_MITIGATION_ENABLED = 1, - SPECTRE_V4_POLICY_MITIGATION_DISABLED = 2, +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 spectre_v4_param { - const char *str; - enum spectre_v4_policy policy; +struct perf_branch_stack { + __u64 nr; + __u64 hw_idx; + struct perf_branch_entry entries[0]; }; -enum writeback_sync_modes { - WB_SYNC_NONE = 0, - WB_SYNC_ALL = 1, +struct ftrace_regs { + unsigned long regs[9]; + unsigned long direct_tramp; + unsigned long fp; + unsigned long lr; + unsigned long sp; + unsigned long pc; }; -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 ftrace_hash { + unsigned long size_bits; + struct hlist_head *buckets; + unsigned long count; + unsigned long flags; + struct callback_head rcu; }; -enum zone_type { - ZONE_DMA = 0, - ZONE_DMA32 = 1, - ZONE_NORMAL = 2, - ZONE_MOVABLE = 3, - __MAX_NR_ZONES = 4, +struct perf_cgroup_info; + +struct perf_cgroup { + struct cgroup_subsys_state css; + struct perf_cgroup_info __attribute__((btf_type_tag("percpu"))) *info; }; -enum bpf_prog_type { - BPF_PROG_TYPE_UNSPEC = 0, - BPF_PROG_TYPE_SOCKET_FILTER = 1, - BPF_PROG_TYPE_KPROBE = 2, - BPF_PROG_TYPE_SCHED_CLS = 3, - BPF_PROG_TYPE_SCHED_ACT = 4, - BPF_PROG_TYPE_TRACEPOINT = 5, - BPF_PROG_TYPE_XDP = 6, - BPF_PROG_TYPE_PERF_EVENT = 7, - BPF_PROG_TYPE_CGROUP_SKB = 8, - BPF_PROG_TYPE_CGROUP_SOCK = 9, - BPF_PROG_TYPE_LWT_IN = 10, - BPF_PROG_TYPE_LWT_OUT = 11, - BPF_PROG_TYPE_LWT_XMIT = 12, - BPF_PROG_TYPE_SOCK_OPS = 13, - BPF_PROG_TYPE_SK_SKB = 14, - BPF_PROG_TYPE_CGROUP_DEVICE = 15, - BPF_PROG_TYPE_SK_MSG = 16, - BPF_PROG_TYPE_RAW_TRACEPOINT = 17, - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18, - BPF_PROG_TYPE_LWT_SEG6LOCAL = 19, - BPF_PROG_TYPE_LIRC_MODE2 = 20, - BPF_PROG_TYPE_SK_REUSEPORT = 21, - BPF_PROG_TYPE_FLOW_DISSECTOR = 22, - BPF_PROG_TYPE_CGROUP_SYSCTL = 23, - BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24, - BPF_PROG_TYPE_CGROUP_SOCKOPT = 25, - BPF_PROG_TYPE_TRACING = 26, - BPF_PROG_TYPE_STRUCT_OPS = 27, - BPF_PROG_TYPE_EXT = 28, - BPF_PROG_TYPE_LSM = 29, - BPF_PROG_TYPE_SK_LOOKUP = 30, - BPF_PROG_TYPE_SYSCALL = 31, - BPF_PROG_TYPE_NETFILTER = 32, +struct perf_cgroup_info { + u64 time; + u64 timestamp; + u64 timeoffset; + int active; }; -enum bpf_attach_type { - BPF_CGROUP_INET_INGRESS = 0, - BPF_CGROUP_INET_EGRESS = 1, - BPF_CGROUP_INET_SOCK_CREATE = 2, - BPF_CGROUP_SOCK_OPS = 3, - BPF_SK_SKB_STREAM_PARSER = 4, - BPF_SK_SKB_STREAM_VERDICT = 5, - BPF_CGROUP_DEVICE = 6, - BPF_SK_MSG_VERDICT = 7, - BPF_CGROUP_INET4_BIND = 8, - BPF_CGROUP_INET6_BIND = 9, - BPF_CGROUP_INET4_CONNECT = 10, - BPF_CGROUP_INET6_CONNECT = 11, - BPF_CGROUP_INET4_POST_BIND = 12, - BPF_CGROUP_INET6_POST_BIND = 13, - BPF_CGROUP_UDP4_SENDMSG = 14, - BPF_CGROUP_UDP6_SENDMSG = 15, - BPF_LIRC_MODE2 = 16, - BPF_FLOW_DISSECTOR = 17, - BPF_CGROUP_SYSCTL = 18, - BPF_CGROUP_UDP4_RECVMSG = 19, - BPF_CGROUP_UDP6_RECVMSG = 20, - BPF_CGROUP_GETSOCKOPT = 21, - BPF_CGROUP_SETSOCKOPT = 22, - BPF_TRACE_RAW_TP = 23, - BPF_TRACE_FENTRY = 24, - BPF_TRACE_FEXIT = 25, - BPF_MODIFY_RETURN = 26, - BPF_LSM_MAC = 27, - BPF_TRACE_ITER = 28, - BPF_CGROUP_INET4_GETPEERNAME = 29, - BPF_CGROUP_INET6_GETPEERNAME = 30, - BPF_CGROUP_INET4_GETSOCKNAME = 31, - BPF_CGROUP_INET6_GETSOCKNAME = 32, - BPF_XDP_DEVMAP = 33, - BPF_CGROUP_INET_SOCK_RELEASE = 34, - BPF_XDP_CPUMAP = 35, - BPF_SK_LOOKUP = 36, - BPF_XDP = 37, - BPF_SK_SKB_VERDICT = 38, - BPF_SK_REUSEPORT_SELECT = 39, - BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40, - BPF_PERF_EVENT = 41, - BPF_TRACE_KPROBE_MULTI = 42, - BPF_LSM_CGROUP = 43, - BPF_STRUCT_OPS = 44, - BPF_NETFILTER = 45, - __MAX_BPF_ATTACH_TYPE = 46, +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; }; -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 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; + struct kobject kobj; + unsigned long _flags; + void *data; }; -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 dev_dma_attr { + DEV_DMA_NOT_SUPPORTED = 0, + DEV_DMA_NON_COHERENT = 1, + DEV_DMA_COHERENT = 2, }; -enum bpf_iter_task_type { - BPF_TASK_ITER_ALL = 0, - BPF_TASK_ITER_TID = 1, - BPF_TASK_ITER_TGID = 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 *); }; -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 fwnode_reference_args { + struct fwnode_handle *fwnode; + unsigned int nargs; + u64 args[8]; }; -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, - BPF_REFCOUNT = 256, +struct fwnode_endpoint { + unsigned int port; + unsigned int id; + const struct fwnode_handle *local_fwnode; }; -enum arm_smccc_conduit { - SMCCC_CONDUIT_NONE = 0, - SMCCC_CONDUIT_SMC = 1, - SMCCC_CONDUIT_HVC = 2, +struct property { + char *name; + int length; + void *value; + struct property *next; + struct bin_attribute attr; }; -enum bhb_mitigation_bits { - BHB_LOOP = 0, - BHB_FW = 1, - BHB_HW = 2, - BHB_INSN = 3, +enum vec_type { + ARM64_VEC_SVE = 0, + ARM64_VEC_SME = 1, + ARM64_VEC_MAX = 2, }; -enum arm64_bp_harden_el1_vectors { - EL1_VECTOR_BHB_LOOP = 0, - EL1_VECTOR_BHB_FW = 1, - EL1_VECTOR_BHB_CLEAR_INSN = 2, - EL1_VECTOR_KPTI = 3, +enum lockdep_ok { + LOCKDEP_STILL_OK = 0, + LOCKDEP_NOW_UNRELIABLE = 1, +}; + +enum aarch64_insn_imm_type { + AARCH64_INSN_IMM_ADR = 0, + AARCH64_INSN_IMM_26 = 1, + AARCH64_INSN_IMM_19 = 2, + AARCH64_INSN_IMM_16 = 3, + AARCH64_INSN_IMM_14 = 4, + AARCH64_INSN_IMM_12 = 5, + AARCH64_INSN_IMM_9 = 6, + AARCH64_INSN_IMM_7 = 7, + AARCH64_INSN_IMM_6 = 8, + AARCH64_INSN_IMM_S = 9, + AARCH64_INSN_IMM_R = 10, + AARCH64_INSN_IMM_N = 11, + AARCH64_INSN_IMM_MAX = 12, }; enum aarch64_insn_register_type { @@ -5898,64 +5953,121 @@ enum aarch64_insn_register_type { AARCH64_INSN_REGTYPE_RS = 6, }; -enum aarch64_insn_variant { - AARCH64_INSN_VARIANT_32BIT = 0, - AARCH64_INSN_VARIANT_64BIT = 1, +enum mitigation_state { + SPECTRE_UNAFFECTED = 0, + SPECTRE_MITIGATED = 1, + SPECTRE_VULNERABLE = 2, }; -enum aarch64_insn_movewide_type { - AARCH64_INSN_MOVEWIDE_ZERO = 0, - AARCH64_INSN_MOVEWIDE_KEEP = 1, - AARCH64_INSN_MOVEWIDE_INVERSE = 2, +enum kvm_mode { + KVM_MODE_DEFAULT = 0, + KVM_MODE_PROTECTED = 1, + KVM_MODE_NV = 2, + KVM_MODE_NONE = 3, }; -enum aarch64_insn_register { - AARCH64_INSN_REG_0 = 0, - AARCH64_INSN_REG_1 = 1, - AARCH64_INSN_REG_2 = 2, - AARCH64_INSN_REG_3 = 3, - AARCH64_INSN_REG_4 = 4, - AARCH64_INSN_REG_5 = 5, - AARCH64_INSN_REG_6 = 6, - AARCH64_INSN_REG_7 = 7, - AARCH64_INSN_REG_8 = 8, - AARCH64_INSN_REG_9 = 9, - AARCH64_INSN_REG_10 = 10, - AARCH64_INSN_REG_11 = 11, - AARCH64_INSN_REG_12 = 12, - AARCH64_INSN_REG_13 = 13, - AARCH64_INSN_REG_14 = 14, - AARCH64_INSN_REG_15 = 15, - AARCH64_INSN_REG_16 = 16, - AARCH64_INSN_REG_17 = 17, - AARCH64_INSN_REG_18 = 18, - AARCH64_INSN_REG_19 = 19, - AARCH64_INSN_REG_20 = 20, - AARCH64_INSN_REG_21 = 21, - AARCH64_INSN_REG_22 = 22, - AARCH64_INSN_REG_23 = 23, - AARCH64_INSN_REG_24 = 24, - AARCH64_INSN_REG_25 = 25, - AARCH64_INSN_REG_26 = 26, - AARCH64_INSN_REG_27 = 27, - AARCH64_INSN_REG_28 = 28, - AARCH64_INSN_REG_29 = 29, - AARCH64_INSN_REG_FP = 29, - AARCH64_INSN_REG_30 = 30, - AARCH64_INSN_REG_LR = 30, - AARCH64_INSN_REG_ZR = 31, - AARCH64_INSN_REG_SP = 31, +enum arm64_bp_harden_el1_vectors { + EL1_VECTOR_BHB_LOOP = 0, + EL1_VECTOR_BHB_FW = 1, + EL1_VECTOR_BHB_CLEAR_INSN = 2, + EL1_VECTOR_KPTI = 3, }; -enum aarch64_insn_logic_type { - AARCH64_INSN_LOGIC_AND = 0, - AARCH64_INSN_LOGIC_BIC = 1, - AARCH64_INSN_LOGIC_ORR = 2, - AARCH64_INSN_LOGIC_ORN = 3, - AARCH64_INSN_LOGIC_EOR = 4, - AARCH64_INSN_LOGIC_EON = 5, - AARCH64_INSN_LOGIC_AND_SETFLAGS = 6, - AARCH64_INSN_LOGIC_BIC_SETFLAGS = 7, +enum fixed_addresses { + FIX_HOLE = 0, + FIX_FDT_END = 1, + FIX_FDT = 514, + FIX_EARLYCON_MEM_BASE = 515, + FIX_TEXT_POKE0 = 516, + FIX_APEI_GHES_IRQ = 517, + FIX_APEI_GHES_SEA = 518, + FIX_ENTRY_TRAMP_TEXT4 = 519, + FIX_ENTRY_TRAMP_TEXT3 = 520, + FIX_ENTRY_TRAMP_TEXT2 = 521, + FIX_ENTRY_TRAMP_TEXT1 = 522, + __end_of_permanent_fixed_addresses = 523, + FIX_BTMAP_END = 523, + FIX_BTMAP_BEGIN = 970, + FIX_PTE = 971, + FIX_PMD = 972, + FIX_PUD = 973, + FIX_PGD = 974, + __end_of_fixed_addresses = 975, +}; + +enum pageflags { + PG_locked = 0, + PG_writeback = 1, + PG_referenced = 2, + PG_uptodate = 3, + PG_dirty = 4, + PG_lru = 5, + PG_head = 6, + PG_waiters = 7, + PG_active = 8, + PG_workingset = 9, + PG_error = 10, + PG_slab = 11, + PG_owner_priv_1 = 12, + PG_arch_1 = 13, + PG_reserved = 14, + PG_private = 15, + PG_private_2 = 16, + PG_mappedtodisk = 17, + PG_reclaim = 18, + PG_swapbacked = 19, + PG_unevictable = 20, + PG_mlocked = 21, + PG_hwpoison = 22, + PG_arch_2 = 23, + PG_arch_3 = 24, + __NR_PAGEFLAGS = 25, + PG_readahead = 18, + PG_anon_exclusive = 17, + PG_checked = 12, + PG_swapcache = 12, + PG_fscache = 16, + PG_pinned = 12, + PG_savepinned = 4, + PG_foreign = 12, + PG_xen_remapped = 12, + PG_isolated = 18, + PG_reported = 3, + PG_vmemmap_self_hosted = 12, + PG_has_hwpoisoned = 10, + PG_hugetlb = 8, + PG_large_rmappable = 9, +}; + +enum { + CAP_HWCAP = 1, + CAP_COMPAT_HWCAP = 2, + CAP_COMPAT_HWCAP2 = 3, +}; + +typedef unsigned long uintptr_t; + +typedef int (*cmp_func_t)(const void *, const void *); + +typedef int (*cpu_stop_fn_t)(void *); + +typedef void ttbr_replace_func(phys_addr_t); + +typedef void kpti_remap_fn(int, int, phys_addr_t, unsigned long); + +struct alt_instr; + +struct alt_region { + struct alt_instr *begin; + struct alt_instr *end; +}; + +struct alt_instr { + s32 orig_offset; + s32 alt_offset; + u16 cpucap; + u8 orig_len; + u8 alt_len; }; enum aarch64_insn_hint_cr_op { @@ -5989,2542 +6101,2764 @@ enum aarch64_insn_hint_cr_op { AARCH64_INSN_HINT_BTIJC = 1216, }; -enum fixed_addresses { - FIX_HOLE = 0, - FIX_FDT_END = 1, - FIX_FDT = 514, - FIX_EARLYCON_MEM_BASE = 515, - FIX_TEXT_POKE0 = 516, - FIX_APEI_GHES_IRQ = 517, - FIX_APEI_GHES_SEA = 518, - FIX_ENTRY_TRAMP_TEXT4 = 519, - FIX_ENTRY_TRAMP_TEXT3 = 520, - FIX_ENTRY_TRAMP_TEXT2 = 521, - FIX_ENTRY_TRAMP_TEXT1 = 522, - __end_of_permanent_fixed_addresses = 523, - FIX_BTMAP_END = 523, - FIX_BTMAP_BEGIN = 970, - FIX_PTE = 971, - FIX_PMD = 972, - FIX_PUD = 973, - FIX_PGD = 974, - __end_of_fixed_addresses = 975, -}; - -struct swap_iocb; +typedef __u64 Elf64_Off; -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; - struct swap_iocb **swap_plug; - struct bdi_writeback *wb; - struct inode *inode; - int wb_id; - int wb_lcand_id; - int wb_tcand_id; - size_t wb_bytes; - size_t wb_lcand_bytes; - size_t wb_tcand_bytes; +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; }; -struct fprop_local_percpu { - struct percpu_counter events; - unsigned int period; - raw_spinlock_t lock; +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 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 percpu_ref refcnt; - struct fprop_local_percpu memcg_completions; - struct cgroup_subsys_state *memcg_css; - struct cgroup_subsys_state *blkcg_css; - struct list_head memcg_node; - struct list_head blkcg_node; - struct list_head b_attached; - struct list_head offline_node; - union { - struct work_struct release_work; - struct callback_head rcu; - }; -}; +typedef struct elf64_shdr Elf64_Shdr; -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; - struct xarray cgwb_tree; - struct mutex cgwb_release_mutex; - struct rw_semaphore wb_switch_rwsem; - wait_queue_head_t wb_waitq; - struct device *dev; - char dev_name[64]; - struct device *owner; - struct timer_list laptop_mode_wb_timer; - struct dentry *debug_dir; +typedef struct elf64_hdr Elf64_Ehdr; + +typedef void (*alternative_cb_t)(struct alt_instr *, __le32 *, __le32 *, int); + +enum cache_type { + CACHE_TYPE_NOCACHE = 0, + CACHE_TYPE_INST = 1, + CACHE_TYPE_DATA = 2, + CACHE_TYPE_SEPARATE = 3, + CACHE_TYPE_UNIFIED = 4, }; -struct sock_filter { - __u16 code; - __u8 jt; - __u8 jf; - __u32 k; +struct cacheinfo; + +struct cpu_cacheinfo { + struct cacheinfo *info_list; + unsigned int per_cpu_data_slice_size; + unsigned int num_levels; + unsigned int num_leaves; + bool cpu_map_populated; + bool early_ci_levels; }; -typedef short __s16; +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 bpf_insn { - __u8 code; - __u8 dst_reg: 4; - __u8 src_reg: 4; - __s16 off; - __s32 imm; +struct secondary_data { + struct task_struct *task; + long status; }; -struct bpf_prog_stats; +typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *); -struct bpf_prog_aux; +struct poll_table_struct { + poll_queue_proc _qproc; + __poll_t _key; +}; -struct sock_fprog_kern; +struct trace_eval_map { + const char *system; + const char *eval_string; + unsigned long eval_value; +}; -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]; - }; - }; +struct cdev { + struct kobject kobj; + struct module *owner; + const struct file_operations *ops; + struct list_head list; + dev_t dev; + unsigned int count; }; -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 msi_dev_domain { + struct xarray store; + struct irq_domain *domain; }; -struct bpf_ksym { - unsigned long start; - unsigned long end; - char name[512]; - struct list_head lnode; - struct latch_tree_node tnode; - bool prog; -}; +struct platform_msi_priv_data; -struct btf; +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 bpf_ctx_arg_aux; +struct msi_desc; -struct bpf_trampoline; +struct irq_common_data { + unsigned int state_use_accessors; + unsigned int node; + void *handler_data; + struct msi_desc *msi_desc; + cpumask_var_t affinity; + cpumask_var_t effective_affinity; + unsigned int ipi_offset; +}; -struct btf_type; +struct irq_chip; -struct bpf_jit_poke_descriptor; +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 bpf_kfunc_desc_tab; +struct irq_desc; -struct bpf_kfunc_btf_tab; +typedef void (*irq_flow_handler_t)(struct irq_desc *); -struct bpf_prog_ops; +struct irqaction; -struct bpf_map; +struct irq_affinity_notify; -struct btf_mod_pair; +struct proc_dir_entry; -struct bpf_prog_offload; +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; + unsigned long threads_oneshot; + atomic_t threads_active; + wait_queue_head_t wait_for_threads; + unsigned int nr_actions; + unsigned int no_suspend_depth; + unsigned int cond_suspend_depth; + unsigned int force_resume_depth; + struct proc_dir_entry *dir; + struct callback_head rcu; + struct kobject kobj; + struct mutex request_mutex; + int parent_irq; + struct module *owner; + const char *name; + struct hlist_node resend_node; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; -struct bpf_func_info; +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; + }; +}; -struct bpf_func_info_aux; +union msi_domain_cookie { + u64 value; + void *ptr; + void *iobase; +}; -struct bpf_line_info; +union msi_instance_cookie { + u64 value; + void *ptr; +}; -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; - struct module *mod; - u32 num_exentries; - struct exception_table_entry *extable; - union { - struct work_struct work; - struct callback_head rcu; - }; +struct msi_desc_data { + union msi_domain_cookie dcookie; + union msi_instance_cookie icookie; }; -struct bpf_ctx_arg_aux { - u32 offset; - enum bpf_reg_type reg_type; - u32 btf_id; +struct arch_msi_msg_addr_lo { + u32 address_lo; }; -struct btf_func_model { - u8 ret_size; - u8 ret_flags; - u8 nr_args; - u8 arg_size[12]; - u8 arg_flags[12]; +typedef struct arch_msi_msg_addr_lo arch_msi_msg_addr_lo_t; + +struct arch_msi_msg_addr_hi { + u32 address_hi; }; -struct bpf_tramp_image; +typedef struct arch_msi_msg_addr_hi arch_msi_msg_addr_hi_t; -struct bpf_trampoline { - struct hlist_node hlist; - struct ftrace_ops *fops; - struct mutex mutex; - refcount_t refcnt; - u32 flags; - u64 key; - struct { - struct btf_func_model model; - void *addr; - bool ftrace_managed; - } func; - struct bpf_prog *extension_prog; - struct hlist_head progs_hlist[3]; - int progs_cnt[3]; - struct bpf_tramp_image *cur_image; - struct module *mod; +struct arch_msi_msg_data { + u32 data; }; -struct bpf_tramp_image { - void *image; - struct bpf_ksym ksym; - struct percpu_ref pcref; - void *ip_after_call; - void *ip_epilogue; +typedef struct arch_msi_msg_data arch_msi_msg_data_t; + +struct msi_msg { union { - struct callback_head rcu; - struct work_struct work; + u32 address_lo; + arch_msi_msg_addr_lo_t arch_addr_lo; }; -}; - -struct btf_type { - __u32 name_off; - __u32 info; union { - __u32 size; - __u32 type; + u32 address_hi; + arch_msi_msg_addr_hi_t arch_addr_hi; + }; + union { + u32 data; + arch_msi_msg_data_t arch_data; }; }; -struct bpf_jit_poke_descriptor { - void *tailcall_target; - void *tailcall_bypass; - void *bypass_addr; - void *aux; +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 { - struct bpf_map *map; - u32 key; - } tail_call; + struct pci_msi_desc pci; + struct msi_desc_data data; }; - bool tailcall_target_stable; - u8 adj_off; - u16 reason; - u32 insn_idx; }; -struct bpf_map_ops; +struct irq_affinity_desc { + struct cpumask mask; + unsigned int is_managed: 1; +}; -struct btf_record; +enum irqchip_irq_state { + IRQCHIP_STATE_PENDING = 0, + IRQCHIP_STATE_ACTIVE = 1, + IRQCHIP_STATE_MASKED = 2, + IRQCHIP_STATE_LINE_LEVEL = 3, +}; -struct obj_cgroup; +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 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; - struct obj_cgroup *objcg; - char name[16]; - long: 64; +enum irqreturn { + IRQ_NONE = 0, + IRQ_HANDLED = 1, + IRQ_WAKE_THREAD = 2, +}; + +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; - 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: 64; long: 64; long: 64; }; -typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64); - -union bpf_attr; +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 bpf_verifier_env; +struct acpi_subtable_header { + u8 type; + u8 length; +}; -struct bpf_func_state; +struct acpi_madt_generic_interrupt { + struct acpi_subtable_header header; + u16 reserved; + u32 cpu_interface_number; + u32 uid; + u32 flags; + u32 parking_version; + u32 performance_interrupt; + u64 parked_address; + u64 base_address; + u64 gicv_base_address; + u64 gich_base_address; + u32 vgic_interrupt; + u64 gicr_base_address; + u64 arm_mpidr; + u8 efficiency_class; + u8 reserved2[1]; + u16 spe_interrupt; + u16 trbe_interrupt; +} __attribute__((packed)); -struct bpf_iter_seq_info; +enum ipi_msg_type { + IPI_RESCHEDULE = 0, + IPI_CALL_FUNC = 1, + IPI_CPU_STOP = 2, + IPI_CPU_CRASH_STOP = 3, + IPI_TIMER = 4, + IPI_IRQ_WORK = 5, + NR_IPI = 6, + IPI_CPU_BACKTRACE = 6, + IPI_KGDB_ROUNDUP = 7, + MAX_IPI = 8, +}; -struct bpf_map_ops { - int (*map_alloc_check)(union bpf_attr *); - struct bpf_map * (*map_alloc)(union bpf_attr *); - void (*map_release)(struct bpf_map *, struct file *); - void (*map_free)(struct bpf_map *); - int (*map_get_next_key)(struct bpf_map *, void *, void *); - void (*map_release_uref)(struct bpf_map *); - void * (*map_lookup_elem_sys_only)(struct bpf_map *, void *); - int (*map_lookup_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); - int (*map_lookup_and_delete_elem)(struct bpf_map *, void *, void *, u64); - int (*map_lookup_and_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); - int (*map_update_batch)(struct bpf_map *, struct file *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); - int (*map_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); - void * (*map_lookup_elem)(struct bpf_map *, void *); - long (*map_update_elem)(struct bpf_map *, void *, void *, u64); - long (*map_delete_elem)(struct bpf_map *, void *); - long (*map_push_elem)(struct bpf_map *, void *, u64); - long (*map_pop_elem)(struct bpf_map *, void *); - long (*map_peek_elem)(struct bpf_map *, void *); - void * (*map_lookup_percpu_elem)(struct bpf_map *, void *, u32); - void * (*map_fd_get_ptr)(struct bpf_map *, struct file *, int); - void (*map_fd_put_ptr)(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 *); - long (*map_redirect)(struct bpf_map *, u64, u64); - bool (*map_meta_equal)(const struct bpf_map *, const struct bpf_map *); - int (*map_set_for_each_callback_args)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *); - long (*map_for_each_callback)(struct bpf_map *, bpf_callback_t, void *, u64); - u64 (*map_mem_usage)(const struct bpf_map *); - int *map_btf_id; - const struct bpf_iter_seq_info *iter_seq_info; +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, }; -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; - __u32 log_true_size; - }; - struct { - __u64 pathname; - __u32 bpf_fd; - __u32 file_flags; - __s32 path_fd; - }; - 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; - __u32 btf_log_true_size; - }; - struct { - __u32 pid; - __u32 fd; - __u32 flags; - __u32 buf_len; - __u64 buf; - __u32 prog_id; - __u32 fd_type; - __u64 probe_offset; - __u64 probe_addr; - } task_fd_query; - struct { - union { - __u32 prog_fd; - __u32 map_fd; - }; - union { - __u32 target_fd; - __u32 target_ifindex; - }; - __u32 attach_type; - __u32 flags; - union { - __u32 target_btf_id; - struct { - __u64 iter_info; - __u32 iter_info_len; - }; - struct { - __u64 bpf_cookie; - } perf_event; - struct { - __u32 flags; - __u32 cnt; - __u64 syms; - __u64 addrs; - __u64 cookies; - } kprobe_multi; - struct { - __u32 target_btf_id; - __u64 cookie; - } tracing; - struct { - __u32 pf; - __u32 hooknum; - __s32 priority; - __u32 flags; - } netfilter; - }; - } link_create; - struct { - __u32 link_fd; - union { - __u32 new_prog_fd; - __u32 new_map_fd; - }; - __u32 flags; - union { - __u32 old_prog_fd; - __u32 old_map_fd; - }; - } link_update; - struct { - __u32 link_fd; - } link_detach; - struct { - __u32 type; - } enable_stats; - struct { - __u32 link_fd; - __u32 flags; - } iter_create; - struct { - __u32 prog_fd; - __u32 map_fd; - __u32 flags; - } prog_bind_map; +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, }; -struct btf_header { - __u16 magic; - __u8 version; - __u8 flags; - __u32 hdr_len; - __u32 type_off; - __u32 type_len; - __u32 str_off; - __u32 str_len; +enum acpi_madt_type { + ACPI_MADT_TYPE_LOCAL_APIC = 0, + ACPI_MADT_TYPE_IO_APIC = 1, + ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2, + ACPI_MADT_TYPE_NMI_SOURCE = 3, + ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4, + ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5, + ACPI_MADT_TYPE_IO_SAPIC = 6, + ACPI_MADT_TYPE_LOCAL_SAPIC = 7, + ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8, + ACPI_MADT_TYPE_LOCAL_X2APIC = 9, + ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, + ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, + ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, + ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, + ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, + ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, + ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, + ACPI_MADT_TYPE_CORE_PIC = 17, + ACPI_MADT_TYPE_LIO_PIC = 18, + ACPI_MADT_TYPE_HT_PIC = 19, + ACPI_MADT_TYPE_EIO_PIC = 20, + ACPI_MADT_TYPE_MSI_PIC = 21, + ACPI_MADT_TYPE_BIO_PIC = 22, + ACPI_MADT_TYPE_LPC_PIC = 23, + ACPI_MADT_TYPE_RINTC = 24, + ACPI_MADT_TYPE_IMSIC = 25, + ACPI_MADT_TYPE_APLIC = 26, + ACPI_MADT_TYPE_PLIC = 27, + ACPI_MADT_TYPE_RESERVED = 28, + ACPI_MADT_TYPE_OEM_RESERVED = 128, }; -struct btf_kfunc_set_tab; +struct cpu_operations { + const char *name; + int (*cpu_init)(unsigned int); + int (*cpu_prepare)(unsigned int); + int (*cpu_boot)(unsigned int); + void (*cpu_postboot)(); + bool (*cpu_can_disable)(unsigned int); + int (*cpu_disable)(unsigned int); + void (*cpu_die)(unsigned int); + int (*cpu_kill)(unsigned int); +}; -struct btf_id_dtor_kfunc_tab; +union acpi_subtable_headers; -struct btf_struct_metas; +typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const unsigned long); -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 acpi_hmat_structure { + u16 type; + u16 reserved; + u32 length; }; -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 acpi_prmt_module_header { + u16 revision; + u16 length; +}; -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; +struct acpi_cedt_header { + u8 type; + u8 reserved; + u16 length; }; -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; +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; }; -typedef void (*btf_dtor_kfunc_t)(void *); +typedef __u64 __le64; -struct btf_field_kptr { - struct btf *btf; - struct module *module; - btf_dtor_kfunc_t dtor; - u32 btf_id; -}; +struct notifier_block; -struct btf_field_graph_root { - struct btf *btf; - u32 value_btf_id; - u32 node_offset; - struct btf_record *value_rec; -}; +typedef int (*notifier_fn_t)(struct notifier_block *, unsigned long, void *); -struct btf_field { - u32 offset; - u32 size; - enum btf_field_type type; - union { - struct btf_field_kptr kptr; - struct btf_field_graph_root graph_root; - }; +struct notifier_block { + notifier_fn_t notifier_call; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *next; + int priority; }; -struct btf_record { - u32 cnt; - u32 field_mask; - int spin_lock_off; - int timer_off; - int refcount_off; - struct btf_field fields[0]; +enum scale_freq_source { + SCALE_FREQ_SOURCE_CPUFREQ = 0, + SCALE_FREQ_SOURCE_ARCH = 1, + SCALE_FREQ_SOURCE_CPPC = 2, }; -struct obj_cgroup { - struct percpu_ref refcnt; - struct mem_cgroup *memcg; - atomic_t nr_charged_bytes; - union { - struct list_head list; - struct callback_head rcu; - }; +struct scale_freq_data { + enum scale_freq_source source; + void (*set_freq_scale)(); }; -struct cacheline_padding { - char x[0]; +enum pm_qos_type { + PM_QOS_UNITIALIZED = 0, + PM_QOS_MAX = 1, + PM_QOS_MIN = 2, }; -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; +enum freq_qos_req_type { + FREQ_QOS_MIN = 1, + FREQ_QOS_MAX = 2, }; -struct mem_cgroup_id { - int id; - refcount_t ref; +enum cpufreq_table_sorting { + CPUFREQ_TABLE_UNSORTED = 0, + CPUFREQ_TABLE_SORTED_ASCENDING = 1, + CPUFREQ_TABLE_SORTED_DESCENDING = 2, }; -struct vmpressure { - unsigned long scanned; - unsigned long reclaimed; - unsigned long tree_scanned; - unsigned long tree_reclaimed; - spinlock_t sr_lock; - struct list_head events; - struct mutex events_lock; - struct work_struct work; +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 mem_cgroup_threshold_ary; +typedef void (*smp_call_func_t)(void *); -struct mem_cgroup_thresholds { - struct mem_cgroup_threshold_ary *primary; - struct mem_cgroup_threshold_ary *spare; +struct cpc_reg { + u8 descriptor; + u16 length; + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_width; + u64 address; +} __attribute__((packed)); + +struct cpufreq_cpuinfo { + unsigned int max_freq; + unsigned int min_freq; + unsigned int transition_latency; }; -struct fprop_global { - struct percpu_counter events; - unsigned int period; - seqcount_t sequence; +struct plist_head { + struct list_head node_list; }; -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 blocking_notifier_head; -struct wb_completion { - atomic_t cnt; - wait_queue_head_t *waitq; +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 memcg_cgwb_frn { - u64 bdi_id; - int memcg_id; - u64 at; - struct wb_completion done; +struct blocking_notifier_head { + struct rw_semaphore rwsem; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -struct deferred_split { - spinlock_t split_queue_lock; - struct list_head split_queue; - unsigned long split_queue_len; +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 memcg_vmstats; - -struct memcg_vmstats_percpu; +struct clk; -struct mem_cgroup_per_node; +struct cpufreq_governor; -struct mem_cgroup { - struct cgroup_subsys_state css; - struct mem_cgroup_id id; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct page_counter memory; - union { - struct page_counter swap; - struct page_counter memsw; - }; - struct page_counter kmem; - struct page_counter tcpmem; - struct work_struct high_work; - unsigned long soft_limit; - struct vmpressure vmpressure; - bool oom_group; - bool oom_lock; - int under_oom; - int swappiness; - int oom_kill_disable; - struct cgroup_file events_file; - struct cgroup_file events_local_file; - struct cgroup_file swap_events_file; - struct mutex thresholds_lock; - struct mem_cgroup_thresholds thresholds; - struct mem_cgroup_thresholds memsw_thresholds; - struct list_head oom_notify; - unsigned long move_charge_at_immigrate; - spinlock_t move_lock; - unsigned long move_lock_flags; - struct cacheline_padding _pad1_; - struct memcg_vmstats *vmstats; - atomic_long_t memory_events[9]; - atomic_long_t memory_events_local[9]; - unsigned long socket_pressure; - bool tcpmem_active; - int tcpmem_pressure; - int kmemcg_id; - struct obj_cgroup __attribute__((btf_type_tag("rcu"))) *objcg; - struct list_head objcg_list; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct cacheline_padding _pad2_; - atomic_t moving_account; - struct task_struct *move_lock_task; - struct memcg_vmstats_percpu __attribute__((btf_type_tag("percpu"))) *vmstats_percpu; - struct list_head cgwb_list; - struct wb_domain cgwb_domain; - struct memcg_cgwb_frn cgwb_frn[4]; - struct list_head event_list; - spinlock_t event_list_lock; - struct deferred_split deferred_split_queue; - struct mem_cgroup_per_node *nodeinfo[0]; - long: 64; -}; +struct freq_qos_request; -struct eventfd_ctx; +struct cpufreq_frequency_table; -struct mem_cgroup_threshold { - struct eventfd_ctx *eventfd; - unsigned long threshold; -}; +struct cpufreq_stats; -struct mem_cgroup_threshold_ary { - int current_threshold; - unsigned int size; - struct mem_cgroup_threshold entries[0]; -}; +struct thermal_cooling_device; -struct memcg_vmstats_percpu { - long state[50]; - unsigned long events[17]; - long state_prev[50]; - unsigned long events_prev[17]; - unsigned long nr_page_events; - unsigned long targets[2]; +struct cpufreq_policy { + cpumask_var_t cpus; + cpumask_var_t related_cpus; + cpumask_var_t real_cpus; + unsigned int shared_type; + unsigned int cpu; + struct clk *clk; + struct cpufreq_cpuinfo cpuinfo; + unsigned int min; + unsigned int max; + unsigned int cur; + unsigned int suspend_freq; + unsigned int policy; + unsigned int last_policy; + struct cpufreq_governor *governor; + void *governor_data; + char last_governor[16]; + struct work_struct update; + struct freq_constraints constraints; + struct freq_qos_request *min_freq_req; + struct freq_qos_request *max_freq_req; + struct cpufreq_frequency_table *freq_table; + enum cpufreq_table_sorting freq_table_sorted; + struct list_head policy_list; + struct kobject kobj; + struct completion kobj_unregister; + struct rw_semaphore rwsem; + bool fast_switch_possible; + bool fast_switch_enabled; + bool strict_target; + bool efficiencies_available; + unsigned int transition_delay_us; + bool dvfs_possible_from_any_cpu; + bool boost_enabled; + unsigned int cached_target_freq; + unsigned int cached_resolved_idx; + bool transition_ongoing; + spinlock_t transition_lock; + wait_queue_head_t transition_wait; + struct task_struct *transition_task; + struct cpufreq_stats *stats; + void *driver_data; + struct thermal_cooling_device *cdev; + struct notifier_block nb_min; + struct notifier_block nb_max; }; -struct pglist_data; - -struct lruvec { - struct list_head lists[5]; - spinlock_t lru_lock; - unsigned long anon_cost; - unsigned long file_cost; - atomic_long_t nonresident_age; - unsigned long refaults[2]; - unsigned long flags; - struct pglist_data *pgdat; +struct 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 lruvec_stats { - long state[43]; - long state_pending[43]; +struct freq_qos_request { + enum freq_qos_req_type type; + struct plist_node pnode; + struct freq_constraints *qos; }; -struct mem_cgroup_reclaim_iter { - struct mem_cgroup *position; - unsigned int generation; +struct cpufreq_frequency_table { + unsigned int flags; + unsigned int driver_data; + unsigned int frequency; }; -struct lruvec_stats_percpu; - -struct shrinker_info; +struct thermal_cooling_device_ops; -struct mem_cgroup_per_node { - struct lruvec lruvec; - struct lruvec_stats_percpu __attribute__((btf_type_tag("percpu"))) *lruvec_stats_percpu; - struct lruvec_stats lruvec_stats; - unsigned long lru_zone_size[20]; - struct mem_cgroup_reclaim_iter iter; - struct shrinker_info __attribute__((btf_type_tag("rcu"))) *shrinker_info; - struct rb_node tree_node; - unsigned long usage_in_excess; - bool on_tree; - struct mem_cgroup *memcg; +struct 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 free_area { - struct list_head free_list[6]; - unsigned long nr_free; +struct pm_qos_flags { + struct list_head list; + s32 effective_flags; }; -struct per_cpu_pages; - -struct per_cpu_zonestat; +struct dev_pm_qos_request; -struct zone { - unsigned long _watermark[4]; - unsigned long watermark_boost; - unsigned long nr_reserved_highatomic; - long lowmem_reserve[4]; - int node; - struct pglist_data *zone_pgdat; - struct per_cpu_pages __attribute__((btf_type_tag("percpu"))) *per_cpu_pageset; - struct per_cpu_zonestat __attribute__((btf_type_tag("percpu"))) *per_cpu_zonestats; - int pageset_high; - int pageset_batch; - unsigned long zone_start_pfn; - atomic_long_t managed_pages; - unsigned long spanned_pages; - unsigned long present_pages; - unsigned long present_early_pages; - unsigned long cma_pages; - const char *name; - unsigned long nr_isolate_pageblock; - seqlock_t span_seqlock; - int initialized; - long: 64; - long: 64; - long: 64; - 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: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct cacheline_padding _pad2_; - unsigned long percpu_drift_mark; - unsigned long compact_cached_free_pfn; - unsigned long compact_cached_migrate_pfn[2]; - unsigned long compact_init_migrate_pfn; - unsigned long compact_init_free_pfn; - unsigned int compact_considered; - unsigned int compact_defer_shift; - int compact_order_failed; - bool compact_blockskip_flush; - bool contiguous; - long: 0; - struct cacheline_padding _pad3_; - atomic_long_t vm_stat[10]; - atomic_long_t vm_numa_event[6]; +struct 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 zoneref { - struct zone *zone; - int zone_idx; +struct pm_qos_flags_request { + struct list_head node; + s32 flags; }; -struct zonelist { - struct zoneref _zonerefs[65]; +struct dev_pm_qos_request { + enum dev_pm_qos_req_type type; + union { + struct plist_node pnode; + struct pm_qos_flags_request flr; + struct freq_qos_request freq; + } data; + struct device *dev; }; -struct memory_failure_stats { - unsigned long total; - unsigned long ignored; - unsigned long failed; - unsigned long delayed; - unsigned long recovered; +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 per_cpu_nodestat; - -struct memory_tier; - -struct pglist_data { - struct zone node_zones[4]; - struct zonelist node_zonelists[2]; - int nr_zones; - spinlock_t node_size_lock; - 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 mutex kswapd_lock; - struct task_struct *kswapd; - int kswapd_order; - enum zone_type kswapd_highest_zoneidx; - int kswapd_failures; - int kcompactd_max_order; - enum zone_type kcompactd_highest_zoneidx; - wait_queue_head_t kcompactd_wait; - struct task_struct *kcompactd; - bool proactive_compact_trigger; - unsigned long totalreserve_pages; - unsigned long min_unmapped_pages; - unsigned long min_slab_pages; - long: 64; - long: 64; - long: 64; - struct cacheline_padding _pad1_; - struct deferred_split deferred_split_queue; - unsigned int nbp_rl_start; - unsigned long nbp_rl_nr_cand; - unsigned int nbp_threshold; - unsigned int nbp_th_start; - unsigned long nbp_th_nr_cand; - struct lruvec __lruvec; - unsigned long flags; - 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[43]; - struct memory_tier __attribute__((btf_type_tag("rcu"))) *memtier; - struct memory_failure_stats mf_stats; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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 per_cpu_pages { - spinlock_t lock; - int count; - int high; - int batch; - short free_factor; - short expire; - struct list_head lists[13]; - long: 64; - long: 64; - long: 64; +enum print_line_t { + TRACE_TYPE_PARTIAL_LINE = 0, + TRACE_TYPE_HANDLED = 1, + TRACE_TYPE_UNHANDLED = 2, + TRACE_TYPE_NO_CONSUME = 3, }; -struct per_cpu_zonestat { - s8 vm_stat_diff[10]; - s8 stat_threshold; - unsigned long vm_numa_event[6]; -}; +struct trace_event_functions; -struct per_cpu_nodestat { - s8 stat_threshold; - s8 vm_node_stat_diff[43]; +struct trace_event { + struct hlist_node node; + int type; + struct trace_event_functions *funcs; }; -struct memory_tier { - struct list_head list; - struct list_head memory_types; - int adistance_start; - struct device dev; - nodemask_t lower_tier_mask; -}; +struct trace_event_class; -struct lruvec_stats_percpu { - long state[43]; - long state_prev[43]; +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 *); }; -struct shrinker_info { - struct callback_head rcu; - atomic_long_t *nr_deferred; - unsigned long *map; - int map_nr_max; -}; +struct trace_event_fields; -struct bpf_prog_ops { - int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); +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 btf_mod_pair { - struct btf *btf; - struct module *module; +struct trace_event_fields { + const char *type; + union { + struct { + const char *name; + const int size; + const int align; + const int is_signed; + const int filter_type; + const int len; + }; + int (*define_fields)(struct trace_event_call *); + }; }; -struct net_device; +struct trace_iterator; -struct bpf_offload_dev; +typedef enum print_line_t (*trace_print_func)(struct trace_iterator *, int, struct trace_event *); -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 trace_event_functions { + trace_print_func trace; + trace_print_func raw; + trace_print_func hex; + trace_print_func binary; }; -struct bpf_func_info { - __u32 insn_off; - __u32 type_id; +struct seq_buf { + char *buffer; + size_t size; + size_t len; }; -struct bpf_func_info_aux { - u16 linkage; - bool unreliable; +struct trace_seq { + char buffer[4096]; + struct seq_buf seq; + size_t readpos; + int full; }; -struct bpf_line_info { - __u32 insn_off; - __u32 file_name_off; - __u32 line_off; - __u32 line_col; -}; +struct trace_array; -struct disk_stats; +struct tracer; -struct blk_holder_ops; +struct array_buffer; -struct partition_meta_info; +struct ring_buffer_iter; -struct block_device { - sector_t bd_start_sect; - sector_t bd_nr_sectors; - struct gendisk *bd_disk; - struct request_queue *bd_queue; - struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats; - unsigned long bd_stamp; - bool bd_read_only; - u8 bd_partno; - bool bd_write_holder; - bool bd_has_submit_bio; - dev_t bd_dev; - atomic_t bd_openers; - spinlock_t bd_size_lock; - struct inode *bd_inode; - struct super_block *bd_super; - void *bd_claiming; - void *bd_holder; - const struct blk_holder_ops *bd_holder_ops; - struct mutex bd_holder_lock; - int bd_fsfreeze_count; - int bd_holders; - struct kobject *bd_holder_dir; - struct mutex bd_fsfreeze_mutex; - struct super_block *bd_fsfreeze_sb; - struct partition_meta_info *bd_meta_info; - struct device bd_device; -}; +struct trace_entry; -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 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 blk_holder_ops { - void (*mark_dead)(struct block_device *); +struct trace_entry { + unsigned short type; + unsigned char flags; + unsigned char preempt_count; + int pid; }; -struct bio; +typedef long (*syscall_fn_t)(const struct pt_regs *); -struct bio_list { - struct bio *head; - struct bio *tail; +enum arm64_hyp_spectre_vector { + HYP_VECTOR_DIRECT = 0, + HYP_VECTOR_SPECTRE_DIRECT = 1, + HYP_VECTOR_INDIRECT = 2, + HYP_VECTOR_SPECTRE_INDIRECT = 3, }; -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 *); +typedef void (*bp_hardening_cb_t)(); -struct bio_issue { - u64 value; +struct bp_hardening_data { + enum arm64_hyp_spectre_vector slot; + bp_hardening_cb_t fn; }; -struct blkcg_gq; - -struct bio_integrity_payload; - -struct bio_set; - -struct bio { - struct bio *bi_next; - struct block_device *bi_bdev; - blk_opf_t bi_opf; - unsigned short bi_flags; - unsigned short bi_ioprio; - 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; - union { - struct bio_integrity_payload *bi_integrity; - }; - 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]; +enum spectre_v4_policy { + SPECTRE_V4_POLICY_MITIGATION_DYNAMIC = 0, + SPECTRE_V4_POLICY_MITIGATION_ENABLED = 1, + SPECTRE_V4_POLICY_MITIGATION_DISABLED = 2, }; -struct bio_integrity_payload { - struct bio *bip_bio; - struct bvec_iter bip_iter; - unsigned short bip_vcnt; - unsigned short bip_max_vcnt; - unsigned short bip_flags; - struct bvec_iter bio_iter; - struct work_struct bip_work; - struct bio_vec *bip_vec; - struct bio_vec bip_inline_vecs[0]; +struct spectre_v4_param { + const char *str; + enum spectre_v4_policy policy; }; -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; +enum writeback_sync_modes { + WB_SYNC_NONE = 0, + WB_SYNC_ALL = 1, }; -typedef struct mempool_s mempool_t; - -struct bio_alloc_cache; +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 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; - mempool_t bio_integrity_pool; - mempool_t bvec_integrity_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; +enum zone_type { + ZONE_DMA = 0, + ZONE_DMA32 = 1, + ZONE_NORMAL = 2, + ZONE_MOVABLE = 3, + __MAX_NR_ZONES = 4, }; -struct bio_alloc_cache { - struct bio *free_list; - struct bio *free_list_irq; - unsigned int nr; - unsigned int nr_irq; +enum bpf_prog_type { + BPF_PROG_TYPE_UNSPEC = 0, + BPF_PROG_TYPE_SOCKET_FILTER = 1, + BPF_PROG_TYPE_KPROBE = 2, + BPF_PROG_TYPE_SCHED_CLS = 3, + BPF_PROG_TYPE_SCHED_ACT = 4, + BPF_PROG_TYPE_TRACEPOINT = 5, + BPF_PROG_TYPE_XDP = 6, + BPF_PROG_TYPE_PERF_EVENT = 7, + BPF_PROG_TYPE_CGROUP_SKB = 8, + BPF_PROG_TYPE_CGROUP_SOCK = 9, + BPF_PROG_TYPE_LWT_IN = 10, + BPF_PROG_TYPE_LWT_OUT = 11, + BPF_PROG_TYPE_LWT_XMIT = 12, + BPF_PROG_TYPE_SOCK_OPS = 13, + BPF_PROG_TYPE_SK_SKB = 14, + BPF_PROG_TYPE_CGROUP_DEVICE = 15, + BPF_PROG_TYPE_SK_MSG = 16, + BPF_PROG_TYPE_RAW_TRACEPOINT = 17, + BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18, + BPF_PROG_TYPE_LWT_SEG6LOCAL = 19, + BPF_PROG_TYPE_LIRC_MODE2 = 20, + BPF_PROG_TYPE_SK_REUSEPORT = 21, + BPF_PROG_TYPE_FLOW_DISSECTOR = 22, + BPF_PROG_TYPE_CGROUP_SYSCTL = 23, + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24, + BPF_PROG_TYPE_CGROUP_SOCKOPT = 25, + BPF_PROG_TYPE_TRACING = 26, + BPF_PROG_TYPE_STRUCT_OPS = 27, + BPF_PROG_TYPE_EXT = 28, + BPF_PROG_TYPE_LSM = 29, + BPF_PROG_TYPE_SK_LOOKUP = 30, + BPF_PROG_TYPE_SYSCALL = 31, + BPF_PROG_TYPE_NETFILTER = 32, }; -struct bpf_run_ctx {}; +enum bpf_attach_type { + BPF_CGROUP_INET_INGRESS = 0, + BPF_CGROUP_INET_EGRESS = 1, + BPF_CGROUP_INET_SOCK_CREATE = 2, + BPF_CGROUP_SOCK_OPS = 3, + BPF_SK_SKB_STREAM_PARSER = 4, + BPF_SK_SKB_STREAM_VERDICT = 5, + BPF_CGROUP_DEVICE = 6, + BPF_SK_MSG_VERDICT = 7, + BPF_CGROUP_INET4_BIND = 8, + BPF_CGROUP_INET6_BIND = 9, + BPF_CGROUP_INET4_CONNECT = 10, + BPF_CGROUP_INET6_CONNECT = 11, + BPF_CGROUP_INET4_POST_BIND = 12, + BPF_CGROUP_INET6_POST_BIND = 13, + BPF_CGROUP_UDP4_SENDMSG = 14, + BPF_CGROUP_UDP6_SENDMSG = 15, + BPF_LIRC_MODE2 = 16, + BPF_FLOW_DISSECTOR = 17, + BPF_CGROUP_SYSCTL = 18, + BPF_CGROUP_UDP4_RECVMSG = 19, + BPF_CGROUP_UDP6_RECVMSG = 20, + BPF_CGROUP_GETSOCKOPT = 21, + BPF_CGROUP_SETSOCKOPT = 22, + BPF_TRACE_RAW_TP = 23, + BPF_TRACE_FENTRY = 24, + BPF_TRACE_FEXIT = 25, + BPF_MODIFY_RETURN = 26, + BPF_LSM_MAC = 27, + BPF_TRACE_ITER = 28, + BPF_CGROUP_INET4_GETPEERNAME = 29, + BPF_CGROUP_INET6_GETPEERNAME = 30, + BPF_CGROUP_INET4_GETSOCKNAME = 31, + BPF_CGROUP_INET6_GETSOCKNAME = 32, + BPF_XDP_DEVMAP = 33, + BPF_CGROUP_INET_SOCK_RELEASE = 34, + BPF_XDP_CPUMAP = 35, + BPF_SK_LOOKUP = 36, + BPF_XDP = 37, + BPF_SK_SKB_VERDICT = 38, + BPF_SK_REUSEPORT_SELECT = 39, + BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40, + BPF_PERF_EVENT = 41, + BPF_TRACE_KPROBE_MULTI = 42, + BPF_LSM_CGROUP = 43, + BPF_STRUCT_OPS = 44, + BPF_NETFILTER = 45, + BPF_TCX_INGRESS = 46, + BPF_TCX_EGRESS = 47, + BPF_TRACE_UPROBE_MULTI = 48, + BPF_CGROUP_UNIX_CONNECT = 49, + BPF_CGROUP_UNIX_SENDMSG = 50, + BPF_CGROUP_UNIX_RECVMSG = 51, + BPF_CGROUP_UNIX_GETPEERNAME = 52, + BPF_CGROUP_UNIX_GETSOCKNAME = 53, + BPF_NETKIT_PRIMARY = 54, + BPF_NETKIT_PEER = 55, + __MAX_BPF_ATTACH_TYPE = 56, +}; -struct arm_smccc_res { - unsigned long a0; - unsigned long a1; - unsigned long a2; - unsigned long a3; +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 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 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, }; -struct arm64_midr_revidr; +enum bpf_iter_task_type { + BPF_TASK_ITER_ALL = 0, + BPF_TASK_ITER_TID = 1, + BPF_TASK_ITER_TGID = 2, +}; -struct arm64_cpu_capabilities { - const char *desc; - u16 capability; - u16 type; - bool (*matches)(const struct arm64_cpu_capabilities *, int); - void (*cpu_enable)(const struct arm64_cpu_capabilities *); - union { - struct { - struct midr_range midr_range; - const struct arm64_midr_revidr * const fixed_revs; - }; - const struct midr_range *midr_range_list; - struct { - u32 sys_reg; - u8 field_pos; - u8 field_width; - u8 min_field_value; - u8 hwcap_type; - bool sign; - unsigned long hwcap; - }; - }; - const struct arm64_cpu_capabilities *match_list; +enum bpf_map_type { + BPF_MAP_TYPE_UNSPEC = 0, + BPF_MAP_TYPE_HASH = 1, + BPF_MAP_TYPE_ARRAY = 2, + BPF_MAP_TYPE_PROG_ARRAY = 3, + BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4, + BPF_MAP_TYPE_PERCPU_HASH = 5, + BPF_MAP_TYPE_PERCPU_ARRAY = 6, + BPF_MAP_TYPE_STACK_TRACE = 7, + BPF_MAP_TYPE_CGROUP_ARRAY = 8, + BPF_MAP_TYPE_LRU_HASH = 9, + BPF_MAP_TYPE_LRU_PERCPU_HASH = 10, + BPF_MAP_TYPE_LPM_TRIE = 11, + BPF_MAP_TYPE_ARRAY_OF_MAPS = 12, + BPF_MAP_TYPE_HASH_OF_MAPS = 13, + BPF_MAP_TYPE_DEVMAP = 14, + BPF_MAP_TYPE_SOCKMAP = 15, + BPF_MAP_TYPE_CPUMAP = 16, + BPF_MAP_TYPE_XSKMAP = 17, + BPF_MAP_TYPE_SOCKHASH = 18, + BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19, + BPF_MAP_TYPE_CGROUP_STORAGE = 19, + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20, + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED = 21, + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21, + BPF_MAP_TYPE_QUEUE = 22, + BPF_MAP_TYPE_STACK = 23, + BPF_MAP_TYPE_SK_STORAGE = 24, + BPF_MAP_TYPE_DEVMAP_HASH = 25, + BPF_MAP_TYPE_STRUCT_OPS = 26, + BPF_MAP_TYPE_RINGBUF = 27, + BPF_MAP_TYPE_INODE_STORAGE = 28, + BPF_MAP_TYPE_TASK_STORAGE = 29, + BPF_MAP_TYPE_BLOOM_FILTER = 30, + BPF_MAP_TYPE_USER_RINGBUF = 31, + BPF_MAP_TYPE_CGRP_STORAGE = 32, }; -struct arm64_midr_revidr { - u32 midr_rv; - u32 revidr_mask; +enum btf_field_type { + BPF_SPIN_LOCK = 1, + BPF_TIMER = 2, + BPF_KPTR_UNREF = 4, + BPF_KPTR_REF = 8, + BPF_KPTR_PERCPU = 16, + BPF_KPTR = 28, + BPF_LIST_HEAD = 32, + BPF_LIST_NODE = 64, + BPF_RB_ROOT = 128, + BPF_RB_NODE = 256, + BPF_GRAPH_NODE_OR_ROOT = 480, + BPF_REFCOUNT = 512, }; -struct alt_instr { - s32 orig_offset; - s32 alt_offset; - u16 cpucap; - u8 orig_len; - u8 alt_len; +enum arm_smccc_conduit { + SMCCC_CONDUIT_NONE = 0, + SMCCC_CONDUIT_SMC = 1, + SMCCC_CONDUIT_HVC = 2, }; -struct arm64_ftr_override; +enum bhb_mitigation_bits { + BHB_LOOP = 0, + BHB_FW = 1, + BHB_HW = 2, + BHB_INSN = 3, +}; -struct ftr_set_desc { - char name[20]; - struct arm64_ftr_override *override; - struct { - char name[10]; - u8 shift; - u8 width; - bool (*filter)(u64); - } fields[0]; +enum aarch64_insn_variant { + AARCH64_INSN_VARIANT_32BIT = 0, + AARCH64_INSN_VARIANT_64BIT = 1, }; -struct arm64_ftr_override { - u64 val; - u64 mask; +enum aarch64_insn_movewide_type { + AARCH64_INSN_MOVEWIDE_ZERO = 0, + AARCH64_INSN_MOVEWIDE_KEEP = 1, + AARCH64_INSN_MOVEWIDE_INVERSE = 2, }; -struct arm_cpuidle_irq_context {}; +enum aarch64_insn_register { + AARCH64_INSN_REG_0 = 0, + AARCH64_INSN_REG_1 = 1, + AARCH64_INSN_REG_2 = 2, + AARCH64_INSN_REG_3 = 3, + AARCH64_INSN_REG_4 = 4, + AARCH64_INSN_REG_5 = 5, + AARCH64_INSN_REG_6 = 6, + AARCH64_INSN_REG_7 = 7, + AARCH64_INSN_REG_8 = 8, + AARCH64_INSN_REG_9 = 9, + AARCH64_INSN_REG_10 = 10, + AARCH64_INSN_REG_11 = 11, + AARCH64_INSN_REG_12 = 12, + AARCH64_INSN_REG_13 = 13, + AARCH64_INSN_REG_14 = 14, + AARCH64_INSN_REG_15 = 15, + AARCH64_INSN_REG_16 = 16, + AARCH64_INSN_REG_17 = 17, + AARCH64_INSN_REG_18 = 18, + AARCH64_INSN_REG_19 = 19, + AARCH64_INSN_REG_20 = 20, + AARCH64_INSN_REG_21 = 21, + AARCH64_INSN_REG_22 = 22, + AARCH64_INSN_REG_23 = 23, + AARCH64_INSN_REG_24 = 24, + AARCH64_INSN_REG_25 = 25, + AARCH64_INSN_REG_26 = 26, + AARCH64_INSN_REG_27 = 27, + AARCH64_INSN_REG_28 = 28, + AARCH64_INSN_REG_29 = 29, + AARCH64_INSN_REG_FP = 29, + AARCH64_INSN_REG_30 = 30, + AARCH64_INSN_REG_LR = 30, + AARCH64_INSN_REG_ZR = 31, + AARCH64_INSN_REG_SP = 31, +}; -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, +enum aarch64_insn_logic_type { + AARCH64_INSN_LOGIC_AND = 0, + AARCH64_INSN_LOGIC_BIC = 1, + AARCH64_INSN_LOGIC_ORR = 2, + AARCH64_INSN_LOGIC_ORN = 3, + AARCH64_INSN_LOGIC_EOR = 4, + AARCH64_INSN_LOGIC_EON = 5, + AARCH64_INSN_LOGIC_AND_SETFLAGS = 6, + AARCH64_INSN_LOGIC_BIC_SETFLAGS = 7, }; -typedef int (*cpu_stop_fn_t)(void *); +struct swap_iocb; -struct aarch64_insn_patch { - void **text_addrs; - u32 *new_insns; - int insn_cnt; - atomic_t cpu_count; +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; + struct swap_iocb **swap_plug; + struct bdi_writeback *wb; + struct inode *inode; + int wb_id; + int wb_lcand_id; + int wb_tcand_id; + size_t wb_bytes; + size_t wb_lcand_bytes; + size_t wb_tcand_bytes; }; -typedef u32 compat_size_t; +struct fprop_local_percpu { + struct percpu_counter events; + unsigned int period; + raw_spinlock_t lock; +}; -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)); +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 percpu_ref refcnt; + struct fprop_local_percpu memcg_completions; + struct cgroup_subsys_state *memcg_css; + struct cgroup_subsys_state *blkcg_css; + struct list_head memcg_node; + struct list_head blkcg_node; + struct list_head b_attached; + struct list_head offline_node; + union { + struct work_struct release_work; + struct callback_head rcu; + }; +}; -typedef u32 compat_ulong_t; +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; + struct xarray cgwb_tree; + struct mutex cgwb_release_mutex; + struct rw_semaphore wb_switch_rwsem; + wait_queue_head_t wb_waitq; + struct device *dev; + char dev_name[64]; + struct device *owner; + struct timer_list laptop_mode_wb_timer; + struct dentry *debug_dir; +}; -struct compat_sigaltstack { - compat_uptr_t ss_sp; - int ss_flags; - compat_size_t ss_size; +struct sock_filter { + __u16 code; + __u8 jt; + __u8 jf; + __u32 k; }; -typedef struct compat_sigaltstack compat_stack_t; +typedef short __s16; -struct compat_sigcontext { - compat_ulong_t trap_no; - compat_ulong_t error_code; - compat_ulong_t oldmask; - compat_ulong_t arm_r0; - compat_ulong_t arm_r1; - compat_ulong_t arm_r2; - compat_ulong_t arm_r3; - compat_ulong_t arm_r4; - compat_ulong_t arm_r5; - compat_ulong_t arm_r6; - compat_ulong_t arm_r7; - compat_ulong_t arm_r8; - compat_ulong_t arm_r9; - compat_ulong_t arm_r10; - compat_ulong_t arm_fp; - compat_ulong_t arm_ip; - compat_ulong_t arm_sp; - compat_ulong_t arm_lr; - compat_ulong_t arm_pc; - compat_ulong_t arm_cpsr; - compat_ulong_t fault_address; +struct bpf_insn { + __u8 code; + __u8 dst_reg: 4; + __u8 src_reg: 4; + __s16 off; + __s32 imm; }; -typedef u32 compat_sigset_word; +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 { - compat_sigset_word sig[2]; -} compat_sigset_t; + local64_t v; +} u64_stats_t; -struct compat_ucontext { - compat_ulong_t uc_flags; - compat_uptr_t uc_link; - compat_stack_t uc_stack; - struct compat_sigcontext uc_mcontext; - compat_sigset_t uc_sigmask; - int __unused[30]; - compat_ulong_t uc_regspace[128]; +struct bpf_prog_stats { + u64_stats_t cnt; + u64_stats_t nsecs; + u64_stats_t misses; + struct u64_stats_sync syncp; + long: 64; }; -struct compat_sigframe { - struct compat_ucontext uc; - compat_ulong_t retcode[2]; +struct bpf_ksym { + unsigned long start; + unsigned long end; + char name[512]; + struct list_head lnode; + struct latch_tree_node tnode; + bool prog; }; -typedef s32 compat_pid_t; +struct btf; -typedef u32 __compat_uid32_t; +struct bpf_ctx_arg_aux; -typedef s32 compat_timer_t; +struct bpf_trampoline; -typedef s32 compat_int_t; +struct btf_type; -union compat_sigval { - compat_int_t sival_int; - compat_uptr_t sival_ptr; -}; +struct bpf_jit_poke_descriptor; -typedef union compat_sigval compat_sigval_t; +struct bpf_kfunc_desc_tab; -typedef s32 compat_clock_t; +struct bpf_kfunc_btf_tab; -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 bpf_prog_ops; -struct compat_rt_sigframe { - struct compat_siginfo info; - struct compat_sigframe sig; -}; +struct bpf_map; -typedef u64 compat_u64; +struct btf_mod_pair; -struct compat_user_vfp { - compat_u64 fpregs[32]; - compat_ulong_t fpscr; -}; +struct bpf_prog_offload; -struct compat_user_vfp_exc { - compat_ulong_t fpexc; - compat_ulong_t fpinst; - compat_ulong_t fpinst2; -}; +struct bpf_func_info; -struct compat_vfp_sigframe { - compat_ulong_t magic; - compat_ulong_t size; - struct compat_user_vfp ufp; - struct compat_user_vfp_exc ufp_exc; -}; +struct bpf_func_info_aux; -struct compat_aux_sigframe { - struct compat_vfp_sigframe vfp; - unsigned long end_magic; -}; +struct bpf_line_info; -union __fpsimd_vreg { - __uint128_t raw; - struct { - u64 lo; - u64 hi; +struct bpf_prog_aux { + atomic64_t refcnt; + u32 used_map_cnt; + u32 used_btf_cnt; + u32 max_ctx_offset; + u32 max_pkt_offset; + u32 max_tp_access; + u32 stack_depth; + u32 id; + u32 func_cnt; + u32 real_func_cnt; + u32 func_idx; + u32 attach_btf_id; + u32 ctx_arg_info_size; + u32 max_rdonly_access; + u32 max_rdwr_access; + struct btf *attach_btf; + const struct bpf_ctx_arg_aux *ctx_arg_info; + struct mutex dst_mutex; + struct bpf_prog *dst_prog; + struct bpf_trampoline *dst_trampoline; + enum bpf_prog_type saved_dst_prog_type; + enum bpf_attach_type saved_dst_attach_type; + bool verifier_zext; + bool dev_bound; + bool offload_requested; + bool attach_btf_trace; + bool func_proto_unreliable; + bool sleepable; + bool tail_call_reachable; + bool xdp_has_frags; + bool exception_cb; + bool exception_boundary; + 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]; + unsigned int (*bpf_exception_cb)(u64, u64, u64); + 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; + struct module *mod; + u32 num_exentries; + struct exception_table_entry *extable; + union { + struct work_struct work; + struct callback_head rcu; }; }; -struct ksignal { - struct k_sigaction ka; - kernel_siginfo_t info; - int sig; +struct bpf_ctx_arg_aux { + u32 offset; + enum bpf_reg_type reg_type; + u32 btf_id; }; -struct fregs_offset { - const char *name; - int offset; +struct btf_func_model { + u8 ret_size; + u8 ret_flags; + u8 nr_args; + u8 arg_size[12]; + u8 arg_flags[12]; }; -enum aarch64_insn_branch_type { - AARCH64_INSN_BRANCH_NOLINK = 0, - AARCH64_INSN_BRANCH_LINK = 1, - AARCH64_INSN_BRANCH_RETURN = 2, - AARCH64_INSN_BRANCH_COMP_ZERO = 3, - AARCH64_INSN_BRANCH_COMP_NONZERO = 4, -}; +struct bpf_tramp_image; -enum { - FTRACE_UPDATE_CALLS = 1, - FTRACE_DISABLE_CALLS = 2, - FTRACE_UPDATE_TRACE_FUNC = 4, - FTRACE_START_FUNC_RET = 8, - FTRACE_STOP_FUNC_RET = 16, - FTRACE_MAY_SLEEP = 32, +struct bpf_trampoline { + struct hlist_node hlist; + struct ftrace_ops *fops; + struct mutex mutex; + refcount_t refcnt; + u32 flags; + u64 key; + struct { + struct btf_func_model model; + void *addr; + bool ftrace_managed; + } func; + struct bpf_prog *extension_prog; + struct hlist_head progs_hlist[3]; + int progs_cnt[3]; + struct bpf_tramp_image *cur_image; + struct module *mod; }; -enum { - FTRACE_FL_ENABLED = 2147483648, - FTRACE_FL_REGS = 1073741824, - FTRACE_FL_REGS_EN = 536870912, - FTRACE_FL_TRAMP = 268435456, - FTRACE_FL_TRAMP_EN = 134217728, - FTRACE_FL_IPMODIFY = 67108864, - FTRACE_FL_DISABLED = 33554432, - FTRACE_FL_DIRECT = 16777216, - FTRACE_FL_DIRECT_EN = 8388608, - FTRACE_FL_CALL_OPS = 4194304, - FTRACE_FL_CALL_OPS_EN = 2097152, - FTRACE_FL_TOUCHED = 1048576, - FTRACE_FL_MODIFIED = 524288, +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 dyn_arch_ftrace {}; - -struct dyn_ftrace { - unsigned long ip; - unsigned long flags; - struct dyn_arch_ftrace arch; +struct btf_type { + __u32 name_off; + __u32 info; + union { + __u32 size; + __u32 type; + }; }; -enum aarch64_reloc_op { - RELOC_OP_NONE = 0, - RELOC_OP_ABS = 1, - RELOC_OP_PREL = 2, - RELOC_OP_PAGE = 3, +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 aarch64_insn_movw_imm_type { - AARCH64_INSN_IMM_MOVNZ = 0, - AARCH64_INSN_IMM_MOVKZ = 1, -}; +struct bpf_map_ops; -enum aarch64_insn_imm_type { - AARCH64_INSN_IMM_ADR = 0, - AARCH64_INSN_IMM_26 = 1, - AARCH64_INSN_IMM_19 = 2, - AARCH64_INSN_IMM_16 = 3, - AARCH64_INSN_IMM_14 = 4, - AARCH64_INSN_IMM_12 = 5, - AARCH64_INSN_IMM_9 = 6, - AARCH64_INSN_IMM_7 = 7, - AARCH64_INSN_IMM_6 = 8, - AARCH64_INSN_IMM_S = 9, - AARCH64_INSN_IMM_R = 10, - AARCH64_INSN_IMM_N = 11, - AARCH64_INSN_IMM_MAX = 12, +struct btf_record; + +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; + struct obj_cgroup *objcg; + char name[16]; + long: 64; + long: 64; + atomic64_t refcnt; + atomic64_t usercnt; + union { + struct work_struct work; + struct callback_head rcu; + }; + 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; + bool free_after_mult_rcu_gp; + s64 __attribute__((btf_type_tag("percpu"))) *elem_count; + long: 64; + long: 64; }; -typedef __s16 s16; +typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64); -typedef __u64 Elf64_Off; +union bpf_attr; -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 bpf_verifier_env; -typedef struct elf64_shdr Elf64_Shdr; +struct bpf_func_state; -typedef __s64 Elf64_Sxword; +struct bpf_iter_seq_info; -struct elf64_rela { - Elf64_Addr r_offset; - Elf64_Xword r_info; - Elf64_Sxword r_addend; +struct bpf_map_ops { + int (*map_alloc_check)(union bpf_attr *); + struct bpf_map * (*map_alloc)(union bpf_attr *); + void (*map_release)(struct bpf_map *, struct file *); + void (*map_free)(struct bpf_map *); + int (*map_get_next_key)(struct bpf_map *, void *, void *); + void (*map_release_uref)(struct bpf_map *); + void * (*map_lookup_elem_sys_only)(struct bpf_map *, void *); + int (*map_lookup_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); + int (*map_lookup_and_delete_elem)(struct bpf_map *, void *, void *, u64); + int (*map_lookup_and_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); + int (*map_update_batch)(struct bpf_map *, struct file *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); + int (*map_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); + void * (*map_lookup_elem)(struct bpf_map *, void *); + long (*map_update_elem)(struct bpf_map *, void *, void *, u64); + long (*map_delete_elem)(struct bpf_map *, void *); + long (*map_push_elem)(struct bpf_map *, void *, u64); + long (*map_pop_elem)(struct bpf_map *, void *); + long (*map_peek_elem)(struct bpf_map *, void *); + void * (*map_lookup_percpu_elem)(struct bpf_map *, void *, u32); + void * (*map_fd_get_ptr)(struct bpf_map *, struct file *, int); + void (*map_fd_put_ptr)(struct bpf_map *, void *, bool); + int (*map_gen_lookup)(struct bpf_map *, struct bpf_insn *); + u32 (*map_fd_sys_lookup_elem)(void *); + void (*map_seq_show_elem)(struct bpf_map *, void *, struct seq_file *); + int (*map_check_btf)(const struct bpf_map *, const struct btf *, const struct btf_type *, const struct btf_type *); + int (*map_poke_track)(struct bpf_map *, struct bpf_prog_aux *); + void (*map_poke_untrack)(struct bpf_map *, struct bpf_prog_aux *); + void (*map_poke_run)(struct bpf_map *, u32, struct bpf_prog *, struct bpf_prog *); + int (*map_direct_value_addr)(const struct bpf_map *, u64 *, u32); + int (*map_direct_value_meta)(const struct bpf_map *, u64, u32 *); + int (*map_mmap)(struct bpf_map *, struct vm_area_struct *); + __poll_t (*map_poll)(struct bpf_map *, struct file *, struct poll_table_struct *); + int (*map_local_storage_charge)(struct bpf_local_storage_map *, void *, u32); + void (*map_local_storage_uncharge)(struct bpf_local_storage_map *, void *, u32); + struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) ** (*map_owner_storage_ptr)(void *); + long (*map_redirect)(struct bpf_map *, u64, u64); + bool (*map_meta_equal)(const struct bpf_map *, const struct bpf_map *); + int (*map_set_for_each_callback_args)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *); + long (*map_for_each_callback)(struct bpf_map *, bpf_callback_t, void *, u64); + u64 (*map_mem_usage)(const struct bpf_map *); + int *map_btf_id; + const struct bpf_iter_seq_info *iter_seq_info; }; -typedef struct elf64_rela Elf64_Rela; +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; + __u32 log_true_size; + }; + struct { + __u64 pathname; + __u32 bpf_fd; + __u32 file_flags; + __s32 path_fd; + }; + struct { + union { + __u32 target_fd; + __u32 target_ifindex; + }; + __u32 attach_bpf_fd; + __u32 attach_type; + __u32 attach_flags; + __u32 replace_bpf_fd; + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + }; + struct { + __u32 prog_fd; + __u32 retval; + __u32 data_size_in; + __u32 data_size_out; + __u64 data_in; + __u64 data_out; + __u32 repeat; + __u32 duration; + __u32 ctx_size_in; + __u32 ctx_size_out; + __u64 ctx_in; + __u64 ctx_out; + __u32 flags; + __u32 cpu; + __u32 batch_size; + } test; + struct { + union { + __u32 start_id; + __u32 prog_id; + __u32 map_id; + __u32 btf_id; + __u32 link_id; + }; + __u32 next_id; + __u32 open_flags; + }; + struct { + __u32 bpf_fd; + __u32 info_len; + __u64 info; + } info; + struct { + union { + __u32 target_fd; + __u32 target_ifindex; + }; + __u32 attach_type; + __u32 query_flags; + __u32 attach_flags; + __u64 prog_ids; + union { + __u32 prog_cnt; + __u32 count; + }; + __u64 prog_attach_flags; + __u64 link_ids; + __u64 link_attach_flags; + __u64 revision; + } query; + struct { + __u64 name; + __u32 prog_fd; + } raw_tracepoint; + struct { + __u64 btf; + __u64 btf_log_buf; + __u32 btf_size; + __u32 btf_log_size; + __u32 btf_log_level; + __u32 btf_log_true_size; + }; + struct { + __u32 pid; + __u32 fd; + __u32 flags; + __u32 buf_len; + __u64 buf; + __u32 prog_id; + __u32 fd_type; + __u64 probe_offset; + __u64 probe_addr; + } task_fd_query; + struct { + union { + __u32 prog_fd; + __u32 map_fd; + }; + union { + __u32 target_fd; + __u32 target_ifindex; + }; + __u32 attach_type; + __u32 flags; + union { + __u32 target_btf_id; + struct { + __u64 iter_info; + __u32 iter_info_len; + }; + struct { + __u64 bpf_cookie; + } perf_event; + struct { + __u32 flags; + __u32 cnt; + __u64 syms; + __u64 addrs; + __u64 cookies; + } kprobe_multi; + struct { + __u32 target_btf_id; + __u64 cookie; + } tracing; + struct { + __u32 pf; + __u32 hooknum; + __s32 priority; + __u32 flags; + } netfilter; + struct { + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + } tcx; + struct { + __u64 path; + __u64 offsets; + __u64 ref_ctr_offsets; + __u64 cookies; + __u32 cnt; + __u32 flags; + __u32 pid; + } uprobe_multi; + struct { + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + } netkit; + }; + } link_create; + struct { + __u32 link_fd; + union { + __u32 new_prog_fd; + __u32 new_map_fd; + }; + __u32 flags; + union { + __u32 old_prog_fd; + __u32 old_map_fd; + }; + } link_update; + struct { + __u32 link_fd; + } link_detach; + struct { + __u32 type; + } enable_stats; + struct { + __u32 link_fd; + __u32 flags; + } iter_create; + struct { + __u32 prog_fd; + __u32 map_fd; + __u32 flags; + } prog_bind_map; +}; -struct 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; +struct btf_header { + __u16 magic; + __u8 version; + __u8 flags; + __u32 hdr_len; + __u32 type_off; + __u32 type_len; + __u32 str_off; + __u32 str_len; }; -typedef struct elf64_hdr Elf64_Ehdr; +struct btf_kfunc_set_tab; -enum aarch64_insn_adr_type { - AARCH64_INSN_ADR_TYPE_ADRP = 0, - AARCH64_INSN_ADR_TYPE_ADR = 1, -}; +struct btf_id_dtor_kfunc_tab; -enum aarch64_insn_adsb_type { - AARCH64_INSN_ADSB_ADD = 0, - AARCH64_INSN_ADSB_SUB = 1, - AARCH64_INSN_ADSB_ADD_SETFLAGS = 2, - AARCH64_INSN_ADSB_SUB_SETFLAGS = 3, -}; +struct btf_struct_metas; -enum mod_mem_type { - MOD_TEXT = 0, - MOD_DATA = 1, - MOD_RODATA = 2, - MOD_RO_AFTER_INIT = 3, - MOD_INIT_TEXT = 4, - MOD_INIT_DATA = 5, - MOD_INIT_RODATA = 6, - MOD_MEM_NUM_TYPES = 7, - MOD_INVALID = -1, +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; }; -typedef int (*cmp_func_t)(const void *, const void *); +struct bpf_iter_aux_info; -typedef void (*swap_func_t)(void *, void *, int); +typedef int (*bpf_iter_init_seq_priv_t)(void *, struct bpf_iter_aux_info *); -enum perf_event_arm_regs { - PERF_REG_ARM64_X0 = 0, - PERF_REG_ARM64_X1 = 1, - PERF_REG_ARM64_X2 = 2, - PERF_REG_ARM64_X3 = 3, - PERF_REG_ARM64_X4 = 4, - PERF_REG_ARM64_X5 = 5, - PERF_REG_ARM64_X6 = 6, - PERF_REG_ARM64_X7 = 7, - PERF_REG_ARM64_X8 = 8, - PERF_REG_ARM64_X9 = 9, - PERF_REG_ARM64_X10 = 10, - PERF_REG_ARM64_X11 = 11, - PERF_REG_ARM64_X12 = 12, - PERF_REG_ARM64_X13 = 13, - PERF_REG_ARM64_X14 = 14, - PERF_REG_ARM64_X15 = 15, - PERF_REG_ARM64_X16 = 16, - PERF_REG_ARM64_X17 = 17, - PERF_REG_ARM64_X18 = 18, - PERF_REG_ARM64_X19 = 19, - PERF_REG_ARM64_X20 = 20, - PERF_REG_ARM64_X21 = 21, - PERF_REG_ARM64_X22 = 22, - PERF_REG_ARM64_X23 = 23, - PERF_REG_ARM64_X24 = 24, - PERF_REG_ARM64_X25 = 25, - PERF_REG_ARM64_X26 = 26, - PERF_REG_ARM64_X27 = 27, - PERF_REG_ARM64_X28 = 28, - PERF_REG_ARM64_X29 = 29, - PERF_REG_ARM64_LR = 30, - PERF_REG_ARM64_SP = 31, - PERF_REG_ARM64_PC = 32, - PERF_REG_ARM64_MAX = 33, - PERF_REG_ARM64_VG = 46, - PERF_REG_ARM64_EXTENDED_MAX = 47, -}; +typedef void (*bpf_iter_fini_seq_priv_t)(void *); -enum perf_sample_regs_abi { - PERF_SAMPLE_REGS_ABI_NONE = 0, - PERF_SAMPLE_REGS_ABI_32 = 1, - PERF_SAMPLE_REGS_ABI_64 = 2, +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; }; -struct frame_tail { - struct frame_tail __attribute__((btf_type_tag("user"))) *fp; - unsigned long lr; +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; }; -struct compat_frame_tail { - compat_uptr_t fp; - u32 sp; - u32 lr; +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 perf_callchain_entry_ctx { - struct perf_callchain_entry *entry; - u32 max_stack; - u32 nr; - short contexts; - bool contexts_maxed; +struct btf_field_graph_root { + struct btf *btf; + u32 value_btf_id; + u32 node_offset; + struct btf_record *value_rec; }; -typedef bool (*stack_trace_consume_fn)(void *, unsigned long); +struct btf_field { + u32 offset; + u32 size; + enum btf_field_type type; + union { + struct btf_field_kptr kptr; + struct btf_field_graph_root graph_root; + }; +}; -enum bp_type_idx { - TYPE_INST = 0, - TYPE_DATA = 1, - TYPE_MAX = 2, +struct btf_record { + u32 cnt; + u32 field_mask; + int spin_lock_off; + int timer_off; + int refcount_off; + struct btf_field fields[0]; }; -enum hw_breakpoint_ops { - HW_BREAKPOINT_INSTALL = 0, - HW_BREAKPOINT_UNINSTALL = 1, - HW_BREAKPOINT_RESTORE = 2, +struct obj_cgroup { + struct percpu_ref refcnt; + struct mem_cgroup *memcg; + atomic_t nr_charged_bytes; + union { + struct list_head list; + struct callback_head rcu; + }; }; -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, +struct cacheline_padding { + char x[0]; }; -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 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; }; -enum dbg_active_el { - DBG_ACTIVE_EL0 = 0, - DBG_ACTIVE_EL1 = 1, +struct mem_cgroup_id { + int id; + refcount_t ref; }; -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_BP_KICK_AP = 93, - CPUHP_BRINGUP_CPU = 94, - CPUHP_AP_IDLE_DEAD = 95, - CPUHP_AP_OFFLINE = 96, - CPUHP_AP_CACHECTRL_STARTING = 97, - CPUHP_AP_SCHED_STARTING = 98, - CPUHP_AP_RCUTREE_DYING = 99, - CPUHP_AP_CPU_PM_STARTING = 100, - CPUHP_AP_IRQ_GIC_STARTING = 101, - CPUHP_AP_IRQ_HIP04_STARTING = 102, - CPUHP_AP_IRQ_APPLE_AIC_STARTING = 103, - CPUHP_AP_IRQ_ARMADA_XP_STARTING = 104, - CPUHP_AP_IRQ_BCM2836_STARTING = 105, - CPUHP_AP_IRQ_MIPS_GIC_STARTING = 106, - CPUHP_AP_IRQ_RISCV_STARTING = 107, - CPUHP_AP_IRQ_LOONGARCH_STARTING = 108, - CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 109, - CPUHP_AP_ARM_MVEBU_COHERENCY = 110, - CPUHP_AP_MICROCODE_LOADER = 111, - CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 112, - CPUHP_AP_PERF_X86_STARTING = 113, - CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 114, - CPUHP_AP_PERF_X86_CQM_STARTING = 115, - CPUHP_AP_PERF_X86_CSTATE_STARTING = 116, - CPUHP_AP_PERF_XTENSA_STARTING = 117, - CPUHP_AP_MIPS_OP_LOONGSON3_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_HYPERV_ONLINE = 153, - CPUHP_AP_KVM_ONLINE = 154, - CPUHP_AP_SCHED_WAIT_EMPTY = 155, - CPUHP_AP_SMPBOOT_THREADS = 156, - CPUHP_AP_X86_VDSO_VMA_ONLINE = 157, - CPUHP_AP_IRQ_AFFINITY_ONLINE = 158, - CPUHP_AP_BLK_MQ_ONLINE = 159, - CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 160, - CPUHP_AP_X86_INTEL_EPB_ONLINE = 161, - CPUHP_AP_PERF_ONLINE = 162, - CPUHP_AP_PERF_X86_ONLINE = 163, - CPUHP_AP_PERF_X86_UNCORE_ONLINE = 164, - CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 165, - CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 166, - CPUHP_AP_PERF_X86_RAPL_ONLINE = 167, - CPUHP_AP_PERF_X86_CQM_ONLINE = 168, - CPUHP_AP_PERF_X86_CSTATE_ONLINE = 169, - CPUHP_AP_PERF_X86_IDXD_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 vmpressure { + unsigned long scanned; + unsigned long reclaimed; + unsigned long tree_scanned; + unsigned long tree_reclaimed; + spinlock_t sr_lock; + struct list_head events; + struct mutex events_lock; + struct work_struct work; }; -struct notifier_block; +struct mem_cgroup_threshold_ary; -typedef int (*notifier_fn_t)(struct notifier_block *, unsigned long, void *); +struct mem_cgroup_thresholds { + struct mem_cgroup_threshold_ary *primary; + struct mem_cgroup_threshold_ary *spare; +}; -struct notifier_block { - notifier_fn_t notifier_call; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *next; - int priority; +struct fprop_global { + struct percpu_counter events; + unsigned int period; + seqcount_t sequence; }; -enum kmalloc_cache_type { - KMALLOC_NORMAL = 0, - KMALLOC_RECLAIM = 1, - KMALLOC_DMA = 2, - KMALLOC_CGROUP = 3, - NR_KMALLOC_TYPES = 4, +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; }; -typedef void ttbr_replace_func(phys_addr_t); +struct wb_completion { + atomic_t cnt; + wait_queue_head_t *waitq; +}; -struct cpu_suspend_ctx { - u64 ctx_regs[13]; - u64 sp; +struct memcg_cgwb_frn { + u64 bdi_id; + int memcg_id; + u64 at; + struct wb_completion done; }; -struct sleep_stack_data { - struct cpu_suspend_ctx system_regs; - unsigned long callee_saved_regs[12]; +struct deferred_split { + spinlock_t split_queue_lock; + struct list_head split_queue; + unsigned long split_queue_len; }; -enum pm_qos_type { - PM_QOS_UNITIALIZED = 0, - PM_QOS_MAX = 1, - PM_QOS_MIN = 2, +struct memcg_vmstats; + +struct memcg_vmstats_percpu; + +struct mem_cgroup_per_node; + +struct mem_cgroup { + struct cgroup_subsys_state css; + struct mem_cgroup_id id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct page_counter memory; + union { + struct page_counter swap; + struct page_counter memsw; + }; + struct page_counter kmem; + struct page_counter tcpmem; + struct work_struct high_work; + unsigned long soft_limit; + struct vmpressure vmpressure; + bool oom_group; + bool oom_lock; + int under_oom; + int swappiness; + int oom_kill_disable; + struct cgroup_file events_file; + struct cgroup_file events_local_file; + struct cgroup_file swap_events_file; + struct mutex thresholds_lock; + struct mem_cgroup_thresholds thresholds; + struct mem_cgroup_thresholds memsw_thresholds; + struct list_head oom_notify; + unsigned long move_charge_at_immigrate; + spinlock_t move_lock; + unsigned long move_lock_flags; + struct cacheline_padding _pad1_; + struct memcg_vmstats *vmstats; + atomic_long_t memory_events[9]; + atomic_long_t memory_events_local[9]; + unsigned long socket_pressure; + bool tcpmem_active; + int tcpmem_pressure; + int kmemcg_id; + struct obj_cgroup __attribute__((btf_type_tag("rcu"))) *objcg; + struct obj_cgroup *orig_objcg; + struct list_head objcg_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad2_; + atomic_t moving_account; + struct task_struct *move_lock_task; + struct memcg_vmstats_percpu __attribute__((btf_type_tag("percpu"))) *vmstats_percpu; + struct list_head cgwb_list; + struct wb_domain cgwb_domain; + struct memcg_cgwb_frn cgwb_frn[4]; + struct list_head event_list; + spinlock_t event_list_lock; + struct deferred_split deferred_split_queue; + struct mem_cgroup_per_node *nodeinfo[0]; + long: 64; }; -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 eventfd_ctx; + +struct mem_cgroup_threshold { + struct eventfd_ctx *eventfd; + unsigned long threshold; }; -enum freq_qos_req_type { - FREQ_QOS_MIN = 1, - FREQ_QOS_MAX = 2, +struct mem_cgroup_threshold_ary { + int current_threshold; + unsigned int size; + struct mem_cgroup_threshold entries[0]; }; -typedef void *acpi_handle; +struct memcg_vmstats_percpu { + long state[50]; + unsigned long events[19]; + long state_prev[50]; + unsigned long events_prev[19]; + unsigned long nr_page_events; + unsigned long targets[2]; +}; -typedef u64 phys_cpuid_t; +struct pglist_data; -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 lruvec { + struct list_head lists[5]; + spinlock_t lru_lock; + unsigned long anon_cost; + unsigned long file_cost; + atomic_long_t nonresident_age; + unsigned long refaults[2]; + unsigned long flags; + struct pglist_data *pgdat; }; -struct acpi_processor_cx { - u8 valid; - u8 type; - u32 address; - u8 entry_method; - u8 index; - u32 latency; - u8 bm_sts_skip; - char desc[32]; +struct lruvec_stats { + long state[43]; + long state_local[43]; + long state_pending[43]; }; -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 mem_cgroup_reclaim_iter { + struct mem_cgroup *position; + unsigned int generation; }; -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 lruvec_stats_percpu; + +struct shrinker_info; + +struct mem_cgroup_per_node { + struct lruvec lruvec; + struct lruvec_stats_percpu __attribute__((btf_type_tag("percpu"))) *lruvec_stats_percpu; + struct lruvec_stats lruvec_stats; + unsigned long lru_zone_size[20]; + struct mem_cgroup_reclaim_iter iter; + struct shrinker_info __attribute__((btf_type_tag("rcu"))) *shrinker_info; + struct rb_node tree_node; + unsigned long usage_in_excess; + bool on_tree; + struct mem_cgroup *memcg; }; -struct acpi_pct_register { - u8 descriptor; - u16 length; - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 reserved; - u64 address; -} __attribute__((packed)); +struct free_area { + struct list_head free_list[6]; + unsigned long nr_free; +}; -struct acpi_tsd_package { - u64 num_entries; - u64 revision; - u64 domain; - u64 coord_type; - u64 num_processors; +struct per_cpu_pages; + +struct per_cpu_zonestat; + +struct zone { + unsigned long _watermark[4]; + unsigned long watermark_boost; + unsigned long nr_reserved_highatomic; + long lowmem_reserve[4]; + int node; + struct pglist_data *zone_pgdat; + struct per_cpu_pages __attribute__((btf_type_tag("percpu"))) *per_cpu_pageset; + struct per_cpu_zonestat __attribute__((btf_type_tag("percpu"))) *per_cpu_zonestats; + int pageset_high_min; + int pageset_high_max; + int pageset_batch; + unsigned long zone_start_pfn; + atomic_long_t managed_pages; + unsigned long spanned_pages; + unsigned long present_pages; + unsigned long present_early_pages; + unsigned long cma_pages; + const char *name; + unsigned long nr_isolate_pageblock; + seqlock_t span_seqlock; + int initialized; + long: 64; + long: 64; + 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: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad2_; + unsigned long percpu_drift_mark; + unsigned long compact_cached_free_pfn; + unsigned long compact_cached_migrate_pfn[2]; + unsigned long compact_init_migrate_pfn; + unsigned long compact_init_free_pfn; + unsigned int compact_considered; + unsigned int compact_defer_shift; + int compact_order_failed; + bool compact_blockskip_flush; + bool contiguous; + long: 0; + struct cacheline_padding _pad3_; + atomic_long_t vm_stat[10]; + atomic_long_t vm_numa_event[6]; }; -struct acpi_processor_tx { - u16 power; - u16 performance; +struct zoneref { + struct zone *zone; + int zone_idx; }; -struct acpi_processor_tx_tss; +struct zonelist { + struct zoneref _zonerefs[65]; +}; -struct acpi_processor; +struct memory_failure_stats { + unsigned long total; + unsigned long ignored; + unsigned long failed; + unsigned long delayed; + unsigned long recovered; +}; -struct acpi_processor_throttling { - unsigned int state; - unsigned int platform_limit; - struct acpi_pct_register control_register; - struct acpi_pct_register status_register; - unsigned int state_count; - struct acpi_processor_tx_tss *states_tss; - struct acpi_tsd_package domain_info; - cpumask_var_t shared_cpu_map; - int (*acpi_processor_get_throttling)(struct acpi_processor *); - int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool); - u32 address; - u8 duty_offset; - u8 duty_width; - u8 tsd_valid_flag; - unsigned int shared_type; - struct acpi_processor_tx states[16]; +struct per_cpu_nodestat; + +struct memory_tier; + +struct pglist_data { + struct zone node_zones[4]; + struct zonelist node_zonelists[2]; + int nr_zones; + spinlock_t node_size_lock; + 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 mutex kswapd_lock; + struct task_struct *kswapd; + int kswapd_order; + enum zone_type kswapd_highest_zoneidx; + int kswapd_failures; + int kcompactd_max_order; + enum zone_type kcompactd_highest_zoneidx; + wait_queue_head_t kcompactd_wait; + struct task_struct *kcompactd; + bool proactive_compact_trigger; + unsigned long totalreserve_pages; + unsigned long min_unmapped_pages; + unsigned long min_slab_pages; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct deferred_split deferred_split_queue; + unsigned int nbp_rl_start; + unsigned long nbp_rl_nr_cand; + unsigned int nbp_threshold; + unsigned int nbp_th_start; + unsigned long nbp_th_nr_cand; + struct lruvec __lruvec; + unsigned long flags; + 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[43]; + struct memory_tier __attribute__((btf_type_tag("rcu"))) *memtier; + struct memory_failure_stats mf_stats; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct acpi_processor_lx { - int px; - int tx; +struct per_cpu_pages { + spinlock_t lock; + int count; + int high; + int high_min; + int high_max; + int batch; + u8 flags; + u8 alloc_factor; + u8 expire; + short free_count; + struct list_head lists[13]; + long: 64; + long: 64; }; -struct acpi_processor_limit { - struct acpi_processor_lx state; - struct acpi_processor_lx thermal; - struct acpi_processor_lx user; +struct per_cpu_zonestat { + s8 vm_stat_diff[10]; + s8 stat_threshold; + unsigned long vm_numa_event[6]; }; -struct freq_constraints; +struct per_cpu_nodestat { + s8 stat_threshold; + s8 vm_node_stat_diff[43]; +}; -struct freq_qos_request { - enum freq_qos_req_type type; - struct plist_node pnode; - struct freq_constraints *qos; +struct memory_tier { + struct list_head list; + struct list_head memory_types; + int adistance_start; + struct device dev; + nodemask_t lower_tier_mask; }; -struct acpi_processor_performance; +struct lruvec_stats_percpu { + long state[43]; + long state_prev[43]; +}; -struct thermal_cooling_device; +struct shrinker_info_unit; -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 shrinker_info { + struct callback_head rcu; + int map_nr_max; + struct shrinker_info_unit *unit[0]; }; -struct acpi_psd_package { - u64 num_entries; - u64 revision; - u64 domain; - u64 coord_type; - u64 num_processors; +struct shrinker_info_unit { + atomic_long_t nr_deferred[64]; + unsigned long map[1]; }; -struct acpi_processor_px; +struct bpf_prog_ops { + int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); +}; -struct acpi_processor_performance { - unsigned int state; - unsigned int platform_limit; - struct acpi_pct_register control_register; - struct acpi_pct_register status_register; - unsigned int state_count; - struct acpi_processor_px *states; - struct acpi_psd_package domain_info; - cpumask_var_t shared_cpu_map; - unsigned int shared_type; +struct btf_mod_pair { + struct btf *btf; + struct module *module; }; -struct acpi_processor_px { - u64 core_frequency; - u64 power; - u64 transition_latency; - u64 bus_master_latency; - u64 control; - u64 status; +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 acpi_processor_tx_tss { - u64 freqpercentage; - u64 power; - u64 transition_latency; - u64 control; - u64 status; +struct bpf_func_info { + __u32 insn_off; + __u32 type_id; }; -struct thermal_cooling_device_ops; +struct bpf_func_info_aux { + u16 linkage; + bool unreliable; +}; -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 bpf_line_info { + __u32 insn_off; + __u32 file_name_off; + __u32 line_off; + __u32 line_col; }; -struct cdev { - struct kobject kobj; - struct module *owner; - const struct file_operations *ops; - struct list_head list; - dev_t dev; - unsigned int count; +struct disk_stats; + +struct blk_holder_ops; + +struct partition_meta_info; + +struct block_device { + sector_t bd_start_sect; + sector_t bd_nr_sectors; + struct gendisk *bd_disk; + struct request_queue *bd_queue; + struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats; + unsigned long bd_stamp; + bool bd_read_only; + u8 bd_partno; + bool bd_write_holder; + bool bd_has_submit_bio; + dev_t bd_dev; + struct inode *bd_inode; + atomic_t bd_openers; + spinlock_t bd_size_lock; + void *bd_claiming; + void *bd_holder; + const struct blk_holder_ops *bd_holder_ops; + struct mutex bd_holder_lock; + int bd_fsfreeze_count; + int bd_holders; + struct kobject *bd_holder_dir; + struct mutex bd_fsfreeze_mutex; + struct super_block *bd_fsfreeze_sb; + struct partition_meta_info *bd_meta_info; + bool bd_ro_warned; + struct device bd_device; }; -struct plist_head { - struct list_head node_list; +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 blocking_notifier_head; +struct blk_holder_ops { + void (*mark_dead)(struct block_device *, bool); + void (*sync)(struct block_device *); +}; -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 bio; + +struct bio_list { + struct bio *head; + struct bio *tail; }; -struct blocking_notifier_head { - struct rw_semaphore rwsem; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +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 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 blkcg_gq; + +struct bio_integrity_payload; + +struct bio_set; + +struct bio { + struct bio *bi_next; + struct block_device *bi_bdev; + blk_opf_t bi_opf; + unsigned short bi_flags; + unsigned short bi_ioprio; + 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; + union { + struct bio_integrity_payload *bi_integrity; + }; + 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 pm_qos_flags { - struct list_head list; - s32 effective_flags; +struct bio_integrity_payload { + struct bio *bip_bio; + struct bvec_iter bip_iter; + unsigned short bip_vcnt; + unsigned short bip_max_vcnt; + unsigned short bip_flags; + struct bvec_iter bio_iter; + struct work_struct bip_work; + struct bio_vec *bip_vec; + struct bio_vec bip_inline_vecs[0]; }; -struct dev_pm_qos_request; +typedef void *mempool_alloc_t(gfp_t, void *); -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; +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; }; -struct pm_qos_flags_request { - struct list_head node; - s32 flags; +typedef struct mempool_s mempool_t; + +struct bio_alloc_cache; + +struct bio_set { + struct kmem_cache *bio_slab; + unsigned int front_pad; + struct bio_alloc_cache __attribute__((btf_type_tag("percpu"))) *cache; + mempool_t bio_pool; + mempool_t bvec_pool; + mempool_t bio_integrity_pool; + mempool_t bvec_integrity_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 dev_pm_qos_request { - enum dev_pm_qos_req_type type; - union { - struct plist_node pnode; - struct pm_qos_flags_request flr; - struct freq_qos_request freq; - } data; - struct device *dev; +struct bio_alloc_cache { + struct bio *free_list; + struct bio *free_list_irq; + unsigned int nr; + unsigned int nr_irq; }; -typedef u32 phandle; +struct bpf_run_ctx {}; -struct property; +struct arm_smccc_res { + unsigned long a0; + unsigned long a1; + unsigned long a2; + unsigned long a3; +}; -struct device_node { +struct ftr_set_desc { + char name[20]; + struct arm64_ftr_override *override; + struct { + char name[10]; + u8 shift; + u8 width; + bool (*filter)(u64); + } fields[0]; +}; + +struct arm_cpuidle_irq_context {}; + +struct aarch64_insn_patch { + void **text_addrs; + u32 *new_insns; + int insn_cnt; + atomic_t cpu_count; +}; + +struct fregs_offset { 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; - struct kobject kobj; - unsigned long _flags; - void *data; + int offset; }; -struct property { - char *name; - int length; - void *value; - struct property *next; - struct bin_attribute attr; +enum aarch64_insn_branch_type { + AARCH64_INSN_BRANCH_NOLINK = 0, + AARCH64_INSN_BRANCH_LINK = 1, + AARCH64_INSN_BRANCH_RETURN = 2, + AARCH64_INSN_BRANCH_COMP_ZERO = 3, + AARCH64_INSN_BRANCH_COMP_NONZERO = 4, }; -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 *); +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 jump_label_type { - JUMP_LABEL_NOP = 0, - JUMP_LABEL_JMP = 1, +enum { + FTRACE_FL_ENABLED = 2147483648, + FTRACE_FL_REGS = 1073741824, + FTRACE_FL_REGS_EN = 536870912, + FTRACE_FL_TRAMP = 268435456, + FTRACE_FL_TRAMP_EN = 134217728, + FTRACE_FL_IPMODIFY = 67108864, + FTRACE_FL_DISABLED = 33554432, + FTRACE_FL_DIRECT = 16777216, + FTRACE_FL_DIRECT_EN = 8388608, + FTRACE_FL_CALL_OPS = 4194304, + FTRACE_FL_CALL_OPS_EN = 2097152, + FTRACE_FL_TOUCHED = 1048576, + FTRACE_FL_MODIFIED = 524288, }; -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 dyn_arch_ftrace {}; -enum lockdep_ok { - LOCKDEP_STILL_OK = 0, - LOCKDEP_NOW_UNRELIABLE = 1, +struct dyn_ftrace { + unsigned long ip; + unsigned long flags; + struct dyn_arch_ftrace arch; +}; + +struct frame_tail { + struct frame_tail __attribute__((btf_type_tag("user"))) *fp; + unsigned long lr; +}; + +struct compat_frame_tail { + compat_uptr_t fp; + u32 sp; + u32 lr; +}; + +struct perf_callchain_entry_ctx { + struct perf_callchain_entry *entry; + u32 max_stack; + u32 nr; + short contexts; + bool contexts_maxed; +}; + +enum jump_label_type { + JUMP_LABEL_NOP = 0, + JUMP_LABEL_JMP = 1, }; typedef int (*pte_fn_t)(pte_t *, unsigned long, void *); @@ -8550,1825 +8884,1959 @@ struct set_perm_data { bool has_bti; }; -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 pvclock_vcpu_stolen_time; + +struct pv_time_stolen_time_region { + struct pvclock_vcpu_stolen_time __attribute__((btf_type_tag("rcu"))) *kaddr; }; -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; +struct pvclock_vcpu_stolen_time { + __le32 revision; + __le32 attributes; + __le64 stolen_time; + u8 padding[48]; }; -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; +enum { + MEMREMAP_WB = 1, + MEMREMAP_WT = 2, + MEMREMAP_WC = 4, + MEMREMAP_ENC = 8, + MEMREMAP_DEC = 16, }; -typedef u64 acpi_bus_address; +typedef phys_addr_t resource_size_t; -typedef char acpi_device_name[40]; +enum { + ASSUME_PERFECT = 255, + ASSUME_VALID_DTB = 1, + ASSUME_VALID_INPUT = 2, + ASSUME_LATEST = 4, + ASSUME_NO_ROLLBACK = 8, + ASSUME_LIBFDT_ORDER = 16, + ASSUME_LIBFDT_FLAWLESS = 32, +}; -typedef char acpi_device_class[20]; +typedef __u32 __be32; -union acpi_object; +typedef __be32 fdt32_t; -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 fdt_header { + fdt32_t magic; + fdt32_t totalsize; + fdt32_t off_dt_struct; + fdt32_t off_dt_strings; + fdt32_t off_mem_rsvmap; + fdt32_t version; + fdt32_t last_comp_version; + fdt32_t boot_cpuid_phys; + fdt32_t size_dt_strings; + fdt32_t size_dt_struct; }; -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; -}; +typedef u8 uint8_t; -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; -}; +typedef __u64 __be64; -struct acpi_device_power { - int state; - struct acpi_device_power_flags flags; - struct acpi_device_power_state states[5]; - u8 state_for_enumeration; -}; +typedef __be64 fdt64_t; -struct acpi_device_wakeup_flags { - u8 valid: 1; - u8 notifier_present: 1; +struct fdt_reserve_entry { + fdt64_t address; + fdt64_t size; }; -struct acpi_device_wakeup_context { - void (*func)(struct acpi_device_wakeup_context *); - struct device *dev; -}; +typedef u64 uint64_t; -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 fdt_property { + fdt32_t tag; + fdt32_t len; + fdt32_t nameoff; + char data[0]; }; -struct acpi_device_perf_flags { - u8 reserved: 8; +struct fdt_node_header { + fdt32_t tag; + char name[0]; }; -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; +enum { + IRQD_TRIGGER_MASK = 15, + IRQD_SETAFFINITY_PENDING = 256, + IRQD_ACTIVATED = 512, + IRQD_NO_BALANCING = 1024, + IRQD_PER_CPU = 2048, + IRQD_AFFINITY_SET = 4096, + IRQD_LEVEL = 8192, + IRQD_WAKEUP_STATE = 16384, + IRQD_MOVE_PCNTXT = 32768, + IRQD_IRQ_DISABLED = 65536, + IRQD_IRQ_MASKED = 131072, + IRQD_IRQ_INPROGRESS = 262144, + IRQD_WAKEUP_ARMED = 524288, + IRQD_FORWARDED_TO_VCPU = 1048576, + IRQD_AFFINITY_MANAGED = 2097152, + IRQD_IRQ_STARTED = 4194304, + IRQD_MANAGED_SHUTDOWN = 8388608, + IRQD_SINGLE_TARGET = 16777216, + IRQD_DEFAULT_TRIGGER_SET = 33554432, + IRQD_CAN_RESERVE = 67108864, + IRQD_HANDLE_ENFORCE_IRQCTX = 134217728, + IRQD_AFFINITY_ON_ACTIVATE = 268435456, + IRQD_IRQ_ENABLED_ON_SUSPEND = 536870912, + IRQD_RESEND_WHEN_IN_PROGRESS = 1073741824, }; -struct proc_dir_entry; +typedef unsigned long kimage_entry_t; -struct acpi_device_dir { - struct proc_dir_entry *entry; +struct kexec_segment { + union { + void __attribute__((btf_type_tag("user"))) *buf; + void *kbuf; + }; + size_t bufsz; + unsigned long mem; + size_t memsz; }; -struct acpi_device_data { - const union acpi_object *pointer; - struct list_head properties; - const union acpi_object *of_compatible; - struct list_head subnodes; +struct kimage_arch { + void *dtb; + phys_addr_t dtb_mem; + phys_addr_t kern_reloc; + phys_addr_t el2_vectors; + phys_addr_t ttbr0; + phys_addr_t ttbr1; + phys_addr_t zero_page; + unsigned long phys_offset; + unsigned long t0sz; }; -struct acpi_scan_handler; - -struct acpi_hotplug_context; +struct purgatory_info { + const Elf64_Ehdr *ehdr; + Elf64_Shdr *sechdrs; + void *purgatory_buf; +}; -struct acpi_gpio_mapping; +struct kexec_file_ops; -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 *); +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 *kernel_buf; + unsigned long kernel_buf_len; + void *initrd_buf; + unsigned long initrd_buf_len; + char *cmdline_buf; + unsigned long cmdline_buf_len; + const struct kexec_file_ops *fops; + void *image_loader_data; + struct purgatory_info purgatory_info; + void *elf_headers; + unsigned long elf_headers_sz; + unsigned long elf_load_addr; }; -typedef u32 acpi_object_type; +typedef int kexec_probe_t(const char *, unsigned long); -typedef u64 acpi_io_address; +typedef void *kexec_load_t(struct kimage *, char *, unsigned long, char *, unsigned long, char *, unsigned long); -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; -}; +typedef int kexec_cleanup_t(void *); -struct acpi_device_perf_state { - struct { - u8 valid: 1; - u8 reserved: 7; - } flags; - u8 power; - u8 performance; - int latency; +struct kexec_file_ops { + kexec_probe_t *probe; + kexec_load_t *load; + kexec_cleanup_t *cleanup; }; -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 trans_pgd_info { + void * (*trans_alloc_page)(void *); + void *trans_alloc_arg; }; -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 reclaim_state { + unsigned long reclaimed; }; -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 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; }; -struct acpi_gpio_params; +typedef struct wait_queue_entry wait_queue_entry_t; -struct acpi_gpio_mapping { - const char *name; - const struct acpi_gpio_params *data; - unsigned int size; - unsigned int quirks; +struct wait_page_queue { + struct folio *folio; + int bit_nr; + wait_queue_entry_t wait; }; -struct acpi_gpio_params { - unsigned int crs_entry_index; - unsigned int line_index; - bool active_low; +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 pci_bus; +struct swap_cluster_info { + spinlock_t lock; + unsigned int data: 24; + unsigned int flags: 8; +}; -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); +struct swap_cluster_list { + struct swap_cluster_info head; + struct swap_cluster_info tail; }; -typedef phys_addr_t resource_size_t; +struct percpu_cluster; -struct resource { - resource_size_t start; - resource_size_t end; - const char *name; +struct swap_info_struct { + struct percpu_ref users; unsigned long flags; - unsigned long desc; - struct resource *parent; - struct resource *sibling; - struct resource *child; + 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 bdev_handle *bdev_handle; + 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]; }; -typedef unsigned short pci_bus_flags_t; +struct percpu_cluster { + struct swap_cluster_info index; + unsigned int next; +}; -struct pci_dev; +typedef struct { + pgd_t pgd; +} p4d_t; -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; - int domain_nr; - 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 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[16]; + unsigned int max_huge_pages_node[16]; + unsigned int nr_huge_pages_node[16]; + unsigned int free_huge_pages_node[16]; + unsigned int surplus_huge_pages_node[16]; + struct cftype cgroup_files_dfl[8]; + struct cftype cgroup_files_legacy[10]; + char name[32]; }; -typedef int pci_power_t; +struct hugepage_subpool; -typedef unsigned int pci_channel_state_t; +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; +}; -typedef unsigned short pci_dev_flags_t; +struct hugepage_subpool { + spinlock_t lock; + long count; + long max_hpages; + long used_hpages; + struct hstate *hstate; + long min_hpages; + long rsv_hpages; +}; -struct pci_vpd { - struct mutex lock; - unsigned int len; - u8 cap; +enum vgic_irq_config { + VGIC_CONFIG_EDGE = 0, + VGIC_CONFIG_LEVEL = 1, }; -struct pci_slot; +enum iodev_type { + IODEV_CPUIF = 0, + IODEV_DIST = 1, + IODEV_REDIST = 2, + IODEV_ITS = 3, +}; -struct aer_stats; +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 rcec_ea; +enum kvm_stat_kind { + KVM_STAT_VM = 0, + KVM_STAT_VCPU = 1, +}; -struct pci_driver; +struct kvm_guest_debug_arch { + __u64 dbg_bcr[16]; + __u64 dbg_bvr[16]; + __u64 dbg_wcr[16]; + __u64 dbg_wvr[16]; +}; -struct pcie_link_state; +typedef u64 gpa_t; -struct pci_sriov; +struct kvm_vcpu; -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; - u16 aer_cap; - struct aer_stats *aer_stats; - 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[17]; - 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[17]; - struct bin_attribute *res_attr_wc[17]; - 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 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]; +struct kvm_cpu_context { + struct user_pt_regs regs; + u64 spsr_abt; + u64 spsr_und; + u64 spsr_irq; + u64 spsr_fiq; + struct user_fpsimd_state fp_regs; + u64 sys_regs[166]; + struct kvm_vcpu *__hyp_running_vcpu; + long: 64; }; -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 kvm_vcpu_fault_info { + u64 esr_el2; + u64 far_el2; + u64 hpfar_el2; + u64 disr_el1; }; -struct pci_dynids { - spinlock_t lock; - struct list_head list; +struct vgic_v2_cpu_if { + u32 vgic_hcr; + u32 vgic_vmcr; + u32 vgic_apr; + u32 vgic_lr[64]; + unsigned int used_lrs; }; -struct pci_device_id; +typedef unsigned long irq_hw_number_t; -struct pci_error_handlers; +struct its_vm; -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 its_vpe { + struct page *vpt_page; + struct its_vm *its_vm; + atomic_t vlpi_count; + int irq; + irq_hw_number_t vpe_db_lpi; + bool resident; + bool ready; + union { + struct { + int vpe_proxy_event; + bool idai; + }; + struct { + struct fwnode_handle *fwnode; + struct irq_domain *sgi_domain; + struct { + u8 priority; + bool enabled; + bool group; + } sgi_config[16]; + atomic_t vmapp_count; + }; + }; + raw_spinlock_t vpe_lock; + u16 col_idx; + u16 vpe_id; + bool pending_last; }; -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; +struct vgic_v3_cpu_if { + u32 vgic_hcr; + u32 vgic_vmcr; + u32 vgic_sre; + u32 vgic_ap0r[4]; + u32 vgic_ap1r[4]; + u64 vgic_lr[16]; + struct its_vpe its_vpe; + unsigned int used_lrs; }; -typedef unsigned int pci_ers_result_t; +struct irq_ops; -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 vgic_irq { + raw_spinlock_t irq_lock; + struct list_head lpi_list; + struct list_head ap_list; + struct kvm_vcpu *vcpu; + struct kvm_vcpu *target_vcpu; + u32 intid; + bool line_level; + bool pending_latch; + bool active; + bool enabled; + bool hw; + struct kref refcount; + u32 hwintid; + unsigned int host_irq; + union { + u8 targets; + u32 mpidr; + }; + u8 source; + u8 active_source; + u8 priority; + u8 group; + enum vgic_irq_config config; + struct irq_ops *ops; + void *owner; }; -struct acpi_pci_root; - -struct acpi_pci_root_ops; +struct kvm_io_device_ops; -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 kvm_io_device { + const struct kvm_io_device_ops *ops; }; -struct pci_config_window; - -struct acpi_pci_generic_root_info { - struct acpi_pci_root_info common; - struct pci_config_window *cfg; -}; +struct vgic_its; -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 vgic_register_region; -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 vgic_io_device { + gpa_t base_addr; + union { + struct kvm_vcpu *redist_vcpu; + struct vgic_its *its; + }; + const struct vgic_register_region *regions; + enum iodev_type iodev_type; + int nr_regions; + struct kvm_io_device dev; }; -struct pci_ecam_ops; +struct vgic_redist_region; -struct pci_config_window { - struct resource res; - struct resource busr; - unsigned int bus_shift; - void *priv; - const struct pci_ecam_ops *ops; +struct vgic_cpu { union { - void *win; - void **winp; + struct vgic_v2_cpu_if vgic_v2; + struct vgic_v3_cpu_if vgic_v3; }; - struct device *parent; + struct vgic_irq private_irqs[32]; + raw_spinlock_t ap_list_lock; + struct list_head ap_list_head; + struct vgic_io_device rd_iodev; + struct vgic_redist_region *rdreg; + u32 rdreg_index; + atomic_t syncr_busy; + u64 pendbaser; + atomic_t ctlr; + u32 num_pri_bits; + u32 num_id_bits; }; -struct pci_ecam_ops { - unsigned int bus_shift; - struct pci_ops pci_ops; - int (*init)(struct pci_config_window *); +struct arch_timer_offset { + u64 *vm_offset; + u64 *vcpu_offset; }; -struct resource_entry { - struct list_head node; - struct resource *res; - resource_size_t offset; - struct resource __res; +struct arch_timer_context { + struct kvm_vcpu *vcpu; + struct hrtimer hrtimer; + u64 ns_frac; + struct arch_timer_offset offset; + bool loaded; + struct { + bool level; + } irq; + u32 host_timer_irq; }; -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; - unsigned long private[0]; +struct arch_timer_cpu { + struct arch_timer_context timers[4]; + struct hrtimer bg_timer; + bool enabled; }; -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, +struct kvm_pmu_events { + u32 events_host; + u32 events_guest; }; -enum irqchip_irq_state { - IRQCHIP_STATE_PENDING = 0, - IRQCHIP_STATE_ACTIVE = 1, - IRQCHIP_STATE_MASKED = 2, - IRQCHIP_STATE_LINE_LEVEL = 3, +struct kvm_pmc { + u8 idx; + struct perf_event *perf_event; }; -enum irq_gc_flags { - IRQ_GC_INIT_MASK_CACHE = 1, - IRQ_GC_INIT_NESTED_LOCK = 2, - IRQ_GC_MASK_CACHE_PER_TYPE = 4, - IRQ_GC_NO_MASK = 8, - IRQ_GC_BE_IO = 16, +struct kvm_pmu { + struct irq_work overflow_work; + struct kvm_pmu_events events; + struct kvm_pmc pmc[32]; + int irq_num; + bool created; + bool irq_level; }; -enum irqreturn { - IRQ_NONE = 0, - IRQ_HANDLED = 1, - IRQ_WAKE_THREAD = 2, +struct kvm_mp_state { + __u32 mp_state; }; -struct nmi_ctx { - u64 hcr; - unsigned int cnt; +struct kvm_mmu_memory_cache { + gfp_t gfp_zero; + gfp_t gfp_custom; + struct kmem_cache *kmem_cache; + int capacity; + int nobjs; + void **objects; }; -struct 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 vcpu_reset_state { + unsigned long pc; + unsigned long r0; + bool be; + bool reset; }; -struct acpi_generic_address { - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 access_width; - u64 address; -} __attribute__((packed)); +struct kvm_s2_mmu; -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 ld_semaphore { - atomic_long_t count; - raw_spinlock_t wait_lock; - unsigned int wait_readers; - struct list_head read_wait; - struct list_head write_wait; +struct kvm_vcpu_arch { + struct kvm_cpu_context ctxt; + void *sve_state; + enum fp_type fp_type; + unsigned int sve_max_vl; + u64 svcr; + struct kvm_s2_mmu *hw_mmu; + u64 hcr_el2; + u64 mdcr_el2; + u64 cptr_el2; + u64 mdcr_el2_host; + struct kvm_vcpu_fault_info fault; + enum { + FP_STATE_FREE = 0, + FP_STATE_HOST_OWNED = 1, + FP_STATE_GUEST_OWNED = 2, + } fp_state; + u8 cflags; + u8 iflags; + u8 sflags; + bool pause; + struct kvm_guest_debug_arch *debug_ptr; + struct kvm_guest_debug_arch vcpu_debug_state; + struct kvm_guest_debug_arch external_debug_state; + struct user_fpsimd_state *host_fpsimd_state; + struct task_struct *parent_task; + struct { + struct kvm_guest_debug_arch regs; + u64 pmscr_el1; + u64 trfcr_el1; + } host_debug_state; + struct vgic_cpu vgic_cpu; + struct arch_timer_cpu timer_cpu; + struct kvm_pmu pmu; + struct { + u32 mdscr_el1; + bool pstate_ss; + } guest_debug_preserved; + struct kvm_mp_state mp_state; + spinlock_t mp_state_lock; + struct kvm_mmu_memory_cache mmu_page_cache; + u64 vsesr_el2; + struct vcpu_reset_state reset_state; + struct { + u64 last_steal; + gpa_t base; + } steal; + u32 *ccsidr; }; -typedef unsigned int tcflag_t; - -typedef unsigned char cc_t; - -typedef unsigned int speed_t; +struct preempt_ops; -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 preempt_notifier { + struct hlist_node link; + struct preempt_ops *ops; }; -struct winsize { - unsigned short ws_row; - unsigned short ws_col; - unsigned short ws_xpixel; - unsigned short ws_ypixel; +struct kvm_mmio_fragment { + gpa_t gpa; + void *data; + unsigned int len; }; -struct tty_driver; - -struct tty_operations; +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 tty_ldisc; +struct kvm_vcpu_stat { + struct kvm_vcpu_stat_generic generic; + u64 hvc_exit_stat; + u64 wfe_exit_stat; + u64 wfi_exit_stat; + u64 mmio_exit_user; + u64 mmio_exit_kernel; + u64 signal_exits; + u64 exits; +}; -struct tty_port; +struct kvm_dirty_gfn; -struct tty_struct { - struct kref kref; - struct device *dev; - struct tty_driver *driver; - const struct tty_operations *ops; +struct kvm_dirty_ring { + u32 dirty_index; + u32 reset_index; + u32 size; + u32 soft_limit; + struct kvm_dirty_gfn *dirty_gfns; 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; - bool 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; }; -typedef unsigned long irq_hw_number_t; - -struct irq_domain_ops; - -struct irq_domain_chip_generic; +struct kvm; -struct msi_parent_ops; +struct kvm_run; -struct irq_data; +struct kvm_memory_slot; -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 kvm_vcpu { + struct kvm *kvm; + struct preempt_notifier preempt_notifier; + int cpu; + int vcpu_id; + int vcpu_idx; + int ____srcu_idx; + int mode; + u64 requests; + unsigned long guest_debug; 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 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]; + struct { + bool in_spin_loop; + bool dy_eligible; + } spin_loop; + bool preempted; + bool ready; + long: 64; + 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; + long: 64; }; -struct irq_fwspec; +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 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 kvm_vm_stat_generic { + u64 remote_tlb_flush; + u64 remote_tlb_flush_requests; }; -struct irq_fwspec { - struct fwnode_handle *fwnode; - int param_count; - u32 param[16]; +struct kvm_vm_stat { + struct kvm_vm_stat_generic generic; }; -struct irq_common_data; +struct kvm_vmid { + atomic64_t id; +}; -struct irq_chip; +struct kvm_pgtable; -struct irq_data { - u32 mask; - unsigned int irq; - unsigned long hwirq; - struct irq_common_data *common; - struct irq_chip *chip; +struct kvm_arch; + +struct kvm_s2_mmu { + struct kvm_vmid vmid; + phys_addr_t pgd_phys; + struct kvm_pgtable *pgt; + u64 vtcr; + int __attribute__((btf_type_tag("percpu"))) *last_vcpu_ran; + struct kvm_mmu_memory_cache split_page_cache; + uint64_t split_page_chunk_size; + struct kvm_arch *arch; +}; + +struct its_vm { + struct fwnode_handle *fwnode; struct irq_domain *domain; - struct irq_data *parent_data; - void *chip_data; + struct page *vprop_page; + struct its_vpe **vpes; + int nr_vpes; + irq_hw_number_t db_lpi_base; + unsigned long *db_bitmap; + int nr_db_lpis; + u32 vlpi_count[16]; }; -struct msi_desc; +struct vgic_state_iter; -struct irq_common_data { - unsigned int state_use_accessors; - unsigned int node; - void *handler_data; - struct msi_desc *msi_desc; - cpumask_var_t affinity; - cpumask_var_t effective_affinity; - unsigned int ipi_offset; +struct vgic_dist { + bool in_kernel; + bool ready; + bool initialized; + u32 vgic_model; + u32 implementation_rev; + bool v2_groups_user_writable; + bool msis_require_devid; + int nr_spis; + gpa_t vgic_dist_base; + union { + gpa_t vgic_cpu_base; + struct list_head rd_regions; + }; + bool enabled; + bool nassgireq; + struct vgic_irq *spis; + struct vgic_io_device dist_iodev; + bool has_its; + bool table_write_in_progress; + u64 propbaser; + raw_spinlock_t lpi_list_lock; + struct list_head lpi_list_head; + int lpi_list_count; + struct list_head lpi_translation_cache; + struct vgic_state_iter *iter; + struct its_vm its_vm; }; -struct msi_msg; +struct arch_timer_vm_data { + u64 voffset; + u64 poffset; + u8 ppi[4]; +}; -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 kvm_smccc_features { + unsigned long std_bmap; + unsigned long std_hyp_bmap; + unsigned long vendor_hyp_bmap; }; -struct irq_chip_generic; +typedef unsigned int pkvm_handle_t; -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 kvm_hyp_memcache { + phys_addr_t head; + unsigned long nr_pages; }; -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 kvm_protected_vm { + pkvm_handle_t handle; + struct kvm_hyp_memcache teardown_mc; }; -struct irq_desc; - -typedef void (*irq_flow_handler_t)(struct irq_desc *); +struct kvm_mpidr_data; -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 arm_pmu; -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 kvm_arch { + struct kvm_s2_mmu mmu; + struct vgic_dist vgic; + struct arch_timer_vm_data timer_data; + u32 psci_version; + struct mutex config_lock; + unsigned long flags; + unsigned long vcpu_features[1]; + struct kvm_mpidr_data *mpidr_data; + unsigned long *pmu_filter; + struct arm_pmu *arm_pmu; + cpumask_var_t supported_cpus; + u8 pmcr_n; + struct kvm_smccc_features smccc_feat; + struct maple_tree smccc_filter; + u64 id_regs[56]; + struct kvm_protected_vm pkvm; }; -struct irqaction; - -struct irq_affinity_notify; +struct mmu_notifier_ops; -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; - 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 mmu_notifier { + struct hlist_node hlist; + const struct mmu_notifier_ops *ops; + struct mm_struct *mm; struct callback_head rcu; - struct kobject kobj; - struct mutex request_mutex; - int parent_irq; - struct module *owner; - const char *name; - struct hlist_node resend_node; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; + unsigned int users; }; -typedef enum irqreturn irqreturn_t; - -typedef irqreturn_t (*irq_handler_t)(int, void *); +struct kvm_io_bus; -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 kvm_coalesced_mmio_ring; -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 kvm_irq_routing_table; -struct msi_domain_info; +struct kvm_stat_data; -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 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 { + spinlock_t lock; + struct list_head items; + struct list_head resampler_list; + struct mutex resampler_lock; + } irqfds; + struct list_head ioeventfds; + struct kvm_vm_stat stat; + struct kvm_arch arch; + refcount_t users_count; + struct kvm_coalesced_mmio_ring *coalesced_mmio_ring; + spinlock_t ring_lock; + struct list_head coalesced_zones; + struct mutex irq_lock; + struct kvm_irq_routing_table __attribute__((btf_type_tag("rcu"))) *irq_routing; + struct hlist_head irq_ack_notifier_list; + 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 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 kvm_io_range { + gpa_t addr; + int len; + struct kvm_io_device *dev; }; -struct __kfifo { - unsigned int in; - unsigned int out; - unsigned int mask; - unsigned int esize; - void *data; +struct kvm_io_bus { + int dev_count; + int ioeventfd_count; + struct kvm_io_range range[0]; }; -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 kvm_io_device_ops { + int (*read)(struct kvm_vcpu *, struct kvm_io_device *, gpa_t, int, void *); + int (*write)(struct kvm_vcpu *, struct kvm_io_device *, gpa_t, int, const void *); + void (*destructor)(struct kvm_io_device *); }; -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 irq_ops { + unsigned long flags; + bool (*get_input_level)(int); }; -struct tty_port_operations; - -struct tty_port_client_operations; +struct kvm_device; -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 vgic_its { + gpa_t vgic_its_base; + bool enabled; + struct vgic_io_device iodev; + struct kvm_device *dev; + u64 baser_device_table; + u64 baser_coll_table; + struct mutex cmd_lock; + u64 cbaser; + u32 creadr; + u32 cwriter; + u32 abi_rev; + struct mutex its_lock; + struct list_head device_list; + struct list_head collection_list; }; -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 kvm_device_ops; -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 kvm_device { + const struct kvm_device_ops *ops; + struct kvm *kvm; + void *private; + struct list_head vm_node; }; -struct serial_icounter_struct; - -struct serial_struct; +struct kvm_device_attr; -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 kvm_device_ops { + const char *name; + int (*create)(struct kvm_device *, u32); + void (*init)(struct kvm_device *); + void (*destroy)(struct kvm_device *); + void (*release)(struct kvm_device *); + int (*set_attr)(struct kvm_device *, struct kvm_device_attr *); + int (*get_attr)(struct kvm_device *, struct kvm_device_attr *); + int (*has_attr)(struct kvm_device *, struct kvm_device_attr *); + long (*ioctl)(struct kvm_device *, unsigned int, unsigned long); + int (*mmap)(struct kvm_device *, struct vm_area_struct *); }; -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 kvm_device_attr { + __u32 flags; + __u32 group; + __u64 attr; + __u64 addr; }; -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 vgic_register_region { + unsigned int reg_offset; + unsigned int len; + unsigned int bits_per_irq; + unsigned int access_flags; + union { + unsigned long (*read)(struct kvm_vcpu *, gpa_t, unsigned int); + unsigned long (*its_read)(struct kvm *, struct vgic_its *, gpa_t, unsigned int); + }; + union { + void (*write)(struct kvm_vcpu *, gpa_t, unsigned int, unsigned long); + void (*its_write)(struct kvm *, struct vgic_its *, gpa_t, unsigned int, unsigned long); + }; + unsigned long (*uaccess_read)(struct kvm_vcpu *, gpa_t, unsigned int); + union { + int (*uaccess_write)(struct kvm_vcpu *, gpa_t, unsigned int, unsigned long); + int (*uaccess_its_write)(struct kvm *, struct vgic_its *, gpa_t, unsigned int, unsigned long); + }; }; -struct tty_ldisc_ops; - -struct tty_ldisc { - struct tty_ldisc_ops *ops; - struct tty_struct *tty; +struct kvm_mpidr_data { + u64 mpidr_mask; + struct { + struct {} __empty_cmpidr_to_idx; + u16 cmpidr_to_idx[0]; + }; }; -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 kvm_coalesced_mmio { + __u64 phys_addr; + __u32 len; + union { + __u32 pad; + __u32 pio; + }; + __u8 data[8]; }; -typedef u32 acpi_status; - -typedef char *acpi_string; +struct kvm_coalesced_mmio_ring { + __u32 first; + __u32 last; + struct kvm_coalesced_mmio coalesced_mmio[0]; +}; -typedef u64 acpi_physical_address; +struct kvm_irq_routing_table { + int chip[988]; + u32 nr_rt_entries; + struct hlist_head map[0]; +}; -typedef u64 acpi_size; +struct mmu_notifier_range; -enum acpi_srat_type { - ACPI_SRAT_TYPE_CPU_AFFINITY = 0, - ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1, - ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, - ACPI_SRAT_TYPE_GICC_AFFINITY = 3, - ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, - ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, - ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, - ACPI_SRAT_TYPE_RESERVED = 7, +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 (*arch_invalidate_secondary_tlbs)(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 acpi_subtable_header { - u8 type; - u8 length; +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 acpi_srat_gicc_affinity { - struct acpi_subtable_header header; - u32 proximity_domain; - u32 acpi_processor_uid; - u32 flags; - u32 clock_domain; -} __attribute__((packed)); - -union acpi_subtable_headers; +struct _kvm_stats_desc; -typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const unsigned long); +struct kvm_stat_data { + struct kvm *kvm; + const struct _kvm_stats_desc *desc; + enum kvm_stat_kind kind; +}; -struct acpi_hmat_structure { - u16 type; - u16 reserved; - u32 length; +struct kvm_stats_desc { + __u32 flags; + __s16 exponent; + __u16 size; + __u32 offset; + __u32 bucket_size; + char name[0]; }; -struct acpi_prmt_module_header { - u16 revision; - u16 length; +struct _kvm_stats_desc { + struct kvm_stats_desc desc; + char name[48]; }; -struct acpi_cedt_header { - u8 type; - u8 reserved; - u16 length; +struct preempt_ops { + void (*sched_in)(struct preempt_notifier *, int); + void (*sched_out)(struct preempt_notifier *, struct task_struct *); }; -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 kvm_debug_exit_arch { + __u32 hsr; + __u32 hsr_high; + __u64 far; }; -struct acpi_madt_generic_interrupt { - struct acpi_subtable_header header; - u16 reserved; - u32 cpu_interface_number; - u32 uid; - u32 flags; - u32 parking_version; - u32 performance_interrupt; - u64 parked_address; - u64 base_address; - u64 gicv_base_address; - u64 gich_base_address; - u32 vgic_interrupt; - u64 gicr_base_address; - u64 arm_mpidr; - u8 efficiency_class; - u8 reserved2[1]; - u16 spe_interrupt; - u16 trbe_interrupt; -} __attribute__((packed)); +struct 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 pvclock_vcpu_stolen_time; +struct kvm_xen_exit { + __u32 type; + union { + struct { + __u32 longmode; + __u32 cpl; + __u64 input; + __u64 result; + __u64 params[6]; + } hcall; + } u; +}; -struct pv_time_stolen_time_region { - struct pvclock_vcpu_stolen_time __attribute__((btf_type_tag("rcu"))) *kaddr; +struct kvm_sync_regs { + __u64 device_irq_level; }; -typedef __u64 __le64; +struct kvm_run { + __u8 request_interrupt_window; + __u8 immediate_exit; + __u8 padding1[6]; + __u32 exit_reason; + __u8 ready_for_interrupt_injection; + __u8 if_flag; + __u16 flags; + __u64 cr8; + __u64 apic_base; + union { + struct { + __u64 hardware_exit_reason; + } hw; + struct { + __u64 hardware_entry_failure_reason; + __u32 cpu; + } fail_entry; + struct { + __u32 exception; + __u32 error_code; + } ex; + struct { + __u8 direction; + __u8 size; + __u16 port; + __u32 count; + __u64 data_offset; + } io; + struct { + struct kvm_debug_exit_arch arch; + } debug; + struct { + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } mmio; + struct { + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } iocsr_io; + struct { + __u64 nr; + __u64 args[6]; + __u64 ret; + union { + __u64 flags; + }; + } hypercall; + struct { + __u64 rip; + __u32 is_write; + __u32 pad; + } tpr_access; + struct { + __u8 icptcode; + __u16 ipa; + __u32 ipb; + } s390_sieic; + __u64 s390_reset_flags; + struct { + __u64 trans_exc_code; + __u32 pgm_code; + } s390_ucontrol; + struct { + __u32 dcrn; + __u32 data; + __u8 is_write; + } dcr; + struct { + __u32 suberror; + __u32 ndata; + __u64 data[16]; + } internal; + struct { + __u32 suberror; + __u32 ndata; + __u64 flags; + union { + struct { + __u8 insn_size; + __u8 insn_bytes[15]; + }; + }; + } emulation_failure; + struct { + __u64 gprs[32]; + } osi; + struct { + __u64 nr; + __u64 ret; + __u64 args[9]; + } papr_hcall; + struct { + __u16 subchannel_id; + __u16 subchannel_nr; + __u32 io_int_parm; + __u32 io_int_word; + __u32 ipb; + __u8 dequeued; + } s390_tsch; + struct { + __u32 epr; + } epr; + struct { + __u32 type; + __u32 ndata; + union { + __u64 data[16]; + }; + } system_event; + struct { + __u64 addr; + __u8 ar; + __u8 reserved; + __u8 fc; + __u8 sel1; + __u16 sel2; + } s390_stsi; + struct { + __u8 vector; + } eoi; + struct kvm_hyperv_exit hyperv; + struct { + __u64 esr_iss; + __u64 fault_ipa; + } arm_nisv; + struct { + __u8 error; + __u8 pad[7]; + __u32 reason; + __u32 index; + __u64 data; + } msr; + struct kvm_xen_exit xen; + struct { + unsigned long extension_id; + unsigned long function_id; + unsigned long args[6]; + unsigned long ret[2]; + } riscv_sbi; + struct { + unsigned long csr_num; + unsigned long new_value; + unsigned long write_mask; + unsigned long ret_value; + } riscv_csr; + struct { + __u32 flags; + } notify; + char padding[256]; + }; + __u64 kvm_valid_regs; + __u64 kvm_dirty_regs; + union { + struct kvm_sync_regs regs; + char padding[2048]; + } s; +}; -struct pvclock_vcpu_stolen_time { - __le32 revision; - __le32 attributes; - __le64 stolen_time; - u8 padding[48]; +struct kvm_dirty_gfn { + __u32 flags; + __u32 slot; + __u64 offset; }; -enum { - MEMREMAP_WB = 1, - MEMREMAP_WT = 2, - MEMREMAP_WC = 4, - MEMREMAP_ENC = 8, - MEMREMAP_DEC = 16, +struct interval_tree_node { + struct rb_node rb; + unsigned long start; + unsigned long last; + unsigned long __subtree_last; }; -typedef __u64 __be64; +typedef u64 gfn_t; -typedef __be64 fdt64_t; +struct kvm_arch_memory_slot {}; -enum { - ASSUME_PERFECT = 255, - ASSUME_VALID_DTB = 1, - ASSUME_VALID_INPUT = 2, - ASSUME_LATEST = 4, - ASSUME_NO_ROLLBACK = 8, - ASSUME_LIBFDT_ORDER = 16, - ASSUME_LIBFDT_FLAWLESS = 32, +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; }; -typedef __u32 __be32; - -typedef __be32 fdt32_t; +struct vgic_redist_region { + u32 index; + gpa_t base; + u32 count; + u32 free_index; + struct list_head list; +}; -struct fdt_header { - fdt32_t magic; - fdt32_t totalsize; - fdt32_t off_dt_struct; - fdt32_t off_dt_strings; - fdt32_t off_mem_rsvmap; - fdt32_t version; - fdt32_t last_comp_version; - fdt32_t boot_cpuid_phys; - fdt32_t size_dt_strings; - fdt32_t size_dt_struct; +enum vcpu_sysreg { + __INVALID_SYSREG__ = 0, + MPIDR_EL1 = 1, + CLIDR_EL1 = 2, + CSSELR_EL1 = 3, + SCTLR_EL1 = 4, + ACTLR_EL1 = 5, + CPACR_EL1 = 6, + ZCR_EL1 = 7, + TTBR0_EL1 = 8, + TTBR1_EL1 = 9, + TCR_EL1 = 10, + TCR2_EL1 = 11, + ESR_EL1 = 12, + AFSR0_EL1 = 13, + AFSR1_EL1 = 14, + FAR_EL1 = 15, + MAIR_EL1 = 16, + VBAR_EL1 = 17, + CONTEXTIDR_EL1 = 18, + TPIDR_EL0 = 19, + TPIDRRO_EL0 = 20, + TPIDR_EL1 = 21, + AMAIR_EL1 = 22, + CNTKCTL_EL1 = 23, + PAR_EL1 = 24, + MDSCR_EL1 = 25, + MDCCINT_EL1 = 26, + OSLSR_EL1 = 27, + DISR_EL1 = 28, + PMCR_EL0 = 29, + PMSELR_EL0 = 30, + PMEVCNTR0_EL0 = 31, + PMEVCNTR30_EL0 = 61, + PMCCNTR_EL0 = 62, + PMEVTYPER0_EL0 = 63, + PMEVTYPER30_EL0 = 93, + PMCCFILTR_EL0 = 94, + PMCNTENSET_EL0 = 95, + PMINTENSET_EL1 = 96, + PMOVSSET_EL0 = 97, + PMUSERENR_EL0 = 98, + APIAKEYLO_EL1 = 99, + APIAKEYHI_EL1 = 100, + APIBKEYLO_EL1 = 101, + APIBKEYHI_EL1 = 102, + APDAKEYLO_EL1 = 103, + APDAKEYHI_EL1 = 104, + APDBKEYLO_EL1 = 105, + APDBKEYHI_EL1 = 106, + APGAKEYLO_EL1 = 107, + APGAKEYHI_EL1 = 108, + ELR_EL1 = 109, + SP_EL1 = 110, + SPSR_EL1 = 111, + CNTVOFF_EL2 = 112, + CNTV_CVAL_EL0 = 113, + CNTV_CTL_EL0 = 114, + CNTP_CVAL_EL0 = 115, + CNTP_CTL_EL0 = 116, + RGSR_EL1 = 117, + GCR_EL1 = 118, + TFSR_EL1 = 119, + TFSRE0_EL1 = 120, + PIR_EL1 = 121, + PIRE0_EL1 = 122, + DACR32_EL2 = 123, + IFSR32_EL2 = 124, + FPEXC32_EL2 = 125, + DBGVCR32_EL2 = 126, + VPIDR_EL2 = 127, + VMPIDR_EL2 = 128, + SCTLR_EL2 = 129, + ACTLR_EL2 = 130, + HCR_EL2 = 131, + MDCR_EL2 = 132, + CPTR_EL2 = 133, + HSTR_EL2 = 134, + HACR_EL2 = 135, + HCRX_EL2 = 136, + TTBR0_EL2 = 137, + TTBR1_EL2 = 138, + TCR_EL2 = 139, + VTTBR_EL2 = 140, + VTCR_EL2 = 141, + SPSR_EL2 = 142, + ELR_EL2 = 143, + AFSR0_EL2 = 144, + AFSR1_EL2 = 145, + ESR_EL2 = 146, + FAR_EL2 = 147, + HPFAR_EL2 = 148, + MAIR_EL2 = 149, + AMAIR_EL2 = 150, + VBAR_EL2 = 151, + RVBAR_EL2 = 152, + CONTEXTIDR_EL2 = 153, + TPIDR_EL2 = 154, + CNTHCTL_EL2 = 155, + SP_EL2 = 156, + HFGRTR_EL2 = 157, + HFGWTR_EL2 = 158, + HFGITR_EL2 = 159, + HDFGRTR_EL2 = 160, + HDFGWTR_EL2 = 161, + CNTHP_CTL_EL2 = 162, + CNTHP_CVAL_EL2 = 163, + CNTHV_CTL_EL2 = 164, + CNTHV_CVAL_EL2 = 165, + NR_SYS_REGS = 166, }; -typedef u8 uint8_t; +typedef u64 kvm_pte_t; -struct fdt_reserve_entry { - fdt64_t address; - fdt64_t size; -}; +typedef kvm_pte_t __attribute__((btf_type_tag("rcu"))) *kvm_pteref_t; -typedef u64 uint64_t; +enum kvm_pgtable_stage2_flags { + KVM_PGTABLE_S2_NOFWB = 1, + KVM_PGTABLE_S2_IDMAP = 2, +}; -struct fdt_property { - fdt32_t tag; - fdt32_t len; - fdt32_t nameoff; - char data[0]; +enum kvm_pgtable_prot { + KVM_PGTABLE_PROT_X = 1ULL, + KVM_PGTABLE_PROT_W = 2ULL, + KVM_PGTABLE_PROT_R = 4ULL, + KVM_PGTABLE_PROT_DEVICE = 8ULL, + KVM_PGTABLE_PROT_SW0 = 36028797018963968ULL, + KVM_PGTABLE_PROT_SW1 = 72057594037927936ULL, + KVM_PGTABLE_PROT_SW2 = 144115188075855872ULL, + KVM_PGTABLE_PROT_SW3 = 288230376151711744ULL, }; -struct fdt_node_header { - fdt32_t tag; - char name[0]; +typedef bool (*kvm_pgtable_force_pte_cb_t)(u64, u64, enum kvm_pgtable_prot); + +struct kvm_pgtable_mm_ops; + +struct kvm_pgtable { + u32 ia_bits; + u32 start_level; + kvm_pteref_t pgd; + struct kvm_pgtable_mm_ops *mm_ops; + struct kvm_s2_mmu *mmu; + enum kvm_pgtable_stage2_flags flags; + kvm_pgtable_force_pte_cb_t force_pte_cb; }; -struct arch_hibernate_hdr_invariants { - char uts_version[65]; +struct kvm_pgtable_mm_ops { + void * (*zalloc_page)(void *); + void * (*zalloc_pages_exact)(size_t); + void (*free_pages_exact)(void *, size_t); + void (*free_unlinked_table)(void *, u32); + void (*get_page)(void *); + void (*put_page)(void *); + int (*page_count)(void *); + void * (*phys_to_virt)(phys_addr_t); + phys_addr_t (*virt_to_phys)(void *); + void (*dcache_clean_inval_poc)(void *, size_t); + void (*icache_inval_pou)(void *, size_t); }; -struct arch_hibernate_hdr { - struct arch_hibernate_hdr_invariants invariants; - phys_addr_t ttbr1_el1; - void (*reenter_kernel)(); - phys_addr_t __hyp_stub_vectors; - u64 sleep_cpu_mpidr; +enum vgic_type { + VGIC_V2 = 0, + VGIC_V3 = 1, }; -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_hwpoison = 22, - PG_arch_2 = 23, - PG_arch_3 = 24, - __NR_PAGEFLAGS = 25, - 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_has_hwpoisoned = 8, - PG_isolated = 18, - PG_reported = 2, - PG_vmemmap_self_hosted = 10, +enum kvm_bus { + KVM_MMIO_BUS = 0, + KVM_PIO_BUS = 1, + KVM_VIRTIO_CCW_NOTIFY_BUS = 2, + KVM_FAST_MMIO_BUS = 3, + KVM_NR_BUSES = 4, }; -struct msi_dev_domain { - struct xarray store; - struct irq_domain *domain; +enum kvm_device_type { + KVM_DEV_TYPE_FSL_MPIC_20 = 1, + KVM_DEV_TYPE_FSL_MPIC_42 = 2, + KVM_DEV_TYPE_XICS = 3, + KVM_DEV_TYPE_VFIO = 4, + KVM_DEV_TYPE_ARM_VGIC_V2 = 5, + KVM_DEV_TYPE_FLIC = 6, + KVM_DEV_TYPE_ARM_VGIC_V3 = 7, + KVM_DEV_TYPE_ARM_VGIC_ITS = 8, + KVM_DEV_TYPE_XIVE = 9, + KVM_DEV_TYPE_ARM_PV_TIME = 10, + KVM_DEV_TYPE_RISCV_AIA = 11, + KVM_DEV_TYPE_MAX = 12, }; -struct platform_msi_priv_data; +typedef __u16 __le16; -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 vgic_vmcr { + u32 grpen0; + u32 grpen1; + u32 ackctl; + u32 fiqen; + u32 cbpr; + u32 eoim; + u32 abpr; + u32 bpr; + u32 pmr; }; -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; +union hyp_spinlock { + u32 __val; + struct { + u16 owner; + u16 next; + }; }; -struct wait_queue_entry; - -typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *); +typedef union hyp_spinlock hyp_spinlock_t; -struct wait_queue_entry { - unsigned int flags; - void *private; - wait_queue_func_t func; - struct list_head entry; +struct hyp_pool { + hyp_spinlock_t lock; + struct list_head free_area[11]; + phys_addr_t range_start; + phys_addr_t range_end; + unsigned short max_order; }; -typedef struct wait_queue_entry wait_queue_entry_t; +struct kvm_vcpu___2; -struct wait_page_queue { - struct folio *folio; - int bit_nr; - wait_queue_entry_t wait; +struct kvm_cpu_context___2 { + struct user_pt_regs regs; + u64 spsr_abt; + u64 spsr_und; + u64 spsr_irq; + u64 spsr_fiq; + struct user_fpsimd_state fp_regs; + u64 sys_regs[166]; + struct kvm_vcpu___2 *__hyp_running_vcpu; + long: 64; }; -struct swap_cluster_info { - spinlock_t lock; - unsigned int data: 24; - unsigned int flags: 8; +struct vgic_irq___2 { + raw_spinlock_t irq_lock; + struct list_head lpi_list; + struct list_head ap_list; + struct kvm_vcpu___2 *vcpu; + struct kvm_vcpu___2 *target_vcpu; + u32 intid; + bool line_level; + bool pending_latch; + bool active; + bool enabled; + bool hw; + struct kref refcount; + u32 hwintid; + unsigned int host_irq; + union { + u8 targets; + u32 mpidr; + }; + u8 source; + u8 active_source; + u8 priority; + u8 group; + enum vgic_irq_config config; + struct irq_ops *ops; + void *owner; }; -struct swap_cluster_list { - struct swap_cluster_info head; - struct swap_cluster_info tail; +struct kvm_io_device_ops___2; + +struct kvm_io_device___2 { + const struct kvm_io_device_ops___2 *ops; }; -struct percpu_cluster; +struct vgic_its___2; -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 vgic_io_device___2 { + gpa_t base_addr; + union { + struct kvm_vcpu___2 *redist_vcpu; + struct vgic_its___2 *its; + }; + const struct vgic_register_region *regions; + enum iodev_type iodev_type; + int nr_regions; + struct kvm_io_device___2 dev; }; -struct percpu_cluster { - struct swap_cluster_info index; - unsigned int next; +struct vgic_cpu___2 { + union { + struct vgic_v2_cpu_if vgic_v2; + struct vgic_v3_cpu_if vgic_v3; + }; + struct vgic_irq___2 private_irqs[32]; + raw_spinlock_t ap_list_lock; + struct list_head ap_list_head; + struct vgic_io_device___2 rd_iodev; + struct vgic_redist_region *rdreg; + u32 rdreg_index; + atomic_t syncr_busy; + u64 pendbaser; + atomic_t ctlr; + u32 num_pri_bits; + u32 num_id_bits; }; -struct new_utsname { - char sysname[65]; - char nodename[65]; - char release[65]; - char version[65]; - char machine[65]; - char domainname[65]; +struct arch_timer_context___2 { + struct kvm_vcpu___2 *vcpu; + struct hrtimer hrtimer; + u64 ns_frac; + struct arch_timer_offset offset; + bool loaded; + struct { + bool level; + } irq; + u32 host_timer_irq; }; -struct uts_namespace { - struct new_utsname name; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct ns_common ns; +struct arch_timer_cpu___2 { + struct arch_timer_context___2 timers[4]; + struct hrtimer bg_timer; + bool enabled; }; -struct reclaim_state { - unsigned long reclaimed; +struct kvm_s2_mmu___2; + +struct kvm_vcpu_arch___2 { + struct kvm_cpu_context___2 ctxt; + void *sve_state; + enum fp_type fp_type; + unsigned int sve_max_vl; + u64 svcr; + struct kvm_s2_mmu___2 *hw_mmu; + u64 hcr_el2; + u64 mdcr_el2; + u64 cptr_el2; + u64 mdcr_el2_host; + struct kvm_vcpu_fault_info fault; + enum { + FP_STATE_FREE___2 = 0, + FP_STATE_HOST_OWNED___2 = 1, + FP_STATE_GUEST_OWNED___2 = 2, + } fp_state; + u8 cflags; + u8 iflags; + u8 sflags; + bool pause; + struct kvm_guest_debug_arch *debug_ptr; + struct kvm_guest_debug_arch vcpu_debug_state; + struct kvm_guest_debug_arch external_debug_state; + struct user_fpsimd_state *host_fpsimd_state; + struct task_struct *parent_task; + struct { + struct kvm_guest_debug_arch regs; + u64 pmscr_el1; + u64 trfcr_el1; + } host_debug_state; + struct vgic_cpu___2 vgic_cpu; + struct arch_timer_cpu___2 timer_cpu; + struct kvm_pmu pmu; + struct { + u32 mdscr_el1; + bool pstate_ss; + } guest_debug_preserved; + struct kvm_mp_state mp_state; + spinlock_t mp_state_lock; + struct kvm_mmu_memory_cache mmu_page_cache; + u64 vsesr_el2; + struct vcpu_reset_state reset_state; + struct { + u64 last_steal; + gpa_t base; + } steal; + u32 *ccsidr; }; -struct xa_node; +struct kvm___2; -typedef void (*xa_update_node_t)(struct xa_node *); +struct kvm_vcpu___2 { + struct kvm___2 *kvm; + struct preempt_notifier preempt_notifier; + 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]; + struct { + bool in_spin_loop; + bool dy_eligible; + } spin_loop; + bool preempted; + bool ready; + long: 64; + struct kvm_vcpu_arch___2 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; + long: 64; +}; -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 kvm_pgtable___2; + +struct kvm_arch___2; + +struct kvm_s2_mmu___2 { + struct kvm_vmid vmid; + phys_addr_t pgd_phys; + struct kvm_pgtable___2 *pgt; + u64 vtcr; + int __attribute__((btf_type_tag("percpu"))) *last_vcpu_ran; + struct kvm_mmu_memory_cache split_page_cache; + uint64_t split_page_chunk_size; + struct kvm_arch___2 *arch; }; -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]; +struct vgic_dist___2 { + bool in_kernel; + bool ready; + bool initialized; + u32 vgic_model; + u32 implementation_rev; + bool v2_groups_user_writable; + bool msis_require_devid; + int nr_spis; + gpa_t vgic_dist_base; union { - unsigned long tags[3]; - unsigned long marks[3]; + gpa_t vgic_cpu_base; + struct list_head rd_regions; }; + bool enabled; + bool nassgireq; + struct vgic_irq___2 *spis; + struct vgic_io_device___2 dist_iodev; + bool has_its; + bool table_write_in_progress; + u64 propbaser; + raw_spinlock_t lpi_list_lock; + struct list_head lpi_list_head; + int lpi_list_count; + struct list_head lpi_translation_cache; + struct vgic_state_iter *iter; + struct its_vm its_vm; }; -struct trans_pgd_info { - void * (*trans_alloc_page)(void *); - void *trans_alloc_arg; -}; - -struct core_vma_metadata { - unsigned long start; - unsigned long end; +struct kvm_arch___2 { + struct kvm_s2_mmu___2 mmu; + struct vgic_dist___2 vgic; + struct arch_timer_vm_data timer_data; + u32 psci_version; + struct mutex config_lock; unsigned long flags; - unsigned long dump_size; - unsigned long pgoff; - struct file *file; + unsigned long vcpu_features[1]; + struct kvm_mpidr_data *mpidr_data; + unsigned long *pmu_filter; + struct arm_pmu *arm_pmu; + cpumask_var_t supported_cpus; + u8 pmcr_n; + struct kvm_smccc_features smccc_feat; + struct maple_tree smccc_filter; + u64 id_regs[56]; + struct kvm_protected_vm pkvm; }; -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 kvm_io_bus___2; -struct elf64_phdr { - Elf64_Word p_type; - Elf64_Word p_flags; - Elf64_Off p_offset; - Elf64_Addr p_vaddr; - Elf64_Addr p_paddr; - Elf64_Xword p_filesz; - Elf64_Xword p_memsz; - Elf64_Xword p_align; -}; +struct kvm_stat_data___2; -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, - IRQD_RESEND_WHEN_IN_PROGRESS = 2147483648, +struct kvm___2 { + 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___2 __attribute__((btf_type_tag("rcu"))) *buses[4]; + struct { + spinlock_t lock; + struct list_head items; + struct list_head resampler_list; + struct mutex resampler_lock; + } irqfds; + struct list_head ioeventfds; + struct kvm_vm_stat stat; + struct kvm_arch___2 arch; + refcount_t users_count; + struct kvm_coalesced_mmio_ring *coalesced_mmio_ring; + spinlock_t ring_lock; + struct list_head coalesced_zones; + struct mutex irq_lock; + struct kvm_irq_routing_table __attribute__((btf_type_tag("rcu"))) *irq_routing; + struct hlist_head irq_ack_notifier_list; + 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___2 **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]; }; -typedef unsigned long kimage_entry_t; +struct kvm_io_range___2 { + gpa_t addr; + int len; + struct kvm_io_device___2 *dev; +}; -struct kexec_segment { - union { - void __attribute__((btf_type_tag("user"))) *buf; - void *kbuf; - }; - size_t bufsz; - unsigned long mem; - size_t memsz; +struct kvm_io_bus___2 { + int dev_count; + int ioeventfd_count; + struct kvm_io_range___2 range[0]; }; -struct kimage_arch { - void *dtb; - phys_addr_t dtb_mem; - phys_addr_t kern_reloc; - phys_addr_t el2_vectors; - phys_addr_t ttbr0; - phys_addr_t ttbr1; - phys_addr_t zero_page; - unsigned long phys_offset; - unsigned long t0sz; +struct kvm_io_device_ops___2 { + int (*read)(struct kvm_vcpu___2 *, struct kvm_io_device___2 *, gpa_t, int, void *); + int (*write)(struct kvm_vcpu___2 *, struct kvm_io_device___2 *, gpa_t, int, const void *); + void (*destructor)(struct kvm_io_device___2 *); }; -struct purgatory_info { - const Elf64_Ehdr *ehdr; - Elf64_Shdr *sechdrs; - void *purgatory_buf; +typedef kvm_pte_t *kvm_pteref_t___2; + +struct kvm_pgtable___2 { + u32 ia_bits; + u32 start_level; + kvm_pteref_t___2 pgd; + struct kvm_pgtable_mm_ops *mm_ops; + struct kvm_s2_mmu___2 *mmu; + enum kvm_pgtable_stage2_flags flags; + kvm_pgtable_force_pte_cb_t force_pte_cb; }; -struct kexec_file_ops; +struct kvm_device___2; -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 *kernel_buf; - unsigned long kernel_buf_len; - void *initrd_buf; - unsigned long initrd_buf_len; - char *cmdline_buf; - unsigned long cmdline_buf_len; - const struct kexec_file_ops *fops; - void *image_loader_data; - struct purgatory_info purgatory_info; - void *elf_headers; - unsigned long elf_headers_sz; - unsigned long elf_load_addr; +struct vgic_its___2 { + gpa_t vgic_its_base; + bool enabled; + struct vgic_io_device___2 iodev; + struct kvm_device___2 *dev; + u64 baser_device_table; + u64 baser_coll_table; + struct mutex cmd_lock; + u64 cbaser; + u32 creadr; + u32 cwriter; + u32 abi_rev; + struct mutex its_lock; + struct list_head device_list; + struct list_head collection_list; }; -typedef int kexec_probe_t(const char *, unsigned long); +struct kvm_device_ops___2; -typedef void *kexec_load_t(struct kimage *, char *, unsigned long, char *, unsigned long, char *, unsigned long); +struct kvm_device___2 { + const struct kvm_device_ops___2 *ops; + struct kvm___2 *kvm; + void *private; + struct list_head vm_node; +}; -typedef int kexec_cleanup_t(void *); +struct kvm_device_ops___2 { + const char *name; + int (*create)(struct kvm_device___2 *, u32); + void (*init)(struct kvm_device___2 *); + void (*destroy)(struct kvm_device___2 *); + void (*release)(struct kvm_device___2 *); + int (*set_attr)(struct kvm_device___2 *, struct kvm_device_attr *); + int (*get_attr)(struct kvm_device___2 *, struct kvm_device_attr *); + int (*has_attr)(struct kvm_device___2 *, struct kvm_device_attr *); + long (*ioctl)(struct kvm_device___2 *, unsigned int, unsigned long); + int (*mmap)(struct kvm_device___2 *, struct vm_area_struct *); +}; -struct kexec_file_ops { - kexec_probe_t *probe; - kexec_load_t *load; - kexec_cleanup_t *cleanup; +struct kvm_stat_data___2 { + struct kvm___2 *kvm; + const struct _kvm_stats_desc *desc; + enum kvm_stat_kind kind; }; enum memblock_flags { @@ -10377,1756 +10845,1513 @@ enum memblock_flags { MEMBLOCK_MIRROR = 2, MEMBLOCK_NOMAP = 4, MEMBLOCK_DRIVER_MANAGED = 8, + MEMBLOCK_RSRV_NOINIT = 16, }; -struct crash_mem { - unsigned int max_nr_ranges; - unsigned int nr_ranges; - struct range ranges[0]; +enum kvm_pgtable_walk_flags { + KVM_PGTABLE_WALK_LEAF = 1, + KVM_PGTABLE_WALK_TABLE_PRE = 2, + KVM_PGTABLE_WALK_TABLE_POST = 4, + KVM_PGTABLE_WALK_SHARED = 8, + KVM_PGTABLE_WALK_HANDLE_FAULT = 16, + KVM_PGTABLE_WALK_SKIP_BBM_TLBI = 32, + KVM_PGTABLE_WALK_SKIP_CMO = 64, }; -struct memblock_region; - -struct memblock_type { - unsigned long cnt; - unsigned long max; - phys_addr_t total_size; - struct memblock_region *regions; - char *name; +enum pkvm_page_state { + PKVM_PAGE_OWNED = 0ULL, + PKVM_PAGE_SHARED_OWNED = 36028797018963968ULL, + PKVM_PAGE_SHARED_BORROWED = 72057594037927936ULL, + __PKVM_PAGE_RESERVED = 108086391056891904ULL, + PKVM_NOPAGE = 108086391056891905ULL, }; -struct memblock_region { - phys_addr_t base; - phys_addr_t size; - enum memblock_flags flags; - int nid; -}; - -struct kexec_buf { - struct kimage *image; - void *buffer; - unsigned long bufsz; - unsigned long mem; - unsigned long memsz; - unsigned long buf_align; - unsigned long buf_min; - unsigned long buf_max; - bool top_down; -}; - -struct arm64_image_header { - __le32 code0; - __le32 code1; - __le64 text_offset; - __le64 image_size; - __le64 flags; - __le64 res2; - __le64 res3; - __le64 res4; - __le32 magic; - __le32 res5; +enum pkvm_component_id { + PKVM_ID_HOST = 0, + PKVM_ID_HYP = 1, + PKVM_ID_FFA = 2, }; -enum { - FOLL_WRITE = 1, - FOLL_GET = 2, - FOLL_DUMP = 4, - FOLL_FORCE = 8, - FOLL_NOWAIT = 16, - FOLL_NOFAULT = 32, - FOLL_HWPOISON = 64, - FOLL_ANON = 128, - FOLL_LONGTERM = 256, - FOLL_SPLIT_PMD = 512, - FOLL_PCI_P2PDMA = 1024, - FOLL_INTERRUPTIBLE = 2048, - FOLL_HONOR_NUMA_FAULT = 4096, +struct kvm_host_data { + struct kvm_cpu_context___2 host_ctxt; }; -typedef struct { - unsigned long val; -} swp_entry_t; - -typedef u32 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); - -typedef u32 probe_opcode_t; - -typedef bool pstate_check_t(unsigned long); - -typedef void probes_handler_t(u32, long, struct pt_regs *); - -struct arch_probe_insn { - probe_opcode_t *insn; - pstate_check_t *pstate_cc; - probes_handler_t *handler; - unsigned long restore; +struct kvm_nvhe_init_params { + unsigned long mair_el2; + unsigned long tcr_el2; + unsigned long tpidr_el2; + unsigned long stack_hyp_va; + unsigned long stack_pa; + phys_addr_t pgd_pa; + unsigned long hcr_el2; + unsigned long vttbr; + unsigned long vtcr; }; -struct arch_specific_insn { - struct arch_probe_insn api; +struct hyp_page { + unsigned short refcount; + unsigned short order; }; -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 memblock_region { + phys_addr_t base; + phys_addr_t size; + enum memblock_flags flags; + int nid; }; -struct prev_kprobe { - struct kprobe *kp; - unsigned int status; -}; +struct kvm_pgtable_visit_ctx; -struct kprobe_ctlblk { - unsigned int kprobe_status; - unsigned long saved_irqflag; - struct prev_kprobe prev_kprobe; -}; +typedef int (*kvm_pgtable_visitor_fn_t)(const struct kvm_pgtable_visit_ctx *, enum kvm_pgtable_walk_flags); -struct break_hook { - struct list_head node; - int (*fn)(struct pt_regs *, unsigned long); - u16 imm; - u16 mask; +struct kvm_pgtable_walker { + const kvm_pgtable_visitor_fn_t cb; + void * const arg; + const enum kvm_pgtable_walk_flags flags; }; -enum probe_insn { - INSN_REJECTED = 0, - INSN_GOOD_NO_SLOT = 1, - INSN_GOOD = 2, +struct kvm_pgtable_visit_ctx { + kvm_pte_t *ptep; + kvm_pte_t old; + void *arg; + struct kvm_pgtable_mm_ops *mm_ops; + u64 start; + u64 addr; + u64 end; + u32 level; + enum kvm_pgtable_walk_flags flags; }; -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; +enum reboot_mode { + REBOOT_UNDEFINED = -1, + REBOOT_COLD = 0, + REBOOT_WARM = 1, + REBOOT_HARD = 2, + REBOOT_SOFT = 3, + REBOOT_GPIO = 4, }; -struct freelist_node { - atomic_t refs; - struct freelist_node *next; +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, }; -struct kretprobe_holder; - -struct kretprobe_instance { - union { - struct freelist_node freelist; - struct callback_head rcu; - }; - struct llist_node llist; - struct kretprobe_holder *rph; - kprobe_opcode_t *ret_addr; - void *fp; - char data[0]; +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; }; -struct kretprobe; - -struct kretprobe_holder { - struct kretprobe *rp; - refcount_t ref; +enum sys_off_mode { + SYS_OFF_MODE_POWER_OFF_PREPARE = 0, + SYS_OFF_MODE_POWER_OFF = 1, + SYS_OFF_MODE_RESTART_PREPARE = 2, + SYS_OFF_MODE_RESTART = 3, }; -typedef int (*kretprobe_handler_t)(struct kretprobe_instance *, struct pt_regs *); +struct sys_off_data; -struct freelist_head { - struct freelist_node *head; +struct sys_off_handler { + struct notifier_block nb; + int (*sys_off_cb)(struct sys_off_data *); + void *cb_data; + enum sys_off_mode mode; + bool blocking; + void *list; + struct device *dev; }; -struct kretprobe { - struct kprobe kp; - kretprobe_handler_t handler; - kretprobe_handler_t entry_handler; - int maxactive; - int nmissed; - size_t data_size; - struct freelist_head freelist; - struct kretprobe_holder *rph; +struct sys_off_data { + int mode; + void *cb_data; + const char *cmd; + struct device *dev; }; -enum aarch64_insn_special_register { - AARCH64_INSN_SPCLREG_SPSR_EL1 = 49664, - AARCH64_INSN_SPCLREG_ELR_EL1 = 49665, - AARCH64_INSN_SPCLREG_SP_EL0 = 49672, - AARCH64_INSN_SPCLREG_SPSEL = 49680, - AARCH64_INSN_SPCLREG_CURRENTEL = 49682, - AARCH64_INSN_SPCLREG_DAIF = 55825, - AARCH64_INSN_SPCLREG_NZCV = 55824, - AARCH64_INSN_SPCLREG_FPCR = 55840, - AARCH64_INSN_SPCLREG_DSPSR_EL0 = 55848, - AARCH64_INSN_SPCLREG_DLR_EL0 = 55849, - AARCH64_INSN_SPCLREG_SPSR_EL2 = 57856, - AARCH64_INSN_SPCLREG_ELR_EL2 = 57857, - AARCH64_INSN_SPCLREG_SP_EL1 = 57864, - AARCH64_INSN_SPCLREG_SPSR_INQ = 57880, - AARCH64_INSN_SPCLREG_SPSR_ABT = 57881, - AARCH64_INSN_SPCLREG_SPSR_UND = 57882, - AARCH64_INSN_SPCLREG_SPSR_FIQ = 57883, - AARCH64_INSN_SPCLREG_SPSR_EL3 = 61952, - AARCH64_INSN_SPCLREG_ELR_EL3 = 61953, - AARCH64_INSN_SPCLREG_SP_EL2 = 61968, +struct atomic_notifier_head { + spinlock_t lock; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -struct step_hook { - struct list_head node; - int (*fn)(struct pt_regs *, unsigned long); +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, }; -enum rp_check { - RP_CHECK_CALL = 0, - RP_CHECK_CHAIN_CALL = 1, - RP_CHECK_RET = 2, +enum umh_disable_depth { + UMH_ENABLED = 0, + UMH_FREEZING = 1, + UMH_DISABLED = 2, }; -struct arch_uprobe { - union { - u8 insn[4]; - u8 ixol[4]; - }; - struct arch_probe_insn api; - bool simulate; +enum kmalloc_cache_type { + KMALLOC_NORMAL = 0, + KMALLOC_RANDOM_START = 0, + KMALLOC_RANDOM_END = 0, + KMALLOC_RECLAIM = 1, + KMALLOC_DMA = 2, + KMALLOC_CGROUP = 3, + NR_KMALLOC_TYPES = 4, }; -enum iommu_page_response_code { - IOMMU_PAGE_RESP_SUCCESS = 0, - IOMMU_PAGE_RESP_INVALID = 1, - IOMMU_PAGE_RESP_FAILURE = 2, +enum { + WORK_STRUCT_PENDING_BIT = 0, + WORK_STRUCT_INACTIVE_BIT = 1, + WORK_STRUCT_PWQ_BIT = 2, + WORK_STRUCT_LINKED_BIT = 3, + WORK_STRUCT_COLOR_SHIFT = 4, + WORK_STRUCT_COLOR_BITS = 4, + WORK_STRUCT_PENDING = 1, + WORK_STRUCT_INACTIVE = 2, + WORK_STRUCT_PWQ = 4, + WORK_STRUCT_LINKED = 8, + WORK_STRUCT_STATIC = 0, + WORK_NR_COLORS = 16, + WORK_CPU_UNBOUND = 256, + WORK_STRUCT_FLAG_BITS = 8, + WORK_OFFQ_FLAG_BASE = 4, + __WORK_OFFQ_CANCELING = 4, + WORK_OFFQ_FLAG_BITS = 1, + WORK_OFFQ_POOL_SHIFT = 5, + WORK_OFFQ_LEFT = 59, + WORK_OFFQ_POOL_BITS = 31, + WORK_BUSY_PENDING = 1, + WORK_BUSY_RUNNING = 2, + WORKER_DESC_LEN = 24, }; -enum xen_domain_type { - XEN_NATIVE = 0, - XEN_PV_DOMAIN = 1, - XEN_HVM_DOMAIN = 2, +enum rwsem_waiter_type { + RWSEM_WAITING_FOR_WRITE = 0, + RWSEM_WAITING_FOR_READ = 1, }; -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 rwsem_wake_type { + RWSEM_WAKE_ANY = 0, + RWSEM_WAKE_READERS = 1, + RWSEM_WAKE_READ_OWNED = 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; - }; - }; +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, }; -struct iommu_iotlb_gather; - -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 *); +enum owner_state { + OWNER_NULL = 1, + OWNER_WRITER = 2, + OWNER_READER = 4, + OWNER_NONSPINNABLE = 8, }; -struct iommu_iotlb_gather { - unsigned long start; - unsigned long end; - size_t pgsize; - struct list_head freelist; - bool queued; +struct rwsem_waiter { + struct list_head list; + struct task_struct *task; + enum rwsem_waiter_type type; + unsigned long timeout; + bool handoff_set; }; -struct iommu_fault_unrecoverable { - __u32 reason; - __u32 flags; - __u32 pasid; - __u32 perm; - __u64 addr; - __u64 fetch_addr; +struct wake_q_head { + struct wake_q_node *first; + struct wake_q_node **lastp; }; -struct iommu_fault_page_request { - __u32 flags; - __u32 pasid; - __u32 grpid; - __u32 perm; - __u64 addr; - __u64 private_data[2]; +struct __va_list { + void *__stack; + void *__gr_top; + void *__vr_top; + int __gr_offs; + int __vr_offs; }; -struct iommu_fault { - __u32 type; - __u32 padding; - union { - struct iommu_fault_unrecoverable event; - struct iommu_fault_page_request prm; - __u8 padding2[56]; - }; -}; +typedef __builtin_va_list va_list; -struct iommu_device { - struct list_head list; - const struct iommu_ops *ops; - struct fwnode_handle *fwnode; - struct device *dev; - u32 max_pasids; +enum clocksource_ids { + CSID_GENERIC = 0, + CSID_ARM_ARCH_COUNTER = 1, + CSID_MAX = 2, }; -struct of_phandle_args { - struct device_node *np; - int args_count; - uint32_t args[16]; +enum vdso_clock_mode { + VDSO_CLOCKMODE_NONE = 0, + VDSO_CLOCKMODE_ARCHTIMER = 1, + VDSO_CLOCKMODE_ARCHTIMER_NOCOMPAT = 2, + VDSO_CLOCKMODE_MAX = 3, + VDSO_CLOCKMODE_TIMENS = 2147483647, }; -struct iommu_fault_event { - struct iommu_fault fault; +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 module *owner; }; -struct iommu_page_response { - __u32 argsz; - __u32 version; - __u32 flags; - __u32 pasid; - __u32 grpid; - __u32 code; -}; +typedef struct { + seqcount_t seqcount; +} seqcount_latch_t; -struct sg_table { - struct scatterlist *sgl; - unsigned int nents; - unsigned int orig_nents; +struct clock_read_data { + u64 epoch_ns; + u64 epoch_cyc; + u64 sched_clock_mask; + u64 (*read_sched_clock)(); + u32 mult; + u32 shift; }; -struct scatterlist { - unsigned long page_link; - unsigned int offset; - unsigned int length; - dma_addr_t dma_address; - unsigned int dma_length; - unsigned int dma_flags; +struct clock_data { + seqcount_latch_t seq; + struct clock_read_data read_data[2]; + ktime_t wrap_kt; + unsigned long rate; + u64 (*actual_read_sched_clock)(); }; -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; - 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; - atomic_long_t total_used; - atomic_long_t used_hiwater; +struct syscore_ops { + struct list_head node; + int (*suspend)(); + void (*resume)(); + void (*shutdown)(); }; -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; +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, }; -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 futex_hash_bucket { + atomic_t waiters; + spinlock_t lock; + struct plist_head chain; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct iommu_fwspec { - const struct iommu_ops *ops; - struct fwnode_handle *iommu_fwnode; - u32 flags; - unsigned int num_ids; - u32 ids[0]; +enum futex_access { + FUTEX_READ = 0, + FUTEX_WRITE = 1, }; -struct fault_info { - int (*fn)(unsigned long, unsigned long, struct pt_regs *); - int sig; - int code; - const char *name; +enum { + FOLL_WRITE = 1, + FOLL_GET = 2, + FOLL_DUMP = 4, + FOLL_FORCE = 8, + FOLL_NOWAIT = 16, + FOLL_NOFAULT = 32, + FOLL_HWPOISON = 64, + FOLL_ANON = 128, + FOLL_LONGTERM = 256, + FOLL_SPLIT_PMD = 512, + FOLL_PCI_P2PDMA = 1024, + FOLL_INTERRUPTIBLE = 2048, + FOLL_HONOR_NUMA_FAULT = 4096, }; -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, +enum { + FUTEX_STATE_OK = 0, + FUTEX_STATE_EXITING = 1, + FUTEX_STATE_DEAD = 2, }; -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 rt_waiter_node { + struct rb_node entry; + int prio; + u64 deadline; }; -struct mempolicy { - atomic_t refcnt; - unsigned short mode; - unsigned short flags; - nodemask_t nodes; - int home_node; - union { - nodemask_t cpuset_mems_allowed; - nodemask_t user_nodemask; - } w; -}; +struct rt_mutex_base; -typedef struct { - pgd_t pgd; -} p4d_t; +struct ww_acquire_ctx; -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, +struct rt_mutex_waiter { + struct rt_waiter_node tree; + struct rt_waiter_node pi_tree; + struct task_struct *task; + struct rt_mutex_base *lock; + unsigned int wake_state; + struct ww_acquire_ctx *ww_ctx; }; -typedef void (*btf_trace_kvm_userspace_exit)(void *, __u32, int); - -typedef void (*btf_trace_kvm_vcpu_wakeup)(void *, __u64, bool, bool); - -typedef void (*btf_trace_kvm_set_irq)(void *, unsigned int, int, int); - -typedef void (*btf_trace_kvm_ack_irq)(void *, unsigned int, unsigned int); - -typedef void (*btf_trace_kvm_mmio)(void *, int, int, u64, void *); - -typedef void (*btf_trace_kvm_fpu)(void *, int); - -typedef void (*btf_trace_kvm_halt_poll_ns)(void *, bool, unsigned int, unsigned int, unsigned int); - -struct kvm_dirty_ring; - -typedef void (*btf_trace_kvm_dirty_ring_push)(void *, struct kvm_dirty_ring *, u32, u64); - -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 rt_mutex_base { + raw_spinlock_t wait_lock; + struct rb_root_cached waiters; + struct task_struct *owner; }; -struct kvm_dirty_gfn { - __u32 flags; - __u32 slot; - __u64 offset; +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; }; -typedef void (*btf_trace_kvm_dirty_ring_reset)(void *, struct kvm_dirty_ring *); - -struct kvm_vcpu; - -typedef void (*btf_trace_kvm_dirty_ring_exit)(void *, struct kvm_vcpu *); - -struct preempt_ops; - -struct preempt_notifier { - struct hlist_node link; - struct preempt_ops *ops; +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; }; -typedef u64 gpa_t; - -struct kvm_mmio_fragment { - gpa_t gpa; - void *data; - unsigned int len; -}; +struct futex_q; -struct kvm_cpu_context { - struct user_pt_regs regs; - u64 spsr_abt; - u64 spsr_und; - u64 spsr_irq; - u64 spsr_fiq; - struct user_fpsimd_state fp_regs; - u64 sys_regs[160]; - struct kvm_vcpu *__hyp_running_vcpu; - long: 64; -}; +typedef void futex_wake_fn(struct wake_q_head *, struct futex_q *); -struct kvm_vcpu_fault_info { - u64 esr_el2; - u64 far_el2; - u64 hpfar_el2; - u64 disr_el1; +struct futex_q { + struct plist_node list; + struct task_struct *task; + spinlock_t *lock_ptr; + futex_wake_fn *wake; + void *wake_data; + union futex_key key; + struct futex_pi_state *pi_state; + struct rt_mutex_waiter *rt_waiter; + union futex_key *requeue_pi_key; + u32 bitset; + atomic_t requeue_state; }; -struct kvm_guest_debug_arch { - __u64 dbg_bcr[16]; - __u64 dbg_bvr[16]; - __u64 dbg_wcr[16]; - __u64 dbg_wvr[16]; +struct hrtimer_sleeper { + struct hrtimer timer; + struct task_struct *task; }; -struct vgic_v2_cpu_if { - u32 vgic_hcr; - u32 vgic_vmcr; - u32 vgic_apr; - u32 vgic_lr[64]; - unsigned int used_lrs; +struct new_utsname { + char sysname[65]; + char nodename[65]; + char release[65]; + char version[65]; + char machine[65]; + char domainname[65]; }; -struct its_vm; - -struct its_vpe { - struct page *vpt_page; - struct its_vm *its_vm; - atomic_t vlpi_count; - int irq; - irq_hw_number_t vpe_db_lpi; - bool resident; - bool ready; - union { - struct { - int vpe_proxy_event; - bool idai; - }; - struct { - struct fwnode_handle *fwnode; - struct irq_domain *sgi_domain; - struct { - u8 priority; - bool enabled; - bool group; - } sgi_config[16]; - atomic_t vmapp_count; - }; - }; - raw_spinlock_t vpe_lock; - u16 col_idx; - u16 vpe_id; - bool pending_last; +struct uts_namespace { + struct new_utsname name; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct ns_common ns; }; -struct vgic_v3_cpu_if { - u32 vgic_hcr; - u32 vgic_vmcr; - u32 vgic_sre; - u32 vgic_ap0r[4]; - u32 vgic_ap1r[4]; - u64 vgic_lr[16]; - struct its_vpe its_vpe; - unsigned int used_lrs; +struct nsset { + unsigned int flags; + struct nsproxy *nsproxy; + struct fs_struct *fs; + const struct cred *cred; }; -enum vgic_irq_config { - VGIC_CONFIG_EDGE = 0, - VGIC_CONFIG_LEVEL = 1, +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_FANOTIFY_GROUPS = 10, + UCOUNT_FANOTIFY_MARKS = 11, + UCOUNT_COUNTS = 12, }; -struct irq_ops; - -struct vgic_irq { - raw_spinlock_t irq_lock; - struct list_head lpi_list; - struct list_head ap_list; - struct kvm_vcpu *vcpu; - struct kvm_vcpu *target_vcpu; - u32 intid; - bool line_level; - bool pending_latch; - bool active; - bool enabled; - bool hw; - struct kref refcount; - u32 hwintid; - unsigned int host_irq; - union { - u8 targets; - u32 mpidr; - }; - u8 source; - u8 active_source; - u8 priority; - u8 group; - enum vgic_irq_config config; - struct irq_ops *ops; - void *owner; -}; +typedef unsigned int slab_flags_t; -enum iodev_type { - IODEV_CPUIF = 0, - IODEV_DIST = 1, - IODEV_REDIST = 2, - IODEV_ITS = 3, +enum audit_nfcfgop { + AUDIT_XT_OP_REGISTER = 0, + AUDIT_XT_OP_REPLACE = 1, + AUDIT_XT_OP_UNREGISTER = 2, + AUDIT_NFT_OP_TABLE_REGISTER = 3, + AUDIT_NFT_OP_TABLE_UNREGISTER = 4, + AUDIT_NFT_OP_CHAIN_REGISTER = 5, + AUDIT_NFT_OP_CHAIN_UNREGISTER = 6, + AUDIT_NFT_OP_RULE_REGISTER = 7, + AUDIT_NFT_OP_RULE_UNREGISTER = 8, + AUDIT_NFT_OP_SET_REGISTER = 9, + AUDIT_NFT_OP_SET_UNREGISTER = 10, + AUDIT_NFT_OP_SETELEM_REGISTER = 11, + AUDIT_NFT_OP_SETELEM_UNREGISTER = 12, + AUDIT_NFT_OP_GEN_REGISTER = 13, + AUDIT_NFT_OP_OBJ_REGISTER = 14, + AUDIT_NFT_OP_OBJ_UNREGISTER = 15, + AUDIT_NFT_OP_OBJ_RESET = 16, + AUDIT_NFT_OP_FLOWTABLE_REGISTER = 17, + AUDIT_NFT_OP_FLOWTABLE_UNREGISTER = 18, + AUDIT_NFT_OP_SETELEM_RESET = 19, + AUDIT_NFT_OP_RULE_RESET = 20, + AUDIT_NFT_OP_INVALID = 21, }; -struct kvm_io_device_ops; - -struct kvm_io_device { - const struct kvm_io_device_ops *ops; +struct audit_nfcfgop_tab { + enum audit_nfcfgop op; + const char *s; }; -struct vgic_its; +typedef int __kernel_mqd_t; -struct vgic_register_region; +typedef __kernel_mqd_t mqd_t; -struct vgic_io_device { - gpa_t base_addr; - union { - struct kvm_vcpu *redist_vcpu; - struct vgic_its *its; - }; - const struct vgic_register_region *regions; - enum iodev_type iodev_type; - int nr_regions; - struct kvm_io_device dev; +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 vgic_redist_region; - -struct vgic_cpu { +struct audit_cap_data { + kernel_cap_t permitted; + kernel_cap_t inheritable; union { - struct vgic_v2_cpu_if vgic_v2; - struct vgic_v3_cpu_if vgic_v3; + unsigned int fE; + kernel_cap_t effective; }; - struct vgic_irq private_irqs[32]; - raw_spinlock_t ap_list_lock; - struct list_head ap_list_head; - struct vgic_io_device rd_iodev; - struct vgic_redist_region *rdreg; - u32 rdreg_index; - atomic_t syncr_busy; - u64 pendbaser; - atomic_t ctlr; - u32 num_pri_bits; - u32 num_id_bits; + kernel_cap_t ambient; + kuid_t rootid; }; -struct arch_timer_offset { - u64 *vm_offset; - u64 *vcpu_offset; +struct audit_ntp_val { + long long oldval; + long long newval; }; -struct arch_timer_context { - struct kvm_vcpu *vcpu; - struct hrtimer hrtimer; - u64 ns_frac; - struct arch_timer_offset offset; - bool loaded; - struct { - bool level; - } irq; - u32 host_timer_irq; +struct audit_ntp_data { + struct audit_ntp_val vals[6]; }; -struct arch_timer_cpu { - struct arch_timer_context timers[4]; - struct hrtimer bg_timer; - bool enabled; +struct open_how { + __u64 flags; + __u64 mode; + __u64 resolve; }; -struct kvm_pmu_events { - u32 events_host; - u32 events_guest; +enum audit_state { + AUDIT_STATE_DISABLED = 0, + AUDIT_STATE_BUILD = 1, + AUDIT_STATE_RECORD = 2, }; -struct kvm_pmc { - u8 idx; - struct perf_event *perf_event; -}; +struct filename; -struct kvm_pmu { - struct irq_work overflow_work; - struct kvm_pmu_events events; - struct kvm_pmc pmc[32]; - int irq_num; - bool created; - bool irq_level; +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 kvm_mp_state { - __u32 mp_state; +struct audit_proctitle { + int len; + char *value; }; -struct kvm_mmu_memory_cache { - gfp_t gfp_zero; - gfp_t gfp_custom; - struct kmem_cache *kmem_cache; - int capacity; - int nobjs; - void **objects; -}; +struct audit_aux_data; -struct vcpu_reset_state { - unsigned long pc; - unsigned long r0; - bool be; - bool reset; -}; +struct __kernel_sockaddr_storage; -struct kvm_s2_mmu; +struct audit_tree_refs; -struct kvm_vcpu_arch { - struct kvm_cpu_context ctxt; - void *sve_state; - enum fp_type fp_type; - unsigned int sve_max_vl; - u64 svcr; - struct kvm_s2_mmu *hw_mmu; - u64 hcr_el2; - u64 mdcr_el2; - u64 cptr_el2; - u64 mdcr_el2_host; - struct kvm_vcpu_fault_info fault; +struct audit_context { + int dummy; enum { - FP_STATE_FREE = 0, - FP_STATE_HOST_OWNED = 1, - FP_STATE_GUEST_OWNED = 2, - } fp_state; - u8 cflags; - u8 iflags; - u8 sflags; - bool pause; - struct kvm_guest_debug_arch *debug_ptr; - struct kvm_guest_debug_arch vcpu_debug_state; - struct kvm_guest_debug_arch external_debug_state; - struct user_fpsimd_state *host_fpsimd_state; - struct task_struct *parent_task; - struct { - struct kvm_guest_debug_arch regs; - u64 pmscr_el1; - u64 trfcr_el1; - } host_debug_state; - struct vgic_cpu vgic_cpu; - struct arch_timer_cpu timer_cpu; - struct kvm_pmu pmu; - struct { - u32 mdscr_el1; - bool pstate_ss; - } guest_debug_preserved; - struct kvm_mp_state mp_state; - spinlock_t mp_state_lock; - struct kvm_mmu_memory_cache mmu_page_cache; - int target; - unsigned long features[1]; - u64 vsesr_el2; - struct vcpu_reset_state reset_state; - struct { - u64 last_steal; - gpa_t base; - } steal; - u32 *ccsidr; -}; - -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; + 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; }; -struct kvm_vcpu_stat { - struct kvm_vcpu_stat_generic generic; - u64 hvc_exit_stat; - u64 wfe_exit_stat; - u64 wfi_exit_stat; - u64 mmio_exit_user; - u64 mmio_exit_kernel; - u64 signal_exits; - u64 exits; +struct filename { + const char *name; + const char __attribute__((btf_type_tag("user"))) *uptr; + atomic_t refcnt; + struct audit_names *aname; + const char iname[0]; }; -struct kvm; - -struct kvm_run; +struct linux_binprm; -struct kvm_memory_slot; +struct coredump_params; -struct kvm_vcpu { - struct kvm *kvm; - struct preempt_notifier preempt_notifier; - 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]; - struct { - bool in_spin_loop; - bool dy_eligible; - } spin_loop; - bool preempted; - bool ready; - long: 64; - 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; - long: 64; +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 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 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 kvm_vm_stat_generic { - u64 remote_tlb_flush; - u64 remote_tlb_flush_requests; +struct fs_struct { + int users; + spinlock_t lock; + seqcount_spinlock_t seq; + int umask; + int in_exec; + struct path root; + struct path pwd; }; -struct kvm_vm_stat { - struct kvm_vm_stat_generic generic; +struct ld_semaphore { + atomic_long_t count; + raw_spinlock_t wait_lock; + unsigned int wait_readers; + struct list_head read_wait; + struct list_head write_wait; }; -struct kvm_vmid { - atomic64_t id; -}; +typedef unsigned int tcflag_t; -struct kvm_pgtable; +typedef unsigned char cc_t; -struct kvm_arch; +typedef unsigned int speed_t; -struct kvm_s2_mmu { - struct kvm_vmid vmid; - phys_addr_t pgd_phys; - struct kvm_pgtable *pgt; - int __attribute__((btf_type_tag("percpu"))) *last_vcpu_ran; - struct kvm_mmu_memory_cache split_page_cache; - uint64_t split_page_chunk_size; - struct kvm_arch *arch; +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 its_vm { - struct fwnode_handle *fwnode; - struct irq_domain *domain; - struct page *vprop_page; - struct its_vpe **vpes; - int nr_vpes; - irq_hw_number_t db_lpi_base; - unsigned long *db_bitmap; - int nr_db_lpis; - u32 vlpi_count[16]; +struct winsize { + unsigned short ws_row; + unsigned short ws_col; + unsigned short ws_xpixel; + unsigned short ws_ypixel; }; -struct vgic_state_iter; +struct tty_driver; -struct vgic_dist { - bool in_kernel; - bool ready; - bool initialized; - u32 vgic_model; - u32 implementation_rev; - bool v2_groups_user_writable; - bool msis_require_devid; - int nr_spis; - gpa_t vgic_dist_base; - union { - gpa_t vgic_cpu_base; - struct list_head rd_regions; - }; - bool enabled; - bool nassgireq; - struct vgic_irq *spis; - struct vgic_io_device dist_iodev; - bool has_its; - bool table_write_in_progress; - u64 propbaser; - raw_spinlock_t lpi_list_lock; - struct list_head lpi_list_head; - int lpi_list_count; - struct list_head lpi_translation_cache; - struct vgic_state_iter *iter; - struct its_vm its_vm; -}; +struct tty_port; -struct arch_timer_vm_data { - u64 voffset; - u64 poffset; - u8 ppi[4]; +struct tty_operations; + +struct tty_ldisc; + +struct tty_struct { + struct kref kref; + int index; + struct device *dev; + struct tty_driver *driver; + struct tty_port *port; + const struct tty_operations *ops; + struct tty_ldisc *ldisc; + struct ld_semaphore ldisc_sem; + struct mutex atomic_write_lock; + struct mutex legacy_mutex; + struct mutex throttle_mutex; + struct rw_semaphore termios_rwsem; + struct mutex winsize_mutex; + struct ktermios termios; + struct ktermios termios_locked; + char name[64]; + unsigned long flags; + int count; + unsigned int receive_room; + struct winsize winsize; + struct { + spinlock_t lock; + bool stopped; + bool tco_stopped; + unsigned long unused[0]; + } flow; + struct { + struct pid *pgrp; + struct pid *session; + spinlock_t lock; + unsigned char pktstatus; + bool packet; + unsigned long unused[0]; + } ctrl; + bool hw_stopped; + bool closing; + int flow_change; + struct tty_struct *link; + struct fasync_struct *fasync; + wait_queue_head_t write_wait; + wait_queue_head_t read_wait; + struct work_struct hangup_work; + void *disc_data; + void *driver_data; + spinlock_t files_lock; + int write_cnt; + unsigned char *write_buf; + struct list_head tty_files; + struct work_struct SAK_work; }; -struct kvm_smccc_features { - unsigned long std_bmap; - unsigned long std_hyp_bmap; - unsigned long vendor_hyp_bmap; +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; }; -typedef unsigned int pkvm_handle_t; +struct __kfifo { + unsigned int in; + unsigned int out; + unsigned int mask; + unsigned int esize; + void *data; +}; -struct kvm_hyp_memcache { - phys_addr_t head; - unsigned long nr_pages; +struct tty_buffer { + union { + struct tty_buffer *next; + struct llist_node free; + }; + unsigned int used; + unsigned int size; + unsigned int commit; + unsigned int lookahead; + unsigned int read; + bool flags; + long: 0; + u8 data[0]; }; -struct kvm_protected_vm { - pkvm_handle_t handle; - struct kvm_hyp_memcache teardown_mc; +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 arm_pmu; +struct tty_port_operations; -struct kvm_arch { - struct kvm_s2_mmu mmu; - u64 vtcr; - struct vgic_dist vgic; - struct arch_timer_vm_data timer_data; - u32 psci_version; - struct mutex config_lock; +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 vcpu_features[1]; - unsigned long *pmu_filter; - struct arm_pmu *arm_pmu; - cpumask_var_t supported_cpus; - struct kvm_smccc_features smccc_feat; - struct maple_tree smccc_filter; - u64 id_regs[56]; - struct kvm_protected_vm pkvm; + 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 mmu_notifier_ops; +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 mmu_notifier { - struct hlist_node hlist; - const struct mmu_notifier_ops *ops; - struct mm_struct *mm; - struct callback_head rcu; - unsigned int users; +struct tty_port_client_operations { + size_t (*receive_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_port *); }; -struct kvm_io_bus; +struct serial_icounter_struct; -struct kvm_coalesced_mmio_ring; +struct serial_struct; -struct kvm_irq_routing_table; +struct tty_operations { + struct tty_struct * (*lookup)(struct tty_driver *, struct file *, int); + int (*install)(struct tty_driver *, struct tty_struct *); + void (*remove)(struct tty_driver *, struct tty_struct *); + int (*open)(struct tty_struct *, struct file *); + void (*close)(struct tty_struct *, struct file *); + void (*shutdown)(struct tty_struct *); + void (*cleanup)(struct tty_struct *); + ssize_t (*write)(struct tty_struct *, const u8 *, size_t); + int (*put_char)(struct tty_struct *, u8); + void (*flush_chars)(struct tty_struct *); + unsigned int (*write_room)(struct tty_struct *); + unsigned int (*chars_in_buffer)(struct tty_struct *); + int (*ioctl)(struct tty_struct *, unsigned int, unsigned long); + long (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long); + void (*set_termios)(struct tty_struct *, const struct ktermios *); + void (*throttle)(struct tty_struct *); + void (*unthrottle)(struct tty_struct *); + void (*stop)(struct tty_struct *); + void (*start)(struct tty_struct *); + void (*hangup)(struct tty_struct *); + int (*break_ctl)(struct tty_struct *, int); + void (*flush_buffer)(struct tty_struct *); + void (*set_ldisc)(struct tty_struct *); + void (*wait_until_sent)(struct tty_struct *, int); + void (*send_xchar)(struct tty_struct *, 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 kvm_stat_data; +struct tty_ldisc_ops; -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 { - spinlock_t lock; - struct list_head items; - struct list_head resampler_list; - struct mutex resampler_lock; - } irqfds; - struct list_head ioeventfds; - struct kvm_vm_stat stat; - struct kvm_arch arch; - refcount_t users_count; - struct kvm_coalesced_mmio_ring *coalesced_mmio_ring; - spinlock_t ring_lock; - struct list_head coalesced_zones; - struct mutex irq_lock; - struct kvm_irq_routing_table __attribute__((btf_type_tag("rcu"))) *irq_routing; - struct hlist_head irq_ack_notifier_list; - 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 tty_ldisc { + struct tty_ldisc_ops *ops; + struct tty_struct *tty; }; -struct kvm_io_range { - gpa_t addr; - int len; - struct kvm_io_device *dev; +struct tty_ldisc_ops { + char *name; + int num; + int (*open)(struct tty_struct *); + void (*close)(struct tty_struct *); + void (*flush_buffer)(struct tty_struct *); + ssize_t (*read)(struct tty_struct *, struct file *, u8 *, size_t, void **, unsigned long); + ssize_t (*write)(struct tty_struct *, struct file *, const u8 *, size_t); + int (*ioctl)(struct tty_struct *, unsigned int, unsigned long); + int (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long); + void (*set_termios)(struct tty_struct *, const struct ktermios *); + __poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *); + void (*hangup)(struct tty_struct *); + void (*receive_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_struct *); + void (*dcd_change)(struct tty_struct *, bool); + size_t (*receive_buf2)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + struct module *owner; }; -struct kvm_io_bus { - int dev_count; - int ioeventfd_count; - struct kvm_io_range range[0]; +struct audit_aux_data { + struct audit_aux_data *next; + int type; }; -struct kvm_io_device_ops { - int (*read)(struct kvm_vcpu *, struct kvm_io_device *, gpa_t, int, void *); - int (*write)(struct kvm_vcpu *, struct kvm_io_device *, gpa_t, int, const void *); - void (*destructor)(struct kvm_io_device *); -}; +typedef unsigned short __kernel_sa_family_t; -struct irq_ops { - unsigned long flags; - bool (*get_input_level)(int); +struct __kernel_sockaddr_storage { + union { + struct { + __kernel_sa_family_t ss_family; + char __data[126]; + }; + void *__align; + }; }; -struct kvm_device; +struct audit_chunk; -struct vgic_its { - gpa_t vgic_its_base; - bool enabled; - struct vgic_io_device iodev; - struct kvm_device *dev; - u64 baser_device_table; - u64 baser_coll_table; - struct mutex cmd_lock; - u64 cbaser; - u32 creadr; - u32 cwriter; - u32 abi_rev; - struct mutex its_lock; - struct list_head device_list; - struct list_head collection_list; +struct audit_tree_refs { + struct audit_tree_refs *next; + struct audit_chunk *c[31]; }; -struct kvm_device_ops; - -struct kvm_device { - const struct kvm_device_ops *ops; - struct kvm *kvm; - void *private; - struct list_head vm_node; +enum { + TASK_COMM_LEN = 16, }; -struct kvm_device_attr; +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 kvm_device_ops { - const char *name; - int (*create)(struct kvm_device *, u32); - void (*init)(struct kvm_device *); - void (*destroy)(struct kvm_device *); - void (*release)(struct kvm_device *); - int (*set_attr)(struct kvm_device *, struct kvm_device_attr *); - int (*get_attr)(struct kvm_device *, struct kvm_device_attr *); - int (*has_attr)(struct kvm_device *, struct kvm_device_attr *); - long (*ioctl)(struct kvm_device *, unsigned int, unsigned long); - int (*mmap)(struct kvm_device *, struct vm_area_struct *); +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, }; -struct kvm_device_attr { - __u32 flags; - __u32 group; - __u64 attr; - __u64 addr; +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, }; -struct kvm_vcpu___2; +struct audit_field; -struct kvm___2; +struct audit_watch; -struct vgic_its___2; +struct audit_tree; -struct vgic_register_region { - unsigned int reg_offset; - unsigned int len; - unsigned int bits_per_irq; - unsigned int access_flags; - union { - unsigned long (*read)(struct kvm_vcpu___2 *, gpa_t, unsigned int); - unsigned long (*its_read)(struct kvm___2 *, struct vgic_its___2 *, gpa_t, unsigned int); - }; - union { - void (*write)(struct kvm_vcpu___2 *, gpa_t, unsigned int, unsigned long); - void (*its_write)(struct kvm___2 *, struct vgic_its___2 *, gpa_t, unsigned int, unsigned long); - }; - unsigned long (*uaccess_read)(struct kvm_vcpu___2 *, gpa_t, unsigned int); - union { - int (*uaccess_write)(struct kvm_vcpu___2 *, gpa_t, unsigned int, unsigned long); - int (*uaccess_its_write)(struct kvm___2 *, struct vgic_its___2 *, gpa_t, unsigned int, unsigned long); - }; +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 kvm_coalesced_mmio { - __u64 phys_addr; - __u32 len; +struct audit_entry { + struct list_head list; + struct callback_head rcu; + struct audit_krule rule; +}; + +struct audit_field { + u32 type; union { - __u32 pad; - __u32 pio; + u32 val; + kuid_t uid; + kgid_t gid; + struct { + char *lsm_str; + void *lsm_rule; + }; }; - __u8 data[8]; + u32 op; }; -struct kvm_coalesced_mmio_ring { - __u32 first; - __u32 last; - struct kvm_coalesced_mmio coalesced_mmio[0]; +struct cpu_vfs_cap_data { + __u32 magic_etc; + kuid_t rootid; + kernel_cap_t permitted; + kernel_cap_t inheritable; }; -struct kvm_irq_routing_table { - int chip[988]; - u32 nr_rt_entries; - struct hlist_head map[0]; -}; +typedef int __kernel_key_t; -struct mmu_notifier_range; +typedef __kernel_key_t key_t; -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 kern_ipc_perm { + spinlock_t lock; + bool deleted; + int id; + key_t key; + kuid_t uid; + kgid_t gid; + kuid_t cuid; + kgid_t cgid; + umode_t mode; + unsigned long seq; + void *security; + struct rhash_head khtnode; + struct callback_head rcu; + refcount_t refcount; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 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 mmu_notifier_range { - struct mm_struct *mm; - unsigned long start; - unsigned long end; - unsigned int flags; - enum mmu_notifier_event event; - void *owner; +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; }; -enum kvm_stat_kind { - KVM_STAT_VM = 0, - KVM_STAT_VCPU = 1, +struct sigevent { + sigval_t sigev_value; + int sigev_signo; + int sigev_notify; + union { + int _pad[12]; + int _tid; + struct { + void (*_function)(sigval_t); + void *_attribute; + } _sigev_thread; + } _sigev_un; }; -struct _kvm_stats_desc; - -struct kvm_stat_data { - struct kvm *kvm; - const struct _kvm_stats_desc *desc; - enum kvm_stat_kind kind; +struct fanotify_response_info_header { + __u8 type; + __u8 pad; + __u16 len; }; -struct kvm_stats_desc { - __u32 flags; - __s16 exponent; - __u16 size; - __u32 offset; - __u32 bucket_size; - char name[0]; +struct fanotify_response_info_audit_rule { + struct fanotify_response_info_header hdr; + __u32 rule_number; + __u32 subj_trust; + __u32 obj_trust; }; -struct _kvm_stats_desc { - struct kvm_stats_desc desc; - char name[48]; -}; +struct trace_buffer; -struct preempt_ops { - void (*sched_in)(struct preempt_notifier *, int); - void (*sched_out)(struct preempt_notifier *, struct task_struct *); -}; +struct trace_array_cpu; -struct kvm_debug_exit_arch { - __u32 hsr; - __u32 hsr_high; - __u64 far; +struct array_buffer { + struct trace_array *tr; + struct trace_buffer *buffer; + struct trace_array_cpu __attribute__((btf_type_tag("percpu"))) *data; + u64 time_start; + int cpu; }; -struct 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 trace_pid_list; -struct kvm_xen_exit { - __u32 type; - union { - struct { - __u32 longmode; - __u32 cpl; - __u64 input; - __u64 result; - __u64 params[6]; - } hcall; - } u; -}; +struct trace_event_file; -struct kvm_sync_regs { - __u64 device_irq_level; -}; +struct eventfs_inode; -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; - union { - __u64 flags; - }; - } hypercall; - struct { - __u64 rip; - __u32 is_write; - __u32 pad; - } tpr_access; - struct { - __u8 icptcode; - __u16 ipa; - __u32 ipb; - } s390_sieic; - __u64 s390_reset_flags; - struct { - __u64 trans_exc_code; - __u32 pgm_code; - } s390_ucontrol; - struct { - __u32 dcrn; - __u32 data; - __u8 is_write; - } dcr; - struct { - __u32 suberror; - __u32 ndata; - __u64 data[16]; - } internal; - struct { - __u32 suberror; - __u32 ndata; - __u64 flags; - union { - struct { - __u8 insn_size; - __u8 insn_bytes[15]; - }; - }; - } emulation_failure; - struct { - __u64 gprs[32]; - } osi; - struct { - __u64 nr; - __u64 ret; - __u64 args[9]; - } papr_hcall; - struct { - __u16 subchannel_id; - __u16 subchannel_nr; - __u32 io_int_parm; - __u32 io_int_word; - __u32 ipb; - __u8 dequeued; - } s390_tsch; - struct { - __u32 epr; - } epr; - struct { - __u32 type; - __u32 ndata; - union { - __u64 data[16]; - }; - } system_event; - struct { - __u64 addr; - __u8 ar; - __u8 reserved; - __u8 fc; - __u8 sel1; - __u16 sel2; - } s390_stsi; - struct { - __u8 vector; - } eoi; - struct kvm_hyperv_exit hyperv; - struct { - __u64 esr_iss; - __u64 fault_ipa; - } arm_nisv; - struct { - __u8 error; - __u8 pad[7]; - __u32 reason; - __u32 index; - __u64 data; - } msr; - struct kvm_xen_exit xen; - struct { - unsigned long extension_id; - unsigned long function_id; - unsigned long args[6]; - unsigned long ret[2]; - } riscv_sbi; - struct { - unsigned long csr_num; - unsigned long new_value; - unsigned long write_mask; - unsigned long ret_value; - } riscv_csr; - struct { - __u32 flags; - } notify; - char padding[256]; - }; - __u64 kvm_valid_regs; - __u64 kvm_dirty_regs; - union { - struct kvm_sync_regs regs; - char padding[2048]; - } s; -}; +struct trace_options; -struct vgic_redist_region { - u32 index; - gpa_t base; - u32 count; - u32 free_index; +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[457]; + struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[457]; + 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 eventfs_inode *event_dir; + struct trace_options *topts; + struct list_head systems; + struct list_head events; + struct trace_event_file *trace_marker_file; + cpumask_var_t tracing_cpumask; + cpumask_var_t pipe_cpumask; + int ref; + int trace_ref; + struct ftrace_ops *ops; + struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_pids; + struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_no_pids; + struct list_head func_probes; + struct list_head mod_trace; + struct list_head mod_notrace; + int function_enabled; + int no_filter_buffering_ref; + struct list_head hist_vars; + struct trace_func_repeats __attribute__((btf_type_tag("percpu"))) *last_func_repeats; + bool ring_buffer_expanded; }; -struct interval_tree_node { - struct rb_node rb; - unsigned long start; - unsigned long last; - unsigned long __subtree_last; +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; }; -typedef u64 gfn_t; +union upper_chunk; -struct kvm_arch_memory_slot {}; +union lower_chunk; -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 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 (*btf_trace_kvm_unmap_hva_range)(void *, unsigned long, unsigned long); - -typedef void (*btf_trace_kvm_set_spte_hva)(void *, unsigned long); - -typedef void (*btf_trace_kvm_age_hva)(void *, unsigned long, unsigned long); - -typedef void (*btf_trace_kvm_test_age_hva)(void *, unsigned long); +struct prog_entry; -struct trace_print_flags { - unsigned long mask; - const char *name; +struct event_filter { + struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog; + char *filter_string; }; -struct perf_guest_info_callbacks { - unsigned int (*state)(); - unsigned long (*get_ip)(); - unsigned int (*handle_intel_pt_intr)(); -}; +struct filter_pred; -struct syscore_ops { - struct list_head node; - int (*suspend)(); - void (*resume)(); - void (*shutdown)(); +struct prog_entry { + int target; + int when_to_branch; + struct filter_pred *pred; }; -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; +union upper_chunk { + union upper_chunk *next; + union lower_chunk *data[256]; }; -enum kvm_mr_change { - KVM_MR_CREATE = 0, - KVM_MR_DELETE = 1, - KVM_MR_MOVE = 2, - KVM_MR_FLAGS_ONLY = 3, +union lower_chunk { + union lower_chunk *next; + unsigned long data[256]; }; -enum { - OUTSIDE_GUEST_MODE = 0, - IN_GUEST_MODE = 1, - EXITING_GUEST_MODE = 2, - READING_SHADOW_PAGE_TABLES = 3, -}; +struct trace_subsystem_dir; -enum kvm_bus { - KVM_MMIO_BUS = 0, - KVM_PIO_BUS = 1, - KVM_VIRTIO_CCW_NOTIFY_BUS = 2, - KVM_FAST_MMIO_BUS = 3, - KVM_NR_BUSES = 4, +struct trace_event_file { + struct list_head list; + struct trace_event_call *event_call; + struct event_filter __attribute__((btf_type_tag("rcu"))) *filter; + struct eventfs_inode *ei; + struct trace_array *tr; + struct trace_subsystem_dir *system; + struct list_head triggers; + unsigned long flags; + atomic_t ref; + atomic_t sm_ref; + atomic_t tm_ref; }; -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 event_subsystem; -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, +struct trace_subsystem_dir { + struct list_head list; + struct event_subsystem *subsystem; + struct trace_array *tr; + struct eventfs_inode *ei; + int ref_count; + int nr_events; }; -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 event_subsystem { + struct list_head list; + const char *name; + struct event_filter *filter; + int ref_count; }; -typedef unsigned int xa_mark_t; - -typedef unsigned int slab_flags_t; - -struct trace_event_raw_kvm_userspace_exit { - struct trace_entry ent; - __u32 reason; - int errno; - char __data[0]; -}; +struct tracer_flags; -struct trace_event_raw_kvm_vcpu_wakeup { - struct trace_entry ent; - __u64 ns; - bool waited; - bool valid; - char __data[0]; +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_event_raw_kvm_set_irq { - struct trace_entry ent; - unsigned int gsi; - int level; - int irq_source_id; - char __data[0]; -}; +struct tracer_opt; -struct trace_event_raw_kvm_ack_irq { - struct trace_entry ent; - unsigned int irqchip; - unsigned int pin; - char __data[0]; +struct tracer_flags { + u32 val; + struct tracer_opt *opts; + struct tracer *trace; }; -struct trace_event_raw_kvm_mmio { - struct trace_entry ent; - u32 type; - u32 len; - u64 gpa; - u64 val; - char __data[0]; +struct tracer_opt { + const char *name; + u32 bit; }; -struct trace_event_raw_kvm_fpu { - struct trace_entry ent; - u32 load; - char __data[0]; -}; +struct trace_option_dentry; -struct trace_event_raw_kvm_halt_poll_ns { - struct trace_entry ent; - bool grow; - unsigned int vcpu_id; - unsigned int new; - unsigned int old; - char __data[0]; +struct trace_options { + struct tracer *tracer; + struct trace_option_dentry *topts; }; -struct trace_event_raw_kvm_dirty_ring_push { - struct trace_entry ent; - int index; - u32 dirty_index; - u32 reset_index; - u32 slot; - u64 offset; - char __data[0]; +struct trace_option_dentry { + struct tracer_opt *opt; + struct tracer_flags *flags; + struct trace_array *tr; + struct dentry *entry; }; -struct trace_event_raw_kvm_dirty_ring_reset { - struct trace_entry ent; - int index; - u32 dirty_index; - u32 reset_index; - char __data[0]; +struct trace_func_repeats { + unsigned long ip; + unsigned long parent_ip; + unsigned long count; + u64 ts_last_call; }; -struct trace_event_raw_kvm_dirty_ring_exit { - struct trace_entry ent; - int vcpu_id; - char __data[0]; +enum trace_iterator_flags { + TRACE_ITER_PRINT_PARENT = 1, + TRACE_ITER_SYM_OFFSET = 2, + TRACE_ITER_SYM_ADDR = 4, + TRACE_ITER_VERBOSE = 8, + TRACE_ITER_RAW = 16, + TRACE_ITER_HEX = 32, + TRACE_ITER_BIN = 64, + TRACE_ITER_BLOCK = 128, + TRACE_ITER_FIELDS = 256, + TRACE_ITER_PRINTK = 512, + TRACE_ITER_ANNOTATE = 1024, + TRACE_ITER_USERSTACKTRACE = 2048, + TRACE_ITER_SYM_USEROBJ = 4096, + TRACE_ITER_PRINTK_MSGONLY = 8192, + TRACE_ITER_CONTEXT_INFO = 16384, + TRACE_ITER_LATENCY_FMT = 32768, + TRACE_ITER_RECORD_CMD = 65536, + TRACE_ITER_RECORD_TGID = 131072, + TRACE_ITER_OVERWRITE = 262144, + TRACE_ITER_STOP_ON_FREE = 524288, + TRACE_ITER_IRQ_INFO = 1048576, + TRACE_ITER_MARKERS = 2097152, + TRACE_ITER_EVENT_FORK = 4194304, + TRACE_ITER_PAUSE_ON_TRACE = 8388608, + TRACE_ITER_HASH_PTR = 16777216, + TRACE_ITER_FUNCTION = 33554432, + TRACE_ITER_FUNC_FORK = 67108864, + TRACE_ITER_DISPLAY_GRAPH = 134217728, + TRACE_ITER_STACKTRACE = 268435456, }; -struct trace_event_raw_kvm_unmap_hva_range { - struct trace_entry ent; - unsigned long start; - unsigned long end; - char __data[0]; +enum { + FILTER_OTHER = 0, + FILTER_STATIC_STRING = 1, + FILTER_DYN_STRING = 2, + FILTER_RDYN_STRING = 3, + FILTER_PTR_STRING = 4, + FILTER_TRACE_FN = 5, + FILTER_CPUMASK = 6, + FILTER_COMM = 7, + FILTER_CPU = 8, + FILTER_STACKTRACE = 9, }; -struct trace_event_raw_kvm_set_spte_hva { - struct trace_entry ent; - unsigned long hva; - char __data[0]; +enum { + EVENT_FILE_FL_ENABLED = 1, + EVENT_FILE_FL_RECORDED_CMD = 2, + EVENT_FILE_FL_RECORDED_TGID = 4, + EVENT_FILE_FL_FILTERED = 8, + EVENT_FILE_FL_NO_SET_FILTER = 16, + EVENT_FILE_FL_SOFT_MODE = 32, + EVENT_FILE_FL_SOFT_DISABLED = 64, + EVENT_FILE_FL_TRIGGER_MODE = 128, + EVENT_FILE_FL_TRIGGER_COND = 256, + EVENT_FILE_FL_PID_FILTER = 512, + EVENT_FILE_FL_WAS_ENABLED = 1024, + EVENT_FILE_FL_FREED = 2048, }; -struct trace_event_raw_kvm_age_hva { +struct syscall_trace_enter { struct trace_entry ent; - unsigned long start; - unsigned long end; - char __data[0]; + int nr; + unsigned long args[0]; }; -struct trace_event_raw_kvm_test_age_hva { +struct syscall_trace_exit { struct trace_entry ent; - unsigned long hva; - char __data[0]; -}; - -typedef u64 hpa_t; - -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 prog_entry; - -struct event_filter { - struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog; - char *filter_string; + int nr; + long ret; }; -struct trace_buffer; - struct ring_buffer_event; struct trace_event_buffer { @@ -12144,1097 +12369,268 @@ struct ring_buffer_event { u32 array[0]; }; -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]; -}; - -typedef void (*smp_call_func_t)(void *); - -typedef bool (*smp_cond_func_t)(int, void *); - -struct kvm_userspace_memory_region { - __u32 slot; - __u32 flags; - __u64 guest_phys_addr; - __u64 memory_size; - __u64 userspace_addr; +struct syscall_tp_t { + struct trace_entry ent; + int syscall_nr; + unsigned long args[6]; }; -struct kvm_memslot_iter { - struct kvm_memslots *slots; - struct rb_node *node; - struct kvm_memory_slot *slot; +struct syscall_tp_t___2 { + struct trace_entry ent; + int syscall_nr; + unsigned long ret; }; -typedef u64 hfn_t; - -typedef hfn_t kvm_pfn_t; - -typedef unsigned long hva_t; - -struct kvm_coalesced_mmio_zone { - __u64 addr; - __u32 size; - union { - __u32 pad; - __u32 pio; - }; +struct tnum { + u64 value; + u64 mask; }; -struct kvm_irqfd { - __u32 fd; - __u32 gsi; - __u32 flags; - __u32 resamplefd; - __u8 pad[16]; -}; +struct pcpu_freelist_node; -struct kvm_irq_level { - union { - __u32 irq; - __s32 status; - }; - __u32 level; +struct pcpu_freelist_head { + struct pcpu_freelist_node *first; + raw_spinlock_t lock; }; -struct kvm_msi { - __u32 address_lo; - __u32 address_hi; - __u32 data; - __u32 flags; - __u32 devid; - __u8 pad[12]; +struct pcpu_freelist_node { + struct pcpu_freelist_node *next; }; -struct kvm_ioeventfd { - __u64 datamatch; - __u64 addr; - __u32 len; - __s32 fd; - __u32 flags; - __u8 pad[36]; +struct pcpu_freelist { + struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist; + struct pcpu_freelist_head extralist; }; -struct kvm_irq_routing_irqchip { - __u32 irqchip; - __u32 pin; +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 kvm_irq_routing_msi { - __u32 address_lo; - __u32 address_hi; - __u32 data; - union { - __u32 pad; - __u32 devid; - }; +struct bpf_lru_list { + struct list_head lists[3]; + unsigned int counts[2]; + struct list_head *next_inactive_rotation; + raw_spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct kvm_irq_routing_s390_adapter { - __u64 ind_addr; - __u64 summary_addr; - __u64 ind_offset; - __u32 summary_offset; - __u32 adapter_id; +struct bpf_lru_locallist { + struct list_head lists[2]; + u16 next_steal; + raw_spinlock_t lock; }; -struct kvm_irq_routing_hv_sint { - __u32 vcpu; - __u32 sint; +struct bpf_lru_node { + struct list_head list; + u16 cpu; + u8 type; + u8 ref; }; -struct kvm_irq_routing_xen_evtchn { - __u32 port; - __u32 vcpu; - __u32 priority; +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 kvm_irq_routing_entry { - __u32 gsi; - __u32 type; - __u32 flags; - __u32 pad; - union { - struct kvm_irq_routing_irqchip irqchip; - struct kvm_irq_routing_msi msi; - struct kvm_irq_routing_s390_adapter adapter; - struct kvm_irq_routing_hv_sint hv_sint; - struct kvm_irq_routing_xen_evtchn xen_evtchn; - __u32 pad[8]; - } u; -}; +typedef bool (*del_from_htab_func)(void *, struct bpf_lru_node *); -struct kvm_dirty_log { - __u32 slot; - __u32 padding1; +struct bpf_lru { union { - void __attribute__((btf_type_tag("user"))) *dirty_bitmap; - __u64 padding2; + struct bpf_common_lru common_lru; + struct bpf_lru_list __attribute__((btf_type_tag("percpu"))) *percpu_lru; }; + del_from_htab_func del_from_htab; + void *del_arg; + unsigned int hash_offset; + unsigned int nr_scans; + bool percpu; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct kvm_clear_dirty_log { - __u32 slot; - __u32 num_pages; - __u64 first_page; +struct bpf_array_aux; + +struct bpf_array { + struct bpf_map map; + u32 elem_size; + u32 index_mask; + struct bpf_array_aux *aux; union { - void __attribute__((btf_type_tag("user"))) *dirty_bitmap; - __u64 padding2; + struct { + struct {} __empty_value; + char value[0]; + }; + struct { + struct {} __empty_ptrs; + void *ptrs[0]; + }; + struct { + struct {} __empty_pptrs; + void __attribute__((btf_type_tag("percpu"))) *pptrs[0]; + }; }; -}; - -struct kvm_sregs {}; - -struct kvm_fpu {}; - -struct kvm_regs { - struct user_pt_regs regs; - __u64 sp_el1; - __u64 elr_el1; - __u64 spsr[5]; long: 64; - struct user_fpsimd_state fp_regs; -}; - -struct kvm_translation { - __u64 linear_address; - __u64 physical_address; - __u8 valid; - __u8 writeable; - __u8 usermode; - __u8 pad[5]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct kvm_guest_debug { - __u32 control; - __u32 pad; - struct kvm_guest_debug_arch arch; +struct bpf_array_aux { + struct list_head poke_progs; + struct bpf_map *map; + struct mutex poke_mutex; + struct work_struct work; }; -struct kvm_stats_header { - __u32 flags; - __u32 name_size; - __u32 num_desc; - __u32 id_offset; - __u32 desc_offset; - __u32 data_offset; +struct fd { + struct file *file; + unsigned int flags; }; -struct kvm_gfn_range; - -typedef bool (*hva_handler_t)(struct kvm *, struct kvm_gfn_range *); - -typedef void (*on_lock_fn_t)(struct kvm *, unsigned long, unsigned long); - -typedef void (*on_unlock_fn_t)(struct kvm *); - -struct kvm_hva_range { - unsigned long start; - unsigned long end; - pte_t pte; - hva_handler_t handler; - on_lock_fn_t on_lock; - on_unlock_fn_t on_unlock; - bool flush_on_ret; - bool may_block; -}; +struct ref_tracker_dir {}; -struct kvm_gfn_range { - struct kvm_memory_slot *slot; - gfn_t start; - gfn_t end; - pte_t pte; - bool may_block; +struct raw_notifier_head { + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -struct trace_event_data_offsets_kvm_userspace_exit {}; - -struct trace_event_data_offsets_kvm_vcpu_wakeup {}; - -struct trace_event_data_offsets_kvm_set_irq {}; - -struct trace_event_data_offsets_kvm_ack_irq {}; - -struct trace_event_data_offsets_kvm_mmio {}; +struct prot_inuse; -struct trace_event_data_offsets_kvm_fpu {}; +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 trace_event_data_offsets_kvm_halt_poll_ns {}; +struct ipstats_mib; -struct trace_event_data_offsets_kvm_dirty_ring_push {}; +struct tcp_mib; -struct trace_event_data_offsets_kvm_dirty_ring_reset {}; +struct linux_mib; -struct trace_event_data_offsets_kvm_dirty_ring_exit {}; +struct udp_mib; -struct trace_event_data_offsets_kvm_unmap_hva_range {}; +struct icmp_mib; -struct trace_event_data_offsets_kvm_set_spte_hva {}; +struct icmpmsg_mib; -struct trace_event_data_offsets_kvm_age_hva {}; +struct icmpv6_mib; -struct trace_event_data_offsets_kvm_test_age_hva {}; +struct icmpv6msg_mib; -struct kvm_host_map { - struct page *page; - void *hva; - kvm_pfn_t pfn; - kvm_pfn_t gfn; +struct netns_mib { + struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ip_statistics; + struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ipv6_statistics; + struct tcp_mib __attribute__((btf_type_tag("percpu"))) *tcp_statistics; + struct linux_mib __attribute__((btf_type_tag("percpu"))) *net_statistics; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_statistics; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_stats_in6; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_statistics; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_stats_in6; + struct icmp_mib __attribute__((btf_type_tag("percpu"))) *icmp_statistics; + struct icmpmsg_mib *icmpmsg_statistics; + struct icmpv6_mib __attribute__((btf_type_tag("percpu"))) *icmpv6_statistics; + struct icmpv6msg_mib *icmpv6msg_statistics; + struct proc_dir_entry *proc_net_devsnmp6; }; -struct gfn_to_hva_cache { - u64 generation; - gpa_t gpa; - unsigned long hva; - unsigned long len; - struct kvm_memory_slot *memslot; +struct netns_packet { + struct mutex sklist_lock; + struct hlist_head sklist; }; -struct kvm_enable_cap { - __u32 cap; - __u32 flags; - __u64 args[4]; - __u8 pad[64]; +struct unix_table { + spinlock_t *locks; + struct hlist_head *buckets; }; -typedef int (*kvm_vm_thread_fn_t)(struct kvm *, uintptr_t); - -struct kvm_vm_worker_thread_context { - struct kvm *kvm; - struct task_struct *parent; - struct completion init_done; - kvm_vm_thread_fn_t thread_fn; - uintptr_t data; - int err; +struct netns_unix { + struct unix_table table; + int sysctl_max_dgram_qlen; + struct ctl_table_header *ctl; }; -struct kvm_irq_routing { - __u32 nr; - __u32 flags; - struct kvm_irq_routing_entry entries[0]; +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 kvm_create_device { - __u32 type; - __u32 fd; - __u32 flags; -}; +struct inet_hashinfo; -struct kvm_signal_mask { - __u32 len; - __u8 sigset[0]; +struct inet_timewait_death_row { + refcount_t tw_refcount; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct inet_hashinfo *hashinfo; + int sysctl_max_tw_buckets; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct kvm_nvhe_init_params { - unsigned long mair_el2; - unsigned long tcr_el2; - unsigned long tpidr_el2; - unsigned long stack_hyp_va; - unsigned long stack_pa; - phys_addr_t pgd_pa; - unsigned long hcr_el2; - unsigned long vttbr; - unsigned long vtcr; +struct local_ports { + seqlock_t lock; + int range[2]; + bool warned; }; -typedef void (*hcall_t)(struct kvm_cpu_context *); - -typedef u64 kvm_pte_t; - -typedef kvm_pte_t *kvm_pteref_t; - -enum kvm_pgtable_stage2_flags { - KVM_PGTABLE_S2_NOFWB = 1, - KVM_PGTABLE_S2_IDMAP = 2, +struct ping_group_range { + seqlock_t lock; + kgid_t range[2]; }; -enum kvm_pgtable_prot { - KVM_PGTABLE_PROT_X = 1ULL, - KVM_PGTABLE_PROT_W = 2ULL, - KVM_PGTABLE_PROT_R = 4ULL, - KVM_PGTABLE_PROT_DEVICE = 8ULL, - KVM_PGTABLE_PROT_SW0 = 36028797018963968ULL, - KVM_PGTABLE_PROT_SW1 = 72057594037927936ULL, - KVM_PGTABLE_PROT_SW2 = 144115188075855872ULL, - KVM_PGTABLE_PROT_SW3 = 288230376151711744ULL, -}; +typedef struct { + u64 key[2]; +} siphash_key_t; -typedef bool (*kvm_pgtable_force_pte_cb_t)(u64, u64, enum kvm_pgtable_prot); +struct udp_table; -struct kvm_pgtable_mm_ops; +struct ipv4_devconf; -struct kvm_pgtable { - u32 ia_bits; - u32 start_level; - kvm_pteref_t pgd; - struct kvm_pgtable_mm_ops *mm_ops; - struct kvm_s2_mmu *mmu; - enum kvm_pgtable_stage2_flags flags; - kvm_pgtable_force_pte_cb_t force_pte_cb; -}; +struct ip_ra_chain; -struct kvm_pgtable_mm_ops { - void * (*zalloc_page)(void *); - void * (*zalloc_pages_exact)(size_t); - void (*free_pages_exact)(void *, size_t); - void (*free_unlinked_table)(void *, u32); - void (*get_page)(void *); - void (*put_page)(void *); - int (*page_count)(void *); - void * (*phys_to_virt)(phys_addr_t); - phys_addr_t (*virt_to_phys)(void *); - void (*dcache_clean_inval_poc)(void *, size_t); - void (*icache_inval_pou)(void *, size_t); -}; +struct inet_peer_base; -enum __kvm_host_smccc_func { - __KVM_HOST_SMCCC_FUNC___kvm_get_mdcr_el2 = 1, - __KVM_HOST_SMCCC_FUNC___pkvm_init = 2, - __KVM_HOST_SMCCC_FUNC___pkvm_create_private_mapping = 3, - __KVM_HOST_SMCCC_FUNC___pkvm_cpu_set_vector = 4, - __KVM_HOST_SMCCC_FUNC___kvm_enable_ssbs = 5, - __KVM_HOST_SMCCC_FUNC___vgic_v3_init_lrs = 6, - __KVM_HOST_SMCCC_FUNC___vgic_v3_get_gic_config = 7, - __KVM_HOST_SMCCC_FUNC___pkvm_prot_finalize = 8, - __KVM_HOST_SMCCC_FUNC___pkvm_host_share_hyp = 9, - __KVM_HOST_SMCCC_FUNC___pkvm_host_unshare_hyp = 10, - __KVM_HOST_SMCCC_FUNC___kvm_adjust_pc = 11, - __KVM_HOST_SMCCC_FUNC___kvm_vcpu_run = 12, - __KVM_HOST_SMCCC_FUNC___kvm_flush_vm_context = 13, - __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid_ipa = 14, - __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid_ipa_nsh = 15, - __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid = 16, - __KVM_HOST_SMCCC_FUNC___kvm_flush_cpu_context = 17, - __KVM_HOST_SMCCC_FUNC___kvm_timer_set_cntvoff = 18, - __KVM_HOST_SMCCC_FUNC___vgic_v3_read_vmcr = 19, - __KVM_HOST_SMCCC_FUNC___vgic_v3_write_vmcr = 20, - __KVM_HOST_SMCCC_FUNC___vgic_v3_save_aprs = 21, - __KVM_HOST_SMCCC_FUNC___vgic_v3_restore_aprs = 22, - __KVM_HOST_SMCCC_FUNC___pkvm_vcpu_init_traps = 23, - __KVM_HOST_SMCCC_FUNC___pkvm_init_vm = 24, - __KVM_HOST_SMCCC_FUNC___pkvm_init_vcpu = 25, - __KVM_HOST_SMCCC_FUNC___pkvm_teardown_vm = 26, -}; +struct fqdir; -struct pkvm_hyp_vcpu { - struct kvm_vcpu vcpu; - struct kvm_vcpu *host_vcpu; - long: 64; -}; +struct tcp_congestion_ops; -typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *); +struct tcp_fastopen_context; -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_struct; - -typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *); - -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; -}; - -typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); - -typedef struct { - unsigned int __softirq_pending; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -} irq_cpustat_t; - -struct softirq_action { - void (*action)(struct softirq_action *); -}; - -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 { - HI_SOFTIRQ = 0, - TIMER_SOFTIRQ = 1, - NET_TX_SOFTIRQ = 2, - NET_RX_SOFTIRQ = 3, - BLOCK_SOFTIRQ = 4, - IRQ_POLL_SOFTIRQ = 5, - TASKLET_SOFTIRQ = 6, - SCHED_SOFTIRQ = 7, - HRTIMER_SOFTIRQ = 8, - RCU_SOFTIRQ = 9, - NR_SOFTIRQS = 10, -}; - -enum { - 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_raw_tasklet { - struct trace_entry ent; - void *tasklet; - void *func; - char __data[0]; -}; - -struct trace_event_data_offsets_irq_handler_entry { - u32 name; -}; - -struct wait_bit_key { - void *flags; - int bit_nr; - unsigned long timeout; -}; - -struct wait_bit_queue_entry { - struct wait_bit_key key; - struct wait_queue_entry wq_entry; -}; - -struct trace_event_data_offsets_irq_handler_exit {}; - -struct trace_event_data_offsets_softirq {}; - -struct trace_event_data_offsets_tasklet {}; - -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); -}; - -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 { - 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, -}; - -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 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]; -}; - -typedef void (*rcu_callback_t)(struct callback_head *); - -struct irq_affinity_desc { - struct cpumask mask; - unsigned int is_managed: 1; -}; - -struct semaphore { - raw_spinlock_t lock; - unsigned int count; - struct list_head wait_list; -}; - -struct linux_binprm; - -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 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 __va_list { - void *__stack; - void *__gr_top; - void *__vr_top; - int __gr_offs; - int __vr_offs; -}; - -typedef __builtin_va_list va_list; - -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 *); - -struct bpf_link_info; - -typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *); - -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, -}; - -struct bpf_func_proto; - -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; -}; - -struct ref_tracker_dir {}; - -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 icmp_mib; - -struct icmpmsg_mib; - -struct icmpv6_mib; - -struct icmpv6msg_mib; - -struct netns_mib { - struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ip_statistics; - struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ipv6_statistics; - struct tcp_mib __attribute__((btf_type_tag("percpu"))) *tcp_statistics; - struct linux_mib __attribute__((btf_type_tag("percpu"))) *net_statistics; - struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_statistics; - struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_stats_in6; - struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_statistics; - struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_stats_in6; - struct icmp_mib __attribute__((btf_type_tag("percpu"))) *icmp_statistics; - struct icmpmsg_mib *icmpmsg_statistics; - struct icmpv6_mib __attribute__((btf_type_tag("percpu"))) *icmpv6_statistics; - struct icmpv6msg_mib *icmpv6msg_statistics; - struct proc_dir_entry *proc_net_devsnmp6; -}; - -struct netns_packet { - struct mutex sklist_lock; - struct hlist_head sklist; -}; - -struct unix_table { - spinlock_t *locks; - struct hlist_head *buckets; -}; - -struct netns_unix { - struct unix_table table; - int sysctl_max_dgram_qlen; - struct ctl_table_header *ctl; -}; - -struct netns_nexthop { - struct rb_root rb_root; - struct hlist_head *devhash; - unsigned int seq; - u32 last_id_allocated; - struct blocking_notifier_head notifier_chain; -}; - -struct inet_hashinfo; - -struct inet_timewait_death_row { - refcount_t tw_refcount; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct inet_hashinfo *hashinfo; - int sysctl_max_tw_buckets; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct local_ports { - 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 inet_peer_base; - -struct fqdir; - -struct tcp_congestion_ops; - -struct tcp_fastopen_context; - -struct fib_notifier_ops; +struct fib_notifier_ops; struct netns_ipv4 { struct inet_timewait_death_row tcp_death_row; @@ -13296,6 +12692,8 @@ struct netns_ipv4 { u8 sysctl_tcp_syncookies; u8 sysctl_tcp_migrate_req; u8 sysctl_tcp_comp_sack_nr; + u8 sysctl_tcp_backlog_ack_defer; + u8 sysctl_tcp_pingpong_thresh; int sysctl_tcp_reordering; u8 sysctl_tcp_retries1; u8 sysctl_tcp_retries2; @@ -13395,7 +12793,7 @@ struct dst_ops { 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); + void (*ifdown)(struct dst_entry *, struct net_device *); struct dst_entry * (*negative_advice)(struct dst_entry *); void (*link_failure)(struct sk_buff *); void (*update_pmtu)(struct dst_entry *, struct sock *, struct sk_buff *, u32, bool); @@ -13641,7 +13039,7 @@ struct net { spinlock_t rules_mod_lock; atomic_t dev_unreg_count; unsigned int dev_base_seq; - int ifindex; + u32 ifindex; spinlock_t nsid_lock; atomic_t fnhe_genid; struct list_head list; @@ -13663,6 +13061,7 @@ struct net { struct uevent_sock *uevent_sock; struct hlist_head *dev_name_head; struct hlist_head *dev_index_head; + struct xarray dev_by_index; struct raw_notifier_head netdev_chain; u32 hash_mix; struct net_device *loopback_dev; @@ -13673,6 +13072,12 @@ struct net { struct netns_unix unx; struct netns_nexthop nexthop; long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; struct netns_ipv4 ipv4; struct netns_ipv6 ipv6; struct netns_nf nf; @@ -13692,8 +13097,6 @@ struct net { long: 64; }; -struct pcpu_dstats; - typedef u32 xdp_features_t; typedef u64 netdev_features_t; @@ -13813,7 +13216,7 @@ 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; + struct net __attribute__((btf_type_tag("rcu"))) *net; } possible_net_t; enum netdev_ml_priv_type { @@ -13821,10 +13224,19 @@ enum netdev_ml_priv_type { ML_PRIV_CAN = 1, }; +enum netdev_stat_type { + NETDEV_PCPU_STAT_NONE = 0, + NETDEV_PCPU_STAT_LSTATS = 1, + NETDEV_PCPU_STAT_TSTATS = 2, + NETDEV_PCPU_STAT_DSTATS = 3, +}; + struct garp_port; struct mrp_port; +typedef __s16 s16; + struct netdev_tc_txq { u16 count; u16 offset; @@ -13869,7 +13281,7 @@ struct dsa_port; struct netdev_rx_queue; -struct mini_Qdisc; +struct bpf_mprog_entry; struct netdev_queue; @@ -13885,8 +13297,12 @@ struct pcpu_lstats; struct pcpu_sw_netstats; +struct pcpu_dstats; + struct rtnl_link_ops; +struct netprio_map; + struct phy_device; struct udp_tunnel_nic_info; @@ -13980,9 +13396,10 @@ struct net_device { int napi_defer_hard_irqs; unsigned int gro_max_size; unsigned int gro_ipv4_max_size; + unsigned int xdp_zc_max_segs; 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 bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_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]; @@ -14003,7 +13420,7 @@ struct net_device { 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 bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_egress; struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *nf_hooks_egress; struct hlist_head qdisc_hash[16]; struct timer_list watchdog_timer; @@ -14031,6 +13448,7 @@ struct net_device { possible_net_t nd_net; void *ml_priv; enum netdev_ml_priv_type ml_priv_type; + enum netdev_stat_type pcpu_stat_type: 8; union { struct pcpu_lstats __attribute__((btf_type_tag("percpu"))) *lstats; struct pcpu_sw_netstats __attribute__((btf_type_tag("percpu"))) *tstats; @@ -14050,6 +13468,7 @@ struct net_device { 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; @@ -14071,7 +13490,6 @@ struct net_device { long: 64; long: 64; long: 64; - long: 64; }; struct dev_ifalias { @@ -14135,10 +13553,10 @@ struct netlink_ext_ack; struct ndmsg; -struct netlink_callback; - struct nlmsghdr; +struct netlink_callback; + struct netdev_phys_item_id; struct netdev_bpf; @@ -14155,6 +13573,8 @@ struct net_device_path; struct skb_shared_hwtstamps; +struct kernel_hwtstamp_config; + struct net_device_ops { int (*ndo_init)(struct net_device *); void (*ndo_uninit)(struct net_device *); @@ -14207,12 +13627,13 @@ struct net_device_ops { 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_del_bulk)(struct nlmsghdr *, struct net_device *, struct netlink_ext_ack *); int (*ndo_fdb_dump)(struct sk_buff *, struct netlink_callback *, struct net_device *, struct net_device *, int *); int (*ndo_fdb_get)(struct sk_buff *, struct nlattr **, struct net_device *, const unsigned char *, u16, u32, u32, struct netlink_ext_ack *); int (*ndo_mdb_add)(struct net_device *, struct nlattr **, u16, struct netlink_ext_ack *); int (*ndo_mdb_del)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); int (*ndo_mdb_dump)(struct net_device *, struct sk_buff *, struct netlink_callback *); + int (*ndo_mdb_get)(struct net_device *, struct nlattr **, u32, u32, struct netlink_ext_ack *); int (*ndo_bridge_setlink)(struct net_device *, struct nlmsghdr *, u16, struct netlink_ext_ack *); int (*ndo_bridge_getlink)(struct sk_buff *, u32, u32, struct net_device *, u32, int); int (*ndo_bridge_dellink)(struct net_device *, struct nlmsghdr *, u16); @@ -14234,6 +13655,8 @@ struct net_device_ops { struct net_device * (*ndo_get_peer_dev)(struct net_device *); int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *); ktime_t (*ndo_get_tstamp)(struct net_device *, const struct skb_shared_hwtstamps *, bool); + int (*ndo_hwtstamp_get)(struct net_device *, struct kernel_hwtstamp_config *); + int (*ndo_hwtstamp_set)(struct net_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); }; typedef __u32 __wsum; @@ -14445,8 +13868,6 @@ struct skb_ext { char data[0]; }; -typedef unsigned short __kernel_sa_family_t; - typedef __kernel_sa_family_t sa_family_t; struct sockaddr { @@ -14646,8 +14067,8 @@ struct nla_policy { 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; + const struct netlink_range_validation *range; + const struct netlink_range_validation_signed *range_signed; struct { s16 min; s16 max; @@ -14676,6 +14097,14 @@ struct ndmsg { __u8 ndm_type; }; +struct nlmsghdr { + __u32 nlmsg_len; + __u16 nlmsg_type; + __u16 nlmsg_flags; + __u32 nlmsg_seq; + __u32 nlmsg_pid; +}; + struct netlink_callback { struct sk_buff *skb; const struct nlmsghdr *nlh; @@ -14696,14 +14125,6 @@ struct netlink_callback { }; }; -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; @@ -14739,6 +14160,11 @@ struct netdev_bpf { }; }; +struct sock_fprog_kern { + u16 len; + struct sock_filter *filter; +}; + struct bpf_map_dev_ops; struct bpf_offloaded_map { @@ -14752,133 +14178,6 @@ struct bpf_offloaded_map { long: 64; }; -struct napi_struct; - -struct page_pool_params { - unsigned int flags; - unsigned int order; - unsigned int pool_size; - int nid; - struct device *dev; - struct napi_struct *napi; - enum dma_data_direction dma_dir; - unsigned int max_len; - unsigned int offset; - 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: 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; - 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 gro_list { - struct list_head list; - int count; -}; - -struct napi_struct { - struct list_head poll_list; - unsigned long state; - int weight; - int defer_hard_irqs_count; - unsigned long gro_bitmask; - int (*poll)(struct napi_struct *, int); - int list_owner; - struct net_device *dev; - struct gro_list gro_hash[8]; - struct sk_buff *skb; - struct list_head rx_list; - int rx_count; - unsigned int napi_id; - struct hrtimer timer; - struct task_struct *thread; - struct list_head dev_list; - struct hlist_node napi_hash_node; -}; - -struct page_pool_recycle_stats { - u64 cached; - u64 cache_full; - u64 ring; - u64 ring_full; - u64 released_refcnt; -}; - 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 *); @@ -14981,6 +14280,7 @@ struct net_device_path { u8 queue; u16 wcid; u8 bss; + u8 amsdu; } mtk_wdma; }; }; @@ -15359,6 +14659,7 @@ struct ipv6_devconf { __s32 accept_ra_defrtr; __u32 ra_defrtr_metric; __s32 accept_ra_min_hop_limit; + __s32 accept_ra_min_lft; __s32 accept_ra_pinfo; __s32 ignore_routes_with_linkdown; __s32 proxy_ndp; @@ -15386,6 +14687,7 @@ struct ipv6_devconf { __u32 ioam6_id_wide; __u8 ioam6_enabled; __u8 ndisc_evict_nocarrier; + __u8 ra_honor_pio_life; struct ctl_table_header *sysctl_header; }; @@ -15461,165 +14763,62 @@ struct vlan_info { struct callback_head rcu; }; -struct rps_map; +struct bpf_mprog_fp { + struct bpf_prog *prog; +}; -struct rps_dev_flow_table; +struct bpf_mprog_bundle; -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 bpf_mprog_entry { + struct bpf_mprog_fp fp_items[64]; + struct bpf_mprog_bundle *parent; +}; + +struct dql { + unsigned int num_queued; + unsigned int adj_limit; + unsigned int last_obj_cnt; + 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: 64; + long: 64; +}; + +struct netdev_queue { struct net_device *dev; netdevice_tracker dev_tracker; + struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc; + struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc_sleeping; + struct kobject kobj; + int numa_node; + unsigned long tx_maxrate; + atomic_long_t trans_timeout; + struct net_device *sb_dev; struct xsk_buff_pool *pool; + spinlock_t _xmit_lock; + int xmit_lock_owner; + unsigned long trans_start; + unsigned long state; 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; + long: 64; + struct dql dql; }; struct qdisc_skb_head { @@ -15724,8 +14923,12 @@ struct Qdisc_ops { struct module *owner; }; +struct tcmsg; + struct qdisc_walker; +struct tcf_block; + struct Qdisc_class_ops { unsigned int flags; struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *); @@ -15743,53 +14946,6 @@ struct Qdisc_class_ops { 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: 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: 64; - long: 64; -}; - -struct netdev_queue { - struct net_device *dev; - netdevice_tracker dev_tracker; - struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc; - struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc_sleeping; - struct kobject kobj; - int numa_node; - unsigned long tx_maxrate; - atomic_long_t trans_timeout; - struct net_device *sb_dev; - struct xsk_buff_pool *pool; - 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; @@ -15800,6 +14956,205 @@ struct tcmsg { __u32 tcm_info; }; +struct flow_block { + struct list_head cb_list; +}; + +struct tcf_chain; + +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 tcf_proto; + +struct tcf_proto_ops; + +struct tcf_chain { + struct mutex filter_chain_lock; + struct tcf_proto __attribute__((btf_type_tag("rcu"))) *filter_chain; + struct list_head list; + struct tcf_block *block; + u32 index; + unsigned int refcnt; + unsigned int action_refcnt; + bool explicitly_created; + bool flushing; + const struct tcf_proto_ops *tmplt_ops; + void *tmplt_priv; + struct callback_head rcu; +}; + +struct tcf_result; + +struct tcf_proto { + struct tcf_proto __attribute__((btf_type_tag("rcu"))) *next; + void __attribute__((btf_type_tag("rcu"))) *root; + int (*classify)(struct sk_buff *, const struct tcf_proto *, struct tcf_result *); + __be16 protocol; + u32 prio; + void *data; + const struct tcf_proto_ops *ops; + struct tcf_chain *chain; + spinlock_t lock; + bool deleting; + refcount_t refcnt; + struct callback_head rcu; + struct hlist_node destroy_ht_node; +}; + +enum skb_drop_reason { + SKB_NOT_DROPPED_YET = 0, + SKB_CONSUMED = 1, + SKB_DROP_REASON_NOT_SPECIFIED = 2, + SKB_DROP_REASON_NO_SOCKET = 3, + SKB_DROP_REASON_PKT_TOO_SMALL = 4, + SKB_DROP_REASON_TCP_CSUM = 5, + SKB_DROP_REASON_SOCKET_FILTER = 6, + SKB_DROP_REASON_UDP_CSUM = 7, + SKB_DROP_REASON_NETFILTER_DROP = 8, + SKB_DROP_REASON_OTHERHOST = 9, + SKB_DROP_REASON_IP_CSUM = 10, + SKB_DROP_REASON_IP_INHDR = 11, + SKB_DROP_REASON_IP_RPFILTER = 12, + SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST = 13, + SKB_DROP_REASON_XFRM_POLICY = 14, + SKB_DROP_REASON_IP_NOPROTO = 15, + SKB_DROP_REASON_SOCKET_RCVBUFF = 16, + SKB_DROP_REASON_PROTO_MEM = 17, + SKB_DROP_REASON_TCP_AUTH_HDR = 18, + SKB_DROP_REASON_TCP_MD5NOTFOUND = 19, + SKB_DROP_REASON_TCP_MD5UNEXPECTED = 20, + SKB_DROP_REASON_TCP_MD5FAILURE = 21, + SKB_DROP_REASON_TCP_AONOTFOUND = 22, + SKB_DROP_REASON_TCP_AOUNEXPECTED = 23, + SKB_DROP_REASON_TCP_AOKEYNOTFOUND = 24, + SKB_DROP_REASON_TCP_AOFAILURE = 25, + SKB_DROP_REASON_SOCKET_BACKLOG = 26, + SKB_DROP_REASON_TCP_FLAGS = 27, + SKB_DROP_REASON_TCP_ZEROWINDOW = 28, + SKB_DROP_REASON_TCP_OLD_DATA = 29, + SKB_DROP_REASON_TCP_OVERWINDOW = 30, + SKB_DROP_REASON_TCP_OFOMERGE = 31, + SKB_DROP_REASON_TCP_RFC7323_PAWS = 32, + SKB_DROP_REASON_TCP_OLD_SEQUENCE = 33, + SKB_DROP_REASON_TCP_INVALID_SEQUENCE = 34, + SKB_DROP_REASON_TCP_RESET = 35, + SKB_DROP_REASON_TCP_INVALID_SYN = 36, + SKB_DROP_REASON_TCP_CLOSE = 37, + SKB_DROP_REASON_TCP_FASTOPEN = 38, + SKB_DROP_REASON_TCP_OLD_ACK = 39, + SKB_DROP_REASON_TCP_TOO_OLD_ACK = 40, + SKB_DROP_REASON_TCP_ACK_UNSENT_DATA = 41, + SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE = 42, + SKB_DROP_REASON_TCP_OFO_DROP = 43, + SKB_DROP_REASON_IP_OUTNOROUTES = 44, + SKB_DROP_REASON_BPF_CGROUP_EGRESS = 45, + SKB_DROP_REASON_IPV6DISABLED = 46, + SKB_DROP_REASON_NEIGH_CREATEFAIL = 47, + SKB_DROP_REASON_NEIGH_FAILED = 48, + SKB_DROP_REASON_NEIGH_QUEUEFULL = 49, + SKB_DROP_REASON_NEIGH_DEAD = 50, + SKB_DROP_REASON_TC_EGRESS = 51, + SKB_DROP_REASON_QDISC_DROP = 52, + SKB_DROP_REASON_CPU_BACKLOG = 53, + SKB_DROP_REASON_XDP = 54, + SKB_DROP_REASON_TC_INGRESS = 55, + SKB_DROP_REASON_UNHANDLED_PROTO = 56, + SKB_DROP_REASON_SKB_CSUM = 57, + SKB_DROP_REASON_SKB_GSO_SEG = 58, + SKB_DROP_REASON_SKB_UCOPY_FAULT = 59, + SKB_DROP_REASON_DEV_HDR = 60, + SKB_DROP_REASON_DEV_READY = 61, + SKB_DROP_REASON_FULL_RING = 62, + SKB_DROP_REASON_NOMEM = 63, + SKB_DROP_REASON_HDR_TRUNC = 64, + SKB_DROP_REASON_TAP_FILTER = 65, + SKB_DROP_REASON_TAP_TXFILTER = 66, + SKB_DROP_REASON_ICMP_CSUM = 67, + SKB_DROP_REASON_INVALID_PROTO = 68, + SKB_DROP_REASON_IP_INADDRERRORS = 69, + SKB_DROP_REASON_IP_INNOROUTES = 70, + SKB_DROP_REASON_PKT_TOO_BIG = 71, + SKB_DROP_REASON_DUP_FRAG = 72, + SKB_DROP_REASON_FRAG_REASM_TIMEOUT = 73, + SKB_DROP_REASON_FRAG_TOO_FAR = 74, + SKB_DROP_REASON_TCP_MINTTL = 75, + SKB_DROP_REASON_IPV6_BAD_EXTHDR = 76, + SKB_DROP_REASON_IPV6_NDISC_FRAG = 77, + SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT = 78, + SKB_DROP_REASON_IPV6_NDISC_BAD_CODE = 79, + SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS = 80, + SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST = 81, + SKB_DROP_REASON_QUEUE_PURGE = 82, + SKB_DROP_REASON_TC_ERROR = 83, + SKB_DROP_REASON_MAX = 84, + SKB_DROP_REASON_SUBSYS_MASK = 4294901760, +}; + +struct tcf_result { + union { + struct { + unsigned long class; + u32 classid; + }; + const struct tcf_proto *goto_tp; + }; + enum skb_drop_reason drop_reason; +}; + +typedef int flow_setup_cb_t(enum tc_setup_type, void *, void *); + +struct tcf_walker; + +struct tcf_exts; + +struct tcf_proto_ops { + struct list_head head; + char kind[16]; + int (*classify)(struct sk_buff *, const struct tcf_proto *, struct tcf_result *); + int (*init)(struct tcf_proto *); + void (*destroy)(struct tcf_proto *, bool, struct netlink_ext_ack *); + void * (*get)(struct tcf_proto *, u32); + void (*put)(struct tcf_proto *, void *); + int (*change)(struct net *, struct sk_buff *, struct tcf_proto *, unsigned long, u32, struct nlattr **, void **, u32, struct netlink_ext_ack *); + int (*delete)(struct tcf_proto *, void *, bool *, bool, struct netlink_ext_ack *); + bool (*delete_empty)(struct tcf_proto *); + void (*walk)(struct tcf_proto *, struct tcf_walker *, bool); + int (*reoffload)(struct tcf_proto *, bool, flow_setup_cb_t *, void *, struct netlink_ext_ack *); + void (*hw_add)(struct tcf_proto *, void *); + void (*hw_del)(struct tcf_proto *, void *); + void (*bind_class)(void *, u32, unsigned long, void *, unsigned long); + void * (*tmplt_create)(struct net *, struct tcf_chain *, struct nlattr **, struct netlink_ext_ack *); + void (*tmplt_destroy)(void *); + struct tcf_exts * (*get_exts)(const struct tcf_proto *, u32); + int (*dump)(struct net *, struct tcf_proto *, void *, struct sk_buff *, struct tcmsg *, bool); + int (*terse_dump)(struct net *, struct tcf_proto *, void *, struct sk_buff *, struct tcmsg *, bool); + int (*tmplt_dump)(struct sk_buff *, struct net *, void *); + struct module *owner; + int flags; +}; + struct tc_stats { __u64 bytes; __u32 packets; @@ -15912,6 +15267,18 @@ struct pcpu_sw_netstats { struct u64_stats_sync syncp; }; +struct pcpu_dstats { + u64 rx_packets; + u64 rx_bytes; + u64 rx_drops; + u64 tx_packets; + u64 tx_bytes; + u64 tx_drops; + struct u64_stats_sync syncp; + long: 64; + long: 64; +}; + struct rtnl_link_ops { struct list_head list; const char *kind; @@ -15941,6 +15308,12 @@ struct rtnl_link_ops { 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; @@ -15977,7 +15350,7 @@ struct prot_inuse { }; struct ipstats_mib { - u64 mibs[37]; + u64 mibs[38]; struct u64_stats_sync syncp; }; @@ -15986,7 +15359,7 @@ struct tcp_mib { }; struct linux_mib { - unsigned long mibs[127]; + unsigned long mibs[132]; }; struct udp_mib { @@ -16153,6 +15526,8 @@ struct bucket_table { struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *buckets[0]; }; +struct rhash_lock_head {}; + enum tcp_ca_event { CA_EVENT_TX_START = 0, CA_EVENT_CWND_RESTART = 1, @@ -16290,1561 +15665,860 @@ struct net_generic { }; }; -struct sock_fprog_kern { - u16 len; - struct sock_filter *filter; +enum xdp_action { + XDP_ABORTED = 0, + XDP_DROP = 1, + XDP_PASS = 2, + XDP_TX = 3, + XDP_REDIRECT = 4, }; -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 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, }; -struct bpf_link_info { - __u32 type; - __u32 id; - __u32 prog_id; - union { - struct { - __u64 tp_name; - __u32 tp_name_len; - } raw_tracepoint; - struct { - __u32 attach_type; - __u32 target_obj_id; - __u32 target_btf_id; - } tracing; - struct { - __u64 cgroup_id; - __u32 attach_type; - } cgroup; - struct { - __u64 target_name; - __u32 target_name_len; - union { - struct { - __u32 map_id; - } map; - }; - union { - struct { - __u64 cgroup_id; - __u32 order; - } cgroup; - struct { - __u32 tid; - __u32 pid; - } task; - }; - } iter; - struct { - __u32 netns_ino; - __u32 attach_type; - } netns; - struct { - __u32 ifindex; - } xdp; - struct { - __u32 map_id; - } struct_ops; - struct { - __u32 pf; - __u32 hooknum; - __s32 priority; - __u32 flags; - } netfilter; - }; +enum netdev_priv_flags { + IFF_802_1Q_VLAN = 1ULL, + IFF_EBRIDGE = 2ULL, + IFF_BONDING = 4ULL, + IFF_ISATAP = 8ULL, + IFF_WAN_HDLC = 16ULL, + IFF_XMIT_DST_RELEASE = 32ULL, + IFF_DONT_BRIDGE = 64ULL, + IFF_DISABLE_NETPOLL = 128ULL, + IFF_MACVLAN_PORT = 256ULL, + IFF_BRIDGE_PORT = 512ULL, + IFF_OVS_DATAPATH = 1024ULL, + IFF_TX_SKB_SHARING = 2048ULL, + IFF_UNICAST_FLT = 4096ULL, + IFF_TEAM_PORT = 8192ULL, + IFF_SUPP_NOFCS = 16384ULL, + IFF_LIVE_ADDR_CHANGE = 32768ULL, + IFF_MACVLAN = 65536ULL, + IFF_XMIT_DST_RELEASE_PERM = 131072ULL, + IFF_L3MDEV_MASTER = 262144ULL, + IFF_NO_QUEUE = 524288ULL, + IFF_OPENVSWITCH = 1048576ULL, + IFF_L3MDEV_SLAVE = 2097152ULL, + IFF_TEAM = 4194304ULL, + IFF_RXFH_CONFIGURED = 8388608ULL, + IFF_PHONY_HEADROOM = 16777216ULL, + IFF_MACSEC = 33554432ULL, + IFF_NO_RX_HANDLER = 67108864ULL, + IFF_FAILOVER = 134217728ULL, + IFF_FAILOVER_SLAVE = 268435456ULL, + IFF_L3MDEV_RX_HANDLER = 536870912ULL, + IFF_NO_ADDRCONF = 1073741824ULL, + IFF_TX_SKB_NO_LINEAR = 2147483648ULL, + IFF_CHANGE_PROTO_DOWN = 4294967296ULL, + IFF_SEE_ALL_HWTSTAMP_REQUESTS = 8589934592ULL, }; -enum 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 netdev_xdp_act { + NETDEV_XDP_ACT_BASIC = 1, + NETDEV_XDP_ACT_REDIRECT = 2, + NETDEV_XDP_ACT_NDO_XMIT = 4, + NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, + NETDEV_XDP_ACT_HW_OFFLOAD = 16, + NETDEV_XDP_ACT_RX_SG = 32, + NETDEV_XDP_ACT_NDO_XMIT_SG = 64, + NETDEV_XDP_ACT_MASK = 127, }; -enum bpf_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, +enum xdp_buff_flags { + XDP_FLAGS_HAS_FRAGS = 1, + XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, }; -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, + BPF_F_LINK = 8192, + BPF_F_PATH_FD = 16384, }; -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 { + BPF_ANY = 0, + BPF_NOEXIST = 1, + BPF_EXIST = 2, + BPF_F_LOCK = 4, }; -struct kallsym_iter { - loff_t pos; - loff_t pos_mod_end; - loff_t pos_ftrace_mod_end; - loff_t pos_bpf_end; - unsigned long value; - unsigned int nameoff; - char type; - char name[512]; - char module_name[56]; - int exported; - int show_value; +enum { + BPF_F_BROADCAST = 8, + BPF_F_EXCLUDE_INGRESS = 16, +}; + +enum netdev_cmd { + NETDEV_UP = 1, + NETDEV_DOWN = 2, + NETDEV_REBOOT = 3, + NETDEV_CHANGE = 4, + NETDEV_REGISTER = 5, + NETDEV_UNREGISTER = 6, + NETDEV_CHANGEMTU = 7, + NETDEV_CHANGEADDR = 8, + NETDEV_PRE_CHANGEADDR = 9, + NETDEV_GOING_DOWN = 10, + NETDEV_CHANGENAME = 11, + NETDEV_FEAT_CHANGE = 12, + NETDEV_BONDING_FAILOVER = 13, + NETDEV_PRE_UP = 14, + NETDEV_PRE_TYPE_CHANGE = 15, + NETDEV_POST_TYPE_CHANGE = 16, + NETDEV_POST_INIT = 17, + NETDEV_PRE_UNINIT = 18, + NETDEV_RELEASE = 19, + NETDEV_NOTIFY_PEERS = 20, + NETDEV_JOIN = 21, + NETDEV_CHANGEUPPER = 22, + NETDEV_RESEND_IGMP = 23, + NETDEV_PRECHANGEMTU = 24, + NETDEV_CHANGEINFODATA = 25, + NETDEV_BONDING_INFO = 26, + NETDEV_PRECHANGEUPPER = 27, + NETDEV_CHANGELOWERSTATE = 28, + NETDEV_UDP_TUNNEL_PUSH_INFO = 29, + NETDEV_UDP_TUNNEL_DROP_INFO = 30, + NETDEV_CHANGE_TX_QUEUE_LEN = 31, + NETDEV_CVLAN_FILTER_PUSH_INFO = 32, + NETDEV_CVLAN_FILTER_DROP_INFO = 33, + NETDEV_SVLAN_FILTER_PUSH_INFO = 34, + NETDEV_SVLAN_FILTER_DROP_INFO = 35, + NETDEV_OFFLOAD_XSTATS_ENABLE = 36, + NETDEV_OFFLOAD_XSTATS_DISABLE = 37, + NETDEV_OFFLOAD_XSTATS_REPORT_USED = 38, + NETDEV_OFFLOAD_XSTATS_REPORT_DELTA = 39, + NETDEV_XDP_FEAT_CHANGE = 40, }; -struct bpf_iter_meta; +struct bpf_dtab_netdev; -struct bpf_iter__ksym { - union { - struct bpf_iter_meta *meta; - }; +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: 64; + long: 64; +}; + +struct bpf_devmap_val { + __u32 ifindex; union { - struct kallsym_iter *ksym; - }; + int fd; + __u32 id; + } bpf_prog; }; -struct bpf_iter_meta { +struct bpf_dtab_netdev { + struct net_device *dev; + struct hlist_node index_hlist; + struct bpf_prog *xdp_prog; + struct callback_head rcu; + unsigned int idx; + struct bpf_devmap_val val; +}; + +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 bpf_nh_params { + u32 nh_family; union { - struct seq_file *seq; + u32 ipv4_nh; + struct in6_addr ipv6_nh; }; - u64 session_id; - u64 seq_num; }; -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 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; }; -typedef __u64 __addrpair; +typedef unsigned int (*bpf_dispatcher_fn)(const void *, const struct bpf_insn *, unsigned int (*)(const void *, const struct bpf_insn *)); -typedef __u32 __portpair; +typedef void (*rcu_callback_t)(struct callback_head *); -struct hlist_nulls_node { - struct hlist_nulls_node *next; - struct hlist_nulls_node **pprev; +struct netdev_notifier_info { + struct net_device *dev; + struct netlink_ext_ack *extack; }; -struct proto; +typedef unsigned long ulong; -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; - }; -}; +struct fc_log; -typedef struct { - spinlock_t slock; - int owned; - wait_queue_head_t wq; -} socket_lock_t; +struct p_log { + const char *prefix; + struct fc_log *log; +}; -struct sock_cgroup_data { - struct cgroup *cgroup; +enum fs_context_purpose { + FS_CONTEXT_FOR_MOUNT = 0, + FS_CONTEXT_FOR_SUBMOUNT = 1, + FS_CONTEXT_FOR_RECONFIGURE = 2, }; -typedef struct {} netns_tracker; +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 sk_filter; +struct fs_context_operations; -struct socket_wq; +struct fs_context { + const struct fs_context_operations *ops; + struct mutex uapi_mutex; + struct file_system_type *fs_type; + void *fs_private; + void *sget_key; + struct dentry *root; + struct user_namespace *user_ns; + struct net *net_ns; + const struct cred *cred; + struct p_log log; + const char *source; + void *security; + void *s_fs_info; + unsigned int sb_flags; + unsigned int sb_flags_mask; + unsigned int s_iflags; + enum fs_context_purpose purpose: 8; + enum fs_context_phase phase: 8; + bool need_free: 1; + bool global: 1; + bool oldapi: 1; + bool exclusive: 1; +}; -struct socket; +struct fs_context_operations { + void (*free)(struct fs_context *); + int (*dup)(struct fs_context *, struct fs_context *); + int (*parse_param)(struct fs_context *, struct fs_parameter *); + int (*parse_monolithic)(struct fs_context *, void *); + int (*get_tree)(struct fs_context *); + int (*reconfigure)(struct fs_context *); +}; -struct sock_reuseport; +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 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; - int sk_wait_pending; - 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 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; +struct fs_parameter { + const char *key; + enum fs_value_type type: 8; union { - struct sk_buff *sk_send_head; - struct rb_root tcp_rtx_queue; + char *string; + void *blob; + struct filename *name; + struct file *file; }; - 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; + size_t size; + int dirfd; }; -struct smc_hashinfo; +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; +}; -typedef struct { +struct mempolicy { + atomic_t refcnt; + unsigned short mode; + unsigned short flags; + nodemask_t nodes; + int home_node; union { - void *kernel; - void __attribute__((btf_type_tag("user"))) *user; - }; - bool is_kernel: 1; -} sockptr_t; - -struct msghdr; + nodemask_t cpuset_mems_allowed; + nodemask_t user_nodemask; + } w; +}; -struct sk_psock; +typedef unsigned int blk_mode_t; -struct request_sock_ops; +struct block_device_operations; -struct timewait_sock_ops; +struct timer_rand_state; -struct raw_hashinfo; +struct disk_events; -struct proto { - void (*close)(struct sock *, long); - int (*pre_connect)(struct sock *, struct sockaddr *, int); - int (*connect)(struct sock *, struct sockaddr *, int); - int (*disconnect)(struct sock *, int); - struct sock * (*accept)(struct sock *, int, int *, bool); - int (*ioctl)(struct sock *, int, int *); - int (*init)(struct sock *); - void (*destroy)(struct sock *); - void (*shutdown)(struct sock *, int); - int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); - int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); - void (*keepalive)(struct sock *, int); - int (*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 *); - void (*splice_eof)(struct socket *); - int (*bind)(struct sock *, struct sockaddr *, int); - int (*bind_add)(struct sock *, struct sockaddr *, int); - int (*backlog_rcv)(struct sock *, struct sk_buff *); - bool (*bpf_bypass_getsockopt)(int, int); - void (*release_cb)(struct sock *); - int (*hash)(struct sock *); - void (*unhash)(struct sock *); - void (*rehash)(struct sock *); - int (*get_port)(struct sock *, unsigned short); - void (*put_port)(struct sock *); - int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); - unsigned int inuse_idx; - bool (*stream_memory_free)(const struct sock *, int); - bool (*sock_is_readable)(struct sock *); - void (*enter_memory_pressure)(struct sock *); - void (*leave_memory_pressure)(struct sock *); - atomic_long_t *memory_allocated; - int __attribute__((btf_type_tag("percpu"))) *per_cpu_fw_alloc; - struct percpu_counter *sockets_allocated; - unsigned long *memory_pressure; - long *sysctl_mem; - int *sysctl_wmem; - int *sysctl_rmem; - u32 sysctl_wmem_offset; - u32 sysctl_rmem_offset; - int max_header; - bool no_autobind; - struct kmem_cache *slab; - unsigned int obj_size; - unsigned int ipv6_pinfo_offset; - slab_flags_t slab_flags; - unsigned int useroffset; - unsigned int usersize; - unsigned int __attribute__((btf_type_tag("percpu"))) *orphan_count; - struct request_sock_ops *rsk_prot; - struct timewait_sock_ops *twsk_prot; - union { - struct inet_hashinfo *hashinfo; - struct udp_table *udp_table; - struct raw_hashinfo *raw_hash; - struct smc_hashinfo *smc_hash; - } h; - struct module *owner; - char name[32]; - struct list_head node; - int (*diag_destroy)(struct sock *, int); -}; +struct badblocks; -struct ubuf_info; +struct blk_independent_access_ranges; -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 gendisk { + int major; + int first_minor; + int minors; + char disk_name[32]; + unsigned short events; + unsigned short event_flags; + struct xarray part_tbl; + struct block_device *part0; + const struct block_device_operations *fops; + struct request_queue *queue; + void *private_data; + struct bio_set bio_split; + int flags; + unsigned long state; + struct mutex open_mutex; + unsigned int open_partitions; + struct backing_dev_info *bdi; + struct kobject queue_kobj; + struct kobject *slave_dir; + struct list_head slave_bdevs; + struct timer_rand_state *random; + atomic_t sync_io; + struct disk_events *ev; + int node_id; + struct badblocks *bb; + struct lockdep_map lockdep_map; + u64 diskseq; + blk_mode_t open_mode; + struct blk_independent_access_ranges *ia_ranges; }; -struct trace_array_cpu; +struct blk_zone; -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 int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); -struct trace_pid_list; +enum blk_unique_id { + BLK_UID_T10 = 1, + BLK_UID_EUI64 = 2, + BLK_UID_NAA = 3, +}; -struct trace_options; +struct hd_geometry; -struct trace_func_repeats; +struct pr_ops; -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[452]; - struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[452]; - 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; - cpumask_var_t pipe_cpumask; - int ref; - int trace_ref; - struct ftrace_ops *ops; - struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_pids; - struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_no_pids; - struct list_head func_probes; - struct list_head mod_trace; - struct list_head mod_notrace; - int function_enabled; - int no_filter_buffering_ref; - struct list_head hist_vars; - struct trace_func_repeats __attribute__((btf_type_tag("percpu"))) *last_func_repeats; -}; - -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; +struct block_device_operations { + void (*submit_bio)(struct bio *); + int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int); + int (*open)(struct gendisk *, blk_mode_t); + void (*release)(struct gendisk *); + int (*ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); + int (*compat_ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); + unsigned int (*check_events)(struct gendisk *, unsigned int); + void (*unlock_native_capacity)(struct gendisk *); + int (*getgeo)(struct block_device *, struct hd_geometry *); + int (*set_read_only)(struct block_device *, bool); + void (*free_disk)(struct gendisk *); + void (*swap_slot_free_notify)(struct block_device *, unsigned long); + int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *); + char * (*devnode)(struct gendisk *, umode_t *); + int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id); + struct module *owner; + const struct pr_ops *pr_ops; + int (*alternative_gpt_sector)(struct gendisk *, sector_t *); }; -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; -}; +struct request; -union upper_chunk { - union upper_chunk *next; - union lower_chunk *data[256]; +struct io_comp_batch { + struct request *req_list; + bool need_ts; + void (*complete)(struct io_comp_batch *); }; -union lower_chunk { - union lower_chunk *next; - unsigned long data[256]; +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]; }; -struct filter_pred; - -struct prog_entry { - int target; - int when_to_branch; - struct filter_pred *pred; +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 event_subsystem; +struct pr_keys; -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 pr_held_reservation; -struct event_subsystem { - struct list_head list; - const char *name; - struct event_filter *filter; - int ref_count; +struct pr_ops { + int (*pr_register)(struct block_device *, u64, u64, u32); + int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32); + int (*pr_release)(struct block_device *, u64, enum pr_type); + int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool); + int (*pr_clear)(struct block_device *, u64); + int (*pr_read_keys)(struct block_device *, struct pr_keys *); + int (*pr_read_reservation)(struct block_device *, struct pr_held_reservation *); }; -struct tracer_flags; +struct blk_integrity_profile; -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 blk_integrity { + const struct blk_integrity_profile *profile; + unsigned char flags; + unsigned char tuple_size; + unsigned char interval_exp; + unsigned char tag_size; }; -struct tracer_opt; +enum blk_bounce { + BLK_BOUNCE_NONE = 0, + BLK_BOUNCE_HIGH = 1, +}; -struct tracer_flags { - u32 val; - struct tracer_opt *opts; - struct tracer *trace; +enum blk_zoned_model { + BLK_ZONED_NONE = 0, + BLK_ZONED_HA = 1, + BLK_ZONED_HM = 2, }; -struct tracer_opt { - const char *name; - u32 bit; +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 trace_option_dentry; +struct elevator_queue; -struct trace_options { - struct tracer *tracer; - struct trace_option_dentry *topts; -}; +struct blk_queue_stats; -struct trace_option_dentry { - struct tracer_opt *opt; - struct tracer_flags *flags; - struct trace_array *tr; - struct dentry *entry; -}; +struct rq_qos; -struct trace_func_repeats { - unsigned long ip; - unsigned long parent_ip; - unsigned long count; - u64 ts_last_call; -}; +struct blk_mq_ops; -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 blk_mq_ctx; -struct pneigh_entry; +struct blk_mq_tags; -struct neigh_statistics; +struct blk_trace; -struct neigh_hash_table; +struct blk_flush_queue; -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 blk_mq_tag_set; -struct pneigh_entry { - struct pneigh_entry *next; - possible_net_t net; - struct net_device *dev; - netdevice_tracker dev_tracker; - u32 flags; - u8 protocol; - u32 key[0]; +struct 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; + struct mutex rq_qos_mutex; + 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 blk_integrity integrity; + struct device *dev; + enum rpm_status rpm_status; + unsigned long nr_requests; + unsigned int dma_pad_mask; + unsigned int rq_timeout; + 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 flush_list; + 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; }; -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; +enum blk_eh_timer_return { + BLK_EH_DONE = 0, + BLK_EH_RESET_TIMER = 1, }; -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 blk_mq_hw_ctx; -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 blk_mq_queue_data; -struct bpf_cgroup_storage_key { - __u64 cgroup_inode_id; - __u32 attach_type; +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 bpf_storage_buffer; - -struct bpf_cgroup_storage_map; +struct blk_mq_ctxs; -struct bpf_cgroup_storage { - union { - struct bpf_storage_buffer *buf; - void __attribute__((btf_type_tag("percpu"))) *percpu_buf; +struct blk_mq_ctx { + struct { + spinlock_t lock; + struct list_head rq_lists[3]; + long: 64; }; - 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]; + 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 ubuf_info { - void (*callback)(struct sk_buff *, struct ubuf_info *, bool); - refcount_t refcnt; - u8 flags; -}; +struct blk_integrity_iter; -typedef enum { - SS_FREE = 0, - SS_UNCONNECTED = 1, - SS_CONNECTING = 2, - SS_CONNECTED = 3, - SS_DISCONNECTING = 4, -} socket_state; +typedef blk_status_t integrity_processing_fn(struct blk_integrity_iter *); -struct socket_wq { - wait_queue_head_t wait; - struct fasync_struct *fasync_list; - unsigned long flags; - struct callback_head rcu; - long: 64; -}; +typedef void integrity_prepare_fn(struct request *); -struct proto_ops; +typedef void integrity_complete_fn(struct request *, unsigned int); -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; +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; }; -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 rchan; -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 (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); - void (*splice_eof)(struct socket *); - int (*set_peek_off)(struct sock *, int); - int (*peek_len)(struct socket *); - int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t); - int (*read_skb)(struct sock *, skb_read_actor_t); - int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); - int (*set_rcvlowat)(struct sock *, int); +struct 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 sk_filter { - refcount_t refcnt; - struct callback_head rcu; - struct bpf_prog *prog; +struct blk_independent_access_range { + struct kobject kobj; + sector_t sector; + sector_t nr_sectors; }; -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 blk_independent_access_ranges { + struct kobject kobj; + bool sysfs_registered; + unsigned int nr_ia_ranges; + struct blk_independent_access_range ia_range[0]; }; -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 partition_meta_info { + char uuid[37]; + u8 volname[64]; }; -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; +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; + struct list_head cb_list; }; -struct fib_kuid_range { - kuid_t start; - kuid_t end; -}; +struct compact_control; -struct fib_rule_port_range { - __u16 start; - __u16 end; +struct capture_control { + struct compact_control *cc; + struct page *page; }; -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 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 flowi_tunnel { - __be64 tun_id; +struct fc_log { + refcount_t usage; + u8 head; + u8 tail; + u8 need_free; + struct module *owner; + char *buffer[8]; }; -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; +struct fs_parse_result { + bool negated; + union { + bool boolean; + int int_32; + unsigned int uint_32; + u64 uint_64; + }; }; -union flowi_uli { - struct { - __be16 dport; - __be16 sport; - } ports; - struct { - __u8 type; - __u8 code; - } icmpt; - __be32 gre_key; - struct { - __u8 type; - } mht; +struct bdev_handle { + struct block_device *bdev; + void *holder; + blk_mode_t mode; }; -struct flowi4 { - struct flowi_common __fl_common; - __be32 saddr; - __be32 daddr; - union flowi_uli uli; -}; +typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int); -struct flowi6 { - struct flowi_common __fl_common; - struct in6_addr daddr; - struct in6_addr saddr; - __be32 flowlabel; - union flowi_uli uli; - __u32 mp_hash; -}; +typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int); -struct flowi { - union { - struct flowi_common __fl_common; - struct flowi4 ip4; - struct flowi6 ip6; - } u; -}; +typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t); -struct fib_lookup_arg { - void *lookup_ptr; - const void *lookup_data; - void *result; - struct fib_rule *rule; - u32 table; - int flags; -}; +typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t); -struct fib_rule_hdr { - __u8 family; - __u8 dst_len; - __u8 src_len; - __u8 tos; - __u8 table; - __u8 res1; - __u8 res2; - __u8 action; - __u32 flags; -}; +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t); -struct dyn_event { - struct list_head list; - struct dyn_event_operations *ops; -}; +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t); -struct uprobe_cpu_buffer { - struct mutex mutex; - void *buf; -}; +typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, unsigned long); -enum uprobe_filter_ctx { - UPROBE_FILTER_REGISTER = 0, - UPROBE_FILTER_UNREGISTER = 1, - UPROBE_FILTER_MMAP = 2, -}; +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, unsigned long); -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, -}; +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, unsigned long); -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, -}; +typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long, unsigned long, unsigned long long, unsigned long, int); -enum probe_print_type { - PROBE_PRINT_NORMAL = 0, - PROBE_PRINT_RETURN = 1, - PROBE_PRINT_EVENT = 2, -}; +typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long, long, 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_FPROBE = 512, - TRACE_EVENT_FL_CUSTOM = 1024, -}; +typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, unsigned long, unsigned long, unsigned long, unsigned long, int); -enum { - TP_ERR_FILE_NOT_FOUND = 0, - TP_ERR_NO_REGULAR_FILE = 1, - TP_ERR_BAD_REFCNT = 2, - TP_ERR_REFCNT_OPEN_BRACE = 3, - TP_ERR_BAD_REFCNT_SUFFIX = 4, - TP_ERR_BAD_UPROBE_OFFS = 5, - TP_ERR_BAD_MAXACT_TYPE = 6, - TP_ERR_BAD_MAXACT = 7, - TP_ERR_MAXACT_TOO_BIG = 8, - TP_ERR_BAD_PROBE_ADDR = 9, - TP_ERR_BAD_RETPROBE = 10, - TP_ERR_NO_TRACEPOINT = 11, - TP_ERR_BAD_ADDR_SUFFIX = 12, - TP_ERR_NO_GROUP_NAME = 13, - TP_ERR_GROUP_TOO_LONG = 14, - TP_ERR_BAD_GROUP_NAME = 15, - TP_ERR_NO_EVENT_NAME = 16, - TP_ERR_EVENT_TOO_LONG = 17, - TP_ERR_BAD_EVENT_NAME = 18, - TP_ERR_EVENT_EXIST = 19, - TP_ERR_RETVAL_ON_PROBE = 20, - TP_ERR_NO_RETVAL = 21, - TP_ERR_BAD_STACK_NUM = 22, - TP_ERR_BAD_ARG_NUM = 23, - TP_ERR_BAD_VAR = 24, - TP_ERR_BAD_REG_NAME = 25, - TP_ERR_BAD_MEM_ADDR = 26, - TP_ERR_BAD_IMM = 27, - TP_ERR_IMMSTR_NO_CLOSE = 28, - TP_ERR_FILE_ON_KPROBE = 29, - TP_ERR_BAD_FILE_OFFS = 30, - TP_ERR_SYM_ON_UPROBE = 31, - TP_ERR_TOO_MANY_OPS = 32, - TP_ERR_DEREF_NEED_BRACE = 33, - TP_ERR_BAD_DEREF_OFFS = 34, - TP_ERR_DEREF_OPEN_BRACE = 35, - TP_ERR_COMM_CANT_DEREF = 36, - TP_ERR_BAD_FETCH_ARG = 37, - TP_ERR_ARRAY_NO_CLOSE = 38, - TP_ERR_BAD_ARRAY_SUFFIX = 39, - TP_ERR_BAD_ARRAY_NUM = 40, - TP_ERR_ARRAY_TOO_BIG = 41, - TP_ERR_BAD_TYPE = 42, - TP_ERR_BAD_STRING = 43, - TP_ERR_BAD_SYMSTRING = 44, - TP_ERR_BAD_BITFIELD = 45, - TP_ERR_ARG_NAME_TOO_LONG = 46, - TP_ERR_NO_ARG_NAME = 47, - TP_ERR_BAD_ARG_NAME = 48, - TP_ERR_USED_ARG_NAME = 49, - TP_ERR_ARG_TOO_LONG = 50, - TP_ERR_NO_ARG_BODY = 51, - TP_ERR_BAD_INSN_BNDRY = 52, - TP_ERR_FAIL_REG_PROBE = 53, - TP_ERR_DIFF_PROBE_TYPE = 54, - TP_ERR_DIFF_ARG_TYPE = 55, - TP_ERR_SAME_PROBE = 56, - TP_ERR_NO_EVENT_INFO = 57, - TP_ERR_BAD_ATTACH_EVENT = 58, - TP_ERR_BAD_ATTACH_ARG = 59, - TP_ERR_NO_EP_FILTER = 60, - TP_ERR_NOSUP_BTFARG = 61, - TP_ERR_NO_BTFARG = 62, - TP_ERR_NO_BTF_ENTRY = 63, - TP_ERR_BAD_VAR_ARGS = 64, - TP_ERR_NOFENTRY_ARGS = 65, - TP_ERR_DOUBLE_ARGS = 66, - TP_ERR_ARGS_2LONG = 67, -}; +typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *); -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, - FILTER_STACKTRACE = 8, -}; +struct reclaim_stat; -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, -}; +typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, unsigned long, unsigned long, struct reclaim_stat *, int, int); -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 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; }; -struct fetch_insn; - -struct fetch_type; +typedef void (*btf_trace_mm_vmscan_lru_shrink_active)(void *, int, unsigned long, unsigned long, unsigned long, unsigned long, int, int); -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; -}; +typedef void (*btf_trace_mm_vmscan_node_reclaim_begin)(void *, int, int, gfp_t); -struct trace_probe_event; +typedef void (*btf_trace_mm_vmscan_node_reclaim_end)(void *, unsigned long); -struct trace_probe { - struct list_head list; - struct trace_probe_event *event; - ssize_t size; - unsigned int nr_args; - struct probe_arg args[0]; -}; +typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int); -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 trace_print_flags { + unsigned long mask; + const char *name; }; -struct trace_uprobe_filter { - rwlock_t rwlock; - int nr_systemwide; - struct list_head perf_events; +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, }; -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]; +enum node_states { + N_POSSIBLE = 0, + N_ONLINE = 1, + N_NORMAL_MEMORY = 2, + N_HIGH_MEMORY = 2, + N_MEMORY = 3, + N_CPU = 4, + N_GENERIC_INITIATOR = 5, + NR_NODE_STATES = 6, }; -struct 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 uprobe_trace_entry_head { - struct trace_entry ent; - unsigned long vaddr[0]; -}; - -struct uprobe_dispatch_data { - struct trace_uprobe *tu; - unsigned long bp_addr; -}; - -struct btf_param; - -struct traceprobe_parse_context { - struct trace_event_call *event; - const struct btf_param *params; - s32 nr_params; - const char *funcname; - unsigned int flags; - int offset; -}; - -struct btf_param { - __u32 name_off; - __u32 type; -}; - -typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); - -struct bpf_trace_run_ctx { - struct bpf_run_ctx run_ctx; - u64 bpf_cookie; -}; - -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 bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); - -struct bp_slots_histogram { - atomic_t *count; -}; - -struct rhltable { - struct rhashtable ht; -}; - -struct rhash_lock_head {}; - -struct bp_cpuinfo { - unsigned int cpu_pinned; - struct bp_slots_histogram tsk_pinned; -}; - -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 { - WORK_STRUCT_PENDING_BIT = 0, - WORK_STRUCT_INACTIVE_BIT = 1, - WORK_STRUCT_PWQ_BIT = 2, - WORK_STRUCT_LINKED_BIT = 3, - WORK_STRUCT_COLOR_SHIFT = 4, - WORK_STRUCT_COLOR_BITS = 4, - WORK_STRUCT_PENDING = 1, - WORK_STRUCT_INACTIVE = 2, - WORK_STRUCT_PWQ = 4, - WORK_STRUCT_LINKED = 8, - WORK_STRUCT_STATIC = 0, - WORK_NR_COLORS = 16, - WORK_CPU_UNBOUND = 256, - WORK_STRUCT_FLAG_BITS = 8, - WORK_OFFQ_FLAG_BASE = 4, - __WORK_OFFQ_CANCELING = 4, - WORK_OFFQ_FLAG_BITS = 1, - WORK_OFFQ_POOL_SHIFT = 5, - WORK_OFFQ_LEFT = 59, - WORK_OFFQ_POOL_BITS = 31, - WORK_BUSY_PENDING = 1, - WORK_BUSY_RUNNING = 2, - WORKER_DESC_LEN = 24, -}; - -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, -}; - -struct __una_u32 { - u32 x; -}; - -enum fs_value_type { - fs_value_is_undefined = 0, - fs_value_is_flag = 1, - fs_value_is_string = 2, - fs_value_is_blob = 3, - fs_value_is_filename = 4, - fs_value_is_file = 5, -}; - -enum fs_context_purpose { - FS_CONTEXT_FOR_MOUNT = 0, - FS_CONTEXT_FOR_SUBMOUNT = 1, - FS_CONTEXT_FOR_RECONFIGURE = 2, -}; - -enum fs_context_phase { - FS_CONTEXT_CREATE_PARAMS = 0, - FS_CONTEXT_CREATING = 1, - FS_CONTEXT_AWAITING_MOUNT = 2, - FS_CONTEXT_AWAITING_RECONF = 3, - FS_CONTEXT_RECONF_PARAMS = 4, - FS_CONTEXT_RECONFIGURING = 5, - FS_CONTEXT_FAILED = 6, -}; - -enum { - FOLL_TOUCH = 65536, - FOLL_TRIED = 131072, - FOLL_REMOTE = 262144, - FOLL_PIN = 524288, - FOLL_FAST_ONLY = 1048576, - FOLL_UNLOCKABLE = 2097152, +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 node_stat_item { @@ -17898,22 +16572,177 @@ enum node_stat_item { NR_VM_NODE_STAT_ITEMS = 43, }; -enum migratetype { - MIGRATE_UNMOVABLE = 0, - MIGRATE_MOVABLE = 1, - MIGRATE_RECLAIMABLE = 2, - MIGRATE_PCPTYPES = 3, - MIGRATE_HIGHATOMIC = 3, - MIGRATE_CMA = 4, - MIGRATE_ISOLATE = 5, - MIGRATE_TYPES = 6, +enum pgdat_flags { + PGDAT_DIRTY = 0, + PGDAT_WRITEBACK = 1, + PGDAT_RECLAIM_LOCKED = 2, +}; + +enum vm_event_item { + PGPGIN = 0, + PGPGOUT = 1, + PSWPIN = 2, + PSWPOUT = 3, + PGALLOC_DMA = 4, + PGALLOC_DMA32 = 5, + PGALLOC_NORMAL = 6, + PGALLOC_MOVABLE = 7, + ALLOCSTALL_DMA = 8, + ALLOCSTALL_DMA32 = 9, + ALLOCSTALL_NORMAL = 10, + ALLOCSTALL_MOVABLE = 11, + PGSCAN_SKIP_DMA = 12, + PGSCAN_SKIP_DMA32 = 13, + PGSCAN_SKIP_NORMAL = 14, + PGSCAN_SKIP_MOVABLE = 15, + PGFREE = 16, + PGACTIVATE = 17, + PGDEACTIVATE = 18, + PGLAZYFREE = 19, + PGFAULT = 20, + PGMAJFAULT = 21, + PGLAZYFREED = 22, + PGREFILL = 23, + PGREUSE = 24, + PGSTEAL_KSWAPD = 25, + PGSTEAL_DIRECT = 26, + PGSTEAL_KHUGEPAGED = 27, + 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, + PGSCAN_ZONE_RECLAIM_FAILED = 39, + PGINODESTEAL = 40, + SLABS_SCANNED = 41, + KSWAPD_INODESTEAL = 42, + KSWAPD_LOW_WMARK_HIT_QUICKLY = 43, + KSWAPD_HIGH_WMARK_HIT_QUICKLY = 44, + PAGEOUTRUN = 45, + PGROTATED = 46, + DROP_PAGECACHE = 47, + DROP_SLAB = 48, + OOM_KILL = 49, + NUMA_PTE_UPDATES = 50, + NUMA_HUGE_PTE_UPDATES = 51, + NUMA_HINT_FAULTS = 52, + NUMA_HINT_FAULTS_LOCAL = 53, + NUMA_PAGE_MIGRATE = 54, + PGMIGRATE_SUCCESS = 55, + PGMIGRATE_FAIL = 56, + THP_MIGRATION_SUCCESS = 57, + THP_MIGRATION_FAIL = 58, + THP_MIGRATION_SPLIT = 59, + COMPACTMIGRATE_SCANNED = 60, + COMPACTFREE_SCANNED = 61, + COMPACTISOLATED = 62, + COMPACTSTALL = 63, + COMPACTFAIL = 64, + COMPACTSUCCESS = 65, + KCOMPACTD_WAKE = 66, + KCOMPACTD_MIGRATE_SCANNED = 67, + KCOMPACTD_FREE_SCANNED = 68, + HTLB_BUDDY_PGALLOC = 69, + HTLB_BUDDY_PGALLOC_FAIL = 70, + CMA_ALLOC_SUCCESS = 71, + CMA_ALLOC_FAIL = 72, + UNEVICTABLE_PGCULLED = 73, + UNEVICTABLE_PGSCANNED = 74, + UNEVICTABLE_PGRESCUED = 75, + UNEVICTABLE_PGMLOCKED = 76, + UNEVICTABLE_PGMUNLOCKED = 77, + UNEVICTABLE_PGCLEARED = 78, + UNEVICTABLE_PGSTRANDED = 79, + THP_FAULT_ALLOC = 80, + THP_FAULT_FALLBACK = 81, + THP_FAULT_FALLBACK_CHARGE = 82, + THP_COLLAPSE_ALLOC = 83, + THP_COLLAPSE_ALLOC_FAILED = 84, + THP_FILE_ALLOC = 85, + THP_FILE_FALLBACK = 86, + THP_FILE_FALLBACK_CHARGE = 87, + THP_FILE_MAPPED = 88, + THP_SPLIT_PAGE = 89, + THP_SPLIT_PAGE_FAILED = 90, + THP_DEFERRED_SPLIT_PAGE = 91, + THP_SPLIT_PMD = 92, + THP_SCAN_EXCEED_NONE_PTE = 93, + THP_SCAN_EXCEED_SWAP_PTE = 94, + THP_SCAN_EXCEED_SHARED_PTE = 95, + THP_ZERO_PAGE_ALLOC = 96, + THP_ZERO_PAGE_ALLOC_FAILED = 97, + THP_SWPOUT = 98, + THP_SWPOUT_FALLBACK = 99, + BALLOON_INFLATE = 100, + BALLOON_DEFLATE = 101, + BALLOON_MIGRATE = 102, + SWAP_RA = 103, + SWAP_RA_HIT = 104, + KSM_SWPIN_COPY = 105, + COW_KSM = 106, + NR_VM_EVENT_ITEMS = 107, +}; + +enum mapping_flags { + AS_EIO = 0, + AS_ENOSPC = 1, + AS_MM_ALL_LOCKS = 2, + AS_UNEVICTABLE = 3, + AS_EXITING = 4, + AS_NO_WRITEBACK_TAGS = 5, + AS_LARGE_FOLIO_SUPPORT = 6, + AS_RELEASE_ALWAYS = 7, + AS_STABLE_WRITES = 8, +}; + +enum folio_references { + FOLIOREF_RECLAIM = 0, + FOLIOREF_RECLAIM_CLEAN = 1, + FOLIOREF_KEEP = 2, + FOLIOREF_ACTIVATE = 3, +}; + +enum ttu_flags { + TTU_SPLIT_HUGE_PMD = 4, + TTU_IGNORE_MLOCK = 8, + TTU_SYNC = 16, + TTU_HWPOISON = 32, + TTU_BATCH_FLUSH = 64, + TTU_RMAP_LOCKED = 128, }; enum { - __PERCPU_REF_ATOMIC = 1, - __PERCPU_REF_DEAD = 2, - __PERCPU_REF_ATOMIC_DEAD = 3, - __PERCPU_REF_FLAG_BITS = 2, + 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 page_memcg_data_flags { + MEMCG_DATA_OBJCGS = 1, + MEMCG_DATA_KMEM = 2, + __NR_MEMCG_DATA_FLAGS = 4, +}; + +enum positive_aop_returns { + AOP_WRITEPAGE_ACTIVATE = 524288, + AOP_TRUNCATED_PAGE = 524289, }; enum migrate_reason { @@ -17929,1100 +16758,1858 @@ enum migrate_reason { MR_TYPES = 9, }; -struct fc_log; - -struct p_log { - const char *prefix; - struct fc_log *log; -}; - -struct fs_context_operations; - -struct fs_context { - const struct fs_context_operations *ops; - struct mutex uapi_mutex; - struct file_system_type *fs_type; - void *fs_private; - void *sget_key; - struct dentry *root; - struct user_namespace *user_ns; - struct net *net_ns; - const struct cred *cred; - struct p_log log; - const char *source; - void *security; - void *s_fs_info; - unsigned int sb_flags; - unsigned int sb_flags_mask; - unsigned int s_iflags; - enum fs_context_purpose purpose: 8; - enum fs_context_phase phase: 8; - bool need_free: 1; - bool global: 1; - bool oldapi: 1; +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, }; -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 zone_watermarks { + WMARK_MIN = 0, + WMARK_LOW = 1, + WMARK_HIGH = 2, + WMARK_PROMO = 3, + NR_WMARK = 4, }; -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; +enum lruvec_flags { + LRUVEC_CGROUP_CONGESTED = 0, + LRUVEC_NODE_CONGESTED = 1, }; -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]; +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, }; -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; +enum { + CGRP_ROOT_NOPREFIX = 2, + CGRP_ROOT_XATTR = 4, + CGRP_ROOT_NS_DELEGATE = 8, + CGRP_ROOT_FAVOR_DYNMODS = 16, + CGRP_ROOT_CPUSET_V2_MODE = 65536, + CGRP_ROOT_MEMORY_LOCAL_EVENTS = 131072, + CGRP_ROOT_MEMORY_RECURSIVE_PROT = 262144, + CGRP_ROOT_MEMORY_HUGETLB_ACCOUNTING = 524288, }; -struct compact_control; - -struct capture_control { - struct compact_control *cc; - struct page *page; +enum scan_balance { + SCAN_EQUAL = 0, + SCAN_FRACT = 1, + SCAN_ANON = 2, + SCAN_FILE = 3, }; -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; +enum { + CSS_NO_REF = 1, + CSS_ONLINE = 2, + CSS_RELEASED = 4, + CSS_VISIBLE = 8, + CSS_DYING = 16, }; -struct fc_log { - refcount_t usage; - u8 head; - u8 tail; - u8 need_free; - struct module *owner; - char *buffer[8]; +enum migratetype { + MIGRATE_UNMOVABLE = 0, + MIGRATE_MOVABLE = 1, + MIGRATE_RECLAIMABLE = 2, + MIGRATE_PCPTYPES = 3, + MIGRATE_HIGHATOMIC = 3, + MIGRATE_CMA = 4, + MIGRATE_ISOLATE = 5, + MIGRATE_TYPES = 6, }; -struct fs_parse_result { - bool negated; - union { - bool boolean; - int int_32; - unsigned int uint_32; - u64 uint_64; - }; +enum { + ZONELIST_FALLBACK = 0, + ZONELIST_NOFALLBACK = 1, + MAX_ZONELISTS = 2, }; -typedef struct pglist_data pg_data_t; - -struct follow_page_context { - struct dev_pagemap *pgmap; - unsigned int page_mask; +enum zone_flags { + ZONE_BOOSTED_WATERMARK = 0, + ZONE_RECLAIM_ACTIVE = 1, + ZONE_BELOW_HIGH = 2, }; -struct migration_target_control { +struct trace_event_raw_mm_vmscan_kswapd_sleep { + struct trace_entry ent; int nid; - nodemask_t *nmask; - gfp_t gfp_mask; + char __data[0]; }; -typedef struct folio *new_folio_t(struct folio *, unsigned long); - -typedef void free_folio_t(struct folio *, unsigned long); - -struct static_key_false { - struct static_key key; +struct trace_event_raw_mm_vmscan_kswapd_wake { + struct trace_entry ent; + int nid; + int zid; + int order; + char __data[0]; }; -struct reciprocal_value { - u32 m; - u8 sh1; - u8 sh2; +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 kmem_cache_order_objects { - unsigned int x; +struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template { + struct trace_entry ent; + int order; + unsigned long gfp_flags; + char __data[0]; }; -struct kmem_cache_cpu; - -struct kmem_cache_node; - -struct kmem_cache { - struct kmem_cache_cpu __attribute__((btf_type_tag("percpu"))) *cpu_slab; - slab_flags_t flags; - unsigned long min_partial; - unsigned int size; - unsigned int object_size; - struct reciprocal_value reciprocal_size; - unsigned int offset; - unsigned int cpu_partial; - unsigned int cpu_partial_slabs; - struct kmem_cache_order_objects oo; - struct kmem_cache_order_objects min; - gfp_t allocflags; - int refcount; - void (*ctor)(void *); - unsigned int inuse; - unsigned int align; - unsigned int red_left_pad; - const char *name; - struct list_head list; - struct kobject kobj; - unsigned int remote_node_defrag_ratio; - struct kmem_cache_node *node[16]; +struct trace_event_raw_mm_vmscan_direct_reclaim_end_template { + struct trace_entry ent; + unsigned long nr_reclaimed; + char __data[0]; }; -typedef unsigned __int128 __u128; - -typedef __u128 u128; - -typedef u128 freelist_full_t; - -typedef union { - struct { - void *freelist; - unsigned long counter; - }; - freelist_full_t full; -} freelist_aba_t; - -typedef struct {} local_lock_t; - -struct slab; - -struct kmem_cache_cpu { - union { - struct { - void **freelist; - unsigned long tid; - }; - freelist_aba_t freelist_tid; - }; - struct slab *slab; - struct slab *partial; - local_lock_t lock; +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 slab { - unsigned long __page_flags; - struct kmem_cache *slab_cache; - union { - struct { - union { - struct list_head slab_list; - struct { - struct slab *next; - int slabs; - }; - }; - union { - struct { - void *freelist; - union { - unsigned long counters; - struct { - unsigned int inuse: 16; - unsigned int objects: 15; - unsigned int frozen: 1; - }; - }; - }; - freelist_aba_t freelist_counter; - }; - }; - struct callback_head callback_head; - }; - unsigned int __unused; - atomic_t __page_refcount; - unsigned long memcg_data; +struct trace_event_raw_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 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; +struct trace_event_raw_mm_vmscan_lru_isolate { + struct trace_entry ent; + int highest_zoneidx; + int order; + unsigned long nr_requested; + unsigned long nr_scanned; + unsigned long nr_skipped; + unsigned long nr_taken; + int lru; + char __data[0]; }; -struct slub_flush_work { - struct work_struct work; - struct kmem_cache *s; - bool skip; +struct trace_event_raw_mm_vmscan_write_folio { + struct trace_entry ent; + unsigned long pfn; + int reclaim_flags; + char __data[0]; }; -struct slab_attribute { - struct attribute attr; - ssize_t (*show)(struct kmem_cache *, char *); - ssize_t (*store)(struct kmem_cache *, const char *, size_t); +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 saved_alias { - struct kmem_cache *s; - const char *name; - struct saved_alias *next; +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]; }; -enum track_item { - TRACK_ALLOC = 0, - TRACK_FREE = 1, +struct trace_event_raw_mm_vmscan_node_reclaim_begin { + struct trace_entry ent; + int nid; + int order; + unsigned long gfp_flags; + char __data[0]; }; -enum slab_state { - DOWN = 0, - PARTIAL = 1, - PARTIAL_NODE = 2, - UP = 3, - FULL = 4, +struct trace_event_raw_mm_vmscan_throttled { + struct trace_entry ent; + int nid; + int usec_timeout; + int usec_delayed; + int reason; + char __data[0]; }; -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, +struct migration_target_control { + int nid; + nodemask_t *nmask; + gfp_t gfp_mask; }; -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, -}; +typedef struct pglist_data pg_data_t; -enum slab_modes { - M_NONE = 0, - M_PARTIAL = 1, - M_FREE = 2, - M_FULL_NOLIST = 3, +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; }; -enum { - DUMP_PREFIX_NONE = 0, - DUMP_PREFIX_ADDRESS = 1, - DUMP_PREFIX_OFFSET = 2, +struct mem_cgroup_reclaim_cookie { + pg_data_t *pgdat; + unsigned int generation; }; -enum page_memcg_data_flags { - MEMCG_DATA_OBJCGS = 1, - MEMCG_DATA_KMEM = 2, - __NR_MEMCG_DATA_FLAGS = 4, -}; +typedef enum { + PAGE_KEEP = 0, + PAGE_ACTIVATE = 1, + PAGE_SUCCESS = 2, + PAGE_CLEAN = 3, +} pageout_t; -enum { - ZONELIST_FALLBACK = 0, - ZONELIST_NOFALLBACK = 1, - MAX_ZONELISTS = 2, -}; +typedef struct folio *new_folio_t(struct folio *, unsigned long); -enum { - CSS_NO_REF = 1, - CSS_ONLINE = 2, - CSS_RELEASED = 4, - CSS_VISIBLE = 8, - CSS_DYING = 16, -}; +typedef void free_folio_t(struct folio *, unsigned long); -enum slab_stat_type { - SL_ALL = 0, - SL_PARTIAL = 1, - SL_CPU = 2, - SL_OBJECTS = 3, - SL_TOTAL = 4, -}; +struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {}; -typedef u32 depot_stack_handle_t; +struct trace_event_data_offsets_mm_vmscan_kswapd_wake {}; -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[4]; - nodemask_t nodes; -}; +struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {}; -struct track { - unsigned long addr; - depot_stack_handle_t handle; - int cpu; - int pid; - unsigned long when; -}; +struct trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {}; -typedef freelist_full_t pcp_op_T__; +struct trace_event_data_offsets_mm_vmscan_direct_reclaim_end_template {}; -union __u128_halves { - u128 full; - struct { - u64 low; - u64 high; - }; -}; +struct trace_event_data_offsets_mm_shrink_slab_start {}; -struct detached_freelist { - struct slab *slab; - void *tail; - void *freelist; - int cnt; - struct kmem_cache *s; -}; +struct trace_event_data_offsets_mm_shrink_slab_end {}; -struct memory_notify { - unsigned long start_pfn; - unsigned long nr_pages; - int status_change_nid_normal; - int status_change_nid; -}; +struct trace_event_data_offsets_mm_vmscan_lru_isolate {}; -struct partial_context { - struct slab **slab; - gfp_t flags; - unsigned int orig_size; -}; +struct trace_event_data_offsets_mm_vmscan_write_folio {}; -struct loc_track { - unsigned long max; - unsigned long count; - struct location *loc; - loff_t idx; -}; +struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {}; -typedef int (*cmp_r_func_t)(const void *, const void *, const void *); +struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {}; -typedef void (*swap_r_func_t)(void *, void *, int, const void *); +struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {}; -struct kmem_obj_info { - void *kp_ptr; - struct slab *kp_slab; - void *kp_objp; - unsigned long kp_data_offset; - struct kmem_cache *kp_slab_cache; - void *kp_ret; - void *kp_stack[16]; - void *kp_free_stack[16]; -}; +struct trace_event_data_offsets_mm_vmscan_throttled {}; -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 folio_batch { + unsigned char nr; + bool percpu_pvec_drained; + struct folio *folios[15]; }; -struct va_format { - const char *fmt; - va_list *va; -}; +typedef __u64 __addrpair; -enum blk_unique_id { - BLK_UID_T10 = 1, - BLK_UID_EUI64 = 2, - BLK_UID_NAA = 3, -}; +typedef __u32 __portpair; -enum blk_bounce { - BLK_BOUNCE_NONE = 0, - BLK_BOUNCE_HIGH = 1, +struct hlist_nulls_node { + struct hlist_nulls_node *next; + struct hlist_nulls_node **pprev; }; -enum blk_zoned_model { - BLK_ZONED_NONE = 0, - BLK_ZONED_HA = 1, - BLK_ZONED_HM = 2, -}; +struct proto; -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_POLLED = 22, - __REQ_ALLOC_CACHE = 23, - __REQ_SWAP = 24, - __REQ_DRV = 25, - __REQ_FS_PRIVATE = 26, - __REQ_NOUNMAP = 27, - __REQ_NR_BITS = 28, +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; + }; }; -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, -}; +typedef struct { + spinlock_t slock; + int owned; + wait_queue_head_t wq; +} socket_lock_t; -enum { - BIO_PAGE_PINNED = 0, - BIO_CLONED = 1, - BIO_BOUNCED = 2, - BIO_QUIET = 3, - BIO_CHAIN = 4, - BIO_REFFED = 5, - BIO_BPS_THROTTLED = 6, - BIO_TRACE_COMPLETION = 7, - BIO_CGROUP_ACCT = 8, - BIO_QOS_THROTTLED = 9, - BIO_QOS_MERGED = 10, - BIO_REMAPPED = 11, - BIO_ZONE_WRITE_LOCKED = 12, - BIO_FLAG_LAST = 13, +struct sock_cgroup_data { + struct cgroup *cgroup; + u32 classid; + u16 prioidx; }; -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 struct {} netns_tracker; -typedef unsigned int blk_mode_t; +struct sk_filter; -struct block_device_operations; +struct socket_wq; -struct timer_rand_state; +struct socket; -struct disk_events; +struct sock_reuseport; -struct badblocks; +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; + int sk_disconnects; + 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 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 blk_independent_access_ranges; +struct smc_hashinfo; -struct gendisk { - int major; - int first_minor; - int minors; - char disk_name[32]; - unsigned short events; - unsigned short event_flags; - struct xarray part_tbl; - struct block_device *part0; - const struct block_device_operations *fops; - struct request_queue *queue; - void *private_data; - struct bio_set bio_split; - int flags; - unsigned long state; - struct mutex open_mutex; - unsigned int open_partitions; - struct backing_dev_info *bdi; - struct kobject queue_kobj; - struct kobject *slave_dir; - struct list_head slave_bdevs; - struct timer_rand_state *random; - atomic_t sync_io; - struct disk_events *ev; - int node_id; - struct badblocks *bb; - struct lockdep_map lockdep_map; - u64 diskseq; - blk_mode_t open_mode; - struct blk_independent_access_ranges *ia_ranges; -}; +typedef struct { + union { + void *kernel; + void __attribute__((btf_type_tag("user"))) *user; + }; + bool is_kernel: 1; +} sockptr_t; -struct blk_zone; +struct msghdr; -typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); +struct sk_psock; -struct hd_geometry; +struct request_sock_ops; -struct pr_ops; +struct timewait_sock_ops; -struct block_device_operations { - void (*submit_bio)(struct bio *); - int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int); - int (*open)(struct gendisk *, blk_mode_t); - void (*release)(struct gendisk *); - int (*ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); - int (*compat_ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); - unsigned int (*check_events)(struct gendisk *, unsigned int); - void (*unlock_native_capacity)(struct gendisk *); - int (*getgeo)(struct block_device *, struct hd_geometry *); - int (*set_read_only)(struct block_device *, bool); - void (*free_disk)(struct gendisk *); - void (*swap_slot_free_notify)(struct block_device *, unsigned long); - int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *); - char * (*devnode)(struct gendisk *, umode_t *); - int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id); +struct raw_hashinfo; + +struct proto { + void (*close)(struct sock *, long); + int (*pre_connect)(struct sock *, struct sockaddr *, int); + int (*connect)(struct sock *, struct sockaddr *, int); + int (*disconnect)(struct sock *, int); + struct sock * (*accept)(struct sock *, int, int *, bool); + int (*ioctl)(struct sock *, int, int *); + int (*init)(struct sock *); + void (*destroy)(struct sock *); + void (*shutdown)(struct sock *, int); + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); + void (*keepalive)(struct sock *, int); + int (*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 *); + void (*splice_eof)(struct socket *); + int (*bind)(struct sock *, struct sockaddr *, int); + int (*bind_add)(struct sock *, struct sockaddr *, int); + int (*backlog_rcv)(struct sock *, struct sk_buff *); + bool (*bpf_bypass_getsockopt)(int, int); + void (*release_cb)(struct sock *); + int (*hash)(struct sock *); + void (*unhash)(struct sock *); + void (*rehash)(struct sock *); + int (*get_port)(struct sock *, unsigned short); + void (*put_port)(struct sock *); + int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); + unsigned int inuse_idx; + bool (*stream_memory_free)(const struct sock *, int); + bool (*sock_is_readable)(struct sock *); + void (*enter_memory_pressure)(struct sock *); + void (*leave_memory_pressure)(struct sock *); + atomic_long_t *memory_allocated; + int __attribute__((btf_type_tag("percpu"))) *per_cpu_fw_alloc; + struct percpu_counter *sockets_allocated; + unsigned long *memory_pressure; + long *sysctl_mem; + int *sysctl_wmem; + int *sysctl_rmem; + u32 sysctl_wmem_offset; + u32 sysctl_rmem_offset; + int max_header; + bool no_autobind; + struct kmem_cache *slab; + unsigned int obj_size; + unsigned int ipv6_pinfo_offset; + slab_flags_t slab_flags; + unsigned int useroffset; + unsigned int usersize; + unsigned int __attribute__((btf_type_tag("percpu"))) *orphan_count; + struct request_sock_ops *rsk_prot; + struct timewait_sock_ops *twsk_prot; + union { + struct inet_hashinfo *hashinfo; + struct udp_table *udp_table; + struct raw_hashinfo *raw_hash; + struct smc_hashinfo *smc_hash; + } h; struct module *owner; - const struct pr_ops *pr_ops; - int (*alternative_gpt_sector)(struct gendisk *, sector_t *); + char name[32]; + struct list_head node; + int (*diag_destroy)(struct sock *, int); }; -struct request; +struct ubuf_info; -struct io_comp_batch { - struct request *req_list; - bool need_ts; - void (*complete)(struct io_comp_batch *); +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 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]; +struct ubuf_info { + void (*callback)(struct sk_buff *, struct ubuf_info *, bool); + refcount_t refcnt; + u8 flags; }; -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 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 pr_keys; +struct pneigh_entry; -struct pr_held_reservation; +struct neigh_statistics; -struct pr_ops { - int (*pr_register)(struct block_device *, u64, u64, u32); - int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32); - int (*pr_release)(struct block_device *, u64, enum pr_type); - int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool); - int (*pr_clear)(struct block_device *, u64); - int (*pr_read_keys)(struct block_device *, struct pr_keys *); - int (*pr_read_reservation)(struct block_device *, struct pr_held_reservation *); +struct 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 blk_integrity_profile; +struct pneigh_entry { + struct pneigh_entry *next; + possible_net_t net; + struct net_device *dev; + netdevice_tracker dev_tracker; + u32 flags; + u8 protocol; + u32 key[0]; +}; -struct blk_integrity { - const struct blk_integrity_profile *profile; - unsigned char flags; - unsigned char tuple_size; - unsigned char interval_exp; - unsigned char tag_size; +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 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 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 elevator_queue; +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 blk_queue_stats; +enum hwtstamp_source { + HWTSTAMP_SOURCE_NETDEV = 0, + HWTSTAMP_SOURCE_PHYLIB = 1, +}; -struct rq_qos; +struct kernel_hwtstamp_config { + int flags; + int tx_type; + int rx_filter; + struct ifreq *ifr; + bool copied_to_user; + enum hwtstamp_source source; +}; -struct blk_mq_ops; +struct nd_opt_hdr { + __u8 nd_opt_type; + __u8 nd_opt_len; +}; -struct blk_mq_ctx; +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 blk_mq_tags; +struct prefix_info { + __u8 type; + __u8 length; + __u8 prefix_len; + union { + __u8 flags; + struct { + __u8 reserved: 6; + __u8 autoconf: 1; + __u8 onlink: 1; + }; + }; + __be32 valid; + __be32 prefered; + __be32 reserved2; + struct in6_addr prefix; +}; -struct blk_trace; +struct ip6_sf_list; -struct blk_flush_queue; +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 blk_mq_tag_set; +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 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; - struct mutex rq_qos_mutex; - 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 blk_integrity integrity; - struct device *dev; - enum rpm_status rpm_status; - unsigned long nr_requests; - unsigned int dma_pad_mask; - unsigned int rq_timeout; - 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 flush_list; - 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; +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; }; -enum blk_eh_timer_return { - BLK_EH_DONE = 0, - BLK_EH_RESET_TIMER = 1, +struct icmpv6_mib_device { + atomic_long_t mibs[7]; }; -struct blk_mq_hw_ctx; +struct icmpv6msg_mib_device { + atomic_long_t mibs[512]; +}; -struct blk_mq_queue_data; +typedef enum { + SS_FREE = 0, + SS_UNCONNECTED = 1, + SS_CONNECTING = 2, + SS_CONNECTED = 3, + SS_DISCONNECTING = 4, +} socket_state; -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 socket_wq { + wait_queue_head_t wait; + struct fasync_struct *fasync_list; + unsigned long flags; + struct callback_head rcu; + long: 64; }; -struct blk_mq_ctxs; +struct proto_ops; -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; +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; }; -struct blk_integrity_iter; - -typedef blk_status_t integrity_processing_fn(struct blk_integrity_iter *); +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 void integrity_prepare_fn(struct request *); +typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t); -typedef void integrity_complete_fn(struct request *, unsigned int); +typedef int (*skb_read_actor_t)(struct sock *, struct sk_buff *); -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 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 (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*splice_eof)(struct socket *); + int (*set_peek_off)(struct sock *, int); + int (*peek_len)(struct socket *); + int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t); + int (*read_skb)(struct sock *, skb_read_actor_t); + int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); + int (*set_rcvlowat)(struct sock *, int); }; -struct 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 reciprocal_value { + u32 m; + u8 sh1; + u8 sh2; }; -struct blk_independent_access_range { - struct kobject kobj; - sector_t sector; - sector_t nr_sectors; +struct kmem_cache_order_objects { + unsigned int x; }; -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 kmem_cache_cpu; -struct partition_meta_info { - char uuid[37]; - u8 volname[64]; -}; +struct kmem_cache_node; -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; - struct list_head cb_list; +struct kmem_cache { + struct kmem_cache_cpu __attribute__((btf_type_tag("percpu"))) *cpu_slab; + slab_flags_t flags; + unsigned long min_partial; + unsigned int size; + unsigned int object_size; + struct reciprocal_value reciprocal_size; + unsigned int offset; + unsigned int cpu_partial; + unsigned int cpu_partial_slabs; + struct kmem_cache_order_objects oo; + struct kmem_cache_order_objects min; + gfp_t allocflags; + int refcount; + void (*ctor)(void *); + unsigned int inuse; + unsigned int align; + unsigned int red_left_pad; + const char *name; + struct list_head list; + struct kobject kobj; + unsigned int remote_node_defrag_ratio; + struct kmem_cache_node *node[16]; }; -struct buffer_head; +typedef unsigned __int128 __u128; -typedef void bh_end_io_t(struct buffer_head *, int); +typedef __u128 u128; -struct buffer_head { - unsigned long b_state; - struct buffer_head *b_this_page; - union { - struct page *b_page; - struct folio *b_folio; +typedef u128 freelist_full_t; + +typedef union { + struct { + void *freelist; + unsigned long counter; }; - 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; -}; + freelist_full_t full; +} freelist_aba_t; -typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); +typedef struct {} local_lock_t; -typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); +struct slab; -struct folio_iter { - struct folio *folio; - size_t offset; - size_t length; - struct folio *_next; - size_t _seg_count; - int _i; +struct kmem_cache_cpu { + union { + struct { + void **freelist; + unsigned long tid; + }; + freelist_aba_t freelist_tid; + }; + struct slab *slab; + struct slab *partial; + local_lock_t lock; }; -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 slab { + unsigned long __page_flags; + struct kmem_cache *slab_cache; + union { + struct { + union { + struct list_head slab_list; + struct { + struct slab *next; + int slabs; + }; + }; + union { + struct { + void *freelist; + union { + unsigned long counters; + struct { + unsigned int inuse: 16; + unsigned int objects: 15; + unsigned int frozen: 1; + }; + }; + }; + freelist_aba_t freelist_counter; + }; + }; + struct callback_head callback_head; + }; + unsigned int __unused; + atomic_t __page_refcount; + unsigned long memcg_data; }; -struct mpage_data { - struct bio *bio; - sector_t last_block_in_bio; - get_block_t *get_block; +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; }; -struct ida { - struct xarray xa; -}; +struct request_sock; -enum proc_hidepid { - HIDEPID_OFF = 0, - HIDEPID_NO_ACCESS = 1, - HIDEPID_INVISIBLE = 2, - HIDEPID_NOT_PTRACEABLE = 4, +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 *); }; -enum proc_pidonly { - PROC_PIDONLY_OFF = 0, - PROC_PIDONLY_ON = 1, -}; +struct saved_syn; -enum { - PROC_ENTRY_PERMANENT = 1, +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; }; -typedef int (*proc_write_t)(struct file *, char *, size_t); - -typedef u32 nlink_t; +struct saved_syn { + u32 mac_hdrlen; + u32 network_hdrlen; + u32 tcp_hdrlen; + u8 data[0]; +}; -struct proc_dir_entry { - atomic_t in_use; +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 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 sk_filter { refcount_t refcnt; - struct list_head pde_openers; - spinlock_t pde_unload_lock; - struct completion *pde_unload_completion; - const struct inode_operations *proc_iops; + struct callback_head rcu; + struct bpf_prog *prog; +}; + +struct memcg_vmstats { + long state[50]; + unsigned long events[19]; + long state_local[50]; + unsigned long events_local[19]; + long state_pending[50]; + unsigned long events_pending[19]; +}; + +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 inet_peer_base { + struct rb_root rb_root; + seqlock_t lock; + int total; +}; + +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 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; +}; + +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; + __u32 flowic_multipath_hash; + struct flowi_tunnel flowic_tun_key; +}; + +union flowi_uli { + struct { + __be16 dport; + __be16 sport; + } ports; + struct { + __u8 type; + __u8 code; + } icmpt; + __be32 gre_key; + struct { + __u8 type; + } mht; +}; + +struct flowi4 { + struct flowi_common __fl_common; + __be32 saddr; + __be32 daddr; + union flowi_uli uli; +}; + +struct flowi6 { + struct flowi_common __fl_common; + struct in6_addr daddr; + struct in6_addr saddr; + __be32 flowlabel; + union flowi_uli uli; + __u32 mp_hash; +}; + +struct flowi { union { - const struct proc_ops *proc_ops; - const struct file_operations *proc_dir_ops; + 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 mem_cgroup_tree_per_node; + +struct mem_cgroup_tree { + struct mem_cgroup_tree_per_node *rb_tree_per_node[16]; +}; + +struct mem_cgroup_tree_per_node { + struct rb_root rb_root; + struct rb_node *rb_rightmost; + spinlock_t lock; +}; + +struct memory_stat { + const char *name; + unsigned int idx; +}; + +struct move_charge_struct { + spinlock_t lock; + struct mm_struct *mm; + struct mem_cgroup *from; + struct mem_cgroup *to; + unsigned long flags; + unsigned long precharge; + unsigned long moved_charge; + unsigned long moved_swap; + struct task_struct *moving_task; + wait_queue_head_t waitq; +}; + +struct memcg_stock_pcp { + local_lock_t stock_lock; + struct mem_cgroup *cached; + unsigned int nr_pages; + struct obj_cgroup *cached_objcg; + struct pglist_data *cached_pgdat; + unsigned int nr_bytes; + int nr_slab_reclaimable_b; + int nr_slab_unreclaimable_b; + struct work_struct work; + unsigned long flags; +}; + +enum page_walk_lock { + PGWALK_RDLOCK = 0, + PGWALK_WRLOCK = 1, + PGWALK_WRLOCK_VERIFY = 2, +}; + +struct mm_walk; + +struct mm_walk_ops { + int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); + int (*p4d_entry)(p4d_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pte_hole)(unsigned long, unsigned long, int, struct mm_walk *); + int (*hugetlb_entry)(pte_t *, unsigned long, unsigned long, unsigned long, struct mm_walk *); + int (*test_walk)(unsigned long, unsigned long, struct mm_walk *); + int (*pre_vma)(unsigned long, unsigned long, struct mm_walk *); + void (*post_vma)(struct mm_walk *); + enum page_walk_lock walk_lock; +}; + +enum page_walk_action { + ACTION_SUBTREE = 0, + ACTION_CONTINUE = 1, + ACTION_AGAIN = 2, +}; + +struct mm_walk { + const struct mm_walk_ops *ops; + struct mm_struct *mm; + pgd_t *pgd; + struct vm_area_struct *vma; + enum page_walk_action action; + bool no_vma; + void *private; +}; + +struct numa_stat { + const char *name; + unsigned int lru_mask; +}; + +enum cgroup_subsys_id { + cpuset_cgrp_id = 0, + cpu_cgrp_id = 1, + cpuacct_cgrp_id = 2, + io_cgrp_id = 3, + memory_cgrp_id = 4, + devices_cgrp_id = 5, + freezer_cgrp_id = 6, + net_cls_cgrp_id = 7, + perf_event_cgrp_id = 8, + net_prio_cgrp_id = 9, + hugetlb_cgrp_id = 10, + pids_cgrp_id = 11, + rdma_cgrp_id = 12, + misc_cgrp_id = 13, + CGROUP_SUBSYS_COUNT = 14, +}; + +enum { + CSS_TASK_ITER_PROCS = 1, + CSS_TASK_ITER_THREADED = 2, + CSS_TASK_ITER_SKIPPED = 65536, +}; + +enum memcg_stat_item { + MEMCG_SWAP = 43, + MEMCG_SOCK = 44, + MEMCG_PERCPU_B = 45, + MEMCG_VMALLOC = 46, + MEMCG_KMEM = 47, + MEMCG_ZSWAP_B = 48, + MEMCG_ZSWAPPED = 49, + MEMCG_NR_STAT = 50, +}; + +enum { + __PERCPU_REF_ATOMIC = 1, + __PERCPU_REF_DEAD = 2, + __PERCPU_REF_ATOMIC_DEAD = 3, + __PERCPU_REF_FLAG_BITS = 2, +}; + +enum numa_stat_item { + NUMA_HIT = 0, + NUMA_MISS = 1, + NUMA_FOREIGN = 2, + NUMA_INTERLEAVE_HIT = 3, + NUMA_LOCAL = 4, + NUMA_OTHER = 5, + NR_VM_NUMA_EVENT_ITEMS = 6, +}; + +enum writeback_stat_item { + NR_DIRTY_THRESHOLD = 0, + NR_DIRTY_BG_THRESHOLD = 1, + NR_VM_WRITEBACK_STAT_ITEMS = 2, +}; + +enum mem_cgroup_events_target { + MEM_CGROUP_TARGET_THRESH = 0, + MEM_CGROUP_TARGET_SOFTLIMIT = 1, + MEM_CGROUP_NTARGETS = 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 oom_constraint { + CONSTRAINT_NONE = 0, + CONSTRAINT_CPUSET = 1, + CONSTRAINT_MEMORY_POLICY = 2, + CONSTRAINT_MEMCG = 3, +}; + +enum mc_target_type { + MC_TARGET_NONE = 0, + MC_TARGET_PAGE = 1, + MC_TARGET_SWAP = 2, + MC_TARGET_DEVICE = 3, +}; + +enum res_type { + _MEM = 0, + _MEMSWAP = 1, + _KMEM = 2, + _TCP = 3, +}; + +enum { + RES_USAGE = 0, + RES_LIMIT = 1, + RES_MAX_USAGE = 2, + RES_FAILCNT = 3, + RES_SOFT_LIMIT = 4, +}; + +struct oom_wait_info { + struct mem_cgroup *memcg; + wait_queue_entry_t wait; +}; + +struct mem_cgroup_eventfd_list { + struct list_head list; + struct eventfd_ctx *eventfd; +}; + +typedef struct poll_table_struct poll_table; + +struct mem_cgroup_event { + struct mem_cgroup *memcg; + struct eventfd_ctx *eventfd; + struct list_head list; + int (*register_event)(struct mem_cgroup *, struct eventfd_ctx *, const char *); + void (*unregister_event)(struct mem_cgroup *, struct eventfd_ctx *); + poll_table pt; + wait_queue_head_t *wqh; + wait_queue_entry_t wait; + struct work_struct remove; +}; + +typedef __kernel_ulong_t ino_t; + +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 uncharge_gather { + struct mem_cgroup *memcg; + unsigned long nr_memory; + unsigned long pgpgout; + unsigned long nr_kmem; + int nid; +}; + +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; +}; + +union mc_target { + struct page *page; + swp_entry_t ent; +}; + +typedef unsigned int fgf_t; + +typedef void (*swap_func_t)(void *, void *, int); + +enum dentry_d_lock_class { + DENTRY_D_LOCK_NORMAL = 0, + DENTRY_D_LOCK_NESTED = 1, +}; + +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 fsnotify_data_type { + FSNOTIFY_EVENT_NONE = 0, + FSNOTIFY_EVENT_PATH = 1, + FSNOTIFY_EVENT_INODE = 2, + FSNOTIFY_EVENT_DENTRY = 3, + FSNOTIFY_EVENT_ERROR = 4, +}; + +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; }; - const struct dentry_operations *proc_dops; + 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 { - const struct seq_operations *seq_ops; - int (*single_show)(struct seq_file *, void *); + struct hlist_node mnt_mp_list; + struct hlist_node mnt_umount; }; - 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]; + 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; }; -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 mnt_pcp { + int mnt_count; + int mnt_writers; }; -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 mountpoint { + struct hlist_node m_hash; + struct dentry *m_dentry; + struct hlist_head m_list; + int m_count; }; -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 fs_pin { + wait_queue_head_t wait; + int done; + struct hlist_node s_list; + struct hlist_node m_list; + void (*kill)(struct fs_pin *); }; -typedef __kernel_ulong_t ino_t; +struct fs_error_report { + int error; + struct inode *inode; + struct super_block *sb; +}; -typedef struct poll_table_struct poll_table; +struct fsnotify_group; -struct fiemap_extent; +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 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 inotify_group_private_data { + spinlock_t idr_lock; + struct idr idr; + struct ucounts *ucounts; }; -struct fiemap_extent { - __u64 fe_logical; - __u64 fe_physical; - __u64 fe_length; - __u64 fe_reserved64[2]; - __u32 fe_flags; - __u32 fe_reserved[3]; +struct fanotify_group_private_data { + struct hlist_head *merge_hash; + struct list_head access_list; + wait_queue_head_t access_waitq; + int flags; + int f_flags; + struct ucounts *ucounts; + mempool_t error_events_pool; +}; + +struct fsnotify_ops; + +struct fsnotify_event; + +struct fsnotify_group { + const struct fsnotify_ops *ops; + refcount_t refcnt; + spinlock_t notification_lock; + struct list_head notification_list; + wait_queue_head_t notification_waitq; + unsigned int q_len; + unsigned int max_events; + unsigned int priority; + bool shutdown; + int flags; + unsigned int owner_flags; + struct mutex mark_mutex; + atomic_t user_waits; + struct list_head marks_list; + struct fasync_struct *fsn_fa; + struct fsnotify_event *overflow_event; + struct mem_cgroup *memcg; + union { + void *private; + struct inotify_group_private_data inotify_data; + struct fanotify_group_private_data fanotify_data; + }; +}; + +struct fsnotify_iter_info; + +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_event { + struct list_head list; +}; + +struct wait_bit_key { + void *flags; + int bit_nr; + unsigned long timeout; +}; + +struct wait_bit_queue_entry { + struct wait_bit_key key; + struct wait_queue_entry wq_entry; +}; + +struct name_snapshot { + struct qstr name; + unsigned char inline_name[32]; +}; + +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); +}; + +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 cpu_usage_stat { + CPUTIME_USER = 0, + CPUTIME_NICE = 1, + CPUTIME_SYSTEM = 2, + CPUTIME_SOFTIRQ = 3, + CPUTIME_IRQ = 4, + CPUTIME_IDLE = 5, + CPUTIME_IOWAIT = 6, + CPUTIME_STEAL = 7, + CPUTIME_GUEST = 8, + CPUTIME_GUEST_NICE = 9, + NR_STATS = 10, +}; + +enum { + 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 kernel_cpustat { + u64 cpustat[10]; +}; + +struct kernel_stat { + unsigned long irqs_sum; + unsigned int softirqs[10]; +}; + +struct kernfs_syscall_ops; + +struct kernfs_root { + struct kernfs_node *kn; + unsigned int flags; + struct idr ino_idr; + u32 last_id_lowbits; + u32 id_highbits; + struct kernfs_syscall_ops *syscall_ops; + struct list_head supers; + wait_queue_head_t deactivate_waitq; + struct rw_semaphore kernfs_rwsem; + struct rw_semaphore kernfs_iattr_rwsem; + struct rw_semaphore kernfs_supers_rwsem; +}; + +struct 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 simple_xattrs { + struct rb_root rb_root; + rwlock_t lock; +}; + +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_type { + KERNFS_DIR = 1, + KERNFS_FILE = 2, + KERNFS_LINK = 4, +}; + +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_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 simple_xattr { + struct rb_node rb_node; + char *name; + size_t size; + char value[0]; }; typedef unsigned int tid_t; @@ -19066,7 +18653,6 @@ struct transaction_s { struct journal_head *t_checkpoint_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; @@ -19108,6 +18694,8 @@ enum passtype { PASS_REPLAY = 2, }; +struct buffer_head; + struct journal_superblock_s; typedef struct journal_superblock_s journal_superblock_t; @@ -19139,7 +18727,7 @@ struct journal_s { wait_queue_head_t j_fc_wait; struct mutex j_checkpoint_mutex; struct buffer_head *j_chkpt_bhs[64]; - struct shrinker j_shrinker; + struct shrinker *j_shrinker; struct percpu_counter j_checkpoint_jh_count; transaction_t *j_shrink_transaction; unsigned long j_head; @@ -19195,6 +18783,45 @@ struct journal_s { int (*j_bmap)(struct journal_s *, sector_t *); }; +typedef void bh_end_io_t(struct buffer_head *, int); + +struct buffer_head { + unsigned long b_state; + struct buffer_head *b_this_page; + union { + struct page *b_page; + struct folio *b_folio; + }; + sector_t b_blocknr; + size_t b_size; + char *b_data; + struct block_device *b_bdev; + bh_end_io_t *b_end_io; + void *b_private; + struct list_head b_assoc_buffers; + struct address_space *b_assoc_map; + atomic_t b_count; + spinlock_t b_uptodate_lock; +}; + +struct 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; @@ -19337,34 +18964,48 @@ enum ext4_li_mode { EXT4_LI_MODE_ITABLE = 1, }; -enum { - EXT4_INODE_SECRM = 0, - EXT4_INODE_UNRM = 1, - EXT4_INODE_COMPR = 2, - EXT4_INODE_SYNC = 3, - EXT4_INODE_IMMUTABLE = 4, - EXT4_INODE_APPEND = 5, - EXT4_INODE_NODUMP = 6, - EXT4_INODE_NOATIME = 7, - EXT4_INODE_DIRTY = 8, - EXT4_INODE_COMPRBLK = 9, - EXT4_INODE_NOCOMPR = 10, - EXT4_INODE_ENCRYPT = 11, - EXT4_INODE_INDEX = 12, - EXT4_INODE_IMAGIC = 13, - EXT4_INODE_JOURNAL_DATA = 14, - EXT4_INODE_NOTAIL = 15, - EXT4_INODE_DIRSYNC = 16, - EXT4_INODE_TOPDIR = 17, - EXT4_INODE_HUGE_FILE = 18, - EXT4_INODE_EXTENTS = 19, - EXT4_INODE_VERITY = 20, - EXT4_INODE_EA_INODE = 21, - EXT4_INODE_DAX = 25, - EXT4_INODE_INLINE_DATA = 28, - EXT4_INODE_PROJINHERIT = 29, - EXT4_INODE_CASEFOLD = 30, - EXT4_INODE_RESERVED = 31, +enum req_flag_bits { + __REQ_FAILFAST_DEV = 8, + __REQ_FAILFAST_TRANSPORT = 9, + __REQ_FAILFAST_DRIVER = 10, + __REQ_SYNC = 11, + __REQ_META = 12, + __REQ_PRIO = 13, + __REQ_NOMERGE = 14, + __REQ_IDLE = 15, + __REQ_INTEGRITY = 16, + __REQ_FUA = 17, + __REQ_PREFLUSH = 18, + __REQ_RAHEAD = 19, + __REQ_BACKGROUND = 20, + __REQ_NOWAIT = 21, + __REQ_POLLED = 22, + __REQ_ALLOC_CACHE = 23, + __REQ_SWAP = 24, + __REQ_DRV = 25, + __REQ_FS_PRIVATE = 26, + __REQ_NOUNMAP = 27, + __REQ_NR_BITS = 28, +}; + +enum 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 jbd_state_bits { @@ -19380,31 +19021,54 @@ enum jbd_state_bits { 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_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; }; -typedef __u16 __le16; +typedef int ext4_grpblk_t; -struct ext4_dir_entry_2 { - __le32 inode; - __le16 rec_len; - __u8 name_len; - __u8 file_type; - char name[255]; +typedef unsigned int ext4_group_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]; }; typedef unsigned long long ext4_fsblk_t; -typedef unsigned int ext4_group_t; - typedef __u32 ext4_lblk_t; struct extent_status; @@ -19478,11 +19142,6 @@ struct extent_status { ext4_fsblk_t es_pblk; }; -struct ext4_dir_entry_hash { - __le32 hash; - __le32 minor_hash; -}; - struct ext4_orphan_block; struct ext4_orphan_info { @@ -19543,8 +19202,6 @@ struct blockgroup_lock; struct ext4_system_blocks; -struct ext4_group_info; - struct ext4_locality_group; struct flex_groups; @@ -19610,7 +19267,7 @@ struct ext4_sb_info { unsigned long s_commit_interval; u32 s_max_batch_time; u32 s_min_batch_time; - struct block_device *s_journal_bdev; + struct bdev_handle *s_journal_bdev_handle; char __attribute__((btf_type_tag("rcu"))) *s_qf_names[3]; int s_jquota_fmt; unsigned int s_want_extra_isize; @@ -19622,7 +19279,7 @@ struct ext4_sb_info { 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_freed_data_list[2]; struct list_head s_discard_list; struct work_struct s_discard_work; atomic_t s_retry_alloc_pending; @@ -19681,16 +19338,13 @@ struct ext4_sb_info { unsigned long s_last_trim_minblks; struct crypto_shash *s_chksum_driver; __u32 s_csum_seed; - struct shrinker s_es_shrinker; + struct shrinker *s_es_shrinker; struct list_head s_es_list; long s_es_nr_inode; struct ext4_es_stats s_es_stats; struct mb_cache *s_ea_block_cache; struct mb_cache *s_ea_inode_cache; long: 64; - long: 64; - long: 64; - long: 64; spinlock_t s_es_lock; struct ext4_journal_trigger s_journal_triggers[1]; struct ratelimit_state s_err_ratelimit_state; @@ -19718,7 +19372,7 @@ struct ext4_sb_info { __u64 s_last_error_block; const char *s_last_error_func; time64_t s_last_error_time; - struct work_struct s_error_work; + struct work_struct s_sb_upd_work; atomic_t s_fc_subtid; struct list_head s_fc_q[2]; struct list_head s_fc_dentry_q[2]; @@ -19868,24 +19522,6 @@ struct ext4_system_blocks { 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]; @@ -19915,16 +19551,6 @@ struct ext4_fc_alloc_region { int len; }; -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 jbd2_journal_handle; typedef struct jbd2_journal_handle handle_t; @@ -19951,17401 +19577,13386 @@ struct jbd2_journal_handle { unsigned int saved_alloc_context; }; -struct ext4_map_blocks { - ext4_fsblk_t m_pblk; - ext4_lblk_t m_lblk; - unsigned int m_len; - unsigned int m_flags; +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 fscrypt_str { - unsigned char *name; - u32 len; +struct posix_acl_entry { + short e_tag; + unsigned short e_perm; + union { + kuid_t e_uid; + kgid_t e_gid; + }; }; -struct ext2_dir_entry_2 { - __le32 inode; - __le16 rec_len; - __u8 name_len; - __u8 file_type; - char name[0]; +struct posix_acl { + refcount_t a_refcount; + struct callback_head a_rcu; + unsigned int a_count; + struct posix_acl_entry a_entries[0]; }; -typedef struct ext2_dir_entry_2 ext2_dirent; - -struct ext2_block_alloc_info; +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 ext2_inode_info { - __le32 i_data[15]; - __u32 i_flags; - __u32 i_faddr; - __u8 i_frag_no; - __u8 i_frag_size; - __u16 i_state; - __u32 i_file_acl; - __u32 i_dir_acl; - __u32 i_dtime; - __u32 i_block_group; - struct ext2_block_alloc_info *i_block_alloc_info; - __u32 i_dir_start_lookup; - rwlock_t i_meta_lock; - struct mutex truncate_mutex; - struct inode vfs_inode; - struct list_head i_orphan; - struct dquot *i_dquot[3]; +struct fid { + union { + struct { + u32 ino; + u32 gen; + u32 parent_ino; + u32 parent_gen; + } i32; + struct { + u64 ino; + u32 gen; + } __attribute__((packed)) i64; + struct { + u32 block; + u16 partref; + u16 parent_partref; + u32 generation; + u32 parent_block; + u32 parent_generation; + } udf; + struct { + struct {} __empty_raw; + __u32 raw[0]; + }; + }; }; -typedef unsigned long ext2_fsblk_t; +typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t); -struct ext2_reserve_window { - ext2_fsblk_t _rsv_start; - ext2_fsblk_t _rsv_end; -}; +typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *); -struct ext2_reserve_window_node { - struct rb_node rsv_node; - __u32 rsv_goal_size; - __u32 rsv_alloc_hit; - struct ext2_reserve_window rsv_window; -}; +typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int); -struct ext2_block_alloc_info { - struct ext2_reserve_window_node rsv_window_node; - __u32 last_alloc_logical_block; - ext2_fsblk_t last_alloc_physical_block; -}; +typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int); -typedef int filler_t(struct file *, struct folio *); +typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *); -struct ext2_super_block; +typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int); -struct ext2_sb_info { - unsigned long s_inodes_per_block; - unsigned long s_blocks_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; - unsigned long s_groups_count; - unsigned long s_overhead_last; - unsigned long s_blocks_last; - struct buffer_head *s_sbh; - struct ext2_super_block *s_es; - struct buffer_head **s_group_desc; - unsigned long s_mount_opt; - unsigned long s_sb_block; - 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; - spinlock_t s_next_gen_lock; - u32 s_next_generation; - unsigned long s_dir_count; - u8 *s_debts; - struct percpu_counter s_freeblocks_counter; - struct percpu_counter s_freeinodes_counter; - struct percpu_counter s_dirs_counter; - struct blockgroup_lock *s_blockgroup_lock; - spinlock_t s_rsv_window_lock; - struct rb_root s_rsv_window_root; - struct ext2_reserve_window_node s_rsv_window_head; - spinlock_t s_lock; - struct mb_cache *s_ea_block_cache; - struct dax_device *s_daxdev; - u64 s_dax_part_off; -}; +typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); -struct ext2_super_block { - __le32 s_inodes_count; - __le32 s_blocks_count; - __le32 s_r_blocks_count; - __le32 s_free_blocks_count; - __le32 s_free_inodes_count; - __le32 s_first_data_block; - __le32 s_log_block_size; - __le32 s_log_frag_size; - __le32 s_blocks_per_group; - __le32 s_frags_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; - __u16 s_padding1; - __u8 s_journal_uuid[16]; - __u32 s_journal_inum; - __u32 s_journal_dev; - __u32 s_last_orphan; - __u32 s_hash_seed[4]; - __u8 s_def_hash_version; - __u8 s_reserved_char_pad; - __u16 s_reserved_word_pad; - __le32 s_default_mount_opts; - __le32 s_first_meta_bg; - __u32 s_reserved[190]; -}; +typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, unsigned long); -struct fat_entry; +typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); -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 void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int); -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 void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int); -typedef unsigned long long llu; +typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); -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; -}; +typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); -struct nls_table; +typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); -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 void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *); -typedef u16 wchar_t; +typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, unsigned long, struct writeback_control *); -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 ext4_map_blocks; -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; -}; +typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); -struct fstrim_range { - __u64 start; - __u64 len; - __u64 minlen; +struct ext4_map_blocks { + ext4_fsblk_t m_pblk; + ext4_lblk_t m_lblk; + unsigned int m_len; + unsigned int m_flags; }; -struct rpc_rqst; +typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); -struct xdr_stream; +typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *); -typedef void (*kxdreproc_t)(struct rpc_rqst *, struct xdr_stream *, const void *); +typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *); -typedef int (*kxdrdproc_t)(struct rpc_rqst *, struct xdr_stream *, void *); +typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t); -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; -}; +typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t); -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; -}; +typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, unsigned long long, unsigned long long); -struct rpc_xprt; +struct ext4_allocation_context; -struct rpc_task; +struct ext4_prealloc_space; -struct rpc_cred; +typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); -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 list_head rq_bc_list; - unsigned long rq_bc_pa_state; - struct list_head rq_bc_pa_list; +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 __kernel_sockaddr_storage { - union { - struct { - __kernel_sa_family_t ss_family; - char __data[126]; - }; - void *__align; - }; +struct ext4_allocation_context { + struct inode *ac_inode; + struct super_block *ac_sb; + struct ext4_free_extent ac_o_ex; + struct ext4_free_extent ac_g_ex; + struct ext4_free_extent ac_b_ex; + struct ext4_free_extent ac_f_ex; + ext4_grpblk_t ac_orig_goal_len; + __u32 ac_groups_considered; + __u32 ac_flags; + __u16 ac_groups_scanned; + __u16 ac_groups_linear_remaining; + __u16 ac_found; + __u16 ac_cX_found[5]; + __u16 ac_tail; + __u16 ac_buddy; + __u8 ac_status; + __u8 ac_criteria; + __u8 ac_2order; + __u8 ac_op; + struct page *ac_bitmap_page; + struct page *ac_buddy_page; + struct ext4_prealloc_space *ac_pa; + struct ext4_locality_group *ac_lg; }; -struct rpc_timer { - struct list_head list; - unsigned long expires; - struct delayed_work dwork; +struct ext4_prealloc_space { + union { + struct rb_node inode_node; + struct list_head lg_list; + } pa_node; + struct list_head pa_group_list; + union { + struct list_head pa_tmp_list; + struct callback_head pa_rcu; + } u; + spinlock_t pa_lock; + atomic_t pa_count; + unsigned int pa_deleted; + ext4_fsblk_t pa_pstart; + ext4_lblk_t pa_lstart; + ext4_grpblk_t pa_len; + ext4_grpblk_t pa_free; + unsigned short pa_type; + union { + rwlock_t *inode_lock; + spinlock_t *lg_lock; + } pa_node_lock; + struct inode *pa_inode; }; -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; -}; +typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); -enum xprtsec_policies { - RPC_XPRTSEC_NONE = 0, - RPC_XPRTSEC_TLS_ANON = 1, - RPC_XPRTSEC_TLS_X509 = 2, -}; +typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, unsigned long long, unsigned int); -struct xprtsec_parms { - enum xprtsec_policies policy; - key_serial_t cert_serial; - key_serial_t privkey_serial; -}; +typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *); -struct rpc_xprt_ops; +typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int, unsigned int); -struct rpc_timeout; +typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int); -struct svc_xprt; +typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *); -struct svc_serv; +typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, unsigned long long); -struct xprt_class; +typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, unsigned long, int); -struct rpc_sysfs_xprt; +typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int); -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; - struct xprtsec_parms xprtsec; - 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 svc_serv *bc_serv; - unsigned int bc_alloc_max; - unsigned int bc_alloc_count; - atomic_t bc_slot_count; - spinlock_t bc_pa_lock; - struct list_head bc_pa_list; - 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; -}; +typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int); -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); -}; +typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int); -struct rpc_wait { - struct list_head list; - struct list_head links; - struct list_head timer_list; -}; +typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *); -struct rpc_message { - const struct rpc_procinfo *rpc_proc; - void *rpc_argp; - void *rpc_resp; - const struct cred *rpc_cred; -}; +typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *); -struct rpc_call_ops; +typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *); -struct rpc_clnt; +typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -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; -}; +typedef void (*btf_trace_ext4_mballoc_free)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -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 *); -}; +typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64); -struct rpc_xprt_switch; +typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); -struct rpc_xprt_iter_ops; +typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *); -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; -}; +typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); -struct rpc_pipe_dir_head { - struct list_head pdh_entries; - struct dentry *pdh_dentry; -}; +typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, unsigned long); -struct rpc_rtt { - unsigned long timeo; - unsigned long srtt[5]; - unsigned long sdrtt[5]; - int ntimeouts[5]; -}; +typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, unsigned long); -struct rpc_timeout { - unsigned long to_initval; - unsigned long to_maxval; - unsigned long to_increment; - unsigned int to_retries; - unsigned char to_exponential; -}; +typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, unsigned long); -struct rpc_auth; +typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, unsigned long, bool); -struct rpc_stat; +typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int); -struct rpc_iostats; +typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int); -struct rpc_program; +typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int); -struct rpc_sysfs_client; +typedef void (*btf_trace_ext4_fallocate_exit)(void *, struct inode *, loff_t, unsigned int, int); -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; - unsigned int cl_shutdown: 1; - struct xprtsec_parms cl_xprtsec; - 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; -}; +typedef void (*btf_trace_ext4_unlink_enter)(void *, struct inode *, struct dentry *); -typedef u32 rpc_authflavor_t; +typedef void (*btf_trace_ext4_unlink_exit)(void *, struct dentry *, int); -struct rpc_authops; +typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *); -struct rpc_cred_cache; +typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *); -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 ext4_extent; -struct rpc_auth_create_args; +typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *); -struct auth_cred; +struct ext4_extent { + __le32 ee_block; + __le16 ee_len; + __le16 ee_start_hi; + __le32 ee_start_lo; +}; -struct rpcsec_gss_info; +typedef void (*btf_trace_ext4_ext_convert_to_initialized_fastpath)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *, struct ext4_extent *); -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 *); - int (*ping)(struct rpc_clnt *); -}; +typedef void (*btf_trace_ext4_ext_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); -struct posix_acl_entry { - short e_tag; - unsigned short e_perm; - union { - kuid_t e_uid; - kgid_t e_gid; - }; -}; +typedef void (*btf_trace_ext4_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); -struct posix_acl { - refcount_t a_refcount; - struct callback_head a_rcu; - unsigned int a_count; - struct posix_acl_entry a_entries[0]; -}; +typedef void (*btf_trace_ext4_ext_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); -struct ip6_sf_list; +typedef void (*btf_trace_ext4_ind_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); -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; -}; +typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t); -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; -}; +typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, unsigned long); -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; -}; +typedef void (*btf_trace_ext4_journal_start_sb)(void *, struct super_block *, int, int, int, int, unsigned long); -struct icmpv6_mib_device { - atomic_long_t mibs[7]; -}; +typedef void (*btf_trace_ext4_journal_start_inode)(void *, struct inode *, int, int, int, int, unsigned long); -struct icmpv6msg_mib_device { - atomic_long_t mibs[512]; -}; +typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, unsigned long); -struct request_sock; +typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -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 *); -}; +typedef void (*btf_trace_ext4_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -struct saved_syn; +typedef void (*btf_trace_ext4_ext_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t); -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; -}; +typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int); -struct saved_syn { - u32 mac_hdrlen; - u32 network_hdrlen; - u32 tcp_hdrlen; - u8 data[0]; -}; +typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, unsigned short); -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 partial_cluster; -struct nlm_lockowner; +typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); -struct nfs_lock_info { - u32 state; - struct nlm_lockowner *owner; - struct list_head list; +struct partial_cluster { + ext4_fsblk_t pclu; + ext4_lblk_t lblk; + enum { + initial = 0, + tofree = 1, + nofree = 2, + } state; }; -struct nfs4_lock_state; +typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *); -struct nfs4_lock_info { - struct nfs4_lock_state *owner; -}; +typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); -struct file_lock_operations; +typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int); -struct lock_manager_operations; +typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16); -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; -}; +typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *); -struct file_lock_operations { - void (*fl_copy_lock)(struct file_lock *, struct file_lock *); - void (*fl_release_private)(struct file_lock *); -}; +typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *); -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)(); -}; +typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t); -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; -}; +typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t); -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 void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *); -typedef struct nfs4_stateid_struct nfs4_stateid; +typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t); -struct nfs4_state; +typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int); -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; -}; +typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int); -struct nfs4_state_owner; +typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int); -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; -}; +typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int); -struct nfs_server; +typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); -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; -}; +typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t); -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, -}; +typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int); -struct nfs_fsid { - uint64_t major; - uint64_t minor; -}; +typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool); -struct nfs_auth_info { - unsigned int flavor_len; - rpc_authflavor_t flavors[12]; -}; +typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64); -struct nfs_client; +typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); -struct nlm_host; +typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64); -struct nfs_iostats; +struct ext4_fsmap; -struct pnfs_layoutdriver_type; +typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *); -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 gxasize; - unsigned int sxasize; - unsigned int lxasize; - 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; - int s_sysfs_id; - __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; - struct kobject kobj; +struct ext4_fsmap { + struct list_head fmr_list; + dev_t fmr_device; + uint32_t fmr_flags; + uint64_t fmr_physical; + uint64_t fmr_owner; + uint64_t fmr_length; }; -typedef struct { - char data[8]; -} nfs4_verifier; - -struct nfs_rpc_ops; +typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); -struct nfs_subversion; +typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *); -struct idmap; +typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, unsigned long); -struct nfs4_minor_version_ops; +typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); -struct nfs4_slot_table; +typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); -struct nfs4_session; +typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t); -struct nfs41_server_owner; +typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); -struct nfs41_server_scope; +typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int); -struct nfs41_impl_id; +typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *, tid_t); -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 xprtsec_parms cl_xprtsec; - 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; - wait_queue_head_t cl_lock_waitq; - char cl_ipaddr[48]; - struct net *cl_net; - struct list_head pending_cb_stateids; -}; +typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int, tid_t); -struct nlmclnt_operations; +typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *); -struct nfs_fh; +typedef void (*btf_trace_ext4_fc_track_create)(void *, handle_t *, struct inode *, struct dentry *, int); -struct nfs_fsinfo; +typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int); -struct nfs_fattr; +typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int); -struct nfs_access_entry; +typedef void (*btf_trace_ext4_fc_track_inode)(void *, handle_t *, struct inode *, int); -struct nfs_unlinkdata; +typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long, long, int); -struct nfs_renamedata; +typedef void (*btf_trace_ext4_fc_cleanup)(void *, journal_t *, int, tid_t); -struct nfs_readdir_arg; +typedef void (*btf_trace_ext4_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int); -struct nfs_readdir_res; +typedef void (*exitcall_t)(); -struct nfs_fsstat; +struct ext4_lazy_init { + unsigned long li_state; + struct list_head li_request_list; + struct mutex li_list_mtx; +}; -struct nfs_pathconf; +struct ext4_err_translation { + int code; + int errno; +}; -struct nfs_entry; +struct mount_opts { + int token; + int mount_opt; + int flags; +}; -struct nfs_pgio_header; +struct constant_table { + const char *name; + int value; +}; -struct nfs_commit_data; +enum { + _DQUOT_USAGE_ENABLED = 0, + _DQUOT_LIMITS_ENABLED = 1, + _DQUOT_SUSPENDED = 2, + _DQUOT_STATE_FLAGS = 3, +}; -struct nfs_open_context; +enum { + ES_WRITTEN_B = 0, + ES_UNWRITTEN_B = 1, + ES_DELAYED_B = 2, + ES_HOLE_B = 3, + ES_REFERENCED_B = 4, + ES_FLAGS = 5, +}; -struct nfs_client_initdata; +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 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 *); +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, }; -struct nlmclnt_operations { - void (*nlmclnt_alloc_call)(void *); - bool (*nlmclnt_unlock_prepare)(struct rpc_task *, void *); - void (*nlmclnt_release_call)(void *); +enum stat_group { + STAT_READ = 0, + STAT_WRITE = 1, + STAT_DISCARD = 2, + STAT_FLUSH = 3, + NR_STAT_GROUPS = 4, }; -struct nfs_fh { - unsigned short size; - unsigned char data[128]; +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 = 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 = 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 = 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, }; -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; +enum { + SB_UNFROZEN = 0, + SB_FREEZE_WRITE = 1, + SB_FREEZE_PAGEFAULT = 2, + SB_FREEZE_FS = 3, + SB_FREEZE_COMPLETE = 4, }; -struct nfs4_string; +enum tk_offsets { + TK_OFFS_REAL = 0, + TK_OFFS_BOOT = 1, + TK_OFFS_TAI = 2, + TK_OFFS_MAX = 3, +}; -struct nfs4_threshold; +enum { + I_DATA_SEM_NORMAL = 0, + I_DATA_SEM_OTHER = 1, + I_DATA_SEM_QUOTA = 2, + I_DATA_SEM_EA = 3, +}; -struct nfs4_label; +enum { + IOPRIO_CLASS_NONE = 0, + IOPRIO_CLASS_RT = 1, + IOPRIO_CLASS_BE = 2, + IOPRIO_CLASS_IDLE = 3, + IOPRIO_CLASS_INVALID = 7, +}; -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; +enum { + IOPRIO_HINT_NONE = 0, + IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1, + IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2, + IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3, + IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4, + IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5, + IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6, + IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7, }; -struct nfs4_string { - unsigned int len; - char *data; +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_UNBOUND_MAX_ACTIVE = 512, + WQ_DFL_ACTIVE = 256, }; -struct nfs4_threshold { - __u32 bm; - __u32 l_type; - __u64 rd_sz; - __u64 wr_sz; - __u64 rd_io_sz; - __u64 wr_io_sz; +enum ext4_journal_trigger_type { + EXT4_JTR_ORPHAN_FILE = 0, + EXT4_JTR_NONE = 1, }; -struct nfs4_label { - uint32_t lfs; - uint32_t pi; - u32 len; - char *label; +enum { + DUMP_PREFIX_NONE = 0, + DUMP_PREFIX_ADDRESS = 1, + DUMP_PREFIX_OFFSET = 2, }; -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; +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, }; -struct nfs4_slot; +enum { + EXT4_MF_MNTDIR_SAMPLED = 0, + EXT4_MF_FC_INELIGIBLE = 1, +}; -struct nfs4_sequence_args { - struct nfs4_slot *sa_slot; - u8 sa_cache_this: 1; - u8 sa_privileged: 1; +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 nfs_removeargs { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - struct qstr name; +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 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 trace_event_raw_ext4_request_inode { + struct trace_entry ent; + dev_t dev; + ino_t dir; + __u16 mode; + char __data[0]; }; -struct nfs4_change_info { - u32 atomic; - u64 before; - u64 after; +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 nfs_removeres { - struct nfs4_sequence_res seq_res; - struct nfs_server *server; - struct nfs_fattr *dir_attr; - struct nfs4_change_info cinfo; +struct trace_event_raw_ext4_evict_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int nlink; + char __data[0]; }; -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 trace_event_raw_ext4_drop_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int drop; + char __data[0]; }; -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 trace_event_raw_ext4_nfs_commit_metadata { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; }; -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 trace_event_raw_ext4_mark_inode_dirty { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long ip; + char __data[0]; }; -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 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 nfs_readdir_arg { - struct dentry *dentry; - const struct cred *cred; - __be32 *verf; - u64 cookie; - struct page **pages; - unsigned int page_len; - bool plus; +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 nfs_readdir_res { - __be32 *verf; +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 nfs_fsstat { - struct nfs_fattr *fattr; - __u64 tbytes; - __u64 fbytes; - __u64 abytes; - __u64 tfiles; - __u64 ffiles; - __u64 afiles; +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 nfs_pathconf { - struct nfs_fattr *fattr; - __u32 max_link; - __u32 max_namelen; +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 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 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 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 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 nfs_write_verifier { - char data[8]; +struct trace_event_raw_ext4__folio_op { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long index; + char __data[0]; }; -enum nfs3_stable_how { - NFS_UNSTABLE = 0, - NFS_DATA_SYNC = 1, - NFS_FILE_SYNC = 2, - NFS_INVALID_STABLE_HOW = -1, +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 nfs_writeverf { - struct nfs_write_verifier verifier; - enum nfs3_stable_how committed; +struct trace_event_raw_ext4_discard_blocks { + struct trace_entry ent; + dev_t dev; + __u64 blk; + __u64 count; + char __data[0]; }; -struct nfs_lock_context; +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 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; +struct trace_event_raw_ext4_mb_release_inode_pa { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 block; __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; - }; - }; + char __data[0]; }; -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; - void *scratch; - }; - struct { - struct nfs_writeverf *verf; - const struct nfs_server *server; - }; - }; +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 nfs_page_array { - struct page **pagevec; - unsigned int npages; - struct page *page_array[8]; +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 nfs_page; +struct trace_event_raw_ext4_mb_discard_preallocations { + struct trace_entry ent; + dev_t dev; + int needed; + char __data[0]; +}; -struct pnfs_layout_segment; +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 nfs_pgio_completion_ops; +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 nfs_rw_ops; +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 nfs_io_completion; +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 nfs_direct_req; +struct trace_event_raw_ext4_sync_file_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + char __data[0]; +}; -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 trace_event_raw_ext4_sync_fs { + struct trace_entry ent; + dev_t dev; + int wait; + char __data[0]; }; -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 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 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 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 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 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 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 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 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 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 auth_cred { - const struct cred *cred; - const char *principal; +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 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 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 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 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 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 trace_event_raw_ext4__bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + char __data[0]; }; -struct nfs_mds_commit_info { - atomic_t rpcs_out; - atomic_long_t ncommit; - struct list_head list; +struct trace_event_raw_ext4_read_block_bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + bool prefetch; + char __data[0]; }; -struct pnfs_commit_ops; - -struct pnfs_ds_commit_info { - struct list_head commits; - unsigned int nwritten; - unsigned int ncommitting; - const struct pnfs_commit_ops *ops; +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 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 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 nfs_commit_info; - -struct pnfs_commit_ops { - void (*setup_ds_info)(struct pnfs_ds_commit_info *, struct pnfs_layout_segment *); - void (*release_ds_info)(struct pnfs_ds_commit_info *, struct inode *); - int (*commit_pagelist)(struct inode *, struct list_head *, int, struct nfs_commit_info *); - void (*mark_request_commit)(struct nfs_page *, struct pnfs_layout_segment *, struct nfs_commit_info *, u32); - void (*clear_request_commit)(struct nfs_page *, struct nfs_commit_info *); - int (*scan_commit_lists)(struct nfs_commit_info *, int); - void (*recover_commit_reqs)(struct list_head *, struct nfs_commit_info *); - struct nfs_page * (*search_commit_reqs)(struct nfs_commit_info *, struct folio *); +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 nfs_commitargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - __u64 offset; - __u32 count; - const u32 *bitmask; +struct trace_event_raw_ext4_unlink_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + char __data[0]; }; -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 trace_event_raw_ext4__truncate { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 blocks; + char __data[0]; }; -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 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 nfs_commit_completion_ops { - void (*completion)(struct nfs_commit_data *); - void (*resched_write)(struct nfs_commit_info *, struct nfs_page *); +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 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 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 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 xprtsec_parms xprtsec; +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 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 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 nfs_seqid { - struct nfs_seqid_counter *sequence; - struct list_head list; - struct rpc_task *task; +struct trace_event_raw_ext4_load_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; }; -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 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 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 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 nfs4_fs_locations; +struct trace_event_raw_ext4_journal_start_reserved { + struct trace_entry ent; + dev_t dev; + unsigned long ip; + int blocks; + char __data[0]; +}; -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 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 nfs4_pathname { - unsigned int ncomponents; - struct nfs4_string components[512]; +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 nfs4_fs_location { - unsigned int nservers; - struct nfs4_string servers[10]; - struct nfs4_pathname rootpath; +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 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 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 nfs41_server_owner { - uint64_t minor_id; - uint32_t major_id_sz; - char major_id[1024]; +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 nfs41_server_scope { - uint32_t server_scope_sz; - char server_scope[1024]; +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 nfstime4 { - u64 seconds; - u32 nseconds; +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 nfs41_impl_id { - char domain[1025]; - char name[1025]; - struct nfstime4 date; +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 nfs_iostats { - unsigned long long bytes[8]; - unsigned long events[27]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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 file_lock_context { - spinlock_t flc_lock; - struct list_head flc_flock; - struct list_head flc_posix; - struct list_head flc_lease; +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 rpc_auth_create_args { - rpc_authflavor_t pseudoflavor; - const char *target_name; +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 rpcsec_gss_oid { - unsigned int len; - u8 data[32]; +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 rpcsec_gss_info { - struct rpcsec_gss_oid oid; - u32 qop; - u32 service; +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 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 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 rpc_version; +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 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 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 rpc_version { - u32 number; - unsigned int nrprocs; - const struct rpc_procinfo *procs; - unsigned int *counts; +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 rpc_sysfs_client { - struct kobject kobject; - struct net *net; - struct rpc_clnt *clnt; - struct rpc_xprt_switch *xprt_switch; +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 rpc_sysfs_xprt_switch; +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 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 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 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 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 xprt_create; +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 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 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 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; +struct trace_event_raw_ext4_shutdown { + struct trace_entry ent; + dev_t dev; unsigned int flags; - struct xprtsec_parms xprtsec; + char __data[0]; }; -enum nfs3_ftype { - NF3NON = 0, - NF3REG = 1, - NF3DIR = 2, - NF3BLK = 3, - NF3CHR = 4, - NF3LNK = 5, - NF3SOCK = 6, - NF3FIFO = 7, - NF3BAD = 8, +struct trace_event_raw_ext4_error { + struct trace_entry ent; + dev_t dev; + const char *function; + unsigned int line; + char __data[0]; }; -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, +struct trace_event_raw_ext4_prefetch_bitmaps { + struct trace_entry ent; + dev_t dev; + __u32 group; + __u32 next; + __u32 ios; + char __data[0]; }; -enum nfs3_createmode { - NFS3_CREATE_UNCHECKED = 0, - NFS3_CREATE_GUARDED = 1, - NFS3_CREATE_EXCLUSIVE = 2, +struct trace_event_raw_ext4_lazy_itable_init { + struct trace_entry ent; + dev_t dev; + __u32 group; + char __data[0]; }; -struct nfs3_sattrargs { - struct nfs_fh *fh; - struct iattr *sattr; - unsigned int guard; - struct timespec64 guardtime; +struct trace_event_raw_ext4_fc_replay_scan { + struct trace_entry ent; + dev_t dev; + int error; + int off; + char __data[0]; }; -struct nfs3_accessargs { - struct nfs_fh *fh; - __u32 access; +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 nfs3_createargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; - struct iattr *sattr; - enum nfs3_createmode createmode; - __be32 verifier[2]; +struct trace_event_raw_ext4_fc_commit_start { + struct trace_entry ent; + dev_t dev; + tid_t tid; + char __data[0]; }; -struct nfs3_diropres { - struct nfs_fattr *dir_attr; - struct nfs_fh *fh; - struct nfs_fattr *fattr; +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 nfs3_symlinkargs { - struct nfs_fh *fromfh; - const char *fromname; - unsigned int fromlen; - struct page **pages; - unsigned int pathlen; - struct iattr *sattr; +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 nfs3_mknodargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; - enum nfs3_ftype type; - struct iattr *sattr; - dev_t rdev; +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 nfs3_readdirargs { - struct nfs_fh *fh; - __u64 cookie; - __be32 verf[2]; - bool plus; - unsigned int count; - struct page **pages; +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 nfs3_readdirres { - struct nfs_fattr *dir_attr; - __be32 *verf; - bool plus; +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 nfs3_diropargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; +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 nfs3_accessres { - struct nfs_fattr *fattr; - __u32 access; +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 nfs3_readlinkargs { - struct nfs_fh *fh; - unsigned int pgbase; - unsigned int pglen; - struct page **pages; +struct ext4_journal_cb_entry { + struct list_head jce_list; + void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); }; -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 shash_desc { + struct crypto_shash *tfm; + void *__ctx[0]; }; -struct inet_peer_base { - struct rb_root rb_root; - seqlock_t lock; - int total; +struct ext4_fs_context { + char *s_qf_names[3]; + struct fscrypt_dummy_policy dummy_enc_policy; + int s_jquota_fmt; + unsigned short qname_spec; + unsigned long vals_s_flags; + unsigned long mask_s_flags; + unsigned long journal_devnum; + unsigned long s_commit_interval; + unsigned long s_stripe; + unsigned int s_inode_readahead_blks; + unsigned int s_want_extra_isize; + unsigned int s_li_wait_mult; + unsigned int s_max_dir_size_kb; + unsigned int journal_ioprio; + unsigned int vals_s_mount_opt; + unsigned int mask_s_mount_opt; + unsigned int vals_s_mount_opt2; + unsigned int mask_s_mount_opt2; + unsigned int opt_flags; + unsigned int spec; + u32 s_max_batch_time; + u32 s_min_batch_time; + kuid_t s_resuid; + kgid_t s_resgid; + ext4_fsblk_t s_sb_block; }; -struct 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 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 nd_opt_hdr { - __u8 nd_opt_type; - __u8 nd_opt_len; -}; +typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); -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 trace_event_data_offsets_ext4_other_inode_update_time {}; -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 trace_event_data_offsets_ext4_free_inode {}; -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 trace_event_data_offsets_ext4_request_inode {}; -struct ip_sf_list; +struct trace_event_data_offsets_ext4_allocate_inode {}; -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 trace_event_data_offsets_ext4_evict_inode {}; -struct nlm_lockowner { - struct list_head list; - refcount_t count; - struct nlm_host *host; - fl_owner_t owner; - uint32_t pid; -}; +struct trace_event_data_offsets_ext4_drop_inode {}; -struct nsm_handle; +struct trace_event_data_offsets_ext4_nfs_commit_metadata {}; -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 trace_event_data_offsets_ext4_mark_inode_dirty {}; -struct svc_xprt_class; +struct trace_event_data_offsets_ext4_begin_ordered_truncate {}; -struct svc_xprt_ops; +struct trace_event_data_offsets_ext4__write_begin {}; -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 trace_event_data_offsets_ext4__write_end {}; -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 trace_event_data_offsets_ext4_writepages {}; -struct svc_rqst; +struct trace_event_data_offsets_ext4_da_write_pages {}; -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_ctxt)(struct svc_xprt *, void *); - void (*xpo_detach)(struct svc_xprt *); - void (*xpo_free)(struct svc_xprt *); - void (*xpo_kill_temp_xprt)(struct svc_xprt *); - void (*xpo_handshake)(struct svc_xprt *); -}; +struct trace_event_data_offsets_ext4_da_write_pages_extent {}; -struct svc_program; +struct trace_event_data_offsets_ext4_writepages_result {}; -struct svc_stat; +struct trace_event_data_offsets_ext4__folio_op {}; -struct svc_pool; +struct trace_event_data_offsets_ext4_invalidate_folio_op {}; -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 list_head sv_cb_list; - spinlock_t sv_cb_lock; - wait_queue_head_t sv_cb_waitq; - bool sv_bc_enabled; -}; +struct trace_event_data_offsets_ext4_discard_blocks {}; -struct svc_version; +struct trace_event_data_offsets_ext4__mb_new_pa {}; -struct svc_process_info; +struct trace_event_data_offsets_ext4_mb_release_inode_pa {}; -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 trace_event_data_offsets_ext4_mb_release_group_pa {}; -struct svc_procedure; +struct trace_event_data_offsets_ext4_discard_preallocations {}; -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 trace_event_data_offsets_ext4_mb_discard_preallocations {}; -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 trace_event_data_offsets_ext4_request_blocks {}; -struct gss_api_mech; +struct trace_event_data_offsets_ext4_allocate_blocks {}; -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 trace_event_data_offsets_ext4_free_blocks {}; -struct folio_batch { - unsigned char nr; - bool percpu_pvec_drained; - struct folio *folios[15]; -}; +struct trace_event_data_offsets_ext4_sync_file_enter {}; -struct cache_deferred_req; +struct trace_event_data_offsets_ext4_sync_file_exit {}; -struct cache_req { - struct cache_deferred_req * (*defer)(struct cache_req *); - unsigned long thread_wait; -}; +struct trace_event_data_offsets_ext4_sync_fs {}; -struct svc_cacherep; +struct trace_event_data_offsets_ext4_alloc_da_blocks {}; -struct auth_ops; +struct trace_event_data_offsets_ext4_mballoc_alloc {}; -struct svc_deferred_req; +struct trace_event_data_offsets_ext4_mballoc_prealloc {}; -struct auth_domain; +struct trace_event_data_offsets_ext4__mballoc {}; -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 folio_batch rq_fbatch; - 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 trace_event_data_offsets_ext4_forget {}; -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 trace_event_data_offsets_ext4_da_update_reserve_space {}; -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 trace_event_data_offsets_ext4_da_reserve_space {}; -struct auth_domain { - struct kref ref; - struct hlist_node hash; - char *name; - struct auth_ops *flavour; - struct callback_head callback_head; -}; +struct trace_event_data_offsets_ext4_da_release_space {}; -struct gss_api_ops; +struct trace_event_data_offsets_ext4__bitmap_load {}; -struct pf_desc; +struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; -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 trace_event_data_offsets_ext4__fallocate_mode {}; -struct gss_ctx; +struct trace_event_data_offsets_ext4_fallocate_exit {}; -struct xdr_netobj; +struct trace_event_data_offsets_ext4_unlink_enter {}; -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 trace_event_data_offsets_ext4_unlink_exit {}; -struct gss_ctx { - struct gss_api_mech *mech_type; - void *internal_ctx_id; - unsigned int slack; - unsigned int align; -}; +struct trace_event_data_offsets_ext4__truncate {}; -struct xdr_netobj { - unsigned int len; - u8 *data; -}; +struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {}; -struct pf_desc { - u32 pseudoflavor; - u32 qop; - u32 service; - char *name; - char *auth_domain_name; - struct auth_domain *domain; - bool datatouch; -}; +struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {}; -struct cache_head; +struct trace_event_data_offsets_ext4__map_blocks_enter {}; -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 trace_event_data_offsets_ext4__map_blocks_exit {}; -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 trace_event_data_offsets_ext4_ext_load_extent {}; -struct cache_head { - struct hlist_node cache_list; - time64_t expiry_time; - time64_t last_refresh; - struct kref ref; - unsigned long flags; -}; +struct trace_event_data_offsets_ext4_load_inode {}; -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 trace_event_data_offsets_ext4_journal_start_sb {}; -struct svc_process_info { - union { - int (*dispatch)(struct svc_rqst *); - struct { - unsigned int lovers; - unsigned int hivers; - } mismatch; - }; -}; +struct trace_event_data_offsets_ext4_journal_start_inode {}; -struct nsm_private { - unsigned char data[16]; -}; +struct trace_event_data_offsets_ext4_journal_start_reserved {}; -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 trace_event_data_offsets_ext4__trim {}; -typedef void (*exitcall_t)(); +struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {}; -struct nlmsvc_binding { - __be32 (*fopen)(struct svc_rqst *, struct nfs_fh *, struct file **, int); - void (*fclose)(struct file *); -}; +struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; -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; -}; +struct trace_event_data_offsets_ext4_ext_show_extent {}; -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 trace_event_data_offsets_ext4_remove_blocks {}; -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 trace_event_data_offsets_ext4_ext_rm_leaf {}; -enum rpc_auth_stat { - RPC_AUTH_OK = 0, - RPC_AUTH_BADCRED = 1, - RPC_AUTH_REJECTEDCRED = 2, - RPC_AUTH_BADVERF = 3, - RPC_AUTH_REJECTEDVERF = 4, - RPC_AUTH_TOOWEAK = 5, - RPCSEC_GSS_CREDPROBLEM = 13, - RPCSEC_GSS_CTXPROBLEM = 14, -}; +struct trace_event_data_offsets_ext4_ext_rm_idx {}; -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 trace_event_data_offsets_ext4_ext_remove_space {}; -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 trace_event_data_offsets_ext4_ext_remove_space_done {}; -struct lock_manager { - struct list_head list; - bool block_opens; -}; +struct trace_event_data_offsets_ext4__es_extent {}; -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; -}; +struct trace_event_data_offsets_ext4_es_remove_extent {}; -struct in_addr { - __be32 s_addr; -}; +struct trace_event_data_offsets_ext4_es_find_extent_range_enter {}; -struct sockaddr_in { - __kernel_sa_family_t sin_family; - __be16 sin_port; - struct in_addr sin_addr; - unsigned char __pad[8]; -}; +struct trace_event_data_offsets_ext4_es_find_extent_range_exit {}; -struct sockaddr_in6 { - unsigned short sin6_family; - __be16 sin6_port; - __be32 sin6_flowinfo; - struct in6_addr sin6_addr; - __u32 sin6_scope_id; -}; +struct trace_event_data_offsets_ext4_es_lookup_extent_enter {}; -struct pstore_record; +struct trace_event_data_offsets_ext4_es_lookup_extent_exit {}; -struct pstore_info { - struct module *owner; - const char *name; - spinlock_t buf_lock; - char *buf; - size_t bufsize; - struct mutex read_mutex; - int flags; - int max_reason; - void *data; - int (*open)(struct pstore_info *); - int (*close)(struct pstore_info *); - ssize_t (*read)(struct pstore_record *); - int (*write)(struct pstore_record *); - int (*write_user)(struct pstore_record *, const char __attribute__((btf_type_tag("user"))) *); - int (*erase)(struct pstore_record *); -}; +struct trace_event_data_offsets_ext4__es_shrink_enter {}; -enum pstore_type_id { - PSTORE_TYPE_DMESG = 0, - PSTORE_TYPE_MCE = 1, - PSTORE_TYPE_CONSOLE = 2, - PSTORE_TYPE_FTRACE = 3, - PSTORE_TYPE_PPC_RTAS = 4, - PSTORE_TYPE_PPC_OF = 5, - PSTORE_TYPE_PPC_COMMON = 6, - PSTORE_TYPE_PMSG = 7, - PSTORE_TYPE_PPC_OPAL = 8, - PSTORE_TYPE_MAX = 9, -}; +struct trace_event_data_offsets_ext4_es_shrink_scan_exit {}; -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 trace_event_data_offsets_ext4_collapse_range {}; -struct pstore_record { - struct pstore_info *psi; - enum pstore_type_id type; - u64 id; - struct timespec64 time; - char *buf; - ssize_t size; - ssize_t ecc_notice_size; - void *priv; - int count; - enum kmsg_dump_reason reason; - unsigned int part; - bool compressed; -}; +struct trace_event_data_offsets_ext4_insert_range {}; -struct pstore_zbackend { - int (*zbufsize)(size_t); - const char *name; -}; +struct trace_event_data_offsets_ext4_es_shrink {}; -struct crypto_comp { - struct crypto_tfm base; -}; +struct trace_event_data_offsets_ext4_es_insert_delayed_block {}; -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_data_offsets_ext4_fsmap_class {}; -struct kmsg_dump_iter { - u64 cur_seq; - u64 next_seq; -}; +struct trace_event_data_offsets_ext4_getfsmap_class {}; -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 trace_event_data_offsets_ext4_shutdown {}; -struct key_user { - struct rb_node node; - struct mutex cons_lock; - spinlock_t lock; - refcount_t usage; - atomic_t nkeys; - atomic_t nikeys; - kuid_t uid; - int qnkeys; - int qnbytes; -}; +struct trace_event_data_offsets_ext4_error {}; -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 trace_event_data_offsets_ext4_prefetch_bitmaps {}; -enum kernel_pkey_operation { - kernel_pkey_encrypt = 0, - kernel_pkey_decrypt = 1, - kernel_pkey_sign = 2, - kernel_pkey_verify = 3, -}; +struct trace_event_data_offsets_ext4_lazy_itable_init {}; -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 trace_event_data_offsets_ext4_fc_replay_scan {}; -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 trace_event_data_offsets_ext4_fc_replay {}; -enum key_state { - KEY_IS_UNINSTANTIATED = 0, - KEY_IS_POSITIVE = 1, -}; +struct trace_event_data_offsets_ext4_fc_commit_start {}; -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 trace_event_data_offsets_ext4_fc_commit_stop {}; -struct __key_reference_with_attributes; +struct trace_event_data_offsets_ext4_fc_stats {}; -typedef struct __key_reference_with_attributes *key_ref_t; +struct trace_event_data_offsets_ext4_fc_track_dentry {}; -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 trace_event_data_offsets_ext4_fc_track_inode {}; -struct scomp_scratch { - spinlock_t lock; - void *src; - void *dst; -}; +struct trace_event_data_offsets_ext4_fc_track_range {}; -struct crypto_template; +struct trace_event_data_offsets_ext4_fc_cleanup {}; -struct crypto_spawn; +struct trace_event_data_offsets_ext4_update_sb {}; -struct crypto_instance { - struct crypto_alg alg; - struct crypto_template *tmpl; - union { - struct hlist_node list; - struct crypto_spawn *spawns; - }; - void *__ctx[0]; +struct va_format { + const char *fmt; + va_list *va; }; -struct rtattr; +struct nlm_lockowner; -struct crypto_template { +struct nfs_lock_info { + u32 state; + struct nlm_lockowner *owner; struct list_head list; - struct hlist_head instances; - struct module *module; - int (*create)(struct crypto_template *, struct rtattr **); - char name[128]; }; -struct crypto_spawn { - struct list_head list; - struct crypto_alg *alg; - union { - struct crypto_instance *inst; - struct crypto_spawn *next; - }; - const struct crypto_type *frontend; - u32 mask; - bool dead; - bool registered; -}; +struct nfs4_lock_state; -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 nfs4_lock_info { + struct nfs4_lock_state *owner; }; -struct acomp_req; +struct file_lock_operations; -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 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; }; -typedef void (*crypto_completion_t)(void *, int); +struct file_lock_operations { + void (*fl_copy_lock)(struct file_lock *, struct file_lock *); + void (*fl_release_private)(struct file_lock *); +}; -struct crypto_async_request { - struct list_head list; - crypto_completion_t complete; - void *data; - struct crypto_tfm *tfm; - u32 flags; +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 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 rpc_timer { + struct list_head list; + unsigned long expires; + struct delayed_work dwork; }; -struct comp_alg_common { - struct crypto_alg base; +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 crypto_scomp; +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 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 nfs4_stateid_struct { union { + char data[16]; struct { - struct crypto_alg base; + __be32 seqid; + char other[12]; }; - struct comp_alg_common calg; }; + 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; }; -struct crypto_scomp { - struct crypto_tfm base; -}; +typedef struct nfs4_stateid_struct nfs4_stateid; -struct crypto_report_comp { - char type[64]; -}; +struct nfs4_state; -struct blk_mq_queue_map { - unsigned int *mq_map; - unsigned int nr_queues; - unsigned int queue_offset; +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; }; -enum mq_rq_state { - MQ_RQ_IDLE = 0, - MQ_RQ_IN_FLIGHT = 1, - MQ_RQ_COMPLETE = 2, +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; }; -enum rq_end_io_ret { - RQ_END_IO_NONE = 0, - RQ_END_IO_FREE = 1, +struct nfs_server; + +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; }; -enum elv_merge { - ELEVATOR_NO_MERGE = 0, - ELEVATOR_FRONT_MERGE = 1, - ELEVATOR_BACK_MERGE = 2, - ELEVATOR_DISCARD_MERGE = 3, +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, }; -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, +struct nfs_fsid { + uint64_t major; + uint64_t minor; }; -enum hctx_type { - HCTX_TYPE_DEFAULT = 0, - HCTX_TYPE_READ = 1, - HCTX_TYPE_POLL = 2, - HCTX_MAX_TYPES = 3, +typedef u32 rpc_authflavor_t; + +struct nfs_auth_info { + unsigned int flavor_len; + rpc_authflavor_t flavors[12]; }; -enum { - BLK_MQ_NO_TAG = 4294967295, - BLK_MQ_TAG_MIN = 1, - BLK_MQ_TAG_MAX = 4294967294, +struct ida { + struct xarray xa; }; -typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t); +struct nfs_client; -struct __call_single_data { - struct __call_single_node node; - smp_call_func_t func; - void *info; -}; +struct rpc_clnt; -typedef __u32 req_flags_t; +struct nlm_host; -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 start_time_ns; - u64 io_start_time_ns; - unsigned short stats_sectors; - unsigned short nr_phys_segments; - unsigned short nr_integrity_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; - }; - 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 nfs_iostats; -struct elevator_type; +struct pnfs_layoutdriver_type; -struct elevator_queue { - struct elevator_type *type; - void *elevator_data; +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 gxasize; + unsigned int sxasize; + unsigned int lxasize; + 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; + int s_sysfs_id; + __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 delegation_gen; + 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; struct kobject kobj; - struct mutex sysfs_lock; - unsigned long flags; - struct hlist_head hash[64]; }; -typedef unsigned int blk_insert_t; - -struct blk_mq_alloc_data; +enum xprtsec_policies { + RPC_XPRTSEC_NONE = 0, + RPC_XPRTSEC_TLS_ANON = 1, + RPC_XPRTSEC_TLS_X509 = 2, +}; -struct elevator_mq_ops { - int (*init_sched)(struct request_queue *, struct elevator_type *); - void (*exit_sched)(struct elevator_queue *); - int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int); - void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int); - void (*depth_updated)(struct blk_mq_hw_ctx *); - bool (*allow_merge)(struct request_queue *, struct request *, struct bio *); - bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int); - int (*request_merge)(struct request_queue *, struct request **, struct bio *); - void (*request_merged)(struct request_queue *, struct request *, enum elv_merge); - void (*requests_merged)(struct request_queue *, struct request *, struct request *); - void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *); - void (*prepare_request)(struct request *); - void (*finish_request)(struct request *); - void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, blk_insert_t); - struct request * (*dispatch_request)(struct blk_mq_hw_ctx *); - bool (*has_work)(struct blk_mq_hw_ctx *); - void (*completed_request)(struct request *, u64); - void (*requeue_request)(struct request *); - struct request * (*former_request)(struct request_queue *, struct request *); - struct request * (*next_request)(struct request_queue *, struct request *); - void (*init_icq)(struct io_cq *); - void (*exit_icq)(struct io_cq *); +struct xprtsec_parms { + enum xprtsec_policies policy; + key_serial_t cert_serial; + key_serial_t privkey_serial; }; -struct elv_fs_entry; +typedef struct { + char data[8]; +} nfs4_verifier; -struct blk_mq_debugfs_attr; +struct nfs_rpc_ops; -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 nfs_subversion; -struct sbitmap_word; +struct idmap; -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 nfs4_minor_version_ops; -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 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; -}; +struct nfs4_slot_table; -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 nfs4_session; -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 nfs41_server_owner; -struct blk_mq_ctxs { - struct kobject kobj; - struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx; -}; +struct nfs41_server_scope; -struct sbq_wait_state; +struct nfs41_impl_id; -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 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 xprtsec_parms cl_xprtsec; + 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; + wait_queue_head_t cl_lock_waitq; + char cl_ipaddr[48]; + struct net *cl_net; + struct list_head pending_cb_stateids; }; -struct blk_mq_tags { - unsigned int nr_tags; - unsigned int nr_reserved_tags; - unsigned int active_queues; - struct sbitmap_queue bitmap_tags; - struct sbitmap_queue breserved_tags; - struct request **rqs; - struct request **static_rqs; - struct list_head page_list; - spinlock_t lock; -}; +struct rpc_xprt_switch; -struct sbq_wait_state { - wait_queue_head_t wait; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; +struct rpc_xprt; -typedef __u32 blk_mq_req_flags_t; +struct rpc_xprt_iter_ops; -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 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 elv_fs_entry { - struct attribute attr; - ssize_t (*show)(struct elevator_queue *, char *); - ssize_t (*store)(struct elevator_queue *, const char *, size_t); +struct rpc_pipe_dir_head { + struct list_head pdh_entries; + struct dentry *pdh_dentry; }; -struct blk_mq_debugfs_attr { - const char *name; - umode_t mode; - int (*show)(void *, struct seq_file *); - ssize_t (*write)(void *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - const struct seq_operations *seq_ops; +struct rpc_rtt { + unsigned long timeo; + unsigned long srtt[5]; + unsigned long sdrtt[5]; + int ntimeouts[5]; }; -struct blk_mq_queue_data { - struct request *rq; - bool last; +struct rpc_timeout { + unsigned long to_initval; + unsigned long to_maxval; + unsigned long to_increment; + unsigned int to_retries; + unsigned char to_exponential; }; -struct blk_mq_tag_set { - const struct blk_mq_ops *ops; - struct blk_mq_queue_map map[3]; - unsigned int nr_maps; - unsigned int nr_hw_queues; - unsigned int queue_depth; - unsigned int reserved_tags; - unsigned int cmd_size; - int numa_node; - unsigned int timeout; - unsigned int flags; - void *driver_data; - struct blk_mq_tags **tags; - struct blk_mq_tags *shared_tags; - struct mutex tag_list_lock; - struct list_head tag_list; - struct srcu_struct *srcu; -}; +struct rpc_procinfo; -struct rchan_callbacks; +struct rpc_auth; -struct rchan_buf; +struct rpc_stat; -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 rpc_iostats; -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 rpc_program; -struct rchan_buf { - void *start; - void *data; - size_t offset; - size_t subbufs_produced; - size_t subbufs_consumed; - struct rchan *chan; - wait_queue_head_t read_wait; - struct irq_work wakeup_work; - struct dentry *dentry; - struct kref kref; - struct page **page_array; - unsigned int page_count; - unsigned int finalized; - size_t *padding; - size_t prev_padding; - size_t bytes_consumed; - size_t early_bytes; - unsigned int cpu; - long: 64; - long: 64; +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; + unsigned int cl_shutdown: 1; + struct xprtsec_parms cl_xprtsec; + 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 super_block *pipefs_sb; }; -typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); +struct rpc_xprt_ops; -struct bd_holder_disk { - struct list_head list; - struct kobject *holder_dir; - int refcnt; -}; +struct rpc_task; -enum task_work_notify_mode { - TWA_NONE = 0, - TWA_RESUME = 1, - TWA_SIGNAL = 2, - TWA_SIGNAL_NO_IPI = 3, -}; +struct svc_xprt; -struct io_ring_ctx; +struct svc_serv; -struct io_wq; +struct xprt_class; -struct io_uring_task { - int cached_refs; - const struct io_ring_ctx *last; - struct io_wq *io_wq; - struct file *registered_rings[16]; - struct xarray xa; - struct wait_queue_head wait; - atomic_t in_cancel; - atomic_t inflight_tracked; - struct percpu_counter inflight; - long: 64; - long: 64; +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; + struct xprtsec_parms xprtsec; + 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 svc_serv *bc_serv; + unsigned int bc_alloc_max; + unsigned int bc_alloc_count; + atomic_t bc_slot_count; + spinlock_t bc_pa_lock; + struct list_head bc_pa_list; + struct rb_root recv_queue; struct { - struct llist_head task_list; - struct callback_head task_work; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; + 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 io_fixed_file; +struct rpc_rqst; -struct io_file_table { - struct io_fixed_file *files; - unsigned long *bitmap; - unsigned int alloc_hint; +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 io_wq_work_node { - struct io_wq_work_node *next; +struct rpc_wait { + struct list_head list; + struct list_head links; + struct list_head timer_list; }; -struct io_wq_work_list { - struct io_wq_work_node *first; - struct io_wq_work_node *last; +struct rpc_message { + const struct rpc_procinfo *rpc_proc; + void *rpc_argp; + void *rpc_resp; + const struct cred *rpc_cred; }; -struct io_kiocb; +struct rpc_call_ops; -struct io_submit_link { - struct io_kiocb *head; - struct io_kiocb *last; -}; +struct rpc_cred; -struct io_uring_cqe { - __u64 user_data; - __s32 res; - __u32 flags; - __u64 big_cqe[0]; +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; }; -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 xdr_stream; + +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 io_hash_bucket; +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 io_hash_table { - struct io_hash_bucket *hbs; - unsigned int hash_bits; +struct lwq_node { + struct llist_node node; }; -struct io_alloc_cache { - struct io_wq_work_node list; - unsigned int nr_cached; - unsigned int max_cached; - size_t elem_size; +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 lwq_node rq_bc_list; + unsigned long rq_bc_pa_state; + struct list_head rq_bc_pa_list; }; -struct io_restriction { - unsigned long register_op[1]; - unsigned long sqe_op[1]; - u8 sqe_flags_allowed; - u8 sqe_flags_required; - bool registered; +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 io_rings; +struct rpc_authops; -struct io_uring_sqe; +struct rpc_cred_cache; -struct io_rsrc_node; +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 io_mapped_ubuf; +struct rpc_auth_create_args; -struct io_buffer_list; +struct auth_cred; -struct io_sq_data; +struct rpcsec_gss_info; -struct io_ev_fd; +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 *); + int (*ping)(struct rpc_clnt *); +}; -struct io_rsrc_data; +struct rpc_auth_create_args { + rpc_authflavor_t pseudoflavor; + const char *target_name; +}; -struct io_wq_hash; +struct auth_cred { + const struct cred *cred; + const char *principal; +}; -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; - unsigned short n_ring_pages; - unsigned short n_sqe_pages; - struct page **ring_pages; - struct page **sqe_pages; - struct io_rings *rings; - struct task_struct *submitter_task; - struct percpu_ref refs; - }; - struct { - struct mutex uring_lock; - u32 *sq_array; - struct io_uring_sqe *sq_sqes; - unsigned int cached_sq_head; - unsigned int sq_entries; - struct io_rsrc_node *rsrc_node; - atomic_t cancel_seq; - 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; - }; - 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: 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; - atomic_t cq_wait_nr; - struct io_wq_work_list iopoll_list; - struct io_hash_table cancel_table; - struct llist_head work_llist; - struct list_head io_buffers_comp; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; - 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: 64; - long: 64; - }; - struct wait_queue_head poll_wq; - struct io_restriction restrictions; - struct io_mapped_ubuf *dummy_ubuf; - struct io_rsrc_data *file_data; - struct io_rsrc_data *buf_data; - struct list_head rsrc_ref_list; - struct io_alloc_cache rsrc_node_cache; - struct wait_queue_head rsrc_quiesce_wq; - unsigned int rsrc_quiesce; - 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; - long: 64; +struct rpcsec_gss_oid { + unsigned int len; + u8 data[32]; }; -struct io_uring { - u32 head; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 tail; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct rpcsec_gss_info { + struct rpcsec_gss_oid oid; + u32 qop; + u32 service; }; -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 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 *); }; -typedef int __kernel_rwf_t; - -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 xdr_stream { + __be32 *p; + struct xdr_buf *buf; + __be32 *end; + struct kvec *iov; + struct kvec scratch; + struct page **page_ptr; + void *page_kaddr; + unsigned int nwords; + struct rpc_rqst *rqst; }; -struct io_cache_entry { - struct io_wq_work_node node; +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 io_rsrc_put { - u64 tag; - union { - void *rsrc; - struct file *file; - struct io_mapped_ubuf *buf; - }; -}; +struct xprt_create; -struct io_rsrc_node { - union { - struct io_cache_entry cache; - struct io_ring_ctx *ctx; - }; - int refs; - bool empty; - u16 type; - struct list_head node; - struct io_rsrc_put item; +struct 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 io_mapped_ubuf { - u64 ubuf; - u64 ubuf_end; - unsigned int nr_bvecs; - unsigned long acct_pages; - struct bio_vec bvec[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 xprtsec_parms xprtsec; + unsigned long connect_timeout; + unsigned long reconnect_timeout; }; -struct io_fixed_file { - unsigned long file_ptr; +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 io_cmd_data { - struct file *file; - __u8 data[56]; +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 io_cqe { - __u64 user_data; - __s32 res; - union { - __u32 flags; - int fd; - }; +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 io_tw_state; +struct rpc_version; -typedef void (*io_req_tw_func_t)(struct io_kiocb *, struct io_tw_state *); +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 io_task_work { - struct llist_node node; - io_req_tw_func_t func; +struct rpc_version { + u32 number; + unsigned int nrprocs; + const struct rpc_procinfo *procs; + unsigned int *counts; }; -struct io_wq_work { - struct io_wq_work_node list; - unsigned int flags; - int cancel_seq; +struct rpc_sysfs_client { + struct kobject kobject; + struct net *net; + struct rpc_clnt *clnt; + struct rpc_xprt_switch *xprt_switch; }; -struct io_buffer; +struct nlmclnt_operations; -struct async_poll; +struct nfs_fh; -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; - unsigned int nr_tw; - 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 nfs_fsinfo; -struct io_buffer { - struct list_head list; - __u64 addr; - __u32 len; - __u16 bid; - __u16 bgid; -}; +struct nfs_fattr; -struct io_uring_buf_ring; +struct nfs_access_entry; -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; - __u8 is_mapped; - __u8 is_mmap; -}; +struct nfs_unlinkdata; -struct io_uring_buf { - __u64 addr; - __u32 len; - __u16 bid; - __u16 resv; -}; +struct nfs_renamedata; -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 nfs_readdir_arg; -struct io_tw_state { - bool locked; -}; +struct nfs_readdir_res; -struct io_hash_bucket { - spinlock_t lock; - struct hlist_head list; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; +struct nfs_fsstat; -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 nfs_pathconf; -struct io_rsrc_data { - struct io_ring_ctx *ctx; - u64 **tags; - unsigned int nr; - u16 rsrc_type; - bool quiesce; -}; +struct nfs_entry; -struct io_wq_hash { - refcount_t refs; - unsigned long map; - struct wait_queue_head wait; -}; +struct nfs_pgio_header; -struct io_uring_cmd { - struct file *file; - const struct io_uring_sqe *sqe; - union { - void (*task_work_cb)(struct io_uring_cmd *, unsigned int); - void *cookie; - }; - u32 cmd_op; - u32 flags; - u8 pdu[32]; -}; +struct nfs_commit_data; -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, -}; +struct nfs_open_context; -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, -}; +struct nfs_client_initdata; -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 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 folio *, 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 *); }; -enum { - IOU_OK = 0, - IOU_ISSUE_SKIP_COMPLETE = -529, - IOU_STOP_MULTISHOT = -125, +struct nlmclnt_operations { + void (*nlmclnt_alloc_call)(void *); + bool (*nlmclnt_unlock_prepare)(struct rpc_task *, void *); + void (*nlmclnt_release_call)(void *); }; -enum { - SB_UNFROZEN = 0, - SB_FREEZE_WRITE = 1, - SB_FREEZE_PAGEFAULT = 2, - SB_FREEZE_FS = 3, - SB_FREEZE_COMPLETE = 4, +struct nfs_fh { + unsigned short size; + unsigned char data[128]; }; -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 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; }; -enum { - IOU_F_TWQ_LAZY_WAKE = 1, -}; +struct nfs4_string; -enum iter_type { - ITER_IOVEC = 0, - ITER_KVEC = 1, - ITER_BVEC = 2, - ITER_XARRAY = 3, - ITER_DISCARD = 4, - ITER_UBUF = 5, -}; +struct nfs4_threshold; -typedef __kernel_rwf_t rwf_t; +struct nfs4_label; -struct io_rw { - struct kiocb kiocb; - u64 addr; - u32 len; - rwf_t flags; +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; }; -typedef s32 compat_ssize_t; +struct nfs4_string { + unsigned int len; + char *data; +}; -struct compat_iovec { - compat_uptr_t iov_base; - compat_size_t iov_len; +struct nfs4_threshold { + __u32 bm; + __u32 l_type; + __u64 rd_sz; + __u64 wr_sz; + __u64 rd_io_sz; + __u64 wr_io_sz; }; -struct iov_iter_state { - size_t iov_offset; - size_t count; - unsigned long nr_segs; +struct nfs4_label { + uint32_t lfs; + uint32_t pi; + u32 len; + char *label; }; -struct io_rw_state { - struct iov_iter iter; - struct iov_iter_state iter_state; - struct iovec fast_iov[8]; +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 io_async_rw { - struct io_rw_state s; - const struct iovec *free_iovec; - size_t bytes_done; - struct wait_page_queue wpq; +struct nfs4_slot; + +struct nfs4_sequence_args { + struct nfs4_slot *sa_slot; + u8 sa_cache_this: 1; + u8 sa_privileged: 1; }; -struct wait_page_key { - struct folio *folio; - int bit_nr; - int page_match; +struct nfs_removeargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + struct qstr name; }; -struct platform_device; +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 platform_device_id; +struct nfs4_change_info { + u32 atomic; + u64 before; + u64 after; +}; -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 nfs_removeres { + struct nfs4_sequence_res seq_res; + struct nfs_server *server; + struct nfs_fattr *dir_attr; + struct nfs4_change_info cinfo; }; -struct pdev_archdata {}; +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 mfd_cell; +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 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 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 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; - }; +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; }; -union msi_domain_cookie { - u64 value; - void *ptr; - void *iobase; +struct nfs_readdir_arg { + struct dentry *dentry; + const struct cred *cred; + __be32 *verf; + u64 cookie; + struct page **pages; + unsigned int page_len; + bool plus; }; -union msi_instance_cookie { - u64 value; - void *ptr; +struct nfs_readdir_res { + __be32 *verf; }; -struct msi_desc_data { - union msi_domain_cookie dcookie; - union msi_instance_cookie icookie; +struct nfs_fsstat { + struct nfs_fattr *fattr; + __u64 tbytes; + __u64 fbytes; + __u64 abytes; + __u64 tfiles; + __u64 ffiles; + __u64 afiles; }; -struct arch_msi_msg_addr_lo { - u32 address_lo; +struct nfs_pathconf { + struct nfs_fattr *fattr; + __u32 max_link; + __u32 max_namelen; }; -typedef struct arch_msi_msg_addr_lo arch_msi_msg_addr_lo_t; +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 arch_msi_msg_addr_hi { - u32 address_hi; +struct nfs_write_verifier { + char data[8]; }; -typedef struct arch_msi_msg_addr_hi arch_msi_msg_addr_hi_t; +enum nfs3_stable_how { + NFS_UNSTABLE = 0, + NFS_DATA_SYNC = 1, + NFS_FILE_SYNC = 2, + NFS_INVALID_STABLE_HOW = -1, +}; -struct arch_msi_msg_data { - u32 data; +struct nfs_writeverf { + struct nfs_write_verifier verifier; + enum nfs3_stable_how committed; }; -typedef struct arch_msi_msg_data arch_msi_msg_data_t; +struct nfs_lock_context; -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; - }; +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 { - u32 data; - arch_msi_msg_data_t arch_data; + unsigned int replen; + struct { + const u32 *bitmask; + u32 bitmask_store[3]; + enum nfs3_stable_how stable; + }; }; }; -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; +struct nfs_pgio_res { + struct nfs4_sequence_res seq_res; + struct nfs_fattr *fattr; + __u64 count; + __u32 op_status; union { - struct pci_msi_desc pci; - struct msi_desc_data data; + struct { + unsigned int replen; + int eof; + void *scratch; + }; + struct { + struct nfs_writeverf *verf; + const struct nfs_server *server; + }; }; }; -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 nfs_page_array { + struct page **pagevec; + unsigned int npages; + struct page *page_array[8]; }; -struct msi_alloc_info; +struct nfs_page; -typedef struct msi_alloc_info msi_alloc_info_t; +struct pnfs_layout_segment; -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 nfs_pgio_completion_ops; -struct msi_alloc_info { - struct msi_desc *desc; - irq_hw_number_t hwirq; - unsigned long flags; - union { - unsigned long ul; - void *ptr; - } scratchpad[2]; -}; +struct nfs_rw_ops; -struct platform_device_id { - char name[20]; - kernel_ulong_t driver_data; -}; +struct nfs_io_completion; -struct mvebu_gicp_spi_range; +struct nfs_direct_req; -struct mvebu_gicp { - struct mvebu_gicp_spi_range *spi_ranges; - unsigned int spi_ranges_cnt; - unsigned int spi_cnt; - unsigned long *spi_bitmap; - spinlock_t spi_lock; - struct resource *res; - struct device *dev; +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 mvebu_gicp_spi_range { - unsigned int start; - unsigned int count; +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; }; -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 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; }; -enum device_link_state { - DL_STATE_NONE = -1, - DL_STATE_DORMANT = 0, - DL_STATE_AVAILABLE = 1, - DL_STATE_CONSUMER_PROBE = 2, - DL_STATE_ACTIVE = 3, - DL_STATE_SUPPLIER_UNBIND = 4, +struct 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; }; -enum mc_cmd_status { - MC_CMD_STATUS_OK = 0, - MC_CMD_STATUS_READY = 1, - MC_CMD_STATUS_AUTH_ERR = 3, - MC_CMD_STATUS_NO_PRIVILEGE = 4, - MC_CMD_STATUS_DMA_ERR = 5, - MC_CMD_STATUS_CONFIG_ERR = 6, - MC_CMD_STATUS_TIMEOUT = 7, - MC_CMD_STATUS_NO_RESOURCE = 8, - MC_CMD_STATUS_NO_MEMORY = 9, - MC_CMD_STATUS_BUSY = 10, - MC_CMD_STATUS_UNSUPPORTED_OP = 11, - MC_CMD_STATUS_INVALID_STATE = 12, +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 dpmcp_cmd_open { - __le32 dpmcp_id; +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 mc_cmd_header { - u8 src_id; - u8 flags_hw; - u8 status; - u8 flags_sw; - __le16 token; - __le16 cmd_id; +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 fsl_mc_command { - __le64 header; - __le64 params[7]; +struct nfs_mds_commit_info { + atomic_t rpcs_out; + atomic_long_t ncommit; + struct list_head list; }; -struct fsl_mc_device; +struct pnfs_commit_ops; -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 pnfs_ds_commit_info { + struct list_head commits; + unsigned int nwritten; + unsigned int ncommitting; + const struct pnfs_commit_ops *ops; }; -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 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 fsl_mc_device_irq; - -struct fsl_mc_resource; - -struct device_link; +struct nfs_commit_info; -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 pnfs_commit_ops { + void (*setup_ds_info)(struct pnfs_ds_commit_info *, struct pnfs_layout_segment *); + void (*release_ds_info)(struct pnfs_ds_commit_info *, struct inode *); + int (*commit_pagelist)(struct inode *, struct list_head *, int, struct nfs_commit_info *); + void (*mark_request_commit)(struct nfs_page *, struct pnfs_layout_segment *, struct nfs_commit_info *, u32); + void (*clear_request_commit)(struct nfs_page *, struct nfs_commit_info *); + int (*scan_commit_lists)(struct nfs_commit_info *, int); + void (*recover_commit_reqs)(struct list_head *, struct nfs_commit_info *); + struct nfs_page * (*search_commit_reqs)(struct nfs_commit_info *, struct folio *); }; -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 nfs_commitargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + __u64 offset; + __u32 count; + const u32 *bitmask; }; -struct fsl_mc_device_irq { - unsigned int virq; - struct fsl_mc_device *mc_dev; - u8 dev_irq_index; - struct fsl_mc_resource resource; +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 fsl_mc_bus; +struct nfs_commit_completion_ops; -struct fsl_mc_resource_pool { - enum fsl_mc_pool_type type; - int max_count; - int free_count; - struct mutex mutex; - struct list_head free_list; - struct fsl_mc_bus *mc_bus; +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 dprc_attributes { - int container_id; - u32 icid; - int portal_id; - u64 options; +struct nfs_commit_completion_ops { + void (*completion)(struct nfs_commit_data *); + void (*resched_write)(struct nfs_commit_info *, struct nfs_page *); }; -struct fsl_mc_uapi { - struct miscdevice misc; - struct device *device; - struct mutex mutex; - u32 local_instance_in_use; - struct fsl_mc_io *static_mc_io; +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 fsl_mc_bus { - struct fsl_mc_device mc_dev; - struct fsl_mc_resource_pool resource_pools[4]; - struct fsl_mc_device_irq *irq_resources; - struct mutex scan_mutex; - struct dprc_attributes dprc_attr; - struct fsl_mc_uapi uapi_misc; - int irq_enabled; +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 xprtsec_parms xprtsec; + unsigned long connect_timeout; + unsigned long reconnect_timeout; }; -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 nfs_seqid; -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 nfs4_state_recovery_ops; -enum phy_media { - PHY_MEDIA_DEFAULT = 0, - PHY_MEDIA_SR = 1, - PHY_MEDIA_DAC = 2, -}; +struct nfs4_state_maintenance_ops; -struct phy; +struct nfs4_mig_recovery_ops; -union phy_configure_opts; +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 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 nfs_seqid { + struct nfs_seqid_counter *sequence; + struct list_head list; + struct rpc_task *task; }; -struct phy_attrs { - u32 bus_width; - u32 max_link_rate; - enum phy_mode mode; +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 regulator; +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 phy { - struct device dev; - int id; - const struct phy_ops *ops; - struct mutex mutex; - int init_count; - int power_count; - struct phy_attrs attrs; - struct regulator *pwr; - struct dentry *debugfs; +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 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 nfs4_pathname { + unsigned int ncomponents; + struct nfs4_string components[512]; }; -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 nfs4_fs_location { + unsigned int nservers; + struct nfs4_string servers[10]; + struct nfs4_pathname rootpath; }; -struct phy_configure_opts_lvds { - unsigned int bits_per_lane_and_dclk_cycle; - unsigned long differential_clk_rate; - unsigned int lanes; - bool is_slave; +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]; }; -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 nfs41_server_owner { + uint64_t minor_id; + uint32_t major_id_sz; + char major_id[1024]; }; -enum imx8_pcie_phy_type { - IMX8MM = 0, - IMX8MP = 1, +struct nfs41_server_scope { + uint32_t server_scope_sz; + char server_scope[1024]; }; -struct imx8_pcie_phy_drvdata { - const char *gpr; - enum imx8_pcie_phy_type variant; +struct nfstime4 { + u64 seconds; + u32 nseconds; }; -struct phy_provider { - struct device *dev; - struct device_node *children; - struct module *owner; - struct list_head list; - struct phy * (*of_xlate)(struct device *, struct of_phandle_args *); +struct nfs41_impl_id { + char domain[1025]; + char name[1025]; + struct nfstime4 date; }; -struct clk; +struct nfs_iostats { + unsigned long long bytes[8]; + unsigned long events[27]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; -struct regmap; +struct file_lock_context { + spinlock_t flc_lock; + struct list_head flc_flock; + struct list_head flc_posix; + struct list_head flc_lease; +}; -struct reset_control; +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, + XPRT_TRANSPORT_TCP_TLS = 258, +}; -struct imx8_pcie_phy { - void *base; - struct clk *clk; - struct phy *phy; - struct regmap *iomuxc_gpr; - struct reset_control *perst; - struct reset_control *reset; - u32 refclk_pad_mode; - u32 tx_deemph_gen1; - u32 tx_deemph_gen2; - bool clkreq_unused; - const struct imx8_pcie_phy_drvdata *drvdata; +struct lwq { + spinlock_t lock; + struct llist_node *ready; + struct llist_head new; }; -typedef void (*regmap_lock)(void *); +struct svc_program; -typedef void (*regmap_unlock)(void *); +struct svc_stat; -enum regcache_type { - REGCACHE_NONE = 0, - REGCACHE_RBTREE = 1, - REGCACHE_FLAT = 2, - REGCACHE_MAPLE = 3, +struct svc_pool; + +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 lwq sv_cb_list; + bool sv_bc_enabled; }; -enum regmap_endian { - REGMAP_ENDIAN_DEFAULT = 0, - REGMAP_ENDIAN_BIG = 1, - REGMAP_ENDIAN_LITTLE = 2, - REGMAP_ENDIAN_NATIVE = 3, +enum svc_auth_status { + SVC_GARBAGE = 1, + SVC_SYSERR = 2, + SVC_VALID = 3, + SVC_NEGATIVE = 4, + SVC_OK = 5, + SVC_DROP = 6, + SVC_CLOSE = 7, + SVC_DENIED = 8, + SVC_PENDING = 9, + SVC_COMPLETE = 10, }; -struct regmap_access_table; +struct svc_version; -struct reg_default; +struct svc_rqst; -struct regmap_range_cfg; +struct svc_process_info; -struct regmap_config { - const char *name; - int reg_bits; - int reg_stride; - int reg_shift; - 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 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; + enum svc_auth_status (*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 regmap_range; +struct svc_procedure; -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 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 regmap_range { - unsigned int range_min; - unsigned int range_max; +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 reg_default { - unsigned int reg; - unsigned int def; -}; +struct gss_api_mech; -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 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 pinctrl_dev; - -struct pinctrl_map; +struct cache_deferred_req; -struct pinctrl_ops { - int (*get_groups_count)(struct pinctrl_dev *); - const char * (*get_group_name)(struct pinctrl_dev *, unsigned int); - int (*get_group_pins)(struct pinctrl_dev *, unsigned int, const unsigned int **, unsigned int *); - void (*pin_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); - int (*dt_node_to_map)(struct pinctrl_dev *, struct device_node *, struct pinctrl_map **, unsigned int *); - void (*dt_free_map)(struct pinctrl_dev *, struct pinctrl_map *, unsigned int); +struct cache_req { + struct cache_deferred_req * (*defer)(struct cache_req *); + unsigned long thread_wait; }; -struct pinctrl_desc; +struct auth_ops; -struct pinctrl; +struct svc_deferred_req; -struct pinctrl_state; +struct auth_domain; -struct pinctrl_dev { - struct list_head node; - struct pinctrl_desc *desc; - struct xarray pin_desc_tree; - struct xarray pin_group_tree; - unsigned int num_groups; - struct xarray pin_function_tree; - unsigned int num_functions; - struct list_head gpio_ranges; - struct device *dev; +struct svc_rqst { + struct list_head rq_all; + struct llist_node rq_idle; + 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 folio_batch rq_fbatch; + 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 task_struct *rq_task; + struct net *rq_bc_net; + void **rq_lease_breaker; + unsigned int rq_status_counter; +}; + +struct svc_pool { + unsigned int sp_id; + struct lwq sp_xprts; + atomic_t sp_nrthreads; + struct list_head sp_all_threads; + struct llist_head sp_idle_threads; + struct percpu_counter sp_messages_arrived; + struct percpu_counter sp_sockets_queued; + struct percpu_counter sp_threads_woken; + unsigned long sp_flags; +}; + +struct auth_ops { + char *name; struct module *owner; - void *driver_data; - struct pinctrl *p; - struct pinctrl_state *hog_default; - struct pinctrl_state *hog_sleep; - struct mutex mutex; - struct dentry *device_root; + int flavour; + enum svc_auth_status (*accept)(struct svc_rqst *); + int (*release)(struct svc_rqst *); + void (*domain_release)(struct auth_domain *); + enum svc_auth_status (*set_client)(struct svc_rqst *); }; -struct pinctrl_pin_desc; +struct auth_domain { + struct kref ref; + struct hlist_node hash; + char *name; + struct auth_ops *flavour; + struct callback_head callback_head; +}; -struct pinmux_ops; +struct gss_api_ops; -struct pinconf_ops; +struct pf_desc; -struct pinconf_generic_params; +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 pin_config_item; +struct gss_ctx; -struct pinctrl_desc { - const char *name; - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const struct pinctrl_ops *pctlops; - const struct pinmux_ops *pmxops; - const struct pinconf_ops *confops; - struct module *owner; - unsigned int num_custom_params; - const struct pinconf_generic_params *custom_params; - const struct pin_config_item *custom_conf_items; - bool link_consumers; +struct xdr_netobj; + +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 pinctrl_pin_desc { - unsigned int number; - const char *name; - void *drv_data; +struct gss_ctx { + struct gss_api_mech *mech_type; + void *internal_ctx_id; + unsigned int slack; + unsigned int align; }; -struct pinctrl_gpio_range; +struct xdr_netobj { + unsigned int len; + u8 *data; +}; -struct pinmux_ops { - int (*request)(struct pinctrl_dev *, unsigned int); - int (*free)(struct pinctrl_dev *, unsigned int); - int (*get_functions_count)(struct pinctrl_dev *); - const char * (*get_function_name)(struct pinctrl_dev *, unsigned int); - int (*get_function_groups)(struct pinctrl_dev *, unsigned int, const char * const **, unsigned int *); - int (*set_mux)(struct pinctrl_dev *, unsigned int, unsigned int); - int (*gpio_request_enable)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); - void (*gpio_disable_free)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); - int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); - bool strict; +struct pf_desc { + u32 pseudoflavor; + u32 qop; + u32 service; + char *name; + char *auth_domain_name; + struct auth_domain *domain; + bool datatouch; }; -struct gpio_chip; +struct cache_head; -struct pinctrl_gpio_range { - struct list_head node; - const char *name; - unsigned int id; - unsigned int base; - unsigned int pin_base; - unsigned int npins; - const unsigned int *pins; - struct gpio_chip *gc; +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); }; -union gpio_irq_fwspec; +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 gpio_irq_chip { - struct irq_chip *chip; - struct irq_domain *domain; - struct fwnode_handle *fwnode; - struct irq_domain *parent_domain; - int (*child_to_parent_hwirq)(struct gpio_chip *, unsigned int, unsigned int, unsigned int *, unsigned int *); - int (*populate_parent_alloc_arg)(struct gpio_chip *, union gpio_irq_fwspec *, unsigned int, unsigned int); - unsigned int (*child_offset_to_irq)(struct gpio_chip *, unsigned int); - struct irq_domain_ops child_irq_domain_ops; - irq_flow_handler_t handler; - unsigned int default_type; - struct lock_class_key *lock_key; - struct lock_class_key *request_key; - irq_flow_handler_t parent_handler; +struct cache_head { + struct hlist_node cache_list; + time64_t expiry_time; + time64_t last_refresh; + struct kref ref; + unsigned long flags; +}; + +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 { - void *parent_handler_data; - void **parent_handler_data_array; + int (*dispatch)(struct svc_rqst *); + struct { + unsigned int lovers; + unsigned int hivers; + } mismatch; }; - unsigned int num_parents; - unsigned int *parents; - unsigned int *map; - bool threaded; - bool per_parent_data; - bool initialized; - bool domain_is_allocated_externally; - int (*init_hw)(struct gpio_chip *); - void (*init_valid_mask)(struct gpio_chip *, unsigned long *, unsigned int); - unsigned long *valid_mask; - unsigned int first; - void (*irq_enable)(struct irq_data *); - void (*irq_disable)(struct irq_data *); - void (*irq_unmask)(struct irq_data *); - void (*irq_mask)(struct irq_data *); }; -struct gpio_device; +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 gpio_chip { - const char *label; - struct gpio_device *gpiodev; - struct device *parent; - struct fwnode_handle *fwnode; - struct module *owner; - int (*request)(struct gpio_chip *, unsigned int); - void (*free)(struct gpio_chip *, unsigned int); - int (*get_direction)(struct gpio_chip *, unsigned int); - int (*direction_input)(struct gpio_chip *, unsigned int); - int (*direction_output)(struct gpio_chip *, unsigned int, int); - int (*get)(struct gpio_chip *, unsigned int); - int (*get_multiple)(struct gpio_chip *, unsigned long *, unsigned long *); - void (*set)(struct gpio_chip *, unsigned int, int); - void (*set_multiple)(struct gpio_chip *, unsigned long *, unsigned long *); - int (*set_config)(struct gpio_chip *, unsigned int, unsigned long); - int (*to_irq)(struct gpio_chip *, unsigned int); - void (*dbg_show)(struct seq_file *, struct gpio_chip *); - int (*init_valid_mask)(struct gpio_chip *, unsigned long *, unsigned int); - int (*add_pin_ranges)(struct gpio_chip *); - int (*en_hw_timestamp)(struct gpio_chip *, u32, unsigned long); - int (*dis_hw_timestamp)(struct gpio_chip *, u32, unsigned long); - int base; - u16 ngpio; - u16 offset; - const char * const *names; - bool can_sleep; - unsigned long (*read_reg)(void *); - void (*write_reg)(void *, unsigned long); - bool be_bits; - void *reg_dat; - void *reg_set; - void *reg_clr; - void *reg_dir_out; - void *reg_dir_in; - bool bgpio_dir_unreadable; - int bgpio_bits; - raw_spinlock_t bgpio_lock; - unsigned long bgpio_data; - unsigned long bgpio_dir; - struct gpio_irq_chip irq; - unsigned long *valid_mask; - unsigned int of_gpio_n_cells; - int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *); +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; }; -union gpio_irq_fwspec { - struct irq_fwspec fwspec; - msi_alloc_info_t msiinfo; +struct nfs4_sessionid { + unsigned char data[16]; }; -struct pinconf_ops { - bool is_generic; - int (*pin_config_get)(struct pinctrl_dev *, unsigned int, unsigned long *); - int (*pin_config_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); - int (*pin_config_group_get)(struct pinctrl_dev *, unsigned int, unsigned long *); - int (*pin_config_group_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); - void (*pin_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); - void (*pin_config_group_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); - void (*pin_config_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned long); +struct nfs4_channel_attrs { + u32 max_rqst_sz; + u32 max_resp_sz; + u32 max_resp_sz_cached; + u32 max_ops; + u32 max_reqs; }; -enum pin_config_param { - PIN_CONFIG_BIAS_BUS_HOLD = 0, - PIN_CONFIG_BIAS_DISABLE = 1, - PIN_CONFIG_BIAS_HIGH_IMPEDANCE = 2, - PIN_CONFIG_BIAS_PULL_DOWN = 3, - PIN_CONFIG_BIAS_PULL_PIN_DEFAULT = 4, - PIN_CONFIG_BIAS_PULL_UP = 5, - PIN_CONFIG_DRIVE_OPEN_DRAIN = 6, - PIN_CONFIG_DRIVE_OPEN_SOURCE = 7, - PIN_CONFIG_DRIVE_PUSH_PULL = 8, - PIN_CONFIG_DRIVE_STRENGTH = 9, - PIN_CONFIG_DRIVE_STRENGTH_UA = 10, - PIN_CONFIG_INPUT_DEBOUNCE = 11, - PIN_CONFIG_INPUT_ENABLE = 12, - PIN_CONFIG_INPUT_SCHMITT = 13, - PIN_CONFIG_INPUT_SCHMITT_ENABLE = 14, - PIN_CONFIG_MODE_LOW_POWER = 15, - PIN_CONFIG_MODE_PWM = 16, - PIN_CONFIG_OUTPUT = 17, - PIN_CONFIG_OUTPUT_ENABLE = 18, - PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS = 19, - PIN_CONFIG_PERSIST_STATE = 20, - PIN_CONFIG_POWER_SOURCE = 21, - PIN_CONFIG_SKEW_DELAY = 22, - PIN_CONFIG_SLEEP_HARDWARE_STATE = 23, - PIN_CONFIG_SLEW_RATE = 24, - PIN_CONFIG_END = 127, - PIN_CONFIG_MAX = 255, +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; }; -struct pinconf_generic_params { - const char * const property; - enum pin_config_param param; - u32 default_value; +struct pnfs_layout_range { + u32 iomode; + u64 offset; + u64 length; }; -struct pin_config_item { - const enum pin_config_param param; - const char * const display; - const char * const format; - bool has_arg; -}; +struct pnfs_layout_hdr; -struct pinctrl { - struct list_head node; - struct device *dev; - struct list_head states; - struct pinctrl_state *state; - struct list_head dt_maps; - struct kref users; +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 pinctrl_state { - struct list_head node; - const char *name; - struct list_head settings; +enum pnfs_iomode { + IOMODE_READ = 1, + IOMODE_RW = 2, + IOMODE_ANY = 3, }; -struct pinctrl_map_mux { - const char *group; - const char *function; +struct pnfs_layout_hdr { + refcount_t plh_refcount; + atomic_t plh_outstanding; + struct list_head plh_layouts; + struct list_head plh_bulk_destroy; + struct list_head plh_segs; + struct list_head plh_return_segs; + unsigned long plh_block_lgets; + unsigned long plh_retry_timestamp; + unsigned long plh_flags; + nfs4_stateid plh_stateid; + u32 plh_barrier; + u32 plh_return_seq; + enum pnfs_iomode plh_return_iomode; + loff_t plh_lwb; + const struct cred *plh_lc_cred; + struct inode *plh_inode; + struct callback_head plh_rcu; }; -struct pinctrl_map_configs { - const char *group_or_pin; - unsigned long *configs; - unsigned int num_configs; +enum pnfs_try_status { + PNFS_ATTEMPTED = 0, + PNFS_NOT_ATTEMPTED = 1, + PNFS_TRY_AGAIN = 2, }; -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 nfs4_layoutget_res; -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; -}; +struct nfs_pageio_ops; -enum rockchip_pinctrl_type { - PX30 = 0, - RV1108 = 1, - RV1126 = 2, - RK2928 = 3, - RK3066B = 4, - RK3128 = 5, - RK3188 = 6, - RK3288 = 7, - RK3308 = 8, - RK3368 = 9, - RK3399 = 10, - RK3568 = 11, - RK3588 = 12, -}; +struct nfs4_deviceid_node; -struct rockchip_pin_bank; +struct pnfs_device; -struct rockchip_mux_recalced_data; +struct nfs4_layoutreturn_args; -struct rockchip_mux_route_data; +struct nfs4_layoutcommit_data; -struct rockchip_pin_ctrl { - struct rockchip_pin_bank *pin_banks; - u32 nr_banks; - u32 nr_pins; - char *label; - enum rockchip_pinctrl_type type; - int grf_mux_offset; - int pmu_mux_offset; - int grf_drv_offset; - int pmu_drv_offset; - struct rockchip_mux_recalced_data *iomux_recalced; - u32 niomux_recalced; - struct rockchip_mux_route_data *iomux_routes; - u32 niomux_routes; - int (*pull_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); - int (*drv_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); - int (*schmitt_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); -}; +struct nfs4_layoutcommit_args; -struct rockchip_iomux { - int type; - int offset; -}; +struct nfs42_layoutstat_args; -enum rockchip_pin_drv_type { - DRV_TYPE_IO_DEFAULT = 0, - DRV_TYPE_IO_1V8_OR_3V0 = 1, - DRV_TYPE_IO_1V8_ONLY = 2, - DRV_TYPE_IO_1V8_3V0_AUTO = 3, - DRV_TYPE_IO_3V3_ONLY = 4, - DRV_TYPE_MAX = 5, +struct pnfs_layoutdriver_type { + struct list_head pnfs_tblid; + const u32 id; + const char *name; + struct module *owner; + unsigned int flags; + unsigned int max_deviceinfo_size; + unsigned int max_layoutget_response; + int (*set_layoutdriver)(struct nfs_server *, const struct nfs_fh *); + int (*clear_layoutdriver)(struct nfs_server *); + struct pnfs_layout_hdr * (*alloc_layout_hdr)(struct inode *, gfp_t); + void (*free_layout_hdr)(struct pnfs_layout_hdr *); + struct pnfs_layout_segment * (*alloc_lseg)(struct pnfs_layout_hdr *, struct nfs4_layoutget_res *, gfp_t); + void (*free_lseg)(struct pnfs_layout_segment *); + void (*add_lseg)(struct pnfs_layout_hdr *, struct pnfs_layout_segment *, struct list_head *); + void (*return_range)(struct pnfs_layout_hdr *, struct pnfs_layout_range *); + const struct nfs_pageio_ops *pg_read_ops; + const struct nfs_pageio_ops *pg_write_ops; + struct pnfs_ds_commit_info * (*get_ds_info)(struct inode *); + int (*sync)(struct inode *, bool); + enum pnfs_try_status (*read_pagelist)(struct nfs_pgio_header *); + enum pnfs_try_status (*write_pagelist)(struct nfs_pgio_header *, int); + void (*free_deviceid_node)(struct nfs4_deviceid_node *); + struct nfs4_deviceid_node * (*alloc_deviceid_node)(struct nfs_server *, struct pnfs_device *, gfp_t); + int (*prepare_layoutreturn)(struct nfs4_layoutreturn_args *); + void (*cleanup_layoutcommit)(struct nfs4_layoutcommit_data *); + int (*prepare_layoutcommit)(struct nfs4_layoutcommit_args *); + int (*prepare_layoutstats)(struct nfs42_layoutstat_args *); + void (*cancel_io)(struct pnfs_layout_segment *); }; -struct rockchip_drv { - enum rockchip_pin_drv_type drv_type; - int offset; +struct nfs4_layoutdriver_data; + +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; }; -enum rockchip_pin_pull_type { - PULL_TYPE_IO_DEFAULT = 0, - PULL_TYPE_IO_1V8_ONLY = 1, - PULL_TYPE_MAX = 2, +struct nfs4_layoutdriver_data { + struct page **pages; + __u32 pglen; + __u32 len; }; -struct rockchip_pinctrl; +struct nfs_pageio_descriptor; -struct rockchip_gpio_regs; +struct nfs_pgio_mirror; -struct rockchip_pin_bank { - struct device *dev; - void *reg_base; - struct regmap *regmap_pull; - struct clk *clk; - struct clk *db_clk; - int irq; - u32 saved_masks; - u32 pin_base; - u8 nr_pins; - char *name; - u8 bank_num; - struct rockchip_iomux iomux[4]; - struct rockchip_drv drv[4]; - enum rockchip_pin_pull_type pull_type[4]; - bool valid; - struct device_node *of_node; - struct rockchip_pinctrl *drvdata; - struct irq_domain *domain; - struct gpio_chip gpio_chip; - struct pinctrl_gpio_range grange; - raw_spinlock_t slock; - const struct rockchip_gpio_regs *gpio_regs; - u32 gpio_type; - u32 toggle_edge_mode; - u32 recalced_mask; - u32 route_mask; - struct list_head deferred_pins; - struct mutex deferred_lock; +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); }; -struct rockchip_pin_group; +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 rockchip_pmx_func; +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 rockchip_pinctrl { - struct regmap *regmap_base; - int reg_size; - struct regmap *regmap_pull; - struct regmap *regmap_pmu; - struct device *dev; - struct rockchip_pin_ctrl *ctrl; - struct pinctrl_desc pctl; - struct pinctrl_dev *pctl_dev; - struct rockchip_pin_group *groups; - unsigned int ngroups; - struct rockchip_pmx_func *functions; - unsigned int nfunctions; +struct nfs4_deviceid { + char data[16]; }; -struct rockchip_pin_config; +struct nfs4_deviceid_node { + struct hlist_node node; + struct hlist_node tmpnode; + const struct pnfs_layoutdriver_type *ld; + const struct nfs_client *nfs_client; + unsigned long flags; + unsigned long timestamp_unavailable; + struct nfs4_deviceid deviceid; + struct callback_head rcu; + atomic_t ref; +}; -struct rockchip_pin_group { - const char *name; - unsigned int npins; - unsigned int *pins; - struct rockchip_pin_config *data; +struct pnfs_device { + struct nfs4_deviceid dev_id; + unsigned int layout_type; + unsigned int mincount; + unsigned int maxcount; + struct page **pages; + unsigned int pgbase; + unsigned int pglen; + unsigned char nocache: 1; }; -struct rockchip_pin_config { - unsigned int func; - unsigned long *configs; - unsigned int nconfigs; +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 rockchip_pmx_func { - const char *name; - const char **groups; - u8 ngroups; +struct nfs4_xdr_opaque_ops; + +struct nfs4_xdr_opaque_data { + const struct nfs4_xdr_opaque_ops *ops; + void *data; }; -struct rockchip_gpio_regs { - u32 port_dr; - u32 port_ddr; - u32 int_en; - u32 int_mask; - u32 int_type; - u32 int_polarity; - u32 int_bothedge; - u32 int_status; - u32 int_rawstatus; - u32 debounce; - u32 dbclk_div_en; - u32 dbclk_div_con; - u32 port_eoi; - u32 ext_port; - u32 version_id; +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 rockchip_mux_recalced_data { - u8 num; - u8 pin; - u32 reg; - u8 bit; - u8 mask; +struct nfs4_layoutcommit_args { + struct nfs4_sequence_args seq_args; + nfs4_stateid stateid; + __u64 lastbytewritten; + struct inode *inode; + const u32 *bitmask; + size_t layoutupdate_len; + struct page *layoutupdate_page; + struct page **layoutupdate_pages; + __be32 *start_p; }; -enum rockchip_mux_route_location { - ROCKCHIP_ROUTE_SAME = 0, - ROCKCHIP_ROUTE_PMU = 1, - ROCKCHIP_ROUTE_GRF = 2, +struct nfs4_layoutcommit_res { + struct nfs4_sequence_res seq_res; + struct nfs_fattr *fattr; + const struct nfs_server *server; + int status; }; -struct rockchip_mux_route_data { - u8 bank_num; - u8 pin; - u8 func; - enum rockchip_mux_route_location route_location; - u32 route_offset; - u32 route_val; +struct nfs4_layoutcommit_data { + struct rpc_task task; + struct nfs_fattr fattr; + struct list_head lseg_list; + const struct cred *cred; + struct inode *inode; + struct nfs4_layoutcommit_args args; + struct nfs4_layoutcommit_res res; }; -struct rockchip_pin_deferred { - struct list_head head; - unsigned int pin; - enum pin_config_param param; - u32 arg; +struct nfs42_layoutstat_devinfo; + +struct nfs42_layoutstat_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + struct inode *inode; + nfs4_stateid stateid; + int num_dev; + struct nfs42_layoutstat_devinfo *devinfo; }; -struct of_dev_auxdata { - char *compatible; - resource_size_t phys_addr; - char *name; - void *platform_data; +struct nfs42_layoutstat_devinfo { + struct nfs4_deviceid dev_id; + __u64 offset; + __u64 length; + __u64 read_count; + __u64 read_bytes; + __u64 write_count; + __u64 write_bytes; + __u32 layout_type; + struct nfs4_xdr_opaque_data ld_private; }; -struct meson_pmx_group; +typedef void (*btf_trace_nfs4_setclientid)(void *, const struct nfs_client *, int); -struct meson_pmx_func; +typedef void (*btf_trace_nfs4_setclientid_confirm)(void *, const struct nfs_client *, int); -struct meson_bank; +typedef void (*btf_trace_nfs4_renew)(void *, const struct nfs_client *, int); -struct meson_pinctrl; +typedef void (*btf_trace_nfs4_renew_async)(void *, const struct nfs_client *, int); -struct meson_pinctrl_data { - const char *name; - const struct pinctrl_pin_desc *pins; - struct meson_pmx_group *groups; - struct meson_pmx_func *funcs; - unsigned int num_pins; - unsigned int num_groups; - unsigned int num_funcs; - struct meson_bank *banks; - unsigned int num_banks; - const struct pinmux_ops *pmx_ops; - void *pmx_data; - int (*parse_dt)(struct meson_pinctrl *); -}; +typedef void (*btf_trace_nfs4_exchange_id)(void *, const struct nfs_client *, int); -struct meson_pmx_group { - const char *name; - const unsigned int *pins; - unsigned int num_pins; - const void *data; -}; +typedef void (*btf_trace_nfs4_create_session)(void *, const struct nfs_client *, int); -struct meson_pmx_func { - const char *name; - const char * const *groups; - unsigned int num_groups; -}; +typedef void (*btf_trace_nfs4_destroy_session)(void *, const struct nfs_client *, int); -struct meson_reg_desc { - unsigned int reg; - unsigned int bit; -}; +typedef void (*btf_trace_nfs4_destroy_clientid)(void *, const struct nfs_client *, int); -struct meson_bank { - const char *name; - unsigned int first; - unsigned int last; - int irq_first; - int irq_last; - struct meson_reg_desc regs[6]; -}; +typedef void (*btf_trace_nfs4_bind_conn_to_session)(void *, const struct nfs_client *, int); -struct meson_pinctrl { - struct device *dev; - struct pinctrl_dev *pcdev; - struct pinctrl_desc desc; - struct meson_pinctrl_data *data; - struct regmap *reg_mux; - struct regmap *reg_pullen; - struct regmap *reg_pull; - struct regmap *reg_gpio; - struct regmap *reg_ds; - struct gpio_chip chip; - struct fwnode_handle *fwnode; -}; +typedef void (*btf_trace_nfs4_sequence)(void *, const struct nfs_client *, int); -struct pinfunction; +typedef void (*btf_trace_nfs4_reclaim_complete)(void *, const struct nfs_client *, int); -struct msm_pingroup; +typedef void (*btf_trace_nfs4_sequence_done)(void *, const struct nfs4_session *, const struct nfs4_sequence_res *); -struct msm_gpio_wakeirq_map; +struct cb_sequenceargs; -struct msm_pinctrl_soc_data { - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const struct pinfunction *functions; - unsigned int nfunctions; - const struct msm_pingroup *groups; - unsigned int ngroups; - unsigned int ngpios; - bool pull_no_keeper; - const char * const *tiles; - unsigned int ntiles; - const int *reserved_gpios; - const struct msm_gpio_wakeirq_map *wakeirq_map; - unsigned int nwakeirq_map; - bool wakeirq_dual_edge_errata; - unsigned int gpio_func; - unsigned int egpio_func; -}; +struct cb_sequenceres; -struct pinfunction { - const char *name; - const char * const *groups; - size_t ngroups; -}; +typedef void (*btf_trace_nfs4_cb_sequence)(void *, const struct cb_sequenceargs *, const struct cb_sequenceres *, __be32); -struct pingroup { - const char *name; - const unsigned int *pins; - size_t npins; +struct referring_call_list; + +struct cb_sequenceargs { + struct sockaddr *csa_addr; + struct nfs4_sessionid csa_sessionid; + uint32_t csa_sequenceid; + uint32_t csa_slotid; + uint32_t csa_highestslotid; + uint32_t csa_cachethis; + uint32_t csa_nrclists; + struct referring_call_list *csa_rclists; }; -struct msm_pingroup { - struct pingroup grp; - unsigned int *funcs; - unsigned int nfuncs; - u32 ctl_reg; - u32 io_reg; - u32 intr_cfg_reg; - u32 intr_status_reg; - u32 intr_target_reg; - unsigned int tile: 2; - unsigned int mux_bit: 5; - unsigned int pull_bit: 5; - unsigned int drv_bit: 5; - unsigned int i2c_pull_bit: 5; - unsigned int od_bit: 5; - unsigned int egpio_enable: 5; - unsigned int egpio_present: 5; - unsigned int oe_bit: 5; - unsigned int in_bit: 5; - unsigned int out_bit: 5; - unsigned int intr_enable_bit: 5; - unsigned int intr_status_bit: 5; - unsigned int intr_ack_high: 1; - long: 1; - unsigned int intr_target_bit: 5; - unsigned int intr_target_width: 5; - unsigned int intr_target_kpss_val: 5; - unsigned int intr_raw_status_bit: 5; - unsigned int intr_polarity_bit: 5; - unsigned int intr_detection_bit: 5; - int: 2; - unsigned int intr_detection_width: 5; +struct referring_call; + +struct referring_call_list { + struct nfs4_sessionid rcl_sessionid; + uint32_t rcl_nrefcalls; + struct referring_call *rcl_refcalls; }; -struct msm_gpio_wakeirq_map { - unsigned int gpio; - unsigned int wakeirq; +struct referring_call { + uint32_t rc_sequenceid; + uint32_t rc_slotid; }; -enum sunxi_desc_bias_voltage { - BIAS_VOLTAGE_NONE = 0, - BIAS_VOLTAGE_GRP_CONFIG = 1, - BIAS_VOLTAGE_PIO_POW_MODE_SEL = 2, - BIAS_VOLTAGE_PIO_POW_MODE_CTL = 3, +struct cb_sequenceres { + __be32 csr_status; + struct nfs4_sessionid csr_sessionid; + uint32_t csr_sequenceid; + uint32_t csr_slotid; + uint32_t csr_highestslotid; + uint32_t csr_target_highestslotid; }; -struct sunxi_desc_pin; +typedef void (*btf_trace_nfs4_cb_seqid_err)(void *, const struct cb_sequenceargs *, __be32); -struct sunxi_pinctrl_desc { - const struct sunxi_desc_pin *pins; - int npins; - unsigned int pin_base; - unsigned int irq_banks; - const unsigned int *irq_bank_map; - bool irq_read_needs_mux; - bool disable_strict_mode; - enum sunxi_desc_bias_voltage io_bias_cfg_variant; -}; +typedef void (*btf_trace_nfs4_cb_offload)(void *, const struct nfs_fh *, const nfs4_stateid *, uint64_t, int, int); -struct sunxi_desc_function; +typedef void (*btf_trace_nfs4_setup_sequence)(void *, const struct nfs4_session *, const struct nfs4_sequence_args *); -struct sunxi_desc_pin { - struct pinctrl_pin_desc pin; - unsigned long variant; - struct sunxi_desc_function *functions; -}; +typedef void (*btf_trace_nfs4_state_mgr)(void *, const struct nfs_client *); -struct sunxi_desc_function { - unsigned long variant; - const char *name; - u8 muxval; - u8 irqbank; - u8 irqnum; -}; +typedef void (*btf_trace_nfs4_state_mgr_failed)(void *, const struct nfs_client *, const char *, int); -struct gpio_desc; +typedef void (*btf_trace_nfs4_xdr_bad_operation)(void *, const struct xdr_stream *, u32, u32); -struct gpio_device { - struct device dev; - struct cdev chrdev; - int id; - struct device *mockdev; - struct module *owner; - struct gpio_chip *chip; - struct gpio_desc *descs; - int base; - u16 ngpio; - const char *label; - void *data; - struct list_head list; - struct blocking_notifier_head notifier; - struct rw_semaphore sem; - struct list_head pin_ranges; -}; +typedef void (*btf_trace_nfs4_xdr_status)(void *, const struct xdr_stream *, u32, u32); -struct gpio_desc { - struct gpio_device *gdev; - unsigned long flags; - const char *label; - const char *name; - unsigned int debounce_period_us; -}; +typedef void (*btf_trace_nfs4_xdr_bad_filehandle)(void *, const struct xdr_stream *, u32, u32); -struct mb86s70_gpio_chip { - struct gpio_chip gc; - void *base; - struct clk *clk; - spinlock_t lock; -}; +typedef void (*btf_trace_nfs_cb_no_clp)(void *, __be32, u32); -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, -}; +typedef void (*btf_trace_nfs_cb_badprinc)(void *, __be32, u32); -struct rcec_ea { - u8 nextbusn; - u8 lastbusn; - u32 bitmap; -}; +typedef void (*btf_trace_nfs4_open_reclaim)(void *, const struct nfs_open_context *, int, int); -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 void (*btf_trace_nfs4_open_expired)(void *, const struct nfs_open_context *, int, int); -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; -}; +typedef void (*btf_trace_nfs4_open_file)(void *, const struct nfs_open_context *, int, int); -enum con_scroll { - SM_UP = 0, - SM_DOWN = 1, -}; +typedef void (*btf_trace_nfs4_cached_open)(void *, const struct nfs4_state *); -enum vc_intensity { - VCI_HALF_BRIGHT = 0, - VCI_NORMAL = 1, - VCI_BOLD = 2, - VCI_MASK = 3, -}; +struct nfs_closeargs; -struct vc_data; +struct nfs_closeres; -struct console_font; +typedef void (*btf_trace_nfs4_close)(void *, const struct nfs4_state *, const struct nfs_closeargs *, const struct nfs_closeres *, int); -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 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 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 nfs4_layoutreturn_res; -struct console_font { - unsigned int width; - unsigned int height; - unsigned int charcount; - unsigned char *data; +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 vt_mode { - char mode; - char waitv; - short relsig; - short acqsig; - short frsig; +struct nfs4_layoutreturn_res { + struct nfs4_sequence_res seq_res; + u32 lrs_present; + nfs4_stateid stateid; }; -struct uni_pagedict; +typedef void (*btf_trace_nfs4_get_lock)(void *, const struct file_lock *, const struct nfs4_state *, int, int); -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 void (*btf_trace_nfs4_unlock)(void *, const struct file_lock *, const struct nfs4_state *, int, int); -typedef u32 (*acpi_osd_handler)(void *); +typedef void (*btf_trace_nfs4_set_lock)(void *, const struct file_lock *, const struct nfs4_state *, const nfs4_stateid *, int, int); -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 void (*btf_trace_nfs4_state_lock_reclaim)(void *, const struct nfs4_state *, const struct nfs4_lock_state *); -typedef u8 acpi_adr_space_type; +typedef void (*btf_trace_nfs4_set_delegation)(void *, const struct inode *, fmode_t); -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; -}; +typedef void (*btf_trace_nfs4_reclaim_delegation)(void *, const struct inode *, fmode_t); -typedef void (*acpi_osd_exec_callback)(void *); +struct nfs4_delegreturnargs; -struct acpi_os_dpc { - acpi_osd_exec_callback function; - void *context; - struct work_struct work; -}; +struct nfs4_delegreturnres; -struct acpi_hp_work { - struct work_struct work; - struct acpi_device *adev; - u32 src; -}; +typedef void (*btf_trace_nfs4_delegreturn_exit)(void *, const struct nfs4_delegreturnargs *, const struct nfs4_delegreturnres *, int); -struct acpi_predefined_names { - const char *name; - u8 type; - char *val; +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 acpi_pci_id { - u16 segment; - u16 bus; - u16 device; - u16 function; +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; }; -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 (*btf_trace_nfs4_test_delegation_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); -typedef u16 acpi_owner_id; +typedef void (*btf_trace_nfs4_test_open_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); -union acpi_parse_object; +typedef void (*btf_trace_nfs4_test_lock_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); -struct acpi_namespace_node; +typedef void (*btf_trace_nfs4_lookup)(void *, const struct inode *, const struct qstr *, int); -union acpi_generic_state; - -struct acpi_parse_state { - u8 *aml_start; - u8 *aml; - u8 *aml_end; - u8 *pkg_start; - u8 *pkg_end; - union acpi_parse_object *start_op; - struct acpi_namespace_node *start_node; - union acpi_generic_state *scope; - union acpi_parse_object *start_scope; - u32 aml_size; -}; +typedef void (*btf_trace_nfs4_symlink)(void *, const struct inode *, const struct qstr *, int); -union acpi_name_union { - u32 integer; - char ascii[4]; -}; +typedef void (*btf_trace_nfs4_mkdir)(void *, const struct inode *, const struct qstr *, int); -union acpi_operand_object; +typedef void (*btf_trace_nfs4_mknod)(void *, const struct inode *, const struct qstr *, int); -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; -}; +typedef void (*btf_trace_nfs4_remove)(void *, const struct inode *, const struct qstr *, int); -struct acpi_walk_state; +typedef void (*btf_trace_nfs4_get_fs_locations)(void *, const struct inode *, const struct qstr *, int); -typedef acpi_status (*acpi_parse_downwards)(struct acpi_walk_state *, union acpi_parse_object **); +typedef void (*btf_trace_nfs4_secinfo)(void *, const struct inode *, const struct qstr *, int); -typedef acpi_status (*acpi_parse_upwards)(struct acpi_walk_state *); +typedef void (*btf_trace_nfs4_lookupp)(void *, const struct inode *, int); -struct acpi_opcode_info; +typedef void (*btf_trace_nfs4_rename)(void *, const struct inode *, const struct qstr *, const struct inode *, const struct qstr *, int); -struct acpi_thread_state; +typedef void (*btf_trace_nfs4_access)(void *, const struct inode *, int); -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; -}; +typedef void (*btf_trace_nfs4_readlink)(void *, const struct inode *, int); -union acpi_parse_value { - u64 integer; - u32 size; - char *string; - u8 *buffer; - char *name; - union acpi_parse_object *arg; -}; +typedef void (*btf_trace_nfs4_readdir)(void *, const struct inode *, int); -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; -}; +typedef void (*btf_trace_nfs4_get_acl)(void *, const struct inode *, int); -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; -}; +typedef void (*btf_trace_nfs4_set_acl)(void *, const struct inode *, int); -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]; -}; +typedef void (*btf_trace_nfs4_get_security_label)(void *, const struct inode *, int); -union acpi_parse_object { - struct acpi_parse_obj_common common; - struct acpi_parse_obj_named named; - struct acpi_parse_obj_asl asl; -}; +typedef void (*btf_trace_nfs4_set_security_label)(void *, const struct inode *, int); -struct acpi_object_common { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; -}; +typedef void (*btf_trace_nfs4_setattr)(void *, const struct inode *, const nfs4_stateid *, int); -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; -}; +typedef void (*btf_trace_nfs4_delegreturn)(void *, const struct inode *, const nfs4_stateid *, int); -struct acpi_object_string { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - char *pointer; - u32 length; -}; +typedef void (*btf_trace_nfs4_open_stateid_update)(void *, const struct inode *, const nfs4_stateid *, int); -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; -}; +typedef void (*btf_trace_nfs4_open_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int); -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; -}; +typedef void (*btf_trace_nfs4_close_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int); -struct acpi_object_event { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - void *os_semaphore; -}; +typedef void (*btf_trace_nfs4_getattr)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); -typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *); +typedef void (*btf_trace_nfs4_lookup_root)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); -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; -}; +typedef void (*btf_trace_nfs4_fsinfo)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); -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 void (*btf_trace_nfs4_cb_getattr)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, int); -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; -}; +typedef void (*btf_trace_nfs4_cb_recall)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int); -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; -}; +typedef void (*btf_trace_nfs4_cb_layoutrecall_file)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int); -struct acpi_gpe_block_info; +typedef void (*btf_trace_nfs4_map_name_to_uid)(void *, const char *, int, u32, int); -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; -}; +typedef void (*btf_trace_nfs4_map_group_to_gid)(void *, const char *, int, u32, int); -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 void (*btf_trace_nfs4_map_uid_to_name)(void *, const char *, int, u32, int); -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; -}; +typedef void (*btf_trace_nfs4_map_gid_to_group)(void *, const char *, int, u32, int); -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; -}; +typedef void (*btf_trace_nfs4_read)(void *, const struct nfs_pgio_header *, int); -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; -}; +typedef void (*btf_trace_nfs4_pnfs_read)(void *, const struct nfs_pgio_header *, int); -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; -}; +typedef void (*btf_trace_nfs4_write)(void *, const struct nfs_pgio_header *, int); -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; -}; +typedef void (*btf_trace_nfs4_pnfs_write)(void *, const struct nfs_pgio_header *, int); -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; -}; +typedef void (*btf_trace_nfs4_commit)(void *, const struct nfs_commit_data *, int); -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 (*btf_trace_nfs4_pnfs_commit_ds)(void *, const struct nfs_commit_data *, int); -typedef void (*acpi_notify_handler)(acpi_handle, u32, void *); +typedef void (*btf_trace_nfs4_layoutget)(void *, const struct nfs_open_context *, const struct pnfs_layout_range *, const struct pnfs_layout_range *, const nfs4_stateid *, int); -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 void (*btf_trace_nfs4_layoutcommit)(void *, const struct inode *, const nfs4_stateid *, int); -typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *); +typedef void (*btf_trace_nfs4_layoutreturn)(void *, const struct inode *, const nfs4_stateid *, int); -typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **); +typedef void (*btf_trace_nfs4_layoutreturn_on_close)(void *, const struct inode *, const nfs4_stateid *, int); -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; -}; +typedef void (*btf_trace_nfs4_layouterror)(void *, const struct inode *, const nfs4_stateid *, int); -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; -}; +typedef void (*btf_trace_nfs4_layoutstats)(void *, const struct inode *, const nfs4_stateid *, int); -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; +enum pnfs_update_layout_reason { + PNFS_UPDATE_LAYOUT_UNKNOWN = 0, + PNFS_UPDATE_LAYOUT_NO_PNFS = 1, + PNFS_UPDATE_LAYOUT_RD_ZEROLEN = 2, + PNFS_UPDATE_LAYOUT_MDSTHRESH = 3, + PNFS_UPDATE_LAYOUT_NOMEM = 4, + PNFS_UPDATE_LAYOUT_BULK_RECALL = 5, + PNFS_UPDATE_LAYOUT_IO_TEST_FAIL = 6, + PNFS_UPDATE_LAYOUT_FOUND_CACHED = 7, + PNFS_UPDATE_LAYOUT_RETURN = 8, + PNFS_UPDATE_LAYOUT_RETRY = 9, + PNFS_UPDATE_LAYOUT_BLOCKED = 10, + PNFS_UPDATE_LAYOUT_INVALID_OPEN = 11, + PNFS_UPDATE_LAYOUT_SEND_LAYOUTGET = 12, + PNFS_UPDATE_LAYOUT_EXIT = 13, }; -typedef void (*acpi_object_handler)(acpi_handle, void *); +typedef void (*btf_trace_pnfs_update_layout)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *, enum pnfs_update_layout_reason); -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; -}; +typedef void (*btf_trace_pnfs_mds_fallback_pg_init_read)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -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; -}; +typedef void (*btf_trace_pnfs_mds_fallback_pg_init_write)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -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; -}; +typedef void (*btf_trace_pnfs_mds_fallback_pg_get_mirror_count)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -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; -}; +typedef void (*btf_trace_pnfs_mds_fallback_read_done)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -struct acpi_gpe_xrupt_info; +typedef void (*btf_trace_pnfs_mds_fallback_write_done)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -struct acpi_gpe_register_info; +typedef void (*btf_trace_pnfs_mds_fallback_read_pagelist)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -struct acpi_gpe_event_info; +typedef void (*btf_trace_pnfs_mds_fallback_write_pagelist)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -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; -}; +typedef void (*btf_trace_nfs4_deviceid_free)(void *, const struct nfs_client *, const struct nfs4_deviceid *); -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; -}; +typedef void (*btf_trace_nfs4_getdeviceinfo)(void *, const struct nfs_server *, const struct nfs4_deviceid *, int); -struct acpi_gpe_address { - u8 space_id; - u64 address; -}; +typedef void (*btf_trace_nfs4_find_deviceid)(void *, const struct nfs_server *, const struct nfs4_deviceid *, int); -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; -}; +typedef void (*btf_trace_ff_layout_read_error)(void *, const struct nfs_pgio_header *); -struct acpi_gpe_handler_info; +typedef void (*btf_trace_ff_layout_write_error)(void *, const struct nfs_pgio_header *); -struct acpi_gpe_notify_info; +typedef void (*btf_trace_ff_layout_commit_error)(void *, const struct nfs_commit_data *); -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 nfs42_seek_args; -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; -}; +struct nfs42_seek_res; -typedef u32 (*acpi_gpe_handler)(acpi_handle, u32, void *); +typedef void (*btf_trace_nfs4_llseek)(void *, const struct inode *, const struct nfs42_seek_args *, const struct nfs42_seek_res *, int); -struct acpi_gpe_handler_info { - acpi_gpe_handler address; - void *context; - struct acpi_namespace_node *method_node; - u8 original_flags; - u8 originally_enabled; +struct nfs42_seek_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *sa_fh; + nfs4_stateid sa_stateid; + u64 sa_offset; + u32 sa_what; }; -struct acpi_gpe_notify_info { - struct acpi_namespace_node *device_node; - struct acpi_gpe_notify_info *next; +struct nfs42_seek_res { + struct nfs4_sequence_res seq_res; + unsigned int status; + u32 sr_eof; + u64 sr_offset; }; -struct acpi_common_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; -}; +struct nfs42_falloc_args; -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; -}; +typedef void (*btf_trace_nfs4_fallocate)(void *, const struct inode *, const struct nfs42_falloc_args *, int); -struct acpi_update_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - union acpi_operand_object *object; +struct nfs42_falloc_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *falloc_fh; + nfs4_stateid falloc_stateid; + u64 falloc_offset; + u64 falloc_length; + const u32 *falloc_bitmask; }; -struct acpi_scope_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - struct acpi_namespace_node *node; -}; +typedef void (*btf_trace_nfs4_deallocate)(void *, const struct inode *, const struct nfs42_falloc_args *, int); -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 nfs42_copy_args; -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 nfs42_copy_res; -struct acpi_result_values { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - union acpi_operand_object *obj_desc[8]; -}; +struct nl4_server; -struct acpi_global_notify_handler; +typedef void (*btf_trace_nfs4_copy)(void *, const struct inode *, const struct inode *, const struct nfs42_copy_args *, const struct nfs42_copy_res *, const struct nl4_server *, int); -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; +struct nfs42_copy_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *src_fh; + nfs4_stateid src_stateid; + u64 src_pos; + struct nfs_fh *dst_fh; + nfs4_stateid dst_stateid; + u64 dst_pos; + u64 count; + bool sync; + struct nl4_server *cp_src; }; -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 nfs42_netaddr { + char netid[5]; + char addr[58]; + u32 netid_len; + u32 addr_len; }; -struct acpi_global_notify_handler { - acpi_notify_handler handler; - void *context; +enum netloc_type4 { + NL4_NAME = 1, + NL4_URL = 2, + NL4_NETADDR = 3, }; -struct acpi_opcode_info { - u32 parse_args; - u32 runtime_args; - u16 flags; - u8 object_type; - u8 class; - u8 type; +struct nl4_server { + enum netloc_type4 nl4_type; + union { + struct { + int nl4_str_sz; + char nl4_str[1025]; + }; + struct nfs42_netaddr nl4_addr; + } u; }; -union acpi_predefined_info; +struct nfs42_write_res { + nfs4_stateid stateid; + u64 count; + struct nfs_writeverf verifier; +}; -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 nfs42_copy_res { + struct nfs4_sequence_res seq_res; + struct nfs42_write_res write_res; + bool consecutive; + bool synchronous; + struct nfs_commitres commit_res; }; -struct acpi_name_info { - char name[4]; - u16 argument_list; - u8 expected_btypes; -} __attribute__((packed)); +struct nfs42_clone_args; -struct acpi_package_info { - u8 type; - u8 object_type1; - u8 count1; - u8 object_type2; - u8 count2; - u16 reserved; -} __attribute__((packed)); +typedef void (*btf_trace_nfs4_clone)(void *, const struct inode *, const struct inode *, const struct nfs42_clone_args *, int); -struct acpi_package_info2 { - u8 type; - u8 count; - u8 object_type[4]; - u8 reserved; +struct nfs42_clone_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *src_fh; + struct nfs_fh *dst_fh; + nfs4_stateid src_stateid; + nfs4_stateid dst_stateid; + __u64 src_offset; + __u64 dst_offset; + __u64 count; + const u32 *dst_bitmask; }; -struct acpi_package_info3 { - u8 type; - u8 count; - u8 object_type[2]; - u8 tail_object_type; - u16 reserved; -} __attribute__((packed)); +struct nfs42_copy_notify_args; -struct acpi_package_info4 { - u8 type; - u8 object_type1; - u8 count1; - u8 sub_object_types; - u8 pkg_count; - u16 reserved; -} __attribute__((packed)); +struct nfs42_copy_notify_res; -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; +typedef void (*btf_trace_nfs4_copy_notify)(void *, const struct inode *, const struct nfs42_copy_notify_args *, const struct nfs42_copy_notify_res *, int); + +struct nfs42_copy_notify_args { + struct nfs4_sequence_args cna_seq_args; + struct nfs_fh *cna_src_fh; + nfs4_stateid cna_src_stateid; + struct nl4_server cna_dst; }; -struct acpi_data_table_mapping { - void *pointer; +struct nfs42_copy_notify_res { + struct nfs4_sequence_res cnr_seq_res; + struct nfstime4 cnr_lease_time; + nfs4_stateid cnr_stateid; + struct nl4_server cnr_src; }; -struct acpi_mem_mapping; +struct nfs42_offload_status_args; -struct acpi_mem_space_context { - u32 length; - acpi_physical_address address; - struct acpi_mem_mapping *cur_mm; - struct acpi_mem_mapping *first_mm; -}; +typedef void (*btf_trace_nfs4_offload_cancel)(void *, const struct nfs42_offload_status_args *, int); -struct acpi_mem_mapping { - acpi_physical_address physical_address; - u8 *logical_address; - acpi_size length; - struct acpi_mem_mapping *next_mm; +struct nfs42_offload_status_args { + struct nfs4_sequence_args osa_seq_args; + struct nfs_fh *osa_src_fh; + nfs4_stateid osa_stateid; }; -struct acpi_object_list { - u32 count; - union acpi_object *pointer; -}; +typedef void (*btf_trace_nfs4_getxattr)(void *, const struct inode *, const char *, int); -struct acpi_buffer { - acpi_size length; - void *pointer; -}; +typedef void (*btf_trace_nfs4_setxattr)(void *, const struct inode *, const char *, int); -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; -}; +typedef void (*btf_trace_nfs4_removexattr)(void *, const struct inode *, const char *, int); -struct acpi_table_desc; +typedef void (*btf_trace_nfs4_listxattr)(void *, const struct inode *, int); -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 { + NFS_LAYOUT_RO_FAILED = 0, + NFS_LAYOUT_RW_FAILED = 1, + NFS_LAYOUT_BULK_RECALL = 2, + NFS_LAYOUT_RETURN = 3, + NFS_LAYOUT_RETURN_LOCK = 4, + NFS_LAYOUT_RETURN_REQUESTED = 5, + NFS_LAYOUT_INVALID_STID = 6, + NFS_LAYOUT_FIRST_LAYOUTGET = 7, + NFS_LAYOUT_INODE_FREEING = 8, + NFS_LAYOUT_HASHED = 9, + NFS_LAYOUT_DRAIN = 10, }; -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; +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 acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); - -typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *); - -struct acpi_rsconvert_info { - u8 opcode; - u8 resource_offset; - u8 aml_offset; - u8 value; +struct trace_event_raw_nfs4_clientid_event { + struct trace_entry ent; + u32 __data_loc_dstaddr; + unsigned long error; + char __data[0]; }; -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 trace_event_raw_nfs4_sequence_done { + struct trace_entry ent; + unsigned int session; + unsigned int slot_nr; + unsigned int seq_nr; + unsigned int highest_slotid; + unsigned int target_highest_slotid; + unsigned long status_flags; + unsigned long error; + char __data[0]; }; -typedef u64 async_cookie_t; - -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 trace_event_raw_nfs4_cb_sequence { + struct trace_entry ent; + unsigned int session; + unsigned int slot_nr; + unsigned int seq_nr; + unsigned int highest_slotid; + unsigned int cachethis; + unsigned long error; + char __data[0]; }; -struct acpi_driver { - char name[80]; - char class[80]; - const struct acpi_device_id *ids; - unsigned int flags; - struct acpi_device_ops ops; - struct device_driver drv; - struct module *owner; +struct trace_event_raw_nfs4_cb_seqid_err { + struct trace_entry ent; + unsigned int session; + unsigned int slot_nr; + unsigned int seq_nr; + unsigned int highest_slotid; + unsigned int cachethis; + unsigned long error; + char __data[0]; }; -struct acpi_offsets { - size_t offset; - u8 mode; +struct trace_event_raw_nfs4_cb_offload { + struct trace_entry ent; + unsigned long error; + u32 fhandle; + loff_t cb_count; + int cb_how; + int cb_stateid_seq; + u32 cb_stateid_hash; + char __data[0]; }; -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, +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 dmi_strmatch { - unsigned char slot: 7; - unsigned char exact_match: 1; - char substr[79]; +struct trace_event_raw_nfs4_state_mgr { + struct trace_entry ent; + unsigned long state; + u32 __data_loc_hostname; + char __data[0]; }; -struct dmi_system_id { - int (*callback)(const struct dmi_system_id *); - const char *ident; - struct dmi_strmatch matches[4]; - void *driver_data; +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]; }; -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, +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]; }; -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 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]; }; -enum led_brightness { - LED_OFF = 0, - LED_ON = 1, - LED_HALF = 127, - LED_FULL = 255, +struct trace_event_raw_nfs4_cb_error_class { + struct trace_entry ent; + u32 xid; + u32 cbident; + char __data[0]; }; -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, -}; +struct nfs4_cached_acl; -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 nfs_delegation; + +struct nfs4_xattr_cache; + +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 { + int cnt; + struct { + u64 start; + u64 end; + } gap[16]; + } *ooo; + 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 nfs4_xattr_cache *xattr_cache; + union { + struct inode vfs_inode; + }; }; -enum dmi_entry_type { - DMI_ENTRY_BIOS = 0, - DMI_ENTRY_SYSTEM = 1, - DMI_ENTRY_BASEBOARD = 2, - DMI_ENTRY_CHASSIS = 3, - DMI_ENTRY_PROCESSOR = 4, - DMI_ENTRY_MEM_CONTROLLER = 5, - DMI_ENTRY_MEM_MODULE = 6, - DMI_ENTRY_CACHE = 7, - DMI_ENTRY_PORT_CONNECTOR = 8, - DMI_ENTRY_SYSTEM_SLOT = 9, - DMI_ENTRY_ONBOARD_DEVICE = 10, - DMI_ENTRY_OEMSTRINGS = 11, - DMI_ENTRY_SYSCONF = 12, - DMI_ENTRY_BIOS_LANG = 13, - DMI_ENTRY_GROUP_ASSOC = 14, - DMI_ENTRY_SYSTEM_EVENT_LOG = 15, - DMI_ENTRY_PHYS_MEM_ARRAY = 16, - DMI_ENTRY_MEM_DEVICE = 17, - DMI_ENTRY_32_MEM_ERROR = 18, - DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19, - DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20, - DMI_ENTRY_BUILTIN_POINTING_DEV = 21, - DMI_ENTRY_PORTABLE_BATTERY = 22, - DMI_ENTRY_SYSTEM_RESET = 23, - DMI_ENTRY_HW_SECURITY = 24, - DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25, - DMI_ENTRY_VOLTAGE_PROBE = 26, - DMI_ENTRY_COOLING_DEV = 27, - DMI_ENTRY_TEMP_PROBE = 28, - DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29, - DMI_ENTRY_OOB_REMOTE_ACCESS = 30, - DMI_ENTRY_BIS_ENTRY = 31, - DMI_ENTRY_SYSTEM_BOOT = 32, - DMI_ENTRY_MGMT_DEV = 33, - DMI_ENTRY_MGMT_DEV_COMPONENT = 34, - DMI_ENTRY_MGMT_DEV_THRES = 35, - DMI_ENTRY_MEM_CHANNEL = 36, - DMI_ENTRY_IPMI_DEV = 37, - DMI_ENTRY_SYS_POWER_SUPPLY = 38, - DMI_ENTRY_ADDITIONAL = 39, - DMI_ENTRY_ONBOARD_DEV_EXT = 40, - DMI_ENTRY_MGMT_CONTROLLER_HOST = 41, - DMI_ENTRY_INACTIVE = 126, - DMI_ENTRY_END_OF_TABLE = 127, +struct 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 test_gen; + unsigned long flags; + refcount_t refcount; + spinlock_t lock; + struct callback_head rcu; }; -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, +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]; }; -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, +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]; }; -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 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 power_supply; +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]; +}; -union power_supply_propval; +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 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 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 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 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 power_supply_battery_info; +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 thermal_zone_device; +struct trace_event_raw_nfs4_test_stateid_event { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; + u64 fileid; + int stateid_seq; + u32 stateid_hash; + char __data[0]; +}; -struct led_trigger; +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 power_supply { - const struct power_supply_desc *desc; - char **supplied_to; - size_t num_supplicants; - char **supplied_from; - size_t num_supplies; - struct device_node *of_node; - void *drv_data; - struct device dev; - struct work_struct changed_work; - struct delayed_work deferred_register_work; - spinlock_t changed_lock; - bool changed; - bool initialized; - bool removing; - atomic_t use_cnt; - struct power_supply_battery_info *battery_info; - struct thermal_zone_device *tzd; - struct thermal_cooling_device *tcd; - 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; +struct trace_event_raw_nfs4_lookupp { + struct trace_entry ent; + dev_t dev; + u64 ino; + unsigned long error; + char __data[0]; }; -union power_supply_propval { - int intval; - const char *strval; +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 power_supply_maintenance_charge_table; +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 power_supply_battery_ocv_table; +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 power_supply_resistance_temp_table; +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 power_supply_vbat_ri_table; +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 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 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 power_supply_maintenance_charge_table { - int charge_current_max_ua; - int charge_voltage_max_uv; - int charge_safety_timer_minutes; +struct trace_event_raw_nfs4_idmap_event { + struct trace_entry ent; + unsigned long error; + u32 id; + u32 __data_loc_name; + char __data[0]; }; -struct power_supply_battery_ocv_table { - int ocv; - int capacity; +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 power_supply_resistance_temp_table { - int temp; - int resistance; +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 power_supply_vbat_ri_table { - int vbat_uv; - int ri_uohm; +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 led_classdev; +struct trace_event_raw_nfs4_layoutget { + struct trace_entry ent; + dev_t dev; + u32 fhandle; + u64 fileid; + u32 iomode; + u64 offset; + u64 count; + unsigned long error; + int stateid_seq; + u32 stateid_hash; + int layoutstateid_seq; + u32 layoutstateid_hash; + char __data[0]; +}; -struct led_hw_trigger_type; +struct trace_event_raw_pnfs_update_layout { + struct trace_entry ent; + dev_t dev; + u64 fileid; + u32 fhandle; + loff_t pos; + u64 count; + enum pnfs_iomode iomode; + int layoutstateid_seq; + u32 layoutstateid_hash; + long lseg; + enum pnfs_update_layout_reason reason; + char __data[0]; +}; -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 trace_event_raw_pnfs_layout_event { + struct trace_entry ent; + dev_t dev; + u64 fileid; + u32 fhandle; + loff_t pos; + u64 count; + enum pnfs_iomode iomode; + int layoutstateid_seq; + u32 layoutstateid_hash; + long lseg; + char __data[0]; }; -struct led_pattern; +struct trace_event_raw_nfs4_deviceid_event { + struct trace_entry ent; + u32 __data_loc_dstaddr; + unsigned char deviceid[16]; + char __data[0]; +}; -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; - unsigned long delayed_delay_on; - unsigned long delayed_delay_off; - 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; - const char *hw_control_trigger; - int (*hw_control_is_supported)(struct led_classdev *, unsigned long); - int (*hw_control_set)(struct led_classdev *, unsigned long); - int (*hw_control_get)(struct led_classdev *, unsigned long *); - struct device * (*hw_control_get_device)(struct led_classdev *); - struct mutex led_access; +struct trace_event_raw_nfs4_deviceid_status { + struct trace_entry ent; + dev_t dev; + int status; + u32 __data_loc_dstaddr; + unsigned char deviceid[16]; + char __data[0]; }; -struct led_pattern { - u32 delta_t; - int brightness; +struct trace_event_raw_nfs4_flexfiles_io_event { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; + u64 fileid; + loff_t offset; + u32 count; + int stateid_seq; + u32 stateid_hash; + u32 __data_loc_dstaddr; + char __data[0]; }; -struct led_hw_trigger_type { - int dummy; +struct trace_event_raw_ff_layout_commit_error { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; + u64 fileid; + loff_t offset; + u32 count; + u32 __data_loc_dstaddr; + char __data[0]; }; -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; +struct trace_event_raw_nfs4_llseek { + struct trace_entry ent; + unsigned long error; + u32 fhandle; + u32 fileid; + dev_t dev; + int stateid_seq; + u32 stateid_hash; + loff_t offset_s; + u32 what; + loff_t offset_r; + u32 eof; + char __data[0]; }; -typedef void (*async_func_t)(void *, async_cookie_t); +struct trace_event_raw_nfs4_sparse_event { + struct trace_entry ent; + unsigned long error; + loff_t offset; + loff_t len; + dev_t dev; + u32 fhandle; + u64 fileid; + int stateid_seq; + u32 stateid_hash; + char __data[0]; +}; -struct dmi_header { - u8 type; - u8 length; - u16 handle; +struct trace_event_raw_nfs4_copy { + struct trace_entry ent; + unsigned long error; + u32 src_fhandle; + u32 src_fileid; + u32 dst_fhandle; + u32 dst_fileid; + dev_t src_dev; + dev_t dst_dev; + int src_stateid_seq; + u32 src_stateid_hash; + int dst_stateid_seq; + u32 dst_stateid_hash; + loff_t src_offset; + loff_t dst_offset; + bool sync; + loff_t len; + int res_stateid_seq; + u32 res_stateid_hash; + loff_t res_count; + bool res_sync; + bool res_cons; + bool intra; + char __data[0]; }; -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 trace_event_raw_nfs4_clone { + struct trace_entry ent; + unsigned long error; + u32 src_fhandle; + u32 src_fileid; + u32 dst_fhandle; + u32 dst_fileid; + dev_t src_dev; + dev_t dst_dev; + loff_t src_offset; + loff_t dst_offset; + int src_stateid_seq; + u32 src_stateid_hash; + int dst_stateid_seq; + u32 dst_stateid_hash; + loff_t len; + char __data[0]; }; -struct clk_hw; +struct trace_event_raw_nfs4_copy_notify { + struct trace_entry ent; + unsigned long error; + u32 fhandle; + u32 fileid; + dev_t dev; + int stateid_seq; + u32 stateid_hash; + int res_stateid_seq; + u32 res_stateid_hash; + char __data[0]; +}; -struct clk_rate_request; +struct trace_event_raw_nfs4_offload_cancel { + struct trace_entry ent; + unsigned long error; + u32 fhandle; + int stateid_seq; + u32 stateid_hash; + char __data[0]; +}; -struct clk_duty; +struct trace_event_raw_nfs4_xattr_event { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; + u64 fileid; + u32 __data_loc_name; + char __data[0]; +}; -struct clk_ops { - int (*prepare)(struct clk_hw *); - void (*unprepare)(struct clk_hw *); - int (*is_prepared)(struct clk_hw *); - void (*unprepare_unused)(struct clk_hw *); - int (*enable)(struct clk_hw *); - void (*disable)(struct clk_hw *); - int (*is_enabled)(struct clk_hw *); - void (*disable_unused)(struct clk_hw *); - int (*save_context)(struct clk_hw *); - void (*restore_context)(struct clk_hw *); - unsigned long (*recalc_rate)(struct clk_hw *, unsigned long); - long (*round_rate)(struct clk_hw *, unsigned long, unsigned long *); - int (*determine_rate)(struct clk_hw *, struct clk_rate_request *); - int (*set_parent)(struct clk_hw *, u8); - u8 (*get_parent)(struct clk_hw *); - int (*set_rate)(struct clk_hw *, unsigned long, unsigned long); - int (*set_rate_and_parent)(struct clk_hw *, unsigned long, unsigned long, u8); - unsigned long (*recalc_accuracy)(struct clk_hw *, unsigned long); - int (*get_phase)(struct clk_hw *); - int (*set_phase)(struct clk_hw *, int); - int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *); - int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *); - int (*init)(struct clk_hw *); - void (*terminate)(struct clk_hw *); - void (*debug_init)(struct clk_hw *, struct dentry *); +struct trace_event_data_offsets_nfs4_clientid_event { + u32 dstaddr; }; -struct clk_core; +struct trace_event_data_offsets_nfs4_state_mgr { + u32 hostname; +}; -struct clk_init_data; +struct trace_event_data_offsets_nfs4_state_mgr_failed { + u32 hostname; + u32 section; +}; -struct clk_hw { - struct clk_core *core; - struct clk *clk; - const struct clk_init_data *init; +struct trace_event_data_offsets_nfs4_open_event { + u32 name; }; -struct clk_parent_data; +struct trace_event_data_offsets_nfs4_lookup_event { + u32 name; +}; -struct clk_init_data { - const char *name; - const struct clk_ops *ops; - const char * const *parent_names; - const struct clk_parent_data *parent_data; - const struct clk_hw **parent_hws; - u8 num_parents; - unsigned long flags; +struct trace_event_data_offsets_nfs4_rename { + u32 oldname; + u32 newname; }; -struct clk_parent_data { - const struct clk_hw *hw; - const char *fw_name; - const char *name; - int index; +struct trace_event_data_offsets_nfs4_inode_callback_event { + u32 dstaddr; }; -struct clk_rate_request { - struct clk_core *core; - unsigned long rate; - unsigned long min_rate; - unsigned long max_rate; - unsigned long best_parent_rate; - struct clk_hw *best_parent_hw; +struct trace_event_data_offsets_nfs4_inode_stateid_callback_event { + u32 dstaddr; }; -struct clk_duty { - unsigned int num; - unsigned int den; +struct trace_event_data_offsets_nfs4_idmap_event { + u32 name; }; -struct owl_gate_hw { - u32 reg; - u8 bit_idx; - u8 gate_flags; +struct trace_event_data_offsets_nfs4_deviceid_event { + u32 dstaddr; }; -struct owl_clk_common { - struct regmap *regmap; - struct clk_hw hw; +struct trace_event_data_offsets_nfs4_deviceid_status { + u32 dstaddr; }; -struct owl_gate { - struct owl_gate_hw gate_hw; - struct owl_clk_common common; +struct trace_event_data_offsets_nfs4_flexfiles_io_event { + u32 dstaddr; }; -struct clk_div_table; - -struct clk_divider { - struct clk_hw hw; - void *reg; - u8 shift; - u8 width; - u8 flags; - const struct clk_div_table *table; - spinlock_t *lock; +struct trace_event_data_offsets_ff_layout_commit_error { + u32 dstaddr; }; -struct clk_div_table { - unsigned int val; - unsigned int div; +struct trace_event_data_offsets_nfs4_xattr_event { + u32 name; }; -struct clk_busy_divider { - struct clk_divider div; - const struct clk_ops *div_ops; - void *reg; - u8 shift; -}; +struct trace_event_data_offsets_nfs4_sequence_done {}; -struct clk_mux { - struct clk_hw hw; - void *reg; - const u32 *table; - u32 mask; - u8 shift; - u8 flags; - spinlock_t *lock; -}; +struct trace_event_data_offsets_nfs4_cb_sequence {}; -struct clk_busy_mux { - struct clk_mux mux; - const struct clk_ops *mux_ops; - void *reg; - u8 shift; -}; +struct trace_event_data_offsets_nfs4_cb_seqid_err {}; -struct clk_gate { - struct clk_hw hw; - void *reg; - u8 bit_idx; - u8 flags; - spinlock_t *lock; -}; +struct trace_event_data_offsets_nfs4_cb_offload {}; -struct clk_cpu { - struct clk_hw hw; - struct clk *div; - struct clk *mux; - struct clk *pll; - struct clk *step; -}; +struct trace_event_data_offsets_nfs4_setup_sequence {}; -struct clk_fixup_div { - struct clk_divider divider; - const struct clk_ops *ops; - void (*fixup)(u32 *); -}; +struct trace_event_data_offsets_nfs4_xdr_bad_operation {}; -struct clk_pfd { - struct clk_hw hw; - void *reg; - u8 idx; -}; +struct trace_event_data_offsets_nfs4_xdr_event {}; -enum imx_pll14xx_type { - PLL_1416X = 0, - PLL_1443X = 1, -}; +struct trace_event_data_offsets_nfs4_cb_error_class {}; -struct imx_pll14xx_rate_table; +struct trace_event_data_offsets_nfs4_cached_open {}; -struct imx_pll14xx_clk { - enum imx_pll14xx_type type; - const struct imx_pll14xx_rate_table *rate_table; - int rate_count; - int flags; -}; +struct trace_event_data_offsets_nfs4_close {}; -struct imx_pll14xx_rate_table { - unsigned int rate; - unsigned int pdiv; - unsigned int mdiv; - unsigned int sdiv; - unsigned int kdiv; -}; +struct trace_event_data_offsets_nfs4_lock_event {}; -struct clk_pll14xx { - struct clk_hw hw; - void *base; - enum imx_pll14xx_type type; - const struct imx_pll14xx_rate_table *rate_table; - int rate_count; -}; +struct trace_event_data_offsets_nfs4_set_lock {}; -struct imx_clk_scu_rsrc_table { - const u32 *rsrc; - u8 num; -}; +struct trace_event_data_offsets_nfs4_state_lock_reclaim {}; -struct reset_controller_dev; +struct trace_event_data_offsets_nfs4_set_delegation_event {}; -struct reset_control_ops { - int (*reset)(struct reset_controller_dev *, unsigned long); - int (*assert)(struct reset_controller_dev *, unsigned long); - int (*deassert)(struct reset_controller_dev *, unsigned long); - int (*status)(struct reset_controller_dev *, unsigned long); -}; +struct trace_event_data_offsets_nfs4_delegreturn_exit {}; -struct reset_controller_dev { - const struct reset_control_ops *ops; - struct module *owner; - struct list_head list; - struct list_head reset_control_head; - struct device *dev; - struct device_node *of_node; - int of_reset_n_cells; - int (*of_xlate)(struct reset_controller_dev *, const struct of_phandle_args *); - unsigned int nr_resets; -}; +struct trace_event_data_offsets_nfs4_test_stateid_event {}; -enum imx_pllv4_type { - IMX_PLLV4_IMX7ULP = 0, - IMX_PLLV4_IMX8ULP = 1, -}; +struct trace_event_data_offsets_nfs4_lookupp {}; -enum imx_pfdv2_type { - IMX_PFDV2_IMX7ULP = 0, - IMX_PFDV2_IMX8ULP = 1, -}; +struct trace_event_data_offsets_nfs4_inode_event {}; -struct pcc_reset_dev { - void *base; - struct reset_controller_dev rcdev; - const u32 *resets; - spinlock_t *lock; -}; +struct trace_event_data_offsets_nfs4_inode_stateid_event {}; -struct clk_hw_onecell_data { - unsigned int num; - struct clk_hw *hws[0]; -}; +struct trace_event_data_offsets_nfs4_getattr_event {}; -struct mtk_fixed_factor { - int id; - const char *name; - const char *parent_name; - int mult; - int div; - unsigned long flags; -}; +struct trace_event_data_offsets_nfs4_read_event {}; -struct mtk_gate_regs; +struct trace_event_data_offsets_nfs4_write_event {}; -struct mtk_gate { - int id; - const char *name; - const char *parent_name; - const struct mtk_gate_regs *regs; - int shift; - const struct clk_ops *ops; - unsigned long flags; -}; +struct trace_event_data_offsets_nfs4_commit_event {}; -struct mtk_gate_regs { - u32 sta_ofs; - u32 clr_ofs; - u32 set_ofs; -}; +struct trace_event_data_offsets_nfs4_layoutget {}; -struct mtk_composite { - int id; - const char *name; - const char * const *parent_names; - const char *parent; - unsigned int flags; - uint32_t mux_reg; - uint32_t divider_reg; - uint32_t gate_reg; - signed char mux_shift; - signed char mux_width; - signed char gate_shift; - signed char divider_shift; - signed char divider_width; - u8 mux_flags; - signed char num_parents; -}; +struct trace_event_data_offsets_pnfs_update_layout {}; -enum mtk_reset_version { - MTK_RST_SIMPLE = 0, - MTK_RST_SET_CLR = 1, - MTK_RST_MAX = 2, -}; +struct trace_event_data_offsets_pnfs_layout_event {}; -struct mtk_clk_rst_desc { - enum mtk_reset_version version; - u16 *rst_bank_ofs; - u32 rst_bank_nr; - u16 *rst_idx_map; - u32 rst_idx_map_nr; -}; +struct trace_event_data_offsets_nfs4_llseek {}; -struct mtk_clk_divider; +struct trace_event_data_offsets_nfs4_sparse_event {}; -struct mtk_fixed_clk; +struct trace_event_data_offsets_nfs4_copy {}; -struct mtk_mux; +struct trace_event_data_offsets_nfs4_clone {}; -struct mtk_clk_desc { - const struct mtk_gate *clks; - size_t num_clks; - const struct mtk_composite *composite_clks; - size_t num_composite_clks; - const struct mtk_clk_divider *divider_clks; - size_t num_divider_clks; - const struct mtk_fixed_clk *fixed_clks; - size_t num_fixed_clks; - const struct mtk_fixed_factor *factor_clks; - size_t num_factor_clks; - const struct mtk_mux *mux_clks; - size_t num_mux_clks; - const struct mtk_clk_rst_desc *rst_desc; - spinlock_t *clk_lock; - bool shared_io; - int (*clk_notifier_func)(struct device *, struct clk *); - unsigned int mfg_clk_idx; -}; +struct trace_event_data_offsets_nfs4_copy_notify {}; -struct mtk_clk_divider { - int id; - const char *name; - const char *parent_name; - unsigned long flags; - u32 div_reg; - unsigned char div_shift; - unsigned char div_width; - unsigned char clk_divider_flags; - const struct clk_div_table *clk_div_table; -}; +struct trace_event_data_offsets_nfs4_offload_cancel {}; -struct mtk_fixed_clk { - int id; - const char *name; - const char *parent; - unsigned long rate; -}; +struct ipc_params; -struct mtk_mux { - int id; - const char *name; - const char * const *parent_names; - unsigned int flags; - u32 mux_ofs; - u32 set_ofs; - u32 clr_ofs; - u32 upd_ofs; - u8 mux_shift; - u8 mux_width; - u8 gate_shift; - s8 upd_shift; - const struct clk_ops *ops; - signed char num_parents; +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 clk_regmap; - -struct meson_aoclk_data { - const unsigned int reset_reg; - const int num_reset; - const unsigned int *reset; - const int num_clks; - struct clk_regmap **clks; - const struct clk_hw_onecell_data *hw_data; +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 clk_regmap { - struct clk_hw hw; - struct regmap *map; - void *data; +struct ipc_namespace { + struct ipc_ids ids[3]; + int sem_ctls[4]; + int used_sems; + unsigned int msg_ctlmax; + unsigned int msg_ctlmnb; + unsigned int msg_ctlmni; + struct percpu_counter percpu_msg_bytes; + struct percpu_counter percpu_msg_hdrs; + size_t shm_ctlmax; + size_t shm_ctlall; + unsigned long shm_tot; + int shm_ctlmni; + int shm_rmid_forced; + struct notifier_block ipcns_nb; + struct vfsmount *mq_mnt; + unsigned int mq_queues_count; + unsigned int mq_queues_max; + unsigned int mq_msg_max; + unsigned int mq_msgsize_max; + unsigned int mq_msg_default; + unsigned int mq_msgsize_default; + struct ctl_table_set mq_set; + struct ctl_table_header *mq_sysctls; + struct ctl_table_set ipc_set; + struct ctl_table_header *ipc_sysctls; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct llist_node mnt_llist; + struct ns_common ns; }; -struct meson_clk_dualdiv_param { - unsigned int n1; - unsigned int n2; - unsigned int m1; - unsigned int m2; - unsigned int dual; +struct ipc_params { + key_t key; + int flg; + union { + size_t size; + int nsems; + } u; }; -struct pm_domain_data { - struct list_head list_node; - struct device *dev; +struct msg_queue { + struct kern_ipc_perm q_perm; + time64_t q_stime; + time64_t q_rtime; + time64_t q_ctime; + unsigned long q_cbytes; + unsigned long q_qnum; + unsigned long q_qbytes; + struct pid *q_lspid; + struct pid *q_lrpid; + struct list_head q_messages; + struct list_head q_receivers; + struct list_head q_senders; + long: 64; + long: 64; }; -struct clk_regmap___2; +typedef unsigned int __kernel_uid_t; -struct qcom_reset_map; +typedef unsigned int __kernel_gid_t; -struct gdsc; +typedef unsigned int __kernel_mode_t; -struct qcom_cc_desc { - const struct regmap_config *config; - struct clk_regmap___2 **clks; - size_t num_clks; - const struct qcom_reset_map *resets; - size_t num_resets; - struct gdsc **gdscs; - size_t num_gdscs; - struct clk_hw **clk_hws; - size_t num_clk_hws; +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 clk_regmap___2 { - struct clk_hw hw; - struct regmap *regmap; - unsigned int enable_reg; - unsigned int enable_mask; - bool enable_is_inverted; -}; +struct msg; -struct qcom_reset_map { - unsigned int reg; - u8 bit; - u8 udelay; - u32 bitmask; -}; +typedef __kernel_long_t __kernel_old_time_t; -enum gpd_status { - GENPD_STATE_ON = 0, - GENPD_STATE_OFF = 1, -}; +typedef int __kernel_ipc_pid_t; -struct gpd_dev_ops { - int (*start)(struct device *); - int (*stop)(struct device *); +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 dev_power_governor; - -struct genpd_governor_data; - -struct opp_table; - -struct dev_pm_opp; - -struct genpd_power_state; - -struct genpd_lock_ops; +struct msg_msg; -struct generic_pm_domain { - struct device dev; - struct dev_pm_domain domain; - struct list_head gpd_list_node; - struct list_head parent_links; - struct list_head child_links; - struct list_head dev_list; - struct dev_power_governor *gov; - struct genpd_governor_data *gd; - struct work_struct power_off_work; - struct fwnode_handle *provider; - bool has_provider; - const char *name; - atomic_t sd_count; - enum gpd_status status; - unsigned int device_count; - unsigned int suspended_count; - unsigned int prepared_count; - unsigned int performance_state; - cpumask_var_t cpus; - bool synced_poweroff; - int (*power_off)(struct generic_pm_domain *); - int (*power_on)(struct generic_pm_domain *); - struct raw_notifier_head power_notifiers; - struct opp_table *opp_table; - unsigned int (*opp_to_performance_state)(struct generic_pm_domain *, struct dev_pm_opp *); - int (*set_performance_state)(struct generic_pm_domain *, unsigned int); - struct gpd_dev_ops dev_ops; - int (*attach_dev)(struct generic_pm_domain *, struct device *); - void (*detach_dev)(struct generic_pm_domain *, struct device *); - unsigned int flags; - struct genpd_power_state *states; - void (*free_states)(struct genpd_power_state *, unsigned int); - unsigned int state_count; - unsigned int state_idx; - u64 on_time; - u64 accounting_time; - const struct genpd_lock_ops *lock_ops; - union { - struct mutex mlock; - struct { - spinlock_t slock; - unsigned long lock_flags; - }; - }; +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 gdsc { - struct generic_pm_domain pd; - struct generic_pm_domain *parent; - struct regmap *regmap; - unsigned int gdscr; - unsigned int collapse_ctrl; - unsigned int collapse_mask; - unsigned int gds_hw_ctrl; - unsigned int clamp_io_ctrl; - unsigned int *cxcs; - unsigned int cxc_count; - unsigned int en_rest_wait_val; - unsigned int en_few_wait_val; - unsigned int clk_dis_wait_val; - const u8 pwrsts; - const u16 flags; - struct reset_controller_dev *rcdev; - unsigned int *resets; - unsigned int reset_count; - const char *supply; - struct regulator *rsupply; -}; +struct msg_msgseg; -struct dev_power_governor { - bool (*power_down_ok)(struct dev_pm_domain *); - bool (*suspend_ok)(struct device *); +struct msg_msg { + struct list_head m_list; + long m_type; + size_t m_ts; + struct msg_msgseg *next; + void *security; }; -struct genpd_governor_data { - s64 max_off_time_ns; - bool max_off_time_changed; - ktime_t next_wakeup; - ktime_t next_hrtimer; - bool cached_power_down_ok; - bool cached_power_down_state_idx; +struct msg_sender { + struct list_head list; + struct task_struct *tsk; + size_t msgsz; }; -struct genpd_power_state { - s64 power_off_latency_ns; - s64 power_on_latency_ns; - s64 residency_ns; - u64 usage; - u64 rejected; - struct fwnode_handle *fwnode; - u64 idle_time; - void *data; -}; +typedef u32 compat_ulong_t; -struct genpd_lock_ops { - void (*lock)(struct generic_pm_domain *); - void (*lock_nested)(struct generic_pm_domain *, int); - int (*lock_interruptible)(struct generic_pm_domain *); - void (*unlock)(struct generic_pm_domain *); +struct msgbuf { + __kernel_long_t mtype; + char mtext[1]; }; -struct parent_map; - -struct freq_tbl; +typedef s32 compat_ssize_t; -struct clk_rcg2 { - u32 cmd_rcgr; - u8 mnd_width; - u8 hid_width; - u8 safe_src_index; - const struct parent_map *parent_map; - const struct freq_tbl *freq_tbl; - struct clk_regmap___2 clkr; - u8 cfg_off; - u32 parked_cfg; - bool hw_clk_ctrl; +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 parent_map { - u8 src; - u8 cfg; +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 freq_tbl { - unsigned long freq; - u8 src; - u8 pre_div; - u16 m; - u16 n; +struct msginfo { + int msgpool; + int msgmap; + int msgmax; + int msgmnb; + int msgmni; + int msgssz; + int msgtql; + unsigned short msgseg; }; -struct clk_branch { - u32 hwcg_reg; - u32 halt_reg; - u8 hwcg_bit; - u8 halt_bit; - u8 halt_check; - struct clk_regmap___2 clkr; -}; +typedef s32 compat_key_t; -struct pll_vco; +typedef u32 __compat_uid32_t; -struct clk_alpha_pll { - u32 offset; - const u8 *regs; - const struct pll_vco *vco_table; - size_t num_vco; - u8 flags; - struct clk_regmap___2 clkr; -}; +typedef u32 __compat_gid32_t; -struct pll_vco { - unsigned long min_freq; - unsigned long max_freq; - u32 val; -}; +typedef u16 compat_mode_t; -struct pll_freq_tbl; +typedef u16 compat_ushort_t; -struct clk_pll { - u32 l_reg; - u32 m_reg; - u32 n_reg; - u32 config_reg; - u32 mode_reg; - u32 status_reg; - u8 status_bit; - u8 post_div_width; - u8 post_div_shift; - const struct pll_freq_tbl *freq_tbl; - struct clk_regmap___2 clkr; +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; }; -struct pll_freq_tbl { - unsigned long freq; - u16 l; - u16 m; - u16 n; - u32 ibits; -}; +typedef s32 compat_pid_t; -struct clk_fixed_factor { - struct clk_hw hw; - unsigned int mult; - unsigned int div; +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; }; -struct alpha_pll_config { - u32 l; - u32 alpha; - u32 alpha_hi; - u32 config_ctl_val; - u32 config_ctl_hi_val; - u32 config_ctl_hi1_val; - u32 user_ctl_val; - u32 user_ctl_hi_val; - u32 user_ctl_hi1_val; - u32 test_ctl_val; - u32 test_ctl_mask; - u32 test_ctl_hi_val; - u32 test_ctl_hi_mask; - u32 test_ctl_hi1_val; - u32 test_ctl_hi2_val; - u32 main_output_mask; - u32 aux_output_mask; - u32 aux2_output_mask; - u32 early_output_mask; - u32 alpha_en_mask; - u32 alpha_mode_mask; - u32 pre_div_val; - u32 pre_div_mask; - u32 post_div_val; - u32 post_div_mask; - u32 vco_val; - u32 vco_mask; - u32 status_val; - u32 status_mask; - u32 lock_det; -}; +typedef u16 __compat_uid_t; -enum clk_reg_layout { - CLK_REG_LAYOUT_RCAR_GEN2_AND_GEN3 = 0, - CLK_REG_LAYOUT_RZ_A = 1, - CLK_REG_LAYOUT_RCAR_GEN4 = 2, -}; +typedef u16 __compat_gid_t; -struct cpg_core_clk; +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; +}; -struct mssr_mod_clk; +typedef u16 compat_ipc_pid_t; -struct cpg_mssr_info { - const struct cpg_core_clk *early_core_clks; - unsigned int num_early_core_clks; - const struct mssr_mod_clk *early_mod_clks; - unsigned int num_early_mod_clks; - const struct cpg_core_clk *core_clks; - unsigned int num_core_clks; - unsigned int last_dt_core_clk; - unsigned int num_total_core_clks; - enum clk_reg_layout reg_layout; - const struct mssr_mod_clk *mod_clks; - unsigned int num_mod_clks; - unsigned int num_hw_mod_clks; - const unsigned int *crit_mod_clks; - unsigned int num_crit_mod_clks; - const unsigned int *core_pm_clks; - unsigned int num_core_pm_clks; - int (*init)(struct device *); - struct clk * (*cpg_clk_register)(struct device *, const struct cpg_core_clk *, const struct cpg_mssr_info *, struct clk **, void *, struct raw_notifier_head *); +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 cpg_core_clk { - const char *name; - unsigned int id; - unsigned int type; - unsigned int parent; - unsigned int div; - unsigned int mult; - unsigned int offset; +struct compat_msgbuf { + compat_long_t mtype; + char mtext[1]; }; -struct mssr_mod_clk { - const char *name; - unsigned int id; - unsigned int parent; -}; +struct crypto_template; -struct rcar_gen4_cpg_pll_config { - u8 extal_div; - u8 pll1_mult; - u8 pll1_div; - u8 pll2_mult; - u8 pll2_div; - u8 pll3_mult; - u8 pll3_div; - u8 pll4_mult; - u8 pll4_div; - u8 pll5_mult; - u8 pll5_div; - u8 pll6_mult; - u8 pll6_div; - u8 osc_prediv; -}; +struct crypto_spawn; -enum clk_ids { - LAST_DT_CORE_CLK = 50, - CLK_EXTAL = 51, - CLK_EXTALR = 52, - CLK_MAIN = 53, - CLK_PLL1 = 54, - CLK_PLL2 = 55, - CLK_PLL3 = 56, - CLK_PLL5 = 57, - CLK_PLL6 = 58, - CLK_PLL1_DIV2 = 59, - CLK_PLL2_DIV2 = 60, - CLK_PLL3_DIV2 = 61, - CLK_PLL5_DIV2 = 62, - CLK_PLL5_DIV4 = 63, - CLK_PLL6_DIV2 = 64, - CLK_S0 = 65, - CLK_SASYNCPER = 66, - CLK_SDSRC = 67, - CLK_RPCSRC = 68, - CLK_OCO = 69, - MOD_CLK_BASE = 70, +struct crypto_instance { + struct crypto_alg alg; + struct crypto_template *tmpl; + union { + struct hlist_node list; + struct crypto_spawn *spawns; + }; + struct work_struct free_work; + void *__ctx[0]; }; -struct sprd_clk_common { - struct regmap *regmap; - u32 reg; - struct clk_hw hw; -}; +struct rtattr; -struct sprd_gate { - u32 enable_mask; - u16 flags; - u16 sc_offset; - u16 udelay; - struct sprd_clk_common common; +struct crypto_template { + struct list_head list; + struct hlist_head instances; + struct module *module; + int (*create)(struct crypto_template *, struct rtattr **); + char name[128]; }; -enum dfll_ctrl_mode { - DFLL_UNINITIALIZED = 0, - DFLL_DISABLED = 1, - DFLL_OPEN_LOOP = 2, - DFLL_CLOSED_LOOP = 3, +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; }; -enum dfll_tune_range { - DFLL_TUNE_UNINITIALIZED = 0, - DFLL_TUNE_LOW = 1, -}; +struct crypto_rng; -enum tegra_dfll_pmu_if { - TEGRA_DFLL_PMU_I2C = 0, - TEGRA_DFLL_PMU_PWM = 1, +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; }; -enum i2c_slave_event { - I2C_SLAVE_READ_REQUESTED = 0, - I2C_SLAVE_WRITE_REQUESTED = 1, - I2C_SLAVE_READ_PROCESSED = 2, - I2C_SLAVE_WRITE_RECEIVED = 3, - I2C_SLAVE_STOP = 4, +struct crypto_rng { + struct crypto_tfm base; }; -struct i2c_client; - -typedef int (*i2c_slave_cb_t)(struct i2c_client *, enum i2c_slave_event, u8 *); - -struct i2c_adapter; - -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; - i2c_slave_cb_t slave_cb; - void *devres_group_id; +struct crypto_cipher { + struct crypto_tfm base; }; -struct rt_mutex_base { - raw_spinlock_t wait_lock; - struct rb_root_cached waiters; - struct task_struct *owner; +struct prng_context { + spinlock_t prng_lock; + unsigned char rand_data[16]; + unsigned char last_rand_data[16]; + unsigned char DT[16]; + unsigned char I[16]; + unsigned char V[16]; + u32 rand_data_valid; + struct crypto_cipher *tfm; + u32 flags; }; -struct rt_mutex { - struct rt_mutex_base rtmutex; +enum mq_rq_state { + MQ_RQ_IDLE = 0, + MQ_RQ_IN_FLIGHT = 1, + MQ_RQ_COMPLETE = 2, }; -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; +enum rq_end_io_ret { + RQ_END_IO_NONE = 0, + RQ_END_IO_FREE = 1, }; -struct i2c_msg; +typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t); -union i2c_smbus_data; +typedef __u32 req_flags_t; -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 *); - int (*reg_slave)(struct i2c_client *); - int (*unreg_slave)(struct i2c_client *); +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 start_time_ns; + u64 io_start_time_ns; + unsigned short stats_sectors; + unsigned short nr_phys_segments; + unsigned short nr_integrity_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; + }; + struct { + struct io_cq *icq; + void *priv[2]; + } elv; + struct { + unsigned int seq; + rq_end_io_fn *saved_end_io; + } flush; + u64 fifo_time; + rq_end_io_fn *end_io; + void *end_io_data; }; -struct i2c_msg { - __u16 addr; - __u16 flags; - __u16 len; - __u8 *buf; -}; +struct sbitmap_word; -union i2c_smbus_data { - __u8 byte; - __u16 word; - __u8 block[34]; +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 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 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 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 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; }; -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 blk_flush_queue { + spinlock_t mq_flush_lock; + unsigned int flush_pending_idx: 1; + unsigned int flush_running_idx: 1; + blk_status_t rq_status; + unsigned long flush_pending_since; + struct list_head flush_queue[2]; + unsigned long flush_data_in_flight; + struct request *flush_rq; }; -struct dfll_rate_req { - unsigned long rate; - unsigned long dvco_target_rate; - int lut_index; - u8 mult_bits; - u8 scale_bits; +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 tegra_dfll_soc_data; +struct sbq_wait_state; -struct tegra_dfll { - struct device *dev; - struct tegra_dfll_soc_data *soc; - void *base; - void *i2c_base; - void *i2c_controller_base; - void *lut_base; - struct regulator *vdd_reg; - struct clk *soc_clk; - struct clk *ref_clk; - struct clk *i2c_clk; - struct clk *dfll_clk; - struct reset_control *dfll_rst; - struct reset_control *dvco_rst; - unsigned long ref_rate; - unsigned long i2c_clk_rate; - unsigned long dvco_rate_min; - enum dfll_ctrl_mode mode; - enum dfll_tune_range tune_range; - struct dentry *debugfs_dir; - struct clk_hw dfll_clk_hw; - const char *output_clock_name; - struct dfll_rate_req last_req; - unsigned long last_unrounded_rate; - u32 droop_ctrl; - u32 sample_rate; - u32 force_mode; - u32 cf; - u32 ci; - u32 cg; - bool cg_scale; - u32 i2c_fs_rate; - u32 i2c_reg; - u32 i2c_slave_addr; - unsigned int lut[33]; - unsigned long lut_uv[33]; - int lut_size; - u8 lut_bottom; - u8 lut_min; - u8 lut_max; - u8 lut_safe; - enum tegra_dfll_pmu_if pmu_if; - unsigned long pwm_rate; - struct pinctrl *pwm_pin; - struct pinctrl_state *pwm_enable_state; - struct pinctrl_state *pwm_disable_state; - u32 reg_init_uV; +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 rail_alignment { - int offset_uv; - int step_uv; +struct blk_mq_tags { + unsigned int nr_tags; + unsigned int nr_reserved_tags; + unsigned int active_queues; + struct sbitmap_queue bitmap_tags; + struct sbitmap_queue breserved_tags; + struct request **rqs; + struct request **static_rqs; + struct list_head page_list; + spinlock_t lock; }; -struct cvb_table; - -struct tegra_dfll_soc_data { - struct device *dev; - unsigned long max_freq; - const struct cvb_table *cvb; - struct rail_alignment alignment; - void (*init_clock_trimmers)(); - void (*set_clock_trimmers_high)(); - void (*set_clock_trimmers_low)(); +struct sbq_wait_state { + wait_queue_head_t wait; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct cvb_coefficients { - int c0; - int c1; - int c2; +struct blk_mq_queue_data { + struct request *rq; + bool last; }; -struct cvb_table_freq_entry { - unsigned long freq; - struct cvb_coefficients coefficients; +struct blk_mq_queue_map { + unsigned int *mq_map; + unsigned int nr_queues; + unsigned int queue_offset; }; -struct cvb_cpu_dfll_data { - u32 tune0_low; - u32 tune0_high; - u32 tune1; - unsigned int tune_high_min_millivolts; +struct blk_mq_tag_set { + const struct blk_mq_ops *ops; + struct blk_mq_queue_map map[3]; + unsigned int nr_maps; + unsigned int nr_hw_queues; + unsigned int queue_depth; + unsigned int reserved_tags; + unsigned int cmd_size; + int numa_node; + unsigned int timeout; + unsigned int flags; + void *driver_data; + struct blk_mq_tags **tags; + struct blk_mq_tags *shared_tags; + struct mutex tag_list_lock; + struct list_head tag_list; + struct srcu_struct *srcu; }; -struct cvb_table { - int speedo_id; - int process_id; - int min_millivolts; - int max_millivolts; - int speedo_scale; - int voltage_scale; - struct cvb_table_freq_entry entries[40]; - struct cvb_cpu_dfll_data cpu_dfll_data; +enum rq_qos_id { + RQ_QOS_WBT = 0, + RQ_QOS_LATENCY = 1, + RQ_QOS_COST = 2, }; -struct bcm2835_power; +struct rq_wait; -struct bcm2835_power_domain { - struct generic_pm_domain base; - struct bcm2835_power *power; - u32 domain; - struct clk *clk; +typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); + +struct rq_qos_wait_data { + struct wait_queue_entry wq; + struct task_struct *task; + struct rq_wait *rqw; + acquire_inflight_cb_t *cb; + void *private_data; + bool got_token; }; -typedef struct generic_pm_domain * (*genpd_xlate_t)(struct of_phandle_args *, void *); +struct rq_qos_ops; -struct genpd_onecell_data { - struct generic_pm_domain **domains; - unsigned int num_domains; - genpd_xlate_t xlate; +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 bcm2835_power { - struct device *dev; - void *base; - void *asb; - void *rpivid_asb; - struct genpd_onecell_data pd_xlate; - struct bcm2835_power_domain domains[13]; - struct reset_controller_dev reset; -}; +struct blk_mq_debugfs_attr; -struct bcm2835_pm { - struct device *dev; - void *base; - void *asb; - void *rpivid_asb; +struct rq_qos_ops { + void (*throttle)(struct rq_qos *, struct bio *); + void (*track)(struct rq_qos *, struct request *, struct bio *); + void (*merge)(struct rq_qos *, struct request *, struct bio *); + void (*issue)(struct rq_qos *, struct request *); + void (*requeue)(struct rq_qos *, struct request *); + void (*done)(struct rq_qos *, struct request *); + void (*done_bio)(struct rq_qos *, struct bio *); + void (*cleanup)(struct rq_qos *, struct bio *); + void (*queue_depth_changed)(struct rq_qos *); + void (*exit)(struct rq_qos *); + const struct blk_mq_debugfs_attr *debugfs_attrs; }; -struct geni_se_desc { - unsigned int num_clks; - const char * const *clks; +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; }; -enum geni_se_xfer_mode { - GENI_SE_INVALID = 0, - GENI_SE_FIFO = 1, - GENI_SE_DMA = 2, - GENI_GPI_DMA = 3, +struct rq_wait { + wait_queue_head_t wait; + atomic_t inflight; }; -enum geni_se_protocol_type { - GENI_SE_NONE = 0, - GENI_SE_SPI = 1, - GENI_SE_UART = 2, - GENI_SE_I2C = 3, - GENI_SE_I3C = 4, +struct rq_depth { + unsigned int max_depth; + int scale_step; + bool scaled_max; + unsigned int queue_depth; + unsigned int default_depth; }; -struct icc_path; +typedef void cleanup_cb_t(struct rq_wait *, void *); -struct geni_icc_path { - struct icc_path *path; - unsigned int avg_bw; +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 geni_wrapper; - -struct geni_se { - void *base; - struct device *dev; - struct geni_wrapper *wrapper; - struct clk *clk; - unsigned int num_clk_levels; - unsigned long *clk_perf_tbl; - struct geni_icc_path icc_paths[3]; +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 clk_bulk_data { - const char *id; - struct clk *clk; -}; +struct io_ring_ctx; -struct geni_wrapper { - struct device *dev; - void *base; - struct clk_bulk_data clks[2]; - unsigned int num_clks; -}; +struct io_wq; -enum tegra_revision { - TEGRA_REVISION_UNKNOWN = 0, - TEGRA_REVISION_A01 = 1, - TEGRA_REVISION_A02 = 2, - TEGRA_REVISION_A03 = 3, - TEGRA_REVISION_A03p = 4, - TEGRA_REVISION_A04 = 5, - TEGRA_REVISION_MAX = 6, +struct io_uring_task { + int cached_refs; + const struct io_ring_ctx *last; + struct io_wq *io_wq; + struct file *registered_rings[16]; + struct xarray xa; + struct wait_queue_head wait; + atomic_t in_cancel; + atomic_t inflight_tracked; + struct percpu_counter inflight; + long: 64; + long: 64; + struct { + struct llist_head task_list; + struct callback_head task_work; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; }; -enum tegra_platform { - TEGRA_PLATFORM_SILICON = 0, - TEGRA_PLATFORM_QT = 1, - TEGRA_PLATFORM_SYSTEM_FPGA = 2, - TEGRA_PLATFORM_UNIT_FPGA = 3, - TEGRA_PLATFORM_ASIM_QT = 4, - TEGRA_PLATFORM_ASIM_LINSIM = 5, - TEGRA_PLATFORM_DSIM_ASIM_LINSIM = 6, - TEGRA_PLATFORM_VERIFICATION_SIMULATION = 7, - TEGRA_PLATFORM_VDK = 8, - TEGRA_PLATFORM_VSP = 9, - TEGRA_PLATFORM_MAX = 10, +enum task_work_notify_mode { + TWA_NONE = 0, + TWA_RESUME = 1, + TWA_SIGNAL = 2, + TWA_SIGNAL_NO_IPI = 3, }; -enum { - THRESHOLD_INDEX_0 = 0, - THRESHOLD_INDEX_1 = 1, - THRESHOLD_INDEX_COUNT = 2, +struct io_fixed_file; + +struct io_file_table { + struct io_fixed_file *files; + unsigned long *bitmap; + unsigned int alloc_hint; }; -struct tegra_sku_info { - int sku_id; - int cpu_process_id; - int cpu_speedo_id; - int cpu_speedo_value; - int cpu_iddq_value; - int soc_process_id; - int soc_speedo_id; - int soc_speedo_value; - int gpu_process_id; - int gpu_speedo_id; - int gpu_speedo_value; - enum tegra_revision revision; - enum tegra_platform platform; +struct io_wq_work_node { + struct io_wq_work_node *next; }; -typedef int (*config_clks_t)(struct device *, struct opp_table *, struct dev_pm_opp *, void *, bool); +struct io_wq_work_list { + struct io_wq_work_node *first; + struct io_wq_work_node *last; +}; -typedef int (*config_regulators_t)(struct device *, struct dev_pm_opp *, struct dev_pm_opp *, struct regulator **, unsigned int); +struct io_kiocb; -struct dev_pm_opp_config { - const char * const *clk_names; - config_clks_t config_clks; - const char *prop_name; - config_regulators_t config_regulators; - const unsigned int *supported_hw; - unsigned int supported_hw_count; - const char * const *regulator_names; - const char * const *genpd_names; - struct device ***virt_devs; +struct io_submit_link { + struct io_kiocb *head; + struct io_kiocb *last; }; -struct tegra_core_opp_params { - bool init_state; +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; }; -typedef uint32_t grant_ref_t; - -struct xenbus_device; - -struct map_ring_valloc; +struct io_hash_bucket; -struct xenbus_ring_ops { - int (*map)(struct xenbus_device *, struct map_ring_valloc *, grant_ref_t *, unsigned int, void **); - int (*unmap)(struct xenbus_device *, void *); +struct io_hash_table { + struct io_hash_bucket *hbs; + unsigned int hash_bits; }; -struct xenbus_watch { - struct list_head list; - const char *node; - unsigned int nr_pending; - bool (*will_handle)(struct xenbus_watch *, const char *, const char *); - void (*callback)(struct xenbus_watch *, const char *, const char *); +struct io_alloc_cache { + struct io_wq_work_node list; + unsigned int nr_cached; + unsigned int max_cached; + size_t elem_size; }; -enum xenbus_state { - XenbusStateUnknown = 0, - XenbusStateInitialising = 1, - XenbusStateInitWait = 2, - XenbusStateInitialised = 3, - XenbusStateConnected = 4, - XenbusStateClosing = 5, - XenbusStateClosed = 6, - XenbusStateReconfiguring = 7, - XenbusStateReconfigured = 8, +struct io_uring_cqe { + __u64 user_data; + __s32 res; + __u32 flags; + __u64 big_cqe[0]; }; -struct xenbus_device { - const char *devicetype; - const char *nodename; - const char *otherend; - int otherend_id; - struct xenbus_watch otherend_watch; - struct device dev; - enum xenbus_state state; - struct completion down; - struct work_struct work; - struct semaphore reclaim_sem; - atomic_t event_channels; - atomic_t events; - atomic_t spurious_events; - atomic_t jiffies_eoi_delayed; - unsigned int spurious_threshold; +struct io_restriction { + unsigned long register_op[1]; + unsigned long sqe_op[1]; + u8 sqe_flags_allowed; + u8 sqe_flags_required; + bool registered; }; -typedef u16 uint16_t; +struct io_rings; -typedef uint16_t domid_t; +struct io_uring_sqe; -typedef s16 int16_t; +struct io_rsrc_node; -typedef uint32_t grant_handle_t; +struct io_mapped_ubuf; -struct gnttab_map_grant_ref { - uint64_t host_addr; - uint32_t flags; - grant_ref_t ref; - domid_t dom; - int16_t status; - grant_handle_t handle; - uint64_t dev_bus_addr; -}; +struct io_buffer_list; -struct gnttab_unmap_grant_ref { - uint64_t host_addr; - uint64_t dev_bus_addr; - grant_handle_t handle; - int16_t status; +struct io_ev_fd; + +struct io_sq_data; + +struct io_rsrc_data; + +struct io_wq_hash; + +struct io_ring_ctx { + struct { + unsigned int flags; + unsigned int drain_next: 1; + unsigned int restricted: 1; + unsigned int off_timeout_used: 1; + unsigned int drain_active: 1; + unsigned int has_evfd: 1; + unsigned int task_complete: 1; + unsigned int lockless_cq: 1; + unsigned int syscall_iopoll: 1; + unsigned int poll_activated: 1; + unsigned int drain_disabled: 1; + unsigned int compat: 1; + struct task_struct *submitter_task; + struct io_rings *rings; + struct percpu_ref refs; + enum task_work_notify_mode notify_method; + long: 64; + long: 64; + }; + struct { + struct mutex uring_lock; + u32 *sq_array; + struct io_uring_sqe *sq_sqes; + unsigned int cached_sq_head; + unsigned int sq_entries; + struct io_rsrc_node *rsrc_node; + atomic_t cancel_seq; + 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 io_hash_table cancel_table_locked; + struct io_alloc_cache apoll_cache; + struct io_alloc_cache netmsg_cache; + struct io_wq_work_list iopoll_list; + bool poll_multi_queue; + struct hlist_head cancelable_uring_cmd; + }; + struct { + struct io_uring_cqe *cqe_cached; + struct io_uring_cqe *cqe_sentinel; + unsigned int cached_cq_tail; + unsigned int cq_entries; + struct io_ev_fd __attribute__((btf_type_tag("rcu"))) *io_ev_fd; + unsigned int cq_extra; + long: 64; + long: 64; + long: 64; + }; + struct { + struct llist_head work_llist; + unsigned long check_cq; + atomic_t cq_wait_nr; + atomic_t cq_timeouts; + struct wait_queue_head cq_wait; + long: 64; + long: 64; + }; + struct { + spinlock_t timeout_lock; + struct list_head timeout_list; + struct list_head ltimeout_list; + unsigned int cq_last_tm_flush; + long: 64; + long: 64; + }; + struct io_uring_cqe completion_cqes[16]; + spinlock_t completion_lock; + struct io_wq_work_list locked_free_list; + unsigned int locked_free_nr; + struct list_head io_buffers_comp; + struct list_head cq_overflow_list; + struct io_hash_table cancel_table; + struct hlist_head waitid_list; + struct hlist_head futex_list; + struct io_alloc_cache futex_cache; + const struct cred *sq_creds; + struct io_sq_data *sq_data; + struct wait_queue_head sqo_sq_wait; + struct list_head sqd_list; + unsigned int file_alloc_start; + unsigned int file_alloc_end; + struct xarray personalities; + u32 pers_next; + struct list_head io_buffers_cache; + struct hlist_head io_buf_list; + struct wait_queue_head poll_wq; + struct io_restriction restrictions; + struct io_mapped_ubuf *dummy_ubuf; + struct io_rsrc_data *file_data; + struct io_rsrc_data *buf_data; + struct list_head rsrc_ref_list; + struct io_alloc_cache rsrc_node_cache; + struct wait_queue_head rsrc_quiesce_wq; + unsigned int rsrc_quiesce; + 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; + unsigned short n_ring_pages; + unsigned short n_sqe_pages; + struct page **ring_pages; + struct page **sqe_pages; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct xenbus_map_node; +struct io_uring { + u32 head; + u32 tail; +}; -struct map_ring_valloc { - struct xenbus_map_node *node; - unsigned long addrs[16]; - phys_addr_t phys_addrs[16]; - struct gnttab_map_grant_ref map[16]; - struct gnttab_unmap_grant_ref unmap[16]; - unsigned int idx; +struct io_rings { + struct io_uring sq; + struct io_uring cq; + u32 sq_ring_mask; + u32 cq_ring_mask; + u32 sq_ring_entries; + u32 cq_ring_entries; + u32 sq_dropped; + atomic_t sq_flags; + u32 cq_flags; + u32 cq_overflow; + long: 64; + long: 64; + struct io_uring_cqe cqes[0]; }; -struct xenbus_map_node { - struct list_head next; +typedef int __kernel_rwf_t; + +struct io_uring_sqe { + __u8 opcode; + __u8 flags; + __u16 ioprio; + __s32 fd; union { + __u64 off; + __u64 addr2; struct { - struct vm_struct *area; - } pv; + __u32 cmd_op; + __u32 __pad1; + }; + }; + union { + __u64 addr; + __u64 splice_off_in; struct { - struct page *pages[16]; - unsigned long addrs[16]; - void *addr; - } hvm; + __u32 level; + __u32 optname; + }; + }; + __u32 len; + union { + __kernel_rwf_t rw_flags; + __u32 fsync_flags; + __u16 poll_events; + __u32 poll32_events; + __u32 sync_range_flags; + __u32 msg_flags; + __u32 timeout_flags; + __u32 accept_flags; + __u32 cancel_flags; + __u32 open_flags; + __u32 statx_flags; + __u32 fadvise_advice; + __u32 splice_flags; + __u32 rename_flags; + __u32 unlink_flags; + __u32 hardlink_flags; + __u32 xattr_flags; + __u32 msg_ring_flags; + __u32 uring_cmd_flags; + __u32 waitid_flags; + __u32 futex_flags; + }; + __u64 user_data; + union { + __u16 buf_index; + __u16 buf_group; + }; + __u16 personality; + union { + __s32 splice_fd_in; + __u32 file_index; + __u32 optlen; + struct { + __u16 addr_len; + __u16 __pad3[1]; + }; + }; + union { + struct { + __u64 addr3; + __u64 __pad2[1]; + }; + __u64 optval; + __u8 cmd[0]; }; - grant_handle_t handles[16]; - unsigned int nr_handles; }; -struct xenbus_transaction { - u32 id; +struct io_cache_entry { + struct io_wq_work_node node; }; -typedef void (*xen_grant_fn_t)(unsigned long, unsigned int, unsigned int, void *); - -typedef uint32_t evtchn_port_t; +struct io_rsrc_put { + u64 tag; + union { + void *rsrc; + struct file *file; + struct io_mapped_ubuf *buf; + }; +}; -struct evtchn_alloc_unbound { - domid_t dom; - domid_t remote_dom; - evtchn_port_t port; +struct io_rsrc_node { + union { + struct io_cache_entry cache; + struct io_ring_ctx *ctx; + }; + int refs; + bool empty; + u16 type; + struct list_head node; + struct io_rsrc_put item; }; -struct evtchn_close { - evtchn_port_t port; +struct io_mapped_ubuf { + u64 ubuf; + u64 ubuf_end; + unsigned int nr_bvecs; + unsigned long acct_pages; + struct bio_vec bvec[0]; }; -struct unmap_ring_hvm { - unsigned int idx; - unsigned long addrs[16]; +struct io_fixed_file { + unsigned long file_ptr; }; -enum regulator_type { - REGULATOR_VOLTAGE = 0, - REGULATOR_CURRENT = 1, +struct io_cmd_data { + struct file *file; + __u8 data[56]; }; -struct regulator_config; +struct io_cqe { + __u64 user_data; + __s32 res; + union { + __u32 flags; + int fd; + }; +}; -struct regulator_ops; +struct io_tw_state; -struct linear_range; +typedef void (*io_req_tw_func_t)(struct io_kiocb *, struct io_tw_state *); -struct regulator_desc { - const char *name; - const char *supply_name; - const char *of_match; - bool of_match_full_name; - const char *regulators_node; - int (*of_parse_cb)(struct device_node *, const struct regulator_desc *, struct regulator_config *); - int id; - unsigned int continuous_voltage_range: 1; - unsigned int n_voltages; - unsigned int n_current_limits; - const struct regulator_ops *ops; - int irq; - enum regulator_type type; - struct module *owner; - unsigned int min_uV; - unsigned int uV_step; - unsigned int linear_min_sel; - int fixed_uV; - unsigned int ramp_delay; - int min_dropout_uV; - const struct linear_range *linear_ranges; - const unsigned int *linear_range_selectors; - int n_linear_ranges; - const unsigned int *volt_table; - const unsigned int *curr_table; - unsigned int vsel_range_reg; - unsigned int vsel_range_mask; - unsigned int vsel_reg; - unsigned int vsel_mask; - unsigned int vsel_step; - unsigned int csel_reg; - unsigned int csel_mask; - unsigned int apply_reg; - unsigned int apply_bit; - unsigned int enable_reg; - unsigned int enable_mask; - unsigned int enable_val; - unsigned int disable_val; - bool enable_is_inverted; - unsigned int bypass_reg; - unsigned int bypass_mask; - unsigned int bypass_val_on; - unsigned int bypass_val_off; - unsigned int active_discharge_on; - unsigned int active_discharge_off; - unsigned int active_discharge_mask; - unsigned int active_discharge_reg; - unsigned int soft_start_reg; - unsigned int soft_start_mask; - unsigned int soft_start_val_on; - unsigned int pull_down_reg; - unsigned int pull_down_mask; - unsigned int pull_down_val_on; - unsigned int ramp_reg; - unsigned int ramp_mask; - const unsigned int *ramp_delay_table; - unsigned int n_ramp_values; - unsigned int enable_time; - unsigned int off_on_delay; - unsigned int poll_enabled_time; - unsigned int (*of_map_mode)(unsigned int); +struct io_task_work { + struct llist_node node; + io_req_tw_func_t func; }; -struct hi6421v530_regulator_info { - struct regulator_desc rdesc; - u8 mode_mask; - u32 eco_microamp; +struct io_wq_work { + struct io_wq_work_node list; + unsigned int flags; + int cancel_seq; }; -struct regulator_init_data; +struct io_buffer; -struct regulator_config { - struct device *dev; - const struct regulator_init_data *init_data; - void *driver_data; - struct device_node *of_node; - struct regmap *regmap; - struct gpio_desc *ena_gpiod; -}; +struct async_poll; -struct regulator_state { - int uV; - int min_uV; - int max_uV; - unsigned int mode; - int enabled; - bool changeable; +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; + unsigned int nr_tw; + struct hlist_node hash_node; + struct async_poll *apoll; + void *async_data; + struct io_kiocb *link; + const struct cred *creds; + struct io_wq_work work; + struct { + u64 extra1; + u64 extra2; + } big_cqe; }; -struct notification_limit { - int prot; - int err; - int warn; +struct io_buffer { + struct list_head list; + __u64 addr; + __u32 len; + __u16 bid; + __u16 bgid; }; -typedef int suspend_state_t; +struct io_uring_buf_ring; -struct regulation_constraints { - const char *name; - int min_uV; - int max_uV; - int uV_offset; - int min_uA; - int max_uA; - int ilim_uA; - int system_load; - u32 *max_spread; - int max_uV_step; - unsigned int valid_modes_mask; - unsigned int valid_ops_mask; - int input_uV; - struct regulator_state state_disk; - struct regulator_state state_mem; - struct regulator_state state_standby; - struct notification_limit over_curr_limits; - struct notification_limit over_voltage_limits; - struct notification_limit under_voltage_limits; - struct notification_limit temp_limits; - suspend_state_t initial_state; - unsigned int initial_mode; - unsigned int ramp_delay; - unsigned int settling_time; - unsigned int settling_time_up; - unsigned int settling_time_down; - unsigned int enable_time; - unsigned int active_discharge; - unsigned int always_on: 1; - unsigned int boot_on: 1; - unsigned int apply_uV: 1; - unsigned int ramp_disable: 1; - unsigned int soft_start: 1; - unsigned int pull_down: 1; - unsigned int over_current_protection: 1; - unsigned int over_current_detection: 1; - unsigned int over_voltage_detection: 1; - unsigned int under_voltage_detection: 1; - unsigned int over_temp_detection: 1; +struct io_buffer_list { + union { + struct list_head buf_list; + struct { + struct page **buf_pages; + struct io_uring_buf_ring *buf_ring; + }; + struct callback_head rcu; + }; + __u16 bgid; + __u16 buf_nr_pages; + __u16 nr_entries; + __u16 head; + __u16 mask; + __u8 is_mapped; + __u8 is_mmap; + __u8 is_ready; }; -struct regulator_consumer_supply; - -struct regulator_init_data { - const char *supply_regulator; - struct regulation_constraints constraints; - int num_consumer_supplies; - struct regulator_consumer_supply *consumer_supplies; - int (*regulator_init)(void *); - void *driver_data; +struct io_uring_buf { + __u64 addr; + __u32 len; + __u16 bid; + __u16 resv; }; -struct regulator_dev; - -struct regulator_ops { - int (*list_voltage)(struct regulator_dev *, unsigned int); - int (*set_voltage)(struct regulator_dev *, int, int, unsigned int *); - int (*map_voltage)(struct regulator_dev *, int, int); - int (*set_voltage_sel)(struct regulator_dev *, unsigned int); - int (*get_voltage)(struct regulator_dev *); - int (*get_voltage_sel)(struct regulator_dev *); - int (*set_current_limit)(struct regulator_dev *, int, int); - int (*get_current_limit)(struct regulator_dev *); - int (*set_input_current_limit)(struct regulator_dev *, int); - int (*set_over_current_protection)(struct regulator_dev *, int, int, bool); - int (*set_over_voltage_protection)(struct regulator_dev *, int, int, bool); - int (*set_under_voltage_protection)(struct regulator_dev *, int, int, bool); - int (*set_thermal_protection)(struct regulator_dev *, int, int, bool); - int (*set_active_discharge)(struct regulator_dev *, bool); - int (*enable)(struct regulator_dev *); - int (*disable)(struct regulator_dev *); - int (*is_enabled)(struct regulator_dev *); - int (*set_mode)(struct regulator_dev *, unsigned int); - unsigned int (*get_mode)(struct regulator_dev *); - int (*get_error_flags)(struct regulator_dev *, unsigned int *); - int (*enable_time)(struct regulator_dev *); - int (*set_ramp_delay)(struct regulator_dev *, int); - int (*set_voltage_time)(struct regulator_dev *, int, int); - int (*set_voltage_time_sel)(struct regulator_dev *, unsigned int, unsigned int); - int (*set_soft_start)(struct regulator_dev *); - int (*get_status)(struct regulator_dev *); - unsigned int (*get_optimum_mode)(struct regulator_dev *, int, int, int); - int (*set_load)(struct regulator_dev *, int); - int (*set_bypass)(struct regulator_dev *, bool); - int (*get_bypass)(struct regulator_dev *, bool *); - int (*set_suspend_voltage)(struct regulator_dev *, int); - int (*set_suspend_enable)(struct regulator_dev *); - int (*set_suspend_disable)(struct regulator_dev *); - int (*set_suspend_mode)(struct regulator_dev *, unsigned int); - int (*resume)(struct regulator_dev *); - int (*set_pull_down)(struct regulator_dev *); +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 regulator_coupler; - -struct coupling_desc { - struct regulator_dev **coupled_rdevs; - struct regulator_coupler *coupler; - int n_resolved; - int n_coupled; +struct io_tw_state { + bool locked; }; -struct ww_acquire_ctx; - -struct ww_mutex { - struct mutex base; - struct ww_acquire_ctx *ctx; +struct io_poll { + struct file *file; + struct wait_queue_head *head; + __poll_t events; + int retries; + struct wait_queue_entry wait; }; -struct regulator_enable_gpio; +struct async_poll { + union { + struct io_poll poll; + struct io_cache_entry cache; + }; + struct io_poll *double_poll; +}; -struct regulator_dev { - const struct regulator_desc *desc; - int exclusive; - u32 use_count; - u32 open_count; - u32 bypass_count; - struct list_head list; - struct list_head consumer_list; - struct coupling_desc coupling_desc; - struct blocking_notifier_head notifier; - struct ww_mutex mutex; - struct task_struct *mutex_owner; - int ref_cnt; - struct module *owner; - struct device dev; - struct regulation_constraints *constraints; - struct regulator *supply; - const char *supply_name; - struct regmap *regmap; - struct delayed_work disable_work; - void *reg_data; - struct dentry *debugfs; - struct regulator_enable_gpio *ena_pin; - unsigned int ena_gpio_state: 1; - unsigned int is_switch: 1; - ktime_t last_off; - int cached_err; - bool use_cached_err; - spinlock_t err_lock; +struct io_hash_bucket { + spinlock_t lock; + struct hlist_head list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct ww_acquire_ctx { - struct task_struct *task; - unsigned long stamp; - unsigned int acquired; - unsigned short wounded; - unsigned short is_wait_die; +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 linear_range { - unsigned int min; - unsigned int min_sel; - unsigned int max_sel; - unsigned int step; +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 hi6421_pmic { - struct regmap *regmap; +struct io_rsrc_data { + struct io_ring_ctx *ctx; + u64 **tags; + unsigned int nr; + u16 rsrc_type; + bool quiesce; }; -struct ma35d1_reset_data { - struct reset_controller_dev rcdev; - struct notifier_block restart_handler; - void *base; - spinlock_t lock; +struct io_wq_hash { + refcount_t refs; + unsigned long map; + struct wait_queue_head wait; }; -enum uart_pm_state { - UART_PM_STATE_ON = 0, - UART_PM_STATE_OFF = 3, - UART_PM_STATE_UNDEFINED = 4, +struct io_uring_cmd { + struct file *file; + const struct io_uring_sqe *sqe; + union { + void (*task_work_cb)(struct io_uring_cmd *, unsigned int); + void *cookie; + }; + u32 cmd_op; + u32 flags; + u8 pdu[32]; }; -struct uart_port; +typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); -struct serial_port_device { - struct device dev; - struct uart_port *port; -}; +typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long); -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 void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int); -typedef u64 upf_t; +typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int); -typedef unsigned int upstat_t; +typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *); -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]; - }; - }; -}; +typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *); -struct serial_iso7816 { - __u32 flags; - __u32 tg; - __u32 sc_fi; - __u32 sc_di; - __u32 clk; - __u32 reserved[5]; -}; +typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); -struct uart_state; +typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *); -struct console; +typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64); -struct uart_ops; +typedef void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *); -struct uart_port { - spinlock_t lock; - unsigned long iobase; - unsigned char *membase; - unsigned int (*serial_in)(struct uart_port *, int); - void (*serial_out)(struct uart_port *, int, int); - void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - unsigned int (*get_mctrl)(struct uart_port *); - void (*set_mctrl)(struct uart_port *, unsigned int); - unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *); - void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int); - int (*startup)(struct uart_port *); - void (*shutdown)(struct uart_port *); - void (*throttle)(struct uart_port *); - void (*unthrottle)(struct uart_port *); - int (*handle_irq)(struct uart_port *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - void (*handle_break)(struct uart_port *); - int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); - int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *); - unsigned int ctrl_id; - unsigned int port_id; - unsigned int irq; - unsigned long irqflags; - unsigned int uartclk; - unsigned int fifosize; - unsigned char x_char; - unsigned char regshift; - unsigned char iotype; - unsigned char quirks; - unsigned int read_status_mask; - unsigned int ignore_status_mask; - struct uart_state *state; - struct uart_icount icount; - struct console *cons; - upf_t flags; - upstat_t status; - bool hw_stopped; - unsigned int mctrl; - unsigned int frame_time; - unsigned int type; - const struct uart_ops *ops; - unsigned int custom_divisor; - unsigned int line; - unsigned int minor; - resource_size_t mapbase; - resource_size_t mapsize; - struct device *dev; - struct serial_port_device *port_dev; - unsigned long sysrq; - 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; -}; +typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int); -struct circ_buf { - char *buf; - int head; - int tail; -}; +typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int); -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 void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int); -typedef unsigned int uint; +typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, unsigned long long, s32, u32, void *); -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; +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); + +struct creds; + +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 = 536870912, + REQ_F_ISREG = 1073741824, + 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 = 67108864, + REQ_F_CLEAR_POLLIN = 134217728, + REQ_F_HASH_LOCKED = 268435456, + REQ_F_POLL_NO_LAZY = 2147483648, }; -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); +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, }; -struct uart_driver { - struct module *owner; - const char *driver_name; - const char *dev_name; - int major; - int minor; - int nr; - struct console *cons; - struct uart_state *state; - struct tty_driver *tty_driver; +enum { + IO_CHECK_CQ_OVERFLOW_BIT = 0, + IO_CHECK_CQ_DROPPED_BIT = 1, }; -struct earlycon_device; +enum io_uring_cmd_flags { + IO_URING_F_COMPLETE_DEFER = 1, + IO_URING_F_UNLOCKED = 2, + IO_URING_F_MULTISHOT = 4, + IO_URING_F_IOWQ = 8, + IO_URING_F_NONBLOCK = -2147483648, + IO_URING_F_SQE128 = 256, + IO_URING_F_CQE32 = 512, + IO_URING_F_IOPOLL = 1024, + IO_URING_F_CANCEL = 2048, + IO_URING_F_COMPAT = 4096, +}; -struct earlycon_id { - char name[15]; - char name_term; - char compatible[128]; - int (*setup)(struct earlycon_device *, const char *); +enum { + IO_APOLL_OK = 0, + IO_APOLL_ABORTED = 1, + IO_APOLL_READY = 2, }; -struct earlycon_device { - struct console *con; - struct uart_port port; - char options[32]; - unsigned int baud; +enum { + IO_EVENTFD_OP_SIGNAL_BIT = 0, + IO_EVENTFD_OP_FREE_BIT = 1, }; -struct meson_uart_data { - bool has_xtal_div2; +enum { + IORING_CQE_BUFFER_SHIFT = 16, }; -typedef unsigned int u_int; +enum { + IOU_F_TWQ_LAZY_WAKE = 1, +}; -struct cavium_rng_pf { - void *control_status; +enum { + IOU_OK = 0, + IOU_ISSUE_SKIP_COMPLETE = -529, + IOU_STOP_MULTISHOT = -125, }; -typedef int (*regmap_hw_write)(void *, const void *, size_t); +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_APOLL_MULTISHOT_BIT = 26, + REQ_F_CLEAR_POLLIN_BIT = 27, + REQ_F_HASH_LOCKED_BIT = 28, + REQ_F_SUPPORT_NOWAIT_BIT = 29, + REQ_F_ISREG_BIT = 30, + REQ_F_POLL_NO_LAZY_BIT = 31, + __REQ_F_LAST_BIT = 32, +}; -typedef int (*regmap_hw_gather_write)(void *, const void *, size_t, const void *, size_t); +enum io_uring_op { + IORING_OP_NOP = 0, + IORING_OP_READV = 1, + IORING_OP_WRITEV = 2, + IORING_OP_FSYNC = 3, + IORING_OP_READ_FIXED = 4, + IORING_OP_WRITE_FIXED = 5, + IORING_OP_POLL_ADD = 6, + IORING_OP_POLL_REMOVE = 7, + IORING_OP_SYNC_FILE_RANGE = 8, + IORING_OP_SENDMSG = 9, + IORING_OP_RECVMSG = 10, + IORING_OP_TIMEOUT = 11, + IORING_OP_TIMEOUT_REMOVE = 12, + IORING_OP_ACCEPT = 13, + IORING_OP_ASYNC_CANCEL = 14, + IORING_OP_LINK_TIMEOUT = 15, + IORING_OP_CONNECT = 16, + IORING_OP_FALLOCATE = 17, + IORING_OP_OPENAT = 18, + IORING_OP_CLOSE = 19, + IORING_OP_FILES_UPDATE = 20, + IORING_OP_STATX = 21, + IORING_OP_READ = 22, + IORING_OP_WRITE = 23, + IORING_OP_FADVISE = 24, + IORING_OP_MADVISE = 25, + IORING_OP_SEND = 26, + IORING_OP_RECV = 27, + IORING_OP_OPENAT2 = 28, + IORING_OP_EPOLL_CTL = 29, + IORING_OP_SPLICE = 30, + IORING_OP_PROVIDE_BUFFERS = 31, + IORING_OP_REMOVE_BUFFERS = 32, + IORING_OP_TEE = 33, + IORING_OP_SHUTDOWN = 34, + IORING_OP_RENAMEAT = 35, + IORING_OP_UNLINKAT = 36, + IORING_OP_MKDIRAT = 37, + IORING_OP_SYMLINKAT = 38, + IORING_OP_LINKAT = 39, + IORING_OP_MSG_RING = 40, + IORING_OP_FSETXATTR = 41, + IORING_OP_SETXATTR = 42, + IORING_OP_FGETXATTR = 43, + IORING_OP_GETXATTR = 44, + IORING_OP_SOCKET = 45, + IORING_OP_URING_CMD = 46, + IORING_OP_SEND_ZC = 47, + IORING_OP_SENDMSG_ZC = 48, + IORING_OP_READ_MULTISHOT = 49, + IORING_OP_WAITID = 50, + IORING_OP_FUTEX_WAIT = 51, + IORING_OP_FUTEX_WAKE = 52, + IORING_OP_FUTEX_WAITV = 53, + IORING_OP_LAST = 54, +}; -struct regmap_async; +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, +}; -typedef int (*regmap_hw_async_write)(void *, const void *, size_t, const void *, size_t, struct regmap_async *); +enum io_wq_cancel { + IO_WQ_CANCEL_OK = 0, + IO_WQ_CANCEL_RUNNING = 1, + IO_WQ_CANCEL_NOTFOUND = 2, +}; -typedef int (*regmap_hw_reg_write)(void *, unsigned int, unsigned int); +enum sock_type { + SOCK_STREAM = 1, + SOCK_DGRAM = 2, + SOCK_RAW = 3, + SOCK_RDM = 4, + SOCK_SEQPACKET = 5, + SOCK_DCCP = 6, + SOCK_PACKET = 10, +}; -typedef int (*regmap_hw_reg_noinc_write)(void *, unsigned int, const void *, size_t); +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, +}; -typedef int (*regmap_hw_reg_update_bits)(void *, unsigned int, unsigned int, unsigned int); +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, +}; -typedef int (*regmap_hw_read)(void *, const void *, size_t, void *, size_t); +enum { + IORING_RSRC_FILE = 0, + IORING_RSRC_BUFFER = 1, +}; -typedef int (*regmap_hw_reg_read)(void *, unsigned int, unsigned int *); +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, +}; -typedef int (*regmap_hw_reg_noinc_read)(void *, unsigned int, void *, size_t); +typedef unsigned int xa_mark_t; -typedef void (*regmap_hw_free_context)(void *); +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]; +}; -typedef struct regmap_async * (*regmap_hw_async_alloc)(); +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 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 trace_event_raw_io_uring_file_get { + struct trace_entry ent; + void *ctx; + void *req; + u64 user_data; + int fd; + char __data[0]; }; -struct regmap_async { - struct list_head list; - struct regmap *map; - void *work_buf; +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 regmap_format { - size_t buf_size; - size_t reg_bytes; - size_t pad_bytes; - size_t val_bytes; - s8 reg_shift; - 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 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 regcache_ops; +struct trace_event_raw_io_uring_link { + struct trace_entry ent; + void *ctx; + void *req; + void *target_req; + char __data[0]; +}; -struct reg_sequence; +struct trace_event_raw_io_uring_cqring_wait { + struct trace_entry ent; + void *ctx; + int min_events; + char __data[0]; +}; -struct hwspinlock; +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 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; - bool force_write_field; - 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; +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 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); +struct trace_event_raw_io_uring_submit_req { + struct trace_entry ent; + void *ctx; + void *req; + unsigned long long user_data; + u8 opcode; + u32 flags; + bool sq_thread; + u32 __data_loc_op_str; + char __data[0]; }; -struct reg_sequence { - unsigned int reg; - unsigned int def; - unsigned int delay_us; +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 spi_delay { - u16 value; - u8 unit; +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 spi_controller; +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 spi_statistics; +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 spi_device { - struct device dev; - struct spi_controller *controller; - struct spi_controller *master; - u32 max_speed_hz; - u8 chip_select; - u8 bits_per_word; - bool rt; - u32 mode; - int irq; - void *controller_state; - void *controller_data; - char modalias[32]; - const char *driver_override; - struct gpio_desc *cs_gpiod; - struct spi_delay word_delay; - struct spi_delay cs_setup; - struct spi_delay cs_hold; - struct spi_delay cs_inactive; - struct spi_statistics __attribute__((btf_type_tag("percpu"))) *pcpu_statistics; +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 kthread_work; +struct trace_event_raw_io_uring_short_write { + struct trace_entry ent; + void *ctx; + u64 fpos; + u64 wanted; + u64 got; + char __data[0]; +}; -typedef void (*kthread_work_func_t)(struct kthread_work *); +struct trace_event_raw_io_uring_local_work_run { + struct trace_entry ent; + void *ctx; + int count; + unsigned int loops; + char __data[0]; +}; -struct kthread_worker; +struct io_defer_entry { + struct list_head list; + struct io_kiocb *req; + u32 seq; +}; -struct kthread_work { - struct list_head node; - kthread_work_func_t func; - struct kthread_worker *worker; - int canceling; +struct io_tctx_node { + struct list_head ctx_node; + struct task_struct *task; + struct io_ring_ctx *ctx; }; -struct spi_message; +struct io_overflow_cqe { + struct list_head list; + struct io_uring_cqe cqe; +}; -struct spi_transfer; +typedef u32 compat_sigset_word; -struct spi_controller_mem_ops; +typedef struct { + compat_sigset_word sig[2]; +} compat_sigset_t; -struct spi_controller_mem_caps; +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 dma_chan; +struct io_tctx_exit { + struct callback_head task_work; + struct completion completion; + struct io_ring_ctx *ctx; +}; -struct spi_controller { - struct device dev; - struct list_head list; - s16 bus_num; - u16 num_chipselect; - u16 dma_alignment; - u32 mode_bits; - u32 buswidth_override_bits; - u32 bits_per_word_mask; - u32 min_speed_hz; - u32 max_speed_hz; - u16 flags; - bool devm_allocated; - union { - bool slave; - bool target; - }; - size_t (*max_transfer_size)(struct spi_device *); - size_t (*max_message_size)(struct spi_device *); - struct mutex io_mutex; - struct mutex add_lock; - spinlock_t bus_lock_spinlock; - struct mutex bus_lock_mutex; - bool bus_lock_flag; - int (*setup)(struct spi_device *); - int (*set_cs_timing)(struct spi_device *); - int (*transfer)(struct spi_device *, struct spi_message *); - void (*cleanup)(struct spi_device *); - bool (*can_dma)(struct spi_controller *, struct spi_device *, struct spi_transfer *); - struct device *dma_map_dev; - struct device *cur_rx_dma_dev; - struct device *cur_tx_dma_dev; - bool queued; - struct kthread_worker *kworker; - struct kthread_work pump_messages; - spinlock_t queue_lock; - struct list_head queue; - struct spi_message *cur_msg; - struct completion cur_msg_completion; - bool cur_msg_incomplete; - bool cur_msg_need_completion; - bool busy; - bool running; - bool rt; - bool auto_runtime_pm; - bool cur_msg_mapped; - char last_cs; - bool last_cs_mode_high; - bool fallback; - struct completion xfer_completion; - size_t max_dma_len; - int (*prepare_transfer_hardware)(struct spi_controller *); - int (*transfer_one_message)(struct spi_controller *, struct spi_message *); - int (*unprepare_transfer_hardware)(struct spi_controller *); - int (*prepare_message)(struct spi_controller *, struct spi_message *); - int (*unprepare_message)(struct spi_controller *, struct spi_message *); - union { - int (*slave_abort)(struct spi_controller *); - int (*target_abort)(struct spi_controller *); - }; - void (*set_cs)(struct spi_device *, bool); - int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *); - void (*handle_err)(struct spi_controller *, struct spi_message *); - const struct spi_controller_mem_ops *mem_ops; - const struct spi_controller_mem_caps *mem_caps; - struct gpio_desc **cs_gpiods; - bool use_gpio_descriptors; - s8 unused_native_cs; - s8 max_native_cs; - struct spi_statistics __attribute__((btf_type_tag("percpu"))) *pcpu_statistics; - struct dma_chan *dma_tx; - struct dma_chan *dma_rx; - void *dummy_rx; - void *dummy_tx; - int (*fw_translate_cs)(struct spi_controller *, unsigned int); - bool ptp_sts_supported; - unsigned long irq_flags; - bool queue_empty; - bool must_async; +struct io_sqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 flags; + __u32 dropped; + __u32 array; + __u32 resv1; + __u64 user_addr; }; -struct spi_message { - struct list_head transfers; - struct spi_device *spi; - unsigned int is_dma_mapped: 1; - bool prepared; - int status; - void (*complete)(void *); - void *context; - unsigned int frame_length; - unsigned int actual_length; - struct list_head queue; - void *state; - struct list_head resources; +struct io_cqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 overflow; + __u32 cqes; + __u32 flags; + __u32 resv1; + __u64 user_addr; }; -struct ptp_system_timestamp; +struct io_uring_params { + __u32 sq_entries; + __u32 cq_entries; + __u32 flags; + __u32 sq_thread_cpu; + __u32 sq_thread_idle; + __u32 features; + __u32 wq_fd; + __u32 resv[3]; + struct io_sqring_offsets sq_off; + struct io_cqring_offsets cq_off; +}; -struct spi_transfer { - const void *tx_buf; - void *rx_buf; - unsigned int len; - u16 error; - dma_addr_t tx_dma; - dma_addr_t rx_dma; - struct sg_table tx_sg; - struct sg_table rx_sg; - unsigned int dummy_data: 1; - unsigned int cs_off: 1; - unsigned int cs_change: 1; - unsigned int tx_nbits: 3; - unsigned int rx_nbits: 3; - unsigned int timestamped: 1; - u8 bits_per_word; - struct spi_delay delay; - struct spi_delay cs_change_delay; - struct spi_delay word_delay; - u32 speed_hz; - u32 effective_speed_hz; - unsigned int ptp_sts_word_pre; - unsigned int ptp_sts_word_post; - struct ptp_system_timestamp *ptp_sts; - struct list_head transfer_list; +struct trace_event_data_offsets_io_uring_queue_async_work { + u32 op_str; }; -struct kthread_worker { - unsigned int flags; - raw_spinlock_t lock; - struct list_head work_list; - struct list_head delayed_work_list; - struct task_struct *task; - struct kthread_work *current_work; +struct trace_event_data_offsets_io_uring_defer { + u32 op_str; }; -struct spi_mem; +struct trace_event_data_offsets_io_uring_fail_link { + u32 op_str; +}; -struct spi_mem_op; +struct trace_event_data_offsets_io_uring_submit_req { + u32 op_str; +}; -struct spi_mem_dirmap_desc; +struct trace_event_data_offsets_io_uring_poll_arm { + u32 op_str; +}; -struct spi_controller_mem_ops { - int (*adjust_op_size)(struct spi_mem *, struct spi_mem_op *); - bool (*supports_op)(struct spi_mem *, const struct spi_mem_op *); - int (*exec_op)(struct spi_mem *, const struct spi_mem_op *); - const char * (*get_name)(struct spi_mem *); - int (*dirmap_create)(struct spi_mem_dirmap_desc *); - void (*dirmap_destroy)(struct spi_mem_dirmap_desc *); - ssize_t (*dirmap_read)(struct spi_mem_dirmap_desc *, u64, size_t, void *); - ssize_t (*dirmap_write)(struct spi_mem_dirmap_desc *, u64, size_t, const void *); - int (*poll_status)(struct spi_mem *, const struct spi_mem_op *, u16, u16, unsigned long, unsigned long, unsigned long); +struct trace_event_data_offsets_io_uring_task_add { + u32 op_str; }; -struct spi_controller_mem_caps { - bool dtr; - bool ecc; +struct trace_event_data_offsets_io_uring_req_failed { + u32 op_str; }; -struct spi_statistics { - struct u64_stats_sync syncp; - u64_stats_t messages; - u64_stats_t transfers; - u64_stats_t errors; - u64_stats_t timedout; - u64_stats_t spi_sync; - u64_stats_t spi_sync_immediate; - u64_stats_t spi_async; - u64_stats_t bytes; - u64_stats_t bytes_rx; - u64_stats_t bytes_tx; - u64_stats_t transfer_bytes_histo[17]; - u64_stats_t transfers_split_maxsize; +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 *); }; -struct regmap_async_spi { - struct regmap_async core; - struct spi_message m; - struct spi_transfer t[2]; +struct io_issue_def { + unsigned int needs_file: 1; + unsigned int plug: 1; + unsigned int hash_reg_file: 1; + unsigned int unbound_nonreg_file: 1; + unsigned int pollin: 1; + unsigned int pollout: 1; + unsigned int poll_exclusive: 1; + unsigned int buffer_select: 1; + unsigned int not_supported: 1; + unsigned int audit_skip: 1; + unsigned int ioprio: 1; + unsigned int iopoll: 1; + unsigned int iopoll_queue: 1; + unsigned int manual_alloc: 1; + unsigned int vectored: 1; + int (*issue)(struct io_kiocb *, unsigned int); + int (*prep)(struct io_kiocb *, const struct io_uring_sqe *); }; -enum chip_id { - MT6323_CHIP_ID = 35, - MT6331_CHIP_ID = 32, - MT6332_CHIP_ID = 32, - MT6357_CHIP_ID = 87, - MT6358_CHIP_ID = 88, - MT6359_CHIP_ID = 89, - MT6366_CHIP_ID = 102, - MT6391_CHIP_ID = 145, - MT6397_CHIP_ID = 151, +struct ksignal { + struct k_sigaction ka; + kernel_siginfo_t info; + int sig; }; -enum mt6397_irq_numbers { - MT6397_IRQ_SPKL_AB = 0, - MT6397_IRQ_SPKR_AB = 1, - MT6397_IRQ_SPKL = 2, - MT6397_IRQ_SPKR = 3, - MT6397_IRQ_BAT_L = 4, - MT6397_IRQ_BAT_H = 5, - MT6397_IRQ_FG_BAT_L = 6, - MT6397_IRQ_FG_BAT_H = 7, - MT6397_IRQ_WATCHDOG = 8, - MT6397_IRQ_PWRKEY = 9, - MT6397_IRQ_THR_L = 10, - MT6397_IRQ_THR_H = 11, - MT6397_IRQ_VBATON_UNDET = 12, - MT6397_IRQ_BVALID_DET = 13, - MT6397_IRQ_CHRDET = 14, - MT6397_IRQ_OV = 15, - MT6397_IRQ_LDO = 16, - MT6397_IRQ_HOMEKEY = 17, - MT6397_IRQ_ACCDET = 18, - MT6397_IRQ_AUDIO = 19, - MT6397_IRQ_RTC = 20, - MT6397_IRQ_PWRKEY_RSTB = 21, - MT6397_IRQ_HDMI_SIFM = 22, - MT6397_IRQ_HDMI_CEC = 23, - MT6397_IRQ_VCA15 = 24, - MT6397_IRQ_VSRMCA15 = 25, - MT6397_IRQ_VCORE = 26, - MT6397_IRQ_VGPU = 27, - MT6397_IRQ_VIO18 = 28, - MT6397_IRQ_VPCA7 = 29, - MT6397_IRQ_VSRMCA7 = 30, - MT6397_IRQ_VDRM = 31, - MT6397_IRQ_NR = 32, +typedef bool work_cancel_fn(struct io_wq_work *, void *); + +struct io_uring_getevents_arg { + __u64 sigmask; + __u32 sigmask_sz; + __u32 pad; + __u64 ts; }; -struct mt6397_chip { - struct device *dev; - struct regmap *regmap; - struct notifier_block pm_nb; - int irq; - struct irq_domain *irq_domain; - struct mutex irqlock; - u16 wake_mask[2]; - u16 irq_masks_cur[2]; - u16 irq_masks_cache[2]; - u16 int_con[2]; - u16 int_status[2]; - u16 chip_id; - void *irq_data; +struct xa_limit { + u32 max; + u32 min; }; -struct sas_phy; +struct io_uring_file_index_range { + __u32 off; + __u32 len; + __u64 resv; +}; -struct sas_rphy; +typedef void (*task_work_func_t)(struct callback_head *); -struct sas_phy_linkrates; +struct trace_event_data_offsets_io_uring_create {}; -struct bsg_job; +struct trace_event_data_offsets_io_uring_register {}; -struct Scsi_Host; +struct trace_event_data_offsets_io_uring_file_get {}; -struct sas_function_template { - int (*get_linkerrors)(struct sas_phy *); - int (*get_enclosure_identifier)(struct sas_rphy *, u64 *); - int (*get_bay_identifier)(struct sas_rphy *); - int (*phy_reset)(struct sas_phy *, int); - int (*phy_enable)(struct sas_phy *, int); - int (*phy_setup)(struct sas_phy *); - void (*phy_release)(struct sas_phy *); - int (*set_phy_speed)(struct sas_phy *, struct sas_phy_linkrates *); - void (*smp_handler)(struct bsg_job *, struct Scsi_Host *, struct sas_rphy *); -}; +struct trace_event_data_offsets_io_uring_link {}; -enum sas_device_type { - SAS_PHY_UNUSED = 0, - SAS_END_DEVICE = 1, - SAS_EDGE_EXPANDER_DEVICE = 2, - SAS_FANOUT_EXPANDER_DEVICE = 3, - SAS_HA = 4, - SAS_SATA_DEV = 5, - SAS_SATA_PM = 7, - SAS_SATA_PM_PORT = 8, - SAS_SATA_PENDING = 9, -}; +struct trace_event_data_offsets_io_uring_cqring_wait {}; -enum sas_protocol { - SAS_PROTOCOL_NONE = 0, - SAS_PROTOCOL_SATA = 1, - SAS_PROTOCOL_SMP = 2, - SAS_PROTOCOL_STP = 4, - SAS_PROTOCOL_SSP = 8, - SAS_PROTOCOL_ALL = 14, - SAS_PROTOCOL_STP_ALL = 5, - SAS_PROTOCOL_INTERNAL_ABORT = 16, -}; +struct trace_event_data_offsets_io_uring_complete {}; -struct sas_identify { - enum sas_device_type device_type; - enum sas_protocol initiator_port_protocols; - enum sas_protocol target_port_protocols; - u64 sas_address; - u8 phy_identifier; -}; +struct trace_event_data_offsets_io_uring_cqe_overflow {}; -enum sas_linkrate { - SAS_LINK_RATE_UNKNOWN = 0, - SAS_PHY_DISABLED = 1, - SAS_PHY_RESET_PROBLEM = 2, - SAS_SATA_SPINUP_HOLD = 3, - SAS_SATA_PORT_SELECTOR = 4, - SAS_PHY_RESET_IN_PROGRESS = 5, - SAS_LINK_RATE_1_5_GBPS = 8, - SAS_LINK_RATE_G1 = 8, - SAS_LINK_RATE_3_0_GBPS = 9, - SAS_LINK_RATE_G2 = 9, - SAS_LINK_RATE_6_0_GBPS = 10, - SAS_LINK_RATE_12_0_GBPS = 11, - SAS_LINK_RATE_22_5_GBPS = 12, - SAS_LINK_RATE_FAILED = 16, - SAS_PHY_VIRTUAL = 17, -}; +struct trace_event_data_offsets_io_uring_task_work_run {}; -struct sas_phy { - struct device dev; - int number; - int enabled; - struct sas_identify identify; - enum sas_linkrate negotiated_linkrate; - enum sas_linkrate minimum_linkrate_hw; - enum sas_linkrate minimum_linkrate; - enum sas_linkrate maximum_linkrate_hw; - enum sas_linkrate maximum_linkrate; - u32 invalid_dword_count; - u32 running_disparity_error_count; - u32 loss_of_dword_sync_count; - u32 phy_reset_problem_count; - struct list_head port_siblings; - void *hostdata; +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 sas_rphy { - struct device dev; - struct sas_identify identify; - struct list_head list; - struct request_queue *q; - u32 scsi_target_id; +struct io_uring_probe_op { + __u8 op; + __u8 resv; + __u16 flags; + __u32 resv2; }; -struct sas_phy_linkrates { - enum sas_linkrate maximum_linkrate; - enum sas_linkrate minimum_linkrate; +struct io_uring_probe { + __u8 last_op; + __u8 ops_len; + __u16 resv; + __u32 resv2[3]; + struct io_uring_probe_op ops[0]; }; -struct bsg_buffer { - unsigned int payload_len; - int sg_cnt; - struct scatterlist *sg_list; +struct io_uring_restriction { + __u16 opcode; + union { + __u8 register_op; + __u8 sqe_op; + __u8 sqe_flags; + }; + __u8 resv; + __u32 resv2[3]; }; -struct bsg_job { - struct device *dev; - struct kref kref; - unsigned int timeout; - void *request; - void *reply; - unsigned int request_len; - unsigned int reply_len; - struct bsg_buffer request_payload; - struct bsg_buffer reply_payload; - int result; - unsigned int reply_payload_rcv_len; - struct request *bidi_rq; - struct bio *bidi_bio; - void *dd_data; +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 scsi_host_state { - SHOST_CREATED = 1, - SHOST_RUNNING = 2, - SHOST_CANCEL = 3, - SHOST_DEL = 4, - SHOST_RECOVERY = 5, - SHOST_CANCEL_RECOVERY = 6, - SHOST_DEL_RECOVERY = 7, +struct 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 scsi_host_template; +struct irq_domain_chip_generic; -struct scsi_transport_template; +struct msi_parent_ops; -struct Scsi_Host { - struct list_head __devices; - struct list_head __targets; - struct list_head starved_list; - spinlock_t default_lock; - spinlock_t *host_lock; - struct mutex scan_mutex; - struct list_head eh_abort_list; - struct list_head eh_cmd_q; - struct task_struct *ehandler; - struct completion *eh_action; - wait_queue_head_t host_wait; - const struct scsi_host_template *hostt; - struct scsi_transport_template *transportt; - struct kref tagset_refcnt; - struct completion tagset_freed; - struct blk_mq_tag_set tag_set; - atomic_t host_blocked; - unsigned int host_failed; - unsigned int host_eh_scheduled; - unsigned int host_no; - int eh_deadline; - unsigned long last_reset; - unsigned int max_channel; - unsigned int max_id; - u64 max_lun; - unsigned int unique_id; - unsigned short max_cmd_len; - int this_id; - int can_queue; - short cmd_per_lun; - unsigned short sg_tablesize; - unsigned short sg_prot_tablesize; - unsigned int max_sectors; - unsigned int opt_sectors; - unsigned int max_segment_size; - unsigned long dma_boundary; - unsigned long virt_boundary_mask; - unsigned int nr_hw_queues; - unsigned int nr_maps; - unsigned int active_mode: 2; - unsigned int host_self_blocked: 1; - unsigned int reverse_ordering: 1; - unsigned int tmf_in_progress: 1; - unsigned int async_scan: 1; - unsigned int eh_noresume: 1; - unsigned int no_write_same: 1; - unsigned int host_tagset: 1; - unsigned int queuecommand_may_block: 1; - unsigned int short_inquiry: 1; - unsigned int no_scsi2_lun_in_cdb: 1; - char work_q_name[20]; - struct workqueue_struct *work_q; - struct workqueue_struct *tmf_work_q; - unsigned int max_host_blocked; - unsigned int prot_capabilities; - unsigned char prot_guard_type; - unsigned long base; - unsigned long io_port; - unsigned char n_io_port; - unsigned char dma_channel; - unsigned int irq; - enum scsi_host_state shost_state; - struct device shost_gendev; - struct device shost_dev; - void *shost_data; - struct device *dma_dev; - unsigned long hostdata[0]; +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]; }; -enum scsi_timeout_action { - SCSI_EH_DONE = 0, - SCSI_EH_RESET_TIMER = 1, - SCSI_EH_NOT_HANDLED = 2, +enum irq_gc_flags { + IRQ_GC_INIT_MASK_CACHE = 1, + IRQ_GC_INIT_NESTED_LOCK = 2, + IRQ_GC_MASK_CACHE_PER_TYPE = 4, + IRQ_GC_NO_MASK = 8, + IRQ_GC_BE_IO = 16, }; -struct scsi_cmnd; - -struct scsi_device; - -struct scsi_target; +struct irq_chip_generic; -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 queuecommand_may_block: 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 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]; }; -enum scsi_cmnd_submitter { - SUBMITTED_BY_BLOCK_LAYER = 0, - SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, - SUBMITTED_BY_SCSI_RESET_IOCTL = 2, -} __attribute__((mode(byte))); +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 scsi_data_buffer { - struct sg_table table; - unsigned int length; +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 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; +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]; }; -typedef __u64 blist_flags_t; +struct msi_domain_info; -enum scsi_device_state { - SDEV_CREATED = 1, - SDEV_RUNNING = 2, - SDEV_CANCEL = 3, - SDEV_DEL = 4, - SDEV_QUIESCE = 5, - SDEV_OFFLINE = 6, - SDEV_TRANSPORT_OFFLINE = 7, - SDEV_BLOCK = 8, - SDEV_CREATED_BLOCK = 9, +struct 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 scsi_vpd; +struct irq_fwspec { + struct fwnode_handle *fwnode; + int param_count; + u32 param[16]; +}; -struct scsi_device_handler; +struct ls_extirq_data { + void *intpcr; + raw_spinlock_t lock; + bool big_endian; + bool is_ls1021a_or_ls1043a; + u32 nirq; + struct irq_fwspec map[12]; +}; -struct bsg_device; +struct platform_device; -struct scsi_device { - struct Scsi_Host *host; - struct request_queue *request_queue; - struct list_head siblings; - struct list_head same_target_siblings; - struct sbitmap budget_map; - atomic_t device_blocked; - atomic_t restarts; - spinlock_t list_lock; - struct list_head starved_entry; - unsigned short queue_depth; - unsigned short max_queue_depth; - unsigned short last_queue_full_depth; - unsigned short last_queue_full_count; - unsigned long last_queue_full_time; - unsigned long queue_ramp_up_period; - unsigned long last_queue_ramp_up; - unsigned int id; - unsigned int channel; - u64 lun; - unsigned int manufacturer; - unsigned int sector_size; - void *hostdata; - unsigned char type; - char scsi_level; - char inq_periph_qual; - struct mutex inquiry_mutex; - unsigned char inquiry_len; - unsigned char *inquiry; - const char *vendor; - const char *model; - const char *rev; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg0; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg83; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg80; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg89; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb0; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb1; - struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb2; - struct scsi_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 no_start_on_resume: 1; - unsigned int start_stop_pwr_cond: 1; - unsigned int no_uld_attach: 1; - unsigned int select_no_atn: 1; - unsigned int fix_capacity: 1; - unsigned int guess_capacity: 1; - unsigned int retry_hwerror: 1; - unsigned int last_sector_bug: 1; - unsigned int no_read_disc_info: 1; - unsigned int no_read_capacity_16: 1; - unsigned int try_rc_10_first: 1; - unsigned int security_supported: 1; - unsigned int is_visible: 1; - unsigned int wce_default_on: 1; - unsigned int no_dif: 1; - unsigned int broken_fua: 1; - unsigned int lun_in_cdb: 1; - unsigned int unmap_limit_for_ws: 1; - unsigned int rpm_autosuspend: 1; - unsigned int ignore_media_change: 1; - unsigned int silence_suspend: 1; - unsigned int no_vpd_size: 1; - unsigned int cdl_supported: 1; - unsigned int cdl_enable: 1; - unsigned int queue_stopped; - bool offline_already; - atomic_t disk_events_disable_depth; - unsigned long supported_events[1]; - unsigned long pending_events[1]; - struct list_head event_list; - struct work_struct event_work; - unsigned int max_device_blocked; - atomic_t iorequest_cnt; - atomic_t iodone_cnt; - atomic_t ioerr_cnt; - atomic_t iotmo_cnt; - struct device sdev_gendev; - struct device sdev_dev; - struct work_struct requeue_work; - struct scsi_device_handler *handler; - void *handler_data; - size_t dma_drain_len; - void *dma_drain_buf; - unsigned int sg_timeout; - unsigned int sg_reserved_size; - struct bsg_device *bsg_dev; - unsigned char access_state; - struct mutex state_mutex; - enum scsi_device_state sdev_state; - struct task_struct *quiesced_by; - unsigned long sdev_data[0]; -}; +struct platform_device_id; -struct scsi_vpd { - struct callback_head rcu; - int len; - unsigned char data[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; }; -enum scsi_target_state { - STARGET_CREATED = 1, - STARGET_RUNNING = 2, - STARGET_REMOVE = 3, - STARGET_CREATED_REMOVE = 4, - STARGET_DEL = 5, -}; +struct pdev_archdata {}; -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 resource; -struct klist_node; +struct mfd_cell; -struct klist { - spinlock_t k_lock; - struct list_head k_list; - void (*get)(struct klist_node *); - void (*put)(struct klist_node *); +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 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 *); +struct resource { + resource_size_t start; + resource_size_t end; + const char *name; unsigned long flags; + unsigned long desc; + struct resource *parent; + struct resource *sibling; + struct resource *child; }; -struct transport_container { - struct attribute_container ac; - const struct attribute_group *statistics; +struct platform_device_id { + char name[20]; + kernel_ulong_t driver_data; }; -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 exiu_irq_data { + void *base; + u32 spi_base; }; -struct klist_node { - void *n_klist; - struct list_head n_node; - struct kref n_ref; +struct sg_table { + struct scatterlist *sgl; + unsigned int nents; + unsigned int orig_nents; }; -enum sas_class { - SAS = 0, - EXPANDER = 1, +struct scatterlist { + unsigned long page_link; + unsigned int offset; + unsigned int length; + dma_addr_t dma_address; + unsigned int dma_length; + unsigned int dma_flags; }; -enum sas_oob_mode { - OOB_NOT_CONNECTED = 0, - SATA_OOB_MODE = 1, - SAS_OOB_MODE = 2, -}; +struct iopf_device_param; -enum sas_phy_type { - PHY_TYPE_PHYSICAL = 0, - PHY_TYPE_VIRTUAL = 1, -}; +struct iommu_fault_param; -enum sas_phy_role { - PHY_ROLE_NONE = 0, - PHY_ROLE_TARGET = 64, - PHY_ROLE_INITIATOR = 128, -}; +struct iommu_fwspec; -enum ex_phy_state { - PHY_EMPTY = 0, - PHY_VACANT = 1, - PHY_NOT_PRESENT = 2, - PHY_DEVICE_DISCOVERED = 3, +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; + u32 pci_32bit_workaround: 1; + u32 require_direct: 1; + u32 shadow_on_flush: 1; }; -enum routing_attribute { - DIRECT_ROUTING = 0, - SUBTRACTIVE_ROUTING = 1, - TABLE_ROUTING = 2, +struct iommu_fault; + +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; }; -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, +struct iommu_fault_unrecoverable { + __u32 reason; + __u32 flags; + __u32 pasid; + __u32 perm; + __u64 addr; + __u64 fetch_addr; }; -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 iommu_fault_page_request { + __u32 flags; + __u32 pasid; + __u32 grpid; + __u32 perm; + __u64 addr; + __u64 private_data[2]; }; -enum sw_activity { - OFF = 0, - BLINK_ON = 1, - BLINK_OFF = 2, +struct iommu_fault { + __u32 type; + __u32 padding; + union { + struct iommu_fault_unrecoverable event; + struct iommu_fault_page_request prm; + __u8 padding2[56]; + }; }; -enum task_attribute { - TASK_ATTR_SIMPLE = 0, - TASK_ATTR_HOQ = 1, - TASK_ATTR_ORDERED = 2, - TASK_ATTR_ACA = 4, +struct iommu_fwspec { + const struct iommu_ops *ops; + struct fwnode_handle *iommu_fwnode; + u32 flags; + unsigned int num_ids; + u32 ids[0]; }; -enum sas_internal_abort { - SAS_INTERNAL_ABORT_SINGLE = 0, - SAS_INTERNAL_ABORT_DEV = 1, +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 service_response { - SAS_TASK_COMPLETE = 0, - SAS_TASK_UNDELIVERED = -1, +enum iommu_page_response_code { + IOMMU_PAGE_RESP_SUCCESS = 0, + IOMMU_PAGE_RESP_INVALID = 1, + IOMMU_PAGE_RESP_FAILURE = 2, }; -enum exec_status { - SAS_SAM_STAT_GOOD = 0, - SAS_SAM_STAT_BUSY = 8, - SAS_SAM_STAT_TASK_ABORTED = 64, - SAS_SAM_STAT_CHECK_CONDITION = 2, - SAS_DEV_NO_RESPONSE = 128, - SAS_DATA_UNDERRUN = 129, - SAS_DATA_OVERRUN = 130, - SAS_INTERRUPTED = 131, - SAS_QUEUE_FULL = 132, - SAS_DEVICE_UNKNOWN = 133, - SAS_OPEN_REJECT = 134, - SAS_OPEN_TO = 135, - SAS_PROTO_RESPONSE = 136, - SAS_PHY_DOWN = 137, - SAS_NAK_R_ERR = 138, - SAS_PENDING = 139, - SAS_ABORTED_TASK = 140, +struct iommu_dirty_ops; + +struct iommu_dma_cookie; + +struct iommu_domain { + unsigned int type; + const struct iommu_domain_ops *ops; + const struct iommu_dirty_ops *dirty_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; + }; + }; }; -enum sas_open_rej_reason { - SAS_OREJ_UNKNOWN = 0, - SAS_OREJ_BAD_DEST = 1, - SAS_OREJ_CONN_RATE = 2, - SAS_OREJ_EPROTO = 3, - SAS_OREJ_RESV_AB0 = 4, - SAS_OREJ_RESV_AB1 = 5, - SAS_OREJ_RESV_AB2 = 6, - SAS_OREJ_RESV_AB3 = 7, - SAS_OREJ_WRONG_DEST = 8, - SAS_OREJ_STP_NORES = 9, - SAS_OREJ_NO_DEST = 10, - SAS_OREJ_PATH_BLOCKED = 11, - SAS_OREJ_RSVD_CONT0 = 12, - SAS_OREJ_RSVD_CONT1 = 13, - SAS_OREJ_RSVD_INIT0 = 14, - SAS_OREJ_RSVD_INIT1 = 15, - SAS_OREJ_RSVD_STOP0 = 16, - SAS_OREJ_RSVD_STOP1 = 17, - SAS_OREJ_RSVD_RETRY = 18, +struct iommu_iotlb_gather; + +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_pages)(struct iommu_domain *, unsigned long, phys_addr_t, size_t, size_t, int, gfp_t, size_t *); + size_t (*unmap_pages)(struct iommu_domain *, unsigned long, size_t, size_t, struct iommu_iotlb_gather *); + void (*flush_iotlb_all)(struct iommu_domain *); + int (*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 *); }; -enum sas_ha_state { - SAS_HA_REGISTERED = 0, - SAS_HA_DRAINING = 1, - SAS_HA_ATA_EH_ACTIVE = 2, - SAS_HA_FROZEN = 3, - SAS_HA_RESUMING = 4, +struct iommu_iotlb_gather { + unsigned long start; + unsigned long end; + size_t pgsize; + struct list_head freelist; + bool queued; }; -enum phy_func { - PHY_FUNC_NOP = 0, - PHY_FUNC_LINK_RESET = 1, - PHY_FUNC_HARD_RESET = 2, - PHY_FUNC_DISABLE = 3, - PHY_FUNC_CLEAR_ERROR_LOG = 5, - PHY_FUNC_CLEAR_AFFIL = 6, - PHY_FUNC_TX_SATA_PS_SIGNAL = 7, - PHY_FUNC_RELEASE_SPINUP_HOLD = 16, - PHY_FUNC_SET_LINK_RATE = 17, - PHY_FUNC_GET_EVENTS = 18, +struct iommu_dirty_bitmap; + +struct iommu_dirty_ops { + int (*set_dirty_tracking)(struct iommu_domain *, bool); + int (*read_and_clear_dirty)(struct iommu_domain *, unsigned long, size_t, unsigned long, struct iommu_dirty_bitmap *); }; -enum discover_event { - DISCE_DISCOVER_DOMAIN = 0, - DISCE_REVALIDATE_DOMAIN = 1, - DISCE_SUSPEND = 2, - DISCE_RESUME = 3, - DISC_NUM_EVENTS = 4, +struct iova_bitmap; + +struct iommu_dirty_bitmap { + struct iova_bitmap *bitmap; + struct iommu_iotlb_gather *gather; }; -enum phy_event { - PHYE_LOSS_OF_SIGNAL = 0, - PHYE_OOB_DONE = 1, - PHYE_OOB_ERROR = 2, - PHYE_SPINUP_HOLD = 3, - PHYE_RESUME_TIMEOUT = 4, - PHYE_SHUTDOWN = 5, - PHY_NUM_EVENTS = 6, +struct iommu_user_data { + unsigned int type; + void __attribute__((btf_type_tag("user"))) *uptr; + size_t len; }; -enum port_event { - PORTE_BYTES_DMAED = 0, - PORTE_BROADCAST_RCVD = 1, - PORTE_LINK_RESET_ERR = 2, - PORTE_TIMER_EVENT = 3, - PORTE_HARD_RESET = 4, - PORT_NUM_EVENTS = 5, +struct iommu_device { + struct list_head list; + const struct iommu_ops *ops; + struct fwnode_handle *fwnode; + struct device *dev; + struct iommu_group *singleton_group; + u32 max_pasids; }; -struct scsi_core { - struct Scsi_Host *shost; +struct of_phandle_args { + struct device_node *np; + int args_count; + uint32_t args[16]; }; -struct asd_sas_phy; +struct iommu_fault_event { + struct iommu_fault fault; + struct list_head list; +}; -struct asd_sas_port; +struct iommu_page_response { + __u32 argsz; + __u32 version; + __u32 flags; + __u32 pasid; + __u32 grpid; + __u32 code; +}; -struct sas_ha_struct { - struct list_head defer_q; - struct mutex drain_mutex; - unsigned long state; - spinlock_t lock; - int eh_active; - wait_queue_head_t eh_wait_q; - struct list_head eh_dev_q; - struct mutex disco_mutex; - struct scsi_core core; - char *sas_ha_name; - struct device *dev; - struct module *lldd_module; - struct workqueue_struct *event_q; - struct workqueue_struct *disco_q; - u8 *sas_addr; - u8 hashed_sas_addr[3]; - spinlock_t phy_port_lock; - struct asd_sas_phy **sas_phy; - struct asd_sas_port **sas_port; - int num_phys; - int strict_wide_ports; - void *lldd_ha; - struct list_head eh_done_q; - struct list_head eh_ata_q; - int event_thres; +struct fsl_mc_version { + u32 major; + u32 minor; + u32 revision; }; -struct asd_sas_phy { - atomic_t event_nr; - int in_shutdown; - int error; - int suspended; - struct sas_phy *phy; - int enabled; - int id; - enum sas_class class; - enum sas_protocol iproto; - enum sas_protocol tproto; - enum sas_phy_type type; - enum sas_phy_role role; - enum sas_oob_mode oob_mode; - enum sas_linkrate linkrate; - u8 *sas_addr; - u8 attached_sas_addr[8]; - spinlock_t frame_rcvd_lock; - u8 *frame_rcvd; - int frame_rcvd_size; - spinlock_t sas_prim_lock; - u32 sas_prim; - struct list_head port_phy_el; - struct asd_sas_port *port; - struct sas_ha_struct *ha; - void *lldd_phy; +struct bus_attribute { + struct attribute attr; + ssize_t (*show)(const struct bus_type *, char *); + ssize_t (*store)(const struct bus_type *, const char *, size_t); }; -struct sas_work { - struct list_head drain_node; - struct work_struct work; +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 sas_discovery_event { - struct sas_work work; - struct asd_sas_port *port; +enum device_link_state { + DL_STATE_NONE = -1, + DL_STATE_DORMANT = 0, + DL_STATE_AVAILABLE = 1, + DL_STATE_CONSUMER_PROBE = 2, + DL_STATE_ACTIVE = 3, + DL_STATE_SUPPLIER_UNBIND = 4, }; -struct sas_discovery { - struct sas_discovery_event disc_work[4]; - unsigned long pending; - u8 fanout_sas_addr[8]; - u8 eeds_a[8]; - u8 eeds_b[8]; - int max_level; +enum dprc_region_type { + DPRC_REGION_TYPE_MC_PORTAL = 0, + DPRC_REGION_TYPE_QBMAN_PORTAL = 1, + DPRC_REGION_TYPE_QBMAN_MEM_BACKED_PORTAL = 2, }; -struct domain_device; +enum mc_cmd_status { + MC_CMD_STATUS_OK = 0, + MC_CMD_STATUS_READY = 1, + MC_CMD_STATUS_AUTH_ERR = 3, + MC_CMD_STATUS_NO_PRIVILEGE = 4, + MC_CMD_STATUS_DMA_ERR = 5, + MC_CMD_STATUS_CONFIG_ERR = 6, + MC_CMD_STATUS_TIMEOUT = 7, + MC_CMD_STATUS_NO_RESOURCE = 8, + MC_CMD_STATUS_NO_MEMORY = 9, + MC_CMD_STATUS_BUSY = 10, + MC_CMD_STATUS_UNSUPPORTED_OP = 11, + MC_CMD_STATUS_INVALID_STATE = 12, +}; -struct sas_port; +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 asd_sas_port { - struct sas_discovery disc; - struct domain_device *port_dev; - spinlock_t dev_list_lock; - struct list_head dev_list; - struct list_head disco_list; - struct list_head destroy_list; - struct list_head sas_port_del_list; - enum sas_linkrate linkrate; - struct sas_work work; - int suspended; +struct fsl_mc_obj_desc { + char type[16]; int id; - enum sas_class class; - u8 sas_addr[8]; - u8 attached_sas_addr[8]; - enum sas_protocol iproto; - enum sas_protocol tproto; - enum sas_oob_mode oob_mode; - spinlock_t phy_list_lock; - struct list_head phy_list; - int num_phys; - u32 phy_mask; - struct sas_ha_struct *ha; - struct sas_port *port; - void *lldd_port; + u16 vendor; + u16 ver_major; + u16 ver_minor; + u8 irq_count; + u8 region_count; + u32 state; + char label[16]; + u16 flags; }; -struct ex_phy; +struct fsl_mc_io; -struct expander_device { - struct list_head children; - int ex_change_count; - u16 max_route_indexes; - u8 num_phys; - u8 t2t_supp: 1; - u8 configuring: 1; - u8 conf_route_table: 1; - u8 enclosure_logical_id[8]; - struct ex_phy *ex_phy; - struct sas_port *parent_port; - struct mutex cmd_mutex; +struct fsl_mc_device_irq; + +struct fsl_mc_resource; + +struct device_link; + +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 dev_to_host_fis { - u8 fis_type; - u8 flags; - u8 status; - u8 error; - u8 lbal; - union { - u8 lbam; - u8 byte_count_low; - }; - union { - u8 lbah; - u8 byte_count_high; - }; - u8 device; - u8 lbal_exp; - u8 lbam_exp; - u8 lbah_exp; - u8 _r_a; +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 { - u8 sector_count; - u8 interrupt_reason; + struct mutex mutex; + raw_spinlock_t spinlock; }; - u8 sector_count_exp; - u8 _r_b; - u8 _r_c; - u32 _r_d; }; -struct report_phy_sata_resp { - u8 _r_a[5]; - u8 phy_id; - u8 _r_b; - u8 affil_valid: 1; - u8 affil_supp: 1; - u8 _r_c: 6; - u32 _r_d; - u8 stp_sas_addr[8]; - struct dev_to_host_fis fis; - u32 _r_e; - u8 affil_stp_ini_addr[8]; - __be32 crc; -}; +struct fsl_mc_resource_pool; -struct smp_rps_resp { - u8 frame_type; - u8 function; - u8 result; - u8 reserved; - struct report_phy_sata_resp rps; +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 ata_port; +struct fsl_mc_device_irq { + unsigned int virq; + struct fsl_mc_device *mc_dev; + u8 dev_irq_index; + struct fsl_mc_resource resource; +}; -struct ata_host; +struct fsl_mc_bus; -struct sata_device { - unsigned int class; - u8 port_no; - struct ata_port *ap; - struct ata_host *ata_host; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct smp_rps_resp rps_resp; - u8 fis[24]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct fsl_mc_resource_pool { + enum fsl_mc_pool_type type; + int max_count; + int free_count; + struct mutex mutex; + struct list_head free_list; + struct fsl_mc_bus *mc_bus; }; -struct scsi_lun { - __u8 scsi_lun[8]; +struct dprc_attributes { + int container_id; + u32 icid; + int portal_id; + u64 options; }; -struct ssp_device { - struct list_head eh_list_node; - struct scsi_lun reset_lun; +struct miscdevice { + int minor; + const char *name; + const struct file_operations *fops; + struct list_head list; + struct device *parent; + struct device *this_device; + const struct attribute_group **groups; + const char *nodename; + umode_t mode; }; -struct domain_device { - spinlock_t done_lock; - enum sas_device_type dev_type; - enum sas_linkrate linkrate; - enum sas_linkrate min_linkrate; - enum sas_linkrate max_linkrate; - int pathways; - struct domain_device *parent; - struct list_head siblings; - struct asd_sas_port *port; - struct sas_phy *phy; - struct list_head dev_list_node; - struct list_head disco_list_node; - enum sas_protocol iproto; - enum sas_protocol tproto; - struct sas_rphy *rphy; - u8 sas_addr[8]; - u8 hashed_sas_addr[3]; - u8 frame_rcvd[32]; - long: 64; - long: 64; - long: 64; - long: 64; - union { - struct expander_device ex_dev; - struct sata_device sata_dev; - struct ssp_device ssp_dev; - }; - void *lldd_dev; - unsigned long state; - struct kref kref; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct fsl_mc_uapi { + struct miscdevice misc; + struct device *device; + struct mutex mutex; + u32 local_instance_in_use; + struct fsl_mc_io *static_mc_io; }; -struct ex_phy { - int phy_id; - enum ex_phy_state phy_state; - enum sas_device_type attached_dev_type; - enum sas_linkrate linkrate; - u8 attached_sata_host: 1; - u8 attached_sata_dev: 1; - u8 attached_sata_ps: 1; - enum sas_protocol attached_tproto; - enum sas_protocol attached_iproto; - u8 attached_sas_addr[8]; - u8 attached_phy_id; - int phy_change_count; - enum routing_attribute routing_attr; - u8 virtual: 1; - int last_da_index; - struct sas_phy *phy; - struct sas_port *port; +struct fsl_mc_bus { + struct fsl_mc_device mc_dev; + struct fsl_mc_resource_pool resource_pools[4]; + struct fsl_mc_device_irq *irq_resources; + struct mutex scan_mutex; + struct dprc_attributes dprc_attr; + struct fsl_mc_uapi uapi_misc; + int irq_enabled; }; -struct sas_port { - struct device dev; - int port_identifier; - int num_phys; - unsigned int is_backlink: 1; - struct sas_rphy *rphy; - struct mutex phy_list_mutex; - struct list_head phy_list; - struct list_head del_list; +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 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 fsl_mc_device_id; -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; +struct fsl_mc_driver { + struct device_driver driver; + const struct fsl_mc_device_id *match_id_table; + int (*probe)(struct fsl_mc_device *); + void (*remove)(struct fsl_mc_device *); + void (*shutdown)(struct fsl_mc_device *); + int (*suspend)(struct fsl_mc_device *, pm_message_t); + int (*resume)(struct fsl_mc_device *); + bool driver_managed_dma; }; -struct ata_queued_cmd; +struct fsl_mc_device_id { + __u16 vendor; + const char obj_type[16]; +}; -typedef void (*ata_qc_cb_t)(struct ata_queued_cmd *); +struct dpmng_rsp_get_version { + __le32 revision; + __le32 version_major; + __le32 version_minor; +}; -struct ata_device; +struct mc_cmd_header { + u8 src_id; + u8 flags_hw; + u8 status; + u8 flags_sw; + __le16 token; + __le16 cmd_id; +}; -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 dprc_region_desc { + u32 base_offset; + u32 size; + u32 flags; + enum dprc_region_type type; + u64 base_address; }; -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 fsl_mc_addr_translation_range; + +struct fsl_mc { + struct fsl_mc_device *root_mc_bus_dev; + u8 num_translation_ranges; + struct fsl_mc_addr_translation_range *translation_ranges; + void *fsl_mc_regs; }; -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 fsl_mc_addr_translation_range { + enum dprc_region_type mc_region_type; + u64 start_mc_offset; + u64 end_mc_offset; + phys_addr_t start_phys_addr; }; -struct ata_ering_entry { - unsigned int eflags; - unsigned int err_mask; - u64 timestamp; +struct dprc_endpoint { + char type[16]; + int id; + u16 if_id; }; -struct ata_ering { - int cursor; - struct ata_ering_entry ring[32]; +struct fsl_mc_command { + __le64 header; + __le64 params[7]; }; -struct ata_link; +struct of_bus; -struct ata_cpr_log; +struct of_pci_range_parser { + struct device_node *node; + struct of_bus *bus; + const __be32 *range; + const __be32 *end; + int na; + int ns; + int pna; + bool dma; +}; -struct ata_device { - struct ata_link *link; - unsigned int devno; - unsigned int horkage; - unsigned long flags; - struct scsi_device *sdev; - void *private_data; - union acpi_object *gtf_cache; - unsigned int gtf_filter; - struct device tdev; - u64 n_sectors; - u64 n_native_sectors; - unsigned int class; - unsigned long unpark_deadline; - u8 pio_mode; - u8 dma_mode; - u8 xfer_mode; - unsigned int xfer_shift; - unsigned int multi_count; - unsigned int max_sectors; - unsigned int cdb_len; - unsigned int pio_mask; - unsigned int mwdma_mask; - unsigned int udma_mask; - u16 cylinders; - u16 heads; - u16 sectors; - long: 64; +struct of_pci_range { union { - u16 id[256]; - u32 gscr[128]; + u64 pci_addr; + u64 bus_addr; }; - u8 devslp_timing[8]; - u8 ncq_send_recv_cmds[20]; - u8 ncq_non_data_cmds[64]; - u32 zac_zoned_cap; - u32 zac_zones_optimal_open; - u32 zac_zones_optimal_nonseq; - u32 zac_zones_max_open; - struct ata_cpr_log *cpr_log; - u8 cdl[512]; - int spdn_cnt; - struct ata_ering ering; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; + u64 cpu_addr; + u64 size; + u32 flags; }; -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; - struct ata_device device[2]; - unsigned long last_lpm_change; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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 ata_port_stats { - unsigned long unhandled_irq; - unsigned long idle_irq; - unsigned long rw_reqbuf; +enum phy_media { + PHY_MEDIA_DEFAULT = 0, + PHY_MEDIA_SR = 1, + PHY_MEDIA_DAC = 2, }; -struct ata_acpi_drive { - u32 pio; - u32 dma; +struct phy; + +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 ata_acpi_gtm { - struct ata_acpi_drive drive[2]; - u32 flags; +struct phy_attrs { + u32 bus_width; + u32 max_link_rate; + enum phy_mode mode; }; -struct ata_port_operations; +struct regulator; -struct ata_bmdma_prd; +struct phy { + struct device dev; + int id; + const struct phy_ops *ops; + struct mutex mutex; + int init_count; + int power_count; + struct phy_attrs attrs; + struct regulator *pwr; + struct dentry *debugfs; +}; -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: 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 delayed_work scsi_rescan_task; - unsigned int hsm_task_state; - struct list_head eh_done_q; - wait_queue_head_t eh_wait_q; - int eh_tries; - struct completion park_req_pending; - pm_message_t pm_mesg; - enum ata_lpm_policy target_lpm_policy; - struct timer_list fastdrain_timer; - unsigned int fastdrain_cnt; - async_cookie_t cookie; - int em_message_type; - void *private_data; - struct ata_acpi_gtm __acpi_init_gtm; - u8 *ncq_sense_buf; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u8 sector_buf[512]; +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; }; -typedef int (*ata_prereset_fn_t)(struct ata_link *, unsigned long); +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; +}; -typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, unsigned long); +struct phy_configure_opts_lvds { + unsigned int bits_per_lane_and_dclk_cycle; + unsigned long differential_clk_rate; + unsigned int lanes; + bool is_slave; +}; -typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); +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 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_cpr { - u8 num; - u8 num_storage_elements; - u64 start_lba; - u64 num_lbas; -}; +struct regmap; -struct ata_cpr_log { - u8 nr_cpr; - struct ata_cpr cpr[0]; +struct phy_axg_mipi_pcie_analog_priv { + struct phy *phy; + struct regmap *regmap; + bool dsi_configured; + bool dsi_enabled; + bool powered; + struct phy_configure_opts_mipi_dphy config; }; -struct ata_host { - spinlock_t lock; +struct phy_provider { 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]; + struct device_node *children; + struct module *owner; + struct list_head list; + struct phy * (*of_xlate)(struct device *, struct of_phandle_args *); }; -struct ata_bmdma_prd { - __le32 addr; - __le32 flags_len; +struct clk_hw; + +struct clk_rate_request; + +struct clk_duty; + +struct clk_ops { + int (*prepare)(struct clk_hw *); + void (*unprepare)(struct clk_hw *); + int (*is_prepared)(struct clk_hw *); + void (*unprepare_unused)(struct clk_hw *); + int (*enable)(struct clk_hw *); + void (*disable)(struct clk_hw *); + int (*is_enabled)(struct clk_hw *); + void (*disable_unused)(struct clk_hw *); + int (*save_context)(struct clk_hw *); + void (*restore_context)(struct clk_hw *); + unsigned long (*recalc_rate)(struct clk_hw *, unsigned long); + long (*round_rate)(struct clk_hw *, unsigned long, unsigned long *); + int (*determine_rate)(struct clk_hw *, struct clk_rate_request *); + int (*set_parent)(struct clk_hw *, u8); + u8 (*get_parent)(struct clk_hw *); + int (*set_rate)(struct clk_hw *, unsigned long, unsigned long); + int (*set_rate_and_parent)(struct clk_hw *, unsigned long, unsigned long, u8); + unsigned long (*recalc_accuracy)(struct clk_hw *, unsigned long); + int (*get_phase)(struct clk_hw *); + int (*set_phase)(struct clk_hw *, int); + int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *); + int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *); + int (*init)(struct clk_hw *); + void (*terminate)(struct clk_hw *); + void (*debug_init)(struct clk_hw *, struct dentry *); }; -struct sas_domain_function_template; +struct clk_core; -struct sas_internal { - struct scsi_transport_template t; - struct sas_function_template *f; - struct sas_domain_function_template *dft; - struct device_attribute private_host_attrs[0]; - struct device_attribute private_phy_attrs[17]; - struct device_attribute private_port_attrs[1]; - struct device_attribute private_rphy_attrs[8]; - struct device_attribute private_end_dev_attrs[5]; - struct device_attribute private_expander_attrs[7]; - struct transport_container phy_attr_cont; - struct transport_container port_attr_cont; - struct transport_container rphy_attr_cont; - struct transport_container end_dev_attr_cont; - struct transport_container expander_attr_cont; - struct device_attribute *host_attrs[1]; - struct device_attribute *phy_attrs[18]; - struct device_attribute *port_attrs[2]; - struct device_attribute *rphy_attrs[9]; - struct device_attribute *end_dev_attrs[6]; - struct device_attribute *expander_attrs[8]; +struct clk_init_data; + +struct clk_hw { + struct clk_core *core; + struct clk *clk; + const struct clk_init_data *init; }; -struct sas_task; +struct clk_parent_data; -struct sas_domain_function_template { - void (*lldd_port_formed)(struct asd_sas_phy *); - void (*lldd_port_deformed)(struct asd_sas_phy *); - int (*lldd_dev_found)(struct domain_device *); - void (*lldd_dev_gone)(struct domain_device *); - int (*lldd_execute_task)(struct sas_task *, gfp_t); - int (*lldd_abort_task)(struct sas_task *); - int (*lldd_abort_task_set)(struct domain_device *, u8 *); - int (*lldd_clear_task_set)(struct domain_device *, u8 *); - int (*lldd_I_T_nexus_reset)(struct domain_device *); - int (*lldd_ata_check_ready)(struct domain_device *); - void (*lldd_ata_set_dmamode)(struct domain_device *); - int (*lldd_lu_reset)(struct domain_device *, u8 *); - int (*lldd_query_task)(struct sas_task *); - void (*lldd_tmf_exec_complete)(struct domain_device *); - void (*lldd_tmf_aborted)(struct sas_task *); - bool (*lldd_abort_timeout)(struct sas_task *, void *); - int (*lldd_clear_nexus_port)(struct asd_sas_port *); - int (*lldd_clear_nexus_ha)(struct sas_ha_struct *); - int (*lldd_control_phy)(struct asd_sas_phy *, enum phy_func, void *); - int (*lldd_write_gpio)(struct sas_ha_struct *, u8, u8, u8, u8 *); +struct clk_init_data { + const char *name; + const struct clk_ops *ops; + const char * const *parent_names; + const struct clk_parent_data *parent_data; + const struct clk_hw **parent_hws; + u8 num_parents; + unsigned long flags; }; -struct host_to_dev_fis { - u8 fis_type; - u8 flags; - u8 command; - u8 features; - u8 lbal; - union { - u8 lbam; - u8 byte_count_low; - }; - union { - u8 lbah; - u8 byte_count_high; - }; - u8 device; - u8 lbal_exp; - u8 lbam_exp; - u8 lbah_exp; - u8 features_exp; - union { - u8 sector_count; - u8 interrupt_reason; - }; - u8 sector_count_exp; - u8 _r_a; - u8 control; - u32 _r_b; +struct clk_parent_data { + const struct clk_hw *hw; + const char *fw_name; + const char *name; + int index; }; -struct sas_ata_task { - struct host_to_dev_fis fis; - u8 atapi_packet[16]; - u8 retry_count; - u8 dma_xfer: 1; - u8 use_ncq: 1; - u8 set_affil_pol: 1; - u8 stp_affil_pol: 1; - u8 device_control_reg_update: 1; - bool force_phy; - int force_phy_id; +struct clk_rate_request { + struct clk_core *core; + unsigned long rate; + unsigned long min_rate; + unsigned long max_rate; + unsigned long best_parent_rate; + struct clk_hw *best_parent_hw; }; -struct sas_smp_task { - struct scatterlist smp_req; - struct scatterlist smp_resp; +struct clk_duty { + unsigned int num; + unsigned int den; }; -struct sas_ssp_task { - u8 retry_count; - u8 LUN[8]; - u8 enable_first_burst: 1; - enum task_attribute task_attr; - u8 task_prio; - struct scsi_cmnd *cmd; +struct usb2phy_reg { + unsigned int offset; + unsigned int bitend; + unsigned int bitstart; + unsigned int disable; + unsigned int enable; }; -struct sas_internal_abort_task { - enum sas_internal_abort type; - unsigned int qid; - u16 tag; +struct rockchip_usb2phy_port_cfg { + struct usb2phy_reg phy_sus; + struct usb2phy_reg bvalid_det_en; + struct usb2phy_reg bvalid_det_st; + struct usb2phy_reg bvalid_det_clr; + struct usb2phy_reg disfall_en; + struct usb2phy_reg disfall_st; + struct usb2phy_reg disfall_clr; + struct usb2phy_reg disrise_en; + struct usb2phy_reg disrise_st; + struct usb2phy_reg disrise_clr; + struct usb2phy_reg id_det_en; + struct usb2phy_reg id_det_st; + struct usb2phy_reg id_det_clr; + struct usb2phy_reg ls_det_en; + struct usb2phy_reg ls_det_st; + struct usb2phy_reg ls_det_clr; + struct usb2phy_reg utmi_avalid; + struct usb2phy_reg utmi_bvalid; + struct usb2phy_reg utmi_id; + struct usb2phy_reg utmi_ls; + struct usb2phy_reg utmi_hstdet; }; -struct task_status_struct { - enum service_response resp; - enum exec_status stat; - int buf_valid_size; - u8 buf[96]; - u32 residual; - enum sas_open_rej_reason open_rej_reason; +struct rockchip_chg_det_reg { + struct usb2phy_reg cp_det; + struct usb2phy_reg dcp_det; + struct usb2phy_reg dp_det; + struct usb2phy_reg idm_sink_en; + struct usb2phy_reg idp_sink_en; + struct usb2phy_reg idp_src_en; + struct usb2phy_reg rdm_pdwn_en; + struct usb2phy_reg vdm_src_en; + struct usb2phy_reg vdp_src_en; + struct usb2phy_reg opmode; }; -struct sas_task_slow; +struct rockchip_usb2phy; -struct sas_tmf_task; +struct rockchip_usb2phy_cfg { + unsigned int reg; + unsigned int num_ports; + int (*phy_tuning)(struct rockchip_usb2phy *); + struct usb2phy_reg clkout_ctl; + const struct rockchip_usb2phy_port_cfg port_cfgs[2]; + const struct rockchip_chg_det_reg chg_det; +}; -struct sas_task { - struct domain_device *dev; - spinlock_t task_state_lock; - unsigned int task_state_flags; - enum sas_protocol task_proto; - union { - struct sas_ata_task ata_task; - struct sas_smp_task smp_task; - struct sas_ssp_task ssp_task; - struct sas_internal_abort_task abort_task; - }; - struct scatterlist *scatter; - int num_scatter; - u32 total_xfer_len; - u8 data_dir: 2; - struct task_status_struct task_status; - void (*task_done)(struct sas_task *); - void *lldd_task; - void *uldd_task; - struct sas_task_slow *slow_task; - struct sas_tmf_task *tmf; +enum usb_chg_state { + USB_CHG_STATE_UNDEFINED = 0, + USB_CHG_STATE_WAIT_FOR_DCD = 1, + USB_CHG_STATE_DCD_DONE = 2, + USB_CHG_STATE_PRIMARY_DONE = 3, + USB_CHG_STATE_SECONDARY_DONE = 4, + USB_CHG_STATE_DETECTED = 5, }; -struct sas_task_slow { - struct timer_list timer; - struct completion completion; - struct sas_task *task; +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, }; -struct sas_tmf_task { - u8 tmf; - u16 tag_of_task_to_be_managed; +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 sas_phy_data { - struct sas_phy *phy; - struct mutex event_lock; - int hard_reset; - int reset_result; - struct sas_work reset_work; - int enable; - int enable_result; - struct sas_work enable_work; +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 asd_sas_event { - struct sas_work work; - struct asd_sas_phy *phy; - int event; +struct rockchip_usb2phy_port { + struct phy *phy; + unsigned int port_id; + bool suspended; + bool vbus_attached; + bool host_disconnect; + int bvalid_irq; + int id_irq; + int ls_irq; + int otg_mux_irq; + struct mutex mutex; + struct delayed_work chg_work; + struct delayed_work otg_sm_work; + struct delayed_work sm_work; + const struct rockchip_usb2phy_port_cfg *port_cfg; + struct notifier_block event_nb; + enum usb_otg_state state; + enum usb_dr_mode mode; }; -typedef unsigned char u_char; +struct reset_control; -struct mtd_ecc_stats { - __u32 corrected; - __u32 failed; - __u32 badblocks; - __u32 bbtblocks; -}; +struct extcon_dev; -struct mtd_debug_info { - struct dentry *dfs_dir; +struct rockchip_usb2phy { + struct device *dev; + struct regmap *grf; + struct regmap *usbgrf; + struct clk *clk; + struct clk *clk480m; + struct clk_hw clk480m_hw; + struct reset_control *phy_reset; + enum usb_chg_state chg_state; + enum power_supply_type chg_type; + u8 dcd_retries; + struct extcon_dev *edev; + int irq; + const struct rockchip_usb2phy_cfg *phy_cfg; + struct rockchip_usb2phy_port ports[2]; }; -struct mtd_part { - struct list_head node; - u64 offset; - u64 size; - u32 flags; +enum rockchip_usb2phy_port_id { + USB2PHY_PORT_OTG = 0, + USB2PHY_PORT_HOST = 1, + USB2PHY_NUM_PORTS = 2, }; -struct mtd_master { - struct mutex partitions_lock; - struct mutex chrdev_lock; - unsigned int suspended: 1; +enum rockchip_usb2phy_host_state { + PHY_STATE_HS_ONLINE = 0, + PHY_STATE_DISCONNECT = 1, + PHY_STATE_CONNECT = 2, + PHY_STATE_FS_LS_ONLINE = 4, }; -struct mtd_ooblayout_ops; - -struct mtd_pairing_scheme; +struct pinctrl_pin_desc; -struct mtd_erase_region_info; +struct pinctrl_ops; -struct erase_info; +struct pinmux_ops; -struct mtd_oob_ops; +struct pinconf_ops; -struct otp_info; +struct pinconf_generic_params; -struct nvmem_device; +struct pin_config_item; -struct mtd_info { - u_char type; - uint32_t flags; - uint64_t size; - uint32_t erasesize; - uint32_t writesize; - uint32_t writebufsize; - uint32_t oobsize; - uint32_t oobavail; - unsigned int erasesize_shift; - unsigned int writesize_shift; - unsigned int erasesize_mask; - unsigned int writesize_mask; - unsigned int bitflip_threshold; +struct pinctrl_desc { const char *name; - int index; - const struct mtd_ooblayout_ops *ooblayout; - const struct mtd_pairing_scheme *pairing; - unsigned int ecc_step_size; - unsigned int ecc_strength; - int numeraseregions; - struct mtd_erase_region_info *eraseregions; - int (*_erase)(struct mtd_info *, struct erase_info *); - int (*_point)(struct mtd_info *, loff_t, size_t, size_t *, void **, resource_size_t *); - int (*_unpoint)(struct mtd_info *, loff_t, size_t); - int (*_read)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); - int (*_write)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); - int (*_panic_write)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); - int (*_read_oob)(struct mtd_info *, loff_t, struct mtd_oob_ops *); - int (*_write_oob)(struct mtd_info *, loff_t, struct mtd_oob_ops *); - int (*_get_fact_prot_info)(struct mtd_info *, size_t, size_t *, struct otp_info *); - int (*_read_fact_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); - int (*_get_user_prot_info)(struct mtd_info *, size_t, size_t *, struct otp_info *); - int (*_read_user_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); - int (*_write_user_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); - int (*_lock_user_prot_reg)(struct mtd_info *, loff_t, size_t); - int (*_erase_user_prot_reg)(struct mtd_info *, loff_t, size_t); - int (*_writev)(struct mtd_info *, const struct kvec *, unsigned long, loff_t, size_t *); - void (*_sync)(struct mtd_info *); - int (*_lock)(struct mtd_info *, loff_t, uint64_t); - int (*_unlock)(struct mtd_info *, loff_t, uint64_t); - int (*_is_locked)(struct mtd_info *, loff_t, uint64_t); - int (*_block_isreserved)(struct mtd_info *, loff_t); - int (*_block_isbad)(struct mtd_info *, loff_t); - int (*_block_markbad)(struct mtd_info *, loff_t); - int (*_max_bad_blocks)(struct mtd_info *, loff_t, size_t); - int (*_suspend)(struct mtd_info *); - void (*_resume)(struct mtd_info *); - void (*_reboot)(struct mtd_info *); - int (*_get_device)(struct mtd_info *); - void (*_put_device)(struct mtd_info *); - bool oops_panic_write; - struct notifier_block reboot_notifier; - struct mtd_ecc_stats ecc_stats; - int subpage_sft; - void *priv; + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct pinctrl_ops *pctlops; + const struct pinmux_ops *pmxops; + const struct pinconf_ops *confops; struct module *owner; - struct device dev; - int usecount; - struct mtd_debug_info dbg; - struct nvmem_device *nvmem; - struct nvmem_device *otp_user_nvmem; - struct nvmem_device *otp_factory_nvmem; - struct mtd_info *parent; - struct list_head partitions; - struct mtd_part part; - struct mtd_master master; + unsigned int num_custom_params; + const struct pinconf_generic_params *custom_params; + const struct pin_config_item *custom_conf_items; + bool link_consumers; }; -struct mtd_oob_region; - -struct mtd_ooblayout_ops { - int (*ecc)(struct mtd_info *, int, struct mtd_oob_region *); - int (*free)(struct mtd_info *, int, struct mtd_oob_region *); +struct pinctrl_pin_desc { + unsigned int number; + const char *name; + void *drv_data; }; -struct mtd_oob_region { - u32 offset; - u32 length; -}; +struct pinctrl_dev; -struct mtd_pairing_info; +struct pinctrl_map; -struct mtd_pairing_scheme { - int ngroups; - int (*get_info)(struct mtd_info *, int, struct mtd_pairing_info *); - int (*get_wunit)(struct mtd_info *, const struct mtd_pairing_info *); +struct pinctrl_ops { + int (*get_groups_count)(struct pinctrl_dev *); + const char * (*get_group_name)(struct pinctrl_dev *, unsigned int); + int (*get_group_pins)(struct pinctrl_dev *, unsigned int, const unsigned int **, unsigned int *); + void (*pin_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + int (*dt_node_to_map)(struct pinctrl_dev *, struct device_node *, struct pinctrl_map **, unsigned int *); + void (*dt_free_map)(struct pinctrl_dev *, struct pinctrl_map *, unsigned int); }; -struct mtd_pairing_info { - int pair; - int group; -}; +struct pinctrl; -struct mtd_erase_region_info { - uint64_t offset; - uint32_t erasesize; - uint32_t numblocks; - unsigned long *lockmap; -}; +struct pinctrl_state; -struct erase_info { - uint64_t addr; - uint64_t len; - uint64_t fail_addr; +struct pinctrl_dev { + struct list_head node; + struct pinctrl_desc *desc; + struct xarray pin_desc_tree; + struct xarray pin_group_tree; + unsigned int num_groups; + struct xarray pin_function_tree; + unsigned int num_functions; + struct list_head gpio_ranges; + struct device *dev; + struct module *owner; + void *driver_data; + struct pinctrl *p; + struct pinctrl_state *hog_default; + struct pinctrl_state *hog_sleep; + struct mutex mutex; + struct dentry *device_root; }; -struct mtd_req_stats; - -struct mtd_oob_ops { - unsigned int mode; - size_t len; - size_t retlen; - size_t ooblen; - size_t oobretlen; - uint32_t ooboffs; - uint8_t *datbuf; - uint8_t *oobbuf; - struct mtd_req_stats *stats; +struct pinctrl { + struct list_head node; + struct device *dev; + struct list_head states; + struct pinctrl_state *state; + struct list_head dt_maps; + struct kref users; }; -struct mtd_req_stats { - unsigned int uncorrectable_errors; - unsigned int corrected_bitflips; - unsigned int max_bitflips; +struct pinctrl_state { + struct list_head node; + const char *name; + struct list_head settings; }; -struct otp_info { - __u32 start; - __u32 length; - __u32 locked; +struct pinctrl_map_mux { + const char *group; + const char *function; }; -enum nand_ecc_engine_type { - NAND_ECC_ENGINE_TYPE_INVALID = 0, - NAND_ECC_ENGINE_TYPE_NONE = 1, - NAND_ECC_ENGINE_TYPE_SOFT = 2, - NAND_ECC_ENGINE_TYPE_ON_HOST = 3, - NAND_ECC_ENGINE_TYPE_ON_DIE = 4, +struct pinctrl_map_configs { + const char *group_or_pin; + unsigned long *configs; + unsigned int num_configs; }; -enum nand_ecc_placement { - NAND_ECC_PLACEMENT_UNKNOWN = 0, - NAND_ECC_PLACEMENT_OOB = 1, - NAND_ECC_PLACEMENT_INTERLEAVED = 2, +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, }; -enum nand_ecc_algo { - NAND_ECC_ALGO_UNKNOWN = 0, - NAND_ECC_ALGO_HAMMING = 1, - NAND_ECC_ALGO_BCH = 2, - NAND_ECC_ALGO_RS = 3, +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 nand_page_io_req_type { - NAND_PAGE_READ = 0, - NAND_PAGE_WRITE = 1, -}; +struct pinctrl_gpio_range; -enum nand_ecc_engine_integration { - NAND_ECC_ENGINE_INTEGRATION_INVALID = 0, - NAND_ECC_ENGINE_INTEGRATION_PIPELINED = 1, - NAND_ECC_ENGINE_INTEGRATION_EXTERNAL = 2, +struct pinmux_ops { + int (*request)(struct pinctrl_dev *, unsigned int); + int (*free)(struct pinctrl_dev *, unsigned int); + int (*get_functions_count)(struct pinctrl_dev *); + const char * (*get_function_name)(struct pinctrl_dev *, unsigned int); + int (*get_function_groups)(struct pinctrl_dev *, unsigned int, const char * const **, unsigned int *); + int (*set_mux)(struct pinctrl_dev *, unsigned int, unsigned int); + int (*gpio_request_enable)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); + void (*gpio_disable_free)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); + int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); + bool strict; }; -enum nand_bbt_block_status { - NAND_BBT_BLOCK_STATUS_UNKNOWN = 0, - NAND_BBT_BLOCK_GOOD = 1, - NAND_BBT_BLOCK_WORN = 2, - NAND_BBT_BLOCK_RESERVED = 3, - NAND_BBT_BLOCK_FACTORY_BAD = 4, - NAND_BBT_BLOCK_NUM_STATUS = 5, +struct gpio_chip; + +struct pinctrl_gpio_range { + struct list_head node; + const char *name; + unsigned int id; + unsigned int base; + unsigned int pin_base; + unsigned int npins; + const unsigned int *pins; + struct gpio_chip *gc; }; -struct nand_memory_organization { - unsigned int bits_per_cell; - unsigned int pagesize; - unsigned int oobsize; - unsigned int pages_per_eraseblock; - unsigned int eraseblocks_per_lun; - unsigned int max_bad_eraseblocks_per_lun; - unsigned int planes_per_lun; - unsigned int luns_per_target; - unsigned int ntargets; +union gpio_irq_fwspec; + +struct gpio_irq_chip { + struct irq_chip *chip; + struct irq_domain *domain; + struct fwnode_handle *fwnode; + struct irq_domain *parent_domain; + int (*child_to_parent_hwirq)(struct gpio_chip *, unsigned int, unsigned int, unsigned int *, unsigned int *); + int (*populate_parent_alloc_arg)(struct gpio_chip *, union gpio_irq_fwspec *, unsigned int, unsigned int); + unsigned int (*child_offset_to_irq)(struct gpio_chip *, unsigned int); + struct irq_domain_ops child_irq_domain_ops; + irq_flow_handler_t handler; + unsigned int default_type; + struct lock_class_key *lock_key; + struct lock_class_key *request_key; + irq_flow_handler_t parent_handler; + union { + void *parent_handler_data; + void **parent_handler_data_array; + }; + unsigned int num_parents; + unsigned int *parents; + unsigned int *map; + bool threaded; + bool per_parent_data; + bool initialized; + bool domain_is_allocated_externally; + int (*init_hw)(struct gpio_chip *); + void (*init_valid_mask)(struct gpio_chip *, unsigned long *, unsigned int); + unsigned long *valid_mask; + unsigned int first; + void (*irq_enable)(struct irq_data *); + void (*irq_disable)(struct irq_data *); + void (*irq_unmask)(struct irq_data *); + void (*irq_mask)(struct irq_data *); }; -struct nand_ecc_props { - enum nand_ecc_engine_type engine_type; - enum nand_ecc_placement placement; - enum nand_ecc_algo algo; - unsigned int strength; - unsigned int step_size; - unsigned int flags; +struct gpio_device; + +struct gpio_chip { + const char *label; + struct gpio_device *gpiodev; + struct device *parent; + struct fwnode_handle *fwnode; + struct module *owner; + int (*request)(struct gpio_chip *, unsigned int); + void (*free)(struct gpio_chip *, unsigned int); + int (*get_direction)(struct gpio_chip *, unsigned int); + int (*direction_input)(struct gpio_chip *, unsigned int); + int (*direction_output)(struct gpio_chip *, unsigned int, int); + int (*get)(struct gpio_chip *, unsigned int); + int (*get_multiple)(struct gpio_chip *, unsigned long *, unsigned long *); + void (*set)(struct gpio_chip *, unsigned int, int); + void (*set_multiple)(struct gpio_chip *, unsigned long *, unsigned long *); + int (*set_config)(struct gpio_chip *, unsigned int, unsigned long); + int (*to_irq)(struct gpio_chip *, unsigned int); + void (*dbg_show)(struct seq_file *, struct gpio_chip *); + int (*init_valid_mask)(struct gpio_chip *, unsigned long *, unsigned int); + int (*add_pin_ranges)(struct gpio_chip *); + int (*en_hw_timestamp)(struct gpio_chip *, u32, unsigned long); + int (*dis_hw_timestamp)(struct gpio_chip *, u32, unsigned long); + int base; + u16 ngpio; + u16 offset; + const char * const *names; + bool can_sleep; + unsigned long (*read_reg)(void *); + void (*write_reg)(void *, unsigned long); + bool be_bits; + void *reg_dat; + void *reg_set; + void *reg_clr; + void *reg_dir_out; + void *reg_dir_in; + bool bgpio_dir_unreadable; + int bgpio_bits; + raw_spinlock_t bgpio_lock; + unsigned long bgpio_data; + unsigned long bgpio_dir; + struct gpio_irq_chip irq; + unsigned long *valid_mask; + unsigned int of_gpio_n_cells; + int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *); }; -struct nand_ecc_context { - struct nand_ecc_props conf; - unsigned int nsteps; - unsigned int total; - void *priv; +struct msi_alloc_info { + struct msi_desc *desc; + irq_hw_number_t hwirq; + unsigned long flags; + union { + unsigned long ul; + void *ptr; + } scratchpad[2]; }; -struct nand_ecc_engine; +typedef struct msi_alloc_info msi_alloc_info_t; -struct nand_ecc { - struct nand_ecc_props defaults; - struct nand_ecc_props requirements; - struct nand_ecc_props user_conf; - struct nand_ecc_context ctx; - struct nand_ecc_engine *ondie_engine; - struct nand_ecc_engine *engine; +union gpio_irq_fwspec { + struct irq_fwspec fwspec; + msi_alloc_info_t msiinfo; }; -struct nand_row_converter { - unsigned int lun_addr_shift; - unsigned int eraseblock_addr_shift; +struct pinconf_ops { + bool is_generic; + int (*pin_config_get)(struct pinctrl_dev *, unsigned int, unsigned long *); + int (*pin_config_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); + int (*pin_config_group_get)(struct pinctrl_dev *, unsigned int, unsigned long *); + int (*pin_config_group_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); + void (*pin_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + void (*pin_config_group_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + void (*pin_config_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned long); }; -struct nand_bbt { - unsigned long *cache; +enum pin_config_param { + PIN_CONFIG_BIAS_BUS_HOLD = 0, + PIN_CONFIG_BIAS_DISABLE = 1, + PIN_CONFIG_BIAS_HIGH_IMPEDANCE = 2, + PIN_CONFIG_BIAS_PULL_DOWN = 3, + PIN_CONFIG_BIAS_PULL_PIN_DEFAULT = 4, + PIN_CONFIG_BIAS_PULL_UP = 5, + PIN_CONFIG_DRIVE_OPEN_DRAIN = 6, + PIN_CONFIG_DRIVE_OPEN_SOURCE = 7, + PIN_CONFIG_DRIVE_PUSH_PULL = 8, + PIN_CONFIG_DRIVE_STRENGTH = 9, + PIN_CONFIG_DRIVE_STRENGTH_UA = 10, + PIN_CONFIG_INPUT_DEBOUNCE = 11, + PIN_CONFIG_INPUT_ENABLE = 12, + PIN_CONFIG_INPUT_SCHMITT = 13, + PIN_CONFIG_INPUT_SCHMITT_ENABLE = 14, + PIN_CONFIG_MODE_LOW_POWER = 15, + PIN_CONFIG_MODE_PWM = 16, + PIN_CONFIG_OUTPUT = 17, + PIN_CONFIG_OUTPUT_ENABLE = 18, + PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS = 19, + PIN_CONFIG_PERSIST_STATE = 20, + PIN_CONFIG_POWER_SOURCE = 21, + PIN_CONFIG_SKEW_DELAY = 22, + PIN_CONFIG_SLEEP_HARDWARE_STATE = 23, + PIN_CONFIG_SLEW_RATE = 24, + PIN_CONFIG_END = 127, + PIN_CONFIG_MAX = 255, }; -struct nand_ops; +struct pinconf_generic_params { + const char * const property; + enum pin_config_param param; + u32 default_value; +}; -struct nand_device { - struct mtd_info mtd; - struct nand_memory_organization memorg; - struct nand_ecc ecc; - struct nand_row_converter rowconv; - struct nand_bbt bbt; - const struct nand_ops *ops; +struct pin_config_item { + const enum pin_config_param param; + const char * const display; + const char * const format; + bool has_arg; }; -struct nand_ecc_engine_ops; +enum owl_pinconf_drv { + OWL_PINCONF_DRV_2MA = 0, + OWL_PINCONF_DRV_4MA = 1, + OWL_PINCONF_DRV_8MA = 2, + OWL_PINCONF_DRV_12MA = 3, +}; -struct nand_ecc_engine { +struct owl_pinctrl_soc_data; + +struct owl_pinctrl { struct device *dev; - struct list_head node; - struct nand_ecc_engine_ops *ops; - enum nand_ecc_engine_integration integration; - void *priv; + struct pinctrl_dev *pctrldev; + struct gpio_chip chip; + raw_spinlock_t lock; + struct clk *clk; + const struct owl_pinctrl_soc_data *soc; + void *base; + unsigned int num_irq; + unsigned int *irq; }; -struct nand_page_io_req; +struct owl_pinmux_func; -struct nand_ecc_engine_ops { - int (*init_ctx)(struct nand_device *); - void (*cleanup_ctx)(struct nand_device *); - int (*prepare_io_req)(struct nand_device *, struct nand_page_io_req *); - int (*finish_io_req)(struct nand_device *, struct nand_page_io_req *); -}; +struct owl_pingroup; -struct nand_pos { - unsigned int target; - unsigned int lun; - unsigned int plane; - unsigned int eraseblock; - unsigned int page; -}; +struct owl_padinfo; -struct nand_page_io_req { - enum nand_page_io_req_type type; - struct nand_pos pos; - unsigned int dataoffs; - unsigned int datalen; - union { - const void *out; - void *in; - } databuf; - unsigned int ooboffs; - unsigned int ooblen; - union { - const void *out; - void *in; - } oobbuf; - int mode; +struct owl_gpio_port; + +struct owl_pinctrl_soc_data { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct owl_pinmux_func *functions; + unsigned int nfunctions; + const struct owl_pingroup *groups; + unsigned int ngroups; + const struct owl_padinfo *padinfo; + unsigned int ngpios; + const struct owl_gpio_port *ports; + unsigned int nports; + int (*padctl_val2arg)(const struct owl_padinfo *, unsigned int, u32 *); + int (*padctl_arg2val)(const struct owl_padinfo *, unsigned int, u32 *); }; -struct nand_ops { - int (*erase)(struct nand_device *, const struct nand_pos *); - int (*markbad)(struct nand_device *, const struct nand_pos *); - bool (*isbad)(struct nand_device *, const struct nand_pos *); +struct owl_pinmux_func { + const char *name; + const char * const *groups; + unsigned int ngroups; }; -enum spi_mem_data_dir { - SPI_MEM_NO_DATA = 0, - SPI_MEM_DATA_IN = 1, - SPI_MEM_DATA_OUT = 2, +struct owl_pingroup { + const char *name; + unsigned int *pads; + unsigned int npads; + unsigned int *funcs; + unsigned int nfuncs; + int mfpctl_reg; + unsigned int mfpctl_shift; + unsigned int mfpctl_width; + int drv_reg; + unsigned int drv_shift; + unsigned int drv_width; + int sr_reg; + unsigned int sr_shift; + unsigned int sr_width; }; -enum spi_nor_protocol { - SNOR_PROTO_1_1_1 = 65793, - SNOR_PROTO_1_1_2 = 65794, - SNOR_PROTO_1_1_4 = 65796, - SNOR_PROTO_1_1_8 = 65800, - SNOR_PROTO_1_2_2 = 66050, - SNOR_PROTO_1_4_4 = 66564, - SNOR_PROTO_1_8_8 = 67592, - SNOR_PROTO_2_2_2 = 131586, - SNOR_PROTO_4_4_4 = 263172, - SNOR_PROTO_8_8_8 = 526344, - SNOR_PROTO_1_1_1_DTR = 16843009, - SNOR_PROTO_1_2_2_DTR = 16843266, - SNOR_PROTO_1_4_4_DTR = 16843780, - SNOR_PROTO_1_8_8_DTR = 16844808, - SNOR_PROTO_8_8_8_DTR = 17303560, +struct owl_pullctl; + +struct owl_st; + +struct owl_padinfo { + int pad; + struct owl_pullctl *pullctl; + struct owl_st *st; }; -enum spi_nor_cmd_ext { - SPI_NOR_EXT_NONE = 0, - SPI_NOR_EXT_REPEAT = 1, - SPI_NOR_EXT_INVERT = 2, - SPI_NOR_EXT_HEX = 3, +struct owl_pullctl { + int reg; + unsigned int shift; + unsigned int width; }; -struct spi_mem { - struct spi_device *spi; - void *drvpriv; - const char *name; +struct owl_st { + int reg; + unsigned int shift; + unsigned int width; }; -struct spi_mem_op { - struct { - u8 nbytes; - u8 buswidth; - u8 dtr: 1; - u8 __pad: 7; - u16 opcode; - } cmd; - struct { - u8 nbytes; - u8 buswidth; - u8 dtr: 1; - u8 __pad: 7; - u64 val; - } addr; - struct { - u8 nbytes; - u8 buswidth; - u8 dtr: 1; - u8 __pad: 7; - } dummy; - struct { - u8 buswidth; - u8 dtr: 1; - u8 ecc: 1; - u8 __pad: 6; - enum spi_mem_data_dir dir; - unsigned int nbytes; - union { - void *in; - const void *out; - } buf; - } data; +struct owl_gpio_port { + unsigned int offset; + unsigned int pins; + unsigned int outen; + unsigned int inen; + unsigned int dat; + unsigned int intc_ctl; + unsigned int intc_pd; + unsigned int intc_msk; + unsigned int intc_type; + u8 shared_ctl_offset; }; -struct spi_mem_dirmap_info { - struct spi_mem_op op_tmpl; - u64 offset; - u64 length; -}; +struct meson_pmx_group; -struct spi_mem_dirmap_desc { - struct spi_mem *mem; - struct spi_mem_dirmap_info info; - unsigned int nodirmap; - void *priv; -}; +struct meson_pmx_func; -struct spi_nor_rww { - wait_queue_head_t wait; - bool ongoing_io; - bool ongoing_rd; - bool ongoing_pe; - unsigned int used_banks; -}; +struct meson_bank; -struct flash_info; +struct meson_pinctrl; -struct spi_nor_manufacturer; +struct meson_pinctrl_data { + const char *name; + const struct pinctrl_pin_desc *pins; + struct meson_pmx_group *groups; + struct meson_pmx_func *funcs; + unsigned int num_pins; + unsigned int num_groups; + unsigned int num_funcs; + struct meson_bank *banks; + unsigned int num_banks; + const struct pinmux_ops *pmx_ops; + void *pmx_data; + int (*parse_dt)(struct meson_pinctrl *); +}; -struct sfdp; +struct meson_pmx_group { + const char *name; + const unsigned int *pins; + unsigned int num_pins; + const void *data; +}; -struct spi_nor_controller_ops; +struct meson_pmx_func { + const char *name; + const char * const *groups; + unsigned int num_groups; +}; -struct spi_nor_flash_parameter; +struct meson_reg_desc { + unsigned int reg; + unsigned int bit; +}; -struct spi_nor { - struct mtd_info mtd; - struct mutex lock; - struct spi_nor_rww rww; - struct device *dev; - struct spi_mem *spimem; - u8 *bouncebuf; - size_t bouncebuf_size; - u8 *id; - const struct flash_info *info; - const struct spi_nor_manufacturer *manufacturer; - u8 addr_nbytes; - u8 erase_opcode; - u8 read_opcode; - u8 read_dummy; - u8 program_opcode; - enum spi_nor_protocol read_proto; - enum spi_nor_protocol write_proto; - enum spi_nor_protocol reg_proto; - bool sst_write_second; - u32 flags; - enum spi_nor_cmd_ext cmd_ext_type; - struct sfdp *sfdp; - struct dentry *debugfs_root; - const struct spi_nor_controller_ops *controller_ops; - struct spi_nor_flash_parameter *params; - struct { - struct spi_mem_dirmap_desc *rdesc; - struct spi_mem_dirmap_desc *wdesc; - } dirmap; - void *priv; +struct meson_bank { + const char *name; + unsigned int first; + unsigned int last; + int irq_first; + int irq_last; + struct meson_reg_desc regs[6]; }; -struct spi_nor_otp_organization { - size_t len; - loff_t base; - loff_t offset; - unsigned int n_regions; +struct meson_pinctrl { + struct device *dev; + struct pinctrl_dev *pcdev; + struct pinctrl_desc desc; + struct meson_pinctrl_data *data; + struct regmap *reg_mux; + struct regmap *reg_pullen; + struct regmap *reg_pull; + struct regmap *reg_gpio; + struct regmap *reg_ds; + struct gpio_chip chip; + struct fwnode_handle *fwnode; }; -struct spi_nor_fixups; +struct meson_pmx_bank; -struct flash_info { - char *name; - u8 id[6]; - u8 id_len; - unsigned int sector_size; - u16 n_sectors; - u16 page_size; - u8 n_banks; - u8 addr_nbytes; - bool parse_sfdp; - u16 flags; - u8 no_sfdp_flags; - u8 fixup_flags; - u8 mfr_flags; - const struct spi_nor_otp_organization otp_org; - const struct spi_nor_fixups *fixups; +struct meson_axg_pmx_data { + struct meson_pmx_bank *pmx_banks; + unsigned int num_pmx_banks; }; -struct sfdp_parameter_header; +struct meson_pmx_bank { + const char *name; + unsigned int first; + unsigned int last; + unsigned int reg; + unsigned int offset; +}; -struct sfdp_bfpt; +struct pinfunction; -struct spi_nor_fixups { - void (*default_init)(struct spi_nor *); - int (*post_bfpt)(struct spi_nor *, const struct sfdp_parameter_header *, const struct sfdp_bfpt *); - int (*post_sfdp)(struct spi_nor *); - void (*late_init)(struct spi_nor *); -}; +struct msm_pingroup; -struct sfdp_parameter_header { - u8 id_lsb; - u8 minor; - u8 major; - u8 length; - u8 parameter_table_pointer[3]; - u8 id_msb; -}; +struct msm_gpio_wakeirq_map; -struct sfdp_bfpt { - u32 dwords[20]; +struct msm_pinctrl_soc_data { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct pinfunction *functions; + unsigned int nfunctions; + const struct msm_pingroup *groups; + unsigned int ngroups; + unsigned int ngpios; + bool pull_no_keeper; + const char * const *tiles; + unsigned int ntiles; + const int *reserved_gpios; + const struct msm_gpio_wakeirq_map *wakeirq_map; + unsigned int nwakeirq_map; + bool wakeirq_dual_edge_errata; + unsigned int gpio_func; + unsigned int egpio_func; }; -struct spi_nor_manufacturer { +struct pinfunction { const char *name; - const struct flash_info *parts; - unsigned int nparts; - const struct spi_nor_fixups *fixups; + const char * const *groups; + size_t ngroups; }; -struct sfdp { - size_t num_dwords; - u32 *dwords; +struct pingroup { + const char *name; + const unsigned int *pins; + size_t npins; }; -struct spi_nor_controller_ops { - int (*prepare)(struct spi_nor *); - void (*unprepare)(struct spi_nor *); - int (*read_reg)(struct spi_nor *, u8, u8 *, size_t); - int (*write_reg)(struct spi_nor *, u8, const u8 *, size_t); - ssize_t (*read)(struct spi_nor *, loff_t, size_t, u8 *); - ssize_t (*write)(struct spi_nor *, loff_t, size_t, const u8 *); - int (*erase)(struct spi_nor *, loff_t); +struct msm_pingroup { + struct pingroup grp; + unsigned int *funcs; + unsigned int nfuncs; + u32 ctl_reg; + u32 io_reg; + u32 intr_cfg_reg; + u32 intr_status_reg; + u32 intr_target_reg; + unsigned int tile: 2; + unsigned int mux_bit: 5; + unsigned int pull_bit: 5; + unsigned int drv_bit: 5; + unsigned int i2c_pull_bit: 5; + unsigned int od_bit: 5; + unsigned int egpio_enable: 5; + unsigned int egpio_present: 5; + unsigned int oe_bit: 5; + unsigned int in_bit: 5; + unsigned int out_bit: 5; + unsigned int intr_enable_bit: 5; + unsigned int intr_status_bit: 5; + unsigned int intr_ack_high: 1; + long: 1; + unsigned int intr_target_bit: 5; + unsigned int intr_target_width: 5; + unsigned int intr_target_kpss_val: 5; + unsigned int intr_raw_status_bit: 5; + unsigned int intr_polarity_bit: 5; + unsigned int intr_detection_bit: 5; + int: 2; + unsigned int intr_detection_width: 5; }; -struct spi_nor_hwcaps { - u32 mask; +struct msm_gpio_wakeirq_map { + unsigned int gpio; + unsigned int wakeirq; }; -struct spi_nor_read_command { - u8 num_mode_clocks; - u8 num_wait_states; - u8 opcode; - enum spi_nor_protocol proto; +enum uniphier_pin_pull_dir { + UNIPHIER_PIN_PULL_UP = 0, + UNIPHIER_PIN_PULL_DOWN = 1, + UNIPHIER_PIN_PULL_UP_FIXED = 2, + UNIPHIER_PIN_PULL_DOWN_FIXED = 3, + UNIPHIER_PIN_PULL_NONE = 4, }; -struct spi_nor_pp_command { - u8 opcode; - enum spi_nor_protocol proto; +enum uniphier_pin_drv_type { + UNIPHIER_PIN_DRV_1BIT = 0, + UNIPHIER_PIN_DRV_2BIT = 1, + UNIPHIER_PIN_DRV_3BIT = 2, + UNIPHIER_PIN_DRV_FIXED4 = 3, + UNIPHIER_PIN_DRV_FIXED5 = 4, + UNIPHIER_PIN_DRV_FIXED8 = 5, + UNIPHIER_PIN_DRV_NONE = 6, }; -struct spi_nor_erase_region { - u64 offset; - u64 size; +struct uniphier_pinctrl_reg_region { + struct list_head node; + unsigned int base; + unsigned int nregs; + u32 vals[0]; }; -struct spi_nor_erase_type { - u32 size; - u32 size_shift; - u32 size_mask; - u8 opcode; - u8 idx; -}; +struct uniphier_pinctrl_socdata; -struct spi_nor_erase_map { - struct spi_nor_erase_region *regions; - struct spi_nor_erase_region uniform_region; - struct spi_nor_erase_type erase_type[4]; - u8 uniform_erase_type; +struct uniphier_pinctrl_priv { + struct pinctrl_desc pctldesc; + struct pinctrl_dev *pctldev; + struct regmap *regmap; + const struct uniphier_pinctrl_socdata *socdata; + struct list_head reg_regions; }; -struct spi_nor_otp_ops; - -struct spi_nor_otp { - const struct spi_nor_otp_organization *org; - const struct spi_nor_otp_ops *ops; -}; +struct uniphier_pinctrl_group; -struct spi_nor_locking_ops; +struct uniphier_pinmux_function; -struct spi_nor_flash_parameter { - u64 bank_size; - u64 size; - u32 writesize; - u32 page_size; - u8 addr_nbytes; - u8 addr_mode_nbytes; - u8 rdsr_dummy; - u8 rdsr_addr_nbytes; - u8 n_dice; - u32 *vreg_offset; - struct spi_nor_hwcaps hwcaps; - struct spi_nor_read_command reads[16]; - struct spi_nor_pp_command page_programs[8]; - struct spi_nor_erase_map erase_map; - struct spi_nor_otp otp; - int (*octal_dtr_enable)(struct spi_nor *, bool); - int (*quad_enable)(struct spi_nor *); - int (*set_4byte_addr_mode)(struct spi_nor *, bool); - u32 (*convert_addr)(struct spi_nor *, u32); - int (*setup)(struct spi_nor *, const struct spi_nor_hwcaps *); - int (*ready)(struct spi_nor *); - const struct spi_nor_locking_ops *locking_ops; +struct uniphier_pinctrl_socdata { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct uniphier_pinctrl_group *groups; + int groups_count; + const struct uniphier_pinmux_function *functions; + int functions_count; + int (*get_gpio_muxval)(unsigned int, unsigned int); + unsigned int caps; }; -struct spi_nor_otp_ops { - int (*read)(struct spi_nor *, loff_t, size_t, u8 *); - int (*write)(struct spi_nor *, loff_t, size_t, const u8 *); - int (*lock)(struct spi_nor *, unsigned int); - int (*erase)(struct spi_nor *, loff_t); - int (*is_locked)(struct spi_nor *, unsigned int); +struct uniphier_pinctrl_group { + const char *name; + const unsigned int *pins; + unsigned int num_pins; + const int *muxvals; }; -struct spi_nor_locking_ops { - int (*lock)(struct spi_nor *, loff_t, uint64_t); - int (*unlock)(struct spi_nor *, loff_t, uint64_t); - int (*is_locked)(struct spi_nor *, loff_t, uint64_t); +struct uniphier_pinmux_function { + const char *name; + const char * const *groups; + unsigned int num_groups; }; -struct mtk_chip_config { - u32 sample_sel; - u32 tick_delay; -}; +struct pinctrl_setting_mux; -struct mtk_spi_compatible { - bool need_pad_sel; - bool must_tx; - bool enhance_timing; - bool dma_ext; - bool no_need_unprepare; - bool ipm_design; +struct pin_desc { + struct pinctrl_dev *pctldev; + const char *name; + bool dynamic_name; + void *drv_data; + unsigned int mux_usecount; + const char *mux_owner; + const struct pinctrl_setting_mux *mux_setting; + const char *gpio_owner; }; -struct mtk_spi { - void *base; - u32 state; - int pad_num; - u32 *pad_sel; - struct clk *parent_clk; - struct clk *sel_clk; - struct clk *spi_clk; - struct clk *spi_hclk; - struct spi_transfer *cur_transfer; - u32 xfer_len; - u32 num_xfered; - struct scatterlist *tx_sgl; - struct scatterlist *rx_sgl; - u32 tx_sgl_len; - u32 rx_sgl_len; - const struct mtk_spi_compatible *dev_comp; - u32 spi_clk_hz; - struct completion spimem_done; - bool use_spimem; - struct device *dev; - dma_addr_t tx_dma; - dma_addr_t rx_dma; +struct pinctrl_setting_mux { + unsigned int group; + unsigned int func; }; -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; +enum i2c_alert_protocol { + I2C_PROTOCOL_SMBUS_ALERT = 0, + I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1, }; -struct mdio_device; +struct i2c_client; -struct phy_package_shared; +struct i2c_device_id; -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 i2c_board_info; -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 i2c_driver { + unsigned int class; + int (*probe)(struct i2c_client *); + void (*remove)(struct i2c_client *); + void (*shutdown)(struct i2c_client *); + void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int); + int (*command)(struct i2c_client *, unsigned int, void *); + struct device_driver driver; + const struct i2c_device_id *id_table; + int (*detect)(struct i2c_client *, struct i2c_board_info *); + const unsigned short *address_list; + struct list_head clients; + u32 flags; }; -struct phy_package_shared { - int addr; - refcount_t refcnt; - unsigned long flags; - size_t priv_size; - void *priv; +enum i2c_slave_event { + I2C_SLAVE_READ_REQUESTED = 0, + I2C_SLAVE_WRITE_REQUESTED = 1, + I2C_SLAVE_READ_PROCESSED = 2, + I2C_SLAVE_WRITE_RECEIVED = 3, + I2C_SLAVE_STOP = 4, }; -enum phy_state { - PHY_DOWN = 0, - PHY_READY = 1, - PHY_HALTED = 2, - PHY_ERROR = 3, - PHY_UP = 4, - PHY_RUNNING = 5, - PHY_NOLINK = 6, - PHY_CABLETEST = 7, +typedef int (*i2c_slave_cb_t)(struct i2c_client *, enum i2c_slave_event, u8 *); + +struct i2c_adapter; + +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; + i2c_slave_cb_t slave_cb; + void *devres_group_id; }; -struct phy_c45_device_ids { - u32 devices_in_package; - u32 mmds_present; - u32 device_ids[32]; +struct rt_mutex { + struct rt_mutex_base rtmutex; }; -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 i2c_algorithm; -struct pse_control; +struct i2c_lock_operations; -struct phy_driver; +struct i2c_bus_recovery_info; -struct phylink; +struct i2c_adapter_quirks; -struct mii_timestamper; +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 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 wol_enabled: 1; - unsigned int autoneg: 1; - unsigned int link: 1; - unsigned int autoneg_complete: 1; - unsigned int interrupts: 1; - unsigned int irq_suspended: 1; - unsigned int irq_rerun: 1; - int rate_matching; - enum phy_state state; - u32 dev_flags; - phy_interface_t interface; - 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; - struct list_head leds; - int irq; - void *priv; - struct phy_package_shared *shared; - struct sk_buff *skb; - void *ehdr; - struct nlattr *nest; - struct delayed_work state_queue; - struct mutex lock; - bool sfp_bus_attached; - struct sfp_bus *sfp_bus; - struct phylink *phylink; - struct net_device *attached_dev; - struct mii_timestamper *mii_ts; - struct pse_control *psec; - u8 mdix; - u8 mdix_ctrl; - int pma_extable; - unsigned int link_down_events; - void (*phy_link_change)(struct phy_device *, bool); - void (*adjust_link)(struct net_device *); +struct 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 *); + int (*reg_slave)(struct i2c_client *); + int (*unreg_slave)(struct i2c_client *); }; -struct mdio_driver_common { - struct device_driver driver; - int flags; +struct i2c_msg { + __u16 addr; + __u16 flags; + __u16 len; + __u8 *buf; }; -struct phy_tdr_config; +union i2c_smbus_data { + __u8 byte; + __u16 word; + __u8 block[34]; +}; -struct phy_plca_cfg; +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 phy_plca_status; +struct gpio_desc; -struct phy_driver { - struct mdio_driver_common mdiodrv; - u32 phy_id; - char *name; - u32 phy_id_mask; - const unsigned long * const features; - u32 flags; - const void *driver_data; - int (*soft_reset)(struct phy_device *); - int (*config_init)(struct phy_device *); - int (*probe)(struct phy_device *); - int (*get_features)(struct phy_device *); - int (*get_rate_matching)(struct phy_device *, phy_interface_t); - int (*suspend)(struct phy_device *); - int (*resume)(struct phy_device *); - int (*config_aneg)(struct phy_device *); - int (*aneg_done)(struct phy_device *); - int (*read_status)(struct phy_device *); - int (*config_intr)(struct phy_device *); - irqreturn_t (*handle_interrupt)(struct phy_device *); - void (*remove)(struct phy_device *); - int (*match_phy_device)(struct phy_device *); - int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *); - void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *); - void (*link_change_notify)(struct phy_device *); - int (*read_mmd)(struct phy_device *, int, u16); - int (*write_mmd)(struct phy_device *, int, u16, u16); - int (*read_page)(struct phy_device *); - int (*write_page)(struct phy_device *, int); - int (*module_info)(struct phy_device *, struct ethtool_modinfo *); - int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *); - int (*cable_test_start)(struct phy_device *); - int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *); - int (*cable_test_get_status)(struct phy_device *, bool *); - int (*get_sset_count)(struct phy_device *); - void (*get_strings)(struct phy_device *, u8 *); - void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); - int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); - int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); - int (*set_loopback)(struct phy_device *, bool); - int (*get_sqi)(struct phy_device *); - int (*get_sqi_max)(struct phy_device *); - int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); - int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *); - int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); - int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness); - int (*led_blink_set)(struct phy_device *, u8, unsigned long *, unsigned long *); +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 ethtool_wolinfo { - __u32 cmd; - __u32 supported; - __u32 wolopts; - __u8 sopass[6]; +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 ethtool_modinfo { - __u32 cmd; - __u32 type; - __u32 eeprom_len; - __u32 reserved[8]; +struct i2c_device_id { + char name[20]; + kernel_ulong_t driver_data; }; -struct ethtool_eeprom { - __u32 cmd; - __u32 magic; - __u32 offset; - __u32 len; - __u8 data[0]; +struct software_node; + +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 phy_tdr_config { - u32 first; - u32 last; - u32 step; - s8 pair; +struct property_entry; + +struct software_node { + const char *name; + const struct software_node *parent; + const struct property_entry *properties; }; -struct ethtool_stats { - __u32 cmd; - __u32 n_stats; - __u64 data[0]; +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, }; -struct ethtool_tunable { - __u32 cmd; - __u32 id; - __u32 type_id; - __u32 len; - void *data[0]; +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 phy_plca_cfg { - int version; - int enabled; - int node_id; - int node_cnt; - int to_tmr; - int burst_cnt; - int burst_tmr; +typedef void (*regmap_lock)(void *); + +typedef void (*regmap_unlock)(void *); + +enum regcache_type { + REGCACHE_NONE = 0, + REGCACHE_RBTREE = 1, + REGCACHE_FLAT = 2, + REGCACHE_MAPLE = 3, }; -struct phy_plca_status { - bool pst; +enum regmap_endian { + REGMAP_ENDIAN_DEFAULT = 0, + REGMAP_ENDIAN_BIG = 1, + REGMAP_ENDIAN_LITTLE = 2, + REGMAP_ENDIAN_NATIVE = 3, }; -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; +struct regmap_access_table; + +struct reg_default; + +struct regmap_range_cfg; + +struct regmap_config { + const char *name; + int reg_bits; + int reg_stride; + int reg_shift; + 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 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 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 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 regmap_range { + unsigned int range_min; + unsigned int range_max; }; -struct ethtool_regs { - __u32 cmd; - __u32 version; - __u32 len; - __u8 data[0]; +struct reg_default { + unsigned int reg; + unsigned int def; }; -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, +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; }; -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, +struct pca953x_reg_config { + int direction; + int output; + int input; + int invert; }; -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, +struct dmi_strmatch { + unsigned char slot: 7; + unsigned char exact_match: 1; + char substr[79]; }; -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, +struct dmi_system_id { + int (*callback)(const struct dmi_system_id *); + const char *ident; + struct dmi_strmatch matches[4]; + void *driver_data; }; -enum ethtool_link_ext_substate_cable_issue { - ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1, - ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 2, +struct acpi_gpio_params; + +struct acpi_gpio_mapping { + const char *name; + const struct acpi_gpio_params *data; + unsigned int size; + unsigned int quirks; }; -enum ethtool_link_ext_substate_module { - ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1, +struct acpi_gpio_params { + unsigned int crs_entry_index; + unsigned int line_index; + bool active_low; }; -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, +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 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; - }; -}; +typedef void *acpi_handle; -struct ethtool_link_ext_stats { - u64 link_down_events; +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 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 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; }; -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; -}; +typedef char acpi_bus_id[8]; -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 acpi_pnp_type { + u32 hardware_id: 1; + u32 bus_address: 1; + u32 platform_id: 1; + u32 backlight: 1; + u32 reserved: 28; }; -struct kernel_ethtool_ringparam { - u32 rx_buf_len; - u8 tcp_data_split; - u8 tx_push; - u8 rx_push; - u32 cqe_size; - u32 tx_push_buf_len; - u32 tx_push_buf_max_len; -}; +typedef u64 acpi_bus_address; -enum ethtool_mac_stats_src { - ETHTOOL_MAC_STATS_SRC_AGGREGATE = 0, - ETHTOOL_MAC_STATS_SRC_EMAC = 1, - ETHTOOL_MAC_STATS_SRC_PMAC = 2, -}; +typedef char acpi_device_name[40]; -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; - }; -}; +typedef char acpi_device_class[20]; -struct ethtool_pauseparam { - __u32 cmd; - __u32 autoneg; - __u32 rx_pause; - __u32 tx_pause; -}; +union acpi_object; -struct ethtool_test { - __u32 cmd; - __u32 flags; - __u32 reserved; - __u32 len; - __u64 data[0]; +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 ethtool_tcpip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be16 psrc; - __be16 pdst; - __u8 tos; +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 ethtool_ah_espip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be32 spi; - __u8 tos; +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 ethtool_usrip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be32 l4_4_bytes; - __u8 tos; - __u8 ip_ver; - __u8 proto; +struct acpi_device_power { + int state; + struct acpi_device_power_flags flags; + struct acpi_device_power_state states[5]; + u8 state_for_enumeration; }; -struct ethtool_tcpip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be16 psrc; - __be16 pdst; - __u8 tclass; +struct acpi_device_wakeup_flags { + u8 valid: 1; + u8 notifier_present: 1; }; -struct ethtool_ah_espip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be32 spi; - __u8 tclass; +struct acpi_device_wakeup_context { + void (*func)(struct acpi_device_wakeup_context *); + struct device *dev; }; -struct ethtool_usrip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be32 l4_4_bytes; - __u8 tclass; - __u8 l4_proto; +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 ethhdr { - unsigned char h_dest[6]; - unsigned char h_source[6]; - __be16 h_proto; +struct acpi_device_perf_flags { + u8 reserved; }; -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 acpi_device_perf_state; -struct ethtool_flow_ext { - __u8 padding[2]; - unsigned char h_dest[6]; - __be16 vlan_etype; - __be16 vlan_tci; - __be32 data[2]; +struct acpi_device_perf { + int state; + struct acpi_device_perf_flags flags; + int state_count; + struct acpi_device_perf_state *states; }; -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 acpi_device_dir { + struct proc_dir_entry *entry; }; -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 acpi_device_data { + const union acpi_object *pointer; + struct list_head properties; + const union acpi_object *of_compatible; + struct list_head subnodes; }; -struct ethtool_flash { - __u32 cmd; - __u32 region; - char data[128]; -}; +struct acpi_scan_handler; -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 acpi_hotplug_context; -struct ethtool_dump { - __u32 cmd; - __u32 version; - __u32 flag; - __u32 len; - __u8 data[0]; +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 *); }; -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]; -}; +typedef u32 acpi_object_type; -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]; -}; +typedef u64 acpi_io_address; -struct ethtool_link_ksettings { - struct ethtool_link_settings base; +union acpi_object { + acpi_object_type type; struct { - unsigned long supported[2]; - unsigned long advertising[2]; - unsigned long lp_advertising[2]; - } link_modes; - u32 lanes; + 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 ethtool_fec_stat { - u64 total; - u64 lanes[8]; +struct acpi_device_perf_state { + struct { + u8 valid: 1; + u8 reserved: 7; + } flags; + u8 power; + u8 performance; + int latency; }; -struct ethtool_fec_stats { - struct ethtool_fec_stat corrected_blocks; - struct ethtool_fec_stat uncorrectable_blocks; - struct ethtool_fec_stat corrected_bits; +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 ethtool_fecparam { - __u32 cmd; - __u32 active_fec; - __u32 fec; - __u32 reserved; +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 ethtool_module_eeprom { - u32 offset; - u32 length; - u8 page; - u8 bank; - u8 i2c_address; - u8 *data; +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 ethtool_eth_phy_stats { - enum ethtool_mac_stats_src src; - union { - struct { - u64 SymbolErrorDuringCarrier; - }; - struct { - u64 SymbolErrorDuringCarrier; - } stats; - }; +struct pca953x_chip { + unsigned int gpio_start; + struct mutex i2c_lock; + struct regmap *regmap; + struct mutex irq_lock; + unsigned long irq_mask[1]; + unsigned long irq_stat[1]; + unsigned long irq_trig_raise[1]; + unsigned long irq_trig_fall[1]; + atomic_t wakeup_path; + struct i2c_client *client; + struct gpio_chip gpio_chip; + unsigned long driver_data; + struct regulator *regulator; + const struct pca953x_reg_config *regs; + u8 (*recalc_addr)(struct pca953x_chip *, int, int); + bool (*check_reg)(struct pca953x_chip *, unsigned int, u32); }; -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; - }; -}; +typedef struct mutex *class_mutex_t; -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 pca953x_platform_data { + unsigned int gpio_base; + int irq_base; }; -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 uniphier_gpio_priv { + struct gpio_chip chip; + struct irq_chip irq_chip; + struct irq_domain *domain; + void *regs; + spinlock_t lock; + u32 saved_vals[0]; }; -struct ethtool_rmon_hist_range { - u16 low; - u16 high; +enum pci_dev_flags { + PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = 1, + PCI_DEV_FLAGS_NO_D3 = 2, + PCI_DEV_FLAGS_ASSIGNED = 4, + PCI_DEV_FLAGS_ACS_ENABLED_QUIRK = 8, + PCI_DEV_FLAG_PCIE_BRIDGE_ALIAS = 32, + PCI_DEV_FLAGS_NO_BUS_RESET = 64, + PCI_DEV_FLAGS_NO_PM_RESET = 128, + PCI_DEV_FLAGS_VPD_REF_F0 = 256, + PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT = 512, + PCI_DEV_FLAGS_NO_FLR_RESET = 1024, + PCI_DEV_FLAGS_NO_RELAXED_ORDERING = 2048, + PCI_DEV_FLAGS_HAS_MSI_MASKING = 4096, }; -enum ethtool_module_power_mode_policy { - ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1, - ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2, -}; +typedef int pci_power_t; -enum ethtool_module_power_mode { - ETHTOOL_MODULE_POWER_MODE_LOW = 1, - ETHTOOL_MODULE_POWER_MODE_HIGH = 2, -}; +typedef unsigned int pci_channel_state_t; -struct ethtool_module_power_mode_params { - enum ethtool_module_power_mode_policy policy; - enum ethtool_module_power_mode mode; -}; +typedef unsigned short pci_dev_flags_t; -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 pci_vpd { + struct mutex lock; + unsigned int len; + u8 cap; }; -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 pci_bus; -struct ethtool_mm_cfg { - u32 verify_time; - bool verify_enabled; - bool tx_enabled; - bool pmac_enabled; - u32 tx_min_frag_size; -}; +struct pci_slot; -struct ethtool_mm_stats { - u64 MACMergeFrameAssErrorCount; - u64 MACMergeFrameSmdErrorCount; - u64 MACMergeFrameAssOkCount; - u64 MACMergeFragCountRx; - u64 MACMergeFragCountTx; - u64 MACMergeHoldCount; -}; +struct aer_stats; -enum xgbe_mode { - XGBE_MODE_KX_1000 = 0, - XGBE_MODE_KX_2500 = 1, - XGBE_MODE_KR = 2, - XGBE_MODE_X = 3, - XGBE_MODE_SGMII_10 = 4, - XGBE_MODE_SGMII_100 = 5, - XGBE_MODE_SGMII_1000 = 6, - XGBE_MODE_SFI = 7, - XGBE_MODE_UNKNOWN = 8, -}; +struct rcec_ea; -enum xgbe_an_mode { - XGBE_AN_MODE_CL73 = 0, - XGBE_AN_MODE_CL73_REDRV = 1, - XGBE_AN_MODE_CL37 = 2, - XGBE_AN_MODE_CL37_SGMII = 3, - XGBE_AN_MODE_NONE = 4, -}; +struct pci_driver; -enum xgbe_xpcs_access { - XGBE_XPCS_ACCESS_V1 = 0, - XGBE_XPCS_ACCESS_V2 = 1, -}; +struct pcie_link_state; -enum xgbe_mdio_mode { - XGBE_MDIO_MODE_NONE = 0, - XGBE_MDIO_MODE_CL22 = 1, - XGBE_MDIO_MODE_CL45 = 2, -}; +struct pci_sriov; -enum pkt_hash_types { - PKT_HASH_TYPE_NONE = 0, - PKT_HASH_TYPE_L2 = 1, - PKT_HASH_TYPE_L3 = 2, - PKT_HASH_TYPE_L4 = 3, +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; + u16 aer_cap; + struct aer_stats *aer_stats; + 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; + u8 pm_cap; + unsigned int imm_ready: 1; + unsigned int pme_support: 5; + unsigned int pme_poll: 1; + unsigned int d1_support: 1; + unsigned int d2_support: 1; + unsigned int no_d1d2: 1; + unsigned int no_d3cold: 1; + unsigned int bridge_d3: 1; + unsigned int d3cold_allowed: 1; + unsigned int mmio_always_on: 1; + unsigned int wakeup_prepared: 1; + unsigned int skip_bus_pm: 1; + unsigned int ignore_hotplug: 1; + unsigned int hotplug_user_indicators: 1; + unsigned int clear_retrain_link: 1; + unsigned int d3hot_delay; + unsigned int d3cold_delay; + struct pcie_link_state *link_state; + u16 l1ss; + unsigned int ltr_path: 1; + unsigned int pasid_no_tlp: 1; + unsigned int eetlp_prefix_path: 1; + pci_channel_state_t error_state; + struct device dev; + int cfg_size; + unsigned int irq; + struct resource resource[17]; + struct resource driver_exclusive_resource; + bool match_driver; + unsigned int transparent: 1; + unsigned int io_window: 1; + unsigned int pref_window: 1; + unsigned int pref_64_window: 1; + unsigned int multifunction: 1; + unsigned int is_busmaster: 1; + unsigned int no_msi: 1; + unsigned int no_64bit_msi: 1; + unsigned int block_cfg_access: 1; + unsigned int broken_parity_status: 1; + unsigned int irq_reroute_variant: 2; + unsigned int msi_enabled: 1; + unsigned int msix_enabled: 1; + unsigned int ari_enabled: 1; + unsigned int ats_enabled: 1; + unsigned int pasid_enabled: 1; + unsigned int pri_enabled: 1; + unsigned int is_managed: 1; + unsigned int is_msi_managed: 1; + unsigned int needs_freset: 1; + unsigned int state_saved: 1; + unsigned int is_physfn: 1; + unsigned int is_virtfn: 1; + unsigned int is_hotplug_bridge: 1; + unsigned int shpc_managed: 1; + unsigned int is_thunderbolt: 1; + unsigned int untrusted: 1; + unsigned int external_facing: 1; + unsigned int broken_intx_masking: 1; + unsigned int io_window_1k: 1; + unsigned int irq_managed: 1; + unsigned int non_compliant_bars: 1; + unsigned int is_probed: 1; + unsigned int link_active_reporting: 1; + unsigned int no_vf_scan: 1; + unsigned int no_command_memory: 1; + unsigned int rom_bar_overlap: 1; + unsigned int rom_attr_enabled: 1; + pci_dev_flags_t dev_flags; + atomic_t enable_cnt; + spinlock_t pcie_cap_lock; + u32 saved_config_space[16]; + struct hlist_head saved_cap_space; + struct bin_attribute *res_attr[17]; + struct bin_attribute *res_attr_wc[17]; + 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 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]; }; -enum xgbe_int { - XGMAC_INT_DMA_CH_SR_TI = 0, - XGMAC_INT_DMA_CH_SR_TPS = 1, - XGMAC_INT_DMA_CH_SR_TBU = 2, - XGMAC_INT_DMA_CH_SR_RI = 3, - XGMAC_INT_DMA_CH_SR_RBU = 4, - XGMAC_INT_DMA_CH_SR_RPS = 5, - XGMAC_INT_DMA_CH_SR_TI_RI = 6, - XGMAC_INT_DMA_CH_SR_FBE = 7, - XGMAC_INT_DMA_ALL = 8, -}; +typedef unsigned short pci_bus_flags_t; -enum xgbe_ecc_sec { - XGBE_ECC_SEC_TX = 0, - XGBE_ECC_SEC_RX = 1, - XGBE_ECC_SEC_DESC = 2, +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; + int domain_nr; + 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 ptp_extts_request { - unsigned int index; - unsigned int flags; - unsigned int rsv[2]; +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); }; -struct ptp_clock_time { - __s64 sec; - __u32 nsec; - __u32 reserved; +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 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 rcec_ea { + u8 nextbusn; + u8 lastbusn; + u32 bitmap; }; -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; - }; +struct pci_dynids { + spinlock_t lock; + struct list_head list; }; -enum ptp_pin_function { - PTP_PF_NONE = 0, - PTP_PF_EXTTS = 1, - PTP_PF_PEROUT = 2, - PTP_PF_PHYSYNC = 3, +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; }; -enum xgbe_an { - XGBE_AN_READY = 0, - XGBE_AN_PAGE_RECEIVED = 1, - XGBE_AN_INCOMPAT_LINK = 2, - XGBE_AN_COMPLETE = 3, - XGBE_AN_NO_LINK = 4, - XGBE_AN_ERROR = 5, +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; }; -enum xgbe_rx { - XGBE_RX_BPA = 0, - XGBE_RX_XNP = 1, - XGBE_RX_COMPLETE = 2, - XGBE_RX_ERROR = 3, +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 *); }; -enum xgbe_i2c_cmd { - XGBE_I2C_CMD_READ = 0, - XGBE_I2C_CMD_WRITE = 1, +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; }; 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, + pci_channel_io_normal = 1, + pci_channel_io_frozen = 2, + pci_channel_io_perm_failure = 3, }; -struct xgbe_ring_desc; +enum { + PCI_STD_RESOURCES = 0, + PCI_STD_RESOURCE_END = 5, + PCI_ROM_RESOURCE = 6, + PCI_IOV_RESOURCES = 7, + PCI_IOV_RESOURCE_END = 12, + PCI_BRIDGE_RESOURCES = 13, + PCI_BRIDGE_RESOURCE_END = 16, + PCI_NUM_RESOURCES = 17, + DEVICE_COUNT_RESOURCE = 17, +}; -struct xgbe_prv_data; +struct acpiphp_context; -struct xgbe_channel; - -struct xgbe_ring_data; +struct acpiphp_bridge { + struct list_head list; + struct list_head slots; + struct kref ref; + struct acpiphp_context *context; + int nr_slots; + struct pci_bus *pci_bus; + struct pci_dev *pci_dev; + bool is_going_away; +}; -struct xgbe_ring; +struct acpiphp_slot; -struct xgbe_hw_if { - int (*tx_complete)(struct xgbe_ring_desc *); - int (*set_mac_address)(struct xgbe_prv_data *, const u8 *); - int (*config_rx_mode)(struct xgbe_prv_data *); - int (*enable_rx_csum)(struct xgbe_prv_data *); - int (*disable_rx_csum)(struct xgbe_prv_data *); - int (*enable_rx_vlan_stripping)(struct xgbe_prv_data *); - int (*disable_rx_vlan_stripping)(struct xgbe_prv_data *); - int (*enable_rx_vlan_filtering)(struct xgbe_prv_data *); - int (*disable_rx_vlan_filtering)(struct xgbe_prv_data *); - int (*update_vlan_hash_table)(struct xgbe_prv_data *); - int (*read_mmd_regs)(struct xgbe_prv_data *, int, int); - void (*write_mmd_regs)(struct xgbe_prv_data *, int, int, int); - int (*set_speed)(struct xgbe_prv_data *, int); - int (*set_ext_mii_mode)(struct xgbe_prv_data *, unsigned int, enum xgbe_mdio_mode); - int (*read_ext_mii_regs_c22)(struct xgbe_prv_data *, int, int); - int (*write_ext_mii_regs_c22)(struct xgbe_prv_data *, int, int, u16); - int (*read_ext_mii_regs_c45)(struct xgbe_prv_data *, int, int, int); - int (*write_ext_mii_regs_c45)(struct xgbe_prv_data *, int, int, int, u16); - int (*set_gpio)(struct xgbe_prv_data *, unsigned int); - int (*clr_gpio)(struct xgbe_prv_data *, unsigned int); - void (*enable_tx)(struct xgbe_prv_data *); - void (*disable_tx)(struct xgbe_prv_data *); - void (*enable_rx)(struct xgbe_prv_data *); - void (*disable_rx)(struct xgbe_prv_data *); - void (*powerup_tx)(struct xgbe_prv_data *); - void (*powerdown_tx)(struct xgbe_prv_data *); - void (*powerup_rx)(struct xgbe_prv_data *); - void (*powerdown_rx)(struct xgbe_prv_data *); - int (*init)(struct xgbe_prv_data *); - int (*exit)(struct xgbe_prv_data *); - int (*enable_int)(struct xgbe_channel *, enum xgbe_int); - int (*disable_int)(struct xgbe_channel *, enum xgbe_int); - void (*dev_xmit)(struct xgbe_channel *); - int (*dev_read)(struct xgbe_channel *); - void (*tx_desc_init)(struct xgbe_channel *); - void (*rx_desc_init)(struct xgbe_channel *); - void (*tx_desc_reset)(struct xgbe_ring_data *); - void (*rx_desc_reset)(struct xgbe_prv_data *, struct xgbe_ring_data *, unsigned int); - int (*is_last_desc)(struct xgbe_ring_desc *); - int (*is_context_desc)(struct xgbe_ring_desc *); - void (*tx_start_xmit)(struct xgbe_channel *, struct xgbe_ring *); - int (*config_tx_flow_control)(struct xgbe_prv_data *); - int (*config_rx_flow_control)(struct xgbe_prv_data *); - int (*config_rx_coalesce)(struct xgbe_prv_data *); - int (*config_tx_coalesce)(struct xgbe_prv_data *); - unsigned int (*usec_to_riwt)(struct xgbe_prv_data *, unsigned int); - unsigned int (*riwt_to_usec)(struct xgbe_prv_data *, unsigned int); - int (*config_rx_threshold)(struct xgbe_prv_data *, unsigned int); - int (*config_tx_threshold)(struct xgbe_prv_data *, unsigned int); - int (*config_rsf_mode)(struct xgbe_prv_data *, unsigned int); - int (*config_tsf_mode)(struct xgbe_prv_data *, unsigned int); - int (*config_osp_mode)(struct xgbe_prv_data *); - void (*rx_mmc_int)(struct xgbe_prv_data *); - void (*tx_mmc_int)(struct xgbe_prv_data *); - void (*read_mmc_stats)(struct xgbe_prv_data *); - int (*config_tstamp)(struct xgbe_prv_data *, unsigned int); - void (*update_tstamp_addend)(struct xgbe_prv_data *, unsigned int); - void (*set_tstamp_time)(struct xgbe_prv_data *, unsigned int, unsigned int); - u64 (*get_tstamp_time)(struct xgbe_prv_data *); - u64 (*get_tx_tstamp)(struct xgbe_prv_data *); - void (*config_tc)(struct xgbe_prv_data *); - void (*config_dcb_tc)(struct xgbe_prv_data *); - void (*config_dcb_pfc)(struct xgbe_prv_data *); - int (*enable_rss)(struct xgbe_prv_data *); - int (*disable_rss)(struct xgbe_prv_data *); - int (*set_rss_hash_key)(struct xgbe_prv_data *, const u8 *); - int (*set_rss_lookup_table)(struct xgbe_prv_data *, const u32 *); - void (*disable_ecc_ded)(struct xgbe_prv_data *); - void (*disable_ecc_sec)(struct xgbe_prv_data *, enum xgbe_ecc_sec); - void (*enable_vxlan)(struct xgbe_prv_data *); - void (*disable_vxlan)(struct xgbe_prv_data *); - void (*set_vxlan_id)(struct xgbe_prv_data *); +struct acpiphp_func { + struct acpiphp_bridge *parent; + struct acpiphp_slot *slot; + struct list_head sibling; + u8 function; + u32 flags; }; -struct xgbe_phy_impl_if { - int (*init)(struct xgbe_prv_data *); - void (*exit)(struct xgbe_prv_data *); - int (*reset)(struct xgbe_prv_data *); - int (*start)(struct xgbe_prv_data *); - void (*stop)(struct xgbe_prv_data *); - int (*link_status)(struct xgbe_prv_data *, int *); - bool (*valid_speed)(struct xgbe_prv_data *, int); - bool (*use_mode)(struct xgbe_prv_data *, enum xgbe_mode); - void (*set_mode)(struct xgbe_prv_data *, enum xgbe_mode); - enum xgbe_mode (*get_mode)(struct xgbe_prv_data *, int); - enum xgbe_mode (*switch_mode)(struct xgbe_prv_data *); - enum xgbe_mode (*cur_mode)(struct xgbe_prv_data *); - enum xgbe_an_mode (*an_mode)(struct xgbe_prv_data *); - int (*an_config)(struct xgbe_prv_data *); - void (*an_advertising)(struct xgbe_prv_data *, struct ethtool_link_ksettings *); - enum xgbe_mode (*an_outcome)(struct xgbe_prv_data *); - void (*an_pre)(struct xgbe_prv_data *); - void (*an_post)(struct xgbe_prv_data *); - void (*kr_training_pre)(struct xgbe_prv_data *); - void (*kr_training_post)(struct xgbe_prv_data *); - int (*module_info)(struct xgbe_prv_data *, struct ethtool_modinfo *); - int (*module_eeprom)(struct xgbe_prv_data *, struct ethtool_eeprom *, u8 *); +struct acpiphp_context { + struct acpi_hotplug_context hp; + struct acpiphp_func func; + struct acpiphp_bridge *bridge; + unsigned int refcount; }; -struct xgbe_phy_if { - int (*phy_init)(struct xgbe_prv_data *); - void (*phy_exit)(struct xgbe_prv_data *); - int (*phy_reset)(struct xgbe_prv_data *); - int (*phy_start)(struct xgbe_prv_data *); - void (*phy_stop)(struct xgbe_prv_data *); - void (*phy_status)(struct xgbe_prv_data *); - int (*phy_config_aneg)(struct xgbe_prv_data *); - bool (*phy_valid_speed)(struct xgbe_prv_data *, int); - irqreturn_t (*an_isr)(struct xgbe_prv_data *); - int (*module_info)(struct xgbe_prv_data *, struct ethtool_modinfo *); - int (*module_eeprom)(struct xgbe_prv_data *, struct ethtool_eeprom *, u8 *); - struct xgbe_phy_impl_if phy_impl; -}; +struct slot; -struct xgbe_desc_if { - int (*alloc_ring_resources)(struct xgbe_prv_data *); - void (*free_ring_resources)(struct xgbe_prv_data *); - int (*map_tx_skb)(struct xgbe_channel *, struct sk_buff *); - int (*map_rx_buffer)(struct xgbe_prv_data *, struct xgbe_ring *, struct xgbe_ring_data *); - void (*unmap_rdata)(struct xgbe_prv_data *, struct xgbe_ring_data *); - void (*wrapper_tx_desc_init)(struct xgbe_prv_data *); - void (*wrapper_rx_desc_init)(struct xgbe_prv_data *); +struct acpiphp_slot { + struct list_head node; + struct pci_bus *bus; + struct list_head funcs; + struct slot *slot; + u8 device; + u32 flags; }; -struct xgbe_i2c_op; +struct hotplug_slot_ops; -struct xgbe_i2c_if { - int (*i2c_init)(struct xgbe_prv_data *); - int (*i2c_start)(struct xgbe_prv_data *); - void (*i2c_stop)(struct xgbe_prv_data *); - int (*i2c_xfer)(struct xgbe_prv_data *, struct xgbe_i2c_op *); - irqreturn_t (*i2c_isr)(struct xgbe_prv_data *); +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 xgbe_mmc_stats { - u64 txoctetcount_gb; - u64 txframecount_gb; - u64 txbroadcastframes_g; - u64 txmulticastframes_g; - u64 tx64octets_gb; - u64 tx65to127octets_gb; - u64 tx128to255octets_gb; - u64 tx256to511octets_gb; - u64 tx512to1023octets_gb; - u64 tx1024tomaxoctets_gb; - u64 txunicastframes_gb; - u64 txmulticastframes_gb; - u64 txbroadcastframes_gb; - u64 txunderflowerror; - u64 txoctetcount_g; - u64 txframecount_g; - u64 txpauseframes; - u64 txvlanframes_g; - u64 rxframecount_gb; - u64 rxoctetcount_gb; - u64 rxoctetcount_g; - u64 rxbroadcastframes_g; - u64 rxmulticastframes_g; - u64 rxcrcerror; - u64 rxrunterror; - u64 rxjabbererror; - u64 rxundersize_g; - u64 rxoversize_g; - u64 rx64octets_gb; - u64 rx65to127octets_gb; - u64 rx128to255octets_gb; - u64 rx256to511octets_gb; - u64 rx512to1023octets_gb; - u64 rx1024tomaxoctets_gb; - u64 rxunicastframes_g; - u64 rxlengtherror; - u64 rxoutofrangetype; - u64 rxpauseframes; - u64 rxfifooverflow; - u64 rxvlanframes_gb; - u64 rxwatchdogerror; +struct hotplug_slot_ops { + int (*enable_slot)(struct hotplug_slot *); + int (*disable_slot)(struct hotplug_slot *); + int (*set_attention_status)(struct hotplug_slot *, u8); + int (*hardware_test)(struct hotplug_slot *, u32); + int (*get_power_status)(struct hotplug_slot *, u8 *); + int (*get_attention_status)(struct hotplug_slot *, u8 *); + int (*get_latch_status)(struct hotplug_slot *, u8 *); + int (*get_adapter_status)(struct hotplug_slot *, u8 *); + int (*reset_slot)(struct hotplug_slot *, bool); }; -struct xgbe_ext_stats { - u64 tx_tso_packets; - u64 rx_split_header_packets; - u64 rx_buffer_unavailable; - u64 txq_packets[16]; - u64 txq_bytes[16]; - u64 rxq_packets[16]; - u64 rxq_bytes[16]; - u64 tx_vxlan_packets; - u64 rx_vxlan_packets; - u64 rx_csum_errors; - u64 rx_vxlan_csum_errors; +struct slot { + struct hotplug_slot hotplug_slot; + struct acpiphp_slot *acpi_slot; + unsigned int sun; }; -struct ptp_pin_desc; +struct acpiphp_root_context { + struct acpi_hotplug_context hp; + struct acpiphp_bridge *root_bridge; +}; -struct system_device_crosststamp; +typedef u32 acpi_status; -struct ptp_clock_info { - struct module *owner; - char name[32]; - s32 max_adj; - int n_alarm; - int n_ext_ts; - int n_per_out; - int n_pins; - int pps; - struct ptp_pin_desc *pin_config; - int (*adjfine)(struct ptp_clock_info *, long); - int (*adjphase)(struct ptp_clock_info *, s32); - s32 (*getmaxphase)(struct ptp_clock_info *); - int (*adjtime)(struct ptp_clock_info *, s64); - int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); - int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); - int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); - int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); - int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *); - int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); - int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *); - int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); - int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); - long (*do_aux_work)(struct ptp_clock_info *); -}; +typedef u8 acpi_adr_space_type; -struct hwtstamp_config { - int flags; - int tx_type; - int rx_filter; +typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); + +typedef char *acpi_string; + +struct acpi_object_list { + u32 count; + union acpi_object *pointer; }; -struct cyclecounter { - u64 (*read)(const struct cyclecounter *); - u64 mask; - u32 mult; - u32 shift; +enum dw_pcie_ltssm { + DW_PCIE_LTSSM_DETECT_QUIET = 0, + DW_PCIE_LTSSM_DETECT_ACT = 1, + DW_PCIE_LTSSM_L0 = 17, + DW_PCIE_LTSSM_L2_IDLE = 21, + DW_PCIE_LTSSM_UNKNOWN = 4294967295, }; -struct timecounter { - const struct cyclecounter *cc; - u64 cycle_last; - u64 nsec; - u64 mask; - u64 frac; +struct dw_pcie; + +struct dw_pcie_ops { + u64 (*cpu_addr_fixup)(struct dw_pcie *, u64); + u32 (*read_dbi)(struct dw_pcie *, void *, u32, size_t); + void (*write_dbi)(struct dw_pcie *, void *, u32, size_t, u32); + void (*write_dbi2)(struct dw_pcie *, void *, u32, size_t, u32); + int (*link_up)(struct dw_pcie *); + enum dw_pcie_ltssm (*get_ltssm)(struct dw_pcie *); + int (*start_link)(struct dw_pcie *); + void (*stop_link)(struct dw_pcie *); }; -struct xgbe_hw_features { - unsigned int version; - unsigned int gmii; - unsigned int vlhash; - unsigned int sma; - unsigned int rwk; - unsigned int mgk; - unsigned int mmc; - unsigned int aoe; - unsigned int ts; - unsigned int eee; - unsigned int tx_coe; - unsigned int rx_coe; - unsigned int addn_mac; - unsigned int ts_src; - unsigned int sa_vlan_ins; - unsigned int vxn; - unsigned int rx_fifo_size; - unsigned int tx_fifo_size; - unsigned int adv_ts_hi; - unsigned int dma_width; - unsigned int dcb; - unsigned int sph; - unsigned int tso; - unsigned int dma_debug; - unsigned int rss; - unsigned int tc_cnt; - unsigned int hash_table_size; - unsigned int l3l4_filter_num; - unsigned int rx_q_cnt; - unsigned int tx_q_cnt; - unsigned int rx_ch_cnt; - unsigned int tx_ch_cnt; - unsigned int pps_out_num; - unsigned int aux_snap_num; +struct dw_pcie_host_ops; + +struct pci_host_bridge; + +struct dw_pcie_rp { + bool has_msi_ctrl: 1; + bool cfg0_io_shared: 1; + u64 cfg0_base; + void *va_cfg0_base; + u32 cfg0_size; + resource_size_t io_base; + phys_addr_t io_bus_addr; + u32 io_size; + int irq; + const struct dw_pcie_host_ops *ops; + int msi_irq[8]; + struct irq_domain *irq_domain; + struct irq_domain *msi_domain; + dma_addr_t msi_data; + struct irq_chip *msi_irq_chip; + u32 num_vectors; + u32 irq_mask[8]; + struct pci_host_bridge *bridge; + raw_spinlock_t lock; + unsigned long msi_irq_in_use[4]; }; -struct xgbe_phy { - struct ethtool_link_ksettings lks; - int address; - int autoneg; - int speed; - int duplex; - int link; - int pause_autoneg; - int tx_pause; - int rx_pause; +struct pci_epc; + +struct dw_pcie_ep_ops; + +struct pci_epf_bar; + +struct dw_pcie_ep { + struct pci_epc *epc; + struct list_head func_list; + const struct dw_pcie_ep_ops *ops; + phys_addr_t phys_base; + size_t addr_size; + size_t page_size; + u8 bar_to_atu[6]; + phys_addr_t *outbound_addr; + unsigned long *ib_window_map; + unsigned long *ob_window_map; + void *msi_mem; + phys_addr_t msi_mem_phys; + struct pci_epf_bar *epf_bar[6]; }; -struct xgbe_i2c_op_state { - struct xgbe_i2c_op *op; - unsigned int tx_len; - unsigned char *tx_buf; - unsigned int rx_len; - unsigned char *rx_buf; - unsigned int tx_abort_source; - int ret; +struct dw_edma_region { + u64 paddr; + union { + void *mem; + void *io; + } vaddr; + size_t sz; }; -struct xgbe_i2c { - unsigned int started; - unsigned int max_speed_mode; - unsigned int rx_fifo_size; - unsigned int tx_fifo_size; - struct xgbe_i2c_op_state op_state; +enum dw_edma_map_format { + EDMA_MF_EDMA_LEGACY = 0, + EDMA_MF_EDMA_UNROLL = 1, + EDMA_MF_HDMA_COMPAT = 5, + EDMA_MF_HDMA_NATIVE = 7, }; -struct xgbe_version_data; +struct dw_edma; -struct ptp_clock; +struct dw_edma_plat_ops; -struct ieee_ets; +struct dw_edma_chip { + struct device *dev; + int nr_irqs; + const struct dw_edma_plat_ops *ops; + u32 flags; + void *reg_base; + u16 ll_wr_cnt; + u16 ll_rd_cnt; + struct dw_edma_region ll_region_wr[8]; + struct dw_edma_region ll_region_rd[8]; + struct dw_edma_region dt_region_wr[8]; + struct dw_edma_region dt_region_rd[8]; + enum dw_edma_map_format mf; + struct dw_edma *dw; +}; -struct ieee_pfc; +struct clk_bulk_data { + const char *id; + struct clk *clk; +}; -struct xgbe_prv_data { - struct net_device *netdev; - struct pci_dev *pcidev; - struct platform_device *platdev; - struct acpi_device *adev; - struct device *dev; - struct platform_device *phy_platdev; - struct device *phy_dev; - struct xgbe_version_data *vdata; - unsigned int use_acpi; - void *xgmac_regs; - void *xpcs_regs; - void *rxtx_regs; - void *sir0_regs; - void *sir1_regs; - void *xprop_regs; - void *xi2c_regs; - unsigned int pp0; - unsigned int pp1; - unsigned int pp2; - unsigned int pp3; - unsigned int pp4; - spinlock_t lock; - spinlock_t xpcs_lock; - unsigned int xpcs_window_def_reg; - unsigned int xpcs_window_sel_reg; - unsigned int xpcs_window; - unsigned int xpcs_window_size; - unsigned int xpcs_window_mask; - struct mutex rss_mutex; - unsigned long dev_state; - unsigned long tx_sec_period; - unsigned long tx_ded_period; - unsigned long rx_sec_period; - unsigned long rx_ded_period; - unsigned long desc_sec_period; - unsigned long desc_ded_period; - unsigned int tx_sec_count; - unsigned int tx_ded_count; - unsigned int rx_sec_count; - unsigned int rx_ded_count; - unsigned int desc_ded_count; - unsigned int desc_sec_count; - int dev_irq; - int ecc_irq; - int i2c_irq; - int channel_irq[16]; - unsigned int per_channel_irq; - unsigned int irq_count; - unsigned int channel_irq_count; - unsigned int channel_irq_mode; - char ecc_name[48]; - struct xgbe_hw_if hw_if; - struct xgbe_phy_if phy_if; - struct xgbe_desc_if desc_if; - struct xgbe_i2c_if i2c_if; - unsigned int coherent; - unsigned int arcr; - unsigned int awcr; - unsigned int awarcr; - struct workqueue_struct *dev_workqueue; - struct work_struct service_work; - struct timer_list service_timer; - struct xgbe_channel *channel[16]; - unsigned int tx_max_channel_count; - unsigned int rx_max_channel_count; - unsigned int channel_count; - unsigned int tx_ring_count; - unsigned int tx_desc_count; - unsigned int rx_ring_count; - unsigned int rx_desc_count; - unsigned int new_tx_ring_count; - unsigned int new_rx_ring_count; - unsigned int tx_max_q_count; - unsigned int rx_max_q_count; - unsigned int tx_q_count; - unsigned int rx_q_count; - unsigned int blen; - unsigned int pbl; - unsigned int aal; - unsigned int rd_osr_limit; - unsigned int wr_osr_limit; - unsigned int tx_sf_mode; - unsigned int tx_threshold; - unsigned int tx_osp_mode; - unsigned int tx_max_fifo_size; - unsigned int rx_sf_mode; - unsigned int rx_threshold; - unsigned int rx_max_fifo_size; - unsigned int tx_usecs; - unsigned int tx_frames; - unsigned int rx_riwt; - unsigned int rx_usecs; - unsigned int rx_frames; - unsigned int rx_buf_size; - unsigned int pause_autoneg; - unsigned int tx_pause; - unsigned int rx_pause; - unsigned int rx_rfa[16]; - unsigned int rx_rfd[16]; - u8 rss_key[40]; - u32 rss_table[256]; - u32 rss_options; - u16 vxlan_port; - unsigned char mac_addr[6]; - netdev_features_t netdev_features; - struct napi_struct napi; - struct xgbe_mmc_stats mmc_stats; - struct xgbe_ext_stats ext_stats; - unsigned long active_vlans[64]; - struct clk *sysclk; - unsigned long sysclk_rate; - struct clk *ptpclk; - unsigned long ptpclk_rate; - spinlock_t tstamp_lock; - struct ptp_clock_info ptp_clock_info; - struct ptp_clock *ptp_clock; - struct hwtstamp_config tstamp_config; - struct cyclecounter tstamp_cc; - struct timecounter tstamp_tc; - unsigned int tstamp_addend; - struct work_struct tx_tstamp_work; - struct sk_buff *tx_tstamp_skb; - u64 tx_tstamp; - struct ieee_ets *ets; - struct ieee_pfc *pfc; - unsigned int q2tc_map[16]; - unsigned int prio2q_map[8]; - unsigned int pfcq[16]; - unsigned int pfc_rfa; - u8 num_tcs; - struct xgbe_hw_features hw_feat; - struct work_struct restart_work; - struct work_struct stopdev_work; - unsigned int power_down; - u32 msg_enable; - phy_interface_t phy_mode; - int phy_link; - int phy_speed; - unsigned int phy_started; - void *phy_data; - struct xgbe_phy phy; - int mdio_mmd; - unsigned long link_check; - struct completion mdio_complete; - unsigned int kr_redrv; - char an_name[48]; - struct workqueue_struct *an_workqueue; - int an_irq; - struct work_struct an_irq_work; - unsigned int an_int; - unsigned int an_status; - struct mutex an_mutex; - enum xgbe_an an_result; - enum xgbe_an an_state; - enum xgbe_rx kr_state; - enum xgbe_rx kx_state; - struct work_struct an_work; - unsigned int an_again; - unsigned int an_supported; - unsigned int parallel_detect; - unsigned int fec_ability; - unsigned long an_start; - unsigned long kr_start_time; - enum xgbe_an_mode an_mode; - struct xgbe_i2c i2c; - struct mutex i2c_mutex; - struct completion i2c_complete; - char i2c_name[48]; - unsigned int lpm_ctrl; - unsigned int isr_as_tasklet; - struct tasklet_struct tasklet_dev; - struct tasklet_struct tasklet_ecc; - struct tasklet_struct tasklet_i2c; - struct tasklet_struct tasklet_an; - struct dentry *xgbe_debugfs; - unsigned int debugfs_xgmac_reg; - unsigned int debugfs_xpcs_mmd; - unsigned int debugfs_xpcs_reg; - unsigned int debugfs_xprop_reg; - unsigned int debugfs_xi2c_reg; - bool debugfs_an_cdr_workaround; - bool debugfs_an_cdr_track_early; - bool en_rx_adap; - int rx_adapt_retries; - bool rx_adapt_done; - bool mode_set; +struct reset_control_bulk_data { + const char *id; + struct reset_control *rstc; }; -struct xgbe_version_data { - void (*init_function_ptrs_phy_impl)(struct xgbe_phy_if *); - enum xgbe_xpcs_access xpcs_access; - unsigned int mmc_64bit; - unsigned int tx_max_fifo_size; - unsigned int rx_max_fifo_size; - unsigned int tx_tstamp_workaround; - unsigned int ecc_support; - unsigned int i2c_support; - unsigned int irq_reissue_support; - unsigned int tx_desc_prefetch; - unsigned int rx_desc_prefetch; - unsigned int an_cdr_workaround; - unsigned int enable_rrc; +struct dw_pcie { + struct device *dev; + void *dbi_base; + void *dbi_base2; + void *atu_base; + size_t atu_size; + u32 num_ib_windows; + u32 num_ob_windows; + u32 region_align; + u64 region_limit; + struct dw_pcie_rp pp; + struct dw_pcie_ep ep; + const struct dw_pcie_ops *ops; + u32 version; + u32 type; + unsigned long caps; + int num_lanes; + int link_gen; + u8 n_fts[2]; + struct dw_edma_chip edma; + struct clk_bulk_data app_clks[3]; + struct clk_bulk_data core_clks[4]; + struct reset_control_bulk_data app_rsts[3]; + struct reset_control_bulk_data core_rsts[7]; + struct gpio_desc *pe_rst; + bool suspended; }; -struct xgbe_ring_desc { - __le32 desc0; - __le32 desc1; - __le32 desc2; - __le32 desc3; +struct dw_pcie_host_ops { + int (*host_init)(struct dw_pcie_rp *); + void (*host_deinit)(struct dw_pcie_rp *); + void (*host_post_init)(struct dw_pcie_rp *); + int (*msi_host_init)(struct dw_pcie_rp *); + void (*pme_turn_off)(struct dw_pcie_rp *); }; -struct xgbe_channel { - char name[16]; - struct xgbe_prv_data *pdata; - unsigned int queue_index; - void *dma_regs; - int dma_irq; - char dma_irq_name[48]; - struct napi_struct napi; - unsigned int curr_ier; - unsigned int saved_ier; - unsigned int tx_timer_active; - struct timer_list tx_timer; - struct xgbe_ring *tx_ring; - struct xgbe_ring *rx_ring; - int node; - cpumask_t affinity_mask; - long: 64; - long: 64; - long: 64; +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; + unsigned long private[0]; }; -struct xgbe_packet_data { - struct sk_buff *skb; - unsigned int attributes; - unsigned int errors; - unsigned int rdesc_count; - unsigned int length; - unsigned int header_len; - unsigned int tcp_header_len; - unsigned int tcp_payload_len; - unsigned short mss; - unsigned short vlan_ctag; - u64 rx_tstamp; - u32 rss_hash; - enum pkt_hash_types rss_hash_type; - unsigned int tx_packets; - unsigned int tx_bytes; -}; +struct pci_epc_ops; -struct xgbe_page_alloc { - struct page *pages; - unsigned int pages_len; - unsigned int pages_offset; - dma_addr_t pages_dma; -}; +struct pci_epc_mem; -struct xgbe_ring { - spinlock_t lock; - struct xgbe_packet_data packet_data; - struct xgbe_ring_desc *rdesc; - dma_addr_t rdesc_dma; - unsigned int rdesc_count; - struct xgbe_ring_data *rdata; - struct xgbe_page_alloc rx_hdr_pa; - struct xgbe_page_alloc rx_buf_pa; - int node; - unsigned int cur; - unsigned int dirty; - unsigned int coalesce_count; - union { - struct { - unsigned int queue_stopped; - unsigned int xmit_more; - unsigned short cur_mss; - unsigned short cur_vlan_ctag; - } tx; - }; - long: 64; -}; +struct config_group; -struct xgbe_tx_ring_data { - unsigned int packets; - unsigned int bytes; +struct pci_epc { + struct device dev; + struct list_head pci_epf; + struct mutex list_lock; + const struct pci_epc_ops *ops; + struct pci_epc_mem **windows; + struct pci_epc_mem *mem; + unsigned int num_windows; + u8 max_functions; + u8 *max_vfs; + struct config_group *group; + struct mutex lock; + unsigned long function_num_map; }; -struct xgbe_buffer_data { - struct xgbe_page_alloc pa; - struct xgbe_page_alloc pa_unmap; - dma_addr_t dma_base; - unsigned long dma_off; - unsigned int dma_len; +enum pci_barno { + NO_BAR = -1, + BAR_0 = 0, + BAR_1 = 1, + BAR_2 = 2, + BAR_3 = 3, + BAR_4 = 4, + BAR_5 = 5, }; -struct xgbe_rx_ring_data { - struct xgbe_buffer_data hdr; - struct xgbe_buffer_data buf; - unsigned short hdr_len; - unsigned short len; +enum pci_epc_irq_type { + PCI_EPC_IRQ_UNKNOWN = 0, + PCI_EPC_IRQ_LEGACY = 1, + PCI_EPC_IRQ_MSI = 2, + PCI_EPC_IRQ_MSIX = 3, }; -struct xgbe_ring_data { - struct xgbe_ring_desc *rdesc; - dma_addr_t rdesc_dma; - struct sk_buff *skb; - dma_addr_t skb_dma; - unsigned int skb_dma_len; - struct xgbe_tx_ring_data tx; - struct xgbe_rx_ring_data rx; - unsigned int mapped_as_page; - unsigned int state_saved; - struct { - struct sk_buff *skb; - unsigned int len; - unsigned int error; - } state; +struct pci_epf_header; + +struct pci_epc_features; + +struct pci_epc_ops { + int (*write_header)(struct pci_epc *, u8, u8, struct pci_epf_header *); + int (*set_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); + void (*clear_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); + int (*map_addr)(struct pci_epc *, u8, u8, phys_addr_t, u64, size_t); + void (*unmap_addr)(struct pci_epc *, u8, u8, phys_addr_t); + int (*set_msi)(struct pci_epc *, u8, u8, u8); + int (*get_msi)(struct pci_epc *, u8, u8); + int (*set_msix)(struct pci_epc *, u8, u8, u16, enum pci_barno, u32); + int (*get_msix)(struct pci_epc *, u8, u8); + int (*raise_irq)(struct pci_epc *, u8, u8, enum pci_epc_irq_type, u16); + int (*map_msi_irq)(struct pci_epc *, u8, u8, phys_addr_t, u8, u32, u32 *, u32 *); + int (*start)(struct pci_epc *); + void (*stop)(struct pci_epc *); + const struct pci_epc_features * (*get_features)(struct pci_epc *, u8, u8); + struct module *owner; }; -struct xgbe_i2c_op { - enum xgbe_i2c_cmd cmd; - unsigned int target; - void *buf; - unsigned int len; +enum pci_interrupt_pin { + PCI_INTERRUPT_UNKNOWN = 0, + PCI_INTERRUPT_INTA = 1, + PCI_INTERRUPT_INTB = 2, + PCI_INTERRUPT_INTC = 3, + PCI_INTERRUPT_INTD = 4, }; -struct ptp_pin_desc { - char name[64]; - unsigned int index; - unsigned int func; - unsigned int chan; - unsigned int rsv[5]; +struct pci_epf_header { + u16 vendorid; + u16 deviceid; + u8 revid; + u8 progif_code; + u8 subclass_code; + u8 baseclass_code; + u8 cache_line_size; + u16 subsys_vendor_id; + u16 subsys_id; + enum pci_interrupt_pin interrupt_pin; }; -struct ptp_system_timestamp { - struct timespec64 pre_ts; - struct timespec64 post_ts; +struct pci_epf_bar { + dma_addr_t phys_addr; + void *addr; + size_t size; + enum pci_barno barno; + int flags; }; -struct system_device_crosststamp { - ktime_t device; - ktime_t sys_realtime; - ktime_t sys_monoraw; +struct pci_epc_features { + unsigned int linkup_notifier: 1; + unsigned int core_init_notifier: 1; + unsigned int msi_capable: 1; + unsigned int msix_capable: 1; + u8 reserved_bar; + u8 bar_fixed_64bit; + u64 bar_fixed_size[6]; + size_t align; }; -struct ieee_ets { - __u8 willing; - __u8 ets_cap; - __u8 cbs; - __u8 tc_tx_bw[8]; - __u8 tc_rx_bw[8]; - __u8 tc_tsa[8]; - __u8 prio_tc[8]; - __u8 tc_reco_bw[8]; - __u8 tc_reco_tsa[8]; - __u8 reco_prio_tc[8]; +struct pci_epc_mem_window { + phys_addr_t phys_base; + size_t size; + size_t page_size; }; -struct ieee_pfc { - __u8 pfc_cap; - __u8 pfc_en; - __u8 mbc; - __u16 delay; - __u64 requests[8]; - __u64 indications[8]; +struct pci_epc_mem { + struct pci_epc_mem_window window; + unsigned long *bitmap; + int pages; + struct mutex lock; }; -struct qman_fq; +struct config_item_type; -struct qm_fd; +struct config_item { + char *ci_name; + char ci_namebuf[20]; + struct kref ci_kref; + struct list_head ci_entry; + struct config_item *ci_parent; + struct config_group *ci_group; + const struct config_item_type *ci_type; + struct dentry *ci_dentry; +}; -typedef void (*btf_trace_dpaa_tx_fd)(void *, struct net_device *, struct qman_fq *, const struct qm_fd *); +struct configfs_subsystem; -enum qman_cb_dqrr_result { - qman_cb_dqrr_consume = 0, - qman_cb_dqrr_park = 1, - qman_cb_dqrr_defer = 2, - qman_cb_dqrr_stop = 3, - qman_cb_dqrr_consume_stop = 4, +struct config_group { + struct config_item cg_item; + struct list_head cg_children; + struct configfs_subsystem *cg_subsys; + struct list_head default_groups; + struct list_head group_entry; }; -struct qman_portal; +struct configfs_item_operations; -struct qm_dqrr_entry; +struct configfs_group_operations; -typedef enum qman_cb_dqrr_result (*qman_cb_dqrr)(struct qman_portal *, struct qman_fq *, const struct qm_dqrr_entry *, bool); +struct configfs_attribute; -union qm_mr_entry; +struct configfs_bin_attribute; -typedef void (*qman_cb_mr)(struct qman_portal *, struct qman_fq *, const union qm_mr_entry *); +struct config_item_type { + struct module *ct_owner; + struct configfs_item_operations *ct_item_ops; + struct configfs_group_operations *ct_group_ops; + struct configfs_attribute **ct_attrs; + struct configfs_bin_attribute **ct_bin_attrs; +}; -struct qman_fq_cb { - qman_cb_dqrr dqrr; - qman_cb_mr ern; - qman_cb_mr fqs; +struct configfs_item_operations { + void (*release)(struct config_item *); + int (*allow_link)(struct config_item *, struct config_item *); + void (*drop_link)(struct config_item *, struct config_item *); }; -enum qman_fq_state { - qman_fq_state_oos = 0, - qman_fq_state_parked = 1, - qman_fq_state_sched = 2, - qman_fq_state_retired = 3, +struct configfs_group_operations { + struct config_item * (*make_item)(struct config_group *, const char *); + struct config_group * (*make_group)(struct config_group *, const char *); + void (*disconnect_notify)(struct config_group *, struct config_item *); + void (*drop_item)(struct config_group *, struct config_item *); }; -struct qman_fq { - struct qman_fq_cb cb; - u32 fqid; - u32 idx; - unsigned long flags; - enum qman_fq_state state; - int cgr_groupid; +struct configfs_attribute { + const char *ca_name; + struct module *ca_owner; + umode_t ca_mode; + ssize_t (*show)(struct config_item *, char *); + ssize_t (*store)(struct config_item *, const char *, size_t); }; -struct qm_fd { - union { - struct { - u8 cfg8b_w1; - u8 bpid; - u8 cfg8b_w3; - u8 addr_hi; - __be32 addr_lo; - }; - __be64 data; - }; - __be32 cfg; - union { - __be32 cmd; - __be32 status; - }; +struct configfs_bin_attribute { + struct configfs_attribute cb_attr; + void *cb_private; + size_t cb_max_size; + ssize_t (*read)(struct config_item *, void *, size_t); + ssize_t (*write)(struct config_item *, const void *, size_t); }; -struct qm_dqrr_entry { - u8 verb; - u8 stat; - __be16 seqnum; - u8 tok; - u8 __reserved2[3]; - __be32 fqid; - __be32 context_b; - struct qm_fd fd; - u8 __reserved4[32]; +struct configfs_subsystem { + struct config_group su_group; + struct mutex su_mutex; }; -union qm_mr_entry { - struct { - u8 verb; - u8 __reserved[63]; - }; - struct { - u8 verb; - u8 dca; - __be16 seqnum; - u8 rc; - u8 __reserved[3]; - __be32 fqid; - __be32 tag; - struct qm_fd fd; - u8 __reserved1[32]; - } ern; - struct { - u8 verb; - u8 fqs; - u8 __reserved1[6]; - __be32 fqid; - __be32 context_b; - u8 __reserved2[48]; - } fq; +struct dw_pcie_ep_ops { + void (*pre_init)(struct dw_pcie_ep *); + void (*ep_init)(struct dw_pcie_ep *); + void (*deinit)(struct dw_pcie_ep *); + int (*raise_irq)(struct dw_pcie_ep *, u8, enum pci_epc_irq_type, u16); + const struct pci_epc_features * (*get_features)(struct dw_pcie_ep *); + unsigned int (*func_conf_select)(struct dw_pcie_ep *, u8); + unsigned int (*get_dbi2_offset)(struct dw_pcie_ep *, u8); }; -typedef void (*btf_trace_dpaa_rx_fd)(void *, struct net_device *, struct qman_fq *, const struct qm_fd *); +struct dw_edma_plat_ops { + int (*irq_vector)(struct device *, unsigned int); + u64 (*pci_address)(struct device *, phys_addr_t); +}; -typedef void (*btf_trace_dpaa_tx_conf_fd)(void *, struct net_device *, struct qman_fq *, const struct qm_fd *); +struct visconti_pcie { + struct dw_pcie pci; + void *ulreg_base; + void *smu_base; + void *mpu_base; + struct clk *refclk; + struct clk *coreclk; + struct clk *auxclk; +}; -struct dpaa_priv; +struct fb_bitfield { + __u32 offset; + __u32 length; + __u32 msb_right; +}; -struct bman_pool; +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 bm_buffer; +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 dpaa_bp { - struct dpaa_priv *priv; - int __attribute__((btf_type_tag("percpu"))) *percpu_count; - size_t raw_size; - size_t size; - u16 config_count; - u8 bpid; - struct bman_pool *pool; - int (*seed_cb)(struct dpaa_bp *); - void (*free_buf_cb)(const struct dpaa_bp *, struct bm_buffer *); - refcount_t refs; +struct fb_chroma { + __u32 redx; + __u32 greenx; + __u32 bluex; + __u32 whitex; + __u32 redy; + __u32 greeny; + __u32 bluey; + __u32 whitey; }; -struct qman_cgr; +struct fb_videomode; -typedef void (*qman_cb_cgr)(struct qman_portal *, struct qman_cgr *, int); +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 qman_cgr { - u32 cgrid; - qman_cb_cgr cb; - u16 chan; - struct list_head node; +struct fb_info; + +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 dpaa_buffer_layout { - u16 priv_data_size; +struct fb_cmap { + __u32 start; + __u32 len; + __u16 *red; + __u16 *green; + __u16 *blue; + __u16 *transp; }; -struct dpaa_percpu_priv; +struct fb_deferred_io_pageref; -struct mac_device; +struct fb_deferred_io; -struct dpaa_priv { - struct dpaa_percpu_priv __attribute__((btf_type_tag("percpu"))) *percpu_priv; - struct dpaa_bp *dpaa_bp; - u16 tx_headroom; - struct net_device *net_dev; - struct mac_device *mac_dev; - struct device *rx_dma_dev; - struct device *tx_dma_dev; - struct qman_fq *egress_fqs[1024]; - struct qman_fq *conf_fqs[1024]; - u16 channel; - struct list_head dpaa_fq_list; - u8 num_tc; - bool keygen_in_use; - u32 msg_enable; - struct { - struct qman_cgr cgr; - u32 congestion_start_jiffies; - u32 congested_jiffies; - u32 cgr_congested_count; - } cgr_data; - bool use_ingress_cgr; - struct qman_cgr ingress_cgr; - struct dpaa_buffer_layout buf_layout[2]; - u16 rx_headroom; - bool tx_tstamp; - bool rx_tstamp; - struct bpf_prog *xdp_prog; -}; +struct fb_ops; -struct dpaa_napi_portal { - struct napi_struct napi; - struct qman_portal *p; - bool down; - int xdp_act; +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; + struct delayed_work deferred_work; + unsigned long npagerefs; + struct fb_deferred_io_pageref *pagerefs; + struct fb_deferred_io *fbdefio; + 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 dpaa_rx_errors { - u64 dme; - u64 fpe; - u64 fse; - u64 phe; +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 dpaa_ern_cnt { - u64 cg_tdrop; - u64 wred; - u64 err_cond; - u64 early_window; - u64 late_window; - u64 fq_tdrop; - u64 fq_retired; - u64 orp_zero; +struct fb_deferred_io_pageref { + struct page *page; + unsigned long offset; + struct list_head list; }; -struct dpaa_percpu_priv { - struct net_device *net_dev; - struct dpaa_napi_portal np; - u64 in_interrupt; - u64 tx_confirm; - u64 tx_frag_skbuffs; - struct rtnl_link_stats64 stats; - struct dpaa_rx_errors rx_errors; - struct dpaa_ern_cnt ern_cnt; +struct fb_deferred_io { + unsigned long delay; + bool sort_pagereflist; + int open_count; + struct mutex lock; + struct list_head pagereflist; + void (*deferred_io)(struct fb_info *, struct list_head *); }; -enum phylink_op_type { - PHYLINK_NETDEV = 0, - PHYLINK_DEV = 1, -}; +struct fb_fillrect; -struct phylink_link_state; +struct fb_copyarea; -struct phylink_config { - struct device *dev; - enum phylink_op_type type; - bool legacy_pre_march2020; - bool poll_fixed_state; - bool mac_managed_pm; - bool ovr_an_inband; - void (*get_fixed_state)(struct phylink_config *, struct phylink_link_state *); - unsigned long supported_interfaces[1]; - unsigned long mac_capabilities; -}; +struct fb_image; -typedef u8 enet_addr_t[6]; +struct fb_cursor; -enum fman_mac_exceptions { - FM_MAC_EX_10G_MDIO_SCAN_EVENT = 0, - FM_MAC_EX_10G_MDIO_CMD_CMPL = 1, - FM_MAC_EX_10G_REM_FAULT = 2, - FM_MAC_EX_10G_LOC_FAULT = 3, - FM_MAC_EX_10G_TX_ECC_ER = 4, - FM_MAC_EX_10G_TX_FIFO_UNFL = 5, - FM_MAC_EX_10G_TX_FIFO_OVFL = 6, - FM_MAC_EX_10G_TX_ER = 7, - FM_MAC_EX_10G_RX_FIFO_OVFL = 8, - FM_MAC_EX_10G_RX_ECC_ER = 9, - FM_MAC_EX_10G_RX_JAB_FRM = 10, - FM_MAC_EX_10G_RX_OVRSZ_FRM = 11, - FM_MAC_EX_10G_RX_RUNT_FRM = 12, - FM_MAC_EX_10G_RX_FRAG_FRM = 13, - FM_MAC_EX_10G_RX_LEN_ER = 14, - FM_MAC_EX_10G_RX_CRC_ER = 15, - FM_MAC_EX_10G_RX_ALIGN_ER = 16, - FM_MAC_EX_1G_BAB_RX = 17, - FM_MAC_EX_1G_RX_CTL = 18, - FM_MAC_EX_1G_GRATEFUL_TX_STP_COMPLET = 19, - FM_MAC_EX_1G_BAB_TX = 20, - FM_MAC_EX_1G_TX_CTL = 21, - FM_MAC_EX_1G_TX_ERR = 22, - FM_MAC_EX_1G_LATE_COL = 23, - FM_MAC_EX_1G_COL_RET_LMT = 24, - FM_MAC_EX_1G_TX_FIFO_UNDRN = 25, - FM_MAC_EX_1G_MAG_PCKT = 26, - FM_MAC_EX_1G_MII_MNG_RD_COMPLET = 27, - FM_MAC_EX_1G_MII_MNG_WR_COMPLET = 28, - FM_MAC_EX_1G_GRATEFUL_RX_STP_COMPLET = 29, - FM_MAC_EX_1G_DATA_ERR = 30, - FM_MAC_1G_RX_DATA_ERR = 31, - FM_MAC_EX_1G_1588_TS_RX_ERR = 32, - FM_MAC_EX_1G_RX_MIB_CNT_OVFL = 33, - FM_MAC_EX_TS_FIFO_ECC_ERR = 34, - FM_MAC_EX_MAGIC_PACKET_INDICATION = 26, +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 fman_port; +struct fb_fillrect { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 color; + __u32 rop; +}; -struct phylink_mac_ops; +struct fb_copyarea { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 sx; + __u32 sy; +}; -struct fman_mac; +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 mac_priv_s; +struct fbcurpos { + __u16 x; + __u16 y; +}; -struct mac_device { - void *vaddr; - struct device *dev; - struct resource *res; - u8 addr[6]; - struct fman_port *port[2]; - struct phylink *phylink; - struct phylink_config phylink_config; - phy_interface_t phy_if; - bool promisc; - bool allmulti; - const struct phylink_mac_ops *phylink_ops; - int (*enable)(struct fman_mac *); - void (*disable)(struct fman_mac *); - int (*set_promisc)(struct fman_mac *, bool); - int (*change_addr)(struct fman_mac *, const enet_addr_t *); - int (*set_allmulti)(struct fman_mac *, bool); - int (*set_tstamp)(struct fman_mac *, bool); - int (*set_multi)(struct net_device *, struct mac_device *); - int (*set_exception)(struct fman_mac *, enum fman_mac_exceptions, bool); - int (*add_hash_mac_addr)(struct fman_mac *, enet_addr_t *); - int (*remove_hash_mac_addr)(struct fman_mac *, enet_addr_t *); - void (*update_speed)(struct mac_device *, int); - struct fman_mac *fman_mac; - struct mac_priv_s *priv; +struct fb_cursor { + __u16 set; + __u16 enable; + __u16 rop; + const char *mask; + struct fbcurpos hot; + struct fb_image image; }; -struct phylink_link_state { - unsigned long advertising[2]; - unsigned long lp_advertising[2]; - phy_interface_t interface; - int speed; - int duplex; - int pause; - int rate_matching; - unsigned int link: 1; - unsigned int an_complete: 1; +struct fb_blit_caps { + u32 x; + u32 y; + u32 len; + u32 flags; }; -struct phylink_pcs; +typedef u64 phys_cpuid_t; -struct phylink_mac_ops { - void (*validate)(struct phylink_config *, unsigned long *, struct phylink_link_state *); - struct phylink_pcs * (*mac_select_pcs)(struct phylink_config *, phy_interface_t); - void (*mac_pcs_get_state)(struct phylink_config *, struct phylink_link_state *); - int (*mac_prepare)(struct phylink_config *, unsigned int, phy_interface_t); - void (*mac_config)(struct phylink_config *, unsigned int, const struct phylink_link_state *); - int (*mac_finish)(struct phylink_config *, unsigned int, phy_interface_t); - void (*mac_an_restart)(struct phylink_config *); - void (*mac_link_down)(struct phylink_config *, unsigned int, phy_interface_t); - void (*mac_link_up)(struct phylink_config *, struct phy_device *, unsigned int, phy_interface_t, int, int, bool, bool); +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 phylink_pcs_ops; - -struct phylink_pcs { - const struct phylink_pcs_ops *ops; - bool neg_mode; - bool poll; +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 phylink_pcs_ops { - int (*pcs_validate)(struct phylink_pcs *, unsigned long *, const struct phylink_link_state *); - void (*pcs_get_state)(struct phylink_pcs *, struct phylink_link_state *); - int (*pcs_config)(struct phylink_pcs *, unsigned int, phy_interface_t, const unsigned long *, bool); - void (*pcs_an_restart)(struct phylink_pcs *); - void (*pcs_link_up)(struct phylink_pcs *, unsigned int, phy_interface_t, int, int); +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 bm_buffer { +struct acpi_processor_power { + int count; union { - struct { - __be16 bpid; - __be16 hi; - __be32 lo; - }; - __be64 data; + struct acpi_processor_cx states[8]; + struct acpi_lpi_state lpi_states[8]; }; + int timer_broadcast_on_state; }; -struct dpaa_fq_cbs { - struct qman_fq rx_defq; - struct qman_fq tx_defq; - struct qman_fq rx_errq; - struct qman_fq tx_errq; - struct qman_fq egress_ern; -}; +struct acpi_pct_register { + u8 descriptor; + u16 length; + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 reserved; + u64 address; +} __attribute__((packed)); -enum qm_fd_format { - qm_fd_contig = 0, - qm_fd_contig_big = 1073741824, - qm_fd_sg = 2147483648, - qm_fd_sg_big = 3221225472, - qm_fd_compound = 536870912, +struct acpi_tsd_package { + u64 num_entries; + u64 revision; + u64 domain; + u64 coord_type; + u64 num_processors; }; -enum dpaa_fq_type { - FQ_TYPE_RX_DEFAULT = 1, - FQ_TYPE_RX_ERROR = 2, - FQ_TYPE_RX_PCD = 3, - FQ_TYPE_TX = 4, - FQ_TYPE_TX_CONFIRM = 5, - FQ_TYPE_TX_CONF_MQ = 6, - FQ_TYPE_TX_ERROR = 7, +struct acpi_processor_tx { + u16 power; + u16 performance; }; -enum port_type { - RX = 0, - TX = 1, -}; +struct acpi_processor_tx_tss; -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, -}; +struct acpi_processor; -enum xdp_action { - XDP_ABORTED = 0, - XDP_DROP = 1, - XDP_PASS = 2, - XDP_TX = 3, - XDP_REDIRECT = 4, +struct acpi_processor_throttling { + unsigned int state; + unsigned int platform_limit; + struct acpi_pct_register control_register; + struct acpi_pct_register status_register; + unsigned int state_count; + struct acpi_processor_tx_tss *states_tss; + struct acpi_tsd_package domain_info; + cpumask_var_t shared_cpu_map; + int (*acpi_processor_get_throttling)(struct acpi_processor *); + int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool); + u32 address; + u8 duty_offset; + u8 duty_width; + u8 tsd_valid_flag; + unsigned int shared_type; + struct acpi_processor_tx states[16]; }; -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, +struct acpi_processor_lx { + int px; + int tx; }; -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 acpi_processor_limit { + struct acpi_processor_lx state; + struct acpi_processor_lx thermal; + struct acpi_processor_lx user; }; -enum xdp_mem_type { - MEM_TYPE_PAGE_SHARED = 0, - MEM_TYPE_PAGE_ORDER0 = 1, - MEM_TYPE_PAGE_POOL = 2, - MEM_TYPE_XSK_BUFF_POOL = 3, - MEM_TYPE_MAX = 4, -}; +struct acpi_processor_performance; -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, +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; }; -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, - SKB_DROP_REASON_SUBSYS_MASK = 4294901760, +struct acpi_psd_package { + u64 num_entries; + u64 revision; + u64 domain; + u64 coord_type; + u64 num_processors; }; -enum { - MLO_PAUSE_NONE = 0, - MLO_PAUSE_RX = 1, - MLO_PAUSE_TX = 2, - MLO_PAUSE_TXRX_MASK = 3, - MLO_PAUSE_AN = 4, - MLO_AN_PHY = 0, - MLO_AN_FIXED = 1, - MLO_AN_INBAND = 2, - PHYLINK_PCS_NEG_NONE = 0, - PHYLINK_PCS_NEG_ENABLED = 16, - PHYLINK_PCS_NEG_OUTBAND = 32, - PHYLINK_PCS_NEG_INBAND = 64, - PHYLINK_PCS_NEG_INBAND_DISABLED = 64, - PHYLINK_PCS_NEG_INBAND_ENABLED = 80, - MAC_SYM_PAUSE = 1, - MAC_ASYM_PAUSE = 2, - MAC_10HD = 4, - MAC_10FD = 8, - MAC_10 = 12, - MAC_100HD = 16, - MAC_100FD = 32, - MAC_100 = 48, - MAC_1000HD = 64, - MAC_1000FD = 128, - MAC_1000 = 192, - MAC_2500FD = 256, - MAC_5000FD = 512, - MAC_10000FD = 1024, - MAC_20000FD = 2048, - MAC_25000FD = 4096, - MAC_40000FD = 8192, - MAC_50000FD = 16384, - MAC_56000FD = 32768, - MAC_100000FD = 65536, - MAC_200000FD = 131072, - MAC_400000FD = 262144, -}; +struct acpi_processor_px; -enum netdev_xdp_act { - NETDEV_XDP_ACT_BASIC = 1, - NETDEV_XDP_ACT_REDIRECT = 2, - NETDEV_XDP_ACT_NDO_XMIT = 4, - NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, - NETDEV_XDP_ACT_HW_OFFLOAD = 16, - NETDEV_XDP_ACT_RX_SG = 32, - NETDEV_XDP_ACT_NDO_XMIT_SG = 64, - NETDEV_XDP_ACT_MASK = 127, +struct acpi_processor_performance { + unsigned int state; + unsigned int platform_limit; + struct acpi_pct_register control_register; + struct acpi_pct_register status_register; + unsigned int state_count; + struct acpi_processor_px *states; + struct acpi_psd_package domain_info; + cpumask_var_t shared_cpu_map; + unsigned int shared_type; }; -enum netdev_queue_state_t { - __QUEUE_STATE_DRV_XOFF = 0, - __QUEUE_STATE_STACK_XOFF = 1, - __QUEUE_STATE_FROZEN = 2, +struct acpi_processor_px { + u64 core_frequency; + u64 power; + u64 transition_latency; + u64 bus_master_latency; + u64 control; + u64 status; }; -enum { - IPPROTO_IP = 0, - IPPROTO_ICMP = 1, - IPPROTO_IGMP = 2, - IPPROTO_IPIP = 4, - IPPROTO_TCP = 6, - IPPROTO_EGP = 8, - IPPROTO_PUP = 12, - IPPROTO_UDP = 17, - IPPROTO_IDP = 22, - IPPROTO_TP = 29, - IPPROTO_DCCP = 33, - IPPROTO_IPV6 = 41, - IPPROTO_RSVP = 46, - IPPROTO_GRE = 47, - IPPROTO_ESP = 50, - IPPROTO_AH = 51, - IPPROTO_MTP = 92, - IPPROTO_BEETPH = 94, - IPPROTO_ENCAP = 98, - IPPROTO_PIM = 103, - IPPROTO_COMP = 108, - IPPROTO_L2TP = 115, - IPPROTO_SCTP = 132, - IPPROTO_UDPLITE = 136, - IPPROTO_MPLS = 137, - IPPROTO_ETHERNET = 143, - IPPROTO_RAW = 255, - IPPROTO_MPTCP = 262, - IPPROTO_MAX = 263, +struct acpi_processor_tx_tss { + u64 freqpercentage; + u64 power; + u64 transition_latency; + u64 control; + u64 status; }; -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, +struct acpi_processor_errata { + u8 smp; + struct { + u8 throttle: 1; + u8 fdma: 1; + u8 reserved: 6; + u32 bmisx; + } piix4; }; -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, -}; +typedef u64 acpi_size; -enum { - TC_MQPRIO_HW_OFFLOAD_NONE = 0, - TC_MQPRIO_HW_OFFLOAD_TCS = 1, - __TC_MQPRIO_HW_OFFLOAD_MAX = 2, +struct acpi_buffer { + acpi_size length; + void *pointer; }; -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 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 trace_event_raw_dpaa_eth_fd { - struct trace_entry ent; - u32 fqid; - u64 fd_addr; - u8 fd_format; - u16 fd_offset; - u32 fd_length; - u32 fd_status; - u32 __data_loc_name; - char __data[0]; -}; +typedef u64 acpi_physical_address; -struct dpaa_fq { - struct qman_fq fq_base; - struct list_head list; - struct net_device *net_dev; - bool init; - u32 fqid; - u32 flags; - u16 channel; - u8 wq; - enum dpaa_fq_type fq_type; - long: 64; - long: 64; - long: 64; - long: 64; - struct xdp_rxq_info xdp_rxq; -}; +typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *); -struct dpaa_eth_swbp { - struct sk_buff *skb; - struct xdp_frame *xdpf; +typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **); + +union acpi_name_union { + u32 integer; + char ascii[4]; }; -typedef struct bio_vec skb_frag_t; +typedef u16 acpi_owner_id; -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]; +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 qm_sg_entry { - union { - struct { - u8 __reserved1[3]; - u8 addr_hi; - __be32 addr_lo; - }; - __be64 data; - }; - __be32 cfg; - u8 __reserved2; - u8 bpid; - __be16 offset; +struct acpi_object_common { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; }; -struct fman_prs_result { - u8 lpid; - u8 shimr; - __be16 l2r; - __be16 l3r; - u8 l4r; - u8 cplan; - __be16 nxthdr; - __be16 cksum; - __be16 flags_frag_off; - u8 route_type; - u8 rhp_ip_valid; - u8 shim_off[2]; - u8 ip_pid_off; - u8 eth_off; - u8 llc_snap_off; - u8 vlan_off[2]; - u8 etype_off; - u8 pppoe_off; - u8 mpls_off[2]; - u8 ip_off[2]; - u8 gre_off; - u8 l4_off; - u8 nxthdr_off; +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 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 acpi_object_string { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + char *pointer; + u32 length; }; -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 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 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 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 trace_event_data_offsets_dpaa_eth_fd { - u32 name; +struct acpi_object_event { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + void *os_semaphore; }; -struct dpaa_eth_data { - struct mac_device *mac_dev; - int mac_hw_id; - int fman_hw_id; +struct acpi_walk_state; + +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 fm_port_fqs { - struct dpaa_fq *tx_defq; - struct dpaa_fq *tx_errq; - struct dpaa_fq *rx_defq; - struct dpaa_fq *rx_errq; - struct dpaa_fq *rx_pcdq; +struct acpi_thread_state; + +struct acpi_object_mutex { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 sync_level; + u16 acquisition_depth; + void *os_mutex; + u64 thread_id; + struct acpi_thread_state *owner_thread; + union acpi_operand_object *prev; + union acpi_operand_object *next; + struct acpi_namespace_node *node; + u8 original_sync_level; }; -struct qm_cgr_wr_parm { - __be32 word; +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 qm_cgr_cs_thres { - __be16 word; +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 __qm_mc_cgr { - struct qm_cgr_wr_parm wr_parm_g; - struct qm_cgr_wr_parm wr_parm_y; - struct qm_cgr_wr_parm wr_parm_r; - u8 wr_en_g; - u8 wr_en_y; - u8 wr_en_r; - u8 cscn_en; - union { - struct { - __be16 cscn_targ_upd_ctrl; - __be16 cscn_targ_dcp_low; - }; - __be32 cscn_targ; - }; - u8 cstd_en; - u8 cs; - struct qm_cgr_cs_thres cs_thres; - u8 mode; -} __attribute__((packed)); +struct acpi_gpe_block_info; -struct qm_mcc_initcgr { - u8 __reserve1[2]; - __be16 we_mask; - struct __qm_mc_cgr cgr; - u8 __reserved2[2]; - u8 cgid; - u8 __reserved3[32]; +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 qm_fqd_oac { - u8 oac; - s8 oal; +struct acpi_object_power_resource { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; + u32 system_level; + u32 resource_order; }; -struct qm_fqd_stashing { - u8 exclusive; - u8 cl; +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 qm_fqd { - u8 orpc; - u8 cgid; - __be16 fq_ctrl; - __be16 dest_wq; - __be16 ics_cred; - union { - __be16 td; - struct qm_fqd_oac oac_init; - }; - __be32 context_b; - union { - __be64 opaque; - struct { - __be32 hi; - __be32 lo; - }; - struct { - struct qm_fqd_stashing stashing; - __be16 context_hi; - __be32 context_lo; - }; - } context_a; - struct qm_fqd_oac oac_query; -} __attribute__((packed)); - -struct qm_mcc_initfq { - u8 __reserved1[2]; - __be16 we_mask; - __be32 fqid; - __be16 count; - struct qm_fqd fqd; - u8 __reserved2[30]; +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 bman_portal; - -struct bman_pool { - u32 bpid; - struct bman_portal *portal; - struct bman_pool *next; +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 fman_buffer_prefix_content { - u16 priv_data_size; - bool pass_prs_result; - bool pass_time_stamp; - bool pass_hash_result; - u16 data_align; +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 fman_ext_pool_params { - u8 id; - u16 size; +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 fman_ext_pools { - u8 num_of_pools_used; - struct fman_ext_pool_params ext_buf_pool[8]; +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 fman_port_rx_params { - u32 err_fqid; - u32 dflt_fqid; - u32 pcd_base_fqid; - u32 pcd_fqs_count; - struct fman_ext_pools ext_buf_pools; +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; }; -struct fman_port_non_rx_params { - u32 err_fqid; - u32 dflt_fqid; +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]; }; -union fman_port_specific_params { - struct fman_port_rx_params rx_params; - struct fman_port_non_rx_params non_rx_params; +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 fman_port_params { - void *fm; - union fman_port_specific_params specific_params; +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 tc_mqprio_qopt { - __u8 num_tc; - __u8 prio_tc_map[16]; - __u8 hw; - __u16 count[16]; - __u16 offset[16]; +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 (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t); +typedef void (*acpi_object_handler)(acpi_handle, void *); -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, +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 e1000_adapter; +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; +}; -struct e1000_mac_operations; +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 e1000_phy_operations; +union acpi_parse_object; -struct e1000_nvm_operations; +union acpi_generic_state; -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 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; }; -struct e1000_hw; +typedef acpi_status (*acpi_parse_downwards)(struct acpi_walk_state *, union acpi_parse_object **); -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 *); -}; +typedef acpi_status (*acpi_parse_upwards)(struct acpi_walk_state *); -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, +struct acpi_opcode_info; + +struct acpi_walk_state { + struct acpi_walk_state *next; + u8 descriptor_type; + u8 walk_type; + u16 opcode; + u8 next_op_info; + u8 num_operands; + u8 operand_index; + acpi_owner_id owner_id; + u8 last_predicate; + u8 current_result; + u8 return_used; + u8 scope_depth; + u8 pass_number; + u8 namespace_override; + u8 result_size; + u8 result_count; + u8 *aml; + u32 arg_types; + u32 method_breakpoint; + u32 user_breakpoint; + u32 parse_flags; + struct acpi_parse_state parser_state; + u32 prev_arg_types; + u32 arg_count; + u16 method_nesting_depth; + u8 method_is_nested; + struct acpi_namespace_node arguments[7]; + struct acpi_namespace_node local_variables[8]; + union acpi_operand_object *operands[9]; + union acpi_operand_object **params; + u8 *aml_last_while; + union acpi_operand_object **caller_return_desc; + union acpi_generic_state *control_state; + struct acpi_namespace_node *deferred_node; + union acpi_operand_object *implicit_return_obj; + struct acpi_namespace_node *method_call_node; + union acpi_parse_object *method_call_op; + union acpi_operand_object *method_desc; + struct acpi_namespace_node *method_node; + char *method_pathname; + union acpi_parse_object *op; + const struct acpi_opcode_info *op_info; + union acpi_parse_object *origin; + union acpi_operand_object *result_obj; + union acpi_generic_state *results; + union acpi_operand_object *return_desc; + union acpi_generic_state *scope_info; + union acpi_parse_object *prev_op; + union acpi_parse_object *next_op; + struct acpi_thread_state *thread; + acpi_parse_downwards descending_callback; + acpi_parse_upwards ascending_callback; }; -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; +union acpi_parse_value { + u64 integer; + u32 size; + char *string; + u8 *buffer; + char *name; + union acpi_parse_object *arg; }; -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, +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 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 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 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 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]; }; -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, +union acpi_parse_object { + struct acpi_parse_obj_common common; + struct acpi_parse_obj_named named; + struct acpi_parse_obj_asl asl; }; -enum e1000_1000t_rx_status { - e1000_1000t_rx_status_not_ok = 0, - e1000_1000t_rx_status_ok = 1, - e1000_1000t_rx_status_undefined = 255, +struct acpi_common_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; }; -enum e1000_ms_type { - e1000_ms_hw_default = 0, - e1000_ms_force_master = 1, - e1000_ms_force_slave = 2, - e1000_ms_auto = 3, +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; }; -enum e1000_rev_polarity { - e1000_rev_polarity_normal = 0, - e1000_rev_polarity_reversed = 1, - e1000_rev_polarity_undefined = 255, +struct acpi_update_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + union acpi_operand_object *object; }; -enum e1000_smart_speed { - e1000_smart_speed_default = 0, - e1000_smart_speed_on = 1, - e1000_smart_speed_off = 2, +struct acpi_scope_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + struct acpi_namespace_node *node; }; -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, +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 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 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 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 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; }; -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, +struct acpi_result_values { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + union acpi_operand_object *obj_desc[8]; }; -enum e1000_nvm_override { - e1000_nvm_override_none = 0, - e1000_nvm_override_spi_small = 1, - e1000_nvm_override_spi_large = 2, +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; }; -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; +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; }; -enum e1000_bus_width { - e1000_bus_width_unknown = 0, - e1000_bus_width_pcie_x1 = 1, - e1000_bus_width_pcie_x2 = 2, - e1000_bus_width_pcie_x4 = 4, - e1000_bus_width_pcie_x8 = 8, - e1000_bus_width_32 = 9, - e1000_bus_width_64 = 10, - e1000_bus_width_reserved = 11, +struct acpi_global_notify_handler { + acpi_notify_handler handler; + void *context; }; -struct e1000_bus_info { - enum e1000_bus_width width; - u16 func; +struct acpi_opcode_info { + u32 parse_args; + u32 runtime_args; + u16 flags; + u8 object_type; + u8 class; + u8 type; }; -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_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 acpi_gpe_xrupt_info; -enum e1000_ulp_state { - e1000_ulp_state_unknown = 0, - e1000_ulp_state_off = 1, - e1000_ulp_state_on = 2, -}; +struct acpi_gpe_register_info; -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 acpi_gpe_event_info; -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 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 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 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 e1000_phy_stats { - u32 idle_errors; - u32 receive_errors; +struct acpi_gpe_address { + u8 space_id; + u64 address; }; -struct e1000_phy_regs { - u16 bmcr; - u16 bmsr; - u16 advertise; - u16 lpa; - u16 expansion; - u16 ctrl1000; - u16 stat1000; - u16 estatus; +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 e1000_buffer; +struct acpi_gpe_handler_info; -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 acpi_gpe_notify_info; -struct pm_qos_request { - struct plist_node node; - struct pm_qos_constraints *qos; +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 msix_entry; - -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: 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: 64; - 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: 64; - long: 64; - long: 64; - long: 64; +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; }; -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; - }; - }; -}; +typedef u32 (*acpi_gpe_handler)(acpi_handle, u32, void *); -struct e1000_ps_page { - struct page *page; - u64 dma; +struct acpi_gpe_handler_info { + acpi_gpe_handler address; + void *context; + struct acpi_namespace_node *method_node; + u8 original_flags; + u8 originally_enabled; }; -struct msix_entry { - u32 vector; - u16 entry; +struct acpi_gpe_notify_info { + struct acpi_namespace_node *device_node; + struct acpi_gpe_notify_info *next; }; -struct e1000_reg_info { - u32 ofs; - char *name; -}; +typedef u32 acpi_mutex_handle; -enum e1000_state_t { - __E1000_TESTING = 0, - __E1000_RESETTING = 1, - __E1000_ACCESS_SHARED_RESOURCE = 2, - __E1000_DOWN = 3, +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, }; -enum gro_result { - GRO_MERGED = 0, - GRO_MERGED_FREE = 1, - GRO_HELD = 2, - GRO_NORMAL = 3, - GRO_CONSUMED = 4, +struct acpi_common_descriptor { + void *common_pointer; + u8 descriptor_type; }; -enum tk_offsets { - TK_OFFS_REAL = 0, - TK_OFFS_BOOT = 1, - TK_OFFS_TAI = 2, - TK_OFFS_MAX = 3, +union acpi_descriptor { + struct acpi_common_descriptor common; + union acpi_operand_object object; + struct acpi_namespace_node node; + union acpi_parse_object op; }; -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, +struct acpi_memory_attribute { + u8 write_protect; + u8 caching; + u8 range_type; + u8 translation; }; -enum { - pci_channel_io_normal = 1, - pci_channel_io_frozen = 2, - pci_channel_io_perm_failure = 3, +struct acpi_io_attribute { + u8 range_type; + u8 translation; + u8 translation_type; + u8 reserved1; }; -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, +union acpi_resource_attribute { + struct acpi_memory_attribute mem; + struct acpi_io_attribute io; + u8 type_specific; }; -enum latency_range { - lowest_latency = 0, - low_latency = 1, - bulk_latency = 2, - latency_invalid = 255, +struct acpi_address16_attribute { + u16 granularity; + u16 minimum; + u16 maximum; + u16 translation_offset; + u16 address_length; }; -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 acpi_resource_source { + u8 index; + u16 string_length; + char *string_ptr; +} __attribute__((packed)); -struct trace_event_raw_e1000e_trace_mac_register { - struct trace_entry ent; - uint32_t reg; - char __data[0]; -}; +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)); -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; +struct acpi_address32_attribute { + u32 granularity; + u32 minimum; + u32 maximum; + u32 translation_offset; + u32 address_length; }; -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 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 e1000_tx_desc { - __le64 buffer_addr; - union { - __le32 data; - struct { - __le16 length; - u8 cso; - u8 cmd; - } flags; - } lower; +struct acpi_resource_irq { + u8 descriptor_length; + u8 triggering; + u8 polarity; + u8 shareable; + u8 wake_capable; + u8 interrupt_count; union { - __le32 data; + u8 interrupt; struct { - u8 status; - u8 css; - __le16 special; - } fields; - } upper; -}; - -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 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 udphdr { - __be16 source; - __be16 dest; - __be16 len; - __sum16 check; + struct {} __Empty_interrupts; + u8 interrupts[0]; + }; + }; }; -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; +struct acpi_resource_dma { + u8 type; + u8 bus_master; + u8 transfer; + u8 channel_count; union { - __le32 data; + u8 channel; struct { - u8 status; - u8 hdr_len; - __le16 mss; - } fields; - } tcp_seg_setup; + struct {} __Empty_channels; + u8 channels[0]; + }; + }; }; -struct mii_ioctl_data { - __u16 phy_id; - __u16 reg_num; - __u16 val_in; - __u16 val_out; +struct acpi_resource_start_dependent { + u8 descriptor_length; + u8 compatibility_priority; + u8 performance_robustness; }; -struct my_u0 { - __le64 a; - __le64 b; -}; +struct acpi_resource_io { + u8 io_decode; + u8 alignment; + u8 address_length; + u16 minimum; + u16 maximum; +} __attribute__((packed)); -struct my_u1 { - __le64 a; - __le64 b; - __le64 c; - __le64 d; -}; +struct acpi_resource_fixed_io { + u16 address; + u8 address_length; +} __attribute__((packed)); -typedef enum gro_result gro_result_t; +struct acpi_resource_fixed_dma { + u16 request_lines; + u16 channels; + u8 width; +} __attribute__((packed)); -struct vlan_hdr { - __be16 h_vlan_TCI; - __be16 h_vlan_encapsulated_proto; +struct acpi_resource_vendor { + u16 byte_length; + u8 byte_data[0]; }; -struct trace_event_data_offsets_e1000e_trace_mac_register {}; +struct acpi_resource_vendor_typed { + u16 byte_length; + u8 uuid_subtype; + u8 uuid[16]; + u8 byte_data[0]; +} __attribute__((packed)); -struct usbdrv_wrap { - struct device_driver driver; - int for_devices; +struct acpi_resource_end_tag { + u8 checksum; }; -struct usb_device; +struct acpi_resource_memory24 { + u8 write_protect; + u16 minimum; + u16 maximum; + u16 alignment; + u16 address_length; +} __attribute__((packed)); -struct usb_device_id; +struct acpi_resource_memory32 { + u8 write_protect; + u32 minimum; + u32 maximum; + u32 alignment; + u32 address_length; +} __attribute__((packed)); -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 acpi_resource_fixed_memory32 { + u8 write_protect; + u32 address; + u32 address_length; +} __attribute__((packed)); -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, +struct acpi_address64_attribute { + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; }; -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, -}; +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)); -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 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 usb_endpoint_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bEndpointAddress; - __u8 bmAttributes; - __le16 wMaxPacketSize; - __u8 bInterval; - __u8 bRefresh; - __u8 bSynchAddress; +struct acpi_resource_extended_irq { + u8 producer_consumer; + u8 triggering; + u8 polarity; + u8 shareable; + u8 wake_capable; + u8 interrupt_count; + struct acpi_resource_source resource_source; + union { + u32 interrupt; + struct { + struct {} __Empty_interrupts; + u32 interrupts[0]; + }; + }; } __attribute__((packed)); -struct usb_ss_ep_comp_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bMaxBurst; - __u8 bmAttributes; - __le16 wBytesPerInterval; -}; +struct acpi_resource_generic_register { + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); -struct usb_ssp_isoc_ep_comp_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wReseved; - __le32 dwBytesPerInterval; -}; +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 ep_device; +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 usb_host_endpoint { - struct usb_endpoint_descriptor desc; - struct usb_ss_ep_comp_descriptor ss_ep_comp; - struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp; - long: 0; - struct list_head urb_list; - void *hcpriv; - struct ep_device *ep_dev; - unsigned char *extra; - int extralen; - int enabled; - int streams; - long: 0; +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 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 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 wusb_dev; +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 usb2_lpm_parameters { - unsigned int besl; - int timeout; -}; +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 usb3_lpm_parameters { - unsigned int mel; - unsigned int pel; - unsigned int sel; - int timeout; -}; +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 usb_tt; +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 usb_bus; +struct acpi_resource_label { + u16 string_length; + char *string_ptr; +} __attribute__((packed)); -struct usb_host_bos; +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 usb_host_config; +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 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 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 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 acpi_resource_clock_input { + u8 revision_id; + u8 mode; + u8 scale; + u16 frequency_divisor; + u32 frequency_numerator; + struct acpi_resource_source resource_source; +} __attribute__((packed)); -struct usb_devmap { - unsigned long devicemap[2]; +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; }; -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; +union acpi_resource_data { + struct acpi_resource_irq irq; + struct acpi_resource_dma dma; + struct acpi_resource_start_dependent start_dpf; + struct acpi_resource_io io; + struct acpi_resource_fixed_io fixed_io; + struct acpi_resource_fixed_dma fixed_dma; + struct acpi_resource_vendor vendor; + struct acpi_resource_vendor_typed vendor_typed; + struct acpi_resource_end_tag end_tag; + struct acpi_resource_memory24 memory24; + struct acpi_resource_memory32 memory32; + struct acpi_resource_fixed_memory32 fixed_memory32; + struct acpi_resource_address16 address16; + struct acpi_resource_address32 address32; + struct acpi_resource_address64 address64; + struct acpi_resource_extended_address64 ext_address64; + struct acpi_resource_extended_irq extended_irq; + struct acpi_resource_generic_register generic_reg; + struct acpi_resource_gpio gpio; + struct acpi_resource_i2c_serialbus i2c_serial_bus; + struct acpi_resource_spi_serialbus spi_serial_bus; + struct acpi_resource_uart_serialbus uart_serial_bus; + struct acpi_resource_csi2_serialbus csi2_serial_bus; + struct acpi_resource_common_serialbus common_serial_bus; + struct acpi_resource_pin_function pin_function; + struct acpi_resource_pin_config pin_config; + struct acpi_resource_pin_group pin_group; + struct acpi_resource_pin_group_function pin_group_function; + struct acpi_resource_pin_group_config pin_group_config; + struct acpi_resource_clock_input clock_input; + struct acpi_resource_address address; }; -struct usb_bos_descriptor; +struct acpi_resource { + u32 type; + u32 length; + union acpi_resource_data data; +}; -struct usb_ext_cap_descriptor; +typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); -struct usb_ss_cap_descriptor; +struct acpi_vendor_uuid; -struct usb_ssp_cap_descriptor; +struct acpi_vendor_walk_info { + struct acpi_vendor_uuid *uuid; + struct acpi_buffer *buffer; + acpi_status status; +}; -struct usb_ss_container_id_descriptor; +struct acpi_vendor_uuid { + u8 subtype; + u8 data[16]; +}; -struct usb_ptm_cap_descriptor; +struct pci_ecam_ops; -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 mcfg_fixup { + char oem_id[7]; + char oem_table_id[9]; + u32 oem_revision; + u16 segment; + struct resource bus_range; + const struct pci_ecam_ops *ops; + struct resource cfgres; }; -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 pci_config_window; -struct usb_ss_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bmAttributes; - __le16 wSpeedSupported; - __u8 bFunctionalitySupport; - __u8 bU1devExitLat; - __le16 bU2DevExitLat; +struct pci_ecam_ops { + unsigned int bus_shift; + struct pci_ops pci_ops; + int (*init)(struct pci_config_window *); }; -struct usb_ssp_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bReserved; - __le32 bmAttributes; - __le16 wFunctionalitySupport; - __le16 wReserved; +struct pci_config_window { + struct resource res; + struct resource busr; + unsigned int bus_shift; + void *priv; + const struct pci_ecam_ops *ops; union { - __le32 legacy_padding; - struct { - struct {} __empty_bmSublinkSpeedAttr; - __le32 bmSublinkSpeedAttr[0]; - }; + void *win; + void **winp; }; + struct device *parent; }; -struct usb_ss_container_id_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bReserved; - __u8 ContainerID[16]; +struct mcfg_entry { + struct list_head list; + phys_addr_t addr; + u16 segment; + u8 bus_start; + u8 bus_end; }; -struct usb_ptm_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; +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 usb_config_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wTotalLength; - __u8 bNumInterfaces; - __u8 bConfigurationValue; - __u8 iConfiguration; - __u8 bmAttributes; - __u8 bMaxPower; -} __attribute__((packed)); +struct acpi_table_mcfg { + struct acpi_table_header header; + u8 reserved[8]; +}; -struct usb_interface_assoc_descriptor; +struct acpi_mcfg_allocation { + u64 address; + u16 pci_segment; + u8 start_bus_number; + u8 end_bus_number; + u32 reserved; +}; -struct usb_interface; +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 usb_interface_cache; +typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); -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 clk_lookup { + struct list_head node; + const char *dev_id; + const char *con_id; + struct clk *clk; + struct clk_hw *clk_hw; }; -struct usb_interface_assoc_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bFirstInterface; - __u8 bInterfaceCount; - __u8 bFunctionClass; - __u8 bFunctionSubClass; - __u8 bFunctionProtocol; - __u8 iFunction; +struct clk_lookup_alloc { + struct clk_lookup cl; + char dev_id[20]; + char con_id[16]; }; -enum usb_interface_condition { - USB_INTERFACE_UNBOUND = 0, - USB_INTERFACE_BINDING = 1, - USB_INTERFACE_BOUND = 2, - USB_INTERFACE_UNBINDING = 3, -}; +struct scmi_device; -enum usb_wireless_status { - USB_WIRELESS_STATUS_NA = 0, - USB_WIRELESS_STATUS_DISCONNECTED = 1, - USB_WIRELESS_STATUS_CONNECTED = 2, +struct scmi_device_id; + +struct scmi_driver { + const char *name; + int (*probe)(struct scmi_device *); + void (*remove)(struct scmi_device *); + const struct scmi_device_id *id_table; + struct device_driver driver; }; -struct usb_host_interface; +struct scmi_handle; -struct usb_interface { - struct usb_host_interface *altsetting; - struct usb_host_interface *cur_altsetting; - unsigned int num_altsetting; - struct usb_interface_assoc_descriptor *intf_assoc; - int minor; - enum usb_interface_condition condition; - unsigned int sysfs_files_created: 1; - unsigned int ep_devs_created: 1; - unsigned int unregistering: 1; - unsigned int needs_remote_wakeup: 1; - unsigned int needs_altsetting0: 1; - unsigned int needs_binding: 1; - unsigned int resetting_device: 1; - unsigned int authorized: 1; - enum usb_wireless_status wireless_status; - struct work_struct wireless_status_work; +struct scmi_device { + u32 id; + u8 protocol_id; + const char *name; struct device dev; - struct device *usb_dev; - struct work_struct reset_ws; + struct scmi_handle *handle; }; -struct usb_interface_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bInterfaceNumber; - __u8 bAlternateSetting; - __u8 bNumEndpoints; - __u8 bInterfaceClass; - __u8 bInterfaceSubClass; - __u8 bInterfaceProtocol; - __u8 iInterface; +struct scmi_revision_info; + +struct scmi_protocol_handle; + +struct scmi_notify_ops; + +struct scmi_handle { + struct device *dev; + struct scmi_revision_info *version; + int (*devm_protocol_acquire)(struct scmi_device *, u8); + const void * (*devm_protocol_get)(struct scmi_device *, u8, struct scmi_protocol_handle **); + void (*devm_protocol_put)(struct scmi_device *, u8); + bool (*is_transport_atomic)(const struct scmi_handle *, unsigned int *); + const struct scmi_notify_ops *notify_ops; }; -struct usb_host_interface { - struct usb_interface_descriptor desc; - int extralen; - unsigned char *extra; - struct usb_host_endpoint *endpoint; - char *string; +struct scmi_revision_info { + u16 major_ver; + u16 minor_ver; + u8 num_protocols; + u8 num_agents; + u32 impl_ver; + char vendor_id[16]; + char sub_vendor_id[16]; }; -struct usb_interface_cache { - unsigned int num_altsetting; - struct kref ref; - struct usb_host_interface altsetting[0]; +struct scmi_notify_ops { + int (*devm_event_notifier_register)(struct scmi_device *, u8, u8, const u32 *, struct notifier_block *); + int (*devm_event_notifier_unregister)(struct scmi_device *, u8, u8, const u32 *, struct notifier_block *); + int (*event_notifier_register)(const struct scmi_handle *, u8, u8, const u32 *, struct notifier_block *); + int (*event_notifier_unregister)(const struct scmi_handle *, u8, u8, const u32 *, struct notifier_block *); }; -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 scmi_device_id { + u8 protocol_id; + const char *name; }; -struct property_entry; +struct scmi_clock_info; -struct software_node { - const char *name; - const struct software_node *parent; - const struct property_entry *properties; +struct scmi_clk_proto_ops { + int (*count_get)(const struct scmi_protocol_handle *); + const struct scmi_clock_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*rate_get)(const struct scmi_protocol_handle *, u32, u64 *); + int (*rate_set)(const struct scmi_protocol_handle *, u32, u64); + int (*enable)(const struct scmi_protocol_handle *, u32, bool); + int (*disable)(const struct scmi_protocol_handle *, u32, bool); + int (*state_get)(const struct scmi_protocol_handle *, u32, bool *, bool); + int (*config_oem_get)(const struct scmi_protocol_handle *, u32, u8, u32 *, u32 *, bool); + int (*config_oem_set)(const struct scmi_protocol_handle *, u32, u8, u32, bool); + int (*parent_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*parent_set)(const struct scmi_protocol_handle *, u32, u32); }; -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, +struct scmi_xfer_ops; + +struct scmi_proto_helpers_ops; + +struct scmi_protocol_handle { + struct device *dev; + const struct scmi_xfer_ops *xops; + const struct scmi_proto_helpers_ops *hops; + int (*set_priv)(const struct scmi_protocol_handle *, void *); + void * (*get_priv)(const struct scmi_protocol_handle *); }; -struct property_entry { - const char *name; - size_t length; - bool is_inline; - enum dev_prop_type type; +struct scmi_clock_info { + char name[64]; + unsigned int enable_latency; + bool rate_discrete; + bool rate_changed_notifications; + bool rate_change_requested_notifications; 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 { + int num_rates; + u64 rates[16]; + } list; + struct { + u64 min_rate; + u64 max_rate; + u64 step_size; + } range; }; + int num_parents; + u32 *parents; }; -struct gpiod_lookup { - const char *key; - u16 chip_hwnum; - const char *con_id; - unsigned int idx; - unsigned long flags; +enum scmi_std_protocol { + SCMI_PROTOCOL_BASE = 16, + SCMI_PROTOCOL_POWER = 17, + SCMI_PROTOCOL_SYSTEM = 18, + SCMI_PROTOCOL_PERF = 19, + SCMI_PROTOCOL_CLOCK = 20, + SCMI_PROTOCOL_SENSOR = 21, + SCMI_PROTOCOL_RESET = 22, + SCMI_PROTOCOL_VOLTAGE = 23, + SCMI_PROTOCOL_POWERCAP = 24, }; -struct gpiod_lookup_table { - struct list_head list; - const char *dev_id; - struct gpiod_lookup table[0]; +struct scmi_clk { + u32 id; + struct device *dev; + struct clk_hw hw; + const struct scmi_clock_info *info; + const struct scmi_protocol_handle *ph; + struct clk_parent_data *parent_data; }; -enum gpiod_flags { - GPIOD_ASIS = 0, - GPIOD_IN = 1, - GPIOD_OUT_LOW = 3, - GPIOD_OUT_HIGH = 7, - GPIOD_OUT_LOW_OPEN_DRAIN = 11, - GPIOD_OUT_HIGH_OPEN_DRAIN = 15, +struct clk_hw_onecell_data { + unsigned int num; + struct clk_hw *hws[0]; }; -typedef struct { - __u8 b[16]; -} guid_t; - -struct dwc3_pci { - struct platform_device *dwc3; - struct pci_dev *pci; - guid_t guid; - unsigned int has_dsm_for_pm: 1; - struct work_struct wakeup_work; +struct berlin2_pll_map { + const u8 vcodiv[16]; + u8 mult; + u8 fbdiv_shift; + u8 rfdiv_shift; + u8 divsel_shift; }; -struct usb_gadget; +struct berlin2_pll { + struct clk_hw hw; + void *base; + struct berlin2_pll_map map; +}; -struct usb_dcd_config_params; +struct hisi_phase_clock { + unsigned int id; + const char *name; + const char *parent_names; + unsigned long flags; + unsigned long offset; + u8 shift; + u8 width; + u32 *phase_degrees; + u32 *phase_regvals; + u8 phase_num; +}; -struct usb_gadget_driver; +struct clk_div_table { + unsigned int val; + unsigned int div; +}; -struct usb_ep; +struct clk_onecell_data { + struct clk **clks; + unsigned int clk_num; +}; -struct usb_gadget_ops { - int (*get_frame)(struct usb_gadget *); - int (*wakeup)(struct usb_gadget *); - int (*func_wakeup)(struct usb_gadget *, int); - int (*set_remote_wakeup)(struct usb_gadget *, int); - int (*set_selfpowered)(struct usb_gadget *, int); - int (*vbus_session)(struct usb_gadget *, int); - int (*vbus_draw)(struct usb_gadget *, unsigned int); - int (*pullup)(struct usb_gadget *, int); - int (*ioctl)(struct usb_gadget *, unsigned int, unsigned long); - void (*get_config_params)(struct usb_gadget *, struct usb_dcd_config_params *); - int (*udc_start)(struct usb_gadget *, struct usb_gadget_driver *); - int (*udc_stop)(struct usb_gadget *); - void (*udc_set_speed)(struct usb_gadget *, enum usb_device_speed); - void (*udc_set_ssp_rate)(struct usb_gadget *, enum usb_ssp_rate); - void (*udc_async_callbacks)(struct usb_gadget *, bool); - struct usb_ep * (*match_ep)(struct usb_gadget *, struct usb_endpoint_descriptor *, struct usb_ss_ep_comp_descriptor *); - int (*check_config)(struct usb_gadget *); +struct hisi_clock_data { + struct clk_onecell_data clk_data; + void *base; }; -struct usb_udc; +struct hisi_fixed_rate_clock { + unsigned int id; + char *name; + const char *parent_name; + unsigned long flags; + unsigned long fixed_rate; +}; -struct usb_otg_caps; +struct hisi_fixed_factor_clock { + unsigned int id; + char *name; + const char *parent_name; + unsigned long mult; + unsigned long div; + unsigned long flags; +}; -struct usb_gadget { - struct work_struct work; - struct usb_udc *udc; - const struct usb_gadget_ops *ops; - struct usb_ep *ep0; - struct list_head ep_list; - enum usb_device_speed speed; - enum usb_device_speed max_speed; - enum usb_ssp_rate ssp_rate; - enum usb_ssp_rate max_ssp_rate; - enum usb_device_state state; +struct hisi_mux_clock { + unsigned int id; const char *name; - struct device dev; - unsigned int isoch_delay; - unsigned int out_epnum; - unsigned int in_epnum; - unsigned int mA; - struct usb_otg_caps *otg_caps; - unsigned int sg_supported: 1; - unsigned int is_otg: 1; - unsigned int is_a_peripheral: 1; - unsigned int b_hnp_enable: 1; - unsigned int a_hnp_support: 1; - unsigned int a_alt_hnp_support: 1; - unsigned int hnp_polling_support: 1; - unsigned int host_request_flag: 1; - unsigned int quirk_ep_out_aligned_size: 1; - unsigned int quirk_altset_not_supp: 1; - unsigned int quirk_stall_not_supp: 1; - unsigned int quirk_zlp_not_supp: 1; - unsigned int quirk_avoids_skb_reserve: 1; - unsigned int is_selfpowered: 1; - unsigned int deactivated: 1; - unsigned int connected: 1; - unsigned int lpm_capable: 1; - unsigned int wakeup_capable: 1; - unsigned int wakeup_armed: 1; - int irq; - int id_number; + const char * const *parent_names; + u8 num_parents; + unsigned long flags; + unsigned long offset; + u8 shift; + u8 width; + u8 mux_flags; + const u32 *table; + const char *alias; }; -struct usb_ep_caps { - unsigned int type_control: 1; - unsigned int type_iso: 1; - unsigned int type_bulk: 1; - unsigned int type_int: 1; - unsigned int dir_in: 1; - unsigned int dir_out: 1; +struct hisi_divider_clock { + unsigned int id; + const char *name; + const char *parent_name; + unsigned long flags; + unsigned long offset; + u8 shift; + u8 width; + u8 div_flags; + struct clk_div_table *table; + const char *alias; }; -struct usb_ep_ops; - -struct usb_ep { - void *driver_data; +struct hisi_gate_clock { + unsigned int id; const char *name; - const struct usb_ep_ops *ops; - struct list_head ep_list; - struct usb_ep_caps caps; - bool claimed; - bool enabled; - unsigned int maxpacket: 16; - unsigned int maxpacket_limit: 16; - unsigned int max_streams: 16; - unsigned int mult: 2; - unsigned int maxburst: 5; - u8 address; - const struct usb_endpoint_descriptor *desc; - const struct usb_ss_ep_comp_descriptor *comp_desc; + const char *parent_name; + unsigned long flags; + unsigned long offset; + u8 bit_idx; + u8 gate_flags; + const char *alias; }; -struct usb_request; +struct hi6220_divider_clock { + unsigned int id; + const char *name; + const char *parent_name; + unsigned long flags; + unsigned long offset; + u8 shift; + u8 width; + u32 mask_bit; + const char *alias; +}; -struct usb_ep_ops { - int (*enable)(struct usb_ep *, const struct usb_endpoint_descriptor *); - int (*disable)(struct usb_ep *); - void (*dispose)(struct usb_ep *); - struct usb_request * (*alloc_request)(struct usb_ep *, gfp_t); - void (*free_request)(struct usb_ep *, struct usb_request *); - int (*queue)(struct usb_ep *, struct usb_request *, gfp_t); - int (*dequeue)(struct usb_ep *, struct usb_request *); - int (*set_halt)(struct usb_ep *, int); - int (*set_wedge)(struct usb_ep *); - int (*fifo_status)(struct usb_ep *); - void (*fifo_flush)(struct usb_ep *); +struct clk_imx8mp_audiomix_sel { + const char *name; + int clkid; + const struct clk_parent_data parent; + const struct clk_parent_data *parents; + int num_parents; + u16 reg; + u8 width; + u8 shift; }; -struct usb_request { - void *buf; - unsigned int length; - dma_addr_t dma; - struct scatterlist *sg; - unsigned int num_sgs; - unsigned int num_mapped_sgs; - unsigned int stream_id: 16; - unsigned int is_last: 1; - unsigned int no_interrupt: 1; - unsigned int zero: 1; - unsigned int short_not_ok: 1; - unsigned int dma_mapped: 1; - void (*complete)(struct usb_ep *, struct usb_request *); - void *context; - struct list_head list; - unsigned int frame_number; - int status; - unsigned int actual; +enum imx_pll14xx_type { + PLL_1416X = 0, + PLL_1443X = 1, }; -struct usb_otg_caps { - u16 otg_rev; - bool hnp_support; - bool srp_support; - bool adp_support; +struct imx_pll14xx_rate_table; + +struct imx_pll14xx_clk { + enum imx_pll14xx_type type; + const struct imx_pll14xx_rate_table *rate_table; + int rate_count; + int flags; }; -struct usb_dcd_config_params { - __u8 bU1devExitLat; - __le16 bU2DevExitLat; - __u8 besl_baseline; - __u8 besl_deep; +struct imx_pll14xx_rate_table { + unsigned int rate; + unsigned int pdiv; + unsigned int mdiv; + unsigned int sdiv; + unsigned int kdiv; }; -struct usb_ctrlrequest; +struct mtk_gate; -struct usb_gadget_driver { - char *function; - enum usb_device_speed max_speed; - int (*bind)(struct usb_gadget *, struct usb_gadget_driver *); - void (*unbind)(struct usb_gadget *); - int (*setup)(struct usb_gadget *, const struct usb_ctrlrequest *); - void (*disconnect)(struct usb_gadget *); - void (*suspend)(struct usb_gadget *); - void (*resume)(struct usb_gadget *); - void (*reset)(struct usb_gadget *); - struct device_driver driver; - char *udc_name; - unsigned int match_existing_only: 1; - bool is_bound: 1; -}; +struct mtk_composite; -struct usb_ctrlrequest { - __u8 bRequestType; - __u8 bRequest; - __le16 wValue; - __le16 wIndex; - __le16 wLength; -}; +struct mtk_clk_divider; -enum usb_role { - USB_ROLE_NONE = 0, - USB_ROLE_HOST = 1, - USB_ROLE_DEVICE = 2, -}; +struct mtk_fixed_clk; -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 mtk_fixed_factor; + +struct mtk_mux; + +struct mtk_clk_rst_desc; + +struct mtk_clk_desc { + const struct mtk_gate *clks; + size_t num_clks; + const struct mtk_composite *composite_clks; + size_t num_composite_clks; + const struct mtk_clk_divider *divider_clks; + size_t num_divider_clks; + const struct mtk_fixed_clk *fixed_clks; + size_t num_fixed_clks; + const struct mtk_fixed_factor *factor_clks; + size_t num_factor_clks; + const struct mtk_mux *mux_clks; + size_t num_mux_clks; + const struct mtk_clk_rst_desc *rst_desc; + spinlock_t *clk_lock; + bool shared_io; + int (*clk_notifier_func)(struct device *, struct clk *); + unsigned int mfg_clk_idx; }; -enum mtu3_g_ep0_state { - MU3D_EP0_STATE_SETUP = 1, - MU3D_EP0_STATE_TX = 2, - MU3D_EP0_STATE_RX = 3, - MU3D_EP0_STATE_TX_END = 4, - MU3D_EP0_STATE_STALL = 5, +struct mtk_gate_regs; + +struct mtk_gate { + int id; + const char *name; + const char *parent_name; + const struct mtk_gate_regs *regs; + int shift; + const struct clk_ops *ops; + unsigned long flags; }; -struct mtu3_ep; +struct mtk_gate_regs { + u32 sta_ofs; + u32 clr_ofs; + u32 set_ofs; +}; -struct mtu3; +struct mtk_composite { + int id; + const char *name; + const char * const *parent_names; + const char *parent; + unsigned int flags; + uint32_t mux_reg; + uint32_t divider_reg; + uint32_t gate_reg; + signed char mux_shift; + signed char mux_width; + signed char gate_shift; + signed char divider_shift; + signed char divider_width; + u8 mux_flags; + signed char num_parents; +}; -struct qmu_gpd; +struct mtk_clk_divider { + int id; + const char *name; + const char *parent_name; + unsigned long flags; + u32 div_reg; + unsigned char div_shift; + unsigned char div_width; + unsigned char clk_divider_flags; + const struct clk_div_table *clk_div_table; +}; -struct mtu3_request { - struct usb_request request; - struct list_head list; - struct mtu3_ep *mep; - struct mtu3 *mtu; - struct qmu_gpd *gpd; - int epnum; +struct mtk_fixed_clk { + int id; + const char *name; + const char *parent; + unsigned long rate; }; -struct mtu3_gpd_ring { - dma_addr_t dma; - struct qmu_gpd *start; - struct qmu_gpd *end; - struct qmu_gpd *enqueue; - struct qmu_gpd *dequeue; +struct mtk_fixed_factor { + int id; + const char *name; + const char *parent_name; + int mult; + int div; + unsigned long flags; }; -struct mtu3_fifo_info; +struct mtk_mux { + int id; + const char *name; + const char * const *parent_names; + unsigned int flags; + u32 mux_ofs; + u32 set_ofs; + u32 clr_ofs; + u32 upd_ofs; + u8 mux_shift; + u8 mux_width; + u8 gate_shift; + s8 upd_shift; + const struct clk_ops *ops; + signed char num_parents; +}; -struct mtu3_ep { - struct usb_ep ep; - char name[12]; - struct mtu3 *mtu; - u8 epnum; - u8 type; - u8 is_in; - u16 maxp; - int slot; - u32 fifo_size; - u32 fifo_addr; - u32 fifo_seg_size; - struct mtu3_fifo_info *fifo; - struct list_head req_list; - struct mtu3_gpd_ring gpd_ring; - const struct usb_ss_ep_comp_descriptor *comp_desc; - const struct usb_endpoint_descriptor *desc; - int flags; +enum mtk_reset_version { + MTK_RST_SIMPLE = 0, + MTK_RST_SET_CLR = 1, + MTK_RST_MAX = 2, }; -struct mtu3_fifo_info { - u32 base; - u32 limit; - unsigned long bitmap[2]; +struct mtk_clk_rst_desc { + enum mtk_reset_version version; + u16 *rst_bank_ofs; + u32 rst_bank_nr; + u16 *rst_idx_map; + u32 rst_idx_map_nr; }; -struct ssusb_mtk; +struct clk_regmap { + struct clk_hw hw; + struct regmap *regmap; + unsigned int enable_reg; + unsigned int enable_mask; + bool enable_is_inverted; +}; -struct dma_pool; +struct hfpll_data { + u32 mode_reg; + u32 l_reg; + u32 m_reg; + u32 n_reg; + u32 user_reg; + u32 droop_reg; + u32 config_reg; + u32 status_reg; + u8 lock_bit; + u32 l_val; + u32 droop_val; + u32 config_val; + u32 user_val; + u32 user_vco_mask; + unsigned long low_vco_max_rate; + unsigned long min_rate; + unsigned long max_rate; +}; -struct mtu3 { +struct clk_hfpll { + const struct hfpll_data *d; + int init_done; + struct clk_regmap clkr; spinlock_t lock; - struct ssusb_mtk *ssusb; - struct device *dev; - void *mac_base; - void *ippc_base; - int irq; - struct mtu3_fifo_info tx_fifo; - struct mtu3_fifo_info rx_fifo; - struct mtu3_ep *ep_array; - struct mtu3_ep *in_eps; - struct mtu3_ep *out_eps; - struct mtu3_ep *ep0; - int num_eps; - int slot; - int active_ep; - struct dma_pool *qmu_gpd_pool; - enum mtu3_g_ep0_state ep0_state; - struct usb_gadget g; - struct usb_gadget_driver *gadget_driver; - struct mtu3_request ep0_req; - u8 setup_buf[6]; - enum usb_device_speed max_speed; - enum usb_device_speed speed; - unsigned int is_active: 1; - unsigned int may_wakeup: 1; - unsigned int is_self_powered: 1; - unsigned int test_mode: 1; - unsigned int softconnect: 1; - unsigned int u1_enable: 1; - unsigned int u2_enable: 1; - unsigned int u3_capable: 1; - unsigned int delayed_status: 1; - unsigned int gen2cp: 1; - unsigned int connected: 1; - unsigned int async_callbacks: 1; - unsigned int separate_fifo: 1; - u8 address; - u8 test_mode_nr; - u32 hw_version; }; -struct extcon_dev; +struct rockchip_cpuclk_rate_table; -struct usb_role_switch; +struct rockchip_cpuclk_reg_data; -struct otg_switch_mtk { - struct regulator *vbus; - struct extcon_dev *edev; - struct notifier_block id_nb; - struct work_struct dr_work; - enum usb_role desired_role; - enum usb_role default_role; - struct usb_role_switch *role_sw; - bool role_sw_used; - bool is_u3_drd; - bool manual_drd_enabled; +struct rockchip_cpuclk { + struct clk_hw hw; + struct clk *alt_parent; + void *reg_base; + struct notifier_block clk_nb; + unsigned int rate_count; + struct rockchip_cpuclk_rate_table *rate_table; + const struct rockchip_cpuclk_reg_data *reg_data; + spinlock_t *lock; }; -struct ssusb_mtk { - struct device *dev; - struct mtu3 *u3d; - void *mac_base; - void *ippc_base; - struct phy **phys; - int num_phys; - int wakeup_irq; - struct regulator *vusb33; - struct clk_bulk_data clks[6]; - struct otg_switch_mtk otg_switch; - enum usb_dr_mode dr_mode; - bool is_host; - int u2_ports; - int u3_ports; - int u2p_dis_msk; - int u3p_dis_msk; - struct dentry *dbgfs_root; - bool uwk_en; - struct regmap *uwk; - u32 uwk_reg_base; - u32 uwk_vers; +struct rockchip_cpuclk_clksel { + int reg; + u32 val; }; -struct qmu_gpd { - __le32 dw0_info; - __le32 next_gpd; - __le32 buffer; - __le32 dw3_info; +struct rockchip_cpuclk_rate_table { + unsigned long prate; + struct rockchip_cpuclk_clksel divs[6]; + struct rockchip_cpuclk_clksel pre_muxs[6]; + struct rockchip_cpuclk_clksel post_muxs[6]; }; -struct usb_dynids { - spinlock_t lock; - struct list_head list; +struct rockchip_cpuclk_reg_data { + int core_reg[4]; + u8 div_core_shift[4]; + u32 div_core_mask[4]; + int num_cores; + int mux_core_reg; + u8 mux_core_alt; + u8 mux_core_main; + u8 mux_core_shift; + u32 mux_core_mask; }; -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 clk_notifier_data { + struct clk *clk; + unsigned long old_rate; + unsigned long new_rate; }; -struct us_data; - -struct us_unusual_dev { - const char *vendorName; - const char *productName; - __u8 useProtocol; - __u8 useTransport; - int (*initFunction)(struct us_data *); +struct rockchip_inv_clock { + struct clk_hw hw; + void *reg; + int shift; + int flags; + spinlock_t *lock; }; -typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data *); - -typedef int (*trans_reset)(struct us_data *); +struct reset_controller_dev; -typedef void (*proto_cmnd)(struct scsi_cmnd *, struct us_data *); +struct reset_control_ops { + int (*reset)(struct reset_controller_dev *, unsigned long); + int (*assert)(struct reset_controller_dev *, unsigned long); + int (*deassert)(struct reset_controller_dev *, unsigned long); + int (*status)(struct reset_controller_dev *, unsigned long); +}; -struct urb; +struct reset_controller_dev { + const struct reset_control_ops *ops; + struct module *owner; + struct list_head list; + struct list_head reset_control_head; + struct device *dev; + struct device_node *of_node; + int of_reset_n_cells; + int (*of_xlate)(struct reset_controller_dev *, const struct of_phandle_args *); + unsigned int nr_resets; +}; -struct usb_sg_request { - int status; - size_t bytes; +struct rockchip_softrst { + struct reset_controller_dev rcdev; + const int *lut; + void *reg_base; + int num_regs; + int num_per_reg; + u8 flags; 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_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 samsung_pll_clock; -typedef void (*usb_complete_t)(struct urb *); +struct samsung_mux_clock; -struct usb_iso_packet_descriptor { - unsigned int offset; - unsigned int length; - unsigned int actual_length; - int status; -}; +struct samsung_div_clock; -struct usb_anchor; +struct samsung_gate_clock; -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 samsung_fixed_rate_clock; -struct usb_anchor { - struct list_head urb_list; - wait_queue_head_t wait; - spinlock_t lock; - atomic_t suspend_wakeups; - unsigned int poisoned: 1; -}; +struct samsung_fixed_factor_clock; -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, -}; +struct samsung_cpu_clock; -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, -}; +struct samsung_clk_reg_dump; -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, +struct samsung_cmu_info { + const struct samsung_pll_clock *pll_clks; + unsigned int nr_pll_clks; + const struct samsung_mux_clock *mux_clks; + unsigned int nr_mux_clks; + const struct samsung_div_clock *div_clks; + unsigned int nr_div_clks; + const struct samsung_gate_clock *gate_clks; + unsigned int nr_gate_clks; + const struct samsung_fixed_rate_clock *fixed_clks; + unsigned int nr_fixed_clks; + const struct samsung_fixed_factor_clock *fixed_factor_clks; + unsigned int nr_fixed_factor_clks; + unsigned int nr_clk_ids; + const struct samsung_cpu_clock *cpu_clks; + unsigned int nr_cpu_clks; + const unsigned long *clk_regs; + unsigned int nr_clk_regs; + const struct samsung_clk_reg_dump *suspend_regs; + unsigned int nr_suspend_regs; + const char *clk_name; }; -struct driver_attribute { - struct attribute attr; - ssize_t (*show)(struct device_driver *, char *); - ssize_t (*store)(struct device_driver *, const char *, size_t); +enum samsung_pll_type { + pll_2126 = 0, + pll_3000 = 1, + pll_35xx = 2, + pll_36xx = 3, + pll_2550 = 4, + pll_2650 = 5, + pll_4500 = 6, + pll_4502 = 7, + pll_4508 = 8, + pll_4600 = 9, + pll_4650 = 10, + pll_4650c = 11, + pll_6552 = 12, + pll_6552_s3c2416 = 13, + pll_6553 = 14, + pll_2550x = 15, + pll_2550xx = 16, + pll_2650x = 17, + pll_2650xx = 18, + pll_1417x = 19, + pll_1450x = 20, + pll_1451x = 21, + pll_1452x = 22, + pll_1460x = 23, + pll_0818x = 24, + pll_0822x = 25, + pll_0831x = 26, + pll_142xx = 27, }; -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 samsung_pll_rate_table; -struct serio_device_id { - __u8 type; - __u8 extra; - __u8 id; - __u8 proto; +struct samsung_pll_clock { + unsigned int id; + const char *name; + const char *parent_name; + unsigned long flags; + int con_offset; + int lock_offset; + enum samsung_pll_type type; + const struct samsung_pll_rate_table *rate_table; }; -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 samsung_pll_rate_table { + unsigned int rate; + unsigned int pdiv; + unsigned int mdiv; + unsigned int sdiv; + unsigned int kdiv; + unsigned int afc; + unsigned int mfr; + unsigned int mrr; + unsigned int vsel; }; -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 samsung_mux_clock { + unsigned int id; + const char *name; + const char * const *parent_names; + u8 num_parents; + unsigned long flags; + unsigned long offset; + u8 shift; + u8 width; + u8 mux_flags; }; -struct serio_event { - enum serio_event_type type; - void *object; - struct module *owner; - struct list_head node; +struct samsung_div_clock { + unsigned int id; + const char *name; + const char *parent_name; + unsigned long flags; + unsigned long offset; + u8 shift; + u8 width; + u8 div_flags; + struct clk_div_table *table; }; -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 samsung_gate_clock { + unsigned int id; + const char *name; + const char *parent_name; + unsigned long flags; + unsigned long offset; + u8 bit_idx; + u8 gate_flags; }; -enum nvmem_type { - NVMEM_TYPE_UNKNOWN = 0, - NVMEM_TYPE_EEPROM = 1, - NVMEM_TYPE_OTP = 2, - NVMEM_TYPE_BATTERY_BACKED = 3, - NVMEM_TYPE_FRAM = 4, +struct samsung_fixed_rate_clock { + unsigned int id; + char *name; + const char *parent_name; + unsigned long flags; + unsigned long fixed_rate; }; -typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t); - -typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t); - -struct nvmem_cell_info; - -struct nvmem_keepout; - -struct nvmem_layout; - -struct nvmem_config { - struct device *dev; - const char *name; - int id; - struct module *owner; - const struct nvmem_cell_info *cells; - int ncells; - const struct nvmem_keepout *keepout; - unsigned int nkeepout; - enum nvmem_type type; - bool read_only; - bool root_only; - bool ignore_wp; - struct nvmem_layout *layout; - struct device_node *of_node; - bool no_of_node; - nvmem_reg_read_t reg_read; - nvmem_reg_write_t reg_write; - int size; - int word_size; - int stride; - void *priv; - bool compat; - struct device *base_dev; +struct samsung_fixed_factor_clock { + unsigned int id; + char *name; + const char *parent_name; + unsigned long mult; + unsigned long div; + unsigned long flags; }; -typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); +struct exynos_cpuclk_cfg_data; -struct nvmem_cell_info { +struct samsung_cpu_clock { + unsigned int id; const char *name; - unsigned int offset; - size_t raw_len; - unsigned int bytes; - unsigned int bit_offset; - unsigned int nbits; - struct device_node *np; - nvmem_cell_post_process_t read_post_process; - void *priv; + unsigned int parent_id; + unsigned int alt_parent_id; + unsigned long flags; + int offset; + const struct exynos_cpuclk_cfg_data *cfg; }; -struct nvmem_keepout { - unsigned int start; - unsigned int end; - unsigned char value; +struct exynos_cpuclk_cfg_data { + unsigned long prate; + unsigned long div0; + unsigned long div1; }; -struct nvmem_layout { - const char *name; - const struct of_device_id *of_match_table; - int (*add_cells)(struct device *, struct nvmem_device *, struct nvmem_layout *); - void (*fixup_cell_info)(struct nvmem_device *, struct nvmem_layout *, struct nvmem_cell_info *); - struct module *owner; - struct list_head node; +struct samsung_clk_reg_dump { + u32 offset; + u32 value; }; -struct rtc_device; - -struct rtc_timer { - struct timerqueue_node node; - ktime_t period; - void (*func)(struct rtc_device *); - struct rtc_device *rtc; - int enabled; +struct samsung_clk_provider { + void *reg_base; + struct device *dev; + spinlock_t lock; + struct clk_hw_onecell_data clk_data; }; -typedef __u64 timeu64_t; - -struct rtc_class_ops; +struct ccu_common; -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 ccu_pll_nb { + struct notifier_block clk_nb; + struct ccu_common *common; + u32 enable; + u32 lock; }; -struct rtc_wkalrm; - -struct rtc_param; - -struct rtc_class_ops { - int (*ioctl)(struct device *, unsigned int, unsigned long); - int (*read_time)(struct device *, struct rtc_time *); - int (*set_time)(struct device *, struct rtc_time *); - int (*read_alarm)(struct device *, struct rtc_wkalrm *); - int (*set_alarm)(struct device *, struct rtc_wkalrm *); - int (*proc)(struct device *, struct seq_file *); - int (*alarm_irq_enable)(struct device *, unsigned int); - int (*read_offset)(struct device *, long *); - int (*set_offset)(struct device *, long); - int (*param_get)(struct device *, struct rtc_param *); - int (*param_set)(struct device *, struct rtc_param *); +struct ccu_common { + void *base; + u16 reg; + u16 lock_reg; + u32 prediv; + unsigned long features; + spinlock_t *lock; + struct clk_hw hw; }; -struct rtc_wkalrm { - unsigned char enabled; - unsigned char pending; - struct rtc_time time; -}; +struct ccu_reset_map; -struct rtc_param { - __u64 param; - union { - __u64 uvalue; - __s64 svalue; - __u64 ptr; - }; - __u32 index; - __u32 __pad; +struct sunxi_ccu_desc { + struct ccu_common **ccu_clks; + unsigned long num_ccu_clks; + struct clk_hw_onecell_data *hw_clks; + struct ccu_reset_map *resets; + unsigned long num_resets; }; -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 ccu_reset_map { + u16 reg; + u32 bit; }; -struct dw_i2c_dev { - struct device *dev; - struct regmap *map; - struct regmap *sysmap; +struct ccu_reset { void *base; - void *ext; - struct completion cmd_complete; - struct clk *clk; - struct clk *pclk; - struct reset_control *rst; - struct i2c_client *slave; - u32 (*get_clk_rate_khz)(struct dw_i2c_dev *); - int cmd_err; - struct i2c_msg *msgs; - int msgs_num; - int msg_write_idx; - u32 tx_buf_len; - u8 *tx_buf; - int msg_read_idx; - u32 rx_buf_len; - u8 *rx_buf; - int msg_err; - unsigned int status; - unsigned int abort_source; - int irq; - u32 flags; - struct i2c_adapter adapter; - u32 functionality; - u32 master_cfg; - u32 slave_cfg; - unsigned int tx_fifo_depth; - unsigned int rx_fifo_depth; - int rx_outstanding; - struct i2c_timings timings; - u32 sda_hold_time; - u16 ss_hcnt; - u16 ss_lcnt; - u16 fs_hcnt; - u16 fs_lcnt; - u16 fp_hcnt; - u16 fp_lcnt; - u16 hs_hcnt; - u16 hs_lcnt; - int (*acquire_lock)(); - void (*release_lock)(); - int semaphore_idx; - bool shared_with_punit; - void (*disable)(struct dw_i2c_dev *); - int (*init)(struct dw_i2c_dev *); - int (*set_sda_hold_time)(struct dw_i2c_dev *); - int mode; - struct i2c_bus_recovery_info rinfo; + struct ccu_reset_map *reset_map; + spinlock_t *lock; + struct reset_controller_dev rcdev; }; -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 sunxi_ccu { + const struct sunxi_ccu_desc *desc; + spinlock_t lock; + struct ccu_reset reset; }; -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 reg_offset_data { + u32 base_offset; + unsigned int pipe_mult; + unsigned int evnt_mult; + unsigned int ee_mult; }; -struct posix_clock { - struct posix_clock_operations ops; - struct cdev cdev; - struct device *dev; - struct rw_semaphore rwsem; - bool zombie; +enum dma_desc_metadata_mode { + DESC_METADATA_NONE = 0, + DESC_METADATA_CLIENT = 1, + DESC_METADATA_ENGINE = 2, }; -struct ptp_extts_event { - struct ptp_clock_time t; - unsigned int index; - unsigned int flags; - unsigned int rsv[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, }; -struct timestamp_event_queue { - struct ptp_extts_event buf[128]; - int head; - int tail; - spinlock_t lock; +enum dma_residue_granularity { + DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, + DMA_RESIDUE_GRANULARITY_SEGMENT = 1, + DMA_RESIDUE_GRANULARITY_BURST = 2, }; -struct kthread_delayed_work { - struct kthread_work work; - struct timer_list timer; +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, }; -struct pps_device; +enum dmaengine_tx_result { + DMA_TRANS_NOERROR = 0, + DMA_TRANS_READ_FAILED = 1, + DMA_TRANS_WRITE_FAILED = 2, + DMA_TRANS_ABORTED = 3, +}; -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; +enum sum_check_flags { + SUM_CHECK_P_RESULT = 1, + SUM_CHECK_Q_RESULT = 2, }; -struct __kernel_timex_timeval { - __kernel_time64_t tv_sec; - long long tv_usec; +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, }; -struct __kernel_timex { - unsigned int modes; - long long offset; - long long freq; - long long maxerror; - long long esterror; - int status; - long long constant; - long long precision; - long long tolerance; - struct __kernel_timex_timeval time; - long long tick; - long long ppsfreq; - long long jitter; - int shift; - long long stabil; - long long jitcnt; - long long calcnt; - long long errcnt; - long long stbcnt; - int tai; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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, }; -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; +enum dma_status { + DMA_COMPLETE = 0, + DMA_IN_PROGRESS = 1, + DMA_PAUSED = 2, + DMA_ERROR = 3, + DMA_OUT_OF_ORDER = 4, }; -struct pps_ktime { - __s64 sec; - __s32 nsec; - __u32 flags; +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, }; -struct pps_kparams { - int api_version; - int mode; - struct pps_ktime assert_off_tu; - struct pps_ktime clear_off_tu; +enum bam_reg { + BAM_CTRL = 0, + BAM_REVISION = 1, + BAM_NUM_PIPES = 2, + BAM_DESC_CNT_TRSHLD = 3, + BAM_IRQ_SRCS = 4, + BAM_IRQ_SRCS_MSK = 5, + BAM_IRQ_SRCS_UNMASKED = 6, + BAM_IRQ_STTS = 7, + BAM_IRQ_CLR = 8, + BAM_IRQ_EN = 9, + BAM_CNFG_BITS = 10, + BAM_IRQ_SRCS_EE = 11, + BAM_IRQ_SRCS_MSK_EE = 12, + BAM_P_CTRL = 13, + BAM_P_RST = 14, + BAM_P_HALT = 15, + BAM_P_IRQ_STTS = 16, + BAM_P_IRQ_CLR = 17, + BAM_P_IRQ_EN = 18, + BAM_P_EVNT_DEST_ADDR = 19, + BAM_P_EVNT_REG = 20, + BAM_P_SW_OFSTS = 21, + BAM_P_DATA_FIFO_ADDR = 22, + BAM_P_DESC_FIFO_ADDR = 23, + BAM_P_EVNT_GEN_TRSHLD = 24, + BAM_P_FIFO_SIZES = 25, }; -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; +enum { + TASKLET_STATE_SCHED = 0, + TASKLET_STATE_RUN = 1, }; -struct tsens_ops; +struct dma_chan; -struct tsens_features; +typedef bool (*dma_filter_fn)(struct dma_chan *, void *); -struct reg_field; +struct dma_slave_map; -struct tsens_plat_data { - const u32 num_sensors; - const struct tsens_ops *ops; - unsigned int *hw_ids; - struct tsens_features *feat; - const struct reg_field *fields; +struct dma_filter { + dma_filter_fn fn; + int mapcnt; + const struct dma_slave_map *map; }; -struct tsens_priv; +typedef struct { + unsigned long bits[1]; +} dma_cap_mask_t; -struct tsens_sensor; +typedef s32 dma_cookie_t; -struct tsens_ops { - int (*init)(struct tsens_priv *); - int (*calibrate)(struct tsens_priv *); - int (*get_temp)(const struct tsens_sensor *, int *); - int (*enable)(struct tsens_priv *, int); - void (*disable)(struct tsens_priv *); - int (*suspend)(struct tsens_priv *); - int (*resume)(struct tsens_priv *); -}; +struct dma_async_tx_descriptor; -struct tsens_context { - int threshold; - int control; -}; +struct dma_interleaved_template; -struct tsens_sensor { - struct tsens_priv *priv; - struct thermal_zone_device *tzd; - int offset; - unsigned int hw_id; - int slope; - u32 status; - int p1_calib_offset; - int p2_calib_offset; -}; +struct dma_slave_caps; -struct regmap_field; +struct dma_slave_config; -struct tsens_priv { - struct device *dev; - u32 num_sensors; - struct regmap *tm_map; - struct regmap *srot_map; - u32 tm_offset; - spinlock_t ul_lock; - struct regmap_field *rf[320]; - struct tsens_context ctx; - struct tsens_features *feat; - const struct reg_field *fields; - const struct tsens_ops *ops; - struct dentry *debug_root; - struct dentry *debug; - struct tsens_sensor sensor[0]; -}; +struct dma_tx_state; -struct tsens_features { - unsigned int ver_major; - unsigned int crit_int: 1; - unsigned int combo_int: 1; - unsigned int adc: 1; - unsigned int srot_split: 1; - unsigned int has_watchdog: 1; - unsigned int max_sensors; - int trip_min_temp; - int trip_max_temp; +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 reg_field { - unsigned int reg; - unsigned int lsb; - unsigned int msb; - unsigned int id_size; - unsigned int id_offset; +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; }; -enum thermal_device_mode { - THERMAL_DEVICE_DISABLED = 0, - THERMAL_DEVICE_ENABLED = 1, -}; +struct bam_chan; -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 bam_device { + void *regs; + struct device *dev; + struct dma_device common; + struct bam_chan *channels; + u32 num_channels; + u32 num_ees; + u32 ee; + bool controlled_remotely; + bool powered_remotely; + u32 active_channels; + const struct reg_offset_data *layout; + struct clk *bamclk; + int irq; + struct tasklet_struct task; }; -struct thermal_attr; - -struct thermal_trip; - -struct thermal_zone_device_ops; - -struct thermal_zone_params; - -struct thermal_governor; +struct dma_chan_dev; -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 dma_chan_percpu; -enum thermal_trip_type { - THERMAL_TRIP_ACTIVE = 0, - THERMAL_TRIP_PASSIVE = 1, - THERMAL_TRIP_HOT = 2, - THERMAL_TRIP_CRITICAL = 3, -}; +struct dma_router; -struct thermal_trip { - int temperature; - int hysteresis; - enum thermal_trip_type type; +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; }; -enum thermal_trend { - THERMAL_TREND_STABLE = 0, - THERMAL_TREND_RAISING = 1, - THERMAL_TREND_DROPPING = 2, +struct dma_chan_dev { + struct dma_chan *chan; + struct device device; + int dev_id; + bool chan_dma_dev; }; -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 dma_chan_percpu { + unsigned long memcpy_count; + unsigned long bytes_transferred; }; -struct thermal_zone_params { - char governor_name[20]; - bool no_hwmon; - u32 sustainable_power; - s32 k_po; - s32 k_pu; - s32 k_i; - s32 k_d; - s32 integral_cutoff; - int slope; - int offset; +struct dma_router { + struct device *dev; + void (*route_free)(struct device *, void *); }; -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 dma_slave_map { + const char *devname; + const char *slave; + void *param; }; -struct edac_device_counter { - u32 ue_count; - u32 ce_count; -}; +typedef void (*dma_async_tx_callback)(void *); -struct edac_dev_sysfs_attribute; +struct dmaengine_result; -struct edac_device_instance; +typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); -struct edac_device_block; +struct dmaengine_unmap_data; -struct edac_dev_sysfs_block_attribute; +struct dma_descriptor_metadata_ops; -struct edac_device_ctl_info { - struct list_head link; - struct module *owner; - int dev_idx; - int log_ue; - int log_ce; - int panic_on_ue; - unsigned int poll_msec; - unsigned long delay; - struct edac_dev_sysfs_attribute *sysfs_attributes; - struct bus_type *edac_subsys; - int op_state; - struct delayed_work work; - void (*edac_check)(struct edac_device_ctl_info *); - struct device *dev; - const char *mod_name; - const char *ctl_name; - const char *dev_name; - void *pvt_info; - unsigned long start_time; - struct completion removal_complete; - char name[32]; - u32 nr_instances; - struct edac_device_instance *instances; - struct edac_device_block *blocks; - struct edac_dev_sysfs_block_attribute *attribs; - struct edac_device_counter counters; - struct kobject kobj; +struct dma_async_tx_descriptor { + dma_cookie_t cookie; + enum dma_ctrl_flags flags; + dma_addr_t phys; + struct dma_chan *chan; + dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *); + int (*desc_free)(struct dma_async_tx_descriptor *); + dma_async_tx_callback callback; + dma_async_tx_callback_result callback_result; + void *callback_param; + struct dmaengine_unmap_data *unmap; + enum dma_desc_metadata_mode desc_metadata_mode; + struct dma_descriptor_metadata_ops *metadata_ops; + struct dma_async_tx_descriptor *next; + struct dma_async_tx_descriptor *parent; + spinlock_t lock; }; -struct edac_dev_sysfs_attribute { - struct attribute attr; - ssize_t (*show)(struct edac_device_ctl_info *, char *); - ssize_t (*store)(struct edac_device_ctl_info *, const char *, size_t); +struct dmaengine_result { + enum dmaengine_tx_result result; + u32 residue; }; -struct edac_device_instance { - struct edac_device_ctl_info *ctl; - char name[35]; - struct edac_device_counter counters; - u32 nr_blocks; - struct edac_device_block *blocks; - struct kobject kobj; +struct dmaengine_unmap_data { + u16 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 edac_device_block { - struct edac_device_instance *instance; - char name[32]; - struct edac_device_counter counters; - int nr_attribs; - struct edac_dev_sysfs_block_attribute *block_attributes; - struct kobject kobj; +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 edac_dev_sysfs_block_attribute { - struct attribute attr; - ssize_t (*show)(struct kobject *, struct attribute *, char *); - ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); - struct edac_device_block *block; - unsigned int value; +struct data_chunk { + size_t size; + size_t icg; + size_t dst_icg; + size_t src_icg; }; -struct cpufreq_policy; - -struct cpufreq_policy_data; - -struct freq_attr; +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 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 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 cpufreq_cpuinfo { - unsigned int max_freq; - unsigned int min_freq; - unsigned int transition_latency; +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; }; -enum cpufreq_table_sorting { - CPUFREQ_TABLE_UNSORTED = 0, - CPUFREQ_TABLE_SORTED_ASCENDING = 1, - CPUFREQ_TABLE_SORTED_DESCENDING = 2, +struct dma_tx_state { + dma_cookie_t last; + dma_cookie_t used; + u32 residue; + u32 in_flight_bytes; }; -struct cpufreq_governor; +struct virt_dma_desc; -struct cpufreq_frequency_table; +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 cpufreq_stats; +struct bam_desc_hw; -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 bam_chan { + struct virt_dma_chan vc; + struct bam_device *bdev; + u32 id; + struct dma_slave_config slave; + struct bam_desc_hw *fifo_virt; + dma_addr_t fifo_phys; + unsigned short head; + unsigned short tail; + unsigned int initialized; + unsigned int paused; + unsigned int reconfigure; + struct list_head desc_list; + struct list_head node; }; -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 virt_dma_desc { + struct dma_async_tx_descriptor tx; + struct dmaengine_result tx_result; + struct list_head node; }; -struct cpufreq_frequency_table { - unsigned int flags; - unsigned int driver_data; - unsigned int frequency; +struct bam_desc_hw { + __le32 addr; + __le16 size; + __le16 flags; }; -struct cpufreq_policy_data { - struct cpufreq_cpuinfo cpuinfo; - struct cpufreq_frequency_table *freq_table; - unsigned int cpu; - unsigned int min; - unsigned int max; +struct bam_async_desc { + struct virt_dma_desc vd; + u32 num_desc; + u32 xfer_len; + u16 flags; + struct bam_desc_hw *curr_desc; + struct list_head desc_node; + enum dma_transfer_direction dir; + size_t length; + struct bam_desc_hw desc[0]; }; -struct freq_attr { - struct attribute attr; - ssize_t (*show)(struct cpufreq_policy *, char *); - ssize_t (*store)(struct cpufreq_policy *, const char *, size_t); +struct of_dma { + struct list_head of_dma_controllers; + struct device_node *of_node; + struct dma_chan * (*of_dma_xlate)(struct of_phandle_args *, struct of_dma *); + void * (*of_dma_route_allocate)(struct of_phandle_args *, struct of_dma *); + struct dma_router *dma_router; + void *of_dma_data; }; -struct clk { - struct clk_core *core; - struct device *dev; - const char *dev_id; - const char *con_id; - unsigned long min_rate; - unsigned long max_rate; - unsigned int exclusive_count; - struct hlist_node clks_node; +struct dmaengine_desc_callback { + dma_async_tx_callback callback; + dma_async_tx_callback_result callback_result; + void *callback_param; }; -struct cpu_data { - struct clk **pclk; - struct cpufreq_frequency_table *table; +struct imx8_soc_data { + char *name; + u32 (*soc_revision)(); }; struct soc_device_attribute { @@ -37358,37634 +32969,37336 @@ struct soc_device_attribute { const struct attribute_group *custom_attr_group; }; -struct sdhci_pltfm_data; - -struct sdhci_am654_driver_data { - const struct sdhci_pltfm_data *pdata; - u32 flags; +struct smem_partition { + void *virt_base; + phys_addr_t phys_base; + size_t cacheline; + size_t size; }; -struct sdhci_ops; - -struct sdhci_pltfm_data { - const struct sdhci_ops *ops; - unsigned int quirks; - unsigned int quirks2; +struct smem_region { + phys_addr_t aux_base; + void *virt_base; + size_t size; }; -struct sdhci_host; - -struct mmc_command; +struct hwspinlock; -struct mmc_data; +struct smem_ptable; -struct mmc_request; +struct qcom_smem { + struct device *dev; + struct hwspinlock *hwlock; + u32 item_count; + struct platform_device *socinfo; + struct smem_ptable *ptable; + struct smem_partition global_partition; + struct smem_partition partitions[20]; + unsigned int num_regions; + struct smem_region regions[0]; +}; -struct sdhci_ops { - u32 (*read_l)(struct sdhci_host *, int); - u16 (*read_w)(struct sdhci_host *, int); - u8 (*read_b)(struct sdhci_host *, int); - void (*write_l)(struct sdhci_host *, u32, int); - void (*write_w)(struct sdhci_host *, u16, int); - void (*write_b)(struct sdhci_host *, u8, int); - void (*set_clock)(struct sdhci_host *, unsigned int); - void (*set_power)(struct sdhci_host *, unsigned char, unsigned short); - u32 (*irq)(struct sdhci_host *, u32); - int (*set_dma_mask)(struct sdhci_host *); - int (*enable_dma)(struct sdhci_host *); - unsigned int (*get_max_clock)(struct sdhci_host *); - unsigned int (*get_min_clock)(struct sdhci_host *); - unsigned int (*get_timeout_clock)(struct sdhci_host *); - unsigned int (*get_max_timeout_count)(struct sdhci_host *); - void (*set_timeout)(struct sdhci_host *, struct mmc_command *); - void (*set_bus_width)(struct sdhci_host *, int); - void (*platform_send_init_74_clocks)(struct sdhci_host *, u8); - unsigned int (*get_ro)(struct sdhci_host *); - void (*reset)(struct sdhci_host *, u8); - int (*platform_execute_tuning)(struct sdhci_host *, u32); - void (*set_uhs_signaling)(struct sdhci_host *, unsigned int); - void (*hw_reset)(struct sdhci_host *); - void (*adma_workaround)(struct sdhci_host *, u32); - void (*card_event)(struct sdhci_host *); - void (*voltage_switch)(struct sdhci_host *); - void (*adma_write_desc)(struct sdhci_host *, void **, dma_addr_t, int, unsigned int); - void (*copy_to_bounce_buffer)(struct sdhci_host *, struct mmc_data *, unsigned int); - void (*request_done)(struct sdhci_host *, struct mmc_request *); - void (*dump_vendor_regs)(struct sdhci_host *); +struct smem_ptable_entry { + __le32 offset; + __le32 size; + __le32 flags; + __le16 host0; + __le16 host1; + __le32 cacheline; + __le32 reserved[7]; }; -struct mmc_host; +struct smem_ptable { + u8 magic[4]; + __le32 version; + __le32 num_entries; + __le32 reserved[5]; + struct smem_ptable_entry entry[0]; +}; -struct mmc_ios; +struct smem_partition_header { + u8 magic[4]; + __le16 host0; + __le16 host1; + __le32 size; + __le32 offset_free_uncached; + __le32 offset_free_cached; + __le32 reserved[3]; +}; -struct mmc_card; +struct smem_info { + u8 magic[4]; + __le32 size; + __le32 base_addr; + __le32 reserved; + __le16 num_items; +}; -struct mmc_host_ops { - void (*post_req)(struct mmc_host *, struct mmc_request *, int); - void (*pre_req)(struct mmc_host *, struct mmc_request *); - void (*request)(struct mmc_host *, struct mmc_request *); - int (*request_atomic)(struct mmc_host *, struct mmc_request *); - void (*set_ios)(struct mmc_host *, struct mmc_ios *); - int (*get_ro)(struct mmc_host *); - int (*get_cd)(struct mmc_host *); - void (*enable_sdio_irq)(struct mmc_host *, int); - void (*ack_sdio_irq)(struct mmc_host *); - void (*init_card)(struct mmc_host *, struct mmc_card *); - int (*start_signal_voltage_switch)(struct mmc_host *, struct mmc_ios *); - int (*card_busy)(struct mmc_host *); - int (*execute_tuning)(struct mmc_host *, u32); - int (*prepare_hs400_tuning)(struct mmc_host *, struct mmc_ios *); - int (*execute_hs400_tuning)(struct mmc_host *, struct mmc_card *); - int (*hs400_prepare_ddr)(struct mmc_host *); - void (*hs400_downgrade)(struct mmc_host *); - void (*hs400_complete)(struct mmc_host *); - void (*hs400_enhanced_strobe)(struct mmc_host *, struct mmc_ios *); - int (*select_drive_strength)(struct mmc_card *, unsigned int, int, int, int *); - void (*card_hw_reset)(struct mmc_host *); - void (*card_event)(struct mmc_host *); - int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); - int (*init_sd_express)(struct mmc_host *, struct mmc_ios *); +struct smem_global_entry { + __le32 allocated; + __le32 offset; + __le32 size; + __le32 aux_base; }; -struct sg_page_iter { - struct scatterlist *sg; - unsigned int sg_pgoffset; - unsigned int __nents; - int __pg_advance; +struct smem_proc_comm { + __le32 command; + __le32 status; + __le32 params[2]; }; -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; +struct smem_header { + struct smem_proc_comm proc_comm[4]; + __le32 version[32]; + __le32 initialized; + __le32 free_offset; + __le32 available; + __le32 reserved; + struct smem_global_entry toc[512]; }; -struct sdhci_host { - const char *hw_name; - unsigned int quirks; - unsigned int quirks2; - int irq; - void *ioaddr; - phys_addr_t mapbase; - char *bounce_buffer; - dma_addr_t bounce_addr; - unsigned int bounce_buffer_size; - const struct sdhci_ops *ops; - struct mmc_host *mmc; - struct mmc_host_ops mmc_host_ops; - u64 dma_mask; - struct led_classdev led; - char led_name[32]; - spinlock_t lock; - int flags; - unsigned int version; - unsigned int max_clk; - unsigned int timeout_clk; - u8 max_timeout_count; - unsigned int clk_mul; - unsigned int clock; - u8 pwr; - u8 drv_type; - bool reinit_uhs; - bool runtime_suspended; - bool bus_on; - bool preset_enabled; - bool pending_reset; - bool irq_wake_enabled; - bool v4_mode; - bool use_external_dma; - bool always_defer_done; - struct mmc_request *mrqs_done[2]; - struct mmc_command *cmd; - struct mmc_command *data_cmd; - struct mmc_command *deferred_cmd; - struct mmc_data *data; - unsigned int data_early: 1; - struct sg_mapping_iter sg_miter; - unsigned int blocks; - int sg_count; - int max_adma; - void *adma_table; - void *align_buffer; - size_t adma_table_sz; - size_t align_buffer_sz; - dma_addr_t adma_addr; - dma_addr_t align_addr; - unsigned int desc_sz; - unsigned int alloc_desc_sz; - struct workqueue_struct *complete_wq; - struct work_struct complete_work; - struct timer_list timer; - struct timer_list data_timer; - u32 caps; - u32 caps1; - bool read_caps; - bool sdhci_core_to_disable_vqmmc; - unsigned int ocr_avail_sdio; - unsigned int ocr_avail_sd; - unsigned int ocr_avail_mmc; - u32 ocr_mask; - unsigned int timing; - u32 thread_isr; - u32 ier; - bool cqe_on; - u32 cqe_ier; - u32 cqe_err_ier; - wait_queue_head_t buf_ready_int; - unsigned int tuning_done; - unsigned int tuning_count; - unsigned int tuning_mode; - unsigned int tuning_err; - int tuning_delay; - int tuning_loop_count; - u32 sdma_boundary; - u32 adma_table_cnt; - u64 data_timeout; - long: 64; - unsigned long private[0]; +struct smem_private_entry { + u16 canary; + __le16 item; + __le32 size; + __le16 padding_data; + __le16 padding_hdr; + __le32 reserved; }; -typedef unsigned int mmc_pm_flag_t; +struct reserved_mem_ops; -struct mmc_ios { - unsigned int clock; - unsigned short vdd; - unsigned int power_delay_ms; - unsigned char bus_mode; - unsigned char chip_select; - unsigned char power_mode; - unsigned char bus_width; - unsigned char timing; - unsigned char signal_voltage; - unsigned char drv_type; - bool enhanced_strobe; +struct reserved_mem { + const char *name; + unsigned long fdt_node; + unsigned long phandle; + const struct reserved_mem_ops *ops; + phys_addr_t base; + phys_addr_t size; + void *priv; }; -struct mmc_ctx { - struct task_struct *task; +struct reserved_mem_ops { + int (*device_init)(struct reserved_mem *, struct device *); + void (*device_release)(struct reserved_mem *, struct device *); }; -struct mmc_slot { - int cd_irq; - bool cd_wake_enabled; - void *handler_priv; +struct socinfo { + __le32 fmt; + __le32 id; + __le32 ver; + char build_id[32]; + __le32 raw_id; + __le32 raw_ver; + __le32 hw_plat; + __le32 plat_ver; + __le32 accessory_chip; + __le32 hw_plat_subtype; + __le32 pmic_model; + __le32 pmic_die_rev; + __le32 pmic_model_1; + __le32 pmic_die_rev_1; + __le32 pmic_model_2; + __le32 pmic_die_rev_2; + __le32 foundry_id; + __le32 serial_num; + __le32 num_pmics; + __le32 pmic_array_offset; + __le32 chip_family; + __le32 raw_device_family; + __le32 raw_device_num; + __le32 nproduct_id; + char chip_id[32]; + __le32 num_clusters; + __le32 ncluster_array_offset; + __le32 num_subset_parts; + __le32 nsubset_parts_array_offset; + __le32 nmodem_supported; + __le32 feature_code; + __le32 pcode; + __le32 npartnamemap_offset; + __le32 nnum_partname_mapping; + __le32 oem_variant; + __le32 num_kvps; + __le32 kvps_offset; + __le32 num_func_clusters; + __le32 boot_cluster; + __le32 boot_core; }; -struct mmc_supply { - struct regulator *vmmc; - struct regulator *vqmmc; +struct pm_domain_data { + struct list_head list_node; + struct device *dev; }; -struct mmc_pwrseq; - -struct mmc_bus_ops; - -struct mmc_cqe_ops; +struct rpmhpd; -struct mmc_host { - struct device *parent; - struct device class_dev; - int index; - const struct mmc_host_ops *ops; - struct mmc_pwrseq *pwrseq; - unsigned int f_min; - unsigned int f_max; - unsigned int f_init; - u32 ocr_avail; - u32 ocr_avail_sdio; - u32 ocr_avail_sd; - u32 ocr_avail_mmc; - struct wakeup_source *ws; - u32 max_current_330; - u32 max_current_300; - u32 max_current_180; - u32 caps; - u32 caps2; - int fixed_drv_type; - mmc_pm_flag_t pm_caps; - unsigned int max_seg_size; - unsigned short max_segs; - unsigned short unused; - unsigned int max_req_size; - unsigned int max_blk_size; - unsigned int max_blk_count; - unsigned int max_busy_timeout; - spinlock_t lock; - struct mmc_ios ios; - unsigned int use_spi_crc: 1; - unsigned int claimed: 1; - unsigned int doing_init_tune: 1; - unsigned int can_retune: 1; - unsigned int doing_retune: 1; - unsigned int retune_now: 1; - unsigned int retune_paused: 1; - unsigned int retune_crc_disable: 1; - unsigned int can_dma_map_merge: 1; - unsigned int vqmmc_enabled: 1; - int rescan_disable; - int rescan_entered; - int need_retune; - int hold_retune; - unsigned int retune_period; - struct timer_list retune_timer; - bool trigger_card_event; - struct mmc_card *card; - wait_queue_head_t wq; - struct mmc_ctx *claimer; - int claim_cnt; - struct mmc_ctx default_ctx; - struct delayed_work detect; - int detect_change; - struct mmc_slot slot; - const struct mmc_bus_ops *bus_ops; - unsigned int sdio_irqs; - struct task_struct *sdio_irq_thread; - struct work_struct sdio_irq_work; - bool sdio_irq_pending; - atomic_t sdio_irq_thread_abort; - mmc_pm_flag_t pm_flags; - struct led_trigger *led; - bool regulator_enabled; - struct mmc_supply supply; - struct dentry *debugfs_root; - struct mmc_request *ongoing_mrq; - unsigned int actual_clock; - unsigned int slotno; - int dsr_req; - u32 dsr; - const struct mmc_cqe_ops *cqe_ops; - void *cqe_private; - int cqe_qdepth; - bool cqe_enabled; - bool cqe_on; - bool hsq_enabled; - u32 err_stats[15]; - long: 64; - long: 64; - long: 64; - long: 64; - unsigned long private[0]; +struct rpmhpd_desc { + struct rpmhpd **rpmhpds; + size_t num_pds; }; -struct mmc_request { - struct mmc_command *sbc; - struct mmc_command *cmd; - struct mmc_data *data; - struct mmc_command *stop; - struct completion completion; - struct completion cmd_completion; - void (*done)(struct mmc_request *); - void (*recovery_notifier)(struct mmc_request *); - struct mmc_host *host; - bool cap_cmd_during_tfr; - int tag; +enum gpd_status { + GENPD_STATE_ON = 0, + GENPD_STATE_OFF = 1, }; -struct mmc_command { - u32 opcode; - u32 arg; - u32 resp[4]; - unsigned int flags; - unsigned int retries; - int error; - unsigned int busy_timeout; - struct mmc_data *data; - struct mmc_request *mrq; +struct gpd_dev_ops { + int (*start)(struct device *); + int (*stop)(struct device *); }; -struct mmc_data { - unsigned int timeout_ns; - unsigned int timeout_clks; - unsigned int blksz; - unsigned int blocks; - unsigned int blk_addr; - int error; - unsigned int flags; - unsigned int bytes_xfered; - struct mmc_command *stop; - struct mmc_request *mrq; - unsigned int sg_len; - int sg_count; - struct scatterlist *sg; - s32 host_cookie; -}; +struct dev_power_governor; -struct mmc_cid { - unsigned int manfid; - char prod_name[8]; - unsigned char prv; - unsigned int serial; - unsigned short oemid; - unsigned short year; - unsigned char hwrev; - unsigned char fwrev; - unsigned char month; -}; +struct genpd_governor_data; -struct mmc_csd { - unsigned char structure; - unsigned char mmca_vsn; - unsigned short cmdclass; - unsigned short taac_clks; - unsigned int taac_ns; - unsigned int c_size; - unsigned int r2w_factor; - unsigned int max_dtr; - unsigned int erase_size; - unsigned int read_blkbits; - unsigned int write_blkbits; - unsigned int capacity; - unsigned int read_partial: 1; - unsigned int read_misalign: 1; - unsigned int write_partial: 1; - unsigned int write_misalign: 1; - unsigned int dsr_imp: 1; -}; +struct opp_table; -struct mmc_ext_csd { - u8 rev; - u8 erase_group_def; - u8 sec_feature_support; - u8 rel_sectors; - u8 rel_param; - bool enhanced_rpmb_supported; - u8 part_config; - u8 cache_ctrl; - u8 rst_n_function; - u8 max_packed_writes; - u8 max_packed_reads; - u8 packed_event_en; - unsigned int part_time; - unsigned int sa_timeout; - unsigned int generic_cmd6_time; - unsigned int power_off_longtime; - u8 power_off_notification; - unsigned int hs_max_dtr; - unsigned int hs200_max_dtr; - unsigned int sectors; - unsigned int hc_erase_size; - unsigned int hc_erase_timeout; - unsigned int sec_trim_mult; - unsigned int sec_erase_mult; - unsigned int trim_timeout; - bool partition_setting_completed; - unsigned long long enhanced_area_offset; - unsigned int enhanced_area_size; - unsigned int cache_size; - bool hpi_en; - bool hpi; - unsigned int hpi_cmd; - bool bkops; - bool man_bkops_en; - bool auto_bkops_en; - unsigned int data_sector_size; - unsigned int data_tag_unit_size; - unsigned int boot_ro_lock; - bool boot_ro_lockable; - bool ffu_capable; - bool cmdq_en; - bool cmdq_support; - unsigned int cmdq_depth; - u8 fwrev[8]; - u8 raw_exception_status; - u8 raw_partition_support; - u8 raw_rpmb_size_mult; - u8 raw_erased_mem_count; - u8 strobe_support; - u8 raw_ext_csd_structure; - u8 raw_card_type; - u8 raw_driver_strength; - u8 out_of_int_time; - u8 raw_pwr_cl_52_195; - u8 raw_pwr_cl_26_195; - u8 raw_pwr_cl_52_360; - u8 raw_pwr_cl_26_360; - u8 raw_s_a_timeout; - u8 raw_hc_erase_gap_size; - u8 raw_erase_timeout_mult; - u8 raw_hc_erase_grp_size; - u8 raw_boot_mult; - u8 raw_sec_trim_mult; - u8 raw_sec_erase_mult; - u8 raw_sec_feature_support; - u8 raw_trim_mult; - u8 raw_pwr_cl_200_195; - u8 raw_pwr_cl_200_360; - u8 raw_pwr_cl_ddr_52_195; - u8 raw_pwr_cl_ddr_52_360; - u8 raw_pwr_cl_ddr_200_360; - u8 raw_bkops_status; - u8 raw_sectors[4]; - u8 pre_eol_info; - u8 device_life_time_est_typ_a; - u8 device_life_time_est_typ_b; - unsigned int feature_support; -}; +struct dev_pm_opp; -struct sd_scr { - unsigned char sda_vsn; - unsigned char sda_spec3; - unsigned char sda_spec4; - unsigned char sda_specx; - unsigned char bus_widths; - unsigned char cmds; -}; +struct genpd_power_state; -struct sd_ssr { - unsigned int au; - unsigned int erase_timeout; - unsigned int erase_offset; -}; +struct genpd_lock_ops; -struct sd_switch_caps { - unsigned int hs_max_dtr; - unsigned int uhs_max_dtr; - unsigned int sd3_bus_mode; - unsigned int sd3_drv_type; - unsigned int sd3_curr_limit; +struct generic_pm_domain { + struct device dev; + struct dev_pm_domain domain; + struct list_head gpd_list_node; + struct list_head parent_links; + struct list_head child_links; + struct list_head dev_list; + struct dev_power_governor *gov; + struct genpd_governor_data *gd; + struct work_struct power_off_work; + struct fwnode_handle *provider; + bool has_provider; + const char *name; + atomic_t sd_count; + enum gpd_status status; + unsigned int device_count; + unsigned int suspended_count; + unsigned int prepared_count; + unsigned int performance_state; + cpumask_var_t cpus; + bool synced_poweroff; + int (*power_off)(struct generic_pm_domain *); + int (*power_on)(struct generic_pm_domain *); + struct raw_notifier_head power_notifiers; + struct opp_table *opp_table; + unsigned int (*opp_to_performance_state)(struct generic_pm_domain *, struct dev_pm_opp *); + int (*set_performance_state)(struct generic_pm_domain *, unsigned int); + struct gpd_dev_ops dev_ops; + int (*attach_dev)(struct generic_pm_domain *, struct device *); + void (*detach_dev)(struct generic_pm_domain *, struct device *); + unsigned int flags; + struct genpd_power_state *states; + void (*free_states)(struct genpd_power_state *, unsigned int); + unsigned int state_count; + unsigned int state_idx; + u64 on_time; + u64 accounting_time; + const struct genpd_lock_ops *lock_ops; + union { + struct mutex mlock; + struct { + spinlock_t slock; + unsigned long lock_flags; + }; + }; }; -struct sd_ext_reg { - u8 fno; - u8 page; - u16 offset; - u8 rev; - u8 feature_enabled; - u8 feature_support; +struct rpmhpd { + struct device *dev; + struct generic_pm_domain pd; + struct generic_pm_domain *parent; + struct rpmhpd *peer; + const bool active_only; + unsigned int corner; + unsigned int active_corner; + unsigned int enable_corner; + u32 level[16]; + size_t level_count; + bool enabled; + const char *res_name; + u32 addr; + bool state_synced; }; -struct sdio_cccr { - unsigned int sdio_vsn; - unsigned int sd_vsn; - unsigned int multi_block: 1; - unsigned int low_speed: 1; - unsigned int wide_bus: 1; - unsigned int high_power: 1; - unsigned int high_speed: 1; - unsigned int disable_cd: 1; - unsigned int enable_async_irq: 1; +struct dev_power_governor { + bool (*power_down_ok)(struct dev_pm_domain *); + bool (*suspend_ok)(struct device *); }; -struct sdio_cis { - unsigned short vendor; - unsigned short device; - unsigned short blksize; - unsigned int max_dtr; +struct genpd_governor_data { + s64 max_off_time_ns; + bool max_off_time_changed; + ktime_t next_wakeup; + ktime_t next_hrtimer; + bool cached_power_down_ok; + bool cached_power_down_state_idx; }; -struct mmc_part { - u64 size; - unsigned int part_cfg; - char name[20]; - bool force_ro; - unsigned int area_type; +struct genpd_power_state { + s64 power_off_latency_ns; + s64 power_on_latency_ns; + s64 residency_ns; + u64 usage; + u64 rejected; + struct fwnode_handle *fwnode; + u64 idle_time; + void *data; }; -struct sdio_func; - -struct sdio_func_tuple; - -struct mmc_card { - struct mmc_host *host; - struct device dev; - u32 ocr; - unsigned int rca; - unsigned int type; - unsigned int state; - unsigned int quirks; - unsigned int quirk_max_rate; - bool reenable_cmdq; - unsigned int erase_size; - unsigned int erase_shift; - unsigned int pref_erase; - unsigned int eg_boundary; - unsigned int erase_arg; - u8 erased_byte; - u32 raw_cid[4]; - u32 raw_csd[4]; - u32 raw_scr[2]; - u32 raw_ssr[16]; - struct mmc_cid cid; - struct mmc_csd csd; - struct mmc_ext_csd ext_csd; - struct sd_scr scr; - struct sd_ssr ssr; - struct sd_switch_caps sw_caps; - struct sd_ext_reg ext_power; - struct sd_ext_reg ext_perf; - unsigned int sdio_funcs; - atomic_t sdio_funcs_probed; - struct sdio_cccr cccr; - struct sdio_cis cis; - struct sdio_func *sdio_func[7]; - struct sdio_func *sdio_single_irq; - u8 major_rev; - u8 minor_rev; - unsigned int num_info; - const char **info; - struct sdio_func_tuple *tuples; - unsigned int sd_bus_speed; - unsigned int mmc_avail_type; - unsigned int drive_strength; - struct dentry *debugfs_root; - struct mmc_part part[7]; - unsigned int nr_parts; - struct workqueue_struct *complete_wq; +struct genpd_lock_ops { + void (*lock)(struct generic_pm_domain *); + void (*lock_nested)(struct generic_pm_domain *, int); + int (*lock_interruptible)(struct generic_pm_domain *); + void (*unlock)(struct generic_pm_domain *); }; -struct mmc_bus_ops { - void (*remove)(struct mmc_host *); - void (*detect)(struct mmc_host *); - int (*pre_suspend)(struct mmc_host *); - int (*suspend)(struct mmc_host *); - int (*resume)(struct mmc_host *); - int (*runtime_suspend)(struct mmc_host *); - int (*runtime_resume)(struct mmc_host *); - int (*alive)(struct mmc_host *); - int (*shutdown)(struct mmc_host *); - int (*hw_reset)(struct mmc_host *); - int (*sw_reset)(struct mmc_host *); - bool (*cache_enabled)(struct mmc_host *); - int (*flush_cache)(struct mmc_host *); +enum cmd_db_hw_type { + CMD_DB_HW_INVALID = 0, + CMD_DB_HW_MIN = 3, + CMD_DB_HW_ARC = 3, + CMD_DB_HW_VRM = 4, + CMD_DB_HW_BCM = 5, + CMD_DB_HW_MAX = 5, + CMD_DB_HW_ALL = 255, }; -struct mmc_cqe_ops { - int (*cqe_enable)(struct mmc_host *, struct mmc_card *); - void (*cqe_disable)(struct mmc_host *); - int (*cqe_request)(struct mmc_host *, struct mmc_request *); - void (*cqe_post_req)(struct mmc_host *, struct mmc_request *); - void (*cqe_off)(struct mmc_host *); - int (*cqe_wait_for_idle)(struct mmc_host *); - bool (*cqe_timeout)(struct mmc_host *, struct mmc_request *, bool *); - void (*cqe_recovery_start)(struct mmc_host *); - void (*cqe_recovery_finish)(struct mmc_host *); +enum rpmh_state { + RPMH_SLEEP_STATE = 0, + RPMH_WAKE_ONLY_STATE = 1, + RPMH_ACTIVE_ONLY_STATE = 2, }; -struct cqhci_host; +typedef struct generic_pm_domain * (*genpd_xlate_t)(struct of_phandle_args *, void *); -struct cqhci_host_ops { - void (*dumpregs)(struct mmc_host *); - void (*write_l)(struct cqhci_host *, u32, int); - u32 (*read_l)(struct cqhci_host *, int); - void (*enable)(struct mmc_host *); - void (*disable)(struct mmc_host *, bool); - void (*update_dcmd_desc)(struct mmc_host *, struct mmc_request *, u64 *); - void (*pre_enable)(struct mmc_host *); - void (*post_disable)(struct mmc_host *); +struct genpd_onecell_data { + struct generic_pm_domain **domains; + unsigned int num_domains; + genpd_xlate_t xlate; }; -struct cqhci_slot; - -struct cqhci_host { - const struct cqhci_host_ops *ops; - void *mmio; - struct mmc_host *mmc; - spinlock_t lock; - unsigned int rca; - bool dma64; - int num_slots; - int qcnt; - u32 dcmd_slot; - u32 caps; - u32 quirks; - bool enabled; - bool halted; - bool init_done; - bool activated; - bool waiting_for_idle; - bool recovery_halt; - size_t desc_size; - size_t data_size; - u8 *desc_base; - u8 slot_sz; - u8 task_desc_len; - u8 link_desc_len; - u8 *trans_desc_base; - u8 trans_desc_len; - dma_addr_t desc_dma_base; - dma_addr_t trans_desc_dma_base; - struct completion halt_comp; - wait_queue_head_t wait_queue; - struct cqhci_slot *slot; +struct tcs_cmd { + u32 addr; + u32 data; + u32 wait; }; -struct timing_data { - const char *otap_binding; - const char *itap_binding; - u32 capability; +struct module_version_attribute { + struct module_attribute mattr; + const char *module_name; + const char *version; }; -struct sdhci_am654_data { - struct regmap *base; - bool legacy_otapdly; - int otap_del_sel[11]; - int itap_del_sel[11]; - int clkbuf_sel; - int trm_icp; - int drv_strength; - int strb_sel; - u32 flags; - u32 quirks; +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 sdhci_pltfm_host { - struct clk *clk; - unsigned int clock; - u16 xfer_mode_shadow; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - unsigned long private[0]; +struct virtio_pci_modern_common_cfg { + struct virtio_pci_common_cfg cfg; + __le16 queue_notify_data; + __le16 queue_reset; }; -enum ufs_dev_pwr_mode { - UFS_ACTIVE_PWR_MODE = 1, - UFS_SLEEP_PWR_MODE = 2, - UFS_POWERDOWN_PWR_MODE = 3, - UFS_DEEPSLEEP_PWR_MODE = 4, +struct virtio_device_id { + __u32 device; + __u32 vendor; }; -enum uic_link_state { - UIC_LINK_OFF_STATE = 0, - UIC_LINK_ACTIVE_STATE = 1, - UIC_LINK_HIBERN8_STATE = 2, - UIC_LINK_BROKEN_STATE = 3, +struct virtio_pci_modern_device { + struct pci_dev *pci_dev; + struct virtio_pci_common_cfg *common; + void *device; + void *notify_base; + resource_size_t notify_pa; + u8 *isr; + size_t notify_len; + size_t device_len; + size_t common_len; + int notify_map_cap; + u32 notify_offset_multiplier; + int modern_bars; + struct virtio_device_id id; + int (*device_id_check)(struct pci_dev *); + u64 dma_mask; }; -enum ufs_pm_level { - UFS_PM_LVL_0 = 0, - UFS_PM_LVL_1 = 1, - UFS_PM_LVL_2 = 2, - UFS_PM_LVL_3 = 3, - UFS_PM_LVL_4 = 4, - UFS_PM_LVL_5 = 5, - UFS_PM_LVL_6 = 6, - UFS_PM_LVL_MAX = 7, -}; +typedef void (*xen_gfn_fn_t)(unsigned long, void *); -enum ufs_notify_change_status { - PRE_CHANGE = 0, - POST_CHANGE = 1, -}; +typedef uint64_t xen_pfn_t; -enum uic_cmd_dme { - UIC_CMD_DME_GET = 1, - UIC_CMD_DME_SET = 2, - UIC_CMD_DME_PEER_GET = 3, - UIC_CMD_DME_PEER_SET = 4, - UIC_CMD_DME_POWERON = 16, - UIC_CMD_DME_POWEROFF = 17, - UIC_CMD_DME_ENABLE = 18, - UIC_CMD_DME_RESET = 20, - UIC_CMD_DME_END_PT_RST = 21, - UIC_CMD_DME_LINK_STARTUP = 22, - UIC_CMD_DME_HIBER_ENTER = 23, - UIC_CMD_DME_HIBER_EXIT = 24, - UIC_CMD_DME_TEST_MODE = 26, -}; +typedef u16 uint16_t; -enum ufs_pm_op { - UFS_RUNTIME_PM = 0, - UFS_SYSTEM_PM = 1, - UFS_SHUTDOWN_PM = 2, -}; +typedef uint16_t domid_t; -enum devfreq_timer { - DEVFREQ_TIMER_DEFERRABLE = 0, - DEVFREQ_TIMER_DELAYED = 1, - DEVFREQ_TIMER_NUM = 2, -}; +struct xen_remap_gfn_info; -enum ufs_event_type { - UFS_EVT_PA_ERR = 0, - UFS_EVT_DL_ERR = 1, - UFS_EVT_NL_ERR = 2, - UFS_EVT_TL_ERR = 3, - UFS_EVT_DME_ERR = 4, - UFS_EVT_AUTO_HIBERN8_ERR = 5, - UFS_EVT_FATAL_ERR = 6, - UFS_EVT_LINK_STARTUP_FAIL = 7, - UFS_EVT_RESUME_ERR = 8, - UFS_EVT_SUSPEND_ERR = 9, - UFS_EVT_WL_SUSP_ERR = 10, - UFS_EVT_WL_RES_ERR = 11, - UFS_EVT_DEV_RESET = 12, - UFS_EVT_HOST_RESET = 13, - UFS_EVT_ABORT = 14, - UFS_EVT_CNT = 15, -}; +typedef uint64_t xen_ulong_t; -enum ufs_ref_clk_freq { - REF_CLK_FREQ_19_2_MHZ = 0, - REF_CLK_FREQ_26_MHZ = 1, - REF_CLK_FREQ_38_4_MHZ = 2, - REF_CLK_FREQ_52_MHZ = 3, - REF_CLK_FREQ_INVAL = -1, +struct remap_data { + xen_pfn_t *fgfn; + int nr_fgfn; + pgprot_t prot; + domid_t domid; + struct vm_area_struct *vma; + int index; + struct page **pages; + struct xen_remap_gfn_info *info; + int *err_ptr; + int mapped; + int h_errs[1]; + xen_ulong_t h_idxs[1]; + xen_pfn_t h_gpfns[1]; + int h_iter; }; -enum ufshcd_state { - UFSHCD_STATE_RESET = 0, - UFSHCD_STATE_OPERATIONAL = 1, - UFSHCD_STATE_EH_SCHEDULED_NON_FATAL = 2, - UFSHCD_STATE_EH_SCHEDULED_FATAL = 3, - UFSHCD_STATE_ERROR = 4, +struct xen_remove_from_physmap { + domid_t domid; + xen_pfn_t gpfn; }; -enum dev_cmd_type { - DEV_CMD_TYPE_NOP = 0, - DEV_CMD_TYPE_QUERY = 1, - DEV_CMD_TYPE_RPMB = 2, +struct map_balloon_pages { + xen_pfn_t *pfns; + unsigned int idx; }; -enum clk_gating_state { - CLKS_OFF = 0, - CLKS_ON = 1, - REQ_CLKS_OFF = 2, - REQ_CLKS_ON = 3, -}; +typedef struct { + union { + xen_ulong_t *p; + uint64_t q; + }; +} __guest_handle_xen_ulong_t; -enum bkops_status { - BKOPS_STATUS_NO_OP = 0, - BKOPS_STATUS_NON_CRITICAL = 1, - BKOPS_STATUS_PERF_IMPACT = 2, - BKOPS_STATUS_CRITICAL = 3, - BKOPS_STATUS_MAX = 3, -}; +typedef struct { + union { + xen_pfn_t *p; + uint64_t q; + }; +} __guest_handle_xen_pfn_t; -enum { - REG_CONTROLLER_CAPABILITIES = 0, - REG_MCQCAP = 4, - REG_UFS_VERSION = 8, - REG_CONTROLLER_DEV_ID = 16, - REG_CONTROLLER_PROD_ID = 20, - REG_AUTO_HIBERNATE_IDLE_TIMER = 24, - REG_INTERRUPT_STATUS = 32, - REG_INTERRUPT_ENABLE = 36, - REG_CONTROLLER_STATUS = 48, - REG_CONTROLLER_ENABLE = 52, - REG_UIC_ERROR_CODE_PHY_ADAPTER_LAYER = 56, - REG_UIC_ERROR_CODE_DATA_LINK_LAYER = 60, - REG_UIC_ERROR_CODE_NETWORK_LAYER = 64, - REG_UIC_ERROR_CODE_TRANSPORT_LAYER = 68, - REG_UIC_ERROR_CODE_DME = 72, - REG_UTP_TRANSFER_REQ_INT_AGG_CONTROL = 76, - REG_UTP_TRANSFER_REQ_LIST_BASE_L = 80, - REG_UTP_TRANSFER_REQ_LIST_BASE_H = 84, - REG_UTP_TRANSFER_REQ_DOOR_BELL = 88, - REG_UTP_TRANSFER_REQ_LIST_CLEAR = 92, - REG_UTP_TRANSFER_REQ_LIST_RUN_STOP = 96, - REG_UTP_TASK_REQ_LIST_BASE_L = 112, - REG_UTP_TASK_REQ_LIST_BASE_H = 116, - REG_UTP_TASK_REQ_DOOR_BELL = 120, - REG_UTP_TASK_REQ_LIST_CLEAR = 124, - REG_UTP_TASK_REQ_LIST_RUN_STOP = 128, - REG_UIC_COMMAND = 144, - REG_UIC_COMMAND_ARG_1 = 148, - REG_UIC_COMMAND_ARG_2 = 152, - REG_UIC_COMMAND_ARG_3 = 156, - UFSHCI_REG_SPACE_SIZE = 160, - REG_UFS_CCAP = 256, - REG_UFS_CRYPTOCAP = 260, - REG_UFS_MEM_CFG = 768, - REG_UFS_MCQ_CFG = 896, - REG_UFS_ESILBA = 900, - REG_UFS_ESIUBA = 904, - UFSHCI_CRYPTO_REG_SPACE_SIZE = 1024, -}; +typedef struct { + union { + int *p; + uint64_t q; + }; +} __guest_handle_int; -enum ufshcd_mcq_opr { - OPR_SQD = 0, - OPR_SQIS = 1, - OPR_CQD = 2, - OPR_CQIS = 3, - OPR_MAX = 4, +struct xen_add_to_physmap_range { + domid_t domid; + uint16_t space; + uint16_t size; + domid_t foreign_domid; + __guest_handle_xen_ulong_t idxs; + __guest_handle_xen_pfn_t gpfns; + __guest_handle_int errs; }; -enum { - REG_CQIS = 0, - REG_CQIE = 4, +struct remap_pfn { + struct mm_struct *mm; + struct page **pages; + pgprot_t prot; + unsigned long i; }; -enum { - REG_SQATTR = 0, - REG_SQLBA = 4, - REG_SQUBA = 8, - REG_SQDAO = 12, - REG_SQISAO = 16, - REG_CQATTR = 32, - REG_CQLBA = 36, - REG_CQUBA = 40, - REG_CQDAO = 44, - REG_CQISAO = 48, +enum regulator_type { + REGULATOR_VOLTAGE = 0, + REGULATOR_CURRENT = 1, }; -enum { - REG_SQHP = 0, - REG_SQTP = 4, - REG_SQRTC = 8, - REG_SQCTI = 12, - REG_SQRTS = 16, -}; +struct regulator_config; -enum { - REG_CQHP = 0, - REG_CQTP = 4, -}; +struct regulator_ops; -enum ufshcd_quirks { - UFSHCD_QUIRK_BROKEN_INTR_AGGR = 1, - UFSHCD_QUIRK_DELAY_BEFORE_DME_CMDS = 2, - UFSHCD_QUIRK_BROKEN_LCC = 4, - UFSHCD_QUIRK_BROKEN_PA_RXHSUNTERMCAP = 8, - UFSHCD_QUIRK_DME_PEER_ACCESS_AUTO_MODE = 16, - UFSHCD_QUIRK_BROKEN_UFS_HCI_VERSION = 32, - UFSHCI_QUIRK_BROKEN_REQ_LIST_CLR = 64, - UFSHCI_QUIRK_SKIP_RESET_INTR_AGGR = 128, - UFSHCI_QUIRK_BROKEN_HCE = 256, - UFSHCD_QUIRK_PRDT_BYTE_GRAN = 512, - UFSHCD_QUIRK_BROKEN_OCS_FATAL_ERROR = 1024, - UFSHCD_QUIRK_BROKEN_AUTO_HIBERN8 = 2048, - UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL = 4096, - UFSHCD_QUIRK_SKIP_DEF_UNIPRO_TIMEOUT_SETTING = 8192, - UFSHCD_QUIRK_4KB_DMA_ALIGNMENT = 16384, - UFSHCD_QUIRK_BROKEN_UIC_CMD = 32768, - UFSHCD_QUIRK_SKIP_PH_CONFIGURATION = 65536, - UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS = 131072, - UFSHCD_QUIRK_HIBERN_FASTAUTO = 262144, - UFSHCD_QUIRK_REINIT_AFTER_MAX_GEAR_SWITCH = 524288, - UFSHCD_QUIRK_MCQ_BROKEN_INTR = 1048576, - UFSHCD_QUIRK_MCQ_BROKEN_RTC = 2097152, -}; +struct linear_range; -enum { - SQ_START = 0, - SQ_STOP = 1, - SQ_ICU = 2, +struct regulator_desc { + const char *name; + const char *supply_name; + const char *of_match; + bool of_match_full_name; + const char *regulators_node; + int (*of_parse_cb)(struct device_node *, const struct regulator_desc *, struct regulator_config *); + int id; + unsigned int continuous_voltage_range: 1; + unsigned int n_voltages; + unsigned int n_current_limits; + const struct regulator_ops *ops; + int irq; + enum regulator_type type; + struct module *owner; + unsigned int min_uV; + unsigned int uV_step; + unsigned int linear_min_sel; + int fixed_uV; + unsigned int ramp_delay; + int min_dropout_uV; + const struct linear_range *linear_ranges; + const unsigned int *linear_range_selectors_bitfield; + int n_linear_ranges; + const unsigned int *volt_table; + const unsigned int *curr_table; + unsigned int vsel_range_reg; + unsigned int vsel_range_mask; + unsigned int vsel_reg; + unsigned int vsel_mask; + unsigned int vsel_step; + unsigned int csel_reg; + unsigned int csel_mask; + unsigned int apply_reg; + unsigned int apply_bit; + unsigned int enable_reg; + unsigned int enable_mask; + unsigned int enable_val; + unsigned int disable_val; + bool enable_is_inverted; + unsigned int bypass_reg; + unsigned int bypass_mask; + unsigned int bypass_val_on; + unsigned int bypass_val_off; + unsigned int active_discharge_on; + unsigned int active_discharge_off; + unsigned int active_discharge_mask; + unsigned int active_discharge_reg; + unsigned int soft_start_reg; + unsigned int soft_start_mask; + unsigned int soft_start_val_on; + unsigned int pull_down_reg; + unsigned int pull_down_mask; + unsigned int pull_down_val_on; + unsigned int ramp_reg; + unsigned int ramp_mask; + const unsigned int *ramp_delay_table; + unsigned int n_ramp_values; + unsigned int enable_time; + unsigned int off_on_delay; + unsigned int poll_enabled_time; + unsigned int (*of_map_mode)(unsigned int); }; -enum { - SQ_STS = 1, - SQ_CUS = 2, -}; +struct regulator_init_data; -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, +struct regulator_config { + struct device *dev; + const struct regulator_init_data *init_data; + void *driver_data; + struct device_node *of_node; + struct regmap *regmap; + struct gpio_desc *ena_gpiod; }; -enum { - BLK_MQ_UNIQUE_TAG_BITS = 16, - BLK_MQ_UNIQUE_TAG_MASK = 65535, +struct regulator_state { + int uV; + int min_uV; + int max_uV; + unsigned int mode; + int enabled; + bool changeable; }; -struct ufs_event_hist { - int pos; - u32 val[8]; - u64 tstamp[8]; - unsigned long long cnt; +struct notification_limit { + int prot; + int err; + int warn; }; -struct ufs_stats { - u32 last_intr_status; - u64 last_intr_ts; - u32 hibern8_exit_cnt; - u64 last_hibern8_exit_tstamp; - struct ufs_event_hist event[15]; -}; +typedef int suspend_state_t; -struct utp_upiu_query { - __u8 opcode; - __u8 idn; - __u8 index; - __u8 selector; - __be16 reserved_osf; - __be16 length; - __be32 value; - __be32 reserved[2]; +struct regulation_constraints { + const char *name; + int min_uV; + int max_uV; + int uV_offset; + int min_uA; + int max_uA; + int ilim_uA; + int system_load; + u32 *max_spread; + int max_uV_step; + unsigned int valid_modes_mask; + unsigned int valid_ops_mask; + int input_uV; + struct regulator_state state_disk; + struct regulator_state state_mem; + struct regulator_state state_standby; + struct notification_limit over_curr_limits; + struct notification_limit over_voltage_limits; + struct notification_limit under_voltage_limits; + struct notification_limit temp_limits; + suspend_state_t initial_state; + unsigned int initial_mode; + unsigned int ramp_delay; + unsigned int settling_time; + unsigned int settling_time_up; + unsigned int settling_time_down; + unsigned int enable_time; + unsigned int active_discharge; + unsigned int always_on: 1; + unsigned int boot_on: 1; + unsigned int apply_uV: 1; + unsigned int ramp_disable: 1; + unsigned int soft_start: 1; + unsigned int pull_down: 1; + unsigned int over_current_protection: 1; + unsigned int over_current_detection: 1; + unsigned int over_voltage_detection: 1; + unsigned int under_voltage_detection: 1; + unsigned int over_temp_detection: 1; }; -struct ufs_query_req { - u8 query_func; - struct utp_upiu_query upiu_req; -}; +struct regulator_consumer_supply; -struct ufs_query_res { - u8 response; - struct utp_upiu_query upiu_res; +struct regulator_init_data { + const char *supply_regulator; + struct regulation_constraints constraints; + int num_consumer_supplies; + struct regulator_consumer_supply *consumer_supplies; + int (*regulator_init)(void *); + void *driver_data; }; -struct ufs_query { - struct ufs_query_req request; - u8 *descriptor; - struct ufs_query_res response; +struct regulator_dev; + +struct regulator_ops { + int (*list_voltage)(struct regulator_dev *, unsigned int); + int (*set_voltage)(struct regulator_dev *, int, int, unsigned int *); + int (*map_voltage)(struct regulator_dev *, int, int); + int (*set_voltage_sel)(struct regulator_dev *, unsigned int); + int (*get_voltage)(struct regulator_dev *); + int (*get_voltage_sel)(struct regulator_dev *); + int (*set_current_limit)(struct regulator_dev *, int, int); + int (*get_current_limit)(struct regulator_dev *); + int (*set_input_current_limit)(struct regulator_dev *, int); + int (*set_over_current_protection)(struct regulator_dev *, int, int, bool); + int (*set_over_voltage_protection)(struct regulator_dev *, int, int, bool); + int (*set_under_voltage_protection)(struct regulator_dev *, int, int, bool); + int (*set_thermal_protection)(struct regulator_dev *, int, int, bool); + int (*set_active_discharge)(struct regulator_dev *, bool); + int (*enable)(struct regulator_dev *); + int (*disable)(struct regulator_dev *); + int (*is_enabled)(struct regulator_dev *); + int (*set_mode)(struct regulator_dev *, unsigned int); + unsigned int (*get_mode)(struct regulator_dev *); + int (*get_error_flags)(struct regulator_dev *, unsigned int *); + int (*enable_time)(struct regulator_dev *); + int (*set_ramp_delay)(struct regulator_dev *, int); + int (*set_voltage_time)(struct regulator_dev *, int, int); + int (*set_voltage_time_sel)(struct regulator_dev *, unsigned int, unsigned int); + int (*set_soft_start)(struct regulator_dev *); + int (*get_status)(struct regulator_dev *); + unsigned int (*get_optimum_mode)(struct regulator_dev *, int, int, int); + int (*set_load)(struct regulator_dev *, int); + int (*set_bypass)(struct regulator_dev *, bool); + int (*get_bypass)(struct regulator_dev *, bool *); + int (*set_suspend_voltage)(struct regulator_dev *, int); + int (*set_suspend_enable)(struct regulator_dev *); + int (*set_suspend_disable)(struct regulator_dev *); + int (*set_suspend_mode)(struct regulator_dev *, unsigned int); + int (*resume)(struct regulator_dev *); + int (*set_pull_down)(struct regulator_dev *); }; -struct ufs_dev_cmd { - enum dev_cmd_type type; - struct mutex lock; - struct completion *complete; - struct ufs_query query; +struct regulator_coupler; + +struct coupling_desc { + struct regulator_dev **coupled_rdevs; + struct regulator_coupler *coupler; + int n_resolved; + int n_coupled; }; -struct ufs_dev_info { - bool f_power_on_wp_en; - bool is_lu_power_on_wp; - u8 max_lu_supported; - u16 wmanufacturerid; - u8 *model; - u16 wspecversion; - u32 clk_gating_wait_us; - u8 bqueuedepth; - bool hpb_enabled; - bool wb_enabled; - bool wb_buf_flush_enabled; - u8 wb_dedicated_lu; - u8 wb_buffer_type; - bool b_rpm_dev_flush_capable; - u8 b_presrv_uspc_en; - bool b_advanced_rpmb_en; - bool b_ext_iid_en; +struct ww_mutex { + struct mutex base; + struct ww_acquire_ctx *ctx; }; -struct ufs_vreg; +struct regulator_enable_gpio; -struct ufs_vreg_info { - struct ufs_vreg *vcc; - struct ufs_vreg *vccq; - struct ufs_vreg *vccq2; - struct ufs_vreg *vdd_hba; +struct regulator_dev { + const struct regulator_desc *desc; + int exclusive; + u32 use_count; + u32 open_count; + u32 bypass_count; + struct list_head list; + struct list_head consumer_list; + struct coupling_desc coupling_desc; + struct blocking_notifier_head notifier; + struct ww_mutex mutex; + struct task_struct *mutex_owner; + int ref_cnt; + struct module *owner; + struct device dev; + struct regulation_constraints *constraints; + struct regulator *supply; + const char *supply_name; + struct regmap *regmap; + struct delayed_work disable_work; + void *reg_data; + struct dentry *debugfs; + struct regulator_enable_gpio *ena_pin; + unsigned int ena_gpio_state: 1; + unsigned int is_switch: 1; + ktime_t last_off; + int cached_err; + bool use_cached_err; + spinlock_t err_lock; }; -struct ufs_pa_layer_attr { - u32 gear_rx; - u32 gear_tx; - u32 lane_rx; - u32 lane_tx; - u32 pwr_rx; - u32 pwr_tx; - u32 hs_rate; +struct ww_acquire_ctx { + struct task_struct *task; + unsigned long stamp; + unsigned int acquired; + unsigned short wounded; + unsigned short is_wait_die; }; -struct ufs_pwr_mode_info { - bool is_valid; - struct ufs_pa_layer_attr info; +struct linear_range { + unsigned int min; + unsigned int min_sel; + unsigned int max_sel; + unsigned int step; }; -struct ufs_clk_gating { - struct delayed_work gate_work; - struct work_struct ungate_work; - enum clk_gating_state state; - unsigned long delay_ms; - bool is_suspended; - struct device_attribute delay_attr; - struct device_attribute enable_attr; - bool is_enabled; - bool is_initialized; - int active_reqs; - struct workqueue_struct *clk_gating_workq; +enum rohm_chip_type { + ROHM_CHIP_TYPE_BD9571 = 0, + ROHM_CHIP_TYPE_BD9573 = 1, + ROHM_CHIP_TYPE_BD9574 = 2, + ROHM_CHIP_TYPE_BD9576 = 3, + ROHM_CHIP_TYPE_BD71815 = 4, + ROHM_CHIP_TYPE_BD71828 = 5, + ROHM_CHIP_TYPE_BD71837 = 6, + ROHM_CHIP_TYPE_BD71847 = 7, + ROHM_CHIP_TYPE_AMOUNT = 8, }; -struct ufs_clk_scaling { - int active_reqs; - unsigned long tot_busy_t; - ktime_t window_start_t; - ktime_t busy_start_t; - struct device_attribute enable_attr; - struct ufs_pa_layer_attr saved_pwr_info; - struct workqueue_struct *workq; - struct work_struct suspend_work; - struct work_struct resume_work; - u32 min_gear; - bool is_enabled; - bool is_allowed; - bool is_initialized; - bool is_busy_started; - bool is_suspended; +enum bd9571mwv_regulators { + VD09 = 0, + VD18 = 1, + VD25 = 2, + VD33 = 3, + DVFS = 4, }; -struct ufs_hba_monitor { - unsigned long chunk_size; - unsigned long nr_sec_rw[2]; - ktime_t total_busy[2]; - unsigned long nr_req[2]; - ktime_t lat_sum[2]; - ktime_t lat_max[2]; - ktime_t lat_min[2]; - u32 nr_queued[2]; - ktime_t busy_start_ts[2]; - ktime_t enabled_ts; - bool enabled; +struct bd9571mwv_reg { + struct regmap *regmap; + u8 bkup_mode_cnt_keepon; + u8 bkup_mode_cnt_saved; + bool bkup_mode_enabled; + bool rstbmode_level; + bool rstbmode_pulse; }; -struct ufshcd_res_info { - const char *name; - struct resource *resource; - void *base; +enum spmi_regulator_type { + SPMI_REGULATOR_TYPE_BUCK = 3, + SPMI_REGULATOR_TYPE_LDO = 4, + SPMI_REGULATOR_TYPE_VS = 5, + SPMI_REGULATOR_TYPE_BOOST = 27, + SPMI_REGULATOR_TYPE_FTS = 28, + SPMI_REGULATOR_TYPE_BOOST_BYP = 31, + SPMI_REGULATOR_TYPE_ULT_LDO = 33, + SPMI_REGULATOR_TYPE_ULT_BUCK = 34, }; -struct ufshcd_mcq_opr_info_t { - unsigned long offset; - unsigned long stride; - void *base; +enum spmi_regulator_subtype { + SPMI_REGULATOR_SUBTYPE_GP_CTL = 8, + SPMI_REGULATOR_SUBTYPE_RF_CTL = 9, + SPMI_REGULATOR_SUBTYPE_N50 = 1, + SPMI_REGULATOR_SUBTYPE_N150 = 2, + SPMI_REGULATOR_SUBTYPE_N300 = 3, + SPMI_REGULATOR_SUBTYPE_N600 = 4, + SPMI_REGULATOR_SUBTYPE_N1200 = 5, + SPMI_REGULATOR_SUBTYPE_N600_ST = 6, + SPMI_REGULATOR_SUBTYPE_N1200_ST = 7, + SPMI_REGULATOR_SUBTYPE_N900_ST = 20, + SPMI_REGULATOR_SUBTYPE_N300_ST = 21, + SPMI_REGULATOR_SUBTYPE_P50 = 8, + SPMI_REGULATOR_SUBTYPE_P150 = 9, + SPMI_REGULATOR_SUBTYPE_P300 = 10, + SPMI_REGULATOR_SUBTYPE_P600 = 11, + SPMI_REGULATOR_SUBTYPE_P1200 = 12, + SPMI_REGULATOR_SUBTYPE_LN = 16, + SPMI_REGULATOR_SUBTYPE_LV_P50 = 40, + SPMI_REGULATOR_SUBTYPE_LV_P150 = 41, + SPMI_REGULATOR_SUBTYPE_LV_P300 = 42, + SPMI_REGULATOR_SUBTYPE_LV_P600 = 43, + SPMI_REGULATOR_SUBTYPE_LV_P1200 = 44, + SPMI_REGULATOR_SUBTYPE_LV_P450 = 45, + SPMI_REGULATOR_SUBTYPE_HT_N300_ST = 48, + SPMI_REGULATOR_SUBTYPE_HT_N600_ST = 49, + SPMI_REGULATOR_SUBTYPE_HT_N1200_ST = 50, + SPMI_REGULATOR_SUBTYPE_HT_LVP150 = 59, + SPMI_REGULATOR_SUBTYPE_HT_LVP300 = 60, + SPMI_REGULATOR_SUBTYPE_L660_N300_ST = 66, + SPMI_REGULATOR_SUBTYPE_L660_N600_ST = 67, + SPMI_REGULATOR_SUBTYPE_L660_P50 = 70, + SPMI_REGULATOR_SUBTYPE_L660_P150 = 71, + SPMI_REGULATOR_SUBTYPE_L660_P600 = 73, + SPMI_REGULATOR_SUBTYPE_L660_LVP150 = 77, + SPMI_REGULATOR_SUBTYPE_L660_LVP600 = 79, + SPMI_REGULATOR_SUBTYPE_LV100 = 1, + SPMI_REGULATOR_SUBTYPE_LV300 = 2, + SPMI_REGULATOR_SUBTYPE_MV300 = 8, + SPMI_REGULATOR_SUBTYPE_MV500 = 9, + SPMI_REGULATOR_SUBTYPE_HDMI = 16, + SPMI_REGULATOR_SUBTYPE_OTG = 17, + SPMI_REGULATOR_SUBTYPE_5V_BOOST = 1, + SPMI_REGULATOR_SUBTYPE_FTS_CTL = 8, + SPMI_REGULATOR_SUBTYPE_FTS2p5_CTL = 9, + SPMI_REGULATOR_SUBTYPE_FTS426_CTL = 10, + SPMI_REGULATOR_SUBTYPE_BB_2A = 1, + SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL1 = 13, + SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL2 = 14, + SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL3 = 15, + SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL4 = 16, + SPMI_REGULATOR_SUBTYPE_HFS430 = 10, + SPMI_REGULATOR_SUBTYPE_HT_P150 = 53, + SPMI_REGULATOR_SUBTYPE_HT_P600 = 61, + SPMI_REGULATOR_SUBTYPE_HFSMPS_510 = 10, + SPMI_REGULATOR_SUBTYPE_FTSMPS_510 = 11, + SPMI_REGULATOR_SUBTYPE_LV_P150_510 = 113, + SPMI_REGULATOR_SUBTYPE_LV_P300_510 = 114, + SPMI_REGULATOR_SUBTYPE_LV_P600_510 = 115, + SPMI_REGULATOR_SUBTYPE_N300_510 = 106, + SPMI_REGULATOR_SUBTYPE_N600_510 = 107, + SPMI_REGULATOR_SUBTYPE_N1200_510 = 108, + SPMI_REGULATOR_SUBTYPE_MV_P50_510 = 122, + SPMI_REGULATOR_SUBTYPE_MV_P150_510 = 123, + SPMI_REGULATOR_SUBTYPE_MV_P600_510 = 125, }; -struct utp_transfer_cmd_desc; - -struct utp_transfer_req_desc; - -struct utp_task_req_desc; - -struct ufshcd_lrb; - -struct ufs_hba_variant_ops; - -struct ufs_hba_variant_params; +enum spmi_regulator_logical_type { + SPMI_REGULATOR_LOGICAL_TYPE_SMPS = 0, + SPMI_REGULATOR_LOGICAL_TYPE_LDO = 1, + SPMI_REGULATOR_LOGICAL_TYPE_VS = 2, + SPMI_REGULATOR_LOGICAL_TYPE_BOOST = 3, + SPMI_REGULATOR_LOGICAL_TYPE_FTSMPS = 4, + SPMI_REGULATOR_LOGICAL_TYPE_BOOST_BYP = 5, + SPMI_REGULATOR_LOGICAL_TYPE_LN_LDO = 6, + SPMI_REGULATOR_LOGICAL_TYPE_ULT_LO_SMPS = 7, + SPMI_REGULATOR_LOGICAL_TYPE_ULT_HO_SMPS = 8, + SPMI_REGULATOR_LOGICAL_TYPE_ULT_LDO = 9, + SPMI_REGULATOR_LOGICAL_TYPE_FTSMPS426 = 10, + SPMI_REGULATOR_LOGICAL_TYPE_HFS430 = 11, + SPMI_REGULATOR_LOGICAL_TYPE_FTSMPS3 = 12, + SPMI_REGULATOR_LOGICAL_TYPE_LDO_510 = 13, + SPMI_REGULATOR_LOGICAL_TYPE_HFSMPS = 14, +}; -struct uic_command; +struct spmi_voltage_set_points; -struct devfreq; +struct spmi_regulator_mapping { + enum spmi_regulator_type type; + enum spmi_regulator_subtype subtype; + enum spmi_regulator_logical_type logical_type; + u32 revision_min; + u32 revision_max; + const struct regulator_ops *ops; + struct spmi_voltage_set_points *set_points; + int hpm_min_load; +}; -struct ufs_hw_queue; +struct spmi_voltage_range; -struct ufs_hba { - void *mmio_base; - struct utp_transfer_cmd_desc *ucdl_base_addr; - struct utp_transfer_req_desc *utrdl_base_addr; - struct utp_task_req_desc *utmrdl_base_addr; - dma_addr_t ucdl_dma_addr; - dma_addr_t utrdl_dma_addr; - dma_addr_t utmrdl_dma_addr; - struct Scsi_Host *host; - struct device *dev; - struct scsi_device *ufs_device_wlun; - enum ufs_dev_pwr_mode curr_dev_pwr_mode; - enum uic_link_state uic_link_state; - enum ufs_pm_level rpm_lvl; - enum ufs_pm_level spm_lvl; - int pm_op_in_progress; - u32 ahit; - struct ufshcd_lrb *lrb; - unsigned long outstanding_tasks; - spinlock_t outstanding_lock; - unsigned long outstanding_reqs; - u32 capabilities; - int nutrs; - u32 mcq_capabilities; - int nutmrs; - u32 reserved_slot; - u32 ufs_version; - const struct ufs_hba_variant_ops *vops; - struct ufs_hba_variant_params *vps; - void *priv; - unsigned int irq; - bool is_irq_enabled; - enum ufs_ref_clk_freq dev_ref_clk_freq; - unsigned int quirks; - unsigned int dev_quirks; - struct blk_mq_tag_set tmf_tag_set; - struct request_queue *tmf_queue; - struct request **tmf_rqs; - struct uic_command *active_uic_cmd; - struct mutex uic_cmd_mutex; - struct completion *uic_async_done; - enum ufshcd_state ufshcd_state; - u32 eh_flags; - u32 intr_mask; - u16 ee_ctrl_mask; - u16 ee_drv_mask; - u16 ee_usr_mask; - struct mutex ee_ctrl_mutex; - bool is_powered; - bool shutting_down; - struct semaphore host_sem; - struct workqueue_struct *eh_wq; - struct work_struct eh_work; - struct work_struct eeh_work; - u32 errors; - u32 uic_error; - u32 saved_err; - u32 saved_uic_err; - struct ufs_stats ufs_stats; - bool force_reset; - bool force_pmc; - bool silence_err_logs; - struct ufs_dev_cmd dev_cmd; - ktime_t last_dme_cmd_tstamp; - int nop_out_timeout; - struct ufs_dev_info dev_info; - bool auto_bkops_enabled; - struct ufs_vreg_info vreg_info; - struct list_head clk_list_head; - int req_abort_count; - u32 lanes_per_direction; - struct ufs_pa_layer_attr pwr_info; - struct ufs_pwr_mode_info max_pwr_info; - struct ufs_clk_gating clk_gating; - u32 caps; - struct devfreq *devfreq; - struct ufs_clk_scaling clk_scaling; - bool system_suspending; - bool is_sys_suspended; - enum bkops_status urgent_bkops_lvl; - bool is_urgent_bkops_lvl_checked; - struct mutex wb_mutex; - struct rw_semaphore clk_scaling_lock; - atomic_t scsi_block_reqs_cnt; - struct device bsg_dev; - struct request_queue *bsg_queue; - struct delayed_work rpm_dev_flush_recheck_work; - struct ufs_hba_monitor monitor; - struct dentry *debugfs_root; - struct delayed_work debugfs_ee_work; - u32 debugfs_ee_rate_limit_ms; - u32 luns_avail; - unsigned int nr_hw_queues; - unsigned int nr_queues[3]; - bool complete_put; - bool ext_iid_sup; - bool scsi_host_added; - bool mcq_sup; - bool mcq_enabled; - struct ufshcd_res_info res[7]; - void *mcq_base; - struct ufs_hw_queue *uhq; - struct ufs_hw_queue *dev_cmd_queue; - struct ufshcd_mcq_opr_info_t mcq_opr[4]; +struct spmi_voltage_set_points { + struct spmi_voltage_range *range; + int count; + unsigned int n_voltages; }; -struct utp_transfer_cmd_desc { - u8 command_upiu[512]; - u8 response_upiu[512]; - u8 prd_table[0]; +struct spmi_voltage_range { + int min_uV; + int max_uV; + int step_uV; + int set_point_min_uV; + int set_point_max_uV; + unsigned int n_voltages; + u8 range_sel; }; -struct request_desc_header { - __le32 dword_0; - __le32 dword_1; - __le32 dword_2; - __le32 dword_3; +struct spmi_regulator_data { + const char *name; + u16 base; + const char *supply; + const char *ocp; + u16 force_type; }; -struct utp_transfer_req_desc { - struct request_desc_header header; - __le64 command_desc_base_addr; - __le16 response_upiu_length; - __le16 response_upiu_offset; - __le16 prd_table_length; - __le16 prd_table_offset; +enum spmi_common_regulator_registers { + SPMI_COMMON_REG_DIG_MAJOR_REV = 1, + SPMI_COMMON_REG_TYPE = 4, + SPMI_COMMON_REG_SUBTYPE = 5, + SPMI_COMMON_REG_VOLTAGE_RANGE = 64, + SPMI_COMMON_REG_VOLTAGE_SET = 65, + SPMI_COMMON_REG_MODE = 69, + SPMI_COMMON_REG_ENABLE = 70, + SPMI_COMMON_REG_PULL_DOWN = 72, + SPMI_COMMON_REG_SOFT_START = 76, + SPMI_COMMON_REG_STEP_CTRL = 97, }; -struct utp_upiu_header { - __be32 dword_0; - __be32 dword_1; - __be32 dword_2; +enum spmi_vs_soft_start_str { + SPMI_VS_SOFT_START_STR_0P05_UA = 0, + SPMI_VS_SOFT_START_STR_0P25_UA = 1, + SPMI_VS_SOFT_START_STR_0P55_UA = 2, + SPMI_VS_SOFT_START_STR_0P75_UA = 3, + SPMI_VS_SOFT_START_STR_HW_DEFAULT = 4, }; -struct utp_task_req_desc { - struct request_desc_header header; - struct { - struct utp_upiu_header req_header; - __be32 input_param1; - __be32 input_param2; - __be32 input_param3; - __be32 __reserved1[2]; - } upiu_req; - struct { - struct utp_upiu_header rsp_header; - __be32 output_param1; - __be32 output_param2; - __be32 __reserved2[3]; - } upiu_rsp; +enum spmi_common_control_register_index { + SPMI_COMMON_IDX_VOLTAGE_RANGE = 0, + SPMI_COMMON_IDX_VOLTAGE_SET = 1, + SPMI_COMMON_IDX_MODE = 5, + SPMI_COMMON_IDX_ENABLE = 6, }; -struct utp_upiu_req; - -struct utp_upiu_rsp; - -struct ufshcd_sg_entry; - -struct ufshcd_lrb { - struct utp_transfer_req_desc *utr_descriptor_ptr; - struct utp_upiu_req *ucd_req_ptr; - struct utp_upiu_rsp *ucd_rsp_ptr; - struct ufshcd_sg_entry *ucd_prdt_ptr; - dma_addr_t utrd_dma_addr; - dma_addr_t ucd_req_dma_addr; - dma_addr_t ucd_rsp_dma_addr; - dma_addr_t ucd_prdt_dma_addr; - struct scsi_cmnd *cmd; - int scsi_status; - int command_type; - int task_tag; - u8 lun; - bool intr_cmd; - ktime_t issue_time_stamp; - u64 issue_time_stamp_local_clock; - ktime_t compl_time_stamp; - u64 compl_time_stamp_local_clock; - bool req_abort_skip; +enum spmi_vs_registers { + SPMI_VS_REG_OCP = 74, + SPMI_VS_REG_SOFT_START = 76, }; -struct utp_upiu_cmd { - __be32 exp_data_transfer_len; - __u8 cdb[16]; +enum spmi_hfsmps_regulator_registers { + SPMI_HFSMPS_REG_STEP_CTRL = 60, + SPMI_HFSMPS_REG_PULL_DOWN = 160, }; -struct utp_upiu_req { - struct utp_upiu_header header; - union { - struct utp_upiu_cmd sc; - struct utp_upiu_query qr; - struct utp_upiu_query uc; - }; +enum spmi_ftsmps426_regulator_registers { + SPMI_FTSMPS426_REG_VOLTAGE_LSB = 64, + SPMI_FTSMPS426_REG_VOLTAGE_MSB = 65, + SPMI_FTSMPS426_REG_VOLTAGE_ULS_LSB = 104, + SPMI_FTSMPS426_REG_VOLTAGE_ULS_MSB = 105, }; -struct utp_cmd_rsp { - __be32 residual_transfer_count; - __be32 reserved[4]; - __be16 sense_data_len; - u8 sense_data[18]; +enum regulator_detection_severity { + REGULATOR_SEVERITY_PROT = 0, + REGULATOR_SEVERITY_ERR = 1, + REGULATOR_SEVERITY_WARN = 2, }; -struct ufshpb_active_field { - __be16 active_rgn; - __be16 active_srgn; +enum spmi_boost_registers { + SPMI_BOOST_REG_CURRENT_LIMIT = 74, }; -struct utp_hpb_rsp { - __be32 residual_transfer_count; - __be32 reserved1[4]; - __be16 sense_data_len; - u8 desc_type; - u8 additional_len; - u8 hpb_op; - u8 lun; - u8 active_rgn_cnt; - u8 inactive_rgn_cnt; - struct ufshpb_active_field hpb_active_field[2]; - __be16 hpb_inactive_field[2]; +enum spmi_boost_byp_registers { + SPMI_BOOST_BYP_REG_CURRENT_LIMIT = 75, }; -struct utp_upiu_rsp { - struct utp_upiu_header header; - union { - struct utp_cmd_rsp sr; - struct utp_hpb_rsp hr; - struct utp_upiu_query qr; - }; +enum spmi_saw3_registers { + SAW3_SECURE = 0, + SAW3_ID = 4, + SAW3_SPM_STS = 12, + SAW3_AVS_STS = 16, + SAW3_PMIC_STS = 20, + SAW3_RST = 24, + SAW3_VCTL = 28, + SAW3_AVS_CTL = 32, + SAW3_AVS_LIMIT = 36, + SAW3_AVS_DLY = 40, + SAW3_AVS_HYSTERESIS = 44, + SAW3_SPM_STS2 = 56, + SAW3_SPM_PMIC_DATA_3 = 76, + SAW3_VERSION = 4048, }; -struct ufshcd_sg_entry { - __le64 addr; - __le32 reserved; - __le32 size; +struct spmi_regulator { + struct regulator_desc desc; + struct device *dev; + struct delayed_work ocp_work; + struct regmap *regmap; + struct spmi_voltage_set_points *set_points; + enum spmi_regulator_logical_type logical_type; + int ocp_irq; + int ocp_count; + int ocp_max_retries; + int ocp_retry_delay_ms; + int hpm_min_load; + int slew_rate; + ktime_t vs_enable_time; + u16 base; + struct list_head node; }; -struct devfreq_dev_profile; - -struct devfreq_simple_ondemand_data; - -union ufs_crypto_cfg_entry; - -struct ufs_hba_variant_ops { - const char *name; - int (*init)(struct ufs_hba *); - void (*exit)(struct ufs_hba *); - u32 (*get_ufs_hci_version)(struct ufs_hba *); - int (*clk_scale_notify)(struct ufs_hba *, bool, enum ufs_notify_change_status); - int (*setup_clocks)(struct ufs_hba *, bool, enum ufs_notify_change_status); - int (*hce_enable_notify)(struct ufs_hba *, enum ufs_notify_change_status); - int (*link_startup_notify)(struct ufs_hba *, enum ufs_notify_change_status); - int (*pwr_change_notify)(struct ufs_hba *, enum ufs_notify_change_status, struct ufs_pa_layer_attr *, struct ufs_pa_layer_attr *); - void (*setup_xfer_req)(struct ufs_hba *, int, bool); - void (*setup_task_mgmt)(struct ufs_hba *, int, u8); - void (*hibern8_notify)(struct ufs_hba *, enum uic_cmd_dme, enum ufs_notify_change_status); - int (*apply_dev_quirks)(struct ufs_hba *); - void (*fixup_dev_quirks)(struct ufs_hba *); - int (*suspend)(struct ufs_hba *, enum ufs_pm_op, enum ufs_notify_change_status); - int (*resume)(struct ufs_hba *, enum ufs_pm_op); - void (*dbg_register_dump)(struct ufs_hba *); - int (*phy_initialization)(struct ufs_hba *); - int (*device_reset)(struct ufs_hba *); - void (*config_scaling_param)(struct ufs_hba *, struct devfreq_dev_profile *, struct devfreq_simple_ondemand_data *); - int (*program_key)(struct ufs_hba *, const union ufs_crypto_cfg_entry *, int); - void (*event_notify)(struct ufs_hba *, enum ufs_event_type, void *); - void (*reinit_notify)(struct ufs_hba *); - int (*mcq_config_resource)(struct ufs_hba *); - int (*get_hba_mac)(struct ufs_hba *); - int (*op_runtime_config)(struct ufs_hba *); - int (*get_outstanding_cqs)(struct ufs_hba *, unsigned long *); - int (*config_esi)(struct ufs_hba *); +struct spmi_regulator_init_data { + unsigned int pin_ctrl_enable; + unsigned int pin_ctrl_hpm; + enum spmi_vs_soft_start_str vs_soft_start_strength; }; -struct devfreq_dev_status; - -struct devfreq_dev_profile { - unsigned long initial_freq; - unsigned int polling_ms; - enum devfreq_timer timer; - int (*target)(struct device *, unsigned long *, u32); - int (*get_dev_status)(struct device *, struct devfreq_dev_status *); - int (*get_cur_freq)(struct device *, unsigned long *); - void (*exit)(struct device *); - unsigned long *freq_table; - unsigned int max_state; - bool is_cooling_device; +struct brcmstb_reset { + void *base; + struct reset_controller_dev rcdev; }; -struct devfreq_dev_status { - unsigned long total_time; - unsigned long busy_time; - unsigned long current_frequency; - void *private_data; +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 devfreq_simple_ondemand_data { - unsigned int upthreshold; - unsigned int downdifferential; +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; }; -union ufs_crypto_cfg_entry { - __le32 reg_val[32]; - struct { - u8 crypto_key[64]; - u8 data_unit_size; - u8 crypto_cap_idx; - u8 reserved_1; - u8 config_enable; - u8 reserved_multi_host; - u8 reserved_2; - u8 vsb[2]; - u8 reserved_3[56]; - }; +enum uart_pm_state { + UART_PM_STATE_ON = 0, + UART_PM_STATE_OFF = 3, + UART_PM_STATE_UNDEFINED = 4, }; -struct ufs_hba_variant_params { - struct devfreq_dev_profile devfreq_profile; - struct devfreq_simple_ondemand_data ondemand_data; - u16 hba_enable_delay_us; - u32 wb_flush_threshold; +enum nbcon_prio { + NBCON_PRIO_NONE = 0, + NBCON_PRIO_NORMAL = 1, + NBCON_PRIO_EMERGENCY = 2, + NBCON_PRIO_PANIC = 3, + NBCON_PRIO_MAX = 4, }; -struct uic_command { - u32 command; - u32 argument1; - u32 argument2; - u32 argument3; - int cmd_active; - struct completion done; +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, }; -struct ufs_vreg { - struct regulator *reg; - const char *name; - bool always_on; - bool enabled; - int max_uA; -}; +typedef u64 upf_t; -struct devfreq_stats { - unsigned int total_trans; - unsigned int *trans_table; - u64 *time_in_state; - u64 last_update; -}; +typedef unsigned int upstat_t; -struct srcu_notifier_head { - struct mutex mutex; - struct srcu_usage srcuu; - struct srcu_struct srcu; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +struct circ_buf { + char *buf; + int head; + int tail; }; -struct devfreq_governor; +struct uart_port; -struct devfreq { - struct list_head node; - struct mutex lock; - struct device dev; - struct devfreq_dev_profile *profile; - const struct devfreq_governor *governor; - struct opp_table *opp_table; - struct notifier_block nb; - struct delayed_work work; - unsigned long *freq_table; - unsigned int max_state; - unsigned long previous_freq; - struct devfreq_dev_status last_status; - void *data; - void *governor_data; - struct dev_pm_qos_request user_min_freq_req; - struct dev_pm_qos_request user_max_freq_req; - unsigned long scaling_min_freq; - unsigned long scaling_max_freq; - bool stop_polling; - unsigned long suspend_freq; - unsigned long resume_freq; - atomic_t suspend_count; - struct devfreq_stats stats; - struct srcu_notifier_head transition_notifier_list; - struct thermal_cooling_device *cdev; - struct notifier_block nb_min; - struct notifier_block nb_max; +struct uart_state { + struct tty_port port; + enum uart_pm_state pm_state; + struct circ_buf xmit; + atomic_t refcount; + wait_queue_head_t remove_wait; + struct uart_port *uart_port; }; -struct devfreq_governor { - struct list_head node; - const char name[16]; - const u64 attrs; - const u64 flags; - int (*get_target_freq)(struct devfreq *, unsigned long *); - int (*event_handler)(struct devfreq *, unsigned int, void *); +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; }; -struct cq_entry; - -struct ufs_hw_queue { - void *mcq_sq_head; - void *mcq_sq_tail; - void *mcq_cq_head; - void *mcq_cq_tail; - struct utp_transfer_req_desc *sqe_base_addr; - dma_addr_t sqe_dma_addr; - struct cq_entry *cqe_base_addr; - dma_addr_t cqe_dma_addr; - u32 max_entries; - u32 id; - u32 sq_tail_slot; - spinlock_t sq_lock; - u32 cq_tail_slot; - u32 cq_head_slot; - spinlock_t cq_lock; - struct mutex sq_mutex; +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 cq_entry { - __le64 command_desc_base_addr; - __le16 response_upiu_length; - __le16 response_upiu_offset; - __le16 prd_table_length; - __le16 prd_table_offset; - __le32 status; - __le32 reserved[3]; +struct serial_iso7816 { + __u32 flags; + __u32 tg; + __u32 sc_fi; + __u32 sc_di; + __u32 clk; + __u32 reserved[5]; }; -struct scmi_protocol_handle; +struct console; -typedef int (*scmi_prot_init_ph_fn_t)(const struct scmi_protocol_handle *); +struct uart_ops; -struct scmi_protocol_events; +struct serial_port_device; -struct scmi_protocol { - const u8 id; - struct module *owner; - const scmi_prot_init_ph_fn_t instance_init; - const scmi_prot_init_ph_fn_t instance_deinit; - const void *ops; - const struct scmi_protocol_events *events; +struct uart_port { + spinlock_t lock; + unsigned long iobase; + unsigned char *membase; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + void (*set_mctrl)(struct uart_port *, unsigned int); + unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *); + void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int); + int (*startup)(struct uart_port *); + void (*shutdown)(struct uart_port *); + void (*throttle)(struct uart_port *); + void (*unthrottle)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); + int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); + int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *); + unsigned int ctrl_id; + unsigned int port_id; + unsigned int irq; + unsigned long irqflags; + unsigned int uartclk; + unsigned int fifosize; + unsigned char x_char; + unsigned char regshift; + unsigned char iotype; + unsigned char quirks; + unsigned int read_status_mask; + unsigned int ignore_status_mask; + struct uart_state *state; + struct uart_icount icount; + struct console *cons; + upf_t flags; + upstat_t status; + bool hw_stopped; + unsigned int mctrl; + unsigned int frame_time; + unsigned int type; + const struct uart_ops *ops; + unsigned int custom_divisor; + unsigned int line; + unsigned int minor; + resource_size_t mapbase; + resource_size_t mapsize; + struct device *dev; + struct serial_port_device *port_dev; + unsigned long sysrq; + u8 sysrq_ch; + unsigned char has_sysrq; + unsigned char sysrq_seq; + unsigned char hub6; + unsigned char suspended; + unsigned char console_reinit; + const char *name; + struct attribute_group *attr_group; + const struct attribute_group **tty_groups; + struct serial_rs485 rs485; + struct serial_rs485 rs485_supported; + struct gpio_desc *rs485_term_gpio; + struct gpio_desc *rs485_rx_during_tx_gpio; + struct serial_iso7816 iso7816; + void *private_data; }; -struct scmi_xfer_ops; - -struct scmi_proto_helpers_ops; +typedef unsigned int uint; -struct scmi_protocol_handle { - struct device *dev; - const struct scmi_xfer_ops *xops; - const struct scmi_proto_helpers_ops *hops; - int (*set_priv)(const struct scmi_protocol_handle *, void *); - void * (*get_priv)(const struct scmi_protocol_handle *); -}; +struct nbcon_write_context; -struct scmi_xfer; +struct printk_buffers; -struct scmi_xfer_ops { - int (*version_get)(const struct scmi_protocol_handle *, u32 *); - int (*xfer_get_init)(const struct scmi_protocol_handle *, u8, size_t, size_t, struct scmi_xfer **); - void (*reset_rx_to_maxsz)(const struct scmi_protocol_handle *, struct scmi_xfer *); - int (*do_xfer)(const struct scmi_protocol_handle *, struct scmi_xfer *); - int (*do_xfer_with_response)(const struct scmi_protocol_handle *, struct scmi_xfer *); - void (*xfer_put)(const struct scmi_protocol_handle *, struct scmi_xfer *); +struct console { + char name[16]; + void (*write)(struct console *, const char *, unsigned int); + int (*read)(struct console *, char *, unsigned int); + struct tty_driver * (*device)(struct console *, int *); + void (*unblank)(); + int (*setup)(struct console *, char *); + int (*exit)(struct console *); + int (*match)(struct console *, char *, int, char *); + short flags; + short index; + int cflag; + uint ispeed; + uint ospeed; + u64 seq; + unsigned long dropped; + void *data; + struct hlist_node node; + bool (*write_atomic)(struct console *, struct nbcon_write_context *); + atomic_t nbcon_state; + atomic_long_t nbcon_seq; + struct printk_buffers *pbufs; }; -struct scmi_msg_hdr { - u8 id; - u8 protocol_id; - u8 type; - u16 seq; - u32 status; - bool poll_completion; +struct nbcon_context { + struct console *console; + unsigned int spinwait_max_us; + enum nbcon_prio prio; + unsigned int allow_unsafe_takeover: 1; + unsigned int backlog: 1; + struct printk_buffers *pbufs; + u64 seq; }; -struct scmi_msg { - void *buf; - size_t len; +struct nbcon_write_context { + struct nbcon_context ctxt; + char *outbuf; + unsigned int len; + bool unsafe_takeover; }; -struct scmi_xfer { - int transfer_id; - struct scmi_msg_hdr hdr; - struct scmi_msg tx; - struct scmi_msg rx; - struct completion done; - struct completion *async_done; - bool pending; - struct hlist_node node; - refcount_t users; - atomic_t busy; - int state; - int flags; - spinlock_t lock; - void *priv; +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 scmi_iterator_ops; - -struct scmi_fc_db_info; - -struct scmi_proto_helpers_ops { - int (*extended_name_get)(const struct scmi_protocol_handle *, u8, u32, char *, size_t); - void * (*iter_response_init)(const struct scmi_protocol_handle *, struct scmi_iterator_ops *, unsigned int, u8, size_t, void *); - int (*iter_response_run)(void *); - void (*fastchannel_init)(const struct scmi_protocol_handle *, u8, u32, u32, u32, void **, struct scmi_fc_db_info **); - void (*fastchannel_db_ring)(struct scmi_fc_db_info *); +struct serial_port_device { + struct device dev; + struct uart_port *port; }; -struct scmi_iterator_state; - -struct scmi_iterator_ops { - void (*prepare_message)(void *, unsigned int, const void *); - int (*update_state)(struct scmi_iterator_state *, const void *, void *); - int (*process_response)(const struct scmi_protocol_handle *, const void *, struct scmi_iterator_state *, void *); +struct serial_ctrl_device { + struct device dev; + struct ida port_ida; }; -struct scmi_iterator_state { - unsigned int desc_index; - unsigned int num_returned; - unsigned int num_remaining; - unsigned int max_resources; - unsigned int loop_idx; - size_t rx_len; - void *priv; +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 scmi_fc_db_info { - int width; - u64 set; - u64 mask; - void *addr; +struct uart_match { + struct uart_port *port; + struct uart_driver *driver; }; -struct scmi_event_ops; - -struct scmi_event; +struct omap_rng_dev; -struct scmi_protocol_events { - size_t queue_sz; - const struct scmi_event_ops *ops; - const struct scmi_event *evts; - unsigned int num_events; - unsigned int num_sources; +struct omap_rng_pdata { + u16 *regs; + u32 data_size; + u32 (*data_present)(struct omap_rng_dev *); + int (*init)(struct omap_rng_dev *); + void (*cleanup)(struct omap_rng_dev *); }; -struct scmi_event_ops { - int (*get_num_sources)(const struct scmi_protocol_handle *); - int (*set_notify_enabled)(const struct scmi_protocol_handle *, u8, u32, bool); - void * (*fill_custom_report)(const struct scmi_protocol_handle *, u8, ktime_t, const void *, size_t, void *, u32 *); +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 scmi_event { - u8 id; - size_t max_payld_sz; - size_t max_report_sz; +struct omap_rng_dev { + void *base; + struct device *dev; + const struct omap_rng_pdata *pdata; + struct hwrng rng; + struct clk *clk; + struct clk *clk_reg; }; -struct scmi_powercap_info; +enum { + RNG_OUTPUT_0_REG = 0, + RNG_OUTPUT_1_REG = 1, + RNG_OUTPUT_2_REG = 2, + RNG_OUTPUT_3_REG = 3, + RNG_STATUS_REG = 4, + RNG_INTMASK_REG = 5, + RNG_INTACK_REG = 6, + RNG_CONTROL_REG = 7, + RNG_CONFIG_REG = 8, + RNG_ALARMCNT_REG = 9, + RNG_FROENABLE_REG = 10, + RNG_FRODETUNE_REG = 11, + RNG_ALARMMASK_REG = 12, + RNG_ALARMSTOP_REG = 13, + RNG_REV_REG = 14, + RNG_SYSCONFIG_REG = 15, +}; -struct scmi_powercap_proto_ops { - int (*num_domains_get)(const struct scmi_protocol_handle *); - const struct scmi_powercap_info * (*info_get)(const struct scmi_protocol_handle *, u32); - int (*cap_get)(const struct scmi_protocol_handle *, u32, u32 *); - int (*cap_set)(const struct scmi_protocol_handle *, u32, u32, bool); - int (*cap_enable_set)(const struct scmi_protocol_handle *, u32, bool); - int (*cap_enable_get)(const struct scmi_protocol_handle *, u32, bool *); - int (*pai_get)(const struct scmi_protocol_handle *, u32, u32 *); - int (*pai_set)(const struct scmi_protocol_handle *, u32, u32); - int (*measurements_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); - int (*measurements_threshold_set)(const struct scmi_protocol_handle *, u32, u32, u32); - int (*measurements_threshold_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); +enum tpm2_cc_attrs { + TPM2_CC_ATTR_CHANDLES = 25, + TPM2_CC_ATTR_RHANDLE = 28, + TPM2_CC_ATTR_VENDOR = 29, }; -struct scmi_fc_info; +enum tpm2_structures { + TPM2_ST_NO_SESSIONS = 32769, + TPM2_ST_SESSIONS = 32770, +}; -struct scmi_powercap_info { - unsigned int id; - bool notify_powercap_cap_change; - bool notify_powercap_measurement_change; - bool async_powercap_cap_set; - bool powercap_cap_config; - bool powercap_monitoring; - bool powercap_pai_config; - bool powercap_scale_mw; - bool powercap_scale_uw; - bool fastchannels; - char name[64]; - unsigned int min_pai; - unsigned int max_pai; - unsigned int pai_step; - unsigned int min_power_cap; - unsigned int max_power_cap; - unsigned int power_cap_step; - unsigned int sustainable_power; - unsigned int accuracy; - unsigned int parent_id; - struct scmi_fc_info *fc_info; +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, }; -struct scmi_fc_info { - void *set_addr; - void *get_addr; - struct scmi_fc_db_info *set_db; +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 scmi_powercap_protocol_cmd { - POWERCAP_DOMAIN_ATTRIBUTES = 3, - POWERCAP_CAP_GET = 4, - POWERCAP_CAP_SET = 5, - POWERCAP_PAI_GET = 6, - POWERCAP_PAI_SET = 7, - POWERCAP_DOMAIN_NAME_GET = 8, - POWERCAP_MEASUREMENTS_GET = 9, - POWERCAP_CAP_NOTIFY = 10, - POWERCAP_MEASUREMENTS_NOTIFY = 11, - POWERCAP_DESCRIBE_FASTCHANNEL = 12, +enum tpm_buf_flags { + TPM_BUF_OVERFLOW = 1, }; -enum scmi_common_cmd { - PROTOCOL_VERSION = 0, - PROTOCOL_ATTRIBUTES = 1, - PROTOCOL_MESSAGE_ATTRIBUTES = 2, +enum tpm2_handle_types { + TPM2_HT_HMAC_SESSION = 33554432, + TPM2_HT_POLICY_SESSION = 50331648, + TPM2_HT_TRANSIENT = 2147483648, }; -enum { - POWERCAP_FC_CAP = 0, - POWERCAP_FC_PAI = 1, - POWERCAP_FC_MAX = 2, +enum tpm2_capabilities { + TPM2_CAP_HANDLES = 1, + TPM2_CAP_COMMANDS = 2, + TPM2_CAP_PCRS = 5, + TPM2_CAP_TPM_PROPERTIES = 6, }; -enum scmi_std_protocol { - SCMI_PROTOCOL_BASE = 16, - SCMI_PROTOCOL_POWER = 17, - SCMI_PROTOCOL_SYSTEM = 18, - SCMI_PROTOCOL_PERF = 19, - SCMI_PROTOCOL_CLOCK = 20, - SCMI_PROTOCOL_SENSOR = 21, - SCMI_PROTOCOL_RESET = 22, - SCMI_PROTOCOL_VOLTAGE = 23, - SCMI_PROTOCOL_POWERCAP = 24, -}; +struct tpm2_context { + __be64 sequence; + __be32 saved_handle; + __be32 hierarchy; + __be16 blob_size; +} __attribute__((packed)); -enum scmi_notification_events { - SCMI_EVENT_POWER_STATE_CHANGED = 0, - SCMI_EVENT_CLOCK_RATE_CHANGED = 0, - SCMI_EVENT_CLOCK_RATE_CHANGE_REQUESTED = 1, - SCMI_EVENT_PERFORMANCE_LIMITS_CHANGED = 0, - SCMI_EVENT_PERFORMANCE_LEVEL_CHANGED = 1, - SCMI_EVENT_SENSOR_TRIP_POINT_EVENT = 0, - SCMI_EVENT_SENSOR_UPDATE = 1, - SCMI_EVENT_RESET_ISSUED = 0, - SCMI_EVENT_BASE_ERROR_EVENT = 0, - SCMI_EVENT_SYSTEM_POWER_STATE_NOTIFIER = 0, - SCMI_EVENT_POWERCAP_CAP_CHANGED = 0, - SCMI_EVENT_POWERCAP_MEASUREMENTS_CHANGED = 1, +struct tpm_header { + __be16 tag; + __be32 length; + union { + __be32 ordinal; + __be32 return_code; + }; +} __attribute__((packed)); + +struct tpm_bios_log { + void *bios_event_log; + void *bios_event_log_end; }; -struct scmi_powercap_state; +struct tpm_chip; -struct powercap_info { - u32 version; - int num_domains; - struct scmi_powercap_state *states; - struct scmi_powercap_info *powercaps; +struct tpm_chip_seqops { + struct tpm_chip *chip; + const struct seq_operations *seqops; }; -struct scmi_powercap_state { - bool enabled; - u32 last_pcap; - bool meas_notif_enabled; - u64 thresholds; +struct tpm_space { + u32 context_tbl[3]; + u8 *context_buf; + u32 session_tbl[3]; + u8 *session_buf; + u32 buf_size; }; -struct scmi_msg_resp_powercap_domain_attributes { - __le32 attributes; - u8 name[16]; - __le32 min_pai; - __le32 max_pai; - __le32 pai_step; - __le32 min_power_cap; - __le32 max_power_cap; - __le32 power_cap_step; - __le32 sustainable_power; - __le32 accuracy; - __le32 parent_id; -}; +struct tpm_class_ops; -struct scmi_msg_powercap_set_cap_or_pai { - __le32 domain; - __le32 flags; - __le32 value; -}; +struct tpm_bank_info; -struct scmi_msg_resp_powercap_cap_set_complete { - __le32 domain; - __le32 power_cap; +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 scmi_msg_resp_powercap_meas_get { - __le32 power; - __le32 pai; +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 scmi_msg_powercap_notify_cap { - __le32 domain; - __le32 notify_enable; +struct tpm_bank_info { + u16 alg_id; + u16 digest_size; + u16 crypto_id; }; -struct scmi_msg_powercap_notify_thresh { - __le32 domain; - __le32 notify_enable; - __le32 power_thresh_low; - __le32 power_thresh_high; +struct tpm2_cap_handles { + u8 more_data; + __be32 capability; + __be32 count; + __be32 handles[0]; +} __attribute__((packed)); + +struct tpm_buf { + unsigned int flags; + u8 *data; }; -struct scmi_powercap_cap_changed_notify_payld { - __le32 agent_id; - __le32 domain_id; - __le32 power_cap; - __le32 pai; +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 *); }; -struct scmi_powercap_cap_changed_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int domain_id; - unsigned int power_cap; - unsigned int pai; +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 scmi_powercap_meas_changed_notify_payld { - __le32 agent_id; - __le32 domain_id; - __le32 power; +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 scmi_powercap_meas_changed_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int domain_id; - unsigned int power; +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); + int (*read_and_clear_dirty)(struct io_pgtable_ops *, unsigned long, size_t, unsigned long, struct iommu_dirty_bitmap *); }; -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 io_pgtable { + enum io_pgtable_fmt fmt; + void *cookie; + struct io_pgtable_cfg cfg; + struct io_pgtable_ops ops; }; -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; +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 rk_timer { - void *base; - void *ctrl; - struct clk *clk; - struct clk *pclk; - u32 freq; - int irq; +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 rk_clkevt { - struct clock_event_device ce; - struct rk_timer timer; - long: 64; - long: 64; - long: 64; +struct klist_node { + void *n_klist; + struct list_head n_node; + struct kref n_ref; }; -enum clocksource_ids { - CSID_GENERIC = 0, - CSID_ARM_ARCH_COUNTER = 1, - CSID_MAX = 2, +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; }; -enum vdso_clock_mode { - VDSO_CLOCKMODE_NONE = 0, - VDSO_CLOCKMODE_ARCHTIMER = 1, - VDSO_CLOCKMODE_ARCHTIMER_NOCOMPAT = 2, - VDSO_CLOCKMODE_MAX = 3, - VDSO_CLOCKMODE_TIMENS = 2147483647, +struct driver_private { + struct kobject kobj; + struct klist klist_devices; + struct klist_node knode_bus; + struct module_kobject *mkobj; + struct device_driver *driver; }; -struct clocksource { - u64 (*read)(struct clocksource *); - u64 mask; - u32 mult; - u32 shift; - u64 max_idle_ns; - u32 maxadj; - u32 uncertainty_margin; - u64 max_cycles; +struct wake_irq { + struct device *dev; + unsigned int status; + int irq; 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 module *owner; }; -enum hid_bpf_prog_type { - HID_BPF_PROG_TYPE_UNDEF = -1, - HID_BPF_PROG_TYPE_DEVICE_EVENT = 0, - HID_BPF_PROG_TYPE_RDESC_FIXUP = 1, - HID_BPF_PROG_TYPE_MAX = 2, +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 hid_device; +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 hid_bpf_prog_entry { - struct bpf_prog *prog; - struct hid_device *hdev; - enum hid_bpf_prog_type type; - u16 idx; +struct platform_object { + struct platform_device pdev; + char name[0]; }; -struct hid_bpf_jmp_table { - struct bpf_map *map; - struct hid_bpf_prog_entry entries[1024]; - int tail; - int head; - struct bpf_prog *progs[1024]; - unsigned long enabled[16]; +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; }; -enum hid_type { - HID_TYPE_OTHER = 0, - HID_TYPE_USBMOUSE = 1, - HID_TYPE_USBNONE = 2, +struct irq_affinity_devres { + unsigned int count; + unsigned int irq[0]; }; -struct hid_report; +struct firmware_fallback_config { + unsigned int force_sysfs_fallback; + unsigned int ignore_sysfs_fallback; + int old_timeout; + int loading_timeout; +}; -struct hid_report_enum { - unsigned int numbered; - struct list_head report_list; - struct hid_report *report_id_hash[256]; +enum fw_status { + FW_STATUS_UNKNOWN = 0, + FW_STATUS_LOADING = 1, + FW_STATUS_DONE = 2, + FW_STATUS_ABORTED = 3, }; -struct hid_bpf_prog_list; +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 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; +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, }; -struct hid_collection; +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 hid_driver; +struct fw_state { + struct completion completion; + enum fw_status status; +}; -struct hid_ll_driver; +struct firmware_cache; -struct hid_field; +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; + bool is_paged_buf; + struct page **pages; + int nr_pages; + int page_array_size; + bool need_uevent; + struct list_head pending_list; + const char *fw_name; +}; -struct hid_usage; +struct firmware { + size_t size; + const u8 *data; + void *priv; +}; -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 fw_sysfs { + bool nowait; struct device dev; - struct hid_driver *driver; - void *devres_group_id; - const struct hid_ll_driver *ll_driver; - struct mutex ll_open_lock; - unsigned int ll_open_count; - unsigned long status; - unsigned int claimed; - unsigned int quirks; - unsigned int initial_quirks; - bool io_started; - struct list_head inputs; - void *hiddev; - void *hidraw; - char name[128]; - char phys[64]; - char uniq[64]; - void *driver_data; - int (*ff_init)(struct hid_device *); - int (*hiddev_connect)(struct hid_device *, unsigned int); - void (*hiddev_disconnect)(struct hid_device *); - void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); - void (*hiddev_report_event)(struct hid_device *, struct hid_report *); - unsigned short debug; - struct dentry *debug_dir; - struct dentry *debug_rdesc; - struct dentry *debug_events; - struct list_head debug_list; - spinlock_t debug_list_lock; - wait_queue_head_t debug_wait; - unsigned int id; - struct hid_bpf bpf; + struct fw_priv *fw_priv; + struct firmware *fw; + void *fw_upload_priv; }; -struct hid_collection { - int parent_idx; - unsigned int type; - unsigned int usage; - unsigned int level; +struct class_attribute { + struct attribute attr; + ssize_t (*show)(const struct class *, const struct class_attribute *, char *); + ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t); }; -enum hid_report_type { - HID_INPUT_REPORT = 0, - HID_OUTPUT_REPORT = 1, - HID_FEATURE_REPORT = 2, - HID_REPORT_TYPES = 3, +struct devcd_entry { + struct device devcd_dev; + void *data; + size_t datalen; + struct mutex mutex; + bool delete_work; + struct module *owner; + ssize_t (*read)(char *, loff_t, size_t, void *, size_t); + void (*free)(void *); + struct delayed_work del_wk; + struct device *failing_dev; }; -struct hid_field_entry; +typedef __kernel_long_t __kernel_off_t; -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; -}; +typedef __kernel_off_t off_t; -struct hid_input; +typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t); -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 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 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 trace_event_data_offsets_devres { + u32 devname; }; -struct input_dev; +struct mfd_cell_acpi_match; -struct hid_input { - struct list_head list; - struct hid_report *report; - struct input_dev *input; +struct mfd_cell { const char *name; - bool registered; - struct list_head reports; - unsigned int application; + int id; + int level; + int (*suspend)(struct platform_device *); + int (*resume)(struct platform_device *); + void *platform_data; + size_t pdata_size; + const struct mfd_cell_acpi_match *acpi_match; + const struct software_node *swnode; + const char *of_compatible; + u64 of_reg; + bool use_of_reg; + int num_resources; + const struct resource *resources; + bool ignore_resource_conflicts; + bool pm_runtime_no_callbacks; + int num_parent_supplies; + const char * const *parent_supplies; }; -struct input_id { - __u16 bustype; - __u16 vendor; - __u16 product; - __u16 version; +struct mfd_cell_acpi_match { + const char *pnpid; + const unsigned long long adr; }; -struct input_keymap_entry; - -struct ff_device; - -struct input_dev_poller; - -struct input_mt; - -struct input_absinfo; +struct bgpio_pdata { + const char *label; + int base; + int ngpio; +}; -struct input_handle; +struct transport_container; -struct input_value; +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 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 attribute_container { 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 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 input_keymap_entry { - __u8 flags; - __u8 len; - __u16 index; - __u32 keycode; - __u8 scancode[32]; +struct transport_container { + struct attribute_container ac; + const struct attribute_group *statistics; }; -struct ff_effect; +enum scsi_target_state { + STARGET_CREATED = 1, + STARGET_RUNNING = 2, + STARGET_REMOVE = 3, + STARGET_CREATED_REMOVE = 4, + STARGET_DEL = 5, +}; -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]; +enum scsi_device_state { + SDEV_CREATED = 1, + SDEV_RUNNING = 2, + SDEV_CANCEL = 3, + SDEV_DEL = 4, + SDEV_QUIESCE = 5, + SDEV_OFFLINE = 6, + SDEV_TRANSPORT_OFFLINE = 7, + SDEV_BLOCK = 8, + SDEV_CREATED_BLOCK = 9, }; -struct ff_envelope { - __u16 attack_length; - __u16 attack_level; - __u16 fade_length; - __u16 fade_level; +enum scsi_cmnd_submitter { + SUBMITTED_BY_BLOCK_LAYER = 0, + SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, + SUBMITTED_BY_SCSI_RESET_IOCTL = 2, +} __attribute__((mode(byte))); + +enum scsi_timeout_action { + SCSI_EH_DONE = 0, + SCSI_EH_RESET_TIMER = 1, + SCSI_EH_NOT_HANDLED = 2, }; -struct ff_constant_effect { - __s16 level; - struct ff_envelope envelope; +enum scsi_host_state { + SHOST_CREATED = 1, + SHOST_RUNNING = 2, + SHOST_CANCEL = 3, + SHOST_DEL = 4, + SHOST_RECOVERY = 5, + SHOST_CANCEL_RECOVERY = 6, + SHOST_DEL_RECOVERY = 7, }; -struct ff_ramp_effect { - __s16 start_level; - __s16 end_level; - struct ff_envelope envelope; +enum sas_device_type { + SAS_PHY_UNUSED = 0, + SAS_END_DEVICE = 1, + SAS_EDGE_EXPANDER_DEVICE = 2, + SAS_FANOUT_EXPANDER_DEVICE = 3, + SAS_HA = 4, + SAS_SATA_DEV = 5, + SAS_SATA_PM = 7, + SAS_SATA_PM_PORT = 8, + SAS_SATA_PENDING = 9, }; -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; +enum sas_protocol { + SAS_PROTOCOL_NONE = 0, + SAS_PROTOCOL_SATA = 1, + SAS_PROTOCOL_SMP = 2, + SAS_PROTOCOL_STP = 4, + SAS_PROTOCOL_SSP = 8, + SAS_PROTOCOL_ALL = 14, + SAS_PROTOCOL_STP_ALL = 5, + SAS_PROTOCOL_INTERNAL_ABORT = 16, }; -struct ff_condition_effect { - __u16 right_saturation; - __u16 left_saturation; - __s16 right_coeff; - __s16 left_coeff; - __u16 deadband; - __s16 center; +enum sas_linkrate { + SAS_LINK_RATE_UNKNOWN = 0, + SAS_PHY_DISABLED = 1, + SAS_PHY_RESET_PROBLEM = 2, + SAS_SATA_SPINUP_HOLD = 3, + SAS_SATA_PORT_SELECTOR = 4, + SAS_PHY_RESET_IN_PROGRESS = 5, + SAS_LINK_RATE_1_5_GBPS = 8, + SAS_LINK_RATE_G1 = 8, + SAS_LINK_RATE_3_0_GBPS = 9, + SAS_LINK_RATE_G2 = 9, + SAS_LINK_RATE_6_0_GBPS = 10, + SAS_LINK_RATE_12_0_GBPS = 11, + SAS_LINK_RATE_22_5_GBPS = 12, + SAS_LINK_RATE_FAILED = 16, + SAS_PHY_VIRTUAL = 17, }; -struct ff_rumble_effect { - __u16 strong_magnitude; - __u16 weak_magnitude; +enum scsi_scan_mode { + SCSI_SCAN_INITIAL = 0, + SCSI_SCAN_RESCAN = 1, + SCSI_SCAN_MANUAL = 2, }; -struct ff_trigger { - __u16 button; - __u16 interval; +struct sas_identify { + enum sas_device_type device_type; + enum sas_protocol initiator_port_protocols; + enum sas_protocol target_port_protocols; + u64 sas_address; + u8 phy_identifier; }; -struct ff_replay { - __u16 length; - __u16 delay; +struct sas_rphy { + struct device dev; + struct sas_identify identify; + struct list_head list; + struct request_queue *q; + u32 scsi_target_id; }; -struct ff_effect { - __u16 type; - __s16 id; - __u16 direction; - struct ff_trigger trigger; - struct ff_replay replay; - union { - struct ff_constant_effect constant; - struct ff_ramp_effect ramp; - struct ff_periodic_effect periodic; - struct ff_condition_effect condition[2]; - struct ff_rumble_effect rumble; - } u; -}; - -struct input_absinfo { - __s32 value; - __s32 minimum; - __s32 maximum; - __s32 fuzz; - __s32 flat; - __s32 resolution; -}; - -struct input_handler; - -struct input_handle { - void *private; - int open; - const char *name; - struct input_dev *dev; - struct input_handler *handler; - struct list_head d_node; - struct list_head h_node; -}; - -struct input_device_id; - -struct input_handler { - void *private; - void (*event)(struct input_handle *, unsigned int, unsigned int, int); - void (*events)(struct input_handle *, const struct input_value *, unsigned int); - bool (*filter)(struct input_handle *, unsigned int, unsigned int, int); - bool (*match)(struct input_handler *, struct input_dev *); - int (*connect)(struct input_handler *, struct input_dev *, const struct input_device_id *); - void (*disconnect)(struct input_handle *); - void (*start)(struct input_handle *); - bool legacy_minors; - int minor; - const char *name; - const struct input_device_id *id_table; - struct list_head h_list; - struct list_head node; -}; - -struct input_value { - __u16 type; - __u16 code; - __s32 value; -}; - -struct input_device_id { - kernel_ulong_t flags; - __u16 bustype; - __u16 vendor; - __u16 product; - __u16 version; - kernel_ulong_t evbit[1]; - kernel_ulong_t keybit[12]; - kernel_ulong_t relbit[1]; - kernel_ulong_t absbit[1]; - kernel_ulong_t mscbit[1]; - kernel_ulong_t ledbit[1]; - kernel_ulong_t sndbit[1]; - kernel_ulong_t ffbit[2]; - kernel_ulong_t swbit[1]; - kernel_ulong_t propbit[1]; - kernel_ulong_t driver_info; -}; - -struct hid_field_entry { - struct list_head list; - struct hid_field *field; - unsigned int index; - __s32 priority; -}; - -struct hid_device_id; - -struct hid_report_id; - -struct hid_usage_id; - -struct hid_driver { - char *name; - const struct hid_device_id *id_table; - struct list_head dyn_list; - spinlock_t dyn_lock; - bool (*match)(struct hid_device *, bool); - int (*probe)(struct hid_device *, const struct hid_device_id *); - void (*remove)(struct hid_device *); - const struct hid_report_id *report_table; - int (*raw_event)(struct hid_device *, struct hid_report *, u8 *, int); - const struct hid_usage_id *usage_table; - int (*event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); - void (*report)(struct hid_device *, struct hid_report *); - __u8 * (*report_fixup)(struct hid_device *, __u8 *, unsigned int *); - int (*input_mapping)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *); - int (*input_mapped)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *); - int (*input_configured)(struct hid_device *, struct hid_input *); - void (*feature_mapping)(struct hid_device *, struct hid_field *, struct hid_usage *); - int (*suspend)(struct hid_device *, pm_message_t); - int (*resume)(struct hid_device *); - int (*reset_resume)(struct hid_device *); - struct device_driver driver; -}; - -struct hid_device_id { - __u16 bus; - __u16 group; - __u32 vendor; - __u32 product; - kernel_ulong_t driver_data; -}; - -struct hid_report_id { - __u32 report_type; -}; - -struct hid_usage_id { - __u32 usage_hid; - __u32 usage_type; - __u32 usage_code; -}; - -struct hid_ll_driver { - int (*start)(struct hid_device *); - void (*stop)(struct hid_device *); - int (*open)(struct hid_device *); - void (*close)(struct hid_device *); - int (*power)(struct hid_device *, int); - int (*parse)(struct hid_device *); - void (*request)(struct hid_device *, struct hid_report *, int); - int (*wait)(struct hid_device *); - int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int); - int (*output_report)(struct hid_device *, __u8 *, size_t); - int (*idle)(struct hid_device *, int, int, int); - bool (*may_wakeup)(struct hid_device *); - unsigned int max_buffer_size; -}; - -struct hid_bpf_prog_list { - u16 prog_idx[64]; - u8 prog_cnt; -}; - -enum bpf_link_type { - BPF_LINK_TYPE_UNSPEC = 0, - BPF_LINK_TYPE_RAW_TRACEPOINT = 1, - BPF_LINK_TYPE_TRACING = 2, - BPF_LINK_TYPE_CGROUP = 3, - BPF_LINK_TYPE_ITER = 4, - BPF_LINK_TYPE_NETNS = 5, - BPF_LINK_TYPE_XDP = 6, - BPF_LINK_TYPE_PERF_EVENT = 7, - BPF_LINK_TYPE_KPROBE_MULTI = 8, - BPF_LINK_TYPE_STRUCT_OPS = 9, - BPF_LINK_TYPE_NETFILTER = 10, - MAX_BPF_LINK_TYPE = 11, -}; - -struct bpf_link_ops; - -struct bpf_link { - atomic64_t refcnt; - u32 id; - enum bpf_link_type type; - const struct bpf_link_ops *ops; - struct bpf_prog *prog; - struct work_struct work; -}; - -struct bpf_link_ops { - void (*release)(struct bpf_link *); - void (*dealloc)(struct bpf_link *); - int (*detach)(struct bpf_link *); - int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *); - void (*show_fdinfo)(const struct bpf_link *, struct seq_file *); - int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *); - int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *); -}; - -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 sas_host_attrs { + struct list_head rphy_list; + struct mutex lock; + struct request_queue *q; + u32 next_target_id; + u32 next_expander_id; + int next_port_id; }; -struct entrypoints_bpf { - struct bpf_loader_ctx ctx; - struct { - struct bpf_map_desc hid_jmp_table; - } maps; - struct { - struct bpf_prog_desc hid_tail_call; - } progs; - struct { - int hid_tail_call_fd; - } links; +struct sas_expander_device { + int level; + int next_port_id; + char vendor_id[9]; + char product_id[17]; + char product_rev[5]; + char component_vendor_id[9]; + u16 component_id; + u8 component_revision_id; + struct sas_rphy rphy; }; -enum hid_bpf_attach_flags { - HID_BPF_FLAG_NONE = 0, - HID_BPF_FLAG_INSERT_HEAD = 1, - HID_BPF_FLAG_MAX = 2, +struct sas_phy { + struct device dev; + int number; + int enabled; + struct sas_identify identify; + enum sas_linkrate negotiated_linkrate; + enum sas_linkrate minimum_linkrate_hw; + enum sas_linkrate minimum_linkrate; + enum sas_linkrate maximum_linkrate_hw; + enum sas_linkrate maximum_linkrate; + u32 invalid_dword_count; + u32 running_disparity_error_count; + u32 loss_of_dword_sync_count; + u32 phy_reset_problem_count; + struct list_head port_siblings; + void *hostdata; }; -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, +struct sas_port { + struct device dev; + int port_identifier; + int num_phys; + unsigned int is_backlink: 1; + struct sas_rphy *rphy; + struct mutex phy_list_mutex; + struct list_head phy_list; + struct list_head del_list; }; -enum { - BPF_SKEL_KERNEL = 1, -}; +struct Scsi_Host; -struct hid_bpf_link { - struct bpf_link link; - int hid_table_index; +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 bpf_link_primer { - struct bpf_link *link; - struct file *file; - int fd; - u32 id; -}; +struct sas_function_template; -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 sas_domain_function_template; -struct hid_bpf_ctx { - __u32 index; - const struct hid_device *hid; - __u32 allocated_size; - enum hid_report_type report_type; - union { - __s32 retval; - __s32 size; - }; +struct sas_internal { + struct scsi_transport_template t; + struct sas_function_template *f; + struct sas_domain_function_template *dft; + struct device_attribute private_host_attrs[0]; + struct device_attribute private_phy_attrs[17]; + struct device_attribute private_port_attrs[1]; + struct device_attribute private_rphy_attrs[8]; + struct device_attribute private_end_dev_attrs[5]; + struct device_attribute private_expander_attrs[7]; + struct transport_container phy_attr_cont; + struct transport_container port_attr_cont; + struct transport_container rphy_attr_cont; + struct transport_container end_dev_attr_cont; + struct transport_container expander_attr_cont; + struct device_attribute *host_attrs[1]; + struct device_attribute *phy_attrs[18]; + struct device_attribute *port_attrs[2]; + struct device_attribute *rphy_attrs[9]; + struct device_attribute *end_dev_attrs[6]; + struct device_attribute *expander_attrs[8]; }; -struct hid_bpf_ctx_kern { - struct hid_bpf_ctx ctx; - u8 *data; -}; +struct scsi_host_template; -enum rproc_dump_mechanism { - RPROC_COREDUMP_DISABLED = 0, - RPROC_COREDUMP_ENABLED = 1, - RPROC_COREDUMP_INLINE = 2, +struct Scsi_Host { + struct list_head __devices; + struct list_head __targets; + struct list_head starved_list; + spinlock_t default_lock; + spinlock_t *host_lock; + struct mutex scan_mutex; + struct list_head eh_abort_list; + struct list_head eh_cmd_q; + struct task_struct *ehandler; + struct completion *eh_action; + wait_queue_head_t host_wait; + const struct scsi_host_template *hostt; + struct scsi_transport_template *transportt; + struct kref tagset_refcnt; + struct completion tagset_freed; + struct blk_mq_tag_set tag_set; + atomic_t host_blocked; + unsigned int host_failed; + unsigned int host_eh_scheduled; + unsigned int host_no; + int eh_deadline; + unsigned long last_reset; + unsigned int max_channel; + unsigned int max_id; + u64 max_lun; + unsigned int unique_id; + unsigned short max_cmd_len; + int this_id; + int can_queue; + short cmd_per_lun; + unsigned short sg_tablesize; + unsigned short sg_prot_tablesize; + unsigned int max_sectors; + unsigned int opt_sectors; + unsigned int max_segment_size; + unsigned long dma_boundary; + unsigned long virt_boundary_mask; + unsigned int nr_hw_queues; + unsigned int nr_maps; + unsigned int active_mode: 2; + unsigned int host_self_blocked: 1; + unsigned int reverse_ordering: 1; + unsigned int tmf_in_progress: 1; + unsigned int async_scan: 1; + unsigned int eh_noresume: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int queuecommand_may_block: 1; + unsigned int short_inquiry: 1; + unsigned int no_scsi2_lun_in_cdb: 1; + char work_q_name[20]; + struct workqueue_struct *work_q; + struct workqueue_struct *tmf_work_q; + unsigned int max_host_blocked; + unsigned int prot_capabilities; + unsigned char prot_guard_type; + unsigned long base; + unsigned long io_port; + unsigned char n_io_port; + unsigned char dma_channel; + unsigned int irq; + enum scsi_host_state shost_state; + struct device shost_gendev; + struct device shost_dev; + void *shost_data; + struct device *dma_dev; + unsigned long hostdata[0]; }; -enum rproc_state { - RPROC_OFFLINE = 0, - RPROC_SUSPENDED = 1, - RPROC_RUNNING = 2, - RPROC_CRASHED = 3, - RPROC_DELETED = 4, - RPROC_ATTACHED = 5, - RPROC_DETACHED = 6, - RPROC_LAST = 7, -}; +struct scsi_cmnd; -struct rproc_ops; +struct scsi_device; -struct resource_table; +struct scsi_target; -struct rproc { - struct list_head node; - struct iommu_domain *domain; +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 *firmware; - void *priv; - struct rproc_ops *ops; - struct device dev; - atomic_t power; - unsigned int state; - enum rproc_dump_mechanism dump_conf; - struct mutex lock; - struct dentry *dbg_dir; - struct list_head traces; - int num_traces; - struct list_head carveouts; - struct list_head mappings; - u64 bootaddr; - struct list_head rvdevs; - struct list_head subdevs; - struct idr notifyids; - int index; - struct work_struct crash_handler; - unsigned int crash_cnt; - bool recovery_disabled; - int max_notifyid; - struct resource_table *table_ptr; - struct resource_table *clean_table; - struct resource_table *cached_table; - size_t table_sz; - bool has_iommu; - bool auto_boot; - bool sysfs_read_only; - struct list_head dump_segments; - int nb_vdev; - u8 elf_class; - u16 elf_machine; - struct cdev cdev; - bool cdev_put_on_release; - unsigned long features[1]; -}; - -struct firmware; - -struct rproc_ops { - int (*prepare)(struct rproc *); - int (*unprepare)(struct rproc *); - int (*start)(struct rproc *); - int (*stop)(struct rproc *); - int (*attach)(struct rproc *); - int (*detach)(struct rproc *); - void (*kick)(struct rproc *, int); - void * (*da_to_va)(struct rproc *, u64, size_t, bool *); - int (*parse_fw)(struct rproc *, const struct firmware *); - int (*handle_rsc)(struct rproc *, u32, void *, int, int); - struct resource_table * (*find_loaded_rsc_table)(struct rproc *, const struct firmware *); - struct resource_table * (*get_loaded_rsc_table)(struct rproc *, size_t *); - int (*load)(struct rproc *, const struct firmware *); - int (*sanity_check)(struct rproc *, const struct firmware *); - u64 (*get_boot_addr)(struct rproc *, const struct firmware *); - unsigned long (*panic)(struct rproc *); - void (*coredump)(struct rproc *); -}; - -struct firmware { - size_t size; - const u8 *data; - void *priv; -}; - -struct resource_table { - u32 ver; - u32 num; - u32 reserved[2]; - u32 offset[0]; -}; - -struct pmu_hw_events; - -struct arm_pmu { - struct pmu pmu; - cpumask_t supported_cpus; - char *name; - int pmuver; - irqreturn_t (*handle_irq)(struct arm_pmu *); - void (*enable)(struct perf_event *); - void (*disable)(struct perf_event *); - int (*get_event_idx)(struct pmu_hw_events *, struct perf_event *); - void (*clear_event_idx)(struct pmu_hw_events *, struct perf_event *); - int (*set_event_filter)(struct hw_perf_event *, struct perf_event_attr *); - u64 (*read_counter)(struct perf_event *); - void (*write_counter)(struct perf_event *, u64); - void (*start)(struct arm_pmu *); - void (*stop)(struct arm_pmu *); - void (*reset)(void *); - int (*map_event)(struct perf_event *); - int num_events; - bool secure_access; - unsigned long pmceid_bitmap[1]; - unsigned long pmceid_ext_bitmap[1]; - struct platform_device *plat_device; - struct pmu_hw_events __attribute__((btf_type_tag("percpu"))) *hw_events; - struct hlist_node node; - struct notifier_block cpu_pm_nb; - const struct attribute_group *attr_groups[5]; - u64 reg_pmmir; - unsigned long acpi_cpuid; -}; - -struct pmu_hw_events { - struct perf_event *events[32]; - unsigned long used_mask[1]; - raw_spinlock_t pmu_lock; - struct arm_pmu *percpu_pmu; - int irq; + 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 queuecommand_may_block: 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 pmu_irq_ops { - void (*enable_pmuirq)(unsigned int); - void (*disable_pmuirq)(unsigned int); - void (*free_pmuirq)(unsigned int, int, void __attribute__((btf_type_tag("percpu"))) *); +struct scsi_data_buffer { + struct sg_table table; + unsigned int length; }; -enum armpmu_attr_groups { - ARMPMU_ATTR_GROUP_COMMON = 0, - ARMPMU_ATTR_GROUP_EVENTS = 1, - ARMPMU_ATTR_GROUP_FORMATS = 2, - ARMPMU_ATTR_GROUP_CAPS = 3, - ARMPMU_NR_ATTR_GROUPS = 4, +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; }; -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, -}; +typedef __u64 blist_flags_t; -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, -}; +struct scsi_vpd; -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, -}; +struct scsi_device_handler; -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, -}; +struct bsg_device; -enum cpu_pm_event { - CPU_PM_ENTER = 0, - CPU_PM_ENTER_FAILED = 1, - CPU_PM_EXIT = 2, - CPU_CLUSTER_PM_ENTER = 3, - CPU_CLUSTER_PM_ENTER_FAILED = 4, - CPU_CLUSTER_PM_EXIT = 5, +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 manage_system_start_stop: 1; + unsigned int manage_runtime_start_stop: 1; + unsigned int manage_shutdown: 1; + unsigned int force_runtime_start_on_system_start: 1; + unsigned int removable: 1; + unsigned int changed: 1; + unsigned int busy: 1; + unsigned int lockable: 1; + unsigned int locked: 1; + unsigned int borken: 1; + unsigned int disconnect: 1; + unsigned int soft_reset: 1; + unsigned int sdtr: 1; + unsigned int wdtr: 1; + unsigned int ppr: 1; + unsigned int tagged_supported: 1; + unsigned int simple_tags: 1; + unsigned int was_reset: 1; + unsigned int expecting_cc_ua: 1; + unsigned int use_10_for_rw: 1; + unsigned int use_10_for_ms: 1; + unsigned int set_dbd_for_ms: 1; + unsigned int no_report_opcodes: 1; + unsigned int no_write_same: 1; + unsigned int use_16_for_rw: 1; + unsigned int use_16_for_sync: 1; + unsigned int skip_ms_page_8: 1; + unsigned int skip_ms_page_3f: 1; + unsigned int skip_vpd_pages: 1; + unsigned int try_vpd_pages: 1; + unsigned int use_192_bytes_for_3f: 1; + unsigned int no_start_on_add: 1; + unsigned int allow_restart: 1; + unsigned int start_stop_pwr_cond: 1; + unsigned int no_uld_attach: 1; + unsigned int select_no_atn: 1; + unsigned int fix_capacity: 1; + unsigned int guess_capacity: 1; + unsigned int retry_hwerror: 1; + unsigned int last_sector_bug: 1; + unsigned int no_read_disc_info: 1; + unsigned int no_read_capacity_16: 1; + unsigned int try_rc_10_first: 1; + unsigned int security_supported: 1; + unsigned int is_visible: 1; + unsigned int wce_default_on: 1; + unsigned int no_dif: 1; + unsigned int broken_fua: 1; + unsigned int lun_in_cdb: 1; + unsigned int unmap_limit_for_ws: 1; + unsigned int rpm_autosuspend: 1; + unsigned int ignore_media_change: 1; + unsigned int silence_suspend: 1; + unsigned int no_vpd_size: 1; + unsigned int cdl_supported: 1; + unsigned int cdl_enable: 1; + unsigned int queue_stopped; + bool offline_already; + atomic_t disk_events_disable_depth; + unsigned long supported_events[1]; + unsigned long pending_events[1]; + struct list_head event_list; + struct work_struct event_work; + unsigned int max_device_blocked; + atomic_t iorequest_cnt; + atomic_t iodone_cnt; + atomic_t ioerr_cnt; + atomic_t iotmo_cnt; + struct device sdev_gendev; + struct device sdev_dev; + struct work_struct requeue_work; + struct scsi_device_handler *handler; + void *handler_data; + size_t dma_drain_len; + void *dma_drain_buf; + unsigned int sg_timeout; + unsigned int sg_reserved_size; + struct bsg_device *bsg_dev; + unsigned char access_state; + struct mutex state_mutex; + enum scsi_device_state sdev_state; + struct task_struct *quiesced_by; + unsigned long sdev_data[0]; }; -struct tee_client_device_id { - uuid_t uuid; +struct scsi_vpd { + struct callback_head rcu; + int len; + unsigned char data[0]; }; -struct tee_client_device { - struct tee_client_device_id id; +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 tee_ioctl_param { - __u64 attr; - __u64 a; - __u64 b; - __u64 c; -}; - -struct tee_ioctl_open_session_arg { - __u8 uuid[16]; - __u8 clnt_uuid[16]; - __u32 clnt_login; - __u32 cancel_id; - __u32 session; - __u32 ret; - __u32 ret_origin; - __u32 num_params; - struct tee_ioctl_param params[0]; -}; - -struct tee_device; +struct sas_phy_linkrates; -struct tee_context { - struct tee_device *teedev; - void *data; - struct kref refcount; - bool releasing; - bool supp_nowait; - bool cap_memref_null; -}; +struct bsg_job; -struct tee_shm { - struct tee_context *ctx; - phys_addr_t paddr; - void *kaddr; - size_t size; - unsigned int offset; - struct page **pages; - size_t num_pages; - refcount_t refcount; - u32 flags; - int id; - u64 sec_world_id; +struct sas_function_template { + int (*get_linkerrors)(struct sas_phy *); + int (*get_enclosure_identifier)(struct sas_rphy *, u64 *); + int (*get_bay_identifier)(struct sas_rphy *); + int (*phy_reset)(struct sas_phy *, int); + int (*phy_enable)(struct sas_phy *, int); + int (*phy_setup)(struct sas_phy *); + void (*phy_release)(struct sas_phy *); + int (*set_phy_speed)(struct sas_phy *, struct sas_phy_linkrates *); + void (*smp_handler)(struct bsg_job *, struct Scsi_Host *, struct sas_rphy *); }; -struct tee_ioctl_invoke_arg { - __u32 func; - __u32 session; - __u32 cancel_id; - __u32 ret; - __u32 ret_origin; - __u32 num_params; - struct tee_ioctl_param params[0]; +struct sas_phy_linkrates { + enum sas_linkrate maximum_linkrate; + enum sas_linkrate minimum_linkrate; }; -struct tee_param_memref { - size_t shm_offs; - size_t size; - struct tee_shm *shm; +struct bsg_buffer { + unsigned int payload_len; + int sg_cnt; + struct scatterlist *sg_list; }; -struct tee_param_value { - u64 a; - u64 b; - u64 c; +struct bsg_job { + struct device *dev; + struct kref kref; + unsigned int timeout; + void *request; + void *reply; + unsigned int request_len; + unsigned int reply_len; + struct bsg_buffer request_payload; + struct bsg_buffer reply_payload; + int result; + unsigned int reply_payload_rcv_len; + struct request *bidi_rq; + struct bio *bidi_bio; + void *dd_data; }; -struct tee_param { - u64 attr; - union { - struct tee_param_memref memref; - struct tee_param_value value; - } u; +struct sas_end_device { + struct sas_rphy rphy; + unsigned int ready_led_meaning: 1; + unsigned int tlr_supported: 1; + unsigned int tlr_enabled: 1; + u16 I_T_nexus_loss_timeout; + u16 initiator_response_timeout; }; -struct tee_ioctl_version_data { - __u32 impl_id; - __u32 impl_caps; - __u32 gen_caps; +struct scsi_mode_data { + __u32 length; + __u16 block_descriptor_length; + __u8 medium_type; + __u8 device_specific; + __u8 header_length; + __u8 longlba: 1; }; -struct snd_pcm_hw_constraint_list { - const unsigned int *list; - unsigned int count; - unsigned int mask; +struct scsi_sense_hdr { + u8 response_code; + u8 sense_key; + u8 asc; + u8 ascq; + u8 byte4; + u8 byte5; + u8 byte6; + u8 additional_length; }; -typedef int snd_pcm_state_t; - -struct snd_pcm_substream; - -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); -}; +typedef int bsg_job_fn(struct bsg_job *); -struct snd_dma_device { - int type; - enum dma_data_direction dir; - bool need_sync; - struct device *dev; -}; +typedef enum blk_eh_timer_return bsg_timeout_fn(struct request *); -struct snd_dma_buffer { - struct snd_dma_device dev; - unsigned char *area; - dma_addr_t addr; - size_t bytes; - void *private_data; +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 snd_pcm_group { - spinlock_t lock; - struct mutex mutex; - struct list_head substreams; - refcount_t refs; +enum { + LIBATA_MAX_PRD = 128, + LIBATA_DUMB_MAX_PRD = 64, + ATA_DEF_QUEUE = 1, + ATA_MAX_QUEUE = 32, + ATA_TAG_INTERNAL = 32, + ATA_SHORT_PAUSE = 16, + ATAPI_MAX_DRAIN = 16384, + ATA_ALL_DEVICES = 3, + ATA_SHT_EMULATED = 1, + ATA_SHT_THIS_ID = -1, + ATA_TFLAG_LBA48 = 1, + ATA_TFLAG_ISADDR = 2, + ATA_TFLAG_DEVICE = 4, + ATA_TFLAG_WRITE = 8, + ATA_TFLAG_LBA = 16, + ATA_TFLAG_FUA = 32, + ATA_TFLAG_POLLING = 64, + ATA_DFLAG_LBA = 1, + ATA_DFLAG_LBA48 = 2, + ATA_DFLAG_CDB_INTR = 4, + ATA_DFLAG_NCQ = 8, + ATA_DFLAG_FLUSH_EXT = 16, + ATA_DFLAG_ACPI_PENDING = 32, + ATA_DFLAG_ACPI_FAILED = 64, + ATA_DFLAG_AN = 128, + ATA_DFLAG_TRUSTED = 256, + ATA_DFLAG_FUA = 512, + ATA_DFLAG_DMADIR = 1024, + ATA_DFLAG_NCQ_SEND_RECV = 2048, + ATA_DFLAG_NCQ_PRIO = 4096, + ATA_DFLAG_CDL = 8192, + ATA_DFLAG_CFG_MASK = 16383, + ATA_DFLAG_PIO = 16384, + ATA_DFLAG_NCQ_OFF = 32768, + ATA_DFLAG_SLEEPING = 65536, + ATA_DFLAG_DUBIOUS_XFER = 131072, + ATA_DFLAG_NO_UNLOAD = 262144, + ATA_DFLAG_UNLOCK_HPA = 524288, + ATA_DFLAG_INIT_MASK = 1048575, + ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576, + ATA_DFLAG_CDL_ENABLED = 2097152, + ATA_DFLAG_DETACH = 16777216, + ATA_DFLAG_DETACHED = 33554432, + ATA_DFLAG_DA = 67108864, + ATA_DFLAG_DEVSLP = 134217728, + ATA_DFLAG_ACPI_DISABLED = 268435456, + ATA_DFLAG_D_SENSE = 536870912, + ATA_DFLAG_ZAC = 1073741824, + ATA_DFLAG_FEATURES_MASK = 201341696, + ATA_DEV_UNKNOWN = 0, + ATA_DEV_ATA = 1, + ATA_DEV_ATA_UNSUP = 2, + ATA_DEV_ATAPI = 3, + ATA_DEV_ATAPI_UNSUP = 4, + ATA_DEV_PMP = 5, + ATA_DEV_PMP_UNSUP = 6, + ATA_DEV_SEMB = 7, + ATA_DEV_SEMB_UNSUP = 8, + ATA_DEV_ZAC = 9, + ATA_DEV_ZAC_UNSUP = 10, + ATA_DEV_NONE = 11, + ATA_LFLAG_NO_HRST = 2, + ATA_LFLAG_NO_SRST = 4, + ATA_LFLAG_ASSUME_ATA = 8, + ATA_LFLAG_ASSUME_SEMB = 16, + ATA_LFLAG_ASSUME_CLASS = 24, + ATA_LFLAG_NO_RETRY = 32, + ATA_LFLAG_DISABLED = 64, + ATA_LFLAG_SW_ACTIVITY = 128, + ATA_LFLAG_NO_LPM = 256, + ATA_LFLAG_RST_ONCE = 512, + ATA_LFLAG_CHANGED = 1024, + ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, + ATA_FLAG_SLAVE_POSS = 1, + ATA_FLAG_SATA = 2, + ATA_FLAG_NO_LPM = 4, + ATA_FLAG_NO_LOG_PAGE = 32, + ATA_FLAG_NO_ATAPI = 64, + ATA_FLAG_PIO_DMA = 128, + ATA_FLAG_PIO_LBA48 = 256, + ATA_FLAG_PIO_POLLING = 512, + ATA_FLAG_NCQ = 1024, + ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, + ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, + ATA_FLAG_DEBUGMSG = 8192, + ATA_FLAG_FPDMA_AA = 16384, + ATA_FLAG_IGN_SIMPLEX = 32768, + ATA_FLAG_NO_IORDY = 65536, + ATA_FLAG_ACPI_SATA = 131072, + ATA_FLAG_AN = 262144, + ATA_FLAG_PMP = 524288, + ATA_FLAG_FPDMA_AUX = 1048576, + ATA_FLAG_EM = 2097152, + ATA_FLAG_SW_ACTIVITY = 4194304, + ATA_FLAG_NO_DIPM = 8388608, + ATA_FLAG_SAS_HOST = 16777216, + ATA_PFLAG_EH_PENDING = 1, + ATA_PFLAG_EH_IN_PROGRESS = 2, + ATA_PFLAG_FROZEN = 4, + ATA_PFLAG_RECOVERED = 8, + ATA_PFLAG_LOADING = 16, + ATA_PFLAG_SCSI_HOTPLUG = 64, + ATA_PFLAG_INITIALIZING = 128, + ATA_PFLAG_RESETTING = 256, + ATA_PFLAG_UNLOADING = 512, + ATA_PFLAG_UNLOADED = 1024, + ATA_PFLAG_RESUMING = 65536, + ATA_PFLAG_SUSPENDED = 131072, + ATA_PFLAG_PM_PENDING = 262144, + ATA_PFLAG_INIT_GTM_VALID = 524288, + ATA_PFLAG_PIO32 = 1048576, + ATA_PFLAG_PIO32CHANGE = 2097152, + ATA_PFLAG_EXTERNAL = 4194304, + ATA_QCFLAG_ACTIVE = 1, + ATA_QCFLAG_DMAMAP = 2, + ATA_QCFLAG_RTF_FILLED = 4, + ATA_QCFLAG_IO = 8, + ATA_QCFLAG_RESULT_TF = 16, + ATA_QCFLAG_CLEAR_EXCL = 32, + ATA_QCFLAG_QUIET = 64, + ATA_QCFLAG_RETRY = 128, + ATA_QCFLAG_HAS_CDL = 256, + ATA_QCFLAG_EH = 65536, + ATA_QCFLAG_SENSE_VALID = 131072, + ATA_QCFLAG_EH_SCHEDULED = 262144, + ATA_QCFLAG_EH_SUCCESS_CMD = 524288, + ATA_HOST_SIMPLEX = 1, + ATA_HOST_STARTED = 2, + ATA_HOST_PARALLEL_SCAN = 4, + ATA_HOST_IGNORE_ATA = 8, + ATA_HOST_NO_PART = 16, + ATA_HOST_NO_SSC = 32, + ATA_HOST_NO_DEVSLP = 64, + ATA_TMOUT_BOOT = 30000, + ATA_TMOUT_BOOT_QUICK = 7000, + ATA_TMOUT_INTERNAL_QUICK = 5000, + ATA_TMOUT_MAX_PARK = 30000, + ATA_TMOUT_FF_WAIT_LONG = 2000, + ATA_TMOUT_FF_WAIT = 800, + ATA_WAIT_AFTER_RESET = 150, + ATA_TMOUT_PMP_SRST_WAIT = 10000, + ATA_TMOUT_SPURIOUS_PHY = 10000, + BUS_UNKNOWN = 0, + BUS_DMA = 1, + BUS_IDLE = 2, + BUS_NOINTR = 3, + BUS_NODATA = 4, + BUS_TIMER = 5, + BUS_PIO = 6, + BUS_EDD = 7, + BUS_IDENTIFY = 8, + BUS_PACKET = 9, + PORT_UNKNOWN = 0, + PORT_ENABLED = 1, + PORT_DISABLED = 2, + ATA_NR_PIO_MODES = 7, + ATA_NR_MWDMA_MODES = 5, + ATA_NR_UDMA_MODES = 8, + ATA_SHIFT_PIO = 0, + ATA_SHIFT_MWDMA = 7, + ATA_SHIFT_UDMA = 12, + ATA_SHIFT_PRIO = 6, + ATA_PRIO_HIGH = 2, + ATA_DMA_PAD_SZ = 4, + ATA_ERING_SIZE = 32, + ATA_DEFER_LINK = 1, + ATA_DEFER_PORT = 2, + ATA_EH_DESC_LEN = 80, + ATA_EH_REVALIDATE = 1, + ATA_EH_SOFTRESET = 2, + ATA_EH_HARDRESET = 4, + ATA_EH_RESET = 6, + ATA_EH_ENABLE_LINK = 8, + ATA_EH_PARK = 32, + ATA_EH_GET_SUCCESS_SENSE = 64, + ATA_EH_SET_ACTIVE = 128, + ATA_EH_PERDEV_MASK = 225, + ATA_EH_ALL_ACTIONS = 15, + ATA_EHI_HOTPLUGGED = 1, + ATA_EHI_NO_AUTOPSY = 4, + ATA_EHI_QUIET = 8, + ATA_EHI_NO_RECOVERY = 16, + ATA_EHI_DID_SOFTRESET = 65536, + ATA_EHI_DID_HARDRESET = 131072, + ATA_EHI_PRINTINFO = 262144, + ATA_EHI_SETMODE = 524288, + ATA_EHI_POST_SETMODE = 1048576, + ATA_EHI_DID_RESET = 196608, + ATA_EHI_TO_SLAVE_MASK = 12, + ATA_EH_MAX_TRIES = 5, + ATA_LINK_RESUME_TRIES = 5, + ATA_EH_DEV_TRIES = 3, + ATA_EH_PMP_TRIES = 5, + ATA_EH_PMP_LINK_TRIES = 3, + SATA_PMP_RW_TIMEOUT = 3000, + ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 8, + ATA_HORKAGE_DIAGNOSTIC = 1, + ATA_HORKAGE_NODMA = 2, + ATA_HORKAGE_NONCQ = 4, + ATA_HORKAGE_MAX_SEC_128 = 8, + ATA_HORKAGE_BROKEN_HPA = 16, + ATA_HORKAGE_DISABLE = 32, + ATA_HORKAGE_HPA_SIZE = 64, + ATA_HORKAGE_IVB = 256, + ATA_HORKAGE_STUCK_ERR = 512, + ATA_HORKAGE_BRIDGE_OK = 1024, + ATA_HORKAGE_ATAPI_MOD16_DMA = 2048, + ATA_HORKAGE_FIRMWARE_WARN = 4096, + ATA_HORKAGE_1_5_GBPS = 8192, + ATA_HORKAGE_NOSETXFER = 16384, + ATA_HORKAGE_BROKEN_FPDMA_AA = 32768, + ATA_HORKAGE_DUMP_ID = 65536, + ATA_HORKAGE_MAX_SEC_LBA48 = 131072, + ATA_HORKAGE_ATAPI_DMADIR = 262144, + ATA_HORKAGE_NO_NCQ_TRIM = 524288, + ATA_HORKAGE_NOLPM = 1048576, + ATA_HORKAGE_WD_BROKEN_LPM = 2097152, + ATA_HORKAGE_ZERO_AFTER_TRIM = 4194304, + ATA_HORKAGE_NO_DMA_LOG = 8388608, + ATA_HORKAGE_NOTRIM = 16777216, + ATA_HORKAGE_MAX_SEC_1024 = 33554432, + ATA_HORKAGE_MAX_TRIM_128M = 67108864, + ATA_HORKAGE_NO_NCQ_ON_ATI = 134217728, + ATA_HORKAGE_NO_ID_DEV_LOG = 268435456, + ATA_HORKAGE_NO_LOG_DIR = 536870912, + ATA_HORKAGE_NO_FUA = 1073741824, + ATA_DMA_MASK_ATA = 1, + ATA_DMA_MASK_ATAPI = 2, + ATA_DMA_MASK_CFA = 4, + ATAPI_READ = 0, + ATAPI_WRITE = 1, + ATAPI_READ_CD = 2, + ATAPI_PASS_THRU = 3, + ATAPI_MISC = 4, + ATA_TIMING_SETUP = 1, + ATA_TIMING_ACT8B = 2, + ATA_TIMING_REC8B = 4, + ATA_TIMING_CYC8B = 8, + ATA_TIMING_8BIT = 14, + ATA_TIMING_ACTIVE = 16, + ATA_TIMING_RECOVER = 32, + ATA_TIMING_DMACK_HOLD = 64, + ATA_TIMING_CYCLE = 128, + ATA_TIMING_UDMA = 256, + ATA_TIMING_ALL = 511, + ATA_ACPI_FILTER_SETXFER = 1, + ATA_ACPI_FILTER_LOCK = 2, + ATA_ACPI_FILTER_DIPM = 4, + ATA_ACPI_FILTER_FPDMA_OFFSET = 8, + ATA_ACPI_FILTER_FPDMA_AA = 16, + ATA_ACPI_FILTER_DEFAULT = 7, }; -struct snd_pcm; - -struct snd_pcm_str; - -struct snd_pcm_ops; - -struct snd_pcm_runtime; +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 snd_timer; +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, +}; -struct snd_info_entry; +enum sw_activity { + OFF = 0, + BLINK_ON = 1, + BLINK_OFF = 2, +}; -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; +enum { + ATA_MAX_DEVICES = 2, + ATA_MAX_PRD = 256, + ATA_SECT_SIZE = 512, + ATA_MAX_SECTORS_128 = 128, + ATA_MAX_SECTORS = 256, + ATA_MAX_SECTORS_1024 = 1024, + ATA_MAX_SECTORS_LBA48 = 65535, + ATA_MAX_SECTORS_TAPE = 65535, + ATA_MAX_TRIM_RNUM = 64, + ATA_ID_WORDS = 256, + ATA_ID_CONFIG = 0, + ATA_ID_CYLS = 1, + ATA_ID_HEADS = 3, + ATA_ID_SECTORS = 6, + ATA_ID_SERNO = 10, + ATA_ID_BUF_SIZE = 21, + ATA_ID_FW_REV = 23, + ATA_ID_PROD = 27, + ATA_ID_MAX_MULTSECT = 47, + ATA_ID_DWORD_IO = 48, + ATA_ID_TRUSTED = 48, + ATA_ID_CAPABILITY = 49, + ATA_ID_OLD_PIO_MODES = 51, + ATA_ID_OLD_DMA_MODES = 52, + ATA_ID_FIELD_VALID = 53, + ATA_ID_CUR_CYLS = 54, + ATA_ID_CUR_HEADS = 55, + ATA_ID_CUR_SECTORS = 56, + ATA_ID_MULTSECT = 59, + ATA_ID_LBA_CAPACITY = 60, + ATA_ID_SWDMA_MODES = 62, + ATA_ID_MWDMA_MODES = 63, + ATA_ID_PIO_MODES = 64, + ATA_ID_EIDE_DMA_MIN = 65, + ATA_ID_EIDE_DMA_TIME = 66, + ATA_ID_EIDE_PIO = 67, + ATA_ID_EIDE_PIO_IORDY = 68, + ATA_ID_ADDITIONAL_SUPP = 69, + ATA_ID_QUEUE_DEPTH = 75, + ATA_ID_SATA_CAPABILITY = 76, + ATA_ID_SATA_CAPABILITY_2 = 77, + ATA_ID_FEATURE_SUPP = 78, + ATA_ID_MAJOR_VER = 80, + ATA_ID_COMMAND_SET_1 = 82, + ATA_ID_COMMAND_SET_2 = 83, + ATA_ID_CFSSE = 84, + ATA_ID_CFS_ENABLE_1 = 85, + ATA_ID_CFS_ENABLE_2 = 86, + ATA_ID_CSF_DEFAULT = 87, + ATA_ID_UDMA_MODES = 88, + ATA_ID_HW_CONFIG = 93, + ATA_ID_SPG = 98, + ATA_ID_LBA_CAPACITY_2 = 100, + ATA_ID_SECTOR_SIZE = 106, + ATA_ID_WWN = 108, + ATA_ID_LOGICAL_SECTOR_SIZE = 117, + ATA_ID_COMMAND_SET_3 = 119, + ATA_ID_COMMAND_SET_4 = 120, + ATA_ID_LAST_LUN = 126, + ATA_ID_DLF = 128, + ATA_ID_CSFO = 129, + ATA_ID_CFA_POWER = 160, + ATA_ID_CFA_KEY_MGMT = 162, + ATA_ID_CFA_MODES = 163, + ATA_ID_DATA_SET_MGMT = 169, + ATA_ID_SCT_CMD_XPORT = 206, + ATA_ID_ROT_SPEED = 217, + ATA_ID_PIO4 = 2, + ATA_ID_SERNO_LEN = 20, + ATA_ID_FW_REV_LEN = 8, + ATA_ID_PROD_LEN = 40, + ATA_ID_WWN_LEN = 8, + ATA_PCI_CTL_OFS = 2, + ATA_PIO0 = 1, + ATA_PIO1 = 3, + ATA_PIO2 = 7, + ATA_PIO3 = 15, + ATA_PIO4 = 31, + ATA_PIO5 = 63, + ATA_PIO6 = 127, + ATA_PIO4_ONLY = 16, + ATA_SWDMA0 = 1, + ATA_SWDMA1 = 3, + ATA_SWDMA2 = 7, + ATA_SWDMA2_ONLY = 4, + ATA_MWDMA0 = 1, + ATA_MWDMA1 = 3, + ATA_MWDMA2 = 7, + ATA_MWDMA3 = 15, + ATA_MWDMA4 = 31, + ATA_MWDMA12_ONLY = 6, + ATA_MWDMA2_ONLY = 4, + ATA_UDMA0 = 1, + ATA_UDMA1 = 3, + ATA_UDMA2 = 7, + ATA_UDMA3 = 15, + ATA_UDMA4 = 31, + ATA_UDMA5 = 63, + ATA_UDMA6 = 127, + ATA_UDMA7 = 255, + ATA_UDMA24_ONLY = 20, + ATA_UDMA_MASK_40C = 7, + ATA_PRD_SZ = 8, + ATA_PRD_TBL_SZ = 2048, + ATA_PRD_EOT = -2147483648, + ATA_DMA_TABLE_OFS = 4, + ATA_DMA_STATUS = 2, + ATA_DMA_CMD = 0, + ATA_DMA_WR = 8, + ATA_DMA_START = 1, + ATA_DMA_INTR = 4, + ATA_DMA_ERR = 2, + ATA_DMA_ACTIVE = 1, + ATA_HOB = 128, + ATA_NIEN = 2, + ATA_LBA = 64, + ATA_DEV1 = 16, + ATA_DEVICE_OBS = 160, + ATA_DEVCTL_OBS = 8, + ATA_BUSY = 128, + ATA_DRDY = 64, + ATA_DF = 32, + ATA_DSC = 16, + ATA_DRQ = 8, + ATA_CORR = 4, + ATA_SENSE = 2, + ATA_ERR = 1, + ATA_SRST = 4, + ATA_ICRC = 128, + ATA_BBK = 128, + ATA_UNC = 64, + ATA_MC = 32, + ATA_IDNF = 16, + ATA_MCR = 8, + ATA_ABORTED = 4, + ATA_TRK0NF = 2, + ATA_AMNF = 1, + ATAPI_LFS = 240, + ATAPI_EOM = 2, + ATAPI_ILI = 1, + ATAPI_IO = 2, + ATAPI_COD = 1, + ATA_REG_DATA = 0, + ATA_REG_ERR = 1, + ATA_REG_NSECT = 2, + ATA_REG_LBAL = 3, + ATA_REG_LBAM = 4, + ATA_REG_LBAH = 5, + ATA_REG_DEVICE = 6, + ATA_REG_STATUS = 7, + ATA_REG_FEATURE = 1, + ATA_REG_CMD = 7, + ATA_REG_BYTEL = 4, + ATA_REG_BYTEH = 5, + ATA_REG_DEVSEL = 6, + ATA_REG_IRQ = 2, + ATA_CMD_DEV_RESET = 8, + ATA_CMD_CHK_POWER = 229, + ATA_CMD_STANDBY = 226, + ATA_CMD_IDLE = 227, + ATA_CMD_EDD = 144, + ATA_CMD_DOWNLOAD_MICRO = 146, + ATA_CMD_DOWNLOAD_MICRO_DMA = 147, + ATA_CMD_NOP = 0, + ATA_CMD_FLUSH = 231, + ATA_CMD_FLUSH_EXT = 234, + ATA_CMD_ID_ATA = 236, + ATA_CMD_ID_ATAPI = 161, + ATA_CMD_SERVICE = 162, + ATA_CMD_READ = 200, + ATA_CMD_READ_EXT = 37, + ATA_CMD_READ_QUEUED = 38, + ATA_CMD_READ_STREAM_EXT = 43, + ATA_CMD_READ_STREAM_DMA_EXT = 42, + ATA_CMD_WRITE = 202, + ATA_CMD_WRITE_EXT = 53, + ATA_CMD_WRITE_QUEUED = 54, + ATA_CMD_WRITE_STREAM_EXT = 59, + ATA_CMD_WRITE_STREAM_DMA_EXT = 58, + ATA_CMD_WRITE_FUA_EXT = 61, + ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, + ATA_CMD_FPDMA_READ = 96, + ATA_CMD_FPDMA_WRITE = 97, + ATA_CMD_NCQ_NON_DATA = 99, + ATA_CMD_FPDMA_SEND = 100, + ATA_CMD_FPDMA_RECV = 101, + ATA_CMD_PIO_READ = 32, + ATA_CMD_PIO_READ_EXT = 36, + ATA_CMD_PIO_WRITE = 48, + ATA_CMD_PIO_WRITE_EXT = 52, + ATA_CMD_READ_MULTI = 196, + ATA_CMD_READ_MULTI_EXT = 41, + ATA_CMD_WRITE_MULTI = 197, + ATA_CMD_WRITE_MULTI_EXT = 57, + ATA_CMD_WRITE_MULTI_FUA_EXT = 206, + ATA_CMD_SET_FEATURES = 239, + ATA_CMD_SET_MULTI = 198, + ATA_CMD_PACKET = 160, + ATA_CMD_VERIFY = 64, + ATA_CMD_VERIFY_EXT = 66, + ATA_CMD_WRITE_UNCORR_EXT = 69, + ATA_CMD_STANDBYNOW1 = 224, + ATA_CMD_IDLEIMMEDIATE = 225, + ATA_CMD_SLEEP = 230, + ATA_CMD_INIT_DEV_PARAMS = 145, + ATA_CMD_READ_NATIVE_MAX = 248, + ATA_CMD_READ_NATIVE_MAX_EXT = 39, + ATA_CMD_SET_MAX = 249, + ATA_CMD_SET_MAX_EXT = 55, + ATA_CMD_READ_LOG_EXT = 47, + ATA_CMD_WRITE_LOG_EXT = 63, + ATA_CMD_READ_LOG_DMA_EXT = 71, + ATA_CMD_WRITE_LOG_DMA_EXT = 87, + ATA_CMD_TRUSTED_NONDATA = 91, + ATA_CMD_TRUSTED_RCV = 92, + ATA_CMD_TRUSTED_RCV_DMA = 93, + ATA_CMD_TRUSTED_SND = 94, + ATA_CMD_TRUSTED_SND_DMA = 95, + ATA_CMD_PMP_READ = 228, + ATA_CMD_PMP_READ_DMA = 233, + ATA_CMD_PMP_WRITE = 232, + ATA_CMD_PMP_WRITE_DMA = 235, + ATA_CMD_CONF_OVERLAY = 177, + ATA_CMD_SEC_SET_PASS = 241, + ATA_CMD_SEC_UNLOCK = 242, + ATA_CMD_SEC_ERASE_PREP = 243, + ATA_CMD_SEC_ERASE_UNIT = 244, + ATA_CMD_SEC_FREEZE_LOCK = 245, + ATA_CMD_SEC_DISABLE_PASS = 246, + ATA_CMD_CONFIG_STREAM = 81, + ATA_CMD_SMART = 176, + ATA_CMD_MEDIA_LOCK = 222, + ATA_CMD_MEDIA_UNLOCK = 223, + ATA_CMD_DSM = 6, + ATA_CMD_CHK_MED_CRD_TYP = 209, + ATA_CMD_CFA_REQ_EXT_ERR = 3, + ATA_CMD_CFA_WRITE_NE = 56, + ATA_CMD_CFA_TRANS_SECT = 135, + ATA_CMD_CFA_ERASE = 192, + ATA_CMD_CFA_WRITE_MULT_NE = 205, + ATA_CMD_REQ_SENSE_DATA = 11, + ATA_CMD_SANITIZE_DEVICE = 180, + ATA_CMD_ZAC_MGMT_IN = 74, + ATA_CMD_ZAC_MGMT_OUT = 159, + ATA_CMD_RESTORE = 16, + ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, + ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, + ATA_SUBCMD_FPDMA_SEND_DSM = 0, + ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, + ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, + ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, + ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, + ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, + ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, + ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, + ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, + ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, + ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, + ATA_LOG_DIRECTORY = 0, + ATA_LOG_SATA_NCQ = 16, + ATA_LOG_NCQ_NON_DATA = 18, + ATA_LOG_NCQ_SEND_RECV = 19, + ATA_LOG_CDL = 24, + ATA_LOG_CDL_SIZE = 512, + ATA_LOG_IDENTIFY_DEVICE = 48, + ATA_LOG_SENSE_NCQ = 15, + ATA_LOG_SENSE_NCQ_SIZE = 1024, + ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, + ATA_LOG_SUPPORTED_CAPABILITIES = 3, + ATA_LOG_CURRENT_SETTINGS = 4, + ATA_LOG_SECURITY = 6, + ATA_LOG_SATA_SETTINGS = 8, + ATA_LOG_ZONED_INFORMATION = 9, + ATA_LOG_DEVSLP_OFFSET = 48, + ATA_LOG_DEVSLP_SIZE = 8, + ATA_LOG_DEVSLP_MDAT = 0, + ATA_LOG_DEVSLP_MDAT_MASK = 31, + ATA_LOG_DEVSLP_DETO = 1, + ATA_LOG_DEVSLP_VALID = 7, + ATA_LOG_DEVSLP_VALID_MASK = 128, + ATA_LOG_NCQ_PRIO_OFFSET = 9, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, + ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, + ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, + ATA_LOG_NCQ_SEND_RECV_SIZE = 20, + ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, + ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, + ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, + ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, + ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, + ATA_LOG_NCQ_NON_DATA_SIZE = 64, + ATA_CMD_READ_LONG = 34, + ATA_CMD_READ_LONG_ONCE = 35, + ATA_CMD_WRITE_LONG = 50, + ATA_CMD_WRITE_LONG_ONCE = 51, + SETFEATURES_XFER = 3, + XFER_UDMA_7 = 71, + XFER_UDMA_6 = 70, + XFER_UDMA_5 = 69, + XFER_UDMA_4 = 68, + XFER_UDMA_3 = 67, + XFER_UDMA_2 = 66, + XFER_UDMA_1 = 65, + XFER_UDMA_0 = 64, + XFER_MW_DMA_4 = 36, + XFER_MW_DMA_3 = 35, + XFER_MW_DMA_2 = 34, + XFER_MW_DMA_1 = 33, + XFER_MW_DMA_0 = 32, + XFER_SW_DMA_2 = 18, + XFER_SW_DMA_1 = 17, + XFER_SW_DMA_0 = 16, + XFER_PIO_6 = 14, + XFER_PIO_5 = 13, + XFER_PIO_4 = 12, + XFER_PIO_3 = 11, + XFER_PIO_2 = 10, + XFER_PIO_1 = 9, + XFER_PIO_0 = 8, + XFER_PIO_SLOW = 0, + SETFEATURES_WC_ON = 2, + SETFEATURES_WC_OFF = 130, + SETFEATURES_RA_ON = 170, + SETFEATURES_RA_OFF = 85, + SETFEATURES_AAM_ON = 66, + SETFEATURES_AAM_OFF = 194, + SETFEATURES_SPINUP = 7, + SETFEATURES_SPINUP_TIMEOUT = 30000, + SETFEATURES_SATA_ENABLE = 16, + SETFEATURES_SATA_DISABLE = 144, + SETFEATURES_CDL = 13, + SATA_FPDMA_OFFSET = 1, + SATA_FPDMA_AA = 2, + SATA_DIPM = 3, + SATA_FPDMA_IN_ORDER = 4, + SATA_AN = 5, + SATA_SSP = 6, + SATA_DEVSLP = 9, + SETFEATURE_SENSE_DATA = 195, + SETFEATURE_SENSE_DATA_SUCC_NCQ = 196, + ATA_SET_MAX_ADDR = 0, + ATA_SET_MAX_PASSWD = 1, + ATA_SET_MAX_LOCK = 2, + ATA_SET_MAX_UNLOCK = 3, + ATA_SET_MAX_FREEZE_LOCK = 4, + ATA_SET_MAX_PASSWD_DMA = 5, + ATA_SET_MAX_UNLOCK_DMA = 6, + ATA_DCO_RESTORE = 192, + ATA_DCO_FREEZE_LOCK = 193, + ATA_DCO_IDENTIFY = 194, + ATA_DCO_SET = 195, + ATA_SMART_ENABLE = 216, + ATA_SMART_READ_VALUES = 208, + ATA_SMART_READ_THRESHOLDS = 209, + ATA_DSM_TRIM = 1, + ATA_SMART_LBAM_PASS = 79, + ATA_SMART_LBAH_PASS = 194, + ATAPI_PKT_DMA = 1, + ATAPI_DMADIR = 4, + ATAPI_CDB_LEN = 16, + SATA_PMP_MAX_PORTS = 15, + SATA_PMP_CTRL_PORT = 15, + SATA_PMP_GSCR_DWORDS = 128, + SATA_PMP_GSCR_PROD_ID = 0, + SATA_PMP_GSCR_REV = 1, + SATA_PMP_GSCR_PORT_INFO = 2, + SATA_PMP_GSCR_ERROR = 32, + SATA_PMP_GSCR_ERROR_EN = 33, + SATA_PMP_GSCR_FEAT = 64, + SATA_PMP_GSCR_FEAT_EN = 96, + SATA_PMP_PSCR_STATUS = 0, + SATA_PMP_PSCR_ERROR = 1, + SATA_PMP_PSCR_CONTROL = 2, + SATA_PMP_FEAT_BIST = 1, + SATA_PMP_FEAT_PMREQ = 2, + SATA_PMP_FEAT_DYNSSC = 4, + SATA_PMP_FEAT_NOTIFY = 8, + ATA_CBL_NONE = 0, + ATA_CBL_PATA40 = 1, + ATA_CBL_PATA80 = 2, + ATA_CBL_PATA40_SHORT = 3, + ATA_CBL_PATA_UNK = 4, + ATA_CBL_PATA_IGN = 5, + ATA_CBL_SATA = 6, + SCR_STATUS = 0, + SCR_ERROR = 1, + SCR_CONTROL = 2, + SCR_ACTIVE = 3, + SCR_NOTIFICATION = 4, + SERR_DATA_RECOVERED = 1, + SERR_COMM_RECOVERED = 2, + SERR_DATA = 256, + SERR_PERSISTENT = 512, + SERR_PROTOCOL = 1024, + SERR_INTERNAL = 2048, + SERR_PHYRDY_CHG = 65536, + SERR_PHY_INT_ERR = 131072, + SERR_COMM_WAKE = 262144, + SERR_10B_8B_ERR = 524288, + SERR_DISPARITY = 1048576, + SERR_CRC = 2097152, + SERR_HANDSHAKE = 4194304, + SERR_LINK_SEQ_ERR = 8388608, + SERR_TRANS_ST_ERROR = 16777216, + SERR_UNRECOG_FIS = 33554432, + SERR_DEV_XCHG = 67108864, }; -struct snd_kcontrol; +struct ata_ering_entry { + unsigned int eflags; + unsigned int err_mask; + u64 timestamp; +}; -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 ata_ering { + int cursor; + struct ata_ering_entry ring[32]; }; -struct snd_card; +struct ata_link; -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; +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; - void (*private_free)(struct snd_pcm *); - bool internal; - bool nonatomic; - bool no_device_suspend; + union acpi_object *gtf_cache; + unsigned int gtf_filter; + struct device tdev; + u64 n_sectors; + u64 n_native_sectors; + unsigned int class; + unsigned long unpark_deadline; + u8 pio_mode; + u8 dma_mode; + u8 xfer_mode; + unsigned int xfer_shift; + unsigned int multi_count; + unsigned int max_sectors; + unsigned int cdb_len; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + u16 cylinders; + u16 heads; + u16 sectors; + long: 64; + union { + u16 id[256]; + u32 gscr[128]; + }; + u8 devslp_timing[8]; + u8 ncq_send_recv_cmds[20]; + u8 ncq_non_data_cmds[64]; + u32 zac_zoned_cap; + u32 zac_zones_optimal_open; + u32 zac_zones_optimal_nonseq; + u32 zac_zones_max_open; + struct ata_cpr_log *cpr_log; + u8 cdl[512]; + int spdn_cnt; + struct ata_ering ering; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct snd_shutdown_f_ops; +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 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 ata_eh_context { + struct ata_eh_info i; + int tries[2]; + int cmd_timeout_idx[16]; + unsigned int classes[2]; + unsigned int did_probe_mask; + unsigned int unloaded_mask; + unsigned int saved_ncq_enabled; + u8 saved_xfer_mode[2]; + unsigned long last_reset; }; -struct snd_info_buffer; +struct ata_port; -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 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; + 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 snd_info_entry_ops; +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 snd_info_entry { - const char *name; - umode_t mode; - long size; - unsigned short content; +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 { - 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; + u8 error; + u8 feature; + }; + u8 nsect; + u8 lbal; + u8 lbam; + u8 lbah; + u8 device; + union { + u8 status; + u8 command; + }; + u32 auxiliary; }; -struct snd_info_buffer { - char *buffer; - unsigned int curr; - unsigned int size; - unsigned int len; - int stop; - int error; +struct ata_queued_cmd; + +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 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 *); +struct ata_port_stats { + unsigned long unhandled_irq; + unsigned long idle_irq; + unsigned long rw_reqbuf; }; -typedef int snd_kcontrol_tlv_rw_t(struct snd_kcontrol *, int, unsigned int, unsigned int __attribute__((btf_type_tag("user"))) *); +typedef u64 async_cookie_t; -typedef int snd_ctl_elem_iface_t; +struct ata_acpi_drive { + u32 pio; + u32 dma; +}; -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 ata_acpi_gtm { + struct ata_acpi_drive drive[2]; + u32 flags; }; -struct snd_ctl_elem_info; +struct ata_port_operations; -typedef int snd_kcontrol_info_t(struct snd_kcontrol *, struct snd_ctl_elem_info *); +struct ata_bmdma_prd; -struct snd_ctl_elem_value; +struct ata_host; -typedef int snd_kcontrol_get_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); +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: 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 delayed_work scsi_rescan_task; + unsigned int hsm_task_state; + struct list_head eh_done_q; + wait_queue_head_t eh_wait_q; + int eh_tries; + struct completion park_req_pending; + pm_message_t pm_mesg; + enum ata_lpm_policy target_lpm_policy; + struct timer_list fastdrain_timer; + unsigned int fastdrain_cnt; + async_cookie_t cookie; + int em_message_type; + void *private_data; + struct ata_acpi_gtm __acpi_init_gtm; + u8 *ncq_sense_buf; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u8 sector_buf[512]; +}; -typedef int snd_kcontrol_put_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); +typedef int (*ata_prereset_fn_t)(struct ata_link *, unsigned long); -struct snd_ctl_file; +typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, unsigned long); -struct snd_kcontrol_volatile { - struct snd_ctl_file *owner; - unsigned int access; -}; +typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); -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]; +struct ata_port_operations { + int (*qc_defer)(struct ata_queued_cmd *); + int (*check_atapi_dma)(struct ata_queued_cmd *); + enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *); + unsigned int (*qc_issue)(struct ata_queued_cmd *); + void (*qc_fill_rtf)(struct ata_queued_cmd *); + void (*qc_ncq_fill_rtf)(struct ata_port *, u64); + int (*cable_detect)(struct ata_port *); + unsigned int (*mode_filter)(struct ata_device *, unsigned int); + void (*set_piomode)(struct ata_port *, struct ata_device *); + void (*set_dmamode)(struct ata_port *, struct ata_device *); + int (*set_mode)(struct ata_link *, struct ata_device **); + unsigned int (*read_id)(struct ata_device *, struct ata_taskfile *, __le16 *); + void (*dev_config)(struct ata_device *); + void (*freeze)(struct ata_port *); + void (*thaw)(struct ata_port *); + ata_prereset_fn_t prereset; + ata_reset_fn_t softreset; + ata_reset_fn_t hardreset; + ata_postreset_fn_t postreset; + ata_prereset_fn_t pmp_prereset; + ata_reset_fn_t pmp_softreset; + ata_reset_fn_t pmp_hardreset; + ata_postreset_fn_t pmp_postreset; + void (*error_handler)(struct ata_port *); + void (*lost_interrupt)(struct ata_port *); + void (*post_internal_cmd)(struct ata_queued_cmd *); + void (*sched_eh)(struct ata_port *); + void (*end_eh)(struct ata_port *); + int (*scr_read)(struct ata_link *, unsigned int, u32 *); + int (*scr_write)(struct ata_link *, unsigned int, u32); + void (*pmp_attach)(struct ata_port *); + void (*pmp_detach)(struct ata_port *); + int (*set_lpm)(struct ata_link *, enum ata_lpm_policy, unsigned int); + int (*port_suspend)(struct ata_port *, pm_message_t); + int (*port_resume)(struct ata_port *); + int (*port_start)(struct ata_port *); + void (*port_stop)(struct ata_port *); + void (*host_stop)(struct ata_host *); + void (*sff_dev_select)(struct ata_port *, unsigned int); + void (*sff_set_devctl)(struct ata_port *, u8); + u8 (*sff_check_status)(struct ata_port *); + u8 (*sff_check_altstatus)(struct ata_port *); + void (*sff_tf_load)(struct ata_port *, const struct ata_taskfile *); + void (*sff_tf_read)(struct ata_port *, struct ata_taskfile *); + void (*sff_exec_command)(struct ata_port *, const struct ata_taskfile *); + unsigned int (*sff_data_xfer)(struct ata_queued_cmd *, unsigned char *, unsigned int, int); + void (*sff_irq_on)(struct ata_port *); + bool (*sff_irq_check)(struct ata_port *); + void (*sff_irq_clear)(struct ata_port *); + void (*sff_drain_fifo)(struct ata_queued_cmd *); + void (*bmdma_setup)(struct ata_queued_cmd *); + void (*bmdma_start)(struct ata_queued_cmd *); + void (*bmdma_stop)(struct ata_queued_cmd *); + u8 (*bmdma_status)(struct ata_port *); + ssize_t (*em_show)(struct ata_port *, char *); + ssize_t (*em_store)(struct ata_port *, const char *, size_t); + ssize_t (*sw_activity_show)(struct ata_device *, char *); + ssize_t (*sw_activity_store)(struct ata_device *, enum sw_activity); + ssize_t (*transmit_led_message)(struct ata_port *, u32, ssize_t); + const struct ata_port_operations *inherits; }; -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 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]; }; -struct snd_aes_iec958 { - unsigned char status[24]; - unsigned char subcode[147]; - unsigned char pad; - unsigned char dig_subframe[4]; +struct ata_bmdma_prd { + __le32 addr; + __le32 flags_len; }; -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 ata_cpr { + u8 num; + u8 num_storage_elements; + u64 start_lba; + u64 num_lbas; }; -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 ata_cpr_log { + u8 nr_cpr; + struct ata_cpr cpr[0]; }; -typedef unsigned long snd_pcm_uframes_t; - -struct snd_pcm_hw_params; - -struct snd_pcm_audio_tstamp_config; - -struct snd_pcm_audio_tstamp_report; +typedef unsigned char u_char; -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 mtd_ecc_stats { + __u32 corrected; + __u32 failed; + __u32 badblocks; + __u32 bbtblocks; }; -struct snd_mask { - __u32 bits[8]; +struct mtd_debug_info { + struct dentry *dfs_dir; }; -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 mtd_part { + struct list_head node; + u64 offset; + u64 size; + u32 flags; }; -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 mtd_master { + struct mutex partitions_lock; + struct mutex chrdev_lock; + unsigned int suspended: 1; }; -struct snd_pcm_audio_tstamp_config { - u32 type_requested: 4; - u32 report_delay: 1; -}; +struct mtd_ooblayout_ops; -struct snd_pcm_audio_tstamp_report { - u32 valid: 1; - u32 actual_type: 4; - u32 accuracy_report: 1; - u32 accuracy; -}; +struct mtd_pairing_scheme; -typedef long snd_pcm_sframes_t; +struct mtd_erase_region_info; -typedef int snd_pcm_access_t; +struct erase_info; -typedef int snd_pcm_format_t; +struct mtd_oob_ops; -typedef int snd_pcm_subformat_t; +struct otp_info; -union snd_pcm_sync_id { - unsigned char id[16]; - unsigned short id16[8]; - unsigned int id32[4]; -}; +struct nvmem_device; -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 mtd_info { + u_char type; + uint32_t flags; + uint64_t size; + uint32_t erasesize; + uint32_t writesize; + uint32_t writebufsize; + uint32_t oobsize; + uint32_t oobavail; + unsigned int erasesize_shift; + unsigned int writesize_shift; + unsigned int erasesize_mask; + unsigned int writesize_mask; + unsigned int bitflip_threshold; + const char *name; + int index; + const struct mtd_ooblayout_ops *ooblayout; + const struct mtd_pairing_scheme *pairing; + unsigned int ecc_step_size; + unsigned int ecc_strength; + int numeraseregions; + struct mtd_erase_region_info *eraseregions; + int (*_erase)(struct mtd_info *, struct erase_info *); + int (*_point)(struct mtd_info *, loff_t, size_t, size_t *, void **, resource_size_t *); + int (*_unpoint)(struct mtd_info *, loff_t, size_t); + int (*_read)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); + int (*_write)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); + int (*_panic_write)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); + int (*_read_oob)(struct mtd_info *, loff_t, struct mtd_oob_ops *); + int (*_write_oob)(struct mtd_info *, loff_t, struct mtd_oob_ops *); + int (*_get_fact_prot_info)(struct mtd_info *, size_t, size_t *, struct otp_info *); + int (*_read_fact_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); + int (*_get_user_prot_info)(struct mtd_info *, size_t, size_t *, struct otp_info *); + int (*_read_user_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); + int (*_write_user_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); + int (*_lock_user_prot_reg)(struct mtd_info *, loff_t, size_t); + int (*_erase_user_prot_reg)(struct mtd_info *, loff_t, size_t); + int (*_writev)(struct mtd_info *, const struct kvec *, unsigned long, loff_t, size_t *); + void (*_sync)(struct mtd_info *); + int (*_lock)(struct mtd_info *, loff_t, uint64_t); + int (*_unlock)(struct mtd_info *, loff_t, uint64_t); + int (*_is_locked)(struct mtd_info *, loff_t, uint64_t); + int (*_block_isreserved)(struct mtd_info *, loff_t); + int (*_block_isbad)(struct mtd_info *, loff_t); + int (*_block_markbad)(struct mtd_info *, loff_t); + int (*_max_bad_blocks)(struct mtd_info *, loff_t, size_t); + int (*_suspend)(struct mtd_info *); + void (*_resume)(struct mtd_info *); + void (*_reboot)(struct mtd_info *); + int (*_get_device)(struct mtd_info *); + void (*_put_device)(struct mtd_info *); + bool oops_panic_write; + struct notifier_block reboot_notifier; + struct mtd_ecc_stats ecc_stats; + int subpage_sft; + void *priv; + struct module *owner; + struct device dev; + struct kref refcnt; + struct mtd_debug_info dbg; + struct nvmem_device *nvmem; + struct nvmem_device *otp_user_nvmem; + struct nvmem_device *otp_factory_nvmem; + struct mtd_info *parent; + struct list_head partitions; + struct mtd_part part; + struct mtd_master master; }; -struct snd_pcm_hw_rule; +struct mtd_oob_region; -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 mtd_ooblayout_ops { + int (*ecc)(struct mtd_info *, int, struct mtd_oob_region *); + int (*free)(struct mtd_info *, int, struct mtd_oob_region *); }; -struct snd_pcm_mmap_status; +struct mtd_oob_region { + u32 offset; + u32 length; +}; -struct snd_pcm_mmap_control; +struct mtd_pairing_info; -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; +struct mtd_pairing_scheme { + int ngroups; + int (*get_info)(struct mtd_info *, int, struct mtd_pairing_info *); + int (*get_wunit)(struct mtd_info *, const struct mtd_pairing_info *); }; -typedef char __pad_before_uframe[0]; - -typedef char __pad_after_uframe[0]; +struct mtd_pairing_info { + int pair; + int group; +}; -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 mtd_erase_region_info { + uint64_t offset; + uint32_t erasesize; + uint32_t numblocks; + unsigned long *lockmap; }; -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; +struct erase_info { + uint64_t addr; + uint64_t len; + uint64_t fail_addr; }; -typedef int (*snd_pcm_hw_rule_func_t)(struct snd_pcm_hw_params *, struct snd_pcm_hw_rule *); +struct mtd_req_stats; -struct snd_pcm_hw_rule { - unsigned int cond; - int var; - int deps[5]; - snd_pcm_hw_rule_func_t func; - void *private; +struct mtd_oob_ops { + unsigned int mode; + size_t len; + size_t retlen; + size_t ooblen; + size_t oobretlen; + uint32_t ooboffs; + uint8_t *datbuf; + uint8_t *oobbuf; + struct mtd_req_stats *stats; }; -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 mtd_req_stats { + unsigned int uncorrectable_errors; + unsigned int corrected_bitflips; + unsigned int max_bitflips; }; -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; +struct otp_info { + __u32 start; + __u32 length; + __u32 locked; }; -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 nvmem_type { + NVMEM_TYPE_UNKNOWN = 0, + NVMEM_TYPE_EEPROM = 1, + NVMEM_TYPE_OTP = 2, + NVMEM_TYPE_BATTERY_BACKED = 3, + NVMEM_TYPE_FRAM = 4, }; enum { - SNDRV_PCM_TSTAMP_NONE = 0, - SNDRV_PCM_TSTAMP_ENABLE = 1, - SNDRV_PCM_TSTAMP_LAST = 1, + MTD_OPS_PLACE_OOB = 0, + MTD_OPS_AUTO_OOB = 1, + MTD_OPS_RAW = 2, }; -enum { - SNDRV_PCM_STREAM_PLAYBACK = 0, - SNDRV_PCM_STREAM_CAPTURE = 1, - SNDRV_PCM_STREAM_LAST = 1, +struct mtd_notifier { + void (*add)(struct mtd_info *); + void (*remove)(struct mtd_info *); + struct list_head list; }; -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, -}; +typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_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, -}; +typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t); -enum snd_dma_sync_mode { - SNDRV_DMA_SYNC_CPU = 0, - SNDRV_DMA_SYNC_DEVICE = 1, +struct nvmem_cell_info; + +struct nvmem_keepout; + +struct nvmem_layout; + +struct nvmem_config { + struct device *dev; + const char *name; + int id; + struct module *owner; + const struct nvmem_cell_info *cells; + int ncells; + bool add_legacy_fixed_of_cells; + const struct nvmem_keepout *keepout; + unsigned int nkeepout; + enum nvmem_type type; + bool read_only; + bool root_only; + bool ignore_wp; + struct nvmem_layout *layout; + struct device_node *of_node; + nvmem_reg_read_t reg_read; + nvmem_reg_write_t reg_write; + int size; + int word_size; + int stride; + void *priv; + bool compat; + struct device *base_dev; }; -enum { - SNDRV_DEVICE_TYPE_CONTROL = 0, - SNDRV_DEVICE_TYPE_SEQUENCER = 1, - SNDRV_DEVICE_TYPE_TIMER = 2, - SNDRV_DEVICE_TYPE_HWDEP = 3, - SNDRV_DEVICE_TYPE_RAWMIDI = 4, - SNDRV_DEVICE_TYPE_PCM_PLAYBACK = 5, - SNDRV_DEVICE_TYPE_PCM_CAPTURE = 6, - SNDRV_DEVICE_TYPE_COMPRESS = 7, +typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); + +struct nvmem_cell_info { + const char *name; + unsigned int offset; + size_t raw_len; + unsigned int bytes; + unsigned int bit_offset; + unsigned int nbits; + struct device_node *np; + nvmem_cell_post_process_t read_post_process; + void *priv; }; -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, +struct nvmem_keepout { + unsigned int start; + unsigned int end; + unsigned char value; }; -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, +struct nvmem_layout { + const char *name; + const struct of_device_id *of_match_table; + int (*add_cells)(struct device *, struct nvmem_device *, struct nvmem_layout *); + void (*fixup_cell_info)(struct nvmem_device *, struct nvmem_layout *, struct nvmem_cell_info *); + struct module *owner; + struct list_head node; }; -typedef char __pad_before_u32[0]; +struct mtd_part_parser_data { + unsigned long origin; +}; -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 mtd_partition { + const char *name; + const char * const *types; + uint64_t size; + uint64_t offset; + uint32_t mask_flags; + uint32_t add_flags; + struct device_node *of_node; }; -typedef __kernel_long_t __kernel_off_t; +struct nand_flash_dev { + char *name; + union { + struct { + uint8_t mfr_id; + uint8_t dev_id; + }; + uint8_t id[8]; + }; + unsigned int pagesize; + unsigned int chipsize; + unsigned int erasesize; + unsigned int options; + uint16_t id_len; + uint16_t oobsize; + struct { + uint16_t strength_ds; + uint16_t step_ds; + } ecc; +}; -typedef u32 compat_caddr_t; +struct nand_manufacturer_ops; -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 nand_manufacturer_desc { + int id; + char *name; + const struct nand_manufacturer_ops *ops; }; -typedef int snd_pcm_hw_param_t; - -typedef u32 u_int32_t; +struct nand_chip; -typedef u64 u_int64_t; +struct nand_onfi_params; -struct fd { - struct file *file; - unsigned int flags; +struct nand_manufacturer_ops { + void (*detect)(struct nand_chip *); + int (*init)(struct nand_chip *); + void (*cleanup)(struct nand_chip *); + void (*fixup_onfi_param_page)(struct nand_chip *, struct nand_onfi_params *); }; -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 nand_memory_organization { + unsigned int bits_per_cell; + unsigned int pagesize; + unsigned int oobsize; + unsigned int pages_per_eraseblock; + unsigned int eraseblocks_per_lun; + unsigned int max_bad_eraseblocks_per_lun; + unsigned int planes_per_lun; + unsigned int luns_per_target; + unsigned int ntargets; }; -struct snd_pcm_file { - struct snd_pcm_substream *substream; - int no_compat_mmap; - unsigned int user_pversion; +enum nand_ecc_engine_type { + NAND_ECC_ENGINE_TYPE_INVALID = 0, + NAND_ECC_ENGINE_TYPE_NONE = 1, + NAND_ECC_ENGINE_TYPE_SOFT = 2, + NAND_ECC_ENGINE_TYPE_ON_HOST = 3, + NAND_ECC_ENGINE_TYPE_ON_DIE = 4, }; -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]; +enum nand_ecc_placement { + NAND_ECC_PLACEMENT_UNKNOWN = 0, + NAND_ECC_PLACEMENT_OOB = 1, + NAND_ECC_PLACEMENT_INTERLEAVED = 2, }; -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]; +enum nand_ecc_algo { + NAND_ECC_ALGO_UNKNOWN = 0, + NAND_ECC_ALGO_HAMMING = 1, + NAND_ECC_ALGO_BCH = 2, + NAND_ECC_ALGO_RS = 3, }; -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 nand_ecc_props { + enum nand_ecc_engine_type engine_type; + enum nand_ecc_placement placement; + enum nand_ecc_algo algo; + unsigned int strength; + unsigned int step_size; + unsigned int flags; }; -struct snd_pcm_channel_info { - unsigned int channel; - __kernel_off_t offset; - unsigned int first; - unsigned int step; +struct nand_ecc_context { + struct nand_ecc_props conf; + unsigned int nsteps; + unsigned int total; + void *priv; }; -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 nand_ecc_engine; + +struct nand_ecc { + struct nand_ecc_props defaults; + struct nand_ecc_props requirements; + struct nand_ecc_props user_conf; + struct nand_ecc_context ctx; + struct nand_ecc_engine *ondie_engine; + struct nand_ecc_engine *engine; }; -struct snd_pcm_mmap_control32 { - u32 appl_ptr; - u32 avail_min; +struct nand_row_converter { + unsigned int lun_addr_shift; + unsigned int eraseblock_addr_shift; }; -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 nand_bbt { + unsigned long *cache; }; -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 nand_ops; + +struct nand_device { + struct mtd_info mtd; + struct nand_memory_organization memorg; + struct nand_ecc ecc; + struct nand_row_converter rowconv; + struct nand_bbt bbt; + const struct nand_ops *ops; }; -struct snd_xferi { - snd_pcm_sframes_t result; - void __attribute__((btf_type_tag("user"))) *buf; - snd_pcm_uframes_t frames; +struct nand_id { + u8 data[8]; + int len; }; -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 onfi_params; + +struct nand_parameters { + const char *model; + bool supports_set_get_features; + bool supports_read_cache; + unsigned long set_feature_list[4]; + unsigned long get_feature_list[4]; + struct onfi_params *onfi; }; -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 nand_manufacturer { + const struct nand_manufacturer_desc *desc; + void *priv; }; -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 nand_interface_config; -struct snd_pcm_channel_info32 { - u32 channel; - u32 offset; - u32 first; - u32 step; +struct nand_chip_ops { + int (*suspend)(struct nand_chip *); + void (*resume)(struct nand_chip *); + int (*lock_area)(struct nand_chip *, loff_t, uint64_t); + int (*unlock_area)(struct nand_chip *, loff_t, uint64_t); + int (*setup_read_retry)(struct nand_chip *, int); + int (*choose_interface_config)(struct nand_chip *, struct nand_interface_config *); }; -struct snd_xferi32 { - s32 result; - u32 buf; - u32 frames; -}; +struct nand_controller_ops; -struct snd_xfern32 { - s32 result; - u32 bufs; - u32 frames; +struct nand_controller { + struct mutex lock; + const struct nand_controller_ops *ops; + struct { + unsigned int data_only_read: 1; + unsigned int cont_read: 1; + } supported_op; }; -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 nand_legacy { + void *IO_ADDR_R; + void *IO_ADDR_W; + void (*select_chip)(struct nand_chip *, int); + u8 (*read_byte)(struct nand_chip *); + void (*write_byte)(struct nand_chip *, u8); + void (*write_buf)(struct nand_chip *, const u8 *, int); + void (*read_buf)(struct nand_chip *, u8 *, int); + void (*cmd_ctrl)(struct nand_chip *, int, unsigned int); + void (*cmdfunc)(struct nand_chip *, unsigned int, int, int); + int (*dev_ready)(struct nand_chip *); + int (*waitfunc)(struct nand_chip *); + int (*block_bad)(struct nand_chip *, loff_t); + int (*block_markbad)(struct nand_chip *, loff_t); + int (*set_features)(struct nand_chip *, int, u8 *); + int (*get_features)(struct nand_chip *, int, u8 *); + int chip_delay; + struct nand_controller dummy_controller; }; -struct netdev_name_node { - struct hlist_node hlist; - struct list_head list; - struct net_device *dev; - const char *name; +struct nand_ecc_ctrl { + enum nand_ecc_engine_type engine_type; + enum nand_ecc_placement placement; + enum nand_ecc_algo algo; + int steps; + int size; + int bytes; + int total; + int strength; + int prepad; + int postpad; + unsigned int options; + u8 *calc_buf; + u8 *code_buf; + void (*hwctl)(struct nand_chip *, int); + int (*calculate)(struct nand_chip *, const uint8_t *, uint8_t *); + int (*correct)(struct nand_chip *, uint8_t *, uint8_t *, uint8_t *); + int (*read_page_raw)(struct nand_chip *, uint8_t *, int, int); + int (*write_page_raw)(struct nand_chip *, const uint8_t *, int, int); + int (*read_page)(struct nand_chip *, uint8_t *, int, int); + int (*read_subpage)(struct nand_chip *, uint32_t, uint32_t, uint8_t *, int); + int (*write_subpage)(struct nand_chip *, uint32_t, uint32_t, const uint8_t *, int, int); + int (*write_page)(struct nand_chip *, const uint8_t *, int, int); + int (*write_oob_raw)(struct nand_chip *, int); + int (*read_oob_raw)(struct nand_chip *, int); + int (*read_oob)(struct nand_chip *, int); + int (*write_oob)(struct nand_chip *, int); }; -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 nand_bbt_descr; -struct netdev_queue_attribute { - struct attribute attr; - ssize_t (*show)(struct netdev_queue *, char *); - ssize_t (*store)(struct netdev_queue *, const char *, size_t); -}; +struct nand_secure_region; -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, +struct nand_chip { + struct nand_device base; + struct nand_id id; + struct nand_parameters parameters; + struct nand_manufacturer manufacturer; + struct nand_chip_ops ops; + struct nand_legacy legacy; + unsigned int options; + const struct nand_interface_config *current_interface_config; + struct nand_interface_config *best_interface_config; + unsigned int bbt_erase_shift; + unsigned int bbt_options; + unsigned int badblockpos; + unsigned int badblockbits; + struct nand_bbt_descr *bbt_td; + struct nand_bbt_descr *bbt_md; + struct nand_bbt_descr *badblock_pattern; + u8 *bbt; + unsigned int page_shift; + unsigned int phys_erase_shift; + unsigned int chip_shift; + unsigned int pagemask; + unsigned int subpagesize; + u8 *data_buf; + u8 *oob_poi; + struct { + unsigned int bitflips; + int page; + } pagecache; + unsigned long buf_align; + struct mutex lock; + unsigned int suspended: 1; + wait_queue_head_t resume_wq; + int cur_cs; + int read_retries; + struct nand_secure_region *secure_regions; + u8 nr_secure_regions; + struct { + bool ongoing; + unsigned int first_page; + unsigned int last_page; + } cont_read; + struct nand_controller *controller; + struct nand_ecc_ctrl ecc; + void *priv; }; -enum xps_map_type { - XPS_CPUS = 0, - XPS_RXQS = 1, - XPS_MAPS_MAX = 2, +enum nand_ecc_engine_integration { + NAND_ECC_ENGINE_INTEGRATION_INVALID = 0, + NAND_ECC_ENGINE_INTEGRATION_PIPELINED = 1, + NAND_ECC_ENGINE_INTEGRATION_EXTERNAL = 2, }; -enum { - IF_OPER_UNKNOWN = 0, - IF_OPER_NOTPRESENT = 1, - IF_OPER_DOWN = 2, - IF_OPER_LOWERLAYERDOWN = 3, - IF_OPER_TESTING = 4, - IF_OPER_DORMANT = 5, - IF_OPER_UP = 6, -}; +struct nand_ecc_engine_ops; -struct class_attribute { - struct attribute attr; - ssize_t (*show)(const struct class *, const struct class_attribute *, char *); - ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t); +struct nand_ecc_engine { + struct device *dev; + struct list_head node; + struct nand_ecc_engine_ops *ops; + enum nand_ecc_engine_integration integration; + void *priv; }; -struct ethnl_req_info; +struct nand_page_io_req; -struct ethnl_reply_data; +struct nand_ecc_engine_ops { + int (*init_ctx)(struct nand_device *); + void (*cleanup_ctx)(struct nand_device *); + int (*prepare_io_req)(struct nand_device *, struct nand_page_io_req *); + int (*finish_io_req)(struct nand_device *, struct nand_page_io_req *); +}; -struct genl_info; +enum nand_page_io_req_type { + NAND_PAGE_READ = 0, + NAND_PAGE_WRITE = 1, +}; -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 nand_pos { + unsigned int target; + unsigned int lun; + unsigned int plane; + unsigned int eraseblock; + unsigned int page; }; -struct ethnl_req_info { - struct net_device *dev; - netdevice_tracker dev_tracker; - u32 flags; +struct nand_page_io_req { + enum nand_page_io_req_type type; + struct nand_pos pos; + unsigned int dataoffs; + unsigned int datalen; + union { + const void *out; + void *in; + } databuf; + unsigned int ooboffs; + unsigned int ooblen; + union { + const void *out; + void *in; + } oobbuf; + int mode; }; -struct ethnl_reply_data { - struct net_device *dev; +struct nand_ops { + int (*erase)(struct nand_device *, const struct nand_pos *); + int (*markbad)(struct nand_device *, const struct nand_pos *); + bool (*isbad)(struct nand_device *, const struct nand_pos *); }; -struct genlmsghdr; +struct onfi_params { + int version; + u16 tPROG; + u16 tBERS; + u16 tR; + u16 tCCS; + bool fast_tCAD; + u16 sdr_timing_modes; + u16 nvddr_timing_modes; + u16 vendor_revision; + u8 vendor[88]; +}; -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; +enum nand_interface_type { + NAND_SDR_IFACE = 0, + NAND_NVDDR_IFACE = 1, }; -struct genlmsghdr { - __u8 cmd; - __u8 version; - __u16 reserved; +struct nand_sdr_timings { + u64 tBERS_max; + u32 tCCS_min; + u64 tPROG_max; + u64 tR_max; + u32 tALH_min; + u32 tADL_min; + u32 tALS_min; + u32 tAR_min; + u32 tCEA_max; + u32 tCEH_min; + u32 tCH_min; + u32 tCHZ_max; + u32 tCLH_min; + u32 tCLR_min; + u32 tCLS_min; + u32 tCOH_min; + u32 tCS_min; + u32 tDH_min; + u32 tDS_min; + u32 tFEAT_max; + u32 tIR_min; + u32 tITC_max; + u32 tRC_min; + u32 tREA_max; + u32 tREH_min; + u32 tRHOH_min; + u32 tRHW_min; + u32 tRHZ_max; + u32 tRLOH_min; + u32 tRP_min; + u32 tRR_min; + u64 tRST_max; + u32 tWB_max; + u32 tWC_min; + u32 tWH_min; + u32 tWHR_min; + u32 tWP_min; + u32 tWW_min; }; -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 nand_nvddr_timings { + u64 tBERS_max; + u32 tCCS_min; + u64 tPROG_max; + u64 tR_max; + u32 tAC_min; + u32 tAC_max; + u32 tADL_min; + u32 tCAD_min; + u32 tCAH_min; + u32 tCALH_min; + u32 tCALS_min; + u32 tCAS_min; + u32 tCEH_min; + u32 tCH_min; + u32 tCK_min; + u32 tCS_min; + u32 tDH_min; + u32 tDQSCK_min; + u32 tDQSCK_max; + u32 tDQSD_min; + u32 tDQSD_max; + u32 tDQSHZ_max; + u32 tDQSQ_max; + u32 tDS_min; + u32 tDSC_min; + u32 tFEAT_max; + u32 tITC_max; + u32 tQHS_max; + u32 tRHW_min; + u32 tRR_min; + u32 tRST_max; + u32 tWB_max; + u32 tWHR_min; + u32 tWRCK_min; + u32 tWW_min; }; -struct linkinfo_reply_data { - struct ethnl_reply_data base; - struct ethtool_link_ksettings ksettings; - struct ethtool_link_settings *lsettings; +struct nand_timings { + unsigned int mode; + union { + struct nand_sdr_timings sdr; + struct nand_nvddr_timings nvddr; + }; }; -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 nand_interface_config { + enum nand_interface_type type; + struct nand_timings timings; }; -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 nand_operation; + +struct nand_controller_ops { + int (*attach_chip)(struct nand_chip *); + void (*detach_chip)(struct nand_chip *); + int (*exec_op)(struct nand_chip *, const struct nand_operation *, bool); + int (*setup_interface)(struct nand_chip *, int, const struct nand_interface_config *); }; -struct udp_hslot; +struct nand_op_instr; -struct udp_table { - struct udp_hslot *hash; - struct udp_hslot *hash2; - unsigned int mask; - unsigned int log; +struct nand_operation { + unsigned int cs; + const struct nand_op_instr *instrs; + unsigned int ninstrs; }; -struct udp_hslot { - struct hlist_head head; - int count; - spinlock_t lock; +enum nand_op_instr_type { + NAND_OP_CMD_INSTR = 0, + NAND_OP_ADDR_INSTR = 1, + NAND_OP_DATA_IN_INSTR = 2, + NAND_OP_DATA_OUT_INSTR = 3, + NAND_OP_WAITRDY_INSTR = 4, }; -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 nand_op_cmd_instr { + u8 opcode; }; -struct inet_protosw { - struct list_head list; - unsigned short type; - unsigned short protocol; - struct proto *prot; - const struct proto_ops *ops; - unsigned char flags; +struct nand_op_addr_instr { + unsigned int naddrs; + const u8 *addrs; }; -struct udp_seq_afinfo { - sa_family_t family; - struct udp_table *udp_table; +struct nand_op_data_instr { + unsigned int len; + union { + void *in; + const void *out; + } buf; + bool force_8bit; }; -struct ip_options; +struct nand_op_waitrdy_instr { + unsigned int timeout_ms; +}; -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 nand_op_instr { + enum nand_op_instr_type type; + union { + struct nand_op_cmd_instr cmd; + struct nand_op_addr_instr addr; + struct nand_op_data_instr data; + struct nand_op_waitrdy_instr waitrdy; + } ctx; + unsigned int delay_ns; }; -struct inet_cork_full { - struct inet_cork base; - struct flowi fl; +struct nand_bbt_descr { + int options; + int pages[8]; + int offs; + int veroffs; + uint8_t version[8]; + int len; + int maxblocks; + int reserved_block_code; + uint8_t *pattern; }; -struct ipv6_pinfo; +struct nand_secure_region { + u64 offset; + u64 size; +}; -struct ip_options_rcu; +struct nand_onfi_params { + u8 sig[4]; + __le16 revision; + __le16 features; + __le16 opt_cmd; + u8 reserved0[2]; + __le16 ext_param_page_length; + u8 num_of_param_pages; + u8 reserved1[17]; + char manufacturer[12]; + char model[20]; + u8 jedec_id; + __le16 date_code; + u8 reserved2[13]; + __le32 byte_per_page; + __le16 spare_bytes_per_page; + __le32 data_bytes_per_ppage; + __le16 spare_bytes_per_ppage; + __le32 pages_per_block; + __le32 blocks_per_lun; + u8 lun_count; + u8 addr_cycles; + u8 bits_per_cell; + __le16 bb_per_lun; + __le16 block_endurance; + u8 guaranteed_good_blocks; + __le16 guaranteed_block_endurance; + u8 programs_per_page; + u8 ppage_attr; + u8 ecc_bits; + u8 interleaved_bits; + u8 interleaved_ops; + u8 reserved3[13]; + u8 io_pin_capacitance_max; + __le16 sdr_timing_modes; + __le16 program_cache_timing_mode; + __le16 t_prog; + __le16 t_bers; + __le16 t_r; + __le16 t_ccs; + u8 nvddr_timing_modes; + u8 nvddr2_timing_modes; + u8 nvddr_nvddr2_features; + __le16 clk_pin_capacitance_typ; + __le16 io_pin_capacitance_typ; + __le16 input_pin_capacitance_typ; + u8 input_pin_capacitance_max; + u8 driver_strength_support; + __le16 t_int_r; + __le16 t_adl; + u8 reserved4[8]; + __le16 vendor_revision; + u8 vendor[88]; + __le16 crc; +} __attribute__((packed)); -struct ip_mc_socklist; +enum spi_mem_data_dir { + SPI_MEM_NO_DATA = 0, + SPI_MEM_DATA_IN = 1, + SPI_MEM_DATA_OUT = 2, +}; -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; - atomic_t inet_id; - __be16 inet_sport; - __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; +enum spi_nor_protocol { + SNOR_PROTO_1_1_1 = 65793, + SNOR_PROTO_1_1_2 = 65794, + SNOR_PROTO_1_1_4 = 65796, + SNOR_PROTO_1_1_8 = 65800, + SNOR_PROTO_1_2_2 = 66050, + SNOR_PROTO_1_4_4 = 66564, + SNOR_PROTO_1_8_8 = 67592, + SNOR_PROTO_2_2_2 = 131586, + SNOR_PROTO_4_4_4 = 263172, + SNOR_PROTO_8_8_8 = 526344, + SNOR_PROTO_1_1_1_DTR = 16843009, + SNOR_PROTO_1_2_2_DTR = 16843266, + SNOR_PROTO_1_4_4_DTR = 16843780, + SNOR_PROTO_1_8_8_DTR = 16844808, + SNOR_PROTO_8_8_8_DTR = 17303560, }; -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; - long: 64; - long: 64; - struct sk_buff_head reader_queue; - int forward_deficit; - int forward_threshold; - long: 64; - long: 64; - long: 64; - long: 64; +enum spi_nor_cmd_ext { + SPI_NOR_EXT_NONE = 0, + SPI_NOR_EXT_REPEAT = 1, + SPI_NOR_EXT_INVERT = 2, + SPI_NOR_EXT_HEX = 3, }; -struct in6_pktinfo { - struct in6_addr ipi6_addr; - int ipi6_ifindex; +struct spi_delay { + u16 value; + u8 unit; }; -struct ipv6_txoptions; +struct spi_controller; -struct inet6_cork { - struct ipv6_txoptions *opt; - u8 hop_limit; - u8 tclass; +struct spi_statistics; + +struct spi_device { + struct device dev; + struct spi_controller *controller; + struct spi_controller *master; + u32 max_speed_hz; + u8 chip_select; + u8 bits_per_word; + bool rt; + u32 mode; + int irq; + void *controller_state; + void *controller_data; + char modalias[32]; + const char *driver_override; + struct gpio_desc *cs_gpiod; + struct spi_delay word_delay; + struct spi_delay cs_setup; + struct spi_delay cs_hold; + struct spi_delay cs_inactive; + struct spi_statistics __attribute__((btf_type_tag("percpu"))) *pcpu_statistics; }; -struct ipv6_mc_socklist; +struct kthread_work; -struct ipv6_ac_socklist; +typedef void (*kthread_work_func_t)(struct kthread_work *); -struct ipv6_fl_socklist; +struct kthread_worker; -struct ipv6_pinfo { - struct in6_addr saddr; - struct in6_pktinfo sticky_pktinfo; - const struct in6_addr *daddr_cache; - const struct in6_addr *saddr_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 kthread_work { + struct list_head node; + kthread_work_func_t func; + struct kthread_worker *worker; + int canceling; }; -struct ip6_sf_socklist; +struct spi_message; -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 spi_transfer; -struct ip6_sf_socklist { - unsigned int sl_max; - unsigned int sl_count; - struct callback_head rcu; - struct in6_addr sl_addr[0]; +struct spi_controller_mem_ops; + +struct spi_controller_mem_caps; + +struct spi_controller { + struct device dev; + struct list_head list; + s16 bus_num; + u16 num_chipselect; + u16 dma_alignment; + u32 mode_bits; + u32 buswidth_override_bits; + u32 bits_per_word_mask; + u32 min_speed_hz; + u32 max_speed_hz; + u16 flags; + bool devm_allocated; + union { + bool slave; + bool target; + }; + size_t (*max_transfer_size)(struct spi_device *); + size_t (*max_message_size)(struct spi_device *); + struct mutex io_mutex; + struct mutex add_lock; + spinlock_t bus_lock_spinlock; + struct mutex bus_lock_mutex; + bool bus_lock_flag; + int (*setup)(struct spi_device *); + int (*set_cs_timing)(struct spi_device *); + int (*transfer)(struct spi_device *, struct spi_message *); + void (*cleanup)(struct spi_device *); + bool (*can_dma)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + struct device *dma_map_dev; + struct device *cur_rx_dma_dev; + struct device *cur_tx_dma_dev; + bool queued; + struct kthread_worker *kworker; + struct kthread_work pump_messages; + spinlock_t queue_lock; + struct list_head queue; + struct spi_message *cur_msg; + struct completion cur_msg_completion; + bool cur_msg_incomplete; + bool cur_msg_need_completion; + bool busy; + bool running; + bool rt; + bool auto_runtime_pm; + bool cur_msg_mapped; + char last_cs; + bool last_cs_mode_high; + bool fallback; + struct completion xfer_completion; + size_t max_dma_len; + int (*prepare_transfer_hardware)(struct spi_controller *); + int (*transfer_one_message)(struct spi_controller *, struct spi_message *); + int (*unprepare_transfer_hardware)(struct spi_controller *); + int (*prepare_message)(struct spi_controller *, struct spi_message *); + int (*unprepare_message)(struct spi_controller *, struct spi_message *); + union { + int (*slave_abort)(struct spi_controller *); + int (*target_abort)(struct spi_controller *); + }; + void (*set_cs)(struct spi_device *, bool); + int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + void (*handle_err)(struct spi_controller *, struct spi_message *); + const struct spi_controller_mem_ops *mem_ops; + const struct spi_controller_mem_caps *mem_caps; + struct gpio_desc **cs_gpiods; + bool use_gpio_descriptors; + s8 unused_native_cs; + s8 max_native_cs; + struct spi_statistics __attribute__((btf_type_tag("percpu"))) *pcpu_statistics; + struct dma_chan *dma_tx; + struct dma_chan *dma_rx; + void *dummy_rx; + void *dummy_tx; + int (*fw_translate_cs)(struct spi_controller *, unsigned int); + bool ptp_sts_supported; + unsigned long irq_flags; + bool queue_empty; + bool must_async; }; -struct ipv6_ac_socklist { - struct in6_addr acl_addr; - int acl_ifindex; - struct ipv6_ac_socklist *acl_next; +struct spi_message { + struct list_head transfers; + struct spi_device *spi; + unsigned int is_dma_mapped: 1; + bool prepared; + int status; + void (*complete)(void *); + void *context; + unsigned int frame_length; + unsigned int actual_length; + struct list_head queue; + void *state; + struct list_head resources; }; -struct ip6_flowlabel; +struct ptp_system_timestamp; -struct ipv6_fl_socklist { - struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *next; - struct ip6_flowlabel *fl; - struct callback_head rcu; +struct spi_transfer { + const void *tx_buf; + void *rx_buf; + unsigned int len; + u16 error; + dma_addr_t tx_dma; + dma_addr_t rx_dma; + struct sg_table tx_sg; + struct sg_table rx_sg; + unsigned int dummy_data: 1; + unsigned int cs_off: 1; + unsigned int cs_change: 1; + unsigned int tx_nbits: 3; + unsigned int rx_nbits: 3; + unsigned int timestamped: 1; + u8 bits_per_word; + struct spi_delay delay; + struct spi_delay cs_change_delay; + struct spi_delay word_delay; + u32 speed_hz; + u32 effective_speed_hz; + unsigned int ptp_sts_word_pre; + unsigned int ptp_sts_word_post; + struct ptp_system_timestamp *ptp_sts; + struct list_head transfer_list; }; -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 kthread_worker { + unsigned int flags; + raw_spinlock_t lock; + struct list_head work_list; + struct list_head delayed_work_list; + struct task_struct *task; + struct kthread_work *current_work; }; -struct ipv6_opt_hdr; +struct spi_mem; -struct ipv6_rt_hdr; +struct spi_mem_op; -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 spi_mem_dirmap_desc; -struct ipv6_opt_hdr { - __u8 nexthdr; - __u8 hdrlen; +struct spi_controller_mem_ops { + int (*adjust_op_size)(struct spi_mem *, struct spi_mem_op *); + bool (*supports_op)(struct spi_mem *, const struct spi_mem_op *); + int (*exec_op)(struct spi_mem *, const struct spi_mem_op *); + const char * (*get_name)(struct spi_mem *); + int (*dirmap_create)(struct spi_mem_dirmap_desc *); + void (*dirmap_destroy)(struct spi_mem_dirmap_desc *); + ssize_t (*dirmap_read)(struct spi_mem_dirmap_desc *, u64, size_t, void *); + ssize_t (*dirmap_write)(struct spi_mem_dirmap_desc *, u64, size_t, const void *); + int (*poll_status)(struct spi_mem *, const struct spi_mem_op *, u16, u16, unsigned long, unsigned long, unsigned long); }; -struct ipv6_rt_hdr { - __u8 nexthdr; - __u8 hdrlen; - __u8 type; - __u8 segments_left; +struct spi_mem { + struct spi_device *spi; + void *drvpriv; + const char *name; }; -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 spi_mem_op { + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + u16 opcode; + } cmd; + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + u64 val; + } addr; + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + } dummy; + struct { + u8 buswidth; + u8 dtr: 1; + u8 ecc: 1; + u8 __pad: 6; + enum spi_mem_data_dir dir; + unsigned int nbytes; + union { + void *in; + const void *out; + } buf; + } data; }; -struct ip_options_rcu { - struct callback_head rcu; - struct ip_options opt; +struct spi_mem_dirmap_info { + struct spi_mem_op op_tmpl; + u64 offset; + u64 length; }; -struct ip_mreqn { - struct in_addr imr_multiaddr; - struct in_addr imr_address; - int imr_ifindex; +struct spi_mem_dirmap_desc { + struct spi_mem *mem; + struct spi_mem_dirmap_info info; + unsigned int nodirmap; + void *priv; }; -struct ip_sf_socklist; +struct spi_controller_mem_caps { + bool dtr; + bool ecc; +}; -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 spi_statistics { + struct u64_stats_sync syncp; + u64_stats_t messages; + u64_stats_t transfers; + u64_stats_t errors; + u64_stats_t timedout; + u64_stats_t spi_sync; + u64_stats_t spi_sync_immediate; + u64_stats_t spi_async; + u64_stats_t bytes; + u64_stats_t bytes_rx; + u64_stats_t bytes_tx; + u64_stats_t transfer_bytes_histo[17]; + u64_stats_t transfers_split_maxsize; }; -struct inet_diag_req_v2; +struct spi_nor_rww { + wait_queue_head_t wait; + bool ongoing_io; + bool ongoing_rd; + bool ongoing_pe; + unsigned int used_banks; +}; -struct inet_diag_msg; +struct flash_info; -struct inet_diag_handler { - void (*dump)(struct sk_buff *, struct netlink_callback *, const struct inet_diag_req_v2 *); - int (*dump_one)(struct netlink_callback *, const struct inet_diag_req_v2 *); - void (*idiag_get_info)(struct sock *, struct inet_diag_msg *, void *); - int (*idiag_get_aux)(struct sock *, bool, struct sk_buff *); - size_t (*idiag_get_aux_size)(struct sock *, bool); - int (*destroy)(struct sk_buff *, const struct inet_diag_req_v2 *); - __u16 idiag_type; - __u16 idiag_info_size; +struct spi_nor_manufacturer; + +struct sfdp; + +struct spi_nor_controller_ops; + +struct spi_nor_flash_parameter; + +struct spi_nor { + struct mtd_info mtd; + struct mutex lock; + struct spi_nor_rww rww; + struct device *dev; + struct spi_mem *spimem; + u8 *bouncebuf; + size_t bouncebuf_size; + u8 *id; + const struct flash_info *info; + const struct spi_nor_manufacturer *manufacturer; + u8 addr_nbytes; + u8 erase_opcode; + u8 read_opcode; + u8 read_dummy; + u8 program_opcode; + enum spi_nor_protocol read_proto; + enum spi_nor_protocol write_proto; + enum spi_nor_protocol reg_proto; + bool sst_write_second; + u32 flags; + enum spi_nor_cmd_ext cmd_ext_type; + struct sfdp *sfdp; + struct dentry *debugfs_root; + const struct spi_nor_controller_ops *controller_ops; + struct spi_nor_flash_parameter *params; + struct { + struct spi_mem_dirmap_desc *rdesc; + struct spi_mem_dirmap_desc *wdesc; + } dirmap; + void *priv; }; -struct inet_ehash_bucket; +struct spi_nor_id; -struct inet_bind_hashbucket; +struct spi_nor_otp_organization; -struct inet_listen_hashbucket; +struct spi_nor_fixups; -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 flash_info { + char *name; + const struct spi_nor_id *id; + size_t size; + unsigned int sector_size; + u16 page_size; + u8 n_banks; + u8 addr_nbytes; + u16 flags; + u8 no_sfdp_flags; + u8 fixup_flags; + u8 mfr_flags; + const struct spi_nor_otp_organization *otp; + const struct spi_nor_fixups *fixups; }; -struct hlist_nulls_head { - struct hlist_nulls_node *first; +struct spi_nor_id { + const u8 *bytes; + u8 len; }; -struct inet_ehash_bucket { - struct hlist_nulls_head chain; +struct spi_nor_otp_organization { + size_t len; + loff_t base; + loff_t offset; + unsigned int n_regions; }; -struct inet_bind_hashbucket { - spinlock_t lock; - struct hlist_head chain; +struct sfdp_parameter_header; + +struct sfdp_bfpt; + +struct spi_nor_fixups { + void (*default_init)(struct spi_nor *); + int (*post_bfpt)(struct spi_nor *, const struct sfdp_parameter_header *, const struct sfdp_bfpt *); + int (*post_sfdp)(struct spi_nor *); + int (*late_init)(struct spi_nor *); }; -struct inet_listen_hashbucket { - spinlock_t lock; - struct hlist_nulls_head nulls_head; +struct sfdp_parameter_header { + u8 id_lsb; + u8 minor; + u8 major; + u8 length; + u8 parameter_table_pointer[3]; + u8 id_msb; }; -struct ack_sample { - u32 pkts_acked; - s32 rtt_us; - u32 in_flight; +struct sfdp_bfpt { + u32 dwords[20]; }; -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 spi_nor_manufacturer { + const char *name; + const struct flash_info *parts; + unsigned int nparts; + const struct spi_nor_fixups *fixups; }; -struct tcpvegas_info { - __u32 tcpv_enabled; - __u32 tcpv_rttcnt; - __u32 tcpv_rtt; - __u32 tcpv_minrtt; +struct sfdp { + size_t num_dwords; + u32 *dwords; }; -struct tcp_dctcp_info { - __u16 dctcp_enabled; - __u16 dctcp_ce_state; - __u32 dctcp_alpha; - __u32 dctcp_ab_ecn; - __u32 dctcp_ab_tot; +struct spi_nor_controller_ops { + int (*prepare)(struct spi_nor *); + void (*unprepare)(struct spi_nor *); + int (*read_reg)(struct spi_nor *, u8, u8 *, size_t); + int (*write_reg)(struct spi_nor *, u8, const u8 *, size_t); + ssize_t (*read)(struct spi_nor *, loff_t, size_t, u8 *); + ssize_t (*write)(struct spi_nor *, loff_t, size_t, const u8 *); + int (*erase)(struct spi_nor *, loff_t); }; -struct tcp_bbr_info { - __u32 bbr_bw_lo; - __u32 bbr_bw_hi; - __u32 bbr_min_rtt; - __u32 bbr_pacing_gain; - __u32 bbr_cwnd_gain; +struct spi_nor_hwcaps { + u32 mask; }; -union tcp_cc_info { - struct tcpvegas_info vegas; - struct tcp_dctcp_info dctcp; - struct tcp_bbr_info bbr; +struct spi_nor_read_command { + u8 num_mode_clocks; + u8 num_wait_states; + u8 opcode; + enum spi_nor_protocol proto; }; -struct inet_diag_sockid { - __be16 idiag_sport; - __be16 idiag_dport; - __be32 idiag_src[4]; - __be32 idiag_dst[4]; - __u32 idiag_if; - __u32 idiag_cookie[2]; +struct spi_nor_pp_command { + u8 opcode; + enum spi_nor_protocol proto; }; -struct inet_diag_req_v2 { - __u8 sdiag_family; - __u8 sdiag_protocol; - __u8 idiag_ext; - __u8 pad; - __u32 idiag_states; - struct inet_diag_sockid id; +struct spi_nor_erase_region { + u64 offset; + u64 size; }; -struct inet_diag_msg { - __u8 idiag_family; - __u8 idiag_state; - __u8 idiag_timer; - __u8 idiag_retrans; - struct inet_diag_sockid id; - __u32 idiag_expires; - __u32 idiag_rqueue; - __u32 idiag_wqueue; - __u32 idiag_uid; - __u32 idiag_inode; +struct spi_nor_erase_type { + u32 size; + u32 size_shift; + u32 size_mask; + u8 opcode; + u8 idx; }; -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 spi_nor_erase_map { + struct spi_nor_erase_region *regions; + struct spi_nor_erase_region uniform_region; + struct spi_nor_erase_type erase_type[4]; + u8 uniform_erase_type; }; -enum sock_type { - SOCK_STREAM = 1, - SOCK_DGRAM = 2, - SOCK_RAW = 3, - SOCK_RDM = 4, - SOCK_SEQPACKET = 5, - SOCK_DCCP = 6, - SOCK_PACKET = 10, +struct spi_nor_otp_ops; + +struct spi_nor_otp { + const struct spi_nor_otp_organization *org; + const struct spi_nor_otp_ops *ops; }; -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 spi_nor_locking_ops; + +struct spi_nor_flash_parameter { + u64 bank_size; + u64 size; + u32 writesize; + u32 page_size; + u8 addr_nbytes; + u8 addr_mode_nbytes; + u8 rdsr_dummy; + u8 rdsr_addr_nbytes; + u8 n_banks; + u8 n_dice; + u32 *vreg_offset; + struct spi_nor_hwcaps hwcaps; + struct spi_nor_read_command reads[16]; + struct spi_nor_pp_command page_programs[8]; + struct spi_nor_erase_map erase_map; + struct spi_nor_otp otp; + int (*set_octal_dtr)(struct spi_nor *, bool); + int (*quad_enable)(struct spi_nor *); + int (*set_4byte_addr_mode)(struct spi_nor *, bool); + u32 (*convert_addr)(struct spi_nor *, u32); + int (*setup)(struct spi_nor *, const struct spi_nor_hwcaps *); + int (*ready)(struct spi_nor *); + const struct spi_nor_locking_ops *locking_ops; + void *priv; }; -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, +struct spi_nor_otp_ops { + int (*read)(struct spi_nor *, loff_t, size_t, u8 *); + int (*write)(struct spi_nor *, loff_t, size_t, const u8 *); + int (*lock)(struct spi_nor *, unsigned int); + int (*erase)(struct spi_nor *, loff_t); + int (*is_locked)(struct spi_nor *, unsigned int); }; -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, +struct spi_nor_locking_ops { + int (*lock)(struct spi_nor *, loff_t, uint64_t); + int (*unlock)(struct spi_nor *, loff_t, uint64_t); + int (*is_locked)(struct spi_nor *, loff_t, uint64_t); }; -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; +enum { + MSPI_DONE = 1, + BSPI_DONE = 2, + BSPI_ERR = 4, + MSPI_BSPI_DONE = 7, }; -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 bcm_qspi_soc_intc { + void (*bcm_qspi_int_ack)(struct bcm_qspi_soc_intc *, int); + void (*bcm_qspi_int_set)(struct bcm_qspi_soc_intc *, int, bool); + u32 (*bcm_qspi_get_int_status)(struct bcm_qspi_soc_intc *); }; -struct inet_bind_bucket; +struct bcm_iproc_intc { + struct bcm_qspi_soc_intc soc_intc; + struct platform_device *pdev; + void *int_reg; + void *int_status_reg; + spinlock_t soclock; + bool big_endian; +}; -struct inet_bind2_bucket; +struct mtk_chip_config { + u32 sample_sel; + u32 tick_delay; +}; -struct inet_connection_sock_af_ops; +struct mtk_spi_compatible { + bool need_pad_sel; + bool must_tx; + bool enhance_timing; + bool dma_ext; + bool no_need_unprepare; + bool ipm_design; +}; -struct tcp_ulp_ops; +struct mtk_spi { + void *base; + u32 state; + int pad_num; + u32 *pad_sel; + struct clk *parent_clk; + struct clk *sel_clk; + struct clk *spi_clk; + struct clk *spi_hclk; + struct spi_transfer *cur_transfer; + u32 xfer_len; + u32 num_xfered; + struct scatterlist *tx_sgl; + struct scatterlist *rx_sgl; + u32 tx_sgl_len; + u32 rx_sgl_len; + const struct mtk_spi_compatible *dev_comp; + u32 spi_clk_hz; + struct completion spimem_done; + bool use_spimem; + struct device *dev; + dma_addr_t tx_dma; + dma_addr_t rx_dma; +}; -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 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 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 mdio_device; + +struct phy_package_shared; + +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 minmax_sample { - u32 t; - u32 v; +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 minmax { - struct minmax_sample s[3]; +struct phy_package_shared { + int addr; + refcount_t refcnt; + unsigned long flags; + size_t priv_size; + void *priv; }; -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; +enum cavium_mdiobus_mode { + UNINIT = 0, + C22 = 1, + C45 = 2, }; -struct tcp_sack_block { - u32 start_seq; - u32 end_seq; +struct cavium_mdiobus { + struct mii_bus *mii_bus; + void *register_base; + enum cavium_mdiobus_mode mode; }; -struct tcp_fastopen_request; +struct cvmx_smix_clk_s { + u64 phase: 8; + u64 sample: 4; + u64 preamble: 1; + u64 clk_idle: 1; + u64 reserved_14_14: 1; + u64 sample_mode: 1; + u64 sample_hi: 5; + u64 reserved_21_23: 3; + u64 mode: 1; + u64 reserved_25_63: 39; +}; -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; - struct tcp_fastopen_request *fastopen_req; - struct request_sock __attribute__((btf_type_tag("rcu"))) *fastopen_rsk; - struct saved_syn *saved_syn; +union cvmx_smix_clk { + u64 u64; + struct cvmx_smix_clk_s s; }; -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 cvmx_smix_wr_dat_s { + u64 dat: 16; + u64 val: 1; + u64 pending: 1; + u64 reserved_18_63: 46; }; -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; +union cvmx_smix_wr_dat { + u64 u64; + struct cvmx_smix_wr_dat_s s; }; -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 cvmx_smix_cmd_s { + u64 reg_adr: 5; + u64 reserved_5_7: 3; + u64 phy_adr: 5; + u64 reserved_13_15: 3; + u64 phy_op: 2; + u64 reserved_18_63: 46; }; -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; +union cvmx_smix_cmd { + u64 u64; + struct cvmx_smix_cmd_s s; }; -struct tcp_fastopen_cookie { - __le64 val[2]; - s8 len; - bool exp; +struct cvmx_smix_rd_dat_s { + u64 dat: 16; + u64 val: 1; + u64 pending: 1; + u64 reserved_18_63: 46; }; -struct tcp_fastopen_request { - struct tcp_fastopen_cookie cookie; - struct msghdr *data; - size_t size; - int copied; - struct ubuf_info *uarg; +union cvmx_smix_rd_dat { + u64 u64; + struct cvmx_smix_rd_dat_s s; }; -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; +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; }; -enum p9_trans_status { - Connected = 0, - BeginDisconnect = 1, - Disconnected = 2, - Hung = 3, +struct ethtool_regs { + __u32 cmd; + __u32 version; + __u32 len; + __u8 data[0]; }; -struct p9_client; +struct ethtool_wolinfo { + __u32 cmd; + __u32 supported; + __u32 wolopts; + __u8 sopass[6]; +}; -struct p9_req_t; +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, +}; -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 *); +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, }; -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]; +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, }; -struct p9_fcall { - u32 size; - u8 id; - u16 tag; - size_t offset; - size_t capacity; - struct kmem_cache *cache; - u8 *sdata; - bool zc; +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, }; -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 ethtool_link_ext_substate_cable_issue { + ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1, + ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 2, }; -struct genl_split_ops; +enum ethtool_link_ext_substate_module { + ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1, +}; -struct genl_ops; +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 genl_small_ops; +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 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 ethtool_link_ext_stats { + u64 link_down_events; }; -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 ethtool_eeprom { + __u32 cmd; + __u32 magic; + __u32 offset; + __u32 len; + __u8 data[0]; }; -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 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 genl_multicast_group { - char name[16]; - u8 flags; +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; }; -typedef u16 efi_char16_t; - -struct efi_generic_dev_path; - -typedef struct efi_generic_dev_path efi_device_path_protocol_t; - -union efi_device_path_from_text_protocol { - struct { - efi_device_path_protocol_t * (*convert_text_to_device_node)(const efi_char16_t *); - efi_device_path_protocol_t * (*convert_text_to_device_path)(const efi_char16_t *); - }; - struct { - u32 convert_text_to_device_node; - u32 convert_text_to_device_path; - } mixed_mode; +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; }; -typedef union efi_device_path_from_text_protocol efi_device_path_from_text_protocol_t; - -struct efi_generic_dev_path { - u8 type; - u8 sub_type; - u16 length; +struct kernel_ethtool_ringparam { + u32 rx_buf_len; + u8 tcp_data_split; + u8 tx_push; + u8 rx_push; + u32 cqe_size; + u32 tx_push_buf_len; + u32 tx_push_buf_max_len; }; -struct efi_file_path_dev_path { - struct efi_generic_dev_path header; - efi_char16_t filename[0]; +enum ethtool_mac_stats_src { + ETHTOOL_MAC_STATS_SRC_AGGREGATE = 0, + ETHTOOL_MAC_STATS_SRC_EMAC = 1, + ETHTOOL_MAC_STATS_SRC_PMAC = 2, }; -typedef guid_t efi_guid_t; - -union efi_file_protocol; - -typedef union efi_file_protocol efi_file_protocol_t; - -union efi_file_protocol { - struct { - u64 revision; - efi_status_t (*open)(efi_file_protocol_t *, efi_file_protocol_t **, efi_char16_t *, u64, u64); - efi_status_t (*close)(efi_file_protocol_t *); - efi_status_t (*delete)(efi_file_protocol_t *); - efi_status_t (*read)(efi_file_protocol_t *, unsigned long *, void *); - efi_status_t (*write)(efi_file_protocol_t *, unsigned long, void *); - efi_status_t (*get_position)(efi_file_protocol_t *, u64 *); - efi_status_t (*set_position)(efi_file_protocol_t *, u64); - efi_status_t (*get_info)(efi_file_protocol_t *, efi_guid_t *, unsigned long *, void *); - efi_status_t (*set_info)(efi_file_protocol_t *, efi_guid_t *, unsigned long, void *); - efi_status_t (*flush)(efi_file_protocol_t *); +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 { - u64 revision; - u32 open; - u32 close; - u32 delete; - u32 read; - u32 write; - u32 get_position; - u32 set_position; - u32 get_info; - u32 set_info; - u32 flush; - } mixed_mode; }; -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 { - u64 size; - u64 file_size; - u64 phys_size; - efi_time_t create_time; - efi_time_t last_access_time; - efi_time_t modification_time; - __u64 attribute; - efi_char16_t filename[0]; -} efi_file_info_t; - -struct finfo { - efi_file_info_t info; - efi_char16_t filename[256]; -}; - -typedef void *efi_handle_t; - -union efi_simple_file_system_protocol; - -typedef union efi_simple_file_system_protocol efi_simple_file_system_protocol_t; - -union efi_simple_file_system_protocol { - struct { - u64 revision; - efi_status_t (*open_volume)(efi_simple_file_system_protocol_t *, efi_file_protocol_t **); - }; - struct { - u64 revision; - u32 open_volume; - } mixed_mode; +struct ethtool_pauseparam { + __u32 cmd; + __u32 autoneg; + __u32 rx_pause; + __u32 tx_pause; }; -typedef struct { - u64 signature; - u32 revision; - u32 headersize; - u32 crc32; - u32 reserved; -} efi_table_hdr_t; - -typedef struct { - u32 resolution; - u32 accuracy; - u8 sets_to_zero; -} efi_time_cap_t; - -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 u8 efi_bool_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_set_virtual_address_map_t(unsigned long, unsigned long, u32, efi_memory_desc_t *); - -typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *); - -typedef efi_status_t efi_get_next_variable_t(unsigned long *, efi_char16_t *, efi_guid_t *); - -typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *); - -typedef efi_status_t efi_get_next_high_mono_count_t(u32 *); - -typedef void efi_reset_system_t(int, efi_status_t, unsigned long, efi_char16_t *); - -typedef struct { - efi_guid_t guid; - u32 headersize; - u32 flags; - u32 imagesize; -} efi_capsule_header_t; - -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_query_variable_info_t(u32, u64 *, u64 *, u64 *); - -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_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_set_virtual_address_map_t *set_virtual_address_map; - void *convert_pointer; - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_get_next_high_mono_count_t *get_next_high_mono_count; - efi_reset_system_t *reset_system; - efi_update_capsule_t *update_capsule; - efi_query_capsule_caps_t *query_capsule_caps; - efi_query_variable_info_t *query_variable_info; - }; - efi_runtime_services_32_t mixed_mode; -} efi_runtime_services_t; - -typedef struct { - efi_table_hdr_t hdr; - u32 fw_vendor; - u32 fw_revision; - u32 con_in_handle; - u32 con_in; - u32 con_out_handle; - u32 con_out; - u32 stderr_handle; - u32 stderr; - u32 runtime; - u32 boottime; - u32 nr_tables; - u32 tables; -} efi_system_table_32_t; - -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; - -typedef union { - struct { - u32 revision; - efi_handle_t parent_handle; - efi_system_table_t *system_table; - efi_handle_t device_handle; - void *file_path; - void *reserved; - u32 load_options_size; - void *load_options; - void *image_base; - __u64 image_size; - unsigned int image_code_type; - unsigned int image_data_type; - efi_status_t (*unload)(efi_handle_t); - }; - struct { - u32 revision; - u32 parent_handle; - u32 system_table; - u32 device_handle; - u32 file_path; - u32 reserved; - u32 load_options_size; - u32 load_options; - u32 image_base; - __u64 image_size; - u32 image_code_type; - u32 image_data_type; - u32 unload; - } mixed_mode; -} efi_loaded_image_t; - -typedef struct { - u16 scan_code; - efi_char16_t unicode_char; -} efi_input_key_t; - -typedef void *efi_event_t; - -union efi_simple_text_input_protocol { - struct { - void *reset; - efi_status_t (*read_keystroke)(efi_simple_text_input_protocol_t *, efi_input_key_t *); - efi_event_t wait_for_key; - }; - struct { - u32 reset; - u32 read_keystroke; - u32 wait_for_key; - } mixed_mode; +struct ethtool_test { + __u32 cmd; + __u32 flags; + __u32 reserved; + __u32 len; + __u64 data[0]; }; -union efi_simple_text_output_protocol { - struct { - void *reset; - efi_status_t (*output_string)(efi_simple_text_output_protocol_t *, efi_char16_t *); - void *test_string; - }; - struct { - u32 reset; - u32 output_string; - u32 test_string; - } mixed_mode; +struct ethtool_stats { + __u32 cmd; + __u32 n_stats; + __u64 data[0]; }; -typedef u64 efi_physical_addr_t; - -typedef void (*efi_event_notify_t)(efi_event_t, void *); - -typedef enum { - EfiTimerCancel = 0, - EfiTimerPeriodic = 1, - EfiTimerRelative = 2, -} EFI_TIMER_DELAY; - -union efi_boot_services { - struct { - efi_table_hdr_t hdr; - void *raise_tpl; - void *restore_tpl; - efi_status_t (*allocate_pages)(int, int, unsigned long, efi_physical_addr_t *); - efi_status_t (*free_pages)(efi_physical_addr_t, unsigned long); - efi_status_t (*get_memory_map)(unsigned long *, void *, unsigned long *, unsigned long *, u32 *); - efi_status_t (*allocate_pool)(int, unsigned long, void **); - efi_status_t (*free_pool)(void *); - efi_status_t (*create_event)(u32, unsigned long, efi_event_notify_t, void *, efi_event_t *); - efi_status_t (*set_timer)(efi_event_t, EFI_TIMER_DELAY, u64); - efi_status_t (*wait_for_event)(unsigned long, efi_event_t *, unsigned long *); - void *signal_event; - efi_status_t (*close_event)(efi_event_t); - void *check_event; - void *install_protocol_interface; - void *reinstall_protocol_interface; - void *uninstall_protocol_interface; - efi_status_t (*handle_protocol)(efi_handle_t, efi_guid_t *, void **); - void *__reserved; - void *register_protocol_notify; - efi_status_t (*locate_handle)(int, efi_guid_t *, void *, unsigned long *, efi_handle_t *); - efi_status_t (*locate_device_path)(efi_guid_t *, efi_device_path_protocol_t **, efi_handle_t *); - efi_status_t (*install_configuration_table)(efi_guid_t *, void *); - efi_status_t (*load_image)(bool, efi_handle_t, efi_device_path_protocol_t *, void *, unsigned long, efi_handle_t *); - efi_status_t (*start_image)(efi_handle_t, unsigned long *, efi_char16_t **); - efi_status_t (*exit)(efi_handle_t, efi_status_t, unsigned long, efi_char16_t *); - efi_status_t (*unload_image)(efi_handle_t); - efi_status_t (*exit_boot_services)(efi_handle_t, unsigned long); - void *get_next_monotonic_count; - efi_status_t (*stall)(unsigned long); - void *set_watchdog_timer; - void *connect_controller; - efi_status_t (*disconnect_controller)(efi_handle_t, efi_handle_t, efi_handle_t); - void *open_protocol; - void *close_protocol; - void *open_protocol_information; - void *protocols_per_handle; - void *locate_handle_buffer; - efi_status_t (*locate_protocol)(efi_guid_t *, void *, void **); - efi_status_t (*install_multiple_protocol_interfaces)(efi_handle_t *, ...); - efi_status_t (*uninstall_multiple_protocol_interfaces)(efi_handle_t, ...); - void *calculate_crc32; - void (*copy_mem)(void *, const void *, unsigned long); - void (*set_mem)(void *, unsigned long, unsigned char); - void *create_event_ex; - }; - struct { - efi_table_hdr_t hdr; - u32 raise_tpl; - u32 restore_tpl; - u32 allocate_pages; - u32 free_pages; - u32 get_memory_map; - u32 allocate_pool; - u32 free_pool; - u32 create_event; - u32 set_timer; - u32 wait_for_event; - u32 signal_event; - u32 close_event; - u32 check_event; - u32 install_protocol_interface; - u32 reinstall_protocol_interface; - u32 uninstall_protocol_interface; - u32 handle_protocol; - u32 __reserved; - u32 register_protocol_notify; - u32 locate_handle; - u32 locate_device_path; - u32 install_configuration_table; - u32 load_image; - u32 start_image; - u32 exit; - u32 unload_image; - u32 exit_boot_services; - u32 get_next_monotonic_count; - u32 stall; - u32 set_watchdog_timer; - u32 connect_controller; - u32 disconnect_controller; - u32 open_protocol; - u32 close_protocol; - u32 open_protocol_information; - u32 protocols_per_handle; - u32 locate_handle_buffer; - u32 locate_protocol; - u32 install_multiple_protocol_interfaces; - u32 uninstall_multiple_protocol_interfaces; - u32 calculate_crc32; - u32 copy_mem; - u32 set_mem; - u32 create_event_ex; - } mixed_mode; +struct ethtool_tcpip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be16 psrc; + __be16 pdst; + __u8 tos; }; -struct nsset { - unsigned int flags; - struct nsproxy *nsproxy; - struct fs_struct *fs; - const struct cred *cred; +struct ethtool_ah_espip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 spi; + __u8 tos; }; -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); - -typedef int initcall_entry_t; - -struct trace_event_raw_initcall_level { - struct trace_entry ent; - u32 __data_loc_level; - char __data[0]; +struct ethtool_usrip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 l4_4_bytes; + __u8 tos; + __u8 ip_ver; + __u8 proto; }; -struct trace_event_raw_initcall_start { - struct trace_entry ent; - initcall_t func; - char __data[0]; +struct ethtool_tcpip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be16 psrc; + __be16 pdst; + __u8 tclass; }; -struct trace_event_raw_initcall_finish { - struct trace_entry ent; - initcall_t func; - int ret; - char __data[0]; +struct ethtool_ah_espip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be32 spi; + __u8 tclass; }; -struct blacklist_entry { - struct list_head next; - char *buf; +struct ethtool_usrip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be32 l4_4_bytes; + __u8 tclass; + __u8 l4_proto; }; -struct trace_event_data_offsets_initcall_level { - u32 level; +struct ethhdr { + unsigned char h_dest[6]; + unsigned char h_source[6]; + __be16 h_proto; }; -struct trace_event_data_offsets_initcall_start {}; - -struct trace_event_data_offsets_initcall_finish {}; - -struct kvm_nvhe_stacktrace_info { - unsigned long stack_base; - unsigned long overflow_stack_base; - unsigned long fp; - unsigned long pc; +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 async_domain { - struct list_head pending; - unsigned int registered: 1; +struct ethtool_flow_ext { + __u8 padding[2]; + unsigned char h_dest[6]; + __be16 vlan_etype; + __be16 vlan_tci; + __be32 data[2]; }; -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 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 pool_workqueue; - -struct worker_pool; - -struct worker { +struct ethtool_rxnfc { + __u32 cmd; + __u32 flow_type; + __u64 data; + struct ethtool_rx_flow_spec fs; union { - struct list_head entry; - struct hlist_node hentry; + __u32 rule_cnt; + __u32 rss_context; }; - struct work_struct *current_work; - work_func_t current_func; - struct pool_workqueue *current_pwq; - u64 current_at; - unsigned int current_color; - int sleeping; - work_func_t last_func; - struct list_head scheduled; - struct task_struct *task; - struct worker_pool *pool; - struct list_head node; - unsigned long last_active; - unsigned int flags; - int id; - char desc[24]; - struct workqueue_struct *rescue_wq; + __u32 rule_locs[0]; }; -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 ethtool_flash { + __u32 cmd; + __u32 region; + char data[128]; }; -struct rcu_cblist { - struct callback_head *head; - struct callback_head **tail; - long len; +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 reserved_mem; +struct ethtool_dump { + __u32 cmd; + __u32 version; + __u32 flag; + __u32 len; + __u8 data[0]; +}; -struct reserved_mem_ops { - int (*device_init)(struct reserved_mem *, struct device *); - void (*device_release)(struct reserved_mem *, struct device *); +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 reserved_mem { - const char *name; - unsigned long fdt_node; - unsigned long phandle; - const struct reserved_mem_ops *ops; - phys_addr_t base; - phys_addr_t size; - void *priv; +struct ethtool_modinfo { + __u32 cmd; + __u32 type; + __u32 eeprom_len; + __u32 reserved[8]; }; -struct cma { - unsigned long base_pfn; - unsigned long count; - unsigned long *bitmap; - unsigned int order_per_bit; - spinlock_t lock; - char name[64]; - bool reserve_pages_on_error; +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]; }; -enum tick_device_mode { - TICKDEV_MODE_PERIODIC = 0, - TICKDEV_MODE_ONESHOT = 1, +struct ethtool_tunable { + __u32 cmd; + __u32 id; + __u32 type_id; + __u32 len; + void *data[0]; }; -struct tick_device { - struct clock_event_device *evtdev; - enum tick_device_mode mode; +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]; }; -enum tick_broadcast_state { - TICK_BROADCAST_EXIT = 0, - TICK_BROADCAST_ENTER = 1, +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 inotify_group_private_data { - spinlock_t idr_lock; - struct idr idr; - struct ucounts *ucounts; +struct ethtool_fec_stat { + u64 total; + u64 lanes[8]; }; -struct fanotify_group_private_data { - struct hlist_head *merge_hash; - struct list_head access_list; - wait_queue_head_t access_waitq; - int flags; - int f_flags; - struct ucounts *ucounts; - mempool_t error_events_pool; +struct ethtool_fec_stats { + struct ethtool_fec_stat corrected_blocks; + struct ethtool_fec_stat uncorrectable_blocks; + struct ethtool_fec_stat corrected_bits; }; -struct fsnotify_ops; +struct ethtool_fecparam { + __u32 cmd; + __u32 active_fec; + __u32 fec; + __u32 reserved; +}; -struct fsnotify_event; +struct ethtool_module_eeprom { + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; + u8 *data; +}; -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; +struct ethtool_eth_phy_stats { + enum ethtool_mac_stats_src src; union { - void *private; - struct inotify_group_private_data inotify_data; - struct fanotify_group_private_data fanotify_data; + struct { + u64 SymbolErrorDuringCarrier; + }; + struct { + u64 SymbolErrorDuringCarrier; + } stats; }; }; -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 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; + }; }; -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 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 audit_cap_data { - kernel_cap_t permitted; - kernel_cap_t inheritable; +struct ethtool_rmon_stats { + enum ethtool_mac_stats_src src; union { - unsigned int fE; - kernel_cap_t effective; + 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; }; - kernel_cap_t ambient; - kuid_t rootid; }; -struct audit_ntp_val { - long long oldval; - long long newval; +struct ethtool_rmon_hist_range { + u16 low; + u16 high; }; -struct audit_ntp_data { - struct audit_ntp_val vals[6]; +enum ethtool_module_power_mode_policy { + ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1, + ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2, }; -struct open_how { - __u64 flags; - __u64 mode; - __u64 resolve; +enum ethtool_module_power_mode { + ETHTOOL_MODULE_POWER_MODE_LOW = 1, + ETHTOOL_MODULE_POWER_MODE_HIGH = 2, }; -enum audit_state { - AUDIT_STATE_DISABLED = 0, - AUDIT_STATE_BUILD = 1, - AUDIT_STATE_RECORD = 2, +struct ethtool_module_power_mode_params { + enum ethtool_module_power_mode_policy policy; + enum ethtool_module_power_mode mode; }; -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 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 fsnotify_iter_info { - struct fsnotify_mark *marks[5]; - struct fsnotify_group *current_group; - unsigned int report_mask; - int srcu_idx; +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 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 ethtool_mm_cfg { + u32 verify_time; + bool verify_enabled; + bool tx_enabled; + bool pmac_enabled; + u32 tx_min_frag_size; }; -struct fsnotify_event { - struct list_head list; +struct ethtool_mm_stats { + u64 MACMergeFrameAssErrorCount; + u64 MACMergeFrameSmdErrorCount; + u64 MACMergeFrameAssOkCount; + u64 MACMergeFragCountRx; + u64 MACMergeFragCountTx; + u64 MACMergeHoldCount; }; -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, +struct phy_c45_device_ids { + u32 devices_in_package; + u32 mmds_present; + u32 device_ids[32]; }; -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 phy_state { + PHY_DOWN = 0, + PHY_READY = 1, + PHY_HALTED = 2, + PHY_ERROR = 3, + PHY_UP = 4, + PHY_RUNNING = 5, + PHY_NOLINK = 6, + PHY_CABLETEST = 7, }; -struct audit_parent { - struct list_head watches; - struct fsnotify_mark mark; -}; +typedef enum { + PHY_INTERFACE_MODE_NA = 0, + PHY_INTERFACE_MODE_INTERNAL = 1, + PHY_INTERFACE_MODE_MII = 2, + PHY_INTERFACE_MODE_GMII = 3, + PHY_INTERFACE_MODE_SGMII = 4, + PHY_INTERFACE_MODE_TBI = 5, + PHY_INTERFACE_MODE_REVMII = 6, + PHY_INTERFACE_MODE_RMII = 7, + PHY_INTERFACE_MODE_REVRMII = 8, + PHY_INTERFACE_MODE_RGMII = 9, + PHY_INTERFACE_MODE_RGMII_ID = 10, + PHY_INTERFACE_MODE_RGMII_RXID = 11, + PHY_INTERFACE_MODE_RGMII_TXID = 12, + PHY_INTERFACE_MODE_RTBI = 13, + PHY_INTERFACE_MODE_SMII = 14, + PHY_INTERFACE_MODE_XGMII = 15, + PHY_INTERFACE_MODE_XLGMII = 16, + PHY_INTERFACE_MODE_MOCA = 17, + PHY_INTERFACE_MODE_PSGMII = 18, + PHY_INTERFACE_MODE_QSGMII = 19, + PHY_INTERFACE_MODE_TRGMII = 20, + PHY_INTERFACE_MODE_100BASEX = 21, + PHY_INTERFACE_MODE_1000BASEX = 22, + PHY_INTERFACE_MODE_2500BASEX = 23, + PHY_INTERFACE_MODE_5GBASER = 24, + PHY_INTERFACE_MODE_RXAUI = 25, + PHY_INTERFACE_MODE_XAUI = 26, + PHY_INTERFACE_MODE_10GBASER = 27, + PHY_INTERFACE_MODE_25GBASER = 28, + PHY_INTERFACE_MODE_USXGMII = 29, + PHY_INTERFACE_MODE_10GKR = 30, + PHY_INTERFACE_MODE_QUSGMII = 31, + PHY_INTERFACE_MODE_1000BASEKX = 32, + PHY_INTERFACE_MODE_MAX = 33, +} phy_interface_t; -struct 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 pse_control; -struct audit_field; +struct phy_driver; -struct audit_tree; +struct phylink; -struct audit_fsnotify_mark; +struct mii_timestamper; -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 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 wol_enabled: 1; + unsigned int autoneg: 1; + unsigned int link: 1; + unsigned int autoneg_complete: 1; + unsigned int interrupts: 1; + unsigned int irq_suspended: 1; + unsigned int irq_rerun: 1; + int rate_matching; + enum phy_state state; + u32 dev_flags; + phy_interface_t interface; + 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; + struct list_head leds; + int irq; + void *priv; + struct phy_package_shared *shared; + struct sk_buff *skb; + void *ehdr; + struct nlattr *nest; + struct delayed_work state_queue; + struct mutex lock; + bool sfp_bus_attached; + struct sfp_bus *sfp_bus; + struct phylink *phylink; + struct net_device *attached_dev; + struct mii_timestamper *mii_ts; + struct pse_control *psec; + u8 mdix; + u8 mdix_ctrl; + int pma_extable; + unsigned int link_down_events; + void (*phy_link_change)(struct phy_device *, bool); + void (*adjust_link)(struct net_device *); }; -struct audit_field { - u32 type; - union { - u32 val; - kuid_t uid; - kgid_t gid; - struct { - char *lsm_str; - void *lsm_rule; - }; - }; - u32 op; +struct mdio_driver_common { + struct device_driver driver; + int flags; }; -struct audit_entry { - struct list_head list; - struct callback_head rcu; - struct audit_krule rule; +enum led_brightness { + LED_OFF = 0, + LED_ON = 1, + LED_HALF = 127, + LED_FULL = 255, }; -enum dynevent_type { - DYNEVENT_TYPE_SYNTH = 1, - DYNEVENT_TYPE_KPROBE = 2, - DYNEVENT_TYPE_NONE = 3, -}; +struct phy_tdr_config; -enum trace_iterator_flags { - TRACE_ITER_PRINT_PARENT = 1, - TRACE_ITER_SYM_OFFSET = 2, - TRACE_ITER_SYM_ADDR = 4, - TRACE_ITER_VERBOSE = 8, - TRACE_ITER_RAW = 16, - TRACE_ITER_HEX = 32, - TRACE_ITER_BIN = 64, - TRACE_ITER_BLOCK = 128, - TRACE_ITER_FIELDS = 256, - TRACE_ITER_PRINTK = 512, - TRACE_ITER_ANNOTATE = 1024, - TRACE_ITER_USERSTACKTRACE = 2048, - TRACE_ITER_SYM_USEROBJ = 4096, - TRACE_ITER_PRINTK_MSGONLY = 8192, - TRACE_ITER_CONTEXT_INFO = 16384, - TRACE_ITER_LATENCY_FMT = 32768, - TRACE_ITER_RECORD_CMD = 65536, - TRACE_ITER_RECORD_TGID = 131072, - TRACE_ITER_OVERWRITE = 262144, - TRACE_ITER_STOP_ON_FREE = 524288, - TRACE_ITER_IRQ_INFO = 1048576, - TRACE_ITER_MARKERS = 2097152, - TRACE_ITER_EVENT_FORK = 4194304, - TRACE_ITER_PAUSE_ON_TRACE = 8388608, - TRACE_ITER_HASH_PTR = 16777216, - TRACE_ITER_FUNCTION = 33554432, - TRACE_ITER_FUNC_FORK = 67108864, - TRACE_ITER_DISPLAY_GRAPH = 134217728, - TRACE_ITER_STACKTRACE = 268435456, -}; +struct phy_plca_cfg; -enum { - TRACE_ARRAY_FL_GLOBAL = 1, -}; +struct phy_plca_status; -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 phy_driver { + struct mdio_driver_common mdiodrv; + u32 phy_id; + char *name; + u32 phy_id_mask; + const unsigned long * const features; + u32 flags; + const void *driver_data; + int (*soft_reset)(struct phy_device *); + int (*config_init)(struct phy_device *); + int (*probe)(struct phy_device *); + int (*get_features)(struct phy_device *); + int (*get_rate_matching)(struct phy_device *, phy_interface_t); + int (*suspend)(struct phy_device *); + int (*resume)(struct phy_device *); + int (*config_aneg)(struct phy_device *); + int (*aneg_done)(struct phy_device *); + int (*read_status)(struct phy_device *); + int (*config_intr)(struct phy_device *); + irqreturn_t (*handle_interrupt)(struct phy_device *); + void (*remove)(struct phy_device *); + int (*match_phy_device)(struct phy_device *); + int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *); + void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *); + void (*link_change_notify)(struct phy_device *); + int (*read_mmd)(struct phy_device *, int, u16); + int (*write_mmd)(struct phy_device *, int, u16, u16); + int (*read_page)(struct phy_device *); + int (*write_page)(struct phy_device *, int); + int (*module_info)(struct phy_device *, struct ethtool_modinfo *); + int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *); + int (*cable_test_start)(struct phy_device *); + int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *); + int (*cable_test_get_status)(struct phy_device *, bool *); + int (*get_sset_count)(struct phy_device *); + void (*get_strings)(struct phy_device *, u8 *); + void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); + int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); + int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); + int (*set_loopback)(struct phy_device *, bool); + int (*get_sqi)(struct phy_device *); + int (*get_sqi_max)(struct phy_device *); + int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); + int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *); + int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); + int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness); + int (*led_blink_set)(struct phy_device *, u8, unsigned long *, unsigned long *); + int (*led_hw_is_supported)(struct phy_device *, u8, unsigned long); + int (*led_hw_control_set)(struct phy_device *, u8, unsigned long); + int (*led_hw_control_get)(struct phy_device *, u8, unsigned long *); }; -struct kretprobe_trace_entry_head { - struct trace_entry ent; - unsigned long func; - unsigned long ret_ip; +struct phy_tdr_config { + u32 first; + u32 last; + u32 step; + s8 pair; }; -struct kprobe_trace_entry_head { - struct trace_entry ent; - unsigned long ip; +struct phy_plca_cfg { + int version; + int enabled; + int node_id; + int node_cnt; + int to_tmr; + int burst_cnt; + int burst_tmr; }; -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 phy_plca_status { + bool pst; }; -struct dynevent_arg { - const char *str; - char separator; +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; }; -typedef int (*dynevent_check_arg_fn_t)(void *); +struct bcmasp_priv; -typedef void (*btf_trace_rseq_update)(void *, struct task_struct *); +struct bcmasp_intf; -typedef void (*btf_trace_rseq_ip_fixup)(void *, unsigned long, unsigned long, unsigned long, unsigned long); +struct bcmasp_hw_info; -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, +struct bcmasp_plat_data { + void (*init_wol)(struct bcmasp_priv *); + void (*enable_wol)(struct bcmasp_intf *, bool); + void (*destroy_wol)(struct bcmasp_priv *); + struct bcmasp_hw_info *hw_info; }; -enum rseq_flags { - RSEQ_FLAG_UNREGISTER = 1, +struct bcmasp_mda_filter { + int port; + bool en; + u8 addr[6]; + u8 mask[6]; }; -enum rseq_cpu_id_state { - RSEQ_CPU_ID_UNINITIALIZED = -1, - RSEQ_CPU_ID_REGISTRATION_FAILED = -2, +struct bcmasp_net_filter { + struct ethtool_rx_flow_spec fs; + bool claimed; + bool wake_filter; + int port; + unsigned int hw_index; }; -struct trace_event_raw_rseq_update { - struct trace_entry ent; - s32 cpu_id; - s32 node_id; - s32 mm_cid; - char __data[0]; +struct bcmasp_priv { + struct platform_device *pdev; + struct clk *clk; + int irq; + u32 irq_mask; + struct mutex wol_lock; + int wol_irq; + unsigned long wol_irq_enabled_mask; + void (*init_wol)(struct bcmasp_priv *); + void (*enable_wol)(struct bcmasp_intf *, bool); + void (*destroy_wol)(struct bcmasp_priv *); + void *base; + struct bcmasp_hw_info *hw_info; + struct list_head intfs; + struct bcmasp_mda_filter mda_filters[32]; + spinlock_t mda_lock; + spinlock_t clk_lock; + struct bcmasp_net_filter net_filters[32]; + struct mutex net_lock; }; -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 gro_list { + struct list_head list; + int count; }; -struct rseq_cs { - __u32 version; - __u32 flags; - __u64 start_ip; - __u64 post_commit_offset; - __u64 abort_ip; +struct napi_struct { + struct list_head poll_list; + unsigned long state; + int weight; + int defer_hard_irqs_count; + unsigned long gro_bitmask; + int (*poll)(struct napi_struct *, int); + int list_owner; + struct net_device *dev; + struct gro_list gro_hash[8]; + struct sk_buff *skb; + struct list_head rx_list; + int rx_count; + unsigned int napi_id; + struct hrtimer timer; + struct task_struct *thread; + struct list_head dev_list; + struct hlist_node napi_hash_node; }; -struct trace_event_data_offsets_rseq_update {}; - -struct trace_event_data_offsets_rseq_ip_fixup {}; - -struct vm_unmapped_area_info; - -typedef void (*btf_trace_vm_unmapped_area)(void *, unsigned long, struct vm_unmapped_area_info *); - -struct vm_unmapped_area_info { - unsigned long flags; - unsigned long length; - unsigned long low_limit; - unsigned long high_limit; - unsigned long align_mask; - unsigned long align_offset; +struct bcmasp_res { + void *umac; + void *umac2fb; + void *rgmii; + void *tx_spb_ctrl; + void *tx_spb_top; + void *tx_epkt_core; + void *tx_pause_ctrl; }; -typedef void (*btf_trace_vma_mas_szero)(void *, struct maple_tree *, unsigned long, unsigned long); +struct bcmasp_intf_stats64 { + u64_stats_t rx_packets; + u64_stats_t rx_bytes; + u64_stats_t rx_errors; + u64_stats_t rx_dropped; + u64_stats_t rx_crc_errs; + u64_stats_t rx_sym_errs; + u64_stats_t tx_packets; + u64_stats_t tx_bytes; + struct u64_stats_sync syncp; +}; -typedef void (*btf_trace_vma_store)(void *, struct maple_tree *, struct vm_area_struct *); +struct bcmasp_mib_counters { + u32 edpkt_ts; + u32 edpkt_rx_pkt_cnt; + u32 edpkt_hdr_ext_cnt; + u32 edpkt_hdr_out_cnt; + u32 umac_frm_cnt; + u32 fb_frm_cnt; + u32 fb_rx_fifo_depth; + u32 fb_out_frm_cnt; + u32 fb_filt_out_frm_cnt; + u32 alloc_rx_skb_failed; + u32 tx_dma_failed; + u32 mc_filters_full_cnt; + u32 uc_filters_full_cnt; + u32 filters_combine_cnt; + u32 promisc_filters_cnt; + u32 tx_realloc_offload_failed; + u32 tx_timeout_cnt; +}; -typedef void (*btf_trace_exit_mmap)(void *, struct mm_struct *); +struct bcmasp_intf_ops; -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, -}; +struct bcmasp_desc; -enum { - HUGETLB_SHMFS_INODE = 1, - HUGETLB_ANONHUGE_INODE = 2, -}; +struct bcmasp_tx_cb; -enum { - MM_FILEPAGES = 0, - MM_ANONPAGES = 1, - MM_SWAPENTS = 2, - MM_SHMEMPAGES = 3, - NR_MM_COUNTERS = 4, +struct bcmasp_intf { + struct list_head list; + struct net_device *ndev; + struct bcmasp_priv *parent; + int channel; + int port; + const struct bcmasp_intf_ops *ops; + int index; + struct napi_struct tx_napi; + void *tx_spb_dma; + int tx_spb_index; + int tx_spb_clean_index; + struct bcmasp_desc *tx_spb_cpu; + dma_addr_t tx_spb_dma_addr; + dma_addr_t tx_spb_dma_valid; + dma_addr_t tx_spb_dma_read; + struct bcmasp_tx_cb *tx_cbs; + void *rx_edpkt_cfg; + void *rx_edpkt_dma; + int rx_edpkt_index; + int rx_buf_order; + struct bcmasp_desc *rx_edpkt_cpu; + dma_addr_t rx_edpkt_dma_addr; + dma_addr_t rx_edpkt_dma_read; + void *rx_ring_cpu; + dma_addr_t rx_ring_dma; + dma_addr_t rx_ring_dma_valid; + struct napi_struct rx_napi; + struct bcmasp_res res; + unsigned int crc_fwd; + struct device_node *phy_dn; + struct device_node *ndev_dn; + phy_interface_t phy_interface; + bool internal_phy; + int old_pause; + int old_link; + int old_duplex; + u32 msg_enable; + struct bcmasp_intf_stats64 stats64; + struct bcmasp_mib_counters mib; + u32 wolopts; + u8 sopass[6]; + int wol_irq; + unsigned int wol_irq_enabled: 1; + struct ethtool_eee eee; }; -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, +struct bcmasp_intf_ops { + unsigned long (*rx_desc_read)(struct bcmasp_intf *); + void (*rx_buffer_write)(struct bcmasp_intf *, dma_addr_t); + void (*rx_desc_write)(struct bcmasp_intf *, dma_addr_t); + unsigned long (*tx_read)(struct bcmasp_intf *); + void (*tx_write)(struct bcmasp_intf *, dma_addr_t); }; -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 bcmasp_desc { + u64 buf; + u32 size; + u32 flags; }; -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 bcmasp_tx_cb { + struct sk_buff *skb; + unsigned int bytes_sent; + bool last; + dma_addr_t dma_addr; + __u32 dma_len; }; -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 bcmasp_hw_info { + u32 rx_ctrl_flush; + u32 umac2fb; + u32 rx_ctrl_fb_out_frame_count; + u32 rx_ctrl_fb_filt_out_frame_count; + u32 rx_ctrl_fb_rx_fifo_depth; }; -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]; +enum asp_rx_filter_id { + ASP_RX_FILTER_MDA_PROMISC = 0, + ASP_RX_FILTER_MDA_ALLMULTI = 1, + ASP_RX_FILTER_MDA_BROADCAST = 2, + ASP_RX_FILTER_MDA_OWN_ADDR = 3, + ASP_RX_FILTER_MDA_RES_MAX = 4, }; -struct trace_event_raw_exit_mmap { - struct trace_entry ent; - struct mm_struct *mm; - struct maple_tree *mt; - char __data[0]; +enum asp_netfilt_reg_type { + ASP_NETFILT_MATCH = 0, + ASP_NETFILT_MASK = 1, + ASP_NETFILT_MAX = 2, }; -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 *); +enum asp_rx_net_filter_block { + ASP_RX_FILTER_NET_L2 = 0, + ASP_RX_FILTER_NET_L3_0 = 1, + ASP_RX_FILTER_NET_L3_1 = 2, + ASP_RX_FILTER_NET_L4 = 3, + ASP_RX_FILTER_NET_BLOCK_MAX = 4, }; -struct vma_iterator { - struct ma_state mas; +struct of_dev_auxdata { + char *compatible; + resource_size_t phys_addr; + char *name; + void *platform_data; }; -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; +enum devlink_port_type { + DEVLINK_PORT_TYPE_NOTSET = 0, + DEVLINK_PORT_TYPE_AUTO = 1, + DEVLINK_PORT_TYPE_ETH = 2, + DEVLINK_PORT_TYPE_IB = 3, }; -struct anon_vma_name { - struct kref kref; - char name[0]; +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 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[16]; - unsigned int max_huge_pages_node[16]; - unsigned int nr_huge_pages_node[16]; - unsigned int free_huge_pages_node[16]; - unsigned int surplus_huge_pages_node[16]; - struct cftype cgroup_files_dfl[8]; - struct cftype cgroup_files_legacy[10]; - char name[32]; +struct devlink_port_phys_attrs { + u32 port_number; + u32 split_subport_number; }; -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 devlink_port_pci_pf_attrs { + u32 controller; + u16 pf; + u8 external: 1; }; -struct hugepage_subpool { - spinlock_t lock; - long count; - long max_hpages; - long used_hpages; - struct hstate *hstate; - long min_hpages; - long rsv_hpages; +struct devlink_port_pci_vf_attrs { + u32 controller; + u16 pf; + u16 vf; + u8 external: 1; }; -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 devlink_port_pci_sf_attrs { + u32 controller; + u32 sf; + u16 pf; + u8 external: 1; }; -struct mmu_table_batch; - -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 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 mmu_table_batch { - struct callback_head rcu; - unsigned int nr; - void *tables[0]; -}; +struct devlink; -struct trace_event_data_offsets_vm_unmapped_area {}; +struct devlink_port_ops; -struct trace_event_data_offsets_vma_mas_szero {}; +struct ib_device; -struct trace_event_data_offsets_vma_store {}; +struct devlink_rate; -struct trace_event_data_offsets_exit_mmap {}; +struct devlink_linecard; -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 devlink_port { + struct list_head list; + struct list_head region_list; + struct devlink *devlink; + const struct devlink_port_ops *ops; + unsigned int index; + spinlock_t type_lock; + enum devlink_port_type type; + enum devlink_port_type desired_type; + union { + struct { + struct net_device *netdev; + int ifindex; + char ifname[16]; + } type_eth; + struct { + struct ib_device *ibdev; + } type_ib; + }; + struct devlink_port_attrs attrs; + u8 attrs_set: 1; + u8 switch_port: 1; + u8 registered: 1; + u8 initialized: 1; + struct delayed_work type_warn_dw; + struct list_head reporter_list; + struct devlink_rate *devlink_rate; + struct devlink_linecard *linecard; + u32 rel_index; }; -enum poll_time_type { - PT_TIMEVAL = 0, - PT_OLD_TIMEVAL = 1, - PT_TIMESPEC = 2, - PT_OLD_TIMESPEC = 3, +enum devlink_port_fn_state { + DEVLINK_PORT_FN_STATE_INACTIVE = 0, + DEVLINK_PORT_FN_STATE_ACTIVE = 1, }; -struct poll_table_entry { - struct file *filp; - __poll_t key; - wait_queue_entry_t wait; - wait_queue_head_t *wait_address; +enum devlink_port_fn_opstate { + DEVLINK_PORT_FN_OPSTATE_DETACHED = 0, + DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1, }; -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 devlink_port_ops { + int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *); + int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_type_set)(struct devlink_port *, enum devlink_port_type); + int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); + int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); + int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_set)(struct devlink_port *, bool, struct netlink_ext_ack *); }; -struct poll_table_page { - struct poll_table_page *next; - struct poll_table_entry *entry; - struct poll_table_entry entries[0]; +enum devlink_rate_type { + DEVLINK_RATE_TYPE_LEAF = 0, + DEVLINK_RATE_TYPE_NODE = 1, }; -typedef struct { - unsigned long fds_bits[16]; -} __kernel_fd_set; - -typedef __kernel_fd_set fd_set; - -struct __kernel_old_timeval { - __kernel_long_t tv_sec; - __kernel_long_t tv_usec; +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 poll_list { - struct poll_list *next; - int len; - struct pollfd entries[0]; +enum dpaa2_eth_fq_type { + DPAA2_RX_FQ = 0, + DPAA2_TX_CONF_FQ = 1, + DPAA2_RX_ERR_FQ = 2, }; -struct old_timeval32 { - old_time32_t tv_sec; - s32 tv_usec; +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, }; -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; +enum dpmac_eth_if { + DPMAC_ETH_IF_MII = 0, + DPMAC_ETH_IF_RMII = 1, + DPMAC_ETH_IF_SMII = 2, + DPMAC_ETH_IF_GMII = 3, + DPMAC_ETH_IF_RGMII = 4, + DPMAC_ETH_IF_SGMII = 5, + DPMAC_ETH_IF_QSGMII = 6, + DPMAC_ETH_IF_XAUI = 7, + DPMAC_ETH_IF_XFI = 8, + DPMAC_ETH_IF_CAUI = 9, + DPMAC_ETH_IF_1000BASEX = 10, + DPMAC_ETH_IF_USXGMII = 11, }; -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; +enum dpmac_link_type { + DPMAC_LINK_TYPE_NONE = 0, + DPMAC_LINK_TYPE_FIXED = 1, + DPMAC_LINK_TYPE_PHY = 2, + DPMAC_LINK_TYPE_BACKPLANE = 3, }; -struct compat_sigset_argpack { - compat_uptr_t p; - compat_size_t size; +enum phylink_op_type { + PHYLINK_NETDEV = 0, + PHYLINK_DEV = 1, }; -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); +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, +}; -typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *); - -struct iomap_folio_ops; +enum net_prot { + NET_PROT_NONE = 0, + NET_PROT_PAYLOAD = 1, + NET_PROT_ETH = 2, + NET_PROT_VLAN = 3, + NET_PROT_IPV4 = 4, + NET_PROT_IPV6 = 5, + NET_PROT_IP = 6, + NET_PROT_TCP = 7, + NET_PROT_UDP = 8, + NET_PROT_UDP_LITE = 9, + NET_PROT_IPHC = 10, + NET_PROT_SCTP = 11, + NET_PROT_SCTP_CHUNK_DATA = 12, + NET_PROT_PPPOE = 13, + NET_PROT_PPP = 14, + NET_PROT_PPPMUX = 15, + NET_PROT_PPPMUX_SUBFRM = 16, + NET_PROT_L2TPV2 = 17, + NET_PROT_L2TPV3_CTRL = 18, + NET_PROT_L2TPV3_SESS = 19, + NET_PROT_LLC = 20, + NET_PROT_LLC_SNAP = 21, + NET_PROT_NLPID = 22, + NET_PROT_SNAP = 23, + NET_PROT_MPLS = 24, + NET_PROT_IPSEC_AH = 25, + NET_PROT_IPSEC_ESP = 26, + NET_PROT_UDP_ENC_ESP = 27, + NET_PROT_MACSEC = 28, + NET_PROT_GRE = 29, + NET_PROT_MINENCAP = 30, + NET_PROT_DCCP = 31, + NET_PROT_ICMP = 32, + NET_PROT_IGMP = 33, + NET_PROT_ARP = 34, + NET_PROT_CAPWAP_DATA = 35, + NET_PROT_CAPWAP_CTRL = 36, + NET_PROT_RFC2684 = 37, + NET_PROT_ICMPV6 = 38, + NET_PROT_FCOE = 39, + NET_PROT_FIP = 40, + NET_PROT_ISCSI = 41, + NET_PROT_GTP = 42, + NET_PROT_USER_DEFINED_L2 = 43, + NET_PROT_USER_DEFINED_L3 = 44, + NET_PROT_USER_DEFINED_L4 = 45, + NET_PROT_USER_DEFINED_L5 = 46, + NET_PROT_USER_DEFINED_SHIM1 = 47, + NET_PROT_USER_DEFINED_SHIM2 = 48, + NET_PROT_DUMMY_LAST = 49, +}; -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; +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, }; -struct iomap_iter; +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, +}; -struct iomap_folio_ops { - struct folio * (*get_folio)(struct iomap_iter *, loff_t, unsigned int); - void (*put_folio)(struct inode *, loff_t, unsigned int, struct folio *); - bool (*iomap_valid)(struct inode *, const struct iomap *); +enum 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, }; -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 dpaa2_eth_drv_stats { + __u64 tx_conf_frames; + __u64 tx_conf_bytes; + __u64 tx_sg_frames; + __u64 tx_sg_bytes; + __u64 tx_tso_frames; + __u64 tx_tso_bytes; + __u64 rx_sg_frames; + __u64 rx_sg_bytes; + __u64 tx_converted_sg_frames; + __u64 tx_converted_sg_bytes; + __u64 tx_portal_busy; }; -typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *); +struct dpaa2_eth_priv; -typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, struct iomap *); +struct dpaa2_eth_channel; -typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long); +struct dpaa2_fd; -typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t); +struct dpaa2_eth_fq; -typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t); +typedef void dpaa2_eth_consume_cb_t(struct dpaa2_eth_priv *, struct dpaa2_eth_channel *, const struct dpaa2_fd *, struct dpaa2_eth_fq *); -struct trace_event_raw_iomap_readpage_class { - struct trace_entry ent; - dev_t dev; - u64 ino; - int nr_pages; - char __data[0]; +struct dpaa2_eth_fq_stats { + __u64 frames; }; -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 dpaa2_fd_simple { + __le64 addr; + __le32 len; + __le16 bpid; + __le16 format_offset; + __le32 frc; + __le32 ctrl; + __le64 flc; }; -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 dpaa2_fd { + union { + u32 words[8]; + struct dpaa2_fd_simple simple; + }; }; -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 dpaa2_eth_xdp_fds { + struct dpaa2_fd fds[16]; + ssize_t num; }; -struct trace_event_raw_iomap_dio_rw_begin { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t isize; - loff_t pos; - size_t count; - size_t done_before; - int ki_flags; - unsigned int dio_flags; - bool aio; - char __data[0]; +struct dpaa2_eth_fq { + u32 fqid; + u32 tx_qdbin; + u32 tx_fqid[8]; + u16 flowid; + u8 tc; + int target_cpu; + u32 dq_frames; + u32 dq_bytes; + struct dpaa2_eth_channel *channel; + enum dpaa2_eth_fq_type type; + dpaa2_eth_consume_cb_t *consume; + struct dpaa2_eth_fq_stats stats; + struct dpaa2_eth_xdp_fds xdp_redirect_fds; + struct dpaa2_eth_xdp_fds xdp_tx_fds; }; -struct trace_event_raw_iomap_dio_complete { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t isize; - loff_t pos; - int ki_flags; - bool aio; - int error; - ssize_t ret; - char __data[0]; +struct dpni_attr { + u32 options; + u8 num_queues; + u8 num_tcs; + u8 mac_filter_entries; + u8 vlan_filter_entries; + u8 qos_entries; + u16 fs_entries; + u8 qos_key_size; + u8 fs_key_size; + u16 wriop_version; }; -struct trace_event_data_offsets_iomap_readpage_class {}; +struct dpni_link_state { + u32 rate; + u64 options; + int up; +}; -struct trace_event_data_offsets_iomap_range_class {}; +struct dpaa2_debugfs { + struct dentry *dir; +}; -struct trace_event_data_offsets_iomap_class {}; +struct dpaa2_eth_sgt_cache; -struct trace_event_data_offsets_iomap_iter {}; +struct dpaa2_eth_bp; -struct trace_event_data_offsets_iomap_dio_rw_begin {}; +struct dpaa2_eth_cls_rule; -struct trace_event_data_offsets_iomap_dio_complete {}; +struct dpaa2_mac; -struct kernfs_syscall_ops; +struct dpaa2_eth_trap_data; -struct kernfs_root { - struct kernfs_node *kn; - unsigned int flags; - struct idr ino_idr; - u32 last_id_lowbits; - u32 id_highbits; - struct kernfs_syscall_ops *syscall_ops; - struct list_head supers; - wait_queue_head_t deactivate_waitq; - struct rw_semaphore kernfs_rwsem; - struct rw_semaphore kernfs_iattr_rwsem; - struct rw_semaphore kernfs_supers_rwsem; -}; +struct dpaa2_eth_fds; -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 dpaa2_eth_priv { + struct net_device *net_dev; + u8 num_fqs; + struct dpaa2_eth_fq fq[145]; + int (*enqueue)(struct dpaa2_eth_priv *, struct dpaa2_eth_fq *, struct dpaa2_fd *, u8, u32, int *); + u8 num_channels; + struct dpaa2_eth_channel *channel[16]; + struct dpaa2_eth_sgt_cache __attribute__((btf_type_tag("percpu"))) *sgt_cache; + unsigned long features; + struct dpni_attr dpni_attrs; + u16 dpni_ver_major; + u16 dpni_ver_minor; + u16 tx_data_offset; + void *onestep_reg_base; + u8 ptp_correction_off; + void (*dpaa2_set_onestep_params_cb)(struct dpaa2_eth_priv *, u32, u8); + u16 rx_buf_size; + struct iommu_domain *iommu_domain; + enum hwtstamp_tx_types tx_tstamp_type; + bool rx_tstamp; + struct dpaa2_eth_bp *bp[9]; + int num_bps; + u16 tx_qdid; + struct fsl_mc_io *mc_io; + struct cpumask dpio_cpumask; + struct rtnl_link_stats64 __attribute__((btf_type_tag("percpu"))) *percpu_stats; + struct dpaa2_eth_drv_stats __attribute__((btf_type_tag("percpu"))) *percpu_extras; + u16 mc_token; + u8 rx_fqtd_enabled; + u8 rx_cgtd_enabled; + struct dpni_link_state link_state; + bool do_link_poll; + struct task_struct *poll_thread; + u64 rx_hash_fields; + u64 rx_cls_fields; + struct dpaa2_eth_cls_rule *cls_rules; + u8 rx_cls_enabled; + u8 vlan_cls_enabled; + u8 pfc_enabled; + struct bpf_prog *xdp_prog; + struct dpaa2_debugfs dbg; + struct dpaa2_mac *mac; + struct mutex mac_lock; + struct workqueue_struct *dpaa2_ptp_wq; + struct work_struct tx_onestep_tstamp; + struct sk_buff_head tx_skbs; + struct mutex onestep_tstamp_lock; + struct devlink *devlink; + struct dpaa2_eth_trap_data *trap_data; + struct devlink_port devlink_port; + u32 rx_copybreak; + struct dpaa2_eth_fds __attribute__((btf_type_tag("percpu"))) *fd; }; -struct simple_xattrs { - struct rb_root rb_root; - rwlock_t lock; +struct dpaa2_io_notification_ctx { + void (*cb)(struct dpaa2_io_notification_ctx *); + int is_cdan; + u32 id; + int desired_cpu; + int dpio_id; + u64 qman64; + struct list_head node; + void *dpio_private; }; -struct kernfs_iattrs { - kuid_t ia_uid; - kgid_t ia_gid; - struct timespec64 ia_atime; - struct timespec64 ia_mtime; - struct timespec64 ia_ctime; - struct simple_xattrs xattrs; - atomic_t nr_user_xattrs; - atomic_t user_xattr_size; +struct dpaa2_eth_ch_stats { + __u64 dequeue_portal_busy; + __u64 pull_err; + __u64 cdan; + __u64 xdp_drop; + __u64 xdp_tx; + __u64 xdp_tx_err; + __u64 xdp_redirect; + __u64 frames; + __u64 frames_per_cdan; + __u64 bytes_per_cdan; }; -enum kernfs_node_type { - KERNFS_DIR = 1, - KERNFS_FILE = 2, - KERNFS_LINK = 4, +struct dpaa2_eth_ch_xdp { + struct bpf_prog *prog; + unsigned int res; }; -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, -}; +struct dpaa2_io; -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 dpaa2_io_store; -enum bio_post_read_step { - STEP_INITIAL = 0, - STEP_DECRYPT = 1, - STEP_VERITY = 2, - STEP_MAX = 3, +struct dpaa2_eth_channel { + struct dpaa2_io_notification_ctx nctx; + struct fsl_mc_device *dpcon; + int dpcon_id; + int ch_id; + struct napi_struct napi; + struct dpaa2_io *dpio; + struct dpaa2_io_store *store; + struct dpaa2_eth_priv *priv; + int buf_count; + struct dpaa2_eth_ch_stats stats; + struct dpaa2_eth_ch_xdp xdp; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; + struct list_head *rx_list; + u64 recycled_bufs[7]; + int recycled_bufs_cnt; + bool xsk_zc; + int xsk_tx_pkts_sent; + struct xsk_buff_pool *xsk_pool; + struct dpaa2_eth_bp *bp; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct bio_post_read_ctx { - struct bio *bio; - struct work_struct work; - unsigned int cur_step; - unsigned int enabled_steps; +struct dpaa2_eth_bp { + struct fsl_mc_device *dev; + int bpid; }; -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); +struct dpaa2_eth_sgt_cache { + void *buf[256]; + u16 count; +}; -typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int); +struct dpaa2_eth_cls_rule { + struct ethtool_rx_flow_spec fs; + u8 in_use; +}; -typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int); +struct dpmac_link_state { + u32 rate; + u64 options; + int up; + int state_valid; + u64 supported; + u64 advertising; +}; -typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int); +struct dpmac_attr { + u16 id; + u32 max_rate; + enum dpmac_eth_if eth_if; + enum dpmac_link_type link_type; +}; -typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); +struct phylink_link_state; -typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); +struct phylink_config { + struct device *dev; + enum phylink_op_type type; + bool poll_fixed_state; + bool mac_managed_pm; + bool ovr_an_inband; + void (*get_fixed_state)(struct phylink_config *, struct phylink_link_state *); + unsigned long supported_interfaces[1]; + unsigned long mac_capabilities; +}; -typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, unsigned long, unsigned long); +struct phylink_pcs; -typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t); +struct dpaa2_mac { + struct fsl_mc_device *mc_dev; + struct dpmac_link_state state; + struct net_device *net_dev; + struct fsl_mc_io *mc_io; + struct dpmac_attr attr; + u16 ver_major; + u16 ver_minor; + unsigned long features; + struct phylink_config phylink_config; + struct phylink *phylink; + phy_interface_t if_mode; + enum dpmac_link_type if_link_type; + struct phylink_pcs *pcs; + struct fwnode_handle *fw_node; + struct phy *serdes_phy; +}; -typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, unsigned long); +struct phylink_link_state { + unsigned long advertising[2]; + unsigned long lp_advertising[2]; + phy_interface_t interface; + int speed; + int duplex; + int pause; + int rate_matching; + unsigned int link: 1; + unsigned int an_complete: 1; +}; -typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, unsigned long, unsigned long); +struct phylink_pcs_ops; -typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, unsigned long, unsigned long); +struct phylink_pcs { + const struct phylink_pcs_ops *ops; + struct phylink *phylink; + bool neg_mode; + bool poll; +}; -typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, unsigned long, unsigned long, unsigned long); +struct phylink_pcs_ops { + int (*pcs_validate)(struct phylink_pcs *, unsigned long *, const struct phylink_link_state *); + int (*pcs_enable)(struct phylink_pcs *); + void (*pcs_disable)(struct phylink_pcs *); + void (*pcs_pre_config)(struct phylink_pcs *, phy_interface_t); + int (*pcs_post_config)(struct phylink_pcs *, phy_interface_t); + void (*pcs_get_state)(struct phylink_pcs *, struct phylink_link_state *); + int (*pcs_config)(struct phylink_pcs *, unsigned int, phy_interface_t, const unsigned long *, bool); + void (*pcs_an_restart)(struct phylink_pcs *); + void (*pcs_link_up)(struct phylink_pcs *, unsigned int, phy_interface_t, int, int); +}; -typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, unsigned long, tid_t); +struct dpaa2_eth_trap_item; -struct jbd2_journal_block_tail { - __be32 t_checksum; +struct dpaa2_eth_trap_data { + struct dpaa2_eth_trap_item *trap_items_arr; + struct dpaa2_eth_priv *priv; }; -struct trace_event_raw_jbd2_checkpoint { - struct trace_entry ent; - dev_t dev; - int result; - char __data[0]; +struct dpaa2_eth_trap_item { + void *trap_ctx; }; -struct trace_event_raw_jbd2_commit { - struct trace_entry ent; - dev_t dev; - char sync_commit; - tid_t transaction; - char __data[0]; +struct dpaa2_eth_fds { + struct dpaa2_fd array[256]; }; -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 dpni_link_cfg { + u32 rate; + u64 options; }; -struct trace_event_raw_jbd2_submit_inode_data { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; +union dpni_statistics { + struct { + u64 ingress_all_frames; + u64 ingress_all_bytes; + u64 ingress_multicast_frames; + u64 ingress_multicast_bytes; + u64 ingress_broadcast_frames; + u64 ingress_broadcast_bytes; + } page_0; + struct { + u64 egress_all_frames; + u64 egress_all_bytes; + u64 egress_multicast_frames; + u64 egress_multicast_bytes; + u64 egress_broadcast_frames; + u64 egress_broadcast_bytes; + } page_1; + struct { + u64 ingress_filtered_frames; + u64 ingress_discarded_frames; + u64 ingress_nobuffer_discards; + u64 egress_discarded_frames; + u64 egress_confirmed_frames; + } page_2; + struct { + u64 egress_dequeue_bytes; + u64 egress_dequeue_frames; + u64 egress_reject_bytes; + u64 egress_reject_frames; + } page_3; + struct { + u64 cgr_reject_frames; + u64 cgr_reject_bytes; + } page_4; + struct { + u64 policer_cnt_red; + u64 policer_cnt_yellow; + u64 policer_cnt_green; + u64 policer_cnt_re_red; + u64 policer_cnt_re_yellow; + } page_5; + struct { + u64 tx_pending_frames; + } page_6; + struct { + u64 counter[7]; + } raw; }; -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 dpni_rule_cfg { + u64 key_iova; + u64 mask_iova; + u8 key_size; }; -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 dpni_fs_action_cfg { + u64 flc; + u16 flow_id; + u16 options; }; -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]; +enum hnae_port_type { + HNAE_PORT_SERVICE = 0, + HNAE_PORT_DEBUG = 1, }; -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]; +enum hnae_media_type { + HNAE_MEDIA_TYPE_UNKNOWN = 0, + HNAE_MEDIA_TYPE_FIBER = 1, + HNAE_MEDIA_TYPE_COPPER = 2, + HNAE_MEDIA_TYPE_BACKPLANE = 3, }; -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]; +enum hnae_loop { + MAC_INTERNALLOOP_MAC = 0, + MAC_INTERNALLOOP_SERDES = 1, + MAC_INTERNALLOOP_PHY = 2, + MAC_LOOP_PHY_NONE = 3, + MAC_LOOP_NONE = 4, }; -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]; +enum hnae_led_state { + HNAE_LED_INACTIVE = 0, + HNAE_LED_ACTIVE = 1, + HNAE_LED_ON = 2, + HNAE_LED_OFF = 3, }; -struct trace_event_raw_jbd2_write_superblock { - struct trace_entry ent; - dev_t dev; - blk_opf_t write_flags; - char __data[0]; +enum dsaf_mode { + DSAF_MODE_INVALID = 0, + DSAF_MODE_ENABLE_FIX = 1, + DSAF_MODE_ENABLE_0VM = 2, + DSAF_MODE_ENABLE_8VM = 3, + DSAF_MODE_ENABLE_16VM = 4, + DSAF_MODE_ENABLE_32VM = 5, + DSAF_MODE_ENABLE_128VM = 6, + DSAF_MODE_ENABLE = 7, + DSAF_MODE_DISABLE_SP = 8, + DSAF_MODE_DISABLE_FIX = 9, + DSAF_MODE_DISABLE_2PORT_8VM = 10, + DSAF_MODE_DISABLE_2PORT_16VM = 11, + DSAF_MODE_DISABLE_2PORT_64VM = 12, + DSAF_MODE_DISABLE_6PORT_0VM = 13, + DSAF_MODE_DISABLE_6PORT_2VM = 14, + DSAF_MODE_DISABLE_6PORT_4VM = 15, + DSAF_MODE_DISABLE_6PORT_16VM = 16, + DSAF_MODE_MAX = 17, }; -struct trace_event_raw_jbd2_lock_buffer_stall { - struct trace_entry ent; - dev_t dev; - unsigned long stall_ms; - char __data[0]; +enum hal_dsaf_mode { + HRD_DSAF_NO_DSAF_MODE = 0, + HRD_DSAF_MODE = 1, }; -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]; +enum hal_dsaf_tc_mode { + HRD_DSAF_4TC_MODE = 0, + HRD_DSAF_8TC_MODE = 1, }; -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]; +enum ppe_common_mode { + PPE_COMMON_MODE_DEBUG = 0, + PPE_COMMON_MODE_SERVICE = 1, + PPE_COMMON_MODE_MAX = 2, }; -struct trace_event_raw_jbd2_shrink_checkpoint_list { - struct trace_entry ent; - dev_t dev; - tid_t first_tid; - tid_t tid; - tid_t last_tid; - unsigned long nr_freed; - tid_t next_tid; - char __data[0]; +enum ppe_qid_mode { + PPE_QID_MODE0 = 0, + PPE_QID_MODE1 = 1, + PPE_QID_MODE2 = 2, + PPE_QID_MODE3 = 3, + PPE_QID_MODE4 = 4, + PPE_QID_MODE5 = 5, + PPE_QID_MODE6 = 6, + PPE_QID_MODE7 = 7, + PPE_QID_MODE8 = 8, + PPE_QID_MODE9 = 9, + PPE_QID_MODE10 = 10, + PPE_QID_MODE11 = 11, }; -struct shash_desc { - struct crypto_shash *tfm; - void *__ctx[0]; +enum ppe_port_mode { + PPE_MODE_GE = 0, + PPE_MODE_XGE = 1, }; -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 hns_ppe_hw_stats { + u64 rx_pkts_from_sw; + u64 rx_pkts; + u64 rx_drop_no_bd; + u64 rx_alloc_buf_fail; + u64 rx_alloc_buf_wait; + u64 rx_drop_no_buf; + u64 rx_err_fifo_full; + u64 tx_bd_form_rcb; + u64 tx_pkts_from_rcb; + u64 tx_pkts; + u64 tx_err_fifo_empty; + u64 tx_err_checksum; +}; -struct trace_event_data_offsets_jbd2_update_log_tail {}; +struct ppe_common_cb; -struct trace_event_data_offsets_jbd2_write_superblock {}; +struct hns_ppe_cb { + struct device *dev; + struct hns_ppe_cb *next; + struct ppe_common_cb *ppe_common_cb; + struct hns_ppe_hw_stats hw_stats; + u8 index; + u8 *io_base; + int virq; + u32 rss_indir_table[256]; + u32 rss_key[10]; +}; -struct trace_event_data_offsets_jbd2_lock_buffer_stall {}; +struct dsaf_device; -struct trace_event_data_offsets_jbd2_journal_shrink {}; +struct ppe_common_cb { + struct device *dev; + struct dsaf_device *dsaf_dev; + u8 *io_base; + enum ppe_common_mode ppe_mode; + u8 comm_index; + u32 ppe_num; + struct hns_ppe_cb ppe_cb[0]; +}; -struct trace_event_data_offsets_jbd2_shrink_scan_exit {}; +struct hnae_ae_ops; -struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {}; +struct hnae_ae_dev { + struct device cls_dev; + struct device *dev; + struct hnae_ae_ops *ops; + struct list_head node; + struct module *owner; + int id; + char name[16]; + struct list_head handle_list; + spinlock_t lock; +}; -struct jbd2_stats_proc_session { - journal_t *journal; - struct transaction_stats_s *stats; - int start; - int max; +struct dsaf_hw_stats { + u64 pad_drop; + u64 man_pkts; + u64 rx_pkts; + u64 rx_pkt_id; + u64 rx_pause_frame; + u64 release_buf_num; + u64 sbm_drop; + u64 crc_false; + u64 bp_drop; + u64 rslt_drop; + u64 local_addr_false; + u64 vlan_drop; + u64 stp_drop; + u64 rx_pfc[8]; + u64 tx_pfc[8]; + u64 tx_pkts; }; -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 dsaf_int_xge_src { + u32 xid_xge_ecc_err_int_src; + u32 xid_xge_fsm_timout_int_src; + u32 sbm_xge_lnk_fsm_timout_int_src; + u32 sbm_xge_lnk_ecc_2bit_int_src; + u32 sbm_xge_mib_req_failed_int_src; + u32 sbm_xge_mib_req_fsm_timout_int_src; + u32 sbm_xge_mib_rels_fsm_timout_int_src; + u32 sbm_xge_sram_ecc_2bit_int_src; + u32 sbm_xge_mib_buf_sum_err_int_src; + u32 sbm_xge_mib_req_extra_int_src; + u32 sbm_xge_mib_rels_extra_int_src; + u32 voq_xge_start_to_over_0_int_src; + u32 voq_xge_start_to_over_1_int_src; + u32 voq_xge_ecc_err_int_src; }; -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 dsaf_int_ppe_src { + u32 xid_ppe_fsm_timout_int_src; + u32 sbm_ppe_lnk_fsm_timout_int_src; + u32 sbm_ppe_lnk_ecc_2bit_int_src; + u32 sbm_ppe_mib_req_failed_int_src; + u32 sbm_ppe_mib_req_fsm_timout_int_src; + u32 sbm_ppe_mib_rels_fsm_timout_int_src; + u32 sbm_ppe_sram_ecc_2bit_int_src; + u32 sbm_ppe_mib_buf_sum_err_int_src; + u32 sbm_ppe_mib_req_extra_int_src; + u32 sbm_ppe_mib_rels_extra_int_src; + u32 voq_ppe_start_to_over_0_int_src; + u32 voq_ppe_ecc_err_int_src; + u32 xod_ppe_fifo_rd_empty_int_src; + u32 xod_ppe_fifo_wr_full_int_src; }; -struct nfs4_sessionid { - unsigned char data[16]; +struct dsaf_int_rocee_src { + u32 xid_rocee_fsm_timout_int_src; + u32 sbm_rocee_lnk_fsm_timout_int_src; + u32 sbm_rocee_lnk_ecc_2bit_int_src; + u32 sbm_rocee_mib_req_failed_int_src; + u32 sbm_rocee_mib_req_fsm_timout_int_src; + u32 sbm_rocee_mib_rels_fsm_timout_int_src; + u32 sbm_rocee_sram_ecc_2bit_int_src; + u32 sbm_rocee_mib_buf_sum_err_int_src; + u32 sbm_rocee_mib_req_extra_int_src; + u32 sbm_rocee_mib_rels_extra_int_src; + u32 voq_rocee_start_to_over_0_int_src; + u32 voq_rocee_ecc_err_int_src; }; -struct nfs4_channel_attrs { - u32 max_rqst_sz; - u32 max_resp_sz; - u32 max_resp_sz_cached; - u32 max_ops; - u32 max_reqs; +struct dsaf_int_tbl_src { + u32 tbl_da0_mis_src; + u32 tbl_da1_mis_src; + u32 tbl_da2_mis_src; + u32 tbl_da3_mis_src; + u32 tbl_da4_mis_src; + u32 tbl_da5_mis_src; + u32 tbl_da6_mis_src; + u32 tbl_da7_mis_src; + u32 tbl_sa_mis_src; + u32 tbl_old_sech_end_src; + u32 lram_ecc_err1_src; + u32 lram_ecc_err2_src; + u32 tram_ecc_err1_src; + u32 tram_ecc_err2_src; + u32 tbl_ucast_bcast_xge0_src; + u32 tbl_ucast_bcast_xge1_src; + u32 tbl_ucast_bcast_xge2_src; + u32 tbl_ucast_bcast_xge3_src; + u32 tbl_ucast_bcast_xge4_src; + u32 tbl_ucast_bcast_xge5_src; + u32 tbl_ucast_bcast_ppe_src; + u32 tbl_ucast_bcast_rocee_src; }; -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; +struct dsaf_int_stat { + struct dsaf_int_xge_src dsaf_int_xge_stat[6]; + struct dsaf_int_ppe_src dsaf_int_ppe_stat[6]; + struct dsaf_int_rocee_src dsaf_int_rocee_stat[6]; + struct dsaf_int_tbl_src dsaf_int_tbl_stat[1]; }; -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, -}; +struct rcb_common_cb; -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, -}; +struct hns_mac_cb; -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 dsaf_misc_op; -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, +struct dsaf_device { + struct device *dev; + struct hnae_ae_dev ae_dev; + u8 *sc_base; + u8 *sds_base; + u8 *ppe_base; + u8 *io_base; + struct regmap *sub_ctrl; + phys_addr_t ppe_paddr; + u32 desc_num; + u32 buf_size; + u32 reset_offset; + int buf_size_type; + enum dsaf_mode dsaf_mode; + enum hal_dsaf_mode dsaf_en; + enum hal_dsaf_tc_mode dsaf_tc_mode; + u32 dsaf_ver; + u16 tcam_max_num; + struct ppe_common_cb *ppe_common[1]; + struct rcb_common_cb *rcb_common[1]; + struct hns_mac_cb *mac_cb[6]; + struct dsaf_misc_op *misc_op; + struct dsaf_hw_stats hw_stats[18]; + struct dsaf_int_stat int_stat; + spinlock_t tcam_lock; }; -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 hnae_handle; + +struct hnae_queue; + +struct hnae_ring; + +struct hnae_ae_ops { + struct hnae_handle * (*get_handle)(struct hnae_ae_dev *, u32); + void (*put_handle)(struct hnae_handle *); + void (*init_queue)(struct hnae_queue *); + void (*fini_queue)(struct hnae_queue *); + int (*start)(struct hnae_handle *); + void (*stop)(struct hnae_handle *); + void (*reset)(struct hnae_handle *); + int (*set_opts)(struct hnae_handle *, int, void *); + int (*get_opts)(struct hnae_handle *, int, void **); + int (*get_status)(struct hnae_handle *); + int (*get_info)(struct hnae_handle *, u8 *, u16 *, u8 *); + void (*toggle_ring_irq)(struct hnae_ring *, u32); + void (*adjust_link)(struct hnae_handle *, int, int); + bool (*need_adjust_link)(struct hnae_handle *, int, int); + int (*set_loopback)(struct hnae_handle *, enum hnae_loop, int); + void (*get_ring_bdnum_limit)(struct hnae_queue *, u32 *); + void (*get_pauseparam)(struct hnae_handle *, u32 *, u32 *, u32 *); + int (*set_pauseparam)(struct hnae_handle *, u32, u32, u32); + void (*get_coalesce_usecs)(struct hnae_handle *, u32 *, u32 *); + void (*get_max_coalesced_frames)(struct hnae_handle *, u32 *, u32 *); + int (*set_coalesce_usecs)(struct hnae_handle *, u32); + int (*set_coalesce_frames)(struct hnae_handle *, u32, u32); + void (*get_coalesce_range)(struct hnae_handle *, u32 *, u32 *, u32 *, u32 *, u32 *, u32 *, u32 *, u32 *); + void (*set_promisc_mode)(struct hnae_handle *, u32); + int (*get_mac_addr)(struct hnae_handle *, void **); + int (*set_mac_addr)(struct hnae_handle *, const void *); + int (*add_uc_addr)(struct hnae_handle *, const unsigned char *); + int (*rm_uc_addr)(struct hnae_handle *, const unsigned char *); + int (*clr_mc_addr)(struct hnae_handle *); + int (*set_mc_addr)(struct hnae_handle *, void *); + int (*set_mtu)(struct hnae_handle *, int); + void (*set_tso_stats)(struct hnae_handle *, int); + void (*update_stats)(struct hnae_handle *, struct net_device_stats *); + void (*get_stats)(struct hnae_handle *, u64 *); + void (*get_strings)(struct hnae_handle *, u32, u8 *); + int (*get_sset_count)(struct hnae_handle *, int); + void (*update_led_status)(struct hnae_handle *); + int (*set_led_id)(struct hnae_handle *, enum hnae_led_state); + void (*get_regs)(struct hnae_handle *, void *); + int (*get_regs_len)(struct hnae_handle *); + u32 (*get_rss_key_size)(struct hnae_handle *); + u32 (*get_rss_indir_size)(struct hnae_handle *); + int (*get_rss)(struct hnae_handle *, u32 *, u8 *, u8 *); + int (*set_rss)(struct hnae_handle *, const u32 *, const u8 *, const u8); }; -struct nfs4_cached_acl; +struct hnae_buf_ops; -struct pnfs_layout_hdr; +struct hnae_handle { + struct device *owner_dev; + struct hnae_ae_dev *dev; + struct phy_device *phy_dev; + phy_interface_t phy_if; + u32 if_support; + int q_num; + int vf_id; + unsigned long coal_last_jiffies; + u32 coal_param; + u32 coal_ring_idx; + u32 eport_id; + u32 dport_id; + bool coal_adapt_en; + enum hnae_port_type port_type; + enum hnae_media_type media_type; + struct list_head node; + struct hnae_buf_ops *bops; + struct hnae_queue *qs[0]; +}; -struct nfs4_xattr_cache; +struct hnae_desc_cb; -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; +struct hnae_buf_ops { + int (*alloc_buffer)(struct hnae_ring *, struct hnae_desc_cb *); + void (*free_buffer)(struct hnae_ring *, struct hnae_desc_cb *); + int (*map_buffer)(struct hnae_ring *, struct hnae_desc_cb *); + void (*unmap_buffer)(struct hnae_ring *, struct hnae_desc_cb *); +}; + +struct ring_stats { + u64 io_err_cnt; + u64 sw_err_cnt; + u64 seg_pkt_cnt; union { struct { - unsigned long cache_change_attribute; - __be32 cookieverf[2]; - struct rw_semaphore rmdir_sem; + u64 tx_pkts; + u64 tx_bytes; + u64 tx_err_cnt; + u64 restart_queue; + u64 tx_busy; }; struct { - atomic_long_t nrequests; - atomic_long_t redirtied_pages; - struct nfs_mds_commit_info commit_info; - struct mutex commit_mutex; + u64 rx_pkts; + u64 rx_bytes; + u64 rx_err_cnt; + u64 reuse_pg_cnt; + u64 err_pkt_len; + u64 non_vld_descs; + u64 err_bd_num; + u64 l2_err; + u64 l3l4_csum_err; }; }; - struct list_head open_files; - struct { - int cnt; - struct { - u64 start; - u64 end; - } gap[16]; - } *ooo; - 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 nfs4_xattr_cache *xattr_cache; - union { - struct inode vfs_inode; - }; }; -struct nlm_cookie { - unsigned char data[32]; - unsigned int len; -}; +struct hnae_desc; -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 hnae_ring { + u8 *io_base; + struct hnae_desc *desc; + struct hnae_desc_cb *desc_cb; + struct hnae_queue *q; + int irq; + char ring_name[20]; + struct ring_stats stats; + dma_addr_t desc_dma_addr; + u32 buf_size; + u16 desc_num; + u16 max_desc_num_per_pkt; + u16 max_raw_data_sz_per_desc; + u16 max_pkt_size; + int next_to_use; + int next_to_clean; + int flags; + int irq_init_flag; + u64 coal_last_rx_bytes; + unsigned long coal_last_jiffies; + u32 coal_param; + u32 coal_rx_rate; }; -struct nlm_res { - struct nlm_cookie cookie; - __be32 status; - struct nlm_lock lock; +struct hnae_desc { + __le64 addr; + union { + struct { + union { + __le16 asid_bufnum_pid; + __le16 asid; + }; + __le16 send_size; + union { + __le32 flag_ipoffset; + struct { + __u8 bn_pid; + __u8 ra_ri_cs_fe_vld; + __u8 ip_offset; + __u8 tse_vlan_snap_v6_sctp_nth; + }; + }; + __le16 mss; + __u8 l4_len; + __u8 reserved1; + __le16 paylen; + __u8 vmid; + __u8 qid; + __le32 reserved2[2]; + } tx; + struct { + __le32 ipoff_bnum_pid_flag; + __le16 pkt_len; + __le16 size; + union { + __le32 vlan_pri_asid; + struct { + __le16 asid; + __le16 vlan_cfi_pri; + }; + }; + __le32 rss_hash; + __le32 reserved_1[2]; + } rx; + }; }; -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 hnae_desc_cb { + dma_addr_t dma; + void *buf; + void *priv; + u32 page_offset; + u32 length; + u16 reuse_flag; + u16 type; }; -struct nlm_reboot { - char *mon; - unsigned int len; - u32 state; - struct nsm_private priv; +struct hnae_queue { + u8 *io_base; + phys_addr_t phy_base; + struct hnae_ae_dev *dev; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct hnae_ring rx_ring; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct hnae_ring tx_ring; + struct hnae_handle *handle; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 hns_ring_hw_stats { + u64 tx_pkts; + u64 ppe_tx_ok_pkts; + u64 ppe_tx_drop_pkts; + u64 rx_pkts; + u64 ppe_rx_ok_pkts; + u64 ppe_rx_drop_pkts; }; -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, +struct ring_pair_cb { + struct rcb_common_cb *rcb_common; + struct device *dev; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct hnae_queue q; + u16 index; + u16 buf_size; + int virq[2]; + u8 port_id_in_comm; + u8 used_by_vf; + struct hns_ring_hw_stats hw_stats; }; -enum { - CRYPTO_MSG_ALG_REQUEST = 0, - CRYPTO_MSG_ALG_REGISTER = 1, - CRYPTO_MSG_ALG_LOADED = 2, +struct rcb_common_cb { + u8 *io_base; + phys_addr_t phy_base; + struct dsaf_device *dsaf_dev; + u16 max_vfn; + u16 max_q_per_vf; + u8 comm_index; + u32 ring_num; + u32 desc_num; + long: 64; + long: 64; + long: 64; + struct ring_pair_cb ring_pair_cb[0]; }; -enum { - CRYPTOA_UNSPEC = 0, - CRYPTOA_ALG = 1, - CRYPTOA_TYPE = 2, - __CRYPTOA_MAX = 3, +struct mac_priv { + void *mac; }; -struct crypto_larval { - struct crypto_alg alg; - struct crypto_alg *adult; - struct completion completion; - u32 mask; - bool test_started; +struct mac_entry_idx { + u8 addr[6]; + u16 vlan_id: 12; + u16 valid: 1; + u16 qos: 3; }; -struct rtattr { - unsigned short rta_len; - unsigned short rta_type; +struct mac_hw_stats { + u64 rx_good_pkts; + u64 rx_good_bytes; + u64 rx_total_pkts; + u64 rx_total_bytes; + u64 rx_bad_bytes; + u64 rx_uc_pkts; + u64 rx_mc_pkts; + u64 rx_bc_pkts; + u64 rx_fragment_err; + u64 rx_undersize; + u64 rx_under_min; + u64 rx_minto64; + u64 rx_64bytes; + u64 rx_65to127; + u64 rx_128to255; + u64 rx_256to511; + u64 rx_512to1023; + u64 rx_1024to1518; + u64 rx_1519tomax; + u64 rx_1519tomax_good; + u64 rx_oversize; + u64 rx_jabber_err; + u64 rx_fcs_err; + u64 rx_vlan_pkts; + u64 rx_data_err; + u64 rx_align_err; + u64 rx_long_err; + u64 rx_pfc_tc0; + u64 rx_pfc_tc1; + u64 rx_pfc_tc2; + u64 rx_pfc_tc3; + u64 rx_pfc_tc4; + u64 rx_pfc_tc5; + u64 rx_pfc_tc6; + u64 rx_pfc_tc7; + u64 rx_unknown_ctrl; + u64 rx_filter_pkts; + u64 rx_filter_bytes; + u64 rx_fifo_overrun_err; + u64 rx_len_err; + u64 rx_comma_err; + u64 rx_symbol_err; + u64 tx_good_to_sw; + u64 tx_bad_to_sw; + u64 rx_1731_pkts; + u64 tx_good_bytes; + u64 tx_good_pkts; + u64 tx_total_bytes; + u64 tx_total_pkts; + u64 tx_bad_bytes; + u64 tx_bad_pkts; + u64 tx_uc_pkts; + u64 tx_mc_pkts; + u64 tx_bc_pkts; + u64 tx_undersize; + u64 tx_fragment_err; + u64 tx_under_min_pkts; + u64 tx_64bytes; + u64 tx_65to127; + u64 tx_128to255; + u64 tx_256to511; + u64 tx_512to1023; + u64 tx_1024to1518; + u64 tx_1519tomax; + u64 tx_1519tomax_good; + u64 tx_oversize; + u64 tx_jabber_err; + u64 tx_underrun_err; + u64 tx_vlan; + u64 tx_crc_err; + u64 tx_pfc_tc0; + u64 tx_pfc_tc1; + u64 tx_pfc_tc2; + u64 tx_pfc_tc3; + u64 tx_pfc_tc4; + u64 tx_pfc_tc5; + u64 tx_pfc_tc6; + u64 tx_pfc_tc7; + u64 tx_ctrl; + u64 tx_1731_pkts; + u64 tx_1588_pkts; + u64 rx_good_from_sw; + u64 rx_bad_from_sw; }; -struct crypto_attr_type { - u32 type; - u32 mask; +struct hns_mac_cb { + struct device *dev; + struct dsaf_device *dsaf_dev; + struct mac_priv priv; + struct fwnode_handle *fw_port; + u8 *vaddr; + u8 *sys_ctl_vaddr; + u8 *serdes_vaddr; + struct regmap *serdes_ctrl; + struct regmap *cpld_ctrl; + char mc_mask[6]; + u32 cpld_ctrl_reg; + u32 port_rst_off; + u32 port_mode_off; + struct mac_entry_idx addr_entry_idx[128]; + u8 sfp_prsnt; + u8 cpld_led_value; + u8 mac_id; + u8 link; + u8 half_duplex; + u16 speed; + u16 max_speed; + u16 max_frm; + u16 tx_pause_frm_time; + u32 if_support; + u64 txpkt_for_led; + u64 rxpkt_for_led; + enum hnae_port_type mac_type; + enum hnae_media_type media_type; + phy_interface_t phy_if; + enum hnae_loop loop_mode; + struct phy_device *phy_dev; + struct mac_hw_stats hw_stats; }; -struct crypto_attr_alg { - char name[128]; +struct dsaf_misc_op { + void (*cpld_set_led)(struct hns_mac_cb *, int, u16, int); + void (*cpld_reset_led)(struct hns_mac_cb *); + int (*cpld_set_led_id)(struct hns_mac_cb *, enum hnae_led_state); + void (*dsaf_reset)(struct dsaf_device *, bool); + void (*xge_srst)(struct dsaf_device *, u32, bool); + void (*ge_srst)(struct dsaf_device *, u32, bool); + void (*ppe_srst)(struct dsaf_device *, u32, bool); + void (*ppe_comm_srst)(struct dsaf_device *, bool); + void (*hns_dsaf_srst_chns)(struct dsaf_device *, u32, bool); + void (*hns_dsaf_roce_srst)(struct dsaf_device *, bool); + phy_interface_t (*get_phy_if)(struct hns_mac_cb *); + int (*get_sfp_prsnt)(struct hns_mac_cb *, int *); + int (*cfg_serdes_loopback)(struct hns_mac_cb *, bool); }; -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 page_pool_params { + unsigned int flags; + unsigned int order; + unsigned int pool_size; + int nid; + struct device *dev; + struct napi_struct *napi; + enum dma_data_direction dma_dir; + unsigned int max_len; + unsigned int offset; + void (*init_callback)(struct page *, void *); + void *init_arg; }; -typedef int bsg_job_fn(struct bsg_job *); - -typedef enum blk_eh_timer_return bsg_timeout_fn(struct request *); - -struct bsg_set { - struct blk_mq_tag_set tag_set; - struct bsg_device *bd; - bsg_job_fn *job_fn; - bsg_timeout_fn *timeout_fn; +struct page_pool_alloc_stats { + u64 fast; + u64 slow; + u64 slow_high_order; + u64 empty; + u64 refill; + u64 waive; }; -struct sg_io_v4; - -typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, unsigned int); - -struct sg_io_v4 { - __s32 guard; - __u32 protocol; - __u32 subprotocol; - __u32 request_len; - __u64 request; - __u64 request_tag; - __u32 request_attr; - __u32 request_priority; - __u32 request_extra; - __u32 max_response_len; - __u64 response; - __u32 dout_iovec_count; - __u32 dout_xfer_len; - __u32 din_iovec_count; - __u32 din_xfer_len; - __u64 dout_xferp; - __u64 din_xferp; - __u32 timeout; - __u32 flags; - __u64 usr_ptr; - __u32 spare_in; - __u32 driver_status; - __u32 transport_status; - __u32 device_status; - __u32 retry_delay; - __u32 info; - __u32 duration; - __u32 response_len; - __s32 din_resid; - __s32 dout_resid; - __u64 generated_tag; - __u32 spare_out; - __u32 padding; +struct pp_alloc_cache { + u32 count; + struct page *cache[128]; }; -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 ptr_ring { + int producer; + spinlock_t producer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + int consumer_head; + int consumer_tail; + spinlock_t consumer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + int size; + int batch; + void **queue; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct io_timeout { - struct file *file; - u32 off; - u32 target_seq; - u32 repeats; - struct list_head list; - struct io_kiocb *head; - struct io_kiocb *prev; +struct page_pool_recycle_stats; + +struct page_pool { + struct page_pool_params p; + long frag_users; + struct page *frag_page; + unsigned int frag_offset; + u32 pages_state_hold_cnt; + struct delayed_work release_dw; + void (*disconnect)(void *); + unsigned long defer_start; + unsigned long defer_warn; + struct page_pool_alloc_stats alloc_stats; + u32 xdp_mem_id; + 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 io_timeout_rem { - struct file *file; - u64 addr; - struct timespec64 ts; - u32 flags; - bool ltimeout; +struct page_pool_recycle_stats { + u64 cached; + u64 cache_full; + u64 ring; + u64 ring_full; + u64 released_refcnt; }; -struct io_timeout_data { - struct io_kiocb *req; - struct hrtimer timer; - struct timespec64 ts; - enum hrtimer_mode mode; - u32 flags; +struct qdisc_walker { + int stop; + int skip; + int count; + int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *); }; -struct io_cancel_data { - struct io_ring_ctx *ctx; - union { - u64 data; - struct file *file; - }; - u32 flags; - int seq; +struct tcf_walker { + int stop; + int skip; + int count; + bool nonempty; + unsigned long cookie; + int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); }; -typedef struct { - unsigned char op; - unsigned char bits; - unsigned short val; -} code; +struct tc_action; -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 tcf_exts_miss_cookie_node; -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 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 inflate_workspace { - struct inflate_state inflate_state; - unsigned char working_window[32768]; +struct tcf_t { + __u64 install; + __u64 lastuse; + __u64 expires; + __u64 firstuse; }; -struct z_stream_s; +struct tc_action_ops; -typedef struct z_stream_s z_stream; +struct tcf_idrinfo; -typedef z_stream *z_streamp; +struct tc_cookie; -typedef unsigned char Byte; +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; +}; -typedef unsigned long uLong; +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, +}; -struct internal_state; +typedef void (*tc_action_priv_destructor)(void *); -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 uint32_t U32; - -typedef struct { - U32 tableTime; - U32 decode256Time; -} algo_time_t; - -typedef uint8_t BYTE; - -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 uint16_t U16; - -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 uint64_t U64; - -typedef struct { - BYTE maxTableLog; - BYTE tableType; - BYTE tableLog; - BYTE reserved; -} DTableDesc; - -typedef U32 HUF_DTable; - -typedef struct { - size_t bitContainer; - unsigned int bitsConsumed; - const char *ptr; - const char *start; - const char *limitPtr; -} BIT_DStream_t; - -typedef enum { - BIT_DStream_unfinished = 0, - BIT_DStream_endOfBuffer = 1, - BIT_DStream_completed = 2, - BIT_DStream_overflow = 3, -} BIT_DStream_status; +struct psample_group; -struct font_desc { - int idx; - const char *name; - unsigned int width; - unsigned int height; - unsigned int charcount; - const void *data; - int pref; +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 font_data { - unsigned int extra[4]; - const unsigned char data[0]; +struct tcf_idrinfo { + struct mutex lock; + struct idr action_idr; + struct net *net; }; -struct owl_sirq_params { - bool reg_shared; - u16 reg_offset[3]; +struct tc_cookie { + u8 *data; + u32 len; + struct callback_head rcu; }; -struct owl_sirq_chip_data { - const struct owl_sirq_params *params; - void *base; - raw_spinlock_t lock; - u32 ext_irqs[3]; +struct hns3_stats { + char stats_string[32]; + int stats_offset; }; -struct pdc_pin_region { - u32 pin_base; - u32 parent_base; - u32 cnt; +struct hns3_pflag_desc { + char name[32]; + void (*handler)(struct net_device *, bool); }; -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, +enum ethtool_reset_flags { + ETH_RESET_MGMT = 1, + ETH_RESET_IRQ = 2, + ETH_RESET_DMA = 4, + ETH_RESET_FILTER = 8, + ETH_RESET_OFFLOAD = 16, + ETH_RESET_MAC = 32, + ETH_RESET_PHY = 64, + ETH_RESET_RAM = 128, + ETH_RESET_AP = 256, + ETH_RESET_DEDICATED = 65535, + ETH_RESET_ALL = 4294967295, }; -enum pdc_irq_config_bits { - PDC_LEVEL_LOW = 0, - PDC_EDGE_FALLING = 2, - PDC_LEVEL_HIGH = 4, - PDC_EDGE_RISING = 6, - PDC_EDGE_DUAL = 7, +enum hnae3_reset_type { + HNAE3_VF_RESET = 0, + HNAE3_VF_FUNC_RESET = 1, + HNAE3_VF_PF_FUNC_RESET = 2, + HNAE3_VF_FULL_RESET = 3, + HNAE3_FLR_RESET = 4, + HNAE3_FUNC_RESET = 5, + HNAE3_GLOBAL_RESET = 6, + HNAE3_IMP_RESET = 7, + HNAE3_NONE_RESET = 8, + HNAE3_VF_EXP_RESET = 9, + HNAE3_MAX_RESET = 10, }; -struct module_version_attribute { - struct module_attribute mattr; - const char *module_name; - const char *version; +struct hns3_reset_type_map { + enum ethtool_reset_flags rst_flags; + enum hnae3_reset_type rst_type; }; -enum xgene_phy_mode { - MODE_SATA = 0, - MODE_SGMII = 1, - MODE_PCIE = 2, - MODE_USB = 3, - MODE_XFI = 4, - MODE_MAX = 5, +struct hns3_ethtool_link_ext_state_mapping { + u32 status_code; + enum ethtool_link_ext_state link_ext_state; + u8 link_ext_substate; }; -enum clk_type_t { - CLK_EXT_DIFF = 0, - CLK_INT_DIFF = 1, - CLK_INT_SING = 2, +enum hnae3_client_type { + HNAE3_CLIENT_KNIC = 0, + HNAE3_CLIENT_ROCE = 1, }; -enum cmu_type_t { - REF_CMU = 0, - PHY_CMU = 1, +enum hnae3_reset_notify_type { + HNAE3_UP_CLIENT = 0, + HNAE3_DOWN_CLIENT = 1, + HNAE3_INIT_CLIENT = 2, + HNAE3_UNINIT_CLIENT = 3, }; -struct xgene_sata_override_param { - u32 speed[2]; - u32 txspeed[3]; - u32 txboostgain[6]; - u32 txeyetuning[6]; - u32 txeyedirection[6]; - u32 txamplitude[6]; - u32 txprecursor_cn1[6]; - u32 txprecursor_cn2[6]; - u32 txpostcursor_cp1[6]; +enum hnae3_hw_error_type { + HNAE3_PPU_POISON_ERROR = 0, + HNAE3_CMDQ_ECC_ERROR = 1, + HNAE3_IMP_RD_POISON_ERROR = 2, + HNAE3_ROCEE_AXI_RESP_ERROR = 3, }; -struct xgene_phy_ctx { - struct device *dev; - struct phy *phy; - enum xgene_phy_mode mode; - enum clk_type_t clk_type; - void *sds_base; - struct clk *clk; - struct xgene_sata_override_param sata_param; +enum hnae3_loop { + HNAE3_LOOP_EXTERNAL = 0, + HNAE3_LOOP_APP = 1, + HNAE3_LOOP_SERIAL_SERDES = 2, + HNAE3_LOOP_PARALLEL_SERDES = 3, + HNAE3_LOOP_PHY = 4, + HNAE3_LOOP_NONE = 5, }; -struct pinctrl_dt_map { - struct list_head node; - struct pinctrl_dev *pctldev; - struct pinctrl_map *map; - unsigned int num_maps; +enum hnae3_dbg_cmd { + HNAE3_DBG_CMD_TM_NODES = 0, + HNAE3_DBG_CMD_TM_PRI = 1, + HNAE3_DBG_CMD_TM_QSET = 2, + HNAE3_DBG_CMD_TM_MAP = 3, + HNAE3_DBG_CMD_TM_PG = 4, + HNAE3_DBG_CMD_TM_PORT = 5, + HNAE3_DBG_CMD_TC_SCH_INFO = 6, + HNAE3_DBG_CMD_QOS_PAUSE_CFG = 7, + HNAE3_DBG_CMD_QOS_PRI_MAP = 8, + HNAE3_DBG_CMD_QOS_DSCP_MAP = 9, + HNAE3_DBG_CMD_QOS_BUF_CFG = 10, + HNAE3_DBG_CMD_DEV_INFO = 11, + HNAE3_DBG_CMD_TX_BD = 12, + HNAE3_DBG_CMD_RX_BD = 13, + HNAE3_DBG_CMD_MAC_UC = 14, + HNAE3_DBG_CMD_MAC_MC = 15, + HNAE3_DBG_CMD_MNG_TBL = 16, + HNAE3_DBG_CMD_LOOPBACK = 17, + HNAE3_DBG_CMD_PTP_INFO = 18, + HNAE3_DBG_CMD_INTERRUPT_INFO = 19, + HNAE3_DBG_CMD_RESET_INFO = 20, + HNAE3_DBG_CMD_IMP_INFO = 21, + HNAE3_DBG_CMD_NCL_CONFIG = 22, + HNAE3_DBG_CMD_REG_BIOS_COMMON = 23, + HNAE3_DBG_CMD_REG_SSU = 24, + HNAE3_DBG_CMD_REG_IGU_EGU = 25, + HNAE3_DBG_CMD_REG_RPU = 26, + HNAE3_DBG_CMD_REG_NCSI = 27, + HNAE3_DBG_CMD_REG_RTC = 28, + HNAE3_DBG_CMD_REG_PPP = 29, + HNAE3_DBG_CMD_REG_RCB = 30, + HNAE3_DBG_CMD_REG_TQP = 31, + HNAE3_DBG_CMD_REG_MAC = 32, + HNAE3_DBG_CMD_REG_DCB = 33, + HNAE3_DBG_CMD_VLAN_CONFIG = 34, + HNAE3_DBG_CMD_QUEUE_MAP = 35, + HNAE3_DBG_CMD_RX_QUEUE_INFO = 36, + HNAE3_DBG_CMD_TX_QUEUE_INFO = 37, + HNAE3_DBG_CMD_FD_TCAM = 38, + HNAE3_DBG_CMD_FD_COUNTER = 39, + HNAE3_DBG_CMD_MAC_TNL_STATUS = 40, + HNAE3_DBG_CMD_SERV_INFO = 41, + HNAE3_DBG_CMD_UMV_INFO = 42, + HNAE3_DBG_CMD_PAGE_POOL_INFO = 43, + HNAE3_DBG_CMD_COAL_INFO = 44, + HNAE3_DBG_CMD_UNKNOWN = 45, }; -struct mtk_eint_hw { - u8 port_mask; - u8 ports; - unsigned int ap_num; - unsigned int db_cnt; - const unsigned int *db_time; +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, }; -struct mtk_desc_pin; - -struct mtk_drv_group_desc; - -struct mtk_pin_drv_grp; - -struct mtk_pin_ies_smt_set; - -struct mtk_pin_spec_pupd_set_samereg; - -struct mtk_eint_regs; - -struct mtk_pinctrl_devdata { - const struct mtk_desc_pin *pins; - unsigned int npins; - const struct mtk_drv_group_desc *grp_desc; - unsigned int n_grp_cls; - const struct mtk_pin_drv_grp *pin_drv_grp; - unsigned int n_pin_drv_grps; - const struct mtk_pin_ies_smt_set *spec_ies; - unsigned int n_spec_ies; - const struct mtk_pin_spec_pupd_set_samereg *spec_pupd; - unsigned int n_spec_pupd; - const struct mtk_pin_ies_smt_set *spec_smt; - unsigned int n_spec_smt; - int (*spec_pull_set)(struct regmap *, const struct mtk_pinctrl_devdata *, unsigned int, bool, unsigned int); - int (*spec_ies_smt_set)(struct regmap *, const struct mtk_pinctrl_devdata *, unsigned int, int, enum pin_config_param); - void (*spec_pinmux_set)(struct regmap *, unsigned int, unsigned int); - void (*spec_dir_set)(unsigned int *, unsigned int); - int (*mt8365_set_clr_mode)(struct regmap *, unsigned int, unsigned int, unsigned int, bool, bool); - unsigned int dir_offset; - unsigned int ies_offset; - unsigned int smt_offset; - unsigned int pullen_offset; - unsigned int pullsel_offset; - unsigned int drv_offset; - unsigned int dout_offset; - unsigned int din_offset; - unsigned int pinmux_offset; - unsigned short type1_start; - unsigned short type1_end; - unsigned char port_shf; - unsigned char port_mask; - unsigned char port_align; - struct mtk_eint_hw eint_hw; - struct mtk_eint_regs *eint_regs; - unsigned int mode_mask; - unsigned int mode_per_reg; - unsigned int mode_shf; +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, }; -struct mtk_desc_eint { - unsigned char eintmux; - unsigned char eintnum; +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, }; -struct mtk_desc_function; +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, +}; -struct mtk_desc_pin { - struct pinctrl_pin_desc pin; - const struct mtk_desc_eint eint; - const struct mtk_desc_function *functions; +enum hnae3_port_base_vlan_state { + HNAE3_PORT_BASE_VLAN_DISABLE = 0, + HNAE3_PORT_BASE_VLAN_ENABLE = 1, + HNAE3_PORT_BASE_VLAN_MODIFY = 2, + HNAE3_PORT_BASE_VLAN_NOCHANGE = 3, }; -struct mtk_desc_function { - const char *name; - unsigned char muxval; +enum hns3_flow_level_range { + HNS3_FLOW_LOW = 0, + HNS3_FLOW_MID = 1, + HNS3_FLOW_HIGH = 2, + HNS3_FLOW_ULTRA = 3, }; -struct mtk_drv_group_desc { - unsigned char min_drv; - unsigned char max_drv; - unsigned char low_bit; - unsigned char high_bit; - unsigned char step; +enum dim_cq_period_mode { + DIM_CQ_PERIOD_MODE_START_FROM_EQE = 0, + DIM_CQ_PERIOD_MODE_START_FROM_CQE = 1, + DIM_CQ_PERIOD_NUM_MODES = 2, }; -struct mtk_pin_drv_grp { - unsigned short pin; - unsigned short offset; - unsigned char bit; - unsigned char grp; +enum hns3_nic_state { + HNS3_NIC_STATE_TESTING = 0, + HNS3_NIC_STATE_RESETTING = 1, + HNS3_NIC_STATE_INITED = 2, + HNS3_NIC_STATE_DOWN = 3, + HNS3_NIC_STATE_DISABLED = 4, + HNS3_NIC_STATE_REMOVING = 5, + HNS3_NIC_STATE_SERVICE_INITED = 6, + HNS3_NIC_STATE_SERVICE_SCHED = 7, + HNS3_NIC_STATE2_RESET_REQUESTED = 8, + HNS3_NIC_STATE_HW_TX_CSUM_ENABLE = 9, + HNS3_NIC_STATE_RXD_ADV_LAYOUT_ENABLE = 10, + HNS3_NIC_STATE_TX_PUSH_ENABLE = 11, + HNS3_NIC_STATE_MAX = 12, }; -struct mtk_pin_ies_smt_set { - unsigned short start; - unsigned short end; - unsigned short offset; - unsigned char bit; +enum HNAE3_DEV_CAP_BITS { + HNAE3_DEV_SUPPORT_FD_B = 0, + HNAE3_DEV_SUPPORT_GRO_B = 1, + HNAE3_DEV_SUPPORT_FEC_B = 2, + HNAE3_DEV_SUPPORT_UDP_GSO_B = 3, + HNAE3_DEV_SUPPORT_QB_B = 4, + HNAE3_DEV_SUPPORT_FD_FORWARD_TC_B = 5, + HNAE3_DEV_SUPPORT_PTP_B = 6, + HNAE3_DEV_SUPPORT_INT_QL_B = 7, + HNAE3_DEV_SUPPORT_HW_TX_CSUM_B = 8, + HNAE3_DEV_SUPPORT_TX_PUSH_B = 9, + HNAE3_DEV_SUPPORT_PHY_IMP_B = 10, + HNAE3_DEV_SUPPORT_TQP_TXRX_INDEP_B = 11, + HNAE3_DEV_SUPPORT_HW_PAD_B = 12, + HNAE3_DEV_SUPPORT_STASH_B = 13, + HNAE3_DEV_SUPPORT_UDP_TUNNEL_CSUM_B = 14, + HNAE3_DEV_SUPPORT_PAUSE_B = 15, + HNAE3_DEV_SUPPORT_RAS_IMP_B = 16, + HNAE3_DEV_SUPPORT_RXD_ADV_LAYOUT_B = 17, + HNAE3_DEV_SUPPORT_PORT_VLAN_BYPASS_B = 18, + HNAE3_DEV_SUPPORT_VLAN_FLTR_MDF_B = 19, + HNAE3_DEV_SUPPORT_MC_MAC_MNG_B = 20, + HNAE3_DEV_SUPPORT_CQ_B = 21, + HNAE3_DEV_SUPPORT_FEC_STATS_B = 22, + HNAE3_DEV_SUPPORT_LANE_NUM_B = 23, + HNAE3_DEV_SUPPORT_WOL_B = 24, + HNAE3_DEV_SUPPORT_TM_FLUSH_B = 25, + HNAE3_DEV_SUPPORT_VF_FAULT_B = 26, }; -struct mtk_pin_spec_pupd_set_samereg { - unsigned short pin; - unsigned short offset; - unsigned char pupd_bit; - unsigned char r1_bit; - unsigned char r0_bit; +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 mtk_eint_regs { - unsigned int stat; - unsigned int ack; - unsigned int mask; - unsigned int mask_set; - unsigned int mask_clr; - unsigned int sens; - unsigned int sens_set; - unsigned int sens_clr; - unsigned int soft; - unsigned int soft_set; - unsigned int soft_clr; - unsigned int pol; - unsigned int pol_set; - unsigned int pol_clr; - unsigned int dom_en; - unsigned int dbnc_ctrl; - unsigned int dbnc_set; - unsigned int dbnc_clr; +enum hnae3_pflag { + HNAE3_PFLAG_LIMIT_PROMISC = 0, + HNAE3_PFLAG_MAX = 1, }; enum { - PINMUX_TYPE_NONE = 0, - PINMUX_TYPE_FUNCTION = 1, - PINMUX_TYPE_GPIO = 2, - PINMUX_TYPE_OUTPUT = 3, - PINMUX_TYPE_INPUT = 4, + 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 sh_pfc_chip; - -struct sh_pfc_soc_info; - -struct sh_pfc_window; - -struct sh_pfc_pin_range; - -struct sh_pfc { - struct device *dev; - const struct sh_pfc_soc_info *info; - spinlock_t lock; - unsigned int num_windows; - struct sh_pfc_window *windows; - unsigned int num_irqs; - unsigned int *irqs; - struct sh_pfc_pin_range *ranges; - unsigned int nr_ranges; - unsigned int nr_gpio_pins; - struct sh_pfc_chip *gpio; - u32 *saved_regs; +enum hnae3_media_type { + HNAE3_MEDIA_TYPE_UNKNOWN = 0, + HNAE3_MEDIA_TYPE_FIBER = 1, + HNAE3_MEDIA_TYPE_COPPER = 2, + HNAE3_MEDIA_TYPE_BACKPLANE = 3, + HNAE3_MEDIA_TYPE_NONE = 4, }; -struct pinmux_range { - u16 begin; - u16 end; - u16 force; +enum hnae3_module_type { + HNAE3_MODULE_TYPE_UNKNOWN = 0, + HNAE3_MODULE_TYPE_FIBRE_LR = 1, + HNAE3_MODULE_TYPE_FIBRE_SR = 2, + HNAE3_MODULE_TYPE_AOC = 3, + HNAE3_MODULE_TYPE_CR = 4, + HNAE3_MODULE_TYPE_KR = 5, + HNAE3_MODULE_TYPE_TP = 6, }; -struct sh_pfc_soc_operations; - -struct sh_pfc_pin; - -struct sh_pfc_pin_group; - -struct sh_pfc_function; - -struct pinmux_cfg_reg; - -struct pinmux_drive_reg; - -struct pinmux_bias_reg; - -struct pinmux_ioctrl_reg; - -struct pinmux_data_reg; - -struct sh_pfc_soc_info { - const char *name; - const struct sh_pfc_soc_operations *ops; - struct pinmux_range function; - const struct sh_pfc_pin *pins; - unsigned int nr_pins; - const struct sh_pfc_pin_group *groups; - unsigned int nr_groups; - const struct sh_pfc_function *functions; - unsigned int nr_functions; - const struct pinmux_cfg_reg *cfg_regs; - const struct pinmux_drive_reg *drive_regs; - const struct pinmux_bias_reg *bias_regs; - const struct pinmux_ioctrl_reg *ioctrl_regs; - const struct pinmux_data_reg *data_regs; - const u16 *pinmux_data; - unsigned int pinmux_data_size; - u32 unlock_reg; +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, }; -struct sh_pfc_soc_operations { - int (*init)(struct sh_pfc *); - unsigned int (*get_bias)(struct sh_pfc *, unsigned int); - void (*set_bias)(struct sh_pfc *, unsigned int, unsigned int); - int (*pin_to_pocctrl)(unsigned int, u32 *); - int (*pin_to_portcr)(unsigned int); +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, }; -struct sh_pfc_pin { - const char *name; - unsigned int configs; - u16 pin; - u16 enum_id; +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, }; -struct sh_pfc_pin_group { - const char *name; - const unsigned int *pins; - const unsigned int *mux; - unsigned int nr_pins; +enum { + SFF8024_ID_UNK = 0, + SFF8024_ID_SFF_8472 = 2, + SFF8024_ID_SFP = 3, + SFF8024_ID_DWDM_SFP = 11, + SFF8024_ID_QSFP_8438 = 12, + SFF8024_ID_QSFP_8436_8636 = 13, + SFF8024_ID_QSFP28_8636 = 17, + SFF8024_ENCODING_UNSPEC = 0, + SFF8024_ENCODING_8B10B = 1, + SFF8024_ENCODING_4B5B = 2, + SFF8024_ENCODING_NRZ = 3, + SFF8024_ENCODING_8472_MANCHESTER = 4, + SFF8024_ENCODING_8472_SONET = 5, + SFF8024_ENCODING_8472_64B66B = 6, + SFF8024_ENCODING_8436_MANCHESTER = 6, + SFF8024_ENCODING_8436_SONET = 4, + SFF8024_ENCODING_8436_64B66B = 5, + SFF8024_ENCODING_256B257B = 7, + SFF8024_ENCODING_PAM4 = 8, + SFF8024_CONNECTOR_UNSPEC = 0, + SFF8024_CONNECTOR_SC = 1, + SFF8024_CONNECTOR_FIBERJACK = 6, + SFF8024_CONNECTOR_LC = 7, + SFF8024_CONNECTOR_MT_RJ = 8, + SFF8024_CONNECTOR_MU = 9, + SFF8024_CONNECTOR_SG = 10, + SFF8024_CONNECTOR_OPTICAL_PIGTAIL = 11, + SFF8024_CONNECTOR_MPO_1X12 = 12, + SFF8024_CONNECTOR_MPO_2X16 = 13, + SFF8024_CONNECTOR_HSSDC_II = 32, + SFF8024_CONNECTOR_COPPER_PIGTAIL = 33, + SFF8024_CONNECTOR_RJ45 = 34, + SFF8024_CONNECTOR_NOSEPARATE = 35, + SFF8024_CONNECTOR_MXC_2X16 = 36, + SFF8024_ECC_UNSPEC = 0, + SFF8024_ECC_100G_25GAUI_C2M_AOC = 1, + SFF8024_ECC_100GBASE_SR4_25GBASE_SR = 2, + SFF8024_ECC_100GBASE_LR4_25GBASE_LR = 3, + SFF8024_ECC_100GBASE_ER4_25GBASE_ER = 4, + SFF8024_ECC_100GBASE_SR10 = 5, + SFF8024_ECC_100GBASE_CR4 = 11, + SFF8024_ECC_25GBASE_CR_S = 12, + SFF8024_ECC_25GBASE_CR_N = 13, + SFF8024_ECC_10GBASE_T_SFI = 22, + SFF8024_ECC_10GBASE_T_SR = 28, + SFF8024_ECC_5GBASE_T = 29, + SFF8024_ECC_2_5GBASE_T = 30, }; -struct sh_pfc_function { - const char *name; - const char * const *groups; - unsigned int nr_groups; +enum ethtool_fec_config_bits { + ETHTOOL_FEC_NONE_BIT = 0, + ETHTOOL_FEC_AUTO_BIT = 1, + ETHTOOL_FEC_OFF_BIT = 2, + ETHTOOL_FEC_RS_BIT = 3, + ETHTOOL_FEC_BASER_BIT = 4, + ETHTOOL_FEC_LLRS_BIT = 5, }; -struct pinmux_cfg_reg { - u32 reg; - u8 reg_width; - u8 field_width; - const u16 *enum_ids; - const s8 *var_field_width; +enum hnae3_fec_mode { + HNAE3_FEC_AUTO = 0, + HNAE3_FEC_BASER = 1, + HNAE3_FEC_RS = 2, + HNAE3_FEC_LLRS = 3, + HNAE3_FEC_NONE = 4, + HNAE3_FEC_USER_DEF = 5, }; -struct pinmux_drive_reg_field { - u16 pin; - u8 offset; - u8 size; +struct hns3_enet_coalesce { + u16 int_gl; + u16 int_ql; + u16 int_ql_max; + u8 adapt_enable: 1; + u8 ql_enable: 1; + u8 unit_1us: 1; + enum hns3_flow_level_range flow_level; }; -struct pinmux_drive_reg { - u32 reg; - const struct pinmux_drive_reg_field fields[10]; -}; +struct hnae3_handle; -struct pinmux_bias_reg { - u32 puen; - u32 pud; - const u16 pins[32]; -}; +struct hns3_enet_ring; -struct pinmux_ioctrl_reg { - u32 reg; -}; +struct hns3_enet_tqp_vector; -struct pinmux_data_reg { - u32 reg; - u8 reg_width; - const u16 *enum_ids; +struct hns3_nic_priv { + struct hnae3_handle *ae_handle; + struct net_device *netdev; + struct device *dev; + struct hns3_enet_ring *ring; + struct hns3_enet_tqp_vector *tqp_vector; + u16 vector_num; + u8 max_non_tso_bd_num; + u64 tx_timeout_count; + unsigned long state; + enum dim_cq_period_mode tx_cqe_mode; + enum dim_cq_period_mode rx_cqe_mode; + struct hns3_enet_coalesce tx_coal; + struct hns3_enet_coalesce rx_coal; + u32 tx_copybreak; + u32 rx_copybreak; }; -struct sh_pfc_window { - phys_addr_t phys; - void *virt; - unsigned long size; +struct hnae3_tc_info { + u8 prio_tc[8]; + u16 tqp_count[8]; + u16 tqp_offset[8]; + u8 max_tc; + u8 num_tc; + bool mqprio_active; + bool dcb_ets_active; }; -struct sh_pfc_pin_range { - u16 start; - u16 end; -}; +struct hnae3_queue; -struct sh_pfc_pin_config; +struct hnae3_dcb_ops; -struct sh_pfc_pinctrl { - struct pinctrl_dev *pctl; - struct pinctrl_desc pctl_desc; - struct sh_pfc *pfc; - struct pinctrl_pin_desc *pins; - struct sh_pfc_pin_config *configs; +struct hnae3_knic_private_info { + struct net_device *netdev; + u16 rss_size; + u16 req_rss_size; + u16 rx_buf_len; + u16 num_tx_desc; + u16 num_rx_desc; + u32 tx_spare_buf_size; + struct hnae3_tc_info tc_info; + u8 tc_map_mode; + u8 dscp_app_cnt; + u8 dscp_prio[64]; + u16 num_tqps; + struct hnae3_queue **tqp; + const struct hnae3_dcb_ops *dcb_ops; + u16 int_rl_setting; + void *io_base; }; -struct sh_pfc_pin_config { - u16 gpio_enabled: 1; - u16 mux_mark: 15; +struct hnae3_roce_private_info { + struct net_device *netdev; + void *roce_io_base; + void *roce_mem_base; + int base_vector; + int num_vectors; + unsigned long reset_state; + unsigned long instance_state; + unsigned long state; }; -struct uniphier_pinctrl_group; +struct hnae3_client; -struct uniphier_pinmux_function; +struct hnae3_ae_algo; -struct uniphier_pinctrl_socdata { - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const struct uniphier_pinctrl_group *groups; - int groups_count; - const struct uniphier_pinmux_function *functions; - int functions_count; - int (*get_gpio_muxval)(unsigned int, unsigned int); - unsigned int caps; +struct hnae3_handle { + struct hnae3_client *client; + struct pci_dev *pdev; + void *priv; + struct hnae3_ae_algo *ae_algo; + u64 flags; + union { + struct net_device *netdev; + struct hnae3_knic_private_info kinfo; + struct hnae3_roce_private_info rinfo; + }; + u32 numa_node_mask; + enum hnae3_port_base_vlan_state port_base_vlan_state; + u8 netdev_flags; + struct dentry *hnae3_dbgfs; + struct mutex dbgfs_lock; + char **dbgfs_buf; + u32 msg_enable; + unsigned long supported_pflags; + unsigned long priv_flags; }; -struct uniphier_pinctrl_group { - const char *name; - const unsigned int *pins; - unsigned int num_pins; - const int *muxvals; -}; +struct hnae3_client_ops; -struct uniphier_pinmux_function { - const char *name; - const char * const *groups; - unsigned int num_groups; +struct hnae3_client { + char name[16]; + unsigned long state; + enum hnae3_client_type type; + const struct hnae3_client_ops *ops; + struct list_head node; }; -struct tegra_gpio_port; - -struct tegra186_pin_range; - -struct tegra_gpio_soc { - const struct tegra_gpio_port *ports; - unsigned int num_ports; - const char *name; - unsigned int instance; - unsigned int num_irqs_per_bank; - const struct tegra186_pin_range *pin_ranges; - unsigned int num_pin_ranges; - const char *pinmux; - bool has_gte; - bool has_vm_support; +struct hnae3_client_ops { + int (*init_instance)(struct hnae3_handle *); + void (*uninit_instance)(struct hnae3_handle *, bool); + void (*link_status_change)(struct hnae3_handle *, bool); + int (*reset_notify)(struct hnae3_handle *, enum hnae3_reset_notify_type); + void (*process_hw_error)(struct hnae3_handle *, enum hnae3_hw_error_type); }; -struct tegra_gpio_port { - const char *name; - unsigned int bank; - unsigned int port; - unsigned int pins; -}; +struct hnae3_ae_ops; -struct tegra186_pin_range { - unsigned int offset; - const char *group; +struct hnae3_ae_algo { + const struct hnae3_ae_ops *ops; + struct list_head node; + const struct pci_device_id *pdev_id_table; }; -enum hte_edge { - HTE_EDGE_NO_SETUP = 1, - HTE_RISING_EDGE_TS = 2, - HTE_FALLING_EDGE_TS = 4, -}; +struct hnae3_ae_dev; -struct tegra_gpio { - struct gpio_chip gpio; - unsigned int num_irq; - unsigned int *irq; - const struct tegra_gpio_soc *soc; - unsigned int num_irqs_per_bank; - unsigned int num_banks; - void *secure; - void *base; -}; +struct hns3_mac_stats; -struct aer_capability_regs; +struct hnae3_vector_info; -struct aer_recover_entry { - u8 bus; - u8 devfn; - u16 domain; - int severity; - struct aer_capability_regs *regs; -}; +struct hnae3_ring_chain_node; -struct aer_header_log_regs { - unsigned int dw0; - unsigned int dw1; - unsigned int dw2; - unsigned int dw3; -}; +struct flow_keys; -struct aer_capability_regs { - u32 header; - u32 uncor_status; - u32 uncor_mask; - u32 uncor_severity; - u32 cor_status; - u32 cor_mask; - u32 cap_control; - struct aer_header_log_regs header_log; - u32 root_command; - u32 root_status; - u16 cor_err_source; - u16 uncor_err_source; -}; +struct flow_cls_offload; -struct pcie_device; +struct hnae3_ae_ops { + int (*init_ae_dev)(struct hnae3_ae_dev *); + void (*uninit_ae_dev)(struct hnae3_ae_dev *); + void (*reset_prepare)(struct hnae3_ae_dev *, enum hnae3_reset_type); + void (*reset_done)(struct hnae3_ae_dev *); + int (*init_client_instance)(struct hnae3_client *, struct hnae3_ae_dev *); + void (*uninit_client_instance)(struct hnae3_client *, struct hnae3_ae_dev *); + int (*start)(struct hnae3_handle *); + void (*stop)(struct hnae3_handle *); + int (*client_start)(struct hnae3_handle *); + void (*client_stop)(struct hnae3_handle *); + int (*get_status)(struct hnae3_handle *); + void (*get_ksettings_an_result)(struct hnae3_handle *, u8 *, u32 *, u8 *, u32 *); + int (*cfg_mac_speed_dup_h)(struct hnae3_handle *, int, u8, u8); + void (*get_media_type)(struct hnae3_handle *, u8 *, u8 *); + int (*check_port_speed)(struct hnae3_handle *, u32); + void (*get_fec_stats)(struct hnae3_handle *, struct ethtool_fec_stats *); + void (*get_fec)(struct hnae3_handle *, u8 *, u8 *); + int (*set_fec)(struct hnae3_handle *, u32); + void (*adjust_link)(struct hnae3_handle *, int, int); + int (*set_loopback)(struct hnae3_handle *, enum hnae3_loop, bool); + int (*set_promisc_mode)(struct hnae3_handle *, bool, bool); + void (*request_update_promisc_mode)(struct hnae3_handle *); + int (*set_mtu)(struct hnae3_handle *, int); + void (*get_pauseparam)(struct hnae3_handle *, u32 *, u32 *, u32 *); + int (*set_pauseparam)(struct hnae3_handle *, u32, u32, u32); + int (*set_autoneg)(struct hnae3_handle *, bool); + int (*get_autoneg)(struct hnae3_handle *); + int (*restart_autoneg)(struct hnae3_handle *); + int (*halt_autoneg)(struct hnae3_handle *, bool); + void (*get_coalesce_usecs)(struct hnae3_handle *, u32 *, u32 *); + void (*get_rx_max_coalesced_frames)(struct hnae3_handle *, u32 *, u32 *); + int (*set_coalesce_usecs)(struct hnae3_handle *, u32); + int (*set_coalesce_frames)(struct hnae3_handle *, u32); + void (*get_coalesce_range)(struct hnae3_handle *, u32 *, u32 *, u32 *, u32 *, u32 *, u32 *, u32 *, u32 *); + void (*get_mac_addr)(struct hnae3_handle *, u8 *); + int (*set_mac_addr)(struct hnae3_handle *, const void *, bool); + int (*do_ioctl)(struct hnae3_handle *, struct ifreq *, int); + int (*add_uc_addr)(struct hnae3_handle *, const unsigned char *); + int (*rm_uc_addr)(struct hnae3_handle *, const unsigned char *); + int (*set_mc_addr)(struct hnae3_handle *, void *); + int (*add_mc_addr)(struct hnae3_handle *, const unsigned char *); + int (*rm_mc_addr)(struct hnae3_handle *, const unsigned char *); + void (*set_tso_stats)(struct hnae3_handle *, int); + void (*update_stats)(struct hnae3_handle *); + void (*get_stats)(struct hnae3_handle *, u64 *); + void (*get_mac_stats)(struct hnae3_handle *, struct hns3_mac_stats *); + void (*get_strings)(struct hnae3_handle *, u32, u8 *); + int (*get_sset_count)(struct hnae3_handle *, int); + void (*get_regs)(struct hnae3_handle *, u32 *, void *); + int (*get_regs_len)(struct hnae3_handle *); + u32 (*get_rss_key_size)(struct hnae3_handle *); + int (*get_rss)(struct hnae3_handle *, u32 *, u8 *, u8 *); + int (*set_rss)(struct hnae3_handle *, const u32 *, const u8 *, const u8); + int (*set_rss_tuple)(struct hnae3_handle *, struct ethtool_rxnfc *); + int (*get_rss_tuple)(struct hnae3_handle *, struct ethtool_rxnfc *); + int (*get_tc_size)(struct hnae3_handle *); + int (*get_vector)(struct hnae3_handle *, u16, struct hnae3_vector_info *); + int (*put_vector)(struct hnae3_handle *, int); + int (*map_ring_to_vector)(struct hnae3_handle *, int, struct hnae3_ring_chain_node *); + int (*unmap_ring_from_vector)(struct hnae3_handle *, int, struct hnae3_ring_chain_node *); + int (*reset_queue)(struct hnae3_handle *); + u32 (*get_fw_version)(struct hnae3_handle *); + void (*get_mdix_mode)(struct hnae3_handle *, u8 *, u8 *); + int (*enable_vlan_filter)(struct hnae3_handle *, bool); + int (*set_vlan_filter)(struct hnae3_handle *, __be16, u16, bool); + int (*set_vf_vlan_filter)(struct hnae3_handle *, int, u16, u8, __be16); + int (*enable_hw_strip_rxvtag)(struct hnae3_handle *, bool); + void (*reset_event)(struct pci_dev *, struct hnae3_handle *); + enum hnae3_reset_type (*get_reset_level)(struct hnae3_ae_dev *, unsigned long *); + void (*set_default_reset_request)(struct hnae3_ae_dev *, enum hnae3_reset_type); + void (*get_channels)(struct hnae3_handle *, struct ethtool_channels *); + void (*get_tqps_and_rss_info)(struct hnae3_handle *, u16 *, u16 *); + int (*set_channels)(struct hnae3_handle *, u32, bool); + void (*get_flowctrl_adv)(struct hnae3_handle *, u32 *); + int (*set_led_id)(struct hnae3_handle *, enum ethtool_phys_id_state); + void (*get_link_mode)(struct hnae3_handle *, unsigned long *, unsigned long *); + int (*add_fd_entry)(struct hnae3_handle *, struct ethtool_rxnfc *); + int (*del_fd_entry)(struct hnae3_handle *, struct ethtool_rxnfc *); + int (*get_fd_rule_cnt)(struct hnae3_handle *, struct ethtool_rxnfc *); + int (*get_fd_rule_info)(struct hnae3_handle *, struct ethtool_rxnfc *); + int (*get_fd_all_rules)(struct hnae3_handle *, struct ethtool_rxnfc *, u32 *); + void (*enable_fd)(struct hnae3_handle *, bool); + int (*add_arfs_entry)(struct hnae3_handle *, u16, u16, struct flow_keys *); + int (*dbg_read_cmd)(struct hnae3_handle *, enum hnae3_dbg_cmd, char *, int); + pci_ers_result_t (*handle_hw_ras_error)(struct hnae3_ae_dev *); + bool (*get_hw_reset_stat)(struct hnae3_handle *); + bool (*ae_dev_resetting)(struct hnae3_handle *); + unsigned long (*ae_dev_reset_cnt)(struct hnae3_handle *); + int (*set_gro_en)(struct hnae3_handle *, bool); + u16 (*get_global_queue_id)(struct hnae3_handle *, u16); + void (*set_timer_task)(struct hnae3_handle *, bool); + int (*mac_connect_phy)(struct hnae3_handle *); + void (*mac_disconnect_phy)(struct hnae3_handle *); + int (*get_vf_config)(struct hnae3_handle *, int, struct ifla_vf_info *); + int (*set_vf_link_state)(struct hnae3_handle *, int, int); + int (*set_vf_spoofchk)(struct hnae3_handle *, int, bool); + int (*set_vf_trust)(struct hnae3_handle *, int, bool); + int (*set_vf_rate)(struct hnae3_handle *, int, int, int, bool); + int (*set_vf_mac)(struct hnae3_handle *, int, u8 *); + int (*get_module_eeprom)(struct hnae3_handle *, u32, u32, u8 *); + bool (*get_cmdq_stat)(struct hnae3_handle *); + int (*add_cls_flower)(struct hnae3_handle *, struct flow_cls_offload *, int); + int (*del_cls_flower)(struct hnae3_handle *, struct flow_cls_offload *); + bool (*cls_flower_active)(struct hnae3_handle *); + int (*get_phy_link_ksettings)(struct hnae3_handle *, struct ethtool_link_ksettings *); + int (*set_phy_link_ksettings)(struct hnae3_handle *, const struct ethtool_link_ksettings *); + bool (*set_tx_hwts_info)(struct hnae3_handle *, struct sk_buff *); + void (*get_rx_hwts)(struct hnae3_handle *, struct sk_buff *, u32, u32); + int (*get_ts_info)(struct hnae3_handle *, struct ethtool_ts_info *); + int (*get_link_diagnosis_info)(struct hnae3_handle *, u32 *); + void (*clean_vf_config)(struct hnae3_ae_dev *, int); + int (*get_dscp_prio)(struct hnae3_handle *, u8, u8 *, u8 *); + void (*get_wol)(struct hnae3_handle *, struct ethtool_wolinfo *); + int (*set_wol)(struct hnae3_handle *, struct ethtool_wolinfo *); +}; -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 hnae3_dev_specs { + u32 mac_entry_num; + u32 mng_entry_num; + u32 max_tm_rate; + u16 rss_ind_tbl_size; + u16 rss_key_size; + u16 int_ql_max; + u16 max_int_gl; + u8 max_non_tso_bd_num; + u16 max_frm_size; + u16 max_qset_num; + u16 umv_size; + u16 mc_mac_size; + u32 mac_stats_num; + u8 tnl_num; }; -struct pcie_device { - int irq; - struct pci_dev *port; - u32 service; - void *priv_data; - struct device device; +struct hnae3_ae_dev { + struct pci_dev *pdev; + const struct hnae3_ae_ops *ops; + struct list_head node; + u32 flag; + unsigned long hw_err_reset_req; + struct hnae3_dev_specs dev_specs; + u32 dev_version; + unsigned long caps[2]; + void *priv; }; -struct aer_stats { - u64 dev_cor_errs[16]; - u64 dev_fatal_errs[27]; - u64 dev_nonfatal_errs[27]; - u64 dev_total_cor_errs; - u64 dev_total_fatal_errs; - u64 dev_total_nonfatal_errs; - u64 rootport_total_cor_errs; - u64 rootport_total_fatal_errs; - u64 rootport_total_nonfatal_errs; +struct hns3_mac_stats { + u64 tx_pause_cnt; + u64 rx_pause_cnt; }; -enum { - CPER_SEV_RECOVERABLE = 0, - CPER_SEV_FATAL = 1, - CPER_SEV_CORRECTED = 2, - CPER_SEV_INFORMATIONAL = 3, +struct hnae3_vector_info { + u8 *io_addr; + int vector; }; -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, +struct hnae3_ring_chain_node { + struct hnae3_ring_chain_node *next; + u32 tqp_index; + u32 flag; + u32 int_gl_idx; }; -struct aer_err_source { - unsigned int status; - unsigned int id; +struct flow_dissector_key_control { + u16 thoff; + u16 addr_type; + u32 flags; }; -struct aer_err_info { - struct pci_dev *dev[5]; - int error_dev_num; - unsigned int id: 16; - unsigned int severity: 2; - unsigned int __pad1: 5; - unsigned int multi_error_valid: 1; - unsigned int first_error: 5; - unsigned int __pad2: 2; - unsigned int tlp_header_valid: 1; - unsigned int status; - unsigned int mask; - struct aer_header_log_regs tlp; +struct flow_dissector_key_basic { + __be16 n_proto; + u8 ip_proto; + u8 padding; }; -struct pci_cap_saved_data { - u16 cap_nr; - bool cap_extended; - unsigned int size; - u32 data[0]; +struct flow_dissector_key_tags { + u32 flow_label; }; -struct pci_cap_saved_state { - struct hlist_node next; - struct pci_cap_saved_data cap; +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 aer_rpc { - struct pci_dev *rpd; - struct { - union { - struct __kfifo kfifo; - struct aer_err_source *type; - const struct aer_err_source *const_type; - char (*rectype)[0]; - struct aer_err_source *ptr; - const struct aer_err_source *ptr_const; +struct flow_dissector_key_keyid { + __be32 keyid; +}; + +struct flow_dissector_key_ports { + union { + __be32 ports; + struct { + __be16 src; + __be16 dst; }; - struct aer_err_source buf[128]; - } aer_fifo; + }; }; -struct rockchip_pcie { - void *reg_base; - void *apb_base; - bool legacy_phy; - struct phy *phys[4]; - struct reset_control *core_rst; - struct reset_control *mgmt_rst; - struct reset_control *mgmt_sticky_rst; - struct reset_control *pipe_rst; - struct reset_control *pm_rst; - struct reset_control *aclk_rst; - struct reset_control *pclk_rst; - struct clk *aclk_pcie; - struct clk *aclk_perf_pcie; - struct clk *hclk_pcie; - struct clk *clk_pcie_pm; - struct regulator *vpcie12v; - struct regulator *vpcie3v3; - struct regulator *vpcie1v8; - struct regulator *vpcie0v9; - struct gpio_desc *ep_gpio; - u32 lanes; - u8 lanes_map; - int link_gen; - struct device *dev; - struct irq_domain *irq_domain; - int offset; - void *msg_region; - phys_addr_t msg_bus_addr; - bool is_rc; - struct resource *mem_res; +struct flow_dissector_key_icmp { + struct { + u8 type; + u8 code; + }; + u16 id; }; -struct fb_bitfield { - __u32 offset; - __u32 length; - __u32 msb_right; +struct flow_dissector_key_ipv4_addrs { + __be32 src; + __be32 dst; }; -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 flow_dissector_key_ipv6_addrs { + struct in6_addr src; + struct in6_addr dst; }; -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 flow_dissector_key_tipc { + __be32 key; }; -struct fb_chroma { - __u32 redx; - __u32 greenx; - __u32 bluex; - __u32 whitex; - __u32 redy; - __u32 greeny; - __u32 bluey; - __u32 whitey; +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 fb_videomode; +struct flow_keys { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; + struct flow_dissector_key_tags tags; + struct flow_dissector_key_vlan vlan; + struct flow_dissector_key_vlan cvlan; + struct flow_dissector_key_keyid keyid; + struct flow_dissector_key_ports ports; + struct flow_dissector_key_icmp icmp; + struct flow_dissector_key_addrs addrs; + long: 0; +}; -struct 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 flow_cls_common_offload { + u32 chain_index; + __be16 protocol; + u32 prio; + struct netlink_ext_ack *extack; }; -struct fb_info; +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 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 flow_rule; + +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 fb_cmap { - __u32 start; - __u32 len; - __u16 *red; - __u16 *green; - __u16 *blue; - __u16 *transp; +struct flow_dissector; + +struct flow_match { + struct flow_dissector *dissector; + void *mask; + void *key; }; -struct fb_deferred_io_pageref; +typedef void (*action_destr)(void *); -struct fb_deferred_io; +struct nf_flowtable; -struct fb_ops; +struct ip_tunnel_info; -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; - struct delayed_work deferred_work; - unsigned long npagerefs; - struct fb_deferred_io_pageref *pagerefs; - struct fb_deferred_io *fbdefio; - const struct fb_ops *fbops; - struct device *device; - struct device *dev; - int class_flag; +struct action_gate_entry; + +struct flow_action_cookie; + +struct flow_action_entry { + enum flow_action_id id; + u32 hw_index; + unsigned long cookie; + u64 miss_cookie; + enum flow_action_hw_stats hw_stats; + action_destr destructor; + void *destructor_priv; union { - char *screen_base; - char *screen_buffer; + 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; }; - unsigned long screen_size; - void *pseudo_palette; - u32 state; - void *fbcon_par; - void *par; - bool skip_vt_switch; + struct flow_action_cookie *user_cookie; }; -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 flow_action { + unsigned int num_entries; + struct flow_action_entry entries[0]; }; -struct fb_deferred_io_pageref { - struct page *page; - unsigned long offset; - struct list_head list; +struct flow_rule { + struct flow_match match; + struct flow_action action; }; -struct fb_deferred_io { - unsigned long delay; - bool sort_pagereflist; - int open_count; - struct mutex lock; - struct list_head pagereflist; - void (*deferred_io)(struct fb_info *, struct list_head *); +struct flow_dissector { + unsigned long long used_keys; + unsigned short offset[33]; }; -struct fb_fillrect; +struct flow_action_cookie { + u32 cookie_len; + u8 cookie[0]; +}; -struct fb_copyarea; +struct hnae3_queue { + void *io_base; + void *mem_base; + struct hnae3_ae_algo *ae_algo; + struct hnae3_handle *handle; + int tqp_index; + u32 buf_size; + u16 tx_desc_num; + u16 rx_desc_num; +}; -struct fb_image; +struct ieee_ets; -struct fb_cursor; +struct ieee_pfc; -struct fb_blit_caps; +struct dcb_app; -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 tc_mqprio_qopt_offload; -struct fb_fillrect { - __u32 dx; - __u32 dy; - __u32 width; - __u32 height; - __u32 color; - __u32 rop; +struct hnae3_dcb_ops { + int (*ieee_getets)(struct hnae3_handle *, struct ieee_ets *); + int (*ieee_setets)(struct hnae3_handle *, struct ieee_ets *); + int (*ieee_getpfc)(struct hnae3_handle *, struct ieee_pfc *); + int (*ieee_setpfc)(struct hnae3_handle *, struct ieee_pfc *); + int (*ieee_setapp)(struct hnae3_handle *, struct dcb_app *); + int (*ieee_delapp)(struct hnae3_handle *, struct dcb_app *); + u8 (*getdcbx)(struct hnae3_handle *); + u8 (*setdcbx)(struct hnae3_handle *, u8); + int (*setup_tc)(struct hnae3_handle *, struct tc_mqprio_qopt_offload *); }; -struct fb_copyarea { - __u32 dx; - __u32 dy; - __u32 width; - __u32 height; - __u32 sx; - __u32 sy; +struct ieee_ets { + __u8 willing; + __u8 ets_cap; + __u8 cbs; + __u8 tc_tx_bw[8]; + __u8 tc_rx_bw[8]; + __u8 tc_tsa[8]; + __u8 prio_tc[8]; + __u8 tc_reco_bw[8]; + __u8 tc_reco_tsa[8]; + __u8 reco_prio_tc[8]; }; -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 ieee_pfc { + __u8 pfc_cap; + __u8 pfc_en; + __u8 mbc; + __u16 delay; + __u64 requests[8]; + __u64 indications[8]; }; -struct fbcurpos { - __u16 x; - __u16 y; +struct dcb_app { + __u8 selector; + __u8 priority; + __u16 protocol; }; -struct fb_cursor { - __u16 set; - __u16 enable; - __u16 rop; - const char *mask; - struct fbcurpos hot; - struct fb_image image; +struct tc_mqprio_qopt { + __u8 num_tc; + __u8 prio_tc_map[16]; + __u8 hw; + __u16 count[16]; + __u16 offset[16]; }; -struct fb_blit_caps { - u32 x; - u32 y; - u32 len; +struct tc_mqprio_qopt_offload { + struct tc_mqprio_qopt qopt; + struct netlink_ext_ack *extack; + u16 mode; + u16 shaper; u32 flags; + u64 min_rate[16]; + u64 max_rate[16]; + unsigned long preemptible_tcs; }; -typedef enum { - ACPI_IMODE_LOAD_PASS1 = 1, - ACPI_IMODE_LOAD_PASS2 = 2, - ACPI_IMODE_EXECUTE = 3, -} acpi_interpreter_mode; - -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 ring_stats___2 { + u64 sw_err_cnt; + u64 seg_pkt_cnt; + union { + struct { + u64 tx_pkts; + u64 tx_bytes; + u64 tx_more; + u64 tx_push; + u64 tx_mem_doorbell; + u64 restart_queue; + u64 tx_busy; + u64 tx_copy; + u64 tx_vlan_err; + u64 tx_l4_proto_err; + u64 tx_l2l3l4_err; + u64 tx_tso_err; + u64 over_max_recursion; + u64 hw_limitation; + u64 tx_bounce; + u64 tx_spare_full; + u64 copy_bits_err; + u64 tx_sgl; + u64 skb2sgl_err; + u64 map_sg_err; + }; + struct { + u64 rx_pkts; + u64 rx_bytes; + u64 rx_err_cnt; + u64 reuse_pg_cnt; + u64 err_pkt_len; + u64 err_bd_num; + u64 l2_err; + u64 l3l4_csum_err; + u64 csum_complete; + u64 rx_multicast; + u64 non_reuse_pg; + u64 frag_alloc_err; + u64 frag_alloc; + }; + __le16 csum; + }; }; -typedef u32 acpi_mutex_handle; +struct hns3_desc; -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, -}; +struct hns3_desc_cb; -typedef u16 acpi_rs_length; +struct hns3_tx_spare; -struct acpi_resource_irq { - u8 descriptor_length; - u8 triggering; - u8 polarity; - u8 shareable; - u8 wake_capable; - u8 interrupt_count; +struct hns3_enet_ring { + struct hns3_desc *desc; + struct hns3_desc_cb *desc_cb; + struct hns3_enet_ring *next; + struct hns3_enet_tqp_vector *tqp_vector; + struct hnae3_queue *tqp; + int queue_index; + struct device *dev; + struct page_pool *page_pool; + struct ring_stats___2 stats; + struct u64_stats_sync syncp; + dma_addr_t desc_dma_addr; + u32 buf_size; + u16 desc_num; + int next_to_use; + int next_to_clean; + u32 flag; + int pending_buf; union { - u8 interrupt; struct { - struct {} __Empty_interrupts; - u8 interrupts[0]; + u32 fd_qb_tx_sample; + int last_to_use; + u32 tx_copybreak; + struct hns3_tx_spare *tx_spare; + }; + struct { + u32 pull_len; + u32 rx_copybreak; + u32 frag_num; + unsigned char *va; + struct sk_buff *skb; + struct sk_buff *tail_skb; }; }; + long: 64; }; -struct acpi_resource_dma { - u8 type; - u8 bus_master; - u8 transfer; - u8 channel_count; +struct hns3_desc { union { - u8 channel; + __le64 addr; + __le16 csum; struct { - struct {} __Empty_channels; - u8 channels[0]; + __le32 ts_nsec; + __le32 ts_sec; }; }; + union { + struct { + __le16 vlan_tag; + __le16 send_size; + union { + __le32 type_cs_vlan_tso_len; + struct { + __u8 type_cs_vlan_tso; + __u8 l2_len; + __u8 l3_len; + __u8 l4_len; + }; + }; + __le16 outer_vlan_tag; + __le16 tv; + union { + __le32 ol_type_vlan_len_msec; + struct { + __u8 ol_type_vlan_msec; + __u8 ol2_len; + __u8 ol3_len; + __u8 ol4_len; + }; + }; + __le32 paylen_ol4cs; + __le16 bdtp_fe_sc_vld_ra_ri; + __le16 mss_hw_csum; + } tx; + struct { + __le32 l234_info; + __le16 pkt_len; + __le16 size; + __le32 rss_hash; + __le16 fd_id; + __le16 vlan_tag; + union { + __le32 ol_info; + struct { + __le16 o_dm_vlan_id_fb; + __le16 ot_vlan_tag; + }; + }; + __le32 bd_base_info; + } rx; + }; }; -struct acpi_resource_start_dependent { - u8 descriptor_length; - u8 compatibility_priority; - u8 performance_robustness; +struct hns3_desc_cb { + dma_addr_t dma; + void *buf; + void *priv; + union { + u32 page_offset; + u32 send_bytes; + }; + u32 length; + u16 reuse_flag; + u16 refill; + u16 type; + u16 pagecnt_bias; }; -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 dim_stats { + int ppms; + int bpms; + int epms; + int cpms; + int cpe_ratio; +}; -struct acpi_resource_vendor { - u16 byte_length; - u8 byte_data[0]; +struct dim_sample { + ktime_t time; + u32 pkt_ctr; + u32 byte_ctr; + u16 event_ctr; + u32 comp_ctr; }; -struct acpi_resource_vendor_typed { - u16 byte_length; - u8 uuid_subtype; - u8 uuid[16]; - u8 byte_data[0]; -} __attribute__((packed)); - -struct acpi_resource_end_tag { - u8 checksum; +struct 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; }; -struct acpi_resource_memory24 { - u8 write_protect; - u16 minimum; - u16 maximum; - u16 alignment; - u16 address_length; -} __attribute__((packed)); +struct hns3_enet_ring_group { + struct hns3_enet_ring *ring; + u64 total_bytes; + u64 total_packets; + u16 count; + struct hns3_enet_coalesce coal; + struct dim dim; +}; -struct acpi_resource_memory32 { - u8 write_protect; - u32 minimum; - u32 maximum; - u32 alignment; - u32 address_length; -} __attribute__((packed)); +struct hns3_enet_tqp_vector { + struct hnae3_handle *handle; + u8 *mask_addr; + int vector_irq; + int irq_init_flag; + u16 idx; + struct napi_struct napi; + struct hns3_enet_ring_group rx_group; + struct hns3_enet_ring_group tx_group; + cpumask_t affinity_mask; + u16 num_tqps; + struct irq_affinity_notify affinity_notify; + char name[32]; + u64 event_cnt; + long: 64; + long: 64; +}; -struct acpi_resource_fixed_memory32 { - u8 write_protect; - u32 address; - u32 address_length; -} __attribute__((packed)); +struct hns3_tx_spare { + dma_addr_t dma; + void *buf; + u32 next_to_use; + u32 next_to_clean; + u32 last_to_clean; + u32 len; +}; -struct acpi_memory_attribute { - u8 write_protect; - u8 caching; - u8 range_type; - u8 translation; +struct hns3_ring_param { + u32 tx_desc_num; + u32 rx_desc_num; + u32 rx_buf_len; }; -struct acpi_io_attribute { - u8 range_type; - u8 translation; - u8 translation_type; - u8 reserved1; +struct hns3_sfp_type { + u8 type; + u8 ext_type; }; -union acpi_resource_attribute { - struct acpi_memory_attribute mem; - struct acpi_io_attribute io; - u8 type_specific; +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, + e1000_pch_nvp = 19, }; -struct acpi_address16_attribute { - u16 granularity; - u16 minimum; - u16 maximum; - u16 translation_offset; - u16 address_length; +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, }; -struct acpi_resource_source { - u8 index; - u16 string_length; - char *string_ptr; -} __attribute__((packed)); +enum e1000_1000t_rx_status { + e1000_1000t_rx_status_not_ok = 0, + e1000_1000t_rx_status_ok = 1, + e1000_1000t_rx_status_undefined = 255, +}; -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)); +enum e1000_ms_type { + e1000_ms_hw_default = 0, + e1000_ms_force_master = 1, + e1000_ms_force_slave = 2, + e1000_ms_auto = 3, +}; -struct acpi_address32_attribute { - u32 granularity; - u32 minimum; - u32 maximum; - u32 translation_offset; - u32 address_length; +enum e1000_rev_polarity { + e1000_rev_polarity_normal = 0, + e1000_rev_polarity_reversed = 1, + e1000_rev_polarity_undefined = 255, }; -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)); +enum e1000_smart_speed { + e1000_smart_speed_default = 0, + e1000_smart_speed_on = 1, + e1000_smart_speed_off = 2, +}; -struct acpi_address64_attribute { - u64 granularity; - u64 minimum; - u64 maximum; - u64 translation_offset; - u64 address_length; +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, }; -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 ptp_extts_request { + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; +}; -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 ptp_clock_time { + __s64 sec; + __u32 nsec; + __u32 reserved; +}; -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; +struct ptp_perout_request { union { - u32 interrupt; - struct { - struct {} __Empty_interrupts; - u32 interrupts[0]; - }; + struct ptp_clock_time start; + struct ptp_clock_time phase; }; -} __attribute__((packed)); + struct ptp_clock_time period; + unsigned int index; + unsigned int flags; + union { + struct ptp_clock_time on; + unsigned int rsv[4]; + }; +}; -struct acpi_resource_generic_register { - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 access_size; - u64 address; -} __attribute__((packed)); +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; + }; +}; -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)); +enum ptp_pin_function { + PTP_PF_NONE = 0, + PTP_PF_EXTTS = 1, + PTP_PF_PEROUT = 2, + PTP_PF_PHYSYNC = 3, +}; -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)); +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, +}; -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)); +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, +}; -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)); +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, +}; -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)); +enum e1000_nvm_override { + e1000_nvm_override_none = 0, + e1000_nvm_override_spi_small = 1, + e1000_nvm_override_spi_large = 2, +}; -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)); +enum e1000_bus_width { + e1000_bus_width_unknown = 0, + e1000_bus_width_pcie_x1 = 1, + e1000_bus_width_pcie_x2 = 2, + e1000_bus_width_pcie_x4 = 4, + e1000_bus_width_pcie_x8 = 8, + e1000_bus_width_32 = 9, + e1000_bus_width_64 = 10, + e1000_bus_width_reserved = 11, +}; -struct 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)); +enum e1000_ulp_state { + e1000_ulp_state_unknown = 0, + e1000_ulp_state_off = 1, + e1000_ulp_state_on = 2, +}; -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)); +enum ethtool_link_mode_bit_indices { + ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0, + ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1, + ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2, + ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3, + ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4, + ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5, + ETHTOOL_LINK_MODE_Autoneg_BIT = 6, + ETHTOOL_LINK_MODE_TP_BIT = 7, + ETHTOOL_LINK_MODE_AUI_BIT = 8, + ETHTOOL_LINK_MODE_MII_BIT = 9, + ETHTOOL_LINK_MODE_FIBRE_BIT = 10, + ETHTOOL_LINK_MODE_BNC_BIT = 11, + ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12, + ETHTOOL_LINK_MODE_Pause_BIT = 13, + ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14, + ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15, + ETHTOOL_LINK_MODE_Backplane_BIT = 16, + ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17, + ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18, + ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19, + ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20, + ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21, + ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22, + ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23, + ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24, + ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25, + ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26, + ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27, + ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28, + ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29, + ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30, + ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31, + ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32, + ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33, + ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34, + ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35, + ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36, + ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37, + ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38, + ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39, + ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40, + ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41, + ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42, + ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43, + ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44, + ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45, + ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46, + ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, + ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, + ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49, + ETHTOOL_LINK_MODE_FEC_RS_BIT = 50, + ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51, + ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52, + ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53, + ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54, + ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55, + ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56, + ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57, + ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58, + ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59, + ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60, + ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61, + ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62, + ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63, + ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64, + ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65, + ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, + ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, + ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, + ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69, + ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70, + ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, + ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, + ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, + ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74, + ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75, + ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76, + ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77, + ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78, + ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79, + ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80, + ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81, + ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82, + ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83, + ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84, + ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85, + ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86, + ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87, + ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88, + ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89, + ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, + ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, + ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92, + ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93, + ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94, + ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95, + ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96, + ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97, + ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98, + ETHTOOL_LINK_MODE_10baseT1S_Full_BIT = 99, + ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100, + ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101, + __ETHTOOL_LINK_MODE_MASK_NBITS = 102, +}; -struct acpi_resource_label { - u16 string_length; - char *string_ptr; -} __attribute__((packed)); +struct e1000_dev_spec_82571 { + bool laa_is_present; + u32 smb_counter; +}; -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 e1000_dev_spec_80003es2lan { + bool mdic_wa_enable; +}; -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 e1000_shadow_ram { + u16 value; + bool modified; +}; -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 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 acpi_resource_clock_input { - u8 revision_id; - u8 mode; - u8 scale; - u16 frequency_divisor; - u32 frequency_numerator; - struct acpi_resource_source resource_source; -} __attribute__((packed)); +struct e1000_hw; -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; +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 *); }; -union acpi_resource_data { - struct acpi_resource_irq irq; - struct acpi_resource_dma dma; - struct acpi_resource_start_dependent start_dpf; - struct acpi_resource_io io; - struct acpi_resource_fixed_io fixed_io; - struct acpi_resource_fixed_dma fixed_dma; - struct acpi_resource_vendor vendor; - struct acpi_resource_vendor_typed vendor_typed; - struct acpi_resource_end_tag end_tag; - struct acpi_resource_memory24 memory24; - struct acpi_resource_memory32 memory32; - struct acpi_resource_fixed_memory32 fixed_memory32; - struct acpi_resource_address16 address16; - struct acpi_resource_address32 address32; - struct acpi_resource_address64 address64; - struct acpi_resource_extended_address64 ext_address64; - struct acpi_resource_extended_irq extended_irq; - struct acpi_resource_generic_register generic_reg; - struct acpi_resource_gpio gpio; - struct acpi_resource_i2c_serialbus i2c_serial_bus; - struct acpi_resource_spi_serialbus spi_serial_bus; - struct acpi_resource_uart_serialbus uart_serial_bus; - struct acpi_resource_csi2_serialbus csi2_serial_bus; - struct acpi_resource_common_serialbus common_serial_bus; - struct acpi_resource_pin_function pin_function; - struct acpi_resource_pin_config pin_config; - struct acpi_resource_pin_group pin_group; - struct acpi_resource_pin_group_function pin_group_function; - struct acpi_resource_pin_group_config pin_group_config; - struct acpi_resource_clock_input clock_input; - struct acpi_resource_address address; +struct 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 acpi_resource { - u32 type; - u32 length; - union acpi_resource_data data; +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 aml_resource_small_header { - u8 descriptor_type; +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 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 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 aml_resource_dma { - u8 descriptor_type; - u8 dma_channel_mask; - u8 flags; +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 aml_resource_start_dependent { - u8 descriptor_type; - u8 flags; +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 aml_resource_end_dependent { - u8 descriptor_type; +struct e1000_bus_info { + enum e1000_bus_width width; + u16 func; }; -struct aml_resource_io { - u8 descriptor_type; - u8 flags; - u16 minimum; - u16 maximum; - u8 alignment; - u8 address_length; +struct e1000_host_mng_dhcp_cookie { + u32 signature; + u8 status; + u8 reserved0; + u16 vlan_id; + u32 reserved1; + u16 reserved2; + u8 reserved3; + u8 checksum; }; -struct aml_resource_fixed_io { - u8 descriptor_type; - u16 address; - u8 address_length; -} __attribute__((packed)); +struct e1000_adapter; -struct aml_resource_fixed_dma { - u8 descriptor_type; - u16 request_lines; - u16 channels; - u8 width; -} __attribute__((packed)); +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 aml_resource_vendor_small { - u8 descriptor_type; +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 aml_resource_end_tag { - u8 descriptor_type; - u8 checksum; +struct e1000_phy_stats { + u32 idle_errors; + u32 receive_errors; }; -struct aml_resource_memory24 { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u16 minimum; - u16 maximum; - u16 alignment; - u16 address_length; -} __attribute__((packed)); +struct e1000_phy_regs { + u16 bmcr; + u16 bmsr; + u16 advertise; + u16 lpa; + u16 expansion; + u16 ctrl1000; + u16 stat1000; + u16 estatus; +}; -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 e1000_buffer; -struct aml_resource_vendor_large { - u8 descriptor_type; - u16 resource_length; -} __attribute__((packed)); +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 aml_resource_memory32 { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u32 minimum; - u32 maximum; - u32 alignment; - u32 address_length; -} __attribute__((packed)); +struct hwtstamp_config { + int flags; + int tx_type; + int rx_filter; +}; -struct aml_resource_fixed_memory32 { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u32 address; - u32 address_length; -} __attribute__((packed)); +struct cyclecounter { + u64 (*read)(const struct cyclecounter *); + u64 mask; + u32 mult; + u32 shift; +}; -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 timecounter { + const struct cyclecounter *cc; + u64 cycle_last; + u64 nsec; + u64 mask; + u64 frac; +}; -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 ptp_pin_desc; -struct aml_resource_extended_irq { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u8 interrupt_count; - union { - u32 interrupt; - struct { - struct {} __Empty_interrupts; - u32 interrupts[0]; - }; - }; -} __attribute__((packed)); +struct system_device_crosststamp; -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 ptp_clock_info { + struct module *owner; + char name[32]; + s32 max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int n_pins; + int pps; + struct ptp_pin_desc *pin_config; + int (*adjfine)(struct ptp_clock_info *, long); + int (*adjphase)(struct ptp_clock_info *, s32); + s32 (*getmaxphase)(struct ptp_clock_info *); + int (*adjtime)(struct ptp_clock_info *, s64); + int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); + int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); + int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *); + int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); + int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); + long (*do_aux_work)(struct ptp_clock_info *); +}; -struct 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 pm_qos_request { + struct plist_node node; + struct pm_qos_constraints *qos; +}; -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 e1000_info; -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 msix_entry; -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 ptp_clock; -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 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: 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: 64; + 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: 64; + long: 64; + long: 64; + long: 64; +}; -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 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 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 e1000_ps_page; -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 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 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 e1000_ps_page { + struct page *page; + u64 dma; +}; -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 msix_entry { + u32 vector; + u16 entry; +}; -struct aml_resource_clock_input { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u16 frequency_divisor; - u32 frequency_numerator; -} __attribute__((packed)); +struct ptp_pin_desc { + char name[64]; + unsigned int index; + unsigned int func; + unsigned int chan; + unsigned int rsv[5]; +}; -struct aml_resource_address { - u8 descriptor_type; - u16 resource_length; - u8 resource_type; - u8 flags; - u8 specific_flags; -} __attribute__((packed)); +struct ptp_system_timestamp { + struct timespec64 pre_ts; + struct timespec64 post_ts; +}; -union aml_resource { - u8 descriptor_type; - struct aml_resource_small_header small_header; - struct aml_resource_large_header large_header; - struct aml_resource_irq irq; - struct aml_resource_dma dma; - struct aml_resource_start_dependent start_dpf; - struct aml_resource_end_dependent end_dpf; - struct aml_resource_io io; - struct aml_resource_fixed_io fixed_io; - struct aml_resource_fixed_dma fixed_dma; - struct aml_resource_vendor_small vendor_small; - struct aml_resource_end_tag end_tag; - struct aml_resource_memory24 memory24; - struct aml_resource_generic_register generic_reg; - struct aml_resource_vendor_large vendor_large; - struct aml_resource_memory32 memory32; - struct aml_resource_fixed_memory32 fixed_memory32; - struct aml_resource_address16 address16; - struct aml_resource_address32 address32; - struct aml_resource_address64 address64; - struct aml_resource_extended_address64 ext_address64; - struct aml_resource_extended_irq extended_irq; - struct aml_resource_gpio gpio; - struct aml_resource_i2c_serialbus i2c_serial_bus; - struct aml_resource_spi_serialbus spi_serial_bus; - struct aml_resource_uart_serialbus uart_serial_bus; - struct aml_resource_csi2_serialbus csi2_serial_bus; - struct aml_resource_common_serialbus common_serial_bus; - struct aml_resource_pin_function pin_function; - struct aml_resource_pin_config pin_config; - struct aml_resource_pin_group pin_group; - struct aml_resource_pin_group_function pin_group_function; - struct aml_resource_pin_group_config pin_group_config; - struct aml_resource_clock_input clock_input; - struct aml_resource_address address; - u32 dword_item; - u16 word_item; - u8 byte_item; +struct system_device_crosststamp { + ktime_t device; + ktime_t sys_realtime; + ktime_t sys_monoraw; }; -typedef u32 acpi_rsdesc_size; +struct mdiobb_ctrl; -struct owl_mux_hw { - u32 reg; - u8 shift; - u8 width; +struct mdiobb_ops { + struct module *owner; + void (*set_mdc)(struct mdiobb_ctrl *, int); + void (*set_mdio_dir)(struct mdiobb_ctrl *, int); + void (*set_mdio_data)(struct mdiobb_ctrl *, int); + int (*get_mdio_data)(struct mdiobb_ctrl *); }; -struct owl_divider_hw { - u32 reg; - u8 shift; - u8 width; - u8 div_flags; - struct clk_div_table *table; +struct mdiobb_ctrl { + const struct mdiobb_ops *ops; + unsigned int override_op_c22; + u8 op_c22_read; + u8 op_c22_write; }; -struct clk_factor_table; +struct ravb_hw_info { + void (*rx_ring_free)(struct net_device *, int); + void (*rx_ring_format)(struct net_device *, int); + void * (*alloc_rx_desc)(struct net_device *, int); + bool (*receive)(struct net_device *, int *, int); + void (*set_rate)(struct net_device *); + int (*set_feature)(struct net_device *, netdev_features_t); + int (*dmac_init)(struct net_device *); + void (*emac_init)(struct net_device *); + const char (*gstrings_stats)[32]; + size_t gstrings_size; + netdev_features_t net_hw_features; + netdev_features_t net_features; + int stats_len; + size_t max_rx_len; + u32 tccr_mask; + u32 rx_max_buf_size; + unsigned int aligned_tx: 1; + unsigned int internal_delay: 1; + unsigned int tx_counters: 1; + unsigned int carrier_counters: 1; + unsigned int multi_irqs: 1; + unsigned int irq_en_dis: 1; + unsigned int err_mgmt_irqs: 1; + unsigned int gptp: 1; + unsigned int ccc_gac: 1; + unsigned int gptp_ref_clk: 1; + unsigned int nc_queues: 1; + unsigned int magic_pkt: 1; + unsigned int half_duplex: 1; +}; -struct owl_factor_hw { - u32 reg; - u8 shift; - u8 width; - u8 fct_flags; - struct clk_factor_table *table; +enum ravb_reg { + CCC = 0, + DBAT = 4, + DLR = 8, + CSR = 12, + CDAR0 = 16, + CDAR1 = 20, + CDAR2 = 24, + CDAR3 = 28, + CDAR4 = 32, + CDAR5 = 36, + CDAR6 = 40, + CDAR7 = 44, + CDAR8 = 48, + CDAR9 = 52, + CDAR10 = 56, + CDAR11 = 60, + CDAR12 = 64, + CDAR13 = 68, + CDAR14 = 72, + CDAR15 = 76, + CDAR16 = 80, + CDAR17 = 84, + CDAR18 = 88, + CDAR19 = 92, + CDAR20 = 96, + CDAR21 = 100, + ESR = 136, + APSR = 140, + RCR = 144, + RQC0 = 148, + RQC1 = 152, + RQC2 = 156, + RQC3 = 160, + RQC4 = 164, + RPC = 176, + RTC = 180, + UFCW = 188, + UFCS = 192, + UFCV0 = 196, + UFCV1 = 200, + UFCV2 = 204, + UFCV3 = 208, + UFCV4 = 212, + UFCD0 = 224, + UFCD1 = 228, + UFCD2 = 232, + UFCD3 = 236, + UFCD4 = 240, + SFO = 252, + SFP0 = 256, + SFP1 = 260, + SFP2 = 264, + SFP3 = 268, + SFP4 = 272, + SFP5 = 276, + SFP6 = 280, + SFP7 = 284, + SFP8 = 288, + SFP9 = 292, + SFP10 = 296, + SFP11 = 300, + SFP12 = 304, + SFP13 = 308, + SFP14 = 312, + SFP15 = 316, + SFP16 = 320, + SFP17 = 324, + SFP18 = 328, + SFP19 = 332, + SFP20 = 336, + SFP21 = 340, + SFP22 = 344, + SFP23 = 348, + SFP24 = 352, + SFP25 = 356, + SFP26 = 360, + SFP27 = 364, + SFP28 = 368, + SFP29 = 372, + SFP30 = 376, + SFP31 = 380, + SFM0 = 448, + SFM1 = 452, + TGC = 768, + TCCR = 772, + TSR = 776, + TFA0 = 784, + TFA1 = 788, + TFA2 = 792, + CIVR0 = 800, + CIVR1 = 804, + CDVR0 = 808, + CDVR1 = 812, + CUL0 = 816, + CUL1 = 820, + CLL0 = 824, + CLL1 = 828, + DIC = 848, + DIS = 852, + EIC = 856, + EIS = 860, + RIC0 = 864, + RIS0 = 868, + RIC1 = 872, + RIS1 = 876, + RIC2 = 880, + RIS2 = 884, + TIC = 888, + TIS = 892, + ISS = 896, + CIE = 900, + GCCR = 912, + GMTT = 916, + GPTC = 920, + GTI = 924, + GTO0 = 928, + GTO1 = 932, + GTO2 = 936, + GIC = 940, + GIS = 944, + GCPT = 948, + GCT0 = 952, + GCT1 = 956, + GCT2 = 960, + GIE = 972, + GID = 976, + DIL = 1088, + RIE0 = 1120, + RID0 = 1124, + RIE2 = 1136, + RID2 = 1140, + TIE = 1144, + TID = 1148, + ECMR = 1280, + RFLR = 1288, + ECSR = 1296, + ECSIPR = 1304, + PIR = 1312, + PSR = 1320, + PIPR = 1324, + CXR31 = 1328, + CXR35 = 1344, + MPR = 1368, + PFTCR = 1372, + PFRCR = 1376, + GECMR = 1456, + MAHR = 1472, + MALR = 1480, + TROCR = 1792, + CXR41 = 1800, + CXR42 = 1808, + CEFCR = 1856, + FRECR = 1864, + TSFRCR = 1872, + TLFRCR = 1880, + RFCR = 1888, + MAFCR = 1912, + CSR0 = 2048, }; -union owl_rate { - struct owl_divider_hw div_hw; - struct owl_factor_hw factor_hw; - struct clk_fixed_factor fix_fact_hw; +enum RAVB_QUEUE { + RAVB_BE = 0, + RAVB_NC = 1, }; -struct owl_composite { - struct owl_mux_hw mux_hw; - struct owl_gate_hw gate_hw; - union owl_rate rate; - const struct clk_ops *fix_fact_ops; - struct owl_clk_common common; +enum GCCR_BIT { + GCCR_TCR = 3, + GCCR_TCR_NOREQ = 0, + GCCR_TCR_RESET = 1, + GCCR_TCR_CAPTURE = 3, + GCCR_LTO = 4, + GCCR_LTI = 8, + GCCR_LPTC = 16, + GCCR_LMTT = 32, + GCCR_TCSS = 768, + GCCR_TCSS_GPTP = 0, + GCCR_TCSS_ADJGPTP = 256, + GCCR_TCSS_AVTP = 512, }; -struct clk_factor_table { - unsigned int val; - unsigned int mul; - unsigned int div; +enum DIE_DT { + DT_FMID = 64, + DT_FSTART = 80, + DT_FEND = 96, + DT_FSINGLE = 112, + DT_LINK = 128, + DT_LINKFIX = 144, + DT_EOS = 160, + DT_FEMPTY = 192, + DT_FEMPTY_IS = 208, + DT_FEMPTY_IC = 224, + DT_FEMPTY_ND = 240, + DT_LEMPTY = 32, + DT_EEMPTY = 48, }; -struct clk_gate2 { - struct clk_hw hw; - void *reg; - u8 bit_idx; - u8 cgr_val; - u8 cgr_mask; - u8 flags; - spinlock_t *lock; - unsigned int *share_count; +enum CSR_BIT { + CSR_OPS = 15, + CSR_OPS_RESET = 1, + CSR_OPS_CONFIG = 2, + CSR_OPS_OPERATION = 4, + CSR_OPS_STANDBY = 8, + CSR_DTS = 256, + CSR_TPO0 = 65536, + CSR_TPO1 = 131072, + CSR_TPO2 = 262144, + CSR_TPO3 = 524288, + CSR_RPO = 1048576, }; -struct mtk_pll_div_table; +enum CCC_BIT { + CCC_OPC = 3, + CCC_OPC_RESET = 0, + CCC_OPC_CONFIG = 1, + CCC_OPC_OPERATION = 2, + CCC_GAC = 128, + CCC_DTSR = 256, + CCC_CSEL = 196608, + CCC_CSEL_HPB = 65536, + CCC_CSEL_ETH_TX = 131072, + CCC_CSEL_GMII_REF = 196608, + CCC_LBME = 16777216, +}; -struct mtk_pll_data { - int id; - const char *name; - u32 reg; - u32 pwr_reg; - u32 en_mask; - u32 pd_reg; - u32 tuner_reg; - u32 tuner_en_reg; - u8 tuner_en_bit; - int pd_shift; - unsigned int flags; - const struct clk_ops *ops; - u32 rst_bar_mask; - unsigned long fmin; - unsigned long fmax; - int pcwbits; - int pcwibits; - u32 pcw_reg; - int pcw_shift; - u32 pcw_chg_reg; - const struct mtk_pll_div_table *div_table; - const char *parent_name; - u32 en_reg; - u8 pll_en_bit; +enum ECMR_BIT { + ECMR_PRM = 1, + ECMR_DM = 2, + ECMR_TE = 32, + ECMR_RE = 64, + ECMR_MPDE = 512, + ECMR_TXF = 65536, + ECMR_RXF = 131072, + ECMR_PFR = 262144, + ECMR_ZPF = 524288, + ECMR_RZPF = 1048576, + ECMR_DPAD = 2097152, + ECMR_RCSC = 8388608, + ECMR_RCPT = 33554432, + ECMR_TRCCM = 67108864, }; -struct mtk_pll_div_table { - u32 div; - unsigned long freq; +enum TX_DS_TAGL_BIT { + TX_DS = 4095, + TX_TAGL = 61440, }; -struct qcom_reset_controller { - const struct qcom_reset_map *reset_map; - struct regmap *regmap; - struct reset_controller_dev rcdev; +enum netdev_queue_state_t { + __QUEUE_STATE_DRV_XOFF = 0, + __QUEUE_STATE_STACK_XOFF = 1, + __QUEUE_STATE_FROZEN = 2, }; -struct qcom_cc { - struct qcom_reset_controller reset; - struct clk_regmap___2 **rclks; - size_t num_rclks; +enum ISS_BIT { + ISS_FRS = 1, + ISS_FTS = 4, + ISS_ES = 64, + ISS_MS = 128, + ISS_TFUS = 256, + ISS_TFWS = 512, + ISS_RFWS = 4096, + ISS_CGIS = 8192, + ISS_DPS1 = 131072, + ISS_DPS2 = 262144, + ISS_DPS3 = 524288, + ISS_DPS4 = 1048576, + ISS_DPS5 = 2097152, + ISS_DPS6 = 4194304, + ISS_DPS7 = 8388608, + ISS_DPS8 = 16777216, + ISS_DPS9 = 33554432, + ISS_DPS10 = 67108864, + ISS_DPS11 = 134217728, + ISS_DPS12 = 268435456, + ISS_DPS13 = 536870912, + ISS_DPS14 = 1073741824, + ISS_DPS15 = 2147483648, }; -struct gdsc_desc { - struct device *dev; - struct gdsc **scs; - size_t num; +enum TIS_BIT { + TIS_FTF0 = 1, + TIS_FTF1 = 2, + TIS_TFUF = 256, + TIS_TFWF = 512, + TIS_RESERVED = 4293980400, }; -struct clk_fixed_rate { - struct clk_hw hw; - unsigned long fixed_rate; - unsigned long fixed_accuracy; - unsigned long flags; +enum TSR_BIT { + TSR_CCS0 = 3, + TSR_CCS1 = 12, + TSR_TFFL = 1792, }; -struct clk_alpha_pll_postdiv { - u32 offset; - u8 width; - const u8 *regs; - struct clk_regmap___2 clkr; - int post_div_shift; - const struct clk_div_table *post_div_table; - size_t num_post_div; +enum TFA2_BIT { + TFA2_TSV = 65535, + TFA2_TST = 67043328, }; -struct clk_regmap_phy_mux { - u32 reg; - struct clk_regmap___2 clkr; +enum TCCR_BIT { + TCCR_TSRQ0 = 1, + TCCR_TSRQ1 = 2, + TCCR_TSRQ2 = 4, + TCCR_TSRQ3 = 8, + TCCR_TFEN = 256, + TCCR_TFR = 512, }; -struct clk_regmap_mux { - u32 reg; - u32 shift; - u32 width; - const struct parent_map *parent_map; - struct clk_regmap___2 clkr; +enum ECSR_BIT { + ECSR_ICD = 1, + ECSR_MPD = 2, + ECSR_LCHNG = 4, + ECSR_PHYI = 8, + ECSR_PFRI = 16, }; -struct clk_regmap_div { - u32 reg; - u32 shift; - u32 width; - struct clk_regmap___2 clkr; +enum PSR_BIT { + PSR_LMON = 1, }; -struct clk_rcg_dfs_data { - struct clk_rcg2 *rcg; - struct clk_init_data *init; +enum EIS_BIT { + EIS_MREF = 1, + EIS_MTEF = 2, + EIS_QEF = 4, + EIS_SEF = 8, + EIS_CLLF0 = 16, + EIS_CLLF1 = 32, + EIS_CULF0 = 64, + EIS_CULF1 = 128, + EIS_TFFF = 256, + EIS_QFS = 65536, + EIS_RESERVED = 4294899712, }; -struct rockchip_muxgrf_clock { - struct clk_hw hw; - struct regmap *regmap; - u32 reg; - u32 shift; - u32 width; - int flags; +enum RIS2_BIT { + RIS2_QFF0 = 1, + RIS2_QFF1 = 2, + RIS2_QFF2 = 4, + RIS2_QFF3 = 8, + RIS2_QFF4 = 16, + RIS2_QFF5 = 32, + RIS2_QFF6 = 64, + RIS2_QFF7 = 128, + RIS2_QFF8 = 256, + RIS2_QFF9 = 512, + RIS2_QFF10 = 1024, + RIS2_QFF11 = 2048, + RIS2_QFF12 = 4096, + RIS2_QFF13 = 8192, + RIS2_QFF14 = 16384, + RIS2_QFF15 = 32768, + RIS2_QFF16 = 65536, + RIS2_QFF17 = 131072, + RIS2_RFFF = 2147483648, + RIS2_RESERVED = 2147221504, }; -enum rockchip_pll_type { - pll_rk3036 = 0, - pll_rk3066 = 1, - pll_rk3328 = 2, - pll_rk3399 = 3, - pll_rk3588 = 4, - pll_rk3588_core = 5, +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, }; -struct rockchip_pll_rate_table; +enum TX_TAGH_TSR_BIT { + TX_TAGH = 63, + TX_TSR = 64, +}; -struct rockchip_pll_clock { - unsigned int id; - const char *name; - const char * const *parent_names; - u8 num_parents; - unsigned long flags; - int con_offset; - int mode_offset; - int mode_shift; - int lock_shift; - enum rockchip_pll_type type; - u8 pll_flags; - struct rockchip_pll_rate_table *rate_table; +enum GTI_BIT { + GTI_TIV = 268435455, }; -struct rockchip_pll_rate_table { - unsigned long rate; - union { - struct { - unsigned int nr; - unsigned int nf; - unsigned int no; - unsigned int nb; - }; - struct { - unsigned int fbdiv; - unsigned int postdiv1; - unsigned int refdiv; - unsigned int postdiv2; - unsigned int dsmpd; - unsigned int frac; - }; - struct { - unsigned int m; - unsigned int p; - unsigned int s; - unsigned int k; - }; - }; +enum APSR_BIT { + APSR_MEMS = 2, + APSR_CMSW = 16, + APSR_RDM = 8192, + APSR_TDM = 16384, }; -enum rockchip_clk_branch_type { - branch_composite = 0, - branch_mux = 1, - branch_muxgrf = 2, - branch_divider = 3, - branch_fraction_divider = 4, - branch_gate = 5, - branch_mmc = 6, - branch_inverter = 7, - branch_factor = 8, - branch_ddrclk = 9, - branch_half_divider = 10, +enum PIR_BIT { + PIR_MDC = 1, + PIR_MMD = 2, + PIR_MDO = 4, + PIR_MDI = 8, }; -struct rockchip_clk_branch { - unsigned int id; - enum rockchip_clk_branch_type branch_type; - const char *name; - const char * const *parent_names; - u8 num_parents; - unsigned long flags; - int muxdiv_offset; - u8 mux_shift; - u8 mux_width; - u8 mux_flags; - u32 *mux_table; - int div_offset; - u8 div_shift; - u8 div_width; - u8 div_flags; - struct clk_div_table *div_table; - int gate_offset; - u8 gate_shift; - u8 gate_flags; - struct rockchip_clk_branch *child; -}; - -struct rockchip_cpuclk_reg_data { - int core_reg[4]; - u8 div_core_shift[4]; - u32 div_core_mask[4]; - int num_cores; - int mux_core_reg; - u8 mux_core_alt; - u8 mux_core_main; - u8 mux_core_shift; - u32 mux_core_mask; +enum RIS0_BIT { + RIS0_FRF0 = 1, + RIS0_FRF1 = 2, + RIS0_FRF2 = 4, + RIS0_FRF3 = 8, + RIS0_FRF4 = 16, + RIS0_FRF5 = 32, + RIS0_FRF6 = 64, + RIS0_FRF7 = 128, + RIS0_FRF8 = 256, + RIS0_FRF9 = 512, + RIS0_FRF10 = 1024, + RIS0_FRF11 = 2048, + RIS0_FRF12 = 4096, + RIS0_FRF13 = 8192, + RIS0_FRF14 = 16384, + RIS0_FRF15 = 32768, + RIS0_FRF16 = 65536, + RIS0_FRF17 = 131072, + RIS0_RESERVED = 4294705152, }; -struct rockchip_cpuclk_clksel { - int reg; - u32 val; +enum RX_DS_CC_BIT { + RX_DS = 4095, + RX_TR = 4096, + RX_EI = 8192, + RX_PS = 49152, }; -struct rockchip_cpuclk_rate_table { - unsigned long prate; - struct rockchip_cpuclk_clksel divs[6]; - struct rockchip_cpuclk_clksel pre_muxs[6]; - struct rockchip_cpuclk_clksel post_muxs[6]; +enum MSC_BIT { + MSC_CRC = 1, + MSC_RFE = 2, + MSC_RTSF = 4, + MSC_RTLF = 8, + MSC_FRE = 16, + MSC_CRL = 32, + MSC_CEEF = 64, + MSC_MC = 128, }; -struct clk_onecell_data { - struct clk **clks; - unsigned int clk_num; +enum gro_result { + GRO_MERGED = 0, + GRO_MERGED_FREE = 1, + GRO_HELD = 2, + GRO_NORMAL = 3, + GRO_CONSUMED = 4, }; -struct rockchip_clk_provider { - void *reg_base; - struct clk_onecell_data clk_data; - struct device_node *cru_node; - struct regmap *grf; - spinlock_t lock; +enum GECMR_BIT { + GECMR_SPEED = 1, + GECMR_SPEED_100 = 0, + GECMR_SPEED_1000 = 1, + GBETH_GECMR_SPEED = 48, + GBETH_GECMR_SPEED_10 = 0, + GBETH_GECMR_SPEED_100 = 16, + GBETH_GECMR_SPEED_1000 = 32, }; -struct ccu_reset_map; - -struct ccu_reset { - void *base; - struct ccu_reset_map *reset_map; - spinlock_t *lock; - struct reset_controller_dev rcdev; +enum RCR_BIT { + RCR_EFFS = 1, + RCR_ENCF = 2, + RCR_ESF = 12, + RCR_ETS0 = 16, + RCR_ETS2 = 32, + RCR_RFCL = 536805376, }; -struct ccu_reset_map { - u16 reg; - u32 bit; +enum TGC_BIT { + TGC_TSM0 = 1, + TGC_TSM1 = 2, + TGC_TSM2 = 4, + TGC_TSM3 = 8, + TGC_TQP = 48, + TGC_TQP_NONAVB = 0, + TGC_TQP_AVBMODE1 = 16, + TGC_TQP_AVBMODE2 = 48, + TGC_TBD0 = 768, + TGC_TBD1 = 12288, + TGC_TBD2 = 196608, + TGC_TBD3 = 3145728, }; -struct ccu_mux_fixed_prediv; - -struct ccu_mux_var_prediv; - -struct ccu_mux_internal { - u8 shift; - u8 width; - const u8 *table; - const struct ccu_mux_fixed_prediv *fixed_predivs; - u8 n_predivs; - const struct ccu_mux_var_prediv *var_predivs; - u8 n_var_predivs; +enum CIE_BIT { + CIE_CRIE = 1, + CIE_CTIE = 256, + CIE_RQFM = 65536, + CIE_CL0M = 131072, + CIE_RFWL = 262144, + CIE_RFFL = 524288, }; -struct ccu_common { - void *base; - u16 reg; - u16 lock_reg; - u32 prediv; - unsigned long features; - spinlock_t *lock; - struct clk_hw hw; +enum RIC0_BIT { + RIC0_FRE0 = 1, + RIC0_FRE1 = 2, + RIC0_FRE2 = 4, + RIC0_FRE3 = 8, + RIC0_FRE4 = 16, + RIC0_FRE5 = 32, + RIC0_FRE6 = 64, + RIC0_FRE7 = 128, + RIC0_FRE8 = 256, + RIC0_FRE9 = 512, + RIC0_FRE10 = 1024, + RIC0_FRE11 = 2048, + RIC0_FRE12 = 4096, + RIC0_FRE13 = 8192, + RIC0_FRE14 = 16384, + RIC0_FRE15 = 32768, + RIC0_FRE16 = 65536, + RIC0_FRE17 = 131072, }; -struct ccu_mux { - u32 enable; - struct ccu_mux_internal mux; - struct ccu_common common; +enum RIC2_BIT { + RIC2_QFE0 = 1, + RIC2_QFE1 = 2, + RIC2_QFE2 = 4, + RIC2_QFE3 = 8, + RIC2_QFE4 = 16, + RIC2_QFE5 = 32, + RIC2_QFE6 = 64, + RIC2_QFE7 = 128, + RIC2_QFE8 = 256, + RIC2_QFE9 = 512, + RIC2_QFE10 = 1024, + RIC2_QFE11 = 2048, + RIC2_QFE12 = 4096, + RIC2_QFE13 = 8192, + RIC2_QFE14 = 16384, + RIC2_QFE15 = 32768, + RIC2_QFE16 = 65536, + RIC2_QFE17 = 131072, + RIC2_RFFE = 2147483648, }; -struct ccu_mux_fixed_prediv { - u8 index; - u16 div; +enum TIC_BIT { + TIC_FTE0 = 1, + TIC_FTE1 = 2, + TIC_TFUE = 256, + TIC_TFWE = 512, }; -struct ccu_mux_var_prediv { - u8 index; - u8 shift; - u8 width; +enum ECSIPR_BIT { + ECSIPR_ICDIP = 1, + ECSIPR_MPDIP = 2, + ECSIPR_LCHNGIP = 4, }; -struct ccu_mux_nb { - struct notifier_block clk_nb; - struct ccu_common *common; - struct ccu_mux_internal *cm; - u32 delay_us; - u8 bypass_index; - u8 original_index; +enum CXR35_BIT { + CXR35_SEL_XMII = 3, + CXR35_SEL_XMII_RGMII = 0, + CXR35_SEL_XMII_MII = 2, + CXR35_HALFCYC_CLKSW = 4294901760, }; -struct sunxi_ccu_desc { - struct ccu_common **ccu_clks; - unsigned long num_ccu_clks; - struct clk_hw_onecell_data *hw_clks; - struct ccu_reset_map *resets; - unsigned long num_resets; +enum CXR31_BIT { + CXR31_SEL_LINK0 = 1, + CXR31_SEL_LINK1 = 8, }; -struct ccu_div_internal { - u8 shift; - u8 width; - u32 max; - u32 offset; - u32 flags; - struct clk_div_table *table; +enum CSR0_BIT { + CSR0_TPE = 16, + CSR0_RPE = 32, }; -struct ccu_div { - u32 enable; - struct ccu_div_internal div; - struct ccu_mux_internal mux; - struct ccu_common common; - unsigned int fixed_post_div; +struct ravb_ptp_perout { + u32 target; + u32 period; }; -struct ccu_gate { - u32 enable; - struct ccu_common common; +struct ravb_ptp { + struct ptp_clock *clock; + struct ptp_clock_info info; + u32 default_addend; + u32 current_addend; + int extts[1]; + struct ravb_ptp_perout perout[1]; }; -struct ccu_mp { - u32 enable; - struct ccu_div_internal m; - struct ccu_div_internal p; - struct ccu_mux_internal mux; - unsigned int fixed_post_div; - struct ccu_common common; -}; +struct ravb_desc; -struct visconti_pll_rate_table; +struct ravb_rx_desc; -struct visconti_pll_info { - unsigned int id; - const char *name; - const char *parent; - unsigned long base_reg; - const struct visconti_pll_rate_table *rate_table; -}; +struct ravb_ex_rx_desc; -struct visconti_pll_rate_table { - unsigned long rate; - unsigned int dacen; - unsigned int dsmen; - unsigned int refdiv; - unsigned long intin; - unsigned long fracin; - unsigned int postdiv1; - unsigned int postdiv2; -}; +struct ravb_tx_desc; -struct visconti_pll_provider { - void *reg_base; - struct clk_hw_onecell_data clk_data; - struct device_node *node; +struct ravb_private { + struct net_device *ndev; + struct platform_device *pdev; + void *addr; + struct clk *clk; + struct clk *refclk; + struct clk *gptp_clk; + struct mdiobb_ctrl mdiobb; + u32 num_rx_ring[2]; + u32 num_tx_ring[2]; + u32 desc_bat_size; + dma_addr_t desc_bat_dma; + struct ravb_desc *desc_bat; + dma_addr_t rx_desc_dma[2]; + dma_addr_t tx_desc_dma[2]; + struct ravb_rx_desc *gbeth_rx_ring; + struct ravb_ex_rx_desc *rx_ring[2]; + struct ravb_tx_desc *tx_ring[2]; + void *tx_align[2]; + struct sk_buff *rx_1st_skb; + struct sk_buff **rx_skb[2]; + struct sk_buff **tx_skb[2]; + u32 rx_over_errors; + u32 rx_fifo_errors; + struct net_device_stats stats[2]; + u32 tstamp_tx_ctrl; + u32 tstamp_rx_ctrl; + struct list_head ts_skb_list; + u32 ts_skb_tag; + struct ravb_ptp ptp; + spinlock_t lock; + u32 cur_rx[2]; + u32 dirty_rx[2]; + u32 cur_tx[2]; + u32 dirty_tx[2]; + struct napi_struct napi[2]; + struct work_struct work; + struct mii_bus *mii_bus; + int link; + phy_interface_t phy_interface; + int msg_enable; + int speed; + int emac_irq; + int erra_irq; + int mgmta_irq; + int rx_irqs[2]; + int tx_irqs[2]; + unsigned int no_avb_link: 1; + unsigned int avb_link_active_low: 1; + unsigned int wol_enabled: 1; + unsigned int rxcidm: 1; + unsigned int txcidm: 1; + unsigned int rgmii_override: 1; + unsigned int num_tx_desc; + int duplex; + const struct ravb_hw_info *info; + struct reset_control *rstc; }; -struct tegra_dma_channel; - -struct tegra_dma_chip_data { - bool hw_support_pause; - unsigned int nr_channels; - unsigned int channel_reg_size; - unsigned int max_dma_count; - int (*terminate)(struct tegra_dma_channel *); +struct ravb_desc { + __le16 ds; + u8 cc; + u8 die_dt; + __le32 dptr; }; -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, +struct ravb_rx_desc { + __le16 ds_cc; + u8 msc; + u8 die_dt; + __le32 dptr; }; -typedef s32 dma_cookie_t; - -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 ravb_ex_rx_desc { + __le16 ds_cc; + u8 msc; + u8 die_dt; + __le32 dptr; + __le32 ts_n; + __le32 ts_sl; + __le16 ts_sh; + __le16 res; }; -struct virt_dma_desc; - -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 ravb_tx_desc { + __le16 ds_tagl; + u8 tagh_tsr; + u8 die_dt; + __le32 dptr; }; -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, +struct ravb_tstamp_skb { + struct list_head list; + struct sk_buff *skb; + u16 tag; }; -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 __u16 __sum16; -struct tegra_dma; +typedef enum gro_result gro_result_t; -struct tegra_dma_desc; +struct vfio_pci_core_device; -struct tegra_dma_channel { - bool config_init; - char name[30]; - enum dma_transfer_direction sid_dir; - int id; - int irq; - int slave_id; - struct tegra_dma *tdma; - struct virt_dma_chan vc; - struct tegra_dma_desc *dma_desc; - struct dma_slave_config dma_sconfig; - unsigned int stream_id; - unsigned long chan_base_offset; +struct perm_bits { + u8 *virt; + u8 *write; + int (*readfn)(struct vfio_pci_core_device *, int, int, struct perm_bits *, int, __le32 *); + int (*writefn)(struct vfio_pci_core_device *, int, int, struct perm_bits *, int, __le32); }; -typedef bool (*dma_filter_fn)(struct dma_chan *, void *); - -struct dma_slave_map; - -struct dma_filter { - dma_filter_fn fn; - int mapcnt; - const struct dma_slave_map *map; -}; +struct iommufd_access; -typedef struct { - unsigned long bits[1]; -} dma_cap_mask_t; +struct vfio_device_ops; -enum dma_desc_metadata_mode { - DESC_METADATA_NONE = 0, - DESC_METADATA_CLIENT = 1, - DESC_METADATA_ENGINE = 2, -}; +struct vfio_migration_ops; -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, -}; +struct vfio_log_ops; -enum dma_residue_granularity { - DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, - DMA_RESIDUE_GRANULARITY_SEGMENT = 1, - DMA_RESIDUE_GRANULARITY_BURST = 2, -}; +struct vfio_group; -enum sum_check_flags { - SUM_CHECK_P_RESULT = 1, - SUM_CHECK_Q_RESULT = 2, -}; +struct vfio_device_set; -enum dma_status { - DMA_COMPLETE = 0, - DMA_IN_PROGRESS = 1, - DMA_PAUSED = 2, - DMA_ERROR = 3, - DMA_OUT_OF_ORDER = 4, +struct vfio_device { + struct device *dev; + const struct vfio_device_ops *ops; + const struct vfio_migration_ops *mig_ops; + const struct vfio_log_ops *log_ops; + struct vfio_group *group; + struct list_head group_next; + struct list_head iommu_entry; + struct vfio_device_set *dev_set; + struct list_head dev_set_list; + unsigned int migration_flags; + struct kvm___2 *kvm; + unsigned int index; + struct device device; + refcount_t refcount; + unsigned int open_count; + struct completion comp; + struct iommufd_access *iommufd_access; + void (*put_kvm)(struct kvm___2 *); + u8 cdev_opened: 1; }; -struct dma_async_tx_descriptor; - -struct dma_interleaved_template; +struct vfio_pci_region; -struct dma_slave_caps; +struct pci_saved_state; -struct dma_tx_state; +struct vfio_pci_vf_token; -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 vfio_pci_core_device { + struct vfio_device vdev; + struct pci_dev *pdev; + void *barmap[6]; + bool bar_mmap_supported[6]; + u8 *pci_config_map; + u8 *vconfig; + struct perm_bits *msi_perm; + spinlock_t irqlock; + struct mutex igate; + struct xarray ctx; + int irq_type; + int num_regions; + struct vfio_pci_region *region; + u8 msi_qmax; + u8 msix_bar; + u16 msix_size; + u32 msix_offset; + u32 rbar[7]; + bool has_dyn_msix: 1; + bool pci_2_3: 1; + bool virq_disabled: 1; + bool reset_works: 1; + bool extended_caps: 1; + bool bardirty: 1; + bool has_vga: 1; + bool needs_reset: 1; + bool nointx: 1; + bool needs_pm_restore: 1; + bool pm_intx_masked: 1; + bool pm_runtime_engaged: 1; + struct pci_saved_state *pci_saved_state; + struct pci_saved_state *pm_save; + int ioeventfds_nr; + struct eventfd_ctx *err_trigger; + struct eventfd_ctx *req_trigger; + struct eventfd_ctx *pm_wake_eventfd_ctx; + struct list_head dummy_resources_list; + struct mutex ioeventfds_lock; + struct list_head ioeventfds_list; + struct vfio_pci_vf_token *vf_token; + struct list_head sriov_pfs_item; + struct vfio_pci_core_device *sriov_pf_core_dev; + struct notifier_block nb; + struct mutex vma_lock; + struct list_head vma_list; + struct rw_semaphore memory_lock; }; -struct tegra_dma { - const struct tegra_dma_chip_data *chip_data; - unsigned long sid_m2d_reserved; - unsigned long sid_d2m_reserved; - u32 chan_mask; - void *base_addr; - struct device *dev; - struct dma_device dma_dev; - struct reset_control *rst; - struct tegra_dma_channel channels[0]; -}; +struct iommufd_ctx; -struct dma_chan_dev { - struct dma_chan *chan; - struct device device; - int dev_id; - bool chan_dma_dev; +struct vfio_device_ops { + char *name; + int (*init)(struct vfio_device *); + void (*release)(struct vfio_device *); + int (*bind_iommufd)(struct vfio_device *, struct iommufd_ctx *, u32 *); + void (*unbind_iommufd)(struct vfio_device *); + int (*attach_ioas)(struct vfio_device *, u32 *); + void (*detach_ioas)(struct vfio_device *); + int (*open_device)(struct vfio_device *); + void (*close_device)(struct vfio_device *); + ssize_t (*read)(struct vfio_device *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + ssize_t (*write)(struct vfio_device *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + long (*ioctl)(struct vfio_device *, unsigned int, unsigned long); + int (*mmap)(struct vfio_device *, struct vm_area_struct *); + void (*request)(struct vfio_device *, unsigned int); + int (*match)(struct vfio_device *, char *); + void (*dma_unmap)(struct vfio_device *, u64, u64); + int (*device_feature)(struct vfio_device *, u32, void __attribute__((btf_type_tag("user"))) *, size_t); }; -struct dma_chan_percpu { - unsigned long memcpy_count; - unsigned long bytes_transferred; +enum vfio_device_mig_state { + VFIO_DEVICE_STATE_ERROR = 0, + VFIO_DEVICE_STATE_STOP = 1, + VFIO_DEVICE_STATE_RUNNING = 2, + VFIO_DEVICE_STATE_STOP_COPY = 3, + VFIO_DEVICE_STATE_RESUMING = 4, + VFIO_DEVICE_STATE_RUNNING_P2P = 5, + VFIO_DEVICE_STATE_PRE_COPY = 6, + VFIO_DEVICE_STATE_PRE_COPY_P2P = 7, }; -struct dma_router { - struct device *dev; - void (*route_free)(struct device *, void *); +struct vfio_migration_ops { + struct file * (*migration_set_state)(struct vfio_device *, enum vfio_device_mig_state); + int (*migration_get_state)(struct vfio_device *, enum vfio_device_mig_state *); + int (*migration_get_data_size)(struct vfio_device *, unsigned long *); }; -struct dma_slave_map { - const char *devname; - const char *slave; - void *param; +struct vfio_log_ops { + int (*log_start)(struct vfio_device *, struct rb_root_cached *, u32, u64 *); + int (*log_stop)(struct vfio_device *); + int (*log_read_and_clear)(struct vfio_device *, unsigned long, unsigned long, struct iova_bitmap *); }; -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, +struct vfio_device_set { + void *set_id; + struct mutex lock; + struct list_head device_list; + unsigned int device_count; }; -typedef void (*dma_async_tx_callback)(void *); - -struct dmaengine_result; - -typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); +struct vfio_pci_regops; -struct dmaengine_unmap_data; +struct vfio_pci_region { + u32 type; + u32 subtype; + const struct vfio_pci_regops *ops; + void *data; + size_t size; + u32 flags; +}; -struct dma_descriptor_metadata_ops; +struct vfio_info_cap; -struct dma_async_tx_descriptor { - dma_cookie_t cookie; - enum dma_ctrl_flags flags; - dma_addr_t phys; - struct dma_chan *chan; - dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *); - int (*desc_free)(struct dma_async_tx_descriptor *); - dma_async_tx_callback callback; - dma_async_tx_callback_result callback_result; - void *callback_param; - struct dmaengine_unmap_data *unmap; - enum dma_desc_metadata_mode desc_metadata_mode; - struct dma_descriptor_metadata_ops *metadata_ops; - struct dma_async_tx_descriptor *next; - struct dma_async_tx_descriptor *parent; - spinlock_t lock; +struct vfio_pci_regops { + ssize_t (*rw)(struct vfio_pci_core_device *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *, bool); + void (*release)(struct vfio_pci_core_device *, struct vfio_pci_region *); + int (*mmap)(struct vfio_pci_core_device *, struct vfio_pci_region *, struct vm_area_struct *); + int (*add_capability)(struct vfio_pci_core_device *, struct vfio_pci_region *, struct vfio_info_cap *); }; -enum dmaengine_tx_result { - DMA_TRANS_NOERROR = 0, - DMA_TRANS_READ_FAILED = 1, - DMA_TRANS_WRITE_FAILED = 2, - DMA_TRANS_ABORTED = 3, -}; +struct vfio_info_cap_header; -struct dmaengine_result { - enum dmaengine_tx_result result; - u32 residue; +struct vfio_info_cap { + struct vfio_info_cap_header *buf; + size_t size; }; -struct dmaengine_unmap_data { - u16 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 vfio_info_cap_header { + __u16 id; + __u16 version; + __u32 next; }; -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); +enum { + VFIO_PCI_INTX_IRQ_INDEX = 0, + VFIO_PCI_MSI_IRQ_INDEX = 1, + VFIO_PCI_MSIX_IRQ_INDEX = 2, + VFIO_PCI_ERR_IRQ_INDEX = 3, + VFIO_PCI_REQ_IRQ_INDEX = 4, + VFIO_PCI_NUM_IRQS = 5, }; -struct data_chunk { - size_t size; - size_t icg; - size_t dst_icg; - size_t src_icg; +struct usbdrv_wrap { + struct device_driver driver; + int for_devices; }; -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 usb_device; -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 usb_device_id; -struct dma_tx_state { - dma_cookie_t last; - dma_cookie_t used; - u32 residue; - u32 in_flight_bytes; +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 virt_dma_desc { - struct dma_async_tx_descriptor tx; - struct dmaengine_result tx_result; - struct list_head node; +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, }; -struct tegra_dma_channel_regs { - u32 csr; - u32 src_ptr; - u32 dst_ptr; - u32 high_addr_ptr; - u32 mc_seq; - u32 mmio_seq; - u32 wcount; - u32 fixed_pattern; +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, }; -struct tegra_dma_sg_req { - unsigned int len; - struct tegra_dma_channel_regs ch_regs; +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 tegra_dma_desc { - bool cyclic; - unsigned int bytes_req; - unsigned int bytes_xfer; - unsigned int sg_idx; - unsigned int sg_count; - struct virt_dma_desc vd; - struct tegra_dma_channel *tdc; - struct tegra_dma_sg_req sg_req[0]; -}; +struct usb_endpoint_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bEndpointAddress; + __u8 bmAttributes; + __le16 wMaxPacketSize; + __u8 bInterval; + __u8 bRefresh; + __u8 bSynchAddress; +} __attribute__((packed)); -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, +struct usb_ss_ep_comp_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bMaxBurst; + __u8 bmAttributes; + __le16 wBytesPerInterval; }; -struct of_dma { - struct list_head of_dma_controllers; - struct device_node *of_node; - struct dma_chan * (*of_dma_xlate)(struct of_phandle_args *, struct of_dma *); - void * (*of_dma_route_allocate)(struct of_phandle_args *, struct of_dma *); - struct dma_router *dma_router; - void *of_dma_data; +struct usb_ssp_isoc_ep_comp_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wReseved; + __le32 dwBytesPerInterval; }; -struct meson_gx_pwrc_vpu { - struct generic_pm_domain genpd; - struct regmap *regmap_ao; - struct regmap *regmap_hhi; - struct reset_control *rstc; - struct clk *vpu_clk; - struct clk *vapb_clk; -}; +struct ep_device; -struct rockchip_grf_value; +struct usb_host_endpoint { + struct usb_endpoint_descriptor desc; + struct usb_ss_ep_comp_descriptor ss_ep_comp; + struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp; + long: 0; + struct list_head urb_list; + void *hcpriv; + struct ep_device *ep_dev; + unsigned char *extra; + int extralen; + int enabled; + int streams; + long: 0; +} __attribute__((packed)); -struct rockchip_grf_info { - const struct rockchip_grf_value *values; - int num_values; +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 rockchip_grf_value { - const char *desc; - u32 reg; - u32 val; +struct usb2_lpm_parameters { + unsigned int besl; + int timeout; }; -struct virtio_device_id { - __u32 device; - __u32 vendor; +struct usb3_lpm_parameters { + unsigned int mel; + unsigned int pel; + unsigned int sel; + int timeout; }; -struct virtio_pci_legacy_device { - struct pci_dev *pci_dev; - u8 *isr; - void *ioaddr; - struct virtio_device_id id; -}; +struct usb_tt; -struct rohm_dvs_config { - uint64_t level_map; - unsigned int run_reg; - unsigned int run_mask; - unsigned int run_on_mask; - unsigned int idle_reg; - unsigned int idle_mask; - unsigned int idle_on_mask; - unsigned int suspend_reg; - unsigned int suspend_mask; - unsigned int suspend_on_mask; - unsigned int lpsr_reg; - unsigned int lpsr_mask; - unsigned int lpsr_on_mask; - unsigned int snvs_reg; - unsigned int snvs_mask; - unsigned int snvs_on_mask; -}; +struct usb_bus; -struct bcm2835_aux_serial_driver_data { - resource_size_t offset; -}; +struct usb_host_bos; -struct mctrl_gpios; - -struct uart_8250_dma; - -struct uart_8250_ops; - -struct uart_8250_em485; +struct usb_host_config; -struct uart_8250_port { - struct uart_port port; - struct timer_list timer; - struct list_head list; - u32 capabilities; - u16 bugs; - unsigned int tx_loadsz; - unsigned char acr; - unsigned char fcr; - unsigned char ier; - unsigned char lcr; - unsigned char mcr; - unsigned char cur_iotype; - unsigned int rpm_tx_active; - unsigned char canary; - unsigned char probe; - struct mctrl_gpios *gpios; - u16 lsr_saved_flags; - u16 lsr_save_mask; - unsigned char msr_saved_flags; - struct uart_8250_dma *dma; - const struct uart_8250_ops *ops; - u32 (*dl_read)(struct uart_8250_port *); - void (*dl_write)(struct uart_8250_port *, u32); - struct uart_8250_em485 *em485; - void (*rs485_start_tx)(struct uart_8250_port *); - void (*rs485_stop_tx)(struct uart_8250_port *); - struct delayed_work overrun_backoff; - u32 overrun_backoff_time_ms; +struct usb_device { + int devnum; + char devpath[16]; + u32 route; + enum usb_device_state state; + enum usb_device_speed speed; + unsigned int rx_lanes; + unsigned int tx_lanes; + enum usb_ssp_rate ssp_rate; + struct usb_tt *tt; + int ttport; + unsigned int toggle[2]; + struct usb_device *parent; + struct usb_bus *bus; + struct usb_host_endpoint ep0; + struct device dev; + struct usb_device_descriptor descriptor; + struct usb_host_bos *bos; + struct usb_host_config *config; + struct usb_host_config *actconfig; + struct usb_host_endpoint *ep_in[16]; + struct usb_host_endpoint *ep_out[16]; + char **rawdescriptors; + unsigned short bus_mA; + u8 portnum; + u8 level; + u8 devaddr; + unsigned int can_submit: 1; + unsigned int persist_enabled: 1; + unsigned int reset_in_progress: 1; + unsigned int have_langid: 1; + unsigned int authorized: 1; + unsigned int authenticated: 1; + unsigned int lpm_capable: 1; + unsigned int lpm_devinit_allow: 1; + unsigned int usb2_hw_lpm_capable: 1; + unsigned int usb2_hw_lpm_besl_capable: 1; + unsigned int usb2_hw_lpm_enabled: 1; + unsigned int usb2_hw_lpm_allowed: 1; + unsigned int usb3_lpm_u1_enabled: 1; + unsigned int usb3_lpm_u2_enabled: 1; + int string_langid; + char *product; + char *manufacturer; + char *serial; + struct list_head filelist; + int maxchild; + u32 quirks; + atomic_t urbnum; + unsigned long active_duration; + unsigned long connect_time; + unsigned int do_remote_wakeup: 1; + unsigned int reset_resume: 1; + unsigned int port_is_suspended: 1; + int slot_id; + struct usb2_lpm_parameters l1_params; + struct usb3_lpm_parameters u1_params; + struct usb3_lpm_parameters u2_params; + unsigned int lpm_disable_count; + u16 hub_delay; + unsigned int use_generic_driver: 1; }; -struct 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 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 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 usb_devmap { + unsigned long devicemap[2]; }; -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 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 bcm2835aux_data { - struct clk *clk; - int line; - u32 cntl; -}; +struct usb_bos_descriptor; -struct ports_driver_data { - struct dentry *debugfs_dir; - struct list_head portdevs; - struct list_head consoles; -}; +struct usb_ext_cap_descriptor; -struct pipe_buffer; +struct usb_ss_cap_descriptor; -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 usb_ssp_cap_descriptor; -struct pipe_buf_operations; +struct usb_ss_container_id_descriptor; -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 usb_ptm_cap_descriptor; -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 *); +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 hvc_struct; +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 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 usb_ss_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bmAttributes; + __le16 wSpeedSupported; + __u8 bFunctionalitySupport; + __u8 bU1devExitLat; + __le16 bU2DevExitLat; }; -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 usb_ssp_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __le32 bmAttributes; + __le16 wFunctionalitySupport; + __le16 wReserved; + union { + __le32 legacy_padding; + struct { + struct {} __empty_bmSublinkSpeedAttr; + __le32 bmSublinkSpeedAttr[0]; + }; + }; }; -struct virtio_device; +struct usb_ss_container_id_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __u8 ContainerID[16]; +}; -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 usb_ptm_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; }; -struct vringh_config_ops; +struct usb_config_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wTotalLength; + __u8 bNumInterfaces; + __u8 bConfigurationValue; + __u8 iConfiguration; + __u8 bmAttributes; + __u8 bMaxPower; +} __attribute__((packed)); -struct virtio_config_ops; +struct usb_interface_assoc_descriptor; -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; +struct usb_interface; + +struct usb_interface_cache; + +struct usb_host_config { + struct usb_config_descriptor desc; + char *string; + struct usb_interface_assoc_descriptor *intf_assoc[16]; + struct usb_interface *interface[32]; + struct usb_interface_cache *intf_cache[32]; + unsigned char *extra; + int extralen; }; -struct virtqueue; +struct usb_interface_assoc_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bFirstInterface; + __u8 bInterfaceCount; + __u8 bFunctionClass; + __u8 bFunctionSubClass; + __u8 bFunctionProtocol; + __u8 iFunction; +}; -typedef void vq_callback_t(struct virtqueue *); +enum usb_interface_condition { + USB_INTERFACE_UNBOUND = 0, + USB_INTERFACE_BINDING = 1, + USB_INTERFACE_BOUND = 2, + USB_INTERFACE_UNBINDING = 3, +}; -struct irq_affinity; +enum usb_wireless_status { + USB_WIRELESS_STATUS_NA = 0, + USB_WIRELESS_STATUS_DISCONNECTED = 1, + USB_WIRELESS_STATUS_CONNECTED = 2, +}; -struct virtio_shm_region; +struct usb_host_interface; -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 usb_interface { + struct usb_host_interface *altsetting; + struct usb_host_interface *cur_altsetting; + unsigned int num_altsetting; + struct usb_interface_assoc_descriptor *intf_assoc; + int minor; + enum usb_interface_condition condition; + unsigned int sysfs_files_created: 1; + unsigned int ep_devs_created: 1; + unsigned int unregistering: 1; + unsigned int needs_remote_wakeup: 1; + unsigned int needs_altsetting0: 1; + unsigned int needs_binding: 1; + unsigned int resetting_device: 1; + unsigned int authorized: 1; + enum usb_wireless_status wireless_status; + struct work_struct wireless_status_work; + struct device dev; + struct device *usb_dev; + struct work_struct reset_ws; }; -struct virtqueue { - struct list_head list; - void (*callback)(struct virtqueue *); - const char *name; - struct virtio_device *vdev; - unsigned int index; - unsigned int num_free; - unsigned int num_max; - bool reset; - void *priv; +struct usb_interface_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bInterfaceNumber; + __u8 bAlternateSetting; + __u8 bNumEndpoints; + __u8 bInterfaceClass; + __u8 bInterfaceSubClass; + __u8 bInterfaceProtocol; + __u8 iInterface; }; -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 usb_host_interface { + struct usb_interface_descriptor desc; + int extralen; + unsigned char *extra; + struct usb_host_endpoint *endpoint; + char *string; }; -struct virtio_shm_region { - u64 addr; - u64 len; +struct usb_interface_cache { + unsigned int num_altsetting; + struct kref ref; + struct usb_host_interface altsetting[0]; }; -struct console___2 { - struct list_head list; - struct hvc_struct *hvc; - struct winsize ws; - u32 vtermno; +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 port_stats { - unsigned long bytes_sent; - unsigned long bytes_received; - unsigned long bytes_discarded; +enum usb_phy_type { + USB_PHY_TYPE_UNDEFINED = 0, + USB_PHY_TYPE_USB2 = 1, + USB_PHY_TYPE_USB3 = 2, }; -struct ports_device; +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 port_buffer; +enum usb_charger_type { + UNKNOWN_TYPE = 0, + SDP_TYPE = 1, + DCP_TYPE = 2, + CDP_TYPE = 3, + ACA_TYPE = 4, +}; -struct port { - 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; +enum usb_charger_state { + USB_CHARGER_DEFAULT = 0, + USB_CHARGER_PRESENT = 1, + USB_CHARGER_ABSENT = 2, }; -typedef __u32 __virtio32; +enum usb_phy_interface { + USBPHY_INTERFACE_MODE_UNKNOWN = 0, + USBPHY_INTERFACE_MODE_UTMI = 1, + USBPHY_INTERFACE_MODE_UTMIW = 2, + USBPHY_INTERFACE_MODE_ULPI = 3, + USBPHY_INTERFACE_MODE_SERIAL = 4, + USBPHY_INTERFACE_MODE_HSIC = 5, +}; -typedef __u16 __virtio16; +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 virtio_console_control { - __virtio32 id; - __virtio16 event; - __virtio16 value; +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, }; -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; +enum dwc3_ep0_next { + DWC3_EP0_UNKNOWN = 0, + DWC3_EP0_COMPLETE = 1, + DWC3_EP0_NRDY_DATA = 2, + DWC3_EP0_NRDY_STATUS = 3, }; -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]; +enum dwc3_ep0_state { + EP0_UNCONNECTED = 0, + EP0_SETUP_PHASE = 1, + EP0_DATA_PHASE = 2, + EP0_STATUS_PHASE = 3, }; -struct splice_desc { - size_t total_len; - unsigned int len; - unsigned int flags; - union { - void __attribute__((btf_type_tag("user"))) *userptr; - struct file *file; - void *data; - } u; - void (*splice_eof)(struct splice_desc *); - loff_t pos; - loff_t *opos; - size_t num_spliced; - bool need_wakeup; +enum dwc3_link_state { + DWC3_LINK_STATE_U0 = 0, + DWC3_LINK_STATE_U1 = 1, + DWC3_LINK_STATE_U2 = 2, + DWC3_LINK_STATE_U3 = 3, + DWC3_LINK_STATE_SS_DIS = 4, + DWC3_LINK_STATE_RX_DET = 5, + DWC3_LINK_STATE_SS_INACT = 6, + DWC3_LINK_STATE_POLL = 7, + DWC3_LINK_STATE_RECOV = 8, + DWC3_LINK_STATE_HRESET = 9, + DWC3_LINK_STATE_CMPLY = 10, + DWC3_LINK_STATE_LPBK = 11, + DWC3_LINK_STATE_RESET = 14, + DWC3_LINK_STATE_RESUME = 15, + DWC3_LINK_STATE_MASK = 15, }; -typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); +struct usb_ep; -struct sg_list { - unsigned int n; - unsigned int size; - size_t len; +struct usb_request { + void *buf; + unsigned int length; + dma_addr_t dma; struct scatterlist *sg; + unsigned int num_sgs; + unsigned int num_mapped_sgs; + unsigned int stream_id: 16; + unsigned int is_last: 1; + unsigned int no_interrupt: 1; + unsigned int zero: 1; + unsigned int short_not_ok: 1; + unsigned int dma_mapped: 1; + void (*complete)(struct usb_ep *, struct usb_request *); + void *context; + struct list_head list; + unsigned int frame_number; + int status; + unsigned int actual; }; -struct io_pgtable; +struct dwc3_ep; -struct io_pgtable_cfg; +struct dwc3_trb; -struct io_pgtable_init_fns { - struct io_pgtable * (*alloc)(struct io_pgtable_cfg *, void *); - void (*free)(struct io_pgtable *); +struct dwc3_request { + struct usb_request request; + struct list_head list; + struct dwc3_ep *dep; + struct scatterlist *sg; + struct scatterlist *start_sg; + unsigned int num_pending_sgs; + unsigned int num_queued_sgs; + unsigned int remaining; + unsigned int status; + u8 epnum; + struct dwc3_trb *trb; + dma_addr_t trb_dma; + unsigned int num_trbs; + unsigned int needs_extra_trb: 1; + unsigned int direction: 1; + unsigned int mapped: 1; }; -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 dwc3_hwparams { + u32 hwparams0; + u32 hwparams1; + u32 hwparams2; + u32 hwparams3; + u32 hwparams4; + u32 hwparams5; + u32 hwparams6; + u32 hwparams7; + u32 hwparams8; + u32 hwparams9; }; -struct iommu_flush_ops; +struct dwc3_event_buffer; -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 usb_gadget; -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 usb_gadget_driver; -struct io_pgtable { - enum io_pgtable_fmt fmt; - void *cookie; - struct io_pgtable_cfg cfg; - struct io_pgtable_ops ops; -}; +struct usb_phy; -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 ulpi; -struct arm_lpae_io_pgtable { - struct io_pgtable iop; - int pgd_bits; - int start_level; - int bits_per_level; - void *pgd; -}; +struct usb_role_switch; -typedef u64 arm_lpae_iopte; +struct power_supply; -struct wake_irq { - struct device *dev; - unsigned int status; - int irq; - const char *name; -}; +struct debugfs_regset32; -struct devcd_entry { - struct device devcd_dev; - void *data; - size_t datalen; +struct dwc3 { + struct work_struct drd_work; + struct dwc3_trb *ep0_trb; + void *bounce; + u8 *setup_buf; + dma_addr_t ep0_trb_addr; + dma_addr_t bounce_addr; + struct dwc3_request ep0_usb_req; + struct completion ep0_in_setup; + spinlock_t lock; struct mutex mutex; - bool delete_work; - struct module *owner; - ssize_t (*read)(char *, loff_t, size_t, void *, size_t); - void (*free)(void *); - struct delayed_work del_wk; - struct device *failing_dev; + struct device *dev; + struct device *sysdev; + struct platform_device *xhci; + struct resource xhci_resources[2]; + struct dwc3_event_buffer *ev_buf; + struct dwc3_ep *eps[32]; + struct usb_gadget *gadget; + struct usb_gadget_driver *gadget_driver; + struct clk *bus_clk; + struct clk *ref_clk; + struct clk *susp_clk; + struct clk *utmi_clk; + struct clk *pipe_clk; + struct reset_control *reset; + struct usb_phy *usb2_phy; + struct usb_phy *usb3_phy; + struct phy *usb2_generic_phy; + struct phy *usb3_generic_phy; + bool phys_ready; + struct ulpi *ulpi; + bool ulpi_ready; + void *regs; + size_t regs_size; + enum usb_dr_mode dr_mode; + u32 current_dr_role; + u32 desired_dr_role; + struct extcon_dev *edev; + struct notifier_block edev_nb; + enum usb_phy_interface hsphy_mode; + struct usb_role_switch *role_sw; + enum usb_dr_mode role_switch_default_mode; + struct power_supply *usb_psy; + u32 fladj; + u32 ref_clk_per; + u32 irq_gadget; + u32 otg_irq; + u32 current_otg_role; + u32 desired_otg_role; + bool otg_restart_host; + u32 u1u2; + u32 maximum_speed; + u32 gadget_max_speed; + enum usb_ssp_rate max_ssp_rate; + enum usb_ssp_rate gadget_ssp_rate; + u32 ip; + u32 revision; + u32 version_type; + enum dwc3_ep0_next ep0_next_event; + enum dwc3_ep0_state ep0state; + enum dwc3_link_state link_state; + u16 u2sel; + u16 u2pel; + u8 u1sel; + u8 u1pel; + u8 speed; + u8 num_eps; + struct dwc3_hwparams hwparams; + struct debugfs_regset32 *regset; + u32 dbg_lsp_select; + u8 test_mode; + u8 test_mode_nr; + u8 lpm_nyet_threshold; + u8 hird_threshold; + u8 rx_thr_num_pkt; + u8 rx_max_burst; + u8 tx_thr_num_pkt; + u8 tx_max_burst; + u8 rx_thr_num_pkt_prd; + u8 rx_max_burst_prd; + u8 tx_thr_num_pkt_prd; + u8 tx_max_burst_prd; + u8 tx_fifo_resize_max_num; + u8 clear_stall_protocol; + const char *hsphy_interface; + unsigned int connected: 1; + unsigned int softconnect: 1; + unsigned int delayed_status: 1; + unsigned int ep0_bounced: 1; + unsigned int ep0_expect_in: 1; + unsigned int sysdev_is_parent: 1; + unsigned int has_lpm_erratum: 1; + unsigned int is_utmi_l1_suspend: 1; + unsigned int is_fpga: 1; + unsigned int pending_events: 1; + unsigned int do_fifo_resize: 1; + unsigned int pullups_connected: 1; + unsigned int setup_packet_pending: 1; + unsigned int three_stage_setup: 1; + unsigned int dis_start_transfer_quirk: 1; + unsigned int usb3_lpm_capable: 1; + unsigned int usb2_lpm_disable: 1; + unsigned int usb2_gadget_lpm_disable: 1; + unsigned int disable_scramble_quirk: 1; + unsigned int u2exit_lfps_quirk: 1; + unsigned int u2ss_inp3_quirk: 1; + unsigned int req_p1p2p3_quirk: 1; + unsigned int del_p1p2p3_quirk: 1; + unsigned int del_phy_power_chg_quirk: 1; + unsigned int lfps_filter_quirk: 1; + unsigned int rx_detect_poll_quirk: 1; + unsigned int dis_u3_susphy_quirk: 1; + unsigned int dis_u2_susphy_quirk: 1; + unsigned int dis_enblslpm_quirk: 1; + unsigned int dis_u1_entry_quirk: 1; + unsigned int dis_u2_entry_quirk: 1; + unsigned int dis_rxdet_inp3_quirk: 1; + unsigned int dis_u2_freeclk_exists_quirk: 1; + unsigned int dis_del_phy_power_chg_quirk: 1; + unsigned int dis_tx_ipgap_linecheck_quirk: 1; + unsigned int resume_hs_terminations: 1; + unsigned int ulpi_ext_vbus_drv: 1; + unsigned int parkmode_disable_ss_quirk: 1; + unsigned int parkmode_disable_hs_quirk: 1; + unsigned int gfladj_refclk_lpm_sel: 1; + unsigned int tx_de_emphasis_quirk: 1; + unsigned int tx_de_emphasis: 2; + unsigned int dis_metastability_quirk: 1; + unsigned int dis_split_quirk: 1; + unsigned int async_callbacks: 1; + unsigned int wakeup_configured: 1; + unsigned int suspended: 1; + u16 imod_interval; + int max_cfg_eps; + int last_fifo_depth; + int num_ep_resized; + struct dentry *debug_root; }; -typedef __kernel_off_t off_t; - -struct arm_smccc_quirk { - int id; - union { - unsigned long a6; - } state; +struct dwc3_trb { + u32 bpl; + u32 bph; + u32 size; + u32 ctrl; }; -struct altr_sysmgr { - struct regmap *regmap; +struct usb_ep_caps { + unsigned int type_control: 1; + unsigned int type_iso: 1; + unsigned int type_bulk: 1; + unsigned int type_int: 1; + unsigned int dir_in: 1; + unsigned int dir_out: 1; }; -struct ata_port_info { - unsigned long flags; - unsigned long link_flags; - unsigned int pio_mask; - unsigned int mwdma_mask; - unsigned int udma_mask; - struct ata_port_operations *port_ops; - void *private_data; -}; +struct usb_ep_ops; -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, +struct usb_ep { + void *driver_data; + const char *name; + const struct usb_ep_ops *ops; + struct list_head ep_list; + struct usb_ep_caps caps; + bool claimed; + bool enabled; + unsigned int maxpacket: 16; + unsigned int maxpacket_limit: 16; + unsigned int max_streams: 16; + unsigned int mult: 2; + unsigned int maxburst: 5; + u8 address; + const struct usb_endpoint_descriptor *desc; + const struct usb_ss_ep_comp_descriptor *comp_desc; }; -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 usb_ep_ops { + int (*enable)(struct usb_ep *, const struct usb_endpoint_descriptor *); + int (*disable)(struct usb_ep *); + void (*dispose)(struct usb_ep *); + struct usb_request * (*alloc_request)(struct usb_ep *, gfp_t); + void (*free_request)(struct usb_ep *, struct usb_request *); + int (*queue)(struct usb_ep *, struct usb_request *, gfp_t); + int (*dequeue)(struct usb_ep *, struct usb_request *); + int (*set_halt)(struct usb_ep *, int); + int (*set_wedge)(struct usb_ep *); + int (*fifo_status)(struct usb_ep *); + void (*fifo_flush)(struct usb_ep *); }; -struct xgene_enet_desc_ring; +struct dwc3_ep { + struct usb_ep endpoint; + struct list_head cancelled_list; + struct list_head pending_list; + struct list_head started_list; + void *regs; + struct dwc3_trb *trb_pool; + dma_addr_t trb_pool_dma; + struct dwc3 *dwc; + u32 saved_state; + unsigned int flags; + u8 trb_enqueue; + u8 trb_dequeue; + u8 number; + u8 type; + u8 resource_index; + u32 frame_number; + u32 interval; + char name[20]; + unsigned int direction: 1; + unsigned int stream_capable: 1; + u8 combo_num; + int start_cmd_status; +}; -struct xgene_ring_ops { - u8 num_ring_config; - u8 num_ring_id_shift; - struct xgene_enet_desc_ring * (*setup)(struct xgene_enet_desc_ring *); - void (*clear)(struct xgene_enet_desc_ring *); - void (*wr_cmd)(struct xgene_enet_desc_ring *, int); - u32 (*len)(struct xgene_enet_desc_ring *); - void (*coalesce)(struct xgene_enet_desc_ring *); +struct dwc3_event_buffer { + void *buf; + void *cache; + unsigned int length; + unsigned int lpos; + unsigned int count; + unsigned int flags; + dma_addr_t dma; + struct dwc3 *dwc; }; -enum xgene_enet_ring_cfgsize { - RING_CFGSIZE_512B = 0, - RING_CFGSIZE_2KB = 1, - RING_CFGSIZE_16KB = 2, - RING_CFGSIZE_64KB = 3, - RING_CFGSIZE_512KB = 4, - RING_CFGSIZE_INVALID = 5, +struct usb_udc; + +struct usb_gadget_ops; + +struct usb_otg_caps; + +struct usb_gadget { + struct work_struct work; + struct usb_udc *udc; + const struct usb_gadget_ops *ops; + struct usb_ep *ep0; + struct list_head ep_list; + enum usb_device_speed speed; + enum usb_device_speed max_speed; + enum usb_ssp_rate ssp_rate; + enum usb_ssp_rate max_ssp_rate; + enum usb_device_state state; + const char *name; + struct device dev; + unsigned int isoch_delay; + unsigned int out_epnum; + unsigned int in_epnum; + unsigned int mA; + struct usb_otg_caps *otg_caps; + unsigned int sg_supported: 1; + unsigned int is_otg: 1; + unsigned int is_a_peripheral: 1; + unsigned int b_hnp_enable: 1; + unsigned int a_hnp_support: 1; + unsigned int a_alt_hnp_support: 1; + unsigned int hnp_polling_support: 1; + unsigned int host_request_flag: 1; + unsigned int quirk_ep_out_aligned_size: 1; + unsigned int quirk_altset_not_supp: 1; + unsigned int quirk_stall_not_supp: 1; + unsigned int quirk_zlp_not_supp: 1; + unsigned int quirk_avoids_skb_reserve: 1; + unsigned int is_selfpowered: 1; + unsigned int deactivated: 1; + unsigned int connected: 1; + unsigned int lpm_capable: 1; + unsigned int wakeup_capable: 1; + unsigned int wakeup_armed: 1; + int irq; + int id_number; }; -struct xgene_enet_raw_desc; +struct usb_dcd_config_params; -struct xgene_enet_raw_desc16; +struct usb_gadget_ops { + int (*get_frame)(struct usb_gadget *); + int (*wakeup)(struct usb_gadget *); + int (*func_wakeup)(struct usb_gadget *, int); + int (*set_remote_wakeup)(struct usb_gadget *, int); + int (*set_selfpowered)(struct usb_gadget *, int); + int (*vbus_session)(struct usb_gadget *, int); + int (*vbus_draw)(struct usb_gadget *, unsigned int); + int (*pullup)(struct usb_gadget *, int); + int (*ioctl)(struct usb_gadget *, unsigned int, unsigned long); + void (*get_config_params)(struct usb_gadget *, struct usb_dcd_config_params *); + int (*udc_start)(struct usb_gadget *, struct usb_gadget_driver *); + int (*udc_stop)(struct usb_gadget *); + void (*udc_set_speed)(struct usb_gadget *, enum usb_device_speed); + void (*udc_set_ssp_rate)(struct usb_gadget *, enum usb_ssp_rate); + void (*udc_async_callbacks)(struct usb_gadget *, bool); + struct usb_ep * (*match_ep)(struct usb_gadget *, struct usb_endpoint_descriptor *, struct usb_ss_ep_comp_descriptor *); + int (*check_config)(struct usb_gadget *); +}; -struct xgene_enet_desc_ring { - struct net_device *ndev; - u16 id; - u16 num; - u16 head; - u16 tail; - u16 exp_buf_tail; - u16 slots; - u16 irq; - char irq_name[16]; - u32 size; - u32 state[6]; - void *cmd_base; - void *cmd; - dma_addr_t dma; - dma_addr_t irq_mbox_dma; - void *irq_mbox_addr; - u16 dst_ring_num; - u16 nbufpool; - int npagepool; - u8 index; - u32 flags; - struct sk_buff **rx_skb; - struct sk_buff **cp_skb; - dma_addr_t *frag_dma_addr; - struct page **frag_page; - enum xgene_enet_ring_cfgsize cfgsize; - struct xgene_enet_desc_ring *cp_ring; - struct xgene_enet_desc_ring *buf_pool; - struct xgene_enet_desc_ring *page_pool; - struct napi_struct napi; - union { - void *desc_addr; - struct xgene_enet_raw_desc *raw_desc; - struct xgene_enet_raw_desc16 *raw_desc16; - }; - __le64 *exp_bufs; - u64 tx_packets; - u64 tx_bytes; - u64 tx_dropped; - u64 tx_errors; - u64 rx_packets; - u64 rx_bytes; - u64 rx_dropped; - u64 rx_errors; - u64 rx_length_errors; - u64 rx_crc_errors; - u64 rx_frame_errors; - u64 rx_fifo_errors; +struct usb_dcd_config_params { + __u8 bU1devExitLat; + __le16 bU2DevExitLat; + __u8 besl_baseline; + __u8 besl_deep; }; -struct xgene_enet_raw_desc { - __le64 m0; - __le64 m1; - __le64 m2; - __le64 m3; +struct usb_ctrlrequest; + +struct usb_gadget_driver { + char *function; + enum usb_device_speed max_speed; + int (*bind)(struct usb_gadget *, struct usb_gadget_driver *); + void (*unbind)(struct usb_gadget *); + int (*setup)(struct usb_gadget *, const struct usb_ctrlrequest *); + void (*disconnect)(struct usb_gadget *); + void (*suspend)(struct usb_gadget *); + void (*resume)(struct usb_gadget *); + void (*reset)(struct usb_gadget *); + struct device_driver driver; + char *udc_name; + unsigned int match_existing_only: 1; + bool is_bound: 1; }; -struct xgene_enet_raw_desc16 { - __le64 m0; - __le64 m1; +struct usb_ctrlrequest { + __u8 bRequestType; + __u8 bRequest; + __le16 wValue; + __le16 wIndex; + __le16 wLength; }; -enum xgene_ring_owner { - RING_OWNER_ETH0 = 0, - RING_OWNER_ETH1 = 1, - RING_OWNER_CPU = 15, - RING_OWNER_INVALID = 16, +struct usb_otg_caps { + u16 otg_rev; + bool hnp_support; + bool srp_support; + bool adp_support; }; -enum xgene_enet_id { - XGENE_ENET1 = 1, - XGENE_ENET2 = 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; }; -enum xgene_enet_rm { - RM0 = 0, - RM1 = 1, - RM3 = 3, +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 *); }; -enum xgene_cle_parser { - PARSER0 = 0, - PARSER1 = 1, - PARSER2 = 2, - PARSER_ALL = 3, +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 xgene_enet_ring_type { - RING_DISABLED = 0, - RING_REGULAR = 1, - RING_BUFPOOL = 2, +struct usb_phy_io_ops { + int (*read)(struct usb_phy *, u32); + int (*write)(struct usb_phy *, u32, u32); }; -struct xgene_cle_ptree_kn; +struct power_supply_desc; -struct xgene_cle_dbptr; +struct power_supply_battery_info; -struct xgene_cle_ptree { - struct xgene_cle_ptree_kn *kn; - struct xgene_cle_dbptr *dbptr; - u32 num_kn; - u32 num_dbptr; - u32 start_node; - u32 start_pkt; - u32 start_dbptr; +struct thermal_zone_device; + +struct led_trigger; + +struct power_supply { + const struct power_supply_desc *desc; + char **supplied_to; + size_t num_supplicants; + char **supplied_from; + size_t num_supplies; + struct device_node *of_node; + void *drv_data; + struct device dev; + struct work_struct changed_work; + struct delayed_work deferred_register_work; + spinlock_t changed_lock; + bool changed; + bool initialized; + bool removing; + atomic_t use_cnt; + struct power_supply_battery_info *battery_info; + struct thermal_zone_device *tzd; + struct thermal_cooling_device *tcd; + 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; }; -struct xgene_enet_cle { - void *base; - struct xgene_cle_ptree ptree; - enum xgene_cle_parser active_parser; - u32 parsers; - u32 max_nodes; - u32 max_dbptrs; - u32 jump_bytes; +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 xgene_mac_ops; +union power_supply_propval { + int intval; + const char *strval; +}; -struct xgene_port_ops; +struct power_supply_maintenance_charge_table; -struct xgene_cle_ops; +struct power_supply_battery_ocv_table; -struct xgene_enet_pdata { - struct net_device *ndev; - struct mii_bus *mdio_bus; - int phy_speed; - struct clk *clk; - struct platform_device *pdev; - enum xgene_enet_id enet_id; - struct xgene_enet_desc_ring *tx_ring[8]; - struct xgene_enet_desc_ring *rx_ring[8]; - u16 tx_level[8]; - u16 txc_level[8]; - char *dev_name; - u32 rx_buff_cnt; - u32 tx_qcnt_hi; - u32 irqs[16]; - u8 rxq_cnt; - u8 txq_cnt; - u8 cq_cnt; - void *eth_csr_addr; - void *eth_ring_if_addr; - void *eth_diag_csr_addr; - void *mcx_mac_addr; - void *mcx_mac_csr_addr; - void *mcx_stats_addr; - void *base_addr; - void *pcs_addr; - void *ring_csr_addr; - void *ring_cmd_addr; - int phy_mode; - enum xgene_enet_rm rm; - struct xgene_enet_cle cle; - u64 *extd_stats; - u64 false_rflr; - u64 vlan_rjbr; - spinlock_t stats_lock; - const struct xgene_mac_ops *mac_ops; - spinlock_t mac_lock; - const struct xgene_port_ops *port_ops; - struct xgene_ring_ops *ring_ops; - const struct xgene_cle_ops *cle_ops; - struct delayed_work link_work; - u32 port_id; - u8 cpu_bufnum; - u8 eth_bufnum; - u8 bp_bufnum; - u16 ring_num; - u32 mss[4]; - u32 mss_refcnt[4]; - spinlock_t mss_lock; - u8 tx_delay; - u8 rx_delay; - bool mdio_driver; - struct gpio_desc *sfp_rdy; - bool sfp_gpio_en; - u32 pause_autoneg; - bool tx_pause; - bool rx_pause; +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 xgene_cle_ptree_key { - u8 priority; - u16 result_pointer; +struct power_supply_maintenance_charge_table { + int charge_current_max_ua; + int charge_voltage_max_uv; + int charge_safety_timer_minutes; }; -struct xgene_cle_ptree_kn { - u8 node_type; - u8 num_keys; - struct xgene_cle_ptree_key key[32]; +struct power_supply_battery_ocv_table { + int ocv; + int capacity; }; -struct xgene_cle_dbptr { - u8 split_boundary; - u8 mirror_nxtfpsel; - u8 mirror_fpsel; - u16 mirror_dstqid; - u8 drop; - u8 mirror; - u8 hdr_data_split; - u64 hopinfomsbs; - u8 DR; - u8 HR; - u64 hopinfomlsbs; - u16 h0enq_num; - u8 h0fpsel; - u8 nxtfpsel; - u8 fpsel; - u16 dstqid; - u8 cle_priority; - u8 cle_flowgroup; - u8 cle_perflow; - u8 cle_insert_timestamp; - u8 stash; - u8 in; - u8 perprioen; - u8 perflowgroupen; - u8 perflowen; - u8 selhash; - u8 selhdrext; - u8 mirror_nxtfpsel_msb; - u8 mirror_fpsel_msb; - u8 hfpsel_msb; - u8 nxtfpsel_msb; - u8 fpsel_msb; +struct power_supply_resistance_temp_table { + int temp; + int resistance; }; -struct xgene_mac_ops { - void (*init)(struct xgene_enet_pdata *); - void (*reset)(struct xgene_enet_pdata *); - void (*tx_enable)(struct xgene_enet_pdata *); - void (*rx_enable)(struct xgene_enet_pdata *); - void (*tx_disable)(struct xgene_enet_pdata *); - void (*rx_disable)(struct xgene_enet_pdata *); - void (*get_drop_cnt)(struct xgene_enet_pdata *, u32 *, u32 *); - void (*set_speed)(struct xgene_enet_pdata *); - void (*set_mac_addr)(struct xgene_enet_pdata *); - void (*set_framesize)(struct xgene_enet_pdata *, int); - void (*set_mss)(struct xgene_enet_pdata *, u16, u8); - void (*link_state)(struct work_struct *); - void (*enable_tx_pause)(struct xgene_enet_pdata *, bool); - void (*flowctl_rx)(struct xgene_enet_pdata *, bool); - void (*flowctl_tx)(struct xgene_enet_pdata *, bool); +struct power_supply_vbat_ri_table { + int vbat_uv; + int ri_uohm; }; -struct xgene_port_ops { - int (*reset)(struct xgene_enet_pdata *); - void (*clear)(struct xgene_enet_pdata *, struct xgene_enet_desc_ring *); - void (*cle_bypass)(struct xgene_enet_pdata *, u32, u16, u16); - void (*shutdown)(struct xgene_enet_pdata *); +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 xgene_cle_ops { - int (*cle_init)(struct xgene_enet_pdata *); +struct led_pattern; + +struct led_classdev { + const char *name; + unsigned int brightness; + unsigned int max_brightness; + unsigned int color; + 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; + unsigned long delayed_delay_on; + unsigned long delayed_delay_off; + 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; + const char *hw_control_trigger; + int (*hw_control_is_supported)(struct led_classdev *, unsigned long); + int (*hw_control_set)(struct led_classdev *, unsigned long); + int (*hw_control_get)(struct led_classdev *, unsigned long *); + struct device * (*hw_control_get_device)(struct led_classdev *); + struct mutex led_access; }; -struct qdisc_walker { - int stop; - int skip; - int count; - int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *); +struct led_pattern { + u32 delta_t; + int brightness; }; -enum enetc_errata { - ENETC_ERR_VLAN_ISOL = 1, - ENETC_ERR_UCMCSWP = 2, +struct led_hw_trigger_type { + int dummy; }; -enum enetc_active_offloads { - ENETC_F_TX_TSTAMP = 1, - ENETC_F_TX_ONESTEP_SYNC_TSTAMP = 2, - ENETC_F_RX_TSTAMP = 256, - ENETC_F_QBV = 512, - ENETC_F_QCI = 1024, - ENETC_F_QBU = 2048, +struct debugfs_reg32; + +struct debugfs_regset32 { + const struct debugfs_reg32 *regs; + int nregs; + void *base; + struct device *dev; }; -enum enetc_ic_mode { - ENETC_IC_NONE = 0, - ENETC_IC_RX_MANUAL = 1, - ENETC_IC_TX_MANUAL = 2, - ENETC_IC_RX_ADAPTIVE = 4, +struct debugfs_reg32 { + char *name; + unsigned long offset; }; -enum enetc_flags_bit { - ENETC_TX_ONESTEP_TSTAMP_IN_PROGRESS = 0, +enum usb3_link_state { + USB3_LPM_U0 = 0, + USB3_LPM_U1 = 1, + USB3_LPM_U2 = 2, + USB3_LPM_U3 = 3, }; -enum enetc_txbd_flags { - ENETC_TXBD_FLAGS_RES0 = 1, - ENETC_TXBD_FLAGS_TSE = 2, - ENETC_TXBD_FLAGS_W = 4, - ENETC_TXBD_FLAGS_RES3 = 8, - ENETC_TXBD_FLAGS_TXSTART = 16, - ENETC_TXBD_FLAGS_EX = 64, - ENETC_TXBD_FLAGS_F = 128, +enum usb_dev_authorize_policy { + USB_DEVICE_AUTHORIZE_NONE = 0, + USB_DEVICE_AUTHORIZE_ALL = 1, + USB_DEVICE_AUTHORIZE_INTERNAL = 2, }; -enum xdp_buff_flags { - XDP_FLAGS_HAS_FRAGS = 1, - XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, +enum xhci_ring_type { + TYPE_CTRL = 0, + TYPE_ISOC = 1, + TYPE_BULK = 2, + TYPE_INTR = 3, + TYPE_STREAM = 4, + TYPE_COMMAND = 5, + TYPE_EVENT = 6, }; -enum enetc_bdr_type { - TX___2 = 0, - RX___2 = 1, +enum xhci_cancelled_td_status { + TD_DIRTY = 0, + TD_HALTED = 1, + TD_CLEARING_CACHE = 2, + TD_CLEARED = 3, }; -enum dim_state { - DIM_START_MEASURE = 0, - DIM_MEASURE_IN_PROGRESS = 1, - DIM_APPLY_NEW_PROFILE = 2, +struct xhci_input_control_ctx { + __le32 drop_flags; + __le32 add_flags; + __le32 rsvd2[6]; }; -union enetc_tx_bd { - struct { - __le64 addr; - __le16 buf_len; - __le16 frm_len; - union { - struct { - u8 reserved[3]; - u8 flags; - }; - __le32 txstart; - __le32 lstatus; - }; - }; - struct { - __le32 tstamp; - __le16 tpid; - __le16 vid; - u8 reserved[6]; - u8 e_flags; - u8 flags; - } ext; - struct { - __le32 tstamp; - u8 reserved[10]; - u8 status; - u8 flags; - } wb; +struct xhci_slot_ctx { + __le32 dev_info; + __le32 dev_info2; + __le32 tt_info; + __le32 dev_state; + __le32 reserved[4]; }; -struct enetc_hw { - void *reg; - void *port; - void *global; +struct xhci_ep_ctx { + __le32 ep_info; + __le32 ep_info2; + __le64 deq; + __le32 tx_info; + __le32 reserved[3]; }; -struct enetc_cbdr { - void *bd_base; - void *pir; - void *cir; - void *mr; - int bd_count; - int next_to_use; - int next_to_clean; - dma_addr_t bd_dma_base; - struct device *dma_dev; +struct xhci_interval_bw { + unsigned int num_packets; + struct list_head endpoints; + unsigned int overhead[3]; }; -struct enetc_si { - struct pci_dev *pdev; - struct enetc_hw hw; - enum enetc_errata errata; - struct net_device *ndev; - struct enetc_cbdr cbd_ring; - int num_rx_rings; - int num_tx_rings; - int num_fs_entries; - int num_rss; - unsigned short pad; - int hw_features; +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 psfp_cap { - u32 max_streamid; - u32 max_psfp_filter; - u32 max_psfp_gate; - u32 max_psfp_gatelist; - u32 max_psfp_meter; +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 enetc_int_vector; +struct xhci_segment; -struct enetc_bdr; +union xhci_trb; -struct enetc_bdr_resource; +struct xhci_ring { + struct xhci_segment *first_seg; + struct xhci_segment *last_seg; + union xhci_trb *enqueue; + struct xhci_segment *enq_seg; + union xhci_trb *dequeue; + struct xhci_segment *deq_seg; + struct list_head td_list; + u32 cycle_state; + unsigned int stream_id; + unsigned int num_segs; + unsigned int num_trbs_free; + unsigned int bounce_buf_len; + enum xhci_ring_type type; + bool last_td_was_short; + struct xarray *trb_address_map; +}; -struct enetc_cls_rule; +struct xhci_segment { + union xhci_trb *trbs; + struct xhci_segment *next; + unsigned int num; + dma_addr_t dma; + dma_addr_t bounce_dma; + void *bounce_buf; + unsigned int bounce_offs; + unsigned int bounce_len; +}; -struct enetc_ndev_priv { - struct net_device *ndev; - struct device *dev; - struct enetc_si *si; - int bdr_int_num; - struct enetc_int_vector *int_vector[2]; - u16 num_rx_rings; - u16 num_tx_rings; - u16 rx_bd_count; - u16 tx_bd_count; - u16 msg_enable; - u8 preemptible_tcs; - enum enetc_active_offloads active_offloads; - u32 speed; - struct enetc_bdr **xdp_tx_ring; - struct enetc_bdr *tx_ring[16]; - struct enetc_bdr *rx_ring[16]; - const struct enetc_bdr_resource *tx_res; - const struct enetc_bdr_resource *rx_res; - struct enetc_cls_rule *cls_rules; - struct psfp_cap psfp_cap; - unsigned int min_num_stack_tx_queues; - struct phylink *phylink; - int ic_mode; - u32 tx_ictt; - struct bpf_prog *xdp_prog; - unsigned long flags; - struct work_struct tx_onestep_tstamp; - struct sk_buff_head tx_skbs; - struct mutex mm_lock; +struct xhci_link_trb { + __le64 segment_ptr; + __le32 intr_target; + __le32 control; }; -struct dim_stats { - int ppms; - int bpms; - int epms; - int cpms; - int cpe_ratio; +struct xhci_transfer_event { + __le64 buffer; + __le32 transfer_len; + __le32 flags; }; -struct dim_sample { - ktime_t time; - u32 pkt_ctr; - u32 byte_ctr; - u16 event_ctr; - u32 comp_ctr; +struct xhci_event_cmd { + __le64 cmd_trb; + __le32 status; + __le32 flags; }; -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; +struct xhci_generic_trb { + __le32 field[4]; }; -struct enetc_xdp_data { - struct xdp_rxq_info rxq; - struct bpf_prog *prog; - int xdp_tx_in_flight; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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 enetc_ring_stats { - unsigned int packets; - unsigned int bytes; - unsigned int rx_alloc_errs; - unsigned int xdp_drops; - unsigned int xdp_tx; - unsigned int xdp_tx_drops; - unsigned int xdp_redirect; - unsigned int xdp_redirect_failures; - unsigned int recycles; - unsigned int recycle_failures; - unsigned int win_drop; +struct s3_save { + u32 command; + u32 dev_nt; + u64 dcbaa_ptr; + u32 config_reg; }; -struct enetc_tx_swbd; +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 enetc_rx_swbd; +struct xhci_port; -struct enetc_bdr { - struct device *dev; - struct net_device *ndev; - void *bd_base; - union { - void *tpir; - void *rcir; - }; - u16 index; - u16 prio; - int bd_count; - int next_to_use; - int next_to_clean; - union { - struct enetc_tx_swbd *tx_swbd; - struct enetc_rx_swbd *rx_swbd; - }; - union { - void *tcir; - int next_to_alloc; - }; - void *idr; - int buffer_offset; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct enetc_xdp_data xdp; - struct enetc_ring_stats stats; - dma_addr_t bd_dma_base; - u8 tsd_enable; - bool ext_en; - char *tso_headers; - dma_addr_t tso_headers_dma; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; +struct usb_hcd; -struct enetc_int_vector { - void *rbier; - void *tbier_base; - void *ricr1; - unsigned long tx_rings_map; - int count_tx_rings; - u32 rx_ictt; - u16 comp_cnt; - bool rx_dim_en; - bool rx_napi_work; - long: 64; - long: 64; - struct napi_struct napi; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct dim rx_dim; - char name[24]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct enetc_bdr rx_ring; - struct enetc_bdr tx_ring[0]; +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 enetc_tx_swbd { - union { - struct sk_buff *skb; - struct xdp_frame *xdp_frame; - }; - dma_addr_t dma; - struct page *page; - u16 page_offset; - u16 len; - enum dma_data_direction dir; - u8 is_dma_page: 1; - u8 check_wb: 1; - u8 do_twostep_tstamp: 1; - u8 is_eof: 1; - u8 is_xdp_tx: 1; - u8 is_xdp_redirect: 1; - u8 qbv_en: 1; -}; +struct xhci_cap_regs; -struct enetc_rx_swbd { - dma_addr_t dma; - struct page *page; - u16 page_offset; - enum dma_data_direction dir; - u16 len; -}; +struct xhci_op_regs; -struct enetc_bdr_resource { - struct device *dev; - size_t bd_count; - size_t bd_size; - void *bd_base; - dma_addr_t bd_dma_base; - union { - struct enetc_tx_swbd *tx_swbd; - struct enetc_rx_swbd *rx_swbd; - }; - char *tso_headers; - dma_addr_t tso_headers_dma; -}; +struct xhci_run_regs; -struct enetc_cls_rule { - struct ethtool_rx_flow_spec fs; - int used; -}; +struct xhci_doorbell_array; -union enetc_rx_bd { - struct { - __le64 addr; - u8 reserved[8]; - } w; - struct { - __le16 inet_csum; - __le16 parse_summary; - __le32 rss_hash; - __le16 buf_len; - __le16 vlan_opt; - union { - struct { - __le16 flags; - __le16 error; - }; - __le32 lstatus; - }; - } r; - struct { - __le32 tstamp; - u8 reserved[12]; - } ext; -}; +struct xhci_device_context_array; -struct clock_identity { - u8 id[8]; -}; +struct xhci_interrupter; -struct port_identity { - struct clock_identity clock_identity; - __be16 port_number; -}; +struct xhci_command; -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 xhci_scratchpad; -struct tso_t { - int next_frag_idx; - int size; - void *data; - u16 ip_id; - u8 tlen; - bool ipv6; - u32 tcp_seq; -}; +struct xhci_virt_device; -struct dim_cq_moder { - u16 usec; - u16 pkts; - u16 comps; - u8 cq_period_mode; -}; +struct xhci_root_port_bw_info; -struct tc_mqprio_qopt_offload { - struct tc_mqprio_qopt qopt; - struct netlink_ext_ack *extack; - u16 mode; - u16 shaper; - u32 flags; - u64 min_rate[16]; - u64 max_rate[16]; - unsigned long preemptible_tcs; -}; +struct dma_pool; -struct igb_reg_test { - u16 reg; - u16 reg_offset; - u16 array_len; - u16 test_type; - u32 mask; - u32 write; -}; +struct xhci_port_cap; -struct igb_stats { - char stat_string[32]; - int sizeof_stat; - int stat_offset; +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]; }; -enum igb_tx_buf_type { - IGB_TYPE_SKB = 0, - IGB_TYPE_XDP = 1, +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; }; -enum e1000_mac_type___2 { - e1000_undefined = 0, - e1000_82575 = 1, - e1000_82576 = 2, - e1000_82580 = 3, - e1000_i350 = 4, - e1000_i354 = 5, - e1000_i210 = 6, - e1000_i211 = 7, - e1000_num_macs = 8, -}; +struct urb; -enum e1000_phy_type___2 { - e1000_phy_unknown___2 = 0, - e1000_phy_none___2 = 1, - e1000_phy_m88___2 = 2, - e1000_phy_igp___2 = 3, - e1000_phy_igp_2___2 = 4, - e1000_phy_gg82563___2 = 5, - e1000_phy_igp_3___2 = 6, - e1000_phy_ife___2 = 7, - e1000_phy_82580 = 8, - e1000_phy_i210 = 9, - e1000_phy_bcm54616 = 10, -}; +struct hc_driver; -enum e1000_nvm_type___2 { - e1000_nvm_unknown___2 = 0, - e1000_nvm_none___2 = 1, - e1000_nvm_eeprom_spi___2 = 2, - e1000_nvm_flash_hw___2 = 3, - e1000_nvm_invm = 4, - e1000_nvm_flash_sw___2 = 5, +struct usb_phy_roothub; + +struct gen_pool; + +struct usb_hcd { + struct usb_bus self; + struct kref kref; + const char *product_desc; + int speed; + char irq_descr[24]; + struct timer_list rh_timer; + struct urb *status_urb; + struct work_struct wakeup_work; + struct work_struct died_work; + const struct hc_driver *driver; + struct usb_phy *usb_phy; + struct usb_phy_roothub *phy_roothub; + unsigned long flags; + enum usb_dev_authorize_policy dev_policy; + unsigned int rh_registered: 1; + unsigned int rh_pollable: 1; + unsigned int msix_enabled: 1; + unsigned int msi_enabled: 1; + unsigned int skip_phy_initialization: 1; + unsigned int uses_new_polling: 1; + unsigned int has_tt: 1; + unsigned int amd_resume_bug: 1; + unsigned int can_do_streams: 1; + unsigned int tpl_support: 1; + unsigned int cant_recv_wakeups: 1; + unsigned int irq; + void *regs; + resource_size_t rsrc_start; + resource_size_t rsrc_len; + unsigned int power_budget; + struct giveback_urb_bh high_prio_bh; + struct giveback_urb_bh low_prio_bh; + struct mutex *address0_mutex; + struct mutex *bandwidth_mutex; + struct usb_hcd *shared_hcd; + struct usb_hcd *primary_hcd; + struct dma_pool *pool[4]; + int state; + struct gen_pool *localmem_pool; + unsigned long hcd_priv[0]; }; -enum e1000_bus_type { - e1000_bus_type_unknown = 0, - e1000_bus_type_pci = 1, - e1000_bus_type_pcix = 2, - e1000_bus_type_pci_express = 3, - e1000_bus_type_reserved = 4, +typedef void (*usb_complete_t)(struct urb *); + +struct usb_iso_packet_descriptor { + unsigned int offset; + unsigned int length; + unsigned int actual_length; + int status; }; -enum e1000_bus_speed { - e1000_bus_speed_unknown = 0, - e1000_bus_speed_33 = 1, - e1000_bus_speed_66 = 2, - e1000_bus_speed_100 = 3, - e1000_bus_speed_120 = 4, - e1000_bus_speed_133 = 5, - e1000_bus_speed_2500 = 6, - e1000_bus_speed_5000 = 7, - e1000_bus_speed_reserved = 8, +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]; }; -enum igb_filter_match_flags { - IGB_FILTER_FLAG_ETHER_TYPE = 1, - IGB_FILTER_FLAG_VLAN_TCI = 2, - IGB_FILTER_FLAG_SRC_MAC_ADDR = 4, - IGB_FILTER_FLAG_DST_MAC_ADDR = 8, +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 e1000_state_t___2 { - __IGB_TESTING = 0, - __IGB_RESETTING = 1, - __IGB_DOWN = 2, - __IGB_PTP_TX_IN_PROGRESS = 3, +struct hc_driver { + const char *description; + const char *product_desc; + size_t hcd_priv_size; + irqreturn_t (*irq)(struct usb_hcd *); + int flags; + int (*reset)(struct usb_hcd *); + int (*start)(struct usb_hcd *); + int (*pci_suspend)(struct usb_hcd *, bool); + int (*pci_resume)(struct usb_hcd *, pm_message_t); + int (*pci_poweroff_late)(struct usb_hcd *, bool); + void (*stop)(struct usb_hcd *); + void (*shutdown)(struct usb_hcd *); + int (*get_frame_number)(struct usb_hcd *); + int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t); + int (*urb_dequeue)(struct usb_hcd *, struct urb *, int); + int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t); + void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *); + void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *); + void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *); + int (*hub_status_data)(struct usb_hcd *, char *); + int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); + int (*bus_suspend)(struct usb_hcd *); + int (*bus_resume)(struct usb_hcd *); + int (*start_port_reset)(struct usb_hcd *, unsigned int); + unsigned long (*get_resuming_ports)(struct usb_hcd *); + void (*relinquish_port)(struct usb_hcd *, int); + int (*port_handed_over)(struct usb_hcd *, int); + void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *); + int (*alloc_dev)(struct usb_hcd *, struct usb_device *); + void (*free_dev)(struct usb_hcd *, struct usb_device *); + int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t); + int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t); + int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); + void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); + int (*address_device)(struct usb_hcd *, struct usb_device *); + 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); }; -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, +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; }; -enum igb_diagnostics_results { - TEST_REG = 0, - TEST_EEP = 1, - TEST_IRQ = 2, - TEST_LOOP = 3, - TEST_LINK = 4, +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]; }; -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, +struct xhci_intr_reg { + __le32 irq_pending; + __le32 irq_control; + __le32 erst_size; + __le32 rsvd; + __le64 erst_base; + __le64 erst_dequeue; }; -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 xhci_run_regs { + __le32 microframe_index; + __le32 rsvd[7]; + struct xhci_intr_reg ir_set[128]; }; -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, +struct xhci_doorbell_array { + __le32 doorbell[256]; }; -enum ethtool_link_mode_bit_indices { - ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0, - ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1, - ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2, - ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3, - ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4, - ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5, - ETHTOOL_LINK_MODE_Autoneg_BIT = 6, - ETHTOOL_LINK_MODE_TP_BIT = 7, - ETHTOOL_LINK_MODE_AUI_BIT = 8, - ETHTOOL_LINK_MODE_MII_BIT = 9, - ETHTOOL_LINK_MODE_FIBRE_BIT = 10, - ETHTOOL_LINK_MODE_BNC_BIT = 11, - ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12, - ETHTOOL_LINK_MODE_Pause_BIT = 13, - ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14, - ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15, - ETHTOOL_LINK_MODE_Backplane_BIT = 16, - ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17, - ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18, - ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19, - ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20, - ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21, - ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22, - ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23, - ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24, - ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25, - ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26, - ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27, - ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28, - ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29, - ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30, - ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31, - ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32, - ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33, - ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34, - ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35, - ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36, - ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37, - ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38, - ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39, - ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40, - ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41, - ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42, - ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43, - ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44, - ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45, - ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46, - ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, - ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, - ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49, - ETHTOOL_LINK_MODE_FEC_RS_BIT = 50, - ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51, - ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52, - ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53, - ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54, - ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55, - ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56, - ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57, - ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58, - ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59, - ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60, - ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61, - ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62, - ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63, - ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64, - ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65, - ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, - ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, - ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, - ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69, - ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70, - ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, - ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, - ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, - ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74, - ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75, - ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76, - ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77, - ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78, - ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79, - ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80, - ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81, - ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82, - ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83, - ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84, - ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85, - ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86, - ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87, - ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88, - ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89, - ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, - ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, - ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92, - ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93, - ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94, - ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95, - ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96, - ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97, - ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98, - ETHTOOL_LINK_MODE_10baseT1S_Full_BIT = 99, - ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100, - ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101, - __ETHTOOL_LINK_MODE_MASK_NBITS = 102, +struct xhci_device_context_array { + __le64 dev_context_ptrs[256]; + dma_addr_t dma; }; -struct e1000_hw___2; +struct xhci_erst_entry; -struct e1000_mac_operations___2 { - s32 (*check_for_link)(struct e1000_hw___2 *); - s32 (*reset_hw)(struct e1000_hw___2 *); - s32 (*init_hw)(struct e1000_hw___2 *); - bool (*check_mng_mode)(struct e1000_hw___2 *); - s32 (*setup_physical_interface)(struct e1000_hw___2 *); - void (*rar_set)(struct e1000_hw___2 *, u8 *, u32); - s32 (*read_mac_addr)(struct e1000_hw___2 *); - s32 (*get_speed_and_duplex)(struct e1000_hw___2 *, u16 *, u16 *); - s32 (*acquire_swfw_sync)(struct e1000_hw___2 *, u16); - void (*release_swfw_sync)(struct e1000_hw___2 *, u16); - s32 (*get_thermal_sensor_data)(struct e1000_hw___2 *); - s32 (*init_thermal_sensor_thresh)(struct e1000_hw___2 *); - void (*write_vfta)(struct e1000_hw___2 *, u32, u32); +struct xhci_erst { + struct xhci_erst_entry *entries; + unsigned int num_entries; + dma_addr_t erst_dma_addr; + unsigned int erst_size; }; -struct e1000_thermal_diode_data { - u8 location; - u8 temp; - u8 caution_thresh; - u8 max_op_thresh; +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; }; -struct e1000_thermal_sensor_data { - struct e1000_thermal_diode_data sensor[3]; +struct xhci_erst_entry { + __le64 seg_addr; + __le32 seg_size; + __le32 rsvd; }; -struct e1000_mac_info___2 { - struct e1000_mac_operations___2 ops; - u8 addr[6]; - u8 perm_addr[6]; - enum e1000_mac_type___2 type; - u32 ledctl_default; - u32 ledctl_mode1; - u32 ledctl_mode2; - u32 mc_filter_type; - u32 txcw; - u16 mta_reg_count; - u16 uta_reg_count; - u32 mta_shadow[128]; - u16 rar_entry_count; - u8 forced_speed_duplex; - bool adaptive_ifs; - bool arc_subsystem_valid; - bool asf_firmware_present; - bool autoneg; - bool autoneg_failed; - bool disable_hw_init_bits; - bool get_link_status; - bool ifs_params_forced; - bool in_ifs_mode; - bool report_tx_early; - bool serdes_has_link; - bool tx_pkt_filtering; - struct e1000_thermal_sensor_data thermal_sensor_data; -}; +struct xhci_container_ctx; -struct e1000_fc_info___2 { - u32 high_water; - u32 low_water; - u16 pause_time; - bool send_xon; - bool strict_ieee; - enum e1000_fc_mode current_mode; - enum e1000_fc_mode requested_mode; +struct 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 e1000_phy_operations___2 { - s32 (*acquire)(struct e1000_hw___2 *); - s32 (*check_polarity)(struct e1000_hw___2 *); - s32 (*check_reset_block)(struct e1000_hw___2 *); - s32 (*force_speed_duplex)(struct e1000_hw___2 *); - s32 (*get_cfg_done)(struct e1000_hw___2 *); - s32 (*get_cable_length)(struct e1000_hw___2 *); - s32 (*get_phy_info)(struct e1000_hw___2 *); - s32 (*read_reg)(struct e1000_hw___2 *, u32, u16 *); - void (*release)(struct e1000_hw___2 *); - s32 (*reset)(struct e1000_hw___2 *); - s32 (*set_d0_lplu_state)(struct e1000_hw___2 *, bool); - s32 (*set_d3_lplu_state)(struct e1000_hw___2 *, bool); - s32 (*write_reg)(struct e1000_hw___2 *, u32, u16); - s32 (*read_i2c_byte)(struct e1000_hw___2 *, u8, u8, u8 *); - s32 (*write_i2c_byte)(struct e1000_hw___2 *, u8, u8, u8); +struct xhci_container_ctx { + unsigned int type; + int size; + u8 *bytes; + dma_addr_t dma; }; -struct e1000_phy_info___2 { - struct e1000_phy_operations___2 ops; - enum e1000_phy_type___2 type; - enum e1000_1000t_rx_status local_rx; - enum e1000_1000t_rx_status remote_rx; - enum e1000_ms_type ms_type; - enum e1000_ms_type original_ms_type; - enum e1000_rev_polarity cable_polarity; - enum e1000_smart_speed smart_speed; - u32 addr; - u32 id; - u32 reset_delay_us; - u32 revision; - enum e1000_media_type media_type; - u16 autoneg_advertised; - u16 autoneg_mask; - u16 cable_length; - u16 max_cable_length; - u16 min_cable_length; - u16 pair_length[4]; - u8 mdix; - bool disable_polarity_correction; - bool is_mdix; - bool polarity_correction; - bool reset_disable; - bool speed_downgraded; - bool autoneg_wait_to_complete; +struct xhci_scratchpad { + u64 *sp_array; + dma_addr_t sp_dma; + void **sp_buffers; }; -struct e1000_nvm_operations___2 { - s32 (*acquire)(struct e1000_hw___2 *); - s32 (*read)(struct e1000_hw___2 *, u16, u16, u16 *); - void (*release)(struct e1000_hw___2 *); - s32 (*write)(struct e1000_hw___2 *, u16, u16, u16 *); - s32 (*update)(struct e1000_hw___2 *); - s32 (*validate)(struct e1000_hw___2 *); - s32 (*valid_led_default)(struct e1000_hw___2 *, u16 *); +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 e1000_nvm_info___2 { - struct e1000_nvm_operations___2 ops; - enum e1000_nvm_type___2 type; - enum e1000_nvm_override override; - u32 flash_bank_size; - u32 flash_base_addr; - u16 word_size; - u16 delay_usec; - u16 address_bits; - u16 opcode_bits; - u16 page_size; -}; +struct xhci_stream_info; -struct e1000_bus_info___2 { - enum e1000_bus_type type; - enum e1000_bus_speed speed; - enum e1000_bus_width width; - u32 snoop; - u16 func; - u16 pci_cmd_word; +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 e1000_mbx_operations { - s32 (*init_params)(struct e1000_hw___2 *); - s32 (*read)(struct e1000_hw___2 *, u32 *, u16, u16, bool); - s32 (*write)(struct e1000_hw___2 *, u32 *, u16, u16); - s32 (*read_posted)(struct e1000_hw___2 *, u32 *, u16, u16); - s32 (*write_posted)(struct e1000_hw___2 *, u32 *, u16, u16); - s32 (*check_for_msg)(struct e1000_hw___2 *, u16); - s32 (*check_for_ack)(struct e1000_hw___2 *, u16); - s32 (*check_for_rst)(struct e1000_hw___2 *, u16); - s32 (*unlock)(struct e1000_hw___2 *, u16); +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 e1000_mbx_stats { - u32 msgs_tx; - u32 msgs_rx; - u32 acks; - u32 reqs; - u32 rsts; -}; +struct xhci_stream_ctx; -struct e1000_mbx_info { - struct e1000_mbx_operations ops; - struct e1000_mbx_stats stats; - u32 timeout; - u32 usec_delay; - u16 size; +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 e1000_sfp_flags { - u8 e1000_base_sx: 1; - u8 e1000_base_lx: 1; - u8 e1000_base_cx: 1; - u8 e1000_base_t: 1; - u8 e100_base_lx: 1; - u8 e100_base_fx: 1; - u8 e10_base_bx10: 1; - u8 e10_base_px: 1; +struct xhci_stream_ctx { + __le64 stream_ring; + __le32 reserved[2]; }; -struct e1000_dev_spec_82575 { - bool sgmii_active; - bool global_device_reset; - bool eee_disable; - bool clear_semaphore_once; - struct e1000_sfp_flags eth_flags; - bool module_plugged; - u8 media_port; - bool media_changed; - bool mas_capable; +struct xhci_root_port_bw_info { + struct list_head tts; + unsigned int num_active_tts; + struct xhci_interval_bw_table bw_table; }; -struct e1000_hw___2 { - void *back; - u8 *hw_addr; - u8 *flash_address; - unsigned long io_base; - struct e1000_mac_info___2 mac; - struct e1000_fc_info___2 fc; - struct e1000_phy_info___2 phy; - struct e1000_nvm_info___2 nvm; - struct e1000_bus_info___2 bus; - struct e1000_mbx_info mbx; - struct e1000_host_mng_dhcp_cookie mng_cookie; - union { - struct e1000_dev_spec_82575 _82575; - } dev_spec; - u16 device_id; - u16 subsystem_vendor_id; - u16 subsystem_device_id; - u16 vendor_id; - u8 revision_id; +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 e1000_hw_stats___2 { - u64 crcerrs; - u64 algnerrc; - u64 symerrs; - u64 rxerrc; - u64 mpc; - u64 scc; - u64 ecol; - u64 mcc; - u64 latecol; - u64 colc; - u64 dc; - u64 tncrs; - u64 sec; - u64 cexterr; - u64 rlec; - u64 xonrxc; - u64 xontxc; - u64 xoffrxc; - u64 xofftxc; - u64 fcruc; - u64 prc64; - u64 prc127; - u64 prc255; - u64 prc511; - u64 prc1023; - u64 prc1522; - u64 gprc; - u64 bprc; - u64 mprc; - u64 gptc; - u64 gorc; - u64 gotc; - u64 rnbc; - u64 ruc; - u64 rfc; - u64 roc; - u64 rjc; - u64 mgprc; - u64 mgpdc; - u64 mgptc; - u64 tor; - u64 tot; - u64 tpr; - u64 tpt; - u64 ptc64; - u64 ptc127; - u64 ptc255; - u64 ptc511; - u64 ptc1023; - u64 ptc1522; - u64 mptc; - u64 bptc; - u64 tsctc; - u64 tsctfc; - u64 iac; - u64 icrxptc; - u64 icrxatc; - u64 ictxptc; - u64 ictxatc; - u64 ictxqec; - u64 ictxqmtc; - u64 icrxdmtc; - u64 icrxoc; - u64 cbtmpc; - u64 htdpmc; - u64 cbrdpc; - u64 cbrmpc; - u64 rpthc; - u64 hgptc; - u64 htcbdpc; - u64 hgorc; - u64 hgotc; - u64 lenerrs; - u64 scvpc; - u64 hrmpc; - u64 doosync; - u64 o2bgptc; - u64 o2bspc; - u64 b2ospc; - u64 b2ogprc; +struct xhci_port_cap { + u32 *psi; + u8 psi_count; + u8 psi_uid_count; + u8 maj_rev; + u8 min_rev; }; -struct igb_tx_queue_stats { - u64 packets; - u64 bytes; - u64 restart_queue; - u64 restart_queue2; +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 igb_rx_queue_stats { - u64 packets; - u64 bytes; - u64 drops; - u64 csum_err; - u64 alloc_failed; +struct urb_priv { + int num_tds; + int num_tds_done; + struct xhci_td td[0]; }; -struct igb_q_vector; - -struct igb_tx_buffer; - -struct igb_rx_buffer; - -struct igb_ring { - struct igb_q_vector *q_vector; - struct net_device *netdev; - struct bpf_prog *xdp_prog; - struct device *dev; - union { - struct igb_tx_buffer *tx_buffer_info; - struct igb_rx_buffer *rx_buffer_info; - }; - void *desc; - unsigned long flags; - void *tail; - dma_addr_t dma; +struct musb_register_map { + char *name; + unsigned int offset; unsigned int size; - u16 count; - u8 queue_index; - u8 reg_idx; - bool launchtime_enable; - bool cbs_enable; - s32 idleslope; - s32 sendslope; - s32 hicredit; - s32 locredit; - u16 next_to_clean; - u16 next_to_use; - u16 next_to_alloc; - union { - struct { - struct igb_tx_queue_stats tx_stats; - struct u64_stats_sync tx_syncp; - struct u64_stats_sync tx_syncp2; - }; - struct { - struct sk_buff *skb; - struct igb_rx_queue_stats rx_stats; - struct u64_stats_sync rx_syncp; - }; - }; - long: 64; - long: 64; - long: 64; - long: 64; - struct xdp_rxq_info xdp_rxq; }; -struct 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; +enum dma_channel_status { + MUSB_DMA_STATUS_UNKNOWN = 0, + MUSB_DMA_STATUS_FREE = 1, + MUSB_DMA_STATUS_BUSY = 2, + MUSB_DMA_STATUS_BUS_ABORT = 3, + MUSB_DMA_STATUS_CORE_ABORT = 4, }; -struct e1000_info___2 { - s32 (*get_invariants)(struct e1000_hw___2 *); - struct e1000_mac_operations___2 *mac_ops; - const struct e1000_phy_operations___2 *phy_ops; - struct e1000_nvm_operations___2 *nvm_ops; +enum musb_vbus_id_status { + MUSB_UNKNOWN = 0, + MUSB_ID_GROUND = 1, + MUSB_ID_FLOAT = 2, + MUSB_VBUS_VALID = 3, + MUSB_VBUS_OFF = 4, }; -struct vf_mac_filter { - struct list_head l; - int vf; - bool free; - u8 vf_mac[6]; +enum musb_h_ep0_state { + MUSB_EP0_IDLE = 0, + MUSB_EP0_START = 1, + MUSB_EP0_IN = 2, + MUSB_EP0_OUT = 3, + MUSB_EP0_STATUS = 4, +} __attribute__((mode(byte))); + +enum musb_mode { + MUSB_UNDEFINED = 0, + MUSB_HOST = 1, + MUSB_PERIPHERAL = 2, + MUSB_OTG = 3, }; -struct vf_data_storage; +enum musb_g_ep0_state { + MUSB_EP0_STAGE_IDLE = 0, + MUSB_EP0_STAGE_SETUP = 1, + MUSB_EP0_STAGE_TX = 2, + MUSB_EP0_STAGE_RX = 3, + MUSB_EP0_STAGE_STATUSIN = 4, + MUSB_EP0_STAGE_STATUSOUT = 5, + MUSB_EP0_STAGE_ACKWAIT = 6, +} __attribute__((mode(byte))); -struct hwmon_buff; +enum musb_fifo_style { + FIFO_RXTX = 0, + FIFO_TX = 1, + FIFO_RX = 2, +} __attribute__((mode(byte))); -struct igb_mac_addr; +enum musb_buf_mode { + BUF_SINGLE = 0, + BUF_DOUBLE = 1, +} __attribute__((mode(byte))); -struct igb_adapter { - unsigned long active_vlans[64]; - struct net_device *netdev; - struct bpf_prog *xdp_prog; - unsigned long state; - unsigned int flags; - unsigned int num_q_vectors; - struct msix_entry msix_entries[10]; - u32 rx_itr_setting; - u32 tx_itr_setting; - u16 tx_itr; - u16 rx_itr; - u16 tx_work_limit; - u32 tx_timeout_count; - int num_tx_queues; - struct igb_ring *tx_ring[16]; - int num_rx_queues; - struct igb_ring *rx_ring[16]; - u32 max_frame_size; - u32 min_frame_size; - struct timer_list watchdog_timer; - struct timer_list phy_info_timer; - u16 mng_vlan_id; - u32 bd_number; - u32 wol; - u32 en_mng_pt; - u16 link_speed; - u16 link_duplex; - u8 *io_addr; - struct work_struct reset_task; - struct work_struct watchdog_task; - bool fc_autoneg; - u8 tx_timeout_factor; - struct timer_list blink_timer; - unsigned long led_status; - struct pci_dev *pdev; - spinlock_t stats64_lock; - struct rtnl_link_stats64 stats64; - struct e1000_hw___2 hw; - struct e1000_hw_stats___2 stats; - struct e1000_phy_info___2 phy_info; - u32 test_icr; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct igb_ring test_tx_ring; - struct igb_ring test_rx_ring; - int msg_enable; - struct igb_q_vector *q_vector[8]; - u32 eims_enable_mask; - u32 eims_other; - u16 tx_ring_count; - u16 rx_ring_count; - unsigned int vfs_allocated_count; - struct vf_data_storage *vf_data; - int vf_rate_link_speed; - u32 rss_queues; - u32 wvbr; - u32 *shadow_vfta; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_caps; - struct delayed_work ptp_overflow_work; - struct work_struct ptp_tx_work; - struct sk_buff *ptp_tx_skb; - struct hwtstamp_config tstamp_config; - unsigned long ptp_tx_start; - unsigned long last_rx_ptp_check; - unsigned long last_rx_timestamp; - unsigned int ptp_flags; - spinlock_t tmreg_lock; - struct cyclecounter cc; - struct timecounter tc; - u32 tx_hwtstamp_timeouts; - u32 tx_hwtstamp_skipped; - u32 rx_hwtstamp_cleared; - bool pps_sys_wrap_on; - struct ptp_pin_desc sdp_config[4]; - struct { - struct timespec64 start; - struct timespec64 period; - } perout[2]; - char fw_version[32]; - struct hwmon_buff *igb_hwmon_buff; - bool ets; - struct i2c_algo_bit_data i2c_algo; - struct i2c_adapter i2c_adap; - struct i2c_client *i2c_client; - u32 rss_indir_tbl_init; - u8 rss_indir_tbl[128]; - unsigned long link_check_timeout; - int copper_tries; - struct e1000_info___2 ei; - u16 eee_advert; - struct hlist_head nfc_filter_list; - struct hlist_head cls_flower_list; - unsigned int nfc_filter_count; - spinlock_t nfc_lock; - bool etype_bitmap[3]; - struct igb_mac_addr *mac_table; - struct vf_mac_filter vf_macs; - struct vf_mac_filter *vf_mac_list; - spinlock_t vfs_lock; - long: 64; - long: 64; - long: 64; -}; +struct musb_hw_ep; -struct igb_ring_container { - struct igb_ring *ring; - unsigned int total_bytes; - unsigned int total_packets; - u16 work_limit; - u8 count; - u8 itr; -}; +struct musb_qh; -struct igb_q_vector { - struct igb_adapter *adapter; - int cpu; - u32 eims_value; - u16 itr_val; - u8 set_itr; - void *itr_register; - struct igb_ring_container rx; - struct igb_ring_container tx; - struct napi_struct napi; - struct callback_head rcu; - char name[25]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct igb_ring ring[0]; +struct musb_io { + u32 (*ep_offset)(u8, u16); + void (*ep_select)(void *, u8); + u32 (*fifo_offset)(u8); + void (*read_fifo)(struct musb_hw_ep *, u16, u8 *); + void (*write_fifo)(struct musb_hw_ep *, u16, const u8 *); + u32 (*busctl_offset)(u8, u16); + u16 (*get_toggle)(struct musb_qh *, int); + u16 (*set_toggle)(struct musb_qh *, int, struct urb *); }; -union e1000_adv_tx_desc; - -struct igb_tx_buffer { - union e1000_adv_tx_desc *next_to_watch; - unsigned long time_stamp; - enum igb_tx_buf_type type; - union { - struct sk_buff *skb; - struct xdp_frame *xdpf; - }; - unsigned int bytecount; - u16 gso_segs; - __be16 protocol; - dma_addr_t dma; - __u32 len; - u32 tx_flags; +struct musb_csr_regs { + u16 txmaxp; + u16 txcsr; + u16 rxmaxp; + u16 rxcsr; + u16 rxfifoadd; + u16 txfifoadd; + u8 txtype; + u8 txinterval; + u8 rxtype; + u8 rxinterval; + u8 rxfifosz; + u8 txfifosz; + u8 txfunaddr; + u8 txhubaddr; + u8 txhubport; + u8 rxfunaddr; + u8 rxhubaddr; + u8 rxhubport; }; -union e1000_adv_tx_desc { - struct { - __le64 buffer_addr; - __le32 cmd_type_len; - __le32 olinfo_status; - } read; - struct { - __le64 rsvd; - __le32 nxtseq_seed; - __le32 status; - } wb; +struct musb_context_registers { + u8 power; + u8 intrusbe; + u16 frame; + u8 index; + u8 testmode; + u8 devctl; + u8 busctl; + u8 misc; + u32 otg_interfsel; + struct musb_csr_regs index_regs[16]; }; -struct igb_rx_buffer { - dma_addr_t dma; - struct page *page; - __u32 page_offset; - __u16 pagecnt_bias; -}; +struct musb; -struct vf_data_storage { - unsigned char vf_mac_addresses[6]; - u16 vf_mc_hashes[30]; - u16 num_vf_mc_hashes; - u32 flags; - unsigned long last_nack; - u16 pf_vlan; - u16 pf_qos; - u16 tx_rate; - bool spoofchk_enabled; - bool trusted; -}; +struct dma_channel; -struct hwmon_attr { - struct device_attribute dev_attr; - struct e1000_hw___2 *hw; - struct e1000_thermal_diode_data *sensor; +struct musb_ep { + struct usb_ep end_point; char name[12]; + struct musb_hw_ep *hw_ep; + struct musb *musb; + u8 current_epnum; + u8 type; + u8 is_in; + u16 packet_sz; + const struct usb_endpoint_descriptor *desc; + struct dma_channel *dma; + struct list_head req_list; + u8 wedged; + u8 busy; + u8 hb_mult; }; -struct hwmon_buff { - struct attribute_group group; - const struct attribute_group *groups[2]; - struct attribute *attrs[13]; - struct hwmon_attr hwmon_list[12]; - unsigned int n_hwmon; +struct musb_hw_ep { + struct musb *musb; + void *fifo; + void *regs; + u8 epnum; + bool is_shared_fifo; + bool tx_double_buffered; + bool rx_double_buffered; + u16 max_packet_sz_tx; + u16 max_packet_sz_rx; + struct dma_channel *tx_channel; + struct dma_channel *rx_channel; + struct musb_qh *in_qh; + struct musb_qh *out_qh; + u8 rx_reinit; + u8 tx_reinit; + struct musb_ep ep_in; + struct musb_ep ep_out; }; -struct igb_mac_addr { - u8 addr[6]; - u8 queue; - u8 state; -}; +struct musb_platform_ops; -union e1000_adv_rx_desc { - struct { - __le64 pkt_addr; - __le64 hdr_addr; - } read; - struct { - struct { - struct { - __le16 pkt_info; - __le16 hdr_info; - } lo_dword; - union { - __le32 rss; - struct { - __le16 ip_id; - __le16 csum; - } csum_ip; - } hi_dword; - } lower; - struct { - __le32 status_error; - __le16 length; - __le16 vlan; - } upper; - } wb; -}; +struct dma_controller; -struct igb_nfc_input { - u8 match_flags; - __be16 etype; - __be16 vlan_tci; - u8 src_addr[6]; - u8 dst_addr[6]; -}; +struct musb_hdrc_config; -struct igb_nfc_filter { - struct hlist_node nfc_node; - struct igb_nfc_input filter; - unsigned long cookie; - u16 etype_reg_index; - u16 sw_idx; - u16 action; +struct musb { + spinlock_t lock; + spinlock_t list_lock; + struct musb_io io; + const struct musb_platform_ops *ops; + struct musb_context_registers context; + irqreturn_t (*isr)(int, void *); + struct delayed_work irq_work; + struct delayed_work deassert_reset_work; + struct delayed_work finish_resume_work; + struct delayed_work gadget_work; + u16 hwvers; + u16 intrrxe; + u16 intrtxe; + u32 port1_status; + unsigned long rh_timer; + enum musb_h_ep0_state ep0_stage; + struct musb_hw_ep *bulk_ep; + struct list_head control; + struct list_head in_bulk; + struct list_head out_bulk; + struct list_head pending_list; + struct timer_list otg_timer; + struct timer_list dev_timer; + struct notifier_block nb; + struct dma_controller *dma_controller; + struct device *controller; + void *ctrl_base; + void *mregs; + u8 int_usb; + u16 int_rx; + u16 int_tx; + struct usb_phy *xceiv; + struct phy *phy; + enum usb_otg_state otg_state; + int nIrq; + unsigned int irq_wake: 1; + struct musb_hw_ep endpoints[16]; + u16 vbuserr_retry; + u16 epmask; + u8 nr_endpoints; + u8 min_power; + enum musb_mode port_mode; + bool session; + unsigned long quirk_retries; + bool is_host; + int a_wait_bcon; + unsigned long idle_timeout; + unsigned int is_initialized: 1; + unsigned int is_runtime_suspended: 1; + unsigned int is_active: 1; + unsigned int is_multipoint: 1; + unsigned int hb_iso_rx: 1; + unsigned int hb_iso_tx: 1; + unsigned int dyn_fifo: 1; + unsigned int bulk_split: 1; + unsigned int bulk_combine: 1; + unsigned int is_suspended: 1; + unsigned int may_wakeup: 1; + unsigned int is_self_powered: 1; + unsigned int is_bus_powered: 1; + unsigned int set_address: 1; + unsigned int test_mode: 1; + unsigned int softconnect: 1; + unsigned int flush_irq_work: 1; + u8 address; + u8 test_mode_nr; + u16 ackpend; + enum musb_g_ep0_state ep0_state; + struct usb_gadget g; + struct usb_gadget_driver *gadget_driver; + struct usb_hcd *hcd; + const struct musb_hdrc_config *config; + int xceiv_old_state; + struct dentry *debugfs_root; }; -enum vfio_group_type { - VFIO_IOMMU = 0, - VFIO_EMULATED_IOMMU = 1, - VFIO_NO_IOMMU = 2, +struct dma_channel { + void *private_data; + size_t max_len; + size_t actual_len; + enum dma_channel_status status; + bool desired_mode; + bool rx_packet_done; }; -struct vfio_device; - -struct vfio_iommu_driver_ops { - char *name; - struct module *owner; - void * (*open)(unsigned long); - void (*release)(void *); - long (*ioctl)(void *, unsigned int, unsigned long); - int (*attach_group)(void *, struct iommu_group *, enum vfio_group_type); - void (*detach_group)(void *, struct iommu_group *); - int (*pin_pages)(void *, struct iommu_group *, dma_addr_t, int, int, struct page **); - void (*unpin_pages)(void *, dma_addr_t, int); - void (*register_device)(void *, struct vfio_device *); - void (*unregister_device)(void *, struct vfio_device *); - int (*dma_rw)(void *, dma_addr_t, void *, size_t, bool); - struct iommu_domain * (*group_iommu_domain)(void *, struct iommu_group *); +struct sg_page_iter { + struct scatterlist *sg; + unsigned int sg_pgoffset; + unsigned int __nents; + int __pg_advance; }; -struct iommufd_access; - -struct vfio_device_ops; - -struct vfio_migration_ops; - -struct vfio_log_ops; - -struct vfio_group; - -struct vfio_device_set; +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; +}; -struct vfio_device { - struct device *dev; - const struct vfio_device_ops *ops; - const struct vfio_migration_ops *mig_ops; - const struct vfio_log_ops *log_ops; - struct vfio_group *group; - struct vfio_device_set *dev_set; - struct list_head dev_set_list; - unsigned int migration_flags; - struct kvm *kvm; - unsigned int index; - struct device device; - refcount_t refcount; - unsigned int open_count; - struct completion comp; - struct list_head group_next; - struct list_head iommu_entry; - struct iommufd_access *iommufd_access; - void (*put_kvm)(struct kvm *); +struct musb_qh { + struct usb_host_endpoint *hep; + struct usb_device *dev; + struct musb_hw_ep *hw_ep; + struct list_head ring; + u8 mux; + unsigned int offset; + unsigned int segsize; + u8 type_reg; + u8 intv_reg; + u8 addr_reg; + u8 h_addr_reg; + u8 h_port_reg; + u8 is_ready; + u8 type; + u8 epnum; + u8 hb_mult; + u16 maxpacket; + u16 frame; + unsigned int iso_idx; + struct sg_mapping_iter sg_miter; + bool use_sg; }; -struct iommufd_ctx; +struct musb_platform_ops { + u32 quirks; + int (*init)(struct musb *); + int (*exit)(struct musb *); + void (*enable)(struct musb *); + void (*disable)(struct musb *); + u32 (*ep_offset)(u8, u16); + void (*ep_select)(void *, u8); + u16 fifo_mode; + u32 (*fifo_offset)(u8); + u32 (*busctl_offset)(u8, u16); + u8 (*readb)(void *, u32); + void (*writeb)(void *, u32, u8); + u8 (*clearb)(void *, u32); + u16 (*readw)(void *, u32); + void (*writew)(void *, u32, u16); + u16 (*clearw)(void *, u32); + void (*read_fifo)(struct musb_hw_ep *, u16, u8 *); + void (*write_fifo)(struct musb_hw_ep *, u16, const u8 *); + u16 (*get_toggle)(struct musb_qh *, int); + u16 (*set_toggle)(struct musb_qh *, int, struct urb *); + struct dma_controller * (*dma_init)(struct musb *, void *); + void (*dma_exit)(struct dma_controller *); + int (*set_mode)(struct musb *, u8); + void (*try_idle)(struct musb *, unsigned long); + int (*recover)(struct musb *); + int (*vbus_status)(struct musb *); + void (*set_vbus)(struct musb *, int); + void (*pre_root_reset_end)(struct musb *); + void (*post_root_reset_end)(struct musb *); + int (*phy_callback)(enum musb_vbus_id_status); + void (*clear_ep_rxintr)(struct musb *, int); +}; -struct vfio_device_ops { - char *name; - int (*init)(struct vfio_device *); - void (*release)(struct vfio_device *); - int (*bind_iommufd)(struct vfio_device *, struct iommufd_ctx *, u32 *); - void (*unbind_iommufd)(struct vfio_device *); - int (*attach_ioas)(struct vfio_device *, u32 *); - int (*open_device)(struct vfio_device *); - void (*close_device)(struct vfio_device *); - ssize_t (*read)(struct vfio_device *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - ssize_t (*write)(struct vfio_device *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - long (*ioctl)(struct vfio_device *, unsigned int, unsigned long); - int (*mmap)(struct vfio_device *, struct vm_area_struct *); - void (*request)(struct vfio_device *, unsigned int); - int (*match)(struct vfio_device *, char *); - void (*dma_unmap)(struct vfio_device *, u64, u64); - int (*device_feature)(struct vfio_device *, u32, void __attribute__((btf_type_tag("user"))) *, size_t); +struct dma_controller { + struct musb *musb; + struct dma_channel * (*channel_alloc)(struct dma_controller *, struct musb_hw_ep *, u8); + void (*channel_release)(struct dma_channel *); + int (*channel_program)(struct dma_channel *, u16, u8, dma_addr_t, u32); + int (*channel_abort)(struct dma_channel *); + int (*is_compatible)(struct dma_channel *, u16, void *, u32); + void (*dma_callback)(struct dma_controller *); }; -enum vfio_device_mig_state { - VFIO_DEVICE_STATE_ERROR = 0, - VFIO_DEVICE_STATE_STOP = 1, - VFIO_DEVICE_STATE_RUNNING = 2, - VFIO_DEVICE_STATE_STOP_COPY = 3, - VFIO_DEVICE_STATE_RESUMING = 4, - VFIO_DEVICE_STATE_RUNNING_P2P = 5, - VFIO_DEVICE_STATE_PRE_COPY = 6, - VFIO_DEVICE_STATE_PRE_COPY_P2P = 7, +struct musb_fifo_cfg; + +struct musb_hdrc_config { + struct musb_fifo_cfg *fifo_cfg; + unsigned int fifo_cfg_size; + unsigned int multipoint: 1; + unsigned int dyn_fifo: 1; + unsigned int host_port_deassert_reset_at_resume: 1; + u8 num_eps; + u8 ram_bits; + u32 maximum_speed; }; -struct vfio_migration_ops { - struct file * (*migration_set_state)(struct vfio_device *, enum vfio_device_mig_state); - int (*migration_get_state)(struct vfio_device *, enum vfio_device_mig_state *); - int (*migration_get_data_size)(struct vfio_device *, unsigned long *); +struct musb_fifo_cfg { + u8 hw_ep_num; + enum musb_fifo_style style; + enum musb_buf_mode mode; + u16 maxpacket; }; -struct iova_bitmap; +struct rtc_device; -struct vfio_log_ops { - int (*log_start)(struct vfio_device *, struct rb_root_cached *, u32, u64 *); - int (*log_stop)(struct vfio_device *); - int (*log_read_and_clear)(struct vfio_device *, unsigned long, unsigned long, struct iova_bitmap *); +struct rtc_timer { + struct timerqueue_node node; + ktime_t period; + void (*func)(struct rtc_device *); + struct rtc_device *rtc; + int enabled; }; -struct vfio_container; +typedef __u64 timeu64_t; -struct vfio_group { +struct rtc_class_ops; + +struct rtc_device { struct device dev; - struct cdev cdev; - refcount_t drivers; - unsigned int container_users; - struct iommu_group *iommu_group; - struct vfio_container *container; - struct list_head device_list; - struct mutex device_lock; - struct list_head vfio_next; - struct list_head container_next; - enum vfio_group_type type; - struct mutex group_lock; - struct kvm *kvm; - struct file *opened_file; - struct blocking_notifier_head notifier; - struct iommufd_ctx *iommufd; - spinlock_t kvm_ref_lock; + struct module *owner; + int id; + const struct rtc_class_ops *ops; + struct mutex ops_lock; + struct cdev char_dev; + unsigned long flags; + unsigned long irq_data; + spinlock_t irq_lock; + wait_queue_head_t irq_queue; + struct fasync_struct *async_queue; + int irq_freq; + int max_user_freq; + struct timerqueue_head timerqueue; + struct rtc_timer aie_timer; + struct rtc_timer uie_rtctimer; + struct hrtimer pie_timer; + int pie_enabled; + struct work_struct irqwork; + unsigned long set_offset_nsec; + unsigned long features[1]; + time64_t range_min; + timeu64_t range_max; + timeu64_t alarm_offset_max; + time64_t start_secs; + time64_t offset_secs; + bool set_start_time; }; -struct vfio_device_set { - void *set_id; - struct mutex lock; - struct list_head device_list; - unsigned int device_count; -}; +struct rtc_time; -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 rtc_wkalrm; -struct vfio_iommu_group { - struct iommu_group *iommu_group; - struct list_head next; - bool pinned_page_dirty_scope; -}; +struct rtc_param; -struct vfio_domain { - struct iommu_domain *domain; - struct list_head next; - struct list_head group_list; - bool fgsp: 1; - bool enforce_cache_coherency: 1; +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 vfio_dma { - struct rb_node node; - dma_addr_t iova; - unsigned long vaddr; - size_t size; - int prot; - bool iommu_mapped; - bool lock_cap; - bool vaddr_invalid; - struct task_struct *task; - struct rb_root pfn_list; - unsigned long *bitmap; - struct mm_struct *mm; - size_t locked_vm; +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 vfio_pfn { - struct rb_node node; - dma_addr_t iova; - unsigned long pfn; - unsigned int ref_count; +struct rtc_wkalrm { + unsigned char enabled; + unsigned char pending; + struct rtc_time time; }; -struct vfio_regions { - struct list_head list; - dma_addr_t iova; - phys_addr_t phys; - size_t len; +struct rtc_param { + __u64 param; + union { + __u64 uvalue; + __s64 svalue; + __u64 ptr; + }; + __u32 index; + __u32 __pad; }; -struct vfio_iova { - struct list_head list; - dma_addr_t start; - dma_addr_t end; +struct s5m_rtc_reg_config { + unsigned int regs_count; + unsigned int time; + unsigned int ctrl; + unsigned int alarm0; + unsigned int alarm1; + unsigned int udr_update; + unsigned int autoclear_udr_mask; + unsigned int read_time_udr_mask; + unsigned int write_time_udr_mask; + unsigned int write_alarm_udr_mask; }; -struct vfio_info_cap_header { - __u16 id; - __u16 version; - __u32 next; +enum sec_device_type { + S5M8767X = 0, + S2MPA01 = 1, + S2MPS11X = 2, + S2MPS13X = 3, + S2MPS14X = 4, + S2MPS15X = 5, + S2MPU02 = 6, }; -struct vfio_iova_range { - __u64 start; - __u64 end; +enum s2mps14_irq { + S2MPS14_IRQ_PWRONF = 0, + S2MPS14_IRQ_PWRONR = 1, + S2MPS14_IRQ_JIGONBF = 2, + S2MPS14_IRQ_JIGONBR = 3, + S2MPS14_IRQ_ACOKBF = 4, + S2MPS14_IRQ_ACOKBR = 5, + S2MPS14_IRQ_PWRON1S = 6, + S2MPS14_IRQ_MRB = 7, + S2MPS14_IRQ_RTC60S = 8, + S2MPS14_IRQ_RTCA1 = 9, + S2MPS14_IRQ_RTCA0 = 10, + S2MPS14_IRQ_SMPL = 11, + S2MPS14_IRQ_RTC1S = 12, + S2MPS14_IRQ_WTSR = 13, + S2MPS14_IRQ_INT120C = 14, + S2MPS14_IRQ_INT140C = 15, + S2MPS14_IRQ_TSD = 16, + S2MPS14_IRQ_NR = 17, }; -struct vfio_iommu_type1_info_cap_iova_range { - struct vfio_info_cap_header header; - __u32 nr_iovas; - __u32 reserved; - struct vfio_iova_range iova_ranges[0]; -}; - -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 *); +enum s5m8767_irq { + S5M8767_IRQ_PWRR = 0, + S5M8767_IRQ_PWRF = 1, + S5M8767_IRQ_PWR1S = 2, + S5M8767_IRQ_JIGR = 3, + S5M8767_IRQ_JIGF = 4, + S5M8767_IRQ_LOWBAT2 = 5, + S5M8767_IRQ_LOWBAT1 = 6, + S5M8767_IRQ_MRB = 7, + S5M8767_IRQ_DVSOK2 = 8, + S5M8767_IRQ_DVSOK3 = 9, + S5M8767_IRQ_DVSOK4 = 10, + S5M8767_IRQ_RTC60S = 11, + S5M8767_IRQ_RTCA1 = 12, + S5M8767_IRQ_RTCA2 = 13, + S5M8767_IRQ_SMPL = 14, + S5M8767_IRQ_RTC1S = 15, + S5M8767_IRQ_WTSR = 16, + S5M8767_IRQ_NR = 17, }; -struct vfio_iommu { - struct list_head domain_list; - struct list_head iova_list; - struct mutex lock; - struct rb_root dma_list; - struct list_head device_list; - struct mutex device_list_lock; - unsigned int dma_avail; - unsigned int vaddr_invalid_count; - uint64_t pgsize_bitmap; - uint64_t num_non_pinned_groups; - bool v2; - bool nesting; - bool dirty_page_tracking; - struct list_head emulated_iommu_groups; +enum s5m_rtc_reg { + S5M_RTC_SEC = 0, + S5M_RTC_MIN = 1, + S5M_RTC_HOUR = 2, + S5M_RTC_WEEKDAY = 3, + S5M_RTC_DATE = 4, + S5M_RTC_MONTH = 5, + S5M_RTC_YEAR1 = 6, + S5M_RTC_YEAR2 = 7, + S5M_ALARM0_SEC = 8, + S5M_ALARM0_MIN = 9, + S5M_ALARM0_HOUR = 10, + S5M_ALARM0_WEEKDAY = 11, + S5M_ALARM0_DATE = 12, + S5M_ALARM0_MONTH = 13, + S5M_ALARM0_YEAR1 = 14, + S5M_ALARM0_YEAR2 = 15, + S5M_ALARM1_SEC = 16, + S5M_ALARM1_MIN = 17, + S5M_ALARM1_HOUR = 18, + S5M_ALARM1_WEEKDAY = 19, + S5M_ALARM1_DATE = 20, + S5M_ALARM1_MONTH = 21, + S5M_ALARM1_YEAR1 = 22, + S5M_ALARM1_YEAR2 = 23, + S5M_ALARM0_CONF = 24, + S5M_ALARM1_CONF = 25, + S5M_RTC_STATUS = 26, + S5M_WTSR_SMPL_CNTL = 27, + S5M_RTC_UDR_CON = 28, + S5M_RTC_REG_MAX = 29, }; -struct vfio_iommu_type1_dma_map { - __u32 argsz; - __u32 flags; - __u64 vaddr; - __u64 iova; - __u64 size; +enum { + RTC_SEC = 0, + RTC_MIN = 1, + RTC_HOUR = 2, + RTC_WEEKDAY = 3, + RTC_DATE = 4, + RTC_MONTH = 5, + RTC_YEAR1 = 6, + RTC_YEAR2 = 7, + RTC_MAX_NUM_TIME_REGS = 8, }; -struct vfio_iommu_type1_info { - __u32 argsz; - __u32 flags; - __u64 iova_pgsizes; - __u32 cap_offset; +enum s2mps14_reg { + S2MPS14_REG_ID = 0, + S2MPS14_REG_INT1 = 1, + S2MPS14_REG_INT2 = 2, + S2MPS14_REG_INT3 = 3, + S2MPS14_REG_INT1M = 4, + S2MPS14_REG_INT2M = 5, + S2MPS14_REG_INT3M = 6, + S2MPS14_REG_ST1 = 7, + S2MPS14_REG_ST2 = 8, + S2MPS14_REG_PWRONSRC = 9, + S2MPS14_REG_OFFSRC = 10, + S2MPS14_REG_BU_CHG = 11, + S2MPS14_REG_RTCCTRL = 12, + S2MPS14_REG_CTRL1 = 13, + S2MPS14_REG_CTRL2 = 14, + S2MPS14_REG_RSVD1 = 15, + S2MPS14_REG_RSVD2 = 16, + S2MPS14_REG_RSVD3 = 17, + S2MPS14_REG_RSVD4 = 18, + S2MPS14_REG_RSVD5 = 19, + S2MPS14_REG_RSVD6 = 20, + S2MPS14_REG_CTRL3 = 21, + S2MPS14_REG_RSVD7 = 22, + S2MPS14_REG_RSVD8 = 23, + S2MPS14_REG_WRSTBI = 24, + S2MPS14_REG_B1CTRL1 = 25, + S2MPS14_REG_B1CTRL2 = 26, + S2MPS14_REG_B2CTRL1 = 27, + S2MPS14_REG_B2CTRL2 = 28, + S2MPS14_REG_B3CTRL1 = 29, + S2MPS14_REG_B3CTRL2 = 30, + S2MPS14_REG_B4CTRL1 = 31, + S2MPS14_REG_B4CTRL2 = 32, + S2MPS14_REG_B5CTRL1 = 33, + S2MPS14_REG_B5CTRL2 = 34, + S2MPS14_REG_L1CTRL = 35, + S2MPS14_REG_L2CTRL = 36, + S2MPS14_REG_L3CTRL = 37, + S2MPS14_REG_L4CTRL = 38, + S2MPS14_REG_L5CTRL = 39, + S2MPS14_REG_L6CTRL = 40, + S2MPS14_REG_L7CTRL = 41, + S2MPS14_REG_L8CTRL = 42, + S2MPS14_REG_L9CTRL = 43, + S2MPS14_REG_L10CTRL = 44, + S2MPS14_REG_L11CTRL = 45, + S2MPS14_REG_L12CTRL = 46, + S2MPS14_REG_L13CTRL = 47, + S2MPS14_REG_L14CTRL = 48, + S2MPS14_REG_L15CTRL = 49, + S2MPS14_REG_L16CTRL = 50, + S2MPS14_REG_L17CTRL = 51, + S2MPS14_REG_L18CTRL = 52, + S2MPS14_REG_L19CTRL = 53, + S2MPS14_REG_L20CTRL = 54, + S2MPS14_REG_L21CTRL = 55, + S2MPS14_REG_L22CTRL = 56, + S2MPS14_REG_L23CTRL = 57, + S2MPS14_REG_L24CTRL = 58, + S2MPS14_REG_L25CTRL = 59, + S2MPS14_REG_LDODSCH1 = 60, + S2MPS14_REG_LDODSCH2 = 61, + S2MPS14_REG_LDODSCH3 = 62, }; -struct vfio_info_cap { - struct vfio_info_cap_header *buf; - size_t size; -}; +struct sec_pmic_dev; -struct vfio_iommu_type1_dma_unmap { - __u32 argsz; - __u32 flags; - __u64 iova; - __u64 size; - __u8 data[0]; +struct s5m_rtc_info { + struct device *dev; + struct i2c_client *i2c; + struct sec_pmic_dev *s5m87xx; + struct regmap *regmap; + struct rtc_device *rtc_dev; + int irq; + enum sec_device_type device_type; + int rtc_24hr_mode; + const struct s5m_rtc_reg_config *regs; }; -struct vfio_bitmap { - __u64 pgsize; - __u64 size; - __u64 __attribute__((btf_type_tag("user"))) *data; -}; +struct sec_platform_data; -struct vfio_iommu_type1_dirty_bitmap { - __u32 argsz; - __u32 flags; - __u8 data[0]; -}; +struct regmap_irq_chip_data; -struct vfio_iommu_type1_dirty_bitmap_get { - __u64 iova; - __u64 size; - struct vfio_bitmap bitmap; +struct sec_pmic_dev { + struct device *dev; + struct sec_platform_data *pdata; + struct regmap *regmap_pmic; + struct i2c_client *i2c; + unsigned long device_type; + int irq; + struct regmap_irq_chip_data *irq_data; }; -struct vfio_iommu_type1_info_cap_migration { - struct vfio_info_cap_header header; - __u32 flags; - __u64 pgsize_bitmap; - __u64 max_dirty_bitmap_size; +struct sec_regulator_data; + +struct sec_opmode_data; + +struct sec_platform_data { + struct sec_regulator_data *regulators; + struct sec_opmode_data *opmode; + int num_regulators; + int buck_gpios[3]; + int buck_ds[3]; + unsigned int buck2_voltage[8]; + bool buck2_gpiodvs; + unsigned int buck3_voltage[8]; + bool buck3_gpiodvs; + unsigned int buck4_voltage[8]; + bool buck4_gpiodvs; + int buck_default_idx; + int buck_ramp_delay; + bool buck2_ramp_enable; + bool buck3_ramp_enable; + bool buck4_ramp_enable; + int buck2_init; + int buck3_init; + int buck4_init; + bool manual_poweroff; + bool disable_wrstbi; }; -struct vfio_iommu_type1_info_dma_avail { - struct vfio_info_cap_header header; - __u32 avail; +struct sec_regulator_data { + int id; + struct regulator_init_data *initdata; + struct device_node *reg_node; + struct gpio_desc *ext_control_gpiod; }; -struct vfio_batch { - struct page **pages; - struct page *fallback_page; - int capacity; - int size; - int offset; +struct sec_opmode_data { + int id; + unsigned int mode; }; -enum usb_phy_type { - USB_PHY_TYPE_UNDEFINED = 0, - USB_PHY_TYPE_USB2 = 1, - USB_PHY_TYPE_USB3 = 2, +struct owl_i2c_dev { + struct i2c_adapter adap; + struct i2c_msg *msg; + struct completion msg_complete; + struct clk *clk; + spinlock_t lock; + void *base; + unsigned long clk_rate; + u32 bus_freq; + u32 msg_ptr; + int err; }; -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 posix_clock; + +struct __kernel_timex; + +struct posix_clock_context; + +struct posix_clock_operations { + struct module *owner; + int (*clock_adjtime)(struct posix_clock *, struct __kernel_timex *); + int (*clock_gettime)(struct posix_clock *, struct timespec64 *); + int (*clock_getres)(struct posix_clock *, struct timespec64 *); + int (*clock_settime)(struct posix_clock *, const struct timespec64 *); + long (*ioctl)(struct posix_clock_context *, unsigned int, unsigned long); + int (*open)(struct posix_clock_context *, fmode_t); + __poll_t (*poll)(struct posix_clock_context *, struct file *, poll_table *); + int (*release)(struct posix_clock_context *); + ssize_t (*read)(struct posix_clock_context *, uint, char __attribute__((btf_type_tag("user"))) *, size_t); }; -enum usb_charger_type { - UNKNOWN_TYPE = 0, - SDP_TYPE = 1, - DCP_TYPE = 2, - CDP_TYPE = 3, - ACA_TYPE = 4, +struct posix_clock { + struct posix_clock_operations ops; + struct cdev cdev; + struct device *dev; + struct rw_semaphore rwsem; + bool zombie; }; -enum usb_charger_state { - USB_CHARGER_DEFAULT = 0, - USB_CHARGER_PRESENT = 1, - USB_CHARGER_ABSENT = 2, +struct kthread_delayed_work { + struct kthread_work work; + struct timer_list timer; }; -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 pps_device; + +struct ptp_clock { + struct posix_clock clock; + struct device dev; + struct ptp_clock_info *info; + dev_t devid; + int index; + struct pps_device *pps_source; + long dialed_frequency; + struct list_head tsevqs; + spinlock_t tsevqs_lock; + struct mutex pincfg_mux; + wait_queue_head_t tsev_wq; + int defunct; + struct device_attribute *pin_dev_attr; + struct attribute **pin_attr; + struct attribute_group pin_attr_group; + const struct attribute_group *pin_attr_groups[2]; + struct kthread_worker *kworker; + struct kthread_delayed_work aux_work; + unsigned int max_vclocks; + unsigned int n_vclocks; + int *vclock_index; + struct mutex n_vclocks_mux; + bool is_virtual_clock; + bool has_cycles; + struct dentry *debugfs_root; }; -struct atomic_notifier_head { - spinlock_t lock; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +struct __kernel_timex_timeval { + __kernel_time64_t tv_sec; + long long tv_usec; }; -struct usb_otg; +struct __kernel_timex { + unsigned int modes; + long long offset; + long long freq; + long long maxerror; + long long esterror; + int status; + long long constant; + long long precision; + long long tolerance; + struct __kernel_timex_timeval time; + long long tick; + long long ppsfreq; + long long jitter; + int shift; + long long stabil; + long long jitcnt; + long long calcnt; + long long errcnt; + long long stbcnt; + int tai; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; -struct usb_phy_io_ops; +struct posix_clock_context { + struct posix_clock *clk; + void *private_clkdata; +}; -struct usb_phy { +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; - 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_phy_io_ops { - int (*read)(struct usb_phy *, u32); - int (*write)(struct usb_phy *, u32, u32); +struct pps_ktime { + __s64 sec; + __s32 nsec; + __u32 flags; }; -typedef void (*dr_release_t)(struct device *, void *); +struct pps_kparams { + int api_version; + int mode; + struct pps_ktime assert_off_tu; + struct pps_ktime clear_off_tu; +}; -typedef int (*dr_match_t)(struct device *, void *, void *); +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 phy_devm { - struct usb_phy *phy; - struct notifier_block *nb; +struct debugfs_u32_array { + u32 *array; + u32 n_elements; }; -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 ptp_extts_event { + struct ptp_clock_time t; + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; }; -enum dwc2_lx_state { - DWC2_L0 = 0, - DWC2_L1 = 1, - DWC2_L2 = 2, - DWC2_L3 = 3, +struct timestamp_event_queue { + struct ptp_extts_event buf[128]; + int head; + int tail; + spinlock_t lock; + struct list_head qlist; + unsigned long *mask; + struct dentry *debugfs_instance; + struct debugfs_u32_array dfs_bitmap; }; -enum dwc2_halt_status { - DWC2_HC_XFER_NO_HALT_STATUS = 0, - DWC2_HC_XFER_COMPLETE = 1, - DWC2_HC_XFER_URB_COMPLETE = 2, - DWC2_HC_XFER_ACK = 3, - DWC2_HC_XFER_NAK = 4, - DWC2_HC_XFER_NYET = 5, - DWC2_HC_XFER_STALL = 6, - DWC2_HC_XFER_XACT_ERR = 7, - DWC2_HC_XFER_FRAME_OVERRUN = 8, - DWC2_HC_XFER_BABBLE_ERR = 9, - DWC2_HC_XFER_DATA_TOGGLE_ERR = 10, - DWC2_HC_XFER_AHB_ERR = 11, - DWC2_HC_XFER_PERIODIC_INCOMPLETE = 12, - DWC2_HC_XFER_URB_DEQUEUE = 13, +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]; }; -enum dwc2_ep0_state { - DWC2_EP0_SETUP = 0, - DWC2_EP0_DATA_IN = 1, - DWC2_EP0_DATA_OUT = 2, - DWC2_EP0_STATUS_IN = 3, - DWC2_EP0_STATUS_OUT = 4, +struct ptp_clock_caps { + int max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int pps; + int n_pins; + int cross_timestamping; + int adjust_phase; + int max_phase_adj; + int rsv[11]; }; -struct dwc2_hw_params { - unsigned int op_mode: 3; - unsigned int arch: 2; - unsigned int dma_desc_enable: 1; - unsigned int enable_dynamic_fifo: 1; - unsigned int en_multiple_tx_fifo: 1; - unsigned int rx_fifo_size: 16; - int: 8; - unsigned int host_nperio_tx_fifo_size: 16; - unsigned int dev_nperio_tx_fifo_size: 16; - unsigned int host_perio_tx_fifo_size: 16; - unsigned int nperio_tx_q_depth: 3; - unsigned int host_perio_tx_q_depth: 3; - unsigned int dev_token_q_depth: 5; - int: 5; - unsigned int max_transfer_size: 26; - long: 6; - unsigned int max_packet_count: 11; - unsigned int host_channels: 5; - unsigned int hs_phy_type: 2; - unsigned int fs_phy_type: 2; - unsigned int i2c_enable: 1; - unsigned int acg_enable: 1; - unsigned int num_dev_ep: 4; - unsigned int num_dev_in_eps: 4; - int: 2; - unsigned int num_dev_perio_in_ep: 4; - unsigned int total_fifo_size: 16; - unsigned int power_optimized: 1; - unsigned int hibernation: 1; - unsigned int utmi_phy_data_width: 2; - unsigned int lpm_mode: 1; - unsigned int ipg_isoc_en: 1; - unsigned int service_interval_mode: 1; - u32 snpsid; - u32 dev_ep_dirs; - u32 g_tx_fifo_size[16]; +struct ptp_sys_offset_extended { + unsigned int n_samples; + unsigned int rsv[3]; + struct ptp_clock_time ts[75]; }; -struct dwc2_core_params { - struct usb_otg_caps otg_caps; - u8 phy_type; - u8 speed; - u8 phy_utmi_width; - bool phy_ulpi_ddr; - bool phy_ulpi_ext_vbus; - bool enable_dynamic_fifo; - bool en_multiple_tx_fifo; - bool i2c_enable; - bool acg_enable; - bool ulpi_fs_ls; - bool ts_dline; - bool reload_ctl; - bool uframe_sched; - bool external_id_pin_ctl; - int power_down; - bool no_clock_gating; - bool lpm; - bool lpm_clock_gating; - bool besl; - bool hird_threshold_en; - bool service_interval; - u8 hird_threshold; - bool activate_stm_fs_transceiver; - bool activate_stm_id_vb_detection; - bool activate_ingenic_overcurrent_detection; - bool ipg_isoc_en; - u16 max_packet_count; - u32 max_transfer_size; - u32 ahbcfg; - u32 ref_clk_per; - u16 sof_cnt_wkup_alert; - bool host_dma; - bool dma_desc_enable; - bool dma_desc_fs_enable; - bool host_support_fs_ls_low_power; - bool host_ls_low_power_phy_clk; - bool oc_disable; - u8 host_channels; - u16 host_rx_fifo_size; - u16 host_nperio_tx_fifo_size; - u16 host_perio_tx_fifo_size; - bool g_dma; - bool g_dma_desc; - u32 g_rx_fifo_size; - u32 g_np_tx_fifo_size; - u32 g_tx_fifo_size[16]; - bool change_speed_quirk; +struct ptp_sys_offset { + unsigned int n_samples; + unsigned int rsv[3]; + struct ptp_clock_time ts[51]; }; -struct regulator_bulk_data { - const char *supply; - int init_load_uA; - struct regulator *consumer; - int ret; +enum thermal_device_mode { + THERMAL_DEVICE_DISABLED = 0, + THERMAL_DEVICE_ENABLED = 1, }; -struct dwc2_gregs_backup { - u32 gotgctl; - u32 gintmsk; - u32 gahbcfg; - u32 gusbcfg; - u32 grxfsiz; - u32 gnptxfsiz; - u32 gi2cctl; - u32 glpmcfg; - u32 pcgcctl; - u32 pcgcctl1; - u32 gdfifocfg; - u32 gpwrdn; - bool valid; +enum thermal_trip_type { + THERMAL_TRIP_ACTIVE = 0, + THERMAL_TRIP_PASSIVE = 1, + THERMAL_TRIP_HOT = 2, + THERMAL_TRIP_CRITICAL = 3, }; -struct dwc2_dregs_backup { - u32 dcfg; - u32 dctl; - u32 daintmsk; - u32 diepmsk; - u32 doepmsk; - u32 diepctl[16]; - u32 dieptsiz[16]; - u32 diepdma[16]; - u32 doepctl[16]; - u32 doeptsiz[16]; - u32 doepdma[16]; - u32 dtxfsiz[16]; - bool valid; +enum thermal_trend { + THERMAL_TREND_STABLE = 0, + THERMAL_TREND_RAISING = 1, + THERMAL_TREND_DROPPING = 2, }; -struct dwc2_hregs_backup { - u32 hcfg; - u32 haintmsk; - u32 hcintmsk[16]; - u32 hprt0; - u32 hfir; - u32 hptxfsiz; - bool valid; +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, }; -union dwc2_hcd_internal_flags { - u32 d32; - struct { - unsigned int port_connect_status_change: 1; - unsigned int port_connect_status: 1; - unsigned int port_reset_change: 1; - unsigned int port_enable_change: 1; - unsigned int port_suspend_change: 1; - unsigned int port_over_current_change: 1; - unsigned int port_l1_change: 1; - unsigned int reserved: 25; - } b; +struct thermal_trip; + +struct thermal_instance { + int id; + char name[20]; + struct thermal_zone_device *tz; + struct thermal_cooling_device *cdev; + const struct thermal_trip *trip; + bool initialized; + unsigned long upper; + unsigned long lower; + unsigned long target; + char attr_name[20]; + struct device_attribute attr; + char weight_attr_name[20]; + struct device_attribute weight_attr; + struct list_head tz_node; + struct list_head cdev_node; + unsigned int weight; + bool upper_no_limit; }; -struct dwc2_hsotg_plat; +struct thermal_attr; -struct debugfs_regset32; +struct thermal_zone_device_ops; -struct dwc2_host_chan; +struct thermal_zone_params; -struct dwc2_dma_desc; +struct thermal_governor; -struct dwc2_hsotg_ep; +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 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 dwc2_hsotg { - struct device *dev; - void *regs; - struct dwc2_hw_params hw_params; - struct dwc2_core_params params; - enum usb_otg_state op_state; - enum usb_dr_mode dr_mode; - struct usb_role_switch *role_sw; - enum usb_dr_mode role_sw_default_mode; - unsigned int hcd_enabled: 1; - unsigned int gadget_enabled: 1; - unsigned int ll_hw_enabled: 1; - unsigned int hibernated: 1; - unsigned int in_ppd: 1; - bool bus_suspended; - unsigned int reset_phy_on_wake: 1; - unsigned int need_phy_for_wake: 1; - unsigned int phy_off_for_suspend: 1; - u16 frame_number; - struct phy *phy; - struct usb_phy *uphy; - struct dwc2_hsotg_plat *plat; - struct regulator_bulk_data supplies[2]; - struct regulator *vbus_supply; - struct regulator *usb33d; - spinlock_t lock; - void *priv; - int irq; - struct clk *clk; - struct clk *utmi_clk; - struct reset_control *reset; - struct reset_control *reset_ecc; - unsigned int queuing_high_bandwidth: 1; - unsigned int srp_success: 1; - struct workqueue_struct *wq_otg; - struct work_struct wf_otg; - struct timer_list wkp_timer; - enum dwc2_lx_state lx_state; - struct dwc2_gregs_backup gr_backup; - struct dwc2_dregs_backup dr_backup; - struct dwc2_hregs_backup hr_backup; - struct dentry *debug_root; - struct debugfs_regset32 *regset; - bool needs_byte_swap; - union dwc2_hcd_internal_flags flags; - struct list_head non_periodic_sched_inactive; - struct list_head non_periodic_sched_waiting; - struct list_head non_periodic_sched_active; - struct list_head *non_periodic_qh_ptr; - struct list_head periodic_sched_inactive; - struct list_head periodic_sched_ready; - struct list_head periodic_sched_assigned; - struct list_head periodic_sched_queued; - struct list_head split_order; - u16 periodic_usecs; - unsigned long hs_periodic_bitmap[13]; - u16 periodic_qh_count; - bool new_connection; - u16 last_frame_num; - struct list_head free_hc_list; - int periodic_channels; - int non_periodic_channels; - int available_host_channels; - struct dwc2_host_chan *hc_ptr_array[16]; - u8 *status_buf; - dma_addr_t status_buf_dma; - struct delayed_work start_work; - struct delayed_work reset_work; - struct work_struct phy_reset_work; - u8 otg_port; - u32 *frame_list; - dma_addr_t frame_list_dma; - u32 frame_list_sz; - struct kmem_cache *desc_gen_cache; - struct kmem_cache *desc_hsisoc_cache; - struct kmem_cache *unaligned_cache; - struct usb_gadget_driver *driver; - int fifo_mem; - unsigned int dedicated_fifos: 1; - unsigned char num_of_eps; - u32 fifo_map; - struct usb_request *ep0_reply; - struct usb_request *ctrl_req; - void *ep0_buff; - void *ctrl_buff; - enum dwc2_ep0_state ep0_state; - unsigned int delayed_status: 1; - u8 test_mode; - dma_addr_t setup_desc_dma[2]; - struct dwc2_dma_desc *setup_desc[2]; - dma_addr_t ctrl_in_desc_dma; - struct dwc2_dma_desc *ctrl_in_desc; - dma_addr_t ctrl_out_desc_dma; - struct dwc2_dma_desc *ctrl_out_desc; - struct usb_gadget gadget; - unsigned int enabled: 1; - unsigned int connected: 1; - unsigned int remote_wakeup_allowed: 1; - struct dwc2_hsotg_ep *eps_in[16]; - struct dwc2_hsotg_ep *eps_out[16]; +struct thermal_attr { + struct device_attribute attr; + char name[20]; }; -struct usb_otg { - u8 default_a; - struct phy *phy; - struct usb_phy *usb_phy; - struct usb_bus *host; - struct usb_gadget *gadget; - enum usb_otg_state state; - int (*set_host)(struct usb_otg *, struct usb_bus *); - int (*set_peripheral)(struct usb_otg *, struct usb_gadget *); - int (*set_vbus)(struct usb_otg *, bool); - int (*start_srp)(struct usb_otg *); - int (*start_hnp)(struct usb_otg *); +struct thermal_trip { + int temperature; + int hysteresis; + enum thermal_trip_type type; + void *priv; }; -struct dwc2_qh; +struct thermal_zone_device_ops { + int (*bind)(struct thermal_zone_device *, struct thermal_cooling_device *); + int (*unbind)(struct thermal_zone_device *, struct thermal_cooling_device *); + int (*get_temp)(struct thermal_zone_device *, int *); + int (*set_trips)(struct thermal_zone_device *, int, int); + int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode); + int (*set_trip_temp)(struct thermal_zone_device *, int, int); + int (*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 *, const struct thermal_trip *, enum thermal_trend *); + void (*hot)(struct thermal_zone_device *); + void (*critical)(struct thermal_zone_device *); +}; -struct dwc2_host_chan { - u8 hc_num; - unsigned int dev_addr: 7; - unsigned int ep_num: 4; - unsigned int ep_is_in: 1; - unsigned int speed: 4; - unsigned int ep_type: 2; - int: 6; - unsigned int max_packet: 11; - unsigned int data_pid_start: 2; - unsigned int multi_count: 2; - u8 *xfer_buf; - dma_addr_t xfer_dma; - dma_addr_t align_buf; - u32 xfer_len; - u32 xfer_count; - u16 start_pkt_count; - u8 xfer_started; - u8 do_ping; - u8 error_state; - u8 halt_on_queue; - u8 halt_pending; - u8 do_split; - u8 complete_split; - u8 hub_addr; - u8 hub_port; - u8 xact_pos; - u8 requests; - u8 schinfo; - u16 ntd; - enum dwc2_halt_status halt_status; - u32 hcint; - struct dwc2_qh *qh; - struct list_head hc_list_entry; - dma_addr_t desc_list_addr; - u32 desc_list_sz; - struct list_head split_order_list_entry; +struct thermal_zone_params { + char governor_name[20]; + bool no_hwmon; + u32 sustainable_power; + s32 k_po; + s32 k_pu; + s32 k_i; + s32 k_d; + s32 integral_cutoff; + int slope; + int offset; }; -struct dwc2_hs_transfer_time { - u32 start_schedule_us; - u16 duration_us; +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 *, const struct thermal_trip *); + struct list_head governor_list; }; -struct dwc2_tt; +struct hisi_thermal_sensor; -struct dwc2_qh { - struct dwc2_hsotg *hsotg; - u8 ep_type; - u8 ep_is_in; - u16 maxp; - u16 maxp_mult; - u8 dev_speed; - u8 data_toggle; - u8 ping_state; - u8 do_split; - u8 td_first; - u8 td_last; - u16 host_us; - u16 device_us; - u16 host_interval; - u16 device_interval; - u16 next_active_frame; - u16 start_active_frame; - s16 num_hs_transfers; - struct dwc2_hs_transfer_time hs_transfers[8]; - u32 ls_start_schedule_slice; - u16 ntd; - u8 *dw_align_buf; - dma_addr_t dw_align_buf_dma; - struct list_head qtd_list; - struct dwc2_host_chan *channel; - struct list_head qh_list_entry; - struct dwc2_dma_desc *desc_list; - dma_addr_t desc_list_dma; - u32 desc_list_sz; - u32 *n_bytes; - struct timer_list unreserve_timer; - struct hrtimer wait_timer; - struct dwc2_tt *dwc_tt; - int ttport; - unsigned int tt_buffer_dirty: 1; - unsigned int unreserve_pending: 1; - unsigned int schedule_low_speed: 1; - unsigned int want_wait: 1; - unsigned int wait_timer_cancel: 1; +struct hisi_thermal_data; + +struct hisi_thermal_ops { + int (*get_temp)(struct hisi_thermal_sensor *); + int (*enable_sensor)(struct hisi_thermal_sensor *); + int (*disable_sensor)(struct hisi_thermal_sensor *); + int (*irq_handler)(struct hisi_thermal_sensor *); + int (*probe)(struct hisi_thermal_data *); }; -struct dwc2_dma_desc { - u32 status; - u32 buf; +struct hisi_thermal_sensor { + struct hisi_thermal_data *data; + struct thermal_zone_device *tzd; + const char *irq_name; + uint32_t id; + uint32_t thres_temp; }; -struct dwc2_tt { - int refcount; - struct usb_tt *usb_tt; - unsigned long periodic_bitmaps[0]; +struct hisi_thermal_data { + const struct hisi_thermal_ops *ops; + struct hisi_thermal_sensor *sensor; + struct platform_device *pdev; + struct clk *clk; + void *regs; + int nr_sensors; }; -struct dwc2_hsotg_req; +struct dev_ch_attribute { + struct device_attribute attr; + unsigned int channel; +}; -struct dwc2_hsotg_ep { - struct usb_ep ep; - struct list_head queue; - struct dwc2_hsotg *parent; - struct dwc2_hsotg_req *req; - struct dentry *debugfs; - unsigned long total_data; - unsigned int size_loaded; - unsigned int last_load; - unsigned int fifo_load; - unsigned short fifo_size; - unsigned short fifo_index; - unsigned char dir_in; - unsigned char map_dir; - unsigned char index; - unsigned char mc; - u16 interval; - unsigned int halted: 1; - unsigned int periodic: 1; - unsigned int isochronous: 1; - unsigned int send_zlp: 1; - unsigned int wedged: 1; - unsigned int target_frame; - bool frame_overrun; - dma_addr_t desc_list_dma; - struct dwc2_dma_desc *desc_list; - u8 desc_count; - unsigned int next_desc; - unsigned int compl_desc; - char name[10]; +enum scrub_type { + SCRUB_UNKNOWN = 0, + SCRUB_NONE = 1, + SCRUB_SW_PROG = 2, + SCRUB_SW_SRC = 3, + SCRUB_SW_PROG_SRC = 4, + SCRUB_SW_TUNABLE = 5, + SCRUB_HW_PROG = 6, + SCRUB_HW_SRC = 7, + SCRUB_HW_PROG_SRC = 8, + SCRUB_HW_TUNABLE = 9, }; -struct dwc2_hsotg_req { - struct usb_request req; - struct list_head queue; - void *saved_req_buf; +enum dev_type { + DEV_UNKNOWN = 0, + DEV_X1 = 1, + DEV_X2 = 2, + DEV_X4 = 3, + DEV_X8 = 4, + DEV_X16 = 5, + DEV_X32 = 6, + DEV_X64 = 7, }; -enum usb3_link_state { - USB3_LPM_U0 = 0, - USB3_LPM_U1 = 1, - USB3_LPM_U2 = 2, - USB3_LPM_U3 = 3, +enum mem_type { + MEM_EMPTY = 0, + MEM_RESERVED = 1, + MEM_UNKNOWN = 2, + MEM_FPM = 3, + MEM_EDO = 4, + MEM_BEDO = 5, + MEM_SDR = 6, + MEM_RDR = 7, + MEM_DDR = 8, + MEM_RDDR = 9, + MEM_RMBS = 10, + MEM_DDR2 = 11, + MEM_FB_DDR2 = 12, + MEM_RDDR2 = 13, + MEM_XDR = 14, + MEM_DDR3 = 15, + MEM_RDDR3 = 16, + MEM_LRDDR3 = 17, + MEM_LPDDR3 = 18, + MEM_DDR4 = 19, + MEM_RDDR4 = 20, + MEM_LRDDR4 = 21, + MEM_LPDDR4 = 22, + MEM_DDR5 = 23, + MEM_RDDR5 = 24, + MEM_LRDDR5 = 25, + MEM_NVDIMM = 26, + MEM_WIO2 = 27, + MEM_HBM2 = 28, }; -enum usb_dev_authorize_policy { - USB_DEVICE_AUTHORIZE_NONE = 0, - USB_DEVICE_AUTHORIZE_ALL = 1, - USB_DEVICE_AUTHORIZE_INTERNAL = 2, +enum edac_type { + EDAC_UNKNOWN = 0, + EDAC_NONE = 1, + EDAC_RESERVED = 2, + EDAC_PARITY = 3, + EDAC_EC = 4, + EDAC_SECDED = 5, + EDAC_S2ECD2ED = 6, + EDAC_S4ECD4ED = 7, + EDAC_S8ECD8ED = 8, + EDAC_S16ECD16ED = 9, }; -enum xhci_ring_type { - TYPE_CTRL = 0, - TYPE_ISOC = 1, - TYPE_BULK = 2, - TYPE_INTR = 3, - TYPE_STREAM = 4, - TYPE_COMMAND = 5, - TYPE_EVENT = 6, +enum edac_mc_layer_type { + EDAC_MC_LAYER_BRANCH = 0, + EDAC_MC_LAYER_CHANNEL = 1, + EDAC_MC_LAYER_SLOT = 2, + EDAC_MC_LAYER_CHIP_SELECT = 3, + EDAC_MC_LAYER_ALL_MEM = 4, }; -enum xhci_cancelled_td_status { - TD_DIRTY = 0, - TD_HALTED = 1, - TD_CLEARING_CACHE = 2, - TD_CLEARED = 3, +enum hw_event_mc_err_type { + HW_EVENT_ERR_CORRECTED = 0, + HW_EVENT_ERR_UNCORRECTED = 1, + HW_EVENT_ERR_DEFERRED = 2, + HW_EVENT_ERR_FATAL = 3, + HW_EVENT_ERR_INFO = 4, }; -struct xhci_input_control_ctx { - __le32 drop_flags; - __le32 add_flags; - __le32 rsvd2[6]; -}; +struct mcidev_sysfs_attribute; -struct xhci_slot_ctx { - __le32 dev_info; - __le32 dev_info2; - __le32 tt_info; - __le32 dev_state; - __le32 reserved[4]; +struct edac_raw_error_desc { + char location[256]; + char label[296]; + long grain; + u16 error_count; + enum hw_event_mc_err_type type; + int top_layer; + int mid_layer; + int low_layer; + unsigned long page_frame_number; + unsigned long offset_in_page; + unsigned long syndrome; + const char *msg; + const char *other_detail; }; -struct xhci_ep_ctx { - __le32 ep_info; - __le32 ep_info2; - __le64 deq; - __le32 tx_info; - __le32 reserved[3]; -}; +struct csrow_info; -struct xhci_interval_bw { - unsigned int num_packets; - struct list_head endpoints; - unsigned int overhead[3]; -}; +struct edac_mc_layer; -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 dimm_info; -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 mem_ctl_info { + struct device dev; + struct bus_type *bus; + struct list_head link; + struct module *owner; + unsigned long mtype_cap; + unsigned long edac_ctl_cap; + unsigned long edac_cap; + unsigned long scrub_cap; + enum scrub_type scrub_mode; + int (*set_sdram_scrub_rate)(struct mem_ctl_info *, u32); + int (*get_sdram_scrub_rate)(struct mem_ctl_info *); + void (*edac_check)(struct mem_ctl_info *); + unsigned long (*ctl_page_to_phys)(struct mem_ctl_info *, unsigned long); + int mc_idx; + struct csrow_info **csrows; + unsigned int nr_csrows; + unsigned int num_cschannel; + unsigned int n_layers; + struct edac_mc_layer *layers; + bool csbased; + unsigned int tot_dimms; + struct dimm_info **dimms; + struct device *pdev; + const char *mod_name; + const char *ctl_name; + const char *dev_name; + void *pvt_info; + unsigned long start_time; + u32 ce_noinfo_count; + u32 ue_noinfo_count; + u32 ue_mc; + u32 ce_mc; + struct completion complete; + const struct mcidev_sysfs_attribute *mc_driver_sysfs_attributes; + struct delayed_work work; + struct edac_raw_error_desc error_desc; + int op_state; + struct dentry *debugfs; + u8 fake_inject_layer[3]; + bool fake_inject_ue; + u16 fake_inject_count; }; -struct xhci_segment; - -union xhci_trb; +struct rank_info; -struct xhci_ring { - struct xhci_segment *first_seg; - struct xhci_segment *last_seg; - union xhci_trb *enqueue; - struct xhci_segment *enq_seg; - union xhci_trb *dequeue; - struct xhci_segment *deq_seg; - struct list_head td_list; - u32 cycle_state; - unsigned int stream_id; - unsigned int num_segs; - unsigned int num_trbs_free; - unsigned int bounce_buf_len; - enum xhci_ring_type type; - bool last_td_was_short; - struct xarray *trb_address_map; +struct csrow_info { + struct device dev; + unsigned long first_page; + unsigned long last_page; + unsigned long page_mask; + int csrow_idx; + u32 ue_count; + u32 ce_count; + struct mem_ctl_info *mci; + u32 nr_channels; + struct rank_info **channels; }; -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 rank_info { + int chan_idx; + struct csrow_info *csrow; + struct dimm_info *dimm; + u32 ce_count; }; -struct xhci_link_trb { - __le64 segment_ptr; - __le32 intr_target; - __le32 control; +struct dimm_info { + struct device dev; + char label[32]; + unsigned int location[3]; + struct mem_ctl_info *mci; + unsigned int idx; + u32 grain; + enum dev_type dtype; + enum mem_type mtype; + enum edac_type edac_mode; + u32 nr_pages; + unsigned int csrow; + unsigned int cschannel; + u16 smbios_handle; + u32 ce_count; + u32 ue_count; }; -struct xhci_transfer_event { - __le64 buffer; - __le32 transfer_len; - __le32 flags; +struct edac_mc_layer { + enum edac_mc_layer_type type; + unsigned int size; + bool is_virt_csrow; }; -struct xhci_event_cmd { - __le64 cmd_trb; - __le32 status; - __le32 flags; +struct freq_attr { + struct attribute attr; + ssize_t (*show)(struct cpufreq_policy *, char *); + ssize_t (*store)(struct cpufreq_policy *, const char *, size_t); }; -struct xhci_generic_trb { - __le32 field[4]; +struct cpufreq_stats { + unsigned int total_trans; + unsigned long long last_time; + unsigned int max_state; + unsigned int state_num; + unsigned int last_index; + u64 *time_in_state; + unsigned int *freq_table; + unsigned int *trans_table; + unsigned int reset_pending; + unsigned long long reset_time; }; -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 tegra124_cpufreq_priv { + struct clk *cpu_clk; + struct clk *pllp_clk; + struct clk *pllx_clk; + struct clk *dfll_clk; + struct platform_device *cpufreq_dt_pdev; }; -struct s3_save { - u32 command; - u32 dev_nt; - u64 dcbaa_ptr; - u32 config_reg; -}; +typedef unsigned int mmc_pm_flag_t; -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 mmc_ios { + unsigned int clock; + unsigned short vdd; + unsigned int power_delay_ms; + unsigned char bus_mode; + unsigned char chip_select; + unsigned char power_mode; + unsigned char bus_width; + unsigned char timing; + unsigned char signal_voltage; + unsigned char drv_type; + bool enhanced_strobe; }; -struct xhci_port; - -struct usb_hcd; - -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 mmc_ctx { + struct task_struct *task; }; -struct xhci_cap_regs; - -struct xhci_op_regs; - -struct xhci_run_regs; - -struct xhci_doorbell_array; +struct mmc_slot { + int cd_irq; + bool cd_wake_enabled; + void *handler_priv; +}; -struct xhci_device_context_array; +struct mmc_supply { + struct regulator *vmmc; + struct regulator *vqmmc; +}; -struct xhci_interrupter; +struct mmc_host_ops; -struct xhci_command; +struct mmc_pwrseq; -struct xhci_scratchpad; +struct mmc_card; -struct xhci_virt_device; +struct mmc_bus_ops; -struct xhci_root_port_bw_info; +struct mmc_request; -struct xhci_port_cap; +struct mmc_cqe_ops; -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; +struct mmc_host { + struct device *parent; + struct device class_dev; + int index; + const struct mmc_host_ops *ops; + struct mmc_pwrseq *pwrseq; + unsigned int f_min; + unsigned int f_max; + unsigned int f_init; + u32 ocr_avail; + u32 ocr_avail_sdio; + u32 ocr_avail_sd; + u32 ocr_avail_mmc; + struct wakeup_source *ws; + u32 max_current_330; + u32 max_current_300; + u32 max_current_180; + u32 caps; + u32 caps2; + int fixed_drv_type; + mmc_pm_flag_t pm_caps; + unsigned int max_seg_size; + unsigned short max_segs; + unsigned short unused; + unsigned int max_req_size; + unsigned int max_blk_size; + unsigned int max_blk_count; + unsigned int max_busy_timeout; 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 mmc_ios ios; + unsigned int use_spi_crc: 1; + unsigned int claimed: 1; + unsigned int doing_init_tune: 1; + unsigned int can_retune: 1; + unsigned int doing_retune: 1; + unsigned int retune_now: 1; + unsigned int retune_paused: 1; + unsigned int retune_crc_disable: 1; + unsigned int can_dma_map_merge: 1; + unsigned int vqmmc_enabled: 1; + int rescan_disable; + int rescan_entered; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct timer_list retune_timer; + bool trigger_card_event; + struct mmc_card *card; + wait_queue_head_t wq; + struct mmc_ctx *claimer; + int claim_cnt; + struct mmc_ctx default_ctx; + struct delayed_work detect; + int detect_change; + struct mmc_slot slot; + const struct mmc_bus_ops *bus_ops; + unsigned int sdio_irqs; + struct task_struct *sdio_irq_thread; + struct work_struct sdio_irq_work; + bool sdio_irq_pending; + atomic_t sdio_irq_thread_abort; + mmc_pm_flag_t pm_flags; + struct led_trigger *led; + bool regulator_enabled; + struct mmc_supply supply; struct dentry *debugfs_root; - struct dentry *debugfs_slots; - struct list_head regset_list; - void *dbc; - unsigned long priv[0]; + struct mmc_request *ongoing_mrq; + unsigned int actual_clock; + unsigned int slotno; + int dsr_req; + u32 dsr; + const struct mmc_cqe_ops *cqe_ops; + void *cqe_private; + int cqe_qdepth; + bool cqe_enabled; + bool cqe_on; + bool hsq_enabled; + int hsq_depth; + u32 err_stats[15]; + long: 64; + long: 64; + long: 64; + long: 64; + unsigned long private[0]; }; -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 mmc_host_ops { + void (*post_req)(struct mmc_host *, struct mmc_request *, int); + void (*pre_req)(struct mmc_host *, struct mmc_request *); + void (*request)(struct mmc_host *, struct mmc_request *); + int (*request_atomic)(struct mmc_host *, struct mmc_request *); + void (*set_ios)(struct mmc_host *, struct mmc_ios *); + int (*get_ro)(struct mmc_host *); + int (*get_cd)(struct mmc_host *); + void (*enable_sdio_irq)(struct mmc_host *, int); + void (*ack_sdio_irq)(struct mmc_host *); + void (*init_card)(struct mmc_host *, struct mmc_card *); + int (*start_signal_voltage_switch)(struct mmc_host *, struct mmc_ios *); + int (*card_busy)(struct mmc_host *); + int (*execute_tuning)(struct mmc_host *, u32); + int (*prepare_hs400_tuning)(struct mmc_host *, struct mmc_ios *); + int (*execute_hs400_tuning)(struct mmc_host *, struct mmc_card *); + int (*prepare_sd_hs_tuning)(struct mmc_host *, struct mmc_card *); + int (*execute_sd_hs_tuning)(struct mmc_host *, struct mmc_card *); + int (*hs400_prepare_ddr)(struct mmc_host *); + void (*hs400_downgrade)(struct mmc_host *); + void (*hs400_complete)(struct mmc_host *); + void (*hs400_enhanced_strobe)(struct mmc_host *, struct mmc_ios *); + int (*select_drive_strength)(struct mmc_card *, unsigned int, int, int, int *); + void (*card_hw_reset)(struct mmc_host *); + void (*card_event)(struct mmc_host *); + int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); + int (*init_sd_express)(struct mmc_host *, struct mmc_ios *); }; -struct hc_driver; +struct mmc_command; -struct usb_phy_roothub; +struct mmc_data; -struct gen_pool; +struct mmc_request { + struct mmc_command *sbc; + struct mmc_command *cmd; + struct mmc_data *data; + struct mmc_command *stop; + struct completion completion; + struct completion cmd_completion; + void (*done)(struct mmc_request *); + void (*recovery_notifier)(struct mmc_request *); + struct mmc_host *host; + bool cap_cmd_during_tfr; + int tag; +}; -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]; +struct mmc_command { + u32 opcode; + u32 arg; + u32 resp[4]; + unsigned int flags; + unsigned int retries; + int error; + unsigned int busy_timeout; + struct mmc_data *data; + struct mmc_request *mrq; }; -struct hc_driver { - const char *description; - const char *product_desc; - size_t hcd_priv_size; - irqreturn_t (*irq)(struct usb_hcd *); - int flags; - int (*reset)(struct usb_hcd *); - int (*start)(struct usb_hcd *); - int (*pci_suspend)(struct usb_hcd *, bool); - int (*pci_resume)(struct usb_hcd *, pm_message_t); - int (*pci_poweroff_late)(struct usb_hcd *, bool); - void (*stop)(struct usb_hcd *); - void (*shutdown)(struct usb_hcd *); - int (*get_frame_number)(struct usb_hcd *); - int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t); - int (*urb_dequeue)(struct usb_hcd *, struct urb *, int); - int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t); - void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *); - void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *); - void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *); - int (*hub_status_data)(struct usb_hcd *, char *); - int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); - int (*bus_suspend)(struct usb_hcd *); - int (*bus_resume)(struct usb_hcd *); - int (*start_port_reset)(struct usb_hcd *, unsigned int); - unsigned long (*get_resuming_ports)(struct usb_hcd *); - void (*relinquish_port)(struct usb_hcd *, int); - int (*port_handed_over)(struct usb_hcd *, int); - void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *); - int (*alloc_dev)(struct usb_hcd *, struct usb_device *); - void (*free_dev)(struct usb_hcd *, struct usb_device *); - int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t); - int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t); - int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); - int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); - int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); - void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); - int (*address_device)(struct usb_hcd *, struct usb_device *); - 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 mmc_data { + unsigned int timeout_ns; + unsigned int timeout_clks; + unsigned int blksz; + unsigned int blocks; + unsigned int blk_addr; + int error; + unsigned int flags; + unsigned int bytes_xfered; + struct mmc_command *stop; + struct mmc_request *mrq; + unsigned int sg_len; + int sg_count; + struct scatterlist *sg; + s32 host_cookie; }; -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 mmc_cid { + unsigned int manfid; + char prod_name[8]; + unsigned char prv; + unsigned int serial; + unsigned short oemid; + unsigned short year; + unsigned char hwrev; + unsigned char fwrev; + unsigned char month; }; -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 mmc_csd { + unsigned char structure; + unsigned char mmca_vsn; + unsigned short cmdclass; + unsigned short taac_clks; + unsigned int taac_ns; + unsigned int c_size; + unsigned int r2w_factor; + unsigned int max_dtr; + unsigned int erase_size; + unsigned int read_blkbits; + unsigned int write_blkbits; + unsigned int capacity; + unsigned int read_partial: 1; + unsigned int read_misalign: 1; + unsigned int write_partial: 1; + unsigned int write_misalign: 1; + unsigned int dsr_imp: 1; }; -struct xhci_intr_reg { - __le32 irq_pending; - __le32 irq_control; - __le32 erst_size; - __le32 rsvd; - __le64 erst_base; - __le64 erst_dequeue; +struct mmc_ext_csd { + u8 rev; + u8 erase_group_def; + u8 sec_feature_support; + u8 rel_sectors; + u8 rel_param; + bool enhanced_rpmb_supported; + u8 part_config; + u8 cache_ctrl; + u8 rst_n_function; + u8 max_packed_writes; + u8 max_packed_reads; + u8 packed_event_en; + unsigned int part_time; + unsigned int sa_timeout; + unsigned int generic_cmd6_time; + unsigned int power_off_longtime; + u8 power_off_notification; + unsigned int hs_max_dtr; + unsigned int hs200_max_dtr; + unsigned int sectors; + unsigned int hc_erase_size; + unsigned int hc_erase_timeout; + unsigned int sec_trim_mult; + unsigned int sec_erase_mult; + unsigned int trim_timeout; + bool partition_setting_completed; + unsigned long long enhanced_area_offset; + unsigned int enhanced_area_size; + unsigned int cache_size; + bool hpi_en; + bool hpi; + unsigned int hpi_cmd; + bool bkops; + bool man_bkops_en; + bool auto_bkops_en; + unsigned int data_sector_size; + unsigned int data_tag_unit_size; + unsigned int boot_ro_lock; + bool boot_ro_lockable; + bool ffu_capable; + bool cmdq_en; + bool cmdq_support; + unsigned int cmdq_depth; + u8 fwrev[8]; + u8 raw_exception_status; + u8 raw_partition_support; + u8 raw_rpmb_size_mult; + u8 raw_erased_mem_count; + u8 strobe_support; + u8 raw_ext_csd_structure; + u8 raw_card_type; + u8 raw_driver_strength; + u8 out_of_int_time; + u8 raw_pwr_cl_52_195; + u8 raw_pwr_cl_26_195; + u8 raw_pwr_cl_52_360; + u8 raw_pwr_cl_26_360; + u8 raw_s_a_timeout; + u8 raw_hc_erase_gap_size; + u8 raw_erase_timeout_mult; + u8 raw_hc_erase_grp_size; + u8 raw_boot_mult; + u8 raw_sec_trim_mult; + u8 raw_sec_erase_mult; + u8 raw_sec_feature_support; + u8 raw_trim_mult; + u8 raw_pwr_cl_200_195; + u8 raw_pwr_cl_200_360; + u8 raw_pwr_cl_ddr_52_195; + u8 raw_pwr_cl_ddr_52_360; + u8 raw_pwr_cl_ddr_200_360; + u8 raw_bkops_status; + u8 raw_sectors[4]; + u8 pre_eol_info; + u8 device_life_time_est_typ_a; + u8 device_life_time_est_typ_b; + unsigned int feature_support; }; -struct xhci_run_regs { - __le32 microframe_index; - __le32 rsvd[7]; - struct xhci_intr_reg ir_set[128]; +struct sd_scr { + unsigned char sda_vsn; + unsigned char sda_spec3; + unsigned char sda_spec4; + unsigned char sda_specx; + unsigned char bus_widths; + unsigned char cmds; }; -struct xhci_doorbell_array { - __le32 doorbell[256]; +struct sd_ssr { + unsigned int au; + unsigned int erase_timeout; + unsigned int erase_offset; }; -struct xhci_device_context_array { - __le64 dev_context_ptrs[256]; - dma_addr_t dma; +struct sd_switch_caps { + unsigned int hs_max_dtr; + unsigned int uhs_max_dtr; + unsigned int sd3_bus_mode; + unsigned int sd3_drv_type; + unsigned int sd3_curr_limit; }; -struct xhci_erst_entry; +struct sd_ext_reg { + u8 fno; + u8 page; + u16 offset; + u8 rev; + u8 feature_enabled; + u8 feature_support; +}; -struct xhci_erst { - struct xhci_erst_entry *entries; - unsigned int num_entries; - dma_addr_t erst_dma_addr; - unsigned int erst_size; +struct sdio_cccr { + unsigned int sdio_vsn; + unsigned int sd_vsn; + unsigned int multi_block: 1; + unsigned int low_speed: 1; + unsigned int wide_bus: 1; + unsigned int high_power: 1; + unsigned int high_speed: 1; + unsigned int disable_cd: 1; + unsigned int enable_async_irq: 1; }; -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; +struct sdio_cis { + unsigned short vendor; + unsigned short device; + unsigned short blksize; + unsigned int max_dtr; }; -struct xhci_erst_entry { - __le64 seg_addr; - __le32 seg_size; - __le32 rsvd; +struct mmc_part { + u64 size; + unsigned int part_cfg; + char name[20]; + bool force_ro; + unsigned int area_type; }; -struct xhci_container_ctx; +struct sdio_func; -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 sdio_func_tuple; -struct xhci_container_ctx { +struct mmc_card { + struct mmc_host *host; + struct device dev; + u32 ocr; + unsigned int rca; unsigned int type; - int size; - u8 *bytes; - dma_addr_t dma; + unsigned int state; + unsigned int quirks; + unsigned int quirk_max_rate; + bool written_flag; + bool reenable_cmdq; + unsigned int erase_size; + unsigned int erase_shift; + unsigned int pref_erase; + unsigned int eg_boundary; + unsigned int erase_arg; + u8 erased_byte; + u32 raw_cid[4]; + u32 raw_csd[4]; + u32 raw_scr[2]; + u32 raw_ssr[16]; + struct mmc_cid cid; + struct mmc_csd csd; + struct mmc_ext_csd ext_csd; + struct sd_scr scr; + struct sd_ssr ssr; + struct sd_switch_caps sw_caps; + struct sd_ext_reg ext_power; + struct sd_ext_reg ext_perf; + unsigned int sdio_funcs; + atomic_t sdio_funcs_probed; + struct sdio_cccr cccr; + struct sdio_cis cis; + struct sdio_func *sdio_func[7]; + struct sdio_func *sdio_single_irq; + u8 major_rev; + u8 minor_rev; + unsigned int num_info; + const char **info; + struct sdio_func_tuple *tuples; + unsigned int sd_bus_speed; + unsigned int mmc_avail_type; + unsigned int drive_strength; + struct dentry *debugfs_root; + struct mmc_part part[7]; + unsigned int nr_parts; + struct workqueue_struct *complete_wq; }; -struct xhci_scratchpad { - u64 *sp_array; - dma_addr_t sp_dma; - void **sp_buffers; +struct mmc_bus_ops { + void (*remove)(struct mmc_host *); + void (*detect)(struct mmc_host *); + int (*pre_suspend)(struct mmc_host *); + int (*suspend)(struct mmc_host *); + int (*resume)(struct mmc_host *); + int (*runtime_suspend)(struct mmc_host *); + int (*runtime_resume)(struct mmc_host *); + int (*alive)(struct mmc_host *); + int (*shutdown)(struct mmc_host *); + int (*hw_reset)(struct mmc_host *); + int (*sw_reset)(struct mmc_host *); + bool (*cache_enabled)(struct mmc_host *); + int (*flush_cache)(struct mmc_host *); }; -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 mmc_cqe_ops { + int (*cqe_enable)(struct mmc_host *, struct mmc_card *); + void (*cqe_disable)(struct mmc_host *); + int (*cqe_request)(struct mmc_host *, struct mmc_request *); + void (*cqe_post_req)(struct mmc_host *, struct mmc_request *); + void (*cqe_off)(struct mmc_host *); + int (*cqe_wait_for_idle)(struct mmc_host *); + bool (*cqe_timeout)(struct mmc_host *, struct mmc_request *, bool *); + void (*cqe_recovery_start)(struct mmc_host *); + void (*cqe_recovery_finish)(struct mmc_host *); }; -struct xhci_stream_info; +struct sdhci_pltfm_data; -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 sdhci_am654_driver_data { + const struct sdhci_pltfm_data *pdata; + u32 flags; }; -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 sdhci_ops; + +struct sdhci_pltfm_data { + const struct sdhci_ops *ops; + unsigned int quirks; + unsigned int quirks2; }; -struct xhci_stream_ctx; +struct sdhci_host; -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 sdhci_ops { + u32 (*read_l)(struct sdhci_host *, int); + u16 (*read_w)(struct sdhci_host *, int); + u8 (*read_b)(struct sdhci_host *, int); + void (*write_l)(struct sdhci_host *, u32, int); + void (*write_w)(struct sdhci_host *, u16, int); + void (*write_b)(struct sdhci_host *, u8, int); + void (*set_clock)(struct sdhci_host *, unsigned int); + void (*set_power)(struct sdhci_host *, unsigned char, unsigned short); + u32 (*irq)(struct sdhci_host *, u32); + int (*set_dma_mask)(struct sdhci_host *); + int (*enable_dma)(struct sdhci_host *); + unsigned int (*get_max_clock)(struct sdhci_host *); + unsigned int (*get_min_clock)(struct sdhci_host *); + unsigned int (*get_timeout_clock)(struct sdhci_host *); + unsigned int (*get_max_timeout_count)(struct sdhci_host *); + void (*set_timeout)(struct sdhci_host *, struct mmc_command *); + void (*set_bus_width)(struct sdhci_host *, int); + void (*platform_send_init_74_clocks)(struct sdhci_host *, u8); + unsigned int (*get_ro)(struct sdhci_host *); + void (*reset)(struct sdhci_host *, u8); + int (*platform_execute_tuning)(struct sdhci_host *, u32); + void (*set_uhs_signaling)(struct sdhci_host *, unsigned int); + void (*hw_reset)(struct sdhci_host *); + void (*adma_workaround)(struct sdhci_host *, u32); + void (*card_event)(struct sdhci_host *); + void (*voltage_switch)(struct sdhci_host *); + void (*adma_write_desc)(struct sdhci_host *, void **, dma_addr_t, int, unsigned int); + void (*copy_to_bounce_buffer)(struct sdhci_host *, struct mmc_data *, unsigned int); + void (*request_done)(struct sdhci_host *, struct mmc_request *); + void (*dump_vendor_regs)(struct sdhci_host *); }; -struct xhci_stream_ctx { - __le64 stream_ring; - __le32 reserved[2]; +struct sdhci_host { + const char *hw_name; + unsigned int quirks; + unsigned int quirks2; + int irq; + void *ioaddr; + phys_addr_t mapbase; + char *bounce_buffer; + dma_addr_t bounce_addr; + unsigned int bounce_buffer_size; + const struct sdhci_ops *ops; + struct mmc_host *mmc; + struct mmc_host_ops mmc_host_ops; + u64 dma_mask; + struct led_classdev led; + char led_name[32]; + spinlock_t lock; + int flags; + unsigned int version; + unsigned int max_clk; + unsigned int timeout_clk; + u8 max_timeout_count; + unsigned int clk_mul; + unsigned int clock; + u8 pwr; + u8 drv_type; + bool reinit_uhs; + bool runtime_suspended; + bool bus_on; + bool preset_enabled; + bool pending_reset; + bool irq_wake_enabled; + bool v4_mode; + bool use_external_dma; + bool always_defer_done; + struct mmc_request *mrqs_done[2]; + struct mmc_command *cmd; + struct mmc_command *data_cmd; + struct mmc_command *deferred_cmd; + struct mmc_data *data; + unsigned int data_early: 1; + struct sg_mapping_iter sg_miter; + unsigned int blocks; + int sg_count; + int max_adma; + void *adma_table; + void *align_buffer; + size_t adma_table_sz; + size_t align_buffer_sz; + dma_addr_t adma_addr; + dma_addr_t align_addr; + unsigned int desc_sz; + unsigned int alloc_desc_sz; + struct workqueue_struct *complete_wq; + struct work_struct complete_work; + struct timer_list timer; + struct timer_list data_timer; + u32 caps; + u32 caps1; + bool read_caps; + bool sdhci_core_to_disable_vqmmc; + unsigned int ocr_avail_sdio; + unsigned int ocr_avail_sd; + unsigned int ocr_avail_mmc; + u32 ocr_mask; + unsigned int timing; + u32 thread_isr; + u32 ier; + bool cqe_on; + u32 cqe_ier; + u32 cqe_err_ier; + wait_queue_head_t buf_ready_int; + unsigned int tuning_done; + unsigned int tuning_count; + unsigned int tuning_mode; + unsigned int tuning_err; + int tuning_delay; + int tuning_loop_count; + u32 sdma_boundary; + u32 adma_table_cnt; + u64 data_timeout; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + unsigned long private[0]; }; -struct xhci_root_port_bw_info { - struct list_head tts; - unsigned int num_active_tts; - struct xhci_interval_bw_table bw_table; -}; +struct cqhci_host; -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 cqhci_host_ops { + void (*dumpregs)(struct mmc_host *); + void (*write_l)(struct cqhci_host *, u32, int); + u32 (*read_l)(struct cqhci_host *, int); + void (*enable)(struct mmc_host *); + void (*disable)(struct mmc_host *, bool); + void (*update_dcmd_desc)(struct mmc_host *, struct mmc_request *, u64 *); + void (*pre_enable)(struct mmc_host *); + void (*post_disable)(struct mmc_host *); }; -struct xhci_port_cap { - u32 *psi; - u8 psi_count; - u8 psi_uid_count; - u8 maj_rev; - u8 min_rev; -}; +struct cqhci_slot; -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 cqhci_host { + const struct cqhci_host_ops *ops; + void *mmio; + struct mmc_host *mmc; + spinlock_t lock; + unsigned int rca; + bool dma64; + int num_slots; + int qcnt; + u32 dcmd_slot; + u32 caps; + u32 quirks; + bool enabled; + bool halted; + bool init_done; + bool activated; + bool waiting_for_idle; + bool recovery_halt; + size_t desc_size; + size_t data_size; + u8 *desc_base; + u8 slot_sz; + u8 task_desc_len; + u8 link_desc_len; + u8 *trans_desc_base; + u8 trans_desc_len; + dma_addr_t desc_dma_base; + dma_addr_t trans_desc_dma_base; + struct completion halt_comp; + wait_queue_head_t wait_queue; + struct cqhci_slot *slot; }; -struct urb_priv { - int num_tds; - int num_tds_done; - struct xhci_td td[0]; +struct timing_data { + const char *otap_binding; + const char *itap_binding; + u32 capability; }; -enum usb_phy_interface { - USBPHY_INTERFACE_MODE_UNKNOWN = 0, - USBPHY_INTERFACE_MODE_UTMI = 1, - USBPHY_INTERFACE_MODE_UTMIW = 2, - USBPHY_INTERFACE_MODE_ULPI = 3, - USBPHY_INTERFACE_MODE_SERIAL = 4, - USBPHY_INTERFACE_MODE_HSIC = 5, +struct sdhci_am654_data { + struct regmap *base; + bool legacy_otapdly; + int otap_del_sel[11]; + int itap_del_sel[11]; + int clkbuf_sel; + int trm_icp; + int drv_strength; + int strb_sel; + u32 flags; + u32 quirks; }; -enum ci_role { - CI_ROLE_HOST = 0, - CI_ROLE_GADGET = 1, - CI_ROLE_END = 2, +struct sdhci_pltfm_host { + struct clk *clk; + unsigned int clock; + u16 xfer_mode_shadow; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + unsigned long private[0]; }; -enum otg_fsm_timer { - A_WAIT_VRISE = 0, - A_WAIT_VFALL = 1, - A_WAIT_BCON = 2, - A_AIDL_BDIS = 3, - B_ASE0_BRST = 4, - A_BIDL_ADIS = 5, - B_AIDL_BDIS = 6, - B_SE0_SRP = 7, - B_SRP_FAIL = 8, - A_WAIT_ENUM = 9, - B_DATA_PLS = 10, - B_SSEND_SRP = 11, - NUM_OTG_FSM_TIMERS = 12, +struct sdhci_sparx5_data { + struct sdhci_host *host; + struct regmap *cpu_ctrl; + int delay_clock; }; -enum ci_revision { - CI_REVISION_1X = 10, - CI_REVISION_20 = 20, - CI_REVISION_21 = 21, - CI_REVISION_22 = 22, - CI_REVISION_23 = 23, - CI_REVISION_24 = 24, - CI_REVISION_25 = 25, - CI_REVISION_25_PLUS = 26, - CI_REVISION_UNKNOWN = 99, +struct led_trigger_cpu { + bool is_active; + char name[8]; + struct led_trigger *_trig; }; -enum ci_hw_regs { - CAP_CAPLENGTH = 0, - CAP_HCCPARAMS = 1, - CAP_DCCPARAMS = 2, - CAP_TESTMODE = 3, - CAP_LAST = 3, - OP_USBCMD = 4, - OP_USBSTS = 5, - OP_USBINTR = 6, - OP_FRINDEX = 7, - OP_DEVICEADDR = 8, - OP_ENDPTLISTADDR = 9, - OP_TTCTRL = 10, - OP_BURSTSIZE = 11, - OP_ULPI_VIEWPORT = 12, - OP_PORTSC = 13, - OP_DEVLC = 14, - OP_OTGSC = 15, - OP_USBMODE = 16, - OP_ENDPTSETUPSTAT = 17, - OP_ENDPTPRIME = 18, - OP_ENDPTFLUSH = 19, - OP_ENDPTSTAT = 20, - OP_ENDPTCOMPLETE = 21, - OP_ENDPTCTRL = 22, - OP_LAST = 38, +enum cpu_led_event { + CPU_LED_IDLE_START = 0, + CPU_LED_IDLE_END = 1, + CPU_LED_START = 2, + CPU_LED_STOP = 3, + CPU_LED_HALTED = 4, }; -struct ci_hdrc; +struct tegra_bpmp; -struct ci_hdrc_cable { - bool connected; - bool changed; - bool enabled; - struct extcon_dev *edev; - struct ci_hdrc *ci; - struct notifier_block nb; -}; +struct tegra_bpmp_channel; -struct ci_hdrc_platform_data { - const char *name; - uintptr_t capoffset; - unsigned int power_budget; - struct phy *phy; - struct usb_phy *usb_phy; - enum usb_phy_interface phy_mode; - unsigned long flags; - enum usb_dr_mode dr_mode; - int (*notify_event)(struct ci_hdrc *, unsigned int); - struct regulator *reg_vbus; - struct usb_otg_caps ci_otg_caps; - bool tpl_support; - u32 itc_setting; - u32 ahb_burst_config; - u32 tx_burst_size; - u32 rx_burst_size; - struct ci_hdrc_cable vbus_extcon; - struct ci_hdrc_cable id_extcon; - u32 phy_clkgate_delay_us; - struct pinctrl *pctl; - struct pinctrl_state *pins_default; - struct pinctrl_state *pins_host; - struct pinctrl_state *pins_device; - int (*hub_control)(struct ci_hdrc *, u16, u16, u16, char *, u16, bool *, unsigned long *); - void (*enter_lpm)(struct ci_hdrc *, bool); +struct tegra_bpmp_ops { + int (*init)(struct tegra_bpmp *); + void (*deinit)(struct tegra_bpmp *); + bool (*is_response_ready)(struct tegra_bpmp_channel *); + bool (*is_request_ready)(struct tegra_bpmp_channel *); + int (*ack_response)(struct tegra_bpmp_channel *); + int (*ack_request)(struct tegra_bpmp_channel *); + bool (*is_response_channel_free)(struct tegra_bpmp_channel *); + bool (*is_request_channel_free)(struct tegra_bpmp_channel *); + int (*post_response)(struct tegra_bpmp_channel *); + int (*post_request)(struct tegra_bpmp_channel *); + int (*ring_doorbell)(struct tegra_bpmp *); + int (*resume)(struct tegra_bpmp *); }; -struct ci_hdrc_msm { - struct platform_device *ci; - struct clk *core_clk; - struct clk *iface_clk; - struct clk *fs_clk; - struct ci_hdrc_platform_data pdata; - struct reset_controller_dev rcdev; - bool secondary_phy; - bool hsic; - void *base; +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 hw_bank { - unsigned int lpm; - resource_size_t phys; - void *abs; - void *cap; - void *op; - size_t size; - void *regmap[39]; +struct semaphore { + raw_spinlock_t lock; + unsigned int count; + struct list_head wait_list; }; -struct otg_fsm_ops; - -struct otg_fsm { - int id; - int adp_change; - int power_up; - int a_srp_det; - int a_vbus_vld; - int b_conn; - int a_bus_resume; - int a_bus_suspend; - int a_conn; - int b_se0_srp; - int b_ssend_srp; - int b_sess_vld; - int test_device; - int a_bus_drop; - int a_bus_req; - int b_bus_req; - int a_sess_vld; - int b_bus_resume; - int b_bus_suspend; - int drv_vbus; - int loc_conn; - int loc_sof; - int adp_prb; - int adp_sns; - int data_pulse; - int a_set_b_hnp_en; - int b_srp_done; - int b_hnp_enable; - int a_clr_err; - int a_bus_drop_inf; - int a_bus_req_inf; - int a_clr_err_inf; - int b_bus_req_inf; - int a_suspend_req_inf; - int a_wait_vrise_tmout; - int a_wait_vfall_tmout; - int a_wait_bcon_tmout; - int a_aidl_bdis_tmout; - int b_ase0_brst_tmout; - int a_bidl_adis_tmout; - struct otg_fsm_ops *ops; - struct usb_otg *otg; - int protocol; - struct mutex lock; - u8 *host_req_flag; - struct delayed_work hnp_polling_work; - bool hnp_work_inited; - bool state_changed; -}; +struct tegra_bpmp_soc; -struct ci_hw_qh; +struct mbox_chan; -struct td_node; +struct tegra_bpmp_clk; -struct ci_hw_ep { - struct usb_ep ep; - u8 dir; - u8 num; - u8 type; - char name[16]; +struct tegra_bpmp { + const struct tegra_bpmp_soc *soc; + struct device *dev; + void *priv; struct { - struct list_head queue; - struct ci_hw_qh *ptr; - dma_addr_t dma; - } qh; - int wedge; - struct ci_hdrc *ci; - spinlock_t *lock; - struct dma_pool *td_pool; - struct td_node *pending_td; + struct mbox_client client; + struct mbox_chan *channel; + } mbox; + spinlock_t atomic_tx_lock; + struct tegra_bpmp_channel *tx_channel; + struct tegra_bpmp_channel *rx_channel; + struct tegra_bpmp_channel *threaded_channels; + struct { + unsigned long *allocated; + unsigned long *busy; + unsigned int count; + struct semaphore lock; + } threaded; + struct list_head mrqs; + spinlock_t lock; + struct tegra_bpmp_clk **clocks; + unsigned int num_clocks; + struct reset_controller_dev rstc; + struct genpd_onecell_data genpd; + struct dentry *debugfs_mirror; + bool suspended; }; -struct ulpi_ops { - int (*read)(struct device *, u8); - int (*write)(struct device *, u8, u8); +struct tegra_bpmp_soc { + struct { + struct { + unsigned int offset; + unsigned int count; + unsigned int timeout; + } cpu_tx; + struct { + unsigned int offset; + unsigned int count; + unsigned int timeout; + } thread; + struct { + unsigned int offset; + unsigned int count; + unsigned int timeout; + } cpu_rx; + } channels; + const struct tegra_bpmp_ops *ops; + unsigned int num_resets; }; -struct ci_role_driver; - -struct ulpi; - -struct ci_hdrc { - struct device *dev; - spinlock_t lock; - struct hw_bank hw_bank; - int irq; - struct ci_role_driver *roles[2]; - enum ci_role role; - bool is_otg; - struct usb_otg otg; - struct otg_fsm fsm; - struct hrtimer otg_fsm_hrtimer; - ktime_t hr_timeouts[12]; - unsigned int enabled_otg_timer_bits; - enum otg_fsm_timer next_otg_timer; - struct usb_role_switch *role_switch; - struct work_struct work; - struct workqueue_struct *wq; - struct dma_pool *qh_pool; - struct dma_pool *td_pool; - struct usb_gadget gadget; - struct usb_gadget_driver *driver; - enum usb_device_state resume_state; - unsigned int hw_ep_max; - struct ci_hw_ep ci_hw_ep[32]; - u32 ep0_dir; - struct ci_hw_ep *ep0out; - struct ci_hw_ep *ep0in; - struct usb_request *status; - bool setaddr; - u8 address; - u8 remote_wakeup; - u8 suspended; - u8 test_mode; - struct ci_hdrc_platform_data *platdata; - int vbus_active; - struct ulpi *ulpi; - struct ulpi_ops ulpi_ops; - struct phy *phy; - struct usb_phy *usb_phy; - struct usb_hcd *hcd; - bool id_event; - bool b_sess_valid_event; - bool imx28_write_fix; - bool supports_runtime_pm; - bool in_lpm; - bool wakeup_int; - enum ci_revision rev; - struct mutex mutex; +struct iosys_map { + union { + void *vaddr_iomem; + void *vaddr; + }; + bool is_iomem; }; -struct ci_role_driver { - int (*start)(struct ci_hdrc *); - void (*stop)(struct ci_hdrc *); - void (*suspend)(struct ci_hdrc *); - void (*resume)(struct ci_hdrc *, bool); - irqreturn_t (*irq)(struct ci_hdrc *); - const char *name; -}; +struct tegra_ivc; -struct otg_fsm_ops { - void (*chrg_vbus)(struct otg_fsm *, int); - void (*drv_vbus)(struct otg_fsm *, int); - void (*loc_conn)(struct otg_fsm *, int); - void (*loc_sof)(struct otg_fsm *, int); - void (*start_pulse)(struct otg_fsm *); - void (*start_adp_prb)(struct otg_fsm *); - void (*start_adp_sns)(struct otg_fsm *); - void (*add_timer)(struct otg_fsm *, enum otg_fsm_timer); - void (*del_timer)(struct otg_fsm *, enum otg_fsm_timer); - int (*start_host)(struct otg_fsm *, int); - int (*start_gadget)(struct otg_fsm *, int); +struct tegra_bpmp_channel { + struct tegra_bpmp *bpmp; + struct iosys_map ib; + struct iosys_map ob; + struct completion completion; + struct tegra_ivc *ivc; + unsigned int index; }; -enum ps2_disposition { - PS2_PROCESS = 0, - PS2_IGNORE = 1, - PS2_ERROR = 2, +struct tegra210_bpmp { + void *atomics; + void *arb_sema; + struct irq_data *tx_irq_data; }; -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 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, }; -enum psmouse_state { - PSMOUSE_IGNORE = 0, - PSMOUSE_INITIALIZING = 1, - PSMOUSE_RESYNCING = 2, - PSMOUSE_CMD_MODE = 3, - PSMOUSE_ACTIVATED = 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 psmouse_scale { - PSMOUSE_SCALE11 = 0, - PSMOUSE_SCALE21 = 1, +struct of_timer_base { + void *base; + const char *name; + int index; }; -struct ps2dev; - -typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int); - -typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8); - -struct ps2dev { - struct serio *serio; - struct mutex cmd_mutex; - wait_queue_head_t wait; +struct of_timer_irq { + int irq; + int index; + int percpu; + const char *name; unsigned long flags; - u8 cmdbuf[8]; - u8 cmdcnt; - u8 nak; - ps2_pre_receive_handler_t pre_receive_handler; - ps2_receive_handler_t receive_handler; + irq_handler_t handler; }; -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; +struct of_timer_clk { + struct clk *clk; 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; + int index; + unsigned long rate; + unsigned long period; }; -struct input_mt { - int trkid; - int num_slots; - int slot; +struct timer_of { unsigned int flags; - unsigned int frame; - int *red; - struct input_mt_slot slots[0]; + struct device_node *np; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct clock_event_device clkevt; + struct of_timer_base of_base; + struct of_timer_irq of_irq; + struct of_timer_clk of_clk; + void *private_data; + long: 64; + long: 64; }; -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 usage_priority { + __u32 usage; + bool global; + unsigned int slot_overwrite; }; -struct focaltech_finger_state { - bool active; - bool valid; - unsigned int x; - unsigned int y; +enum hid_report_type { + HID_INPUT_REPORT = 0, + HID_OUTPUT_REPORT = 1, + HID_FEATURE_REPORT = 2, + HID_REPORT_TYPES = 3, }; -struct focaltech_hw_state { - struct focaltech_finger_state fingers[5]; - unsigned int width; - bool pressed; +enum hid_type { + HID_TYPE_OTHER = 0, + HID_TYPE_USBMOUSE = 1, + HID_TYPE_USBNONE = 2, }; -struct focaltech_data { - unsigned int x_max; - unsigned int y_max; - struct focaltech_hw_state state; +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, }; -enum i2c_alert_protocol { - I2C_PROTOCOL_SMBUS_ALERT = 0, - I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1, -}; +struct hid_report; -enum i2c_driver_flags { - I2C_DRV_ACPI_WAIVE_D0_PROBE = 1, -}; +struct input_dev; -enum acpi_reconfig_event { - ACPI_RECONFIG_DEVICE_ADD = 0, - ACPI_RECONFIG_DEVICE_REMOVE = 1, +struct hid_input { + struct list_head list; + struct hid_report *report; + struct input_dev *input; + const char *name; + struct list_head reports; + unsigned int application; + bool registered; }; -struct i2c_device_id; +struct hid_field; -struct i2c_board_info; +struct hid_field_entry; -struct i2c_driver { - unsigned int class; - union { - int (*probe)(struct i2c_client *); - int (*probe_new)(struct i2c_client *); - }; - void (*remove)(struct i2c_client *); - void (*shutdown)(struct i2c_client *); - void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int); - int (*command)(struct i2c_client *, unsigned int, void *); - struct device_driver driver; - const struct i2c_device_id *id_table; - int (*detect)(struct i2c_client *, struct i2c_board_info *); - const unsigned short *address_list; - struct list_head clients; - u32 flags; -}; +struct hid_device; -struct i2c_device_id { - char name[20]; - kernel_ulong_t driver_data; +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 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 hid_usage; -struct gsb_buffer { - u8 status; - u8 len; - union { - u16 wdata; - u8 bdata; - struct { - struct {} __empty_data; - u8 data[0]; - }; - }; +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 i2c_acpi_irq_context { - int irq; - bool wake_capable; +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 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 hid_field_entry { + struct list_head list; + struct hid_field *field; + unsigned int index; + __s32 priority; }; -struct acpi_connection_info { - u8 *connection; - u16 length; - u8 access_length; +struct hid_report_enum { + unsigned int numbered; + struct list_head report_list; + struct hid_report *report_id_hash[256]; }; -struct i2c_acpi_handler_data { - struct acpi_connection_info info; - struct i2c_adapter *adapter; -}; +struct hid_bpf_prog_list; -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 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 ptp_clock_caps { - int max_adj; - int n_alarm; - int n_ext_ts; - int n_per_out; - int pps; - int n_pins; - int cross_timestamping; - int adjust_phase; - int max_phase_adj; - int rsv[11]; -}; +struct hid_collection; -struct ptp_sys_offset_extended { - unsigned int n_samples; - unsigned int rsv[3]; - struct ptp_clock_time ts[75]; +struct hid_driver; + +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; + void *devres_group_id; + const struct hid_ll_driver *ll_driver; + struct mutex ll_open_lock; + unsigned int ll_open_count; + unsigned long status; + unsigned int claimed; + unsigned int quirks; + unsigned int initial_quirks; + bool io_started; + struct list_head inputs; + void *hiddev; + void *hidraw; + char name[128]; + char phys[64]; + char uniq[64]; + void *driver_data; + int (*ff_init)(struct hid_device *); + int (*hiddev_connect)(struct hid_device *, unsigned int); + void (*hiddev_disconnect)(struct hid_device *); + void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); + void (*hiddev_report_event)(struct hid_device *, struct hid_report *); + unsigned short debug; + struct dentry *debug_dir; + struct dentry *debug_rdesc; + struct dentry *debug_events; + struct list_head debug_list; + spinlock_t debug_list_lock; + wait_queue_head_t debug_wait; + struct kref ref; + unsigned int id; + struct hid_bpf bpf; }; -struct ptp_sys_offset { - unsigned int n_samples; - unsigned int rsv[3]; - struct ptp_clock_time ts[51]; +struct hid_collection { + int parent_idx; + unsigned int type; + unsigned int usage; + unsigned int level; }; -enum regfield_ids { - VER_MAJOR = 0, - VER_MINOR = 1, - VER_STEP = 2, - TSENS_EN = 3, - TSENS_SW_RST = 4, - SENSOR_EN = 5, - CODE_OR_TEMP = 6, - TRDY = 7, - INT_EN = 8, - LAST_TEMP_0 = 9, - LAST_TEMP_1 = 10, - LAST_TEMP_2 = 11, - LAST_TEMP_3 = 12, - LAST_TEMP_4 = 13, - LAST_TEMP_5 = 14, - LAST_TEMP_6 = 15, - LAST_TEMP_7 = 16, - LAST_TEMP_8 = 17, - LAST_TEMP_9 = 18, - LAST_TEMP_10 = 19, - LAST_TEMP_11 = 20, - LAST_TEMP_12 = 21, - LAST_TEMP_13 = 22, - LAST_TEMP_14 = 23, - LAST_TEMP_15 = 24, - VALID_0 = 25, - VALID_1 = 26, - VALID_2 = 27, - VALID_3 = 28, - VALID_4 = 29, - VALID_5 = 30, - VALID_6 = 31, - VALID_7 = 32, - VALID_8 = 33, - VALID_9 = 34, - VALID_10 = 35, - VALID_11 = 36, - VALID_12 = 37, - VALID_13 = 38, - VALID_14 = 39, - VALID_15 = 40, - LOWER_STATUS_0 = 41, - LOWER_STATUS_1 = 42, - LOWER_STATUS_2 = 43, - LOWER_STATUS_3 = 44, - LOWER_STATUS_4 = 45, - LOWER_STATUS_5 = 46, - LOWER_STATUS_6 = 47, - LOWER_STATUS_7 = 48, - LOWER_STATUS_8 = 49, - LOWER_STATUS_9 = 50, - LOWER_STATUS_10 = 51, - LOWER_STATUS_11 = 52, - LOWER_STATUS_12 = 53, - LOWER_STATUS_13 = 54, - LOWER_STATUS_14 = 55, - LOWER_STATUS_15 = 56, - LOW_INT_STATUS_0 = 57, - LOW_INT_STATUS_1 = 58, - LOW_INT_STATUS_2 = 59, - LOW_INT_STATUS_3 = 60, - LOW_INT_STATUS_4 = 61, - LOW_INT_STATUS_5 = 62, - LOW_INT_STATUS_6 = 63, - LOW_INT_STATUS_7 = 64, - LOW_INT_STATUS_8 = 65, - LOW_INT_STATUS_9 = 66, - LOW_INT_STATUS_10 = 67, - LOW_INT_STATUS_11 = 68, - LOW_INT_STATUS_12 = 69, - LOW_INT_STATUS_13 = 70, - LOW_INT_STATUS_14 = 71, - LOW_INT_STATUS_15 = 72, - LOW_INT_CLEAR_0 = 73, - LOW_INT_CLEAR_1 = 74, - LOW_INT_CLEAR_2 = 75, - LOW_INT_CLEAR_3 = 76, - LOW_INT_CLEAR_4 = 77, - LOW_INT_CLEAR_5 = 78, - LOW_INT_CLEAR_6 = 79, - LOW_INT_CLEAR_7 = 80, - LOW_INT_CLEAR_8 = 81, - LOW_INT_CLEAR_9 = 82, - LOW_INT_CLEAR_10 = 83, - LOW_INT_CLEAR_11 = 84, - LOW_INT_CLEAR_12 = 85, - LOW_INT_CLEAR_13 = 86, - LOW_INT_CLEAR_14 = 87, - LOW_INT_CLEAR_15 = 88, - LOW_INT_MASK_0 = 89, - LOW_INT_MASK_1 = 90, - LOW_INT_MASK_2 = 91, - LOW_INT_MASK_3 = 92, - LOW_INT_MASK_4 = 93, - LOW_INT_MASK_5 = 94, - LOW_INT_MASK_6 = 95, - LOW_INT_MASK_7 = 96, - LOW_INT_MASK_8 = 97, - LOW_INT_MASK_9 = 98, - LOW_INT_MASK_10 = 99, - LOW_INT_MASK_11 = 100, - LOW_INT_MASK_12 = 101, - LOW_INT_MASK_13 = 102, - LOW_INT_MASK_14 = 103, - LOW_INT_MASK_15 = 104, - LOW_THRESH_0 = 105, - LOW_THRESH_1 = 106, - LOW_THRESH_2 = 107, - LOW_THRESH_3 = 108, - LOW_THRESH_4 = 109, - LOW_THRESH_5 = 110, - LOW_THRESH_6 = 111, - LOW_THRESH_7 = 112, - LOW_THRESH_8 = 113, - LOW_THRESH_9 = 114, - LOW_THRESH_10 = 115, - LOW_THRESH_11 = 116, - LOW_THRESH_12 = 117, - LOW_THRESH_13 = 118, - LOW_THRESH_14 = 119, - LOW_THRESH_15 = 120, - UPPER_STATUS_0 = 121, - UPPER_STATUS_1 = 122, - UPPER_STATUS_2 = 123, - UPPER_STATUS_3 = 124, - UPPER_STATUS_4 = 125, - UPPER_STATUS_5 = 126, - UPPER_STATUS_6 = 127, - UPPER_STATUS_7 = 128, - UPPER_STATUS_8 = 129, - UPPER_STATUS_9 = 130, - UPPER_STATUS_10 = 131, - UPPER_STATUS_11 = 132, - UPPER_STATUS_12 = 133, - UPPER_STATUS_13 = 134, - UPPER_STATUS_14 = 135, - UPPER_STATUS_15 = 136, - UP_INT_STATUS_0 = 137, - UP_INT_STATUS_1 = 138, - UP_INT_STATUS_2 = 139, - UP_INT_STATUS_3 = 140, - UP_INT_STATUS_4 = 141, - UP_INT_STATUS_5 = 142, - UP_INT_STATUS_6 = 143, - UP_INT_STATUS_7 = 144, - UP_INT_STATUS_8 = 145, - UP_INT_STATUS_9 = 146, - UP_INT_STATUS_10 = 147, - UP_INT_STATUS_11 = 148, - UP_INT_STATUS_12 = 149, - UP_INT_STATUS_13 = 150, - UP_INT_STATUS_14 = 151, - UP_INT_STATUS_15 = 152, - UP_INT_CLEAR_0 = 153, - UP_INT_CLEAR_1 = 154, - UP_INT_CLEAR_2 = 155, - UP_INT_CLEAR_3 = 156, - UP_INT_CLEAR_4 = 157, - UP_INT_CLEAR_5 = 158, - UP_INT_CLEAR_6 = 159, - UP_INT_CLEAR_7 = 160, - UP_INT_CLEAR_8 = 161, - UP_INT_CLEAR_9 = 162, - UP_INT_CLEAR_10 = 163, - UP_INT_CLEAR_11 = 164, - UP_INT_CLEAR_12 = 165, - UP_INT_CLEAR_13 = 166, - UP_INT_CLEAR_14 = 167, - UP_INT_CLEAR_15 = 168, - UP_INT_MASK_0 = 169, - UP_INT_MASK_1 = 170, - UP_INT_MASK_2 = 171, - UP_INT_MASK_3 = 172, - UP_INT_MASK_4 = 173, - UP_INT_MASK_5 = 174, - UP_INT_MASK_6 = 175, - UP_INT_MASK_7 = 176, - UP_INT_MASK_8 = 177, - UP_INT_MASK_9 = 178, - UP_INT_MASK_10 = 179, - UP_INT_MASK_11 = 180, - UP_INT_MASK_12 = 181, - UP_INT_MASK_13 = 182, - UP_INT_MASK_14 = 183, - UP_INT_MASK_15 = 184, - UP_THRESH_0 = 185, - UP_THRESH_1 = 186, - UP_THRESH_2 = 187, - UP_THRESH_3 = 188, - UP_THRESH_4 = 189, - UP_THRESH_5 = 190, - UP_THRESH_6 = 191, - UP_THRESH_7 = 192, - UP_THRESH_8 = 193, - UP_THRESH_9 = 194, - UP_THRESH_10 = 195, - UP_THRESH_11 = 196, - UP_THRESH_12 = 197, - UP_THRESH_13 = 198, - UP_THRESH_14 = 199, - UP_THRESH_15 = 200, - CRITICAL_STATUS_0 = 201, - CRITICAL_STATUS_1 = 202, - CRITICAL_STATUS_2 = 203, - CRITICAL_STATUS_3 = 204, - CRITICAL_STATUS_4 = 205, - CRITICAL_STATUS_5 = 206, - CRITICAL_STATUS_6 = 207, - CRITICAL_STATUS_7 = 208, - CRITICAL_STATUS_8 = 209, - CRITICAL_STATUS_9 = 210, - CRITICAL_STATUS_10 = 211, - CRITICAL_STATUS_11 = 212, - CRITICAL_STATUS_12 = 213, - CRITICAL_STATUS_13 = 214, - CRITICAL_STATUS_14 = 215, - CRITICAL_STATUS_15 = 216, - CRIT_INT_STATUS_0 = 217, - CRIT_INT_STATUS_1 = 218, - CRIT_INT_STATUS_2 = 219, - CRIT_INT_STATUS_3 = 220, - CRIT_INT_STATUS_4 = 221, - CRIT_INT_STATUS_5 = 222, - CRIT_INT_STATUS_6 = 223, - CRIT_INT_STATUS_7 = 224, - CRIT_INT_STATUS_8 = 225, - CRIT_INT_STATUS_9 = 226, - CRIT_INT_STATUS_10 = 227, - CRIT_INT_STATUS_11 = 228, - CRIT_INT_STATUS_12 = 229, - CRIT_INT_STATUS_13 = 230, - CRIT_INT_STATUS_14 = 231, - CRIT_INT_STATUS_15 = 232, - CRIT_INT_CLEAR_0 = 233, - CRIT_INT_CLEAR_1 = 234, - CRIT_INT_CLEAR_2 = 235, - CRIT_INT_CLEAR_3 = 236, - CRIT_INT_CLEAR_4 = 237, - CRIT_INT_CLEAR_5 = 238, - CRIT_INT_CLEAR_6 = 239, - CRIT_INT_CLEAR_7 = 240, - CRIT_INT_CLEAR_8 = 241, - CRIT_INT_CLEAR_9 = 242, - CRIT_INT_CLEAR_10 = 243, - CRIT_INT_CLEAR_11 = 244, - CRIT_INT_CLEAR_12 = 245, - CRIT_INT_CLEAR_13 = 246, - CRIT_INT_CLEAR_14 = 247, - CRIT_INT_CLEAR_15 = 248, - CRIT_INT_MASK_0 = 249, - CRIT_INT_MASK_1 = 250, - CRIT_INT_MASK_2 = 251, - CRIT_INT_MASK_3 = 252, - CRIT_INT_MASK_4 = 253, - CRIT_INT_MASK_5 = 254, - CRIT_INT_MASK_6 = 255, - CRIT_INT_MASK_7 = 256, - CRIT_INT_MASK_8 = 257, - CRIT_INT_MASK_9 = 258, - CRIT_INT_MASK_10 = 259, - CRIT_INT_MASK_11 = 260, - CRIT_INT_MASK_12 = 261, - CRIT_INT_MASK_13 = 262, - CRIT_INT_MASK_14 = 263, - CRIT_INT_MASK_15 = 264, - CRIT_THRESH_0 = 265, - CRIT_THRESH_1 = 266, - CRIT_THRESH_2 = 267, - CRIT_THRESH_3 = 268, - CRIT_THRESH_4 = 269, - CRIT_THRESH_5 = 270, - CRIT_THRESH_6 = 271, - CRIT_THRESH_7 = 272, - CRIT_THRESH_8 = 273, - CRIT_THRESH_9 = 274, - CRIT_THRESH_10 = 275, - CRIT_THRESH_11 = 276, - CRIT_THRESH_12 = 277, - CRIT_THRESH_13 = 278, - CRIT_THRESH_14 = 279, - CRIT_THRESH_15 = 280, - WDOG_BARK_STATUS = 281, - WDOG_BARK_CLEAR = 282, - WDOG_BARK_MASK = 283, - WDOG_BARK_COUNT = 284, - CC_MON_STATUS = 285, - CC_MON_CLEAR = 286, - CC_MON_MASK = 287, - MIN_STATUS_0 = 288, - MIN_STATUS_1 = 289, - MIN_STATUS_2 = 290, - MIN_STATUS_3 = 291, - MIN_STATUS_4 = 292, - MIN_STATUS_5 = 293, - MIN_STATUS_6 = 294, - MIN_STATUS_7 = 295, - MIN_STATUS_8 = 296, - MIN_STATUS_9 = 297, - MIN_STATUS_10 = 298, - MIN_STATUS_11 = 299, - MIN_STATUS_12 = 300, - MIN_STATUS_13 = 301, - MIN_STATUS_14 = 302, - MIN_STATUS_15 = 303, - MAX_STATUS_0 = 304, - MAX_STATUS_1 = 305, - MAX_STATUS_2 = 306, - MAX_STATUS_3 = 307, - MAX_STATUS_4 = 308, - MAX_STATUS_5 = 309, - MAX_STATUS_6 = 310, - MAX_STATUS_7 = 311, - MAX_STATUS_8 = 312, - MAX_STATUS_9 = 313, - MAX_STATUS_10 = 314, - MAX_STATUS_11 = 315, - MAX_STATUS_12 = 316, - MAX_STATUS_13 = 317, - MAX_STATUS_14 = 318, - MAX_STATUS_15 = 319, - MAX_REGFIELDS = 320, +struct hid_device_id; + +struct hid_report_id; + +struct hid_usage_id; + +struct hid_driver { + char *name; + const struct hid_device_id *id_table; + struct list_head dyn_list; + spinlock_t dyn_lock; + bool (*match)(struct hid_device *, bool); + int (*probe)(struct hid_device *, const struct hid_device_id *); + void (*remove)(struct hid_device *); + const struct hid_report_id *report_table; + int (*raw_event)(struct hid_device *, struct hid_report *, u8 *, int); + const struct hid_usage_id *usage_table; + int (*event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); + void (*report)(struct hid_device *, struct hid_report *); + __u8 * (*report_fixup)(struct hid_device *, __u8 *, unsigned int *); + int (*input_mapping)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *); + int (*input_mapped)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *); + int (*input_configured)(struct hid_device *, struct hid_input *); + void (*feature_mapping)(struct hid_device *, struct hid_field *, struct hid_usage *); + int (*suspend)(struct hid_device *, pm_message_t); + int (*resume)(struct hid_device *); + int (*reset_resume)(struct hid_device *); + struct device_driver driver; }; -enum tsens_ver { - VER_0 = 0, - VER_0_1 = 1, - VER_1_X = 2, - VER_2_X = 3, +struct hid_device_id { + __u16 bus; + __u16 group; + __u32 vendor; + __u32 product; + kernel_ulong_t driver_data; }; -enum tsens_irq_type { - LOWER = 0, - UPPER = 1, - CRITICAL = 2, +struct hid_report_id { + __u32 report_type; }; -struct tsens_single_value { - u8 idx; - u8 shift; - u8 blob; +struct hid_usage_id { + __u32 usage_hid; + __u32 usage_type; + __u32 usage_code; }; -struct tsens_irq_data { - u32 up_viol; - int up_thresh; - u32 up_irq_mask; - u32 up_irq_clear; - u32 low_viol; - int low_thresh; - u32 low_irq_mask; - u32 low_irq_clear; - u32 crit_viol; - u32 crit_thresh; - u32 crit_irq_mask; - u32 crit_irq_clear; +struct hid_ll_driver { + int (*start)(struct hid_device *); + void (*stop)(struct hid_device *); + int (*open)(struct hid_device *); + void (*close)(struct hid_device *); + int (*power)(struct hid_device *, int); + int (*parse)(struct hid_device *); + void (*request)(struct hid_device *, struct hid_report *, int); + int (*wait)(struct hid_device *); + int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int); + int (*output_report)(struct hid_device *, __u8 *, size_t); + int (*idle)(struct hid_device *, int, int, int); + bool (*may_wakeup)(struct hid_device *); + unsigned int max_buffer_size; }; -struct tsens_legacy_calibration_format { - unsigned int base_len; - unsigned int base_shift; - unsigned int sp_len; - struct tsens_single_value mode; - struct tsens_single_value invalid; - struct tsens_single_value base[2]; - struct tsens_single_value sp[0]; +struct hid_bpf_prog_list { + u16 prog_idx[64]; + u8 prog_cnt; }; -struct cpuidle_device; +struct input_id { + __u16 bustype; + __u16 vendor; + __u16 product; + __u16 version; +}; -struct cpuidle_driver; +struct input_keymap_entry; -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 ff_device; -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 input_dev_poller; -struct cpuidle_state_kobj; +struct input_mt; -struct cpuidle_driver_kobj; +struct input_absinfo; -struct cpuidle_device_kobj; +struct input_handle; -struct cpuidle_device { - unsigned int registered: 1; - unsigned int enabled: 1; - unsigned int poll_time_limit: 1; - unsigned int cpu; - ktime_t next_hrtimer; - int last_state_idx; - u64 last_residency_ns; - u64 poll_limit_ns; - u64 forced_idle_latency_limit_ns; - struct cpuidle_state_usage states_usage[10]; - struct cpuidle_state_kobj *kobjs[10]; - struct cpuidle_driver_kobj *kobj_driver; - struct cpuidle_device_kobj *kobj_dev; - struct list_head device_list; -}; +struct input_value; -struct cpuidle_driver { +struct input_dev { 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; + 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 sdhci_acpi_slot; - -struct sdhci_acpi_uid_slot { - const char *hid; - const char *uid; - const struct sdhci_acpi_slot *slot; +struct input_keymap_entry { + __u8 flags; + __u8 len; + __u16 index; + __u32 keycode; + __u8 scancode[32]; }; -struct sdhci_acpi_chip; +struct ff_effect; -struct sdhci_acpi_slot { - const struct sdhci_acpi_chip *chip; - unsigned int quirks; - unsigned int quirks2; - unsigned long caps; - unsigned int caps2; - mmc_pm_flag_t pm_caps; - unsigned int flags; - size_t priv_size; - int (*probe_slot)(struct platform_device *, struct acpi_device *); - int (*remove_slot)(struct platform_device *); - int (*free_slot)(struct platform_device *); - int (*setup_host)(struct platform_device *); +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 sdhci_acpi_chip { - const struct sdhci_ops *ops; - unsigned int quirks; - unsigned int quirks2; - unsigned long caps; - unsigned int caps2; - mmc_pm_flag_t pm_caps; +struct ff_envelope { + __u16 attack_length; + __u16 attack_level; + __u16 fade_length; + __u16 fade_level; }; -enum { - SDHCI_ACPI_SD_CD = 1, - SDHCI_ACPI_RUNTIME_PM = 2, - SDHCI_ACPI_SD_CD_OVERRIDE_LEVEL = 4, +struct ff_constant_effect { + __s16 level; + struct ff_envelope envelope; }; -enum { - DMI_QUIRK_RESET_SD_SIGNAL_VOLT_ON_SUSP = 1, - DMI_QUIRK_SD_NO_WRITE_PROTECT = 2, +struct ff_ramp_effect { + __s16 start_level; + __s16 end_level; + struct ff_envelope envelope; }; -enum { - INTEL_DSM_FNS = 0, - INTEL_DSM_V18_SWITCH = 3, - INTEL_DSM_V33_SWITCH = 4, - INTEL_DSM_HS_CAPS = 8, +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 sdhci_acpi_host { - struct sdhci_host *host; - const struct sdhci_acpi_slot *slot; - struct platform_device *pdev; - bool use_runtime_pm; - bool is_intel; - bool reset_signal_volt_on_suspend; - long: 64; - long: 64; - long: 64; - long: 64; - unsigned long private[0]; +struct ff_condition_effect { + __u16 right_saturation; + __u16 left_saturation; + __s16 right_coeff; + __s16 left_coeff; + __u16 deadband; + __s16 center; }; -struct intel_host { - u32 dsm_fns; - u32 hs_caps; +struct ff_rumble_effect { + __u16 strong_magnitude; + __u16 weak_magnitude; }; -struct amd_sdhci_host { - bool tuned_clock; - bool dll_enabled; +struct ff_trigger { + __u16 button; + __u16 interval; }; -struct xenon_emmc_phy_regs { - u16 timing_adj; - u16 func_ctrl; - u16 pad_ctrl; - u16 pad_ctrl2; - u16 dll_ctrl; - u16 logic_timing_adj; - u32 dll_update; - u32 logic_timing_val; +struct ff_replay { + __u16 length; + __u16 delay; }; -enum xenon_variant { - XENON_A3700 = 0, - XENON_AP806 = 1, - XENON_AP807 = 2, - XENON_CP110 = 3, +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; }; -enum soc_pad_ctrl_type { - SOC_PAD_SD = 0, - SOC_PAD_FIXED_1_8V = 1, +struct input_absinfo { + __s32 value; + __s32 minimum; + __s32 maximum; + __s32 fuzz; + __s32 flat; + __s32 resolution; }; -enum xenon_phy_type_enum { - EMMC_5_0_PHY = 0, - EMMC_5_1_PHY = 1, - NR_PHY_TYPES = 2, -}; +struct input_handler; -struct xenon_priv { - unsigned char tuning_count; - u8 sdhc_id; - unsigned int init_card_type; - unsigned char bus_width; - unsigned char timing; - unsigned int clock; - struct clk *axi_clk; - int phy_type; - void *phy_params; - struct xenon_emmc_phy_regs *emmc_phy_regs; - bool restore_needed; - enum xenon_variant hw_version; +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 soc_pad_ctrl { - void *reg; - enum soc_pad_ctrl_type pad_type; - void (*set_soc_pad)(struct sdhci_host *, unsigned char); +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 xenon_emmc_phy_params { - bool slow_mode; - u8 znr; - u8 zpr; - u8 nr_tun_times; - u8 tun_step_divider; - struct soc_pad_ctrl pad_ctrl; +struct input_value { + __u16 type; + __u16 code; + __s32 value; }; -typedef void (*btf_trace_scmi_fc_call)(void *, u8, u8, u32, u32, u32); +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; +}; -typedef void (*btf_trace_scmi_xfer_begin)(void *, int, u8, u8, u16, bool); +typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int); -typedef void (*btf_trace_scmi_xfer_response_wait)(void *, int, u8, u8, u16, u32, bool); +struct cros_ec_command; -typedef void (*btf_trace_scmi_xfer_end)(void *, int, u8, u8, u16, int); +typedef void (*btf_trace_cros_ec_request_start)(void *, struct cros_ec_command *); -typedef void (*btf_trace_scmi_rx_done)(void *, int, u8, u8, u16, u8); +struct cros_ec_command { + uint32_t version; + uint32_t command; + uint32_t outsize; + uint32_t insize; + uint32_t result; + uint8_t data[0]; +}; -typedef void (*btf_trace_scmi_msg_dump)(void *, int, u8, u8, u8, unsigned char *, u16, int, void *, size_t); +typedef void (*btf_trace_cros_ec_request_done)(void *, struct cros_ec_command *, int); -enum scmi_error_codes { - SCMI_SUCCESS = 0, - SCMI_ERR_SUPPORT = -1, - SCMI_ERR_PARAMS = -2, - SCMI_ERR_ACCESS = -3, - SCMI_ERR_ENTRY = -4, - SCMI_ERR_RANGE = -5, - SCMI_ERR_BUSY = -6, - SCMI_ERR_COMMS = -7, - SCMI_ERR_GENERIC = -8, - SCMI_ERR_HARDWARE = -9, - SCMI_ERR_PROTOCOL = -10, +struct trace_event_raw_cros_ec_request_start { + struct trace_entry ent; + uint32_t version; + uint32_t offset; + uint32_t command; + uint32_t outsize; + uint32_t insize; + char __data[0]; }; -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 trace_event_raw_cros_ec_request_done { + struct trace_entry ent; + uint32_t version; + uint32_t offset; + uint32_t command; + uint32_t outsize; + uint32_t insize; + uint32_t result; + int retval; + char __data[0]; }; -struct scmi_revision_info { - u16 major_ver; - u16 minor_ver; - u8 num_protocols; - u8 num_agents; - u32 impl_ver; - char vendor_id[16]; - char sub_vendor_id[16]; -}; +struct trace_event_data_offsets_cros_ec_request_start {}; -struct scmi_device; +struct trace_event_data_offsets_cros_ec_request_done {}; -struct scmi_notify_ops; +struct rpmsg_device_id; -struct scmi_handle { - struct device *dev; - struct scmi_revision_info *version; - int (*devm_protocol_acquire)(struct scmi_device *, u8); - const void * (*devm_protocol_get)(struct scmi_device *, u8, struct scmi_protocol_handle **); - void (*devm_protocol_put)(struct scmi_device *, u8); - bool (*is_transport_atomic)(const struct scmi_handle *, unsigned int *); - const struct scmi_notify_ops *notify_ops; +struct rpmsg_device; + +struct rpmsg_driver { + struct device_driver drv; + const struct rpmsg_device_id *id_table; + int (*probe)(struct rpmsg_device *); + void (*remove)(struct rpmsg_device *); + int (*callback)(struct rpmsg_device *, void *, int, void *, u32); + int (*flowcontrol)(struct rpmsg_device *, void *, bool); }; -struct scmi_xfers_info { - unsigned long *xfer_alloc_table; - spinlock_t xfer_lock; - int max_msg; - struct hlist_head free_xfers; - struct hlist_head pending_xfers[512]; +struct rpmsg_device_id { + char name[32]; + kernel_ulong_t driver_data; }; -struct scmi_desc; +struct rpmsg_endpoint; -struct scmi_debug_info; +struct rpmsg_device_ops; -struct scmi_info { - int id; - struct device *dev; - const struct scmi_desc *desc; - struct scmi_revision_info version; - struct scmi_handle handle; - struct scmi_xfers_info tx_minfo; - struct scmi_xfers_info rx_minfo; - struct idr tx_idr; - struct idr rx_idr; - struct idr protocols; - struct mutex protocols_mtx; - u8 *protocols_imp; - struct idr active_protocols; - unsigned int atomic_threshold; - void *notify_priv; - struct list_head node; - int users; - struct notifier_block bus_nb; - struct notifier_block dev_req_nb; - struct mutex devreq_mtx; - struct scmi_debug_info *dbg; - void *raw; +struct rpmsg_device { + struct device dev; + struct rpmsg_device_id id; + const char *driver_override; + u32 src; + u32 dst; + struct rpmsg_endpoint *ept; + bool announce; + bool little_endian; + const struct rpmsg_device_ops *ops; }; -struct scmi_transport_ops; +typedef int (*rpmsg_rx_cb_t)(struct rpmsg_device *, void *, int, void *, u32); -struct scmi_desc { - int (*transport_init)(); - void (*transport_exit)(); - const struct scmi_transport_ops *ops; - int max_rx_timeout_ms; - int max_msg; - int max_msg_size; - const bool force_polling; - const bool sync_cmds_completed_on_ret; - const bool atomic_enabled; -}; +typedef int (*rpmsg_flowcontrol_cb_t)(struct rpmsg_device *, void *, bool); -struct scmi_chan_info; +struct rpmsg_endpoint_ops; -struct scmi_transport_ops { - int (*link_supplier)(struct device *); - bool (*chan_available)(struct device_node *, int); - int (*chan_setup)(struct scmi_chan_info *, struct device *, bool); - int (*chan_free)(int, void *, void *); - unsigned int (*get_max_msg)(struct scmi_chan_info *); - int (*send_message)(struct scmi_chan_info *, struct scmi_xfer *); - void (*mark_txdone)(struct scmi_chan_info *, int, struct scmi_xfer *); - void (*fetch_response)(struct scmi_chan_info *, struct scmi_xfer *); - void (*fetch_notification)(struct scmi_chan_info *, size_t, struct scmi_xfer *); - void (*clear_channel)(struct scmi_chan_info *); - bool (*poll_done)(struct scmi_chan_info *, struct scmi_xfer *); +struct rpmsg_endpoint { + struct rpmsg_device *rpdev; + struct kref refcount; + rpmsg_rx_cb_t cb; + rpmsg_flowcontrol_cb_t flow_cb; + struct mutex cb_lock; + u32 addr; + void *priv; + const struct rpmsg_endpoint_ops *ops; }; -struct scmi_chan_info { - int id; - struct device *dev; - unsigned int rx_timeout_ms; - struct scmi_handle *handle; - bool no_completion_irq; - void *transport_info; +struct rpmsg_endpoint_ops { + void (*destroy_ept)(struct rpmsg_endpoint *); + int (*send)(struct rpmsg_endpoint *, void *, int); + int (*sendto)(struct rpmsg_endpoint *, void *, int, u32); + int (*send_offchannel)(struct rpmsg_endpoint *, u32, u32, void *, int); + int (*trysend)(struct rpmsg_endpoint *, void *, int); + int (*trysendto)(struct rpmsg_endpoint *, void *, int, u32); + int (*trysend_offchannel)(struct rpmsg_endpoint *, u32, u32, void *, int); + __poll_t (*poll)(struct rpmsg_endpoint *, struct file *, poll_table *); + int (*set_flow_control)(struct rpmsg_endpoint *, bool, u32); + ssize_t (*get_mtu)(struct rpmsg_endpoint *); }; -struct scmi_device { - u32 id; - u8 protocol_id; - const char *name; - struct device dev; - struct scmi_handle *handle; +struct rpmsg_channel_info; + +struct rpmsg_device_ops { + struct rpmsg_device * (*create_channel)(struct rpmsg_device *, struct rpmsg_channel_info *); + int (*release_channel)(struct rpmsg_device *, struct rpmsg_channel_info *); + struct rpmsg_endpoint * (*create_ept)(struct rpmsg_device *, rpmsg_rx_cb_t, void *, struct rpmsg_channel_info); + int (*announce_create)(struct rpmsg_device *); + int (*announce_destroy)(struct rpmsg_device *); }; -struct scmi_notify_ops { - int (*devm_event_notifier_register)(struct scmi_device *, u8, u8, const u32 *, struct notifier_block *); - int (*devm_event_notifier_unregister)(struct scmi_device *, u8, u8, const u32 *, struct notifier_block *); - int (*event_notifier_register)(const struct scmi_handle *, u8, u8, const u32 *, struct notifier_block *); - int (*event_notifier_unregister)(const struct scmi_handle *, u8, u8, const u32 *, struct notifier_block *); -}; - -struct scmi_debug_info { - struct dentry *top_dentry; - const char *name; - const char *type; - bool is_atomic; +struct glink_ssr { + struct device *dev; + struct rpmsg_endpoint *ept; + struct notifier_block nb; + u32 seq_num; + struct completion completion; }; -struct scmi_protocol_instance { - const struct scmi_handle *handle; - const struct scmi_protocol *proto; - void *gid; - refcount_t users; - void *priv; - struct scmi_protocol_handle ph; +struct cleanup_done_msg { + __le32 version; + __le32 response; + __le32 seq_num; }; -struct trace_event_raw_scmi_fc_call { - struct trace_entry ent; - u8 protocol_id; - u8 msg_id; - u32 res_id; - u32 val1; - u32 val2; - char __data[0]; +struct do_cleanup_msg { + __le32 version; + __le32 command; + __le32 seq_num; + __le32 name_len; + char name[32]; }; -struct trace_event_raw_scmi_xfer_begin { - struct trace_entry ent; - int transfer_id; - u8 msg_id; - u8 protocol_id; - u16 seq; - bool poll; - char __data[0]; +enum iio_chan_type { + IIO_VOLTAGE = 0, + IIO_CURRENT = 1, + IIO_POWER = 2, + IIO_ACCEL = 3, + IIO_ANGL_VEL = 4, + IIO_MAGN = 5, + IIO_LIGHT = 6, + IIO_INTENSITY = 7, + IIO_PROXIMITY = 8, + IIO_TEMP = 9, + IIO_INCLI = 10, + IIO_ROT = 11, + IIO_ANGL = 12, + IIO_TIMESTAMP = 13, + IIO_CAPACITANCE = 14, + IIO_ALTVOLTAGE = 15, + IIO_CCT = 16, + IIO_PRESSURE = 17, + IIO_HUMIDITYRELATIVE = 18, + IIO_ACTIVITY = 19, + IIO_STEPS = 20, + IIO_ENERGY = 21, + IIO_DISTANCE = 22, + IIO_VELOCITY = 23, + IIO_CONCENTRATION = 24, + IIO_RESISTANCE = 25, + IIO_PH = 26, + IIO_UVINDEX = 27, + IIO_ELECTRICALCONDUCTIVITY = 28, + IIO_COUNT = 29, + IIO_INDEX = 30, + IIO_GRAVITY = 31, + IIO_POSITIONRELATIVE = 32, + IIO_PHASE = 33, + IIO_MASSCONCENTRATION = 34, + IIO_DELTA_ANGL = 35, + IIO_DELTA_VELOCITY = 36, + IIO_COLORTEMP = 37, + IIO_CHROMATICITY = 38, }; -struct trace_event_raw_scmi_xfer_response_wait { - struct trace_entry ent; - int transfer_id; - u8 msg_id; - u8 protocol_id; - u16 seq; - u32 timeout; - bool poll; - char __data[0]; +enum iio_endian { + IIO_CPU = 0, + IIO_BE = 1, + IIO_LE = 2, }; -struct trace_event_raw_scmi_xfer_end { - struct trace_entry ent; - int transfer_id; - u8 msg_id; - u8 protocol_id; - u16 seq; - int status; - char __data[0]; +enum iio_event_type { + IIO_EV_TYPE_THRESH = 0, + IIO_EV_TYPE_MAG = 1, + IIO_EV_TYPE_ROC = 2, + IIO_EV_TYPE_THRESH_ADAPTIVE = 3, + IIO_EV_TYPE_MAG_ADAPTIVE = 4, + IIO_EV_TYPE_CHANGE = 5, + IIO_EV_TYPE_MAG_REFERENCED = 6, + IIO_EV_TYPE_GESTURE = 7, }; -struct trace_event_raw_scmi_rx_done { - struct trace_entry ent; - int transfer_id; - u8 msg_id; - u8 protocol_id; - u16 seq; - u8 msg_type; - char __data[0]; +enum iio_event_direction { + IIO_EV_DIR_EITHER = 0, + IIO_EV_DIR_RISING = 1, + IIO_EV_DIR_FALLING = 2, + IIO_EV_DIR_NONE = 3, + IIO_EV_DIR_SINGLETAP = 4, + IIO_EV_DIR_DOUBLETAP = 5, }; -struct trace_event_raw_scmi_msg_dump { - struct trace_entry ent; - int id; - u8 channel_id; - u8 protocol_id; - u8 msg_id; - char tag[5]; - u16 seq; - int status; - size_t len; - u32 __data_loc_cmd; - char __data[0]; +enum iio_shared_by { + IIO_SEPARATE = 0, + IIO_SHARED_BY_TYPE = 1, + IIO_SHARED_BY_DIR = 2, + IIO_SHARED_BY_ALL = 3, }; -struct trace_event_data_offsets_scmi_msg_dump { - u32 cmd; +enum iio_event_info { + IIO_EV_INFO_ENABLE = 0, + IIO_EV_INFO_VALUE = 1, + IIO_EV_INFO_HYSTERESIS = 2, + IIO_EV_INFO_PERIOD = 3, + IIO_EV_INFO_HIGH_PASS_FILTER_3DB = 4, + IIO_EV_INFO_LOW_PASS_FILTER_3DB = 5, + IIO_EV_INFO_TIMEOUT = 6, + IIO_EV_INFO_RESET_TIMEOUT = 7, + IIO_EV_INFO_TAP2_MIN_DELAY = 8, + IIO_EV_INFO_RUNNING_PERIOD = 9, + IIO_EV_INFO_RUNNING_COUNT = 10, }; -struct scmi_protocol_devres { - const struct scmi_handle *handle; - u8 protocol_id; -}; +struct iio_buffer; -struct trace_event_data_offsets_scmi_fc_call {}; +struct iio_trigger; -struct trace_event_data_offsets_scmi_xfer_begin {}; +struct iio_poll_func; -struct trace_event_data_offsets_scmi_xfer_response_wait {}; +struct iio_chan_spec; -struct trace_event_data_offsets_scmi_xfer_end {}; +struct iio_info; -struct trace_event_data_offsets_scmi_rx_done {}; +struct iio_buffer_setup_ops; -struct scmi_msg_resp_domain_name_get { - __le32 flags; - u8 name[64]; +struct iio_dev { + int modes; + struct device dev; + struct iio_buffer *buffer; + int scan_bytes; + const unsigned long *available_scan_masks; + unsigned int masklength; + const unsigned long *active_scan_mask; + bool scan_timestamp; + struct iio_trigger *trig; + struct iio_poll_func *pollfunc; + struct iio_poll_func *pollfunc_event; + const struct iio_chan_spec *channels; + int num_channels; + const char *name; + const char *label; + const struct iio_info *info; + const struct iio_buffer_setup_ops *setup_ops; + void *priv; }; -struct scmi_iterator { - void *msg; - void *resp; - struct scmi_xfer *t; - const struct scmi_protocol_handle *ph; - struct scmi_iterator_ops *ops; - struct scmi_iterator_state state; - void *priv; +struct iio_event_interface; + +struct iio_ioctl_handler; + +struct iio_dev_opaque { + struct iio_dev indio_dev; + int currentmode; + int id; + struct module *driver_module; + struct mutex mlock; + struct lock_class_key mlock_key; + struct mutex info_exist_lock; + bool trig_readonly; + struct iio_event_interface *event_interface; + struct iio_buffer **attached_buffers; + unsigned int attached_buffers_cnt; + struct iio_ioctl_handler *buffer_ioctl_handler; + struct list_head buffer_list; + struct list_head channel_attr_list; + struct attribute_group chan_attr_group; + struct list_head ioctl_handlers; + const struct attribute_group **groups; + int groupcounter; + struct attribute_group legacy_scan_el_group; + struct attribute_group legacy_buffer_group; + void *bounce_buffer; + size_t bounce_buffer_size; + unsigned int scan_index_timestamp; + clockid_t clock_id; + struct cdev chrdev; + unsigned long flags; + struct dentry *debugfs_dentry; + unsigned int cached_reg_addr; + char read_buf[20]; + unsigned int read_buf_len; }; -struct scmi_msg_resp_desc_fc { - __le32 attr; - __le32 rate_limit; - __le32 chan_addr_low; - __le32 chan_addr_high; - __le32 chan_size; - __le32 db_addr_low; - __le32 db_addr_high; - __le32 db_set_lmask; - __le32 db_set_hmask; - __le32 db_preserve_lmask; - __le32 db_preserve_hmask; +struct iio_event_spec; + +struct iio_chan_spec_ext_info; + +struct iio_chan_spec { + enum iio_chan_type type; + int channel; + int channel2; + unsigned long address; + int scan_index; + struct { + char sign; + u8 realbits; + u8 storagebits; + u8 shift; + u8 repeat; + enum iio_endian endianness; + } scan_type; + long info_mask_separate; + long info_mask_separate_available; + long info_mask_shared_by_type; + long info_mask_shared_by_type_available; + long info_mask_shared_by_dir; + long info_mask_shared_by_dir_available; + long info_mask_shared_by_all; + long info_mask_shared_by_all_available; + const struct iio_event_spec *event_spec; + unsigned int num_event_specs; + const struct iio_chan_spec_ext_info *ext_info; + const char *extend_name; + const char *datasheet_name; + unsigned int modified: 1; + unsigned int indexed: 1; + unsigned int output: 1; + unsigned int differential: 1; }; -struct scmi_msg_get_fc_info { - __le32 domain; - __le32 message_id; +struct iio_event_spec { + enum iio_event_type type; + enum iio_event_direction dir; + unsigned long mask_separate; + unsigned long mask_shared_by_type; + unsigned long mask_shared_by_dir; + unsigned long mask_shared_by_all; }; -struct scmi_device_id { - u8 protocol_id; +struct iio_chan_spec_ext_info { const char *name; + enum iio_shared_by shared; + ssize_t (*read)(struct iio_dev *, uintptr_t, const struct iio_chan_spec *, char *); + ssize_t (*write)(struct iio_dev *, uintptr_t, const struct iio_chan_spec *, const char *, size_t); + uintptr_t private; }; -struct mbox_chan; +struct iio_info { + const struct attribute_group *event_attrs; + const struct attribute_group *attrs; + int (*read_raw)(struct iio_dev *, const struct iio_chan_spec *, int *, int *, long); + int (*read_raw_multi)(struct iio_dev *, const struct iio_chan_spec *, int, int *, int *, long); + int (*read_avail)(struct iio_dev *, const struct iio_chan_spec *, const int **, int *, int *, long); + int (*write_raw)(struct iio_dev *, const struct iio_chan_spec *, int, int, long); + int (*read_label)(struct iio_dev *, const struct iio_chan_spec *, char *); + int (*write_raw_get_fmt)(struct iio_dev *, const struct iio_chan_spec *, long); + int (*read_event_config)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction); + int (*write_event_config)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, int); + int (*read_event_value)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, enum iio_event_info, int *, int *); + int (*write_event_value)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, enum iio_event_info, int, int); + int (*read_event_label)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, char *); + int (*validate_trigger)(struct iio_dev *, struct iio_trigger *); + int (*update_scan_mode)(struct iio_dev *, const unsigned long *); + int (*debugfs_reg_access)(struct iio_dev *, unsigned int, unsigned int, unsigned int *); + int (*fwnode_xlate)(struct iio_dev *, const struct fwnode_reference_args *); + int (*hwfifo_set_watermark)(struct iio_dev *, unsigned int); + int (*hwfifo_flush_to_buffer)(struct iio_dev *, unsigned int); +}; -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 iio_buffer_setup_ops { + int (*preenable)(struct iio_dev *); + int (*postenable)(struct iio_dev *); + int (*predisable)(struct iio_dev *); + int (*postdisable)(struct iio_dev *); + bool (*validate_scan_mask)(struct iio_dev *, const unsigned long *); }; -struct pcc_chan_reg { - void *vaddr; - struct acpi_generic_address *gas; - u64 preserve_mask; - u64 set_mask; - u64 status_mask; +struct iio_event_data { + __u64 id; + __s64 timestamp; }; -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 iio_ioctl_handler { + struct list_head entry; + long (*ioctl)(struct iio_dev *, struct file *, unsigned int, unsigned long); }; -struct mbox_controller; +struct iio_event_interface { + wait_queue_head_t wait; + struct { + union { + struct __kfifo kfifo; + struct iio_event_data *type; + const struct iio_event_data *const_type; + char (*rectype)[0]; + struct iio_event_data *ptr; + const struct iio_event_data *ptr_const; + }; + struct iio_event_data buf[16]; + } det_events; + struct list_head dev_attr_list; + unsigned long flags; + struct attribute_group group; + struct mutex read_lock; + struct iio_ioctl_handler ioctl_handler; +}; -struct mbox_client; +struct iio_dev_attr { + struct device_attribute dev_attr; + u64 address; + struct list_head l; + const struct iio_chan_spec *c; + struct iio_buffer *buffer; +}; -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; +enum { + NVMEM_ADD = 1, + NVMEM_REMOVE = 2, + NVMEM_CELL_ADD = 3, + NVMEM_CELL_REMOVE = 4, + NVMEM_LAYOUT_ADD = 5, + NVMEM_LAYOUT_REMOVE = 6, }; -struct mbox_chan_ops; +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; + struct gpio_desc *wp_gpio; + struct nvmem_layout *layout; + void *priv; +}; -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 nvmem_cell_table { + const char *nvmem_name; + const struct nvmem_cell_info *cells; + size_t ncells; 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 nvmem_cell_entry { + const char *name; + int offset; + size_t raw_len; + int bytes; + int bit_offset; + int nbits; + nvmem_cell_post_process_t read_post_process; + void *priv; + struct device_node *np; + struct nvmem_device *nvmem; + struct list_head node; }; -struct 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 nvmem_cell_lookup { + const char *nvmem_name; + const char *cell_name; + const char *dev_id; + const char *con_id; + struct list_head node; }; -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 nvmem_cell { + struct nvmem_cell_entry *entry; + const char *id; + int index; }; -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; -}; +typedef void (*dr_release_t)(struct device *, void *); -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)); +typedef int (*dr_match_t)(struct device *, void *, void *); -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 icc_path; -typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const unsigned long); +struct icc_bulk_data { + struct icc_path *path; + const char *name; + u32 avg_bw; + u32 peak_bw; +}; -struct acpi_subtable_proc { - int id; - acpi_tbl_entry_handler handler; - acpi_tbl_entry_handler_arg handler_arg; - void *arg; - int count; +struct icc_bulk_devres { + struct icc_bulk_data *paths; + int num_paths; }; -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 hte_chip; -struct tegra_mc; +struct hte_ts_desc; -struct tegra_mc_reset; +struct hte_clk_info; -struct tegra_mc_reset_ops { - int (*hotreset_assert)(struct tegra_mc *, const struct tegra_mc_reset *); - int (*hotreset_deassert)(struct tegra_mc *, const struct tegra_mc_reset *); - int (*block_dma)(struct tegra_mc *, const struct tegra_mc_reset *); - bool (*dma_idling)(struct tegra_mc *, const struct tegra_mc_reset *); - int (*unblock_dma)(struct tegra_mc *, const struct tegra_mc_reset *); - int (*reset_status)(struct tegra_mc *, const struct tegra_mc_reset *); +struct hte_ops { + int (*request)(struct hte_chip *, struct hte_ts_desc *, u32); + int (*release)(struct hte_chip *, struct hte_ts_desc *, u32); + int (*enable)(struct hte_chip *, u32); + int (*disable)(struct hte_chip *, u32); + int (*get_clk_src_info)(struct hte_chip *, struct hte_clk_info *); }; -struct gart_device; - -struct icc_node; - -struct icc_node_data; +struct hte_device; -struct icc_provider { - struct list_head provider_list; - struct list_head nodes; - int (*set)(struct icc_node *, struct icc_node *); - int (*aggregate)(struct icc_node *, u32, u32, u32, u32 *, u32 *); - void (*pre_aggregate)(struct icc_node *); - int (*get_bw)(struct icc_node *, u32 *, u32 *); - struct icc_node * (*xlate)(struct of_phandle_args *, void *); - struct icc_node_data * (*xlate_extended)(struct of_phandle_args *, void *); +struct hte_chip { + const char *name; struct device *dev; - int users; - bool inter_set; + const struct hte_ops *ops; + u32 nlines; + int (*xlate_of)(struct hte_chip *, const struct of_phandle_args *, struct hte_ts_desc *, u32 *); + int (*xlate_plat)(struct hte_chip *, struct hte_ts_desc *, u32 *); + bool (*match_from_linedata)(const struct hte_chip *, const struct hte_ts_desc *); + u8 of_hte_n_cells; + struct hte_device *gdev; void *data; }; -struct tegra_bpmp; - -struct tegra_smmu; - -struct tegra_mc_soc; - -struct tegra_mc_timing; - -struct tegra_mc { - struct tegra_bpmp *bpmp; - struct device *dev; - struct tegra_smmu *smmu; - struct gart_device *gart; - void *regs; - void *bcast_ch_regs; - void **ch_regs; - struct clk *clk; - int irq; - const struct tegra_mc_soc *soc; - unsigned long tick; - struct tegra_mc_timing *timings; - unsigned int num_timings; - unsigned int num_channels; - bool bwmgr_mrq_supported; - struct reset_controller_dev reset; - struct icc_provider provider; - spinlock_t lock; - struct { - struct dentry *root; - } debugfs; +struct hte_line_attr { + u32 line_id; + void *line_data; + unsigned long edge_flags; + const char *name; }; -struct tegra_mc_client; +struct hte_ts_desc { + struct hte_line_attr attr; + void *hte_data; +}; -struct tegra_smmu_soc; +struct hte_clk_info { + u64 hz; + clockid_t type; +}; -struct tegra_mc_icc_ops; +enum tegra_hte_type { + HTE_TEGRA_TYPE_GPIO = 1, + HTE_TEGRA_TYPE_LIC = 2, +}; -struct tegra_mc_ops; +struct tegra_hte_line_mapped; -struct tegra_mc_soc { - const struct tegra_mc_client *clients; - unsigned int num_clients; - const unsigned long *emem_regs; - unsigned int num_emem_regs; - unsigned int num_address_bits; - unsigned int atom_size; - unsigned int num_carveouts; - u16 client_id_mask; - u8 num_channels; - const struct tegra_smmu_soc *smmu; - u32 intmask; - u32 ch_intmask; - u32 global_intstatus_channel_shift; - bool has_addr_hi_reg; - const struct tegra_mc_reset_ops *reset_ops; - const struct tegra_mc_reset *resets; - unsigned int num_resets; - const struct tegra_mc_icc_ops *icc_ops; - const struct tegra_mc_ops *ops; +struct tegra_hte_data { + enum tegra_hte_type type; + u32 slices; + u32 map_sz; + u32 sec_map_sz; + const struct tegra_hte_line_mapped *map; + const struct tegra_hte_line_mapped *sec_map; }; -enum tegra_icc_client_type { - TEGRA_ICC_NONE = 0, - TEGRA_ICC_NISO = 1, - TEGRA_ICC_ISO_DISPLAY = 2, - TEGRA_ICC_ISO_VI = 3, - TEGRA_ICC_ISO_AUDIO = 4, - TEGRA_ICC_ISO_VIFAL = 5, +struct tegra_hte_line_mapped { + int slice; + u32 bit_index; }; -struct tegra_mc_client { - unsigned int id; - unsigned int bpmp_id; - enum tegra_icc_client_type type; - const char *name; - union { - unsigned int swgroup; - unsigned int sid; - }; - unsigned int fifo_size; - struct { - struct { - unsigned int reg; - unsigned int bit; - } smmu; - struct { - unsigned int reg; - unsigned int shift; - unsigned int mask; - unsigned int def; - } la; - struct { - unsigned int override; - unsigned int security; - } sid; - } regs; -}; +struct hte_slices; -struct tegra_smmu_swgroup; +struct tegra_hte_line_data; -struct tegra_smmu_group_soc; +struct tegra_hte_soc { + int hte_irq; + u32 itr_thrshld; + u32 conf_rval; + struct hte_slices *sl; + const struct tegra_hte_data *prov_data; + struct tegra_hte_line_data *line_data; + struct hte_chip *chip; + struct gpio_device *gdev; + void *regs; +}; -struct tegra_smmu_soc { - const struct tegra_mc_client *clients; - unsigned int num_clients; - const struct tegra_smmu_swgroup *swgroups; - unsigned int num_swgroups; - const struct tegra_smmu_group_soc *groups; - unsigned int num_groups; - bool supports_round_robin_arbitration; - bool supports_request_limit; - unsigned int num_tlb_lines; - unsigned int num_asids; +struct hte_slices { + u32 r_val; + unsigned long flags; + spinlock_t s_lock; }; -struct tegra_smmu_swgroup { - const char *name; - unsigned int swgroup; - unsigned int reg; +struct tegra_hte_line_data { + unsigned long flags; + void *data; }; -struct tegra_smmu_group_soc { - const char *name; - const unsigned int *swgroups; - unsigned int num_swgroups; +struct hte_ts_data { + u64 tsc; + u64 seq; + int raw_level; }; -struct tegra_mc_reset { +struct gpio_desc { + struct gpio_device *gdev; + unsigned long flags; + const char *label; const char *name; - unsigned long id; - unsigned int control; - unsigned int status; - unsigned int reset; - unsigned int bit; + unsigned int debounce_period_us; }; -struct tegra_mc_icc_ops { - int (*set)(struct icc_node *, struct icc_node *); - int (*aggregate)(struct icc_node *, u32, u32, u32, u32 *, u32 *); - struct icc_node * (*xlate)(struct of_phandle_args *, void *); - struct icc_node_data * (*xlate_extended)(struct of_phandle_args *, void *); - int (*get_bw)(struct icc_node *, u32 *, u32 *); +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; }; -struct icc_node { - int id; +struct netdev_name_node { + struct hlist_node hlist; + struct list_head list; + struct net_device *dev; const char *name; - struct icc_node **links; - size_t num_links; - struct icc_provider *provider; - struct list_head node_list; - struct list_head search_list; - struct icc_node *reverse; - u8 is_traversed: 1; - struct hlist_head req_list; - u32 avg_bw; - u32 peak_bw; - u32 init_avg; - u32 init_peak; - void *data; }; -struct icc_node_data { - struct icc_node *node; - u32 tag; +struct rps_sock_flow_table { + u32 mask; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 ents[0]; }; -struct tegra_mc_ops { - int (*probe)(struct tegra_mc *); - void (*remove)(struct tegra_mc *); - int (*suspend)(struct tegra_mc *); - int (*resume)(struct tegra_mc *); - irqreturn_t (*handle_irq)(int, void *); - int (*probe_device)(struct tegra_mc *, struct device *); +struct __call_single_data { + struct __call_single_node node; + smp_call_func_t func; + void *info; }; -struct tegra_mc_timing { - unsigned long rate; - u32 *emem_data; +typedef struct __call_single_data call_single_data_t; + +struct sd_flow_limit; + +struct softnet_data { + struct list_head poll_list; + struct sk_buff_head process_queue; + unsigned int processed; + unsigned int time_squeeze; + struct softnet_data *rps_ipi_list; + bool in_net_rx_action; + bool in_napi_threaded_poll; + struct sd_flow_limit __attribute__((btf_type_tag("rcu"))) *flow_limit; + struct Qdisc *output_queue; + struct Qdisc **output_queue_tailp; + struct sk_buff *completion_queue; + struct { + u16 recursion; + u8 more; + u8 skip_txqueue; + } xmit; + long: 64; + long: 64; + long: 64; + unsigned int input_queue_head; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + call_single_data_t csd; + struct softnet_data *rps_ipi_next; + unsigned int cpu; + unsigned int input_queue_tail; + unsigned int received_rps; + unsigned int dropped; + struct sk_buff_head input_pkt_queue; + struct napi_struct backlog; + long: 64; + long: 64; + long: 64; + long: 64; + 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 uniphier_efuse_priv { - void *base; +struct sd_flow_limit { + u64 count; + unsigned int num_buckets; + unsigned int history_head; + u16 history[128]; + u8 buckets[0]; }; -struct qcom_icc_node; +struct inet_ehash_bucket; -struct qcom_icc_bcm; +struct inet_bind_hashbucket; -struct qcom_icc_desc { - struct qcom_icc_node * const *nodes; - size_t num_nodes; - struct qcom_icc_bcm * const *bcms; - size_t num_bcms; +struct inet_listen_hashbucket; + +struct inet_hashinfo { + struct inet_ehash_bucket *ehash; + spinlock_t *ehash_locks; + unsigned int ehash_mask; + unsigned int ehash_locks_mask; + struct kmem_cache *bind_bucket_cachep; + struct inet_bind_hashbucket *bhash; + struct kmem_cache *bind2_bucket_cachep; + struct inet_bind_hashbucket *bhash2; + unsigned int bhash_size; + unsigned int lhash2_mask; + struct inet_listen_hashbucket *lhash2; + bool pernet; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct qcom_icc_node { - const char *name; - u16 links[128]; - u16 id; - u16 num_links; - u16 channels; - u16 buswidth; - u64 sum_avg[3]; - u64 max_peak[3]; - struct qcom_icc_bcm *bcms[3]; - size_t num_bcms; +struct hlist_nulls_head { + struct hlist_nulls_node *first; }; -struct bcm_db { - __le32 unit; - __le16 width; - u8 vcd; - u8 reserved; +struct inet_ehash_bucket { + struct hlist_nulls_head chain; }; -struct qcom_icc_bcm { - const char *name; - u32 type; - u32 addr; - u64 vote_x[3]; - u64 vote_y[3]; - u64 vote_scale; - u32 enable_mask; - bool dirty; - bool keepalive; - struct bcm_db aux_data; - struct list_head list; - struct list_head ws_list; - size_t num_nodes; - struct qcom_icc_node *nodes[0]; +struct inet_bind_hashbucket { + spinlock_t lock; + struct hlist_head chain; }; -enum snd_soc_dobj_type { - SND_SOC_DOBJ_NONE = 0, - SND_SOC_DOBJ_MIXER = 1, - SND_SOC_DOBJ_BYTES = 2, - SND_SOC_DOBJ_ENUM = 3, - SND_SOC_DOBJ_GRAPH = 4, - SND_SOC_DOBJ_WIDGET = 5, - SND_SOC_DOBJ_DAI_LINK = 6, - SND_SOC_DOBJ_PCM = 7, - SND_SOC_DOBJ_CODEC_LINK = 8, - SND_SOC_DOBJ_BACKEND_LINK = 9, +struct inet_listen_hashbucket { + spinlock_t lock; + struct hlist_nulls_head nulls_head; }; -enum snd_soc_pcm_subclass { - SND_SOC_PCM_CLASS_PCM = 0, - SND_SOC_PCM_CLASS_BE = 1, +struct ack_sample { + u32 pkts_acked; + s32 rtt_us; + u32 in_flight; }; -enum snd_soc_bias_level { - SND_SOC_BIAS_OFF = 0, - SND_SOC_BIAS_STANDBY = 1, - SND_SOC_BIAS_PREPARE = 2, - SND_SOC_BIAS_ON = 3, +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; }; -enum snd_soc_dapm_type { - snd_soc_dapm_input = 0, - snd_soc_dapm_output = 1, - snd_soc_dapm_mux = 2, - snd_soc_dapm_demux = 3, - snd_soc_dapm_mixer = 4, - snd_soc_dapm_mixer_named_ctl = 5, - snd_soc_dapm_pga = 6, - snd_soc_dapm_out_drv = 7, - snd_soc_dapm_adc = 8, - snd_soc_dapm_dac = 9, - snd_soc_dapm_micbias = 10, - snd_soc_dapm_mic = 11, - snd_soc_dapm_hp = 12, - snd_soc_dapm_spk = 13, - snd_soc_dapm_line = 14, - snd_soc_dapm_switch = 15, - snd_soc_dapm_vmid = 16, - snd_soc_dapm_pre = 17, - snd_soc_dapm_post = 18, - snd_soc_dapm_supply = 19, - snd_soc_dapm_pinctrl = 20, - snd_soc_dapm_regulator_supply = 21, - snd_soc_dapm_clock_supply = 22, - snd_soc_dapm_aif_in = 23, - snd_soc_dapm_aif_out = 24, - snd_soc_dapm_siggen = 25, - snd_soc_dapm_sink = 26, - snd_soc_dapm_dai_in = 27, - snd_soc_dapm_dai_out = 28, - snd_soc_dapm_dai_link = 29, - snd_soc_dapm_kcontrol = 30, - snd_soc_dapm_buffer = 31, - snd_soc_dapm_scheduler = 32, - snd_soc_dapm_effect = 33, - snd_soc_dapm_src = 34, - snd_soc_dapm_asrc = 35, - snd_soc_dapm_encoder = 36, - snd_soc_dapm_decoder = 37, - SND_SOC_DAPM_TYPE_COUNT = 38, -}; - -enum snd_soc_dpcm_trigger { - SND_SOC_DPCM_TRIGGER_PRE = 0, - SND_SOC_DPCM_TRIGGER_POST = 1, - SND_SOC_DPCM_TRIGGER_BESPOKE = 2, +struct rt6key { + struct in6_addr addr; + int plen; }; -enum snd_soc_dpcm_update { - SND_SOC_DPCM_UPDATE_NO = 0, - SND_SOC_DPCM_UPDATE_BE = 1, - SND_SOC_DPCM_UPDATE_FE = 2, -}; +struct rtable; -enum snd_soc_dpcm_state { - SND_SOC_DPCM_STATE_NEW = 0, - SND_SOC_DPCM_STATE_OPEN = 1, - SND_SOC_DPCM_STATE_HW_PARAMS = 2, - SND_SOC_DPCM_STATE_PREPARE = 3, - SND_SOC_DPCM_STATE_START = 4, - SND_SOC_DPCM_STATE_STOP = 5, - SND_SOC_DPCM_STATE_PAUSED = 6, - SND_SOC_DPCM_STATE_SUSPEND = 7, - SND_SOC_DPCM_STATE_HW_FREE = 8, - SND_SOC_DPCM_STATE_CLOSE = 9, -}; +struct fnhe_hash_bucket; -enum snd_compr_direction { - SND_COMPRESS_PLAYBACK = 0, - SND_COMPRESS_CAPTURE = 1, +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; }; -enum snd_soc_trigger_order { - SND_SOC_TRIGGER_ORDER_DEFAULT = 0, - SND_SOC_TRIGGER_ORDER_LDC = 1, - SND_SOC_TRIGGER_ORDER_MAX = 2, -}; +struct rt6_exception_bucket; -enum { - SNDRV_CTL_TLV_OP_READ = 0, - SNDRV_CTL_TLV_OP_WRITE = 1, - SNDRV_CTL_TLV_OP_CMD = -1, +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 snd_soc_dobj_control { - struct snd_kcontrol *kcontrol; - char **dtexts; - unsigned long *dvalues; -}; +struct fib6_node; -struct snd_soc_dobj_widget { - unsigned int *kcontrol_type; -}; +struct dst_metrics; -struct snd_soc_component; +struct nexthop; -struct snd_soc_dobj { - enum snd_soc_dobj_type type; - unsigned int index; - struct list_head list; - int (*unload)(struct snd_soc_component *, struct snd_soc_dobj *); +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 snd_soc_dobj_control control; - struct snd_soc_dobj_widget widget; + struct list_head fib6_siblings; + struct list_head nh_list; }; - void *private; + 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 soc_enum { - int reg; - unsigned char shift_l; - unsigned char shift_r; - unsigned int items; - unsigned int mask; - const char * const *texts; - const unsigned int *values; - unsigned int autodisable: 1; - struct snd_soc_dobj dobj; +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_node __attribute__((btf_type_tag("rcu"))) *subtree; + 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 snd_soc_card; - -struct snd_soc_dapm_widget; +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 snd_soc_dapm_context { - enum snd_soc_bias_level bias_level; - unsigned int idle_bias_off: 1; - unsigned int suspend_bias_off: 1; - struct device *dev; - struct snd_soc_component *component; - struct snd_soc_card *card; - enum snd_soc_bias_level target_bias_level; - struct list_head list; - struct snd_soc_dapm_widget *wcache_sink; - struct snd_soc_dapm_widget *wcache_source; - struct dentry *debugfs_dapm; +struct dst_metrics { + u32 metrics[17]; + refcount_t refcnt; }; -struct snd_soc_component_driver; +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 snd_compr_stream; +struct fib_nh_exception; -struct snd_soc_component { - const char *name; - int id; - const char *name_prefix; - struct device *dev; - struct snd_soc_card *card; - unsigned int active; - unsigned int suspended: 1; - struct list_head list; - struct list_head card_aux_list; - struct list_head card_list; - const struct snd_soc_component_driver *driver; - struct list_head dai_list; - int num_dai; - struct regmap *regmap; - int val_bytes; - struct mutex io_mutex; - struct list_head dobj_list; - struct snd_soc_dapm_context dapm; - int (*init)(struct snd_soc_component *); - void *mark_module; - struct snd_pcm_substream *mark_open; - struct snd_pcm_substream *mark_hw_params; - struct snd_pcm_substream *mark_trigger; - struct snd_compr_stream *mark_compr_open; - void *mark_pm; - struct dentry *debugfs_root; - const char *debugfs_prefix; +struct fnhe_hash_bucket { + struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *chain; }; -struct snd_soc_dapm_stats { - int power_checks; - int path_checks; - int neighbour_checks; +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 snd_soc_dai_link; - -struct snd_soc_codec_conf; +struct rt6_info { + struct dst_entry dst; + struct fib6_info __attribute__((btf_type_tag("rcu"))) *from; + int sernum; + struct rt6key rt6i_dst; + struct rt6key rt6i_src; + struct in6_addr rt6i_gateway; + struct inet6_dev *rt6i_idev; + u32 rt6i_flags; + unsigned short rt6i_nfheader_len; +}; -struct snd_soc_aux_dev; +struct rt6_exception_bucket { + struct hlist_head chain; + int depth; +}; -struct snd_kcontrol_new; +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 snd_soc_dapm_route; +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 snd_soc_dapm_update; +struct ip_sf_list; -struct snd_soc_card { - const char *name; - const char *long_name; - const char *driver_name; - const char *components; - char dmi_longname[80]; - char topology_shortname[32]; - struct device *dev; - struct snd_card *snd_card; - struct module *owner; - struct mutex mutex; - struct mutex dapm_mutex; - struct mutex pcm_mutex; - enum snd_soc_pcm_subclass pcm_subclass; - int (*probe)(struct snd_soc_card *); - int (*late_probe)(struct snd_soc_card *); - void (*fixup_controls)(struct snd_soc_card *); - int (*remove)(struct snd_soc_card *); - int (*suspend_pre)(struct snd_soc_card *); - int (*suspend_post)(struct snd_soc_card *); - int (*resume_pre)(struct snd_soc_card *); - int (*resume_post)(struct snd_soc_card *); - int (*set_bias_level)(struct snd_soc_card *, struct snd_soc_dapm_context *, enum snd_soc_bias_level); - int (*set_bias_level_post)(struct snd_soc_card *, struct snd_soc_dapm_context *, enum snd_soc_bias_level); - int (*add_dai_link)(struct snd_soc_card *, struct snd_soc_dai_link *); - void (*remove_dai_link)(struct snd_soc_card *, struct snd_soc_dai_link *); - long pmdown_time; - struct snd_soc_dai_link *dai_link; - int num_links; - struct list_head rtd_list; - int num_rtd; - struct snd_soc_codec_conf *codec_conf; - int num_configs; - struct snd_soc_aux_dev *aux_dev; - int num_aux_devs; - struct list_head aux_comp_list; - const struct snd_kcontrol_new *controls; - int num_controls; - const struct snd_soc_dapm_widget *dapm_widgets; - int num_dapm_widgets; - const struct snd_soc_dapm_route *dapm_routes; - int num_dapm_routes; - const struct snd_soc_dapm_widget *of_dapm_widgets; - int num_of_dapm_widgets; - const struct snd_soc_dapm_route *of_dapm_routes; - int num_of_dapm_routes; - struct list_head component_dev_list; - struct list_head list; - struct list_head widgets; - struct list_head paths; - struct list_head dapm_list; - struct list_head dapm_dirty; - struct list_head dobj_list; - struct snd_soc_dapm_context dapm; - struct snd_soc_dapm_stats dapm_stats; - struct snd_soc_dapm_update *update; - struct dentry *debugfs_card_root; - struct work_struct deferred_resume_work; - u32 pop_time; - unsigned int instantiated: 1; - unsigned int topology_shortname_created: 1; - unsigned int fully_routed: 1; - unsigned int disable_route_checks: 1; - unsigned int probed: 1; - unsigned int component_chaining: 1; - void *drvdata; +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 snd_soc_dapm_widget { - enum snd_soc_dapm_type id; - const char *name; - const char *sname; - struct list_head list; - struct snd_soc_dapm_context *dapm; - void *priv; - struct regulator *regulator; - struct pinctrl *pinctrl; - int reg; - unsigned char shift; - unsigned int mask; - unsigned int on_val; - unsigned int off_val; - unsigned char power: 1; - unsigned char active: 1; - unsigned char connected: 1; - unsigned char new: 1; - unsigned char force: 1; - unsigned char ignore_suspend: 1; - unsigned char new_power: 1; - unsigned char power_checked: 1; - unsigned char is_supply: 1; - unsigned char is_ep: 2; - int subseq; - int (*power_check)(struct snd_soc_dapm_widget *); - unsigned short event_flags; - int (*event)(struct snd_soc_dapm_widget *, struct snd_kcontrol *, int); - int num_kcontrols; - const struct snd_kcontrol_new *kcontrol_news; - struct snd_kcontrol **kcontrols; - struct snd_soc_dobj dobj; - struct list_head edges[2]; - struct list_head work_list; - struct list_head power_list; - struct list_head dirty; - int endpoints[2]; - struct clk *clk; - int channel; +struct bpf_cgroup_storage_key { + __u64 cgroup_inode_id; + __u32 attach_type; }; -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 bpf_storage_buffer; -struct snd_soc_dai_link_component; +struct bpf_cgroup_storage_map; -struct snd_soc_dai_link_codec_ch_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 snd_soc_pcm_stream; +struct bpf_storage_buffer { + struct callback_head rcu; + char data[0]; +}; -struct snd_soc_pcm_runtime; +typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason); -struct snd_soc_ops; +typedef void (*btf_trace_consume_skb)(void *, struct sk_buff *, void *); -struct snd_soc_compr_ops; +typedef void (*btf_trace_skb_copy_datagram_iovec)(void *, const struct sk_buff *, int); -struct snd_soc_dai_link { - const char *name; - const char *stream_name; - struct snd_soc_dai_link_component *cpus; - unsigned int num_cpus; - struct snd_soc_dai_link_component *codecs; - unsigned int num_codecs; - struct snd_soc_dai_link_codec_ch_map *codec_ch_maps; - struct snd_soc_dai_link_component *platforms; - unsigned int num_platforms; - int id; - const struct snd_soc_pcm_stream *c2c_params; - unsigned int num_c2c_params; - unsigned int dai_fmt; - enum snd_soc_dpcm_trigger trigger[2]; - int (*init)(struct snd_soc_pcm_runtime *); - void (*exit)(struct snd_soc_pcm_runtime *); - int (*be_hw_params_fixup)(struct snd_soc_pcm_runtime *, struct snd_pcm_hw_params *); - const struct snd_soc_ops *ops; - const struct snd_soc_compr_ops *compr_ops; - enum snd_soc_trigger_order trigger_start; - enum snd_soc_trigger_order trigger_stop; - unsigned int nonatomic: 1; - unsigned int playback_only: 1; - unsigned int capture_only: 1; - unsigned int ignore_suspend: 1; - unsigned int symmetric_rate: 1; - unsigned int symmetric_channels: 1; - unsigned int symmetric_sample_bits: 1; - unsigned int no_pcm: 1; - unsigned int dynamic: 1; - unsigned int dpcm_capture: 1; - unsigned int dpcm_playback: 1; - unsigned int dpcm_merged_format: 1; - unsigned int dpcm_merged_chan: 1; - unsigned int dpcm_merged_rate: 1; - unsigned int ignore_pmdown_time: 1; - unsigned int ignore: 1; - struct snd_soc_dobj dobj; -}; +typedef void (*btf_trace_net_dev_start_xmit)(void *, const struct sk_buff *, const struct net_device *); -struct snd_soc_dai_link_component { - const char *name; - struct device_node *of_node; - const char *dai_name; -}; +typedef void (*btf_trace_net_dev_xmit)(void *, struct sk_buff *, int, struct net_device *, unsigned int); -struct snd_soc_dai_link_codec_ch_map { - unsigned int connected_cpu_id; - unsigned int ch_mask; -}; +typedef void (*btf_trace_net_dev_xmit_timeout)(void *, struct net_device *, int); -struct snd_soc_pcm_stream { - const char *stream_name; - u64 formats; - unsigned int rates; - unsigned int rate_min; - unsigned int rate_max; - unsigned int channels_min; - unsigned int channels_max; - unsigned int sig_bits; -}; +typedef void (*btf_trace_net_dev_queue)(void *, struct sk_buff *); -struct snd_soc_dpcm_runtime { - struct list_head be_clients; - struct list_head fe_clients; - int users; - struct snd_pcm_hw_params hw_params; - enum snd_soc_dpcm_update runtime_update; - enum snd_soc_dpcm_state state; - int trigger_pending; - int be_start; - int be_pause; - bool fe_pause; -}; +typedef void (*btf_trace_netif_receive_skb)(void *, struct sk_buff *); -struct snd_compr; +typedef void (*btf_trace_netif_rx)(void *, struct sk_buff *); -struct snd_soc_dai; +typedef void (*btf_trace_napi_gro_frags_entry)(void *, const struct sk_buff *); -struct snd_soc_pcm_runtime { - struct device *dev; - struct snd_soc_card *card; - struct snd_soc_dai_link *dai_link; - struct snd_pcm_ops ops; - unsigned int c2c_params_select; - struct snd_soc_dpcm_runtime dpcm[2]; - struct snd_soc_dapm_widget *c2c_widget[2]; - long pmdown_time; - struct snd_pcm *pcm; - struct snd_compr *compr; - struct snd_soc_dai **dais; - struct delayed_work delayed_work; - void (*close_delayed_work_func)(struct snd_soc_pcm_runtime *); - struct dentry *debugfs_dpcm_root; - unsigned int num; - struct list_head list; - struct snd_pcm_substream *mark_startup; - struct snd_pcm_substream *mark_hw_params; - struct snd_pcm_substream *mark_trigger; - struct snd_compr_stream *mark_compr_startup; - unsigned int pop_wait: 1; - unsigned int fe_compr: 1; - int num_components; - struct snd_soc_component *components[0]; -}; +typedef void (*btf_trace_napi_gro_receive_entry)(void *, const struct sk_buff *); -struct snd_compr_ops; +typedef void (*btf_trace_netif_receive_skb_entry)(void *, const struct sk_buff *); -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; -}; +typedef void (*btf_trace_netif_receive_skb_list_entry)(void *, const struct sk_buff *); -struct snd_compr_params; +typedef void (*btf_trace_netif_rx_entry)(void *, const struct sk_buff *); -struct snd_codec; +typedef void (*btf_trace_napi_gro_frags_exit)(void *, int); -struct snd_compr_metadata; +typedef void (*btf_trace_napi_gro_receive_exit)(void *, int); -struct snd_compr_tstamp; +typedef void (*btf_trace_netif_receive_skb_exit)(void *, int); -struct snd_compr_caps; +typedef void (*btf_trace_netif_rx_exit)(void *, int); -struct snd_compr_codec_caps; +typedef void (*btf_trace_netif_receive_skb_list_exit)(void *, int); -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 *); -}; +typedef void (*btf_trace_napi_poll)(void *, struct napi_struct *, int, int); -struct snd_compr_runtime; +typedef void (*btf_trace_sock_rcvqueue_full)(void *, struct sock *, struct sk_buff *); -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; -}; +typedef void (*btf_trace_sock_exceed_buf_limit)(void *, struct sock *, struct proto *, long, int); -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; -}; +typedef void (*btf_trace_inet_sock_set_state)(void *, const struct sock *, const int, const int); -struct snd_compressed_buffer { - __u32 fragment_size; - __u32 fragments; -}; +typedef void (*btf_trace_inet_sk_error_report)(void *, const struct sock *); -struct snd_enc_wma { - __u32 super_block_align; -}; +typedef void (*btf_trace_sk_data_ready)(void *, const struct sock *); -struct snd_enc_vorbis { - __s32 quality; - __u32 managed; - __u32 max_bit_rate; - __u32 min_bit_rate; - __u32 downmix; -}; +typedef void (*btf_trace_sock_send_length)(void *, struct sock *, int, int); -struct snd_enc_real { - __u32 quant_bits; - __u32 start_region; - __u32 num_regions; -}; +typedef void (*btf_trace_sock_recv_length)(void *, struct sock *, int, int); -struct snd_enc_flac { - __u32 num; - __u32 gain; -}; +typedef void (*btf_trace_udp_fail_queue_rcv_skb)(void *, int, struct sock *); -struct snd_enc_generic { - __u32 bw; - __s32 reserved[15]; -}; +typedef void (*btf_trace_tcp_retransmit_skb)(void *, const struct sock *, const struct sk_buff *); -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; -}; +typedef void (*btf_trace_tcp_send_reset)(void *, const struct sock *, const struct sk_buff *); -struct snd_dec_wma { - __u32 encoder_option; - __u32 adv_encoder_option; - __u32 adv_encoder_option2; - __u32 reserved; -}; +typedef void (*btf_trace_tcp_receive_reset)(void *, struct sock *); -struct snd_dec_alac { - __u32 frame_length; - __u8 compatible_version; - __u8 pb; - __u8 mb; - __u8 kb; - __u32 max_run; - __u32 max_frame_bytes; -}; +typedef void (*btf_trace_tcp_destroy_sock)(void *, struct sock *); -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; -}; +typedef void (*btf_trace_tcp_rcv_space_adjust)(void *, struct sock *); -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; -}; +typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, const struct request_sock *); -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]; -}; +typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *); -struct snd_compr_params { - struct snd_compressed_buffer buffer; - struct snd_codec codec; - __u8 no_wake_mode; -}; +typedef void (*btf_trace_tcp_bad_csum)(void *, const struct sk_buff *); -struct snd_compr_metadata { - __u32 key; - __u32 value[8]; -}; +typedef void (*btf_trace_tcp_cong_state_set)(void *, struct sock *, const u8); -struct snd_compr_tstamp { - __u32 byte_offset; - __u32 copied_total; - __u32 pcm_frames; - __u32 pcm_io_frames; - __u32 sampling_rate; -}; +typedef void (*btf_trace_fib_table_lookup)(void *, u32, const struct flowi4 *, const struct fib_nh_common *, int); -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]; -}; +typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *); -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]; -}; +typedef void (*btf_trace_qdisc_enqueue)(void *, struct Qdisc *, const struct netdev_queue *, struct sk_buff *); -struct snd_compr_codec_caps { - __u32 codec; - __u32 num_descriptors; - struct snd_codec_desc descriptor[32]; -}; +typedef void (*btf_trace_qdisc_reset)(void *, struct Qdisc *); -struct snd_soc_dai_stream { - struct snd_soc_dapm_widget *widget; - unsigned int active; - unsigned int tdm_mask; - void *dma_data; -}; +typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *); -struct snd_soc_dai_driver; +typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32); -struct snd_soc_dai { - const char *name; - int id; - struct device *dev; - struct snd_soc_dai_driver *driver; - struct snd_soc_dai_stream stream[2]; - unsigned int rate; - unsigned int channels; - unsigned int sample_bits; - struct snd_soc_component *component; - struct list_head list; - struct snd_pcm_substream *mark_startup; - struct snd_pcm_substream *mark_hw_params; - struct snd_pcm_substream *mark_trigger; - struct snd_compr_stream *mark_compr_startup; - unsigned int probed: 1; -}; +typedef void (*btf_trace_br_fdb_add)(void *, struct ndmsg *, struct net_device *, const unsigned char *, u16, u16); -struct snd_soc_dai_ops; +struct net_bridge; -struct snd_soc_cdai_ops; +struct net_bridge_port; -struct snd_soc_dai_driver { - const char *name; - unsigned int id; - unsigned int base; - struct snd_soc_dobj dobj; - int (*probe)(struct snd_soc_dai *); - int (*remove)(struct snd_soc_dai *); - int (*compress_new)(struct snd_soc_pcm_runtime *, int); - int (*pcm_new)(struct snd_soc_pcm_runtime *, struct snd_soc_dai *); - const struct snd_soc_dai_ops *ops; - const struct snd_soc_cdai_ops *cops; - struct snd_soc_pcm_stream capture; - struct snd_soc_pcm_stream playback; - unsigned int symmetric_rate: 1; - unsigned int symmetric_channels: 1; - unsigned int symmetric_sample_bits: 1; - int probe_order; - int remove_order; -}; +typedef void (*btf_trace_br_fdb_external_learn_add)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16); -struct snd_soc_dai_ops { - int (*set_sysclk)(struct snd_soc_dai *, int, unsigned int, int); - int (*set_pll)(struct snd_soc_dai *, int, int, unsigned int, unsigned int); - int (*set_clkdiv)(struct snd_soc_dai *, int, int); - int (*set_bclk_ratio)(struct snd_soc_dai *, unsigned int); - int (*set_fmt)(struct snd_soc_dai *, unsigned int); - int (*xlate_tdm_slot_mask)(unsigned int, unsigned int *, unsigned int *); - int (*set_tdm_slot)(struct snd_soc_dai *, unsigned int, unsigned int, int, int); - int (*set_channel_map)(struct snd_soc_dai *, unsigned int, unsigned int *, unsigned int, unsigned int *); - int (*get_channel_map)(struct snd_soc_dai *, unsigned int *, unsigned int *, unsigned int *, unsigned int *); - int (*set_tristate)(struct snd_soc_dai *, int); - int (*set_stream)(struct snd_soc_dai *, void *, int); - void * (*get_stream)(struct snd_soc_dai *, int); - int (*mute_stream)(struct snd_soc_dai *, int, int); - int (*startup)(struct snd_pcm_substream *, struct snd_soc_dai *); - void (*shutdown)(struct snd_pcm_substream *, struct snd_soc_dai *); - int (*hw_params)(struct snd_pcm_substream *, struct snd_pcm_hw_params *, struct snd_soc_dai *); - int (*hw_free)(struct snd_pcm_substream *, struct snd_soc_dai *); - int (*prepare)(struct snd_pcm_substream *, struct snd_soc_dai *); - int (*trigger)(struct snd_pcm_substream *, int, struct snd_soc_dai *); - int (*bespoke_trigger)(struct snd_pcm_substream *, int, struct snd_soc_dai *); - snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *, struct snd_soc_dai *); - u64 *auto_selectable_formats; - int num_auto_selectable_formats; - unsigned int no_capture_mute: 1; +struct bridge_id { + unsigned char prio[2]; + unsigned char addr[6]; }; -struct snd_soc_cdai_ops { - int (*startup)(struct snd_compr_stream *, struct snd_soc_dai *); - int (*shutdown)(struct snd_compr_stream *, struct snd_soc_dai *); - int (*set_params)(struct snd_compr_stream *, struct snd_compr_params *, struct snd_soc_dai *); - int (*get_params)(struct snd_compr_stream *, struct snd_codec *, struct snd_soc_dai *); - int (*set_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *, struct snd_soc_dai *); - int (*get_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *, struct snd_soc_dai *); - int (*trigger)(struct snd_compr_stream *, int, struct snd_soc_dai *); - int (*pointer)(struct snd_compr_stream *, struct snd_compr_tstamp *, struct snd_soc_dai *); - int (*ack)(struct snd_compr_stream *, size_t, struct snd_soc_dai *); -}; +typedef struct bridge_id bridge_id; -struct snd_soc_ops { - int (*startup)(struct snd_pcm_substream *); - void (*shutdown)(struct snd_pcm_substream *); - 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); +struct bridge_mcast_other_query { + struct timer_list timer; + unsigned long delay_time; }; -struct snd_soc_compr_ops { - int (*startup)(struct snd_compr_stream *); - void (*shutdown)(struct snd_compr_stream *); - int (*set_params)(struct snd_compr_stream *); +struct bridge_mcast_own_query { + struct timer_list timer; + u32 startup_sent; }; -struct snd_soc_codec_conf { - struct snd_soc_dai_link_component dlc; - const char *name_prefix; +struct br_ip { + union { + __be32 ip4; + struct in6_addr ip6; + } src; + union { + __be32 ip4; + struct in6_addr ip6; + unsigned char mac_addr[6]; + } dst; + __be16 proto; + __u16 vid; }; -struct snd_soc_aux_dev { - struct snd_soc_dai_link_component dlc; - int (*init)(struct snd_soc_component *); +struct bridge_mcast_querier { + struct br_ip addr; + int port_ifidx; + seqcount_spinlock_t seq; }; -struct snd_soc_dapm_route { - const char *sink; - const char *control; - const char *source; - int (*connected)(struct snd_soc_dapm_widget *, struct snd_soc_dapm_widget *); - struct snd_soc_dobj dobj; -}; +struct net_bridge_vlan; -struct snd_soc_dapm_update { - struct snd_kcontrol *kcontrol; - int reg; - int mask; - int val; - int reg2; - int mask2; - int val2; - bool has_second_set; +struct net_bridge_mcast { + struct net_bridge *br; + struct net_bridge_vlan *vlan; + u32 multicast_last_member_count; + u32 multicast_startup_query_count; + u8 multicast_querier; + u8 multicast_igmp_version; + u8 multicast_router; + u8 multicast_mld_version; + unsigned long multicast_last_member_interval; + unsigned long multicast_membership_interval; + unsigned long multicast_querier_interval; + unsigned long multicast_query_interval; + unsigned long multicast_query_response_interval; + unsigned long multicast_startup_query_interval; + struct hlist_head ip4_mc_router_list; + struct timer_list ip4_mc_router_timer; + struct bridge_mcast_other_query ip4_other_query; + struct bridge_mcast_own_query ip4_own_query; + struct bridge_mcast_querier ip4_querier; + struct hlist_head ip6_mc_router_list; + struct timer_list ip6_mc_router_timer; + struct bridge_mcast_other_query ip6_other_query; + struct bridge_mcast_own_query ip6_own_query; + struct bridge_mcast_querier ip6_querier; }; -struct snd_soc_jack; +struct net_bridge_vlan_group; -struct snd_compress_ops; +struct bridge_mcast_stats; -struct snd_soc_component_driver { - const char *name; - const struct snd_kcontrol_new *controls; - unsigned int num_controls; - const struct snd_soc_dapm_widget *dapm_widgets; - unsigned int num_dapm_widgets; - const struct snd_soc_dapm_route *dapm_routes; - unsigned int num_dapm_routes; - int (*probe)(struct snd_soc_component *); - void (*remove)(struct snd_soc_component *); - int (*suspend)(struct snd_soc_component *); - int (*resume)(struct snd_soc_component *); - unsigned int (*read)(struct snd_soc_component *, unsigned int); - int (*write)(struct snd_soc_component *, unsigned int, unsigned int); - int (*pcm_construct)(struct snd_soc_component *, struct snd_soc_pcm_runtime *); - void (*pcm_destruct)(struct snd_soc_component *, struct snd_pcm *); - int (*set_sysclk)(struct snd_soc_component *, int, int, unsigned int, int); - int (*set_pll)(struct snd_soc_component *, int, int, unsigned int, unsigned int); - int (*set_jack)(struct snd_soc_component *, struct snd_soc_jack *, void *); - int (*get_jack_type)(struct snd_soc_component *); - int (*of_xlate_dai_name)(struct snd_soc_component *, const struct of_phandle_args *, const char **); - int (*of_xlate_dai_id)(struct snd_soc_component *, struct device_node *); - void (*seq_notifier)(struct snd_soc_component *, enum snd_soc_dapm_type, int); - int (*stream_event)(struct snd_soc_component *, int); - int (*set_bias_level)(struct snd_soc_component *, enum snd_soc_bias_level); - int (*open)(struct snd_soc_component *, struct snd_pcm_substream *); - int (*close)(struct snd_soc_component *, struct snd_pcm_substream *); - int (*ioctl)(struct snd_soc_component *, struct snd_pcm_substream *, unsigned int, void *); - int (*hw_params)(struct snd_soc_component *, struct snd_pcm_substream *, struct snd_pcm_hw_params *); - int (*hw_free)(struct snd_soc_component *, struct snd_pcm_substream *); - int (*prepare)(struct snd_soc_component *, struct snd_pcm_substream *); - int (*trigger)(struct snd_soc_component *, struct snd_pcm_substream *, int); - int (*sync_stop)(struct snd_soc_component *, struct snd_pcm_substream *); - snd_pcm_uframes_t (*pointer)(struct snd_soc_component *, struct snd_pcm_substream *); - int (*get_time_info)(struct snd_soc_component *, struct snd_pcm_substream *, struct timespec64 *, struct timespec64 *, struct snd_pcm_audio_tstamp_config *, struct snd_pcm_audio_tstamp_report *); - int (*copy_user)(struct snd_soc_component *, struct snd_pcm_substream *, int, unsigned long, void __attribute__((btf_type_tag("user"))) *, unsigned long); - struct page * (*page)(struct snd_soc_component *, struct snd_pcm_substream *, unsigned long); - int (*mmap)(struct snd_soc_component *, struct snd_pcm_substream *, struct vm_area_struct *); - int (*ack)(struct snd_soc_component *, struct snd_pcm_substream *); - snd_pcm_sframes_t (*delay)(struct snd_soc_component *, struct snd_pcm_substream *); - const struct snd_compress_ops *compress_ops; - int probe_order; - int remove_order; - enum snd_soc_trigger_order trigger_start; - enum snd_soc_trigger_order trigger_stop; - unsigned int module_get_upon_open: 1; - unsigned int idle_bias_on: 1; - unsigned int suspend_bias_off: 1; - unsigned int use_pmdown_time: 1; - unsigned int endianness: 1; - unsigned int legacy_dai_naming: 1; - const char *ignore_machine; - const char *topology_name_prefix; - int (*be_hw_params_fixup)(struct snd_soc_pcm_runtime *, struct snd_pcm_hw_params *); - bool use_dai_pcm_id; - int be_pcm_base; - const char *debugfs_prefix; +struct net_bridge { + spinlock_t lock; + spinlock_t hash_lock; + struct hlist_head frame_type_list; + struct net_device *dev; + unsigned long options; + __be16 vlan_proto; + u16 default_pvid; + struct net_bridge_vlan_group __attribute__((btf_type_tag("rcu"))) *vlgrp; + struct rhashtable fdb_hash_tbl; + struct list_head port_list; + union { + struct rtable fake_rtable; + struct rt6_info fake_rt6_info; + }; + u16 group_fwd_mask; + u16 group_fwd_mask_required; + bridge_id designated_root; + bridge_id bridge_id; + unsigned char topology_change; + unsigned char topology_change_detected; + u16 root_port; + unsigned long max_age; + unsigned long hello_time; + unsigned long forward_delay; + unsigned long ageing_time; + unsigned long bridge_max_age; + unsigned long bridge_hello_time; + unsigned long bridge_forward_delay; + unsigned long bridge_ageing_time; + u32 root_path_cost; + u8 group_addr[6]; + enum { + BR_NO_STP = 0, + BR_KERNEL_STP = 1, + BR_USER_STP = 2, + } stp_enabled; + struct net_bridge_mcast multicast_ctx; + struct bridge_mcast_stats __attribute__((btf_type_tag("percpu"))) *mcast_stats; + u32 hash_max; + spinlock_t multicast_lock; + struct rhashtable mdb_hash_tbl; + struct rhashtable sg_port_tbl; + struct hlist_head mcast_gc_list; + struct hlist_head mdb_list; + struct work_struct mcast_gc_work; + struct timer_list hello_timer; + struct timer_list tcn_timer; + struct timer_list topology_change_timer; + struct delayed_work gc_work; + struct kobject *ifobj; + u32 auto_cnt; + atomic_t fdb_n_learned; + u32 fdb_max_learned; + int last_hwdom; + unsigned long busy_hwdoms; + struct hlist_head fdb_list; }; -struct snd_jack; - -struct snd_soc_jack { - struct mutex mutex; - struct snd_jack *jack; - struct snd_soc_card *card; - struct list_head pins; - int status; - struct blocking_notifier_head notifier; - struct list_head jack_zones; +struct net_bridge_vlan_group { + struct rhashtable vlan_hash; + struct rhashtable tunnel_hash; + struct list_head vlan_list; + u16 num_vlans; + u16 pvid; + u8 pvid_state; }; -struct 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 net_bridge_mcast_port { + struct net_bridge_port *port; + struct net_bridge_vlan *vlan; + struct bridge_mcast_own_query ip4_own_query; + struct timer_list ip4_mc_router_timer; + struct hlist_node ip4_rlist; + struct bridge_mcast_own_query ip6_own_query; + struct timer_list ip6_mc_router_timer; + struct hlist_node ip6_rlist; + unsigned char multicast_router; + u32 mdb_n_entries; + u32 mdb_max_entries; }; -struct snd_compress_ops { - int (*open)(struct snd_soc_component *, struct snd_compr_stream *); - int (*free)(struct snd_soc_component *, struct snd_compr_stream *); - int (*set_params)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_params *); - int (*get_params)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_codec *); - int (*set_metadata)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_metadata *); - int (*get_metadata)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_metadata *); - int (*trigger)(struct snd_soc_component *, struct snd_compr_stream *, int); - int (*pointer)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_tstamp *); - int (*copy)(struct snd_soc_component *, struct snd_compr_stream *, char __attribute__((btf_type_tag("user"))) *, size_t); - int (*mmap)(struct snd_soc_component *, struct snd_compr_stream *, struct vm_area_struct *); - int (*ack)(struct snd_soc_component *, struct snd_compr_stream *, size_t); - int (*get_caps)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_caps *); - int (*get_codec_caps)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_codec_caps *); -}; +struct metadata_dst; -struct soc_mixer_control { - int min; - int max; - int platform_max; - int reg; - int rreg; - unsigned int shift; - unsigned int rshift; - unsigned int sign_bit; - unsigned int invert: 1; - unsigned int autodisable: 1; - struct snd_soc_dobj dobj; +struct br_tunnel_info { + __be64 tunnel_id; + struct metadata_dst __attribute__((btf_type_tag("rcu"))) *tunnel_dst; }; -struct soc_mreg_control { - long min; - long max; - unsigned int regbase; - unsigned int regcount; - unsigned int nbits; - unsigned int invert; +struct net_bridge_vlan { + struct rhash_head vnode; + struct rhash_head tnode; + u16 vid; + u16 flags; + u16 priv_flags; + u8 state; + struct pcpu_sw_netstats __attribute__((btf_type_tag("percpu"))) *stats; + union { + struct net_bridge *br; + struct net_bridge_port *port; + }; + union { + refcount_t refcnt; + struct net_bridge_vlan *brvlan; + }; + struct br_tunnel_info tinfo; + union { + struct net_bridge_mcast br_mcast_ctx; + struct net_bridge_mcast_port port_mcast_ctx; + }; + u16 msti; + struct list_head vlist; + struct callback_head rcu; }; -struct soc_bytes { - int base; - int num_regs; - u32 mask; +typedef __u16 port_id; + +struct bridge_stp_xstats { + __u64 transition_blk; + __u64 transition_fwd; + __u64 rx_bpdu; + __u64 tx_bpdu; + __u64 rx_tcn; + __u64 tx_tcn; }; -struct soc_bytes_ext { - int max; - struct snd_soc_dobj dobj; - int (*get)(struct snd_kcontrol *, unsigned int __attribute__((btf_type_tag("user"))) *, unsigned int); - int (*put)(struct snd_kcontrol *, const unsigned int __attribute__((btf_type_tag("user"))) *, unsigned int); +struct net_bridge_port { + struct net_bridge *br; + struct net_device *dev; + netdevice_tracker dev_tracker; + struct list_head list; + unsigned long flags; + struct net_bridge_vlan_group __attribute__((btf_type_tag("rcu"))) *vlgrp; + struct net_bridge_port __attribute__((btf_type_tag("rcu"))) *backup_port; + u32 backup_nhid; + u8 priority; + u8 state; + u16 port_no; + unsigned char topology_change_ack; + unsigned char config_pending; + port_id port_id; + port_id designated_port; + bridge_id designated_root; + bridge_id designated_bridge; + u32 path_cost; + u32 designated_cost; + unsigned long designated_age; + struct timer_list forward_delay_timer; + struct timer_list hold_timer; + struct timer_list message_age_timer; + struct kobject kobj; + struct callback_head rcu; + struct net_bridge_mcast_port multicast_ctx; + struct bridge_mcast_stats __attribute__((btf_type_tag("percpu"))) *mcast_stats; + u32 multicast_eht_hosts_limit; + u32 multicast_eht_hosts_cnt; + struct hlist_head mglist; + char sysfs_name[16]; + int hwdom; + int offload_count; + struct netdev_phys_item_id ppid; + u16 group_fwd_mask; + u16 backup_redirected_cnt; + struct bridge_stp_xstats stp_xstats; }; -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 br_mcast_stats { + __u64 igmp_v1queries[2]; + __u64 igmp_v2queries[2]; + __u64 igmp_v3queries[2]; + __u64 igmp_leaves[2]; + __u64 igmp_v1reports[2]; + __u64 igmp_v2reports[2]; + __u64 igmp_v3reports[2]; + __u64 igmp_parse_errors; + __u64 mld_v1queries[2]; + __u64 mld_v2queries[2]; + __u64 mld_leaves[2]; + __u64 mld_v1reports[2]; + __u64 mld_v2reports[2]; + __u64 mld_parse_errors; + __u64 mcast_bytes[2]; + __u64 mcast_packets[2]; }; -struct pcpu_gen_cookie; +struct bridge_mcast_stats { + struct br_mcast_stats mstats; + struct u64_stats_sync syncp; +}; -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; +enum metadata_type { + METADATA_IP_TUNNEL = 0, + METADATA_HW_PORT_MUX = 1, + METADATA_MACSEC = 2, + METADATA_XFRM = 3, }; -struct pcpu_gen_cookie { - local_t nesting; - u64 last; +struct ip_tunnel_key { + __be64 tun_id; + union { + struct { + __be32 src; + __be32 dst; + } ipv4; + struct { + struct in6_addr src; + struct in6_addr dst; + } ipv6; + } u; + __be16 tun_flags; + u8 tos; + u8 ttl; + __be32 label; + u32 nhid; + __be16 tp_src; + __be16 tp_dst; + __u8 flow_flags; }; -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 ip_tunnel_encap { + u16 type; + u16 flags; + __be16 sport; + __be16 dport; }; -struct broadcast_sk { - struct sock *sk; - struct work_struct work; +struct dst_cache_pcpu; + +struct dst_cache { + struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache; + unsigned long reset_ts; }; -struct scm_creds { - u32 pid; - kuid_t uid; - kgid_t gid; +struct ip_tunnel_info { + struct ip_tunnel_key key; + struct ip_tunnel_encap encap; + struct dst_cache dst_cache; + u8 options_len; + u8 mode; }; -struct netlink_skb_parms { - struct scm_creds creds; - __u32 portid; - __u32 dst_group; - __u32 flags; - struct sock *sk; - bool nsid_is_set; - int nsid; +struct hw_port_info { + struct net_device *lower_dev; + u32 port_id; }; -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); +typedef u64 sci_t; + +struct macsec_info { + sci_t sci; }; -struct sock_diag_req { - __u8 sdiag_family; - __u8 sdiag_protocol; +struct xfrm_md_info { + u32 if_id; + int link; + struct dst_entry *dst_orig; }; -struct tcf_walker { - int stop; - int skip; - int count; - bool nonempty; - unsigned long cookie; - int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); +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 tc_action; +struct net_bridge_fdb_entry; -struct tcf_exts_miss_cookie_node; +typedef void (*btf_trace_fdb_delete)(void *, struct net_bridge *, struct net_bridge_fdb_entry *); -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 mac_addr { + unsigned char addr[6]; }; -struct tcf_t { - __u64 install; - __u64 lastuse; - __u64 expires; - __u64 firstuse; +typedef struct mac_addr mac_addr; + +struct net_bridge_fdb_key { + mac_addr addr; + u16 vlan_id; }; -struct tc_action_ops; +struct net_bridge_fdb_entry { + struct rhash_head rhnode; + struct net_bridge_port *dst; + struct net_bridge_fdb_key key; + struct hlist_node fdb_node; + unsigned long flags; + long: 64; + long: 64; + unsigned long updated; + unsigned long used; + struct callback_head rcu; + long: 64; + long: 64; + long: 64; + long: 64; +}; -struct tcf_idrinfo; +typedef void (*btf_trace_br_fdb_update)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16, unsigned long); -struct tc_cookie; +typedef void (*btf_trace_br_mdb_full)(void *, const struct net_device *, const struct br_ip *); -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; -}; +typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32); -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 (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, const struct page *, u32); -typedef void (*tc_action_priv_destructor)(void *); +typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, const struct page *, u32); -struct psample_group; +typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int); -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 *); -}; +typedef void (*btf_trace_neigh_create)(void *, struct neigh_table *, struct net_device *, const void *, const struct neighbour *, bool); -struct tcf_idrinfo { - struct mutex lock; - struct idr action_idr; - struct net *net; -}; +typedef void (*btf_trace_neigh_update)(void *, struct neighbour *, const u8 *, u8, u32, u32); -struct tc_cookie { - u8 *data; - u32 len; - struct callback_head rcu; -}; +typedef void (*btf_trace_neigh_update_done)(void *, struct neighbour *, int); -struct tc_ratespec { - unsigned char cell_log; - __u8 linklayer; - unsigned short overhead; - short cell_align; - unsigned short mpu; - __u32 rate; -}; +typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int); -struct qdisc_rate_table { - struct tc_ratespec rate; - u32 data[256]; - struct qdisc_rate_table *next; - int refcnt; -}; +typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int); -enum tc_link_layer { - TC_LINKLAYER_UNAWARE = 0, - TC_LINKLAYER_ETHERNET = 1, - TC_LINKLAYER_ATM = 2, -}; +typedef void (*btf_trace_neigh_event_send_dead)(void *, struct neighbour *, int); -enum qdisc_state_t { - __QDISC_STATE_SCHED = 0, - __QDISC_STATE_DEACTIVATED = 1, - __QDISC_STATE_MISSED = 2, - __QDISC_STATE_DRAINING = 3, -}; +typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, int); 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, + 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 { - TCA_UNSPEC = 0, - TCA_KIND = 1, - TCA_OPTIONS = 2, - TCA_STATS = 3, - TCA_XSTATS = 4, - TCA_RATE = 5, - TCA_FCNT = 6, - TCA_STATS2 = 7, - TCA_STAB = 8, - TCA_PAD = 9, - TCA_DUMP_INVISIBLE = 10, - TCA_CHAIN = 11, - TCA_HW_OFFLOAD = 12, - TCA_INGRESS_BLOCK = 13, - TCA_EGRESS_BLOCK = 14, - TCA_DUMP_FLAGS = 15, - TCA_EXT_WARN_MSG = 16, - __TCA_MAX = 17, +enum tcp_ca_state { + TCP_CA_Open = 0, + TCP_CA_Disorder = 1, + TCP_CA_CWR = 2, + TCP_CA_Recovery = 3, + TCP_CA_Loss = 4, }; -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, +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]; }; -enum { - TCA_STAB_UNSPEC = 0, - TCA_STAB_BASE = 1, - TCA_STAB_DATA = 2, - __TCA_STAB_MAX = 3, +struct trace_event_raw_consume_skb { + struct trace_entry ent; + void *skbaddr; + void *location; + char __data[0]; }; -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, +struct trace_event_raw_skb_copy_datagram_iovec { + struct trace_entry ent; + const void *skbaddr; + int len; + char __data[0]; }; -enum tc_root_command { - TC_ROOT_GRAFT = 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 Qdisc_class_common { - u32 classid; - struct hlist_node hnode; +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 qdisc_skb_cb { - struct { - unsigned int pkt_len; - u16 slave_dev_queue_mapping; - u16 tc_classid; - }; - unsigned char data[20]; +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 qdisc_watchdog { - struct hrtimer timer; - struct Qdisc *qdisc; +struct trace_event_raw_net_dev_template { + struct trace_entry ent; + void *skbaddr; + unsigned int len; + u32 __data_loc_name; + char __data[0]; }; -struct check_loop_arg { - struct qdisc_walker w; - struct Qdisc *p; - int depth; +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 tc_bind_class_args { - struct qdisc_walker w; - unsigned long new_cl; - u32 portid; - u32 clid; +struct trace_event_raw_net_dev_rx_exit_template { + struct trace_entry ent; + int ret; + char __data[0]; }; -struct qdisc_dump_args { - struct qdisc_walker w; - struct sk_buff *skb; - struct netlink_callback *cb; +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]; }; -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 tc_root_qopt_offload { - enum tc_root_command command; - u32 handle; - bool ingress; +struct trace_event_raw_sock_rcvqueue_full { + struct trace_entry ent; + int rmem_alloc; + unsigned int truesize; + int sk_rcvbuf; + char __data[0]; }; -struct Qdisc_class_hash { - struct hlist_head *hash; - unsigned int hashsize; - unsigned int hashmask; - unsigned int hashelems; +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 tc_query_caps_base { - enum tc_setup_type type; - void *caps; +struct ip_options; + +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 tcf_bind_args { - struct tcf_walker w; - unsigned long base; - unsigned long cl; - u32 classid; +struct inet_cork_full { + struct inet_cork base; + struct flowi fl; }; -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 ipv6_pinfo; + +struct ip_options_rcu; + +struct ip_mc_socklist; + +struct inet_sock { + struct sock sk; + struct ipv6_pinfo *pinet6; + unsigned long inet_flags; + __be32 inet_saddr; + __s16 uc_ttl; + __be16 inet_sport; + struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *inet_opt; + atomic_t inet_id; + __u8 tos; + __u8 min_ttl; + __u8 mc_ttl; + __u8 pmtudisc; + __u8 rcv_tos; + __u8 convert_csum; + int uc_index; + int mc_index; + __be32 mc_addr; + struct { + __u16 lo; + __u16 hi; + } local_port_range; + struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *mc_list; + struct inet_cork_full cork; }; -struct module_reply_data { - struct ethnl_reply_data base; - struct ethtool_module_power_mode_params power; +struct in6_pktinfo { + struct in6_addr ipi6_addr; + int ipi6_ifindex; }; -struct rt6key { - struct in6_addr addr; - int plen; +struct ipv6_txoptions; + +struct inet6_cork { + struct ipv6_txoptions *opt; + u8 hop_limit; + u8 tclass; }; -struct rtable; +struct ipv6_mc_socklist; -struct fnhe_hash_bucket; +struct ipv6_ac_socklist; -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; +struct ipv6_fl_socklist; + +struct ipv6_pinfo { + struct in6_addr saddr; + struct in6_pktinfo sticky_pktinfo; + const struct in6_addr *daddr_cache; + const struct in6_addr *saddr_cache; + __be32 flow_label; + __u32 frag_size; + s16 hop_limit; + u8 mcast_hops; + int ucast_oif; + int mcast_oif; 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 { + __u16 srcrt: 1; + __u16 osrcrt: 1; + __u16 rxinfo: 1; + __u16 rxoinfo: 1; + __u16 rxhlim: 1; + __u16 rxohlim: 1; + __u16 hopopts: 1; + __u16 ohopopts: 1; + __u16 dstopts: 1; + __u16 odstopts: 1; + __u16 rxflow: 1; + __u16 rxtclass: 1; + __u16 rxpmtu: 1; + __u16 rxorigdstaddr: 1; + __u16 recvfragsize: 1; + } bits; + __u16 all; + } rxopt; + __u8 srcprefs; + __u8 pmtudisc; + __u8 min_hopcount; + __u8 tclass; + __be32 rcv_flowinfo; + __u32 dst_cookie; + struct ipv6_mc_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_mc_list; + struct ipv6_ac_socklist *ipv6_ac_list; + struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_fl_list; + struct ipv6_txoptions __attribute__((btf_type_tag("rcu"))) *opt; + struct sk_buff *pktoptions; + struct sk_buff *rxpmtu; + struct inet6_cork cork; }; -struct rt6_exception_bucket; +struct ip6_sf_socklist; -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 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 fib6_node; - -struct dst_metrics; - -struct nexthop; +struct ip6_sf_socklist { + unsigned int sl_max; + unsigned int sl_count; + struct callback_head rcu; + struct in6_addr sl_addr[0]; +}; -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_node __attribute__((btf_type_tag("rcu"))) *subtree; - 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 ipv6_ac_socklist { + struct in6_addr acl_addr; + int acl_ifindex; + struct ipv6_ac_socklist *acl_next; }; -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 ip6_flowlabel; -struct dst_metrics { - u32 metrics[17]; - refcount_t refcnt; +struct ipv6_fl_socklist { + struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *next; + struct ip6_flowlabel *fl; + struct callback_head rcu; }; -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; +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 { - __be32 rt_gw4; - struct in6_addr rt_gw6; - }; - u32 rt_mtu_locked: 1; - u32 rt_pmtu: 31; + struct pid *pid; + kuid_t uid; + } owner; + unsigned long lastuse; + unsigned long expires; + struct net *fl_net; }; -struct fib_nh_exception; +struct ipv6_opt_hdr; -struct fnhe_hash_bucket { - struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *chain; -}; +struct ipv6_rt_hdr; -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 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 rt6_info { - struct dst_entry dst; - struct fib6_info __attribute__((btf_type_tag("rcu"))) *from; - int sernum; - struct rt6key rt6i_dst; - struct rt6key rt6i_src; - struct in6_addr rt6i_gateway; - struct inet6_dev *rt6i_idev; - u32 rt6i_flags; - unsigned short rt6i_nfheader_len; +struct ipv6_opt_hdr { + __u8 nexthdr; + __u8 hdrlen; }; -struct rt6_exception_bucket { - struct hlist_head chain; - int depth; +struct ipv6_rt_hdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 type; + __u8 segments_left; }; -struct rt6_statistics { - __u32 fib_nodes; - __u32 fib_route_nodes; - __u32 fib_rt_entries; - __u32 fib_rt_cache; - __u32 fib_discarded_routes; - atomic_t fib_rt_alloc; +struct ip_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 raw_hashinfo { - spinlock_t lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct hlist_head ht[256]; +struct ip_options_rcu { + struct callback_head rcu; + struct ip_options opt; }; -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, +struct in_addr { + __be32 s_addr; }; -enum { - XFRM_POLICY_IN = 0, - XFRM_POLICY_OUT = 1, - XFRM_POLICY_FWD = 2, - XFRM_POLICY_MASK = 3, - XFRM_POLICY_MAX = 3, +struct ip_mreqn { + struct in_addr imr_multiaddr; + struct in_addr imr_address; + int imr_ifindex; }; -enum rt_scope_t { - RT_SCOPE_UNIVERSE = 0, - RT_SCOPE_SITE = 200, - RT_SCOPE_LINK = 253, - RT_SCOPE_HOST = 254, - RT_SCOPE_NOWHERE = 255, -}; +struct ip_sf_socklist; -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, +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; }; -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, +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]; }; -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, +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]; }; -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 trace_event_raw_sk_data_ready { + struct trace_entry ent; + const void *skaddr; + __u16 family; + __u16 protocol; + unsigned long ip; + char __data[0]; }; -enum { - RTN_UNSPEC = 0, - RTN_UNICAST = 1, - RTN_LOCAL = 2, - RTN_BROADCAST = 3, - RTN_ANYCAST = 4, - RTN_MULTICAST = 5, - RTN_BLACKHOLE = 6, - RTN_UNREACHABLE = 7, - RTN_PROHIBIT = 8, - RTN_THROW = 9, - RTN_NAT = 10, - RTN_XRESOLVE = 11, - __RTN_MAX = 12, +struct trace_event_raw_sock_msg_length { + struct trace_entry ent; + void *sk; + __u16 family; + __u16 protocol; + int ret; + int flags; + char __data[0]; }; -struct ip_sf_socklist { - unsigned int sl_max; - unsigned int sl_count; - struct callback_head rcu; - __be32 sl_addr[0]; +struct trace_event_raw_udp_fail_queue_rcv_skb { + struct trace_entry ent; + int rc; + __u16 lport; + char __data[0]; }; -struct icmp_filter { - __u32 data; +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 raw_sock { - struct inet_sock inet; - struct icmp_filter filter; - u32 ipmr_table; +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 icmphdr { - __u8 type; - __u8 code; - __sum16 checksum; +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 { - __be16 id; - __be16 sequence; - } echo; - __be32 gateway; - struct { - __be16 __unused; - __be16 mtu; - } frag; - __u8 reserved[4]; - } un; + struct ipv6_txoptions *ipv6_opt; + struct sk_buff *pktopts; + }; + }; }; -struct seq_net_private { - struct net *net; - netns_tracker ns_tracker; +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 nf_conntrack { - refcount_t use; +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 sockcm_cookie { - u64 transmit_time; - u32 mark; - u32 tsflags; +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 ipcm_cookie { - struct sockcm_cookie sockc; - __be32 addr; - int oif; - struct ip_options_rcu *opt; - __u8 protocol; - __u8 ttl; - __s16 tos; - char priority; - __u16 gso_size; +struct 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 raw_frag_vec { - struct msghdr *msg; - union { - struct icmphdr icmph; - char c[1]; - } hdr; - int hlen; -}; +struct inet_bind_bucket; -struct raw_iter_state { - struct seq_net_private p; - int bucket; -}; +struct inet_bind2_bucket; -struct ip_options_data { - struct ip_options_rcu opt; - char data[40]; +struct inet_connection_sock_af_ops; + +struct tcp_ulp_ops; + +struct inet_connection_sock { + struct inet_sock icsk_inet; + struct request_sock_queue icsk_accept_queue; + struct inet_bind_bucket *icsk_bind_hash; + struct inet_bind2_bucket *icsk_bind2_hash; + unsigned long icsk_timeout; + struct timer_list icsk_retransmit_timer; + struct timer_list icsk_delack_timer; + __u32 icsk_rto; + __u32 icsk_rto_min; + __u32 icsk_delack_max; + __u32 icsk_pmtu_cookie; + const struct tcp_congestion_ops *icsk_ca_ops; + const struct inet_connection_sock_af_ops *icsk_af_ops; + const struct tcp_ulp_ops *icsk_ulp_ops; + void __attribute__((btf_type_tag("rcu"))) *icsk_ulp_data; + void (*icsk_clean_acked)(struct sock *, u32); + unsigned int (*icsk_sync_mss)(struct sock *, u32); + __u8 icsk_ca_state: 5; + __u8 icsk_ca_initialized: 1; + __u8 icsk_ca_setsockopt: 1; + __u8 icsk_ca_dst_locked: 1; + __u8 icsk_retransmits; + __u8 icsk_pending; + __u8 icsk_backoff; + __u8 icsk_syn_retries; + __u8 icsk_probes_out; + __u16 icsk_ext_hdr_len; + struct { + __u8 pending; + __u8 quick; + __u8 pingpong; + __u8 retry; + __u32 ato: 8; + __u32 lrcv_flowlabel: 20; + __u32 unused: 4; + unsigned long timeout; + __u32 lrcvtime; + __u16 last_seg_size; + __u16 rcv_mss; + } icsk_ack; + struct { + int search_high; + int search_low; + u32 probe_size: 31; + u32 enabled: 1; + u32 probe_timestamp; + } icsk_mtup; + u32 icsk_probes_tstamp; + u32 icsk_user_timeout; + u64 icsk_ca_priv[13]; }; -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, +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; }; -enum sock_shutdown_cmd { - SHUT_RD = 0, - SHUT_WR = 1, - SHUT_RDWR = 2, +struct minmax_sample { + u32 t; + u32 v; }; -enum rpc_msg_type { - RPC_CALL = 0, - RPC_REPLY = 1, +struct minmax { + struct minmax_sample s[3]; }; -enum { - UDP_MIB_NUM = 0, - UDP_MIB_INDATAGRAMS = 1, - UDP_MIB_NOPORTS = 2, - UDP_MIB_INERRORS = 3, - UDP_MIB_OUTDATAGRAMS = 4, - UDP_MIB_RCVBUFERRORS = 5, - UDP_MIB_SNDBUFERRORS = 6, - UDP_MIB_CSUMERRORS = 7, - UDP_MIB_IGNOREDMULTI = 8, - UDP_MIB_MEMERRORS = 9, - __UDP_MIB_MAX = 10, +struct 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 sockaddr_un { - __kernel_sa_family_t sun_family; - char sun_path[108]; +struct tcp_sack_block { + u32 start_seq; + u32 end_seq; }; -struct sock_xprt { - struct rpc_xprt xprt; - struct socket *sock; - struct sock *inet; - struct file *file; +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; + u8 scaling_ratio; + struct tcp_rack rack; + u16 advmss; + u8 compressed_ack; + u8 dup_ack_counter: 2; + u8 tlp_retrans: 1; + u8 tcp_usec_ts: 1; + u8 unused: 4; + 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 rto_stamp; + u16 total_rto; + u16 total_rto_recoveries; + u32 total_rto_time; + u32 urg_seq; + unsigned int keepalive_time; + unsigned int keepalive_intvl; + int linger2; + u8 bpf_sock_ops_cb_flags; + u8 bpf_chg_cc_inprogress: 1; + u16 timeout_rehash; + u32 rcv_ooopack; + u32 rcv_rtt_last_tsecr; struct { - struct { - __be32 fraghdr; - __be32 xid; - __be32 calldir; - }; - u32 offset; - u32 len; - unsigned long copied; - } recv; + u32 rtt_us; + u32 seq; + u64 time; + } rcv_rtt_est; 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 completion handshake_done; - struct __kernel_sockaddr_storage srcaddr; - unsigned short srcport; - int xprt_err; - struct rpc_clnt *clnt; - 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 *); + 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; + struct tcp_fastopen_request *fastopen_req; + struct request_sock __attribute__((btf_type_tag("rcu"))) *fastopen_rsk; + struct saved_syn *saved_syn; }; -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 completion sk_handshake_done; - struct page *sk_pages[259]; +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 rpc_buffer { - size_t len; - char data[0]; +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 cmsghdr { - __kernel_size_t cmsg_len; - int cmsg_level; - int cmsg_type; +struct inet_connection_sock_af_ops { + int (*queue_xmit)(struct sock *, struct sk_buff *, struct flowi *); + void (*send_check)(struct sock *, struct sk_buff *); + int (*rebuild_header)(struct sock *); + void (*sk_rx_dst_set)(struct sock *, const struct sk_buff *); + int (*conn_request)(struct sock *, struct sk_buff *); + struct sock * (*syn_recv_sock)(const struct sock *, struct sk_buff *, struct request_sock *, struct dst_entry *, struct request_sock *, bool *); + u16 net_header_len; + u16 sockaddr_len; + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); + void (*addr2sockaddr)(struct sock *, struct sockaddr *); + void (*mtu_reduced)(struct sock *); }; -typedef __be32 rpc_fraghdr; - -typedef void (*tls_done_func_t)(void *, int, key_serial_t); - -struct tls_handshake_args { - struct socket *ta_sock; - tls_done_func_t ta_done; - void *ta_data; - const char *ta_peername; - unsigned int ta_timeout_ms; - key_serial_t ta_keyring; - key_serial_t ta_my_cert; - key_serial_t ta_my_privkey; - unsigned int ta_num_peerids; - key_serial_t ta_my_peerids[5]; +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 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 xprtsec_parms xprtsec; +struct tcp_fastopen_cookie { + __le64 val[2]; + s8 len; + bool exp; }; -struct handshake_req; +struct tcp_fastopen_request { + struct tcp_fastopen_cookie cookie; + struct msghdr *data; + size_t size; + int copied; + struct ubuf_info *uarg; +}; -struct handshake_proto { - int hp_handler_class; - size_t hp_privsize; - unsigned long hp_flags; - int (*hp_accept)(struct handshake_req *, struct genl_info *, int); - void (*hp_done)(struct handshake_req *, unsigned int, struct genl_info *); - void (*hp_destroy)(struct handshake_req *); +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 handshake_req { - struct list_head hr_list; - struct rhash_head hr_rhash; - unsigned long hr_flags; - const struct handshake_proto *hr_proto; - struct sock *hr_sk; - void (*hr_odestruct)(struct sock *); - char hr_priv[0]; +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; + }; }; -enum handshake_msg_type { - HANDSHAKE_MSG_TYPE_UNSPEC = 0, - HANDSHAKE_MSG_TYPE_CLIENTHELLO = 1, - HANDSHAKE_MSG_TYPE_SERVERHELLO = 2, +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; + }; }; -enum handshake_auth { - HANDSHAKE_AUTH_UNSPEC = 0, - HANDSHAKE_AUTH_UNAUTH = 1, - HANDSHAKE_AUTH_PSK = 2, - HANDSHAKE_AUTH_X509 = 3, +struct trace_event_raw_tcp_event_skb { + struct trace_entry ent; + const void *skbaddr; + __u8 saddr[28]; + __u8 daddr[28]; + char __data[0]; }; -enum { - HANDSHAKE_A_ACCEPT_SOCKFD = 1, - HANDSHAKE_A_ACCEPT_HANDLER_CLASS = 2, - HANDSHAKE_A_ACCEPT_MESSAGE_TYPE = 3, - HANDSHAKE_A_ACCEPT_TIMEOUT = 4, - HANDSHAKE_A_ACCEPT_AUTH_MODE = 5, - HANDSHAKE_A_ACCEPT_PEER_IDENTITY = 6, - HANDSHAKE_A_ACCEPT_CERTIFICATE = 7, - HANDSHAKE_A_ACCEPT_PEERNAME = 8, - __HANDSHAKE_A_ACCEPT_MAX = 9, - HANDSHAKE_A_ACCEPT_MAX = 8, +struct trace_event_raw_tcp_cong_state_set { + struct trace_entry ent; + const void *skaddr; + __u16 sport; + __u16 dport; + __u16 family; + __u8 saddr[4]; + __u8 daddr[4]; + __u8 saddr_v6[16]; + __u8 daddr_v6[16]; + __u8 cong_state; + char __data[0]; }; -enum { - TLS_NO_KEYRING = 0, - TLS_NO_PEERID = 0, - TLS_NO_CERT = 0, - TLS_NO_PRIVKEY = 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]; }; -enum key_lookup_flag { - KEY_LOOKUP_CREATE = 1, - KEY_LOOKUP_PARTIAL = 2, - KEY_LOOKUP_ALL = 3, +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]; }; -enum { - HANDSHAKE_A_X509_CERT = 1, - HANDSHAKE_A_X509_PRIVKEY = 2, - __HANDSHAKE_A_X509_MAX = 3, - HANDSHAKE_A_X509_MAX = 2, +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]; }; -enum { - HANDSHAKE_A_DONE_STATUS = 1, - HANDSHAKE_A_DONE_SOCKFD = 2, - HANDSHAKE_A_DONE_REMOTE_AUTH = 3, - __HANDSHAKE_A_DONE_MAX = 4, - HANDSHAKE_A_DONE_MAX = 3, +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 tls_handshake_req { - void (*th_consumer_done)(void *, int, key_serial_t); - void *th_consumer_data; - int th_type; - unsigned int th_timeout_ms; - int th_auth_mode; - const char *th_peername; - key_serial_t th_keyring; - key_serial_t th_certificate; - key_serial_t th_privkey; - unsigned int th_num_peerids; - key_serial_t th_peerid[5]; +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]; }; -typedef __u32 Elf32_Word; +struct trace_event_raw_qdisc_create { + struct trace_entry ent; + u32 __data_loc_dev; + u32 __data_loc_kind; + u32 parent; + char __data[0]; +}; -struct elf32_note { - Elf32_Word n_namesz; - Elf32_Word n_descsz; - Elf32_Word n_type; +struct trace_event_raw_br_fdb_add { + struct trace_entry ent; + u8 ndm_flags; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + u16 nlh_flags; + char __data[0]; }; -struct kvm_cpu_context___2 { - struct user_pt_regs regs; - u64 spsr_abt; - u64 spsr_und; - u64 spsr_irq; - u64 spsr_fiq; - struct user_fpsimd_state fp_regs; - u64 sys_regs[160]; - struct kvm_vcpu___2 *__hyp_running_vcpu; - long: 64; +struct trace_event_raw_br_fdb_external_learn_add { + struct trace_entry ent; + u32 __data_loc_br_dev; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + char __data[0]; }; -struct vgic_irq___2 { - raw_spinlock_t irq_lock; - struct list_head lpi_list; - struct list_head ap_list; - struct kvm_vcpu___2 *vcpu; - struct kvm_vcpu___2 *target_vcpu; - u32 intid; - bool line_level; - bool pending_latch; - bool active; - bool enabled; - bool hw; - struct kref refcount; - u32 hwintid; - unsigned int host_irq; - union { - u8 targets; - u32 mpidr; - }; - u8 source; - u8 active_source; - u8 priority; - u8 group; - enum vgic_irq_config config; - struct irq_ops *ops; - void *owner; +struct trace_event_raw_fdb_delete { + struct trace_entry ent; + u32 __data_loc_br_dev; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + char __data[0]; }; -struct kvm_io_device_ops___2; +struct trace_event_raw_br_fdb_update { + struct trace_entry ent; + u32 __data_loc_br_dev; + u32 __data_loc_dev; + unsigned char addr[6]; + u16 vid; + unsigned long flags; + char __data[0]; +}; -struct kvm_io_device___2 { - const struct kvm_io_device_ops___2 *ops; +struct trace_event_raw_br_mdb_full { + struct trace_entry ent; + u32 __data_loc_dev; + int af; + u16 vid; + __u8 src[16]; + __u8 grp[16]; + __u8 grpmac[6]; + char __data[0]; }; -struct vgic_io_device___2 { - gpa_t base_addr; - union { - struct kvm_vcpu___2 *redist_vcpu; - struct vgic_its___2 *its; - }; - const struct vgic_register_region *regions; - enum iodev_type iodev_type; - int nr_regions; - struct kvm_io_device___2 dev; +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 vgic_cpu___2 { - union { - struct vgic_v2_cpu_if vgic_v2; - struct vgic_v3_cpu_if vgic_v3; - }; - struct vgic_irq___2 private_irqs[32]; - raw_spinlock_t ap_list_lock; - struct list_head ap_list_head; - struct vgic_io_device___2 rd_iodev; - struct vgic_redist_region *rdreg; - u32 rdreg_index; - atomic_t syncr_busy; - u64 pendbaser; - atomic_t ctlr; - u32 num_pri_bits; - u32 num_id_bits; +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 arch_timer_context___2 { - struct kvm_vcpu___2 *vcpu; - struct hrtimer hrtimer; - u64 ns_frac; - struct arch_timer_offset offset; - bool loaded; - struct { - bool level; - } irq; - u32 host_timer_irq; +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 arch_timer_cpu___2 { - struct arch_timer_context___2 timers[4]; - struct hrtimer bg_timer; - bool enabled; +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 kvm_s2_mmu___2; +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 kvm_vcpu_arch___2 { - struct kvm_cpu_context___2 ctxt; - void *sve_state; - enum fp_type fp_type; - unsigned int sve_max_vl; - u64 svcr; - struct kvm_s2_mmu___2 *hw_mmu; - u64 hcr_el2; - u64 mdcr_el2; - u64 cptr_el2; - u64 mdcr_el2_host; - struct kvm_vcpu_fault_info fault; - enum { - FP_STATE_FREE___2 = 0, - FP_STATE_HOST_OWNED___2 = 1, - FP_STATE_GUEST_OWNED___2 = 2, - } fp_state; - u8 cflags; - u8 iflags; - u8 sflags; - bool pause; - struct kvm_guest_debug_arch *debug_ptr; - struct kvm_guest_debug_arch vcpu_debug_state; - struct kvm_guest_debug_arch external_debug_state; - struct user_fpsimd_state *host_fpsimd_state; - struct task_struct *parent_task; - struct { - struct kvm_guest_debug_arch regs; - u64 pmscr_el1; - u64 trfcr_el1; - } host_debug_state; - struct vgic_cpu___2 vgic_cpu; - struct arch_timer_cpu___2 timer_cpu; - struct kvm_pmu pmu; - struct { - u32 mdscr_el1; - bool pstate_ss; - } guest_debug_preserved; - struct kvm_mp_state mp_state; - spinlock_t mp_state_lock; - struct kvm_mmu_memory_cache mmu_page_cache; - int target; - unsigned long features[1]; - u64 vsesr_el2; - struct vcpu_reset_state reset_state; - struct { - u64 last_steal; - gpa_t base; - } steal; - u32 *ccsidr; +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 kvm_vcpu___2 { - struct kvm___2 *kvm; - struct preempt_notifier preempt_notifier; - 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]; - struct { - bool in_spin_loop; - bool dy_eligible; - } spin_loop; - bool preempted; - bool ready; - long: 64; - struct kvm_vcpu_arch___2 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; - long: 64; +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 kvm_pgtable___2; +struct trace_event_data_offsets_net_dev_start_xmit { + u32 name; +}; -struct kvm_arch___2; +struct trace_event_data_offsets_net_dev_xmit { + u32 name; +}; -struct kvm_s2_mmu___2 { - struct kvm_vmid vmid; - phys_addr_t pgd_phys; - struct kvm_pgtable___2 *pgt; - int __attribute__((btf_type_tag("percpu"))) *last_vcpu_ran; - struct kvm_mmu_memory_cache split_page_cache; - uint64_t split_page_chunk_size; - struct kvm_arch___2 *arch; +struct trace_event_data_offsets_net_dev_xmit_timeout { + u32 name; + u32 driver; }; -struct vgic_dist___2 { - bool in_kernel; - bool ready; - bool initialized; - u32 vgic_model; - u32 implementation_rev; - bool v2_groups_user_writable; - bool msis_require_devid; - int nr_spis; - gpa_t vgic_dist_base; - union { - gpa_t vgic_cpu_base; - struct list_head rd_regions; - }; - bool enabled; - bool nassgireq; - struct vgic_irq___2 *spis; - struct vgic_io_device___2 dist_iodev; - bool has_its; - bool table_write_in_progress; - u64 propbaser; - raw_spinlock_t lpi_list_lock; - struct list_head lpi_list_head; - int lpi_list_count; - struct list_head lpi_translation_cache; - struct vgic_state_iter *iter; - struct its_vm its_vm; +struct trace_event_data_offsets_net_dev_template { + u32 name; }; -struct kvm_arch___2 { - struct kvm_s2_mmu___2 mmu; - u64 vtcr; - struct vgic_dist___2 vgic; - struct arch_timer_vm_data timer_data; - u32 psci_version; - struct mutex config_lock; - unsigned long flags; - unsigned long vcpu_features[1]; - unsigned long *pmu_filter; - struct arm_pmu *arm_pmu; - cpumask_var_t supported_cpus; - struct kvm_smccc_features smccc_feat; - struct maple_tree smccc_filter; - u64 id_regs[56]; - struct kvm_protected_vm pkvm; +struct trace_event_data_offsets_net_dev_rx_verbose_template { + u32 name; }; -struct kvm_io_bus___2; +struct trace_event_data_offsets_napi_poll { + u32 dev_name; +}; -struct kvm_stat_data___2; +struct trace_event_data_offsets_qdisc_reset { + u32 dev; + u32 kind; +}; -struct kvm___2 { - 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___2 __attribute__((btf_type_tag("rcu"))) *buses[4]; - struct { - spinlock_t lock; - struct list_head items; - struct list_head resampler_list; - struct mutex resampler_lock; - } irqfds; - struct list_head ioeventfds; - struct kvm_vm_stat stat; - struct kvm_arch___2 arch; - refcount_t users_count; - struct kvm_coalesced_mmio_ring *coalesced_mmio_ring; - spinlock_t ring_lock; - struct list_head coalesced_zones; - struct mutex irq_lock; - struct kvm_irq_routing_table __attribute__((btf_type_tag("rcu"))) *irq_routing; - struct hlist_head irq_ack_notifier_list; - 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___2 **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 trace_event_data_offsets_qdisc_destroy { + u32 dev; + u32 kind; }; -struct kvm_io_range___2 { - gpa_t addr; - int len; - struct kvm_io_device___2 *dev; +struct trace_event_data_offsets_qdisc_create { + u32 dev; + u32 kind; }; -struct kvm_io_bus___2 { - int dev_count; - int ioeventfd_count; - struct kvm_io_range___2 range[0]; +struct trace_event_data_offsets_br_fdb_add { + u32 dev; }; -struct kvm_io_device_ops___2 { - int (*read)(struct kvm_vcpu___2 *, struct kvm_io_device___2 *, gpa_t, int, void *); - int (*write)(struct kvm_vcpu___2 *, struct kvm_io_device___2 *, gpa_t, int, const void *); - void (*destructor)(struct kvm_io_device___2 *); +struct trace_event_data_offsets_br_fdb_external_learn_add { + u32 br_dev; + u32 dev; }; -typedef kvm_pte_t __attribute__((btf_type_tag("rcu"))) *kvm_pteref_t___2; +struct trace_event_data_offsets_fdb_delete { + u32 br_dev; + u32 dev; +}; -struct kvm_pgtable___2 { - u32 ia_bits; - u32 start_level; - kvm_pteref_t___2 pgd; - struct kvm_pgtable_mm_ops *mm_ops; - struct kvm_s2_mmu___2 *mmu; - enum kvm_pgtable_stage2_flags flags; - kvm_pgtable_force_pte_cb_t force_pte_cb; +struct trace_event_data_offsets_br_fdb_update { + u32 br_dev; + u32 dev; }; -struct kvm_device___2; +struct trace_event_data_offsets_br_mdb_full { + u32 dev; +}; -struct vgic_its___2 { - gpa_t vgic_its_base; - bool enabled; - struct vgic_io_device___2 iodev; - struct kvm_device___2 *dev; - u64 baser_device_table; - u64 baser_coll_table; - struct mutex cmd_lock; - u64 cbaser; - u32 creadr; - u32 cwriter; - u32 abi_rev; - struct mutex its_lock; - struct list_head device_list; - struct list_head collection_list; +struct trace_event_data_offsets_neigh_create { + u32 dev; }; -struct kvm_device_ops___2; +struct trace_event_data_offsets_neigh_update { + u32 dev; +}; -struct kvm_device___2 { - const struct kvm_device_ops___2 *ops; - struct kvm___2 *kvm; - void *private; - struct list_head vm_node; +struct trace_event_data_offsets_neigh__update { + u32 dev; }; -struct kvm_device_ops___2 { - const char *name; - int (*create)(struct kvm_device___2 *, u32); - void (*init)(struct kvm_device___2 *); - void (*destroy)(struct kvm_device___2 *); - void (*release)(struct kvm_device___2 *); - int (*set_attr)(struct kvm_device___2 *, struct kvm_device_attr *); - int (*get_attr)(struct kvm_device___2 *, struct kvm_device_attr *); - int (*has_attr)(struct kvm_device___2 *, struct kvm_device_attr *); - long (*ioctl)(struct kvm_device___2 *, unsigned int, unsigned long); - int (*mmap)(struct kvm_device___2 *, struct vm_area_struct *); +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 sockaddr_in6 { + unsigned short sin6_family; + __be16 sin6_port; + __be32 sin6_flowinfo; + struct in6_addr sin6_addr; + __u32 sin6_scope_id; }; -struct kvm_stat_data___2 { - struct kvm___2 *kvm; - const struct _kvm_stats_desc *desc; - enum kvm_stat_kind kind; +struct sockaddr_in { + __kernel_sa_family_t sin_family; + __be16 sin_port; + struct in_addr sin_addr; + unsigned char __pad[8]; }; -enum vcpu_sysreg { - __INVALID_SYSREG__ = 0, - MPIDR_EL1 = 1, - CLIDR_EL1 = 2, - CSSELR_EL1 = 3, - SCTLR_EL1 = 4, - ACTLR_EL1 = 5, - CPACR_EL1 = 6, - ZCR_EL1 = 7, - TTBR0_EL1 = 8, - TTBR1_EL1 = 9, - TCR_EL1 = 10, - TCR2_EL1 = 11, - ESR_EL1 = 12, - AFSR0_EL1 = 13, - AFSR1_EL1 = 14, - FAR_EL1 = 15, - MAIR_EL1 = 16, - VBAR_EL1 = 17, - CONTEXTIDR_EL1 = 18, - TPIDR_EL0 = 19, - TPIDRRO_EL0 = 20, - TPIDR_EL1 = 21, - AMAIR_EL1 = 22, - CNTKCTL_EL1 = 23, - PAR_EL1 = 24, - MDSCR_EL1 = 25, - MDCCINT_EL1 = 26, - OSLSR_EL1 = 27, - DISR_EL1 = 28, - PMCR_EL0 = 29, - PMSELR_EL0 = 30, - PMEVCNTR0_EL0 = 31, - PMEVCNTR30_EL0 = 61, - PMCCNTR_EL0 = 62, - PMEVTYPER0_EL0 = 63, - PMEVTYPER30_EL0 = 93, - PMCCFILTR_EL0 = 94, - PMCNTENSET_EL0 = 95, - PMINTENSET_EL1 = 96, - PMOVSSET_EL0 = 97, - PMUSERENR_EL0 = 98, - APIAKEYLO_EL1 = 99, - APIAKEYHI_EL1 = 100, - APIBKEYLO_EL1 = 101, - APIBKEYHI_EL1 = 102, - APDAKEYLO_EL1 = 103, - APDAKEYHI_EL1 = 104, - APDBKEYLO_EL1 = 105, - APDBKEYHI_EL1 = 106, - APGAKEYLO_EL1 = 107, - APGAKEYHI_EL1 = 108, - ELR_EL1 = 109, - SP_EL1 = 110, - SPSR_EL1 = 111, - CNTVOFF_EL2 = 112, - CNTV_CVAL_EL0 = 113, - CNTV_CTL_EL0 = 114, - CNTP_CVAL_EL0 = 115, - CNTP_CTL_EL0 = 116, - RGSR_EL1 = 117, - GCR_EL1 = 118, - TFSR_EL1 = 119, - TFSRE0_EL1 = 120, - PIR_EL1 = 121, - PIRE0_EL1 = 122, - DACR32_EL2 = 123, - IFSR32_EL2 = 124, - FPEXC32_EL2 = 125, - DBGVCR32_EL2 = 126, - VPIDR_EL2 = 127, - VMPIDR_EL2 = 128, - SCTLR_EL2 = 129, - ACTLR_EL2 = 130, - HCR_EL2 = 131, - MDCR_EL2 = 132, - CPTR_EL2 = 133, - HSTR_EL2 = 134, - HACR_EL2 = 135, - TTBR0_EL2 = 136, - TTBR1_EL2 = 137, - TCR_EL2 = 138, - VTTBR_EL2 = 139, - VTCR_EL2 = 140, - SPSR_EL2 = 141, - ELR_EL2 = 142, - AFSR0_EL2 = 143, - AFSR1_EL2 = 144, - ESR_EL2 = 145, - FAR_EL2 = 146, - HPFAR_EL2 = 147, - MAIR_EL2 = 148, - AMAIR_EL2 = 149, - VBAR_EL2 = 150, - RVBAR_EL2 = 151, - CONTEXTIDR_EL2 = 152, - TPIDR_EL2 = 153, - CNTHCTL_EL2 = 154, - SP_EL2 = 155, - CNTHP_CTL_EL2 = 156, - CNTHP_CVAL_EL2 = 157, - CNTHV_CTL_EL2 = 158, - CNTHV_CVAL_EL2 = 159, - NR_SYS_REGS = 160, +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 {}; + +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 *, const struct genl_info *); + int (*reply_size)(const struct ethnl_req_info *, const struct ethnl_reply_data *); + int (*fill_reply)(struct sk_buff *, const struct ethnl_req_info *, const struct ethnl_reply_data *); + void (*cleanup_data)(struct ethnl_reply_data *); + int (*set_validate)(struct ethnl_req_info *, struct genl_info *); + int (*set)(struct ethnl_req_info *, struct genl_info *); }; -enum kvm_device_type { - KVM_DEV_TYPE_FSL_MPIC_20 = 1, - KVM_DEV_TYPE_FSL_MPIC_42 = 2, - KVM_DEV_TYPE_XICS = 3, - KVM_DEV_TYPE_VFIO = 4, - KVM_DEV_TYPE_ARM_VGIC_V2 = 5, - KVM_DEV_TYPE_FLIC = 6, - KVM_DEV_TYPE_ARM_VGIC_V3 = 7, - KVM_DEV_TYPE_ARM_VGIC_ITS = 8, - KVM_DEV_TYPE_XIVE = 9, - KVM_DEV_TYPE_ARM_PV_TIME = 10, - KVM_DEV_TYPE_RISCV_AIA = 11, - KVM_DEV_TYPE_MAX = 12, +struct ethnl_req_info { + struct net_device *dev; + netdevice_tracker dev_tracker; + u32 flags; }; -struct vgic_reg_attr { - struct kvm_vcpu___2 *vcpu; - gpa_t addr; +struct ethnl_reply_data { + struct net_device *dev; }; -struct kvm_arm_device_addr { - __u64 id; - __u64 addr; +struct genl_family; + +struct genlmsghdr; + +struct genl_info { + u32 snd_seq; + u32 snd_portid; + const struct genl_family *family; + const struct nlmsghdr *nlhdr; + struct genlmsghdr *genlhdr; + struct nlattr **attrs; + possible_net_t _net; + void *user_ptr[2]; + struct netlink_ext_ack *extack; }; -struct hash_alg_common { - unsigned int digestsize; - unsigned int statesize; - struct crypto_alg base; +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 shash_alg { - int (*init)(struct shash_desc *); - int (*update)(struct shash_desc *, const u8 *, unsigned int); - int (*final)(struct shash_desc *, u8 *); - int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); - int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); - int (*export)(struct shash_desc *, void *); - int (*import)(struct shash_desc *, const void *); - int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); - int (*init_tfm)(struct crypto_shash *); - void (*exit_tfm)(struct crypto_shash *); - int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *); - unsigned int descsize; +struct genl_split_ops { union { struct { - unsigned int digestsize; - unsigned int statesize; - struct crypto_alg base; + 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 *); }; - struct hash_alg_common halg; }; + const struct nla_policy *policy; + unsigned int maxattr; + u8 cmd; + u8 internal_flags; + u8 flags; + u8 validate; }; -struct sha256_state { - u32 state[8]; - u64 count; - u8 buf[64]; +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 sha256_ce_state { - struct sha256_state sst; - u32 finalize; +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; }; -typedef void sha256_block_fn(struct sha256_state *, const u8 *, int); - -enum pm_qos_req_action { - PM_QOS_ADD_REQ = 0, - PM_QOS_UPDATE_REQ = 1, - PM_QOS_REMOVE_REQ = 2, +struct genl_multicast_group { + char name[16]; + u8 flags; + u8 cap_sys_admin: 1; }; -struct rcu_exp_work { - unsigned long rew_s; - struct work_struct rew_work; +struct genlmsghdr { + __u8 cmd; + __u8 version; + __u16 reserved; }; -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: 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; +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 rt_waiter_node { - struct rb_node entry; - int prio; - u64 deadline; +struct eeprom_req_info { + struct ethnl_req_info base; + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; }; -struct rt_mutex_waiter { - struct rt_waiter_node tree; - struct rt_waiter_node pi_tree; - struct task_struct *task; - struct rt_mutex_base *lock; - unsigned int wake_state; - struct ww_acquire_ctx *ww_ctx; +struct eeprom_reply_data { + struct ethnl_reply_data base; + u32 length; + u8 *data; }; -typedef unsigned long ulong; - -union rcu_noqs { - struct { - u8 norm; - u8 exp; - } b; - u16 s; +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 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; +enum { + INET_FLAGS_PKTINFO = 0, + INET_FLAGS_TTL = 1, + INET_FLAGS_TOS = 2, + INET_FLAGS_RECVOPTS = 3, + INET_FLAGS_RETOPTS = 4, + INET_FLAGS_PASSSEC = 5, + INET_FLAGS_ORIGDSTADDR = 6, + INET_FLAGS_CHECKSUM = 7, + INET_FLAGS_RECVFRAGSIZE = 8, + INET_FLAGS_RECVERR = 9, + INET_FLAGS_RECVERR_RFC4884 = 10, + INET_FLAGS_FREEBIND = 11, + INET_FLAGS_HDRINCL = 12, + INET_FLAGS_MC_LOOP = 13, + INET_FLAGS_MC_ALL = 14, + INET_FLAGS_TRANSPARENT = 15, + INET_FLAGS_IS_ICSK = 16, + INET_FLAGS_NODEFRAG = 17, + INET_FLAGS_BIND_ADDRESS_NO_PORT = 18, + INET_FLAGS_DEFER_CONNECT = 19, + INET_FLAGS_MC6_LOOP = 20, + INET_FLAGS_RECVERR6_RFC4884 = 21, + INET_FLAGS_MC6_ALL = 22, + INET_FLAGS_AUTOFLOWLABEL_SET = 23, + INET_FLAGS_AUTOFLOWLABEL = 24, + INET_FLAGS_DONTFRAG = 25, + INET_FLAGS_RECVERR6 = 26, + INET_FLAGS_REPFLOW = 27, + INET_FLAGS_RTALERT_ISOLATE = 28, + INET_FLAGS_SNDFLOW = 29, }; -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; +enum { + LINUX_MIB_NUM = 0, + LINUX_MIB_SYNCOOKIESSENT = 1, + LINUX_MIB_SYNCOOKIESRECV = 2, + LINUX_MIB_SYNCOOKIESFAILED = 3, + LINUX_MIB_EMBRYONICRSTS = 4, + LINUX_MIB_PRUNECALLED = 5, + LINUX_MIB_RCVPRUNED = 6, + LINUX_MIB_OFOPRUNED = 7, + LINUX_MIB_OUTOFWINDOWICMPS = 8, + LINUX_MIB_LOCKDROPPEDICMPS = 9, + LINUX_MIB_ARPFILTER = 10, + LINUX_MIB_TIMEWAITED = 11, + LINUX_MIB_TIMEWAITRECYCLED = 12, + LINUX_MIB_TIMEWAITKILLED = 13, + LINUX_MIB_PAWSACTIVEREJECTED = 14, + LINUX_MIB_PAWSESTABREJECTED = 15, + LINUX_MIB_DELAYEDACKS = 16, + LINUX_MIB_DELAYEDACKLOCKED = 17, + LINUX_MIB_DELAYEDACKLOST = 18, + LINUX_MIB_LISTENOVERFLOWS = 19, + LINUX_MIB_LISTENDROPS = 20, + LINUX_MIB_TCPHPHITS = 21, + LINUX_MIB_TCPPUREACKS = 22, + LINUX_MIB_TCPHPACKS = 23, + LINUX_MIB_TCPRENORECOVERY = 24, + LINUX_MIB_TCPSACKRECOVERY = 25, + LINUX_MIB_TCPSACKRENEGING = 26, + LINUX_MIB_TCPSACKREORDER = 27, + LINUX_MIB_TCPRENOREORDER = 28, + LINUX_MIB_TCPTSREORDER = 29, + LINUX_MIB_TCPFULLUNDO = 30, + LINUX_MIB_TCPPARTIALUNDO = 31, + LINUX_MIB_TCPDSACKUNDO = 32, + LINUX_MIB_TCPLOSSUNDO = 33, + LINUX_MIB_TCPLOSTRETRANSMIT = 34, + LINUX_MIB_TCPRENOFAILURES = 35, + LINUX_MIB_TCPSACKFAILURES = 36, + LINUX_MIB_TCPLOSSFAILURES = 37, + LINUX_MIB_TCPFASTRETRANS = 38, + LINUX_MIB_TCPSLOWSTARTRETRANS = 39, + LINUX_MIB_TCPTIMEOUTS = 40, + LINUX_MIB_TCPLOSSPROBES = 41, + LINUX_MIB_TCPLOSSPROBERECOVERY = 42, + LINUX_MIB_TCPRENORECOVERYFAIL = 43, + LINUX_MIB_TCPSACKRECOVERYFAIL = 44, + LINUX_MIB_TCPRCVCOLLAPSED = 45, + LINUX_MIB_TCPDSACKOLDSENT = 46, + LINUX_MIB_TCPDSACKOFOSENT = 47, + LINUX_MIB_TCPDSACKRECV = 48, + LINUX_MIB_TCPDSACKOFORECV = 49, + LINUX_MIB_TCPABORTONDATA = 50, + LINUX_MIB_TCPABORTONCLOSE = 51, + LINUX_MIB_TCPABORTONMEMORY = 52, + LINUX_MIB_TCPABORTONTIMEOUT = 53, + LINUX_MIB_TCPABORTONLINGER = 54, + LINUX_MIB_TCPABORTFAILED = 55, + LINUX_MIB_TCPMEMORYPRESSURES = 56, + LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 57, + LINUX_MIB_TCPSACKDISCARD = 58, + LINUX_MIB_TCPDSACKIGNOREDOLD = 59, + LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 60, + LINUX_MIB_TCPSPURIOUSRTOS = 61, + LINUX_MIB_TCPMD5NOTFOUND = 62, + LINUX_MIB_TCPMD5UNEXPECTED = 63, + LINUX_MIB_TCPMD5FAILURE = 64, + LINUX_MIB_SACKSHIFTED = 65, + LINUX_MIB_SACKMERGED = 66, + LINUX_MIB_SACKSHIFTFALLBACK = 67, + LINUX_MIB_TCPBACKLOGDROP = 68, + LINUX_MIB_PFMEMALLOCDROP = 69, + LINUX_MIB_TCPMINTTLDROP = 70, + LINUX_MIB_TCPDEFERACCEPTDROP = 71, + LINUX_MIB_IPRPFILTER = 72, + LINUX_MIB_TCPTIMEWAITOVERFLOW = 73, + LINUX_MIB_TCPREQQFULLDOCOOKIES = 74, + LINUX_MIB_TCPREQQFULLDROP = 75, + LINUX_MIB_TCPRETRANSFAIL = 76, + LINUX_MIB_TCPRCVCOALESCE = 77, + LINUX_MIB_TCPBACKLOGCOALESCE = 78, + LINUX_MIB_TCPOFOQUEUE = 79, + LINUX_MIB_TCPOFODROP = 80, + LINUX_MIB_TCPOFOMERGE = 81, + LINUX_MIB_TCPCHALLENGEACK = 82, + LINUX_MIB_TCPSYNCHALLENGE = 83, + LINUX_MIB_TCPFASTOPENACTIVE = 84, + LINUX_MIB_TCPFASTOPENACTIVEFAIL = 85, + LINUX_MIB_TCPFASTOPENPASSIVE = 86, + LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 87, + LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 88, + LINUX_MIB_TCPFASTOPENCOOKIEREQD = 89, + LINUX_MIB_TCPFASTOPENBLACKHOLE = 90, + LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 91, + LINUX_MIB_BUSYPOLLRXPACKETS = 92, + LINUX_MIB_TCPAUTOCORKING = 93, + LINUX_MIB_TCPFROMZEROWINDOWADV = 94, + LINUX_MIB_TCPTOZEROWINDOWADV = 95, + LINUX_MIB_TCPWANTZEROWINDOWADV = 96, + LINUX_MIB_TCPSYNRETRANS = 97, + LINUX_MIB_TCPORIGDATASENT = 98, + LINUX_MIB_TCPHYSTARTTRAINDETECT = 99, + LINUX_MIB_TCPHYSTARTTRAINCWND = 100, + LINUX_MIB_TCPHYSTARTDELAYDETECT = 101, + LINUX_MIB_TCPHYSTARTDELAYCWND = 102, + LINUX_MIB_TCPACKSKIPPEDSYNRECV = 103, + LINUX_MIB_TCPACKSKIPPEDPAWS = 104, + LINUX_MIB_TCPACKSKIPPEDSEQ = 105, + LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 106, + LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 107, + LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 108, + LINUX_MIB_TCPWINPROBE = 109, + LINUX_MIB_TCPKEEPALIVE = 110, + LINUX_MIB_TCPMTUPFAIL = 111, + LINUX_MIB_TCPMTUPSUCCESS = 112, + LINUX_MIB_TCPDELIVERED = 113, + LINUX_MIB_TCPDELIVEREDCE = 114, + LINUX_MIB_TCPACKCOMPRESSED = 115, + LINUX_MIB_TCPZEROWINDOWDROP = 116, + LINUX_MIB_TCPRCVQDROP = 117, + LINUX_MIB_TCPWQUEUETOOBIG = 118, + LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 119, + LINUX_MIB_TCPTIMEOUTREHASH = 120, + LINUX_MIB_TCPDUPLICATEDATAREHASH = 121, + LINUX_MIB_TCPDSACKRECVSEGS = 122, + LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 123, + LINUX_MIB_TCPMIGRATEREQSUCCESS = 124, + LINUX_MIB_TCPMIGRATEREQFAILURE = 125, + LINUX_MIB_TCPPLBREHASH = 126, + LINUX_MIB_TCPAOREQUIRED = 127, + LINUX_MIB_TCPAOBAD = 128, + LINUX_MIB_TCPAOKEYNOTFOUND = 129, + LINUX_MIB_TCPAOGOOD = 130, + LINUX_MIB_TCPAODROPPEDICMPS = 131, + __LINUX_MIB_MAX = 132, }; -struct rcu_state { - struct rcu_node node[17]; - 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: 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 inet_timewait_sock { + struct sock_common __tw_common; + __u32 tw_mark; + volatile unsigned char tw_substate; + unsigned char tw_rcv_wscale; + __be16 tw_sport; + unsigned int tw_transparent: 1; + unsigned int tw_flowlabel: 20; + unsigned int tw_usec_ts: 1; + unsigned int tw_pad: 2; + unsigned int tw_tos: 8; + u32 tw_txhash; + u32 tw_priority; + struct timer_list tw_timer; + struct inet_bind_bucket *tw_tb; + struct inet_bind2_bucket *tw_tb2; + struct hlist_node tw_bind2_node; }; -struct rcu_gp_oldstate { - unsigned long rgos_norm; - unsigned long rgos_exp; +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 kfree_rcu_cpu; +struct nh_info; -struct kfree_rcu_cpu_work { - struct rcu_work rcu_work; - struct callback_head *head_free; - struct rcu_gp_oldstate head_free_gp_snap; - struct list_head bulk_head_free[2]; - struct kfree_rcu_cpu *krcp; -}; +struct nh_group; -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 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 sysrq_key_op { - void (* const handler)(int); - const char * const help_msg; - const char * const action_msg; - const int enable_mask; -}; +struct fib_info; -enum ctx_state { - CONTEXT_DISABLED = -1, - CONTEXT_KERNEL = 0, - CONTEXT_IDLE = 1, - CONTEXT_USER = 2, - CONTEXT_GUEST = 3, - CONTEXT_MAX = 4, +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; }; -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 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; + }; }; -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 fib_info { + struct hlist_node fib_hash; + struct hlist_node fib_lhash; + struct list_head nh_list; + struct net *fib_net; + refcount_t fib_treeref; + refcount_t fib_clntref; + unsigned int fib_flags; + unsigned char fib_dead; + unsigned char fib_protocol; + unsigned char fib_scope; + unsigned char fib_type; + __be32 fib_prefsrc; + u32 fib_tb_id; + u32 fib_priority; + struct dst_metrics *fib_metrics; + int fib_nhs; + bool fib_nh_is_v6; + bool nh_updated; + bool pfsrc_removed; + struct nexthop *nh; + struct callback_head rcu; + struct fib_nh fib_nh[0]; }; -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 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; }; -enum ftrace_dump_mode { - DUMP_NONE = 0, - DUMP_ALL = 1, - DUMP_ORIG = 2, -}; +struct nh_res_table; -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, +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 context_tracking { - atomic_t state; - long dynticks_nesting; - long dynticks_nmi_nesting; +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 kernel_stat { - unsigned long irqs_sum; - unsigned int softirqs[10]; +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 kvfree_rcu_bulk_data { - struct list_head list; - struct rcu_gp_oldstate gp_snap; - unsigned long nr_records; - void *records[0]; +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 kernel_cpustat { - u64 cpustat[10]; +struct udp_tunnel_info { + unsigned short type; + sa_family_t sa_family; + __be16 port; + u8 hw_priv; }; -struct rcu_stall_chk_rdr { - int nesting; - union rcu_special rs; - bool on_blkd_list; +struct udp_tunnel_nic_shared { + struct udp_tunnel_nic *udp_tunnel_nic_info; + struct list_head devices; }; -typedef int (*task_call_f)(struct task_struct *, void *); +struct udp_hslot; -typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t); +struct udp_table { + struct udp_hslot *hash; + struct udp_hslot *hash2; + unsigned int mask; + unsigned int log; +}; -struct rcu_synchronize { - struct callback_head head; - struct completion completion; +struct udp_hslot { + struct hlist_head head; + int count; + spinlock_t lock; }; -struct sched_param { - int sched_priority; +struct static_key_true { + struct static_key key; }; -struct swait_queue { - struct task_struct *task; - struct list_head task_list; +struct udp_seq_afinfo { + sa_family_t family; + struct udp_table *udp_table; }; -struct ftrace_graph_ret; +union bpf_iter_link_info; -typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); +typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *, union bpf_iter_link_info *, struct bpf_iter_aux_info *); -struct ftrace_graph_ret { - unsigned long func; - unsigned long retval; - int depth; - unsigned int overrun; - unsigned long long calltime; - unsigned long long rettime; -}; +typedef void (*bpf_iter_detach_target_t)(struct bpf_iter_aux_info *); -struct ftrace_graph_ent; +typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct seq_file *); -typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); +struct bpf_link_info; -struct ftrace_graph_ent { - unsigned long func; - int depth; -} __attribute__((packed)); +typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *); -struct fgraph_ret_regs { - unsigned long regs[8]; - unsigned long fp; - unsigned long __unused; +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, }; -struct fgraph_ops { - trace_func_graph_ent_t entryfunc; - trace_func_graph_ret_t retfunc; +struct bpf_func_proto; + +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; }; -struct bpf_iter__bpf_prog { - union { - struct bpf_iter_meta *meta; - }; +union bpf_iter_link_info { + struct { + __u32 map_fd; + } map; + struct { + enum bpf_cgroup_iter_order order; + __u32 cgroup_fd; + __u64 cgroup_id; + } cgroup; + struct { + __u32 tid; + __u32 pid; + __u32 pid_fd; + } task; +}; + +struct bpf_link_info { + __u32 type; + __u32 id; + __u32 prog_id; union { - struct bpf_prog *prog; + struct { + __u64 tp_name; + __u32 tp_name_len; + } raw_tracepoint; + struct { + __u32 attach_type; + __u32 target_obj_id; + __u32 target_btf_id; + } tracing; + struct { + __u64 cgroup_id; + __u32 attach_type; + } cgroup; + struct { + __u64 target_name; + __u32 target_name_len; + union { + struct { + __u32 map_id; + } map; + }; + union { + struct { + __u64 cgroup_id; + __u32 order; + } cgroup; + struct { + __u32 tid; + __u32 pid; + } task; + }; + } iter; + struct { + __u32 netns_ino; + __u32 attach_type; + } netns; + struct { + __u32 ifindex; + } xdp; + struct { + __u32 map_id; + } struct_ops; + struct { + __u32 pf; + __u32 hooknum; + __s32 priority; + __u32 flags; + } netfilter; + struct { + __u64 addrs; + __u32 count; + __u32 flags; + __u64 missed; + } kprobe_multi; + struct { + __u32 type; + union { + struct { + __u64 file_name; + __u32 name_len; + __u32 offset; + } uprobe; + struct { + __u64 func_name; + __u32 name_len; + __u32 offset; + __u64 addr; + __u64 missed; + } kprobe; + struct { + __u64 tp_name; + __u32 name_len; + } tracepoint; + struct { + __u64 config; + __u32 type; + } event; + }; + } perf_event; + struct { + __u32 ifindex; + __u32 attach_type; + } tcx; + struct { + __u32 ifindex; + __u32 attach_type; + } netkit; }; }; -struct bpf_iter_seq_prog_info { - u32 prog_id; +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, }; -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]; +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 perf_event_mmap_page { - __u32 version; - __u32 compat_version; - __u32 lock; - __u32 index; - __s64 offset; - __u64 time_enabled; - __u64 time_running; +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 { - __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; + 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]; }; - __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_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]; + union { + struct { + u32 *arg1_btf_id; + u32 *arg2_btf_id; + u32 *arg3_btf_id; + u32 *arg4_btf_id; + u32 *arg5_btf_id; + }; + u32 *arg_btf_id[5]; + struct { + size_t arg1_size; + size_t arg2_size; + size_t arg3_size; + size_t arg4_size; + size_t arg5_size; + }; + size_t arg_size[5]; + }; + int *ret_btf_id; + bool (*allowed)(const struct bpf_prog *); }; -struct swevent_hlist; - -struct swevent_htable { - struct swevent_hlist *swevent_hlist; - struct mutex hlist_mutex; - int hlist_refcount; - int recursion[4]; +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, }; -struct swevent_hlist { - struct hlist_head heads[256]; - struct callback_head callback_head; +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, }; -struct min_heap_callbacks { - int elem_size; - bool (*less)(const void *, const void *); - void (*swp)(void *, void *); +enum { + UDP_FLAGS_CORK = 0, + UDP_FLAGS_NO_CHECK6_TX = 1, + UDP_FLAGS_NO_CHECK6_RX = 2, + UDP_FLAGS_GRO_ENABLED = 3, + UDP_FLAGS_ACCEPT_FRAGLIST = 4, + UDP_FLAGS_ACCEPT_L4 = 5, + UDP_FLAGS_ENCAP_ENABLED = 6, + UDP_FLAGS_UDPLITE_SEND_CC = 7, + UDP_FLAGS_UDPLITE_RECV_CC = 8, }; -struct pmu_event_list { - raw_spinlock_t lock; - struct list_head list; +enum cgroup_bpf_attach_type { + CGROUP_BPF_ATTACH_TYPE_INVALID = -1, + CGROUP_INET_INGRESS = 0, + CGROUP_INET_EGRESS = 1, + CGROUP_INET_SOCK_CREATE = 2, + CGROUP_SOCK_OPS = 3, + CGROUP_DEVICE = 4, + CGROUP_INET4_BIND = 5, + CGROUP_INET6_BIND = 6, + CGROUP_INET4_CONNECT = 7, + CGROUP_INET6_CONNECT = 8, + CGROUP_UNIX_CONNECT = 9, + CGROUP_INET4_POST_BIND = 10, + CGROUP_INET6_POST_BIND = 11, + CGROUP_UDP4_SENDMSG = 12, + CGROUP_UDP6_SENDMSG = 13, + CGROUP_UNIX_SENDMSG = 14, + CGROUP_SYSCTL = 15, + CGROUP_UDP4_RECVMSG = 16, + CGROUP_UDP6_RECVMSG = 17, + CGROUP_UNIX_RECVMSG = 18, + CGROUP_GETSOCKOPT = 19, + CGROUP_SETSOCKOPT = 20, + CGROUP_INET4_GETPEERNAME = 21, + CGROUP_INET6_GETPEERNAME = 22, + CGROUP_UNIX_GETPEERNAME = 23, + CGROUP_INET4_GETSOCKNAME = 24, + CGROUP_INET6_GETSOCKNAME = 25, + CGROUP_UNIX_GETSOCKNAME = 26, + CGROUP_INET_SOCK_RELEASE = 27, + CGROUP_LSM_START = 28, + CGROUP_LSM_END = 37, + MAX_CGROUP_BPF_ATTACH_TYPE = 38, }; -enum perf_addr_filter_action_t { - PERF_ADDR_FILTER_ACTION_STOP = 0, - PERF_ADDR_FILTER_ACTION_START = 1, - PERF_ADDR_FILTER_ACTION_FILTER = 2, +enum rt_scope_t { + RT_SCOPE_UNIVERSE = 0, + RT_SCOPE_SITE = 200, + RT_SCOPE_LINK = 253, + RT_SCOPE_HOST = 254, + RT_SCOPE_NOWHERE = 255, }; -struct match_token { - int token; - const char *pattern; +enum { + IPSTATS_MIB_NUM = 0, + IPSTATS_MIB_INPKTS = 1, + IPSTATS_MIB_INOCTETS = 2, + IPSTATS_MIB_INDELIVERS = 3, + IPSTATS_MIB_OUTFORWDATAGRAMS = 4, + IPSTATS_MIB_OUTREQUESTS = 5, + IPSTATS_MIB_OUTOCTETS = 6, + IPSTATS_MIB_INHDRERRORS = 7, + IPSTATS_MIB_INTOOBIGERRORS = 8, + IPSTATS_MIB_INNOROUTES = 9, + IPSTATS_MIB_INADDRERRORS = 10, + IPSTATS_MIB_INUNKNOWNPROTOS = 11, + IPSTATS_MIB_INTRUNCATEDPKTS = 12, + IPSTATS_MIB_INDISCARDS = 13, + IPSTATS_MIB_OUTDISCARDS = 14, + IPSTATS_MIB_OUTNOROUTES = 15, + IPSTATS_MIB_REASMTIMEOUT = 16, + IPSTATS_MIB_REASMREQDS = 17, + IPSTATS_MIB_REASMOKS = 18, + IPSTATS_MIB_REASMFAILS = 19, + IPSTATS_MIB_FRAGOKS = 20, + IPSTATS_MIB_FRAGFAILS = 21, + IPSTATS_MIB_FRAGCREATES = 22, + IPSTATS_MIB_INMCASTPKTS = 23, + IPSTATS_MIB_OUTMCASTPKTS = 24, + IPSTATS_MIB_INBCASTPKTS = 25, + IPSTATS_MIB_OUTBCASTPKTS = 26, + IPSTATS_MIB_INMCASTOCTETS = 27, + IPSTATS_MIB_OUTMCASTOCTETS = 28, + IPSTATS_MIB_INBCASTOCTETS = 29, + IPSTATS_MIB_OUTBCASTOCTETS = 30, + IPSTATS_MIB_CSUMERRORS = 31, + IPSTATS_MIB_NOECTPKTS = 32, + IPSTATS_MIB_ECT1PKTS = 33, + IPSTATS_MIB_ECT0PKTS = 34, + IPSTATS_MIB_CEPKTS = 35, + IPSTATS_MIB_REASM_OVERLAPS = 36, + IPSTATS_MIB_OUTPKTS = 37, + __IPSTATS_MIB_MAX = 38, }; -enum event_type_t { - EVENT_FLEXIBLE = 1, - EVENT_PINNED = 2, - EVENT_TIME = 4, - EVENT_CPU = 8, - EVENT_ALL = 3, +enum { + UDP_MIB_NUM = 0, + UDP_MIB_INDATAGRAMS = 1, + UDP_MIB_NOPORTS = 2, + UDP_MIB_INERRORS = 3, + UDP_MIB_OUTDATAGRAMS = 4, + UDP_MIB_RCVBUFERRORS = 5, + UDP_MIB_SNDBUFERRORS = 6, + UDP_MIB_CSUMERRORS = 7, + UDP_MIB_IGNOREDMULTI = 8, + UDP_MIB_MEMERRORS = 9, + __UDP_MIB_MAX = 10, }; -enum cgroup_subsys_id { - cpuset_cgrp_id = 0, - cpu_cgrp_id = 1, - cpuacct_cgrp_id = 2, - io_cgrp_id = 3, - memory_cgrp_id = 4, - devices_cgrp_id = 5, - freezer_cgrp_id = 6, - perf_event_cgrp_id = 7, - hugetlb_cgrp_id = 8, - pids_cgrp_id = 9, - CGROUP_SUBSYS_COUNT = 10, +enum { + XFRM_POLICY_IN = 0, + XFRM_POLICY_OUT = 1, + XFRM_POLICY_FWD = 2, + XFRM_POLICY_MASK = 3, + XFRM_POLICY_MAX = 3, }; -enum perf_event_type { - PERF_RECORD_MMAP = 1, - PERF_RECORD_LOST = 2, - PERF_RECORD_COMM = 3, - PERF_RECORD_EXIT = 4, - PERF_RECORD_THROTTLE = 5, - PERF_RECORD_UNTHROTTLE = 6, - PERF_RECORD_FORK = 7, - PERF_RECORD_READ = 8, - PERF_RECORD_SAMPLE = 9, - PERF_RECORD_MMAP2 = 10, - PERF_RECORD_AUX = 11, - PERF_RECORD_ITRACE_START = 12, - PERF_RECORD_LOST_SAMPLES = 13, - PERF_RECORD_SWITCH = 14, - PERF_RECORD_SWITCH_CPU_WIDE = 15, - PERF_RECORD_NAMESPACES = 16, - PERF_RECORD_KSYMBOL = 17, - PERF_RECORD_BPF_EVENT = 18, - PERF_RECORD_CGROUP = 19, - PERF_RECORD_TEXT_POKE = 20, - PERF_RECORD_AUX_OUTPUT_HW_ID = 21, - PERF_RECORD_MAX = 22, +enum { + 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 xfrm_replay_mode { + XFRM_REPLAY_MODE_LEGACY = 0, + XFRM_REPLAY_MODE_BMP = 1, + XFRM_REPLAY_MODE_ESN = 2, }; 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, + 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, }; -enum perf_record_ksymbol_type { - PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0, - PERF_RECORD_KSYMBOL_TYPE_BPF = 1, - PERF_RECORD_KSYMBOL_TYPE_OOL = 2, - PERF_RECORD_KSYMBOL_TYPE_MAX = 3, +struct udp_sock { + struct inet_sock inet; + unsigned long udp_flags; + int pending; + __u8 encap_type; + __u16 len; + __u16 gso_size; + __u16 pcslen; + __u16 pcrlen; + int (*encap_rcv)(struct sock *, struct sk_buff *); + void (*encap_err_rcv)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *); + int (*encap_err_lookup)(struct sock *, struct sk_buff *); + void (*encap_destroy)(struct sock *); + struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *); + int (*gro_complete)(struct sock *, struct sk_buff *, int); + long: 64; + long: 64; + 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; }; -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, +struct ip_sf_socklist { + unsigned int sl_max; + unsigned int sl_count; + struct callback_head rcu; + __be32 sl_addr[0]; }; -enum perf_event_task_context { - perf_invalid_context = -1, - perf_hw_context = 0, - perf_sw_context = 1, - perf_nr_task_contexts = 2, +struct udphdr { + __be16 source; + __be16 dest; + __be16 len; + __sum16 check; }; -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, +struct cmsghdr { + __kernel_size_t cmsg_len; + int cmsg_level; + int cmsg_type; }; -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, +struct inet_skb_parm { + int iif; + struct ip_options opt; + u16 flags; + u16 frag_max_size; }; -enum perf_probe_config { - PERF_PROBE_CONFIG_IS_RETPROBE = 1, - PERF_UPROBE_REF_CTR_OFFSET_BITS = 32, - PERF_UPROBE_REF_CTR_OFFSET_SHIFT = 32, +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; }; -enum perf_event_ioc_flags { - PERF_IOC_FLAG_GROUP = 1, +struct udp_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + __u16 cscov; + __u8 partial_cov; }; -enum { - IF_STATE_ACTION = 0, - IF_STATE_SOURCE = 1, - IF_STATE_END = 2, +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; }; -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, +struct ip_tunnel_encap_ops { + size_t (*encap_hlen)(struct ip_tunnel_encap *); + int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *); + int (*err_handler)(struct sk_buff *, u32); }; -struct perf_pmu_events_attr { - struct device_attribute attr; - u64 id; - const char *event_str; +struct udp_dev_scratch { + u32 _tsize_state; + u16 len; + bool is_linear; + bool csum_unnecessary; }; -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 sock_skb_cb { + u32 dropcount; }; -typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *); +struct seq_net_private { + struct net *net; + netns_tracker ns_tracker; +}; -struct perf_event_header { - __u32 type; - __u16 misc; - __u16 size; +typedef u32 inet_ehashfn_t(const struct net *, const __be32, const __u16, const __be32, const __be16); + +struct sockcm_cookie { + u64 transmit_time; + u32 mark; + u32 tsflags; }; -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; +struct ipcm_cookie { + struct sockcm_cookie sockc; + __be32 addr; + int oif; + struct ip_options_rcu *opt; + __u8 protocol; + __u8 ttl; + __s16 tos; + char priority; + __u16 gso_size; }; -typedef void perf_iterate_f(struct perf_event *, void *); +struct nf_conntrack { + refcount_t use; +}; -struct stop_event_data { - struct perf_event *event; - unsigned int restart; +struct bpf_iter_meta { + union { + struct seq_file *seq; + }; + u64 session_id; + u64 seq_num; }; -typedef int (*remote_function_f)(void *); +struct bpf_iter__udp { + union { + struct bpf_iter_meta *meta; + }; + union { + struct udp_sock *udp_sk; + }; + uid_t uid; + long: 0; + int bucket; +}; -struct remote_function_call { - struct task_struct *p; - remote_function_f func; - void *info; - int ret; +struct udp_iter_state { + struct seq_net_private p; + int bucket; }; -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 bpf_udp_iter_state { + struct udp_iter_state state; + unsigned int cur_sk; + unsigned int end_sk; + unsigned int max_sk; + int offset; + struct sock **batch; + bool st_bucket_done; }; -struct perf_ns_link_info { - __u64 dev; - __u64 ino; +struct ip_options_data { + struct ip_options_rcu opt; + char data[40]; }; -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 ic_device { + struct ic_device *next; + struct net_device *dev; + unsigned short flags; + short able; + __be32 xid; }; -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 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 perf_aux_event { - struct perf_event_header header; - u64 offset; - u64 size; - u64 flags; +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 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 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 perf_aux_event___2 { - struct perf_event_header header; - u64 hw_id; +struct devlink_dev_stats { + u32 reload_stats[6]; + u32 remote_reload_stats[6]; }; -struct __group_key { - int cpu; - struct pmu *pmu; - struct cgroup *cgroup; +struct devlink_dpipe_headers; + +struct devlink_ops; + +struct devlink_rel; + +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 devlink_rel *rel; + struct xarray nested_rels; + char priv[0]; }; -typedef void (*task_work_func_t)(struct callback_head *); +struct devlink_dpipe_header; -struct perf_cgroup_event { - char *path; - int path_size; - struct { - struct perf_event_header header; - u64 id; - char path[0]; - } event_id; +struct devlink_dpipe_headers { + struct devlink_dpipe_header **headers; + unsigned int headers_count; }; -struct min_heap { - void *data; - int nr; - int size; +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; }; -struct perf_aux_event___3 { - struct perf_event_header header; - u32 pid; - u32 tid; +enum devlink_dpipe_field_mapping_type { + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0, + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 1, }; -struct perf_read_event { - struct perf_event_header header; - u32 pid; - u32 tid; +struct devlink_dpipe_field { + const char *name; + unsigned int id; + unsigned int bitwidth; + enum devlink_dpipe_field_mapping_type mapping_type; }; -typedef struct { - char *from; - char *to; -} substring_t; +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, +}; -struct remote_output { - struct perf_buffer *rb; - int err; +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, }; -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; +enum devlink_sb_threshold_type { + DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0, + DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 1, }; -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; +enum devlink_sb_pool_type { + DEVLINK_SB_POOL_TYPE_INGRESS = 0, + DEVLINK_SB_POOL_TYPE_EGRESS = 1, }; -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; +enum devlink_eswitch_encap_mode { + DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0, + DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 1, }; -struct event_function_struct { - struct perf_event *event; - event_f func; - void *data; +enum devlink_trap_action { + DEVLINK_TRAP_ACTION_DROP = 0, + DEVLINK_TRAP_ACTION_TRAP = 1, + DEVLINK_TRAP_ACTION_MIRROR = 2, }; -struct perf_read_data { - struct perf_event *event; - bool group; - int ret; +enum devlink_selftest_status { + DEVLINK_SELFTEST_STATUS_SKIP = 0, + DEVLINK_SELFTEST_STATUS_PASS = 1, + DEVLINK_SELFTEST_STATUS_FAIL = 2, }; -typedef struct user_pt_regs bpf_user_pt_regs_t; +struct devlink_sb_pool_info; -struct bpf_perf_event_data_kern { - bpf_user_pt_regs_t *regs; - struct perf_sample_data *data; - struct perf_event *event; -}; +struct devlink_info_req; -struct mount; +struct devlink_flash_update_params; -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 devlink_trap; -struct mnt_pcp; +struct devlink_trap_group; -struct mountpoint; +struct devlink_trap_policer; -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 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 (*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_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, struct devlink_port **); + 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 mnt_pcp { - int mnt_count; - int mnt_writers; +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 mountpoint { - struct hlist_node m_hash; - struct dentry *m_dentry; - struct hlist_head m_list; - int m_count; +struct devlink_flash_update_params { + const struct firmware *fw; + const char *component; + u32 overwrite_mask; }; -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 *); +enum devlink_trap_type { + DEVLINK_TRAP_TYPE_DROP = 0, + DEVLINK_TRAP_TYPE_EXCEPTION = 1, + DEVLINK_TRAP_TYPE_CONTROL = 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 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 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]; - }; - }; +struct devlink_trap_group { + const char *name; + u16 id; + bool generic; + u32 init_policer_id; }; -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, +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 file_handle { - __u32 handle_bytes; - int handle_type; - unsigned char f_handle[0]; +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; }; -enum netfs_read_from_hole { - NETFS_READ_HOLE_IGNORE = 0, - NETFS_READ_HOLE_CLEAR = 1, - NETFS_READ_HOLE_FAIL = 2, +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 netfs_io_source { - NETFS_FILL_WITH_ZEROES = 0, - NETFS_DOWNLOAD_FROM_SERVER = 1, - NETFS_READ_FROM_CACHE = 2, - NETFS_INVALID_READ = 3, -} __attribute__((mode(byte))); +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 netfs_io_origin { - NETFS_READAHEAD = 0, - NETFS_READPAGE = 1, - NETFS_READ_FOR_WRITE = 2, -} __attribute__((mode(byte))); +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, +}; -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, -} __attribute__((mode(byte))); +struct ib_mad; -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, -} __attribute__((mode(byte))); - -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, -} __attribute__((mode(byte))); - -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, -} __attribute__((mode(byte))); - -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 *); +enum rdma_link_layer { + IB_LINK_LAYER_UNSPECIFIED = 0, + IB_LINK_LAYER_INFINIBAND = 1, + IB_LINK_LAYER_ETHERNET = 2, }; -struct netfs_inode { - struct inode inode; - const struct netfs_request_ops *ops; - loff_t remote_i_size; +enum rdma_netdev_t { + RDMA_NETDEV_OPA_VNIC = 0, + RDMA_NETDEV_IPOIB = 1, }; -struct squashfs_page_actor { - union { - void **buffer; - struct page **page; - }; - void *pageaddr; - void *tmp_buffer; - void * (*squashfs_first_page)(struct squashfs_page_actor *); - void * (*squashfs_next_page)(struct squashfs_page_actor *); - void (*squashfs_finish_page)(struct squashfs_page_actor *); - struct page *last_page; - int pages; - int length; - int next_page; - int alloc_buffer; - int returned_pages; - unsigned long next_index; +enum ib_srq_attr_mask { + IB_SRQ_MAX_WR = 1, + IB_SRQ_LIMIT = 2, }; -struct squashfs_decompressor; - -struct squashfs_cache; - -struct meta_index; - -struct squashfs_decompressor_thread_ops; - -struct squashfs_sb_info { - const struct squashfs_decompressor *decompressor; - int devblksize; - int devblksize_log2; - struct squashfs_cache *block_cache; - struct squashfs_cache *fragment_cache; - struct squashfs_cache *read_page; - struct address_space *cache_mapping; - int next_meta_index; - __le64 *id_table; - __le64 *fragment_index; - __le64 *xattr_id_table; - struct mutex meta_index_mutex; - struct meta_index *meta_index; - void *stream; - __le64 *inode_lookup_table; - u64 inode_table; - u64 directory_table; - u64 xattr_table; - unsigned int block_size; - unsigned short block_log; - long long bytes_used; - unsigned int inodes; - unsigned int fragments; - unsigned int xattr_ids; - unsigned int ids; - bool panic_on_errors; - const struct squashfs_decompressor_thread_ops *thread_ops; - int max_thread_num; +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, }; -struct squashfs_decompressor { - void * (*init)(struct squashfs_sb_info *, void *); - void * (*comp_opts)(struct squashfs_sb_info *, void *, int); - void (*free)(void *); - int (*decompress)(struct squashfs_sb_info *, void *, struct bio *, int, int, struct squashfs_page_actor *); - int id; - char *name; - int alloc_buffer; - int supported; +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 squashfs_cache_entry; +struct uverbs_attr_bundle; -struct squashfs_cache { - char *name; - int entries; - int curr_blk; - int next_blk; - int num_waiters; - int unused; - int block_size; - int pages; - spinlock_t lock; - wait_queue_head_t wait_queue; - struct squashfs_cache_entry *entry; -}; +struct rdma_cm_id; -struct squashfs_cache_entry { - u64 block; - int length; - int refcount; - u64 next_index; - int pending; - int error; - int num_waiters; - wait_queue_head_t wait_queue; - struct squashfs_cache *cache; - void **data; - struct squashfs_page_actor *actor; -}; +struct iw_cm_id; -struct meta_entry { - u64 data_block; - unsigned int index_block; - unsigned short offset; - unsigned short pad; -}; +struct iw_cm_conn_param; -struct meta_index { - unsigned int inode_number; - unsigned int offset; - unsigned short entries; - unsigned short skip; - unsigned short locked; - unsigned short pad; - struct meta_entry meta_entry[127]; -}; +struct ib_qp; -struct squashfs_decompressor_thread_ops { - void * (*create)(struct squashfs_sb_info *, void *); - void (*destroy)(struct squashfs_sb_info *); - int (*decompress)(struct squashfs_sb_info *, struct bio *, int, int, struct squashfs_page_actor *); - int (*max_decompressors)(); -}; +struct ib_send_wr; -typedef void (*btf_trace_nfs_set_inode_stale)(void *, const struct inode *); +struct ib_recv_wr; -typedef void (*btf_trace_nfs_refresh_inode_enter)(void *, const struct inode *); +struct ib_cq; -typedef void (*btf_trace_nfs_refresh_inode_exit)(void *, const struct inode *, int); +struct ib_wc; -typedef void (*btf_trace_nfs_revalidate_inode_enter)(void *, const struct inode *); +struct ib_srq; -typedef void (*btf_trace_nfs_revalidate_inode_exit)(void *, const struct inode *, int); +struct ib_grh; -typedef void (*btf_trace_nfs_invalidate_mapping_enter)(void *, const struct inode *); +struct ib_device_attr; -typedef void (*btf_trace_nfs_invalidate_mapping_exit)(void *, const struct inode *, int); +struct ib_udata; -typedef void (*btf_trace_nfs_getattr_enter)(void *, const struct inode *); +struct ib_device_modify; -typedef void (*btf_trace_nfs_getattr_exit)(void *, const struct inode *, int); +struct ib_port_attr; -typedef void (*btf_trace_nfs_setattr_enter)(void *, const struct inode *); +struct ib_port_modify; -typedef void (*btf_trace_nfs_setattr_exit)(void *, const struct inode *, int); +struct ib_port_immutable; -typedef void (*btf_trace_nfs_writeback_inode_enter)(void *, const struct inode *); +struct rdma_netdev_alloc_params; -typedef void (*btf_trace_nfs_writeback_inode_exit)(void *, const struct inode *, int); +union ib_gid; -typedef void (*btf_trace_nfs_fsync_enter)(void *, const struct inode *); +struct ib_gid_attr; -typedef void (*btf_trace_nfs_fsync_exit)(void *, const struct inode *, int); +struct ib_ucontext; -typedef void (*btf_trace_nfs_access_enter)(void *, const struct inode *); +struct rdma_user_mmap_entry; -typedef void (*btf_trace_nfs_set_cache_invalid)(void *, const struct inode *, int); +struct ib_pd; -typedef void (*btf_trace_nfs_readdir_force_readdirplus)(void *, const struct inode *); +struct ib_ah; -typedef void (*btf_trace_nfs_readdir_cache_fill_done)(void *, const struct inode *, int); +struct rdma_ah_init_attr; -typedef void (*btf_trace_nfs_readdir_uncached_done)(void *, const struct inode *, int); +struct rdma_ah_attr; -typedef void (*btf_trace_nfs_access_exit)(void *, const struct inode *, unsigned int, unsigned int, int); +struct ib_srq_init_attr; -typedef void (*btf_trace_nfs_size_truncate)(void *, const struct inode *, loff_t); +struct ib_srq_attr; -typedef void (*btf_trace_nfs_size_wcc)(void *, const struct inode *, loff_t); +struct ib_qp_init_attr; -typedef void (*btf_trace_nfs_size_update)(void *, const struct inode *, loff_t); +struct ib_qp_attr; -typedef void (*btf_trace_nfs_size_grow)(void *, const struct inode *, loff_t); +struct ib_cq_init_attr; -typedef void (*btf_trace_nfs_readdir_invalidate_cache_range)(void *, const struct inode *, loff_t, loff_t); +struct ib_mr; -typedef void (*btf_trace_nfs_readdir_cache_fill)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); +struct ib_sge; -typedef void (*btf_trace_nfs_readdir_uncached)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); +struct ib_mr_status; -typedef void (*btf_trace_nfs_lookup_enter)(void *, const struct inode *, const struct dentry *, unsigned int); +struct ib_mw; -typedef void (*btf_trace_nfs_lookup_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); +struct ib_xrcd; -typedef void (*btf_trace_nfs_lookup_revalidate_enter)(void *, const struct inode *, const struct dentry *, unsigned int); +struct ib_flow; -typedef void (*btf_trace_nfs_lookup_revalidate_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); +struct ib_flow_attr; -typedef void (*btf_trace_nfs_readdir_lookup)(void *, const struct inode *, const struct dentry *, unsigned int); +struct ib_flow_action; -typedef void (*btf_trace_nfs_readdir_lookup_revalidate_failed)(void *, const struct inode *, const struct dentry *, unsigned int); +struct ib_wq; -typedef void (*btf_trace_nfs_readdir_lookup_revalidate)(void *, const struct inode *, const struct dentry *, unsigned int, int); +struct ib_wq_init_attr; -typedef void (*btf_trace_nfs_atomic_open_enter)(void *, const struct inode *, const struct nfs_open_context *, unsigned int); +struct ib_wq_attr; -typedef void (*btf_trace_nfs_atomic_open_exit)(void *, const struct inode *, const struct nfs_open_context *, unsigned int, int); +struct ib_rwq_ind_table; -typedef void (*btf_trace_nfs_create_enter)(void *, const struct inode *, const struct dentry *, unsigned int); +struct ib_rwq_ind_table_init_attr; -typedef void (*btf_trace_nfs_create_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); +struct ib_dm; -typedef void (*btf_trace_nfs_mknod_enter)(void *, const struct inode *, const struct dentry *); +struct ib_dm_alloc_attr; -typedef void (*btf_trace_nfs_mknod_exit)(void *, const struct inode *, const struct dentry *, int); +struct ib_dm_mr_attr; -typedef void (*btf_trace_nfs_mkdir_enter)(void *, const struct inode *, const struct dentry *); +struct ib_counters; -typedef void (*btf_trace_nfs_mkdir_exit)(void *, const struct inode *, const struct dentry *, int); +struct ib_counters_read_attr; -typedef void (*btf_trace_nfs_rmdir_enter)(void *, const struct inode *, const struct dentry *); +struct rdma_hw_stats; -typedef void (*btf_trace_nfs_rmdir_exit)(void *, const struct inode *, const struct dentry *, int); +struct rdma_counter; -typedef void (*btf_trace_nfs_remove_enter)(void *, const struct inode *, const struct dentry *); +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 (*fill_res_srq_entry)(struct sk_buff *, struct ib_srq *); + int (*fill_res_srq_entry_raw)(struct sk_buff *, struct ib_srq *); + 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; +}; -typedef void (*btf_trace_nfs_remove_exit)(void *, const struct inode *, const struct dentry *, int); +enum ib_atomic_cap { + IB_ATOMIC_NONE = 0, + IB_ATOMIC_HCA = 1, + IB_ATOMIC_GLOB = 2, +}; -typedef void (*btf_trace_nfs_unlink_enter)(void *, const struct inode *, const struct dentry *); +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; +}; -typedef void (*btf_trace_nfs_unlink_exit)(void *, const struct inode *, const struct dentry *, int); +struct ib_rss_caps { + u32 supported_qpts; + u32 max_rwq_indirection_tables; + u32 max_rwq_indirection_table_size; +}; -typedef void (*btf_trace_nfs_symlink_enter)(void *, const struct inode *, const struct dentry *); +struct ib_tm_caps { + u32 max_rndv_hdr_size; + u32 max_num_tags; + u32 flags; + u32 max_ops; + u32 max_sge; +}; -typedef void (*btf_trace_nfs_symlink_exit)(void *, const struct inode *, const struct dentry *, int); +struct ib_cq_caps { + u16 max_cq_moderation_count; + u16 max_cq_moderation_period; +}; -typedef void (*btf_trace_nfs_link_enter)(void *, const struct inode *, const struct inode *, const struct dentry *); +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; +}; -typedef void (*btf_trace_nfs_link_exit)(void *, const struct inode *, const struct inode *, const struct dentry *, int); +struct hw_stats_device_data; -typedef void (*btf_trace_nfs_rename_enter)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *); +struct rdmacg_device { + struct list_head dev_node; + struct list_head rpools; + char *name; +}; -typedef void (*btf_trace_nfs_rename_exit)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); +struct rdma_restrack_root; -typedef void (*btf_trace_nfs_sillyrename_rename)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); +struct uapi_definition; -typedef void (*btf_trace_nfs_sillyrename_unlink)(void *, const struct nfs_unlinkdata *, int); +struct ib_port_data; -typedef void (*btf_trace_nfs_aop_readpage)(void *, const struct inode *, struct folio *); +struct rdma_link_ops; -typedef void (*btf_trace_nfs_aop_readpage_done)(void *, const struct inode *, struct folio *, int); +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; +}; -typedef void (*btf_trace_nfs_writeback_folio)(void *, const struct inode *, struct folio *); +struct ib_uqp_object; -typedef void (*btf_trace_nfs_writeback_folio_done)(void *, const struct inode *, struct folio *, int); +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, +}; -typedef void (*btf_trace_nfs_invalidate_folio)(void *, const struct inode *, struct folio *); +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, +}; -typedef void (*btf_trace_nfs_launder_folio_done)(void *, const struct inode *, struct folio *, int); +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; +}; -typedef void (*btf_trace_nfs_aop_readahead)(void *, const struct inode *, loff_t, unsigned int); +struct ib_event; -typedef void (*btf_trace_nfs_aop_readahead_done)(void *, const struct inode *, unsigned int, int); +struct ib_qp_security; -typedef void (*btf_trace_nfs_initiate_read)(void *, const struct nfs_pgio_header *); +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; +}; -typedef void (*btf_trace_nfs_readpage_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); +struct ib_uobject; -typedef void (*btf_trace_nfs_readpage_short)(void *, const struct rpc_task *, const struct nfs_pgio_header *); +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; +}; -typedef void (*btf_trace_nfs_pgio_error)(void *, const struct nfs_pgio_header *, int, loff_t); +struct ib_uverbs_file; -typedef void (*btf_trace_nfs_initiate_write)(void *, const struct nfs_pgio_header *); +struct rdma_cgroup; -typedef void (*btf_trace_nfs_writeback_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); +struct ib_rdmacg_object { + struct rdma_cgroup *cg; +}; -typedef void (*btf_trace_nfs_write_error)(void *, const struct inode *, const struct nfs_page *, int); +struct uverbs_api_object; -typedef void (*btf_trace_nfs_comp_error)(void *, const struct inode *, const struct nfs_page *, int); +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; +}; -typedef void (*btf_trace_nfs_commit_error)(void *, const struct inode *, const struct nfs_page *, int); +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; +}; -typedef void (*btf_trace_nfs_initiate_commit)(void *, const struct nfs_commit_data *); +struct rdma_cgroup { + struct cgroup_subsys_state css; + struct list_head rpools; +}; -typedef void (*btf_trace_nfs_commit_done)(void *, const struct rpc_task *, const struct nfs_commit_data *); +struct ib_sig_attrs; -typedef void (*btf_trace_nfs_direct_commit_complete)(void *, const struct nfs_direct_req *); +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; +}; -typedef void (*btf_trace_nfs_direct_resched_write)(void *, const struct nfs_direct_req *); +struct ib_dm { + struct ib_device *device; + u32 length; + u32 flags; + struct ib_uobject *uobject; + atomic_t usecnt; +}; -typedef void (*btf_trace_nfs_direct_write_complete)(void *, const struct nfs_direct_req *); +enum ib_signature_type { + IB_SIG_TYPE_NONE = 0, + IB_SIG_TYPE_T10_DIF = 1, +}; -typedef void (*btf_trace_nfs_direct_write_completion)(void *, const struct nfs_direct_req *); +enum ib_t10_dif_bg_type { + IB_T10DIF_CRC = 0, + IB_T10DIF_CSUM = 1, +}; -typedef void (*btf_trace_nfs_direct_write_schedule_iovec)(void *, const struct nfs_direct_req *); +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; +}; -typedef void (*btf_trace_nfs_direct_write_reschedule_io)(void *, const struct nfs_direct_req *); +struct ib_sig_domain { + enum ib_signature_type sig_type; + union { + struct ib_t10_dif_domain dif; + } sig; +}; -typedef void (*btf_trace_nfs_fh_to_dentry)(void *, const struct super_block *, const struct nfs_fh *, u64, int); +struct ib_sig_attrs { + u8 check_mask; + struct ib_sig_domain mem; + struct ib_sig_domain wire; + int meta_length; +}; -typedef void (*btf_trace_nfs_mount_assign)(void *, const char *, const char *); +struct irq_poll; -typedef void (*btf_trace_nfs_mount_option)(void *, const struct fs_parameter *); +typedef int irq_poll_fn(struct irq_poll *, int); -typedef void (*btf_trace_nfs_mount_path)(void *, const char *); +struct irq_poll { + struct list_head list; + unsigned long state; + int weight; + irq_poll_fn *poll; +}; -typedef void (*btf_trace_nfs_xdr_status)(void *, const struct xdr_stream *, int); +struct ib_ucq_object; -typedef void (*btf_trace_nfs_xdr_bad_filehandle)(void *, const struct xdr_stream *, int); +typedef void (*ib_comp_handler)(struct ib_cq *, void *); -struct trace_event_raw_nfs_inode_event { - struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - u64 version; - char __data[0]; +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 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 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; }; -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]; +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 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 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 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 ib_usrq_object; -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]; +enum ib_srq_type { + IB_SRQT_BASIC = 0, + IB_SRQT_XRC = 1, + IB_SRQT_TM = 2, }; -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 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 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 ib_xrcd { + struct ib_device *device; + atomic_t usecnt; + struct inode *inode; + struct rw_semaphore tgt_qps_rwsem; + struct xarray tgt_qps; }; -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 ib_uwq_object; + +enum ib_wq_state { + IB_WQS_RESET = 0, + IB_WQS_RDY = 1, + IB_WQS_ERR = 2, }; -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]; +enum ib_wq_type { + IB_WQT_RQ = 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 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; }; -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]; +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, }; -struct trace_event_raw_nfs_directory_event { - struct trace_entry ent; - dev_t dev; - u64 dir; - u32 __data_loc_name; - char __data[0]; +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 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 ib_cqe; -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 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 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 ib_cqe { + void (*done)(struct ib_cq *, struct ib_wc *); }; -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]; +union ib_gid { + u8 raw[16]; + struct { + __be64 subnet_prefix; + __be64 interface_id; + } global; }; -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]; +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 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 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 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 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 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 ib_ports_pkeys; -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 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; }; -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]; +enum port_pkey_state { + IB_PORT_PKEY_NOT_VALID = 0, + IB_PORT_PKEY_VALID = 1, + IB_PORT_PKEY_LISTED = 2, }; -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 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 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 ib_ports_pkeys { + struct ib_port_pkey main; + struct ib_port_pkey alt; }; -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]; +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, }; -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]; +enum rdma_nl_counter_mask { + RDMA_COUNTER_MASK_QP_TYPE = 1, + RDMA_COUNTER_MASK_PID = 2, }; -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 auto_mode_param { + int qp_type; }; -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 rdma_counter_mode { + enum rdma_nl_counter_mode mode; + enum rdma_nl_counter_mask mask; + struct auto_mode_param param; }; -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 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 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 rdma_stat_desc; -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 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 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 rdma_stat_desc { + const char *name; + unsigned int flags; + const void *priv; }; -struct trace_event_raw_nfs_fh_to_dentry { - struct trace_entry ent; - int error; - dev_t dev; - u32 fhandle; - u64 fileid; - char __data[0]; +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 trace_event_raw_nfs_mount_assign { - struct trace_entry ent; - u32 __data_loc_option; - u32 __data_loc_value; - char __data[0]; +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 trace_event_raw_nfs_mount_option { - struct trace_entry ent; - u32 __data_loc_option; - char __data[0]; +struct ib_sge { + u64 addr; + u32 length; + u32 lkey; }; -struct trace_event_raw_nfs_mount_path { - struct trace_entry ent; - u32 __data_loc_path; - char __data[0]; +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 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 ib_grh { + __be32 version_tclass_flow; + __be16 paylen; + u8 next_hdr; + u8 hop_limit; + union ib_gid sgid; + union ib_gid dgid; }; -struct trace_event_data_offsets_nfs_lookup_event { - u32 name; +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 trace_event_data_offsets_nfs_lookup_event_done { - u32 name; +struct ib_device_modify { + u64 sys_image_guid; + char node_desc[64]; }; -struct trace_event_data_offsets_nfs_atomic_open_enter { - u32 name; +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, }; -struct trace_event_data_offsets_nfs_atomic_open_exit { - u32 name; +enum ib_mtu { + IB_MTU_256 = 1, + IB_MTU_512 = 2, + IB_MTU_1024 = 3, + IB_MTU_2048 = 4, + IB_MTU_4096 = 5, }; -struct trace_event_data_offsets_nfs_create_enter { - u32 name; +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 trace_event_data_offsets_nfs_create_exit { - u32 name; +struct ib_port_modify { + u32 set_port_cap_mask; + u32 clr_port_cap_mask; + u8 init_type; }; -struct trace_event_data_offsets_nfs_directory_event { - u32 name; +struct ib_port_immutable { + int pkey_tbl_len; + int gid_tbl_len; + u32 core_cap_flags; + u32 max_mad_size; }; -struct trace_event_data_offsets_nfs_directory_event_done { - u32 name; +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 trace_event_data_offsets_nfs_link_enter { - u32 name; +struct rdma_user_mmap_entry { + struct kref ref; + struct ib_ucontext *ucontext; + unsigned long start_pgoff; + size_t npages; + bool driver_removed; }; -struct trace_event_data_offsets_nfs_link_exit { - u32 name; +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 trace_event_data_offsets_nfs_rename_event { - u32 old_name; - u32 new_name; +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 trace_event_data_offsets_nfs_rename_event_done { - u32 old_name; - u32 new_name; +struct rdma_ah_init_attr { + struct rdma_ah_attr *ah_attr; + u32 flags; + struct net_device *xmit_slave; }; -struct trace_event_data_offsets_nfs_sillyrename_unlink { - u32 name; +struct ib_ah_attr { + u16 dlid; + u8 src_path_bits; }; -struct trace_event_data_offsets_nfs_mount_assign { - u32 option; - u32 value; +struct roce_ah_attr { + u8 dmac[6]; }; -struct trace_event_data_offsets_nfs_mount_option { - u32 option; +struct opa_ah_attr { + u32 dlid; + u8 src_path_bits; + bool make_grd; }; -struct trace_event_data_offsets_nfs_mount_path { - u32 path; +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 trace_event_data_offsets_nfs_xdr_event { - u32 program; - u32 procedure; +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 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_pgio_error {}; - -struct trace_event_data_offsets_nfs_initiate_write {}; +struct ib_srq_attr { + u32 max_wr; + u32 max_sge; + u32 srq_limit; +}; -struct trace_event_data_offsets_nfs_writeback_done {}; +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 trace_event_data_offsets_nfs_page_error_class {}; +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; +}; -struct trace_event_data_offsets_nfs_initiate_commit {}; +enum ib_sig_type { + IB_SIGNAL_ALL_WR = 0, + IB_SIGNAL_REQ_WR = 1, +}; -struct trace_event_data_offsets_nfs_commit_done {}; +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; +}; -struct trace_event_data_offsets_nfs_direct_req_class {}; +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, +}; -struct trace_event_data_offsets_nfs_fh_to_dentry {}; +enum ib_mig_state { + IB_MIG_MIGRATED = 0, + IB_MIG_REARM = 1, + IB_MIG_ARMED = 2, +}; -struct utf8_table { - int cmask; - int cval; - int shift; - long lmask; - long lval; +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; }; -enum utf16_endian { - UTF16_HOST_ENDIAN = 0, - UTF16_LITTLE_ENDIAN = 1, - UTF16_BIG_ENDIAN = 2, +struct ib_cq_init_attr { + unsigned int cqe; + u32 comp_vector; + u32 flags; }; -typedef u32 unicode_t; +enum ib_sig_err_type { + IB_SIG_BAD_GUARD = 0, + IB_SIG_BAD_REFTAG = 1, + IB_SIG_BAD_APPTAG = 2, +}; -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, - P9L_MODE_MASK = 8191, - P9L_DIRECT = 8192, - P9L_NOWRITECACHE = 16384, - P9L_LOOSE = 32768, +struct ib_sig_err { + enum ib_sig_err_type err_type; + u32 expected; + u32 actual; + u64 sig_err_offset; + u32 key; }; -enum p9_cache_bits { - CACHE_NONE = 0, - CACHE_FILE = 1, - CACHE_META = 2, - CACHE_WRITEBACK = 4, - CACHE_LOOSE = 8, - CACHE_FSCACHE = 128, +struct ib_mr_status { + u32 fail_status; + struct ib_sig_err sig_err; }; -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, - V9FS_NO_XATTR = 64, - V9FS_IGNORE_QV = 128, - V9FS_DIRECT_IO = 256, - V9FS_SYNC = 512, +enum ib_mw_type { + IB_MW_TYPE_1 = 1, + IB_MW_TYPE_2 = 2, }; -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 ib_mw { + struct ib_device *device; + struct ib_pd *pd; + struct ib_uobject *uobject; + u32 rkey; + enum ib_mw_type type; }; -enum p9_qid_t { - P9_QTDIR = 128, - P9_QTAPPEND = 64, - P9_QTEXCL = 32, - P9_QTMOUNT = 16, - P9_QTAUTH = 8, - P9_QTTMP = 4, - P9_QTSYMLINK = 2, - P9_QTLINK = 1, - P9_QTFILE = 0, +struct ib_flow { + struct ib_qp *qp; + struct ib_device *device; + struct ib_uobject *uobject; }; -struct p9_qid { - u8 type; - u32 version; - u64 path; +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 v9fs_inode { - struct netfs_inode netfs; - struct p9_qid qid; - unsigned int cache_validity; - struct mutex v_mutex; +struct ib_flow_eth_filter { + u8 dst_mac[6]; + u8 src_mac[6]; + __be16 ether_type; + __be16 vlan_tag; + u8 real_sz[0]; }; -struct p9_wstat { +struct ib_flow_spec_eth { + u32 type; 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 ib_flow_eth_filter val; + struct ib_flow_eth_filter mask; }; -struct v9fs_session_info { - unsigned int 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 ib_flow_ib_filter { + __be16 dlid; + __u8 sl; + u8 real_sz[0]; }; -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 ib_flow_spec_ib { + u32 type; + u16 size; + struct ib_flow_ib_filter val; + struct ib_flow_ib_filter mask; }; -struct crypto_aead; - -struct aead_request; - -struct aead_alg { - int (*setkey)(struct crypto_aead *, const u8 *, unsigned int); - int (*setauthsize)(struct crypto_aead *, unsigned int); - int (*encrypt)(struct aead_request *); - int (*decrypt)(struct aead_request *); - int (*init)(struct crypto_aead *); - void (*exit)(struct crypto_aead *); - unsigned int ivsize; - unsigned int maxauthsize; - unsigned int chunksize; - struct crypto_alg base; +struct ib_flow_ipv4_filter { + __be32 src_ip; + __be32 dst_ip; + u8 proto; + u8 tos; + u8 ttl; + u8 flags; + u8 real_sz[0]; }; -struct crypto_aead { - unsigned int authsize; - unsigned int reqsize; - struct crypto_tfm base; +struct ib_flow_spec_ipv4 { + u32 type; + u16 size; + struct ib_flow_ipv4_filter val; + struct ib_flow_ipv4_filter mask; }; -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 ib_flow_tcp_udp_filter { + __be16 dst_port; + __be16 src_port; + u8 real_sz[0]; }; -struct aead_instance { - void (*free)(struct aead_instance *); - union { - struct { - char head[64]; - struct crypto_instance base; - } s; - struct aead_alg alg; - }; +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 crypto_istat_aead { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t err_cnt; +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 crypto_aead_spawn { - struct crypto_spawn base; +struct ib_flow_spec_ipv6 { + u32 type; + u16 size; + struct ib_flow_ipv6_filter val; + struct ib_flow_ipv6_filter mask; }; -struct crypto_report_aead { - char type[64]; - char geniv[64]; - unsigned int blocksize; - unsigned int maxauthsize; - unsigned int ivsize; +struct ib_flow_tunnel_filter { + __be32 tunnel_id; + u8 real_sz[0]; }; -struct crypto_rng { - struct crypto_tfm base; +struct ib_flow_spec_tunnel { + u32 type; + u16 size; + struct ib_flow_tunnel_filter val; + struct ib_flow_tunnel_filter mask; }; -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 ib_flow_esp_filter { + __be32 spi; + __be32 seq; + u8 real_sz[0]; }; -struct crypto_istat_rng { - atomic64_t generate_cnt; - atomic64_t generate_tlen; - atomic64_t seed_cnt; - atomic64_t err_cnt; +struct ib_flow_spec_esp { + u32 type; + u16 size; + struct ib_flow_esp_filter val; + struct ib_flow_esp_filter mask; }; -struct crypto_report_rng { - char type[64]; - unsigned int seedsize; +struct ib_flow_gre_filter { + __be16 c_ks_res0_ver; + __be16 protocol; + __be32 key; + u8 real_sz[0]; }; -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 ib_flow_spec_gre { + u32 type; + u16 size; + struct ib_flow_gre_filter val; + struct ib_flow_gre_filter mask; }; -typedef __kernel_clock_t clock_t; - -enum { - IORING_MSG_DATA = 0, - IORING_MSG_SEND_FD = 1, +struct ib_flow_mpls_filter { + __be32 tag; + u8 real_sz[0]; }; -struct io_msg { - struct file *file; - struct file *src_file; - struct callback_head tw; - u64 user_data; - u32 len; - u32 cmd; - u32 src_fd; - union { - u32 dst_fd; - u32 cqe_flags; - }; - u32 flags; +struct ib_flow_spec_mpls { + u32 type; + u16 size; + struct ib_flow_mpls_filter val; + struct ib_flow_mpls_filter mask; }; -struct gcry_mpi; +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, +}; -typedef struct gcry_mpi *MPI; +struct ib_flow_spec_action_tag { + enum ib_flow_spec_type type; + u16 size; + u32 tag_id; +}; -typedef unsigned long mpi_limb_t; +struct ib_flow_spec_action_drop { + enum ib_flow_spec_type type; + u16 size; +}; -struct gcry_mpi { - int alloced; - int nlimbs; - int nbits; - int sign; - unsigned int flags; - mpi_limb_t *d; +struct ib_flow_spec_action_handle { + enum ib_flow_spec_type type; + u16 size; + struct ib_flow_action *act; }; -typedef mpi_limb_t *mpi_ptr_t; +struct ib_flow_spec_action_count { + enum ib_flow_spec_type type; + u16 size; + struct ib_counters *counters; +}; -typedef int mpi_size_t; +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 word_at_a_time { - const unsigned long one_bits; - const unsigned long high_bits; +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]; }; -struct brcmstb_intc_init_params { - irq_flow_handler_t handler; - int cpu_status; - int cpu_clear; - int cpu_mask_status; - int cpu_mask_set; - int cpu_mask_clear; +enum ib_flow_action_type { + IB_FLOW_ACTION_UNSPECIFIED = 0, + IB_FLOW_ACTION_ESP = 1, }; -struct brcmstb_l2_intc_data { - struct irq_domain *domain; - struct irq_chip_generic *gc; - int status_offset; - int mask_offset; - bool can_wake; - u32 saved_mask; +struct ib_flow_action { + struct ib_device *device; + struct ib_uobject *uobject; + enum ib_flow_action_type type; + atomic_t usecnt; }; -struct dpbp_cmd_open { - __le32 dpbp_id; +struct ib_counters { + struct ib_device *device; + struct ib_uobject *uobject; + atomic_t usecnt; }; -struct dpbp_rsp_get_attributes { - __le16 pad; - __le16 bpid; - __le32 id; - __le16 version_major; - __le16 version_minor; +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 dpbp_attr { - int id; - u16 bpid; +struct ib_wq_attr { + enum ib_wq_state wq_state; + enum ib_wq_state curr_wq_state; + u32 flags; + u32 flags_mask; }; -enum brcm_sata_phy_version { - BRCM_SATA_PHY_STB_16NM = 0, - BRCM_SATA_PHY_STB_28NM = 1, - BRCM_SATA_PHY_STB_40NM = 2, - BRCM_SATA_PHY_IPROC_NS2 = 3, - BRCM_SATA_PHY_IPROC_NSP = 4, - BRCM_SATA_PHY_IPROC_SR = 5, - BRCM_SATA_PHY_DSL_28NM = 6, +struct ib_rwq_ind_table_init_attr { + u32 log_ind_tbl_size; + struct ib_wq **ind_tbl; }; -enum brcm_sata_phy_rxaeq_mode { - RXAEQ_MODE_OFF = 0, - RXAEQ_MODE_AUTO = 1, - RXAEQ_MODE_MANUAL = 2, +struct ib_dm_alloc_attr { + u64 length; + u32 alignment; + u32 flags; }; -enum sata_phy_regs { - BLOCK0_REG_BANK = 0, - BLOCK0_XGXSSTATUS = 129, - BLOCK0_XGXSSTATUS_PLL_LOCK = 4096, - BLOCK0_SPARE = 141, - BLOCK0_SPARE_OOB_CLK_SEL_MASK = 3, - BLOCK0_SPARE_OOB_CLK_SEL_REFBY2 = 1, - BLOCK1_REG_BANK = 16, - BLOCK1_TEST_TX = 131, - BLOCK1_TEST_TX_AMP_SHIFT = 12, - PLL_REG_BANK_0 = 80, - PLL_REG_BANK_0_PLLCONTROL_0 = 129, - PLLCONTROL_0_FREQ_DET_RESTART = 8192, - PLLCONTROL_0_FREQ_MONITOR = 4096, - PLLCONTROL_0_SEQ_START = 32768, - PLL_CAP_CHARGE_TIME = 131, - PLL_VCO_CAL_THRESH = 132, - PLL_CAP_CONTROL = 133, - PLL_FREQ_DET_TIME = 134, - PLL_ACTRL2 = 139, - PLL_ACTRL2_SELDIV_MASK = 31, - PLL_ACTRL2_SELDIV_SHIFT = 9, - PLL_ACTRL6 = 134, - PLL1_REG_BANK = 96, - PLL1_ACTRL2 = 130, - PLL1_ACTRL3 = 131, - PLL1_ACTRL4 = 132, - PLL1_ACTRL5 = 133, - PLL1_ACTRL6 = 134, - PLL1_ACTRL7 = 135, - PLL1_ACTRL8 = 136, - TX_REG_BANK = 112, - TX_ACTRL0 = 128, - TX_ACTRL0_TXPOL_FLIP = 64, - TX_ACTRL5 = 133, - TX_ACTRL5_SSC_EN = 2048, - AEQRX_REG_BANK_0 = 208, - AEQ_CONTROL1 = 129, - AEQ_CONTROL1_ENABLE = 4, - AEQ_CONTROL1_FREEZE = 8, - AEQ_FRC_EQ = 131, - AEQ_FRC_EQ_FORCE = 1, - AEQ_FRC_EQ_FORCE_VAL = 2, - AEQ_RFZ_FRC_VAL = 256, - AEQRX_REG_BANK_1 = 224, - AEQRX_SLCAL0_CTRL0 = 130, - AEQRX_SLCAL1_CTRL0 = 134, - OOB_REG_BANK = 336, - OOB1_REG_BANK = 352, - OOB_CTRL1 = 128, - OOB_CTRL1_BURST_MAX_MASK = 15, - OOB_CTRL1_BURST_MAX_SHIFT = 12, - OOB_CTRL1_BURST_MIN_MASK = 15, - OOB_CTRL1_BURST_MIN_SHIFT = 8, - OOB_CTRL1_WAKE_IDLE_MAX_MASK = 15, - OOB_CTRL1_WAKE_IDLE_MAX_SHIFT = 4, - OOB_CTRL1_WAKE_IDLE_MIN_MASK = 15, - OOB_CTRL1_WAKE_IDLE_MIN_SHIFT = 0, - OOB_CTRL2 = 129, - OOB_CTRL2_SEL_ENA_SHIFT = 15, - OOB_CTRL2_SEL_ENA_RC_SHIFT = 14, - OOB_CTRL2_RESET_IDLE_MAX_MASK = 63, - OOB_CTRL2_RESET_IDLE_MAX_SHIFT = 8, - OOB_CTRL2_BURST_CNT_MASK = 3, - OOB_CTRL2_BURST_CNT_SHIFT = 6, - OOB_CTRL2_RESET_IDLE_MIN_MASK = 63, - OOB_CTRL2_RESET_IDLE_MIN_SHIFT = 0, - TXPMD_REG_BANK = 416, - TXPMD_CONTROL1 = 129, - TXPMD_CONTROL1_TX_SSC_EN_FRC = 1, - TXPMD_CONTROL1_TX_SSC_EN_FRC_VAL = 2, - TXPMD_TX_FREQ_CTRL_CONTROL1 = 130, - TXPMD_TX_FREQ_CTRL_CONTROL2 = 131, - TXPMD_TX_FREQ_CTRL_CONTROL2_FMIN_MASK = 1023, - TXPMD_TX_FREQ_CTRL_CONTROL3 = 132, - TXPMD_TX_FREQ_CTRL_CONTROL3_FMAX_MASK = 1023, - RXPMD_REG_BANK = 448, - RXPMD_RX_CDR_CONTROL1 = 129, - RXPMD_RX_PPM_VAL_MASK = 511, - RXPMD_RXPMD_EN_FRC = 4096, - RXPMD_RXPMD_EN_FRC_VAL = 8192, - RXPMD_RX_CDR_CDR_PROP_BW = 130, - RXPMD_G_CDR_PROP_BW_MASK = 7, - RXPMD_G1_CDR_PROP_BW_SHIFT = 0, - RXPMD_G2_CDR_PROP_BW_SHIFT = 3, - RXPMD_G3_CDR_PROB_BW_SHIFT = 6, - RXPMD_RX_CDR_CDR_ACQ_INTEG_BW = 131, - RXPMD_G_CDR_ACQ_INT_BW_MASK = 7, - RXPMD_G1_CDR_ACQ_INT_BW_SHIFT = 0, - RXPMD_G2_CDR_ACQ_INT_BW_SHIFT = 3, - RXPMD_G3_CDR_ACQ_INT_BW_SHIFT = 6, - RXPMD_RX_CDR_CDR_LOCK_INTEG_BW = 132, - RXPMD_G_CDR_LOCK_INT_BW_MASK = 7, - RXPMD_G1_CDR_LOCK_INT_BW_SHIFT = 0, - RXPMD_G2_CDR_LOCK_INT_BW_SHIFT = 3, - RXPMD_G3_CDR_LOCK_INT_BW_SHIFT = 6, - RXPMD_RX_FREQ_MON_CONTROL1 = 135, - RXPMD_MON_CORRECT_EN = 256, - RXPMD_MON_MARGIN_VAL_MASK = 255, +struct ib_dm_mr_attr { + u64 length; + u64 offset; + u32 access_flags; }; -enum sata_phy_ctrl_regs { - PHY_CTRL_1 = 0, - PHY_CTRL_1_RESET = 1, +struct ib_counters_read_attr { + u64 *counters_buff; + u32 ncounters; + u32 flags; }; -struct brcm_sata_phy; +struct ib_pkey_cache; -struct brcm_sata_port { - int portnum; - struct phy *phy; - struct brcm_sata_phy *phy_priv; - bool ssc_en; - enum brcm_sata_phy_rxaeq_mode rxaeq_mode; - u32 rxaeq_val; - u32 tx_amplitude_val; -}; +struct ib_gid_table; -struct brcm_sata_phy { - struct device *dev; - void *phy_base; - void *ctrl_base; - enum brcm_sata_phy_version version; - struct brcm_sata_port phys[2]; +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 pcs_conf_type { - const char *name; - enum pin_config_param param; +struct rdma_port_counter { + struct rdma_counter_mode mode; + struct rdma_hw_stats *hstats; + unsigned int num_counters; + struct mutex lock; }; -struct pcs_soc_data { - unsigned int flags; - int irq; - unsigned int irq_enable_mask; - unsigned int irq_status_mask; - void (*rearm)(); -}; +struct ib_port; -struct pcs_gpiofunc_range { - unsigned int offset; - unsigned int npins; - unsigned int gpiofunc; - struct list_head node; +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 pcs_data { - struct pinctrl_pin_desc *pa; - int cur; +struct rdma_link_ops { + struct list_head list; + const char *type; + int (*newlink)(const char *, struct net_device *); }; -struct pcs_device { - struct resource *res; - void *base; - void *saved_vals; - unsigned int size; - struct device *dev; - struct device_node *np; - struct pinctrl_dev *pctl; - unsigned int flags; - struct property *missing_nr_pinctrl_cells; - struct pcs_soc_data socdata; - raw_spinlock_t lock; - struct mutex mutex; - unsigned int width; - unsigned int fmask; - unsigned int fshift; - unsigned int foff; - unsigned int fmax; - bool bits_per_mux; - unsigned int bits_per_pin; - struct pcs_data pins; - struct list_head gpiofuncs; - struct list_head irqs; - struct irq_chip chip; - struct irq_domain *domain; - struct pinctrl_desc desc; - unsigned int (*read)(void *); - void (*write)(unsigned int, void *); +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, }; -struct pcs_interrupt { - void *reg; - irq_hw_number_t hwirq; - unsigned int irq; - struct list_head node; +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 pcs_func_vals { - void *reg; - unsigned int val; - unsigned int mask; +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 pcs_conf_vals; - -struct pcs_function { - const char *name; - struct pcs_func_vals *vals; - unsigned int nvals; - const char **pgnames; - int npgnames; - struct pcs_conf_vals *conf; - int nconfs; - struct list_head node; +struct scm_creds { + u32 pid; + kuid_t uid; + kgid_t gid; }; -struct pcs_conf_vals { - enum pin_config_param param; - unsigned int val; - unsigned int enable; - unsigned int disable; - unsigned int mask; +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 function_desc { - const char *name; - const char * const *group_names; - int num_group_names; - void *data; +struct devlink_nl_dump_state { + unsigned long instance; + int idx; + union { + struct { + u64 start_offset; + }; + struct { + u64 dump_ts; + }; + }; }; -struct pinctrl_setting_mux; +typedef int devlink_nl_dump_one_func_t(struct sk_buff *, struct devlink *, struct netlink_callback *, int); -struct pin_desc { - struct pinctrl_dev *pctldev; - const char *name; - bool dynamic_name; - void *drv_data; - unsigned int mux_usecount; - const char *mux_owner; - const struct pinctrl_setting_mux *mux_setting; - const char *gpio_owner; +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 pinctrl_setting_mux { - unsigned int group; - unsigned int func; -}; +struct svc_xprt_class; -struct pcs_pdata { - int irq; - void (*rearm)(); +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 lwq_node 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 rzv2m_dedicated_configs; +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 rzv2m_pinctrl_data { - const char * const *port_pins; - const u32 *port_pin_configs; - const struct rzv2m_dedicated_configs *dedicated_pins; - unsigned int n_port_pins; - unsigned int n_dedicated_pins; +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_ctxt)(struct svc_xprt *, void *); + void (*xpo_detach)(struct svc_xprt *); + void (*xpo_free)(struct svc_xprt *); + void (*xpo_kill_temp_xprt)(struct svc_xprt *); + void (*xpo_handshake)(struct svc_xprt *); }; -struct rzv2m_dedicated_configs { - const char *name; - u32 config; +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 rzv2m_pinctrl { - struct pinctrl_dev *pctl; - struct pinctrl_desc desc; - struct pinctrl_pin_desc *pins; - const struct rzv2m_pinctrl_data *data; - void *base; - struct device *dev; - struct clk *clk; - struct gpio_chip gpio_chip; - struct pinctrl_gpio_range gpio_range; - spinlock_t lock; - struct mutex mutex; +enum rpc_auth_stat { + RPC_AUTH_OK = 0, + RPC_AUTH_BADCRED = 1, + RPC_AUTH_REJECTEDCRED = 2, + RPC_AUTH_BADVERF = 3, + RPC_AUTH_REJECTEDVERF = 4, + RPC_AUTH_TOOWEAK = 5, + RPCSEC_GSS_CREDPROBLEM = 13, + RPCSEC_GSS_CTXPROBLEM = 14, }; -struct group_desc { - const char *name; - int *pins; - int num_pins; - void *data; +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 mpc8xxx_gpio_devtype { - int (*gpio_dir_out)(struct gpio_chip *, unsigned int, int); - int (*gpio_get)(struct gpio_chip *, unsigned int); - int (*irq_set_type)(struct irq_data *, unsigned int); +enum rpc_gss_svc { + RPC_GSS_SVC_NONE = 1, + RPC_GSS_SVC_INTEGRITY = 2, + RPC_GSS_SVC_PRIVACY = 3, }; -struct mpc8xxx_gpio_chip { - struct gpio_chip gc; - void *regs; - raw_spinlock_t lock; - int (*direction_output)(struct gpio_chip *, unsigned int, int); - struct irq_domain *irq; - int irqn; +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, }; enum { - PCI_STD_RESOURCES = 0, - PCI_STD_RESOURCE_END = 5, - PCI_ROM_RESOURCE = 6, - PCI_IOV_RESOURCES = 7, - PCI_IOV_RESOURCE_END = 12, - PCI_BRIDGE_RESOURCES = 13, - PCI_BRIDGE_RESOURCE_END = 16, - PCI_NUM_RESOURCES = 17, - DEVICE_COUNT_RESOURCE = 17, + RQ_SECURE = 0, + RQ_LOCAL = 1, + RQ_USEDEFERRAL = 2, + RQ_DROPME = 3, + RQ_SPLICE_OK = 4, + RQ_VICTIM = 5, + RQ_DATA = 6, }; -typedef u64 pci_bus_addr_t; - -struct pci_bus_region { - pci_bus_addr_t start; - pci_bus_addr_t end; +enum { + CACHE_VALID = 0, + CACHE_NEGATIVE = 1, + CACHE_PENDING = 2, + CACHE_CLEANED = 3, }; -enum pci_interrupt_pin { - PCI_INTERRUPT_UNKNOWN = 0, - PCI_INTERRUPT_INTA = 1, - PCI_INTERRUPT_INTB = 2, - PCI_INTERRUPT_INTC = 3, - PCI_INTERRUPT_INTD = 4, +struct gss_domain { + struct auth_domain h; + u32 pseudoflavor; }; -enum pci_barno { - NO_BAR = -1, - BAR_0 = 0, - BAR_1 = 1, - BAR_2 = 2, - BAR_3 = 3, - BAR_4 = 4, - BAR_5 = 5, +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; }; -enum pci_epc_irq_type { - PCI_EPC_IRQ_UNKNOWN = 0, - PCI_EPC_IRQ_LEGACY = 1, - PCI_EPC_IRQ_MSI = 2, - PCI_EPC_IRQ_MSIX = 3, +typedef unsigned int OM_uint32; + +struct gss_svc_seq_data { + u32 sd_max; + unsigned long sd_win[2]; + spinlock_t sd_lock; }; -enum pci_epc_interface_type { - UNKNOWN_INTERFACE = -1, - PRIMARY_INTERFACE = 0, - SECONDARY_INTERFACE = 1, +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 pci_epc_ops; +struct rpc_pipe; -struct pci_epc_mem; +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 config_group; +struct rpc_pipe_ops; -struct pci_epc { - struct device dev; - struct list_head pci_epf; - struct mutex list_lock; - const struct pci_epc_ops *ops; - struct pci_epc_mem **windows; - struct pci_epc_mem *mem; - unsigned int num_windows; - u8 max_functions; - u8 *max_vfs; - struct config_group *group; - struct mutex lock; - unsigned long function_num_map; +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 pci_epf_header; - -struct pci_epf_bar; +struct rpc_pipe_msg; -struct pci_epc_features; - -struct pci_epc_ops { - int (*write_header)(struct pci_epc *, u8, u8, struct pci_epf_header *); - int (*set_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); - void (*clear_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); - int (*map_addr)(struct pci_epc *, u8, u8, phys_addr_t, u64, size_t); - void (*unmap_addr)(struct pci_epc *, u8, u8, phys_addr_t); - int (*set_msi)(struct pci_epc *, u8, u8, u8); - int (*get_msi)(struct pci_epc *, u8, u8); - int (*set_msix)(struct pci_epc *, u8, u8, u16, enum pci_barno, u32); - int (*get_msix)(struct pci_epc *, u8, u8); - int (*raise_irq)(struct pci_epc *, u8, u8, enum pci_epc_irq_type, u16); - int (*map_msi_irq)(struct pci_epc *, u8, u8, phys_addr_t, u8, u32, u32 *, u32 *); - int (*start)(struct pci_epc *); - void (*stop)(struct pci_epc *); - const struct pci_epc_features * (*get_features)(struct pci_epc *, u8, u8); - struct module *owner; -}; - -struct pci_epf_header { - u16 vendorid; - u16 deviceid; - u8 revid; - u8 progif_code; - u8 subclass_code; - u8 baseclass_code; - u8 cache_line_size; - u16 subsys_vendor_id; - u16 subsys_id; - enum pci_interrupt_pin interrupt_pin; +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 pci_epf_bar { - dma_addr_t phys_addr; - void *addr; - size_t size; - enum pci_barno barno; - int flags; +struct rpc_pipe_msg { + struct list_head list; + void *data; + size_t len; + size_t copied; + int errno; }; -struct pci_epc_features { - unsigned int linkup_notifier: 1; - unsigned int core_init_notifier: 1; - unsigned int msi_capable: 1; - unsigned int msix_capable: 1; - u8 reserved_bar; - u8 bar_fixed_64bit; - u64 bar_fixed_size[6]; - size_t align; +struct rpc_gss_wire_cred { + u32 gc_v; + u32 gc_proc; + u32 gc_seq; + u32 gc_svc; + struct xdr_netobj gc_ctx; }; -struct pci_epc_mem_window { - phys_addr_t phys_base; - size_t size; - size_t page_size; +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 pci_epc_mem { - struct pci_epc_mem_window window; - unsigned long *bitmap; - int pages; - struct mutex lock; +struct gssp_in_token { + struct page **pages; + unsigned int page_base; + unsigned int page_len; }; -struct config_item_type; - -struct config_item { - char *ci_name; - char ci_namebuf[20]; - struct kref ci_kref; - struct list_head ci_entry; - struct config_item *ci_parent; - struct config_group *ci_group; - const struct config_item_type *ci_type; - struct dentry *ci_dentry; +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; }; -struct configfs_subsystem; - -struct config_group { - struct config_item cg_item; - struct list_head cg_children; - struct configfs_subsystem *cg_subsys; - struct list_head default_groups; - struct list_head group_entry; +enum aarch64_insn_condition { + AARCH64_INSN_COND_EQ = 0, + AARCH64_INSN_COND_NE = 1, + AARCH64_INSN_COND_CS = 2, + AARCH64_INSN_COND_CC = 3, + AARCH64_INSN_COND_MI = 4, + AARCH64_INSN_COND_PL = 5, + AARCH64_INSN_COND_VS = 6, + AARCH64_INSN_COND_VC = 7, + AARCH64_INSN_COND_HI = 8, + AARCH64_INSN_COND_LS = 9, + AARCH64_INSN_COND_GE = 10, + AARCH64_INSN_COND_LT = 11, + AARCH64_INSN_COND_GT = 12, + AARCH64_INSN_COND_LE = 13, + AARCH64_INSN_COND_AL = 14, }; -struct configfs_item_operations; - -struct configfs_group_operations; - -struct configfs_attribute; - -struct configfs_bin_attribute; - -struct config_item_type { - struct module *ct_owner; - struct configfs_item_operations *ct_item_ops; - struct configfs_group_operations *ct_group_ops; - struct configfs_attribute **ct_attrs; - struct configfs_bin_attribute **ct_bin_attrs; +enum aarch64_insn_size_type { + AARCH64_INSN_SIZE_8 = 0, + AARCH64_INSN_SIZE_16 = 1, + AARCH64_INSN_SIZE_32 = 2, + AARCH64_INSN_SIZE_64 = 3, }; -struct configfs_item_operations { - void (*release)(struct config_item *); - int (*allow_link)(struct config_item *, struct config_item *); - void (*drop_link)(struct config_item *, struct config_item *); +enum aarch64_insn_ldst_type { + AARCH64_INSN_LDST_LOAD_REG_OFFSET = 0, + AARCH64_INSN_LDST_STORE_REG_OFFSET = 1, + AARCH64_INSN_LDST_LOAD_IMM_OFFSET = 2, + AARCH64_INSN_LDST_STORE_IMM_OFFSET = 3, + AARCH64_INSN_LDST_LOAD_PAIR_PRE_INDEX = 4, + AARCH64_INSN_LDST_STORE_PAIR_PRE_INDEX = 5, + AARCH64_INSN_LDST_LOAD_PAIR_POST_INDEX = 6, + AARCH64_INSN_LDST_STORE_PAIR_POST_INDEX = 7, + AARCH64_INSN_LDST_LOAD_EX = 8, + AARCH64_INSN_LDST_LOAD_ACQ_EX = 9, + AARCH64_INSN_LDST_STORE_EX = 10, + AARCH64_INSN_LDST_STORE_REL_EX = 11, + AARCH64_INSN_LDST_SIGNED_LOAD_IMM_OFFSET = 12, + AARCH64_INSN_LDST_SIGNED_LOAD_REG_OFFSET = 13, }; -struct configfs_group_operations { - struct config_item * (*make_item)(struct config_group *, const char *); - struct config_group * (*make_group)(struct config_group *, const char *); - void (*disconnect_notify)(struct config_group *, struct config_item *); - void (*drop_item)(struct config_group *, struct config_item *); +enum aarch64_insn_mem_atomic_op { + AARCH64_INSN_MEM_ATOMIC_ADD = 0, + AARCH64_INSN_MEM_ATOMIC_CLR = 1, + AARCH64_INSN_MEM_ATOMIC_EOR = 2, + AARCH64_INSN_MEM_ATOMIC_SET = 3, + AARCH64_INSN_MEM_ATOMIC_SWP = 4, }; -struct configfs_attribute { - const char *ca_name; - struct module *ca_owner; - umode_t ca_mode; - ssize_t (*show)(struct config_item *, char *); - ssize_t (*store)(struct config_item *, const char *, size_t); +enum aarch64_insn_mem_order_type { + AARCH64_INSN_MEM_ORDER_NONE = 0, + AARCH64_INSN_MEM_ORDER_ACQ = 1, + AARCH64_INSN_MEM_ORDER_REL = 2, + AARCH64_INSN_MEM_ORDER_ACQREL = 3, }; -struct configfs_bin_attribute { - struct configfs_attribute cb_attr; - void *cb_private; - size_t cb_max_size; - ssize_t (*read)(struct config_item *, void *, size_t); - ssize_t (*write)(struct config_item *, const void *, size_t); +enum aarch64_insn_adsb_type { + AARCH64_INSN_ADSB_ADD = 0, + AARCH64_INSN_ADSB_SUB = 1, + AARCH64_INSN_ADSB_ADD_SETFLAGS = 2, + AARCH64_INSN_ADSB_SUB_SETFLAGS = 3, }; -struct configfs_subsystem { - struct config_group su_group; - struct mutex su_mutex; +enum aarch64_insn_bitfield_type { + AARCH64_INSN_BITFIELD_MOVE = 0, + AARCH64_INSN_BITFIELD_MOVE_UNSIGNED = 1, + AARCH64_INSN_BITFIELD_MOVE_SIGNED = 2, }; -struct pci_epf_driver; - -struct pci_epf_device_id; - -struct pci_epc_event_ops; - -struct pci_epf { - struct device dev; - const char *name; - struct pci_epf_header *header; - struct pci_epf_bar bar[6]; - u8 msi_interrupts; - u16 msix_interrupts; - u8 func_no; - u8 vfunc_no; - struct pci_epc *epc; - struct pci_epf *epf_pf; - struct pci_epf_driver *driver; - const struct pci_epf_device_id *id; - struct list_head list; - struct mutex lock; - struct pci_epc *sec_epc; - struct list_head sec_epc_list; - struct pci_epf_bar sec_epc_bar[6]; - u8 sec_epc_func_no; - struct config_group *group; - unsigned int is_bound; - unsigned int is_vf; - unsigned long vfunction_num_map; - struct list_head pci_vepf; - const struct pci_epc_event_ops *event_ops; +enum aarch64_insn_data1_type { + AARCH64_INSN_DATA1_REVERSE_16 = 0, + AARCH64_INSN_DATA1_REVERSE_32 = 1, + AARCH64_INSN_DATA1_REVERSE_64 = 2, }; -struct pci_epf_ops; - -struct pci_epf_driver { - int (*probe)(struct pci_epf *, const struct pci_epf_device_id *); - void (*remove)(struct pci_epf *); - struct device_driver driver; - struct pci_epf_ops *ops; - struct module *owner; - struct list_head epf_group; - const struct pci_epf_device_id *id_table; +enum aarch64_insn_data2_type { + AARCH64_INSN_DATA2_UDIV = 0, + AARCH64_INSN_DATA2_SDIV = 1, + AARCH64_INSN_DATA2_LSLV = 2, + AARCH64_INSN_DATA2_LSRV = 3, + AARCH64_INSN_DATA2_ASRV = 4, + AARCH64_INSN_DATA2_RORV = 5, }; -struct pci_epf_device_id { - char name[20]; - kernel_ulong_t driver_data; +enum aarch64_insn_data3_type { + AARCH64_INSN_DATA3_MADD = 0, + AARCH64_INSN_DATA3_MSUB = 1, }; -struct pci_epf_ops { - int (*bind)(struct pci_epf *); - void (*unbind)(struct pci_epf *); - struct config_group * (*add_cfs)(struct pci_epf *, struct config_group *); +enum aarch64_insn_adr_type { + AARCH64_INSN_ADR_TYPE_ADRP = 0, + AARCH64_INSN_ADR_TYPE_ADR = 1, }; -struct pci_epc_event_ops { - int (*core_init)(struct pci_epf *); - int (*link_up)(struct pci_epf *); - int (*link_down)(struct pci_epf *); - int (*bme)(struct pci_epf *); +enum aarch64_insn_mb_type { + AARCH64_INSN_MB_SY = 0, + AARCH64_INSN_MB_ST = 1, + AARCH64_INSN_MB_LD = 2, + AARCH64_INSN_MB_ISH = 3, + AARCH64_INSN_MB_ISHST = 4, + AARCH64_INSN_MB_ISHLD = 5, + AARCH64_INSN_MB_NSH = 6, + AARCH64_INSN_MB_NSHST = 7, + AARCH64_INSN_MB_NSHLD = 8, + AARCH64_INSN_MB_OSH = 9, + AARCH64_INSN_MB_OSHST = 10, + AARCH64_INSN_MB_OSHLD = 11, }; -struct klist_iter { - struct klist *i_klist; - struct klist_node *i_cur; -}; +typedef __u16 Elf32_Half; -struct subsys_private; +typedef __u32 Elf32_Word; -struct class_dev_iter { - struct klist_iter ki; - const struct device_type *type; - struct subsys_private *sp; -}; +typedef __u32 Elf32_Addr; -struct aperture_range { - struct device *dev; - resource_size_t base; - resource_size_t size; - struct list_head lh; - void (*detach)(struct device *); -}; +typedef __u32 Elf32_Off; -struct acpi_table_madt { - struct acpi_table_header header; - u32 address; - u32 flags; +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; }; -enum acpi_madt_type { - ACPI_MADT_TYPE_LOCAL_APIC = 0, - ACPI_MADT_TYPE_IO_APIC = 1, - ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2, - ACPI_MADT_TYPE_NMI_SOURCE = 3, - ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4, - ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5, - ACPI_MADT_TYPE_IO_SAPIC = 6, - ACPI_MADT_TYPE_LOCAL_SAPIC = 7, - ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8, - ACPI_MADT_TYPE_LOCAL_X2APIC = 9, - ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, - ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, - ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, - ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, - ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, - ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, - ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, - ACPI_MADT_TYPE_CORE_PIC = 17, - ACPI_MADT_TYPE_LIO_PIC = 18, - ACPI_MADT_TYPE_HT_PIC = 19, - ACPI_MADT_TYPE_EIO_PIC = 20, - ACPI_MADT_TYPE_MSI_PIC = 21, - ACPI_MADT_TYPE_BIO_PIC = 22, - ACPI_MADT_TYPE_LPC_PIC = 23, - ACPI_MADT_TYPE_RINTC = 24, - ACPI_MADT_TYPE_RESERVED = 25, - ACPI_MADT_TYPE_OEM_RESERVED = 128, -}; +typedef struct elf32_hdr Elf32_Ehdr; -struct acpi_madt_local_apic { - struct acpi_subtable_header header; - u8 processor_id; - u8 id; - u32 lapic_flags; +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; }; -struct acpi_madt_local_x2apic { - struct acpi_subtable_header header; - u16 reserved; - u32 local_apic_id; - u32 lapic_flags; - u32 uid; -}; +typedef struct elf32_phdr Elf32_Phdr; -struct acpi_madt_local_sapic { - struct acpi_subtable_header header; - u8 processor_id; - u8 id; - u8 eid; - u8 reserved[3]; - u32 lapic_flags; - u32 uid; - char uid_string[0]; +struct elf64_phdr { + Elf64_Word p_type; + Elf64_Word p_flags; + Elf64_Off p_offset; + Elf64_Addr p_vaddr; + Elf64_Addr p_paddr; + Elf64_Xword p_filesz; + Elf64_Xword p_memsz; + Elf64_Xword p_align; }; -struct acpi_madt_rintc { - struct acpi_subtable_header header; - u8 version; - u8 reserved; - u32 flags; - u64 hart_id; - u32 uid; -} __attribute__((packed)); +typedef struct elf64_phdr Elf64_Phdr; -enum acpi_ec_event_state { - EC_EVENT_READY = 0, - EC_EVENT_IN_PROGRESS = 1, - EC_EVENT_COMPLETE = 2, +struct elf32_note { + Elf32_Word n_namesz; + Elf32_Word n_descsz; + Elf32_Word n_type; }; -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; -}; +typedef struct elf32_note Elf32_Nhdr; -struct transaction { - const u8 *wdata; - u8 *rdata; - unsigned short irq_count; - u8 command; - u8 wi; - u8 ri; - u8 wlen; - u8 rlen; - u8 flags; +enum { + LOGIC_PIO_INDIRECT = 0, + LOGIC_PIO_CPU_MMIO = 1, }; -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, -}; +struct logic_pio_host_ops; -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, +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; }; -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, +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); }; -typedef int (*acpi_ec_query_func)(void *); +typedef struct { + u64 signature; + u32 revision; + u32 headersize; + u32 crc32; + u32 reserved; +} efi_table_hdr_t; -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; -}; +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; -struct acpi_ec_query { - struct transaction transaction; - struct work_struct work; - struct acpi_ec_query_handler *handler; - struct acpi_ec *ec; -}; +typedef struct { + u32 resolution; + u32 accuracy; + u8 sets_to_zero; +} efi_time_cap_t; -typedef u32 acpi_event_status; +typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *); -typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); +typedef efi_status_t efi_set_time_t(efi_time_t *); -struct acpi_table_ecdt { - struct acpi_table_header header; - struct acpi_generic_address control; - struct acpi_generic_address data; - u32 uid; - u8 gpe; - u8 id[0]; -} __attribute__((packed)); +typedef u8 efi_bool_t; -struct acpi_power_register { - u8 descriptor; - u16 length; - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 access_size; - u64 address; -} __attribute__((packed)); +typedef efi_status_t efi_get_wakeup_time_t(efi_bool_t *, efi_bool_t *, efi_time_t *); -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]; -}; +typedef efi_status_t efi_set_wakeup_time_t(efi_bool_t, efi_time_t *); -enum vc5_model { - IDT_VC5_5P49V5923 = 0, - IDT_VC5_5P49V5925 = 1, - IDT_VC5_5P49V5933 = 2, - IDT_VC5_5P49V5935 = 3, - IDT_VC6_5P49V60 = 4, - IDT_VC6_5P49V6901 = 5, - IDT_VC6_5P49V6965 = 6, - IDT_VC6_5P49V6975 = 7, -}; +typedef efi_status_t efi_set_virtual_address_map_t(unsigned long, unsigned long, u32, efi_memory_desc_t *); -struct vc5_chip_info { - const enum vc5_model model; - const unsigned int clk_fod_cnt; - const unsigned int clk_out_cnt; - const u32 flags; - const unsigned long vco_max; -}; +typedef u16 efi_char16_t; -struct vc5_driver_data; +typedef struct { + __u8 b[16]; +} guid_t; -struct vc5_hw_data { - struct clk_hw hw; - struct vc5_driver_data *vc5; - u32 div_int; - u32 div_frc; - unsigned int num; -}; +typedef guid_t efi_guid_t; -struct vc5_out_data { - struct clk_hw hw; - struct vc5_driver_data *vc5; - unsigned int num; - unsigned int clk_output_cfg0; - unsigned int clk_output_cfg0_mask; -}; +typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *); -struct vc5_driver_data { - struct i2c_client *client; - struct regmap *regmap; - const struct vc5_chip_info *chip_info; - struct clk *pin_xin; - struct clk *pin_clkin; - unsigned char clk_mux_ins; - struct clk_hw clk_mux; - struct clk_hw clk_mul; - struct clk_hw clk_pfd; - struct vc5_hw_data clk_pll; - struct vc5_hw_data clk_fod[4]; - struct vc5_out_data clk_out[5]; -}; +typedef efi_status_t efi_get_next_variable_t(unsigned long *, efi_char16_t *, efi_guid_t *); -enum clk_sel { - LOW_SPEED_IO_SEL = 0, - NON_IO_SEL = 1, - FAST_SEL = 2, - AUDIO_SEL = 3, - VIDEO_SEL = 4, - TPM_SEL = 5, - CKO1_SEL = 6, - CKO2_SEL = 7, - MISC_SEL = 8, - MAX_SEL = 9, -}; +typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *); -struct imx93_clk_root { - u32 clk; - char *name; - u32 off; - enum clk_sel sel; - unsigned long flags; -}; +typedef efi_status_t efi_get_next_high_mono_count_t(u32 *); -struct imx93_clk_ccgr { - u32 clk; - char *name; - char *parent_name; - u32 off; - unsigned long flags; - u32 *shared_count; -}; +typedef void efi_reset_system_t(int, efi_status_t, unsigned long, efi_char16_t *); -struct imx_fracn_gppll_rate_table; +typedef struct { + efi_guid_t guid; + u32 headersize; + u32 flags; + u32 imagesize; +} efi_capsule_header_t; -struct imx_fracn_gppll_clk { - const struct imx_fracn_gppll_rate_table *rate_table; - int rate_count; - int flags; -}; +typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, unsigned long, unsigned long); -struct imx_fracn_gppll_rate_table { - unsigned int rate; - unsigned int mfi; - unsigned int mfn; - unsigned int mfd; - unsigned int rdiv; - unsigned int odiv; -}; +typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, unsigned long, u64 *, int *); -struct mtk_mux_nb { - struct notifier_block nb; - const struct clk_ops *ops; - u8 bypass_index; - u8 original_index; -}; +typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *); -struct cpg_simple_notifier { - struct notifier_block nb; - void *reg; - u32 saved; -}; +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; -struct rpc_clock { - struct clk_divider div; - struct clk_gate gate; - struct cpg_simple_notifier csn; -}; +typedef union { + struct { + efi_table_hdr_t hdr; + 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_set_virtual_address_map_t *set_virtual_address_map; + void *convert_pointer; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; + efi_update_capsule_t *update_capsule; + efi_query_capsule_caps_t *query_capsule_caps; + efi_query_variable_info_t *query_variable_info; + }; + efi_runtime_services_32_t mixed_mode; +} efi_runtime_services_t; -struct rpcd2_clock { - struct clk_fixed_factor fixed; - struct clk_gate gate; -}; +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; -struct ccu_pll_nb { - struct notifier_block clk_nb; - struct ccu_common *common; - u32 enable; - u32 lock; -}; +union efi_simple_text_input_protocol; -struct sunxi_ccu { - const struct sunxi_ccu_desc *desc; - spinlock_t lock; - struct ccu_reset reset; -}; +typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t; -struct uniphier_clk_cpugear { - struct clk_hw hw; - struct regmap *regmap; - unsigned int regbase; - unsigned int mask; -}; +union efi_simple_text_output_protocol; -struct uniphier_clk_cpugear_data { - const char *parent_names[16]; - unsigned int num_parents; - unsigned int regbase; - unsigned int mask; -}; +typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t; -enum ch_command { - HIDMA_CH_DISABLE = 0, - HIDMA_CH_ENABLE = 1, - HIDMA_CH_SUSPEND = 2, - HIDMA_CH_RESET = 9, -}; +union efi_boot_services; -enum ch_state { - HIDMA_CH_DISABLED = 0, - HIDMA_CH_ENABLED = 1, - HIDMA_CH_RUNNING = 2, - HIDMA_CH_SUSPENDED = 3, - HIDMA_CH_STOPPED = 4, -}; +typedef union efi_boot_services efi_boot_services_t; -enum err_code { - HIDMA_EVRE_STATUS_COMPLETE = 1, - HIDMA_EVRE_STATUS_ERROR = 4, -}; +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 hidma_lldev; +typedef struct { + u16 scan_code; + efi_char16_t unicode_char; +} efi_input_key_t; -struct hidma_tre { - atomic_t allocated; - bool queued; - u16 status; - u32 idx; - u32 dma_sig; - const char *dev_name; - void (*callback)(void *); - void *data; - struct hidma_lldev *lldev; - u32 tre_local[9]; - u32 tre_index; - u32 int_flags; - u8 err_info; - u8 err_code; -}; +typedef void *efi_event_t; -struct hidma_lldev { - bool msi_support; - bool initialized; - u8 trch_state; - u8 evch_state; - u8 chidx; - u32 nr_tres; - spinlock_t lock; - struct hidma_tre *trepool; - struct device *dev; - void *trca; - void *evca; - struct hidma_tre **pending_tre_list; - atomic_t pending_tre_count; - void *tre_ring; - dma_addr_t tre_dma; - u32 tre_ring_size; - u32 tre_processed_off; - void *evre_ring; - dma_addr_t evre_dma; - u32 evre_ring_size; - u32 evre_processed_off; - u32 tre_write_offset; - struct tasklet_struct task; +union efi_simple_text_input_protocol { struct { - union { - struct __kfifo kfifo; - struct hidma_tre **type; - const struct hidma_tre **const_type; - char (*rectype)[0]; - struct hidma_tre **ptr; - struct hidma_tre * const *ptr_const; - }; - struct hidma_tre *buf[0]; - } handoff_fifo; + void *reset; + efi_status_t (*read_keystroke)(efi_simple_text_input_protocol_t *, efi_input_key_t *); + efi_event_t wait_for_key; + }; + struct { + u32 reset; + u32 read_keystroke; + u32 wait_for_key; + } mixed_mode; }; -struct imx93_power_domain { - struct generic_pm_domain genpd; - struct device *dev; - void *addr; - struct clk_bulk_data *clks; - int num_clks; - bool init_off; +union efi_simple_text_output_protocol { + struct { + void *reset; + efi_status_t (*output_string)(efi_simple_text_output_protocol_t *, efi_char16_t *); + void *test_string; + }; + struct { + u32 reset; + u32 output_string; + u32 test_string; + } mixed_mode; }; -struct rcar_gen4_sysc_area; +typedef u64 efi_physical_addr_t; -struct rcar_gen4_sysc_info { - const struct rcar_gen4_sysc_area *areas; - unsigned int num_areas; -}; +typedef void (*efi_event_notify_t)(efi_event_t, void *); -struct rcar_gen4_sysc_area { - const char *name; - u8 pdr; - s8 parent; - u8 flags; -}; +typedef enum { + EfiTimerCancel = 0, + EfiTimerPeriodic = 1, + EfiTimerRelative = 2, +} EFI_TIMER_DELAY; -struct rst_config { - unsigned int modemr; - int (*configure)(void *); - int (*set_rproc_boot_addr)(u64); -}; +typedef void *efi_handle_t; -struct tegra_cbb_ops; +struct efi_generic_dev_path; -struct tegra_cbb { - struct device *dev; - const struct tegra_cbb_ops *ops; - struct list_head node; -}; +typedef struct efi_generic_dev_path efi_device_path_protocol_t; -struct tegra_cbb_ops { - int (*debugfs_show)(struct tegra_cbb *, struct seq_file *, void *); - int (*interrupt_enable)(struct tegra_cbb *); - void (*error_enable)(struct tegra_cbb *); - void (*fault_enable)(struct tegra_cbb *); - void (*stall_enable)(struct tegra_cbb *); - void (*error_clear)(struct tegra_cbb *); - u32 (*get_status)(struct tegra_cbb *); +union efi_boot_services { + struct { + efi_table_hdr_t hdr; + void *raise_tpl; + void *restore_tpl; + efi_status_t (*allocate_pages)(int, int, unsigned long, efi_physical_addr_t *); + efi_status_t (*free_pages)(efi_physical_addr_t, unsigned long); + efi_status_t (*get_memory_map)(unsigned long *, void *, unsigned long *, unsigned long *, u32 *); + efi_status_t (*allocate_pool)(int, unsigned long, void **); + efi_status_t (*free_pool)(void *); + efi_status_t (*create_event)(u32, unsigned long, efi_event_notify_t, void *, efi_event_t *); + efi_status_t (*set_timer)(efi_event_t, EFI_TIMER_DELAY, u64); + efi_status_t (*wait_for_event)(unsigned long, efi_event_t *, unsigned long *); + void *signal_event; + efi_status_t (*close_event)(efi_event_t); + void *check_event; + void *install_protocol_interface; + void *reinstall_protocol_interface; + void *uninstall_protocol_interface; + efi_status_t (*handle_protocol)(efi_handle_t, efi_guid_t *, void **); + void *__reserved; + void *register_protocol_notify; + efi_status_t (*locate_handle)(int, efi_guid_t *, void *, unsigned long *, efi_handle_t *); + efi_status_t (*locate_device_path)(efi_guid_t *, efi_device_path_protocol_t **, efi_handle_t *); + efi_status_t (*install_configuration_table)(efi_guid_t *, void *); + efi_status_t (*load_image)(bool, efi_handle_t, efi_device_path_protocol_t *, void *, unsigned long, efi_handle_t *); + efi_status_t (*start_image)(efi_handle_t, unsigned long *, efi_char16_t **); + efi_status_t (*exit)(efi_handle_t, efi_status_t, unsigned long, efi_char16_t *); + efi_status_t (*unload_image)(efi_handle_t); + efi_status_t (*exit_boot_services)(efi_handle_t, unsigned long); + void *get_next_monotonic_count; + efi_status_t (*stall)(unsigned long); + void *set_watchdog_timer; + void *connect_controller; + efi_status_t (*disconnect_controller)(efi_handle_t, efi_handle_t, efi_handle_t); + void *open_protocol; + void *close_protocol; + void *open_protocol_information; + void *protocols_per_handle; + void *locate_handle_buffer; + efi_status_t (*locate_protocol)(efi_guid_t *, void *, void **); + efi_status_t (*install_multiple_protocol_interfaces)(efi_handle_t *, ...); + efi_status_t (*uninstall_multiple_protocol_interfaces)(efi_handle_t, ...); + void *calculate_crc32; + void (*copy_mem)(void *, const void *, unsigned long); + void (*set_mem)(void *, unsigned long, unsigned char); + void *create_event_ex; + }; + struct { + efi_table_hdr_t hdr; + u32 raise_tpl; + u32 restore_tpl; + u32 allocate_pages; + u32 free_pages; + u32 get_memory_map; + u32 allocate_pool; + u32 free_pool; + u32 create_event; + u32 set_timer; + u32 wait_for_event; + u32 signal_event; + u32 close_event; + u32 check_event; + u32 install_protocol_interface; + u32 reinstall_protocol_interface; + u32 uninstall_protocol_interface; + u32 handle_protocol; + u32 __reserved; + u32 register_protocol_notify; + u32 locate_handle; + u32 locate_device_path; + u32 install_configuration_table; + u32 load_image; + u32 start_image; + u32 exit; + u32 unload_image; + u32 exit_boot_services; + u32 get_next_monotonic_count; + u32 stall; + u32 set_watchdog_timer; + u32 connect_controller; + u32 disconnect_controller; + u32 open_protocol; + u32 close_protocol; + u32 open_protocol_information; + u32 protocols_per_handle; + u32 locate_handle_buffer; + u32 locate_protocol; + u32 install_multiple_protocol_interfaces; + u32 uninstall_multiple_protocol_interfaces; + u32 calculate_crc32; + u32 copy_mem; + u32 set_mem; + u32 create_event_ex; + } mixed_mode; }; -struct xen_bus_type { - char *root; - unsigned int levels; - int (*get_bus_id)(char *, const char *); - int (*probe)(struct xen_bus_type *, const char *, const char *); - bool (*otherend_will_handle)(struct xenbus_watch *, const char *, const char *); - void (*otherend_changed)(struct xenbus_watch *, const char *, const char *); - struct bus_type bus; +struct efi_generic_dev_path { + u8 type; + u8 sub_type; + u16 length; }; -struct xenbus_device_id; +typedef union { + struct { + u32 revision; + efi_handle_t parent_handle; + efi_system_table_t *system_table; + efi_handle_t device_handle; + void *file_path; + void *reserved; + u32 load_options_size; + void *load_options; + void *image_base; + __u64 image_size; + unsigned int image_code_type; + unsigned int image_data_type; + efi_status_t (*unload)(efi_handle_t); + }; + struct { + u32 revision; + u32 parent_handle; + u32 system_table; + u32 device_handle; + u32 file_path; + u32 reserved; + u32 load_options_size; + u32 load_options; + u32 image_base; + __u64 image_size; + u32 image_code_type; + u32 image_data_type; + u32 unload; + } mixed_mode; +} efi_loaded_image_t; -struct xenbus_driver { - const char *name; - const struct xenbus_device_id *ids; - bool allow_rebind; - bool not_essential; - int (*probe)(struct xenbus_device *, const struct xenbus_device_id *); - void (*otherend_changed)(struct xenbus_device *, enum xenbus_state); - void (*remove)(struct xenbus_device *); - int (*suspend)(struct xenbus_device *); - int (*resume)(struct xenbus_device *); - int (*uevent)(const struct xenbus_device *, struct kobj_uevent_env *); - struct device_driver driver; - int (*read_otherend_details)(struct xenbus_device *); - int (*is_ready)(struct xenbus_device *); - void (*reclaim_memory)(struct xenbus_device *); +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)); + +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 xenbus_device_id { - char devicetype[32]; +struct efi_boot_memmap; + +struct exit_boot_struct { + struct efi_boot_memmap *boot_memmap; + efi_memory_desc_t *runtime_map; + int runtime_entry_count; + void *new_fdt_addr; }; -struct regulator_consumer_supply { - const char *dev_name; - const char *supply; +struct efi_boot_memmap { + unsigned long map_size; + unsigned long desc_size; + u32 desc_ver; + unsigned long map_key; + unsigned long buff_size; + efi_memory_desc_t map[0]; }; -enum fan53555_vendor { - FAN53526_VENDOR_FAIRCHILD = 0, - FAN53555_VENDOR_FAIRCHILD = 1, - FAN53555_VENDOR_ROCKCHIP = 2, - RK8602_VENDOR_ROCKCHIP = 3, - FAN53555_VENDOR_SILERGY = 4, - FAN53526_VENDOR_TCS = 5, +typedef efi_status_t (*efi_exit_boot_map_processing)(struct efi_boot_memmap *, void *); + +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); + +typedef int initcall_entry_t; + +struct trace_event_raw_initcall_level { + struct trace_entry ent; + u32 __data_loc_level; + char __data[0]; }; -enum { - FAN53555_VSEL_ID_0 = 0, - FAN53555_VSEL_ID_1 = 1, +struct trace_event_raw_initcall_start { + struct trace_entry ent; + initcall_t func; + char __data[0]; }; -enum { - FAN53526_CHIP_ID_01 = 1, +struct trace_event_raw_initcall_finish { + struct trace_entry ent; + initcall_t func; + int ret; + char __data[0]; }; -enum { - FAN53526_CHIP_REV_08 = 8, +struct blacklist_entry { + struct list_head next; + char *buf; }; -enum { - FAN53555_CHIP_ID_00 = 0, - FAN53555_CHIP_ID_01 = 1, - FAN53555_CHIP_ID_02 = 2, - FAN53555_CHIP_ID_03 = 3, - FAN53555_CHIP_ID_04 = 4, - FAN53555_CHIP_ID_05 = 5, - FAN53555_CHIP_ID_08 = 8, +struct trace_event_data_offsets_initcall_level { + u32 level; }; -enum { - FAN53555_CHIP_REV_00 = 3, - FAN53555_CHIP_REV_13 = 15, +struct trace_event_data_offsets_initcall_start {}; + +struct trace_event_data_offsets_initcall_finish {}; + +struct kvm_s390_adapter_int { + u64 ind_addr; + u64 summary_addr; + u64 ind_offset; + u32 summary_offset; + u32 adapter_id; }; -enum { - RK8600_CHIP_ID_08 = 8, +struct kvm_hv_sint { + u32 vcpu; + u32 sint; }; -enum { - RK8602_CHIP_ID_10 = 10, +struct kvm_xen_evtchn { + u32 port; + u32 vcpu_id; + int vcpu_idx; + u32 priority; }; -enum { - SILERGY_SYR82X = 8, - SILERGY_SYR83X = 9, +struct kvm_kernel_irq_routing_entry { + u32 gsi; + u32 type; + int (*set)(struct kvm_kernel_irq_routing_entry *, struct kvm *, int, int, bool); + union { + struct { + unsigned int irqchip; + unsigned int pin; + } irqchip; + struct { + u32 address_lo; + u32 address_hi; + u32 data; + u32 flags; + u32 devid; + } msi; + struct kvm_s390_adapter_int adapter; + struct kvm_hv_sint hv_sint; + struct kvm_xen_evtchn xen_evtchn; + }; + struct hlist_node link; +}; + +struct kvm_msi { + __u32 address_lo; + __u32 address_hi; + __u32 data; + __u32 flags; + __u32 devid; + __u8 pad[12]; +}; + +struct its_vlpi_map { + struct its_vm *vm; + struct its_vpe *vpe; + u32 vintid; + u8 properties; + bool db_enabled; +}; + +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 { - TCS4525_CHIP_ID_12 = 12, + KERNEL_PARAM_OPS_FL_NOARG = 1, }; -struct fan53555_platform_data { - struct regulator_init_data *regulator; - unsigned int slew_rate; - unsigned int sleep_vsel_id; +enum { + KERNEL_PARAM_FL_UNSAFE = 1, + KERNEL_PARAM_FL_HWPARAM = 2, }; -struct fan53555_device_info { - enum fan53555_vendor vendor; - struct device *dev; - struct regulator_desc desc; - struct regulator_init_data *regulator; - int chip_id; - int chip_rev; - unsigned int vol_reg; - unsigned int sleep_reg; - unsigned int en_reg; - unsigned int sleep_en_reg; - unsigned int vsel_min; - unsigned int vsel_step; - unsigned int vsel_count; - unsigned int mode_reg; - unsigned int mode_mask; - unsigned int sleep_vol_cache; - unsigned int slew_reg; - unsigned int slew_mask; - const unsigned int *ramp_delay_table; - unsigned int n_ramp_values; - unsigned int slew_rate; +struct kmalloced_param { + struct list_head list; + char val[0]; }; -struct scmi_driver { - const char *name; - int (*probe)(struct scmi_device *); - void (*remove)(struct scmi_device *); - const struct scmi_device_id *id_table; - struct device_driver driver; +struct cfs_rq { + struct load_weight load; + unsigned int nr_running; + unsigned int h_nr_running; + unsigned int idle_nr_running; + unsigned int idle_h_nr_running; + s64 avg_vruntime; + u64 avg_load; + u64 exec_clock; + u64 min_vruntime; + struct rb_root_cached tasks_timeline; + struct sched_entity *curr; + struct sched_entity *next; + 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; + u64 last_update_tg_load_avg; + unsigned long tg_load_avg_contrib; + long propagate; + long prop_runnable_sum; + unsigned long h_load; + u64 last_h_load_update; + struct sched_entity *h_load_next; + struct rq *rq; + int on_list; + struct list_head leaf_cfs_rq_list; + struct task_group *tg; + int idle; + long: 64; + long: 64; + long: 64; }; -struct scmi_reset_proto_ops { - int (*num_domains_get)(const struct scmi_protocol_handle *); - const char * (*name_get)(const struct scmi_protocol_handle *, u32); - int (*latency_get)(const struct scmi_protocol_handle *, u32); - int (*reset)(const struct scmi_protocol_handle *, u32); - int (*assert)(const struct scmi_protocol_handle *, u32); - int (*deassert)(const struct scmi_protocol_handle *, u32); +struct rt_prio_array { + unsigned long bitmap[2]; + struct list_head queue[100]; }; -struct scmi_reset_data { - struct reset_controller_dev rcdev; - const struct scmi_protocol_handle *ph; +struct rt_rq { + struct rt_prio_array active; + unsigned int rt_nr_running; + unsigned int rr_nr_running; + struct { + int curr; + int next; + } highest_prio; + int overloaded; + struct plist_head pushable_tasks; + int rt_queued; + int rt_throttled; + u64 rt_time; + u64 rt_runtime; + raw_spinlock_t rt_runtime_lock; }; -struct cdns_platform_data { - u32 quirks; +struct dl_rq { + struct rb_root_cached root; + unsigned int dl_nr_running; + struct { + u64 curr; + u64 next; + } earliest_dl; + int overloaded; + struct rb_root_cached pushable_dl_tasks_root; + u64 running_bw; + u64 this_bw; + u64 extra_bw; + u64 max_bw; + u64 bw_ratio; }; -struct cdns_uart { - struct uart_port *port; - struct clk *uartclk; - struct clk *pclk; - struct uart_driver *cdns_uart_driver; - unsigned int baud; - struct notifier_block clk_rate_change_nb; - u32 quirks; - bool cts_override; +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 clk_notifier_data { - struct clk *clk; - unsigned long old_rate; - unsigned long new_rate; +struct root_domain; + +struct sched_domain; + +struct balance_callback; + +struct cpuidle_state; + +struct rq { + raw_spinlock_t __lock; + unsigned int nr_running; + unsigned int nr_numa_running; + unsigned int nr_preferred_running; + unsigned int numa_migrate_on; + unsigned long last_blocked_load_update_tick; + unsigned int has_blocked_load; + long: 64; + long: 64; + 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; + 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; + 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; + long: 64; + struct sched_avg avg_rt; + struct sched_avg avg_dl; + struct sched_avg avg_irq; + struct sched_avg avg_thermal; + u64 idle_stamp; + u64 avg_idle; + u64 max_idle_balance_cost; + struct rcuwait hotplug_wait; + u64 prev_irq_time; + u64 prev_steal_time; + unsigned long calc_load_update; + long calc_load_active; + call_single_data_t hrtick_csd; + struct hrtimer hrtick_timer; + ktime_t hrtick_time; + struct cpuidle_state *idle_state; + unsigned int nr_pinned; + unsigned int push_busy; + struct cpu_stop_work push_work; + cpumask_var_t scratch_mask; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 cfs_bandwidth {}; + +struct task_group { + struct cgroup_subsys_state css; + struct sched_entity **se; + struct cfs_rq **cfs_rq; + unsigned long shares; + int idle; + long: 64; + long: 64; + long: 64; + atomic_long_t load_avg; + struct callback_head rcu; struct list_head list; - struct kref ref; - struct completion cleanup_done; - struct completion dying; + struct task_group *parent; + struct list_head siblings; + struct list_head children; + struct autogroup *autogroup; + struct cfs_bandwidth cfs_bandwidth; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct npcm_rng { - void *base; - struct hwrng rng; - u32 clkp; +struct autogroup { + struct kref kref; + struct task_group *tg; + struct rw_semaphore lock; + unsigned long id; + int nice; }; -struct of_phandle_iterator { - const char *cells_name; - int cell_count; - const struct device_node *parent; - const __be32 *list_end; - const __be32 *phandle_end; - const __be32 *cur; - uint32_t cur_count; - phandle phandle; - struct device_node *node; +struct dl_bw { + raw_spinlock_t lock; + u64 bw; + u64 total_bw; }; -struct of_pci_iommu_alias_info { - struct device *dev; - struct device_node *np; +struct cpudl_item; + +struct cpudl { + raw_spinlock_t lock; + int size; + cpumask_var_t free_cpus; + struct cpudl_item *elements; }; -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; +struct cpupri_vec { + atomic_t count; + cpumask_var_t mask; }; -struct simple_mfd_data { - const struct regmap_config *regmap_config; - const struct mfd_cell *mfd_cell; - size_t mfd_cell_size; +struct cpupri { + struct cpupri_vec pri_to_cpu[101]; + int *cpu_to_pri; }; -struct mfd_cell_acpi_match; +struct perf_domain; -struct mfd_cell { - const char *name; - int id; +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 perf_domain { + struct em_perf_domain *em_pd; + struct perf_domain *next; + struct callback_head rcu; +}; + +struct sched_group; + +struct sched_domain_shared; + +struct sched_domain { + struct sched_domain __attribute__((btf_type_tag("rcu"))) *parent; + struct sched_domain __attribute__((btf_type_tag("rcu"))) *child; + struct sched_group *groups; + unsigned long min_interval; + unsigned long max_interval; + unsigned int busy_factor; + unsigned int imbalance_pct; + unsigned int cache_nice_tries; + unsigned int imb_numa_nr; + int nohz_idle; + int flags; int level; - int (*suspend)(struct platform_device *); - int (*resume)(struct platform_device *); - void *platform_data; - size_t pdata_size; - const struct mfd_cell_acpi_match *acpi_match; - const struct software_node *swnode; - const char *of_compatible; - const u64 of_reg; - bool use_of_reg; - int num_resources; - const struct resource *resources; - bool ignore_resource_conflicts; - bool pm_runtime_no_callbacks; - int num_parent_supplies; - const char * const *parent_supplies; + 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; + union { + void *private; + struct callback_head rcu; + }; + struct sched_domain_shared *shared; + unsigned int span_weight; + unsigned long span[0]; }; -struct mfd_cell_acpi_match { - const char *pnpid; - const unsigned long long adr; +struct sched_group_capacity; + +struct sched_group { + struct sched_group *next; + atomic_t ref; + unsigned int group_weight; + unsigned int cores; + struct sched_group_capacity *sgc; + int asym_prefer_cpu; + int flags; + unsigned long cpumask[0]; }; -enum scsi_host_guard_type { - SHOST_DIX_GUARD_CRC = 1, - SHOST_DIX_GUARD_IP = 2, +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]; }; -enum t10_dif_type { - T10_PI_TYPE0_PROTECTION = 0, - T10_PI_TYPE1_PROTECTION = 1, - T10_PI_TYPE2_PROTECTION = 2, - T10_PI_TYPE3_PROTECTION = 3, +struct sched_domain_shared { + atomic_t ref; + atomic_t nr_busy_cpus; + int has_idle_cores; + int nr_idle_scan; }; -enum blk_integrity_flags { - BLK_INTEGRITY_VERIFY = 1, - BLK_INTEGRITY_GENERATE = 2, - BLK_INTEGRITY_DEVICE_CAPABLE = 4, - BLK_INTEGRITY_IP_CHECKSUM = 8, +struct balance_callback { + struct balance_callback *next; + void (*func)(struct rq *); }; -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 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 opal_dev; +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 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 cpuidle_state_kobj; + +struct cpuidle_driver_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 xgene_ahci_version { - XGENE_AHCI_V1 = 1, - XGENE_AHCI_V2 = 2, +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 pin_cookie {}; + +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 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 *); +}; + +enum numa_faults_stats { + NUMA_MEM = 0, + NUMA_CPU = 1, + NUMA_MEMBUF = 2, + NUMA_CPUBUF = 3, }; enum { - LIBATA_MAX_PRD = 128, - LIBATA_DUMB_MAX_PRD = 64, - ATA_DEF_QUEUE = 1, - ATA_MAX_QUEUE = 32, - ATA_TAG_INTERNAL = 32, - ATA_SHORT_PAUSE = 16, - ATAPI_MAX_DRAIN = 16384, - ATA_ALL_DEVICES = 3, - ATA_SHT_EMULATED = 1, - ATA_SHT_THIS_ID = -1, - ATA_TFLAG_LBA48 = 1, - ATA_TFLAG_ISADDR = 2, - ATA_TFLAG_DEVICE = 4, - ATA_TFLAG_WRITE = 8, - ATA_TFLAG_LBA = 16, - ATA_TFLAG_FUA = 32, - ATA_TFLAG_POLLING = 64, - ATA_DFLAG_LBA = 1, - ATA_DFLAG_LBA48 = 2, - ATA_DFLAG_CDB_INTR = 4, - ATA_DFLAG_NCQ = 8, - ATA_DFLAG_FLUSH_EXT = 16, - ATA_DFLAG_ACPI_PENDING = 32, - ATA_DFLAG_ACPI_FAILED = 64, - ATA_DFLAG_AN = 128, - ATA_DFLAG_TRUSTED = 256, - ATA_DFLAG_FUA = 512, - ATA_DFLAG_DMADIR = 1024, - ATA_DFLAG_NCQ_SEND_RECV = 2048, - ATA_DFLAG_NCQ_PRIO = 4096, - ATA_DFLAG_CDL = 8192, - ATA_DFLAG_CFG_MASK = 16383, - ATA_DFLAG_PIO = 16384, - ATA_DFLAG_NCQ_OFF = 32768, - ATA_DFLAG_SLEEPING = 65536, - ATA_DFLAG_DUBIOUS_XFER = 131072, - ATA_DFLAG_NO_UNLOAD = 262144, - ATA_DFLAG_UNLOCK_HPA = 524288, - ATA_DFLAG_INIT_MASK = 1048575, - ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576, - ATA_DFLAG_CDL_ENABLED = 2097152, - ATA_DFLAG_DETACH = 16777216, - ATA_DFLAG_DETACHED = 33554432, - ATA_DFLAG_DA = 67108864, - ATA_DFLAG_DEVSLP = 134217728, - ATA_DFLAG_ACPI_DISABLED = 268435456, - ATA_DFLAG_D_SENSE = 536870912, - ATA_DFLAG_ZAC = 1073741824, - ATA_DFLAG_FEATURES_MASK = 201341696, - ATA_DEV_UNKNOWN = 0, - ATA_DEV_ATA = 1, - ATA_DEV_ATA_UNSUP = 2, - ATA_DEV_ATAPI = 3, - ATA_DEV_ATAPI_UNSUP = 4, - ATA_DEV_PMP = 5, - ATA_DEV_PMP_UNSUP = 6, - ATA_DEV_SEMB = 7, - ATA_DEV_SEMB_UNSUP = 8, - ATA_DEV_ZAC = 9, - ATA_DEV_ZAC_UNSUP = 10, - ATA_DEV_NONE = 11, - ATA_LFLAG_NO_HRST = 2, - ATA_LFLAG_NO_SRST = 4, - ATA_LFLAG_ASSUME_ATA = 8, - ATA_LFLAG_ASSUME_SEMB = 16, - ATA_LFLAG_ASSUME_CLASS = 24, - ATA_LFLAG_NO_RETRY = 32, - ATA_LFLAG_DISABLED = 64, - ATA_LFLAG_SW_ACTIVITY = 128, - ATA_LFLAG_NO_LPM = 256, - ATA_LFLAG_RST_ONCE = 512, - ATA_LFLAG_CHANGED = 1024, - ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, - ATA_FLAG_SLAVE_POSS = 1, - ATA_FLAG_SATA = 2, - ATA_FLAG_NO_LPM = 4, - ATA_FLAG_NO_LOG_PAGE = 32, - ATA_FLAG_NO_ATAPI = 64, - ATA_FLAG_PIO_DMA = 128, - ATA_FLAG_PIO_LBA48 = 256, - ATA_FLAG_PIO_POLLING = 512, - ATA_FLAG_NCQ = 1024, - ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, - ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, - ATA_FLAG_DEBUGMSG = 8192, - ATA_FLAG_FPDMA_AA = 16384, - ATA_FLAG_IGN_SIMPLEX = 32768, - ATA_FLAG_NO_IORDY = 65536, - ATA_FLAG_ACPI_SATA = 131072, - ATA_FLAG_AN = 262144, - ATA_FLAG_PMP = 524288, - ATA_FLAG_FPDMA_AUX = 1048576, - ATA_FLAG_EM = 2097152, - ATA_FLAG_SW_ACTIVITY = 4194304, - ATA_FLAG_NO_DIPM = 8388608, - ATA_FLAG_SAS_HOST = 16777216, - ATA_PFLAG_EH_PENDING = 1, - ATA_PFLAG_EH_IN_PROGRESS = 2, - ATA_PFLAG_FROZEN = 4, - ATA_PFLAG_RECOVERED = 8, - ATA_PFLAG_LOADING = 16, - ATA_PFLAG_SCSI_HOTPLUG = 64, - ATA_PFLAG_INITIALIZING = 128, - ATA_PFLAG_RESETTING = 256, - ATA_PFLAG_UNLOADING = 512, - ATA_PFLAG_UNLOADED = 1024, - ATA_PFLAG_SUSPENDED = 131072, - ATA_PFLAG_PM_PENDING = 262144, - ATA_PFLAG_INIT_GTM_VALID = 524288, - ATA_PFLAG_PIO32 = 1048576, - ATA_PFLAG_PIO32CHANGE = 2097152, - ATA_PFLAG_EXTERNAL = 4194304, - ATA_QCFLAG_ACTIVE = 1, - ATA_QCFLAG_DMAMAP = 2, - ATA_QCFLAG_RTF_FILLED = 4, - ATA_QCFLAG_IO = 8, - ATA_QCFLAG_RESULT_TF = 16, - ATA_QCFLAG_CLEAR_EXCL = 32, - ATA_QCFLAG_QUIET = 64, - ATA_QCFLAG_RETRY = 128, - ATA_QCFLAG_HAS_CDL = 256, - ATA_QCFLAG_EH = 65536, - ATA_QCFLAG_SENSE_VALID = 131072, - ATA_QCFLAG_EH_SCHEDULED = 262144, - ATA_QCFLAG_EH_SUCCESS_CMD = 524288, - ATA_HOST_SIMPLEX = 1, - ATA_HOST_STARTED = 2, - ATA_HOST_PARALLEL_SCAN = 4, - ATA_HOST_IGNORE_ATA = 8, - ATA_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_GET_SUCCESS_SENSE = 64, - ATA_EH_PERDEV_MASK = 97, - 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, + SD_BALANCE_NEWIDLE = 1, + SD_BALANCE_EXEC = 2, + SD_BALANCE_FORK = 4, + SD_BALANCE_WAKE = 8, + SD_WAKE_AFFINE = 16, + SD_ASYM_CPUCAPACITY = 32, + SD_ASYM_CPUCAPACITY_FULL = 64, + SD_SHARE_CPUCAPACITY = 128, + SD_CLUSTER = 256, + SD_SHARE_PKG_RESOURCES = 512, + SD_SERIALIZE = 1024, + SD_ASYM_PACKING = 2048, + SD_PREFER_SIBLING = 4096, + SD_OVERLAP = 8192, + SD_NUMA = 16384, +}; + +enum sched_tunable_scaling { + SCHED_TUNABLESCALING_NONE = 0, + SCHED_TUNABLESCALING_LOG = 1, + SCHED_TUNABLESCALING_LINEAR = 2, + SCHED_TUNABLESCALING_END = 3, +}; + +enum numa_topology_type { + NUMA_DIRECT = 0, + NUMA_GLUELESS_MESH = 1, + NUMA_BACKPLANE = 2, }; enum { - ATA_MAX_DEVICES = 2, - ATA_MAX_PRD = 256, - ATA_SECT_SIZE = 512, - ATA_MAX_SECTORS_128 = 128, - ATA_MAX_SECTORS = 256, - ATA_MAX_SECTORS_1024 = 1024, - ATA_MAX_SECTORS_LBA48 = 65535, - ATA_MAX_SECTORS_TAPE = 65535, - ATA_MAX_TRIM_RNUM = 64, - ATA_ID_WORDS = 256, - ATA_ID_CONFIG = 0, - ATA_ID_CYLS = 1, - ATA_ID_HEADS = 3, - ATA_ID_SECTORS = 6, - ATA_ID_SERNO = 10, - ATA_ID_BUF_SIZE = 21, - ATA_ID_FW_REV = 23, - ATA_ID_PROD = 27, - ATA_ID_MAX_MULTSECT = 47, - ATA_ID_DWORD_IO = 48, - ATA_ID_TRUSTED = 48, - ATA_ID_CAPABILITY = 49, - ATA_ID_OLD_PIO_MODES = 51, - ATA_ID_OLD_DMA_MODES = 52, - ATA_ID_FIELD_VALID = 53, - ATA_ID_CUR_CYLS = 54, - ATA_ID_CUR_HEADS = 55, - ATA_ID_CUR_SECTORS = 56, - ATA_ID_MULTSECT = 59, - ATA_ID_LBA_CAPACITY = 60, - ATA_ID_SWDMA_MODES = 62, - ATA_ID_MWDMA_MODES = 63, - ATA_ID_PIO_MODES = 64, - ATA_ID_EIDE_DMA_MIN = 65, - ATA_ID_EIDE_DMA_TIME = 66, - ATA_ID_EIDE_PIO = 67, - ATA_ID_EIDE_PIO_IORDY = 68, - ATA_ID_ADDITIONAL_SUPP = 69, - ATA_ID_QUEUE_DEPTH = 75, - ATA_ID_SATA_CAPABILITY = 76, - ATA_ID_SATA_CAPABILITY_2 = 77, - ATA_ID_FEATURE_SUPP = 78, - ATA_ID_MAJOR_VER = 80, - ATA_ID_COMMAND_SET_1 = 82, - ATA_ID_COMMAND_SET_2 = 83, - ATA_ID_CFSSE = 84, - ATA_ID_CFS_ENABLE_1 = 85, - ATA_ID_CFS_ENABLE_2 = 86, - ATA_ID_CSF_DEFAULT = 87, - ATA_ID_UDMA_MODES = 88, - ATA_ID_HW_CONFIG = 93, - ATA_ID_SPG = 98, - ATA_ID_LBA_CAPACITY_2 = 100, - ATA_ID_SECTOR_SIZE = 106, - ATA_ID_WWN = 108, - ATA_ID_LOGICAL_SECTOR_SIZE = 117, - ATA_ID_COMMAND_SET_3 = 119, - ATA_ID_COMMAND_SET_4 = 120, - ATA_ID_LAST_LUN = 126, - ATA_ID_DLF = 128, - ATA_ID_CSFO = 129, - ATA_ID_CFA_POWER = 160, - ATA_ID_CFA_KEY_MGMT = 162, - ATA_ID_CFA_MODES = 163, - ATA_ID_DATA_SET_MGMT = 169, - ATA_ID_SCT_CMD_XPORT = 206, - ATA_ID_ROT_SPEED = 217, - ATA_ID_PIO4 = 2, - ATA_ID_SERNO_LEN = 20, - ATA_ID_FW_REV_LEN = 8, - ATA_ID_PROD_LEN = 40, - ATA_ID_WWN_LEN = 8, - ATA_PCI_CTL_OFS = 2, - ATA_PIO0 = 1, - ATA_PIO1 = 3, - ATA_PIO2 = 7, - ATA_PIO3 = 15, - ATA_PIO4 = 31, - ATA_PIO5 = 63, - ATA_PIO6 = 127, - ATA_PIO4_ONLY = 16, - ATA_SWDMA0 = 1, - ATA_SWDMA1 = 3, - ATA_SWDMA2 = 7, - ATA_SWDMA2_ONLY = 4, - ATA_MWDMA0 = 1, - ATA_MWDMA1 = 3, - ATA_MWDMA2 = 7, - ATA_MWDMA3 = 15, - ATA_MWDMA4 = 31, - ATA_MWDMA12_ONLY = 6, - ATA_MWDMA2_ONLY = 4, - ATA_UDMA0 = 1, - ATA_UDMA1 = 3, - ATA_UDMA2 = 7, - ATA_UDMA3 = 15, - ATA_UDMA4 = 31, - ATA_UDMA5 = 63, - ATA_UDMA6 = 127, - ATA_UDMA7 = 255, - ATA_UDMA24_ONLY = 20, - ATA_UDMA_MASK_40C = 7, - ATA_PRD_SZ = 8, - ATA_PRD_TBL_SZ = 2048, - ATA_PRD_EOT = -2147483648, - ATA_DMA_TABLE_OFS = 4, - ATA_DMA_STATUS = 2, - ATA_DMA_CMD = 0, - ATA_DMA_WR = 8, - ATA_DMA_START = 1, - ATA_DMA_INTR = 4, - ATA_DMA_ERR = 2, - ATA_DMA_ACTIVE = 1, - ATA_HOB = 128, - ATA_NIEN = 2, - ATA_LBA = 64, - ATA_DEV1 = 16, - ATA_DEVICE_OBS = 160, - ATA_DEVCTL_OBS = 8, - ATA_BUSY = 128, - ATA_DRDY = 64, - ATA_DF = 32, - ATA_DSC = 16, - ATA_DRQ = 8, - ATA_CORR = 4, - ATA_SENSE = 2, - ATA_ERR = 1, - ATA_SRST = 4, - ATA_ICRC = 128, - ATA_BBK = 128, - ATA_UNC = 64, - ATA_MC = 32, - ATA_IDNF = 16, - ATA_MCR = 8, - ATA_ABORTED = 4, - ATA_TRK0NF = 2, - ATA_AMNF = 1, - ATAPI_LFS = 240, - ATAPI_EOM = 2, - ATAPI_ILI = 1, - ATAPI_IO = 2, - ATAPI_COD = 1, - ATA_REG_DATA = 0, - ATA_REG_ERR = 1, - ATA_REG_NSECT = 2, - ATA_REG_LBAL = 3, - ATA_REG_LBAM = 4, - ATA_REG_LBAH = 5, - ATA_REG_DEVICE = 6, - ATA_REG_STATUS = 7, - ATA_REG_FEATURE = 1, - ATA_REG_CMD = 7, - ATA_REG_BYTEL = 4, - ATA_REG_BYTEH = 5, - ATA_REG_DEVSEL = 6, - ATA_REG_IRQ = 2, - ATA_CMD_DEV_RESET = 8, - ATA_CMD_CHK_POWER = 229, - ATA_CMD_STANDBY = 226, - ATA_CMD_IDLE = 227, - ATA_CMD_EDD = 144, - ATA_CMD_DOWNLOAD_MICRO = 146, - ATA_CMD_DOWNLOAD_MICRO_DMA = 147, - ATA_CMD_NOP = 0, - ATA_CMD_FLUSH = 231, - ATA_CMD_FLUSH_EXT = 234, - ATA_CMD_ID_ATA = 236, - ATA_CMD_ID_ATAPI = 161, - ATA_CMD_SERVICE = 162, - ATA_CMD_READ = 200, - ATA_CMD_READ_EXT = 37, - ATA_CMD_READ_QUEUED = 38, - ATA_CMD_READ_STREAM_EXT = 43, - ATA_CMD_READ_STREAM_DMA_EXT = 42, - ATA_CMD_WRITE = 202, - ATA_CMD_WRITE_EXT = 53, - ATA_CMD_WRITE_QUEUED = 54, - ATA_CMD_WRITE_STREAM_EXT = 59, - ATA_CMD_WRITE_STREAM_DMA_EXT = 58, - ATA_CMD_WRITE_FUA_EXT = 61, - ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, - ATA_CMD_FPDMA_READ = 96, - ATA_CMD_FPDMA_WRITE = 97, - ATA_CMD_NCQ_NON_DATA = 99, - ATA_CMD_FPDMA_SEND = 100, - ATA_CMD_FPDMA_RECV = 101, - ATA_CMD_PIO_READ = 32, - ATA_CMD_PIO_READ_EXT = 36, - ATA_CMD_PIO_WRITE = 48, - ATA_CMD_PIO_WRITE_EXT = 52, - ATA_CMD_READ_MULTI = 196, - ATA_CMD_READ_MULTI_EXT = 41, - ATA_CMD_WRITE_MULTI = 197, - ATA_CMD_WRITE_MULTI_EXT = 57, - ATA_CMD_WRITE_MULTI_FUA_EXT = 206, - ATA_CMD_SET_FEATURES = 239, - ATA_CMD_SET_MULTI = 198, - ATA_CMD_PACKET = 160, - ATA_CMD_VERIFY = 64, - ATA_CMD_VERIFY_EXT = 66, - ATA_CMD_WRITE_UNCORR_EXT = 69, - ATA_CMD_STANDBYNOW1 = 224, - ATA_CMD_IDLEIMMEDIATE = 225, - ATA_CMD_SLEEP = 230, - ATA_CMD_INIT_DEV_PARAMS = 145, - ATA_CMD_READ_NATIVE_MAX = 248, - ATA_CMD_READ_NATIVE_MAX_EXT = 39, - ATA_CMD_SET_MAX = 249, - ATA_CMD_SET_MAX_EXT = 55, - ATA_CMD_READ_LOG_EXT = 47, - ATA_CMD_WRITE_LOG_EXT = 63, - ATA_CMD_READ_LOG_DMA_EXT = 71, - ATA_CMD_WRITE_LOG_DMA_EXT = 87, - ATA_CMD_TRUSTED_NONDATA = 91, - ATA_CMD_TRUSTED_RCV = 92, - ATA_CMD_TRUSTED_RCV_DMA = 93, - ATA_CMD_TRUSTED_SND = 94, - ATA_CMD_TRUSTED_SND_DMA = 95, - ATA_CMD_PMP_READ = 228, - ATA_CMD_PMP_READ_DMA = 233, - ATA_CMD_PMP_WRITE = 232, - ATA_CMD_PMP_WRITE_DMA = 235, - ATA_CMD_CONF_OVERLAY = 177, - ATA_CMD_SEC_SET_PASS = 241, - ATA_CMD_SEC_UNLOCK = 242, - ATA_CMD_SEC_ERASE_PREP = 243, - ATA_CMD_SEC_ERASE_UNIT = 244, - ATA_CMD_SEC_FREEZE_LOCK = 245, - ATA_CMD_SEC_DISABLE_PASS = 246, - ATA_CMD_CONFIG_STREAM = 81, - ATA_CMD_SMART = 176, - ATA_CMD_MEDIA_LOCK = 222, - ATA_CMD_MEDIA_UNLOCK = 223, - ATA_CMD_DSM = 6, - ATA_CMD_CHK_MED_CRD_TYP = 209, - ATA_CMD_CFA_REQ_EXT_ERR = 3, - ATA_CMD_CFA_WRITE_NE = 56, - ATA_CMD_CFA_TRANS_SECT = 135, - ATA_CMD_CFA_ERASE = 192, - ATA_CMD_CFA_WRITE_MULT_NE = 205, - ATA_CMD_REQ_SENSE_DATA = 11, - ATA_CMD_SANITIZE_DEVICE = 180, - ATA_CMD_ZAC_MGMT_IN = 74, - ATA_CMD_ZAC_MGMT_OUT = 159, - ATA_CMD_RESTORE = 16, - ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, - ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, - ATA_SUBCMD_FPDMA_SEND_DSM = 0, - ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, - ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, - ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, - ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, - ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, - ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, - ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, - ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, - ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, - ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, - ATA_LOG_DIRECTORY = 0, - ATA_LOG_SATA_NCQ = 16, - ATA_LOG_NCQ_NON_DATA = 18, - ATA_LOG_NCQ_SEND_RECV = 19, - ATA_LOG_CDL = 24, - ATA_LOG_CDL_SIZE = 512, - ATA_LOG_IDENTIFY_DEVICE = 48, - ATA_LOG_SENSE_NCQ = 15, - ATA_LOG_SENSE_NCQ_SIZE = 1024, - ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, - ATA_LOG_SUPPORTED_CAPABILITIES = 3, - ATA_LOG_CURRENT_SETTINGS = 4, - ATA_LOG_SECURITY = 6, - ATA_LOG_SATA_SETTINGS = 8, - ATA_LOG_ZONED_INFORMATION = 9, - ATA_LOG_DEVSLP_OFFSET = 48, - ATA_LOG_DEVSLP_SIZE = 8, - ATA_LOG_DEVSLP_MDAT = 0, - ATA_LOG_DEVSLP_MDAT_MASK = 31, - ATA_LOG_DEVSLP_DETO = 1, - ATA_LOG_DEVSLP_VALID = 7, - ATA_LOG_DEVSLP_VALID_MASK = 128, - ATA_LOG_NCQ_PRIO_OFFSET = 9, - ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, - ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, - ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, - ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, - ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, - ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, - ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, - ATA_LOG_NCQ_SEND_RECV_SIZE = 20, - ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, - ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, - ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, - ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, - ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, - ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, - ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, - ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, - ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, - ATA_LOG_NCQ_NON_DATA_SIZE = 64, - ATA_CMD_READ_LONG = 34, - ATA_CMD_READ_LONG_ONCE = 35, - ATA_CMD_WRITE_LONG = 50, - ATA_CMD_WRITE_LONG_ONCE = 51, - SETFEATURES_XFER = 3, - XFER_UDMA_7 = 71, - XFER_UDMA_6 = 70, - XFER_UDMA_5 = 69, - XFER_UDMA_4 = 68, - XFER_UDMA_3 = 67, - XFER_UDMA_2 = 66, - XFER_UDMA_1 = 65, - XFER_UDMA_0 = 64, - XFER_MW_DMA_4 = 36, - XFER_MW_DMA_3 = 35, - XFER_MW_DMA_2 = 34, - XFER_MW_DMA_1 = 33, - XFER_MW_DMA_0 = 32, - XFER_SW_DMA_2 = 18, - XFER_SW_DMA_1 = 17, - XFER_SW_DMA_0 = 16, - XFER_PIO_6 = 14, - XFER_PIO_5 = 13, - XFER_PIO_4 = 12, - XFER_PIO_3 = 11, - XFER_PIO_2 = 10, - XFER_PIO_1 = 9, - XFER_PIO_0 = 8, - XFER_PIO_SLOW = 0, - SETFEATURES_WC_ON = 2, - SETFEATURES_WC_OFF = 130, - SETFEATURES_RA_ON = 170, - SETFEATURES_RA_OFF = 85, - SETFEATURES_AAM_ON = 66, - SETFEATURES_AAM_OFF = 194, - SETFEATURES_SPINUP = 7, - SETFEATURES_SPINUP_TIMEOUT = 30000, - SETFEATURES_SATA_ENABLE = 16, - SETFEATURES_SATA_DISABLE = 144, - SETFEATURES_CDL = 13, - SATA_FPDMA_OFFSET = 1, - SATA_FPDMA_AA = 2, - SATA_DIPM = 3, - SATA_FPDMA_IN_ORDER = 4, - SATA_AN = 5, - SATA_SSP = 6, - SATA_DEVSLP = 9, - SETFEATURE_SENSE_DATA = 195, - SETFEATURE_SENSE_DATA_SUCC_NCQ = 196, - ATA_SET_MAX_ADDR = 0, - ATA_SET_MAX_PASSWD = 1, - ATA_SET_MAX_LOCK = 2, - ATA_SET_MAX_UNLOCK = 3, - ATA_SET_MAX_FREEZE_LOCK = 4, - ATA_SET_MAX_PASSWD_DMA = 5, - ATA_SET_MAX_UNLOCK_DMA = 6, - ATA_DCO_RESTORE = 192, - ATA_DCO_FREEZE_LOCK = 193, - ATA_DCO_IDENTIFY = 194, - ATA_DCO_SET = 195, - ATA_SMART_ENABLE = 216, - ATA_SMART_READ_VALUES = 208, - ATA_SMART_READ_THRESHOLDS = 209, - ATA_DSM_TRIM = 1, - ATA_SMART_LBAM_PASS = 79, - ATA_SMART_LBAH_PASS = 194, - ATAPI_PKT_DMA = 1, - ATAPI_DMADIR = 4, - ATAPI_CDB_LEN = 16, - SATA_PMP_MAX_PORTS = 15, - SATA_PMP_CTRL_PORT = 15, - SATA_PMP_GSCR_DWORDS = 128, - SATA_PMP_GSCR_PROD_ID = 0, - SATA_PMP_GSCR_REV = 1, - SATA_PMP_GSCR_PORT_INFO = 2, - SATA_PMP_GSCR_ERROR = 32, - SATA_PMP_GSCR_ERROR_EN = 33, - SATA_PMP_GSCR_FEAT = 64, - SATA_PMP_GSCR_FEAT_EN = 96, - SATA_PMP_PSCR_STATUS = 0, - SATA_PMP_PSCR_ERROR = 1, - SATA_PMP_PSCR_CONTROL = 2, - SATA_PMP_FEAT_BIST = 1, - SATA_PMP_FEAT_PMREQ = 2, - SATA_PMP_FEAT_DYNSSC = 4, - SATA_PMP_FEAT_NOTIFY = 8, - ATA_CBL_NONE = 0, - ATA_CBL_PATA40 = 1, - ATA_CBL_PATA80 = 2, - ATA_CBL_PATA40_SHORT = 3, - ATA_CBL_PATA_UNK = 4, - ATA_CBL_PATA_IGN = 5, - ATA_CBL_SATA = 6, - SCR_STATUS = 0, - SCR_ERROR = 1, - SCR_CONTROL = 2, - SCR_ACTIVE = 3, - SCR_NOTIFICATION = 4, - SERR_DATA_RECOVERED = 1, - SERR_COMM_RECOVERED = 2, - SERR_DATA = 256, - SERR_PERSISTENT = 512, - SERR_PROTOCOL = 1024, - SERR_INTERNAL = 2048, - SERR_PHYRDY_CHG = 65536, - SERR_PHY_INT_ERR = 131072, - SERR_COMM_WAKE = 262144, - SERR_10B_8B_ERR = 524288, - SERR_DISPARITY = 1048576, - SERR_CRC = 2097152, - SERR_HANDSHAKE = 4194304, - SERR_LINK_SEQ_ERR = 8388608, - SERR_TRANS_ST_ERROR = 16777216, - SERR_UNRECOG_FIS = 33554432, - SERR_DEV_XCHG = 67108864, + MM_FILEPAGES = 0, + MM_ANONPAGES = 1, + MM_SWAPENTS = 2, + MM_SHMEMPAGES = 3, + NR_MM_COUNTERS = 4, }; -struct xgene_ahci_context { - struct ahci_host_priv *hpriv; - struct device *dev; - u8 last_cmd[2]; - u32 class[2]; - void *csr_core; - void *csr_diag; - void *csr_axi; - void *csr_mux; +enum numa_type { + node_has_spare = 0, + node_fully_busy = 1, + node_overloaded = 2, }; -struct acpi_pnp_device_id { - u32 length; - char *string; +enum numa_vmaskip_reason { + NUMAB_SKIP_UNSUITABLE = 0, + NUMAB_SKIP_SHARED_RO = 1, + NUMAB_SKIP_INACCESSIBLE = 2, + NUMAB_SKIP_SCAN_DELAY = 3, + NUMAB_SKIP_PID_INACTIVE = 4, + NUMAB_SKIP_IGNORE_PID = 5, + NUMAB_SKIP_SEQ_COMPLETED = 6, }; -struct acpi_pnp_device_id_list { - u32 count; - u32 list_size; - struct acpi_pnp_device_id ids[0]; +enum uclamp_id { + UCLAMP_MIN = 0, + UCLAMP_MAX = 1, + UCLAMP_CNT = 2, }; -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; +enum cpu_idle_type { + CPU_IDLE = 0, + CPU_NOT_IDLE = 1, + CPU_NEWLY_IDLE = 2, + CPU_MAX_IDLE_TYPES = 3, }; -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; +enum fbq_type { + regular = 0, + remote = 1, + all = 2, }; -struct ahci_cmd_hdr; +enum migration_type { + migrate_load = 0, + migrate_util = 1, + migrate_task = 2, + migrate_misfit = 3, +}; -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; +enum group_type { + group_has_spare = 0, + group_fully_busy = 1, + group_misfit_task = 2, + group_smt_balance = 3, + group_asym_packing = 4, + group_imbalanced = 5, + group_overloaded = 6, }; -struct ahci_cmd_hdr { - __le32 opts; - __le32 status; - __le32 tbl_addr; - __le32 tbl_addr_hi; - __le32 reserved[4]; +enum cpu_util_type { + FREQUENCY_UTIL = 0, + ENERGY_UTIL = 1, }; -struct nand_ecc_caps; +struct maple_enode; -struct denali_dt_data { - unsigned int revision; - unsigned int caps; - unsigned int oob_skip_bytes; - const struct nand_ecc_caps *ecc_caps; +struct update_util_data { + void (*func)(struct update_util_data *, u64, unsigned int); }; -struct nand_ecc_step_info; +struct numa_stats { + unsigned long load; + unsigned long runnable; + unsigned long util; + unsigned long compute_capacity; + unsigned int nr_running; + unsigned int weight; + enum numa_type node_type; + int idle_cpu; +}; -struct nand_ecc_caps { - const struct nand_ecc_step_info *stepinfos; - int nstepinfos; - int (*calc_ecc_bytes)(int, int); +struct task_numa_env { + struct task_struct *p; + int src_cpu; + int src_nid; + int dst_cpu; + int dst_nid; + int imb_numa_nr; + struct numa_stats src_stats; + struct numa_stats dst_stats; + int imbalance_pct; + int dist; + struct task_struct *best_task; + long best_imp; + int best_cpu; }; -struct nand_ecc_step_info { - int stepsize; - const int *strengths; - int nstrengths; +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; }; -enum nand_interface_type { - NAND_SDR_IFACE = 0, - NAND_NVDDR_IFACE = 1, +struct vma_iterator { + struct ma_state mas; }; -enum nand_op_instr_type { - NAND_OP_CMD_INSTR = 0, - NAND_OP_ADDR_INSTR = 1, - NAND_OP_DATA_IN_INSTR = 2, - NAND_OP_DATA_OUT_INSTR = 3, - NAND_OP_WAITRDY_INSTR = 4, +struct maple_alloc { + unsigned long total; + unsigned char node_count; + unsigned int request_count; + struct maple_alloc *slot[30]; }; -struct nand_controller_ops; +struct energy_env { + unsigned long task_busy_time; + unsigned long pd_busy_time; + unsigned long cpu_cap; + unsigned long pd_cap; +}; -struct nand_controller { - struct mutex lock; - const struct nand_controller_ops *ops; - struct { - unsigned int data_only_read: 1; - unsigned int cont_read: 1; - } supported_op; +struct softirq_action { + void (*action)(struct softirq_action *); }; -struct denali_controller { - struct nand_controller controller; - struct device *dev; - struct list_head chips; - unsigned long clk_rate; - unsigned long clk_x_rate; - void *reg; - void *host; - struct completion complete; - int irq; - u32 irq_mask; - u32 irq_status; - spinlock_t irq_lock; - bool dma_avail; - int devs_per_cs; - int oob_skip_bytes; - int active_bank; - int nbanks; - unsigned int revision; - unsigned int caps; - const struct nand_ecc_caps *ecc_caps; - u32 (*host_read)(struct denali_controller *, u32); - void (*host_write)(struct denali_controller *, u32, u32); - void (*setup_dma)(struct denali_controller *, dma_addr_t, int, bool); +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 nand_chip; +struct sg_lb_stats { + unsigned long avg_load; + unsigned long group_load; + unsigned long group_capacity; + unsigned long group_util; + unsigned long group_runnable; + unsigned int sum_nr_running; + unsigned int sum_h_nr_running; + unsigned int idle_cpus; + unsigned int group_weight; + enum group_type group_type; + unsigned int group_asym_packing; + unsigned int group_smt_balance; + unsigned long group_misfit_task_load; + unsigned int nr_numa_running; + unsigned int nr_preferred_running; +}; -struct nand_operation; +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 nand_interface_config; +typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32); -struct nand_controller_ops { - int (*attach_chip)(struct nand_chip *); - void (*detach_chip)(struct nand_chip *); - int (*exec_op)(struct nand_chip *, const struct nand_operation *, bool); - int (*setup_interface)(struct nand_chip *, int, const struct nand_interface_config *); +struct btf_id_set8; + +struct btf_kfunc_id_set { + struct module *owner; + struct btf_id_set8 *set; + btf_kfunc_filter_t filter; }; -struct nand_id { - u8 data[8]; - int len; +struct btf_id_set8 { + u32 cnt; + u32 flags; + struct { + u32 id; + u32 flags; + } pairs[0]; }; -struct onfi_params; +struct bpf_iter__bpf_map { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; +}; -struct nand_parameters { - const char *model; - bool supports_set_get_features; - unsigned long set_feature_list[4]; - unsigned long get_feature_list[4]; - struct onfi_params *onfi; +struct bpf_iter_seq_map_info { + u32 map_id; }; -struct nand_manufacturer_desc; +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, +}; -struct nand_manufacturer { - const struct nand_manufacturer_desc *desc; - void *priv; +enum bpf_stack_build_id_status { + BPF_STACK_BUILD_ID_EMPTY = 0, + BPF_STACK_BUILD_ID_VALID = 1, + BPF_STACK_BUILD_ID_IP = 2, }; -struct nand_chip_ops { - int (*suspend)(struct nand_chip *); - void (*resume)(struct nand_chip *); - int (*lock_area)(struct nand_chip *, loff_t, uint64_t); - int (*unlock_area)(struct nand_chip *, loff_t, uint64_t); - int (*setup_read_retry)(struct nand_chip *, int); - int (*choose_interface_config)(struct nand_chip *, struct nand_interface_config *); +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 nand_legacy { - void *IO_ADDR_R; - void *IO_ADDR_W; - void (*select_chip)(struct nand_chip *, int); - u8 (*read_byte)(struct nand_chip *); - void (*write_byte)(struct nand_chip *, u8); - void (*write_buf)(struct nand_chip *, const u8 *, int); - void (*read_buf)(struct nand_chip *, u8 *, int); - void (*cmd_ctrl)(struct nand_chip *, int, unsigned int); - void (*cmdfunc)(struct nand_chip *, unsigned int, int, int); - int (*dev_ready)(struct nand_chip *); - int (*waitfunc)(struct nand_chip *); - int (*block_bad)(struct nand_chip *, loff_t); - int (*block_markbad)(struct nand_chip *, loff_t); - int (*set_features)(struct nand_chip *, int, u8 *); - int (*get_features)(struct nand_chip *, int, u8 *); - int chip_delay; - struct nand_controller dummy_controller; +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, }; -struct nand_ecc_ctrl { - enum nand_ecc_engine_type engine_type; - enum nand_ecc_placement placement; - enum nand_ecc_algo algo; - int steps; - int size; - int bytes; - int total; - int strength; - int prepad; - int postpad; - unsigned int options; - u8 *calc_buf; - u8 *code_buf; - void (*hwctl)(struct nand_chip *, int); - int (*calculate)(struct nand_chip *, const uint8_t *, uint8_t *); - int (*correct)(struct nand_chip *, uint8_t *, uint8_t *, uint8_t *); - int (*read_page_raw)(struct nand_chip *, uint8_t *, int, int); - int (*write_page_raw)(struct nand_chip *, const uint8_t *, int, int); - int (*read_page)(struct nand_chip *, uint8_t *, int, int); - int (*read_subpage)(struct nand_chip *, uint32_t, uint32_t, uint8_t *, int); - int (*write_subpage)(struct nand_chip *, uint32_t, uint32_t, const uint8_t *, int, int); - int (*write_page)(struct nand_chip *, const uint8_t *, int, int); - int (*write_oob_raw)(struct nand_chip *, int); - int (*read_oob_raw)(struct nand_chip *, int); - int (*read_oob)(struct nand_chip *, int); - int (*write_oob)(struct nand_chip *, int); +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 nand_bbt_descr; +typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64); -struct nand_secure_region; +struct bpf_perf_event_data_kern; -struct nand_chip { - struct nand_device base; - struct nand_id id; - struct nand_parameters parameters; - struct nand_manufacturer manufacturer; - struct nand_chip_ops ops; - struct nand_legacy legacy; - unsigned int options; - const struct nand_interface_config *current_interface_config; - struct nand_interface_config *best_interface_config; - unsigned int bbt_erase_shift; - unsigned int bbt_options; - unsigned int badblockpos; - unsigned int badblockbits; - struct nand_bbt_descr *bbt_td; - struct nand_bbt_descr *bbt_md; - struct nand_bbt_descr *badblock_pattern; - u8 *bbt; - unsigned int page_shift; - unsigned int phys_erase_shift; - unsigned int chip_shift; - unsigned int pagemask; - unsigned int subpagesize; - u8 *data_buf; - u8 *oob_poi; - struct { - unsigned int bitflips; - int page; - } pagecache; - unsigned long buf_align; - struct mutex lock; - unsigned int suspended: 1; - wait_queue_head_t resume_wq; - int cur_cs; - int read_retries; - struct nand_secure_region *secure_regions; - u8 nr_secure_regions; - struct { - bool ongoing; - unsigned int first_page; - unsigned int last_page; - } cont_read; - struct nand_controller *controller; - struct nand_ecc_ctrl ecc; - void *priv; -}; +typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); -struct onfi_params { - int version; - u16 tPROG; - u16 tBERS; - u16 tR; - u16 tCCS; - bool fast_tCAD; - u16 sdr_timing_modes; - u16 nvddr_timing_modes; - u16 vendor_revision; - u8 vendor[88]; +typedef struct user_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; }; -struct nand_manufacturer_ops; +typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64); -struct nand_manufacturer_desc { - int id; - char *name; - const struct nand_manufacturer_ops *ops; +typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64); + +struct stack_map_bucket; + +struct bpf_stack_map { + struct bpf_map map; + void *elems; + struct pcpu_freelist freelist; + u32 n_buckets; + struct stack_map_bucket *buckets[0]; + long: 64; + long: 64; + long: 64; }; -struct nand_sdr_timings { - u64 tBERS_max; - u32 tCCS_min; - u64 tPROG_max; - u64 tR_max; - u32 tALH_min; - u32 tADL_min; - u32 tALS_min; - u32 tAR_min; - u32 tCEA_max; - u32 tCEH_min; - u32 tCH_min; - u32 tCHZ_max; - u32 tCLH_min; - u32 tCLR_min; - u32 tCLS_min; - u32 tCOH_min; - u32 tCS_min; - u32 tDH_min; - u32 tDS_min; - u32 tFEAT_max; - u32 tIR_min; - u32 tITC_max; - u32 tRC_min; - u32 tREA_max; - u32 tREH_min; - u32 tRHOH_min; - u32 tRHW_min; - u32 tRHZ_max; - u32 tRLOH_min; - u32 tRP_min; - u32 tRR_min; - u64 tRST_max; - u32 tWB_max; - u32 tWC_min; - u32 tWH_min; - u32 tWHR_min; - u32 tWP_min; - u32 tWW_min; -}; - -struct nand_nvddr_timings { - u64 tBERS_max; - u32 tCCS_min; - u64 tPROG_max; - u64 tR_max; - u32 tAC_min; - u32 tAC_max; - u32 tADL_min; - u32 tCAD_min; - u32 tCAH_min; - u32 tCALH_min; - u32 tCALS_min; - u32 tCAS_min; - u32 tCEH_min; - u32 tCH_min; - u32 tCK_min; - u32 tCS_min; - u32 tDH_min; - u32 tDQSCK_min; - u32 tDQSCK_max; - u32 tDQSD_min; - u32 tDQSD_max; - u32 tDQSHZ_max; - u32 tDQSQ_max; - u32 tDS_min; - u32 tDSC_min; - u32 tFEAT_max; - u32 tITC_max; - u32 tQHS_max; - u32 tRHW_min; - u32 tRR_min; - u32 tRST_max; - u32 tWB_max; - u32 tWHR_min; - u32 tWRCK_min; - u32 tWW_min; +struct stack_map_bucket { + struct pcpu_freelist_node fnode; + u32 hash; + u32 nr; + u64 data[0]; }; -struct nand_timings { - unsigned int mode; +struct bpf_stack_build_id { + __s32 status; + unsigned char build_id[20]; union { - struct nand_sdr_timings sdr; - struct nand_nvddr_timings nvddr; + __u64 offset; + __u64 ip; }; }; -struct nand_interface_config { - enum nand_interface_type type; - struct nand_timings timings; -}; - -struct nand_bbt_descr { - int options; - int pages[8]; - int offs; - int veroffs; - uint8_t version[8]; - int len; - int maxblocks; - int reserved_block_code; - uint8_t *pattern; +struct mmap_unlock_irq_work { + struct irq_work irq_work; + struct mm_struct *mm; }; -struct nand_secure_region { - u64 offset; - u64 size; -}; +typedef void (*btf_trace_rseq_update)(void *, struct task_struct *); -struct nand_op_instr; +typedef void (*btf_trace_rseq_ip_fixup)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -struct nand_operation { - unsigned int cs; - const struct nand_op_instr *instrs; - unsigned int ninstrs; +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, }; -struct nand_op_cmd_instr { - u8 opcode; +enum rseq_flags { + RSEQ_FLAG_UNREGISTER = 1, }; -struct nand_op_addr_instr { - unsigned int naddrs; - const u8 *addrs; +enum rseq_cpu_id_state { + RSEQ_CPU_ID_UNINITIALIZED = -1, + RSEQ_CPU_ID_REGISTRATION_FAILED = -2, }; -struct nand_op_data_instr { - unsigned int len; - union { - void *in; - const void *out; - } buf; - bool force_8bit; +struct trace_event_raw_rseq_update { + struct trace_entry ent; + s32 cpu_id; + s32 node_id; + s32 mm_cid; + char __data[0]; }; -struct nand_op_waitrdy_instr { - unsigned int timeout_ms; +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 nand_op_instr { - enum nand_op_instr_type type; - union { - struct nand_op_cmd_instr cmd; - struct nand_op_addr_instr addr; - struct nand_op_data_instr data; - struct nand_op_waitrdy_instr waitrdy; - } ctx; - unsigned int delay_ns; +struct rseq_cs { + __u32 version; + __u32 flags; + __u64 start_ip; + __u64 post_commit_offset; + __u64 abort_ip; }; -struct denali_chip_sel { - int bank; - u32 hwhr2_and_we_2_re; - u32 tcwaw_and_addr_2_data; - u32 re_2_we; - u32 acc_clks; - u32 rdwr_en_lo_cnt; - u32 rdwr_en_hi_cnt; - u32 cs_setup_cnt; - u32 re_2_re; -}; +struct trace_event_data_offsets_rseq_update {}; -struct denali_chip { - struct nand_chip chip; - struct list_head node; - unsigned int nsels; - struct denali_chip_sel sels[0]; -}; +struct trace_event_data_offsets_rseq_ip_fixup {}; -struct denali_dt { - struct denali_controller controller; - struct clk *clk; - struct clk *clk_x; - struct clk *clk_ecc; - struct reset_control *rst; - struct reset_control *rst_reg; +struct mminit_pfnnid_cache { + unsigned long last_start; + unsigned long last_end; + int last_nid; }; -enum dspi_trans_mode { - DSPI_XSPI_MODE = 0, - DSPI_DMA_MODE = 1, +enum mminit_level { + MMINIT_WARNING = 0, + MMINIT_VERIFY = 1, + MMINIT_TRACE = 2, }; -struct fsl_dspi_devtype_data { - enum dspi_trans_mode trans_mode; - u8 max_clock_factor; - int fifo_size; +enum meminit_context { + MEMINIT_EARLY = 0, + MEMINIT_HOTPLUG = 1, }; enum { - LS1021A = 0, - LS1012A = 1, - LS1028A = 2, - LS1043A = 3, - LS1046A = 4, - LS2080A = 5, - LS2085A = 6, - LX2160A = 7, - MCF5441X = 8, - VF610 = 9, + 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, }; -struct chip_data; - -struct fsl_dspi_dma; +struct mem_section_usage; -struct fsl_dspi { - struct spi_controller *ctlr; - struct platform_device *pdev; - struct regmap *regmap; - struct regmap *regmap_pushr; - int irq; - struct clk *clk; - struct spi_transfer *cur_transfer; - struct spi_message *cur_msg; - struct chip_data *cur_chip; - size_t progress; - size_t len; - const void *tx; - void *rx; - u16 tx_cmd; - const struct fsl_dspi_devtype_data *devtype_data; - struct completion xfer_done; - struct fsl_dspi_dma *dma; - int oper_word_size; - int oper_bits_per_word; - int words_in_flight; - int pushr_cmd; - int pushr_tx; - void (*host_to_dev)(struct fsl_dspi *, u32 *); - void (*dev_to_host)(struct fsl_dspi *, u32); +struct mem_section { + unsigned long section_mem_map; + struct mem_section_usage *usage; }; -struct chip_data { - u32 ctar_val; +struct mem_section_usage { + unsigned long subsection_map[1]; + unsigned long pageblock_flags[0]; }; -struct fsl_dspi_dma { - u32 *tx_dma_buf; - struct dma_chan *chan_tx; - dma_addr_t tx_dma_phys; - struct completion cmd_tx_complete; - struct dma_async_tx_descriptor *tx_desc; - u32 *rx_dma_buf; - struct dma_chan *chan_rx; - dma_addr_t rx_dma_phys; - struct completion cmd_rx_complete; - struct dma_async_tx_descriptor *rx_desc; +struct mlock_fbatch { + local_lock_t lock; + struct folio_batch fbatch; }; -struct fsl_dspi_platform_data { - u32 cs_num; - u32 bus_num; - u32 sck_cs_delay; - u32 cs_sck_delay; +enum rlimit_type { + UCOUNT_RLIMIT_NPROC = 0, + UCOUNT_RLIMIT_MSGQUEUE = 1, + UCOUNT_RLIMIT_SIGPENDING = 2, + UCOUNT_RLIMIT_MEMLOCK = 3, + UCOUNT_RLIMIT_COUNTS = 4, }; -enum csr_target { - MACRO_CTRL = 7, +struct encoded_page; + +typedef union { + struct page **pages; + struct folio **folios; + struct encoded_page **encoded_pages; +} release_pages_arg; + +struct anon_vma_name { + struct kref kref; + char name[0]; }; -enum fman_exceptions { - FMAN_EX_DMA_BUS_ERROR = 0, - FMAN_EX_DMA_READ_ECC = 1, - FMAN_EX_DMA_SYSTEM_WRITE_ECC = 2, - FMAN_EX_DMA_FM_WRITE_ECC = 3, - FMAN_EX_DMA_SINGLE_PORT_ECC = 4, - FMAN_EX_FPM_STALL_ON_TASKS = 5, - FMAN_EX_FPM_SINGLE_ECC = 6, - FMAN_EX_FPM_DOUBLE_ECC = 7, - FMAN_EX_QMI_SINGLE_ECC = 8, - FMAN_EX_QMI_DOUBLE_ECC = 9, - FMAN_EX_QMI_DEQ_FROM_UNKNOWN_PORTID = 10, - FMAN_EX_BMI_LIST_RAM_ECC = 11, - FMAN_EX_BMI_STORAGE_PROFILE_ECC = 12, - FMAN_EX_BMI_STATISTICS_RAM_ECC = 13, - FMAN_EX_BMI_DISPATCH_RAM_ECC = 14, - FMAN_EX_IRAM_ECC = 15, - FMAN_EX_MURAM_ECC = 16, +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 *); }; -enum fman_event_modules { - FMAN_MOD_MAC = 0, - FMAN_MOD_FMAN_CTRL = 1, - FMAN_MOD_DUMMY_LAST = 2, +struct balloon_dev_info { + unsigned long isolated_pages; + spinlock_t pages_lock; + struct list_head pages; + int (*migratepage)(struct balloon_dev_info *, struct page *, struct page *, enum migrate_mode); }; -enum fman_intr_type { - FMAN_INTR_TYPE_ERR = 0, - FMAN_INTR_TYPE_NORMAL = 1, +struct linux_dirent { + unsigned long d_ino; + unsigned long d_off; + unsigned short d_reclen; + char d_name[0]; }; -typedef void fman_mac_exception_cb(struct mac_device *, enum fman_mac_exceptions); +struct getdents_callback { + struct dir_context ctx; + struct linux_dirent __attribute__((btf_type_tag("user"))) *current_dir; + int prev_reclen; + int count; + int error; +}; -struct fman_rev_info { - u8 major; - u8 minor; +struct linux_dirent64 { + u64 d_ino; + s64 d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[0]; }; -struct dtsec_regs; +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 eth_hash_t; +struct compat_old_linux_dirent { + compat_ulong_t d_ino; + compat_ulong_t d_offset; + unsigned short d_namlen; + char d_name[0]; +}; -struct dtsec_cfg; +struct compat_readdir_callback { + struct dir_context ctx; + struct compat_old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent; + int result; +}; -struct fman_mac { - struct dtsec_regs *regs; - u64 addr; - phy_interface_t phy_if; - u16 max_speed; - struct mac_device *dev_id; - fman_mac_exception_cb *exception_cb; - fman_mac_exception_cb *event_cb; - u8 num_of_ind_addr_in_regs; - struct eth_hash_t *multicast_addr_hash; - struct eth_hash_t *unicast_addr_hash; - u8 mac_id; - u32 exceptions; - bool ptp_tsu_enabled; - bool en_tsu_err_exception; - struct dtsec_cfg *dtsec_drv_param; - void *fm; - struct fman_rev_info fm_rev_info; - bool basex_if; - struct mdio_device *tbidev; - struct phylink_pcs pcs; +struct compat_linux_dirent { + compat_ulong_t d_ino; + compat_ulong_t d_off; + unsigned short d_reclen; + char d_name[0]; }; -struct dtsec_regs { - u32 tsec_id; - u32 tsec_id2; - u32 ievent; - u32 imask; - u32 reserved0010[1]; - u32 ecntrl; - u32 ptv; - u32 tbipa; - u32 tmr_ctrl; - u32 tmr_pevent; - u32 tmr_pemask; - u32 reserved002c[5]; - u32 tctrl; - u32 reserved0044[3]; - u32 rctrl; - u32 reserved0054[11]; - u32 igaddr[8]; - u32 gaddr[8]; - u32 reserved00c0[16]; - u32 maccfg1; - u32 maccfg2; - u32 ipgifg; - u32 hafdup; - u32 maxfrm; - u32 reserved0114[10]; - u32 ifstat; - u32 macstnaddr1; - u32 macstnaddr2; - struct { - u32 exact_match1; - u32 exact_match2; - } macaddr[15]; - u32 reserved01c0[16]; - u32 tr64; - u32 tr127; - u32 tr255; - u32 tr511; - u32 tr1k; - u32 trmax; - u32 trmgv; - u32 rbyt; - u32 rpkt; - u32 rfcs; - u32 rmca; - u32 rbca; - u32 rxcf; - u32 rxpf; - u32 rxuo; - u32 raln; - u32 rflr; - u32 rcde; - u32 rcse; - u32 rund; - u32 rovr; - u32 rfrg; - u32 rjbr; - u32 rdrp; - u32 tbyt; - u32 tpkt; - u32 tmca; - u32 tbca; - u32 txpf; - u32 tdfr; - u32 tedf; - u32 tscl; - u32 tmcl; - u32 tlcl; - u32 txcl; - u32 tncl; - u32 reserved0290[1]; - u32 tdrp; - u32 tjbr; - u32 tfcs; - u32 txcf; - u32 tovr; - u32 tund; - u32 tfrg; - u32 car1; - u32 car2; - u32 cam1; - u32 cam2; - u32 reserved02c0[848]; +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 eth_hash_t { - u16 size; - struct list_head *lsts; +struct xattr_name { + char name[256]; }; -struct dtsec_cfg { - u16 halfdup_retransmit; - u16 halfdup_coll_window; - bool tx_pad_crc; - u16 tx_pause_time; - bool ptp_tsu_en; - bool ptp_exception_en; - u32 preamble_len; - u32 rx_prepend; - u16 tx_pause_time_extd; - u16 maximum_frame; - u32 non_back_to_back_ipg1; - u32 non_back_to_back_ipg2; - u32 min_ifg_enforcement; - u32 back_to_back_ipg; +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 eth_hash_entry { +struct iomap_folio_ops; + +struct iomap { u64 addr; - struct list_head node; + 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 fman_mac_params { - u8 mac_id; - void *fm; - fman_mac_exception_cb *event_cb; - fman_mac_exception_cb *exception_cb; +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 fman_intr_src { - void (*isr_cb)(void *); - void *src_handle; +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 fman; +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 irqreturn_t fman_exceptions_cb(struct fman *, enum fman_exceptions); +typedef int (*proc_write_t)(struct file *, char *, size_t); -typedef irqreturn_t fman_bus_error_cb(struct fman *, u8, u64, u8, u16); +typedef u32 nlink_t; -struct fman_dts_params { - void *base_addr; - struct resource *res; - u8 id; - int err_irq; - u16 clk_freq; - u32 qman_channel_base; - u32 num_of_qman_channels; - struct resource muram_res; +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]; }; -struct fman_fpm_regs; - -struct fman_bmi_regs; +enum netfs_read_from_hole { + NETFS_READ_HOLE_IGNORE = 0, + NETFS_READ_HOLE_CLEAR = 1, + NETFS_READ_HOLE_FAIL = 2, +}; -struct fman_qmi_regs; +enum netfs_io_source { + NETFS_FILL_WITH_ZEROES = 0, + NETFS_DOWNLOAD_FROM_SERVER = 1, + NETFS_READ_FROM_CACHE = 2, + NETFS_INVALID_READ = 3, +} __attribute__((mode(byte))); -struct fman_dma_regs; +enum netfs_io_origin { + NETFS_READAHEAD = 0, + NETFS_READPAGE = 1, + NETFS_READ_FOR_WRITE = 2, +} __attribute__((mode(byte))); -struct fman_hwp_regs; +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, +} __attribute__((mode(byte))); -struct fman_kg_regs; +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, +} __attribute__((mode(byte))); -struct fman_state_struct; +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, +} __attribute__((mode(byte))); -struct fman_cfg; +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, +} __attribute__((mode(byte))); -struct muram_info; +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, +} __attribute__((mode(byte))); -struct fman_keygen; +struct netfs_cache_ops; -struct fman { - struct device *dev; - void *base_addr; - struct fman_intr_src intr_mng[24]; - struct fman_fpm_regs *fpm_regs; - struct fman_bmi_regs *bmi_regs; - struct fman_qmi_regs *qmi_regs; - struct fman_dma_regs *dma_regs; - struct fman_hwp_regs *hwp_regs; - struct fman_kg_regs *kg_regs; - fman_exceptions_cb *exception_cb; - fman_bus_error_cb *bus_error_cb; - spinlock_t spinlock; - struct fman_state_struct *state; - struct fman_cfg *cfg; - struct muram_info *muram; - struct fman_keygen *keygen; - unsigned long cam_offset; - size_t cam_size; - unsigned long fifo_offset; - size_t fifo_size; - u32 liodn_base[64]; - u32 liodn_offset[64]; - struct fman_dts_params dts_params; +struct netfs_cache_resources { + const struct netfs_cache_ops *ops; + void *cache_priv; + void *cache_priv2; + unsigned int debug_id; + unsigned int inval_counter; }; -enum hnae_port_type { - HNAE_PORT_SERVICE = 0, - HNAE_PORT_DEBUG = 1, -}; +struct netfs_request_ops; -enum hnae_media_type { - HNAE_MEDIA_TYPE_UNKNOWN = 0, - HNAE_MEDIA_TYPE_FIBER = 1, - HNAE_MEDIA_TYPE_COPPER = 2, - HNAE_MEDIA_TYPE_BACKPLANE = 3, +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; }; -enum hnae_loop { - MAC_INTERNALLOOP_MAC = 0, - MAC_INTERNALLOOP_SERDES = 1, - MAC_INTERNALLOOP_PHY = 2, - MAC_LOOP_PHY_NONE = 3, - MAC_LOOP_NONE = 4, -}; +typedef void (*netfs_io_terminated_t)(void *, ssize_t, bool); -enum hnae_led_state { - HNAE_LED_INACTIVE = 0, - HNAE_LED_ACTIVE = 1, - HNAE_LED_ON = 2, - HNAE_LED_OFF = 3, -}; +struct netfs_io_subrequest; -enum hns_desc_type { - DESC_TYPE_SKB = 0, - DESC_TYPE_PAGE = 1, +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 *); }; -enum hns_nic_state { - NIC_STATE_TESTING = 0, - NIC_STATE_RESETTING = 1, - NIC_STATE_REINITING = 2, - NIC_STATE_DOWN = 3, - NIC_STATE_DISABLED = 4, - NIC_STATE_REMOVING = 5, - NIC_STATE_SERVICE_INITED = 6, - NIC_STATE_SERVICE_SCHED = 7, - NIC_STATE2_RESET_REQUESTED = 8, - NIC_STATE_MAX = 9, +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 hnae_ring; - -struct hns_nic_ring_data { - struct hnae_ring *ring; - struct napi_struct napi; - cpumask_t mask; - u32 queue_index; - int (*poll_one)(struct hns_nic_ring_data *, int, void *); - void (*ex_process)(struct hns_nic_ring_data *, struct sk_buff *); - bool (*fini_process)(struct hns_nic_ring_data *); +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 ring_stats { - u64 io_err_cnt; - u64 sw_err_cnt; - u64 seg_pkt_cnt; +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 { - u64 tx_pkts; - u64 tx_bytes; - u64 tx_err_cnt; - u64 restart_queue; - u64 tx_busy; - }; - struct { - u64 rx_pkts; - u64 rx_bytes; - u64 rx_err_cnt; - u64 reuse_pg_cnt; - u64 err_pkt_len; - u64 non_vld_descs; - u64 err_bd_num; - u64 l2_err; - u64 l3l4_csum_err; - }; + struct list_head private_list; + struct callback_head callback_head; + }; + void __attribute__((btf_type_tag("rcu"))) *slots[64]; + union { + unsigned long tags[3]; + unsigned long marks[3]; }; }; -struct hnae_desc; - -struct hnae_desc_cb; - -struct hnae_queue; +typedef void (*xa_update_node_t)(struct xa_node *); -struct hnae_ring { - u8 *io_base; - struct hnae_desc *desc; - struct hnae_desc_cb *desc_cb; - struct hnae_queue *q; - int irq; - char ring_name[20]; - struct ring_stats stats; - dma_addr_t desc_dma_addr; - u32 buf_size; - u16 desc_num; - u16 max_desc_num_per_pkt; - u16 max_raw_data_sz_per_desc; - u16 max_pkt_size; - int next_to_use; - int next_to_clean; - int flags; - int irq_init_flag; - u64 coal_last_rx_bytes; - unsigned long coal_last_jiffies; - u32 coal_param; - u32 coal_rx_rate; +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 hnae_desc { - __le64 addr; - union { - struct { - union { - __le16 asid_bufnum_pid; - __le16 asid; - }; - __le16 send_size; - union { - __le32 flag_ipoffset; - struct { - __u8 bn_pid; - __u8 ra_ri_cs_fe_vld; - __u8 ip_offset; - __u8 tse_vlan_snap_v6_sctp_nth; - }; - }; - __le16 mss; - __u8 l4_len; - __u8 reserved1; - __le16 paylen; - __u8 vmid; - __u8 qid; - __le32 reserved2[2]; - } tx; - struct { - __le32 ipoff_bnum_pid_flag; - __le16 pkt_len; - __le16 size; - union { - __le32 vlan_pri_asid; - struct { - __le16 asid; - __le16 vlan_cfi_pri; - }; - }; - __le32 rss_hash; - __le32 reserved_1[2]; - } rx; - }; +enum { + EXT4_STATE_NEW = 0, + EXT4_STATE_XATTR = 1, + EXT4_STATE_NO_EXPAND = 2, + EXT4_STATE_DA_ALLOC_CLOSE = 3, + EXT4_STATE_EXT_MIGRATE = 4, + EXT4_STATE_NEWENTRY = 5, + EXT4_STATE_MAY_INLINE_DATA = 6, + EXT4_STATE_EXT_PRECACHED = 7, + EXT4_STATE_LUSTRE_EA_INODE = 8, + EXT4_STATE_VERITY_IN_PROGRESS = 9, + EXT4_STATE_FC_COMMITTING = 10, + EXT4_STATE_ORPHAN_FILE = 11, }; -struct hnae_desc_cb { - dma_addr_t dma; - void *buf; - void *priv; - u32 page_offset; - u32 length; - u16 reuse_flag; - u16 type; +struct pending_reservation { + struct rb_node rb_node; + ext4_lblk_t lclu; }; -struct hnae_ae_dev; +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 hnae_handle; +enum { + EXT4_FC_STATUS_OK = 0, + EXT4_FC_STATUS_INELIGIBLE = 1, + EXT4_FC_STATUS_SKIPPED = 2, + EXT4_FC_STATUS_FAILED = 3, +}; -struct hnae_queue { - u8 *io_base; - phys_addr_t phy_base; - struct hnae_ae_dev *dev; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct hnae_ring rx_ring; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct hnae_ring tx_ring; - struct hnae_handle *handle; - long: 64; - long: 64; - long: 64; - long: 64; +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 hnae_ae_ops; +struct __track_dentry_update_args { + struct dentry *dentry; + int op; +}; -struct hnae_ae_dev { - struct device cls_dev; - struct device *dev; - struct hnae_ae_ops *ops; - struct list_head node; - struct module *owner; - int id; - char name[16]; - struct list_head handle_list; - spinlock_t lock; +struct __track_range_args { + ext4_lblk_t start; + ext4_lblk_t end; }; -struct hnae_ae_ops { - struct hnae_handle * (*get_handle)(struct hnae_ae_dev *, u32); - void (*put_handle)(struct hnae_handle *); - void (*init_queue)(struct hnae_queue *); - void (*fini_queue)(struct hnae_queue *); - int (*start)(struct hnae_handle *); - void (*stop)(struct hnae_handle *); - void (*reset)(struct hnae_handle *); - int (*set_opts)(struct hnae_handle *, int, void *); - int (*get_opts)(struct hnae_handle *, int, void **); - int (*get_status)(struct hnae_handle *); - int (*get_info)(struct hnae_handle *, u8 *, u16 *, u8 *); - void (*toggle_ring_irq)(struct hnae_ring *, u32); - void (*adjust_link)(struct hnae_handle *, int, int); - bool (*need_adjust_link)(struct hnae_handle *, int, int); - int (*set_loopback)(struct hnae_handle *, enum hnae_loop, int); - void (*get_ring_bdnum_limit)(struct hnae_queue *, u32 *); - void (*get_pauseparam)(struct hnae_handle *, u32 *, u32 *, u32 *); - int (*set_pauseparam)(struct hnae_handle *, u32, u32, u32); - void (*get_coalesce_usecs)(struct hnae_handle *, u32 *, u32 *); - void (*get_max_coalesced_frames)(struct hnae_handle *, u32 *, u32 *); - int (*set_coalesce_usecs)(struct hnae_handle *, u32); - int (*set_coalesce_frames)(struct hnae_handle *, u32, u32); - void (*get_coalesce_range)(struct hnae_handle *, u32 *, u32 *, u32 *, u32 *, u32 *, u32 *, u32 *, u32 *); - void (*set_promisc_mode)(struct hnae_handle *, u32); - int (*get_mac_addr)(struct hnae_handle *, void **); - int (*set_mac_addr)(struct hnae_handle *, const void *); - int (*add_uc_addr)(struct hnae_handle *, const unsigned char *); - int (*rm_uc_addr)(struct hnae_handle *, const unsigned char *); - int (*clr_mc_addr)(struct hnae_handle *); - int (*set_mc_addr)(struct hnae_handle *, void *); - int (*set_mtu)(struct hnae_handle *, int); - void (*set_tso_stats)(struct hnae_handle *, int); - void (*update_stats)(struct hnae_handle *, struct net_device_stats *); - void (*get_stats)(struct hnae_handle *, u64 *); - void (*get_strings)(struct hnae_handle *, u32, u8 *); - int (*get_sset_count)(struct hnae_handle *, int); - void (*update_led_status)(struct hnae_handle *); - int (*set_led_id)(struct hnae_handle *, enum hnae_led_state); - void (*get_regs)(struct hnae_handle *, void *); - int (*get_regs_len)(struct hnae_handle *); - u32 (*get_rss_key_size)(struct hnae_handle *); - u32 (*get_rss_indir_size)(struct hnae_handle *); - int (*get_rss)(struct hnae_handle *, u32 *, u8 *, u8 *); - int (*set_rss)(struct hnae_handle *, const u32 *, const u8 *, const u8); +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 hnae_buf_ops; +struct ext4_fc_tl { + __le16 fc_tag; + __le16 fc_len; +}; -struct hnae_handle { - struct device *owner_dev; - struct hnae_ae_dev *dev; - struct phy_device *phy_dev; - phy_interface_t phy_if; - u32 if_support; - int q_num; - int vf_id; - unsigned long coal_last_jiffies; - u32 coal_param; - u32 coal_ring_idx; - u32 eport_id; - u32 dport_id; - bool coal_adapt_en; - enum hnae_port_type port_type; - enum hnae_media_type media_type; - struct list_head node; - struct hnae_buf_ops *bops; - struct hnae_queue *qs[0]; +struct ext4_extent_header { + __le16 eh_magic; + __le16 eh_entries; + __le16 eh_max; + __le16 eh_depth; + __le32 eh_generation; }; -struct hnae_buf_ops { - int (*alloc_buffer)(struct hnae_ring *, struct hnae_desc_cb *); - void (*free_buffer)(struct hnae_ring *, struct hnae_desc_cb *); - int (*map_buffer)(struct hnae_ring *, struct hnae_desc_cb *); - void (*unmap_buffer)(struct hnae_ring *, struct hnae_desc_cb *); +struct ext4_fc_head { + __le32 fc_features; + __le32 fc_tid; }; -struct hns_nic_ops { - void (*fill_desc)(struct hnae_ring *, void *, int, dma_addr_t, int, int, enum hns_desc_type, int); - int (*maybe_stop_tx)(struct sk_buff **, int *, struct hnae_ring *); - void (*get_rxd_bnum)(u32, int *); +struct ext4_fc_tail { + __le32 fc_tid; + __le32 fc_crc; }; -struct hns_nic_priv { - const struct fwnode_handle *fwnode; - u32 enet_ver; - u32 port_id; - int phy_mode; - int phy_led_val; - struct net_device *netdev; - struct device *dev; - struct hnae_handle *ae_handle; - struct hns_nic_ops ops; - struct hns_nic_ring_data *ring_data; - int link; - u64 tx_timeout_count; - unsigned long state; - struct timer_list service_timer; - struct work_struct service_task; - struct notifier_block notifier_block; +struct ext4_fc_tl_mem { + u16 fc_tag; + u16 fc_len; }; -struct mvneta_statistic { - unsigned short offset; - unsigned short type; - const char name[32]; +struct ext4_fc_add_range { + __le32 fc_ino; + __u8 fc_ex[12]; }; -enum mvneta_tx_buf_type { - MVNETA_TYPE_TSO = 0, - MVNETA_TYPE_SKB = 1, - MVNETA_TYPE_XDP_TX = 2, - MVNETA_TYPE_XDP_NDO = 3, +struct ext4_fc_del_range { + __le32 fc_ino; + __le32 fc_lblk; + __le32 fc_len; }; -enum mvneta_bm_type { - MVNETA_BM_FREE = 0, - MVNETA_BM_LONG = 1, - MVNETA_BM_SHORT = 2, +struct ext4_extent_idx; + +struct ext4_ext_path { + ext4_fsblk_t p_block; + __u16 p_depth; + __u16 p_maxdepth; + struct ext4_extent *p_ext; + struct ext4_extent_idx *p_idx; + struct ext4_extent_header *p_hdr; + struct buffer_head *p_bh; }; -enum { - __MVNETA_DOWN = 0, +struct ext4_extent_idx { + __le32 ei_block; + __le32 ei_leaf_lo; + __le16 ei_leaf_hi; + __u16 ei_unused; }; -enum { - TC_MQPRIO_SHAPER_DCB = 0, - TC_MQPRIO_SHAPER_BW_RATE = 1, - __TC_MQPRIO_SHAPER_MAX = 2, +struct dentry_info_args { + int parent_ino; + int dname_len; + int ino; + int inode_len; + char *dname; }; -enum { - ETHTOOL_STAT_EEE_WAKEUP = 0, - ETHTOOL_STAT_SKB_ALLOC_ERR = 1, - ETHTOOL_STAT_REFILL_ERR = 2, - ETHTOOL_XDP_REDIRECT = 3, - ETHTOOL_XDP_PASS = 4, - ETHTOOL_XDP_DROP = 5, - ETHTOOL_XDP_TX = 6, - ETHTOOL_XDP_TX_ERR = 7, - ETHTOOL_XDP_XMIT = 8, - ETHTOOL_XDP_XMIT_ERR = 9, - ETHTOOL_MAX_STATS = 10, +struct ext4_fc_dentry_info { + __le32 fc_parent_ino; + __le32 fc_ino; + __u8 fc_dname[0]; }; -struct mvneta_pcpu_port; +struct ext4_iloc { + struct buffer_head *bh; + unsigned long offset; + ext4_group_t block_group; +}; -struct mvneta_pcpu_stats; +struct ext4_fc_inode { + __le32 fc_ino; + __u8 fc_raw_inode[0]; +}; -struct mvneta_rx_queue; +struct squashfs_sb_info; -struct mvneta_tx_queue; +struct squashfs_page_actor; -struct mvneta_bm; +struct squashfs_decompressor { + void * (*init)(struct squashfs_sb_info *, void *); + void * (*comp_opts)(struct squashfs_sb_info *, void *, int); + void (*free)(void *); + int (*decompress)(struct squashfs_sb_info *, void *, struct bio *, int, int, struct squashfs_page_actor *); + int id; + char *name; + int alloc_buffer; + int supported; +}; -struct mvneta_bm_pool; +struct squashfs_cache; -struct mbus_dram_target_info; +struct meta_index; -struct mvneta_port { - u8 id; - struct mvneta_pcpu_port __attribute__((btf_type_tag("percpu"))) *ports; - struct mvneta_pcpu_stats __attribute__((btf_type_tag("percpu"))) *stats; - unsigned long state; - int pkt_size; - void *base; - struct mvneta_rx_queue *rxqs; - struct mvneta_tx_queue *txqs; - struct net_device *dev; - struct hlist_node node_online; - struct hlist_node node_dead; - int rxq_def; +struct squashfs_decompressor_thread_ops; + +struct squashfs_sb_info { + const struct squashfs_decompressor *decompressor; + int devblksize; + int devblksize_log2; + struct squashfs_cache *block_cache; + struct squashfs_cache *fragment_cache; + struct squashfs_cache *read_page; + struct address_space *cache_mapping; + int next_meta_index; + __le64 *id_table; + __le64 *fragment_index; + __le64 *xattr_id_table; + struct mutex meta_index_mutex; + struct meta_index *meta_index; + void *stream; + __le64 *inode_lookup_table; + u64 inode_table; + u64 directory_table; + u64 xattr_table; + unsigned int block_size; + unsigned short block_log; + long long bytes_used; + unsigned int inodes; + unsigned int fragments; + unsigned int xattr_ids; + unsigned int ids; + bool panic_on_errors; + const struct squashfs_decompressor_thread_ops *thread_ops; + int max_thread_num; +}; + +struct squashfs_cache_entry; + +struct squashfs_cache { + char *name; + int entries; + int curr_blk; + int next_blk; + int num_waiters; + int unused; + int block_size; + int pages; spinlock_t lock; - bool is_stopped; - u32 cause_rx_tx; - struct napi_struct napi; - struct bpf_prog *xdp_prog; - struct clk *clk; - struct clk *clk_bus; - u8 mcast_count[256]; - u16 tx_ring_size; - u16 rx_ring_size; - phy_interface_t phy_interface; - struct device_node *dn; - unsigned int tx_csum_limit; - struct phylink *phylink; - struct phylink_config phylink_config; - struct phylink_pcs phylink_pcs; - struct phy *comphy; - struct mvneta_bm *bm_priv; - struct mvneta_bm_pool *pool_long; - struct mvneta_bm_pool *pool_short; - int bm_win_id; - bool eee_enabled; - bool eee_active; - bool tx_lpi_enabled; - u64 ethtool_stats[42]; - u32 indir[1]; - bool neta_armada3700; - bool neta_ac5; - u16 rx_offset_correction; - const struct mbus_dram_target_info *dram_target_info; + wait_queue_head_t wait_queue; + struct squashfs_cache_entry *entry; }; -struct mvneta_pcpu_port { - struct mvneta_port *pp; - struct napi_struct napi; - u32 cause_rx_tx; +struct squashfs_cache_entry { + u64 block; + int length; + int refcount; + u64 next_index; + int pending; + int error; + int num_waiters; + wait_queue_head_t wait_queue; + struct squashfs_cache *cache; + void **data; + struct squashfs_page_actor *actor; }; -struct mvneta_stats { - u64 rx_packets; - u64 rx_bytes; - u64 tx_packets; - u64 tx_bytes; - u64 xdp_redirect; - u64 xdp_pass; - u64 xdp_drop; - u64 xdp_xmit; - u64 xdp_xmit_err; - u64 xdp_tx; - u64 xdp_tx_err; +struct squashfs_page_actor { + union { + void **buffer; + struct page **page; + }; + void *pageaddr; + void *tmp_buffer; + void * (*squashfs_first_page)(struct squashfs_page_actor *); + void * (*squashfs_next_page)(struct squashfs_page_actor *); + void (*squashfs_finish_page)(struct squashfs_page_actor *); + struct page *last_page; + int pages; + int length; + int next_page; + int alloc_buffer; + int returned_pages; + unsigned long next_index; }; -struct mvneta_ethtool_stats { - struct mvneta_stats ps; - u64 skb_alloc_error; - u64 refill_error; +struct meta_entry { + u64 data_block; + unsigned int index_block; + unsigned short offset; + unsigned short pad; }; -struct mvneta_pcpu_stats { - struct u64_stats_sync syncp; - struct mvneta_ethtool_stats es; - u64 rx_dropped; - u64 rx_errors; +struct meta_index { + unsigned int inode_number; + unsigned int offset; + unsigned short entries; + unsigned short skip; + unsigned short locked; + unsigned short pad; + struct meta_entry meta_entry[127]; }; -struct mvneta_rx_desc; +struct squashfs_decompressor_thread_ops { + void * (*create)(struct squashfs_sb_info *, void *); + void (*destroy)(struct squashfs_sb_info *); + int (*decompress)(struct squashfs_sb_info *, struct bio *, int, int, struct squashfs_page_actor *); + int (*max_decompressors)(); +}; -struct mvneta_rx_queue { - u8 id; - int size; - u32 pkts_coal; - u32 time_coal; - struct page_pool *page_pool; - long: 64; - long: 64; +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; - struct xdp_rxq_info xdp_rxq; - void **buf_virt_addr; - struct mvneta_rx_desc *descs; - dma_addr_t descs_phys; - int last_desc; - int next_desc_to_proc; - int first_to_refill; - u32 refill_num; long: 64; long: 64; long: 64; }; -struct mvneta_rx_desc { - u32 status; - u16 reserved1; - u16 data_size; - u32 buf_phys_addr; - u32 reserved2; - u32 buf_cookie; - u16 reserved3; - u16 reserved4; - u32 reserved5; - u32 reserved6; +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 * const *xattr; + struct list_head list; }; -struct mvneta_tx_buf; +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, +}; -struct mvneta_tx_desc; +typedef int wait_bit_action_f(struct wait_bit_key *, int); -struct mvneta_tx_queue { - u8 id; - int size; - int count; - int pending; - int tx_stop_threshold; - int tx_wake_threshold; - struct mvneta_tx_buf *buf; - int txq_put_index; - int txq_get_index; - u32 done_pkts_coal; - struct mvneta_tx_desc *descs; - dma_addr_t descs_phys; - int last_desc; - int next_desc_to_proc; - char *tso_hdrs[32]; - dma_addr_t tso_hdrs_phys[32]; - cpumask_t affinity_mask; +struct nfs_find_desc { + struct nfs_fh *fh; + struct nfs_fattr *fattr; }; -struct mvneta_tx_buf { - enum mvneta_tx_buf_type type; - union { - struct xdp_frame *xdpf; - struct sk_buff *skb; - }; +struct nfs_referral_count { + struct list_head list; + const struct task_struct *task; + unsigned int referral_count; }; -struct mvneta_tx_desc { - u32 command; - u16 reserved1; - u16 data_size; - u32 buf_phys_addr; - u32 reserved2; - u32 reserved3[4]; +struct nfs_clone_mount { + struct super_block *sb; + struct dentry *dentry; + struct nfs_fattr *fattr; + unsigned int inherited_bsize; }; -struct mvneta_bm { - void *reg_base; - struct clk *clk; - struct platform_device *pdev; - struct gen_pool *bppi_pool; - void *bppi_virt_addr; - dma_addr_t bppi_phys_addr; - struct mvneta_bm_pool *bm_pools; +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; + struct xprtsec_parms xprtsec; + 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; }; -struct hwbm_pool { - int size; - int frag_size; - int buf_num; - int (*construct)(struct hwbm_pool *, void *); - struct mutex buf_lock; - void *priv; +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, }; -struct mvneta_bm_pool { - struct hwbm_pool hwbm_pool; - u8 id; - enum mvneta_bm_type type; - int pkt_size; - u32 buf_size; - u32 *virt_addr; - dma_addr_t phys_addr; - u8 port_map; - struct mvneta_bm *priv; +enum { + NFS_LSEG_VALID = 0, + NFS_LSEG_ROC = 1, + NFS_LSEG_LAYOUTCOMMIT = 2, + NFS_LSEG_LAYOUTRETURN = 3, + NFS_LSEG_UNAVAILABLE = 4, }; -struct mbus_dram_window { - u8 cs_index; - u8 mbus_attr; - u64 base; - u64 size; +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, }; -struct mbus_dram_target_info { - u8 mbus_dram_target_id; - int num_cs; - struct mbus_dram_window cs[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 xdp_frame_bulk { - int count; - void *xa; - void *q[16]; +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, }; -struct page_pool_stats { - struct page_pool_alloc_stats alloc_stats; - struct page_pool_recycle_stats recycle_stats; +enum nfs4_ff_op_type { + NFS4_FF_OP_LAYOUTSTATS = 0, + NFS4_FF_OP_LAYOUTRETURN = 1, }; -enum isp1760_ctrl_state { - ISP1760_CTRL_SETUP = 0, - ISP1760_CTRL_DATA_IN = 1, - ISP1760_CTRL_DATA_OUT = 2, - ISP1760_CTRL_STATUS = 3, +enum pnfs_layouttype { + LAYOUT_NFSV4_1_FILES = 1, + LAYOUT_OSD2_OBJECTS = 2, + LAYOUT_BLOCK_VOLUME = 3, + LAYOUT_FLEX_FILES = 4, + LAYOUT_SCSI = 5, + LAYOUT_TYPE_MAX = 6, }; -enum isp176x_device_controller_fields { - DC_DEVEN = 0, - DC_DEVADDR = 1, - DC_VBUSSTAT = 2, - DC_SFRESET = 3, - DC_GLINTENA = 4, - DC_CDBGMOD_ACK = 5, - DC_DDBGMODIN_ACK = 6, - DC_DDBGMODOUT_ACK = 7, - DC_INTPOL = 8, - DC_IEPRXTX_7 = 9, - DC_IEPRXTX_6 = 10, - DC_IEPRXTX_5 = 11, - DC_IEPRXTX_4 = 12, - DC_IEPRXTX_3 = 13, - DC_IEPRXTX_2 = 14, - DC_IEPRXTX_1 = 15, - DC_IEPRXTX_0 = 16, - DC_IEP0SETUP = 17, - DC_IEVBUS = 18, - DC_IEHS_STA = 19, - DC_IERESM = 20, - DC_IESUSP = 21, - DC_IEBRST = 22, - DC_EP0SETUP = 23, - DC_ENDPIDX = 24, - DC_EPDIR = 25, - DC_CLBUF = 26, - DC_VENDP = 27, - DC_DSEN = 28, - DC_STATUS = 29, - DC_STALL = 30, - DC_BUFLEN = 31, - DC_FFOSZ = 32, - DC_EPENABLE = 33, - DC_ENDPTYP = 34, - DC_FRAMENUM = 35, - DC_UFRAMENUM = 36, - DC_CHIP_ID_HIGH = 37, - DC_CHIP_ID_LOW = 38, - DC_SCRATCH = 39, - DC_FIELD_MAX = 40, +struct nfs4_ff_layout_ds_err { + struct list_head list; + u64 offset; + u64 length; + int status; + enum nfs_opnum4 opnum; + nfs4_stateid stateid; + struct nfs4_deviceid deviceid; }; -struct isp1760_udc; +struct nfs4_ff_layout_mirror; -struct isp1760_ep { - struct isp1760_udc *udc; - struct usb_ep ep; - struct list_head queue; - unsigned int addr; - unsigned int maxpacket; - char name[7]; - const struct usb_endpoint_descriptor *desc; - bool rx_pending; - bool halted; - bool wedged; +struct nfs4_ff_layout_segment { + struct pnfs_layout_segment generic_hdr; + u64 stripe_unit; + u32 flags; + u32 mirror_array_cnt; + struct nfs4_ff_layout_mirror *mirror_array[0]; }; -struct isp1760_device; - -struct isp1760_udc { - struct isp1760_device *isp; - int irq; - char *irqname; - struct regmap *regs; - struct regmap_field *fields[40]; - struct usb_gadget_driver *driver; - struct usb_gadget gadget; - spinlock_t lock; - struct timer_list vbus_timer; - struct isp1760_ep ep[15]; - enum isp1760_ctrl_state ep0_state; - u8 ep0_dir; - u16 ep0_length; - bool connected; - bool is_isp1763; - unsigned int devstatus; +struct nfs4_ff_io_stat { + __u64 ops_requested; + __u64 bytes_requested; + __u64 ops_completed; + __u64 bytes_completed; + __u64 bytes_not_delivered; + ktime_t total_busy_time; + ktime_t aggregate_completion_time; }; -struct isp1760_memory_chunk { - unsigned int start; - unsigned int size; - unsigned int free; +struct nfs4_ff_busy_timer { + ktime_t start_time; + atomic_t n_ops; }; -struct isp1760_memory_layout; +struct nfs4_ff_layoutstat { + struct nfs4_ff_io_stat io_stat; + struct nfs4_ff_busy_timer busy_timer; +}; -struct isp1760_slotinfo; +struct nfs4_ff_layout_ds; -struct isp1760_hcd { - struct usb_hcd *hcd; - void *base; - struct regmap *regs; - struct regmap_field *fields[78]; - bool is_isp1763; - const struct isp1760_memory_layout *memory_layout; - spinlock_t lock; - struct isp1760_slotinfo *atl_slots; - int atl_done_map; - struct isp1760_slotinfo *int_slots; - int int_done_map; - struct isp1760_memory_chunk memory_pool[56]; - struct list_head qh_list[3]; - unsigned int periodic_size; - unsigned int i_thresh; - unsigned long reset_done; - unsigned long next_statechange; +struct nfs4_ff_layout_mirror { + struct pnfs_layout_hdr *layout; + struct list_head mirrors; + u32 ds_count; + u32 efficiency; + struct nfs4_deviceid devid; + struct nfs4_ff_layout_ds *mirror_ds; + u32 fh_versions_cnt; + struct nfs_fh *fh_versions; + nfs4_stateid stateid; + const struct cred __attribute__((btf_type_tag("rcu"))) *ro_cred; + const struct cred __attribute__((btf_type_tag("rcu"))) *rw_cred; + refcount_t ref; + spinlock_t lock; + unsigned long flags; + struct nfs4_ff_layoutstat read_stat; + struct nfs4_ff_layoutstat write_stat; + ktime_t start_time; + u32 report_interval; }; -struct isp1760_device { - struct device *dev; - unsigned int devflags; - struct gpio_desc *rst_gpio; - struct isp1760_hcd hcd; - struct isp1760_udc udc; -}; +struct nfs4_ff_ds_version; -struct isp1760_memory_layout { - unsigned int blocks[3]; - unsigned int blocks_size[3]; - unsigned int slot_num; - unsigned int payload_blocks; - unsigned int payload_area_size; -}; +struct nfs4_pnfs_ds; -struct isp1760_qh; +struct nfs4_ff_layout_ds { + struct nfs4_deviceid_node id_node; + u32 ds_versions_cnt; + struct nfs4_ff_ds_version *ds_versions; + struct nfs4_pnfs_ds *ds; +}; -struct isp1760_qtd; +struct nfs4_ff_ds_version { + u32 version; + u32 minor_version; + u32 rsize; + u32 wsize; + bool tightly_coupled; +}; -struct isp1760_slotinfo { - struct isp1760_qh *qh; - struct isp1760_qtd *qtd; - unsigned long timestamp; +struct nfs4_pnfs_ds { + struct list_head ds_node; + char *ds_remotestr; + struct list_head ds_addrs; + struct nfs_client *ds_clp; + refcount_t ds_count; + unsigned long ds_state; }; -struct isp1760_request { - struct usb_request req; - struct list_head queue; - struct isp1760_ep *ep; - unsigned int packet_size; +struct nfs4_flexfile_layout { + struct pnfs_layout_hdr generic_hdr; + struct pnfs_ds_commit_info commit_info; + struct list_head mirrors; + struct list_head error_list; + ktime_t last_report_time; }; -enum dma_channel_status { - MUSB_DMA_STATUS_UNKNOWN = 0, - MUSB_DMA_STATUS_FREE = 1, - MUSB_DMA_STATUS_BUSY = 2, - MUSB_DMA_STATUS_BUS_ABORT = 3, - MUSB_DMA_STATUS_CORE_ABORT = 4, +struct nfs4_pnfs_ds_addr { + struct __kernel_sockaddr_storage da_addr; + size_t da_addrlen; + struct list_head da_node; + char *da_remotestr; + const char *da_netid; + int da_transport; }; -enum musb_vbus_id_status { - MUSB_UNKNOWN = 0, - MUSB_ID_GROUND = 1, - MUSB_ID_FLOAT = 2, - MUSB_VBUS_VALID = 3, - MUSB_VBUS_OFF = 4, +struct nfs42_device_error { + struct nfs4_deviceid dev_id; + int status; + enum nfs_opnum4 opnum; }; -enum musb_h_ep0_state { - MUSB_EP0_IDLE = 0, - MUSB_EP0_START = 1, - MUSB_EP0_IN = 2, - MUSB_EP0_OUT = 3, - MUSB_EP0_STATUS = 4, -} __attribute__((mode(byte))); +struct nfs42_layout_error { + __u64 offset; + __u64 length; + nfs4_stateid stateid; + struct nfs42_device_error errors[1]; +}; -enum musb_mode { - MUSB_UNDEFINED = 0, - MUSB_HOST = 1, - MUSB_PERIPHERAL = 2, - MUSB_OTG = 3, +struct pnfs_commit_bucket { + struct list_head written; + struct list_head committing; + struct pnfs_layout_segment *lseg; + struct nfs_writeverf direct_verf; }; -enum musb_g_ep0_state { - MUSB_EP0_STAGE_IDLE = 0, - MUSB_EP0_STAGE_SETUP = 1, - MUSB_EP0_STAGE_TX = 2, - MUSB_EP0_STAGE_RX = 3, - MUSB_EP0_STAGE_STATUSIN = 4, - MUSB_EP0_STAGE_STATUSOUT = 5, - MUSB_EP0_STAGE_ACKWAIT = 6, -} __attribute__((mode(byte))); +struct pnfs_commit_array { + struct list_head cinfo_list; + struct list_head lseg_list; + struct pnfs_layout_segment *lseg; + struct callback_head rcu; + refcount_t refcount; + unsigned int nbuckets; + struct pnfs_commit_bucket buckets[0]; +}; -enum musb_fifo_style { - FIFO_RXTX = 0, - FIFO_TX = 1, - FIFO_RX = 2, -} __attribute__((mode(byte))); +struct nfs4_flexfile_layoutreturn_args { + struct list_head errors; + struct nfs42_layoutstat_devinfo devinfo[4]; + unsigned int num_errors; + unsigned int num_dev; + struct page *pages[1]; +}; -enum musb_buf_mode { - BUF_SINGLE = 0, - BUF_DOUBLE = 1, -} __attribute__((mode(byte))); +enum { + TRACEFS_EVENT_INODE = 2, + TRACEFS_EVENT_TOP_INODE = 4, +}; -enum buffer_map_state { - UN_MAPPED = 0, - PRE_MAPPED = 1, - MUSB_MAPPED = 2, +enum { + EVENTFS_SAVE_MODE = 65536, + EVENTFS_SAVE_UID = 131072, + EVENTFS_SAVE_GID = 262144, }; -struct musb_ep; +struct eventfs_attr { + int mode; + kuid_t uid; + kgid_t gid; +}; -struct musb; +struct eventfs_entry; -struct musb_request { - struct usb_request request; +struct eventfs_inode { struct list_head list; - struct musb_ep *ep; - struct musb *musb; - u8 tx; - u8 epnum; - enum buffer_map_state map_state; + const struct eventfs_entry *entries; + const char *name; + struct list_head children; + struct dentry *dentry; + struct dentry *d_parent; + struct dentry **d_children; + struct eventfs_attr *entry_attrs; + struct eventfs_attr attr; + void *data; + union { + struct llist_node llist; + struct callback_head rcu; + }; + unsigned int is_freed: 1; + unsigned int is_events: 1; + unsigned int nr_entries: 30; }; -struct musb_hw_ep; - -struct dma_channel; +typedef int (*eventfs_callback)(const char *, umode_t *, void **, const struct file_operations **); -struct musb_ep { - struct usb_ep end_point; - char name[12]; - struct musb_hw_ep *hw_ep; - struct musb *musb; - u8 current_epnum; - u8 type; - u8 is_in; - u16 packet_sz; - const struct usb_endpoint_descriptor *desc; - struct dma_channel *dma; - struct list_head req_list; - u8 wedged; - u8 busy; - u8 hb_mult; +struct eventfs_entry { + const char *name; + eventfs_callback callback; }; -struct musb_qh; - -struct musb_hw_ep { - struct musb *musb; - void *fifo; - void *regs; - u8 epnum; - bool is_shared_fifo; - bool tx_double_buffered; - bool rx_double_buffered; - u16 max_packet_sz_tx; - u16 max_packet_sz_rx; - struct dma_channel *tx_channel; - struct dma_channel *rx_channel; - struct musb_qh *in_qh; - struct musb_qh *out_qh; - u8 rx_reinit; - u8 tx_reinit; - struct musb_ep ep_in; - struct musb_ep ep_out; +struct tracefs_inode { + unsigned long flags; + void *private; + struct inode vfs_inode; }; -struct musb_io { - u32 (*ep_offset)(u8, u16); - void (*ep_select)(void *, u8); - u32 (*fifo_offset)(u8); - void (*read_fifo)(struct musb_hw_ep *, u16, u8 *); - void (*write_fifo)(struct musb_hw_ep *, u16, const u8 *); - u32 (*busctl_offset)(u8, u16); - u16 (*get_toggle)(struct musb_qh *, int); - u16 (*set_toggle)(struct musb_qh *, int, struct urb *); +struct dentry_list { + void *cursor; + struct dentry **dentries; }; -struct musb_csr_regs { - u16 txmaxp; - u16 txcsr; - u16 rxmaxp; - u16 rxcsr; - u16 rxfifoadd; - u16 txfifoadd; - u8 txtype; - u8 txinterval; - u8 rxtype; - u8 rxinterval; - u8 rxfifosz; - u8 txfifosz; - u8 txfunaddr; - u8 txhubaddr; - u8 txhubport; - u8 rxfunaddr; - u8 rxhubaddr; - u8 rxhubport; +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, }; -struct musb_context_registers { - u8 power; - u8 intrusbe; - u16 frame; - u8 index; - u8 testmode; - u8 devctl; - u8 busctl; - u8 misc; - u32 otg_interfsel; - struct musb_csr_regs index_regs[16]; +struct ext_wait_queue { + struct task_struct *task; + struct list_head list; + struct msg_msg *msg; + int state; }; -struct musb_platform_ops; - -struct dma_controller; - -struct musb_hdrc_config; +struct posix_msg_tree_node; -struct musb { +struct mqueue_inode_info { spinlock_t lock; - spinlock_t list_lock; - struct musb_io io; - const struct musb_platform_ops *ops; - struct musb_context_registers context; - irqreturn_t (*isr)(int, void *); - struct delayed_work irq_work; - struct delayed_work deassert_reset_work; - struct delayed_work finish_resume_work; - struct delayed_work gadget_work; - u16 hwvers; - u16 intrrxe; - u16 intrtxe; - u32 port1_status; - unsigned long rh_timer; - enum musb_h_ep0_state ep0_stage; - struct musb_hw_ep *bulk_ep; - struct list_head control; - struct list_head in_bulk; - struct list_head out_bulk; - struct list_head pending_list; - struct timer_list otg_timer; - struct timer_list dev_timer; - struct notifier_block nb; - struct dma_controller *dma_controller; - struct device *controller; - void *ctrl_base; - void *mregs; - u8 int_usb; - u16 int_rx; - u16 int_tx; - struct usb_phy *xceiv; - struct phy *phy; - enum usb_otg_state otg_state; - int nIrq; - unsigned int irq_wake: 1; - struct musb_hw_ep endpoints[16]; - u16 vbuserr_retry; - u16 epmask; - u8 nr_endpoints; - u8 min_power; - enum musb_mode port_mode; - bool session; - unsigned long quirk_retries; - bool is_host; - int a_wait_bcon; - unsigned long idle_timeout; - unsigned int is_initialized: 1; - unsigned int is_runtime_suspended: 1; - unsigned int is_active: 1; - unsigned int is_multipoint: 1; - unsigned int hb_iso_rx: 1; - unsigned int hb_iso_tx: 1; - unsigned int dyn_fifo: 1; - unsigned int bulk_split: 1; - unsigned int bulk_combine: 1; - unsigned int is_suspended: 1; - unsigned int may_wakeup: 1; - unsigned int is_self_powered: 1; - unsigned int is_bus_powered: 1; - unsigned int set_address: 1; - unsigned int test_mode: 1; - unsigned int softconnect: 1; - unsigned int flush_irq_work: 1; - u8 address; - u8 test_mode_nr; - u16 ackpend; - enum musb_g_ep0_state ep0_state; - struct usb_gadget g; - struct usb_gadget_driver *gadget_driver; - struct usb_hcd *hcd; - const struct musb_hdrc_config *config; - int xceiv_old_state; - struct dentry *debugfs_root; + 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 musb_qh { - struct usb_host_endpoint *hep; - struct usb_device *dev; - struct musb_hw_ep *hw_ep; - struct list_head ring; - u8 mux; - unsigned int offset; - unsigned int segsize; - u8 type_reg; - u8 intv_reg; - u8 addr_reg; - u8 h_addr_reg; - u8 h_port_reg; - u8 is_ready; - u8 type; - u8 epnum; - u8 hb_mult; - u16 maxpacket; - u16 frame; - unsigned int iso_idx; - struct sg_mapping_iter sg_miter; - bool use_sg; +struct posix_msg_tree_node { + struct rb_node rb_node; + struct list_head msg_list; + int priority; }; -struct musb_platform_ops { - u32 quirks; - int (*init)(struct musb *); - int (*exit)(struct musb *); - void (*enable)(struct musb *); - void (*disable)(struct musb *); - u32 (*ep_offset)(u8, u16); - void (*ep_select)(void *, u8); - u16 fifo_mode; - u32 (*fifo_offset)(u8); - u32 (*busctl_offset)(u8, u16); - u8 (*readb)(void *, u32); - void (*writeb)(void *, u32, u8); - u8 (*clearb)(void *, u32); - u16 (*readw)(void *, u32); - void (*writew)(void *, u32, u16); - u16 (*clearw)(void *, u32); - void (*read_fifo)(struct musb_hw_ep *, u16, u8 *); - void (*write_fifo)(struct musb_hw_ep *, u16, const u8 *); - u16 (*get_toggle)(struct musb_qh *, int); - u16 (*set_toggle)(struct musb_qh *, int, struct urb *); - struct dma_controller * (*dma_init)(struct musb *, void *); - void (*dma_exit)(struct dma_controller *); - int (*set_mode)(struct musb *, u8); - void (*try_idle)(struct musb *, unsigned long); - int (*recover)(struct musb *); - int (*vbus_status)(struct musb *); - void (*set_vbus)(struct musb *, int); - void (*pre_root_reset_end)(struct musb *); - void (*post_root_reset_end)(struct musb *); - int (*phy_callback)(enum musb_vbus_id_status); - void (*clear_ep_rxintr)(struct musb *, int); +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 dma_controller { - struct musb *musb; - struct dma_channel * (*channel_alloc)(struct dma_controller *, struct musb_hw_ep *, u8); - void (*channel_release)(struct dma_channel *); - int (*channel_program)(struct dma_channel *, u16, u8, dma_addr_t, u32); - int (*channel_abort)(struct dma_channel *); - int (*is_compatible)(struct dma_channel *, u16, void *, u32); - void (*dma_callback)(struct dma_controller *); -}; +typedef s32 compat_int_t; -struct dma_channel { - void *private_data; - size_t max_len; - size_t actual_len; - enum dma_channel_status status; - bool desired_mode; - bool rx_packet_done; +union compat_sigval { + compat_int_t sival_int; + compat_uptr_t sival_ptr; }; -struct musb_fifo_cfg; - -struct musb_hdrc_config { - struct musb_fifo_cfg *fifo_cfg; - unsigned int fifo_cfg_size; - unsigned int multipoint: 1; - unsigned int dyn_fifo: 1; - unsigned int host_port_deassert_reset_at_resume: 1; - u8 num_eps; - u8 ram_bits; - u32 maximum_speed; -}; +typedef union compat_sigval compat_sigval_t; -struct musb_fifo_cfg { - u8 hw_ep_num; - enum musb_fifo_style style; - enum musb_buf_mode mode; - u16 maxpacket; +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 matrix_keymap_data { - const uint32_t *keymap; - unsigned int keymap_size; +struct mqueue_fs_context { + struct ipc_namespace *ipc_ns; + bool newns; }; -struct s5m_rtc_reg_config { - unsigned int regs_count; - unsigned int time; - unsigned int ctrl; - unsigned int alarm0; - unsigned int alarm1; - unsigned int udr_update; - unsigned int autoclear_udr_mask; - unsigned int read_time_udr_mask; - unsigned int write_time_udr_mask; - unsigned int write_alarm_udr_mask; +struct hash_alg_common { + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; }; -enum sec_device_type { - S5M8767X = 0, - S2MPA01 = 1, - S2MPS11X = 2, - S2MPS13X = 3, - S2MPS14X = 4, - S2MPS15X = 5, - S2MPU02 = 6, +struct shash_alg { + int (*init)(struct shash_desc *); + int (*update)(struct shash_desc *, const u8 *, unsigned int); + int (*final)(struct shash_desc *, u8 *); + int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*export)(struct shash_desc *, void *); + int (*import)(struct shash_desc *, const void *); + int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_shash *); + void (*exit_tfm)(struct crypto_shash *); + int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *); + unsigned int descsize; + union { + struct { + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; + }; + struct hash_alg_common halg; + }; }; -enum s2mps14_irq { - S2MPS14_IRQ_PWRONF = 0, - S2MPS14_IRQ_PWRONR = 1, - S2MPS14_IRQ_JIGONBF = 2, - S2MPS14_IRQ_JIGONBR = 3, - S2MPS14_IRQ_ACOKBF = 4, - S2MPS14_IRQ_ACOKBR = 5, - S2MPS14_IRQ_PWRON1S = 6, - S2MPS14_IRQ_MRB = 7, - S2MPS14_IRQ_RTC60S = 8, - S2MPS14_IRQ_RTCA1 = 9, - S2MPS14_IRQ_RTCA0 = 10, - S2MPS14_IRQ_SMPL = 11, - S2MPS14_IRQ_RTC1S = 12, - S2MPS14_IRQ_WTSR = 13, - S2MPS14_IRQ_INT120C = 14, - S2MPS14_IRQ_INT140C = 15, - S2MPS14_IRQ_TSD = 16, - S2MPS14_IRQ_NR = 17, +struct shash_instance { + void (*free)(struct shash_instance *); + union { + struct { + char head[104]; + struct crypto_instance base; + } s; + struct shash_alg alg; + }; }; -enum s5m8767_irq { - S5M8767_IRQ_PWRR = 0, - S5M8767_IRQ_PWRF = 1, - S5M8767_IRQ_PWR1S = 2, - S5M8767_IRQ_JIGR = 3, - S5M8767_IRQ_JIGF = 4, - S5M8767_IRQ_LOWBAT2 = 5, - S5M8767_IRQ_LOWBAT1 = 6, - S5M8767_IRQ_MRB = 7, - S5M8767_IRQ_DVSOK2 = 8, - S5M8767_IRQ_DVSOK3 = 9, - S5M8767_IRQ_DVSOK4 = 10, - S5M8767_IRQ_RTC60S = 11, - S5M8767_IRQ_RTCA1 = 12, - S5M8767_IRQ_RTCA2 = 13, - S5M8767_IRQ_SMPL = 14, - S5M8767_IRQ_RTC1S = 15, - S5M8767_IRQ_WTSR = 16, - S5M8767_IRQ_NR = 17, +struct crypto_shash_spawn { + struct crypto_spawn base; }; -enum s5m_rtc_reg { - S5M_RTC_SEC = 0, - S5M_RTC_MIN = 1, - S5M_RTC_HOUR = 2, - S5M_RTC_WEEKDAY = 3, - S5M_RTC_DATE = 4, - S5M_RTC_MONTH = 5, - S5M_RTC_YEAR1 = 6, - S5M_RTC_YEAR2 = 7, - S5M_ALARM0_SEC = 8, - S5M_ALARM0_MIN = 9, - S5M_ALARM0_HOUR = 10, - S5M_ALARM0_WEEKDAY = 11, - S5M_ALARM0_DATE = 12, - S5M_ALARM0_MONTH = 13, - S5M_ALARM0_YEAR1 = 14, - S5M_ALARM0_YEAR2 = 15, - S5M_ALARM1_SEC = 16, - S5M_ALARM1_MIN = 17, - S5M_ALARM1_HOUR = 18, - S5M_ALARM1_WEEKDAY = 19, - S5M_ALARM1_DATE = 20, - S5M_ALARM1_MONTH = 21, - S5M_ALARM1_YEAR1 = 22, - S5M_ALARM1_YEAR2 = 23, - S5M_ALARM0_CONF = 24, - S5M_ALARM1_CONF = 25, - S5M_RTC_STATUS = 26, - S5M_WTSR_SMPL_CNTL = 27, - S5M_RTC_UDR_CON = 28, - S5M_RTC_REG_MAX = 29, +struct hmac_ctx { + struct crypto_shash *hash; + u8 pads[0]; }; -enum { - RTC_SEC = 0, - RTC_MIN = 1, - RTC_HOUR = 2, - RTC_WEEKDAY = 3, - RTC_DATE = 4, - RTC_MONTH = 5, - RTC_YEAR1 = 6, - RTC_YEAR2 = 7, - RTC_MAX_NUM_TIME_REGS = 8, -}; +struct elevator_type; -enum s2mps14_reg { - S2MPS14_REG_ID = 0, - S2MPS14_REG_INT1 = 1, - S2MPS14_REG_INT2 = 2, - S2MPS14_REG_INT3 = 3, - S2MPS14_REG_INT1M = 4, - S2MPS14_REG_INT2M = 5, - S2MPS14_REG_INT3M = 6, - S2MPS14_REG_ST1 = 7, - S2MPS14_REG_ST2 = 8, - S2MPS14_REG_PWRONSRC = 9, - S2MPS14_REG_OFFSRC = 10, - S2MPS14_REG_BU_CHG = 11, - S2MPS14_REG_RTCCTRL = 12, - S2MPS14_REG_CTRL1 = 13, - S2MPS14_REG_CTRL2 = 14, - S2MPS14_REG_RSVD1 = 15, - S2MPS14_REG_RSVD2 = 16, - S2MPS14_REG_RSVD3 = 17, - S2MPS14_REG_RSVD4 = 18, - S2MPS14_REG_RSVD5 = 19, - S2MPS14_REG_RSVD6 = 20, - S2MPS14_REG_CTRL3 = 21, - S2MPS14_REG_RSVD7 = 22, - S2MPS14_REG_RSVD8 = 23, - S2MPS14_REG_WRSTBI = 24, - S2MPS14_REG_B1CTRL1 = 25, - S2MPS14_REG_B1CTRL2 = 26, - S2MPS14_REG_B2CTRL1 = 27, - S2MPS14_REG_B2CTRL2 = 28, - S2MPS14_REG_B3CTRL1 = 29, - S2MPS14_REG_B3CTRL2 = 30, - S2MPS14_REG_B4CTRL1 = 31, - S2MPS14_REG_B4CTRL2 = 32, - S2MPS14_REG_B5CTRL1 = 33, - S2MPS14_REG_B5CTRL2 = 34, - S2MPS14_REG_L1CTRL = 35, - S2MPS14_REG_L2CTRL = 36, - S2MPS14_REG_L3CTRL = 37, - S2MPS14_REG_L4CTRL = 38, - S2MPS14_REG_L5CTRL = 39, - S2MPS14_REG_L6CTRL = 40, - S2MPS14_REG_L7CTRL = 41, - S2MPS14_REG_L8CTRL = 42, - S2MPS14_REG_L9CTRL = 43, - S2MPS14_REG_L10CTRL = 44, - S2MPS14_REG_L11CTRL = 45, - S2MPS14_REG_L12CTRL = 46, - S2MPS14_REG_L13CTRL = 47, - S2MPS14_REG_L14CTRL = 48, - S2MPS14_REG_L15CTRL = 49, - S2MPS14_REG_L16CTRL = 50, - S2MPS14_REG_L17CTRL = 51, - S2MPS14_REG_L18CTRL = 52, - S2MPS14_REG_L19CTRL = 53, - S2MPS14_REG_L20CTRL = 54, - S2MPS14_REG_L21CTRL = 55, - S2MPS14_REG_L22CTRL = 56, - S2MPS14_REG_L23CTRL = 57, - S2MPS14_REG_L24CTRL = 58, - S2MPS14_REG_L25CTRL = 59, - S2MPS14_REG_LDODSCH1 = 60, - S2MPS14_REG_LDODSCH2 = 61, - S2MPS14_REG_LDODSCH3 = 62, +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 sec_pmic_dev; - -struct s5m_rtc_info { - struct device *dev; - struct i2c_client *i2c; - struct sec_pmic_dev *s5m87xx; - struct regmap *regmap; - struct rtc_device *rtc_dev; - int irq; - enum sec_device_type device_type; - int rtc_24hr_mode; - const struct s5m_rtc_reg_config *regs; +enum elv_merge { + ELEVATOR_NO_MERGE = 0, + ELEVATOR_FRONT_MERGE = 1, + ELEVATOR_BACK_MERGE = 2, + ELEVATOR_DISCARD_MERGE = 3, }; -struct sec_platform_data; +typedef unsigned int blk_insert_t; -struct regmap_irq_chip_data; +struct blk_mq_alloc_data; -struct sec_pmic_dev { - struct device *dev; - struct sec_platform_data *pdata; - struct regmap *regmap_pmic; - struct i2c_client *i2c; - unsigned long device_type; - int irq; - struct regmap_irq_chip_data *irq_data; +struct elevator_mq_ops { + int (*init_sched)(struct request_queue *, struct elevator_type *); + void (*exit_sched)(struct elevator_queue *); + int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int); + void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int); + void (*depth_updated)(struct blk_mq_hw_ctx *); + bool (*allow_merge)(struct request_queue *, struct request *, struct bio *); + bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int); + int (*request_merge)(struct request_queue *, struct request **, struct bio *); + void (*request_merged)(struct request_queue *, struct request *, enum elv_merge); + void (*requests_merged)(struct request_queue *, struct request *, struct request *); + void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *); + void (*prepare_request)(struct request *); + void (*finish_request)(struct request *); + void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, blk_insert_t); + struct request * (*dispatch_request)(struct blk_mq_hw_ctx *); + bool (*has_work)(struct blk_mq_hw_ctx *); + void (*completed_request)(struct request *, u64); + void (*requeue_request)(struct request *); + struct request * (*former_request)(struct request_queue *, struct request *); + struct request * (*next_request)(struct request_queue *, struct request *); + void (*init_icq)(struct io_cq *); + void (*exit_icq)(struct io_cq *); }; -struct sec_regulator_data; - -struct sec_opmode_data; +struct elv_fs_entry; -struct sec_platform_data { - struct sec_regulator_data *regulators; - struct sec_opmode_data *opmode; - int num_regulators; - int buck_gpios[3]; - int buck_ds[3]; - unsigned int buck2_voltage[8]; - bool buck2_gpiodvs; - unsigned int buck3_voltage[8]; - bool buck3_gpiodvs; - unsigned int buck4_voltage[8]; - bool buck4_gpiodvs; - int buck_default_idx; - int buck_ramp_delay; - bool buck2_ramp_enable; - bool buck3_ramp_enable; - bool buck4_ramp_enable; - int buck2_init; - int buck3_init; - int buck4_init; - bool manual_poweroff; - bool disable_wrstbi; +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 sec_regulator_data { - int id; - struct regulator_init_data *initdata; - struct device_node *reg_node; - struct gpio_desc *ext_control_gpiod; +struct blk_mq_ctxs { + struct kobject kobj; + struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx; }; -struct sec_opmode_data { - int id; - unsigned int mode; -}; +typedef __u32 blk_mq_req_flags_t; -struct bsc_clk_param { - u32 hz; - u32 scl_mask; - u32 div_mask; +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; }; -enum bsc_xfer_cmd { - CMD_WR = 0, - CMD_RD = 1, - CMD_WR_NOACK = 2, - CMD_RD_NOACK = 3, +struct elv_fs_entry { + struct attribute attr; + ssize_t (*show)(struct elevator_queue *, char *); + ssize_t (*store)(struct elevator_queue *, const char *, size_t); }; -struct bsc_regs; - -struct brcmstb_i2c_dev { - struct device *device; - void *base; - int irq; - struct bsc_regs *bsc_regmap; - struct i2c_adapter adapter; - struct completion done; - u32 clk_freq_hz; - int data_regsz; +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 bsc_regs { - u32 chip_address; - u32 data_in[8]; - u32 cnt_reg; - u32 ctl_reg; - u32 iic_enable; - u32 data_out[8]; - u32 ctlhi_reg; - u32 scl_param; +struct blkg_iostat { + u64 bytes[3]; + u64 ios[3]; }; -struct cpufreq_cooling_device { - u32 last_load; - unsigned int cpufreq_state; - unsigned int max_level; - struct em_perf_domain *em; - struct cpufreq_policy *policy; - struct thermal_cooling_device_ops cooling_ops; - struct freq_qos_request qos_req; +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 watchdog_info { - __u32 options; - __u32 firmware_version; - __u8 identity[32]; -}; +struct blkcg; -struct watchdog_device; +struct blkg_policy_data; -struct watchdog_ops { - struct module *owner; - int (*start)(struct watchdog_device *); - int (*stop)(struct watchdog_device *); - int (*ping)(struct watchdog_device *); - unsigned int (*status)(struct watchdog_device *); - int (*set_timeout)(struct watchdog_device *, unsigned int); - int (*set_pretimeout)(struct watchdog_device *, unsigned int); - unsigned int (*get_timeleft)(struct watchdog_device *); - int (*restart)(struct watchdog_device *, unsigned long, void *); - long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long); +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 watchdog_governor; - -struct watchdog_core_data; +struct blkcg_policy_data; -struct watchdog_device { - int id; - struct device *parent; - const struct attribute_group **groups; - const struct watchdog_info *info; - const struct watchdog_ops *ops; - const struct watchdog_governor *gov; - unsigned int bootstatus; - unsigned int timeout; - unsigned int pretimeout; - unsigned int min_timeout; - unsigned int max_timeout; - unsigned int min_hw_heartbeat_ms; - unsigned int max_hw_heartbeat_ms; - struct notifier_block reboot_nb; - struct notifier_block restart_nb; - struct notifier_block pm_nb; - void *driver_data; - struct watchdog_core_data *wd_data; - unsigned long status; - struct list_head deferred; +struct blkcg { + struct cgroup_subsys_state css; + spinlock_t lock; + refcount_t online_pin; + struct xarray blkg_tree; + struct blkcg_gq __attribute__((btf_type_tag("rcu"))) *blkg_hint; + struct hlist_head blkg_list; + struct blkcg_policy_data *cpd[6]; + struct list_head all_blkcgs_node; + struct llist_head __attribute__((btf_type_tag("percpu"))) *lhead; + struct list_head cgwb_list; }; -struct watchdog_governor { - const char name[20]; - void (*pretimeout)(struct watchdog_device *); +struct blkcg_policy_data { + struct blkcg *blkcg; + int plid; }; -enum smcwd_call { - SMCWD_INIT = 0, - SMCWD_SET_TIMEOUT = 1, - SMCWD_ENABLE = 2, - SMCWD_PET = 3, - SMCWD_GET_TIMELEFT = 4, +struct blkg_policy_data { + struct blkcg_gq *blkg; + int plid; + bool online; }; -enum scmi_power_scale { - SCMI_POWER_BOGOWATTS = 0, - SCMI_POWER_MILLIWATTS = 1, - SCMI_POWER_MICROWATTS = 2, -}; +struct rchan_callbacks; -struct scmi_perf_proto_ops { - int (*limits_set)(const struct scmi_protocol_handle *, u32, u32, u32); - int (*limits_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); - int (*level_set)(const struct scmi_protocol_handle *, u32, u32, bool); - int (*level_get)(const struct scmi_protocol_handle *, u32, u32 *, bool); - int (*device_domain_id)(struct device *); - int (*transition_latency_get)(const struct scmi_protocol_handle *, struct device *); - int (*device_opps_add)(const struct scmi_protocol_handle *, struct device *); - int (*freq_set)(const struct scmi_protocol_handle *, u32, unsigned long, bool); - int (*freq_get)(const struct scmi_protocol_handle *, u32, unsigned long *, bool); - int (*est_power_get)(const struct scmi_protocol_handle *, u32, unsigned long *, unsigned long *); - bool (*fast_switch_possible)(const struct scmi_protocol_handle *, struct device *); - enum scmi_power_scale (*power_scale_get)(const struct scmi_protocol_handle *); -}; +struct rchan_buf; -struct em_data_callback { - int (*active_power)(struct device *, unsigned long *, unsigned long *); - int (*get_cost)(struct device *, unsigned long, unsigned long *); +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 scmi_data { - int domain_id; - int nr_opp; - struct device *cpu_dev; - cpumask_var_t opp_shared_cpus; +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 hd_geometry { - unsigned char heads; - unsigned char sectors; - unsigned short cylinders; - unsigned long start; -}; - -struct mmc_driver { - struct device_driver drv; - int (*probe)(struct mmc_card *); - void (*remove)(struct mmc_card *); - void (*shutdown)(struct mmc_card *); +struct rchan_buf { + void *start; + void *data; + size_t offset; + size_t subbufs_produced; + size_t subbufs_consumed; + struct rchan *chan; + wait_queue_head_t read_wait; + struct irq_work wakeup_work; + struct dentry *dentry; + struct kref kref; + struct page **page_array; + unsigned int page_count; + unsigned int finalized; + size_t *padding; + size_t prev_padding; + size_t bytes_consumed; + size_t early_bytes; + unsigned int cpu; + long: 64; + long: 64; }; -struct mmc_fixup { - const char *name; - u64 rev_start; - u64 rev_end; - unsigned int manfid; - unsigned short oemid; - unsigned short year; - unsigned char month; - u16 cis_vendor; - u16 cis_device; - unsigned int ext_csd_rev; - const char *of_compatible; - void (*vendor_fixup)(struct mmc_card *, int); - int data; -}; +typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *); -enum mmc_drv_op { - MMC_DRV_OP_IOCTL = 0, - MMC_DRV_OP_IOCTL_RPMB = 1, - MMC_DRV_OP_BOOT_WP = 2, - MMC_DRV_OP_GET_CARD_STATUS = 3, - MMC_DRV_OP_GET_EXT_CSD = 4, -}; +typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *); -enum mmc_issued { - MMC_REQ_STARTED = 0, - MMC_REQ_BUSY = 1, - MMC_REQ_FAILED_TO_START = 2, - MMC_REQ_FINISHED = 3, -}; +typedef void (*btf_trace_block_rq_requeue)(void *, struct request *); -enum mmc_issue_type { - MMC_ISSUE_SYNC = 0, - MMC_ISSUE_DCMD = 1, - MMC_ISSUE_ASYNC = 2, - MMC_ISSUE_MAX = 3, -}; +typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int); -enum mmc_busy_cmd { - MMC_BUSY_CMD6 = 0, - MMC_BUSY_ERASE = 1, - MMC_BUSY_HPI = 2, - MMC_BUSY_EXTR_SINGLE = 3, - MMC_BUSY_IO = 4, -}; +typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int); -enum { - GENHD_FL_REMOVABLE = 1, - GENHD_FL_HIDDEN = 2, - GENHD_FL_NO_PART = 4, -}; +typedef void (*btf_trace_block_rq_insert)(void *, struct request *); -enum string_size_units { - STRING_UNITS_10 = 0, - STRING_UNITS_2 = 1, -}; +typedef void (*btf_trace_block_rq_issue)(void *, struct request *); -struct mmc_blk_data; +typedef void (*btf_trace_block_rq_merge)(void *, struct request *); -struct mmc_queue { - struct mmc_card *card; - struct mmc_ctx ctx; - struct blk_mq_tag_set tag_set; - struct mmc_blk_data *blkdata; - struct request_queue *queue; - spinlock_t lock; - int in_flight[3]; - unsigned int cqe_busy; - bool busy; - bool recovery_needed; - bool in_recovery; - bool rw_wait; - bool waiting; - struct work_struct recovery_work; - wait_queue_head_t wait; - struct request *recovery_req; - struct request *complete_req; - struct mutex complete_lock; - struct work_struct complete_work; -}; +typedef void (*btf_trace_block_io_start)(void *, struct request *); -struct mmc_blk_data { - struct device *parent; - struct gendisk *disk; - struct mmc_queue queue; - struct list_head part; - struct list_head rpmbs; - unsigned int flags; - struct kref kref; - unsigned int read_only; - unsigned int part_type; - unsigned int reset_done; - unsigned int part_curr; - int area_type; - struct dentry *status_dentry; - struct dentry *ext_csd_dentry; -}; +typedef void (*btf_trace_block_io_done)(void *, struct request *); -struct mmc_blk_request { - struct mmc_request mrq; - struct mmc_command sbc; - struct mmc_command cmd; - struct mmc_command stop; - struct mmc_data data; -}; +typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *); -struct mmc_queue_req { - struct mmc_blk_request brq; - struct scatterlist *sg; - enum mmc_drv_op drv_op; - int drv_op_result; - void *drv_op_data; - unsigned int ioc_count; - int retries; -}; +typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); -struct mmc_ioc_cmd { - int write_flag; - int is_acmd; - __u32 opcode; - __u32 arg; - __u32 response[4]; - unsigned int flags; - unsigned int blksz; - unsigned int blocks; - unsigned int postsleep_min_us; - unsigned int postsleep_max_us; - unsigned int data_timeout_ns; - unsigned int cmd_timeout_ms; - __u32 __pad; - __u64 data_ptr; -}; +typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); -struct mmc_ioc_multi_cmd { - __u64 num_of_cmds; - struct mmc_ioc_cmd cmds[0]; -}; +typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *); -struct mmc_rpmb_data { - struct device dev; - struct cdev chrdev; - int id; - unsigned int part_index; - struct mmc_blk_data *md; - struct list_head node; -}; +typedef void (*btf_trace_block_bio_queue)(void *, struct bio *); -struct mmc_blk_busy_data { - struct mmc_card *card; - u32 status; -}; +typedef void (*btf_trace_block_getrq)(void *, struct bio *); -struct mmc_blk_ioc_data { - struct mmc_ioc_cmd ic; - unsigned char *buf; - u64 buf_bytes; - struct mmc_rpmb_data *rpmb; -}; +typedef void (*btf_trace_block_plug)(void *, struct request_queue *); -typedef unsigned int __kernel_mode_t; +typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); -typedef __kernel_mode_t mode_t; +typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int); -struct ufs_debugfs_attr { - const char *name; - mode_t mode; - const struct file_operations *fops; +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 { - MASK_EE_STATUS = 65535, - MASK_EE_DYNCAP_EVENT = 1, - MASK_EE_SYSPOOL_EVENT = 2, - MASK_EE_URGENT_BKOPS = 4, - MASK_EE_TOO_HIGH_TEMP = 8, - MASK_EE_TOO_LOW_TEMP = 16, - MASK_EE_WRITEBOOSTER_EVENT = 32, - MASK_EE_PERFORMANCE_THROTTLING = 64, + PERCPU_REF_INIT_ATOMIC = 1, + PERCPU_REF_INIT_DEAD = 2, + PERCPU_REF_ALLOW_REINIT = 4, }; -struct scmi_power_proto_ops { - int (*num_domains_get)(const struct scmi_protocol_handle *); - const char * (*name_get)(const struct scmi_protocol_handle *, u32); - int (*state_set)(const struct scmi_protocol_handle *, u32, u32); - int (*state_get)(const struct scmi_protocol_handle *, u32, u32 *); +enum { + BIO_PAGE_PINNED = 0, + BIO_CLONED = 1, + BIO_BOUNCED = 2, + BIO_QUIET = 3, + BIO_CHAIN = 4, + BIO_REFFED = 5, + BIO_BPS_THROTTLED = 6, + BIO_TRACE_COMPLETION = 7, + BIO_CGROUP_ACCT = 8, + BIO_QOS_THROTTLED = 9, + BIO_QOS_MERGED = 10, + BIO_REMAPPED = 11, + BIO_ZONE_WRITE_LOCKED = 12, + BIO_FLAG_LAST = 13, }; -enum scmi_power_protocol_cmd { - POWER_DOMAIN_ATTRIBUTES = 3, - POWER_STATE_SET = 4, - POWER_STATE_GET = 5, - POWER_STATE_NOTIFY = 6, - POWER_DOMAIN_NAME_GET = 8, +enum { + sysctl_hung_task_timeout_secs = 0, }; -struct power_dom_info; +struct blk_plug_cb; -struct scmi_power_info { - u32 version; - int num_domains; - u64 stats_addr; - u32 stats_size; - struct power_dom_info *dom_info; +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 power_dom_info { - bool state_set_sync; - bool state_set_async; - bool state_set_notify; - char name[64]; +struct trace_event_raw_block_buffer { + struct trace_entry ent; + dev_t dev; + sector_t sector; + size_t size; + char __data[0]; }; -struct scmi_msg_resp_power_attributes { - __le16 num_domains; - __le16 reserved; - __le32 stats_addr_low; - __le32 stats_addr_high; - __le32 stats_size; +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 scmi_msg_resp_power_domain_attributes { - __le32 flags; - u8 name[16]; +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 scmi_power_state_notify { - __le32 domain; - __le32 notify_enable; +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 scmi_power_set_state { - __le32 flags; - __le32 domain; - __le32 state; +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 scmi_power_state_notify_payld { - __le32 agent_id; - __le32 domain_id; - __le32 power_state; +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 scmi_power_state_changed_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int domain_id; - unsigned int power_state; +struct trace_event_raw_block_plug { + struct trace_entry ent; + char comm[16]; + char __data[0]; }; -struct quirks_list_struct { - struct hid_device_id hid_bl_item; - struct list_head node; +struct trace_event_raw_block_unplug { + struct trace_entry ent; + int nr_rq; + char comm[16]; + char __data[0]; }; -enum ec_vbnvcontext_op { - EC_VBNV_CONTEXT_OP_READ = 0, - EC_VBNV_CONTEXT_OP_WRITE = 1, +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 ec_response_get_features { - uint32_t flags[2]; +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 cros_ec_device; +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 cros_ec_debugfs; +struct trace_event_data_offsets_block_buffer {}; -struct cros_ec_dev { - struct device class_dev; - struct cros_ec_device *ec_dev; - struct device *dev; - struct cros_ec_debugfs *debug_info; - bool has_kb_wake_angle; - u16 cmd_offset; - struct ec_response_get_features features; +struct trace_event_data_offsets_block_rq_requeue { + u32 cmd; }; -struct ec_response_motion_sense_fifo_info { - uint16_t size; - uint16_t count; - uint32_t timestamp; - uint16_t total_lost; - uint16_t lost[0]; -} __attribute__((packed)); +struct trace_event_data_offsets_block_rq_completion { + u32 cmd; +}; -union ec_response_get_next_data_v1 { - uint8_t key_matrix[16]; - uint32_t host_event; - uint64_t host_event64; - struct { - uint8_t reserved[3]; - struct ec_response_motion_sense_fifo_info info; - } sensor_fifo; - uint32_t buttons; - uint32_t switches; - uint32_t fp_events; - uint32_t sysrq; - uint32_t cec_events; - uint8_t cec_message[16]; +struct trace_event_data_offsets_block_rq { + u32 cmd; }; -struct ec_response_get_next_event_v1 { - uint8_t event_type; - union ec_response_get_next_data_v1 data; -} __attribute__((packed)); +struct trace_event_data_offsets_block_bio_complete {}; -struct cros_ec_command; +struct trace_event_data_offsets_block_bio {}; -struct cros_ec_device { - const char *phys_name; - struct device *dev; - struct class *cros_class; - int (*cmd_readmem)(struct cros_ec_device *, unsigned int, unsigned int, void *); - u16 max_request; - u16 max_response; - u16 max_passthru; - u16 proto_version; - void *priv; - int irq; - u8 *din; - u8 *dout; - int din_size; - int dout_size; - bool wake_enabled; - bool suspended; - int (*cmd_xfer)(struct cros_ec_device *, struct cros_ec_command *); - int (*pkt_xfer)(struct cros_ec_device *, struct cros_ec_command *); - struct lock_class_key lockdep_key; - struct mutex lock; - u8 mkbp_event_supported; - bool host_sleep_v1; - struct blocking_notifier_head event_notifier; - struct ec_response_get_next_event_v1 event_data; - int event_size; - u32 host_event_wake_mask; - u32 last_resume_result; - u16 suspend_timeout_ms; - ktime_t last_event_time; - struct notifier_block notifier_ready; - struct platform_device *ec; - struct platform_device *pd; - struct blocking_notifier_head panic_notifier; -}; +struct trace_event_data_offsets_block_plug {}; -struct cros_ec_command { - uint32_t version; - uint32_t command; - uint32_t outsize; - uint32_t insize; - uint32_t result; - uint8_t data[0]; -}; +struct trace_event_data_offsets_block_unplug {}; -struct ec_params_vbnvcontext { - uint32_t op; - uint8_t block[16]; -}; +struct trace_event_data_offsets_block_split {}; -struct rpmsg_device_id; +struct trace_event_data_offsets_block_bio_remap {}; -struct rpmsg_device; +struct trace_event_data_offsets_block_rq_remap {}; -struct rpmsg_driver { - struct device_driver drv; - const struct rpmsg_device_id *id_table; - int (*probe)(struct rpmsg_device *); - void (*remove)(struct rpmsg_device *); - int (*callback)(struct rpmsg_device *, void *, int, void *, u32); +enum { + IOU_PBUF_RING_MMAP = 1, }; -struct rpmsg_device_id { - char name[32]; - kernel_ulong_t driver_data; +struct io_provide_buf { + struct file *file; + __u64 addr; + __u32 len; + __u32 bgid; + __u32 nbufs; + __u16 bid; }; -struct rpmsg_endpoint; - -struct rpmsg_device_ops; +struct io_buf_free { + struct hlist_node list; + void *mem; + size_t size; + int inuse; +}; -struct rpmsg_device { - struct device dev; - struct rpmsg_device_id id; - const char *driver_override; - u32 src; - u32 dst; - struct rpmsg_endpoint *ept; - bool announce; - bool little_endian; - const struct rpmsg_device_ops *ops; +struct io_uring_buf_reg { + __u64 ring_addr; + __u32 ring_entries; + __u16 bgid; + __u16 flags; + __u64 resv[3]; }; -typedef int (*rpmsg_rx_cb_t)(struct rpmsg_device *, void *, int, void *, u32); +struct tegra_ictlr_soc { + unsigned int num_ictlrs; +}; -struct rpmsg_endpoint_ops; +struct tegra_ictlr_info { + void *base[6]; + u32 cop_ier[6]; + u32 cop_iep[6]; + u32 cpu_ier[6]; + u32 cpu_iep[6]; + u32 ictlr_wake_mask[6]; +}; -struct rpmsg_endpoint { - struct rpmsg_device *rpdev; - struct kref refcount; - rpmsg_rx_cb_t cb; - struct mutex cb_lock; - u32 addr; - void *priv; - const struct rpmsg_endpoint_ops *ops; +struct brcmstb_intc_init_params { + irq_flow_handler_t handler; + int cpu_status; + int cpu_clear; + int cpu_mask_status; + int cpu_mask_set; + int cpu_mask_clear; }; -struct rpmsg_endpoint_ops { - void (*destroy_ept)(struct rpmsg_endpoint *); - int (*send)(struct rpmsg_endpoint *, void *, int); - int (*sendto)(struct rpmsg_endpoint *, void *, int, u32); - int (*send_offchannel)(struct rpmsg_endpoint *, u32, u32, void *, int); - int (*trysend)(struct rpmsg_endpoint *, void *, int); - int (*trysendto)(struct rpmsg_endpoint *, void *, int, u32); - int (*trysend_offchannel)(struct rpmsg_endpoint *, u32, u32, void *, int); - __poll_t (*poll)(struct rpmsg_endpoint *, struct file *, poll_table *); - ssize_t (*get_mtu)(struct rpmsg_endpoint *); +struct brcmstb_l2_intc_data { + struct irq_domain *domain; + struct irq_chip_generic *gc; + int status_offset; + int mask_offset; + bool can_wake; + u32 saved_mask; }; -struct rpmsg_channel_info; +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_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, +}; -struct rpmsg_device_ops { - struct rpmsg_device * (*create_channel)(struct rpmsg_device *, struct rpmsg_channel_info *); - int (*release_channel)(struct rpmsg_device *, struct rpmsg_channel_info *); - struct rpmsg_endpoint * (*create_ept)(struct rpmsg_device *, rpmsg_rx_cb_t, void *, struct rpmsg_channel_info); - int (*announce_create)(struct rpmsg_device *); - int (*announce_destroy)(struct rpmsg_device *); +enum msi_domain_ids { + MSI_DEFAULT_DOMAIN = 0, + MSI_SECONDARY_DOMAIN = 1, + MSI_MAX_DEVICE_IRQDOMAINS = 2, }; -struct glink_ssr { - struct device *dev; - struct rpmsg_endpoint *ept; - struct notifier_block nb; - u32 seq_num; - struct completion completion; +struct dprc_irq_cfg { + phys_addr_t paddr; + u32 val; + int irq_num; }; -struct cleanup_done_msg { - __le32 version; - __le32 response; - __le32 seq_num; +enum brcm_sata_phy_version { + BRCM_SATA_PHY_STB_16NM = 0, + BRCM_SATA_PHY_STB_28NM = 1, + BRCM_SATA_PHY_STB_40NM = 2, + BRCM_SATA_PHY_IPROC_NS2 = 3, + BRCM_SATA_PHY_IPROC_NSP = 4, + BRCM_SATA_PHY_IPROC_SR = 5, + BRCM_SATA_PHY_DSL_28NM = 6, }; -struct do_cleanup_msg { - __le32 version; - __le32 command; - __le32 seq_num; - __le32 name_len; - char name[32]; +enum brcm_sata_phy_rxaeq_mode { + RXAEQ_MODE_OFF = 0, + RXAEQ_MODE_AUTO = 1, + RXAEQ_MODE_MANUAL = 2, }; -struct dev_ext_attribute { - struct device_attribute attr; - void *var; +enum sata_phy_regs { + BLOCK0_REG_BANK = 0, + BLOCK0_XGXSSTATUS = 129, + BLOCK0_XGXSSTATUS_PLL_LOCK = 4096, + BLOCK0_SPARE = 141, + BLOCK0_SPARE_OOB_CLK_SEL_MASK = 3, + BLOCK0_SPARE_OOB_CLK_SEL_REFBY2 = 1, + BLOCK1_REG_BANK = 16, + BLOCK1_TEST_TX = 131, + BLOCK1_TEST_TX_AMP_SHIFT = 12, + PLL_REG_BANK_0 = 80, + PLL_REG_BANK_0_PLLCONTROL_0 = 129, + PLLCONTROL_0_FREQ_DET_RESTART = 8192, + PLLCONTROL_0_FREQ_MONITOR = 4096, + PLLCONTROL_0_SEQ_START = 32768, + PLL_CAP_CHARGE_TIME = 131, + PLL_VCO_CAL_THRESH = 132, + PLL_CAP_CONTROL = 133, + PLL_FREQ_DET_TIME = 134, + PLL_ACTRL2 = 139, + PLL_ACTRL2_SELDIV_MASK = 31, + PLL_ACTRL2_SELDIV_SHIFT = 9, + PLL_ACTRL6 = 134, + PLL1_REG_BANK = 96, + PLL1_ACTRL2 = 130, + PLL1_ACTRL3 = 131, + PLL1_ACTRL4 = 132, + PLL1_ACTRL5 = 133, + PLL1_ACTRL6 = 134, + PLL1_ACTRL7 = 135, + PLL1_ACTRL8 = 136, + TX_REG_BANK = 112, + TX_ACTRL0 = 128, + TX_ACTRL0_TXPOL_FLIP = 64, + TX_ACTRL5 = 133, + TX_ACTRL5_SSC_EN = 2048, + AEQRX_REG_BANK_0 = 208, + AEQ_CONTROL1 = 129, + AEQ_CONTROL1_ENABLE = 4, + AEQ_CONTROL1_FREEZE = 8, + AEQ_FRC_EQ = 131, + AEQ_FRC_EQ_FORCE = 1, + AEQ_FRC_EQ_FORCE_VAL = 2, + AEQ_RFZ_FRC_VAL = 256, + AEQRX_REG_BANK_1 = 224, + AEQRX_SLCAL0_CTRL0 = 130, + AEQRX_SLCAL1_CTRL0 = 134, + OOB_REG_BANK = 336, + OOB1_REG_BANK = 352, + OOB_CTRL1 = 128, + OOB_CTRL1_BURST_MAX_MASK = 15, + OOB_CTRL1_BURST_MAX_SHIFT = 12, + OOB_CTRL1_BURST_MIN_MASK = 15, + OOB_CTRL1_BURST_MIN_SHIFT = 8, + OOB_CTRL1_WAKE_IDLE_MAX_MASK = 15, + OOB_CTRL1_WAKE_IDLE_MAX_SHIFT = 4, + OOB_CTRL1_WAKE_IDLE_MIN_MASK = 15, + OOB_CTRL1_WAKE_IDLE_MIN_SHIFT = 0, + OOB_CTRL2 = 129, + OOB_CTRL2_SEL_ENA_SHIFT = 15, + OOB_CTRL2_SEL_ENA_RC_SHIFT = 14, + OOB_CTRL2_RESET_IDLE_MAX_MASK = 63, + OOB_CTRL2_RESET_IDLE_MAX_SHIFT = 8, + OOB_CTRL2_BURST_CNT_MASK = 3, + OOB_CTRL2_BURST_CNT_SHIFT = 6, + OOB_CTRL2_RESET_IDLE_MIN_MASK = 63, + OOB_CTRL2_RESET_IDLE_MIN_SHIFT = 0, + TXPMD_REG_BANK = 416, + TXPMD_CONTROL1 = 129, + TXPMD_CONTROL1_TX_SSC_EN_FRC = 1, + TXPMD_CONTROL1_TX_SSC_EN_FRC_VAL = 2, + TXPMD_TX_FREQ_CTRL_CONTROL1 = 130, + TXPMD_TX_FREQ_CTRL_CONTROL2 = 131, + TXPMD_TX_FREQ_CTRL_CONTROL2_FMIN_MASK = 1023, + TXPMD_TX_FREQ_CTRL_CONTROL3 = 132, + TXPMD_TX_FREQ_CTRL_CONTROL3_FMAX_MASK = 1023, + RXPMD_REG_BANK = 448, + RXPMD_RX_CDR_CONTROL1 = 129, + RXPMD_RX_PPM_VAL_MASK = 511, + RXPMD_RXPMD_EN_FRC = 4096, + RXPMD_RXPMD_EN_FRC_VAL = 8192, + RXPMD_RX_CDR_CDR_PROP_BW = 130, + RXPMD_G_CDR_PROP_BW_MASK = 7, + RXPMD_G1_CDR_PROP_BW_SHIFT = 0, + RXPMD_G2_CDR_PROP_BW_SHIFT = 3, + RXPMD_G3_CDR_PROB_BW_SHIFT = 6, + RXPMD_RX_CDR_CDR_ACQ_INTEG_BW = 131, + RXPMD_G_CDR_ACQ_INT_BW_MASK = 7, + RXPMD_G1_CDR_ACQ_INT_BW_SHIFT = 0, + RXPMD_G2_CDR_ACQ_INT_BW_SHIFT = 3, + RXPMD_G3_CDR_ACQ_INT_BW_SHIFT = 6, + RXPMD_RX_CDR_CDR_LOCK_INTEG_BW = 132, + RXPMD_G_CDR_LOCK_INT_BW_MASK = 7, + RXPMD_G1_CDR_LOCK_INT_BW_SHIFT = 0, + RXPMD_G2_CDR_LOCK_INT_BW_SHIFT = 3, + RXPMD_G3_CDR_LOCK_INT_BW_SHIFT = 6, + RXPMD_RX_FREQ_MON_CONTROL1 = 135, + RXPMD_MON_CORRECT_EN = 256, + RXPMD_MON_MARGIN_VAL_MASK = 255, }; -struct hisi_pmu_hwevents { - struct perf_event *hw_events[16]; - unsigned long used_mask[1]; - const struct attribute_group **attr_groups; +enum sata_phy_ctrl_regs { + PHY_CTRL_1 = 0, + PHY_CTRL_1_RESET = 1, }; -struct hisi_uncore_ops; +struct brcm_sata_phy; -struct hisi_pmu_dev_info; +struct brcm_sata_port { + int portnum; + struct phy *phy; + struct brcm_sata_phy *phy_priv; + bool ssc_en; + enum brcm_sata_phy_rxaeq_mode rxaeq_mode; + u32 rxaeq_val; + u32 tx_amplitude_val; +}; -struct hisi_pmu { - struct pmu pmu; - const struct hisi_uncore_ops *ops; - const struct hisi_pmu_dev_info *dev_info; - struct hisi_pmu_hwevents pmu_events; - cpumask_t associated_cpus; - int on_cpu; - int irq; +struct brcm_sata_phy { struct device *dev; - struct hlist_node node; - int sccl_id; - int sicl_id; - int ccl_id; - void *base; - u32 index_id; - u32 sub_id; - int num_counters; - int counter_bits; - int check_event; - u32 identifier; + void *phy_base; + void *ctrl_base; + enum brcm_sata_phy_version version; + struct brcm_sata_port phys[2]; }; -struct hisi_uncore_ops { - int (*check_filter)(struct perf_event *); - void (*write_evtype)(struct hisi_pmu *, int, u32); - int (*get_event_idx)(struct perf_event *); - u64 (*read_counter)(struct hisi_pmu *, struct hw_perf_event *); - void (*write_counter)(struct hisi_pmu *, struct hw_perf_event *, u64); - void (*enable_counter)(struct hisi_pmu *, struct hw_perf_event *); - void (*disable_counter)(struct hisi_pmu *, struct hw_perf_event *); - void (*enable_counter_int)(struct hisi_pmu *, struct hw_perf_event *); - void (*disable_counter_int)(struct hisi_pmu *, struct hw_perf_event *); - void (*start_counters)(struct hisi_pmu *); - void (*stop_counters)(struct hisi_pmu *); - u32 (*get_int_status)(struct hisi_pmu *); - void (*clear_int_status)(struct hisi_pmu *, int); - void (*enable_filter)(struct perf_event *); - void (*disable_filter)(struct perf_event *); +struct samsung_ufs_phy_pmu_isol { + u32 offset; + u32 mask; + u32 en; }; -struct hisi_pmu_dev_info { - const char *name; - const struct attribute_group **attr_groups; - void *private; +struct samsung_ufs_phy_cfg; + +struct samsung_ufs_phy_drvdata { + const struct samsung_ufs_phy_cfg **cfgs; + struct samsung_ufs_phy_pmu_isol isol; + const char * const *clk_list; + int num_clks; + u32 cdr_lock_status_offset; }; -struct mux_control; +struct samsung_ufs_phy_cfg { + u32 off_0; + u32 off_1; + u32 val; + u8 desc; + u8 id; +}; -struct mux_control_ops { - int (*set)(struct mux_control *, int); +struct exynos5_usbdrd_phy_config; + +struct exynos5_usbdrd_phy_drvdata { + const struct exynos5_usbdrd_phy_config *phy_cfg; + const struct phy_ops *phy_ops; + u32 pmu_offset_usbdrd0_phy; + u32 pmu_offset_usbdrd1_phy; + bool has_common_clk_gate; }; -struct mux_chip; +struct phy_usb_instance; -struct mux_control { - struct semaphore lock; - struct mux_chip *chip; - int cached_state; - unsigned int states; - int idle_state; - ktime_t last_change; +struct exynos5_usbdrd_phy; + +struct exynos5_usbdrd_phy_config { + u32 id; + void (*phy_isol)(struct phy_usb_instance *, u32); + void (*phy_init)(struct exynos5_usbdrd_phy *); + unsigned int (*set_refclk)(struct phy_usb_instance *); }; -struct mux_chip { - unsigned int controllers; - struct mux_control *mux; - struct device dev; - int id; - const struct mux_control_ops *ops; +struct phy_usb_instance { + struct phy *phy; + u32 index; + struct regmap *reg_pmu; + u32 pmu_offset; + const struct exynos5_usbdrd_phy_config *phy_cfg; }; -struct snd_pcm_chmap_elem { - unsigned char channels; - unsigned char map[15]; +struct exynos5_usbdrd_phy { + struct device *dev; + void *reg_phy; + struct clk *clk; + struct clk *pipeclk; + struct clk *utmiclk; + struct clk *itpclk; + const struct exynos5_usbdrd_phy_drvdata *drv_data; + struct phy_usb_instance phys[2]; + u32 extrefclk; + struct clk *ref_clk; + struct regulator *vbus; + struct regulator *vbus_boost; }; -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, +enum exynos5_usbdrd_phy_id { + EXYNOS5_DRDPHY_UTMI = 0, + EXYNOS5_DRDPHY_PIPE3 = 1, + EXYNOS5_DRDPHYS_NUM = 2, }; -typedef int (*pcm_transfer_f)(struct snd_pcm_substream *, int, unsigned long, void *, unsigned long); +enum s700_pinconf_pull { + OWL_PINCONF_PULL_DOWN = 0, + OWL_PINCONF_PULL_UP = 1, +}; -struct snd_ratden { - unsigned int num_min; - unsigned int num_max; - unsigned int num_step; - unsigned int den; +struct mtk_pin_reg_calc; + +struct mtk_pin_desc; + +struct group_desc; + +struct function_desc; + +struct mtk_eint_regs; + +struct mtk_eint_hw; + +struct mtk_pin_rsel; + +struct mtk_pinctrl; + +struct mtk_pin_soc { + const struct mtk_pin_reg_calc *reg_cal; + const struct mtk_pin_desc *pins; + unsigned int npins; + const struct group_desc *grps; + unsigned int ngrps; + const struct function_desc *funcs; + unsigned int nfuncs; + const struct mtk_eint_regs *eint_regs; + const struct mtk_eint_hw *eint_hw; + u8 gpio_m; + bool ies_present; + const char * const *base_names; + unsigned int nbase_names; + const unsigned int *pull_type; + const struct mtk_pin_rsel *pin_rsel; + unsigned int npin_rsel; + int (*bias_disable_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *); + int (*bias_disable_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, int *); + int (*bias_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool); + int (*bias_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool, int *); + int (*bias_set_combo)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32, u32); + int (*bias_get_combo)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32 *, u32 *); + int (*drive_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32); + int (*drive_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, int *); + int (*adv_pull_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool, u32); + int (*adv_pull_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool, u32 *); + int (*adv_drive_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32); + int (*adv_drive_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32 *); + void *driver_data; }; -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 mtk_pin_field_calc; + +struct mtk_pin_reg_calc { + const struct mtk_pin_field_calc *range; + unsigned int nranges; }; -struct snd_ratnum { - unsigned int num; - unsigned int den_min; - unsigned int den_max; - unsigned int den_step; +struct mtk_pin_field_calc { + u16 s_pin; + u16 e_pin; + u8 i_base; + u32 s_addr; + u8 x_addrs; + u8 s_bit; + u8 x_bits; + u8 sz_reg; + u8 fixed; }; -struct snd_pcm_hw_constraint_ranges { - unsigned int count; - const struct snd_interval *ranges; - unsigned int mask; +struct mtk_eint_desc { + u16 eint_m; + u16 eint_n; }; -struct snd_pcm_hw_constraint_ratnums { - int nrats; - const struct snd_ratnum *rats; +struct mtk_func_desc; + +struct mtk_pin_desc { + unsigned int number; + const char *name; + struct mtk_eint_desc eint; + u8 drv_n; + struct mtk_func_desc *funcs; }; -struct snd_pcm_hw_constraint_ratdens { - int nrats; - const struct snd_ratden *rats; +struct mtk_func_desc { + const char *name; + u8 muxval; }; -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 group_desc { + const char *name; + int *pins; + int num_pins; + void *data; +}; -struct neigh_sysctl_table { - struct ctl_table_header *sysctl_header; - struct ctl_table neigh_vars[22]; +struct function_desc { + const char *name; + const char * const *group_names; + int num_group_names; + void *data; }; -enum { - NEIGH_VAR_MCAST_PROBES = 0, - NEIGH_VAR_UCAST_PROBES = 1, - NEIGH_VAR_APP_PROBES = 2, - NEIGH_VAR_MCAST_REPROBES = 3, - NEIGH_VAR_RETRANS_TIME = 4, - NEIGH_VAR_BASE_REACHABLE_TIME = 5, - NEIGH_VAR_DELAY_PROBE_TIME = 6, - NEIGH_VAR_INTERVAL_PROBE_TIME_MS = 7, - NEIGH_VAR_GC_STALETIME = 8, - NEIGH_VAR_QUEUE_LEN_BYTES = 9, - NEIGH_VAR_PROXY_QLEN = 10, - NEIGH_VAR_ANYCAST_DELAY = 11, - NEIGH_VAR_PROXY_DELAY = 12, - NEIGH_VAR_LOCKTIME = 13, - NEIGH_VAR_QUEUE_LEN = 14, - NEIGH_VAR_RETRANS_TIME_MS = 15, - NEIGH_VAR_BASE_REACHABLE_TIME_MS = 16, - NEIGH_VAR_GC_INTERVAL = 17, - NEIGH_VAR_GC_THRESH1 = 18, - NEIGH_VAR_GC_THRESH2 = 19, - NEIGH_VAR_GC_THRESH3 = 20, - NEIGH_VAR_MAX = 21, +struct mtk_eint_regs { + unsigned int stat; + unsigned int ack; + unsigned int mask; + unsigned int mask_set; + unsigned int mask_clr; + unsigned int sens; + unsigned int sens_set; + unsigned int sens_clr; + unsigned int soft; + unsigned int soft_set; + unsigned int soft_clr; + unsigned int pol; + unsigned int pol_set; + unsigned int pol_clr; + unsigned int dom_en; + unsigned int dbnc_ctrl; + unsigned int dbnc_set; + unsigned int dbnc_clr; }; -enum { - NEIGH_ARP_TABLE = 0, - NEIGH_ND_TABLE = 1, - NEIGH_DN_TABLE = 2, - NEIGH_NR_TABLES = 3, - NEIGH_LINK_TABLE = 3, +struct mtk_eint_hw { + u8 port_mask; + u8 ports; + unsigned int ap_num; + unsigned int db_cnt; + const unsigned int *db_time; }; -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, +struct mtk_pin_rsel { + u16 s_pin; + u16 e_pin; + u16 rsel_index; + u32 up_rsel; + u32 down_rsel; }; -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, -}; +struct mtk_eint; -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, -}; +struct mtk_pinctrl_group; -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 mtk_pinctrl { + struct pinctrl_dev *pctrl; + void **base; + u8 nbase; + struct device *dev; + struct gpio_chip chip; + const struct mtk_pin_soc *soc; + struct mtk_eint *eint; + struct mtk_pinctrl_group *groups; + const char **grp_names; + spinlock_t lock; + bool rsel_si_unit; }; -struct neighbour_cb { - unsigned long sched_next; - unsigned int flags; -}; +struct mtk_eint_xt; -struct rtgenmsg { - unsigned char rtgen_family; +struct mtk_eint { + struct device *dev; + void *base; + struct irq_domain *domain; + int irq; + int *dual_edge; + u32 *wake_mask; + u32 *cur_mask; + const struct mtk_eint_hw *hw; + const struct mtk_eint_regs *regs; + u16 num_db_time; + void *pctl; + const struct mtk_eint_xt *gpio_xlate; }; -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 mtk_eint_xt { + int (*get_gpio_n)(void *, unsigned long, unsigned int *, struct gpio_chip **); + int (*get_gpio_state)(void *, unsigned long); + int (*set_gpio_as_eint)(void *, unsigned long); }; -struct neigh_dump_filter { - int master_idx; - int dev_idx; +struct mtk_pinctrl_group { + const char *name; + unsigned long config; + unsigned int pin; }; -struct ndtmsg { - __u8 ndtm_family; - __u8 ndtm_pad1; - __u16 ndtm_pad2; +struct pinmux_range { + u16 begin; + u16 end; + u16 force; }; -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 sh_pfc_soc_operations; -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 sh_pfc_pin; + +struct sh_pfc_pin_group; + +struct sh_pfc_function; + +struct pinmux_cfg_reg; + +struct pinmux_drive_reg; + +struct pinmux_bias_reg; + +struct pinmux_ioctrl_reg; + +struct pinmux_data_reg; + +struct sh_pfc_soc_info { + const char *name; + const struct sh_pfc_soc_operations *ops; + struct pinmux_range function; + const struct sh_pfc_pin *pins; + unsigned int nr_pins; + const struct sh_pfc_pin_group *groups; + unsigned int nr_groups; + const struct sh_pfc_function *functions; + unsigned int nr_functions; + const struct pinmux_cfg_reg *cfg_regs; + const struct pinmux_drive_reg *drive_regs; + const struct pinmux_bias_reg *bias_regs; + const struct pinmux_ioctrl_reg *ioctrl_regs; + const struct pinmux_data_reg *data_regs; + const u16 *pinmux_data; + unsigned int pinmux_data_size; + u32 unlock_reg; }; -struct nda_cacheinfo { - __u32 ndm_confirmed; - __u32 ndm_used; - __u32 ndm_updated; - __u32 ndm_refcnt; +struct sh_pfc; + +struct sh_pfc_soc_operations { + int (*init)(struct sh_pfc *); + unsigned int (*get_bias)(struct sh_pfc *, unsigned int); + void (*set_bias)(struct sh_pfc *, unsigned int, unsigned int); + int (*pin_to_pocctrl)(unsigned int, u32 *); + int (*pin_to_portcr)(unsigned int); }; -typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *); +struct sh_pfc_chip; -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, +struct sh_pfc_window; + +struct sh_pfc_pin_range; + +struct sh_pfc { + struct device *dev; + const struct sh_pfc_soc_info *info; + spinlock_t lock; + unsigned int num_windows; + struct sh_pfc_window *windows; + unsigned int num_irqs; + unsigned int *irqs; + struct sh_pfc_pin_range *ranges; + unsigned int nr_ranges; + unsigned int nr_gpio_pins; + struct sh_pfc_chip *gpio; + u32 *saved_regs; }; -enum ethtool_multicast_groups { - ETHNL_MCGRP_MONITOR = 0, +struct sh_pfc_window { + phys_addr_t phys; + void *virt; + unsigned long size; }; -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, +struct sh_pfc_pin { + const char *name; + unsigned int configs; + u16 pin; + u16 enum_id; }; -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 sh_pfc_pin_group { + const char *name; + const unsigned int *pins; + const unsigned int *mux; + unsigned int nr_pins; }; -struct genl_dumpit_info { - const struct genl_family *family; - struct genl_split_ops op; - struct nlattr **attrs; +struct sh_pfc_function { + const char *name; + const char * const *groups; + unsigned int nr_groups; }; -struct netdev_notifier_info { - struct net_device *dev; - struct netlink_ext_ack *extack; +struct pinmux_cfg_reg { + u32 reg; + u8 reg_width; + u8 field_width; + const u16 *enum_ids; + const s8 *var_field_width; }; -struct nf_bridge_frag_data; +struct pinmux_drive_reg_field { + u16 pin; + u8 offset; + u8 size; +}; -struct nf_queue_entry; +struct pinmux_drive_reg { + u32 reg; + const struct pinmux_drive_reg_field fields[10]; +}; -struct nf_ipv6_ops { - int (*chk_addr)(struct net *, const struct in6_addr *, const struct net_device *, int); - int (*route_me_harder)(struct net *, struct sock *, struct sk_buff *); - int (*dev_get_saddr)(struct net *, const struct net_device *, const struct in6_addr *, unsigned int, struct in6_addr *); - int (*route)(struct net *, struct dst_entry **, struct flowi *, bool); - u32 (*cookie_init_sequence)(const struct ipv6hdr *, const struct tcphdr *, u16 *); - int (*cookie_v6_check)(const struct ipv6hdr *, const struct tcphdr *, __u32); - 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 *); - int (*br_fragment)(struct net *, struct sock *, struct sk_buff *, struct nf_bridge_frag_data *, int (*)(struct net *, struct sock *, const struct nf_bridge_frag_data *, struct sk_buff *)); +struct pinmux_bias_reg { + u32 puen; + u32 pud; + const u16 pins[32]; }; -struct nf_queue_entry { - struct list_head list; - struct sk_buff *skb; - unsigned int id; - unsigned int hook_index; - struct net_device *physin; - struct net_device *physout; - struct nf_hook_state state; - u16 size; +struct pinmux_ioctrl_reg { + u32 reg; }; -struct ip_rt_info { - __be32 daddr; - __be32 saddr; - u_int8_t tos; - u_int32_t mark; +struct pinmux_data_reg { + u32 reg; + u8 reg_width; + const u16 *enum_ids; }; -struct fib_prop { - int error; - u8 scope; +enum ioctrl_regs { + POCCTRL0 = 0, + POCCTRL1 = 1, + POCCTRL2 = 2, + TDSELCTRL = 3, }; -struct nh_info; +enum { + GP_LAST = 174, + PIN_DU_DOTCLKIN = 175, + PIN_EXTALR = 176, + PIN_FSCLKST_N = 177, + PIN_PRESETOUT_N = 178, + PIN_TCK = 179, + PIN_TDI = 180, + PIN_TMS = 181, + PIN_TRST_N = 182, + PIN_VDDQ_AVB0 = 183, +}; -struct nh_group; +struct rzg2l_dedicated_configs; -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 rzg2l_hwcfg; -struct fib_info; +struct rzg2l_pinctrl_data { + const char * const *port_pins; + const u32 *port_pin_configs; + unsigned int n_ports; + const struct rzg2l_dedicated_configs *dedicated_pins; + unsigned int n_port_pins; + unsigned int n_dedicated_pins; + const struct rzg2l_hwcfg *hwcfg; +}; -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 rzg2l_dedicated_configs { + const char *name; + u32 config; }; -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 rzg2l_register_offsets { + u16 pwpr; + u16 sd_ch; }; -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 rzg2l_hwcfg { + const struct rzg2l_register_offsets regs; + u16 iolh_groupa_ua[12]; + u16 iolh_groupb_ua[12]; + u16 iolh_groupc_ua[12]; + u16 iolh_groupb_oi[4]; + bool drive_strength_ua; + u8 func_base; }; -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; +enum rzg2l_iolh_index { + RZG2L_IOLH_IDX_1V8 = 0, + RZG2L_IOLH_IDX_2V5 = 4, + RZG2L_IOLH_IDX_3V3 = 8, + RZG2L_IOLH_IDX_MAX = 12, }; -struct nh_res_table; +struct rzg2l_pinctrl_pin_settings; -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 rzg2l_pinctrl { + struct pinctrl_dev *pctl; + struct pinctrl_desc desc; + struct pinctrl_pin_desc *pins; + const struct rzg2l_pinctrl_data *data; + void *base; + struct device *dev; + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range gpio_range; + unsigned long tint_slot[1]; + spinlock_t bitmap_lock; + unsigned int hwirq[32]; + spinlock_t lock; + struct mutex mutex; + struct rzg2l_pinctrl_pin_settings *settings; }; -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 rzg2l_pinctrl_pin_settings { + u16 power_source; + u16 drive_strength_ua; }; -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 visconti_desc_pin; -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, +struct visconti_pin_group; + +struct visconti_pin_function; + +struct visconti_mux; + +struct visconti_pinctrl_devdata { + const struct visconti_desc_pin *pins; + unsigned int nr_pins; + const struct visconti_pin_group *groups; + unsigned int nr_groups; + const struct visconti_pin_function *functions; + unsigned int nr_functions; + const struct visconti_mux *gpio_mux; + void (*unlock)(void *); }; -enum lwtunnel_encap_types { - LWTUNNEL_ENCAP_NONE = 0, - LWTUNNEL_ENCAP_MPLS = 1, - LWTUNNEL_ENCAP_IP = 2, - LWTUNNEL_ENCAP_ILA = 3, - LWTUNNEL_ENCAP_IP6 = 4, - LWTUNNEL_ENCAP_SEG6 = 5, - LWTUNNEL_ENCAP_BPF = 6, - LWTUNNEL_ENCAP_SEG6_LOCAL = 7, - LWTUNNEL_ENCAP_RPL = 8, - LWTUNNEL_ENCAP_IOAM6 = 9, - LWTUNNEL_ENCAP_XFRM = 10, - __LWTUNNEL_ENCAP_MAX = 11, +struct visconti_desc_pin { + struct pinctrl_pin_desc pin; + unsigned int dsel_offset; + unsigned int dsel_shift; + unsigned int pude_offset; + unsigned int pudsel_offset; + unsigned int pud_shift; }; -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 visconti_mux { + unsigned int offset; + unsigned int mask; + unsigned int val; }; -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 visconti_pin_group { + const char *name; + const unsigned int *pins; + unsigned int nr_pins; + struct visconti_mux mux; }; -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, +struct visconti_pin_function { + const char *name; + const char * const *groups; + unsigned int nr_groups; }; -struct fib_table { - struct hlist_node tb_hlist; - u32 tb_id; - int tb_num_default; - struct callback_head rcu; - unsigned long *tb_data; - unsigned long __data[0]; +struct visconti_pinctrl { + void *base; + struct device *dev; + struct pinctrl_dev *pctl; + struct pinctrl_desc pctl_desc; + const struct visconti_pinctrl_devdata *devdata; + spinlock_t lock; }; -typedef u8 dscp_t; +struct amba_device; -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 amba_id; + +struct amba_driver { + struct device_driver drv; + int (*probe)(struct amba_device *, const struct amba_id *); + void (*remove)(struct amba_device *); + void (*shutdown)(struct amba_device *); + const struct amba_id *id_table; + bool driver_managed_dma; }; -struct nl_info { - struct nlmsghdr *nlh; - struct net *nl_net; - u32 portid; - u8 skip_notify: 1; - u8 skip_notify_kernel: 1; +struct amba_cs_uci_id { + unsigned int devarch; + unsigned int devarch_mask; + unsigned int devtype; + void *data; }; -struct rtnexthop; +struct amba_device { + struct device dev; + struct resource res; + struct clk *pclk; + struct device_dma_parameters dma_parms; + unsigned int periphid; + struct mutex periphid_lock; + unsigned int cid; + struct amba_cs_uci_id uci; + unsigned int irq[9]; + const char *driver_override; +}; -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 amba_id { + unsigned int id; + unsigned int mask; + void *data; }; -struct rtnexthop { - unsigned short rtnh_len; - unsigned char rtnh_flags; - unsigned char rtnh_hops; - int rtnh_ifindex; +struct pl061_context_save_regs { + u8 gpio_data; + u8 gpio_dir; + u8 gpio_is; + u8 gpio_ibe; + u8 gpio_iev; + u8 gpio_ie; }; -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 pl061 { + raw_spinlock_t lock; + void *base; + struct gpio_chip gc; + int parent_irq; + struct pl061_context_save_regs csave_regs; }; -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 tegra_gpio_soc_config { + bool debounce_supported; + u32 bank_stride; + u32 upper_offset; }; -struct fib_notifier_info { - int family; - struct netlink_ext_ack *extack; +struct tegra_gpio_bank; + +struct tegra_gpio_info { + struct device *dev; + void *regs; + struct tegra_gpio_bank *bank_info; + const struct tegra_gpio_soc_config *soc; + struct gpio_chip gc; + u32 bank_count; + unsigned int *irqs; }; -struct fib_nh_notifier_info { - struct fib_notifier_info info; - struct fib_nh *fib_nh; +struct tegra_gpio_bank { + unsigned int bank; + raw_spinlock_t lvl_lock[4]; + spinlock_t dbc_lock[4]; + u32 cnf[4]; + u32 out[4]; + u32 oe[4]; + u32 int_enb[4]; + u32 int_lvl[4]; + u32 wake_enb[4]; + u32 dbc_enb[4]; + u32 dbc_cnt[4]; }; -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; +enum msi_desc_filter { + MSI_DESC_ALL = 0, + MSI_DESC_NOTASSOCIATED = 1, + MSI_DESC_ASSOCIATED = 2, }; -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; +enum support_mode { + ALLOW_LEGACY = 0, + DENY_LEGACY = 1, }; -struct rtvia { - __kernel_sa_family_t rtvia_family; - __u8 rtvia_addr[0]; +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 devlink_port_type { - DEVLINK_PORT_TYPE_NOTSET = 0, - DEVLINK_PORT_TYPE_AUTO = 1, - DEVLINK_PORT_TYPE_ETH = 2, - DEVLINK_PORT_TYPE_IB = 3, +enum pci_epc_interface_type { + UNKNOWN_INTERFACE = -1, + PRIMARY_INTERFACE = 0, + SECONDARY_INTERFACE = 1, }; -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 pci_epf_driver; + +struct pci_epf_device_id; + +struct pci_epc_event_ops; + +struct pci_epf { + struct device dev; + const char *name; + struct pci_epf_header *header; + struct pci_epf_bar bar[6]; + u8 msi_interrupts; + u16 msix_interrupts; + u8 func_no; + u8 vfunc_no; + struct pci_epc *epc; + struct pci_epf *epf_pf; + struct pci_epf_driver *driver; + const struct pci_epf_device_id *id; + struct list_head list; + struct mutex lock; + struct pci_epc *sec_epc; + struct list_head sec_epc_list; + struct pci_epf_bar sec_epc_bar[6]; + u8 sec_epc_func_no; + struct config_group *group; + unsigned int is_bound; + unsigned int is_vf; + unsigned long vfunction_num_map; + struct list_head pci_vepf; + const struct pci_epc_event_ops *event_ops; }; -struct devlink_port_phys_attrs { - u32 port_number; - u32 split_subport_number; +struct pci_epf_ops; + +struct pci_epf_driver { + int (*probe)(struct pci_epf *, const struct pci_epf_device_id *); + void (*remove)(struct pci_epf *); + struct device_driver driver; + struct pci_epf_ops *ops; + struct module *owner; + struct list_head epf_group; + const struct pci_epf_device_id *id_table; }; -struct devlink_port_pci_pf_attrs { - u32 controller; - u16 pf; - u8 external: 1; +struct pci_epf_device_id { + char name[20]; + kernel_ulong_t driver_data; }; -struct devlink_port_pci_vf_attrs { - u32 controller; - u16 pf; - u16 vf; - u8 external: 1; +struct pci_epf_ops { + int (*bind)(struct pci_epf *); + void (*unbind)(struct pci_epf *); + struct config_group * (*add_cfs)(struct pci_epf *, struct config_group *); }; -struct devlink_port_pci_sf_attrs { - u32 controller; - u32 sf; - u16 pf; - u8 external: 1; +struct pci_epc_event_ops { + int (*core_init)(struct pci_epf *); + int (*link_up)(struct pci_epf *); + int (*link_down)(struct pci_epf *); + int (*bme)(struct pci_epf *); }; -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 klist_iter { + struct klist *i_klist; + struct klist_node *i_cur; }; -struct devlink; +struct subsys_private; -struct devlink_port_ops; +struct class_dev_iter { + struct klist_iter ki; + const struct device_type *type; + struct subsys_private *sp; +}; -struct ib_device; +struct qcom_pcie_ops; -struct devlink_rate; +struct qcom_pcie_cfg { + const struct qcom_pcie_ops *ops; +}; -struct devlink_linecard; - -struct devlink_port { - struct list_head list; - struct list_head region_list; - struct devlink *devlink; - const struct devlink_port_ops *ops; - unsigned int index; - spinlock_t type_lock; - enum devlink_port_type type; - enum devlink_port_type desired_type; - union { - struct { - struct net_device *netdev; - int ifindex; - char ifname[16]; - } type_eth; - struct { - struct ib_device *ibdev; - } type_ib; - }; - struct devlink_port_attrs attrs; - u8 attrs_set: 1; - u8 switch_port: 1; - u8 registered: 1; - u8 initialized: 1; - struct delayed_work type_warn_dw; - struct list_head reporter_list; - struct devlink_rate *devlink_rate; - struct devlink_linecard *linecard; -}; +struct qcom_pcie; -struct devlink_dev_stats { - u32 reload_stats[6]; - u32 remote_reload_stats[6]; +struct qcom_pcie_ops { + int (*get_resources)(struct qcom_pcie *); + int (*init)(struct qcom_pcie *); + int (*post_init)(struct qcom_pcie *); + void (*host_post_init)(struct qcom_pcie *); + void (*deinit)(struct qcom_pcie *); + void (*ltssm_enable)(struct qcom_pcie *); + int (*config_sid)(struct qcom_pcie *); }; -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; - long: 64; - long: 64; - long: 64; - char priv[0]; +struct qcom_pcie_resources_1_0_0 { + struct clk_bulk_data clks[4]; + struct reset_control *core; + struct regulator *vdda; }; -struct devlink_dpipe_header; - -struct devlink_dpipe_headers { - struct devlink_dpipe_header **headers; - unsigned int headers_count; +struct regulator_bulk_data { + const char *supply; + int init_load_uA; + struct regulator *consumer; + int ret; }; -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; +struct qcom_pcie_resources_2_1_0 { + struct clk_bulk_data clks[5]; + struct reset_control_bulk_data resets[6]; + int num_resets; + struct regulator_bulk_data supplies[3]; }; -enum devlink_dpipe_field_mapping_type { - DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0, - DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 1, +struct qcom_pcie_resources_2_3_2 { + struct clk_bulk_data clks[4]; + struct regulator_bulk_data supplies[2]; }; -struct devlink_dpipe_field { - const char *name; - unsigned int id; - unsigned int bitwidth; - enum devlink_dpipe_field_mapping_type mapping_type; +struct qcom_pcie_resources_2_3_3 { + struct clk_bulk_data clks[5]; + struct reset_control_bulk_data rst[7]; }; -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, +struct qcom_pcie_resources_2_4_0 { + struct clk_bulk_data clks[4]; + int num_clks; + struct reset_control_bulk_data resets[12]; + int num_resets; }; -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, +struct qcom_pcie_resources_2_7_0 { + struct clk_bulk_data clks[15]; + int num_clks; + struct regulator_bulk_data supplies[2]; + struct reset_control *rst; }; -enum devlink_sb_threshold_type { - DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0, - DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 1, +struct qcom_pcie_resources_2_9_0 { + struct clk_bulk_data clks[5]; + struct reset_control *rst; }; -enum devlink_sb_pool_type { - DEVLINK_SB_POOL_TYPE_INGRESS = 0, - DEVLINK_SB_POOL_TYPE_EGRESS = 1, +union qcom_pcie_resources { + struct qcom_pcie_resources_1_0_0 v1_0_0; + struct qcom_pcie_resources_2_1_0 v2_1_0; + struct qcom_pcie_resources_2_3_2 v2_3_2; + struct qcom_pcie_resources_2_3_3 v2_3_3; + struct qcom_pcie_resources_2_4_0 v2_4_0; + struct qcom_pcie_resources_2_7_0 v2_7_0; + struct qcom_pcie_resources_2_9_0 v2_9_0; }; -enum devlink_eswitch_encap_mode { - DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0, - DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 1, +struct qcom_pcie { + struct dw_pcie *pci; + void *parf; + void *elbi; + void *mhi; + union qcom_pcie_resources res; + struct phy *phy; + struct gpio_desc *reset; + struct icc_path *icc_mem; + const struct qcom_pcie_cfg *cfg; + struct dentry *debugfs; + bool suspended; }; -enum devlink_trap_action { - DEVLINK_TRAP_ACTION_DROP = 0, - DEVLINK_TRAP_ACTION_TRAP = 1, - DEVLINK_TRAP_ACTION_MIRROR = 2, +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 devlink_selftest_status { - DEVLINK_SELFTEST_STATUS_SKIP = 0, - DEVLINK_SELFTEST_STATUS_PASS = 1, - DEVLINK_SELFTEST_STATUS_FAIL = 2, +enum acpi_ec_event_state { + EC_EVENT_READY = 0, + EC_EVENT_IN_PROGRESS = 1, + EC_EVENT_COMPLETE = 2, }; -struct devlink_sb_pool_info; - -struct devlink_info_req; +struct transaction; -struct devlink_flash_update_params; +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 devlink_trap; +struct transaction { + const u8 *wdata; + u8 *rdata; + unsigned short irq_count; + u8 command; + u8 wi; + u8 ri; + u8 wlen; + u8 rlen; + u8 flags; +}; -struct devlink_trap_group; +typedef int (*acpi_op_add)(struct acpi_device *); -struct devlink_trap_policer; +typedef void (*acpi_op_remove)(struct acpi_device *); -struct devlink_port_new_attrs; +typedef void (*acpi_op_notify)(struct acpi_device *, u32); -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 (*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_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, struct devlink_port **); - 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 acpi_device_ops { + acpi_op_add add; + acpi_op_remove remove; + acpi_op_notify notify; }; -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 acpi_driver { + char name[80]; + char class[80]; + const struct acpi_device_id *ids; + unsigned int flags; + struct acpi_device_ops ops; + struct device_driver drv; + struct module *owner; }; -struct devlink_flash_update_params { - const struct firmware *fw; - const char *component; - u32 overwrite_mask; +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 devlink_trap_type { - DEVLINK_TRAP_TYPE_DROP = 0, - DEVLINK_TRAP_TYPE_EXCEPTION = 1, - DEVLINK_TRAP_TYPE_CONTROL = 2, +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, }; -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; +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, }; -struct devlink_trap_group { - const char *name; - u16 id; - bool generic; - u32 init_policer_id; -}; +typedef int (*acpi_ec_query_func)(void *); -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 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 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 acpi_ec_query { + struct transaction transaction; + struct work_struct work; + struct acpi_ec_query_handler *handler; + struct acpi_ec *ec; }; -enum devlink_rate_type { - DEVLINK_RATE_TYPE_LEAF = 0, - DEVLINK_RATE_TYPE_NODE = 1, -}; +typedef u32 acpi_event_status; -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 acpi_generic_address { + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_width; + u64 address; +} __attribute__((packed)); -enum devlink_port_fn_state { - DEVLINK_PORT_FN_STATE_INACTIVE = 0, - DEVLINK_PORT_FN_STATE_ACTIVE = 1, -}; +struct acpi_table_ecdt { + struct acpi_table_header header; + struct acpi_generic_address control; + struct acpi_generic_address data; + u32 uid; + u8 gpe; + u8 id[0]; +} __attribute__((packed)); -enum devlink_port_fn_opstate { - DEVLINK_PORT_FN_OPSTATE_DETACHED = 0, - DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1, +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 devlink_port_ops { - int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *); - int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); - int (*port_type_set)(struct devlink_port *, enum devlink_port_type); - int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); - int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); - int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); - int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); - int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *); - int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); - int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *); - int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); - int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); +typedef acpi_status (*acpi_table_handler)(u32, void *, void *); + +struct pnp_dev; + +struct pnp_fixup { + char id[7]; + void (*quirk_function)(struct pnp_dev *); }; -struct ib_core_device { +struct pnp_protocol; + +struct pnp_card; + +struct pnp_driver; + +struct pnp_card_link; + +struct pnp_id; + +struct pnp_dev { struct device dev; - possible_net_t rdma_net; - struct kobject *ports_kobj; - struct list_head port_list; - struct ib_device *owner; + 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; }; -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, +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; }; -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 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 ib_mad; - -enum rdma_link_layer { - IB_LINK_LAYER_UNSPECIFIED = 0, - IB_LINK_LAYER_INFINIBAND = 1, - IB_LINK_LAYER_ETHERNET = 2, +struct pnp_id { + char id[8]; + struct pnp_id *next; }; -enum rdma_netdev_t { - RDMA_NETDEV_OPA_VNIC = 0, - RDMA_NETDEV_IPOIB = 1, -}; +struct pnp_device_id; -enum ib_srq_attr_mask { - IB_SRQ_MAX_WR = 1, - IB_SRQ_LIMIT = 2, +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; }; -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, +struct pnp_device_id { + __u8 id[8]; + kernel_ulong_t driver_data; }; -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 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 uverbs_attr_bundle; +struct pnp_card_device_id; -struct rdma_cm_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 iw_cm_id; +struct pnp_card_device_id { + __u8 id[8]; + kernel_ulong_t driver_data; + struct { + __u8 id[8]; + } devs[8]; +}; -struct iw_cm_conn_param; +struct pnp_port { + resource_size_t min; + resource_size_t max; + resource_size_t align; + resource_size_t size; + unsigned char flags; +}; -struct ib_qp; +typedef struct { + unsigned long bits[4]; +} pnp_irq_mask_t; -struct ib_send_wr; +struct pnp_irq { + pnp_irq_mask_t map; + unsigned char flags; +}; -struct ib_recv_wr; +struct pnp_dma { + unsigned char map; + unsigned char flags; +}; -struct ib_cq; +struct pnp_mem { + resource_size_t min; + resource_size_t max; + resource_size_t align; + resource_size_t size; + unsigned char flags; +}; -struct ib_wc; +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 ib_srq; +struct pnp_resource { + struct list_head list; + struct resource res; +}; -struct ib_grh; +typedef u64 pci_bus_addr_t; -struct ib_device_attr; +struct pci_bus_region { + pci_bus_addr_t start; + pci_bus_addr_t end; +}; -struct ib_udata; +struct clockgen_muxinfo; -struct ib_device_modify; +struct clockgen; -struct ib_port_attr; +struct clockgen_chipinfo { + const char *compat; + const char *guts_compat; + const struct clockgen_muxinfo *cmux_groups[2]; + const struct clockgen_muxinfo *hwaccel[5]; + void (*init_periph)(struct clockgen *); + int cmux_to_group[9]; + u32 pll_mask; + u32 flags; +}; -struct ib_port_modify; +struct clockgen_pll_div { + struct clk *clk; + char name[32]; +}; -struct ib_port_immutable; +struct clockgen_pll { + struct clockgen_pll_div div[32]; +}; -struct rdma_netdev_alloc_params; +struct ccsr_guts; -union ib_gid; +struct clockgen { + struct device_node *node; + void *regs; + struct clockgen_chipinfo info; + struct clk *sysclk; + struct clk *coreclk; + struct clockgen_pll pll[6]; + struct clk *cmux[8]; + struct clk *hwaccel[5]; + struct clk *fman[2]; + struct ccsr_guts *guts; +}; -struct ib_gid_attr; +struct clockgen_sourceinfo { + u32 flags; + int pll; + int div; +}; -struct ib_ucontext; +struct clockgen_muxinfo { + struct clockgen_sourceinfo clksel[16]; +}; -struct rdma_user_mmap_entry; +struct ccsr_guts { + u32 porpllsr; + u32 porbmsr; + u32 porimpscr; + u32 pordevsr; + u32 pordbgmsr; + u32 pordevsr2; + u8 res018[8]; + u32 porcir; + u8 res024[12]; + u32 gpiocr; + u8 res034[12]; + u32 gpoutdr; + u8 res044[12]; + u32 gpindr; + u8 res054[12]; + u32 pmuxcr; + u32 pmuxcr2; + u32 dmuxcr; + u8 res06c[4]; + u32 devdisr; + u32 devdisr2; + u8 res078[4]; + u32 pmjcr; + u32 powmgtcsr; + u32 pmrccr; + u32 pmpdccr; + u32 pmcdr; + u32 mcpsumr; + u32 rstrscr; + u32 ectrstcr; + u32 autorstsr; + u32 pvr; + u32 svr; + u8 res0a8[8]; + u32 rstcr; + u8 res0b4[12]; + u32 iovselsr; + u8 res0c4[60]; + u32 rcwsr[16]; + u8 res140[228]; + u32 iodelay1; + u32 iodelay2; + u8 res22c[984]; + u32 pamubypenr; + u8 res608[504]; + u32 clkdvdr; + u8 res804[252]; + u32 ircr; + u8 res904[4]; + u32 dmacr; + u8 res90c[8]; + u32 elbccr; + u8 res918[520]; + u32 ddr1clkdr; + u32 ddr2clkdr; + u32 ddrclkdr; + u8 resb2c[724]; + u32 clkocr; + u8 rese04[12]; + u32 ddrdllcr; + u8 rese14[12]; + u32 lbcdllcr; + u32 cpfor; + u8 rese28[220]; + u32 srds1cr0; + u32 srds1cr1; + u8 resf0c[32]; + u32 itcr; + u8 resf30[16]; + u32 srds2cr0; + u32 srds2cr1; +}; -struct ib_pd; +struct mux_hwclock { + struct clk_hw hw; + struct clockgen *cg; + const struct clockgen_muxinfo *info; + u32 *reg; + u8 parent_to_clksel[16]; + s8 clksel_to_parent[16]; + int num_parents; +}; -struct ib_ah; +struct mtk_pll_div_table; -struct rdma_ah_init_attr; +struct mtk_pll_data { + int id; + const char *name; + u32 reg; + u32 pwr_reg; + u32 en_mask; + u32 pd_reg; + u32 tuner_reg; + u32 tuner_en_reg; + u8 tuner_en_bit; + int pd_shift; + unsigned int flags; + const struct clk_ops *ops; + u32 rst_bar_mask; + unsigned long fmin; + unsigned long fmax; + int pcwbits; + int pcwibits; + u32 pcw_reg; + int pcw_shift; + u32 pcw_chg_reg; + const struct mtk_pll_div_table *div_table; + const char *parent_name; + u32 en_reg; + u8 pll_en_bit; +}; -struct rdma_ah_attr; +struct mtk_pll_div_table { + u32 div; + unsigned long freq; +}; -struct ib_srq_init_attr; +struct qcom_reset_map; -struct ib_srq_attr; +struct gdsc; -struct ib_qp_init_attr; +struct qcom_cc_desc { + const struct regmap_config *config; + struct clk_regmap **clks; + size_t num_clks; + const struct qcom_reset_map *resets; + size_t num_resets; + struct gdsc **gdscs; + size_t num_gdscs; + struct clk_hw **clk_hws; + size_t num_clk_hws; +}; -struct ib_qp_attr; +struct qcom_reset_map { + unsigned int reg; + u8 bit; + u8 udelay; + u32 bitmask; +}; -struct ib_cq_init_attr; +struct gdsc { + struct generic_pm_domain pd; + struct generic_pm_domain *parent; + struct regmap *regmap; + unsigned int gdscr; + unsigned int collapse_ctrl; + unsigned int collapse_mask; + unsigned int gds_hw_ctrl; + unsigned int clamp_io_ctrl; + unsigned int *cxcs; + unsigned int cxc_count; + unsigned int en_rest_wait_val; + unsigned int en_few_wait_val; + unsigned int clk_dis_wait_val; + const u8 pwrsts; + const u16 flags; + struct reset_controller_dev *rcdev; + unsigned int *resets; + unsigned int reset_count; + const char *supply; + struct regulator *rsupply; +}; -struct ib_mr; +struct pll_vco; -struct ib_sge; +struct clk_alpha_pll { + u32 offset; + const u8 *regs; + const struct pll_vco *vco_table; + size_t num_vco; + u8 flags; + struct clk_regmap clkr; +}; -struct ib_mr_status; +struct pll_vco { + unsigned long min_freq; + unsigned long max_freq; + u32 val; +}; -struct ib_mw; +struct clk_alpha_pll_postdiv { + u32 offset; + u8 width; + const u8 *regs; + struct clk_regmap clkr; + int post_div_shift; + const struct clk_div_table *post_div_table; + size_t num_post_div; +}; -struct ib_xrcd; +struct parent_map; -struct ib_flow; +struct freq_tbl; -struct ib_flow_attr; +struct clk_rcg2 { + u32 cmd_rcgr; + u8 mnd_width; + u8 hid_width; + u8 safe_src_index; + const struct parent_map *parent_map; + const struct freq_tbl *freq_tbl; + struct clk_regmap clkr; + u8 cfg_off; + u32 parked_cfg; + bool hw_clk_ctrl; +}; -struct ib_flow_action; +struct parent_map { + u8 src; + u8 cfg; +}; -struct ib_wq; +struct freq_tbl { + unsigned long freq; + u8 src; + u8 pre_div; + u16 m; + u16 n; +}; -struct ib_wq_init_attr; +struct clk_fixed_factor { + struct clk_hw hw; + unsigned int mult; + unsigned int div; +}; -struct ib_wq_attr; +struct clk_branch { + u32 hwcg_reg; + u32 halt_reg; + u8 hwcg_bit; + u8 halt_bit; + u8 halt_check; + struct clk_regmap clkr; +}; -struct ib_rwq_ind_table; +struct alpha_pll_config { + u32 l; + u32 alpha; + u32 alpha_hi; + u32 config_ctl_val; + u32 config_ctl_hi_val; + u32 config_ctl_hi1_val; + u32 user_ctl_val; + u32 user_ctl_hi_val; + u32 user_ctl_hi1_val; + u32 test_ctl_val; + u32 test_ctl_mask; + u32 test_ctl_hi_val; + u32 test_ctl_hi_mask; + u32 test_ctl_hi1_val; + u32 test_ctl_hi2_val; + u32 main_output_mask; + u32 aux_output_mask; + u32 aux2_output_mask; + u32 early_output_mask; + u32 alpha_en_mask; + u32 alpha_mode_mask; + u32 pre_div_val; + u32 pre_div_mask; + u32 post_div_val; + u32 post_div_mask; + u32 vco_val; + u32 vco_mask; + u32 status_val; + u32 status_mask; + u32 lock_det; +}; -struct ib_rwq_ind_table_init_attr; +enum rockchip_pll_type { + pll_rk3036 = 0, + pll_rk3066 = 1, + pll_rk3328 = 2, + pll_rk3399 = 3, + pll_rk3588 = 4, + pll_rk3588_core = 5, +}; -struct ib_dm; +struct clk_mux { + struct clk_hw hw; + void *reg; + const u32 *table; + u32 mask; + u8 shift; + u8 flags; + spinlock_t *lock; +}; -struct ib_dm_alloc_attr; +struct rockchip_pll_rate_table; -struct ib_dm_mr_attr; +struct rockchip_clk_provider; -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; +struct rockchip_clk_pll { + struct clk_hw hw; + struct clk_mux pll_mux; + const struct clk_ops *pll_mux_ops; + struct notifier_block clk_nb; + void *reg_base; + int lock_offset; + unsigned int lock_shift; + enum rockchip_pll_type type; + u8 flags; + const struct rockchip_pll_rate_table *rate_table; + unsigned int rate_count; + spinlock_t *lock; + struct rockchip_clk_provider *ctx; }; -enum ib_atomic_cap { - IB_ATOMIC_NONE = 0, - IB_ATOMIC_HCA = 1, - IB_ATOMIC_GLOB = 2, +struct rockchip_pll_rate_table { + unsigned long rate; + union { + struct { + unsigned int nr; + unsigned int nf; + unsigned int no; + unsigned int nb; + }; + struct { + unsigned int fbdiv; + unsigned int postdiv1; + unsigned int refdiv; + unsigned int postdiv2; + unsigned int dsmpd; + unsigned int frac; + }; + struct { + unsigned int m; + unsigned int p; + unsigned int s; + unsigned int k; + }; + }; }; -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 rockchip_clk_provider { + void *reg_base; + struct clk_onecell_data clk_data; + struct device_node *cru_node; + struct regmap *grf; + spinlock_t lock; }; -struct ib_rss_caps { - u32 supported_qpts; - u32 max_rwq_indirection_tables; - u32 max_rwq_indirection_table_size; +struct exynos_audss_clk_drvdata { + unsigned int has_adma_clk: 1; + unsigned int has_mst_clk: 1; + unsigned int enable_epll: 1; + unsigned int num_clks; }; -struct ib_tm_caps { - u32 max_rndv_hdr_size; - u32 max_num_tags; - u32 flags; - u32 max_ops; - u32 max_sge; +struct ccu_gate { + u32 enable; + struct ccu_common common; }; -struct ib_cq_caps { - u16 max_cq_moderation_count; - u16 max_cq_moderation_period; +struct ccu_mult_internal { + u8 offset; + u8 shift; + u8 width; + u8 min; + u8 max; }; -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 ccu_div_internal { + u8 shift; + u8 width; + u32 max; + u32 offset; + u32 flags; + struct clk_div_table *table; }; -struct hw_stats_device_data; - -struct rdma_restrack_root; - -struct uapi_definition; - -struct ib_port_data; +struct ccu_mux_fixed_prediv; -struct rdma_link_ops; +struct ccu_mux_var_prediv; -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; - 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 ccu_mux_internal { + u8 shift; + u8 width; + const u8 *table; + const struct ccu_mux_fixed_prediv *fixed_predivs; + u8 n_predivs; + const struct ccu_mux_var_prediv *var_predivs; + u8 n_var_predivs; }; -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, +struct ccu_nkm { + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_mult_internal k; + struct ccu_div_internal m; + struct ccu_mux_internal mux; + unsigned int fixed_post_div; + struct ccu_common common; }; -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 ccu_mux_fixed_prediv { + u8 index; + u16 div; }; -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 ccu_mux_var_prediv { + u8 index; + u8 shift; + u8 width; }; -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 _ccu_nkm { + unsigned long n; + unsigned long min_n; + unsigned long max_n; + unsigned long k; + unsigned long min_k; + unsigned long max_k; + unsigned long m; + unsigned long min_m; + unsigned long max_m; }; -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 ccu_frac_internal { + u32 enable; + u32 select; + unsigned long rates[2]; }; -struct ib_uverbs_file; - -struct ib_rdmacg_object {}; - -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 ccu_mult { + u32 enable; + u32 lock; + struct ccu_frac_internal frac; + struct ccu_mult_internal mult; + struct ccu_mux_internal mux; + struct ccu_common common; }; -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 ccu_nkmp { + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_mult_internal k; + struct ccu_div_internal m; + struct ccu_div_internal p; + unsigned int fixed_post_div; + unsigned int max_rate; + struct ccu_common common; }; -struct ib_sig_attrs; +struct ccu_sdm_setting; -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 ccu_sdm_internal { + struct ccu_sdm_setting *table; + u32 table_size; + u32 enable; + u32 tuning_enable; + u16 tuning_reg; }; -struct ib_dm { - struct ib_device *device; - u32 length; - u32 flags; - struct ib_uobject *uobject; - atomic_t usecnt; +struct ccu_nm { + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_div_internal m; + struct ccu_frac_internal frac; + struct ccu_sdm_internal sdm; + unsigned int fixed_post_div; + unsigned int min_rate; + unsigned int max_rate; + struct ccu_common common; }; -enum ib_signature_type { - IB_SIG_TYPE_NONE = 0, - IB_SIG_TYPE_T10_DIF = 1, +struct ccu_sdm_setting { + unsigned long rate; + u32 pattern; + u32 m; + u32 n; }; -enum ib_t10_dif_bg_type { - IB_T10DIF_CRC = 0, - IB_T10DIF_CSUM = 1, +struct ccu_mux { + u32 enable; + struct ccu_mux_internal mux; + struct ccu_common common; }; -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 ccu_div { + u32 enable; + struct ccu_div_internal div; + struct ccu_mux_internal mux; + struct ccu_common common; + unsigned int fixed_post_div; }; -struct ib_sig_domain { - enum ib_signature_type sig_type; - union { - struct ib_t10_dif_domain dif; - } sig; +struct ccu_mp { + u32 enable; + struct ccu_div_internal m; + struct ccu_div_internal p; + struct ccu_mux_internal mux; + unsigned int fixed_post_div; + struct ccu_common common; }; -struct ib_sig_attrs { - u8 check_mask; - struct ib_sig_domain mem; - struct ib_sig_domain wire; - int meta_length; +struct visconti_reset_data { + u32 rson_offset; + u32 rsoff_offset; + u8 rs_idx; }; -struct irq_poll; +struct visconti_fixed_clk { + unsigned int id; + const char *name; + const char *parent; + unsigned long flag; + unsigned int mult; + unsigned int div; +}; -typedef int irq_poll_fn(struct irq_poll *, int); +struct visconti_clk_gate_table { + unsigned int id; + const char *name; + const struct clk_parent_data *parent_data; + u8 num_parents; + u8 flags; + u32 ckon_offset; + u32 ckoff_offset; + u8 ck_idx; + unsigned int div; + u8 rs_id; +}; -struct irq_poll { - struct list_head list; - unsigned long state; - int weight; - irq_poll_fn *poll; +struct visconti_clk_provider { + struct device *dev; + struct regmap *regmap; + struct clk_hw_onecell_data clk_data; }; -struct ib_ucq_object; +typedef void (*btf_trace_tegra_dma_tx_status)(void *, struct dma_chan *, dma_cookie_t, struct dma_tx_state *); -typedef void (*ib_comp_handler)(struct ib_cq *, void *); +typedef void (*btf_trace_tegra_dma_complete_cb)(void *, struct dma_chan *, int, 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, -}; +typedef void (*btf_trace_tegra_dma_isr)(void *, struct dma_chan *, int); -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; +struct tegra_dma_chip_data { + unsigned int nr_channels; + unsigned int channel_reg_size; + unsigned int max_dma_count; + bool support_channel_pause; + bool support_separate_wcount_reg; }; -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 trace_event_raw_tegra_dma_tx_status { + struct trace_entry ent; + u32 __data_loc_chan; + dma_cookie_t cookie; + __u32 residue; + char __data[0]; }; -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 trace_event_raw_tegra_dma_complete_cb { + struct trace_entry ent; + u32 __data_loc_chan; + int count; + void *ptr; + char __data[0]; }; -struct ib_usrq_object; - -enum ib_srq_type { - IB_SRQT_BASIC = 0, - IB_SRQT_XRC = 1, - IB_SRQT_TM = 2, +struct trace_event_raw_tegra_dma_isr { + struct trace_entry ent; + u32 __data_loc_chan; + int irq; + char __data[0]; }; -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 tegra_dma_channel; -struct ib_xrcd { - struct ib_device *device; - atomic_t usecnt; - struct inode *inode; - struct rw_semaphore tgt_qps_rwsem; - struct xarray tgt_qps; +typedef void (*dma_isr_handler)(struct tegra_dma_channel *, bool); + +struct tegra_dma_channel_regs { + u32 csr; + u32 ahb_ptr; + u32 apb_ptr; + u32 ahb_seq; + u32 apb_seq; + u32 wcount; }; -struct ib_uwq_object; +struct tegra_dma; -enum ib_wq_state { - IB_WQS_RESET = 0, - IB_WQS_RDY = 1, - IB_WQS_ERR = 2, +struct tegra_dma_channel { + struct dma_chan dma_chan; + char name[12]; + bool config_init; + unsigned int id; + void *chan_addr; + spinlock_t lock; + bool busy; + struct tegra_dma *tdma; + bool cyclic; + struct list_head free_sg_req; + struct list_head pending_sg_req; + struct list_head free_dma_desc; + struct list_head cb_desc; + dma_isr_handler isr_handler; + struct tasklet_struct tasklet; + unsigned int slave_id; + struct dma_slave_config dma_sconfig; + struct tegra_dma_channel_regs channel_reg; + struct wait_queue_head wq; }; -enum ib_wq_type { - IB_WQT_RQ = 0, +struct tegra_dma { + struct dma_device dma_dev; + struct device *dev; + struct clk *dma_clk; + struct reset_control *rst; + spinlock_t global_lock; + void *base_addr; + const struct tegra_dma_chip_data *chip_data; + u32 global_pause_count; + struct tegra_dma_channel channels[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; +struct tegra_dma_desc { + struct dma_async_tx_descriptor txd; + unsigned int bytes_requested; + unsigned int bytes_transferred; + enum dma_status dma_status; + struct list_head node; + struct list_head tx_list; + struct list_head cb_node; + unsigned int cb_count; }; -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, +struct tegra_dma_sg_req { + struct tegra_dma_channel_regs ch_regs; + unsigned int req_len; + bool configured; + bool last_sg; + struct list_head node; + struct tegra_dma_desc *dma_desc; + unsigned int words_xferred; }; -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 trace_event_data_offsets_tegra_dma_tx_status { + u32 chan; }; -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 trace_event_data_offsets_tegra_dma_complete_cb { + u32 chan; }; -struct ib_cqe { - void (*done)(struct ib_cq *, struct ib_wc *); +struct trace_event_data_offsets_tegra_dma_isr { + u32 chan; }; -union ib_gid { - u8 raw[16]; - struct { - __be64 subnet_prefix; - __be64 interface_id; - } global; -}; +struct tegra_cbb_ops; -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 tegra_cbb { + struct device *dev; + const struct tegra_cbb_ops *ops; + struct list_head node; }; -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 tegra_cbb_ops { + int (*debugfs_show)(struct tegra_cbb *, struct seq_file *, void *); + int (*interrupt_enable)(struct tegra_cbb *); + void (*error_enable)(struct tegra_cbb *); + void (*fault_enable)(struct tegra_cbb *); + void (*stall_enable)(struct tegra_cbb *); + void (*error_clear)(struct tegra_cbb *); + u32 (*get_status)(struct tegra_cbb *); }; -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 bcm_pmb_pd_data { + const char * const name; + int id; + u8 bus; + u8 device; }; -struct ib_ports_pkeys; +struct bcm_pmb; -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; +struct bcm_pmb_pm_domain { + struct bcm_pmb *pmb; + const struct bcm_pmb_pd_data *data; + struct generic_pm_domain genpd; }; -enum port_pkey_state { - IB_PORT_PKEY_NOT_VALID = 0, - IB_PORT_PKEY_VALID = 1, - IB_PORT_PKEY_LISTED = 2, +struct bcm_pmb { + struct device *dev; + void *base; + spinlock_t lock; + bool little_endian; + struct genpd_onecell_data genpd_onecell_data; }; -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 exynos_pm_domain_config { + u32 local_pwr_cfg; }; -struct ib_ports_pkeys { - struct ib_port_pkey main; - struct ib_port_pkey alt; +struct exynos_pm_domain { + void *base; + struct generic_pm_domain pd; + u32 local_pwr_cfg; }; -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, -}; +typedef uint32_t evtchn_port_t; -enum rdma_nl_counter_mask { - RDMA_COUNTER_MASK_QP_TYPE = 1, - RDMA_COUNTER_MASK_PID = 2, -}; +struct evtchn_loop_ctrl; -struct auto_mode_param { - int qp_type; +struct evtchn_ops { + unsigned int (*max_channels)(); + unsigned int (*nr_channels)(); + int (*setup)(evtchn_port_t); + void (*remove)(evtchn_port_t, unsigned int); + void (*bind_to_cpu)(evtchn_port_t, unsigned int, unsigned int); + void (*clear_pending)(evtchn_port_t); + void (*set_pending)(evtchn_port_t); + bool (*is_pending)(evtchn_port_t); + void (*mask)(evtchn_port_t); + void (*unmask)(evtchn_port_t); + void (*handle_events)(unsigned int, struct evtchn_loop_ctrl *); + void (*resume)(); + int (*percpu_init)(unsigned int); + int (*percpu_deinit)(unsigned int); }; -struct rdma_counter_mode { - enum rdma_nl_counter_mode mode; - enum rdma_nl_counter_mask mask; - struct auto_mode_param param; +enum xen_domain_type { + XEN_NATIVE = 0, + XEN_PV_DOMAIN = 1, + XEN_HVM_DOMAIN = 2, }; -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 arch_vcpu_info {}; -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 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 rdma_stat_desc { - const char *name; - unsigned int flags; - const void *priv; +struct vcpu_info { + uint8_t evtchn_upcall_pending; + uint8_t evtchn_upcall_mask; + xen_ulong_t evtchn_pending_sel; + struct arch_vcpu_info arch; + struct pvclock_vcpu_time_info time; }; -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 pvclock_wall_clock { + u32 version; + u32 sec; + u32 nsec; + u32 sec_hi; }; -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 arch_shared_info {}; -struct ib_sge { - u64 addr; - u32 length; - u32 lkey; +struct shared_info { + struct vcpu_info vcpu_info[1]; + xen_ulong_t evtchn_pending[64]; + xen_ulong_t evtchn_mask[64]; + struct pvclock_wall_clock wc; + uint32_t wc_sec_hi; + struct arch_shared_info arch; }; -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 evtchn_unmask { + evtchn_port_t port; }; -struct ib_grh { - __be32 version_tclass_flow; - __be16 paylen; - u8 next_hdr; - u8 hop_limit; - union ib_gid sgid; - union ib_gid dgid; +struct regulator_consumer_supply { + const char *dev_name; + const char *supply; }; -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 cros_ec_device; -struct ib_device_modify { - u64 sys_image_guid; - char node_desc[64]; +struct cros_ec_regulator_data { + struct regulator_desc desc; + struct regulator_dev *dev; + struct cros_ec_device *ec_dev; + u32 index; + u16 *voltages_mV; + u16 num_voltages; }; -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, -}; +struct ec_response_motion_sense_fifo_info { + uint16_t size; + uint16_t count; + uint32_t timestamp; + uint16_t total_lost; + uint16_t lost[0]; +} __attribute__((packed)); -enum ib_mtu { - IB_MTU_256 = 1, - IB_MTU_512 = 2, - IB_MTU_1024 = 3, - IB_MTU_2048 = 4, - IB_MTU_4096 = 5, +union ec_response_get_next_data_v1 { + uint8_t key_matrix[16]; + uint32_t host_event; + uint64_t host_event64; + struct { + uint8_t reserved[3]; + struct ec_response_motion_sense_fifo_info info; + } sensor_fifo; + uint32_t buttons; + uint32_t switches; + uint32_t fp_events; + uint32_t sysrq; + uint32_t cec_events; + uint8_t cec_message[16]; }; -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 ec_response_get_next_event_v1 { + uint8_t event_type; + union ec_response_get_next_data_v1 data; +} __attribute__((packed)); -struct ib_port_modify { - u32 set_port_cap_mask; - u32 clr_port_cap_mask; - u8 init_type; +struct cros_ec_device { + const char *phys_name; + struct device *dev; + struct class *cros_class; + int (*cmd_readmem)(struct cros_ec_device *, unsigned int, unsigned int, void *); + u16 max_request; + u16 max_response; + u16 max_passthru; + u16 proto_version; + void *priv; + int irq; + u8 *din; + u8 *dout; + int din_size; + int dout_size; + bool wake_enabled; + bool suspended; + int (*cmd_xfer)(struct cros_ec_device *, struct cros_ec_command *); + int (*pkt_xfer)(struct cros_ec_device *, struct cros_ec_command *); + struct lock_class_key lockdep_key; + struct mutex lock; + u8 mkbp_event_supported; + bool host_sleep_v1; + struct blocking_notifier_head event_notifier; + struct ec_response_get_next_event_v1 event_data; + int event_size; + u32 host_event_wake_mask; + u32 last_resume_result; + u16 suspend_timeout_ms; + ktime_t last_event_time; + struct notifier_block notifier_ready; + struct platform_device *ec; + struct platform_device *pd; + struct blocking_notifier_head panic_notifier; }; -struct ib_port_immutable { - int pkey_tbl_len; - int gid_tbl_len; - u32 core_cap_flags; - u32 max_mad_size; +struct ec_params_regulator_get_info { + uint32_t index; }; -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 ec_response_regulator_get_info { + char name[16]; + uint16_t num_voltages; + uint16_t voltages_mv[16]; }; -struct rdma_user_mmap_entry { - struct kref ref; - struct ib_ucontext *ucontext; - unsigned long start_pgoff; - size_t npages; - bool driver_removed; +struct ec_params_regulator_set_voltage { + uint32_t index; + uint32_t min_mv; + uint32_t max_mv; }; -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 ec_params_regulator_get_voltage { + uint32_t index; }; -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 ec_response_regulator_get_voltage { + uint32_t voltage_mv; }; -struct rdma_ah_init_attr { - struct rdma_ah_attr *ah_attr; - u32 flags; - struct net_device *xmit_slave; -}; +struct ec_params_regulator_enable { + uint32_t index; + uint8_t enable; +} __attribute__((packed)); -struct ib_ah_attr { - u16 dlid; - u8 src_path_bits; +struct ec_params_regulator_is_enabled { + uint32_t index; }; -struct roce_ah_attr { - u8 dmac[6]; +struct ec_response_regulator_is_enabled { + uint8_t enabled; }; -struct opa_ah_attr { - u32 dlid; - u8 src_path_bits; - bool make_grd; +struct mt6358_regulator_info { + struct regulator_desc desc; + u32 status_reg; + u32 qi; + u32 da_vsel_reg; + u32 da_vsel_mask; + u32 modeset_reg; + u32 modeset_mask; }; -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; +enum chip_id { + MT6323_CHIP_ID = 35, + MT6331_CHIP_ID = 32, + MT6332_CHIP_ID = 32, + MT6357_CHIP_ID = 87, + MT6358_CHIP_ID = 88, + MT6359_CHIP_ID = 89, + MT6366_CHIP_ID = 102, + MT6391_CHIP_ID = 145, + MT6397_CHIP_ID = 151, }; -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; - }; +enum { + MT6358_ID_VDRAM1 = 0, + MT6358_ID_VCORE = 1, + MT6358_ID_VPA = 2, + MT6358_ID_VPROC11 = 3, + MT6358_ID_VPROC12 = 4, + MT6358_ID_VGPU = 5, + MT6358_ID_VS2 = 6, + MT6358_ID_VMODEM = 7, + MT6358_ID_VS1 = 8, + MT6358_ID_VDRAM2 = 9, + MT6358_ID_VSIM1 = 10, + MT6358_ID_VIBR = 11, + MT6358_ID_VRF12 = 12, + MT6358_ID_VIO18 = 13, + MT6358_ID_VUSB = 14, + MT6358_ID_VCAMIO = 15, + MT6358_ID_VCAMD = 16, + MT6358_ID_VCN18 = 17, + MT6358_ID_VFE28 = 18, + MT6358_ID_VSRAM_PROC11 = 19, + MT6358_ID_VCN28 = 20, + MT6358_ID_VSRAM_OTHERS = 21, + MT6358_ID_VSRAM_GPU = 22, + MT6358_ID_VXO22 = 23, + MT6358_ID_VEFUSE = 24, + MT6358_ID_VAUX18 = 25, + MT6358_ID_VMCH = 26, + MT6358_ID_VBIF28 = 27, + MT6358_ID_VSRAM_PROC12 = 28, + MT6358_ID_VCAMA1 = 29, + MT6358_ID_VEMC = 30, + MT6358_ID_VIO28 = 31, + MT6358_ID_VA12 = 32, + MT6358_ID_VRF18 = 33, + MT6358_ID_VCN33 = 34, + MT6358_ID_VCAMA2 = 35, + MT6358_ID_VMC = 36, + MT6358_ID_VLDO28 = 37, + MT6358_ID_VAUD28 = 38, + MT6358_ID_VSIM2 = 39, + MT6358_ID_RG_MAX = 40, }; -struct ib_srq_attr { - u32 max_wr; - u32 max_sge; - u32 srq_limit; +enum { + MT6366_ID_VDRAM1 = 0, + MT6366_ID_VCORE = 1, + MT6366_ID_VPA = 2, + MT6366_ID_VPROC11 = 3, + MT6366_ID_VPROC12 = 4, + MT6366_ID_VGPU = 5, + MT6366_ID_VS2 = 6, + MT6366_ID_VMODEM = 7, + MT6366_ID_VS1 = 8, + MT6366_ID_VDRAM2 = 9, + MT6366_ID_VSIM1 = 10, + MT6366_ID_VIBR = 11, + MT6366_ID_VRF12 = 12, + MT6366_ID_VIO18 = 13, + MT6366_ID_VUSB = 14, + MT6366_ID_VCN18 = 15, + MT6366_ID_VFE28 = 16, + MT6366_ID_VSRAM_PROC11 = 17, + MT6366_ID_VCN28 = 18, + MT6366_ID_VSRAM_OTHERS = 19, + MT6366_ID_VSRAM_GPU = 20, + MT6366_ID_VXO22 = 21, + MT6366_ID_VEFUSE = 22, + MT6366_ID_VAUX18 = 23, + MT6366_ID_VMCH = 24, + MT6366_ID_VBIF28 = 25, + MT6366_ID_VSRAM_PROC12 = 26, + MT6366_ID_VEMC = 27, + MT6366_ID_VIO28 = 28, + MT6366_ID_VA12 = 29, + MT6366_ID_VRF18 = 30, + MT6366_ID_VCN33 = 31, + MT6366_ID_VMC = 32, + MT6366_ID_VAUD28 = 33, + MT6366_ID_VSIM2 = 34, + MT6366_ID_VM18 = 35, + MT6366_ID_VMDDR = 36, + MT6366_ID_VSRAM_CORE = 37, + MT6366_ID_RG_MAX = 38, }; -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; +enum regulator_status { + REGULATOR_STATUS_OFF = 0, + REGULATOR_STATUS_ON = 1, + REGULATOR_STATUS_ERROR = 2, + REGULATOR_STATUS_FAST = 3, + REGULATOR_STATUS_NORMAL = 4, + REGULATOR_STATUS_IDLE = 5, + REGULATOR_STATUS_STANDBY = 6, + REGULATOR_STATUS_BYPASS = 7, + REGULATOR_STATUS_UNDEFINED = 8, }; -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; +struct mt6397_chip { + struct device *dev; + struct regmap *regmap; + struct notifier_block pm_nb; + int irq; + struct irq_domain *irq_domain; + struct mutex irqlock; + u16 wake_mask[2]; + u16 irq_masks_cur[2]; + u16 irq_masks_cache[2]; + u16 int_con[2]; + u16 int_status[2]; + u16 chip_id; + void *irq_data; }; -enum ib_sig_type { - IB_SIGNAL_ALL_WR = 0, - IB_SIGNAL_REQ_WR = 1, +struct tps65219_regulator_irq_type { + const char *irq_name; + const char *regulator_name; + const char *event_name; + unsigned long event; }; -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; +struct tps65219 { + struct device *dev; + struct regmap *regmap; + struct regmap_irq_chip_data *irq_data; + struct notifier_block nb; }; -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, +struct tps65219_regulator_irq_data { + struct device *dev; + struct tps65219_regulator_irq_type *type; + struct regulator_dev *rdev; }; -enum ib_mig_state { - IB_MIG_MIGRATED = 0, - IB_MIG_REARM = 1, - IB_MIG_ARMED = 2, +enum translation_map { + LAT1_MAP = 0, + GRAF_MAP = 1, + IBMPC_MAP = 2, + USER_MAP = 3, + FIRST_MAP = 0, + LAST_MAP = 3, }; -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 uni_pagedict { + u16 **uni_pgdir[32]; + unsigned long refcount; + unsigned long sum; + unsigned char *inverse_translations[4]; + u16 *inverse_trans_unicode; }; -struct ib_cq_init_attr { - unsigned int cqe; - u32 comp_vector; - u32 flags; +enum vc_intensity { + VCI_HALF_BRIGHT = 0, + VCI_NORMAL = 1, + VCI_BOLD = 2, + VCI_MASK = 3, }; -enum ib_sig_err_type { - IB_SIG_BAD_GUARD = 0, - IB_SIG_BAD_REFTAG = 1, - IB_SIG_BAD_APPTAG = 2, +enum con_scroll { + SM_UP = 0, + SM_DOWN = 1, }; -struct ib_sig_err { - enum ib_sig_err_type err_type; - u32 expected; - u32 actual; - u64 sig_err_offset; - u32 key; -}; +typedef unsigned short ushort; -struct ib_mr_status { - u32 fail_status; - struct ib_sig_err sig_err; +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; }; -enum ib_mw_type { - IB_MW_TYPE_1 = 1, - IB_MW_TYPE_2 = 2, +struct console_font { + unsigned int width; + unsigned int height; + unsigned int charcount; + unsigned char *data; }; -struct ib_mw { - struct ib_device *device; - struct ib_pd *pd; - struct ib_uobject *uobject; - u32 rkey; - enum ib_mw_type type; +struct vt_mode { + char mode; + char waitv; + short relsig; + short acqsig; + short frsig; }; -struct ib_flow { - struct ib_qp *qp; - struct ib_device *device; - struct ib_uobject *uobject; -}; +struct consw; -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 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; }; -struct ib_flow_eth_filter { - u8 dst_mac[6]; - u8 src_mac[6]; - __be16 ether_type; - __be16 vlan_tag; - u8 real_sz[0]; +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 ib_flow_spec_eth { - u32 type; - u16 size; - struct ib_flow_eth_filter val; - struct ib_flow_eth_filter mask; -}; +typedef unsigned short u_short; -struct ib_flow_ib_filter { - __be16 dlid; - __u8 sl; - u8 real_sz[0]; +struct unipair { + unsigned short unicode; + unsigned short fontpos; }; -struct ib_flow_spec_ib { - u32 type; - u16 size; - struct ib_flow_ib_filter val; - struct ib_flow_ib_filter mask; -}; +struct mctrl_gpios; -struct ib_flow_ipv4_filter { - __be32 src_ip; - __be32 dst_ip; - u8 proto; - u8 tos; - u8 ttl; - u8 flags; - u8 real_sz[0]; -}; +struct uart_8250_dma; -struct ib_flow_spec_ipv4 { - u32 type; - u16 size; - struct ib_flow_ipv4_filter val; - struct ib_flow_ipv4_filter mask; -}; +struct uart_8250_ops; -struct ib_flow_tcp_udp_filter { - __be16 dst_port; - __be16 src_port; - u8 real_sz[0]; -}; +struct uart_8250_em485; -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 uart_8250_port { + struct uart_port port; + struct timer_list timer; + struct list_head list; + u32 capabilities; + u16 bugs; + unsigned int tx_loadsz; + unsigned char acr; + unsigned char fcr; + unsigned char ier; + unsigned char lcr; + unsigned char mcr; + unsigned char cur_iotype; + unsigned int rpm_tx_active; + unsigned char canary; + unsigned char probe; + struct mctrl_gpios *gpios; + u16 lsr_saved_flags; + u16 lsr_save_mask; + unsigned char msr_saved_flags; + struct uart_8250_dma *dma; + const struct uart_8250_ops *ops; + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + struct uart_8250_em485 *em485; + void (*rs485_start_tx)(struct uart_8250_port *); + void (*rs485_stop_tx)(struct uart_8250_port *); + struct delayed_work overrun_backoff; + u32 overrun_backoff_time_ms; }; -struct 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 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 ib_flow_spec_ipv6 { - u32 type; - u16 size; - struct ib_flow_ipv6_filter val; - struct ib_flow_ipv6_filter mask; +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 ib_flow_tunnel_filter { - __be32 tunnel_id; - u8 real_sz[0]; +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 ib_flow_spec_tunnel { - u32 type; - u16 size; - struct ib_flow_tunnel_filter val; - struct ib_flow_tunnel_filter mask; +struct serial8250_em_priv { + int line; }; -struct ib_flow_esp_filter { - __be32 spi; - __be32 seq; - u8 real_sz[0]; -}; +struct earlycon_device; -struct ib_flow_spec_esp { - u32 type; - u16 size; - struct ib_flow_esp_filter val; - struct ib_flow_esp_filter mask; +struct earlycon_id { + char name[15]; + char name_term; + char compatible[128]; + int (*setup)(struct earlycon_device *, const char *); }; -struct ib_flow_gre_filter { - __be16 c_ks_res0_ver; - __be16 protocol; - __be32 key; - u8 real_sz[0]; +struct earlycon_device { + struct console *con; + struct uart_port port; + char options[32]; + unsigned int baud; }; -struct ib_flow_spec_gre { - u32 type; - u16 size; - struct ib_flow_gre_filter val; - struct ib_flow_gre_filter mask; -}; +struct sci_port_params; -struct ib_flow_mpls_filter { - __be32 tag; - u8 real_sz[0]; -}; +struct plat_sci_port; -struct ib_flow_spec_mpls { - u32 type; - u16 size; - struct ib_flow_mpls_filter val; - struct ib_flow_mpls_filter mask; +struct sci_port { + struct uart_port port; + const struct sci_port_params *params; + const struct plat_sci_port *cfg; + unsigned int sampling_rate_mask; + resource_size_t reg_size; + struct mctrl_gpios *gpios; + struct clk *clks[4]; + unsigned long clk_rates[4]; + int irqs[6]; + char *irqstr[6]; + struct dma_chan *chan_tx; + struct dma_chan *chan_rx; + struct dma_chan *chan_tx_saved; + struct dma_chan *chan_rx_saved; + dma_cookie_t cookie_tx; + dma_cookie_t cookie_rx[2]; + dma_cookie_t active_rx; + dma_addr_t tx_dma_addr; + unsigned int tx_dma_len; + struct scatterlist sg_rx[2]; + void *rx_buf[2]; + size_t buf_len_rx; + struct work_struct work_tx; + struct hrtimer rx_timer; + unsigned int rx_timeout; + unsigned int rx_frame; + int rx_trigger; + struct timer_list rx_fifo_timer; + int rx_fifo_timeout; + u16 hscif_tot; + bool has_rtscts; + bool autorts; }; -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 plat_sci_reg { + u8 offset; + u8 size; }; -struct ib_flow_spec_action_tag { - enum ib_flow_spec_type type; - u16 size; - u32 tag_id; +struct sci_port_params { + const struct plat_sci_reg regs[20]; + unsigned int fifosize; + unsigned int overrun_reg; + unsigned int overrun_mask; + unsigned int sampling_rate_mask; + unsigned int error_mask; + unsigned int error_clear; }; -struct ib_flow_spec_action_drop { - enum ib_flow_spec_type type; - u16 size; +struct plat_sci_port_ops; + +struct plat_sci_port { + unsigned int type; + upf_t flags; + unsigned int sampling_rate; + unsigned int scscr; + unsigned char regtype; + struct plat_sci_port_ops *ops; }; -struct ib_flow_spec_action_handle { - enum ib_flow_spec_type type; - u16 size; - struct ib_flow_action *act; +struct plat_sci_port_ops { + void (*init_pins)(struct uart_port *, unsigned int); }; -struct ib_flow_spec_action_count { - enum ib_flow_spec_type type; - u16 size; - struct ib_counters *counters; +struct sci_irq_desc { + const char *desc; + irq_handler_t handler; }; -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; +enum mctrl_gpio_idx { + UART_GPIO_CTS = 0, + UART_GPIO_DSR = 1, + UART_GPIO_DCD = 2, + UART_GPIO_RNG = 3, + UART_GPIO_RI = 3, + UART_GPIO_RTS = 4, + UART_GPIO_DTR = 5, + UART_GPIO_MAX = 6, }; -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 { + SCIx_ERI_IRQ = 0, + SCIx_RXI_IRQ = 1, + SCIx_TXI_IRQ = 2, + SCIx_BRI_IRQ = 3, + SCIx_DRI_IRQ = 4, + SCIx_TEI_IRQ = 5, + SCIx_NR_IRQS = 6, + SCIx_MUX_IRQ = 6, }; -enum ib_flow_action_type { - IB_FLOW_ACTION_UNSPECIFIED = 0, - IB_FLOW_ACTION_ESP = 1, +enum { + SCIx_PROBE_REGTYPE = 0, + SCIx_SCI_REGTYPE = 1, + SCIx_IRDA_REGTYPE = 2, + SCIx_SCIFA_REGTYPE = 3, + SCIx_SCIFB_REGTYPE = 4, + SCIx_SH2_SCIF_FIFODATA_REGTYPE = 5, + SCIx_SH3_SCIF_REGTYPE = 6, + SCIx_SH4_SCIF_REGTYPE = 7, + SCIx_SH4_SCIF_BRG_REGTYPE = 8, + SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE = 9, + SCIx_SH4_SCIF_FIFODATA_REGTYPE = 10, + SCIx_SH7705_SCIF_REGTYPE = 11, + SCIx_HSCIF_REGTYPE = 12, + SCIx_RZ_SCIFA_REGTYPE = 13, + SCIx_NR_REGTYPES = 14, }; -struct ib_flow_action { - struct ib_device *device; - struct ib_uobject *uobject; - enum ib_flow_action_type type; - atomic_t usecnt; +enum { + SCSMR = 0, + SCBRR = 1, + SCSCR = 2, + SCxSR = 3, + SCFCR = 4, + SCFDR = 5, + SCxTDR = 6, + SCxRDR = 7, + SCLSR = 8, + SCTFDR = 9, + SCRFDR = 10, + SCSPTR = 11, + HSSRR = 12, + SCPCR = 13, + SCPDR = 14, + SCDL = 15, + SCCKS = 16, + HSRTRGR = 17, + HSTTRGR = 18, + SEMR = 19, + SCIx_NR_REGS = 20, }; -struct ib_counters { - struct ib_device *device; - struct ib_uobject *uobject; - atomic_t usecnt; +enum SCI_CLKS { + SCI_FCK = 0, + SCI_SCK = 1, + SCI_BRG_INT = 2, + SCI_SCIF_CLK = 3, + SCI_NUM_CLKS = 4, }; -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; +enum tpm_chip_flags { + TPM_CHIP_FLAG_BOOTSTRAPPED = 1, + 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, + TPM_CHIP_FLAG_SUSPENDED = 256, + TPM_CHIP_FLAG_HWRNG_DISABLED = 512, }; -struct ib_wq_attr { - enum ib_wq_state wq_state; - enum ib_wq_state curr_wq_state; - u32 flags; - u32 flags_mask; +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, }; -struct ib_rwq_ind_table_init_attr { - u32 log_ind_tbl_size; - struct ib_wq **ind_tbl; +enum TPM_OPS_FLAGS { + TPM_OPS_AUTO_STARTUP = 1, }; -struct ib_dm_alloc_attr { - u64 length; - u32 alignment; - u32 flags; +enum tpm2_startup_types { + TPM2_SU_CLEAR = 0, + TPM2_SU_STATE = 1, }; -struct ib_dm_mr_attr { - u64 length; - u64 offset; - u32 access_flags; +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, }; -struct ib_counters_read_attr { - u64 *counters_buff; - u32 ncounters; - u32 flags; +struct tpm_digest { + u16 alg_id; + u8 digest[64]; }; -struct ib_pkey_cache; - -struct ib_gid_table; +typedef u32 arm_v7s_iopte; -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 arm_v7s_io_pgtable { + struct io_pgtable iop; + arm_v7s_iopte *pgd; + struct kmem_cache *l2_tables; + spinlock_t split_lock; }; -struct rdma_port_counter { - struct rdma_counter_mode mode; - struct rdma_hw_stats *hstats; - unsigned int num_counters; - struct mutex lock; -}; +struct regmap_irq_sub_irq_map; -struct ib_port; +struct regmap_irq; -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 regmap_irq_chip { + const char *name; + unsigned int main_status; + unsigned int num_main_status_bits; + struct regmap_irq_sub_irq_map *sub_reg_offsets; + int num_main_regs; + unsigned int status_base; + unsigned int mask_base; + unsigned int unmask_base; + unsigned int ack_base; + unsigned int wake_base; + const unsigned int *config_base; + unsigned int irq_reg_stride; + unsigned int init_ack_masked: 1; + unsigned int mask_unmask_non_inverted: 1; + unsigned int use_ack: 1; + unsigned int ack_invert: 1; + unsigned int clear_ack: 1; + unsigned int status_invert: 1; + unsigned int wake_invert: 1; + unsigned int type_in_mask: 1; + unsigned int clear_on_unmask: 1; + unsigned int runtime_pm: 1; + unsigned int no_status: 1; + int num_regs; + const struct regmap_irq *irqs; + int num_irqs; + int num_config_bases; + int num_config_regs; + int (*handle_pre_irq)(void *); + int (*handle_post_irq)(void *); + int (*handle_mask_sync)(int, unsigned int, unsigned int, void *); + int (*set_type_config)(unsigned int **, unsigned int, const struct regmap_irq *, int, void *); + unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int); + void *irq_drv_data; }; -struct rdma_link_ops { - struct list_head list; - const char *type; - int (*newlink)(const char *, struct net_device *); +struct regmap_irq_sub_irq_map { + unsigned int num_regs; + unsigned int *offset; }; -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 regmap_irq_type { + unsigned int type_reg_offset; + unsigned int type_reg_mask; + unsigned int type_rising_val; + unsigned int type_falling_val; + unsigned int type_level_low_val; + unsigned int type_level_high_val; + unsigned int types_supported; }; -struct devlink_linecard_ops; +struct regmap_irq { + unsigned int reg_offset; + unsigned int mask; + struct regmap_irq_type type; +}; -struct devlink_linecard_type; +typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *); -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; +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 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 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 devlink_linecard_type { - const char *type; - const void *priv; +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]; }; -typedef void (*btf_trace_devlink_hwmsg)(void *, const struct devlink *, bool, unsigned long, const u8 *, size_t); +struct trace_event_raw_scsi_cmd_done_timeout_template { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + int result; + unsigned int opcode; + unsigned int cmd_len; + int driver_tag; + int scheduler_tag; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + u8 sense_key; + u8 asc; + u8 ascq; + char __data[0]; +}; -typedef void (*btf_trace_devlink_hwerr)(void *, const struct devlink *, int, const char *); +struct trace_event_raw_scsi_eh_wakeup { + struct trace_entry ent; + unsigned int host_no; + char __data[0]; +}; -typedef void (*btf_trace_devlink_health_report)(void *, const struct devlink *, const char *, const char *); +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 void (*btf_trace_devlink_health_recover_aborted)(void *, const struct devlink *, const char *, bool, u64); +struct trace_event_data_offsets_scsi_dispatch_cmd_start { + u32 cmnd; +}; -typedef void (*btf_trace_devlink_health_reporter_state_update)(void *, const struct devlink *, const char *, bool); +struct trace_event_data_offsets_scsi_dispatch_cmd_error { + u32 cmnd; +}; -struct devlink_trap_metadata; +struct trace_event_data_offsets_scsi_cmd_done_timeout_template { + u32 cmnd; +}; -typedef void (*btf_trace_devlink_trap_report)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *); +struct scsi_exec_args { + unsigned char *sense; + unsigned int sense_len; + struct scsi_sense_hdr *sshdr; + blk_mq_req_flags_t req_flags; + int scmd_flags; + int *resid; +}; -struct flow_action_cookie; +struct trace_event_data_offsets_scsi_eh_wakeup {}; -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 MR_ADAPTER_TYPE { + MFI_SERIES = 1, + THUNDERBOLT_SERIES = 2, + INVADER_SERIES = 3, + VENTURA_SERIES = 4, + AERO_SERIES = 5, }; -struct flow_action_cookie { - u32 cookie_len; - u8 cookie[0]; +enum REGION_TYPE { + REGION_TYPE_UNUSED = 0, + REGION_TYPE_SHARED_READ = 1, + REGION_TYPE_SHARED_WRITE = 2, + REGION_TYPE_EXCLUSIVE = 3, }; -struct devlink_cmd { - int (*dump_one)(struct sk_buff *, struct devlink *, struct netlink_callback *); +enum MR_RAID_MAP_DESC_TYPE { + RAID_MAP_DESC_TYPE_DEVHDL_INFO = 0, + RAID_MAP_DESC_TYPE_TGTID_INFO = 1, + RAID_MAP_DESC_TYPE_ARRAY_INFO = 2, + RAID_MAP_DESC_TYPE_SPAN_INFO = 3, + RAID_MAP_DESC_TYPE_COUNT = 4, }; -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, +enum MR_RAID_FLAGS_IO_SUB_TYPE { + MR_RAID_FLAGS_IO_SUB_TYPE_NONE = 0, + MR_RAID_FLAGS_IO_SUB_TYPE_SYSTEM_PD = 1, + MR_RAID_FLAGS_IO_SUB_TYPE_RMW_DATA = 2, + MR_RAID_FLAGS_IO_SUB_TYPE_RMW_P = 3, + MR_RAID_FLAGS_IO_SUB_TYPE_RMW_Q = 4, + MR_RAID_FLAGS_IO_SUB_TYPE_CACHE_BYPASS = 6, + MR_RAID_FLAGS_IO_SUB_TYPE_LDIO_BW_LIMIT = 7, + MR_RAID_FLAGS_IO_SUB_TYPE_R56_DIV_OFFLOAD = 8, }; -struct devlink_param_gset_ctx; - -union devlink_param_value; +struct RAID_CONTEXT_G35 { + u16 nseg_type; + u16 timeout_value; + u16 routing_flags; + u16 virtual_disk_tgt_id; + __le64 reg_lock_row_lba; + u32 reg_lock_length; + union { + u16 rmw_op_index; + u16 peer_smid; + u16 r56_arm_map; + } flow_specific; + u8 ex_status; + u8 status; + u8 raid_flags; + u8 span_arm; + u16 config_seq_num; + union { + struct { + u16 num_sge: 12; + u16 reserved: 3; + u16 stream_detected: 1; + } bits; + u8 bytes[2]; + } u; + u8 resvd2[2]; +}; -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 *); +struct MR_RAID_MAP_DESC_TABLE { + u32 raid_map_desc_type; + u32 raid_map_desc_offset; + u32 raid_map_desc_buffer_size; + u32 raid_map_desc_elements; }; -union devlink_param_value { - u8 vu8; - u16 vu16; - u32 vu32; - char vstr[32]; - bool vbool; +struct MR_DEV_HANDLE_INFO { + __le16 curDevHdl; + u8 validHandles; + u8 interfaceType; + __le16 devHandle[2]; }; -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 MR_ARRAY_INFO { + __le16 pd[32]; }; -struct devlink_param_gset_ctx { - union devlink_param_value val; - enum devlink_param_cmode cmode; +struct MR_CPU_AFFINITY_MASK { + union { + struct { + u8 hw_path: 1; + u8 cpu0: 1; + u8 cpu1: 1; + u8 cpu2: 1; + u8 cpu3: 1; + u8 reserved: 3; + }; + u8 core_mask; + }; }; -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 MR_IO_AFFINITY { + union { + struct { + struct MR_CPU_AFFINITY_MASK pdRead; + struct MR_CPU_AFFINITY_MASK pdWrite; + struct MR_CPU_AFFINITY_MASK ldRead; + struct MR_CPU_AFFINITY_MASK ldWrite; + }; + u32 word; + }; + u8 maxCores; + u8 reserved[3]; }; -enum devlink_dpipe_match_type { - DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0, +struct MR_LD_RAID { + struct { + u32 fpCapable: 1; + u32 ra_capable: 1; + u32 reserved5: 2; + u32 ldPiMode: 4; + u32 pdPiMode: 4; + u32 encryptionType: 8; + u32 fpWriteCapable: 1; + u32 fpReadCapable: 1; + u32 fpWriteAcrossStripe: 1; + u32 fpReadAcrossStripe: 1; + u32 fpNonRWCapable: 1; + u32 tmCapable: 1; + u32 fpBypassRegionLock: 1; + u32 disable_coalescing: 1; + u32 fp_rmw_capable: 1; + u32 fp_cache_bypass_capable: 1; + u32 reserved4: 2; + } capability; + __le32 reserved6; + __le64 size; + u8 spanDepth; + u8 level; + u8 stripeShift; + u8 rowSize; + u8 rowDataSize; + u8 writeMode; + u8 PRL; + u8 SRL; + __le16 targetId; + u8 ldState; + u8 regTypeReqOnWrite; + u8 modFactor; + u8 regTypeReqOnRead; + __le16 seqNum; + struct { + u32 ldSyncRequired: 1; + u32 regTypeReqOnReadIsValid: 1; + u32 isEPD: 1; + u32 enableSLDOnAllRWIOs: 1; + u32 reserved: 28; + } flags; + u8 LUN[8]; + u8 fpIoTimeoutForLd; + u8 ld_accept_priority_type; + u8 reserved2[2]; + u32 logical_block_length; + struct { + u32 ld_pi_exp: 4; + u32 ld_logical_block_exp: 4; + u32 reserved1: 24; + }; + struct MR_IO_AFFINITY cpuAffinity; + u8 reserved3[64]; }; -enum devlink_dpipe_action_type { - DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0, +struct MR_LD_SPAN { + __le64 startBlk; + __le64 numBlks; + __le16 arrayRef; + u8 spanRowSize; + u8 spanRowDataSize; + u8 reserved[4]; }; -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, +struct MR_QUAD_ELEMENT { + __le64 logStart; + __le64 logEnd; + __le64 offsetInSpan; + __le32 diff; + __le32 reserved1; }; -enum devlink_resource_unit { - DEVLINK_RESOURCE_UNIT_ENTRY = 0, +struct MR_SPAN_INFO { + __le32 noElements; + __le32 reserved1; + struct MR_QUAD_ELEMENT quad[8]; }; -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, +struct MR_SPAN_BLOCK_INFO { + __le64 num_rows; + struct MR_LD_SPAN span; + struct MR_SPAN_INFO block_span_info; }; -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, +struct MR_LD_SPAN_MAP { + struct MR_LD_RAID ldRaid; + u8 dataArmMap[32]; + struct MR_SPAN_BLOCK_INFO spanBlock[8]; }; -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 MR_FW_RAID_MAP_EXT { + u32 reserved; + union { + struct { + u32 maxLd; + u32 maxSpanDepth; + u32 maxRowSize; + u32 maxPdCount; + u32 maxArrays; + } validationInfo; + u32 version[5]; + }; + u8 fpPdIoTimeoutSec; + u8 reserved2[7]; + __le16 ldCount; + __le16 arCount; + __le16 spanCount; + __le16 reserve3; + struct MR_DEV_HANDLE_INFO devHndlInfo[256]; + u8 ldTgtIdToLd[256]; + struct MR_ARRAY_INFO arMapInfo[256]; + struct MR_LD_SPAN_MAP ldSpanMap[256]; }; -enum { - DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0, - DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 1, +struct MR_FW_RAID_MAP { + __le32 totalSize; + union { + struct { + __le32 maxLd; + __le32 maxSpanDepth; + __le32 maxRowSize; + __le32 maxPdCount; + __le32 maxArrays; + } validationInfo; + __le32 version[5]; + }; + __le32 ldCount; + __le32 Reserved1; + u8 ldTgtIdToLd[128]; + u8 fpPdIoTimeoutSec; + u8 reserved2[7]; + struct MR_ARRAY_INFO arMapInfo[128]; + struct MR_DEV_HANDLE_INFO devHndlInfo[256]; + struct MR_LD_SPAN_MAP ldSpanMap[0]; }; -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, +struct MR_FW_RAID_MAP_ALL { + struct MR_FW_RAID_MAP raidMap; + struct MR_LD_SPAN_MAP ldSpanMap[64]; }; -enum devlink_multicast_groups { - DEVLINK_MCGRP_CONFIG = 0, +struct megasas_pd_list { + u16 tid; + u8 driveType; + u8 driveState; }; -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, +struct megasas_instance; + +struct megasas_irq_context { + char name[32]; + struct megasas_instance *instance; + u32 MSIxIndex; + u32 os_irq; + struct irq_poll irqpoll; + bool irq_poll_scheduled; + bool irq_line_enable; + atomic_t in_used; }; -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_size_params { - u64 size_min; - u64 size_max; - u64 size_granularity; - enum devlink_resource_unit unit; -}; - -typedef u64 devlink_resource_occ_get_t(void *); +struct MR_DRV_SYSTEM_INFO; -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 MR_LD_VF_AFFILIATION; -struct devlink_trap_policer_item { - const struct devlink_trap_policer *policer; - u64 rate; - u64 burst; - struct list_head list; -}; +struct MR_LD_VF_AFFILIATION_111; -struct devlink_stats; +struct MR_CTRL_HB_HOST_MEM; -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 MR_PD_INFO; -struct devlink_stats { - u64_stats_t rx_bytes; - u64_stats_t rx_packets; - struct u64_stats_sync syncp; -}; +struct MR_TARGET_PROPERTIES; -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 MR_PD_LIST; -struct devlink_region_ops; +struct megasas_ctrl_info; -struct devlink_port_region_ops; +struct MR_LD_LIST; -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 MR_LD_TARGETID_LIST; -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; -}; +struct MR_HOST_DEVICE_LIST; -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 MR_SNAPDUMP_PROPERTIES; -struct devlink_snapshot { - struct list_head list; - struct devlink_region *region; - u8 *data; - u32 id; -}; +struct megasas_register_set; -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 megasas_aen_event; -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 megasas_cmd; -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 megasas_evt_detail; -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 megasas_instance_template; -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 megasas_instance { + unsigned int *reply_map; + __le32 *producer; + dma_addr_t producer_h; + __le32 *consumer; + dma_addr_t consumer_h; + struct MR_DRV_SYSTEM_INFO *system_info_buf; + dma_addr_t system_info_h; + struct MR_LD_VF_AFFILIATION *vf_affiliation; + dma_addr_t vf_affiliation_h; + struct MR_LD_VF_AFFILIATION_111 *vf_affiliation_111; + dma_addr_t vf_affiliation_111_h; + struct MR_CTRL_HB_HOST_MEM *hb_host_mem; + dma_addr_t hb_host_mem_h; + struct MR_PD_INFO *pd_info; + dma_addr_t pd_info_h; + struct MR_TARGET_PROPERTIES *tgt_prop; + dma_addr_t tgt_prop_h; + __le32 *reply_queue; + dma_addr_t reply_queue_h; + u32 *crash_dump_buf; + dma_addr_t crash_dump_h; + struct MR_PD_LIST *pd_list_buf; + dma_addr_t pd_list_buf_h; + struct megasas_ctrl_info *ctrl_info_buf; + dma_addr_t ctrl_info_buf_h; + struct MR_LD_LIST *ld_list_buf; + dma_addr_t ld_list_buf_h; + struct MR_LD_TARGETID_LIST *ld_targetid_list_buf; + dma_addr_t ld_targetid_list_buf_h; + struct MR_HOST_DEVICE_LIST *host_device_list_buf; + dma_addr_t host_device_list_buf_h; + struct MR_SNAPDUMP_PROPERTIES *snapdump_prop; + dma_addr_t snapdump_prop_h; + void *crash_buf[512]; + unsigned int fw_crash_buffer_size; + unsigned int fw_crash_state; + unsigned int fw_crash_buffer_offset; + u32 drv_buf_index; + u32 drv_buf_alloc; + u32 crash_dump_fw_support; + u32 crash_dump_drv_support; + u32 crash_dump_app_support; + u32 secure_jbod_support; + u32 support_morethan256jbod; + bool use_seqnum_jbod_fp; + bool smp_affinity_enable; + struct mutex crashdump_lock; + struct megasas_register_set *reg_set; + u32 *reply_post_host_index_addr[16]; + struct megasas_pd_list pd_list[256]; + struct megasas_pd_list local_pd_list[256]; + u8 ld_ids[256]; + u8 ld_tgtid_status[256]; + u8 ld_ids_prev[256]; + u8 ld_ids_from_raidmap[256]; + s8 init_id; + u16 max_num_sge; + u16 max_fw_cmds; + u16 max_mpt_cmds; + u16 max_mfi_cmds; + u16 max_scsi_cmds; + u16 ldio_threshold; + u16 cur_can_queue; + u32 max_sectors_per_req; + bool msix_load_balance; + struct megasas_aen_event *ev; + struct megasas_cmd **cmd_list; + struct list_head cmd_pool; + spinlock_t mfi_pool_lock; + spinlock_t hba_lock; + spinlock_t stream_lock; + spinlock_t completion_lock; + struct dma_pool *frame_dma_pool; + struct dma_pool *sense_dma_pool; + struct megasas_evt_detail *evt_detail; + dma_addr_t evt_detail_h; + struct megasas_cmd *aen_cmd; + struct semaphore ioctl_sem; + struct Scsi_Host *host; + wait_queue_head_t int_cmd_wait_q; + wait_queue_head_t abort_cmd_wait_q; + struct pci_dev *pdev; + u32 unique_id; + u32 fw_support_ieee; + u32 threshold_reply_count; + atomic_t fw_outstanding; + atomic_t ldio_outstanding; + atomic_t fw_reset_no_pci_access; + atomic64_t total_io_count; + atomic64_t high_iops_outstanding; + struct megasas_instance_template *instancet; + struct tasklet_struct isr_tasklet; + struct work_struct work_init; + struct delayed_work fw_fault_work; + struct workqueue_struct *fw_fault_work_q; + char fault_handler_work_q_name[48]; + u8 flag; + u8 unload; + u8 flag_ieee; + u8 issuepend_done; + u8 disableOnlineCtrlReset; + u8 UnevenSpanSupport; + u8 supportmax256vd; + u8 pd_list_not_supported; + u16 fw_supported_vd_count; + u16 fw_supported_pd_count; + u16 drv_supported_vd_count; + u16 drv_supported_pd_count; + atomic_t adprecovery; + unsigned long last_time; + u32 mfiStatus; + u32 last_seq_num; + struct list_head internal_reset_pending_q; + void *ctrl_context; + unsigned int msix_vectors; + struct megasas_irq_context irq_context[128]; + u64 map_id; + u64 pd_seq_map_id; + struct megasas_cmd *map_update_cmd; + struct megasas_cmd *jbod_seq_cmd; + unsigned long bar; + long reset_flags; + struct mutex reset_mutex; + struct timer_list sriov_heartbeat_timer; + char skip_heartbeat_timer_del; + u8 requestorId; + char PlasmaFW111; + char clusterId[16]; + u8 peerIsPresent; + u8 passive; + u16 throttlequeuedepth; + u8 mask_interrupts; + u16 max_chain_frame_sz; + u8 is_imr; + u8 is_rdpq; + bool dev_handle; + bool fw_sync_cache_support; + u32 mfi_frame_size; + bool msix_combined; + u16 max_raid_mapsize; + u8 r1_ldio_hint_default; + u32 nvme_page_size; + u8 adapter_type; + bool consistent_mask_64bit; + bool support_nvme_passthru; + bool enable_sdev_max_qd; + u8 task_abort_tmo; + u8 max_reset_tmo; + u8 snapdump_wait_time; + struct dentry *debugfs_root; + struct dentry *raidmap_dump; + u8 enable_fw_dev_list; + bool atomic_desc_support; + bool support_seqnum_jbod_fp; + bool support_pci_lane_margining; + u8 low_latency_index_start; + int perf_mode; + int iopoll_q_count; }; -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 MR_DRV_SYSTEM_INFO { + u8 infoVersion; + u8 systemIdLength; + u16 reserved0; + u8 systemId[64]; + u8 reserved[1980]; }; -struct devlink_nl_dump_state { - unsigned long instance; - int idx; - union { - struct { - u64 start_offset; - }; - struct { - u64 dump_ts; - }; +union MR_LD_REF { + struct { + u8 targetId; + u8 reserved; + __le16 seqNum; }; + __le32 ref; }; -struct devlink_sb { - struct list_head list; - unsigned int index; +struct MR_LD_VF_MAP { 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 nla_bitfield32 { - __u32 value; - __u32 selector; -}; - -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 xa_limit { - u32 max; - u32 min; -}; - -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; + union MR_LD_REF ref; + u8 ldVfCount; + u8 reserved[6]; + u8 policy[1]; }; -struct trace_event_data_offsets_devlink_health_recover_aborted { - u32 bus_name; - u32 dev_name; - u32 driver_name; - u32 reporter_name; +struct MR_LD_VF_AFFILIATION { + u32 size; + u8 ldCount; + u8 vfCount; + u8 thisVf; + u8 reserved[9]; + struct MR_LD_VF_MAP map[1]; }; -struct trace_event_data_offsets_devlink_health_reporter_state_update { - u32 bus_name; - u32 dev_name; - u32 driver_name; - u32 reporter_name; +struct MR_LD_VF_MAP_111 { + u8 targetId; + u8 reserved[3]; + u8 policy[8]; }; -struct trace_event_data_offsets_devlink_trap_report { - u32 bus_name; - u32 dev_name; - u32 driver_name; - u32 trap_name; - u32 trap_group_name; +struct MR_LD_VF_AFFILIATION_111 { + u8 vdCount; + u8 vfCount; + u8 thisVf; + u8 reserved[5]; + struct MR_LD_VF_MAP_111 map[64]; }; -typedef int devlink_chunk_fill_t(void *, u8 *, u32, u64, struct netlink_ext_ack *); - -typedef struct { - u16 version; - u16 length; - u32 runtime_services_supported; -} efi_rt_properties_table_t; - -struct linux_efi_memreserve { - int size; - atomic_t count; - phys_addr_t next; +struct MR_CTRL_HB_HOST_MEM { struct { - phys_addr_t base; - phys_addr_t size; - } entry[0]; -}; - -struct linux_efi_initrd { - unsigned long base; - unsigned long size; -}; - -enum { - Root_NFS = 255, - Root_CIFS = 254, - Root_Generic = 253, - Root_RAM0 = 1048576, -}; - -enum gic_type { - GIC_V2 = 0, - GIC_V3 = 1, -}; - -enum vgic_type { - VGIC_V2 = 0, - VGIC_V3 = 1, -}; - -struct vgic_vmcr { - u32 grpen0; - u32 grpen1; - u32 ackctl; - u32 fiqen; - u32 cbpr; - u32 eoim; - u32 abpr; - u32 bpr; - u32 pmr; -}; - -struct gic_kvm_info { - enum gic_type type; - struct resource vcpu; - unsigned int maint_irq; - bool no_maint_irq_mask; - struct resource vctrl; - bool has_v4; - bool has_v4_1; - bool no_hw_deactivation; -}; - -struct sys_reg_params; - -struct sys_reg_desc { - const char *name; - enum { - AA32_DIRECT = 0, - AA32_LO = 1, - AA32_HI = 2, - } aarch32_map; - u8 Op0; - u8 Op1; - u8 CRn; - u8 CRm; - u8 Op2; - bool (*access)(struct kvm_vcpu *, struct sys_reg_params *, const struct sys_reg_desc *); - u64 (*reset)(struct kvm_vcpu *, const struct sys_reg_desc *); - int reg; - u64 val; - int (*__get_user)(struct kvm_vcpu *, const struct sys_reg_desc *, u64 *); - int (*set_user)(struct kvm_vcpu *, const struct sys_reg_desc *, u64); - unsigned int (*visibility)(const struct kvm_vcpu *, const struct sys_reg_desc *); -}; - -struct sys_reg_params { - u8 Op0; - u8 Op1; - u8 CRn; - u8 CRm; - u8 Op2; - u64 regval; - bool is_write; + u32 fwCounter; + struct { + u32 debugmode: 1; + u32 reserved: 31; + } debug; + u32 reserved_fw[6]; + u32 driverCounter; + u32 reserved_driver[7]; + } HB; + u8 pad[960]; }; -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; +union MR_PD_REF { + struct { + u16 deviceId; + u16 seqNum; + } mrPdRef; + u32 ref; }; -struct wq_flusher { - struct list_head list; - int flush_color; - struct completion done; +union MR_PD_DDF_TYPE { + struct { + union { + struct { + u16 forcedPDGUID: 1; + u16 inVD: 1; + u16 isGlobalSpare: 1; + u16 isSpare: 1; + u16 isForeign: 1; + u16 reserved: 7; + u16 intf: 4; + } pdType; + u16 type; + }; + u16 reserved; + } ddf; + struct { + u32 reserved; + } nonDisk; + u32 type; }; -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; - u64 stats[7]; - struct work_struct unbound_release_work; - struct callback_head rcu; +union MR_PROGRESS { + struct { + u16 progress; + union { + u16 elapsedSecs; + u16 elapsedSecsForLastPercent; + }; + } mrProgress; + u32 w; }; -struct worker_pool { - raw_spinlock_t lock; - int cpu; - int node; - int id; - unsigned int flags; - unsigned long watchdog_ts; - bool cpu_stall; - int nr_running; - struct list_head worklist; - int nr_workers; - int nr_idle; - struct list_head idle_list; - struct timer_list idle_timer; - struct work_struct idle_cull_work; - struct timer_list mayday_timer; - struct hlist_head busy_hash[64]; - struct worker *manager; - struct list_head workers; - struct list_head dying_workers; - struct completion *detach_completion; - struct ida worker_ida; - struct workqueue_attrs *attrs; - struct hlist_node hash_node; - int refcnt; - struct callback_head rcu; +struct MR_PD_PROGRESS { + struct { + u32 rbld: 1; + u32 patrol: 1; + u32 clear: 1; + u32 copyBack: 1; + u32 erase: 1; + u32 locate: 1; + u32 reserved: 26; + } active; + union MR_PROGRESS rbld; + union MR_PROGRESS patrol; + union { + union MR_PROGRESS clear; + union MR_PROGRESS erase; + }; + struct { + u32 rbld: 1; + u32 patrol: 1; + u32 clear: 1; + u32 copyBack: 1; + u32 erase: 1; + u32 reserved: 27; + } pause; + union MR_PROGRESS reserved[3]; }; -struct workqueue_attrs { - int nice; - cpumask_var_t cpumask; - bool no_numa; -}; +struct MR_PD_INFO { + union MR_PD_REF ref; + u8 inquiryData[96]; + u8 vpdPage83[64]; + u8 notSupported; + u8 scsiDevType; + union { + u8 connectedPortBitmap; + u8 connectedPortNumbers; + }; + u8 deviceSpeed; + u32 mediaErrCount; + u32 otherErrCount; + u32 predFailCount; + u32 lastPredFailEventSeqNum; + u16 fwState; + u8 disabledForRemoval; + u8 linkSpeed; + union MR_PD_DDF_TYPE state; + struct { + u8 count; + u8 isPathBroken: 4; + u8 reserved3: 3; + u8 widePortCapable: 1; + u8 connectorIndex[2]; + u8 reserved[4]; + u64 sasAddr[2]; + u8 reserved2[16]; + } pathInfo; + u64 rawSize; + u64 nonCoercedSize; + u64 coercedSize; + u16 enclDeviceId; + u8 enclIndex; + union { + u8 slotNumber; + u8 enclConnectorIndex; + }; + struct MR_PD_PROGRESS progInfo; + u8 badBlockTableFull; + u8 unusableInCurrentConfig; + u8 vpdPage83Ext[64]; + u8 powerState; + u8 enclPosition; + u32 allowedOps; + u16 copyBackPartnerId; + u16 enclPartnerDeviceId; + struct { + u16 fdeCapable: 1; + u16 fdeEnabled: 1; + u16 secured: 1; + u16 locked: 1; + u16 foreign: 1; + u16 needsEKM: 1; + u16 reserved: 10; + } security; + u8 mediaType; + u8 notCertified; + u8 bridgeVendor[8]; + u8 bridgeProductIdentification[16]; + u8 bridgeProductRevisionLevel[4]; + u8 satBridgeExists; + u8 interfaceType; + u8 temperature; + u8 emulatedBlockSize; + u16 userDataBlockSize; + u16 reserved2; + struct { + u32 piType: 3; + u32 piFormatted: 1; + u32 piEligible: 1; + u32 NCQ: 1; + u32 WCE: 1; + u32 commissionedSpare: 1; + u32 emergencySpare: 1; + u32 ineligibleForSSCD: 1; + u32 ineligibleForLd: 1; + u32 useSSEraseType: 1; + u32 wceUnchanged: 1; + u32 supportScsiUnmap: 1; + u32 reserved: 18; + } properties; + u64 shieldDiagCompletionTime; + u8 shieldCounter; + u8 linkSpeedOther; + u8 reserved4[2]; + struct { + u32 bbmErrCountSupported: 1; + u32 bbmErrCount: 31; + } bbmErr; + u8 reserved1[84]; +} __attribute__((packed)); -struct wq_device { - struct workqueue_struct *wq; - struct device dev; +struct MR_TARGET_PROPERTIES { + u32 max_io_size_kb; + u32 device_qdepth; + u32 sector_size; + u8 reset_tmo; + u8 reserved[499]; }; -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 = 75000, - MAYDAY_INITIAL_TIMEOUT = 2, - MAYDAY_INTERVAL = 25, - CREATE_COOLDOWN = 250, - RESCUER_NICE_LEVEL = -20, - HIGHPRI_NICE_LEVEL = -20, - WQ_NAME_LEN = 24, +struct MR_PD_ADDRESS { + __le16 deviceId; + u16 enclDeviceId; + union { + struct { + u8 enclIndex; + u8 slotNumber; + } mrPdAddress; + struct { + u8 enclPosition; + u8 enclConnectorIndex; + } mrEnclAddress; + }; + u8 scsiDevType; + union { + u8 connectedPortBitmap; + u8 connectedPortNumbers; + }; + u64 sasAddr[2]; }; -enum pool_workqueue_stats { - PWQ_STAT_STARTED = 0, - PWQ_STAT_COMPLETED = 1, - PWQ_STAT_CPU_TIME = 2, - PWQ_STAT_CPU_INTENSIVE = 3, - PWQ_STAT_CM_WAKEUP = 4, - PWQ_STAT_MAYDAY = 5, - PWQ_STAT_RESCUED = 6, - PWQ_NR_STATS = 7, +struct MR_PD_LIST { + __le32 size; + __le32 count; + struct MR_PD_ADDRESS addr[1]; }; -enum xa_lock_type { - XA_LOCK_IRQ = 1, - XA_LOCK_BH = 2, +struct megasas_ctrl_prop { + u16 seq_num; + u16 pred_fail_poll_interval; + u16 intr_throttle_count; + u16 intr_throttle_timeouts; + u8 rebuild_rate; + u8 patrol_read_rate; + u8 bgi_rate; + u8 cc_rate; + u8 recon_rate; + u8 cache_flush_interval; + u8 spinup_drv_count; + u8 spinup_delay; + u8 cluster_enable; + u8 coercion_mode; + u8 alarm_enable; + u8 disable_auto_rebuild; + u8 disable_battery_warn; + u8 ecc_bucket_size; + u16 ecc_bucket_leak_rate; + u8 restore_hotspare_on_insertion; + u8 expose_encl_devices; + u8 maintainPdFailHistory; + u8 disallowHostRequestReordering; + u8 abortCCOnError; + u8 loadBalanceMode; + u8 disableAutoDetectBackplane; + u8 snapVDSpace; + struct { + u32 copyBackDisabled: 1; + u32 SMARTerEnabled: 1; + u32 prCorrectUnconfiguredAreas: 1; + u32 useFdeOnly: 1; + u32 disableNCQ: 1; + u32 SSDSMARTerEnabled: 1; + u32 SSDPatrolReadEnabled: 1; + u32 enableSpinDownUnconfigured: 1; + u32 autoEnhancedImport: 1; + u32 enableSecretKeyControl: 1; + u32 disableOnlineCtrlReset: 1; + u32 allowBootWithPinnedCache: 1; + u32 disableSpinDownHS: 1; + u32 enableJBOD: 1; + u32 reserved: 18; + } OnOffProperties; + union { + u8 autoSnapVDSpace; + u8 viewSpace; + struct { + u16 reserved1: 4; + u16 enable_snap_dump: 1; + u16 reserved2: 1; + u16 enable_fw_dev_list: 1; + u16 reserved3: 9; + } on_off_properties2; + }; + __le16 spinDownTime; + u8 reserved[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 megasas_ctrl_info { + struct { + __le16 vendor_id; + __le16 device_id; + __le16 sub_vendor_id; + __le16 sub_device_id; + u8 reserved[24]; + } pci; + struct { + u8 PCIX: 1; + u8 PCIE: 1; + u8 iSCSI: 1; + u8 SAS_3G: 1; + u8 SRIOV: 1; + u8 reserved_0: 3; + u8 reserved_1[6]; + u8 port_count; + u64 port_addr[8]; + } host_interface; + struct { + u8 SPI: 1; + u8 SAS_3G: 1; + u8 SATA_1_5G: 1; + u8 SATA_3G: 1; + u8 reserved_0: 4; + u8 reserved_1[6]; + u8 port_count; + u64 port_addr[8]; + } device_interface; + __le32 image_check_word; + __le32 image_component_count; + struct { + char name[8]; + char version[32]; + char build_date[16]; + char built_time[16]; + } image_component[8]; + __le32 pending_image_component_count; + struct { + char name[8]; + char version[32]; + char build_date[16]; + char build_time[16]; + } pending_image_component[8]; + u8 max_arms; + u8 max_spans; + u8 max_arrays; + u8 max_lds; + char product_name[80]; + char serial_no[32]; + struct { + u32 bbu: 1; + u32 alarm: 1; + u32 nvram: 1; + u32 uart: 1; + u32 reserved: 28; + } hw_present; + __le32 current_fw_time; + __le16 max_concurrent_cmds; + __le16 max_sge_count; + __le32 max_request_size; + __le16 ld_present_count; + __le16 ld_degraded_count; + __le16 ld_offline_count; + __le16 pd_present_count; + __le16 pd_disk_present_count; + __le16 pd_disk_pred_failure_count; + __le16 pd_disk_failed_count; + __le16 nvram_size; + __le16 memory_size; + __le16 flash_size; + __le16 mem_correctable_error_count; + __le16 mem_uncorrectable_error_count; + u8 cluster_permitted; + u8 cluster_active; + __le16 max_strips_per_io; + struct { + u32 raid_level_0: 1; + u32 raid_level_1: 1; + u32 raid_level_5: 1; + u32 raid_level_1E: 1; + u32 raid_level_6: 1; + u32 reserved: 27; + } raid_levels; + struct { + u32 rbld_rate: 1; + u32 cc_rate: 1; + u32 bgi_rate: 1; + u32 recon_rate: 1; + u32 patrol_rate: 1; + u32 alarm_control: 1; + u32 cluster_supported: 1; + u32 bbu: 1; + u32 spanning_allowed: 1; + u32 dedicated_hotspares: 1; + u32 revertible_hotspares: 1; + u32 foreign_config_import: 1; + u32 self_diagnostic: 1; + u32 mixed_redundancy_arr: 1; + u32 global_hot_spares: 1; + u32 reserved: 17; + } adapter_operations; + struct { + u32 read_policy: 1; + u32 write_policy: 1; + u32 io_policy: 1; + u32 access_policy: 1; + u32 disk_cache_policy: 1; + u32 reserved: 27; + } ld_operations; + struct { + u8 min; + u8 max; + u8 reserved[2]; + } stripe_sz_ops; + struct { + u32 force_online: 1; + u32 force_offline: 1; + u32 force_rebuild: 1; + u32 reserved: 29; + } pd_operations; + struct { + u32 ctrl_supports_sas: 1; + u32 ctrl_supports_sata: 1; + u32 allow_mix_in_encl: 1; + u32 allow_mix_in_ld: 1; + u32 allow_sata_in_cluster: 1; + u32 reserved: 27; + } pd_mix_support; + u8 ecc_bucket_count; + u8 reserved_2[11]; + struct megasas_ctrl_prop properties; + char package_version[96]; + __le64 deviceInterfacePortAddr2[8]; + u8 reserved3[128]; + struct { + u16 minPdRaidLevel_0: 4; + u16 maxPdRaidLevel_0: 12; + u16 minPdRaidLevel_1: 4; + u16 maxPdRaidLevel_1: 12; + u16 minPdRaidLevel_5: 4; + u16 maxPdRaidLevel_5: 12; + u16 minPdRaidLevel_1E: 4; + u16 maxPdRaidLevel_1E: 12; + u16 minPdRaidLevel_6: 4; + u16 maxPdRaidLevel_6: 12; + u16 minPdRaidLevel_10: 4; + u16 maxPdRaidLevel_10: 12; + u16 minPdRaidLevel_50: 4; + u16 maxPdRaidLevel_50: 12; + u16 minPdRaidLevel_60: 4; + u16 maxPdRaidLevel_60: 12; + u16 minPdRaidLevel_1E_RLQ0: 4; + u16 maxPdRaidLevel_1E_RLQ0: 12; + u16 minPdRaidLevel_1E0_RLQ0: 4; + u16 maxPdRaidLevel_1E0_RLQ0: 12; + u16 reserved[6]; + } pdsForRaidLevels; + __le16 maxPds; + __le16 maxDedHSPs; + __le16 maxGlobalHSP; + __le16 ddfSize; + u8 maxLdsPerArray; + u8 partitionsInDDF; + u8 lockKeyBinding; + u8 maxPITsPerLd; + u8 maxViewsPerLd; + u8 maxTargetId; + __le16 maxBvlVdSize; + __le16 maxConfigurableSSCSize; + __le16 currentSSCsize; + char expanderFwVersion[12]; + __le16 PFKTrialTimeRemaining; + __le16 cacheMemorySize; + struct { + u32 supportPIcontroller: 1; + u32 supportLdPIType1: 1; + u32 supportLdPIType2: 1; + u32 supportLdPIType3: 1; + u32 supportLdBBMInfo: 1; + u32 supportShieldState: 1; + u32 blockSSDWriteCacheChange: 1; + u32 supportSuspendResumeBGops: 1; + u32 supportEmergencySpares: 1; + u32 supportSetLinkSpeed: 1; + u32 supportBootTimePFKChange: 1; + u32 supportJBOD: 1; + u32 disableOnlinePFKChange: 1; + u32 supportPerfTuning: 1; + u32 supportSSDPatrolRead: 1; + u32 realTimeScheduler: 1; + u32 supportResetNow: 1; + u32 supportEmulatedDrives: 1; + u32 headlessMode: 1; + u32 dedicatedHotSparesLimited: 1; + u32 supportUnevenSpans: 1; + u32 supportPointInTimeProgress: 1; + u32 supportDataLDonSSCArray: 1; + u32 mpio: 1; + u32 supportConfigAutoBalance: 1; + u32 activePassive: 2; + u32 reserved: 5; + } adapterOperations2; + u8 driverVersion[32]; + u8 maxDAPdCountSpinup60; + u8 temperatureROC; + u8 temperatureCtrl; + u8 reserved4; + __le16 maxConfigurablePds; + u8 reserved5[2]; + struct { + u32 peerIsPresent: 1; + u32 peerIsIncompatible: 1; + u32 hwIncompatible: 1; + u32 fwVersionMismatch: 1; + u32 ctrlPropIncompatible: 1; + u32 premiumFeatureMismatch: 1; + u32 passive: 1; + u32 reserved: 25; + } cluster; + char clusterId[16]; + struct { + u8 maxVFsSupported; + u8 numVFsEnabled; + u8 requestorId; + u8 reserved; + } iov; + struct { + u32 supportPersonalityChange: 2; + u32 supportThermalPollInterval: 1; + u32 supportDisableImmediateIO: 1; + u32 supportT10RebuildAssist: 1; + u32 supportMaxExtLDs: 1; + u32 supportCrashDump: 1; + u32 supportSwZone: 1; + u32 supportDebugQueue: 1; + u32 supportNVCacheErase: 1; + u32 supportForceTo512e: 1; + u32 supportHOQRebuild: 1; + u32 supportAllowedOpsforDrvRemoval: 1; + u32 supportDrvActivityLEDSetting: 1; + u32 supportNVDRAM: 1; + u32 supportForceFlash: 1; + u32 supportDisableSESMonitoring: 1; + u32 supportCacheBypassModes: 1; + u32 supportSecurityonJBOD: 1; + u32 discardCacheDuringLDDelete: 1; + u32 supportTTYLogCompression: 1; + u32 supportCPLDUpdate: 1; + u32 supportDiskCacheSettingForSysPDs: 1; + u32 supportExtendedSSCSize: 1; + u32 useSeqNumJbodFP: 1; + u32 reserved: 7; + } adapterOperations3; + struct { + u8 cpld_in_flash: 1; + u8 reserved: 7; + u8 reserved1[3]; + u8 userCodeDefinition[12]; + } cpld; + struct { + u16 ctrl_info_ext_supported: 1; + u16 support_ibutton_less: 1; + u16 supported_enc_algo: 1; + u16 support_encrypted_mfc: 1; + u16 image_upload_supported: 1; + u16 support_ses_ctrl_in_multipathcfg: 1; + u16 support_pd_map_target_id: 1; + u16 fw_swaps_bbu_vpd_info: 1; + u16 support_ssc_rev3: 1; + u16 support_dual_fw_update: 1; + u16 support_host_info: 1; + u16 support_flash_comp_info: 1; + u16 support_pl_debug_info: 1; + u16 support_nvme_passthru: 1; + u16 reserved: 2; + } adapter_operations4; + u8 pad[2]; + u32 size; + u32 pad1; + u8 reserved6[64]; + struct { + u32 mr_config_ext2_supported: 1; + u32 support_profile_change: 2; + u32 support_cvhealth_info: 1; + u32 support_pcie: 1; + u32 support_ext_mfg_vpd: 1; + u32 support_oce_only: 1; + u32 support_nvme_tm: 1; + u32 support_snap_dump: 1; + u32 support_fde_type_mix: 1; + u32 support_force_personality_change: 1; + u32 support_psoc_update: 1; + u32 support_pci_lane_margining: 1; + u32 reserved: 19; + } adapter_operations5; + u32 rsvdForAdptOp[63]; + u8 reserved7[3]; + u8 TaskAbortTO; + u8 MaxResetTO; + u8 reserved8[3]; }; -struct trace_event_raw_workqueue_activate_work { - struct trace_entry ent; - void *work; - char __data[0]; +struct MR_LD_LIST { + __le32 ldCount; + __le32 reserved; + struct { + union MR_LD_REF ref; + u8 state; + u8 reserved[3]; + __le64 size; + } ldList[256]; }; -struct trace_event_raw_workqueue_execute_start { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; +struct MR_LD_TARGETID_LIST { + __le32 size; + __le32 count; + u8 pad[3]; + u8 targetId[256]; }; -struct trace_event_raw_workqueue_execute_end { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; +struct MR_HOST_DEVICE_LIST_ENTRY { + struct { + union { + struct { + u8 is_sys_pd: 1; + u8 reserved: 7; + } bits; + u8 byte; + } u; + } flags; + u8 scsi_type; + __le16 target_id; + u8 reserved[4]; + __le64 sas_addr[2]; }; -struct wq_barrier { - struct work_struct work; - struct completion done; - struct task_struct *task; +struct MR_HOST_DEVICE_LIST { + __le32 size; + __le32 count; + __le32 reserved[2]; + struct MR_HOST_DEVICE_LIST_ENTRY host_device_list[1]; }; -struct cwt_wait { - wait_queue_entry_t wait; - struct work_struct *work; +struct MR_SNAPDUMP_PROPERTIES { + u8 offload_num; + u8 max_num_supported; + u8 cur_num_supported; + u8 trigger_min_num_sec_before_ocr; + u8 reserved[12]; }; -struct work_for_cpu { - struct work_struct work; - long (*fn)(void *); - void *arg; - long ret; +struct megasas_register_set { + u32 doorbell; + u32 fusion_seq_offset; + u32 fusion_host_diag; + u32 reserved_01; + u32 inbound_msg_0; + u32 inbound_msg_1; + u32 outbound_msg_0; + u32 outbound_msg_1; + u32 inbound_doorbell; + u32 inbound_intr_status; + u32 inbound_intr_mask; + u32 outbound_doorbell; + u32 outbound_intr_status; + u32 outbound_intr_mask; + u32 reserved_1[2]; + u32 inbound_queue_port; + u32 outbound_queue_port; + u32 reserved_2[9]; + u32 reply_post_host_index; + u32 reserved_2_2[12]; + u32 outbound_doorbell_clear; + u32 reserved_3[3]; + u32 outbound_scratch_pad_0; + u32 outbound_scratch_pad_1; + u32 outbound_scratch_pad_2; + u32 outbound_scratch_pad_3; + u32 inbound_low_queue_port; + u32 inbound_high_queue_port; + u32 inbound_single_queue_port; + u32 res_6[11]; + u32 host_diag; + u32 seq_offset; + u32 index_registers[807]; }; -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 megasas_aen_event { + struct delayed_work hotplug_work; + struct megasas_instance *instance; }; -struct trace_event_data_offsets_workqueue_queue_work { - u32 workqueue; -}; +union megasas_frame; -struct pr_cont_work_struct { - bool comma; - work_func_t func; - long ctr; +struct megasas_cmd { + union megasas_frame *frame; + dma_addr_t frame_phys_addr; + u8 *sense; + dma_addr_t sense_phys_addr; + u32 index; + u8 sync_cmd; + u8 cmd_status_drv; + u8 abort_aen; + u8 retry_for_fw_reset; + struct list_head list; + struct scsi_cmnd *scmd; + u8 flags; + struct megasas_instance *instance; + union { + struct { + u16 smid; + u16 resvd; + } context; + u32 frame_count; + }; }; -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 megasas_header { + u8 cmd; + u8 sense_len; + u8 cmd_status; + u8 scsi_status; + u8 target_id; + u8 lun; + u8 cdb_len; + u8 sge_count; + __le32 context; + __le32 pad_0; + __le16 flags; + __le16 timeout; + __le32 data_xferlen; +}; -struct execute_work { - struct work_struct work; +union _MFI_CAPABILITIES { + struct { + u32 support_fp_remote_lun: 1; + u32 support_additional_msix: 1; + u32 support_fastpath_wb: 1; + u32 support_max_255lds: 1; + u32 support_ndrive_r1_lb: 1; + u32 support_core_affinity: 1; + u32 security_protocol_cmds_fw: 1; + u32 support_ext_queue_depth: 1; + u32 support_ext_io_size: 1; + u32 support_vfid_in_ioframe: 1; + u32 support_fp_rlbypass: 1; + u32 support_qd_throttling: 1; + u32 support_pd_map_target_id: 1; + u32 support_64bit_mode: 1; + u32 support_nvme_passthru: 1; + u32 support_fw_exposed_dev_list: 1; + u32 support_memdump: 1; + u32 reserved: 15; + } mfi_capabilities; + __le32 reg; }; -struct io_tlb_area { - unsigned long used; - unsigned int index; - spinlock_t lock; +typedef union _MFI_CAPABILITIES MFI_CAPABILITIES; + +struct megasas_init_frame { + u8 cmd; + u8 reserved_0; + u8 cmd_status; + u8 reserved_1; + MFI_CAPABILITIES driver_operations; + __le32 context; + __le32 pad_0; + __le16 flags; + __le16 replyqueue_mask; + __le32 data_xfer_len; + __le32 queue_info_new_phys_addr_lo; + __le32 queue_info_new_phys_addr_hi; + __le32 queue_info_old_phys_addr_lo; + __le32 queue_info_old_phys_addr_hi; + __le32 reserved_4[2]; + __le32 system_info_lo; + __le32 system_info_hi; + __le32 reserved_5[2]; }; -struct io_tlb_slot { - phys_addr_t orig_addr; - size_t alloc_size; - unsigned int list; +struct megasas_sge32 { + __le32 phys_addr; + __le32 length; }; -typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t); +struct megasas_sge64 { + __le64 phys_addr; + __le32 length; +} __attribute__((packed)); -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 megasas_sge_skinny { + __le64 phys_addr; + __le32 length; + __le32 flag; }; -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]; +union megasas_sgl { + struct { + struct {} __empty_sge32; + struct megasas_sge32 sge32[0]; + }; + struct { + struct {} __empty_sge64; + struct megasas_sge64 sge64[0]; + }; + struct { + struct {} __empty_sge_skinny; + struct megasas_sge_skinny sge_skinny[0]; + }; }; -struct trace_event_data_offsets_swiotlb_bounced { - u32 dev_name; +struct megasas_io_frame { + u8 cmd; + u8 sense_len; + u8 cmd_status; + u8 scsi_status; + u8 target_id; + u8 access_byte; + u8 reserved_0; + u8 sge_count; + __le32 context; + __le32 pad_0; + __le16 flags; + __le16 timeout; + __le32 lba_count; + __le32 sense_buf_phys_addr_lo; + __le32 sense_buf_phys_addr_hi; + __le32 start_lba_lo; + __le32 start_lba_hi; + union megasas_sgl sgl; }; -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 megasas_pthru_frame { + u8 cmd; + u8 sense_len; + u8 cmd_status; + u8 scsi_status; + u8 target_id; + u8 lun; + u8 cdb_len; + u8 sge_count; + __le32 context; + __le32 pad_0; + __le16 flags; + __le16 timeout; + __le32 data_xfer_len; + __le32 sense_buf_phys_addr_lo; + __le32 sense_buf_phys_addr_hi; + u8 cdb[16]; + union megasas_sgl sgl; }; -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; +struct megasas_dcmd_frame { + u8 cmd; + u8 reserved_0; + u8 cmd_status; + u8 reserved_1[4]; + u8 sge_count; + __le32 context; + __le32 pad_0; + __le16 flags; + __le16 timeout; + __le32 data_xfer_len; + __le32 opcode; + union { + u8 b[12]; + __le16 s[6]; + __le32 w[3]; + } mbox; + union megasas_sgl sgl; }; -typedef __u16 comp_t; - -struct acct_v3 { - char ac_flag; - char ac_version; - __u16 ac_tty; - __u32 ac_exitcode; - __u32 ac_uid; - __u32 ac_gid; - __u32 ac_pid; - __u32 ac_ppid; - __u32 ac_btime; - __u32 ac_etime; - comp_t ac_utime; - comp_t ac_stime; - comp_t ac_mem; - comp_t ac_io; - comp_t ac_rw; - comp_t ac_minflt; - comp_t ac_majflt; - comp_t ac_swaps; - char ac_comm[16]; +struct megasas_abort_frame { + u8 cmd; + u8 reserved_0; + u8 cmd_status; + u8 reserved_1; + __le32 reserved_2; + __le32 context; + __le32 pad_0; + __le16 flags; + __le16 reserved_3; + __le32 reserved_4; + __le32 abort_context; + __le32 pad_1; + __le32 abort_mfi_phys_addr_lo; + __le32 abort_mfi_phys_addr_hi; + __le32 reserved_5[6]; }; -typedef struct acct_v3 acct_t; - -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, +struct megasas_smp_frame { + u8 cmd; + u8 reserved_1; + u8 cmd_status; + u8 connection_status; + u8 reserved_2[3]; + u8 sge_count; + __le32 context; + __le32 pad_0; + __le16 flags; + __le16 timeout; + __le32 data_xfer_len; + __le64 sas_addr; + union { + struct megasas_sge32 sge32[2]; + struct megasas_sge64 sge64[2]; + } sgl; }; -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, +struct megasas_stp_frame { + u8 cmd; + u8 reserved_1; + u8 cmd_status; + u8 reserved_2; + u8 target_id; + u8 reserved_3[2]; + u8 sge_count; + __le32 context; + __le32 pad_0; + __le16 flags; + __le16 timeout; + __le32 data_xfer_len; + __le16 fis[10]; + __le32 stp_flags; + union { + struct megasas_sge32 sge32[2]; + struct megasas_sge64 sge64[2]; + } sgl; }; -enum { - FTRACE_HASH_FL_MOD = 1, +union megasas_frame { + struct megasas_header hdr; + struct megasas_init_frame init; + struct megasas_io_frame io; + struct megasas_pthru_frame pthru; + struct megasas_dcmd_frame dcmd; + struct megasas_abort_frame abort; + struct megasas_smp_frame smp; + struct megasas_stp_frame stp; + u8 raw_bytes[64]; }; -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, +struct megasas_evtarg_pd { + u16 device_id; + u8 encl_index; + u8 slot_number; }; -enum { - FLAGS_FILL_FULL = 268435456, - FLAGS_FILL_START = 536870912, - FLAGS_FILL_END = 805306368, +struct megasas_evtarg_ld { + u16 target_id; + u8 ld_index; + u8 reserved; }; -struct fgraph_cpu_data { - pid_t last_pid; - int depth; - int depth_irq; - int ignore; - unsigned long enter_funcs[50]; +struct megasas_progress { + __le16 progress; + __le16 elapsed_seconds; }; -struct ftrace_graph_ent_entry { - struct trace_entry ent; - struct ftrace_graph_ent graph_ent; +union megasas_evt_class_locale { + struct { + u16 locale; + u8 reserved; + s8 class; + } members; + u32 word; }; -struct ftrace_graph_ret_entry { - struct trace_entry ent; - struct ftrace_graph_ret ret; +struct megasas_evt_detail { + __le32 seq_num; + __le32 time_stamp; + __le32 code; + union megasas_evt_class_locale cl; + u8 arg_type; + u8 reserved1[15]; + union { + struct { + struct megasas_evtarg_pd pd; + u8 cdb_length; + u8 sense_length; + u8 reserved[2]; + u8 cdb[16]; + u8 sense[64]; + } cdbSense; + struct megasas_evtarg_ld ld; + struct { + struct megasas_evtarg_ld ld; + __le64 count; + } __attribute__((packed)) ld_count; + struct { + __le64 lba; + struct megasas_evtarg_ld ld; + } __attribute__((packed)) ld_lba; + struct { + struct megasas_evtarg_ld ld; + __le32 prevOwner; + __le32 newOwner; + } ld_owner; + struct { + u64 ld_lba; + u64 pd_lba; + struct megasas_evtarg_ld ld; + struct megasas_evtarg_pd pd; + } ld_lba_pd_lba; + struct { + struct megasas_evtarg_ld ld; + struct megasas_progress prog; + } ld_prog; + struct { + struct megasas_evtarg_ld ld; + u32 prev_state; + u32 new_state; + } ld_state; + struct { + u64 strip; + struct megasas_evtarg_ld ld; + } __attribute__((packed)) ld_strip; + struct megasas_evtarg_pd pd; + struct { + struct megasas_evtarg_pd pd; + u32 err; + } pd_err; + struct { + u64 lba; + struct megasas_evtarg_pd pd; + } __attribute__((packed)) pd_lba; + struct { + u64 lba; + struct megasas_evtarg_pd pd; + struct megasas_evtarg_ld ld; + } pd_lba_ld; + struct { + struct megasas_evtarg_pd pd; + struct megasas_progress prog; + } pd_prog; + struct { + struct megasas_evtarg_pd pd; + u32 prevState; + u32 newState; + } pd_state; + struct { + u16 vendorId; + __le16 deviceId; + u16 subVendorId; + u16 subDeviceId; + } pci; + u32 rate; + char str[96]; + struct { + u32 rtc; + u32 elapsedSeconds; + } time; + struct { + u32 ecar; + u32 elog; + char str[64]; + } ecc; + u8 b[96]; + __le16 s[48]; + __le32 w[24]; + __le64 d[12]; + } args; + char description[128]; }; -struct ftrace_func_entry { - struct hlist_node hlist; - unsigned long ip; - unsigned long direct; +struct megasas_instance_template { + void (*fire_cmd)(struct megasas_instance *, dma_addr_t, u32, struct megasas_register_set *); + void (*enable_intr)(struct megasas_instance *); + void (*disable_intr)(struct megasas_instance *); + int (*clear_intr)(struct megasas_instance *); + u32 (*read_fw_status_reg)(struct megasas_instance *); + int (*adp_reset)(struct megasas_instance *, struct megasas_register_set *); + int (*check_reset)(struct megasas_instance *, struct megasas_register_set *); + irqreturn_t (*service_isr)(int, void *); + void (*tasklet)(unsigned long); + u32 (*init_adapter)(struct megasas_instance *); + u32 (*build_and_issue_cmd)(struct megasas_instance *, struct scsi_cmnd *); + void (*issue_dcmd)(struct megasas_instance *, struct megasas_cmd *); }; -struct fgraph_data { - struct fgraph_cpu_data __attribute__((btf_type_tag("percpu"))) *cpu_data; - struct ftrace_graph_ent_entry ent; - struct ftrace_graph_ret_entry ret; - int failed; - int cpu; - long: 0; -} __attribute__((packed)); - -struct bpf_iter__bpf_link { +struct MR_DRV_RAID_MAP { + __le32 totalSize; union { - struct bpf_iter_meta *meta; + struct { + __le32 maxLd; + __le32 maxSpanDepth; + __le32 maxRowSize; + __le32 maxPdCount; + __le32 maxArrays; + } validationInfo; + __le32 version[5]; }; + u8 fpPdIoTimeoutSec; + u8 reserved2[7]; + __le16 ldCount; + __le16 arCount; + __le16 spanCount; + __le16 reserve3; + struct MR_DEV_HANDLE_INFO devHndlInfo[512]; + u16 ldTgtIdToLd[512]; + struct MR_ARRAY_INFO arMapInfo[512]; + struct MR_LD_SPAN_MAP ldSpanMap[0]; +}; + +struct MR_DRV_RAID_MAP_ALL { + struct MR_DRV_RAID_MAP raidMap; + struct MR_LD_SPAN_MAP ldSpanMap[512]; +}; + +struct MR_FW_RAID_MAP_DYNAMIC { + u32 raid_map_size; + u32 desc_table_offset; + u32 desc_table_size; + u32 desc_table_num_elements; + u64 reserved1; + u32 reserved2[3]; + u8 fp_pd_io_timeout_sec; + u8 reserved3[3]; + u32 rmw_fp_seq_num; + u16 ld_count; + u16 ar_count; + u16 span_count; + u16 reserved4[3]; union { - struct bpf_link *link; + struct { + struct MR_DEV_HANDLE_INFO *dev_hndl_info; + u16 *ld_tgt_id_to_ld; + struct MR_ARRAY_INFO *ar_map_info; + struct MR_LD_SPAN_MAP *ld_span_map; + }; + u64 ptr_structure_size[4]; }; + struct MR_RAID_MAP_DESC_TABLE raid_map_desc_table[4]; + u32 raid_map_desc_data[0]; }; -struct bpf_iter_seq_link_info { - u32 link_id; -}; +union MPI2_REPLY_DESCRIPTORS_UNION; -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 rdpq_alloc_detail { + struct dma_pool *dma_pool_ptr; + dma_addr_t pool_entry_phys; + union MPI2_REPLY_DESCRIPTORS_UNION *pool_entry_virt; }; -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 megasas_cmd_fusion; -struct btf_array { - __u32 type; - __u32 index_type; - __u32 nelems; -}; +struct MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY; -struct btf_enum { - __u32 name_off; - __s32 val; -}; +struct MR_PD_CFG_SEQ_NUM_SYNC; -struct btf_enum64 { - __u32 name_off; - __u32 val_lo32; - __u32 val_hi32; -}; +struct LD_LOAD_BALANCE_INFO; -struct btf_member { - __u32 name_off; - __u32 type; - __u32 offset; -}; +struct LOG_BLOCK_SPAN_INFO; -struct bpf_verifier_log { - u64 start_pos; - u64 end_pos; - char __attribute__((btf_type_tag("user"))) *ubuf; - u32 level; - u32 len_total; - u32 len_max; - char kbuf[1024]; -}; +typedef struct LOG_BLOCK_SPAN_INFO LD_SPAN_INFO; -struct bpf_core_accessor { - __u32 type_id; - __u32 idx; - const char *name; -}; +struct LD_STREAM_DETECT; -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 MPI2_IOC_INIT_REQUEST; + +struct fusion_context { + struct megasas_cmd_fusion **cmd_list; + dma_addr_t req_frames_desc_phys; + u8 *req_frames_desc; + struct dma_pool *io_request_frames_pool; + dma_addr_t io_request_frames_phys; + u8 *io_request_frames; + struct dma_pool *sg_dma_pool; + struct dma_pool *sense_dma_pool; + u8 *sense; + dma_addr_t sense_phys_addr; + atomic_t busy_mq_poll[128]; + dma_addr_t reply_frames_desc_phys[128]; + union MPI2_REPLY_DESCRIPTORS_UNION *reply_frames_desc[128]; + struct rdpq_alloc_detail rdpq_tracker[8]; + struct dma_pool *reply_frames_desc_pool; + struct dma_pool *reply_frames_desc_pool_align; + u16 last_reply_idx[128]; + u32 reply_q_depth; + u32 request_alloc_sz; + u32 reply_alloc_sz; + u32 io_frames_alloc_sz; + struct MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY *rdpq_virt; + dma_addr_t rdpq_phys; + u16 max_sge_in_main_msg; + u16 max_sge_in_chain; + u8 chain_offset_io_request; + u8 chain_offset_mfi_pthru; + struct MR_FW_RAID_MAP_DYNAMIC *ld_map[2]; + dma_addr_t ld_map_phys[2]; + struct MR_DRV_RAID_MAP_ALL *ld_drv_map[2]; + u32 max_map_sz; + u32 current_map_sz; + u32 old_map_sz; + u32 new_map_sz; + u32 drv_map_sz; + u32 drv_map_pages; + struct MR_PD_CFG_SEQ_NUM_SYNC *pd_seq_sync[2]; + dma_addr_t pd_seq_phys[2]; + u8 fast_path_io; + struct LD_LOAD_BALANCE_INFO *load_balance_info; + u32 load_balance_info_pages; + LD_SPAN_INFO *log_to_span; + u32 log_to_span_pages; + struct LD_STREAM_DETECT **stream_detect_by_ld; + dma_addr_t ioc_init_request_phys; + struct MPI2_IOC_INIT_REQUEST *ioc_init_request; + struct megasas_cmd *ioc_init_cmd; + bool pcie_bw_limitation; + bool r56_div_offload; }; -struct bpf_core_relo { - __u32 insn_off; - __u32 type_id; - __u32 access_str_off; - enum bpf_core_relo_kind kind; +struct MPI2_RAID_SCSI_IO_REQUEST; + +union MPI2_SGE_IO_UNION; + +union MEGASAS_REQUEST_DESCRIPTOR_UNION; + +struct megasas_cmd_fusion { + struct MPI2_RAID_SCSI_IO_REQUEST *io_request; + dma_addr_t io_request_phys_addr; + union MPI2_SGE_IO_UNION *sg_frame; + dma_addr_t sg_frame_phys_addr; + u8 *sense; + dma_addr_t sense_phys_addr; + struct list_head list; + struct scsi_cmnd *scmd; + struct megasas_instance *instance; + u8 retry_for_fw_reset; + union MEGASAS_REQUEST_DESCRIPTOR_UNION *request_desc; + u32 sync_cmd_idx; + u32 index; + u8 pd_r1_lb; + struct completion done; + u8 pd_interface; + u16 r1_alt_dev_handle; + bool cmd_completed; }; -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 MPI2_SGE_SIMPLE_UNION { + __le32 FlagsLength; + union { + __le32 Address32; + __le64 Address64; + } u; }; -struct bpf_core_cand; +struct MPI2_SGE_CHAIN_UNION { + __le16 Length; + u8 NextChainOffset; + u8 Flags; + union { + __le32 Address32; + __le64 Address64; + } u; +}; -struct bpf_core_cand_list { - struct bpf_core_cand *cands; - int len; +struct MPI2_IEEE_SGE_SIMPLE32 { + __le32 Address; + __le32 FlagsLength; }; -struct bpf_core_cand { - const struct btf *btf; - __u32 id; +struct MPI2_IEEE_SGE_SIMPLE64 { + __le64 Address; + __le32 Length; + __le16 Reserved1; + u8 Reserved2; + u8 Flags; }; -struct static_key_deferred { - struct static_key key; - unsigned long timeout; - struct delayed_work work; +union MPI2_IEEE_SGE_SIMPLE_UNION { + struct MPI2_IEEE_SGE_SIMPLE32 Simple32; + struct MPI2_IEEE_SGE_SIMPLE64 Simple64; }; -struct static_key_mod { - struct static_key_mod *next; - struct jump_entry *entries; - struct module *mod; +struct MPI2_IEEE_SGE_CHAIN32 { + __le32 Address; + __le32 FlagsLength; }; -enum wb_state { - WB_registered = 0, - WB_writeback_running = 1, - WB_has_dirty_io = 2, - WB_start_all = 3, +struct MPI2_IEEE_SGE_CHAIN64 { + __le64 Address; + __le32 Length; + __le16 Reserved1; + u8 Reserved2; + u8 Flags; }; -enum wb_stat_item { - WB_RECLAIMABLE = 0, - WB_WRITEBACK = 1, - WB_DIRTIED = 2, - WB_WRITTEN = 3, - NR_WB_STAT_ITEMS = 4, +union MPI2_IEEE_SGE_CHAIN_UNION { + struct MPI2_IEEE_SGE_CHAIN32 Chain32; + struct MPI2_IEEE_SGE_CHAIN64 Chain64; }; -enum { - RADIX_TREE_ITER_TAG_MASK = 15, - RADIX_TREE_ITER_TAGGED = 16, - RADIX_TREE_ITER_CONTIG = 32, +union MPI2_SGE_IO_UNION { + struct MPI2_SGE_SIMPLE_UNION MpiSimple; + struct MPI2_SGE_CHAIN_UNION MpiChain; + union MPI2_IEEE_SGE_SIMPLE_UNION IeeeSimple; + union MPI2_IEEE_SGE_CHAIN_UNION IeeeChain; }; -struct radix_tree_iter { - unsigned long index; - unsigned long next_index; - unsigned long tags; - struct xa_node *node; +struct MPI2_SCSI_IO_CDB_EEDP32 { + u8 CDB[20]; + __be32 PrimaryReferenceTag; + __be16 PrimaryApplicationTag; + __be16 PrimaryApplicationTagMask; + __le32 TransferLength; }; -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; +union MPI2_SCSI_IO_CDB_UNION { + u8 CDB32[32]; + struct MPI2_SCSI_IO_CDB_EEDP32 EEDP32; + struct MPI2_SGE_SIMPLE_UNION SGE; }; -typedef s32 compat_off_t; +struct RAID_CONTEXT { + u8 type: 4; + u8 nseg: 4; + u8 resvd0; + __le16 timeout_value; + u8 reg_lock_flags; + u8 resvd1; + __le16 virtual_disk_tgt_id; + __le64 reg_lock_row_lba; + __le32 reg_lock_length; + __le16 next_lmid; + u8 ex_status; + u8 status; + u8 raid_flags; + u8 num_sge; + __le16 config_seq_num; + u8 span_arm; + u8 priority; + u8 num_sge_ext; + u8 resvd2; +}; -typedef s64 compat_loff_t; +union RAID_CONTEXT_UNION { + struct RAID_CONTEXT raid_context; + struct RAID_CONTEXT_G35 raid_context_g35; +}; -struct eventfd_ctx { - struct kref kref; - wait_queue_head_t wqh; - __u64 count; - unsigned int flags; - int id; +struct MPI2_RAID_SCSI_IO_REQUEST { + __le16 DevHandle; + u8 ChainOffset; + u8 Function; + __le16 Reserved1; + u8 Reserved2; + u8 MsgFlags; + u8 VP_ID; + u8 VF_ID; + __le16 Reserved3; + __le32 SenseBufferLowAddress; + __le16 SGLFlags; + u8 SenseBufferLength; + u8 Reserved4; + u8 SGLOffset0; + u8 SGLOffset1; + u8 SGLOffset2; + u8 SGLOffset3; + __le32 SkipCount; + __le32 DataLength; + __le32 BidirectionalDataLength; + __le16 IoFlags; + __le16 EEDPFlags; + __le32 EEDPBlockSize; + __le32 SecondaryReferenceTag; + __le16 SecondaryApplicationTag; + __le16 ApplicationTagTranslationMask; + u8 LUN[8]; + __le32 Control; + union MPI2_SCSI_IO_CDB_UNION CDB; + union RAID_CONTEXT_UNION RaidContext; + union { + union MPI2_SGE_IO_UNION SGL; + struct { + struct {} __empty_SGLs; + union MPI2_SGE_IO_UNION SGLs[0]; + }; + }; }; -struct iomap_ops { - int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap *, struct iomap *); - int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap *); +struct MPI2_DEFAULT_REQUEST_DESCRIPTOR { + u8 RequestFlags; + u8 MSIxIndex; + __le16 SMID; + __le16 LMID; + __le16 DescriptorTypeDependent; }; -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 MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR { + u8 RequestFlags; + u8 MSIxIndex; + __le16 SMID; + __le16 LMID; + __le16 Reserved1; }; -enum { - ES_WRITTEN_B = 0, - ES_UNWRITTEN_B = 1, - ES_DELAYED_B = 2, - ES_HOLE_B = 3, - ES_REFERENCED_B = 4, - ES_FLAGS = 5, +struct MPI2_SCSI_IO_REQUEST_DESCRIPTOR { + u8 RequestFlags; + u8 MSIxIndex; + __le16 SMID; + __le16 LMID; + __le16 DevHandle; }; -enum { - EXT4_STATE_NEW = 0, - EXT4_STATE_XATTR = 1, - EXT4_STATE_NO_EXPAND = 2, - EXT4_STATE_DA_ALLOC_CLOSE = 3, - EXT4_STATE_EXT_MIGRATE = 4, - EXT4_STATE_NEWENTRY = 5, - EXT4_STATE_MAY_INLINE_DATA = 6, - EXT4_STATE_EXT_PRECACHED = 7, - EXT4_STATE_LUSTRE_EA_INODE = 8, - EXT4_STATE_VERITY_IN_PROGRESS = 9, - EXT4_STATE_FC_COMMITTING = 10, - EXT4_STATE_ORPHAN_FILE = 11, +struct MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR { + u8 RequestFlags; + u8 MSIxIndex; + __le16 SMID; + __le16 LMID; + __le16 IoIndex; }; -enum ext4_journal_trigger_type { - EXT4_JTR_ORPHAN_FILE = 0, - EXT4_JTR_NONE = 1, +struct MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR { + u8 RequestFlags; + u8 MSIxIndex; + __le16 SMID; + __le16 LMID; + __le16 Reserved; }; -enum { - EXT4_MF_MNTDIR_SAMPLED = 0, - EXT4_MF_FS_ABORTED = 1, - EXT4_MF_FC_INELIGIBLE = 2, +struct MEGASAS_RAID_MFA_IO_REQUEST_DESCRIPTOR { + u32 RequestFlags: 8; + u32 MessageAddress1: 24; + u32 MessageAddress2; }; -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 MEGASAS_REQUEST_DESCRIPTOR_UNION { + struct MPI2_DEFAULT_REQUEST_DESCRIPTOR Default; + struct MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR HighPriority; + struct MPI2_SCSI_IO_REQUEST_DESCRIPTOR SCSIIO; + struct MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR SCSITarget; + struct MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR RAIDAccelerator; + struct MEGASAS_RAID_MFA_IO_REQUEST_DESCRIPTOR MFAIo; 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; + __le32 low; + __le32 high; + } u; + __le64 Words; + }; }; -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 MPI2_DEFAULT_REPLY_DESCRIPTOR { + u8 ReplyFlags; + u8 MSIxIndex; + __le16 DescriptorTypeDependent1; + __le32 DescriptorTypeDependent2; }; -struct ext4_xattr_inode_array { - unsigned int count; - struct inode *inodes[0]; +struct MPI2_ADDRESS_REPLY_DESCRIPTOR { + u8 ReplyFlags; + u8 MSIxIndex; + __le16 SMID; + __le32 ReplyFrameAddress; }; -struct ext4_iloc { - struct buffer_head *bh; - unsigned long offset; - ext4_group_t block_group; +struct MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR { + u8 ReplyFlags; + u8 MSIxIndex; + __le16 SMID; + __le16 TaskTag; + __le16 Reserved1; }; -struct ext4_io_end; - -typedef struct ext4_io_end ext4_io_end_t; - -struct ext4_io_submit { - struct writeback_control *io_wbc; - struct bio *io_bio; - ext4_io_end_t *io_end; - sector_t io_next_block; +struct MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR { + u8 ReplyFlags; + u8 MSIxIndex; + __le16 SMID; + u8 SequenceNumber; + u8 Reserved1; + __le16 IoIndex; }; -struct mpage_da_data { - struct inode *inode; - struct writeback_control *wbc; - unsigned int can_map: 1; - unsigned long first_page; - unsigned long next_page; - unsigned long last_page; - struct ext4_map_blocks map; - struct ext4_io_submit io_submit; - unsigned int do_map: 1; - unsigned int scanned_until_end: 1; - unsigned int journalled_more_data: 1; +struct MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR { + u8 ReplyFlags; + u8 MSIxIndex; + u8 VP_ID; + u8 Flags; + __le16 InitiatorDevHandle; + __le16 IoIndex; }; -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; +struct MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR { + u8 ReplyFlags; + u8 MSIxIndex; + __le16 SMID; + __le32 Reserved; }; -struct ext4_io_end_vec { - struct list_head list; - loff_t offset; - ssize_t size; +union MPI2_REPLY_DESCRIPTORS_UNION { + struct MPI2_DEFAULT_REPLY_DESCRIPTOR Default; + struct MPI2_ADDRESS_REPLY_DESCRIPTOR AddressReply; + struct MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR SCSIIOSuccess; + struct MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR TargetAssistSuccess; + struct MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR TargetCommandBuffer; + struct MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR RAIDAcceleratorSuccess; + __le64 Words; }; -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 MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY { + u64 RDPQBaseAddress; + u32 Reserved1; + u32 Reserved2; }; -typedef enum { - EXT4_IGET_NORMAL = 0, - EXT4_IGET_SPECIAL = 1, - EXT4_IGET_HANDLE = 2, - EXT4_IGET_BAD = 4, - EXT4_IGET_EA_INODE = 8, -} ext4_iget_flags; +struct MR_PD_CFG_SEQ { + u16 seqNum; + u16 devHandle; + struct { + u8 tmCapable: 1; + u8 reserved: 7; + } capability; + u8 reserved; + u16 pd_target_id; +}; -struct nfs_netns_client { - struct kobject kobject; - struct kobject nfs_net_kobj; - struct net *net; - const char __attribute__((btf_type_tag("rcu"))) *identifier; +struct MR_PD_CFG_SEQ_NUM_SYNC { + __le32 size; + __le32 count; + struct MR_PD_CFG_SEQ seq[0]; }; -struct bl_dev_msg { - int32_t status; - uint32_t major; - uint32_t minor; +struct LD_LOAD_BALANCE_INFO { + u8 loadBalanceFlag; + u8 reserved1; + atomic_t scsi_pending_cmds[256]; + u64 last_accessed_block[256]; }; -struct cache_detail; +struct _LD_SPAN_SET { + u64 log_start_lba; + u64 log_end_lba; + u64 span_row_start; + u64 span_row_end; + u64 data_strip_start; + u64 data_strip_end; + u64 data_row_start; + u64 data_row_end; + u8 strip_offset[8]; + u32 span_row_data_width; + u32 diff; + u32 reserved[2]; +}; -struct rpc_pipe; +typedef struct _LD_SPAN_SET LD_SPAN_SET; -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[3]; - struct nfs_netns_client *nfs_client; - spinlock_t nfs_client_lock; - ktime_t boot_time; - struct proc_dir_entry *proc_nfsfs; +struct LOG_BLOCK_SPAN_INFO { + LD_SPAN_SET span_set[8]; }; -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 STREAM_DETECT { + u64 next_seq_lba; + struct megasas_cmd_fusion *first_cmd_fusion; + struct megasas_cmd_fusion *last_cmd_fusion; + u32 count_cmds_in_stream; + u16 num_sges_in_group; + u8 is_read; + u8 group_depth; + bool group_flush; + u8 reserved[7]; }; -struct rpc_pipe_ops; +struct LD_STREAM_DETECT { + bool write_back; + bool fp_write_enabled; + bool members_ssds; + bool fp_cache_bypass_capable; + u32 mru_bit_map; + struct STREAM_DETECT stream_track[8]; +}; -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 MPI2_IOC_INIT_REQUEST { + u8 WhoInit; + u8 Reserved1; + u8 ChainOffset; + u8 Function; + __le16 Reserved2; + u8 Reserved3; + u8 MsgFlags; + u8 VP_ID; + u8 VF_ID; + __le16 Reserved4; + __le16 MsgVersion; + __le16 HeaderVersion; + u32 Reserved5; + __le16 Reserved6; + u8 HostPageSize; + u8 HostMSIxVectors; + __le16 Reserved8; + __le16 SystemRequestFrameSize; + __le16 ReplyDescriptorPostQueueDepth; + __le16 ReplyFreeQueueDepth; + __le32 SenseBufferAddressHigh; + __le32 SystemReplyAddressHigh; + __le64 SystemRequestFrameBaseAddress; + __le64 ReplyDescriptorPostQueueAddress; + __le64 ReplyFreeQueueAddress; + __le64 TimeStamp; }; -struct rpc_pipe_msg; +typedef struct LOG_BLOCK_SPAN_INFO *PLD_SPAN_INFO; -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 IO_REQUEST_INFO { + u64 ldStartBlock; + u32 numBlocks; + u16 ldTgtId; + u8 isRead; + __le16 devHandle; + u8 pd_interface; + u64 pdBlock; + u8 fpOkForIo; + u8 IoforUnevenSpan; + u8 start_span; + u8 do_fp_rlbypass; + u64 start_row; + u8 span_arm; + u8 pd_after_lb; + u16 r1_alt_dev_handle; + bool ra_capable; + u8 data_arms; }; -struct rpc_pipe_msg { - struct list_head list; - void *data; - size_t len; - size_t copied; - int errno; +struct onfi_ext_ecc_info { + u8 ecc_bits; + u8 codeword_size; + __le16 bb_per_lun; + __le16 block_endurance; + u8 reserved[2]; }; -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 onfi_ext_section { + u8 type; + u8 length; }; -struct nfs4_secinfo4 { - u32 flavor; - struct rpcsec_gss_info flavor_info; +struct onfi_ext_param_page { + __le16 crc; + u8 sig[4]; + u8 reserved0[10]; + struct onfi_ext_section sections[8]; }; -struct nfs4_secinfo_flavors { - unsigned int num_flavors; - struct nfs4_secinfo4 flavors[0]; +enum pmic_arb_channel { + PMIC_ARB_CHANNEL_RW = 0, + PMIC_ARB_CHANNEL_OBS = 1, }; -struct nfs_clone_mount { - struct super_block *sb; - struct dentry *dentry; - struct nfs_fattr *fattr; - unsigned int inherited_bsize; -}; +struct spmi_pmic_arb; -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; - struct xprtsec_parms xprtsec; - 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; -}; +struct spmi_controller; -enum lsm_order { - LSM_ORDER_FIRST = -1, - LSM_ORDER_MUTABLE = 0, - LSM_ORDER_LAST = 1, +struct pmic_arb_ver_ops { + const char *ver_str; + int (*ppid_to_apid)(struct spmi_pmic_arb *, u16); + int (*offset)(struct spmi_pmic_arb *, u8, u16, enum pmic_arb_channel); + u32 (*fmt_cmd)(u8, u8, u16, u8); + int (*non_data_cmd)(struct spmi_controller *, u8, u8); + void * (*owner_acc_status)(struct spmi_pmic_arb *, u8, u16); + void * (*acc_enable)(struct spmi_pmic_arb *, u16); + void * (*irq_status)(struct spmi_pmic_arb *, u16); + void * (*irq_clear)(struct spmi_pmic_arb *, u16); + u32 (*apid_map_offset)(u16); + void * (*apid_owner)(struct spmi_pmic_arb *, u16); }; -struct lsm_blob_sizes; +struct apid_data; -struct lsm_info { - const char *name; - enum lsm_order order; - unsigned long flags; - int *enabled; - int (*init)(); - struct lsm_blob_sizes *blobs; +struct spmi_pmic_arb { + void *rd_base; + void *wr_base; + void *intr; + void *cnfg; + void *core; + resource_size_t core_size; + raw_spinlock_t lock; + u8 channel; + int irq; + u8 ee; + u32 bus_instance; + u16 min_apid; + u16 max_apid; + u16 base_apid; + int apid_count; + u32 *mapping_table; + unsigned long mapping_table_valid[8]; + struct irq_domain *domain; + struct spmi_controller *spmic; + const struct pmic_arb_ver_ops *ver_ops; + u16 *ppid_to_apid; + u16 last_apid; + struct apid_data *apid_data; + int max_periphs; }; -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 spmi_controller { + struct device dev; + unsigned int nr; + int (*cmd)(struct spmi_controller *, u8, u8); + int (*read_cmd)(struct spmi_controller *, u8, u8, u16, u8 *, size_t); + int (*write_cmd)(struct spmi_controller *, u8, u8, u16, const u8 *, size_t); }; -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 apid_data { + u16 ppid; + u8 write_ee; + u8 irq_ee; }; -struct ima_digest_data; +enum pmic_arb_chnl_status { + PMIC_ARB_STATUS_DONE = 1, + PMIC_ARB_STATUS_FAILURE = 2, + PMIC_ARB_STATUS_DENIED = 4, + PMIC_ARB_STATUS_DROPPED = 8, +}; -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; +enum pmic_arb_cmd_op_code { + PMIC_ARB_OP_EXT_WRITEL = 0, + PMIC_ARB_OP_EXT_READL = 1, + PMIC_ARB_OP_EXT_WRITE = 2, + PMIC_ARB_OP_RESET = 3, + PMIC_ARB_OP_SLEEP = 4, + PMIC_ARB_OP_SHUTDOWN = 5, + PMIC_ARB_OP_WAKEUP = 6, + PMIC_ARB_OP_AUTHENTICATE = 7, + PMIC_ARB_OP_MSTR_READ = 8, + PMIC_ARB_OP_MSTR_WRITE = 9, + PMIC_ARB_OP_EXT_READ = 13, + PMIC_ARB_OP_WRITE = 14, + PMIC_ARB_OP_READ = 15, + PMIC_ARB_OP_ZERO_WRITE = 16, }; -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]; +enum qpnpint_regs { + QPNPINT_REG_RT_STS = 16, + QPNPINT_REG_SET_TYPE = 17, + QPNPINT_REG_POLARITY_HIGH = 18, + QPNPINT_REG_POLARITY_LOW = 19, + QPNPINT_REG_LATCHED_CLR = 20, + QPNPINT_REG_EN_SET = 21, + QPNPINT_REG_EN_CLR = 22, + QPNPINT_REG_LATCHED_STS = 24, }; -typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t); +struct spmi_pmic_arb_qpnpint_type { + u8 type; + u8 polarity_high; + u8 polarity_low; +}; -struct asn1_decoder { - const unsigned char *machine; - size_t machlen; - const asn1_action_t *actions; +struct reg_val { + u16 reg; + u32 val; }; -struct akcipher_request; +struct vsc8531_edge_rate_table { + u32 vddmac; + u32 slowdown[8]; +}; -struct crypto_akcipher; +struct vsc85xx_hw_stat { + const char *string; + u8 reg; + u16 page; + u16 mask; +}; -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; +enum csr_target { + MACRO_CTRL = 7, }; -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]; +enum rgmii_clock_delay { + RGMII_CLK_DELAY_0_2_NS = 0, + RGMII_CLK_DELAY_0_8_NS = 1, + RGMII_CLK_DELAY_1_1_NS = 2, + RGMII_CLK_DELAY_1_7_NS = 3, + RGMII_CLK_DELAY_2_0_NS = 4, + RGMII_CLK_DELAY_2_3_NS = 5, + RGMII_CLK_DELAY_2_6_NS = 6, + RGMII_CLK_DELAY_3_4_NS = 7, }; -struct crypto_akcipher { - unsigned int reqsize; - struct crypto_tfm base; +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 rsa_mpi_key { - MPI n; - MPI e; - MPI d; - MPI p; - MPI q; - MPI dp; - MPI dq; - MPI qinv; -}; +struct vsc85xx_ptp; -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 vsc8531_private { + int rate_magic; + u16 supp_led_modes; + u32 leds_mode[4]; + u8 nleds; + const struct vsc85xx_hw_stat *hw_stats; + u64 *stats; + int nstats; + u8 addr; + unsigned int base_addr; + struct mii_timestamper mii_ts; + bool input_clk_init; + struct vsc85xx_ptp *ptp; + struct gpio_desc *load_save; + unsigned int ts_base_addr; + u8 ts_base_phy; + struct mutex ts_lock; + struct mutex phc_lock; }; -struct public_key_signature; +struct xgene_enet_pdata; -struct asymmetric_key_subtype { - struct module *owner; - const char *name; - unsigned short name_len; - void (*describe)(const struct key *, struct seq_file *); - void (*destroy)(void *, void *); - int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *); - int (*eds_op)(struct kernel_pkey_params *, const void *, void *); - int (*verify_signature)(const struct key *, const struct public_key_signature *); +struct xgene_mac_ops { + void (*init)(struct xgene_enet_pdata *); + void (*reset)(struct xgene_enet_pdata *); + void (*tx_enable)(struct xgene_enet_pdata *); + void (*rx_enable)(struct xgene_enet_pdata *); + void (*tx_disable)(struct xgene_enet_pdata *); + void (*rx_disable)(struct xgene_enet_pdata *); + void (*get_drop_cnt)(struct xgene_enet_pdata *, u32 *, u32 *); + void (*set_speed)(struct xgene_enet_pdata *); + void (*set_mac_addr)(struct xgene_enet_pdata *); + void (*set_framesize)(struct xgene_enet_pdata *, int); + void (*set_mss)(struct xgene_enet_pdata *, u16, u8); + void (*link_state)(struct work_struct *); + void (*enable_tx_pause)(struct xgene_enet_pdata *, bool); + void (*flowctl_rx)(struct xgene_enet_pdata *, bool); + void (*flowctl_tx)(struct xgene_enet_pdata *, bool); }; -struct asymmetric_key_id; - -struct public_key_signature { - struct asymmetric_key_id *auth_ids[3]; - u8 *s; - u8 *digest; - u32 s_size; - u32 digest_size; - const char *pkey_algo; - const char *hash_algo; - const char *encoding; +enum xgene_enet_id { + XGENE_ENET1 = 1, + XGENE_ENET2 = 2, }; -struct asymmetric_key_id { - unsigned short len; - unsigned char data[0]; +enum xgene_enet_rm { + RM0 = 0, + RM1 = 1, + RM3 = 3, }; -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, -}; +struct xgene_cle_ptree_kn; -enum asymmetric_payload_bits { - asym_crypto = 0, - asym_subtype = 1, - asym_key_ids = 2, - asym_auth = 3, -}; +struct xgene_cle_dbptr; -struct crypto_sig { - struct crypto_tfm base; +struct xgene_cle_ptree { + struct xgene_cle_ptree_kn *kn; + struct xgene_cle_dbptr *dbptr; + u32 num_kn; + u32 num_dbptr; + u32 start_node; + u32 start_pkt; + u32 start_dbptr; }; -struct public_key { - void *key; - u32 keylen; - enum OID algo; - void *params; - u32 paramlen; - bool key_is_private; - const char *id_type; - const char *pkey_algo; - unsigned long key_eflags; +enum xgene_cle_parser { + PARSER0 = 0, + PARSER1 = 1, + PARSER2 = 2, + PARSER_ALL = 3, }; -enum blkg_rwstat_type { - BLKG_RWSTAT_READ = 0, - BLKG_RWSTAT_WRITE = 1, - BLKG_RWSTAT_SYNC = 2, - BLKG_RWSTAT_ASYNC = 3, - BLKG_RWSTAT_DISCARD = 4, - BLKG_RWSTAT_NR = 5, - BLKG_RWSTAT_TOTAL = 5, +struct xgene_enet_cle { + void *base; + struct xgene_cle_ptree ptree; + enum xgene_cle_parser active_parser; + u32 parsers; + u32 max_nodes; + u32 max_dbptrs; + u32 jump_bytes; }; -struct blkg_iostat { - u64 bytes[3]; - u64 ios[3]; +struct xgene_enet_desc_ring; + +struct xgene_port_ops; + +struct xgene_ring_ops; + +struct xgene_cle_ops; + +struct xgene_enet_pdata { + struct net_device *ndev; + struct mii_bus *mdio_bus; + int phy_speed; + struct clk *clk; + struct platform_device *pdev; + enum xgene_enet_id enet_id; + struct xgene_enet_desc_ring *tx_ring[8]; + struct xgene_enet_desc_ring *rx_ring[8]; + u16 tx_level[8]; + u16 txc_level[8]; + char *dev_name; + u32 rx_buff_cnt; + u32 tx_qcnt_hi; + u32 irqs[16]; + u8 rxq_cnt; + u8 txq_cnt; + u8 cq_cnt; + void *eth_csr_addr; + void *eth_ring_if_addr; + void *eth_diag_csr_addr; + void *mcx_mac_addr; + void *mcx_mac_csr_addr; + void *mcx_stats_addr; + void *base_addr; + void *pcs_addr; + void *ring_csr_addr; + void *ring_cmd_addr; + int phy_mode; + enum xgene_enet_rm rm; + struct xgene_enet_cle cle; + u64 *extd_stats; + u64 false_rflr; + u64 vlan_rjbr; + spinlock_t stats_lock; + const struct xgene_mac_ops *mac_ops; + spinlock_t mac_lock; + const struct xgene_port_ops *port_ops; + struct xgene_ring_ops *ring_ops; + const struct xgene_cle_ops *cle_ops; + struct delayed_work link_work; + u32 port_id; + u8 cpu_bufnum; + u8 eth_bufnum; + u8 bp_bufnum; + u16 ring_num; + u32 mss[4]; + u32 mss_refcnt[4]; + spinlock_t mss_lock; + u8 tx_delay; + u8 rx_delay; + bool mdio_driver; + struct gpio_desc *sfp_rdy; + bool sfp_gpio_en; + u32 pause_autoneg; + bool tx_pause; + bool rx_pause; }; -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; +enum xgene_enet_ring_cfgsize { + RING_CFGSIZE_512B = 0, + RING_CFGSIZE_2KB = 1, + RING_CFGSIZE_16KB = 2, + RING_CFGSIZE_64KB = 3, + RING_CFGSIZE_512KB = 4, + RING_CFGSIZE_INVALID = 5, }; -struct blkcg; +struct xgene_enet_raw_desc; -struct blkg_policy_data; +struct xgene_enet_raw_desc16; -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; +struct xgene_enet_desc_ring { + struct net_device *ndev; + u16 id; + u16 num; + u16 head; + u16 tail; + u16 exp_buf_tail; + u16 slots; + u16 irq; + char irq_name[16]; + u32 size; + u32 state[6]; + void *cmd_base; + void *cmd; + dma_addr_t dma; + dma_addr_t irq_mbox_dma; + void *irq_mbox_addr; + u16 dst_ring_num; + u16 nbufpool; + int npagepool; + u8 index; + u32 flags; + struct sk_buff **rx_skb; + struct sk_buff **cp_skb; + dma_addr_t *frag_dma_addr; + struct page **frag_page; + enum xgene_enet_ring_cfgsize cfgsize; + struct xgene_enet_desc_ring *cp_ring; + struct xgene_enet_desc_ring *buf_pool; + struct xgene_enet_desc_ring *page_pool; + struct napi_struct napi; union { - struct work_struct async_bio_work; - struct work_struct free_work; + void *desc_addr; + struct xgene_enet_raw_desc *raw_desc; + struct xgene_enet_raw_desc16 *raw_desc16; }; - atomic_t use_delay; - atomic64_t delay_nsec; - atomic64_t delay_start; - u64 last_delay; - int last_use; - struct callback_head callback_head; + __le64 *exp_bufs; + u64 tx_packets; + u64 tx_bytes; + u64 tx_dropped; + u64 tx_errors; + u64 rx_packets; + u64 rx_bytes; + u64 rx_dropped; + u64 rx_errors; + u64 rx_length_errors; + u64 rx_crc_errors; + u64 rx_frame_errors; + u64 rx_fifo_errors; }; -struct blkcg_policy_data; - -struct blkcg { - struct cgroup_subsys_state css; - spinlock_t lock; - refcount_t online_pin; - struct xarray blkg_tree; - struct blkcg_gq __attribute__((btf_type_tag("rcu"))) *blkg_hint; - struct hlist_head blkg_list; - struct blkcg_policy_data *cpd[6]; - struct list_head all_blkcgs_node; - struct llist_head __attribute__((btf_type_tag("percpu"))) *lhead; - struct list_head cgwb_list; +struct xgene_enet_raw_desc { + __le64 m0; + __le64 m1; + __le64 m2; + __le64 m3; }; -struct blkcg_policy_data { - struct blkcg *blkcg; - int plid; +struct xgene_enet_raw_desc16 { + __le64 m0; + __le64 m1; }; -struct blkg_policy_data { - struct blkcg_gq *blkg; - int plid; - bool online; +struct xgene_cle_ptree_key { + u8 priority; + u16 result_pointer; }; -struct blkg_rwstat { - struct percpu_counter cpu_cnt[5]; - atomic64_t aux_cnt[5]; +struct xgene_cle_ptree_kn { + u8 node_type; + u8 num_keys; + struct xgene_cle_ptree_key key[32]; }; -struct blkg_rwstat_sample { - u64 cnt[5]; +struct xgene_cle_dbptr { + u8 split_boundary; + u8 mirror_nxtfpsel; + u8 mirror_fpsel; + u16 mirror_dstqid; + u8 drop; + u8 mirror; + u8 hdr_data_split; + u64 hopinfomsbs; + u8 DR; + u8 HR; + u64 hopinfomlsbs; + u16 h0enq_num; + u8 h0fpsel; + u8 nxtfpsel; + u8 fpsel; + u16 dstqid; + u8 cle_priority; + u8 cle_flowgroup; + u8 cle_perflow; + u8 cle_insert_timestamp; + u8 stash; + u8 in; + u8 perprioen; + u8 perflowgroupen; + u8 perflowen; + u8 selhash; + u8 selhdrext; + u8 mirror_nxtfpsel_msb; + u8 mirror_fpsel_msb; + u8 hfpsel_msb; + u8 nxtfpsel_msb; + u8 fpsel_msb; }; -typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t); - -typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *); - -typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(struct gendisk *, struct blkcg *, gfp_t); - -typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *); +struct xgene_port_ops { + int (*reset)(struct xgene_enet_pdata *); + void (*clear)(struct xgene_enet_pdata *, struct xgene_enet_desc_ring *); + void (*cle_bypass)(struct xgene_enet_pdata *, u32, u16, u16); + void (*shutdown)(struct xgene_enet_pdata *); +}; -typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *); +struct xgene_ring_ops { + u8 num_ring_config; + u8 num_ring_id_shift; + struct xgene_enet_desc_ring * (*setup)(struct xgene_enet_desc_ring *); + void (*clear)(struct xgene_enet_desc_ring *); + void (*wr_cmd)(struct xgene_enet_desc_ring *, int); + u32 (*len)(struct xgene_enet_desc_ring *); + void (*coalesce)(struct xgene_enet_desc_ring *); +}; -typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *); +struct xgene_cle_ops { + int (*cle_init)(struct xgene_enet_pdata *); +}; -typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *); +enum xgene_enet_err_code { + HBF_READ_DATA = 3, + HBF_LL_READ = 4, + BAD_WORK_MSG = 6, + BUFPOOL_TIMEOUT = 15, + INGRESS_CRC = 16, + INGRESS_CHECKSUM = 17, + INGRESS_TRUNC_FRAME = 18, + INGRESS_PKT_LEN = 19, + INGRESS_PKT_UNDER = 20, + INGRESS_FIFO_OVERRUN = 21, + INGRESS_CHECKSUM_COMPUTE = 26, + ERR_CODE_INVALID = 27, +}; -typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *); +enum xgene_enet_cmd { + XGENE_ENET_WR_CMD = 2147483648, + XGENE_ENET_RD_CMD = 1073741824, +}; -typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *); +enum xgene_enet_ring_bufnum { + RING_BUFNUM_REGULAR = 0, + RING_BUFNUM_BUFPOOL = 32, + RING_BUFNUM_INVALID = 33, +}; -struct blkcg_policy { - int plid; - struct cftype *dfl_cftypes; - struct cftype *legacy_cftypes; - blkcg_pol_alloc_cpd_fn *cpd_alloc_fn; - blkcg_pol_free_cpd_fn *cpd_free_fn; - blkcg_pol_alloc_pd_fn *pd_alloc_fn; - blkcg_pol_init_pd_fn *pd_init_fn; - blkcg_pol_online_pd_fn *pd_online_fn; - blkcg_pol_offline_pd_fn *pd_offline_fn; - blkcg_pol_free_pd_fn *pd_free_fn; - blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn; - blkcg_pol_stat_pd_fn *pd_stat_fn; +enum xgene_ring_owner { + RING_OWNER_ETH0 = 0, + RING_OWNER_ETH1 = 1, + RING_OWNER_CPU = 15, + RING_OWNER_INVALID = 16, }; -typedef void io_wq_work_fn(struct io_wq_work *); +enum xgene_enet_ring_type { + RING_DISABLED = 0, + RING_REGULAR = 1, + RING_BUFPOOL = 2, +}; -typedef struct io_wq_work *free_work_fn(struct io_wq_work *); +struct xgene_mdio_pdata { + struct clk *clk; + struct device *dev; + void *mac_csr_addr; + void *diag_csr_addr; + void *mdio_csr_addr; + struct mii_bus *mdio_bus; + int mdio_id; + spinlock_t mac_lock; +}; -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 fman_mac_exceptions { + FM_MAC_EX_10G_MDIO_SCAN_EVENT = 0, + FM_MAC_EX_10G_MDIO_CMD_CMPL = 1, + FM_MAC_EX_10G_REM_FAULT = 2, + FM_MAC_EX_10G_LOC_FAULT = 3, + FM_MAC_EX_10G_TX_ECC_ER = 4, + FM_MAC_EX_10G_TX_FIFO_UNFL = 5, + FM_MAC_EX_10G_TX_FIFO_OVFL = 6, + FM_MAC_EX_10G_TX_ER = 7, + FM_MAC_EX_10G_RX_FIFO_OVFL = 8, + FM_MAC_EX_10G_RX_ECC_ER = 9, + FM_MAC_EX_10G_RX_JAB_FRM = 10, + FM_MAC_EX_10G_RX_OVRSZ_FRM = 11, + FM_MAC_EX_10G_RX_RUNT_FRM = 12, + FM_MAC_EX_10G_RX_FRAG_FRM = 13, + FM_MAC_EX_10G_RX_LEN_ER = 14, + FM_MAC_EX_10G_RX_CRC_ER = 15, + FM_MAC_EX_10G_RX_ALIGN_ER = 16, + FM_MAC_EX_1G_BAB_RX = 17, + FM_MAC_EX_1G_RX_CTL = 18, + FM_MAC_EX_1G_GRATEFUL_TX_STP_COMPLET = 19, + FM_MAC_EX_1G_BAB_TX = 20, + FM_MAC_EX_1G_TX_CTL = 21, + FM_MAC_EX_1G_TX_ERR = 22, + FM_MAC_EX_1G_LATE_COL = 23, + FM_MAC_EX_1G_COL_RET_LMT = 24, + FM_MAC_EX_1G_TX_FIFO_UNDRN = 25, + FM_MAC_EX_1G_MAG_PCKT = 26, + FM_MAC_EX_1G_MII_MNG_RD_COMPLET = 27, + FM_MAC_EX_1G_MII_MNG_WR_COMPLET = 28, + FM_MAC_EX_1G_GRATEFUL_RX_STP_COMPLET = 29, + FM_MAC_EX_1G_DATA_ERR = 30, + FM_MAC_1G_RX_DATA_ERR = 31, + FM_MAC_EX_1G_1588_TS_RX_ERR = 32, + FM_MAC_EX_1G_RX_MIB_CNT_OVFL = 33, + FM_MAC_EX_TS_FIFO_ECC_ERR = 34, + FM_MAC_EX_MAGIC_PACKET_INDICATION = 26, }; -struct io_tctx_node { - struct list_head ctx_node; - struct task_struct *task; - struct io_ring_ctx *ctx; +enum fman_exceptions { + FMAN_EX_DMA_BUS_ERROR = 0, + FMAN_EX_DMA_READ_ECC = 1, + FMAN_EX_DMA_SYSTEM_WRITE_ECC = 2, + FMAN_EX_DMA_FM_WRITE_ECC = 3, + FMAN_EX_DMA_SINGLE_PORT_ECC = 4, + FMAN_EX_FPM_STALL_ON_TASKS = 5, + FMAN_EX_FPM_SINGLE_ECC = 6, + FMAN_EX_FPM_DOUBLE_ECC = 7, + FMAN_EX_QMI_SINGLE_ECC = 8, + FMAN_EX_QMI_DOUBLE_ECC = 9, + FMAN_EX_QMI_DEQ_FROM_UNKNOWN_PORTID = 10, + FMAN_EX_BMI_LIST_RAM_ECC = 11, + FMAN_EX_BMI_STORAGE_PROFILE_ECC = 12, + FMAN_EX_BMI_STATISTICS_RAM_ECC = 13, + FMAN_EX_BMI_DISPATCH_RAM_ECC = 14, + FMAN_EX_IRAM_ECC = 15, + FMAN_EX_MURAM_ECC = 16, }; -struct io_uring_rsrc_update { - __u32 offset; - __u32 resv; - __u64 data; +struct mac_address { + u8 addr[6]; + struct list_head list; }; -typedef uint8_t U8; +typedef u8 enet_addr_t[6]; -typedef struct { - U16 nextState; - BYTE nbAdditionalBits; - BYTE nbBits; - U32 baseValue; -} ZSTD_seqSymbol; +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; +}; -typedef enum { - bt_raw = 0, - bt_rle = 1, - bt_compressed = 2, - bt_reserved = 3, -} blockType_e; +struct fman_port; -typedef enum { - set_basic = 0, - set_rle = 1, - set_compressed = 2, - set_repeat = 3, -} symbolEncodingType_e; +struct phylink_mac_ops; -typedef enum { - ZSTD_lo_isRegularOffset = 0, - ZSTD_lo_isLongOffset = 1, -} ZSTD_longOffset_e; +struct fman_mac; -typedef int16_t S16; +struct mac_priv_s; -typedef struct { - U32 fastMode; - U32 tableLog; -} ZSTD_seqSymbol_header; +struct mac_device { + void *vaddr; + struct device *dev; + struct resource *res; + u8 addr[6]; + struct fman_port *port[2]; + struct phylink *phylink; + struct phylink_config phylink_config; + phy_interface_t phy_if; + bool promisc; + bool allmulti; + const struct phylink_mac_ops *phylink_ops; + int (*enable)(struct fman_mac *); + void (*disable)(struct fman_mac *); + int (*set_promisc)(struct fman_mac *, bool); + int (*change_addr)(struct fman_mac *, const enet_addr_t *); + int (*set_allmulti)(struct fman_mac *, bool); + int (*set_tstamp)(struct fman_mac *, bool); + int (*set_multi)(struct net_device *, struct mac_device *); + int (*set_exception)(struct fman_mac *, enum fman_mac_exceptions, bool); + int (*add_hash_mac_addr)(struct fman_mac *, enet_addr_t *); + int (*remove_hash_mac_addr)(struct fman_mac *, enet_addr_t *); + void (*update_speed)(struct mac_device *, int); + struct fman_mac *fman_mac; + struct mac_priv_s *priv; +}; -typedef __kernel_long_t __kernel_ptrdiff_t; +struct phylink_mac_ops { + unsigned long (*mac_get_caps)(struct phylink_config *, phy_interface_t); + struct phylink_pcs * (*mac_select_pcs)(struct phylink_config *, phy_interface_t); + int (*mac_prepare)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_config)(struct phylink_config *, unsigned int, const struct phylink_link_state *); + int (*mac_finish)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_link_down)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_link_up)(struct phylink_config *, struct phy_device *, unsigned int, phy_interface_t, int, int, bool, bool); +}; -typedef __kernel_ptrdiff_t ptrdiff_t; +struct fman; -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; +struct mac_priv_s { + u8 cell_index; + struct fman *fman; + struct list_head mc_addr_list; + struct platform_device *eth_dev; + u16 speed; +}; -typedef enum { - ZSTD_frame = 0, - ZSTD_skippableFrame = 1, -} ZSTD_frameType_e; +struct fman_intr_src { + void (*isr_cb)(void *); + void *src_handle; +}; -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 irqreturn_t fman_exceptions_cb(struct fman *, enum fman_exceptions); -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 irqreturn_t fman_bus_error_cb(struct fman *, u8, u64, u8, u16); -struct xxh64_state { - uint64_t total_len; - uint64_t v1; - uint64_t v2; - uint64_t v3; - uint64_t v4; - uint64_t mem64[4]; - uint32_t memsize; +struct fman_dts_params { + void *base_addr; + struct resource *res; + u8 id; + int err_irq; + u16 clk_freq; + u32 qman_channel_base; + u32 num_of_qman_channels; + struct resource muram_res; }; -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); +struct fman_fpm_regs; -typedef void (*ZSTD_freeFunction)(void *, void *); +struct fman_bmi_regs; -typedef struct { - ZSTD_allocFunction customAlloc; - ZSTD_freeFunction customFree; - void *opaque; -} ZSTD_customMem; +struct fman_qmi_regs; -typedef enum { - ZSTD_use_indefinitely = -1, - ZSTD_dont_use = 0, - ZSTD_use_once = 1, -} ZSTD_dictUses_e; +struct fman_dma_regs; -struct ZSTD_DDict_s; +struct fman_hwp_regs; -typedef struct ZSTD_DDict_s ZSTD_DDict; +struct fman_kg_regs; -typedef struct { - const ZSTD_DDict **ddictPtrTable; - size_t ddictPtrTableSize; - size_t ddictPtrCount; -} ZSTD_DDictHashSet; +struct fman_state_struct; -typedef enum { - ZSTD_rmd_refSingleDDict = 0, - ZSTD_rmd_refMultipleDDicts = 1, -} ZSTD_refMultipleDDicts_e; +struct fman_cfg; -typedef enum { - zdss_init = 0, - zdss_loadHeader = 1, - zdss_read = 2, - zdss_load = 3, - zdss_flush = 4, -} ZSTD_dStreamStage; +struct muram_info; -typedef enum { - ZSTD_bm_buffered = 0, - ZSTD_bm_stable = 1, -} ZSTD_bufferMode_e; +struct fman_keygen; -struct ZSTD_outBuffer_s { - void *dst; - size_t size; - size_t pos; +struct fman { + struct device *dev; + void *base_addr; + struct fman_intr_src intr_mng[24]; + struct fman_fpm_regs *fpm_regs; + struct fman_bmi_regs *bmi_regs; + struct fman_qmi_regs *qmi_regs; + struct fman_dma_regs *dma_regs; + struct fman_hwp_regs *hwp_regs; + struct fman_kg_regs *kg_regs; + fman_exceptions_cb *exception_cb; + fman_bus_error_cb *bus_error_cb; + spinlock_t spinlock; + struct fman_state_struct *state; + struct fman_cfg *cfg; + struct muram_info *muram; + struct fman_keygen *keygen; + unsigned long cam_offset; + size_t cam_size; + unsigned long fifo_offset; + size_t fifo_size; + u32 liodn_base[64]; + u32 liodn_offset[64]; + struct fman_dts_params dts_params; }; -typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; - -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; - 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; +struct dpaa_eth_data { + struct mac_device *mac_dev; + int mac_hw_id; + int fman_hw_id; }; -typedef struct ZSTD_DCtx_s ZSTD_DCtx; +typedef void fman_mac_exception_cb(struct mac_device *, enum fman_mac_exceptions); -struct ZSTD_DDict_s { - void *dictBuffer; - const void *dictContent; - size_t dictSize; - ZSTD_entropyDTables_t entropy; - U32 dictID; - U32 entropyPresent; - ZSTD_customMem cMem; +struct fman_mac_params { + u8 mac_id; + void *fm; + fman_mac_exception_cb *event_cb; + fman_mac_exception_cb *exception_cb; }; -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 gic_clk_data { - unsigned int num_clocks; - const char * const *clocks; +enum enetc_errata { + ENETC_ERR_VLAN_ISOL = 1, + ENETC_ERR_UCMCSWP = 2, }; -struct gic_chip_data; - -struct gic_chip_pm { - struct gic_chip_data *chip_data; - const struct gic_clk_data *clk_data; - struct clk_bulk_data *clks; +struct tgs_gcl_conf { + u8 atc; + u8 res[7]; + struct { + u8 res1[4]; + __le16 acl_len; + u8 res2[2]; + }; }; -struct mpm_gic_map; - -struct qcom_mpm_priv { - void *base; - raw_spinlock_t lock; - struct mbox_client mbox_client; - struct mbox_chan *mbox_chan; - struct mpm_gic_map *maps; - unsigned int map_cnt; - unsigned int reg_stride; - struct irq_domain *domain; - struct generic_pm_domain genpd; +struct streamid_conf { + __le32 stream_handle; + __le32 iports; + u8 id_type; + u8 oui[3]; + u8 res[3]; + u8 en; }; -struct mpm_gic_map { - int pin; - irq_hw_number_t hwirq; +struct sgcl_conf { + u8 aipv; + u8 res[2]; + u8 agtst; + u8 res1[4]; + union { + struct { + u8 res2[4]; + u8 acl_len; + u8 res3[3]; + }; + u8 cct[8]; + }; }; -struct phy_axg_mipi_pcie_analog_priv { - struct phy *phy; - struct regmap *regmap; - bool dsi_configured; - bool dsi_enabled; - bool powered; - struct phy_configure_opts_mipi_dphy config; +struct sfi_conf { + __le32 stream_handle; + u8 multi; + u8 res[2]; + u8 sthm; + __le16 fm_inst_table_index; + __le16 msdu; + __le16 sg_inst_table_index; + u8 res1[2]; + __le32 input_ports; + u8 res2[3]; + u8 en; }; -struct tegra_xusb_pad_soc; - -struct tegra_xusb_port_ops; +struct sgi_table { + u8 res[8]; + u8 oipv; + u8 res0[2]; + u8 ocgtst; + u8 res1[7]; + u8 gset; + u8 oacl_len; + u8 res2[2]; + u8 en; +}; -struct tegra_xusb_padctl_ops; +struct fmi_conf { + __le32 cir; + __le32 cbs; + __le32 eir; + __le32 ebs; + u8 conf; + u8 res1; + u8 ir_fpp; + u8 res2[4]; + u8 en; +}; -struct tegra_xusb_padctl_soc { - const struct tegra_xusb_pad_soc * const *pads; - unsigned int num_pads; - struct { - struct { - const struct tegra_xusb_port_ops *ops; - unsigned int count; - } usb2; - struct { - const struct tegra_xusb_port_ops *ops; - unsigned int count; - } ulpi; +struct enetc_cbd { + union { + struct sfi_conf sfi_conf; + struct sgi_table sgi_table; + struct fmi_conf fmi_conf; struct { - const struct tegra_xusb_port_ops *ops; - unsigned int count; - } hsic; - struct { - const struct tegra_xusb_port_ops *ops; - unsigned int count; - } usb3; - } ports; - const struct tegra_xusb_padctl_ops *ops; - const char * const *supply_names; - unsigned int num_supplies; - bool supports_gen2; - bool need_fake_usb3_port; - bool poll_trk_completed; - bool trk_hw_mode; - bool supports_lp_cfg_en; + __le32 addr[2]; + union { + __le32 opt[4]; + struct tgs_gcl_conf gcl_conf; + struct streamid_conf sid_set; + struct sgcl_conf sgcl_conf; + }; + }; + __le32 data[6]; + }; + __le16 index; + __le16 length; + u8 cmd; + u8 cls; + u8 _res; + u8 status_flags; }; -struct tegra_xusb_lane_soc; - -struct tegra_xusb_pad_ops; - -struct tegra_xusb_pad_soc { - const char *name; - const struct tegra_xusb_lane_soc *lanes; - unsigned int num_lanes; - const struct tegra_xusb_pad_ops *ops; +struct enetc_cbdr { + void *bd_base; + void *pir; + void *cir; + void *mr; + int bd_count; + int next_to_use; + int next_to_clean; + dma_addr_t bd_dma_base; + struct device *dma_dev; }; -struct tegra_xusb_lane_soc { - const char *name; - unsigned int offset; - unsigned int shift; - unsigned int mask; - const char * const *funcs; - unsigned int num_funcs; - struct { - unsigned int misc_ctl2; - } regs; +struct enetc_hw { + void *reg; + void *port; + void *global; }; -struct tegra_xusb_pad; +struct enetc_si { + struct pci_dev *pdev; + struct enetc_hw hw; + enum enetc_errata errata; + struct net_device *ndev; + struct enetc_cbdr cbd_ring; + int num_rx_rings; + int num_tx_rings; + int num_fs_entries; + int num_rss; + unsigned short pad; + int hw_features; +}; -struct tegra_xusb_padctl; +struct enetc_cmd_rfse { + u8 smac_h[6]; + u8 smac_m[6]; + u8 dmac_h[6]; + u8 dmac_m[6]; + __be32 sip_h[4]; + __be32 sip_m[4]; + __be32 dip_h[4]; + __be32 dip_m[4]; + u16 ethtype_h; + u16 ethtype_m; + u16 ethtype4_h; + u16 ethtype4_m; + u16 sport_h; + u16 sport_m; + u16 dport_h; + u16 dport_m; + u16 vlan_h; + u16 vlan_m; + u8 proto_h; + u8 proto_m; + u16 flags; + u16 result; + u16 mode; +}; -struct tegra_xusb_pad_ops { - struct tegra_xusb_pad * (*probe)(struct tegra_xusb_padctl *, const struct tegra_xusb_pad_soc *, struct device_node *); - void (*remove)(struct tegra_xusb_pad *); +enum mvpp2_tx_buf_type { + MVPP2_TYPE_SKB = 0, + MVPP2_TYPE_XDP_TX = 1, + MVPP2_TYPE_XDP_NDO = 2, }; -struct tegra_xusb_lane_ops; +struct mvpp2_port; -struct tegra_xusb_pad { - const struct tegra_xusb_pad_soc *soc; - struct tegra_xusb_padctl *padctl; - struct phy_provider *provider; - struct phy **lanes; - struct device dev; - const struct tegra_xusb_lane_ops *ops; - struct list_head list; +struct mvpp2_queue_vector { + int irq; + struct napi_struct napi; + enum { + MVPP2_QUEUE_VECTOR_SHARED = 0, + MVPP2_QUEUE_VECTOR_PRIVATE = 1, + } type; + int sw_thread_id; + u16 sw_thread_mask; + int first_rxq; + int nrxqs; + u32 pending_cause_rx; + struct mvpp2_port *port; + struct cpumask *mask; }; -struct tegra_xusb_padctl { - struct device *dev; - void *regs; - struct mutex lock; - struct reset_control *rst; - const struct tegra_xusb_padctl_soc *soc; - struct tegra_xusb_pad *pcie; - struct tegra_xusb_pad *sata; - struct tegra_xusb_pad *ulpi; - struct tegra_xusb_pad *usb2; - struct tegra_xusb_pad *hsic; - struct list_head ports; - struct list_head lanes; - struct list_head pads; - unsigned int enable; - struct clk *clk; - struct regulator_bulk_data *supplies; +struct mvpp2_hwtstamp_queue { + struct sk_buff *skb[32]; + u8 next; }; -struct tegra_xusb_lane; +struct mvpp2; -struct tegra_xusb_lane_ops { - struct tegra_xusb_lane * (*probe)(struct tegra_xusb_pad *, struct device_node *, unsigned int); - void (*remove)(struct tegra_xusb_lane *); - void (*iddq_enable)(struct tegra_xusb_lane *); - void (*iddq_disable)(struct tegra_xusb_lane *); - int (*enable_phy_sleepwalk)(struct tegra_xusb_lane *, enum usb_device_speed); - int (*disable_phy_sleepwalk)(struct tegra_xusb_lane *); - int (*enable_phy_wake)(struct tegra_xusb_lane *); - int (*disable_phy_wake)(struct tegra_xusb_lane *); - bool (*remote_wake_detected)(struct tegra_xusb_lane *); -}; +struct mvpp2_rx_queue; -struct tegra_xusb_lane { - const struct tegra_xusb_lane_soc *soc; - struct tegra_xusb_pad *pad; - struct device_node *np; - struct list_head list; - unsigned int function; - unsigned int index; -}; +struct mvpp2_tx_queue; -struct tegra_xusb_port; +struct mvpp2_port_pcpu; -struct tegra_xusb_port_ops { - void (*release)(struct tegra_xusb_port *); - void (*remove)(struct tegra_xusb_port *); - int (*enable)(struct tegra_xusb_port *); - void (*disable)(struct tegra_xusb_port *); - struct tegra_xusb_lane * (*map)(struct tegra_xusb_port *); -}; +struct mvpp2_pcpu_stats; -struct tegra_xusb_port { - struct tegra_xusb_padctl *padctl; - struct tegra_xusb_lane *lane; - unsigned int index; - struct list_head list; - struct device dev; - struct usb_role_switch *usb_role_sw; - struct work_struct usb_phy_work; - struct usb_phy usb_phy; - const struct tegra_xusb_port_ops *ops; -}; +struct mvpp2_bm_pool; -struct tegra_xusb_padctl_ops { - struct tegra_xusb_padctl * (*probe)(struct device *, const struct tegra_xusb_padctl_soc *); - void (*remove)(struct tegra_xusb_padctl *); - int (*suspend_noirq)(struct tegra_xusb_padctl *); - int (*resume_noirq)(struct tegra_xusb_padctl *); - int (*usb3_save_context)(struct tegra_xusb_padctl *, unsigned int); - int (*hsic_set_idle)(struct tegra_xusb_padctl *, unsigned int, bool); - int (*usb3_set_lfps_detect)(struct tegra_xusb_padctl *, unsigned int, bool); - int (*vbus_override)(struct tegra_xusb_padctl *, bool); - int (*utmi_port_reset)(struct phy *); - void (*utmi_pad_power_on)(struct phy *); - void (*utmi_pad_power_down)(struct phy *); -}; +struct mvpp2_ethtool_fs; -struct tegra_xusb_lane_map { - unsigned int port; - const char *type; - unsigned int index; - const char *func; +struct mvpp2_port { + u8 id; + int gop_id; + int port_irq; + struct mvpp2 *priv; + struct fwnode_handle *fwnode; + void *base; + void *stats_base; + struct mvpp2_rx_queue **rxqs; + unsigned int nrxqs; + struct mvpp2_tx_queue **txqs; + unsigned int ntxqs; + struct net_device *dev; + struct bpf_prog *xdp_prog; + int pkt_size; + struct mvpp2_port_pcpu __attribute__((btf_type_tag("percpu"))) *pcpu; + spinlock_t bm_lock[9]; + spinlock_t tx_lock[9]; + unsigned long flags; + u16 tx_ring_size; + u16 rx_ring_size; + struct mvpp2_pcpu_stats __attribute__((btf_type_tag("percpu"))) *stats; + u64 *ethtool_stats; + unsigned long state; + struct mutex gather_stats_lock; + struct delayed_work stats_work; + struct device_node *of_node; + phy_interface_t phy_interface; + struct phylink *phylink; + struct phylink_config phylink_config; + struct phylink_pcs pcs_gmac; + struct phylink_pcs pcs_xlg; + struct phy *comphy; + struct mvpp2_bm_pool *pool_long; + struct mvpp2_bm_pool *pool_short; + u8 first_rxq; + struct mvpp2_queue_vector qvecs[9]; + unsigned int nqvecs; + bool has_tx_irqs; + u32 tx_time_coal; + struct mvpp2_ethtool_fs *rfs_rules[4]; + int n_rfs_rules; + int rss_ctx[8]; + bool hwtstamp; + bool rx_hwtstamp; + enum hwtstamp_tx_types tx_hwtstamp_type; + struct mvpp2_hwtstamp_queue tx_hwtstamp_queue[2]; + bool tx_fc; }; -struct tegra_xusb_usb2_lane { - struct tegra_xusb_lane base; - u32 hs_curr_level_offset; - bool powered_on; -}; +struct mvpp2_tai; -struct tegra210_xusb_fuse_calibration { - u32 hs_curr_level[4]; - u32 hs_term_range_adj; - u32 rpd_ctrl; -}; +struct mvpp2_prs_shadow; -struct tegra210_xusb_padctl_context { - u32 usb2_pad_mux; - u32 usb2_port_cap; - u32 ss_port_map; - u32 usb3_pad_mux; -}; +struct mvpp2_dbgfs_entries; -struct tegra210_xusb_padctl { - struct tegra_xusb_padctl base; - struct regmap *regmap; - struct tegra210_xusb_fuse_calibration fuse; - struct tegra210_xusb_padctl_context context; +struct mvpp2_rss_table; + +struct mvpp2 { + void *lms_base; + void *iface_base; + void *cm3_base; + void *swth_base[9]; + struct regmap *sysctrl_base; + struct clk *pp_clk; + struct clk *gop_clk; + struct clk *mg_clk; + struct clk *mg_core_clk; + struct clk *axi_clk; + int port_count; + struct mvpp2_port *port_list[4]; + unsigned long port_map; + struct mvpp2_tai *tai; + unsigned int nthreads; + unsigned long lock_map; + struct mvpp2_tx_queue *aggr_txqs; + int percpu_pools; + struct mvpp2_bm_pool *bm_pools; + struct mvpp2_prs_shadow *prs_shadow; + bool *prs_double_vlans; + u32 tclk; + enum { + MVPP21 = 0, + MVPP22 = 1, + MVPP23 = 2, + } hw_version; + unsigned int max_port_rxqs; + char queue_name[30]; + struct workqueue_struct *stats_queue; + struct dentry *dbgfs_dir; + struct mvpp2_dbgfs_entries *dbgfs_entries; + struct mvpp2_rss_table *rss_tables[8]; + struct page_pool *page_pool[32]; + bool global_tx_fc; + spinlock_t mss_spinlock; }; -struct tegra_xusb_usb2_pad { - struct tegra_xusb_pad base; - struct clk *clk; - unsigned int enable; - struct mutex lock; +struct mvpp2_txq_pcpu; + +struct mvpp2_tx_desc; + +struct mvpp2_tx_queue { + u8 id; + u8 log_id; + int size; + int count; + struct mvpp2_txq_pcpu __attribute__((btf_type_tag("percpu"))) *pcpu; + u32 done_pkts_coal; + struct mvpp2_tx_desc *descs; + dma_addr_t descs_dma; + int last_desc; + int next_desc_to_proc; }; -struct tegra_xusb_hsic_lane { - struct tegra_xusb_lane base; - u32 strobe_trim; - u32 rx_strobe_trim; - u32 rx_data_trim; - u32 tx_rtune_n; - u32 tx_rtune_p; - u32 tx_rslew_n; - u32 tx_rslew_p; - bool auto_term; +struct mvpp2_txq_pcpu_buf; + +struct mvpp2_txq_pcpu { + unsigned int thread; + int size; + int count; + int wake_threshold; + int stop_threshold; + int reserved_num; + struct mvpp2_txq_pcpu_buf *buffs; + int txq_put_index; + int txq_get_index; + char *tso_headers; + dma_addr_t tso_headers_dma; }; -struct tegra_xusb_hsic_pad { - struct tegra_xusb_pad base; - struct regulator *supply; - struct clk *clk; +struct mvpp2_txq_pcpu_buf { + enum mvpp2_tx_buf_type type; + union { + struct xdp_frame *xdpf; + struct sk_buff *skb; + }; + dma_addr_t dma; + size_t size; }; -struct tegra_xusb_pcie_lane { - struct tegra_xusb_lane base; +struct mvpp21_tx_desc { + __le32 command; + u8 packet_offset; + u8 phys_txq; + __le16 data_size; + __le32 buf_dma_addr; + __le32 buf_cookie; + __le32 reserved1[3]; + __le32 reserved2; }; -struct tegra_xusb_pcie_pad { - struct tegra_xusb_pad base; - struct reset_control *rst; - struct clk *pll; - bool enable; +struct mvpp22_tx_desc { + __le32 command; + u8 packet_offset; + u8 phys_txq; + __le16 data_size; + __le32 ptp_descriptor; + __le32 reserved2; + __le64 buf_dma_addr_ptp; + __le64 buf_cookie_misc; }; -struct tegra_xusb_sata_pad { - struct tegra_xusb_pad base; - struct reset_control *rst; - struct clk *pll; - bool enable; +struct mvpp2_tx_desc { + union { + struct mvpp21_tx_desc pp21; + struct mvpp22_tx_desc pp22; + }; }; -struct tegra_xusb_sata_lane { - struct tegra_xusb_lane base; +struct mvpp2_bm_pool { + int id; + int size; + int size_bytes; + int buf_num; + int buf_size; + int pkt_size; + int frag_size; + u32 *virt_addr; + dma_addr_t dma_addr; + u32 port_map; }; -struct tegra_xusb_usb2_port { - struct tegra_xusb_port base; - struct regulator *supply; - enum usb_dr_mode mode; - bool internal; - int usb3_port_fake; +struct mvpp2_prs_shadow { + bool valid; + bool finish; + int lu; + int udf; + u32 ri; + u32 ri_mask; }; -struct tegra_xusb_usb3_port { - struct tegra_xusb_port base; - bool context_saved; - unsigned int port; - bool internal; - bool disable_gen2; - u32 tap1; - u32 amp; - u32 ctle_z; - u32 ctle_g; +struct mvpp2_rss_table { + u32 indir[32]; }; -struct meson_pmx_bank; +struct mvpp2_rx_desc; -struct meson_axg_pmx_data { - struct meson_pmx_bank *pmx_banks; - unsigned int num_pmx_banks; +struct mvpp2_rx_queue { + u8 id; + int size; + u32 pkts_coal; + u32 time_coal; + struct mvpp2_rx_desc *descs; + dma_addr_t descs_dma; + int last_desc; + int next_desc_to_proc; + int port; + int logic_rxq; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq_short; + struct xdp_rxq_info xdp_rxq_long; }; -struct meson_pmx_bank { - const char *name; - unsigned int first; - unsigned int last; - unsigned int reg; - unsigned int offset; +struct mvpp21_rx_desc { + __le32 status; + __le16 reserved1; + __le16 data_size; + __le32 buf_dma_addr; + __le32 buf_cookie; + __le16 reserved2; + __le16 reserved3; + u8 reserved4; + u8 reserved5; + __le16 reserved6; + __le32 reserved7; + __le32 reserved8; }; -typedef void (*btf_trace_gpio_direction)(void *, unsigned int, int, int); - -typedef void (*btf_trace_gpio_value)(void *, unsigned int, int, int); - -enum gpio_lookup_flags { - GPIO_ACTIVE_HIGH = 0, - GPIO_ACTIVE_LOW = 1, - GPIO_OPEN_DRAIN = 2, - GPIO_OPEN_SOURCE = 4, - GPIO_PERSISTENT = 0, - GPIO_TRANSITORY = 8, - GPIO_PULL_UP = 16, - GPIO_PULL_DOWN = 32, - GPIO_PULL_DISABLE = 64, - GPIO_LOOKUP_FLAGS_DEFAULT = 0, +struct mvpp22_rx_desc { + __le32 status; + __le16 reserved1; + __le16 data_size; + __le32 reserved2; + __le32 timestamp; + __le64 buf_dma_addr_key_hash; + __le64 buf_cookie_misc; }; -enum { - IRQCHIP_SET_TYPE_MASKED = 1, - IRQCHIP_EOI_IF_HANDLED = 2, - IRQCHIP_MASK_ON_SUSPEND = 4, - IRQCHIP_ONOFFLINE_ENABLED = 8, - IRQCHIP_SKIP_SET_WAKE = 16, - IRQCHIP_ONESHOT_SAFE = 32, - IRQCHIP_EOI_THREADED = 64, - IRQCHIP_SUPPORTS_LEVEL_MSI = 128, - IRQCHIP_SUPPORTS_NMI = 256, - IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, - IRQCHIP_AFFINITY_PRE_STARTUP = 1024, - IRQCHIP_IMMUTABLE = 2048, +struct mvpp2_rx_desc { + union { + struct mvpp21_rx_desc pp21; + struct mvpp22_rx_desc pp22; + }; }; -enum { - GPIOLINE_CHANGED_REQUESTED = 1, - GPIOLINE_CHANGED_RELEASED = 2, - GPIOLINE_CHANGED_CONFIG = 3, +struct mvpp2_port_pcpu { + struct hrtimer tx_done_timer; + struct net_device *dev; + bool timer_scheduled; }; -struct gpio_pin_range { - struct list_head node; - struct pinctrl_dev *pctldev; - struct pinctrl_gpio_range range; +struct mvpp2_pcpu_stats { + struct u64_stats_sync syncp; + u64 rx_packets; + u64 rx_bytes; + u64 tx_packets; + u64 tx_bytes; + u64 xdp_redirect; + u64 xdp_pass; + u64 xdp_drop; + u64 xdp_xmit; + u64 xdp_xmit_err; + u64 xdp_tx; + u64 xdp_tx_err; }; -struct trace_event_raw_gpio_direction { - struct trace_entry ent; - unsigned int gpio; - int in; - int err; - char __data[0]; +struct mvpp2_rfs_rule { + int loc; + int flow_type; + int c2_index; + u16 hek_fields; + u8 engine; + u64 c2_tcam; + u64 c2_tcam_mask; + struct flow_rule *flow; }; -struct trace_event_raw_gpio_value { - struct trace_entry ent; - unsigned int gpio; - int get; - int value; - char __data[0]; +struct mvpp2_ethtool_fs { + struct mvpp2_rfs_rule rule; + struct ethtool_rxnfc rxnfc; }; -struct gpiod_hog { - struct list_head list; - const char *chip_label; - u16 chip_hwnum; - const char *line_name; - unsigned long lflags; - int dflags; +enum mvpp2_prs_l2_cast { + MVPP2_PRS_L2_UNI_CAST = 0, + MVPP2_PRS_L2_MULTI_CAST = 1, }; -struct gpio_array; +enum mvpp2_prs_lookup { + MVPP2_PRS_LU_MH = 0, + MVPP2_PRS_LU_MAC = 1, + MVPP2_PRS_LU_DSA = 2, + MVPP2_PRS_LU_VLAN = 3, + MVPP2_PRS_LU_VID = 4, + MVPP2_PRS_LU_L2 = 5, + MVPP2_PRS_LU_PPPOE = 6, + MVPP2_PRS_LU_IP4 = 7, + MVPP2_PRS_LU_IP6 = 8, + MVPP2_PRS_LU_FLOWS = 9, + MVPP2_PRS_LU_LAST = 10, +}; -struct gpio_descs { - struct gpio_array *info; - unsigned int ndescs; - struct gpio_desc *desc[0]; +enum mvpp2_prs_udf { + MVPP2_PRS_UDF_MAC_DEF = 0, + MVPP2_PRS_UDF_MAC_RANGE = 1, + MVPP2_PRS_UDF_L2_DEF = 2, + MVPP2_PRS_UDF_L2_DEF_COPY = 3, + MVPP2_PRS_UDF_L2_USER = 4, }; -struct gpio_array { - struct gpio_desc **desc; - unsigned int size; - struct gpio_chip *chip; - unsigned long *get_mask; - unsigned long *set_mask; - unsigned long invert_mask[0]; +enum mvpp2_tag_type { + MVPP2_TAG_TYPE_NONE = 0, + MVPP2_TAG_TYPE_MH = 1, + MVPP2_TAG_TYPE_DSA = 2, + MVPP2_TAG_TYPE_EDSA = 3, + MVPP2_TAG_TYPE_VLAN = 4, + MVPP2_TAG_TYPE_LAST = 5, }; -struct trace_event_data_offsets_gpio_direction {}; +enum mvpp2_prs_l3_cast { + MVPP2_PRS_L3_UNI_CAST = 0, + MVPP2_PRS_L3_MULTI_CAST = 1, + MVPP2_PRS_L3_BROAD_CAST = 2, +}; -struct trace_event_data_offsets_gpio_value {}; +struct mvpp2_prs_entry { + u32 index; + u32 tcam[6]; + u32 sram[4]; +}; -struct pci_slot_attribute { - struct attribute attr; - ssize_t (*show)(struct pci_slot *, char *); - ssize_t (*store)(struct pci_slot *, const char *, size_t); +enum xenbus_state { + XenbusStateUnknown = 0, + XenbusStateInitialising = 1, + XenbusStateInitWait = 2, + XenbusStateInitialised = 3, + XenbusStateConnected = 4, + XenbusStateClosing = 5, + XenbusStateClosed = 6, + XenbusStateReconfiguring = 7, + XenbusStateReconfigured = 8, }; -struct hotplug_slot_ops; +struct xenbus_device_id; -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 xenbus_device; -struct hotplug_slot_ops { - int (*enable_slot)(struct hotplug_slot *); - int (*disable_slot)(struct hotplug_slot *); - int (*set_attention_status)(struct hotplug_slot *, u8); - int (*hardware_test)(struct hotplug_slot *, u32); - int (*get_power_status)(struct hotplug_slot *, u8 *); - int (*get_attention_status)(struct hotplug_slot *, u8 *); - int (*get_latch_status)(struct hotplug_slot *, u8 *); - int (*get_adapter_status)(struct hotplug_slot *, u8 *); - int (*reset_slot)(struct hotplug_slot *, bool); +struct xenbus_driver { + const char *name; + const struct xenbus_device_id *ids; + bool allow_rebind; + bool not_essential; + int (*probe)(struct xenbus_device *, const struct xenbus_device_id *); + void (*otherend_changed)(struct xenbus_device *, enum xenbus_state); + void (*remove)(struct xenbus_device *); + int (*suspend)(struct xenbus_device *); + int (*resume)(struct xenbus_device *); + int (*uevent)(const struct xenbus_device *, struct kobj_uevent_env *); + struct device_driver driver; + int (*read_otherend_details)(struct xenbus_device *); + int (*is_ready)(struct xenbus_device *); + void (*reclaim_memory)(struct xenbus_device *); }; -struct altera_msi { - unsigned long used[1]; - struct mutex lock; - struct platform_device *pdev; - struct irq_domain *msi_domain; - struct irq_domain *inner_domain; - void *csr_base; - void *vector_base; - phys_addr_t vector_phy; - u32 num_of_vectors; - int irq; +struct xenbus_device_id { + char devicetype[32]; }; -typedef unsigned short u_short; - -struct fbcon_display { - const u_char *fontdata; - int userfont; - u_short inverse; - short yscroll; - int vrows; - int cursor_shape; - int con_rotate; - u32 xres_virtual; - u32 yres_virtual; - u32 height; - u32 width; - u32 bits_per_pixel; - u32 grayscale; - u32 nonstd; - u32 accel_flags; - u32 rotate; - struct fb_bitfield red; - struct fb_bitfield green; - struct fb_bitfield blue; - struct fb_bitfield transp; - const struct fb_videomode *mode; +struct xenbus_watch { + struct list_head list; + const char *node; + unsigned int nr_pending; + bool (*will_handle)(struct xenbus_watch *, const char *, const char *); + void (*callback)(struct xenbus_watch *, const char *, const char *); }; -enum { - FBCON_LOGO_CANSHOW = -1, - FBCON_LOGO_DRAW = -2, - FBCON_LOGO_DONTSHOW = -3, +struct xenbus_device { + const char *devicetype; + const char *nodename; + const char *otherend; + int otherend_id; + struct xenbus_watch otherend_watch; + struct device dev; + enum xenbus_state state; + struct completion down; + struct work_struct work; + struct semaphore reclaim_sem; + atomic_t event_channels; + atomic_t events; + atomic_t spurious_events; + atomic_t jiffies_eoi_delayed; + unsigned int spurious_threshold; }; -enum { - FB_BLANK_UNBLANK = 0, - FB_BLANK_NORMAL = 1, - FB_BLANK_VSYNC_SUSPEND = 2, - FB_BLANK_HSYNC_SUSPEND = 3, - FB_BLANK_POWERDOWN = 4, +struct xennet_stat { + char name[32]; + u16 offset; }; -struct fbcon_ops { - void (*bmove)(struct vc_data *, struct fb_info *, int, int, int, int, int, int); - void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int); - void (*putcs)(struct vc_data *, struct fb_info *, const unsigned short *, int, int, int, int, int); - void (*clear_margins)(struct vc_data *, struct fb_info *, int, int); - void (*cursor)(struct vc_data *, struct fb_info *, int, int, int); - int (*update_start)(struct fb_info *); - int (*rotate_font)(struct fb_info *, struct vc_data *); - struct fb_var_screeninfo var; - struct delayed_work cursor_work; - struct fb_cursor cursor_state; - struct fbcon_display *p; - struct fb_info *info; - int currcon; - int cur_blink_jiffies; - int cursor_flash; - int cursor_reset; - int blank_state; - int graphics; - int save_graphics; - bool initialized; - int rotate; - int cur_rotate; - char *cursor_data; - u8 *fontbuffer; - u8 *fontdata; - u8 *cursor_src; - u32 cursor_size; - u32 fd_size; +enum xdp_mem_type { + MEM_TYPE_PAGE_SHARED = 0, + MEM_TYPE_PAGE_ORDER0 = 1, + MEM_TYPE_PAGE_POOL = 2, + MEM_TYPE_XSK_BUFF_POOL = 3, + MEM_TYPE_MAX = 4, }; -struct fb_con2fbmap { - __u32 console; - __u32 framebuffer; +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, }; -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 netfront_stats { + u64 packets; + u64 bytes; + struct u64_stats_sync syncp; }; -struct acpi_fan_fst { - u64 revision; - u64 control; - u64 speed; -}; +typedef unsigned int RING_IDX; -struct acpi_fan_fif { - u8 revision; - u8 fine_grain_ctrl; - u8 step_size; - u8 low_speed_notification; +struct xen_netif_extra_info { + uint8_t type; + uint8_t flags; + union { + struct { + uint16_t size; + uint8_t type; + uint8_t pad; + uint16_t features; + } gso; + struct { + uint8_t addr[6]; + } mcast; + struct { + uint8_t type; + uint8_t algorithm; + uint8_t value[4]; + } hash; + struct { + uint16_t headroom; + uint16_t pad[2]; + } xdp; + uint16_t pad[3]; + } u; }; -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; +typedef s16 int16_t; + +struct xen_netif_tx_response { + uint16_t id; + int16_t status; }; -struct amba_device; +typedef uint32_t grant_ref_t; -struct amba_id; +struct xen_netif_tx_sring; -struct amba_driver { - struct device_driver drv; - int (*probe)(struct amba_device *, const struct amba_id *); - void (*remove)(struct amba_device *); - void (*shutdown)(struct amba_device *); - const struct amba_id *id_table; - bool driver_managed_dma; +struct xen_netif_tx_front_ring { + RING_IDX req_prod_pvt; + RING_IDX rsp_cons; + unsigned int nr_ents; + struct xen_netif_tx_sring *sring; }; -struct amba_cs_uci_id { - unsigned int devarch; - unsigned int devarch_mask; - unsigned int devtype; - void *data; -}; +struct xen_netif_rx_sring; -struct amba_device { - struct device dev; - struct resource res; - struct clk *pclk; - struct device_dma_parameters dma_parms; - unsigned int periphid; - struct mutex periphid_lock; - unsigned int cid; - struct amba_cs_uci_id uci; - unsigned int irq[9]; - const char *driver_override; +struct xen_netif_rx_front_ring { + RING_IDX req_prod_pvt; + RING_IDX rsp_cons; + unsigned int nr_ents; + struct xen_netif_rx_sring *sring; }; -struct amba_id { +struct netfront_info; + +struct netfront_queue { unsigned int id; - unsigned int mask; - void *data; + char name[22]; + struct netfront_info *info; + struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; + struct napi_struct napi; + unsigned int tx_evtchn; + unsigned int rx_evtchn; + unsigned int tx_irq; + unsigned int rx_irq; + char tx_irq_name[25]; + char rx_irq_name[25]; + spinlock_t tx_lock; + struct xen_netif_tx_front_ring tx; + int tx_ring_ref; + struct sk_buff *tx_skbs[256]; + unsigned short tx_link[256]; + grant_ref_t gref_tx_head; + grant_ref_t grant_tx_ref[256]; + struct page *grant_tx_page[256]; + unsigned int tx_skb_freelist; + unsigned int tx_pend_queue; + long: 64; + long: 64; + spinlock_t rx_lock; + struct xen_netif_rx_front_ring rx; + int rx_ring_ref; + struct timer_list rx_refill_timer; + struct sk_buff *rx_skbs[256]; + grant_ref_t gref_rx_head; + grant_ref_t grant_rx_ref[256]; + unsigned int rx_rsp_unconsumed; + spinlock_t rx_cons_lock; + struct page_pool *page_pool; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; }; -struct clk_frac_pll { - struct clk_hw hw; - void *base; +struct netfront_info { + struct list_head list; + struct net_device *netdev; + struct xenbus_device *xbdev; + struct netfront_queue *queues; + struct netfront_stats __attribute__((btf_type_tag("percpu"))) *rx_stats; + struct netfront_stats __attribute__((btf_type_tag("percpu"))) *tx_stats; + bool netback_has_xdp_headroom; + bool netfront_xdp_enabled; + bool broken; + bool bounce; + atomic_t rx_gso_checksum_fixup; }; -enum imx_pllv3_type { - IMX_PLLV3_GENERIC = 0, - IMX_PLLV3_SYS = 1, - IMX_PLLV3_USB = 2, - IMX_PLLV3_USB_VF610 = 3, - IMX_PLLV3_AV = 4, - IMX_PLLV3_ENET = 5, - IMX_PLLV3_ENET_IMX7 = 6, - IMX_PLLV3_SYS_VF610 = 7, - IMX_PLLV3_DDR_IMX7 = 8, - IMX_PLLV3_AV_IMX7 = 9, +struct xen_netif_tx_request { + grant_ref_t gref; + uint16_t offset; + uint16_t flags; + uint16_t id; + uint16_t size; }; -struct clk_pllv3 { - struct clk_hw hw; - void *base; - u32 power_bit; - bool powerup_set; - u32 div_mask; - u32 div_shift; - unsigned long ref_clock; - u32 num_offset; - u32 denom_offset; +union xen_netif_tx_sring_entry { + struct xen_netif_tx_request req; + struct xen_netif_tx_response rsp; }; -struct clk_pllv3_vf610_mf { - u32 mfi; - u32 mfn; - u32 mfd; +struct xen_netif_tx_sring { + RING_IDX req_prod; + RING_IDX req_event; + RING_IDX rsp_prod; + RING_IDX rsp_event; + uint8_t __pad[48]; + union xen_netif_tx_sring_entry ring[1]; }; -struct meson_aoclk_reset_controller { - struct reset_controller_dev reset; - const struct meson_aoclk_data *data; - struct regmap *regmap; +struct xen_netif_rx_request { + uint16_t id; + uint16_t pad; + grant_ref_t gref; }; -struct apss_pll_data { - int pll_type; - struct clk_alpha_pll *pll; - const struct alpha_pll_config *pll_config; +struct xen_netif_rx_response { + uint16_t id; + uint16_t offset; + uint16_t flags; + int16_t status; }; -enum { - CLK_ALPHA_PLL_TYPE_DEFAULT = 0, - CLK_ALPHA_PLL_TYPE_HUAYRA = 1, - CLK_ALPHA_PLL_TYPE_BRAMMO = 2, - CLK_ALPHA_PLL_TYPE_FABIA = 3, - CLK_ALPHA_PLL_TYPE_TRION = 4, - CLK_ALPHA_PLL_TYPE_LUCID = 4, - CLK_ALPHA_PLL_TYPE_AGERA = 5, - CLK_ALPHA_PLL_TYPE_ZONDA = 6, - CLK_ALPHA_PLL_TYPE_LUCID_EVO = 7, - CLK_ALPHA_PLL_TYPE_LUCID_OLE = 8, - CLK_ALPHA_PLL_TYPE_RIVIAN_EVO = 9, - CLK_ALPHA_PLL_TYPE_DEFAULT_EVO = 10, - CLK_ALPHA_PLL_TYPE_BRAMMO_EVO = 11, - CLK_ALPHA_PLL_TYPE_STROMER = 12, - CLK_ALPHA_PLL_TYPE_STROMER_PLUS = 13, - CLK_ALPHA_PLL_TYPE_MAX = 14, +union xen_netif_rx_sring_entry { + struct xen_netif_rx_request req; + struct xen_netif_rx_response rsp; }; -enum samsung_pll_type { - pll_2126 = 0, - pll_3000 = 1, - pll_35xx = 2, - pll_36xx = 3, - pll_2550 = 4, - pll_2650 = 5, - pll_4500 = 6, - pll_4502 = 7, - pll_4508 = 8, - pll_4600 = 9, - pll_4650 = 10, - pll_4650c = 11, - pll_6552 = 12, - pll_6552_s3c2416 = 13, - pll_6553 = 14, - pll_2550x = 15, - pll_2550xx = 16, - pll_2650x = 17, - pll_2650xx = 18, - pll_1417x = 19, - pll_1450x = 20, - pll_1451x = 21, - pll_1452x = 22, - pll_1460x = 23, - pll_0818x = 24, - pll_0822x = 25, - pll_0831x = 26, - pll_142xx = 27, +struct xen_netif_rx_sring { + RING_IDX req_prod; + RING_IDX req_event; + RING_IDX rsp_prod; + RING_IDX rsp_event; + uint8_t __pad[48]; + union xen_netif_rx_sring_entry ring[1]; }; -struct samsung_clk_reg_dump; - -struct samsung_clock_reg_cache { - struct list_head node; - void *reg_base; - struct samsung_clk_reg_dump *rdump; - unsigned int rd_num; - const struct samsung_clk_reg_dump *rsuspend; - unsigned int rsuspend_num; +struct netfront_cb { + int pull_to; }; -struct samsung_clk_reg_dump { - u32 offset; - u32 value; +struct xenbus_transaction { + u32 id; }; -struct samsung_clk_provider { - void *reg_base; - struct device *dev; - spinlock_t lock; - struct clk_hw_onecell_data clk_data; +typedef void (*xen_grant_fn_t)(unsigned long, unsigned int, unsigned int, void *); + +struct xennet_gnttab_make_txreq { + struct netfront_queue *queue; + struct sk_buff *skb; + struct page *page; + struct xen_netif_tx_request *tx; + struct xen_netif_tx_request tx_local; + unsigned int size; }; -struct samsung_pll_rate_table; +struct netfront_rx_info { + struct xen_netif_rx_response rx; + struct xen_netif_extra_info extras[5]; +}; -struct samsung_pll_clock { - unsigned int id; - const char *name; - const char *parent_name; - unsigned long flags; - int con_offset; - int lock_offset; - enum samsung_pll_type type; - const struct samsung_pll_rate_table *rate_table; +enum dwc2_lx_state { + DWC2_L0 = 0, + DWC2_L1 = 1, + DWC2_L2 = 2, + DWC2_L3 = 3, }; -struct samsung_pll_rate_table { - unsigned int rate; - unsigned int pdiv; - unsigned int mdiv; - unsigned int sdiv; - unsigned int kdiv; - unsigned int afc; - unsigned int mfr; - unsigned int mrr; - unsigned int vsel; +enum dwc2_ep0_state { + DWC2_EP0_SETUP = 0, + DWC2_EP0_DATA_IN = 1, + DWC2_EP0_DATA_OUT = 2, + DWC2_EP0_STATUS_IN = 3, + DWC2_EP0_STATUS_OUT = 4, }; -struct exynos_cpuclk_cfg_data; +struct dwc2_hsotg; -struct samsung_cpu_clock { - unsigned int id; - const char *name; - unsigned int parent_id; - unsigned int alt_parent_id; - unsigned long flags; - int offset; - const struct exynos_cpuclk_cfg_data *cfg; +typedef void (*set_params_cb)(struct dwc2_hsotg *); + +struct dwc2_hw_params { + unsigned int op_mode: 3; + unsigned int arch: 2; + unsigned int dma_desc_enable: 1; + unsigned int enable_dynamic_fifo: 1; + unsigned int en_multiple_tx_fifo: 1; + unsigned int rx_fifo_size: 16; + int: 8; + unsigned int host_nperio_tx_fifo_size: 16; + unsigned int dev_nperio_tx_fifo_size: 16; + unsigned int host_perio_tx_fifo_size: 16; + unsigned int nperio_tx_q_depth: 3; + unsigned int host_perio_tx_q_depth: 3; + unsigned int dev_token_q_depth: 5; + int: 5; + unsigned int max_transfer_size: 26; + long: 6; + unsigned int max_packet_count: 11; + unsigned int host_channels: 5; + unsigned int hs_phy_type: 2; + unsigned int fs_phy_type: 2; + unsigned int i2c_enable: 1; + unsigned int acg_enable: 1; + unsigned int num_dev_ep: 4; + unsigned int num_dev_in_eps: 4; + int: 2; + unsigned int num_dev_perio_in_ep: 4; + unsigned int total_fifo_size: 16; + unsigned int power_optimized: 1; + unsigned int hibernation: 1; + unsigned int utmi_phy_data_width: 2; + unsigned int lpm_mode: 1; + unsigned int ipg_isoc_en: 1; + unsigned int service_interval_mode: 1; + u32 snpsid; + u32 dev_ep_dirs; + u32 g_tx_fifo_size[16]; }; -struct exynos_cpuclk_cfg_data { - unsigned long prate; - unsigned long div0; - unsigned long div1; +struct dwc2_core_params { + struct usb_otg_caps otg_caps; + u8 phy_type; + u8 speed; + u8 phy_utmi_width; + bool phy_ulpi_ddr; + bool phy_ulpi_ext_vbus; + bool enable_dynamic_fifo; + bool en_multiple_tx_fifo; + bool i2c_enable; + bool acg_enable; + bool ulpi_fs_ls; + bool ts_dline; + bool reload_ctl; + bool uframe_sched; + bool external_id_pin_ctl; + int power_down; + bool no_clock_gating; + bool lpm; + bool lpm_clock_gating; + bool besl; + bool hird_threshold_en; + bool service_interval; + u8 hird_threshold; + bool activate_stm_fs_transceiver; + bool activate_stm_id_vb_detection; + bool activate_ingenic_overcurrent_detection; + bool ipg_isoc_en; + u16 max_packet_count; + u32 max_transfer_size; + u32 ahbcfg; + u32 ref_clk_per; + u16 sof_cnt_wkup_alert; + bool host_dma; + bool dma_desc_enable; + bool dma_desc_fs_enable; + bool host_support_fs_ls_low_power; + bool host_ls_low_power_phy_clk; + bool oc_disable; + u8 host_channels; + u16 host_rx_fifo_size; + u16 host_nperio_tx_fifo_size; + u16 host_perio_tx_fifo_size; + bool g_dma; + bool g_dma_desc; + u32 g_rx_fifo_size; + u32 g_np_tx_fifo_size; + u32 g_tx_fifo_size[16]; + bool change_speed_quirk; }; -struct samsung_clock_alias { - unsigned int id; - const char *dev_name; - const char *alias; +struct dwc2_gregs_backup { + u32 gotgctl; + u32 gintmsk; + u32 gahbcfg; + u32 gusbcfg; + u32 grxfsiz; + u32 gnptxfsiz; + u32 gi2cctl; + u32 glpmcfg; + u32 pcgcctl; + u32 pcgcctl1; + u32 gdfifocfg; + u32 gpwrdn; + bool valid; }; -struct samsung_fixed_rate_clock { - unsigned int id; - char *name; - const char *parent_name; - unsigned long flags; - unsigned long fixed_rate; +struct dwc2_dregs_backup { + u32 dcfg; + u32 dctl; + u32 daintmsk; + u32 diepmsk; + u32 doepmsk; + u32 diepctl[16]; + u32 dieptsiz[16]; + u32 diepdma[16]; + u32 doepctl[16]; + u32 doeptsiz[16]; + u32 doepdma[16]; + u32 dtxfsiz[16]; + bool valid; }; -struct samsung_fixed_factor_clock { - unsigned int id; - char *name; - const char *parent_name; - unsigned long mult; - unsigned long div; - unsigned long flags; +struct dwc2_hregs_backup { + u32 hcfg; + u32 haintmsk; + u32 hcintmsk[16]; + u32 hprt0; + u32 hfir; + u32 hptxfsiz; + bool valid; }; -struct samsung_mux_clock { - unsigned int id; - const char *name; - const char * const *parent_names; - u8 num_parents; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u8 mux_flags; +union dwc2_hcd_internal_flags { + u32 d32; + struct { + unsigned int port_connect_status_change: 1; + unsigned int port_connect_status: 1; + unsigned int port_reset_change: 1; + unsigned int port_enable_change: 1; + unsigned int port_suspend_change: 1; + unsigned int port_over_current_change: 1; + unsigned int port_l1_change: 1; + unsigned int reserved: 25; + } b; }; -struct samsung_div_clock { - unsigned int id; - const char *name; - const char *parent_name; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u8 div_flags; - struct clk_div_table *table; +struct dwc2_hsotg_plat; + +struct dwc2_host_chan; + +struct dwc2_dma_desc; + +struct dwc2_hsotg_ep; + +struct dwc2_hsotg { + struct device *dev; + void *regs; + struct dwc2_hw_params hw_params; + struct dwc2_core_params params; + enum usb_otg_state op_state; + enum usb_dr_mode dr_mode; + struct usb_role_switch *role_sw; + enum usb_dr_mode role_sw_default_mode; + unsigned int hcd_enabled: 1; + unsigned int gadget_enabled: 1; + unsigned int ll_hw_enabled: 1; + unsigned int hibernated: 1; + unsigned int in_ppd: 1; + bool bus_suspended; + unsigned int reset_phy_on_wake: 1; + unsigned int need_phy_for_wake: 1; + unsigned int phy_off_for_suspend: 1; + u16 frame_number; + struct phy *phy; + struct usb_phy *uphy; + struct dwc2_hsotg_plat *plat; + struct regulator_bulk_data supplies[2]; + struct regulator *vbus_supply; + struct regulator *usb33d; + spinlock_t lock; + void *priv; + int irq; + struct clk *clk; + struct clk *utmi_clk; + struct reset_control *reset; + struct reset_control *reset_ecc; + unsigned int queuing_high_bandwidth: 1; + unsigned int srp_success: 1; + struct workqueue_struct *wq_otg; + struct work_struct wf_otg; + struct timer_list wkp_timer; + enum dwc2_lx_state lx_state; + struct dwc2_gregs_backup gr_backup; + struct dwc2_dregs_backup dr_backup; + struct dwc2_hregs_backup hr_backup; + struct dentry *debug_root; + struct debugfs_regset32 *regset; + bool needs_byte_swap; + union dwc2_hcd_internal_flags flags; + struct list_head non_periodic_sched_inactive; + struct list_head non_periodic_sched_waiting; + struct list_head non_periodic_sched_active; + struct list_head *non_periodic_qh_ptr; + struct list_head periodic_sched_inactive; + struct list_head periodic_sched_ready; + struct list_head periodic_sched_assigned; + struct list_head periodic_sched_queued; + struct list_head split_order; + u16 periodic_usecs; + unsigned long hs_periodic_bitmap[13]; + u16 periodic_qh_count; + bool new_connection; + u16 last_frame_num; + struct list_head free_hc_list; + int periodic_channels; + int non_periodic_channels; + int available_host_channels; + struct dwc2_host_chan *hc_ptr_array[16]; + u8 *status_buf; + dma_addr_t status_buf_dma; + struct delayed_work start_work; + struct delayed_work reset_work; + struct work_struct phy_reset_work; + u8 otg_port; + u32 *frame_list; + dma_addr_t frame_list_dma; + u32 frame_list_sz; + struct kmem_cache *desc_gen_cache; + struct kmem_cache *desc_hsisoc_cache; + struct kmem_cache *unaligned_cache; + struct usb_gadget_driver *driver; + int fifo_mem; + unsigned int dedicated_fifos: 1; + unsigned char num_of_eps; + u32 fifo_map; + struct usb_request *ep0_reply; + struct usb_request *ctrl_req; + void *ep0_buff; + void *ctrl_buff; + enum dwc2_ep0_state ep0_state; + unsigned int delayed_status: 1; + u8 test_mode; + dma_addr_t setup_desc_dma[2]; + struct dwc2_dma_desc *setup_desc[2]; + dma_addr_t ctrl_in_desc_dma; + struct dwc2_dma_desc *ctrl_in_desc; + dma_addr_t ctrl_out_desc_dma; + struct dwc2_dma_desc *ctrl_out_desc; + struct usb_gadget gadget; + unsigned int enabled: 1; + unsigned int connected: 1; + unsigned int remote_wakeup_allowed: 1; + struct dwc2_hsotg_ep *eps_in[16]; + struct dwc2_hsotg_ep *eps_out[16]; }; -struct samsung_gate_clock { - unsigned int id; - const char *name; - const char *parent_name; - unsigned long flags; - unsigned long offset; - u8 bit_idx; - u8 gate_flags; +struct dwc2_dma_desc { + u32 status; + u32 buf; }; -struct samsung_cmu_info { - const struct samsung_pll_clock *pll_clks; - unsigned int nr_pll_clks; - const struct samsung_mux_clock *mux_clks; - unsigned int nr_mux_clks; - const struct samsung_div_clock *div_clks; - unsigned int nr_div_clks; - const struct samsung_gate_clock *gate_clks; - unsigned int nr_gate_clks; - const struct samsung_fixed_rate_clock *fixed_clks; - unsigned int nr_fixed_clks; - const struct samsung_fixed_factor_clock *fixed_factor_clks; - unsigned int nr_fixed_factor_clks; - unsigned int nr_clk_ids; - const struct samsung_cpu_clock *cpu_clks; - unsigned int nr_cpu_clks; - const unsigned long *clk_regs; - unsigned int nr_clk_regs; - const struct samsung_clk_reg_dump *suspend_regs; - unsigned int nr_suspend_regs; - const char *clk_name; +struct dwc2_hsotg_req; + +struct dwc2_hsotg_ep { + struct usb_ep ep; + struct list_head queue; + struct dwc2_hsotg *parent; + struct dwc2_hsotg_req *req; + struct dentry *debugfs; + unsigned long total_data; + unsigned int size_loaded; + unsigned int last_load; + unsigned int fifo_load; + unsigned short fifo_size; + unsigned short fifo_index; + unsigned char dir_in; + unsigned char map_dir; + unsigned char index; + unsigned char mc; + u16 interval; + unsigned int halted: 1; + unsigned int periodic: 1; + unsigned int isochronous: 1; + unsigned int send_zlp: 1; + unsigned int wedged: 1; + unsigned int target_frame; + bool frame_overrun; + dma_addr_t desc_list_dma; + struct dwc2_dma_desc *desc_list; + u8 desc_count; + unsigned int next_desc; + unsigned int compl_desc; + char name[10]; }; -struct ccu_frac_internal { - u32 enable; - u32 select; - unsigned long rates[2]; +struct dwc2_hsotg_req { + struct usb_request req; + struct list_head queue; + void *saved_req_buf; }; -struct ccu_mult_internal { - u8 offset; - u8 shift; - u8 width; - u8 min; - u8 max; +struct ehci_driver_overrides { + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); + int (*port_power)(struct usb_hcd *, int, bool); }; -struct ccu_mult { - u32 enable; - u32 lock; - struct ccu_frac_internal frac; - struct ccu_mult_internal mult; - struct ccu_mux_internal mux; - struct ccu_common common; +enum orion_ehci_phy_ver { + EHCI_PHY_ORION = 0, + EHCI_PHY_DD = 1, + EHCI_PHY_KW = 2, + EHCI_PHY_NA = 3, }; -struct _ccu_mult { - unsigned long mult; - unsigned long min; - unsigned long max; +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, }; -struct zynqmp_clk_gate { - struct clk_hw hw; - u8 flags; - u32 clk_id; +enum ehci_rh_state { + EHCI_RH_HALTED = 0, + EHCI_RH_SUSPENDED = 1, + EHCI_RH_RUNNING = 2, + EHCI_RH_STOPPING = 3, }; -struct clock_topology { - u32 type; - u32 flag; - u32 type_flag; - u8 custom_type_flag; +struct orion_ehci_hcd { + struct clk *clk; + struct phy *phy; }; -struct bcm2835_desc; +struct ehci_caps; -struct bcm2835_chan { - struct virt_dma_chan vc; - struct dma_slave_config cfg; - unsigned int dreq; - int ch; - struct bcm2835_desc *desc; - struct dma_pool *cb_pool; - void *chan_base; - int irq_number; - unsigned int irq_flags; - bool is_lite_channel; -}; +struct ehci_regs; -struct bcm2835_dma_cb; +struct ehci_dbg_port; -struct bcm2835_cb_entry { - struct bcm2835_dma_cb *cb; - dma_addr_t paddr; -}; +struct ehci_qh; -struct bcm2835_desc { - struct bcm2835_chan *c; - struct virt_dma_desc vd; - enum dma_transfer_direction dir; - unsigned int frames; - size_t size; - bool cyclic; - struct bcm2835_cb_entry cb_list[0]; -}; +union ehci_shadow; -struct bcm2835_dma_cb { - uint32_t info; - uint32_t src; - uint32_t dst; - uint32_t length; - uint32_t stride; - uint32_t next; - uint32_t pad[2]; -}; +struct ehci_itd; -struct bcm2835_dmadev { - struct dma_device ddev; - void *base; - dma_addr_t zero_page; +struct ehci_sitd; + +struct ehci_hcd { + enum ehci_hrtimer_event next_hrtimer_event; + unsigned int enabled_hrtimer_events; + ktime_t hr_timeouts[12]; + struct hrtimer hrtimer; + int PSS_poll_count; + int ASS_poll_count; + int died_poll_count; + struct ehci_caps *caps; + struct ehci_regs *regs; + struct ehci_dbg_port *debug; + __u32 hcs_params; + spinlock_t lock; + enum ehci_rh_state rh_state; + bool scanning: 1; + bool need_rescan: 1; + bool intr_unlinking: 1; + bool iaa_in_progress: 1; + bool async_unlinking: 1; + bool shutdown: 1; + struct ehci_qh *qh_scan_next; + struct ehci_qh *async; + struct ehci_qh *dummy; + struct list_head async_unlink; + struct list_head async_idle; + unsigned int async_unlink_cycle; + unsigned int async_count; + __le32 old_current; + __le32 old_token; + unsigned int periodic_size; + __le32 *periodic; + dma_addr_t periodic_dma; + struct list_head intr_qh_list; + unsigned int i_thresh; + union ehci_shadow *pshadow; + struct list_head intr_unlink_wait; + struct list_head intr_unlink; + unsigned int intr_unlink_wait_cycle; + unsigned int intr_unlink_cycle; + unsigned int now_frame; + unsigned int last_iso_frame; + unsigned int intr_count; + unsigned int isoc_count; + unsigned int periodic_count; + unsigned int uframe_periodic_max; + struct list_head cached_itd_list; + struct ehci_itd *last_itd_to_free; + struct list_head cached_sitd_list; + struct ehci_sitd *last_sitd_to_free; + unsigned long reset_done[15]; + unsigned long bus_suspended; + unsigned long companion_ports; + unsigned long owned_ports; + unsigned long port_c_suspend; + unsigned long suspended_ports; + unsigned long resuming_ports; + struct dma_pool *qh_pool; + struct dma_pool *qtd_pool; + struct dma_pool *itd_pool; + struct dma_pool *sitd_pool; + unsigned int random_frame; + unsigned long next_statechange; + ktime_t last_periodic_enable; + u32 command; + unsigned int no_selective_suspend: 1; + unsigned int has_fsl_port_bug: 1; + unsigned int has_fsl_hs_errata: 1; + unsigned int has_fsl_susp_errata: 1; + unsigned int has_ci_pec_bug: 1; + unsigned int big_endian_mmio: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_capbase: 1; + unsigned int has_amcc_usb23: 1; + unsigned int need_io_watchdog: 1; + unsigned int amd_pll_fix: 1; + unsigned int use_dummy_qh: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int frame_index_bug: 1; + unsigned int need_oc_pp_cycle: 1; + unsigned int imx28_write_fix: 1; + unsigned int spurious_oc: 1; + unsigned int is_aspeed: 1; + unsigned int zx_wakeup_clear_needed: 1; + __le32 *ohci_hcctrl_reg; + unsigned int has_hostpc: 1; + unsigned int has_tdi_phy_lpm: 1; + unsigned int has_ppcd: 1; + u8 sbrn; + u8 bandwidth[64]; + u8 tt_budget[64]; + struct list_head tt_list; + unsigned long priv[0]; }; -struct qm_portal_config { - void *addr_virt_ce; - void *addr_virt_ci; - struct device *dev; - struct iommu_domain *iommu_domain; - struct list_head list; - int cpu; - int irq; - u16 channel; - u32 pools; +struct ehci_caps { + u32 hc_capbase; + u32 hcs_params; + u32 hcc_params; + u8 portroute[8]; }; -struct __qm_mcr_querycongestion { - u32 state[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 qman_cgrs { - struct __qm_mcr_querycongestion q; +struct ehci_dbg_port { + u32 control; + u32 pids; + u32 data03; + u32 data47; + u32 address; }; -struct rpmhpd; +struct ehci_fstn; -struct rpmhpd_desc { - struct rpmhpd **rpmhpds; - size_t num_pds; +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 rpmhpd { - struct device *dev; - struct generic_pm_domain pd; - struct generic_pm_domain *parent; - struct rpmhpd *peer; - const bool active_only; - unsigned int corner; - unsigned int active_corner; - unsigned int enable_corner; - u32 level[16]; - size_t level_count; - bool enabled; - const char *res_name; - u32 addr; - bool state_synced; +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; }; -enum cmd_db_hw_type { - CMD_DB_HW_INVALID = 0, - CMD_DB_HW_MIN = 3, - CMD_DB_HW_ARC = 3, - CMD_DB_HW_VRM = 4, - CMD_DB_HW_BCM = 5, - CMD_DB_HW_MAX = 5, - CMD_DB_HW_ALL = 255, -}; +struct ehci_qh_hw; -enum rpmh_state { - RPMH_SLEEP_STATE = 0, - RPMH_WAKE_ONLY_STATE = 1, - RPMH_ACTIVE_ONLY_STATE = 2, -}; +struct ehci_qtd; -struct tcs_cmd { - u32 addr; - u32 data; - u32 wait; +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; }; -enum zynqmp_pm_request_ack { - ZYNQMP_PM_REQUEST_ACK_NO = 1, - ZYNQMP_PM_REQUEST_ACK_BLOCKING = 2, - ZYNQMP_PM_REQUEST_ACK_NON_BLOCKING = 3, +struct ehci_qh_hw { + __le32 hw_next; + __le32 hw_info1; + __le32 hw_info2; + __le32 hw_current; + __le32 hw_qtd_next; + __le32 hw_alt_next; + __le32 hw_token; + __le32 hw_buf[5]; + __le32 hw_buf_hi[5]; + long: 64; + long: 64; + long: 64; }; -struct zynqmp_pm_domain { - struct generic_pm_domain gpd; - u32 node_id; - bool requested; -}; +struct ehci_iso_stream; -struct max77620_regulator_info { - u8 type; - u8 fps_addr; - u8 volt_addr; - u8 cfg_addr; - u8 power_mode_mask; - u8 power_mode_shift; - u8 remote_sense_addr; - u8 remote_sense_mask; - struct regulator_desc desc; +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; }; -enum max77620_chip_id { - MAX77620 = 0, - MAX20024 = 1, - MAX77663 = 2, +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; }; -enum max77620_regulators { - MAX77620_REGULATOR_ID_SD0 = 0, - MAX77620_REGULATOR_ID_SD1 = 1, - MAX77620_REGULATOR_ID_SD2 = 2, - MAX77620_REGULATOR_ID_SD3 = 3, - MAX77620_REGULATOR_ID_SD4 = 4, - MAX77620_REGULATOR_ID_LDO0 = 5, - MAX77620_REGULATOR_ID_LDO1 = 6, - MAX77620_REGULATOR_ID_LDO2 = 7, - MAX77620_REGULATOR_ID_LDO3 = 8, - MAX77620_REGULATOR_ID_LDO4 = 9, - MAX77620_REGULATOR_ID_LDO5 = 10, - MAX77620_REGULATOR_ID_LDO6 = 11, - MAX77620_REGULATOR_ID_LDO7 = 12, - MAX77620_REGULATOR_ID_LDO8 = 13, - MAX77620_NUM_REGS = 14, +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; }; -enum max77620_fps_src { - MAX77620_FPS_SRC_0 = 0, - MAX77620_FPS_SRC_1 = 1, - MAX77620_FPS_SRC_2 = 2, - MAX77620_FPS_SRC_NONE = 3, - MAX77620_FPS_SRC_DEF = 4, +struct ehci_fstn { + __le32 hw_next; + __le32 hw_prev; + dma_addr_t fstn_dma; + union ehci_shadow fstn_next; + long: 64; }; -enum max77620_regulator_type { - MAX77620_REGULATOR_TYPE_SD = 0, - MAX77620_REGULATOR_TYPE_LDO_N = 1, - MAX77620_REGULATOR_TYPE_LDO_P = 2, +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 max77620_regulator_pdata { - int active_fps_src; - int active_fps_pd_slot; - int active_fps_pu_slot; - int suspend_fps_src; - int suspend_fps_pd_slot; - int suspend_fps_pu_slot; - int current_mode; - int power_ok; - int ramp_rate_setting; +struct orion_ehci_data { + enum orion_ehci_phy_ver phy_version; }; -struct max77620_regulator { - struct device *dev; - struct regmap *rmap; - struct max77620_regulator_info *rinfo[14]; - struct max77620_regulator_pdata reg_pdata[14]; - int enable_power_mode[14]; - int current_power_mode[14]; - int active_fps_src[14]; +struct mbus_dram_window { + u8 cs_index; + u8 mbus_attr; + u64 base; + u64 size; }; -struct max77620_chip { - struct device *dev; - struct regmap *rmap; - int chip_irq; - enum max77620_chip_id chip_id; - bool sleep_enable; - bool enable_global_lpm; - int shutdown_fps_period[3]; - int suspend_fps_period[3]; - struct regmap_irq_chip_data *top_irq_data; - struct regmap_irq_chip_data *gpio_irq_data; +struct mbus_dram_target_info { + u8 mbus_dram_target_id; + int num_cs; + struct mbus_dram_window cs[4]; }; -struct ti_sci_handle; +typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *); -struct ti_sci_reset_data { - struct reset_controller_dev rcdev; - struct device *dev; - const struct ti_sci_handle *sci; - struct idr idr; -}; +typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *); -struct ti_sci_version_info { - u8 abi_major; - u8 abi_minor; - u16 firmware_revision; - char firmware_description[32]; -}; +typedef void (*btf_trace_xhci_dbg_quirks)(void *, struct va_format *); -struct ti_sci_core_ops { - int (*reboot_device)(const struct ti_sci_handle *); -}; +typedef void (*btf_trace_xhci_dbg_reset_ep)(void *, struct va_format *); -struct ti_sci_dev_ops { - int (*get_device)(const struct ti_sci_handle *, u32); - int (*get_device_exclusive)(const struct ti_sci_handle *, u32); - int (*idle_device)(const struct ti_sci_handle *, u32); - int (*idle_device_exclusive)(const struct ti_sci_handle *, u32); - int (*put_device)(const struct ti_sci_handle *, u32); - int (*is_valid)(const struct ti_sci_handle *, u32); - int (*get_context_loss_count)(const struct ti_sci_handle *, u32, u32 *); - int (*is_idle)(const struct ti_sci_handle *, u32, bool *); - int (*is_stop)(const struct ti_sci_handle *, u32, bool *, bool *); - int (*is_on)(const struct ti_sci_handle *, u32, bool *, bool *); - int (*is_transitioning)(const struct ti_sci_handle *, u32, bool *); - int (*set_device_resets)(const struct ti_sci_handle *, u32, u32); - int (*get_device_resets)(const struct ti_sci_handle *, u32, u32 *); -}; +typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *); -struct ti_sci_clk_ops { - int (*get_clock)(const struct ti_sci_handle *, u32, u32, bool, bool, bool); - int (*idle_clock)(const struct ti_sci_handle *, u32, u32); - int (*put_clock)(const struct ti_sci_handle *, u32, u32); - int (*is_auto)(const struct ti_sci_handle *, u32, u32, bool *); - int (*is_on)(const struct ti_sci_handle *, u32, u32, bool *, bool *); - int (*is_off)(const struct ti_sci_handle *, u32, u32, bool *, bool *); - int (*set_parent)(const struct ti_sci_handle *, u32, u32, u32); - int (*get_parent)(const struct ti_sci_handle *, u32, u32, u32 *); - int (*get_num_parents)(const struct ti_sci_handle *, u32, u32, u32 *); - int (*get_best_match_freq)(const struct ti_sci_handle *, u32, u32, u64, u64, u64, u64 *); - int (*set_freq)(const struct ti_sci_handle *, u32, u32, u64, u64, u64); - int (*get_freq)(const struct ti_sci_handle *, u32, u32, u64 *); -}; - -struct ti_sci_resource_desc; +typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *); -struct ti_sci_rm_core_ops { - int (*get_range)(const struct ti_sci_handle *, u32, u8, struct ti_sci_resource_desc *); - int (*get_range_from_shost)(const struct ti_sci_handle *, u32, u8, u8, struct ti_sci_resource_desc *); -}; +typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *); -struct ti_sci_rm_irq_ops { - int (*set_irq)(const struct ti_sci_handle *, u16, u16, u16, u16); - int (*set_event_map)(const struct ti_sci_handle *, u16, u16, u16, u16, u16, u8); - int (*free_irq)(const struct ti_sci_handle *, u16, u16, u16, u16); - int (*free_event_map)(const struct ti_sci_handle *, u16, u16, u16, u16, u16, u8); -}; +typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); -struct ti_sci_msg_rm_ring_cfg; +typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); -struct ti_sci_rm_ringacc_ops { - int (*set_cfg)(const struct ti_sci_handle *, const struct ti_sci_msg_rm_ring_cfg *); -}; +typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *); -struct ti_sci_rm_psil_ops { - int (*pair)(const struct ti_sci_handle *, u32, u32, u32); - int (*unpair)(const struct ti_sci_handle *, u32, u32, u32); -}; +typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); -struct ti_sci_msg_rm_udmap_tx_ch_cfg; +typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *); -struct ti_sci_msg_rm_udmap_rx_ch_cfg; +typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); -struct ti_sci_msg_rm_udmap_flow_cfg; +typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); -struct ti_sci_rm_udmap_ops { - int (*tx_ch_cfg)(const struct ti_sci_handle *, const struct ti_sci_msg_rm_udmap_tx_ch_cfg *); - int (*rx_ch_cfg)(const struct ti_sci_handle *, const struct ti_sci_msg_rm_udmap_rx_ch_cfg *); - int (*rx_flow_cfg)(const struct ti_sci_handle *, const struct ti_sci_msg_rm_udmap_flow_cfg *); -}; +typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *); -struct ti_sci_proc_ops { - int (*request)(const struct ti_sci_handle *, u8); - int (*release)(const struct ti_sci_handle *, u8); - int (*handover)(const struct ti_sci_handle *, u8, u8); - int (*set_config)(const struct ti_sci_handle *, u8, u64, u32, u32); - int (*set_control)(const struct ti_sci_handle *, u8, u32, u32); - int (*get_status)(const struct ti_sci_handle *, u8, u64 *, u32 *, u32 *, u32 *); -}; +typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); -struct ti_sci_ops { - struct ti_sci_core_ops core_ops; - struct ti_sci_dev_ops dev_ops; - struct ti_sci_clk_ops clk_ops; - struct ti_sci_rm_core_ops rm_core_ops; - struct ti_sci_rm_irq_ops rm_irq_ops; - struct ti_sci_rm_ringacc_ops rm_ring_ops; - struct ti_sci_rm_psil_ops rm_psil_ops; - struct ti_sci_rm_udmap_ops rm_udmap_ops; - struct ti_sci_proc_ops proc_ops; -}; +typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); -struct ti_sci_handle { - struct ti_sci_version_info version; - struct ti_sci_ops ops; -}; +typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *); -struct ti_sci_resource_desc { - u16 start; - u16 num; - u16 start_sec; - u16 num_sec; - unsigned long *res_map; -}; +typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *); -struct ti_sci_msg_rm_ring_cfg { - u32 valid_params; - u16 nav_id; - u16 index; - u32 addr_lo; - u32 addr_hi; - u32 count; - u8 mode; - u8 size; - u8 order_id; - u16 virtid; - u8 asel; -}; +typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); -struct ti_sci_msg_rm_udmap_tx_ch_cfg { - u32 valid_params; - u16 nav_id; - u16 index; - u8 tx_pause_on_err; - u8 tx_filt_einfo; - u8 tx_filt_pswords; - u8 tx_atype; - u8 tx_chan_type; - u8 tx_supr_tdpkt; - u16 tx_fetch_size; - u8 tx_credit_count; - u16 txcq_qnum; - u8 tx_priority; - u8 tx_qos; - u8 tx_orderid; - u16 fdepth; - u8 tx_sched_priority; - u8 tx_burst_size; - u8 tx_tdtype; - u8 extended_ch_type; -}; +typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); -struct ti_sci_msg_rm_udmap_rx_ch_cfg { - u32 valid_params; - u16 nav_id; - u16 index; - u16 rx_fetch_size; - u16 rxcq_qnum; - u8 rx_priority; - u8 rx_qos; - u8 rx_orderid; - u8 rx_sched_priority; - u16 flowid_start; - u16 flowid_cnt; - u8 rx_pause_on_err; - u8 rx_atype; - u8 rx_chan_type; - u8 rx_ignore_short; - u8 rx_ignore_long; - u8 rx_burst_size; -}; +typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); -struct ti_sci_msg_rm_udmap_flow_cfg { - u32 valid_params; - u16 nav_id; - u16 flow_index; - u8 rx_einfo_present; - u8 rx_psinfo_present; - u8 rx_error_handling; - u8 rx_desc_type; - u16 rx_sop_offset; - u16 rx_dest_qnum; - u8 rx_src_tag_hi; - u8 rx_src_tag_lo; - u8 rx_dest_tag_hi; - u8 rx_dest_tag_lo; - u8 rx_src_tag_hi_sel; - u8 rx_src_tag_lo_sel; - u8 rx_dest_tag_hi_sel; - u8 rx_dest_tag_lo_sel; - u16 rx_fdq0_sz0_qnum; - u16 rx_fdq1_qnum; - u16 rx_fdq2_qnum; - u16 rx_fdq3_qnum; - u8 rx_ps_location; -}; +typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); -struct ti_sci_reset_control { - u32 dev_id; - u32 reset_mask; - struct mutex lock; -}; +typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); -enum mctrl_gpio_idx { - UART_GPIO_CTS = 0, - UART_GPIO_DSR = 1, - UART_GPIO_DCD = 2, - UART_GPIO_RNG = 3, - UART_GPIO_RI = 3, - UART_GPIO_RTS = 4, - UART_GPIO_DTR = 5, - UART_GPIO_MAX = 6, -}; +typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); -struct mctrl_gpios { - struct uart_port *port; - struct gpio_desc *gpio[6]; - int irq[6]; - unsigned int mctrl_prev; - bool mctrl_on; -}; +typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *); -struct cn10k_rng { - void *reg_base; - struct hwrng ops; - struct pci_dev *pdev; - bool extended_trng_regs; -}; +typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); -struct component_master_ops { - int (*bind)(struct device *); - void (*unbind)(struct device *); -}; +typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); -enum mtk_iommu_plat { - M4U_MT2712 = 0, - M4U_MT6779 = 1, - M4U_MT6795 = 2, - M4U_MT8167 = 3, - M4U_MT8173 = 4, - M4U_MT8183 = 5, - M4U_MT8186 = 6, - M4U_MT8192 = 7, - M4U_MT8195 = 8, - M4U_MT8365 = 9, -}; +typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); -struct mtk_iommu_iova_region; +typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); -struct mtk_iommu_plat_data { - enum mtk_iommu_plat m4u_plat; - u32 flags; - u32 inv_sel_reg; - char *pericfg_comp_str; - struct list_head *hw_list; - struct { - unsigned int iova_region_nr; - const struct mtk_iommu_iova_region *iova_region; - const u32 (*iova_region_larb_msk)[32]; - }; - struct { - u8 banks_num; - bool banks_enable[5]; - unsigned int banks_portmsk[5]; - }; - unsigned char larbid_remap[64]; -}; +typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *); -struct mtk_iommu_iova_region { - dma_addr_t iova_base; - unsigned long long size; -}; +typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); -struct mtk_iommu_suspend_reg { - u32 misc_ctrl; - u32 dcm_dis; - u32 ctrl_reg; - u32 vld_pa_rng; - u32 wr_len_ctrl; - u32 int_control[5]; - u32 int_main_control[5]; - u32 ivrp_paddr[5]; -}; +typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *); -struct mtk_smi_larb_iommu { - struct device *dev; - unsigned int mmu; - unsigned char bank[32]; -}; +typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); -struct mtk_iommu_bank_data; +typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *); -struct mtk_iommu_data { - struct device *dev; - struct clk *bclk; - phys_addr_t protect_base; - struct mtk_iommu_suspend_reg reg; - struct iommu_group *m4u_group[8]; - bool enable_4GB; - struct iommu_device iommu; - const struct mtk_iommu_plat_data *plat_data; - struct device *smicomm_dev; - struct mtk_iommu_bank_data *bank; - struct regmap *pericfg; - struct mutex mutex; - struct list_head *hw_list; - struct list_head hw_list_head; - struct list_head list; - struct mtk_smi_larb_iommu larb_imu[32]; -}; +typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); -struct mtk_iommu_domain; +typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); -struct mtk_iommu_bank_data { - void *base; - int irq; - u8 id; - struct device *parent_dev; - struct mtk_iommu_data *parent_data; - spinlock_t tlb_lock; - struct mtk_iommu_domain *m4u_dom; -}; +typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); -struct mtk_iommu_domain { - struct io_pgtable_cfg cfg; - struct io_pgtable_ops *iop; - struct mtk_iommu_bank_data *bank; - struct iommu_domain domain; - struct mutex mutex; -}; +typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); -struct node { - struct device dev; - struct list_head access_list; - struct list_head cache_attrs; - struct device *cache_dev; -}; +typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); -struct node_attr { - struct device_attribute attr; - enum node_states state; -}; +typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); -enum cache_indexing { - NODE_CACHE_DIRECT_MAP = 0, - NODE_CACHE_INDEXED = 1, - NODE_CACHE_OTHER = 2, -}; +typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); -enum cache_write_policy { - NODE_CACHE_WRITE_BACK = 0, - NODE_CACHE_WRITE_THROUGH = 1, - NODE_CACHE_WRITE_OTHER = 2, -}; +typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); -enum meminit_context { - MEMINIT_EARLY = 0, - MEMINIT_HOTPLUG = 1, -}; +typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); -enum numa_stat_item { - NUMA_HIT = 0, - NUMA_MISS = 1, - NUMA_FOREIGN = 2, - NUMA_INTERLEAVE_HIT = 3, - NUMA_LOCAL = 4, - NUMA_OTHER = 5, - NR_VM_NUMA_EVENT_ITEMS = 6, -}; +typedef void (*btf_trace_xhci_handle_port_status)(void *, struct xhci_port *, u32); -struct node_cache_attrs { - enum cache_indexing indexing; - enum cache_write_policy write_policy; - u64 size; - u16 line_size; - u8 level; -}; +typedef void (*btf_trace_xhci_get_port_status)(void *, struct xhci_port *, u32); -struct node_cache_info { - struct device dev; - struct list_head node; - struct node_cache_attrs cache_attrs; -}; +typedef void (*btf_trace_xhci_hub_status_data)(void *, struct xhci_port *, u32); -struct node_hmem_attrs { - unsigned int read_bandwidth; - unsigned int write_bandwidth; - unsigned int read_latency; - unsigned int write_latency; -}; +typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32); -struct node_access_nodes { - struct device dev; - struct list_head list_node; - unsigned int access; - struct node_hmem_attrs hmem_attrs; -}; +typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); -struct memory_block; +struct dbc_request; -typedef int (*walk_memory_blocks_func_t)(struct memory_block *, void *); +typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); -struct memory_group; +struct xhci_dbc; -struct memory_block { - unsigned long start_section_nr; - unsigned long state; - int online_type; - int nid; - struct zone *zone; - struct device dev; - unsigned long nr_vmemmap_pages; - struct memory_group *group; - struct list_head group_next; - atomic_long_t nr_hwpoison; +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; }; -struct memory_group { - int nid; - struct list_head memory_blocks; - unsigned long present_kernel_pages; - unsigned long present_movable_pages; - bool is_dynamic; - union { - struct { - unsigned long max_pages; - } s; - struct { - unsigned long unit_pages; - } d; - }; +enum dbc_state { + DS_DISABLED = 0, + DS_INITIALIZED = 1, + DS_ENABLED = 2, + DS_CONNECTED = 3, + DS_CONFIGURED = 4, + DS_STALLED = 5, }; -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 dbc_ep { + struct xhci_dbc *dbc; + struct list_head list_pending; + struct xhci_ring *ring; + unsigned int direction: 1; }; -struct regmap_irq_sub_irq_map; +struct dbc_regs; -struct regmap_irq; +struct dbc_str_descs; -struct regmap_irq_chip { - const char *name; - unsigned int main_status; - unsigned int num_main_status_bits; - struct regmap_irq_sub_irq_map *sub_reg_offsets; - int num_main_regs; - unsigned int status_base; - unsigned int mask_base; - unsigned int unmask_base; - unsigned int ack_base; - unsigned int wake_base; - const unsigned int *config_base; - unsigned int irq_reg_stride; - unsigned int init_ack_masked: 1; - unsigned int mask_unmask_non_inverted: 1; - unsigned int use_ack: 1; - unsigned int ack_invert: 1; - unsigned int clear_ack: 1; - unsigned int status_invert: 1; - unsigned int wake_invert: 1; - unsigned int type_in_mask: 1; - unsigned int clear_on_unmask: 1; - unsigned int runtime_pm: 1; - unsigned int no_status: 1; - int num_regs; - const struct regmap_irq *irqs; - int num_irqs; - int num_config_bases; - int num_config_regs; - int (*handle_pre_irq)(void *); - int (*handle_post_irq)(void *); - int (*handle_mask_sync)(int, unsigned int, unsigned int, void *); - int (*set_type_config)(unsigned int **, unsigned int, const struct regmap_irq *, int, void *); - unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int); - void *irq_drv_data; -}; +struct dbc_driver; -struct regmap_irq_sub_irq_map { - unsigned int num_regs; - unsigned int *offset; +struct xhci_dbc { + spinlock_t lock; + struct device *dev; + struct xhci_hcd *xhci; + struct dbc_regs *regs; + struct xhci_ring *ring_evt; + struct xhci_ring *ring_in; + struct xhci_ring *ring_out; + struct xhci_erst erst; + struct xhci_container_ctx *ctx; + struct dbc_str_descs *string; + dma_addr_t string_dma; + size_t string_size; + u16 idVendor; + u16 idProduct; + u16 bcdDevice; + u8 bInterfaceProtocol; + enum dbc_state state; + struct delayed_work event_work; + unsigned int resume_required: 1; + struct dbc_ep eps[2]; + const struct dbc_driver *driver; + void *priv; }; -struct regmap_irq_type { - unsigned int type_reg_offset; - unsigned int type_reg_mask; - unsigned int type_rising_val; - unsigned int type_falling_val; - unsigned int type_level_low_val; - unsigned int type_level_high_val; - unsigned int types_supported; +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 regmap_irq { - unsigned int reg_offset; - unsigned int mask; - struct regmap_irq_type type; +struct dbc_str_descs { + char string0[64]; + char manufacturer[64]; + char product[64]; + char serial[64]; }; -enum scsi_devinfo_key { - SCSI_DEVINFO_GLOBAL = 0, - SCSI_DEVINFO_SPI = 1, +struct dbc_driver { + int (*configure)(struct xhci_dbc *); + void (*disconnect)(struct xhci_dbc *); }; -struct scsi_dev_info_list { - struct list_head dev_info_list; - char vendor[8]; - char model[16]; - blist_flags_t flags; - unsigned int compatible; -}; +typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *); -struct scsi_dev_info_list_table { - struct list_head node; - struct list_head scsi_dev_info_list; - const char *name; - int key; -}; +typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *); -enum hsm_task_states { - HSM_ST_IDLE = 0, - HSM_ST_FIRST = 1, - HSM_ST = 2, - HSM_ST_LAST = 3, - HSM_ST_ERR = 4, -}; +typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *); -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 trace_event_raw_xhci_log_msg { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -struct nand_onfi_params; - -struct nand_manufacturer_ops { - void (*detect)(struct nand_chip *); - int (*init)(struct nand_chip *); - void (*cleanup)(struct nand_chip *); - void (*fixup_onfi_param_page)(struct nand_chip *, struct nand_onfi_params *); +struct trace_event_raw_xhci_log_ctx { + struct trace_entry ent; + int ctx_64; + unsigned int ctx_type; + dma_addr_t ctx_dma; + u8 *ctx_va; + unsigned int ctx_ep_num; + u32 __data_loc_ctx_data; + char __data[0]; }; -struct nand_onfi_params { - u8 sig[4]; - __le16 revision; - __le16 features; - __le16 opt_cmd; - u8 reserved0[2]; - __le16 ext_param_page_length; - u8 num_of_param_pages; - u8 reserved1[17]; - char manufacturer[12]; - char model[20]; - u8 jedec_id; - __le16 date_code; - u8 reserved2[13]; - __le32 byte_per_page; - __le16 spare_bytes_per_page; - __le32 data_bytes_per_ppage; - __le16 spare_bytes_per_ppage; - __le32 pages_per_block; - __le32 blocks_per_lun; - u8 lun_count; - u8 addr_cycles; - u8 bits_per_cell; - __le16 bb_per_lun; - __le16 block_endurance; - u8 guaranteed_good_blocks; - __le16 guaranteed_block_endurance; - u8 programs_per_page; - u8 ppage_attr; - u8 ecc_bits; - u8 interleaved_bits; - u8 interleaved_ops; - u8 reserved3[13]; - u8 io_pin_capacitance_max; - __le16 sdr_timing_modes; - __le16 program_cache_timing_mode; - __le16 t_prog; - __le16 t_bers; - __le16 t_r; - __le16 t_ccs; - u8 nvddr_timing_modes; - u8 nvddr2_timing_modes; - u8 nvddr_nvddr2_features; - __le16 clk_pin_capacitance_typ; - __le16 io_pin_capacitance_typ; - __le16 input_pin_capacitance_typ; - u8 input_pin_capacitance_max; - u8 driver_strength_support; - __le16 t_int_r; - __le16 t_adl; - u8 reserved4[8]; - __le16 vendor_revision; - u8 vendor[88]; - __le16 crc; -} __attribute__((packed)); - -enum spi_nor_option_flags { - SNOR_F_HAS_SR_TB = 1, - SNOR_F_NO_OP_CHIP_ERASE = 2, - SNOR_F_BROKEN_RESET = 4, - SNOR_F_4B_OPCODES = 8, - SNOR_F_HAS_4BAIT = 16, - SNOR_F_HAS_LOCK = 32, - SNOR_F_HAS_16BIT_SR = 64, - SNOR_F_NO_READ_CR = 128, - SNOR_F_HAS_SR_TB_BIT6 = 256, - SNOR_F_HAS_4BIT_BP = 512, - SNOR_F_HAS_SR_BP3_BIT6 = 1024, - SNOR_F_IO_MODE_EN_VOLATILE = 2048, - SNOR_F_SOFT_RESET = 4096, - SNOR_F_SWP_IS_VOLATILE = 8192, - SNOR_F_RWW = 16384, - SNOR_F_ECC = 32768, +struct trace_event_raw_xhci_log_trb { + struct trace_entry ent; + u32 type; + u32 field0; + u32 field1; + u32 field2; + u32 field3; + char __data[0]; }; -struct fixed_mdio_bus { - struct mii_bus *mii_bus; - struct list_head phys; +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 fixed_phy_status { - int link; +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; - int duplex; - int pause; - int asym_pause; + u8 portnum; + u8 level; + int slot_id; + char __data[0]; }; -struct fixed_phy { - int addr; - struct phy_device *phydev; - struct fixed_phy_status status; - bool no_carrier; - int (*link_update)(struct net_device *, struct fixed_phy_status *); - struct list_head node; - struct gpio_desc *link_gpiod; +struct 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 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 trace_event_raw_xhci_log_ep_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u64 deq; + u32 tx_info; + char __data[0]; }; -enum xgene_phy_speed { - PHY_SPEED_10 = 0, - PHY_SPEED_100 = 1, - PHY_SPEED_1000 = 2, +struct trace_event_raw_xhci_log_slot_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u32 tt_info; + u32 state; + char __data[0]; }; -enum xgene_enet_ring_bufnum { - RING_BUFNUM_REGULAR = 0, - RING_BUFNUM_BUFPOOL = 32, - RING_BUFNUM_INVALID = 33, +struct trace_event_raw_xhci_log_ctrl_ctx { + struct trace_entry ent; + u32 drop; + u32 add; + char __data[0]; }; -struct tgs_gcl_conf { - u8 atc; - u8 res[7]; - struct { - u8 res1[4]; - __le16 acl_len; - u8 res2[2]; - }; +struct trace_event_raw_xhci_log_ring { + struct trace_entry ent; + u32 type; + void *ring; + dma_addr_t enq; + dma_addr_t deq; + dma_addr_t enq_seg; + dma_addr_t deq_seg; + unsigned int num_segs; + unsigned int stream_id; + unsigned int cycle_state; + unsigned int bounce_buf_len; + char __data[0]; }; -struct streamid_conf { - __le32 stream_handle; - __le32 iports; - u8 id_type; - u8 oui[3]; - u8 res[3]; - u8 en; +struct trace_event_raw_xhci_log_portsc { + struct trace_entry ent; + u32 busnum; + u32 portnum; + u32 portsc; + char __data[0]; }; -struct sgcl_conf { - u8 aipv; - u8 res[2]; - u8 agtst; - u8 res1[4]; - union { - struct { - u8 res2[4]; - u8 acl_len; - u8 res3[3]; - }; - u8 cct[8]; - }; +struct trace_event_raw_xhci_log_doorbell { + struct trace_entry ent; + u32 slot; + u32 doorbell; + char __data[0]; }; -struct sfi_conf { - __le32 stream_handle; - u8 multi; - u8 res[2]; - u8 sthm; - __le16 fm_inst_table_index; - __le16 msdu; - __le16 sg_inst_table_index; - u8 res1[2]; - __le32 input_ports; - u8 res2[3]; - u8 en; +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 sgi_table { - u8 res[8]; - u8 oipv; - u8 res0[2]; - u8 ocgtst; - u8 res1[7]; - u8 gset; - u8 oacl_len; - u8 res2[2]; - u8 en; +struct trace_event_data_offsets_xhci_log_msg { + u32 msg; }; -struct fmi_conf { - __le32 cir; - __le32 cbs; - __le32 eir; - __le32 ebs; - u8 conf; - u8 res1; - u8 ir_fpp; - u8 res2[4]; - u8 en; +struct trace_event_data_offsets_xhci_log_ctx { + u32 ctx_data; }; -struct enetc_cbd { - union { - struct sfi_conf sfi_conf; - struct sgi_table sgi_table; - struct fmi_conf fmi_conf; - struct { - __le32 addr[2]; - union { - __le32 opt[4]; - struct tgs_gcl_conf gcl_conf; - struct streamid_conf sid_set; - struct sgcl_conf sgcl_conf; - }; - }; - __le32 data[6]; - }; - __le16 index; - __le16 length; - u8 cmd; - u8 cls; - u8 _res; - u8 status_flags; -}; +struct trace_event_data_offsets_xhci_log_trb {}; -struct enetc_cmd_rfse { - u8 smac_h[6]; - u8 smac_m[6]; - u8 dmac_h[6]; - u8 dmac_m[6]; - __be32 sip_h[4]; - __be32 sip_m[4]; - __be32 dip_h[4]; - __be32 dip_m[4]; - u16 ethtype_h; - u16 ethtype_m; - u16 ethtype4_h; - u16 ethtype4_m; - u16 sport_h; - u16 sport_m; - u16 dport_h; - u16 dport_m; - u16 vlan_h; - u16 vlan_m; - u8 proto_h; - u8 proto_m; - u16 flags; - u16 result; - u16 mode; -}; +struct trace_event_data_offsets_xhci_log_free_virt_dev {}; -struct hclge_dbg_status_dfx_info { - u32 offset; - char message[60]; -}; +struct trace_event_data_offsets_xhci_log_virt_dev {}; -enum hnae3_dbg_cmd { - HNAE3_DBG_CMD_TM_NODES = 0, - HNAE3_DBG_CMD_TM_PRI = 1, - HNAE3_DBG_CMD_TM_QSET = 2, - HNAE3_DBG_CMD_TM_MAP = 3, - HNAE3_DBG_CMD_TM_PG = 4, - HNAE3_DBG_CMD_TM_PORT = 5, - HNAE3_DBG_CMD_TC_SCH_INFO = 6, - HNAE3_DBG_CMD_QOS_PAUSE_CFG = 7, - HNAE3_DBG_CMD_QOS_PRI_MAP = 8, - HNAE3_DBG_CMD_QOS_DSCP_MAP = 9, - HNAE3_DBG_CMD_QOS_BUF_CFG = 10, - HNAE3_DBG_CMD_DEV_INFO = 11, - HNAE3_DBG_CMD_TX_BD = 12, - HNAE3_DBG_CMD_RX_BD = 13, - HNAE3_DBG_CMD_MAC_UC = 14, - HNAE3_DBG_CMD_MAC_MC = 15, - HNAE3_DBG_CMD_MNG_TBL = 16, - HNAE3_DBG_CMD_LOOPBACK = 17, - HNAE3_DBG_CMD_PTP_INFO = 18, - HNAE3_DBG_CMD_INTERRUPT_INFO = 19, - HNAE3_DBG_CMD_RESET_INFO = 20, - HNAE3_DBG_CMD_IMP_INFO = 21, - HNAE3_DBG_CMD_NCL_CONFIG = 22, - HNAE3_DBG_CMD_REG_BIOS_COMMON = 23, - HNAE3_DBG_CMD_REG_SSU = 24, - HNAE3_DBG_CMD_REG_IGU_EGU = 25, - HNAE3_DBG_CMD_REG_RPU = 26, - HNAE3_DBG_CMD_REG_NCSI = 27, - HNAE3_DBG_CMD_REG_RTC = 28, - HNAE3_DBG_CMD_REG_PPP = 29, - HNAE3_DBG_CMD_REG_RCB = 30, - HNAE3_DBG_CMD_REG_TQP = 31, - HNAE3_DBG_CMD_REG_MAC = 32, - HNAE3_DBG_CMD_REG_DCB = 33, - HNAE3_DBG_CMD_VLAN_CONFIG = 34, - HNAE3_DBG_CMD_QUEUE_MAP = 35, - HNAE3_DBG_CMD_RX_QUEUE_INFO = 36, - HNAE3_DBG_CMD_TX_QUEUE_INFO = 37, - HNAE3_DBG_CMD_FD_TCAM = 38, - HNAE3_DBG_CMD_FD_COUNTER = 39, - HNAE3_DBG_CMD_MAC_TNL_STATUS = 40, - HNAE3_DBG_CMD_SERV_INFO = 41, - HNAE3_DBG_CMD_UMV_INFO = 42, - HNAE3_DBG_CMD_PAGE_POOL_INFO = 43, - HNAE3_DBG_CMD_COAL_INFO = 44, - HNAE3_DBG_CMD_UNKNOWN = 45, -}; +struct trace_event_data_offsets_xhci_log_urb {}; -struct hclge_dev; +struct trace_event_data_offsets_xhci_log_ep_ctx {}; -struct hclge_dbg_func { - enum hnae3_dbg_cmd cmd; - int (*dbg_dump)(struct hclge_dev *, char *, int); - int (*dbg_dump_reg)(struct hclge_dev *, enum hnae3_dbg_cmd, char *, int); -}; +struct trace_event_data_offsets_xhci_log_slot_ctx {}; -struct hclge_mac_tnl_stats { - u64 time; - u32 status; -}; +struct trace_event_data_offsets_xhci_log_ctrl_ctx {}; -struct hclge_desc; +struct trace_event_data_offsets_xhci_log_ring {}; -struct hclge_comm_cmq_ring { - dma_addr_t desc_dma_addr; - struct hclge_desc *desc; - struct pci_dev *pdev; - u32 head; - u32 tail; - u16 buf_size; - u16 desc_num; - int next_to_use; - int next_to_clean; - u8 ring_type; - spinlock_t lock; -}; +struct trace_event_data_offsets_xhci_log_portsc {}; -enum hclge_comm_cmd_status { - HCLGE_COMM_STATUS_SUCCESS = 0, - HCLGE_COMM_ERR_CSQ_FULL = -1, - HCLGE_COMM_ERR_CSQ_TIMEOUT = -2, - HCLGE_COMM_ERR_CSQ_ERROR = -3, -}; +struct trace_event_data_offsets_xhci_log_doorbell {}; -struct hclge_comm_cmq { - struct hclge_comm_cmq_ring csq; - struct hclge_comm_cmq_ring crq; - u16 tx_timeout; - enum hclge_comm_cmd_status last_status; -}; +struct trace_event_data_offsets_xhci_dbc_log_request {}; -struct hclge_comm_hw { - void *io_base; - void *mem_base; - struct hclge_comm_cmq cmq; - unsigned long comm_state; +enum usb_role { + USB_ROLE_NONE = 0, + USB_ROLE_HOST = 1, + USB_ROLE_DEVICE = 2, }; -struct hclge_wol_info { - u32 wol_support_mode; - u32 wol_current_mode; - u8 wol_sopass[6]; - u8 wol_sopass_size; -}; +typedef int (*usb_role_switch_set_t)(struct usb_role_switch *, enum usb_role); -struct hclge_mac { - u8 mac_id; - u8 phy_addr; - u8 flag; - u8 media_type; - u8 mac_addr[6]; - u8 autoneg; - u8 duplex; - u8 support_autoneg; - u8 speed_type; - u8 lane_num; - u32 speed; - u32 max_speed; - u32 speed_ability; - u32 module_type; - u32 fec_mode; - u32 user_fec_mode; - u32 fec_ability; - int link; - struct hclge_wol_info wol; - struct phy_device *phydev; - struct mii_bus *mdio_bus; - phy_interface_t phy_if; - unsigned long supported[2]; - unsigned long advertising[2]; +typedef enum usb_role (*usb_role_switch_get_t)(struct usb_role_switch *); + +struct usb_role_switch_desc { + struct fwnode_handle *fwnode; + struct device *usb2_port; + struct device *usb3_port; + struct device *udc; + usb_role_switch_set_t set; + usb_role_switch_get_t get; + bool allow_userspace_control; + void *driver_data; + const char *name; }; -struct hclge_hw { - struct hclge_comm_hw hw; - struct hclge_mac mac; - int num_vec; +enum ci_role { + CI_ROLE_HOST = 0, + CI_ROLE_GADGET = 1, + CI_ROLE_END = 2, }; -struct hclge_misc_vector { - u8 *addr; - int vector_irq; - char name[32]; +enum otg_fsm_timer { + A_WAIT_VRISE = 0, + A_WAIT_VFALL = 1, + A_WAIT_BCON = 2, + A_AIDL_BDIS = 3, + B_ASE0_BRST = 4, + A_BIDL_ADIS = 5, + B_AIDL_BDIS = 6, + B_SE0_SRP = 7, + B_SRP_FAIL = 8, + A_WAIT_ENUM = 9, + B_DATA_PLS = 10, + B_SSEND_SRP = 11, + NUM_OTG_FSM_TIMERS = 12, }; -struct hclge_mac_stats { - u64 mac_tx_mac_pause_num; - u64 mac_rx_mac_pause_num; - u64 rsv0; - u64 mac_tx_pfc_pri0_pkt_num; - u64 mac_tx_pfc_pri1_pkt_num; - u64 mac_tx_pfc_pri2_pkt_num; - u64 mac_tx_pfc_pri3_pkt_num; - u64 mac_tx_pfc_pri4_pkt_num; - u64 mac_tx_pfc_pri5_pkt_num; - u64 mac_tx_pfc_pri6_pkt_num; - u64 mac_tx_pfc_pri7_pkt_num; - u64 mac_rx_pfc_pri0_pkt_num; - u64 mac_rx_pfc_pri1_pkt_num; - u64 mac_rx_pfc_pri2_pkt_num; - u64 mac_rx_pfc_pri3_pkt_num; - u64 mac_rx_pfc_pri4_pkt_num; - u64 mac_rx_pfc_pri5_pkt_num; - u64 mac_rx_pfc_pri6_pkt_num; - u64 mac_rx_pfc_pri7_pkt_num; - u64 mac_tx_total_pkt_num; - u64 mac_tx_total_oct_num; - u64 mac_tx_good_pkt_num; - u64 mac_tx_bad_pkt_num; - u64 mac_tx_good_oct_num; - u64 mac_tx_bad_oct_num; - u64 mac_tx_uni_pkt_num; - u64 mac_tx_multi_pkt_num; - u64 mac_tx_broad_pkt_num; - u64 mac_tx_undersize_pkt_num; - u64 mac_tx_oversize_pkt_num; - u64 mac_tx_64_oct_pkt_num; - u64 mac_tx_65_127_oct_pkt_num; - u64 mac_tx_128_255_oct_pkt_num; - u64 mac_tx_256_511_oct_pkt_num; - u64 mac_tx_512_1023_oct_pkt_num; - u64 mac_tx_1024_1518_oct_pkt_num; - u64 mac_tx_1519_2047_oct_pkt_num; - u64 mac_tx_2048_4095_oct_pkt_num; - u64 mac_tx_4096_8191_oct_pkt_num; - u64 rsv1; - u64 mac_tx_8192_9216_oct_pkt_num; - u64 mac_tx_9217_12287_oct_pkt_num; - u64 mac_tx_12288_16383_oct_pkt_num; - u64 mac_tx_1519_max_good_oct_pkt_num; - u64 mac_tx_1519_max_bad_oct_pkt_num; - u64 mac_rx_total_pkt_num; - u64 mac_rx_total_oct_num; - u64 mac_rx_good_pkt_num; - u64 mac_rx_bad_pkt_num; - u64 mac_rx_good_oct_num; - u64 mac_rx_bad_oct_num; - u64 mac_rx_uni_pkt_num; - u64 mac_rx_multi_pkt_num; - u64 mac_rx_broad_pkt_num; - u64 mac_rx_undersize_pkt_num; - u64 mac_rx_oversize_pkt_num; - u64 mac_rx_64_oct_pkt_num; - u64 mac_rx_65_127_oct_pkt_num; - u64 mac_rx_128_255_oct_pkt_num; - u64 mac_rx_256_511_oct_pkt_num; - u64 mac_rx_512_1023_oct_pkt_num; - u64 mac_rx_1024_1518_oct_pkt_num; - u64 mac_rx_1519_2047_oct_pkt_num; - u64 mac_rx_2048_4095_oct_pkt_num; - u64 mac_rx_4096_8191_oct_pkt_num; - u64 rsv2; - u64 mac_rx_8192_9216_oct_pkt_num; - u64 mac_rx_9217_12287_oct_pkt_num; - u64 mac_rx_12288_16383_oct_pkt_num; - u64 mac_rx_1519_max_good_oct_pkt_num; - u64 mac_rx_1519_max_bad_oct_pkt_num; - u64 mac_tx_fragment_pkt_num; - u64 mac_tx_undermin_pkt_num; - u64 mac_tx_jabber_pkt_num; - u64 mac_tx_err_all_pkt_num; - u64 mac_tx_from_app_good_pkt_num; - u64 mac_tx_from_app_bad_pkt_num; - u64 mac_rx_fragment_pkt_num; - u64 mac_rx_undermin_pkt_num; - u64 mac_rx_jabber_pkt_num; - u64 mac_rx_fcs_err_pkt_num; - u64 mac_rx_send_app_good_pkt_num; - u64 mac_rx_send_app_bad_pkt_num; - u64 mac_tx_pfc_pause_pkt_num; - u64 mac_rx_pfc_pause_pkt_num; - u64 mac_tx_ctrl_pkt_num; - u64 mac_rx_ctrl_pkt_num; - u64 mac_tx_pfc_pri0_xoff_time; - u64 mac_tx_pfc_pri1_xoff_time; - u64 mac_tx_pfc_pri2_xoff_time; - u64 mac_tx_pfc_pri3_xoff_time; - u64 mac_tx_pfc_pri4_xoff_time; - u64 mac_tx_pfc_pri5_xoff_time; - u64 mac_tx_pfc_pri6_xoff_time; - u64 mac_tx_pfc_pri7_xoff_time; - u64 mac_rx_pfc_pri0_xoff_time; - u64 mac_rx_pfc_pri1_xoff_time; - u64 mac_rx_pfc_pri2_xoff_time; - u64 mac_rx_pfc_pri3_xoff_time; - u64 mac_rx_pfc_pri4_xoff_time; - u64 mac_rx_pfc_pri5_xoff_time; - u64 mac_rx_pfc_pri6_xoff_time; - u64 mac_rx_pfc_pri7_xoff_time; - u64 mac_tx_pause_xoff_time; - u64 mac_rx_pause_xoff_time; +enum ci_revision { + CI_REVISION_1X = 10, + CI_REVISION_20 = 20, + CI_REVISION_21 = 21, + CI_REVISION_22 = 22, + CI_REVISION_23 = 23, + CI_REVISION_24 = 24, + CI_REVISION_25 = 25, + CI_REVISION_25_PLUS = 26, + CI_REVISION_UNKNOWN = 99, }; -struct hclge_fec_stats { - u64 rs_corr_blocks; - u64 rs_uncorr_blocks; - u64 rs_error_blocks; - u64 base_r_lane_num; - u64 base_r_corr_blocks; - u64 base_r_uncorr_blocks; - union { - struct { - u64 base_r_corr_per_lanes[8]; - u64 base_r_uncorr_per_lanes[8]; - }; - u64 per_lanes[16]; - }; +enum ci_hw_regs { + CAP_CAPLENGTH = 0, + CAP_HCCPARAMS = 1, + CAP_DCCPARAMS = 2, + CAP_TESTMODE = 3, + CAP_LAST = 3, + OP_USBCMD = 4, + OP_USBSTS = 5, + OP_USBINTR = 6, + OP_FRINDEX = 7, + OP_DEVICEADDR = 8, + OP_ENDPTLISTADDR = 9, + OP_TTCTRL = 10, + OP_BURSTSIZE = 11, + OP_ULPI_VIEWPORT = 12, + OP_PORTSC = 13, + OP_DEVLC = 14, + OP_OTGSC = 15, + OP_USBMODE = 16, + OP_ENDPTSETUPSTAT = 17, + OP_ENDPTPRIME = 18, + OP_ENDPTFLUSH = 19, + OP_ENDPTSTAT = 20, + OP_ENDPTCOMPLETE = 21, + OP_ENDPTCTRL = 22, + OP_LAST = 38, }; -enum hnae3_reset_type { - HNAE3_VF_RESET = 0, - HNAE3_VF_FUNC_RESET = 1, - HNAE3_VF_PF_FUNC_RESET = 2, - HNAE3_VF_FULL_RESET = 3, - HNAE3_FLR_RESET = 4, - HNAE3_FUNC_RESET = 5, - HNAE3_GLOBAL_RESET = 6, - HNAE3_IMP_RESET = 7, - HNAE3_NONE_RESET = 8, - HNAE3_MAX_RESET = 9, +struct ci_hdrc; + +struct ci_hdrc_cable { + bool connected; + bool changed; + bool enabled; + struct extcon_dev *edev; + struct ci_hdrc *ci; + struct notifier_block nb; }; -struct hclge_rst_stats { - u32 reset_done_cnt; - u32 hw_reset_done_cnt; - u32 pf_rst_cnt; - u32 flr_rst_cnt; - u32 global_rst_cnt; - u32 imp_rst_cnt; - u32 reset_cnt; - u32 reset_fail_cnt; +struct hw_bank { + unsigned int lpm; + resource_size_t phys; + void *abs; + void *cap; + void *op; + size_t size; + void *regmap[39]; }; -enum hclge_fc_mode { - HCLGE_FC_NONE = 0, - HCLGE_FC_RX_PAUSE = 1, - HCLGE_FC_TX_PAUSE = 2, - HCLGE_FC_FULL = 3, - HCLGE_FC_PFC = 4, - HCLGE_FC_DEFAULT = 5, +struct otg_fsm_ops; + +struct otg_fsm { + int id; + int adp_change; + int power_up; + int a_srp_det; + int a_vbus_vld; + int b_conn; + int a_bus_resume; + int a_bus_suspend; + int a_conn; + int b_se0_srp; + int b_ssend_srp; + int b_sess_vld; + int test_device; + int a_bus_drop; + int a_bus_req; + int b_bus_req; + int a_sess_vld; + int b_bus_resume; + int b_bus_suspend; + int drv_vbus; + int loc_conn; + int loc_sof; + int adp_prb; + int adp_sns; + int data_pulse; + int a_set_b_hnp_en; + int b_srp_done; + int b_hnp_enable; + int a_clr_err; + int a_bus_drop_inf; + int a_bus_req_inf; + int a_clr_err_inf; + int b_bus_req_inf; + int a_suspend_req_inf; + int a_wait_vrise_tmout; + int a_wait_vfall_tmout; + int a_wait_bcon_tmout; + int a_aidl_bdis_tmout; + int b_ase0_brst_tmout; + int a_bidl_adis_tmout; + struct otg_fsm_ops *ops; + struct usb_otg *otg; + int protocol; + struct mutex lock; + u8 *host_req_flag; + struct delayed_work hnp_polling_work; + bool hnp_work_inited; + bool state_changed; }; -struct hclge_pg_info { - u8 pg_id; - u8 pg_sch_mode; - u8 tc_bit_map; - u32 bw_limit; - u8 tc_dwrr[8]; +struct ci_hw_qh; + +struct td_node; + +struct ci_hw_ep { + struct usb_ep ep; + u8 dir; + u8 num; + u8 type; + char name[16]; + struct { + struct list_head queue; + struct ci_hw_qh *ptr; + dma_addr_t dma; + } qh; + int wedge; + struct ci_hdrc *ci; + spinlock_t *lock; + struct dma_pool *td_pool; + struct td_node *pending_td; }; -struct hclge_tc_info { - u8 tc_id; - u8 tc_sch_mode; - u8 pgid; - u32 bw_limit; +struct ulpi_ops { + int (*read)(struct device *, u8); + int (*write)(struct device *, u8, u8); }; -struct hclge_tm_info { - u8 num_tc; - u8 num_pg; - u8 pg_dwrr[4]; - u8 prio_tc[8]; - struct hclge_pg_info pg_info[4]; - struct hclge_tc_info tc_info[8]; - enum hclge_fc_mode fc_mode; - u8 hw_pfc_map; - u8 pfc_en; +struct ci_role_driver; + +struct ci_hdrc_platform_data; + +struct ci_hdrc { + struct device *dev; + spinlock_t lock; + struct hw_bank hw_bank; + int irq; + struct ci_role_driver *roles[2]; + enum ci_role role; + bool is_otg; + struct usb_otg otg; + struct otg_fsm fsm; + struct hrtimer otg_fsm_hrtimer; + ktime_t hr_timeouts[12]; + unsigned int enabled_otg_timer_bits; + enum otg_fsm_timer next_otg_timer; + struct usb_role_switch *role_switch; + struct work_struct work; + struct workqueue_struct *wq; + struct dma_pool *qh_pool; + struct dma_pool *td_pool; + struct usb_gadget gadget; + struct usb_gadget_driver *driver; + enum usb_device_state resume_state; + unsigned int hw_ep_max; + struct ci_hw_ep ci_hw_ep[32]; + u32 ep0_dir; + struct ci_hw_ep *ep0out; + struct ci_hw_ep *ep0in; + struct usb_request *status; + bool setaddr; + u8 address; + u8 remote_wakeup; + u8 suspended; + u8 test_mode; + struct ci_hdrc_platform_data *platdata; + int vbus_active; + struct ulpi *ulpi; + struct ulpi_ops ulpi_ops; + struct phy *phy; + struct usb_phy *usb_phy; + struct usb_hcd *hcd; + bool id_event; + bool b_sess_valid_event; + bool imx28_write_fix; + bool has_portsc_pec_bug; + bool supports_runtime_pm; + bool in_lpm; + bool wakeup_int; + enum ci_revision rev; + struct mutex mutex; }; -struct hclge_vlan_type_cfg { - u16 rx_ot_fst_vlan_type; - u16 rx_ot_sec_vlan_type; - u16 rx_in_fst_vlan_type; - u16 rx_in_sec_vlan_type; - u16 tx_ot_vlan_type; - u16 tx_in_vlan_type; +struct ci_role_driver { + int (*start)(struct ci_hdrc *); + void (*stop)(struct ci_hdrc *); + void (*suspend)(struct ci_hdrc *); + void (*resume)(struct ci_hdrc *, bool); + irqreturn_t (*irq)(struct ci_hdrc *); + const char *name; }; -struct hclge_fd_key_cfg { - u8 key_sel; - u8 inner_sipv6_word_en; - u8 inner_dipv6_word_en; - u8 outer_sipv6_word_en; - u8 outer_dipv6_word_en; - u32 tuple_active; - u32 meta_data_active; +struct otg_fsm_ops { + void (*chrg_vbus)(struct otg_fsm *, int); + void (*drv_vbus)(struct otg_fsm *, int); + void (*loc_conn)(struct otg_fsm *, int); + void (*loc_sof)(struct otg_fsm *, int); + void (*start_pulse)(struct otg_fsm *); + void (*start_adp_prb)(struct otg_fsm *); + void (*start_adp_sns)(struct otg_fsm *); + void (*add_timer)(struct otg_fsm *, enum otg_fsm_timer); + void (*del_timer)(struct otg_fsm *, enum otg_fsm_timer); + int (*start_host)(struct otg_fsm *, int); + int (*start_gadget)(struct otg_fsm *, int); }; -struct hclge_fd_user_def_cfg { - u16 ref_cnt; - u16 offset; +struct ci_hw_td { + __le32 next; + __le32 token; + __le32 page[5]; }; -struct hclge_fd_cfg { - u8 fd_mode; - u16 max_key_length; - u32 rule_num[2]; - u16 cnt_num[2]; - struct hclge_fd_key_cfg key_cfg[2]; - struct hclge_fd_user_def_cfg user_def_cfg[3]; +struct ci_hw_qh { + __le32 cap; + __le32 curr; + struct ci_hw_td td; + __le32 RESERVED; + struct usb_ctrlrequest setup; }; -enum HCLGE_FD_ACTIVE_RULE_TYPE { - HCLGE_FD_RULE_NONE = 0, - HCLGE_FD_ARFS_ACTIVE = 1, - HCLGE_FD_EP_ACTIVE = 2, - HCLGE_FD_TC_FLOWER_ACTIVE = 3, +struct td_node { + struct list_head td; + dma_addr_t dma; + struct ci_hw_td *ptr; + int td_remaining_size; }; -struct hclge_comm_rss_tuple_cfg { - u8 ipv4_tcp_en; - u8 ipv4_udp_en; - u8 ipv4_sctp_en; - u8 ipv4_fragment_en; - u8 ipv6_tcp_en; - u8 ipv6_udp_en; - u8 ipv6_sctp_en; - u8 ipv6_fragment_en; +struct ci_hdrc_platform_data { + const char *name; + uintptr_t capoffset; + unsigned int power_budget; + struct phy *phy; + struct usb_phy *usb_phy; + enum usb_phy_interface phy_mode; + unsigned long flags; + enum usb_dr_mode dr_mode; + int (*notify_event)(struct ci_hdrc *, unsigned int); + struct regulator *reg_vbus; + struct usb_otg_caps ci_otg_caps; + bool tpl_support; + u32 itc_setting; + u32 ahb_burst_config; + u32 tx_burst_size; + u32 rx_burst_size; + struct ci_hdrc_cable vbus_extcon; + struct ci_hdrc_cable id_extcon; + u32 phy_clkgate_delay_us; + struct pinctrl *pctl; + struct pinctrl_state *pins_default; + struct pinctrl_state *pins_host; + struct pinctrl_state *pins_device; + int (*hub_control)(struct ci_hdrc *, u16, u16, u16, char *, u16, bool *, unsigned long *); + void (*enter_lpm)(struct ci_hdrc *, bool); }; -struct hclge_comm_rss_cfg { - u8 rss_hash_key[40]; - u16 *rss_indirection_tbl; - u32 rss_algo; - struct hclge_comm_rss_tuple_cfg rss_tuple_sets; - u32 rss_size; +struct input_mt_slot { + int abs[14]; + unsigned int frame; + unsigned int key; }; -struct hnae3_ae_dev; +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 hclge_comm_tqp; +struct touchscreen_properties { + unsigned int max_x; + unsigned int max_y; + bool invert_x; + bool invert_y; + bool swap_x_y; +}; -struct hclge_vport; +struct input_mt_pos { + s16 x; + s16 y; +}; -struct hnae3_client; +struct pm8941_data { + unsigned int pull_up_bit; + unsigned int status_bit; + bool supports_ps_hold_poff_config; + bool supports_debounce_config; + bool has_pon_pbs; + const char *name; + const char *phys; +}; -struct hclge_ptp; +struct pm8941_pwrkey { + struct device *dev; + int irq; + u32 baseaddr; + u32 pon_pbs_baseaddr; + struct regmap *regmap; + struct input_dev *input; + unsigned int revision; + unsigned int subtype; + struct notifier_block reboot_notifier; + u32 code; + u32 sw_debounce_time_us; + ktime_t sw_debounce_end_time; + bool last_status; + const struct pm8941_data *data; +}; -struct hclge_dev { - struct pci_dev *pdev; - struct hnae3_ae_dev *ae_dev; - struct hclge_hw hw; - struct hclge_misc_vector misc_vector; - struct hclge_mac_stats mac_stats; - struct hclge_fec_stats fec_stats; - unsigned long state; - unsigned long flr_state; - unsigned long last_reset_time; - enum hnae3_reset_type reset_type; - enum hnae3_reset_type reset_level; - unsigned long default_reset_request; - unsigned long reset_request; - unsigned long reset_pending; - struct hclge_rst_stats rst_stats; - struct semaphore reset_sem; - u32 fw_version; - u16 num_tqps; - u16 num_req_vfs; - u16 base_tqp_pid; - u16 alloc_rss_size; - u16 vf_rss_size_max; - u16 pf_rss_size_max; - u32 tx_spare_buf_size; - u16 fdir_pf_filter_count; - u16 num_alloc_vport; - u32 numa_node_mask; - u16 rx_buf_len; - u16 num_tx_desc; - u16 num_rx_desc; - u8 hw_tc_map; - enum hclge_fc_mode fc_mode_last_time; - u8 support_sfp_query; - u8 tx_sch_mode; - u8 tc_max; - u8 pfc_max; - u8 default_up; - u8 dcbx_cap; - struct hclge_tm_info tm_info; - u16 num_msi; - u16 num_msi_left; - u16 num_msi_used; - u16 *vector_status; - int *vector_irq; - u16 num_nic_msi; - u16 num_roce_msi; - unsigned long service_timer_period; - unsigned long service_timer_previous; - struct timer_list reset_timer; - struct delayed_work service_task; - bool cur_promisc; - int num_alloc_vfs; - struct hclge_comm_tqp *htqp; - struct hclge_vport *vport; - struct dentry *hclge_dbgfs; - struct hnae3_client *nic_client; - struct hnae3_client *roce_client; - u32 flag; - u32 pkt_buf_size; - u32 tx_buf_size; - u32 dv_buf_size; - u32 mps; - struct mutex vport_lock; - struct hclge_vlan_type_cfg vlan_type_cfg; - unsigned long vlan_table[16384]; - unsigned long vf_vlan_full[4]; - unsigned long vport_config_block[4]; - struct hclge_fd_cfg fd_cfg; - struct hlist_head fd_rule_list; - spinlock_t fd_rule_lock; - u16 hclge_fd_rule_num; - unsigned long serv_processed_cnt; - unsigned long last_serv_processed; - unsigned long last_rst_scheduled; - unsigned long last_mbx_scheduled; - unsigned long fd_bmap[64]; - enum HCLGE_FD_ACTIVE_RULE_TYPE fd_active_type; - u8 fd_en; - bool gro_en; - u16 wanted_umv_size; - u16 max_umv_size; - u16 priv_umv_size; - u16 share_umv_size; - u16 used_mc_mac_num; - struct { - union { - struct __kfifo kfifo; - struct hclge_mac_tnl_stats *type; - const struct hclge_mac_tnl_stats *const_type; - char (*rectype)[0]; - struct hclge_mac_tnl_stats *ptr; - const struct hclge_mac_tnl_stats *ptr_const; - }; - struct hclge_mac_tnl_stats buf[8]; - } mac_tnl_log; - struct hclge_ptp *ptp; - struct devlink *devlink; - struct hclge_comm_rss_cfg rss_cfg; +struct i2c_devinfo { + struct list_head list; + int busnum; + struct i2c_board_info board_info; }; -struct hnae3_dev_specs { - u32 mac_entry_num; - u32 mng_entry_num; - u32 max_tm_rate; - u16 rss_ind_tbl_size; - u16 rss_key_size; - u16 int_ql_max; - u16 max_int_gl; - u8 max_non_tso_bd_num; - u16 max_frm_size; - u16 max_qset_num; - u16 umv_size; - u16 mc_mac_size; - u32 mac_stats_num; +struct pasemi_smbus { + struct device *dev; + struct i2c_adapter adapter; + void *ioaddr; + unsigned int clk_div; + int hw_rev; + int use_irq; + struct completion irq_completion; }; -struct hnae3_ae_ops; +struct pasemi_platform_i2c_data { + struct pasemi_smbus smbus; + struct clk *clk_ref; +}; -struct hnae3_ae_dev { - struct pci_dev *pdev; - const struct hnae3_ae_ops *ops; - struct list_head node; - u32 flag; - unsigned long hw_err_reset_req; - struct hnae3_dev_specs dev_specs; - u32 dev_version; - unsigned long caps[2]; - void *priv; +struct mode_info { + const char *mode; + u32 magic; + struct list_head list; }; -enum hnae3_loop { - HNAE3_LOOP_EXTERNAL = 0, - HNAE3_LOOP_APP = 1, - HNAE3_LOOP_SERIAL_SERDES = 2, - HNAE3_LOOP_PARALLEL_SERDES = 3, - HNAE3_LOOP_PHY = 4, - HNAE3_LOOP_NONE = 5, +struct reboot_mode_driver { + struct device *dev; + struct list_head head; + int (*write)(struct reboot_mode_driver *, unsigned int); + struct notifier_block reboot_notifier; }; -struct hnae3_handle; +struct sr_thermal; -struct hns3_mac_stats; +struct sr_tmon { + unsigned int crit_temp; + unsigned int tmon_id; + struct sr_thermal *priv; +}; -struct hnae3_vector_info; +struct sr_thermal { + void *regs; + unsigned int max_crit_temp; + struct sr_tmon tmon[6]; +}; -struct hnae3_ring_chain_node; +struct watchdog_info { + __u32 options; + __u32 firmware_version; + __u8 identity[32]; +}; -struct flow_keys; +struct watchdog_device; -struct flow_cls_offload; +struct watchdog_ops { + struct module *owner; + int (*start)(struct watchdog_device *); + int (*stop)(struct watchdog_device *); + int (*ping)(struct watchdog_device *); + unsigned int (*status)(struct watchdog_device *); + int (*set_timeout)(struct watchdog_device *, unsigned int); + int (*set_pretimeout)(struct watchdog_device *, unsigned int); + unsigned int (*get_timeleft)(struct watchdog_device *); + int (*restart)(struct watchdog_device *, unsigned long, void *); + long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long); +}; -struct hnae3_ae_ops { - int (*init_ae_dev)(struct hnae3_ae_dev *); - void (*uninit_ae_dev)(struct hnae3_ae_dev *); - void (*reset_prepare)(struct hnae3_ae_dev *, enum hnae3_reset_type); - void (*reset_done)(struct hnae3_ae_dev *); - int (*init_client_instance)(struct hnae3_client *, struct hnae3_ae_dev *); - void (*uninit_client_instance)(struct hnae3_client *, struct hnae3_ae_dev *); - int (*start)(struct hnae3_handle *); - void (*stop)(struct hnae3_handle *); - int (*client_start)(struct hnae3_handle *); - void (*client_stop)(struct hnae3_handle *); - int (*get_status)(struct hnae3_handle *); - void (*get_ksettings_an_result)(struct hnae3_handle *, u8 *, u32 *, u8 *, u32 *); - int (*cfg_mac_speed_dup_h)(struct hnae3_handle *, int, u8, u8); - void (*get_media_type)(struct hnae3_handle *, u8 *, u8 *); - int (*check_port_speed)(struct hnae3_handle *, u32); - void (*get_fec_stats)(struct hnae3_handle *, struct ethtool_fec_stats *); - void (*get_fec)(struct hnae3_handle *, u8 *, u8 *); - int (*set_fec)(struct hnae3_handle *, u32); - void (*adjust_link)(struct hnae3_handle *, int, int); - int (*set_loopback)(struct hnae3_handle *, enum hnae3_loop, bool); - int (*set_promisc_mode)(struct hnae3_handle *, bool, bool); - void (*request_update_promisc_mode)(struct hnae3_handle *); - int (*set_mtu)(struct hnae3_handle *, int); - void (*get_pauseparam)(struct hnae3_handle *, u32 *, u32 *, u32 *); - int (*set_pauseparam)(struct hnae3_handle *, u32, u32, u32); - int (*set_autoneg)(struct hnae3_handle *, bool); - int (*get_autoneg)(struct hnae3_handle *); - int (*restart_autoneg)(struct hnae3_handle *); - int (*halt_autoneg)(struct hnae3_handle *, bool); - void (*get_coalesce_usecs)(struct hnae3_handle *, u32 *, u32 *); - void (*get_rx_max_coalesced_frames)(struct hnae3_handle *, u32 *, u32 *); - int (*set_coalesce_usecs)(struct hnae3_handle *, u32); - int (*set_coalesce_frames)(struct hnae3_handle *, u32); - void (*get_coalesce_range)(struct hnae3_handle *, u32 *, u32 *, u32 *, u32 *, u32 *, u32 *, u32 *, u32 *); - void (*get_mac_addr)(struct hnae3_handle *, u8 *); - int (*set_mac_addr)(struct hnae3_handle *, const void *, bool); - int (*do_ioctl)(struct hnae3_handle *, struct ifreq *, int); - int (*add_uc_addr)(struct hnae3_handle *, const unsigned char *); - int (*rm_uc_addr)(struct hnae3_handle *, const unsigned char *); - int (*set_mc_addr)(struct hnae3_handle *, void *); - int (*add_mc_addr)(struct hnae3_handle *, const unsigned char *); - int (*rm_mc_addr)(struct hnae3_handle *, const unsigned char *); - void (*set_tso_stats)(struct hnae3_handle *, int); - void (*update_stats)(struct hnae3_handle *); - void (*get_stats)(struct hnae3_handle *, u64 *); - void (*get_mac_stats)(struct hnae3_handle *, struct hns3_mac_stats *); - void (*get_strings)(struct hnae3_handle *, u32, u8 *); - int (*get_sset_count)(struct hnae3_handle *, int); - void (*get_regs)(struct hnae3_handle *, u32 *, void *); - int (*get_regs_len)(struct hnae3_handle *); - u32 (*get_rss_key_size)(struct hnae3_handle *); - int (*get_rss)(struct hnae3_handle *, u32 *, u8 *, u8 *); - int (*set_rss)(struct hnae3_handle *, const u32 *, const u8 *, const u8); - int (*set_rss_tuple)(struct hnae3_handle *, struct ethtool_rxnfc *); - int (*get_rss_tuple)(struct hnae3_handle *, struct ethtool_rxnfc *); - int (*get_tc_size)(struct hnae3_handle *); - int (*get_vector)(struct hnae3_handle *, u16, struct hnae3_vector_info *); - int (*put_vector)(struct hnae3_handle *, int); - int (*map_ring_to_vector)(struct hnae3_handle *, int, struct hnae3_ring_chain_node *); - int (*unmap_ring_from_vector)(struct hnae3_handle *, int, struct hnae3_ring_chain_node *); - int (*reset_queue)(struct hnae3_handle *); - u32 (*get_fw_version)(struct hnae3_handle *); - void (*get_mdix_mode)(struct hnae3_handle *, u8 *, u8 *); - int (*enable_vlan_filter)(struct hnae3_handle *, bool); - int (*set_vlan_filter)(struct hnae3_handle *, __be16, u16, bool); - int (*set_vf_vlan_filter)(struct hnae3_handle *, int, u16, u8, __be16); - int (*enable_hw_strip_rxvtag)(struct hnae3_handle *, bool); - void (*reset_event)(struct pci_dev *, struct hnae3_handle *); - enum hnae3_reset_type (*get_reset_level)(struct hnae3_ae_dev *, unsigned long *); - void (*set_default_reset_request)(struct hnae3_ae_dev *, enum hnae3_reset_type); - void (*get_channels)(struct hnae3_handle *, struct ethtool_channels *); - void (*get_tqps_and_rss_info)(struct hnae3_handle *, u16 *, u16 *); - int (*set_channels)(struct hnae3_handle *, u32, bool); - void (*get_flowctrl_adv)(struct hnae3_handle *, u32 *); - int (*set_led_id)(struct hnae3_handle *, enum ethtool_phys_id_state); - void (*get_link_mode)(struct hnae3_handle *, unsigned long *, unsigned long *); - int (*add_fd_entry)(struct hnae3_handle *, struct ethtool_rxnfc *); - int (*del_fd_entry)(struct hnae3_handle *, struct ethtool_rxnfc *); - int (*get_fd_rule_cnt)(struct hnae3_handle *, struct ethtool_rxnfc *); - int (*get_fd_rule_info)(struct hnae3_handle *, struct ethtool_rxnfc *); - int (*get_fd_all_rules)(struct hnae3_handle *, struct ethtool_rxnfc *, u32 *); - void (*enable_fd)(struct hnae3_handle *, bool); - int (*add_arfs_entry)(struct hnae3_handle *, u16, u16, struct flow_keys *); - int (*dbg_read_cmd)(struct hnae3_handle *, enum hnae3_dbg_cmd, char *, int); - pci_ers_result_t (*handle_hw_ras_error)(struct hnae3_ae_dev *); - bool (*get_hw_reset_stat)(struct hnae3_handle *); - bool (*ae_dev_resetting)(struct hnae3_handle *); - unsigned long (*ae_dev_reset_cnt)(struct hnae3_handle *); - int (*set_gro_en)(struct hnae3_handle *, bool); - u16 (*get_global_queue_id)(struct hnae3_handle *, u16); - void (*set_timer_task)(struct hnae3_handle *, bool); - int (*mac_connect_phy)(struct hnae3_handle *); - void (*mac_disconnect_phy)(struct hnae3_handle *); - int (*get_vf_config)(struct hnae3_handle *, int, struct ifla_vf_info *); - int (*set_vf_link_state)(struct hnae3_handle *, int, int); - int (*set_vf_spoofchk)(struct hnae3_handle *, int, bool); - int (*set_vf_trust)(struct hnae3_handle *, int, bool); - int (*set_vf_rate)(struct hnae3_handle *, int, int, int, bool); - int (*set_vf_mac)(struct hnae3_handle *, int, u8 *); - int (*get_module_eeprom)(struct hnae3_handle *, u32, u32, u8 *); - bool (*get_cmdq_stat)(struct hnae3_handle *); - int (*add_cls_flower)(struct hnae3_handle *, struct flow_cls_offload *, int); - int (*del_cls_flower)(struct hnae3_handle *, struct flow_cls_offload *); - bool (*cls_flower_active)(struct hnae3_handle *); - int (*get_phy_link_ksettings)(struct hnae3_handle *, struct ethtool_link_ksettings *); - int (*set_phy_link_ksettings)(struct hnae3_handle *, const struct ethtool_link_ksettings *); - bool (*set_tx_hwts_info)(struct hnae3_handle *, struct sk_buff *); - void (*get_rx_hwts)(struct hnae3_handle *, struct sk_buff *, u32, u32); - int (*get_ts_info)(struct hnae3_handle *, struct ethtool_ts_info *); - int (*get_link_diagnosis_info)(struct hnae3_handle *, u32 *); - void (*clean_vf_config)(struct hnae3_ae_dev *, int); - int (*get_dscp_prio)(struct hnae3_handle *, u8, u8 *, u8 *); - void (*get_wol)(struct hnae3_handle *, struct ethtool_wolinfo *); - int (*set_wol)(struct hnae3_handle *, struct ethtool_wolinfo *); +struct watchdog_governor; + +struct watchdog_core_data; + +struct watchdog_device { + int id; + struct device *parent; + const struct attribute_group **groups; + const struct watchdog_info *info; + const struct watchdog_ops *ops; + const struct watchdog_governor *gov; + unsigned int bootstatus; + unsigned int timeout; + unsigned int pretimeout; + unsigned int min_timeout; + unsigned int max_timeout; + unsigned int min_hw_heartbeat_ms; + unsigned int max_hw_heartbeat_ms; + struct notifier_block reboot_nb; + struct notifier_block restart_nb; + struct notifier_block pm_nb; + void *driver_data; + struct watchdog_core_data *wd_data; + unsigned long status; + struct list_head deferred; }; -enum hnae3_client_type { - HNAE3_CLIENT_KNIC = 0, - HNAE3_CLIENT_ROCE = 1, +struct watchdog_governor { + const char name[20]; + void (*pretimeout)(struct watchdog_device *); }; -struct hnae3_client_ops; +struct imx2_wdt_data { + bool wdw_supported; +}; -struct hnae3_client { - char name[16]; - unsigned long state; - enum hnae3_client_type type; - const struct hnae3_client_ops *ops; - struct list_head node; +struct imx2_wdt_device { + struct clk *clk; + struct regmap *regmap; + struct watchdog_device wdog; + const struct imx2_wdt_data *data; + bool ext_reset; + bool clk_is_on; + bool no_ping; + bool sleep_wait; }; -enum hnae3_reset_notify_type { - HNAE3_UP_CLIENT = 0, - HNAE3_DOWN_CLIENT = 1, - HNAE3_INIT_CLIENT = 2, - HNAE3_UNINIT_CLIENT = 3, +struct dev_pm_opp_supply { + unsigned long u_volt; + unsigned long u_volt_min; + unsigned long u_volt_max; + unsigned long u_amp; + unsigned long u_watt; }; -enum hnae3_hw_error_type { - HNAE3_PPU_POISON_ERROR = 0, - HNAE3_CMDQ_ECC_ERROR = 1, - HNAE3_IMP_RD_POISON_ERROR = 2, - HNAE3_ROCEE_AXI_RESP_ERROR = 3, +struct ti_opp_supply_optimum_voltage_table; + +struct ti_opp_supply_data { + struct ti_opp_supply_optimum_voltage_table *vdd_table; + u32 num_vdd_table; + u32 vdd_absolute_max_voltage_uv; + struct dev_pm_opp_supply old_supplies[2]; + struct dev_pm_opp_supply new_supplies[2]; }; -struct hnae3_client_ops { - int (*init_instance)(struct hnae3_handle *); - void (*uninit_instance)(struct hnae3_handle *, bool); - void (*link_status_change)(struct hnae3_handle *, bool); - int (*reset_notify)(struct hnae3_handle *, enum hnae3_reset_notify_type); - void (*process_hw_error)(struct hnae3_handle *, enum hnae3_hw_error_type); +struct ti_opp_supply_optimum_voltage_table { + unsigned int reference_uv; + unsigned int optimized_uv; }; -struct hnae3_tc_info { - u8 prio_tc[8]; - u16 tqp_count[8]; - u16 tqp_offset[8]; - u8 max_tc; - u8 num_tc; - bool mqprio_active; +struct ti_opp_supply_of_data { + const u8 flags; + const u32 efuse_voltage_mask; + const bool efuse_voltage_uv; }; -struct hnae3_queue; +typedef int (*config_regulators_t)(struct device *, struct dev_pm_opp *, struct dev_pm_opp *, struct regulator **, unsigned int); -struct hnae3_dcb_ops; +typedef int (*config_clks_t)(struct device *, struct opp_table *, struct dev_pm_opp *, void *, bool); -struct hnae3_knic_private_info { - struct net_device *netdev; - u16 rss_size; - u16 req_rss_size; - u16 rx_buf_len; - u16 num_tx_desc; - u16 num_rx_desc; - u32 tx_spare_buf_size; - struct hnae3_tc_info tc_info; - u8 tc_map_mode; - u8 dscp_app_cnt; - u8 dscp_prio[64]; - u16 num_tqps; - struct hnae3_queue **tqp; - const struct hnae3_dcb_ops *dcb_ops; - u16 int_rl_setting; - void *io_base; +struct dev_pm_opp_config { + const char * const *clk_names; + config_clks_t config_clks; + const char *prop_name; + config_regulators_t config_regulators; + const unsigned int *supported_hw; + unsigned int supported_hw_count; + const char * const *regulator_names; + const char * const *genpd_names; + struct device ***virt_devs; }; -struct hnae3_roce_private_info { - struct net_device *netdev; - void *roce_io_base; - void *roce_mem_base; - int base_vector; - int num_vectors; - unsigned long reset_state; - unsigned long instance_state; - unsigned long state; +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); }; -enum hnae3_port_base_vlan_state { - HNAE3_PORT_BASE_VLAN_DISABLE = 0, - HNAE3_PORT_BASE_VLAN_ENABLE = 1, - HNAE3_PORT_BASE_VLAN_MODIFY = 2, - HNAE3_PORT_BASE_VLAN_NOCHANGE = 3, +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 hnae3_ae_algo; - -struct hnae3_handle { - struct hnae3_client *client; - struct pci_dev *pdev; - void *priv; - struct hnae3_ae_algo *ae_algo; - u64 flags; - union { - struct net_device *netdev; - struct hnae3_knic_private_info kinfo; - struct hnae3_roce_private_info rinfo; - }; - u32 numa_node_mask; - enum hnae3_port_base_vlan_state port_base_vlan_state; - u8 netdev_flags; - struct dentry *hnae3_dbgfs; - struct mutex dbgfs_lock; - char **dbgfs_buf; - u32 msg_enable; - unsigned long supported_pflags; - unsigned long priv_flags; +struct cpuidle_driver_kobj { + struct cpuidle_driver *drv; + struct completion kobj_unregister; + struct kobject kobj; }; -struct hnae3_ae_algo { - const struct hnae3_ae_ops *ops; - struct list_head node; - const struct pci_device_id *pdev_id_table; +struct cpuidle_device_kobj { + struct cpuidle_device *dev; + struct completion kobj_unregister; + struct kobject kobj; }; -struct hnae3_queue { - void *io_base; - void *mem_base; - struct hnae3_ae_algo *ae_algo; - struct hnae3_handle *handle; - int tqp_index; - u32 buf_size; - u16 tx_desc_num; - u16 rx_desc_num; +struct cpuidle_driver_attr { + struct attribute attr; + ssize_t (*show)(struct cpuidle_driver *, char *); + ssize_t (*store)(struct cpuidle_driver *, const char *, size_t); }; -struct dcb_app; - -struct hnae3_dcb_ops { - int (*ieee_getets)(struct hnae3_handle *, struct ieee_ets *); - int (*ieee_setets)(struct hnae3_handle *, struct ieee_ets *); - int (*ieee_getpfc)(struct hnae3_handle *, struct ieee_pfc *); - int (*ieee_setpfc)(struct hnae3_handle *, struct ieee_pfc *); - int (*ieee_setapp)(struct hnae3_handle *, struct dcb_app *); - int (*ieee_delapp)(struct hnae3_handle *, struct dcb_app *); - u8 (*getdcbx)(struct hnae3_handle *); - u8 (*setdcbx)(struct hnae3_handle *, u8); - int (*setup_tc)(struct hnae3_handle *, struct tc_mqprio_qopt_offload *); +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 dcb_app { - __u8 selector; - __u8 priority; - __u16 protocol; +struct cpuidle_attr { + struct attribute attr; + ssize_t (*show)(struct cpuidle_device *, char *); + ssize_t (*store)(struct cpuidle_device *, const char *, size_t); }; -struct hns3_mac_stats { - u64 tx_pause_cnt; - u64 rx_pause_cnt; +struct mmc_pwrseq_ops { + void (*pre_power_on)(struct mmc_host *); + void (*post_power_on)(struct mmc_host *); + void (*power_off)(struct mmc_host *); + void (*reset)(struct mmc_host *); }; -struct hnae3_vector_info { - u8 *io_addr; - int vector; +struct mmc_pwrseq { + const struct mmc_pwrseq_ops *ops; + struct device *dev; + struct list_head pwrseq_node; + struct module *owner; }; -struct hnae3_ring_chain_node { - struct hnae3_ring_chain_node *next; - u32 tqp_index; - u32 flag; - u32 int_gl_idx; -}; +struct gpio_descs; -struct flow_dissector_key_control { - u16 thoff; - u16 addr_type; - u32 flags; +struct mmc_pwrseq_simple { + struct mmc_pwrseq pwrseq; + bool clk_enabled; + u32 post_power_on_delay_ms; + u32 power_off_delay_us; + struct clk *ext_clk; + struct gpio_descs *reset_gpios; }; -struct flow_dissector_key_basic { - __be16 n_proto; - u8 ip_proto; - u8 padding; -}; +struct gpio_array; -struct flow_dissector_key_tags { - u32 flow_label; +struct gpio_descs { + struct gpio_array *info; + unsigned int ndescs; + struct gpio_desc *desc[0]; }; -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 dw_mci; + +struct dw_mci_slot; + +struct dw_mci_drv_data { + unsigned long *caps; + u32 num_caps; + u32 common_caps; + int (*init)(struct dw_mci *); + void (*set_ios)(struct dw_mci *, struct mmc_ios *); + int (*parse_dt)(struct dw_mci *); + int (*execute_tuning)(struct dw_mci_slot *, u32); + int (*prepare_hs400_tuning)(struct dw_mci *, struct mmc_ios *); + int (*switch_voltage)(struct mmc_host *, struct mmc_ios *); + void (*set_data_timeout)(struct dw_mci *, unsigned int); + u32 (*get_drto_clks)(struct dw_mci *); }; -struct flow_dissector_key_keyid { - __be32 keyid; +enum dw_mci_state { + STATE_IDLE = 0, + STATE_SENDING_CMD = 1, + STATE_SENDING_DATA = 2, + STATE_DATA_BUSY = 3, + STATE_SENDING_STOP = 4, + STATE_DATA_ERROR = 5, + STATE_SENDING_CMD11 = 6, + STATE_WAITING_CMD11_DONE = 7, }; -struct flow_dissector_key_ports { +struct dw_mci_dma_ops; + +struct dw_mci_dma_slave; + +struct dw_mci_board; + +struct dw_mci { + spinlock_t lock; + spinlock_t irq_lock; + void *regs; + void *fifo_reg; + u32 data_addr_override; + bool wm_aligned; + struct scatterlist *sg; + struct sg_mapping_iter sg_miter; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_data *data; + struct mmc_command stop_abort; + unsigned int prev_blksz; + unsigned char timing; + int use_dma; + int using_dma; + int dma_64bit_address; + dma_addr_t sg_dma; + void *sg_cpu; + const struct dw_mci_dma_ops *dma_ops; + unsigned int ring_size; + struct dw_mci_dma_slave *dms; + resource_size_t phy_regs; + u32 cmd_status; + u32 data_status; + u32 stop_cmdr; + u32 dir_status; + struct tasklet_struct tasklet; + unsigned long pending_events; + unsigned long completed_events; + enum dw_mci_state state; + struct list_head queue; + u32 bus_hz; + u32 current_speed; + u32 minimum_speed; + u32 fifoth_val; + u16 verid; + struct device *dev; + struct dw_mci_board *pdata; + const struct dw_mci_drv_data *drv_data; + void *priv; + struct clk *biu_clk; + struct clk *ciu_clk; + struct dw_mci_slot *slot; + int fifo_depth; + int data_shift; + u8 part_buf_start; + u8 part_buf_count; union { - __be32 ports; - struct { - __be16 src; - __be16 dst; - }; + u16 part_buf16; + u32 part_buf32; + u64 part_buf; }; + void (*push_data)(struct dw_mci *, void *, int); + void (*pull_data)(struct dw_mci *, void *, int); + u32 quirks; + bool vqmmc_enabled; + unsigned long irq_flags; + int irq; + int sdio_id0; + struct timer_list cmd11_timer; + struct timer_list cto_timer; + struct timer_list dto_timer; }; -struct flow_dissector_key_icmp { - struct { - u8 type; - u8 code; - }; - u16 id; +struct dw_mci_dma_ops { + int (*init)(struct dw_mci *); + int (*start)(struct dw_mci *, unsigned int); + void (*complete)(void *); + void (*stop)(struct dw_mci *); + void (*cleanup)(struct dw_mci *); + void (*exit)(struct dw_mci *); }; -struct flow_dissector_key_ipv4_addrs { - __be32 src; - __be32 dst; +struct dw_mci_dma_slave { + struct dma_chan *ch; + enum dma_transfer_direction direction; }; -struct flow_dissector_key_ipv6_addrs { - struct in6_addr src; - struct in6_addr dst; -}; +struct dma_pdata; -struct flow_dissector_key_tipc { - __be32 key; +struct dw_mci_board { + unsigned int bus_hz; + u32 caps; + u32 caps2; + u32 pm_caps; + unsigned int fifo_depth; + u32 detect_delay_ms; + struct reset_control *rstc; + struct dw_mci_dma_ops *dma_ops; + struct dma_pdata *data; }; -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 dw_mci_slot { + struct mmc_host *mmc; + struct dw_mci *host; + u32 ctype; + struct mmc_request *mrq; + struct list_head queue_node; + unsigned int clock; + unsigned int __clk_old; + unsigned long flags; + int id; + int sdio_id; }; -struct flow_keys { - struct flow_dissector_key_control control; - struct flow_dissector_key_basic basic; - struct flow_dissector_key_tags tags; - struct flow_dissector_key_vlan vlan; - struct flow_dissector_key_vlan cvlan; - struct flow_dissector_key_keyid keyid; - struct flow_dissector_key_ports ports; - struct flow_dissector_key_icmp icmp; - struct flow_dissector_key_addrs addrs; - long: 0; +struct range_t { + int start; + int end; }; -struct flow_cls_common_offload { - u32 chain_index; - __be16 protocol; - u32 prio; - struct netlink_ext_ack *extack; +struct dw_mci_rockchip_priv_data { + struct clk *drv_clk; + struct clk *sample_clk; + int default_sample_phase; + int num_phases; }; -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, +struct led_lookup_data { + struct list_head list; + const char *provider; + const char *dev_id; + const char *con_id; }; -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, +struct led_init_data { + struct fwnode_handle *fwnode; + const char *default_label; + const char *devicename; + bool devname_mandatory; }; -struct flow_stats { - u64 pkts; - u64 bytes; - u64 drops; - u64 lastused; - enum flow_action_hw_stats used_hw_stats; - bool used_hw_stats_valid; -}; +typedef void (*btf_trace_scmi_fc_call)(void *, u8, u8, u32, u32, u32); -struct flow_rule; +typedef void (*btf_trace_scmi_xfer_begin)(void *, int, u8, u8, u16, bool); -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; -}; +typedef void (*btf_trace_scmi_xfer_response_wait)(void *, int, u8, u8, u16, u32, bool); -struct flow_dissector; +typedef void (*btf_trace_scmi_xfer_end)(void *, int, u8, u8, u16, int); -struct flow_match { - struct flow_dissector *dissector; - void *mask; - void *key; -}; +typedef void (*btf_trace_scmi_rx_done)(void *, int, u8, u8, u16, u8); -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, -}; +typedef void (*btf_trace_scmi_msg_dump)(void *, int, u8, u8, u8, unsigned char *, u16, int, void *, size_t); -typedef void (*action_destr)(void *); +struct scmi_xfer; -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, +struct scmi_xfer_ops { + int (*version_get)(const struct scmi_protocol_handle *, u32 *); + int (*xfer_get_init)(const struct scmi_protocol_handle *, u8, size_t, size_t, struct scmi_xfer **); + void (*reset_rx_to_maxsz)(const struct scmi_protocol_handle *, struct scmi_xfer *); + int (*do_xfer)(const struct scmi_protocol_handle *, struct scmi_xfer *); + int (*do_xfer_with_response)(const struct scmi_protocol_handle *, struct scmi_xfer *); + void (*xfer_put)(const struct scmi_protocol_handle *, struct scmi_xfer *); }; -struct nf_flowtable; - -struct ip_tunnel_info; +struct scmi_iterator_ops; -struct action_gate_entry; +struct scmi_fc_db_info; -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 scmi_proto_helpers_ops { + int (*extended_name_get)(const struct scmi_protocol_handle *, u8, u32, char *, size_t); + void * (*iter_response_init)(const struct scmi_protocol_handle *, struct scmi_iterator_ops *, unsigned int, u8, size_t, void *); + int (*iter_response_run)(void *); + void (*fastchannel_init)(const struct scmi_protocol_handle *, u8, u32, u32, u32, void **, struct scmi_fc_db_info **); + void (*fastchannel_db_ring)(struct scmi_fc_db_info *); }; -struct flow_action { - unsigned int num_entries; - struct flow_action_entry entries[0]; -}; +struct scmi_iterator_state; -struct flow_rule { - struct flow_match match; - struct flow_action action; +struct scmi_iterator_ops { + void (*prepare_message)(void *, unsigned int, const void *); + int (*update_state)(struct scmi_iterator_state *, const void *, void *); + int (*process_response)(const struct scmi_protocol_handle *, const void *, struct scmi_iterator_state *, void *); }; -struct flow_dissector { - unsigned int used_keys; - unsigned short offset[32]; +struct scmi_iterator_state { + unsigned int desc_index; + unsigned int num_returned; + unsigned int num_remaining; + unsigned int max_resources; + unsigned int loop_idx; + size_t rx_len; + void *priv; }; -struct hclge_desc { - __le16 opcode; - __le16 flag; - __le16 retval; - __le16 rsv; - __le32 data[6]; +struct scmi_fc_db_info { + int width; + u64 set; + u64 mask; + void *addr; }; -struct hclge_comm_tqp_stats { - u64 rcb_tx_ring_pktnum_rcd; - u64 rcb_rx_ring_pktnum_rcd; +struct scmi_msg_hdr { + u8 id; + u8 protocol_id; + u8 type; + u16 seq; + u32 status; + bool poll_completion; }; -struct hclge_comm_tqp { - struct device *dev; - struct hnae3_queue q; - struct hclge_comm_tqp_stats tqp_stats; - u16 index; - bool alloced; +struct scmi_msg { + void *buf; + size_t len; }; -struct hclge_vlan_info { - u16 vlan_proto; - u16 qos; - u16 vlan_tag; +struct scmi_xfer { + int transfer_id; + struct scmi_msg_hdr hdr; + struct scmi_msg tx; + struct scmi_msg rx; + struct completion done; + struct completion *async_done; + bool pending; + struct hlist_node node; + refcount_t users; + atomic_t busy; + int state; + int flags; + spinlock_t lock; + void *priv; }; -struct hclge_port_base_vlan_config { - u16 state; - bool tbl_sta; - struct hclge_vlan_info vlan_info; - struct hclge_vlan_info old_vlan_info; +enum scmi_error_codes { + SCMI_SUCCESS = 0, + SCMI_ERR_SUPPORT = -1, + SCMI_ERR_PARAMS = -2, + SCMI_ERR_ACCESS = -3, + SCMI_ERR_ENTRY = -4, + SCMI_ERR_RANGE = -5, + SCMI_ERR_BUSY = -6, + SCMI_ERR_COMMS = -7, + SCMI_ERR_GENERIC = -8, + SCMI_ERR_HARDWARE = -9, + SCMI_ERR_PROTOCOL = -10, }; -struct hclge_tx_vtag_cfg { - bool accept_tag1; - bool accept_untag1; - bool accept_tag2; - bool accept_untag2; - bool insert_tag1_en; - bool insert_tag2_en; - u16 default_tag1; - u16 default_tag2; - bool tag_shift_mode_en; +enum scmi_common_cmd { + PROTOCOL_VERSION = 0, + PROTOCOL_ATTRIBUTES = 1, + PROTOCOL_MESSAGE_ATTRIBUTES = 2, }; -struct hclge_rx_vtag_cfg { - bool rx_vlan_offload_en; - bool strip_tag1_en; - bool strip_tag2_en; - bool vlan1_vlan_prionly; - bool vlan2_vlan_prionly; - bool strip_tag1_discard_en; - bool strip_tag2_discard_en; +struct scmi_xfers_info { + unsigned long *xfer_alloc_table; + spinlock_t xfer_lock; + int max_msg; + struct hlist_head free_xfers; + struct hlist_head pending_xfers[512]; }; -struct hclge_vf_info { - int link_state; - u8 mac[6]; - u32 spoofchk; - u32 max_tx_rate; - u32 trusted; - u8 request_uc_en; - u8 request_mc_en; - u8 request_bc_en; +struct scmi_desc; + +struct scmi_debug_info; + +struct scmi_info { + int id; + struct device *dev; + const struct scmi_desc *desc; + struct scmi_revision_info version; + struct scmi_handle handle; + struct scmi_xfers_info tx_minfo; + struct scmi_xfers_info rx_minfo; + struct idr tx_idr; + struct idr rx_idr; + struct idr protocols; + struct mutex protocols_mtx; + u8 *protocols_imp; + struct idr active_protocols; + unsigned int atomic_threshold; + void *notify_priv; + struct list_head node; + int users; + struct notifier_block bus_nb; + struct notifier_block dev_req_nb; + struct mutex devreq_mtx; + struct scmi_debug_info *dbg; + void *raw; }; -struct hclge_vport { - u16 alloc_tqps; - u16 qs_offset; - u32 bw_limit; - u8 dwrr; - bool req_vlan_fltr_en; - bool cur_vlan_fltr_en; - unsigned long vlan_del_fail_bmap[64]; - struct hclge_port_base_vlan_config port_base_vlan_cfg; - struct hclge_tx_vtag_cfg txvlan_cfg; - struct hclge_rx_vtag_cfg rxvlan_cfg; - u16 used_umv_num; - u16 vport_id; - struct hclge_dev *back; - struct hnae3_handle nic; - struct hnae3_handle roce; - unsigned long state; - unsigned long need_notify; - unsigned long last_active_jiffies; - u32 mps; - struct hclge_vf_info vf_info; - u8 overflow_promisc_flags; - u8 last_promisc_flags; - spinlock_t mac_list_lock; - struct list_head uc_mac_list; - struct list_head mc_mac_list; - struct list_head vlan_list; +struct scmi_transport_ops; + +struct scmi_desc { + int (*transport_init)(); + void (*transport_exit)(); + const struct scmi_transport_ops *ops; + int max_rx_timeout_ms; + int max_msg; + int max_msg_size; + const bool force_polling; + const bool sync_cmds_completed_on_ret; + const bool atomic_enabled; }; -struct hclge_ptp_cycle { - u32 quo; - u32 numer; - u32 den; +struct scmi_chan_info; + +struct scmi_transport_ops { + int (*link_supplier)(struct device *); + bool (*chan_available)(struct device_node *, int); + int (*chan_setup)(struct scmi_chan_info *, struct device *, bool); + int (*chan_free)(int, void *, void *); + unsigned int (*get_max_msg)(struct scmi_chan_info *); + int (*send_message)(struct scmi_chan_info *, struct scmi_xfer *); + void (*mark_txdone)(struct scmi_chan_info *, int, struct scmi_xfer *); + void (*fetch_response)(struct scmi_chan_info *, struct scmi_xfer *); + void (*fetch_notification)(struct scmi_chan_info *, size_t, struct scmi_xfer *); + void (*clear_channel)(struct scmi_chan_info *); + bool (*poll_done)(struct scmi_chan_info *, struct scmi_xfer *); }; -struct hclge_ptp { - struct hclge_dev *hdev; - struct ptp_clock *clock; - struct sk_buff *tx_skb; - unsigned long flags; - void *io_base; - struct ptp_clock_info info; - struct hwtstamp_config ts_cfg; - spinlock_t lock; - u32 ptp_cfg; - u32 last_tx_seqid; - struct hclge_ptp_cycle cycle; - unsigned long tx_start; - unsigned long tx_cnt; - unsigned long tx_skipped; - unsigned long tx_cleaned; - unsigned long last_rx; - unsigned long rx_cnt; - unsigned long tx_timeout; +struct scmi_chan_info { + int id; + struct device *dev; + unsigned int rx_timeout_ms; + struct scmi_handle *handle; + bool no_completion_irq; + void *transport_info; }; -struct hclge_dbg_item { - char name[32]; - u16 interval; +struct scmi_debug_info { + struct dentry *top_dentry; + const char *name; + const char *type; + bool is_atomic; }; -enum hclge_opcode_type { - HCLGE_OPC_QUERY_FW_VER = 1, - HCLGE_OPC_CFG_RST_TRIGGER = 32, - HCLGE_OPC_GBL_RST_STATUS = 33, - HCLGE_OPC_QUERY_FUNC_STATUS = 34, - HCLGE_OPC_QUERY_PF_RSRC = 35, - HCLGE_OPC_QUERY_VF_RSRC = 36, - HCLGE_OPC_GET_CFG_PARAM = 37, - HCLGE_OPC_PF_RST_DONE = 38, - HCLGE_OPC_QUERY_VF_RST_RDY = 39, - HCLGE_OPC_STATS_64_BIT = 48, - HCLGE_OPC_STATS_32_BIT = 49, - HCLGE_OPC_STATS_MAC = 50, - HCLGE_OPC_QUERY_MAC_REG_NUM = 51, - HCLGE_OPC_STATS_MAC_ALL = 52, - HCLGE_OPC_QUERY_REG_NUM = 64, - HCLGE_OPC_QUERY_32_BIT_REG = 65, - HCLGE_OPC_QUERY_64_BIT_REG = 66, - HCLGE_OPC_DFX_BD_NUM = 67, - HCLGE_OPC_DFX_BIOS_COMMON_REG = 68, - HCLGE_OPC_DFX_SSU_REG_0 = 69, - HCLGE_OPC_DFX_SSU_REG_1 = 70, - HCLGE_OPC_DFX_IGU_EGU_REG = 71, - HCLGE_OPC_DFX_RPU_REG_0 = 72, - HCLGE_OPC_DFX_RPU_REG_1 = 73, - HCLGE_OPC_DFX_NCSI_REG = 74, - HCLGE_OPC_DFX_RTC_REG = 75, - HCLGE_OPC_DFX_PPP_REG = 76, - HCLGE_OPC_DFX_RCB_REG = 77, - HCLGE_OPC_DFX_TQP_REG = 78, - HCLGE_OPC_DFX_SSU_REG_2 = 79, - HCLGE_OPC_QUERY_DEV_SPECS = 80, - HCLGE_OPC_CONFIG_MAC_MODE = 769, - HCLGE_OPC_CONFIG_AN_MODE = 772, - HCLGE_OPC_QUERY_LINK_STATUS = 775, - HCLGE_OPC_CONFIG_MAX_FRM_SIZE = 776, - HCLGE_OPC_CONFIG_SPEED_DUP = 777, - HCLGE_OPC_QUERY_MAC_TNL_INT = 784, - HCLGE_OPC_MAC_TNL_INT_EN = 785, - HCLGE_OPC_CLEAR_MAC_TNL_INT = 786, - HCLGE_OPC_COMMON_LOOPBACK = 789, - HCLGE_OPC_QUERY_FEC_STATS = 790, - HCLGE_OPC_CONFIG_FEC_MODE = 794, - HCLGE_OPC_QUERY_ROH_TYPE_INFO = 905, - HCLGE_OPC_PTP_INT_EN = 1281, - HCLGE_OPC_PTP_MODE_CFG = 1287, - HCLGE_OPC_CFG_MAC_PAUSE_EN = 1793, - HCLGE_OPC_CFG_PFC_PAUSE_EN = 1794, - HCLGE_OPC_CFG_MAC_PARA = 1795, - HCLGE_OPC_CFG_PFC_PARA = 1796, - HCLGE_OPC_QUERY_MAC_TX_PKT_CNT = 1797, - HCLGE_OPC_QUERY_MAC_RX_PKT_CNT = 1798, - HCLGE_OPC_QUERY_PFC_TX_PKT_CNT = 1799, - HCLGE_OPC_QUERY_PFC_RX_PKT_CNT = 1800, - HCLGE_OPC_PRI_TO_TC_MAPPING = 1801, - HCLGE_OPC_QOS_MAP = 1802, - HCLGE_OPC_TM_PG_TO_PRI_LINK = 2052, - HCLGE_OPC_TM_QS_TO_PRI_LINK = 2053, - HCLGE_OPC_TM_NQ_TO_QS_LINK = 2054, - HCLGE_OPC_TM_RQ_TO_QS_LINK = 2055, - HCLGE_OPC_TM_PORT_WEIGHT = 2056, - HCLGE_OPC_TM_PG_WEIGHT = 2057, - HCLGE_OPC_TM_QS_WEIGHT = 2058, - HCLGE_OPC_TM_PRI_WEIGHT = 2059, - HCLGE_OPC_TM_PRI_C_SHAPPING = 2060, - HCLGE_OPC_TM_PRI_P_SHAPPING = 2061, - HCLGE_OPC_TM_PG_C_SHAPPING = 2062, - HCLGE_OPC_TM_PG_P_SHAPPING = 2063, - HCLGE_OPC_TM_PORT_SHAPPING = 2064, - HCLGE_OPC_TM_PG_SCH_MODE_CFG = 2066, - HCLGE_OPC_TM_PRI_SCH_MODE_CFG = 2067, - HCLGE_OPC_TM_QS_SCH_MODE_CFG = 2068, - HCLGE_OPC_TM_BP_TO_QSET_MAPPING = 2069, - HCLGE_OPC_TM_NODES = 2070, - HCLGE_OPC_ETS_TC_WEIGHT = 2115, - HCLGE_OPC_QSET_DFX_STS = 2116, - HCLGE_OPC_PRI_DFX_STS = 2117, - HCLGE_OPC_PG_DFX_STS = 2118, - HCLGE_OPC_PORT_DFX_STS = 2119, - HCLGE_OPC_SCH_NQ_CNT = 2120, - HCLGE_OPC_SCH_RQ_CNT = 2121, - HCLGE_OPC_TM_INTERNAL_STS = 2128, - HCLGE_OPC_TM_INTERNAL_CNT = 2129, - HCLGE_OPC_TM_INTERNAL_STS_1 = 2130, - HCLGE_OPC_TM_FLUSH = 2162, - HCLGE_OPC_TX_BUFF_ALLOC = 2305, - HCLGE_OPC_RX_PRIV_BUFF_ALLOC = 2306, - HCLGE_OPC_RX_PRIV_WL_ALLOC = 2307, - HCLGE_OPC_RX_COM_THRD_ALLOC = 2308, - HCLGE_OPC_RX_COM_WL_ALLOC = 2309, - HCLGE_OPC_RX_GBL_PKT_CNT = 2310, - HCLGE_OPC_SET_TQP_MAP = 2561, - HCLGE_OPC_CFG_TX_QUEUE = 2817, - HCLGE_OPC_QUERY_TX_POINTER = 2818, - HCLGE_OPC_QUERY_TX_STATS = 2819, - HCLGE_OPC_TQP_TX_QUEUE_TC = 2820, - HCLGE_OPC_CFG_RX_QUEUE = 2833, - HCLGE_OPC_QUERY_RX_POINTER = 2834, - HCLGE_OPC_QUERY_RX_STATS = 2835, - HCLGE_OPC_STASH_RX_QUEUE_LRO = 2838, - HCLGE_OPC_CFG_RX_QUEUE_LRO = 2839, - HCLGE_OPC_CFG_COM_TQP_QUEUE = 2848, - HCLGE_OPC_RESET_TQP_QUEUE = 2850, - HCLGE_OPC_PPU_PF_OTHER_INT_DFX = 2890, - HCLGE_OPC_TSO_GENERIC_CONFIG = 3073, - HCLGE_OPC_GRO_GENERIC_CONFIG = 3088, - HCLGE_OPC_RSS_GENERIC_CONFIG = 3329, - HCLGE_OPC_RSS_INDIR_TABLE = 3335, - HCLGE_OPC_RSS_TC_MODE = 3336, - HCLGE_OPC_RSS_INPUT_TUPLE = 3330, - HCLGE_OPC_CFG_PROMISC_MODE = 3585, - HCLGE_OPC_VLAN_PORT_TX_CFG = 3841, - HCLGE_OPC_VLAN_PORT_RX_CFG = 3842, - HCLGE_OPC_ADD_RING_TO_VECTOR = 5379, - HCLGE_OPC_DEL_RING_TO_VECTOR = 5380, - HCLGE_OPC_MAC_VLAN_ADD = 4096, - HCLGE_OPC_MAC_VLAN_REMOVE = 4097, - HCLGE_OPC_MAC_VLAN_TYPE_ID = 4098, - HCLGE_OPC_MAC_VLAN_INSERT = 4099, - HCLGE_OPC_MAC_VLAN_ALLOCATE = 4100, - HCLGE_OPC_MAC_ETHTYPE_ADD = 4112, - HCLGE_OPC_MAC_ETHTYPE_REMOVE = 4113, - HCLGE_OPC_MAC_VLAN_SWITCH_PARAM = 4147, - HCLGE_OPC_VLAN_FILTER_CTRL = 4352, - HCLGE_OPC_VLAN_FILTER_PF_CFG = 4353, - HCLGE_OPC_VLAN_FILTER_VF_CFG = 4354, - HCLGE_OPC_PORT_VLAN_BYPASS = 4355, - HCLGE_OPC_FD_MODE_CTRL = 4608, - HCLGE_OPC_FD_GET_ALLOCATION = 4609, - HCLGE_OPC_FD_KEY_CONFIG = 4610, - HCLGE_OPC_FD_TCAM_OP = 4611, - HCLGE_OPC_FD_AD_OP = 4612, - HCLGE_OPC_FD_CNT_OP = 4613, - HCLGE_OPC_FD_USER_DEF_OP = 4615, - HCLGE_OPC_FD_QB_CTRL = 4624, - HCLGE_OPC_FD_QB_AD_OP = 4625, - HCLGE_OPC_MDIO_CONFIG = 6400, - HCLGE_OPC_QCN_MOD_CFG = 6657, - HCLGE_OPC_QCN_GRP_TMPLT_CFG = 6658, - HCLGE_OPC_QCN_SHAPPING_CFG = 6659, - HCLGE_OPC_QCN_SHAPPING_BS_CFG = 6660, - HCLGE_OPC_QCN_QSET_LINK_CFG = 6661, - HCLGE_OPC_QCN_RP_STATUS_GET = 6662, - HCLGE_OPC_QCN_AJUST_INIT = 6663, - HCLGE_OPC_QCN_DFX_CNT_STATUS = 6664, - HCLGEVF_OPC_MBX_PF_TO_VF = 8192, - HCLGEVF_OPC_MBX_VF_TO_PF = 8193, - HCLGE_OPC_LED_STATUS_CFG = 45056, - HCLGE_OPC_CLEAR_HW_RESOURCE = 28683, - HCLGE_OPC_QUERY_NCL_CONFIG = 28689, - HCLGE_OPC_IMP_STATS_BD = 28690, - HCLGE_OPC_IMP_STATS_INFO = 28691, - HCLGE_OPC_IMP_COMPAT_CFG = 28698, - HCLGE_OPC_GET_SFP_EEPROM = 28928, - HCLGE_OPC_GET_SFP_EXIST = 28929, - HCLGE_OPC_GET_SFP_INFO = 28932, - HCLGE_MAC_COMMON_INT_EN = 782, - HCLGE_TM_SCH_ECC_INT_EN = 2089, - HCLGE_SSU_ECC_INT_CMD = 2441, - HCLGE_SSU_COMMON_INT_CMD = 2444, - HCLGE_PPU_MPF_ECC_INT_CMD = 2880, - HCLGE_PPU_MPF_OTHER_INT_CMD = 2881, - HCLGE_PPU_PF_OTHER_INT_CMD = 2882, - HCLGE_COMMON_ECC_INT_CFG = 5381, - HCLGE_QUERY_RAS_INT_STS_BD_NUM = 5392, - HCLGE_QUERY_CLEAR_MPF_RAS_INT = 5393, - HCLGE_QUERY_CLEAR_PF_RAS_INT = 5394, - HCLGE_QUERY_MSIX_INT_STS_BD_NUM = 5395, - HCLGE_QUERY_CLEAR_ALL_MPF_MSIX_INT = 5396, - HCLGE_QUERY_CLEAR_ALL_PF_MSIX_INT = 5397, - HCLGE_QUERY_ALL_ERR_BD_NUM = 5398, - HCLGE_QUERY_ALL_ERR_INFO = 5399, - HCLGE_CONFIG_ROCEE_RAS_INT_EN = 5504, - HCLGE_QUERY_CLEAR_ROCEE_RAS_INT = 5505, - HCLGE_ROCEE_PF_RAS_INT_CMD = 5508, - HCLGE_QUERY_ROCEE_ECC_RAS_INFO_CMD = 5509, - HCLGE_QUERY_ROCEE_AXI_RAS_INFO_CMD = 5510, - HCLGE_IGU_EGU_TNL_INT_EN = 6147, - HCLGE_IGU_COMMON_INT_EN = 6150, - HCLGE_TM_QCN_MEM_INT_CFG = 6676, - HCLGE_PPP_CMD0_INT_CMD = 8448, - HCLGE_PPP_CMD1_INT_CMD = 8449, - HCLGE_MAC_ETHERTYPE_IDX_RD = 8453, - HCLGE_OPC_WOL_GET_SUPPORTED_MODE = 8705, - HCLGE_OPC_WOL_CFG = 8706, - HCLGE_NCSI_INT_EN = 9217, - HCLGE_OPC_MAC_ADDR_CHECK = 36868, - HCLGE_OPC_PHY_LINK_KSETTING = 28709, - HCLGE_OPC_PHY_REG = 28710, - HCLGE_OPC_QUERY_LINK_DIAGNOSIS = 28714, +struct scmi_protocol; + +struct scmi_protocol_instance { + const struct scmi_handle *handle; + const struct scmi_protocol *proto; + void *gid; + refcount_t users; + void *priv; + struct scmi_protocol_handle ph; }; -struct hclge_dbg_reg_common_msg { - int msg_num; - int offset; - enum hclge_opcode_type cmd; +typedef int (*scmi_prot_init_ph_fn_t)(const struct scmi_protocol_handle *); + +struct scmi_protocol_events; + +struct scmi_protocol { + const u8 id; + struct module *owner; + const scmi_prot_init_ph_fn_t instance_init; + const scmi_prot_init_ph_fn_t instance_deinit; + const void *ops; + const struct scmi_protocol_events *events; }; -struct hclge_dbg_dfx_message; +struct scmi_event_ops; -struct hclge_dbg_reg_type_info { - enum hnae3_dbg_cmd cmd; - const struct hclge_dbg_dfx_message *dfx_msg; - struct hclge_dbg_reg_common_msg reg_msg; +struct scmi_event; + +struct scmi_protocol_events { + size_t queue_sz; + const struct scmi_event_ops *ops; + const struct scmi_event *evts; + unsigned int num_events; + unsigned int num_sources; }; -struct hclge_dbg_dfx_message { - int flag; - char message[60]; +struct scmi_event_ops { + int (*get_num_sources)(const struct scmi_protocol_handle *); + int (*set_notify_enabled)(const struct scmi_protocol_handle *, u8, u32, bool); + void * (*fill_custom_report)(const struct scmi_protocol_handle *, u8, ktime_t, const void *, size_t, void *, u32 *); }; -enum hnae3_tc_map_mode { - HNAE3_TC_MAP_MODE_PRIO = 0, - HNAE3_TC_MAP_MODE_DSCP = 1, +struct scmi_event { + u8 id; + size_t max_payld_sz; + size_t max_report_sz; }; -enum HCLGE_MAC_NODE_STATE { - HCLGE_MAC_TO_ADD = 0, - HCLGE_MAC_TO_DEL = 1, - HCLGE_MAC_ACTIVE = 2, +struct trace_event_raw_scmi_fc_call { + struct trace_entry ent; + u8 protocol_id; + u8 msg_id; + u32 res_id; + u32 val1; + u32 val2; + char __data[0]; }; -enum HNAE3_DEV_CAP_BITS { - HNAE3_DEV_SUPPORT_FD_B = 0, - HNAE3_DEV_SUPPORT_GRO_B = 1, - HNAE3_DEV_SUPPORT_FEC_B = 2, - HNAE3_DEV_SUPPORT_UDP_GSO_B = 3, - HNAE3_DEV_SUPPORT_QB_B = 4, - HNAE3_DEV_SUPPORT_FD_FORWARD_TC_B = 5, - HNAE3_DEV_SUPPORT_PTP_B = 6, - HNAE3_DEV_SUPPORT_INT_QL_B = 7, - HNAE3_DEV_SUPPORT_HW_TX_CSUM_B = 8, - HNAE3_DEV_SUPPORT_TX_PUSH_B = 9, - HNAE3_DEV_SUPPORT_PHY_IMP_B = 10, - HNAE3_DEV_SUPPORT_TQP_TXRX_INDEP_B = 11, - HNAE3_DEV_SUPPORT_HW_PAD_B = 12, - HNAE3_DEV_SUPPORT_STASH_B = 13, - HNAE3_DEV_SUPPORT_UDP_TUNNEL_CSUM_B = 14, - HNAE3_DEV_SUPPORT_PAUSE_B = 15, - HNAE3_DEV_SUPPORT_RAS_IMP_B = 16, - HNAE3_DEV_SUPPORT_RXD_ADV_LAYOUT_B = 17, - HNAE3_DEV_SUPPORT_PORT_VLAN_BYPASS_B = 18, - HNAE3_DEV_SUPPORT_VLAN_FLTR_MDF_B = 19, - HNAE3_DEV_SUPPORT_MC_MAC_MNG_B = 20, - HNAE3_DEV_SUPPORT_CQ_B = 21, - HNAE3_DEV_SUPPORT_FEC_STATS_B = 22, - HNAE3_DEV_SUPPORT_LANE_NUM_B = 23, - HNAE3_DEV_SUPPORT_WOL_B = 24, - HNAE3_DEV_SUPPORT_TM_FLUSH_B = 25, +struct trace_event_raw_scmi_xfer_begin { + struct trace_entry ent; + int transfer_id; + u8 msg_id; + u8 protocol_id; + u16 seq; + bool poll; + char __data[0]; }; -enum hnae3_media_type { - HNAE3_MEDIA_TYPE_UNKNOWN = 0, - HNAE3_MEDIA_TYPE_FIBER = 1, - HNAE3_MEDIA_TYPE_COPPER = 2, - HNAE3_MEDIA_TYPE_BACKPLANE = 3, - HNAE3_MEDIA_TYPE_NONE = 4, +struct trace_event_raw_scmi_xfer_response_wait { + struct trace_entry ent; + int transfer_id; + u8 msg_id; + u8 protocol_id; + u16 seq; + u32 timeout; + bool poll; + char __data[0]; }; -enum HCLGE_FD_STAGE { - HCLGE_FD_STAGE_1 = 0, - HCLGE_FD_STAGE_2 = 1, - MAX_STAGE_NUM = 2, +struct trace_event_raw_scmi_xfer_end { + struct trace_entry ent; + int transfer_id; + u8 msg_id; + u8 protocol_id; + u16 seq; + int status; + char __data[0]; }; -enum HCLGE_FD_USER_DEF_LAYER { - HCLGE_FD_USER_DEF_NONE = 0, - HCLGE_FD_USER_DEF_L2 = 1, - HCLGE_FD_USER_DEF_L3 = 2, - HCLGE_FD_USER_DEF_L4 = 3, +struct trace_event_raw_scmi_rx_done { + struct trace_entry ent; + int transfer_id; + u8 msg_id; + u8 protocol_id; + u16 seq; + u8 msg_type; + char __data[0]; }; -enum HCLGE_FD_NODE_STATE { - HCLGE_FD_TO_ADD = 0, - HCLGE_FD_TO_DEL = 1, - HCLGE_FD_ACTIVE = 2, - HCLGE_FD_DELETED = 3, +struct trace_event_raw_scmi_msg_dump { + struct trace_entry ent; + int id; + u8 channel_id; + u8 protocol_id; + u8 msg_id; + char tag[5]; + u16 seq; + int status; + size_t len; + u32 __data_loc_cmd; + char __data[0]; }; -struct hclge_tm_nodes_cmd { - u8 pg_base_id; - u8 pri_base_id; - __le16 qset_base_id; - __le16 queue_base_id; - u8 pg_num; - u8 pri_num; - __le16 qset_num; - __le16 queue_num; +struct trace_event_data_offsets_scmi_msg_dump { + u32 cmd; }; -struct hclge_bp_to_qs_map_cmd { - u8 tc_id; - u8 rsvd[2]; - u8 qs_group_id; - __le32 qs_bit_map; - u32 rsvd1; +struct scmi_protocol_devres { + const struct scmi_handle *handle; + u8 protocol_id; }; -struct hclge_ets_tc_weight_cmd { - u8 tc_weight[8]; - u8 weight_offset; - u8 rsvd[15]; -}; +struct trace_event_data_offsets_scmi_fc_call {}; -struct hclge_cfg_pause_param_cmd { - u8 mac_addr[6]; - u8 pause_trans_gap; - u8 rsvd; - __le16 pause_trans_time; - u8 rsvd1[6]; - u8 mac_addr_extra[6]; - u16 rsvd2; -}; +struct trace_event_data_offsets_scmi_xfer_begin {}; -struct hclge_qos_pri_map_cmd { - u8 pri0_tc: 4; - u8 pri1_tc: 4; - u8 pri2_tc: 4; - u8 pri3_tc: 4; - u8 pri4_tc: 4; - u8 pri5_tc: 4; - u8 pri6_tc: 4; - u8 pri7_tc: 4; - u8 vlan_pri: 4; - u8 rev: 4; -}; +struct trace_event_data_offsets_scmi_xfer_response_wait {}; -struct hclge_tx_buff_alloc_cmd { - __le16 tx_pkt_buff[8]; - u8 tx_buff_rsv[8]; -}; +struct trace_event_data_offsets_scmi_xfer_end {}; -struct hclge_rx_priv_buff_cmd { - __le16 buf_num[8]; - __le16 shared_buf; - u8 rsv[6]; -}; +struct trace_event_data_offsets_scmi_rx_done {}; -struct hclge_priv_wl { - __le16 high; - __le16 low; +struct scmi_msg_resp_domain_name_get { + __le32 flags; + u8 name[64]; }; -struct hclge_rx_com_wl { - struct hclge_priv_wl com_wl; +struct scmi_iterator { + void *msg; + void *resp; + struct scmi_xfer *t; + const struct scmi_protocol_handle *ph; + struct scmi_iterator_ops *ops; + struct scmi_iterator_state state; + void *priv; }; -struct hclge_rx_priv_wl_buf { - struct hclge_priv_wl tc_wl[4]; +struct scmi_msg_resp_desc_fc { + __le32 attr; + __le32 rate_limit; + __le32 chan_addr_low; + __le32 chan_addr_high; + __le32 chan_size; + __le32 db_addr_low; + __le32 db_addr_high; + __le32 db_set_lmask; + __le32 db_set_hmask; + __le32 db_preserve_lmask; + __le32 db_preserve_hmask; }; -struct hclge_rx_com_thrd { - struct hclge_priv_wl com_thrd[4]; +struct scmi_msg_get_fc_info { + __le32 domain; + __le32 message_id; }; -struct hclge_mac_node { - struct list_head node; - enum HCLGE_MAC_NODE_STATE state; - u8 mac_addr[6]; +struct scmi_msg_payld { + __le32 msg_header; + __le32 msg_payload[0]; }; -struct hclge_mac_ethertype_idx_rd_cmd { - u8 flags; - u8 resp_code; - __le16 vlan_tag; - u8 mac_addr[6]; - __le16 index; - __le16 ethter_type; - __le16 egress_port; - __le16 egress_queue; - __le16 rev0; - u8 i_port_bitmap; - u8 i_port_direction; - u8 rev1[2]; -}; +struct tee_context; -struct hclge_config_mac_mode_cmd { - __le32 txrx_pad_fcs_loop_en; - u8 rsv[20]; +struct scmi_optee_agent { + struct device *dev; + struct tee_context *tee_ctx; + u32 caps; + struct mutex mu; + struct list_head channel_list; }; -struct hclge_common_lb_cmd { - u8 mask; - u8 enable; - u8 result; - u8 rsv[21]; -}; +struct tee_device; -struct hclge_get_imp_bd_cmd { - __le32 bd_num; - u8 rsv[20]; +struct tee_context { + struct tee_device *teedev; + void *data; + struct kref refcount; + bool releasing; + bool supp_nowait; + bool cap_memref_null; }; -struct hclge_config_max_frm_size_cmd { - __le16 max_frm_size; - u8 min_frm_size; - u8 rsv[21]; -}; +struct tee_client_device_id; -struct hclge_config_mac_speed_dup_cmd { - u8 speed_dup; - u8 mac_change_fec_en; - u8 rsv[4]; - u8 lane_num; - u8 rsv1[17]; +struct tee_client_driver { + const struct tee_client_device_id *id_table; + struct device_driver driver; }; -struct hclge_fd_user_def_info { - enum HCLGE_FD_USER_DEF_LAYER layer; - u16 data; - u16 data_mask; - u16 offset; +struct tee_client_device_id { + uuid_t uuid; }; -struct hclge_fd_rule_tuples { - u8 src_mac[6]; - u8 dst_mac[6]; - u32 src_ip[4]; - u32 dst_ip[4]; - u16 src_port; - u16 dst_port; - u16 vlan_tag1; - u16 ether_proto; - u16 l2_user_def; - u16 l3_user_def; - u32 l4_user_def; - u8 ip_tos; - u8 ip_proto; +enum scmi_optee_pta_cmd { + PTA_SCMI_CMD_CAPABILITIES = 0, + PTA_SCMI_CMD_PROCESS_SMT_CHANNEL = 1, + PTA_SCMI_CMD_PROCESS_SMT_CHANNEL_MESSAGE = 2, + PTA_SCMI_CMD_GET_CHANNEL = 3, + PTA_SCMI_CMD_PROCESS_MSG_CHANNEL = 4, }; -struct hclge_fd_rule { - struct hlist_node rule_node; - struct hclge_fd_rule_tuples tuples; - struct hclge_fd_rule_tuples tuples_mask; - u32 unused_tuple; - u32 flow_type; - union { - struct { - unsigned long cookie; - u8 tc; - } cls_flower; - struct { - u16 flow_id; - } arfs; - struct { - struct hclge_fd_user_def_info user_def; - } ep; - }; - u16 queue_id; - u16 vf_id; - u16 location; - enum HCLGE_FD_ACTIVE_RULE_TYPE rule_type; - enum HCLGE_FD_NODE_STATE state; - u8 action; +struct tee_client_device { + struct tee_client_device_id id; + struct device dev; }; -struct hclge_fd_tcam_config_1_cmd { - u8 stage; - u8 xy_sel; - u8 port_info; - u8 rsv1[1]; - __le32 index; - u8 entry_vld; - u8 rsv2[7]; - u8 tcam_data[8]; +struct tee_ioctl_param { + __u64 attr; + __u64 a; + __u64 b; + __u64 c; }; -struct hclge_fd_tcam_config_2_cmd { - u8 tcam_data[24]; +struct tee_ioctl_open_session_arg { + __u8 uuid[16]; + __u8 clnt_uuid[16]; + __u32 clnt_login; + __u32 cancel_id; + __u32 session; + __u32 ret; + __u32 ret_origin; + __u32 num_params; + struct tee_ioctl_param params[0]; }; -struct hclge_fd_tcam_config_3_cmd { - u8 tcam_data[20]; - u8 rsv[4]; +struct tee_ioctl_invoke_arg { + __u32 func; + __u32 session; + __u32 cancel_id; + __u32 ret; + __u32 ret_origin; + __u32 num_params; + struct tee_ioctl_param params[0]; }; -struct hclge_vlan_filter_ctrl_cmd { - u8 vlan_type; - u8 vlan_fe; - u8 rsv1[2]; - u8 vf_id; - u8 rsv2[19]; -}; +struct tee_shm; -struct hclge_port_vlan_filter_bypass_cmd { - u8 bypass_state; - u8 rsv1[3]; - u8 vf_id; - u8 rsv2[19]; +struct tee_param_memref { + size_t shm_offs; + size_t size; + struct tee_shm *shm; }; -struct hclge_vport_vtag_tx_cfg_cmd { - u8 vport_vlan_cfg; - u8 vf_offset; - u8 rsv1[2]; - __le16 def_vlan_tag1; - __le16 def_vlan_tag2; - u8 vf_bitmap[8]; - u8 rsv2[8]; +struct tee_param_value { + u64 a; + u64 b; + u64 c; }; -struct hclge_vport_vtag_rx_cfg_cmd { - u8 vport_vlan_cfg; - u8 vf_offset; - u8 rsv1[6]; - u8 vf_bitmap[8]; - u8 rsv2[8]; +struct tee_param { + u64 attr; + union { + struct tee_param_memref memref; + struct tee_param_value value; + } u; }; -struct hclge_fd_ad_cnt_read_cmd { - u8 rsv0[4]; - __le16 index; - u8 rsv1[2]; - __le64 cnt; - u8 rsv2[8]; +struct tee_shm { + struct tee_context *ctx; + phys_addr_t paddr; + void *kaddr; + size_t size; + unsigned int offset; + struct page **pages; + size_t num_pages; + refcount_t refcount; + u32 flags; + int id; + u64 sec_world_id; }; -struct hclge_tm_shaper_para { - u32 rate; - u8 ir_b; - u8 ir_u; - u8 ir_s; - u8 bs_b; - u8 bs_s; - u8 flag; +struct tee_ioctl_version_data { + __u32 impl_id; + __u32 impl_caps; + __u32 gen_caps; }; -struct hclge_dbg_bitmap_cmd { +struct scmi_shared_mem; + +struct scmi_optee_channel { + u32 channel_id; + u32 tee_session; + u32 caps; + u32 rx_len; + struct mutex mu; + struct scmi_chan_info *cinfo; union { - u8 bitmap; - struct { - u8 bit0: 1; - u8 bit1: 1; - u8 bit2: 1; - u8 bit3: 1; - u8 bit4: 1; - u8 bit5: 1; - u8 bit6: 1; - u8 bit7: 1; - }; - }; + struct scmi_shared_mem *shmem; + struct scmi_msg_payld *msg; + } req; + struct tee_shm *tee_shm; + struct list_head link; }; -struct hclge_dbg_vlan_cfg { - u16 pvid; - u8 accept_tag1; - u8 accept_tag2; - u8 accept_untag1; - u8 accept_untag2; - u8 insert_tag1; - u8 insert_tag2; - u8 shift_tag; - u8 strip_tag1; - u8 strip_tag2; - u8 drop_tag1; - u8 drop_tag2; - u8 pri_only1; - u8 pri_only2; +enum { + RCD = 0, + RCH_DP = 1, + DEVICE = 2, + LD = 3, + FMLD = 4, + RP = 5, + DSP = 6, + USP = 7, }; -struct hclge_dbg_tcam_msg { - u8 stage; - u32 loc; +struct cxl_ras_capability_regs { + u32 uncor_status; + u32 uncor_mask; + u32 uncor_severity; + u32 cor_status; + u32 cor_mask; + u32 cap_control; + u32 header_log[16]; }; -enum ravb_reg { - CCC = 0, - DBAT = 4, - DLR = 8, - CSR = 12, - CDAR0 = 16, - CDAR1 = 20, - CDAR2 = 24, - CDAR3 = 28, - CDAR4 = 32, - CDAR5 = 36, - CDAR6 = 40, - CDAR7 = 44, - CDAR8 = 48, - CDAR9 = 52, - CDAR10 = 56, - CDAR11 = 60, - CDAR12 = 64, - CDAR13 = 68, - CDAR14 = 72, - CDAR15 = 76, - CDAR16 = 80, - CDAR17 = 84, - CDAR18 = 88, - CDAR19 = 92, - CDAR20 = 96, - CDAR21 = 100, - ESR = 136, - APSR = 140, - RCR = 144, - RQC0 = 148, - RQC1 = 152, - RQC2 = 156, - RQC3 = 160, - RQC4 = 164, - RPC = 176, - RTC = 180, - UFCW = 188, - UFCS = 192, - UFCV0 = 196, - UFCV1 = 200, - UFCV2 = 204, - UFCV3 = 208, - UFCV4 = 212, - UFCD0 = 224, - UFCD1 = 228, - UFCD2 = 232, - UFCD3 = 236, - UFCD4 = 240, - SFO = 252, - SFP0 = 256, - SFP1 = 260, - SFP2 = 264, - SFP3 = 268, - SFP4 = 272, - SFP5 = 276, - SFP6 = 280, - SFP7 = 284, - SFP8 = 288, - SFP9 = 292, - SFP10 = 296, - SFP11 = 300, - SFP12 = 304, - SFP13 = 308, - SFP14 = 312, - SFP15 = 316, - SFP16 = 320, - SFP17 = 324, - SFP18 = 328, - SFP19 = 332, - SFP20 = 336, - SFP21 = 340, - SFP22 = 344, - SFP23 = 348, - SFP24 = 352, - SFP25 = 356, - SFP26 = 360, - SFP27 = 364, - SFP28 = 368, - SFP29 = 372, - SFP30 = 376, - SFP31 = 380, - SFM0 = 448, - SFM1 = 452, - TGC = 768, - TCCR = 772, - TSR = 776, - TFA0 = 784, - TFA1 = 788, - TFA2 = 792, - CIVR0 = 800, - CIVR1 = 804, - CDVR0 = 808, - CDVR1 = 812, - CUL0 = 816, - CUL1 = 820, - CLL0 = 824, - CLL1 = 828, - DIC = 848, - DIS = 852, - EIC = 856, - EIS = 860, - RIC0 = 864, - RIS0 = 868, - RIC1 = 872, - RIS1 = 876, - RIC2 = 880, - RIS2 = 884, - TIC = 888, - TIS = 892, - ISS = 896, - CIE = 900, - GCCR = 912, - GMTT = 916, - GPTC = 920, - GTI = 924, - GTO0 = 928, - GTO1 = 932, - GTO2 = 936, - GIC = 940, - GIS = 944, - GCPT = 948, - GCT0 = 952, - GCT1 = 956, - GCT2 = 960, - GIE = 972, - GID = 976, - DIL = 1088, - RIE0 = 1120, - RID0 = 1124, - RIE2 = 1136, - RID2 = 1140, - TIE = 1144, - TID = 1148, - ECMR = 1280, - RFLR = 1288, - ECSR = 1296, - ECSIPR = 1304, - PIR = 1312, - PSR = 1320, - PIPR = 1324, - CXR31 = 1328, - CXR35 = 1344, - MPR = 1368, - PFTCR = 1372, - PFRCR = 1376, - GECMR = 1456, - MAHR = 1472, - MALR = 1480, - TROCR = 1792, - CXR41 = 1800, - CXR42 = 1808, - CEFCR = 1856, - FRECR = 1864, - TSFRCR = 1872, - TLFRCR = 1880, - RFCR = 1888, - MAFCR = 1912, - CSR0 = 2048, -}; +struct cper_sec_prot_err { + u64 valid_bits; + u8 agent_type; + u8 reserved[7]; + union { + u64 rcrb_base_addr; + struct { + u8 function; + u8 device; + u8 bus; + u16 segment; + u8 reserved_1[3]; + } __attribute__((packed)); + } agent_addr; + struct { + u16 vendor_id; + u16 device_id; + u16 subsystem_vendor_id; + u16 subsystem_id; + u8 class_code[2]; + u16 slot; + u8 reserved_1[4]; + } device_id; + struct { + u32 lower_dw; + u32 upper_dw; + } dev_serial_num; + u8 capability[60]; + u16 dvsec_len; + u16 err_len; + u8 reserved_2[4]; +} __attribute__((packed)); -enum GIS_BIT { - GIS_PTCF = 1, - GIS_PTMF = 4, - GIS_RESERVED = 64512, +enum efi_rts_ids { + EFI_NONE = 0, + EFI_GET_TIME = 1, + EFI_SET_TIME = 2, + EFI_GET_WAKEUP_TIME = 3, + EFI_SET_WAKEUP_TIME = 4, + EFI_GET_VARIABLE = 5, + EFI_GET_NEXT_VARIABLE = 6, + EFI_SET_VARIABLE = 7, + EFI_QUERY_VARIABLE_INFO = 8, + EFI_GET_NEXT_HIGH_MONO_COUNT = 9, + EFI_RESET_SYSTEM = 10, + EFI_UPDATE_CAPSULE = 11, + EFI_QUERY_CAPSULE_CAPS = 12, + EFI_ACPI_PRM_HANDLER = 13, }; -enum ptp_clock_events { - PTP_CLOCK_ALARM = 0, - PTP_CLOCK_EXTTS = 1, - PTP_CLOCK_PPS = 2, - PTP_CLOCK_PPSUSR = 3, -}; +union efi_rts_args; -enum GCCR_BIT { - GCCR_TCR = 3, - GCCR_TCR_NOREQ = 0, - GCCR_TCR_RESET = 1, - GCCR_TCR_CAPTURE = 3, - GCCR_LTO = 4, - GCCR_LTI = 8, - GCCR_LPTC = 16, - GCCR_LMTT = 32, - GCCR_TCSS = 768, - GCCR_TCSS_GPTP = 0, - GCCR_TCSS_ADJGPTP = 256, - GCCR_TCSS_AVTP = 512, +struct efi_runtime_work { + union efi_rts_args *args; + efi_status_t status; + struct work_struct work; + enum efi_rts_ids efi_rts_id; + struct completion efi_rts_comp; + const void *caller; }; -enum GTI_BIT { - GTI_TIV = 268435455, +union efi_rts_args { + struct { + efi_time_t *time; + efi_time_cap_t *capabilities; + } GET_TIME; + struct { + efi_time_t *time; + } SET_TIME; + struct { + efi_bool_t *enabled; + efi_bool_t *pending; + efi_time_t *time; + } GET_WAKEUP_TIME; + struct { + efi_bool_t enable; + efi_time_t *time; + } SET_WAKEUP_TIME; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 *attr; + unsigned long *data_size; + void *data; + } GET_VARIABLE; + struct { + unsigned long *name_size; + efi_char16_t *name; + efi_guid_t *vendor; + } GET_NEXT_VARIABLE; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 attr; + unsigned long data_size; + void *data; + } SET_VARIABLE; + struct { + u32 attr; + u64 *storage_space; + u64 *remaining_space; + u64 *max_variable_size; + } QUERY_VARIABLE_INFO; + struct { + u32 *high_count; + } GET_NEXT_HIGH_MONO_COUNT; + struct { + efi_capsule_header_t **capsules; + unsigned long count; + unsigned long sg_list; + } UPDATE_CAPSULE; + struct { + efi_capsule_header_t **capsules; + unsigned long count; + u64 *max_size; + int *reset_type; + } QUERY_CAPSULE_CAPS; + struct { + efi_status_t (*acpi_prm_handler)(u64, void *); + u64 param_buffer_addr; + void *context; + } ACPI_PRM_HANDLER; }; -enum GIC_BIT { - GIC_PTCE = 1, - GIC_PTME = 4, +struct imx_sc_ipc; + +struct imx_sc_chan { + struct imx_sc_ipc *sc_ipc; + struct mbox_client cl; + struct mbox_chan *ch; + int idx; + struct completion tx_done; }; -enum GIE_BIT { - GIE_PTCS = 1, - GIE_PTOS = 2, - GIE_PTMS0 = 4, - GIE_PTMS1 = 8, - GIE_PTMS2 = 16, - GIE_PTMS3 = 32, - GIE_PTMS4 = 64, - GIE_PTMS5 = 128, - GIE_PTMS6 = 256, - GIE_PTMS7 = 512, - GIE_ATCS0 = 65536, - GIE_ATCS1 = 131072, - GIE_ATCS2 = 262144, - GIE_ATCS3 = 524288, - GIE_ATCS4 = 1048576, - GIE_ATCS5 = 2097152, - GIE_ATCS6 = 4194304, - GIE_ATCS7 = 8388608, - GIE_ATCS8 = 16777216, - GIE_ATCS9 = 33554432, - GIE_ATCS10 = 67108864, - GIE_ATCS11 = 134217728, - GIE_ATCS12 = 268435456, - GIE_ATCS13 = 536870912, - GIE_ATCS14 = 1073741824, - GIE_ATCS15 = 2147483648, +struct imx_sc_ipc { + struct imx_sc_chan chans[8]; + struct device *dev; + struct mutex lock; + struct completion done; + bool fast_ipc; + u32 *msg; + u8 rx_size; + u8 count; }; -enum GID_BIT { - GID_PTCD = 1, - GID_PTOD = 2, - GID_PTMD0 = 4, - GID_PTMD1 = 8, - GID_PTMD2 = 16, - GID_PTMD3 = 32, - GID_PTMD4 = 64, - GID_PTMD5 = 128, - GID_PTMD6 = 256, - GID_PTMD7 = 512, - GID_ATCD0 = 65536, - GID_ATCD1 = 131072, - GID_ATCD2 = 262144, - GID_ATCD3 = 524288, - GID_ATCD4 = 1048576, - GID_ATCD5 = 2097152, - GID_ATCD6 = 4194304, - GID_ATCD7 = 8388608, - GID_ATCD8 = 16777216, - GID_ATCD9 = 33554432, - GID_ATCD10 = 67108864, - GID_ATCD11 = 134217728, - GID_ATCD12 = 268435456, - GID_ATCD13 = 536870912, - GID_ATCD14 = 1073741824, - GID_ATCD15 = 2147483648, +enum imx_sc_rpc_svc { + IMX_SC_RPC_SVC_UNKNOWN = 0, + IMX_SC_RPC_SVC_RETURN = 1, + IMX_SC_RPC_SVC_PM = 2, + IMX_SC_RPC_SVC_RM = 3, + IMX_SC_RPC_SVC_TIMER = 5, + IMX_SC_RPC_SVC_PAD = 6, + IMX_SC_RPC_SVC_MISC = 7, + IMX_SC_RPC_SVC_IRQ = 8, }; -struct mdiobb_ops; +enum imx_misc_func { + IMX_SC_MISC_FUNC_UNKNOWN = 0, + IMX_SC_MISC_FUNC_SET_CONTROL = 1, + IMX_SC_MISC_FUNC_GET_CONTROL = 2, + IMX_SC_MISC_FUNC_SET_MAX_DMA_GROUP = 4, + IMX_SC_MISC_FUNC_SET_DMA_GROUP = 5, + IMX_SC_MISC_FUNC_SECO_IMAGE_LOAD = 8, + IMX_SC_MISC_FUNC_SECO_AUTHENTICATE = 9, + IMX_SC_MISC_FUNC_DEBUG_OUT = 10, + IMX_SC_MISC_FUNC_WAVEFORM_CAPTURE = 6, + IMX_SC_MISC_FUNC_BUILD_INFO = 15, + IMX_SC_MISC_FUNC_UNIQUE_ID = 19, + IMX_SC_MISC_FUNC_SET_ARI = 3, + IMX_SC_MISC_FUNC_BOOT_STATUS = 7, + IMX_SC_MISC_FUNC_BOOT_DONE = 14, + IMX_SC_MISC_FUNC_OTP_FUSE_READ = 11, + IMX_SC_MISC_FUNC_OTP_FUSE_WRITE = 17, + IMX_SC_MISC_FUNC_SET_TEMP = 12, + IMX_SC_MISC_FUNC_GET_TEMP = 13, + IMX_SC_MISC_FUNC_GET_BOOT_DEV = 16, + IMX_SC_MISC_FUNC_GET_BUTTON_STATUS = 18, +}; -struct mdiobb_ctrl { - const struct mdiobb_ops *ops; - unsigned int override_op_c22; - u8 op_c22_read; - u8 op_c22_write; +enum imx_sc_error_codes { + IMX_SC_ERR_NONE = 0, + IMX_SC_ERR_VERSION = 1, + IMX_SC_ERR_CONFIG = 2, + IMX_SC_ERR_PARM = 3, + IMX_SC_ERR_NOACCESS = 4, + IMX_SC_ERR_LOCKED = 5, + IMX_SC_ERR_UNAVAILABLE = 6, + IMX_SC_ERR_NOTFOUND = 7, + IMX_SC_ERR_NOPOWER = 8, + IMX_SC_ERR_IPC = 9, + IMX_SC_ERR_BUSY = 10, + IMX_SC_ERR_FAIL = 11, + IMX_SC_ERR_LAST = 12, }; -struct ravb_ptp_perout { - u32 target; - u32 period; +struct imx_sc_rpc_msg { + uint8_t ver; + uint8_t size; + uint8_t svc; + uint8_t func; }; -struct ravb_ptp { - struct ptp_clock *clock; - struct ptp_clock_info info; - u32 default_addend; - u32 current_addend; - int extts[1]; - struct ravb_ptp_perout perout[1]; +struct tegra186_timer_soc { + unsigned int num_timers; + unsigned int num_wdts; }; -struct ravb_desc; +struct tegra186_tmr; -struct ravb_rx_desc; +struct tegra186_wdt { + struct watchdog_device base; + void *regs; + unsigned int index; + bool locked; + struct tegra186_tmr *tmr; +}; -struct ravb_ex_rx_desc; +struct tegra186_timer; -struct ravb_tx_desc; +struct tegra186_tmr { + struct tegra186_timer *parent; + void *regs; + unsigned int index; + unsigned int hwirq; +}; -struct ravb_hw_info; +struct tegra186_timer { + const struct tegra186_timer_soc *soc; + struct device *dev; + void *regs; + struct tegra186_wdt *wdt; + struct clocksource usec; + struct clocksource tsc; + struct clocksource osc; +}; -struct ravb_private { - struct net_device *ndev; - struct platform_device *pdev; - void *addr; - struct clk *clk; - struct clk *refclk; - struct clk *gptp_clk; - struct mdiobb_ctrl mdiobb; - u32 num_rx_ring[2]; - u32 num_tx_ring[2]; - u32 desc_bat_size; - dma_addr_t desc_bat_dma; - struct ravb_desc *desc_bat; - dma_addr_t rx_desc_dma[2]; - dma_addr_t tx_desc_dma[2]; - struct ravb_rx_desc *gbeth_rx_ring; - struct ravb_ex_rx_desc *rx_ring[2]; - struct ravb_tx_desc *tx_ring[2]; - void *tx_align[2]; - struct sk_buff *rx_1st_skb; - struct sk_buff **rx_skb[2]; - struct sk_buff **tx_skb[2]; - u32 rx_over_errors; - u32 rx_fifo_errors; - struct net_device_stats stats[2]; - u32 tstamp_tx_ctrl; - u32 tstamp_rx_ctrl; - struct list_head ts_skb_list; - u32 ts_skb_tag; - struct ravb_ptp ptp; - spinlock_t lock; - u32 cur_rx[2]; - u32 dirty_rx[2]; - u32 cur_tx[2]; - u32 dirty_tx[2]; - struct napi_struct napi[2]; - struct work_struct work; - struct mii_bus *mii_bus; - int link; - phy_interface_t phy_interface; - int msg_enable; - int speed; - int emac_irq; - int erra_irq; - int mgmta_irq; - int rx_irqs[2]; - int tx_irqs[2]; - unsigned int no_avb_link: 1; - unsigned int avb_link_active_low: 1; - unsigned int wol_enabled: 1; - unsigned int rxcidm: 1; - unsigned int txcidm: 1; - unsigned int rgmii_override: 1; - unsigned int num_tx_desc; - int duplex; - const struct ravb_hw_info *info; - struct reset_control *rstc; +struct memblock_type { + unsigned long cnt; + unsigned long max; + phys_addr_t total_size; + struct memblock_region *regions; + char *name; }; -struct mdiobb_ops { - struct module *owner; - void (*set_mdc)(struct mdiobb_ctrl *, int); - void (*set_mdio_dir)(struct mdiobb_ctrl *, int); - void (*set_mdio_data)(struct mdiobb_ctrl *, int); - int (*get_mdio_data)(struct mdiobb_ctrl *); +enum rproc_dump_mechanism { + RPROC_COREDUMP_DISABLED = 0, + RPROC_COREDUMP_ENABLED = 1, + RPROC_COREDUMP_INLINE = 2, }; -struct ravb_desc { - __le16 ds; - u8 cc; - u8 die_dt; - __le32 dptr; +enum rproc_crash_type { + RPROC_MMUFAULT = 0, + RPROC_WATCHDOG = 1, + RPROC_FATAL_ERROR = 2, }; -struct ravb_rx_desc { - __le16 ds_cc; - u8 msc; - u8 die_dt; - __le32 dptr; +enum fw_resource_type { + RSC_CARVEOUT = 0, + RSC_DEVMEM = 1, + RSC_TRACE = 2, + RSC_VDEV = 3, + RSC_LAST = 4, + RSC_VENDOR_START = 128, + RSC_VENDOR_END = 512, }; -struct ravb_ex_rx_desc { - __le16 ds_cc; - u8 msc; - u8 die_dt; - __le32 dptr; - __le32 ts_n; - __le32 ts_sl; - __le16 ts_sh; - __le16 res; +enum rproc_state { + RPROC_OFFLINE = 0, + RPROC_SUSPENDED = 1, + RPROC_RUNNING = 2, + RPROC_CRASHED = 3, + RPROC_DELETED = 4, + RPROC_ATTACHED = 5, + RPROC_DETACHED = 6, + RPROC_LAST = 7, }; -struct ravb_tx_desc { - __le16 ds_tagl; - u8 tagh_tsr; - u8 die_dt; - __le32 dptr; +struct rproc; + +struct rproc_mem_entry { + void *va; + bool is_iomem; + dma_addr_t dma; + size_t len; + u32 da; + void *priv; + char name[32]; + struct list_head node; + u32 rsc_offset; + u32 flags; + u32 of_resm_idx; + int (*alloc)(struct rproc *, struct rproc_mem_entry *); + int (*release)(struct rproc *, struct rproc_mem_entry *); }; -struct ravb_hw_info { - void (*rx_ring_free)(struct net_device *, int); - void (*rx_ring_format)(struct net_device *, int); - void * (*alloc_rx_desc)(struct net_device *, int); - bool (*receive)(struct net_device *, int *, int); - void (*set_rate)(struct net_device *); - int (*set_feature)(struct net_device *, netdev_features_t); - int (*dmac_init)(struct net_device *); - void (*emac_init)(struct net_device *); - const char (*gstrings_stats)[32]; - size_t gstrings_size; - netdev_features_t net_hw_features; - netdev_features_t net_features; - int stats_len; - size_t max_rx_len; - u32 tccr_mask; - u32 rx_max_buf_size; - unsigned int aligned_tx: 1; - unsigned int internal_delay: 1; - unsigned int tx_counters: 1; - unsigned int carrier_counters: 1; - unsigned int multi_irqs: 1; - unsigned int irq_en_dis: 1; - unsigned int err_mgmt_irqs: 1; - unsigned int gptp: 1; - unsigned int ccc_gac: 1; - unsigned int gptp_ref_clk: 1; - unsigned int nc_queues: 1; - unsigned int magic_pkt: 1; - unsigned int half_duplex: 1; -}; +struct rproc_ops; -struct pps_event_time { - struct timespec64 ts_real; -}; +struct resource_table; -struct ptp_clock_event { - int type; +struct rproc { + struct list_head node; + struct iommu_domain *domain; + const char *name; + const char *firmware; + void *priv; + struct rproc_ops *ops; + struct device dev; + atomic_t power; + unsigned int state; + enum rproc_dump_mechanism dump_conf; + struct mutex lock; + struct dentry *dbg_dir; + struct list_head traces; + int num_traces; + struct list_head carveouts; + struct list_head mappings; + u64 bootaddr; + struct list_head rvdevs; + struct list_head subdevs; + struct idr notifyids; int index; - union { - u64 timestamp; - struct pps_event_time pps_times; - }; + struct work_struct crash_handler; + unsigned int crash_cnt; + bool recovery_disabled; + int max_notifyid; + struct resource_table *table_ptr; + struct resource_table *clean_table; + struct resource_table *cached_table; + size_t table_sz; + bool has_iommu; + bool auto_boot; + bool sysfs_read_only; + struct list_head dump_segments; + int nb_vdev; + u8 elf_class; + u16 elf_machine; + struct cdev cdev; + bool cdev_put_on_release; + unsigned long features[1]; }; -struct tegra_xtal_freq { - unsigned int freq; - u8 enable_delay; - u8 stable_count; - u8 active_delay; - u8 xtal_freq_count; - u16 debounce; +struct rproc_ops { + int (*prepare)(struct rproc *); + int (*unprepare)(struct rproc *); + int (*start)(struct rproc *); + int (*stop)(struct rproc *); + int (*attach)(struct rproc *); + int (*detach)(struct rproc *); + void (*kick)(struct rproc *, int); + void * (*da_to_va)(struct rproc *, u64, size_t, bool *); + int (*parse_fw)(struct rproc *, const struct firmware *); + int (*handle_rsc)(struct rproc *, u32, void *, int, int); + struct resource_table * (*find_loaded_rsc_table)(struct rproc *, const struct firmware *); + struct resource_table * (*get_loaded_rsc_table)(struct rproc *, size_t *); + int (*load)(struct rproc *, const struct firmware *); + int (*sanity_check)(struct rproc *, const struct firmware *); + u64 (*get_boot_addr)(struct rproc *, const struct firmware *); + unsigned long (*panic)(struct rproc *); + void (*coredump)(struct rproc *); }; -struct tegra_phy_soc_config { - bool utmi_pll_config_in_car_module; - bool has_hostpc; - bool requires_usbmode_setup; - bool requires_extra_tuning_parameters; - bool requires_pmc_ao_power_up; +struct resource_table { + u32 ver; + u32 num; + u32 reserved[2]; + u32 offset[0]; }; -enum tegra_usb_phy_port_speed { - TEGRA_USB_PHY_PORT_SPEED_FULL = 0, - TEGRA_USB_PHY_PORT_SPEED_LOW = 1, - TEGRA_USB_PHY_PORT_SPEED_HIGH = 2, +struct rproc_debug_trace { + struct rproc *rproc; + struct dentry *tfile; + struct list_head node; + struct rproc_mem_entry trace_mem; }; -struct tegra_usb_phy { - int irq; - int instance; - const struct tegra_xtal_freq *freq; - void *regs; - void *pad_regs; - struct clk *clk; - struct clk *pll_u; - struct clk *pad_clk; - struct regulator *vbus; - struct regmap *pmc_regmap; - enum usb_dr_mode mode; - void *config; - const struct tegra_phy_soc_config *soc_config; - struct usb_phy *ulpi; - struct usb_phy u_phy; - bool is_legacy_phy; - bool is_ulpi_phy; - struct gpio_desc *reset_gpio; - struct reset_control *pad_rst; - bool wakeup_enabled; - bool pad_wakeup; - bool powered_on; +struct fw_rsc_vdev_vring { + u32 da; + u32 align; + u32 num; + u32 notifyid; + u32 pa; }; -struct tegra_utmip_config { - u8 hssync_start_delay; - u8 elastic_limit; - u8 idle_wait_delay; - u8 term_range_adj; - bool xcvr_setup_use_fuses; - u8 xcvr_setup; - u8 xcvr_lsfslew; - u8 xcvr_lsrslew; - u8 xcvr_hsslew; - u8 hssquelch_level; - u8 hsdiscon_level; +struct fw_rsc_vdev { + u32 id; + u32 notifyid; + u32 dfeatures; + u32 gfeatures; + u32 config_len; + u8 status; + u8 num_of_vrings; + u8 reserved[2]; + struct fw_rsc_vdev_vring vring[0]; }; -enum ssusb_uwk_vers { - SSUSB_UWK_V1 = 1, - SSUSB_UWK_V2 = 2, - SSUSB_UWK_V1_1 = 101, - SSUSB_UWK_V1_2 = 102, +struct fw_rsc_trace { + u32 da; + u32 len; + u32 reserved; + u8 name[32]; }; -enum mtu3_dr_force_mode { - MTU3_DR_FORCE_NONE = 0, - MTU3_DR_FORCE_HOST = 1, - MTU3_DR_FORCE_DEVICE = 2, +struct fw_rsc_devmem { + u32 da; + u32 pa; + u32 len; + u32 flags; + u32 reserved; + u8 name[32]; }; -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 fw_rsc_carveout { + u32 da; + u32 pa; + u32 len; + u32 flags; + u32 reserved; + u8 name[32]; }; -struct max77686_rtc_driver_data { - unsigned long delay; - u8 mask; - const unsigned int *map; - bool alarm_enable_reg; - int rtc_i2c_addr; - bool rtc_irq_from_platform; - int alarm_pending_status_reg; - const struct regmap_irq_chip *rtc_irq_chip; - const struct regmap_config *regmap_config; +struct fw_rsc_hdr { + u32 type; + u8 data[0]; }; -enum max77686_irq { - MAX77686_PMICIRQ_PWRONF = 0, - MAX77686_PMICIRQ_PWRONR = 1, - MAX77686_PMICIRQ_JIGONBF = 2, - MAX77686_PMICIRQ_JIGONBR = 3, - MAX77686_PMICIRQ_ACOKBF = 4, - MAX77686_PMICIRQ_ACOKBR = 5, - MAX77686_PMICIRQ_ONKEY1S = 6, - MAX77686_PMICIRQ_MRSTB = 7, - MAX77686_PMICIRQ_140C = 8, - MAX77686_PMICIRQ_120C = 9, - MAX77686_RTCIRQ_RTC60S = 0, - MAX77686_RTCIRQ_RTCA1 = 1, - MAX77686_RTCIRQ_RTCA2 = 2, - MAX77686_RTCIRQ_SMPL = 3, - MAX77686_RTCIRQ_RTC1S = 4, - MAX77686_RTCIRQ_WTSR = 5, +struct dpfe_api { + int version; + const char *fw_name; + const struct attribute_group **sysfs_attrs; + u32 command[48]; }; -enum max77686_rtc_reg_offset { - REG_RTC_CONTROLM = 0, - REG_RTC_CONTROL = 1, - REG_RTC_UPDATE0 = 2, - REG_WTSR_SMPL_CNTL = 3, - REG_RTC_SEC = 4, - REG_RTC_MIN = 5, - REG_RTC_HOUR = 6, - REG_RTC_WEEKDAY = 7, - REG_RTC_MONTH = 8, - REG_RTC_YEAR = 9, - REG_RTC_MONTHDAY = 10, - REG_ALARM1_SEC = 11, - REG_ALARM1_MIN = 12, - REG_ALARM1_HOUR = 13, - REG_ALARM1_WEEKDAY = 14, - REG_ALARM1_MONTH = 15, - REG_ALARM1_YEAR = 16, - REG_ALARM1_DATE = 17, - REG_ALARM2_SEC = 18, - REG_ALARM2_MIN = 19, - REG_ALARM2_HOUR = 20, - REG_ALARM2_WEEKDAY = 21, - REG_ALARM2_MONTH = 22, - REG_ALARM2_YEAR = 23, - REG_ALARM2_DATE = 24, - REG_RTC_AE1 = 25, - REG_RTC_END = 26, +enum dpfe_commands { + DPFE_CMD_GET_INFO = 0, + DPFE_CMD_GET_REFRESH = 1, + DPFE_CMD_GET_VENDOR = 2, + DPFE_CMD_MAX = 3, }; -enum MAX77686_RTC_OP { - MAX77686_RTC_WRITE = 0, - MAX77686_RTC_READ = 1, +enum dpfe_msg_fields { + MSG_HEADER = 0, + MSG_COMMAND = 1, + MSG_ARG_COUNT = 2, + MSG_ARG0 = 3, + MSG_FIELD_MAX = 16, }; -enum { - RTC_SEC___2 = 0, - RTC_MIN___2 = 1, - RTC_HOUR___2 = 2, - RTC_WEEKDAY___2 = 3, - RTC_MONTH___2 = 4, - RTC_YEAR = 5, - RTC_MONTHDAY = 6, - RTC_NR_TIME = 7, +struct dpfe_firmware_header { + u32 magic; + u32 sequence; + u32 version; + u32 imem_size; + u32 dmem_size; }; -struct max77686_rtc_info { +struct brcmstb_dpfe_priv { + void *regs; + void *dmem; + void *imem; struct device *dev; - struct i2c_client *rtc; - struct rtc_device *rtc_dev; + const struct dpfe_api *dpfe_api; struct mutex lock; - struct regmap *regmap; - struct regmap *rtc_regmap; - const struct max77686_rtc_driver_data *drv_data; - struct regmap_irq_chip_data *rtc_irq_data; - int rtc_irq; - int virq; -}; - -struct uniphier_fi2c_priv { - struct completion comp; - struct i2c_adapter adap; - void *membase; - struct clk *clk; - unsigned int len; - u8 *buf; - u32 enabled_irqs; - int error; - unsigned int flags; - unsigned int busy_cnt; - unsigned int clk_cycle; - spinlock_t lock; -}; - -struct thermal_attr { - struct device_attribute attr; - char name[20]; -}; - -struct imx2_wdt_data { - bool wdw_supported; -}; - -struct imx2_wdt_device { - struct clk *clk; - struct regmap *regmap; - struct watchdog_device wdog; - const struct imx2_wdt_data *data; - bool ext_reset; - bool clk_is_on; - bool no_ping; - bool sleep_wait; -}; - -struct private_data { - struct list_head node; - cpumask_var_t cpus; - struct device *cpu_dev; - struct cpufreq_frequency_table *freq_table; - bool have_static_opps; - int opp_token; }; -struct cpufreq_dt_platform_data { - bool have_governor_per_policy; - unsigned int (*get_intermediate)(struct cpufreq_policy *, unsigned int); - int (*target_intermediate)(struct cpufreq_policy *, unsigned int); - int (*suspend)(struct cpufreq_policy *); - int (*resume)(struct cpufreq_policy *); +struct init_data { + unsigned int dmem_len; + unsigned int imem_len; + unsigned int chksum; + bool is_big_endian; }; -struct mmci_host; +struct hisi_pmu; -struct mmci_host_ops { - int (*validate_data)(struct mmci_host *, struct mmc_data *); - int (*prep_data)(struct mmci_host *, struct mmc_data *, bool); - void (*unprep_data)(struct mmci_host *, struct mmc_data *, int); - u32 (*get_datactrl_cfg)(struct mmci_host *); - void (*get_next_data)(struct mmci_host *, struct mmc_data *); - int (*dma_setup)(struct mmci_host *); - void (*dma_release)(struct mmci_host *); - int (*dma_start)(struct mmci_host *, unsigned int *); - void (*dma_finalize)(struct mmci_host *, struct mmc_data *); - void (*dma_error)(struct mmci_host *); - void (*set_clkreg)(struct mmci_host *, unsigned int); - void (*set_pwrreg)(struct mmci_host *, unsigned int); - bool (*busy_complete)(struct mmci_host *, struct mmc_command *, u32, u32); - void (*pre_sig_volt_switch)(struct mmci_host *); - int (*post_sig_volt_switch)(struct mmci_host *, struct mmc_ios *); +struct hisi_uncore_ops { + int (*check_filter)(struct perf_event *); + void (*write_evtype)(struct hisi_pmu *, int, u32); + int (*get_event_idx)(struct perf_event *); + u64 (*read_counter)(struct hisi_pmu *, struct hw_perf_event *); + void (*write_counter)(struct hisi_pmu *, struct hw_perf_event *, u64); + void (*enable_counter)(struct hisi_pmu *, struct hw_perf_event *); + void (*disable_counter)(struct hisi_pmu *, struct hw_perf_event *); + void (*enable_counter_int)(struct hisi_pmu *, struct hw_perf_event *); + void (*disable_counter_int)(struct hisi_pmu *, struct hw_perf_event *); + void (*start_counters)(struct hisi_pmu *); + void (*stop_counters)(struct hisi_pmu *); + u32 (*get_int_status)(struct hisi_pmu *); + void (*clear_int_status)(struct hisi_pmu *, int); + void (*enable_filter)(struct perf_event *); + void (*disable_filter)(struct perf_event *); }; -enum mmci_busy_state { - MMCI_BUSY_WAITING_FOR_START_IRQ = 0, - MMCI_BUSY_WAITING_FOR_END_IRQ = 1, - MMCI_BUSY_DONE = 2, +struct hisi_pmu_hwevents { + struct perf_event *hw_events[16]; + unsigned long used_mask[1]; + const struct attribute_group **attr_groups; }; -struct mmci_platform_data; - -struct variant_data; +struct hisi_pmu_dev_info; -struct mmci_host { - phys_addr_t phybase; +struct hisi_pmu { + struct pmu pmu; + const struct hisi_uncore_ops *ops; + const struct hisi_pmu_dev_info *dev_info; + struct hisi_pmu_hwevents pmu_events; + cpumask_t associated_cpus; + int on_cpu; + int irq; + struct device *dev; + struct hlist_node node; + int sccl_id; + int sicl_id; + int ccl_id; void *base; - struct mmc_request *mrq; - struct mmc_command *cmd; - struct mmc_command stop_abort; - struct mmc_data *data; - struct mmc_host *mmc; - struct clk *clk; - u8 singleirq: 1; - struct reset_control *rst; - spinlock_t lock; - unsigned int mclk; - unsigned int clock_cache; - unsigned int cclk; - u32 pwr_reg; - u32 pwr_reg_add; - u32 clk_reg; - u32 clk_reg_add; - u32 datactrl_reg; - enum mmci_busy_state busy_state; - u32 busy_status; - u32 mask1_reg; - u8 vqmmc_enabled: 1; - struct mmci_platform_data *plat; - struct mmc_host_ops *mmc_ops; - struct mmci_host_ops *ops; - struct variant_data *variant; - void *variant_priv; - struct pinctrl *pinctrl; - struct pinctrl_state *pins_opendrain; - u8 hw_designer; - u8 hw_revision: 4; - struct timer_list timer; - unsigned int oldstat; - u32 irq_action; - struct sg_mapping_iter sg_miter; - unsigned int size; - int (*get_rx_fifocnt)(struct mmci_host *, u32, int); - u8 use_dma: 1; - u8 dma_in_progress: 1; - void *dma_priv; - s32 next_cookie; - struct delayed_work ux500_busy_timeout_work; + u32 index_id; + u32 sub_id; + int num_counters; + int counter_bits; + int check_event; + u32 identifier; }; -struct variant_data { - unsigned int clkreg; - unsigned int clkreg_enable; - unsigned int clkreg_8bit_bus_enable; - unsigned int clkreg_neg_edge_enable; - unsigned int cmdreg_cpsm_enable; - unsigned int cmdreg_lrsp_crc; - unsigned int cmdreg_srsp_crc; - unsigned int cmdreg_srsp; - unsigned int cmdreg_stop; - unsigned int datalength_bits; - unsigned int fifosize; - unsigned int fifohalfsize; - unsigned int data_cmd_enable; - unsigned int datactrl_mask_ddrmode; - unsigned int datactrl_mask_sdio; - unsigned int datactrl_blocksz; - u8 datactrl_any_blocksz: 1; - u8 dma_power_of_2: 1; - u8 datactrl_first: 1; - u8 datacnt_useless: 1; - u8 st_sdio: 1; - u8 st_clkdiv: 1; - u8 stm32_clkdiv: 1; - u32 pwrreg_powerup; - u32 f_max; - u8 signal_direction: 1; - u8 pwrreg_clkgate: 1; - u8 busy_detect: 1; - u8 busy_timeout: 1; - u32 busy_dpsm_flag; - u32 busy_detect_flag; - u32 busy_detect_mask; - u8 pwrreg_nopower: 1; - u8 explicit_mclk_control: 1; - u8 qcom_fifo: 1; - u8 qcom_dml: 1; - u8 reversed_irq_handling: 1; - u8 mmcimask1: 1; - unsigned int irq_pio_mask; - u32 start_err; - u32 opendrain; - u8 dma_lli: 1; - u32 stm32_idmabsize_mask; - u32 stm32_idmabsize_align; - void (*init)(struct mmci_host *); +struct hisi_pmu_dev_info { + const char *name; + const struct attribute_group **attr_groups; + void *private; }; -struct sdhci_iproc_data { - const struct sdhci_pltfm_data *pdata; - u32 caps; - u32 caps1; - u32 mmc_caps; - bool missing_caps; +struct qfprom_soc_data { + u32 accel_value; + u32 qfprom_blow_timer_value; + u32 qfprom_blow_set_freq; + int qfprom_blow_uV; }; -struct sdhci_iproc_host { - const struct sdhci_iproc_data *data; - u32 shadow_cmd; - u32 shadow_blk; - bool is_cmd_shadowed; - bool is_blk_shadowed; +struct qfprom_soc_compatible_data { + const struct nvmem_keepout *keepout; + unsigned int nkeepout; }; -struct dmi_device_attribute { - struct device_attribute dev_attr; - int field; +struct qfprom_priv { + void *qfpraw; + void *qfpconf; + void *qfpcorrected; + void *qfpsecurity; + struct device *dev; + struct clk *secclk; + struct regulator *vcc; + const struct qfprom_soc_data *soc_data; }; -struct mafield { - const char *prefix; - int field; +struct qfprom_touched_values { + unsigned long clk_rate; + u32 accel_val; + u32 timer_val; }; -enum reboot_mode { - REBOOT_UNDEFINED = -1, - REBOOT_COLD = 0, - REBOOT_WARM = 1, - REBOOT_HARD = 2, - REBOOT_SOFT = 3, - REBOOT_GPIO = 4, -}; +struct qcom_icc_node; -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 qcom_icc_bcm; -struct sys_off_data { - int mode; - void *cb_data; - const char *cmd; +struct qcom_icc_desc { + struct qcom_icc_node * const *nodes; + size_t num_nodes; + struct qcom_icc_bcm * const *bcms; + size_t num_bcms; }; -enum tcpa_event_types { - PREBOOT = 0, - POST_CODE = 1, - UNUSED = 2, - NO_ACTION = 3, - SEPARATOR = 4, - ACTION = 5, - EVENT_TAG = 6, - SCRTM_CONTENTS = 7, - SCRTM_VERSION = 8, - CPU_MICROCODE = 9, - PLATFORM_CONFIG_FLAGS = 10, - TABLE_OF_DEVICES = 11, - COMPACT_HASH = 12, - IPL = 13, - IPL_PARTITION_DATA = 14, - NONHOST_CODE = 15, - NONHOST_CONFIG = 16, - NONHOST_INFO = 17, +struct qcom_icc_node { + const char *name; + u16 links[128]; + u16 id; + u16 num_links; + u16 channels; + u16 buswidth; + u64 sum_avg[3]; + u64 max_peak[3]; + struct qcom_icc_bcm *bcms[3]; + size_t num_bcms; }; -struct tpm_digest { - u16 alg_id; - u8 digest[64]; +struct bcm_db { + __le32 unit; + __le16 width; + u8 vcd; + u8 reserved; }; -struct tcg_pcr_event2_head { - u32 pcr_idx; - u32 event_type; - u32 count; - struct tpm_digest digests[0]; +struct qcom_icc_bcm { + const char *name; + u32 type; + u32 addr; + u64 vote_x[3]; + u64 vote_y[3]; + u64 vote_scale; + u32 enable_mask; + bool dirty; + bool keepalive; + struct bcm_db aux_data; + struct list_head list; + struct list_head ws_list; + size_t num_nodes; + struct qcom_icc_node *nodes[0]; }; -struct tcg_efi_specid_event_algs { - u16 alg_id; - u16 digest_size; -}; +struct snd_info_entry; -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 snd_info_buffer; -struct tcg_event_field { - u32 event_size; - u8 event[0]; +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 tcg_pcr_event { - u32 pcr_idx; - u32 event_type; - u8 digest[20]; - u32 event_size; - u8 event[0]; +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 linux_efi_tpm_eventlog { - u32 size; - u32 final_events_preboot_size; - u8 version; - u8 log[0]; +struct snd_info_buffer { + char *buffer; + unsigned int curr; + unsigned int size; + unsigned int len; + int stop; + int error; }; -struct efi_tcg2_final_events_table { - u64 version; - u64 nr_events; - u8 events[0]; +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 struct { - u64 length; - u64 data; -} efi_capsule_block_desc_t; +struct snd_shutdown_f_ops; -struct mct_clock_event_device { - struct clock_event_device evt; - unsigned long base; - char name[11]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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; }; -enum { - MCT_INT_SPI = 0, - MCT_INT_PPI = 1, +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 of_bus { - const char *name; - const char *addresses; - int (*match)(struct device_node *); - void (*count_cells)(struct device_node *, int *, int *); - u64 (*map)(__be32 *, const __be32 *, int, int, int); - int (*translate)(__be32 *, u64, int); - bool has_flags; - unsigned int (*get_flags)(const __be32 *); +enum snd_dma_sync_mode { + SNDRV_DMA_SYNC_CPU = 0, + SNDRV_DMA_SYNC_DEVICE = 1, }; -enum { - LOGIC_PIO_INDIRECT = 0, - LOGIC_PIO_CPU_MMIO = 1, -}; +struct snd_dma_buffer; -struct of_pci_range_parser { - struct device_node *node; - struct of_bus *bus; - const __be32 *range; - const __be32 *end; - int na; - int ns; - int pna; - bool dma; +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 of_pci_range { - union { - u64 pci_addr; - u64 bus_addr; - }; - u64 cpu_addr; - u64 size; - u32 flags; +struct snd_dma_device { + int type; + enum dma_data_direction dir; + bool need_sync; + struct device *dev; }; -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 snd_dma_buffer { + struct snd_dma_device dev; + unsigned char *area; + dma_addr_t addr; + size_t bytes; + void *private_data; }; -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); -}; +typedef unsigned long (*genpool_algo_t)(unsigned long *, unsigned long, unsigned long, unsigned int, void *, struct gen_pool *, unsigned long); -struct apple_mbox_hw { - unsigned int control_full; - unsigned int control_empty; - unsigned int a2i_control; - unsigned int a2i_send0; - unsigned int a2i_send1; - unsigned int i2a_control; - unsigned int i2a_recv0; - unsigned int i2a_recv1; - bool has_irq_controls; - unsigned int irq_enable; - unsigned int irq_ack; - unsigned int irq_bit_recv_not_empty; - unsigned int irq_bit_send_empty; +struct gen_pool { + spinlock_t lock; + struct list_head chunks; + int min_alloc_order; + genpool_algo_t algo; + void *data; + const char *name; }; -struct apple_mbox { - void *regs; - const struct apple_mbox_hw *hw; - int irq_recv_not_empty; - int irq_send_empty; - struct mbox_chan chan; - struct device *dev; - struct mbox_controller controller; - spinlock_t rx_lock; +struct sg_dma_page_iter { + struct sg_page_iter base; }; -struct apple_mbox_msg { - u64 msg0; - u32 msg1; -}; +struct snd_soc_card; -struct cluster_pmu; +typedef void (*btf_trace_snd_soc_bias_level_start)(void *, struct snd_soc_card *, int); -struct l2cache_pmu { - struct hlist_node node; - u32 num_pmus; - struct pmu pmu; - int num_counters; - cpumask_t cpumask; - struct platform_device *pdev; - struct cluster_pmu * __attribute__((btf_type_tag("percpu"))) *pmu_cluster; - struct list_head clusters; +enum snd_soc_pcm_subclass { + SND_SOC_PCM_CLASS_PCM = 0, + SND_SOC_PCM_CLASS_BE = 1, }; -struct cluster_pmu { - struct list_head next; - struct perf_event *events[9]; - struct l2cache_pmu *l2cache_pmu; - unsigned long used_counters[1]; - unsigned long used_groups[1]; - int irq; - int cluster_id; - int on_cpu; - cpumask_t cluster_cpus; - spinlock_t pmu_lock; +enum snd_soc_bias_level { + SND_SOC_BIAS_OFF = 0, + SND_SOC_BIAS_STANDBY = 1, + SND_SOC_BIAS_PREPARE = 2, + SND_SOC_BIAS_ON = 3, }; -struct snd_monitor_file { - struct file *file; - const struct file_operations *disconnected_f_op; - struct list_head shutdown_list; - struct list_head list; -}; +struct snd_soc_component; -struct net_proto_family { - int family; - int (*create)(struct net *, struct socket *, int, int); - struct module *owner; -}; +struct snd_soc_dapm_widget; -enum { - SOCK_WAKE_IO = 0, - SOCK_WAKE_WAITD = 1, - SOCK_WAKE_SPACE = 2, - SOCK_WAKE_URG = 3, +struct snd_soc_dapm_context { + enum snd_soc_bias_level bias_level; + unsigned int idle_bias_off: 1; + unsigned int suspend_bias_off: 1; + struct device *dev; + struct snd_soc_component *component; + struct snd_soc_card *card; + enum snd_soc_bias_level target_bias_level; + struct list_head list; + struct snd_soc_dapm_widget *wcache_sink; + struct snd_soc_dapm_widget *wcache_source; + struct dentry *debugfs_dapm; }; -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, +struct snd_soc_dapm_stats { + int power_checks; + int path_checks; + int neighbour_checks; }; -struct inet_skb_parm { - int iif; - struct ip_options opt; - u16 flags; - u16 frag_max_size; -}; +struct snd_soc_dai_link; -struct inet6_skb_parm { - int iif; - __be16 ra; - __u16 dst0; - __u16 srcrt; - __u16 dst1; - __u16 lastopt; - __u16 nhoff; - __u16 flags; - __u16 frag_max_size; - __u16 srhoff; -}; +struct snd_soc_codec_conf; -struct sock_ee_data_rfc4884 { - __u16 len; - __u8 flags; - __u8 reserved; -}; +struct snd_soc_aux_dev; -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 snd_kcontrol_new; -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 snd_soc_dapm_route; -typedef u32 compat_uint_t; +struct snd_soc_dapm_update; -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 snd_soc_card { + const char *name; + const char *long_name; + const char *driver_name; + const char *components; + char dmi_longname[80]; + unsigned short pci_subsystem_vendor; + unsigned short pci_subsystem_device; + bool pci_subsystem_set; + char topology_shortname[32]; + struct device *dev; + struct snd_card *snd_card; + struct module *owner; + struct mutex mutex; + struct mutex dapm_mutex; + struct mutex pcm_mutex; + enum snd_soc_pcm_subclass pcm_subclass; + int (*probe)(struct snd_soc_card *); + int (*late_probe)(struct snd_soc_card *); + void (*fixup_controls)(struct snd_soc_card *); + int (*remove)(struct snd_soc_card *); + int (*suspend_pre)(struct snd_soc_card *); + int (*suspend_post)(struct snd_soc_card *); + int (*resume_pre)(struct snd_soc_card *); + int (*resume_post)(struct snd_soc_card *); + int (*set_bias_level)(struct snd_soc_card *, struct snd_soc_dapm_context *, enum snd_soc_bias_level); + int (*set_bias_level_post)(struct snd_soc_card *, struct snd_soc_dapm_context *, enum snd_soc_bias_level); + int (*add_dai_link)(struct snd_soc_card *, struct snd_soc_dai_link *); + void (*remove_dai_link)(struct snd_soc_card *, struct snd_soc_dai_link *); + long pmdown_time; + struct snd_soc_dai_link *dai_link; + int num_links; + struct list_head rtd_list; + int num_rtd; + struct snd_soc_codec_conf *codec_conf; + int num_configs; + struct snd_soc_aux_dev *aux_dev; + int num_aux_devs; + struct list_head aux_comp_list; + const struct snd_kcontrol_new *controls; + int num_controls; + const struct snd_soc_dapm_widget *dapm_widgets; + int num_dapm_widgets; + const struct snd_soc_dapm_route *dapm_routes; + int num_dapm_routes; + const struct snd_soc_dapm_widget *of_dapm_widgets; + int num_of_dapm_widgets; + const struct snd_soc_dapm_route *of_dapm_routes; + int num_of_dapm_routes; + struct list_head component_dev_list; + struct list_head list; + struct list_head widgets; + struct list_head paths; + struct list_head dapm_list; + struct list_head dapm_dirty; + struct list_head dobj_list; + struct snd_soc_dapm_context dapm; + struct snd_soc_dapm_stats dapm_stats; + struct snd_soc_dapm_update *update; + struct dentry *debugfs_card_root; + struct work_struct deferred_resume_work; + u32 pop_time; + unsigned int instantiated: 1; + unsigned int topology_shortname_created: 1; + unsigned int fully_routed: 1; + unsigned int disable_route_checks: 1; + unsigned int probed: 1; + unsigned int component_chaining: 1; + void *drvdata; }; -struct compat_mmsghdr { - struct compat_msghdr msg_hdr; - compat_uint_t msg_len; -}; +struct snd_soc_component_driver; -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 snd_pcm_substream; -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 snd_compr_stream; -struct compat_if_settings { - unsigned int type; - unsigned int size; - compat_uptr_t ifs_ifsu; +struct snd_soc_component { + const char *name; + int id; + const char *name_prefix; + struct device *dev; + struct snd_soc_card *card; + unsigned int active; + unsigned int suspended: 1; + struct list_head list; + struct list_head card_aux_list; + struct list_head card_list; + const struct snd_soc_component_driver *driver; + struct list_head dai_list; + int num_dai; + struct regmap *regmap; + int val_bytes; + struct mutex io_mutex; + struct list_head dobj_list; + struct snd_soc_dapm_context dapm; + int (*init)(struct snd_soc_component *); + void *mark_module; + struct snd_pcm_substream *mark_open; + struct snd_pcm_substream *mark_hw_params; + struct snd_pcm_substream *mark_trigger; + struct snd_compr_stream *mark_compr_open; + void *mark_pm; + struct dentry *debugfs_root; + const char *debugfs_prefix; }; -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; +enum snd_soc_dapm_type { + snd_soc_dapm_input = 0, + snd_soc_dapm_output = 1, + snd_soc_dapm_mux = 2, + snd_soc_dapm_demux = 3, + snd_soc_dapm_mixer = 4, + snd_soc_dapm_mixer_named_ctl = 5, + snd_soc_dapm_pga = 6, + snd_soc_dapm_out_drv = 7, + snd_soc_dapm_adc = 8, + snd_soc_dapm_dac = 9, + snd_soc_dapm_micbias = 10, + snd_soc_dapm_mic = 11, + snd_soc_dapm_hp = 12, + snd_soc_dapm_spk = 13, + snd_soc_dapm_line = 14, + snd_soc_dapm_switch = 15, + snd_soc_dapm_vmid = 16, + snd_soc_dapm_pre = 17, + snd_soc_dapm_post = 18, + snd_soc_dapm_supply = 19, + snd_soc_dapm_pinctrl = 20, + snd_soc_dapm_regulator_supply = 21, + snd_soc_dapm_clock_supply = 22, + snd_soc_dapm_aif_in = 23, + snd_soc_dapm_aif_out = 24, + snd_soc_dapm_siggen = 25, + snd_soc_dapm_sink = 26, + snd_soc_dapm_dai_in = 27, + snd_soc_dapm_dai_out = 28, + snd_soc_dapm_dai_link = 29, + snd_soc_dapm_kcontrol = 30, + snd_soc_dapm_buffer = 31, + snd_soc_dapm_scheduler = 32, + snd_soc_dapm_effect = 33, + snd_soc_dapm_src = 34, + snd_soc_dapm_asrc = 35, + snd_soc_dapm_encoder = 36, + snd_soc_dapm_decoder = 37, + SND_SOC_DAPM_TYPE_COUNT = 38, }; -struct socket_alloc { - struct socket socket; - struct inode vfs_inode; - long: 64; - long: 64; - long: 64; -}; +typedef unsigned long snd_pcm_uframes_t; -struct sock_skb_cb { - u32 dropcount; -}; +typedef long snd_pcm_sframes_t; -struct mmsghdr { - struct user_msghdr msg_hdr; - unsigned int msg_len; +enum snd_soc_trigger_order { + SND_SOC_TRIGGER_ORDER_DEFAULT = 0, + SND_SOC_TRIGGER_ORDER_LDC = 1, + SND_SOC_TRIGGER_ORDER_MAX = 2, }; -typedef __kernel_long_t __kernel_old_time_t; +struct snd_soc_pcm_runtime; -struct __kernel_old_timespec { - __kernel_old_time_t tv_sec; - long tv_nsec; -}; +struct snd_pcm; -struct __kernel_sock_timeval { - __s64 tv_sec; - __s64 tv_usec; -}; +struct snd_soc_jack; -struct scm_ts_pktinfo { - __u32 if_index; - __u32 pkt_length; - __u32 reserved[2]; -}; +struct snd_pcm_hw_params; -struct scm_timestamping_internal { - struct timespec64 ts[3]; -}; +struct snd_pcm_audio_tstamp_config; -struct used_address { - struct __kernel_sockaddr_storage name; - unsigned int name_len; -}; +struct snd_pcm_audio_tstamp_report; -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 snd_compress_ops; -struct pseudo_fs_context { - const struct super_operations *ops; - const struct xattr_handler **xattr; - const struct dentry_operations *dops; - unsigned long magic; +struct snd_soc_component_driver { + const char *name; + const struct snd_kcontrol_new *controls; + unsigned int num_controls; + const struct snd_soc_dapm_widget *dapm_widgets; + unsigned int num_dapm_widgets; + const struct snd_soc_dapm_route *dapm_routes; + unsigned int num_dapm_routes; + int (*probe)(struct snd_soc_component *); + void (*remove)(struct snd_soc_component *); + int (*suspend)(struct snd_soc_component *); + int (*resume)(struct snd_soc_component *); + unsigned int (*read)(struct snd_soc_component *, unsigned int); + int (*write)(struct snd_soc_component *, unsigned int, unsigned int); + int (*pcm_construct)(struct snd_soc_component *, struct snd_soc_pcm_runtime *); + void (*pcm_destruct)(struct snd_soc_component *, struct snd_pcm *); + int (*set_sysclk)(struct snd_soc_component *, int, int, unsigned int, int); + int (*set_pll)(struct snd_soc_component *, int, int, unsigned int, unsigned int); + int (*set_jack)(struct snd_soc_component *, struct snd_soc_jack *, void *); + int (*get_jack_type)(struct snd_soc_component *); + int (*of_xlate_dai_name)(struct snd_soc_component *, const struct of_phandle_args *, const char **); + int (*of_xlate_dai_id)(struct snd_soc_component *, struct device_node *); + void (*seq_notifier)(struct snd_soc_component *, enum snd_soc_dapm_type, int); + int (*stream_event)(struct snd_soc_component *, int); + int (*set_bias_level)(struct snd_soc_component *, enum snd_soc_bias_level); + int (*open)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*close)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*ioctl)(struct snd_soc_component *, struct snd_pcm_substream *, unsigned int, void *); + int (*hw_params)(struct snd_soc_component *, struct snd_pcm_substream *, struct snd_pcm_hw_params *); + int (*hw_free)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*prepare)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*trigger)(struct snd_soc_component *, struct snd_pcm_substream *, int); + int (*sync_stop)(struct snd_soc_component *, struct snd_pcm_substream *); + snd_pcm_uframes_t (*pointer)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*get_time_info)(struct snd_soc_component *, struct snd_pcm_substream *, struct timespec64 *, struct timespec64 *, struct snd_pcm_audio_tstamp_config *, struct snd_pcm_audio_tstamp_report *); + int (*copy)(struct snd_soc_component *, struct snd_pcm_substream *, int, unsigned long, struct iov_iter *, unsigned long); + struct page * (*page)(struct snd_soc_component *, struct snd_pcm_substream *, unsigned long); + int (*mmap)(struct snd_soc_component *, struct snd_pcm_substream *, struct vm_area_struct *); + int (*ack)(struct snd_soc_component *, struct snd_pcm_substream *); + snd_pcm_sframes_t (*delay)(struct snd_soc_component *, struct snd_pcm_substream *); + const struct snd_compress_ops *compress_ops; + int probe_order; + int remove_order; + enum snd_soc_trigger_order trigger_start; + enum snd_soc_trigger_order trigger_stop; + unsigned int module_get_upon_open: 1; + unsigned int idle_bias_on: 1; + unsigned int suspend_bias_off: 1; + unsigned int use_pmdown_time: 1; + unsigned int endianness: 1; + unsigned int legacy_dai_naming: 1; + const char *ignore_machine; + const char *topology_name_prefix; + int (*be_hw_params_fixup)(struct snd_soc_pcm_runtime *, struct snd_pcm_hw_params *); + bool use_dai_pcm_id; + int be_pcm_base; + const char *debugfs_prefix; }; -enum net_xmit_qdisc_t { - __NET_XMIT_STOLEN = 65536, - __NET_XMIT_BYPASS = 131072, -}; +typedef int snd_ctl_elem_iface_t; -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, -}; +struct snd_kcontrol; -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 snd_ctl_elem_info; -struct pause_req_info { - struct ethnl_req_info base; - enum ethtool_mac_stats_src src; -}; +typedef int snd_kcontrol_info_t(struct snd_kcontrol *, struct snd_ctl_elem_info *); -struct pause_reply_data { - struct ethnl_reply_data base; - struct ethtool_pauseparam pauseparam; - struct ethtool_pause_stats pausestat; -}; +struct snd_ctl_elem_value; -enum tcp_synack_type { - TCP_SYNACK_NORMAL = 0, - TCP_SYNACK_FASTOPEN = 1, - TCP_SYNACK_COOKIE = 2, -}; +typedef int snd_kcontrol_get_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); -struct tcp_request_sock_ops { - u16 mss_clamp; - 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 *); -}; +typedef int snd_kcontrol_put_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); -struct tcp_seq_afinfo { - sa_family_t family; -}; +typedef int snd_kcontrol_tlv_rw_t(struct snd_kcontrol *, int, unsigned int, unsigned int __attribute__((btf_type_tag("user"))) *); -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, +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; }; -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, +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; }; -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, -}; +struct snd_ctl_file; -enum { - INET_ECN_NOT_ECT = 0, - INET_ECN_ECT_1 = 1, - INET_ECN_ECT_0 = 2, - INET_ECN_CE = 3, - INET_ECN_MASK = 3, +struct snd_kcontrol_volatile { + struct snd_ctl_file *owner; + unsigned int access; }; -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, +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]; }; -enum tcp_tw_status { - TCP_TW_SUCCESS = 0, - TCP_TW_RST = 1, - TCP_TW_ACK = 2, - TCP_TW_SYN = 3, +struct snd_aes_iec958 { + unsigned char status[24]; + unsigned char subcode[147]; + unsigned char pad; + unsigned char dig_subframe[4]; }; -enum tcp_seq_states { - TCP_SEQ_STATE_LISTENING = 0, - TCP_SEQ_STATE_ESTABLISHED = 1, +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]; }; -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, -}; +struct snd_fasync; -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, +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; }; -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, -}; +typedef int snd_ctl_elem_type_t; -struct tcp_skb_cb { - __u32 seq; - __u32 end_seq; +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 { - __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 { + long min; + long max; + long step; + } integer; struct { - __u32 is_app_limited: 1; - __u32 delivered_ce: 20; - __u32 unused: 11; - __u32 delivered; - u64 first_tx_mstamp; - u64 delivered_mstamp; - } tx; - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - } header; - }; -}; - -struct inet_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 tcp_timewait_sock { - struct inet_timewait_sock tw_sk; - u32 tw_rcv_wnd; - u32 tw_ts_offset; - u32 tw_ts_recent; - u32 tw_last_oow_ack_time; - int tw_ts_recent_stamp; - u32 tw_tx_delay; -}; - -struct inet_request_sock { - struct request_sock req; - u16 snd_wscale: 4; - u16 rcv_wscale: 4; - u16 tstamp_ok: 1; - u16 sack_ok: 1; - u16 wscale_ok: 1; - u16 ecn_ok: 1; - u16 acked: 1; - u16 no_srccheck: 1; - u16 smc_ok: 1; - u32 ir_mark; - union { - struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *ireq_opt; + long long min; + long long max; + long long step; + } integer64; struct { - struct ipv6_txoptions *ipv6_opt; - struct sk_buff *pktopts; - }; - }; + 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 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; - u32 txhash; - u32 rcv_isn; - u32 snt_isn; - u32 ts_off; - u32 last_oow_ack_time; - u32 rcv_nxt; - u8 syn_tos; +enum snd_soc_dobj_type { + SND_SOC_DOBJ_NONE = 0, + SND_SOC_DOBJ_MIXER = 1, + SND_SOC_DOBJ_BYTES = 2, + SND_SOC_DOBJ_ENUM = 3, + SND_SOC_DOBJ_GRAPH = 4, + SND_SOC_DOBJ_WIDGET = 5, + SND_SOC_DOBJ_DAI_LINK = 6, + SND_SOC_DOBJ_PCM = 7, + SND_SOC_DOBJ_CODEC_LINK = 8, + SND_SOC_DOBJ_BACKEND_LINK = 9, }; -union tcp_md5_addr { - struct in_addr a4; - struct in6_addr a6; +struct snd_soc_dobj_control { + struct snd_kcontrol *kcontrol; + char **dtexts; + unsigned long *dvalues; }; -struct ip_reply_arg { - struct kvec iov[1]; - int flags; - __wsum csum; - int csumoffset; - int bound_dev_if; - u8 tos; - kuid_t uid; +struct snd_soc_dobj_widget { + unsigned int *kcontrol_type; }; -struct bpf_sock_ops_kern { - struct sock *sk; +struct snd_soc_dobj { + enum snd_soc_dobj_type type; + unsigned int index; + struct list_head list; + int (*unload)(struct snd_soc_component *, struct snd_soc_dobj *); union { - u32 args[4]; - u32 reply; - u32 replylong[4]; + struct snd_soc_dobj_control control; + struct snd_soc_dobj_widget widget; }; - struct sk_buff *syn_skb; - struct sk_buff *skb; - void *skb_data_end; - u8 op; - u8 is_fullsock; - u8 remaining_opt_len; - u64 temp; + void *private; }; -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 snd_soc_dapm_widget { + enum snd_soc_dapm_type id; + const char *name; + const char *sname; + struct list_head list; + struct snd_soc_dapm_context *dapm; + void *priv; + struct regulator *regulator; + struct pinctrl *pinctrl; + int reg; + unsigned char shift; + unsigned int mask; + unsigned int on_val; + unsigned int off_val; + unsigned char power: 1; + unsigned char active: 1; + unsigned char connected: 1; + unsigned char new: 1; + unsigned char force: 1; + unsigned char ignore_suspend: 1; + unsigned char new_power: 1; + unsigned char power_checked: 1; + unsigned char is_supply: 1; + unsigned char is_ep: 2; + unsigned char no_wname_in_kcontrol_name: 1; + int subseq; + int (*power_check)(struct snd_soc_dapm_widget *); + unsigned short event_flags; + int (*event)(struct snd_soc_dapm_widget *, struct snd_kcontrol *, int); + int num_kcontrols; + const struct snd_kcontrol_new *kcontrol_news; + struct snd_kcontrol **kcontrols; + struct snd_soc_dobj dobj; + struct list_head edges[2]; + struct list_head work_list; + struct list_head power_list; + struct list_head dirty; + int endpoints[2]; + struct clk *clk; + int channel; }; -struct bpf_iter__tcp { - union { - struct bpf_iter_meta *meta; - }; - union { - struct sock_common *sk_common; - }; - uid_t uid; +struct snd_soc_dapm_route { + const char *sink; + const char *control; + const char *source; + int (*connected)(struct snd_soc_dapm_widget *, struct snd_soc_dapm_widget *); + struct snd_soc_dobj dobj; }; -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 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)(struct snd_pcm_substream *, int, unsigned long, struct iov_iter *, 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 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 snd_mask { + __u32 bits[8]; }; -struct fib6_result; +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 ipv6_stub { - int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *); - int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *); - struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *); - int (*ipv6_route_input)(struct sk_buff *); - struct fib6_table * (*fib6_get_table)(struct net *, u32); - int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int); - int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int); - void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int); - u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *); - int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *); - void (*fib6_nh_release)(struct fib6_nh *); - void (*fib6_nh_release_dsts)(struct fib6_nh *); - void (*fib6_update_sernum)(struct net *, struct fib6_info *); - int (*ip6_del_rt)(struct net *, struct fib6_info *, bool); - void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *); - void (*udpv6_encap_enable)(); - void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool); - struct neigh_table *nd_tbl; - int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *)); - struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *); +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 fib6_result { - struct fib6_nh *nh; - struct fib6_info *f6i; - u32 fib6_flags; - u8 fib6_type; - struct rt6_info *rt6; +enum snd_soc_dpcm_update { + SND_SOC_DPCM_UPDATE_NO = 0, + SND_SOC_DPCM_UPDATE_BE = 1, + SND_SOC_DPCM_UPDATE_FE = 2, }; -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); +enum snd_soc_dpcm_state { + SND_SOC_DPCM_STATE_NEW = 0, + SND_SOC_DPCM_STATE_OPEN = 1, + SND_SOC_DPCM_STATE_HW_PARAMS = 2, + SND_SOC_DPCM_STATE_PREPARE = 3, + SND_SOC_DPCM_STATE_START = 4, + SND_SOC_DPCM_STATE_STOP = 5, + SND_SOC_DPCM_STATE_PAUSED = 6, + SND_SOC_DPCM_STATE_SUSPEND = 7, + SND_SOC_DPCM_STATE_HW_FREE = 8, + SND_SOC_DPCM_STATE_CLOSE = 9, }; -struct packet_offload { - __be16 type; - u16 priority; - struct offload_callbacks callbacks; - struct list_head list; +struct snd_soc_dpcm_runtime { + struct list_head be_clients; + struct list_head fe_clients; + int users; + struct snd_pcm_hw_params hw_params; + enum snd_soc_dpcm_update runtime_update; + enum snd_soc_dpcm_state state; + int trigger_pending; + int be_start; + int be_pause; + bool fe_pause; }; -enum vlan_flags { - VLAN_FLAG_REORDER_HDR = 1, - VLAN_FLAG_GVRP = 2, - VLAN_FLAG_LOOSE_BINDING = 4, - VLAN_FLAG_MVRP = 8, - VLAN_FLAG_BRIDGE_BINDING = 16, -}; - -enum vlan_protos { - VLAN_PROTO_8021Q = 0, - VLAN_PROTO_8021AD = 1, - VLAN_PROTO_NUM = 2, -}; +struct snd_compr; -struct vlan_pcpu_stats { - u64_stats_t rx_packets; - u64_stats_t rx_bytes; - u64_stats_t rx_multicast; - u64_stats_t tx_packets; - u64_stats_t tx_bytes; - struct u64_stats_sync syncp; - u32 rx_errors; - u32 tx_dropped; -}; +struct snd_soc_dai; -struct vlan_vid_info { +struct snd_soc_pcm_runtime { + struct device *dev; + struct snd_soc_card *card; + struct snd_soc_dai_link *dai_link; + struct snd_pcm_ops ops; + unsigned int c2c_params_select; + struct snd_soc_dpcm_runtime dpcm[2]; + struct snd_soc_dapm_widget *c2c_widget[2]; + long pmdown_time; + struct snd_pcm *pcm; + struct snd_compr *compr; + struct snd_soc_dai **dais; + struct delayed_work delayed_work; + void (*close_delayed_work_func)(struct snd_soc_pcm_runtime *); + struct dentry *debugfs_dpcm_root; + unsigned int num; struct list_head list; - __be16 proto; - u16 vid; - int refcount; -}; - -struct napi_gro_cb { - union { - struct { - void *frag0; - unsigned int frag0_len; - }; - struct { - struct sk_buff *last; - unsigned long age; - }; - }; - int data_offset; - u16 flush; - u16 flush_id; - u16 count; - u16 proto; - union { - struct { - u16 gro_remcsum_start; - u8 same_flow: 1; - u8 encap_mark: 1; - u8 csum_valid: 1; - u8 csum_cnt: 3; - u8 free: 2; - u8 is_ipv6: 1; - u8 is_fou: 1; - u8 is_atomic: 1; - u8 recursion_counter: 4; - u8 is_flist: 1; - }; - struct { - u16 gro_remcsum_start; - u8 same_flow: 1; - u8 encap_mark: 1; - u8 csum_valid: 1; - u8 csum_cnt: 3; - u8 free: 2; - u8 is_ipv6: 1; - u8 is_fou: 1; - u8 is_atomic: 1; - u8 recursion_counter: 4; - u8 is_flist: 1; - } zeroed; - }; - __wsum csum; + struct snd_pcm_substream *mark_startup; + struct snd_pcm_substream *mark_hw_params; + struct snd_pcm_substream *mark_trigger; + struct snd_compr_stream *mark_compr_startup; + unsigned int pop_wait: 1; + unsigned int fe_compr: 1; + bool initialized; + int num_components; + struct snd_soc_component *components[0]; }; -struct vlan_priority_tci_mapping; - -struct vlan_dev_priv { - unsigned int nr_ingress_mappings; - u32 ingress_priority_map[8]; - unsigned int nr_egress_mappings; - struct vlan_priority_tci_mapping *egress_priority_map[16]; - __be16 vlan_proto; - u16 vlan_id; - u16 flags; - struct net_device *real_dev; - netdevice_tracker dev_tracker; - unsigned char real_dev_addr[6]; - struct proc_dir_entry *dent; - struct vlan_pcpu_stats __attribute__((btf_type_tag("percpu"))) *vlan_pcpu_stats; +enum snd_soc_dpcm_trigger { + SND_SOC_DPCM_TRIGGER_PRE = 0, + SND_SOC_DPCM_TRIGGER_POST = 1, + SND_SOC_DPCM_TRIGGER_BESPOKE = 2, }; -struct vlan_priority_tci_mapping { - u32 priority; - u16 vlan_qos; - struct vlan_priority_tci_mapping *next; -}; +struct snd_soc_dai_link_component; -union efi_rng_protocol; +struct snd_soc_dai_link_codec_ch_map; -typedef union efi_rng_protocol efi_rng_protocol_t; +struct snd_soc_pcm_stream; -union efi_rng_protocol { - struct { - efi_status_t (*get_info)(efi_rng_protocol_t *, unsigned long *, efi_guid_t *); - efi_status_t (*get_rng)(efi_rng_protocol_t *, efi_guid_t *, unsigned long, u8 *); - }; - struct { - u32 get_info; - u32 get_rng; - } mixed_mode; -}; +struct snd_soc_ops; -struct linux_efi_random_seed { - u32 size; - u8 bits[0]; -}; +struct snd_soc_compr_ops; -enum bpf_text_poke_type { - BPF_MOD_CALL = 0, - BPF_MOD_JUMP = 1, +struct snd_soc_dai_link { + const char *name; + const char *stream_name; + struct snd_soc_dai_link_component *cpus; + unsigned int num_cpus; + struct snd_soc_dai_link_component *codecs; + unsigned int num_codecs; + struct snd_soc_dai_link_codec_ch_map *codec_ch_maps; + struct snd_soc_dai_link_component *platforms; + unsigned int num_platforms; + int id; + const struct snd_soc_pcm_stream *c2c_params; + unsigned int num_c2c_params; + unsigned int dai_fmt; + enum snd_soc_dpcm_trigger trigger[2]; + int (*init)(struct snd_soc_pcm_runtime *); + void (*exit)(struct snd_soc_pcm_runtime *); + int (*be_hw_params_fixup)(struct snd_soc_pcm_runtime *, struct snd_pcm_hw_params *); + const struct snd_soc_ops *ops; + const struct snd_soc_compr_ops *compr_ops; + enum snd_soc_trigger_order trigger_start; + enum snd_soc_trigger_order trigger_stop; + unsigned int nonatomic: 1; + unsigned int playback_only: 1; + unsigned int capture_only: 1; + unsigned int ignore_suspend: 1; + unsigned int symmetric_rate: 1; + unsigned int symmetric_channels: 1; + unsigned int symmetric_sample_bits: 1; + unsigned int no_pcm: 1; + unsigned int dynamic: 1; + unsigned int dpcm_capture: 1; + unsigned int dpcm_playback: 1; + unsigned int dpcm_merged_format: 1; + unsigned int dpcm_merged_chan: 1; + unsigned int dpcm_merged_rate: 1; + unsigned int ignore_pmdown_time: 1; + unsigned int ignore: 1; + struct snd_soc_dobj dobj; }; -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, +struct snd_soc_dai_link_component { + const char *name; + struct device_node *of_node; + const char *dai_name; + struct of_phandle_args *dai_args; }; -enum aarch64_insn_ldst_type { - AARCH64_INSN_LDST_LOAD_REG_OFFSET = 0, - AARCH64_INSN_LDST_STORE_REG_OFFSET = 1, - AARCH64_INSN_LDST_LOAD_IMM_OFFSET = 2, - AARCH64_INSN_LDST_STORE_IMM_OFFSET = 3, - AARCH64_INSN_LDST_LOAD_PAIR_PRE_INDEX = 4, - AARCH64_INSN_LDST_STORE_PAIR_PRE_INDEX = 5, - AARCH64_INSN_LDST_LOAD_PAIR_POST_INDEX = 6, - AARCH64_INSN_LDST_STORE_PAIR_POST_INDEX = 7, - AARCH64_INSN_LDST_LOAD_EX = 8, - AARCH64_INSN_LDST_LOAD_ACQ_EX = 9, - AARCH64_INSN_LDST_STORE_EX = 10, - AARCH64_INSN_LDST_STORE_REL_EX = 11, +struct snd_soc_dai_link_codec_ch_map { + unsigned int connected_cpu_id; + unsigned int ch_mask; }; -enum aarch64_insn_data3_type { - AARCH64_INSN_DATA3_MADD = 0, - AARCH64_INSN_DATA3_MSUB = 1, +struct snd_soc_pcm_stream { + const char *stream_name; + u64 formats; + unsigned int rates; + unsigned int rate_min; + unsigned int rate_max; + unsigned int channels_min; + unsigned int channels_max; + unsigned int sig_bits; }; -enum aarch64_insn_data2_type { - AARCH64_INSN_DATA2_UDIV = 0, - AARCH64_INSN_DATA2_SDIV = 1, - AARCH64_INSN_DATA2_LSLV = 2, - AARCH64_INSN_DATA2_LSRV = 3, - AARCH64_INSN_DATA2_ASRV = 4, - AARCH64_INSN_DATA2_RORV = 5, +struct snd_soc_ops { + int (*startup)(struct snd_pcm_substream *); + void (*shutdown)(struct snd_pcm_substream *); + 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); }; -enum aarch64_insn_data1_type { - AARCH64_INSN_DATA1_REVERSE_16 = 0, - AARCH64_INSN_DATA1_REVERSE_32 = 1, - AARCH64_INSN_DATA1_REVERSE_64 = 2, +struct snd_pcm_group { + spinlock_t lock; + struct mutex mutex; + struct list_head substreams; + refcount_t refs; }; -enum aarch64_insn_bitfield_type { - AARCH64_INSN_BITFIELD_MOVE = 0, - AARCH64_INSN_BITFIELD_MOVE_UNSIGNED = 1, - AARCH64_INSN_BITFIELD_MOVE_SIGNED = 2, -}; +struct snd_pcm_str; -enum aarch64_insn_condition { - AARCH64_INSN_COND_EQ = 0, - AARCH64_INSN_COND_NE = 1, - AARCH64_INSN_COND_CS = 2, - AARCH64_INSN_COND_CC = 3, - AARCH64_INSN_COND_MI = 4, - AARCH64_INSN_COND_PL = 5, - AARCH64_INSN_COND_VS = 6, - AARCH64_INSN_COND_VC = 7, - AARCH64_INSN_COND_HI = 8, - AARCH64_INSN_COND_LS = 9, - AARCH64_INSN_COND_GE = 10, - AARCH64_INSN_COND_LT = 11, - AARCH64_INSN_COND_GT = 12, - AARCH64_INSN_COND_LE = 13, - AARCH64_INSN_COND_AL = 14, -}; +struct snd_pcm_runtime; -enum aarch64_insn_size_type { - AARCH64_INSN_SIZE_8 = 0, - AARCH64_INSN_SIZE_16 = 1, - AARCH64_INSN_SIZE_32 = 2, - AARCH64_INSN_SIZE_64 = 3, -}; +struct snd_timer; -enum aarch64_insn_mem_atomic_op { - AARCH64_INSN_MEM_ATOMIC_ADD = 0, - AARCH64_INSN_MEM_ATOMIC_CLR = 1, - AARCH64_INSN_MEM_ATOMIC_EOR = 2, - AARCH64_INSN_MEM_ATOMIC_SET = 3, - AARCH64_INSN_MEM_ATOMIC_SWP = 4, +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; }; -enum aarch64_insn_mem_order_type { - AARCH64_INSN_MEM_ORDER_NONE = 0, - AARCH64_INSN_MEM_ORDER_ACQ = 1, - AARCH64_INSN_MEM_ORDER_REL = 2, - AARCH64_INSN_MEM_ORDER_ACQREL = 3, +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; }; -enum aarch64_insn_mb_type { - AARCH64_INSN_MB_SY = 0, - AARCH64_INSN_MB_ST = 1, - AARCH64_INSN_MB_LD = 2, - AARCH64_INSN_MB_ISH = 3, - AARCH64_INSN_MB_ISHST = 4, - AARCH64_INSN_MB_ISHLD = 5, - AARCH64_INSN_MB_NSH = 6, - AARCH64_INSN_MB_NSHST = 7, - AARCH64_INSN_MB_NSHLD = 8, - AARCH64_INSN_MB_OSH = 9, - AARCH64_INSN_MB_OSHST = 10, - AARCH64_INSN_MB_OSHLD = 11, +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; }; -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, +struct snd_pcm_audio_tstamp_config { + u32 type_requested: 4; + u32 report_delay: 1; }; -struct bpf_plt { - u32 insn_ldr; - u32 insn_br; - u64 target; +struct snd_pcm_audio_tstamp_report { + u32 valid: 1; + u32 actual_type: 4; + u32 accuracy_report: 1; + u32 accuracy; }; -struct jit_ctx { - const struct bpf_prog *prog; - int idx; - int epilogue_offset; - int *offset; - int exentry_idx; - __le32 *image; - u32 stack_size; - int fpb_offset; -}; +typedef int snd_pcm_state_t; -struct bpf_binary_header { - u32 size; - long: 0; - u8 image[0]; -}; +typedef int snd_pcm_access_t; -typedef void (*bpf_jit_fill_hole_t)(void *, unsigned int); +typedef int snd_pcm_format_t; -struct bpf_tramp_link; +typedef int snd_pcm_subformat_t; -struct bpf_tramp_links { - struct bpf_tramp_link *links[38]; - int nr_links; +union snd_pcm_sync_id { + unsigned char id[16]; + unsigned short id16[8]; + unsigned int id32[4]; }; -struct bpf_tramp_link { - struct bpf_link link; - struct hlist_node tramp_hlist; - u64 cookie; +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 bpf_tramp_run_ctx; - -typedef u64 (*bpf_trampoline_enter_t)(struct bpf_prog *, struct bpf_tramp_run_ctx *); +struct snd_pcm_hw_rule; -struct bpf_tramp_run_ctx { - struct bpf_run_ctx run_ctx; - u64 bpf_cookie; - struct bpf_run_ctx *saved_run_ctx; +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; }; -typedef void (*bpf_trampoline_exit_t)(struct bpf_prog *, u64, struct bpf_tramp_run_ctx *); +struct snd_pcm_mmap_status; -struct arm64_jit_data { - struct bpf_binary_header *header; - u8 *image; - struct jit_ctx ctx; -}; +struct snd_pcm_mmap_control; -struct cpu_fp_state { - struct user_fpsimd_state *st; - void *sve_state; - void *sme_state; - u64 *svcr; - unsigned int sve_vl; - unsigned int sme_vl; - enum fp_type *fp_type; - enum fp_type to_save; +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; }; -struct tlb_inv_context { - unsigned long flags; - u64 tcr; - u64 sctlr; -}; +typedef char __pad_before_uframe[0]; -struct crypto_aes_ctx { - u32 key_enc[60]; - u32 key_dec[60]; - u32 key_length; -}; +typedef char __pad_after_uframe[0]; -struct scatter_walk { - struct scatterlist *sg; - unsigned int offset; +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 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 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; }; -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 (*snd_pcm_hw_rule_func_t)(struct snd_pcm_hw_params *, struct snd_pcm_hw_rule *); -typedef int user_regset_writeback_fn(struct task_struct *, const struct user_regset *, int); +struct snd_pcm_hw_rule { + unsigned int cond; + int var; + int deps[5]; + snd_pcm_hw_rule_func_t func; + void *private; +}; -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 snd_soc_compr_ops { + int (*startup)(struct snd_compr_stream *); + void (*shutdown)(struct snd_compr_stream *); + int (*set_params)(struct snd_compr_stream *); }; -struct membuf { - void *p; - size_t left; +enum snd_compr_direction { + SND_COMPRESS_PLAYBACK = 0, + SND_COMPRESS_CAPTURE = 1, }; -struct user_regset_view { +struct snd_compr_ops; + +struct snd_compr_runtime; + +struct snd_compr_stream { const char *name; - const struct user_regset *regsets; - unsigned int n; - u32 e_flags; - u16 e_machine; - u8 ei_osabi; + 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 semaphore_waiter { - struct list_head list; - struct task_struct *task; - bool up; -}; +struct snd_compr_params; -enum desc_state { - desc_miss = -1, - desc_reserved = 0, - desc_committed = 1, - desc_finalized = 2, - desc_reusable = 3, -}; +struct snd_codec; -struct prb_data_blk_lpos { - unsigned long begin; - unsigned long next; -}; +struct snd_compr_metadata; -struct prb_desc { - atomic_long_t state_var; - struct prb_data_blk_lpos text_blk_lpos; -}; +struct snd_compr_tstamp; -struct printk_info; +struct snd_compr_caps; -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 snd_compr_codec_caps; -struct dev_printk_info { - char subsystem[16]; - char device[48]; +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 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 snd_compressed_buffer { + __u32 fragment_size; + __u32 fragments; }; -struct prb_data_ring { - unsigned int size_bits; - char *data; - atomic_long_t head_lpos; - atomic_long_t tail_lpos; +struct snd_enc_wma { + __u32 super_block_align; }; -struct prb_data_block { - unsigned long id; - char data[0]; +struct snd_enc_vorbis { + __s32 quality; + __u32 managed; + __u32 max_bit_rate; + __u32 min_bit_rate; + __u32 downmix; }; -struct printk_ringbuffer { - struct prb_desc_ring desc_ring; - struct prb_data_ring text_data_ring; - atomic_long_t fail; +struct snd_enc_real { + __u32 quant_bits; + __u32 start_region; + __u32 num_regions; }; -struct prb_reserved_entry { - struct printk_ringbuffer *rb; - unsigned long irqflags; - unsigned long id; - unsigned int text_space; +struct snd_enc_flac { + __u32 num; + __u32 gain; }; -struct printk_record { - struct printk_info *info; - char *text_buf; - unsigned int text_buf_size; +struct snd_enc_generic { + __u32 bw; + __s32 reserved[15]; }; -enum { - IRQ_STARTUP_NORMAL = 0, - IRQ_STARTUP_MANAGED = 1, - IRQ_STARTUP_ABORT = 2, +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 stacktrace_cookie { - unsigned long *store; - unsigned int size; - unsigned int skip; - unsigned int len; +struct snd_dec_wma { + __u32 encoder_option; + __u32 adv_encoder_option; + __u32 adv_encoder_option2; + __u32 reserved; }; -enum futex_access { - FUTEX_READ = 0, - FUTEX_WRITE = 1, +struct snd_dec_alac { + __u32 frame_length; + __u8 compatible_version; + __u8 pb; + __u8 mb; + __u8 kb; + __u32 max_run; + __u32 max_frame_bytes; }; -enum { - FUTEX_STATE_OK = 0, - FUTEX_STATE_EXITING = 1, - FUTEX_STATE_DEAD = 2, +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 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; +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 futex_pi_state { - struct list_head list; - struct rt_mutex_base pi_mutex; - struct task_struct *owner; - refcount_t refcount; - union futex_key key; +struct 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 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 snd_compr_params { + struct snd_compressed_buffer buffer; + struct snd_codec codec; + __u8 no_wake_mode; }; -struct futex_hash_bucket { - atomic_t waiters; - spinlock_t lock; - struct plist_head chain; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct snd_compr_metadata { + __u32 key; + __u32 value[8]; }; -struct hrtimer_sleeper { - struct hrtimer timer; - struct task_struct *task; +struct snd_compr_tstamp { + __u32 byte_offset; + __u32 copied_total; + __u32 pcm_frames; + __u32 pcm_io_frames; + __u32 sampling_rate; }; -struct wake_q_head { - struct wake_q_node *first; - struct wake_q_node **lastp; +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 rt_wake_q_head { - struct wake_q_head head; - struct task_struct *rtlock_task; +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]; }; -enum { - CGRP_NOTIFY_ON_RELEASE = 0, - CGRP_CPUSET_CLONE_CHILDREN = 1, - CGRP_FREEZE = 2, - CGRP_FROZEN = 3, - CGRP_KILL = 4, +struct snd_compr_codec_caps { + __u32 codec; + __u32 num_descriptors; + struct snd_codec_desc descriptor[32]; }; -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 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 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 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; }; -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 snd_soc_dai_stream { + struct snd_soc_dapm_widget *widget; + unsigned int active; + unsigned int tdm_mask; + void *dma_data; }; -struct tracer_stat { +struct snd_soc_dai_driver; + +struct snd_soc_dai { 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 *); + int id; + struct device *dev; + struct snd_soc_dai_driver *driver; + struct snd_soc_dai_stream stream[2]; + unsigned int rate; + unsigned int channels; + unsigned int sample_bits; + struct snd_soc_component *component; + struct list_head list; + struct snd_pcm_substream *mark_startup; + struct snd_pcm_substream *mark_hw_params; + struct snd_pcm_substream *mark_trigger; + struct snd_compr_stream *mark_compr_startup; + unsigned int probed: 1; }; -struct stat_node { - struct rb_node node; - void *stat; -}; +struct snd_soc_dai_ops; -struct bpf_id_pair { - u32 old; - u32 cur; -}; +struct snd_soc_cdai_ops; -struct bpf_idmap { - u32 tmp_id_gen; - struct bpf_id_pair map[600]; +struct snd_soc_dai_driver { + const char *name; + unsigned int id; + unsigned int base; + struct snd_soc_dobj dobj; + struct of_phandle_args *dai_args; + const struct snd_soc_dai_ops *ops; + const struct snd_soc_cdai_ops *cops; + struct snd_soc_pcm_stream capture; + struct snd_soc_pcm_stream playback; + unsigned int symmetric_rate: 1; + unsigned int symmetric_channels: 1; + unsigned int symmetric_sample_bits: 1; +}; + +struct snd_soc_dai_ops { + int (*probe)(struct snd_soc_dai *); + int (*remove)(struct snd_soc_dai *); + int (*compress_new)(struct snd_soc_pcm_runtime *, int); + int (*pcm_new)(struct snd_soc_pcm_runtime *, struct snd_soc_dai *); + int (*set_sysclk)(struct snd_soc_dai *, int, unsigned int, int); + int (*set_pll)(struct snd_soc_dai *, int, int, unsigned int, unsigned int); + int (*set_clkdiv)(struct snd_soc_dai *, int, int); + int (*set_bclk_ratio)(struct snd_soc_dai *, unsigned int); + int (*set_fmt)(struct snd_soc_dai *, unsigned int); + int (*xlate_tdm_slot_mask)(unsigned int, unsigned int *, unsigned int *); + int (*set_tdm_slot)(struct snd_soc_dai *, unsigned int, unsigned int, int, int); + int (*set_channel_map)(struct snd_soc_dai *, unsigned int, unsigned int *, unsigned int, unsigned int *); + int (*get_channel_map)(struct snd_soc_dai *, unsigned int *, unsigned int *, unsigned int *, unsigned int *); + int (*set_tristate)(struct snd_soc_dai *, int); + int (*set_stream)(struct snd_soc_dai *, void *, int); + void * (*get_stream)(struct snd_soc_dai *, int); + int (*mute_stream)(struct snd_soc_dai *, int, int); + int (*startup)(struct snd_pcm_substream *, struct snd_soc_dai *); + void (*shutdown)(struct snd_pcm_substream *, struct snd_soc_dai *); + int (*hw_params)(struct snd_pcm_substream *, struct snd_pcm_hw_params *, struct snd_soc_dai *); + int (*hw_free)(struct snd_pcm_substream *, struct snd_soc_dai *); + int (*prepare)(struct snd_pcm_substream *, struct snd_soc_dai *); + int (*trigger)(struct snd_pcm_substream *, int, struct snd_soc_dai *); + int (*bespoke_trigger)(struct snd_pcm_substream *, int, struct snd_soc_dai *); + snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *, struct snd_soc_dai *); + u64 *auto_selectable_formats; + int num_auto_selectable_formats; + int probe_order; + int remove_order; + unsigned int no_capture_mute: 1; + unsigned int mute_unmute_on_trigger: 1; +}; + +struct snd_soc_cdai_ops { + int (*startup)(struct snd_compr_stream *, struct snd_soc_dai *); + int (*shutdown)(struct snd_compr_stream *, struct snd_soc_dai *); + int (*set_params)(struct snd_compr_stream *, struct snd_compr_params *, struct snd_soc_dai *); + int (*get_params)(struct snd_compr_stream *, struct snd_codec *, struct snd_soc_dai *); + int (*set_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *, struct snd_soc_dai *); + int (*get_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *, struct snd_soc_dai *); + int (*trigger)(struct snd_compr_stream *, int, struct snd_soc_dai *); + int (*pointer)(struct snd_compr_stream *, struct snd_compr_tstamp *, struct snd_soc_dai *); + int (*ack)(struct snd_compr_stream *, size_t, struct snd_soc_dai *); +}; + +struct snd_jack; + +struct snd_soc_jack { + struct mutex mutex; + struct snd_jack *jack; + struct snd_soc_card *card; + struct list_head pins; + int status; + struct blocking_notifier_head notifier; + struct list_head jack_zones; +}; + +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 snd_compress_ops { + int (*open)(struct snd_soc_component *, struct snd_compr_stream *); + int (*free)(struct snd_soc_component *, struct snd_compr_stream *); + int (*set_params)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_params *); + int (*get_params)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_codec *); + int (*set_metadata)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_metadata *); + int (*get_metadata)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_metadata *); + int (*trigger)(struct snd_soc_component *, struct snd_compr_stream *, int); + int (*pointer)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_tstamp *); + int (*copy)(struct snd_soc_component *, struct snd_compr_stream *, char __attribute__((btf_type_tag("user"))) *, size_t); + int (*mmap)(struct snd_soc_component *, struct snd_compr_stream *, struct vm_area_struct *); + int (*ack)(struct snd_soc_component *, struct snd_compr_stream *, size_t); + int (*get_caps)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_caps *); + int (*get_codec_caps)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_codec_caps *); +}; + +struct snd_soc_codec_conf { + struct snd_soc_dai_link_component dlc; + const char *name_prefix; +}; + +struct snd_soc_aux_dev { + struct snd_soc_dai_link_component dlc; + int (*init)(struct snd_soc_component *); +}; + +struct snd_soc_dapm_update { + struct snd_kcontrol *kcontrol; + int reg; + int mask; + int val; + int reg2; + int mask2; + int val2; + bool has_second_set; +}; + +typedef void (*btf_trace_snd_soc_bias_level_done)(void *, struct snd_soc_card *, int); + +typedef void (*btf_trace_snd_soc_dapm_start)(void *, struct snd_soc_card *); + +typedef void (*btf_trace_snd_soc_dapm_done)(void *, struct snd_soc_card *); + +typedef void (*btf_trace_snd_soc_dapm_widget_power)(void *, struct snd_soc_dapm_widget *, int); + +typedef void (*btf_trace_snd_soc_dapm_widget_event_start)(void *, struct snd_soc_dapm_widget *, int); + +typedef void (*btf_trace_snd_soc_dapm_widget_event_done)(void *, struct snd_soc_dapm_widget *, int); + +typedef void (*btf_trace_snd_soc_dapm_walk_done)(void *, struct snd_soc_card *); + +enum snd_soc_dapm_direction { + SND_SOC_DAPM_DIR_IN = 0, + SND_SOC_DAPM_DIR_OUT = 1, +}; + +struct snd_soc_dapm_path; + +typedef void (*btf_trace_snd_soc_dapm_path)(void *, struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction, struct snd_soc_dapm_path *); + +struct snd_soc_dapm_path { + const char *name; + union { + struct { + struct snd_soc_dapm_widget *source; + struct snd_soc_dapm_widget *sink; + }; + struct snd_soc_dapm_widget *node[2]; + }; + u32 connect: 1; + u32 walking: 1; + u32 weak: 1; + u32 is_supply: 1; + int (*connected)(struct snd_soc_dapm_widget *, struct snd_soc_dapm_widget *); + struct list_head list_node[2]; + struct list_head list_kcontrol; + struct list_head list; +}; + +typedef void (*btf_trace_snd_soc_dapm_connected)(void *, int, int); + +typedef void (*btf_trace_snd_soc_jack_irq)(void *, const char *); + +typedef void (*btf_trace_snd_soc_jack_report)(void *, struct snd_soc_jack *, int, int); + +typedef void (*btf_trace_snd_soc_jack_notify)(void *, struct snd_soc_jack *, int); + +enum { + SNDRV_PCM_STREAM_PLAYBACK = 0, + SNDRV_PCM_STREAM_CAPTURE = 1, + SNDRV_PCM_STREAM_LAST = 1, +}; + +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 trace_event_raw_snd_soc_card { + struct trace_entry ent; + u32 __data_loc_name; + int val; + char __data[0]; +}; + +struct trace_event_raw_snd_soc_dapm_basic { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_snd_soc_dapm_widget { + struct trace_entry ent; + u32 __data_loc_name; + int val; + char __data[0]; +}; + +struct trace_event_raw_snd_soc_dapm_walk_done { + struct trace_entry ent; + u32 __data_loc_name; + int power_checks; + int path_checks; + int neighbour_checks; + char __data[0]; +}; + +struct trace_event_raw_snd_soc_dapm_path { + struct trace_entry ent; + u32 __data_loc_wname; + u32 __data_loc_pname; + u32 __data_loc_pnname; + int path_node; + int path_connect; + int path_dir; + char __data[0]; +}; + +struct trace_event_raw_snd_soc_dapm_connected { + struct trace_entry ent; + int paths; + int stream; + char __data[0]; +}; + +struct trace_event_raw_snd_soc_jack_irq { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; + +struct trace_event_raw_snd_soc_jack_report { + struct trace_entry ent; + u32 __data_loc_name; + int mask; + int val; + char __data[0]; +}; + +struct trace_event_raw_snd_soc_jack_notify { + struct trace_entry ent; + u32 __data_loc_name; + int val; + char __data[0]; +}; + +struct trace_event_data_offsets_snd_soc_card { + u32 name; +}; + +struct trace_event_data_offsets_snd_soc_dapm_basic { + u32 name; +}; + +struct trace_event_data_offsets_snd_soc_dapm_widget { + u32 name; +}; + +struct trace_event_data_offsets_snd_soc_dapm_walk_done { + u32 name; +}; + +struct trace_event_data_offsets_snd_soc_dapm_path { + u32 wname; + u32 pname; + u32 pnname; +}; + +struct trace_event_data_offsets_snd_soc_jack_irq { + u32 name; +}; + +struct trace_event_data_offsets_snd_soc_jack_report { + u32 name; +}; + +struct trace_event_data_offsets_snd_soc_jack_notify { + u32 name; +}; + +struct trace_event_data_offsets_snd_soc_dapm_connected {}; + +struct bpf_mem_caches; + +struct bpf_mem_cache; + +struct bpf_mem_alloc { + struct bpf_mem_caches __attribute__((btf_type_tag("percpu"))) *caches; + struct bpf_mem_cache __attribute__((btf_type_tag("percpu"))) *cache; + bool percpu; + struct work_struct work; +}; + +struct bpf_local_storage_map_bucket; + +struct bpf_local_storage_map { + struct bpf_map map; + struct bpf_local_storage_map_bucket *buckets; + u32 bucket_log; + u16 elem_size; + u16 cache_idx; + struct bpf_mem_alloc selem_ma; + struct bpf_mem_alloc storage_ma; + bool bpf_ma; + long: 64; + 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; +}; + +struct bpf_mem_cache { + struct llist_head free_llist; + local_t active; + struct llist_head free_llist_extra; + struct irq_work refill_work; + struct obj_cgroup *objcg; + int unit_size; + int free_cnt; + int low_watermark; + int high_watermark; + int batch; + int percpu_size; + bool draining; + struct bpf_mem_cache *tgt; + struct llist_head free_by_rcu; + struct llist_node *free_by_rcu_tail; + struct llist_head waiting_for_gp; + struct llist_node *waiting_for_gp_tail; + struct callback_head rcu; + atomic_t call_rcu_in_progress; + struct llist_head free_llist_extra_rcu; + struct llist_head free_by_rcu_ttrace; + struct llist_head waiting_for_gp_ttrace; + struct callback_head rcu_ttrace; + atomic_t call_rcu_ttrace_in_progress; +}; + +struct bpf_mem_caches { + struct bpf_mem_cache cache[11]; +}; + +struct bpf_local_storage_data { + struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap; + u8 data[0]; +}; + +struct bpf_id_pair { + u32 old; + u32 cur; +}; + +struct bpf_idmap { + u32 tmp_id_gen; + struct bpf_id_pair map[600]; }; struct bpf_idset { @@ -74993,6 +70306,16 @@ struct bpf_idset { u32 ids[600]; }; +struct bpf_verifier_log { + u64 start_pos; + u64 end_pos; + char __attribute__((btf_type_tag("user"))) *ubuf; + u32 level; + u32 len_total; + u32 len_max; + char kbuf[1024]; +}; + struct bpf_subprog_info { u32 start; u32 linfo_idx; @@ -75000,7 +70323,9 @@ struct bpf_subprog_info { bool has_tail_call; bool tail_call_reachable; bool has_ld_abs; + bool is_cb; bool is_async_cb; + bool is_exception_cb; }; struct backtrack_state { @@ -75039,6 +70364,8 @@ struct bpf_verifier_env { u32 used_map_cnt; u32 used_btf_cnt; u32 id_gen; + u32 hidden_subprog_cnt; + int exception_callback_subprog; bool explore_alu_limits; bool allow_ptr_leaks; bool allow_uninit_stack; @@ -75046,10 +70373,11 @@ struct bpf_verifier_env { bool bypass_spec_v1; bool bypass_spec_v4; bool seen_direct_write; + bool seen_exception; struct bpf_insn_aux_data *insn_aux_data; const struct bpf_line_info *prev_linfo; struct bpf_verifier_log log; - struct bpf_subprog_info subprog_info[257]; + struct bpf_subprog_info subprog_info[258]; union { struct bpf_idmap idmap_scratch; struct bpf_idset idset_scratch; @@ -75123,11 +70451,6 @@ enum bpf_iter_state { BPF_ITER_STATE_DRAINED = 2, }; -struct tnum { - u64 value; - u64 mask; -}; - enum bpf_reg_liveness { REG_LIVE_NONE = 0, REG_LIVE_READ32 = 1, @@ -75204,10 +70527,14 @@ struct bpf_verifier_state { struct bpf_active_lock active_lock; bool speculative; bool active_rcu_lock; + bool used_as_loop_entry; u32 first_insn_idx; u32 last_insn_idx; + struct bpf_verifier_state *loop_entry; struct bpf_idx_pair *jmp_history; u32 jmp_history_cnt; + u32 dfs_depth; + u32 callback_unroll_depth; }; struct bpf_reference_state; @@ -75223,6 +70550,8 @@ struct bpf_func_state { bool in_callback_fn; struct tnum callback_ret_range; bool in_async_callback_fn; + bool in_exception_callback_fn; + u32 callback_depth; int acquired_refs; struct bpf_reference_state *refs; int allocated_stack; @@ -75294,11 +70623,13 @@ struct bpf_insn_aux_data { bool zext_dst; bool storage_get_func_atomic; bool is_iter_next; + bool call_with_percpu_alloc_ptr; u8 alu_state; unsigned int orig_idx; bool jmp_point; bool prune_point; bool force_checkpoint; + bool calls_callback; }; struct btf_struct_meta { @@ -75306,28710 +70637,29831 @@ struct btf_struct_meta { struct btf_record *record; }; -enum { - BPF_F_NO_PREALLOC = 1, - BPF_F_NO_COMMON_LRU = 2, - BPF_F_NUMA_NODE = 4, - BPF_F_RDONLY = 8, - BPF_F_WRONLY = 16, - BPF_F_STACK_BUILD_ID = 32, - BPF_F_ZERO_SEED = 64, - BPF_F_RDONLY_PROG = 128, - BPF_F_WRONLY_PROG = 256, - BPF_F_CLONE = 512, - BPF_F_MMAPABLE = 1024, - BPF_F_PRESERVE_ELEMS = 2048, - BPF_F_INNER_MAP = 4096, - BPF_F_LINK = 8192, - BPF_F_PATH_FD = 16384, +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 *); }; -enum { - BPF_ANY = 0, - BPF_NOEXIST = 1, - BPF_EXIST = 2, - BPF_F_LOCK = 4, +struct seg6_pernet_data { + struct mutex lock; + struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src; }; -enum bpf_audit { - BPF_AUDIT_LOAD = 0, - BPF_AUDIT_UNLOAD = 1, - BPF_AUDIT_MAX = 2, +struct sk_psock_progs { + struct bpf_prog *msg_parser; + struct bpf_prog *stream_parser; + struct bpf_prog *stream_verdict; + struct bpf_prog *skb_verdict; }; -enum bpf_stats_type { - BPF_STATS_RUN_TIME = 0, +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; }; -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 strparser; -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 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 bpf_raw_tp_link { - struct bpf_link link; - struct bpf_raw_event_map *btp; +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 bpf_perf_link { - struct bpf_link link; - struct file *perf_file; +struct sk_psock_work_state { + u32 len; + u32 off; }; -struct bpf_spin_lock { - __u32 val; -}; +struct sk_msg; -struct bpf_prog_kstats { - u64 nsecs; - u64 cnt; - u64 misses; +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 delayed_work work; + struct sock *sk_pair; + struct rcu_work rwork; }; -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 sk_msg_sg { + u32 start; + u32 curr; + u32 end; + u32 size; + u32 copybreak; + unsigned long copy[1]; + struct scatterlist data[19]; }; -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 sk_msg { + struct sk_msg_sg sg; + void *data; + void *data_end; + u32 apply_bytes; + u32 cork_bytes; + u32 flags; + struct sk_buff *skb; + struct sock *sk_redir; + struct sock *sk; + struct list_head list; }; -struct bpf_btf_info { - __u64 btf; - __u32 btf_size; - __u32 id; - __u64 name; - __u32 name_len; - __u32 kernel_btf; +struct bpf_dispatcher_prog { + struct bpf_prog *prog; + refcount_t users; }; -struct bpf_attach_target_info { - struct btf_func_model fmodel; - long tgt_addr; - struct module *tgt_mod; - const char *tgt_name; - const struct btf_type *tgt_type; +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; }; -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, +struct ipv6_bpf_stub { + int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32); + struct sock * (*udp6_lib_lookup)(struct net *, const struct in6_addr *, __be16, const struct in6_addr *, __be16, int, int, struct udp_table *, struct sk_buff *); + int (*ipv6_setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*ipv6_getsockopt)(struct sock *, int, int, sockptr_t, sockptr_t); + int (*ipv6_dev_get_saddr)(struct net *, const struct net_device *, const struct in6_addr *, unsigned int, struct in6_addr *); }; -enum lru_status { - LRU_REMOVED = 0, - LRU_REMOVED_RETRY = 1, - LRU_ROTATE = 2, - LRU_SKIP = 3, - LRU_RETRY = 4, +struct bpf_scratchpad { + union { + __be32 diff[128]; + u8 buff[512]; + }; }; -typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *); - -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, - PGSCAN_ZONE_RECLAIM_FAILED = 39, - PGINODESTEAL = 40, - SLABS_SCANNED = 41, - KSWAPD_INODESTEAL = 42, - KSWAPD_LOW_WMARK_HIT_QUICKLY = 43, - KSWAPD_HIGH_WMARK_HIT_QUICKLY = 44, - PAGEOUTRUN = 45, - PGROTATED = 46, - DROP_PAGECACHE = 47, - DROP_SLAB = 48, - OOM_KILL = 49, - NUMA_PTE_UPDATES = 50, - NUMA_HUGE_PTE_UPDATES = 51, - NUMA_HINT_FAULTS = 52, - NUMA_HINT_FAULTS_LOCAL = 53, - NUMA_PAGE_MIGRATE = 54, - PGMIGRATE_SUCCESS = 55, - PGMIGRATE_FAIL = 56, - THP_MIGRATION_SUCCESS = 57, - THP_MIGRATION_FAIL = 58, - THP_MIGRATION_SPLIT = 59, - COMPACTMIGRATE_SCANNED = 60, - COMPACTFREE_SCANNED = 61, - COMPACTISOLATED = 62, - COMPACTSTALL = 63, - COMPACTFAIL = 64, - COMPACTSUCCESS = 65, - KCOMPACTD_WAKE = 66, - KCOMPACTD_MIGRATE_SCANNED = 67, - KCOMPACTD_FREE_SCANNED = 68, - HTLB_BUDDY_PGALLOC = 69, - HTLB_BUDDY_PGALLOC_FAIL = 70, - CMA_ALLOC_SUCCESS = 71, - CMA_ALLOC_FAIL = 72, - UNEVICTABLE_PGCULLED = 73, - UNEVICTABLE_PGSCANNED = 74, - UNEVICTABLE_PGRESCUED = 75, - UNEVICTABLE_PGMLOCKED = 76, - UNEVICTABLE_PGMUNLOCKED = 77, - UNEVICTABLE_PGCLEARED = 78, - UNEVICTABLE_PGSTRANDED = 79, - THP_FAULT_ALLOC = 80, - THP_FAULT_FALLBACK = 81, - THP_FAULT_FALLBACK_CHARGE = 82, - THP_COLLAPSE_ALLOC = 83, - THP_COLLAPSE_ALLOC_FAILED = 84, - THP_FILE_ALLOC = 85, - THP_FILE_FALLBACK = 86, - THP_FILE_FALLBACK_CHARGE = 87, - THP_FILE_MAPPED = 88, - THP_SPLIT_PAGE = 89, - THP_SPLIT_PAGE_FAILED = 90, - THP_DEFERRED_SPLIT_PAGE = 91, - THP_SPLIT_PMD = 92, - THP_SCAN_EXCEED_NONE_PTE = 93, - THP_SCAN_EXCEED_SWAP_PTE = 94, - THP_SCAN_EXCEED_SHARED_PTE = 95, - THP_ZERO_PAGE_ALLOC = 96, - THP_ZERO_PAGE_ALLOC_FAILED = 97, - THP_SWPOUT = 98, - THP_SWPOUT_FALLBACK = 99, - BALLOON_INFLATE = 100, - BALLOON_DEFLATE = 101, - BALLOON_MIGRATE = 102, - SWAP_RA = 103, - SWAP_RA_HIT = 104, - KSM_SWPIN_COPY = 105, - COW_KSM = 106, - NR_VM_EVENT_ITEMS = 107, +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; + }; }; -typedef union { - struct page **pages; - struct folio **folios; - struct encoded_page **encoded_pages; -} release_pages_arg; - -struct vma_swap_readahead { - unsigned short win; - unsigned short offset; - unsigned short nr_pte; +enum { + BPF_F_NEIGH = 2, + BPF_F_PEER = 4, + BPF_F_NEXTHOP = 8, }; -struct timens_offsets { - struct timespec64 monotonic; - struct timespec64 boottime; +enum sk_action { + SK_DROP = 0, + SK_PASS = 1, }; -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 { + 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, }; -struct user_event_mm { - struct list_head mms_link; - struct list_head enablers; - struct mm_struct *mm; - struct user_event_mm *next; - refcount_t refcnt; - refcount_t tasks; - struct rcu_work put_rwork; +enum { + BPF_F_RECOMPUTE_CSUM = 1, + BPF_F_INVALIDATE_HASH = 2, }; -enum mm_cid_state { - MM_CID_UNSET = 4294967295, - MM_CID_LAZY_PUT = 2147483648, +enum bpf_hdr_start_off { + BPF_HDR_START_MAC = 0, + BPF_HDR_START_NET = 1, }; -enum rlimit_type { - UCOUNT_RLIMIT_NPROC = 0, - UCOUNT_RLIMIT_MSGQUEUE = 1, - UCOUNT_RLIMIT_SIGPENDING = 2, - UCOUNT_RLIMIT_MEMLOCK = 3, - UCOUNT_RLIMIT_COUNTS = 4, +enum { + BPF_F_HDR_FIELD_MASK = 15, }; -typedef unsigned short ushort; - -struct open_flags { - int open_flag; - umode_t mode; - int acc_mode; - int intent; - int lookup_flags; +enum { + BPF_F_PSEUDO_HDR = 16, + BPF_F_MARK_MANGLED_0 = 32, + BPF_F_MARK_ENFORCE = 64, }; -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; +enum { + BPF_CSUM_LEVEL_QUERY = 0, + BPF_CSUM_LEVEL_INC = 1, + BPF_CSUM_LEVEL_DEC = 2, + BPF_CSUM_LEVEL_RESET = 3, }; -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_FANOTIFY_GROUPS = 10, - UCOUNT_FANOTIFY_MARKS = 11, - UCOUNT_COUNTS = 12, +enum { + BPF_F_INGRESS = 1, }; -struct inotify_inode_mark { - struct fsnotify_mark fsn_mark; - int wd; +enum { + RTN_UNSPEC = 0, + RTN_UNICAST = 1, + RTN_LOCAL = 2, + RTN_BROADCAST = 3, + RTN_ANYCAST = 4, + RTN_MULTICAST = 5, + RTN_BLACKHOLE = 6, + RTN_UNREACHABLE = 7, + RTN_PROHIBIT = 8, + RTN_THROW = 9, + RTN_NAT = 10, + RTN_XRESOLVE = 11, + __RTN_MAX = 12, }; -struct inotify_event_info { - struct fsnotify_event fse; - u32 mask; - int wd; - u32 sync_cookie; - int name_len; - char name[0]; +enum { + SKBFL_ZEROCOPY_ENABLE = 1, + SKBFL_SHARED_FRAG = 2, + SKBFL_PURE_ZEROCOPY = 4, + SKBFL_DONT_ORPHAN = 8, + SKBFL_MANAGED_FRAG_REFS = 16, }; -struct inotify_event { - __s32 wd; - __u32 mask; - __u32 cookie; - __u32 len; - char name[0]; +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, }; -struct kernfs_global_locks { - struct mutex open_file_mutex[1024]; +enum { + BPF_ADJ_ROOM_ENCAP_L2_MASK = 255, + BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56, }; -struct kernfs_super_info { - struct super_block *sb; - struct kernfs_root *root; - const void *ns; - struct list_head node; +enum bpf_adj_room_mode { + BPF_ADJ_ROOM_NET = 0, + BPF_ADJ_ROOM_MAC = 1, }; -struct kernfs_fs_context { - struct kernfs_root *root; - void *ns_tag; - unsigned long magic; - bool new_sb_created; -}; +struct xsk_queue; -struct dx_hash_info { - u32 hash; - u32 minor_hash; - int hash_version; - u32 *seed; -}; +struct xdp_umem; -struct ext2_group_desc { - __le32 bg_block_bitmap; - __le32 bg_inode_bitmap; - __le32 bg_inode_table; - __le16 bg_free_blocks_count; - __le16 bg_free_inodes_count; - __le16 bg_used_dirs_count; - __le16 bg_pad; - __le32 bg_reserved[3]; +struct xdp_sock { + struct sock sk; + long: 64; + long: 64; + struct xsk_queue *rx; + struct net_device *dev; + struct xdp_umem *umem; + struct list_head flush_node; + struct xsk_buff_pool *pool; + u16 queue_id; + bool zc; + bool sg; + enum { + XSK_READY = 0, + XSK_BOUND = 1, + XSK_UNBOUND = 2, + } state; + long: 64; + struct xsk_queue *tx; + struct list_head tx_list; + u32 tx_budget_spent; + spinlock_t rx_lock; + u64 rx_dropped; + u64 rx_queue_full; + struct sk_buff *skb; + struct list_head map_list; + spinlock_t map_list_lock; + struct mutex mutex; + struct xsk_queue *fq_tmp; + struct xsk_queue *cq_tmp; }; -typedef int ext2_grpblk_t; +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 squashfs_inode_info { - u64 start; - int offset; - u64 xattr; - unsigned int xattr_size; - int xattr_count; - union { - struct { - u64 fragment_block; - int fragment_size; - int fragment_offset; - u64 block_list_start; - }; - struct { - u64 dir_idx_start; - int dir_idx_offset; - int dir_idx_cnt; - int parent; - }; - }; - struct inode vfs_inode; +enum { + BPF_F_INDEX_MASK = 4294967295ULL, + BPF_F_CURRENT_CPU = 4294967295ULL, + BPF_F_CTXLEN_MASK = 4503595332403200ULL, }; -struct squashfs_dir_index { - __le32 index; - __le32 start_block; - __le32 size; - unsigned char name[0]; +enum { + BPF_F_TUNINFO_IPV6 = 1, }; -struct squashfs_dir_header { - __le32 count; - __le32 start_block; - __le32 inode_number; +enum { + BPF_F_TUNINFO_FLAGS = 16, }; -struct squashfs_dir_entry { - __le16 offset; - __le16 inode_number; - __le16 type; - __le16 size; - char name[0]; +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 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 { + BPF_F_ZERO_CSUM_TX = 2, + BPF_F_DONT_FRAGMENT = 4, + BPF_F_SEQ_NUMBER = 8, + BPF_F_NO_TUNNEL_KEY = 16, }; -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; +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, }; -struct nfs_readdir_descriptor { - struct file *file; - struct folio *folio; - struct dir_context *ctx; - unsigned long folio_index; - unsigned long folio_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; +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, }; -struct nfs_cache_array_entry { - u64 cookie; - u64 ino; - const char *name; - unsigned int name_len; - unsigned char d_type; +enum { + BPF_FIB_LOOKUP_DIRECT = 1, + BPF_FIB_LOOKUP_OUTPUT = 2, + BPF_FIB_LOOKUP_SKIP_NEIGH = 4, + BPF_FIB_LOOKUP_TBID = 8, + BPF_FIB_LOOKUP_SRC = 16, }; -struct nfs_cache_array { - u64 change_attr; - u64 last_cookie; - unsigned int size; - unsigned char folio_full: 1; - unsigned char folio_is_eof: 1; - unsigned char cookies_are_ordered: 1; - struct nfs_cache_array_entry array[0]; +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, }; -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; +enum { + BPF_FIB_LKUP_RET_SUCCESS = 0, + BPF_FIB_LKUP_RET_BLACKHOLE = 1, + BPF_FIB_LKUP_RET_UNREACHABLE = 2, + BPF_FIB_LKUP_RET_PROHIBIT = 3, + BPF_FIB_LKUP_RET_NOT_FWDED = 4, + BPF_FIB_LKUP_RET_FWD_DISABLED = 5, + BPF_FIB_LKUP_RET_UNSUPP_LWT = 6, + BPF_FIB_LKUP_RET_NO_NEIGH = 7, + BPF_FIB_LKUP_RET_FRAG_NEEDED = 8, + BPF_FIB_LKUP_RET_NO_SRC_ADDR = 9, }; -struct debugfs_fsdata { - const struct file_operations *real_fops; - refcount_t active_users; - struct completion active_users_drained; +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 debugfs_reg32 { - char *name; - unsigned long offset; +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, }; -struct debugfs_blob_wrapper { - void *data; - unsigned long size; +enum bpf_check_mtu_flags { + BPF_MTU_CHK_SEGS = 1, }; -struct debugfs_u32_array { - u32 *array; - u32 n_elements; +enum bpf_lwt_encap_mode { + BPF_LWT_ENCAP_SEG6 = 0, + BPF_LWT_ENCAP_SEG6_INLINE = 1, + BPF_LWT_ENCAP_IP = 2, }; -struct debugfs_regset32 { - const struct debugfs_reg32 *regs; - int nregs; - void *base; - struct device *dev; +enum { + INET_ECN_NOT_ECT = 0, + INET_ECN_ECT_1 = 1, + INET_ECN_ECT_0 = 2, + INET_ECN_CE = 3, + INET_ECN_MASK = 3, }; -struct debugfs_devm_entry { - int (*read)(struct seq_file *, void *); - struct device *dev; +enum { + BPF_LOAD_HDR_OPT_TCP_SYN = 1, }; enum { - SKCIPHER_WALK_PHYS = 1, - SKCIPHER_WALK_SLOW = 2, - SKCIPHER_WALK_COPY = 4, - SKCIPHER_WALK_DIFF = 8, - SKCIPHER_WALK_SLEEP = 16, + 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, }; -struct skcipher_walk_buffer { - struct list_head entry; - struct scatter_walk dst; - unsigned int len; - u8 *data; - u8 buffer[0]; +enum { + BPF_SKB_TSTAMP_UNSPEC = 0, + BPF_SKB_TSTAMP_DELIVERY_MONO = 1, }; -struct crypto_skcipher { - unsigned int reqsize; - struct crypto_tfm base; +enum { + BPF_SK_LOOKUP_F_REPLACE = 1, + BPF_SK_LOOKUP_F_NO_REUSEPORT = 2, }; -struct crypto_sync_skcipher { - struct crypto_skcipher base; -}; +typedef u64 (*btf_bpf_skb_get_pay_offset)(struct sk_buff *); -struct skcipher_request; +typedef u64 (*btf_bpf_skb_get_nlattr)(struct sk_buff *, u32, u32); -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; -}; +typedef u64 (*btf_bpf_skb_get_nlattr_nest)(struct sk_buff *, u32, u32); -struct skcipher_request { - unsigned int cryptlen; - u8 *iv; - struct scatterlist *src; - struct scatterlist *dst; - struct crypto_async_request base; - void *__ctx[0]; +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_keys; + +struct bpf_flow_dissector { + struct bpf_flow_keys *flow_keys; + const struct sk_buff *skb; + const void *data; + const void *data_end; }; -struct skcipher_instance { - void (*free)(struct skcipher_instance *); +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 { - char head[64]; - struct crypto_instance base; - } s; - struct skcipher_alg alg; + __be32 ipv4_src; + __be32 ipv4_dst; + }; + struct { + __u32 ipv6_src[4]; + __u32 ipv6_dst[4]; + }; }; + __u32 flags; + __be32 flow_label; }; -struct crypto_cipher { - struct crypto_tfm base; -}; +typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32); -struct crypto_istat_cipher { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t err_cnt; -}; +typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32); -struct crypto_cipher_spawn { - struct crypto_spawn base; -}; +typedef u64 (*btf_bpf_sk_fullsock)(struct sock *); -struct skcipher_ctx_simple { - struct crypto_cipher *cipher; -}; +typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32); -struct crypto_skcipher_spawn { - struct crypto_spawn base; -}; +typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64); -struct crypto_report_blkcipher { - char type[64]; - char geniv[64]; - unsigned int blocksize; - unsigned int min_keysize; - unsigned int max_keysize; - unsigned int ivsize; -}; +typedef u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64); -enum rq_qos_id { - RQ_QOS_WBT = 0, - RQ_QOS_LATENCY = 1, - RQ_QOS_COST = 2, -}; +typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum); -struct rq_qos_ops; +typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum); -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; -}; +typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64); -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; -}; +typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64); -struct biovec_slab { - int nr_vecs; - char *name; - struct kmem_cache *slab; -}; +typedef u64 (*btf_bpf_redirect)(u32, u64); -enum { - sysctl_hung_task_timeout_secs = 0, -}; +typedef u64 (*btf_bpf_redirect_peer)(u32, u64); -enum { - BIOSET_NEED_BVECS = 1, - BIOSET_NEED_RESCUER = 2, - BIOSET_PERCPU_CACHE = 4, -}; +struct bpf_redir_neigh; -typedef unsigned int iov_iter_extraction_t; +typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64); -struct bvec_iter_all { - struct bio_vec bv; - int idx; - unsigned int done; +struct bpf_redir_neigh { + __u32 nh_family; + union { + __be32 ipv4_nh; + __u32 ipv6_nh[4]; + }; }; -struct bio_slab { - struct kmem_cache *slab; - unsigned int slab_ref; - unsigned int slab_size; - char name[8]; -}; +typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32); -enum { - IOU_POLL_DONE = 0, - IOU_POLL_NO_ACTION = 1, - IOU_POLL_REMOVE_POLL_USE_RES = 2, - IOU_POLL_REISSUE = 3, -}; +typedef u64 (*btf_bpf_msg_cork_bytes)(struct sk_msg *, u32); -enum { - IO_APOLL_OK = 0, - IO_APOLL_ABORTED = 1, - IO_APOLL_READY = 2, -}; +typedef u64 (*btf_bpf_msg_pull_data)(struct sk_msg *, u32, u32, u64); -struct io_poll { - struct file *file; - struct wait_queue_head *head; - __poll_t events; - int retries; - struct wait_queue_entry wait; -}; +typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64); -struct async_poll { - union { - struct io_poll poll; - struct io_cache_entry cache; - }; - struct io_poll *double_poll; -}; +typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64); -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; -}; +typedef u64 (*btf_bpf_get_cgroup_classid_curr)(); -struct io_poll_table { - struct poll_table_struct pt; - struct io_kiocb *req; - int nr_entries; - int error; - bool owning; - __poll_t result_mask; -}; +typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *); -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 *); -}; +typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *); -typedef unsigned int FSE_DTable; +typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *); -typedef struct { - U16 tableLog; - U16 fastMode; -} FSE_DTableHeader; +typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *); -typedef struct { - unsigned short newState; - unsigned char symbol; - unsigned char nbBits; -} FSE_decode_t; +typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *); -typedef struct { - short ncount[256]; - FSE_DTable dtable[1]; -} FSE_DecompressWksp; +typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32); -typedef struct { - size_t state; - const void *table; -} FSE_DState_t; +typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16); -typedef mpi_limb_t UWtype; +typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *); -typedef unsigned int UHWtype; +typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64); -struct sbq_wait { - struct sbitmap_queue *sbq; - struct wait_queue_entry wait; -}; +typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32); -struct mvebu_pic { - void *base; - u32 parent_irq; - struct irq_domain *domain; - struct platform_device *pdev; -}; +typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64); -enum mtk_phy_version { - MTK_PHY_V1 = 1, - MTK_PHY_V2 = 2, - MTK_PHY_V3 = 3, -}; +typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64); -struct mtk_phy_pdata { - bool avoid_rx_sen_degradation; - bool sw_pll_48m_to_26m; - bool sw_efuse_supported; - enum mtk_phy_version version; -}; +typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64); -enum u2_phy_params { - U2P_EYE_VRT = 0, - U2P_EYE_TERM = 1, - U2P_EFUSE_EN = 2, - U2P_EFUSE_INTR = 3, - U2P_DISCTH = 4, - U2P_PRE_EMPHASIS = 5, -}; +typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64); -enum u3_phy_params { - U3P_EFUSE_EN = 0, - U3P_EFUSE_INTR = 1, - U3P_EFUSE_TX_IMP = 2, - U3P_EFUSE_RX_IMP = 3, -}; +typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64); -struct u2phy_banks { - void *misc; - void *fmreg; - void *com; -}; +typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64); -struct u3phy_banks { - void *spllc; - void *chip; - void *phyd; - void *phya; -}; +typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *); -struct mtk_phy_instance { - struct phy *phy; - void *port_base; - union { - struct u2phy_banks u2_banks; - struct u3phy_banks u3_banks; - }; - struct clk_bulk_data clks[2]; - u32 index; - u32 type; - struct regmap *type_sw; - u32 type_sw_reg; - u32 type_sw_index; - u32 efuse_sw_en; - u32 efuse_intr; - u32 efuse_tx_imp; - u32 efuse_rx_imp; - int eye_src; - int eye_vrt; - int eye_term; - int intr; - int discth; - int pre_emphasis; - bool bc12_en; -}; +typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int); -struct mtk_tphy { - struct device *dev; - void *sif_base; - const struct mtk_phy_pdata *pdata; - struct mtk_phy_instance **phys; - int nphys; - int src_ref_clk; - int src_coef; -}; +typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32); -struct imx_pinctrl; +typedef u64 (*btf_bpf_xdp_store_bytes)(struct xdp_buff *, u32, void *, u32); -struct imx_pin; +typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int); -struct imx_pinctrl_soc_info { - const struct pinctrl_pin_desc *pins; - unsigned int npins; - unsigned int flags; - const char *gpr_compatible; - unsigned int mux_mask; - u8 mux_shift; - int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); - int (*imx_pinconf_get)(struct pinctrl_dev *, unsigned int, unsigned long *); - int (*imx_pinconf_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); - void (*imx_pinctrl_parse_pin)(struct imx_pinctrl *, unsigned int *, struct imx_pin *, const __be32 **); -}; +typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int); -struct imx_pin_reg; +typedef u64 (*btf_bpf_xdp_redirect)(u32, u64); -struct imx_pinctrl { - struct device *dev; - struct pinctrl_dev *pctl; - void *base; - void *input_sel_base; - const struct imx_pinctrl_soc_info *info; - struct imx_pin_reg *pin_regs; - unsigned int group_index; - struct mutex mutex; -}; +typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64); -struct imx_pin_reg { - s16 mux_reg; - s16 conf_reg; -}; +typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64); -struct imx_pin_mmio { - unsigned int mux_mode; - u16 input_reg; - unsigned int input_val; - unsigned long config; -}; +struct bpf_tunnel_key; -struct imx_pin_scu { - unsigned int mux_mode; - unsigned long config; -}; +typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64); -struct imx_pin { - unsigned int pin; +struct bpf_tunnel_key { + __u32 tunnel_id; union { - struct imx_pin_mmio mmio; - struct imx_pin_scu scu; - } conf; -}; - -struct pmic_mpp_state { - struct device *dev; - struct regmap *map; - struct pinctrl_dev *ctrl; - struct gpio_chip chip; + __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]; + }; }; -struct pmic_mpp_pad { - u16 base; - bool is_enabled; - bool out_value; - bool output_enabled; - bool input_enabled; - bool paired; - bool has_pullup; - unsigned int num_sources; - unsigned int power_source; - unsigned int amux_input; - unsigned int aout_level; - unsigned int pullup; - unsigned int function; - unsigned int drive_strength; - unsigned int dtest; -}; +typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32); -enum pincfg_type { - PINCFG_TYPE_FUNC = 0, - PINCFG_TYPE_DAT = 1, - PINCFG_TYPE_PUD = 2, - PINCFG_TYPE_DRV = 3, - PINCFG_TYPE_CON_PDN = 4, - PINCFG_TYPE_PUD_PDN = 5, - PINCFG_TYPE_NUM = 6, -}; +typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64); -struct pin_config { - const char *property; - enum pincfg_type param; -}; +typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32); -enum eint_type { - EINT_TYPE_NONE = 0, - EINT_TYPE_GPIO = 1, - EINT_TYPE_WKUP = 2, - EINT_TYPE_WKUP_MUX = 3, -}; +typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32); -struct samsung_pin_bank_data; +typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *); -struct samsung_retention_data; +typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int); -struct samsung_pinctrl_drv_data; +typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *); -struct samsung_pin_ctrl { - const struct samsung_pin_bank_data *pin_banks; - unsigned int nr_banks; - unsigned int nr_ext_resources; - const struct samsung_retention_data *retention_data; - int (*eint_gpio_init)(struct samsung_pinctrl_drv_data *); - int (*eint_wkup_init)(struct samsung_pinctrl_drv_data *); - void (*suspend)(struct samsung_pinctrl_drv_data *); - void (*resume)(struct samsung_pinctrl_drv_data *); -}; +typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int); -struct samsung_pin_bank_type; +typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64); -struct samsung_pin_bank_data { - const struct samsung_pin_bank_type *type; - u32 pctl_offset; - u8 pctl_res_idx; - u8 nr_pins; - u8 eint_func; - enum eint_type eint_type; - u32 eint_mask; - u32 eint_offset; - const char *name; -}; +typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *); -struct samsung_pin_bank_type { - u8 fld_width[6]; - u8 reg_offset[6]; -}; +struct bpf_sock_addr_kern; -struct samsung_retention_ctrl; +typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); -struct samsung_retention_data { - const u32 *regs; - int nr_regs; - u32 value; - atomic_t *refcnt; - struct samsung_retention_ctrl * (*init)(struct samsung_pinctrl_drv_data *, const struct samsung_retention_data *); +struct bpf_sock_addr_kern { + struct sock *sk; + struct sockaddr *uaddr; + u64 tmp_reg; + void *t_ctx; + u32 uaddrlen; }; -struct samsung_retention_ctrl { - const u32 *regs; - int nr_regs; - u32 value; - atomic_t *refcnt; - void *priv; - void (*enable)(struct samsung_pinctrl_drv_data *); - void (*disable)(struct samsung_pinctrl_drv_data *); -}; +typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *); -struct samsung_pin_group; +typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *); -struct samsung_pmx_func; +struct bpf_sock_ops_kern; -struct samsung_pin_bank; +typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *); -struct samsung_pinctrl_drv_data { - struct list_head node; - void *virt_base; - struct device *dev; - int irq; - struct pinctrl_desc pctl; - struct pinctrl_dev *pctl_dev; - const struct samsung_pin_group *pin_groups; - unsigned int nr_groups; - const struct samsung_pmx_func *pmx_functions; - unsigned int nr_functions; - struct samsung_pin_bank *pin_banks; - unsigned int nr_banks; - unsigned int pin_base; - unsigned int nr_pins; - struct samsung_retention_ctrl *retention_ctrl; - void (*suspend)(struct samsung_pinctrl_drv_data *); - void (*resume)(struct samsung_pinctrl_drv_data *); +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 samsung_pin_group { - const char *name; - const unsigned int *pins; - u8 num_pins; - u8 func; -}; +typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *); -struct samsung_pmx_func { - const char *name; - const char **groups; - u8 num_groups; - u32 val; -}; +typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *); -struct exynos_irq_chip; +typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *); -struct samsung_pin_bank { - const struct samsung_pin_bank_type *type; - void *pctl_base; - u32 pctl_offset; - u8 nr_pins; - void *eint_base; - u8 eint_func; - enum eint_type eint_type; - u32 eint_mask; - u32 eint_offset; - const char *name; - u32 pin_base; - void *soc_priv; - struct fwnode_handle *fwnode; - struct samsung_pinctrl_drv_data *drvdata; - struct irq_domain *irq_domain; - struct gpio_chip gpio_chip; - struct pinctrl_gpio_range grange; - struct exynos_irq_chip *irq_chip; - raw_spinlock_t slock; - u32 pm_save[7]; -}; +typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); -struct samsung_pinctrl_of_match_data { - const struct samsung_pin_ctrl *ctrl; - unsigned int num_ctrl; -}; +typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); -enum { - MAX77620_GPIO0 = 0, - MAX77620_GPIO1 = 1, - MAX77620_GPIO2 = 2, - MAX77620_GPIO3 = 3, - MAX77620_GPIO4 = 4, - MAX77620_GPIO5 = 5, - MAX77620_GPIO6 = 6, - MAX77620_GPIO7 = 7, - MAX77620_GPIO_NR = 8, -}; +typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); -struct max77620_gpio { - struct gpio_chip gpio_chip; - struct regmap *rmap; - struct device *dev; - struct mutex buslock; - unsigned int irq_type[8]; - bool irq_enabled[8]; -}; +typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); -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, -}; +typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int); -struct pci_dynid { - struct list_head node; - struct pci_device_id id; -}; +typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int); -struct drv_dev_and_id { - struct pci_driver *drv; - struct pci_dev *dev; - const struct pci_device_id *id; -}; +typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); -enum dw_edma_map_format { - EDMA_MF_EDMA_LEGACY = 0, - EDMA_MF_EDMA_UNROLL = 1, - EDMA_MF_HDMA_COMPAT = 5, - EDMA_MF_HDMA_NATIVE = 7, -}; +typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); -struct dw_pcie_host_ops; +typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); -struct dw_pcie_rp { - bool has_msi_ctrl: 1; - bool cfg0_io_shared: 1; - u64 cfg0_base; - void *va_cfg0_base; - u32 cfg0_size; - resource_size_t io_base; - phys_addr_t io_bus_addr; - u32 io_size; - int irq; - const struct dw_pcie_host_ops *ops; - int msi_irq[8]; - struct irq_domain *irq_domain; - struct irq_domain *msi_domain; - dma_addr_t msi_data; - struct irq_chip *msi_irq_chip; - u32 num_vectors; - u32 irq_mask[8]; - struct pci_host_bridge *bridge; - raw_spinlock_t lock; - unsigned long msi_irq_in_use[4]; -}; +typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); -struct dw_pcie_ep_ops; +typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int); -struct dw_pcie_ep { - struct pci_epc *epc; - struct list_head func_list; - const struct dw_pcie_ep_ops *ops; - phys_addr_t phys_base; - size_t addr_size; - size_t page_size; - u8 bar_to_atu[6]; - phys_addr_t *outbound_addr; - unsigned long *ib_window_map; - unsigned long *ob_window_map; - void *msi_mem; - phys_addr_t msi_mem_phys; - struct pci_epf_bar *epf_bar[6]; -}; +typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int); -struct dw_edma_region { - u64 paddr; +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 { - void *mem; - void *io; - } vaddr; - size_t sz; + __u16 tot_len; + __u16 mtu_result; + }; + __u32 ifindex; + union { + __u8 tos; + __be32 flowinfo; + __u32 rt_metric; + }; + union { + __be32 ipv4_src; + __u32 ipv6_src[4]; + }; + union { + __be32 ipv4_dst; + __u32 ipv6_dst[4]; + }; + union { + struct { + __be16 h_vlan_proto; + __be16 h_vlan_TCI; + }; + __u32 tbid; + }; + __u8 smac[6]; + __u8 dmac[6]; }; -struct dw_edma; +typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32); -struct dw_edma_plat_ops; +typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64); -struct dw_edma_chip { - struct device *dev; - int nr_irqs; - const struct dw_edma_plat_ops *ops; - u32 flags; - void *reg_base; - u16 ll_wr_cnt; - u16 ll_rd_cnt; - struct dw_edma_region ll_region_wr[8]; - struct dw_edma_region ll_region_rd[8]; - struct dw_edma_region dt_region_wr[8]; - struct dw_edma_region dt_region_rd[8]; - enum dw_edma_map_format mf; - struct dw_edma *dw; -}; +typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64); -struct reset_control_bulk_data { - const char *id; - struct reset_control *rstc; -}; +typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32); -struct dw_pcie_ops; +typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32); -struct dw_pcie { - struct device *dev; - void *dbi_base; - void *dbi_base2; - void *atu_base; - size_t atu_size; - u32 num_ib_windows; - u32 num_ob_windows; - u32 region_align; - u64 region_limit; - struct dw_pcie_rp pp; - struct dw_pcie_ep ep; - const struct dw_pcie_ops *ops; - u32 version; - u32 type; - unsigned long caps; - int num_lanes; - int link_gen; - u8 n_fts[2]; - struct dw_edma_chip edma; - struct clk_bulk_data app_clks[3]; - struct clk_bulk_data core_clks[4]; - struct reset_control_bulk_data app_rsts[3]; - struct reset_control_bulk_data core_rsts[7]; - struct gpio_desc *pe_rst; -}; +struct bpf_sock_tuple; -struct dw_pcie_host_ops { - int (*host_init)(struct dw_pcie_rp *); - void (*host_deinit)(struct dw_pcie_rp *); - int (*msi_host_init)(struct dw_pcie_rp *); -}; +typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct dw_pcie_ep_ops { - void (*ep_init)(struct dw_pcie_ep *); - int (*raise_irq)(struct dw_pcie_ep *, u8, enum pci_epc_irq_type, u16); - const struct pci_epc_features * (*get_features)(struct dw_pcie_ep *); - unsigned int (*func_conf_select)(struct dw_pcie_ep *, u8); +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 dw_pcie_ops { - u64 (*cpu_addr_fixup)(struct dw_pcie *, u64); - u32 (*read_dbi)(struct dw_pcie *, void *, u32, size_t); - void (*write_dbi)(struct dw_pcie *, void *, u32, size_t, u32); - void (*write_dbi2)(struct dw_pcie *, void *, u32, size_t, u32); - int (*link_up)(struct dw_pcie *); - int (*start_link)(struct dw_pcie *); - void (*stop_link)(struct dw_pcie *); -}; +typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct dw_edma_plat_ops { - int (*irq_vector)(struct device *, unsigned int); - u64 (*pci_address)(struct device *, phys_addr_t); -}; +typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct acpi_ged_event { - struct list_head node; - struct device *dev; - unsigned int gsi; - unsigned int irq; - acpi_handle handle; -}; +typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct acpi_ged_device { - struct device *dev; - struct list_head event_list; -}; +typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct acpi_pkg_info { - u8 *free_space; - acpi_size length; - u32 object_space; - u32 num_packages; -}; +typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -enum acpi_pptt_type { - ACPI_PPTT_TYPE_PROCESSOR = 0, - ACPI_PPTT_TYPE_CACHE = 1, - ACPI_PPTT_TYPE_ID = 2, - ACPI_PPTT_TYPE_RESERVED = 3, -}; +typedef u64 (*btf_bpf_sk_release)(struct sock *); -enum cache_type { - CACHE_TYPE_NOCACHE = 0, - CACHE_TYPE_INST = 1, - CACHE_TYPE_DATA = 2, - CACHE_TYPE_SEPARATE = 3, - CACHE_TYPE_UNIFIED = 4, -}; +typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); -struct acpi_pptt_processor { - struct acpi_subtable_header header; - u16 reserved; - u32 flags; - u32 parent; - u32 acpi_processor_id; - u32 number_of_priv_resources; -}; +typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); -struct acpi_pptt_cache { - struct acpi_subtable_header header; - u16 reserved; - u32 flags; - u32 next_level_of_cache; - u32 size; - u32 number_of_sets; - u8 associativity; - u8 attributes; - u16 line_size; -}; +typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); -struct acpi_pptt_cache_v1 { - u32 cache_id; -}; +typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); -struct cacheinfo; +typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); -struct cpu_cacheinfo { - struct cacheinfo *info_list; - unsigned int num_levels; - unsigned int num_leaves; - bool cpu_map_populated; - bool early_ci_levels; -}; +typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); -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 bpf_tcp_sock { + __u32 snd_cwnd; + __u32 srtt_us; + __u32 rtt_min; + __u32 snd_ssthresh; + __u32 rcv_nxt; + __u32 snd_nxt; + __u32 snd_una; + __u32 mss_cache; + __u32 ecn_flags; + __u32 rate_delivered; + __u32 rate_interval_us; + __u32 packets_out; + __u32 retrans_out; + __u32 total_retrans; + __u32 segs_in; + __u32 data_segs_in; + __u32 segs_out; + __u32 data_segs_out; + __u32 lost_out; + __u32 sacked_out; + __u64 bytes_received; + __u64 bytes_acked; + __u32 dsack_dups; + __u32 delivered; + __u32 delivered_ce; + __u32 icsk_retransmits; }; -struct pnp_dev; +typedef u64 (*btf_bpf_tcp_sock)(struct sock *); -struct pnp_fixup { - char id[7]; - void (*quirk_function)(struct pnp_dev *); -}; +typedef u64 (*btf_bpf_get_listener_sock)(struct sock *); -struct pnp_protocol; +typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *); -struct pnp_card; +typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); -struct pnp_driver; +typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); -struct pnp_card_link; +typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64); -struct pnp_id; +typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64); -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; -}; +typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64); -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; -}; +typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64); -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; -}; +typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32); -struct pnp_id { - char id[8]; - struct pnp_id *next; -}; +struct sk_reuseport_kern; -struct pnp_device_id; +typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32); -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 sk_reuseport_kern { + struct sk_buff *skb; + struct sock *sk; + struct sock *selected_sk; + struct sock *migrating_sk; + void *data_end; + u32 hash; + u32 reuseport_id; + bool bind_inany; }; -struct pnp_device_id { - __u8 id[8]; - kernel_ulong_t driver_data; -}; +typedef u64 (*btf_sk_reuseport_load_bytes)(const struct sk_reuseport_kern *, u32, void *, u32); -struct pnp_card_driver; +typedef u64 (*btf_sk_reuseport_load_bytes_relative)(const struct sk_reuseport_kern *, u32, void *, u32, u32); -struct pnp_card_link { - struct pnp_card *card; - struct pnp_card_driver *driver; - void *driver_data; - pm_message_t pm_state; +struct bpf_sk_lookup_kern; + +typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, u64); + +struct bpf_sk_lookup_kern { + u16 family; + u16 protocol; + __be16 sport; + u16 dport; + struct { + __be32 saddr; + __be32 daddr; + } v4; + struct { + const struct in6_addr *saddr; + const struct in6_addr *daddr; + } v6; + struct sock *selected_sk; + u32 ingress_ifindex; + bool no_reuseport; }; -struct pnp_card_device_id; +typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *); -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; +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 sockaddr_un { + __kernel_sa_family_t sun_family; + char sun_path[108]; }; -struct pnp_card_device_id { - __u8 id[8]; - kernel_ulong_t driver_data; +struct qdisc_skb_cb { struct { - __u8 id[8]; - } devs[8]; + unsigned int pkt_len; + u16 slave_dev_queue_mapping; + u16 tc_classid; + }; + unsigned char data[20]; }; -struct pnp_port { - resource_size_t min; - resource_size_t max; - resource_size_t align; - resource_size_t size; - unsigned char flags; +struct bpf_skb_data_end { + struct qdisc_skb_cb qdisc_cb; + void *data_meta; + void *data_end; }; -typedef struct { - unsigned long bits[4]; -} pnp_irq_mask_t; +struct crypto_wait { + struct completion completion; + int err; +}; -struct pnp_irq { - pnp_irq_mask_t map; - unsigned char flags; +struct strp_msg { + int full_len; + int offset; }; -struct pnp_dma { - unsigned char map; - unsigned char flags; +struct tls_strparser { + struct sock *sk; + u32 mark: 8; + u32 stopped: 1; + u32 copy_mode: 1; + u32 mixed_decrypted: 1; + u32 msg_ready: 1; + struct strp_msg stm; + struct sk_buff *anchor; + struct work_struct work; }; -struct pnp_mem { - resource_size_t min; - resource_size_t max; - resource_size_t align; - resource_size_t size; - unsigned char flags; +struct crypto_aead; + +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 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 crypto_aead { + unsigned int authsize; + unsigned int reqsize; + struct crypto_tfm base; }; -struct pnp_resource { - struct list_head list; - struct resource res; +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]; }; -enum s2mps11_reg { - S2MPS11_REG_ID = 0, - S2MPS11_REG_INT1 = 1, - S2MPS11_REG_INT2 = 2, - S2MPS11_REG_INT3 = 3, - S2MPS11_REG_INT1M = 4, - S2MPS11_REG_INT2M = 5, - S2MPS11_REG_INT3M = 6, - S2MPS11_REG_ST1 = 7, - S2MPS11_REG_ST2 = 8, - S2MPS11_REG_OFFSRC = 9, - S2MPS11_REG_PWRONSRC = 10, - S2MPS11_REG_RTC_CTRL = 11, - S2MPS11_REG_CTRL1 = 12, - S2MPS11_REG_ETC_TEST = 13, - S2MPS11_REG_RSVD3 = 14, - S2MPS11_REG_BU_CHG = 15, - S2MPS11_REG_RAMP = 16, - S2MPS11_REG_RAMP_BUCK = 17, - S2MPS11_REG_LDO1_8 = 18, - S2MPS11_REG_LDO9_16 = 19, - S2MPS11_REG_LDO17_24 = 20, - S2MPS11_REG_LDO25_32 = 21, - S2MPS11_REG_LDO33_38 = 22, - S2MPS11_REG_LDO1_8_1 = 23, - S2MPS11_REG_LDO9_16_1 = 24, - S2MPS11_REG_LDO17_24_1 = 25, - S2MPS11_REG_LDO25_32_1 = 26, - S2MPS11_REG_LDO33_38_1 = 27, - S2MPS11_REG_OTP_ADRL = 28, - S2MPS11_REG_OTP_ADRH = 29, - S2MPS11_REG_OTP_DATA = 30, - S2MPS11_REG_MON1SEL = 31, - S2MPS11_REG_MON2SEL = 32, - S2MPS11_REG_LEE = 33, - S2MPS11_REG_RSVD_NO = 34, - S2MPS11_REG_UVLO = 35, - S2MPS11_REG_LEE_NO = 36, - S2MPS11_REG_B1CTRL1 = 37, - S2MPS11_REG_B1CTRL2 = 38, - S2MPS11_REG_B2CTRL1 = 39, - S2MPS11_REG_B2CTRL2 = 40, - S2MPS11_REG_B3CTRL1 = 41, - S2MPS11_REG_B3CTRL2 = 42, - S2MPS11_REG_B4CTRL1 = 43, - S2MPS11_REG_B4CTRL2 = 44, - S2MPS11_REG_B5CTRL1 = 45, - S2MPS11_REG_BUCK5_SW = 46, - S2MPS11_REG_B5CTRL2 = 47, - S2MPS11_REG_B5CTRL3 = 48, - S2MPS11_REG_B5CTRL4 = 49, - S2MPS11_REG_B5CTRL5 = 50, - S2MPS11_REG_B6CTRL1 = 51, - S2MPS11_REG_B6CTRL2 = 52, - S2MPS11_REG_B7CTRL1 = 53, - S2MPS11_REG_B7CTRL2 = 54, - S2MPS11_REG_B8CTRL1 = 55, - S2MPS11_REG_B8CTRL2 = 56, - S2MPS11_REG_B9CTRL1 = 57, - S2MPS11_REG_B9CTRL2 = 58, - S2MPS11_REG_B10CTRL1 = 59, - S2MPS11_REG_B10CTRL2 = 60, - S2MPS11_REG_L1CTRL = 61, - S2MPS11_REG_L2CTRL = 62, - S2MPS11_REG_L3CTRL = 63, - S2MPS11_REG_L4CTRL = 64, - S2MPS11_REG_L5CTRL = 65, - S2MPS11_REG_L6CTRL = 66, - S2MPS11_REG_L7CTRL = 67, - S2MPS11_REG_L8CTRL = 68, - S2MPS11_REG_L9CTRL = 69, - S2MPS11_REG_L10CTRL = 70, - S2MPS11_REG_L11CTRL = 71, - S2MPS11_REG_L12CTRL = 72, - S2MPS11_REG_L13CTRL = 73, - S2MPS11_REG_L14CTRL = 74, - S2MPS11_REG_L15CTRL = 75, - S2MPS11_REG_L16CTRL = 76, - S2MPS11_REG_L17CTRL = 77, - S2MPS11_REG_L18CTRL = 78, - S2MPS11_REG_L19CTRL = 79, - S2MPS11_REG_L20CTRL = 80, - S2MPS11_REG_L21CTRL = 81, - S2MPS11_REG_L22CTRL = 82, - S2MPS11_REG_L23CTRL = 83, - S2MPS11_REG_L24CTRL = 84, - S2MPS11_REG_L25CTRL = 85, - S2MPS11_REG_L26CTRL = 86, - S2MPS11_REG_L27CTRL = 87, - S2MPS11_REG_L28CTRL = 88, - S2MPS11_REG_L29CTRL = 89, - S2MPS11_REG_L30CTRL = 90, - S2MPS11_REG_L31CTRL = 91, - S2MPS11_REG_L32CTRL = 92, - S2MPS11_REG_L33CTRL = 93, - S2MPS11_REG_L34CTRL = 94, - S2MPS11_REG_L35CTRL = 95, - S2MPS11_REG_L36CTRL = 96, - S2MPS11_REG_L37CTRL = 97, - S2MPS11_REG_L38CTRL = 98, +struct tcp6_sock { + struct tcp_sock tcp; + struct ipv6_pinfo inet6; }; -enum s2mps13_reg { - S2MPS13_REG_ID = 0, - S2MPS13_REG_INT1 = 1, - S2MPS13_REG_INT2 = 2, - S2MPS13_REG_INT3 = 3, - S2MPS13_REG_INT1M = 4, - S2MPS13_REG_INT2M = 5, - S2MPS13_REG_INT3M = 6, - S2MPS13_REG_ST1 = 7, - S2MPS13_REG_ST2 = 8, - S2MPS13_REG_PWRONSRC = 9, - S2MPS13_REG_OFFSRC = 10, - S2MPS13_REG_BU_CHG = 11, - S2MPS13_REG_RTCCTRL = 12, - S2MPS13_REG_CTRL1 = 13, - S2MPS13_REG_CTRL2 = 14, - S2MPS13_REG_RSVD1 = 15, - S2MPS13_REG_RSVD2 = 16, - S2MPS13_REG_RSVD3 = 17, - S2MPS13_REG_RSVD4 = 18, - S2MPS13_REG_RSVD5 = 19, - S2MPS13_REG_RSVD6 = 20, - S2MPS13_REG_CTRL3 = 21, - S2MPS13_REG_RSVD7 = 22, - S2MPS13_REG_RSVD8 = 23, - S2MPS13_REG_WRSTBI = 24, - S2MPS13_REG_B1CTRL = 25, - S2MPS13_REG_B1OUT = 26, - S2MPS13_REG_B2CTRL = 27, - S2MPS13_REG_B2OUT = 28, - S2MPS13_REG_B3CTRL = 29, - S2MPS13_REG_B3OUT = 30, - S2MPS13_REG_B4CTRL = 31, - S2MPS13_REG_B4OUT = 32, - S2MPS13_REG_B5CTRL = 33, - S2MPS13_REG_B5OUT = 34, - S2MPS13_REG_B6CTRL = 35, - S2MPS13_REG_B6OUT = 36, - S2MPS13_REG_B7CTRL = 37, - S2MPS13_REG_B7SW = 38, - S2MPS13_REG_B7OUT = 39, - S2MPS13_REG_B8CTRL = 40, - S2MPS13_REG_B8OUT = 41, - S2MPS13_REG_B9CTRL = 42, - S2MPS13_REG_B9OUT = 43, - S2MPS13_REG_B10CTRL = 44, - S2MPS13_REG_B10OUT = 45, - S2MPS13_REG_BB1CTRL = 46, - S2MPS13_REG_BB1OUT = 47, - S2MPS13_REG_BUCK_RAMP1 = 48, - S2MPS13_REG_BUCK_RAMP2 = 49, - S2MPS13_REG_LDO_DVS1 = 50, - S2MPS13_REG_LDO_DVS2 = 51, - S2MPS13_REG_LDO_DVS3 = 52, - S2MPS13_REG_B6OUT2 = 53, - S2MPS13_REG_L1CTRL = 54, - S2MPS13_REG_L2CTRL = 55, - S2MPS13_REG_L3CTRL = 56, - S2MPS13_REG_L4CTRL = 57, - S2MPS13_REG_L5CTRL = 58, - S2MPS13_REG_L6CTRL = 59, - S2MPS13_REG_L7CTRL = 60, - S2MPS13_REG_L8CTRL = 61, - S2MPS13_REG_L9CTRL = 62, - S2MPS13_REG_L10CTRL = 63, - S2MPS13_REG_L11CTRL = 64, - S2MPS13_REG_L12CTRL = 65, - S2MPS13_REG_L13CTRL = 66, - S2MPS13_REG_L14CTRL = 67, - S2MPS13_REG_L15CTRL = 68, - S2MPS13_REG_L16CTRL = 69, - S2MPS13_REG_L17CTRL = 70, - S2MPS13_REG_L18CTRL = 71, - S2MPS13_REG_L19CTRL = 72, - S2MPS13_REG_L20CTRL = 73, - S2MPS13_REG_L21CTRL = 74, - S2MPS13_REG_L22CTRL = 75, - S2MPS13_REG_L23CTRL = 76, - S2MPS13_REG_L24CTRL = 77, - S2MPS13_REG_L25CTRL = 78, - S2MPS13_REG_L26CTRL = 79, - S2MPS13_REG_L27CTRL = 80, - S2MPS13_REG_L28CTRL = 81, - S2MPS13_REG_L29CTRL = 82, - S2MPS13_REG_L30CTRL = 83, - S2MPS13_REG_L31CTRL = 84, - S2MPS13_REG_L32CTRL = 85, - S2MPS13_REG_L33CTRL = 86, - S2MPS13_REG_L34CTRL = 87, - S2MPS13_REG_L35CTRL = 88, - S2MPS13_REG_L36CTRL = 89, - S2MPS13_REG_L37CTRL = 90, - S2MPS13_REG_L38CTRL = 91, - S2MPS13_REG_L39CTRL = 92, - S2MPS13_REG_L40CTRL = 93, - S2MPS13_REG_LDODSCH1 = 94, - S2MPS13_REG_LDODSCH2 = 95, - S2MPS13_REG_LDODSCH3 = 96, - S2MPS13_REG_LDODSCH4 = 97, - S2MPS13_REG_LDODSCH5 = 98, +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; }; -enum s5m8767_reg { - S5M8767_REG_ID = 0, - S5M8767_REG_INT1 = 1, - S5M8767_REG_INT2 = 2, - S5M8767_REG_INT3 = 3, - S5M8767_REG_INT1M = 4, - S5M8767_REG_INT2M = 5, - S5M8767_REG_INT3M = 6, - S5M8767_REG_STATUS1 = 7, - S5M8767_REG_STATUS2 = 8, - S5M8767_REG_STATUS3 = 9, - S5M8767_REG_CTRL1 = 10, - S5M8767_REG_CTRL2 = 11, - S5M8767_REG_LOWBAT1 = 12, - S5M8767_REG_LOWBAT2 = 13, - S5M8767_REG_BUCHG = 14, - S5M8767_REG_DVSRAMP = 15, - S5M8767_REG_DVSTIMER2 = 16, - S5M8767_REG_DVSTIMER3 = 17, - S5M8767_REG_DVSTIMER4 = 18, - S5M8767_REG_LDO1 = 19, - S5M8767_REG_LDO2 = 20, - S5M8767_REG_LDO3 = 21, - S5M8767_REG_LDO4 = 22, - S5M8767_REG_LDO5 = 23, - S5M8767_REG_LDO6 = 24, - S5M8767_REG_LDO7 = 25, - S5M8767_REG_LDO8 = 26, - S5M8767_REG_LDO9 = 27, - S5M8767_REG_LDO10 = 28, - S5M8767_REG_LDO11 = 29, - S5M8767_REG_LDO12 = 30, - S5M8767_REG_LDO13 = 31, - S5M8767_REG_LDO14 = 32, - S5M8767_REG_LDO15 = 33, - S5M8767_REG_LDO16 = 34, - S5M8767_REG_LDO17 = 35, - S5M8767_REG_LDO18 = 36, - S5M8767_REG_LDO19 = 37, - S5M8767_REG_LDO20 = 38, - S5M8767_REG_LDO21 = 39, - S5M8767_REG_LDO22 = 40, - S5M8767_REG_LDO23 = 41, - S5M8767_REG_LDO24 = 42, - S5M8767_REG_LDO25 = 43, - S5M8767_REG_LDO26 = 44, - S5M8767_REG_LDO27 = 45, - S5M8767_REG_LDO28 = 46, - S5M8767_REG_UVLO = 49, - S5M8767_REG_BUCK1CTRL1 = 50, - S5M8767_REG_BUCK1CTRL2 = 51, - S5M8767_REG_BUCK2CTRL = 52, - S5M8767_REG_BUCK2DVS1 = 53, - S5M8767_REG_BUCK2DVS2 = 54, - S5M8767_REG_BUCK2DVS3 = 55, - S5M8767_REG_BUCK2DVS4 = 56, - S5M8767_REG_BUCK2DVS5 = 57, - S5M8767_REG_BUCK2DVS6 = 58, - S5M8767_REG_BUCK2DVS7 = 59, - S5M8767_REG_BUCK2DVS8 = 60, - S5M8767_REG_BUCK3CTRL = 61, - S5M8767_REG_BUCK3DVS1 = 62, - S5M8767_REG_BUCK3DVS2 = 63, - S5M8767_REG_BUCK3DVS3 = 64, - S5M8767_REG_BUCK3DVS4 = 65, - S5M8767_REG_BUCK3DVS5 = 66, - S5M8767_REG_BUCK3DVS6 = 67, - S5M8767_REG_BUCK3DVS7 = 68, - S5M8767_REG_BUCK3DVS8 = 69, - S5M8767_REG_BUCK4CTRL = 70, - S5M8767_REG_BUCK4DVS1 = 71, - S5M8767_REG_BUCK4DVS2 = 72, - S5M8767_REG_BUCK4DVS3 = 73, - S5M8767_REG_BUCK4DVS4 = 74, - S5M8767_REG_BUCK4DVS5 = 75, - S5M8767_REG_BUCK4DVS6 = 76, - S5M8767_REG_BUCK4DVS7 = 77, - S5M8767_REG_BUCK4DVS8 = 78, - S5M8767_REG_BUCK5CTRL1 = 79, - S5M8767_REG_BUCK5CTRL2 = 80, - S5M8767_REG_BUCK5CTRL3 = 81, - S5M8767_REG_BUCK5CTRL4 = 82, - S5M8767_REG_BUCK5CTRL5 = 83, - S5M8767_REG_BUCK6CTRL1 = 84, - S5M8767_REG_BUCK6CTRL2 = 85, - S5M8767_REG_BUCK7CTRL1 = 86, - S5M8767_REG_BUCK7CTRL2 = 87, - S5M8767_REG_BUCK8CTRL1 = 88, - S5M8767_REG_BUCK8CTRL2 = 89, - S5M8767_REG_BUCK9CTRL1 = 90, - S5M8767_REG_BUCK9CTRL2 = 91, - S5M8767_REG_LDO1CTRL = 92, - S5M8767_REG_LDO2_1CTRL = 93, - S5M8767_REG_LDO2_2CTRL = 94, - S5M8767_REG_LDO2_3CTRL = 95, - S5M8767_REG_LDO2_4CTRL = 96, - S5M8767_REG_LDO3CTRL = 97, - S5M8767_REG_LDO4CTRL = 98, - S5M8767_REG_LDO5CTRL = 99, - S5M8767_REG_LDO6CTRL = 100, - S5M8767_REG_LDO7CTRL = 101, - S5M8767_REG_LDO8CTRL = 102, - S5M8767_REG_LDO9CTRL = 103, - S5M8767_REG_LDO10CTRL = 104, - S5M8767_REG_LDO11CTRL = 105, - S5M8767_REG_LDO12CTRL = 106, - S5M8767_REG_LDO13CTRL = 107, - S5M8767_REG_LDO14CTRL = 108, - S5M8767_REG_LDO15CTRL = 109, - S5M8767_REG_LDO16CTRL = 110, - S5M8767_REG_LDO17CTRL = 111, - S5M8767_REG_LDO18CTRL = 112, - S5M8767_REG_LDO19CTRL = 113, - S5M8767_REG_LDO20CTRL = 114, - S5M8767_REG_LDO21CTRL = 115, - S5M8767_REG_LDO22CTRL = 116, - S5M8767_REG_LDO23CTRL = 117, - S5M8767_REG_LDO24CTRL = 118, - S5M8767_REG_LDO25CTRL = 119, - S5M8767_REG_LDO26CTRL = 120, - S5M8767_REG_LDO27CTRL = 121, - S5M8767_REG_LDO28CTRL = 122, +struct udp6_sock { + struct udp_sock udp; + struct ipv6_pinfo inet6; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct clk_lookup; +struct mptcp_sock {}; -struct s2mps11_clk { - struct sec_pmic_dev *iodev; - struct device_node *clk_np; - struct clk_hw hw; - struct clk *clk; - struct clk_lookup *lookup; - u32 mask; - unsigned int reg; -}; +typedef unsigned int (*bpf_func_t)(const void *, const struct bpf_insn *); -struct clk_lookup { - struct list_head node; - const char *dev_id; - const char *con_id; - struct clk *clk; - struct clk_hw *clk_hw; +struct sock_fprog { + unsigned short len; + struct sock_filter __attribute__((btf_type_tag("user"))) *filter; }; -struct hisi_clock_data; - -struct hisi_crg_funcs { - struct hisi_clock_data * (*register_clks)(struct platform_device *); - void (*unregister_clks)(struct platform_device *); +struct cgroup_cls_state { + struct cgroup_subsys_state css; + u32 classid; }; -struct hisi_clock_data { - struct clk_onecell_data clk_data; - void *base; +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 hisi_fixed_rate_clock { - unsigned int id; - char *name; - const char *parent_name; - unsigned long flags; - unsigned long fixed_rate; +struct cipher_context { + char iv[20]; + char rec_seq[8]; }; -struct hi3559av100_pll_clock { - u32 id; - const char *name; - const char *parent_name; - const u32 ctrl_reg1; - const u8 frac_shift; - const u8 frac_width; - const u8 postdiv1_shift; - const u8 postdiv1_width; - const u8 postdiv2_shift; - const u8 postdiv2_width; - const u32 ctrl_reg2; - const u8 fbdiv_shift; - const u8 fbdiv_width; - const u8 refdiv_shift; - const u8 refdiv_width; +struct tls_crypto_info { + __u16 version; + __u16 cipher_type; }; -struct hisi_mux_clock { - unsigned int id; - const char *name; - const char * const *parent_names; - u8 num_parents; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u8 mux_flags; - const u32 *table; - const char *alias; +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 hisi_gate_clock { - unsigned int id; - const char *name; - const char *parent_name; - unsigned long flags; - unsigned long offset; - u8 bit_idx; - u8 gate_flags; - const char *alias; +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 hisi_divider_clock { - unsigned int id; - const char *name; - const char *parent_name; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u8 div_flags; - struct clk_div_table *table; - const char *alias; +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 hi3559av100_clk_pll { - struct clk_hw hw; - u32 id; - void *ctrl_reg1; - u8 frac_shift; - u8 frac_width; - u8 postdiv1_shift; - u8 postdiv1_width; - u8 postdiv2_shift; - u8 postdiv2_width; - void *ctrl_reg2; - u8 fbdiv_shift; - u8 fbdiv_width; - u8 refdiv_shift; - u8 refdiv_width; +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 hisi_reset_controller; +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]; +}; -struct hisi_crg_dev { - struct hisi_clock_data *clk_data; - struct hisi_reset_controller *rstc; - const struct hisi_crg_funcs *funcs; +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 parm { - u16 reg_off; - u8 shift; - u8 width; +struct tls_context { + struct tls_prot_info prot_info; + u8 tx_conf: 3; + u8 rx_conf: 3; + u8 zerocopy_sendfile: 1; + u8 rx_no_pad: 1; + int (*push_pending_record)(struct sock *, int); + void (*sk_write_space)(struct sock *); + void *priv_ctx_tx; + void *priv_ctx_rx; + struct net_device __attribute__((btf_type_tag("rcu"))) *netdev; + struct cipher_context tx; + struct cipher_context rx; + struct scatterlist *partially_sent_record; + u16 partially_sent_offset; + bool splicing_pages; + bool pending_open_record_frags; + struct mutex tx_lock; + unsigned long flags; + struct proto *sk_proto; + struct sock *sk; + void (*sk_destruct)(struct sock *); + union tls_crypto_context crypto_send; + union tls_crypto_context crypto_recv; + struct list_head list; + refcount_t refcount; + struct callback_head rcu; }; -struct pll_params_table; +typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long); -struct pll_mult_range; +struct vlan_hdr { + __be16 h_vlan_TCI; + __be16 h_vlan_encapsulated_proto; +}; -struct meson_clk_pll_data { - struct parm en; - struct parm m; - struct parm n; - struct parm frac; - struct parm l; - struct parm rst; - struct parm current_en; - struct parm l_detect; - const struct reg_sequence *init_regs; - unsigned int init_count; - const struct pll_params_table *table; - const struct pll_mult_range *range; - u8 flags; +struct bpf_dynptr_kern { + void *data; + u32 size; + u32 offset; }; -struct pll_params_table { - unsigned int m; - unsigned int n; +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 pll_mult_range { - unsigned int min; - unsigned int max; +struct compat_sock_fprog { + u16 len; + compat_uptr_t filter; }; -struct clk_smd_rpm; +typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); -struct rpm_smd_clk_desc { - struct clk_smd_rpm **clks; - size_t num_clks; - bool scaling_before_handover; +struct fib6_result { + struct fib6_nh *nh; + struct fib6_info *f6i; + u32 fib6_flags; + u8 fib6_type; + struct rt6_info *rt6; }; -struct clk_smd_rpm { - const int rpm_res_type; - const int rpm_key; - const int rpm_clk_id; - const bool active_only; - bool enabled; - bool branch; - struct clk_smd_rpm *peer; - struct clk_hw hw; - unsigned long rate; -}; - -struct clk_smd_rpm_req { - __le32 key; - __le32 nbytes; - __le32 value; +struct tc_ratespec { + unsigned char cell_log; + __u8 linklayer; + unsigned short overhead; + short cell_align; + unsigned short mpu; + __u32 rate; }; -struct rcar_gen3_cpg_pll_config { - u8 extal_div; - u8 pll1_mult; - u8 pll1_div; - u8 pll3_mult; - u8 pll3_div; - u8 osc_prediv; +struct qdisc_rate_table { + struct tc_ratespec rate; + u32 data[256]; + struct qdisc_rate_table *next; + int refcnt; }; -enum clk_ids___2 { - LAST_DT_CORE_CLK___2 = 44, - CLK_EXTAL___2 = 45, - CLK_EXTALR___2 = 46, - CLK_MAIN___2 = 47, - CLK_PLL0 = 48, - CLK_PLL1___2 = 49, - CLK_PLL3___2 = 50, - CLK_PLL4 = 51, - CLK_PLL1_DIV2___2 = 52, - CLK_PLL1_DIV4 = 53, - CLK_S0___2 = 54, - CLK_S1 = 55, - CLK_S2 = 56, - CLK_S3 = 57, - CLK_SDSRC___2 = 58, - CLK_RPCSRC___2 = 59, - CLK_RINT = 60, - MOD_CLK_BASE___2 = 61, +enum tc_link_layer { + TC_LINKLAYER_UNAWARE = 0, + TC_LINKLAYER_ETHERNET = 1, + TC_LINKLAYER_ATM = 2, }; -struct exynos_arm64_cmu_data { - struct samsung_clk_reg_dump *clk_save; - unsigned int nr_clk_save; - const struct samsung_clk_reg_dump *clk_suspend; - unsigned int nr_clk_suspend; - struct clk *clk; - struct clk **pclks; - int nr_pclks; - struct samsung_clk_provider *ctx; +enum qdisc_state_t { + __QDISC_STATE_SCHED = 0, + __QDISC_STATE_DEACTIVATED = 1, + __QDISC_STATE_MISSED = 2, + __QDISC_STATE_DRAINING = 3, }; -struct tegra_clk_pll_out { - struct clk_hw hw; - void *reg; - u8 enb_bit_idx; - u8 rst_bit_idx; - spinlock_t *lock; - u8 flags; +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 { - CMD_CLK_GET_RATE = 1, - CMD_CLK_SET_RATE = 2, - CMD_CLK_ROUND_RATE = 3, - CMD_CLK_GET_PARENT = 4, - CMD_CLK_SET_PARENT = 5, - CMD_CLK_IS_ENABLED = 6, - CMD_CLK_ENABLE = 7, - CMD_CLK_DISABLE = 8, - CMD_CLK_PROPERTIES = 9, - CMD_CLK_POSSIBLE_PARENTS = 10, - CMD_CLK_NUM_POSSIBLE_PARENTS = 11, - CMD_CLK_GET_POSSIBLE_PARENT = 12, - CMD_CLK_RESET_REFCOUNTS = 13, - CMD_CLK_GET_ALL_INFO = 14, - CMD_CLK_GET_MAX_CLK_ID = 15, - CMD_CLK_GET_FMAX_AT_VMIN = 16, - CMD_CLK_MAX = 17, + 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 tegra_bpmp_clk { - struct clk_hw hw; - struct tegra_bpmp *bpmp; - unsigned int id; - unsigned int num_parents; - unsigned int *parents; +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, }; -struct tegra_bpmp_soc; - -struct tegra_bpmp_channel; - -struct tegra_bpmp { - const struct tegra_bpmp_soc *soc; - struct device *dev; - void *priv; - struct { - struct mbox_client client; - struct mbox_chan *channel; - } mbox; - spinlock_t atomic_tx_lock; - struct tegra_bpmp_channel *tx_channel; - struct tegra_bpmp_channel *rx_channel; - struct tegra_bpmp_channel *threaded_channels; - struct { - unsigned long *allocated; - unsigned long *busy; - unsigned int count; - struct semaphore lock; - } threaded; - struct list_head mrqs; - spinlock_t lock; - struct tegra_bpmp_clk **clocks; - unsigned int num_clocks; - struct reset_controller_dev rstc; - struct genpd_onecell_data genpd; - struct dentry *debugfs_mirror; +enum { + TCA_STAB_UNSPEC = 0, + TCA_STAB_BASE = 1, + TCA_STAB_DATA = 2, + __TCA_STAB_MAX = 3, }; -struct tegra_bpmp_ops; - -struct tegra_bpmp_soc { - struct { - struct { - unsigned int offset; - unsigned int count; - unsigned int timeout; - } cpu_tx; - struct { - unsigned int offset; - unsigned int count; - unsigned int timeout; - } thread; - struct { - unsigned int offset; - unsigned int count; - unsigned int timeout; - } cpu_rx; - } channels; - const struct tegra_bpmp_ops *ops; - unsigned int num_resets; +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, }; -struct tegra_bpmp_ops { - int (*init)(struct tegra_bpmp *); - void (*deinit)(struct tegra_bpmp *); - bool (*is_response_ready)(struct tegra_bpmp_channel *); - bool (*is_request_ready)(struct tegra_bpmp_channel *); - int (*ack_response)(struct tegra_bpmp_channel *); - int (*ack_request)(struct tegra_bpmp_channel *); - bool (*is_response_channel_free)(struct tegra_bpmp_channel *); - bool (*is_request_channel_free)(struct tegra_bpmp_channel *); - int (*post_response)(struct tegra_bpmp_channel *); - int (*post_request)(struct tegra_bpmp_channel *); - int (*ring_doorbell)(struct tegra_bpmp *); - int (*resume)(struct tegra_bpmp *); +enum tc_root_command { + TC_ROOT_GRAFT = 0, }; -struct iosys_map { - union { - void *vaddr_iomem; - void *vaddr; - }; - bool is_iomem; +struct Qdisc_class_common { + u32 classid; + unsigned int filter_cnt; + struct hlist_node hnode; }; -struct tegra_ivc; - -struct tegra_bpmp_channel { - struct tegra_bpmp *bpmp; - struct iosys_map ib; - struct iosys_map ob; - struct completion completion; - struct tegra_ivc *ivc; - unsigned int index; +struct qdisc_watchdog { + struct hrtimer timer; + struct Qdisc *qdisc; }; -struct tegra_bpmp_clk_message { - unsigned int cmd; - unsigned int id; - struct { - const void *data; - size_t size; - } tx; - struct { - void *data; - size_t size; - int ret; - } rx; +struct check_loop_arg { + struct qdisc_walker w; + struct Qdisc *p; + int depth; }; -struct cmd_clk_get_rate_request {}; - -typedef s64 int64_t; - -struct cmd_clk_set_rate_request { - int32_t unused; - int64_t rate; -} __attribute__((packed)); - -struct cmd_clk_round_rate_request { - int32_t unused; - int64_t rate; -} __attribute__((packed)); - -struct cmd_clk_get_parent_request {}; - -struct cmd_clk_set_parent_request { - uint32_t parent_id; +struct tc_bind_class_args { + struct qdisc_walker w; + unsigned long new_cl; + u32 portid; + u32 clid; }; -struct cmd_clk_enable_request {}; - -struct cmd_clk_disable_request {}; - -struct cmd_clk_is_enabled_request {}; - -struct cmd_clk_properties_request {}; - -struct cmd_clk_possible_parents_request {}; - -struct cmd_clk_num_possible_parents_request {}; - -struct cmd_clk_get_possible_parent_request { - uint8_t parent_idx; +struct qdisc_dump_args { + struct qdisc_walker w; + struct sk_buff *skb; + struct netlink_callback *cb; }; -struct cmd_clk_get_all_info_request {}; - -struct cmd_clk_get_max_clk_id_request {}; - -struct cmd_clk_get_fmax_at_vmin_request {}; +typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, struct netlink_ext_ack *); -struct mrq_clk_request { - uint32_t cmd_and_id; - union { - struct cmd_clk_get_rate_request clk_get_rate; - struct cmd_clk_set_rate_request clk_set_rate; - struct cmd_clk_round_rate_request clk_round_rate; - struct cmd_clk_get_parent_request clk_get_parent; - struct cmd_clk_set_parent_request clk_set_parent; - struct cmd_clk_enable_request clk_enable; - struct cmd_clk_disable_request clk_disable; - struct cmd_clk_is_enabled_request clk_is_enabled; - struct cmd_clk_properties_request clk_properties; - struct cmd_clk_possible_parents_request clk_possible_parents; - struct cmd_clk_num_possible_parents_request clk_num_possible_parents; - struct cmd_clk_get_possible_parent_request clk_get_possible_parent; - struct cmd_clk_get_all_info_request clk_get_all_info; - struct cmd_clk_get_max_clk_id_request clk_get_max_clk_id; - struct cmd_clk_get_fmax_at_vmin_request clk_get_fmax_at_vmin; - }; -}; +typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *); -struct tegra_bpmp_message { - unsigned int mrq; - struct { - const void *data; - size_t size; - } tx; - struct { - void *data; - size_t size; - int ret; - } rx; +struct tc_root_qopt_offload { + enum tc_root_command command; + u32 handle; + bool ingress; }; -struct cmd_clk_get_max_clk_id_response { - uint32_t max_id; +struct Qdisc_class_hash { + struct hlist_head *hash; + unsigned int hashsize; + unsigned int hashmask; + unsigned int hashelems; }; -struct tegra_bpmp_clk_info { - unsigned int id; - char name[40]; - unsigned int parents[16]; - unsigned int num_parents; - unsigned long flags; +struct tc_query_caps_base { + enum tc_setup_type type; + void *caps; }; -struct cmd_clk_get_all_info_response { - uint32_t flags; - uint32_t parent; - uint32_t parents[16]; - uint8_t num_parents; - uint8_t name[40]; -} __attribute__((packed)); - -struct cmd_clk_get_rate_response { - int64_t rate; +struct tcf_bind_args { + struct tcf_walker w; + unsigned long base; + unsigned long cl; + u32 classid; }; -struct cmd_clk_get_parent_response { - uint32_t parent_id; +enum { + ETHTOOL_STATS_ETH_PHY = 0, + ETHTOOL_STATS_ETH_MAC = 1, + ETHTOOL_STATS_ETH_CTRL = 2, + ETHTOOL_STATS_RMON = 3, + __ETHTOOL_STATS_CNT = 4, }; -struct cmd_clk_is_enabled_response { - int32_t state; +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, }; -struct cmd_clk_round_rate_response { - int64_t rate; +enum { + ETHTOOL_A_STATS_GRP_UNSPEC = 0, + ETHTOOL_A_STATS_GRP_PAD = 1, + ETHTOOL_A_STATS_GRP_ID = 2, + ETHTOOL_A_STATS_GRP_SS_ID = 3, + ETHTOOL_A_STATS_GRP_STAT = 4, + ETHTOOL_A_STATS_GRP_HIST_RX = 5, + ETHTOOL_A_STATS_GRP_HIST_TX = 6, + ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, + ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, + ETHTOOL_A_STATS_GRP_HIST_VAL = 9, + __ETHTOOL_A_STATS_GRP_CNT = 10, + ETHTOOL_A_STATS_GRP_MAX = 9, }; -struct cmd_clk_set_parent_response { - uint32_t parent_id; +enum { + ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0, + __ETHTOOL_A_STATS_ETH_PHY_CNT = 1, + ETHTOOL_A_STATS_ETH_PHY_MAX = 0, }; -struct cmd_clk_set_rate_response { - int64_t rate; +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, }; -struct psil_ep; - -struct psil_ep_map { - char *name; - struct psil_ep *src; - int src_count; - struct psil_ep *dst; - int dst_count; +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 psil_endpoint_type { - PSIL_EP_NATIVE = 0, - PSIL_EP_PDMA_XY = 1, - PSIL_EP_PDMA_MCAN = 2, - PSIL_EP_PDMA_AASRC = 3, +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, }; -enum udma_tp_level { - UDMA_TP_NORMAL = 0, - UDMA_TP_HIGH = 1, - UDMA_TP_ULTRAHIGH = 2, - UDMA_TP_LAST = 3, +struct stats_req_info { + struct ethnl_req_info base; + unsigned long stat_mask[1]; + enum ethtool_mac_stats_src src; }; -struct psil_endpoint_config { - enum psil_endpoint_type ep_type; - enum udma_tp_level channel_tpl; - unsigned int pkt_mode: 1; - unsigned int notdpkt: 1; - unsigned int needs_epib: 1; - unsigned int pdma_acc32: 1; - unsigned int pdma_burst: 1; - u32 psd_size; - s16 mapped_channel_id; - u16 flow_start; - u16 flow_num; - s16 default_flow_id; +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 psil_ep { - u32 thread_id; - struct psil_endpoint_config ep_config; -}; +typedef const char (* const ethnl_string_array_t)[32]; -struct apple_pmgr_ps { - struct device *dev; - struct generic_pm_domain genpd; - struct reset_controller_dev rcdev; - struct regmap *regmap; - u32 offset; - u32 min_state; +struct tcp_skb_cb { + __u32 seq; + __u32 end_seq; + union { + __u32 tcp_tw_isn; + struct { + u16 tcp_gso_segs; + u16 tcp_gso_size; + }; + }; + __u8 tcp_flags; + __u8 sacked; + __u8 ip_dsfield; + __u8 txstamp_ack: 1; + __u8 eor: 1; + __u8 has_rxtstamp: 1; + __u8 unused: 5; + __u32 ack_seq; + union { + struct { + __u32 is_app_limited: 1; + __u32 delivered_ce: 20; + __u32 unused: 11; + __u32 delivered; + u64 first_tx_mstamp; + u64 delivered_mstamp; + } tx; + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + }; }; -struct renesas_family; +struct pipe_buffer; -struct renesas_soc { - const struct renesas_family *family; - u32 id; +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 renesas_family { - const char name[16]; - u32 reg; -}; +struct pipe_buf_operations; -struct renesas_id { +struct pipe_buffer { + struct page *page; unsigned int offset; - u32 mask; + unsigned int len; + const struct pipe_buf_operations *ops; + unsigned int flags; + unsigned long private; }; -struct zynqmp_pm_work_struct { - struct work_struct callback_work; - u32 args[4]; +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 *); }; -enum pm_suspend_mode { - PM_SUSPEND_MODE_FIRST = 0, - PM_SUSPEND_MODE_STD = 0, - PM_SUSPEND_MODE_POWER_OFF = 1, +struct net_proto_family { + int family; + int (*create)(struct net *, struct socket *, int, int); + struct module *owner; }; -enum pm_api_cb_id { - PM_INIT_SUSPEND_CB = 30, - PM_ACKNOWLEDGE_CB = 31, - PM_NOTIFY_CB = 32, +enum { + SOCK_WAKE_IO = 0, + SOCK_WAKE_WAITD = 1, + SOCK_WAKE_SPACE = 2, + SOCK_WAKE_URG = 3, }; -enum zynqmp_pm_suspend_reason { - SUSPEND_POWER_REQUEST = 201, - SUSPEND_ALERT = 202, - SUSPEND_SYSTEM_SHUTDOWN = 203, +enum sock_shutdown_cmd { + SHUT_RD = 0, + SHUT_WR = 1, + SHUT_RDWR = 2, }; -struct zynqmp_ipi_message { - size_t len; - u8 data[0]; +struct scm_stat { + atomic_t nr_fds; }; -typedef void (*event_cb_func_t)(const u32 *, void *); +struct unix_address; -struct tree_descr { - const char *name; - const struct file_operations *ops; - int mode; +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; + struct socket_wq peer_wq; + wait_queue_entry_t peer_wake; + struct scm_stat scm_stat; + struct sk_buff *oob_skb; + long: 64; }; -struct mt6397_regulator_info { - struct regulator_desc desc; - u32 qi; - u32 vselon_reg; - u32 vselctrl_reg; - u32 vselctrl_mask; - u32 modeset_reg; - u32 modeset_mask; +struct unix_address { + refcount_t refcnt; + int len; + struct sockaddr_un name[0]; }; -enum { - MT6397_ID_VPCA15 = 0, - MT6397_ID_VPCA7 = 1, - MT6397_ID_VSRAMCA15 = 2, - MT6397_ID_VSRAMCA7 = 3, - MT6397_ID_VCORE = 4, - MT6397_ID_VGPU = 5, - MT6397_ID_VDRM = 6, - MT6397_ID_VIO18 = 7, - MT6397_ID_VTCXO = 8, - MT6397_ID_VA28 = 9, - MT6397_ID_VCAMA = 10, - MT6397_ID_VIO28 = 11, - MT6397_ID_VUSB = 12, - MT6397_ID_VMC = 13, - MT6397_ID_VMCH = 14, - MT6397_ID_VEMC3V3 = 15, - MT6397_ID_VGP1 = 16, - MT6397_ID_VGP2 = 17, - MT6397_ID_VGP3 = 18, - MT6397_ID_VGP4 = 19, - MT6397_ID_VGP5 = 20, - MT6397_ID_VGP6 = 21, - MT6397_ID_VIBR = 22, - MT6397_ID_RG_MAX = 23, -}; +struct scm_fp_list; -enum regulator_status { - REGULATOR_STATUS_OFF = 0, - REGULATOR_STATUS_ON = 1, - REGULATOR_STATUS_ERROR = 2, - REGULATOR_STATUS_FAST = 3, - REGULATOR_STATUS_NORMAL = 4, - REGULATOR_STATUS_IDLE = 5, - REGULATOR_STATUS_STANDBY = 6, - REGULATOR_STATUS_BYPASS = 7, - REGULATOR_STATUS_UNDEFINED = 8, +struct unix_skb_parms { + struct pid *pid; + kuid_t uid; + kgid_t gid; + struct scm_fp_list *fp; + u32 consumed; }; -struct uniphier_reset_data { - unsigned int id; - unsigned int reg; - unsigned int bit; - unsigned int flags; +struct scm_fp_list { + short count; + short max; + struct user_struct *user; + struct file *fp[253]; }; -struct uniphier_reset_priv { - struct reset_controller_dev rcdev; - struct device *dev; - struct regmap *regmap; - const struct uniphier_reset_data *data; +struct socket_alloc { + struct socket socket; + struct inode vfs_inode; + long: 64; + long: 64; + long: 64; }; -struct iova { - struct rb_node node; - unsigned long pfn_hi; - unsigned long pfn_lo; +struct scm_cookie { + struct pid *pid; + struct scm_fp_list *fp; + struct scm_creds creds; }; -struct iova_magazine; - -struct iova_cpu_rcache { - spinlock_t lock; - struct iova_magazine *loaded; - struct iova_magazine *prev; +struct ucred { + __u32 pid; + __u32 uid; + __u32 gid; }; -struct iova_magazine { - unsigned long size; - unsigned long pfns[127]; +struct bpf_iter__unix { + union { + struct bpf_iter_meta *meta; + }; + union { + struct unix_sock *unix_sk; + }; + uid_t uid; }; -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; +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 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 unix_stream_read_state { + int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *); + struct socket *socket; + struct msghdr *msg; + struct pipe_inode_info *pipe; + size_t size; + int flags; + unsigned int splice_flags; }; -struct rk_iommu_ops { - phys_addr_t (*pt_address)(u32); - u32 (*mk_dtentries)(dma_addr_t); - u32 (*mk_ptentries)(phys_addr_t, int); - phys_addr_t (*dte_addr_phys)(u32); - u32 (*dma_addr_dte)(dma_addr_t); - u64 dma_bit_mask; +enum rpc_msg_type { + RPC_CALL = 0, + RPC_REPLY = 1, }; -struct rk_iommu_domain { - struct list_head iommus; - u32 *dt; - dma_addr_t dt_dma; - spinlock_t iommus_lock; - spinlock_t dt_lock; - struct iommu_domain domain; +enum { + TLS_RECORD_TYPE_CHANGE_CIPHER_SPEC = 20, + TLS_RECORD_TYPE_ALERT = 21, + TLS_RECORD_TYPE_HANDSHAKE = 22, + TLS_RECORD_TYPE_DATA = 23, + TLS_RECORD_TYPE_HEARTBEAT = 24, + TLS_RECORD_TYPE_TLS12_CID = 25, + TLS_RECORD_TYPE_ACK = 26, }; -struct rk_iommu { - struct device *dev; - void **bases; - int num_mmu; - int num_irq; - struct clk_bulk_data *clocks; - int num_clocks; - bool reset_disabled; - struct iommu_device iommu; - struct list_head node; - struct iommu_domain *domain; - struct iommu_group *group; +enum { + TLS_ALERT_LEVEL_WARNING = 1, + TLS_ALERT_LEVEL_FATAL = 2, }; -struct rk_iommudata { - struct device_link *link; - struct rk_iommu *iommu; +enum { + XPT_BUSY = 0, + XPT_CONN = 1, + XPT_CLOSE = 2, + XPT_DATA = 3, + XPT_TEMP = 4, + XPT_DEAD = 5, + XPT_CHNGBUF = 6, + XPT_DEFERRED = 7, + XPT_OLD = 8, + XPT_LISTENER = 9, + XPT_CACHE_AUTH = 10, + XPT_LOCAL = 11, + XPT_KILL_TEMP = 12, + XPT_CONG_CTRL = 13, + XPT_HANDSHAKE = 14, + XPT_TLS_SESSION = 15, + XPT_PEER_AUTH = 16, }; -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 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 completion handshake_done; + struct __kernel_sockaddr_storage srcaddr; + unsigned short srcport; + int xprt_err; + struct rpc_clnt *clnt; + 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 driver_private { - struct kobject kobj; - struct klist klist_devices; - struct klist_node knode_bus; - struct module_kobject *mkobj; - struct device_driver *driver; +struct page_frag_cache { + void *va; + __u16 offset; + __u16 size; + unsigned int pagecnt_bias; + bool pfmemalloc; }; -struct firmware_cache { - spinlock_t lock; - struct list_head head; - int state; - spinlock_t name_lock; - struct list_head fw_names; - struct delayed_work work; - struct notifier_block pm_notify; +struct 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; + struct page_frag_cache sk_frag_cache; + struct completion sk_handshake_done; + struct page *sk_pages[259]; }; -enum fw_status { - FW_STATUS_UNKNOWN = 0, - FW_STATUS_LOADING = 1, - FW_STATUS_DONE = 2, - FW_STATUS_ABORTED = 3, +struct rpc_buffer { + size_t len; + char data[0]; }; -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, -}; +typedef __be32 rpc_fraghdr; -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, -}; +typedef void (*tls_done_func_t)(void *, int, key_serial_t); -struct fw_state { - struct completion completion; - enum fw_status status; +struct tls_handshake_args { + struct socket *ta_sock; + tls_done_func_t ta_done; + void *ta_data; + const char *ta_peername; + unsigned int ta_timeout_ms; + key_serial_t ta_keyring; + key_serial_t ta_my_cert; + key_serial_t ta_my_privkey; + unsigned int ta_num_peerids; + key_serial_t ta_my_peerids[5]; }; -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; - bool is_paged_buf; - struct page **pages; - int nr_pages; - int page_array_size; - bool need_uevent; - struct list_head pending_list; - const char *fw_name; +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 xprtsec_parms xprtsec; + unsigned long connect_timeout; + unsigned long reconnect_timeout; }; -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 _strp_msg { + struct strp_msg strp; + int accum_len; }; -struct fw_cache_entry { - struct list_head list; - const char *name; +struct efi_smbios_record { + u8 type; + u8 length; + u16 handle; }; -struct fw_name_devm { - unsigned long magic; - const char *name; +struct efi_smbios_type4_record { + struct efi_smbios_record header; + u8 socket; + u8 processor_type; + u8 processor_family; + u8 processor_manufacturer; + u8 processor_id[8]; + u8 processor_version; + u8 voltage; + u16 external_clock; + u16 max_speed; + u16 current_speed; + u8 status; + u8 processor_upgrade; + u16 l1_cache_handle; + u16 l2_cache_handle; + u16 l3_cache_handle; + u8 serial_number; + u8 asset_tag; + u8 part_number; + u8 core_count; + u8 enabled_core_count; + u8 thread_count; + u16 processor_characteristics; + u16 processor_family2; + u16 core_count2; + u16 enabled_core_count2; + u16 thread_count2; + u16 thread_enabled; }; -enum s2mpa01_reg { - S2MPA01_REG_ID = 0, - S2MPA01_REG_INT1 = 1, - S2MPA01_REG_INT2 = 2, - S2MPA01_REG_INT3 = 3, - S2MPA01_REG_INT1M = 4, - S2MPA01_REG_INT2M = 5, - S2MPA01_REG_INT3M = 6, - S2MPA01_REG_ST1 = 7, - S2MPA01_REG_ST2 = 8, - S2MPA01_REG_PWRONSRC = 9, - S2MPA01_REG_OFFSRC = 10, - S2MPA01_REG_RTC_BUF = 11, - S2MPA01_REG_CTRL1 = 12, - S2MPA01_REG_ETC_TEST = 13, - S2MPA01_REG_RSVD1 = 14, - S2MPA01_REG_BU_CHG = 15, - S2MPA01_REG_RAMP1 = 16, - S2MPA01_REG_RAMP2 = 17, - S2MPA01_REG_LDO_DSCH1 = 18, - S2MPA01_REG_LDO_DSCH2 = 19, - S2MPA01_REG_LDO_DSCH3 = 20, - S2MPA01_REG_LDO_DSCH4 = 21, - S2MPA01_REG_OTP_ADRL = 22, - S2MPA01_REG_OTP_ADRH = 23, - S2MPA01_REG_OTP_DATA = 24, - S2MPA01_REG_MON1SEL = 25, - S2MPA01_REG_MON2SEL = 26, - S2MPA01_REG_LEE = 27, - S2MPA01_REG_RSVD2 = 28, - S2MPA01_REG_RSVD3 = 29, - S2MPA01_REG_RSVD4 = 30, - S2MPA01_REG_RSVD5 = 31, - S2MPA01_REG_RSVD6 = 32, - S2MPA01_REG_TOP_RSVD = 33, - S2MPA01_REG_DVS_SEL = 34, - S2MPA01_REG_DVS_PTR = 35, - S2MPA01_REG_DVS_DATA = 36, - S2MPA01_REG_RSVD_NO = 37, - S2MPA01_REG_UVLO = 38, - S2MPA01_REG_LEE_NO = 39, - S2MPA01_REG_B1CTRL1 = 40, - S2MPA01_REG_B1CTRL2 = 41, - S2MPA01_REG_B2CTRL1 = 42, - S2MPA01_REG_B2CTRL2 = 43, - S2MPA01_REG_B3CTRL1 = 44, - S2MPA01_REG_B3CTRL2 = 45, - S2MPA01_REG_B4CTRL1 = 46, - S2MPA01_REG_B4CTRL2 = 47, - S2MPA01_REG_B5CTRL1 = 48, - S2MPA01_REG_B5CTRL2 = 49, - S2MPA01_REG_B5CTRL3 = 50, - S2MPA01_REG_B5CTRL4 = 51, - S2MPA01_REG_B5CTRL5 = 52, - S2MPA01_REG_B5CTRL6 = 53, - S2MPA01_REG_B6CTRL1 = 54, - S2MPA01_REG_B6CTRL2 = 55, - S2MPA01_REG_B7CTRL1 = 56, - S2MPA01_REG_B7CTRL2 = 57, - S2MPA01_REG_B8CTRL1 = 58, - S2MPA01_REG_B8CTRL2 = 59, - S2MPA01_REG_B9CTRL1 = 60, - S2MPA01_REG_B9CTRL2 = 61, - S2MPA01_REG_B10CTRL1 = 62, - S2MPA01_REG_B10CTRL2 = 63, - S2MPA01_REG_L1CTRL = 64, - S2MPA01_REG_L2CTRL = 65, - S2MPA01_REG_L3CTRL = 66, - S2MPA01_REG_L4CTRL = 67, - S2MPA01_REG_L5CTRL = 68, - S2MPA01_REG_L6CTRL = 69, - S2MPA01_REG_L7CTRL = 70, - S2MPA01_REG_L8CTRL = 71, - S2MPA01_REG_L9CTRL = 72, - S2MPA01_REG_L10CTRL = 73, - S2MPA01_REG_L11CTRL = 74, - S2MPA01_REG_L12CTRL = 75, - S2MPA01_REG_L13CTRL = 76, - S2MPA01_REG_L14CTRL = 77, - S2MPA01_REG_L15CTRL = 78, - S2MPA01_REG_L16CTRL = 79, - S2MPA01_REG_L17CTRL = 80, - S2MPA01_REG_L18CTRL = 81, - S2MPA01_REG_L19CTRL = 82, - S2MPA01_REG_L20CTRL = 83, - S2MPA01_REG_L21CTRL = 84, - S2MPA01_REG_L22CTRL = 85, - S2MPA01_REG_L23CTRL = 86, - S2MPA01_REG_L24CTRL = 87, - S2MPA01_REG_L25CTRL = 88, - S2MPA01_REG_L26CTRL = 89, - S2MPA01_REG_LDO_OVCB1 = 90, - S2MPA01_REG_LDO_OVCB2 = 91, - S2MPA01_REG_LDO_OVCB3 = 92, - S2MPA01_REG_LDO_OVCB4 = 93, +enum efi_cmdline_option { + EFI_CMDLINE_NONE = 0, + EFI_CMDLINE_MODE_NUM = 1, + EFI_CMDLINE_RES = 2, + EFI_CMDLINE_AUTO = 3, + EFI_CMDLINE_LIST = 4, }; -enum S2MPU02_reg { - S2MPU02_REG_ID = 0, - S2MPU02_REG_INT1 = 1, - S2MPU02_REG_INT2 = 2, - S2MPU02_REG_INT3 = 3, - S2MPU02_REG_INT1M = 4, - S2MPU02_REG_INT2M = 5, - S2MPU02_REG_INT3M = 6, - S2MPU02_REG_ST1 = 7, - S2MPU02_REG_ST2 = 8, - S2MPU02_REG_PWRONSRC = 9, - S2MPU02_REG_OFFSRC = 10, - S2MPU02_REG_BU_CHG = 11, - S2MPU02_REG_RTCCTRL = 12, - S2MPU02_REG_PMCTRL1 = 13, - S2MPU02_REG_RSVD1 = 14, - S2MPU02_REG_RSVD2 = 15, - S2MPU02_REG_RSVD3 = 16, - S2MPU02_REG_RSVD4 = 17, - S2MPU02_REG_RSVD5 = 18, - S2MPU02_REG_RSVD6 = 19, - S2MPU02_REG_RSVD7 = 20, - S2MPU02_REG_WRSTEN = 21, - S2MPU02_REG_RSVD8 = 22, - S2MPU02_REG_RSVD9 = 23, - S2MPU02_REG_RSVD10 = 24, - S2MPU02_REG_B1CTRL1 = 25, - S2MPU02_REG_B1CTRL2 = 26, - S2MPU02_REG_B2CTRL1 = 27, - S2MPU02_REG_B2CTRL2 = 28, - S2MPU02_REG_B3CTRL1 = 29, - S2MPU02_REG_B3CTRL2 = 30, - S2MPU02_REG_B4CTRL1 = 31, - S2MPU02_REG_B4CTRL2 = 32, - S2MPU02_REG_B5CTRL1 = 33, - S2MPU02_REG_B5CTRL2 = 34, - S2MPU02_REG_B5CTRL3 = 35, - S2MPU02_REG_B5CTRL4 = 36, - S2MPU02_REG_B5CTRL5 = 37, - S2MPU02_REG_B6CTRL1 = 38, - S2MPU02_REG_B6CTRL2 = 39, - S2MPU02_REG_B7CTRL1 = 40, - S2MPU02_REG_B7CTRL2 = 41, - S2MPU02_REG_RAMP1 = 42, - S2MPU02_REG_RAMP2 = 43, - S2MPU02_REG_L1CTRL = 44, - S2MPU02_REG_L2CTRL1 = 45, - S2MPU02_REG_L2CTRL2 = 46, - S2MPU02_REG_L2CTRL3 = 47, - S2MPU02_REG_L2CTRL4 = 48, - S2MPU02_REG_L3CTRL = 49, - S2MPU02_REG_L4CTRL = 50, - S2MPU02_REG_L5CTRL = 51, - S2MPU02_REG_L6CTRL = 52, - S2MPU02_REG_L7CTRL = 53, - S2MPU02_REG_L8CTRL = 54, - S2MPU02_REG_L9CTRL = 55, - S2MPU02_REG_L10CTRL = 56, - S2MPU02_REG_L11CTRL = 57, - S2MPU02_REG_L12CTRL = 58, - S2MPU02_REG_L13CTRL = 59, - S2MPU02_REG_L14CTRL = 60, - S2MPU02_REG_L15CTRL = 61, - S2MPU02_REG_L16CTRL = 62, - S2MPU02_REG_L17CTRL = 63, - S2MPU02_REG_L18CTRL = 64, - S2MPU02_REG_L19CTRL = 65, - S2MPU02_REG_L20CTRL = 66, - S2MPU02_REG_L21CTRL = 67, - S2MPU02_REG_L22CTRL = 68, - S2MPU02_REG_L23CTRL = 69, - S2MPU02_REG_L24CTRL = 70, - S2MPU02_REG_L25CTRL = 71, - S2MPU02_REG_L26CTRL = 72, - S2MPU02_REG_L27CTRL = 73, - S2MPU02_REG_L28CTRL = 74, - S2MPU02_REG_LDODSCH1 = 75, - S2MPU02_REG_LDODSCH2 = 76, - S2MPU02_REG_LDODSCH3 = 77, - S2MPU02_REG_LDODSCH4 = 78, - S2MPU02_REG_SELMIF = 79, - S2MPU02_REG_RSVD11 = 80, - S2MPU02_REG_RSVD12 = 81, - S2MPU02_REG_RSVD13 = 82, - S2MPU02_REG_DVSSEL = 83, - S2MPU02_REG_DVSPTR = 84, - S2MPU02_REG_DVSDATA = 85, +typedef struct { + u32 red_mask; + u32 green_mask; + u32 blue_mask; + u32 reserved_mask; +} efi_pixel_bitmask_t; + +typedef struct { + u32 version; + u32 horizontal_resolution; + u32 vertical_resolution; + int pixel_format; + efi_pixel_bitmask_t pixel_information; + u32 pixels_per_scan_line; +} efi_graphics_output_mode_info_t; + +union efi_graphics_output_protocol; + +typedef union efi_graphics_output_protocol efi_graphics_output_protocol_t; + +union efi_graphics_output_protocol_mode; + +typedef union efi_graphics_output_protocol_mode efi_graphics_output_protocol_mode_t; + +union efi_graphics_output_protocol { + struct { + efi_status_t (*query_mode)(efi_graphics_output_protocol_t *, u32, unsigned long *, efi_graphics_output_mode_info_t **); + efi_status_t (*set_mode)(efi_graphics_output_protocol_t *, u32); + void *blt; + efi_graphics_output_protocol_mode_t *mode; + }; + struct { + u32 query_mode; + u32 set_mode; + u32 blt; + u32 mode; + } mixed_mode; }; -enum dev_status { - HISI_SAS_DEV_INIT = 0, - HISI_SAS_DEV_NORMAL = 1, - HISI_SAS_DEV_NCQ_ERR = 2, +union efi_graphics_output_protocol_mode { + struct { + u32 max_mode; + u32 mode; + efi_graphics_output_mode_info_t *info; + unsigned long size_of_info; + efi_physical_addr_t frame_buffer_base; + unsigned long frame_buffer_size; + }; + struct { + u32 max_mode; + u32 mode; + u32 info; + u32 size_of_info; + u64 frame_buffer_base; + u32 frame_buffer_size; + } mixed_mode; }; -enum hisi_sas_phy_event { - HISI_PHYE_PHY_UP = 0, - HISI_PHYE_LINK_RESET = 1, - HISI_PHYE_PHY_UP_PM = 2, - HISI_PHYES_NUM = 3, +struct break_hook { + struct list_head node; + int (*fn)(struct pt_regs *, unsigned long); + u16 imm; + u16 mask; }; -enum { - PORT_TYPE_SAS = 2, - PORT_TYPE_SATA = 1, +struct step_hook { + struct list_head node; + int (*fn)(struct pt_regs *, unsigned long); }; -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 probe_insn { + INSN_REJECTED = 0, + INSN_GOOD_NO_SLOT = 1, + INSN_GOOD = 2, }; -enum ata_link_iter_mode { - ATA_LITER_EDGE = 0, - ATA_LITER_HOST_FIRST = 1, - ATA_LITER_PMP_FIRST = 2, +enum rp_check { + RP_CHECK_CALL = 0, + RP_CHECK_CHAIN_CALL = 1, + RP_CHECK_RET = 2, }; -struct ata_task_resp { - u16 frame_len; - u8 ending_fis[24]; +typedef u32 probe_opcode_t; + +typedef bool pstate_check_t(unsigned long); + +typedef void probes_handler_t(u32, long, struct pt_regs *); + +struct arch_probe_insn { + probe_opcode_t *insn; + pstate_check_t *pstate_cc; + probes_handler_t *handler; + unsigned long restore; }; -struct hisi_sas_port { - struct asd_sas_port sas_port; - u8 port_attached; - u8 id; +struct arch_uprobe { + union { + u8 insn[4]; + u8 ixol[4]; + }; + struct arch_probe_insn api; + bool simulate; }; -struct hisi_hba; +enum { + kvm_ioeventfd_flag_nr_datamatch = 0, + kvm_ioeventfd_flag_nr_pio = 1, + kvm_ioeventfd_flag_nr_deassign = 2, + kvm_ioeventfd_flag_nr_virtio_ccw_notify = 3, + kvm_ioeventfd_flag_nr_fast_mmio = 4, + kvm_ioeventfd_flag_nr_max = 5, +}; -struct hisi_sas_cq { - struct hisi_hba *hisi_hba; - const struct cpumask *irq_mask; - int rd_point; - int id; - int irq_no; - spinlock_t poll_lock; +struct kvm_irq_ack_notifier { + struct hlist_node link; + unsigned int gsi; + void (*irq_acked)(struct kvm_irq_ack_notifier *); }; -struct hisi_sas_dq { - struct hisi_hba *hisi_hba; +struct irq_bypass_producer; + +struct irq_bypass_consumer { + struct list_head node; + void *token; + int (*add_producer)(struct irq_bypass_consumer *, struct irq_bypass_producer *); + void (*del_producer)(struct irq_bypass_consumer *, struct irq_bypass_producer *); + void (*stop)(struct irq_bypass_consumer *); + void (*start)(struct irq_bypass_consumer *); +}; + +struct kvm_kernel_irqfd_resampler; + +struct kvm_kernel_irqfd { + struct kvm *kvm; + wait_queue_entry_t wait; + struct kvm_kernel_irq_routing_entry irq_entry; + seqcount_spinlock_t irq_entry_sc; + int gsi; + struct work_struct inject; + struct kvm_kernel_irqfd_resampler *resampler; + struct eventfd_ctx *resamplefd; + struct list_head resampler_link; + struct eventfd_ctx *eventfd; struct list_head list; - spinlock_t lock; - int wr_point; - int id; + poll_table pt; + struct work_struct shutdown; + struct irq_bypass_consumer consumer; + struct irq_bypass_producer *producer; }; -struct hisi_sas_debugfs_fifo { - u32 signal_sel; - u32 dump_msk; - u32 dump_mode; - u32 trigger; - u32 trigger_msk; - u32 trigger_mode; - u32 rd_data[32]; +struct kvm_kernel_irqfd_resampler { + struct kvm *kvm; + struct list_head list; + struct kvm_irq_ack_notifier notifier; + struct list_head link; }; -struct hisi_sas_phy { - struct work_struct works[3]; - struct hisi_hba *hisi_hba; - struct hisi_sas_port *port; - struct asd_sas_phy sas_phy; - struct sas_identify identify; - struct completion *reset_completion; - struct timer_list timer; - spinlock_t lock; - u64 port_id; - u64 frame_rcvd_size; - u8 frame_rcvd[32]; - u8 phy_attached; - u8 in_reset; - u8 reserved[2]; - u32 phy_type; - u32 code_violation_err_count; - enum sas_linkrate minimum_linkrate; - enum sas_linkrate maximum_linkrate; - int enable; - int wait_phyup_cnt; - atomic_t down_cnt; - struct hisi_sas_debugfs_fifo fifo; +struct irq_bypass_producer { + struct list_head node; + void *token; + int irq; + int (*add_consumer)(struct irq_bypass_producer *, struct irq_bypass_consumer *); + void (*del_consumer)(struct irq_bypass_producer *, struct irq_bypass_consumer *); + void (*stop)(struct irq_bypass_producer *); + void (*start)(struct irq_bypass_producer *); }; -struct hisi_sas_device { - struct hisi_hba *hisi_hba; - struct domain_device *sas_device; - struct completion *completion; - struct hisi_sas_dq *dq; +struct _ioeventfd { struct list_head list; - enum sas_device_type dev_type; - enum dev_status dev_status; - int device_id; - int sata_idx; - spinlock_t lock; + u64 addr; + int length; + struct eventfd_ctx *eventfd; + u64 datamatch; + struct kvm_io_device dev; + u8 bus_idx; + bool wildcard; }; -struct hisi_sas_debugfs_regs { - struct hisi_hba *hisi_hba; - u32 *data; +struct kvm_irqfd { + __u32 fd; + __u32 gsi; + __u32 flags; + __u32 resamplefd; + __u8 pad[16]; }; -struct hisi_sas_debugfs_port { - struct hisi_sas_phy *phy; - u32 *data; +struct kvm_ioeventfd { + __u64 datamatch; + __u64 addr; + __u32 len; + __s32 fd; + __u32 flags; + __u8 pad[36]; }; -struct hisi_sas_debugfs_cq { - struct hisi_sas_cq *cq; - void *complete_hdr; +enum __kvm_host_smccc_func { + __KVM_HOST_SMCCC_FUNC___kvm_get_mdcr_el2 = 1, + __KVM_HOST_SMCCC_FUNC___pkvm_init = 2, + __KVM_HOST_SMCCC_FUNC___pkvm_create_private_mapping = 3, + __KVM_HOST_SMCCC_FUNC___pkvm_cpu_set_vector = 4, + __KVM_HOST_SMCCC_FUNC___kvm_enable_ssbs = 5, + __KVM_HOST_SMCCC_FUNC___vgic_v3_init_lrs = 6, + __KVM_HOST_SMCCC_FUNC___vgic_v3_get_gic_config = 7, + __KVM_HOST_SMCCC_FUNC___pkvm_prot_finalize = 8, + __KVM_HOST_SMCCC_FUNC___pkvm_host_share_hyp = 9, + __KVM_HOST_SMCCC_FUNC___pkvm_host_unshare_hyp = 10, + __KVM_HOST_SMCCC_FUNC___kvm_adjust_pc = 11, + __KVM_HOST_SMCCC_FUNC___kvm_vcpu_run = 12, + __KVM_HOST_SMCCC_FUNC___kvm_flush_vm_context = 13, + __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid_ipa = 14, + __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid_ipa_nsh = 15, + __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid = 16, + __KVM_HOST_SMCCC_FUNC___kvm_tlb_flush_vmid_range = 17, + __KVM_HOST_SMCCC_FUNC___kvm_flush_cpu_context = 18, + __KVM_HOST_SMCCC_FUNC___kvm_timer_set_cntvoff = 19, + __KVM_HOST_SMCCC_FUNC___vgic_v3_read_vmcr = 20, + __KVM_HOST_SMCCC_FUNC___vgic_v3_write_vmcr = 21, + __KVM_HOST_SMCCC_FUNC___vgic_v3_save_aprs = 22, + __KVM_HOST_SMCCC_FUNC___vgic_v3_restore_aprs = 23, + __KVM_HOST_SMCCC_FUNC___pkvm_vcpu_init_traps = 24, + __KVM_HOST_SMCCC_FUNC___pkvm_init_vm = 25, + __KVM_HOST_SMCCC_FUNC___pkvm_init_vcpu = 26, + __KVM_HOST_SMCCC_FUNC___pkvm_teardown_vm = 27, }; -struct hisi_sas_cmd_hdr; +struct sys_reg_params; -struct hisi_sas_debugfs_dq { - struct hisi_sas_dq *dq; - struct hisi_sas_cmd_hdr *hdr; +struct sys_reg_desc { + const char *name; + enum { + AA32_DIRECT = 0, + AA32_LO = 1, + AA32_HI = 2, + } aarch32_map; + u8 Op0; + u8 Op1; + u8 CRn; + u8 CRm; + u8 Op2; + bool (*access)(struct kvm_vcpu *, struct sys_reg_params *, const struct sys_reg_desc *); + u64 (*reset)(struct kvm_vcpu *, const struct sys_reg_desc *); + int reg; + u64 val; + int (*__get_user)(struct kvm_vcpu *, const struct sys_reg_desc *, u64 *); + int (*set_user)(struct kvm_vcpu *, const struct sys_reg_desc *, u64); + unsigned int (*visibility)(const struct kvm_vcpu *, const struct sys_reg_desc *); }; -struct hisi_sas_iost; +struct sys_reg_params { + u8 Op0; + u8 Op1; + u8 CRn; + u8 CRm; + u8 Op2; + u64 regval; + bool is_write; +}; -struct hisi_sas_debugfs_iost { - struct hisi_sas_iost *iost; +struct kvm_nvhe_stacktrace_info { + unsigned long stack_base; + unsigned long overflow_stack_base; + unsigned long fp; + unsigned long pc; }; -struct hisi_sas_itct; +struct kvm_ffa_descriptor_buffer { + void *buf; + size_t len; +}; -struct hisi_sas_debugfs_itct { - struct hisi_sas_itct *itct; +struct kvm_ffa_buffers { + hyp_spinlock_t lock; + void *tx; + void *rx; }; -struct hisi_sas_iost_itct_cache; +struct ffa_mem_region_attributes { + u16 receiver; + u8 attrs; + u8 flag; + u32 composite_off; + u64 reserved; +}; -struct hisi_sas_debugfs_iost_cache { - struct hisi_sas_iost_itct_cache *cache; +struct ffa_mem_region_addr_range { + u64 address; + u32 pg_cnt; + u32 reserved; }; -struct hisi_sas_debugfs_itct_cache { - struct hisi_sas_iost_itct_cache *cache; +struct ffa_composite_mem_region { + u32 total_pg_cnt; + u32 addr_range_cnt; + u64 reserved; + struct ffa_mem_region_addr_range constituents[0]; }; -struct hisi_sas_initial_fis; +struct ffa_mem_region { + u16 sender_id; + u16 attributes; + u32 flags; + u64 handle; + u64 tag; + u32 ep_mem_size; + u32 ep_count; + u32 ep_mem_offset; + u32 reserved[3]; +}; -struct hisi_sas_breakpoint; +struct __user_cap_header_struct; -struct hisi_sas_slot; +typedef struct __user_cap_header_struct *cap_user_header_t; -struct hisi_sas_hw; +struct __user_cap_header_struct { + __u32 version; + int pid; +}; -struct hisi_hba { - struct sas_ha_struct *p; - struct platform_device *platform_dev; - struct pci_dev *pci_dev; - struct device *dev; - int prot_mask; - void *regs; - void *sgpio_regs; - struct regmap *ctrl; - u32 ctrl_reset_reg; - u32 ctrl_reset_sts_reg; - u32 ctrl_clock_ena_reg; - u32 refclk_frequency_mhz; - u8 sas_addr[8]; - int *irq_map; - int n_phy; - spinlock_t lock; - struct semaphore sem; - struct timer_list timer; - struct workqueue_struct *wq; - int slot_index_count; - int last_slot_index; - int last_dev_id; - unsigned long *slot_index_tags; - unsigned long reject_stp_links_msk; - struct sas_ha_struct sha; - struct Scsi_Host *shost; - struct hisi_sas_cq cq[32]; - struct hisi_sas_dq dq[32]; - struct hisi_sas_phy phy[9]; - struct hisi_sas_port port[9]; - int queue_count; - struct hisi_sas_device devices[1024]; - struct hisi_sas_cmd_hdr *cmd_hdr[32]; - dma_addr_t cmd_hdr_dma[32]; - void *complete_hdr[32]; - dma_addr_t complete_hdr_dma[32]; - struct hisi_sas_initial_fis *initial_fis; - dma_addr_t initial_fis_dma; - struct hisi_sas_itct *itct; - dma_addr_t itct_dma; - struct hisi_sas_iost *iost; - dma_addr_t iost_dma; - struct hisi_sas_breakpoint *breakpoint; - dma_addr_t breakpoint_dma; - struct hisi_sas_breakpoint *sata_breakpoint; - dma_addr_t sata_breakpoint_dma; - struct hisi_sas_slot *slot_info; - unsigned long flags; - const struct hisi_sas_hw *hw; - unsigned long sata_dev_bitmap[16]; - struct work_struct rst_work; - struct work_struct debugfs_work; - u32 phy_state; - u32 intr_coal_ticks; - u32 intr_coal_count; - int cq_nvecs; - enum sas_linkrate debugfs_bist_linkrate; - int debugfs_bist_code_mode; - int debugfs_bist_phy_no; - int debugfs_bist_mode; - u32 debugfs_bist_cnt; - int debugfs_bist_enable; - u32 debugfs_bist_ffe[72]; - u32 debugfs_bist_fixed_code[2]; - struct hisi_sas_debugfs_regs debugfs_regs[150]; - struct hisi_sas_debugfs_port debugfs_port_reg[450]; - struct hisi_sas_debugfs_cq debugfs_cq[1600]; - struct hisi_sas_debugfs_dq debugfs_dq[1600]; - struct hisi_sas_debugfs_iost debugfs_iost[50]; - struct hisi_sas_debugfs_itct debugfs_itct[50]; - struct hisi_sas_debugfs_iost_cache debugfs_iost_cache[50]; - struct hisi_sas_debugfs_itct_cache debugfs_itct_cache[50]; - u64 debugfs_timestamp[50]; - int debugfs_dump_index; - struct dentry *debugfs_dir; - struct dentry *debugfs_dump_dentry; - struct dentry *debugfs_bist_dentry; - struct dentry *debugfs_fifo_dentry; - int iopoll_q_cnt; +struct __user_cap_data_struct; + +typedef struct __user_cap_data_struct __attribute__((btf_type_tag("user"))) *cap_user_data_t; + +struct __user_cap_data_struct { + __u32 effective; + __u32 permitted; + __u32 inheritable; }; -struct hisi_sas_cmd_hdr { - __le32 dw0; - __le32 dw1; - __le32 dw2; - __le32 transfer_tags; - __le32 data_transfer_len; - __le32 first_burst_num; - __le32 sg_len; - __le32 dw7; - __le64 cmd_table_addr; - __le64 sts_buffer_addr; - __le64 prd_table_addr; - __le64 dif_prd_table_addr; +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 hisi_sas_err_record { - u32 data[4]; +struct membuf { + void *p; + size_t left; }; -struct hisi_sas_initial_fis { - struct hisi_sas_err_record err_record; - struct dev_to_host_fis fis; - u32 rsvd[3]; +struct user_regset_view { + const char *name; + const struct user_regset *regsets; + unsigned int n; + u32 e_flags; + u16 e_machine; + u8 ei_osabi; }; -struct hisi_sas_itct { - __le64 qw0; - __le64 sas_addr; - __le64 qw2; - __le64 qw3; - __le64 qw4_15[12]; +typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int); + +typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); + +typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *); + +typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t); + +typedef void (*btf_trace_sched_waking)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int); + +typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int); + +typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_process_wait)(void *, struct pid *); + +typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *); + +typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *); + +typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64, 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_skip_vma_numa)(void *, struct mm_struct *, struct vm_area_struct *, enum numa_vmaskip_reason); + +typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int); + +typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *); + +typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *); + +typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *); + +typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool); + +typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *); + +typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *); + +typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int); + +typedef void (*btf_trace_sched_compute_energy_tp)(void *, struct task_struct *, int, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *); + +typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, unsigned long, void *); + +typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, unsigned long, void *); + +typedef void (*btf_trace_ipi_entry)(void *, const char *); + +typedef void (*btf_trace_ipi_exit)(void *, const char *); + +enum ctx_state { + CONTEXT_DISABLED = -1, + CONTEXT_KERNEL = 0, + CONTEXT_IDLE = 1, + CONTEXT_USER = 2, + CONTEXT_GUEST = 3, + CONTEXT_MAX = 4, }; -struct hisi_sas_iost { - __le64 qw0; - __le64 qw1; - __le64 qw2; - __le64 qw3; +enum rseq_event_mask_bits { + RSEQ_EVENT_PREEMPT_BIT = 0, + RSEQ_EVENT_SIGNAL_BIT = 1, + RSEQ_EVENT_MIGRATE_BIT = 2, }; -struct hisi_sas_breakpoint { - u8 data[128]; +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 hisi_sas_slot { - struct list_head entry; - struct list_head delivery; - struct sas_task *task; - struct hisi_sas_port *port; - u64 n_elem; - u64 n_elem_dif; - int dlvry_queue; - int dlvry_queue_slot; - int cmplt_queue; - int cmplt_queue_slot; - int abort; - int ready; - int device_id; - void *cmd_hdr; - dma_addr_t cmd_hdr_dma; - struct timer_list internal_abort_timer; - bool is_internal; - struct sas_tmf_task *tmf; - void *buf; - dma_addr_t buf_dma; - u16 idx; +enum { + cpuset = 0, + possible = 1, + fail = 2, }; -struct hisi_sas_hw { - int (*hw_init)(struct hisi_hba *); - int (*interrupt_preinit)(struct hisi_hba *); - void (*setup_itct)(struct hisi_hba *, struct hisi_sas_device *); - int (*slot_index_alloc)(struct hisi_hba *, struct domain_device *); - struct hisi_sas_device * (*alloc_dev)(struct domain_device *); - void (*sl_notify_ssp)(struct hisi_hba *, int); - void (*start_delivery)(struct hisi_sas_dq *); - void (*prep_ssp)(struct hisi_hba *, struct hisi_sas_slot *); - void (*prep_smp)(struct hisi_hba *, struct hisi_sas_slot *); - void (*prep_stp)(struct hisi_hba *, struct hisi_sas_slot *); - void (*prep_abort)(struct hisi_hba *, struct hisi_sas_slot *); - void (*phys_init)(struct hisi_hba *); - void (*phy_start)(struct hisi_hba *, int); - void (*phy_disable)(struct hisi_hba *, int); - void (*phy_hard_reset)(struct hisi_hba *, int); - void (*get_events)(struct hisi_hba *, int); - void (*phy_set_linkrate)(struct hisi_hba *, int, struct sas_phy_linkrates *); - enum sas_linkrate (*phy_get_max_linkrate)(); - int (*clear_itct)(struct hisi_hba *, struct hisi_sas_device *); - void (*free_device)(struct hisi_sas_device *); - int (*get_wideport_bitmap)(struct hisi_hba *, int); - void (*dereg_device)(struct hisi_hba *, struct domain_device *); - int (*soft_reset)(struct hisi_hba *); - u32 (*get_phys_state)(struct hisi_hba *); - int (*write_gpio)(struct hisi_hba *, u8, u8, u8, u8 *); - void (*wait_cmds_complete_timeout)(struct hisi_hba *, int, int); - void (*debugfs_snapshot_regs)(struct hisi_hba *); - int complete_hdr_size; - const struct scsi_host_template *sht; +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, }; -struct hisi_sas_iost_itct_cache { - u32 data[10]; +enum mm_cid_state { + MM_CID_UNSET = 4294967295, + MM_CID_LAZY_PUT = 2147483648, }; -struct hisi_sas_rst { - struct hisi_hba *hisi_hba; - struct completion *completion; - struct work_struct work; - bool done; +union cpumask_rcuhead { + cpumask_t cpumask; + struct callback_head rcu; }; -struct sas_identify_frame { - u8 frame_type: 4; - u8 dev_type: 3; - u8 _un0: 1; - u8 _un1; - union { - struct { - u8 _un20: 1; - u8 smp_iport: 1; - u8 stp_iport: 1; - u8 ssp_iport: 1; - u8 _un247: 4; - }; - u8 initiator_bits; - }; - union { - struct { - u8 _un30: 1; - u8 smp_tport: 1; - u8 stp_tport: 1; - u8 ssp_tport: 1; - u8 _un347: 4; - }; - u8 target_bits; - }; - u8 _un4_11[8]; - u8 sas_addr[8]; - u8 phy_id; - u8 _un21_27[7]; - __be32 crc; +struct trace_event_raw_sched_kthread_stop { + struct trace_entry ent; + char comm[16]; + pid_t pid; + char __data[0]; }; -struct hisi_sas_internal_abort_data { - bool rst_ha_timeout; +struct trace_event_raw_sched_kthread_stop_ret { + struct trace_entry ent; + int ret; + char __data[0]; }; -struct hisi_sas_status_buffer { - struct hisi_sas_err_record err; - u8 iu[1024]; +struct trace_event_raw_sched_kthread_work_queue_work { + struct trace_entry ent; + void *work; + void *function; + void *worker; + char __data[0]; }; -struct map_info; +struct trace_event_raw_sched_kthread_work_execute_start { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; +}; -struct mtd_chip_driver { - struct mtd_info * (*probe)(struct map_info *); - void (*destroy)(struct mtd_info *); - struct module *module; - char *name; - struct list_head list; +struct trace_event_raw_sched_kthread_work_execute_end { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; }; -struct map_info { - const char *name; - unsigned long size; - resource_size_t phys; - void *virt; - void *cached; - int swap; - int bankwidth; - void (*inval_cache)(struct map_info *, unsigned long, ssize_t); - void (*set_vpp)(struct map_info *, int); - unsigned long pfow_base; - unsigned long map_priv_1; - unsigned long map_priv_2; - struct device_node *device_node; - void *fldrv_priv; - struct mtd_chip_driver *fldrv; +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 cfi_pri_intelext { - uint8_t pri[3]; - uint8_t MajorVersion; - uint8_t MinorVersion; - uint32_t FeatureSupport; - uint8_t SuspendCmdSupport; - uint16_t BlkStatusRegMask; - uint8_t VccOptimal; - uint8_t VppOptimal; - uint8_t NumProtectionFields; - uint16_t ProtRegAddr; - uint8_t FactProtRegSize; - uint8_t UserProtRegSize; - uint8_t extra[0]; -} __attribute__((packed)); - -typedef union { - unsigned long x[1]; -} map_word; - -typedef enum { - FL_READY = 0, - FL_STATUS = 1, - FL_CFI_QUERY = 2, - FL_JEDEC_QUERY = 3, - FL_ERASING = 4, - FL_ERASE_SUSPENDING = 5, - FL_ERASE_SUSPENDED = 6, - FL_WRITING = 7, - FL_WRITING_TO_BUFFER = 8, - FL_OTP_WRITE = 9, - FL_WRITE_SUSPENDING = 10, - FL_WRITE_SUSPENDED = 11, - FL_PM_SUSPENDED = 12, - FL_SYNCING = 13, - FL_UNLOADING = 14, - FL_LOCKING = 15, - FL_UNLOCKING = 16, - FL_POINT = 17, - FL_XIP_WHILE_ERASING = 18, - FL_XIP_WHILE_WRITING = 19, - FL_SHUTDOWN = 20, - FL_READING = 21, - FL_CACHEDPRG = 22, - FL_RESETTING = 23, - FL_OTPING = 24, - FL_PREPARING_ERASE = 25, - FL_VERIFYING_ERASE = 26, - FL_UNKNOWN = 27, -} flstate_t; - -struct flchip { - unsigned long start; - int ref_point_counter; - flstate_t state; - flstate_t oldstate; - unsigned int write_suspended: 1; - unsigned int erase_suspended: 1; - unsigned long in_progress_block_addr; - unsigned long in_progress_block_mask; - struct mutex mutex; - wait_queue_head_t wq; - int word_write_time; - int buffer_write_time; - int erase_time; - int word_write_time_max; - int buffer_write_time_max; - int erase_time_max; - void *priv; +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 cfi_ident; - -struct cfi_private { - uint16_t cmdset; - void *cmdset_priv; - int interleave; - int device_type; - int cfi_mode; - int addr_unlock1; - int addr_unlock2; - struct mtd_info * (*cmdset_setup)(struct map_info *); - struct cfi_ident *cfiq; - int mfr; - int id; - int numchips; - map_word sector_erase_cmd; - unsigned long chipshift; - const char *im_name; - unsigned long quirks; - struct flchip chips[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 cfi_ident { - uint8_t qry[3]; - uint16_t P_ID; - uint16_t P_ADR; - uint16_t A_ID; - uint16_t A_ADR; - uint8_t VccMin; - uint8_t VccMax; - uint8_t VppMin; - uint8_t VppMax; - uint8_t WordWriteTimeoutTyp; - uint8_t BufWriteTimeoutTyp; - uint8_t BlockEraseTimeoutTyp; - uint8_t ChipEraseTimeoutTyp; - uint8_t WordWriteTimeoutMax; - uint8_t BufWriteTimeoutMax; - uint8_t BlockEraseTimeoutMax; - uint8_t ChipEraseTimeoutMax; - uint8_t DevSize; - uint16_t InterfaceDesc; - uint16_t MaxBufWriteSize; - uint8_t NumEraseRegions; - uint32_t EraseRegionInfo[0]; -} __attribute__((packed)); - -struct cfi_extquery { - uint8_t pri[3]; - uint8_t MajorVersion; - uint8_t MinorVersion; +struct trace_event_raw_sched_process_template { + struct trace_entry ent; + char comm[16]; + pid_t pid; + int prio; + char __data[0]; }; -typedef unsigned long u_long; - -struct spi_qup { - void *base; - struct device *dev; - struct clk *cclk; - struct clk *iclk; - int irq; - spinlock_t lock; - int in_fifo_sz; - int out_fifo_sz; - int in_blk_sz; - int out_blk_sz; - struct spi_transfer *xfer; - struct completion done; - int error; - int w_size; - int n_words; - int tx_bytes; - int rx_bytes; - const u8 *tx_buf; - u8 *rx_buf; - int qup_v1; - int mode; - struct dma_slave_config rx_conf; - struct dma_slave_config tx_conf; +struct trace_event_raw_sched_process_wait { + struct trace_entry ent; + char comm[16]; + pid_t pid; + int prio; + char __data[0]; }; -enum xgene_enet_cmd { - XGENE_ENET_WR_CMD = 2147483648, - XGENE_ENET_RD_CMD = 1073741824, +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]; }; -enum xgene_mdio_id { - XGENE_MDIO_RGMII = 1, - XGENE_MDIO_XFI = 2, +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]; }; -enum { - MIIM_CMD_IDLE = 0, - MIIM_CMD_LEGACY_WRITE = 1, - MIIM_CMD_LEGACY_READ = 2, +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 xgene_mdio_pdata { - struct clk *clk; - struct device *dev; - void *mac_csr_addr; - void *diag_csr_addr; - void *mdio_csr_addr; - struct mii_bus *mdio_bus; - int mdio_id; - spinlock_t mac_lock; +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 fman_sp_int_context_data_copy { - u16 ext_buf_offset; - u8 int_context_offset; - u16 size; +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 fman_sp_buf_margins { - u16 start_margins; - u16 end_margins; +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 fman_sp_buffer_offsets { - u32 data_offset; - u32 prs_result_offset; - u32 time_stamp_offset; - u32 hash_result_offset; +struct trace_event_raw_sched_skip_vma_numa { + struct trace_entry ent; + unsigned long numa_scan_offset; + unsigned long vm_start; + unsigned long vm_end; + enum numa_vmaskip_reason reason; + char __data[0]; }; -struct fman_kg_scheme_regs { - u32 kgse_mode; - u32 kgse_ekfc; - u32 kgse_ekdv; - u32 kgse_bmch; - u32 kgse_bmcl; - u32 kgse_fqb; - u32 kgse_hc; - u32 kgse_ppc; - u32 kgse_gec[8]; - u32 kgse_spc; - u32 kgse_dv0; - u32 kgse_dv1; - u32 kgse_ccbs; - u32 kgse_mv; - u32 kgse_om; - u32 kgse_vsp; +struct trace_event_raw_sched_wake_idle_without_ipi { + struct trace_entry ent; + int cpu; + char __data[0]; }; -struct fman_kg_pe_regs { - u32 fmkg_pe_sp; - u32 fmkg_pe_cpp; +struct trace_event_raw_ipi_raise { + struct trace_entry ent; + u32 __data_loc_target_cpus; + const char *reason; + char __data[0]; }; -struct fman_kg_regs { - u32 fmkg_gcr; - u32 res004; - u32 res008; - u32 fmkg_eer; - u32 fmkg_eeer; - u32 res014; - u32 res018; - u32 fmkg_seer; - u32 fmkg_seeer; - u32 fmkg_gsr; - u32 fmkg_tpc; - u32 fmkg_serc; - u32 res030[4]; - u32 fmkg_fdor; - u32 fmkg_gdv0r; - u32 fmkg_gdv1r; - u32 res04c[6]; - u32 fmkg_feer; - u32 res068[38]; - union { - u32 fmkg_indirect[63]; - struct fman_kg_scheme_regs fmkg_sch; - struct fman_kg_pe_regs fmkg_pe; - }; - u32 fmkg_ar; +struct trace_event_raw_ipi_send_cpu { + struct trace_entry ent; + unsigned int cpu; + void *callsite; + void *callback; + char __data[0]; }; -struct keygen_scheme { - bool used; - u8 hw_port_id; - u32 base_fqid; - u32 hash_fqid_count; - bool use_hashing; - bool symmetric_hash; - u8 hashShift; - u32 match_vector; +struct trace_event_raw_ipi_send_cpumask { + struct trace_entry ent; + u32 __data_loc_cpumask; + void *callsite; + void *callback; + char __data[0]; }; -struct fman_keygen { - struct keygen_scheme schemes[32]; - struct fman_kg_regs *keygen_regs; +struct trace_event_raw_ipi_handler { + struct trace_entry ent; + const char *reason; + char __data[0]; }; -struct mac_address { - u8 addr[6]; - struct list_head list; +struct irqtime { + u64 total; + u64 tick_delta; + u64 irq_start_time; + struct u64_stats_sync sync; }; -struct mac_priv_s { - u8 cell_index; - struct fman *fman; - struct list_head mc_addr_list; - struct platform_device *eth_dev; - u16 speed; +struct sched_param { + int sched_priority; }; -enum rcb_int_flag { - RCB_INT_FLAG_TX = 1, - RCB_INT_FLAG_RX = 2, - RCB_INT_FLAG_MAX = 4, +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 dsaf_mode { - DSAF_MODE_INVALID = 0, - DSAF_MODE_ENABLE_FIX = 1, - DSAF_MODE_ENABLE_0VM = 2, - DSAF_MODE_ENABLE_8VM = 3, - DSAF_MODE_ENABLE_16VM = 4, - DSAF_MODE_ENABLE_32VM = 5, - DSAF_MODE_ENABLE_128VM = 6, - DSAF_MODE_ENABLE = 7, - DSAF_MODE_DISABLE_SP = 8, - DSAF_MODE_DISABLE_FIX = 9, - DSAF_MODE_DISABLE_2PORT_8VM = 10, - DSAF_MODE_DISABLE_2PORT_16VM = 11, - DSAF_MODE_DISABLE_2PORT_64VM = 12, - DSAF_MODE_DISABLE_6PORT_0VM = 13, - DSAF_MODE_DISABLE_6PORT_2VM = 14, - DSAF_MODE_DISABLE_6PORT_4VM = 15, - DSAF_MODE_DISABLE_6PORT_16VM = 16, - DSAF_MODE_MAX = 17, +struct trace_event_data_offsets_sched_process_exec { + u32 filename; }; -enum hal_dsaf_mode { - HRD_DSAF_NO_DSAF_MODE = 0, - HRD_DSAF_MODE = 1, +struct trace_event_data_offsets_ipi_raise { + u32 target_cpus; }; -enum hal_dsaf_tc_mode { - HRD_DSAF_4TC_MODE = 0, - HRD_DSAF_8TC_MODE = 1, +struct trace_event_data_offsets_ipi_send_cpumask { + u32 cpumask; }; -enum ppe_common_mode { - PPE_COMMON_MODE_DEBUG = 0, - PPE_COMMON_MODE_SERVICE = 1, - PPE_COMMON_MODE_MAX = 2, -}; +typedef struct { + void *lock; +} class_rcu_t; -struct hns_ring_hw_stats { - u64 tx_pkts; - u64 ppe_tx_ok_pkts; - u64 ppe_tx_drop_pkts; - u64 rx_pkts; - u64 ppe_rx_ok_pkts; - u64 ppe_rx_drop_pkts; -}; +typedef struct { + raw_spinlock_t *lock; +} class_raw_spinlock_irq_t; -struct rcb_common_cb; +typedef struct { + void *lock; +} class_preempt_t; -struct ring_pair_cb { - struct rcb_common_cb *rcb_common; - struct device *dev; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct hnae_queue q; - u16 index; - u16 buf_size; - int virq[2]; - u8 port_id_in_comm; - u8 used_by_vf; - struct hns_ring_hw_stats hw_stats; -}; +typedef struct { + raw_spinlock_t *lock; + raw_spinlock_t *lock2; +} class_double_raw_spinlock_t; -struct dsaf_device; +typedef struct { + struct rq *lock; + struct rq *lock2; +} class_double_rq_lock_t; -struct rcb_common_cb { - u8 *io_base; - phys_addr_t phy_base; - struct dsaf_device *dsaf_dev; - u16 max_vfn; - u16 max_q_per_vf; - u8 comm_index; - u32 ring_num; - u32 desc_num; - long: 64; - long: 64; - long: 64; - struct ring_pair_cb ring_pair_cb[0]; -}; +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irqsave_t; -struct dsaf_hw_stats { - u64 pad_drop; - u64 man_pkts; - u64 rx_pkts; - u64 rx_pkt_id; - u64 rx_pause_frame; - u64 release_buf_num; - u64 sbm_drop; - u64 crc_false; - u64 bp_drop; - u64 rslt_drop; - u64 local_addr_false; - u64 vlan_drop; - u64 stp_drop; - u64 rx_pfc[8]; - u64 tx_pfc[8]; - u64 tx_pkts; -}; +typedef struct { + raw_spinlock_t *lock; + unsigned long flags; +} class_raw_spinlock_irqsave_t; -struct dsaf_int_xge_src { - u32 xid_xge_ecc_err_int_src; - u32 xid_xge_fsm_timout_int_src; - u32 sbm_xge_lnk_fsm_timout_int_src; - u32 sbm_xge_lnk_ecc_2bit_int_src; - u32 sbm_xge_mib_req_failed_int_src; - u32 sbm_xge_mib_req_fsm_timout_int_src; - u32 sbm_xge_mib_rels_fsm_timout_int_src; - u32 sbm_xge_sram_ecc_2bit_int_src; - u32 sbm_xge_mib_buf_sum_err_int_src; - u32 sbm_xge_mib_req_extra_int_src; - u32 sbm_xge_mib_rels_extra_int_src; - u32 voq_xge_start_to_over_0_int_src; - u32 voq_xge_start_to_over_1_int_src; - u32 voq_xge_ecc_err_int_src; -}; +typedef struct { + struct task_struct *lock; + struct rq *rq; + struct rq_flags rf; +} class_task_rq_lock_t; -struct dsaf_int_ppe_src { - u32 xid_ppe_fsm_timout_int_src; - u32 sbm_ppe_lnk_fsm_timout_int_src; - u32 sbm_ppe_lnk_ecc_2bit_int_src; - u32 sbm_ppe_mib_req_failed_int_src; - u32 sbm_ppe_mib_req_fsm_timout_int_src; - u32 sbm_ppe_mib_rels_fsm_timout_int_src; - u32 sbm_ppe_sram_ecc_2bit_int_src; - u32 sbm_ppe_mib_buf_sum_err_int_src; - u32 sbm_ppe_mib_req_extra_int_src; - u32 sbm_ppe_mib_rels_extra_int_src; - u32 voq_ppe_start_to_over_0_int_src; - u32 voq_ppe_ecc_err_int_src; - u32 xod_ppe_fifo_rd_empty_int_src; - u32 xod_ppe_fifo_wr_full_int_src; +typedef struct task_struct *class_find_get_task_t; + +typedef struct { + void *lock; + unsigned long flags; +} class_irqsave_t; + +struct sched_domain_attr { + int relax_domain_level; }; -struct dsaf_int_rocee_src { - u32 xid_rocee_fsm_timout_int_src; - u32 sbm_rocee_lnk_fsm_timout_int_src; - u32 sbm_rocee_lnk_ecc_2bit_int_src; - u32 sbm_rocee_mib_req_failed_int_src; - u32 sbm_rocee_mib_req_fsm_timout_int_src; - u32 sbm_rocee_mib_rels_fsm_timout_int_src; - u32 sbm_rocee_sram_ecc_2bit_int_src; - u32 sbm_rocee_mib_buf_sum_err_int_src; - u32 sbm_rocee_mib_req_extra_int_src; - u32 sbm_rocee_mib_rels_extra_int_src; - u32 voq_rocee_start_to_over_0_int_src; - u32 voq_rocee_ecc_err_int_src; +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 dsaf_int_tbl_src { - u32 tbl_da0_mis_src; - u32 tbl_da1_mis_src; - u32 tbl_da2_mis_src; - u32 tbl_da3_mis_src; - u32 tbl_da4_mis_src; - u32 tbl_da5_mis_src; - u32 tbl_da6_mis_src; - u32 tbl_da7_mis_src; - u32 tbl_sa_mis_src; - u32 tbl_old_sech_end_src; - u32 lram_ecc_err1_src; - u32 lram_ecc_err2_src; - u32 tram_ecc_err1_src; - u32 tram_ecc_err2_src; - u32 tbl_ucast_bcast_xge0_src; - u32 tbl_ucast_bcast_xge1_src; - u32 tbl_ucast_bcast_xge2_src; - u32 tbl_ucast_bcast_xge3_src; - u32 tbl_ucast_bcast_xge4_src; - u32 tbl_ucast_bcast_xge5_src; - u32 tbl_ucast_bcast_ppe_src; - u32 tbl_ucast_bcast_rocee_src; +struct set_affinity_pending; + +struct migration_arg { + struct task_struct *task; + int dest_cpu; + struct set_affinity_pending *pending; }; -struct dsaf_int_stat { - struct dsaf_int_xge_src dsaf_int_xge_stat[6]; - struct dsaf_int_ppe_src dsaf_int_ppe_stat[6]; - struct dsaf_int_rocee_src dsaf_int_rocee_stat[6]; - struct dsaf_int_tbl_src dsaf_int_tbl_stat[1]; +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 ppe_common_cb; +struct trace_event_data_offsets_sched_kthread_stop {}; -struct hns_mac_cb; +struct trace_event_data_offsets_sched_kthread_stop_ret {}; -struct dsaf_misc_op; +struct trace_event_data_offsets_sched_kthread_work_queue_work {}; -struct dsaf_device { - struct device *dev; - struct hnae_ae_dev ae_dev; - u8 *sc_base; - u8 *sds_base; - u8 *ppe_base; - u8 *io_base; - struct regmap *sub_ctrl; - phys_addr_t ppe_paddr; - u32 desc_num; - u32 buf_size; - u32 reset_offset; - int buf_size_type; - enum dsaf_mode dsaf_mode; - enum hal_dsaf_mode dsaf_en; - enum hal_dsaf_tc_mode dsaf_tc_mode; - u32 dsaf_ver; - u16 tcam_max_num; - struct ppe_common_cb *ppe_common[1]; - struct rcb_common_cb *rcb_common[1]; - struct hns_mac_cb *mac_cb[6]; - struct dsaf_misc_op *misc_op; - struct dsaf_hw_stats hw_stats[18]; - struct dsaf_int_stat int_stat; - spinlock_t tcam_lock; -}; +struct trace_event_data_offsets_sched_kthread_work_execute_start {}; -struct hns_ppe_hw_stats { - u64 rx_pkts_from_sw; - u64 rx_pkts; - u64 rx_drop_no_bd; - u64 rx_alloc_buf_fail; - u64 rx_alloc_buf_wait; - u64 rx_drop_no_buf; - u64 rx_err_fifo_full; - u64 tx_bd_form_rcb; - u64 tx_pkts_from_rcb; - u64 tx_pkts; - u64 tx_err_fifo_empty; - u64 tx_err_checksum; -}; +struct trace_event_data_offsets_sched_kthread_work_execute_end {}; -struct hns_ppe_cb { - struct device *dev; - struct hns_ppe_cb *next; - struct ppe_common_cb *ppe_common_cb; - struct hns_ppe_hw_stats hw_stats; - u8 index; - u8 *io_base; - int virq; - u32 rss_indir_table[256]; - u32 rss_key[10]; -}; +struct trace_event_data_offsets_sched_wakeup_template {}; -struct ppe_common_cb { - struct device *dev; - struct dsaf_device *dsaf_dev; - u8 *io_base; - enum ppe_common_mode ppe_mode; - u8 comm_index; - u32 ppe_num; - struct hns_ppe_cb ppe_cb[0]; -}; +struct trace_event_data_offsets_sched_switch {}; -struct mac_priv { - void *mac; -}; +struct trace_event_data_offsets_sched_migrate_task {}; -struct mac_entry_idx { - u8 addr[6]; - u16 vlan_id: 12; - u16 valid: 1; - u16 qos: 3; -}; +struct trace_event_data_offsets_sched_process_template {}; -struct mac_hw_stats { - u64 rx_good_pkts; - u64 rx_good_bytes; - u64 rx_total_pkts; - u64 rx_total_bytes; - u64 rx_bad_bytes; - u64 rx_uc_pkts; - u64 rx_mc_pkts; - u64 rx_bc_pkts; - u64 rx_fragment_err; - u64 rx_undersize; - u64 rx_under_min; - u64 rx_minto64; - u64 rx_64bytes; - u64 rx_65to127; - u64 rx_128to255; - u64 rx_256to511; - u64 rx_512to1023; - u64 rx_1024to1518; - u64 rx_1519tomax; - u64 rx_1519tomax_good; - u64 rx_oversize; - u64 rx_jabber_err; - u64 rx_fcs_err; - u64 rx_vlan_pkts; - u64 rx_data_err; - u64 rx_align_err; - u64 rx_long_err; - u64 rx_pfc_tc0; - u64 rx_pfc_tc1; - u64 rx_pfc_tc2; - u64 rx_pfc_tc3; - u64 rx_pfc_tc4; - u64 rx_pfc_tc5; - u64 rx_pfc_tc6; - u64 rx_pfc_tc7; - u64 rx_unknown_ctrl; - u64 rx_filter_pkts; - u64 rx_filter_bytes; - u64 rx_fifo_overrun_err; - u64 rx_len_err; - u64 rx_comma_err; - u64 rx_symbol_err; - u64 tx_good_to_sw; - u64 tx_bad_to_sw; - u64 rx_1731_pkts; - u64 tx_good_bytes; - u64 tx_good_pkts; - u64 tx_total_bytes; - u64 tx_total_pkts; - u64 tx_bad_bytes; - u64 tx_bad_pkts; - u64 tx_uc_pkts; - u64 tx_mc_pkts; - u64 tx_bc_pkts; - u64 tx_undersize; - u64 tx_fragment_err; - u64 tx_under_min_pkts; - u64 tx_64bytes; - u64 tx_65to127; - u64 tx_128to255; - u64 tx_256to511; - u64 tx_512to1023; - u64 tx_1024to1518; - u64 tx_1519tomax; - u64 tx_1519tomax_good; - u64 tx_oversize; - u64 tx_jabber_err; - u64 tx_underrun_err; - u64 tx_vlan; - u64 tx_crc_err; - u64 tx_pfc_tc0; - u64 tx_pfc_tc1; - u64 tx_pfc_tc2; - u64 tx_pfc_tc3; - u64 tx_pfc_tc4; - u64 tx_pfc_tc5; - u64 tx_pfc_tc6; - u64 tx_pfc_tc7; - u64 tx_ctrl; - u64 tx_1731_pkts; - u64 tx_1588_pkts; - u64 rx_good_from_sw; - u64 rx_bad_from_sw; -}; +struct trace_event_data_offsets_sched_process_wait {}; -struct hns_mac_cb { - struct device *dev; - struct dsaf_device *dsaf_dev; - struct mac_priv priv; - struct fwnode_handle *fw_port; - u8 *vaddr; - u8 *sys_ctl_vaddr; - u8 *serdes_vaddr; - struct regmap *serdes_ctrl; - struct regmap *cpld_ctrl; - char mc_mask[6]; - u32 cpld_ctrl_reg; - u32 port_rst_off; - u32 port_mode_off; - struct mac_entry_idx addr_entry_idx[128]; - u8 sfp_prsnt; - u8 cpld_led_value; - u8 mac_id; - u8 link; - u8 half_duplex; - u16 speed; - u16 max_speed; - u16 max_frm; - u16 tx_pause_frm_time; - u32 if_support; - u64 txpkt_for_led; - u64 rxpkt_for_led; - enum hnae_port_type mac_type; - enum hnae_media_type media_type; - phy_interface_t phy_if; - enum hnae_loop loop_mode; - struct phy_device *phy_dev; - struct mac_hw_stats hw_stats; +struct trace_event_data_offsets_sched_process_fork {}; + +struct trace_event_data_offsets_sched_stat_runtime {}; + +struct trace_event_data_offsets_sched_pi_setprio {}; + +struct trace_event_data_offsets_sched_move_numa {}; + +struct trace_event_data_offsets_sched_numa_pair_template {}; + +struct trace_event_data_offsets_sched_skip_vma_numa {}; + +struct trace_event_data_offsets_sched_wake_idle_without_ipi {}; + +struct trace_event_data_offsets_ipi_send_cpu {}; + +struct trace_event_data_offsets_ipi_handler {}; + +typedef int (*tg_visitor)(struct task_group *, void *); + +struct migration_swap_arg { + struct task_struct *src_task; + struct task_struct *dst_task; + int src_cpu; + int dst_cpu; }; -struct dsaf_misc_op { - void (*cpld_set_led)(struct hns_mac_cb *, int, u16, int); - void (*cpld_reset_led)(struct hns_mac_cb *); - int (*cpld_set_led_id)(struct hns_mac_cb *, enum hnae_led_state); - void (*dsaf_reset)(struct dsaf_device *, bool); - void (*xge_srst)(struct dsaf_device *, u32, bool); - void (*ge_srst)(struct dsaf_device *, u32, bool); - void (*ppe_srst)(struct dsaf_device *, u32, bool); - void (*ppe_comm_srst)(struct dsaf_device *, bool); - void (*hns_dsaf_srst_chns)(struct dsaf_device *, u32, bool); - void (*hns_dsaf_roce_srst)(struct dsaf_device *, bool); - phy_interface_t (*get_phy_if)(struct hns_mac_cb *); - int (*get_sfp_prsnt)(struct hns_mac_cb *, int *); - int (*cfg_serdes_loopback)(struct hns_mac_cb *, bool); +typedef int (*task_call_f)(struct task_struct *, void *); + +struct kernel_clone_args { + u64 flags; + int __attribute__((btf_type_tag("user"))) *pidfd; + int __attribute__((btf_type_tag("user"))) *child_tid; + int __attribute__((btf_type_tag("user"))) *parent_tid; + const char *name; + int exit_signal; + u32 kthread: 1; + u32 io_thread: 1; + u32 user_worker: 1; + u32 no_files: 1; + unsigned long stack; + unsigned long stack_size; + unsigned long tls; + pid_t *set_tid; + size_t set_tid_size; + int cgroup; + int idle; + int (*fn)(void *); + void *fn_arg; + struct cgroup *cgrp; + struct css_set *cset; }; -struct hnae_vf_cb { - u8 port_index; - struct hns_mac_cb *mac_cb; - struct dsaf_device *dsaf_dev; - struct hnae_handle ae_handle; +struct fmeter { + int cnt; + int val; + time64_t time; + spinlock_t lock; }; -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 **); +enum prs_errcode { + PERR_NONE = 0, + PERR_INVCPUS = 1, + PERR_INVPARENT = 2, + PERR_NOTPART = 3, + PERR_NOTEXCL = 4, + PERR_NOCPUS = 5, + PERR_HOTPLUG = 6, + PERR_CPUSEMPTY = 7, + PERR_HKEEPING = 8, }; -struct 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 cpuset { + struct cgroup_subsys_state css; + unsigned long flags; + cpumask_var_t cpus_allowed; + nodemask_t mems_allowed; + cpumask_var_t effective_cpus; + nodemask_t effective_mems; + cpumask_var_t effective_xcpus; + cpumask_var_t exclusive_cpus; + nodemask_t old_mems_allowed; + struct fmeter fmeter; + int attach_in_progress; + int pn; + int relax_domain_level; + int nr_subparts; + int partition_root_state; + int use_parent_ecpus; + int child_ecpus_count; + int nr_deadline_tasks; + int nr_migrate_dl_tasks; + u64 sum_migrate_dl_bw; + enum prs_errcode prs_err; + struct cgroup_file partition_file; + struct list_head remote_sibling; }; -struct netdev_lag_lower_state_info { - u8 link_up: 1; - u8 tx_enabled: 1; +enum { + CGRP_NOTIFY_ON_RELEASE = 0, + CGRP_CPUSET_CLONE_CHILDREN = 1, + CGRP_FREEZE = 2, + CGRP_FROZEN = 3, + CGRP_KILL = 4, }; -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; +enum partition_cmd { + partcmd_enable = 0, + partcmd_disable = 1, + partcmd_update = 2, + partcmd_invalidate = 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 cpuset_migrate_mm_work { + struct work_struct work; + struct mm_struct *mm; + nodemask_t from; + nodemask_t to; }; -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, +struct tmpmasks { + cpumask_var_t addmask; + cpumask_var_t delmask; + cpumask_var_t new_cpus; }; -typedef u32 usb_port_location_t; +typedef enum { + CS_ONLINE = 0, + CS_CPU_EXCLUSIVE = 1, + CS_MEM_EXCLUSIVE = 2, + CS_MEM_HARDWALL = 3, + CS_MEMORY_MIGRATE = 4, + CS_SCHED_LOAD_BALANCE = 5, + CS_SPREAD_PAGE = 6, + CS_SPREAD_SLAB = 7, +} cpuset_flagbits_t; -struct usb_dev_state; +typedef enum { + FILE_MEMORY_MIGRATE = 0, + FILE_CPULIST = 1, + FILE_MEMLIST = 2, + FILE_EFFECTIVE_CPULIST = 3, + FILE_EFFECTIVE_MEMLIST = 4, + FILE_SUBPARTS_CPULIST = 5, + FILE_EXCLUSIVE_CPULIST = 6, + FILE_EFFECTIVE_XCPULIST = 7, + FILE_CPU_EXCLUSIVE = 8, + FILE_MEM_EXCLUSIVE = 9, + FILE_MEM_HARDWALL = 10, + FILE_SCHED_LOAD_BALANCE = 11, + FILE_PARTITION_ROOT = 12, + FILE_SCHED_RELAX_DOMAIN_LEVEL = 13, + FILE_MEMORY_PRESSURE_ENABLED = 14, + FILE_MEMORY_PRESSURE = 15, + FILE_SPREAD_PAGE = 16, + FILE_SPREAD_SLAB = 17, +} cpuset_filetype_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; - enum usb_device_state state; - struct kernfs_node *state_kn; - usb_port_location_t location; - struct mutex status_lock; - u32 over_current_count; - u8 portnum; - u32 quirks; - unsigned int early_stop: 1; - unsigned int ignore_event: 1; - unsigned int is_superspeed: 1; - unsigned int usb3_lpm_u1_permit: 1; - unsigned int usb3_lpm_u2_permit: 1; +struct trace_probe_log { + const char *subsystem; + const char **argv; + int argc; + int index; }; -struct usb_hub_status { - __le16 wHubStatus; - __le16 wHubChange; -}; +typedef int (*print_type_func_t)(struct trace_seq *, void *, void *); -struct usb_port_status { - __le16 wPortStatus; - __le16 wPortChange; - __le32 dwExtPortStatus; +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 usb_hub_descriptor; +enum { + TP_ERR_FILE_NOT_FOUND = 0, + TP_ERR_NO_REGULAR_FILE = 1, + TP_ERR_BAD_REFCNT = 2, + TP_ERR_REFCNT_OPEN_BRACE = 3, + TP_ERR_BAD_REFCNT_SUFFIX = 4, + TP_ERR_BAD_UPROBE_OFFS = 5, + TP_ERR_BAD_MAXACT_TYPE = 6, + TP_ERR_BAD_MAXACT = 7, + TP_ERR_MAXACT_TOO_BIG = 8, + TP_ERR_BAD_PROBE_ADDR = 9, + TP_ERR_NON_UNIQ_SYMBOL = 10, + TP_ERR_BAD_RETPROBE = 11, + TP_ERR_NO_TRACEPOINT = 12, + TP_ERR_BAD_ADDR_SUFFIX = 13, + TP_ERR_NO_GROUP_NAME = 14, + TP_ERR_GROUP_TOO_LONG = 15, + TP_ERR_BAD_GROUP_NAME = 16, + TP_ERR_NO_EVENT_NAME = 17, + TP_ERR_EVENT_TOO_LONG = 18, + TP_ERR_BAD_EVENT_NAME = 19, + TP_ERR_EVENT_EXIST = 20, + TP_ERR_RETVAL_ON_PROBE = 21, + TP_ERR_NO_RETVAL = 22, + TP_ERR_BAD_STACK_NUM = 23, + TP_ERR_BAD_ARG_NUM = 24, + TP_ERR_BAD_VAR = 25, + TP_ERR_BAD_REG_NAME = 26, + TP_ERR_BAD_MEM_ADDR = 27, + TP_ERR_BAD_IMM = 28, + TP_ERR_IMMSTR_NO_CLOSE = 29, + TP_ERR_FILE_ON_KPROBE = 30, + TP_ERR_BAD_FILE_OFFS = 31, + TP_ERR_SYM_ON_UPROBE = 32, + TP_ERR_TOO_MANY_OPS = 33, + TP_ERR_DEREF_NEED_BRACE = 34, + TP_ERR_BAD_DEREF_OFFS = 35, + TP_ERR_DEREF_OPEN_BRACE = 36, + TP_ERR_COMM_CANT_DEREF = 37, + TP_ERR_BAD_FETCH_ARG = 38, + TP_ERR_ARRAY_NO_CLOSE = 39, + TP_ERR_BAD_ARRAY_SUFFIX = 40, + TP_ERR_BAD_ARRAY_NUM = 41, + TP_ERR_ARRAY_TOO_BIG = 42, + TP_ERR_BAD_TYPE = 43, + TP_ERR_BAD_STRING = 44, + TP_ERR_BAD_SYMSTRING = 45, + TP_ERR_BAD_BITFIELD = 46, + TP_ERR_ARG_NAME_TOO_LONG = 47, + TP_ERR_NO_ARG_NAME = 48, + TP_ERR_BAD_ARG_NAME = 49, + TP_ERR_USED_ARG_NAME = 50, + TP_ERR_ARG_TOO_LONG = 51, + TP_ERR_NO_ARG_BODY = 52, + TP_ERR_BAD_INSN_BNDRY = 53, + TP_ERR_FAIL_REG_PROBE = 54, + TP_ERR_DIFF_PROBE_TYPE = 55, + TP_ERR_DIFF_ARG_TYPE = 56, + TP_ERR_SAME_PROBE = 57, + TP_ERR_NO_EVENT_INFO = 58, + TP_ERR_BAD_ATTACH_EVENT = 59, + TP_ERR_BAD_ATTACH_ARG = 60, + TP_ERR_NO_EP_FILTER = 61, + TP_ERR_NOSUP_BTFARG = 62, + TP_ERR_NO_BTFARG = 63, + TP_ERR_NO_BTF_ENTRY = 64, + TP_ERR_BAD_VAR_ARGS = 65, + TP_ERR_NOFENTRY_ARGS = 66, + TP_ERR_DOUBLE_ARGS = 67, + TP_ERR_ARGS_2LONG = 68, + TP_ERR_ARGIDX_2BIG = 69, + TP_ERR_NO_PTR_STRCT = 70, + TP_ERR_NOSUP_DAT_ARG = 71, + TP_ERR_BAD_HYPHEN = 72, + TP_ERR_NO_BTF_FIELD = 73, + TP_ERR_BAD_BTF_TID = 74, + TP_ERR_BAD_TYPE4STR = 75, +}; -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; +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, }; -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)); - -enum dwc2_transaction_type { - DWC2_TRANSACTION_NONE = 0, - DWC2_TRANSACTION_PERIODIC = 1, - DWC2_TRANSACTION_NON_PERIODIC = 2, - DWC2_TRANSACTION_ALL = 3, +enum probe_print_type { + PROBE_PRINT_NORMAL = 0, + PROBE_PRINT_RETURN = 1, + PROBE_PRINT_EVENT = 2, }; -enum dwc2_control_phase { - DWC2_CONTROL_SETUP = 0, - DWC2_CONTROL_DATA = 1, - DWC2_CONTROL_STATUS = 2, +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 dwc2_hcd_urb; - -struct dwc2_qtd { - enum dwc2_control_phase control_phase; - u8 in_process; - u8 data_toggle; - u8 complete_split; - u8 isoc_split_pos; - u16 isoc_frame_index; - u16 isoc_split_offset; - u16 isoc_td_last; - u16 isoc_td_first; - u32 ssplit_out_xfer_count; - u8 error_count; - u8 n_desc; - u16 isoc_frame_index_last; - u16 num_naks; - struct dwc2_hcd_urb *urb; - struct dwc2_qh *qh; - struct list_head qtd_list_entry; +enum { + TRACE_EVENT_FL_FILTERED = 1, + TRACE_EVENT_FL_CAP_ANY = 2, + TRACE_EVENT_FL_NO_SET_FILTER = 4, + TRACE_EVENT_FL_IGNORE_ENABLE = 8, + TRACE_EVENT_FL_TRACEPOINT = 16, + TRACE_EVENT_FL_DYNAMIC = 32, + TRACE_EVENT_FL_KPROBE = 64, + TRACE_EVENT_FL_UPROBE = 128, + TRACE_EVENT_FL_EPROBE = 256, + TRACE_EVENT_FL_FPROBE = 512, + TRACE_EVENT_FL_CUSTOM = 1024, }; -struct dwc2_hcd_pipe_info { - u8 dev_addr; - u8 ep_num; - u8 pipe_type; - u8 pipe_dir; - u16 maxp; - u16 maxp_mult; +struct event_file_link { + struct trace_event_file *file; + struct list_head list; }; -struct dwc2_hcd_iso_packet_desc { - u32 offset; - u32 length; - u32 actual_length; - u32 status; +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 dwc2_hcd_urb { - void *priv; - struct dwc2_qtd *qtd; - void *buf; - dma_addr_t dma; - void *setup_packet; - dma_addr_t setup_dma; - u32 length; - u32 actual_length; - u32 status; - u32 error_count; - u32 packet_count; - u32 flags; - u16 interval; - struct dwc2_hcd_pipe_info pipe_info; - struct dwc2_hcd_iso_packet_desc iso_descs[0]; +struct btf_array { + __u32 type; + __u32 index_type; + __u32 nelems; }; -struct xhci_file_map { +struct fetch_insn; + +struct probe_arg { + struct fetch_insn *code; + bool dynamic; + unsigned int offset; + unsigned int count; const char *name; - int (*show)(struct seq_file *, void *); + const char *comm; + char *fmt; + const struct fetch_type *type; }; -struct xhci_regset { - char name[32]; - struct debugfs_regset32 regset; - size_t nregs; - struct list_head list; +struct fetch_insn { + enum fetch_op op; + union { + unsigned int param; + struct { + unsigned int size; + int offset; + }; + struct { + unsigned char basesize; + unsigned char lshift; + unsigned char rshift; + }; + unsigned long immediate; + void *data; + }; }; -struct xhci_ep_priv; +struct btf_param; -struct xhci_slot_priv { - char name[32]; - struct dentry *root; - struct xhci_ep_priv *eps[31]; - struct xhci_virt_device *dev; +struct traceprobe_parse_context { + struct trace_event_call *event; + const char *funcname; + const struct btf_type *proto; + const struct btf_param *params; + s32 nr_params; + struct btf *btf; + const struct btf_type *last_type; + u32 last_bitoffs; + u32 last_bitsize; + unsigned int flags; + int offset; }; -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 btf_param { + __u32 name_off; + __u32 type; }; -struct ehci_driver_overrides { - size_t extra_priv_size; - int (*reset)(struct usb_hcd *); - int (*port_power)(struct usb_hcd *, int, bool); -}; +struct trace_probe_event; -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, +struct trace_probe { + struct list_head list; + struct trace_probe_event *event; + ssize_t size; + unsigned int nr_args; + struct probe_arg args[0]; }; -enum ehci_rh_state { - EHCI_RH_HALTED = 0, - EHCI_RH_SUSPENDED = 1, - EHCI_RH_RUNNING = 2, - EHCI_RH_STOPPING = 3, +struct trace_uprobe_filter { + rwlock_t rwlock; + int nr_systemwide; + struct list_head perf_events; }; -struct ehci_ci_priv { - struct regulator *reg_vbus; - bool enabled; +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 ehci_caps; - -struct ehci_regs; - -struct ehci_dbg_port; - -struct ehci_qh; - -union ehci_shadow; +struct btf_member { + __u32 name_off; + __u32 type; + __u32 offset; +}; -struct ehci_itd; +struct bucket; -struct ehci_sitd; +struct htab_elem; -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 bpf_htab { + struct bpf_map map; + struct bpf_mem_alloc ma; + struct bpf_mem_alloc pcpu_ma; + struct bucket *buckets; + void *elems; + 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 ehci_caps { - u32 hc_capbase; - u32 hcs_params; - u32 hcc_params; - u8 portroute[8]; +struct bucket { + struct hlist_nulls_head head; + raw_spinlock_t raw_lock; }; -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; +struct htab_elem { union { - u32 port_status[15]; + struct hlist_nulls_node hash_node; struct { - u32 reserved3[9]; - u32 usbmode; + void *padding; + union { + struct pcpu_freelist_node fnode; + struct htab_elem *batch_flink; + }; }; }; union { - struct { - u32 reserved4; - u32 hostpc[15]; - }; - u32 brcm_insnreg[4]; + void *ptr_to_pptr; + struct bpf_lru_node lru_node; }; - u32 reserved5[2]; - u32 usbmode_ex; + u32 hash; + long: 0; + char key[0]; }; -struct ehci_dbg_port { - u32 control; - u32 pids; - u32 data03; - u32 data47; - u32 address; +struct __una_u32 { + u32 x; }; -struct ehci_fstn; +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; +}; -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 bpf_iter__bpf_map_elem { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + void *value; + }; }; -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; +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 ehci_qh_hw; +typedef unsigned int zap_flags_t; -struct ehci_qtd; +typedef int rmap_t; -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 ptdesc { + unsigned long __page_flags; + union { + struct callback_head pt_rcu_head; + struct list_head pt_list; + struct { + unsigned long _pt_pad_1; + pgtable_t pmd_huge_pte; + }; + }; + unsigned long __page_mapping; + union { + struct mm_struct *pt_mm; + atomic_t pt_frag_refcount; + }; + union { + unsigned long _pt_pad_2; + spinlock_t ptl; + }; + unsigned int __page_type; + atomic_t _refcount; + unsigned long pt_memcg_data; }; -struct ehci_qh_hw { - __le32 hw_next; - __le32 hw_info1; - __le32 hw_info2; - __le32 hw_current; - __le32 hw_qtd_next; - __le32 hw_alt_next; - __le32 hw_token; - __le32 hw_buf[5]; - __le32 hw_buf_hi[5]; - long: 64; - long: 64; - long: 64; +typedef u64 p4dval_t; + +struct mmu_gather_batch { + struct mmu_gather_batch *next; + unsigned int nr; + unsigned int max; + struct encoded_page *encoded_pages[0]; }; -struct ehci_iso_stream; +struct mmu_table_batch; -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 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 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 mmu_table_batch { + struct callback_head rcu; + unsigned int nr; + void *tables[0]; }; -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; -}; +typedef unsigned long pte_marker; -struct ehci_fstn { - __le32 hw_next; - __le32 hw_prev; - dma_addr_t fstn_dma; - union ehci_shadow fstn_next; - long: 64; +struct zap_details { + struct folio *single_folio; + bool even_cows; + zap_flags_t zap_flags; }; -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; -}; +typedef struct { + u64 val; +} pfn_t; -struct ci_hdrc_dma_aligned_buffer { - void *kmalloc_ptr; - void *old_xfer_buffer; - u8 data[0]; -}; +typedef unsigned int pgtbl_mod_mask; -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 copy_subpage_arg { + struct page *dst; + struct page *src; + struct vm_area_struct *vma; }; -struct cytp_contact { - int x; - int y; - int z; +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, }; -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 f_owner_ex { + int type; + __kernel_pid_t pid; }; -struct input_mt_pos { - s16 x; - s16 y; +struct flock { + short l_type; + short l_whence; + __kernel_off_t l_start; + __kernel_off_t l_len; + __kernel_pid_t l_pid; }; -struct i2c_mux_core { - struct i2c_adapter *parent; - struct device *dev; - unsigned int mux_locked: 1; - unsigned int arbitrator: 1; - unsigned int gate: 1; - void *priv; - int (*select)(struct i2c_mux_core *, u32); - int (*deselect)(struct i2c_mux_core *, u32); - int num_adapters; - int max_adapters; - struct i2c_adapter *adapter[0]; -}; +typedef s64 compat_loff_t; -struct i2c_mux_priv { - struct i2c_adapter adap; - struct i2c_algorithm algo; - struct i2c_mux_core *muxc; - u32 chan_id; +struct compat_flock64 { + short l_type; + short l_whence; + compat_loff_t l_start; + compat_loff_t l_len; + compat_pid_t l_pid; }; -struct stm32_iwdg_data { - bool has_pclk; - u32 max_prescaler; -}; +typedef s32 compat_off_t; -struct stm32_iwdg { - struct watchdog_device wdd; - const struct stm32_iwdg_data *data; - void *regs; - struct clk *clk_lsi; - struct clk *clk_pclk; - unsigned int rate; +struct compat_flock { + short l_type; + short l_whence; + compat_off_t l_start; + compat_off_t l_len; + compat_pid_t l_pid; }; -struct mmc_pwrseq_ops; - -struct mmc_pwrseq { - const struct mmc_pwrseq_ops *ops; - struct device *dev; - struct list_head pwrseq_node; - struct module *owner; +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 mmc_pwrseq_ops { - void (*pre_power_on)(struct mmc_host *); - void (*post_power_on)(struct mmc_host *); - void (*power_off)(struct mmc_host *); - void (*reset)(struct mmc_host *); +struct configfs_fragment; + +struct configfs_dirent { + atomic_t s_count; + int s_dependent_count; + struct list_head s_sibling; + struct list_head s_children; + int s_links; + void *s_element; + int s_type; + umode_t s_mode; + struct dentry *s_dentry; + struct iattr *s_iattr; + struct configfs_fragment *s_frag; }; -struct owl_mmc_host { - struct device *dev; - struct reset_control *reset; - void *base; - struct clk *clk; - struct completion sdc_complete; - spinlock_t lock; - int irq; - u32 clock; - bool ddr_50; - enum dma_data_direction dma_dir; - struct dma_chan *dma; - struct dma_async_tx_descriptor *desc; - struct dma_slave_config dma_cfg; - struct completion dma_complete; - struct mmc_host *mmc; - struct mmc_request *mrq; - struct mmc_command *cmd; - struct mmc_data *data; +struct configfs_fragment { + atomic_t frag_count; + struct rw_semaphore frag_sem; + bool frag_dead; }; -struct scmi_clock_info; +typedef struct { + __le32 a_version; +} ext4_acl_header; -struct scmi_clk_proto_ops { - int (*count_get)(const struct scmi_protocol_handle *); - const struct scmi_clock_info * (*info_get)(const struct scmi_protocol_handle *, u32); - int (*rate_get)(const struct scmi_protocol_handle *, u32, u64 *); - int (*rate_set)(const struct scmi_protocol_handle *, u32, u64); - int (*enable)(const struct scmi_protocol_handle *, u32); - int (*disable)(const struct scmi_protocol_handle *, u32); - int (*enable_atomic)(const struct scmi_protocol_handle *, u32); - int (*disable_atomic)(const struct scmi_protocol_handle *, u32); -}; +typedef struct { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; +} ext4_acl_entry; -struct scmi_clock_info { - char name[64]; - unsigned int enable_latency; - bool rate_discrete; - bool rate_changed_notifications; - bool rate_change_requested_notifications; +struct squashfs_inode_info { + u64 start; + int offset; + u64 xattr; + unsigned int xattr_size; + int xattr_count; union { struct { - int num_rates; - u64 rates[16]; - } list; + u64 fragment_block; + int fragment_size; + int fragment_offset; + u64 block_list_start; + }; struct { - u64 min_rate; - u64 max_rate; - u64 step_size; - } range; + u64 dir_idx_start; + int dir_idx_offset; + int dir_idx_cnt; + int parent; + }; }; + struct inode vfs_inode; }; -enum scmi_clock_protocol_cmd { - CLOCK_ATTRIBUTES = 3, - CLOCK_DESCRIBE_RATES = 4, - CLOCK_RATE_SET = 5, - CLOCK_RATE_GET = 6, - CLOCK_CONFIG_SET = 7, - CLOCK_NAME_GET = 8, - CLOCK_RATE_NOTIFY = 9, - CLOCK_RATE_CHANGE_REQUESTED_NOTIFY = 10, -}; - -struct clock_info { - u32 version; - int num_clocks; - int max_async_req; - atomic_t cur_async_req; - struct scmi_clock_info *clk; -}; - -struct scmi_msg_resp_clock_protocol_attributes { - __le16 num_clocks; - u8 max_async_req; - u8 reserved; +struct squashfs_dir_index { + __le32 index; + __le32 start_block; + __le32 size; + unsigned char name[0]; }; -struct scmi_msg_resp_clock_attributes { - __le32 attributes; - u8 name[16]; - __le32 clock_enable_latency; +struct squashfs_dir_header { + __le32 count; + __le32 start_block; + __le32 inode_number; }; -struct scmi_clk_ipriv { - struct device *dev; - u32 clk_id; - struct scmi_clock_info *clk; +struct squashfs_dir_entry { + __le16 offset; + __le16 inode_number; + __le16 type; + __le16 size; + char name[0]; }; -struct scmi_clock_set_config { - __le32 id; - __le32 attributes; +enum ramfs_param { + Opt_mode = 0, }; -struct scmi_msg_clock_rate_notify { - __le32 clk_id; - __le32 notify_enable; +struct ramfs_mount_opts { + umode_t mode; }; -struct scmi_msg_clock_describe_rates { - __le32 id; - __le32 rate_index; +struct ramfs_fs_info { + struct ramfs_mount_opts mount_opts; }; -struct scmi_msg_resp_clock_describe_rates { - __le32 num_rates_flags; - struct { - __le32 value_low; - __le32 value_high; - } rate[0]; +struct nfs_io_completion { + void (*complete)(void *); + void *data; + struct kref refcount; }; -struct scmi_clock_set_rate { - __le32 flags; - __le32 id; - __le32 value_low; - __le32 value_high; +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, }; -struct scmi_msg_resp_set_rate_complete { - __le32 id; - __le32 rate_low; - __le32 rate_high; +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, }; -struct scmi_clock_rate_notify_payld { - __le32 agent_id; - __le32 clock_id; - __le32 rate_low; - __le32 rate_high; +enum wb_stat_item { + WB_RECLAIMABLE = 0, + WB_WRITEBACK = 1, + WB_DIRTIED = 2, + WB_WRITTEN = 3, + NR_WB_STAT_ITEMS = 4, }; -struct scmi_clock_rate_notif_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int clock_id; - unsigned long long rate; +struct nlm_lockowner { + struct list_head list; + refcount_t count; + struct nlm_host *host; + fl_owner_t owner; + uint32_t pid; }; -enum tegra_ivc_state { - TEGRA_IVC_STATE_ESTABLISHED = 0, - TEGRA_IVC_STATE_SYNC = 1, - TEGRA_IVC_STATE_ACK = 2, -}; +struct nsm_handle; -struct tegra_ivc { - struct device *peer; - struct { - struct iosys_map map; - unsigned int position; - dma_addr_t phys; - } rx; - struct { - struct iosys_map map; - unsigned int position; - dma_addr_t phys; - } tx; - void (*notify)(struct tegra_ivc *, void *); - void *notify_data; - unsigned int num_frames; - size_t frame_size; +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 tegra_ivc_header { - union { - struct { - u32 count; - u32 state; - }; - u8 pad[64]; - } tx; - union { - u32 count; - u8 pad[64]; - } rx; +struct nsm_private { + unsigned char data[16]; }; -struct ti_msgmgr_valid_queue_desc; - -struct ti_msgmgr_desc { - u8 queue_count; - u8 max_message_size; - u8 max_messages; - u8 data_first_reg; - u8 data_last_reg; - u32 status_cnt_mask; - u32 status_err_mask; - bool tx_polled; - int tx_poll_timeout_ms; - const struct ti_msgmgr_valid_queue_desc *valid_queues; - const char *data_region_name; - const char *status_region_name; - const char *ctrl_region_name; - int num_valid_queues; - bool is_sproxy; +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 ti_msgmgr_valid_queue_desc { - u8 queue_id; - u8 proxy_id; - bool is_tx; +struct nlmsvc_binding { + __be32 (*fopen)(struct svc_rqst *, struct nfs_fh *, struct file **, int); + void (*fclose)(struct file *); }; -struct ti_queue_inst; - -struct ti_msgmgr_inst { - struct device *dev; - const struct ti_msgmgr_desc *desc; - void *queue_proxy_region; - void *queue_state_debug_region; - void *queue_ctrl_region; - u8 num_valid_queues; - struct ti_queue_inst *qinsts; - struct mbox_controller mbox; - struct mbox_chan *chans; +enum { + SP_TASK_PENDING = 0, + SP_NEED_VICTIM = 1, + SP_VICTIM_REMAINS = 2, }; -struct ti_queue_inst { - char name[30]; - u8 queue_id; - u8 proxy_id; - int irq; - bool is_tx; - void *queue_buff_start; - void *queue_buff_end; - void *queue_state; - void *queue_ctrl; - struct mbox_chan *chan; - u32 *rx_buff; - bool polled_rx_mode; +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 ti_msgmgr_message { - size_t len; - u8 *buf; - struct mbox_chan *chan_rx; - int timeout_rx_ms; +struct lock_manager { + struct list_head list; + bool block_opens; }; -struct snvs_lpgpr_cfg { - int offset; - int offset_hplr; - int offset_lplr; - int size; +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; }; -struct device_d; +struct match_token { + int token; + const char *pattern; +}; -struct snvs_lpgpr_priv { - struct device_d *dev; - struct regmap *regmap; - struct nvmem_config cfg; - const struct snvs_lpgpr_cfg *dcfg; +enum p9_trans_status { + Connected = 0, + BeginDisconnect = 1, + Disconnected = 2, + Hung = 3, }; -struct imx_icc_node_adj_desc; +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, + V9FS_NO_XATTR = 64, + V9FS_IGNORE_QV = 128, + V9FS_DIRECT_IO = 256, + V9FS_SYNC = 512, +}; -struct imx_icc_node_desc { - const char *name; - u16 id; - u16 links[4]; - u16 num_links; - const struct imx_icc_node_adj_desc *adj; +enum p9_cache_bits { + CACHE_NONE = 0, + CACHE_FILE = 1, + CACHE_META = 2, + CACHE_WRITEBACK = 4, + CACHE_LOOSE = 8, + CACHE_FSCACHE = 128, }; -struct imx_icc_node_adj_desc { - unsigned int bw_mul; - unsigned int bw_div; - const char *phandle_name; - bool main_noc; +enum { + Opt_debug___2 = 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_noxattr = 9, + Opt_directio = 10, + Opt_ignoreqv = 11, + Opt_access = 12, + Opt_posixacl = 13, + Opt_locktimeout = 14, + Opt_err___2 = 15, }; -struct imx_icc_provider { - void *noc_base; - struct icc_provider provider; +enum p9_cache_shortcuts { + CACHE_SC_NONE = 0, + CACHE_SC_READAHEAD = 1, + CACHE_SC_MMAP = 5, + CACHE_SC_LOOSE = 15, + CACHE_SC_FSCACHE = 143, }; -struct imx_icc_noc_setting { - u32 reg; - u32 prio_level; - u32 mode; - u32 ext_control; +struct netfs_inode { + struct inode inode; + const struct netfs_request_ops *ops; + loff_t remote_i_size; }; -struct icc_onecell_data { - unsigned int num_nodes; - struct icc_node *nodes[0]; +struct p9_qid { + u8 type; + u32 version; + u64 path; }; -struct imx_icc_node { - const struct imx_icc_node_desc *desc; - const struct imx_icc_noc_setting *setting; - struct device *qos_dev; - struct dev_pm_qos_request qos_req; - struct imx_icc_provider *imx_provider; +struct v9fs_inode { + struct netfs_inode netfs; + struct p9_qid qid; + unsigned int cache_validity; + struct mutex v_mutex; }; -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, +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]; }; -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, +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 snd_timer_id { - int dev_class; - int dev_sclass; - int card; - int device; - int subdevice; +struct p9_fcall { + u32 size; + u8 id; + u16 tag; + size_t offset; + size_t capacity; + struct kmem_cache *cache; + u8 *sdata; + bool zc; }; -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 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; }; -struct wol_reply_data { - struct ethnl_reply_data base; - struct ethtool_wolinfo wol; - bool show_sopass; +struct v9fs_session_info { + unsigned int 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; }; -typedef const char (* const ethnl_string_array_t)[32]; +typedef struct { + char *from; + char *to; +} substring_t; -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 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; }; -enum ip_defrag_users { - IP_DEFRAG_LOCAL_DELIVER = 0, - IP_DEFRAG_CALL_RA_CHAIN = 1, - IP_DEFRAG_CONNTRACK_IN = 2, - __IP_DEFRAG_CONNTRACK_IN_END = 65537, - IP_DEFRAG_CONNTRACK_OUT = 65538, - __IP_DEFRAG_CONNTRACK_OUT_END = 131073, - IP_DEFRAG_CONNTRACK_BRIDGE_IN = 131074, - __IP_DEFRAG_CONNTRACK_BRIDGE_IN = 196609, - IP_DEFRAG_VS_IN = 196610, - IP_DEFRAG_VS_OUT = 196611, - IP_DEFRAG_VS_FWD = 196612, - IP_DEFRAG_AF_PACKET = 196613, - IP_DEFRAG_MACVLAN = 196614, +struct keyctl_pkey_params { + __s32 key_id; + __u32 in_len; + union { + __u32 out_len; + __u32 in2_len; + }; + __u32 __spare[7]; }; -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 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 scm_stat { - atomic_t nr_fds; +enum lsm_order { + LSM_ORDER_FIRST = -1, + LSM_ORDER_MUTABLE = 0, + LSM_ORDER_LAST = 1, }; -struct unix_address; +struct lsm_blob_sizes; -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; - struct socket_wq peer_wq; - wait_queue_entry_t peer_wake; - struct scm_stat scm_stat; - struct sk_buff *oob_skb; - long: 64; +struct lsm_info { + const char *name; + enum lsm_order order; + unsigned long flags; + int *enabled; + int (*init)(); + struct lsm_blob_sizes *blobs; }; -struct unix_address { - refcount_t refcnt; - int len; - struct sockaddr_un name[0]; +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; + int lbs_xattr_count; }; -struct scm_fp_list; - -struct unix_skb_parms { - struct pid *pid; - kuid_t uid; - kgid_t gid; - struct scm_fp_list *fp; - u32 consumed; +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 scm_fp_list { - short count; - short max; - struct user_struct *user; - struct file *fp[253]; +struct __key_reference_with_attributes; + +typedef struct __key_reference_with_attributes *key_ref_t; + +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, }; -struct scm_cookie { - struct pid *pid; - struct scm_fp_list *fp; - struct scm_creds creds; +struct timezone; + +struct xattr; + +struct sembuf; + +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 *, const struct file *); + int (*ptrace_access_check)(struct task_struct *, unsigned int); + int (*ptrace_traceme)(struct task_struct *); + int (*capget)(const 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, const 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 *, const struct file *); + int (*bprm_check_security)(struct linux_binprm *); + void (*bprm_committing_creds)(const struct linux_binprm *); + void (*bprm_committed_creds)(const struct linux_binprm *); + int (*fs_context_submount)(struct fs_context *, struct super_block *); + 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)(const 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 *, struct xattr *, int *); + 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 (*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 *); }; -typedef unsigned int OM_uint32; +struct security_hook_list { + struct hlist_node list; + struct hlist_head *head; + union security_list_options hook; + const char *lsm; +}; -struct ahash_request; +struct timezone { + int tz_minuteswest; + int tz_dsttime; +}; -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 statesize; - unsigned int reqsize; - struct crypto_tfm base; +struct xattr { + const char *name; + void *value; + size_t value_len; }; -struct ahash_request { - struct crypto_async_request base; - unsigned int nbytes; - struct scatterlist *src; - u8 *result; - void *priv; - void *__ctx[0]; +struct sembuf { + unsigned short sem_num; + short sem_op; + short sem_flg; }; -struct gss_krb5_enctype; +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, +}; -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 vfs_cap_data { + __le32 magic_etc; + struct { + __le32 permitted; + __le32 inheritable; + } data[2]; }; -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 vfs_ns_cap_data { + __le32 magic_etc; + struct { + __le32 permitted; + __le32 inheritable; + } data[2]; + __le32 rootid; }; -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; +enum kernel_pkey_operation { + kernel_pkey_encrypt = 0, + kernel_pkey_decrypt = 1, + kernel_pkey_sign = 2, + kernel_pkey_verify = 3, }; -struct decryptor_desc { - u8 iv[16]; - struct skcipher_request *req; - struct scatterlist frags[4]; - int fragno; - int fraglen; +enum asymmetric_payload_bits { + asym_crypto = 0, + asym_subtype = 1, + asym_key_ids = 2, + asym_auth = 3, }; -struct fdt_errtabent { - const char *str; +struct public_key_signature; + +struct asymmetric_key_subtype { + struct module *owner; + const char *name; + unsigned short name_len; + void (*describe)(const struct key *, struct seq_file *); + void (*destroy)(void *, void *); + int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *); + int (*eds_op)(struct kernel_pkey_params *, const void *, void *); + int (*verify_signature)(const struct key *, const struct public_key_signature *); }; -struct fprop_local_single { - unsigned long events; - unsigned int period; - raw_spinlock_t lock; +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 vgic_state_iter { - int nr_cpus; - int nr_spis; - int nr_lpis; - int dist_id; - int vcpu_id; - int intid; - int lpi_idx; - u32 *lpi_array; +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 sha1_state { - u32 state[5]; - u64 count; - u8 buffer[64]; +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 sha1_ce_state { - struct sha1_state sst; - u32 finalize; +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; }; -typedef void sha1_block_fn(struct sha1_state *, const u8 *, int); +struct asymmetric_key_id; -struct param_attribute { - struct module_attribute mattr; - const struct kernel_param *param; +struct public_key_signature { + struct asymmetric_key_id *auth_ids[3]; + u8 *s; + u8 *digest; + u32 s_size; + u32 digest_size; + const char *pkey_algo; + const char *hash_algo; + const char *encoding; }; -struct module_param_attrs { - unsigned int num; - struct attribute_group grp; - struct param_attribute attrs[0]; +struct asymmetric_key_id { + unsigned short len; + unsigned char data[0]; }; enum { - KERNEL_PARAM_OPS_FL_NOARG = 1, + 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 { - KERNEL_PARAM_FL_UNSAFE = 1, - KERNEL_PARAM_FL_HWPARAM = 2, + BLK_MQ_NO_TAG = 4294967295, + BLK_MQ_TAG_MIN = 1, + BLK_MQ_TAG_MAX = 4294967294, }; -struct kmalloced_param { - struct list_head list; - char val[0]; +enum hctx_type { + HCTX_TYPE_DEFAULT = 0, + HCTX_TYPE_READ = 1, + HCTX_TYPE_POLL = 2, + HCTX_MAX_TYPES = 3, }; -typedef void (*btf_trace_cgroup_setup_root)(void *, struct cgroup_root *); +enum prep_dispatch { + PREP_DISPATCH_OK = 0, + PREP_DISPATCH_NO_TAG = 1, + PREP_DISPATCH_NO_BUDGET = 2, +}; -typedef void (*btf_trace_cgroup_destroy_root)(void *, struct cgroup_root *); +struct blk_mq_qe_pair { + struct list_head node; + struct request_queue *q; + struct elevator_type *type; +}; -typedef void (*btf_trace_cgroup_remount)(void *, struct cgroup_root *); +typedef bool busy_tag_iter_fn(struct request *, void *); -typedef void (*btf_trace_cgroup_mkdir)(void *, struct cgroup *, const char *); +typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); -typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *); +struct flush_busy_ctx_data { + struct blk_mq_hw_ctx *hctx; + struct list_head *list; +}; -typedef void (*btf_trace_cgroup_release)(void *, struct cgroup *, const char *); +struct dispatch_rq_data { + struct blk_mq_hw_ctx *hctx; + struct request *rq; +}; -typedef void (*btf_trace_cgroup_rename)(void *, struct cgroup *, const char *); +struct blk_expired_data { + bool has_timedout_rq; + unsigned long next; + unsigned long timeout_start; +}; -typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *); +struct rq_iter_data { + struct blk_mq_hw_ctx *hctx; + bool has_rq; +}; -typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *); +struct mq_inflight { + struct block_device *part; + unsigned int inflight[2]; +}; -typedef void (*btf_trace_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool); +struct blk_rq_wait { + struct completion done; + blk_status_t ret; +}; -typedef void (*btf_trace_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool); +typedef unsigned long mpi_limb_t; -typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const char *, int); +typedef mpi_limb_t UWtype; -typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int); +typedef mpi_limb_t *mpi_ptr_t; -struct static_key_true { - struct static_key key; -}; +typedef int mpi_size_t; -struct cgroup_fs_context { - struct kernfs_fs_context kfc; - struct cgroup_root *root; - struct cgroup_namespace *ns; +typedef unsigned int UHWtype; + +struct gcry_mpi; + +typedef struct gcry_mpi *MPI; + +struct gcry_mpi { + int alloced; + int nlimbs; + int nbits; + int sign; unsigned int flags; - bool cpuset_clone_children; - bool none; - bool all_ss; - u16 subsys_mask; - char *name; - char *release_agent; + mpi_limb_t *d; }; -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, +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 { - 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 xxh32_state { + uint32_t total_len_32; + uint32_t large_len; + uint32_t v1; + uint32_t v2; + uint32_t v3; + uint32_t v4; + uint32_t mem32[4]; + uint32_t memsize; }; -enum cgroup2_param { - Opt_nsdelegate = 0, - Opt_favordynmods = 1, - Opt_memory_localevents = 2, - Opt_memory_recursiveprot = 3, - nr__cgroup2_params = 4, +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; }; -enum cgroup_opt_features { - OPT_FEATURE_COUNT = 0, +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; }; -struct cgrp_cset_link { - struct cgroup *cgrp; - struct css_set *cset; - struct list_head cset_link; - struct list_head cgrp_link; +typedef unsigned short ush; + +struct ct_data_s { + union { + ush freq; + ush code; + } fc; + union { + ush dad; + ush len; + } dl; }; -struct trace_event_raw_cgroup_root { - struct trace_entry ent; - int root; - u16 ss_mask; - u32 __data_loc_name; - char __data[0]; +typedef struct ct_data_s ct_data; + +typedef unsigned char uch; + +struct static_tree_desc_s { + const ct_data *static_tree; + const int *extra_bits; + int extra_base; + int elems; + int max_length; }; -struct trace_event_raw_cgroup { - struct trace_entry ent; - int root; +typedef struct static_tree_desc_s static_tree_desc; + +typedef unsigned long ulg; + +struct tree_desc_s { + ct_data *dyn_tree; + int max_code; + static_tree_desc *stat_desc; +}; + +typedef struct tree_desc_s tree_desc; + +typedef unsigned int uInt; + +typedef ush Pos; + +typedef unsigned int IPos; + +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; - u64 id; - u32 __data_loc_path; - char __data[0]; + 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 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]; +typedef struct deflate_state deflate_state; + +struct cpu_rmap { + struct kref refcount; + u16 size; + void **obj; + struct { + u16 index; + u16 dist; + } near[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 irq_glue { + struct irq_affinity_notify notify; + struct cpu_rmap *rmap; + u16 index; }; -struct trace_event_data_offsets_cgroup_root { - u32 name; +struct odmi_data { + struct resource res; + void *base; + unsigned int spi_base; }; -struct trace_event_data_offsets_cgroup { - u32 path; +struct combiner_reg { + void *addr; + unsigned long enabled; }; -struct trace_event_data_offsets_cgroup_migrate { - u32 dst_path; - u32 comm; +struct combiner { + struct irq_domain *domain; + int parent_irq; + u32 nirqs; + u32 nregs; + struct combiner_reg regs[0]; }; -struct trace_event_data_offsets_cgroup_event { - u32 path; +struct get_registers_context { + struct device *dev; + struct combiner *combiner; + int err; }; -struct cgroup_mgctx { - struct list_head preloaded_src_csets; - struct list_head preloaded_dst_csets; - struct cgroup_taskset tset; - u16 ss_mask; +struct uniphier_system_bus_bank { + u32 base; + u32 end; }; -struct kernel_clone_args { - u64 flags; - int __attribute__((btf_type_tag("user"))) *pidfd; - int __attribute__((btf_type_tag("user"))) *child_tid; - int __attribute__((btf_type_tag("user"))) *parent_tid; - const char *name; - int exit_signal; - u32 kthread: 1; - u32 io_thread: 1; - u32 user_worker: 1; - u32 no_files: 1; - unsigned long stack; - unsigned long stack_size; - unsigned long tls; - pid_t *set_tid; - size_t set_tid_size; - int cgroup; - int idle; - int (*fn)(void *); - void *fn_arg; - struct cgroup *cgrp; - struct css_set *cset; +struct uniphier_system_bus_priv { + struct device *dev; + void *membase; + struct uniphier_system_bus_bank bank[8]; }; -struct cgroup_pidlist; +enum imx8_pcie_phy_type { + IMX8MM = 0, + IMX8MP = 1, +}; -struct cgroup_file_ctx { - struct cgroup_namespace *ns; - struct { - void *trigger; - } psi; - struct { - bool started; - struct css_task_iter iter; - } procs; - struct { - struct cgroup_pidlist *pidlist; - } procs1; +struct imx8_pcie_phy_drvdata { + const char *gpr; + enum imx8_pcie_phy_type variant; }; -struct bpf_local_storage_data { - struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap; - u8 data[0]; +struct imx8_pcie_phy { + void *base; + struct clk *clk; + struct phy *phy; + struct regmap *iomuxc_gpr; + struct reset_control *perst; + struct reset_control *reset; + u32 refclk_pad_mode; + u32 tx_deemph_gen1; + u32 tx_deemph_gen2; + bool clkreq_unused; + const struct imx8_pcie_phy_drvdata *drvdata; }; -struct bpf_mem_caches; +struct tegra_xusb_lane_soc; -struct bpf_mem_cache; +struct tegra_xusb_pad; -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; +struct tegra_xusb_lane { + const struct tegra_xusb_lane_soc *soc; + struct tegra_xusb_pad *pad; + struct device_node *np; + struct list_head list; + unsigned int function; + unsigned int index; }; -struct bpf_local_storage_map_bucket; +struct tegra_xusb_lane_soc { + const char *name; + unsigned int offset; + unsigned int shift; + unsigned int mask; + const char * const *funcs; + unsigned int num_funcs; + struct { + unsigned int misc_ctl2; + } regs; +}; -struct bpf_local_storage_map { - struct bpf_map map; - struct bpf_local_storage_map_bucket *buckets; - u32 bucket_log; - u16 elem_size; - u16 cache_idx; - struct bpf_mem_alloc selem_ma; - struct bpf_mem_alloc storage_ma; - bool bpf_ma; - long: 64; +struct tegra_xusb_pad_soc; + +struct tegra_xusb_padctl; + +struct tegra_xusb_lane_ops; + +struct tegra_xusb_pad { + const struct tegra_xusb_pad_soc *soc; + struct tegra_xusb_padctl *padctl; + struct phy_provider *provider; + struct phy **lanes; + struct device dev; + const struct tegra_xusb_lane_ops *ops; + struct list_head list; }; -struct bpf_local_storage_map_bucket { - struct hlist_head list; - raw_spinlock_t lock; +struct tegra_xusb_pad_ops; + +struct tegra_xusb_pad_soc { + const char *name; + const struct tegra_xusb_lane_soc *lanes; + unsigned int num_lanes; + const struct tegra_xusb_pad_ops *ops; }; -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 tegra_xusb_pad_ops { + struct tegra_xusb_pad * (*probe)(struct tegra_xusb_padctl *, const struct tegra_xusb_pad_soc *, struct device_node *); + void (*remove)(struct tegra_xusb_pad *); }; -struct bpf_mem_caches { - struct bpf_mem_cache cache[11]; +struct tegra_xusb_padctl_soc; + +struct tegra_xusb_padctl { + struct device *dev; + void *regs; + struct mutex lock; + struct reset_control *rst; + const struct tegra_xusb_padctl_soc *soc; + struct tegra_xusb_pad *pcie; + struct tegra_xusb_pad *sata; + struct tegra_xusb_pad *ulpi; + struct tegra_xusb_pad *usb2; + struct tegra_xusb_pad *hsic; + struct list_head ports; + struct list_head lanes; + struct list_head pads; + unsigned int enable; + struct clk *clk; + struct regulator_bulk_data *supplies; }; -struct bpf_local_storage_cache { - spinlock_t idx_lock; - u64 idx_usage_counts[16]; +struct tegra_xusb_port_ops; + +struct tegra_xusb_padctl_ops; + +struct tegra_xusb_padctl_soc { + const struct tegra_xusb_pad_soc * const *pads; + unsigned int num_pads; + struct { + struct { + const struct tegra_xusb_port_ops *ops; + unsigned int count; + } usb2; + struct { + const struct tegra_xusb_port_ops *ops; + unsigned int count; + } ulpi; + struct { + const struct tegra_xusb_port_ops *ops; + unsigned int count; + } hsic; + struct { + const struct tegra_xusb_port_ops *ops; + unsigned int count; + } usb3; + } ports; + const struct tegra_xusb_padctl_ops *ops; + const char * const *supply_names; + unsigned int num_supplies; + bool supports_gen2; + bool need_fake_usb3_port; + bool poll_trk_completed; + bool trk_hw_mode; + bool supports_lp_cfg_en; }; -enum { - BPF_LOCAL_STORAGE_GET_F_CREATE = 1, - BPF_SK_STORAGE_GET_F_CREATE = 1, +struct tegra_xusb_port; + +struct tegra_xusb_port_ops { + void (*release)(struct tegra_xusb_port *); + void (*remove)(struct tegra_xusb_port *); + int (*enable)(struct tegra_xusb_port *); + void (*disable)(struct tegra_xusb_port *); + struct tegra_xusb_lane * (*map)(struct tegra_xusb_port *); }; -typedef u64 (*btf_bpf_cgrp_storage_get)(struct bpf_map *, struct cgroup *, void *, u64, gfp_t); +struct tegra_xusb_port { + struct tegra_xusb_padctl *padctl; + struct tegra_xusb_lane *lane; + unsigned int index; + struct list_head list; + struct device dev; + struct usb_role_switch *usb_role_sw; + struct work_struct usb_phy_work; + struct usb_phy usb_phy; + const struct tegra_xusb_port_ops *ops; +}; -typedef u64 (*btf_bpf_cgrp_storage_delete)(struct bpf_map *, struct cgroup *); +struct tegra_xusb_padctl_ops { + struct tegra_xusb_padctl * (*probe)(struct device *, const struct tegra_xusb_padctl_soc *); + void (*remove)(struct tegra_xusb_padctl *); + int (*suspend_noirq)(struct tegra_xusb_padctl *); + int (*resume_noirq)(struct tegra_xusb_padctl *); + int (*usb3_save_context)(struct tegra_xusb_padctl *, unsigned int); + int (*hsic_set_idle)(struct tegra_xusb_padctl *, unsigned int, bool); + int (*usb3_set_lfps_detect)(struct tegra_xusb_padctl *, unsigned int, bool); + int (*vbus_override)(struct tegra_xusb_padctl *, bool); + int (*utmi_port_reset)(struct phy *); + void (*utmi_pad_power_on)(struct phy *); + void (*utmi_pad_power_down)(struct phy *); +}; -struct bpf_local_storage_elem { - struct hlist_node map_node; - struct hlist_node snode; - struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *local_storage; - struct callback_head rcu; - long: 64; - struct bpf_local_storage_data sdata; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct tegra_xusb_lane_ops { + struct tegra_xusb_lane * (*probe)(struct tegra_xusb_pad *, struct device_node *, unsigned int); + void (*remove)(struct tegra_xusb_lane *); + void (*iddq_enable)(struct tegra_xusb_lane *); + void (*iddq_disable)(struct tegra_xusb_lane *); + int (*enable_phy_sleepwalk)(struct tegra_xusb_lane *, enum usb_device_speed); + int (*disable_phy_sleepwalk)(struct tegra_xusb_lane *); + int (*enable_phy_wake)(struct tegra_xusb_lane *); + int (*disable_phy_wake)(struct tegra_xusb_lane *); + bool (*remote_wake_detected)(struct tegra_xusb_lane *); }; -struct list_lru_memcg { - struct callback_head rcu; - struct list_lru_one node[0]; +struct tegra_xusb_usb2_port { + struct tegra_xusb_port base; + struct regulator *supply; + enum usb_dr_mode mode; + bool internal; + int usb3_port_fake; }; -struct list_lru_memcg_table { - struct list_lru_memcg *mlru; - struct mem_cgroup *memcg; +struct tegra_xusb_usb3_port { + struct tegra_xusb_port base; + bool context_saved; + unsigned int port; + bool internal; + bool disable_gen2; + u32 tap1; + u32 amp; + u32 ctle_z; + u32 ctle_g; }; -enum page_walk_lock { - PGWALK_RDLOCK = 0, - PGWALK_WRLOCK = 1, - PGWALK_WRLOCK_VERIFY = 2, +struct tegra_xusb_ulpi_port { + struct tegra_xusb_port base; + struct regulator *supply; + bool internal; }; -struct mm_walk; +struct tegra_xusb_hsic_port { + struct tegra_xusb_port base; +}; -struct mm_walk_ops { - int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); - int (*p4d_entry)(p4d_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pte_hole)(unsigned long, unsigned long, int, struct mm_walk *); - int (*hugetlb_entry)(pte_t *, unsigned long, unsigned long, unsigned long, struct mm_walk *); - int (*test_walk)(unsigned long, unsigned long, struct mm_walk *); - int (*pre_vma)(unsigned long, unsigned long, struct mm_walk *); - void (*post_vma)(struct mm_walk *); - enum page_walk_lock walk_lock; +struct tegra_xusb_lane_map { + unsigned int port; + const char *type; + unsigned int index; + const char *func; }; -enum page_walk_action { - ACTION_SUBTREE = 0, - ACTION_CONTINUE = 1, - ACTION_AGAIN = 2, +enum { + PINCTRL_PIN_REG_MODE = 0, + PINCTRL_PIN_REG_DIR = 1, + PINCTRL_PIN_REG_DI = 2, + PINCTRL_PIN_REG_DO = 3, + PINCTRL_PIN_REG_SR = 4, + PINCTRL_PIN_REG_SMT = 5, + PINCTRL_PIN_REG_PD = 6, + PINCTRL_PIN_REG_PU = 7, + PINCTRL_PIN_REG_E4 = 8, + PINCTRL_PIN_REG_E8 = 9, + PINCTRL_PIN_REG_TDSEL = 10, + PINCTRL_PIN_REG_RDSEL = 11, + PINCTRL_PIN_REG_DRV = 12, + PINCTRL_PIN_REG_PUPD = 13, + PINCTRL_PIN_REG_R0 = 14, + PINCTRL_PIN_REG_R1 = 15, + PINCTRL_PIN_REG_IES = 16, + PINCTRL_PIN_REG_PULLEN = 17, + PINCTRL_PIN_REG_PULLSEL = 18, + PINCTRL_PIN_REG_DRV_EN = 19, + PINCTRL_PIN_REG_DRV_E0 = 20, + PINCTRL_PIN_REG_DRV_E1 = 21, + PINCTRL_PIN_REG_DRV_ADV = 22, + PINCTRL_PIN_REG_RSEL = 23, + PINCTRL_PIN_REG_MAX = 24, }; -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 pmic_mpp_state { + struct device *dev; + struct regmap *map; + struct pinctrl_dev *ctrl; + struct gpio_chip chip; }; -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 pmic_mpp_pad { + u16 base; + bool is_enabled; + bool out_value; + bool output_enabled; + bool input_enabled; + bool paired; + bool has_pullup; + unsigned int num_sources; + unsigned int power_source; + unsigned int amux_input; + unsigned int aout_level; + unsigned int pullup; + unsigned int function; + unsigned int drive_strength; + unsigned int dtest; }; -struct madvise_walk_private { - struct mmu_gather *tlb; - bool pageout; +enum sunxi_desc_bias_voltage { + BIAS_VOLTAGE_NONE = 0, + BIAS_VOLTAGE_GRP_CONFIG = 1, + BIAS_VOLTAGE_PIO_POW_MODE_SEL = 2, + BIAS_VOLTAGE_PIO_POW_MODE_CTL = 3, }; -typedef unsigned int zap_flags_t; +struct sunxi_desc_pin; -struct zap_details { - struct folio *single_folio; - bool even_cows; - zap_flags_t zap_flags; +struct sunxi_pinctrl_desc { + const struct sunxi_desc_pin *pins; + int npins; + unsigned int pin_base; + unsigned int irq_banks; + const unsigned int *irq_bank_map; + bool irq_read_needs_mux; + bool disable_strict_mode; + enum sunxi_desc_bias_voltage io_bias_cfg_variant; }; -struct fileattr { - u32 flags; - u32 fsx_xflags; - u32 fsx_extsize; - u32 fsx_nextents; - u32 fsx_projid; - u32 fsx_cowextsize; - bool flags_valid: 1; - bool fsx_valid: 1; +struct sunxi_desc_function; + +struct sunxi_desc_pin { + struct pinctrl_pin_desc pin; + unsigned long variant; + struct sunxi_desc_function *functions; }; -struct fsxattr { - __u32 fsx_xflags; - __u32 fsx_extsize; - __u32 fsx_nextents; - __u32 fsx_projid; - __u32 fsx_cowextsize; - unsigned char fsx_pad[8]; +struct sunxi_desc_function { + unsigned long variant; + const char *name; + u8 muxval; + u8 irqbank; + u8 irqnum; }; -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 mpc8xxx_gpio_devtype { + int (*gpio_dir_out)(struct gpio_chip *, unsigned int, int); + int (*gpio_get)(struct gpio_chip *, unsigned int); + int (*irq_set_type)(struct irq_data *, unsigned int); }; -struct file_clone_range { - __s64 src_fd; - __u64 src_offset; - __u64 src_length; - __u64 dest_offset; +struct mpc8xxx_gpio_chip { + struct gpio_chip gc; + void *regs; + raw_spinlock_t lock; + int (*direction_output)(struct gpio_chip *, unsigned int, int); + struct irq_domain *irq; + int irqn; }; -struct file_dedupe_range_info { - __s64 dest_fd; - __u64 dest_offset; - __u64 bytes_deduped; - __s32 status; - __u32 reserved; +enum pci_mmap_api { + PCI_MMAP_SYSFS = 0, + PCI_MMAP_PROCFS = 1, }; -struct file_dedupe_range { - __u64 src_offset; - __u64 src_length; - __u16 dest_count; - __u16 reserved1; - __u32 reserved2; - struct file_dedupe_range_info info[0]; +enum pci_mmap_state { + pci_mmap_io = 0, + pci_mmap_mem = 1, }; -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]; +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, +}; + +enum pci_bar_type { + pci_bar_unknown = 0, + pci_bar_io = 1, + pci_bar_mem32 = 2, + pci_bar_mem64 = 3, }; enum { - BIAS = 2147483648, + 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 pde_opener { - struct list_head lh; - struct file *file; - bool closing; - struct completion *c; +struct resource_entry { + struct list_head node; + struct resource *res; + resource_size_t offset; + struct resource __res; }; -struct sysctl_alias { - const char *kernel_param; - const char *sysctl_param; +struct ls_pcie_drvdata { + const u32 pf_off; + bool pm_support; }; -struct squashfs_stream { - void *stream; - struct mutex mutex; +struct ls_pcie { + struct dw_pcie *pci; + const struct ls_pcie_drvdata *drvdata; + void *pf_base; + bool big_endian; }; -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 acpi_lpat { + int temp; + int raw; }; -struct nlm_block; +struct acpi_lpat_conversion_table { + struct acpi_lpat *lpat; + int lpat_count; +}; -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 acpi_prmt_module_info { + u16 revision; + u16 length; + u8 module_guid[16]; + u16 major_rev; + u16 minor_rev; + u16 handler_info_count; + u32 handler_info_offset; + u64 mmio_list_pointer; +} __attribute__((packed)); + +struct acpi_prmt_handler_info { + u16 revision; + u16 length; + u8 handler_guid[16]; + u64 handler_address; + u64 static_data_buffer_address; + u64 acpi_param_buffer_address; +} __attribute__((packed)); + +struct prm_buffer { + u8 prm_status; + u64 efi_status; + u8 prm_cmd; + guid_t handler_guid; +} __attribute__((packed)); + +struct prm_handler_info { + guid_t guid; + efi_status_t (*handler_addr)(u64, void *); + u64 static_data_buffer_addr; + u64 acpi_param_buffer_addr; + struct list_head handler_list; }; -struct nlm_file; +struct prm_mmio_info; -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 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 nlm_share; +struct prm_mmio_addr_range { + u64 phys_addr; + u64 virt_addr; + u32 length; +} __attribute__((packed)); -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 prm_mmio_info { + u64 mmio_count; + struct prm_mmio_addr_range addr_ranges[0]; }; -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 prm_context_buffer { + char signature[4]; + u16 revision; + u16 reserved; + guid_t identifier; + u64 static_data_buffer; + struct prm_mmio_info *mmio_ranges; }; -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, +typedef u64 acpi_integer; + +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 timezone; +struct acpi_name_info { + char name[4]; + u16 argument_list; + u8 expected_btypes; +} __attribute__((packed)); -struct kern_ipc_perm; +struct acpi_package_info { + u8 type; + u8 object_type1; + u8 count1; + u8 object_type2; + u8 count2; + u16 reserved; +} __attribute__((packed)); -struct msg_msg; +struct acpi_package_info2 { + u8 type; + u8 count; + u8 object_type[4]; + u8 reserved; +}; -struct sembuf; +struct acpi_package_info3 { + u8 type; + u8 count; + u8 object_type[2]; + u8 tail_object_type; + u16 reserved; +} __attribute__((packed)); -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 (*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 timezone { - int tz_minuteswest; - int tz_dsttime; -}; - -typedef int __kernel_key_t; - -typedef __kernel_key_t key_t; +struct acpi_package_info4 { + u8 type; + u8 object_type1; + u8 count1; + u8 sub_object_types; + u8 pkg_count; + u16 reserved; +} __attribute__((packed)); -struct kern_ipc_perm { - spinlock_t lock; - bool deleted; - int id; - key_t key; - kuid_t uid; - kgid_t gid; - kuid_t cuid; - kgid_t cgid; - umode_t mode; - unsigned long seq; - void *security; - struct rhash_head khtnode; - struct callback_head rcu; - refcount_t refcount; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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 sembuf { - unsigned short sem_num; - short sem_op; - short sem_flg; +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 asymmetric_key_ids { - void *id[3]; +struct acpi_namestring_info { + const char *external_name; + const char *next_external_char; + char *internal_name; + u32 length; + u32 num_segments; + u32 num_carats; + u8 fully_qualified; }; -enum { - DIO_SHOULD_DIRTY = 1, - DIO_IS_SYNC = 2, -}; +typedef enum { + ACPI_IMODE_LOAD_PASS1 = 1, + ACPI_IMODE_LOAD_PASS2 = 2, + ACPI_IMODE_EXECUTE = 3, +} acpi_interpreter_mode; -struct blkdev_dio { +struct acpi_pci_routing_table { + u32 length; + u32 pin; + u64 address; + u32 source_index; union { - struct kiocb *iocb; - struct task_struct *waiter; + char pad[4]; + struct { + struct {} __Empty_source; + char source[0]; + }; }; - 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 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; }; -typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); - -typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long); - -typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int); - -typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int); - -typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *); - -typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *); - -typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); - -typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *); - -typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64); - -typedef void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *); - -typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int); - -typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int); - -typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int); - -typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, unsigned long long, s32, u32, void *); - -typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int, unsigned int); - -typedef void (*btf_trace_io_uring_short_write)(void *, void *, u64, u64, u64); +typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); -typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int); +struct acpi_hest_generic; -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, +struct ghes_estatus_cache { + u32 estatus_len; + atomic_t count; + struct acpi_hest_generic *generic; + unsigned long long time_in; + struct callback_head rcu; }; -enum { - IO_CHECK_CQ_OVERFLOW_BIT = 0, - IO_CHECK_CQ_DROPPED_BIT = 1, +struct acpi_hest_header { + u16 type; + u16 source_id; }; -enum { - IO_EVENTFD_OP_SIGNAL_BIT = 0, - IO_EVENTFD_OP_FREE_BIT = 1, +struct acpi_hest_notify { + u8 type; + u8 length; + u16 config_write_enable; + u32 poll_interval; + u32 vector; + u32 polling_threshold_value; + u32 polling_threshold_window; + u32 error_threshold_value; + u32 error_threshold_window; }; -enum { - IORING_CQE_BUFFER_SHIFT = 16, +struct acpi_hest_generic { + struct acpi_hest_header header; + u16 related_source_id; + u8 reserved; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + u32 max_raw_data_length; + struct acpi_generic_address error_status_address; + struct acpi_hest_notify notify; + u32 error_block_length; }; -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, +enum hest_status { + HEST_ENABLED = 0, + HEST_DISABLED = 1, + HEST_NOT_FOUND = 2, }; 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, + GHES_SEV_NO = 0, + GHES_SEV_CORRECTED = 1, + GHES_SEV_RECOVERABLE = 2, + GHES_SEV_PANIC = 3, }; -enum io_wq_cancel { - IO_WQ_CANCEL_OK = 0, - IO_WQ_CANCEL_RUNNING = 1, - IO_WQ_CANCEL_NOTFOUND = 2, +enum acpi_hest_types { + ACPI_HEST_TYPE_IA32_CHECK = 0, + ACPI_HEST_TYPE_IA32_CORRECTED_CHECK = 1, + ACPI_HEST_TYPE_IA32_NMI = 2, + ACPI_HEST_TYPE_NOT_USED3 = 3, + ACPI_HEST_TYPE_NOT_USED4 = 4, + ACPI_HEST_TYPE_NOT_USED5 = 5, + ACPI_HEST_TYPE_AER_ROOT_PORT = 6, + ACPI_HEST_TYPE_AER_ENDPOINT = 7, + ACPI_HEST_TYPE_AER_BRIDGE = 8, + ACPI_HEST_TYPE_GENERIC_ERROR = 9, + ACPI_HEST_TYPE_GENERIC_ERROR_V2 = 10, + ACPI_HEST_TYPE_IA32_DEFERRED_CHECK = 11, + ACPI_HEST_TYPE_RESERVED = 12, }; 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, + CPER_SEV_RECOVERABLE = 0, + CPER_SEV_FATAL = 1, + CPER_SEV_CORRECTED = 2, + CPER_SEV_INFORMATIONAL = 3, }; -enum { - IORING_RSRC_FILE = 0, - IORING_RSRC_BUFFER = 1, +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, }; -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, +enum acpi_hest_notify_types { + ACPI_HEST_NOTIFY_POLLED = 0, + ACPI_HEST_NOTIFY_EXTERNAL = 1, + ACPI_HEST_NOTIFY_LOCAL = 2, + ACPI_HEST_NOTIFY_SCI = 3, + ACPI_HEST_NOTIFY_NMI = 4, + ACPI_HEST_NOTIFY_CMCI = 5, + ACPI_HEST_NOTIFY_MCE = 6, + ACPI_HEST_NOTIFY_GPIO = 7, + ACPI_HEST_NOTIFY_SEA = 8, + ACPI_HEST_NOTIFY_SEI = 9, + ACPI_HEST_NOTIFY_GSIV = 10, + ACPI_HEST_NOTIFY_SOFTWARE_DELEGATED = 11, + ACPI_HEST_NOTIFY_RESERVED = 12, }; -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 acpi_hest_generic_v2; -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 acpi_hest_generic_status; -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 ghes { + union { + struct acpi_hest_generic *generic; + struct acpi_hest_generic_v2 *generic_v2; + }; + struct acpi_hest_generic_status *estatus; + unsigned long flags; + union { + struct list_head list; + struct timer_list timer; + unsigned int irq; + }; + struct device *dev; + struct list_head elist; }; -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 acpi_hest_generic_v2 { + struct acpi_hest_header header; + u16 related_source_id; + u8 reserved; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + u32 max_raw_data_length; + struct acpi_generic_address error_status_address; + struct acpi_hest_notify notify; + u32 error_block_length; + struct acpi_generic_address read_ack_register; + u64 read_ack_preserve; + u64 read_ack_write; +} __attribute__((packed)); + +struct acpi_hest_generic_status { + u32 block_status; + u32 raw_data_offset; + u32 raw_data_length; + u32 data_length; + u32 error_severity; }; -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 ghes_estatus_node { + struct llist_node llnode; + struct acpi_hest_generic *generic; + struct ghes *ghes; + int task_work_cpu; + struct callback_head task_work; }; -struct trace_event_raw_io_uring_link { - struct trace_entry ent; - void *ctx; - void *req; - void *target_req; - char __data[0]; +struct acpi_hest_generic_data { + u8 section_type[16]; + u32 error_severity; + u16 revision; + u8 validation_bits; + u8 flags; + u32 error_data_length; + u8 fru_id[16]; + u8 fru_text[20]; }; -struct trace_event_raw_io_uring_cqring_wait { - struct trace_entry ent; - void *ctx; - int min_events; - char __data[0]; +struct acpi_hest_generic_data_v300 { + u8 section_type[16]; + u32 error_severity; + u16 revision; + u8 validation_bits; + u8 flags; + u32 error_data_length; + u8 fru_id[16]; + u8 fru_text[20]; + u64 time_stamp; }; -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 aer_header_log_regs { + unsigned int dw0; + unsigned int dw1; + unsigned int dw2; + unsigned int dw3; }; -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 aer_capability_regs { + u32 header; + u32 uncor_status; + u32 uncor_mask; + u32 uncor_severity; + u32 cor_status; + u32 cor_mask; + u32 cap_control; + struct aer_header_log_regs header_log; + u32 root_command; + u32 root_status; + u16 cor_err_source; + u16 uncor_err_source; }; -struct trace_event_raw_io_uring_submit_req { - struct trace_entry ent; - void *ctx; - void *req; - unsigned long long user_data; - u8 opcode; - u32 flags; - bool sq_thread; - u32 __data_loc_op_str; - char __data[0]; +struct cper_arm_err_info { + u8 version; + u8 length; + u16 validation_bits; + u8 type; + u16 multiple_error; + u8 flags; + u64 error_info; + u64 virt_fault_addr; + u64 physical_fault_addr; +} __attribute__((packed)); + +struct ghes_vendor_record_entry { + struct work_struct work; + int error_severity; + char vendor_record[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 cper_sec_mem_err { + u64 validation_bits; + u64 error_status; + u64 physical_addr; + u64 physical_addr_mask; + u16 node; + u16 card; + u16 module; + u16 bank; + u16 device; + u16 row; + u16 column; + u16 bit_pos; + u64 requestor_id; + u64 responder_id; + u64 target_id; + u8 error_type; + u8 extended; + u16 rank; + u16 mem_array_handle; + u16 mem_dev_handle; }; -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 cper_sec_pcie { + u64 validation_bits; + u32 port_type; + struct { + u8 minor; + u8 major; + u8 reserved[2]; + } version; + u16 command; + u16 status; + u32 reserved; + struct { + u16 vendor_id; + u16 device_id; + u8 class_code[3]; + u8 function; + u8 device; + u16 segment; + u8 bus; + u8 secondary_bus; + u16 slot; + u8 reserved; + } __attribute__((packed)) device_id; + struct { + u32 lower; + u32 upper; + } serial_number; + struct { + u16 secondary_status; + u16 control; + } bridge; + u8 capability[60]; + u8 aer_info[96]; }; -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 cper_sec_proc_arm { + u32 validation_bits; + u16 err_info_num; + u16 context_info_num; + u32 section_length; + u8 affinity_level; + u8 reserved[3]; + u64 mpidr; + u64 midr; + u32 running_state; + u32 psci_state; }; -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 scpi_dvfs_info; + +struct scpi_ops; + +struct scpi_clk { + u32 id; + struct clk_hw hw; + struct scpi_dvfs_info *info; + struct scpi_ops *scpi_ops; }; -struct trace_event_raw_io_uring_task_work_run { - struct trace_entry ent; - void *tctx; +struct scpi_opp; + +struct scpi_dvfs_info { unsigned int count; - unsigned int loops; - char __data[0]; + unsigned int latency; + struct scpi_opp *opps; }; -struct trace_event_raw_io_uring_short_write { - struct trace_entry ent; - void *ctx; - u64 fpos; - u64 wanted; - u64 got; - char __data[0]; +struct scpi_opp { + u32 freq; + u32 m_volt; }; -struct trace_event_raw_io_uring_local_work_run { - struct trace_entry ent; - void *ctx; - int count; - unsigned int loops; - char __data[0]; -}; +struct scpi_sensor_info; -struct io_defer_entry { - struct list_head list; - struct io_kiocb *req; - u32 seq; +struct scpi_ops { + u32 (*get_version)(); + int (*clk_get_range)(u16, unsigned long *, unsigned long *); + unsigned long (*clk_get_val)(u16); + int (*clk_set_val)(u16, unsigned long); + int (*dvfs_get_idx)(u8); + int (*dvfs_set_idx)(u8, u8); + struct scpi_dvfs_info * (*dvfs_get_info)(u8); + int (*device_domain_id)(struct device *); + int (*get_transition_latency)(struct device *); + int (*add_opps_to_device)(struct device *); + int (*sensor_get_capability)(u16 *); + int (*sensor_get_info)(u16, struct scpi_sensor_info *); + int (*sensor_get_value)(u16, u64 *); + int (*device_get_power_state)(u16); + int (*device_set_power_state)(u16, u8); }; -struct io_overflow_cqe { - struct list_head list; - struct io_uring_cqe cqe; +struct scpi_sensor_info { + u16 sensor_id; + u8 class; + u8 trigger_type; + char name[20]; }; -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 scpi_clk_data { + struct scpi_clk **clk; + unsigned int clk_num; }; -struct io_tctx_exit { - struct callback_head task_work; - struct completion completion; - struct io_ring_ctx *ctx; +struct hi6220_clk_divider { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u32 mask; + const struct clk_div_table *table; + spinlock_t *lock; }; -struct io_sqring_offsets { - __u32 head; - __u32 tail; - __u32 ring_mask; - __u32 ring_entries; - __u32 flags; - __u32 dropped; - __u32 array; - __u32 resv1; - __u64 user_addr; -}; +struct hisi_reset_controller; -struct io_cqring_offsets { - __u32 head; - __u32 tail; - __u32 ring_mask; - __u32 ring_entries; - __u32 overflow; - __u32 cqes; - __u32 flags; - __u32 resv1; - __u64 user_addr; +struct hi3519_crg_data { + struct hisi_clock_data *clk_data; + struct hisi_reset_controller *rstc; }; -struct io_uring_params { - __u32 sq_entries; - __u32 cq_entries; - __u32 flags; - __u32 sq_thread_cpu; - __u32 sq_thread_idle; - __u32 features; - __u32 wq_fd; - __u32 resv[3]; - struct io_sqring_offsets sq_off; - struct io_cqring_offsets cq_off; -}; +struct sci_clk_provider; -struct trace_event_data_offsets_io_uring_queue_async_work { - u32 op_str; +struct sci_clk { + struct clk_hw hw; + u16 dev_id; + u32 clk_id; + u32 num_parents; + struct sci_clk_provider *provider; + u8 flags; + struct list_head node; + unsigned long cached_req; + unsigned long cached_res; }; -struct trace_event_data_offsets_io_uring_defer { - u32 op_str; -}; +struct ti_sci_handle; -struct trace_event_data_offsets_io_uring_fail_link { - u32 op_str; -}; +struct ti_sci_clk_ops; -struct trace_event_data_offsets_io_uring_submit_req { - u32 op_str; +struct sci_clk_provider { + const struct ti_sci_handle *sci; + const struct ti_sci_clk_ops *ops; + struct device *dev; + struct sci_clk **clocks; + int num_clocks; }; -struct trace_event_data_offsets_io_uring_poll_arm { - u32 op_str; +struct ti_sci_version_info { + u8 abi_major; + u8 abi_minor; + u16 firmware_revision; + char firmware_description[32]; }; -struct trace_event_data_offsets_io_uring_task_add { - u32 op_str; +struct ti_sci_core_ops { + int (*reboot_device)(const struct ti_sci_handle *); }; -struct trace_event_data_offsets_io_uring_req_failed { - u32 op_str; +struct ti_sci_dev_ops { + int (*get_device)(const struct ti_sci_handle *, u32); + int (*get_device_exclusive)(const struct ti_sci_handle *, u32); + int (*idle_device)(const struct ti_sci_handle *, u32); + int (*idle_device_exclusive)(const struct ti_sci_handle *, u32); + int (*put_device)(const struct ti_sci_handle *, u32); + int (*is_valid)(const struct ti_sci_handle *, u32); + int (*get_context_loss_count)(const struct ti_sci_handle *, u32, u32 *); + int (*is_idle)(const struct ti_sci_handle *, u32, bool *); + int (*is_stop)(const struct ti_sci_handle *, u32, bool *, bool *); + int (*is_on)(const struct ti_sci_handle *, u32, bool *, bool *); + int (*is_transitioning)(const struct ti_sci_handle *, u32, bool *); + int (*set_device_resets)(const struct ti_sci_handle *, u32, u32); + int (*get_device_resets)(const struct ti_sci_handle *, u32, u32 *); }; -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 *); +struct ti_sci_clk_ops { + int (*get_clock)(const struct ti_sci_handle *, u32, u32, bool, bool, bool); + int (*idle_clock)(const struct ti_sci_handle *, u32, u32); + int (*put_clock)(const struct ti_sci_handle *, u32, u32); + int (*is_auto)(const struct ti_sci_handle *, u32, u32, bool *); + int (*is_on)(const struct ti_sci_handle *, u32, u32, bool *, bool *); + int (*is_off)(const struct ti_sci_handle *, u32, u32, bool *, bool *); + int (*set_parent)(const struct ti_sci_handle *, u32, u32, u32); + int (*get_parent)(const struct ti_sci_handle *, u32, u32, u32 *); + int (*get_num_parents)(const struct ti_sci_handle *, u32, u32, u32 *); + int (*get_best_match_freq)(const struct ti_sci_handle *, u32, u32, u64, u64, u64, u64 *); + int (*set_freq)(const struct ti_sci_handle *, u32, u32, u64, u64, u64); + int (*get_freq)(const struct ti_sci_handle *, u32, u32, u64 *); }; -typedef bool work_cancel_fn(struct io_wq_work *, void *); +struct ti_sci_resource_desc; -struct io_uring_getevents_arg { - __u64 sigmask; - __u32 sigmask_sz; - __u32 pad; - __u64 ts; +struct ti_sci_rm_core_ops { + int (*get_range)(const struct ti_sci_handle *, u32, u8, struct ti_sci_resource_desc *); + int (*get_range_from_shost)(const struct ti_sci_handle *, u32, u8, u8, struct ti_sci_resource_desc *); }; -struct io_uring_file_index_range { - __u32 off; - __u32 len; - __u64 resv; +struct ti_sci_rm_irq_ops { + int (*set_irq)(const struct ti_sci_handle *, u16, u16, u16, u16); + int (*set_event_map)(const struct ti_sci_handle *, u16, u16, u16, u16, u16, u8); + int (*free_irq)(const struct ti_sci_handle *, u16, u16, u16, u16); + int (*free_event_map)(const struct ti_sci_handle *, u16, u16, u16, u16, u16, u8); }; -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 ti_sci_msg_rm_ring_cfg; -struct trace_event_data_offsets_io_uring_complete {}; +struct ti_sci_rm_ringacc_ops { + int (*set_cfg)(const struct ti_sci_handle *, const struct ti_sci_msg_rm_ring_cfg *); +}; -struct trace_event_data_offsets_io_uring_cqe_overflow {}; +struct ti_sci_rm_psil_ops { + int (*pair)(const struct ti_sci_handle *, u32, u32, u32); + int (*unpair)(const struct ti_sci_handle *, u32, u32, u32); +}; -struct trace_event_data_offsets_io_uring_task_work_run {}; +struct ti_sci_msg_rm_udmap_tx_ch_cfg; -struct trace_event_data_offsets_io_uring_short_write {}; +struct ti_sci_msg_rm_udmap_rx_ch_cfg; -struct trace_event_data_offsets_io_uring_local_work_run {}; +struct ti_sci_msg_rm_udmap_flow_cfg; -struct io_task_cancel { - struct task_struct *task; - bool all; +struct ti_sci_rm_udmap_ops { + int (*tx_ch_cfg)(const struct ti_sci_handle *, const struct ti_sci_msg_rm_udmap_tx_ch_cfg *); + int (*rx_ch_cfg)(const struct ti_sci_handle *, const struct ti_sci_msg_rm_udmap_rx_ch_cfg *); + int (*rx_flow_cfg)(const struct ti_sci_handle *, const struct ti_sci_msg_rm_udmap_flow_cfg *); }; -struct io_uring_probe_op { - __u8 op; - __u8 resv; - __u16 flags; - __u32 resv2; +struct ti_sci_proc_ops { + int (*request)(const struct ti_sci_handle *, u8); + int (*release)(const struct ti_sci_handle *, u8); + int (*handover)(const struct ti_sci_handle *, u8, u8); + int (*set_config)(const struct ti_sci_handle *, u8, u64, u32, u32); + int (*set_control)(const struct ti_sci_handle *, u8, u32, u32); + int (*get_status)(const struct ti_sci_handle *, u8, u64 *, u32 *, u32 *, u32 *); }; -struct io_uring_probe { - __u8 last_op; - __u8 ops_len; - __u16 resv; - __u32 resv2[3]; - struct io_uring_probe_op ops[0]; +struct ti_sci_ops { + struct ti_sci_core_ops core_ops; + struct ti_sci_dev_ops dev_ops; + struct ti_sci_clk_ops clk_ops; + struct ti_sci_rm_core_ops rm_core_ops; + struct ti_sci_rm_irq_ops rm_irq_ops; + struct ti_sci_rm_ringacc_ops rm_ring_ops; + struct ti_sci_rm_psil_ops rm_psil_ops; + struct ti_sci_rm_udmap_ops rm_udmap_ops; + struct ti_sci_proc_ops proc_ops; }; -struct io_uring_restriction { - __u16 opcode; - union { - __u8 register_op; - __u8 sqe_op; - __u8 sqe_flags; - }; - __u8 resv; - __u32 resv2[3]; +struct ti_sci_handle { + struct ti_sci_version_info version; + struct ti_sci_ops ops; }; -struct fsl_mc_obj_cmd_open { - __le32 obj_id; +struct ti_sci_resource_desc { + u16 start; + u16 num; + u16 start_sec; + u16 num_sec; + unsigned long *res_map; }; -struct mvebu_a3700_comphy_conf { - unsigned int lane; - enum phy_mode mode; - int submode; +struct ti_sci_msg_rm_ring_cfg { + u32 valid_params; + u16 nav_id; + u16 index; + u32 addr_lo; + u32 addr_hi; + u32 count; + u8 mode; + u8 size; + u8 order_id; + u16 virtid; + u8 asel; }; -struct gbe_phy_init_data_fix { - u16 addr; - u16 value; +struct ti_sci_msg_rm_udmap_tx_ch_cfg { + u32 valid_params; + u16 nav_id; + u16 index; + u8 tx_pause_on_err; + u8 tx_filt_einfo; + u8 tx_filt_pswords; + u8 tx_atype; + u8 tx_chan_type; + u8 tx_supr_tdpkt; + u16 tx_fetch_size; + u8 tx_credit_count; + u16 txcq_qnum; + u8 tx_priority; + u8 tx_qos; + u8 tx_orderid; + u16 fdepth; + u8 tx_sched_priority; + u8 tx_burst_size; + u8 tx_tdtype; + u8 extended_ch_type; }; -struct mvebu_a3700_comphy_priv; +struct ti_sci_msg_rm_udmap_rx_ch_cfg { + u32 valid_params; + u16 nav_id; + u16 index; + u16 rx_fetch_size; + u16 rxcq_qnum; + u8 rx_priority; + u8 rx_qos; + u8 rx_orderid; + u8 rx_sched_priority; + u16 flowid_start; + u16 flowid_cnt; + u8 rx_pause_on_err; + u8 rx_atype; + u8 rx_chan_type; + u8 rx_ignore_short; + u8 rx_ignore_long; + u8 rx_burst_size; +}; -struct mvebu_a3700_comphy_lane { - struct mvebu_a3700_comphy_priv *priv; - struct device *dev; - unsigned int id; - enum phy_mode mode; - int submode; - bool invert_tx; - bool invert_rx; +struct ti_sci_msg_rm_udmap_flow_cfg { + u32 valid_params; + u16 nav_id; + u16 flow_index; + u8 rx_einfo_present; + u8 rx_psinfo_present; + u8 rx_error_handling; + u8 rx_desc_type; + u16 rx_sop_offset; + u16 rx_dest_qnum; + u8 rx_src_tag_hi; + u8 rx_src_tag_lo; + u8 rx_dest_tag_hi; + u8 rx_dest_tag_lo; + u8 rx_src_tag_hi_sel; + u8 rx_src_tag_lo_sel; + u8 rx_dest_tag_hi_sel; + u8 rx_dest_tag_lo_sel; + u16 rx_fdq0_sz0_qnum; + u16 rx_fdq1_qnum; + u16 rx_fdq2_qnum; + u16 rx_fdq3_qnum; + u8 rx_ps_location; }; -struct mvebu_a3700_comphy_priv { - void *comphy_regs; - void *lane0_phy_regs; - void *lane1_phy_regs; - void *lane2_phy_indirect; - spinlock_t lock; - bool xtal_is_40m; +typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); + +struct mtk_mux_nb { + struct notifier_block nb; + const struct clk_ops *ops; + u8 bypass_index; + u8 original_index; }; -enum imx_sc_rpc_svc { - IMX_SC_RPC_SVC_UNKNOWN = 0, - IMX_SC_RPC_SVC_RETURN = 1, - IMX_SC_RPC_SVC_PM = 2, - IMX_SC_RPC_SVC_RM = 3, - IMX_SC_RPC_SVC_TIMER = 5, - IMX_SC_RPC_SVC_PAD = 6, - IMX_SC_RPC_SVC_MISC = 7, - IMX_SC_RPC_SVC_IRQ = 8, +struct reg_sequence { + unsigned int reg; + unsigned int def; + unsigned int delay_us; }; -enum pad_func_e { - IMX_SC_PAD_FUNC_SET = 15, - IMX_SC_PAD_FUNC_GET = 16, +struct meson_clk_hw_data { + struct clk_hw **hws; + unsigned int num; }; -struct imx_sc_rpc_msg { - uint8_t ver; - uint8_t size; - uint8_t svc; - uint8_t func; +struct clk_regmap___2; + +struct meson_eeclkc_data { + struct clk_regmap___2 * const *regmap_clks; + unsigned int regmap_clk_num; + const struct reg_sequence *init_regs; + unsigned int init_count; + struct meson_clk_hw_data hw_clks; }; -struct imx_sc_msg_resp_pad_get { - struct imx_sc_rpc_msg hdr; - u32 val; +struct clk_regmap___2 { + struct clk_hw hw; + struct regmap *map; + void *data; }; -struct imx_sc_msg_req_pad_get { - struct imx_sc_rpc_msg hdr; - u16 pad; - long: 0; +enum { + PLL_OFF_L_VAL = 0, + PLL_OFF_CAL_L_VAL = 1, + PLL_OFF_ALPHA_VAL = 2, + PLL_OFF_ALPHA_VAL_U = 3, + PLL_OFF_USER_CTL = 4, + PLL_OFF_USER_CTL_U = 5, + PLL_OFF_USER_CTL_U1 = 6, + PLL_OFF_CONFIG_CTL = 7, + PLL_OFF_CONFIG_CTL_U = 8, + PLL_OFF_CONFIG_CTL_U1 = 9, + PLL_OFF_TEST_CTL = 10, + PLL_OFF_TEST_CTL_U = 11, + PLL_OFF_TEST_CTL_U1 = 12, + PLL_OFF_TEST_CTL_U2 = 13, + PLL_OFF_STATE = 14, + PLL_OFF_STATUS = 15, + PLL_OFF_OPMODE = 16, + PLL_OFF_FRAC = 17, + PLL_OFF_CAL_VAL = 18, + PLL_OFF_MAX_REGS = 19, }; -struct imx_sc_msg_req_pad_set { - struct imx_sc_rpc_msg hdr; - u32 val; - u16 pad; +struct clk_regmap_phy_mux { + u32 reg; + struct clk_regmap clkr; }; -struct imx_sc_msg_gpio_set_pad_wakeup { - struct imx_sc_rpc_msg hdr; - u16 pad; - u8 wakeup; +struct clk_regmap_div { + u32 reg; + u32 shift; + u32 width; + struct clk_regmap clkr; }; -struct mtk_pin_reg_calc; +struct clk_regmap_mux { + u32 reg; + u32 shift; + u32 width; + const struct parent_map *parent_map; + struct clk_regmap clkr; +}; -struct mtk_pin_desc; +struct clk_rcg_dfs_data { + struct clk_rcg2 *rcg; + struct clk_init_data *init; +}; -struct mtk_pin_rsel; +struct cpg_core_clk; -struct mtk_pinctrl; +struct rzg2l_mod_clk; -struct mtk_pin_soc { - const struct mtk_pin_reg_calc *reg_cal; - const struct mtk_pin_desc *pins; - unsigned int npins; - const struct group_desc *grps; - unsigned int ngrps; - const struct function_desc *funcs; - unsigned int nfuncs; - const struct mtk_eint_regs *eint_regs; - const struct mtk_eint_hw *eint_hw; - u8 gpio_m; - bool ies_present; - const char * const *base_names; - unsigned int nbase_names; - const unsigned int *pull_type; - const struct mtk_pin_rsel *pin_rsel; - unsigned int npin_rsel; - int (*bias_disable_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *); - int (*bias_disable_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, int *); - int (*bias_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool); - int (*bias_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool, int *); - int (*bias_set_combo)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32, u32); - int (*bias_get_combo)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32 *, u32 *); - int (*drive_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32); - int (*drive_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, int *); - int (*adv_pull_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool, u32); - int (*adv_pull_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool, u32 *); - int (*adv_drive_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32); - int (*adv_drive_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32 *); - void *driver_data; +struct rzg2l_reset; + +struct rzg2l_cpg_info { + const struct cpg_core_clk *core_clks; + unsigned int num_core_clks; + unsigned int last_dt_core_clk; + unsigned int num_total_core_clks; + const struct rzg2l_mod_clk *mod_clks; + unsigned int num_mod_clks; + unsigned int num_hw_mod_clks; + const unsigned int *no_pm_mod_clks; + unsigned int num_no_pm_mod_clks; + const struct rzg2l_reset *resets; + unsigned int num_resets; + const unsigned int *crit_mod_clks; + unsigned int num_crit_mod_clks; + bool has_clk_mon_regs; }; -struct mtk_pin_field_calc; +struct cpg_core_clk { + const char *name; + unsigned int id; + unsigned int parent; + unsigned int div; + unsigned int mult; + unsigned int type; + unsigned int conf; + unsigned int sconf; + const struct clk_div_table *dtable; + const u32 *mtable; + const unsigned long invalid_rate; + const unsigned long max_rate; + const char * const *parent_names; + notifier_fn_t notifier; + u32 flag; + u32 mux_flags; + int num_parents; +}; -struct mtk_pin_reg_calc { - const struct mtk_pin_field_calc *range; - unsigned int nranges; +struct rzg2l_mod_clk { + const char *name; + unsigned int id; + unsigned int parent; + u16 off; + u8 bit; + bool is_coupled; }; -struct mtk_pin_field_calc { - u16 s_pin; - u16 e_pin; - u8 i_base; - u32 s_addr; - u8 x_addrs; - u8 s_bit; - u8 x_bits; - u8 sz_reg; - u8 fixed; +struct rzg2l_reset { + u16 off; + u8 bit; + s8 monbit; }; -struct mtk_eint_desc { - u16 eint_m; - u16 eint_n; +struct rcar_gen3_cpg_pll_config { + u8 extal_div; + u8 pll1_mult; + u8 pll1_div; + u8 pll3_mult; + u8 pll3_div; + u8 osc_prediv; }; -struct mtk_func_desc; +enum clk_reg_layout { + CLK_REG_LAYOUT_RCAR_GEN2_AND_GEN3 = 0, + CLK_REG_LAYOUT_RZ_A = 1, + CLK_REG_LAYOUT_RCAR_GEN4 = 2, +}; -struct mtk_pin_desc { - unsigned int number; - const char *name; - struct mtk_eint_desc eint; - u8 drv_n; - struct mtk_func_desc *funcs; +enum rcar_gen3_clk_types { + CLK_TYPE_GEN3_MAIN = 5, + CLK_TYPE_GEN3_PLL0 = 6, + CLK_TYPE_GEN3_PLL1 = 7, + CLK_TYPE_GEN3_PLL2 = 8, + CLK_TYPE_GEN3_PLL3 = 9, + CLK_TYPE_GEN3_PLL4 = 10, + CLK_TYPE_GEN3_SDH = 11, + CLK_TYPE_GEN3_SD = 12, + CLK_TYPE_GEN3_R = 13, + CLK_TYPE_GEN3_MDSEL = 14, + CLK_TYPE_GEN3_Z = 15, + CLK_TYPE_GEN3_ZG = 16, + CLK_TYPE_GEN3_OSC = 17, + CLK_TYPE_GEN3_RCKSEL = 18, + CLK_TYPE_GEN3_RPCSRC = 19, + CLK_TYPE_GEN3_E3_RPCSRC = 20, + CLK_TYPE_GEN3_RPC = 21, + CLK_TYPE_GEN3_RPCD2 = 22, + CLK_TYPE_GEN3_SOC_BASE = 23, }; -struct mtk_func_desc { - const char *name; - u8 muxval; +struct cpg_pll_clk { + struct clk_hw hw; + void *pllcr_reg; + void *pllecr_reg; + unsigned int fixed_mult; + u32 pllecr_pllst_mask; }; -struct mtk_pin_rsel { - u16 s_pin; - u16 e_pin; - u16 rsel_index; - u32 up_rsel; - u32 down_rsel; +struct cpg_z_clk { + struct clk_hw hw; + void *reg; + void *kick_reg; + unsigned long max_rate; + unsigned int fixed_div; + u32 mask; }; -struct mtk_eint; +struct cpg_simple_notifier { + struct notifier_block nb; + void *reg; + u32 saved; +}; -struct mtk_pinctrl_group; +struct cpg_core_clk___2 { + const char *name; + unsigned int id; + unsigned int type; + unsigned int parent; + unsigned int div; + unsigned int mult; + unsigned int offset; +}; -struct mtk_pinctrl { - struct pinctrl_dev *pctrl; - void **base; - u8 nbase; - struct device *dev; - struct gpio_chip chip; - const struct mtk_pin_soc *soc; - struct mtk_eint *eint; - struct mtk_pinctrl_group *groups; - const char **grp_names; - spinlock_t lock; - bool rsel_si_unit; +struct mssr_mod_clk; + +struct cpg_mssr_info { + const struct cpg_core_clk___2 *early_core_clks; + unsigned int num_early_core_clks; + const struct mssr_mod_clk *early_mod_clks; + unsigned int num_early_mod_clks; + const struct cpg_core_clk___2 *core_clks; + unsigned int num_core_clks; + unsigned int last_dt_core_clk; + unsigned int num_total_core_clks; + enum clk_reg_layout reg_layout; + const struct mssr_mod_clk *mod_clks; + unsigned int num_mod_clks; + unsigned int num_hw_mod_clks; + const unsigned int *crit_mod_clks; + unsigned int num_crit_mod_clks; + const unsigned int *core_pm_clks; + unsigned int num_core_pm_clks; + int (*init)(struct device *); + struct clk * (*cpg_clk_register)(struct device *, const struct cpg_core_clk___2 *, const struct cpg_mssr_info *, struct clk **, void *, struct raw_notifier_head *); }; -struct mtk_eint_xt; +struct mssr_mod_clk { + const char *name; + unsigned int id; + unsigned int parent; +}; -struct mtk_eint { +struct clk { + struct clk_core *core; struct device *dev; - void *base; - struct irq_domain *domain; - int irq; - int *dual_edge; - u32 *wake_mask; - u32 *cur_mask; - const struct mtk_eint_hw *hw; - const struct mtk_eint_regs *regs; - u16 num_db_time; - void *pctl; - const struct mtk_eint_xt *gpio_xlate; + const char *dev_id; + const char *con_id; + unsigned long min_rate; + unsigned long max_rate; + unsigned int exclusive_count; + struct hlist_node clks_node; }; -struct mtk_eint_xt { - int (*get_gpio_n)(void *, unsigned long, unsigned int *, struct gpio_chip **); - int (*get_gpio_state)(void *, unsigned long); - int (*set_gpio_as_eint)(void *, unsigned long); +struct sprd_clk_common { + struct regmap *regmap; + u32 reg; + struct clk_hw hw; }; -struct mtk_pinctrl_group { - const char *name; - unsigned long config; - unsigned int pin; +struct sprd_gate { + u32 enable_mask; + u16 flags; + u16 sc_offset; + u16 udelay; + struct sprd_clk_common common; }; -struct acpiphp_attention_info { - int (*set_attn)(struct hotplug_slot *, u8); - int (*get_attn)(struct hotplug_slot *, u8 *); - struct module *owner; +struct sun6i_rtc_match_data { + bool have_ext_osc32k: 1; + bool have_iosc_calibration: 1; + bool rtc_32k_single_parent: 1; + const struct clk_parent_data *osc32k_fanout_parents; + u8 osc32k_fanout_nparents; }; -struct acpiphp_slot; +struct uniphier_clk_cpugear { + struct clk_hw hw; + struct regmap *regmap; + unsigned int regbase; + unsigned int mask; +}; -struct slot { - struct hotplug_slot hotplug_slot; - struct acpiphp_slot *acpi_slot; - unsigned int sun; +struct uniphier_clk_cpugear_data { + const char *parent_names[16]; + unsigned int num_parents; + unsigned int regbase; + unsigned int mask; }; -struct acpiphp_slot { - struct list_head node; - struct pci_bus *bus; - struct list_head funcs; - struct slot *slot; - u8 device; - u32 flags; +struct bcm2835_desc; + +struct bcm2835_chan { + struct virt_dma_chan vc; + struct dma_slave_config cfg; + unsigned int dreq; + int ch; + struct bcm2835_desc *desc; + struct dma_pool *cb_pool; + void *chan_base; + int irq_number; + unsigned int irq_flags; + bool is_lite_channel; }; -struct ls_pcie { - struct dw_pcie *pci; +struct bcm2835_dma_cb; + +struct bcm2835_cb_entry { + struct bcm2835_dma_cb *cb; + dma_addr_t paddr; }; -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 bcm2835_desc { + struct bcm2835_chan *c; + struct virt_dma_desc vd; + enum dma_transfer_direction dir; + unsigned int frames; + size_t size; + bool cyclic; + struct bcm2835_cb_entry cb_list[0]; }; -struct acpi_irq_parse_one_ctx { - int rc; - unsigned int index; - unsigned long *res_flags; - struct irq_fwspec *fwspec; +struct bcm2835_dma_cb { + uint32_t info; + uint32_t src; + uint32_t dst; + uint32_t length; + uint32_t stride; + uint32_t next; + uint32_t pad[2]; }; -struct acpi_exception_info { - char *name; +struct bcm2835_dmadev { + struct dma_device ddev; + void *base; + dma_addr_t zero_page; }; -struct acpi_interface_info { +struct psil_ep; + +struct psil_ep_map { char *name; - struct acpi_interface_info *next; - u8 flags; - u8 value; + struct psil_ep *src; + int src_count; + struct psil_ep *dst; + int dst_count; }; -typedef u32 (*acpi_interface_handler)(acpi_string, u32); +enum psil_endpoint_type { + PSIL_EP_NATIVE = 0, + PSIL_EP_PDMA_XY = 1, + PSIL_EP_PDMA_MCAN = 2, + PSIL_EP_PDMA_AASRC = 3, +}; -struct container_dev { - struct device dev; - int (*offline)(struct container_dev *); +enum udma_tp_level { + UDMA_TP_NORMAL = 0, + UDMA_TP_HIGH = 1, + UDMA_TP_ULTRAHIGH = 2, + UDMA_TP_LAST = 3, }; -struct acpi_vendor_uuid { - u8 subtype; - u8 data[16]; +struct psil_endpoint_config { + enum psil_endpoint_type ep_type; + enum udma_tp_level channel_tpl; + unsigned int pkt_mode: 1; + unsigned int notdpkt: 1; + unsigned int needs_epib: 1; + unsigned int pdma_acc32: 1; + unsigned int pdma_burst: 1; + u32 psd_size; + s16 mapped_channel_id; + u16 flow_start; + u16 flow_num; + s16 default_flow_id; }; -struct resource_win { - struct resource res; - resource_size_t offset; +struct psil_ep { + u32 thread_id; + struct psil_endpoint_config ep_config; }; -struct acpipnp_parse_option_s { - struct pnp_dev *dev; - unsigned int option_flags; +struct apple_rtkit_crashlog_regs { + u32 unk_0; + u32 unk_4; + u64 regs[31]; + u64 sp; + u64 pc; + u64 psr; + u64 cpacr; + u64 fpsr; + u64 fpcr; + u64 unk[64]; + u64 far; + u64 unk_X; + u64 esr; + u64 unk_Z; }; -struct iproc_asiu_div { - unsigned int offset; - unsigned int en_shift; - unsigned int high_shift; - unsigned int high_width; - unsigned int low_shift; - unsigned int low_width; +struct apple_rtkit_shmem { + void *buffer; + void *iomem; + size_t size; + dma_addr_t iova; + bool is_mapped; + void *private; }; -struct iproc_asiu_gate { - unsigned int offset; - unsigned int en_shift; +struct apple_rtkit_ops; + +struct apple_rtkit { + void *cookie; + const struct apple_rtkit_ops *ops; + struct device *dev; + const char *mbox_name; + int mbox_idx; + struct mbox_client mbox_cl; + struct mbox_chan *mbox_chan; + struct completion epmap_completion; + struct completion iop_pwr_ack_completion; + struct completion ap_pwr_ack_completion; + int boot_result; + int version; + unsigned int iop_power_state; + unsigned int ap_power_state; + bool crashed; + unsigned long endpoints[4]; + struct apple_rtkit_shmem ioreport_buffer; + struct apple_rtkit_shmem crashlog_buffer; + struct apple_rtkit_shmem syslog_buffer; + char *syslog_msg_buffer; + size_t syslog_n_entries; + size_t syslog_msg_size; + struct workqueue_struct *wq; }; -struct iproc_asiu; +struct apple_rtkit_ops { + void (*crashed)(void *); + void (*recv_message)(void *, u8, u64); + bool (*recv_message_early)(void *, u8, u64); + int (*shmem_setup)(void *, struct apple_rtkit_shmem *); + void (*shmem_destroy)(void *, struct apple_rtkit_shmem *); +}; -struct iproc_asiu_clk { - struct clk_hw hw; +struct apple_rtkit_crashlog_mbox_entry { + u64 msg0; + u64 msg1; + u32 timestamp; + u8 _unk[4]; +}; + +struct apple_rtkit_crashlog_header { + u32 fourcc; + u32 version; + u32 size; + u32 flags; + u8 _unk[16]; +}; + +struct meson_gx_soc_id { const char *name; - struct iproc_asiu *asiu; - unsigned long rate; - struct iproc_asiu_div div; - struct iproc_asiu_gate gate; + unsigned int id; }; -struct iproc_asiu { - void *div_base; - void *gate_base; - struct clk_hw_onecell_data *clk_data; - struct iproc_asiu_clk *clks; +struct meson_gx_package_id { + const char *name; + unsigned int major_id; + unsigned int pack_id; + unsigned int pack_mask; }; -struct sci_clk_provider; +struct renesas_family; -struct sci_clk { - struct clk_hw hw; - u16 dev_id; - u32 clk_id; - u32 num_parents; - struct sci_clk_provider *provider; - u8 flags; +struct renesas_soc { + const struct renesas_family *family; + u32 id; +}; + +struct renesas_family { + const char name[16]; + u32 reg; +}; + +struct renesas_id { + unsigned int offset; + u32 mask; +}; + +enum tegra_revision { + TEGRA_REVISION_UNKNOWN = 0, + TEGRA_REVISION_A01 = 1, + TEGRA_REVISION_A02 = 2, + TEGRA_REVISION_A03 = 3, + TEGRA_REVISION_A03p = 4, + TEGRA_REVISION_A04 = 5, + TEGRA_REVISION_MAX = 6, +}; + +struct ti_sci_genpd_provider; + +struct ti_sci_pm_domain { + int idx; + u8 exclusive; + struct generic_pm_domain pd; struct list_head node; - unsigned long cached_req; - unsigned long cached_res; + struct ti_sci_genpd_provider *parent; }; -struct sci_clk_provider { - const struct ti_sci_handle *sci; - const struct ti_sci_clk_ops *ops; +struct ti_sci_genpd_provider { + const struct ti_sci_handle *ti_sci; struct device *dev; - struct sci_clk **clocks; - int num_clocks; + struct list_head pd_list; + struct genpd_onecell_data data; }; -struct meson_clk_dualdiv_data { - struct parm n1; - struct parm n2; - struct parm m1; - struct parm m2; - struct parm dual; - const struct meson_clk_dualdiv_param *table; +struct xsd_errors { + int errnum; + const char *errstring; }; -enum clk_ids___3 { - LAST_DT_CORE_CLK___3 = 42, - CLK_EXTAL___3 = 43, - CLK_EXTALR___3 = 44, - CLK_MAIN___3 = 45, - CLK_PLL1___3 = 46, - CLK_PLL20 = 47, - CLK_PLL21 = 48, - CLK_PLL30 = 49, - CLK_PLL31 = 50, - CLK_PLL5___2 = 51, - CLK_PLL1_DIV2___3 = 52, - CLK_PLL20_DIV2 = 53, - CLK_PLL21_DIV2 = 54, - CLK_PLL30_DIV2 = 55, - CLK_PLL31_DIV2 = 56, - CLK_PLL5_DIV2___2 = 57, - CLK_PLL5_DIV4___2 = 58, - CLK_S1___2 = 59, - CLK_S3___2 = 60, - CLK_SDSRC___3 = 61, - CLK_RPCSRC___3 = 62, - CLK_OCO___2 = 63, - MOD_CLK_BASE___3 = 64, +enum xsd_sockmsg_type { + XS_CONTROL = 0, + XS_DIRECTORY = 1, + XS_READ = 2, + XS_GET_PERMS = 3, + XS_WATCH = 4, + XS_UNWATCH = 5, + XS_TRANSACTION_START = 6, + XS_TRANSACTION_END = 7, + XS_INTRODUCE = 8, + XS_RELEASE = 9, + XS_GET_DOMAIN_PATH = 10, + XS_WRITE = 11, + XS_MKDIR = 12, + XS_RM = 13, + XS_SET_PERMS = 14, + XS_WATCH_EVENT = 15, + XS_ERROR = 16, + XS_IS_DOMAIN_INTRODUCED = 17, + XS_RESUME = 18, + XS_SET_TARGET = 19, + XS_RESET_WATCHES = 21, + XS_DIRECTORY_PART = 22, + XS_TYPE_COUNT = 23, + XS_INVALID = 65535, }; -struct sprd_div_internal { - u8 shift; - u8 width; +enum xb_req_state { + xb_req_state_queued = 0, + xb_req_state_wait_reply = 1, + xb_req_state_got_reply = 2, + xb_req_state_aborted = 3, }; -struct sprd_div { - struct sprd_div_internal div; - struct sprd_clk_common common; +enum xenstore_init { + XS_UNKNOWN = 0, + XS_PV = 1, + XS_HVM = 2, + XS_LOCAL = 3, }; -struct tegra_clk_periph_regs; +struct xs_watch_event { + struct list_head list; + unsigned int len; + struct xenbus_watch *handle; + const char *path; + const char *token; + char body[0]; +}; -struct tegra_clk_periph_fixed { - struct clk_hw hw; - void *base; - const struct tegra_clk_periph_regs *regs; - unsigned int mul; - unsigned int div; - unsigned int num; +struct xsd_sockmsg { + uint32_t type; + uint32_t req_id; + uint32_t tx_id; + uint32_t len; }; -struct tegra_clk_periph_regs { - u32 enb_reg; - u32 enb_set_reg; - u32 enb_clr_reg; - u32 rst_reg; - u32 rst_set_reg; - u32 rst_clr_reg; +struct xb_req_data { + struct list_head list; + wait_queue_head_t wq; + struct xsd_sockmsg msg; + uint32_t caller_req_id; + enum xsd_sockmsg_type type; + char *body; + const struct kvec *vec; + int num_vecs; + int err; + enum xb_req_state state; + bool user_req; + void (*cb)(struct xb_req_data *); + void *par; }; -struct pll_out_data { - char *div_name; - char *pll_out_name; - u32 offset; - int clk_id; - u8 div_shift; - u8 div_flags; - u8 rst_shift; - spinlock_t *lock; +struct hyp_sysfs_attr { + struct attribute attr; + ssize_t (*show)(struct hyp_sysfs_attr *, char *); + ssize_t (*store)(struct hyp_sysfs_attr *, const char *, size_t); + union { + void *hyp_attr_data; + unsigned long hyp_attr_value; + }; }; -struct tegra_clk_frac_div { - struct clk_hw hw; - void *reg; - u8 flags; - u8 shift; - u8 width; - u8 frac_width; - spinlock_t *lock; +struct xen_feature_info { + unsigned int submap_idx; + uint32_t submap; }; -struct tegra_clk_periph_gate { - u32 magic; - struct clk_hw hw; - void *clk_base; - u8 flags; - int clk_num; - int *enable_refcnt; - const struct tegra_clk_periph_regs *regs; +struct xen_platform_parameters { + xen_ulong_t virt_start; }; -struct tegra_clk_periph { - u32 magic; - struct clk_hw hw; - struct clk_mux mux; - struct tegra_clk_frac_div divider; - struct tegra_clk_periph_gate gate; - const struct clk_ops *mux_ops; - const struct clk_ops *div_ops; - const struct clk_ops *gate_ops; +struct xen_build_id { + uint32_t len; + unsigned char buf[0]; }; -struct tegra_periph_init_data { - const char *name; - int clk_id; - union { - const char * const *parent_names; - const char *parent_name; - } p; - int num_parents; - struct tegra_clk_periph periph; - u32 offset; - const char *con_id; - const char *dev_id; - unsigned long flags; +typedef uint8_t xen_domain_handle_t[16]; + +struct xen_compile_info { + char compiler[64]; + char compile_by[16]; + char compile_domain[32]; + char compile_date[32]; }; -enum clk_id { - tegra_clk_actmon = 0, - tegra_clk_adx = 1, - tegra_clk_adx1 = 2, - tegra_clk_afi = 3, - tegra_clk_amx = 4, - tegra_clk_amx1 = 5, - tegra_clk_apb2ape = 6, - tegra_clk_ahbdma = 7, - tegra_clk_apbdma = 8, - tegra_clk_apbif = 9, - tegra_clk_ape = 10, - tegra_clk_audio0 = 11, - tegra_clk_audio0_2x = 12, - tegra_clk_audio0_mux = 13, - tegra_clk_audio1 = 14, - tegra_clk_audio1_2x = 15, - tegra_clk_audio1_mux = 16, - tegra_clk_audio2 = 17, - tegra_clk_audio2_2x = 18, - tegra_clk_audio2_mux = 19, - tegra_clk_audio3 = 20, - tegra_clk_audio3_2x = 21, - tegra_clk_audio3_mux = 22, - tegra_clk_audio4 = 23, - tegra_clk_audio4_2x = 24, - tegra_clk_audio4_mux = 25, - tegra_clk_bsea = 26, - tegra_clk_bsev = 27, - tegra_clk_cclk_g = 28, - tegra_clk_cclk_lp = 29, - tegra_clk_cilab = 30, - tegra_clk_cilcd = 31, - tegra_clk_cile = 32, - tegra_clk_clk_32k = 33, - tegra_clk_clk72Mhz = 34, - tegra_clk_clk72Mhz_8 = 35, - tegra_clk_clk_m = 36, - tegra_clk_osc = 37, - tegra_clk_osc_div2 = 38, - tegra_clk_osc_div4 = 39, - tegra_clk_cml0 = 40, - tegra_clk_cml1 = 41, - tegra_clk_csi = 42, - tegra_clk_csite = 43, - tegra_clk_csite_8 = 44, - tegra_clk_csus = 45, - tegra_clk_cve = 46, - tegra_clk_dam0 = 47, - tegra_clk_dam1 = 48, - tegra_clk_dam2 = 49, - tegra_clk_d_audio = 50, - tegra_clk_dbgapb = 51, - tegra_clk_dds = 52, - tegra_clk_dfll_ref = 53, - tegra_clk_dfll_soc = 54, - tegra_clk_disp1 = 55, - tegra_clk_disp1_8 = 56, - tegra_clk_disp2 = 57, - tegra_clk_disp2_8 = 58, - tegra_clk_dp2 = 59, - tegra_clk_dpaux = 60, - tegra_clk_dpaux1 = 61, - tegra_clk_dsialp = 62, - tegra_clk_dsia_mux = 63, - tegra_clk_dsiblp = 64, - tegra_clk_dsib_mux = 65, - tegra_clk_dtv = 66, - tegra_clk_emc = 67, - tegra_clk_entropy = 68, - tegra_clk_entropy_8 = 69, - tegra_clk_epp = 70, - tegra_clk_epp_8 = 71, - tegra_clk_extern1 = 72, - tegra_clk_extern2 = 73, - tegra_clk_extern3 = 74, - tegra_clk_fuse = 75, - tegra_clk_fuse_burn = 76, - tegra_clk_gpu = 77, - tegra_clk_gr2d = 78, - tegra_clk_gr2d_8 = 79, - tegra_clk_gr3d = 80, - tegra_clk_gr3d_8 = 81, - tegra_clk_hclk = 82, - tegra_clk_hda = 83, - tegra_clk_hda_8 = 84, - tegra_clk_hda2codec_2x = 85, - tegra_clk_hda2codec_2x_8 = 86, - tegra_clk_hda2hdmi = 87, - tegra_clk_hdmi = 88, - tegra_clk_hdmi_audio = 89, - tegra_clk_host1x = 90, - tegra_clk_host1x_8 = 91, - tegra_clk_host1x_9 = 92, - tegra_clk_hsic_trk = 93, - tegra_clk_i2c1 = 94, - tegra_clk_i2c2 = 95, - tegra_clk_i2c3 = 96, - tegra_clk_i2c4 = 97, - tegra_clk_i2c5 = 98, - tegra_clk_i2c6 = 99, - tegra_clk_i2cslow = 100, - tegra_clk_i2s0 = 101, - tegra_clk_i2s0_sync = 102, - tegra_clk_i2s1 = 103, - tegra_clk_i2s1_sync = 104, - tegra_clk_i2s2 = 105, - tegra_clk_i2s2_sync = 106, - tegra_clk_i2s3 = 107, - tegra_clk_i2s3_sync = 108, - tegra_clk_i2s4 = 109, - tegra_clk_i2s4_sync = 110, - tegra_clk_isp = 111, - tegra_clk_isp_8 = 112, - tegra_clk_isp_9 = 113, - tegra_clk_ispb = 114, - tegra_clk_kbc = 115, - tegra_clk_kfuse = 116, - tegra_clk_la = 117, - tegra_clk_maud = 118, - tegra_clk_mipi = 119, - tegra_clk_mipibif = 120, - tegra_clk_mipi_cal = 121, - tegra_clk_mpe = 122, - tegra_clk_mselect = 123, - tegra_clk_msenc = 124, - tegra_clk_ndflash = 125, - tegra_clk_ndflash_8 = 126, - tegra_clk_ndspeed = 127, - tegra_clk_ndspeed_8 = 128, - tegra_clk_nor = 129, - tegra_clk_nvdec = 130, - tegra_clk_nvenc = 131, - tegra_clk_nvjpg = 132, - tegra_clk_owr = 133, - tegra_clk_owr_8 = 134, - tegra_clk_pcie = 135, - tegra_clk_pclk = 136, - tegra_clk_pll_a = 137, - tegra_clk_pll_a_out0 = 138, - tegra_clk_pll_a1 = 139, - tegra_clk_pll_c = 140, - tegra_clk_pll_c2 = 141, - tegra_clk_pll_c3 = 142, - tegra_clk_pll_c4 = 143, - tegra_clk_pll_c4_out0 = 144, - tegra_clk_pll_c4_out1 = 145, - tegra_clk_pll_c4_out2 = 146, - tegra_clk_pll_c4_out3 = 147, - tegra_clk_pll_c_out1 = 148, - tegra_clk_pll_d = 149, - tegra_clk_pll_d2 = 150, - tegra_clk_pll_d2_out0 = 151, - tegra_clk_pll_d_out0 = 152, - tegra_clk_pll_dp = 153, - tegra_clk_pll_e_out0 = 154, - tegra_clk_pll_g_ref = 155, - tegra_clk_pll_m = 156, - tegra_clk_pll_m_out1 = 157, - tegra_clk_pll_mb = 158, - tegra_clk_pll_p = 159, - tegra_clk_pll_p_out1 = 160, - tegra_clk_pll_p_out2 = 161, - tegra_clk_pll_p_out2_int = 162, - tegra_clk_pll_p_out3 = 163, - tegra_clk_pll_p_out4 = 164, - tegra_clk_pll_p_out4_cpu = 165, - tegra_clk_pll_p_out5 = 166, - tegra_clk_pll_p_out_hsio = 167, - tegra_clk_pll_p_out_xusb = 168, - tegra_clk_pll_p_out_cpu = 169, - tegra_clk_pll_p_out_adsp = 170, - tegra_clk_pll_ref = 171, - tegra_clk_pll_re_out = 172, - tegra_clk_pll_re_vco = 173, - tegra_clk_pll_u = 174, - tegra_clk_pll_u_out = 175, - tegra_clk_pll_u_out1 = 176, - tegra_clk_pll_u_out2 = 177, - tegra_clk_pll_u_12m = 178, - tegra_clk_pll_u_480m = 179, - tegra_clk_pll_u_48m = 180, - tegra_clk_pll_u_60m = 181, - tegra_clk_pll_x = 182, - tegra_clk_pll_x_out0 = 183, - tegra_clk_pwm = 184, - tegra_clk_qspi = 185, - tegra_clk_rtc = 186, - tegra_clk_sata = 187, - tegra_clk_sata_8 = 188, - tegra_clk_sata_cold = 189, - tegra_clk_sata_oob = 190, - tegra_clk_sata_oob_8 = 191, - tegra_clk_sbc1 = 192, - tegra_clk_sbc1_8 = 193, - tegra_clk_sbc1_9 = 194, - tegra_clk_sbc2 = 195, - tegra_clk_sbc2_8 = 196, - tegra_clk_sbc2_9 = 197, - tegra_clk_sbc3 = 198, - tegra_clk_sbc3_8 = 199, - tegra_clk_sbc3_9 = 200, - tegra_clk_sbc4 = 201, - tegra_clk_sbc4_8 = 202, - tegra_clk_sbc4_9 = 203, - tegra_clk_sbc5 = 204, - tegra_clk_sbc5_8 = 205, - tegra_clk_sbc6 = 206, - tegra_clk_sbc6_8 = 207, - tegra_clk_sclk = 208, - tegra_clk_sdmmc_legacy = 209, - tegra_clk_sdmmc1 = 210, - tegra_clk_sdmmc1_8 = 211, - tegra_clk_sdmmc1_9 = 212, - tegra_clk_sdmmc2 = 213, - tegra_clk_sdmmc2_8 = 214, - tegra_clk_sdmmc3 = 215, - tegra_clk_sdmmc3_8 = 216, - tegra_clk_sdmmc3_9 = 217, - tegra_clk_sdmmc4 = 218, - tegra_clk_sdmmc4_8 = 219, - tegra_clk_se = 220, - tegra_clk_se_10 = 221, - tegra_clk_soc_therm = 222, - tegra_clk_soc_therm_8 = 223, - tegra_clk_sor0 = 224, - tegra_clk_sor0_out = 225, - tegra_clk_sor1 = 226, - tegra_clk_sor1_out = 227, - tegra_clk_spdif = 228, - tegra_clk_spdif_2x = 229, - tegra_clk_spdif_in = 230, - tegra_clk_spdif_in_8 = 231, - tegra_clk_spdif_in_sync = 232, - tegra_clk_spdif_mux = 233, - tegra_clk_spdif_out = 234, - tegra_clk_timer = 235, - tegra_clk_trace = 236, - tegra_clk_tsec = 237, - tegra_clk_tsec_8 = 238, - tegra_clk_tsecb = 239, - tegra_clk_tsensor = 240, - tegra_clk_tvdac = 241, - tegra_clk_tvo = 242, - tegra_clk_uarta = 243, - tegra_clk_uarta_8 = 244, - tegra_clk_uartb = 245, - tegra_clk_uartb_8 = 246, - tegra_clk_uartc = 247, - tegra_clk_uartc_8 = 248, - tegra_clk_uartd = 249, - tegra_clk_uartd_8 = 250, - tegra_clk_uarte = 251, - tegra_clk_uarte_8 = 252, - tegra_clk_uartape = 253, - tegra_clk_usb2 = 254, - tegra_clk_usb2_hsic_trk = 255, - tegra_clk_usb2_trk = 256, - tegra_clk_usb3 = 257, - tegra_clk_usbd = 258, - tegra_clk_vcp = 259, - tegra_clk_vde = 260, - tegra_clk_vde_8 = 261, - tegra_clk_vfir = 262, - tegra_clk_vi = 263, - tegra_clk_vi_8 = 264, - tegra_clk_vi_9 = 265, - tegra_clk_vi_10 = 266, - tegra_clk_vi_i2c = 267, - tegra_clk_vic03 = 268, - tegra_clk_vic03_8 = 269, - tegra_clk_vim2_clk = 270, - tegra_clk_vimclk_sync = 271, - tegra_clk_vi_sensor = 272, - tegra_clk_vi_sensor_8 = 273, - tegra_clk_vi_sensor_9 = 274, - tegra_clk_vi_sensor2 = 275, - tegra_clk_vi_sensor2_8 = 276, - tegra_clk_xusb_dev = 277, - tegra_clk_xusb_dev_src = 278, - tegra_clk_xusb_dev_src_8 = 279, - tegra_clk_xusb_falcon_src = 280, - tegra_clk_xusb_falcon_src_8 = 281, - tegra_clk_xusb_fs_src = 282, - tegra_clk_xusb_gate = 283, - tegra_clk_xusb_host = 284, - tegra_clk_xusb_host_src = 285, - tegra_clk_xusb_host_src_8 = 286, - tegra_clk_xusb_hs_src = 287, - tegra_clk_xusb_hs_src_4 = 288, - tegra_clk_xusb_ss = 289, - tegra_clk_xusb_ss_src = 290, - tegra_clk_xusb_ss_src_8 = 291, - tegra_clk_xusb_ss_div2 = 292, - tegra_clk_xusb_ssp_src = 293, - tegra_clk_sclk_mux = 294, - tegra_clk_sor_safe = 295, - tegra_clk_cec = 296, - tegra_clk_ispa = 297, - tegra_clk_dmic1 = 298, - tegra_clk_dmic2 = 299, - tegra_clk_dmic3 = 300, - tegra_clk_dmic1_sync_clk = 301, - tegra_clk_dmic2_sync_clk = 302, - tegra_clk_dmic3_sync_clk = 303, - tegra_clk_dmic1_sync_clk_mux = 304, - tegra_clk_dmic2_sync_clk_mux = 305, - tegra_clk_dmic3_sync_clk_mux = 306, - tegra_clk_iqc1 = 307, - tegra_clk_iqc2 = 308, - tegra_clk_pll_a_out_adsp = 309, - tegra_clk_pll_a_out0_out_adsp = 310, - tegra_clk_adsp = 311, - tegra_clk_adsp_neon = 312, - tegra_clk_max = 313, +struct hi6421v530_regulator_info { + struct regulator_desc rdesc; + u8 mode_mask; + u32 eco_microamp; }; -struct tegra_clk { - int dt_id; - bool present; +struct hi6421_pmic { + struct regmap *regmap; }; -struct pdiv_map; - -struct div_nmp; - -struct tegra_clk_pll_freq_table; - -struct tegra_clk_pll; - -struct tegra_clk_pll_params { - unsigned long input_min; - unsigned long input_max; - unsigned long cf_min; - unsigned long cf_max; - unsigned long vco_min; - unsigned long vco_max; - u32 base_reg; - u32 misc_reg; - u32 lock_reg; - u32 lock_mask; - u32 lock_enable_bit_idx; - u32 iddq_reg; - u32 iddq_bit_idx; - u32 reset_reg; - u32 reset_bit_idx; - u32 sdm_din_reg; - u32 sdm_din_mask; - u32 sdm_ctrl_reg; - u32 sdm_ctrl_en_mask; - u32 ssc_ctrl_reg; - u32 ssc_ctrl_en_mask; - u32 aux_reg; - u32 dyn_ramp_reg; - u32 ext_misc_reg[6]; - u32 pmc_divnm_reg; - u32 pmc_divp_reg; - u32 flags; - int stepa_shift; - int stepb_shift; - int lock_delay; - int max_p; - bool defaults_set; - const struct pdiv_map *pdiv_tohw; - struct div_nmp *div_nmp; - struct tegra_clk_pll_freq_table *freq_table; - unsigned long fixed_rate; - u16 mdiv_default; - u32 (*round_p_to_pdiv)(u32, u32 *); - void (*set_gain)(struct tegra_clk_pll_freq_table *); - int (*calc_rate)(struct clk_hw *, struct tegra_clk_pll_freq_table *, unsigned long, unsigned long); - unsigned long (*adjust_vco)(struct tegra_clk_pll_params *, unsigned long); - void (*set_defaults)(struct tegra_clk_pll *); - int (*dyn_ramp)(struct tegra_clk_pll *, struct tegra_clk_pll_freq_table *); - int (*pre_rate_change)(); - void (*post_rate_change)(); +struct pc9450_dvs_config { + unsigned int run_reg; + unsigned int run_mask; + unsigned int standby_reg; + unsigned int standby_mask; }; -struct pdiv_map { - u8 pdiv; - u8 hw_val; +struct pca9450_regulator_desc { + struct regulator_desc desc; + const struct pc9450_dvs_config dvs; }; -struct div_nmp { - u8 divn_shift; - u8 divn_width; - u8 divm_shift; - u8 divm_width; - u8 divp_shift; - u8 divp_width; - u8 override_divn_shift; - u8 override_divm_shift; - u8 override_divp_shift; +enum pca9450_chip_type { + PCA9450_TYPE_PCA9450A = 0, + PCA9450_TYPE_PCA9450BC = 1, + PCA9450_TYPE_AMOUNT = 2, }; -struct tegra_clk_pll_freq_table { - unsigned long input_rate; - unsigned long output_rate; - u32 n; - u32 m; - u8 p; - u8 cpcon; - u16 sdm_data; +enum { + PCA9450_REG_DEV_ID = 0, + PCA9450_REG_INT1 = 1, + PCA9450_REG_INT1_MSK = 2, + PCA9450_REG_STATUS1 = 3, + PCA9450_REG_STATUS2 = 4, + PCA9450_REG_PWRON_STAT = 5, + PCA9450_REG_SWRST = 6, + PCA9450_REG_PWRCTRL = 7, + PCA9450_REG_RESET_CTRL = 8, + PCA9450_REG_CONFIG1 = 9, + PCA9450_REG_CONFIG2 = 10, + PCA9450_REG_BUCK123_DVS = 12, + PCA9450_REG_BUCK1OUT_LIMIT = 13, + PCA9450_REG_BUCK2OUT_LIMIT = 14, + PCA9450_REG_BUCK3OUT_LIMIT = 15, + PCA9450_REG_BUCK1CTRL = 16, + PCA9450_REG_BUCK1OUT_DVS0 = 17, + PCA9450_REG_BUCK1OUT_DVS1 = 18, + PCA9450_REG_BUCK2CTRL = 19, + PCA9450_REG_BUCK2OUT_DVS0 = 20, + PCA9450_REG_BUCK2OUT_DVS1 = 21, + PCA9450_REG_BUCK3CTRL = 22, + PCA9450_REG_BUCK3OUT_DVS0 = 23, + PCA9450_REG_BUCK3OUT_DVS1 = 24, + PCA9450_REG_BUCK4CTRL = 25, + PCA9450_REG_BUCK4OUT = 26, + PCA9450_REG_BUCK5CTRL = 27, + PCA9450_REG_BUCK5OUT = 28, + PCA9450_REG_BUCK6CTRL = 29, + PCA9450_REG_BUCK6OUT = 30, + PCA9450_REG_LDO_AD_CTRL = 32, + PCA9450_REG_LDO1CTRL = 33, + PCA9450_REG_LDO2CTRL = 34, + PCA9450_REG_LDO3CTRL = 35, + PCA9450_REG_LDO4CTRL = 36, + PCA9450_REG_LDO5CTRL_L = 37, + PCA9450_REG_LDO5CTRL_H = 38, + PCA9450_REG_LOADSW_CTRL = 42, + PCA9450_REG_VRFLT1_STS = 43, + PCA9450_REG_VRFLT2_STS = 44, + PCA9450_REG_VRFLT1_MASK = 45, + PCA9450_REG_VRFLT2_MASK = 46, + PCA9450_MAX_REGISTER = 47, }; -struct tegra_clk_pll { - struct clk_hw hw; - void *clk_base; - void *pmc; - spinlock_t *lock; - struct tegra_clk_pll_params *params; +enum { + PCA9450_DVS_LEVEL_RUN = 0, + PCA9450_DVS_LEVEL_STANDBY = 1, + PCA9450_DVS_LEVEL_MAX = 2, }; -enum pll_mode { - PLL_MODE_INT = 0, - PLL_MODE_FRAC = 1, - PLL_MODE_ERROR = 2, +struct pca9450 { + struct device *dev; + struct regmap *regmap; + struct gpio_desc *sd_vsel_gpio; + enum pca9450_chip_type type; + unsigned int rcnt; + int irq; }; -struct zynqmp_pll { - struct clk_hw hw; - u32 clk_id; - bool set_pll_mode; -}; +struct imx7_src_signal; -struct dmaengine_desc_callback { - dma_async_tx_callback callback; - dma_async_tx_callback_result callback_result; - void *callback_param; +struct imx7_src_variant { + const struct imx7_src_signal *signals; + unsigned int signals_num; + struct reset_control_ops ops; }; -struct bcm_pmb_pd_data { - const char * const name; - int id; - u8 bus; - u8 device; +struct imx7_src_signal { + unsigned int offset; + unsigned int bit; }; -struct bcm_pmb; - -struct bcm_pmb_pm_domain { - struct bcm_pmb *pmb; - const struct bcm_pmb_pd_data *data; - struct generic_pm_domain genpd; +struct imx7_src { + struct reset_controller_dev rcdev; + struct regmap *regmap; + const struct imx7_src_signal *signals; }; -struct bcm_pmb { - struct device *dev; - void *base; - spinlock_t lock; - bool little_endian; - struct genpd_onecell_data genpd_onecell_data; +struct ldsem_waiter { + struct list_head list; + struct task_struct *task; }; -struct qmp_cooling_device; - -struct qmp { - void *msgram; - struct device *dev; - struct mbox_client mbox_client; - struct mbox_chan *mbox_chan; - size_t offset; - size_t size; - wait_queue_head_t event; - struct mutex tx_lock; - struct clk_hw qdss_clk; - struct qmp_cooling_device *cooling_devs; +struct pl011_dmabuf { + dma_addr_t dma; + size_t len; + char *buf; }; -struct qmp_cooling_device { - struct thermal_cooling_device *cdev; - struct qmp *qmp; - char *name; - bool state; +struct pl011_dmarx_data { + struct dma_chan *chan; + struct completion complete; + bool use_buf_b; + struct pl011_dmabuf dbuf_a; + struct pl011_dmabuf dbuf_b; + dma_cookie_t cookie; + bool running; + struct timer_list timer; + unsigned int last_residue; + unsigned long last_jiffies; + bool auto_poll_rate; + unsigned int poll_rate; + unsigned int poll_timeout; }; -struct tegra_fuse; - -struct tegra_fuse_info; - -struct nvmem_cell_lookup; - -struct tegra_fuse_soc { - void (*init)(struct tegra_fuse *); - void (*speedo_init)(struct tegra_sku_info *); - int (*probe)(struct tegra_fuse *); - const struct tegra_fuse_info *info; - const struct nvmem_cell_lookup *lookups; - unsigned int num_lookups; - const struct nvmem_cell_info *cells; - unsigned int num_cells; - const struct nvmem_keepout *keepouts; - unsigned int num_keepouts; - const struct attribute_group *soc_attr_group; - bool clk_suspend_on; +struct pl011_dmatx_data { + struct dma_chan *chan; + dma_addr_t dma; + size_t len; + char *buf; + bool queued; }; -struct tegra_fuse { - struct device *dev; - void *base; - phys_addr_t phys; +struct vendor_data; + +struct uart_amba_port { + struct uart_port port; + const u16 *reg_offset; struct clk *clk; - struct reset_control *rst; - u32 (*read_early)(struct tegra_fuse *, unsigned int); - u32 (*read)(struct tegra_fuse *, unsigned int); - const struct tegra_fuse_soc *soc; - struct { - struct mutex lock; - struct completion wait; - struct dma_chan *chan; - struct dma_slave_config config; - dma_addr_t phys; - u32 *virt; - } apbdma; - struct nvmem_device *nvmem; - struct nvmem_cell_lookup *lookups; + const struct vendor_data *vendor; + unsigned int dmacr; + unsigned int im; + unsigned int old_status; + unsigned int fifosize; + unsigned int fixed_baud; + char type[12]; + bool rs485_tx_started; + unsigned int rs485_tx_drain_interval; + bool using_tx_dma; + bool using_rx_dma; + struct pl011_dmarx_data dmarx; + struct pl011_dmatx_data dmatx; + bool dma_probed; }; -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 vendor_data { + const u16 *reg_offset; + unsigned int ifls; + unsigned int fr_busy; + unsigned int fr_dsr; + unsigned int fr_cts; + unsigned int fr_ri; + unsigned int inv_fr; + bool access_32b; + bool oversampling; + bool dma_threshold; + bool cts_event_workaround; + bool always_enabled; + bool fixed_options; + unsigned int (*get_fifosize)(struct amba_device *); }; -struct tegra_fuse_info { - u32 (*read)(struct tegra_fuse *, unsigned int); - unsigned int size; - unsigned int spare; +enum { + REG_DR = 0, + REG_ST_DMAWM = 1, + REG_ST_TIMEOUT = 2, + REG_FR = 3, + REG_LCRH_RX = 4, + REG_LCRH_TX = 5, + REG_IBRD = 6, + REG_FBRD = 7, + REG_CR = 8, + REG_IFLS = 9, + REG_IMSC = 10, + REG_RIS = 11, + REG_MIS = 12, + REG_ICR = 13, + REG_DMACR = 14, + REG_ST_XFCR = 15, + REG_ST_XON1 = 16, + REG_ST_XON2 = 17, + REG_ST_XOFF1 = 18, + REG_ST_XOFF2 = 19, + REG_ST_ITCR = 20, + REG_ST_ITIP = 21, + REG_ST_ABCR = 22, + REG_ST_ABIMSC = 23, + REG_ARRAY_SIZE = 24, }; -struct xsd_errors { - int errnum; - const char *errstring; +struct amba_pl011_data { + bool (*dma_filter)(struct dma_chan *, void *); + void *dma_rx_param; + void *dma_tx_param; + bool dma_rx_poll_enable; + unsigned int dma_rx_poll_rate; + unsigned int dma_rx_poll_timeout; + void (*init)(); + void (*exit)(); }; -enum xsd_sockmsg_type { - XS_CONTROL = 0, - XS_DIRECTORY = 1, - XS_READ = 2, - XS_GET_PERMS = 3, - XS_WATCH = 4, - XS_UNWATCH = 5, - XS_TRANSACTION_START = 6, - XS_TRANSACTION_END = 7, - XS_INTRODUCE = 8, - XS_RELEASE = 9, - XS_GET_DOMAIN_PATH = 10, - XS_WRITE = 11, - XS_MKDIR = 12, - XS_RM = 13, - XS_SET_PERMS = 14, - XS_WATCH_EVENT = 15, - XS_ERROR = 16, - XS_IS_DOMAIN_INTRODUCED = 17, - XS_RESUME = 18, - XS_SET_TARGET = 19, - XS_RESET_WATCHES = 21, - XS_DIRECTORY_PART = 22, - XS_TYPE_COUNT = 23, - XS_INVALID = 65535, +struct cavium_rng_pf { + void *control_status; }; -enum xb_req_state { - xb_req_state_queued = 0, - xb_req_state_wait_reply = 1, - xb_req_state_got_reply = 2, - xb_req_state_aborted = 3, +enum qcom_iommu_clk { + CLK_IFACE = 0, + CLK_BUS = 1, + CLK_TBU = 2, + CLK_NUM = 3, }; -enum xenstore_init { - XS_UNKNOWN = 0, - XS_PV = 1, - XS_HVM = 2, - XS_LOCAL = 3, -}; +struct qcom_iommu_dev; -struct xs_watch_event { - struct list_head list; - unsigned int len; - struct xenbus_watch *handle; - const char *path; - const char *token; - char body[0]; +struct qcom_iommu_domain { + struct io_pgtable_ops *pgtbl_ops; + spinlock_t pgtbl_lock; + struct mutex init_mutex; + struct iommu_domain domain; + struct qcom_iommu_dev *iommu; + struct iommu_fwspec *fwspec; }; -struct xsd_sockmsg { - uint32_t type; - uint32_t req_id; - uint32_t tx_id; - uint32_t len; -}; +struct qcom_iommu_ctx; -struct xb_req_data { - struct list_head list; - wait_queue_head_t wq; - struct xsd_sockmsg msg; - uint32_t caller_req_id; - enum xsd_sockmsg_type type; - char *body; - const struct kvec *vec; - int num_vecs; - int err; - enum xb_req_state state; - bool user_req; - void (*cb)(struct xb_req_data *); - void *par; +struct qcom_iommu_dev { + struct iommu_device iommu; + struct device *dev; + struct clk_bulk_data clks[3]; + void *local_base; + u32 sec_id; + u8 max_asid; + struct qcom_iommu_ctx *ctxs[0]; }; -struct cros_ec_regulator_data { - struct regulator_desc desc; - struct regulator_dev *dev; - struct cros_ec_device *ec_dev; - u32 index; - u16 *voltages_mV; - u16 num_voltages; +struct qcom_iommu_ctx { + struct device *dev; + void *base; + bool secure_init; + bool secured_ctx; + u8 asid; + struct iommu_domain *domain; }; -struct ec_params_regulator_get_info { - uint32_t index; +struct drm_dmi_panel_orientation_data { + int width; + int height; + const char * const *bios_dates; + int orientation; }; -struct ec_response_regulator_get_info { - char name[16]; - uint16_t num_voltages; - uint16_t voltages_mv[16]; +enum drm_panel_orientation { + DRM_MODE_PANEL_ORIENTATION_UNKNOWN = -1, + DRM_MODE_PANEL_ORIENTATION_NORMAL = 0, + DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP = 1, + DRM_MODE_PANEL_ORIENTATION_LEFT_UP = 2, + DRM_MODE_PANEL_ORIENTATION_RIGHT_UP = 3, }; -struct ec_params_regulator_set_voltage { - uint32_t index; - uint32_t min_mv; - uint32_t max_mv; -}; +struct aggregate_device; -struct ec_params_regulator_get_voltage { - uint32_t index; -}; +struct component_ops; -struct ec_response_regulator_get_voltage { - uint32_t voltage_mv; +struct component { + struct list_head node; + struct aggregate_device *adev; + bool bound; + const struct component_ops *ops; + int subcomponent; + struct device *dev; }; -struct ec_params_regulator_enable { - uint32_t index; - uint8_t enable; -} __attribute__((packed)); +struct component_master_ops; -struct ec_params_regulator_is_enabled { - uint32_t index; -}; +struct component_match; -struct ec_response_regulator_is_enabled { - uint8_t enabled; +struct aggregate_device { + struct list_head node; + bool bound; + const struct component_master_ops *ops; + struct device *parent; + struct component_match *match; }; -struct meson_reset_param { - int reg_count; - int level_offset; +struct component_master_ops { + int (*bind)(struct device *); + void (*unbind)(struct device *); }; -struct meson_reset { - void *reg_base; - const struct meson_reset_param *param; - struct reset_controller_dev rcdev; - spinlock_t lock; -}; +struct component_match_array; -struct kbdiacruc { - unsigned int diacr; - unsigned int base; - unsigned int result; +struct component_match { + size_t alloc; + size_t num; + struct component_match_array *compare; }; -struct iproc_rng200_dev { - struct hwrng rng; - void *base; +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 arm_smmu_device; - -struct arm_smmu_domain; - -struct arm_smmu_impl { - u32 (*read_reg)(struct arm_smmu_device *, int, int); - void (*write_reg)(struct arm_smmu_device *, int, int, u32); - u64 (*read_reg64)(struct arm_smmu_device *, int, int); - void (*write_reg64)(struct arm_smmu_device *, int, int, u64); - int (*cfg_probe)(struct arm_smmu_device *); - int (*reset)(struct arm_smmu_device *); - int (*init_context)(struct arm_smmu_domain *, struct io_pgtable_cfg *, struct device *); - void (*tlb_sync)(struct arm_smmu_device *, int, int, int); - int (*def_domain_type)(struct device *); - irqreturn_t (*global_fault)(int, void *); - irqreturn_t (*context_fault)(int, void *); - int (*alloc_context_bank)(struct arm_smmu_domain *, struct arm_smmu_device *, struct device *, int); - void (*write_s2cr)(struct arm_smmu_device *, int); - void (*write_sctlr)(struct arm_smmu_device *, int, u32); - void (*probe_finalize)(struct arm_smmu_device *, struct device *); +struct component_ops { + int (*bind)(struct device *, struct device *, void *); + void (*unbind)(struct device *, struct device *, void *); }; -enum arm_smmu_arch_version { - ARM_SMMU_V1 = 0, - ARM_SMMU_V1_64K = 1, - ARM_SMMU_V2 = 2, +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 arm_smmu_implementation { - GENERIC_SMMU = 0, - ARM_MMU500 = 1, - CAVIUM_SMMUV2 = 2, - QCOM_SMMUV2 = 3, +struct async_domain { + struct list_head pending; + unsigned int registered: 1; }; -struct arm_smmu_cb; - -struct arm_smmu_smr; +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 arm_smmu_s2cr; +struct fw_cache_entry { + struct list_head list; + const char *name; +}; -struct arm_smmu_device { - struct device *dev; - void *base; - phys_addr_t ioaddr; - unsigned int numpage; - unsigned int pgshift; - u32 features; - enum arm_smmu_arch_version version; - enum arm_smmu_implementation model; - const struct arm_smmu_impl *impl; - u32 num_context_banks; - u32 num_s2_context_banks; - unsigned long context_map[2]; - struct arm_smmu_cb *cbs; - atomic_t irptndx; - u32 num_mapping_groups; - u16 streamid_mask; - u16 smr_mask_mask; - struct arm_smmu_smr *smrs; - struct arm_smmu_s2cr *s2crs; - struct mutex stream_map_mutex; - unsigned long va_size; - unsigned long ipa_size; - unsigned long pa_size; - unsigned long pgsize_bitmap; - int num_context_irqs; - int num_clks; - unsigned int *irqs; - struct clk_bulk_data *clks; - spinlock_t global_sync_lock; - struct iommu_device iommu; +struct fw_name_devm { + unsigned long magic; + const char *name; }; -struct arm_smmu_cfg; +typedef void (*async_func_t)(void *, async_cookie_t); -struct arm_smmu_cb { - u64 ttbr[2]; - u32 tcr[2]; - u32 mair[2]; - struct arm_smmu_cfg *cfg; +struct chip_data { + u32 cid_addr; + u32 cid_shift; + const struct mfd_cell *cells; + int cell_size; + int (*irq_init)(struct mt6397_chip *); }; -enum arm_smmu_cbar_type { - CBAR_TYPE_S2_TRANS = 0, - CBAR_TYPE_S1_TRANS_S2_BYPASS = 1, - CBAR_TYPE_S1_TRANS_S2_FAULT = 2, - CBAR_TYPE_S1_TRANS_S2_TRANS = 3, +struct altr_sysmgr { + struct regmap *regmap; }; -enum arm_smmu_context_fmt { - ARM_SMMU_CTX_FMT_NONE = 0, - ARM_SMMU_CTX_FMT_AARCH64 = 1, - ARM_SMMU_CTX_FMT_AARCH32_L = 2, - ARM_SMMU_CTX_FMT_AARCH32_S = 3, +enum sas_phy_role { + PHY_ROLE_NONE = 0, + PHY_ROLE_TARGET = 64, + PHY_ROLE_INITIATOR = 128, }; -struct arm_smmu_cfg { - u8 cbndx; - u8 irptndx; - union { - u16 asid; - u16 vmid; - }; - enum arm_smmu_cbar_type cbar; - enum arm_smmu_context_fmt fmt; - bool flush_walk_prefer_tlbiasid; +enum sas_oob_mode { + OOB_NOT_CONNECTED = 0, + SATA_OOB_MODE = 1, + SAS_OOB_MODE = 2, }; -struct arm_smmu_smr { - u16 mask; - u16 id; - bool valid; - bool pinned; +enum ex_phy_state { + PHY_EMPTY = 0, + PHY_VACANT = 1, + PHY_NOT_PRESENT = 2, + PHY_DEVICE_DISCOVERED = 3, }; -enum arm_smmu_s2cr_type { - S2CR_TYPE_TRANS = 0, - S2CR_TYPE_BYPASS = 1, - S2CR_TYPE_FAULT = 2, +enum routing_attribute { + DIRECT_ROUTING = 0, + SUBTRACTIVE_ROUTING = 1, + TABLE_ROUTING = 2, }; -enum arm_smmu_s2cr_privcfg { - S2CR_PRIVCFG_DEFAULT = 0, - S2CR_PRIVCFG_DIPAN = 1, - S2CR_PRIVCFG_UNPRIV = 2, - S2CR_PRIVCFG_PRIV = 3, +enum task_attribute { + TASK_ATTR_SIMPLE = 0, + TASK_ATTR_HOQ = 1, + TASK_ATTR_ORDERED = 2, + TASK_ATTR_ACA = 4, }; -struct arm_smmu_s2cr { - struct iommu_group *group; - int count; - enum arm_smmu_s2cr_type type; - enum arm_smmu_s2cr_privcfg privcfg; - u8 cbndx; +enum sas_internal_abort { + SAS_INTERNAL_ABORT_SINGLE = 0, + SAS_INTERNAL_ABORT_DEV = 1, }; -enum arm_smmu_domain_stage { - ARM_SMMU_DOMAIN_S1 = 0, - ARM_SMMU_DOMAIN_S2 = 1, - ARM_SMMU_DOMAIN_NESTED = 2, - ARM_SMMU_DOMAIN_BYPASS = 3, +enum service_response { + SAS_TASK_COMPLETE = 0, + SAS_TASK_UNDELIVERED = -1, }; -struct arm_smmu_domain { - struct arm_smmu_device *smmu; - struct io_pgtable_ops *pgtbl_ops; - unsigned long pgtbl_quirks; - const struct iommu_flush_ops *flush_ops; - struct arm_smmu_cfg cfg; - enum arm_smmu_domain_stage stage; - struct mutex init_mutex; - spinlock_t cb_lock; - struct iommu_domain domain; +enum exec_status { + SAS_SAM_STAT_GOOD = 0, + SAS_SAM_STAT_BUSY = 8, + SAS_SAM_STAT_TASK_ABORTED = 64, + SAS_SAM_STAT_CHECK_CONDITION = 2, + SAS_DEV_NO_RESPONSE = 128, + SAS_DATA_UNDERRUN = 129, + SAS_DATA_OVERRUN = 130, + SAS_INTERRUPTED = 131, + SAS_QUEUE_FULL = 132, + SAS_DEVICE_UNKNOWN = 133, + SAS_OPEN_REJECT = 134, + SAS_OPEN_TO = 135, + SAS_PROTO_RESPONSE = 136, + SAS_PHY_DOWN = 137, + SAS_NAK_R_ERR = 138, + SAS_PENDING = 139, + SAS_ABORTED_TASK = 140, }; -struct cavium_smmu { - struct arm_smmu_device smmu; - u32 id_base; +enum sas_open_rej_reason { + SAS_OREJ_UNKNOWN = 0, + SAS_OREJ_BAD_DEST = 1, + SAS_OREJ_CONN_RATE = 2, + SAS_OREJ_EPROTO = 3, + SAS_OREJ_RESV_AB0 = 4, + SAS_OREJ_RESV_AB1 = 5, + SAS_OREJ_RESV_AB2 = 6, + SAS_OREJ_RESV_AB3 = 7, + SAS_OREJ_WRONG_DEST = 8, + SAS_OREJ_STP_NORES = 9, + SAS_OREJ_NO_DEST = 10, + SAS_OREJ_PATH_BLOCKED = 11, + SAS_OREJ_RSVD_CONT0 = 12, + SAS_OREJ_RSVD_CONT1 = 13, + SAS_OREJ_RSVD_INIT0 = 14, + SAS_OREJ_RSVD_INIT1 = 15, + SAS_OREJ_RSVD_STOP0 = 16, + SAS_OREJ_RSVD_STOP1 = 17, + SAS_OREJ_RSVD_RETRY = 18, }; -struct internal_container { - struct klist_node node; - struct attribute_container *cont; - struct device classdev; +enum phy_func { + PHY_FUNC_NOP = 0, + PHY_FUNC_LINK_RESET = 1, + PHY_FUNC_HARD_RESET = 2, + PHY_FUNC_DISABLE = 3, + PHY_FUNC_CLEAR_ERROR_LOG = 5, + PHY_FUNC_CLEAR_AFFIL = 6, + PHY_FUNC_TX_SATA_PS_SIGNAL = 7, + PHY_FUNC_RELEASE_SPINUP_HOLD = 16, + PHY_FUNC_SET_LINK_RATE = 17, + PHY_FUNC_GET_EVENTS = 18, }; -enum pce_status { - PCE_STATUS_NONE = 0, - PCE_STATUS_ACQUIRED = 1, - PCE_STATUS_PREPARED = 2, - PCE_STATUS_ENABLED = 3, - PCE_STATUS_ERROR = 4, +struct sas_work { + struct list_head drain_node; + struct work_struct work; }; -struct pm_clock_entry { - struct list_head node; - char *con_id; - struct clk *clk; - enum pce_status status; - bool enabled_when_prepared; -}; +struct asd_sas_phy; -struct pm_clk_notifier_block { - struct notifier_block nb; - struct dev_pm_domain *pm_domain; - char *con_ids[0]; +struct asd_sas_event { + struct sas_work work; + struct asd_sas_phy *phy; + int event; }; -struct dma_fence; - -typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); +struct asd_sas_port; -struct dma_fence_ops; +struct sas_ha_struct; -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; +struct asd_sas_phy { + atomic_t event_nr; + int in_shutdown; int error; + int suspended; + struct sas_phy *phy; + int enabled; + int id; + enum sas_protocol iproto; + enum sas_protocol tproto; + enum sas_phy_role role; + enum sas_oob_mode oob_mode; + enum sas_linkrate linkrate; + u8 *sas_addr; + u8 attached_sas_addr[8]; + spinlock_t frame_rcvd_lock; + u8 *frame_rcvd; + int frame_rcvd_size; + spinlock_t sas_prim_lock; + u32 sas_prim; + struct list_head port_phy_el; + struct asd_sas_port *port; + struct sas_ha_struct *ha; + void *lldd_phy; }; -struct dma_fence_ops { - bool use_64bit_seqno; - const char * (*get_driver_name)(struct dma_fence *); - const char * (*get_timeline_name)(struct dma_fence *); - bool (*enable_signaling)(struct dma_fence *); - bool (*signaled)(struct dma_fence *); - long (*wait)(struct dma_fence *, bool, long); - void (*release)(struct dma_fence *); - void (*fence_value_str)(struct dma_fence *, char *, int); - void (*timeline_value_str)(struct dma_fence *, char *, int); - void (*set_deadline)(struct dma_fence *, ktime_t); +struct sas_discovery_event { + struct sas_work work; + struct asd_sas_port *port; }; -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 *); +struct sas_discovery { + struct sas_discovery_event disc_work[4]; + unsigned long pending; + u8 fanout_sas_addr[8]; + u8 eeds_a[8]; + u8 eeds_b[8]; + int max_level; +}; -typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *); +struct domain_device; -enum dma_fence_flag_bits { - DMA_FENCE_FLAG_SIGNALED_BIT = 0, - DMA_FENCE_FLAG_TIMESTAMP_BIT = 1, - DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2, - DMA_FENCE_FLAG_USER_BITS = 3, +struct asd_sas_port { + struct sas_discovery disc; + struct domain_device *port_dev; + spinlock_t dev_list_lock; + struct list_head dev_list; + struct list_head disco_list; + struct list_head destroy_list; + struct list_head sas_port_del_list; + enum sas_linkrate linkrate; + struct sas_work work; + int suspended; + int id; + u8 sas_addr[8]; + u8 attached_sas_addr[8]; + enum sas_protocol iproto; + enum sas_protocol tproto; + enum sas_oob_mode oob_mode; + spinlock_t phy_list_lock; + struct list_head phy_list; + int num_phys; + u32 phy_mask; + struct sas_ha_struct *ha; + struct sas_port *port; + void *lldd_port; }; -struct dma_fence_cb; - -typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *); +struct ex_phy; -struct dma_fence_cb { - struct list_head node; - dma_fence_func_t func; +struct expander_device { + struct list_head children; + int ex_change_count; + u16 max_route_indexes; + u8 num_phys; + u8 t2t_supp: 1; + u8 configuring: 1; + u8 conf_route_table: 1; + u8 enclosure_logical_id[8]; + struct ex_phy *ex_phy; + struct sas_port *parent_port; + struct mutex cmd_mutex; }; -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 dev_to_host_fis { + u8 fis_type; + u8 flags; + u8 status; + u8 error; + u8 lbal; + union { + u8 lbam; + u8 byte_count_low; + }; + union { + u8 lbah; + u8 byte_count_high; + }; + u8 device; + u8 lbal_exp; + u8 lbam_exp; + u8 lbah_exp; + u8 _r_a; + union { + u8 sector_count; + u8 interrupt_reason; + }; + u8 sector_count_exp; + u8 _r_b; + u8 _r_c; + u32 _r_d; }; -struct default_wait_cb { - struct dma_fence_cb base; - struct task_struct *task; +struct report_phy_sata_resp { + u8 _r_a[5]; + u8 phy_id; + u8 _r_b; + u8 affil_valid: 1; + u8 affil_supp: 1; + u8 _r_c: 6; + u32 _r_d; + u8 stp_sas_addr[8]; + struct dev_to_host_fis fis; + u32 _r_e; + u8 affil_stp_ini_addr[8]; + __be32 crc; }; -struct trace_event_data_offsets_dma_fence { - u32 driver; - u32 timeline; +struct smp_rps_resp { + u8 frame_type; + u8 function; + u8 result; + u8 reserved; + struct report_phy_sata_resp rps; }; -struct hisi_sas_debugfs_reg_lu; - -struct hisi_sas_debugfs_reg { - const struct hisi_sas_debugfs_reg_lu *lu; - int count; - int base_off; +struct sata_device { + unsigned int class; + u8 port_no; + struct ata_port *ap; + struct ata_host *ata_host; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct smp_rps_resp rps_resp; + u8 fis[24]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct hisi_sas_debugfs_reg_lu { - char *name; - int off; +struct scsi_lun { + __u8 scsi_lun[8]; }; -struct hisi_sas_hw_error { - u32 irq_msk; - u32 msk; - int shift; - const char *msg; - int reg; - const struct hisi_sas_hw_error *sub; +struct ssp_device { + struct list_head eh_list_node; + struct scsi_lun reset_lun; }; -enum hisi_sas_debugfs_reg_array_member { - DEBUGFS_GLOBAL = 0, - DEBUGFS_AXI = 1, - DEBUGFS_RAS = 2, - DEBUGFS_REGS_NUM = 3, +struct domain_device { + spinlock_t done_lock; + enum sas_device_type dev_type; + enum sas_linkrate linkrate; + enum sas_linkrate min_linkrate; + enum sas_linkrate max_linkrate; + int pathways; + struct domain_device *parent; + struct list_head siblings; + struct asd_sas_port *port; + struct sas_phy *phy; + struct list_head dev_list_node; + struct list_head disco_list_node; + enum sas_protocol iproto; + enum sas_protocol tproto; + struct sas_rphy *rphy; + u8 sas_addr[8]; + u8 hashed_sas_addr[3]; + u8 frame_rcvd[32]; + long: 64; + long: 64; + long: 64; + long: 64; + union { + struct expander_device ex_dev; + struct sata_device sata_dev; + struct ssp_device ssp_dev; + }; + void *lldd_dev; + unsigned long state; + struct kref kref; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -enum hisi_sas_debugfs_cache_type { - HISI_SAS_ITCT_CACHE = 0, - HISI_SAS_IOST_CACHE = 1, +struct ex_phy { + int phy_id; + enum ex_phy_state phy_state; + enum sas_device_type attached_dev_type; + enum sas_linkrate linkrate; + u8 attached_sata_host: 1; + u8 attached_sata_dev: 1; + u8 attached_sata_ps: 1; + enum sas_protocol attached_tproto; + enum sas_protocol attached_iproto; + u8 attached_sas_addr[8]; + u8 attached_phy_id; + int phy_change_count; + enum routing_attribute routing_attr; + u8 virtual: 1; + int last_da_index; + struct sas_phy *phy; + struct sas_port *port; }; -enum hisi_sas_dev_type { - HISI_SAS_DEV_TYPE_STP = 0, - HISI_SAS_DEV_TYPE_SSP = 1, - HISI_SAS_DEV_TYPE_SATA = 2, +struct sas_ha_struct { + struct list_head defer_q; + struct mutex drain_mutex; + unsigned long state; + spinlock_t lock; + int eh_active; + wait_queue_head_t eh_wait_q; + struct list_head eh_dev_q; + struct mutex disco_mutex; + struct Scsi_Host *shost; + char *sas_ha_name; + struct device *dev; + struct workqueue_struct *event_q; + struct workqueue_struct *disco_q; + u8 *sas_addr; + u8 hashed_sas_addr[3]; + spinlock_t phy_port_lock; + struct asd_sas_phy **sas_phy; + struct asd_sas_port **sas_port; + int num_phys; + int strict_wide_ports; + void *lldd_ha; + struct list_head eh_done_q; + struct list_head eh_ata_q; + int event_thres; }; -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, -}; +struct sas_task; -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, +struct sas_domain_function_template { + void (*lldd_port_formed)(struct asd_sas_phy *); + void (*lldd_port_deformed)(struct asd_sas_phy *); + int (*lldd_dev_found)(struct domain_device *); + void (*lldd_dev_gone)(struct domain_device *); + int (*lldd_execute_task)(struct sas_task *, gfp_t); + int (*lldd_abort_task)(struct sas_task *); + int (*lldd_abort_task_set)(struct domain_device *, u8 *); + int (*lldd_clear_task_set)(struct domain_device *, u8 *); + int (*lldd_I_T_nexus_reset)(struct domain_device *); + int (*lldd_ata_check_ready)(struct domain_device *); + void (*lldd_ata_set_dmamode)(struct domain_device *); + int (*lldd_lu_reset)(struct domain_device *, u8 *); + int (*lldd_query_task)(struct sas_task *); + void (*lldd_tmf_exec_complete)(struct domain_device *); + void (*lldd_tmf_aborted)(struct sas_task *); + bool (*lldd_abort_timeout)(struct sas_task *, void *); + int (*lldd_clear_nexus_port)(struct asd_sas_port *); + int (*lldd_clear_nexus_ha)(struct sas_ha_struct *); + int (*lldd_control_phy)(struct asd_sas_phy *, enum phy_func, void *); + int (*lldd_write_gpio)(struct sas_ha_struct *, u8, u8, u8, u8 *); }; -enum { - DSM_FUNC_ERR_HANDLE_MSI = 0, +struct host_to_dev_fis { + u8 fis_type; + u8 flags; + u8 command; + u8 features; + u8 lbal; + union { + u8 lbam; + u8 byte_count_low; + }; + union { + u8 lbah; + u8 byte_count_high; + }; + u8 device; + u8 lbal_exp; + u8 lbam_exp; + u8 lbah_exp; + u8 features_exp; + union { + u8 sector_count; + u8 interrupt_reason; + }; + u8 sector_count_exp; + u8 _r_a; + u8 control; + u32 _r_b; }; -enum hisi_sas_debugfs_bist_ffe_cfg { - FFE_SAS_1_5_GBPS = 0, - FFE_SAS_3_0_GBPS = 1, - FFE_SAS_6_0_GBPS = 2, - FFE_SAS_12_0_GBPS = 3, - FFE_RESV = 4, - FFE_SATA_1_5_GBPS = 5, - FFE_SATA_3_0_GBPS = 6, - FFE_SATA_6_0_GBPS = 7, - FFE_CFG_MAX = 8, +struct sas_ata_task { + struct host_to_dev_fis fis; + u8 atapi_packet[16]; + u8 dma_xfer: 1; + u8 use_ncq: 1; + u8 return_fis_on_success: 1; + u8 device_control_reg_update: 1; + bool force_phy; + int force_phy_id; }; -enum sas_gpio_reg_type { - SAS_GPIO_REG_CFG = 0, - SAS_GPIO_REG_RX = 1, - SAS_GPIO_REG_RX_GP = 2, - SAS_GPIO_REG_TX = 3, - SAS_GPIO_REG_TX_GP = 4, +struct sas_smp_task { + struct scatterlist smp_req; + struct scatterlist smp_resp; }; -enum hisi_sas_debugfs_bist_fixed_code { - FIXED_CODE = 0, - FIXED_CODE_1 = 1, - FIXED_CODE_MAX = 2, +struct sas_ssp_task { + u8 LUN[8]; + enum task_attribute task_attr; + struct scsi_cmnd *cmd; }; -enum { - HISI_SAS_BIST_CODE_MODE_PRBS7 = 0, - HISI_SAS_BIST_CODE_MODE_PRBS23 = 1, - HISI_SAS_BIST_CODE_MODE_PRBS31 = 2, - HISI_SAS_BIST_CODE_MODE_JTPAT = 3, - HISI_SAS_BIST_CODE_MODE_CJTPAT = 4, - HISI_SAS_BIST_CODE_MODE_SCRAMBED_0 = 5, - HISI_SAS_BIST_CODE_MODE_TRAIN = 6, - HISI_SAS_BIST_CODE_MODE_TRAIN_DONE = 7, - HISI_SAS_BIST_CODE_MODE_HFTP = 8, - HISI_SAS_BIST_CODE_MODE_MFTP = 9, - HISI_SAS_BIST_CODE_MODE_LFTP = 10, - HISI_SAS_BIST_CODE_MODE_FIXED_DATA = 11, +struct sas_internal_abort_task { + enum sas_internal_abort type; + unsigned int qid; + u16 tag; }; -enum fifo_dump_mode_v3_hw { - FIFO_DUMP_FORVER = 1, - FIFO_DUMP_AFTER_TRIGGER = 2, - FIFO_DUMP_UNTILL_TRIGGER = 4, +struct task_status_struct { + enum service_response resp; + enum exec_status stat; + int buf_valid_size; + u8 buf[96]; + u32 residual; + enum sas_open_rej_reason open_rej_reason; }; -enum fifo_trigger_mode_v3_hw { - FIFO_TRIGGER_EDGE = 1, - FIFO_TRIGGER_SAME_LEVEL = 2, - FIFO_TRIGGER_DIFF_LEVEL = 4, -}; +struct sas_task_slow; -struct hisi_sas_complete_v3_hdr { - __le32 dw0; - __le32 dw1; - __le32 act; - __le32 dw3; -}; +struct sas_tmf_task; -struct ssp_response_iu { - u8 _r_a[10]; - u8 datapres: 2; - u8 _r_b: 6; - u8 status; - u32 _r_c; - __be32 sense_data_len; - __be32 response_data_len; +struct sas_task { + struct domain_device *dev; + spinlock_t task_state_lock; + unsigned int task_state_flags; + enum sas_protocol task_proto; union { - struct { - struct {} __empty_resp_data; - u8 resp_data[0]; - }; - struct { - struct {} __empty_sense_data; - u8 sense_data[0]; - }; + struct sas_ata_task ata_task; + struct sas_smp_task smp_task; + struct sas_ssp_task ssp_task; + struct sas_internal_abort_task abort_task; }; + struct scatterlist *scatter; + int num_scatter; + u32 total_xfer_len; + u8 data_dir: 2; + struct task_status_struct task_status; + void (*task_done)(struct sas_task *); + void *lldd_task; + void *uldd_task; + struct sas_task_slow *slow_task; + struct sas_tmf_task *tmf; }; -struct hisi_sas_err_record_v3 { - __le32 trans_tx_fail_type; - __le32 trans_rx_fail_type; - __le16 dma_tx_err_type; - __le16 sipc_rx_err_type; - __le32 dma_rx_err_type; +struct sas_task_slow { + struct timer_list timer; + struct completion completion; + struct sas_task *task; }; -struct hisi_sas_protect_iu_v3_hw { - u32 dw0; - u32 lbrtcv; - u32 lbrtgv; - u32 dw3; - u32 dw4; - u32 dw5; - u32 rsv; +struct sas_tmf_task { + u8 tmf; + u16 tag_of_task_to_be_managed; }; -struct hisi_sas_sge { - __le64 addr; - __le32 page_ctrl_0; - __le32 page_ctrl_1; - __le32 data_len; - __le32 data_off; +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, }; -struct hisi_sas_sge_page { - struct hisi_sas_sge sge[124]; +enum ata_link_iter_mode { + ATA_LITER_EDGE = 0, + ATA_LITER_HOST_FIRST = 1, + ATA_LITER_PMP_FIRST = 2, }; -struct hisi_sas_sge_dif_page { - struct hisi_sas_sge sge[124]; +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, }; -struct sfdp_bfpt_read { - u32 hwcaps; - u32 supported_dword; - u32 supported_bit; - u32 settings_dword; - u32 settings_shift; - enum spi_nor_protocol proto; +enum ata_dev_iter_mode { + ATA_DITER_ENABLED = 0, + ATA_DITER_ENABLED_REVERSE = 1, + ATA_DITER_ALL = 2, + ATA_DITER_ALL_REVERSE = 3, }; -struct sfdp_bfpt_erase { - u32 dword; - u32 shift; +struct ata_port_info { + unsigned long flags; + unsigned long link_flags; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + struct ata_port_operations *port_ops; + void *private_data; }; -struct sfdp_4bait { - u32 hwcaps; - u32 supported_bit; +struct nand_ecc_req_tweak_ctx { + struct nand_page_io_req orig_req; + struct nand_device *nand; + unsigned int page_buffer_size; + unsigned int oob_buffer_size; + void *spare_databuf; + void *spare_oobbuf; + bool bounce_data; + bool bounce_oob; }; -enum spi_nor_read_command_index { - SNOR_CMD_READ = 0, - SNOR_CMD_READ_FAST = 1, - SNOR_CMD_READ_1_1_1_DTR = 2, - SNOR_CMD_READ_1_1_2 = 3, - SNOR_CMD_READ_1_2_2 = 4, - SNOR_CMD_READ_2_2_2 = 5, - SNOR_CMD_READ_1_2_2_DTR = 6, - SNOR_CMD_READ_1_1_4 = 7, - SNOR_CMD_READ_1_4_4 = 8, - SNOR_CMD_READ_4_4_4 = 9, - SNOR_CMD_READ_1_4_4_DTR = 10, - SNOR_CMD_READ_1_1_8 = 11, - SNOR_CMD_READ_1_8_8 = 12, - SNOR_CMD_READ_8_8_8 = 13, - SNOR_CMD_READ_1_8_8_DTR = 14, - SNOR_CMD_READ_8_8_8_DTR = 15, - SNOR_CMD_READ_MAX = 16, +struct nand_ecc_sw_hamming_conf { + struct nand_ecc_req_tweak_ctx req_ctx; + unsigned int code_size; + u8 *calc_buf; + u8 *code_buf; + unsigned int sm_order; }; -enum spi_nor_pp_command_index { - SNOR_CMD_PP = 0, - SNOR_CMD_PP_1_1_4 = 1, - SNOR_CMD_PP_1_4_4 = 2, - SNOR_CMD_PP_4_4_4 = 3, - SNOR_CMD_PP_1_1_8 = 4, - SNOR_CMD_PP_1_8_8 = 5, - SNOR_CMD_PP_8_8_8 = 6, - SNOR_CMD_PP_8_8_8_DTR = 7, - SNOR_CMD_PP_MAX = 8, +struct marvell_hw_ecc_layout { + int writesize; + int chunk; + int strength; + int nchunks; + int full_chunk_cnt; + int data_bytes; + int spare_bytes; + int ecc_bytes; + int last_data_bytes; + int last_spare_bytes; + int last_ecc_bytes; }; -struct sfdp_header { - u32 signature; - u8 minor; - u8 major; - u8 nph; - u8 unused; - struct sfdp_parameter_header bfpt_header; +struct nand_op_parser_pattern; + +struct nand_op_parser { + const struct nand_op_parser_pattern *patterns; + unsigned int npatterns; }; -struct nxp_fspi_devtype_data { - unsigned int rxfifo; - unsigned int txfifo; - unsigned int ahb_buf_size; - unsigned int quirks; - bool little_endian; +struct nand_op_parser_pattern_elem; + +struct nand_subop; + +struct nand_op_parser_pattern { + const struct nand_op_parser_pattern_elem *elems; + unsigned int nelems; + int (*exec)(struct nand_chip *, const struct nand_subop *); }; -struct nxp_fspi { - void *iobase; - void *ahb_addr; - u32 memmap_phy; - u32 memmap_phy_size; - u32 memmap_start; - u32 memmap_len; - struct clk *clk; - struct clk *clk_en; - struct device *dev; - struct completion c; - struct nxp_fspi_devtype_data *devtype_data; - struct mutex lock; - struct pm_qos_request pm_qos_req; - int selected; +struct nand_op_parser_addr_constraints { + unsigned int maxcycles; }; -struct iproc_mdio_priv { - struct mii_bus *mii_bus; - void *base; +struct nand_op_parser_data_constraints { + unsigned int maxlen; }; -enum xgbe_state { - XGBE_DOWN = 0, - XGBE_LINK_INIT = 1, - XGBE_LINK_ERR = 2, - XGBE_STOPPED = 3, +struct nand_op_parser_pattern_elem { + enum nand_op_instr_type type; + bool optional; + union { + struct nand_op_parser_addr_constraints addr; + struct nand_op_parser_data_constraints data; + } ctx; }; -struct xdp_umem; +struct nand_subop { + unsigned int cs; + const struct nand_op_instr *instrs; + unsigned int ninstrs; + unsigned int first_instr_start_off; + unsigned int last_instr_end_off; +}; -struct xsk_queue; +struct marvell_nfc_caps { + unsigned int max_cs_nb; + unsigned int max_rb_nb; + bool need_system_controller; + bool legacy_of_bindings; + bool is_nfcv2; + bool use_dma; + unsigned int max_mode_number; +}; -struct xdp_buff_xsk; +struct marvell_nand_chip_sel { + unsigned int cs; + u32 ndcb0_csel; + unsigned int rb; +}; -struct xdp_desc; +struct marvell_nand_chip { + struct nand_chip chip; + struct list_head node; + const struct marvell_hw_ecc_layout *layout; + u32 ndcr; + u32 ndtr0; + u32 ndtr1; + int addr_cyc; + int selected_die; + unsigned int nsels; + struct marvell_nand_chip_sel sels[0]; +}; -struct xsk_buff_pool { +struct marvell_nfc { + struct nand_controller controller; 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: 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; + void *regs; + struct clk *core_clk; + struct clk *reg_clk; + struct completion complete; + unsigned long assigned_cs; + struct list_head chips; + struct nand_chip *selected_chip; + const struct marvell_nfc_caps *caps; + bool use_dma; + struct dma_chan *dma_chan; + u8 *dma_buf; }; -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 marvell_nfc_op { + u32 ndcb[4]; + unsigned int cle_ale_delay_ns; + unsigned int rdy_timeout_ms; + unsigned int rdy_delay_ns; + unsigned int data_delay_ns; + unsigned int data_instr_idx; + const struct nand_op_instr *data_instr; }; -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 pxa3xx_nand_platform_data { + bool keep_config; + bool flash_bbt; + int ecc_strength; + int ecc_step_size; + const struct mtd_partition *parts; + unsigned int nr_parts; }; -struct xdp_desc { - __u64 addr; - __u32 len; - __u32 options; +struct marvell_nfc_timings { + unsigned int tRP; + unsigned int tRH; + unsigned int tWP; + unsigned int tWH; + unsigned int tCS; + unsigned int tCH; + unsigned int tADL; + unsigned int tAR; + unsigned int tWHR; + unsigned int tRHW; + unsigned int tR; }; -struct dpaa2_fd; - -typedef void (*btf_trace_dpaa2_tx_fd)(void *, struct net_device *, const struct dpaa2_fd *); +struct sfp_eeprom_id; -struct dpaa2_fd_simple { - __le64 addr; - __le32 len; - __le16 bpid; - __le16 format_offset; - __le32 frc; - __le32 ctrl; - __le64 flc; +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 dpaa2_fd { +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 { - u32 words[8]; - struct dpaa2_fd_simple simple; + __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; + } 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; + } active; }; + u8 reserved62; + u8 cc_base; }; -typedef void (*btf_trace_dpaa2_tx_xsk_fd)(void *, struct net_device *, const struct dpaa2_fd *); - -typedef void (*btf_trace_dpaa2_rx_fd)(void *, struct net_device *, const struct dpaa2_fd *); - -typedef void (*btf_trace_dpaa2_rx_xsk_fd)(void *, struct net_device *, const struct dpaa2_fd *); - -typedef void (*btf_trace_dpaa2_tx_conf_fd)(void *, struct net_device *, const struct dpaa2_fd *); - -typedef void (*btf_trace_dpaa2_eth_buf_seed)(void *, struct net_device *, void *, size_t, dma_addr_t, size_t, u16); - -typedef void (*btf_trace_dpaa2_xsk_buf_seed)(void *, struct net_device *, void *, size_t, dma_addr_t, size_t, u16); - -struct ctrl_regs; - -struct alarm_regs; - -struct fiper_regs; +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 etts_regs; +struct sfp_eeprom_id { + struct sfp_eeprom_base base; + struct sfp_eeprom_ext ext; +}; -struct ptp_qoriq_registers { - struct ctrl_regs *ctrl_regs; - struct alarm_regs *alarm_regs; - struct fiper_regs *fiper_regs; - struct etts_regs *etts_regs; +enum stat_access_type { + PHY = 0, + MMD = 1, }; -struct ptp_qoriq { - void *base; - struct ptp_qoriq_registers regs; - spinlock_t lock; - struct ptp_clock *clock; - struct ptp_clock_info caps; - struct resource *rsrc; - struct dentry *debugfs_root; - struct device *dev; - bool extts_fifo_support; - bool fiper3_support; - bool etsec; - int irq; - int phc_index; - u32 tclk_period; - u32 tmr_prsc; - u32 tmr_add; - u32 cksel; - u32 tmr_fiper1; - u32 tmr_fiper2; - u32 tmr_fiper3; - u32 (*read)(unsigned int *); - void (*write)(unsigned int *, u32); +struct at803x_hw_stat { + const char *string; + u8 reg; + u32 mask; + enum stat_access_type access_type; }; -struct ctrl_regs { - u32 tmr_ctrl; - u32 tmr_tevent; - u32 tmr_temask; - u32 tmr_pevent; - u32 tmr_pemask; - u32 tmr_stat; - u32 tmr_cnt_h; - u32 tmr_cnt_l; - u32 tmr_add; - u32 tmr_acc; - u32 tmr_prsc; - u8 res1[4]; - u32 tmroff_h; - u32 tmroff_l; +enum { + ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC = 0, + ETHTOOL_A_CABLE_RESULT_CODE_OK = 1, + ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 2, + ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 3, + ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 4, }; -struct alarm_regs { - u32 tmr_alarm1_h; - u32 tmr_alarm1_l; - u32 tmr_alarm2_h; - u32 tmr_alarm2_l; +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, }; -struct fiper_regs { - u32 tmr_fiper1; - u32 tmr_fiper2; - u32 tmr_fiper3; +struct at803x_priv { + int flags; + u16 clk_25m_reg; + u16 clk_25m_mask; + u8 smarteee_lpi_tw_1g; + u8 smarteee_lpi_tw_100m; + bool is_fiber; + bool is_1000basex; + struct regulator_dev *vddio_rdev; + struct regulator_dev *vddh_rdev; + u64 stats[3]; }; -struct etts_regs { - u32 tmr_etts1_h; - u32 tmr_etts1_l; - u32 tmr_etts2_h; - u32 tmr_etts2_l; +struct at803x_context { + u16 bmcr; + u16 advertise; + u16 control1000; + u16 int_enable; + u16 smart_speed; + u16 led_control; }; -enum net_prot { - NET_PROT_NONE = 0, - NET_PROT_PAYLOAD = 1, - NET_PROT_ETH = 2, - NET_PROT_VLAN = 3, - NET_PROT_IPV4 = 4, - NET_PROT_IPV6 = 5, - NET_PROT_IP = 6, - NET_PROT_TCP = 7, - NET_PROT_UDP = 8, - NET_PROT_UDP_LITE = 9, - NET_PROT_IPHC = 10, - NET_PROT_SCTP = 11, - NET_PROT_SCTP_CHUNK_DATA = 12, - NET_PROT_PPPOE = 13, - NET_PROT_PPP = 14, - NET_PROT_PPPMUX = 15, - NET_PROT_PPPMUX_SUBFRM = 16, - NET_PROT_L2TPV2 = 17, - NET_PROT_L2TPV3_CTRL = 18, - NET_PROT_L2TPV3_SESS = 19, - NET_PROT_LLC = 20, - NET_PROT_LLC_SNAP = 21, - NET_PROT_NLPID = 22, - NET_PROT_SNAP = 23, - NET_PROT_MPLS = 24, - NET_PROT_IPSEC_AH = 25, - NET_PROT_IPSEC_ESP = 26, - NET_PROT_UDP_ENC_ESP = 27, - NET_PROT_MACSEC = 28, - NET_PROT_GRE = 29, - NET_PROT_MINENCAP = 30, - NET_PROT_DCCP = 31, - NET_PROT_ICMP = 32, - NET_PROT_IGMP = 33, - NET_PROT_ARP = 34, - NET_PROT_CAPWAP_DATA = 35, - NET_PROT_CAPWAP_CTRL = 36, - NET_PROT_RFC2684 = 37, - NET_PROT_ICMPV6 = 38, - NET_PROT_FCOE = 39, - NET_PROT_FIP = 40, - NET_PROT_ISCSI = 41, - NET_PROT_GTP = 42, - NET_PROT_USER_DEFINED_L2 = 43, - NET_PROT_USER_DEFINED_L3 = 44, - NET_PROT_USER_DEFINED_L4 = 45, - NET_PROT_USER_DEFINED_L5 = 46, - NET_PROT_USER_DEFINED_SHIM1 = 47, - NET_PROT_USER_DEFINED_SHIM2 = 48, - NET_PROT_DUMMY_LAST = 49, +enum xgbe_xpcs_access { + XGBE_XPCS_ACCESS_V1 = 0, + XGBE_XPCS_ACCESS_V2 = 1, }; -struct dpaa2_eth_dist_fields { - u64 rxnfc_field; - enum net_prot cls_prot; - int cls_field; - int size; - u64 id; +enum xgbe_mdio_mode { + XGBE_MDIO_MODE_NONE = 0, + XGBE_MDIO_MODE_CL22 = 1, + XGBE_MDIO_MODE_CL45 = 2, }; -struct fsl_mc_device_id; - -struct fsl_mc_driver { - struct device_driver driver; - const struct fsl_mc_device_id *match_id_table; - int (*probe)(struct fsl_mc_device *); - void (*remove)(struct fsl_mc_device *); - void (*shutdown)(struct fsl_mc_device *); - int (*suspend)(struct fsl_mc_device *, pm_message_t); - int (*resume)(struct fsl_mc_device *); - bool driver_managed_dma; +enum pkt_hash_types { + PKT_HASH_TYPE_NONE = 0, + PKT_HASH_TYPE_L2 = 1, + PKT_HASH_TYPE_L3 = 2, + PKT_HASH_TYPE_L4 = 3, }; -struct fsl_mc_device_id { - __u16 vendor; - const char obj_type[16]; +enum xgbe_int { + XGMAC_INT_DMA_CH_SR_TI = 0, + XGMAC_INT_DMA_CH_SR_TPS = 1, + XGMAC_INT_DMA_CH_SR_TBU = 2, + XGMAC_INT_DMA_CH_SR_RI = 3, + XGMAC_INT_DMA_CH_SR_RBU = 4, + XGMAC_INT_DMA_CH_SR_RPS = 5, + XGMAC_INT_DMA_CH_SR_TI_RI = 6, + XGMAC_INT_DMA_CH_SR_FBE = 7, + XGMAC_INT_DMA_ALL = 8, }; -enum dpaa2_eth_fq_type { - DPAA2_RX_FQ = 0, - DPAA2_TX_CONF_FQ = 1, - DPAA2_RX_ERR_FQ = 2, +enum xgbe_ecc_sec { + XGBE_ECC_SEC_TX = 0, + XGBE_ECC_SEC_RX = 1, + XGBE_ECC_SEC_DESC = 2, }; -enum dpmac_eth_if { - DPMAC_ETH_IF_MII = 0, - DPMAC_ETH_IF_RMII = 1, - DPMAC_ETH_IF_SMII = 2, - DPMAC_ETH_IF_GMII = 3, - DPMAC_ETH_IF_RGMII = 4, - DPMAC_ETH_IF_SGMII = 5, - DPMAC_ETH_IF_QSGMII = 6, - DPMAC_ETH_IF_XAUI = 7, - DPMAC_ETH_IF_XFI = 8, - DPMAC_ETH_IF_CAUI = 9, - DPMAC_ETH_IF_1000BASEX = 10, - DPMAC_ETH_IF_USXGMII = 11, +enum xgbe_i2c_cmd { + XGBE_I2C_CMD_READ = 0, + XGBE_I2C_CMD_WRITE = 1, }; -enum dpmac_link_type { - DPMAC_LINK_TYPE_NONE = 0, - DPMAC_LINK_TYPE_FIXED = 1, - DPMAC_LINK_TYPE_PHY = 2, - DPMAC_LINK_TYPE_BACKPLANE = 3, +enum xgbe_an { + XGBE_AN_READY = 0, + XGBE_AN_PAGE_RECEIVED = 1, + XGBE_AN_INCOMPAT_LINK = 2, + XGBE_AN_COMPLETE = 3, + XGBE_AN_NO_LINK = 4, + XGBE_AN_ERROR = 5, }; -enum dpaa2_fd_format { - dpaa2_fd_single = 0, - dpaa2_fd_list = 1, - dpaa2_fd_sg = 2, +enum xgbe_rx { + XGBE_RX_BPA = 0, + XGBE_RX_XNP = 1, + XGBE_RX_COMPLETE = 2, + XGBE_RX_ERROR = 3, }; -enum dpaa2_eth_swa_type { - DPAA2_ETH_SWA_SINGLE = 0, - DPAA2_ETH_SWA_SG = 1, - DPAA2_ETH_SWA_XDP = 2, - DPAA2_ETH_SWA_XSK = 3, - DPAA2_ETH_SWA_SW_TSO = 4, +enum xgbe_an_mode { + XGBE_AN_MODE_CL73 = 0, + XGBE_AN_MODE_CL73_REDRV = 1, + XGBE_AN_MODE_CL37 = 2, + XGBE_AN_MODE_CL37_SGMII = 3, + XGBE_AN_MODE_NONE = 4, }; -enum dpni_congestion_unit { - DPNI_CONGESTION_UNIT_BYTES = 0, - DPNI_CONGESTION_UNIT_FRAMES = 1, +enum xgbe_mode { + XGBE_MODE_KX_1000 = 0, + XGBE_MODE_KX_2500 = 1, + XGBE_MODE_KR = 2, + XGBE_MODE_X = 3, + XGBE_MODE_SGMII_10 = 4, + XGBE_MODE_SGMII_100 = 5, + XGBE_MODE_SGMII_1000 = 6, + XGBE_MODE_SFI = 7, + XGBE_MODE_UNKNOWN = 8, }; -enum dpni_congestion_point { - DPNI_CP_QUEUE = 0, - DPNI_CP_GROUP = 1, +enum xgbe_port_mode { + XGBE_PORT_MODE_RSVD = 0, + XGBE_PORT_MODE_BACKPLANE = 1, + XGBE_PORT_MODE_BACKPLANE_2500 = 2, + XGBE_PORT_MODE_1000BASE_T = 3, + XGBE_PORT_MODE_1000BASE_X = 4, + XGBE_PORT_MODE_NBASE_T = 5, + XGBE_PORT_MODE_10GBASE_T = 6, + XGBE_PORT_MODE_10GBASE_R = 7, + XGBE_PORT_MODE_SFP = 8, + XGBE_PORT_MODE_BACKPLANE_NO_AUTONEG = 9, + XGBE_PORT_MODE_MAX = 10, }; -enum dpni_queue_type { - DPNI_QUEUE_RX = 0, - DPNI_QUEUE_TX = 1, - DPNI_QUEUE_TX_CONFIRM = 2, - DPNI_QUEUE_RX_ERR = 3, +enum xgbe_conn_type { + XGBE_CONN_TYPE_NONE = 0, + XGBE_CONN_TYPE_SFP = 1, + XGBE_CONN_TYPE_MDIO = 2, + XGBE_CONN_TYPE_RSVD1 = 3, + XGBE_CONN_TYPE_BACKPLANE = 4, + XGBE_CONN_TYPE_MAX = 5, }; -enum dpaa2_eth_rx_dist { - DPAA2_ETH_RX_DIST_HASH = 0, - DPAA2_ETH_RX_DIST_CLS = 1, +enum xgbe_sfp_comm { + XGBE_SFP_COMM_DIRECT = 0, + XGBE_SFP_COMM_PCA9545 = 1, }; -enum dpkg_extract_type { - DPKG_EXTRACT_FROM_HDR = 0, - DPKG_EXTRACT_FROM_DATA = 1, - DPKG_EXTRACT_FROM_PARSE = 3, +enum xgbe_sfp_base { + XGBE_SFP_BASE_UNKNOWN = 0, + XGBE_SFP_BASE_1000_T = 1, + XGBE_SFP_BASE_1000_SX = 2, + XGBE_SFP_BASE_1000_LX = 3, + XGBE_SFP_BASE_1000_CX = 4, + XGBE_SFP_BASE_10000_SR = 5, + XGBE_SFP_BASE_10000_LR = 6, + XGBE_SFP_BASE_10000_LRM = 7, + XGBE_SFP_BASE_10000_ER = 8, + XGBE_SFP_BASE_10000_CR = 9, }; -enum dpkg_extract_from_hdr_type { - DPKG_FROM_HDR = 0, - DPKG_FROM_FIELD = 1, - DPKG_FULL_FIELD = 2, +enum xgbe_sfp_cable { + XGBE_SFP_CABLE_UNKNOWN = 0, + XGBE_SFP_CABLE_ACTIVE = 1, + XGBE_SFP_CABLE_PASSIVE = 2, + XGBE_SFP_CABLE_FIBER = 3, }; -enum dpni_dist_mode { - DPNI_DIST_MODE_NONE = 0, - DPNI_DIST_MODE_HASH = 1, - DPNI_DIST_MODE_FS = 2, +enum xgbe_sfp_speed { + XGBE_SFP_SPEED_UNKNOWN = 0, + XGBE_SFP_SPEED_100_1000 = 1, + XGBE_SFP_SPEED_1000 = 2, + XGBE_SFP_SPEED_10000 = 3, }; -enum dpni_fs_miss_action { - DPNI_FS_MISS_DROP = 0, - DPNI_FS_MISS_EXPLICIT_FLOWID = 1, - DPNI_FS_MISS_HASH = 2, +enum xgbe_mdio_reset { + XGBE_MDIO_RESET_NONE = 0, + XGBE_MDIO_RESET_I2C_GPIO = 1, + XGBE_MDIO_RESET_INT_GPIO = 2, + XGBE_MDIO_RESET_MAX = 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 xgbe_phy_redrv_if { + XGBE_PHY_REDRV_IF_MDIO = 0, + XGBE_PHY_REDRV_IF_I2C = 1, + XGBE_PHY_REDRV_IF_MAX = 2, }; -enum dpni_error_action { - DPNI_ERROR_ACTION_DISCARD = 0, - DPNI_ERROR_ACTION_CONTINUE = 1, - DPNI_ERROR_ACTION_SEND_TO_ERROR_QUEUE = 2, +enum xgbe_phy_redrv_model { + XGBE_PHY_REDRV_MODEL_4223 = 0, + XGBE_PHY_REDRV_MODEL_4227 = 1, + XGBE_PHY_REDRV_MODEL_MAX = 2, }; -enum dpni_dest { - DPNI_DEST_NONE = 0, - DPNI_DEST_DPIO = 1, - DPNI_DEST_DPCON = 2, +enum xgbe_mb_cmd { + XGBE_MB_CMD_POWER_OFF = 0, + XGBE_MB_CMD_SET_1G = 1, + XGBE_MB_CMD_SET_2_5G = 2, + XGBE_MB_CMD_SET_10G_SFI = 3, + XGBE_MB_CMD_SET_10G_KR = 4, + XGBE_MB_CMD_RRC = 5, }; -enum tc_tbf_command { - TC_TBF_REPLACE = 0, - TC_TBF_DESTROY = 1, - TC_TBF_STATS = 2, - TC_TBF_GRAFT = 3, +enum xgbe_mb_subcmd { + XGBE_MB_SUBCMD_NONE = 0, + XGBE_MB_SUBCMD_RX_ADAP = 1, + XGBE_MB_SUBCMD_ACTIVE = 0, + XGBE_MB_SUBCMD_PASSIVE_1M = 1, + XGBE_MB_SUBCMD_PASSIVE_3M = 2, + XGBE_MB_SUBCMD_PASSIVE_OTHER = 3, + XGBE_MB_SUBCMD_10MBITS = 0, + XGBE_MB_SUBCMD_100MBITS = 1, + XGBE_MB_SUBCMD_1G_SGMII = 2, + XGBE_MB_SUBCMD_1G_KX = 3, }; -enum dpni_offload { - DPNI_OFF_RX_L3_CSUM = 0, - DPNI_OFF_RX_L4_CSUM = 1, - DPNI_OFF_TX_L3_CSUM = 2, - DPNI_OFF_TX_L4_CSUM = 3, +enum xgbe_state { + XGBE_DOWN = 0, + XGBE_LINK_INIT = 1, + XGBE_LINK_ERR = 2, + XGBE_STOPPED = 3, }; -struct dpaa2_eth_drv_stats { - __u64 tx_conf_frames; - __u64 tx_conf_bytes; - __u64 tx_sg_frames; - __u64 tx_sg_bytes; - __u64 tx_tso_frames; - __u64 tx_tso_bytes; - __u64 rx_sg_frames; - __u64 rx_sg_bytes; - __u64 tx_converted_sg_frames; - __u64 tx_converted_sg_bytes; - __u64 tx_portal_busy; +enum xgbe_phy_redrv_mode { + XGBE_PHY_REDRV_MODE_CX = 5, + XGBE_PHY_REDRV_MODE_SR = 9, }; -struct dpaa2_eth_sgt_cache { - void *buf[256]; - u16 count; +struct xgbe_sfp_eeprom { + u8 base[64]; + u8 extd[32]; + u8 vendor[32]; }; -struct dpaa2_eth_swa { - enum dpaa2_eth_swa_type type; - union { - struct { - struct sk_buff *skb; - int sgt_size; - } single; - struct { - struct sk_buff *skb; - struct scatterlist *scl; - int num_sg; - int sgt_size; - } sg; - struct { - int dma_size; - struct xdp_frame *xdpf; - } xdp; - struct { - struct xdp_buff *xdp_buff; - int sgt_size; - } xsk; - struct { - struct sk_buff *skb; - int num_sg; - int sgt_size; - int is_last_fd; - } tso; - }; -}; +struct xgbe_ring_desc; -struct dpaa2_sg_entry { - __le64 addr; - __le32 len; - __le16 bpid; - __le16 format_offset; -}; +struct xgbe_prv_data; -struct trace_event_raw_dpaa2_eth_fd { - struct trace_entry ent; - u64 fd_addr; - u32 fd_len; - u16 fd_offset; - u32 __data_loc_name; - char __data[0]; -}; +struct xgbe_channel; -struct trace_event_raw_dpaa2_eth_buf { - struct trace_entry ent; - void *vaddr; - size_t size; - dma_addr_t dma_addr; - size_t map_size; - u16 bpid; - u32 __data_loc_name; - char __data[0]; -}; +struct xgbe_ring_data; -struct dpaa2_eth_fds { - struct dpaa2_fd array[256]; +struct xgbe_ring; + +struct xgbe_hw_if { + int (*tx_complete)(struct xgbe_ring_desc *); + int (*set_mac_address)(struct xgbe_prv_data *, const u8 *); + int (*config_rx_mode)(struct xgbe_prv_data *); + int (*enable_rx_csum)(struct xgbe_prv_data *); + int (*disable_rx_csum)(struct xgbe_prv_data *); + int (*enable_rx_vlan_stripping)(struct xgbe_prv_data *); + int (*disable_rx_vlan_stripping)(struct xgbe_prv_data *); + int (*enable_rx_vlan_filtering)(struct xgbe_prv_data *); + int (*disable_rx_vlan_filtering)(struct xgbe_prv_data *); + int (*update_vlan_hash_table)(struct xgbe_prv_data *); + int (*read_mmd_regs)(struct xgbe_prv_data *, int, int); + void (*write_mmd_regs)(struct xgbe_prv_data *, int, int, int); + int (*set_speed)(struct xgbe_prv_data *, int); + int (*set_ext_mii_mode)(struct xgbe_prv_data *, unsigned int, enum xgbe_mdio_mode); + int (*read_ext_mii_regs_c22)(struct xgbe_prv_data *, int, int); + int (*write_ext_mii_regs_c22)(struct xgbe_prv_data *, int, int, u16); + int (*read_ext_mii_regs_c45)(struct xgbe_prv_data *, int, int, int); + int (*write_ext_mii_regs_c45)(struct xgbe_prv_data *, int, int, int, u16); + int (*set_gpio)(struct xgbe_prv_data *, unsigned int); + int (*clr_gpio)(struct xgbe_prv_data *, unsigned int); + void (*enable_tx)(struct xgbe_prv_data *); + void (*disable_tx)(struct xgbe_prv_data *); + void (*enable_rx)(struct xgbe_prv_data *); + void (*disable_rx)(struct xgbe_prv_data *); + void (*powerup_tx)(struct xgbe_prv_data *); + void (*powerdown_tx)(struct xgbe_prv_data *); + void (*powerup_rx)(struct xgbe_prv_data *); + void (*powerdown_rx)(struct xgbe_prv_data *); + int (*init)(struct xgbe_prv_data *); + int (*exit)(struct xgbe_prv_data *); + int (*enable_int)(struct xgbe_channel *, enum xgbe_int); + int (*disable_int)(struct xgbe_channel *, enum xgbe_int); + void (*dev_xmit)(struct xgbe_channel *); + int (*dev_read)(struct xgbe_channel *); + void (*tx_desc_init)(struct xgbe_channel *); + void (*rx_desc_init)(struct xgbe_channel *); + void (*tx_desc_reset)(struct xgbe_ring_data *); + void (*rx_desc_reset)(struct xgbe_prv_data *, struct xgbe_ring_data *, unsigned int); + int (*is_last_desc)(struct xgbe_ring_desc *); + int (*is_context_desc)(struct xgbe_ring_desc *); + void (*tx_start_xmit)(struct xgbe_channel *, struct xgbe_ring *); + int (*config_tx_flow_control)(struct xgbe_prv_data *); + int (*config_rx_flow_control)(struct xgbe_prv_data *); + int (*config_rx_coalesce)(struct xgbe_prv_data *); + int (*config_tx_coalesce)(struct xgbe_prv_data *); + unsigned int (*usec_to_riwt)(struct xgbe_prv_data *, unsigned int); + unsigned int (*riwt_to_usec)(struct xgbe_prv_data *, unsigned int); + int (*config_rx_threshold)(struct xgbe_prv_data *, unsigned int); + int (*config_tx_threshold)(struct xgbe_prv_data *, unsigned int); + int (*config_rsf_mode)(struct xgbe_prv_data *, unsigned int); + int (*config_tsf_mode)(struct xgbe_prv_data *, unsigned int); + int (*config_osp_mode)(struct xgbe_prv_data *); + void (*rx_mmc_int)(struct xgbe_prv_data *); + void (*tx_mmc_int)(struct xgbe_prv_data *); + void (*read_mmc_stats)(struct xgbe_prv_data *); + int (*config_tstamp)(struct xgbe_prv_data *, unsigned int); + void (*update_tstamp_addend)(struct xgbe_prv_data *, unsigned int); + void (*set_tstamp_time)(struct xgbe_prv_data *, unsigned int, unsigned int); + u64 (*get_tstamp_time)(struct xgbe_prv_data *); + u64 (*get_tx_tstamp)(struct xgbe_prv_data *); + void (*config_tc)(struct xgbe_prv_data *); + void (*config_dcb_tc)(struct xgbe_prv_data *); + void (*config_dcb_pfc)(struct xgbe_prv_data *); + int (*enable_rss)(struct xgbe_prv_data *); + int (*disable_rss)(struct xgbe_prv_data *); + int (*set_rss_hash_key)(struct xgbe_prv_data *, const u8 *); + int (*set_rss_lookup_table)(struct xgbe_prv_data *, const u32 *); + void (*disable_ecc_ded)(struct xgbe_prv_data *); + void (*disable_ecc_sec)(struct xgbe_prv_data *, enum xgbe_ecc_sec); + void (*enable_vxlan)(struct xgbe_prv_data *); + void (*disable_vxlan)(struct xgbe_prv_data *); + void (*set_vxlan_id)(struct xgbe_prv_data *); }; -struct dpaa2_eth_priv; +struct xgbe_phy_impl_if { + int (*init)(struct xgbe_prv_data *); + void (*exit)(struct xgbe_prv_data *); + int (*reset)(struct xgbe_prv_data *); + int (*start)(struct xgbe_prv_data *); + void (*stop)(struct xgbe_prv_data *); + int (*link_status)(struct xgbe_prv_data *, int *); + bool (*valid_speed)(struct xgbe_prv_data *, int); + bool (*use_mode)(struct xgbe_prv_data *, enum xgbe_mode); + void (*set_mode)(struct xgbe_prv_data *, enum xgbe_mode); + enum xgbe_mode (*get_mode)(struct xgbe_prv_data *, int); + enum xgbe_mode (*switch_mode)(struct xgbe_prv_data *); + enum xgbe_mode (*cur_mode)(struct xgbe_prv_data *); + enum xgbe_an_mode (*an_mode)(struct xgbe_prv_data *); + int (*an_config)(struct xgbe_prv_data *); + void (*an_advertising)(struct xgbe_prv_data *, struct ethtool_link_ksettings *); + enum xgbe_mode (*an_outcome)(struct xgbe_prv_data *); + void (*an_pre)(struct xgbe_prv_data *); + void (*an_post)(struct xgbe_prv_data *); + void (*kr_training_pre)(struct xgbe_prv_data *); + void (*kr_training_post)(struct xgbe_prv_data *); + int (*module_info)(struct xgbe_prv_data *, struct ethtool_modinfo *); + int (*module_eeprom)(struct xgbe_prv_data *, struct ethtool_eeprom *, u8 *); +}; -struct dpaa2_eth_channel; +struct xgbe_phy_if { + int (*phy_init)(struct xgbe_prv_data *); + void (*phy_exit)(struct xgbe_prv_data *); + int (*phy_reset)(struct xgbe_prv_data *); + int (*phy_start)(struct xgbe_prv_data *); + void (*phy_stop)(struct xgbe_prv_data *); + void (*phy_status)(struct xgbe_prv_data *); + int (*phy_config_aneg)(struct xgbe_prv_data *); + bool (*phy_valid_speed)(struct xgbe_prv_data *, int); + irqreturn_t (*an_isr)(struct xgbe_prv_data *); + int (*module_info)(struct xgbe_prv_data *, struct ethtool_modinfo *); + int (*module_eeprom)(struct xgbe_prv_data *, struct ethtool_eeprom *, u8 *); + struct xgbe_phy_impl_if phy_impl; +}; -struct dpaa2_eth_fq; +struct xgbe_desc_if { + int (*alloc_ring_resources)(struct xgbe_prv_data *); + void (*free_ring_resources)(struct xgbe_prv_data *); + int (*map_tx_skb)(struct xgbe_channel *, struct sk_buff *); + int (*map_rx_buffer)(struct xgbe_prv_data *, struct xgbe_ring *, struct xgbe_ring_data *); + void (*unmap_rdata)(struct xgbe_prv_data *, struct xgbe_ring_data *); + void (*wrapper_tx_desc_init)(struct xgbe_prv_data *); + void (*wrapper_rx_desc_init)(struct xgbe_prv_data *); +}; -typedef void dpaa2_eth_consume_cb_t(struct dpaa2_eth_priv *, struct dpaa2_eth_channel *, const struct dpaa2_fd *, struct dpaa2_eth_fq *); +struct xgbe_i2c_op; -struct dpaa2_eth_fq_stats { - __u64 frames; +struct xgbe_i2c_if { + int (*i2c_init)(struct xgbe_prv_data *); + int (*i2c_start)(struct xgbe_prv_data *); + void (*i2c_stop)(struct xgbe_prv_data *); + int (*i2c_xfer)(struct xgbe_prv_data *, struct xgbe_i2c_op *); + irqreturn_t (*i2c_isr)(struct xgbe_prv_data *); }; -struct dpaa2_eth_xdp_fds { - struct dpaa2_fd fds[16]; - ssize_t num; +struct xgbe_mmc_stats { + u64 txoctetcount_gb; + u64 txframecount_gb; + u64 txbroadcastframes_g; + u64 txmulticastframes_g; + u64 tx64octets_gb; + u64 tx65to127octets_gb; + u64 tx128to255octets_gb; + u64 tx256to511octets_gb; + u64 tx512to1023octets_gb; + u64 tx1024tomaxoctets_gb; + u64 txunicastframes_gb; + u64 txmulticastframes_gb; + u64 txbroadcastframes_gb; + u64 txunderflowerror; + u64 txoctetcount_g; + u64 txframecount_g; + u64 txpauseframes; + u64 txvlanframes_g; + u64 rxframecount_gb; + u64 rxoctetcount_gb; + u64 rxoctetcount_g; + u64 rxbroadcastframes_g; + u64 rxmulticastframes_g; + u64 rxcrcerror; + u64 rxrunterror; + u64 rxjabbererror; + u64 rxundersize_g; + u64 rxoversize_g; + u64 rx64octets_gb; + u64 rx65to127octets_gb; + u64 rx128to255octets_gb; + u64 rx256to511octets_gb; + u64 rx512to1023octets_gb; + u64 rx1024tomaxoctets_gb; + u64 rxunicastframes_g; + u64 rxlengtherror; + u64 rxoutofrangetype; + u64 rxpauseframes; + u64 rxfifooverflow; + u64 rxvlanframes_gb; + u64 rxwatchdogerror; }; -struct dpaa2_eth_fq { - u32 fqid; - u32 tx_qdbin; - u32 tx_fqid[8]; - u16 flowid; - u8 tc; - int target_cpu; - u32 dq_frames; - u32 dq_bytes; - struct dpaa2_eth_channel *channel; - enum dpaa2_eth_fq_type type; - dpaa2_eth_consume_cb_t *consume; - struct dpaa2_eth_fq_stats stats; - struct dpaa2_eth_xdp_fds xdp_redirect_fds; - struct dpaa2_eth_xdp_fds xdp_tx_fds; +struct xgbe_ext_stats { + u64 tx_tso_packets; + u64 rx_split_header_packets; + u64 rx_buffer_unavailable; + u64 txq_packets[16]; + u64 txq_bytes[16]; + u64 rxq_packets[16]; + u64 rxq_bytes[16]; + u64 tx_vxlan_packets; + u64 rx_vxlan_packets; + u64 rx_csum_errors; + u64 rx_vxlan_csum_errors; }; -struct dpni_attr { - u32 options; - u8 num_queues; - u8 num_tcs; - u8 mac_filter_entries; - u8 vlan_filter_entries; - u8 qos_entries; - u16 fs_entries; - u8 qos_key_size; - u8 fs_key_size; - u16 wriop_version; +struct xgbe_hw_features { + unsigned int version; + unsigned int gmii; + unsigned int vlhash; + unsigned int sma; + unsigned int rwk; + unsigned int mgk; + unsigned int mmc; + unsigned int aoe; + unsigned int ts; + unsigned int eee; + unsigned int tx_coe; + unsigned int rx_coe; + unsigned int addn_mac; + unsigned int ts_src; + unsigned int sa_vlan_ins; + unsigned int vxn; + unsigned int rx_fifo_size; + unsigned int tx_fifo_size; + unsigned int adv_ts_hi; + unsigned int dma_width; + unsigned int dcb; + unsigned int sph; + unsigned int tso; + unsigned int dma_debug; + unsigned int rss; + unsigned int tc_cnt; + unsigned int hash_table_size; + unsigned int l3l4_filter_num; + unsigned int rx_q_cnt; + unsigned int tx_q_cnt; + unsigned int rx_ch_cnt; + unsigned int tx_ch_cnt; + unsigned int pps_out_num; + unsigned int aux_snap_num; }; -struct dpni_link_state { - u32 rate; - u64 options; - int up; +struct xgbe_phy { + struct ethtool_link_ksettings lks; + int address; + int autoneg; + int speed; + int duplex; + int link; + int pause_autoneg; + int tx_pause; + int rx_pause; }; -struct dpaa2_debugfs { - struct dentry *dir; +struct xgbe_i2c_op_state { + struct xgbe_i2c_op *op; + unsigned int tx_len; + unsigned char *tx_buf; + unsigned int rx_len; + unsigned char *rx_buf; + unsigned int tx_abort_source; + int ret; }; -struct dpaa2_eth_bp; - -struct dpaa2_eth_cls_rule; - -struct dpaa2_mac; - -struct dpaa2_eth_trap_data; - -struct dpaa2_eth_priv { - struct net_device *net_dev; - u8 num_fqs; - struct dpaa2_eth_fq fq[145]; - int (*enqueue)(struct dpaa2_eth_priv *, struct dpaa2_eth_fq *, struct dpaa2_fd *, u8, u32, int *); - u8 num_channels; - struct dpaa2_eth_channel *channel[16]; - struct dpaa2_eth_sgt_cache __attribute__((btf_type_tag("percpu"))) *sgt_cache; - unsigned long features; - struct dpni_attr dpni_attrs; - u16 dpni_ver_major; - u16 dpni_ver_minor; - u16 tx_data_offset; - void *onestep_reg_base; - u8 ptp_correction_off; - void (*dpaa2_set_onestep_params_cb)(struct dpaa2_eth_priv *, u32, u8); - u16 rx_buf_size; - struct iommu_domain *iommu_domain; - enum hwtstamp_tx_types tx_tstamp_type; - bool rx_tstamp; - struct dpaa2_eth_bp *bp[9]; - int num_bps; - u16 tx_qdid; - struct fsl_mc_io *mc_io; - struct cpumask dpio_cpumask; - struct rtnl_link_stats64 __attribute__((btf_type_tag("percpu"))) *percpu_stats; - struct dpaa2_eth_drv_stats __attribute__((btf_type_tag("percpu"))) *percpu_extras; - u16 mc_token; - u8 rx_fqtd_enabled; - u8 rx_cgtd_enabled; - struct dpni_link_state link_state; - bool do_link_poll; - struct task_struct *poll_thread; - u64 rx_hash_fields; - u64 rx_cls_fields; - struct dpaa2_eth_cls_rule *cls_rules; - u8 rx_cls_enabled; - u8 vlan_cls_enabled; - u8 pfc_enabled; - struct bpf_prog *xdp_prog; - struct dpaa2_debugfs dbg; - struct dpaa2_mac *mac; - struct mutex mac_lock; - struct workqueue_struct *dpaa2_ptp_wq; - struct work_struct tx_onestep_tstamp; - struct sk_buff_head tx_skbs; - struct mutex onestep_tstamp_lock; - struct devlink *devlink; - struct dpaa2_eth_trap_data *trap_data; - struct devlink_port devlink_port; - u32 rx_copybreak; - struct dpaa2_eth_fds __attribute__((btf_type_tag("percpu"))) *fd; +struct xgbe_i2c { + unsigned int started; + unsigned int max_speed_mode; + unsigned int rx_fifo_size; + unsigned int tx_fifo_size; + struct xgbe_i2c_op_state op_state; }; -struct dpaa2_io_notification_ctx { - void (*cb)(struct dpaa2_io_notification_ctx *); - int is_cdan; - u32 id; - int desired_cpu; - int dpio_id; - u64 qman64; - struct list_head node; - void *dpio_private; -}; +struct xgbe_version_data; -struct dpaa2_eth_ch_stats { - __u64 dequeue_portal_busy; - __u64 pull_err; - __u64 cdan; - __u64 xdp_drop; - __u64 xdp_tx; - __u64 xdp_tx_err; - __u64 xdp_redirect; - __u64 frames; - __u64 frames_per_cdan; - __u64 bytes_per_cdan; +struct xgbe_prv_data { + struct net_device *netdev; + struct pci_dev *pcidev; + struct platform_device *platdev; + struct acpi_device *adev; + struct device *dev; + struct platform_device *phy_platdev; + struct device *phy_dev; + struct xgbe_version_data *vdata; + unsigned int use_acpi; + void *xgmac_regs; + void *xpcs_regs; + void *rxtx_regs; + void *sir0_regs; + void *sir1_regs; + void *xprop_regs; + void *xi2c_regs; + unsigned int pp0; + unsigned int pp1; + unsigned int pp2; + unsigned int pp3; + unsigned int pp4; + spinlock_t lock; + spinlock_t xpcs_lock; + unsigned int xpcs_window_def_reg; + unsigned int xpcs_window_sel_reg; + unsigned int xpcs_window; + unsigned int xpcs_window_size; + unsigned int xpcs_window_mask; + struct mutex rss_mutex; + unsigned long dev_state; + unsigned long tx_sec_period; + unsigned long tx_ded_period; + unsigned long rx_sec_period; + unsigned long rx_ded_period; + unsigned long desc_sec_period; + unsigned long desc_ded_period; + unsigned int tx_sec_count; + unsigned int tx_ded_count; + unsigned int rx_sec_count; + unsigned int rx_ded_count; + unsigned int desc_ded_count; + unsigned int desc_sec_count; + int dev_irq; + int ecc_irq; + int i2c_irq; + int channel_irq[16]; + unsigned int per_channel_irq; + unsigned int irq_count; + unsigned int channel_irq_count; + unsigned int channel_irq_mode; + char ecc_name[48]; + struct xgbe_hw_if hw_if; + struct xgbe_phy_if phy_if; + struct xgbe_desc_if desc_if; + struct xgbe_i2c_if i2c_if; + unsigned int coherent; + unsigned int arcr; + unsigned int awcr; + unsigned int awarcr; + struct workqueue_struct *dev_workqueue; + struct work_struct service_work; + struct timer_list service_timer; + struct xgbe_channel *channel[16]; + unsigned int tx_max_channel_count; + unsigned int rx_max_channel_count; + unsigned int channel_count; + unsigned int tx_ring_count; + unsigned int tx_desc_count; + unsigned int rx_ring_count; + unsigned int rx_desc_count; + unsigned int new_tx_ring_count; + unsigned int new_rx_ring_count; + unsigned int tx_max_q_count; + unsigned int rx_max_q_count; + unsigned int tx_q_count; + unsigned int rx_q_count; + unsigned int blen; + unsigned int pbl; + unsigned int aal; + unsigned int rd_osr_limit; + unsigned int wr_osr_limit; + unsigned int tx_sf_mode; + unsigned int tx_threshold; + unsigned int tx_osp_mode; + unsigned int tx_max_fifo_size; + unsigned int rx_sf_mode; + unsigned int rx_threshold; + unsigned int rx_max_fifo_size; + unsigned int tx_usecs; + unsigned int tx_frames; + unsigned int rx_riwt; + unsigned int rx_usecs; + unsigned int rx_frames; + unsigned int rx_buf_size; + unsigned int pause_autoneg; + unsigned int tx_pause; + unsigned int rx_pause; + unsigned int rx_rfa[16]; + unsigned int rx_rfd[16]; + u8 rss_key[40]; + u32 rss_table[256]; + u32 rss_options; + u16 vxlan_port; + unsigned char mac_addr[6]; + netdev_features_t netdev_features; + struct napi_struct napi; + struct xgbe_mmc_stats mmc_stats; + struct xgbe_ext_stats ext_stats; + unsigned long active_vlans[64]; + struct clk *sysclk; + unsigned long sysclk_rate; + struct clk *ptpclk; + unsigned long ptpclk_rate; + spinlock_t tstamp_lock; + struct ptp_clock_info ptp_clock_info; + struct ptp_clock *ptp_clock; + struct hwtstamp_config tstamp_config; + struct cyclecounter tstamp_cc; + struct timecounter tstamp_tc; + unsigned int tstamp_addend; + struct work_struct tx_tstamp_work; + struct sk_buff *tx_tstamp_skb; + u64 tx_tstamp; + struct ieee_ets *ets; + struct ieee_pfc *pfc; + unsigned int q2tc_map[16]; + unsigned int prio2q_map[8]; + unsigned int pfcq[16]; + unsigned int pfc_rfa; + u8 num_tcs; + struct xgbe_hw_features hw_feat; + struct work_struct restart_work; + struct work_struct stopdev_work; + unsigned int power_down; + u32 msg_enable; + phy_interface_t phy_mode; + int phy_link; + int phy_speed; + unsigned int phy_started; + void *phy_data; + struct xgbe_phy phy; + int mdio_mmd; + unsigned long link_check; + struct completion mdio_complete; + unsigned int kr_redrv; + char an_name[48]; + struct workqueue_struct *an_workqueue; + int an_irq; + struct work_struct an_irq_work; + unsigned int an_int; + unsigned int an_status; + struct mutex an_mutex; + enum xgbe_an an_result; + enum xgbe_an an_state; + enum xgbe_rx kr_state; + enum xgbe_rx kx_state; + struct work_struct an_work; + unsigned int an_again; + unsigned int an_supported; + unsigned int parallel_detect; + unsigned int fec_ability; + unsigned long an_start; + unsigned long kr_start_time; + enum xgbe_an_mode an_mode; + struct xgbe_i2c i2c; + struct mutex i2c_mutex; + struct completion i2c_complete; + char i2c_name[48]; + unsigned int lpm_ctrl; + unsigned int isr_as_tasklet; + struct tasklet_struct tasklet_dev; + struct tasklet_struct tasklet_ecc; + struct tasklet_struct tasklet_i2c; + struct tasklet_struct tasklet_an; + struct dentry *xgbe_debugfs; + unsigned int debugfs_xgmac_reg; + unsigned int debugfs_xpcs_mmd; + unsigned int debugfs_xpcs_reg; + unsigned int debugfs_xprop_reg; + unsigned int debugfs_xi2c_reg; + bool debugfs_an_cdr_workaround; + bool debugfs_an_cdr_track_early; + bool en_rx_adap; + int rx_adapt_retries; + bool rx_adapt_done; + bool mode_set; }; -struct dpaa2_eth_ch_xdp { - struct bpf_prog *prog; - unsigned int res; +struct xgbe_version_data { + void (*init_function_ptrs_phy_impl)(struct xgbe_phy_if *); + enum xgbe_xpcs_access xpcs_access; + unsigned int mmc_64bit; + unsigned int tx_max_fifo_size; + unsigned int rx_max_fifo_size; + unsigned int tx_tstamp_workaround; + unsigned int ecc_support; + unsigned int i2c_support; + unsigned int irq_reissue_support; + unsigned int tx_desc_prefetch; + unsigned int rx_desc_prefetch; + unsigned int an_cdr_workaround; + unsigned int enable_rrc; }; -struct dpaa2_io; - -struct dpaa2_io_store; +struct xgbe_ring_desc { + __le32 desc0; + __le32 desc1; + __le32 desc2; + __le32 desc3; +}; -struct dpaa2_eth_channel { - struct dpaa2_io_notification_ctx nctx; - struct fsl_mc_device *dpcon; - int dpcon_id; - int ch_id; +struct xgbe_channel { + char name[16]; + struct xgbe_prv_data *pdata; + unsigned int queue_index; + void *dma_regs; + int dma_irq; + char dma_irq_name[48]; struct napi_struct napi; - struct dpaa2_io *dpio; - struct dpaa2_io_store *store; - struct dpaa2_eth_priv *priv; - int buf_count; - struct dpaa2_eth_ch_stats stats; - struct dpaa2_eth_ch_xdp xdp; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; + unsigned int curr_ier; + unsigned int saved_ier; + unsigned int tx_timer_active; + struct timer_list tx_timer; + struct xgbe_ring *tx_ring; + struct xgbe_ring *rx_ring; + int node; + cpumask_t affinity_mask; long: 64; - struct xdp_rxq_info xdp_rxq; - struct list_head *rx_list; - u64 recycled_bufs[7]; - int recycled_bufs_cnt; - bool xsk_zc; - int xsk_tx_pkts_sent; - struct xsk_buff_pool *xsk_pool; - struct dpaa2_eth_bp *bp; long: 64; long: 64; long: 64; long: 64; }; -struct dpaa2_eth_bp { - struct fsl_mc_device *dev; - int bpid; +struct xgbe_packet_data { + struct sk_buff *skb; + unsigned int attributes; + unsigned int errors; + unsigned int rdesc_count; + unsigned int length; + unsigned int header_len; + unsigned int tcp_header_len; + unsigned int tcp_payload_len; + unsigned short mss; + unsigned short vlan_ctag; + u64 rx_tstamp; + u32 rss_hash; + enum pkt_hash_types rss_hash_type; + unsigned int tx_packets; + unsigned int tx_bytes; }; -struct dpaa2_eth_cls_rule { - struct ethtool_rx_flow_spec fs; - u8 in_use; +struct xgbe_page_alloc { + struct page *pages; + unsigned int pages_len; + unsigned int pages_offset; + dma_addr_t pages_dma; }; -struct dpmac_link_state { - u32 rate; - u64 options; - int up; - int state_valid; - u64 supported; - u64 advertising; +struct xgbe_ring { + spinlock_t lock; + struct xgbe_packet_data packet_data; + struct xgbe_ring_desc *rdesc; + dma_addr_t rdesc_dma; + unsigned int rdesc_count; + struct xgbe_ring_data *rdata; + struct xgbe_page_alloc rx_hdr_pa; + struct xgbe_page_alloc rx_buf_pa; + int node; + unsigned int cur; + unsigned int dirty; + unsigned int coalesce_count; + union { + struct { + unsigned int queue_stopped; + unsigned int xmit_more; + unsigned short cur_mss; + unsigned short cur_vlan_ctag; + } tx; + }; + long: 64; }; -struct dpmac_attr { - u16 id; - u32 max_rate; - enum dpmac_eth_if eth_if; - enum dpmac_link_type link_type; +struct xgbe_tx_ring_data { + unsigned int packets; + unsigned int bytes; }; -struct dpaa2_mac { - struct fsl_mc_device *mc_dev; - struct dpmac_link_state state; - struct net_device *net_dev; - struct fsl_mc_io *mc_io; - struct dpmac_attr attr; - u16 ver_major; - u16 ver_minor; - unsigned long features; - struct phylink_config phylink_config; - struct phylink *phylink; - phy_interface_t if_mode; - enum dpmac_link_type if_link_type; - struct phylink_pcs *pcs; - struct fwnode_handle *fw_node; - struct phy *serdes_phy; +struct xgbe_buffer_data { + struct xgbe_page_alloc pa; + struct xgbe_page_alloc pa_unmap; + dma_addr_t dma_base; + unsigned long dma_off; + unsigned int dma_len; }; -struct dpaa2_eth_trap_item; - -struct dpaa2_eth_trap_data { - struct dpaa2_eth_trap_item *trap_items_arr; - struct dpaa2_eth_priv *priv; +struct xgbe_rx_ring_data { + struct xgbe_buffer_data hdr; + struct xgbe_buffer_data buf; + unsigned short hdr_len; + unsigned short len; }; -struct dpaa2_eth_trap_item { - void *trap_ctx; +struct xgbe_ring_data { + struct xgbe_ring_desc *rdesc; + dma_addr_t rdesc_dma; + struct sk_buff *skb; + dma_addr_t skb_dma; + unsigned int skb_dma_len; + struct xgbe_tx_ring_data tx; + struct xgbe_rx_ring_data rx; + unsigned int mapped_as_page; + unsigned int state_saved; + struct { + struct sk_buff *skb; + unsigned int len; + unsigned int error; + } state; }; -struct trace_event_data_offsets_dpaa2_eth_fd { - u32 name; +struct xgbe_i2c_op { + enum xgbe_i2c_cmd cmd; + unsigned int target; + void *buf; + unsigned int len; }; -struct trace_event_data_offsets_dpaa2_eth_buf { - u32 name; +struct xgbe_phy_data { + enum xgbe_port_mode port_mode; + unsigned int port_id; + unsigned int port_speeds; + enum xgbe_conn_type conn_type; + enum xgbe_mode cur_mode; + enum xgbe_mode start_mode; + unsigned int rrc_count; + unsigned int mdio_addr; + enum xgbe_sfp_comm sfp_comm; + unsigned int sfp_mux_address; + unsigned int sfp_mux_channel; + unsigned int sfp_gpio_address; + unsigned int sfp_gpio_mask; + unsigned int sfp_gpio_inputs; + unsigned int sfp_gpio_rx_los; + unsigned int sfp_gpio_tx_fault; + unsigned int sfp_gpio_mod_absent; + unsigned int sfp_gpio_rate_select; + unsigned int sfp_rx_los; + unsigned int sfp_tx_fault; + unsigned int sfp_mod_absent; + unsigned int sfp_changed; + unsigned int sfp_phy_avail; + unsigned int sfp_cable_len; + enum xgbe_sfp_base sfp_base; + enum xgbe_sfp_cable sfp_cable; + enum xgbe_sfp_speed sfp_speed; + struct xgbe_sfp_eeprom sfp_eeprom; + enum xgbe_mdio_mode phydev_mode; + struct mii_bus *mii; + struct phy_device *phydev; + enum xgbe_mdio_reset mdio_reset; + unsigned int mdio_reset_addr; + unsigned int mdio_reset_gpio; + unsigned int redrv; + unsigned int redrv_if; + unsigned int redrv_addr; + unsigned int redrv_lane; + unsigned int redrv_model; + unsigned int phy_cdr_notrack; + unsigned int phy_cdr_delay; }; -struct dpaa2_faead { - __le32 conf_fqid; - __le32 ctrl; -}; +struct dsa_device_ops; -struct dpni_taildrop { - char enable; - enum dpni_congestion_unit units; - u32 threshold; -}; +struct dsa_switch_tree; -struct dpni_rx_dist_cfg { - u16 dist_size; - u64 key_cfg_iova; - u8 enable; - u8 tc; - u16 fs_miss_flow_id; -}; +struct dsa_switch; -struct dpni_fs_tbl_cfg { - enum dpni_fs_miss_action miss_action; - u16 default_flow_id; -}; +struct dsa_bridge; -struct dpni_rx_tc_dist_cfg { - u16 dist_size; - enum dpni_dist_mode dist_mode; - u64 key_cfg_iova; - struct dpni_fs_tbl_cfg fs_cfg; -}; +struct dsa_lag; -struct dpkg_mask { - u8 mask; - u8 offset; +struct dsa_port { + union { + struct net_device *conduit; + struct net_device *user; + }; + const struct dsa_device_ops *tag_ops; + struct dsa_switch_tree *dst; + struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); + struct dsa_switch *ds; + unsigned int index; + enum { + DSA_PORT_TYPE_UNUSED = 0, + DSA_PORT_TYPE_CPU = 1, + DSA_PORT_TYPE_DSA = 2, + DSA_PORT_TYPE_USER = 3, + } type; + const char *name; + struct dsa_port *cpu_dp; + u8 mac[6]; + u8 stp_state; + u8 vlan_filtering: 1; + u8 learning: 1; + u8 lag_tx_enabled: 1; + u8 conduit_admin_up: 1; + u8 conduit_oper_up: 1; + u8 cpu_port_in_lag: 1; + u8 setup: 1; + struct device_node *dn; + unsigned int ageing_time; + struct dsa_bridge *bridge; + struct devlink_port devlink_port; + struct phylink *pl; + struct phylink_config pl_config; + struct dsa_lag *lag; + struct net_device *hsr_dev; + struct list_head list; + const struct ethtool_ops *orig_ethtool_ops; + struct mutex addr_lists_lock; + struct list_head fdbs; + struct list_head mdbs; + struct mutex vlans_lock; + union { + struct list_head vlans; + struct list_head user_vlans; + }; }; -struct dpkg_extract { - enum dpkg_extract_type type; - union { - struct { - enum net_prot prot; - enum dpkg_extract_from_hdr_type type; - u32 field; - u8 size; - u8 offset; - u8 hdr_index; - } from_hdr; - struct { - u8 size; - u8 offset; - } from_data; - struct { - u8 size; - u8 offset; - } from_parse; - } extract; - u8 num_of_byte_masks; - struct dpkg_mask masks[4]; +enum dsa_tag_protocol { + DSA_TAG_PROTO_NONE = 0, + DSA_TAG_PROTO_BRCM = 1, + DSA_TAG_PROTO_BRCM_LEGACY = 22, + DSA_TAG_PROTO_BRCM_PREPEND = 2, + DSA_TAG_PROTO_DSA = 3, + DSA_TAG_PROTO_EDSA = 4, + DSA_TAG_PROTO_GSWIP = 5, + DSA_TAG_PROTO_KSZ9477 = 6, + DSA_TAG_PROTO_KSZ9893 = 7, + DSA_TAG_PROTO_LAN9303 = 8, + DSA_TAG_PROTO_MTK = 9, + DSA_TAG_PROTO_QCA = 10, + DSA_TAG_PROTO_TRAILER = 11, + DSA_TAG_PROTO_8021Q = 12, + DSA_TAG_PROTO_SJA1105 = 13, + DSA_TAG_PROTO_KSZ8795 = 14, + DSA_TAG_PROTO_OCELOT = 15, + DSA_TAG_PROTO_AR9331 = 16, + DSA_TAG_PROTO_RTL4_A = 17, + DSA_TAG_PROTO_HELLCREEK = 18, + DSA_TAG_PROTO_XRS700X = 19, + DSA_TAG_PROTO_OCELOT_8021Q = 20, + DSA_TAG_PROTO_SEVILLE = 21, + DSA_TAG_PROTO_SJA1110 = 23, + DSA_TAG_PROTO_RTL8_4 = 24, + DSA_TAG_PROTO_RTL8_4T = 25, + DSA_TAG_PROTO_RZN1_A5PSW = 26, + DSA_TAG_PROTO_LAN937X = 27, }; -struct dpkg_profile_cfg { - u8 num_extracts; - struct dpkg_extract extracts[10]; +struct dsa_device_ops { + struct sk_buff * (*xmit)(struct sk_buff *, struct net_device *); + struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); + void (*flow_dissect)(const struct sk_buff *, __be16 *, int *); + int (*connect)(struct dsa_switch *); + void (*disconnect)(struct dsa_switch *); + unsigned int needed_headroom; + unsigned int needed_tailroom; + const char *name; + enum dsa_tag_protocol proto; + bool promisc_on_conduit; }; -struct dpni_buffer_layout { - u32 options; - int pass_timestamp; - int pass_parser_result; - int pass_frame_status; - u16 private_data_size; - u16 data_align; - u16 data_head_room; - u16 data_tail_room; +struct dsa_8021q_context; + +struct dsa_chip_data; + +struct dsa_switch_ops; + +struct dsa_switch { + struct device *dev; + struct dsa_switch_tree *dst; + unsigned int index; + u32 setup: 1; + u32 vlan_filtering_is_global: 1; + u32 needs_standalone_vlan_filtering: 1; + u32 configure_vlan_while_not_filtering: 1; + u32 untag_bridge_pvid: 1; + u32 assisted_learning_on_cpu_port: 1; + u32 vlan_filtering: 1; + u32 mtu_enforcement_ingress: 1; + u32 fdb_isolation: 1; + struct notifier_block nb; + void *priv; + void *tagger_data; + struct dsa_chip_data *cd; + const struct dsa_switch_ops *ops; + u32 phys_mii_mask; + struct mii_bus *user_mii_bus; + unsigned int ageing_time_min; + unsigned int ageing_time_max; + struct dsa_8021q_context *tag_8021q_ctx; + struct devlink *devlink; + unsigned int num_tx_queues; + unsigned int num_lag_ids; + unsigned int max_num_bridges; + unsigned int num_ports; }; -struct dpni_link_cfg { - u32 rate; - u64 options; +struct dsa_platform_data; + +struct dsa_switch_tree { + struct list_head list; + struct list_head ports; + struct raw_notifier_head nh; + unsigned int index; + struct kref refcount; + struct dsa_lag **lags; + const struct dsa_device_ops *tag_ops; + enum dsa_tag_protocol default_proto; + bool setup; + struct dsa_platform_data *pd; + struct list_head rtable; + unsigned int lags_len; + unsigned int last_switch; }; -struct dpni_qos_tbl_cfg { - u64 key_cfg_iova; - int discard_on_miss; - u8 default_tc; +struct dsa_lag { + struct net_device *dev; + unsigned int id; + struct mutex fdb_lock; + struct list_head fdbs; + refcount_t refcount; }; -struct dpni_rule_cfg { - u64 key_iova; - u64 mask_iova; - u8 key_size; +struct dsa_platform_data { + struct device *netdev; + struct net_device *of_netdev; + int nr_chips; + struct dsa_chip_data *chip; }; -struct dpcon_notification_cfg { - int dpio_id; - u8 priority; - u64 user_ctx; +struct dsa_chip_data { + struct device *host_dev; + int sw_addr; + struct device *netdev[12]; + int eeprom_len; + struct device_node *of_node; + char *port_names[12]; + struct device_node *port_dn[12]; + s8 rtable[4]; }; -struct dpcon_attr { - int id; - u16 qbman_ch_id; - u8 num_priorities; +typedef int dsa_fdb_dump_cb_t(const unsigned char *, u16, bool, void *); + +struct fixed_phy_status; + +struct netdev_notifier_changeupper_info; + +struct switchdev_mst_state; + +struct switchdev_brport_flags; + +struct switchdev_obj_port_vlan; + +struct switchdev_vlan_msti; + +struct dsa_db; + +struct switchdev_obj_port_mdb; + +struct dsa_mall_mirror_tc_entry; + +struct dsa_mall_policer_tc_entry; + +struct netdev_lag_upper_info; + +struct devlink_param_gset_ctx; + +struct switchdev_obj_mrp; + +struct switchdev_obj_ring_role_mrp; + +struct dsa_switch_ops { + enum dsa_tag_protocol (*get_tag_protocol)(struct dsa_switch *, int, enum dsa_tag_protocol); + int (*change_tag_protocol)(struct dsa_switch *, enum dsa_tag_protocol); + int (*connect_tag_protocol)(struct dsa_switch *, enum dsa_tag_protocol); + int (*port_change_conduit)(struct dsa_switch *, int, struct net_device *, struct netlink_ext_ack *); + int (*setup)(struct dsa_switch *); + void (*teardown)(struct dsa_switch *); + int (*port_setup)(struct dsa_switch *, int); + void (*port_teardown)(struct dsa_switch *, int); + u32 (*get_phy_flags)(struct dsa_switch *, int); + int (*phy_read)(struct dsa_switch *, int, int); + int (*phy_write)(struct dsa_switch *, int, int, u16); + void (*adjust_link)(struct dsa_switch *, int, struct phy_device *); + void (*fixed_link_update)(struct dsa_switch *, int, struct fixed_phy_status *); + void (*phylink_get_caps)(struct dsa_switch *, int, struct phylink_config *); + struct phylink_pcs * (*phylink_mac_select_pcs)(struct dsa_switch *, int, phy_interface_t); + int (*phylink_mac_prepare)(struct dsa_switch *, int, unsigned int, phy_interface_t); + void (*phylink_mac_config)(struct dsa_switch *, int, unsigned int, const struct phylink_link_state *); + int (*phylink_mac_finish)(struct dsa_switch *, int, unsigned int, phy_interface_t); + void (*phylink_mac_link_down)(struct dsa_switch *, int, unsigned int, phy_interface_t); + void (*phylink_mac_link_up)(struct dsa_switch *, int, unsigned int, phy_interface_t, struct phy_device *, int, int, bool, bool); + void (*phylink_fixed_state)(struct dsa_switch *, int, struct phylink_link_state *); + void (*get_strings)(struct dsa_switch *, int, u32, uint8_t *); + void (*get_ethtool_stats)(struct dsa_switch *, int, uint64_t *); + int (*get_sset_count)(struct dsa_switch *, int, int); + void (*get_ethtool_phy_stats)(struct dsa_switch *, int, uint64_t *); + void (*get_eth_phy_stats)(struct dsa_switch *, int, struct ethtool_eth_phy_stats *); + void (*get_eth_mac_stats)(struct dsa_switch *, int, struct ethtool_eth_mac_stats *); + void (*get_eth_ctrl_stats)(struct dsa_switch *, int, struct ethtool_eth_ctrl_stats *); + void (*get_rmon_stats)(struct dsa_switch *, int, struct ethtool_rmon_stats *, const struct ethtool_rmon_hist_range **); + void (*get_stats64)(struct dsa_switch *, int, struct rtnl_link_stats64 *); + void (*get_pause_stats)(struct dsa_switch *, int, struct ethtool_pause_stats *); + void (*self_test)(struct dsa_switch *, int, struct ethtool_test *, u64 *); + void (*get_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); + int (*set_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); + int (*get_ts_info)(struct dsa_switch *, int, struct ethtool_ts_info *); + int (*get_mm)(struct dsa_switch *, int, struct ethtool_mm_state *); + int (*set_mm)(struct dsa_switch *, int, struct ethtool_mm_cfg *, struct netlink_ext_ack *); + void (*get_mm_stats)(struct dsa_switch *, int, struct ethtool_mm_stats *); + int (*port_get_default_prio)(struct dsa_switch *, int); + int (*port_set_default_prio)(struct dsa_switch *, int, u8); + int (*port_get_dscp_prio)(struct dsa_switch *, int, u8); + int (*port_add_dscp_prio)(struct dsa_switch *, int, u8, u8); + int (*port_del_dscp_prio)(struct dsa_switch *, int, u8, u8); + int (*suspend)(struct dsa_switch *); + int (*resume)(struct dsa_switch *); + int (*port_enable)(struct dsa_switch *, int, struct phy_device *); + void (*port_disable)(struct dsa_switch *, int); + int (*port_set_mac_address)(struct dsa_switch *, int, const unsigned char *); + struct dsa_port * (*preferred_default_local_cpu_port)(struct dsa_switch *); + int (*set_mac_eee)(struct dsa_switch *, int, struct ethtool_eee *); + int (*get_mac_eee)(struct dsa_switch *, int, struct ethtool_eee *); + int (*get_eeprom_len)(struct dsa_switch *); + int (*get_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); + int (*set_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); + int (*get_regs_len)(struct dsa_switch *, int); + void (*get_regs)(struct dsa_switch *, int, struct ethtool_regs *, void *); + int (*port_prechangeupper)(struct dsa_switch *, int, struct netdev_notifier_changeupper_info *); + int (*set_ageing_time)(struct dsa_switch *, unsigned int); + int (*port_bridge_join)(struct dsa_switch *, int, struct dsa_bridge, bool *, struct netlink_ext_ack *); + void (*port_bridge_leave)(struct dsa_switch *, int, struct dsa_bridge); + void (*port_stp_state_set)(struct dsa_switch *, int, u8); + int (*port_mst_state_set)(struct dsa_switch *, int, const struct switchdev_mst_state *); + void (*port_fast_age)(struct dsa_switch *, int); + int (*port_vlan_fast_age)(struct dsa_switch *, int, u16); + int (*port_pre_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); + int (*port_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); + void (*port_set_host_flood)(struct dsa_switch *, int, bool, bool); + int (*port_vlan_filtering)(struct dsa_switch *, int, bool, struct netlink_ext_ack *); + int (*port_vlan_add)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *, struct netlink_ext_ack *); + int (*port_vlan_del)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *); + int (*vlan_msti_set)(struct dsa_switch *, struct dsa_bridge, const struct switchdev_vlan_msti *); + int (*port_fdb_add)(struct dsa_switch *, int, const unsigned char *, u16, struct dsa_db); + int (*port_fdb_del)(struct dsa_switch *, int, const unsigned char *, u16, struct dsa_db); + int (*port_fdb_dump)(struct dsa_switch *, int, dsa_fdb_dump_cb_t *, void *); + int (*lag_fdb_add)(struct dsa_switch *, struct dsa_lag, const unsigned char *, u16, struct dsa_db); + int (*lag_fdb_del)(struct dsa_switch *, struct dsa_lag, const unsigned char *, u16, struct dsa_db); + int (*port_mdb_add)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *, struct dsa_db); + int (*port_mdb_del)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *, struct dsa_db); + int (*get_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *, u32 *); + int (*set_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *); + int (*cls_flower_add)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*cls_flower_del)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*cls_flower_stats)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*port_mirror_add)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *, bool, struct netlink_ext_ack *); + void (*port_mirror_del)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *); + int (*port_policer_add)(struct dsa_switch *, int, struct dsa_mall_policer_tc_entry *); + void (*port_policer_del)(struct dsa_switch *, int); + int (*port_setup_tc)(struct dsa_switch *, int, enum tc_setup_type, void *); + int (*crosschip_bridge_join)(struct dsa_switch *, int, int, int, struct dsa_bridge, struct netlink_ext_ack *); + void (*crosschip_bridge_leave)(struct dsa_switch *, int, int, int, struct dsa_bridge); + int (*crosschip_lag_change)(struct dsa_switch *, int, int); + int (*crosschip_lag_join)(struct dsa_switch *, int, int, struct dsa_lag, struct netdev_lag_upper_info *, struct netlink_ext_ack *); + int (*crosschip_lag_leave)(struct dsa_switch *, int, int, struct dsa_lag); + int (*port_hwtstamp_get)(struct dsa_switch *, int, struct ifreq *); + int (*port_hwtstamp_set)(struct dsa_switch *, int, struct ifreq *); + void (*port_txtstamp)(struct dsa_switch *, int, struct sk_buff *); + bool (*port_rxtstamp)(struct dsa_switch *, int, struct sk_buff *, unsigned int); + int (*devlink_param_get)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); + int (*devlink_param_set)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); + int (*devlink_info_get)(struct dsa_switch *, struct devlink_info_req *, struct netlink_ext_ack *); + int (*devlink_sb_pool_get)(struct dsa_switch *, unsigned int, u16, struct devlink_sb_pool_info *); + int (*devlink_sb_pool_set)(struct dsa_switch *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *); + int (*devlink_sb_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *); + int (*devlink_sb_port_pool_set)(struct dsa_switch *, int, unsigned int, u16, u32, struct netlink_ext_ack *); + int (*devlink_sb_tc_pool_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *); + int (*devlink_sb_tc_pool_bind_set)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *); + int (*devlink_sb_occ_snapshot)(struct dsa_switch *, unsigned int); + int (*devlink_sb_occ_max_clear)(struct dsa_switch *, unsigned int); + int (*devlink_sb_occ_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *, u32 *); + int (*devlink_sb_occ_tc_port_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *); + int (*port_change_mtu)(struct dsa_switch *, int, int); + int (*port_max_mtu)(struct dsa_switch *, int); + int (*port_lag_change)(struct dsa_switch *, int); + int (*port_lag_join)(struct dsa_switch *, int, struct dsa_lag, struct netdev_lag_upper_info *, struct netlink_ext_ack *); + int (*port_lag_leave)(struct dsa_switch *, int, struct dsa_lag); + int (*port_hsr_join)(struct dsa_switch *, int, struct net_device *, struct netlink_ext_ack *); + int (*port_hsr_leave)(struct dsa_switch *, int, struct net_device *); + int (*port_mrp_add)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); + int (*port_mrp_del)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); + int (*port_mrp_add_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); + int (*port_mrp_del_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); + int (*tag_8021q_vlan_add)(struct dsa_switch *, int, u16, u16); + int (*tag_8021q_vlan_del)(struct dsa_switch *, int, u16); + void (*conduit_state_change)(struct dsa_switch *, const struct net_device *, bool); }; -struct dpni_queue { - struct { - u16 id; - enum dpni_dest type; - char hold_active; - u8 priority; - } destination; - u64 user_context; - struct { - u64 value; - char stash_control; - } flc; +struct fixed_phy_status { + int link; + int speed; + int duplex; + int pause; + int asym_pause; }; -struct dpni_queue_id { - u32 fqid; - u16 qdbin; +struct netdev_notifier_changeupper_info { + struct netdev_notifier_info info; + struct net_device *upper_dev; + bool master; + bool linking; + void *upper_info; }; -struct dpni_pools_cfg { - u8 num_dpbp; - u8 pool_options; - struct { - int dpbp_id; - u8 priority_mask; - u16 buffer_size; - int backup_pool; - } pools[8]; +struct dsa_bridge { + struct net_device *dev; + unsigned int num; + bool tx_fwd_offload; + refcount_t refcount; }; -struct dpni_error_cfg { - u32 errors; - enum dpni_error_action error_action; - int set_frame_annotation; +struct switchdev_mst_state { + u16 msti; + u8 state; }; -struct ptp_tstamp { - u16 sec_msb; - u32 sec_lsb; - u32 nsec; +struct switchdev_brport_flags { + unsigned long val; + unsigned long mask; }; -struct dpaa2_fas { - u8 reserved; - u8 ppid; - __le16 ifpid; - __le32 status; +enum switchdev_obj_id { + SWITCHDEV_OBJ_ID_UNDEFINED = 0, + SWITCHDEV_OBJ_ID_PORT_VLAN = 1, + SWITCHDEV_OBJ_ID_PORT_MDB = 2, + SWITCHDEV_OBJ_ID_HOST_MDB = 3, + SWITCHDEV_OBJ_ID_MRP = 4, + SWITCHDEV_OBJ_ID_RING_TEST_MRP = 5, + SWITCHDEV_OBJ_ID_RING_ROLE_MRP = 6, + SWITCHDEV_OBJ_ID_RING_STATE_MRP = 7, + SWITCHDEV_OBJ_ID_IN_TEST_MRP = 8, + SWITCHDEV_OBJ_ID_IN_ROLE_MRP = 9, + SWITCHDEV_OBJ_ID_IN_STATE_MRP = 10, }; -struct dpaa2_fapr { - __le32 faf_lo; - __le16 faf_ext; - __le16 nxt_hdr; - __le64 faf_hi; - u8 last_ethertype_offset; - u8 vlan_tci_offset_n; - u8 vlan_tci_offset_1; - u8 llc_snap_offset; - u8 eth_offset; - u8 ip1_pid_offset; - u8 shim_offset_2; - u8 shim_offset_1; - u8 l5_offset; - u8 l4_offset; - u8 gre_offset; - u8 l3_offset_n; - u8 l3_offset_1; - u8 mpls_offset_n; - u8 mpls_offset_1; - u8 pppoe_offset; - __le16 running_sum; - __le16 gross_running_sum; - u8 ipv6_frag_offset; - u8 nxt_hdr_offset; - u8 routing_hdr_offset_2; - u8 routing_hdr_offset_1; - u8 reserved[5]; - u8 ip_proto_offset_n; - u8 nxt_hdr_frag_offset; - u8 parse_error_code; +struct switchdev_obj { + struct list_head list; + struct net_device *orig_dev; + enum switchdev_obj_id id; + u32 flags; + void *complete_priv; + void (*complete)(struct net_device *, int, void *); }; -struct common { - u8 verb; - u8 reserved[63]; +struct switchdev_obj_port_vlan { + struct switchdev_obj obj; + u16 flags; + u16 vid; + bool changed; }; -struct dq { - u8 verb; - u8 stat; - __le16 seqnum; - __le16 oprid; - u8 reserved; - u8 tok; - __le32 fqid; - u32 reserved2; - __le32 fq_byte_cnt; - __le32 fq_frm_cnt; - __le64 fqd_ctx; - u8 fd[32]; +struct switchdev_vlan_msti { + u16 vid; + u16 msti; }; -struct scn { - u8 verb; - u8 stat; - u8 state; - u8 reserved; - __le32 rid_tok; - __le64 ctx; +enum dsa_db_type { + DSA_DB_PORT = 0, + DSA_DB_LAG = 1, + DSA_DB_BRIDGE = 2, }; -struct dpaa2_dq { +struct dsa_db { + enum dsa_db_type type; union { - struct common common; - struct dq dq; - struct scn scn; + const struct dsa_port *dp; + struct dsa_lag lag; + struct dsa_bridge bridge; }; }; -union dpni_statistics { - struct { - u64 ingress_all_frames; - u64 ingress_all_bytes; - u64 ingress_multicast_frames; - u64 ingress_multicast_bytes; - u64 ingress_broadcast_frames; - u64 ingress_broadcast_bytes; - } page_0; - struct { - u64 egress_all_frames; - u64 egress_all_bytes; - u64 egress_multicast_frames; - u64 egress_multicast_bytes; - u64 egress_broadcast_frames; - u64 egress_broadcast_bytes; - } page_1; - struct { - u64 ingress_filtered_frames; - u64 ingress_discarded_frames; - u64 ingress_nobuffer_discards; - u64 egress_discarded_frames; - u64 egress_confirmed_frames; - } page_2; - struct { - u64 egress_dequeue_bytes; - u64 egress_dequeue_frames; - u64 egress_reject_bytes; - u64 egress_reject_frames; - } page_3; - struct { - u64 cgr_reject_frames; - u64 cgr_reject_bytes; - } page_4; - struct { - u64 policer_cnt_red; - u64 policer_cnt_yellow; - u64 policer_cnt_green; - u64 policer_cnt_re_red; - u64 policer_cnt_re_yellow; - } page_5; - struct { - u64 tx_pending_frames; - } page_6; - struct { - u64 counter[7]; - } raw; +struct switchdev_obj_port_mdb { + struct switchdev_obj obj; + unsigned char addr[6]; + u16 vid; }; -struct dpni_single_step_cfg { - u8 en; - u8 ch_update; - u16 offset; - u32 peer_delay; - u32 ptp_onestep_reg_base; +struct dsa_mall_mirror_tc_entry { + u8 to_local_port; + bool ingress; }; -struct psched_ratecfg { - u64 rate_bytes_ps; - u32 mult; - u16 overhead; - u16 mpu; - u8 linklayer; - u8 shift; +struct dsa_mall_policer_tc_entry { + u32 burst; + u64 rate_bytes_per_sec; }; -struct tc_tbf_qopt_offload_replace_params { - struct psched_ratecfg rate; - u32 max_size; - struct gnet_stats_queue *qstats; +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, }; -struct tc_qopt_offload_stats { - struct gnet_stats_basic_sync *bstats; - struct gnet_stats_queue *qstats; +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 tc_tbf_qopt_offload { - enum tc_tbf_command command; - u32 handle; - u32 parent; - union { - struct tc_tbf_qopt_offload_replace_params replace_params; - struct tc_qopt_offload_stats stats; - u32 child_handle; - }; +struct netdev_lag_upper_info { + enum netdev_lag_tx_type tx_type; + enum netdev_lag_hash hash_type; }; -struct dpni_tx_shaping_cfg { - u32 rate_limit; - u16 max_burst_size; +union devlink_param_value { + u8 vu8; + u16 vu16; + u32 vu32; + char vstr[32]; + bool vbool; }; -enum e1000_mac_type___3 { - e1000_undefined___2 = 0, - e1000_vfadapt = 1, - e1000_vfadapt_i350 = 2, - e1000_num_macs___2 = 3, +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 e1000_dev_spec_vf { - u32 vf_number; - u32 v2p_mailbox; +struct devlink_param_gset_ctx { + union devlink_param_value val; + enum devlink_param_cmode cmode; }; -struct e1000_hw___3; +struct switchdev_obj_mrp { + struct switchdev_obj obj; + struct net_device *p_port; + struct net_device *s_port; + u32 ring_id; + u16 prio; +}; -struct e1000_mac_operations___3 { - s32 (*init_params)(struct e1000_hw___3 *); - s32 (*check_for_link)(struct e1000_hw___3 *); - void (*clear_vfta)(struct e1000_hw___3 *); - s32 (*get_bus_info)(struct e1000_hw___3 *); - s32 (*get_link_up_info)(struct e1000_hw___3 *, u16 *, u16 *); - void (*update_mc_addr_list)(struct e1000_hw___3 *, u8 *, u32, u32, u32); - s32 (*set_uc_addr)(struct e1000_hw___3 *, u32, u8 *); - s32 (*reset_hw)(struct e1000_hw___3 *); - s32 (*init_hw)(struct e1000_hw___3 *); - s32 (*setup_link)(struct e1000_hw___3 *); - void (*write_vfta)(struct e1000_hw___3 *, u32, u32); - void (*mta_set)(struct e1000_hw___3 *, u32); - void (*rar_set)(struct e1000_hw___3 *, u8 *, u32); - s32 (*read_mac_addr)(struct e1000_hw___3 *); - s32 (*set_vfta)(struct e1000_hw___3 *, u16, bool); +struct switchdev_obj_ring_role_mrp { + struct switchdev_obj obj; + u8 ring_role; + u32 ring_id; + u8 sw_backup; }; -struct e1000_mac_info___3 { - struct e1000_mac_operations___3 ops; - u8 addr[6]; - u8 perm_addr[6]; - enum e1000_mac_type___3 type; - u16 mta_reg_count; - u16 rar_entry_count; - bool get_link_status; +struct bgmac_stat { + u8 size; + u32 offset; + const char *name; }; -struct e1000_mbx_operations___2 { - s32 (*init_params)(struct e1000_hw___3 *); - s32 (*read)(struct e1000_hw___3 *, u32 *, u16); - s32 (*write)(struct e1000_hw___3 *, u32 *, u16); - s32 (*read_posted)(struct e1000_hw___3 *, u32 *, u16); - s32 (*write_posted)(struct e1000_hw___3 *, u32 *, u16); - s32 (*check_for_msg)(struct e1000_hw___3 *); - s32 (*check_for_ack)(struct e1000_hw___3 *); - s32 (*check_for_rst)(struct e1000_hw___3 *); +enum bcma_hosttype { + BCMA_HOSTTYPE_PCI = 0, + BCMA_HOSTTYPE_SDIO = 1, + BCMA_HOSTTYPE_SOC = 2, }; -struct e1000_mbx_info___2 { - struct e1000_mbx_operations___2 ops; - struct e1000_mbx_stats stats; - u32 timeout; - u32 usec_delay; - u16 size; +enum bgmac_dma_ring_type { + BGMAC_DMA_RING_TX = 0, + BGMAC_DMA_RING_RX = 1, }; -struct e1000_hw___3 { - void *back; - u8 *hw_addr; - u8 *flash_address; - unsigned long io_base; - struct e1000_mac_info___3 mac; - struct e1000_mbx_info___2 mbx; - spinlock_t mbx_lock; +struct bgmac_slot_info { union { - struct e1000_dev_spec_vf vf; - } dev_spec; - u16 device_id; - u16 subsystem_vendor_id; - u16 subsystem_device_id; - u16 vendor_id; - u8 revision_id; + struct sk_buff *skb; + void *buf; + }; + dma_addr_t dma_addr; }; -struct igbvf_adapter; +struct bgmac_dma_desc; -struct igbvf_info { - enum e1000_mac_type___3 mac; - unsigned int flags; - u32 pba; - void (*init_ops)(struct e1000_hw___3 *); - s32 (*get_variants)(struct igbvf_adapter *); +struct bgmac_dma_ring { + u32 start; + u32 end; + struct bgmac_dma_desc *cpu_base; + dma_addr_t dma_base; + u32 index_base; + u16 mmio_base; + bool unaligned; + struct bgmac_slot_info slots[512]; }; -struct e1000_vf_stats { - u64 base_gprc; - u64 base_gptc; - u64 base_gorc; - u64 base_gotc; - u64 base_mprc; - u64 base_gotlbc; - u64 base_gptlbc; - u64 base_gorlbc; - u64 base_gprlbc; - u32 last_gprc; - u32 last_gptc; - u32 last_gorc; - u32 last_gotc; - u32 last_mprc; - u32 last_gotlbc; - u32 last_gptlbc; - u32 last_gorlbc; - u32 last_gprlbc; - u64 gprc; - u64 gptc; - u64 gorc; - u64 gotc; - u64 mprc; - u64 gotlbc; - u64 gptlbc; - u64 gorlbc; - u64 gprlbc; +struct bcma_device; + +struct bgmac { + union { + struct { + void *base; + void *idm_base; + void *nicpm_base; + } plat; + struct { + struct bcma_device *core; + struct bcma_device *cmn; + } bcma; + }; + struct device *dev; + struct device *dma_dev; + u32 feature_flags; + struct net_device *net_dev; + struct napi_struct napi; + struct mii_bus *mii_bus; + struct bgmac_dma_ring tx_ring[4]; + struct bgmac_dma_ring rx_ring[1]; + bool stats_grabbed; + u32 mib_tx_regs[43]; + u32 mib_rx_regs[31]; + int irq; + u32 int_mask; + bool in_init; + int mac_speed; + int mac_duplex; + u8 phyaddr; + bool has_robosw; + bool loopback; + u32 (*read)(struct bgmac *, u16); + void (*write)(struct bgmac *, u16, u32); + u32 (*idm_read)(struct bgmac *, u16); + void (*idm_write)(struct bgmac *, u16, u32); + bool (*clk_enabled)(struct bgmac *); + void (*clk_enable)(struct bgmac *, u32); + void (*cco_ctl_maskset)(struct bgmac *, u32, u32, u32); + u32 (*get_bus_clock)(struct bgmac *); + void (*cmn_maskset32)(struct bgmac *, u16, u32, u32); + int (*phy_connect)(struct bgmac *); }; -struct igbvf_queue_stats { - u64 packets; - u64 bytes; +struct bcma_device_id { + __u16 manuf; + __u16 id; + __u8 rev; + __u8 class; }; -union igbvf_desc; +struct bcma_bus; -struct igbvf_buffer; +struct bcma_device { + struct bcma_bus *bus; + struct bcma_device_id id; + struct device dev; + struct device *dma_dev; + unsigned int irq; + bool dev_registered; + u8 core_index; + u8 core_unit; + u32 addr; + u32 addr_s[8]; + u32 wrap; + void *io_addr; + void *io_wrap; + void *drvdata; + struct list_head list; +}; -struct igbvf_ring { - struct igbvf_adapter *adapter; - union igbvf_desc *desc; - dma_addr_t dma; - unsigned int size; - unsigned int count; - u16 next_to_use; - u16 next_to_clean; - u16 head; - u16 tail; - struct igbvf_buffer *buffer_info; - struct napi_struct napi; - char name[21]; - u32 eims_value; - u32 itr_val; - enum latency_range itr_range; - u16 itr_register; - int set_itr; - struct sk_buff *rx_skb_top; - struct igbvf_queue_stats stats; +struct bcma_chipinfo { + u16 id; + u8 rev; + u8 pkg; }; -struct igbvf_adapter { - struct timer_list watchdog_timer; - struct timer_list blink_timer; - struct work_struct reset_task; - struct work_struct watchdog_task; - const struct igbvf_info *ei; - unsigned long active_vlans[64]; - u32 bd_number; - u32 rx_buffer_len; - u32 polling_interval; - u16 mng_vlan_id; - u16 link_speed; - u16 link_duplex; - spinlock_t tx_queue_lock; - unsigned long state; - u32 requested_itr; - u32 current_itr; - struct igbvf_ring *tx_ring; - unsigned int restart_queue; - u32 txd_cmd; - 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; - u32 tx_timeout_count; - u32 tx_fifo_head; - u32 tx_head_addr; - u32 tx_fifo_size; - u32 tx_dma_failed; - struct igbvf_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 alloc_rx_buff_failed; - u32 rx_dma_failed; - unsigned int rx_ps_hdr_size; - u32 max_frame_size; - u32 min_frame_size; - struct net_device *netdev; - struct pci_dev *pdev; - spinlock_t stats_lock; - struct e1000_hw___3 hw; - struct e1000_vf_stats stats; - u64 zero_base; - struct igbvf_ring test_tx_ring; - struct igbvf_ring test_rx_ring; - u32 test_icr; - u32 msg_enable; - struct msix_entry *msix_entries; - int int_mode; - u32 eims_enable_mask; - u32 eims_other; - u32 int_counter0; - u32 int_counter1; - u32 eeprom_wol; - u32 wol; - u32 pba; - bool fc_autoneg; - unsigned long led_status; - unsigned int flags; - unsigned long last_reset; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -union e1000_adv_rx_desc___2 { - struct { - __le64 pkt_addr; - __le64 hdr_addr; - } read; - struct { - struct { - union { - __le32 data; - struct { - __le16 pkt_info; - __le16 hdr_info; - } hs_rss; - } lo_dword; - union { - __le32 rss; - struct { - __le16 ip_id; - __le16 csum; - } csum_ip; - } hi_dword; - } lower; - struct { - __le32 status_error; - __le16 length; - __le16 vlan; - } upper; - } wb; +struct bcma_boardinfo { + u16 vendor; + u16 type; }; -struct e1000_adv_tx_context_desc { - __le32 vlan_macip_lens; - __le32 seqnum_seed; - __le32 type_tucmd_mlhl; - __le32 mss_l4len_idx; +struct bcma_chipcommon_pmu { + struct bcma_device *core; + u8 rev; + u32 crystalfreq; }; -union igbvf_desc { - union e1000_adv_rx_desc___2 rx_desc; - union e1000_adv_tx_desc tx_desc; - struct e1000_adv_tx_context_desc tx_context_desc; +struct bcma_drv_cc { + struct bcma_device *core; + u32 status; + u32 capabilities; + u32 capabilities_ext; + u8 setup_done: 1; + u8 early_setup_done: 1; + u16 fast_pwrup_delay; + struct bcma_chipcommon_pmu pmu; + u32 ticks_per_ms; + struct platform_device *watchdog; + spinlock_t gpio_lock; }; -struct igbvf_buffer { - dma_addr_t dma; - struct sk_buff *skb; - union { - struct { - unsigned long time_stamp; - union e1000_adv_tx_desc *next_to_watch; - u16 length; - u16 mapped_as_page; - }; - struct { - struct page *page; - u64 page_dma; - unsigned int page_offset; - }; - }; +struct bcma_drv_cc_b { + struct bcma_device *core; + u8 setup_done: 1; + void *mii; }; -enum igbvf_state_t { - __IGBVF_TESTING = 0, - __IGBVF_RESETTING = 1, - __IGBVF_DOWN = 2, +struct bcma_drv_pci { + struct bcma_device *core; + u8 early_setup_done: 1; + u8 setup_done: 1; + u8 hostmode: 1; }; -enum dwc3_ep0_next { - DWC3_EP0_UNKNOWN = 0, - DWC3_EP0_COMPLETE = 1, - DWC3_EP0_NRDY_DATA = 2, - DWC3_EP0_NRDY_STATUS = 3, +struct bcma_drv_pcie2 { + struct bcma_device *core; + u16 reqsize; }; -enum dwc3_ep0_state { - EP0_UNCONNECTED = 0, - EP0_SETUP_PHASE = 1, - EP0_DATA_PHASE = 2, - EP0_STATUS_PHASE = 3, +struct bcma_drv_mips { + struct bcma_device *core; + u8 setup_done: 1; + u8 early_setup_done: 1; }; -enum dwc3_link_state { - DWC3_LINK_STATE_U0 = 0, - DWC3_LINK_STATE_U1 = 1, - DWC3_LINK_STATE_U2 = 2, - DWC3_LINK_STATE_U3 = 3, - DWC3_LINK_STATE_SS_DIS = 4, - DWC3_LINK_STATE_RX_DET = 5, - DWC3_LINK_STATE_SS_INACT = 6, - DWC3_LINK_STATE_POLL = 7, - DWC3_LINK_STATE_RECOV = 8, - DWC3_LINK_STATE_HRESET = 9, - DWC3_LINK_STATE_CMPLY = 10, - DWC3_LINK_STATE_LPBK = 11, - DWC3_LINK_STATE_RESET = 14, - DWC3_LINK_STATE_RESUME = 15, - DWC3_LINK_STATE_MASK = 15, +struct bcma_drv_gmac_cmn { + struct bcma_device *core; + struct mutex phy_mutex; }; -struct dwc3_ep; - -struct dwc3_trb; - -struct dwc3_request { - struct usb_request request; - struct list_head list; - struct dwc3_ep *dep; - struct scatterlist *sg; - struct scatterlist *start_sg; - unsigned int num_pending_sgs; - unsigned int num_queued_sgs; - unsigned int remaining; - unsigned int status; - u8 epnum; - struct dwc3_trb *trb; - dma_addr_t trb_dma; - unsigned int num_trbs; - unsigned int needs_extra_trb: 1; - unsigned int direction: 1; - unsigned int mapped: 1; +struct ssb_sprom_core_pwr_info { + u8 itssi_2g; + u8 itssi_5g; + u8 maxpwr_2g; + u8 maxpwr_5gl; + u8 maxpwr_5g; + u8 maxpwr_5gh; + u16 pa_2g[4]; + u16 pa_5gl[4]; + u16 pa_5g[4]; + u16 pa_5gh[4]; }; -struct dwc3_hwparams { - u32 hwparams0; - u32 hwparams1; - u32 hwparams2; - u32 hwparams3; - u32 hwparams4; - u32 hwparams5; - u32 hwparams6; - u32 hwparams7; - u32 hwparams8; - u32 hwparams9; +struct ssb_sprom { + u8 revision; + short: 0; + u8 il0mac[6]; + u8 et0mac[6]; + u8 et1mac[6]; + u8 et2mac[6]; + u8 et0phyaddr; + u8 et1phyaddr; + u8 et2phyaddr; + u8 et0mdcport; + u8 et1mdcport; + u8 et2mdcport; + u16 dev_id; + u16 board_rev; + u16 board_num; + u16 board_type; + u8 country_code; + char alpha2[2]; + u8 leddc_on_time; + u8 leddc_off_time; + u8 ant_available_a; + u8 ant_available_bg; + u16 pa0b0; + u16 pa0b1; + u16 pa0b2; + u16 pa1b0; + u16 pa1b1; + u16 pa1b2; + u16 pa1lob0; + u16 pa1lob1; + u16 pa1lob2; + u16 pa1hib0; + u16 pa1hib1; + u16 pa1hib2; + u8 gpio0; + u8 gpio1; + u8 gpio2; + u8 gpio3; + u8 maxpwr_bg; + u8 maxpwr_al; + u8 maxpwr_a; + u8 maxpwr_ah; + u8 itssi_a; + u8 itssi_bg; + u8 tri2g; + u8 tri5gl; + u8 tri5g; + u8 tri5gh; + u8 txpid2g[4]; + u8 txpid5gl[4]; + u8 txpid5g[4]; + u8 txpid5gh[4]; + s8 rxpo2g; + s8 rxpo5g; + u8 rssisav2g; + u8 rssismc2g; + u8 rssismf2g; + u8 bxa2g; + u8 rssisav5g; + u8 rssismc5g; + u8 rssismf5g; + u8 bxa5g; + u16 cck2gpo; + u32 ofdm2gpo; + u32 ofdm5glpo; + u32 ofdm5gpo; + u32 ofdm5ghpo; + u32 boardflags; + u32 boardflags2; + u32 boardflags3; + u16 boardflags_lo; + u16 boardflags_hi; + u16 boardflags2_lo; + u16 boardflags2_hi; + struct ssb_sprom_core_pwr_info core_pwr_info[4]; + struct { + s8 a0; + s8 a1; + s8 a2; + s8 a3; + } antenna_gain; + struct { + struct { + u8 tssipos; + u8 extpa_gain; + u8 pdet_range; + u8 tr_iso; + u8 antswlut; + } ghz2; + struct { + u8 tssipos; + u8 extpa_gain; + u8 pdet_range; + u8 tr_iso; + u8 antswlut; + } ghz5; + } fem; + u16 mcs2gpo[8]; + u16 mcs5gpo[8]; + u16 mcs5glpo[8]; + u16 mcs5ghpo[8]; + u8 opo; + u8 rxgainerr2ga[3]; + u8 rxgainerr5gla[3]; + u8 rxgainerr5gma[3]; + u8 rxgainerr5gha[3]; + u8 rxgainerr5gua[3]; + u8 noiselvl2ga[3]; + u8 noiselvl5gla[3]; + u8 noiselvl5gma[3]; + u8 noiselvl5gha[3]; + u8 noiselvl5gua[3]; + u8 regrev; + u8 txchain; + u8 rxchain; + u8 antswitch; + u16 cddpo; + u16 stbcpo; + u16 bw40po; + u16 bwduppo; + u8 tempthresh; + u8 tempoffset; + u16 rawtempsense; + u8 measpower; + u8 tempsense_slope; + u8 tempcorrx; + u8 tempsense_option; + u8 freqoffset_corr; + u8 iqcal_swp_dis; + u8 hw_iqcal_en; + u8 elna2g; + u8 elna5g; + u8 phycal_tempdelta; + u8 temps_period; + u8 temps_hysteresis; + u8 measpower1; + u8 measpower2; + u8 pcieingress_war; + u16 cckbw202gpo; + u16 cckbw20ul2gpo; + u32 legofdmbw202gpo; + u32 legofdmbw20ul2gpo; + u32 legofdmbw205glpo; + u32 legofdmbw20ul5glpo; + u32 legofdmbw205gmpo; + u32 legofdmbw20ul5gmpo; + u32 legofdmbw205ghpo; + u32 legofdmbw20ul5ghpo; + u32 mcsbw202gpo; + u32 mcsbw20ul2gpo; + u32 mcsbw402gpo; + u32 mcsbw205glpo; + u32 mcsbw20ul5glpo; + u32 mcsbw405glpo; + u32 mcsbw205gmpo; + u32 mcsbw20ul5gmpo; + u32 mcsbw405gmpo; + u32 mcsbw205ghpo; + u32 mcsbw20ul5ghpo; + u32 mcsbw405ghpo; + u16 mcs32po; + u16 legofdm40duppo; + u8 sar2g; + u8 sar5g; }; -struct dwc3_event_buffer; +struct bcma_host_ops; -struct dwc3 { - struct work_struct drd_work; - struct dwc3_trb *ep0_trb; - void *bounce; - u8 *setup_buf; - dma_addr_t ep0_trb_addr; - dma_addr_t bounce_addr; - struct dwc3_request ep0_usb_req; - struct completion ep0_in_setup; - spinlock_t lock; - struct mutex mutex; +struct bcma_bus { struct device *dev; - struct device *sysdev; - struct platform_device *xhci; - struct resource xhci_resources[2]; - struct dwc3_event_buffer *ev_buf; - struct dwc3_ep *eps[32]; - struct usb_gadget *gadget; - struct usb_gadget_driver *gadget_driver; - struct clk *bus_clk; - struct clk *ref_clk; - struct clk *susp_clk; - struct reset_control *reset; - struct usb_phy *usb2_phy; - struct usb_phy *usb3_phy; - struct phy *usb2_generic_phy; - struct phy *usb3_generic_phy; - bool phys_ready; - struct ulpi *ulpi; - bool ulpi_ready; - void *regs; - size_t regs_size; - enum usb_dr_mode dr_mode; - u32 current_dr_role; - u32 desired_dr_role; - struct extcon_dev *edev; - struct notifier_block edev_nb; - enum usb_phy_interface hsphy_mode; - struct usb_role_switch *role_sw; - enum usb_dr_mode role_switch_default_mode; - struct power_supply *usb_psy; - u32 fladj; - u32 ref_clk_per; - u32 irq_gadget; - u32 otg_irq; - u32 current_otg_role; - u32 desired_otg_role; - bool otg_restart_host; - u32 u1u2; - u32 maximum_speed; - u32 gadget_max_speed; - enum usb_ssp_rate max_ssp_rate; - enum usb_ssp_rate gadget_ssp_rate; - u32 ip; - u32 revision; - u32 version_type; - enum dwc3_ep0_next ep0_next_event; - enum dwc3_ep0_state ep0state; - enum dwc3_link_state link_state; - u16 u2sel; - u16 u2pel; - u8 u1sel; - u8 u1pel; - u8 speed; - u8 num_eps; - struct dwc3_hwparams hwparams; - struct debugfs_regset32 *regset; - u32 dbg_lsp_select; - u8 test_mode; - u8 test_mode_nr; - u8 lpm_nyet_threshold; - u8 hird_threshold; - u8 rx_thr_num_pkt_prd; - u8 rx_max_burst_prd; - u8 tx_thr_num_pkt_prd; - u8 tx_max_burst_prd; - u8 tx_fifo_resize_max_num; - u8 clear_stall_protocol; - const char *hsphy_interface; - unsigned int connected: 1; - unsigned int softconnect: 1; - unsigned int delayed_status: 1; - unsigned int ep0_bounced: 1; - unsigned int ep0_expect_in: 1; - unsigned int sysdev_is_parent: 1; - unsigned int has_lpm_erratum: 1; - unsigned int is_utmi_l1_suspend: 1; - unsigned int is_fpga: 1; - unsigned int pending_events: 1; - unsigned int do_fifo_resize: 1; - unsigned int pullups_connected: 1; - unsigned int setup_packet_pending: 1; - unsigned int three_stage_setup: 1; - unsigned int dis_start_transfer_quirk: 1; - unsigned int usb3_lpm_capable: 1; - unsigned int usb2_lpm_disable: 1; - unsigned int usb2_gadget_lpm_disable: 1; - unsigned int disable_scramble_quirk: 1; - unsigned int u2exit_lfps_quirk: 1; - unsigned int u2ss_inp3_quirk: 1; - unsigned int req_p1p2p3_quirk: 1; - unsigned int del_p1p2p3_quirk: 1; - unsigned int del_phy_power_chg_quirk: 1; - unsigned int lfps_filter_quirk: 1; - unsigned int rx_detect_poll_quirk: 1; - unsigned int dis_u3_susphy_quirk: 1; - unsigned int dis_u2_susphy_quirk: 1; - unsigned int dis_enblslpm_quirk: 1; - unsigned int dis_u1_entry_quirk: 1; - unsigned int dis_u2_entry_quirk: 1; - unsigned int dis_rxdet_inp3_quirk: 1; - unsigned int dis_u2_freeclk_exists_quirk: 1; - unsigned int dis_del_phy_power_chg_quirk: 1; - unsigned int dis_tx_ipgap_linecheck_quirk: 1; - unsigned int resume_hs_terminations: 1; - unsigned int ulpi_ext_vbus_drv: 1; - unsigned int parkmode_disable_ss_quirk: 1; - unsigned int parkmode_disable_hs_quirk: 1; - unsigned int gfladj_refclk_lpm_sel: 1; - unsigned int tx_de_emphasis_quirk: 1; - unsigned int tx_de_emphasis: 2; - unsigned int dis_metastability_quirk: 1; - unsigned int dis_split_quirk: 1; - unsigned int async_callbacks: 1; - unsigned int wakeup_configured: 1; - unsigned int suspended: 1; - u16 imod_interval; - int max_cfg_eps; - int last_fifo_depth; - int num_ep_resized; - struct dentry *debug_root; -}; - -struct dwc3_trb { - u32 bpl; - u32 bph; - u32 size; - u32 ctrl; + void *mmio; + const struct bcma_host_ops *ops; + enum bcma_hosttype hosttype; + bool host_is_pcie2; + struct pci_dev *host_pci; + struct bcma_chipinfo chipinfo; + struct bcma_boardinfo boardinfo; + struct bcma_device *mapped_core; + struct list_head cores; + u8 nr_cores; + u8 num; + struct bcma_drv_cc drv_cc; + struct bcma_drv_cc_b drv_cc_b; + struct bcma_drv_pci drv_pci[2]; + struct bcma_drv_pcie2 drv_pcie2; + struct bcma_drv_mips drv_mips; + struct bcma_drv_gmac_cmn drv_gmac_cmn; + struct ssb_sprom sprom; }; -struct dwc3_ep { - struct usb_ep endpoint; - struct list_head cancelled_list; - struct list_head pending_list; - struct list_head started_list; - void *regs; - struct dwc3_trb *trb_pool; - dma_addr_t trb_pool_dma; - struct dwc3 *dwc; - u32 saved_state; - unsigned int flags; - u8 trb_enqueue; - u8 trb_dequeue; - u8 number; - u8 type; - u8 resource_index; - u32 frame_number; - u32 interval; - char name[20]; - unsigned int direction: 1; - unsigned int stream_capable: 1; - u8 combo_num; - int start_cmd_status; +struct bcma_host_ops { + u8 (*read8)(struct bcma_device *, u16); + u16 (*read16)(struct bcma_device *, u16); + u32 (*read32)(struct bcma_device *, u16); + void (*write8)(struct bcma_device *, u16, u8); + void (*write16)(struct bcma_device *, u16, u16); + void (*write32)(struct bcma_device *, u16, u32); + u32 (*aread32)(struct bcma_device *, u16); + void (*awrite32)(struct bcma_device *, u16, u32); }; -struct dwc3_event_buffer { - void *buf; - void *cache; - unsigned int length; - unsigned int lpos; - unsigned int count; - unsigned int flags; - dma_addr_t dma; - struct dwc3 *dwc; +struct bgmac_dma_desc { + __le32 ctl0; + __le32 ctl1; + __le32 addr_low; + __le32 addr_high; }; -struct ignore_entry { - u16 vid; - u16 pid; - u16 bcdmin; - u16 bcdmax; +struct bgmac_rx_header { + __le16 len; + __le16 flags; + __le16 pad[12]; }; -typedef void (*btf_trace_ci_log)(void *, struct ci_hdrc *, struct va_format *); - -struct ci_hw_td { - __le32 next; - __le32 token; - __le32 page[5]; +enum ptp_clock_events { + PTP_CLOCK_ALARM = 0, + PTP_CLOCK_EXTTS = 1, + PTP_CLOCK_PPS = 2, + PTP_CLOCK_PPSUSR = 3, }; -struct ci_hw_qh { - __le32 cap; - __le32 curr; - struct ci_hw_td td; - __le32 RESERVED; - struct usb_ctrlrequest setup; -}; +struct ctrl_regs; -struct td_node { - struct list_head td; - dma_addr_t dma; - struct ci_hw_td *ptr; - int td_remaining_size; -}; +struct alarm_regs; -struct ci_hw_req; +struct fiper_regs; -typedef void (*btf_trace_ci_prepare_td)(void *, struct ci_hw_ep *, struct ci_hw_req *, struct td_node *); +struct etts_regs; -struct ci_hw_req { - struct usb_request req; - struct list_head queue; - struct list_head tds; +struct ptp_qoriq_registers { + struct ctrl_regs *ctrl_regs; + struct alarm_regs *alarm_regs; + struct fiper_regs *fiper_regs; + struct etts_regs *etts_regs; }; -typedef void (*btf_trace_ci_complete_td)(void *, struct ci_hw_ep *, struct ci_hw_req *, struct td_node *); - -struct trace_event_raw_ci_log { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_msg; - char __data[0]; +struct ptp_qoriq { + void *base; + struct ptp_qoriq_registers regs; + spinlock_t lock; + struct ptp_clock *clock; + struct ptp_clock_info caps; + struct resource *rsrc; + struct dentry *debugfs_root; + struct device *dev; + bool extts_fifo_support; + bool fiper3_support; + bool etsec; + int irq; + int phc_index; + u32 tclk_period; + u32 tmr_prsc; + u32 tmr_add; + u32 cksel; + u32 tmr_fiper1; + u32 tmr_fiper2; + u32 tmr_fiper3; + u32 (*read)(unsigned int *); + void (*write)(unsigned int *, u32); }; -struct trace_event_raw_ci_log_trb { - struct trace_entry ent; - u32 __data_loc_name; - struct td_node *td; - struct usb_request *req; - dma_addr_t dma; - s32 td_remaining_size; - u32 next; - u32 token; - u32 type; - char __data[0]; +struct ctrl_regs { + u32 tmr_ctrl; + u32 tmr_tevent; + u32 tmr_temask; + u32 tmr_pevent; + u32 tmr_pemask; + u32 tmr_stat; + u32 tmr_cnt_h; + u32 tmr_cnt_l; + u32 tmr_add; + u32 tmr_acc; + u32 tmr_prsc; + u8 res1[4]; + u32 tmroff_h; + u32 tmroff_l; }; -struct trace_event_data_offsets_ci_log { - u32 name; - u32 msg; +struct alarm_regs { + u32 tmr_alarm1_h; + u32 tmr_alarm1_l; + u32 tmr_alarm2_h; + u32 tmr_alarm2_l; }; -struct trace_event_data_offsets_ci_log_trb { - u32 name; +struct fiper_regs { + u32 tmr_fiper1; + u32 tmr_fiper2; + u32 tmr_fiper3; }; -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); +struct etts_regs { + u32 tmr_etts1_h; + u32 tmr_etts1_l; + u32 tmr_etts2_h; + u32 tmr_etts2_l; +}; -typedef void (*btf_trace_rtc_irq_set_freq)(void *, int, int); +struct pps_event_time { + struct timespec64 ts_real; +}; -typedef void (*btf_trace_rtc_irq_set_state)(void *, int, int); +struct ptp_clock_event { + int type; + int index; + union { + u64 timestamp; + struct pps_event_time pps_times; + }; +}; -typedef void (*btf_trace_rtc_alarm_irq_enable)(void *, unsigned int, int); +enum mdio_c22_op_seq { + MDIO_C22_WRITE = 1, + MDIO_C22_READ = 2, +}; -typedef void (*btf_trace_rtc_set_offset)(void *, long, int); +enum mdio_st_clause { + MDIO_ST_CLAUSE_45 = 0, + MDIO_ST_CLAUSE_22 = 1, +}; -typedef void (*btf_trace_rtc_read_offset)(void *, long, int); +enum mdio_c45_op_seq { + MDIO_C45_WRITE_ADDR = 0, + MDIO_C45_WRITE_DATA = 1, + MDIO_C45_READ_INCREMENT = 2, + MDIO_C45_READ = 3, +}; -typedef void (*btf_trace_rtc_timer_enqueue)(void *, struct rtc_timer *); +struct hns_mdio_sc_reg { + u16 mdio_clk_en; + u16 mdio_clk_dis; + u16 mdio_reset_req; + u16 mdio_reset_dreq; + u16 mdio_clk_st; + u16 mdio_reset_st; +}; -typedef void (*btf_trace_rtc_timer_dequeue)(void *, struct rtc_timer *); +struct hns_mdio_device { + u8 *vbase; + struct regmap *subctrl_vbase; + struct hns_mdio_sc_reg sc_reg; +}; -typedef void (*btf_trace_rtc_timer_fired)(void *, struct rtc_timer *); +enum e1000_state_t { + __E1000_TESTING = 0, + __E1000_RESETTING = 1, + __E1000_DOWN = 2, + __E1000_DISABLED = 3, +}; enum { - none = 0, - day = 1, - month = 2, - year = 3, + e1000_10_half = 0, + e1000_10_full = 1, + e1000_100_half = 2, + e1000_100_full = 3, }; -struct trace_event_raw_rtc_time_alarm_class { - struct trace_entry ent; - time64_t secs; - int err; - char __data[0]; +enum latency_range { + lowest_latency = 0, + low_latency = 1, + bulk_latency = 2, + latency_invalid = 255, }; -struct trace_event_raw_rtc_irq_set_freq { - struct trace_entry ent; - int freq; - int err; - char __data[0]; +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_rtc_irq_set_state { - struct trace_entry ent; - int enabled; - int err; - char __data[0]; +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 trace_event_raw_rtc_alarm_irq_enable { - struct trace_entry ent; - unsigned int enabled; - int err; - char __data[0]; +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 trace_event_raw_rtc_offset_class { - struct trace_entry ent; - long offset; - int err; - char __data[0]; +struct e1000_rx_desc { + __le64 buffer_addr; + __le16 length; + __le16 csum; + u8 status; + u8 errors; + __le16 special; }; -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 mii_ioctl_data { + __u16 phy_id; + __u16 reg_num; + __u16 val_in; + __u16 val_out; }; -struct trace_event_data_offsets_rtc_time_alarm_class {}; - -struct trace_event_data_offsets_rtc_irq_set_freq {}; +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; -struct trace_event_data_offsets_rtc_irq_set_state {}; +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; -struct trace_event_data_offsets_rtc_alarm_irq_enable {}; +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; -struct trace_event_data_offsets_rtc_offset_class {}; +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; -struct trace_event_data_offsets_rtc_timer_class {}; +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; -enum rcar_i2c_type { - I2C_RCAR_GEN1 = 0, - I2C_RCAR_GEN2 = 1, - I2C_RCAR_GEN3 = 2, -}; +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; -struct rcar_i2c_priv { - u32 flags; - void *io; - struct i2c_adapter adap; - struct i2c_msg *msg; - int msgs_left; - struct clk *clk; - wait_queue_head_t wait; - int pos; - u32 icccr; - u8 recovery_icmcr; - enum rcar_i2c_type devtype; - struct i2c_client *slave; - struct resource *res; - struct dma_chan *dma_tx; - struct dma_chan *dma_rx; - struct scatterlist sg; - enum dma_data_direction dma_direction; - struct reset_control *rstc; - int irq; - struct i2c_client *host_notify_client; -}; +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; -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; - bool upper_no_limit; -}; +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 rwdt_priv { - void *base; - struct watchdog_device wdev; - unsigned long clk_rate; - u8 cks; - struct clk *clk; +struct e1000_eeprom_info { + e1000_eeprom_type type; + u16 word_size; + u16 opcode_bits; + u16 address_bits; + u16 delay_usec; + u16 page_size; }; -struct scpi_dvfs_info; +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; -struct scpi_sensor_info; +typedef enum { + e1000_ffe_config_enabled = 0, + e1000_ffe_config_active = 1, + e1000_ffe_config_blocked = 2, +} e1000_ffe_config; -struct scpi_ops { - u32 (*get_version)(); - int (*clk_get_range)(u16, unsigned long *, unsigned long *); - unsigned long (*clk_get_val)(u16); - int (*clk_set_val)(u16, unsigned long); - int (*dvfs_get_idx)(u8); - int (*dvfs_set_idx)(u8, u8); - struct scpi_dvfs_info * (*dvfs_get_info)(u8); - int (*device_domain_id)(struct device *); - int (*get_transition_latency)(struct device *); - int (*add_opps_to_device)(struct device *); - int (*sensor_get_capability)(u16 *); - int (*sensor_get_info)(u16, struct scpi_sensor_info *); - int (*sensor_get_value)(u16, u64 *); - int (*device_get_power_state)(u16); - int (*device_set_power_state)(u16, u8); -}; - -struct scpi_opp; +typedef enum { + e1000_smart_speed_default___2 = 0, + e1000_smart_speed_on___2 = 1, + e1000_smart_speed_off___2 = 2, +} e1000_smart_speed; -struct scpi_dvfs_info { - unsigned int count; - unsigned int latency; - struct scpi_opp *opps; -}; +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 scpi_opp { - u32 freq; - u32 m_volt; -}; +struct e1000_shadow_ram___2; -struct scpi_sensor_info { - u16 sensor_id; - u8 class; - u8 trigger_type; - char name[20]; +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 scpi_data { - struct clk *clk; - struct device *cpu_dev; +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; }; -struct mmc_pwrseq_emmc { - struct mmc_pwrseq pwrseq; - struct notifier_block reset_nb; - struct gpio_desc *reset_gpio; -}; +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; -enum dwcmshc_rk_type { - DWCMSHC_RK3568 = 0, - DWCMSHC_RK3588 = 1, -}; +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; -struct dwcmshc_priv { - struct clk *bus_clk; - int vendor_specific_area1; - void *priv; -}; +typedef enum { + e1000_rev_polarity_normal___2 = 0, + e1000_rev_polarity_reversed___2 = 1, + e1000_rev_polarity_undefined___2 = 255, +} e1000_rev_polarity; -struct rk35xx_priv { - struct clk_bulk_data rockchip_clks[3]; - struct reset_control *reset; - enum dwcmshc_rk_type devtype; - u8 txclk_tapnum; -}; +typedef enum { + e1000_downshift_normal = 0, + e1000_downshift_activated = 1, + e1000_downshift_undefined = 255, +} e1000_downshift; -struct dmi_memdev_info { - const char *device; - const char *bank; - u64 size; - u16 handle; - u8 type; -}; +typedef enum { + e1000_polarity_reversal_enabled = 0, + e1000_polarity_reversal_disabled = 1, + e1000_polarity_reversal_undefined = 255, +} e1000_polarity_reversal; -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, -}; +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; -struct dmi_device { - struct list_head list; - int type; - const char *name; - void *device_data; -}; +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 dmi_dev_onboard { - struct dmi_device dev; - int instance; - int segment; - int bus; - int devfn; +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 efivar_operations; +struct e1000_tx_buffer; -struct efivars { - struct kset *kset; - const struct efivar_operations *ops; +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; }; -typedef efi_status_t efi_query_variable_store_t(u32, unsigned long, bool); +struct e1000_rx_buffer; -struct efivar_operations { - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_set_variable_t *set_variable_nonblocking; - efi_query_variable_store_t *query_variable_store; - efi_query_variable_info_t *query_variable_info; +struct 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; }; -typedef u16 ucs2_char_t; - -enum sh_cmt_model { - SH_CMT_16BIT = 0, - SH_CMT_32BIT = 1, - SH_CMT_48BIT = 2, - SH_CMT0_RCAR_GEN2 = 3, - SH_CMT1_RCAR_GEN2 = 4, +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 sh_cmt_info { - enum sh_cmt_model model; - unsigned int channels_mask; - unsigned long width; - u32 overflow_bit; - u32 clear_bits; - u32 (*read_control)(void *, unsigned long); - void (*write_control)(void *, unsigned long, u32); - u32 (*read_count)(void *, unsigned long); - void (*write_count)(void *, unsigned long, u32); +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 sh_cmt_device; - -struct sh_cmt_channel { - struct sh_cmt_device *cmt; - unsigned int index; - unsigned int hwidx; - void *iostart; - void *ioctrl; - unsigned int timer_bit; - unsigned long flags; - u32 match_value; - u32 next_match_value; - u32 max_match_value; - raw_spinlock_t lock; - struct clock_event_device ced; - struct clocksource cs; - u64 total_cycles; - bool cs_enabled; - long: 64; - long: 64; - long: 64; +struct e1000_rx_buffer { + union { + struct page *page; + u8 *data; + } rxbuf; + dma_addr_t dma; }; -struct sh_cmt_device { - struct platform_device *pdev; - const struct sh_cmt_info *info; - void *mapbase; - struct clk *clk; - unsigned long rate; - unsigned int reg_delay; - raw_spinlock_t lock; - struct sh_cmt_channel *channels; - unsigned int num_channels; - unsigned int hw_channels; - bool has_clockevent; - bool has_clocksource; +struct e1000_shadow_ram___2 { + u16 eeprom_word; + bool modified; }; -struct sh_timer_config { - unsigned int channels_mask; +struct my_u { + __le64 a; + __le64 b; }; -struct alias_prop { - struct list_head link; - const char *alias; - struct device_node *np; - int id; - char stem[0]; +struct vfio { + struct class *class; + struct list_head group_list; + struct mutex group_lock; + struct ida group_ida; + dev_t group_devt; }; -enum lightbar_command { - LIGHTBAR_CMD_DUMP = 0, - LIGHTBAR_CMD_OFF = 1, - LIGHTBAR_CMD_ON = 2, - LIGHTBAR_CMD_INIT = 3, - LIGHTBAR_CMD_SET_BRIGHTNESS = 4, - LIGHTBAR_CMD_SEQ = 5, - LIGHTBAR_CMD_REG = 6, - LIGHTBAR_CMD_SET_RGB = 7, - LIGHTBAR_CMD_GET_SEQ = 8, - LIGHTBAR_CMD_DEMO = 9, - LIGHTBAR_CMD_GET_PARAMS_V0 = 10, - LIGHTBAR_CMD_SET_PARAMS_V0 = 11, - LIGHTBAR_CMD_VERSION = 12, - LIGHTBAR_CMD_GET_BRIGHTNESS = 13, - LIGHTBAR_CMD_GET_RGB = 14, - LIGHTBAR_CMD_GET_DEMO = 15, - LIGHTBAR_CMD_GET_PARAMS_V1 = 16, - LIGHTBAR_CMD_SET_PARAMS_V1 = 17, - LIGHTBAR_CMD_SET_PROGRAM = 18, - LIGHTBAR_CMD_MANUAL_SUSPEND_CTRL = 19, - LIGHTBAR_CMD_SUSPEND = 20, - LIGHTBAR_CMD_RESUME = 21, - LIGHTBAR_CMD_GET_PARAMS_V2_TIMING = 22, - LIGHTBAR_CMD_SET_PARAMS_V2_TIMING = 23, - LIGHTBAR_CMD_GET_PARAMS_V2_TAP = 24, - LIGHTBAR_CMD_SET_PARAMS_V2_TAP = 25, - LIGHTBAR_CMD_GET_PARAMS_V2_OSCILLATION = 26, - LIGHTBAR_CMD_SET_PARAMS_V2_OSCILLATION = 27, - LIGHTBAR_CMD_GET_PARAMS_V2_BRIGHTNESS = 28, - LIGHTBAR_CMD_SET_PARAMS_V2_BRIGHTNESS = 29, - LIGHTBAR_CMD_GET_PARAMS_V2_THRESHOLDS = 30, - LIGHTBAR_CMD_SET_PARAMS_V2_THRESHOLDS = 31, - LIGHTBAR_CMD_GET_PARAMS_V2_COLORS = 32, - LIGHTBAR_CMD_SET_PARAMS_V2_COLORS = 33, - LIGHTBAR_NUM_CMDS = 34, +enum vfio_group_type { + VFIO_IOMMU = 0, + VFIO_EMULATED_IOMMU = 1, + VFIO_NO_IOMMU = 2, }; -enum ec_status { - EC_RES_SUCCESS = 0, - EC_RES_INVALID_COMMAND = 1, - EC_RES_ERROR = 2, - EC_RES_INVALID_PARAM = 3, - EC_RES_ACCESS_DENIED = 4, - EC_RES_INVALID_RESPONSE = 5, - EC_RES_INVALID_VERSION = 6, - EC_RES_INVALID_CHECKSUM = 7, - EC_RES_IN_PROGRESS = 8, - EC_RES_UNAVAILABLE = 9, - EC_RES_TIMEOUT = 10, - EC_RES_OVERFLOW = 11, - EC_RES_INVALID_HEADER = 12, - EC_RES_REQUEST_TRUNCATED = 13, - EC_RES_RESPONSE_TOO_BIG = 14, - EC_RES_BUS_ERROR = 15, - EC_RES_BUSY = 16, - EC_RES_INVALID_HEADER_VERSION = 17, - EC_RES_INVALID_HEADER_CRC = 18, - EC_RES_INVALID_DATA_CRC = 19, - EC_RES_DUP_UNAVAILABLE = 20, +enum { + vfio_noiommu = 0, }; -struct rgb_s { - uint8_t r; - uint8_t g; - uint8_t b; +enum xa_lock_type { + XA_LOCK_IRQ = 1, + XA_LOCK_BH = 2, }; -struct lightbar_params_v0 { - int32_t google_ramp_up; - int32_t google_ramp_down; - int32_t s3s0_ramp_up; - int32_t s0_tick_delay[2]; - int32_t s0a_tick_delay[2]; - int32_t s0s3_ramp_down; - int32_t s3_sleep_for; - int32_t s3_ramp_up; - int32_t s3_ramp_down; - uint8_t new_s0; - uint8_t osc_min[2]; - uint8_t osc_max[2]; - uint8_t w_ofs[2]; - uint8_t bright_bl_off_fixed[2]; - uint8_t bright_bl_on_min[2]; - uint8_t bright_bl_on_max[2]; - uint8_t battery_threshold[3]; - uint8_t s0_idx[8]; - uint8_t s3_idx[8]; - struct rgb_s color[8]; -}; +struct vfio_container; -struct lightbar_params_v1 { - int32_t google_ramp_up; - int32_t google_ramp_down; - int32_t s3s0_ramp_up; - int32_t s0_tick_delay[2]; - int32_t s0a_tick_delay[2]; - int32_t s0s3_ramp_down; - int32_t s3_sleep_for; - int32_t s3_ramp_up; - int32_t s3_ramp_down; - int32_t s5_ramp_up; - int32_t s5_ramp_down; - int32_t tap_tick_delay; - int32_t tap_gate_delay; - int32_t tap_display_time; - uint8_t tap_pct_red; - uint8_t tap_pct_green; - uint8_t tap_seg_min_on; - uint8_t tap_seg_max_on; - uint8_t tap_seg_osc; - uint8_t tap_idx[3]; - uint8_t osc_min[2]; - uint8_t osc_max[2]; - uint8_t w_ofs[2]; - uint8_t bright_bl_off_fixed[2]; - uint8_t bright_bl_on_min[2]; - uint8_t bright_bl_on_max[2]; - uint8_t battery_threshold[3]; - uint8_t s0_idx[8]; - uint8_t s3_idx[8]; - uint8_t s5_idx; - struct rgb_s color[8]; +struct vfio_group { + struct device dev; + struct cdev cdev; + refcount_t drivers; + unsigned int container_users; + struct iommu_group *iommu_group; + struct vfio_container *container; + struct list_head device_list; + struct mutex device_lock; + struct list_head vfio_next; + struct list_head container_next; + enum vfio_group_type type; + struct mutex group_lock; + struct kvm___2 *kvm; + struct file *opened_file; + struct blocking_notifier_head notifier; + struct iommufd_ctx *iommufd; + spinlock_t kvm_ref_lock; + unsigned int cdev_device_open_cnt; }; -struct lightbar_params_v2_timing { - int32_t google_ramp_up; - int32_t google_ramp_down; - int32_t s3s0_ramp_up; - int32_t s0_tick_delay[2]; - int32_t s0a_tick_delay[2]; - int32_t s0s3_ramp_down; - int32_t s3_sleep_for; - int32_t s3_ramp_up; - int32_t s3_ramp_down; - int32_t s5_ramp_up; - int32_t s5_ramp_down; - int32_t tap_tick_delay; - int32_t tap_gate_delay; - int32_t tap_display_time; +struct vfio_device_file { + struct vfio_device *device; + struct vfio_group *group; + u8 access_granted; + u32 devid; + spinlock_t kvm_ref_lock; + struct kvm___2 *kvm; + struct iommufd_ctx *iommufd; }; -struct lightbar_params_v2_tap { - uint8_t tap_pct_red; - uint8_t tap_pct_green; - uint8_t tap_seg_min_on; - uint8_t tap_seg_max_on; - uint8_t tap_seg_osc; - uint8_t tap_idx[3]; +struct vfio_group_status { + __u32 argsz; + __u32 flags; }; -struct lightbar_params_v2_oscillation { - uint8_t osc_min[2]; - uint8_t osc_max[2]; - uint8_t w_ofs[2]; -}; +struct ulpi_device_id; -struct lightbar_params_v2_brightness { - uint8_t bright_bl_off_fixed[2]; - uint8_t bright_bl_on_min[2]; - uint8_t bright_bl_on_max[2]; +struct ulpi_driver { + const struct ulpi_device_id *id_table; + int (*probe)(struct ulpi *); + void (*remove)(struct ulpi *); + struct device_driver driver; }; -struct lightbar_params_v2_thresholds { - uint8_t battery_threshold[3]; +struct ulpi_device_id { + __u16 vendor; + __u16 product; + kernel_ulong_t driver_data; }; -struct lightbar_params_v2_colors { - uint8_t s0_idx[8]; - uint8_t s3_idx[8]; - uint8_t s5_idx; - struct rgb_s color[8]; +struct ulpi { + struct device dev; + struct ulpi_device_id id; + const struct ulpi_ops *ops; }; -struct lightbar_program { - uint8_t size; - uint8_t data[192]; +struct onboard_hub_pdata { + unsigned long reset_us; + unsigned int num_supplies; }; -struct ec_params_lightbar { - uint8_t cmd; - union { - struct { - uint8_t num; - } set_brightness; - struct { - uint8_t num; - } seq; - struct { - uint8_t num; - } demo; - struct { - uint8_t ctrl; - uint8_t reg; - uint8_t value; - } reg; - struct { - uint8_t led; - uint8_t red; - uint8_t green; - uint8_t blue; - } set_rgb; - struct { - uint8_t led; - } get_rgb; - struct { - uint8_t enable; - } manual_suspend_ctrl; - struct lightbar_params_v0 set_params_v0; - struct lightbar_params_v1 set_params_v1; - struct lightbar_params_v2_timing set_v2par_timing; - struct lightbar_params_v2_tap set_v2par_tap; - struct lightbar_params_v2_oscillation set_v2par_osc; - struct lightbar_params_v2_brightness set_v2par_bright; - struct lightbar_params_v2_thresholds set_v2par_thlds; - struct lightbar_params_v2_colors set_v2par_colors; - struct lightbar_program set_program; - }; +struct pdev_list_entry { + struct platform_device *pdev; + struct list_head node; }; -struct ec_response_lightbar { - union { - struct { - struct { - uint8_t reg; - uint8_t ic0; - uint8_t ic1; - } vals[23]; - } dump; - struct { - uint8_t num; - } get_seq; - struct { - uint8_t num; - } get_brightness; - struct { - uint8_t num; - } get_demo; - struct lightbar_params_v0 get_params_v0; - struct lightbar_params_v1 get_params_v1; - struct lightbar_params_v2_timing get_params_v2_timing; - struct lightbar_params_v2_tap get_params_v2_tap; - struct lightbar_params_v2_oscillation get_params_v2_osc; - struct lightbar_params_v2_brightness get_params_v2_bright; - struct lightbar_params_v2_thresholds get_params_v2_thlds; - struct lightbar_params_v2_colors get_params_v2_colors; - struct { - uint32_t num; - uint32_t flags; - } version; - struct { - uint8_t red; - uint8_t green; - uint8_t blue; - } get_rgb; - }; +struct dwc3_xlnx { + int num_clocks; + struct clk_bulk_data *clks; + struct device *dev; + void *regs; + int (*pltfm_init)(struct dwc3_xlnx *); + struct phy *usb3_phy; }; -struct cros_ec_platform { - const char *ec_name; - u16 cmd_offset; +enum mtu3_g_ep0_state { + MU3D_EP0_STATE_SETUP = 1, + MU3D_EP0_STATE_TX = 2, + MU3D_EP0_STATE_RX = 3, + MU3D_EP0_STATE_TX_END = 4, + MU3D_EP0_STATE_STALL = 5, }; -struct qcom_glink_pipe { - size_t length; - size_t (*avail)(struct qcom_glink_pipe *); - void (*peek)(struct qcom_glink_pipe *, void *, unsigned int, size_t); - void (*advance)(struct qcom_glink_pipe *, size_t); - void (*write)(struct qcom_glink_pipe *, const void *, size_t, const void *, size_t); - void (*kick)(struct qcom_glink_pipe *); +enum mtu3_speed { + MTU3_SPEED_INACTIVE = 0, + MTU3_SPEED_FULL = 1, + MTU3_SPEED_HIGH = 3, + MTU3_SPEED_SUPER = 4, + MTU3_SPEED_SUPER_PLUS = 5, }; -struct glink_rpm_pipe { - struct qcom_glink_pipe native; - void *tail; - void *head; - void *fifo; +struct mtu3_fifo_info { + u32 base; + u32 limit; + unsigned long bitmap[2]; }; -struct qcom_glink; +struct mtu3_ep; -struct glink_rpm { - struct qcom_glink *glink; - int irq; - struct mbox_client mbox_client; - struct mbox_chan *mbox_chan; - struct glink_rpm_pipe rx_pipe; - struct glink_rpm_pipe tx_pipe; -}; +struct mtu3; -struct rpm_toc_entry { - __le32 id; - __le32 offset; - __le32 size; -}; +struct qmu_gpd; -struct rpm_toc { - __le32 magic; - __le32 count; - struct rpm_toc_entry entries[0]; +struct mtu3_request { + struct usb_request request; + struct list_head list; + struct mtu3_ep *mep; + struct mtu3 *mtu; + struct qmu_gpd *gpd; + int epnum; }; -enum snd_soc_dpcm_link_state { - SND_SOC_DPCM_LINK_STATE_NEW = 0, - SND_SOC_DPCM_LINK_STATE_FREE = 1, -}; +struct ssusb_mtk; -enum snd_soc_dapm_direction { - SND_SOC_DAPM_DIR_IN = 0, - SND_SOC_DAPM_DIR_OUT = 1, +struct mtu3 { + spinlock_t lock; + struct ssusb_mtk *ssusb; + struct device *dev; + void *mac_base; + void *ippc_base; + int irq; + struct mtu3_fifo_info tx_fifo; + struct mtu3_fifo_info rx_fifo; + struct mtu3_ep *ep_array; + struct mtu3_ep *in_eps; + struct mtu3_ep *out_eps; + struct mtu3_ep *ep0; + int num_eps; + int slot; + int active_ep; + struct dma_pool *qmu_gpd_pool; + enum mtu3_g_ep0_state ep0_state; + struct usb_gadget g; + struct usb_gadget_driver *gadget_driver; + struct mtu3_request ep0_req; + u8 setup_buf[6]; + enum usb_device_speed max_speed; + enum usb_device_speed speed; + unsigned int is_active: 1; + unsigned int may_wakeup: 1; + unsigned int is_self_powered: 1; + unsigned int test_mode: 1; + unsigned int softconnect: 1; + unsigned int u1_enable: 1; + unsigned int u2_enable: 1; + unsigned int u3_capable: 1; + unsigned int delayed_status: 1; + unsigned int gen2cp: 1; + unsigned int connected: 1; + unsigned int async_callbacks: 1; + unsigned int separate_fifo: 1; + u8 address; + u8 test_mode_nr; + u32 hw_version; }; -struct snd_soc_dpcm { - struct snd_soc_pcm_runtime *be; - struct snd_soc_pcm_runtime *fe; - enum snd_soc_dpcm_link_state state; - struct list_head list_be; - struct list_head list_fe; - struct dentry *debugfs_state; +struct otg_switch_mtk { + struct regulator *vbus; + struct extcon_dev *edev; + struct notifier_block id_nb; + struct work_struct dr_work; + enum usb_role desired_role; + enum usb_role default_role; + struct usb_role_switch *role_sw; + bool role_sw_used; + bool is_u3_drd; + bool manual_drd_enabled; }; -struct snd_soc_dapm_widget_list { - int num_widgets; - struct snd_soc_dapm_widget *widgets[0]; +struct ssusb_mtk { + struct device *dev; + struct mtu3 *u3d; + void *mac_base; + void *ippc_base; + struct phy **phys; + int num_phys; + int wakeup_irq; + struct regulator *vusb33; + struct clk_bulk_data clks[6]; + struct otg_switch_mtk otg_switch; + enum usb_dr_mode dr_mode; + bool is_host; + int u2_ports; + int u3_ports; + int u2p_dis_msk; + int u3p_dis_msk; + struct dentry *dbgfs_root; + bool uwk_en; + struct regmap *uwk; + u32 uwk_reg_base; + u32 uwk_vers; }; -struct skb_gso_cb { - union { - int mac_offset; - int data_offset; - }; - int encap_level; - __wsum csum; - __u16 csum_start; +struct mtu3_gpd_ring { + dma_addr_t dma; + struct qmu_gpd *start; + struct qmu_gpd *end; + struct qmu_gpd *enqueue; + struct qmu_gpd *dequeue; }; -struct psample_group { - struct list_head list; - struct net *net; - u32 group_num; - u32 refcount; - u32 seq; - struct callback_head rcu; +struct mtu3_ep { + struct usb_ep ep; + char name[12]; + struct mtu3 *mtu; + u8 epnum; + u8 type; + u8 is_in; + u16 maxp; + int slot; + u32 fifo_size; + u32 fifo_addr; + u32 fifo_seg_size; + struct mtu3_fifo_info *fifo; + struct list_head req_list; + struct mtu3_gpd_ring gpd_ring; + const struct usb_ss_ep_comp_descriptor *comp_desc; + const struct usb_endpoint_descriptor *desc; + int flags; }; -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; +struct qmu_gpd { + __le32 dw0_info; + __le32 next_gpd; + __le32 buffer; + __le32 dw3_info; }; -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, +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 { - 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 flow_block_command { - FLOW_BLOCK_BIND = 0, - FLOW_BLOCK_UNBIND = 1, -}; - -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, + 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 pedit_cmd { - TCA_PEDIT_KEY_EX_CMD_SET = 0, - TCA_PEDIT_KEY_EX_CMD_ADD = 1, - __PEDIT_CMD_MAX = 2, +enum xfer_buf_dir { + TO_XFER_BUF = 0, + FROM_XFER_BUF = 1, }; -enum rtnl_link_flags { - RTNL_FLAG_DOIT_UNLOCKED = 1, - RTNL_FLAG_BULK_DEL_SUPPORTED = 2, +struct bulk_cb_wrap { + __le32 Signature; + __u32 Tag; + __le32 DataTransferLength; + __u8 Flags; + __u8 Lun; + __u8 Length; + __u8 CDB[16]; }; -enum qdisc_class_ops_flags { - QDISC_CLASS_OPS_DOIT_UNLOCKED = 1, +struct bulk_cs_wrap { + __le32 Signature; + __u32 Tag; + __le32 Residue; + __u8 Status; }; -enum tcf_proto_ops_flags { - TCF_PROTO_OPS_DOIT_UNLOCKED = 1, -}; +struct us_data; -struct tcf_block_owner_item { - struct list_head list; - struct Qdisc *q; - enum flow_block_binder_type binder_type; -}; +typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data *); -struct flow_block_cb; +typedef int (*trans_reset)(struct us_data *); -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 *); -}; +typedef void (*proto_cmnd)(struct scsi_cmnd *, struct us_data *); -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 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 tcf_chain_head_change_t(struct tcf_proto *, void *); - -struct tcf_filter_chain_list_item { - struct list_head list; - tcf_chain_head_change_t *chain_head_change; - void *chain_head_change_priv; -}; +typedef void (*extra_data_destructor)(void *); -struct tc_pedit_key; +typedef void (*pm_hook)(struct us_data *, int); -struct tcf_pedit_key_ex; +struct us_unusual_dev; -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 us_data { + struct mutex dev_mutex; + struct usb_device *pusb_dev; + struct usb_interface *pusb_intf; + const struct us_unusual_dev *unusual_dev; + u64 fflags; + unsigned long dflags; + unsigned int send_bulk_pipe; + unsigned int recv_bulk_pipe; + unsigned int send_ctrl_pipe; + unsigned int recv_ctrl_pipe; + unsigned int recv_intr_pipe; + char *transport_name; + char *protocol_name; + __le32 bcs_signature; + u8 subclass; + u8 protocol; + u8 max_lun; + u8 ifnum; + u8 ep_bInterval; + trans_cmnd transport; + trans_reset transport_reset; + proto_cmnd proto_handler; + struct scsi_cmnd *srb; + unsigned int tag; + char scsi_name[32]; + struct urb *current_urb; + struct usb_ctrlrequest *cr; + struct usb_sg_request current_sg; + unsigned char *iobuf; + dma_addr_t iobuf_dma; + struct task_struct *ctl_thread; + struct completion cmnd_ready; + struct completion notify; + wait_queue_head_t delay_wait; + struct delayed_work scan_dwork; + void *extra; + extra_data_destructor extra_destructor; + pm_hook suspend_resume_hook; + int use_last_sector_hacks; + int last_sector_retries; }; -struct tc_pedit_key { - __u32 mask; - __u32 val; - __u32 off; - __u32 at; - __u32 offmask; - __u32 shift; +struct us_unusual_dev { + const char *vendorName; + const char *productName; + __u8 useProtocol; + __u8 useTransport; + int (*initFunction)(struct us_data *); }; -struct tcf_pedit_key_ex { - enum pedit_header_type htype; - enum pedit_cmd cmd; -}; +struct opal_dev; -struct tcf_pedit { - struct tc_action common; - struct tcf_pedit_parms __attribute__((btf_type_tag("rcu"))) *parms; - long: 64; +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; + bool suspended; + unsigned int ATO: 1; + unsigned int cache_override: 1; + unsigned int WCE: 1; + unsigned int RCD: 1; + unsigned int DPOFUA: 1; + unsigned int first_scan: 1; + unsigned int lbpme: 1; + unsigned int lbprz: 1; + unsigned int lbpu: 1; + unsigned int lbpws: 1; + unsigned int lbpws10: 1; + unsigned int lbpvpd: 1; + unsigned int ws10: 1; + unsigned int ws16: 1; + unsigned int rc_basis: 2; + unsigned int zoned: 2; + unsigned int urswrz: 1; + unsigned int security: 1; + unsigned int ignore_medium_access_errors: 1; }; -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 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 tcf_net { - spinlock_t idr_lock; - struct idr idr; +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 ip_tunnel_key { - __be64 tun_id; +struct ff_effect_compat { + __u16 type; + __s16 id; + __u16 direction; + struct ff_trigger trigger; + struct ff_replay replay; union { - struct { - __be32 src; - __be32 dst; - } ipv4; - struct { - struct in6_addr src; - struct in6_addr dst; - } ipv6; + 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; - __be16 tun_flags; - u8 tos; - u8 ttl; - __be32 label; - __be16 tp_src; - __be16 tp_dst; - __u8 flow_flags; -}; - -struct ip_tunnel_encap { - u16 type; - u16 flags; - __be16 sport; - __be16 dport; }; -struct dst_cache_pcpu; - -struct dst_cache { - struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache; - unsigned long reset_ts; +struct input_event_compat { + compat_ulong_t sec; + compat_ulong_t usec; + __u16 type; + __u16 code; + __s32 value; }; -struct ip_tunnel_info { - struct ip_tunnel_key key; - struct ip_tunnel_encap encap; - struct dst_cache dst_cache; - u8 options_len; - u8 mode; +struct input_event { + __kernel_ulong_t __sec; + __kernel_ulong_t __usec; + __u16 type; + __u16 code; + __s32 value; }; -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; - }; +enum ps2_disposition { + PS2_PROCESS = 0, + PS2_IGNORE = 1, + PS2_ERROR = 2, }; -struct action_gate_entry { - u8 gate_state; - u32 interval; - s32 ipv; - s32 maxoctets; +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, }; -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; +enum psmouse_state { + PSMOUSE_IGNORE = 0, + PSMOUSE_INITIALIZING = 1, + PSMOUSE_RESYNCING = 2, + PSMOUSE_CMD_MODE = 3, + PSMOUSE_ACTIVATED = 4, }; -struct tcf_chain_info { - struct tcf_proto __attribute__((btf_type_tag("rcu"))) **pprev; - struct tcf_proto __attribute__((btf_type_tag("rcu"))) *next; +enum psmouse_scale { + PSMOUSE_SCALE11 = 0, + PSMOUSE_SCALE21 = 1, }; -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 ps2dev; -struct tcf_qevent { - struct tcf_block *block; - struct tcf_block_ext_info info; - struct tcf_proto __attribute__((btf_type_tag("rcu"))) *filter_chain; -}; +typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int); -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; -}; +typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8); -struct net_offload { - struct offload_callbacks callbacks; - unsigned int flags; -}; +struct serio; -struct rps_sock_flow_table { - u32 mask; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 ents[0]; +struct ps2dev { + struct serio *serio; + struct mutex cmd_mutex; + wait_queue_head_t wait; + unsigned long flags; + u8 cmdbuf[8]; + u8 cmdcnt; + u8 nak; + ps2_pre_receive_handler_t pre_receive_handler; + ps2_receive_handler_t receive_handler; }; -struct 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; -}; +typedef enum { + PSMOUSE_BAD_DATA = 0, + PSMOUSE_GOOD_DATA = 1, + PSMOUSE_FULL_PACKET = 2, +} psmouse_ret_t; -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 psmouse_protocol; -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 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 *); }; -enum sk_action { - SK_DROP = 0, - SK_PASS = 1, +struct serio_device_id { + __u8 type; + __u8 extra; + __u8 id; + __u8 proto; }; -struct bpf_sk_lookup_kern { - u16 family; - u16 protocol; - __be16 sport; - u16 dport; - struct { - __be32 saddr; - __be32 daddr; - } v4; - struct { - const struct in6_addr *saddr; - const struct in6_addr *daddr; - } v6; - struct sock *selected_sk; - u32 ingress_ifindex; - bool no_reuseport; -}; +struct serio_driver; -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, +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; }; -enum seal_alg { - SEAL_ALG_NONE = 65535, - SEAL_ALG_DES = 0, - SEAL_ALG_1 = 1, - SEAL_ALG_DES3KD = 2, +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 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 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 xdp_ring { - u32 producer; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 pad1; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 consumer; - 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: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct focaltech_finger_state { + bool active; + bool valid; + unsigned int x; + unsigned int y; }; -struct xdp_umem_reg { - __u64 addr; - __u64 len; - __u32 chunk_size; - __u32 headroom; - __u32 flags; +struct focaltech_hw_state { + struct focaltech_finger_state fingers[5]; + unsigned int width; + bool pressed; }; -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 { - TASK_COMM_LEN = 16, +struct focaltech_data { + unsigned int x_max; + unsigned int y_max; + struct focaltech_hw_state state; }; -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]; +enum i2c_driver_flags { + I2C_DRV_ACPI_WAIVE_D0_PROBE = 1, }; -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]; +enum acpi_reconfig_event { + ACPI_RECONFIG_DEVICE_ADD = 0, + ACPI_RECONFIG_DEVICE_REMOVE = 1, }; -struct vm_stack { - struct callback_head rcu; - struct vm_struct *stack_vm_area; +struct gsb_buffer { + u8 status; + u8 len; + union { + u16 wdata; + u8 bdata; + struct { + struct {} __empty_data; + u8 data[0]; + }; + }; }; -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 i2c_acpi_irq_context { + int irq; + bool wake_capable; }; -struct trace_event_data_offsets_task_newtask {}; - -struct trace_event_data_offsets_task_rename {}; - -struct multiprocess_signals { - sigset_t signal; - struct hlist_node node; +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; }; -typedef int (*proc_visitor)(struct task_struct *, void *); - -struct ce_unbind { - struct clock_event_device *ce; - int res; +struct acpi_connection_info { + u8 *connection; + u16 length; + u8 access_length; }; -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 i2c_acpi_handler_data { + struct acpi_connection_info info; + struct i2c_adapter *adapter; }; -struct syscall_trace_enter { - struct trace_entry ent; - int nr; - unsigned long args[0]; -}; +struct rcar_gen3_thermal_priv; -struct syscall_trace_exit { - struct trace_entry ent; - int nr; - long ret; +struct rcar_thermal_info { + int ths_tj_1; + void (*read_fuses)(struct rcar_gen3_thermal_priv *); }; -struct syscall_tp_t { - unsigned long long regs; - unsigned long syscall_nr; - unsigned long args[6]; -}; +struct rcar_gen3_thermal_tsc; -struct syscall_tp_t___2 { - unsigned long long regs; - unsigned long syscall_nr; - unsigned long ret; +struct rcar_gen3_thermal_priv { + struct rcar_gen3_thermal_tsc *tscs[5]; + struct thermal_zone_device_ops ops; + unsigned int num_tscs; + int ptat[3]; + const struct rcar_thermal_info *info; }; -enum bpf_jit_poke_reason { - BPF_POKE_REASON_TAIL_CALL = 0, +struct equation_coefs { + int a1; + int b1; + int a2; + int b2; }; -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 rcar_gen3_thermal_tsc { + void *base; + struct thermal_zone_device *zone; + struct equation_coefs coef; + int tj_t; + int thcode[3]; }; -struct bpf_array_aux { - struct list_head poke_progs; - struct bpf_map *map; - struct mutex poke_mutex; - struct work_struct work; +struct od_ops { + unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int); }; -struct prog_poke_elem { - struct list_head list; - struct bpf_prog_aux *aux; -}; +struct dbs_data; -struct bpf_event_entry { - struct perf_event *event; - struct file *perf_file; - struct file *map_file; - struct callback_head rcu; -}; +struct policy_dbs_info; -struct bpf_iter__bpf_map_elem { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; - union { - void *key; - }; - union { - void *value; - }; +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 bpf_iter_seq_array_map_info { - struct bpf_map *map; - void *percpu_value_buf; - u32 index; +struct gov_attr_set { + struct kobject kobj; + struct list_head policy_list; + struct mutex update_lock; + int usage_count; }; -struct mminit_pfnnid_cache { - unsigned long last_start; - unsigned long last_end; - int last_nid; +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; }; -enum mminit_level { - MMINIT_WARNING = 0, - MMINIT_VERIFY = 1, - MMINIT_TRACE = 2, +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; }; -enum vmscan_throttle_state { - VMSCAN_THROTTLE_WRITEBACK = 0, - VMSCAN_THROTTLE_ISOLATED = 1, - VMSCAN_THROTTLE_NOPROGRESS = 2, - VMSCAN_THROTTLE_CONGESTED = 3, - NR_VMSCAN_THROTTLE = 4, +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); }; -typedef void (*btf_trace_hugepage_set_pmd)(void *, unsigned long, unsigned long); - -typedef void (*btf_trace_hugepage_update)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_set_migration_pmd)(void *, unsigned long, unsigned long); - -typedef void (*btf_trace_remove_migration_pmd)(void *, unsigned long, unsigned long); - -enum transparent_hugepage_flag { - TRANSPARENT_HUGEPAGE_UNSUPPORTED = 0, - TRANSPARENT_HUGEPAGE_FLAG = 1, - TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG = 2, - TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG = 3, - TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG = 4, - TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG = 5, - TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG = 6, - TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG = 7, - TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG = 8, +enum { + OD_NORMAL_SAMPLE = 0, + OD_SUB_SAMPLE = 1, }; -enum compound_dtor_id { - NULL_COMPOUND_DTOR = 0, - COMPOUND_PAGE_DTOR = 1, - HUGETLB_PAGE_DTOR = 2, - TRANSHUGE_PAGE_DTOR = 3, - NR_COMPOUND_DTORS = 4, +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; }; -enum ttu_flags { - TTU_SPLIT_HUGE_PMD = 4, - TTU_IGNORE_MLOCK = 8, - TTU_SYNC = 16, - TTU_HWPOISON = 32, - TTU_BATCH_FLUSH = 64, - TTU_RMAP_LOCKED = 128, +struct od_dbs_tuners { + unsigned int powersave_bias; }; -typedef int rmap_t; +struct mmci_host; -struct trace_event_raw_hugepage_set_pmd { - struct trace_entry ent; - unsigned long addr; - unsigned long pmd; - char __data[0]; +struct mmci_host_ops { + int (*validate_data)(struct mmci_host *, struct mmc_data *); + int (*prep_data)(struct mmci_host *, struct mmc_data *, bool); + void (*unprep_data)(struct mmci_host *, struct mmc_data *, int); + u32 (*get_datactrl_cfg)(struct mmci_host *); + void (*get_next_data)(struct mmci_host *, struct mmc_data *); + int (*dma_setup)(struct mmci_host *); + void (*dma_release)(struct mmci_host *); + int (*dma_start)(struct mmci_host *, unsigned int *); + void (*dma_finalize)(struct mmci_host *, struct mmc_data *); + void (*dma_error)(struct mmci_host *); + void (*set_clkreg)(struct mmci_host *, unsigned int); + void (*set_pwrreg)(struct mmci_host *, unsigned int); + bool (*busy_complete)(struct mmci_host *, struct mmc_command *, u32, u32); + void (*pre_sig_volt_switch)(struct mmci_host *); + int (*post_sig_volt_switch)(struct mmci_host *, struct mmc_ios *); }; -struct trace_event_raw_hugepage_update { - struct trace_entry ent; - unsigned long addr; - unsigned long pte; - unsigned long clr; - unsigned long set; - char __data[0]; +enum mmci_busy_state { + MMCI_BUSY_WAITING_FOR_START_IRQ = 0, + MMCI_BUSY_WAITING_FOR_END_IRQ = 1, + MMCI_BUSY_DONE = 2, }; -struct trace_event_raw_migration_pmd { - struct trace_entry ent; - unsigned long addr; - unsigned long pmd; - char __data[0]; -}; +struct mmci_platform_data; -struct shared_policy { - struct rb_root root; - rwlock_t lock; -}; +struct variant_data; -struct shmem_inode_info { +struct mmci_host { + phys_addr_t phybase; + void *base; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_command stop_abort; + struct mmc_data *data; + struct mmc_host *mmc; + struct clk *clk; + u8 singleirq: 1; + struct reset_control *rst; 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; + unsigned int mclk; + unsigned int clock_cache; + unsigned int cclk; + u32 pwr_reg; + u32 pwr_reg_add; + u32 clk_reg; + u32 clk_reg_add; + u32 datactrl_reg; + enum mmci_busy_state busy_state; + u32 busy_status; + u32 mask1_reg; + u8 vqmmc_enabled: 1; + struct mmci_platform_data *plat; + struct mmc_host_ops *mmc_ops; + struct mmci_host_ops *ops; + struct variant_data *variant; + void *variant_priv; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_opendrain; + u8 hw_designer; + u8 hw_revision: 4; + struct timer_list timer; + unsigned int oldstat; + u32 irq_action; + struct sg_mapping_iter sg_miter; + unsigned int size; + int (*get_rx_fifocnt)(struct mmci_host *, u32, int); + u8 use_dma: 1; + u8 dma_in_progress: 1; + void *dma_priv; + s32 next_cookie; + struct delayed_work ux500_busy_timeout_work; }; -typedef struct { - u64 val; -} pfn_t; - -struct trace_event_data_offsets_hugepage_set_pmd {}; - -struct trace_event_data_offsets_hugepage_update {}; - -struct trace_event_data_offsets_migration_pmd {}; - -struct page_vma_mapped_walk { - unsigned long pfn; - unsigned long nr_pages; - unsigned long pgoff; - struct vm_area_struct *vma; - unsigned long address; - pmd_t *pmd; - pte_t *pte; - spinlock_t *ptl; - unsigned int flags; +struct variant_data { + unsigned int clkreg; + unsigned int clkreg_enable; + unsigned int clkreg_8bit_bus_enable; + unsigned int clkreg_neg_edge_enable; + unsigned int cmdreg_cpsm_enable; + unsigned int cmdreg_lrsp_crc; + unsigned int cmdreg_srsp_crc; + unsigned int cmdreg_srsp; + unsigned int cmdreg_stop; + unsigned int datalength_bits; + unsigned int fifosize; + unsigned int fifohalfsize; + unsigned int data_cmd_enable; + unsigned int datactrl_mask_ddrmode; + unsigned int datactrl_mask_sdio; + unsigned int datactrl_blocksz; + u8 datactrl_any_blocksz: 1; + u8 dma_power_of_2: 1; + u8 datactrl_first: 1; + u8 datacnt_useless: 1; + u8 st_sdio: 1; + u8 st_clkdiv: 1; + u8 stm32_clkdiv: 1; + u32 pwrreg_powerup; + u32 f_max; + u8 signal_direction: 1; + u8 pwrreg_clkgate: 1; + u8 busy_detect: 1; + u8 busy_timeout: 1; + u32 busy_dpsm_flag; + u32 busy_detect_flag; + u32 busy_detect_mask; + u8 pwrreg_nopower: 1; + u8 explicit_mclk_control: 1; + u8 qcom_fifo: 1; + u8 qcom_dml: 1; + u8 reversed_irq_handling: 1; + u8 mmcimask1: 1; + unsigned int irq_pio_mask; + u32 start_err; + u32 opendrain; + u8 dma_lli: 1; + u32 stm32_idmabsize_mask; + u32 stm32_idmabsize_align; + bool dma_flow_controller; + void (*init)(struct mmci_host *); }; -struct nfs4_ssc_client_ops; - -struct nfs_ssc_client_ops; +struct sdmmc_dlyb; -struct nfs_ssc_client_ops_tbl { - const struct nfs4_ssc_client_ops *ssc_nfs4_ops; - const struct nfs_ssc_client_ops *ssc_nfs_ops; +struct sdmmc_tuning_ops { + int (*dlyb_enable)(struct sdmmc_dlyb *); + void (*set_input_ck)(struct sdmmc_dlyb *); + int (*tuning_prepare)(struct mmci_host *); + int (*set_cfg)(struct sdmmc_dlyb *, int, int, bool); }; -struct nfs4_ssc_client_ops { - struct file * (*sco_open)(struct vfsmount *, struct nfs_fh *, nfs4_stateid *); - void (*sco_close)(struct file *); +struct sdmmc_dlyb { + void *base; + u32 unit; + u32 max; + struct sdmmc_tuning_ops *ops; }; -struct nfs_ssc_client_ops { - void (*sco_sb_deactive)(struct super_block *); +struct sdmmc_lli_desc { + u32 idmalar; + u32 idmabase; + u32 idmasize; }; -struct pending_reservation { - struct rb_node rb_node; - ext4_lblk_t lclu; +struct sdmmc_idma { + dma_addr_t sg_dma; + void *sg_cpu; + dma_addr_t bounce_dma_addr; + void *bounce_buf; + bool use_bounce_buffer; }; -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 esdhc_clk_fixup { + const unsigned int sd_dflt_max_clk; + const unsigned int max_clk[11]; }; -struct nfs_callback_data { - unsigned int users; - struct svc_serv *serv; +struct sdhci_esdhc { + u8 vendor_ver; + u8 spec_ver; + bool quirk_incorrect_hostver; + bool quirk_limited_clk_division; + bool quirk_unreliable_pulse_detection; + bool quirk_tuning_erratum_type1; + bool quirk_tuning_erratum_type2; + bool quirk_ignore_data_inhibit; + bool quirk_delay_before_data_reset; + bool quirk_trans_complete_erratum; + bool in_sw_tuning; + unsigned int peripheral_clock; + const struct esdhc_clk_fixup *clk_fixup; + u32 div_ratio; }; -enum nfs4_callback_procnum { - CB_NULL = 0, - CB_COMPOUND = 1, +enum scmi_power_scale { + SCMI_POWER_BOGOWATTS = 0, + SCMI_POWER_MILLIWATTS = 1, + SCMI_POWER_MICROWATTS = 2, }; -enum { - Opt_err = 0, - Opt_enc = 1, - Opt_hash = 2, -}; +struct scmi_perf_domain_info; -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 scmi_perf_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const struct scmi_perf_domain_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*limits_set)(const struct scmi_protocol_handle *, u32, u32, u32); + int (*limits_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); + int (*level_set)(const struct scmi_protocol_handle *, u32, u32, bool); + int (*level_get)(const struct scmi_protocol_handle *, u32, u32 *, bool); + int (*transition_latency_get)(const struct scmi_protocol_handle *, u32); + int (*device_opps_add)(const struct scmi_protocol_handle *, struct device *, u32); + int (*freq_set)(const struct scmi_protocol_handle *, u32, unsigned long, bool); + int (*freq_get)(const struct scmi_protocol_handle *, u32, unsigned long *, bool); + int (*est_power_get)(const struct scmi_protocol_handle *, u32, unsigned long *, unsigned long *); + bool (*fast_switch_possible)(const struct scmi_protocol_handle *, u32); + enum scmi_power_scale (*power_scale_get)(const struct scmi_protocol_handle *); }; -struct keyctl_pkey_params { - __s32 key_id; - __u32 in_len; - union { - __u32 out_len; - __u32 in2_len; - }; - __u32 __spare[7]; +struct scmi_perf_domain_info { + char name[64]; + bool set_perf; }; -struct acomp_alg { - int (*compress)(struct acomp_req *); - int (*decompress)(struct acomp_req *); - void (*dst_free)(struct scatterlist *); - int (*init)(struct crypto_acomp *); - void (*exit)(struct crypto_acomp *); - unsigned int reqsize; - union { - struct { - struct crypto_alg base; - }; - struct comp_alg_common calg; - }; +enum scmi_performance_protocol_cmd { + PERF_DOMAIN_ATTRIBUTES = 3, + PERF_DESCRIBE_LEVELS = 4, + PERF_LIMITS_SET = 5, + PERF_LIMITS_GET = 6, + PERF_LEVEL_SET = 7, + PERF_LEVEL_GET = 8, + PERF_NOTIFY_LIMITS = 9, + PERF_NOTIFY_LEVEL = 10, + PERF_DESCRIBE_FASTCHANNEL = 11, + PERF_DOMAIN_NAME_GET = 12, }; -struct crypto_istat_compress { - atomic64_t compress_cnt; - atomic64_t compress_tlen; - atomic64_t decompress_cnt; - atomic64_t decompress_tlen; - atomic64_t err_cnt; +enum { + PERF_FC_LEVEL = 0, + PERF_FC_LIMIT = 1, + PERF_FC_MAX = 2, }; -struct crypto_report_acomp { - char type[64]; +enum scmi_notification_events { + SCMI_EVENT_POWER_STATE_CHANGED = 0, + SCMI_EVENT_CLOCK_RATE_CHANGED = 0, + SCMI_EVENT_CLOCK_RATE_CHANGE_REQUESTED = 1, + SCMI_EVENT_PERFORMANCE_LIMITS_CHANGED = 0, + SCMI_EVENT_PERFORMANCE_LEVEL_CHANGED = 1, + SCMI_EVENT_SENSOR_TRIP_POINT_EVENT = 0, + SCMI_EVENT_SENSOR_UPDATE = 1, + SCMI_EVENT_RESET_ISSUED = 0, + SCMI_EVENT_BASE_ERROR_EVENT = 0, + SCMI_EVENT_SYSTEM_POWER_STATE_NOTIFIER = 0, + SCMI_EVENT_POWERCAP_CAP_CHANGED = 0, + SCMI_EVENT_POWERCAP_MEASUREMENTS_CHANGED = 1, }; -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 scmi_opp { + u32 perf; + u32 power; + u32 trans_latency_us; + u32 indicative_freq; + u32 level_index; + struct hlist_node hash; }; -struct io_sync { - struct file *file; - loff_t len; - loff_t off; - int flags; - int mode; -}; +struct perf_dom_info; -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, +struct scmi_perf_info { + u32 version; + u16 num_domains; + enum scmi_power_scale power_scale; + u64 stats_addr; + u32 stats_size; + struct perf_dom_info *dom_info; }; -struct blake2s_state { - u32 h[8]; - u32 t[2]; - u32 f[2]; - u8 buf[64]; - unsigned int buflen; - unsigned int outlen; -}; +struct scmi_fc_info; -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 perf_dom_info { + u32 id; + bool set_limits; + bool perf_limit_notify; + bool perf_level_notify; + bool perf_fastchannels; + bool level_indexing_mode; + u32 opp_count; + u32 sustained_freq_khz; + u32 sustained_perf_level; + unsigned long mult_factor; + struct scmi_perf_domain_info info; + struct scmi_opp opp[16]; + struct scmi_fc_info *fc_info; + struct xarray opps_by_idx; + struct xarray opps_by_lvl; + struct hlist_head opps_by_freq[16]; }; -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 scmi_fc_info { + void *set_addr; + void *get_addr; + struct scmi_fc_db_info *set_db; }; -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 scmi_msg_resp_perf_attributes { + __le16 num_domains; + __le16 flags; + __le32 stats_addr_low; + __le32 stats_addr_high; + __le32 stats_size; }; -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 scmi_msg_resp_perf_domain_attributes { + __le32 flags; + __le32 rate_limit_us; + __le32 sustained_freq_khz; + __le32 sustained_perf_level; + u8 name[16]; }; -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 scmi_perf_ipriv { + u32 version; + struct perf_dom_info *perf_dom; }; -struct assoc_array_walk_result { - struct { - struct assoc_array_node *node; - int level; - int slot; - } terminal_node; +struct scmi_msg_resp_perf_describe_levels { + __le16 num_returned; + __le16 num_remaining; struct { - struct assoc_array_shortcut *shortcut; - int level; - int sc_level; - unsigned long sc_segments; - unsigned long dissimilarity; - } wrong_shortcut; + __le32 perf_val; + __le32 power; + __le16 transition_latency_us; + __le16 reserved; + } opp[0]; }; -struct assoc_array_delete_collapse_context { - struct assoc_array_node *node; - const void *skip_leaf; - int slot; +struct scmi_msg_resp_perf_describe_levels_v4 { + __le16 num_returned; + __le16 num_remaining; + struct { + __le32 perf_val; + __le32 power; + __le16 transition_latency_us; + __le16 reserved; + __le32 indicative_freq; + __le32 level_index; + } opp[0]; }; -typedef uintptr_t uptrval; - -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 scmi_perf_set_limits { + __le32 domain; + __le32 max_level; + __le32 min_level; }; -typedef uint64_t vli_type; - -struct xz_dec_hash { - vli_type unpadded; - vli_type uncompressed; - uint32_t crc32; +struct scmi_perf_get_limits { + __le32 max_level; + __le32 min_level; }; -enum xz_check { - XZ_CHECK_NONE = 0, - XZ_CHECK_CRC32 = 1, - XZ_CHECK_CRC64 = 4, - XZ_CHECK_SHA256 = 10, +struct dev_pm_opp_data { + unsigned int level; + unsigned long freq; + unsigned long u_volt; }; -enum xz_mode { - XZ_SINGLE = 0, - XZ_PREALLOC = 1, - XZ_DYNALLOC = 2, +struct scmi_perf_set_level { + __le32 domain; + __le32 level; }; -struct xz_dec_lzma2; +struct scmi_perf_notify_level_or_limits { + __le32 domain; + __le32 notify_enable; +}; -struct xz_dec_bcj; +struct scmi_msg_perf_describe_levels { + __le32 domain; + __le32 level_index; +}; -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; +struct scmi_perf_limits_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 range_max; + __le32 range_min; }; -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 scmi_perf_limits_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int range_max; + unsigned int range_min; }; -enum nla_policy_validation { - NLA_VALIDATE_NONE = 0, - NLA_VALIDATE_RANGE = 1, - NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2, - NLA_VALIDATE_MIN = 3, - NLA_VALIDATE_MAX = 4, - NLA_VALIDATE_MASK = 5, - NLA_VALIDATE_RANGE_PTR = 6, - NLA_VALIDATE_FUNCTION = 7, +struct scmi_perf_level_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 performance_level; }; -struct odmi_data { - struct resource res; - void *base; - unsigned int spi_base; +struct scmi_perf_level_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int performance_level; }; -struct uniphier_system_bus_bank { - u32 base; - u32 end; +struct scmi_powercap_info; + +struct scmi_powercap_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const struct scmi_powercap_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*cap_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*cap_set)(const struct scmi_protocol_handle *, u32, u32, bool); + int (*cap_enable_set)(const struct scmi_protocol_handle *, u32, bool); + int (*cap_enable_get)(const struct scmi_protocol_handle *, u32, bool *); + int (*pai_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*pai_set)(const struct scmi_protocol_handle *, u32, u32); + int (*measurements_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); + int (*measurements_threshold_set)(const struct scmi_protocol_handle *, u32, u32, u32); + int (*measurements_threshold_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); }; -struct uniphier_system_bus_priv { - struct device *dev; - void *membase; - struct uniphier_system_bus_bank bank[8]; +struct scmi_powercap_info { + unsigned int id; + bool notify_powercap_cap_change; + bool notify_powercap_measurement_change; + bool async_powercap_cap_set; + bool powercap_cap_config; + bool powercap_monitoring; + bool powercap_pai_config; + bool powercap_scale_mw; + bool powercap_scale_uw; + bool fastchannels; + char name[64]; + unsigned int min_pai; + unsigned int max_pai; + unsigned int pai_step; + unsigned int min_power_cap; + unsigned int max_power_cap; + unsigned int power_cap_step; + unsigned int sustainable_power; + unsigned int accuracy; + unsigned int parent_id; + struct scmi_fc_info *fc_info; }; -struct exynos_dp_video_phy_drvdata { - u32 phy_ctrl_offset; +enum scmi_powercap_protocol_cmd { + POWERCAP_DOMAIN_ATTRIBUTES = 3, + POWERCAP_CAP_GET = 4, + POWERCAP_CAP_SET = 5, + POWERCAP_PAI_GET = 6, + POWERCAP_PAI_SET = 7, + POWERCAP_DOMAIN_NAME_GET = 8, + POWERCAP_MEASUREMENTS_GET = 9, + POWERCAP_CAP_NOTIFY = 10, + POWERCAP_MEASUREMENTS_NOTIFY = 11, + POWERCAP_DESCRIBE_FASTCHANNEL = 12, }; -struct exynos_dp_video_phy { - struct regmap *regs; - const struct exynos_dp_video_phy_drvdata *drvdata; +enum { + POWERCAP_FC_CAP = 0, + POWERCAP_FC_PAI = 1, + POWERCAP_FC_MAX = 2, }; -struct stm32_desc_pin; +struct scmi_powercap_state; -struct stm32_pinctrl_match_data { - const struct stm32_desc_pin *pins; - const unsigned int npins; - bool secure_control; +struct powercap_info { + u32 version; + int num_domains; + struct scmi_powercap_state *states; + struct scmi_powercap_info *powercaps; }; -struct stm32_desc_function { - const char *name; - const unsigned char num; +struct scmi_powercap_state { + bool enabled; + u32 last_pcap; + bool meas_notif_enabled; + u64 thresholds; }; -struct stm32_desc_pin { - struct pinctrl_pin_desc pin; - const struct stm32_desc_function functions[18]; - const unsigned int pkg; +struct scmi_msg_resp_powercap_domain_attributes { + __le32 attributes; + u8 name[16]; + __le32 min_pai; + __le32 max_pai; + __le32 pai_step; + __le32 min_power_cap; + __le32 max_power_cap; + __le32 power_cap_step; + __le32 sustainable_power; + __le32 accuracy; + __le32 parent_id; }; -struct pca953x_reg_config { - int direction; - int output; - int input; - int invert; +struct scmi_msg_powercap_set_cap_or_pai { + __le32 domain; + __le32 flags; + __le32 value; }; -struct pca953x_chip { - unsigned int gpio_start; - struct mutex i2c_lock; - struct regmap *regmap; - struct mutex irq_lock; - unsigned long irq_mask[1]; - unsigned long irq_stat[1]; - unsigned long irq_trig_raise[1]; - unsigned long irq_trig_fall[1]; - atomic_t wakeup_path; - struct i2c_client *client; - struct gpio_chip gpio_chip; - const char * const *names; - unsigned long driver_data; - struct regulator *regulator; - const struct pca953x_reg_config *regs; - u8 (*recalc_addr)(struct pca953x_chip *, int, int); - bool (*check_reg)(struct pca953x_chip *, unsigned int, u32); +struct scmi_msg_resp_powercap_cap_set_complete { + __le32 domain; + __le32 power_cap; }; -struct pca953x_platform_data { - unsigned int gpio_base; - u32 invert; - int irq_base; - void *context; - int (*setup)(struct i2c_client *, unsigned int, unsigned int, void *); - void (*teardown)(struct i2c_client *, unsigned int, unsigned int, void *); - const char * const *names; +struct scmi_msg_resp_powercap_meas_get { + __le32 power; + __le32 pai; }; -struct acpiphp_context; +struct scmi_msg_powercap_notify_cap { + __le32 domain; + __le32 notify_enable; +}; -struct acpiphp_bridge { - struct list_head list; - struct list_head slots; - struct kref ref; - struct acpiphp_context *context; - int nr_slots; - struct pci_bus *pci_bus; - struct pci_dev *pci_dev; - bool is_going_away; +struct scmi_msg_powercap_notify_thresh { + __le32 domain; + __le32 notify_enable; + __le32 power_thresh_low; + __le32 power_thresh_high; }; -struct acpiphp_func { - struct acpiphp_bridge *parent; - struct acpiphp_slot *slot; - struct list_head sibling; - u8 function; - u32 flags; +struct scmi_powercap_cap_changed_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 power_cap; + __le32 pai; }; -struct acpiphp_context { - struct acpi_hotplug_context hp; - struct acpiphp_func func; - struct acpiphp_bridge *bridge; - unsigned int refcount; +struct scmi_powercap_cap_changed_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int power_cap; + unsigned int pai; }; -struct acpiphp_root_context { - struct acpi_hotplug_context hp; - struct acpiphp_bridge *root_bridge; +struct scmi_powercap_meas_changed_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 power; }; -struct hisi_pcie { - void *reg_base; +struct scmi_powercap_meas_changed_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int power; }; -enum drm_panel_orientation { - DRM_MODE_PANEL_ORIENTATION_UNKNOWN = -1, - DRM_MODE_PANEL_ORIENTATION_NORMAL = 0, - DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP = 1, - DRM_MODE_PANEL_ORIENTATION_LEFT_UP = 2, - DRM_MODE_PANEL_ORIENTATION_RIGHT_UP = 3, +struct mct_clock_event_device { + struct clock_event_device evt; + unsigned long base; + char name[11]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct efifb_par { - u32 pseudo_palette[16]; - resource_size_t base; - resource_size_t size; +enum { + MCT_INT_SPI = 0, + MCT_INT_PPI = 1, }; -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)); +struct supplier_bindings { + struct device_node * (*parse_prop)(struct device_node *, const char *, int); + bool optional; + bool node_not_dev; +}; -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 of_endpoint { + unsigned int port; + unsigned int id; + const struct device_node *local_node; }; -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 hwspinlock_ops { + int (*trylock)(struct hwspinlock *); + void (*unlock)(struct hwspinlock *); + void (*relax)(struct hwspinlock *); }; -struct hi655x_pmic; +struct hwspinlock_device; -struct hi655x_clk { - struct hi655x_pmic *hi655x; - struct clk_hw clk_hw; +struct hwspinlock { + struct hwspinlock_device *bank; + spinlock_t lock; + void *priv; }; -struct hi655x_pmic { - struct resource *res; +struct hwspinlock_device { struct device *dev; - struct regmap *regmap; - struct gpio_desc *gpio; - unsigned int ver; - struct regmap_irq_chip_data *irq_data; + const struct hwspinlock_ops *ops; + int base_id; + int num_locks; + struct hwspinlock lock[0]; }; -struct berlin2_div_map { - u16 pll_select_offs; - u16 pll_switch_offs; - u16 div_select_offs; - u16 div_switch_offs; - u16 div3_switch_offs; - u16 gate_offs; - u8 pll_select_shift; - u8 pll_switch_shift; - u8 div_select_shift; - u8 div_switch_shift; - u8 div3_switch_shift; - u8 gate_shift; +struct qcom_hwspinlock_of_data { + u32 offset; + u32 stride; + const struct regmap_config *regmap_config; }; -struct berlin2_div { - struct clk_hw hw; - void *base; - struct berlin2_div_map map; - spinlock_t *lock; +struct reg_field { + unsigned int reg; + unsigned int lsb; + unsigned int msb; + unsigned int id_size; + unsigned int id_offset; }; -struct hisi_fixed_factor_clock { +struct __extcon_info { + unsigned int type; unsigned int id; - char *name; - const char *parent_name; - unsigned long mult; - unsigned long div; - unsigned long flags; + const char *name; }; -struct ma35d1_adc_clk_div { - struct clk_hw hw; - void *reg; - u8 shift; - u8 width; - u32 mask; - const struct clk_div_table *table; - spinlock_t *lock; +struct extcon_cable; + +struct extcon_dev { + const char *name; + const unsigned int *supported_cable; + const u32 *mutually_exclusive; + struct device dev; + unsigned int id; + struct raw_notifier_head nh_all; + struct raw_notifier_head *nh; + struct list_head entry; + int max_supported; + spinlock_t lock; + u32 state; + struct device_type extcon_dev_type; + struct extcon_cable *cables; + struct attribute_group attr_g_muex; + struct attribute **attrs_muex; + struct device_attribute *d_attrs_muex; }; -struct clk_fractional_divider { - struct clk_hw hw; - void *reg; - u8 mshift; - u8 mwidth; - u8 nshift; - u8 nwidth; - u8 flags; - void (*approximation)(struct clk_hw *, unsigned long, unsigned long *, unsigned long *, unsigned long *); - spinlock_t *lock; +union extcon_property_value { + int intval; }; -struct rockchip_clk_frac { - struct notifier_block clk_nb; - struct clk_fractional_divider div; - struct clk_gate gate; - struct clk_mux mux; - const struct clk_ops *mux_ops; - int mux_frac_idx; - bool rate_change_remuxed; - int rate_change_idx; +struct extcon_cable { + struct extcon_dev *edev; + int cable_index; + struct attribute_group attr_g; + struct device_attribute attr_name; + struct device_attribute attr_state; + struct attribute *attrs[3]; + union extcon_property_value usb_propval[3]; + union extcon_property_value chg_propval[1]; + union extcon_property_value jack_propval[1]; + union extcon_property_value disp_propval[2]; + unsigned long usb_bits[1]; + unsigned long chg_bits[1]; + unsigned long jack_bits[1]; + unsigned long disp_bits[1]; }; -struct exynos_audss_clk_drvdata { - unsigned int has_adma_clk: 1; - unsigned int has_mst_clk: 1; - unsigned int enable_epll: 1; - unsigned int num_clks; +struct icc_node; + +struct icc_node_data; + +struct icc_provider { + struct list_head provider_list; + struct list_head nodes; + int (*set)(struct icc_node *, struct icc_node *); + int (*aggregate)(struct icc_node *, u32, u32, u32, u32 *, u32 *); + void (*pre_aggregate)(struct icc_node *); + int (*get_bw)(struct icc_node *, u32 *, u32 *); + struct icc_node * (*xlate)(struct of_phandle_args *, void *); + struct icc_node_data * (*xlate_extended)(struct of_phandle_args *, void *); + struct device *dev; + int users; + bool inter_set; + void *data; }; -struct utmi_clk_param { - u32 osc_frequency; - u8 enable_delay_count; - u8 stable_count; - u8 active_delay_count; - u8 xtal_freq_count; +struct icc_clk_node { + struct clk *clk; + bool enabled; }; -struct dma_chan_tbl_ent { - struct dma_chan *chan; +struct icc_clk_provider { + struct icc_provider provider; + int num_clocks; + struct icc_clk_node clocks[0]; }; -struct dmaengine_unmap_pool { - struct kmem_cache *cache; +struct icc_node { + int id; const char *name; - mempool_t *pool; - size_t size; + struct icc_node **links; + size_t num_links; + struct icc_provider *provider; + struct list_head node_list; + struct list_head search_list; + struct icc_node *reverse; + u8 is_traversed: 1; + struct hlist_head req_list; + u32 avg_bw; + u32 peak_bw; + u32 init_avg; + u32 init_peak; + void *data; }; -struct bm_addr { - void *ce; - __be32 *ce_be; - void *ci; +struct icc_node_data { + struct icc_node *node; + u32 tag; }; -struct bm_rcr_entry; - -struct bm_rcr { - struct bm_rcr_entry *ring; - struct bm_rcr_entry *cursor; - u8 ci; - u8 available; - u8 ithresh; - u8 vbit; +struct icc_clk_data { + struct clk *clk; + const char *name; }; -struct bm_mc_command; - -union bm_mc_result; - -struct bm_mc { - struct bm_mc_command *cr; - union bm_mc_result *rr; - u8 rridx; - u8 vbit; +struct icc_onecell_data { + unsigned int num_nodes; + struct icc_node *nodes[0]; }; -struct bm_portal { - struct bm_addr addr; - struct bm_rcr rcr; - struct bm_mc mc; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct net_device_devres { + struct net_device *ndev; }; -struct bm_portal_config; - -struct bman_portal { - struct bm_portal p; - unsigned long irq_sources; - const struct bm_portal_config *config; - char irqname[16]; - long: 64; - long: 64; - long: 64; - long: 64; +struct tso_t { + int next_frag_idx; + int size; + void *data; + u16 ip_id; + u8 tlen; + bool ipv6; + u32 tcp_seq; }; -struct bm_rcr_entry { - union { - struct { - u8 _ncw_verb; - u8 bpid; - u8 __reserved1[62]; - }; - struct bm_buffer bufs[8]; - }; +enum __sk_action { + __SK_DROP = 0, + __SK_PASS = 1, + __SK_REDIRECT = 2, + __SK_NONE = 3, }; -struct bm_mc_command { - u8 _ncw_verb; - u8 bpid; - u8 __reserved[62]; +enum sk_psock_state_bits { + SK_PSOCK_TX_ENABLED = 0, + SK_PSOCK_RX_STRP_ENABLED = 1, }; -union bm_mc_result { - struct { - u8 verb; - u8 bpid; - u8 __reserved[62]; - }; - struct bm_buffer bufs[8]; +struct sk_psock_link { + struct list_head list; + struct bpf_map *map; + void *link_raw; }; -struct bm_portal_config { - void *addr_virt_ce; - void *addr_virt_ci; - struct list_head list; +struct xdp_buff_xsk; + +struct xdp_desc; + +struct xsk_buff_pool { struct device *dev; - int cpu; - int irq; + struct net_device *netdev; + struct list_head xsk_tx_list; + spinlock_t xsk_tx_list_lock; + refcount_t users; + struct xdp_umem *umem; + struct work_struct work; + struct list_head free_list; + struct list_head xskb_list; + u32 heads_cnt; + u16 queue_id; + long: 64; + 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; }; -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; +struct xdp_buff_xsk { + struct xdp_buff xdp; + u8 cb[24]; + dma_addr_t dma; + dma_addr_t frame_dma; + struct xsk_buff_pool *pool; + u64 orig_addr; + struct list_head free_list_node; + struct list_head xskb_list_node; }; -enum bm_rcr_pmode { - bm_rcr_pci = 0, - bm_rcr_pce = 1, - bm_rcr_pvb = 2, +struct xdp_desc { + __u64 addr; + __u32 len; + __u32 options; }; -enum bm_rcr_cmode { - bm_rcr_cci = 0, - bm_rcr_cce = 1, +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 rpmpd; +struct channels_reply_data { + struct ethnl_reply_data base; + struct ethtool_channels channels; +}; -struct rpmpd_desc { - struct rpmpd **rpmpds; - size_t num_pds; - unsigned int max_state; +enum tcp_synack_type { + TCP_SYNACK_NORMAL = 0, + TCP_SYNACK_FASTOPEN = 1, + TCP_SYNACK_COOKIE = 2, }; -struct qcom_smd_rpm; +struct tcp_request_sock_ops; -struct rpmpd { - struct generic_pm_domain pd; - struct generic_pm_domain *parent; - struct rpmpd *peer; - const bool active_only; - unsigned int corner; - bool enabled; - const int res_type; - const int res_id; - struct qcom_smd_rpm *rpm; - unsigned int max_state; - __le32 key; +struct tcp_request_sock { + struct inet_request_sock req; + const struct tcp_request_sock_ops *af_specific; + u64 snt_synack; + bool tfo_listener; + bool is_mptcp; + bool req_usec_ts; + u32 txhash; + u32 rcv_isn; + u32 snt_isn; + u32 ts_off; + u32 last_oow_ack_time; + u32 rcv_nxt; + u8 syn_tos; }; -struct rpmpd_req { - __le32 key; - __le32 nbytes; - __le32 value; +struct tcp_request_sock_ops { + u16 mss_clamp; + struct dst_entry * (*route_req)(const struct sock *, struct sk_buff *, struct flowi *, struct request_sock *); + u32 (*init_seq)(const struct sk_buff *); + u32 (*init_ts_off)(const struct net *, const struct sk_buff *); + int (*send_synack)(const struct sock *, struct dst_entry *, struct flowi *, struct request_sock *, struct tcp_fastopen_cookie *, enum tcp_synack_type, struct sk_buff *); }; -struct k3_soc_id { - unsigned int id; - const char *family_name; +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; }; -typedef uint64_t xen_pfn_t; +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 xen_remove_from_physmap { - domid_t domid; - xen_pfn_t gpfn; +struct net_offload { + struct offload_callbacks callbacks; + unsigned int flags; }; -typedef uint64_t xen_ulong_t; +struct dsa_stubs { + int (*conduit_hwtstamp_validate)(struct net_device *, const struct kernel_hwtstamp_config *, struct netlink_ext_ack *); +}; -typedef struct { - union { - xen_ulong_t *p; - uint64_t q; - }; -} __guest_handle_xen_ulong_t; +struct gss_krb5_enctype; -typedef struct { - union { - xen_pfn_t *p; - uint64_t q; - }; -} __guest_handle_xen_pfn_t; +struct crypto_sync_skcipher; -typedef struct { - union { - int *p; - uint64_t q; - }; -} __guest_handle_int; +struct crypto_ahash; -struct xen_add_to_physmap_range { - domid_t domid; - uint16_t space; - uint16_t size; - domid_t foreign_domid; - __guest_handle_xen_ulong_t idxs; - __guest_handle_xen_pfn_t gpfns; - __guest_handle_int errs; +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 rpmh_vreg_hw_data; - -struct rpmh_vreg_init_data { +struct gss_krb5_enctype { + const u32 etype; + const u32 ctype; const char *name; - const char *resource_name; - const char *supply_name; - const struct rpmh_vreg_hw_data *hw_data; + 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 (*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 *); }; -enum rpmh_regulator_type { - VRM = 0, - XOB = 1, +struct crypto_skcipher { + unsigned int reqsize; + struct crypto_tfm base; }; -struct rpmh_vreg_hw_data { - enum rpmh_regulator_type regulator_type; - const struct regulator_ops *ops; - const struct linear_range voltage_range; - int n_voltages; - int hpm_min_load_uA; - const int *pmic_mode_map; - unsigned int (*of_map_mode)(unsigned int); +struct crypto_sync_skcipher { + struct crypto_skcipher base; }; -struct rpmh_vreg { - struct device *dev; - u32 addr; - struct regulator_desc rdesc; - const struct rpmh_vreg_hw_data *hw_data; - bool always_wait_for_ack; - int enabled; - bool bypassed; - int voltage_selector; - unsigned int mode; +struct packet_offload { + __be16 type; + u16 priority; + struct offload_callbacks callbacks; + struct list_head list; }; -struct uniphier8250_priv { - int line; - struct clk *clk; - spinlock_t atomic_write_lock; +enum vlan_flags { + VLAN_FLAG_REORDER_HDR = 1, + VLAN_FLAG_GVRP = 2, + VLAN_FLAG_LOOSE_BINDING = 4, + VLAN_FLAG_MVRP = 8, + VLAN_FLAG_BRIDGE_BINDING = 16, }; -struct bcm2835_rng_of_data { - bool mask_interrupts; +enum vlan_protos { + VLAN_PROTO_8021Q = 0, + VLAN_PROTO_8021AD = 1, + VLAN_PROTO_NUM = 2, }; -struct bcm2835_rng_priv { - struct hwrng rng; - void *base; - bool mask_interrupts; - struct clk *clk; - struct reset_control *reset; +struct vlan_pcpu_stats { + u64_stats_t rx_packets; + u64_stats_t rx_bytes; + u64_stats_t rx_multicast; + u64_stats_t tx_packets; + u64_stats_t tx_bytes; + struct u64_stats_sync syncp; + u32 rx_errors; + u32 tx_dropped; }; -enum qcom_iommu_clk { - CLK_IFACE = 0, - CLK_BUS = 1, - CLK_TBU = 2, - CLK_NUM = 3, +struct vlan_vid_info { + struct list_head list; + __be16 proto; + u16 vid; + int refcount; }; -struct qcom_iommu_dev; +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 qcom_iommu_domain { - struct io_pgtable_ops *pgtbl_ops; - spinlock_t pgtbl_lock; - struct mutex init_mutex; - struct iommu_domain domain; - struct qcom_iommu_dev *iommu; - struct iommu_fwspec *fwspec; +struct napi_gro_cb { + union { + struct { + void *frag0; + unsigned int frag0_len; + }; + struct { + struct sk_buff *last; + unsigned long age; + }; + }; + int data_offset; + u16 flush; + u16 flush_id; + u16 count; + u16 proto; + union { + struct { + u16 gro_remcsum_start; + u8 same_flow: 1; + u8 encap_mark: 1; + u8 csum_valid: 1; + u8 csum_cnt: 3; + u8 free: 2; + u8 is_ipv6: 1; + u8 is_fou: 1; + u8 is_atomic: 1; + u8 recursion_counter: 4; + u8 is_flist: 1; + }; + struct { + u16 gro_remcsum_start; + u8 same_flow: 1; + u8 encap_mark: 1; + u8 csum_valid: 1; + u8 csum_cnt: 3; + u8 free: 2; + u8 is_ipv6: 1; + u8 is_fou: 1; + u8 is_atomic: 1; + u8 recursion_counter: 4; + u8 is_flist: 1; + } zeroed; + }; + __wsum csum; }; -struct qcom_iommu_ctx; +struct vlan_priority_tci_mapping; -struct qcom_iommu_dev { - struct iommu_device iommu; - struct device *dev; - struct clk_bulk_data clks[3]; - void *local_base; - u32 sec_id; - u8 num_ctxs; - struct qcom_iommu_ctx *ctxs[0]; +struct vlan_dev_priv { + unsigned int nr_ingress_mappings; + u32 ingress_priority_map[8]; + unsigned int nr_egress_mappings; + struct vlan_priority_tci_mapping *egress_priority_map[16]; + __be16 vlan_proto; + u16 vlan_id; + u16 flags; + struct net_device *real_dev; + netdevice_tracker dev_tracker; + unsigned char real_dev_addr[6]; + struct proc_dir_entry *dent; + struct vlan_pcpu_stats __attribute__((btf_type_tag("percpu"))) *vlan_pcpu_stats; }; -struct qcom_iommu_ctx { - struct device *dev; - void *base; - bool secure_init; - u8 asid; - struct iommu_domain *domain; +struct vlan_priority_tci_mapping { + u32 priority; + u16 vlan_qos; + struct vlan_priority_tci_mapping *next; }; -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 *); -}; +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 anon_transport_class { - struct transport_class tclass; - struct attribute_container container; -}; +typedef struct { + unsigned char op; + unsigned char bits; + unsigned short val; +} code; -struct regcache_rbtree_node { - void *block; - long *cache_present; - unsigned int base_reg; - unsigned int blklen; - struct rb_node node; +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 regcache_rbtree_ctx { - struct rb_root root; - struct regcache_rbtree_node *cached_rbnode; +struct inflate_workspace { + struct inflate_state inflate_state; + unsigned char working_window[32768]; }; -struct axp20x_dev { - struct device *dev; - int irq; - unsigned long irq_flags; - struct regmap *regmap; - struct regmap_irq_chip_data *regmap_irqc; - long variant; - int nr_cells; - const struct mfd_cell *cells; - const struct regmap_config *regmap_cfg; - const struct regmap_irq_chip *regmap_irq_chip; +typedef struct { + u16 version; + u16 length; + u32 runtime_services_supported; +} efi_rt_properties_table_t; + +struct linux_efi_memreserve { + int size; + atomic_t count; + phys_addr_t next; + struct { + phys_addr_t base; + phys_addr_t size; + } entry[0]; }; -enum ata_dev_iter_mode { - ATA_DITER_ENABLED = 0, - ATA_DITER_ENABLED_REVERSE = 1, - ATA_DITER_ALL = 2, - ATA_DITER_ALL_REVERSE = 3, +struct linux_efi_initrd { + unsigned long base; + unsigned long size; }; -struct mtd_partition; +typedef bool (*smp_cond_func_t)(int, void *); -struct physmap_flash_info { - unsigned int nmaps; - struct mtd_info **mtds; - struct mtd_info *cmtd; - struct map_info *maps; - spinlock_t vpp_lock; - int vpp_refcnt; - const char *probe_type; - const char * const *part_types; - unsigned int nparts; - const struct mtd_partition *parts; - struct gpio_descs *gpios; - unsigned int gpio_values; - unsigned int win_order; -}; +struct pmu_hw_events; -struct mtd_partition { - const char *name; - const char * const *types; - uint64_t size; - uint64_t offset; - uint32_t mask_flags; - uint32_t add_flags; - struct device_node *of_node; +struct arm_pmu { + struct pmu pmu; + cpumask_t supported_cpus; + char *name; + int pmuver; + irqreturn_t (*handle_irq)(struct arm_pmu *); + void (*enable)(struct perf_event *); + void (*disable)(struct perf_event *); + int (*get_event_idx)(struct pmu_hw_events *, struct perf_event *); + void (*clear_event_idx)(struct pmu_hw_events *, struct perf_event *); + int (*set_event_filter)(struct hw_perf_event *, struct perf_event_attr *); + u64 (*read_counter)(struct perf_event *); + void (*write_counter)(struct perf_event *, u64); + void (*start)(struct arm_pmu *); + void (*stop)(struct arm_pmu *); + void (*reset)(void *); + int (*map_event)(struct perf_event *); + int num_events; + bool secure_access; + unsigned long pmceid_bitmap[1]; + unsigned long pmceid_ext_bitmap[1]; + struct platform_device *plat_device; + struct pmu_hw_events __attribute__((btf_type_tag("percpu"))) *hw_events; + struct hlist_node node; + struct notifier_block cpu_pm_nb; + const struct attribute_group *attr_groups[5]; + u64 reg_pmmir; + unsigned long acpi_cpuid; }; -struct physmap_flash_data { - unsigned int width; - int (*init)(struct platform_device *); - void (*exit)(struct platform_device *); - void (*set_vpp)(struct platform_device *, int); - unsigned int nr_parts; - unsigned int pfow_base; - char *probe_type; - struct mtd_partition *parts; - const char * const *part_probe_types; +struct pmu_hw_events { + struct perf_event *events[32]; + unsigned long used_mask[1]; + raw_spinlock_t pmu_lock; + struct arm_pmu *percpu_pmu; + int irq; }; -struct mtd_part_parser_data { - unsigned long origin; +struct kvm_pmu_event_filter { + __u16 base_event; + __u16 nevents; + __u8 action; + __u8 pad[3]; }; -enum pmic_arb_channel { - PMIC_ARB_CHANNEL_RW = 0, - PMIC_ARB_CHANNEL_OBS = 1, +struct arm_pmu_entry { + struct list_head entry; + struct arm_pmu *arm_pmu; }; -struct spmi_pmic_arb; +struct pkvm_hyp_vcpu; -struct spmi_controller; +struct pkvm_hyp_vm { + struct kvm___2 kvm; + struct kvm___2 *host_kvm; + struct kvm_pgtable___2 pgt; + struct kvm_pgtable_mm_ops mm_ops; + struct hyp_pool pool; + hyp_spinlock_t lock; + unsigned int nr_vcpus; + struct pkvm_hyp_vcpu *vcpus[0]; +}; -struct pmic_arb_ver_ops { - const char *ver_str; - int (*ppid_to_apid)(struct spmi_pmic_arb *, u16); - int (*offset)(struct spmi_pmic_arb *, u8, u16, enum pmic_arb_channel); - u32 (*fmt_cmd)(u8, u8, u16, u8); - int (*non_data_cmd)(struct spmi_controller *, u8, u8); - void * (*owner_acc_status)(struct spmi_pmic_arb *, u8, u16); - void * (*acc_enable)(struct spmi_pmic_arb *, u16); - void * (*irq_status)(struct spmi_pmic_arb *, u16); - void * (*irq_clear)(struct spmi_pmic_arb *, u16); - u32 (*apid_map_offset)(u16); - void * (*apid_owner)(struct spmi_pmic_arb *, u16); +struct pkvm_hyp_vcpu { + struct kvm_vcpu___2 vcpu; + struct kvm_vcpu___2 *host_vcpu; + long: 64; }; -struct apid_data; +struct wq_flusher; -struct spmi_pmic_arb { - void *rd_base; - void *wr_base; - void *intr; - void *cnfg; - void *core; - resource_size_t core_size; - raw_spinlock_t lock; - u8 channel; - int irq; - u8 ee; - u32 bus_instance; - u16 min_apid; - u16 max_apid; - u16 base_apid; - int apid_count; - u32 *mapping_table; - unsigned long mapping_table_valid[8]; - struct irq_domain *domain; - struct spmi_controller *spmic; - const struct pmic_arb_ver_ops *ver_ops; - u16 *ppid_to_apid; - u16 last_apid; - struct apid_data *apid_data; - int max_periphs; +struct worker; + +struct workqueue_attrs; + +struct pool_workqueue; + +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"))) __attribute__((btf_type_tag("rcu"))) **cpu_pwq; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct spmi_controller { - struct device dev; - unsigned int nr; - int (*cmd)(struct spmi_controller *, u8, u8); - int (*read_cmd)(struct spmi_controller *, u8, u8, u16, u8 *, size_t); - int (*write_cmd)(struct spmi_controller *, u8, u8, u16, const u8 *, size_t); +struct wq_flusher { + struct list_head list; + int flush_color; + struct completion done; }; -struct apid_data { - u16 ppid; - u8 write_ee; - u8 irq_ee; +struct worker_pool; + +struct worker { + union { + struct list_head entry; + struct hlist_node hentry; + }; + struct work_struct *current_work; + work_func_t current_func; + struct pool_workqueue *current_pwq; + u64 current_at; + unsigned int current_color; + int sleeping; + work_func_t last_func; + struct list_head scheduled; + struct task_struct *task; + struct worker_pool *pool; + struct list_head node; + unsigned long last_active; + unsigned int flags; + int id; + char desc[24]; + struct workqueue_struct *rescue_wq; }; -enum pmic_arb_chnl_status { - PMIC_ARB_STATUS_DONE = 1, - PMIC_ARB_STATUS_FAILURE = 2, - PMIC_ARB_STATUS_DENIED = 4, - PMIC_ARB_STATUS_DROPPED = 8, +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; + u64 stats[8]; + struct kthread_work release_work; + struct callback_head rcu; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -enum pmic_arb_cmd_op_code { - PMIC_ARB_OP_EXT_WRITEL = 0, - PMIC_ARB_OP_EXT_READL = 1, - PMIC_ARB_OP_EXT_WRITE = 2, - PMIC_ARB_OP_RESET = 3, - PMIC_ARB_OP_SLEEP = 4, - PMIC_ARB_OP_SHUTDOWN = 5, - PMIC_ARB_OP_WAKEUP = 6, - PMIC_ARB_OP_AUTHENTICATE = 7, - PMIC_ARB_OP_MSTR_READ = 8, - PMIC_ARB_OP_MSTR_WRITE = 9, - PMIC_ARB_OP_EXT_READ = 13, - PMIC_ARB_OP_WRITE = 14, - PMIC_ARB_OP_READ = 15, - PMIC_ARB_OP_ZERO_WRITE = 16, +struct worker_pool { + raw_spinlock_t lock; + int cpu; + int node; + int id; + unsigned int flags; + unsigned long watchdog_ts; + bool cpu_stall; + int nr_running; + struct list_head worklist; + int nr_workers; + int nr_idle; + struct list_head idle_list; + struct timer_list idle_timer; + struct work_struct idle_cull_work; + struct timer_list mayday_timer; + struct hlist_head busy_hash[64]; + struct worker *manager; + struct list_head workers; + struct list_head dying_workers; + struct completion *detach_completion; + struct ida worker_ida; + struct workqueue_attrs *attrs; + struct hlist_node hash_node; + int refcnt; + struct callback_head rcu; }; -enum qpnpint_regs { - QPNPINT_REG_RT_STS = 16, - QPNPINT_REG_SET_TYPE = 17, - QPNPINT_REG_POLARITY_HIGH = 18, - QPNPINT_REG_POLARITY_LOW = 19, - QPNPINT_REG_LATCHED_CLR = 20, - QPNPINT_REG_EN_SET = 21, - QPNPINT_REG_EN_CLR = 22, - QPNPINT_REG_LATCHED_STS = 24, +enum wq_affn_scope { + WQ_AFFN_DFL = 0, + WQ_AFFN_CPU = 1, + WQ_AFFN_SMT = 2, + WQ_AFFN_CACHE = 3, + WQ_AFFN_NUMA = 4, + WQ_AFFN_SYSTEM = 5, + WQ_AFFN_NR_TYPES = 6, }; -struct spmi_pmic_arb_qpnpint_type { - u8 type; - u8 polarity_high; - u8 polarity_low; +struct workqueue_attrs { + int nice; + cpumask_var_t cpumask; + cpumask_var_t __pod_cpumask; + bool affn_strict; + enum wq_affn_scope affn_scope; + bool ordered; }; -enum cavium_mdiobus_mode { - UNINIT = 0, - C22 = 1, - C45 = 2, +struct wq_device { + struct workqueue_struct *wq; + struct device dev; }; -struct cavium_mdiobus; +typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *); -struct thunder_mdiobus_nexus { - void *bar0; - struct cavium_mdiobus *buses[4]; +typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *); + +typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *); + +typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t); + +struct wq_pod_type { + int nr_pods; + cpumask_var_t *pod_cpus; + int *pod_node; + int *cpu_pod; }; -struct cavium_mdiobus { - struct mii_bus *mii_bus; - void *register_base; - enum cavium_mdiobus_mode mode; +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 = 75000, + MAYDAY_INITIAL_TIMEOUT = 2, + MAYDAY_INTERVAL = 25, + CREATE_COOLDOWN = 250, + RESCUER_NICE_LEVEL = -20, + HIGHPRI_NICE_LEVEL = -20, + WQ_NAME_LEN = 24, }; -struct cvmx_smix_en_s { - u64 en: 1; - u64 reserved_1_63: 63; +enum pool_workqueue_stats { + PWQ_STAT_STARTED = 0, + PWQ_STAT_COMPLETED = 1, + PWQ_STAT_CPU_TIME = 2, + PWQ_STAT_CPU_INTENSIVE = 3, + PWQ_STAT_CM_WAKEUP = 4, + PWQ_STAT_REPATRIATED = 5, + PWQ_STAT_MAYDAY = 6, + PWQ_STAT_RESCUED = 7, + PWQ_NR_STATS = 8, }; -union cvmx_smix_en { - u64 u64; - struct cvmx_smix_en_s s; +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]; }; -enum forward_type { - FILTER_ACTION_TYPE_PSFP = 1, - FILTER_ACTION_TYPE_ACL = 2, - FILTER_ACTION_TYPE_BOTH = 3, +struct trace_event_raw_workqueue_activate_work { + struct trace_entry ent; + void *work; + char __data[0]; }; -struct actions_fwd { - u64 actions; - u64 keys; - enum forward_type output; +struct trace_event_raw_workqueue_execute_start { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; }; -struct enetc_psfp { - unsigned long dev_bitmap; - unsigned long *psfp_sfi_bitmap; - struct hlist_head stream_list; - struct hlist_head psfp_filter_list; - struct hlist_head psfp_gate_list; - struct hlist_head psfp_meter_list; - spinlock_t psfp_lock; +struct trace_event_raw_workqueue_execute_end { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; }; -enum tc_taprio_qopt_cmd { - TAPRIO_CMD_REPLACE = 0, - TAPRIO_CMD_DESTROY = 1, - TAPRIO_CMD_STATS = 2, - TAPRIO_CMD_QUEUE_STATS = 3, +struct wq_barrier { + struct work_struct work; + struct completion done; + struct task_struct *task; }; -enum bdcr_cmd_class { - BDCR_CMD_UNSPEC = 0, - BDCR_CMD_MAC_FILTER = 1, - BDCR_CMD_VLAN_FILTER = 2, - BDCR_CMD_RSS = 3, - BDCR_CMD_RFS = 4, - BDCR_CMD_PORT_GCL = 5, - BDCR_CMD_RECV_CLASSIFIER = 6, - BDCR_CMD_STREAM_IDENTIFY = 7, - BDCR_CMD_STREAM_FILTER = 8, - BDCR_CMD_STREAM_GCL = 9, - BDCR_CMD_FLOW_METER = 10, - __BDCR_CMD_MAX_LEN = 11, - BDCR_CMD_MAX_LEN = 10, +struct cwt_wait { + wait_queue_entry_t wait; + struct work_struct *work; }; -enum flow_dissector_key_id { - FLOW_DISSECTOR_KEY_CONTROL = 0, - FLOW_DISSECTOR_KEY_BASIC = 1, - FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, - FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, - FLOW_DISSECTOR_KEY_PORTS = 4, - FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, - FLOW_DISSECTOR_KEY_ICMP = 6, - FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, - FLOW_DISSECTOR_KEY_TIPC = 8, - FLOW_DISSECTOR_KEY_ARP = 9, - FLOW_DISSECTOR_KEY_VLAN = 10, - FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, - FLOW_DISSECTOR_KEY_GRE_KEYID = 12, - FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, - FLOW_DISSECTOR_KEY_ENC_KEYID = 14, - FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, - FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, - FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, - FLOW_DISSECTOR_KEY_ENC_PORTS = 18, - FLOW_DISSECTOR_KEY_MPLS = 19, - FLOW_DISSECTOR_KEY_TCP = 20, - FLOW_DISSECTOR_KEY_IP = 21, - FLOW_DISSECTOR_KEY_CVLAN = 22, - FLOW_DISSECTOR_KEY_ENC_IP = 23, - FLOW_DISSECTOR_KEY_ENC_OPTS = 24, - FLOW_DISSECTOR_KEY_META = 25, - FLOW_DISSECTOR_KEY_CT = 26, - FLOW_DISSECTOR_KEY_HASH = 27, - FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28, - FLOW_DISSECTOR_KEY_PPPOE = 29, - FLOW_DISSECTOR_KEY_L2TPV3 = 30, - FLOW_DISSECTOR_KEY_CFM = 31, - FLOW_DISSECTOR_KEY_MAX = 32, -}; - -enum streamid_type { - STREAMID_TYPE_RESERVED = 0, - STREAMID_TYPE_NULL = 1, - STREAMID_TYPE_SMAC = 2, +struct work_for_cpu { + struct work_struct work; + long (*fn)(void *); + void *arg; + long ret; }; -enum streamid_vlan_tagged { - STREAMID_VLAN_RESERVED = 0, - STREAMID_VLAN_TAGGED = 1, - STREAMID_VLAN_UNTAGGED = 2, - STREAMID_VLAN_ALL = 3, +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 gce { - __le32 period; - u8 gate; - u8 res[3]; +struct trace_event_data_offsets_workqueue_queue_work { + u32 workqueue; }; -struct enetc_psfp_filter { - u32 index; - s32 handle; - s8 prio; - u32 maxsdu; - u32 gate_id; - s32 meter_id; - refcount_t refcount; - struct hlist_node node; +struct pr_cont_work_struct { + bool comma; + work_func_t func; + long ctr; }; -struct enetc_psfp_meter { - u32 index; - u32 cir; - u32 cbs; - refcount_t refcount; - struct hlist_node node; -}; +struct trace_event_data_offsets_workqueue_activate_work {}; -struct enetc_psfp_gate { - u32 index; - s8 init_ipv; - u64 basetime; - u64 cycletime; - u64 cycletimext; - u32 num_entries; - refcount_t refcount; - struct hlist_node node; - struct action_gate_entry entries[0]; -}; +struct trace_event_data_offsets_workqueue_execute_start {}; -struct enetc_streamid { - u32 index; - union { - u8 src_mac[6]; - u8 dst_mac[6]; - }; - u8 filtertype; - u16 vid; - u8 tagged; - s32 handle; -}; +struct trace_event_data_offsets_workqueue_execute_end {}; -struct enetc_stream_filter { - struct enetc_streamid sid; - u32 sfi_index; - u32 sgi_index; - u32 flags; - u32 fmi_index; - struct flow_stats stats; - struct hlist_node node; +struct execute_work { + struct work_struct work; }; -struct tc_taprio_sched_entry { - u8 command; - u32 gate_mask; - u32 interval; +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 tc_taprio_qopt_stats { - u64 window_drops; - u64 tx_overruns; +struct swsusp_extent { + struct rb_node node; + unsigned long start; + unsigned long end; }; -struct tc_taprio_qopt_queue_stats { - int queue; - struct tc_taprio_qopt_stats stats; +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 tc_taprio_qopt_offload { - enum tc_taprio_qopt_cmd cmd; - union { - struct tc_taprio_qopt_stats stats; - struct tc_taprio_qopt_queue_stats queue_stats; - struct { - struct tc_mqprio_qopt_offload mqprio; - struct netlink_ext_ack *extack; - ktime_t base_time; - u64 cycle_time; - u64 cycle_time_extension; - u32 max_sdu[16]; - size_t num_entries; - struct tc_taprio_sched_entry entries[0]; - }; - }; +struct swap_map_page { + sector_t entries[511]; + sector_t next_swap; }; -struct tgs_gcl_data { - __le32 btl; - __le32 bth; - __le32 ct; - __le32 cte; - struct gce entry[0]; -}; +struct swap_map_page_list; -struct psfp_streamfilter_counters { - u64 matching_frames_count; - u64 passing_frames_count; - u64 not_passing_frames_count; - u64 passing_sdu_count; - u64 not_passing_sdu_count; - u64 red_frames_count; +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 flow_dissector_key_eth_addrs; - -struct flow_match_eth_addrs { - struct flow_dissector_key_eth_addrs *key; - struct flow_dissector_key_eth_addrs *mask; +struct swap_map_page_list { + struct swap_map_page *map; + struct swap_map_page_list *next; }; -struct flow_dissector_key_eth_addrs { - unsigned char dst[6]; - unsigned char src[6]; +struct hib_bio_batch { + atomic_t count; + wait_queue_head_t wait; + blk_status_t error; + struct blk_plug plug; }; -struct flow_match_vlan { - struct flow_dissector_key_vlan *key; - struct flow_dissector_key_vlan *mask; +struct snapshot_handle { + unsigned int cur; + void *buffer; + int sync_read; }; -struct sfi_counter_data { - u32 matchl; - u32 matchh; - u32 msdu_dropl; - u32 msdu_droph; - u32 stream_gate_dropl; - u32 stream_gate_droph; - u32 flow_meter_dropl; - u32 flow_meter_droph; +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 sgce { - u32 interval; - u8 msdu[3]; - u8 multi; +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 sgcl_data { - u32 btl; - u32 bth; - u32 ct; - u32 cte; - struct sgce sgcl[0]; +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 tc_cbs_qopt_offload { - u8 enable; - s32 queue; - s32 hicredit; - s32 locredit; - s32 idleslope; - s32 sendslope; +struct vdso_timestamp { + u64 sec; + u64 nsec; }; -struct tc_etf_qopt_offload { - u8 enable; - s32 queue; +struct timens_offset { + s64 sec; + u64 nsec; }; -struct tc_taprio_caps { - bool supports_queue_max_sdu: 1; - bool gate_mask_per_txq: 1; - bool broken_mqprio: 1; -}; +struct arch_vdso_data {}; -struct streamid_data { +struct vdso_data { + u32 seq; + s32 clock_mode; + u64 cycle_last; + u64 mask; + u32 mult; + u32 shift; union { - u8 dmac[6]; - u8 smac[6]; + struct vdso_timestamp basetime[12]; + struct timens_offset offset[12]; }; - u16 vid_vidm_tg; + s32 tz_minuteswest; + s32 tz_dsttime; + u32 hrtimer_res; + u32 __unused; + struct arch_vdso_data arch_data; }; -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 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 smc91x_platdata { - unsigned long flags; - unsigned char leda; - unsigned char ledb; - bool pxa_u16_align4; +struct timekeeper { + struct tk_read_base tkr_mono; + struct tk_read_base tkr_raw; + u64 xtime_sec; + unsigned long ktime_sec; + struct timespec64 wall_to_monotonic; + ktime_t offs_real; + ktime_t offs_boot; + ktime_t offs_tai; + s32 tai_offset; + unsigned int clock_was_set_seq; + u8 cs_was_changed_seq; + ktime_t next_leap_ktime; + u64 raw_sec; + struct timespec64 monotonic_to_boot; + u64 cycle_interval; + u64 xtime_interval; + s64 xtime_remainder; + u64 raw_interval; + u64 ntp_tick; + s64 ntp_error; + u32 ntp_error_shift; + u32 ntp_err_mult; + u32 skip_second_overflow; }; -struct smc_local { - struct sk_buff *pending_tx_skb; - struct tasklet_struct tx_task; - struct gpio_desc *power_gpio; - struct gpio_desc *reset_gpio; - int version; - int tcr_cur_mode; - int rcr_cur_mode; - int rpc_cur_mode; - int ctl_rfduplx; - int ctl_rspeed; - u32 msg_enable; - u32 phy_type; - struct mii_if_info mii; - struct work_struct phy_configure; - struct net_device *dev; - int work_pending; - spinlock_t lock; - struct dma_chan *dma_chan; - void *base; - void *datacs; - int io_shift; - bool half_word_align4; - struct smc91x_platdata cfg; +struct proc_timens_offset { + int clockid; + struct timespec64 val; }; -struct ep_device { - struct usb_endpoint_descriptor *desc; - struct usb_device *udev; - struct device dev; +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 dwc3_haps { - struct platform_device *dwc3; - struct pci_dev *pci; +struct __kernel_old_timeval { + __kernel_long_t tv_sec; + __kernel_long_t tv_usec; }; -enum mtu3_speed { - MTU3_SPEED_INACTIVE = 0, - MTU3_SPEED_FULL = 1, - MTU3_SPEED_HIGH = 3, - MTU3_SPEED_SUPER = 4, - MTU3_SPEED_SUPER_PLUS = 5, +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; }; -enum { - MUSB_CONTROLLER_MHDRC = 0, - MUSB_CONTROLLER_HDRC = 1, +struct trace_bprintk_fmt { + struct list_head list; + const char *fmt; }; -struct musb_pending_work { - int (*callback)(struct musb *, void *); - void *data; - struct list_head node; -}; +struct dyn_event; -struct musb_hdrc_platform_data { - u8 mode; - const char *clock; - int (*set_vbus)(struct device *, int); - u8 power; - u8 min_power; - u8 potpgt; - unsigned int extvbus: 1; - const struct musb_hdrc_config *config; - void *board_data; - const void *platform_ops; +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 gpio_keys_button { - unsigned int code; - int gpio; - int active_low; - const char *desc; - unsigned int type; - int wakeup; - int wakeup_event_action; - int debounce_interval; - bool can_disable; - int value; - unsigned int irq; +struct dyn_event { + struct list_head list; + struct dyn_event_operations *ops; }; -struct gpio_button_data { - const struct gpio_keys_button *button; - struct input_dev *input; - struct gpio_desc *gpiod; - unsigned short *code; - struct hrtimer release_timer; - unsigned int release_delay; - struct delayed_work work; - struct hrtimer debounce_timer; - unsigned int software_debounce; - unsigned int irq; - unsigned int wakeup_trigger_type; - spinlock_t lock; - bool disabled; - bool key_pressed; - bool suspended; - bool debounce_use_hrtimer; +struct uprobe_cpu_buffer { + struct mutex mutex; + void *buf; }; -struct gpio_keys_platform_data; - -struct gpio_keys_drvdata { - const struct gpio_keys_platform_data *pdata; - struct input_dev *input; - struct mutex disable_lock; - unsigned short *keymap; - struct gpio_button_data data[0]; +enum uprobe_filter_ctx { + UPROBE_FILTER_REGISTER = 0, + UPROBE_FILTER_UNREGISTER = 1, + UPROBE_FILTER_MMAP = 2, }; -struct gpio_keys_platform_data { - const struct gpio_keys_button *buttons; - int nbuttons; - unsigned int poll_interval; - unsigned int rep: 1; - int (*enable)(struct device *); - void (*disable)(struct device *); - const char *name; +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, }; -struct i2c_smbus_alert { - struct work_struct alert; - struct i2c_client *ara; +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 alert_data { - unsigned short addr; - enum i2c_alert_protocol type; - unsigned int data; +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 i2c_slave_host_notify_status { - u8 index; - u8 addr; +struct uprobe_trace_entry_head { + struct trace_entry ent; + unsigned long vaddr[0]; }; -struct i2c_smbus_alert_setup { - int irq; +struct uprobe_dispatch_data { + struct trace_uprobe *tu; + unsigned long bp_addr; }; -struct pps_kinfo { - __u32 assert_sequence; - __u32 clear_sequence; - struct pps_ktime assert_tu; - struct pps_ktime clear_tu; - int current_mode; -}; +typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); -struct pps_fdata { - struct pps_kinfo info; - struct pps_ktime timeout; +struct bpf_trace_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + bool is_uprobe; }; -struct pps_bind_args { - int tsformat; - int edge; - int consumer; -}; +typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); -struct pps_ktime_compat { - __s64 sec; - __s32 nsec; - __u32 flags; +struct btf_kfunc_hook_filter { + btf_kfunc_filter_t filters[16]; + u32 nr_filters; }; -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 btf_kfunc_set_tab { + struct btf_id_set8 *sets[13]; + struct btf_kfunc_hook_filter hook_filters[13]; +}; -struct pps_fdata_compat { - struct pps_kinfo_compat info; - struct pps_ktime_compat timeout; -} __attribute__((packed)); +struct btf_id_dtor_kfunc { + u32 btf_id; + u32 kfunc_btf_id; +}; -struct mtk_wdt_data { - int toprgu_sw_rst_num; +struct btf_id_dtor_kfunc_tab { + u32 cnt; + struct btf_id_dtor_kfunc dtors[0]; }; -struct mtk_wdt_dev { - struct watchdog_device wdt_dev; - void *wdt_base; - spinlock_t lock; - struct reset_controller_dev rcdev; - bool disable_wdt_extrst; - bool reset_by_toprgu; +struct btf_struct_metas { + u32 cnt; + struct btf_struct_meta types[0]; }; -struct nvmem_cell; +struct bpf_sock; -struct qcom_cpufreq_drv; +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 qcom_cpufreq_match_data { - int (*get_version)(struct device *, struct nvmem_cell *, char **, struct qcom_cpufreq_drv *); - const char **genpd_names; +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 qcom_cpufreq_drv { - int *opp_tokens; - u32 versions; - const struct qcom_cpufreq_match_data *data; +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; + }; }; -typedef void sdio_irq_handler_t(struct sdio_func *); +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 sdio_func { - struct mmc_card *card; - struct device dev; - sdio_irq_handler_t *irq_handler; - unsigned int num; - unsigned char class; - unsigned short vendor; - unsigned short device; - unsigned int max_blksize; - unsigned int cur_blksize; - unsigned int enable_timeout; - unsigned int state; - u8 *tmpbuf; - u8 major_rev; - u8 minor_rev; - unsigned int num_info; - const char **info; - struct sdio_func_tuple *tuples; +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 sdio_func_tuple { - struct sdio_func_tuple *next; - unsigned char code; - unsigned char size; - unsigned char data[0]; +struct bpf_perf_event_data { + bpf_user_pt_regs_t regs; + __u64 sample_period; + __u64 addr; }; -struct sunxi_mmc_clk_delay; +struct bpf_raw_tracepoint_args { + __u64 args[0]; +}; -struct sunxi_mmc_cfg { - u32 idma_des_size_bits; - u32 idma_des_shift; - const struct sunxi_mmc_clk_delay *clk_delays; - bool can_calibrate; - bool mask_data0; - bool needs_new_timings; - bool ccu_has_timings_switch; +struct bpf_cgroup_dev_ctx { + __u32 access_type; + __u32 major; + __u32 minor; }; -struct sunxi_mmc_clk_delay { - u32 output; - u32 sample; +struct bpf_sysctl { + __u32 write; + __u32 file_pos; }; -struct sunxi_idma_des { - __le32 config; - __le32 buf_size; - __le32 buf_addr_ptr1; - __le32 buf_addr_ptr2; +struct bpf_sysctl_kern { + struct ctl_table_header *head; + struct ctl_table *table; + void *cur_val; + size_t cur_len; + void *new_val; + size_t new_len; + int new_updated; + int write; + loff_t *ppos; + u64 tmp_reg; }; -struct sunxi_mmc_host { - struct device *dev; - struct mmc_host *mmc; - struct reset_control *reset; - const struct sunxi_mmc_cfg *cfg; - void *reg_base; - struct clk *clk_ahb; - struct clk *clk_mmc; - struct clk *clk_sample; - struct clk *clk_output; - spinlock_t lock; - int irq; - u32 int_sum; - u32 sdio_imask; - dma_addr_t sg_dma; - void *sg_cpu; - bool wait_dma; - struct mmc_request *mrq; - struct mmc_request *manual_stop_mrq; - int ferror; - bool vqmmc_enabled; - bool use_new_timings; +struct bpf_sockopt { + union { + struct bpf_sock *sk; + }; + union { + void *optval; + }; + union { + void *optval_end; + }; + __s32 level; + __s32 optname; + __s32 optlen; + __s32 retval; }; -enum qcom_scm_convention { - SMC_CONVENTION_UNKNOWN = 0, - SMC_CONVENTION_LEGACY = 1, - SMC_CONVENTION_ARM_32 = 2, - SMC_CONVENTION_ARM_64 = 3, +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 qcom_scm { - struct device *dev; - struct clk *core_clk; - struct clk *iface_clk; - struct clk *bus_clk; - struct icc_path *path; - struct completion waitq_comp; - struct reset_controller_dev reset; - struct mutex scm_bw_lock; - int scm_vote_count; - u64 dload_mode_addr; +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; + }; }; -enum qcom_scm_arg_types { - QCOM_SCM_VAL = 0, - QCOM_SCM_RO = 1, - QCOM_SCM_RW = 2, - QCOM_SCM_BUFVAL = 3, +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 qcom_scm_ocmem_client { - QCOM_SCM_OCMEM_UNUSED_ID = 0, - QCOM_SCM_OCMEM_GRAPHICS_ID = 1, - QCOM_SCM_OCMEM_VIDEO_ID = 2, - QCOM_SCM_OCMEM_LP_AUDIO_ID = 3, - QCOM_SCM_OCMEM_SENSORS_ID = 4, - QCOM_SCM_OCMEM_OTHER_OS_ID = 5, - QCOM_SCM_OCMEM_DEBUG_ID = 6, +struct bpf_nf_ctx { + const struct nf_hook_state *state; + struct sk_buff *skb; }; -enum qcom_scm_ice_cipher { - QCOM_SCM_ICE_CIPHER_AES_128_XTS = 0, - QCOM_SCM_ICE_CIPHER_AES_128_CBC = 1, - QCOM_SCM_ICE_CIPHER_AES_256_XTS = 3, - QCOM_SCM_ICE_CIPHER_AES_256_CBC = 4, +struct bpf_ctx_convert { + struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog; + struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern; + struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog; + struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern; + struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog; + struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern; + struct xdp_md BPF_PROG_TYPE_XDP_prog; + struct xdp_buff BPF_PROG_TYPE_XDP_kern; + struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog; + struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern; + struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog; + struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern; + struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog; + struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog; + struct sk_buff BPF_PROG_TYPE_LWT_IN_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog; + struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog; + struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog; + struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern; + struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog; + struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern; + struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog; + struct sk_buff BPF_PROG_TYPE_SK_SKB_kern; + struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog; + struct sk_msg BPF_PROG_TYPE_SK_MSG_kern; + struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog; + struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern; + bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog; + struct pt_regs BPF_PROG_TYPE_KPROBE_kern; + __u64 BPF_PROG_TYPE_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_TRACEPOINT_kern; + struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog; + struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern; + void *BPF_PROG_TYPE_TRACING_prog; + void *BPF_PROG_TYPE_TRACING_kern; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern; + struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog; + struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern; + struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog; + struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern; + struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog; + struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern; + struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog; + struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern; + void *BPF_PROG_TYPE_STRUCT_OPS_prog; + void *BPF_PROG_TYPE_STRUCT_OPS_kern; + void *BPF_PROG_TYPE_EXT_prog; + void *BPF_PROG_TYPE_EXT_kern; + void *BPF_PROG_TYPE_LSM_prog; + void *BPF_PROG_TYPE_LSM_kern; + void *BPF_PROG_TYPE_SYSCALL_prog; + void *BPF_PROG_TYPE_SYSCALL_kern; + struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_prog; + struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_kern; }; -struct qcom_scm_desc { - u32 svc; - u32 cmd; - u32 arginfo; - u64 args[10]; - u32 owner; +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 qcom_scm_res { - u64 result[3]; +struct resolve_vertex { + const struct btf_type *t; + u32 type_id; + u16 next_member; }; -struct qcom_scm_pas_metadata { - void *ptr; - dma_addr_t phys; - ssize_t size; +enum verifier_phase { + CHECK_META = 0, + CHECK_TYPE = 1, }; -struct qcom_scm_vmperm { - int vmid; - int perm; +enum resolve_mode { + RESOLVE_TBD = 0, + RESOLVE_PTR = 1, + RESOLVE_STRUCT_OR_ARRAY = 2, }; -struct qcom_scm_mem_map_info { - __le64 mem_addr; - __le64 mem_size; +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 qcom_scm_current_perm_info { - __le32 vmid; - __le32 perm; - __le64 ctx; - __le32 ctx_size; - __le32 unused; +struct btf_show { + u64 flags; + void *target; + void (*showfn)(struct btf_show *, const char *, va_list); + 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 qcom_scm_hdcp_req { - u32 addr; - u32 val; +struct bpf_cand_cache { + const char *name; + u32 name_len; + u16 kind; + u16 cnt; + struct { + const struct btf *btf; + u32 id; + } cands[0]; }; -typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool); +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 of_timer_base { - void *base; - const char *name; - int index; +enum bpf_struct_walk_result { + WALK_SCALAR = 0, + WALK_PTR = 1, + WALK_STRUCT = 2, }; -struct of_timer_irq { - int irq; - int index; - int percpu; - const char *name; - unsigned long flags; - irq_handler_t handler; +enum btf_func_linkage { + BTF_FUNC_STATIC = 0, + BTF_FUNC_GLOBAL = 1, + BTF_FUNC_EXTERN = 2, }; -struct of_timer_clk { - struct clk *clk; - const char *name; - int index; - unsigned long rate; - unsigned long period; +enum { + BTF_F_COMPACT = 1, + BTF_F_NONAME = 2, + BTF_F_PTR_RAW = 4, + BTF_F_ZERO = 8, }; -struct timer_of { - unsigned int flags; - struct device_node *np; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct clock_event_device clkevt; - struct of_timer_base of_base; - struct of_timer_irq of_irq; - struct of_timer_clk of_clk; - void *private_data; - long: 64; - long: 64; +enum { + BTF_MODULE_F_LIVE = 1, }; -enum imx_mu_type { - IMX_MU_V1 = 0, - IMX_MU_V2 = 2, - IMX_MU_V2_S4 = 32768, - IMX_MU_V2_IRQ = 65536, +enum btf_kfunc_hook { + BTF_KFUNC_HOOK_COMMON = 0, + BTF_KFUNC_HOOK_XDP = 1, + BTF_KFUNC_HOOK_TC = 2, + BTF_KFUNC_HOOK_STRUCT_OPS = 3, + BTF_KFUNC_HOOK_TRACING = 4, + BTF_KFUNC_HOOK_SYSCALL = 5, + BTF_KFUNC_HOOK_FMODRET = 6, + BTF_KFUNC_HOOK_CGROUP_SKB = 7, + BTF_KFUNC_HOOK_SCHED_ACT = 8, + BTF_KFUNC_HOOK_SK_SKB = 9, + BTF_KFUNC_HOOK_SOCKET_FILTER = 10, + BTF_KFUNC_HOOK_LWT = 11, + BTF_KFUNC_HOOK_NETFILTER = 12, + BTF_KFUNC_HOOK_MAX = 13, }; -struct imx_mu_priv; +enum { + BTF_KFUNC_SET_MAX_CNT = 256, + BTF_DTOR_KFUNC_MAX_CNT = 256, + BTF_KFUNC_FILTER_MAX_CNT = 16, +}; -struct imx_mu_con_priv; +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 imx_mu_dcfg { - int (*tx)(struct imx_mu_priv *, struct imx_mu_con_priv *, void *); - int (*rx)(struct imx_mu_priv *, struct imx_mu_con_priv *); - int (*rxdb)(struct imx_mu_priv *, struct imx_mu_con_priv *); - void (*init)(struct imx_mu_priv *); - enum imx_mu_type type; - u32 xTR; - u32 xRR; - u32 xSR[4]; - u32 xCR[5]; +enum { + BTF_FIELD_IGNORE = 0, + BTF_FIELD_FOUND = 1, }; -enum imx_mu_chan_type { - IMX_MU_TYPE_TX = 0, - IMX_MU_TYPE_RX = 1, - IMX_MU_TYPE_TXDB = 2, - IMX_MU_TYPE_RXDB = 3, - IMX_MU_TYPE_RST = 4, +enum visit_state { + NOT_VISITED = 0, + VISITED = 1, + RESOLVED = 2, }; -struct imx_mu_con_priv { - unsigned int idx; - char irq_desc[20]; - enum imx_mu_chan_type type; - struct mbox_chan *chan; - struct tasklet_struct txdb_tasklet; +enum { + BTF_VAR_STATIC = 0, + BTF_VAR_GLOBAL_ALLOCATED = 1, + BTF_VAR_GLOBAL_EXTERN = 2, }; -struct imx_mu_priv { - struct device *dev; - void *base; - void *msg; - spinlock_t xcr_lock; - struct mbox_controller mbox; - struct mbox_chan mbox_chans[17]; - struct imx_mu_con_priv con_priv[17]; - const struct imx_mu_dcfg *dcfg; - struct clk *clk; - int irq[17]; - bool suspend; - u32 xcr[5]; - bool side_b; +struct btf_module { + struct list_head list; + struct module *module; + struct btf *btf; + struct bin_attribute *sysfs_attr; + int flags; }; -enum imx_mu_xcr { - IMX_MU_CR = 0, - IMX_MU_GIER = 1, - IMX_MU_GCR = 2, - IMX_MU_TCR = 3, - IMX_MU_RCR = 4, - IMX_MU_xCR_MAX = 5, +typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); + +struct btf_decl_tag { + __s32 component_idx; }; -enum imx_mu_xsr { - IMX_MU_SR = 0, - IMX_MU_GSR = 1, - IMX_MU_TSR = 2, - IMX_MU_RSR = 3, - IMX_MU_xSR_MAX = 4, +struct btf_var_secinfo { + __u32 type; + __u32 offset; + __u32 size; }; -struct imx_s4_rpc_msg { - uint8_t ver; - uint8_t size; - uint8_t cmd; - uint8_t tag; +struct btf_sec_info { + u32 off; + u32 len; }; -struct imx_s4_rpc_msg_max { - struct imx_s4_rpc_msg hdr; - u32 data[254]; +struct btf_enum { + __u32 name_off; + __s32 val; }; -struct imx_sc_rpc_msg_max { - struct imx_sc_rpc_msg hdr; - u32 data[30]; +struct btf_var { + __u32 linkage; }; -enum iio_event_type { - IIO_EV_TYPE_THRESH = 0, - IIO_EV_TYPE_MAG = 1, - IIO_EV_TYPE_ROC = 2, - IIO_EV_TYPE_THRESH_ADAPTIVE = 3, - IIO_EV_TYPE_MAG_ADAPTIVE = 4, - IIO_EV_TYPE_CHANGE = 5, - IIO_EV_TYPE_MAG_REFERENCED = 6, - IIO_EV_TYPE_GESTURE = 7, +struct btf_enum64 { + __u32 name_off; + __u32 val_lo32; + __u32 val_hi32; }; -enum iio_event_direction { - IIO_EV_DIR_EITHER = 0, - IIO_EV_DIR_RISING = 1, - IIO_EV_DIR_FALLING = 2, - IIO_EV_DIR_NONE = 3, - IIO_EV_DIR_SINGLETAP = 4, - IIO_EV_DIR_DOUBLETAP = 5, +struct btf_show_snprintf { + struct btf_show show; + int len_left; + int len; }; -enum iio_event_info { - IIO_EV_INFO_ENABLE = 0, - IIO_EV_INFO_VALUE = 1, - IIO_EV_INFO_HYSTERESIS = 2, - IIO_EV_INFO_PERIOD = 3, - IIO_EV_INFO_HIGH_PASS_FILTER_3DB = 4, - IIO_EV_INFO_LOW_PASS_FILTER_3DB = 5, - IIO_EV_INFO_TIMEOUT = 6, - IIO_EV_INFO_RESET_TIMEOUT = 7, - IIO_EV_INFO_TAP2_MIN_DELAY = 8, +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 iio_dev; +typedef int (*cmp_r_func_t)(const void *, const void *, const void *); + +typedef void (*swap_r_func_t)(void *, void *, int, const void *); -struct iio_chan_spec; +struct btf_id_set { + u32 cnt; + u32 ids[0]; +}; -struct iio_trigger; +struct bpf_core_ctx { + struct bpf_verifier_log *log; + const struct btf *btf; +}; -struct iio_info { - const struct attribute_group *event_attrs; - const struct attribute_group *attrs; - int (*read_raw)(struct iio_dev *, const struct iio_chan_spec *, int *, int *, long); - int (*read_raw_multi)(struct iio_dev *, const struct iio_chan_spec *, int, int *, int *, long); - int (*read_avail)(struct iio_dev *, const struct iio_chan_spec *, const int **, int *, int *, long); - int (*write_raw)(struct iio_dev *, const struct iio_chan_spec *, int, int, long); - int (*read_label)(struct iio_dev *, const struct iio_chan_spec *, char *); - int (*write_raw_get_fmt)(struct iio_dev *, const struct iio_chan_spec *, long); - int (*read_event_config)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction); - int (*write_event_config)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, int); - int (*read_event_value)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, enum iio_event_info, int *, int *); - int (*write_event_value)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, enum iio_event_info, int, int); - int (*validate_trigger)(struct iio_dev *, struct iio_trigger *); - int (*update_scan_mode)(struct iio_dev *, const unsigned long *); - int (*debugfs_reg_access)(struct iio_dev *, unsigned int, unsigned int, unsigned int *); - int (*fwnode_xlate)(struct iio_dev *, const struct fwnode_reference_args *); - int (*hwfifo_set_watermark)(struct iio_dev *, unsigned int); - int (*hwfifo_flush_to_buffer)(struct iio_dev *, unsigned int); +struct bpf_core_relo { + __u32 insn_off; + __u32 type_id; + __u32 access_str_off; + enum bpf_core_relo_kind kind; }; -struct iio_buffer; +struct bpf_core_cand; -struct iio_poll_func; +struct bpf_core_cand_list { + struct bpf_core_cand *cands; + int len; +}; -struct iio_buffer_setup_ops; +struct bpf_core_cand { + const struct btf *btf; + __u32 id; +}; -struct iio_dev { - int modes; - struct device dev; - struct iio_buffer *buffer; - int scan_bytes; - const unsigned long *available_scan_masks; - unsigned int masklength; - const unsigned long *active_scan_mask; - bool scan_timestamp; - struct iio_trigger *trig; - struct iio_poll_func *pollfunc; - struct iio_poll_func *pollfunc_event; - const struct iio_chan_spec *channels; - int num_channels; +struct bpf_core_accessor { + __u32 type_id; + __u32 idx; const char *name; - const char *label; - const struct iio_info *info; - const struct iio_buffer_setup_ops *setup_ops; - void *priv; }; -enum iio_chan_type { - IIO_VOLTAGE = 0, - IIO_CURRENT = 1, - IIO_POWER = 2, - IIO_ACCEL = 3, - IIO_ANGL_VEL = 4, - IIO_MAGN = 5, - IIO_LIGHT = 6, - IIO_INTENSITY = 7, - IIO_PROXIMITY = 8, - IIO_TEMP = 9, - IIO_INCLI = 10, - IIO_ROT = 11, - IIO_ANGL = 12, - IIO_TIMESTAMP = 13, - IIO_CAPACITANCE = 14, - IIO_ALTVOLTAGE = 15, - IIO_CCT = 16, - IIO_PRESSURE = 17, - IIO_HUMIDITYRELATIVE = 18, - IIO_ACTIVITY = 19, - IIO_STEPS = 20, - IIO_ENERGY = 21, - IIO_DISTANCE = 22, - IIO_VELOCITY = 23, - IIO_CONCENTRATION = 24, - IIO_RESISTANCE = 25, - IIO_PH = 26, - IIO_UVINDEX = 27, - IIO_ELECTRICALCONDUCTIVITY = 28, - IIO_COUNT = 29, - IIO_INDEX = 30, - IIO_GRAVITY = 31, - IIO_POSITIONRELATIVE = 32, - IIO_PHASE = 33, - IIO_MASSCONCENTRATION = 34, +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; }; -enum iio_endian { - IIO_CPU = 0, - IIO_BE = 1, - IIO_LE = 2, +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 iio_event_spec; - -struct iio_chan_spec_ext_info; +struct bpf_btf_info { + __u64 btf; + __u32 btf_size; + __u32 id; + __u64 name; + __u32 name_len; + __u32 kernel_btf; +}; -struct iio_chan_spec { - enum iio_chan_type type; - int channel; - int channel2; - unsigned long address; - int scan_index; - struct { - char sign; - u8 realbits; - u8 storagebits; - u8 shift; - u8 repeat; - enum iio_endian endianness; - } scan_type; - long info_mask_separate; - long info_mask_separate_available; - long info_mask_shared_by_type; - long info_mask_shared_by_type_available; - long info_mask_shared_by_dir; - long info_mask_shared_by_dir_available; - long info_mask_shared_by_all; - long info_mask_shared_by_all_available; - const struct iio_event_spec *event_spec; - unsigned int num_event_specs; - const struct iio_chan_spec_ext_info *ext_info; - const char *extend_name; - const char *datasheet_name; - unsigned int modified: 1; - unsigned int indexed: 1; - unsigned int output: 1; - unsigned int differential: 1; +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 iio_event_spec { - enum iio_event_type type; - enum iio_event_direction dir; - unsigned long mask_separate; - unsigned long mask_shared_by_type; - unsigned long mask_shared_by_dir; - unsigned long mask_shared_by_all; +struct vm_unmapped_area_info; + +typedef void (*btf_trace_vm_unmapped_area)(void *, unsigned long, struct vm_unmapped_area_info *); + +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 iio_shared_by { - IIO_SEPARATE = 0, - IIO_SHARED_BY_TYPE = 1, - IIO_SHARED_BY_DIR = 2, - IIO_SHARED_BY_ALL = 3, +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 *); + +enum { + HUGETLB_SHMFS_INODE = 1, + HUGETLB_ANONHUGE_INODE = 2, }; -struct iio_chan_spec_ext_info { - const char *name; - enum iio_shared_by shared; - ssize_t (*read)(struct iio_dev *, uintptr_t, const struct iio_chan_spec *, char *); - ssize_t (*write)(struct iio_dev *, uintptr_t, const struct iio_chan_spec *, const char *, size_t); - uintptr_t private; +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 iio_buffer_setup_ops { - int (*preenable)(struct iio_dev *); - int (*postenable)(struct iio_dev *); - int (*predisable)(struct iio_dev *); - int (*postdisable)(struct iio_dev *); - bool (*validate_scan_mask)(struct iio_dev *, const unsigned long *); +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 exynos_adc; +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 exynos_adc_data { - int num_channels; - bool needs_sclk; - bool needs_adc_phy; - int phy_offset; - u32 mask; - void (*init_hw)(struct exynos_adc *); - void (*exit_hw)(struct exynos_adc *); - void (*clear_irq)(struct exynos_adc *); - void (*start_conv)(struct exynos_adc *, unsigned long); +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 exynos_adc { - struct exynos_adc_data *data; - struct device *dev; - struct input_dev *input; - void *regs; - struct regmap *pmu_map; - struct clk *clk; - struct clk *sclk; - unsigned int irq; - unsigned int tsirq; - unsigned int delay; - struct regulator *vdd; - struct completion completion; - u32 value; - unsigned int version; - bool ts_enabled; - bool read_ts; - u32 ts_x; - u32 ts_y; - struct mutex lock; +struct trace_event_raw_exit_mmap { + struct trace_entry ent; + struct mm_struct *mm; + struct maple_tree *mt; + char __data[0]; }; -enum iio_chan_info_enum { - IIO_CHAN_INFO_RAW = 0, - IIO_CHAN_INFO_PROCESSED = 1, - IIO_CHAN_INFO_SCALE = 2, - IIO_CHAN_INFO_OFFSET = 3, - IIO_CHAN_INFO_CALIBSCALE = 4, - IIO_CHAN_INFO_CALIBBIAS = 5, - IIO_CHAN_INFO_PEAK = 6, - IIO_CHAN_INFO_PEAK_SCALE = 7, - IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW = 8, - IIO_CHAN_INFO_AVERAGE_RAW = 9, - IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY = 10, - IIO_CHAN_INFO_HIGH_PASS_FILTER_3DB_FREQUENCY = 11, - IIO_CHAN_INFO_SAMP_FREQ = 12, - IIO_CHAN_INFO_FREQUENCY = 13, - IIO_CHAN_INFO_PHASE = 14, - IIO_CHAN_INFO_HARDWAREGAIN = 15, - IIO_CHAN_INFO_HYSTERESIS = 16, - IIO_CHAN_INFO_HYSTERESIS_RELATIVE = 17, - IIO_CHAN_INFO_INT_TIME = 18, - IIO_CHAN_INFO_ENABLE = 19, - IIO_CHAN_INFO_CALIBHEIGHT = 20, - IIO_CHAN_INFO_CALIBWEIGHT = 21, - IIO_CHAN_INFO_DEBOUNCE_COUNT = 22, - IIO_CHAN_INFO_DEBOUNCE_TIME = 23, - IIO_CHAN_INFO_CALIBEMISSIVITY = 24, - IIO_CHAN_INFO_OVERSAMPLING_RATIO = 25, - IIO_CHAN_INFO_THERMOCOUPLE_TYPE = 26, - IIO_CHAN_INFO_CALIBAMBIENT = 27, - IIO_CHAN_INFO_ZEROPOINT = 28, +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 s3c2410_ts_mach_info { - int delay; - int presc; - int oversampling_shift; - void (*cfg_gpio)(struct platform_device *); +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 bcm_voter { - struct device *dev; - struct device_node *np; - struct mutex lock; - struct list_head commit_list; - struct list_head ws_list; - struct list_head voter_node; - u32 tcs_wait; -}; +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 {}; enum { - NETNSA_NONE = 0, - NETNSA_NSID = 1, - NETNSA_PID = 2, - NETNSA_FD = 3, - NETNSA_TARGET_NSID = 4, - NETNSA_CURRENT_NSID = 5, - __NETNSA_MAX = 6, + PAGE_WAS_MAPPED = 1, + PAGE_WAS_MLOCKED = 2, }; -struct net_fill_args { - u32 portid; - u32 seq; - int flags; - int cmd; - int nsid; - bool add_ref; - int ref_nsid; +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 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; +struct page_vma_mapped_walk { + unsigned long pfn; + unsigned long nr_pages; + unsigned long pgoff; + struct vm_area_struct *vma; + unsigned long address; + pmd_t *pmd; + pte_t *pte; + spinlock_t *ptl; + unsigned int flags; }; -struct 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 migrate_pages_stats { + int nr_succeeded; + int nr_failed_pages; + int nr_thp_succeeded; + int nr_thp_failed; + int nr_thp_split; + int nr_split; }; -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; +union migration_ptr { + struct anon_vma *anon_vma; + struct address_space *mapping; }; -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; -}; +typedef int filler_t(struct file *, struct folio *); -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 file_dedupe_range_info { + __s64 dest_fd; + __u64 dest_offset; + __u64 bytes_deduped; + __s32 status; + __u32 reserved; }; -struct sk_psock_work_state { - u32 len; - u32 off; +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 sk_msg; +struct core_vma_metadata; -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 delayed_work work; - struct rcu_work rwork; +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 sk_msg_sg { - u32 start; - u32 curr; - u32 end; - u32 size; - u32 copybreak; - unsigned long copy[1]; - struct scatterlist data[19]; +struct core_vma_metadata { + unsigned long start; + unsigned long end; + unsigned long flags; + unsigned long dump_size; + unsigned long pgoff; + struct file *file; }; -struct sk_msg { - struct sk_msg_sg sg; - void *data; - void *data_end; - u32 apply_bytes; - u32 cork_bytes; - u32 flags; - struct sk_buff *skb; - struct sock *sk_redir; - struct sock *sk; - struct list_head list; +struct gnu_property { + u32 pr_type; + u32 pr_datasz; }; -enum __sk_action { - __SK_DROP = 0, - __SK_PASS = 1, - __SK_REDIRECT = 2, - __SK_NONE = 3, -}; +typedef unsigned short __kernel_old_uid_t; -enum sk_psock_state_bits { - SK_PSOCK_TX_ENABLED = 0, - SK_PSOCK_RX_STRP_ENABLED = 1, -}; +typedef __kernel_old_uid_t old_uid_t; -enum { - BPF_F_INGRESS = 1, -}; +typedef unsigned short __kernel_old_gid_t; -struct sk_psock_link { - struct list_head list; - struct bpf_map *map; - void *link_raw; -}; +typedef __kernel_old_gid_t old_gid_t; -struct strp_msg { - int full_len; - int offset; +struct arch_elf_state { + int flags; }; -struct crypto_wait { - struct completion completion; - int err; +struct memelfnote { + const char *name; + int type; + unsigned int datasz; + void *data; }; -struct tls_strparser { - struct sock *sk; - u32 mark: 8; - u32 stopped: 1; - u32 copy_mode: 1; - u32 mixed_decrypted: 1; - u32 msg_ready: 1; - struct strp_msg stm; - struct sk_buff *anchor; - struct work_struct work; -}; +typedef s32 compat_timer_t; -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; -}; +typedef s32 compat_clock_t; -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 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 cipher_context { - char *iv; - char *rec_seq; -}; +typedef struct compat_siginfo compat_siginfo_t; -struct tls_crypto_info { - __u16 version; - __u16 cipher_type; +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 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 compat_elf_siginfo { + compat_int_t si_signo; + compat_int_t si_code; + compat_int_t si_errno; }; -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 old_timeval32 { + old_time32_t tv_sec; + s32 tv_usec; }; -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 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 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]; +typedef unsigned int compat_elf_greg_t; + +typedef compat_elf_greg_t compat_elf_gregset_t[18]; + +struct compat_elf_prstatus { + struct compat_elf_prstatus_common common; + compat_elf_gregset_t pr_reg; + compat_int_t pr_fpvalid; }; -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]; +struct elf_thread_core_info { + struct elf_thread_core_info *next; + struct task_struct *task; + struct compat_elf_prstatus prstatus; + struct memelfnote notes[0]; }; -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 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 tls_context { - struct tls_prot_info prot_info; - u8 tx_conf: 3; - u8 rx_conf: 3; - u8 zerocopy_sendfile: 1; - u8 rx_no_pad: 1; - int (*push_pending_record)(struct sock *, int); - void (*sk_write_space)(struct sock *); - void *priv_ctx_tx; - void *priv_ctx_rx; - struct net_device __attribute__((btf_type_tag("rcu"))) *netdev; - struct cipher_context tx; - struct cipher_context rx; - struct scatterlist *partially_sent_record; - u16 partially_sent_offset; - bool splicing_pages; - bool pending_open_record_frags; - struct mutex tx_lock; - unsigned long flags; - struct proto *sk_proto; - struct sock *sk; - void (*sk_destruct)(struct sock *); - union tls_crypto_context crypto_send; - union tls_crypto_context crypto_recv; - struct list_head list; - refcount_t refcount; - struct callback_head rcu; +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; }; 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, + PROC_ENTRY_PERMANENT = 1, }; -struct eeprom_req_info { - struct ethnl_req_info base; - u32 offset; - u32 length; - u8 page; - u8 bank; - u8 i2c_address; +struct ext4_dir_entry_2 { + __le32 inode; + __le16 rec_len; + __u8 name_len; + __u8 file_type; + char name[255]; }; -struct eeprom_reply_data { - struct ethnl_reply_data base; - u32 length; - u8 *data; +struct ext4_dir_entry_hash { + __le32 hash; + __le32 minor_hash; }; -typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32); - -struct btf_id_set8; +struct ext4_xattr_ibody_header { + __le32 h_magic; +}; -struct btf_kfunc_id_set { - struct module *owner; - struct btf_id_set8 *set; - btf_kfunc_filter_t filter; +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 btf_id_set8 { - u32 cnt; - u32 flags; - struct { - u32 id; - u32 flags; - } pairs[0]; +struct ext4_xattr_info { + const char *name; + const void *value; + size_t value_len; + int name_index; + int in_inode; }; -enum tcp_ca_state { - TCP_CA_Open = 0, - TCP_CA_Disorder = 1, - TCP_CA_CWR = 2, - TCP_CA_Recovery = 3, - TCP_CA_Loss = 4, +struct ext4_xattr_search { + struct ext4_xattr_entry *first; + void *base; + void *end; + struct ext4_xattr_entry *here; + int not_found; }; -enum sk_pacing { - SK_PACING_NONE = 0, - SK_PACING_NEEDED = 1, - SK_PACING_FQ = 2, +struct ext4_xattr_ibody_find { + struct ext4_xattr_search s; + struct ext4_iloc iloc; }; -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 fscrypt_str { + unsigned char *name; + u32 len; }; -enum { - SVC_HANDSHAKE_TO = 1250, +struct dx_hash_info { + u32 hash; + u32 minor_hash; + int hash_version; + u32 *seed; }; -struct in_pktinfo { - int ipi_ifindex; - struct in_addr ipi_spec_dst; - struct in_addr ipi_addr; +struct ext4_filename { + const struct qstr *usr_fname; + struct fscrypt_str disk_name; + struct dx_hash_info hinfo; }; -typedef unsigned long cycles_t; +struct ext2_block_alloc_info; -struct efi_boot_memmap { - unsigned long map_size; - unsigned long desc_size; - u32 desc_ver; - unsigned long map_key; - unsigned long buff_size; - efi_memory_desc_t map[0]; +struct ext2_inode_info { + __le32 i_data[15]; + __u32 i_flags; + __u32 i_faddr; + __u8 i_frag_no; + __u8 i_frag_size; + __u16 i_state; + __u32 i_file_acl; + __u32 i_dir_acl; + __u32 i_dtime; + __u32 i_block_group; + struct ext2_block_alloc_info *i_block_alloc_info; + __u32 i_dir_start_lookup; + rwlock_t i_meta_lock; + struct mutex truncate_mutex; + struct inode vfs_inode; + struct list_head i_orphan; + struct dquot *i_dquot[3]; }; -enum efi_secureboot_mode { - efi_secureboot_mode_unset = 0, - efi_secureboot_mode_unknown = 1, - efi_secureboot_mode_disabled = 2, - efi_secureboot_mode_enabled = 3, -}; +typedef unsigned long ext2_fsblk_t; -struct exit_boot_struct { - struct efi_boot_memmap *boot_memmap; - efi_memory_desc_t *runtime_map; - int runtime_entry_count; - void *new_fdt_addr; +struct ext2_reserve_window { + ext2_fsblk_t _rsv_start; + ext2_fsblk_t _rsv_end; }; -typedef efi_status_t (*efi_exit_boot_map_processing)(struct efi_boot_memmap *, void *); - -enum rseq_event_mask_bits { - RSEQ_EVENT_PREEMPT_BIT = 0, - RSEQ_EVENT_SIGNAL_BIT = 1, - RSEQ_EVENT_MIGRATE_BIT = 2, +struct ext2_reserve_window_node { + struct rb_node rsv_node; + __u32 rsv_goal_size; + __u32 rsv_alloc_hit; + struct ext2_reserve_window rsv_window; }; -struct siginfo { - union { - struct { - int si_signo; - int si_errno; - int si_code; - union __sifields _sifields; - }; - int _si_pad[32]; - }; +struct ext2_block_alloc_info { + struct ext2_reserve_window_node rsv_window_node; + __u32 last_alloc_logical_block; + ext2_fsblk_t last_alloc_physical_block; }; -struct sigaltstack { - void __attribute__((btf_type_tag("user"))) *ss_sp; - int ss_flags; - __kernel_size_t ss_size; +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; }; -typedef struct sigaltstack stack_t; +struct ext2_super_block; -struct sigcontext { - __u64 fault_address; - __u64 regs[31]; - __u64 sp; - __u64 pc; - __u64 pstate; - long: 64; - __u8 __reserved[4096]; +struct ext2_sb_info { + unsigned long s_inodes_per_block; + unsigned long s_blocks_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; + unsigned long s_groups_count; + unsigned long s_overhead_last; + unsigned long s_blocks_last; + struct buffer_head *s_sbh; + struct ext2_super_block *s_es; + struct buffer_head **s_group_desc; + unsigned long s_mount_opt; + unsigned long s_sb_block; + 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; + spinlock_t s_next_gen_lock; + u32 s_next_generation; + unsigned long s_dir_count; + u8 *s_debts; + struct percpu_counter s_freeblocks_counter; + struct percpu_counter s_freeinodes_counter; + struct percpu_counter s_dirs_counter; + struct blockgroup_lock *s_blockgroup_lock; + spinlock_t s_rsv_window_lock; + struct rb_root s_rsv_window_root; + struct ext2_reserve_window_node s_rsv_window_head; + spinlock_t s_lock; + struct mb_cache *s_ea_block_cache; + struct dax_device *s_daxdev; + u64 s_dax_part_off; }; -struct ucontext { - unsigned long uc_flags; - struct ucontext *uc_link; - stack_t uc_stack; - sigset_t uc_sigmask; - __u8 __unused[120]; - long: 64; - struct sigcontext uc_mcontext; +struct ext2_super_block { + __le32 s_inodes_count; + __le32 s_blocks_count; + __le32 s_r_blocks_count; + __le32 s_free_blocks_count; + __le32 s_free_inodes_count; + __le32 s_first_data_block; + __le32 s_log_block_size; + __le32 s_log_frag_size; + __le32 s_blocks_per_group; + __le32 s_frags_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; + __u16 s_padding1; + __u8 s_journal_uuid[16]; + __u32 s_journal_inum; + __u32 s_journal_dev; + __u32 s_last_orphan; + __u32 s_hash_seed[4]; + __u8 s_def_hash_version; + __u8 s_reserved_char_pad; + __u16 s_reserved_word_pad; + __le32 s_default_mount_opts; + __le32 s_first_meta_bg; + __u32 s_reserved[190]; }; -struct rt_sigframe { - struct siginfo info; - struct ucontext uc; +enum file_time_flags { + S_ATIME = 1, + S_MTIME = 2, + S_CTIME = 4, + S_VERSION = 8, }; -struct _aarch64_ctx { - __u32 magic; - __u32 size; +struct fstrim_range { + __u64 start; + __u64 len; + __u64 minlen; }; -struct fpsimd_context { - struct _aarch64_ctx head; - __u32 fpsr; - __u32 fpcr; - __uint128_t vregs[32]; +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 sve_context { - struct _aarch64_ctx head; - __u16 vl; - __u16 flags; - __u16 __reserved[2]; +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 tpidr2_context { - struct _aarch64_ctx head; - __u64 tpidr2; -}; +struct nls_table; -struct za_context { - struct _aarch64_ctx head; - __u16 vl; - __u16 __reserved[3]; -}; +struct fatent_operations; -struct zt_context { - struct _aarch64_ctx head; - __u16 nregs; - __u16 __reserved[3]; +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; }; -struct extra_context { - struct _aarch64_ctx head; - __u64 datap; - __u32 size; - __u32 __reserved[3]; +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 frame_record { - u64 fp; - u64 lr; +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 *); }; -struct user_ctxs { - struct fpsimd_context __attribute__((btf_type_tag("user"))) *fpsimd; - u32 fpsimd_size; - struct sve_context __attribute__((btf_type_tag("user"))) *sve; - u32 sve_size; - struct tpidr2_context __attribute__((btf_type_tag("user"))) *tpidr2; - u32 tpidr2_size; - struct za_context __attribute__((btf_type_tag("user"))) *za; - u32 za_size; - struct zt_context __attribute__((btf_type_tag("user"))) *zt; - u32 zt_size; +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; }; -struct rt_sigframe_user_layout { - struct rt_sigframe __attribute__((btf_type_tag("user"))) *sigframe; - struct frame_record __attribute__((btf_type_tag("user"))) *next_frame; - unsigned long size; - unsigned long limit; - unsigned long fpsimd_offset; - unsigned long esr_offset; - unsigned long sve_offset; - unsigned long tpidr2_offset; - unsigned long za_offset; - unsigned long zt_offset; - unsigned long extra_offset; - unsigned long end_offset; +enum { + TLS_NO_KEYRING = 0, + TLS_NO_PEERID = 0, + TLS_NO_CERT = 0, + TLS_NO_PRIVKEY = 0, }; -struct esr_context { - struct _aarch64_ctx head; - __u64 esr; +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 = 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, + Opt_xprtsec = 54, }; -typedef struct siginfo siginfo_t; +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, +}; -struct kvm_one_reg { - __u64 id; - __u64 addr; +enum { + Opt_lookupcache_all = 0, + Opt_lookupcache_none = 1, + Opt_lookupcache_positive = 2, }; -struct sve_state_reg_region { - unsigned int koffset; - unsigned int klen; - unsigned int upad; +enum { + Opt_local_lock_all = 0, + Opt_local_lock_flock = 1, + Opt_local_lock_none = 2, + Opt_local_lock_posix = 3, }; -struct kvm_vcpu_events { - struct { - __u8 serror_pending; - __u8 serror_has_esr; - __u8 ext_dabt_pending; - __u8 pad[5]; - __u64 serror_esr; - } exception; - __u32 reserved[12]; +enum { + Opt_write_lazy = 0, + Opt_write_eager = 1, + Opt_write_wait = 2, }; -struct kvm_vcpu_init { - __u32 target; - __u32 features[7]; +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, }; -struct kvm_arm_copy_mte_tags { - __u64 guest_ipa; - __u64 length; - void __attribute__((btf_type_tag("user"))) *addr; - __u64 flags; - __u64 reserved[2]; +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 kvm_host_data { - struct kvm_cpu_context host_ctxt; +enum { + Opt_xprtsec_none = 0, + Opt_xprtsec_tls = 1, + Opt_xprtsec_mtls = 2, + nr__Opt_xprtsec = 3, }; -typedef struct { - __be64 a; - __be64 b; -} be128; +typedef u32 compat_uint_t; -struct ghash_key { - be128 k; - u64 h[0]; +struct compat_nfs_string { + compat_uint_t len; + compat_uptr_t data; }; -struct gcm_aes_ctx { - struct crypto_aes_ctx aes_key; - u8 nonce[4]; - struct ghash_key ghash_key; +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 ghash_desc_ctx { - u64 digest[2]; - u8 buf[16]; - u32 count; +struct nfs2_fh { + char data[32]; }; -typedef struct __call_single_data call_single_data_t; - -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: 64; - long: 64; - long: 64; - long: 64; +struct nfs3_fh { + unsigned short size; + unsigned char data[64]; }; -struct rt_prio_array { - unsigned long bitmap[2]; - struct list_head queue[100]; +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 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 nfs_string { + unsigned int len; + const char __attribute__((btf_type_tag("user"))) *data; }; -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 max_bw; - u64 bw_ratio; +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; }; -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 nfs4_add_xprt_data { + struct nfs_client *clp; + const struct cred *cred; }; -struct root_domain; - -struct sched_domain; - -struct balance_callback; - -struct rq { - raw_spinlock_t __lock; - unsigned int nr_running; - unsigned int nr_numa_running; - unsigned int nr_preferred_running; - unsigned int numa_migrate_on; - unsigned long last_blocked_load_update_tick; - unsigned int has_blocked_load; - long: 64; - long: 64; - 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; - 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; - 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; - struct sched_avg avg_irq; - struct sched_avg avg_thermal; - 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_irq_time; - u64 prev_steal_time; - unsigned long calc_load_update; - long calc_load_active; - long: 64; - long: 64; - call_single_data_t hrtick_csd; - struct hrtimer hrtick_timer; - ktime_t hrtick_time; - struct cpuidle_state *idle_state; - unsigned int nr_pinned; - unsigned int push_busy; - struct cpu_stop_work push_work; - cpumask_var_t scratch_mask; - long: 64; - long: 64; - long: 64; +struct rpc_add_xprt_test { + void (*add_xprt_test)(struct rpc_clnt *, struct rpc_xprt *, void *); + void *data; }; -struct cfs_bandwidth {}; - -struct task_group { - struct cgroup_subsys_state css; - struct sched_entity **se; - struct cfs_rq **cfs_rq; - unsigned long shares; - int idle; - long: 64; - 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 autogroup *autogroup; - struct cfs_bandwidth cfs_bandwidth; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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 autogroup { - struct kref kref; - struct task_group *tg; - struct rw_semaphore lock; - unsigned long id; - int nice; +struct nlm_cookie { + unsigned char data[32]; + unsigned int len; }; -struct dl_bw { - raw_spinlock_t lock; - u64 bw; - u64 total_bw; +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 cpudl_item; +struct nlm_res { + struct nlm_cookie cookie; + __be32 status; + struct nlm_lock lock; +}; -struct cpudl { - raw_spinlock_t lock; - int size; - cpumask_var_t free_cpus; - struct cpudl_item *elements; +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 cpupri_vec { - atomic_t count; - cpumask_var_t mask; +struct efivarfs_mount_opts { + kuid_t uid; + kgid_t gid; }; -struct cpupri { - struct cpupri_vec pri_to_cpu[101]; - int *cpu_to_pri; +struct efivarfs_fs_info { + struct efivarfs_mount_opts mount_opts; }; -struct perf_domain; +struct efi_variable { + efi_char16_t VariableName[512]; + efi_guid_t VendorGuid; + unsigned long DataSize; + __u8 Data[1024]; + efi_status_t Status; + __u32 Attributes; +} __attribute__((packed)); -struct 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 efivar_entry { + struct efi_variable var; + struct list_head list; + struct kobject kobj; }; -struct cpudl_item { - u64 dl; - int cpu; - int idx; +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 perf_domain { - struct em_perf_domain *em_pd; - struct perf_domain *next; - struct callback_head rcu; +struct crypto_akcipher { + unsigned int reqsize; + struct crypto_tfm base; }; -struct sched_group; - -struct sched_domain_shared; +struct akcipher_request; -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; - union { - void *private; - struct callback_head rcu; - }; - struct sched_domain_shared *shared; - unsigned int span_weight; - unsigned long span[0]; +struct akcipher_alg { + int (*sign)(struct akcipher_request *); + int (*verify)(struct akcipher_request *); + int (*encrypt)(struct akcipher_request *); + int (*decrypt)(struct akcipher_request *); + int (*set_pub_key)(struct crypto_akcipher *, const void *, unsigned int); + int (*set_priv_key)(struct crypto_akcipher *, const void *, unsigned int); + unsigned int (*max_size)(struct crypto_akcipher *); + int (*init)(struct crypto_akcipher *); + void (*exit)(struct crypto_akcipher *); + struct crypto_alg base; }; -struct sched_group_capacity; +typedef void (*crypto_completion_t)(void *, int); -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 crypto_async_request { + struct list_head list; + crypto_completion_t complete; + void *data; + struct crypto_tfm *tfm; + u32 flags; }; -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 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 sched_domain_shared { - atomic_t ref; - atomic_t nr_busy_cpus; - int has_idle_cores; - int nr_idle_scan; +struct akcipher_instance { + void (*free)(struct akcipher_instance *); + union { + struct { + char head[72]; + struct crypto_instance base; + } s; + struct akcipher_alg alg; + }; }; -struct balance_callback { - struct balance_callback *next; - void (*func)(struct rq *); +struct crypto_istat_akcipher { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t verify_cnt; + atomic64_t sign_cnt; + atomic64_t err_cnt; }; -struct pin_cookie {}; - -struct rq_flags { - unsigned long flags; - struct pin_cookie cookie; +struct crypto_akcipher_sync_data { + struct crypto_akcipher *tfm; + const void *src; + void *dst; + unsigned int slen; + unsigned int dlen; + struct akcipher_request *req; + struct crypto_wait cwait; + struct scatterlist sg; + u8 *buf; }; -struct affinity_context { - const struct cpumask *new_mask; - struct cpumask *user_mask; - unsigned int flags; +struct crypto_akcipher_spawn { + struct crypto_spawn base; }; -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 crypto_report_akcipher { + char type[64]; }; -struct irqtime { - u64 total; - u64 tick_delta; - u64 irq_start_time; - struct u64_stats_sync sync; +struct crypto_aes_ctx { + u32 key_enc[60]; + u32 key_dec[60]; + u32 key_length; }; -enum dl_bw_request { - dl_bw_req_check_overflow = 0, - dl_bw_req_alloc = 1, - dl_bw_req_free = 2, -}; +typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t); -enum s2idle_states { - S2IDLE_STATE_NONE = 0, - S2IDLE_STATE_ENTER = 1, - S2IDLE_STATE_WAKE = 2, -}; +typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *); -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, -}; +typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(struct gendisk *, struct blkcg *, gfp_t); -struct idle_timer { - struct hrtimer timer; - int done; -}; +typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *); -struct update_util_data { - void (*func)(struct update_util_data *, u64, unsigned int); -}; +typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *); -typedef struct rt_rq *rt_rq_iter_t; +typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *); -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; -}; +typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *); -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, -}; +typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *); -enum { - HASH_SIZE = 128, -}; +typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *); -struct audit_node { - struct list_head list; - struct audit_tree *owner; - unsigned int index; +struct blkcg_policy { + int plid; + struct cftype *dfl_cftypes; + struct cftype *legacy_cftypes; + blkcg_pol_alloc_cpd_fn *cpd_alloc_fn; + blkcg_pol_free_cpd_fn *cpd_free_fn; + blkcg_pol_alloc_pd_fn *pd_alloc_fn; + blkcg_pol_init_pd_fn *pd_init_fn; + blkcg_pol_online_pd_fn *pd_online_fn; + blkcg_pol_offline_pd_fn *pd_offline_fn; + blkcg_pol_free_pd_fn *pd_free_fn; + blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn; + blkcg_pol_stat_pd_fn *pd_stat_fn; }; -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]; +enum blkg_iostat_type { + BLKG_IOSTAT_READ = 0, + BLKG_IOSTAT_WRITE = 1, + BLKG_IOSTAT_DISCARD = 2, + BLKG_IOSTAT_NR = 3, }; -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 blkg_conf_ctx { + char *input; + char *body; + struct block_device *bdev; + struct blkcg_gq *blkg; }; -struct audit_tree_mark { - struct fsnotify_mark mark; - struct audit_chunk *chunk; +enum { + IO_SQ_THREAD_SHOULD_STOP = 0, + IO_SQ_THREAD_SHOULD_PARK = 1, }; -struct dynevent_arg_pair { - const char *lhs; - const char *rhs; - char operator; - char separator; -}; +typedef uint32_t U32; -enum { - BPF_MAX_TRAMP_LINKS = 38, -}; +typedef struct { + U32 tableTime; + U32 decode256Time; +} algo_time_t; -struct bpf_shim_tramp_link { - struct bpf_tramp_link link; - struct bpf_trampoline *trampoline; -}; +typedef uint8_t BYTE; -typedef void (*btf_trace_kmem_cache_alloc)(void *, unsigned long, const void *, struct kmem_cache *, gfp_t, int); +typedef struct { + BYTE nbBits; + BYTE byte; +} HUF_DEltX1; -typedef void (*btf_trace_kmalloc)(void *, unsigned long, const void *, size_t, size_t, gfp_t, int); +typedef struct { + U32 rankVal[13]; + U32 rankStart[13]; + U32 statsWksp[218]; + BYTE symbols[256]; + BYTE huffWeight[256]; +} HUF_ReadDTableX1_Workspace; -typedef void (*btf_trace_kfree)(void *, unsigned long, const void *); +typedef uint16_t U16; -typedef void (*btf_trace_kmem_cache_free)(void *, unsigned long, const void *, const struct kmem_cache *); +typedef struct { + U16 sequence; + BYTE nbBits; + BYTE length; +} HUF_DEltX2; -typedef void (*btf_trace_mm_page_free)(void *, struct page *, unsigned int); +typedef U32 rankValCol_t[13]; -typedef void (*btf_trace_mm_page_free_batched)(void *, struct page *); +typedef struct { + BYTE symbol; +} sortedSymbol_t; -typedef void (*btf_trace_mm_page_alloc)(void *, struct page *, unsigned int, gfp_t, int); +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 void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int, int); +typedef uint64_t U64; -typedef void (*btf_trace_mm_page_pcpu_drain)(void *, struct page *, unsigned int, int); +typedef struct { + BYTE maxTableLog; + BYTE tableType; + BYTE tableLog; + BYTE reserved; +} DTableDesc; -typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int); +typedef U32 HUF_DTable; -typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int); +typedef struct { + size_t bitContainer; + unsigned int bitsConsumed; + const char *ptr; + const char *start; + const char *limitPtr; +} BIT_DStream_t; -struct kmalloc_info_struct { - const char *name[4]; - unsigned int size; -}; +typedef enum { + BIT_DStream_unfinished = 0, + BIT_DStream_endOfBuffer = 1, + BIT_DStream_completed = 2, + BIT_DStream_overflow = 3, +} BIT_DStream_status; -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 node_groups { + unsigned int id; + union { + unsigned int ngroups; + unsigned int ncpus; + }; }; -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 owl_sirq_params { + bool reg_shared; + u16 reg_offset[3]; }; -struct trace_event_raw_kfree { - struct trace_entry ent; - unsigned long call_site; - const void *ptr; - char __data[0]; +struct owl_sirq_chip_data { + const struct owl_sirq_params *params; + void *base; + raw_spinlock_t lock; + u32 ext_irqs[3]; }; -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 rzg2l_irqc_priv { + void *base; + struct irq_fwspec fwspec[41]; + raw_spinlock_t lock; }; -struct trace_event_raw_mm_page_free { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - char __data[0]; +enum xgene_phy_mode { + MODE_SATA = 0, + MODE_SGMII = 1, + MODE_PCIE = 2, + MODE_USB = 3, + MODE_XFI = 4, + MODE_MAX = 5, }; -struct trace_event_raw_mm_page_free_batched { - struct trace_entry ent; - unsigned long pfn; - char __data[0]; +enum clk_type_t { + CLK_EXT_DIFF = 0, + CLK_INT_DIFF = 1, + CLK_INT_SING = 2, }; -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]; +enum cmu_type_t { + REF_CMU = 0, + PHY_CMU = 1, }; -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 xgene_sata_override_param { + u32 speed[2]; + u32 txspeed[3]; + u32 txboostgain[6]; + u32 txeyetuning[6]; + u32 txeyedirection[6]; + u32 txamplitude[6]; + u32 txprecursor_cn1[6]; + u32 txprecursor_cn2[6]; + u32 txpostcursor_cp1[6]; }; -struct trace_event_raw_mm_page_pcpu_drain { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - int migratetype; - char __data[0]; +struct xgene_phy_ctx { + struct device *dev; + struct phy *phy; + enum xgene_phy_mode mode; + enum clk_type_t clk_type; + void *sds_base; + struct clk *clk; + struct xgene_sata_override_param sata_param; }; -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]; +enum { + RADIX_TREE_ITER_TAG_MASK = 15, + RADIX_TREE_ITER_TAGGED = 16, + RADIX_TREE_ITER_CONTIG = 32, }; -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 radix_tree_iter { + unsigned long index; + unsigned long next_index; + unsigned long tags; + struct xa_node *node; }; -struct trace_event_data_offsets_kmem_cache_free { - u32 name; +struct pinctrl_setting_configs { + unsigned int group_or_pin; + unsigned long *configs; + unsigned int num_configs; }; -struct trace_event_data_offsets_kmem_cache_alloc {}; - -struct trace_event_data_offsets_kmalloc {}; - -struct trace_event_data_offsets_kfree {}; +struct pinctrl_setting { + struct list_head node; + enum pinctrl_map_type type; + struct pinctrl_dev *pctldev; + const char *dev_name; + union { + struct pinctrl_setting_mux mux; + struct pinctrl_setting_configs configs; + } data; +}; -struct trace_event_data_offsets_mm_page_free {}; +struct mtk_pinctrl_devdata; -struct trace_event_data_offsets_mm_page_free_batched {}; +struct mtk_pinctrl___2 { + struct regmap *regmap1; + struct regmap *regmap2; + struct pinctrl_desc pctl_desc; + struct device *dev; + struct gpio_chip *chip; + struct mtk_pinctrl_group *groups; + unsigned int ngroups; + const char **grp_names; + struct pinctrl_dev *pctl_dev; + const struct mtk_pinctrl_devdata *devdata; + struct mtk_eint *eint; +}; -struct trace_event_data_offsets_mm_page_alloc {}; +struct mtk_desc_pin; -struct trace_event_data_offsets_mm_page {}; +struct mtk_drv_group_desc; -struct trace_event_data_offsets_mm_page_pcpu_drain {}; +struct mtk_pin_drv_grp; -struct trace_event_data_offsets_mm_page_alloc_extfrag {}; +struct mtk_pin_ies_smt_set; -struct trace_event_data_offsets_rss_stat {}; +struct mtk_pin_spec_pupd_set_samereg; -enum positive_aop_returns { - AOP_WRITEPAGE_ACTIVATE = 524288, - AOP_TRUNCATED_PAGE = 524289, +struct mtk_pinctrl_devdata { + const struct mtk_desc_pin *pins; + unsigned int npins; + const struct mtk_drv_group_desc *grp_desc; + unsigned int n_grp_cls; + const struct mtk_pin_drv_grp *pin_drv_grp; + unsigned int n_pin_drv_grps; + const struct mtk_pin_ies_smt_set *spec_ies; + unsigned int n_spec_ies; + const struct mtk_pin_spec_pupd_set_samereg *spec_pupd; + unsigned int n_spec_pupd; + const struct mtk_pin_ies_smt_set *spec_smt; + unsigned int n_spec_smt; + int (*spec_pull_set)(struct regmap *, const struct mtk_pinctrl_devdata *, unsigned int, bool, unsigned int); + int (*spec_ies_smt_set)(struct regmap *, const struct mtk_pinctrl_devdata *, unsigned int, int, enum pin_config_param); + void (*spec_pinmux_set)(struct regmap *, unsigned int, unsigned int); + void (*spec_dir_set)(unsigned int *, unsigned int); + int (*mt8365_set_clr_mode)(struct regmap *, unsigned int, unsigned int, unsigned int, bool, bool); + unsigned int dir_offset; + unsigned int ies_offset; + unsigned int smt_offset; + unsigned int pullen_offset; + unsigned int pullsel_offset; + unsigned int drv_offset; + unsigned int dout_offset; + unsigned int din_offset; + unsigned int pinmux_offset; + unsigned short type1_start; + unsigned short type1_end; + unsigned char port_shf; + unsigned char port_mask; + unsigned char port_align; + struct mtk_eint_hw eint_hw; + struct mtk_eint_regs *eint_regs; + unsigned int mode_mask; + unsigned int mode_per_reg; + unsigned int mode_shf; }; -enum zone_watermarks { - WMARK_MIN = 0, - WMARK_LOW = 1, - WMARK_HIGH = 2, - WMARK_PROMO = 3, - NR_WMARK = 4, +struct mtk_desc_eint { + unsigned char eintmux; + unsigned char eintnum; }; -typedef unsigned int isolate_mode_t; +struct mtk_desc_function; -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 *); +struct mtk_desc_pin { + struct pinctrl_pin_desc pin; + const struct mtk_desc_eint eint; + const struct mtk_desc_function *functions; }; -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 mtk_desc_function { + const char *name; + unsigned char muxval; }; -struct migrate_pages_stats { - int nr_succeeded; - int nr_failed_pages; - int nr_thp_succeeded; - int nr_thp_failed; - int nr_thp_split; +struct mtk_drv_group_desc { + unsigned char min_drv; + unsigned char max_drv; + unsigned char low_bit; + unsigned char high_bit; + unsigned char step; }; -union migration_ptr { - struct anon_vma *anon_vma; - struct address_space *mapping; +struct mtk_pin_drv_grp { + unsigned short pin; + unsigned short offset; + unsigned char bit; + unsigned char grp; }; -struct ns_get_path_task_args { - const struct proc_ns_operations *ns_ops; - struct task_struct *task; +struct mtk_pin_ies_smt_set { + unsigned short start; + unsigned short end; + unsigned short offset; + unsigned char bit; }; -typedef struct ns_common *ns_get_path_helper_t(void *); - -struct epitem; +struct mtk_pin_spec_pupd_set_samereg { + unsigned short pin; + unsigned short offset; + unsigned char pupd_bit; + unsigned char r1_bit; + unsigned char r0_bit; +}; -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; +struct sunxi_pinctrl_regulator { + struct regulator *regulator; refcount_t refcount; - unsigned int napi_id; }; -struct epoll_filefd { - struct file *file; - int fd; -} __attribute__((packed)); - -struct epoll_event { - __poll_t events; - __u64 data; -}; +struct sunxi_pinctrl_function; -struct eppoll_entry; +struct sunxi_pinctrl_group; -struct epitem { - union { - struct rb_node rbn; - struct callback_head rcu; - }; - struct list_head rdllink; - struct epitem *next; - struct epoll_filefd ffd; - bool dying; - struct eppoll_entry *pwqlist; - struct eventpoll *ep; - struct hlist_node fllink; - struct wakeup_source __attribute__((btf_type_tag("rcu"))) *ws; - struct epoll_event event; +struct sunxi_pinctrl { + void *membase; + struct gpio_chip *chip; + const struct sunxi_pinctrl_desc *desc; + struct device *dev; + struct sunxi_pinctrl_regulator regulators[9]; + struct irq_domain *domain; + struct sunxi_pinctrl_function *functions; + unsigned int nfunctions; + struct sunxi_pinctrl_group *groups; + unsigned int ngroups; + int *irq; + unsigned int *irq_array; + raw_spinlock_t lock; + struct pinctrl_dev *pctl_dev; + unsigned long variant; + u32 bank_mem_size; + u32 pull_regs_offset; + u32 dlevel_field_width; }; -struct eppoll_entry { - struct eppoll_entry *next; - struct epitem *base; - wait_queue_entry_t wait; - wait_queue_head_t *whead; +struct sunxi_pinctrl_function { + const char *name; + const char **groups; + unsigned int ngroups; }; -struct epitems_head { - struct hlist_head epitems; - struct epitems_head *next; +struct sunxi_pinctrl_group { + const char *name; + unsigned int pin; }; -struct ep_pqueue { - poll_table pt; - struct epitem *epi; +struct gpio_device { + struct device dev; + struct cdev chrdev; + int id; + struct device *mockdev; + struct module *owner; + struct gpio_chip *chip; + struct gpio_desc *descs; + int base; + u16 ngpio; + const char *label; + void *data; + struct list_head list; + struct blocking_notifier_head line_state_notifier; + struct blocking_notifier_head device_notifier; + struct rw_semaphore sem; + struct list_head pin_ranges; }; -struct name_snapshot { - struct qstr name; - unsigned char inline_name[32]; +struct visconti_gpio { + void *base; + spinlock_t lock; + struct gpio_chip gpio_chip; + struct device *dev; }; -struct ext2_inode { - __le16 i_mode; - __le16 i_uid; - __le32 i_size; - __le32 i_atime; - __le32 i_ctime; - __le32 i_mtime; - __le32 i_dtime; - __le16 i_gid; - __le16 i_links_count; - __le32 i_blocks; - __le32 i_flags; - union { - struct { - __le32 l_i_reserved1; - } linux1; - struct { - __le32 h_i_translator; - } hurd1; - struct { - __le32 m_i_reserved1; - } masix1; - } osd1; - __le32 i_block[15]; - __le32 i_generation; - __le32 i_file_acl; - __le32 i_dir_acl; - __le32 i_faddr; - union { - struct { - __u8 l_i_frag; - __u8 l_i_fsize; - __u16 i_pad1; - __le16 l_i_uid_high; - __le16 l_i_gid_high; - __u32 l_i_reserved2; - } linux2; - struct { - __u8 h_i_frag; - __u8 h_i_fsize; - __le16 h_i_mode_high; - __le16 h_i_uid_high; - __le16 h_i_gid_high; - __le32 h_i_author; - } hurd2; - struct { - __u8 m_i_frag; - __u8 m_i_fsize; - __u16 m_pad1; - __u32 m_i_reserved2[2]; - } masix2; - } osd2; +struct pci_cap_saved_data { + u16 cap_nr; + bool cap_extended; + unsigned int size; + u32 data[0]; }; -typedef struct { - __le32 *p; - __le32 key; - struct buffer_head *bh; -} Indirect; - -struct pnfs_layout_range { - u32 iomode; - u64 offset; - u64 length; +struct pci_cap_saved_state { + struct hlist_node next; + struct pci_cap_saved_data cap; }; -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 pci_dev_reset_methods { + u16 vendor; + u16 device; + int (*reset)(struct pci_dev *, bool); }; -enum pnfs_iomode { - IOMODE_READ = 1, - IOMODE_RW = 2, - IOMODE_ANY = 3, +struct pci_dev_acs_enabled { + u16 vendor; + u16 device; + int (*acs_enabled)(struct pci_dev *, u16); }; -struct pnfs_layout_hdr { - refcount_t plh_refcount; - atomic_t plh_outstanding; - struct list_head plh_layouts; - struct list_head plh_bulk_destroy; - struct list_head plh_segs; - struct list_head plh_return_segs; - unsigned long plh_block_lgets; - unsigned long plh_retry_timestamp; - unsigned long plh_flags; - nfs4_stateid plh_stateid; - u32 plh_barrier; - u32 plh_return_seq; - enum pnfs_iomode plh_return_iomode; - loff_t plh_lwb; - const struct cred *plh_lc_cred; - struct inode *plh_inode; - struct callback_head plh_rcu; +struct pci_dev_acs_ops { + u16 vendor; + u16 device; + int (*enable_acs)(struct pci_dev *); + int (*disable_acs_redir)(struct pci_dev *); }; -enum pnfs_try_status { - PNFS_ATTEMPTED = 0, - PNFS_NOT_ATTEMPTED = 1, - PNFS_TRY_AGAIN = 2, +enum pci_fixup_pass { + pci_fixup_early = 0, + pci_fixup_header = 1, + pci_fixup_final = 2, + pci_fixup_enable = 3, + pci_fixup_resume = 4, + pci_fixup_suspend = 5, + pci_fixup_resume_early = 6, + pci_fixup_suspend_late = 7, }; -struct nfs4_layoutget_res; - -struct nfs_pageio_ops; - -struct nfs4_deviceid_node; - -struct pnfs_device; - -struct nfs4_layoutreturn_args; - -struct nfs4_layoutcommit_data; - -struct nfs4_layoutcommit_args; - -struct nfs42_layoutstat_args; - -struct pnfs_layoutdriver_type { - struct list_head pnfs_tblid; - const u32 id; - const char *name; - struct module *owner; - unsigned int flags; - unsigned int max_deviceinfo_size; - unsigned int max_layoutget_response; - int (*set_layoutdriver)(struct nfs_server *, const struct nfs_fh *); - int (*clear_layoutdriver)(struct nfs_server *); - struct pnfs_layout_hdr * (*alloc_layout_hdr)(struct inode *, gfp_t); - void (*free_layout_hdr)(struct pnfs_layout_hdr *); - struct pnfs_layout_segment * (*alloc_lseg)(struct pnfs_layout_hdr *, struct nfs4_layoutget_res *, gfp_t); - void (*free_lseg)(struct pnfs_layout_segment *); - void (*add_lseg)(struct pnfs_layout_hdr *, struct pnfs_layout_segment *, struct list_head *); - void (*return_range)(struct pnfs_layout_hdr *, struct pnfs_layout_range *); - const struct nfs_pageio_ops *pg_read_ops; - const struct nfs_pageio_ops *pg_write_ops; - struct pnfs_ds_commit_info * (*get_ds_info)(struct inode *); - int (*sync)(struct inode *, bool); - enum pnfs_try_status (*read_pagelist)(struct nfs_pgio_header *); - enum pnfs_try_status (*write_pagelist)(struct nfs_pgio_header *, int); - void (*free_deviceid_node)(struct nfs4_deviceid_node *); - struct nfs4_deviceid_node * (*alloc_deviceid_node)(struct nfs_server *, struct pnfs_device *, gfp_t); - int (*prepare_layoutreturn)(struct nfs4_layoutreturn_args *); - void (*cleanup_layoutcommit)(struct nfs4_layoutcommit_data *); - int (*prepare_layoutcommit)(struct nfs4_layoutcommit_args *); - int (*prepare_layoutstats)(struct nfs42_layoutstat_args *); - void (*cancel_io)(struct pnfs_layout_segment *); +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 nfs4_layoutdriver_data; - -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; +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, }; -struct nfs4_layoutdriver_data { - struct page **pages; - __u32 pglen; - __u32 len; +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, }; -struct nfs_pageio_descriptor; - -struct nfs_pgio_mirror; - -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); +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, }; -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; +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, }; -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; +enum { + SWITCHTEC_NTB_REG_INFO_OFFSET = 0, + SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384, + SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600, }; -struct nfs4_deviceid { - char data[16]; +struct pci_fixup { + u16 vendor; + u16 device; + u32 class; + unsigned int class_shift; + int hook_offset; }; -struct nfs4_deviceid_node { - struct hlist_node node; - struct hlist_node tmpnode; - const struct pnfs_layoutdriver_type *ld; - const struct nfs_client *nfs_client; - unsigned long flags; - unsigned long timestamp_unavailable; - struct nfs4_deviceid deviceid; - struct callback_head rcu; - atomic_t ref; +struct ntb_ctrl_regs { + u32 partition_status; + u32 partition_op; + u32 partition_ctrl; + u32 bar_setup; + u32 bar_error; + u16 lut_table_entries; + u16 lut_table_offset; + u32 lut_error; + u16 req_id_table_size; + u16 req_id_table_offset; + u32 req_id_error; + u32 reserved1[7]; + struct { + u32 ctl; + u32 win_size; + u64 xlate_addr; + } bar_entry[6]; + struct { + u32 win_size; + u32 reserved[3]; + } bar_ext_entry[6]; + u32 reserved2[192]; + u32 req_id_table[512]; + u32 reserved3[256]; + u64 lut_entry[512]; }; -struct pnfs_device { - struct nfs4_deviceid dev_id; - unsigned int layout_type; - unsigned int mincount; - unsigned int maxcount; - struct page **pages; - unsigned int pgbase; - unsigned int pglen; - unsigned char nocache: 1; +struct nt_partition_info { + u32 xlink_enabled; + u32 target_part_low; + u32 target_part_high; + u32 reserved; }; -struct nfs4_xdr_opaque_data; +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 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 histb_pcie { + struct dw_pcie *pci; + struct clk *aux_clk; + struct clk *pipe_clk; + struct clk *sys_clk; + struct clk *bus_clk; + struct phy *phy; + struct reset_control *soft_reset; + struct reset_control *sys_reset; + struct reset_control *bus_reset; + void *ctrl; + struct gpio_desc *reset_gpio; + struct regulator *vpcie; }; -struct nfs4_xdr_opaque_ops; - -struct nfs4_xdr_opaque_data { - const struct nfs4_xdr_opaque_ops *ops; - void *data; +struct fb_cvt_data { + u32 xres; + u32 yres; + u32 refresh; + u32 f_refresh; + u32 pixclock; + u32 hperiod; + u32 hblank; + u32 hfreq; + u32 htotal; + u32 vtotal; + u32 vsync; + u32 hsync; + u32 h_front_porch; + u32 h_back_porch; + u32 v_front_porch; + u32 v_back_porch; + u32 h_margin; + u32 v_margin; + u32 interlace; + u32 aspect_ratio; + u32 active_pixels; + u32 flags; + u32 status; }; -struct 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 broken_edid { + u8 manufacturer[4]; + u32 model; + u32 fix; }; -struct nfs4_layoutcommit_args { - struct nfs4_sequence_args seq_args; - nfs4_stateid stateid; - __u64 lastbytewritten; - struct inode *inode; - const u32 *bitmask; - size_t layoutupdate_len; - struct page *layoutupdate_page; - struct page **layoutupdate_pages; - __be32 *start_p; +enum display_flags { + DISPLAY_FLAGS_HSYNC_LOW = 1, + DISPLAY_FLAGS_HSYNC_HIGH = 2, + DISPLAY_FLAGS_VSYNC_LOW = 4, + DISPLAY_FLAGS_VSYNC_HIGH = 8, + DISPLAY_FLAGS_DE_LOW = 16, + DISPLAY_FLAGS_DE_HIGH = 32, + DISPLAY_FLAGS_PIXDATA_POSEDGE = 64, + DISPLAY_FLAGS_PIXDATA_NEGEDGE = 128, + DISPLAY_FLAGS_INTERLACED = 256, + DISPLAY_FLAGS_DOUBLESCAN = 512, + DISPLAY_FLAGS_DOUBLECLK = 1024, + DISPLAY_FLAGS_SYNC_POSEDGE = 2048, + DISPLAY_FLAGS_SYNC_NEGEDGE = 4096, }; -struct nfs4_layoutcommit_res { - struct nfs4_sequence_res seq_res; - struct nfs_fattr *fattr; - const struct nfs_server *server; - int status; +struct __fb_timings { + u32 dclk; + u32 hfreq; + u32 vfreq; + u32 hactive; + u32 vactive; + u32 hblank; + u32 vblank; + u32 htotal; + u32 vtotal; }; -struct nfs4_layoutcommit_data { - struct rpc_task task; - struct nfs_fattr fattr; - struct list_head lseg_list; - const struct cred *cred; - struct inode *inode; - struct nfs4_layoutcommit_args args; - struct nfs4_layoutcommit_res res; +struct videomode { + unsigned long pixelclock; + u32 hactive; + u32 hfront_porch; + u32 hback_porch; + u32 hsync_len; + u32 vactive; + u32 vfront_porch; + u32 vback_porch; + u32 vsync_len; + enum display_flags flags; }; -struct nfs42_layoutstat_devinfo; - -struct nfs42_layoutstat_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - struct inode *inode; - nfs4_stateid stateid; - int num_dev; - struct nfs42_layoutstat_devinfo *devinfo; +struct acpi_table_madt { + struct acpi_table_header header; + u32 address; + u32 flags; }; -struct nfs42_layoutstat_devinfo { - struct nfs4_deviceid dev_id; - __u64 offset; - __u64 length; - __u64 read_count; - __u64 read_bytes; - __u64 write_count; - __u64 write_bytes; - __u32 layout_type; - struct nfs4_xdr_opaque_data ld_private; +struct acpi_madt_local_apic { + struct acpi_subtable_header header; + u8 processor_id; + u8 id; + u32 lapic_flags; }; -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; +struct acpi_madt_local_x2apic { + struct acpi_subtable_header header; + u16 reserved; + u32 local_apic_id; + u32 lapic_flags; + u32 uid; }; -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, - XPRT_TRANSPORT_TCP_TLS = 258, +struct acpi_madt_local_sapic { + struct acpi_subtable_header header; + u8 processor_id; + u8 id; + u8 eid; + u8 reserved[3]; + u32 lapic_flags; + u32 uid; + char uid_string[0]; }; -struct 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 acpi_madt_rintc { + struct acpi_subtable_header header; + u8 version; + u8 reserved; + u32 flags; + u64 hart_id; + u32 uid; + u32 ext_intc_id; + u64 imsic_addr; + u32 imsic_size; +} __attribute__((packed)); -enum { - NFS_LAYOUT_RO_FAILED = 0, - NFS_LAYOUT_RW_FAILED = 1, - NFS_LAYOUT_BULK_RECALL = 2, - NFS_LAYOUT_RETURN = 3, - NFS_LAYOUT_RETURN_LOCK = 4, - NFS_LAYOUT_RETURN_REQUESTED = 5, - NFS_LAYOUT_INVALID_STID = 6, - NFS_LAYOUT_FIRST_LAYOUTGET = 7, - NFS_LAYOUT_INODE_FREEING = 8, - NFS_LAYOUT_HASHED = 9, - NFS_LAYOUT_DRAIN = 10, -}; +struct acpi_madt_core_pic { + struct acpi_subtable_header header; + u8 version; + u32 processor_id; + u32 core_id; + u32 flags; +} __attribute__((packed)); -enum { - NFS_LSEG_VALID = 0, - NFS_LSEG_ROC = 1, - NFS_LSEG_LAYOUTCOMMIT = 2, - NFS_LSEG_LAYOUTRETURN = 3, - NFS_LSEG_UNAVAILABLE = 4, -}; +struct apd_private_data; -enum pnfs_update_layout_reason { - PNFS_UPDATE_LAYOUT_UNKNOWN = 0, - PNFS_UPDATE_LAYOUT_NO_PNFS = 1, - PNFS_UPDATE_LAYOUT_RD_ZEROLEN = 2, - PNFS_UPDATE_LAYOUT_MDSTHRESH = 3, - PNFS_UPDATE_LAYOUT_NOMEM = 4, - PNFS_UPDATE_LAYOUT_BULK_RECALL = 5, - PNFS_UPDATE_LAYOUT_IO_TEST_FAIL = 6, - PNFS_UPDATE_LAYOUT_FOUND_CACHED = 7, - PNFS_UPDATE_LAYOUT_RETURN = 8, - PNFS_UPDATE_LAYOUT_RETRY = 9, - PNFS_UPDATE_LAYOUT_BLOCKED = 10, - PNFS_UPDATE_LAYOUT_INVALID_OPEN = 11, - PNFS_UPDATE_LAYOUT_SEND_LAYOUTGET = 12, - PNFS_UPDATE_LAYOUT_EXIT = 13, +struct apd_device_desc { + unsigned int fixed_clk_rate; + struct property_entry *properties; + int (*setup)(struct apd_private_data *); }; -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, +struct apd_private_data { + struct clk *clk; + struct acpi_device *adev; + const struct apd_device_desc *dev_desc; }; -enum createmode4 { - NFS4_CREATE_UNCHECKED = 0, - NFS4_CREATE_GUARDED = 1, - NFS4_CREATE_EXCLUSIVE = 2, - NFS4_CREATE_EXCLUSIVE4_1 = 3, +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 layoutdriver_policy_flags { - PNFS_LAYOUTRET_ON_SETATTR = 1, - PNFS_LAYOUTRET_ON_ERROR = 2, - PNFS_READ_WHOLE_PAGE = 4, - PNFS_LAYOUTGET_ON_OPEN = 8, +typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *); + +struct acpi_pci_id { + u16 segment; + u16 bus; + u16 device; + u16 function; }; -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 acpi_data_table_mapping { + void *pointer; }; -typedef int wait_bit_action_f(struct wait_bit_key *, int); +struct acpi_mem_mapping; -struct nfs4_layoutreturn_res { - struct nfs4_sequence_res seq_res; - u32 lrs_present; - nfs4_stateid stateid; +struct acpi_mem_space_context { + u32 length; + acpi_physical_address address; + struct acpi_mem_mapping *cur_mm; + struct acpi_mem_mapping *first_mm; }; -struct nfs4_layoutreturn { - struct nfs4_layoutreturn_args args; - struct nfs4_layoutreturn_res res; - const struct cred *cred; - struct nfs_client *clp; - struct inode *inode; - int rpc_status; - struct nfs4_xdr_opaque_data ld_private; +struct acpi_mem_mapping { + acpi_physical_address physical_address; + u8 *logical_address; + acpi_size length; + struct acpi_mem_mapping *next_mm; }; -typedef void (*rpc_action)(struct rpc_task *); +struct acpi_table_gtdt; -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 acpi_gtdt_descriptor { + struct acpi_table_gtdt *gtdt; + void *gtdt_end; + void *platform_timer; }; -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 acpi_table_gtdt { + struct acpi_table_header header; + u64 counter_block_addresss; + u32 reserved; + u32 secure_el1_interrupt; + u32 secure_el1_flags; + u32 non_secure_el1_interrupt; + u32 non_secure_el1_flags; + u32 virtual_timer_interrupt; + u32 virtual_timer_flags; + u32 non_secure_el2_interrupt; + u32 non_secure_el2_flags; + u64 counter_read_block_address; + u32 platform_timer_count; + u32 platform_timer_offset; +} __attribute__((packed)); + +enum arch_timer_ppi_nr { + ARCH_TIMER_PHYS_SECURE_PPI = 0, + ARCH_TIMER_PHYS_NONSECURE_PPI = 1, + ARCH_TIMER_VIRT_PPI = 2, + ARCH_TIMER_HYP_PPI = 3, + ARCH_TIMER_HYP_VIRT_PPI = 4, + ARCH_TIMER_MAX_TIMER_PPI = 5, }; -struct stateowner_id { - __u64 create_time; - __u32 uniquifier; +enum acpi_gtdt_type { + ACPI_GTDT_TYPE_TIMER_BLOCK = 0, + ACPI_GTDT_TYPE_WATCHDOG = 1, + ACPI_GTDT_TYPE_RESERVED = 2, }; -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; +enum { + IORES_DESC_NONE = 0, + IORES_DESC_CRASH_KERNEL = 1, + IORES_DESC_ACPI_TABLES = 2, + IORES_DESC_ACPI_NV_STORAGE = 3, + IORES_DESC_PERSISTENT_MEMORY = 4, + IORES_DESC_PERSISTENT_MEMORY_LEGACY = 5, + IORES_DESC_DEVICE_PRIVATE_MEMORY = 6, + IORES_DESC_RESERVED = 7, + IORES_DESC_SOFT_RESERVED = 8, + IORES_DESC_CXL = 9, }; -struct 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 acpi_gtdt_header { + u8 type; + u16 length; +} __attribute__((packed)); -struct nfs_open_confirmargs { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - nfs4_stateid *stateid; - struct nfs_seqid *seqid; -}; +struct acpi_gtdt_watchdog { + struct acpi_gtdt_header header; + u8 reserved; + u64 refresh_frame_address; + u64 control_frame_address; + u32 timer_interrupt; + u32 timer_flags; +} __attribute__((packed)); -struct nfs_open_confirmres { - struct nfs4_sequence_res seq_res; - nfs4_stateid stateid; - struct nfs_seqid *seqid; +struct arch_timer_mem_frame { + bool valid; + phys_addr_t cntbase; + size_t size; + int phys_irq; + int virt_irq; }; -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 arch_timer_mem { + phys_addr_t cntctlbase; + size_t size; + struct arch_timer_mem_frame frame[8]; }; -struct nfs42_layoutstat_res { - struct nfs4_sequence_res seq_res; - int num_dev; - int rpc_status; -}; +struct acpi_gtdt_timer_block { + struct acpi_gtdt_header header; + u8 reserved; + u64 block_address; + u32 timer_count; + u32 timer_offset; +} __attribute__((packed)); -struct nfs42_layoutstat_data { - struct inode *inode; - struct nfs42_layoutstat_args args; - struct nfs42_layoutstat_res res; -}; +struct acpi_gtdt_timer_entry { + u8 frame_number; + u8 reserved[3]; + u64 base_address; + u64 el0_base_address; + u32 timer_interrupt; + u32 timer_flags; + u32 virtual_timer_interrupt; + u32 virtual_timer_flags; + u32 common_flags; +} __attribute__((packed)); -struct akcipher_instance { - void (*free)(struct akcipher_instance *); - union { - struct { - char head[72]; - struct crypto_instance base; - } s; - struct akcipher_alg alg; - }; +struct clk_fixed_rate { + struct clk_hw hw; + unsigned long fixed_rate; + unsigned long fixed_accuracy; + unsigned long flags; }; -struct crypto_istat_akcipher { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t verify_cnt; - atomic64_t sign_cnt; - atomic64_t err_cnt; +enum xgene_pll_type { + PLL_TYPE_PCP = 0, + PLL_TYPE_SOC = 1, }; -struct crypto_akcipher_sync_data { - struct crypto_akcipher *tfm; - const void *src; - void *dst; - unsigned int slen; - unsigned int dlen; - struct akcipher_request *req; - struct crypto_wait cwait; - struct scatterlist sg; - u8 *buf; +struct xgene_clk_pll { + struct clk_hw hw; + void *reg; + spinlock_t *lock; + u32 pll_offset; + enum xgene_pll_type type; + int version; }; -struct crypto_akcipher_spawn { - struct crypto_spawn base; +struct xgene_clk_pmd { + struct clk_hw hw; + void *reg; + u8 shift; + u32 mask; + u64 denom; + u32 flags; + spinlock_t *lock; }; -struct crypto_report_akcipher { - char type[64]; +struct xgene_dev_parameters { + void *csr_reg; + u32 reg_clk_offset; + u32 reg_clk_mask; + u32 reg_csr_offset; + u32 reg_csr_mask; + void *divider_reg; + u32 reg_divider_offset; + u32 reg_divider_shift; + u32 reg_divider_width; }; -struct rq_wait; - -typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); - -struct rq_qos_wait_data { - struct wait_queue_entry wq; - struct task_struct *task; - struct rq_wait *rqw; - acquire_inflight_cb_t *cb; - void *private_data; - bool got_token; +struct xgene_clk { + struct clk_hw hw; + spinlock_t *lock; + struct xgene_dev_parameters param; }; -struct rq_wait { - wait_queue_head_t wait; - atomic_t inflight; +struct hisi_crg_funcs { + struct hisi_clock_data * (*register_clks)(struct platform_device *); + void (*unregister_clks)(struct platform_device *); }; -struct rq_depth { - unsigned int max_depth; - int scale_step; - bool scaled_max; - unsigned int queue_depth; - unsigned int default_depth; +struct hi3559av100_pll_clock { + u32 id; + const char *name; + const char *parent_name; + const u32 ctrl_reg1; + const u8 frac_shift; + const u8 frac_width; + const u8 postdiv1_shift; + const u8 postdiv1_width; + const u8 postdiv2_shift; + const u8 postdiv2_width; + const u32 ctrl_reg2; + const u8 fbdiv_shift; + const u8 fbdiv_width; + const u8 refdiv_shift; + const u8 refdiv_width; }; -typedef void cleanup_cb_t(struct rq_wait *, void *); - -struct io_rename { - struct file *file; - int old_dfd; - int new_dfd; - struct filename *oldpath; - struct filename *newpath; - int flags; +struct hi3559av100_clk_pll { + struct clk_hw hw; + u32 id; + void *ctrl_reg1; + u8 frac_shift; + u8 frac_width; + u8 postdiv1_shift; + u8 postdiv1_width; + u8 postdiv2_shift; + u8 postdiv2_width; + void *ctrl_reg2; + u8 fbdiv_shift; + u8 fbdiv_width; + u8 refdiv_shift; + u8 refdiv_width; }; -struct io_unlink { - struct file *file; - int dfd; - int flags; - struct filename *filename; +struct hisi_crg_dev { + struct hisi_clock_data *clk_data; + struct hisi_reset_controller *rstc; + const struct hisi_crg_funcs *funcs; }; -struct io_mkdir { - struct file *file; - int dfd; - umode_t mode; - struct filename *filename; +struct clk_composite { + struct clk_hw hw; + struct clk_ops ops; + struct clk_hw *mux_hw; + struct clk_hw *rate_hw; + struct clk_hw *gate_hw; + const struct clk_ops *mux_ops; + const struct clk_ops *rate_ops; + const struct clk_ops *gate_ops; }; -struct io_link { - struct file *file; - int old_dfd; - int new_dfd; - struct filename *oldpath; - struct filename *newpath; - int flags; +struct clk_gate { + struct clk_hw hw; + void *reg; + u8 bit_idx; + u8 flags; + spinlock_t *lock; }; -enum { - PERCPU_REF_INIT_ATOMIC = 1, - PERCPU_REF_INIT_DEAD = 2, - PERCPU_REF_ALLOW_REINIT = 4, +struct clk_divider { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u8 flags; + const struct clk_div_table *table; + spinlock_t *lock; }; -struct rzg2l_irqc_priv { - void *base; - struct irq_fwspec fwspec[41]; - raw_spinlock_t lock; +struct clk_periph_data { + const char *name; + const char * const *parent_names; + int num_parents; + struct clk_hw *mux_hw; + struct clk_hw *rate_hw; + struct clk_hw *gate_hw; + struct clk_hw *muxrate_hw; + bool is_double_div; }; -struct fsl_mc_child_objs { - int child_count; - struct fsl_mc_obj_desc *child_array; +struct clk_double_div { + struct clk_hw hw; + void *reg1; + u8 shift1; + void *reg2; + u8 shift2; }; -struct r8a779f0_eth_serdes_drv_data; - -struct r8a779f0_eth_serdes_channel { - struct r8a779f0_eth_serdes_drv_data *dd; - struct phy *phy; - void *addr; - phy_interface_t phy_interface; - int speed; - int index; +struct clk_pm_cpu { + struct clk_hw hw; + void *reg_mux; + u8 shift_mux; + u32 mask_mux; + void *reg_div; + u8 shift_div; + struct regmap *nb_pm_base; + unsigned long l1_expiration; }; -struct r8a779f0_eth_serdes_drv_data { - void *addr; - struct platform_device *pdev; - struct reset_control *reset; - struct r8a779f0_eth_serdes_channel channel[3]; - bool initialized; +struct clk_periph_driver_data { + struct clk_hw_onecell_data *hw_data; + spinlock_t lock; + void *reg; + u32 tbg_sel; + u32 div_sel0; + u32 div_sel1; + u32 div_sel2; + u32 clk_sel; + u32 clk_dis; }; -enum iproc_pinconf_ctrl_type { - IOCTRL_TYPE_AON = 1, - IOCTRL_TYPE_CDRU = 2, - IOCTRL_TYPE_INVALID = 3, -}; +struct clk_smd_rpm; -enum iproc_pinconf_param { - IPROC_PINCONF_DRIVE_STRENGTH = 0, - IPROC_PINCONF_BIAS_DISABLE = 1, - IPROC_PINCONF_BIAS_PULL_UP = 2, - IPROC_PINCONF_BIAS_PULL_DOWN = 3, - IPROC_PINCON_MAX = 4, +struct rpm_smd_clk_desc { + struct clk_smd_rpm **clks; + size_t num_clks; + const struct clk_smd_rpm ** const icc_clks; + size_t num_icc_clks; + bool scaling_before_handover; }; -struct iproc_gpio { - struct device *dev; - void *base; - void *io_ctrl; - enum iproc_pinconf_ctrl_type io_ctrl_type; - raw_spinlock_t lock; - struct gpio_chip gc; - unsigned int num_banks; - bool pinmux_is_supported; - enum pin_config_param *pinconf_disable; - unsigned int nr_pinconf_disable; - struct pinctrl_dev *pctl; - struct pinctrl_desc pctldesc; +struct clk_smd_rpm { + const int rpm_res_type; + const int rpm_key; + const int rpm_clk_id; + const bool active_only; + bool enabled; + bool branch; + struct clk_smd_rpm *peer; + struct clk_hw hw; + unsigned long rate; }; -enum meson_reg_type { - MESON_REG_PULLEN = 0, - MESON_REG_PULL = 1, - MESON_REG_DIR = 2, - MESON_REG_OUT = 3, - MESON_REG_IN = 4, - MESON_REG_DS = 5, - MESON_NUM_REG = 6, +struct clk_smd_rpm_req { + __le32 key; + __le32 nbytes; + __le32 value; }; -enum meson_pinconf_drv { - MESON_PINCONF_DRV_500UA = 0, - MESON_PINCONF_DRV_2500UA = 1, - MESON_PINCONF_DRV_3000UA = 2, - MESON_PINCONF_DRV_4000UA = 3, +struct rcar_gen4_cpg_pll_config { + u8 extal_div; + u8 pll1_mult; + u8 pll1_div; + u8 pll2_mult; + u8 pll2_div; + u8 pll3_mult; + u8 pll3_div; + u8 pll4_mult; + u8 pll4_div; + u8 pll5_mult; + u8 pll5_div; + u8 pll6_mult; + u8 pll6_div; + u8 osc_prediv; }; -enum uniphier_pin_pull_dir { - UNIPHIER_PIN_PULL_UP = 0, - UNIPHIER_PIN_PULL_DOWN = 1, - UNIPHIER_PIN_PULL_UP_FIXED = 2, - UNIPHIER_PIN_PULL_DOWN_FIXED = 3, - UNIPHIER_PIN_PULL_NONE = 4, +enum clk_ids { + LAST_DT_CORE_CLK = 42, + CLK_EXTAL = 43, + CLK_EXTALR = 44, + CLK_MAIN = 45, + CLK_PLL1 = 46, + CLK_PLL20 = 47, + CLK_PLL21 = 48, + CLK_PLL30 = 49, + CLK_PLL31 = 50, + CLK_PLL5 = 51, + CLK_PLL1_DIV2 = 52, + CLK_PLL20_DIV2 = 53, + CLK_PLL21_DIV2 = 54, + CLK_PLL30_DIV2 = 55, + CLK_PLL31_DIV2 = 56, + CLK_PLL5_DIV2 = 57, + CLK_PLL5_DIV4 = 58, + CLK_S1 = 59, + CLK_S3 = 60, + CLK_SDSRC = 61, + CLK_RPCSRC = 62, + CLK_OCO = 63, + MOD_CLK_BASE = 64, }; -enum uniphier_pin_drv_type { - UNIPHIER_PIN_DRV_1BIT = 0, - UNIPHIER_PIN_DRV_2BIT = 1, - UNIPHIER_PIN_DRV_3BIT = 2, - UNIPHIER_PIN_DRV_FIXED4 = 3, - UNIPHIER_PIN_DRV_FIXED5 = 4, - UNIPHIER_PIN_DRV_FIXED8 = 5, - UNIPHIER_PIN_DRV_NONE = 6, +struct _ccu_nm { + unsigned long n; + unsigned long min_n; + unsigned long max_n; + unsigned long m; + unsigned long min_m; + unsigned long max_m; }; -struct uniphier_pinctrl_reg_region { - struct list_head node; - unsigned int base; - unsigned int nregs; - u32 vals[0]; +struct tegra_cpu_car_ops { + void (*wait_for_reset)(u32); + void (*put_in_reset)(u32); + void (*out_of_reset)(u32); + void (*enable_clock)(u32); + void (*disable_clock)(u32); + bool (*rail_off_ready)(); + void (*suspend)(); + void (*resume)(); }; -struct uniphier_pinctrl_priv { - struct pinctrl_desc pctldesc; - struct pinctrl_dev *pctldev; - struct regmap *regmap; - const struct uniphier_pinctrl_socdata *socdata; - struct list_head reg_regions; -}; +typedef void (*tegra_clk_apply_init_table_func)(); -struct uniphier_gpio_priv { - struct gpio_chip chip; - struct irq_chip irq_chip; - struct irq_domain *domain; - void *regs; - spinlock_t lock; - u32 saved_vals[0]; +struct tegra_clk_periph_regs { + u32 enb_reg; + u32 enb_set_reg; + u32 enb_clr_reg; + u32 rst_reg; + u32 rst_set_reg; + u32 rst_clr_reg; }; -struct mobiveil_msi { - struct mutex lock; - struct irq_domain *msi_domain; - struct irq_domain *dev_domain; - phys_addr_t msi_pages_phys; - int num_of_vectors; - unsigned long msi_irq_in_use[1]; +struct tegra_clk_duplicate { + int clk_id; + struct clk_lookup lookup; }; -struct mobiveil_rp_ops; +struct tegra_clk_init_table { + unsigned int clk_id; + unsigned int parent_id; + unsigned long rate; + int state; +}; -struct mobiveil_root_port { - void *config_axi_slave_base; - struct resource *ob_io_res; - struct mobiveil_rp_ops *ops; - int irq; - raw_spinlock_t intx_mask_lock; - struct irq_domain *intx_domain; - struct mobiveil_msi msi; - struct pci_host_bridge *bridge; +struct tegra_devclk { + int dt_id; + char *dev_id; + char *con_id; }; -struct mobiveil_pab_ops; +struct tegra_clk { + int dt_id; + bool present; +}; -struct mobiveil_pcie { - struct platform_device *pdev; - void *csr_axi_slave_base; - void *apb_csr_base; - phys_addr_t pcie_reg_base; - int apio_wins; - int ppio_wins; - int ob_wins_configured; - int ib_wins_configured; - const struct mobiveil_pab_ops *ops; - struct mobiveil_root_port rp; +enum uniphier_clk_type { + UNIPHIER_CLK_TYPE_CPUGEAR = 0, + UNIPHIER_CLK_TYPE_FIXED_FACTOR = 1, + UNIPHIER_CLK_TYPE_FIXED_RATE = 2, + UNIPHIER_CLK_TYPE_GATE = 3, + UNIPHIER_CLK_TYPE_MUX = 4, }; -struct mobiveil_pab_ops { - int (*link_up)(struct mobiveil_pcie *); +struct uniphier_clk_fixed_factor_data { + const char *parent_name; + unsigned int mult; + unsigned int div; }; -struct mobiveil_rp_ops { - int (*interrupt_init)(struct mobiveil_pcie *); +struct uniphier_clk_fixed_rate_data { + unsigned long fixed_rate; }; -enum ipmi_plat_interface_type { - IPMI_PLAT_IF_SI = 0, - IPMI_PLAT_IF_SSIF = 1, +struct uniphier_clk_gate_data { + const char *parent_name; + unsigned int reg; + unsigned int bit; }; -enum ipmi_addr_src { - SI_INVALID = 0, - SI_HOTMOD = 1, - SI_HARDCODED = 2, - SI_SPMI = 3, - SI_ACPI = 4, - SI_SMBIOS = 5, - SI_PCI = 6, - SI_DEVICETREE = 7, - SI_PLATFORM = 8, - SI_LAST = 9, +struct uniphier_clk_mux_data { + const char *parent_names[8]; + unsigned int num_parents; + unsigned int reg; + unsigned int masks[8]; + unsigned int vals[8]; }; -enum si_type { - SI_TYPE_INVALID = 0, - SI_KCS = 1, - SI_SMIC = 2, - SI_BT = 3, - SI_TYPE_MAX = 4, +struct uniphier_clk_data { + const char *name; + enum uniphier_clk_type type; + int idx; + union { + struct uniphier_clk_cpugear_data cpugear; + struct uniphier_clk_fixed_factor_data factor; + struct uniphier_clk_fixed_rate_data rate; + struct uniphier_clk_gate_data gate; + struct uniphier_clk_mux_data mux; + } data; }; -enum ipmi_addr_space { - IPMI_IO_ADDR_SPACE = 0, - IPMI_MEM_ADDR_SPACE = 1, +struct visconti_reset { + struct reset_controller_dev rcdev; + struct regmap *regmap; + const struct visconti_reset_data *resets; + spinlock_t *lock; }; -struct ipmi_plat_data { - enum ipmi_plat_interface_type iftype; - unsigned int type; - unsigned int space; - unsigned long addr; - unsigned int regspacing; - unsigned int regsize; - unsigned int regshift; - unsigned int irq; - unsigned int slave_addr; - enum ipmi_addr_src addr_source; +enum rz_dmac_prep_type { + RZ_DMAC_DESC_MEMCPY = 0, + RZ_DMAC_DESC_SLAVE_SG = 1, }; -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 rz_dmac_chan; -struct clk_lookup_alloc { - struct clk_lookup cl; - char dev_id[20]; - char con_id[16]; +struct rz_dmac { + struct dma_device engine; + struct device *dev; + struct reset_control *rstc; + void *base; + void *ext_base; + unsigned int n_channels; + struct rz_dmac_chan *channels; + unsigned long modules[16]; }; -struct clk_pll_table; +struct rz_dmac_desc; -struct owl_pll_hw { - u32 reg; - u32 bfreq; - u8 bit_idx; - u8 shift; - u8 width; - u8 min_mul; - u8 max_mul; - u8 delay; - const struct clk_pll_table *table; -}; +struct rz_lmdesc; -struct owl_pll { - struct owl_pll_hw pll_hw; - struct owl_clk_common common; +struct rz_dmac_chan { + struct virt_dma_chan vc; + void *ch_base; + void *ch_cmn_base; + unsigned int index; + int irq; + struct rz_dmac_desc *desc; + int descs_allocated; + dma_addr_t src_per_address; + dma_addr_t dst_per_address; + u32 chcfg; + u32 chctrl; + int mid_rid; + struct list_head ld_free; + struct list_head ld_queue; + struct list_head ld_active; + struct { + struct rz_lmdesc *base; + struct rz_lmdesc *head; + struct rz_lmdesc *tail; + dma_addr_t base_dma; + } lmdesc; }; -struct clk_pll_table { - unsigned int val; - unsigned long rate; +struct rz_dmac_desc { + struct virt_dma_desc vd; + dma_addr_t src; + dma_addr_t dest; + size_t len; + struct list_head node; + enum dma_transfer_direction direction; + enum rz_dmac_prep_type type; + struct scatterlist *sg; + unsigned int sgcount; }; -struct clk_pfdv2 { - struct clk_hw hw; - void *reg; - u8 gate_bit; - u8 vld_bit; - u8 frac_off; +struct rz_lmdesc { + u32 header; + u32 sa; + u32 da; + u32 tb; + u32 chcfg; + u32 chitvl; + u32 chext; + u32 nxla; }; -struct frac_entry { - int num; - int den; +struct bm_addr { + void *ce; + __be32 *ce_be; + void *ci; }; -enum freq_policy { - FLOOR = 0, - CEIL = 1, -}; +struct bm_rcr_entry; -struct clk_rcg2_gfx3d { - u8 div; - struct clk_rcg2 rcg; - struct clk_hw **hws; +struct bm_rcr { + struct bm_rcr_entry *ring; + struct bm_rcr_entry *cursor; + u8 ci; + u8 available; + u8 ithresh; + u8 vbit; }; -struct cpg_core_clk___2; - -struct rzg2l_mod_clk; +struct bm_mc_command; -struct rzg2l_reset; +union bm_mc_result; -struct rzg2l_cpg_info { - const struct cpg_core_clk___2 *core_clks; - unsigned int num_core_clks; - unsigned int last_dt_core_clk; - unsigned int num_total_core_clks; - const struct rzg2l_mod_clk *mod_clks; - unsigned int num_mod_clks; - unsigned int num_hw_mod_clks; - const unsigned int *no_pm_mod_clks; - unsigned int num_no_pm_mod_clks; - const struct rzg2l_reset *resets; - unsigned int num_resets; - const unsigned int *crit_mod_clks; - unsigned int num_crit_mod_clks; - bool has_clk_mon_regs; +struct bm_mc { + struct bm_mc_command *cr; + union bm_mc_result *rr; + u8 rridx; + u8 vbit; }; -struct cpg_core_clk___2 { - const char *name; - unsigned int id; - unsigned int parent; - unsigned int div; - unsigned int mult; - unsigned int type; - unsigned int conf; - const struct clk_div_table *dtable; - const char * const *parent_names; - int flag; - int mux_flags; - int num_parents; +struct bm_portal { + struct bm_addr addr; + struct bm_rcr rcr; + struct bm_mc mc; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct rzg2l_mod_clk { - const char *name; - unsigned int id; - unsigned int parent; - u16 off; - u8 bit; - bool is_coupled; +struct bm_portal_config; + +struct bman_portal { + struct bm_portal p; + unsigned long irq_sources; + const struct bm_portal_config *config; + char irqname[16]; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct rzg2l_reset { - u16 off; - u8 bit; - s8 monbit; +struct bm_buffer { + union { + struct { + __be16 bpid; + __be16 hi; + __be32 lo; + }; + __be64 data; + }; }; -struct usb2_clock_sel_priv { - void *base; - struct clk_hw hw; - struct clk_bulk_data clks[2]; - struct reset_control *rsts; - bool extal; - bool xtal; +struct bm_rcr_entry { + union { + struct { + u8 _ncw_verb; + u8 bpid; + u8 __reserved1[62]; + }; + struct bm_buffer bufs[8]; + }; }; -struct ccu_nkmp { - u32 enable; - u32 lock; - struct ccu_mult_internal n; - struct ccu_mult_internal k; - struct ccu_div_internal m; - struct ccu_div_internal p; - unsigned int fixed_post_div; - unsigned int max_rate; - struct ccu_common common; +struct bm_mc_command { + u8 _ncw_verb; + u8 bpid; + u8 __reserved[62]; }; -struct _ccu_nkmp { - unsigned long n; - unsigned long min_n; - unsigned long max_n; - unsigned long k; - unsigned long min_k; - unsigned long max_k; - unsigned long m; - unsigned long min_m; - unsigned long max_m; - unsigned long p; - unsigned long min_p; - unsigned long max_p; +union bm_mc_result { + struct { + u8 verb; + u8 bpid; + u8 __reserved[62]; + }; + struct bm_buffer bufs[8]; }; -struct ccu_sdm_setting; +struct bm_portal_config { + void *addr_virt_ce; + void *addr_virt_ci; + struct list_head list; + struct device *dev; + int cpu; + int irq; +}; -struct ccu_sdm_internal { - struct ccu_sdm_setting *table; - u32 table_size; - u32 enable; - u32 tuning_enable; - u16 tuning_reg; +enum bm_rcr_pmode { + bm_rcr_pci = 0, + bm_rcr_pce = 1, + bm_rcr_pvb = 2, }; -struct ccu_nm { - u32 enable; - u32 lock; - struct ccu_mult_internal n; - struct ccu_div_internal m; - struct ccu_frac_internal frac; - struct ccu_sdm_internal sdm; - unsigned int fixed_post_div; - unsigned int min_rate; - unsigned int max_rate; - struct ccu_common common; +enum bm_rcr_cmode { + bm_rcr_cci = 0, + bm_rcr_cce = 1, }; -struct ccu_sdm_setting { - unsigned long rate; - u32 pattern; - u32 m; - u32 n; +struct bman_pool { + u32 bpid; + struct bman_portal *portal; + struct bman_pool *next; }; -struct of_dma_filter_info { - dma_cap_mask_t dma_cap; - dma_filter_fn filter_fn; +struct exynos_asv_table { + unsigned int num_rows; + unsigned int num_cols; + u32 *buf; }; -struct cpr_desc; +struct exynos_asv; -struct acc_desc; +struct exynos_asv_subsys { + struct exynos_asv *asv; + const char *cpu_dt_compat; + int id; + struct exynos_asv_table table; + unsigned int base_volt; + unsigned int offset_volt_h; + unsigned int offset_volt_l; +}; -struct cpr_acc_desc { - const struct cpr_desc *cpr_desc; - const struct acc_desc *acc_desc; +struct exynos_asv { + struct device *dev; + struct regmap *chipid_regmap; + struct exynos_asv_subsys subsys[2]; + int (*opp_get_voltage)(const struct exynos_asv_subsys *, int, unsigned int); + unsigned int group; + unsigned int table; + bool use_sg; + int of_bin; }; -struct fuse_corner_data; +struct rcar_sysc_area; -struct cpr_fuses { - int init_voltage_step; - int init_voltage_width; - struct fuse_corner_data *fuse_corner_data; +struct rcar_sysc_info { + int (*init)(); + const struct rcar_sysc_area *areas; + unsigned int num_areas; + u32 extmask_offs; + u32 extmask_val; }; -struct cpr_desc { - unsigned int num_fuse_corners; - int min_diff_quot; - int *step_quot; - unsigned int timer_delay_us; - unsigned int timer_cons_up; - unsigned int timer_cons_down; - unsigned int up_threshold; - unsigned int down_threshold; - unsigned int idle_clocks; - unsigned int gcnt_us; - unsigned int vdd_apc_step_up_limit; - unsigned int vdd_apc_step_down_limit; - unsigned int clamp_timer_interval; - struct cpr_fuses cpr_fuses; - bool reduce_to_fuse_uV; - bool reduce_to_corner_uV; +struct rcar_sysc_area { + const char *name; + u16 chan_offs; + u8 chan_bit; + u8 isr_bit; + s8 parent; + u8 flags; }; -struct fuse_corner_data { - int ref_uV; - int max_uV; - int min_uV; - int max_volt_scale; - int max_quot_scale; - int quot_offset; - int quot_scale; - int quot_adjust; - int quot_offset_scale; - int quot_offset_adjust; -}; +struct rcar_gen4_sysc_area; -struct acc_desc { - unsigned int enable_reg; - u32 enable_mask; - struct reg_sequence *config; - struct reg_sequence *settings; - int num_regs_per_fuse; +struct rcar_gen4_sysc_info { + const struct rcar_gen4_sysc_area *areas; + unsigned int num_areas; }; -enum voltage_change_dir { - NO_CHANGE = 0, - DOWN___2 = 1, - UP___2 = 2, +struct rcar_gen4_sysc_area { + const char *name; + u8 pdr; + s8 parent; + u8 flags; }; -struct corner; - -struct fuse_corner; - -struct cpr_fuse; - -struct cpr_drv { - unsigned int num_corners; - unsigned int ref_clk_khz; - struct generic_pm_domain pd; - struct device *dev; - struct device *attached_cpu_dev; - struct mutex lock; - void *base; - struct corner *corner; - struct regulator *vdd_apc; - struct clk *cpu_clk; - struct regmap *tcsr; - bool loop_disabled; - u32 gcnt; - unsigned long flags; - struct fuse_corner *fuse_corners; - struct corner *corners; - const struct cpr_desc *desc; - const struct acc_desc *acc_desc; - const struct cpr_fuse *cpr_fuses; - struct dentry *debugfs; -}; - -struct corner { - int min_uV; - int max_uV; - int uV; - int last_uV; - int quot_adjust; - u32 save_ctl; - u32 save_irq; - unsigned long freq; - struct fuse_corner *fuse_corner; +struct rcar_sysc_ch { + u16 chan_offs; + u8 chan_bit; + u8 isr_bit; }; -struct fuse_corner { - int min_uV; - int max_uV; - int uV; - int quot; - int step_quot; - const struct reg_sequence *accs; - int num_accs; - unsigned long max_freq; - u8 ring_osc_idx; +struct rcar_sysc_pd { + struct generic_pm_domain genpd; + struct rcar_sysc_ch ch; + unsigned int flags; + char name[0]; }; -struct cpr_fuse { - char *ring_osc; - char *init_voltage; - char *quotient; - char *quotient_offset; +struct rcar_pm_domains { + struct genpd_onecell_data onecell_data; + struct generic_pm_domain *domains[33]; }; -struct corner_data { - unsigned int fuse_corner; - unsigned long freq; +struct evtchn_loop_ctrl { + ktime_t timeout; + unsigned int count; + bool defer_eoi; }; -struct mmu_interval_notifier; - -struct mmu_interval_notifier_ops { - bool (*invalidate)(struct mmu_interval_notifier *, const struct mmu_notifier_range *, unsigned long); +enum ipi_vector { + XEN_PLACEHOLDER_VECTOR = 0, + XEN_NR_IPIS = 1, }; -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 irq_info { + struct list_head list; + struct list_head eoi_list; + struct rcu_work rwork; + short refcnt; + u8 spurious_cnt; + u8 is_accounted; + short type; + u8 mask_reason; + u8 is_active; + unsigned int irq; + evtchn_port_t evtchn; + unsigned short cpu; + unsigned short eoi_cpu; + unsigned int irq_epoch; + u64 eoi_time; + raw_spinlock_t lock; + bool is_static; + union { + unsigned short virq; + enum ipi_vector ipi; + struct { + unsigned short pirq; + unsigned short gsi; + unsigned char vector; + unsigned char flags; + uint16_t domid; + } pirq; + struct xenbus_device *interdomain; + } u; }; -struct gntdev_unmap_notify { - int flags; - int addr; - evtchn_port_t event; +struct lateeoi_work { + struct delayed_work delayed; + spinlock_t eoi_list_lock; + struct list_head eoi_list; }; -struct gntab_unmap_queue_data; - -typedef void (*gnttab_unmap_refs_done)(int, struct gntab_unmap_queue_data *); - -struct gntab_unmap_queue_data { - struct delayed_work gnttab_work; - void *data; - gnttab_unmap_refs_done done; - struct gnttab_unmap_grant_ref *unmap_ops; - struct gnttab_unmap_grant_ref *kunmap_ops; - struct page **pages; - unsigned int count; - unsigned int age; +enum xen_irq_type { + IRQT_UNBOUND = 0, + IRQT_PIRQ = 1, + IRQT_VIRQ = 2, + IRQT_IPI = 3, + IRQT_EVTCHN = 4, }; -struct ioctl_gntdev_grant_ref; - -struct gntdev_grant_map { - atomic_t in_use; - struct mmu_interval_notifier notifier; - bool notifier_init; - struct list_head next; - int index; - int count; - int flags; - refcount_t users; - struct gntdev_unmap_notify notify; - struct ioctl_gntdev_grant_ref *grants; - struct gnttab_map_grant_ref *map_ops; - struct gnttab_unmap_grant_ref *unmap_ops; - struct gnttab_map_grant_ref *kmap_ops; - struct gnttab_unmap_grant_ref *kunmap_ops; - bool *being_removed; - struct page **pages; - unsigned long pages_vm_start; - atomic_t live_grants; - struct gntab_unmap_queue_data unmap_data; +struct evtchn_send { + evtchn_port_t port; }; -struct ioctl_gntdev_grant_ref { - __u32 domid; - __u32 ref; +struct physdev_irq_status_query { + uint32_t irq; + uint32_t flags; }; -struct evtchn_send { +struct evtchn_close { evtchn_port_t port; }; -struct gntdev_priv { - struct list_head maps; - struct mutex lock; +struct evtchn_bind_interdomain { + domid_t remote_dom; + evtchn_port_t remote_port; + evtchn_port_t local_port; }; -struct ioctl_gntdev_map_grant_ref { - __u32 count; - __u32 pad; - __u64 index; - struct ioctl_gntdev_grant_ref refs[1]; +struct evtchn_status { + domid_t dom; + evtchn_port_t port; + uint32_t status; + uint32_t vcpu; + union { + struct { + domid_t dom; + } unbound; + struct { + domid_t dom; + evtchn_port_t port; + } interdomain; + uint32_t pirq; + uint32_t virq; + } u; }; -struct ioctl_gntdev_unmap_notify { - __u64 index; - __u32 action; - __u32 event_channel_port; +struct evtchn_bind_ipi { + uint32_t vcpu; + evtchn_port_t port; }; -struct gntdev_grant_copy_segment; +typedef struct { + union { + evtchn_port_t *p; + uint64_t q; + }; +} __guest_handle_evtchn_port_t; -struct ioctl_gntdev_grant_copy { - unsigned int count; - struct gntdev_grant_copy_segment __attribute__((btf_type_tag("user"))) *segments; +struct sched_poll { + __guest_handle_evtchn_port_t ports; + unsigned int nr_ports; + uint64_t timeout; }; -struct gntdev_grant_copy_segment { - union { - void __attribute__((btf_type_tag("user"))) *virt; - struct { - grant_ref_t ref; - __u16 offset; - domid_t domid; - } foreign; - } source; - union { - void __attribute__((btf_type_tag("user"))) *virt; - struct { - grant_ref_t ref; - __u16 offset; - domid_t domid; - } foreign; - } dest; - __u16 len; - __u16 flags; - __s16 status; +struct evtchn_bind_virq { + uint32_t virq; + uint32_t vcpu; + evtchn_port_t port; }; -struct gnttab_copy_ptr { - union { - grant_ref_t ref; - xen_pfn_t gmfn; - } u; +struct physdev_map_pirq { domid_t domid; - uint16_t offset; + int type; + int index; + int pirq; + int bus; + int devfn; + int entry_nr; + uint64_t table_base; }; -struct gnttab_copy { - struct gnttab_copy_ptr source; - struct gnttab_copy_ptr dest; - uint16_t len; - uint16_t flags; - int16_t status; +struct physdev_eoi { + uint32_t irq; }; -struct gntdev_copy_batch { - struct gnttab_copy ops[16]; - struct page *pages[16]; - s16 __attribute__((btf_type_tag("user"))) *status[16]; - unsigned int nr_ops; - unsigned int nr_pages; - bool writeable; +struct evtchn_bind_vcpu { + evtchn_port_t port; + uint32_t vcpu; }; -struct ioctl_gntdev_get_offset_for_vaddr { - __u64 vaddr; - __u64 offset; - __u32 count; - __u32 pad; +struct physdev_irq { + uint32_t irq; + uint32_t vector; }; -struct ioctl_gntdev_unmap_grant_ref { - __u64 index; - __u32 count; - __u32 pad; +struct physdev_get_free_pirq { + int type; + uint32_t pirq; }; -struct xmaddr { - phys_addr_t maddr; +struct physdev_unmap_pirq { + domid_t domid; + int pirq; }; -typedef struct xmaddr xmaddr_t; - -enum pwm_polarity { - PWM_POLARITY_NORMAL = 0, - PWM_POLARITY_INVERSED = 1, +struct evtchn_set_priority { + evtchn_port_t port; + uint32_t priority; }; -struct pwm_continuous_reg_data { - unsigned int min_uV_dutycycle; - unsigned int max_uV_dutycycle; - unsigned int dutycycle_unit; +struct evtchn_bind_pirq { + uint32_t pirq; + uint32_t flags; + evtchn_port_t port; }; -struct pwm_device; - -struct pwm_voltages; - -struct pwm_regulator_data { - struct pwm_device *pwm; - struct pwm_voltages *duty_cycle_table; - struct pwm_continuous_reg_data continuous; - struct regulator_desc desc; - int state; - struct gpio_desc *enb_gpio; +struct npcm_reset_info { + u32 bmc_id; + u32 num_ipsrst; + const u32 *ipsrst; }; -struct pwm_args { - u64 period; - enum pwm_polarity polarity; +enum { + BMC_NPCM7XX = 0, + BMC_NPCM8XX = 1, }; -struct pwm_state { - u64 period; - u64 duty_cycle; - enum pwm_polarity polarity; - bool enabled; - bool usage_power; +struct npcm_rc_data { + struct reset_controller_dev rcdev; + struct notifier_block restart_nb; + const struct npcm_reset_info *info; + struct regmap *gcr_regmap; + u32 sw_reset_number; + void *base; + spinlock_t lock; }; -struct pwm_chip; +struct hv_ops; -struct pwm_device { - const char *label; +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; - 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 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 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 bcm2835_aux_serial_driver_data { + resource_size_t offset; }; -struct pwm_capture { - unsigned int period; - unsigned int duty_cycle; +struct bcm2835aux_data { + struct clk *clk; + int line; + u32 cntl; }; -struct pwm_voltages { - unsigned int uV; - unsigned int dutycycle; +struct uart_regs_layout { + unsigned int rbr; + unsigned int tsh; + unsigned int ctrl; + unsigned int intr; }; -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 uart_flags { + unsigned int ctrl_tx_rdy_int; + unsigned int ctrl_rx_rdy_int; + unsigned int stat_tx_rdy; + unsigned int stat_rx_rdy; }; -struct exar8250 { - unsigned int nr; - struct exar8250_board *board; - void *virt; - int line[0]; +struct mvebu_uart_driver_data { + bool is_ext; + struct uart_regs_layout regs; + struct uart_flags flags; }; -struct exar8250_platform { - int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); - const struct serial_rs485 *rs485_supported; - int (*register_gpio)(struct pci_dev *, struct uart_8250_port *); - void (*unregister_gpio)(struct uart_8250_port *); +enum { + UART_IRQ_SUM = 0, + UART_RX_IRQ = 0, + UART_TX_IRQ = 1, + UART_IRQ_COUNT = 2, }; -struct omap_rng_dev; - -struct omap_rng_pdata { - u16 *regs; - u32 data_size; - u32 (*data_present)(struct omap_rng_dev *); - int (*init)(struct omap_rng_dev *); - void (*cleanup)(struct omap_rng_dev *); +struct mvebu_uart_pm_regs { + unsigned int rbr; + unsigned int tsh; + unsigned int ctrl; + unsigned int intr; + unsigned int stat; + unsigned int brdv; + unsigned int osamp; }; -struct omap_rng_dev { - void *base; - struct device *dev; - const struct omap_rng_pdata *pdata; - struct hwrng rng; +struct mvebu_uart { + struct uart_port *port; struct clk *clk; - struct clk *clk_reg; -}; - -enum { - RNG_OUTPUT_0_REG = 0, - RNG_OUTPUT_1_REG = 1, - RNG_OUTPUT_2_REG = 2, - RNG_OUTPUT_3_REG = 3, - RNG_STATUS_REG = 4, - RNG_INTMASK_REG = 5, - RNG_INTACK_REG = 6, - RNG_CONTROL_REG = 7, - RNG_CONFIG_REG = 8, - RNG_ALARMCNT_REG = 9, - RNG_FROENABLE_REG = 10, - RNG_FRODETUNE_REG = 11, - RNG_ALARMMASK_REG = 12, - RNG_ALARMSTOP_REG = 13, - RNG_REV_REG = 14, - RNG_SYSCONFIG_REG = 15, -}; - -enum tpm_chip_flags { - TPM_CHIP_FLAG_BOOTSTRAPPED = 1, - 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, - TPM_CHIP_FLAG_SUSPENDED = 256, - TPM_CHIP_FLAG_HWRNG_DISABLED = 512, + int irq[2]; + struct mvebu_uart_driver_data *data; + struct mvebu_uart_pm_regs pm_regs; }; -struct tpm_bios_log { - void *bios_event_log; - void *bios_event_log_end; +struct mvebu_uart_clock { + struct clk_hw clk_hw; + int clock_idx; + u32 pm_context_reg1; + u32 pm_context_reg2; }; -struct tpm_chip; - -struct tpm_chip_seqops { - struct tpm_chip *chip; - const struct seq_operations *seqops; +struct mvebu_uart_clock_base { + struct mvebu_uart_clock clocks[2]; + unsigned int parent_rates[5]; + int parent_idx; + unsigned int div; + void *reg1; + void *reg2; + bool configured; }; -struct tpm_space { - u32 context_tbl[3]; - u8 *context_buf; - u32 session_tbl[3]; - u8 *session_buf; - u32 buf_size; -}; +typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *); -struct tpm_class_ops; +typedef void (*btf_trace_remove_device_from_group)(void *, int, struct device *); -struct tpm_bank_info; +typedef void (*btf_trace_attach_device_to_domain)(void *, struct device *); -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; -}; +typedef void (*btf_trace_map)(void *, unsigned long, phys_addr_t, size_t); -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); -}; +typedef void (*btf_trace_unmap)(void *, unsigned long, size_t, size_t); -struct tpm_bank_info { - u16 alg_id; - u16 digest_size; - u16 crypto_id; -}; +typedef void (*btf_trace_io_page_fault)(void *, struct device *, unsigned long, int); -struct platform_object { - struct platform_device pdev; - char name[0]; +struct trace_event_raw_iommu_group_event { + struct trace_entry ent; + int gid; + u32 __data_loc_device; + char __data[0]; }; -struct irq_affinity_devres { - unsigned int count; - unsigned int irq[0]; +struct trace_event_raw_iommu_device_event { + struct trace_entry ent; + u32 __data_loc_device; + char __data[0]; }; -struct regmap_irq_chip_data { - struct mutex lock; - struct irq_chip irq_chip; - struct regmap *map; - const struct regmap_irq_chip *chip; - int irq_base; - struct irq_domain *domain; - int irq; - int wake_count; - void *status_reg_buf; - unsigned int *main_status_buf; - unsigned int *status_buf; - unsigned int *mask_buf; - unsigned int *mask_buf_def; - unsigned int *wake_buf; - unsigned int *type_buf; - unsigned int *type_buf_def; - unsigned int **config_buf; - unsigned int irq_reg_stride; - unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int); - unsigned int clear_status: 1; +struct trace_event_raw_map { + struct trace_entry ent; + u64 iova; + u64 paddr; + size_t size; + char __data[0]; }; -enum hi6421_type { - HI6421 = 0, - HI6421_V530 = 1, +struct trace_event_raw_unmap { + struct trace_entry ent; + u64 iova; + size_t size; + size_t unmapped_size; + char __data[0]; }; -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, +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]; }; -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 trace_event_data_offsets_iommu_group_event { + u32 device; }; -struct a3700_spi { - struct spi_controller *host; - void *base; - struct clk *clk; - unsigned int irq; - unsigned int flags; - bool xmit_data; - const u8 *tx_buf; - u8 *rx_buf; - size_t buf_len; - u8 byte_len; - u32 wait_mask; - struct completion done; +struct trace_event_data_offsets_iommu_device_event { + u32 device; }; -struct mv3310_chip { - bool (*has_downshift)(struct phy_device *); - void (*init_supported_interfaces)(unsigned long *); - int (*get_mactype)(struct phy_device *); - int (*set_mactype)(struct phy_device *, int); - int (*select_mactype)(unsigned long *); - int (*init_interface)(struct phy_device *, int); - int (*hwmon_read_temp_reg)(struct phy_device *); +struct trace_event_data_offsets_iommu_error { + u32 device; + u32 driver; }; -struct hwmon_ops; - -struct hwmon_channel_info; +struct trace_event_data_offsets_map {}; -struct hwmon_chip_info { - const struct hwmon_ops *ops; - const struct hwmon_channel_info * const *info; -}; +struct trace_event_data_offsets_unmap {}; -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 anon_transport_class { + struct transport_class tclass; + struct attribute_container container; }; -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 bcm2835_pm { + struct device *dev; + void *base; + void *asb; + void *rpivid_asb; }; -struct hwmon_channel_info { - enum hwmon_sensor_types type; - const u32 *config; +enum s2mpa01_reg { + S2MPA01_REG_ID = 0, + S2MPA01_REG_INT1 = 1, + S2MPA01_REG_INT2 = 2, + S2MPA01_REG_INT3 = 3, + S2MPA01_REG_INT1M = 4, + S2MPA01_REG_INT2M = 5, + S2MPA01_REG_INT3M = 6, + S2MPA01_REG_ST1 = 7, + S2MPA01_REG_ST2 = 8, + S2MPA01_REG_PWRONSRC = 9, + S2MPA01_REG_OFFSRC = 10, + S2MPA01_REG_RTC_BUF = 11, + S2MPA01_REG_CTRL1 = 12, + S2MPA01_REG_ETC_TEST = 13, + S2MPA01_REG_RSVD1 = 14, + S2MPA01_REG_BU_CHG = 15, + S2MPA01_REG_RAMP1 = 16, + S2MPA01_REG_RAMP2 = 17, + S2MPA01_REG_LDO_DSCH1 = 18, + S2MPA01_REG_LDO_DSCH2 = 19, + S2MPA01_REG_LDO_DSCH3 = 20, + S2MPA01_REG_LDO_DSCH4 = 21, + S2MPA01_REG_OTP_ADRL = 22, + S2MPA01_REG_OTP_ADRH = 23, + S2MPA01_REG_OTP_DATA = 24, + S2MPA01_REG_MON1SEL = 25, + S2MPA01_REG_MON2SEL = 26, + S2MPA01_REG_LEE = 27, + S2MPA01_REG_RSVD2 = 28, + S2MPA01_REG_RSVD3 = 29, + S2MPA01_REG_RSVD4 = 30, + S2MPA01_REG_RSVD5 = 31, + S2MPA01_REG_RSVD6 = 32, + S2MPA01_REG_TOP_RSVD = 33, + S2MPA01_REG_DVS_SEL = 34, + S2MPA01_REG_DVS_PTR = 35, + S2MPA01_REG_DVS_DATA = 36, + S2MPA01_REG_RSVD_NO = 37, + S2MPA01_REG_UVLO = 38, + S2MPA01_REG_LEE_NO = 39, + S2MPA01_REG_B1CTRL1 = 40, + S2MPA01_REG_B1CTRL2 = 41, + S2MPA01_REG_B2CTRL1 = 42, + S2MPA01_REG_B2CTRL2 = 43, + S2MPA01_REG_B3CTRL1 = 44, + S2MPA01_REG_B3CTRL2 = 45, + S2MPA01_REG_B4CTRL1 = 46, + S2MPA01_REG_B4CTRL2 = 47, + S2MPA01_REG_B5CTRL1 = 48, + S2MPA01_REG_B5CTRL2 = 49, + S2MPA01_REG_B5CTRL3 = 50, + S2MPA01_REG_B5CTRL4 = 51, + S2MPA01_REG_B5CTRL5 = 52, + S2MPA01_REG_B5CTRL6 = 53, + S2MPA01_REG_B6CTRL1 = 54, + S2MPA01_REG_B6CTRL2 = 55, + S2MPA01_REG_B7CTRL1 = 56, + S2MPA01_REG_B7CTRL2 = 57, + S2MPA01_REG_B8CTRL1 = 58, + S2MPA01_REG_B8CTRL2 = 59, + S2MPA01_REG_B9CTRL1 = 60, + S2MPA01_REG_B9CTRL2 = 61, + S2MPA01_REG_B10CTRL1 = 62, + S2MPA01_REG_B10CTRL2 = 63, + S2MPA01_REG_L1CTRL = 64, + S2MPA01_REG_L2CTRL = 65, + S2MPA01_REG_L3CTRL = 66, + S2MPA01_REG_L4CTRL = 67, + S2MPA01_REG_L5CTRL = 68, + S2MPA01_REG_L6CTRL = 69, + S2MPA01_REG_L7CTRL = 70, + S2MPA01_REG_L8CTRL = 71, + S2MPA01_REG_L9CTRL = 72, + S2MPA01_REG_L10CTRL = 73, + S2MPA01_REG_L11CTRL = 74, + S2MPA01_REG_L12CTRL = 75, + S2MPA01_REG_L13CTRL = 76, + S2MPA01_REG_L14CTRL = 77, + S2MPA01_REG_L15CTRL = 78, + S2MPA01_REG_L16CTRL = 79, + S2MPA01_REG_L17CTRL = 80, + S2MPA01_REG_L18CTRL = 81, + S2MPA01_REG_L19CTRL = 82, + S2MPA01_REG_L20CTRL = 83, + S2MPA01_REG_L21CTRL = 84, + S2MPA01_REG_L22CTRL = 85, + S2MPA01_REG_L23CTRL = 86, + S2MPA01_REG_L24CTRL = 87, + S2MPA01_REG_L25CTRL = 88, + S2MPA01_REG_L26CTRL = 89, + S2MPA01_REG_LDO_OVCB1 = 90, + S2MPA01_REG_LDO_OVCB2 = 91, + S2MPA01_REG_LDO_OVCB3 = 92, + S2MPA01_REG_LDO_OVCB4 = 93, }; -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 *); +enum s2mps11_reg { + S2MPS11_REG_ID = 0, + S2MPS11_REG_INT1 = 1, + S2MPS11_REG_INT2 = 2, + S2MPS11_REG_INT3 = 3, + S2MPS11_REG_INT1M = 4, + S2MPS11_REG_INT2M = 5, + S2MPS11_REG_INT3M = 6, + S2MPS11_REG_ST1 = 7, + S2MPS11_REG_ST2 = 8, + S2MPS11_REG_OFFSRC = 9, + S2MPS11_REG_PWRONSRC = 10, + S2MPS11_REG_RTC_CTRL = 11, + S2MPS11_REG_CTRL1 = 12, + S2MPS11_REG_ETC_TEST = 13, + S2MPS11_REG_RSVD3 = 14, + S2MPS11_REG_BU_CHG = 15, + S2MPS11_REG_RAMP = 16, + S2MPS11_REG_RAMP_BUCK = 17, + S2MPS11_REG_LDO1_8 = 18, + S2MPS11_REG_LDO9_16 = 19, + S2MPS11_REG_LDO17_24 = 20, + S2MPS11_REG_LDO25_32 = 21, + S2MPS11_REG_LDO33_38 = 22, + S2MPS11_REG_LDO1_8_1 = 23, + S2MPS11_REG_LDO9_16_1 = 24, + S2MPS11_REG_LDO17_24_1 = 25, + S2MPS11_REG_LDO25_32_1 = 26, + S2MPS11_REG_LDO33_38_1 = 27, + S2MPS11_REG_OTP_ADRL = 28, + S2MPS11_REG_OTP_ADRH = 29, + S2MPS11_REG_OTP_DATA = 30, + S2MPS11_REG_MON1SEL = 31, + S2MPS11_REG_MON2SEL = 32, + S2MPS11_REG_LEE = 33, + S2MPS11_REG_RSVD_NO = 34, + S2MPS11_REG_UVLO = 35, + S2MPS11_REG_LEE_NO = 36, + S2MPS11_REG_B1CTRL1 = 37, + S2MPS11_REG_B1CTRL2 = 38, + S2MPS11_REG_B2CTRL1 = 39, + S2MPS11_REG_B2CTRL2 = 40, + S2MPS11_REG_B3CTRL1 = 41, + S2MPS11_REG_B3CTRL2 = 42, + S2MPS11_REG_B4CTRL1 = 43, + S2MPS11_REG_B4CTRL2 = 44, + S2MPS11_REG_B5CTRL1 = 45, + S2MPS11_REG_BUCK5_SW = 46, + S2MPS11_REG_B5CTRL2 = 47, + S2MPS11_REG_B5CTRL3 = 48, + S2MPS11_REG_B5CTRL4 = 49, + S2MPS11_REG_B5CTRL5 = 50, + S2MPS11_REG_B6CTRL1 = 51, + S2MPS11_REG_B6CTRL2 = 52, + S2MPS11_REG_B7CTRL1 = 53, + S2MPS11_REG_B7CTRL2 = 54, + S2MPS11_REG_B8CTRL1 = 55, + S2MPS11_REG_B8CTRL2 = 56, + S2MPS11_REG_B9CTRL1 = 57, + S2MPS11_REG_B9CTRL2 = 58, + S2MPS11_REG_B10CTRL1 = 59, + S2MPS11_REG_B10CTRL2 = 60, + S2MPS11_REG_L1CTRL = 61, + S2MPS11_REG_L2CTRL = 62, + S2MPS11_REG_L3CTRL = 63, + S2MPS11_REG_L4CTRL = 64, + S2MPS11_REG_L5CTRL = 65, + S2MPS11_REG_L6CTRL = 66, + S2MPS11_REG_L7CTRL = 67, + S2MPS11_REG_L8CTRL = 68, + S2MPS11_REG_L9CTRL = 69, + S2MPS11_REG_L10CTRL = 70, + S2MPS11_REG_L11CTRL = 71, + S2MPS11_REG_L12CTRL = 72, + S2MPS11_REG_L13CTRL = 73, + S2MPS11_REG_L14CTRL = 74, + S2MPS11_REG_L15CTRL = 75, + S2MPS11_REG_L16CTRL = 76, + S2MPS11_REG_L17CTRL = 77, + S2MPS11_REG_L18CTRL = 78, + S2MPS11_REG_L19CTRL = 79, + S2MPS11_REG_L20CTRL = 80, + S2MPS11_REG_L21CTRL = 81, + S2MPS11_REG_L22CTRL = 82, + S2MPS11_REG_L23CTRL = 83, + S2MPS11_REG_L24CTRL = 84, + S2MPS11_REG_L25CTRL = 85, + S2MPS11_REG_L26CTRL = 86, + S2MPS11_REG_L27CTRL = 87, + S2MPS11_REG_L28CTRL = 88, + S2MPS11_REG_L29CTRL = 89, + S2MPS11_REG_L30CTRL = 90, + S2MPS11_REG_L31CTRL = 91, + S2MPS11_REG_L32CTRL = 92, + S2MPS11_REG_L33CTRL = 93, + S2MPS11_REG_L34CTRL = 94, + S2MPS11_REG_L35CTRL = 95, + S2MPS11_REG_L36CTRL = 96, + S2MPS11_REG_L37CTRL = 97, + S2MPS11_REG_L38CTRL = 98, }; -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; +enum S2MPU02_reg { + S2MPU02_REG_ID = 0, + S2MPU02_REG_INT1 = 1, + S2MPU02_REG_INT2 = 2, + S2MPU02_REG_INT3 = 3, + S2MPU02_REG_INT1M = 4, + S2MPU02_REG_INT2M = 5, + S2MPU02_REG_INT3M = 6, + S2MPU02_REG_ST1 = 7, + S2MPU02_REG_ST2 = 8, + S2MPU02_REG_PWRONSRC = 9, + S2MPU02_REG_OFFSRC = 10, + S2MPU02_REG_BU_CHG = 11, + S2MPU02_REG_RTCCTRL = 12, + S2MPU02_REG_PMCTRL1 = 13, + S2MPU02_REG_RSVD1 = 14, + S2MPU02_REG_RSVD2 = 15, + S2MPU02_REG_RSVD3 = 16, + S2MPU02_REG_RSVD4 = 17, + S2MPU02_REG_RSVD5 = 18, + S2MPU02_REG_RSVD6 = 19, + S2MPU02_REG_RSVD7 = 20, + S2MPU02_REG_WRSTEN = 21, + S2MPU02_REG_RSVD8 = 22, + S2MPU02_REG_RSVD9 = 23, + S2MPU02_REG_RSVD10 = 24, + S2MPU02_REG_B1CTRL1 = 25, + S2MPU02_REG_B1CTRL2 = 26, + S2MPU02_REG_B2CTRL1 = 27, + S2MPU02_REG_B2CTRL2 = 28, + S2MPU02_REG_B3CTRL1 = 29, + S2MPU02_REG_B3CTRL2 = 30, + S2MPU02_REG_B4CTRL1 = 31, + S2MPU02_REG_B4CTRL2 = 32, + S2MPU02_REG_B5CTRL1 = 33, + S2MPU02_REG_B5CTRL2 = 34, + S2MPU02_REG_B5CTRL3 = 35, + S2MPU02_REG_B5CTRL4 = 36, + S2MPU02_REG_B5CTRL5 = 37, + S2MPU02_REG_B6CTRL1 = 38, + S2MPU02_REG_B6CTRL2 = 39, + S2MPU02_REG_B7CTRL1 = 40, + S2MPU02_REG_B7CTRL2 = 41, + S2MPU02_REG_RAMP1 = 42, + S2MPU02_REG_RAMP2 = 43, + S2MPU02_REG_L1CTRL = 44, + S2MPU02_REG_L2CTRL1 = 45, + S2MPU02_REG_L2CTRL2 = 46, + S2MPU02_REG_L2CTRL3 = 47, + S2MPU02_REG_L2CTRL4 = 48, + S2MPU02_REG_L3CTRL = 49, + S2MPU02_REG_L4CTRL = 50, + S2MPU02_REG_L5CTRL = 51, + S2MPU02_REG_L6CTRL = 52, + S2MPU02_REG_L7CTRL = 53, + S2MPU02_REG_L8CTRL = 54, + S2MPU02_REG_L9CTRL = 55, + S2MPU02_REG_L10CTRL = 56, + S2MPU02_REG_L11CTRL = 57, + S2MPU02_REG_L12CTRL = 58, + S2MPU02_REG_L13CTRL = 59, + S2MPU02_REG_L14CTRL = 60, + S2MPU02_REG_L15CTRL = 61, + S2MPU02_REG_L16CTRL = 62, + S2MPU02_REG_L17CTRL = 63, + S2MPU02_REG_L18CTRL = 64, + S2MPU02_REG_L19CTRL = 65, + S2MPU02_REG_L20CTRL = 66, + S2MPU02_REG_L21CTRL = 67, + S2MPU02_REG_L22CTRL = 68, + S2MPU02_REG_L23CTRL = 69, + S2MPU02_REG_L24CTRL = 70, + S2MPU02_REG_L25CTRL = 71, + S2MPU02_REG_L26CTRL = 72, + S2MPU02_REG_L27CTRL = 73, + S2MPU02_REG_L28CTRL = 74, + S2MPU02_REG_LDODSCH1 = 75, + S2MPU02_REG_LDODSCH2 = 76, + S2MPU02_REG_LDODSCH3 = 77, + S2MPU02_REG_LDODSCH4 = 78, + S2MPU02_REG_SELMIF = 79, + S2MPU02_REG_RSVD11 = 80, + S2MPU02_REG_RSVD12 = 81, + S2MPU02_REG_RSVD13 = 82, + S2MPU02_REG_DVSSEL = 83, + S2MPU02_REG_DVSPTR = 84, + S2MPU02_REG_DVSDATA = 85, }; -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; +enum s2mps13_reg { + S2MPS13_REG_ID = 0, + S2MPS13_REG_INT1 = 1, + S2MPS13_REG_INT2 = 2, + S2MPS13_REG_INT3 = 3, + S2MPS13_REG_INT1M = 4, + S2MPS13_REG_INT2M = 5, + S2MPS13_REG_INT3M = 6, + S2MPS13_REG_ST1 = 7, + S2MPS13_REG_ST2 = 8, + S2MPS13_REG_PWRONSRC = 9, + S2MPS13_REG_OFFSRC = 10, + S2MPS13_REG_BU_CHG = 11, + S2MPS13_REG_RTCCTRL = 12, + S2MPS13_REG_CTRL1 = 13, + S2MPS13_REG_CTRL2 = 14, + S2MPS13_REG_RSVD1 = 15, + S2MPS13_REG_RSVD2 = 16, + S2MPS13_REG_RSVD3 = 17, + S2MPS13_REG_RSVD4 = 18, + S2MPS13_REG_RSVD5 = 19, + S2MPS13_REG_RSVD6 = 20, + S2MPS13_REG_CTRL3 = 21, + S2MPS13_REG_RSVD7 = 22, + S2MPS13_REG_RSVD8 = 23, + S2MPS13_REG_WRSTBI = 24, + S2MPS13_REG_B1CTRL = 25, + S2MPS13_REG_B1OUT = 26, + S2MPS13_REG_B2CTRL = 27, + S2MPS13_REG_B2OUT = 28, + S2MPS13_REG_B3CTRL = 29, + S2MPS13_REG_B3OUT = 30, + S2MPS13_REG_B4CTRL = 31, + S2MPS13_REG_B4OUT = 32, + S2MPS13_REG_B5CTRL = 33, + S2MPS13_REG_B5OUT = 34, + S2MPS13_REG_B6CTRL = 35, + S2MPS13_REG_B6OUT = 36, + S2MPS13_REG_B7CTRL = 37, + S2MPS13_REG_B7SW = 38, + S2MPS13_REG_B7OUT = 39, + S2MPS13_REG_B8CTRL = 40, + S2MPS13_REG_B8OUT = 41, + S2MPS13_REG_B9CTRL = 42, + S2MPS13_REG_B9OUT = 43, + S2MPS13_REG_B10CTRL = 44, + S2MPS13_REG_B10OUT = 45, + S2MPS13_REG_BB1CTRL = 46, + S2MPS13_REG_BB1OUT = 47, + S2MPS13_REG_BUCK_RAMP1 = 48, + S2MPS13_REG_BUCK_RAMP2 = 49, + S2MPS13_REG_LDO_DVS1 = 50, + S2MPS13_REG_LDO_DVS2 = 51, + S2MPS13_REG_LDO_DVS3 = 52, + S2MPS13_REG_B6OUT2 = 53, + S2MPS13_REG_L1CTRL = 54, + S2MPS13_REG_L2CTRL = 55, + S2MPS13_REG_L3CTRL = 56, + S2MPS13_REG_L4CTRL = 57, + S2MPS13_REG_L5CTRL = 58, + S2MPS13_REG_L6CTRL = 59, + S2MPS13_REG_L7CTRL = 60, + S2MPS13_REG_L8CTRL = 61, + S2MPS13_REG_L9CTRL = 62, + S2MPS13_REG_L10CTRL = 63, + S2MPS13_REG_L11CTRL = 64, + S2MPS13_REG_L12CTRL = 65, + S2MPS13_REG_L13CTRL = 66, + S2MPS13_REG_L14CTRL = 67, + S2MPS13_REG_L15CTRL = 68, + S2MPS13_REG_L16CTRL = 69, + S2MPS13_REG_L17CTRL = 70, + S2MPS13_REG_L18CTRL = 71, + S2MPS13_REG_L19CTRL = 72, + S2MPS13_REG_L20CTRL = 73, + S2MPS13_REG_L21CTRL = 74, + S2MPS13_REG_L22CTRL = 75, + S2MPS13_REG_L23CTRL = 76, + S2MPS13_REG_L24CTRL = 77, + S2MPS13_REG_L25CTRL = 78, + S2MPS13_REG_L26CTRL = 79, + S2MPS13_REG_L27CTRL = 80, + S2MPS13_REG_L28CTRL = 81, + S2MPS13_REG_L29CTRL = 82, + S2MPS13_REG_L30CTRL = 83, + S2MPS13_REG_L31CTRL = 84, + S2MPS13_REG_L32CTRL = 85, + S2MPS13_REG_L33CTRL = 86, + S2MPS13_REG_L34CTRL = 87, + S2MPS13_REG_L35CTRL = 88, + S2MPS13_REG_L36CTRL = 89, + S2MPS13_REG_L37CTRL = 90, + S2MPS13_REG_L38CTRL = 91, + S2MPS13_REG_L39CTRL = 92, + S2MPS13_REG_L40CTRL = 93, + S2MPS13_REG_LDODSCH1 = 94, + S2MPS13_REG_LDODSCH2 = 95, + S2MPS13_REG_LDODSCH3 = 96, + S2MPS13_REG_LDODSCH4 = 97, + S2MPS13_REG_LDODSCH5 = 98, }; -struct sfp_eeprom_id { - struct sfp_eeprom_base base; - struct sfp_eeprom_ext ext; +enum discover_event { + DISCE_DISCOVER_DOMAIN = 0, + DISCE_REVALIDATE_DOMAIN = 1, + DISCE_SUSPEND = 2, + DISCE_RESUME = 3, + DISC_NUM_EVENTS = 4, }; enum { - MV_PMA_FW_VER0 = 49169, - MV_PMA_FW_VER1 = 49170, - MV_PMA_21X0_PORT_CTRL = 49226, - MV_PMA_21X0_PORT_CTRL_SWRST = 32768, - MV_PMA_21X0_PORT_CTRL_MACTYPE_MASK = 7, - MV_PMA_21X0_PORT_CTRL_MACTYPE_USXGMII = 0, - MV_PMA_2180_PORT_CTRL_MACTYPE_DXGMII = 1, - MV_PMA_2180_PORT_CTRL_MACTYPE_QXGMII = 2, - MV_PMA_21X0_PORT_CTRL_MACTYPE_5GBASER = 4, - MV_PMA_21X0_PORT_CTRL_MACTYPE_5GBASER_NO_SGMII_AN = 5, - MV_PMA_21X0_PORT_CTRL_MACTYPE_10GBASER_RATE_MATCH = 6, - MV_PMA_BOOT = 49232, - MV_PMA_BOOT_FATAL = 1, - MV_PCS_BASE_T = 0, - MV_PCS_BASE_R = 4096, - MV_PCS_1000BASEX = 8192, - MV_PCS_CSCR1 = 32768, - MV_PCS_CSCR1_ED_MASK = 768, - MV_PCS_CSCR1_ED_OFF = 0, - MV_PCS_CSCR1_ED_RX = 512, - MV_PCS_CSCR1_ED_NLP = 768, - MV_PCS_CSCR1_MDIX_MASK = 96, - MV_PCS_CSCR1_MDIX_MDI = 0, - MV_PCS_CSCR1_MDIX_MDIX = 32, - MV_PCS_CSCR1_MDIX_AUTO = 96, - MV_PCS_DSC1 = 32771, - MV_PCS_DSC1_ENABLE = 512, - MV_PCS_DSC1_10GBT = 448, - MV_PCS_DSC1_1GBR = 56, - MV_PCS_DSC1_100BTX = 7, - MV_PCS_DSC2 = 32772, - MV_PCS_DSC2_2P5G = 61440, - MV_PCS_DSC2_5G = 3840, - MV_PCS_CSSR1 = 32776, - MV_PCS_CSSR1_SPD1_MASK = 49152, - MV_PCS_CSSR1_SPD1_SPD2 = 49152, - MV_PCS_CSSR1_SPD1_1000 = 32768, - MV_PCS_CSSR1_SPD1_100 = 16384, - MV_PCS_CSSR1_SPD1_10 = 0, - MV_PCS_CSSR1_DUPLEX_FULL = 8192, - MV_PCS_CSSR1_RESOLVED = 2048, - MV_PCS_CSSR1_MDIX = 64, - MV_PCS_CSSR1_SPD2_MASK = 12, - MV_PCS_CSSR1_SPD2_5000 = 8, - MV_PCS_CSSR1_SPD2_2500 = 4, - MV_PCS_CSSR1_SPD2_10000 = 0, - MV_PCS_TEMP = 32834, - MV_PCS_PORT_INFO = 53261, - MV_PCS_PORT_INFO_NPORTS_MASK = 896, - MV_PCS_PORT_INFO_NPORTS_SHIFT = 7, - MV_AN_21X0_SERDES_CTRL2 = 32783, - MV_AN_21X0_SERDES_CTRL2_AUTO_INIT_DIS = 8192, - MV_AN_21X0_SERDES_CTRL2_RUN_INIT = 32768, - MV_AN_CTRL1000 = 32768, - MV_AN_STAT1000 = 32769, - MV_V2_PORT_CTRL = 61441, - MV_V2_PORT_CTRL_PWRDOWN = 2048, - MV_V2_33X0_PORT_CTRL_SWRST = 32768, - MV_V2_33X0_PORT_CTRL_MACTYPE_MASK = 7, - MV_V2_33X0_PORT_CTRL_MACTYPE_RXAUI = 0, - MV_V2_3310_PORT_CTRL_MACTYPE_XAUI_RATE_MATCH = 1, - MV_V2_3340_PORT_CTRL_MACTYPE_RXAUI_NO_SGMII_AN = 1, - MV_V2_33X0_PORT_CTRL_MACTYPE_RXAUI_RATE_MATCH = 2, - MV_V2_3310_PORT_CTRL_MACTYPE_XAUI = 3, - MV_V2_33X0_PORT_CTRL_MACTYPE_10GBASER = 4, - MV_V2_33X0_PORT_CTRL_MACTYPE_10GBASER_NO_SGMII_AN = 5, - MV_V2_33X0_PORT_CTRL_MACTYPE_10GBASER_RATE_MATCH = 6, - MV_V2_33X0_PORT_CTRL_MACTYPE_USXGMII = 7, - MV_V2_PORT_INTR_STS = 61504, - MV_V2_PORT_INTR_MASK = 61507, - MV_V2_PORT_INTR_STS_WOL_EN = 256, - MV_V2_MAGIC_PKT_WORD0 = 61547, - MV_V2_MAGIC_PKT_WORD1 = 61548, - MV_V2_MAGIC_PKT_WORD2 = 61549, - MV_V2_WOL_CTRL = 61550, - MV_V2_WOL_CTRL_CLEAR_STS = 32768, - MV_V2_WOL_CTRL_MAGIC_PKT_EN = 1, - MV_V2_TEMP_CTRL = 61578, - MV_V2_TEMP_CTRL_MASK = 49152, - MV_V2_TEMP_CTRL_SAMPLE = 0, - MV_V2_TEMP_CTRL_DISABLE = 49152, - MV_V2_TEMP = 61580, - MV_V2_TEMP_UNKNOWN = 38400, + 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 hwmon_chip_attributes { - hwmon_chip_temp_reset_history = 0, - hwmon_chip_in_reset_history = 1, - hwmon_chip_curr_reset_history = 2, - hwmon_chip_power_reset_history = 3, - hwmon_chip_register_tz = 4, - hwmon_chip_update_interval = 5, - hwmon_chip_alarms = 6, - hwmon_chip_samples = 7, - hwmon_chip_curr_samples = 8, - hwmon_chip_in_samples = 9, - hwmon_chip_power_samples = 10, - hwmon_chip_temp_samples = 11, - hwmon_chip_beep_enable = 12, +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); }; -enum hwmon_temp_attributes { - hwmon_temp_enable = 0, - hwmon_temp_input = 1, - hwmon_temp_type = 2, - hwmon_temp_lcrit = 3, - hwmon_temp_lcrit_hyst = 4, - hwmon_temp_min = 5, - hwmon_temp_min_hyst = 6, - hwmon_temp_max = 7, - hwmon_temp_max_hyst = 8, - hwmon_temp_crit = 9, - hwmon_temp_crit_hyst = 10, - hwmon_temp_emergency = 11, - hwmon_temp_emergency_hyst = 12, - hwmon_temp_alarm = 13, - hwmon_temp_lcrit_alarm = 14, - hwmon_temp_min_alarm = 15, - hwmon_temp_max_alarm = 16, - hwmon_temp_crit_alarm = 17, - hwmon_temp_emergency_alarm = 18, - hwmon_temp_fault = 19, - hwmon_temp_offset = 20, - hwmon_temp_label = 21, - hwmon_temp_lowest = 22, - hwmon_temp_highest = 23, - hwmon_temp_reset_history = 24, - hwmon_temp_rated_min = 25, - hwmon_temp_rated_max = 26, - hwmon_temp_beep = 27, +struct hd_geometry { + unsigned char heads; + unsigned char sectors; + unsigned short cylinders; + unsigned long start; }; -enum phy_tunable_id { - ETHTOOL_PHY_ID_UNSPEC = 0, - ETHTOOL_PHY_DOWNSHIFT = 1, - ETHTOOL_PHY_FAST_LINK_DOWN = 2, - ETHTOOL_PHY_EDPD = 3, - __ETHTOOL_PHY_TUNABLE_COUNT = 4, +enum { + GENHD_FL_REMOVABLE = 1, + GENHD_FL_HIDDEN = 2, + GENHD_FL_NO_PART = 4, }; -struct mv3310_priv { - unsigned long supported_interfaces[1]; - u32 firmware_ver; - bool has_downshift; - bool rate_match; - phy_interface_t const_interface; - struct device *hwmon_dev; - char *hwmon_name; -}; +struct mtd_blktrans_ops; -enum bcma_hosttype { - BCMA_HOSTTYPE_PCI = 0, - BCMA_HOSTTYPE_SDIO = 1, - BCMA_HOSTTYPE_SOC = 2, +struct mtd_blktrans_dev { + struct mtd_blktrans_ops *tr; + struct list_head list; + struct mtd_info *mtd; + struct mutex lock; + int devnum; + bool bg_stop; + unsigned long size; + int readonly; + int open; + struct kref ref; + struct gendisk *disk; + struct attribute_group *disk_attributes; + struct request_queue *rq; + struct list_head rq_list; + struct blk_mq_tag_set *tag_set; + spinlock_t queue_lock; + void *priv; + bool writable; }; -struct bgmac_slot_info { - union { - struct sk_buff *skb; - void *buf; - }; - dma_addr_t dma_addr; +struct mtd_blktrans_ops { + char *name; + int major; + int part_bits; + int blksize; + int blkshift; + int (*readsect)(struct mtd_blktrans_dev *, unsigned long, char *); + int (*writesect)(struct mtd_blktrans_dev *, unsigned long, char *); + int (*discard)(struct mtd_blktrans_dev *, unsigned long, unsigned int); + void (*background)(struct mtd_blktrans_dev *); + int (*getgeo)(struct mtd_blktrans_dev *, struct hd_geometry *); + int (*flush)(struct mtd_blktrans_dev *); + int (*open)(struct mtd_blktrans_dev *); + void (*release)(struct mtd_blktrans_dev *); + void (*add_mtd)(struct mtd_blktrans_ops *, struct mtd_info *); + void (*remove_dev)(struct mtd_blktrans_dev *); + struct list_head devs; + struct list_head list; + struct module *owner; }; -struct bgmac_dma_desc; +struct req_iterator { + struct bvec_iter iter; + struct bio *bio; +}; -struct bgmac_dma_ring { - u32 start; - u32 end; - struct bgmac_dma_desc *cpu_base; - dma_addr_t dma_base; - u32 index_base; - u16 mmio_base; - bool unaligned; - struct bgmac_slot_info slots[512]; +struct nand_onfi_vendor_macronix { + u8 reserved; + u8 reliability_func; }; -struct bcma_device; +enum spi_nor_option_flags { + SNOR_F_HAS_SR_TB = 1, + SNOR_F_NO_OP_CHIP_ERASE = 2, + SNOR_F_BROKEN_RESET = 4, + SNOR_F_4B_OPCODES = 8, + SNOR_F_HAS_4BAIT = 16, + SNOR_F_HAS_LOCK = 32, + SNOR_F_HAS_16BIT_SR = 64, + SNOR_F_NO_READ_CR = 128, + SNOR_F_HAS_SR_TB_BIT6 = 256, + SNOR_F_HAS_4BIT_BP = 512, + SNOR_F_HAS_SR_BP3_BIT6 = 1024, + SNOR_F_IO_MODE_EN_VOLATILE = 2048, + SNOR_F_SOFT_RESET = 4096, + SNOR_F_SWP_IS_VOLATILE = 8192, + SNOR_F_RWW = 16384, + SNOR_F_ECC = 32768, + SNOR_F_NO_WP = 65536, +}; -struct bgmac { - union { - struct { - void *base; - void *idm_base; - void *nicpm_base; - } plat; - struct { - struct bcma_device *core; - struct bcma_device *cmn; - } bcma; - }; +struct spi_qup { + void *base; struct device *dev; - struct device *dma_dev; - u32 feature_flags; - struct net_device *net_dev; - struct napi_struct napi; - struct mii_bus *mii_bus; - struct bgmac_dma_ring tx_ring[4]; - struct bgmac_dma_ring rx_ring[1]; - bool stats_grabbed; - u32 mib_tx_regs[43]; - u32 mib_rx_regs[31]; + struct clk *cclk; + struct clk *iclk; + struct icc_path *icc_path; int irq; - u32 int_mask; - bool in_init; - int mac_speed; - int mac_duplex; - u8 phyaddr; - bool has_robosw; - bool loopback; - u32 (*read)(struct bgmac *, u16); - void (*write)(struct bgmac *, u16, u32); - u32 (*idm_read)(struct bgmac *, u16); - void (*idm_write)(struct bgmac *, u16, u32); - bool (*clk_enabled)(struct bgmac *); - void (*clk_enable)(struct bgmac *, u32); - void (*cco_ctl_maskset)(struct bgmac *, u32, u32, u32); - u32 (*get_bus_clock)(struct bgmac *); - void (*cmn_maskset32)(struct bgmac *, u16, u32, u32); - int (*phy_connect)(struct bgmac *); + spinlock_t lock; + int in_fifo_sz; + int out_fifo_sz; + int in_blk_sz; + int out_blk_sz; + struct spi_transfer *xfer; + struct completion done; + int error; + int w_size; + int n_words; + int tx_bytes; + int rx_bytes; + const u8 *tx_buf; + u8 *rx_buf; + int qup_v1; + int mode; + struct dma_slave_config rx_conf; + struct dma_slave_config tx_conf; + u32 bw_speed_hz; }; -struct bcma_device_id { - __u16 manuf; - __u16 id; - __u8 rev; - __u8 class; +struct fixed_mdio_bus { + struct mii_bus *mii_bus; + struct list_head phys; }; -struct bcma_bus; +struct fixed_phy { + int addr; + struct phy_device *phydev; + struct fixed_phy_status status; + bool no_carrier; + int (*link_update)(struct net_device *, struct fixed_phy_status *); + struct list_head node; + struct gpio_desc *link_gpiod; +}; -struct bcma_device { - struct bcma_bus *bus; - struct bcma_device_id id; - struct device dev; - struct device *dma_dev; - unsigned int irq; - bool dev_registered; - u8 core_index; - u8 core_unit; - u32 addr; - u32 addr_s[8]; - u32 wrap; - void *io_addr; - void *io_wrap; - void *drvdata; - struct list_head list; +enum xgbe_speedset { + XGBE_SPEEDSET_1000_10000 = 0, + XGBE_SPEEDSET_2500_10000 = 1, }; -struct bcma_chipinfo { - u16 id; - u8 rev; - u8 pkg; +enum xgbe_speed { + XGBE_SPEED_1000 = 0, + XGBE_SPEED_2500 = 1, + XGBE_SPEED_10000 = 2, + XGBE_SPEEDS = 3, }; -struct bcma_boardinfo { - u16 vendor; - u16 type; +struct xgbe_phy_data___2 { + unsigned int speed_set; + u32 blwc[3]; + u32 cdr_rate[3]; + u32 pq_skew[3]; + u32 tx_amp[3]; + u32 dfe_tap_cfg[3]; + u32 dfe_tap_ena[3]; }; -struct bcma_chipcommon_pmu { - struct bcma_device *core; - u8 rev; - u32 crystalfreq; +struct macb_usrio_config; + +struct macb_config { + u32 caps; + unsigned int dma_burst_length; + int (*clk_init)(struct platform_device *, struct clk **, struct clk **, struct clk **, struct clk **, struct clk **); + int (*init)(struct platform_device *); + unsigned int max_tx_length; + int jumbo_max_len; + const struct macb_usrio_config *usrio; }; -struct bcma_drv_cc { - struct bcma_device *core; - u32 status; - u32 capabilities; - u32 capabilities_ext; - u8 setup_done: 1; - u8 early_setup_done: 1; - u16 fast_pwrup_delay; - struct bcma_chipcommon_pmu pmu; - u32 ticks_per_ms; - struct platform_device *watchdog; - spinlock_t gpio_lock; +struct macb_usrio_config { + u32 mii; + u32 rmii; + u32 rgmii; + u32 refclk; + u32 hdfctlen; }; -struct bcma_drv_cc_b { - struct bcma_device *core; - u8 setup_done: 1; - void *mii; +struct gem_statistic { + char stat_string[32]; + int offset; + u32 stat_bits; }; -struct bcma_drv_pci { - struct bcma_device *core; - u8 early_setup_done: 1; - u8 setup_done: 1; - u8 hostmode: 1; +struct macb; + +struct macb_ptp_info { + void (*ptp_init)(struct net_device *); + void (*ptp_remove)(struct net_device *); + s32 (*get_ptp_max_adj)(); + unsigned int (*get_tsu_rate)(struct macb *); + int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *); + int (*get_hwtst)(struct net_device *, struct ifreq *); + int (*set_hwtst)(struct net_device *, struct ifreq *, int); }; -struct bcma_drv_pcie2 { - struct bcma_device *core; - u16 reqsize; +struct macb_stats { + u32 rx_pause_frames; + u32 tx_ok; + u32 tx_single_cols; + u32 tx_multiple_cols; + u32 rx_ok; + u32 rx_fcs_errors; + u32 rx_align_errors; + u32 tx_deferred; + u32 tx_late_cols; + u32 tx_excessive_cols; + u32 tx_underruns; + u32 tx_carrier_errors; + u32 rx_resource_errors; + u32 rx_overruns; + u32 rx_symbol_errors; + u32 rx_oversize_pkts; + u32 rx_jabbers; + u32 rx_undersize_pkts; + u32 sqe_test_errors; + u32 rx_length_mismatch; + u32 tx_pause_frames; }; -struct bcma_drv_mips { - struct bcma_device *core; - u8 setup_done: 1; - u8 early_setup_done: 1; +struct gem_stats { + u32 tx_octets_31_0; + u32 tx_octets_47_32; + u32 tx_frames; + u32 tx_broadcast_frames; + u32 tx_multicast_frames; + u32 tx_pause_frames; + u32 tx_64_byte_frames; + u32 tx_65_127_byte_frames; + u32 tx_128_255_byte_frames; + u32 tx_256_511_byte_frames; + u32 tx_512_1023_byte_frames; + u32 tx_1024_1518_byte_frames; + u32 tx_greater_than_1518_byte_frames; + u32 tx_underrun; + u32 tx_single_collision_frames; + u32 tx_multiple_collision_frames; + u32 tx_excessive_collisions; + u32 tx_late_collisions; + u32 tx_deferred_frames; + u32 tx_carrier_sense_errors; + u32 rx_octets_31_0; + u32 rx_octets_47_32; + u32 rx_frames; + u32 rx_broadcast_frames; + u32 rx_multicast_frames; + u32 rx_pause_frames; + u32 rx_64_byte_frames; + u32 rx_65_127_byte_frames; + u32 rx_128_255_byte_frames; + u32 rx_256_511_byte_frames; + u32 rx_512_1023_byte_frames; + u32 rx_1024_1518_byte_frames; + u32 rx_greater_than_1518_byte_frames; + u32 rx_undersized_frames; + u32 rx_oversize_frames; + u32 rx_jabbers; + u32 rx_frame_check_sequence_errors; + u32 rx_length_field_frame_errors; + u32 rx_symbol_errors; + u32 rx_alignment_errors; + u32 rx_resource_errors; + u32 rx_overruns; + u32 rx_ip_header_checksum_errors; + u32 rx_tcp_checksum_errors; + u32 rx_udp_checksum_errors; }; -struct bcma_drv_gmac_cmn { - struct bcma_device *core; - struct mutex phy_mutex; +struct queue_stats { + union { + unsigned long first; + unsigned long rx_packets; + }; + unsigned long rx_bytes; + unsigned long rx_dropped; + unsigned long tx_packets; + unsigned long tx_bytes; + unsigned long tx_dropped; }; -struct ssb_sprom_core_pwr_info { - u8 itssi_2g; - u8 itssi_5g; - u8 maxpwr_2g; - u8 maxpwr_5gl; - u8 maxpwr_5g; - u8 maxpwr_5gh; - u16 pa_2g[4]; - u16 pa_5gl[4]; - u16 pa_5g[4]; - u16 pa_5gh[4]; +struct macb_dma_desc; + +struct macb_tx_skb; + +struct macb_queue { + struct macb *bp; + int irq; + unsigned int ISR; + unsigned int IER; + unsigned int IDR; + unsigned int IMR; + unsigned int TBQP; + unsigned int TBQPH; + unsigned int RBQS; + unsigned int RBQP; + unsigned int RBQPH; + spinlock_t tx_ptr_lock; + unsigned int tx_head; + unsigned int tx_tail; + struct macb_dma_desc *tx_ring; + struct macb_tx_skb *tx_skb; + dma_addr_t tx_ring_dma; + struct work_struct tx_error_task; + bool txubr_pending; + struct napi_struct napi_tx; + dma_addr_t rx_ring_dma; + dma_addr_t rx_buffers_dma; + unsigned int rx_tail; + unsigned int rx_prepared_head; + struct macb_dma_desc *rx_ring; + struct sk_buff **rx_skbuff; + void *rx_buffers; + struct napi_struct napi_rx; + struct queue_stats stats; }; -struct ssb_sprom { - u8 revision; - short: 0; - u8 il0mac[6]; - u8 et0mac[6]; - u8 et1mac[6]; - u8 et2mac[6]; - u8 et0phyaddr; - u8 et1phyaddr; - u8 et2phyaddr; - u8 et0mdcport; - u8 et1mdcport; - u8 et2mdcport; - u16 dev_id; - u16 board_rev; - u16 board_num; - u16 board_type; - u8 country_code; - char alpha2[2]; - u8 leddc_on_time; - u8 leddc_off_time; - u8 ant_available_a; - u8 ant_available_bg; - u16 pa0b0; - u16 pa0b1; - u16 pa0b2; - u16 pa1b0; - u16 pa1b1; - u16 pa1b2; - u16 pa1lob0; - u16 pa1lob1; - u16 pa1lob2; - u16 pa1hib0; - u16 pa1hib1; - u16 pa1hib2; - u8 gpio0; - u8 gpio1; - u8 gpio2; - u8 gpio3; - u8 maxpwr_bg; - u8 maxpwr_al; - u8 maxpwr_a; - u8 maxpwr_ah; - u8 itssi_a; - u8 itssi_bg; - u8 tri2g; - u8 tri5gl; - u8 tri5g; - u8 tri5gh; - u8 txpid2g[4]; - u8 txpid5gl[4]; - u8 txpid5g[4]; - u8 txpid5gh[4]; - s8 rxpo2g; - s8 rxpo5g; - u8 rssisav2g; - u8 rssismc2g; - u8 rssismf2g; - u8 bxa2g; - u8 rssisav5g; - u8 rssismc5g; - u8 rssismf5g; - u8 bxa5g; - u16 cck2gpo; - u32 ofdm2gpo; - u32 ofdm5glpo; - u32 ofdm5gpo; - u32 ofdm5ghpo; - u32 boardflags; - u32 boardflags2; - u32 boardflags3; - u16 boardflags_lo; - u16 boardflags_hi; - u16 boardflags2_lo; - u16 boardflags2_hi; - struct ssb_sprom_core_pwr_info core_pwr_info[4]; - struct { - s8 a0; - s8 a1; - s8 a2; - s8 a3; - } antenna_gain; - struct { - struct { - u8 tssipos; - u8 extpa_gain; - u8 pdet_range; - u8 tr_iso; - u8 antswlut; - } ghz2; - struct { - u8 tssipos; - u8 extpa_gain; - u8 pdet_range; - u8 tr_iso; - u8 antswlut; - } ghz5; - } fem; - u16 mcs2gpo[8]; - u16 mcs5gpo[8]; - u16 mcs5glpo[8]; - u16 mcs5ghpo[8]; - u8 opo; - u8 rxgainerr2ga[3]; - u8 rxgainerr5gla[3]; - u8 rxgainerr5gma[3]; - u8 rxgainerr5gha[3]; - u8 rxgainerr5gua[3]; - u8 noiselvl2ga[3]; - u8 noiselvl5gla[3]; - u8 noiselvl5gma[3]; - u8 noiselvl5gha[3]; - u8 noiselvl5gua[3]; - u8 regrev; - u8 txchain; - u8 rxchain; - u8 antswitch; - u16 cddpo; - u16 stbcpo; - u16 bw40po; - u16 bwduppo; - u8 tempthresh; - u8 tempoffset; - u16 rawtempsense; - u8 measpower; - u8 tempsense_slope; - u8 tempcorrx; - u8 tempsense_option; - u8 freqoffset_corr; - u8 iqcal_swp_dis; - u8 hw_iqcal_en; - u8 elna2g; - u8 elna5g; - u8 phycal_tempdelta; - u8 temps_period; - u8 temps_hysteresis; - u8 measpower1; - u8 measpower2; - u8 pcieingress_war; - u16 cckbw202gpo; - u16 cckbw20ul2gpo; - u32 legofdmbw202gpo; - u32 legofdmbw20ul2gpo; - u32 legofdmbw205glpo; - u32 legofdmbw20ul5glpo; - u32 legofdmbw205gmpo; - u32 legofdmbw20ul5gmpo; - u32 legofdmbw205ghpo; - u32 legofdmbw20ul5ghpo; - u32 mcsbw202gpo; - u32 mcsbw20ul2gpo; - u32 mcsbw402gpo; - u32 mcsbw205glpo; - u32 mcsbw20ul5glpo; - u32 mcsbw405glpo; - u32 mcsbw205gmpo; - u32 mcsbw20ul5gmpo; - u32 mcsbw405gmpo; - u32 mcsbw205ghpo; - u32 mcsbw20ul5ghpo; - u32 mcsbw405ghpo; - u16 mcs32po; - u16 legofdm40duppo; - u8 sar2g; - u8 sar5g; +struct macb_or_gem_ops { + int (*mog_alloc_rx_buffers)(struct macb *); + void (*mog_free_rx_buffers)(struct macb *); + void (*mog_init_rings)(struct macb *); + int (*mog_rx)(struct macb_queue *, struct napi_struct *, int); }; -struct bcma_host_ops; - -struct bcma_bus { - struct device *dev; - void *mmio; - const struct bcma_host_ops *ops; - enum bcma_hosttype hosttype; - bool host_is_pcie2; - struct pci_dev *host_pci; - struct bcma_chipinfo chipinfo; - struct bcma_boardinfo boardinfo; - struct bcma_device *mapped_core; - struct list_head cores; - u8 nr_cores; - u8 num; - struct bcma_drv_cc drv_cc; - struct bcma_drv_cc_b drv_cc_b; - struct bcma_drv_pci drv_pci[2]; - struct bcma_drv_pcie2 drv_pcie2; - struct bcma_drv_mips drv_mips; - struct bcma_drv_gmac_cmn drv_gmac_cmn; - struct ssb_sprom sprom; +struct macb_tx_skb { + struct sk_buff *skb; + dma_addr_t mapping; + size_t size; + bool mapped_as_page; }; -struct bcma_host_ops { - u8 (*read8)(struct bcma_device *, u16); - u16 (*read16)(struct bcma_device *, u16); - u32 (*read32)(struct bcma_device *, u16); - void (*write8)(struct bcma_device *, u16, u8); - void (*write16)(struct bcma_device *, u16, u16); - void (*write32)(struct bcma_device *, u16, u32); - u32 (*aread32)(struct bcma_device *, u16); - void (*awrite32)(struct bcma_device *, u16, u32); +struct tsu_incr { + u32 sub_ns; + u32 ns; }; -struct bgmac_dma_desc { - __le32 ctl0; - __le32 ctl1; - __le32 addr_low; - __le32 addr_high; +struct ethtool_rx_fs_list { + struct list_head list; + unsigned int count; }; -enum dsaf_port_rate_mode { - DSAF_PORT_RATE_1000 = 0, - DSAF_PORT_RATE_2500 = 1, - DSAF_PORT_RATE_10000 = 2, +struct macb_pm_data { + u32 scrt2; + u32 usrio; }; -enum dsaf_roce_port_mode { - DSAF_ROCE_6PORT_MODE = 0, - DSAF_ROCE_4PORT_MODE = 1, - DSAF_ROCE_2PORT_MODE = 2, - DSAF_ROCE_CHAN_MODE_NUM = 3, +struct macb { + void *regs; + bool native_io; + u32 (*macb_reg_readl)(struct macb *, int); + void (*macb_reg_writel)(struct macb *, int, u32); + size_t rx_buffer_size; + unsigned int rx_ring_size; + unsigned int tx_ring_size; + unsigned int num_queues; + unsigned int queue_mask; + struct macb_queue queues[8]; + spinlock_t lock; + struct platform_device *pdev; + struct clk *pclk; + struct clk *hclk; + struct clk *tx_clk; + struct clk *rx_clk; + struct clk *tsu_clk; + struct net_device *dev; + union { + struct macb_stats macb; + struct gem_stats gem; + } hw_stats; + struct macb_or_gem_ops macbgem_ops; + struct mii_bus *mii_bus; + struct phylink *phylink; + struct phylink_config phylink_config; + struct phylink_pcs phylink_usx_pcs; + struct phylink_pcs phylink_sgmii_pcs; + u32 caps; + unsigned int dma_burst_length; + phy_interface_t phy_interface; + struct macb_tx_skb rm9200_txq[2]; + unsigned int max_tx_length; + u64 ethtool_stats[91]; + unsigned int rx_frm_len_mask; + unsigned int jumbo_max_len; + u32 wol; + u32 rx_watermark; + struct macb_ptp_info *ptp_info; + struct phy *sgmii_phy; + uint8_t hw_dma_cap; + spinlock_t tsu_clk_lock; + unsigned int tsu_rate; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; + struct tsu_incr tsu_incr; + struct hwtstamp_config tstamp_config; + struct ethtool_rx_fs_list rx_fs_list; + spinlock_t rx_fs_lock; + unsigned int max_tuples; + struct tasklet_struct hresp_err_tasklet; + int rx_bd_rd_prefetch; + int tx_bd_rd_prefetch; + u32 rx_intr_mask; + struct macb_pm_data pm_data; + const struct macb_usrio_config *usrio; }; -enum dsaf_stp_port_type { - DSAF_STP_PORT_TYPE_DISCARD = 0, - DSAF_STP_PORT_TYPE_BLOCK = 1, - DSAF_STP_PORT_TYPE_LISTEN = 2, - DSAF_STP_PORT_TYPE_LEARN = 3, - DSAF_STP_PORT_TYPE_FORWARD = 4, +struct macb_dma_desc { + u32 addr; + u32 ctrl; }; -enum dsaf_sw_port_type { - DSAF_SW_PORT_TYPE_NON_VLAN = 0, - DSAF_SW_PORT_TYPE_ACCESS = 1, - DSAF_SW_PORT_TYPE_TRUNK = 2, +struct sifive_fu540_macb_mgmt { + void *reg; + unsigned long rate; + struct clk_hw hw; }; -struct dsaf_drv_soft_mac_tbl; - -struct dsaf_drv_priv { - struct dsaf_drv_soft_mac_tbl *soft_mac_tbl; +enum macb_bd_control { + TSTAMP_DISABLED = 0, + TSTAMP_FRAME_PTP_EVENT_ONLY = 1, + TSTAMP_ALL_PTP_FRAMES = 2, + TSTAMP_ALL_FRAMES = 3, }; -struct dsaf_drv_tbl_tcam_key { - union { - struct { - u8 mac_3; - u8 mac_2; - u8 mac_1; - u8 mac_0; - } bits; - u32 val; - } high; - union { - struct { - u16 port_vlan; - u8 mac_5; - u8 mac_4; - } bits; - u32 val; - } low; +enum { + MLO_PAUSE_NONE = 0, + MLO_PAUSE_RX = 1, + MLO_PAUSE_TX = 2, + MLO_PAUSE_TXRX_MASK = 3, + MLO_PAUSE_AN = 4, + MLO_AN_PHY = 0, + MLO_AN_FIXED = 1, + MLO_AN_INBAND = 2, + PHYLINK_PCS_NEG_NONE = 0, + PHYLINK_PCS_NEG_ENABLED = 16, + PHYLINK_PCS_NEG_OUTBAND = 32, + PHYLINK_PCS_NEG_INBAND = 64, + PHYLINK_PCS_NEG_INBAND_DISABLED = 64, + PHYLINK_PCS_NEG_INBAND_ENABLED = 80, + MAC_SYM_PAUSE = 1, + MAC_ASYM_PAUSE = 2, + MAC_10HD = 4, + MAC_10FD = 8, + MAC_10 = 12, + MAC_100HD = 16, + MAC_100FD = 32, + MAC_100 = 48, + MAC_1000HD = 64, + MAC_1000FD = 128, + MAC_1000 = 192, + MAC_2500FD = 256, + MAC_5000FD = 512, + MAC_10000FD = 1024, + MAC_20000FD = 2048, + MAC_25000FD = 4096, + MAC_40000FD = 8192, + MAC_50000FD = 16384, + MAC_56000FD = 32768, + MAC_100000FD = 65536, + MAC_200000FD = 131072, + MAC_400000FD = 262144, }; -struct dsaf_drv_soft_mac_tbl { - struct dsaf_drv_tbl_tcam_key tcam_key; - u16 index; +enum pm_api_id { + PM_GET_API_VERSION = 1, + PM_REGISTER_NOTIFIER = 5, + PM_FORCE_POWERDOWN = 8, + PM_REQUEST_WAKEUP = 10, + PM_SYSTEM_SHUTDOWN = 12, + PM_REQUEST_NODE = 13, + PM_RELEASE_NODE = 14, + PM_SET_REQUIREMENT = 15, + PM_RESET_ASSERT = 17, + PM_RESET_GET_STATUS = 18, + PM_MMIO_WRITE = 19, + PM_MMIO_READ = 20, + PM_PM_INIT_FINALIZE = 21, + PM_FPGA_LOAD = 22, + PM_FPGA_GET_STATUS = 23, + PM_GET_CHIPID = 24, + PM_SECURE_SHA = 26, + PM_PINCTRL_REQUEST = 28, + PM_PINCTRL_RELEASE = 29, + PM_PINCTRL_GET_FUNCTION = 30, + PM_PINCTRL_SET_FUNCTION = 31, + PM_PINCTRL_CONFIG_PARAM_GET = 32, + PM_PINCTRL_CONFIG_PARAM_SET = 33, + PM_IOCTL = 34, + PM_QUERY_DATA = 35, + PM_CLOCK_ENABLE = 36, + PM_CLOCK_DISABLE = 37, + PM_CLOCK_GETSTATE = 38, + PM_CLOCK_SETDIVIDER = 39, + PM_CLOCK_GETDIVIDER = 40, + PM_CLOCK_SETRATE = 41, + PM_CLOCK_GETRATE = 42, + PM_CLOCK_SETPARENT = 43, + PM_CLOCK_GETPARENT = 44, + PM_FPGA_READ = 46, + PM_SECURE_AES = 47, + PM_FEATURE_CHECK = 63, }; -struct dsaf_tbl_tcam_data { - u32 tbl_tcam_data_high; - u32 tbl_tcam_data_low; +enum pm_ioctl_id { + IOCTL_GET_RPU_OPER_MODE = 0, + IOCTL_SET_RPU_OPER_MODE = 1, + IOCTL_RPU_BOOT_ADDR_CONFIG = 2, + IOCTL_TCM_COMB_CONFIG = 3, + IOCTL_SET_TAPDELAY_BYPASS = 4, + IOCTL_SD_DLL_RESET = 6, + IOCTL_SET_SD_TAPDELAY = 7, + IOCTL_SET_PLL_FRAC_MODE = 8, + IOCTL_GET_PLL_FRAC_MODE = 9, + IOCTL_SET_PLL_FRAC_DATA = 10, + IOCTL_GET_PLL_FRAC_DATA = 11, + IOCTL_WRITE_GGS = 12, + IOCTL_READ_GGS = 13, + IOCTL_WRITE_PGGS = 14, + IOCTL_READ_PGGS = 15, + IOCTL_SET_BOOT_HEALTH_STATUS = 17, + IOCTL_OSPI_MUX_SELECT = 21, + IOCTL_REGISTER_SGI = 25, + IOCTL_SET_FEATURE_CONFIG = 26, + IOCTL_GET_FEATURE_CONFIG = 27, + IOCTL_SET_SD_CONFIG = 30, + IOCTL_SET_GEM_CONFIG = 31, }; -struct dsaf_tbl_tcam_ucast_cfg { - u32 tbl_ucast_old_en; - u32 tbl_ucast_item_vld; - u32 tbl_ucast_mac_discard; - u32 tbl_ucast_dvc; - u32 tbl_ucast_out_port; +enum pm_gem_config_type { + GEM_CONFIG_SGMII_MODE = 1, + GEM_CONFIG_FIXED = 2, }; -struct dsaf_tbl_tcam_mcast_cfg { - u8 tbl_mcast_old_en; - u8 tbl_mcast_item_vld; - u32 tbl_mcast_port_msk[5]; +struct macb_dma_desc_64 { + u32 addrh; + u32 resvd; }; -struct dsaf_drv_mac_single_dest_entry { - u8 addr[6]; - u16 in_vlan_id; - u8 in_port_num; - u8 port_num; - u8 rsv[6]; +struct ethtool_rx_fs_item { + struct ethtool_rx_flow_spec fs; + struct list_head list; }; -struct dsaf_tbl_line_cfg { - u32 tbl_line_mac_discard; - u32 tbl_line_dvc; - u32 tbl_line_out_port; +struct clock_identity { + u8 id[8]; }; -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 port_identity { + struct clock_identity clock_identity; + __be16 port_number; }; -struct xennet_stat { - char name[32]; - u16 offset; -}; +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 netfront_stats { - u64 packets; - u64 bytes; - struct u64_stats_sync syncp; +struct macb_platform_data { + struct clk *pclk; + struct clk *hclk; }; -typedef unsigned int RING_IDX; - -struct xen_netif_extra_info { - uint8_t type; - uint8_t flags; - union { - struct { - uint16_t size; - uint8_t type; - uint8_t pad; - uint16_t features; - } gso; - struct { - uint8_t addr[6]; - } mcast; - struct { - uint8_t type; - uint8_t algorithm; - uint8_t value[4]; - } hash; - struct { - uint16_t headroom; - uint16_t pad[2]; - } xdp; - uint16_t pad[3]; - } u; +struct dprtc_cmd_open { + __le32 dprtc_id; }; -struct xen_netif_tx_response { - uint16_t id; - int16_t status; +struct dprtc_cmd_set_irq_enable { + u8 en; + u8 pad[3]; + u8 irq_index; }; -struct xen_netif_tx_sring; +struct dprtc_cmd_get_irq { + __le32 pad; + u8 irq_index; +} __attribute__((packed)); -struct xen_netif_tx_front_ring { - RING_IDX req_prod_pvt; - RING_IDX rsp_cons; - unsigned int nr_ents; - struct xen_netif_tx_sring *sring; +struct dprtc_rsp_get_irq_enable { + u8 en; }; -struct xen_netif_rx_sring; +struct dprtc_cmd_set_irq_mask { + __le32 mask; + u8 irq_index; +} __attribute__((packed)); -struct xen_netif_rx_front_ring { - RING_IDX req_prod_pvt; - RING_IDX rsp_cons; - unsigned int nr_ents; - struct xen_netif_rx_sring *sring; +struct dprtc_rsp_get_irq_mask { + __le32 mask; }; -struct netfront_info; +struct dprtc_cmd_get_irq_status { + __le32 status; + u8 irq_index; +} __attribute__((packed)); -struct netfront_queue { - unsigned int id; - char name[22]; - struct netfront_info *info; - struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; - struct napi_struct napi; - unsigned int tx_evtchn; - unsigned int rx_evtchn; - unsigned int tx_irq; - unsigned int rx_irq; - char tx_irq_name[25]; - char rx_irq_name[25]; - spinlock_t tx_lock; - struct xen_netif_tx_front_ring tx; - int tx_ring_ref; - struct sk_buff *tx_skbs[256]; - unsigned short tx_link[256]; - grant_ref_t gref_tx_head; - grant_ref_t grant_tx_ref[256]; - struct page *grant_tx_page[256]; - unsigned int tx_skb_freelist; - unsigned int tx_pend_queue; - long: 64; - long: 64; - spinlock_t rx_lock; - struct xen_netif_rx_front_ring rx; - int rx_ring_ref; - struct timer_list rx_refill_timer; - struct sk_buff *rx_skbs[256]; - grant_ref_t gref_rx_head; - grant_ref_t grant_rx_ref[256]; - unsigned int rx_rsp_unconsumed; - spinlock_t rx_cons_lock; - struct page_pool *page_pool; - long: 64; - long: 64; - long: 64; - struct xdp_rxq_info xdp_rxq; +struct dprtc_rsp_get_irq_status { + __le32 status; }; -struct netfront_info { - struct list_head list; - struct net_device *netdev; - struct xenbus_device *xbdev; - struct netfront_queue *queues; - struct netfront_stats __attribute__((btf_type_tag("percpu"))) *rx_stats; - struct netfront_stats __attribute__((btf_type_tag("percpu"))) *tx_stats; - bool netback_has_xdp_headroom; - bool netfront_xdp_enabled; - bool broken; - bool bounce; - atomic_t rx_gso_checksum_fixup; -}; +struct dprtc_cmd_clear_irq_status { + __le32 status; + u8 irq_index; +} __attribute__((packed)); -struct xen_netif_tx_request { - grant_ref_t gref; - uint16_t offset; - uint16_t flags; - uint16_t id; - uint16_t size; +struct enetc_ierb { + void *regs; }; -union xen_netif_tx_sring_entry { - struct xen_netif_tx_request req; - struct xen_netif_tx_response rsp; +struct hclge_hw_error { + u32 int_msk; + const char *msg; + enum hnae3_reset_type reset_level; }; -struct xen_netif_tx_sring { - RING_IDX req_prod; - RING_IDX req_event; - RING_IDX rsp_prod; - RING_IDX rsp_event; - uint8_t __pad[48]; - union xen_netif_tx_sring_entry ring[1]; -}; +struct hclge_dev; -struct xen_netif_rx_request { - uint16_t id; - uint16_t pad; - grant_ref_t gref; +struct hclge_hw_blk { + u32 msk; + const char *name; + int (*config_err_int)(struct hclge_dev *, bool); }; -struct xen_netif_rx_response { - uint16_t id; - uint16_t offset; - uint16_t flags; - int16_t status; +struct hclge_mac_tnl_stats { + u64 time; + u32 status; }; -union xen_netif_rx_sring_entry { - struct xen_netif_rx_request req; - struct xen_netif_rx_response rsp; -}; +struct hclge_desc; -struct xen_netif_rx_sring { - RING_IDX req_prod; - RING_IDX req_event; - RING_IDX rsp_prod; - RING_IDX rsp_event; - uint8_t __pad[48]; - union xen_netif_rx_sring_entry ring[1]; +struct hclge_comm_cmq_ring { + dma_addr_t desc_dma_addr; + struct hclge_desc *desc; + struct pci_dev *pdev; + u32 head; + u32 tail; + u16 buf_size; + u16 desc_num; + int next_to_use; + int next_to_clean; + u8 ring_type; + spinlock_t lock; }; -struct netfront_cb { - int pull_to; +enum hclge_comm_cmd_status { + HCLGE_COMM_STATUS_SUCCESS = 0, + HCLGE_COMM_ERR_CSQ_FULL = -1, + HCLGE_COMM_ERR_CSQ_TIMEOUT = -2, + HCLGE_COMM_ERR_CSQ_ERROR = -3, }; -struct xennet_gnttab_make_txreq { - struct netfront_queue *queue; - struct sk_buff *skb; - struct page *page; - struct xen_netif_tx_request *tx; - struct xen_netif_tx_request tx_local; - unsigned int size; +struct hclge_comm_cmq { + struct hclge_comm_cmq_ring csq; + struct hclge_comm_cmq_ring crq; + u16 tx_timeout; + enum hclge_comm_cmd_status last_status; }; -struct netfront_rx_info { - struct xen_netif_rx_response rx; - struct xen_netif_extra_info extras[5]; +struct hclge_comm_hw { + void *io_base; + void *mem_base; + struct hclge_comm_cmq cmq; + unsigned long comm_state; }; -struct ci_hdrc_usb2_priv { - struct platform_device *ci_pdev; - struct clk *clk; +struct hclge_wol_info { + u32 wol_support_mode; + u32 wol_current_mode; + u8 wol_sopass[6]; + u8 wol_sopass_size; }; -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 hclge_mac { + u8 mac_id; + u8 phy_addr; + u8 flag; + u8 media_type; + u8 mac_addr[6]; + u8 autoneg; + u8 duplex; + u8 support_autoneg; + u8 speed_type; + u8 lane_num; + u32 speed; + u32 max_speed; + u32 speed_ability; + u32 module_type; + u32 fec_mode; + u32 user_fec_mode; + u32 fec_ability; + int link; + struct hclge_wol_info wol; + struct phy_device *phydev; + struct mii_bus *mdio_bus; + phy_interface_t phy_if; + unsigned long supported[2]; + unsigned long advertising[2]; }; -struct dev_pin_info { - struct pinctrl *p; - struct pinctrl_state *default_state; - struct pinctrl_state *init_state; - struct pinctrl_state *sleep_state; - struct pinctrl_state *idle_state; +struct hclge_hw { + struct hclge_comm_hw hw; + struct hclge_mac mac; + int num_vec; }; -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 hclge_misc_vector { + u8 *addr; + int vector_irq; + char name[32]; +}; -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 hclge_mac_stats { + u64 mac_tx_mac_pause_num; + u64 mac_rx_mac_pause_num; + u64 rsv0; + u64 mac_tx_pfc_pri0_pkt_num; + u64 mac_tx_pfc_pri1_pkt_num; + u64 mac_tx_pfc_pri2_pkt_num; + u64 mac_tx_pfc_pri3_pkt_num; + u64 mac_tx_pfc_pri4_pkt_num; + u64 mac_tx_pfc_pri5_pkt_num; + u64 mac_tx_pfc_pri6_pkt_num; + u64 mac_tx_pfc_pri7_pkt_num; + u64 mac_rx_pfc_pri0_pkt_num; + u64 mac_rx_pfc_pri1_pkt_num; + u64 mac_rx_pfc_pri2_pkt_num; + u64 mac_rx_pfc_pri3_pkt_num; + u64 mac_rx_pfc_pri4_pkt_num; + u64 mac_rx_pfc_pri5_pkt_num; + u64 mac_rx_pfc_pri6_pkt_num; + u64 mac_rx_pfc_pri7_pkt_num; + u64 mac_tx_total_pkt_num; + u64 mac_tx_total_oct_num; + u64 mac_tx_good_pkt_num; + u64 mac_tx_bad_pkt_num; + u64 mac_tx_good_oct_num; + u64 mac_tx_bad_oct_num; + u64 mac_tx_uni_pkt_num; + u64 mac_tx_multi_pkt_num; + u64 mac_tx_broad_pkt_num; + u64 mac_tx_undersize_pkt_num; + u64 mac_tx_oversize_pkt_num; + u64 mac_tx_64_oct_pkt_num; + u64 mac_tx_65_127_oct_pkt_num; + u64 mac_tx_128_255_oct_pkt_num; + u64 mac_tx_256_511_oct_pkt_num; + u64 mac_tx_512_1023_oct_pkt_num; + u64 mac_tx_1024_1518_oct_pkt_num; + u64 mac_tx_1519_2047_oct_pkt_num; + u64 mac_tx_2048_4095_oct_pkt_num; + u64 mac_tx_4096_8191_oct_pkt_num; + u64 rsv1; + u64 mac_tx_8192_9216_oct_pkt_num; + u64 mac_tx_9217_12287_oct_pkt_num; + u64 mac_tx_12288_16383_oct_pkt_num; + u64 mac_tx_1519_max_good_oct_pkt_num; + u64 mac_tx_1519_max_bad_oct_pkt_num; + u64 mac_rx_total_pkt_num; + u64 mac_rx_total_oct_num; + u64 mac_rx_good_pkt_num; + u64 mac_rx_bad_pkt_num; + u64 mac_rx_good_oct_num; + u64 mac_rx_bad_oct_num; + u64 mac_rx_uni_pkt_num; + u64 mac_rx_multi_pkt_num; + u64 mac_rx_broad_pkt_num; + u64 mac_rx_undersize_pkt_num; + u64 mac_rx_oversize_pkt_num; + u64 mac_rx_64_oct_pkt_num; + u64 mac_rx_65_127_oct_pkt_num; + u64 mac_rx_128_255_oct_pkt_num; + u64 mac_rx_256_511_oct_pkt_num; + u64 mac_rx_512_1023_oct_pkt_num; + u64 mac_rx_1024_1518_oct_pkt_num; + u64 mac_rx_1519_2047_oct_pkt_num; + u64 mac_rx_2048_4095_oct_pkt_num; + u64 mac_rx_4096_8191_oct_pkt_num; + u64 rsv2; + u64 mac_rx_8192_9216_oct_pkt_num; + u64 mac_rx_9217_12287_oct_pkt_num; + u64 mac_rx_12288_16383_oct_pkt_num; + u64 mac_rx_1519_max_good_oct_pkt_num; + u64 mac_rx_1519_max_bad_oct_pkt_num; + u64 mac_tx_fragment_pkt_num; + u64 mac_tx_undermin_pkt_num; + u64 mac_tx_jabber_pkt_num; + u64 mac_tx_err_all_pkt_num; + u64 mac_tx_from_app_good_pkt_num; + u64 mac_tx_from_app_bad_pkt_num; + u64 mac_rx_fragment_pkt_num; + u64 mac_rx_undermin_pkt_num; + u64 mac_rx_jabber_pkt_num; + u64 mac_rx_fcs_err_pkt_num; + u64 mac_rx_send_app_good_pkt_num; + u64 mac_rx_send_app_bad_pkt_num; + u64 mac_tx_pfc_pause_pkt_num; + u64 mac_rx_pfc_pause_pkt_num; + u64 mac_tx_ctrl_pkt_num; + u64 mac_rx_ctrl_pkt_num; + u64 mac_tx_pfc_pri0_xoff_time; + u64 mac_tx_pfc_pri1_xoff_time; + u64 mac_tx_pfc_pri2_xoff_time; + u64 mac_tx_pfc_pri3_xoff_time; + u64 mac_tx_pfc_pri4_xoff_time; + u64 mac_tx_pfc_pri5_xoff_time; + u64 mac_tx_pfc_pri6_xoff_time; + u64 mac_tx_pfc_pri7_xoff_time; + u64 mac_rx_pfc_pri0_xoff_time; + u64 mac_rx_pfc_pri1_xoff_time; + u64 mac_rx_pfc_pri2_xoff_time; + u64 mac_rx_pfc_pri3_xoff_time; + u64 mac_rx_pfc_pri4_xoff_time; + u64 mac_rx_pfc_pri5_xoff_time; + u64 mac_rx_pfc_pri6_xoff_time; + u64 mac_rx_pfc_pri7_xoff_time; + u64 mac_tx_pause_xoff_time; + u64 mac_rx_pause_xoff_time; }; -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 hclge_fec_stats { + u64 rs_corr_blocks; + u64 rs_uncorr_blocks; + u64 rs_error_blocks; + u64 base_r_lane_num; + u64 base_r_corr_blocks; + u64 base_r_uncorr_blocks; + union { + struct { + u64 base_r_corr_per_lanes[8]; + u64 base_r_uncorr_per_lanes[8]; + }; + u64 per_lanes[16]; + }; }; -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 hclge_rst_stats { + u32 reset_done_cnt; + u32 hw_reset_done_cnt; + u32 pf_rst_cnt; + u32 flr_rst_cnt; + u32 global_rst_cnt; + u32 imp_rst_cnt; + u32 reset_cnt; + u32 reset_fail_cnt; }; -struct trace_event_raw_i2c_result { - struct trace_entry ent; - int adapter_nr; - __u16 nr_msgs; - __s16 ret; - char __data[0]; +enum hclge_fc_mode { + HCLGE_FC_NONE = 0, + HCLGE_FC_RX_PAUSE = 1, + HCLGE_FC_TX_PAUSE = 2, + HCLGE_FC_FULL = 3, + HCLGE_FC_PFC = 4, + HCLGE_FC_DEFAULT = 5, }; -struct i2c_devinfo { - struct list_head list; - int busnum; - struct i2c_board_info board_info; +struct hclge_pg_info { + u8 pg_id; + u8 pg_sch_mode; + u8 tc_bit_map; + u32 bw_limit; + u8 tc_dwrr[8]; }; -struct trace_event_data_offsets_i2c_write { - u32 buf; +struct hclge_tc_info { + u8 tc_id; + u8 tc_sch_mode; + u8 pgid; + u32 bw_limit; }; -struct trace_event_data_offsets_i2c_reply { - u32 buf; +struct hclge_tm_info { + u8 num_tc; + u8 num_pg; + u8 pg_dwrr[4]; + u8 prio_tc[8]; + struct hclge_pg_info pg_info[4]; + struct hclge_tc_info tc_info[8]; + enum hclge_fc_mode fc_mode; + u8 hw_pfc_map; + u8 pfc_en; }; -struct trace_event_data_offsets_i2c_read {}; +struct hclge_vlan_type_cfg { + u16 rx_ot_fst_vlan_type; + u16 rx_ot_sec_vlan_type; + u16 rx_in_fst_vlan_type; + u16 rx_in_sec_vlan_type; + u16 tx_ot_vlan_type; + u16 tx_in_vlan_type; +}; -struct trace_event_data_offsets_i2c_result {}; +struct hclge_fd_key_cfg { + u8 key_sel; + u8 inner_sipv6_word_en; + u8 inner_dipv6_word_en; + u8 outer_sipv6_word_en; + u8 outer_dipv6_word_en; + u32 tuple_active; + u32 meta_data_active; +}; -struct i2c_cmd_arg { - unsigned int cmd; - void *arg; +struct hclge_fd_user_def_cfg { + u16 ref_cnt; + u16 offset; }; -struct i2c_device_identity { - u16 manufacturer_id; - u16 part_id; - u8 die_revision; +struct hclge_fd_cfg { + u8 fd_mode; + u16 max_key_length; + u32 rule_num[2]; + u16 cnt_num[2]; + struct hclge_fd_key_cfg key_cfg[2]; + struct hclge_fd_user_def_cfg user_def_cfg[3]; }; -enum { - POWER_SUPPLY_SCOPE_UNKNOWN = 0, - POWER_SUPPLY_SCOPE_SYSTEM = 1, - POWER_SUPPLY_SCOPE_DEVICE = 2, +enum HCLGE_FD_ACTIVE_RULE_TYPE { + HCLGE_FD_RULE_NONE = 0, + HCLGE_FD_ARFS_ACTIVE = 1, + HCLGE_FD_EP_ACTIVE = 2, + HCLGE_FD_TC_FLOWER_ACTIVE = 3, }; -enum pchg_state { - PCHG_STATE_RESET = 0, - PCHG_STATE_INITIALIZED = 1, - PCHG_STATE_ENABLED = 2, - PCHG_STATE_DETECTED = 3, - PCHG_STATE_CHARGING = 4, - PCHG_STATE_FULL = 5, - PCHG_STATE_DOWNLOAD = 6, - PCHG_STATE_DOWNLOADING = 7, - PCHG_STATE_CONNECTED = 8, - PCHG_STATE_COUNT = 9, +struct hclge_comm_rss_tuple_cfg { + u8 ipv4_tcp_en; + u8 ipv4_udp_en; + u8 ipv4_sctp_en; + u8 ipv4_fragment_en; + u8 ipv6_tcp_en; + u8 ipv6_udp_en; + u8 ipv6_sctp_en; + u8 ipv6_fragment_en; }; -enum { - POWER_SUPPLY_CHARGE_TYPE_UNKNOWN = 0, - POWER_SUPPLY_CHARGE_TYPE_NONE = 1, - POWER_SUPPLY_CHARGE_TYPE_TRICKLE = 2, - POWER_SUPPLY_CHARGE_TYPE_FAST = 3, - POWER_SUPPLY_CHARGE_TYPE_STANDARD = 4, - POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE = 5, - POWER_SUPPLY_CHARGE_TYPE_CUSTOM = 6, - POWER_SUPPLY_CHARGE_TYPE_LONGLIFE = 7, - POWER_SUPPLY_CHARGE_TYPE_BYPASS = 8, +struct hclge_comm_rss_cfg { + u8 rss_hash_key[40]; + u16 *rss_indirection_tbl; + u32 rss_algo; + struct hclge_comm_rss_tuple_cfg rss_tuple_sets; + u32 rss_size; }; -enum ec_mkbp_event { - EC_MKBP_EVENT_KEY_MATRIX = 0, - EC_MKBP_EVENT_HOST_EVENT = 1, - EC_MKBP_EVENT_SENSOR_FIFO = 2, - EC_MKBP_EVENT_BUTTON = 3, - EC_MKBP_EVENT_SWITCH = 4, - EC_MKBP_EVENT_FINGERPRINT = 5, - EC_MKBP_EVENT_SYSRQ = 6, - EC_MKBP_EVENT_HOST_EVENT64 = 7, - EC_MKBP_EVENT_CEC_EVENT = 8, - EC_MKBP_EVENT_CEC_MESSAGE = 9, - EC_MKBP_EVENT_PCHG = 12, - EC_MKBP_EVENT_COUNT = 13, -}; +struct hclge_comm_tqp; -struct port_data; +struct hclge_vport; -struct charger_data { - struct device *dev; - struct cros_ec_dev *ec_dev; - struct cros_ec_device *ec_device; - int num_registered_psy; - struct port_data *ports[8]; - struct notifier_block notifier; -}; +struct hclge_ptp; -struct port_data { - int port_number; - char name[12]; - struct power_supply *psy; - struct power_supply_desc psy_desc; - int psy_status; - int battery_percentage; - int charge_type; - struct charger_data *charger; - unsigned long last_update; +struct hclge_dev { + struct pci_dev *pdev; + struct hnae3_ae_dev *ae_dev; + struct hclge_hw hw; + struct hclge_misc_vector misc_vector; + struct hclge_mac_stats mac_stats; + struct hclge_fec_stats fec_stats; + unsigned long state; + unsigned long flr_state; + unsigned long last_reset_time; + enum hnae3_reset_type reset_type; + enum hnae3_reset_type reset_level; + unsigned long default_reset_request; + unsigned long reset_request; + unsigned long reset_pending; + struct hclge_rst_stats rst_stats; + struct semaphore reset_sem; + u32 fw_version; + u16 num_tqps; + u16 num_req_vfs; + u16 base_tqp_pid; + u16 alloc_rss_size; + u16 vf_rss_size_max; + u16 pf_rss_size_max; + u32 tx_spare_buf_size; + u16 fdir_pf_filter_count; + u16 num_alloc_vport; + u32 numa_node_mask; + u16 rx_buf_len; + u16 num_tx_desc; + u16 num_rx_desc; + u8 hw_tc_map; + enum hclge_fc_mode fc_mode_last_time; + u8 support_sfp_query; + u8 tx_sch_mode; + u8 tc_max; + u8 pfc_max; + u8 default_up; + u8 dcbx_cap; + struct hclge_tm_info tm_info; + u16 num_msi; + u16 num_msi_left; + u16 num_msi_used; + u16 *vector_status; + int *vector_irq; + u16 num_nic_msi; + u16 num_roce_msi; + unsigned long service_timer_period; + unsigned long service_timer_previous; + struct timer_list reset_timer; + struct delayed_work service_task; + bool cur_promisc; + int num_alloc_vfs; + struct hclge_comm_tqp *htqp; + struct hclge_vport *vport; + struct dentry *hclge_dbgfs; + struct hnae3_client *nic_client; + struct hnae3_client *roce_client; + u32 flag; + u32 pkt_buf_size; + u32 tx_buf_size; + u32 dv_buf_size; + u32 mps; + struct mutex vport_lock; + struct hclge_vlan_type_cfg vlan_type_cfg; + unsigned long vlan_table[16384]; + unsigned long vf_vlan_full[4]; + unsigned long vport_config_block[4]; + struct hclge_fd_cfg fd_cfg; + struct hlist_head fd_rule_list; + spinlock_t fd_rule_lock; + u16 hclge_fd_rule_num; + unsigned long serv_processed_cnt; + unsigned long last_serv_processed; + unsigned long last_rst_scheduled; + unsigned long last_mbx_scheduled; + unsigned long fd_bmap[64]; + enum HCLGE_FD_ACTIVE_RULE_TYPE fd_active_type; + u8 fd_en; + bool gro_en; + u16 wanted_umv_size; + u16 max_umv_size; + u16 priv_umv_size; + u16 share_umv_size; + u16 used_mc_mac_num; + struct { + union { + struct __kfifo kfifo; + struct hclge_mac_tnl_stats *type; + const struct hclge_mac_tnl_stats *const_type; + char (*rectype)[0]; + struct hclge_mac_tnl_stats *ptr; + const struct hclge_mac_tnl_stats *ptr_const; + }; + struct hclge_mac_tnl_stats buf[8]; + } mac_tnl_log; + struct hclge_ptp *ptp; + struct devlink *devlink; + struct hclge_comm_rss_cfg rss_cfg; }; -struct ec_response_pchg_count { - uint8_t port_count; +struct hclge_desc { + __le16 opcode; + __le16 flag; + __le16 retval; + __le16 rsv; + __le32 data[6]; }; -struct ec_response_get_cmd_versions { - uint32_t version_mask; +struct hclge_comm_tqp_stats { + u64 rcb_tx_ring_pktnum_rcd; + u64 rcb_rx_ring_pktnum_rcd; }; -struct ec_params_get_cmd_versions_v1 { - uint16_t cmd; +struct hclge_comm_tqp { + struct device *dev; + struct hnae3_queue q; + struct hclge_comm_tqp_stats tqp_stats; + u16 index; + bool alloced; }; -struct ec_response_pchg { - uint32_t error; - uint8_t state; - uint8_t battery_percentage; - uint8_t unused0; - uint8_t unused1; - uint32_t fw_version; - uint32_t dropped_event_count; +struct hclge_vlan_info { + u16 vlan_proto; + u16 qos; + u16 vlan_tag; }; -struct ec_params_pchg { - uint8_t port; +struct hclge_port_base_vlan_config { + u16 state; + bool tbl_sta; + struct hclge_vlan_info vlan_info; + struct hclge_vlan_info old_vlan_info; }; -struct sbsa_gwdt { - struct watchdog_device wdd; - u32 clk; - int version; - void *refresh_base; - void *control_base; +struct hclge_tx_vtag_cfg { + bool accept_tag1; + bool accept_untag1; + bool accept_tag2; + bool accept_untag2; + bool insert_tag1_en; + bool insert_tag2_en; + u16 default_tag1; + u16 default_tag2; + bool tag_shift_mode_en; }; -struct dw_mci; - -struct dw_mci_slot; - -struct dw_mci_drv_data { - unsigned long *caps; - u32 num_caps; - u32 common_caps; - int (*init)(struct dw_mci *); - void (*set_ios)(struct dw_mci *, struct mmc_ios *); - int (*parse_dt)(struct dw_mci *); - int (*execute_tuning)(struct dw_mci_slot *, u32); - int (*prepare_hs400_tuning)(struct dw_mci *, struct mmc_ios *); - int (*switch_voltage)(struct mmc_host *, struct mmc_ios *); - void (*set_data_timeout)(struct dw_mci *, unsigned int); - u32 (*get_drto_clks)(struct dw_mci *); +struct hclge_rx_vtag_cfg { + bool rx_vlan_offload_en; + bool strip_tag1_en; + bool strip_tag2_en; + bool vlan1_vlan_prionly; + bool vlan2_vlan_prionly; + bool strip_tag1_discard_en; + bool strip_tag2_discard_en; }; -enum dw_mci_state { - STATE_IDLE = 0, - STATE_SENDING_CMD = 1, - STATE_SENDING_DATA = 2, - STATE_DATA_BUSY = 3, - STATE_SENDING_STOP = 4, - STATE_DATA_ERROR = 5, - STATE_SENDING_CMD11 = 6, - STATE_WAITING_CMD11_DONE = 7, +struct hclge_vf_info { + int link_state; + u8 mac[6]; + u32 spoofchk; + u32 max_tx_rate; + u32 trusted; + u8 request_uc_en; + u8 request_mc_en; + u8 request_bc_en; }; -struct dw_mci_dma_ops; - -struct dw_mci_dma_slave; +struct hclge_vport { + u16 alloc_tqps; + u16 qs_offset; + u32 bw_limit; + u8 dwrr; + bool req_vlan_fltr_en; + bool cur_vlan_fltr_en; + unsigned long vlan_del_fail_bmap[64]; + struct hclge_port_base_vlan_config port_base_vlan_cfg; + struct hclge_tx_vtag_cfg txvlan_cfg; + struct hclge_rx_vtag_cfg rxvlan_cfg; + u16 used_umv_num; + u16 vport_id; + struct hclge_dev *back; + struct hnae3_handle nic; + struct hnae3_handle roce; + unsigned long state; + unsigned long need_notify; + unsigned long last_active_jiffies; + u32 mps; + struct hclge_vf_info vf_info; + u8 overflow_promisc_flags; + u8 last_promisc_flags; + spinlock_t mac_list_lock; + struct list_head uc_mac_list; + struct list_head mc_mac_list; + struct list_head vlan_list; +}; -struct dw_mci_board; +struct hclge_ptp_cycle { + u32 quo; + u32 numer; + u32 den; +}; -struct dw_mci { +struct hclge_ptp { + struct hclge_dev *hdev; + struct ptp_clock *clock; + struct sk_buff *tx_skb; + unsigned long flags; + void *io_base; + struct ptp_clock_info info; + struct hwtstamp_config ts_cfg; spinlock_t lock; - spinlock_t irq_lock; - void *regs; - void *fifo_reg; - u32 data_addr_override; - bool wm_aligned; - struct scatterlist *sg; - struct sg_mapping_iter sg_miter; - struct mmc_request *mrq; - struct mmc_command *cmd; - struct mmc_data *data; - struct mmc_command stop_abort; - unsigned int prev_blksz; - unsigned char timing; - int use_dma; - int using_dma; - int dma_64bit_address; - dma_addr_t sg_dma; - void *sg_cpu; - const struct dw_mci_dma_ops *dma_ops; - unsigned int ring_size; - struct dw_mci_dma_slave *dms; - resource_size_t phy_regs; - u32 cmd_status; - u32 data_status; - u32 stop_cmdr; - u32 dir_status; - struct tasklet_struct tasklet; - unsigned long pending_events; - unsigned long completed_events; - enum dw_mci_state state; - struct list_head queue; - u32 bus_hz; - u32 current_speed; - u32 minimum_speed; - u32 fifoth_val; - u16 verid; - struct device *dev; - struct dw_mci_board *pdata; - const struct dw_mci_drv_data *drv_data; - void *priv; - struct clk *biu_clk; - struct clk *ciu_clk; - struct dw_mci_slot *slot; - int fifo_depth; - int data_shift; - u8 part_buf_start; - u8 part_buf_count; - union { - u16 part_buf16; - u32 part_buf32; - u64 part_buf; - }; - void (*push_data)(struct dw_mci *, void *, int); - void (*pull_data)(struct dw_mci *, void *, int); - u32 quirks; - bool vqmmc_enabled; - unsigned long irq_flags; - int irq; - int sdio_id0; - struct timer_list cmd11_timer; - struct timer_list cto_timer; - struct timer_list dto_timer; + u32 ptp_cfg; + u32 last_tx_seqid; + struct hclge_ptp_cycle cycle; + unsigned long tx_start; + unsigned long tx_cnt; + unsigned long tx_skipped; + unsigned long tx_cleaned; + unsigned long last_rx; + unsigned long rx_cnt; + unsigned long tx_timeout; }; -struct dw_mci_dma_ops { - int (*init)(struct dw_mci *); - int (*start)(struct dw_mci *, unsigned int); - void (*complete)(void *); - void (*stop)(struct dw_mci *); - void (*cleanup)(struct dw_mci *); - void (*exit)(struct dw_mci *); +enum hclge_mod_name_list { + MODULE_NONE = 0, + MODULE_BIOS_COMMON = 1, + MODULE_GE = 2, + MODULE_IGU_EGU = 3, + MODULE_LGE = 4, + MODULE_NCSI = 5, + MODULE_PPP = 6, + MODULE_QCN = 7, + MODULE_RCB_RX = 8, + MODULE_RTC = 9, + MODULE_SSU = 10, + MODULE_TM = 11, + MODULE_RCB_TX = 12, + MODULE_TXDMA = 13, + MODULE_MASTER = 14, + MODULE_HIMAC = 15, + MODULE_ROCEE_TOP = 40, + MODULE_ROCEE_TIMER = 41, + MODULE_ROCEE_MDB = 42, + MODULE_ROCEE_TSP = 43, + MODULE_ROCEE_TRP = 44, + MODULE_ROCEE_SCC = 45, + MODULE_ROCEE_CAEP = 46, + MODULE_ROCEE_GEN_AC = 47, + MODULE_ROCEE_QMM = 48, + MODULE_ROCEE_LSAN = 49, }; -struct dw_mci_dma_slave { - struct dma_chan *ch; - enum dma_transfer_direction direction; +struct hclge_hw_module_id { + enum hclge_mod_name_list module_id; + const char *msg; }; -struct dma_pdata; +enum hclge_err_type_list { + NONE_ERROR = 0, + FIFO_ERROR = 1, + MEMORY_ERROR = 2, + POISON_ERROR = 3, + MSIX_ECC_ERROR = 4, + TQP_INT_ECC_ERROR = 5, + PF_ABNORMAL_INT_ERROR = 6, + MPF_ABNORMAL_INT_ERROR = 7, + COMMON_ERROR = 8, + PORT_ERROR = 9, + ETS_ERROR = 10, + NCSI_ERROR = 11, + GLB_ERROR = 12, + LINK_ERROR = 13, + PTP_ERROR = 14, + ROCEE_NORMAL_ERR = 40, + ROCEE_OVF_ERR = 41, + ROCEE_BUS_ERR = 42, +}; -struct dw_mci_board { - unsigned int bus_hz; - u32 caps; - u32 caps2; - u32 pm_caps; - unsigned int fifo_depth; - u32 detect_delay_ms; - struct reset_control *rstc; - struct dw_mci_dma_ops *dma_ops; - struct dma_pdata *data; +struct hclge_hw_type_id { + enum hclge_err_type_list type_id; + const char *msg; + bool cause_by_vf; }; -struct dw_mci_slot { - struct mmc_host *mmc; - struct dw_mci *host; - u32 ctype; - struct mmc_request *mrq; - struct list_head queue_node; - unsigned int clock; - unsigned int __clk_old; - unsigned long flags; - int id; - int sdio_id; +enum hclge_opcode_type { + HCLGE_OPC_QUERY_FW_VER = 1, + HCLGE_OPC_CFG_RST_TRIGGER = 32, + HCLGE_OPC_GBL_RST_STATUS = 33, + HCLGE_OPC_QUERY_FUNC_STATUS = 34, + HCLGE_OPC_QUERY_PF_RSRC = 35, + HCLGE_OPC_QUERY_VF_RSRC = 36, + HCLGE_OPC_GET_CFG_PARAM = 37, + HCLGE_OPC_PF_RST_DONE = 38, + HCLGE_OPC_QUERY_VF_RST_RDY = 39, + HCLGE_OPC_STATS_64_BIT = 48, + HCLGE_OPC_STATS_32_BIT = 49, + HCLGE_OPC_STATS_MAC = 50, + HCLGE_OPC_QUERY_MAC_REG_NUM = 51, + HCLGE_OPC_STATS_MAC_ALL = 52, + HCLGE_OPC_QUERY_REG_NUM = 64, + HCLGE_OPC_QUERY_32_BIT_REG = 65, + HCLGE_OPC_QUERY_64_BIT_REG = 66, + HCLGE_OPC_DFX_BD_NUM = 67, + HCLGE_OPC_DFX_BIOS_COMMON_REG = 68, + HCLGE_OPC_DFX_SSU_REG_0 = 69, + HCLGE_OPC_DFX_SSU_REG_1 = 70, + HCLGE_OPC_DFX_IGU_EGU_REG = 71, + HCLGE_OPC_DFX_RPU_REG_0 = 72, + HCLGE_OPC_DFX_RPU_REG_1 = 73, + HCLGE_OPC_DFX_NCSI_REG = 74, + HCLGE_OPC_DFX_RTC_REG = 75, + HCLGE_OPC_DFX_PPP_REG = 76, + HCLGE_OPC_DFX_RCB_REG = 77, + HCLGE_OPC_DFX_TQP_REG = 78, + HCLGE_OPC_DFX_SSU_REG_2 = 79, + HCLGE_OPC_QUERY_DEV_SPECS = 80, + HCLGE_OPC_GET_QUEUE_ERR_VF = 103, + HCLGE_OPC_CONFIG_MAC_MODE = 769, + HCLGE_OPC_CONFIG_AN_MODE = 772, + HCLGE_OPC_QUERY_LINK_STATUS = 775, + HCLGE_OPC_CONFIG_MAX_FRM_SIZE = 776, + HCLGE_OPC_CONFIG_SPEED_DUP = 777, + HCLGE_OPC_QUERY_MAC_TNL_INT = 784, + HCLGE_OPC_MAC_TNL_INT_EN = 785, + HCLGE_OPC_CLEAR_MAC_TNL_INT = 786, + HCLGE_OPC_COMMON_LOOPBACK = 789, + HCLGE_OPC_QUERY_FEC_STATS = 790, + HCLGE_OPC_CONFIG_FEC_MODE = 794, + HCLGE_OPC_QUERY_ROH_TYPE_INFO = 905, + HCLGE_OPC_PTP_INT_EN = 1281, + HCLGE_OPC_PTP_MODE_CFG = 1287, + HCLGE_OPC_CFG_MAC_PAUSE_EN = 1793, + HCLGE_OPC_CFG_PFC_PAUSE_EN = 1794, + HCLGE_OPC_CFG_MAC_PARA = 1795, + HCLGE_OPC_CFG_PFC_PARA = 1796, + HCLGE_OPC_QUERY_MAC_TX_PKT_CNT = 1797, + HCLGE_OPC_QUERY_MAC_RX_PKT_CNT = 1798, + HCLGE_OPC_QUERY_PFC_TX_PKT_CNT = 1799, + HCLGE_OPC_QUERY_PFC_RX_PKT_CNT = 1800, + HCLGE_OPC_PRI_TO_TC_MAPPING = 1801, + HCLGE_OPC_QOS_MAP = 1802, + HCLGE_OPC_TM_PG_TO_PRI_LINK = 2052, + HCLGE_OPC_TM_QS_TO_PRI_LINK = 2053, + HCLGE_OPC_TM_NQ_TO_QS_LINK = 2054, + HCLGE_OPC_TM_RQ_TO_QS_LINK = 2055, + HCLGE_OPC_TM_PORT_WEIGHT = 2056, + HCLGE_OPC_TM_PG_WEIGHT = 2057, + HCLGE_OPC_TM_QS_WEIGHT = 2058, + HCLGE_OPC_TM_PRI_WEIGHT = 2059, + HCLGE_OPC_TM_PRI_C_SHAPPING = 2060, + HCLGE_OPC_TM_PRI_P_SHAPPING = 2061, + HCLGE_OPC_TM_PG_C_SHAPPING = 2062, + HCLGE_OPC_TM_PG_P_SHAPPING = 2063, + HCLGE_OPC_TM_PORT_SHAPPING = 2064, + HCLGE_OPC_TM_PG_SCH_MODE_CFG = 2066, + HCLGE_OPC_TM_PRI_SCH_MODE_CFG = 2067, + HCLGE_OPC_TM_QS_SCH_MODE_CFG = 2068, + HCLGE_OPC_TM_BP_TO_QSET_MAPPING = 2069, + HCLGE_OPC_TM_NODES = 2070, + HCLGE_OPC_ETS_TC_WEIGHT = 2115, + HCLGE_OPC_QSET_DFX_STS = 2116, + HCLGE_OPC_PRI_DFX_STS = 2117, + HCLGE_OPC_PG_DFX_STS = 2118, + HCLGE_OPC_PORT_DFX_STS = 2119, + HCLGE_OPC_SCH_NQ_CNT = 2120, + HCLGE_OPC_SCH_RQ_CNT = 2121, + HCLGE_OPC_TM_INTERNAL_STS = 2128, + HCLGE_OPC_TM_INTERNAL_CNT = 2129, + HCLGE_OPC_TM_INTERNAL_STS_1 = 2130, + HCLGE_OPC_TM_FLUSH = 2162, + HCLGE_OPC_TX_BUFF_ALLOC = 2305, + HCLGE_OPC_RX_PRIV_BUFF_ALLOC = 2306, + HCLGE_OPC_RX_PRIV_WL_ALLOC = 2307, + HCLGE_OPC_RX_COM_THRD_ALLOC = 2308, + HCLGE_OPC_RX_COM_WL_ALLOC = 2309, + HCLGE_OPC_RX_GBL_PKT_CNT = 2310, + HCLGE_OPC_SET_TQP_MAP = 2561, + HCLGE_OPC_CFG_TX_QUEUE = 2817, + HCLGE_OPC_QUERY_TX_POINTER = 2818, + HCLGE_OPC_QUERY_TX_STATS = 2819, + HCLGE_OPC_TQP_TX_QUEUE_TC = 2820, + HCLGE_OPC_CFG_RX_QUEUE = 2833, + HCLGE_OPC_QUERY_RX_POINTER = 2834, + HCLGE_OPC_QUERY_RX_STATS = 2835, + HCLGE_OPC_STASH_RX_QUEUE_LRO = 2838, + HCLGE_OPC_CFG_RX_QUEUE_LRO = 2839, + HCLGE_OPC_CFG_COM_TQP_QUEUE = 2848, + HCLGE_OPC_RESET_TQP_QUEUE = 2850, + HCLGE_OPC_PPU_PF_OTHER_INT_DFX = 2890, + HCLGE_OPC_TSO_GENERIC_CONFIG = 3073, + HCLGE_OPC_GRO_GENERIC_CONFIG = 3088, + HCLGE_OPC_RSS_GENERIC_CONFIG = 3329, + HCLGE_OPC_RSS_INDIR_TABLE = 3335, + HCLGE_OPC_RSS_TC_MODE = 3336, + HCLGE_OPC_RSS_INPUT_TUPLE = 3330, + HCLGE_OPC_CFG_PROMISC_MODE = 3585, + HCLGE_OPC_VLAN_PORT_TX_CFG = 3841, + HCLGE_OPC_VLAN_PORT_RX_CFG = 3842, + HCLGE_OPC_ADD_RING_TO_VECTOR = 5379, + HCLGE_OPC_DEL_RING_TO_VECTOR = 5380, + HCLGE_OPC_MAC_VLAN_ADD = 4096, + HCLGE_OPC_MAC_VLAN_REMOVE = 4097, + HCLGE_OPC_MAC_VLAN_TYPE_ID = 4098, + HCLGE_OPC_MAC_VLAN_INSERT = 4099, + HCLGE_OPC_MAC_VLAN_ALLOCATE = 4100, + HCLGE_OPC_MAC_ETHTYPE_ADD = 4112, + HCLGE_OPC_MAC_ETHTYPE_REMOVE = 4113, + HCLGE_OPC_MAC_VLAN_SWITCH_PARAM = 4147, + HCLGE_OPC_VLAN_FILTER_CTRL = 4352, + HCLGE_OPC_VLAN_FILTER_PF_CFG = 4353, + HCLGE_OPC_VLAN_FILTER_VF_CFG = 4354, + HCLGE_OPC_PORT_VLAN_BYPASS = 4355, + HCLGE_OPC_FD_MODE_CTRL = 4608, + HCLGE_OPC_FD_GET_ALLOCATION = 4609, + HCLGE_OPC_FD_KEY_CONFIG = 4610, + HCLGE_OPC_FD_TCAM_OP = 4611, + HCLGE_OPC_FD_AD_OP = 4612, + HCLGE_OPC_FD_CNT_OP = 4613, + HCLGE_OPC_FD_USER_DEF_OP = 4615, + HCLGE_OPC_FD_QB_CTRL = 4624, + HCLGE_OPC_FD_QB_AD_OP = 4625, + HCLGE_OPC_MDIO_CONFIG = 6400, + HCLGE_OPC_QCN_MOD_CFG = 6657, + HCLGE_OPC_QCN_GRP_TMPLT_CFG = 6658, + HCLGE_OPC_QCN_SHAPPING_CFG = 6659, + HCLGE_OPC_QCN_SHAPPING_BS_CFG = 6660, + HCLGE_OPC_QCN_QSET_LINK_CFG = 6661, + HCLGE_OPC_QCN_RP_STATUS_GET = 6662, + HCLGE_OPC_QCN_AJUST_INIT = 6663, + HCLGE_OPC_QCN_DFX_CNT_STATUS = 6664, + HCLGEVF_OPC_MBX_PF_TO_VF = 8192, + HCLGEVF_OPC_MBX_VF_TO_PF = 8193, + HCLGE_OPC_LED_STATUS_CFG = 45056, + HCLGE_OPC_CLEAR_HW_RESOURCE = 28683, + HCLGE_OPC_QUERY_NCL_CONFIG = 28689, + HCLGE_OPC_IMP_STATS_BD = 28690, + HCLGE_OPC_IMP_STATS_INFO = 28691, + HCLGE_OPC_IMP_COMPAT_CFG = 28698, + HCLGE_OPC_GET_SFP_EEPROM = 28928, + HCLGE_OPC_GET_SFP_EXIST = 28929, + HCLGE_OPC_GET_SFP_INFO = 28932, + HCLGE_MAC_COMMON_INT_EN = 782, + HCLGE_TM_SCH_ECC_INT_EN = 2089, + HCLGE_SSU_ECC_INT_CMD = 2441, + HCLGE_SSU_COMMON_INT_CMD = 2444, + HCLGE_PPU_MPF_ECC_INT_CMD = 2880, + HCLGE_PPU_MPF_OTHER_INT_CMD = 2881, + HCLGE_PPU_PF_OTHER_INT_CMD = 2882, + HCLGE_COMMON_ECC_INT_CFG = 5381, + HCLGE_QUERY_RAS_INT_STS_BD_NUM = 5392, + HCLGE_QUERY_CLEAR_MPF_RAS_INT = 5393, + HCLGE_QUERY_CLEAR_PF_RAS_INT = 5394, + HCLGE_QUERY_MSIX_INT_STS_BD_NUM = 5395, + HCLGE_QUERY_CLEAR_ALL_MPF_MSIX_INT = 5396, + HCLGE_QUERY_CLEAR_ALL_PF_MSIX_INT = 5397, + HCLGE_QUERY_ALL_ERR_BD_NUM = 5398, + HCLGE_QUERY_ALL_ERR_INFO = 5399, + HCLGE_CONFIG_ROCEE_RAS_INT_EN = 5504, + HCLGE_QUERY_CLEAR_ROCEE_RAS_INT = 5505, + HCLGE_ROCEE_PF_RAS_INT_CMD = 5508, + HCLGE_QUERY_ROCEE_ECC_RAS_INFO_CMD = 5509, + HCLGE_QUERY_ROCEE_AXI_RAS_INFO_CMD = 5510, + HCLGE_IGU_EGU_TNL_INT_EN = 6147, + HCLGE_IGU_COMMON_INT_EN = 6150, + HCLGE_TM_QCN_MEM_INT_CFG = 6676, + HCLGE_PPP_CMD0_INT_CMD = 8448, + HCLGE_PPP_CMD1_INT_CMD = 8449, + HCLGE_MAC_ETHERTYPE_IDX_RD = 8453, + HCLGE_OPC_WOL_GET_SUPPORTED_MODE = 8705, + HCLGE_OPC_WOL_CFG = 8706, + HCLGE_NCSI_INT_EN = 9217, + HCLGE_OPC_MAC_ADDR_CHECK = 36868, + HCLGE_OPC_PHY_LINK_KSETTING = 28709, + HCLGE_OPC_PHY_REG = 28710, + HCLGE_OPC_QUERY_LINK_DIAGNOSIS = 28714, }; -struct hs_timing { - u32 drv_phase; - u32 smpl_dly; - u32 smpl_phase_max; - u32 smpl_phase_min; +enum HCLGE_DEV_STATE { + HCLGE_STATE_REINITING = 0, + HCLGE_STATE_DOWN = 1, + HCLGE_STATE_DISABLED = 2, + HCLGE_STATE_REMOVING = 3, + HCLGE_STATE_NIC_REGISTERED = 4, + HCLGE_STATE_ROCE_REGISTERED = 5, + HCLGE_STATE_SERVICE_INITED = 6, + HCLGE_STATE_RST_SERVICE_SCHED = 7, + HCLGE_STATE_RST_HANDLING = 8, + HCLGE_STATE_MBX_SERVICE_SCHED = 9, + HCLGE_STATE_MBX_HANDLING = 10, + HCLGE_STATE_ERR_SERVICE_SCHED = 11, + HCLGE_STATE_STATISTICS_UPDATING = 12, + HCLGE_STATE_LINK_UPDATING = 13, + HCLGE_STATE_RST_FAIL = 14, + HCLGE_STATE_FD_TBL_CHANGED = 15, + HCLGE_STATE_FD_CLEAR_ALL = 16, + HCLGE_STATE_FD_USER_DEF_CHANGED = 17, + HCLGE_STATE_PTP_EN = 18, + HCLGE_STATE_PTP_TX_HANDLING = 19, + HCLGE_STATE_FEC_STATS_UPDATING = 20, + HCLGE_STATE_MAX = 21, }; -struct k3_priv { - int ctrl_id; - u32 cur_speed; - struct regmap *reg; +struct hclge_query_ppu_pf_other_int_dfx_cmd { + __le16 over_8bd_no_fe_qid; + __le16 over_8bd_no_fe_vf_id; + __le16 tso_mss_cmp_min_err_qid; + __le16 tso_mss_cmp_min_err_vf_id; + __le16 tso_mss_cmp_max_err_qid; + __le16 tso_mss_cmp_max_err_vf_id; + __le16 tx_rd_fbd_poison_qid; + __le16 tx_rd_fbd_poison_vf_id; + __le16 rx_rd_fbd_poison_qid; + __le16 rx_rd_fbd_poison_vf_id; + u8 rsv[4]; }; -struct heartbeat_trig_data { - struct led_classdev *led_cdev; - unsigned int phase; - unsigned int period; - struct timer_list timer; - unsigned int invert; +struct hclge_sum_err_info { + u8 reset_type; + u8 mod_num; + u8 rsv[2]; }; -struct meson_sm_cmd { - unsigned int index; - u32 smc_id; +struct hclge_mod_err_info { + u8 mod_id; + u8 err_num; + u8 rsv[2]; }; -struct meson_sm_chip { - unsigned int shmem_size; - u32 cmd_shmem_in_base; - u32 cmd_shmem_out_base; - struct meson_sm_cmd cmd[0]; +struct hclge_type_reg_err_info { + u8 type_id; + u8 reg_num; + u8 rsv[2]; + u32 hclge_reg[256]; }; -enum { - SM_EFUSE_READ = 0, - SM_EFUSE_WRITE = 1, - SM_EFUSE_USER_MAX = 2, - SM_GET_CHIP_ID = 3, - SM_A1_PWRC_SET = 4, - SM_A1_PWRC_GET = 5, +enum ring_id { + NETSEC_RING_TX = 0, + NETSEC_RING_RX = 1, }; -struct meson_sm_firmware { - const struct meson_sm_chip *chip; - void *sm_shmem_in_base; - void *sm_shmem_out_base; +enum buf_type { + TYPE_NETSEC_SKB = 0, + TYPE_NETSEC_XDP_TX = 1, + TYPE_NETSEC_XDP_NDO = 2, }; -struct omap_dm_timer_ops; +struct netsec_desc; -struct dmtimer_platform_data { - int (*set_timer_src)(struct platform_device *, int); - u32 timer_capability; - u32 timer_errata; - int (*get_context_loss_count)(struct device *); - const struct omap_dm_timer_ops *timer_ops; +struct netsec_desc_ring { + dma_addr_t desc_dma; + struct netsec_desc *desc; + void *vaddr; + u16 head; + u16 tail; + u16 xdp_xmit; + struct page_pool *page_pool; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct omap_dm_timer; +struct netsec_priv { + struct netsec_desc_ring desc_ring[2]; + struct ethtool_coalesce et_coalesce; + struct bpf_prog *xdp_prog; + spinlock_t reglock; + struct napi_struct napi; + phy_interface_t phy_interface; + struct net_device *ndev; + struct device_node *phy_np; + struct phy_device *phydev; + struct mii_bus *mii_bus; + void *ioaddr; + void *eeprom_base; + struct device *dev; + struct clk *clk; + u32 msg_enable; + u32 freq; + u32 phy_addr; + bool rx_cksum_offload_flag; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; -struct omap_dm_timer_ops { - struct omap_dm_timer * (*request_by_node)(struct device_node *); - struct omap_dm_timer * (*request_specific)(int); - struct omap_dm_timer * (*request)(); - int (*free)(struct omap_dm_timer *); - void (*enable)(struct omap_dm_timer *); - void (*disable)(struct omap_dm_timer *); - int (*get_irq)(struct omap_dm_timer *); - int (*set_int_enable)(struct omap_dm_timer *, unsigned int); - int (*set_int_disable)(struct omap_dm_timer *, u32); - struct clk * (*get_fclk)(struct omap_dm_timer *); - int (*start)(struct omap_dm_timer *); - int (*stop)(struct omap_dm_timer *); - int (*set_source)(struct omap_dm_timer *, int); - int (*set_load)(struct omap_dm_timer *, unsigned int); - int (*set_match)(struct omap_dm_timer *, int, unsigned int); - int (*set_pwm)(struct omap_dm_timer *, int, int, int, int); - int (*get_pwm_status)(struct omap_dm_timer *); - int (*set_prescaler)(struct omap_dm_timer *, int); - unsigned int (*read_counter)(struct omap_dm_timer *); - int (*write_counter)(struct omap_dm_timer *, unsigned int); - unsigned int (*read_status)(struct omap_dm_timer *); - int (*write_status)(struct omap_dm_timer *, unsigned int); +struct netsec_desc { + union { + struct sk_buff *skb; + struct xdp_frame *xdpf; + }; + dma_addr_t dma_addr; + void *addr; + u16 len; + u8 buf_type; }; -struct omap_dm_timer {}; +struct xdp_frame_bulk { + int count; + void *xa; + void *q[16]; +}; -enum { - REQUEST_ANY = 0, - REQUEST_BY_ID = 1, - REQUEST_BY_CAP = 2, - REQUEST_BY_NODE = 3, +struct netsec_de { + u32 attr; + u32 data_buf_addr_up; + u32 data_buf_addr_lw; + u32 buf_len_info; }; -struct timer_regs { - u32 ocp_cfg; - u32 tidr; - u32 tier; - u32 twer; - u32 tclr; - u32 tcrr; - u32 tldr; - u32 ttrg; - u32 twps; - u32 tmar; - u32 tcar1; - u32 tsicr; - u32 tcar2; - u32 tpir; - u32 tnir; - u32 tcvr; - u32 tocr; - u32 towr; +struct netsec_rx_pkt_info { + int rx_cksum_result; + int err_code; + bool err_flag; }; -struct dmtimer { - struct omap_dm_timer cookie; - int id; - int irq; - struct clk *fclk; - void *io_base; - int irq_stat; - int irq_ena; - int irq_dis; - void *pend; - void *func_base; - atomic_t enabled; - unsigned long rate; - unsigned int reserved: 1; - unsigned int posted: 1; - unsigned int omap1: 1; - struct timer_regs context; - int revision; - u32 capability; - u32 errata; - struct platform_device *pdev; - struct list_head node; - struct notifier_block nb; +struct netsec_tx_pkt_ctrl { + u16 tcp_seg_len; + bool tcp_seg_offload_flag; + bool cksum_offload_flag; }; -typedef int (*rproc_handle_resource_t)(struct rproc *, void *, int, int); +struct mu3h_sch_bw_info; -enum rproc_features { - RPROC_FEAT_ATTACH_ON_RECOVERY = 0, - RPROC_MAX_FEATURES = 1, -}; +struct mu3h_sch_tt; -enum rproc_crash_type { - RPROC_MMUFAULT = 0, - RPROC_WATCHDOG = 1, - RPROC_FATAL_ERROR = 2, +struct mu3h_sch_ep_info { + u32 esit; + u32 num_esit; + u32 num_budget_microframes; + struct list_head endpoint; + struct hlist_node hentry; + struct list_head tt_endpoint; + struct mu3h_sch_bw_info *bw_info; + struct mu3h_sch_tt *sch_tt; + u32 ep_type; + u32 maxpkt; + struct usb_host_endpoint *ep; + enum usb_device_speed speed; + bool allocated; + u32 offset; + u32 repeat; + u32 pkts; + u32 cs_count; + u32 burst_mode; + u32 bw_budget_table[0]; }; -enum fw_resource_type { - RSC_CARVEOUT = 0, - RSC_DEVMEM = 1, - RSC_TRACE = 2, - RSC_VDEV = 3, - RSC_LAST = 4, - RSC_VENDOR_START = 128, - RSC_VENDOR_END = 512, +struct mu3h_sch_bw_info { + u32 bus_bw[64]; }; -enum rsc_handling_status { - RSC_HANDLED = 0, - RSC_IGNORED = 1, +struct mu3h_sch_tt { + u16 fs_bus_bw_out[64]; + u16 fs_bus_bw_in[64]; + u8 ls_bus_bw[64]; + u16 fs_frame_bw[8]; + u8 in_ss_cnt[64]; + struct list_head ep_list; }; -struct rproc_mem_entry { - void *va; - bool is_iomem; - dma_addr_t dma; - size_t len; - u32 da; - void *priv; - char name[32]; - struct list_head node; - u32 rsc_offset; - u32 flags; - u32 of_resm_idx; - int (*alloc)(struct rproc *, struct rproc_mem_entry *); - int (*release)(struct rproc *, struct rproc_mem_entry *); -}; +struct mu3c_ippc_regs; -struct rproc_debug_trace { - struct rproc *rproc; - struct dentry *tfile; - struct list_head node; - struct rproc_mem_entry trace_mem; +struct xhci_hcd_mtk { + struct device *dev; + struct usb_hcd *hcd; + struct mu3h_sch_bw_info *sch_array; + struct list_head bw_ep_chk_list; + struct hlist_head sch_ep_hash[32]; + struct mu3c_ippc_regs *ippc_regs; + int num_u2_ports; + int num_u3_ports; + int u2p_dis_msk; + int u3p_dis_msk; + struct clk_bulk_data clks[6]; + struct regulator_bulk_data supplies[2]; + unsigned int has_ippc: 1; + unsigned int lpm_support: 1; + unsigned int u2_lpm_disable: 1; + unsigned int uwk_en: 1; + struct regmap *uwk; + u32 uwk_reg_base; + u32 uwk_vers; + u32 rxfifo_depth; }; -struct rproc_subdev { - struct list_head node; - int (*prepare)(struct rproc_subdev *); - int (*start)(struct rproc_subdev *); - void (*stop)(struct rproc_subdev *, bool); - void (*unprepare)(struct rproc_subdev *); +struct mu3c_ippc_regs { + __le32 ip_pw_ctr0; + __le32 ip_pw_ctr1; + __le32 ip_pw_ctr2; + __le32 ip_pw_ctr3; + __le32 ip_pw_sts1; + __le32 ip_pw_sts2; + __le32 reserved0[3]; + __le32 ip_xhci_cap; + __le32 reserved1[2]; + __le64 u3_ctrl_p[4]; + __le64 u2_ctrl_p[5]; + __le32 reserved2; + __le32 u2_phy_pll; + __le32 reserved3[33]; }; -struct rproc_vdev; - -struct rproc_vring { - void *va; - int num; - u32 da; - u32 align; - int notifyid; - struct rproc_vdev *rvdev; - struct virtqueue *vq; +struct amba_kmi_port { + struct serio *io; + struct clk *clk; + void *base; + unsigned int irq; + unsigned int divisor; + unsigned int open; }; -struct rproc_vdev { - struct rproc_subdev subdev; - struct platform_device *pdev; - unsigned int id; +struct psmouse_smbus_dev { + struct i2c_board_info board; + struct psmouse *psmouse; + struct i2c_client *client; struct list_head node; - struct rproc *rproc; - struct rproc_vring vring[2]; - u32 rsc_offset; - u32 index; -}; - -struct fw_rsc_vdev_vring { - u32 da; - u32 align; - u32 num; - u32 notifyid; - u32 pa; + bool dead; + bool need_deactivate; }; -struct fw_rsc_vdev { - u32 id; - u32 notifyid; - u32 dfeatures; - u32 gfeatures; - u32 config_len; - u8 status; - u8 num_of_vrings; - u8 reserved[2]; - struct fw_rsc_vdev_vring vring[0]; +struct psmouse_smbus_removal_work { + struct work_struct work; + struct i2c_client *client; }; -struct fw_rsc_hdr { - u32 type; - u8 data[0]; +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 fw_rsc_carveout { - u32 da; - u32 pa; - u32 len; - u32 flags; - u32 reserved; - u8 name[32]; +struct qup_i2c_block { + int count; + int pos; + int tx_tag_len; + int rx_tag_len; + int data_len; + int cur_blk_len; + int total_tx_len; + int total_rx_len; + int tx_fifo_data_pos; + int tx_fifo_free; + int rx_fifo_data_pos; + int fifo_available; + u32 tx_fifo_data; + u32 rx_fifo_data; + u8 *cur_data; + u8 *cur_tx_tags; + bool tx_tags_sent; + bool send_last_word; + bool rx_tags_fetched; + bool rx_bytes_read; + bool is_tx_blk_mode; + bool is_rx_blk_mode; + u8 tags[6]; }; -struct fw_rsc_devmem { - u32 da; - u32 pa; - u32 len; - u32 flags; - u32 reserved; - u8 name[32]; +struct qup_i2c_tag { + u8 *start; + dma_addr_t addr; }; -struct fw_rsc_trace { - u32 da; - u32 len; - u32 reserved; - u8 name[32]; +struct qup_i2c_bam { + struct qup_i2c_tag tag; + struct dma_chan *dma; + struct scatterlist *sg; + unsigned int sg_cnt; }; -struct rproc_vdev_data { - u32 rsc_offset; - unsigned int id; - u32 index; - struct fw_rsc_vdev *rsc; +struct qup_i2c_dev { + struct device *dev; + void *base; + int irq; + struct clk *clk; + struct clk *pclk; + struct i2c_adapter adap; + int clk_ctl; + int out_fifo_sz; + int in_fifo_sz; + int out_blk_sz; + int in_blk_sz; + int blk_xfer_limit; + unsigned long one_byte_t; + unsigned long xfer_timeout; + struct qup_i2c_block blk; + struct i2c_msg *msg; + int pos; + u32 bus_err; + u32 qup_err; + bool is_last; + bool is_smbus_read; + u32 config_run; + bool is_dma; + bool use_dma; + unsigned int max_xfer_sg_len; + unsigned int tag_buf_pos; + unsigned int blk_mode_threshold; + struct dma_pool *dpool; + struct qup_i2c_tag start_tag; + struct qup_i2c_bam brx; + struct qup_i2c_bam btx; + struct completion xfer; + void (*write_tx_fifo)(struct qup_i2c_dev *); + void (*read_rx_fifo)(struct qup_i2c_dev *); + void (*write_rx_tags)(struct qup_i2c_dev *); }; -typedef int (*armpmu_init_fn)(struct arm_pmu *); - -struct clock_read_data { - u64 epoch_ns; - u64 epoch_cyc; - u64 sched_clock_mask; - u64 (*read_sched_clock)(); - u32 mult; - u32 shift; +struct npcm_wdt { + struct watchdog_device wdd; + void *reg; + struct clk *clk; }; -struct pmu_probe_info { - unsigned int cpuid; - unsigned int mask; - armpmu_init_fn init; +enum opp_table_access { + OPP_TABLE_ACCESS_UNKNOWN = 0, + OPP_TABLE_ACCESS_EXCLUSIVE = 1, + OPP_TABLE_ACCESS_SHARED = 2, }; -struct armv8pmu_probe_info { - struct arm_pmu *pmu; - bool present; +enum dev_pm_opp_event { + OPP_EVENT_ADD = 0, + OPP_EVENT_REMOVE = 1, + OPP_EVENT_ENABLE = 2, + OPP_EVENT_DISABLE = 3, + OPP_EVENT_ADJUST_VOLTAGE = 4, }; -struct hte_chip; - -struct hte_ts_desc; - -struct hte_clk_info; +struct dev_pm_opp_icc_bw; -struct hte_ops { - int (*request)(struct hte_chip *, struct hte_ts_desc *, u32); - int (*release)(struct hte_chip *, struct hte_ts_desc *, u32); - int (*enable)(struct hte_chip *, u32); - int (*disable)(struct hte_chip *, u32); - int (*get_clk_src_info)(struct hte_chip *, struct hte_clk_info *); +struct dev_pm_opp { + struct list_head node; + struct kref kref; + bool available; + bool dynamic; + bool turbo; + bool suspend; + bool removed; + unsigned long *rates; + unsigned int level; + struct dev_pm_opp_supply *supplies; + struct dev_pm_opp_icc_bw *bandwidth; + unsigned long clock_latency_ns; + struct dev_pm_opp **required_opps; + struct opp_table *opp_table; + struct device_node *np; + struct dentry *dentry; + const char *of_name; }; -struct hte_device; - -struct hte_chip { - const char *name; - struct device *dev; - const struct hte_ops *ops; - u32 nlines; - int (*xlate_of)(struct hte_chip *, const struct of_phandle_args *, struct hte_ts_desc *, u32 *); - int (*xlate_plat)(struct hte_chip *, struct hte_ts_desc *, u32 *); - bool (*match_from_linedata)(const struct hte_chip *, const struct hte_ts_desc *); - u8 of_hte_n_cells; - struct hte_device *gdev; - void *data; +struct dev_pm_opp_icc_bw { + u32 avg; + u32 peak; }; -struct hte_line_attr { - u32 line_id; - void *line_data; - unsigned long edge_flags; - const char *name; +struct opp_table { + struct list_head node; + struct list_head lazy; + struct blocking_notifier_head head; + struct list_head dev_list; + struct list_head opp_list; + struct kref kref; + struct mutex lock; + struct device_node *np; + unsigned long clock_latency_ns_max; + unsigned int voltage_tolerance_v1; + unsigned int parsed_static_opps; + enum opp_table_access shared_opp; + unsigned long rate_clk_single; + struct dev_pm_opp *current_opp; + struct dev_pm_opp *suspend_opp; + struct device **genpd_virt_devs; + struct opp_table **required_opp_tables; + unsigned int required_opp_count; + unsigned int *supported_hw; + unsigned int supported_hw_count; + const char *prop_name; + config_clks_t config_clks; + struct clk **clks; + struct clk *clk; + int clk_count; + config_regulators_t config_regulators; + struct regulator **regulators; + int regulator_count; + struct icc_path **paths; + unsigned int path_count; + bool enabled; + bool is_genpd; + int (*set_required_opps)(struct device *, struct opp_table *, struct dev_pm_opp *, bool); + struct dentry *dentry; + char dentry_name[255]; }; -struct hte_ts_desc { - struct hte_line_attr attr; - void *hte_data; +struct opp_device { + struct list_head node; + const struct device *dev; + struct dentry *dentry; }; -struct hte_clk_info { - u64 hz; - clockid_t type; +struct opp_config_data { + struct opp_table *opp_table; + unsigned int flags; }; -enum tegra_hte_type { - HTE_TEGRA_TYPE_GPIO = 1, - HTE_TEGRA_TYPE_LIC = 2, +typedef void (*btf_trace_mmc_request_start)(void *, struct mmc_host *, struct mmc_request *); + +typedef void (*btf_trace_mmc_request_done)(void *, struct mmc_host *, struct mmc_request *); + +enum mmc_busy_cmd { + MMC_BUSY_CMD6 = 0, + MMC_BUSY_ERASE = 1, + MMC_BUSY_HPI = 2, + MMC_BUSY_EXTR_SINGLE = 3, + MMC_BUSY_IO = 4, }; -struct tegra_hte_line_mapped; +enum mmc_err_stat { + MMC_ERR_CMD_TIMEOUT = 0, + MMC_ERR_CMD_CRC = 1, + MMC_ERR_DAT_TIMEOUT = 2, + MMC_ERR_DAT_CRC = 3, + MMC_ERR_AUTO_CMD = 4, + MMC_ERR_ADMA = 5, + MMC_ERR_TUNING = 6, + MMC_ERR_CMDQ_RED = 7, + MMC_ERR_CMDQ_GCE = 8, + MMC_ERR_CMDQ_ICCE = 9, + MMC_ERR_REQ_TIMEOUT = 10, + MMC_ERR_CMDQ_REQ_TIMEOUT = 11, + MMC_ERR_ICE_CFG = 12, + MMC_ERR_CTRL_TIMEOUT = 13, + MMC_ERR_UNEXPECTED_IRQ = 14, + MMC_ERR_MAX = 15, +}; -struct tegra_hte_data { - enum tegra_hte_type type; - u32 slices; - u32 map_sz; - u32 sec_map_sz; - const struct tegra_hte_line_mapped *map; - const struct tegra_hte_line_mapped *sec_map; +struct trace_event_raw_mmc_request_start { + struct trace_entry ent; + u32 cmd_opcode; + u32 cmd_arg; + unsigned int cmd_flags; + unsigned int cmd_retries; + u32 stop_opcode; + u32 stop_arg; + unsigned int stop_flags; + unsigned int stop_retries; + u32 sbc_opcode; + u32 sbc_arg; + unsigned int sbc_flags; + unsigned int sbc_retries; + unsigned int blocks; + unsigned int blk_addr; + unsigned int blksz; + unsigned int data_flags; + int tag; + unsigned int can_retune; + unsigned int doing_retune; + unsigned int retune_now; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct mmc_request *mrq; + u32 __data_loc_name; + char __data[0]; }; -struct tegra_hte_line_mapped { - int slice; - u32 bit_index; +struct trace_event_raw_mmc_request_done { + struct trace_entry ent; + u32 cmd_opcode; + int cmd_err; + u32 cmd_resp[4]; + unsigned int cmd_retries; + u32 stop_opcode; + int stop_err; + u32 stop_resp[4]; + unsigned int stop_retries; + u32 sbc_opcode; + int sbc_err; + u32 sbc_resp[4]; + unsigned int sbc_retries; + unsigned int bytes_xfered; + int data_err; + int tag; + unsigned int can_retune; + unsigned int doing_retune; + unsigned int retune_now; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct mmc_request *mrq; + u32 __data_loc_name; + char __data[0]; }; -struct hte_slices; +struct trace_event_data_offsets_mmc_request_start { + u32 name; +}; -struct tegra_hte_line_data; +struct trace_event_data_offsets_mmc_request_done { + u32 name; +}; -struct tegra_hte_soc { - int hte_irq; - u32 itr_thrshld; - u32 conf_rval; - struct hte_slices *sl; - const struct tegra_hte_data *prov_data; - struct tegra_hte_line_data *line_data; - struct hte_chip *chip; - struct gpio_chip *c; - void *regs; +struct bcm2835_host { + spinlock_t lock; + struct mutex mutex; + void *ioaddr; + u32 phys_addr; + struct platform_device *pdev; + int clock; + unsigned int max_clk; + struct work_struct dma_work; + struct delayed_work timeout_work; + struct sg_mapping_iter sg_miter; + unsigned int blocks; + int irq; + u32 ns_per_fifo_word; + u32 hcfg; + u32 cdiv; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_data *data; + bool data_complete: 1; + bool use_busy: 1; + bool use_sbc: 1; + bool irq_block; + bool irq_busy; + bool irq_data; + struct dma_chan *dma_chan_rxtx; + struct dma_chan *dma_chan; + struct dma_slave_config dma_cfg_rx; + struct dma_slave_config dma_cfg_tx; + struct dma_async_tx_descriptor *dma_desc; + u32 dma_dir; + u32 drain_words; + struct page *drain_page; + u32 drain_offset; + bool use_dma; }; -struct hte_slices { - u32 r_val; - unsigned long flags; - spinlock_t s_lock; +enum ufs_dev_pwr_mode { + UFS_ACTIVE_PWR_MODE = 1, + UFS_SLEEP_PWR_MODE = 2, + UFS_POWERDOWN_PWR_MODE = 3, + UFS_DEEPSLEEP_PWR_MODE = 4, }; -struct tegra_hte_line_data { - unsigned long flags; - void *data; +enum uic_link_state { + UIC_LINK_OFF_STATE = 0, + UIC_LINK_ACTIVE_STATE = 1, + UIC_LINK_HIBERN8_STATE = 2, + UIC_LINK_BROKEN_STATE = 3, }; -struct hte_ts_data { - u64 tsc; - u64 seq; - int raw_level; +enum ufs_pm_level { + UFS_PM_LVL_0 = 0, + UFS_PM_LVL_1 = 1, + UFS_PM_LVL_2 = 2, + UFS_PM_LVL_3 = 3, + UFS_PM_LVL_4 = 4, + UFS_PM_LVL_5 = 5, + UFS_PM_LVL_6 = 6, + UFS_PM_LVL_MAX = 7, }; -struct snd_dmaengine_pcm_config { - int (*prepare_slave_config)(struct snd_pcm_substream *, struct snd_pcm_hw_params *, struct dma_slave_config *); - struct dma_chan * (*compat_request_channel)(struct snd_soc_pcm_runtime *, struct snd_pcm_substream *); - int (*process)(struct snd_pcm_substream *, int, unsigned long, void *, unsigned long); - dma_filter_fn compat_filter_fn; - struct device *dma_dev; - const char *chan_names[2]; - const struct snd_pcm_hardware *pcm_hardware; - unsigned int prealloc_buffer_size; +enum ufs_notify_change_status { + PRE_CHANGE = 0, + POST_CHANGE = 1, }; -struct fib_notifier_net { - struct list_head fib_notifier_ops; - struct atomic_notifier_head fib_chain; +enum uic_cmd_dme { + UIC_CMD_DME_GET = 1, + UIC_CMD_DME_SET = 2, + UIC_CMD_DME_PEER_GET = 3, + UIC_CMD_DME_PEER_SET = 4, + UIC_CMD_DME_POWERON = 16, + UIC_CMD_DME_POWEROFF = 17, + UIC_CMD_DME_ENABLE = 18, + UIC_CMD_DME_RESET = 20, + UIC_CMD_DME_END_PT_RST = 21, + UIC_CMD_DME_LINK_STARTUP = 22, + UIC_CMD_DME_HIBER_ENTER = 23, + UIC_CMD_DME_HIBER_EXIT = 24, + UIC_CMD_DME_TEST_MODE = 26, }; -enum { - SK_DIAG_BPF_STORAGE_REQ_NONE = 0, - SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, - __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, +enum ufs_pm_op { + UFS_RUNTIME_PM = 0, + UFS_SYSTEM_PM = 1, + UFS_SHUTDOWN_PM = 2, }; -enum { - SK_DIAG_BPF_STORAGE_REP_NONE = 0, - SK_DIAG_BPF_STORAGE = 1, - __SK_DIAG_BPF_STORAGE_REP_MAX = 2, +enum devfreq_timer { + DEVFREQ_TIMER_DEFERRABLE = 0, + DEVFREQ_TIMER_DELAYED = 1, + DEVFREQ_TIMER_NUM = 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 ufs_event_type { + UFS_EVT_PA_ERR = 0, + UFS_EVT_DL_ERR = 1, + UFS_EVT_NL_ERR = 2, + UFS_EVT_TL_ERR = 3, + UFS_EVT_DME_ERR = 4, + UFS_EVT_AUTO_HIBERN8_ERR = 5, + UFS_EVT_FATAL_ERR = 6, + UFS_EVT_LINK_STARTUP_FAIL = 7, + UFS_EVT_RESUME_ERR = 8, + UFS_EVT_SUSPEND_ERR = 9, + UFS_EVT_WL_SUSP_ERR = 10, + UFS_EVT_WL_RES_ERR = 11, + UFS_EVT_DEV_RESET = 12, + UFS_EVT_HOST_RESET = 13, + UFS_EVT_ABORT = 14, + UFS_EVT_CNT = 15, }; -typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t); +enum ufs_ref_clk_freq { + REF_CLK_FREQ_19_2_MHZ = 0, + REF_CLK_FREQ_26_MHZ = 1, + REF_CLK_FREQ_38_4_MHZ = 2, + REF_CLK_FREQ_52_MHZ = 3, + REF_CLK_FREQ_INVAL = -1, +}; -typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *); +enum ufshcd_state { + UFSHCD_STATE_RESET = 0, + UFSHCD_STATE_OPERATIONAL = 1, + UFSHCD_STATE_EH_SCHEDULED_NON_FATAL = 2, + UFSHCD_STATE_EH_SCHEDULED_FATAL = 3, + UFSHCD_STATE_ERROR = 4, +}; -typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t); +enum dev_cmd_type { + DEV_CMD_TYPE_NOP = 0, + DEV_CMD_TYPE_QUERY = 1, + DEV_CMD_TYPE_RPMB = 2, +}; -typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *); +enum clk_gating_state { + CLKS_OFF = 0, + CLKS_ON = 1, + REQ_CLKS_OFF = 2, + REQ_CLKS_ON = 3, +}; -struct bpf_sk_storage_diag { - u32 nr_maps; - struct bpf_map *maps[0]; +enum bkops_status { + BKOPS_STATUS_NO_OP = 0, + BKOPS_STATUS_NON_CRITICAL = 1, + BKOPS_STATUS_PERF_IMPACT = 2, + BKOPS_STATUS_CRITICAL = 3, + BKOPS_STATUS_MAX = 3, }; -struct bpf_iter_seq_sk_storage_map_info { - struct bpf_map *map; - unsigned int bucket_id; - unsigned int skip_elems; +enum query_opcode { + UPIU_QUERY_OPCODE_NOP = 0, + UPIU_QUERY_OPCODE_READ_DESC = 1, + UPIU_QUERY_OPCODE_WRITE_DESC = 2, + UPIU_QUERY_OPCODE_READ_ATTR = 3, + UPIU_QUERY_OPCODE_WRITE_ATTR = 4, + UPIU_QUERY_OPCODE_READ_FLAG = 5, + UPIU_QUERY_OPCODE_SET_FLAG = 6, + UPIU_QUERY_OPCODE_CLEAR_FLAG = 7, + UPIU_QUERY_OPCODE_TOGGLE_FLAG = 8, }; -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; - }; +enum upiu_request_transaction { + UPIU_TRANSACTION_NOP_OUT = 0, + UPIU_TRANSACTION_COMMAND = 1, + UPIU_TRANSACTION_DATA_OUT = 2, + UPIU_TRANSACTION_TASK_REQ = 4, + UPIU_TRANSACTION_QUERY_REQ = 22, }; -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 ufs_bsg_msg_code { + UPIU_TRANSACTION_UIC_CMD = 31, + UPIU_TRANSACTION_ARPMB_CMD = 32, }; -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 ufs_rpmb_op_type { + UFS_RPMB_WRITE_KEY = 1, + UFS_RPMB_READ_CNT = 2, + UFS_RPMB_WRITE = 3, + UFS_RPMB_READ = 4, + UFS_RPMB_READ_RESP = 5, + UFS_RPMB_SEC_CONF_WRITE = 6, + UFS_RPMB_SEC_CONF_READ = 7, + UFS_RPMB_PURGE_ENABLE = 8, + UFS_RPMB_PURGE_STATUS_READ = 9, }; -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, +struct ufs_event_hist { + int pos; + u32 val[8]; + u64 tstamp[8]; + unsigned long long cnt; }; -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, +struct ufs_stats { + u32 last_intr_status; + u64 last_intr_ts; + u32 hibern8_exit_cnt; + u64 last_hibern8_exit_tstamp; + struct ufs_event_hist event[15]; }; -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, +struct utp_upiu_query { + __u8 opcode; + __u8 idn; + __u8 index; + __u8 selector; + __be16 reserved_osf; + __be16 length; + __be32 value; + __be32 reserved[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, +struct ufs_query_req { + u8 query_func; + struct utp_upiu_query upiu_req; }; -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, +struct ufs_query_res { + struct utp_upiu_query upiu_res; }; -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, +struct ufs_query { + struct ufs_query_req request; + u8 *descriptor; + struct ufs_query_res response; }; -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, +struct ufs_dev_cmd { + enum dev_cmd_type type; + struct mutex lock; + struct completion *complete; + struct ufs_query query; }; -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, +struct ufs_dev_info { + bool f_power_on_wp_en; + bool is_lu_power_on_wp; + u8 max_lu_supported; + u16 wmanufacturerid; + u8 *model; + u16 wspecversion; + u32 clk_gating_wait_us; + u8 bqueuedepth; + bool wb_enabled; + bool wb_buf_flush_enabled; + u8 wb_dedicated_lu; + u8 wb_buffer_type; + bool b_rpm_dev_flush_capable; + u8 b_presrv_uspc_en; + bool b_advanced_rpmb_en; + bool b_ext_iid_en; }; -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, +struct ufs_vreg; + +struct ufs_vreg_info { + struct ufs_vreg *vcc; + struct ufs_vreg *vccq; + struct ufs_vreg *vccq2; + struct ufs_vreg *vdd_hba; }; -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, +struct ufs_pa_layer_attr { + u32 gear_rx; + u32 gear_tx; + u32 lane_rx; + u32 lane_tx; + u32 pwr_rx; + u32 pwr_tx; + u32 hs_rate; }; -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, +struct ufs_pwr_mode_info { + bool is_valid; + struct ufs_pa_layer_attr info; }; -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 ufs_clk_gating { + struct delayed_work gate_work; + struct work_struct ungate_work; + enum clk_gating_state state; + unsigned long delay_ms; + bool is_suspended; + struct device_attribute delay_attr; + struct device_attribute enable_attr; + bool is_enabled; + bool is_initialized; + int active_reqs; + struct workqueue_struct *clk_gating_workq; }; -enum tcp_fastopen_client_fail { - TFO_STATUS_UNSPEC = 0, - TFO_COOKIE_UNAVAILABLE = 1, - TFO_DATA_NOT_ACKED = 2, - TFO_SYN_RETRANSMITTED = 3, +struct ufs_clk_scaling { + int active_reqs; + unsigned long tot_busy_t; + ktime_t window_start_t; + ktime_t busy_start_t; + struct device_attribute enable_attr; + struct ufs_pa_layer_attr saved_pwr_info; + struct workqueue_struct *workq; + struct work_struct suspend_work; + struct work_struct resume_work; + unsigned long target_freq; + u32 min_gear; + bool is_enabled; + bool is_allowed; + bool is_initialized; + bool is_busy_started; + bool is_suspended; }; -struct rpc_cred_cache { - struct hlist_head *hashtable; - unsigned int hashbits; - spinlock_t lock; +struct ufs_hba_monitor { + unsigned long chunk_size; + unsigned long nr_sec_rw[2]; + ktime_t total_busy[2]; + unsigned long nr_req[2]; + ktime_t lat_sum[2]; + ktime_t lat_max[2]; + ktime_t lat_min[2]; + u32 nr_queued[2]; + ktime_t busy_start_ts[2]; + ktime_t enabled_ts; + bool enabled; }; -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 ufshcd_res_info { + const char *name; + struct resource *resource; + void *base; }; -struct cpio_data { - void *data; - size_t size; - char name[18]; +struct ufshcd_mcq_opr_info_t { + unsigned long offset; + unsigned long stride; + void *base; }; -typedef void (*btf_trace_ma_op)(void *, const char *, struct ma_state *); +struct utp_transfer_cmd_desc; -typedef void (*btf_trace_ma_read)(void *, const char *, struct ma_state *); +struct utp_transfer_req_desc; -typedef void (*btf_trace_ma_write)(void *, const char *, struct ma_state *, unsigned long, void *); +struct utp_task_req_desc; -enum maple_type { - maple_dense = 0, - maple_leaf_64 = 1, - maple_range_64 = 2, - maple_arange_64 = 3, -}; +struct ufshcd_lrb; -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 ufs_hba_variant_ops; -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 ufs_hba_variant_params; -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 uic_command; -struct maple_pnode; +struct devfreq; -struct maple_metadata { - unsigned char end; - unsigned char gap; +struct ufs_hw_queue; + +struct ufs_hba { + void *mmio_base; + struct utp_transfer_cmd_desc *ucdl_base_addr; + struct utp_transfer_req_desc *utrdl_base_addr; + struct utp_task_req_desc *utmrdl_base_addr; + dma_addr_t ucdl_dma_addr; + dma_addr_t utrdl_dma_addr; + dma_addr_t utmrdl_dma_addr; + struct Scsi_Host *host; + struct device *dev; + struct scsi_device *ufs_device_wlun; + enum ufs_dev_pwr_mode curr_dev_pwr_mode; + enum uic_link_state uic_link_state; + enum ufs_pm_level rpm_lvl; + enum ufs_pm_level spm_lvl; + int pm_op_in_progress; + u32 ahit; + struct ufshcd_lrb *lrb; + unsigned long outstanding_tasks; + spinlock_t outstanding_lock; + unsigned long outstanding_reqs; + u32 capabilities; + int nutrs; + u32 mcq_capabilities; + int nutmrs; + u32 reserved_slot; + u32 ufs_version; + const struct ufs_hba_variant_ops *vops; + struct ufs_hba_variant_params *vps; + void *priv; + unsigned int irq; + bool is_irq_enabled; + enum ufs_ref_clk_freq dev_ref_clk_freq; + unsigned int quirks; + unsigned int dev_quirks; + struct blk_mq_tag_set tmf_tag_set; + struct request_queue *tmf_queue; + struct request **tmf_rqs; + struct uic_command *active_uic_cmd; + struct mutex uic_cmd_mutex; + struct completion *uic_async_done; + enum ufshcd_state ufshcd_state; + u32 eh_flags; + u32 intr_mask; + u16 ee_ctrl_mask; + u16 ee_drv_mask; + u16 ee_usr_mask; + struct mutex ee_ctrl_mutex; + bool is_powered; + bool shutting_down; + struct semaphore host_sem; + struct workqueue_struct *eh_wq; + struct work_struct eh_work; + struct work_struct eeh_work; + u32 errors; + u32 uic_error; + u32 saved_err; + u32 saved_uic_err; + struct ufs_stats ufs_stats; + bool force_reset; + bool force_pmc; + bool silence_err_logs; + struct ufs_dev_cmd dev_cmd; + ktime_t last_dme_cmd_tstamp; + int nop_out_timeout; + struct ufs_dev_info dev_info; + bool auto_bkops_enabled; + struct ufs_vreg_info vreg_info; + struct list_head clk_list_head; + bool use_pm_opp; + int req_abort_count; + u32 lanes_per_direction; + struct ufs_pa_layer_attr pwr_info; + struct ufs_pwr_mode_info max_pwr_info; + struct ufs_clk_gating clk_gating; + u32 caps; + struct devfreq *devfreq; + struct ufs_clk_scaling clk_scaling; + bool system_suspending; + bool is_sys_suspended; + enum bkops_status urgent_bkops_lvl; + bool is_urgent_bkops_lvl_checked; + struct mutex wb_mutex; + struct rw_semaphore clk_scaling_lock; + atomic_t scsi_block_reqs_cnt; + struct device bsg_dev; + struct request_queue *bsg_queue; + struct delayed_work rpm_dev_flush_recheck_work; + struct ufs_hba_monitor monitor; + struct dentry *debugfs_root; + struct delayed_work debugfs_ee_work; + u32 debugfs_ee_rate_limit_ms; + u32 luns_avail; + unsigned int nr_hw_queues; + unsigned int nr_queues[3]; + bool complete_put; + bool ext_iid_sup; + bool scsi_host_added; + bool mcq_sup; + bool mcq_enabled; + struct ufshcd_res_info res[7]; + void *mcq_base; + struct ufs_hw_queue *uhq; + struct ufs_hw_queue *dev_cmd_queue; + struct ufshcd_mcq_opr_info_t mcq_opr[4]; }; -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 utp_transfer_cmd_desc { + u8 command_upiu[512]; + u8 response_upiu[512]; + u8 prd_table[0]; }; -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 request_desc_header { + u8 cci; + u8 ehs_length; + u8 reserved2: 7; + u8 enable_crypto: 1; + u8 interrupt: 1; + u8 data_direction: 2; + u8 reserved1: 1; + u8 command_type: 4; + __le32 dunl; + u8 ocs; + u8 cds; + __le16 ldbc; + __le32 dunu; }; -struct maple_node { +struct utp_transfer_req_desc { + struct request_desc_header header; + __le64 command_desc_base_addr; + __le16 response_upiu_length; + __le16 response_upiu_offset; + __le16 prd_table_length; + __le16 prd_table_offset; +}; + +struct utp_upiu_header { union { struct { - struct maple_pnode *parent; - void __attribute__((btf_type_tag("rcu"))) *slot[31]; + __be32 dword_0; + __be32 dword_1; + __be32 dword_2; }; 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; + __u8 transaction_code; + __u8 flags; + __u8 lun; + __u8 task_tag; + __u8 command_set_type: 4; + __u8 iid: 4; + union { + __u8 tm_function; + __u8 query_function; + }; + __u8 response; + __u8 status; + __u8 ehs_length; + __u8 device_information; + __be16 data_segment_length; }; - 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 utp_task_req_desc { + struct request_desc_header header; + struct { + struct utp_upiu_header req_header; + __be32 input_param1; + __be32 input_param2; + __be32 input_param3; + __be32 __reserved1[2]; + } upiu_req; + struct { + struct utp_upiu_header rsp_header; + __be32 output_param1; + __be32 output_param2; + __be32 __reserved2[3]; + } upiu_rsp; }; -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 utp_upiu_req; -struct maple_big_node { - struct maple_pnode *parent; - unsigned long pivot[33]; +struct utp_upiu_rsp; + +struct ufshcd_sg_entry; + +struct ufshcd_lrb { + struct utp_transfer_req_desc *utr_descriptor_ptr; + struct utp_upiu_req *ucd_req_ptr; + struct utp_upiu_rsp *ucd_rsp_ptr; + struct ufshcd_sg_entry *ucd_prdt_ptr; + dma_addr_t utrd_dma_addr; + dma_addr_t ucd_req_dma_addr; + dma_addr_t ucd_rsp_dma_addr; + dma_addr_t ucd_prdt_dma_addr; + struct scsi_cmnd *cmd; + int scsi_status; + int command_type; + int task_tag; + u8 lun; + bool intr_cmd; + ktime_t issue_time_stamp; + u64 issue_time_stamp_local_clock; + ktime_t compl_time_stamp; + u64 compl_time_stamp_local_clock; + bool req_abort_skip; +}; + +struct utp_upiu_cmd { + __be32 exp_data_transfer_len; + __u8 cdb[16]; +}; + +struct utp_upiu_req { + struct utp_upiu_header header; union { - struct maple_enode *slot[34]; - struct { - unsigned long padding[21]; - unsigned long gap[21]; - }; + struct utp_upiu_cmd sc; + struct utp_upiu_query qr; + struct utp_upiu_query uc; }; - unsigned char b_end; - enum maple_type type; }; -struct ma_topiary; +struct utp_cmd_rsp { + __be32 residual_transfer_count; + __be32 reserved[4]; + __be16 sense_data_len; + u8 sense_data[18]; +}; -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 utp_upiu_rsp { + struct utp_upiu_header header; + union { + struct utp_cmd_rsp sr; + struct utp_upiu_query qr; + }; }; -struct ma_topiary { - struct maple_enode *head; - struct maple_enode *tail; - struct maple_tree *mtree; +struct ufshcd_sg_entry { + __le64 addr; + __le32 reserved; + __le32 size; }; -struct trace_event_data_offsets_ma_op {}; +struct devfreq_dev_profile; -struct trace_event_data_offsets_ma_read {}; +struct devfreq_simple_ondemand_data; -struct trace_event_data_offsets_ma_write {}; +union ufs_crypto_cfg_entry; -enum state { - Start = 0, - Collect = 1, - GotHeader = 2, - SkipIt = 3, - GotName = 4, - CopyFile = 5, - GotSymlink = 6, - Reset = 7, +struct ufs_hba_variant_ops { + const char *name; + int (*init)(struct ufs_hba *); + void (*exit)(struct ufs_hba *); + u32 (*get_ufs_hci_version)(struct ufs_hba *); + int (*clk_scale_notify)(struct ufs_hba *, bool, enum ufs_notify_change_status); + int (*setup_clocks)(struct ufs_hba *, bool, enum ufs_notify_change_status); + int (*hce_enable_notify)(struct ufs_hba *, enum ufs_notify_change_status); + int (*link_startup_notify)(struct ufs_hba *, enum ufs_notify_change_status); + int (*pwr_change_notify)(struct ufs_hba *, enum ufs_notify_change_status, struct ufs_pa_layer_attr *, struct ufs_pa_layer_attr *); + void (*setup_xfer_req)(struct ufs_hba *, int, bool); + void (*setup_task_mgmt)(struct ufs_hba *, int, u8); + void (*hibern8_notify)(struct ufs_hba *, enum uic_cmd_dme, enum ufs_notify_change_status); + int (*apply_dev_quirks)(struct ufs_hba *); + void (*fixup_dev_quirks)(struct ufs_hba *); + int (*suspend)(struct ufs_hba *, enum ufs_pm_op, enum ufs_notify_change_status); + int (*resume)(struct ufs_hba *, enum ufs_pm_op); + void (*dbg_register_dump)(struct ufs_hba *); + int (*phy_initialization)(struct ufs_hba *); + int (*device_reset)(struct ufs_hba *); + void (*config_scaling_param)(struct ufs_hba *, struct devfreq_dev_profile *, struct devfreq_simple_ondemand_data *); + int (*program_key)(struct ufs_hba *, const union ufs_crypto_cfg_entry *, int); + void (*event_notify)(struct ufs_hba *, enum ufs_event_type, void *); + void (*reinit_notify)(struct ufs_hba *); + int (*mcq_config_resource)(struct ufs_hba *); + int (*get_hba_mac)(struct ufs_hba *); + int (*op_runtime_config)(struct ufs_hba *); + int (*get_outstanding_cqs)(struct ufs_hba *, unsigned long *); + int (*config_esi)(struct ufs_hba *); + void (*config_scsi_dev)(struct scsi_device *); }; -struct hash { - int ino; - int minor; - int major; - umode_t mode; - struct hash *next; - char name[4098]; -}; +struct devfreq_dev_status; -enum umh_disable_depth { - UMH_ENABLED = 0, - UMH_FREEZING = 1, - UMH_DISABLED = 2, +struct devfreq_dev_profile { + unsigned long initial_freq; + unsigned int polling_ms; + enum devfreq_timer timer; + int (*target)(struct device *, unsigned long *, u32); + int (*get_dev_status)(struct device *, struct devfreq_dev_status *); + int (*get_cur_freq)(struct device *, unsigned long *); + void (*exit)(struct device *); + unsigned long *freq_table; + unsigned int max_state; + bool is_cooling_device; }; -struct dir_entry { - struct list_head list; - time64_t mtime; - char name[0]; +struct devfreq_dev_status { + unsigned long total_time; + unsigned long busy_time; + unsigned long current_frequency; + void *private_data; }; -typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *)); +struct devfreq_simple_ondemand_data { + unsigned int upthreshold; + unsigned int downdifferential; +}; -enum kvm_smccc_filter_action { - KVM_SMCCC_FILTER_HANDLE = 0, - KVM_SMCCC_FILTER_DENY = 1, - KVM_SMCCC_FILTER_FWD_TO_USER = 2, - NR_SMCCC_FILTER_ACTIONS = 3, +union ufs_crypto_cfg_entry { + __le32 reg_val[32]; + struct { + u8 crypto_key[64]; + u8 data_unit_size; + u8 crypto_cap_idx; + u8 reserved_1; + u8 config_enable; + u8 reserved_multi_host; + u8 reserved_2; + u8 vsb[2]; + u8 reserved_3[56]; + }; }; -enum { - KVM_REG_ARM_STD_HYP_BIT_PV_TIME = 0, - KVM_REG_ARM_STD_HYP_BMAP_BIT_COUNT = 1, +struct ufs_hba_variant_params { + struct devfreq_dev_profile devfreq_profile; + struct devfreq_simple_ondemand_data ondemand_data; + u16 hba_enable_delay_us; + u32 wb_flush_threshold; }; -enum { - KVM_REG_ARM_STD_BIT_TRNG_V1_0 = 0, - KVM_REG_ARM_STD_BMAP_BIT_COUNT = 1, +struct uic_command { + u32 command; + u32 argument1; + u32 argument2; + u32 argument3; + int cmd_active; + struct completion done; }; -enum { - KVM_REG_ARM_VENDOR_HYP_BIT_FUNC_FEAT = 0, - KVM_REG_ARM_VENDOR_HYP_BIT_PTP = 1, - KVM_REG_ARM_VENDOR_HYP_BMAP_BIT_COUNT = 2, +struct ufs_vreg { + struct regulator *reg; + const char *name; + bool always_on; + bool enabled; + int max_uA; }; -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 devfreq_stats { + unsigned int total_trans; + unsigned int *trans_table; + u64 *time_in_state; + u64 last_update; }; -struct kvm_smccc_filter { - __u32 base; - __u32 nr_functions; - __u8 action; - __u8 pad[15]; +struct srcu_notifier_head { + struct mutex mutex; + struct srcu_usage srcuu; + struct srcu_struct srcu; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -enum kvm_mode { - KVM_MODE_DEFAULT = 0, - KVM_MODE_PROTECTED = 1, - KVM_MODE_NV = 2, - KVM_MODE_NONE = 3, +struct devfreq_governor; + +struct devfreq { + struct list_head node; + struct mutex lock; + struct device dev; + struct devfreq_dev_profile *profile; + const struct devfreq_governor *governor; + struct opp_table *opp_table; + struct notifier_block nb; + struct delayed_work work; + unsigned long *freq_table; + unsigned int max_state; + unsigned long previous_freq; + struct devfreq_dev_status last_status; + void *data; + void *governor_data; + struct dev_pm_qos_request user_min_freq_req; + struct dev_pm_qos_request user_max_freq_req; + unsigned long scaling_min_freq; + unsigned long scaling_max_freq; + bool stop_polling; + unsigned long suspend_freq; + unsigned long resume_freq; + atomic_t suspend_count; + struct devfreq_stats stats; + struct srcu_notifier_head transition_notifier_list; + struct thermal_cooling_device *cdev; + struct notifier_block nb_min; + struct notifier_block nb_max; }; -union hyp_spinlock { - u32 __val; - struct { - u16 owner; - u16 next; - }; +struct devfreq_governor { + struct list_head node; + const char name[16]; + const u64 attrs; + const u64 flags; + int (*get_target_freq)(struct devfreq *, unsigned long *); + int (*event_handler)(struct devfreq *, unsigned int, void *); }; -typedef union hyp_spinlock hyp_spinlock_t; +struct cq_entry; -struct hyp_pool { - hyp_spinlock_t lock; - struct list_head free_area[11]; - phys_addr_t range_start; - phys_addr_t range_end; - unsigned short max_order; +struct ufs_hw_queue { + void *mcq_sq_head; + void *mcq_sq_tail; + void *mcq_cq_head; + void *mcq_cq_tail; + struct utp_transfer_req_desc *sqe_base_addr; + dma_addr_t sqe_dma_addr; + struct cq_entry *cqe_base_addr; + dma_addr_t cqe_dma_addr; + u32 max_entries; + u32 id; + u32 sq_tail_slot; + spinlock_t sq_lock; + u32 cq_tail_slot; + u32 cq_head_slot; + spinlock_t cq_lock; + struct mutex sq_mutex; }; -struct pkvm_hyp_vm { - struct kvm kvm; - struct kvm *host_kvm; - struct kvm_pgtable pgt; - struct kvm_pgtable_mm_ops mm_ops; - struct hyp_pool pool; - hyp_spinlock_t lock; - unsigned int nr_vcpus; - struct pkvm_hyp_vcpu *vcpus[0]; +struct cq_entry { + __le64 command_desc_base_addr; + __le16 response_upiu_length; + __le16 response_upiu_offset; + __le16 prd_table_length; + __le16 prd_table_offset; + __le32 status; + __le32 reserved[3]; }; -struct hyp_page { - unsigned short refcount; - unsigned short order; +struct ufs_bsg_request { + __u32 msgcode; + struct utp_upiu_req upiu_req; }; -struct platform_hibernation_ops { - int (*begin)(pm_message_t); - void (*end)(); - int (*pre_snapshot)(); - void (*finish)(); - int (*prepare)(); - int (*enter)(); - void (*leave)(); - int (*pre_restore)(); - void (*restore_cleanup)(); - void (*recover)(); -}; +struct ufs_arpmb_meta { + __be16 req_resp_type; + __u8 nonce[16]; + __be32 write_counter; + __be16 addr_lun; + __be16 block_count; + __be16 result; +} __attribute__((packed)); -enum { - HIBERNATION_INVALID = 0, - HIBERNATION_PLATFORM = 1, - HIBERNATION_SHUTDOWN = 2, - HIBERNATION_REBOOT = 3, - HIBERNATION_SUSPEND = 4, - HIBERNATION_TEST_RESUME = 5, - __HIBERNATION_AFTER_LAST = 6, +struct ufs_ehs { + __u8 length; + __u8 ehs_type; + __be16 ehssub_type; + struct ufs_arpmb_meta meta; + __u8 mac_key[32]; }; -enum { - TEST_NONE = 0, - TEST_CORE = 1, - TEST_CPUS = 2, - TEST_PLATFORM = 3, - TEST_DEVICES = 4, - TEST_FREEZER = 5, - __TEST_AFTER_LAST = 6, +struct ufs_rpmb_request { + struct ufs_bsg_request bsg_request; + struct ufs_ehs ehs_req; }; -struct module_use { - struct list_head source_list; - struct list_head target_list; - struct module *source; - struct module *target; +struct ufs_bsg_reply { + int result; + __u32 reply_payload_rcv_len; + struct utp_upiu_req upiu_rsp; }; -struct module_sect_attr { - struct bin_attribute battr; - unsigned long address; +struct ufs_rpmb_reply { + struct ufs_bsg_reply bsg_reply; + struct ufs_ehs ehs_rsp; }; -struct module_sect_attrs { - struct attribute_group grp; - unsigned int nsections; - struct module_sect_attr attrs[0]; +enum rpi_firmware_property_status { + RPI_FIRMWARE_STATUS_REQUEST = 0, + RPI_FIRMWARE_STATUS_SUCCESS = 2147483648, + RPI_FIRMWARE_STATUS_ERROR = 2147483649, }; -struct module_notes_attrs { - struct kobject *dir; - unsigned int notes; - struct bin_attribute attrs[0]; +enum rpi_firmware_property_tag { + RPI_FIRMWARE_PROPERTY_END = 0, + RPI_FIRMWARE_GET_FIRMWARE_REVISION = 1, + RPI_FIRMWARE_SET_CURSOR_INFO = 32784, + RPI_FIRMWARE_SET_CURSOR_STATE = 32785, + RPI_FIRMWARE_GET_BOARD_MODEL = 65537, + RPI_FIRMWARE_GET_BOARD_REVISION = 65538, + RPI_FIRMWARE_GET_BOARD_MAC_ADDRESS = 65539, + RPI_FIRMWARE_GET_BOARD_SERIAL = 65540, + RPI_FIRMWARE_GET_ARM_MEMORY = 65541, + RPI_FIRMWARE_GET_VC_MEMORY = 65542, + RPI_FIRMWARE_GET_CLOCKS = 65543, + RPI_FIRMWARE_GET_POWER_STATE = 131073, + RPI_FIRMWARE_GET_TIMING = 131074, + RPI_FIRMWARE_SET_POWER_STATE = 163841, + RPI_FIRMWARE_GET_CLOCK_STATE = 196609, + RPI_FIRMWARE_GET_CLOCK_RATE = 196610, + RPI_FIRMWARE_GET_VOLTAGE = 196611, + RPI_FIRMWARE_GET_MAX_CLOCK_RATE = 196612, + RPI_FIRMWARE_GET_MAX_VOLTAGE = 196613, + RPI_FIRMWARE_GET_TEMPERATURE = 196614, + RPI_FIRMWARE_GET_MIN_CLOCK_RATE = 196615, + RPI_FIRMWARE_GET_MIN_VOLTAGE = 196616, + RPI_FIRMWARE_GET_TURBO = 196617, + RPI_FIRMWARE_GET_MAX_TEMPERATURE = 196618, + RPI_FIRMWARE_GET_STC = 196619, + RPI_FIRMWARE_ALLOCATE_MEMORY = 196620, + RPI_FIRMWARE_LOCK_MEMORY = 196621, + RPI_FIRMWARE_UNLOCK_MEMORY = 196622, + RPI_FIRMWARE_RELEASE_MEMORY = 196623, + RPI_FIRMWARE_EXECUTE_CODE = 196624, + RPI_FIRMWARE_EXECUTE_QPU = 196625, + RPI_FIRMWARE_SET_ENABLE_QPU = 196626, + RPI_FIRMWARE_GET_DISPMANX_RESOURCE_MEM_HANDLE = 196628, + RPI_FIRMWARE_GET_EDID_BLOCK = 196640, + RPI_FIRMWARE_GET_CUSTOMER_OTP = 196641, + RPI_FIRMWARE_GET_DOMAIN_STATE = 196656, + RPI_FIRMWARE_GET_THROTTLED = 196678, + RPI_FIRMWARE_GET_CLOCK_MEASURED = 196679, + RPI_FIRMWARE_NOTIFY_REBOOT = 196680, + RPI_FIRMWARE_SET_CLOCK_STATE = 229377, + RPI_FIRMWARE_SET_CLOCK_RATE = 229378, + RPI_FIRMWARE_SET_VOLTAGE = 229379, + RPI_FIRMWARE_SET_TURBO = 229385, + RPI_FIRMWARE_SET_CUSTOMER_OTP = 229409, + RPI_FIRMWARE_SET_DOMAIN_STATE = 229424, + RPI_FIRMWARE_GET_GPIO_STATE = 196673, + RPI_FIRMWARE_SET_GPIO_STATE = 229441, + RPI_FIRMWARE_SET_SDHOST_CLOCK = 229442, + RPI_FIRMWARE_GET_GPIO_CONFIG = 196675, + RPI_FIRMWARE_SET_GPIO_CONFIG = 229443, + RPI_FIRMWARE_GET_PERIPH_REG = 196677, + RPI_FIRMWARE_SET_PERIPH_REG = 229445, + RPI_FIRMWARE_GET_POE_HAT_VAL = 196681, + RPI_FIRMWARE_SET_POE_HAT_VAL = 196688, + RPI_FIRMWARE_NOTIFY_XHCI_RESET = 196696, + RPI_FIRMWARE_NOTIFY_DISPLAY_DONE = 196710, + RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 262145, + RPI_FIRMWARE_FRAMEBUFFER_BLANK = 262146, + RPI_FIRMWARE_FRAMEBUFFER_GET_PHYSICAL_WIDTH_HEIGHT = 262147, + RPI_FIRMWARE_FRAMEBUFFER_GET_VIRTUAL_WIDTH_HEIGHT = 262148, + RPI_FIRMWARE_FRAMEBUFFER_GET_DEPTH = 262149, + RPI_FIRMWARE_FRAMEBUFFER_GET_PIXEL_ORDER = 262150, + RPI_FIRMWARE_FRAMEBUFFER_GET_ALPHA_MODE = 262151, + RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH = 262152, + RPI_FIRMWARE_FRAMEBUFFER_GET_VIRTUAL_OFFSET = 262153, + RPI_FIRMWARE_FRAMEBUFFER_GET_OVERSCAN = 262154, + RPI_FIRMWARE_FRAMEBUFFER_GET_PALETTE = 262155, + RPI_FIRMWARE_FRAMEBUFFER_GET_TOUCHBUF = 262159, + RPI_FIRMWARE_FRAMEBUFFER_GET_GPIOVIRTBUF = 262160, + RPI_FIRMWARE_FRAMEBUFFER_RELEASE = 294913, + RPI_FIRMWARE_FRAMEBUFFER_TEST_PHYSICAL_WIDTH_HEIGHT = 278531, + RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_WIDTH_HEIGHT = 278532, + RPI_FIRMWARE_FRAMEBUFFER_TEST_DEPTH = 278533, + RPI_FIRMWARE_FRAMEBUFFER_TEST_PIXEL_ORDER = 278534, + RPI_FIRMWARE_FRAMEBUFFER_TEST_ALPHA_MODE = 278535, + RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_OFFSET = 278537, + RPI_FIRMWARE_FRAMEBUFFER_TEST_OVERSCAN = 278538, + RPI_FIRMWARE_FRAMEBUFFER_TEST_PALETTE = 278539, + RPI_FIRMWARE_FRAMEBUFFER_TEST_VSYNC = 278542, + RPI_FIRMWARE_FRAMEBUFFER_SET_PHYSICAL_WIDTH_HEIGHT = 294915, + RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_WIDTH_HEIGHT = 294916, + RPI_FIRMWARE_FRAMEBUFFER_SET_DEPTH = 294917, + RPI_FIRMWARE_FRAMEBUFFER_SET_PIXEL_ORDER = 294918, + RPI_FIRMWARE_FRAMEBUFFER_SET_ALPHA_MODE = 294919, + RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_OFFSET = 294921, + RPI_FIRMWARE_FRAMEBUFFER_SET_OVERSCAN = 294922, + RPI_FIRMWARE_FRAMEBUFFER_SET_PALETTE = 294923, + RPI_FIRMWARE_FRAMEBUFFER_SET_TOUCHBUF = 294943, + RPI_FIRMWARE_FRAMEBUFFER_SET_GPIOVIRTBUF = 294944, + RPI_FIRMWARE_FRAMEBUFFER_SET_VSYNC = 294926, + RPI_FIRMWARE_FRAMEBUFFER_SET_BACKLIGHT = 294927, + RPI_FIRMWARE_VCHIQ_INIT = 294928, + RPI_FIRMWARE_GET_COMMAND_LINE = 327681, + RPI_FIRMWARE_GET_DMA_CHANNELS = 393217, }; -struct load_info { - const char *name; - struct module *mod; - Elf64_Ehdr *hdr; - unsigned long len; - Elf64_Shdr *sechdrs; - char *secstrings; - char *strtab; - unsigned long symoffs; - unsigned long stroffs; - unsigned long init_typeoffs; - unsigned long core_typeoffs; - bool sig_ok; - unsigned long mod_kallsyms_init_off; - struct { - unsigned int sym; - unsigned int str; - unsigned int mod; - unsigned int vers; - unsigned int info; - unsigned int pcpu; - } index; +struct rpi_firmware { + struct mbox_client cl; + struct mbox_chan *chan; + struct completion c; + u32 enabled; + struct kref consumers; }; -struct vdso_timestamp { - u64 sec; - u64 nsec; +struct rpi_firmware_property_tag_header { + u32 tag; + u32 buf_size; + u32 req_resp_size; }; -struct timens_offset { - s64 sec; - u64 nsec; +struct rpi_firmware_clk_rate_request { + __le32 id; + __le32 rate; }; -struct arch_vdso_data {}; +typedef struct { + u32 version; + u32 num_entries; + u32 desc_size; + u32 flags; + efi_memory_desc_t entry[0]; +} efi_memory_attributes_table_t; -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; -}; +typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool); -struct proc_timens_offset { - int clockid; - struct timespec64 val; +struct lg_drv_data { + unsigned long quirks; + void *device_props; }; -struct trace_export { - struct trace_export __attribute__((btf_type_tag("rcu"))) *next; - void (*write)(struct trace_export *, const void *, unsigned int); - int flags; +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 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 mbox_controller; -struct ftrace_stack { - unsigned long calls[1024]; +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 ftrace_stacks { - struct ftrace_stack stacks[4]; +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 trace_buffer_struct { - int nesting; - char buffer[4096]; +struct zynqmp_ipi_mchan { + int is_opened; + void *req_buf; + void *resp_buf; + void *rx_buf; + size_t req_buf_size; + size_t resp_buf_size; + unsigned int chan_type; }; -enum event_trigger_type { - ETT_NONE = 0, - ETT_TRACE_ONOFF = 1, - ETT_SNAPSHOT = 2, - ETT_STACKTRACE = 4, - ETT_EVENT_ENABLE = 8, - ETT_EVENT_HIST = 16, - ETT_HIST_ENABLE = 32, - ETT_EVENT_EPROBE = 64, -}; +struct zynqmp_ipi_pdata; -enum trace_iter_flags { - TRACE_FILE_LAT_FMT = 1, - TRACE_FILE_ANNOTATE = 2, - TRACE_FILE_TIME_IN_NS = 4, +struct zynqmp_ipi_mbox { + struct zynqmp_ipi_pdata *pdata; + struct device dev; + u32 remote_id; + struct mbox_controller mbox; + struct zynqmp_ipi_mchan mchans[2]; }; -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, +struct zynqmp_ipi_pdata { + struct device *dev; + int irq; + unsigned int method; + u32 local_id; + int num_mboxes; + struct zynqmp_ipi_mbox ipi_mboxes[0]; }; -enum ring_buffer_flags { - RB_FL_OVERWRITE = 1, +struct zynqmp_ipi_message { + size_t len; + u8 data[0]; }; -enum die_val { - DIE_UNUSED = 0, - DIE_OOPS = 1, +struct userspace_data { + unsigned long user_frequency; + bool valid; }; -struct err_info { - const char **errs; - u8 type; - u16 pos; - u64 ts; +struct brcmstb_memc_data { + u32 srpd_offset; }; -struct tracing_log_err { - struct list_head list; - struct err_info info; - char loc[128]; - char *cmd; +struct brcmstb_memc { + struct device *dev; + void *ddr_ctrl; + unsigned int timeout_cycles; + u32 frequency; + u32 srpd_offset; }; -struct buffer_ref { - struct trace_buffer *buffer; - void *page; - int cpu; - refcount_t refcount; +enum perf_event_task_context { + perf_invalid_context = -1, + perf_hw_context = 0, + perf_sw_context = 1, + perf_nr_task_contexts = 2, }; -struct trace_parser { - bool cont; - char *buffer; - unsigned int idx; - unsigned int size; +struct dev_ext_attribute { + struct device_attribute attr; + void *var; }; -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; +struct sunxi_sid_cfg { + u32 value_offset; + u32 size; + bool need_register_readout; }; -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 sunxi_sid { + void *base; + u32 value_offset; }; -struct partial_page { - unsigned int offset; - unsigned int len; - unsigned long private; +struct rtnl_link { + rtnl_doit_func doit; + rtnl_dumpit_func dumpit; + struct module *owner; + unsigned int flags; + struct callback_head rcu; }; -struct print_entry { - struct trace_entry ent; - unsigned long ip; - char buf[0]; +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 bputs_entry { - struct trace_entry ent; - unsigned long ip; - const char *str; +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, }; -typedef bool (*cond_update_fn_t)(struct trace_array *, void *); +enum { + IFLA_UNSPEC = 0, + IFLA_ADDRESS = 1, + IFLA_BROADCAST = 2, + IFLA_IFNAME = 3, + IFLA_MTU = 4, + IFLA_LINK = 5, + IFLA_QDISC = 6, + IFLA_STATS = 7, + IFLA_COST = 8, + IFLA_PRIORITY = 9, + IFLA_MASTER = 10, + IFLA_WIRELESS = 11, + IFLA_PROTINFO = 12, + IFLA_TXQLEN = 13, + IFLA_MAP = 14, + IFLA_WEIGHT = 15, + IFLA_OPERSTATE = 16, + IFLA_LINKMODE = 17, + IFLA_LINKINFO = 18, + IFLA_NET_NS_PID = 19, + IFLA_IFALIAS = 20, + IFLA_NUM_VF = 21, + IFLA_VFINFO_LIST = 22, + IFLA_STATS64 = 23, + IFLA_VF_PORTS = 24, + IFLA_PORT_SELF = 25, + IFLA_AF_SPEC = 26, + IFLA_GROUP = 27, + IFLA_NET_NS_FD = 28, + IFLA_EXT_MASK = 29, + IFLA_PROMISCUITY = 30, + IFLA_NUM_TX_QUEUES = 31, + IFLA_NUM_RX_QUEUES = 32, + IFLA_CARRIER = 33, + IFLA_PHYS_PORT_ID = 34, + IFLA_CARRIER_CHANGES = 35, + IFLA_PHYS_SWITCH_ID = 36, + IFLA_LINK_NETNSID = 37, + IFLA_PHYS_PORT_NAME = 38, + IFLA_PROTO_DOWN = 39, + IFLA_GSO_MAX_SEGS = 40, + IFLA_GSO_MAX_SIZE = 41, + IFLA_PAD = 42, + IFLA_XDP = 43, + IFLA_EVENT = 44, + IFLA_NEW_NETNSID = 45, + IFLA_IF_NETNSID = 46, + IFLA_TARGET_NETNSID = 46, + IFLA_CARRIER_UP_COUNT = 47, + IFLA_CARRIER_DOWN_COUNT = 48, + IFLA_NEW_IFINDEX = 49, + IFLA_MIN_MTU = 50, + IFLA_MAX_MTU = 51, + IFLA_PROP_LIST = 52, + IFLA_ALT_IFNAME = 53, + IFLA_PERM_ADDRESS = 54, + IFLA_PROTO_DOWN_REASON = 55, + IFLA_PARENT_DEV_NAME = 56, + IFLA_PARENT_DEV_BUS_NAME = 57, + IFLA_GRO_MAX_SIZE = 58, + IFLA_TSO_MAX_SIZE = 59, + IFLA_TSO_MAX_SEGS = 60, + IFLA_ALLMULTI = 61, + IFLA_DEVLINK_PORT = 62, + IFLA_GSO_IPV4_MAX_SIZE = 63, + IFLA_GRO_IPV4_MAX_SIZE = 64, + IFLA_DPLL_PIN = 65, + __IFLA_MAX = 66, +}; -struct ftrace_entry { - struct trace_entry ent; - unsigned long ip; - unsigned long parent_ip; +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, }; -struct stack_entry { - struct trace_entry ent; - int size; - unsigned long caller[8]; +enum { + IF_OPER_UNKNOWN = 0, + IF_OPER_NOTPRESENT = 1, + IF_OPER_DOWN = 2, + IF_OPER_LOWERLAYERDOWN = 3, + IF_OPER_TESTING = 4, + IF_OPER_DORMANT = 5, + IF_OPER_UP = 6, }; -struct bprint_entry { - struct trace_entry ent; - unsigned long ip; - const char *fmt; - u32 buf[0]; +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, }; -struct trace_min_max_param { - struct mutex *lock; - u64 *val; - u64 *min; - u64 *max; +enum { + IFLA_BRPORT_UNSPEC = 0, + IFLA_BRPORT_STATE = 1, + IFLA_BRPORT_PRIORITY = 2, + IFLA_BRPORT_COST = 3, + IFLA_BRPORT_MODE = 4, + IFLA_BRPORT_GUARD = 5, + IFLA_BRPORT_PROTECT = 6, + IFLA_BRPORT_FAST_LEAVE = 7, + IFLA_BRPORT_LEARNING = 8, + IFLA_BRPORT_UNICAST_FLOOD = 9, + IFLA_BRPORT_PROXYARP = 10, + IFLA_BRPORT_LEARNING_SYNC = 11, + IFLA_BRPORT_PROXYARP_WIFI = 12, + IFLA_BRPORT_ROOT_ID = 13, + IFLA_BRPORT_BRIDGE_ID = 14, + IFLA_BRPORT_DESIGNATED_PORT = 15, + IFLA_BRPORT_DESIGNATED_COST = 16, + IFLA_BRPORT_ID = 17, + IFLA_BRPORT_NO = 18, + IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19, + IFLA_BRPORT_CONFIG_PENDING = 20, + IFLA_BRPORT_MESSAGE_AGE_TIMER = 21, + IFLA_BRPORT_FORWARD_DELAY_TIMER = 22, + IFLA_BRPORT_HOLD_TIMER = 23, + IFLA_BRPORT_FLUSH = 24, + IFLA_BRPORT_MULTICAST_ROUTER = 25, + IFLA_BRPORT_PAD = 26, + IFLA_BRPORT_MCAST_FLOOD = 27, + IFLA_BRPORT_MCAST_TO_UCAST = 28, + IFLA_BRPORT_VLAN_TUNNEL = 29, + IFLA_BRPORT_BCAST_FLOOD = 30, + IFLA_BRPORT_GROUP_FWD_MASK = 31, + IFLA_BRPORT_NEIGH_SUPPRESS = 32, + IFLA_BRPORT_ISOLATED = 33, + IFLA_BRPORT_BACKUP_PORT = 34, + IFLA_BRPORT_MRP_RING_OPEN = 35, + IFLA_BRPORT_MRP_IN_OPEN = 36, + IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37, + IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38, + IFLA_BRPORT_LOCKED = 39, + IFLA_BRPORT_MAB = 40, + IFLA_BRPORT_MCAST_N_GROUPS = 41, + IFLA_BRPORT_MCAST_MAX_GROUPS = 42, + IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 43, + IFLA_BRPORT_BACKUP_NHID = 44, + __IFLA_BRPORT_MAX = 45, }; -struct raw_data_entry { - struct trace_entry ent; - unsigned int id; - char buf[0]; +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, }; -struct ftrace_buffer_info { - struct trace_iterator iter; - void *spare; - unsigned int spare_cpu; - unsigned int read; +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, }; -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; +enum rtnl_link_flags { + RTNL_FLAG_DOIT_UNLOCKED = 1, + RTNL_FLAG_BULK_DEL_SUPPORTED = 2, }; -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 *); +enum rtnl_kinds { + RTNL_KIND_NEW = 0, + RTNL_KIND_DEL = 1, + RTNL_KIND_GET = 2, + RTNL_KIND_SET = 3, }; -struct memblock { - bool bottom_up; - phys_addr_t current_limit; - struct memblock_type memory; - struct memblock_type reserved; +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, }; -struct page_reporting_dev_info { - int (*report)(struct page_reporting_dev_info *, struct scatterlist *, unsigned int); - struct delayed_work work; - atomic_t state; - unsigned int order; +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 { - PAGE_REPORTING_IDLE = 0, - PAGE_REPORTING_REQUESTED = 1, - PAGE_REPORTING_ACTIVE = 2, + IFLA_VF_INFO_UNSPEC = 0, + IFLA_VF_INFO = 1, + __IFLA_VF_INFO_MAX = 2, }; -struct simple_xattr { - struct rb_node rb_node; - char *name; - size_t size; - char value[0]; +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, }; -struct xattr_name { - char name[256]; +enum { + IFLA_VF_VLAN_INFO_UNSPEC = 0, + IFLA_VF_VLAN_INFO = 1, + __IFLA_VF_VLAN_INFO_MAX = 2, }; -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; +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, }; -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: 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: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; - struct page *internal_pages[8]; - struct file *aio_ring_file; - unsigned int id; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +enum { + IFLA_VF_PORT_UNSPEC = 0, + IFLA_VF_PORT = 1, + __IFLA_VF_PORT_MAX = 2, }; -struct kioctx_cpu { - unsigned int reqs_available; +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, }; -struct ctx_rq_wait { - struct completion comp; - atomic_t count; +enum { + XDP_ATTACHED_NONE = 0, + XDP_ATTACHED_DRV = 1, + XDP_ATTACHED_SKB = 2, + XDP_ATTACHED_HW = 3, + XDP_ATTACHED_MULTI = 4, }; 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, + 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, }; -struct fsync_iocb { - struct file *file; - struct work_struct work; - bool datasync; - struct cred *creds; +enum bpf_xdp_mode { + XDP_MODE_SKB = 0, + XDP_MODE_DRV = 1, + XDP_MODE_HW = 2, + __MAX_XDP_MODE = 3, }; -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; +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, }; -typedef int kiocb_cancel_fn(struct kiocb *); - -struct io_event { - __u64 data; - __u64 obj; - __s64 res; - __s64 res2; +enum netdev_offload_xstats_type { + NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, }; -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; +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, }; -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; +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 aio_poll_table { - struct poll_table_struct pt; - struct aio_kiocb *iocb; - bool queued; - int error; +enum { + MDBA_GET_ENTRY_UNSPEC = 0, + MDBA_GET_ENTRY = 1, + MDBA_GET_ENTRY_ATTRS = 2, + __MDBA_GET_ENTRY_MAX = 3, }; -typedef u32 compat_aio_context_t; - -struct __aio_sigset { - const sigset_t __attribute__((btf_type_tag("user"))) *sigmask; - size_t sigsetsize; +enum { + MDBA_SET_ENTRY_UNSPEC = 0, + MDBA_SET_ENTRY = 1, + MDBA_SET_ENTRY_ATTRS = 2, + __MDBA_SET_ENTRY_MAX = 3, }; -struct __compat_aio_sigset { - compat_uptr_t sigmask; - compat_size_t sigsetsize; +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 *); }; -struct aio_ring { - unsigned int id; - unsigned int nr; - unsigned int head; - unsigned int tail; - unsigned int magic; - unsigned int compat_features; - unsigned int incompat_features; - unsigned int header_length; - struct io_event io_events[0]; +struct rtgenmsg { + unsigned char rtgen_family; }; -typedef struct { - __le32 a_version; -} ext4_acl_header; - -typedef struct { - __le16 e_tag; - __le16 e_perm; - __le32 e_id; -} ext4_acl_entry; - -struct constant_table { - const char *name; - int value; -}; +typedef __kernel_clock_t clock_t; -enum Opt_errors { - Opt_errors_continue = 0, - Opt_errors_panic = 1, +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; }; -enum squashfs_param { - Opt_errors = 0, - Opt_threads = 1, +struct rtnl_offload_xstats_request_used { + bool request; + bool used; }; -struct squashfs_mount_opts { - enum Opt_errors errors; - const struct squashfs_decompressor_thread_ops *thread_ops; - int thread_num; +struct rtnl_newlink_tbs { + struct nlattr *tb[66]; + struct nlattr *attr[51]; + struct nlattr *slave_attr[45]; }; -struct squashfs_super_block { - __le32 s_magic; - __le32 inodes; - __le32 mkfs_time; - __le32 block_size; - __le32 fragments; - __le16 compression; - __le16 block_log; - __le16 flags; - __le16 no_ids; - __le16 s_major; - __le16 s_minor; - __le64 root_inode; - __le64 bytes_used; - __le64 id_table_start; - __le64 xattr_id_table_start; - __le64 inode_table_start; - __le64 directory_table_start; - __le64 fragment_table_start; - __le64 lookup_table_start; +struct if_stats_msg { + __u8 family; + __u8 pad1; + __u16 pad2; + __u32 ifindex; + __u32 filter_mask; }; -struct squashfs_xattr_id_table { - __le64 xattr_table_start; - __le32 xattr_ids; - __le32 unused; +struct br_port_msg { + __u8 family; + __u32 ifindex; }; -enum nfs_param { - Opt_ac = 0, - Opt_acdirmax = 1, - Opt_acdirmin = 2, - Opt_acl = 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 = 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, - Opt_xprtsec = 54, +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; }; -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, +struct netlink_kernel_cfg { + unsigned int groups; + unsigned int flags; + void (*input)(struct sk_buff *); + struct mutex *cb_mutex; + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, unsigned long *); }; -enum { - Opt_lookupcache_all = 0, - Opt_lookupcache_none = 1, - Opt_lookupcache_positive = 2, +struct netlink_dump_control { + int (*start)(struct netlink_callback *); + int (*dump)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + struct netlink_ext_ack *extack; + void *data; + struct module *module; + u32 min_dump_alloc; }; -enum { - Opt_local_lock_all = 0, - Opt_local_lock_flock = 1, - Opt_local_lock_none = 2, - Opt_local_lock_posix = 3, +struct ifla_vf_mac { + __u32 vf; + __u8 mac[32]; }; -enum { - Opt_write_lazy = 0, - Opt_write_eager = 1, - Opt_write_wait = 2, +struct ifla_vf_vlan { + __u32 vf; + __u32 vlan; + __u32 qos; }; -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, +struct ifla_vf_vlan_info { + __u32 vf; + __u32 vlan; + __u32 qos; + __be16 vlan_proto; }; -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 ifla_vf_tx_rate { + __u32 vf; + __u32 rate; }; -enum { - Opt_xprtsec_none = 0, - Opt_xprtsec_tls = 1, - Opt_xprtsec_mtls = 2, - nr__Opt_xprtsec = 3, +struct ifla_vf_rate { + __u32 vf; + __u32 min_tx_rate; + __u32 max_tx_rate; }; -struct compat_nfs_string { - compat_uint_t len; - compat_uptr_t data; +struct ifla_vf_spoofchk { + __u32 vf; + __u32 setting; }; -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 ifla_vf_link_state { + __u32 vf; + __u32 link_state; }; -struct nfs2_fh { - char data[32]; +struct ifla_vf_rss_query_en { + __u32 vf; + __u32 setting; }; -struct nfs3_fh { - unsigned short size; - unsigned char data[64]; +struct ifla_vf_trust { + __u32 vf; + __u32 setting; }; -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 rtnl_stats_dump_filters { + u32 mask[6]; }; -struct nfs_string { - unsigned int len; - const char __attribute__((btf_type_tag("user"))) *data; +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 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; +struct rtnl_mdb_dump_ctx { + long idx; }; -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, +struct rtnl_link_ifmap { + __u64 mem_start; + __u64 mem_end; + __u64 base_addr; + __u16 irq; + __u8 dma; + __u8 port; }; -struct pnfs_commit_bucket { - struct list_head written; - struct list_head committing; - struct pnfs_layout_segment *lseg; - struct nfs_writeverf direct_verf; +struct ifla_vf_broadcast { + __u8 broadcast[32]; }; -struct pnfs_commit_array { - struct list_head cinfo_list; - struct list_head lseg_list; - struct pnfs_layout_segment *lseg; - struct callback_head rcu; - refcount_t refcount; - unsigned int nbuckets; - struct pnfs_commit_bucket buckets[0]; +struct br_mdb_entry { + __u32 ifindex; + __u8 state; + __u8 flags; + __u16 vid; + struct { + union { + __be32 ip4; + struct in6_addr ip6; + unsigned char mac_addr[6]; + } u; + __be16 proto; + } addr; }; -struct nfs4_pnfs_ds_addr { - struct __kernel_sockaddr_storage da_addr; - size_t da_addrlen; - struct list_head da_node; - char *da_remotestr; - const char *da_netid; - int da_transport; +struct update_classid_context { + u32 classid; + unsigned int batch; }; -struct nfs4_pnfs_ds { - struct list_head ds_node; - char *ds_remotestr; - struct list_head ds_addrs; - struct nfs_client *ds_clp; - refcount_t ds_count; - unsigned long ds_state; +struct psample_group { + struct list_head list; + struct net *net; + u32 group_num; + u32 refcount; + u32 seq; + struct callback_head rcu; }; -struct nfs4_add_xprt_data { - struct nfs_client *clp; - const struct cred *cred; +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; }; -struct rpc_add_xprt_test { - void (*add_xprt_test)(struct rpc_clnt *, struct rpc_xprt *, void *); - void *data; +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, }; -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, -} __attribute__((mode(byte))); - -struct p9_rdir { - int head; - int tail; - uint8_t buf[0]; +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, }; -struct p9_dirent { - struct p9_qid qid; - u64 d_off; - unsigned char d_type; - char d_name[256]; +enum net_xmit_qdisc_t { + __NET_XMIT_STOLEN = 65536, + __NET_XMIT_BYPASS = 131072, }; -typedef unsigned char u8___2; - -struct rand_data { - void *hash_state; - __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; - unsigned int rct_count; - unsigned int apt_observations; - unsigned int apt_count; - unsigned int apt_base; - unsigned int apt_base_set: 1; +enum flow_block_command { + FLOW_BLOCK_BIND = 0, + FLOW_BLOCK_UNBIND = 1, }; -struct jitterentropy { - spinlock_t jent_lock; - struct rand_data *entropy_collector; - struct crypto_shash *tfm; - struct shash_desc *sdesc; +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, }; -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 pedit_cmd { + TCA_PEDIT_KEY_EX_CMD_SET = 0, + TCA_PEDIT_KEY_EX_CMD_ADD = 1, + __PEDIT_CMD_MAX = 2, }; -enum { - DISK_EVENT_MEDIA_CHANGE = 1, - DISK_EVENT_EJECT_REQUEST = 2, +enum qdisc_class_ops_flags { + QDISC_CLASS_OPS_DOIT_UNLOCKED = 1, }; -enum { - DISK_EVENT_FLAG_POLL = 1, - DISK_EVENT_FLAG_UEVENT = 2, - DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, +enum tcf_proto_ops_flags { + TCF_PROTO_OPS_DOIT_UNLOCKED = 1, }; -enum { - SKBFL_ZEROCOPY_ENABLE = 1, - SKBFL_SHARED_FRAG = 2, - SKBFL_PURE_ZEROCOPY = 4, - SKBFL_DONT_ORPHAN = 8, - SKBFL_MANAGED_FRAG_REFS = 16, +struct tcf_block_owner_item { + struct list_head list; + struct Qdisc *q; + enum flow_block_binder_type binder_type; }; -struct io_shutdown { - struct file *file; - int how; -}; +struct flow_block_cb; -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; - void __attribute__((btf_type_tag("user"))) *msg_control; - struct io_kiocb *notif; +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 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 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 io_socket { - struct file *file; - int domain; - int type; - int protocol; - int flags; - u32 file_slot; - unsigned long nofile; -}; +typedef void tcf_chain_head_change_t(struct tcf_proto *, void *); -struct io_connect { - struct file *file; - struct sockaddr __attribute__((btf_type_tag("user"))) *addr; - int addr_len; - bool in_progress; - bool seen_econnaborted; +struct tcf_filter_chain_list_item { + struct list_head list; + tcf_chain_head_change_t *chain_head_change; + void *chain_head_change_priv; }; -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 tc_pedit_key; -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 tcf_pedit_key_ex; -struct io_uring_recvmsg_out { - __u32 namelen; - __u32 controllen; - __u32 payloadlen; - __u32 flags; +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 io_recvmsg_multishot_hdr { - struct io_uring_recvmsg_out msg; - struct __kernel_sockaddr_storage addr; +struct tc_pedit_key { + __u32 mask; + __u32 val; + __u32 off; + __u32 at; + __u32 offmask; + __u32 shift; }; -struct io_async_connect { - struct __kernel_sockaddr_storage address; +struct tcf_pedit_key_ex { + enum pedit_header_type htype; + enum pedit_cmd cmd; }; -struct mbi_range { - u32 spi_start; - u32 nr_spis; - unsigned long *bm; +struct tcf_pedit { + struct tc_action common; + struct tcf_pedit_parms __attribute__((btf_type_tag("rcu"))) *parms; + long: 64; }; -struct ti_sci_inta_event_desc { - u16 global_event; - u32 hwirq; - u8 vint_bit; +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 ti_sci_inta_vint_desc { - struct irq_domain *domain; - struct list_head list; - unsigned long event_map[1]; - struct ti_sci_inta_event_desc events[64]; - unsigned int parent_virq; - u16 vint_id; +struct tcf_net { + spinlock_t idr_lock; + struct idr idr; }; -struct ti_sci_resource; - -struct ti_sci_inta_irq_domain { - const struct ti_sci_handle *sci; - struct ti_sci_resource *vint; - struct ti_sci_resource *global_event; - struct list_head vint_list; - struct mutex vint_mutex; - void *base; - struct platform_device *pdev; - u32 ti_sci_id; - int unmapped_cnt; - u16 *unmapped_dev_ids; +struct action_gate_entry { + u8 gate_state; + u32 interval; + s32 ipv; + s32 maxoctets; }; -struct ti_sci_resource { - u16 sets; - raw_spinlock_t lock; - struct ti_sci_resource_desc *desc; +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; }; -enum bcm_usb_phy_version { - BCM_SR_USB_COMBO_PHY = 0, - BCM_SR_USB_HS_PHY = 1, +struct tcf_chain_info { + struct tcf_proto __attribute__((btf_type_tag("rcu"))) **pprev; + struct tcf_proto __attribute__((btf_type_tag("rcu"))) *next; }; -enum bcm_usb_phy_type { - USB_HS_PHY = 0, - USB_SS_PHY = 1, +struct nla_bitfield32 { + __u32 value; + __u32 selector; }; -enum bcm_usb_phy_reg { - PLL_CTRL = 0, - PHY_CTRL = 1, - PHY_PLL_CTRL = 2, +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; }; -enum bcm_usb_phy_ctrl_bits { - CORERDY = 0, - PHY_RESETB = 1, - PHY_PCTL = 2, +struct tcf_qevent { + struct tcf_block *block; + struct tcf_block_ext_info info; + struct tcf_proto __attribute__((btf_type_tag("rcu"))) *filter_chain; }; -enum pll_ctrl_bits { - PLL_RESETB = 0, - SSPLL_SUSPEND_EN = 1, - PLL_SEQ_START = 2, - PLL_LOCK = 3, +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 bcm_usb_phy_cfg { - uint32_t type; - uint32_t version; - void *regs; - struct phy *phy; - const u8 *offset; +enum { + NLA_UNSPEC = 0, + NLA_U8 = 1, + NLA_U16 = 2, + NLA_U32 = 3, + NLA_U64 = 4, + NLA_STRING = 5, + NLA_FLAG = 6, + NLA_MSECS = 7, + NLA_NESTED = 8, + NLA_NESTED_ARRAY = 9, + NLA_NUL_STRING = 10, + NLA_BINARY = 11, + NLA_S8 = 12, + NLA_S16 = 13, + NLA_S32 = 14, + NLA_S64 = 15, + NLA_BITFIELD32 = 16, + NLA_REJECT = 17, + NLA_BE16 = 18, + NLA_BE32 = 19, + NLA_SINT = 20, + NLA_UINT = 21, + __NLA_TYPE_MAX = 22, }; -struct pinctrl_setting_configs { - unsigned int group_or_pin; - unsigned long *configs; - unsigned int num_configs; +struct plca_reply_data { + struct ethnl_reply_data base; + struct phy_plca_cfg plca_cfg; + struct phy_plca_status plca_st; }; -struct pinctrl_setting { - struct list_head node; - enum pinctrl_map_type type; - struct pinctrl_dev *pctldev; - const char *dev_name; - union { - struct pinctrl_setting_mux mux; - struct pinctrl_setting_configs configs; - } data; +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 *); }; -enum ioctrl_regs { - POCCTRL = 0, - TDSELCTRL = 1, +struct ping_table { + struct hlist_head hash[64]; + spinlock_t lock; }; -struct dwapb_gpio_port_irqchip; +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 dwapb_gpio; +struct icmpv6_echo { + __be16 identifier; + __be16 sequence; +}; -struct dwapb_context; +struct icmpv6_nd_advt { + __u32 reserved: 5; + __u32 override: 1; + __u32 solicited: 1; + __u32 router: 1; + __u32 reserved2: 24; +}; -struct dwapb_gpio_port { - struct gpio_chip gc; - struct dwapb_gpio_port_irqchip *pirq; - struct dwapb_gpio *gpio; - struct dwapb_context *ctx; - unsigned int idx; +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 dwapb_gpio_port_irqchip { - unsigned int nr_irqs; - unsigned int irq[32]; +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 dwapb_gpio { - struct device *dev; - void *regs; - struct dwapb_gpio_port *ports; - unsigned int nr_ports; - unsigned int flags; - struct reset_control *rst; - struct clk_bulk_data clks[2]; +struct ping_iter_state { + struct seq_net_private p; + int bucket; + sa_family_t family; }; -struct dwapb_context { - u32 data; - u32 dir; - u32 ext; - u32 int_en; - u32 int_mask; - u32 int_type; - u32 int_pol; - u32 int_deb; - u32 wake_en; +struct pingfakehdr { + struct icmphdr icmph; + struct msghdr *msg; + sa_family_t family; + __wsum wcheck; }; -struct dwapb_port_property; +enum { + IP6_FH_F_FRAG = 1, + IP6_FH_F_AUTH = 2, + IP6_FH_F_SKIP_RH = 4, +}; -struct dwapb_platform_data { - struct dwapb_port_property *properties; - unsigned int nports; +enum devlink_multicast_groups { + DEVLINK_MCGRP_CONFIG = 0, }; -struct dwapb_port_property { - struct fwnode_handle *fwnode; - unsigned int idx; - unsigned int ngpio; - unsigned int gpio_base; - int irq[32]; +struct devlink_region_ops; + +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 bus_attribute { - struct attribute attr; - ssize_t (*show)(const struct bus_type *, char *); - ssize_t (*store)(const struct bus_type *, const char *, size_t); +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 pci_mmap_api { - PCI_MMAP_SYSFS = 0, - PCI_MMAP_PROCFS = 1, +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; }; -enum pci_mmap_state { - pci_mmap_io = 0, - pci_mmap_mem = 1, +struct devlink_snapshot { + struct list_head list; + struct devlink_region *region; + u8 *data; + u32 id; }; -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, +struct genl_dumpit_info { + struct genl_split_ops op; + struct genl_info info; }; -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 int devlink_chunk_fill_t(void *, u8 *, u32, u64, struct netlink_ext_ack *); + +struct unix_domain { + struct auth_domain h; }; -struct xgene_pcie { - struct device_node *node; - struct device *dev; - struct clk *clk; - void *csr_base; - void *cfg_base; - unsigned long cfg_addr; - bool link_up; - u32 version; +struct unix_gid { + struct cache_head h; + kuid_t uid; + struct group_info *gi; + struct callback_head rcu; }; -struct fb_cvt_data { - u32 xres; - u32 yres; - u32 refresh; - u32 f_refresh; - u32 pixclock; - u32 hperiod; - u32 hblank; - u32 hfreq; - u32 htotal; - u32 vtotal; - u32 vsync; - u32 hsync; - u32 h_front_porch; - u32 h_back_porch; - u32 v_front_porch; - u32 v_back_porch; - u32 h_margin; - u32 v_margin; - u32 interlace; - u32 aspect_ratio; - u32 active_pixels; - u32 flags; - u32 status; +struct 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 { - ACPI_GENL_CMD_UNSPEC = 0, - ACPI_GENL_CMD_EVENT = 1, - __ACPI_GENL_CMD_MAX = 2, +typedef s8 int8_t; + +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); + +enum p9_proto_versions { + p9_proto_legacy = 0, + p9_proto_2000u = 1, + p9_proto_2000L = 2, }; -enum { - ACPI_GENL_ATTR_UNSPEC = 0, - ACPI_GENL_ATTR_EVENT = 1, - __ACPI_GENL_ATTR_MAX = 2, +enum p9_fid_reftype { + P9_FID_REF_CREATE = 0, + P9_FID_REF_GET = 1, + P9_FID_REF_PUT = 2, + P9_FID_REF_DESTROY = 3, +} __attribute__((mode(byte))); + +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, }; -struct acpi_bus_event { - struct list_head node; - acpi_device_class device_class; - acpi_bus_id bus_id; - u32 type; - u32 data; +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, + P9L_MODE_MASK = 8191, + P9L_DIRECT = 8192, + P9L_NOWRITECACHE = 16384, + P9L_LOOSE = 32768, }; -struct acpi_genl_event { - acpi_device_class device_class; - char bus_id[15]; - u32 type; - u32 data; +enum { + Opt_msize = 0, + Opt_trans = 1, + Opt_legacy = 2, + Opt_version = 3, + Opt_err___3 = 4, }; -struct acpi_table_cdat { - u32 length; - u8 revision; - u8 checksum; - u8 reserved[6]; - u32 sequence; +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, }; -typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); +struct trace_event_raw_9p_client_req { + struct trace_entry ent; + void *clnt; + __u8 type; + __u32 tag; + char __data[0]; +}; -struct clk_pwm { - struct clk_hw hw; - struct pwm_device *pwm; - u32 fixed_rate; +struct trace_event_raw_9p_client_res { + struct trace_entry ent; + void *clnt; + __u8 type; + __u32 tag; + __u32 err; + char __data[0]; }; -struct berlin2_avpll_vco { - struct clk_hw hw; - void *base; - u8 flags; +struct trace_event_raw_9p_protocol_dump { + struct trace_entry ent; + void *clnt; + __u8 type; + __u16 tag; + u32 __data_loc_line; + char __data[0]; }; -struct berlin2_avpll_channel { - struct clk_hw hw; - void *base; - u8 flags; - u8 index; +struct trace_event_raw_9p_fid_ref { + struct trace_entry ent; + int fid; + int refcount; + __u8 type; + char __data[0]; }; -struct mtk_clk_mux { - struct clk_hw hw; - struct regmap *regmap; - const struct mtk_mux *data; - spinlock_t *lock; - bool reparent; +struct trace_event_data_offsets_9p_protocol_dump { + u32 line; }; -struct vid_pll_div { - unsigned int shift_val; - unsigned int shift_sel; - unsigned int divider; - unsigned int multiplier; +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 meson_vid_pll_div_data { - struct parm val; - struct parm sel; +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; }; -enum clk_ids___4 { - LAST_DT_CORE_CLK___4 = 30, - CLK_EXTAL___4 = 31, - CLK_EXTALR___4 = 32, - CLK_MAIN___4 = 33, - CLK_PLL0___2 = 34, - CLK_PLL1___4 = 35, - CLK_PLL3___3 = 36, - CLK_PLL1_DIV2___4 = 37, - CLK_PLL1_DIV4___2 = 38, - MOD_CLK_BASE___4 = 39, +struct trace_event_data_offsets_9p_client_req {}; + +struct trace_event_data_offsets_9p_client_res {}; + +struct trace_event_data_offsets_9p_fid_ref {}; + +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; }; -enum r8a77970_clk_types { - CLK_TYPE_R8A77970_SD0H = 22, - CLK_TYPE_R8A77970_SD0 = 23, +struct p9_rstatfs { + u32 type; + u32 bsize; + u64 blocks; + u64 bfree; + u64 bavail; + u64 files; + u64 ffree; + u64 fsid; + u32 namelen; }; -struct tegra_clk_super_mux { - struct clk_hw hw; - void *reg; - struct tegra_clk_frac_div frac_div; - const struct clk_ops *div_ops; - u8 width; - u8 flags; - u8 div2_index; - u8 pllx_index; - spinlock_t *lock; +struct p9_flock { + u8 type; + u32 flags; + u64 start; + u64 length; + u32 proc_id; + char *client_id; }; -enum uniphier_clk_type { - UNIPHIER_CLK_TYPE_CPUGEAR = 0, - UNIPHIER_CLK_TYPE_FIXED_FACTOR = 1, - UNIPHIER_CLK_TYPE_FIXED_RATE = 2, - UNIPHIER_CLK_TYPE_GATE = 3, - UNIPHIER_CLK_TYPE_MUX = 4, +struct p9_getlock { + u8 type; + u64 start; + u64 length; + u32 proc_id; + char *client_id; }; -struct uniphier_clk_fixed_factor_data { - const char *parent_name; - unsigned int mult; - unsigned int div; +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 uniphier_clk_fixed_rate_data { - unsigned long fixed_rate; +struct cpio_data { + void *data; + size_t size; + char name[18]; }; -struct uniphier_clk_gate_data { - const char *parent_name; - unsigned int reg; - unsigned int bit; +struct klist_waiter { + struct list_head list; + struct klist_node *node; + struct task_struct *process; + int woken; }; -struct uniphier_clk_mux_data { - const char *parent_names[8]; - unsigned int num_parents; - unsigned int reg; - unsigned int masks[8]; - unsigned int vals[8]; +struct word_at_a_time { + const unsigned long one_bits; + const unsigned long high_bits; }; -struct uniphier_clk_data { - const char *name; - enum uniphier_clk_type type; - int idx; - union { - struct uniphier_clk_cpugear_data cpugear; - struct uniphier_clk_fixed_factor_data factor; - struct uniphier_clk_fixed_rate_data rate; - struct uniphier_clk_gate_data gate; - struct uniphier_clk_mux_data mux; - } data; +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 hidma_cap { - HIDMA_MSI_CAP = 1, - HIDMA_IDENTITY_CAP = 2, +struct tcpa_event { + u32 pcr_index; + u32 event_type; + u8 pcr_value[20]; + u32 event_size; + u8 event_data[0]; }; -enum tre_type { - HIDMA_TRE_MEMCPY = 3, - HIDMA_TRE_MEMSET = 4, +struct tcg_pcr_event2_head { + u32 pcr_idx; + u32 event_type; + u32 count; + struct tpm_digest digests[0]; }; -enum msi_domain_ids { - MSI_DEFAULT_DOMAIN = 0, - MSI_SECONDARY_DOMAIN = 1, - MSI_MAX_DEVICE_IRQDOMAINS = 2, +struct tcg_efi_specid_event_algs { + u16 alg_id; + u16 digest_size; }; -struct hidma_desc { - struct dma_async_tx_descriptor desc; - struct list_head node; - u32 tre_ch; +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 hidma_dev; +struct tcg_event_field { + u32 event_size; + u8 event[0]; +}; -struct hidma_chan { - bool paused; - bool allocated; - char dbg_name[16]; - u32 dma_sig; - dma_cookie_t last_success; - struct hidma_dev *dmadev; - struct hidma_desc *running; - struct dma_chan chan; - struct list_head free; - struct list_head prepared; - struct list_head queued; - struct list_head active; - struct list_head completed; - spinlock_t lock; +struct tcg_pcr_event { + u32 pcr_idx; + u32 event_type; + u8 digest[20]; + u32 event_size; + u8 event[0]; }; -struct hidma_dev { - int irq; - int chidx; - u32 nr_descriptors; - int msi_virqbase; - struct hidma_lldev *lldev; - void *dev_trca; - struct resource *trca_resource; - void *dev_evca; - struct resource *evca_resource; - spinlock_t lock; - struct dma_device ddev; - struct dentry *debugfs; - struct device_attribute *chid_attrs; - struct tasklet_struct task; +struct linux_efi_tpm_eventlog { + u32 size; + u32 final_events_preboot_size; + u8 version; + u8 log[0]; }; -typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); +struct efi_tcg2_final_events_table { + u64 version; + u64 nr_events; + u8 events[0]; +}; -struct meson_ee_pwrc_domain_desc; +typedef u32 efi_tcg2_event_log_format; -struct meson_ee_pwrc_domain_data { - unsigned int count; - struct meson_ee_pwrc_domain_desc *domains; -}; +union efi_tcg2_protocol; -struct meson_ee_pwrc_top_domain; +typedef union efi_tcg2_protocol efi_tcg2_protocol_t; -struct meson_ee_pwrc_mem_domain; +struct efi_tcg2_event; -struct meson_ee_pwrc_domain; +typedef struct efi_tcg2_event efi_tcg2_event_t; -struct meson_ee_pwrc_domain_desc { - char *name; - unsigned int reset_names_count; - unsigned int clk_names_count; - struct meson_ee_pwrc_top_domain *top_pd; - unsigned int mem_pd_count; - struct meson_ee_pwrc_mem_domain *mem_pd; - bool (*is_powered_off)(struct meson_ee_pwrc_domain *); +union efi_tcg2_protocol { + struct { + void *get_capability; + efi_status_t (*get_event_log)(efi_tcg2_protocol_t *, efi_tcg2_event_log_format, efi_physical_addr_t *, efi_physical_addr_t *, efi_bool_t *); + efi_status_t (*hash_log_extend_event)(efi_tcg2_protocol_t *, u64, efi_physical_addr_t, u64, const efi_tcg2_event_t *); + void *submit_command; + void *get_active_pcr_banks; + void *set_active_pcr_banks; + void *get_result_of_set_active_pcr_banks; + }; + struct { + u32 get_capability; + u32 get_event_log; + u32 hash_log_extend_event; + u32 submit_command; + u32 get_active_pcr_banks; + u32 set_active_pcr_banks; + u32 get_result_of_set_active_pcr_banks; + } mixed_mode; }; -struct meson_ee_pwrc_top_domain { - unsigned int sleep_reg; - unsigned int sleep_mask; - unsigned int iso_reg; - unsigned int iso_mask; -}; +struct efi_tcg2_event { + u32 event_size; + struct { + u32 header_size; + u16 header_version; + u32 pcr_index; + u32 event_type; + } __attribute__((packed)) event_header; +} __attribute__((packed)); -struct meson_ee_pwrc_mem_domain { - unsigned int reg; - unsigned int mask; +enum state { + Start = 0, + Collect = 1, + GotHeader = 2, + SkipIt = 3, + GotName = 4, + CopyFile = 5, + GotSymlink = 6, + Reset = 7, }; -struct meson_ee_pwrc; +struct hash { + int ino; + int minor; + int major; + umode_t mode; + struct hash *next; + char name[4098]; +}; -struct meson_ee_pwrc_domain { - struct generic_pm_domain base; - bool enabled; - struct meson_ee_pwrc *pwrc; - struct meson_ee_pwrc_domain_desc desc; - struct clk_bulk_data *clks; - int num_clks; - struct reset_control *rstc; - int num_rstc; +struct dir_entry { + struct list_head list; + time64_t mtime; + char name[0]; }; -struct meson_ee_pwrc { - struct regmap *regmap_ao; - struct regmap *regmap_hhi; - struct meson_ee_pwrc_domain *domains; - struct genpd_onecell_data xlate; +typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *)); + +struct crash_mem { + unsigned int max_nr_ranges; + unsigned int nr_ranges; + struct range ranges[0]; }; -struct rockchip_pmu_info; +struct kexec_buf { + struct kimage *image; + void *buffer; + unsigned long bufsz; + unsigned long mem; + unsigned long memsz; + unsigned long buf_align; + unsigned long buf_min; + unsigned long buf_max; + bool top_down; +}; -struct rockchip_pmu { - struct device *dev; - struct regmap *regmap; - const struct rockchip_pmu_info *info; - struct mutex mutex; - struct genpd_onecell_data genpd_data; - struct generic_pm_domain *domains[0]; +struct mhp_params { + struct vmem_altmap *altmap; + pgprot_t pgprot; + struct dev_pagemap *pgmap; }; -struct rockchip_domain_info; +struct memory_notify { + unsigned long start_pfn; + unsigned long nr_pages; + int status_change_nid_normal; + int status_change_nid; +}; -struct rockchip_pmu_info { - u32 pwr_offset; - u32 status_offset; - u32 req_offset; - u32 idle_offset; - u32 ack_offset; - u32 mem_pwr_offset; - u32 chain_status_offset; - u32 mem_status_offset; - u32 repair_status_offset; - u32 core_pwrcnt_offset; - u32 gpu_pwrcnt_offset; - unsigned int core_power_transition_time; - unsigned int gpu_power_transition_time; - int num_domains; - const struct rockchip_domain_info *domain_info; +struct vgic_reg_attr { + struct kvm_vcpu *vcpu; + gpa_t addr; }; -struct rockchip_domain_info { - const char *name; - int pwr_mask; - int status_mask; - int req_mask; - int idle_mask; - int ack_mask; - bool active_wakeup; - int pwr_w_mask; - int req_w_mask; - int mem_status_mask; - int repair_status_mask; - u32 pwr_offset; - u32 mem_offset; - u32 req_offset; +struct kvm_arm_device_addr { + __u64 id; + __u64 addr; }; -struct rockchip_pm_domain { - struct generic_pm_domain genpd; - const struct rockchip_domain_info *info; - struct rockchip_pmu *pmu; - int num_qos; - struct regmap **qos_regmap; - u32 *qos_save_regs[5]; - int num_clks; - struct clk_bulk_data *clks; +struct tlb_inv_context { + u64 tcr; }; -struct xen_memory_reservation { - __guest_handle_xen_pfn_t extent_start; - xen_ulong_t nr_extents; - unsigned int extent_order; - unsigned int address_bits; - domid_t domid; +struct taint_flag { + char c_true; + char c_false; + bool module; }; -struct xenpf_settime32 { - uint32_t secs; - uint32_t nsecs; - uint64_t system_time; +enum con_flush_mode { + CONSOLE_FLUSH_PENDING = 0, + CONSOLE_REPLAY_ALL = 1, }; -struct xenpf_settime64 { - uint64_t secs; - uint32_t nsecs; - uint32_t mbz; - uint64_t system_time; +enum error_detector { + ERROR_DETECTOR_KFENCE = 0, + ERROR_DETECTOR_KASAN = 1, + ERROR_DETECTOR_WARN = 2, }; -struct xenpf_add_memtype { - xen_pfn_t mfn; - uint64_t nr_mfns; - uint32_t type; - uint32_t handle; - uint32_t reg; +enum ftrace_dump_mode { + DUMP_NONE = 0, + DUMP_ALL = 1, + DUMP_ORIG = 2, }; -struct xenpf_del_memtype { - uint32_t handle; - uint32_t reg; +struct warn_args { + const char *fmt; + va_list args; }; -struct xenpf_read_memtype { - uint32_t reg; - xen_pfn_t mfn; - uint64_t nr_mfns; - uint32_t type; +enum proc_cn_event { + PROC_EVENT_NONE = 0, + PROC_EVENT_FORK = 1, + PROC_EVENT_EXEC = 2, + PROC_EVENT_UID = 4, + PROC_EVENT_GID = 64, + PROC_EVENT_SID = 128, + PROC_EVENT_PTRACE = 256, + PROC_EVENT_COMM = 512, + PROC_EVENT_NONZERO_EXIT = 536870912, + PROC_EVENT_COREDUMP = 1073741824, + PROC_EVENT_EXIT = 2147483648, }; -typedef struct { - union { - void *p; - uint64_t q; - }; -} __guest_handle_void; +struct linked_page; -struct xenpf_microcode_update { - __guest_handle_void data; - uint32_t length; +struct chain_allocator { + struct linked_page *chain; + unsigned int used_space; + gfp_t gfp_mask; + int safe_needed; }; -struct xenpf_platform_quirk { - uint32_t quirk_id; +struct linked_page { + struct linked_page *next; + char data[4088]; }; -struct xenpf_efi_time { - uint16_t year; - uint8_t month; - uint8_t day; - uint8_t hour; - uint8_t min; - uint8_t sec; - uint32_t ns; - int16_t tz; - uint8_t daylight; +struct pbe { + void *address; + void *orig_address; + struct pbe *next; }; -struct xenpf_efi_guid { - uint32_t data1; - uint16_t data2; - uint16_t data3; - uint8_t data4[8]; +struct mem_zone_bm_rtree; + +struct rtree_node; + +struct bm_position { + struct mem_zone_bm_rtree *zone; + struct rtree_node *node; + unsigned long node_pfn; + unsigned long cur_pfn; + int node_bit; }; -struct xenpf_efi_runtime_call { - uint32_t function; - uint32_t misc; - xen_ulong_t status; - union { - struct { - struct xenpf_efi_time time; - uint32_t resolution; - uint32_t accuracy; - } get_time; - struct xenpf_efi_time set_time; - struct xenpf_efi_time get_wakeup_time; - struct xenpf_efi_time set_wakeup_time; - struct { - __guest_handle_void name; - xen_ulong_t size; - __guest_handle_void data; - struct xenpf_efi_guid vendor_guid; - } get_variable; - struct { - __guest_handle_void name; - xen_ulong_t size; - __guest_handle_void data; - struct xenpf_efi_guid vendor_guid; - } set_variable; - struct { - xen_ulong_t size; - __guest_handle_void name; - struct xenpf_efi_guid vendor_guid; - } get_next_variable_name; - struct { - uint32_t attr; - uint64_t max_store_size; - uint64_t remain_store_size; - uint64_t max_size; - } query_variable_info; - struct { - __guest_handle_void capsule_header_array; - xen_ulong_t capsule_count; - uint64_t max_capsule_size; - uint32_t reset_type; - } query_capsule_capabilities; - struct { - __guest_handle_void capsule_header_array; - xen_ulong_t capsule_count; - uint64_t sg_list; - } update_capsule; - } u; +struct memory_bitmap { + struct list_head zones; + struct linked_page *p_list; + struct bm_position cur; }; -typedef struct { - union { - unsigned char *p; - uint64_t q; - }; -} __guest_handle_uchar; - -union xenpf_efi_info { - uint32_t version; - struct { - uint64_t addr; - uint32_t nent; - } cfg; - struct { - uint32_t revision; - uint32_t bufsz; - __guest_handle_void name; - } vendor; - struct { - uint64_t addr; - uint64_t size; - uint64_t attr; - uint32_t type; - } mem; +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 xenpf_firmware_info { - uint32_t type; - uint32_t index; - union { - struct { - uint8_t device; - uint8_t version; - uint16_t interface_support; - uint16_t legacy_max_cylinder; - uint8_t legacy_max_head; - uint8_t legacy_sectors_per_track; - __guest_handle_void edd_params; - } disk_info; - struct { - uint8_t device; - uint32_t mbr_signature; - } disk_mbr_signature; - struct { - uint8_t capabilities; - uint8_t edid_transfer_time; - __guest_handle_uchar edid; - } vbeddc_info; - union xenpf_efi_info efi_info; - uint8_t kbd_shift_flags; - } u; +struct rtree_node { + struct list_head list; + unsigned long *data; }; -struct xenpf_enter_acpi_sleep { - uint16_t val_a; - uint16_t val_b; - uint32_t sleep_state; - uint32_t flags; +struct nosave_region { + struct list_head list; + unsigned long start_pfn; + unsigned long end_pfn; }; -struct xenpf_change_freq { - uint32_t flags; - uint32_t cpu; - uint64_t freq; +struct mem_extent { + struct list_head hook; + unsigned long start; + unsigned long end; }; -typedef struct { - union { - uint64_t *p; - uint64_t q; - }; -} __guest_handle_uint64_t; - -struct xenpf_getidletime { - __guest_handle_uchar cpumap_bitmap; - uint32_t cpumap_nr_cpus; - __guest_handle_uint64_t idletime; - uint64_t now; +struct rcu_cblist { + struct callback_head *head; + struct callback_head **tail; + long len; }; -struct xen_processor_flags { - uint32_t bm_control: 1; - uint32_t bm_check: 1; - uint32_t has_cst: 1; - uint32_t power_setup_done: 1; - uint32_t bm_rld_set: 1; +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 xen_processor_cx; +struct io_tlb_area; -typedef struct { - union { - struct xen_processor_cx *p; - uint64_t q; - }; -} __guest_handle_xen_processor_cx; +struct io_tlb_slot; -struct xen_processor_power { - uint32_t count; - struct xen_processor_flags flags; - __guest_handle_xen_processor_cx states; +struct io_tlb_pool { + phys_addr_t start; + phys_addr_t end; + void *vaddr; + unsigned long nslabs; + bool late_alloc; + unsigned int nareas; + unsigned int area_nslabs; + struct io_tlb_area *areas; + struct io_tlb_slot *slots; }; -struct xen_pct_register { - uint8_t descriptor; - uint16_t length; - uint8_t space_id; - uint8_t bit_width; - uint8_t bit_offset; - uint8_t reserved; - uint64_t address; +struct io_tlb_mem { + struct io_tlb_pool defpool; + unsigned long nslabs; + struct dentry *debugfs; + bool force_bounce; + bool for_alloc; + atomic_long_t total_used; + atomic_long_t used_hiwater; }; -struct xen_processor_px; - -typedef struct { - union { - struct xen_processor_px *p; - uint64_t q; - }; -} __guest_handle_xen_processor_px; - -struct xen_psd_package { - uint64_t num_entries; - uint64_t revision; - uint64_t domain; - uint64_t coord_type; - uint64_t num_processors; +struct pci_p2pdma_map_state { + struct dev_pagemap *pgmap; + int map; + u64 bus_off; }; -struct xen_processor_performance { - uint32_t flags; - uint32_t platform_limit; - struct xen_pct_register control_register; - struct xen_pct_register status_register; - uint32_t state_count; - __guest_handle_xen_processor_px states; - struct xen_psd_package domain_info; - uint32_t shared_type; +struct profile_hit { + u32 pc; + u32 hits; }; -typedef struct { - union { - uint32_t *p; - uint64_t q; - }; -} __guest_handle_uint32_t; - -struct xenpf_set_processor_pminfo { - uint32_t id; - uint32_t type; - union { - struct xen_processor_power power; - struct xen_processor_performance perf; - __guest_handle_uint32_t pdc; - }; +enum tick_device_mode { + TICKDEV_MODE_PERIODIC = 0, + TICKDEV_MODE_ONESHOT = 1, }; -struct xenpf_pcpuinfo { - uint32_t xen_cpuid; - uint32_t max_present; - uint32_t flags; - uint32_t apic_id; - uint32_t acpi_id; +struct tick_device { + struct clock_event_device *evtdev; + enum tick_device_mode mode; }; -struct xenpf_cpu_ol { - uint32_t cpuid; +enum tick_broadcast_mode { + TICK_BROADCAST_OFF = 0, + TICK_BROADCAST_ON = 1, + TICK_BROADCAST_FORCE = 2, }; -struct xenpf_cpu_hotadd { - uint32_t apic_id; - uint32_t acpi_id; - uint32_t pxm; +enum tick_broadcast_state { + TICK_BROADCAST_EXIT = 0, + TICK_BROADCAST_ENTER = 1, }; -struct xenpf_mem_hotadd { - uint64_t spfn; - uint64_t epfn; - uint32_t pxm; - uint32_t flags; -}; +typedef u32 compat_old_sigset_t; -struct xenpf_core_parking { - uint32_t type; - uint32_t idle_nums; -}; +typedef unsigned long old_sigset_t; -typedef struct { - union { - char *p; - uint64_t q; - }; -} __guest_handle_char; +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 xenpf_symdata { - uint32_t namelen; - uint32_t symnum; - __guest_handle_char name; - uint64_t address; - char type; +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, }; -struct dom0_vga_console_info { - uint8_t video_type; - union { - struct { - uint16_t font_height; - uint16_t cursor_x; - uint16_t cursor_y; - uint16_t rows; - uint16_t columns; - } text_mode_3; - struct { - uint16_t width; - uint16_t height; - uint16_t bytes_per_line; - uint16_t bits_per_pixel; - uint32_t lfb_base; - uint32_t lfb_size; - uint8_t red_pos; - uint8_t red_size; - uint8_t green_pos; - uint8_t green_size; - uint8_t blue_pos; - uint8_t blue_size; - uint8_t rsvd_pos; - uint8_t rsvd_size; - uint32_t gbl_caps; - uint16_t mode_attrs; - uint16_t pad; - uint32_t ext_lfb_base; - } vesa_lfb; - } u; +enum { + RB_LEN_TIME_EXTEND = 8, + RB_LEN_TIME_STAMP = 8, }; -struct xen_platform_op { - uint32_t cmd; - uint32_t interface_version; - union { - struct xenpf_settime32 settime32; - struct xenpf_settime64 settime64; - struct xenpf_add_memtype add_memtype; - struct xenpf_del_memtype del_memtype; - struct xenpf_read_memtype read_memtype; - struct xenpf_microcode_update microcode; - struct xenpf_platform_quirk platform_quirk; - struct xenpf_efi_runtime_call efi_runtime_call; - struct xenpf_firmware_info firmware_info; - struct xenpf_enter_acpi_sleep enter_acpi_sleep; - struct xenpf_change_freq change_freq; - struct xenpf_getidletime getidletime; - struct xenpf_set_processor_pminfo set_pminfo; - struct xenpf_pcpuinfo pcpu_info; - struct xenpf_cpu_ol cpu_ol; - struct xenpf_cpu_hotadd cpu_add; - struct xenpf_mem_hotadd mem_add; - struct xenpf_core_parking core_parking; - struct xenpf_symdata symdata; - struct dom0_vga_console_info dom0_console; - uint8_t pad[128]; - } u; +enum ring_buffer_flags { + RB_FL_OVERWRITE = 1, }; -struct xen_power_register { - uint32_t space_id; - uint32_t bit_width; - uint32_t bit_offset; - uint32_t access_size; - uint64_t address; +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, }; -struct xen_processor_csd; +enum { + RB_ADD_STAMP_NONE = 0, + RB_ADD_STAMP_EXTEND = 2, + RB_ADD_STAMP_ABSOLUTE = 4, + RB_ADD_STAMP_FORCE = 8, +}; -typedef struct { - union { - struct xen_processor_csd *p; - uint64_t q; - }; -} __guest_handle_xen_processor_csd; +struct buffer_data_page; -struct xen_processor_cx { - struct xen_power_register reg; - uint8_t type; - uint32_t latency; - uint32_t power; - uint32_t dpcnt; - __guest_handle_xen_processor_csd dp; +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 xen_processor_csd { - uint32_t domain; - uint32_t coord_type; - uint32_t num; +struct buffer_data_page { + u64 time_stamp; + local_t commit; + unsigned char data[0]; }; -struct xen_processor_px { - uint64_t core_frequency; - uint64_t power; - uint64_t transition_latency; - uint64_t bus_master_latency; - uint64_t control; - uint64_t status; -}; +struct ring_buffer_per_cpu; -enum regulator_get_type { - NORMAL_GET = 0, - EXCLUSIVE_GET = 1, - OPTIONAL_GET = 2, - MAX_GET_TYPE = 3, +struct ring_buffer_iter { + struct ring_buffer_per_cpu *cpu_buffer; + unsigned long head; + unsigned long next_event; + struct buffer_page *head_page; + struct buffer_page *cache_reader_page; + unsigned long cache_read; + unsigned long cache_pages_removed; + u64 read_stamp; + u64 page_stamp; + struct ring_buffer_event *event; + int missed_events; }; -struct regulator_voltage { - int min_uV; - int max_uV; +struct rb_time_struct { + local64_t time; }; -struct regulator { - struct device *dev; - struct list_head list; - unsigned int always_on: 1; - unsigned int bypass: 1; - unsigned int device_link: 1; - int uA_load; - unsigned int enable_count; - unsigned int deferred_disables; - struct regulator_voltage voltage[5]; - const char *supply_name; - struct device_attribute dev_attr; - struct regulator_dev *rdev; - struct dentry *debugfs; +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 regulator_bulk_devres { - struct regulator_bulk_data *consumers; - int num_consumers; +struct ring_buffer_per_cpu { + int cpu; + atomic_t record_disabled; + atomic_t resize_disabled; + struct trace_buffer *buffer; + raw_spinlock_t reader_lock; + arch_spinlock_t lock; + struct lock_class_key lock_key; + struct buffer_data_page *free_page; + unsigned long nr_pages; + unsigned int current_context; + struct list_head *pages; + struct buffer_page *head_page; + struct buffer_page *tail_page; + struct buffer_page *commit_page; + struct buffer_page *reader_page; + unsigned long lost_events; + unsigned long last_overrun; + unsigned long nest; + local_t entries_bytes; + local_t entries; + local_t overrun; + local_t commit_overrun; + local_t dropped_events; + local_t committing; + local_t commits; + local_t pages_touched; + local_t pages_lost; + local_t pages_read; + long last_pages_touch; + size_t shortest_full; + unsigned long read; + unsigned long read_bytes; + rb_time_t write_stamp; + rb_time_t before_stamp; + u64 event_stamp[5]; + u64 read_stamp; + unsigned long pages_removed; + long nr_pages_to_update; + struct list_head new_pages; + struct work_struct update_pages_work; + struct completion update_done; + struct rb_irq_work irq_work; }; -struct regulator_supply_alias_match { - struct device *dev; - const char *id; +struct trace_buffer { + unsigned int flags; + int cpus; + atomic_t record_disabled; + atomic_t resizing; + cpumask_var_t cpumask; + struct lock_class_key *reader_lock_key; + struct mutex mutex; + struct ring_buffer_per_cpu **buffers; + struct hlist_node node; + u64 (*clock)(); + struct rb_irq_work irq_work; + bool time_stamp_abs; }; -struct regulator_irq_data; +struct rb_event_info { + u64 ts; + u64 delta; + u64 before; + u64 after; + unsigned long length; + struct buffer_page *tail_page; + int add_timestamp; +}; -struct regulator_irq_desc { - const char *name; - int fatal_cnt; - int reread_ms; - int irq_off_ms; - bool skip_off; - bool high_prio; - void *data; - int (*die)(struct regulator_irq_data *); - int (*map_event)(int, struct regulator_irq_data *, unsigned long *); - int (*renable)(struct regulator_irq_data *); +enum dynevent_type { + DYNEVENT_TYPE_SYNTH = 1, + DYNEVENT_TYPE_KPROBE = 2, + DYNEVENT_TYPE_NONE = 3, }; -struct regulator_err_state; +struct dynevent_cmd; -struct regulator_irq_data { - struct regulator_err_state *states; - int num_states; - void *data; - long opaque; -}; +typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *); -struct regulator_err_state { - struct regulator_dev *rdev; - unsigned long notifs; - unsigned long errors; - int possible_errs; +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 regulator_notifier_match { - struct regulator *regulator; - struct notifier_block *nb; +struct dynevent_arg { + const char *str; + char separator; }; -enum mrq_reset_commands { - CMD_RESET_ASSERT = 1, - CMD_RESET_DEASSERT = 2, - CMD_RESET_MODULE = 3, - CMD_RESET_GET_MAX_ID = 4, - CMD_RESET_MAX = 5, -}; +typedef int (*dynevent_check_arg_fn_t)(void *); -struct mrq_reset_request { - uint32_t cmd; - uint32_t reset_id; +struct dynevent_arg_pair { + const char *lhs; + const char *rhs; + char operator; + char separator; }; -struct tty_audit_buf { - struct mutex mutex; - dev_t dev; - bool icanon; - size_t valid; - unsigned char *data; +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; }; -enum dma_rx_status { - DMA_RX_START = 0, - DMA_RX_RUNNING = 1, - DMA_RX_SHUTDOWN = 2, +enum bpf_cgroup_storage_type { + BPF_CGROUP_STORAGE_SHARED = 0, + BPF_CGROUP_STORAGE_PERCPU = 1, + __BPF_CGROUP_STORAGE_MAX = 2, }; -enum { - MTK_UART_FC_NONE = 0, - MTK_UART_FC_SW = 1, - MTK_UART_FC_HW = 2, +struct bpf_cpumask { + cpumask_t cpumask; + refcount_t usage; }; -struct mtk8250_data { - int line; - unsigned int rx_pos; - unsigned int clk_count; - struct clk *uart_clk; - struct clk *bus_clk; - struct uart_8250_dma *dma; - enum dma_rx_status rx_status; - int rx_wakeup_irq; +enum mod_mem_type { + MOD_TEXT = 0, + MOD_DATA = 1, + MOD_RODATA = 2, + MOD_RO_AFTER_INIT = 3, + MOD_INIT_TEXT = 4, + MOD_INIT_DATA = 5, + MOD_INIT_RODATA = 6, + MOD_MEM_NUM_TYPES = 7, + MOD_INVALID = -1, }; -struct stm32_rng_private { - struct hwrng rng; - void *base; - struct clk *clk; - struct reset_control *rst; - bool ced; +struct static_key_deferred { + struct static_key key; + unsigned long timeout; + struct delayed_work work; }; -enum acpi_predicate { - all_versions = 0, - less_than_or_equal = 1, - equal = 2, - greater_than_or_equal = 3, +struct static_key_mod { + struct static_key_mod *next; + struct jump_entry *entries; + struct module *mod; }; -struct acpi_platform_list { - char oem_id[7]; - char oem_table_id[9]; - u32 oem_revision; - char *table; - enum acpi_predicate pred; - char *reason; - u32 data; -}; +typedef void (*btf_trace_kmem_cache_alloc)(void *, unsigned long, const void *, struct kmem_cache *, gfp_t, int); -struct qcom_smmu_config; +typedef void (*btf_trace_kmalloc)(void *, unsigned long, const void *, size_t, size_t, gfp_t, int); -struct qcom_smmu_match_data { - const struct qcom_smmu_config *cfg; - const struct arm_smmu_impl *impl; - const struct arm_smmu_impl *adreno_impl; -}; +typedef void (*btf_trace_kfree)(void *, unsigned long, const void *); -struct qcom_smmu_config { - const u32 *reg_offset; -}; +typedef void (*btf_trace_kmem_cache_free)(void *, unsigned long, const void *, const struct kmem_cache *); -struct qcom_smmu { - struct arm_smmu_device smmu; - const struct qcom_smmu_config *cfg; - bool bypass_quirk; - u8 bypass_cbndx; - u32 stall_enabled; -}; +typedef void (*btf_trace_mm_page_free)(void *, struct page *, unsigned int); -struct adreno_smmu_fault_info; +typedef void (*btf_trace_mm_page_free_batched)(void *, struct page *); -struct adreno_smmu_priv { - const void *cookie; - const struct io_pgtable_cfg * (*get_ttbr1_cfg)(const void *); - int (*set_ttbr0_cfg)(const void *, const struct io_pgtable_cfg *); - void (*get_fault_info)(const void *, struct adreno_smmu_fault_info *); - void (*set_stall)(const void *, bool); - void (*resume_translation)(const void *, bool); -}; +typedef void (*btf_trace_mm_page_alloc)(void *, struct page *, unsigned int, gfp_t, int); -struct adreno_smmu_fault_info { - u64 far; - u64 ttbr0; - u32 contextidr; - u32 fsr; - u32 fsynr0; - u32 fsynr1; - u32 cbfrsynra; -}; +typedef void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int, int); -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; -}; +typedef void (*btf_trace_mm_page_pcpu_drain)(void *, struct page *, unsigned int, int); -struct regmap_debugfs_node { - struct regmap *map; - struct list_head link; -}; +typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int); -struct regmap_debugfs_off_cache { - struct list_head list; - off_t min; - off_t max; - unsigned int base_reg; - unsigned int max_reg; +typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int); + +struct kmalloc_info_struct { + const char *name[4]; + unsigned int size; }; -enum { - MT6360_SLAVE_TCPC = 0, - MT6360_SLAVE_PMIC = 1, - MT6360_SLAVE_LDO = 2, - MT6360_SLAVE_PMU = 3, - MT6360_SLAVE_MAX = 4, +enum slab_state { + DOWN = 0, + PARTIAL = 1, + PARTIAL_NODE = 2, + UP = 3, + FULL = 4, }; -struct mt6360_ddata { - struct i2c_client *i2c[4]; - struct device *dev; - struct regmap *regmap; - struct regmap_irq_chip_data *irq_data; - unsigned int chip_rev; - u8 crc8_tbl[256]; +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 pata_platform_info { - unsigned int ioport_shift; +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 nand_flash_dev { - char *name; - union { - struct { - uint8_t mfr_id; - uint8_t dev_id; - }; - uint8_t id[8]; - }; - unsigned int pagesize; - unsigned int chipsize; - unsigned int erasesize; - unsigned int options; - uint16_t id_len; - uint16_t oobsize; - struct { - uint16_t strength_ds; - uint16_t step_ds; - } ecc; +struct trace_event_raw_kfree { + struct trace_entry ent; + unsigned long call_site; + const void *ptr; + char __data[0]; }; -struct virtnet_stat_desc { - char desc[32]; - size_t offset; +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 send_queue; +struct trace_event_raw_mm_page_free { + struct trace_entry ent; + unsigned long pfn; + unsigned int order; + char __data[0]; +}; -struct receive_queue; +struct trace_event_raw_mm_page_free_batched { + struct trace_entry ent; + unsigned long pfn; + char __data[0]; +}; -struct control_buf; +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 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 trace_event_raw_mm_page { + struct trace_entry ent; + unsigned long pfn; + unsigned int order; + int migratetype; + int percpu_refill; + char __data[0]; }; -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 trace_event_raw_mm_page_pcpu_drain { + struct trace_entry ent; + unsigned long pfn; + unsigned int order; + int migratetype; + char __data[0]; }; -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 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 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 trace_event_raw_rss_stat { + struct trace_entry ent; + unsigned int mm_id; + unsigned int curr; + int member; + long size; + char __data[0]; }; -struct ewma_pkt_len { - unsigned long internal; +struct trace_event_data_offsets_kmem_cache_free { + u32 name; }; -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: 64; - long: 64; - struct xdp_rxq_info xdp_rxq; +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 virtio_net_ctrl_hdr { - __u8 class; - __u8 cmd; +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; }; -typedef __u8 virtio_net_ctrl_ack; +struct trace_event_data_offsets_kmem_cache_alloc {}; -struct virtio_net_ctrl_mq { - __virtio16 virtqueue_pairs; -}; +struct trace_event_data_offsets_kmalloc {}; -typedef __u64 __virtio64; +struct trace_event_data_offsets_kfree {}; -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 trace_event_data_offsets_mm_page_free {}; -struct virtio_net_ctrl_coal_tx { - __le32 tx_max_packets; - __le32 tx_usecs; -}; +struct trace_event_data_offsets_mm_page_free_batched {}; -struct virtio_net_ctrl_coal_rx { - __le32 rx_max_packets; - __le32 rx_usecs; -}; +struct trace_event_data_offsets_mm_page_alloc {}; -struct control_buf { - struct virtio_net_ctrl_hdr hdr; - virtio_net_ctrl_ack status; - struct virtio_net_ctrl_mq mq; - u8 promisc; - u8 allmulti; - __virtio16 vid; - __virtio64 offloads; - struct virtio_net_ctrl_rss rss; - struct virtio_net_ctrl_coal_tx coal_tx; - struct virtio_net_ctrl_coal_rx coal_rx; -}; +struct trace_event_data_offsets_mm_page {}; -struct virtio_net_hdr { - __u8 flags; - __u8 gso_type; - __virtio16 hdr_len; - __virtio16 gso_size; - __virtio16 csum_start; - __virtio16 csum_offset; -}; +struct trace_event_data_offsets_mm_page_pcpu_drain {}; -struct virtio_net_hdr_mrg_rxbuf { - struct virtio_net_hdr hdr; - __virtio16 num_buffers; -}; +struct trace_event_data_offsets_mm_page_alloc_extfrag {}; -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 trace_event_data_offsets_rss_stat {}; -struct virtio_net_hdr_v1_hash { - struct virtio_net_hdr_v1 hdr; - __le32 hash_value; - __le16 hash_report; - __le16 padding; -}; +typedef void (*btf_trace_alloc_vmap_area)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int); -struct flow_keys_basic { - struct flow_dissector_key_control control; - struct flow_dissector_key_basic basic; -}; +typedef void (*btf_trace_purge_vmap_area_lazy)(void *, unsigned long, unsigned long, unsigned int); -struct virtio_net_ctrl_mac { - __virtio32 entries; - __u8 macs[0]; -}; +typedef void (*btf_trace_free_vmap_area_noflush)(void *, unsigned long, unsigned long, unsigned long); -enum { - e1000_10_half = 0, - e1000_10_full = 1, - e1000_100_half = 2, - e1000_100_full = 3, +struct vfree_deferred { + struct llist_head list; + struct work_struct wq; }; -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 vmap_block_queue { + spinlock_t lock; + struct list_head free; + struct xarray vmap_blocks; }; -typedef enum { - e1000_downshift_normal = 0, - e1000_downshift_activated = 1, - e1000_downshift_undefined = 255, -} e1000_downshift; - -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_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_undefined___3 = 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___3 = 15, -} e1000_mac_type; - -typedef enum { - e1000_phy_m88___3 = 0, - e1000_phy_igp___3 = 1, - e1000_phy_8211 = 2, - e1000_phy_8201 = 3, - e1000_phy_undefined = 255, -} e1000_phy_type; - -typedef enum { - e1000_media_type_copper___2 = 0, - e1000_media_type_fiber___2 = 1, - e1000_media_type_internal_serdes___2 = 2, - e1000_num_media_types___2 = 3, -} e1000_media_type; - -typedef enum { - E1000_FC_NONE = 0, - E1000_FC_RX_PAUSE = 1, - E1000_FC_TX_PAUSE = 2, - E1000_FC_FULL = 3, - E1000_FC_DEFAULT = 255, -} e1000_fc_type; - -typedef enum { - e1000_bus_speed_unknown___2 = 0, - e1000_bus_speed_33___2 = 1, - e1000_bus_speed_66___2 = 2, - e1000_bus_speed_100___2 = 3, - e1000_bus_speed_120___2 = 4, - e1000_bus_speed_133___2 = 5, - e1000_bus_speed_reserved___2 = 6, -} e1000_bus_speed; +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; +}; -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; +enum fit_type { + NOTHING_FIT = 0, + FL_FIT_TYPE = 1, + LE_FIT_TYPE = 2, + RE_FIT_TYPE = 3, + NE_FIT_TYPE = 4, +}; -typedef enum { - e1000_bus_type_unknown___2 = 0, - e1000_bus_type_pci___2 = 1, - e1000_bus_type_pcix___2 = 2, - e1000_bus_type_reserved___2 = 3, -} e1000_bus_type; +typedef unsigned int kasan_vmalloc_flags_t; -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 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 e1000_eeprom_info { - e1000_eeprom_type type; - u16 word_size; - u16 opcode_bits; - u16 address_bits; - u16 delay_usec; - u16 page_size; +struct trace_event_raw_purge_vmap_area_lazy { + struct trace_entry ent; + unsigned long start; + unsigned long end; + unsigned int npurged; + char __data[0]; }; -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; +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]; +}; -typedef enum { - e1000_ffe_config_enabled = 0, - e1000_ffe_config_active = 1, - e1000_ffe_config_blocked = 2, -} e1000_ffe_config; +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 enum { - e1000_smart_speed_default___2 = 0, - e1000_smart_speed_on___2 = 1, - e1000_smart_speed_off___2 = 2, -} e1000_smart_speed; +struct trace_event_data_offsets_alloc_vmap_area {}; -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 trace_event_data_offsets_purge_vmap_area_lazy {}; -struct e1000_shadow_ram___2; +struct trace_event_data_offsets_free_vmap_area_noflush {}; -struct e1000_hw___4 { - 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 pseudo_fs_context { + const struct super_operations *ops; + const struct xattr_handler * const *xattr; + const struct dentry_operations *dops; + unsigned long magic; }; -struct e1000_shadow_ram___2 { - u16 eeprom_word; - bool modified; +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, }; -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_polarity_reversal_enabled = 0, - e1000_polarity_reversal_disabled = 1, - e1000_polarity_reversal_undefined = 255, -} e1000_polarity_reversal; - -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 dnotify_struct; -struct e1000_phy_info___3 { - e1000_cable_length cable_length; - e1000_10bt_ext_dist_enable extended_10bt_distance; - e1000_rev_polarity cable_polarity; - e1000_downshift downshift; - e1000_polarity_reversal polarity_correction; - e1000_auto_x_mode mdix_mode; - e1000_1000t_rx_status local_rx; - e1000_1000t_rx_status remote_rx; +struct dnotify_mark { + struct fsnotify_mark fsn_mark; + struct dnotify_struct *dn; }; -struct k3_mdio_soc_data { - bool manual_mode; +struct dnotify_struct { + struct dnotify_struct *dn_next; + __u32 dn_mask; + int dn_fd; + struct file *dn_filp; + fl_owner_t dn_owner; }; -struct mdio_platform_data { - unsigned long bus_freq; +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 davinci_mdio_of_param { - int autosuspend_delay_ms; - bool manual_mode; +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 davinci_mdio_regs; - -struct davinci_mdio_data { - struct mdio_platform_data pdata; - struct mdiobb_ctrl bb_ctrl; - struct davinci_mdio_regs *regs; - struct clk *clk; - struct device *dev; - struct mii_bus *bus; - bool active_in_suspend; - unsigned long access_time; - bool skip_scan; - u32 clk_div; - bool manual_mode; +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 davinci_mdio_regs { - u32 version; - u32 control; - u32 alive; - u32 link; - u32 linkintraw; - u32 linkintmasked; - u32 __reserved_0[2]; - u32 userintraw; - u32 userintmasked; - u32 userintmaskset; - u32 userintmaskclr; - u32 manualif; - u32 poll; - u32 __reserved_1[18]; - struct { - u32 access; - u32 physel; - } user[0]; +struct page_region { + __u64 start; + __u64 end; + __u64 categories; }; -struct vfio_pci_core_device; - -struct perm_bits { - u8 *virt; - u8 *write; - int (*readfn)(struct vfio_pci_core_device *, int, int, struct perm_bits *, int, __le32 *); - int (*writefn)(struct vfio_pci_core_device *, int, int, struct perm_bits *, int, __le32); +struct proc_maps_private { + struct inode *inode; + struct task_struct *task; + struct mm_struct *mm; + struct vma_iterator iter; + struct mempolicy *task_mempolicy; }; -struct vfio_pci_region; - -struct pci_saved_state; - -struct vfio_pci_vf_token; +struct pm_scan_arg { + __u64 size; + __u64 flags; + __u64 start; + __u64 end; + __u64 walk_end; + __u64 vec; + __u64 vec_len; + __u64 max_pages; + __u64 category_inverted; + __u64 category_mask; + __u64 category_anyof_mask; + __u64 return_mask; +}; + +struct pagemap_scan_private { + struct pm_scan_arg arg; + unsigned long masks_of_interest; + unsigned long cur_vma_category; + struct page_region *vec_buf; + unsigned long vec_buf_len; + unsigned long vec_buf_index; + unsigned long found_pages; + struct page_region __attribute__((btf_type_tag("user"))) *vec_out; +}; -struct vfio_pci_core_device { - struct vfio_device vdev; - struct pci_dev *pdev; - void *barmap[6]; - bool bar_mmap_supported[6]; - u8 *pci_config_map; - u8 *vconfig; - struct perm_bits *msi_perm; - spinlock_t irqlock; - struct mutex igate; - struct xarray ctx; - int irq_type; - int num_regions; - struct vfio_pci_region *region; - u8 msi_qmax; - u8 msix_bar; - u16 msix_size; - u32 msix_offset; - u32 rbar[7]; - bool has_dyn_msix: 1; - bool pci_2_3: 1; - bool virq_disabled: 1; - bool reset_works: 1; - bool extended_caps: 1; - bool bardirty: 1; - bool has_vga: 1; - bool needs_reset: 1; - bool nointx: 1; - bool needs_pm_restore: 1; - bool pm_intx_masked: 1; - bool pm_runtime_engaged: 1; - struct pci_saved_state *pci_saved_state; - struct pci_saved_state *pm_save; - int ioeventfds_nr; - struct eventfd_ctx *err_trigger; - struct eventfd_ctx *req_trigger; - struct eventfd_ctx *pm_wake_eventfd_ctx; - struct list_head dummy_resources_list; - struct mutex ioeventfds_lock; - struct list_head ioeventfds_list; - struct vfio_pci_vf_token *vf_token; - struct list_head sriov_pfs_item; - struct vfio_pci_core_device *sriov_pf_core_dev; - struct notifier_block nb; - struct mutex vma_lock; - struct list_head vma_list; - struct rw_semaphore memory_lock; +struct mem_size_stats { + unsigned long resident; + unsigned long shared_clean; + unsigned long shared_dirty; + unsigned long private_clean; + unsigned long private_dirty; + unsigned long referenced; + unsigned long anonymous; + unsigned long lazyfree; + unsigned long anonymous_thp; + unsigned long shmem_thp; + unsigned long file_thp; + unsigned long swap; + unsigned long shared_hugetlb; + unsigned long private_hugetlb; + unsigned long ksm; + u64 pss; + u64 pss_anon; + u64 pss_file; + u64 pss_shmem; + u64 pss_dirty; + u64 pss_locked; + u64 swap_pss; }; -struct vfio_pci_regops; +typedef struct { + u64 pme; +} pagemap_entry_t; -struct vfio_pci_region { - u32 type; - u32 subtype; - const struct vfio_pci_regops *ops; - void *data; - size_t size; - u32 flags; +struct pagemapread { + int pos; + int len; + pagemap_entry_t *buffer; + bool show_pfn; }; -struct vfio_pci_regops { - ssize_t (*rw)(struct vfio_pci_core_device *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *, bool); - void (*release)(struct vfio_pci_core_device *, struct vfio_pci_region *); - int (*mmap)(struct vfio_pci_core_device *, struct vfio_pci_region *, struct vm_area_struct *); - int (*add_capability)(struct vfio_pci_core_device *, struct vfio_pci_region *, struct vfio_info_cap *); +struct clear_refs_private { + enum clear_refs_types type; }; -enum { - VFIO_PCI_INTX_IRQ_INDEX = 0, - VFIO_PCI_MSI_IRQ_INDEX = 1, - VFIO_PCI_MSIX_IRQ_INDEX = 2, - VFIO_PCI_ERR_IRQ_INDEX = 3, - VFIO_PCI_REQ_IRQ_INDEX = 4, - VFIO_PCI_NUM_IRQS = 5, +struct numa_maps { + unsigned long pages; + unsigned long anon; + unsigned long active; + unsigned long writeback; + unsigned long mapcount_max; + unsigned long dirty; + unsigned long swapcache; + unsigned long node[16]; }; -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 numa_maps_private { + struct proc_maps_private proc_maps; + struct numa_maps md; }; -struct tegra_xusb_mbox_regs { - u16 cmd; - u16 data_in; - u16 data_out; - u16 owner; - u16 smi_intr; +enum criteria { + CR_POWER2_ALIGNED = 0, + CR_GOAL_LEN_FAST = 1, + CR_BEST_AVAIL_LEN = 2, + CR_GOAL_LEN_SLOW = 3, + CR_ANY_FREE = 4, + EXT4_MB_NUM_CRS = 5, }; -struct tegra_xusb_phy_type; - -struct tegra_xusb_context_soc; - -struct tegra_xusb_soc_ops; - -struct tegra_xusb_soc { - const char *firmware; - const char * const *supply_names; - unsigned int num_supplies; - const struct tegra_xusb_phy_type *phy_types; - unsigned int num_types; - const struct tegra_xusb_context_soc *context; - struct { - struct { - unsigned int offset; - unsigned int count; - } usb2; - struct { - unsigned int offset; - unsigned int count; - } ulpi; - struct { - unsigned int offset; - unsigned int count; - } hsic; - struct { - unsigned int offset; - unsigned int count; - } usb3; - } ports; - struct tegra_xusb_mbox_regs mbox; - const struct tegra_xusb_soc_ops *ops; - bool scale_ss_clock; - bool has_ipfs; - bool lpm_support; - bool otg_reset_sspi; - bool has_bar2; +enum { + MB_INODE_PA = 0, + MB_GROUP_PA = 1, }; -struct tegra_xusb_phy_type { - const char *name; - unsigned int num; +enum blk_default_limits { + BLK_MAX_SEGMENTS = 128, + BLK_SAFE_MAX_SECTORS = 255, + BLK_MAX_SEGMENT_SIZE = 65536, + BLK_SEG_BOUNDARY_MASK = 4294967295, }; -struct tegra_xusb_context_soc { - struct { - const unsigned int *offsets; - unsigned int num_offsets; - } ipfs; - struct { - const unsigned int *offsets; - unsigned int num_offsets; - } fpci; +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 tegra_xusb; +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 tegra_xusb_soc_ops { - u32 (*mbox_reg_readl)(struct tegra_xusb *, unsigned int); - void (*mbox_reg_writel)(struct tegra_xusb *, u32, unsigned int); - u32 (*csb_reg_readl)(struct tegra_xusb *, unsigned int); - void (*csb_reg_writel)(struct tegra_xusb *, u32, unsigned int); +struct sg { + struct ext4_group_info info; + ext4_grpblk_t counters[18]; }; -struct tegra_xusb_padctl; +typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); -struct tegra_xusb_context { - u32 *ipfs; - u32 *fpci; +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, }; -struct tegra_xusb { - struct device *dev; - void *regs; - struct usb_hcd *hcd; - struct mutex lock; - int xhci_irq; - int mbox_irq; - int padctl_irq; - void *ipfs_base; - void *fpci_base; - void *bar2_base; - struct resource *bar2; - const struct tegra_xusb_soc *soc; - struct regulator_bulk_data *supplies; - struct tegra_xusb_padctl *padctl; - struct clk *host_clk; - struct clk *falcon_clk; - struct clk *ss_clk; - struct clk *ss_src_clk; - struct clk *hs_src_clk; - struct clk *fs_src_clk; - struct clk *pll_u_480m; - struct clk *clk_m; - struct clk *pll_e; - struct reset_control *host_rst; - struct reset_control *ss_rst; - struct device *genpd_dev_host; - struct device *genpd_dev_ss; - bool use_genpd; - struct phy **phys; - unsigned int num_phys; - struct usb_phy **usbphy; - unsigned int num_usb_phys; - int otg_usb2_port; - int otg_usb3_port; - bool host_mode; - struct notifier_block id_nb; - struct work_struct id_work; - struct { - size_t size; - void *virt; - dma_addr_t phys; - } fw; - bool suspended; - struct tegra_xusb_context context; - u8 lp0_utmi_pad_mask; +enum nfs_ftype { + NFNON = 0, + NFREG = 1, + NFDIR = 2, + NFBLK = 3, + NFCHR = 4, + NFLNK = 5, + NFSOCK = 6, + NFBAD = 7, + NFFIFO = 8, }; -enum tegra_xusb_mbox_cmd { - MBOX_CMD_MSG_ENABLED = 1, - MBOX_CMD_INC_FALC_CLOCK = 2, - MBOX_CMD_DEC_FALC_CLOCK = 3, - MBOX_CMD_INC_SSPI_CLOCK = 4, - MBOX_CMD_DEC_SSPI_CLOCK = 5, - MBOX_CMD_SET_BW = 6, - MBOX_CMD_SET_SS_PWR_GATING = 7, - MBOX_CMD_SET_SS_PWR_UNGATING = 8, - MBOX_CMD_SAVE_DFE_CTLE_CTX = 9, - MBOX_CMD_AIRPLANE_MODE_ENABLED = 10, - MBOX_CMD_AIRPLANE_MODE_DISABLED = 11, - MBOX_CMD_START_HSIC_IDLE = 12, - MBOX_CMD_STOP_HSIC_IDLE = 13, - MBOX_CMD_DBC_WAKE_STACK = 14, - MBOX_CMD_HSIC_PRETEND_CONNECT = 15, - MBOX_CMD_RESET_SSPI = 16, - MBOX_CMD_DISABLE_SS_LFPS_DETECTION = 17, - MBOX_CMD_ENABLE_SS_LFPS_DETECTION = 18, - MBOX_CMD_MAX = 19, - MBOX_CMD_ACK = 128, - MBOX_CMD_NAK = 129, +enum nfs2_ftype { + NF2NON = 0, + NF2REG = 1, + NF2DIR = 2, + NF2BLK = 3, + NF2CHR = 4, + NF2LNK = 5, + NF2SOCK = 6, + NF2BAD = 7, + NF2FIFO = 8, }; -struct tegra_xusb_fw_header { - __le32 boot_loadaddr_in_imem; - __le32 boot_codedfi_offset; - __le32 boot_codetag; - __le32 boot_codesize; - __le32 phys_memaddr; - __le16 reqphys_memsize; - __le16 alloc_phys_memsize; - __le32 rodata_img_offset; - __le32 rodata_section_start; - __le32 rodata_section_end; - __le32 main_fnaddr; - __le32 fwimg_cksum; - __le32 fwimg_created_time; - __le32 imem_resident_start; - __le32 imem_resident_end; - __le32 idirect_start; - __le32 idirect_end; - __le32 l2_imem_start; - __le32 l2_imem_end; - __le32 version_id; - u8 init_ddirect; - u8 reserved[3]; - __le32 phys_addr_log_buffer; - __le32 total_log_entries; - __le32 dequeue_ptr; - __le32 dummy_var[2]; - __le32 fwimg_len; - u8 magic[8]; - __le32 ss_low_power_entry_timeout; - u8 num_hsic_port; - u8 padding[139]; +struct nfs_diropok { + struct nfs_fh *fh; + struct nfs_fattr *fattr; }; -typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); - -struct tegra_xusb_mbox_msg { - u32 cmd; - u32 data; +struct nfs_readdirargs { + struct nfs_fh *fh; + __u32 cookie; + unsigned int count; + struct page **pages; }; -enum input_clock_type { - INPUT_CLK_REAL = 0, - INPUT_CLK_MONO = 1, - INPUT_CLK_BOOT = 2, - INPUT_CLK_MAX = 3, +struct nfs2_fsstat { + __u32 tsize; + __u32 bsize; + __u32 blocks; + __u32 bfree; + __u32 bavail; }; -union input_seq_state { - struct { - unsigned short pos; - bool mutex_acquired; - }; - void *p; +struct nfs_sattrargs { + struct nfs_fh *fh; + struct iattr *sattr; }; -struct input_devres { - struct input_dev *input; +struct nfs_diropargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; }; -struct sun6i_rtc_clk_data; - -struct sun6i_rtc_dev { - struct rtc_device *rtc; - const struct sun6i_rtc_clk_data *data; - void *base; - int irq; - time64_t alarm; - unsigned long flags; - struct clk_hw hw; - struct clk_hw *int_osc; - struct clk *losc; - struct clk *ext_losc; - spinlock_t lock; +struct nfs_readlinkargs { + struct nfs_fh *fh; + unsigned int pgbase; + unsigned int pglen; + struct page **pages; }; -struct sun6i_rtc_clk_data { - unsigned long rc_osc_rate; - unsigned int fixed_prescaler: 16; - unsigned int has_prescaler: 1; - unsigned int has_out_clk: 1; - unsigned int has_losc_en: 1; - unsigned int has_auto_swt: 1; +struct nfs_createargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + struct iattr *sattr; }; -enum { - CMD_I2C_XFER = 1, +struct nfs_linkargs { + struct nfs_fh *fromfh; + struct nfs_fh *tofh; + const char *toname; + unsigned int tolen; }; -struct tegra_bpmp_i2c { - struct i2c_adapter adapter; - struct device *dev; - struct tegra_bpmp *bpmp; - unsigned int bus; +struct nfs_symlinkargs { + struct nfs_fh *fromfh; + const char *fromname; + unsigned int fromlen; + struct page **pages; + unsigned int pathlen; + struct iattr *sattr; }; -struct cmd_i2c_xfer_request { - uint32_t bus_id; - uint32_t data_size; - uint8_t data_buf[108]; +enum nfs4_session_state { + NFS4_SESSION_INITING = 0, + NFS4_SESSION_ESTABLISHED = 1, }; -struct mrq_i2c_request { - uint32_t cmd; - struct cmd_i2c_xfer_request xfer; +enum nfs4_slot_tbl_state { + NFS4_SLOT_TBL_DRAINING = 0, }; -struct cmd_i2c_xfer_response { - uint32_t data_size; - uint8_t data_buf[116]; +struct nlm_file; + +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 mrq_i2c_response { - struct cmd_i2c_xfer_response xfer; +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 scmi_sensor_info; +typedef int (*nlm_host_match_fn_t)(void *, struct nlm_host *); -struct scmi_sensor_reading; +enum { + Opt_direct = 0, + Opt_fd = 1, + Opt_gid = 2, + Opt_ignore = 3, + Opt_indirect = 4, + Opt_maxproto = 5, + Opt_minproto = 6, + Opt_offset = 7, + Opt_pgrp = 8, + Opt_strictexpire = 9, + Opt_uid = 10, +}; -struct scmi_sensor_proto_ops { - int (*count_get)(const struct scmi_protocol_handle *); - const struct scmi_sensor_info * (*info_get)(const struct scmi_protocol_handle *, u32); - int (*trip_point_config)(const struct scmi_protocol_handle *, u32, u8, u64); - int (*reading_get)(const struct scmi_protocol_handle *, u32, u64 *); - int (*reading_get_timestamped)(const struct scmi_protocol_handle *, u32, u8, struct scmi_sensor_reading *); - int (*config_get)(const struct scmi_protocol_handle *, u32, u32 *); - int (*config_set)(const struct scmi_protocol_handle *, u32, u32); -}; - -struct scmi_sensor_intervals_info { - bool segmented; - unsigned int count; - unsigned int *desc; - unsigned int prealloc_pool[16]; -}; - -struct scmi_range_attrs { - long long min_range; - long long max_range; -}; - -struct scmi_sensor_axis_info; +struct autofs_wait_queue; -struct scmi_sensor_info { - unsigned int id; +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; - int scale; - unsigned int num_trip_points; - bool async; - bool update; - bool timestamped; - int tstamp_scale; - unsigned int num_axis; - struct scmi_sensor_axis_info *axis; - struct scmi_sensor_intervals_info intervals; - unsigned int sensor_config; - char name[64]; - bool extended_scalar_attrs; - unsigned int sensor_power; - unsigned int resolution; - int exponent; - struct scmi_range_attrs scalar_attrs; + struct super_block *sb; + struct mutex wq_mutex; + struct mutex pipe_mutex; + spinlock_t fs_lock; + struct autofs_wait_queue *queues; + spinlock_t lookup_lock; + struct list_head active_list; + struct list_head expiring_list; + struct callback_head rcu; }; -struct scmi_sensor_axis_info { - unsigned int id; - unsigned int type; - int scale; - char name[64]; - bool extended_attrs; - unsigned int resolution; - int exponent; - struct scmi_range_attrs attrs; -}; +typedef unsigned int autofs_wqt_t; -struct scmi_sensor_reading { - long long value; - unsigned long long timestamp; +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; }; -enum scmi_sensor_class { - NONE = 0, - UNSPEC = 1, - TEMPERATURE_C = 2, - TEMPERATURE_F = 3, - TEMPERATURE_K = 4, - VOLTAGE = 5, - CURRENT = 6, - POWER = 7, - ENERGY = 8, - CHARGE = 9, - VOLTAMPERE = 10, - NITS = 11, - LUMENS = 12, - LUX = 13, - CANDELAS = 14, - KPA = 15, - PSI = 16, - NEWTON = 17, - CFM = 18, - RPM = 19, - HERTZ = 20, - SECS = 21, - MINS = 22, - HOURS = 23, - DAYS = 24, - WEEKS = 25, - MILS = 26, - INCHES = 27, - FEET = 28, - CUBIC_INCHES = 29, - CUBIC_FEET = 30, - METERS = 31, - CUBIC_CM = 32, - CUBIC_METERS = 33, - LITERS = 34, - FLUID_OUNCES = 35, - RADIANS = 36, - STERADIANS = 37, - REVOLUTIONS = 38, - CYCLES = 39, - GRAVITIES = 40, - OUNCES = 41, - POUNDS = 42, - FOOT_POUNDS = 43, - OUNCE_INCHES = 44, - GAUSS = 45, - GILBERTS = 46, - HENRIES = 47, - FARADS = 48, - OHMS = 49, - SIEMENS = 50, - MOLES = 51, - BECQUERELS = 52, - PPM = 53, - DECIBELS = 54, - DBA = 55, - DBC = 56, - GRAYS = 57, - SIEVERTS = 58, - COLOR_TEMP_K = 59, - BITS = 60, - BYTES = 61, - WORDS = 62, - DWORDS = 63, - QWORDS = 64, - PERCENTAGE = 65, - PASCALS = 66, - COUNTS = 67, - GRAMS = 68, - NEWTON_METERS = 69, - HITS = 70, - MISSES = 71, - RETRIES = 72, - OVERRUNS = 73, - UNDERRUNS = 74, - COLLISIONS = 75, - PACKETS = 76, - MESSAGES = 77, - CHARS = 78, - ERRORS = 79, - CORRECTED_ERRS = 80, - UNCORRECTABLE_ERRS = 81, - SQ_MILS = 82, - SQ_INCHES = 83, - SQ_FEET = 84, - SQ_CM = 85, - SQ_METERS = 86, - RADIANS_SEC = 87, - BPM = 88, - METERS_SEC_SQUARED = 89, - METERS_SEC = 90, - CUBIC_METERS_SEC = 91, - MM_MERCURY = 92, - RADIANS_SEC_SQUARED = 93, - OEM_UNIT = 255, +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 scmi_thermal_sensor { - const struct scmi_protocol_handle *ph; - const struct scmi_sensor_info *info; +struct autofs_fs_context { + kuid_t uid; + kgid_t gid; + int pgrp; + bool pgrp_set; }; -struct scmi_sensors { - const struct scmi_protocol_handle *ph; - const struct scmi_sensor_info **info[10]; +enum { + Opt_uid___2 = 0, + Opt_gid___2 = 1, }; -struct s3c2410_wdt_variant { - int disable_reg; - int mask_reset_reg; - bool mask_reset_inv; - int mask_bit; - int rst_stat_reg; - int rst_stat_bit; - int cnt_en_reg; - int cnt_en_bit; - u32 quirks; -}; +typedef u16 ucs2_char_t; -struct s3c2410_wdt { - struct device *dev; - struct clk *bus_clk; - struct clk *src_clk; - void *reg_base; - unsigned int count; +struct key_user { + struct rb_node node; + struct mutex cons_lock; spinlock_t lock; - unsigned long wtcon_save; - unsigned long wtdat_save; - struct watchdog_device wdt_device; - struct notifier_block freq_transition; - const struct s3c2410_wdt_variant *drv_data; - struct regmap *pmureg; + refcount_t usage; + atomic_t nkeys; + atomic_t nikeys; + kuid_t uid; + int qnkeys; + int qnbytes; }; -struct apple_soc_cpufreq_info { - u64 max_pstate; - u64 cur_pstate_mask; - u64 cur_pstate_shift; +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 apple_cpu_priv { - struct device *cpu_dev; - void *reg_base; - const struct apple_soc_cpufreq_info *info; +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, }; -typedef int tpl_parse_t(struct mmc_card *, struct sdio_func *, const unsigned char *, unsigned int); - -struct cis_tpl { - unsigned char code; - unsigned char min_size; - tpl_parse_t *parse; +enum key_state { + KEY_IS_UNINSTANTIATED = 0, + KEY_IS_POSITIVE = 1, }; -struct meson_mmc_data { - unsigned int tx_delay_mask; - unsigned int rx_delay_mask; - unsigned int always_on; - unsigned int adjust; - unsigned int irq_sdio_sleep; +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 sd_emmc_desc; - -struct meson_host { - struct device *dev; - const struct meson_mmc_data *data; - struct mmc_host *mmc; - struct mmc_command *cmd; - void *regs; - struct clk *mux_clk; - struct clk *mmc_clk; - unsigned long req_rate; - bool ddr; - bool dram_access_quirk; - struct pinctrl *pinctrl; - struct pinctrl_state *pins_clk_gate; - unsigned int bounce_buf_size; - void *bounce_buf; - void *bounce_iomem_buf; - dma_addr_t bounce_dma_addr; - struct sd_emmc_desc *descs; - dma_addr_t descs_dma_addr; - int irq; - bool needs_pre_post_req; - spinlock_t lock; +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 sd_emmc_desc { - u32 cmd_cfg; - u32 cmd_arg; - u32 cmd_data; - u32 cmd_resp; +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]; }; -enum stratix10_svc_command_code { - COMMAND_NOOP = 0, - COMMAND_RECONFIG = 1, - COMMAND_RECONFIG_DATA_SUBMIT = 2, - COMMAND_RECONFIG_DATA_CLAIM = 3, - COMMAND_RECONFIG_STATUS = 4, - COMMAND_RSU_STATUS = 10, - COMMAND_RSU_UPDATE = 11, - COMMAND_RSU_NOTIFY = 12, - COMMAND_RSU_RETRY = 13, - COMMAND_RSU_MAX_RETRY = 14, - COMMAND_RSU_DCMF_VERSION = 15, - COMMAND_RSU_DCMF_STATUS = 16, - COMMAND_FIRMWARE_VERSION = 17, - COMMAND_FCS_REQUEST_SERVICE = 20, - COMMAND_FCS_SEND_CERTIFICATE = 21, - COMMAND_FCS_GET_PROVISION_DATA = 22, - COMMAND_FCS_DATA_ENCRYPTION = 23, - COMMAND_FCS_DATA_DECRYPTION = 24, - COMMAND_FCS_RANDOM_NUMBER_GEN = 25, - COMMAND_POLL_SERVICE_STATUS = 40, - COMMAND_SMC_SVC_VERSION = 200, +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 kfifo { - union { - struct __kfifo kfifo; - unsigned char *type; - const unsigned char *const_type; - char (*rectype)[0]; - void *ptr; - const void *ptr_const; - }; - unsigned char buf[0]; +struct keyring_read_iterator_context { + size_t buflen; + size_t count; + key_serial_t *buffer; }; -typedef void svc_invoke_fn(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, struct arm_smccc_res *); - -struct stratix10_svc_chan; - -struct stratix10_svc_controller { - struct device *dev; - struct stratix10_svc_chan *chans; - int num_chans; - int num_active_client; - struct list_head node; - struct gen_pool *genpool; - struct task_struct *task; - struct kfifo svc_fifo; - struct completion complete_status; - spinlock_t svc_fifo_lock; - svc_invoke_fn *invoke_fn; -}; +struct sha512_state; -struct stratix10_svc_client; +typedef void sha512_block_fn(struct sha512_state *, const u8 *, int); -struct stratix10_svc_chan { - struct stratix10_svc_controller *ctrl; - struct stratix10_svc_client *scl; - char *name; - spinlock_t lock; +struct sha512_state { + u64 state[8]; + u64 count[2]; + u8 buf[128]; }; -struct stratix10_svc_cb_data; - -struct stratix10_svc_client { - struct device *dev; - void (*receive_cb)(struct stratix10_svc_client *, struct stratix10_svc_cb_data *); - void *priv; +enum bio_merge_status { + BIO_MERGE_OK = 0, + BIO_MERGE_NONE = 1, + BIO_MERGE_FAILED = 2, }; -struct stratix10_svc_cb_data { - u32 status; - void *kaddr1; - void *kaddr2; - void *kaddr3; -}; +struct sg_io_v4; -struct stratix10_svc_client_msg { - void *payload; - size_t payload_length; - void *payload_output; - size_t payload_length_output; - enum stratix10_svc_command_code command; - u64 arg[3]; -}; +typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, unsigned int); -struct stratix10_svc_command_config_type { - u32 flags; +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 stratix10_svc_data_mem { - void *vaddr; - phys_addr_t paddr; - size_t size; - struct list_head node; +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 stratix10_svc_sh_memory { - struct completion sync_complete; - unsigned long addr; - unsigned long size; - svc_invoke_fn *invoke_fn; +struct io_sync { + struct file *file; + loff_t len; + loff_t off; + int flags; + int mode; }; -struct stratix10_svc_data { - struct stratix10_svc_chan *chan; - phys_addr_t paddr; - size_t size; - phys_addr_t paddr_output; - size_t size_output; - u32 command; - u32 flag; - u64 arg[3]; +enum { + IO_WQ_BIT_EXIT = 0, }; -struct stratix10_svc { - struct platform_device *stratix10_svc_rsu; - struct platform_device *intel_svc_fcs; +enum { + IO_WORKER_F_UP = 1, + IO_WORKER_F_RUNNING = 2, + IO_WORKER_F_FREE = 4, + IO_WORKER_F_BOUND = 8, }; -struct apple_key_translation { - u16 from; - u16 to; - u8 flags; +enum { + IO_ACCT_STALLED_BIT = 0, }; -struct apple_non_apple_keyboard { - char *name; +enum { + IO_WQ_ACCT_BOUND = 0, + IO_WQ_ACCT_UNBOUND = 1, + IO_WQ_ACCT_NR = 2, }; -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, -}; +typedef struct io_wq_work *free_work_fn(struct io_wq_work *); -struct apple_sc_backlight; +typedef void io_wq_work_fn(struct io_wq_work *); -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 io_wq_acct { + unsigned int nr_workers; + unsigned int max_workers; + int index; + atomic_t nr_running; + raw_spinlock_t lock; + struct io_wq_work_list work_list; + unsigned long flags; }; -struct 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 io_wq { + unsigned long state; + free_work_fn *free_work; + io_wq_work_fn *do_work; + struct io_wq_hash *hash; + atomic_t worker_refs; + struct completion worker_done; + struct hlist_node cpuhp_node; + struct task_struct *task; + struct io_wq_acct acct[2]; + raw_spinlock_t lock; + struct hlist_nulls_head free_list; + struct list_head all_list; + struct wait_queue_entry wait; + struct io_wq_work *hash_tail[64]; + cpumask_var_t cpu_mask; }; -struct apple_backlight_config_report { - u8 report_id; - u8 version; - u16 backlight_off; - u16 backlight_on_min; - u16 backlight_on_max; +struct io_worker { + refcount_t ref; + unsigned int flags; + struct hlist_nulls_node nulls_node; + struct list_head all_list; + struct task_struct *task; + struct io_wq *wq; + struct io_wq_work *cur_work; + struct io_wq_work *next_work; + raw_spinlock_t lock; + struct completion ref_done; + unsigned long create_state; + struct callback_head create_work; + int create_index; + union { + struct callback_head rcu; + struct work_struct work; + }; }; -struct apple_backlight_set_report { - u8 report_id; - u8 version; - u16 backlight; - u16 rate; +struct io_cb_cancel_data { + work_cancel_fn *fn; + void *data; + int nr_running; + int nr_pending; + bool cancel_all; }; -struct led_init_data { - struct fwnode_handle *fwnode; - const char *default_label; - const char *devicename; - bool devname_mandatory; +struct online_data { + unsigned int cpu; + bool online; }; -struct mhu_link { - unsigned int irq; - void *tx_reg; - void *rx_reg; +struct io_wq_data { + struct io_wq_hash *hash; + struct task_struct *task; + io_wq_work_fn *do_work; + free_work_fn *free_work; }; -struct arm_mhu { - void *base; - struct mhu_link mlink[3]; - struct mbox_chan chan[3]; - struct mbox_controller mbox; -}; +typedef uint8_t U8; -struct fsl_ifc_global; +typedef struct { + U16 nextState; + BYTE nbAdditionalBits; + BYTE nbBits; + U32 baseValue; +} ZSTD_seqSymbol; -struct fsl_ifc_runtime; +typedef enum { + bt_raw = 0, + bt_rle = 1, + bt_compressed = 2, + bt_reserved = 3, +} blockType_e; -struct fsl_ifc_ctrl { - struct device *dev; - struct fsl_ifc_global *gregs; - struct fsl_ifc_runtime *rregs; - int irq; - int nand_irq; - spinlock_t lock; - void *nand; - int version; - int banks; - u32 nand_stat; - wait_queue_head_t nand_wait; - bool little_endian; -}; +typedef enum { + set_basic = 0, + set_rle = 1, + set_compressed = 2, + set_repeat = 3, +} symbolEncodingType_e; -struct fsl_ifc_global { - __be32 ifc_rev; - u32 res1[2]; - struct { - __be32 cspr_ext; - __be32 cspr; - u32 res2; - } cspr_cs[8]; - u32 res3[13]; - struct { - __be32 amask; - u32 res4[2]; - } amask_cs[8]; - u32 res5[12]; - struct { - __be32 csor; - __be32 csor_ext; - u32 res6; - } csor_cs[8]; - u32 res7[12]; - struct { - __be32 ftim[4]; - u32 res8[8]; - } ftim_cs[8]; - u32 res9[48]; - __be32 rb_stat; - __be32 rb_map; - __be32 wb_map; - __be32 ifc_gcr; - u32 res10[2]; - __be32 cm_evter_stat; - u32 res11[2]; - __be32 cm_evter_en; - u32 res12[2]; - __be32 cm_evter_intr_en; - u32 res13[2]; - __be32 cm_erattr0; - __be32 cm_erattr1; - u32 res14[2]; - __be32 ifc_ccr; - __be32 ifc_csr; - __be32 ddr_ccr_low; -}; +typedef enum { + ZSTD_lo_isRegularOffset = 0, + ZSTD_lo_isLongOffset = 1, +} ZSTD_longOffset_e; -struct fsl_ifc_nand { - __be32 ncfgr; - u32 res1[4]; - __be32 nand_fcr0; - __be32 nand_fcr1; - u32 res2[8]; - __be32 row0; - u32 res3; - __be32 col0; - u32 res4; - __be32 row1; - u32 res5; - __be32 col1; - u32 res6; - __be32 row2; - u32 res7; - __be32 col2; - u32 res8; - __be32 row3; - u32 res9; - __be32 col3; - u32 res10[36]; - __be32 nand_fbcr; - u32 res11; - __be32 nand_fir0; - __be32 nand_fir1; - __be32 nand_fir2; - u32 res12[16]; - __be32 nand_csel; - u32 res13; - __be32 nandseq_strt; - u32 res14; - __be32 nand_evter_stat; - u32 res15; - __be32 pgrdcmpl_evt_stat; - u32 res16[2]; - __be32 nand_evter_en; - u32 res17[2]; - __be32 nand_evter_intr_en; - __be32 nand_vol_addr_stat; - u32 res18; - __be32 nand_erattr0; - __be32 nand_erattr1; - u32 res19[16]; - __be32 nand_fsr; - u32 res20; - __be32 nand_eccstat[8]; - u32 res21[28]; - __be32 nanndcr; - u32 res22[2]; - __be32 nand_autoboot_trgr; - u32 res23; - __be32 nand_mdr; - u32 res24[28]; - __be32 nand_dll_lowcfg0; - __be32 nand_dll_lowcfg1; - u32 res25; - __be32 nand_dll_lowstat; - u32 res26[60]; -}; +typedef int16_t S16; -struct fsl_ifc_nor { - __be32 nor_evter_stat; - u32 res1[2]; - __be32 nor_evter_en; - u32 res2[2]; - __be32 nor_evter_intr_en; - u32 res3[2]; - __be32 nor_erattr0; - __be32 nor_erattr1; - __be32 nor_erattr2; - u32 res4[4]; - __be32 norcr; - u32 res5[239]; -}; +typedef struct { + U32 fastMode; + U32 tableLog; +} ZSTD_seqSymbol_header; -struct fsl_ifc_gpcm { - __be32 gpcm_evter_stat; - u32 res1[2]; - __be32 gpcm_evter_en; - u32 res2[2]; - __be32 gpcm_evter_intr_en; - u32 res3[2]; - __be32 gpcm_erattr0; - __be32 gpcm_erattr1; - __be32 gpcm_erattr2; - __be32 gpcm_stat; -}; +typedef __kernel_long_t __kernel_ptrdiff_t; -struct fsl_ifc_runtime { - struct fsl_ifc_nand ifc_nand; - struct fsl_ifc_nor ifc_nor; - struct fsl_ifc_gpcm ifc_gpcm; -}; +typedef __kernel_ptrdiff_t ptrdiff_t; -struct otpc_map { - u32 otpc_row_size; - u16 data_r_offset[4]; - u16 data_w_offset[4]; -}; +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; -struct otpc_priv { - struct device *dev; - void *base; - const struct otpc_map *map; - struct nvmem_config *config; -}; +typedef enum { + ZSTD_frame = 0, + ZSTD_skippableFrame = 1, +} ZSTD_frameType_e; -struct icc_bulk_data { - struct icc_path *path; - const char *name; - u32 avg_bw; - u32 peak_bw; -}; +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; -struct icc_bulk_devres { - struct icc_bulk_data *paths; - int num_paths; -}; +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; -struct pcm_format_data { - unsigned char width; - unsigned char phys; - signed char le; - signed char signd; - unsigned char silence[8]; -}; +typedef enum { + ZSTD_f_zstd1 = 0, + ZSTD_f_zstd1_magicless = 1, +} ZSTD_format_e; -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); -}; +typedef enum { + ZSTD_d_validateChecksum = 0, + ZSTD_d_ignoreChecksum = 1, +} ZSTD_forceIgnoreChecksum_e; -struct sg_dma_page_iter { - struct sg_page_iter base; -}; +typedef void * (*ZSTD_allocFunction)(void *, size_t); -struct gnet_estimator { - signed char interval; - unsigned char ewma_log; -}; +typedef void (*ZSTD_freeFunction)(void *, void *); -struct gnet_stats_rate_est64 { - __u64 bps; - __u64 pps; -}; +typedef struct { + ZSTD_allocFunction customAlloc; + ZSTD_freeFunction customFree; + void *opaque; +} ZSTD_customMem; -struct net_test { - char name[32]; - int (*fn)(struct net_device *); -}; +typedef enum { + ZSTD_use_indefinitely = -1, + ZSTD_dont_use = 0, + ZSTD_use_once = 1, +} ZSTD_dictUses_e; -struct netsfhdr { - __be32 version; - __be64 magic; - u8 id; -} __attribute__((packed)); +struct ZSTD_DDict_s; -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; -}; +typedef struct ZSTD_DDict_s ZSTD_DDict; -struct net_test_priv { - struct net_packet_attrs *packet; - struct packet_type pt; - struct completion comp; - int double_vlan; - int vlan_id; - int ok; -}; +typedef struct { + const ZSTD_DDict **ddictPtrTable; + size_t ddictPtrTableSize; + size_t ddictPtrCount; +} ZSTD_DDictHashSet; -enum { - ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0, - ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1, - ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2, -}; +typedef enum { + ZSTD_rmd_refSingleDDict = 0, + ZSTD_rmd_refMultipleDDicts = 1, +} ZSTD_refMultipleDDicts_e; -enum { - ETHTOOL_A_RINGS_UNSPEC = 0, - ETHTOOL_A_RINGS_HEADER = 1, - ETHTOOL_A_RINGS_RX_MAX = 2, - ETHTOOL_A_RINGS_RX_MINI_MAX = 3, - ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4, - ETHTOOL_A_RINGS_TX_MAX = 5, - ETHTOOL_A_RINGS_RX = 6, - ETHTOOL_A_RINGS_RX_MINI = 7, - ETHTOOL_A_RINGS_RX_JUMBO = 8, - ETHTOOL_A_RINGS_TX = 9, - ETHTOOL_A_RINGS_RX_BUF_LEN = 10, - ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11, - ETHTOOL_A_RINGS_CQE_SIZE = 12, - ETHTOOL_A_RINGS_TX_PUSH = 13, - ETHTOOL_A_RINGS_RX_PUSH = 14, - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15, - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16, - __ETHTOOL_A_RINGS_CNT = 17, - ETHTOOL_A_RINGS_MAX = 16, -}; +typedef enum { + zdss_init = 0, + zdss_loadHeader = 1, + zdss_read = 2, + zdss_load = 3, + zdss_flush = 4, +} ZSTD_dStreamStage; -enum ethtool_supported_ring_param { - ETHTOOL_RING_USE_RX_BUF_LEN = 1, - ETHTOOL_RING_USE_CQE_SIZE = 2, - ETHTOOL_RING_USE_TX_PUSH = 4, - ETHTOOL_RING_USE_RX_PUSH = 8, - ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16, -}; +typedef enum { + ZSTD_bm_buffered = 0, + ZSTD_bm_stable = 1, +} ZSTD_bufferMode_e; -struct rings_reply_data { - struct ethnl_reply_data base; - struct ethtool_ringparam ringparam; - struct kernel_ethtool_ringparam kernel_ringparam; - u32 supported_ring_params; +struct ZSTD_outBuffer_s { + void *dst; + size_t size; + size_t pos; }; -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 *); -}; +typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; -struct udp_tunnel_info { - unsigned short type; - sa_family_t sa_family; - __be16 port; - u8 hw_priv; -}; +typedef enum { + ZSTD_not_in_dst = 0, + ZSTD_in_dst = 1, + ZSTD_split = 2, +} ZSTD_litLocation_e; -struct udp_tunnel_nic_shared { - struct udp_tunnel_nic *udp_tunnel_nic_info; - struct list_head devices; +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; + 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; }; -struct kernel_hwtstamp_config; +typedef struct ZSTD_DCtx_s ZSTD_DCtx; -struct dsa_stubs { - int (*master_hwtstamp_validate)(struct net_device *, const struct kernel_hwtstamp_config *, struct netlink_ext_ack *); +struct ZSTD_DDict_s { + void *dictBuffer; + const void *dictContent; + size_t dictSize; + ZSTD_entropyDTables_t entropy; + U32 dictID; + U32 entropyPresent; + ZSTD_customMem cMem; }; -struct dsa_device_ops; +typedef enum { + not_streaming = 0, + is_streaming = 1, +} streaming_operation; -struct dsa_switch_tree; +typedef struct { + size_t litLength; + size_t matchLength; + size_t offset; +} seq_t; -struct dsa_switch; +typedef struct { + size_t state; + const ZSTD_seqSymbol *table; +} ZSTD_fseState; -struct dsa_bridge; +typedef struct { + BIT_DStream_t DStream; + ZSTD_fseState stateLL; + ZSTD_fseState stateOffb; + ZSTD_fseState stateML; + size_t prevOffset[3]; +} seqState_t; -struct dsa_lag; +typedef enum { + ZSTD_no_overlap = 0, + ZSTD_overlap_src_before_dst = 1, +} ZSTD_overlap_e; -struct dsa_port { - union { - struct net_device *master; - struct net_device *slave; - }; - const struct dsa_device_ops *tag_ops; - struct dsa_switch_tree *dst; - struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); - struct dsa_switch *ds; - unsigned int index; - enum { - DSA_PORT_TYPE_UNUSED = 0, - DSA_PORT_TYPE_CPU = 1, - DSA_PORT_TYPE_DSA = 2, - DSA_PORT_TYPE_USER = 3, - } type; - const char *name; - struct dsa_port *cpu_dp; - u8 mac[6]; - u8 stp_state; - u8 vlan_filtering: 1; - u8 learning: 1; - u8 lag_tx_enabled: 1; - u8 master_admin_up: 1; - u8 master_oper_up: 1; - u8 cpu_port_in_lag: 1; - u8 setup: 1; - struct device_node *dn; - unsigned int ageing_time; - struct dsa_bridge *bridge; - struct devlink_port devlink_port; - struct phylink *pl; - struct phylink_config pl_config; - struct dsa_lag *lag; - struct net_device *hsr_dev; - struct list_head list; - const struct ethtool_ops *orig_ethtool_ops; - struct mutex addr_lists_lock; - struct list_head fdbs; - struct list_head mdbs; - struct mutex vlans_lock; - union { - struct list_head vlans; - struct list_head user_vlans; - }; -}; +typedef struct { + blockType_e blockType; + U32 lastBlock; + U32 origSize; +} blockProperties_t; -enum dsa_tag_protocol { - DSA_TAG_PROTO_NONE = 0, - DSA_TAG_PROTO_BRCM = 1, - DSA_TAG_PROTO_BRCM_LEGACY = 22, - DSA_TAG_PROTO_BRCM_PREPEND = 2, - DSA_TAG_PROTO_DSA = 3, - DSA_TAG_PROTO_EDSA = 4, - DSA_TAG_PROTO_GSWIP = 5, - DSA_TAG_PROTO_KSZ9477 = 6, - DSA_TAG_PROTO_KSZ9893 = 7, - DSA_TAG_PROTO_LAN9303 = 8, - DSA_TAG_PROTO_MTK = 9, - DSA_TAG_PROTO_QCA = 10, - DSA_TAG_PROTO_TRAILER = 11, - DSA_TAG_PROTO_8021Q = 12, - DSA_TAG_PROTO_SJA1105 = 13, - DSA_TAG_PROTO_KSZ8795 = 14, - DSA_TAG_PROTO_OCELOT = 15, - DSA_TAG_PROTO_AR9331 = 16, - DSA_TAG_PROTO_RTL4_A = 17, - DSA_TAG_PROTO_HELLCREEK = 18, - DSA_TAG_PROTO_XRS700X = 19, - DSA_TAG_PROTO_OCELOT_8021Q = 20, - DSA_TAG_PROTO_SEVILLE = 21, - DSA_TAG_PROTO_SJA1110 = 23, - DSA_TAG_PROTO_RTL8_4 = 24, - DSA_TAG_PROTO_RTL8_4T = 25, - DSA_TAG_PROTO_RZN1_A5PSW = 26, - DSA_TAG_PROTO_LAN937X = 27, +struct bcm2836_arm_irqchip_intc { + struct irq_domain *domain; + void *base; }; -struct dsa_device_ops { - struct sk_buff * (*xmit)(struct sk_buff *, struct net_device *); - struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); - void (*flow_dissect)(const struct sk_buff *, __be16 *, int *); - int (*connect)(struct dsa_switch *); - void (*disconnect)(struct dsa_switch *); - unsigned int needed_headroom; - unsigned int needed_tailroom; - const char *name; - enum dsa_tag_protocol proto; - bool promisc_on_master; +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 dsa_8021q_context; +struct mtk_cirq_chip_data { + void *base; + unsigned int ext_irq_start; + unsigned int ext_irq_end; + const u32 *offsets; + struct irq_domain *domain; +}; -struct dsa_chip_data; +enum mtk_cirq_regoffs_index { + CIRQ_STA = 0, + CIRQ_ACK = 1, + CIRQ_MASK_SET = 2, + CIRQ_MASK_CLR = 3, + CIRQ_SENS_SET = 4, + CIRQ_SENS_CLR = 5, + CIRQ_POL_SET = 6, + CIRQ_POL_CLR = 7, + CIRQ_CONTROL = 8, +}; -struct dsa_switch_ops; +struct ti_sci_resource { + u16 sets; + raw_spinlock_t lock; + struct ti_sci_resource_desc *desc; +}; -struct dsa_switch { +struct ti_sci_intr_irq_domain { + const struct ti_sci_handle *sci; + struct ti_sci_resource *out_irqs; struct device *dev; - struct dsa_switch_tree *dst; - unsigned int index; - u32 setup: 1; - u32 vlan_filtering_is_global: 1; - u32 needs_standalone_vlan_filtering: 1; - u32 configure_vlan_while_not_filtering: 1; - u32 untag_bridge_pvid: 1; - u32 assisted_learning_on_cpu_port: 1; - u32 vlan_filtering: 1; - u32 mtu_enforcement_ingress: 1; - u32 fdb_isolation: 1; - struct notifier_block nb; - void *priv; - void *tagger_data; - struct dsa_chip_data *cd; - const struct dsa_switch_ops *ops; - u32 phys_mii_mask; - struct mii_bus *slave_mii_bus; - unsigned int ageing_time_min; - unsigned int ageing_time_max; - struct dsa_8021q_context *tag_8021q_ctx; - struct devlink *devlink; - unsigned int num_tx_queues; - unsigned int num_lag_ids; - unsigned int max_num_bridges; - unsigned int num_ports; + u32 ti_sci_id; + u32 type; }; -struct dsa_platform_data; - -struct dsa_switch_tree { - struct list_head list; - struct list_head ports; - struct raw_notifier_head nh; - unsigned int index; - struct kref refcount; - struct dsa_lag **lags; - const struct dsa_device_ops *tag_ops; - enum dsa_tag_protocol default_proto; - bool setup; - struct dsa_platform_data *pd; - struct list_head rtable; - unsigned int lags_len; - unsigned int last_switch; +struct dpcon_cmd_open { + __le32 dpcon_id; }; -struct dsa_lag { - struct net_device *dev; - unsigned int id; - struct mutex fdb_lock; - struct list_head fdbs; - refcount_t refcount; +struct dpcon_rsp_get_attr { + __le32 id; + __le16 qbman_ch_id; + u8 num_priorities; + u8 pad; }; -struct dsa_platform_data { - struct device *netdev; - struct net_device *of_netdev; - int nr_chips; - struct dsa_chip_data *chip; +struct dpcon_cmd_set_notification { + __le32 dpio_id; + u8 priority; + u8 pad[3]; + __le64 user_ctx; }; -struct dsa_chip_data { - struct device *host_dev; - int sw_addr; - struct device *netdev[12]; - int eeprom_len; - struct device_node *of_node; - char *port_names[12]; - struct device_node *port_dn[12]; - s8 rtable[4]; +struct dpcon_attr { + int id; + u16 qbman_ch_id; + u8 num_priorities; }; -typedef int dsa_fdb_dump_cb_t(const unsigned char *, u16, bool, void *); - -struct netdev_notifier_changeupper_info; - -struct switchdev_mst_state; - -struct switchdev_brport_flags; +struct dpcon_notification_cfg { + int dpio_id; + u8 priority; + u64 user_ctx; +}; -struct switchdev_obj_port_vlan; +enum meson_soc_id { + MESON_SOC_G12A = 0, + MESON_SOC_A1 = 1, +}; -struct switchdev_vlan_msti; +struct phy_meson_g12a_usb2_priv { + struct device *dev; + struct regmap *regmap; + struct clk *clk; + struct reset_control *reset; + int soc_id; +}; -struct dsa_db; +struct rockchip_emmc_phy { + unsigned int reg_offset; + struct regmap *reg_base; + struct clk *emmcclk; + unsigned int drive_impedance; + unsigned int enable_strobe_pulldown; + unsigned int output_tapdelay_select; +}; -struct switchdev_obj_port_mdb; +struct max77620_pin_function { + const char *name; + const char * const *groups; + unsigned int ngroups; + int mux_option; +}; -struct dsa_mall_mirror_tc_entry; +enum max77620_alternate_pinmux_option { + MAX77620_PINMUX_GPIO = 0, + MAX77620_PINMUX_LOW_POWER_MODE_CONTROL_IN = 1, + MAX77620_PINMUX_FLEXIBLE_POWER_SEQUENCER_OUT = 2, + MAX77620_PINMUX_32K_OUT1 = 3, + MAX77620_PINMUX_SD0_DYNAMIC_VOLTAGE_SCALING_IN = 4, + MAX77620_PINMUX_SD1_DYNAMIC_VOLTAGE_SCALING_IN = 5, + MAX77620_PINMUX_REFERENCE_OUT = 6, +}; -struct dsa_mall_policer_tc_entry; +struct max77620_pingroup { + const char *name; + const unsigned int pins[1]; + unsigned int npins; + enum max77620_alternate_pinmux_option alt_option; +}; -struct netdev_lag_upper_info; +enum max77620_chip_id { + MAX77620 = 0, + MAX20024 = 1, + MAX77663 = 2, +}; -struct switchdev_obj_mrp; +enum max77620_pin_ppdrv { + MAX77620_PIN_UNCONFIG_DRV = 0, + MAX77620_PIN_OD_DRV = 1, + MAX77620_PIN_PP_DRV = 2, +}; -struct switchdev_obj_ring_role_mrp; +enum { + MAX77620_GPIO0 = 0, + MAX77620_GPIO1 = 1, + MAX77620_GPIO2 = 2, + MAX77620_GPIO3 = 3, + MAX77620_GPIO4 = 4, + MAX77620_GPIO5 = 5, + MAX77620_GPIO6 = 6, + MAX77620_GPIO7 = 7, + MAX77620_GPIO_NR = 8, +}; -struct dsa_switch_ops { - enum dsa_tag_protocol (*get_tag_protocol)(struct dsa_switch *, int, enum dsa_tag_protocol); - int (*change_tag_protocol)(struct dsa_switch *, enum dsa_tag_protocol); - int (*connect_tag_protocol)(struct dsa_switch *, enum dsa_tag_protocol); - int (*port_change_master)(struct dsa_switch *, int, struct net_device *, struct netlink_ext_ack *); - int (*setup)(struct dsa_switch *); - void (*teardown)(struct dsa_switch *); - int (*port_setup)(struct dsa_switch *, int); - void (*port_teardown)(struct dsa_switch *, int); - u32 (*get_phy_flags)(struct dsa_switch *, int); - int (*phy_read)(struct dsa_switch *, int, int); - int (*phy_write)(struct dsa_switch *, int, int, u16); - void (*adjust_link)(struct dsa_switch *, int, struct phy_device *); - void (*fixed_link_update)(struct dsa_switch *, int, struct fixed_phy_status *); - void (*phylink_get_caps)(struct dsa_switch *, int, struct phylink_config *); - struct phylink_pcs * (*phylink_mac_select_pcs)(struct dsa_switch *, int, phy_interface_t); - int (*phylink_mac_link_state)(struct dsa_switch *, int, struct phylink_link_state *); - int (*phylink_mac_prepare)(struct dsa_switch *, int, unsigned int, phy_interface_t); - void (*phylink_mac_config)(struct dsa_switch *, int, unsigned int, const struct phylink_link_state *); - int (*phylink_mac_finish)(struct dsa_switch *, int, unsigned int, phy_interface_t); - void (*phylink_mac_an_restart)(struct dsa_switch *, int); - void (*phylink_mac_link_down)(struct dsa_switch *, int, unsigned int, phy_interface_t); - void (*phylink_mac_link_up)(struct dsa_switch *, int, unsigned int, phy_interface_t, struct phy_device *, int, int, bool, bool); - void (*phylink_fixed_state)(struct dsa_switch *, int, struct phylink_link_state *); - void (*get_strings)(struct dsa_switch *, int, u32, uint8_t *); - void (*get_ethtool_stats)(struct dsa_switch *, int, uint64_t *); - int (*get_sset_count)(struct dsa_switch *, int, int); - void (*get_ethtool_phy_stats)(struct dsa_switch *, int, uint64_t *); - void (*get_eth_phy_stats)(struct dsa_switch *, int, struct ethtool_eth_phy_stats *); - void (*get_eth_mac_stats)(struct dsa_switch *, int, struct ethtool_eth_mac_stats *); - void (*get_eth_ctrl_stats)(struct dsa_switch *, int, struct ethtool_eth_ctrl_stats *); - void (*get_rmon_stats)(struct dsa_switch *, int, struct ethtool_rmon_stats *, const struct ethtool_rmon_hist_range **); - void (*get_stats64)(struct dsa_switch *, int, struct rtnl_link_stats64 *); - void (*get_pause_stats)(struct dsa_switch *, int, struct ethtool_pause_stats *); - void (*self_test)(struct dsa_switch *, int, struct ethtool_test *, u64 *); - void (*get_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); - int (*set_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); - int (*get_ts_info)(struct dsa_switch *, int, struct ethtool_ts_info *); - int (*get_mm)(struct dsa_switch *, int, struct ethtool_mm_state *); - int (*set_mm)(struct dsa_switch *, int, struct ethtool_mm_cfg *, struct netlink_ext_ack *); - void (*get_mm_stats)(struct dsa_switch *, int, struct ethtool_mm_stats *); - int (*port_get_default_prio)(struct dsa_switch *, int); - int (*port_set_default_prio)(struct dsa_switch *, int, u8); - int (*port_get_dscp_prio)(struct dsa_switch *, int, u8); - int (*port_add_dscp_prio)(struct dsa_switch *, int, u8, u8); - int (*port_del_dscp_prio)(struct dsa_switch *, int, u8, u8); - int (*suspend)(struct dsa_switch *); - int (*resume)(struct dsa_switch *); - int (*port_enable)(struct dsa_switch *, int, struct phy_device *); - void (*port_disable)(struct dsa_switch *, int); - struct dsa_port * (*preferred_default_local_cpu_port)(struct dsa_switch *); - int (*set_mac_eee)(struct dsa_switch *, int, struct ethtool_eee *); - int (*get_mac_eee)(struct dsa_switch *, int, struct ethtool_eee *); - int (*get_eeprom_len)(struct dsa_switch *); - int (*get_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); - int (*set_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); - int (*get_regs_len)(struct dsa_switch *, int); - void (*get_regs)(struct dsa_switch *, int, struct ethtool_regs *, void *); - int (*port_prechangeupper)(struct dsa_switch *, int, struct netdev_notifier_changeupper_info *); - int (*set_ageing_time)(struct dsa_switch *, unsigned int); - int (*port_bridge_join)(struct dsa_switch *, int, struct dsa_bridge, bool *, struct netlink_ext_ack *); - void (*port_bridge_leave)(struct dsa_switch *, int, struct dsa_bridge); - void (*port_stp_state_set)(struct dsa_switch *, int, u8); - int (*port_mst_state_set)(struct dsa_switch *, int, const struct switchdev_mst_state *); - void (*port_fast_age)(struct dsa_switch *, int); - int (*port_vlan_fast_age)(struct dsa_switch *, int, u16); - int (*port_pre_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); - int (*port_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); - void (*port_set_host_flood)(struct dsa_switch *, int, bool, bool); - int (*port_vlan_filtering)(struct dsa_switch *, int, bool, struct netlink_ext_ack *); - int (*port_vlan_add)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *, struct netlink_ext_ack *); - int (*port_vlan_del)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *); - int (*vlan_msti_set)(struct dsa_switch *, struct dsa_bridge, const struct switchdev_vlan_msti *); - int (*port_fdb_add)(struct dsa_switch *, int, const unsigned char *, u16, struct dsa_db); - int (*port_fdb_del)(struct dsa_switch *, int, const unsigned char *, u16, struct dsa_db); - int (*port_fdb_dump)(struct dsa_switch *, int, dsa_fdb_dump_cb_t *, void *); - int (*lag_fdb_add)(struct dsa_switch *, struct dsa_lag, const unsigned char *, u16, struct dsa_db); - int (*lag_fdb_del)(struct dsa_switch *, struct dsa_lag, const unsigned char *, u16, struct dsa_db); - int (*port_mdb_add)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *, struct dsa_db); - int (*port_mdb_del)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *, struct dsa_db); - int (*get_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *, u32 *); - int (*set_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *); - int (*cls_flower_add)(struct dsa_switch *, int, struct flow_cls_offload *, bool); - int (*cls_flower_del)(struct dsa_switch *, int, struct flow_cls_offload *, bool); - int (*cls_flower_stats)(struct dsa_switch *, int, struct flow_cls_offload *, bool); - int (*port_mirror_add)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *, bool, struct netlink_ext_ack *); - void (*port_mirror_del)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *); - int (*port_policer_add)(struct dsa_switch *, int, struct dsa_mall_policer_tc_entry *); - void (*port_policer_del)(struct dsa_switch *, int); - int (*port_setup_tc)(struct dsa_switch *, int, enum tc_setup_type, void *); - int (*crosschip_bridge_join)(struct dsa_switch *, int, int, int, struct dsa_bridge, struct netlink_ext_ack *); - void (*crosschip_bridge_leave)(struct dsa_switch *, int, int, int, struct dsa_bridge); - int (*crosschip_lag_change)(struct dsa_switch *, int, int); - int (*crosschip_lag_join)(struct dsa_switch *, int, int, struct dsa_lag, struct netdev_lag_upper_info *, struct netlink_ext_ack *); - int (*crosschip_lag_leave)(struct dsa_switch *, int, int, struct dsa_lag); - int (*port_hwtstamp_get)(struct dsa_switch *, int, struct ifreq *); - int (*port_hwtstamp_set)(struct dsa_switch *, int, struct ifreq *); - void (*port_txtstamp)(struct dsa_switch *, int, struct sk_buff *); - bool (*port_rxtstamp)(struct dsa_switch *, int, struct sk_buff *, unsigned int); - int (*devlink_param_get)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); - int (*devlink_param_set)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); - int (*devlink_info_get)(struct dsa_switch *, struct devlink_info_req *, struct netlink_ext_ack *); - int (*devlink_sb_pool_get)(struct dsa_switch *, unsigned int, u16, struct devlink_sb_pool_info *); - int (*devlink_sb_pool_set)(struct dsa_switch *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *); - int (*devlink_sb_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *); - int (*devlink_sb_port_pool_set)(struct dsa_switch *, int, unsigned int, u16, u32, struct netlink_ext_ack *); - int (*devlink_sb_tc_pool_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *); - int (*devlink_sb_tc_pool_bind_set)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *); - int (*devlink_sb_occ_snapshot)(struct dsa_switch *, unsigned int); - int (*devlink_sb_occ_max_clear)(struct dsa_switch *, unsigned int); - int (*devlink_sb_occ_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *, u32 *); - int (*devlink_sb_occ_tc_port_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *); - int (*port_change_mtu)(struct dsa_switch *, int, int); - int (*port_max_mtu)(struct dsa_switch *, int); - int (*port_lag_change)(struct dsa_switch *, int); - int (*port_lag_join)(struct dsa_switch *, int, struct dsa_lag, struct netdev_lag_upper_info *, struct netlink_ext_ack *); - int (*port_lag_leave)(struct dsa_switch *, int, struct dsa_lag); - int (*port_hsr_join)(struct dsa_switch *, int, struct net_device *); - int (*port_hsr_leave)(struct dsa_switch *, int, struct net_device *); - int (*port_mrp_add)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); - int (*port_mrp_del)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); - int (*port_mrp_add_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); - int (*port_mrp_del_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); - int (*tag_8021q_vlan_add)(struct dsa_switch *, int, u16, u16); - int (*tag_8021q_vlan_del)(struct dsa_switch *, int, u16); - void (*master_state_change)(struct dsa_switch *, const struct net_device *, bool); +enum max77620_fps_src { + MAX77620_FPS_SRC_0 = 0, + MAX77620_FPS_SRC_1 = 1, + MAX77620_FPS_SRC_2 = 2, + MAX77620_FPS_SRC_NONE = 3, + MAX77620_FPS_SRC_DEF = 4, }; -struct netdev_notifier_changeupper_info { - struct netdev_notifier_info info; - struct net_device *upper_dev; - bool master; - bool linking; - void *upper_info; +struct max77620_pin_info { + enum max77620_pin_ppdrv drv_type; + int pull_config; }; -struct dsa_bridge { - struct net_device *dev; - unsigned int num; - bool tx_fwd_offload; - refcount_t refcount; +struct max77620_fps_config { + int active_fps_src; + int active_power_up_slots; + int active_power_down_slots; + int suspend_fps_src; + int suspend_power_up_slots; + int suspend_power_down_slots; }; -struct switchdev_mst_state { - u16 msti; - u8 state; +struct max77620_pctrl_info { + struct device *dev; + struct pinctrl_dev *pctl; + struct regmap *rmap; + int pins_current_opt[8]; + const struct max77620_pin_function *functions; + unsigned int num_functions; + const struct max77620_pingroup *pin_groups; + int num_pin_groups; + const struct pinctrl_pin_desc *pins; + unsigned int num_pins; + struct max77620_pin_info pin_info[8]; + struct max77620_fps_config fps_config[8]; }; -struct switchdev_brport_flags { - unsigned long val; - unsigned long mask; +struct max77620_chip { + struct device *dev; + struct regmap *rmap; + int chip_irq; + enum max77620_chip_id chip_id; + bool sleep_enable; + bool enable_global_lpm; + int shutdown_fps_period[3]; + int suspend_fps_period[3]; + struct regmap_irq_chip_data *top_irq_data; + struct regmap_irq_chip_data *gpio_irq_data; }; -enum switchdev_obj_id { - SWITCHDEV_OBJ_ID_UNDEFINED = 0, - SWITCHDEV_OBJ_ID_PORT_VLAN = 1, - SWITCHDEV_OBJ_ID_PORT_MDB = 2, - SWITCHDEV_OBJ_ID_HOST_MDB = 3, - SWITCHDEV_OBJ_ID_MRP = 4, - SWITCHDEV_OBJ_ID_RING_TEST_MRP = 5, - SWITCHDEV_OBJ_ID_RING_ROLE_MRP = 6, - SWITCHDEV_OBJ_ID_RING_STATE_MRP = 7, - SWITCHDEV_OBJ_ID_IN_TEST_MRP = 8, - SWITCHDEV_OBJ_ID_IN_ROLE_MRP = 9, - SWITCHDEV_OBJ_ID_IN_STATE_MRP = 10, +struct imx_pinctrl; + +struct imx_pin; + +struct imx_pinctrl_soc_info { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + unsigned int flags; + const char *gpr_compatible; + unsigned int mux_mask; + u8 mux_shift; + int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); + int (*imx_pinconf_get)(struct pinctrl_dev *, unsigned int, unsigned long *); + int (*imx_pinconf_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); + void (*imx_pinctrl_parse_pin)(struct imx_pinctrl *, unsigned int *, struct imx_pin *, const __be32 **); }; -struct switchdev_obj { - struct list_head list; - struct net_device *orig_dev; - enum switchdev_obj_id id; - u32 flags; - void *complete_priv; - void (*complete)(struct net_device *, int, void *); +struct imx_pin_reg; + +struct imx_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl; + void *base; + void *input_sel_base; + const struct imx_pinctrl_soc_info *info; + struct imx_pin_reg *pin_regs; + unsigned int group_index; + struct mutex mutex; }; -struct switchdev_obj_port_vlan { - struct switchdev_obj obj; - u16 flags; - u16 vid; - bool changed; +struct imx_pin_reg { + s16 mux_reg; + s16 conf_reg; }; -struct switchdev_vlan_msti { - u16 vid; - u16 msti; +struct imx_pin_mmio { + unsigned int mux_mode; + u16 input_reg; + unsigned int input_val; + unsigned long config; }; -enum dsa_db_type { - DSA_DB_PORT = 0, - DSA_DB_LAG = 1, - DSA_DB_BRIDGE = 2, +struct imx_pin_scu { + unsigned int mux_mode; + unsigned long config; }; -struct dsa_db { - enum dsa_db_type type; +struct imx_pin { + unsigned int pin; union { - const struct dsa_port *dp; - struct dsa_lag lag; - struct dsa_bridge bridge; - }; + struct imx_pin_mmio mmio; + struct imx_pin_scu scu; + } conf; }; -struct switchdev_obj_port_mdb { - struct switchdev_obj obj; - unsigned char addr[6]; - u16 vid; +struct gpio { + unsigned int gpio; + unsigned long flags; + const char *label; }; -struct dsa_mall_mirror_tc_entry { - u8 to_local_port; - bool ingress; +struct aer_recover_entry { + u8 bus; + u8 devfn; + u16 domain; + int severity; + struct aer_capability_regs *regs; }; -struct dsa_mall_policer_tc_entry { - u32 burst; - u64 rate_bytes_per_sec; -}; +struct pcie_device; -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, +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; }; -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 pcie_device { + int irq; + struct pci_dev *port; + u32 service; + void *priv_data; + struct device device; }; -struct netdev_lag_upper_info { - enum netdev_lag_tx_type tx_type; - enum netdev_lag_hash hash_type; +struct aer_stats { + u64 dev_cor_errs[16]; + u64 dev_fatal_errs[27]; + u64 dev_nonfatal_errs[27]; + u64 dev_total_cor_errs; + u64 dev_total_fatal_errs; + u64 dev_total_nonfatal_errs; + u64 rootport_total_cor_errs; + u64 rootport_total_fatal_errs; + u64 rootport_total_nonfatal_errs; }; -struct switchdev_obj_mrp { - struct switchdev_obj obj; - struct net_device *p_port; - struct net_device *s_port; - u32 ring_id; - u16 prio; +struct aer_err_source { + unsigned int status; + unsigned int id; }; -struct switchdev_obj_ring_role_mrp { - struct switchdev_obj obj; - u8 ring_role; - u32 ring_id; - u8 sw_backup; +struct aer_err_info { + struct pci_dev *dev[5]; + int error_dev_num; + unsigned int id: 16; + unsigned int severity: 2; + unsigned int __pad1: 5; + unsigned int multi_error_valid: 1; + unsigned int first_error: 5; + unsigned int __pad2: 2; + unsigned int tlp_header_valid: 1; + unsigned int status; + unsigned int mask; + struct aer_header_log_regs tlp; }; -struct kernel_hwtstamp_config { - int flags; - int tx_type; - int rx_filter; +struct aer_rpc { + struct pci_dev *rpd; + struct { + union { + struct __kfifo kfifo; + struct aer_err_source *type; + const struct aer_err_source *const_type; + char (*rectype)[0]; + struct aer_err_source *ptr; + const struct aer_err_source *ptr_const; + }; + struct aer_err_source buf[128]; + } aer_fifo; }; -struct xdp_sock { - struct sock sk; - long: 64; - long: 64; - long: 64; - struct xsk_queue *rx; - struct net_device *dev; - struct xdp_umem *umem; - struct list_head flush_node; - struct xsk_buff_pool *pool; - u16 queue_id; - bool zc; - 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 altera_pcie_version { + ALTERA_PCIE_V1 = 0, + ALTERA_PCIE_V2 = 1, }; -enum { - BPF_F_BROADCAST = 8, - BPF_F_EXCLUDE_INGRESS = 16, +struct altera_pcie_ops; + +struct altera_pcie_data { + const struct altera_pcie_ops *ops; + enum altera_pcie_version version; + u32 cap_offset; + u32 cfgrd0; + u32 cfgrd1; + u32 cfgwr0; + u32 cfgwr1; }; -struct xsk_map; +struct altera_pcie; -struct xsk_map_node { - struct list_head node; - struct xsk_map *map; - struct xdp_sock __attribute__((btf_type_tag("rcu"))) **map_entry; +struct altera_pcie_ops { + int (*tlp_read_pkt)(struct altera_pcie *, u32 *); + void (*tlp_write_pkt)(struct altera_pcie *, u32 *, u32, bool); + bool (*get_link_status)(struct altera_pcie *); + int (*rp_read_cfg)(struct altera_pcie *, int, int, u32 *); + int (*rp_write_cfg)(struct altera_pcie *, u8, int, int, u32); }; -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 altera_pcie { + struct platform_device *pdev; + void *cra_base; + void *hip_base; + int irq; + u8 root_bus_nr; + struct irq_domain *irq_domain; + struct resource bus_range; + const struct altera_pcie_data *pcie_data; }; -struct bpf_nh_params { - u32 nh_family; - union { - u32 ipv4_nh; - struct in6_addr ipv6_nh; - }; +struct tlp_rp_regpair_t { + u32 ctrl; + u32 reg0; + u32 reg1; }; -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 efifb_par { + u32 pseudo_palette[16]; + resource_size_t base; + resource_size_t size; }; -struct cpu_operations { - const char *name; - int (*cpu_init)(unsigned int); - int (*cpu_prepare)(unsigned int); - int (*cpu_boot)(unsigned int); - void (*cpu_postboot)(); - bool (*cpu_can_disable)(unsigned int); - int (*cpu_disable)(unsigned int); - void (*cpu_die)(unsigned int); - int (*cpu_kill)(unsigned int); +struct acpi_pci_device { + acpi_handle device; + struct acpi_pci_device *next; }; -typedef s8 int8_t; +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)); -struct start_info { - char magic[32]; - unsigned long nr_pages; - unsigned long shared_info; - uint32_t flags; - xen_pfn_t store_mfn; - uint32_t store_evtchn; - union { - struct { - xen_pfn_t mfn; - uint32_t evtchn; - } domU; - struct { - uint32_t info_off; - uint32_t info_size; - } dom0; - } console; - unsigned long pt_base; - unsigned long nr_pt_frames; - unsigned long mfn_list; - unsigned long mod_start; - unsigned long mod_len; - int8_t cmd_line[1024]; - unsigned long first_p2m_pfn; - unsigned long nr_p2m_frames; +struct clk_gpio { + struct clk_hw hw; + struct gpio_desc *gpiod; }; -struct arch_vcpu_info {}; +struct owl_reset_map; -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 owl_reset { + struct reset_controller_dev rcdev; + const struct owl_reset_map *reset_map; + struct regmap *regmap; }; -struct vcpu_info { - uint8_t evtchn_upcall_pending; - uint8_t evtchn_upcall_mask; - xen_ulong_t evtchn_pending_sel; - struct arch_vcpu_info arch; - struct pvclock_vcpu_time_info time; +struct owl_reset_map { + u32 reg; + u32 bit; }; -struct pvclock_wall_clock { - u32 version; - u32 sec; - u32 nsec; - u32 sec_hi; +enum kp_band { + KP_BAND_MID = 0, + KP_BAND_HIGH = 1, + KP_BAND_HIGH_HIGH = 2, }; -struct arch_shared_info {}; - -struct shared_info { - struct vcpu_info vcpu_info[1]; - xen_ulong_t evtchn_pending[64]; - xen_ulong_t evtchn_mask[64]; - struct pvclock_wall_clock wc; - uint32_t wc_sec_hi; - struct arch_shared_info arch; +enum vco_freq_range { + VCO_LOW = 700000000, + VCO_MID = 1200000000, + VCO_HIGH = 2200000000, + VCO_HIGH_HIGH = 3100000000, + VCO_MAX = 4000000000, }; -struct xen_memory_region { - unsigned long start_pfn; - unsigned long n_pfns; -}; +struct iproc_pll; -struct sched_shutdown { - unsigned int reason; -}; +struct iproc_clk_ctrl; -struct xen_add_to_physmap { - domid_t domid; - uint16_t size; - unsigned int space; - xen_ulong_t idx; - xen_pfn_t gpfn; +struct iproc_clk { + struct clk_hw hw; + struct iproc_pll *pll; + const struct iproc_clk_ctrl *ctrl; }; -struct xen_hvm_param { - domid_t domid; - uint32_t index; - uint64_t value; +struct iproc_pll_ctrl; + +struct iproc_pll_vco_param; + +struct iproc_pll { + void *status_base; + void *control_base; + void *pwr_base; + void *asiu_base; + const struct iproc_pll_ctrl *ctrl; + const struct iproc_pll_vco_param *vco_param; + unsigned int num_vco_entries; }; -struct vcpu_register_vcpu_info { - uint64_t mfn; - uint32_t offset; - uint32_t rsvd; +struct iproc_pll_aon_pwr_ctrl { + unsigned int offset; + unsigned int pwr_width; + unsigned int pwr_shift; + unsigned int iso_shift; }; -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 iproc_asiu_gate { + unsigned int offset; + unsigned int en_shift; }; -struct timekeeper { - struct tk_read_base tkr_mono; - struct tk_read_base tkr_raw; - u64 xtime_sec; - unsigned long ktime_sec; - struct timespec64 wall_to_monotonic; - ktime_t offs_real; - ktime_t offs_boot; - ktime_t offs_tai; - s32 tai_offset; - unsigned int clock_was_set_seq; - u8 cs_was_changed_seq; - ktime_t next_leap_ktime; - u64 raw_sec; - struct timespec64 monotonic_to_boot; - u64 cycle_interval; - u64 xtime_interval; - s64 xtime_remainder; - u64 raw_interval; - u64 ntp_tick; - s64 ntp_error; - u32 ntp_error_shift; - u32 ntp_err_mult; - u32 skip_second_overflow; +struct iproc_pll_reset_ctrl { + unsigned int offset; + unsigned int reset_shift; + unsigned int p_reset_shift; }; -enum numa_topology_type { - NUMA_DIRECT = 0, - NUMA_GLUELESS_MESH = 1, - NUMA_BACKPLANE = 2, +struct iproc_pll_dig_filter_ctrl { + unsigned int offset; + unsigned int ki_shift; + unsigned int ki_width; + unsigned int kp_shift; + unsigned int kp_width; + unsigned int ka_shift; + unsigned int ka_width; }; -typedef const struct cpumask * (*sched_domain_mask_f)(int); - -typedef int (*sched_domain_flags_f)(); - -struct sd_data { - struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; - struct sched_domain_shared * __attribute__((btf_type_tag("percpu"))) *sds; - struct sched_group * __attribute__((btf_type_tag("percpu"))) *sg; - struct sched_group_capacity * __attribute__((btf_type_tag("percpu"))) *sgc; +struct iproc_pll_sw_ctrl { + unsigned int offset; + unsigned int shift; }; -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 iproc_clk_reg_op { + unsigned int offset; + unsigned int shift; + unsigned int width; }; -struct sched_domain_attr { - int relax_domain_level; +struct iproc_pll_vco_ctrl { + unsigned int u_offset; + unsigned int l_offset; }; -struct housekeeping { - cpumask_var_t cpumasks[9]; +struct iproc_pll_ctrl { unsigned long flags; + struct iproc_pll_aon_pwr_ctrl aon; + struct iproc_asiu_gate asiu; + struct iproc_pll_reset_ctrl reset; + struct iproc_pll_dig_filter_ctrl dig_filter; + struct iproc_pll_sw_ctrl sw_ctrl; + struct iproc_clk_reg_op ndiv_int; + struct iproc_clk_reg_op ndiv_frac; + struct iproc_clk_reg_op pdiv; + struct iproc_pll_vco_ctrl vco_ctrl; + struct iproc_clk_reg_op status; + struct iproc_clk_reg_op macro_mode; }; -struct cpuacct { - struct cgroup_subsys_state css; - u64 __attribute__((btf_type_tag("percpu"))) *cpuusage; - struct kernel_cpustat __attribute__((btf_type_tag("percpu"))) *cpustat; -}; - -struct gov_attr_set { - struct kobject kobj; - struct list_head policy_list; - struct mutex update_lock; - int usage_count; -}; - -struct sugov_tunables { - struct gov_attr_set attr_set; - unsigned int rate_limit_us; -}; - -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); +struct iproc_pll_vco_param { + unsigned long rate; + unsigned int ndiv_int; + unsigned int ndiv_frac; + unsigned int pdiv; }; -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 iproc_clk_enable_ctrl { + unsigned int offset; + unsigned int enable_shift; + unsigned int hold_shift; + unsigned int bypass_shift; }; -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; +struct iproc_clk_ctrl { + unsigned int channel; + unsigned long flags; + struct iproc_clk_enable_ctrl enable; + struct iproc_clk_reg_op mdiv; }; -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, +struct clk_gate_exclusive { + struct clk_gate gate; + u32 exclusive_mask; }; -enum cpuacct_stat_index { - CPUACCT_STAT_USER = 0, - CPUACCT_STAT_SYSTEM = 1, - CPUACCT_STAT_NSTATS = 2, +enum imx_pllv4_type { + IMX_PLLV4_IMX7ULP = 0, + IMX_PLLV4_IMX8ULP = 1, + IMX_PLLV4_IMX8ULP_1GHZ = 2, }; -enum cpu_util_type { - FREQUENCY_UTIL = 0, - ENERGY_UTIL = 1, +struct clk_pllv4 { + struct clk_hw hw; + void *base; + u32 cfg_offset; + u32 num_offset; + u32 denom_offset; + bool use_mult_range; }; -enum s_alloc { - sa_rootdomain = 0, - sa_sd = 1, - sa_sd_storage = 2, - sa_none = 3, +enum clk_sel { + LOW_SPEED_IO_SEL = 0, + NON_IO_SEL = 1, + FAST_SEL = 2, + AUDIO_SEL = 3, + VIDEO_SEL = 4, + TPM_SEL = 5, + CKO1_SEL = 6, + CKO2_SEL = 7, + MISC_SEL = 8, + MAX_SEL = 9, }; -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, +struct imx93_clk_root { + u32 clk; + char *name; + u32 off; + enum clk_sel sel; + unsigned long flags; }; -enum membarrier_cmd_flag { - MEMBARRIER_CMD_FLAG_CPU = 1, +struct imx93_clk_ccgr { + u32 clk; + char *name; + char *parent_name; + u32 off; + unsigned long flags; + u32 *shared_count; }; -enum { - MEMBARRIER_FLAG_SYNC_CORE = 1, - MEMBARRIER_FLAG_RSEQ = 2, -}; +struct imx_fracn_gppll_rate_table; -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, +struct imx_fracn_gppll_clk { + const struct imx_fracn_gppll_rate_table *rate_table; + int rate_count; + int flags; }; -struct __cmp_key { - const struct cpumask *cpus; - struct cpumask ***masks; - int node; - int cpu; - int w; +struct imx_fracn_gppll_rate_table { + unsigned int rate; + unsigned int mfi; + unsigned int mfn; + unsigned int mfd; + unsigned int rdiv; + unsigned int odiv; }; -struct asym_cap_data { - struct list_head link; - unsigned long capacity; - unsigned long cpus[0]; +struct parm { + u16 reg_off; + u8 shift; + u8 width; }; -struct s_data { - struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; - struct root_domain *rd; -}; +struct pll_params_table; -struct futex_waitv { - __u64 val; - __u64 uaddr; - __u32 flags; - __u32 __reserved; -}; +struct pll_mult_range; -struct futex_vector { - struct futex_waitv w; - struct futex_q q; +struct meson_clk_pll_data { + struct parm en; + struct parm m; + struct parm n; + struct parm frac; + struct parm l; + struct parm rst; + struct parm current_en; + struct parm l_detect; + const struct reg_sequence *init_regs; + unsigned int init_count; + const struct pll_params_table *table; + const struct pll_mult_range *range; + u8 flags; }; -struct fmeter { - int cnt; - int val; - time64_t time; - spinlock_t lock; +struct pll_params_table { + unsigned int m; + unsigned int n; }; -enum prs_errcode { - PERR_NONE = 0, - PERR_INVCPUS = 1, - PERR_INVPARENT = 2, - PERR_NOTPART = 3, - PERR_NOTEXCL = 4, - PERR_NOCPUS = 5, - PERR_HOTPLUG = 6, - PERR_CPUSEMPTY = 7, +struct pll_mult_range { + unsigned int min; + unsigned int max; }; -struct cpuset { - struct cgroup_subsys_state css; - unsigned long flags; - cpumask_var_t cpus_allowed; - nodemask_t mems_allowed; - cpumask_var_t effective_cpus; - nodemask_t effective_mems; - cpumask_var_t subparts_cpus; - nodemask_t old_mems_allowed; - struct fmeter fmeter; - int attach_in_progress; - int pn; - int relax_domain_level; - int nr_subparts_cpus; - int partition_root_state; - int use_parent_ecpus; - int child_ecpus_count; - int nr_deadline_tasks; - int nr_migrate_dl_tasks; - u64 sum_migrate_dl_bw; - enum prs_errcode prs_err; - struct cgroup_file partition_file; +enum clk_ids___2 { + LAST_DT_CORE_CLK___2 = 51, + CLK_EXTAL___2 = 52, + CLK_EXTALR___2 = 53, + CLK_MAIN___2 = 54, + CLK_PLL0 = 55, + CLK_PLL1___2 = 56, + CLK_PLL2 = 57, + CLK_PLL3 = 58, + CLK_PLL4 = 59, + CLK_PLL1_DIV2___2 = 60, + CLK_PLL1_DIV4 = 61, + CLK_S0 = 62, + CLK_S1___2 = 63, + CLK_S2 = 64, + CLK_S3___2 = 65, + CLK_SDSRC___2 = 66, + CLK_SSPSRC = 67, + CLK_RPCSRC___2 = 68, + CLK_RINT = 69, + MOD_CLK_BASE___2 = 70, }; -enum subparts_cmd { - partcmd_enable = 0, - partcmd_disable = 1, - partcmd_update = 2, - partcmd_invalidate = 3, +struct sprd_mux_ssel { + u8 shift; + u8 width; + const u8 *table; }; -struct cpuset_migrate_mm_work { - struct work_struct work; - struct mm_struct *mm; - nodemask_t from; - nodemask_t to; +struct sprd_mux { + struct sprd_mux_ssel mux; + struct sprd_clk_common common; }; -struct tmpmasks { - cpumask_var_t addmask; - cpumask_var_t delmask; - cpumask_var_t new_cpus; +enum fsl_edma_pm_state { + RUNNING = 0, + SUSPENDED = 1, }; -typedef enum { - CS_ONLINE = 0, - CS_CPU_EXCLUSIVE = 1, - CS_MEM_EXCLUSIVE = 2, - CS_MEM_HARDWALL = 3, - CS_MEMORY_MIGRATE = 4, - CS_SCHED_LOAD_BALANCE = 5, - CS_SPREAD_PAGE = 6, - CS_SPREAD_SLAB = 7, -} cpuset_flagbits_t; - -typedef enum { - FILE_MEMORY_MIGRATE = 0, - FILE_CPULIST = 1, - FILE_MEMLIST = 2, - FILE_EFFECTIVE_CPULIST = 3, - FILE_EFFECTIVE_MEMLIST = 4, - FILE_SUBPARTS_CPULIST = 5, - FILE_CPU_EXCLUSIVE = 6, - FILE_MEM_EXCLUSIVE = 7, - FILE_MEM_HARDWALL = 8, - FILE_SCHED_LOAD_BALANCE = 9, - FILE_PARTITION_ROOT = 10, - FILE_SCHED_RELAX_DOMAIN_LEVEL = 11, - FILE_MEMORY_PRESSURE_ENABLED = 12, - FILE_MEMORY_PRESSURE = 13, - FILE_SPREAD_PAGE = 14, - FILE_SPREAD_SLAB = 15, -} cpuset_filetype_t; +struct fsl_edma_engine; -typedef void (*btf_trace_rpm_suspend)(void *, struct device *, int); +struct fsl_edma_desc; -typedef void (*btf_trace_rpm_resume)(void *, struct device *, int); +struct fsl_edma_hw_tcd; -typedef void (*btf_trace_rpm_idle)(void *, struct device *, int); +struct fsl_edma_chan { + struct virt_dma_chan vchan; + enum dma_status status; + enum fsl_edma_pm_state pm_state; + bool idle; + u32 slave_id; + struct fsl_edma_engine *edma; + struct fsl_edma_desc *edesc; + struct dma_slave_config cfg; + u32 attr; + bool is_sw; + struct dma_pool *tcd_pool; + dma_addr_t dma_dev_addr; + u32 dma_dev_size; + enum dma_data_direction dma_dir; + char chan_name[32]; + struct fsl_edma_hw_tcd *tcd; + u32 real_count; + struct work_struct issue_worker; + struct platform_device *pdev; + struct device *pd_dev; + u32 srcid; + struct clk *clk; + int priority; + int hw_chanid; + int txirq; + bool is_rxchan; + bool is_remote; + bool is_multi_fifo; +}; -typedef void (*btf_trace_rpm_usage)(void *, struct device *, int); +struct edma_regs { + void *cr; + void *es; + void *erqh; + void *erql; + void *eeih; + void *eeil; + void *seei; + void *ceei; + void *serq; + void *cerq; + void *cint; + void *cerr; + void *ssrt; + void *cdne; + void *inth; + void *intl; + void *errh; + void *errl; +}; -typedef void (*btf_trace_rpm_return_int)(void *, struct device *, unsigned long, int); +struct fsl_edma_drvdata; -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 fsl_edma_engine { + struct dma_device dma_dev; + void *membase; + void *muxbase[2]; + struct clk *muxclk[2]; + struct clk *dmaclk; + struct clk *chclk; + struct mutex fsl_edma_mutex; + const struct fsl_edma_drvdata *drvdata; + u32 n_chans; + int txirq; + int errirq; + bool big_endian; + struct edma_regs regs; + u64 chan_masked; + struct fsl_edma_chan chans[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 fsl_edma_drvdata { + u32 dmamuxs; + u32 chreg_off; + u32 chreg_space_sz; + u32 flags; + int (*setup_irq)(struct platform_device *, struct fsl_edma_engine *); }; -struct trace_event_data_offsets_rpm_internal { - u32 name; +struct fsl_edma_sw_tcd { + dma_addr_t ptcd; + struct fsl_edma_hw_tcd *vtcd; }; -struct trace_event_data_offsets_rpm_return_int { - u32 name; +struct fsl_edma_desc { + struct virt_dma_desc vdesc; + struct fsl_edma_chan *echan; + bool iscyclic; + enum dma_transfer_direction dirn; + unsigned int n_tcds; + struct fsl_edma_sw_tcd tcd[0]; }; -enum sgp_type { - SGP_READ = 0, - SGP_NOALLOC = 1, - SGP_CACHE = 2, - SGP_WRITE = 3, - SGP_FALLOC = 4, +struct fsl_edma_hw_tcd { + __le32 saddr; + __le16 soff; + __le16 attr; + __le32 nbytes; + __le32 slast; + __le32 daddr; + __le16 doff; + __le16 citer; + __le32 dlast_sga; + __le16 csr; + __le16 biter; }; -enum shmem_param { - Opt_gid = 0, - Opt_huge = 1, - Opt_mode = 2, - Opt_mpol = 3, - Opt_nr_blocks = 4, - Opt_nr_inodes = 5, - Opt_size = 6, - Opt_uid = 7, - Opt_inode32 = 8, - Opt_inode64 = 9, - Opt_noswap = 10, +struct fsl_edma3_ch_reg { + __le32 ch_csr; + __le32 ch_es; + __le32 ch_int; + __le32 ch_sbr; + __le32 ch_pri; + __le32 ch_mux; + __le32 ch_mattr; + __le32 ch_reserved; + struct fsl_edma_hw_tcd tcd; }; -enum { - MPOL_DEFAULT = 0, - MPOL_PREFERRED = 1, - MPOL_BIND = 2, - MPOL_INTERLEAVE = 3, - MPOL_LOCAL = 4, - MPOL_PREFERRED_MANY = 5, - MPOL_MAX = 6, +struct fsl_soc_data { + const char *sfp_compat; + u32 uid_offset; }; -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; - bool noswap; - ino_t next_ino; - ino_t __attribute__((btf_type_tag("percpu"))) *ino_batch; - struct mempolicy *mpol; - spinlock_t shrinklist_lock; - struct list_head shrinklist; - unsigned long shrinklist_len; +struct fsl_soc_die_attr { + char *die; + u32 svr; + u32 mask; }; -struct xattr; - -typedef int (*initxattrs)(struct inode *, const struct xattr *, void *); +struct qcom_rpm_header { + __le32 service_type; + __le32 length; +}; -struct xattr { - const char *name; - void *value; - size_t value_len; +struct qcom_rpm_request { + __le32 msg_id; + __le32 flags; + __le32 type; + __le32 id; + __le32 data_len; }; -struct shmem_falloc { - wait_queue_head_t *waitq; - unsigned long start; - unsigned long next; - unsigned long nr_falloced; - unsigned long nr_unswapped; +struct qcom_rpm_message { + __le32 msg_type; + __le32 length; + union { + __le32 msg_id; + struct { + struct {} __empty_message; + u8 message[0]; + }; + }; }; -struct shmem_options { - unsigned long long blocks; - unsigned long long inodes; - struct mempolicy *mpol; - kuid_t uid; - kgid_t gid; - umode_t mode; - bool full_inums; - int huge; - int seen; - bool noswap; +struct qcom_smd_rpm { + struct rpmsg_endpoint *rpm_channel; + struct device *dev; + struct completion ack; + struct mutex lock; + int ack_status; }; -typedef void (*btf_trace_mm_khugepaged_scan_pmd)(void *, struct mm_struct *, struct page *, bool, int, int, int, int); +struct rockchip_grf_value; -typedef void (*btf_trace_mm_collapse_huge_page)(void *, struct mm_struct *, int, int); +struct rockchip_grf_info { + const struct rockchip_grf_value *values; + int num_values; +}; -typedef void (*btf_trace_mm_collapse_huge_page_isolate)(void *, struct page *, int, int, bool, int); +struct rockchip_grf_value { + const char *desc; + u32 reg; + u32 val; +}; -typedef void (*btf_trace_mm_collapse_huge_page_swapin)(void *, struct mm_struct *, int, int, int); +struct k3_soc_id { + unsigned int id; + const char *family_name; +}; -typedef void (*btf_trace_mm_khugepaged_scan_file)(void *, struct mm_struct *, struct page *, struct file *, int, int, int); +struct imx_pgc_domain; -typedef void (*btf_trace_mm_khugepaged_collapse_file)(void *, struct mm_struct *, struct page *, unsigned long, bool, unsigned long, struct file *, int, int); +struct imx_pgc_regs; -struct collapse_control { - bool is_khugepaged; - u32 node_load[16]; - nodemask_t alloc_nmask; +struct imx_pgc_domain_data { + const struct imx_pgc_domain *domains; + size_t domains_num; + const struct regmap_access_table *reg_access_table; + const struct imx_pgc_regs *pgc_regs; }; -struct khugepaged_mm_slot; - -struct khugepaged_scan { - struct list_head mm_head; - struct khugepaged_mm_slot *mm_slot; - unsigned long address; +struct imx_pgc_domain { + struct generic_pm_domain genpd; + struct regmap *regmap; + const struct imx_pgc_regs *regs; + struct regulator *regulator; + struct reset_control *reset; + struct clk_bulk_data *clks; + int num_clks; + unsigned long pgc; + const struct { + u32 pxx; + u32 map; + u32 hskreq; + u32 hskack; + } bits; + const int voltage; + const bool keep_clocks; + struct device *dev; + unsigned int pgc_sw_pup_reg; + unsigned int pgc_sw_pdn_reg; }; -struct mm_slot { - struct hlist_node hash; - struct list_head mm_node; - struct mm_struct *mm; +struct imx_pgc_regs { + u16 map; + u16 pup; + u16 pdn; + u16 hsk; }; -struct khugepaged_mm_slot { - struct mm_slot slot; - int nr_pte_mapped_thp; - unsigned long pte_mapped_thp[8]; +struct grant_frames { + xen_pfn_t *pfn; + unsigned int count; + void *vaddr; }; -enum scan_result { - SCAN_FAIL = 0, - SCAN_SUCCEED = 1, - SCAN_PMD_NULL = 2, - SCAN_PMD_NONE = 3, - SCAN_PMD_MAPPED = 4, - SCAN_EXCEED_NONE_PTE = 5, - SCAN_EXCEED_SWAP_PTE = 6, - SCAN_EXCEED_SHARED_PTE = 7, - SCAN_PTE_NON_PRESENT = 8, - SCAN_PTE_UFFD_WP = 9, - SCAN_PTE_MAPPED_HUGEPAGE = 10, - SCAN_PAGE_RO = 11, - SCAN_LACK_REFERENCED_PAGE = 12, - SCAN_PAGE_NULL = 13, - SCAN_SCAN_ABORT = 14, - SCAN_PAGE_COUNT = 15, - SCAN_PAGE_LRU = 16, - SCAN_PAGE_LOCK = 17, - SCAN_PAGE_ANON = 18, - SCAN_PAGE_COMPOUND = 19, - SCAN_ANY_PROCESS = 20, - SCAN_VMA_NULL = 21, - SCAN_VMA_CHECK = 22, - SCAN_ADDRESS_RANGE = 23, - SCAN_DEL_PAGE_LRU = 24, - SCAN_ALLOC_HUGE_PAGE_FAIL = 25, - SCAN_CGROUP_CHARGE_FAIL = 26, - SCAN_TRUNCATED = 27, - SCAN_PAGE_HAS_PRIVATE = 28, - SCAN_STORE_FAILED = 29, - SCAN_COPY_MC = 30, - SCAN_PAGE_FILLED = 31, +struct gnttab_ops { + unsigned int version; + unsigned int grefs_per_grant_frame; + int (*map_frames)(xen_pfn_t *, unsigned int); + void (*unmap_frames)(); + void (*update_entry)(grant_ref_t, domid_t, unsigned long, unsigned int); + int (*end_foreign_access_ref)(grant_ref_t); + unsigned long (*read_frame)(grant_ref_t); }; -struct trace_event_raw_mm_khugepaged_scan_pmd { - struct trace_entry ent; - struct mm_struct *mm; - unsigned long pfn; - bool writable; - int referenced; - int none_or_zero; - int status; - int unmapped; - char __data[0]; +struct gnttab_free_callback { + struct gnttab_free_callback *next; + void (*fn)(void *); + void *arg; + u16 count; }; -struct trace_event_raw_mm_collapse_huge_page { - struct trace_entry ent; - struct mm_struct *mm; - int isolated; - int status; - char __data[0]; -}; +typedef uint16_t grant_status_t; -struct trace_event_raw_mm_collapse_huge_page_isolate { - struct trace_entry ent; - unsigned long pfn; - int none_or_zero; - int referenced; - bool writable; - int status; - char __data[0]; +struct grant_entry_v1 { + uint16_t flags; + domid_t domid; + uint32_t frame; }; -struct trace_event_raw_mm_collapse_huge_page_swapin { - struct trace_entry ent; - struct mm_struct *mm; - int swapped_in; - int referenced; - int ret; - char __data[0]; +struct grant_entry_header { + uint16_t flags; + domid_t domid; }; -struct trace_event_raw_mm_khugepaged_scan_file { - struct trace_entry ent; - struct mm_struct *mm; - unsigned long pfn; - u32 __data_loc_filename; - int present; - int swap; - int result; - char __data[0]; +union grant_entry_v2 { + struct grant_entry_header hdr; + struct { + struct grant_entry_header hdr; + uint32_t pad0; + uint64_t frame; + } full_page; + struct { + struct grant_entry_header hdr; + uint16_t page_off; + uint16_t length; + uint64_t frame; + } sub_page; + struct { + struct grant_entry_header hdr; + domid_t trans_domid; + uint16_t pad0; + grant_ref_t gref; + } transitive; + uint32_t __spacer[4]; }; -struct trace_event_raw_mm_khugepaged_collapse_file { - struct trace_entry ent; - struct mm_struct *mm; - unsigned long hpfn; - unsigned long index; - unsigned long addr; - bool is_shmem; - u32 __data_loc_filename; - int nr; - int result; - char __data[0]; +struct deferred_entry { + struct list_head list; + grant_ref_t ref; + uint16_t warn_delay; + struct page *page; }; -struct trace_event_data_offsets_mm_khugepaged_scan_file { - u32 filename; +struct xen_page_foreign { + domid_t domid; + grant_ref_t gref; }; -struct trace_event_data_offsets_mm_khugepaged_collapse_file { - u32 filename; -}; +struct gntab_unmap_queue_data; -struct trace_event_data_offsets_mm_khugepaged_scan_pmd {}; +typedef void (*gnttab_unmap_refs_done)(int, struct gntab_unmap_queue_data *); -struct trace_event_data_offsets_mm_collapse_huge_page {}; +struct gnttab_unmap_grant_ref; -struct trace_event_data_offsets_mm_collapse_huge_page_isolate {}; +struct gntab_unmap_queue_data { + struct delayed_work gnttab_work; + void *data; + gnttab_unmap_refs_done done; + struct gnttab_unmap_grant_ref *unmap_ops; + struct gnttab_unmap_grant_ref *kunmap_ops; + struct page **pages; + unsigned int count; + unsigned int age; +}; -struct trace_event_data_offsets_mm_collapse_huge_page_swapin {}; +typedef uint32_t grant_handle_t; -typedef __kernel_uid32_t qid_t; +struct gnttab_unmap_grant_ref { + uint64_t host_addr; + uint64_t dev_bus_addr; + grant_handle_t handle; + int16_t status; +}; -enum proc_param { - Opt_gid___2 = 0, - Opt_hidepid = 1, - Opt_subset = 2, +struct gnttab_query_size { + domid_t dom; + uint32_t nr_frames; + uint32_t max_nr_frames; + int16_t status; }; -struct proc_fs_context { - struct pid_namespace *pid_ns; - unsigned int mask; - enum proc_hidepid hidepid; - int gid; - enum proc_pidonly pidonly; +struct gnttab_page_cache { + spinlock_t lock; + struct list_head pages; + unsigned int num_pages; }; -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 gnttab_map_grant_ref { + uint64_t host_addr; + uint32_t flags; + grant_ref_t ref; + domid_t dom; + int16_t status; + grant_handle_t handle; + uint64_t dev_bus_addr; }; -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 gnttab_set_version { + uint32_t version; }; -struct fat_fid { - u32 i_gen; - u32 i_pos_low; - u16 i_pos_hi; - u16 parent_i_pos_hi; - u32 parent_i_pos_low; - u32 parent_i_gen; +struct gnttab_copy_ptr { + union { + grant_ref_t ref; + xen_pfn_t gmfn; + } u; + domid_t domid; + uint16_t offset; }; -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 gnttab_copy { + struct gnttab_copy_ptr source; + struct gnttab_copy_ptr dest; + uint16_t len; + uint16_t flags; + int16_t status; }; -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; +struct unmap_refs_callback_data { + struct completion completion; + int result; }; -typedef int (*nlm_host_match_fn_t)(void *, struct nlm_host *); +struct gnttab_setup_table { + domid_t dom; + uint32_t nr_frames; + int16_t status; + __guest_handle_xen_pfn_t frame_list; +}; -enum { - Opt_kmsg_bytes = 0, - Opt_err___2 = 1, +struct xen_add_to_physmap { + domid_t domid; + uint16_t size; + unsigned int space; + xen_ulong_t idx; + xen_pfn_t gpfn; }; -struct pstore_private { - struct list_head list; - struct dentry *dentry; - struct pstore_record *record; - size_t total_size; +typedef struct { + union { + uint64_t *p; + uint64_t q; + }; +} __guest_handle_uint64_t; + +struct gnttab_get_status_frames { + uint32_t nr_frames; + domid_t dom; + int16_t status; + __guest_handle_uint64_t frame_list; }; -struct pstore_ftrace_record { - unsigned long ip; - unsigned long parent_ip; - u64 ts; +enum device_id { + MAX8973 = 0, + MAX77621 = 1, }; -struct pstore_ftrace_seq_data { - const void *ptr; - size_t off; - size_t size; +struct max8973_regulator_platform_data { + struct regulator_init_data *reg_init_data; + unsigned long control_flags; + unsigned long junction_temp_warning; + bool enable_ext_control; + int enable_gpio; + int dvs_gpio; + unsigned int dvs_def_state: 1; }; -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 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; +struct max8973_chip { + struct device *dev; + struct regulator_desc desc; + struct regmap *regmap; + bool enable_external_control; + int dvs_gpio; + int lru_index[2]; + int curr_vout_val[2]; + int curr_vout_reg; + int curr_gpio_val; + struct regulator_ops ops; + enum device_id id; + int junction_temp_warning; + int irq; + struct thermal_zone_device *tz_device; }; -enum lsm_event { - LSM_POLICY_CHANGE = 0, +enum s2mps11_regulators { + S2MPS11_LDO1 = 0, + S2MPS11_LDO2 = 1, + S2MPS11_LDO3 = 2, + S2MPS11_LDO4 = 3, + S2MPS11_LDO5 = 4, + S2MPS11_LDO6 = 5, + S2MPS11_LDO7 = 6, + S2MPS11_LDO8 = 7, + S2MPS11_LDO9 = 8, + S2MPS11_LDO10 = 9, + S2MPS11_LDO11 = 10, + S2MPS11_LDO12 = 11, + S2MPS11_LDO13 = 12, + S2MPS11_LDO14 = 13, + S2MPS11_LDO15 = 14, + S2MPS11_LDO16 = 15, + S2MPS11_LDO17 = 16, + S2MPS11_LDO18 = 17, + S2MPS11_LDO19 = 18, + S2MPS11_LDO20 = 19, + S2MPS11_LDO21 = 20, + S2MPS11_LDO22 = 21, + S2MPS11_LDO23 = 22, + S2MPS11_LDO24 = 23, + S2MPS11_LDO25 = 24, + S2MPS11_LDO26 = 25, + S2MPS11_LDO27 = 26, + S2MPS11_LDO28 = 27, + S2MPS11_LDO29 = 28, + S2MPS11_LDO30 = 29, + S2MPS11_LDO31 = 30, + S2MPS11_LDO32 = 31, + S2MPS11_LDO33 = 32, + S2MPS11_LDO34 = 33, + S2MPS11_LDO35 = 34, + S2MPS11_LDO36 = 35, + S2MPS11_LDO37 = 36, + S2MPS11_LDO38 = 37, + S2MPS11_BUCK1 = 38, + S2MPS11_BUCK2 = 39, + S2MPS11_BUCK3 = 40, + S2MPS11_BUCK4 = 41, + S2MPS11_BUCK5 = 42, + S2MPS11_BUCK6 = 43, + S2MPS11_BUCK7 = 44, + S2MPS11_BUCK8 = 45, + S2MPS11_BUCK9 = 46, + S2MPS11_BUCK10 = 47, + S2MPS11_REGULATOR_MAX = 48, }; -struct msg_msgseg; - -struct msg_msg { - struct list_head m_list; - long m_type; - size_t m_ts; - struct msg_msgseg *next; - void *security; +enum s2mps14_regulators { + S2MPS14_LDO1 = 0, + S2MPS14_LDO2 = 1, + S2MPS14_LDO3 = 2, + S2MPS14_LDO4 = 3, + S2MPS14_LDO5 = 4, + S2MPS14_LDO6 = 5, + S2MPS14_LDO7 = 6, + S2MPS14_LDO8 = 7, + S2MPS14_LDO9 = 8, + S2MPS14_LDO10 = 9, + S2MPS14_LDO11 = 10, + S2MPS14_LDO12 = 11, + S2MPS14_LDO13 = 12, + S2MPS14_LDO14 = 13, + S2MPS14_LDO15 = 14, + S2MPS14_LDO16 = 15, + S2MPS14_LDO17 = 16, + S2MPS14_LDO18 = 17, + S2MPS14_LDO19 = 18, + S2MPS14_LDO20 = 19, + S2MPS14_LDO21 = 20, + S2MPS14_LDO22 = 21, + S2MPS14_LDO23 = 22, + S2MPS14_LDO24 = 23, + S2MPS14_LDO25 = 24, + S2MPS14_BUCK1 = 25, + S2MPS14_BUCK2 = 26, + S2MPS14_BUCK3 = 27, + S2MPS14_BUCK4 = 28, + S2MPS14_BUCK5 = 29, + S2MPS14_REGULATOR_MAX = 30, }; -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 S2MPU02_regulators { + S2MPU02_LDO1 = 0, + S2MPU02_LDO2 = 1, + S2MPU02_LDO3 = 2, + S2MPU02_LDO4 = 3, + S2MPU02_LDO5 = 4, + S2MPU02_LDO6 = 5, + S2MPU02_LDO7 = 6, + S2MPU02_LDO8 = 7, + S2MPU02_LDO9 = 8, + S2MPU02_LDO10 = 9, + S2MPU02_LDO11 = 10, + S2MPU02_LDO12 = 11, + S2MPU02_LDO13 = 12, + S2MPU02_LDO14 = 13, + S2MPU02_LDO15 = 14, + S2MPU02_LDO16 = 15, + S2MPU02_LDO17 = 16, + S2MPU02_LDO18 = 17, + S2MPU02_LDO19 = 18, + S2MPU02_LDO20 = 19, + S2MPU02_LDO21 = 20, + S2MPU02_LDO22 = 21, + S2MPU02_LDO23 = 22, + S2MPU02_LDO24 = 23, + S2MPU02_LDO25 = 24, + S2MPU02_LDO26 = 25, + S2MPU02_LDO27 = 26, + S2MPU02_LDO28 = 27, + S2MPU02_BUCK1 = 28, + S2MPU02_BUCK2 = 29, + S2MPU02_BUCK3 = 30, + S2MPU02_BUCK4 = 31, + S2MPU02_BUCK5 = 32, + S2MPU02_BUCK6 = 33, + S2MPU02_BUCK7 = 34, + S2MPU02_REGULATOR_MAX = 35, }; -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; +struct of_regulator_match { + const char *name; + void *driver_data; + struct regulator_init_data *init_data; + struct device_node *of_node; + const struct regulator_desc *desc; }; -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]; +struct s2mps11_info { + int ramp_delay2; + int ramp_delay34; + int ramp_delay5; + int ramp_delay16; + int ramp_delay7810; + int ramp_delay9; + enum sec_device_type dev_type; + unsigned long suspend_state[1]; + struct gpio_desc **ext_control_gpiod; }; -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; +struct msm_dma { + struct dma_chan *chan; + enum dma_data_direction dir; + dma_addr_t phys; + unsigned char *virt; + dma_cookie_t cookie; + u32 enable_bit; + unsigned int count; + struct dma_async_tx_descriptor *desc; }; -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; - -typedef struct { - struct folio *v; -} Sector; +struct msm_port { + struct uart_port uart; + char name[16]; + struct clk *clk; + struct clk *pclk; + unsigned int imr; + int is_uartdm; + unsigned int old_snap_state; + bool break_detected; + struct msm_dma tx_dma; + struct msm_dma rx_dma; +}; -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, +struct msm_baud_map { + u16 divisor; + u8 code; + u8 rxstale; }; enum { - EI_ETYPE_NULL = 0, - EI_ETYPE_ERRNO = 1, - EI_ETYPE_ERRNO_NULL = 2, - EI_ETYPE_TRUE = 3, + UARTDM_1P1 = 1, + UARTDM_1P2 = 2, + UARTDM_1P3 = 3, + UARTDM_1P4 = 4, }; -struct ei_entry { - struct list_head list; - unsigned long start_addr; - unsigned long end_addr; - int etype; - void *priv; +struct qcom_adm_peripheral_config { + u32 crci; + u32 mux; }; -struct bcm7038_l1_cpu; - -struct bcm7038_l1_chip { - raw_spinlock_t lock; - unsigned int n_words; - struct irq_domain *domain; - struct bcm7038_l1_cpu *cpus[256]; - struct list_head list; - u32 wake_mask[8]; - u32 irq_fwd_mask[8]; - u8 affinity[256]; +struct bcm2835_rng_of_data { + bool mask_interrupts; }; -struct bcm7038_l1_cpu { - void *map_base; - u32 mask_cache[0]; +struct bcm2835_rng_priv { + struct hwrng rng; + void *base; + bool mask_interrupts; + struct clk *clk; + struct reset_control *reset; }; -struct value_to_name_map { - int value; - const char *name; +enum bios_platform_class { + BIOS_CLIENT = 0, + BIOS_SERVER = 1, }; -struct brcm_usb_init_params; +struct client_hdr { + u32 log_max_len; + u64 log_start_addr; +} __attribute__((packed)); -struct match_chip_info { - void (*init_func)(struct brcm_usb_init_params *); - u8 required_regs[7]; - u8 optional_reg; +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; + }; }; -struct brcm_usb_init_ops; +struct acpi_table_tpm2 { + struct acpi_table_header header; + u16 platform_class; + u16 reserved; + u64 control_address; + u32 start_method; +} __attribute__((packed)); -struct brcm_usb_init_params { - void *regs[6]; - int ioc; - int ipp; - int supported_port_modes; - int port_mode; - u32 family_id; - u32 product_id; - int selected_family; - const char *family_name; - const u32 *usb_reg_bits_map; - const struct brcm_usb_init_ops *ops; - struct regmap *syscon_piarbctl; - bool wake_enabled; +struct acpi_tpm2_phy { + u8 start_method_specific[12]; + u32 log_area_minimum_length; + u64 log_area_start_address; }; -struct brcm_usb_init_ops { - void (*init_ipp)(struct brcm_usb_init_params *); - void (*init_common)(struct brcm_usb_init_params *); - void (*init_eohci)(struct brcm_usb_init_params *); - void (*init_xhci)(struct brcm_usb_init_params *); - void (*uninit_common)(struct brcm_usb_init_params *); - void (*uninit_eohci)(struct brcm_usb_init_params *); - void (*uninit_xhci)(struct brcm_usb_init_params *); - int (*get_dual_select)(struct brcm_usb_init_params *); - void (*set_dual_select)(struct brcm_usb_init_params *); +enum tegra_icc_client_type { + TEGRA_ICC_NONE = 0, + TEGRA_ICC_NISO = 1, + TEGRA_ICC_ISO_DISPLAY = 2, + TEGRA_ICC_ISO_VI = 3, + TEGRA_ICC_ISO_AUDIO = 4, + TEGRA_ICC_ISO_VIFAL = 5, }; -enum brcmusb_reg_sel { - BRCM_REGS_CTRL = 0, - BRCM_REGS_XHCI_EC = 1, - BRCM_REGS_XHCI_GBL = 2, - BRCM_REGS_USB_PHY = 3, - BRCM_REGS_USB_MDIO = 4, - BRCM_REGS_BDC_EC = 5, - BRCM_REGS_MAX = 6, -}; +struct tegra_smmu; -enum brcm_usb_phy_id { - BRCM_USB_PHY_2_0 = 0, - BRCM_USB_PHY_3_0 = 1, - BRCM_USB_PHY_ID_MAX = 2, -}; +struct tegra_smmu_group_soc; -struct brcm_usb_phy { - struct phy *phy; - unsigned int id; - bool inited; +struct tegra_smmu_group { + struct list_head list; + struct tegra_smmu *smmu; + const struct tegra_smmu_group_soc *soc; + struct iommu_group *group; + unsigned int swgroup; }; -struct brcm_usb_phy_data { - struct brcm_usb_init_params ini; - bool has_eohci; - bool has_xhci; - struct clk *usb_20_clk; - struct clk *usb_30_clk; - struct clk *suspend_clk; - struct mutex mutex; - int init_count; - int wake_irq; - struct brcm_usb_phy phys[2]; - struct notifier_block pm_notifier; - bool pm_active; -}; +struct tegra_mc; -enum { - PINCTRL_PIN_REG_MODE = 0, - PINCTRL_PIN_REG_DIR = 1, - PINCTRL_PIN_REG_DI = 2, - PINCTRL_PIN_REG_DO = 3, - PINCTRL_PIN_REG_SR = 4, - PINCTRL_PIN_REG_SMT = 5, - PINCTRL_PIN_REG_PD = 6, - PINCTRL_PIN_REG_PU = 7, - PINCTRL_PIN_REG_E4 = 8, - PINCTRL_PIN_REG_E8 = 9, - PINCTRL_PIN_REG_TDSEL = 10, - PINCTRL_PIN_REG_RDSEL = 11, - PINCTRL_PIN_REG_DRV = 12, - PINCTRL_PIN_REG_PUPD = 13, - PINCTRL_PIN_REG_R0 = 14, - PINCTRL_PIN_REG_R1 = 15, - PINCTRL_PIN_REG_IES = 16, - PINCTRL_PIN_REG_PULLEN = 17, - PINCTRL_PIN_REG_PULLSEL = 18, - PINCTRL_PIN_REG_DRV_EN = 19, - PINCTRL_PIN_REG_DRV_E0 = 20, - PINCTRL_PIN_REG_DRV_E1 = 21, - PINCTRL_PIN_REG_DRV_ADV = 22, - PINCTRL_PIN_REG_RSEL = 23, - PINCTRL_PIN_REG_MAX = 24, -}; +struct tegra_smmu_soc; -enum ioctrl_regs___2 { - POCCTRL0 = 0, - POCCTRL2 = 1, - TDSELCTRL___2 = 2, +struct tegra_smmu { + void *regs; + struct device *dev; + struct tegra_mc *mc; + const struct tegra_smmu_soc *soc; + struct list_head groups; + unsigned long pfn_mask; + unsigned long tlb_mask; + unsigned long *asids; + struct mutex lock; + struct list_head list; + struct dentry *debugfs; + struct iommu_device iommu; }; -enum { - GP_LAST = 209, - PIN_ASEBRK = 210, - PIN_AVB_MDC = 211, - PIN_AVB_MDIO = 212, - PIN_AVB_TD0 = 213, - PIN_AVB_TD1 = 214, - PIN_AVB_TD2 = 215, - PIN_AVB_TD3 = 216, - PIN_AVB_TXC = 217, - PIN_AVB_TX_CTL = 218, - PIN_FSCLKST_N = 219, - PIN_MLB_REF = 220, - PIN_PRESETOUT_N = 221, - PIN_TCK = 222, - PIN_TDI = 223, - PIN_TMS = 224, - PIN_TRST_N = 225, - PIN_VDDQ_AVB0 = 226, -}; +struct tegra_mc_soc; -enum tegra_pinconf_param { - TEGRA_PINCONF_PARAM_PULL = 0, - TEGRA_PINCONF_PARAM_TRISTATE = 1, - TEGRA_PINCONF_PARAM_ENABLE_INPUT = 2, - TEGRA_PINCONF_PARAM_OPEN_DRAIN = 3, - TEGRA_PINCONF_PARAM_LOCK = 4, - TEGRA_PINCONF_PARAM_IORESET = 5, - TEGRA_PINCONF_PARAM_RCV_SEL = 6, - TEGRA_PINCONF_PARAM_HIGH_SPEED_MODE = 7, - TEGRA_PINCONF_PARAM_SCHMITT = 8, - TEGRA_PINCONF_PARAM_LOW_POWER_MODE = 9, - TEGRA_PINCONF_PARAM_DRIVE_DOWN_STRENGTH = 10, - TEGRA_PINCONF_PARAM_DRIVE_UP_STRENGTH = 11, - TEGRA_PINCONF_PARAM_SLEW_RATE_FALLING = 12, - TEGRA_PINCONF_PARAM_SLEW_RATE_RISING = 13, - TEGRA_PINCONF_PARAM_DRIVE_TYPE = 14, -}; +struct tegra_mc_timing; -struct cfg_param { - const char *property; - enum tegra_pinconf_param param; +struct tegra_mc { + struct tegra_bpmp *bpmp; + struct device *dev; + struct tegra_smmu *smmu; + void *regs; + void *bcast_ch_regs; + void **ch_regs; + struct clk *clk; + int irq; + const struct tegra_mc_soc *soc; + unsigned long tick; + struct tegra_mc_timing *timings; + unsigned int num_timings; + unsigned int num_channels; + bool bwmgr_mrq_supported; + struct reset_controller_dev reset; + struct icc_provider provider; + spinlock_t lock; + struct { + struct dentry *root; + } debugfs; }; -struct tegra_pinctrl_soc_data; +struct tegra_mc_client; -struct tegra_function; +struct tegra_mc_reset_ops; -struct tegra_pmx { - struct device *dev; - struct pinctrl_dev *pctl; - const struct tegra_pinctrl_soc_data *soc; - struct tegra_function *functions; - const char **group_pins; - struct pinctrl_gpio_range gpio_range; - struct pinctrl_desc desc; - int nbanks; - void **regs; - u32 *backup_regs; -}; +struct tegra_mc_reset; -struct tegra_pingroup; +struct tegra_mc_icc_ops; -struct tegra_pinctrl_soc_data { - unsigned int ngpios; - const char *gpio_compatible; - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const char * const *functions; - unsigned int nfunctions; - const struct tegra_pingroup *groups; - unsigned int ngroups; - bool hsm_in_mux; - bool schmitt_in_mux; - bool drvtype_in_mux; - bool sfsel_in_mux; -}; +struct tegra_mc_ops; -struct tegra_pingroup { - const char *name; - const unsigned int *pins; - u8 npins; - u8 funcs[4]; - s32 mux_reg; - s32 pupd_reg; - s32 tri_reg; - s32 drv_reg; - u32 mux_bank: 2; - u32 pupd_bank: 2; - u32 tri_bank: 2; - u32 drv_bank: 2; - s32 mux_bit: 6; - s32 pupd_bit: 6; - s32 tri_bit: 6; - s32 einput_bit: 6; - s32 odrain_bit: 6; - s32 lock_bit: 6; - s32 ioreset_bit: 6; - s32 rcv_sel_bit: 6; - s32 hsm_bit: 6; - long: 2; - s32 sfsel_bit: 6; - s32 schmitt_bit: 6; - s32 lpmd_bit: 6; - s32 drvdn_bit: 6; - s32 drvup_bit: 6; - int: 2; - s32 slwr_bit: 6; - s32 slwf_bit: 6; - s32 lpdr_bit: 6; - s32 drvtype_bit: 6; - s32 drvdn_width: 6; - long: 2; - s32 drvup_width: 6; - s32 slwr_width: 6; - s32 slwf_width: 6; - u32 parked_bitmask; +struct tegra_mc_soc { + const struct tegra_mc_client *clients; + unsigned int num_clients; + const unsigned long *emem_regs; + unsigned int num_emem_regs; + unsigned int num_address_bits; + unsigned int atom_size; + unsigned int num_carveouts; + u16 client_id_mask; + u8 num_channels; + const struct tegra_smmu_soc *smmu; + u32 intmask; + u32 ch_intmask; + u32 global_intstatus_channel_shift; + bool has_addr_hi_reg; + const struct tegra_mc_reset_ops *reset_ops; + const struct tegra_mc_reset *resets; + unsigned int num_resets; + const struct tegra_mc_icc_ops *icc_ops; + const struct tegra_mc_ops *ops; }; -struct tegra_function { +struct tegra_mc_client { + unsigned int id; + unsigned int bpmp_id; + enum tegra_icc_client_type type; const char *name; - const char **groups; - unsigned int ngroups; -}; - -struct pl061_context_save_regs { - u8 gpio_data; - u8 gpio_dir; - u8 gpio_is; - u8 gpio_ibe; - u8 gpio_iev; - u8 gpio_ie; + union { + unsigned int swgroup; + unsigned int sid; + }; + unsigned int fifo_size; + struct { + struct { + unsigned int reg; + unsigned int bit; + } smmu; + struct { + unsigned int reg; + unsigned int shift; + unsigned int mask; + unsigned int def; + } la; + struct { + unsigned int override; + unsigned int security; + } sid; + } regs; }; -struct pl061 { - raw_spinlock_t lock; - void *base; - struct gpio_chip gc; - int parent_irq; - struct pl061_context_save_regs csave_regs; -}; +struct tegra_smmu_swgroup; -struct pci_dev_reset_methods { - u16 vendor; - u16 device; - int (*reset)(struct pci_dev *, bool); +struct tegra_smmu_soc { + const struct tegra_mc_client *clients; + unsigned int num_clients; + const struct tegra_smmu_swgroup *swgroups; + unsigned int num_swgroups; + const struct tegra_smmu_group_soc *groups; + unsigned int num_groups; + bool supports_round_robin_arbitration; + bool supports_request_limit; + unsigned int num_tlb_lines; + unsigned int num_asids; }; -struct pci_dev_acs_enabled { - u16 vendor; - u16 device; - int (*acs_enabled)(struct pci_dev *, u16); +struct tegra_smmu_swgroup { + const char *name; + unsigned int swgroup; + unsigned int reg; }; -struct pci_dev_acs_ops { - u16 vendor; - u16 device; - int (*enable_acs)(struct pci_dev *); - int (*disable_acs_redir)(struct pci_dev *); +struct tegra_smmu_group_soc { + const char *name; + const unsigned int *swgroups; + unsigned int num_swgroups; }; -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 tegra_mc_reset_ops { + int (*hotreset_assert)(struct tegra_mc *, const struct tegra_mc_reset *); + int (*hotreset_deassert)(struct tegra_mc *, const struct tegra_mc_reset *); + int (*block_dma)(struct tegra_mc *, const struct tegra_mc_reset *); + bool (*dma_idling)(struct tegra_mc *, const struct tegra_mc_reset *); + int (*unblock_dma)(struct tegra_mc *, const struct tegra_mc_reset *); + int (*reset_status)(struct tegra_mc *, const struct tegra_mc_reset *); }; -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, +struct tegra_mc_reset { + const char *name; + unsigned long id; + unsigned int control; + unsigned int status; + unsigned int reset; + unsigned int bit; }; -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, +struct tegra_mc_icc_ops { + int (*set)(struct icc_node *, struct icc_node *); + int (*aggregate)(struct icc_node *, u32, u32, u32, u32 *, u32 *); + struct icc_node * (*xlate)(struct of_phandle_args *, void *); + struct icc_node_data * (*xlate_extended)(struct of_phandle_args *, void *); + int (*get_bw)(struct icc_node *, u32 *, u32 *); }; -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, +struct tegra_mc_ops { + int (*probe)(struct tegra_mc *); + void (*remove)(struct tegra_mc *); + irqreturn_t (*handle_irq)(int, void *); + int (*probe_device)(struct tegra_mc *, struct device *); }; -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, +struct tegra_mc_timing { + unsigned long rate; + u32 *emem_data; }; -enum { - SWITCHTEC_NTB_REG_INFO_OFFSET = 0, - SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384, - SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600, +struct tegra_smmu_as { + struct iommu_domain domain; + struct tegra_smmu *smmu; + unsigned int use_count; + spinlock_t lock; + u32 *count; + struct page **pts; + struct page *pd; + dma_addr_t pd_dma; + unsigned int id; + u32 attr; }; -struct pci_fixup { - u16 vendor; - u16 device; - u32 class; - unsigned int class_shift; - int hook_offset; -}; +typedef int (*regmap_hw_write)(void *, const void *, size_t); -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 int (*regmap_hw_gather_write)(void *, const void *, size_t, const void *, size_t); -struct nt_partition_info { - u32 xlink_enabled; - u32 target_part_low; - u32 target_part_high; - u32 reserved; -}; +struct regmap_async; -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)); +typedef int (*regmap_hw_async_write)(void *, const void *, size_t, const void *, size_t, struct regmap_async *); -struct fb_modelist { - struct list_head list; - struct fb_videomode mode; -}; +typedef int (*regmap_hw_reg_write)(void *, unsigned int, unsigned int); -typedef u32 acpi_name; +typedef int (*regmap_hw_reg_noinc_write)(void *, unsigned int, const void *, size_t); -struct acpi_iort_node; +typedef int (*regmap_hw_reg_update_bits)(void *, unsigned int, unsigned int, unsigned int); -struct iort_dev_config { - const char *name; - int (*dev_init)(struct acpi_iort_node *); - void (*dev_dma_configure)(struct device *, struct acpi_iort_node *); - int (*dev_count_resources)(struct acpi_iort_node *); - void (*dev_init_resources)(struct resource *, struct acpi_iort_node *); - int (*dev_set_proximity)(struct device *, struct acpi_iort_node *); - int (*dev_add_platdata)(struct platform_device *); -}; +typedef int (*regmap_hw_read)(void *, const void *, size_t, void *, size_t); -struct acpi_iort_node { - u8 type; - u16 length; - u8 revision; - u32 identifier; - u32 mapping_count; - u32 mapping_offset; - char node_data[0]; -} __attribute__((packed)); +typedef int (*regmap_hw_reg_read)(void *, unsigned int, unsigned int *); -enum acpi_iort_node_type { - ACPI_IORT_NODE_ITS_GROUP = 0, - ACPI_IORT_NODE_NAMED_COMPONENT = 1, - ACPI_IORT_NODE_PCI_ROOT_COMPLEX = 2, - ACPI_IORT_NODE_SMMU = 3, - ACPI_IORT_NODE_SMMU_V3 = 4, - ACPI_IORT_NODE_PMCG = 5, - ACPI_IORT_NODE_RMR = 6, -}; +typedef int (*regmap_hw_reg_noinc_read)(void *, unsigned int, void *, size_t); -struct iort_its_msi_chip { - struct list_head list; - struct fwnode_handle *fw_node; - phys_addr_t base_addr; - u32 translation_id; -}; +typedef void (*regmap_hw_free_context)(void *); -struct acpi_iort_named_component { - u32 node_flags; - u64 memory_properties; - u8 memory_address_limit; - char device_name[0]; -} __attribute__((packed)); +typedef struct regmap_async * (*regmap_hw_async_alloc)(); -struct acpi_iort_root_complex { - u64 memory_properties; - u32 ats_attribute; - u32 pci_segment_number; - u8 memory_address_limit; - u16 pasid_capabilities; - u8 reserved[0]; -} __attribute__((packed)); +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 iort_fwnode { +struct regmap_async { struct list_head list; - struct acpi_iort_node *iort_node; - struct fwnode_handle *fwnode; + struct regmap *map; + void *work_buf; }; -struct acpi_iort_id_mapping { - u32 input_base; - u32 id_count; - u32 output_base; - u32 output_reference; - u32 flags; +struct regmap_format { + size_t buf_size; + size_t reg_bytes; + size_t pad_bytes; + size_t val_bytes; + s8 reg_shift; + 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 acpi_iort_smmu_v3 { - u64 base_address; - u32 flags; - u32 reserved; - u64 vatos_address; - u32 model; - u32 event_gsiv; - u32 pri_gsiv; - u32 gerr_gsiv; - u32 sync_gsiv; - u32 pxm; - u32 id_mapping_index; -} __attribute__((packed)); +struct regcache_ops; -struct acpi_iort_pmcg { - u64 page0_base_address; - u32 overflow_gsiv; - u32 node_reference; - u64 page1_base_address; +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; + bool force_write_field; + 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; }; -struct acpi_iort_its_group { - u32 its_count; - u32 identifiers[0]; +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); }; -struct acpi_table_iort { - struct acpi_table_header header; - u32 node_count; - u32 node_offset; - u32 reserved; +enum hi6421_type { + HI6421 = 0, + HI6421_V530 = 1, }; -struct acpi_iort_rmr { - u32 flags; - u32 rmr_count; - u32 rmr_offset; +enum scsi_devinfo_key { + SCSI_DEVINFO_GLOBAL = 0, + SCSI_DEVINFO_SPI = 1, }; -struct acpi_iort_rmr_desc { - u64 base_address; - u64 length; - u32 reserved; -} __attribute__((packed)); - -struct iommu_iort_rmr_data { - struct iommu_resv_region rr; - const u32 *sids; - u32 num_sids; +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 acpi_iort_smmu { - u64 base_address; - u64 span; - u32 model; - u32 flags; - u32 global_interrupt_offset; - u32 context_interrupt_count; - u32 context_interrupt_offset; - u32 pmu_interrupt_count; - u32 pmu_interrupt_offset; - u64 interrupts[0]; -} __attribute__((packed)); - -typedef acpi_status (*iort_find_node_callback)(struct acpi_iort_node *, void *); - -struct iort_pci_alias_info { - struct device *dev; - struct acpi_iort_node *node; +struct scsi_dev_info_list_table { + struct list_head node; + struct list_head scsi_dev_info_list; + const char *name; + int key; }; -struct owl_mux { - struct owl_mux_hw mux_hw; - struct owl_clk_common common; +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 hi6220_stub_clk { - u32 id; - struct device *dev; - struct clk_hw hw; - struct regmap *dfs_map; - struct mbox_client cl; - struct mbox_chan *mbox; +struct mtd_concat { + struct mtd_info mtd; + int num_subdev; + struct mtd_info **subdev; }; -struct hi6220_mbox_msg { - unsigned char type; - unsigned char cmd; - unsigned char obj; - unsigned char src; - unsigned char para[4]; +struct spi_device_id; + +struct spi_driver { + const struct spi_device_id *id_table; + int (*probe)(struct spi_device *); + void (*remove)(struct spi_device *); + void (*shutdown)(struct spi_device *); + struct device_driver driver; }; -union hi6220_mbox_data { - unsigned int data[8]; - struct hi6220_mbox_msg msg; +struct spi_device_id { + char name[32]; + kernel_ulong_t driver_data; }; -struct ma35d1_clk_pll { - struct clk_hw hw; - u32 id; - u8 mode; - void *ctl0_base; - void *ctl1_base; - void *ctl2_base; +struct flash_info___2 { + const char *name; + uint16_t device_id; + unsigned int page_size; + unsigned int nr_pages; + unsigned int erase_size; }; -struct clk_rk3399_inits { - void (*inits)(struct device_node *); +struct sst25l_flash { + struct spi_device *spi; + struct mutex lock; + struct mtd_info mtd; }; -enum { - DOWN___3 = 0, - UP___3 = 1, +struct flash_platform_data { + char *name; + struct mtd_partition *parts; + unsigned int nr_parts; + char *type; }; -typedef void (*btf_trace_tegra_dma_tx_status)(void *, struct dma_chan *, dma_cookie_t, struct dma_tx_state *); +struct spi_mem_driver { + struct spi_driver spidrv; + int (*probe)(struct spi_mem *); + int (*remove)(struct spi_mem *); + void (*shutdown)(struct spi_mem *); +}; -typedef void (*btf_trace_tegra_dma_complete_cb)(void *, struct dma_chan *, int, void *); +struct cqspi_flash_pdata; -typedef void (*btf_trace_tegra_dma_isr)(void *, struct dma_chan *, int); +struct cqspi_st; -struct tegra_dma_chip_data___2 { - unsigned int nr_channels; - unsigned int channel_reg_size; - unsigned int max_dma_count; - bool support_channel_pause; - bool support_separate_wcount_reg; +struct cqspi_driver_platdata { + u32 hwcaps_mask; + u8 quirks; + int (*indirect_read_dma)(struct cqspi_flash_pdata *, u_char *, loff_t, size_t); + u32 (*get_dma_status)(struct cqspi_st *); + int (*jh7110_clk_init)(struct platform_device *, struct cqspi_st *); }; -struct trace_event_raw_tegra_dma_tx_status { - struct trace_entry ent; - u32 __data_loc_chan; - dma_cookie_t cookie; - __u32 residue; - char __data[0]; +struct cqspi_flash_pdata { + struct cqspi_st *cqspi; + u32 clk_rate; + u32 read_delay; + u32 tshsl_ns; + u32 tsd2d_ns; + u32 tchsh_ns; + u32 tslch_ns; + u8 cs; }; -struct trace_event_raw_tegra_dma_complete_cb { - struct trace_entry ent; - u32 __data_loc_chan; - int count; - void *ptr; - char __data[0]; +struct cqspi_st { + struct platform_device *pdev; + struct spi_controller *host; + struct clk *clk; + struct clk *clks[2]; + unsigned int sclk; + void *iobase; + void *ahb_base; + resource_size_t ahb_size; + struct completion transfer_complete; + struct dma_chan *rx_chan; + struct completion rx_dma_complete; + dma_addr_t mmap_phys_base; + int current_cs; + unsigned long master_ref_clk_hz; + bool is_decoded_cs; + u32 fifo_depth; + u32 fifo_width; + u32 num_chipselect; + bool rclk_en; + u32 trigger_address; + u32 wr_delay; + bool use_direct_mode; + bool use_direct_mode_wr; + struct cqspi_flash_pdata f_pdata[16]; + bool use_dma_read; + u32 pd_dev_id; + bool wr_completion; + bool slow_sram; + bool apb_ahb_hazard; + bool is_jh7110; }; -struct trace_event_raw_tegra_dma_isr { - struct trace_entry ent; - u32 __data_loc_chan; - int irq; - char __data[0]; +enum { + CLK_QSPI_APB = 0, + CLK_QSPI_AHB = 1, + CLK_QSPI_NUM = 2, }; -struct tegra_dma_channel___2; - -typedef void (*dma_isr_handler)(struct tegra_dma_channel___2 *, bool); - -struct tegra_dma_channel_regs___2 { - u32 csr; - u32 ahb_ptr; - u32 apb_ptr; - u32 ahb_seq; - u32 apb_seq; - u32 wcount; +enum ospi_mux_select_type { + PM_OSPI_MUX_SEL_DMA = 0, + PM_OSPI_MUX_SEL_LINEAR = 1, }; -struct tegra_dma___2; - -struct tegra_dma_channel___2 { - struct dma_chan dma_chan; - char name[12]; - bool config_init; - unsigned int id; - void *chan_addr; - spinlock_t lock; - bool busy; - struct tegra_dma___2 *tdma; - bool cyclic; - struct list_head free_sg_req; - struct list_head pending_sg_req; - struct list_head free_dma_desc; - struct list_head cb_desc; - dma_isr_handler isr_handler; - struct tasklet_struct tasklet; - unsigned int slave_id; - struct dma_slave_config dma_sconfig; - struct tegra_dma_channel_regs___2 channel_reg; - struct wait_queue_head wq; +struct fec_stat { + char name[32]; + u16 offset; }; -struct tegra_dma___2 { - struct dma_device dma_dev; - struct device *dev; - struct clk *dma_clk; - struct reset_control *rst; - spinlock_t global_lock; - void *base_addr; - const struct tegra_dma_chip_data___2 *chip_data; - u32 global_pause_count; - struct tegra_dma_channel___2 channels[0]; +struct fec_devinfo { + u32 quirks; }; -struct tegra_dma_desc___2 { - struct dma_async_tx_descriptor txd; - unsigned int bytes_requested; - unsigned int bytes_transferred; - enum dma_status dma_status; - struct list_head node; - struct list_head tx_list; - struct list_head cb_node; - unsigned int cb_count; +enum fec_txbuf_type { + FEC_TXBUF_T_SKB = 0, + FEC_TXBUF_T_XDP_NDO = 1, + FEC_TXBUF_T_XDP_TX = 2, }; -struct tegra_dma_sg_req___2 { - struct tegra_dma_channel_regs___2 ch_regs; - unsigned int req_len; - bool configured; - bool last_sg; - struct list_head node; - struct tegra_dma_desc___2 *dma_desc; - unsigned int words_xferred; +enum { + RX_XDP_REDIRECT = 0, + RX_XDP_PASS = 1, + RX_XDP_DROP = 2, + RX_XDP_TX = 3, + RX_XDP_TX_ERRORS = 4, + TX_XDP_XMIT = 5, + TX_XDP_XMIT_ERRORS = 6, + XDP_STATS_TOTAL = 7, }; -struct trace_event_data_offsets_tegra_dma_tx_status { - u32 chan; +struct bufdesc { + __le16 cbd_datlen; + __le16 cbd_sc; + __le32 cbd_bufaddr; }; -struct trace_event_data_offsets_tegra_dma_complete_cb { - u32 chan; +struct bufdesc_ex { + struct bufdesc desc; + __le32 cbd_esc; + __le32 cbd_prot; + __le32 cbd_bdu; + __le32 ts; + __le16 res0[4]; }; -struct trace_event_data_offsets_tegra_dma_isr { - u32 chan; +struct fec_stop_mode_gpr { + struct regmap *gpr; + u8 reg; + u8 bit; }; -struct rsc_drv; +struct fec_enet_priv_tx_q; -struct tcs_request; +struct fec_enet_priv_rx_q; -typedef void (*btf_trace_rpmh_tx_done)(void *, struct rsc_drv *, int, const struct tcs_request *); +struct fec_enet_private { + void *hwp; + struct net_device *netdev; + struct clk *clk_ipg; + struct clk *clk_ahb; + struct clk *clk_ref; + struct clk *clk_enet_out; + struct clk *clk_ptp; + struct clk *clk_2x_txclk; + bool ptp_clk_on; + struct mutex ptp_clk_mutex; + unsigned int num_tx_queues; + unsigned int num_rx_queues; + struct fec_enet_priv_tx_q *tx_queue[3]; + struct fec_enet_priv_rx_q *rx_queue[3]; + unsigned int total_tx_ring_size; + unsigned int total_rx_ring_size; + struct platform_device *pdev; + int dev_id; + struct mii_bus *mii_bus; + uint phy_speed; + phy_interface_t phy_interface; + struct device_node *phy_node; + bool rgmii_txc_dly; + bool rgmii_rxc_dly; + bool rpm_active; + int link; + int full_duplex; + int speed; + int irq[3]; + bool bufdesc_ex; + int pause_flag; + int wol_flag; + int wake_irq; + u32 quirks; + struct napi_struct napi; + int csum_flags; + struct work_struct tx_timeout_work; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_caps; + spinlock_t tmreg_lock; + struct cyclecounter cc; + struct timecounter tc; + u32 cycle_speed; + int hwts_rx_en; + int hwts_tx_en; + struct delayed_work time_keep; + struct regulator *reg_phy; + struct fec_stop_mode_gpr stop_gpr; + struct pm_qos_request pm_qos_req; + unsigned int tx_align; + unsigned int rx_align; + unsigned int rx_pkts_itr; + unsigned int rx_time_itr; + unsigned int tx_pkts_itr; + unsigned int tx_time_itr; + unsigned int itr_clk_rate; + struct ethtool_eee eee; + unsigned int clk_ref_rate; + unsigned int ptp_inc; + int pps_channel; + unsigned int reload_period; + int pps_enable; + unsigned int next_counter; + struct hrtimer perout_timer; + u64 perout_stime; + struct imx_sc_ipc *ipc_handle; + struct bpf_prog *xdp_prog; + u64 ethtool_stats[0]; +}; -struct tcs_group { - struct rsc_drv *drv; - int type; - u32 mask; - u32 offset; - int num_tcs; - int ncpt; - const struct tcs_request *req[3]; - unsigned long slots[1]; +struct bufdesc_prop { + int qid; + struct bufdesc *base; + struct bufdesc *last; + struct bufdesc *cur; + void *reg_desc_active; + dma_addr_t dma; + unsigned short ring_size; + unsigned char dsize; + unsigned char dsize_log2; }; -struct rpmh_ctrlr { - struct list_head cache; - spinlock_t cache_lock; - bool dirty; - struct list_head batch_cache; +struct fec_tx_buffer { + void *buf_p; + enum fec_txbuf_type type; }; -struct rsc_ver { - u32 major; - u32 minor; +struct fec_enet_priv_tx_q { + struct bufdesc_prop bd; + unsigned char *tx_bounce[1024]; + struct fec_tx_buffer tx_buf[1024]; + unsigned short tx_stop_threshold; + unsigned short tx_wake_threshold; + struct bufdesc *dirty_tx; + char *tso_hdrs; + dma_addr_t tso_hdrs_dma; }; -struct rsc_drv { - const char *name; - void *base; - void *tcs_base; - int id; - int num_tcs; - struct notifier_block rsc_pm; - struct notifier_block genpd_nb; - atomic_t cpus_in_pm; - struct tcs_group tcs[4]; - unsigned long tcs_in_use[1]; - spinlock_t lock; - wait_queue_head_t tcs_wait; - struct rpmh_ctrlr client; - struct device *dev; - struct rsc_ver ver; - u32 *regs; +struct fec_enet_priv_txrx_info { + int offset; + struct page *page; + struct sk_buff *skb; }; -struct tcs_request { - enum rpmh_state state; - u32 wait_for_compl; - u32 num_cmds; - struct tcs_cmd *cmds; +struct fec_enet_priv_rx_q { + struct bufdesc_prop bd; + struct fec_enet_priv_txrx_info rx_skb_info[256]; + struct page_pool *page_pool; + struct xdp_rxq_info xdp_rxq; + u32 stats[7]; + u8 id; + long: 64; + long: 64; + long: 64; + long: 64; }; -typedef void (*btf_trace_rpmh_send_msg)(void *, struct rsc_drv *, int, int, u32, const struct tcs_cmd *); +struct fec_dma_devres { + size_t size; + void *vaddr; + dma_addr_t dma_handle; +}; -enum { - RSC_DRV_TCS_OFFSET = 0, - RSC_DRV_CMD_OFFSET = 1, - DRV_SOLVER_CONFIG = 2, - DRV_PRNT_CHLD_CONFIG = 3, - RSC_DRV_IRQ_ENABLE = 4, - RSC_DRV_IRQ_STATUS = 5, - RSC_DRV_IRQ_CLEAR = 6, - RSC_DRV_CMD_WAIT_FOR_CMPL = 7, - RSC_DRV_CONTROL = 8, - RSC_DRV_STATUS = 9, - RSC_DRV_CMD_ENABLE = 10, - RSC_DRV_CMD_MSGID = 11, - RSC_DRV_CMD_ADDR = 12, - RSC_DRV_CMD_DATA = 13, - RSC_DRV_CMD_STATUS = 14, - RSC_DRV_CMD_RESP_DATA = 15, +struct fec_platform_data { + phy_interface_t phy; + unsigned char mac[6]; + void (*sleep_mode_enable)(int); }; -enum genpd_notication { - GENPD_NOTIFY_PRE_OFF = 0, - GENPD_NOTIFY_OFF = 1, - GENPD_NOTIFY_PRE_ON = 2, - GENPD_NOTIFY_ON = 3, +struct page_pool_stats { + struct page_pool_alloc_stats alloc_stats; + struct page_pool_recycle_stats recycle_stats; }; -struct trace_event_raw_rpmh_tx_done { - struct trace_entry ent; - u32 __data_loc_name; - int m; - u32 addr; - u32 data; - char __data[0]; +struct mac_stats_string { + const char desc[32]; + unsigned long offset; }; -struct trace_event_raw_rpmh_send_msg { - struct trace_entry ent; - u32 __data_loc_name; - int m; - int n; - u32 hdr; - u32 addr; - u32 data; - bool wait; - char __data[0]; +enum mac_mode { + MAC_MODE_INVALID = 0, + MAC_MODE_MII_10 = 65546, + MAC_MODE_MII_100 = 65636, + MAC_MODE_RMII_10 = 131082, + MAC_MODE_RMII_100 = 131172, + MAC_MODE_SMII_10 = 196618, + MAC_MODE_SMII_100 = 196708, + MAC_MODE_GMII_1000 = 263144, + MAC_MODE_RGMII_10 = 327690, + MAC_MODE_RGMII_100 = 327780, + MAC_MODE_RGMII_1000 = 328680, + MAC_MODE_TBI_1000 = 394216, + MAC_MODE_RTBI_1000 = 459752, + MAC_MODE_SGMII_10 = 524298, + MAC_MODE_SGMII_100 = 524388, + MAC_MODE_SGMII_1000 = 525288, + MAC_MODE_XGMII_10000 = 599824, + MAC_MODE_QSGMII_1000 = 656360, }; -struct trace_event_data_offsets_rpmh_tx_done { - u32 name; +enum mac_commom_mode { + MAC_COMM_MODE_NONE = 0, + MAC_COMM_MODE_RX = 1, + MAC_COMM_MODE_TX = 2, + MAC_COMM_MODE_RX_AND_TX = 3, }; -struct trace_event_data_offsets_rpmh_send_msg { - u32 name; +enum mac_speed { + MAC_SPEED_10 = 10, + MAC_SPEED_100 = 100, + MAC_SPEED_1000 = 1000, + MAC_SPEED_10000 = 10000, }; -struct tcs_type_config { - u32 type; - u32 n; +enum hns_gmac_duplex_mdoe { + GMAC_HALF_DUPLEX_MODE = 0, + GMAC_FULL_DUPLEX_MODE = 1, }; -struct balloon_stats { - unsigned long current_pages; - unsigned long target_pages; - unsigned long target_unpopulated; - unsigned long balloon_low; - unsigned long balloon_high; - unsigned long total_pages; - unsigned long schedule_delay; - unsigned long max_schedule_delay; - unsigned long retry_count; - unsigned long max_retry_count; +enum hns_port_mode { + GMAC_10M_MII = 0, + GMAC_100M_MII = 1, + GMAC_1000M_GMII = 2, + GMAC_10M_RGMII = 3, + GMAC_100M_RGMII = 4, + GMAC_1000M_RGMII = 5, + GMAC_10M_SGMII = 6, + GMAC_100M_SGMII = 7, + GMAC_1000M_SGMII = 8, + GMAC_10000M_SGMII = 9, }; -enum bp_state { - BP_DONE = 0, - BP_WAIT = 1, - BP_EAGAIN = 2, - BP_ECANCELED = 3, +struct mac_info; + +struct mac_driver { + void (*mac_init)(void *); + void (*mac_free)(void *); + void (*mac_enable)(void *, enum mac_commom_mode); + void (*mac_disable)(void *, enum mac_commom_mode); + void (*set_mac_addr)(void *, const char *); + int (*adjust_link)(void *, enum mac_speed, u32); + bool (*need_adjust_link)(void *, enum mac_speed, int); + void (*set_an_mode)(void *, u8); + int (*config_loopback)(void *, enum hnae_loop, u8); + void (*config_max_frame_length)(void *, u16); + void (*config_pad_and_crc)(void *, u8); + void (*set_tx_auto_pause_frames)(void *, u16); + void (*set_promiscuous)(void *, u8); + void (*mac_pausefrm_cfg)(void *, u32, u32); + void (*autoneg_stat)(void *, u32 *); + int (*set_pause_enable)(void *, u32, u32); + void (*get_pause_enable)(void *, u32 *, u32 *); + void (*get_link_status)(void *, u32 *); + void (*get_regs)(void *, void *); + int (*get_regs_count)(); + void (*get_strings)(u32, u8 *); + int (*get_sset_count)(int); + void (*get_ethtool_stats)(void *, u64 *); + void (*get_info)(void *, struct mac_info *); + void (*update_stats)(void *); + int (*wait_fifo_clean)(void *); + enum mac_mode mac_mode; + u8 mac_id; + struct hns_mac_cb *mac_cb; + u8 *io_base; + unsigned int mac_en_flg; + unsigned int virt_dev_num; + struct device *dev; }; -typedef int mhp_t; +struct mac_info { + u16 speed; + u8 duplex; + u8 auto_neg; + enum hnae_loop loop_mode; + u8 tx_pause_en; + u8 tx_pause_time; + u8 rx_pause_en; + u8 pad_and_crc_en; + u8 promiscuous_en; + u8 port_en; +}; -typedef void (*online_page_callback_t)(struct page *, unsigned int); +struct hns_gmac_port_mode_cfg { + enum hns_port_mode port_mode; + u32 max_frm_size; + u32 short_runts_thr; + u32 pad_enable; + u32 crc_add; + u32 an_enable; + u32 runt_pkt_en; + u32 strip_pad_en; +}; -enum rohm_chip_type { - ROHM_CHIP_TYPE_BD9571 = 0, - ROHM_CHIP_TYPE_BD9573 = 1, - ROHM_CHIP_TYPE_BD9574 = 2, - ROHM_CHIP_TYPE_BD9576 = 3, - ROHM_CHIP_TYPE_BD71815 = 4, - ROHM_CHIP_TYPE_BD71828 = 5, - ROHM_CHIP_TYPE_BD71837 = 6, - ROHM_CHIP_TYPE_BD71847 = 7, - ROHM_CHIP_TYPE_AMOUNT = 8, +struct mac_params { + char addr[6]; + u8 *vaddr; + struct device *dev; + u8 mac_id; + enum mac_mode mac_mode; }; -enum bd9571mwv_regulators { - VD09 = 0, - VD18 = 1, - VD25 = 2, - VD33 = 3, - DVFS = 4, +struct sky2_stat { + char name[32]; + u16 offset; }; -struct bd9571mwv_reg { - struct regmap *regmap; - u8 bkup_mode_cnt_keepon; - u8 bkup_mode_cnt_saved; - bool bkup_mode_enabled; - bool rstbmode_level; - bool rstbmode_pulse; +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, }; -struct imx7_src_signal; +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, +}; -struct imx7_src_variant { - const struct imx7_src_signal *signals; - unsigned int signals_num; - struct reset_control_ops ops; +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, }; -struct imx7_src_signal { - unsigned int offset; - unsigned int bit; +enum { + CFG_CHIP_R_MSK = 240, + CFG_DIS_M2_CLK = 2, + CFG_SNG_MAC = 1, }; -struct imx7_src { - struct reset_controller_dev rcdev; - struct regmap *regmap; - const struct imx7_src_signal *signals; +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, }; -struct con_driver { - const struct consw *con; - const char *desc; - struct device *dev; - int node; - int first; - int last; - int flag; +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, }; -struct vc { - struct vc_data *d; - struct work_struct SAK_work; +enum yukon_ex_rev { + CHIP_REV_YU_EX_A0 = 1, + CHIP_REV_YU_EX_B0 = 2, }; -struct interval { - uint32_t first; - uint32_t last; +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 { - blank_off = 0, - blank_normal_wait = 1, - blank_vesa_wait = 2, + CFG_LED_MODE_MSK = 28, + CFG_LINK_2_AVAIL = 2, + CFG_LINK_1_AVAIL = 1, }; 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, + 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 { - EPecma = 0, - EPdec = 1, - EPeq = 2, - EPgt = 3, - EPlt = 4, + 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 translation_map { - LAT1_MAP = 0, - GRAF_MAP = 1, - IBMPC_MAP = 2, - USER_MAP = 3, - FIRST_MAP = 0, - LAST_MAP = 3, +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, }; -struct tiocl_selection { - unsigned short xs; - unsigned short ys; - unsigned short xe; - unsigned short ye; - unsigned short sel_mode; +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, }; -struct vt_notifier_param { - struct vc_data *vc; - unsigned int c; +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, }; -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; +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, }; -struct vc_draw_region { - unsigned long from; - unsigned long to; - int x; +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, }; -struct rgb { - u8 r; - u8 g; - u8 b; +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 serdev_parity { - SERDEV_PARITY_NONE = 0, - SERDEV_PARITY_EVEN = 1, - SERDEV_PARITY_ODD = 2, +enum { + GMLC_RST_CLR = 2, + GMLC_RST_SET = 1, }; -struct serdev_controller; - -struct serdev_device_ops; - -struct serdev_device { - struct device dev; - int nr; - struct serdev_controller *ctrl; - const struct serdev_device_ops *ops; - struct completion write_comp; - struct mutex write_lock; +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, }; -struct serdev_controller_ops; - -struct serdev_controller { - struct device dev; - unsigned int nr; - struct serdev_device *serdev; - const struct serdev_controller_ops *ops; +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, }; -struct serdev_controller_ops { - int (*write_buf)(struct serdev_controller *, const unsigned char *, size_t); - void (*write_flush)(struct serdev_controller *); - int (*write_room)(struct serdev_controller *); - int (*open)(struct serdev_controller *); - void (*close)(struct serdev_controller *); - void (*set_flow_control)(struct serdev_controller *, bool); - int (*set_parity)(struct serdev_controller *, enum serdev_parity); - unsigned int (*set_baudrate)(struct serdev_controller *, unsigned int); - void (*wait_until_sent)(struct serdev_controller *, long); - int (*get_tiocm)(struct serdev_controller *); - int (*set_tiocm)(struct serdev_controller *, unsigned int, unsigned int); - int (*break_ctl)(struct serdev_controller *, unsigned int); +enum { + PEX_RD_ACCESS = -2147483648, + PEX_DB_ACCESS = 1073741824, }; -struct serdev_device_ops { - int (*receive_buf)(struct serdev_device *, const unsigned char *, size_t); - void (*write_wakeup)(struct serdev_device *); +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, }; -struct serdev_device_driver { - struct device_driver driver; - int (*probe)(struct serdev_device *); - void (*remove)(struct serdev_device *); +enum yukon_prm_rev { + CHIP_REV_YU_PRM_Z1 = 1, + CHIP_REV_YU_PRM_A0 = 2, }; -struct acpi_serdev_lookup { - acpi_handle device_handle; - acpi_handle controller_handle; - int n; - int index; +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, }; -struct cpu_attr { - struct device_attribute attr; - const struct cpumask * const map; +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, }; -struct cpu { - int node_id; - int hotpluggable; - struct device dev; +enum { + TIM_START = 4, + TIM_STOP = 2, + TIM_CLR_IRQ = 1, }; -typedef u32 note_buf_t[106]; - -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); +enum { + B28_DPT_INI = 3584, + B28_DPT_VAL = 3588, + B28_DPT_CTRL = 3592, + B28_DPT_TST = 3594, +}; -typedef void (*btf_trace_regmap_async_io_complete)(void *, struct regmap *); +enum { + DPT_START = 2, + DPT_STOP = 1, +}; -typedef void (*btf_trace_regmap_async_complete_start)(void *, struct regmap *); +enum { + GMAC_TI_ST_VAL = 3604, + GMAC_TI_ST_CTRL = 3608, + GMAC_TI_ST_TST = 3610, +}; -typedef void (*btf_trace_regmap_async_complete_done)(void *, struct regmap *); +enum { + GMT_ST_START = 4, + GMT_ST_STOP = 2, + GMT_ST_CLR_IRQ = 1, +}; -typedef void (*btf_trace_regcache_drop_region)(void *, struct regmap *, unsigned int, unsigned int); +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, +}; -struct trace_event_raw_regmap_reg { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int reg; - unsigned int val; - char __data[0]; +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, }; -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]; +enum { + RI_CLR_RD_PERR = 512, + RI_CLR_WR_PERR = 256, + RI_RST_CLR = 2, + RI_RST_SET = 1, }; -struct trace_event_raw_regmap_block { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int reg; - int count; - char __data[0]; +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, }; -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]; +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, }; -struct trace_event_raw_regmap_bool { - struct trace_entry ent; - u32 __data_loc_name; - int flag; - char __data[0]; +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, }; -struct trace_event_raw_regmap_async { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; +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, }; -struct trace_event_raw_regcache_drop_region { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int from; - unsigned int to; - char __data[0]; +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, }; -struct trace_event_data_offsets_regmap_reg { - u32 name; +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, }; -struct trace_event_data_offsets_regmap_bulk { - u32 name; - u32 buf; +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, }; -struct trace_event_data_offsets_regmap_block { - u32 name; +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, }; -struct trace_event_data_offsets_regcache_sync { - u32 name; - u32 status; - u32 type; +enum { + GM_RXCR_UCF_ENA = 32768, + GM_RXCR_MCF_ENA = 16384, + GM_RXCR_CRC_DIS = 8192, + GM_RXCR_PASS_FC = 4096, }; -struct trace_event_data_offsets_regmap_bool { - u32 name; +enum { + BASE_GMAC_1 = 10240, + BASE_GMAC_2 = 14336, }; -struct trace_event_data_offsets_regmap_async { - u32 name; +enum flow_control { + FC_NONE = 0, + FC_TX = 1, + FC_RX = 2, + FC_BOTH = 3, }; -struct trace_event_data_offsets_regcache_drop_region { - u32 name; +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, }; -struct regmap_field { - struct regmap *regmap; - unsigned int mask; - unsigned int shift; - unsigned int reg; - unsigned int id_size; - unsigned int id_offset; +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, }; -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]; +enum { + MAC_TX_CLK_0_MHZ = 2, + MAC_TX_CLK_2_5_MHZ = 6, + MAC_TX_CLK_25_MHZ = 7, }; -struct ata_show_ering_arg { - char *buf; - int written; +enum { + PHY_M_PC_MAN_MDI = 0, + PHY_M_PC_MAN_MDIX = 1, + PHY_M_PC_ENA_AUTO = 3, }; -struct qcom_nandc_props { - u32 ecc_modes; - u32 dev_cmd_reg_start; - bool is_bam; - bool is_qpic; - bool qpic_v2; - bool use_codeword_fixup; +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 bam_command_type { - BAM_WRITE_COMMAND = 0, - BAM_READ_COMMAND = 1, +enum { + PHY_M_FESC_DIS_WAIT = 4, + PHY_M_FESC_ENA_MCLK = 2, + PHY_M_FESC_SEL_CL_A = 1, }; -struct qcom_nand_boot_partition; +enum { + PHY_M_PC_DIS_LINK_Pa = 32768, + PHY_M_PC_DSC_MSK = 28672, + PHY_M_PC_DOWN_S_ENA = 2048, +}; -struct qcom_nand_host { - struct qcom_nand_boot_partition *boot_partitions; - struct nand_chip chip; - struct list_head node; - int nr_boot_partitions; - int cs; - int cw_size; - int cw_data; - int ecc_bytes_hw; - int spare_bytes; - int bbm_size; - int last_command; - u32 cfg0; - u32 cfg1; - u32 cfg0_raw; - u32 cfg1_raw; - u32 ecc_buf_cfg; - u32 ecc_bch_cfg; - u32 clrflashstatus; - u32 clrreadstatus; - u8 status; - bool codeword_fixup; - bool use_ecc; - bool bch_enabled; +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, }; -struct qcom_nand_boot_partition { - u32 page_offset; - u32 page_size; +enum { + PHY_M_FIB_FORCE_LNK = 1024, + PHY_M_FIB_SIGD_POL = 512, + PHY_M_FIB_TX_DIS = 8, }; -struct nandc_regs; +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, +}; -struct bam_transaction; +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, +}; -struct qcom_nand_controller { - struct device *dev; - void *base; - struct clk *core_clk; - struct clk *aon_clk; - struct nandc_regs *regs; - struct bam_transaction *bam_txn; - const struct qcom_nandc_props *props; - struct nand_controller controller; - struct list_head host_list; - union { - struct { - struct dma_chan *tx_chan; - struct dma_chan *rx_chan; - struct dma_chan *cmd_chan; - }; - struct { - struct dma_chan *chan; - unsigned int cmd_crci; - unsigned int data_crci; - }; - }; - struct list_head desc_list; - u8 *data_buffer; - __le32 *reg_read_buf; - phys_addr_t base_phys; - dma_addr_t base_dma; - dma_addr_t reg_read_dma; - int buf_size; - int buf_count; - int buf_start; - unsigned int max_cwperpage; - int reg_read_pos; - u32 cmd1; - u32 vld; +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, }; -struct nandc_regs { - __le32 cmd; - __le32 addr0; - __le32 addr1; - __le32 chip_sel; - __le32 exec; - __le32 cfg0; - __le32 cfg1; - __le32 ecc_bch_cfg; - __le32 clrflashstatus; - __le32 clrreadstatus; - __le32 cmd1; - __le32 vld; - __le32 orig_cmd1; - __le32 orig_vld; - __le32 ecc_buf_cfg; - __le32 read_location0; - __le32 read_location1; - __le32 read_location2; - __le32 read_location3; - __le32 read_location_last0; - __le32 read_location_last1; - __le32 read_location_last2; - __le32 read_location_last3; - __le32 erased_cw_detect_cfg_clr; - __le32 erased_cw_detect_cfg_set; +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, }; -struct bam_cmd_element; +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, +}; -struct bam_transaction { - struct bam_cmd_element *bam_ce; - struct scatterlist *cmd_sgl; - struct scatterlist *data_sgl; - struct dma_async_tx_descriptor *last_data_desc; - struct dma_async_tx_descriptor *last_cmd_desc; - struct completion txn_done; - u32 bam_ce_pos; - u32 bam_ce_start; - u32 cmd_sgl_pos; - u32 cmd_sgl_start; - u32 tx_sgl_pos; - u32 tx_sgl_start; - u32 rx_sgl_pos; - u32 rx_sgl_start; - bool wait_second_completion; +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, }; -struct bam_cmd_element { - __le32 cmd_and_addr; - __le32 data; - __le32 mask; - __le32 reserved; +enum { + PHY_CT_SP1000 = 64, + PHY_CT_SP100 = 8192, + PHY_CT_SP10 = 0, }; -struct desc_info { - struct dma_async_tx_descriptor *dma_desc; - struct list_head node; - union { - struct scatterlist adm_sgl; - struct { - struct scatterlist *bam_sgl; - int sgl_cnt; - }; - }; - enum dma_data_direction dir; +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, }; -struct read_stats { - __le32 flash; - __le32 buffer; - __le32 erased_cw; +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, }; -struct qcom_adm_peripheral_config { - u32 crci; - u32 mux; +enum { + BLINK_42MS = 0, + BLINK_84MS = 1, + BLINK_170MS = 2, + BLINK_340MS = 3, + BLINK_670MS = 4, }; -enum stat_access_type { - PHY = 0, - MMD = 1, +enum { + PHY_M_FELP_LED2_MSK = 3840, + PHY_M_FELP_LED1_MSK = 240, + PHY_M_FELP_LED0_MSK = 15, }; -struct at803x_hw_stat { - const char *string; - u8 reg; - u32 mask; - enum stat_access_type access_type; +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 { - ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC = 0, - ETHTOOL_A_CABLE_RESULT_CODE_OK = 1, - ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 2, - ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 3, - ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 4, + 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, }; -struct at803x_priv { - int flags; - u16 clk_25m_reg; - u16 clk_25m_mask; - u8 smarteee_lpi_tw_1g; - u8 smarteee_lpi_tw_100m; - bool is_fiber; - bool is_1000basex; - struct regulator_dev *vddio_rdev; - struct regulator_dev *vddh_rdev; - u64 stats[3]; +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, }; -struct at803x_context { - u16 bmcr; - u16 advertise; - u16 control1000; - u16 int_enable; - u16 smart_speed; - u16 led_control; +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 ether_type_algorithm { - ETYPE_ALG_NONE = 0, - ETYPE_ALG_SKIP = 1, - ETYPE_ALG_ENDPARSE = 2, - ETYPE_ALG_VLAN = 3, - ETYPE_ALG_VLAN_STRIP = 4, +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 cpi_algorithm_type { - CPI_ALG_NONE = 0, - CPI_ALG_VLAN = 1, - CPI_ALG_VLAN16 = 2, - CPI_ALG_DIFF = 3, +enum led_mode { + MO_LED_NORM = 0, + MO_LED_BLINK = 1, + MO_LED_OFF = 2, + MO_LED_ON = 3, }; -enum rx_stats_reg_offset { - RX_OCTS = 0, - RX_UCAST = 1, - RX_BCAST = 2, - RX_MCAST = 3, - RX_RED = 4, - RX_RED_OCTS = 5, - RX_ORUN = 6, - RX_ORUN_OCTS = 7, - RX_FCS = 8, - RX_L2ERR = 9, - RX_DRP_BCAST = 10, - RX_DRP_MCAST = 11, - RX_DRP_L3BCAST = 12, - RX_DRP_L3MCAST = 13, - RX_STATS_ENUM_LAST = 14, +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 tx_stats_reg_offset { - TX_OCTS = 0, - TX_UCAST = 1, - TX_BCAST = 2, - TX_MCAST = 3, - TX_DROP = 4, - TX_STATS_ENUM_LAST = 5, +enum { + PHY_ADDR_MARV = 0, }; -struct pkind_cfg { - u64 minlen: 16; - u64 maxlen: 16; - u64 reserved_32_32: 1; - u64 lenerr_en: 1; - u64 rx_hdr: 3; - u64 hdr_sl: 5; - u64 reserved_42_63: 22; +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, }; -struct hw_info; - -struct nicpf { - struct pci_dev *pdev; - struct hw_info *hw; - u8 node; - unsigned int flags; - u8 num_vf_en; - bool vf_enabled[128]; - void *reg_base; - u8 num_sqs_en; - u64 nicvf[128]; - u8 vf_sqs[1408]; - u8 pqs_vf[128]; - bool sqs_used[128]; - struct pkind_cfg pkind; - u8 *vf_lmac_map; - u16 cpi_base[128]; - u16 rssi_base[128]; - u8 num_vec; - unsigned int irq_allocated[10]; - char irq_name[200]; +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, }; -struct hw_info { - u8 bgx_cnt; - u8 chans_per_lmac; - u8 chans_per_bgx; - u8 chans_per_rgx; - u8 chans_per_lbk; - u16 cpi_cnt; - u16 rssi_cnt; - u16 rss_ind_tbl_size; - u16 tl4_cnt; - u16 tl3_cnt; - u8 tl2_cnt; - u8 tl1_cnt; - bool tl1_per_bgx; +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, }; -struct nic_cfg_msg { - u8 msg; - u8 vf_id; - u8 node_id; - u8 tns_mode: 1; - u8 sqs_mode: 1; - u8 loopback_supported: 1; - u8 mac_addr[6]; +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, }; -struct qs_cfg_msg { - u8 msg; - u8 num; - u8 sqs_count; - u64 cfg; +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, }; -struct rq_cfg_msg { - u8 msg; - u8 qs_num; - u8 rq_num; - u64 cfg; +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, }; -struct sq_cfg_msg { - u8 msg; - u8 qs_num; - u8 sq_num; - bool sqs_mode; - u64 cfg; +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, }; -struct set_mac_msg { - u8 msg; - u8 vf_id; - u8 mac_addr[6]; +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, }; -struct set_frs_msg { - u8 msg; - u8 vf_id; - u16 max_frs; +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, }; -struct cpi_cfg_msg { - u8 msg; - u8 vf_id; - u8 rq_cnt; - u8 cpi_alg; +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, }; -struct rss_sz_msg { - u8 msg; - u8 vf_id; - u16 ind_tbl_size; +enum { + PREF_UNIT_OP_ON = 8, + PREF_UNIT_OP_OFF = 4, + PREF_UNIT_RST_CLR = 2, + PREF_UNIT_RST_SET = 1, }; -struct rss_cfg_msg { - u8 msg; - u8 vf_id; - u8 hash_bits; - u8 tbl_len; - u8 tbl_offset; - u8 ind_tbl[8]; +enum { + PHY_M_PC_COP_TX_DIS = 8, + PHY_M_PC_POW_D_ENA = 4, }; -struct bgx_stats_msg { - u8 msg; - u8 vf_id; - u8 rx; - u8 idx; - u64 stats; +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, }; -struct bgx_link_status { - u8 msg; - u8 mac_type; - u8 link_up; - u8 duplex; - u32 speed; +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, }; -struct sqs_alloc { - u8 msg; - u8 vf_id; - u8 qs_count; +enum { + Q_R1 = 0, + Q_R2 = 128, + Q_XS1 = 512, + Q_XA1 = 640, + Q_XS2 = 768, + Q_XA2 = 896, }; -struct nicvf_ptr { - u8 msg; - u8 vf_id; - bool sqs_mode; - u8 sqs_id; - u64 nicvf; +enum { + F_TX_CHK_AUTO_OFF = -2147483648, + F_TX_CHK_AUTO_ON = 1073741824, + F_M_RX_RAM_DIS = 16777216, }; -struct set_loopback { - u8 msg; - u8 vf_id; - bool enable; +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, }; -struct reset_stat_cfg { - u8 msg; - u16 rx_stat_mask; - u8 tx_stat_mask; - u16 rq_stat_mask; - u16 sq_stat_mask; +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, }; -struct pfc { - u8 msg; - u8 get; - u8 autoneg; - u8 fc_rx; - u8 fc_tx; +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, }; -struct set_ptp { - u8 msg; - bool enable; +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, }; -struct xcast { - u8 msg; - u8 mode; - u64 mac: 48; +enum { + GM_PAR_MIB_CLR = 32, + GM_PAR_MIB_TST = 16, }; -union nic_mbx { - struct { - u8 msg; - } msg; - struct nic_cfg_msg nic_cfg; - struct qs_cfg_msg qs; - struct rq_cfg_msg rq; - struct sq_cfg_msg sq; - struct set_mac_msg mac; - struct set_frs_msg frs; - struct cpi_cfg_msg cpi_cfg; - struct rss_sz_msg rss_size; - struct rss_cfg_msg rss_cfg; - struct bgx_stats_msg bgx_stats; - struct bgx_link_status link_status; - struct sqs_alloc sqs_alloc; - struct nicvf_ptr nicvf; - struct set_loopback lbk; - struct reset_stat_cfg reset_stat; - struct pfc pfc; - struct set_ptp ptp; - struct xcast xcast; +enum { + GM_TXCR_FORCE_JAM = 32768, + GM_TXCR_CRC_DIS = 16384, + GM_TXCR_PAD_DIS = 8192, + GM_TXCR_COL_THR_MSK = 7168, }; -struct e1000_opt_list { - int i; - char *str; +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, }; -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 { + 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, }; -struct e1000_hw_stats___3 { - u64 crcerrs; - u64 algnerrc; - u64 symerrs; - u64 rxerrc; - u64 txerrc; - u64 mpc; - u64 scc; - u64 ecol; - u64 mcc; - u64 latecol; - u64 colc; - u64 dc; - u64 tncrs; - u64 sec; - u64 cexterr; - u64 rlec; - u64 xonrxc; - u64 xontxc; - u64 xoffrxc; - u64 xofftxc; - u64 fcruc; - u64 prc64; - u64 prc127; - u64 prc255; - u64 prc511; - u64 prc1023; - u64 prc1522; - u64 gprc; - u64 bprc; - u64 mprc; - u64 gptc; - u64 gorcl; - u64 gorch; - u64 gotcl; - u64 gotch; - u64 rnbc; - u64 ruc; - u64 rfc; - u64 roc; - u64 rlerrc; - u64 rjc; - u64 mgprc; - u64 mgpdc; - u64 mgptc; - u64 torl; - u64 torh; - u64 totl; - u64 toth; - u64 tpr; - u64 tpt; - u64 ptc64; - u64 ptc127; - u64 ptc255; - u64 ptc511; - u64 ptc1023; - u64 ptc1522; - u64 mptc; - u64 bptc; - u64 tsctc; - u64 tsctfc; - u64 iac; - u64 icrxptc; - u64 icrxatc; - u64 ictxptc; - u64 ictxatc; - u64 ictxqec; - u64 ictxqmtc; - u64 icrxdmtc; - u64 icrxoc; +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, }; -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; +enum { + TX_DYN_WM_ENA = 3, }; -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; +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, }; -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___4 hw; - struct e1000_hw_stats___3 stats; - struct e1000_phy_info___3 phy_info; - struct e1000_phy_stats phy_stats; - u32 test_icr; - struct e1000_tx_ring test_tx_ring; - struct e1000_rx_ring test_rx_ring; - int msg_enable; - bool tso_force; - bool smart_power_down; - bool quad_port_a; - unsigned long flags; - u32 eeprom_wol; - int bars; - int need_ioport; - bool discarding; - struct work_struct reset_task; - struct delayed_work watchdog_task; - struct delayed_work fifo_stall_task; - struct delayed_work phy_info_task; +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, }; -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; +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, }; -struct e1000_rx_buffer { - union { - struct page *page; - u8 *data; - } rxbuf; - dma_addr_t dma; +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, }; -struct rcar_gen4_ptp_reg_offset { - u16 enable; - u16 disable; - u16 increment; - u16 config_t0; - u16 config_t1; - u16 config_t2; - u16 monitor_t0; - u16 monitor_t1; - u16 monitor_t2; +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 rcar_gen4_ptp_reg_layout { - RCAR_GEN4_PTP_REG_LAYOUT_S4 = 0, +enum { + UDPTCP = 1, + CALSUM = 2, + WR_SUM = 4, + INIT_SUM = 8, + LOCK_SUM = 16, + INS_VLAN = 32, + EOP = 128, }; -struct rcar_gen4_ptp_private { - void *addr; - struct ptp_clock *clock; - struct ptp_clock_info info; - const struct rcar_gen4_ptp_reg_offset *offs; - spinlock_t lock; - u32 tstamp_tx_ctrl; - u32 tstamp_rx_ctrl; - s64 default_addend; - bool initialized; +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 { - VFIO_PCI_BAR0_REGION_INDEX = 0, - VFIO_PCI_BAR1_REGION_INDEX = 1, - VFIO_PCI_BAR2_REGION_INDEX = 2, - VFIO_PCI_BAR3_REGION_INDEX = 3, - VFIO_PCI_BAR4_REGION_INDEX = 4, - VFIO_PCI_BAR5_REGION_INDEX = 5, - VFIO_PCI_ROM_REGION_INDEX = 6, - VFIO_PCI_CONFIG_REGION_INDEX = 7, - VFIO_PCI_VGA_REGION_INDEX = 8, - VFIO_PCI_NUM_REGIONS = 9, + LINKLED_OFF = 1, + LINKLED_ON = 2, + LINKLED_LINKSYNC_OFF = 4, + LINKLED_LINKSYNC_ON = 8, + LINKLED_BLINK_OFF = 16, + LINKLED_BLINK_ON = 32, }; -struct virqfd; - -struct vfio_pci_ioeventfd { - struct list_head next; - struct vfio_pci_core_device *vdev; - struct virqfd *virqfd; - void *addr; - uint64_t data; - loff_t pos; - int bar; - int count; - bool test_mem; +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, }; -struct virqfd { - void *opaque; - struct eventfd_ctx *eventfd; - int (*handler)(void *, void *); - void (*thread)(void *, void *); - void *data; - struct work_struct inject; - wait_queue_entry_t wait; - poll_table pt; - struct work_struct shutdown; - struct virqfd **pvirqfd; +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, }; -struct class_info { - int class; - char *class_name; +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 dwc3_acpi_pdata { - u32 qscratch_base_offset; - u32 qscratch_base_size; - u32 dwc3_core_base_size; - int hs_phy_irq_index; - int dp_hs_phy_irq_index; - int dm_hs_phy_irq_index; - int ss_phy_irq_index; - bool is_urs; -}; +struct sky2_status_le; -struct dwc3_qcom { - struct device *dev; - void *qscratch_base; - struct platform_device *dwc3; - struct platform_device *urs_usb; - struct clk **clks; - int num_clocks; - struct reset_control *resets; - int hs_phy_irq; - int dp_hs_phy_irq; - int dm_hs_phy_irq; - int ss_phy_irq; - enum usb_device_speed usb2_speed; - struct extcon_dev *edev; - struct extcon_dev *host_edev; - struct notifier_block vbus_nb; - struct notifier_block host_nb; - const struct dwc3_acpi_pdata *acpi_pdata; - enum usb_dr_mode mode; - bool is_suspended; - bool pm_suspended; - struct icc_path *icc_path_ddr; - struct icc_path *icc_path_apps; +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]; }; -enum xhci_setup_dev { - SETUP_CONTEXT_ONLY = 0, - SETUP_CONTEXT_ADDRESS = 1, +struct sky2_status_le { + __le32 status; + __le16 length; + u8 css; + u8 opcode; }; -enum xhci_ep_reset_type { - EP_HARD_RESET = 0, - EP_SOFT_RESET = 1, +struct sky2_stats { + struct u64_stats_sync syncp; + u64 packets; + u64 bytes; }; -enum bdc_ep0_state { - WAIT_FOR_SETUP = 0, - WAIT_FOR_DATA_START = 1, - WAIT_FOR_DATA_XMIT = 2, - WAIT_FOR_STATUS_START = 3, - WAIT_FOR_STATUS_XMIT = 4, - STATUS_PENDING = 5, -}; +struct tx_ring_info; -struct bdc_req; +struct sky2_tx_le; -struct bd_transfer { - struct bdc_req *req; - int start_bdi; - int next_hwd_bdi; - int num_bds; -}; +struct rx_ring_info; -struct bdc_ep; +struct sky2_rx_le; -struct bdc_req { - struct usb_request usb_req; - struct list_head queue; - struct bdc_ep *ep; - struct bd_transfer bd_xfr; - int epnum; +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: 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 bd_table; - -struct bd_list { - struct bd_table **bd_table_array; - int num_tabs; - int max_bdi; - int eqp_bdi; - int hwd_bdi; - int num_bds_table; +struct tx_ring_info { + struct sk_buff *skb; + unsigned long flags; + dma_addr_t mapaddr; + __u32 maplen; }; -struct bdc; - -struct bdc_ep { - struct usb_ep usb_ep; - struct list_head queue; - struct bdc *bdc; - u8 ep_type; - u8 dir; - u8 ep_num; - const struct usb_ss_ep_comp_descriptor *comp_desc; - const struct usb_endpoint_descriptor *desc; - unsigned int flags; - char name[20]; - struct bd_list bd_list; - bool ignore_next_sr; +struct sky2_tx_le { + __le32 addr; + __le16 length; + u8 ctrl; + u8 opcode; }; -struct bdc_scratchpad { - dma_addr_t sp_dma; - void *buff; - u32 size; +struct rx_ring_info { + struct sk_buff *skb; + dma_addr_t data_addr; + __u32 data_size; + dma_addr_t frag_addr[2]; }; -struct bdc_sr; - -struct srr { - struct bdc_sr *sr_bds; - u16 eqp_index; - u16 dqp_index; - dma_addr_t dma_addr; +struct sky2_rx_le { + __le32 addr; + __le16 length; + u8 ctrl; + u8 opcode; }; -struct bdc { - struct usb_gadget gadget; - struct usb_gadget_driver *gadget_driver; - struct device *dev; +struct usb_dynids { spinlock_t lock; - struct phy **phys; - int num_phys; - unsigned int num_eps; - struct bdc_ep **bdc_ep_array; - void *regs; - struct bdc_scratchpad scratchpad; - u32 sp_buff_size; - struct srr srr; - struct usb_ctrlrequest setup_pkt; - struct bdc_req ep0_req; - struct bdc_req status_req; - enum bdc_ep0_state ep0_state; - bool delayed_status; - bool zlp_needed; - bool reinit; - bool pullup; - u32 devstatus; - int irq; - void *mem; - u32 dev_addr; - struct dma_pool *bd_table_pool; - u8 test_mode; - void (*sr_handler[2])(struct bdc *, struct bdc_sr *); - void (*sr_xsf_ep0[3])(struct bdc *, struct bdc_sr *); - unsigned char ep0_response_buff[6]; - struct delayed_work func_wake_notify; - struct clk *clk; + struct list_head list; }; -struct bdc_sr { - __le32 offset[4]; +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 bdc_bd; - -struct bd_table { - struct bdc_bd *start_bd; - dma_addr_t dma; +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, }; -struct bdc_bd { - __le32 offset[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, +} __attribute__((mode(byte))); -enum host_event_code { - EC_HOST_EVENT_LID_CLOSED = 1, - EC_HOST_EVENT_LID_OPEN = 2, - EC_HOST_EVENT_POWER_BUTTON = 3, - EC_HOST_EVENT_AC_CONNECTED = 4, - EC_HOST_EVENT_AC_DISCONNECTED = 5, - EC_HOST_EVENT_BATTERY_LOW = 6, - EC_HOST_EVENT_BATTERY_CRITICAL = 7, - EC_HOST_EVENT_BATTERY = 8, - EC_HOST_EVENT_THERMAL_THRESHOLD = 9, - EC_HOST_EVENT_DEVICE = 10, - EC_HOST_EVENT_THERMAL = 11, - EC_HOST_EVENT_USB_CHARGER = 12, - EC_HOST_EVENT_KEY_PRESSED = 13, - EC_HOST_EVENT_INTERFACE_READY = 14, - EC_HOST_EVENT_KEYBOARD_RECOVERY = 15, - EC_HOST_EVENT_THERMAL_SHUTDOWN = 16, - EC_HOST_EVENT_BATTERY_SHUTDOWN = 17, - EC_HOST_EVENT_THROTTLE_START = 18, - EC_HOST_EVENT_THROTTLE_STOP = 19, - EC_HOST_EVENT_HANG_DETECT = 20, - EC_HOST_EVENT_HANG_REBOOT = 21, - EC_HOST_EVENT_PD_MCU = 22, - EC_HOST_EVENT_BATTERY_STATUS = 23, - EC_HOST_EVENT_PANIC = 24, - EC_HOST_EVENT_KEYBOARD_FASTBOOT = 25, - EC_HOST_EVENT_RTC = 26, - EC_HOST_EVENT_MKBP = 27, - EC_HOST_EVENT_USB_MUX = 28, - EC_HOST_EVENT_MODE_CHANGE = 29, - EC_HOST_EVENT_KEYBOARD_RECOVERY_HW_REINIT = 30, - EC_HOST_EVENT_WOV = 31, - EC_HOST_EVENT_INVALID = 32, +enum hub_quiescing_type { + HUB_DISCONNECT = 0, + HUB_PRE_RESET = 1, + HUB_SUSPEND = 2, }; -struct cros_ec_rtc { - struct cros_ec_device *cros_ec; - struct rtc_device *rtc; - struct notifier_block notifier; - u32 saved_alarm; +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 ec_response_rtc { - uint32_t time; +struct usb_hub_status { + __le16 wHubStatus; + __le16 wHubChange; }; -struct pasemi_smbus { - struct device *dev; - struct i2c_adapter adapter; - void *ioaddr; - unsigned int clk_div; - int hw_rev; - int use_irq; - struct completion irq_completion; +struct usb_port_status { + __le16 wPortStatus; + __le16 wPortChange; + __le32 dwExtPortStatus; }; -struct kvm_ptp_clock { - struct ptp_clock *ptp_clock; - struct ptp_clock_info caps; -}; +struct usb_hub_descriptor; -struct system_counterval_t { - u64 cycles; - struct clocksource *cs; -}; +struct usb_port; -struct rcar_thermal_chip { - unsigned int use_of_thermal: 1; - unsigned int has_filonoff: 1; - unsigned int irq_per_ch: 1; - unsigned int needs_suspend_resume: 1; - unsigned int nirqs; - unsigned int ctemp_bands; +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 rcar_thermal_common; +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 rcar_thermal_priv { - void *base; - struct rcar_thermal_common *common; - struct thermal_zone_device *zone; - const struct rcar_thermal_chip *chip; - struct delayed_work work; - struct mutex lock; - struct list_head list; - int id; +typedef u32 usb_port_location_t; + +struct usb_dev_state; + +struct typec_connector; + +struct usb_port { + struct usb_device *child; + struct device dev; + struct usb_dev_state *port_owner; + struct usb_port *peer; + struct typec_connector *connector; + struct dev_pm_qos_request *req; + enum usb_port_connect_type connect_type; + enum usb_device_state state; + struct kernfs_node *state_kn; + usb_port_location_t location; + struct mutex status_lock; + u32 over_current_count; + u8 portnum; + u32 quirks; + unsigned int early_stop: 1; + unsigned int ignore_event: 1; + unsigned int is_superspeed: 1; + unsigned int usb3_lpm_u1_permit: 1; + unsigned int usb3_lpm_u2_permit: 1; }; -struct rcar_thermal_common { - void *base; - struct device *dev; - struct list_head head; - spinlock_t lock; +struct typec_connector { + void (*attach)(struct typec_connector *, struct device *); + void (*deattach)(struct typec_connector *, struct device *); }; -struct edac_pci_counter { - atomic_t pe_count; - atomic_t npe_count; +struct usb_tt_clear { + struct list_head clear_list; + unsigned int tt; + u16 devinfo; + struct usb_hcd *hcd; + struct usb_host_endpoint *ep; }; -struct edac_pci_ctl_info { - struct list_head link; - int pci_idx; - struct bus_type *edac_subsys; - int op_state; - struct delayed_work work; - void (*edac_check)(struct edac_pci_ctl_info *); - struct device *dev; - const char *mod_name; - const char *ctl_name; - const char *dev_name; - void *pvt_info; - unsigned long start_time; - struct completion complete; - char name[32]; - struct edac_pci_counter counters; - struct kobject kobj; +struct usb_otg_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bmAttributes; }; -struct edac_pci_gen_data { - int edac_idx; +struct usb_qualifier_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __u8 bNumConfigurations; + __u8 bRESERVED; }; -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 usbdevfs_hub_portinfo { + char nports; + char port[127]; }; -enum mmc_err_stat { - MMC_ERR_CMD_TIMEOUT = 0, - MMC_ERR_CMD_CRC = 1, - MMC_ERR_DAT_TIMEOUT = 2, - MMC_ERR_DAT_CRC = 3, - MMC_ERR_AUTO_CMD = 4, - MMC_ERR_ADMA = 5, - MMC_ERR_TUNING = 6, - MMC_ERR_CMDQ_RED = 7, - MMC_ERR_CMDQ_GCE = 8, - MMC_ERR_CMDQ_ICCE = 9, - MMC_ERR_REQ_TIMEOUT = 10, - MMC_ERR_CMDQ_REQ_TIMEOUT = 11, - MMC_ERR_ICE_CFG = 12, - MMC_ERR_CTRL_TIMEOUT = 13, - MMC_ERR_UNEXPECTED_IRQ = 14, - MMC_ERR_MAX = 15, +struct usb_set_sel_req { + __u8 u1_sel; + __u8 u1_pel; + __le16 u2_sel; + __le16 u2_pel; }; -enum sdhci_reset_reason { - SDHCI_RESET_FOR_INIT = 0, - SDHCI_RESET_FOR_REQUEST_ERROR = 1, - SDHCI_RESET_FOR_REQUEST_ERROR_DATA_ONLY = 2, - SDHCI_RESET_FOR_TUNING_ABORT = 3, - SDHCI_RESET_FOR_CARD_REMOVED = 4, - SDHCI_RESET_FOR_CQE_RECOVERY = 5, +struct dwc3_of_simple { + struct device *dev; + struct clk_bulk_data *clks; + int num_clocks; + struct reset_control *resets; + bool need_reset; }; -enum sdhci_cookie { - COOKIE_UNMAPPED = 0, - COOKIE_PRE_MAPPED = 1, - COOKIE_MAPPED = 2, +enum dwc2_halt_status { + DWC2_HC_XFER_NO_HALT_STATUS = 0, + DWC2_HC_XFER_COMPLETE = 1, + DWC2_HC_XFER_URB_COMPLETE = 2, + DWC2_HC_XFER_ACK = 3, + DWC2_HC_XFER_NAK = 4, + DWC2_HC_XFER_NYET = 5, + DWC2_HC_XFER_STALL = 6, + DWC2_HC_XFER_XACT_ERR = 7, + DWC2_HC_XFER_FRAME_OVERRUN = 8, + DWC2_HC_XFER_BABBLE_ERR = 9, + DWC2_HC_XFER_DATA_TOGGLE_ERR = 10, + DWC2_HC_XFER_AHB_ERR = 11, + DWC2_HC_XFER_PERIODIC_INCOMPLETE = 12, + DWC2_HC_XFER_URB_DEQUEUE = 13, }; -struct sdhci_adma2_64_desc { - __le16 cmd; - __le16 len; - __le32 addr_lo; - __le32 addr_hi; +enum dwc2_control_phase { + DWC2_CONTROL_SETUP = 0, + DWC2_CONTROL_DATA = 1, + DWC2_CONTROL_STATUS = 2, }; -enum scpi_power_domain_state { - SCPI_PD_STATE_ON = 0, - SCPI_PD_STATE_OFF = 3, +enum dwc2_transaction_type { + DWC2_TRANSACTION_NONE = 0, + DWC2_TRANSACTION_PERIODIC = 1, + DWC2_TRANSACTION_NON_PERIODIC = 2, + DWC2_TRANSACTION_ALL = 3, }; -struct scpi_pm_domain { - struct generic_pm_domain genpd; - struct scpi_ops *ops; - u32 domain; +struct dwc2_hs_transfer_time { + u32 start_schedule_us; + u16 duration_us; }; -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 dwc2_tt; + +struct dwc2_qh { + struct dwc2_hsotg *hsotg; + u8 ep_type; + u8 ep_is_in; + u16 maxp; + u16 maxp_mult; + u8 dev_speed; + u8 data_toggle; + u8 ping_state; + u8 do_split; + u8 td_first; + u8 td_last; + u16 host_us; + u16 device_us; + u16 host_interval; + u16 device_interval; + u16 next_active_frame; + u16 start_active_frame; + s16 num_hs_transfers; + struct dwc2_hs_transfer_time hs_transfers[8]; + u32 ls_start_schedule_slice; + u16 ntd; + u8 *dw_align_buf; + dma_addr_t dw_align_buf_dma; + struct list_head qtd_list; + struct dwc2_host_chan *channel; + struct list_head qh_list_entry; + struct dwc2_dma_desc *desc_list; + dma_addr_t desc_list_dma; + u32 desc_list_sz; + u32 *n_bytes; + struct timer_list unreserve_timer; + struct hrtimer wait_timer; + struct dwc2_tt *dwc_tt; + int ttport; + unsigned int tt_buffer_dirty: 1; + unsigned int unreserve_pending: 1; + unsigned int schedule_low_speed: 1; + unsigned int want_wait: 1; + unsigned int wait_timer_cancel: 1; }; -struct efi { - const efi_runtime_services_t *runtime; - unsigned int runtime_version; - unsigned int runtime_supported_mask; - unsigned long acpi; - unsigned long acpi20; - unsigned long smbios; - unsigned long smbios3; - unsigned long esrt; - unsigned long tpm_log; - unsigned long tpm_final_log; - unsigned long mokvar_table; - unsigned long coco_secret; - unsigned long unaccepted; - efi_get_time_t *get_time; - efi_set_time_t *set_time; - efi_get_wakeup_time_t *get_wakeup_time; - efi_set_wakeup_time_t *set_wakeup_time; - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_set_variable_t *set_variable_nonblocking; - efi_query_variable_info_t *query_variable_info; - efi_query_variable_info_t *query_variable_info_nonblocking; - efi_update_capsule_t *update_capsule; - efi_query_capsule_caps_t *query_capsule_caps; - efi_get_next_high_mono_count_t *get_next_high_mono_count; - efi_reset_system_t *reset_system; - struct efi_memory_map memmap; - unsigned long flags; +struct dwc2_host_chan { + u8 hc_num; + unsigned int dev_addr: 7; + unsigned int ep_num: 4; + unsigned int ep_is_in: 1; + unsigned int speed: 4; + unsigned int ep_type: 2; + int: 6; + unsigned int max_packet: 11; + unsigned int data_pid_start: 2; + unsigned int multi_count: 2; + u8 *xfer_buf; + dma_addr_t xfer_dma; + dma_addr_t align_buf; + u32 xfer_len; + u32 xfer_count; + u16 start_pkt_count; + u8 xfer_started; + u8 do_ping; + u8 error_state; + u8 halt_on_queue; + u8 halt_pending; + u8 do_split; + u8 complete_split; + u8 hub_addr; + u8 hub_port; + u8 xact_pos; + u8 requests; + u8 schinfo; + u16 ntd; + enum dwc2_halt_status halt_status; + u32 hcint; + struct dwc2_qh *qh; + struct list_head hc_list_entry; + dma_addr_t desc_list_addr; + u32 desc_list_sz; + struct list_head split_order_list_entry; }; -typedef struct { - efi_guid_t guid; - unsigned long *ptr; - const char name[16]; -} efi_config_table_type_t; +struct dwc2_tt { + int refcount; + struct usb_tt *usb_tt; + unsigned long periodic_bitmaps[0]; +}; -typedef struct { - efi_guid_t guid; - u32 table; -} efi_config_table_32_t; +struct dwc2_hcd_urb; -typedef union { - struct { - efi_guid_t guid; - void *table; - }; - efi_config_table_32_t mixed_mode; -} efi_config_table_t; +struct dwc2_qtd { + enum dwc2_control_phase control_phase; + u8 in_process; + u8 data_toggle; + u8 complete_split; + u8 isoc_split_pos; + u16 isoc_frame_index; + u16 isoc_split_offset; + u16 isoc_td_last; + u16 isoc_td_first; + u32 ssplit_out_xfer_count; + u8 error_count; + u8 n_desc; + u16 isoc_frame_index_last; + u16 num_naks; + struct dwc2_hcd_urb *urb; + struct dwc2_qh *qh; + struct list_head qtd_list_entry; +}; -typedef struct { - efi_guid_t guid; - u64 table; -} efi_config_table_64_t; +struct dwc2_hcd_pipe_info { + u8 dev_addr; + u8 ep_num; + u8 pipe_type; + u8 pipe_dir; + u16 maxp; + u16 maxp_mult; +}; -struct platform_mhu_link { - int irq; - void *tx_reg; - void *rx_reg; +struct dwc2_hcd_iso_packet_desc { + u32 offset; + u32 length; + u32 actual_length; + u32 status; }; -struct platform_mhu { - void *base; - struct platform_mhu_link mlink[3]; - struct mbox_chan chan[3]; - struct mbox_controller mbox; +struct dwc2_hcd_urb { + void *priv; + struct dwc2_qtd *qtd; + void *buf; + dma_addr_t dma; + void *setup_packet; + dma_addr_t setup_dma; + u32 length; + u32 actual_length; + u32 status; + u32 error_count; + u32 packet_count; + u32 flags; + u16 interval; + struct dwc2_hcd_pipe_info pipe_info; + struct dwc2_hcd_iso_packet_desc iso_descs[0]; }; -struct __extcon_info { - unsigned int type; - unsigned int id; - const char *name; +struct ohci_driver_overrides { + const char *product_desc; + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); }; -struct extcon_cable; +enum ohci_rh_state { + OHCI_RH_HALTED = 0, + OHCI_RH_SUSPENDED = 1, + OHCI_RH_RUNNING = 2, +}; -struct extcon_dev { - const char *name; - const unsigned int *supported_cable; - const u32 *mutually_exclusive; - struct device dev; - unsigned int id; - struct raw_notifier_head nh_all; - struct raw_notifier_head *nh; - struct list_head entry; - int max_supported; +struct ohci_regs; + +struct ohci_hcca; + +struct ed; + +struct td; + +struct ohci_hcd { spinlock_t lock; - u32 state; - struct device_type extcon_dev_type; - struct extcon_cable *cables; - struct attribute_group attr_g_muex; - struct attribute **attrs_muex; - struct device_attribute *d_attrs_muex; + 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]; }; -union extcon_property_value { - int intval; -}; +typedef __u32 __hc32; -struct extcon_cable { - struct extcon_dev *edev; - int cable_index; - struct attribute_group attr_g; - struct device_attribute attr_name; - struct device_attribute attr_state; - struct attribute *attrs[3]; - union extcon_property_value usb_propval[3]; - union extcon_property_value chg_propval[1]; - union extcon_property_value jack_propval[1]; - union extcon_property_value disp_propval[2]; - unsigned long usb_bits[1]; - unsigned long chg_bits[1]; - unsigned long jack_bits[1]; - unsigned long disp_bits[1]; +struct ohci_roothub_regs { + __hc32 a; + __hc32 b; + __hc32 status; + __hc32 portstatus[15]; }; -struct ocotp_region { - u32 start; - u32 end; - u32 flag; +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 ocotp_devtype_data { - int devtype; - int nregs; - u32 num_region; - struct ocotp_region region[0]; +struct ohci_hcca { + __hc32 int_table[32]; + __hc32 frame_no; + __hc32 done_head; + u8 reserved_for_hc[116]; + u8 what[4]; }; -enum imx_misc_func { - IMX_SC_MISC_FUNC_UNKNOWN = 0, - IMX_SC_MISC_FUNC_SET_CONTROL = 1, - IMX_SC_MISC_FUNC_GET_CONTROL = 2, - IMX_SC_MISC_FUNC_SET_MAX_DMA_GROUP = 4, - IMX_SC_MISC_FUNC_SET_DMA_GROUP = 5, - IMX_SC_MISC_FUNC_SECO_IMAGE_LOAD = 8, - IMX_SC_MISC_FUNC_SECO_AUTHENTICATE = 9, - IMX_SC_MISC_FUNC_DEBUG_OUT = 10, - IMX_SC_MISC_FUNC_WAVEFORM_CAPTURE = 6, - IMX_SC_MISC_FUNC_BUILD_INFO = 15, - IMX_SC_MISC_FUNC_UNIQUE_ID = 19, - IMX_SC_MISC_FUNC_SET_ARI = 3, - IMX_SC_MISC_FUNC_BOOT_STATUS = 7, - IMX_SC_MISC_FUNC_BOOT_DONE = 14, - IMX_SC_MISC_FUNC_OTP_FUSE_READ = 11, - IMX_SC_MISC_FUNC_OTP_FUSE_WRITE = 17, - IMX_SC_MISC_FUNC_SET_TEMP = 12, - IMX_SC_MISC_FUNC_GET_TEMP = 13, - IMX_SC_MISC_FUNC_GET_BOOT_DEV = 16, - IMX_SC_MISC_FUNC_GET_BUTTON_STATUS = 18, +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; }; -struct imx_sc_ipc; +typedef __u16 __hc16; -struct ocotp_priv { - struct device *dev; - const struct ocotp_devtype_data *data; - struct imx_sc_ipc *nvmem_ipc; +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 imx_sc_msg_misc_fuse_read { - struct imx_sc_rpc_msg hdr; - u32 word; -}; +typedef void (*btf_trace_musb_log)(void *, struct musb *, struct va_format *); -typedef void (*btf_trace_snd_soc_bias_level_start)(void *, struct snd_soc_card *, int); +typedef void (*btf_trace_musb_state)(void *, struct musb *, u8, const char *); -typedef void (*btf_trace_snd_soc_bias_level_done)(void *, struct snd_soc_card *, int); +typedef void (*btf_trace_musb_readb)(void *, void *, const void *, unsigned int, u8); -typedef void (*btf_trace_snd_soc_dapm_start)(void *, struct snd_soc_card *); +typedef void (*btf_trace_musb_writeb)(void *, void *, const void *, unsigned int, u8); -typedef void (*btf_trace_snd_soc_dapm_done)(void *, struct snd_soc_card *); +typedef void (*btf_trace_musb_readw)(void *, void *, const void *, unsigned int, u16); -typedef void (*btf_trace_snd_soc_dapm_widget_power)(void *, struct snd_soc_dapm_widget *, int); +typedef void (*btf_trace_musb_writew)(void *, void *, const void *, unsigned int, u16); -typedef void (*btf_trace_snd_soc_dapm_widget_event_start)(void *, struct snd_soc_dapm_widget *, int); +typedef void (*btf_trace_musb_readl)(void *, void *, const void *, unsigned int, u32); -typedef void (*btf_trace_snd_soc_dapm_widget_event_done)(void *, struct snd_soc_dapm_widget *, int); +typedef void (*btf_trace_musb_writel)(void *, void *, const void *, unsigned int, u32); -typedef void (*btf_trace_snd_soc_dapm_walk_done)(void *, struct snd_soc_card *); +typedef void (*btf_trace_musb_isr)(void *, struct musb *); -struct snd_soc_dapm_path; +typedef void (*btf_trace_musb_urb_start)(void *, struct musb *, struct urb *); -typedef void (*btf_trace_snd_soc_dapm_path)(void *, struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction, struct snd_soc_dapm_path *); +typedef void (*btf_trace_musb_urb_gb)(void *, struct musb *, struct urb *); -struct snd_soc_dapm_path { - const char *name; - union { - struct { - struct snd_soc_dapm_widget *source; - struct snd_soc_dapm_widget *sink; - }; - struct snd_soc_dapm_widget *node[2]; - }; - u32 connect: 1; - u32 walking: 1; - u32 weak: 1; - u32 is_supply: 1; - int (*connected)(struct snd_soc_dapm_widget *, struct snd_soc_dapm_widget *); - struct list_head list_node[2]; - struct list_head list_kcontrol; +typedef void (*btf_trace_musb_urb_rx)(void *, struct musb *, struct urb *); + +typedef void (*btf_trace_musb_urb_tx)(void *, struct musb *, struct urb *); + +typedef void (*btf_trace_musb_urb_enq)(void *, struct musb *, struct urb *); + +typedef void (*btf_trace_musb_urb_deq)(void *, struct musb *, struct urb *); + +struct musb_request; + +typedef void (*btf_trace_musb_req_gb)(void *, struct musb_request *); + +enum buffer_map_state { + UN_MAPPED = 0, + PRE_MAPPED = 1, + MUSB_MAPPED = 2, +}; + +struct musb_request { + struct usb_request request; struct list_head list; + struct musb_ep *ep; + struct musb *musb; + u8 tx; + u8 epnum; + enum buffer_map_state map_state; }; -typedef void (*btf_trace_snd_soc_dapm_connected)(void *, int, int); +typedef void (*btf_trace_musb_req_tx)(void *, struct musb_request *); -typedef void (*btf_trace_snd_soc_jack_irq)(void *, const char *); +typedef void (*btf_trace_musb_req_rx)(void *, struct musb_request *); -typedef void (*btf_trace_snd_soc_jack_report)(void *, struct snd_soc_jack *, int, int); +typedef void (*btf_trace_musb_req_alloc)(void *, struct musb_request *); -typedef void (*btf_trace_snd_soc_jack_notify)(void *, struct snd_soc_jack *, int); +typedef void (*btf_trace_musb_req_free)(void *, struct musb_request *); -struct trace_event_raw_snd_soc_card { - struct trace_entry ent; - u32 __data_loc_name; - int val; - char __data[0]; -}; +typedef void (*btf_trace_musb_req_start)(void *, struct musb_request *); -struct trace_event_raw_snd_soc_dapm_basic { +typedef void (*btf_trace_musb_req_enq)(void *, struct musb_request *); + +typedef void (*btf_trace_musb_req_deq)(void *, struct musb_request *); + +struct trace_event_raw_musb_log { struct trace_entry ent; u32 __data_loc_name; + u32 __data_loc_msg; char __data[0]; }; -struct trace_event_raw_snd_soc_dapm_widget { +struct trace_event_raw_musb_state { struct trace_entry ent; u32 __data_loc_name; - int val; + u8 devctl; + u32 __data_loc_desc; char __data[0]; }; -struct trace_event_raw_snd_soc_dapm_walk_done { +struct trace_event_raw_musb_regb { struct trace_entry ent; - u32 __data_loc_name; - int power_checks; - int path_checks; - int neighbour_checks; + void *caller; + const void *addr; + unsigned int offset; + u8 data; char __data[0]; }; -struct trace_event_raw_snd_soc_dapm_path { +struct trace_event_raw_musb_regw { struct trace_entry ent; - u32 __data_loc_wname; - u32 __data_loc_pname; - u32 __data_loc_pnname; - int path_node; - int path_connect; - int path_dir; + void *caller; + const void *addr; + unsigned int offset; + u16 data; char __data[0]; }; -struct trace_event_raw_snd_soc_dapm_connected { +struct trace_event_raw_musb_regl { struct trace_entry ent; - int paths; - int stream; + void *caller; + const void *addr; + unsigned int offset; + u32 data; char __data[0]; }; -struct trace_event_raw_snd_soc_jack_irq { +struct trace_event_raw_musb_isr { struct trace_entry ent; u32 __data_loc_name; + u8 int_usb; + u16 int_tx; + u16 int_rx; char __data[0]; }; -struct trace_event_raw_snd_soc_jack_report { +struct trace_event_raw_musb_urb { struct trace_entry ent; u32 __data_loc_name; - int mask; - int val; + struct urb *urb; + unsigned int pipe; + int status; + unsigned int flag; + u32 buf_len; + u32 actual_len; char __data[0]; }; -struct trace_event_raw_snd_soc_jack_notify { +struct trace_event_raw_musb_req { struct trace_entry ent; - u32 __data_loc_name; - int val; + struct usb_request *req; + u8 is_tx; + u8 epnum; + int status; + unsigned int buf_len; + unsigned int actual_len; + unsigned int zero; + unsigned int short_not_ok; + unsigned int no_interrupt; char __data[0]; }; -struct trace_event_data_offsets_snd_soc_card { - u32 name; -}; - -struct trace_event_data_offsets_snd_soc_dapm_basic { - u32 name; -}; - -struct trace_event_data_offsets_snd_soc_dapm_widget { - u32 name; -}; - -struct trace_event_data_offsets_snd_soc_dapm_walk_done { +struct trace_event_data_offsets_musb_log { u32 name; + u32 msg; }; -struct trace_event_data_offsets_snd_soc_dapm_path { - u32 wname; - u32 pname; - u32 pnname; -}; - -struct trace_event_data_offsets_snd_soc_jack_irq { +struct trace_event_data_offsets_musb_state { u32 name; + u32 desc; }; -struct trace_event_data_offsets_snd_soc_jack_report { +struct trace_event_data_offsets_musb_isr { u32 name; }; -struct trace_event_data_offsets_snd_soc_jack_notify { +struct trace_event_data_offsets_musb_urb { u32 name; }; -struct trace_event_data_offsets_snd_soc_dapm_connected {}; - -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 *); +struct trace_event_data_offsets_musb_regb {}; -typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, const struct request_sock *); +struct trace_event_data_offsets_musb_regw {}; -typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *); +struct trace_event_data_offsets_musb_regl {}; -typedef void (*btf_trace_tcp_bad_csum)(void *, const struct sk_buff *); +struct trace_event_data_offsets_musb_req {}; -typedef void (*btf_trace_tcp_cong_state_set)(void *, struct sock *, const u8); +struct rzv2m_usb3drd { + void *reg; + int drd_irq; + struct device *dev; + struct reset_control *drd_rstc; +}; -typedef void (*btf_trace_fib_table_lookup)(void *, u32, const struct flowi4 *, const struct fib_nh_common *, int); +enum { + KPARAM_X = 0, + KPARAM_Y = 1, + KPARAM_CNT = 2, +}; -typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *); +struct xenkbd_motion { + uint8_t type; + int32_t rel_x; + int32_t rel_y; + int32_t rel_z; +}; -typedef void (*btf_trace_qdisc_enqueue)(void *, struct Qdisc *, const struct netdev_queue *, struct sk_buff *); +struct xenkbd_key { + uint8_t type; + uint8_t pressed; + uint32_t keycode; +}; -typedef void (*btf_trace_qdisc_reset)(void *, struct Qdisc *); +struct xenkbd_position { + uint8_t type; + int32_t abs_x; + int32_t abs_y; + int32_t rel_z; +}; -typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *); +struct xenkbd_mtouch { + uint8_t type; + uint8_t event_type; + uint8_t contact_id; + uint8_t reserved[5]; + union { + struct { + int32_t abs_x; + int32_t abs_y; + } pos; + struct { + uint32_t major; + uint32_t minor; + } shape; + int16_t orientation; + } u; +}; -typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32); +union xenkbd_in_event { + uint8_t type; + struct xenkbd_motion motion; + struct xenkbd_key key; + struct xenkbd_position pos; + struct xenkbd_mtouch mtouch; + char pad[40]; +}; -typedef void (*btf_trace_br_fdb_add)(void *, struct ndmsg *, struct net_device *, const unsigned char *, u16, u16); +struct xenkbd_page; -struct net_bridge; +struct xenkbd_info { + struct input_dev *kbd; + struct input_dev *ptr; + struct input_dev *mtouch; + struct xenkbd_page *page; + int gref; + int irq; + struct xenbus_device *xbdev; + char phys[32]; + int mtouch_cur_contact_id; +}; -struct net_bridge_port; +struct xenkbd_page { + uint32_t in_cons; + uint32_t in_prod; + uint32_t out_cons; + uint32_t out_prod; +}; -typedef void (*btf_trace_br_fdb_external_learn_add)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16); +struct i2c_smbus_alert { + struct work_struct alert; + struct i2c_client *ara; +}; -struct bridge_id { - unsigned char prio[2]; - unsigned char addr[6]; +struct alert_data { + unsigned short addr; + enum i2c_alert_protocol type; + unsigned int data; }; -typedef struct bridge_id bridge_id; +struct i2c_slave_host_notify_status { + u8 index; + u8 addr; +}; -struct bridge_mcast_other_query { - struct timer_list timer; - unsigned long delay_time; +struct i2c_smbus_alert_setup { + int irq; }; -struct bridge_mcast_own_query { - struct timer_list timer; - u32 startup_sent; +struct pxa_reg_layout { + u32 ibmr; + u32 idbr; + u32 icr; + u32 isr; + u32 isar; + u32 ilcr; + u32 iwcr; + u32 fm; + u32 hs; }; -struct br_ip { - union { - __be32 ip4; - struct in6_addr ip6; - } src; - union { - __be32 ip4; - struct in6_addr ip6; - unsigned char mac_addr[6]; - } dst; - __be16 proto; - __u16 vid; +enum pxa_i2c_types { + REGS_PXA2XX = 0, + REGS_PXA3XX = 1, + REGS_CE4100 = 2, + REGS_PXA910 = 3, + REGS_A3700 = 4, }; -struct bridge_mcast_querier { - struct br_ip addr; - int port_ifidx; - seqcount_spinlock_t seq; +struct pxa_i2c { + spinlock_t lock; + wait_queue_head_t wait; + struct i2c_msg *msg; + unsigned int msg_num; + unsigned int msg_idx; + unsigned int msg_ptr; + unsigned int slave_addr; + unsigned int req_slave_addr; + struct i2c_adapter adap; + struct clk *clk; + unsigned int irqlogidx; + u32 isrlog[32]; + u32 icrlog[32]; + void *reg_base; + void *reg_ibmr; + void *reg_idbr; + void *reg_icr; + void *reg_isr; + void *reg_isar; + void *reg_ilcr; + void *reg_iwcr; + unsigned long iobase; + unsigned long iosize; + int irq; + unsigned int use_pio: 1; + unsigned int fast_mode: 1; + unsigned int high_mode: 1; + unsigned char master_code; + unsigned long rate; + bool highmode_enter; + u32 fm_mask; + u32 hs_mask; + struct i2c_bus_recovery_info recovery; + struct pinctrl *pinctrl; + struct pinctrl_state *pinctrl_default; + struct pinctrl_state *pinctrl_recovery; }; -struct net_bridge_vlan; +struct i2c_pxa_platform_data { + unsigned int class; + unsigned int use_pio: 1; + unsigned int fast_mode: 1; + unsigned int high_mode: 1; + unsigned char master_code; + unsigned long rate; +}; -struct net_bridge_mcast { - struct net_bridge *br; - struct net_bridge_vlan *vlan; - u32 multicast_last_member_count; - u32 multicast_startup_query_count; - u8 multicast_querier; - u8 multicast_igmp_version; - u8 multicast_router; - u8 multicast_mld_version; - unsigned long multicast_last_member_interval; - unsigned long multicast_membership_interval; - unsigned long multicast_querier_interval; - unsigned long multicast_query_interval; - unsigned long multicast_query_response_interval; - unsigned long multicast_startup_query_interval; - struct hlist_head ip4_mc_router_list; - struct timer_list ip4_mc_router_timer; - struct bridge_mcast_other_query ip4_other_query; - struct bridge_mcast_own_query ip4_own_query; - struct bridge_mcast_querier ip4_querier; - struct hlist_head ip6_mc_router_list; - struct timer_list ip6_mc_router_timer; - struct bridge_mcast_other_query ip6_other_query; - struct bridge_mcast_own_query ip6_own_query; - struct bridge_mcast_querier ip6_querier; +struct watchdog_core_data { + struct device dev; + struct cdev cdev; + struct watchdog_device *wdd; + struct mutex lock; + ktime_t last_keepalive; + ktime_t last_hw_keepalive; + ktime_t open_deadline; + struct hrtimer timer; + struct kthread_work work; + unsigned long status; }; -struct net_bridge_vlan_group; +struct cpufreq_policy_data; -struct bridge_mcast_stats; +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 net_bridge { - spinlock_t lock; - spinlock_t hash_lock; - struct hlist_head frame_type_list; - struct net_device *dev; - unsigned long options; - __be16 vlan_proto; - u16 default_pvid; - struct net_bridge_vlan_group __attribute__((btf_type_tag("rcu"))) *vlgrp; - struct rhashtable fdb_hash_tbl; - struct list_head port_list; - union { - struct rtable fake_rtable; - struct rt6_info fake_rt6_info; - }; - u16 group_fwd_mask; - u16 group_fwd_mask_required; - bridge_id designated_root; - bridge_id bridge_id; - unsigned char topology_change; - unsigned char topology_change_detected; - u16 root_port; - unsigned long max_age; - unsigned long hello_time; - unsigned long forward_delay; - unsigned long ageing_time; - unsigned long bridge_max_age; - unsigned long bridge_hello_time; - unsigned long bridge_forward_delay; - unsigned long bridge_ageing_time; - u32 root_path_cost; - u8 group_addr[6]; - enum { - BR_NO_STP = 0, - BR_KERNEL_STP = 1, - BR_USER_STP = 2, - } stp_enabled; - struct net_bridge_mcast multicast_ctx; - struct bridge_mcast_stats __attribute__((btf_type_tag("percpu"))) *mcast_stats; - u32 hash_max; - spinlock_t multicast_lock; - struct rhashtable mdb_hash_tbl; - struct rhashtable sg_port_tbl; - struct hlist_head mcast_gc_list; - struct hlist_head mdb_list; - struct work_struct mcast_gc_work; - struct timer_list hello_timer; - struct timer_list tcn_timer; - struct timer_list topology_change_timer; - struct delayed_work gc_work; - struct kobject *ifobj; - u32 auto_cnt; - int last_hwdom; - unsigned long busy_hwdoms; - struct hlist_head fdb_list; +struct cpufreq_policy_data { + struct cpufreq_cpuinfo cpuinfo; + struct cpufreq_frequency_table *freq_table; + unsigned int cpu; + unsigned int min; + unsigned int max; }; -struct net_bridge_vlan_group { - struct rhashtable vlan_hash; - struct rhashtable tunnel_hash; - struct list_head vlan_list; - u16 num_vlans; - u16 pvid; - u8 pvid_state; +struct em_data_callback { + int (*active_power)(struct device *, unsigned long *, unsigned long *); + int (*get_cost)(struct device *, unsigned long, unsigned long *); }; -struct net_bridge_mcast_port { - struct net_bridge_port *port; - struct net_bridge_vlan *vlan; - struct bridge_mcast_own_query ip4_own_query; - struct timer_list ip4_mc_router_timer; - struct hlist_node ip4_rlist; - struct bridge_mcast_own_query ip6_own_query; - struct timer_list ip6_mc_router_timer; - struct hlist_node ip6_rlist; - unsigned char multicast_router; - u32 mdb_n_entries; - u32 mdb_max_entries; +struct scmi_data { + int domain_id; + int nr_opp; + struct device *cpu_dev; + cpumask_var_t opp_shared_cpus; }; -struct metadata_dst; +typedef void sdio_irq_handler_t(struct sdio_func *); -struct br_tunnel_info { - __be64 tunnel_id; - struct metadata_dst __attribute__((btf_type_tag("rcu"))) *tunnel_dst; +struct sdio_func { + struct mmc_card *card; + struct device dev; + sdio_irq_handler_t *irq_handler; + unsigned int num; + unsigned char class; + unsigned short vendor; + unsigned short device; + unsigned int max_blksize; + unsigned int cur_blksize; + unsigned int enable_timeout; + unsigned int state; + u8 *tmpbuf; + u8 major_rev; + u8 minor_rev; + unsigned int num_info; + const char **info; + struct sdio_func_tuple *tuples; }; -struct net_bridge_vlan { - struct rhash_head vnode; - struct rhash_head tnode; - u16 vid; - u16 flags; - u16 priv_flags; - u8 state; - struct pcpu_sw_netstats __attribute__((btf_type_tag("percpu"))) *stats; - union { - struct net_bridge *br; - struct net_bridge_port *port; - }; - union { - refcount_t refcnt; - struct net_bridge_vlan *brvlan; - }; - struct br_tunnel_info tinfo; - union { - struct net_bridge_mcast br_mcast_ctx; - struct net_bridge_mcast_port port_mcast_ctx; - }; - u16 msti; - struct list_head vlist; - struct callback_head rcu; +struct sdio_func_tuple { + struct sdio_func_tuple *next; + unsigned char code; + unsigned char size; + unsigned char data[0]; }; -typedef __u16 port_id; - -struct bridge_stp_xstats { - __u64 transition_blk; - __u64 transition_fwd; - __u64 rx_bpdu; - __u64 tx_bpdu; - __u64 rx_tcn; - __u64 tx_tcn; +struct mmc_fixup { + const char *name; + u64 rev_start; + u64 rev_end; + unsigned int manfid; + unsigned short oemid; + unsigned short year; + unsigned char month; + u16 cis_vendor; + u16 cis_device; + unsigned int ext_csd_rev; + const char *of_compatible; + void (*vendor_fixup)(struct mmc_card *, int); + int data; }; -struct net_bridge_port { - struct net_bridge *br; - struct net_device *dev; - netdevice_tracker dev_tracker; - struct list_head list; - unsigned long flags; - struct net_bridge_vlan_group __attribute__((btf_type_tag("rcu"))) *vlgrp; - struct net_bridge_port __attribute__((btf_type_tag("rcu"))) *backup_port; - u8 priority; - u8 state; - u16 port_no; - unsigned char topology_change_ack; - unsigned char config_pending; - port_id port_id; - port_id designated_port; - bridge_id designated_root; - bridge_id designated_bridge; - u32 path_cost; - u32 designated_cost; - unsigned long designated_age; - struct timer_list forward_delay_timer; - struct timer_list hold_timer; - struct timer_list message_age_timer; - struct kobject kobj; - struct callback_head rcu; - struct net_bridge_mcast_port multicast_ctx; - struct bridge_mcast_stats __attribute__((btf_type_tag("percpu"))) *mcast_stats; - u32 multicast_eht_hosts_limit; - u32 multicast_eht_hosts_cnt; - struct hlist_head mglist; - char sysfs_name[16]; - int hwdom; - int offload_count; - struct netdev_phys_item_id ppid; - u16 group_fwd_mask; - u16 backup_redirected_cnt; - struct bridge_stp_xstats stp_xstats; +enum { + EVENT_CMD_COMPLETE = 0, + EVENT_XFER_COMPLETE = 1, + EVENT_DATA_COMPLETE = 2, + EVENT_DATA_ERROR = 3, }; -struct br_mcast_stats { - __u64 igmp_v1queries[2]; - __u64 igmp_v2queries[2]; - __u64 igmp_v3queries[2]; - __u64 igmp_leaves[2]; - __u64 igmp_v1reports[2]; - __u64 igmp_v2reports[2]; - __u64 igmp_v3reports[2]; - __u64 igmp_parse_errors; - __u64 mld_v1queries[2]; - __u64 mld_v2queries[2]; - __u64 mld_leaves[2]; - __u64 mld_v1reports[2]; - __u64 mld_v2reports[2]; - __u64 mld_parse_errors; - __u64 mcast_bytes[2]; - __u64 mcast_packets[2]; +enum { + TRANS_MODE_PIO = 0, + TRANS_MODE_IDMAC = 1, + TRANS_MODE_EDMAC = 2, }; -struct bridge_mcast_stats { - struct br_mcast_stats mstats; - struct u64_stats_sync syncp; +enum dw_mci_cookie { + COOKIE_UNMAPPED = 0, + COOKIE_PRE_MAPPED = 1, + COOKIE_MAPPED = 2, }; -enum metadata_type { - METADATA_IP_TUNNEL = 0, - METADATA_HW_PORT_MUX = 1, - METADATA_MACSEC = 2, - METADATA_XFRM = 3, +struct idmac_desc_64addr { + u32 des0; + u32 des1; + u32 des2; + u32 des3; + u32 des4; + u32 des5; + u32 des6; + u32 des7; }; -struct hw_port_info { - struct net_device *lower_dev; - u32 port_id; +struct idmac_desc { + __le32 des0; + __le32 des1; + __le32 des2; + __le32 des3; }; -typedef u64 sci_t; - -struct macsec_info { - sci_t sci; +enum led_default_state { + LEDS_DEFSTATE_OFF = 0, + LEDS_DEFSTATE_ON = 1, + LEDS_DEFSTATE_KEEP = 2, }; -struct xfrm_md_info { - u32 if_id; - int link; - struct dst_entry *dst_orig; +struct led_properties { + u32 color; + bool color_present; + const char *function; + u32 func_enum; + bool func_enum_present; + const char *label; }; -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 ti_sci_desc { + u8 default_host_id; + int max_rx_timeout_ms; + int max_msgs; + int max_msg_size; }; -struct net_bridge_fdb_entry; - -typedef void (*btf_trace_fdb_delete)(void *, struct net_bridge *, struct net_bridge_fdb_entry *); +struct ti_sci_xfer; -struct mac_addr { - unsigned char addr[6]; +struct ti_sci_xfers_info { + struct semaphore sem_xfer_count; + struct ti_sci_xfer *xfer_block; + unsigned long *xfer_alloc_table; + spinlock_t xfer_lock; }; -typedef struct mac_addr mac_addr; +struct ti_sci_info { + struct device *dev; + struct notifier_block nb; + const struct ti_sci_desc *desc; + struct dentry *d; + void *debug_region; + char *debug_buffer; + size_t debug_region_size; + struct ti_sci_handle handle; + struct mbox_client cl; + struct mbox_chan *chan_tx; + struct mbox_chan *chan_rx; + struct ti_sci_xfers_info minfo; + struct list_head node; + u8 host_id; + int users; +}; -struct net_bridge_fdb_key { - mac_addr addr; - u16 vlan_id; +struct ti_msgmgr_message { + size_t len; + u8 *buf; + struct mbox_chan *chan_rx; + int timeout_rx_ms; }; -struct net_bridge_fdb_entry { - struct rhash_head rhnode; - struct net_bridge_port *dst; - struct net_bridge_fdb_key key; - struct hlist_node fdb_node; - unsigned long flags; - long: 64; - long: 64; - unsigned long updated; - unsigned long used; - struct callback_head rcu; - long: 64; - long: 64; - long: 64; - long: 64; +struct ti_sci_xfer { + struct ti_msgmgr_message tx_message; + u8 rx_len; + u8 *xfer_buf; + struct completion done; }; -typedef void (*btf_trace_br_fdb_update)(void *, struct net_bridge *, struct net_bridge_port *, const unsigned char *, u16, unsigned long); +struct ti_sci_msg_hdr { + u16 type; + u8 host; + u8 seq; + u32 flags; +}; -typedef void (*btf_trace_br_mdb_full)(void *, const struct net_device *, const struct br_ip *); +struct ti_sci_msg_resp_version { + struct ti_sci_msg_hdr hdr; + char firmware_description[32]; + u16 firmware_revision; + u8 abi_major; + u8 abi_minor; +}; -typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32); +struct ti_sci_msg_req_reboot { + struct ti_sci_msg_hdr hdr; +}; -typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, const struct page *, u32); +struct ti_sci_msg_req_set_device_state { + struct ti_sci_msg_hdr hdr; + u32 id; + u32 reserved; + u8 state; +} __attribute__((packed)); -typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, const struct page *, u32); +struct ti_sci_msg_req_get_device_state { + struct ti_sci_msg_hdr hdr; + u32 id; +}; -typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int); +struct ti_sci_msg_resp_get_device_state { + struct ti_sci_msg_hdr hdr; + u32 context_loss_count; + u32 resets; + u8 programmed_state; + u8 current_state; +} __attribute__((packed)); -typedef void (*btf_trace_neigh_create)(void *, struct neigh_table *, struct net_device *, const void *, const struct neighbour *, bool); +struct ti_sci_msg_req_set_device_resets { + struct ti_sci_msg_hdr hdr; + u32 id; + u32 resets; +}; -typedef void (*btf_trace_neigh_update)(void *, struct neighbour *, const u8 *, u8, u32, u32); +struct ti_sci_msg_req_set_clock_state { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u8 clk_id; + u8 request_state; + u32 clk_id_32; +} __attribute__((packed)); -typedef void (*btf_trace_neigh_update_done)(void *, struct neighbour *, int); +struct ti_sci_msg_req_get_clock_state { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u8 clk_id; + u32 clk_id_32; +} __attribute__((packed)); -typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int); +struct ti_sci_msg_resp_get_clock_state { + struct ti_sci_msg_hdr hdr; + u8 programmed_state; + u8 current_state; +} __attribute__((packed)); -typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int); +struct ti_sci_msg_req_set_clock_parent { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u8 clk_id; + u8 parent_id; + u32 clk_id_32; + u32 parent_id_32; +} __attribute__((packed)); -typedef void (*btf_trace_neigh_event_send_dead)(void *, struct neighbour *, int); +struct ti_sci_msg_req_get_clock_parent { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u8 clk_id; + u32 clk_id_32; +} __attribute__((packed)); -typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, int); +struct ti_sci_msg_resp_get_clock_parent { + struct ti_sci_msg_hdr hdr; + u8 parent_id; + u32 parent_id_32; +} __attribute__((packed)); -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 ti_sci_msg_req_get_clock_num_parents { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u8 clk_id; + u32 clk_id_32; +} __attribute__((packed)); -struct trace_event_raw_consume_skb { - struct trace_entry ent; - void *skbaddr; - void *location; - char __data[0]; -}; +struct ti_sci_msg_resp_get_clock_num_parents { + struct ti_sci_msg_hdr hdr; + u8 num_parents; + u32 num_parents_32; +} __attribute__((packed)); -struct trace_event_raw_skb_copy_datagram_iovec { - struct trace_entry ent; - const void *skbaddr; - int len; - char __data[0]; -}; +struct ti_sci_msg_req_query_clock_freq { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u64 min_freq_hz; + u64 target_freq_hz; + u64 max_freq_hz; + u8 clk_id; + u32 clk_id_32; +} __attribute__((packed)); -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 ti_sci_msg_resp_query_clock_freq { + struct ti_sci_msg_hdr hdr; + u64 freq_hz; }; -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 ti_sci_msg_req_set_clock_freq { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u64 min_freq_hz; + u64 target_freq_hz; + u64 max_freq_hz; + u8 clk_id; + u32 clk_id_32; +} __attribute__((packed)); -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 ti_sci_msg_req_get_clock_freq { + struct ti_sci_msg_hdr hdr; + u32 dev_id; + u8 clk_id; + u32 clk_id_32; +} __attribute__((packed)); -struct trace_event_raw_net_dev_template { - struct trace_entry ent; - void *skbaddr; - unsigned int len; - u32 __data_loc_name; - char __data[0]; +struct ti_sci_msg_resp_get_clock_freq { + struct ti_sci_msg_hdr hdr; + u64 freq_hz; }; -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 ti_sci_msg_req_get_resource_range { + struct ti_sci_msg_hdr hdr; + u16 type; + u8 subtype; + u8 secondary_host; }; -struct trace_event_raw_net_dev_rx_exit_template { - struct trace_entry ent; - int ret; - char __data[0]; +struct ti_sci_msg_resp_get_resource_range { + struct ti_sci_msg_hdr hdr; + u16 range_start; + u16 range_num; + u16 range_start_sec; + u16 range_num_sec; }; -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 ti_sci_msg_req_manage_irq { + struct ti_sci_msg_hdr hdr; + u32 valid_params; + u16 src_id; + u16 src_index; + u16 dst_id; + u16 dst_host_irq; + u16 ia_id; + u16 vint; + u16 global_event; + u8 vint_status_bit; + u8 secondary_host; }; -struct trace_event_raw_sock_rcvqueue_full { - struct trace_entry ent; - int rmem_alloc; - unsigned int truesize; - int sk_rcvbuf; - char __data[0]; -}; +struct ti_sci_msg_rm_ring_cfg_req { + struct ti_sci_msg_hdr hdr; + u32 valid_params; + u16 nav_id; + u16 index; + u32 addr_lo; + u32 addr_hi; + u32 count; + u8 mode; + u8 size; + u8 order_id; + u16 virtid; + u8 asel; +} __attribute__((packed)); -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 ti_sci_msg_psil_pair { + struct ti_sci_msg_hdr hdr; + u32 nav_id; + u32 src_thread; + u32 dst_thread; }; -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 ti_sci_msg_psil_unpair { + struct ti_sci_msg_hdr hdr; + u32 nav_id; + u32 src_thread; + u32 dst_thread; }; -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 ti_sci_msg_rm_udmap_tx_ch_cfg_req { + struct ti_sci_msg_hdr hdr; + u32 valid_params; + u16 nav_id; + u16 index; + u8 tx_pause_on_err; + u8 tx_filt_einfo; + u8 tx_filt_pswords; + u8 tx_atype; + u8 tx_chan_type; + u8 tx_supr_tdpkt; + u16 tx_fetch_size; + u8 tx_credit_count; + u16 txcq_qnum; + u8 tx_priority; + u8 tx_qos; + u8 tx_orderid; + u16 fdepth; + u8 tx_sched_priority; + u8 tx_burst_size; + u8 tx_tdtype; + u8 extended_ch_type; +} __attribute__((packed)); -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 ti_sci_msg_rm_udmap_rx_ch_cfg_req { + struct ti_sci_msg_hdr hdr; + u32 valid_params; + u16 nav_id; + u16 index; + u16 rx_fetch_size; + u16 rxcq_qnum; + u8 rx_priority; + u8 rx_qos; + u8 rx_orderid; + u8 rx_sched_priority; + u16 flowid_start; + u16 flowid_cnt; + u8 rx_pause_on_err; + u8 rx_atype; + u8 rx_chan_type; + u8 rx_ignore_short; + u8 rx_ignore_long; + u8 rx_burst_size; +} __attribute__((packed)); -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 ti_sci_msg_rm_udmap_flow_cfg_req { + struct ti_sci_msg_hdr hdr; + u32 valid_params; + u16 nav_id; + u16 flow_index; + u8 rx_einfo_present; + u8 rx_psinfo_present; + u8 rx_error_handling; + u8 rx_desc_type; + u16 rx_sop_offset; + u16 rx_dest_qnum; + u8 rx_src_tag_hi; + u8 rx_src_tag_lo; + u8 rx_dest_tag_hi; + u8 rx_dest_tag_lo; + u8 rx_src_tag_hi_sel; + u8 rx_src_tag_lo_sel; + u8 rx_dest_tag_hi_sel; + u8 rx_dest_tag_lo_sel; + u16 rx_fdq0_sz0_qnum; + u16 rx_fdq1_qnum; + u16 rx_fdq2_qnum; + u16 rx_fdq3_qnum; + u8 rx_ps_location; +} __attribute__((packed)); -struct trace_event_raw_udp_fail_queue_rcv_skb { - struct trace_entry ent; - int rc; - __u16 lport; - char __data[0]; -}; +struct ti_sci_msg_req_proc_request { + struct ti_sci_msg_hdr hdr; + u8 processor_id; +} __attribute__((packed)); -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 ti_sci_msg_req_proc_release { + struct ti_sci_msg_hdr hdr; + u8 processor_id; +} __attribute__((packed)); -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 ti_sci_msg_req_proc_handover { + struct ti_sci_msg_hdr hdr; + u8 processor_id; + u8 host_id; +} __attribute__((packed)); -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 ti_sci_msg_req_set_config { + struct ti_sci_msg_hdr hdr; + u8 processor_id; + u32 bootvector_low; + u32 bootvector_high; + u32 config_flags_set; + u32 config_flags_clear; +} __attribute__((packed)); -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 ti_sci_msg_req_set_ctrl { + struct ti_sci_msg_hdr hdr; + u8 processor_id; + u32 control_flags_set; + u32 control_flags_clear; +} __attribute__((packed)); -struct trace_event_raw_tcp_event_skb { - struct trace_entry ent; - const void *skbaddr; - __u8 saddr[28]; - __u8 daddr[28]; - char __data[0]; -}; +struct ti_sci_msg_req_get_status { + struct ti_sci_msg_hdr hdr; + u8 processor_id; +} __attribute__((packed)); -struct trace_event_raw_tcp_cong_state_set { - struct trace_entry ent; - const void *skaddr; - __u16 sport; - __u16 dport; - __u16 family; - __u8 saddr[4]; - __u8 daddr[4]; - __u8 saddr_v6[16]; - __u8 daddr_v6[16]; - __u8 cong_state; - char __data[0]; -}; +struct ti_sci_msg_resp_get_status { + struct ti_sci_msg_hdr hdr; + u8 processor_id; + u32 bootvector_low; + u32 bootvector_high; + u32 config_flags; + u32 control_flags; + u32 status_flags; +} __attribute__((packed)); -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 scmi_shared_mem { + __le32 reserved; + __le32 channel_status; + __le32 reserved1[2]; + __le32 flags; + __le32 length; + __le32 msg_header; + u8 msg_payload[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 efi_system_resource_table { + u32 fw_resource_count; + u32 fw_resource_count_max; + u64 fw_resource_version; + u8 entries[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 esre_entry; -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 esre_attribute { + struct attribute attr; + ssize_t (*show)(struct esre_entry *, char *); + ssize_t (*store)(struct esre_entry *, const char *, size_t); }; -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 efi_system_resource_entry_v1; -struct trace_event_raw_qdisc_create { - struct trace_entry ent; - u32 __data_loc_dev; - u32 __data_loc_kind; - u32 parent; - char __data[0]; +struct esre_entry { + union { + struct efi_system_resource_entry_v1 *esre1; + } esre; + struct kobject kobj; + struct list_head list; }; -struct trace_event_raw_br_fdb_add { - struct trace_entry ent; - u8 ndm_flags; - u32 __data_loc_dev; - unsigned char addr[6]; - u16 vid; - u16 nlh_flags; - char __data[0]; +struct 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 trace_event_raw_br_fdb_external_learn_add { - struct trace_entry ent; - u32 __data_loc_br_dev; - u32 __data_loc_dev; - unsigned char addr[6]; - u16 vid; - char __data[0]; +struct mhu_link { + unsigned int irq; + void *tx_reg; + void *rx_reg; }; -struct trace_event_raw_fdb_delete { - struct trace_entry ent; - u32 __data_loc_br_dev; - u32 __data_loc_dev; - unsigned char addr[6]; - u16 vid; - char __data[0]; +struct arm_mhu { + void *base; + struct mhu_link mlink[3]; + struct mbox_chan chan[3]; + struct mbox_controller mbox; }; -struct trace_event_raw_br_fdb_update { - struct trace_entry ent; - u32 __data_loc_br_dev; - u32 __data_loc_dev; - unsigned char addr[6]; - u16 vid; - unsigned long flags; - char __data[0]; -}; +struct qcom_ipcc_chan_info; -struct trace_event_raw_br_mdb_full { - struct trace_entry ent; - u32 __data_loc_dev; - int af; - u16 vid; - __u8 src[16]; - __u8 grp[16]; - __u8 grpmac[6]; - char __data[0]; +struct qcom_ipcc { + struct device *dev; + void *base; + struct irq_domain *irq_domain; + struct mbox_chan *chans; + struct qcom_ipcc_chan_info *mchan; + struct mbox_controller mbox; + int num_chans; + int irq; }; -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 qcom_ipcc_chan_info { + u16 client_id; + u16 signal_id; }; -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]; +enum usb_data_roles { + DR_NONE = 0, + DR_HOST = 1, + DR_DEVICE = 2, }; -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]; +enum host_event_code { + EC_HOST_EVENT_LID_CLOSED = 1, + EC_HOST_EVENT_LID_OPEN = 2, + EC_HOST_EVENT_POWER_BUTTON = 3, + EC_HOST_EVENT_AC_CONNECTED = 4, + EC_HOST_EVENT_AC_DISCONNECTED = 5, + EC_HOST_EVENT_BATTERY_LOW = 6, + EC_HOST_EVENT_BATTERY_CRITICAL = 7, + EC_HOST_EVENT_BATTERY = 8, + EC_HOST_EVENT_THERMAL_THRESHOLD = 9, + EC_HOST_EVENT_DEVICE = 10, + EC_HOST_EVENT_THERMAL = 11, + EC_HOST_EVENT_USB_CHARGER = 12, + EC_HOST_EVENT_KEY_PRESSED = 13, + EC_HOST_EVENT_INTERFACE_READY = 14, + EC_HOST_EVENT_KEYBOARD_RECOVERY = 15, + EC_HOST_EVENT_THERMAL_SHUTDOWN = 16, + EC_HOST_EVENT_BATTERY_SHUTDOWN = 17, + EC_HOST_EVENT_THROTTLE_START = 18, + EC_HOST_EVENT_THROTTLE_STOP = 19, + EC_HOST_EVENT_HANG_DETECT = 20, + EC_HOST_EVENT_HANG_REBOOT = 21, + EC_HOST_EVENT_PD_MCU = 22, + EC_HOST_EVENT_BATTERY_STATUS = 23, + EC_HOST_EVENT_PANIC = 24, + EC_HOST_EVENT_KEYBOARD_FASTBOOT = 25, + EC_HOST_EVENT_RTC = 26, + EC_HOST_EVENT_MKBP = 27, + EC_HOST_EVENT_USB_MUX = 28, + EC_HOST_EVENT_MODE_CHANGE = 29, + EC_HOST_EVENT_KEYBOARD_RECOVERY_HW_REINIT = 30, + EC_HOST_EVENT_WOV = 31, + EC_HOST_EVENT_INVALID = 32, }; -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]; +enum usb_pd_control_role { + USB_PD_CTRL_ROLE_NO_CHANGE = 0, + USB_PD_CTRL_ROLE_TOGGLE_ON = 1, + USB_PD_CTRL_ROLE_TOGGLE_OFF = 2, + USB_PD_CTRL_ROLE_FORCE_SINK = 3, + USB_PD_CTRL_ROLE_FORCE_SOURCE = 4, + USB_PD_CTRL_ROLE_FREEZE = 5, + USB_PD_CTRL_ROLE_COUNT = 6, }; -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]; +enum usb_pd_control_mux { + USB_PD_CTRL_MUX_NO_CHANGE = 0, + USB_PD_CTRL_MUX_NONE = 1, + USB_PD_CTRL_MUX_USB = 2, + USB_PD_CTRL_MUX_DP = 3, + USB_PD_CTRL_MUX_DOCK = 4, + USB_PD_CTRL_MUX_AUTO = 5, + USB_PD_CTRL_MUX_COUNT = 6, }; -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]; +enum usb_pd_control_swap { + USB_PD_CTRL_SWAP_NONE = 0, + USB_PD_CTRL_SWAP_DATA = 1, + USB_PD_CTRL_SWAP_POWER = 2, + USB_PD_CTRL_SWAP_VCONN = 3, + USB_PD_CTRL_SWAP_COUNT = 4, }; -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]; +enum usb_chg_type { + USB_CHG_TYPE_NONE = 0, + USB_CHG_TYPE_PD = 1, + USB_CHG_TYPE_C = 2, + USB_CHG_TYPE_PROPRIETARY = 3, + USB_CHG_TYPE_BC12_DCP = 4, + USB_CHG_TYPE_BC12_CDP = 5, + USB_CHG_TYPE_BC12_SDP = 6, + USB_CHG_TYPE_OTHER = 7, + USB_CHG_TYPE_VBUS = 8, + USB_CHG_TYPE_UNKNOWN = 9, + USB_CHG_TYPE_DEDICATED = 10, }; -struct trace_event_data_offsets_net_dev_start_xmit { - u32 name; +struct cros_ec_extcon_info { + struct device *dev; + struct extcon_dev *edev; + int port_id; + struct cros_ec_device *ec; + struct notifier_block notifier; + unsigned int dr; + bool pr; + bool dp; + bool mux; + unsigned int power_type; }; -struct trace_event_data_offsets_net_dev_xmit { - u32 name; +struct ec_response_usb_pd_ports { + uint8_t num_ports; }; -struct trace_event_data_offsets_net_dev_xmit_timeout { - u32 name; - u32 driver; +struct usb_chg_measures { + uint16_t voltage_max; + uint16_t voltage_now; + uint16_t current_max; + uint16_t current_lim; }; -struct trace_event_data_offsets_net_dev_template { - u32 name; +struct ec_response_usb_pd_power_info { + uint8_t role; + uint8_t type; + uint8_t dualrole; + uint8_t reserved1; + struct usb_chg_measures meas; + uint32_t max_power; }; -struct trace_event_data_offsets_net_dev_rx_verbose_template { - u32 name; +struct ec_params_usb_pd_power_info { + uint8_t port; }; -struct trace_event_data_offsets_napi_poll { - u32 dev_name; +struct ec_response_usb_pd_control_v1 { + uint8_t enabled; + uint8_t role; + uint8_t polarity; + char state[32]; }; -struct trace_event_data_offsets_qdisc_reset { - u32 dev; - u32 kind; +struct ec_params_usb_pd_control { + uint8_t port; + uint8_t role; + uint8_t mux; + uint8_t swap; }; -struct trace_event_data_offsets_qdisc_destroy { - u32 dev; - u32 kind; +struct ec_params_usb_pd_mux_info { + uint8_t port; }; -struct trace_event_data_offsets_qdisc_create { - u32 dev; - u32 kind; +struct ec_response_usb_pd_mux_info { + uint8_t flags; }; -struct trace_event_data_offsets_br_fdb_add { - u32 dev; -}; +struct bcm_voter; -struct trace_event_data_offsets_br_fdb_external_learn_add { - u32 br_dev; - u32 dev; +struct qcom_icc_provider { + struct icc_provider provider; + struct device *dev; + struct qcom_icc_bcm * const *bcms; + size_t num_bcms; + struct bcm_voter *voter; }; -struct trace_event_data_offsets_fdb_delete { - u32 br_dev; - u32 dev; +enum { + SKB_FCLONE_UNAVAILABLE = 0, + SKB_FCLONE_ORIG = 1, + SKB_FCLONE_CLONE = 2, }; -struct trace_event_data_offsets_br_fdb_update { - u32 br_dev; - u32 dev; +enum qdisc_state2_t { + __QDISC_STATE2_RUNNING = 0, }; -struct trace_event_data_offsets_br_mdb_full { - u32 dev; +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 trace_event_data_offsets_neigh_create { - u32 dev; +struct skb_array { + struct ptr_ring ring; }; -struct trace_event_data_offsets_neigh_update { - u32 dev; +struct pfifo_fast_priv { + struct skb_array q[3]; }; -struct trace_event_data_offsets_neigh__update { - u32 dev; +struct tc_prio_qopt { + int bands; + __u8 priomap[16]; }; -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 psched_ratecfg { + u64 rate_bytes_ps; + u32 mult; + u16 overhead; + u16 mpu; + u8 linklayer; + u8 shift; +}; -struct trace_event_data_offsets_tcp_probe {}; +struct psched_pktrate { + u64 rate_pkts_ps; + u32 mult; + u8 shift; +}; -struct trace_event_data_offsets_tcp_event_skb {}; +struct mini_Qdisc_pair { + struct mini_Qdisc miniq1; + struct mini_Qdisc miniq2; + struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq; +}; -struct trace_event_data_offsets_tcp_cong_state_set {}; +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 trace_event_data_offsets_fib_table_lookup {}; +struct eee_reply_data { + struct ethnl_reply_data base; + struct ethtool_eee eee; +}; -struct trace_event_data_offsets_qdisc_dequeue {}; +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, +}; -struct trace_event_data_offsets_qdisc_enqueue {}; +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, +}; -struct trace_event_data_offsets_page_pool_release {}; +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 trace_event_data_offsets_page_pool_state_release {}; +struct inet_protosw { + struct list_head list; + unsigned short type; + unsigned short protocol; + struct proto *prot; + const struct proto_ops *ops; + unsigned char flags; +}; -struct trace_event_data_offsets_page_pool_state_hold {}; +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 trace_event_data_offsets_page_pool_update_nid {}; +typedef unsigned int t_key; -enum xfrm_replay_mode { - XFRM_REPLAY_MODE_LEGACY = 0, - XFRM_REPLAY_MODE_BMP = 1, - XFRM_REPLAY_MODE_ESN = 2, +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 ping_table { - struct hlist_head hash[64]; - spinlock_t lock; +struct trie { + struct key_vector kv[1]; }; -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); -}; +typedef u8 dscp_t; -struct icmpv6_echo { - __be16 identifier; - __be16 sequence; +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 icmpv6_nd_advt { - __u32 reserved: 5; - __u32 override: 1; - __u32 solicited: 1; - __u32 router: 1; - __u32 reserved2: 24; +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 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 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 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 nl_info { + struct nlmsghdr *nlh; + struct net *nl_net; + u32 portid; + u8 skip_notify: 1; + u8 skip_notify_kernel: 1; }; -struct ping_iter_state { - struct seq_net_private p; - int bucket; - sa_family_t family; -}; +struct rtnexthop; -struct pingfakehdr { - struct icmphdr icmph; - struct msghdr *msg; - sa_family_t family; - __wsum wcheck; +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; }; -enum tpacket_versions { - TPACKET_V1 = 0, - TPACKET_V2 = 1, - TPACKET_V3 = 2, +struct rtnexthop { + unsigned short rtnh_len; + unsigned char rtnh_flags; + unsigned char rtnh_hops; + int rtnh_ifindex; }; -enum packet_sock_flags { - PACKET_SOCK_ORIGDEV = 0, - PACKET_SOCK_AUXDATA = 1, - PACKET_SOCK_TX_HAS_OFF = 2, - PACKET_SOCK_TP_LOSS = 3, - PACKET_SOCK_RUNNING = 4, - PACKET_SOCK_PRESSURE = 5, - PACKET_SOCK_QDISC_BYPASS = 6, +struct fib_notifier_info { + int family; + struct netlink_ext_ack *extack; }; -enum nf_dev_hooks { - NF_NETDEV_INGRESS = 0, - NF_NETDEV_EGRESS = 1, - NF_NETDEV_NUMHOOKS = 2, +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 tpacket_stats { - unsigned int tp_packets; - unsigned int tp_drops; +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 tpacket_stats_v3 { - unsigned int tp_packets; - unsigned int tp_drops; - unsigned int tp_freeze_q_cnt; +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]; }; -union tpacket_stats_u { - struct tpacket_stats stats1; - struct tpacket_stats_v3 stats3; +struct fib_trie_iter { + struct seq_net_private p; + struct fib_table *tb; + struct key_vector *tnode; + unsigned int index; + unsigned int depth; }; -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 fib_route_iter { + struct seq_net_private p; + struct fib_table *main_tb; + struct key_vector *tnode; + loff_t pos; + t_key key; }; -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; +struct skb_gso_cb { union { - unsigned long *rx_owner_map; - struct tpacket_kbdq_core prb_bdqc; + int mac_offset; + int data_offset; }; + int encap_level; + __wsum csum; + __u16 csum_start; }; -struct packet_fanout; +struct frag_hdr { + __u8 nexthdr; + __u8 reserved; + __be16 frag_off; + __be32 identification; +}; -struct packet_rollover; +struct hop_jumbo_hdr { + u8 nexthdr; + u8 hdrlen; + u8 tlv_type; + u8 tlv_len; + __be32 jumbo_payload_len; +}; -struct packet_mclist; +enum { + DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0, + DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 1, +}; -struct packet_sock { - struct sock sk; - struct packet_fanout *fanout; - union tpacket_stats_u stats; - struct packet_ring_buffer rx_ring; - struct packet_ring_buffer tx_ring; - int copy_thresh; - spinlock_t bind_lock; - struct mutex pg_vec_lock; - unsigned long flags; - int ifindex; - u8 vnet_hdr_sz; - __be16 num; - struct packet_rollover *rollover; - struct packet_mclist *mclist; - atomic_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; +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_trap_policer_item; + +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_trap_policer_item { + const struct devlink_trap_policer *policer; + u64 rate; + u64 burst; + struct list_head list; +}; + +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_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; +}; + +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; +}; + +typedef struct rpc_xprt * (*xprt_switch_find_xprt_t)(struct rpc_xprt_switch *, const struct rpc_xprt *); + +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: 64; long: 64; long: 64; long: 64; long: 64; - struct packet_type prot_hook; long: 64; long: 64; + u32 pad1; long: 64; long: 64; long: 64; long: 64; long: 64; - atomic_t tp_drops; long: 64; long: 64; + u32 consumer; 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; + u32 pad2; + u32 flags; 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; + u32 pad3; + long: 64; + long: 64; + long: 64; 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 xdp_umem_ring { + struct xdp_ring ptrs; + u64 desc[0]; }; -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 xdp_rxtx_ring { + struct xdp_ring ptrs; + struct xdp_desc desc[0]; }; -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; - union { - unsigned char sll_addr[8]; - struct { - struct {} __empty_sll_addr_flex; - unsigned char sll_addr_flex[0]; - }; - }; -}; +struct xsk_map; -struct sockaddr_pkt { - unsigned short spkt_family; - unsigned char spkt_device[14]; - __be16 spkt_protocol; +struct xsk_map_node { + struct list_head node; + struct xsk_map *map; + struct xdp_sock __attribute__((btf_type_tag("rcu"))) **map_entry; }; -struct packet_skb_cb { - union { - struct sockaddr_pkt pkt; - union { - unsigned int origlen; - struct sockaddr_ll ll; - }; - } sa; +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 tpacket_hdr; - -struct tpacket2_hdr; - -union tpacket_uhdr { - struct tpacket_hdr *h1; - struct tpacket2_hdr *h2; - struct tpacket3_hdr *h3; - void *raw; +enum kvm_smccc_filter_action { + KVM_SMCCC_FILTER_HANDLE = 0, + KVM_SMCCC_FILTER_DENY = 1, + KVM_SMCCC_FILTER_FWD_TO_USER = 2, + NR_SMCCC_FILTER_ACTIONS = 3, }; -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; +enum { + KVM_REG_ARM_STD_HYP_BIT_PV_TIME = 0, + KVM_REG_ARM_STD_HYP_BMAP_BIT_COUNT = 1, }; -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]; +enum { + KVM_REG_ARM_STD_BIT_TRNG_V1_0 = 0, + KVM_REG_ARM_STD_BMAP_BIT_COUNT = 1, }; -struct tpacket_req { - unsigned int tp_block_size; - unsigned int tp_block_nr; - unsigned int tp_frame_size; - unsigned int tp_frame_nr; +enum { + KVM_REG_ARM_VENDOR_HYP_BIT_FUNC_FEAT = 0, + KVM_REG_ARM_VENDOR_HYP_BIT_PTP = 1, + KVM_REG_ARM_VENDOR_HYP_BMAP_BIT_COUNT = 2, }; -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; +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; }; -union tpacket_req_u { - struct tpacket_req req; - struct tpacket_req3 req3; +struct kvm_smccc_filter { + __u32 base; + __u32 nr_functions; + __u8 action; + __u8 pad[15]; }; -struct sock_fprog { - unsigned short len; - struct sock_filter __attribute__((btf_type_tag("user"))) *filter; +struct kvm_one_reg { + __u64 id; + __u64 addr; }; -typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); - -struct packet_mreq_max { - int mr_ifindex; - unsigned short mr_type; - unsigned short mr_alen; - unsigned char mr_address[32]; +enum kvm_arch_timers { + TIMER_PTIMER = 0, + TIMER_VTIMER = 1, + NR_KVM_EL0_TIMERS = 2, + TIMER_HVTIMER = 2, + TIMER_HPTIMER = 3, + NR_KVM_TIMERS = 4, }; -struct fanout_args { - __u16 id; - __u16 type_flags; - __u32 max_num_members; +enum kvm_arch_timer_regs { + TIMER_REG_CNT = 0, + TIMER_REG_CVAL = 1, + TIMER_REG_TVAL = 2, + TIMER_REG_CTL = 3, + TIMER_REG_VOFF = 4, }; -struct tpacket_rollover_stats { - __u64 tp_all; - __u64 tp_huge; - __u64 tp_failed; +enum { + IRQCHIP_FWNODE_REAL = 0, + IRQCHIP_FWNODE_NAMED = 1, + IRQCHIP_FWNODE_NAMED_ID = 2, }; -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 timer_map { + struct arch_timer_context *direct_vtimer; + struct arch_timer_context *direct_ptimer; + struct arch_timer_context *emul_vtimer; + struct arch_timer_context *emul_ptimer; }; -struct vl_info { - enum vec_type type; - const char *name; - int min_vl; - int max_vl; - int max_virtualisable_vl; - unsigned long vq_map[8]; - unsigned long vq_partial_map[8]; +struct arch_timer_kvm_info { + struct timecounter timecounter; + int virtual_irq; + int physical_irq; }; -struct vl_config { - int __default_vl; +struct kvm_arm_counter_offset { + __u64 counter_offset; + __u64 reserved; }; -struct sys_reg_desc___2 { - const char *name; - enum { - AA32_DIRECT___2 = 0, - AA32_LO___2 = 1, - AA32_HI___2 = 2, - } aarch32_map; - u8 Op0; - u8 Op1; - u8 CRn; - u8 CRm; - u8 Op2; - bool (*access)(struct kvm_vcpu___2 *, struct sys_reg_params *, const struct sys_reg_desc___2 *); - u64 (*reset)(struct kvm_vcpu___2 *, const struct sys_reg_desc___2 *); - int reg; - u64 val; - int (*__get_user)(struct kvm_vcpu___2 *, const struct sys_reg_desc___2 *, u64 *); - int (*set_user)(struct kvm_vcpu___2 *, const struct sys_reg_desc___2 *, u64); - unsigned int (*visibility)(const struct kvm_vcpu___2 *, const struct sys_reg_desc___2 *); +struct gnttab_cache_flush { + union { + uint64_t dev_bus_addr; + grant_ref_t ref; + } a; + uint16_t offset; + uint16_t length; + uint32_t op; }; -typedef bool (*exit_handler_fn)(struct kvm_vcpu *, u64 *); - -enum kvm_arch_timers { - TIMER_PTIMER = 0, - TIMER_VTIMER = 1, - NR_KVM_EL0_TIMERS = 2, - TIMER_HVTIMER = 2, - TIMER_HPTIMER = 3, - NR_KVM_TIMERS = 4, -}; +typedef u32 compat_size_t; -struct kvm_exception_table_entry { - int insn; - int fixup; +struct compat_iovec { + compat_uptr_t iov_base; + compat_size_t iov_len; }; struct sigqueue { @@ -104019,14 +100471,26 @@ struct sigqueue { struct ucounts *ucounts; }; +struct siginfo { + union { + struct { + int si_signo; + int si_errno; + int si_code; + union __sifields _sifields; + }; + int _si_pad[32]; + }; +}; + +typedef struct siginfo siginfo_t; + struct ptrace_peeksiginfo_args { __u64 off; __u32 flags; __s32 nr; }; -typedef struct compat_siginfo compat_siginfo_t; - struct ptrace_syscall_info { __u8 op; __u8 pad[3]; @@ -104058,99 +100522,406 @@ struct ptrace_rseq_configuration { __u32 pad; }; -struct swsusp_header { - char reserved[4056]; - u32 hw_sig; - u32 crc32; - sector_t image; - unsigned int flags; - char orig_sig[10]; - char sig[10]; +enum pm_qos_req_action { + PM_QOS_ADD_REQ = 0, + PM_QOS_UPDATE_REQ = 1, + PM_QOS_REMOVE_REQ = 2, }; -struct swsusp_extent { - struct rb_node node; - unsigned long start; - unsigned long end; +struct irq_devres { + unsigned int irq; + void *dev_id; }; -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; +struct irq_desc_devres { + unsigned int from; + unsigned int cnt; +}; + +struct irq_generic_chip_devres { + struct irq_chip_generic *gc; + u32 msk; + unsigned int clr; + unsigned int set; +}; + +enum { + IRQ_SET_MASK_OK = 0, + IRQ_SET_MASK_OK_NOCOPY = 1, + IRQ_SET_MASK_OK_DONE = 2, +}; + +enum { + IRQCHIP_SET_TYPE_MASKED = 1, + IRQCHIP_EOI_IF_HANDLED = 2, + IRQCHIP_MASK_ON_SUSPEND = 4, + IRQCHIP_ONOFFLINE_ENABLED = 8, + IRQCHIP_SKIP_SET_WAKE = 16, + IRQCHIP_ONESHOT_SAFE = 32, + IRQCHIP_EOI_THREADED = 64, + IRQCHIP_SUPPORTS_LEVEL_MSI = 128, + IRQCHIP_SUPPORTS_NMI = 256, + IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, + IRQCHIP_AFFINITY_PRE_STARTUP = 1024, + IRQCHIP_IMMUTABLE = 2048, +}; + +struct msi_domain_template { + char name[48]; + struct irq_chip chip; + struct msi_domain_ops ops; + struct msi_domain_info info; +}; + +struct msi_ctrl { + unsigned int domid; + unsigned int first; + unsigned int last; + unsigned int nirqs; +}; + +struct msi_map { + int index; + int virq; +}; + +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 k_itimer; + +struct itimerspec64; + +struct k_clock { + int (*clock_getres)(const clockid_t, struct timespec64 *); + int (*clock_set)(const clockid_t, const struct timespec64 *); + int (*clock_get_timespec)(const clockid_t, struct timespec64 *); + ktime_t (*clock_get_ktime)(const clockid_t); + int (*clock_adj)(const clockid_t, struct __kernel_timex *); + int (*timer_create)(struct k_itimer *); + int (*nsleep)(const clockid_t, int, const struct timespec64 *); + int (*timer_set)(struct k_itimer *, int, struct itimerspec64 *, struct itimerspec64 *); + int (*timer_del)(struct k_itimer *); + void (*timer_get)(struct k_itimer *, struct itimerspec64 *); + void (*timer_rearm)(struct k_itimer *); + s64 (*timer_forward)(struct k_itimer *, ktime_t); + ktime_t (*timer_remaining)(struct k_itimer *, ktime_t); + int (*timer_try_to_cancel)(struct k_itimer *); + void (*timer_arm)(struct k_itimer *, ktime_t, bool, bool); + void (*timer_wait_running)(struct k_itimer *); +}; + +enum alarmtimer_restart { + ALARMTIMER_NORESTART = 0, + ALARMTIMER_RESTART = 1, +}; + +enum alarmtimer_type { + ALARM_REALTIME = 0, + ALARM_BOOTTIME = 1, + ALARM_NUMTYPE = 2, + ALARM_REALTIME_FREEZER = 3, + ALARM_BOOTTIME_FREEZER = 4, +}; + +struct alarm { + struct timerqueue_node node; + struct hrtimer timer; + enum alarmtimer_restart (*function)(struct alarm *, ktime_t); + enum alarmtimer_type type; + int state; + void *data; +}; + +struct cpu_timer { + struct timerqueue_node node; + struct timerqueue_head *head; + struct pid *pid; + struct list_head elist; + int firing; + struct task_struct __attribute__((btf_type_tag("rcu"))) *handling; +}; + +typedef __kernel_timer_t timer_t; + +struct 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 itimerspec64 { + struct timespec64 it_interval; + struct timespec64 it_value; +}; + +enum tick_dep_bits { + TICK_DEP_BIT_POSIX_TIMER = 0, + TICK_DEP_BIT_PERF_EVENTS = 1, + TICK_DEP_BIT_SCHED = 2, + TICK_DEP_BIT_CLOCK_UNSTABLE = 3, + TICK_DEP_BIT_RCU = 4, + TICK_DEP_BIT_RCU_EXP = 5, +}; + +struct futex_waitv { + __u64 val; + __u64 uaddr; + __u32 flags; + __u32 __reserved; +}; + +struct futex_vector { + struct futex_waitv w; + struct futex_q q; +}; + +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 audit_netlink_list { + __u32 portid; + struct net *net; + struct sk_buff_head q; +}; + +enum { + TRACE_ARRAY_FL_GLOBAL = 1, +}; + +typedef u32 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 { + struct arch_probe_insn api; +}; + +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_holder; + +struct kretprobe { + struct kprobe kp; + kretprobe_handler_t handler; + kretprobe_handler_t entry_handler; + int maxactive; + int nmissed; + size_t data_size; + struct kretprobe_holder *rph; +}; + +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 callback_head rcu; + struct llist_node llist; + struct kretprobe_holder *rph; + kprobe_opcode_t *ret_addr; + void *fp; + char data[0]; +}; + +struct objpool_head; + +typedef int (*objpool_fini_cb)(struct objpool_head *, void *); + +struct objpool_slot; + +struct objpool_head { + int obj_size; + int nr_objs; + int nr_cpus; + int capacity; + gfp_t gfp; + refcount_t ref; + unsigned long flags; + struct objpool_slot **cpu_slots; + objpool_fini_cb release; + void *context; +}; + +struct kretprobe_holder { + struct kretprobe __attribute__((btf_type_tag("rcu"))) *rp; + struct objpool_head pool; +}; + +struct objpool_slot { + uint32_t head; + uint32_t tail; + uint32_t last; + uint32_t mask; + void *entries[0]; +}; + +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 sym_count_ctx { + unsigned int count; + const char *name; +}; + +struct bpf_local_storage_cache { + spinlock_t idx_lock; + u64 idx_usage_counts[16]; +}; + +enum { + BPF_LOCAL_STORAGE_GET_F_CREATE = 1, + BPF_SK_STORAGE_GET_F_CREATE = 1, +}; + +typedef u64 (*btf_bpf_task_storage_get_recur)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_task_storage_get)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t); + +typedef u64 (*btf_bpf_task_storage_delete_recur)(struct bpf_map *, struct task_struct *); + +typedef u64 (*btf_bpf_task_storage_delete)(struct bpf_map *, struct task_struct *); + +struct 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; @@ -104158,12473 +100929,12736 @@ struct swsusp_info { long: 64; long: 64; long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - 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 perf_event_mmap_page; -struct swap_map_page_list { - struct swap_map_page *map; - struct swap_map_page_list *next; +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 hib_bio_batch { - atomic_t count; - wait_queue_head_t wait; - blk_status_t error; - struct blk_plug plug; +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 snapshot_handle { - unsigned int cur; - void *buffer; - int sync_read; +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 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 perf_guest_info_callbacks { + unsigned int (*state)(); + unsigned long (*get_ip)(); + unsigned int (*handle_intel_pt_intr)(); }; -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 swevent_hlist; -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 swevent_htable { + struct swevent_hlist *swevent_hlist; + struct mutex hlist_mutex; + int hlist_refcount; + int recursion[4]; }; -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 swevent_hlist { + struct hlist_head heads[256]; + struct callback_head callback_head; }; -struct audit_netlink_list { - __u32 portid; - struct net *net; - struct sk_buff_head q; +struct min_heap_callbacks { + int elem_size; + bool (*less)(const void *, const void *); + void (*swp)(void *, void *); }; -struct pcpu_freelist_node; - -struct pcpu_freelist_head { - struct pcpu_freelist_node *first; +struct pmu_event_list { raw_spinlock_t lock; + struct list_head list; }; -struct pcpu_freelist_node { - struct pcpu_freelist_node *next; +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 pcpu_freelist { - struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist; - struct pcpu_freelist_head extralist; +enum event_type_t { + EVENT_FLEXIBLE = 1, + EVENT_PINNED = 2, + EVENT_TIME = 4, + EVENT_CPU = 8, + EVENT_CGROUP = 16, + EVENT_ALL = 3, }; -struct cgroup_iter_priv { - struct cgroup_subsys_state *start_css; - bool visited_all; - bool terminate; - int order; +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 bpf_iter__cgroup { - union { - struct bpf_iter_meta *meta; - }; - union { - struct cgroup *cgroup; - }; +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 { - XA_CHECK_SCHED = 4096, +enum perf_record_ksymbol_type { + PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0, + PERF_RECORD_KSYMBOL_TYPE_BPF = 1, + PERF_RECORD_KSYMBOL_TYPE_OOL = 2, + PERF_RECORD_KSYMBOL_TYPE_MAX = 3, }; -struct dirty_throttle_control { - struct wb_domain *dom; - struct dirty_throttle_control *gdtc; - struct bdi_writeback *wb; - struct fprop_local_percpu *wb_completions; - unsigned long avail; - unsigned long dirty; - unsigned long thresh; - unsigned long bg_thresh; - unsigned long wb_dirty; - unsigned long wb_thresh; - unsigned long wb_bg_thresh; - unsigned long pos_ratio; +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, }; -struct wb_lock_cookie { - bool locked; - unsigned long flags; +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, }; -struct node_hstate { - struct kobject *hugepages_kobj; - struct kobject *hstate_kobjs[4]; +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 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 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 vma_resv_mode { - VMA_NEEDS_RESV = 0, - VMA_COMMIT_RESV = 1, - VMA_END_RESV = 2, - VMA_ADD_RESV = 3, - VMA_DEL_RESV = 4, +enum perf_sample_regs_abi { + PERF_SAMPLE_REGS_ABI_NONE = 0, + PERF_SAMPLE_REGS_ABI_32 = 1, + PERF_SAMPLE_REGS_ABI_64 = 2, }; -struct hugetlb_vma_lock { - struct kref refs; - struct rw_semaphore rw_sema; - struct vm_area_struct *vma; +enum perf_probe_config { + PERF_PROBE_CONFIG_IS_RETPROBE = 1, + PERF_UPROBE_REF_CTR_OFFSET_BITS = 32, + PERF_UPROBE_REF_CTR_OFFSET_SHIFT = 32, }; -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; +enum perf_event_arm_regs { + PERF_REG_ARM64_X0 = 0, + PERF_REG_ARM64_X1 = 1, + PERF_REG_ARM64_X2 = 2, + PERF_REG_ARM64_X3 = 3, + PERF_REG_ARM64_X4 = 4, + PERF_REG_ARM64_X5 = 5, + PERF_REG_ARM64_X6 = 6, + PERF_REG_ARM64_X7 = 7, + PERF_REG_ARM64_X8 = 8, + PERF_REG_ARM64_X9 = 9, + PERF_REG_ARM64_X10 = 10, + PERF_REG_ARM64_X11 = 11, + PERF_REG_ARM64_X12 = 12, + PERF_REG_ARM64_X13 = 13, + PERF_REG_ARM64_X14 = 14, + PERF_REG_ARM64_X15 = 15, + PERF_REG_ARM64_X16 = 16, + PERF_REG_ARM64_X17 = 17, + PERF_REG_ARM64_X18 = 18, + PERF_REG_ARM64_X19 = 19, + PERF_REG_ARM64_X20 = 20, + PERF_REG_ARM64_X21 = 21, + PERF_REG_ARM64_X22 = 22, + PERF_REG_ARM64_X23 = 23, + PERF_REG_ARM64_X24 = 24, + PERF_REG_ARM64_X25 = 25, + PERF_REG_ARM64_X26 = 26, + PERF_REG_ARM64_X27 = 27, + PERF_REG_ARM64_X28 = 28, + PERF_REG_ARM64_X29 = 29, + PERF_REG_ARM64_LR = 30, + PERF_REG_ARM64_SP = 31, + PERF_REG_ARM64_PC = 32, + PERF_REG_ARM64_MAX = 33, + PERF_REG_ARM64_VG = 46, + PERF_REG_ARM64_EXTENDED_MAX = 47, }; -struct file_region { - struct list_head link; - long from; - long to; - struct page_counter *reservation_counter; - struct cgroup_subsys_state *css; +enum perf_event_ioc_flags { + PERF_IOC_FLAG_GROUP = 1, }; -struct huge_bootmem_page { - struct list_head list; - struct hstate *hstate; +enum { + IF_STATE_ACTION = 0, + IF_STATE_SOURCE = 1, + IF_STATE_END = 2, }; -struct hugetlb_cgroup_per_node; +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, +}; -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[4]; - struct page_counter rsvd_hugepage[4]; - atomic_long_t events[4]; - atomic_long_t events_local[4]; - struct cgroup_file events_file[4]; - struct cgroup_file events_local_file[4]; - struct hugetlb_cgroup_per_node *nodeinfo[0]; +struct perf_pmu_events_attr { + struct device_attribute attr; + u64 id; + const char *event_str; }; -struct hugetlb_cgroup_per_node { - unsigned long usage[4]; +struct perf_addr_filter { + struct list_head entry; + struct path path; + unsigned long offset; + unsigned long size; + enum perf_addr_filter_action_t action; }; -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, +typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *); + +struct perf_event_header { + __u32 type; + __u16 misc; + __u16 size; }; -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 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 int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); +typedef void perf_iterate_f(struct perf_event *, void *); -typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *); +struct stop_event_data { + struct perf_event *event; + unsigned int restart; +}; -struct ext4_fsmap_head; +typedef int (*remote_function_f)(void *); -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 remote_function_call { + struct task_struct *p; + remote_function_f func; + void *info; + int ret; }; -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 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 fsmap { - __u32 fmr_device; - __u32 fmr_flags; - __u64 fmr_physical; - __u64 fmr_owner; - __u64 fmr_offset; - __u64 fmr_length; - __u64 fmr_reserved[3]; +struct perf_ns_link_info { + __u64 dev; + __u64 ino; }; -struct ext4_getfsmap_dev { - int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); - u32 gfd_dev; +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; }; -typedef void (*btf_trace_ext2_dio_write_begin)(void *, struct kiocb *, struct iov_iter *, ssize_t); - -typedef void (*btf_trace_ext2_dio_write_end)(void *, struct kiocb *, struct iov_iter *, ssize_t); - -typedef void (*btf_trace_ext2_dio_write_buff_end)(void *, struct kiocb *, struct iov_iter *, ssize_t); - -typedef void (*btf_trace_ext2_dio_read_begin)(void *, struct kiocb *, struct iov_iter *, ssize_t); +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; +}; -typedef void (*btf_trace_ext2_dio_read_end)(void *, struct kiocb *, struct iov_iter *, ssize_t); +struct perf_aux_event { + struct perf_event_header header; + u64 offset; + u64 size; + u64 flags; +}; -typedef void (*btf_trace_ext2_dio_write_endio)(void *, struct kiocb *, ssize_t, int); +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 trace_event_raw_ext2_dio_class { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t isize; - loff_t pos; - size_t count; - int ki_flags; - bool aio; - ssize_t ret; - char __data[0]; +struct perf_aux_event___2 { + struct perf_event_header header; + u64 hw_id; }; -struct trace_event_raw_ext2_dio_write_endio { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t isize; - loff_t pos; - ssize_t size; - int ki_flags; - bool aio; - int ret; - char __data[0]; +struct __group_key { + int cpu; + struct pmu *pmu; + struct cgroup *cgroup; }; -struct trace_event_data_offsets_ext2_dio_class {}; +struct perf_cgroup_event { + char *path; + int path_size; + struct { + struct perf_event_header header; + u64 id; + char path[0]; + } event_id; +}; -struct trace_event_data_offsets_ext2_dio_write_endio {}; +struct min_heap { + void *data; + int nr; + int size; +}; -struct proc_nfs_info { - int flag; - const char *str; - const char *nostr; +struct perf_aux_event___3 { + struct perf_event_header header; + u32 pid; + u32 tid; }; -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, +struct perf_read_event { + struct perf_event_header header; + u32 pid; + u32 tid; }; -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 remote_output { + struct perf_buffer *rb; + int err; }; -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, +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; }; -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, +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; }; -enum nfs4_ff_op_type { - NFS4_FF_OP_LAYOUTSTATS = 0, - NFS4_FF_OP_LAYOUTRETURN = 1, +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; }; -enum pnfs_layouttype { - LAYOUT_NFSV4_1_FILES = 1, - LAYOUT_OSD2_OBJECTS = 2, - LAYOUT_BLOCK_VOLUME = 3, - LAYOUT_FLEX_FILES = 4, - LAYOUT_SCSI = 5, - LAYOUT_TYPE_MAX = 6, +struct event_function_struct { + struct perf_event *event; + event_f func; + void *data; }; -struct nfs4_ff_layout_ds_err { - struct list_head list; - u64 offset; - u64 length; - int status; - enum nfs_opnum4 opnum; - nfs4_stateid stateid; - struct nfs4_deviceid deviceid; +struct perf_read_data { + struct perf_event *event; + bool group; + int ret; }; -struct nfs4_ff_layout_mirror; +typedef void (*btf_trace_tlb_flush)(void *, int, unsigned long); -struct nfs4_ff_layout_segment { - struct pnfs_layout_segment generic_hdr; - u64 stripe_unit; - u32 flags; - u32 mirror_array_cnt; - struct nfs4_ff_layout_mirror *mirror_array[0]; -}; +typedef void (*btf_trace_mm_migrate_pages)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, enum migrate_mode, int); -struct nfs4_ff_io_stat { - __u64 ops_requested; - __u64 bytes_requested; - __u64 ops_completed; - __u64 bytes_completed; - __u64 bytes_not_delivered; - ktime_t total_busy_time; - ktime_t aggregate_completion_time; +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); + +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, }; -struct nfs4_ff_busy_timer { - ktime_t start_time; - atomic_t n_ops; +struct trace_event_raw_tlb_flush { + struct trace_entry ent; + int reason; + unsigned long pages; + char __data[0]; }; -struct nfs4_ff_layoutstat { - struct nfs4_ff_io_stat io_stat; - struct nfs4_ff_busy_timer busy_timer; +struct trace_event_raw_mm_migrate_pages { + struct trace_entry ent; + unsigned long succeeded; + unsigned long failed; + unsigned long thp_succeeded; + unsigned long thp_failed; + unsigned long thp_split; + unsigned long large_folio_split; + enum migrate_mode mode; + int reason; + char __data[0]; }; -struct nfs4_ff_layout_ds; +struct trace_event_raw_mm_migrate_pages_start { + struct trace_entry ent; + enum migrate_mode mode; + int reason; + char __data[0]; +}; -struct nfs4_ff_layout_mirror { - struct pnfs_layout_hdr *layout; - struct list_head mirrors; - u32 ds_count; - u32 efficiency; - struct nfs4_deviceid devid; - struct nfs4_ff_layout_ds *mirror_ds; - u32 fh_versions_cnt; - struct nfs_fh *fh_versions; - nfs4_stateid stateid; - const struct cred __attribute__((btf_type_tag("rcu"))) *ro_cred; - const struct cred __attribute__((btf_type_tag("rcu"))) *rw_cred; - refcount_t ref; - spinlock_t lock; - unsigned long flags; - struct nfs4_ff_layoutstat read_stat; - struct nfs4_ff_layoutstat write_stat; - ktime_t start_time; - u32 report_interval; +struct trace_event_raw_migration_pte { + struct trace_entry ent; + unsigned long addr; + unsigned long pte; + int order; + char __data[0]; }; -struct nfs4_ff_ds_version; +struct trace_event_data_offsets_tlb_flush {}; -struct nfs4_ff_layout_ds { - struct nfs4_deviceid_node id_node; - u32 ds_versions_cnt; - struct nfs4_ff_ds_version *ds_versions; - struct nfs4_pnfs_ds *ds; +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 nfs4_ff_ds_version { - u32 version; - u32 minor_version; - u32 rsize; - u32 wsize; - bool tightly_coupled; +struct char_device_struct { + struct char_device_struct *next; + unsigned int major; + unsigned int baseminor; + int minorct; + char name[64]; + struct cdev *cdev; }; -struct nfs4_flexfile_layout { - struct pnfs_layout_hdr generic_hdr; - struct pnfs_ds_commit_info commit_info; - struct list_head mirrors; - struct list_head error_list; - ktime_t last_report_time; +typedef struct kobject *kobj_probe_t(dev_t, int *, void *); + +enum fid_type { + FILEID_ROOT = 0, + FILEID_INO32_GEN = 1, + FILEID_INO32_GEN_PARENT = 2, + FILEID_BTRFS_WITHOUT_PARENT = 77, + FILEID_BTRFS_WITH_PARENT = 78, + FILEID_BTRFS_WITH_PARENT_ROOT = 79, + FILEID_UDF_WITHOUT_PARENT = 81, + FILEID_UDF_WITH_PARENT = 82, + FILEID_NILFS_WITHOUT_PARENT = 97, + FILEID_NILFS_WITH_PARENT = 98, + FILEID_FAT_WITHOUT_PARENT = 113, + FILEID_FAT_WITH_PARENT = 114, + FILEID_INO64_GEN = 129, + FILEID_INO64_GEN_PARENT = 130, + FILEID_LUSTRE = 151, + FILEID_BCACHEFS_WITHOUT_PARENT = 177, + FILEID_BCACHEFS_WITH_PARENT = 178, + FILEID_KERNFS = 254, + FILEID_INVALID = 255, }; -struct nfs42_device_error { - struct nfs4_deviceid dev_id; - int status; - enum nfs_opnum4 opnum; +struct simple_transaction_argresp { + ssize_t size; + char data[0]; }; -struct nfs42_layout_error { - __u64 offset; - __u64 length; - nfs4_stateid stateid; - struct nfs42_device_error errors[1]; +struct tree_descr { + const char *name; + const struct file_operations *ops; + int mode; }; -struct nfs4_flexfile_layoutreturn_args { - struct list_head errors; - struct nfs42_layoutstat_devinfo devinfo[4]; - unsigned int num_errors; - unsigned int num_dev; - struct page *pages[1]; +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; }; -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 elf64_note { + Elf64_Word n_namesz; + Elf64_Word n_descsz; + Elf64_Word n_type; }; -struct ipc_namespace { - struct ipc_ids ids[3]; - int sem_ctls[4]; - int used_sems; - unsigned int msg_ctlmax; - unsigned int msg_ctlmnb; - unsigned int msg_ctlmni; - struct percpu_counter percpu_msg_bytes; - struct percpu_counter percpu_msg_hdrs; - size_t shm_ctlmax; - size_t shm_ctlall; - unsigned long shm_tot; - int shm_ctlmni; - int shm_rmid_forced; - struct notifier_block ipcns_nb; - struct vfsmount *mq_mnt; - unsigned int mq_queues_count; - unsigned int mq_queues_max; - unsigned int mq_msg_max; - unsigned int mq_msgsize_max; - unsigned int mq_msg_default; - unsigned int mq_msgsize_default; - struct ctl_table_set mq_set; - struct ctl_table_header *mq_sysctls; - struct ctl_table_set ipc_set; - struct ctl_table_header *ipc_sysctls; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct llist_node mnt_llist; - struct ns_common ns; +struct 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 aead_geniv_ctx { - spinlock_t lock; - struct crypto_aead *child; - struct crypto_sync_skcipher *sknull; - u8 salt[0]; +struct elf_siginfo { + int si_signo; + int si_code; + int si_errno; }; -struct chksum_ctx { - u32 key; +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; }; -struct chksum_desc_ctx { - u32 crc; +typedef unsigned long elf_greg_t; + +typedef elf_greg_t elf_gregset_t[34]; + +struct elf_prstatus { + struct elf_prstatus_common common; + elf_gregset_t pr_reg; + int pr_fpvalid; }; -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 elf_thread_core_info___2 { + struct elf_thread_core_info___2 *next; + struct task_struct *task; + struct elf_prstatus prstatus; + struct memelfnote notes[0]; }; -struct blk_major_name { - struct blk_major_name *next; - int major; - char name[16]; - void (*probe)(dev_t); +struct elf_prpsinfo { + char pr_state; + char pr_sname; + char pr_zomb; + char pr_nice; + unsigned long pr_flag; + __kernel_uid_t pr_uid; + __kernel_gid_t pr_gid; + pid_t pr_pid; + pid_t pr_ppid; + pid_t pr_pgrp; + pid_t pr_sid; + char pr_fname[16]; + char pr_psargs[80]; }; -enum stat_group { - STAT_READ = 0, - STAT_WRITE = 1, - STAT_DISCARD = 2, - STAT_FLUSH = 3, - NR_STAT_GROUPS = 4, +enum proc_hidepid { + HIDEPID_OFF = 0, + HIDEPID_NO_ACCESS = 1, + HIDEPID_INVISIBLE = 2, + HIDEPID_NOT_PTRACEABLE = 4, }; -struct alpine_msix_data { - spinlock_t msi_map_lock; - phys_addr_t addr; - u32 spi_first; - u32 num_spis; - unsigned long *msi_map; +enum proc_pidonly { + PROC_PIDONLY_OFF = 0, + PROC_PIDONLY_ON = 1, }; -struct ls_scfg_msi_cfg { - u32 ibs_shift; - u32 msir_irqs; - u32 msir_base; +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; }; -enum { - IRQ_SET_MASK_OK = 0, - IRQ_SET_MASK_OK_NOCOPY = 1, - IRQ_SET_MASK_OK_DONE = 2, +struct kernfs_fs_context { + struct kernfs_root *root; + void *ns_tag; + unsigned long magic; + bool new_sb_created; }; -struct ls_scfg_msir; +typedef unsigned short __kernel_uid16_t; -struct ls_scfg_msi { - spinlock_t lock; - struct platform_device *pdev; - struct irq_domain *parent; - struct irq_domain *msi_domain; - void *regs; - phys_addr_t msiir_addr; - struct ls_scfg_msi_cfg *cfg; - u32 msir_num; - struct ls_scfg_msir *msir; - u32 irqs_num; - unsigned long *used; +typedef __kernel_uid16_t uid16_t; + +typedef unsigned short __kernel_gid16_t; + +typedef __kernel_gid16_t gid16_t; + +struct ext4_xattr_inode_array { + unsigned int count; + struct inode *inodes[0]; }; -struct ls_scfg_msir { - struct ls_scfg_msi *msi_data; - unsigned int index; - unsigned int gic_irq; - unsigned int bit_start; - unsigned int bit_end; - unsigned int srs; - void *reg; +struct ext4_io_end; + +typedef struct ext4_io_end ext4_io_end_t; + +struct ext4_io_submit { + struct writeback_control *io_wbc; + struct bio *io_bio; + ext4_io_end_t *io_end; + sector_t io_next_block; }; -struct phy_meson8b_usb2_match_data { - bool host_enable_aca; +struct mpage_da_data { + struct inode *inode; + struct writeback_control *wbc; + unsigned int can_map: 1; + unsigned long first_page; + unsigned long next_page; + unsigned long last_page; + struct ext4_map_blocks map; + struct ext4_io_submit io_submit; + unsigned int do_map: 1; + unsigned int scanned_until_end: 1; + unsigned int journalled_more_data: 1; }; -struct phy_meson8b_usb2_priv { - struct regmap *regmap; - enum usb_dr_mode dr_mode; - struct clk *clk_usb_general; - struct clk *clk_usb; - struct reset_control *reset; - const struct phy_meson8b_usb2_match_data *match; +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; }; -struct samsung_ufs_phy_pmu_isol { - u32 offset; - u32 mask; - u32 en; +struct ext4_io_end_vec { + struct list_head list; + loff_t offset; + ssize_t size; }; -struct samsung_ufs_phy_cfg; +typedef enum { + EXT4_IGET_NORMAL = 0, + EXT4_IGET_SPECIAL = 1, + EXT4_IGET_HANDLE = 2, + EXT4_IGET_BAD = 4, + EXT4_IGET_EA_INODE = 8, +} ext4_iget_flags; -struct samsung_ufs_phy_drvdata { - const struct samsung_ufs_phy_cfg **cfgs; - struct samsung_ufs_phy_pmu_isol isol; - const char * const *clk_list; - int num_clks; - u32 cdr_lock_status_offset; -}; +typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); -struct samsung_ufs_phy_cfg { - u32 off_0; - u32 off_1; - u32 val; - u8 desc; - u8 id; +struct squashfs_stream { + void *stream; + struct mutex mutex; }; -struct uniphier_u2phy_param { - u32 offset; - u32 value; +enum iter_type { + ITER_UBUF = 0, + ITER_IOVEC = 1, + ITER_BVEC = 2, + ITER_KVEC = 3, + ITER_XARRAY = 4, + ITER_DISCARD = 5, +}; + +enum { + FATTR4_SUPPORTED_ATTRS = 0, + FATTR4_TYPE = 1, + FATTR4_FH_EXPIRE_TYPE = 2, + FATTR4_CHANGE = 3, + FATTR4_SIZE = 4, + FATTR4_LINK_SUPPORT = 5, + FATTR4_SYMLINK_SUPPORT = 6, + FATTR4_NAMED_ATTR = 7, + FATTR4_FSID = 8, + FATTR4_UNIQUE_HANDLES = 9, + FATTR4_LEASE_TIME = 10, + FATTR4_RDATTR_ERROR = 11, + FATTR4_ACL = 12, + FATTR4_ACLSUPPORT = 13, + FATTR4_ARCHIVE = 14, + FATTR4_CANSETTIME = 15, + FATTR4_CASE_INSENSITIVE = 16, + FATTR4_CASE_PRESERVING = 17, + FATTR4_CHOWN_RESTRICTED = 18, + FATTR4_FILEHANDLE = 19, + FATTR4_FILEID = 20, + FATTR4_FILES_AVAIL = 21, + FATTR4_FILES_FREE = 22, + FATTR4_FILES_TOTAL = 23, + FATTR4_FS_LOCATIONS = 24, + FATTR4_HIDDEN = 25, + FATTR4_HOMOGENEOUS = 26, + FATTR4_MAXFILESIZE = 27, + FATTR4_MAXLINK = 28, + FATTR4_MAXNAME = 29, + FATTR4_MAXREAD = 30, + FATTR4_MAXWRITE = 31, + FATTR4_MIMETYPE = 32, + FATTR4_MODE = 33, + FATTR4_NO_TRUNC = 34, + FATTR4_NUMLINKS = 35, + FATTR4_OWNER = 36, + FATTR4_OWNER_GROUP = 37, + FATTR4_QUOTA_AVAIL_HARD = 38, + FATTR4_QUOTA_AVAIL_SOFT = 39, + FATTR4_QUOTA_USED = 40, + FATTR4_RAWDEV = 41, + FATTR4_SPACE_AVAIL = 42, + FATTR4_SPACE_FREE = 43, + FATTR4_SPACE_TOTAL = 44, + FATTR4_SPACE_USED = 45, + FATTR4_SYSTEM = 46, + FATTR4_TIME_ACCESS = 47, + FATTR4_TIME_ACCESS_SET = 48, + FATTR4_TIME_BACKUP = 49, + FATTR4_TIME_CREATE = 50, + FATTR4_TIME_DELTA = 51, + FATTR4_TIME_METADATA = 52, + FATTR4_TIME_MODIFY = 53, + FATTR4_TIME_MODIFY_SET = 54, + FATTR4_MOUNTED_ON_FILEID = 55, }; -struct uniphier_u2phy_soc_data { - struct uniphier_u2phy_param config0; - struct uniphier_u2phy_param config1; +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, }; -struct uniphier_u2phy_priv { - struct regmap *regmap; - struct phy *phy; - struct regulator *vbus; - const struct uniphier_u2phy_soc_data *data; - struct uniphier_u2phy_priv *next; +enum pnfs_layoutreturn_type { + RETURN_FILE = 1, + RETURN_FSID = 2, + RETURN_ALL = 3, }; -struct gpio { - unsigned int gpio; - unsigned long flags; - const char *label; +struct nfs4_copy_state { + struct list_head copies; + struct list_head src_copies; + nfs4_stateid stateid; + struct completion completion; + uint64_t count; + struct nfs_writeverf verf; + int error; + int flags; + struct nfs4_state *parent_src_state; + struct nfs4_state *parent_dst_state; }; -struct xgene_gpio { - struct gpio_chip chip; - void *base; - spinlock_t lock; - u32 set_dr_val[3]; +struct cb_layoutrecallargs { + uint32_t cbl_recall_type; + uint32_t cbl_layout_type; + uint32_t cbl_layoutchanged; + union { + struct { + struct nfs_fh cbl_fh; + struct pnfs_layout_range cbl_range; + nfs4_stateid cbl_stateid; + }; + struct nfs_fsid cbl_fsid; + }; }; -struct msi_domain_template { - char name[48]; - struct irq_chip chip; - struct msi_domain_ops ops; - struct msi_domain_info info; +struct cb_offloadargs { + struct nfs_fh coa_fh; + nfs4_stateid coa_stateid; + uint32_t error; + uint64_t wr_count; + struct nfs_writeverf wr_writeverf; }; -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, +struct cb_process_state { + __be32 drc_status; + struct nfs_client *clp; + struct nfs4_slot *slot; + u32 minorversion; + struct net *net; }; -enum support_mode { - ALLOW_LEGACY = 0, - DENY_LEGACY = 1, +struct cb_getattrargs { + struct nfs_fh fh; + uint32_t bitmap[2]; }; -struct linux_logo { - int type; - unsigned int width; - unsigned int height; - unsigned int clutsize; - const unsigned char *clut; - const unsigned char *data; +struct cb_getattrres { + __be32 status; + uint32_t bitmap[2]; + uint64_t size; + uint64_t change_attr; + struct timespec64 ctime; + struct timespec64 mtime; }; -enum display_flags { - DISPLAY_FLAGS_HSYNC_LOW = 1, - DISPLAY_FLAGS_HSYNC_HIGH = 2, - DISPLAY_FLAGS_VSYNC_LOW = 4, - DISPLAY_FLAGS_VSYNC_HIGH = 8, - DISPLAY_FLAGS_DE_LOW = 16, - DISPLAY_FLAGS_DE_HIGH = 32, - DISPLAY_FLAGS_PIXDATA_POSEDGE = 64, - DISPLAY_FLAGS_PIXDATA_NEGEDGE = 128, - DISPLAY_FLAGS_INTERLACED = 256, - DISPLAY_FLAGS_DOUBLESCAN = 512, - DISPLAY_FLAGS_DOUBLECLK = 1024, - DISPLAY_FLAGS_SYNC_POSEDGE = 2048, - DISPLAY_FLAGS_SYNC_NEGEDGE = 4096, +struct cb_recallargs { + struct nfs_fh fh; + nfs4_stateid stateid; + uint32_t truncate; }; -struct timing_entry { - u32 min; - u32 typ; - u32 max; +struct cb_devicenotifyitem; + +struct cb_devicenotifyargs { + uint32_t ndevs; + struct cb_devicenotifyitem *devs; }; -struct display_timing { - struct timing_entry pixelclock; - struct timing_entry hactive; - struct timing_entry hfront_porch; - struct timing_entry hback_porch; - struct timing_entry hsync_len; - struct timing_entry vactive; - struct timing_entry vfront_porch; - struct timing_entry vback_porch; - struct timing_entry vsync_len; - enum display_flags flags; +struct cb_devicenotifyitem { + uint32_t cbd_notify_type; + uint32_t cbd_layout_type; + struct nfs4_deviceid cbd_dev_id; + uint32_t cbd_immediate; }; -struct display_timings { - unsigned int num_timings; - unsigned int native_mode; - struct display_timing **timings; +struct cb_recallanyargs { + uint32_t craa_objs_to_keep; + uint32_t craa_type_mask; }; -struct videomode { - unsigned long pixelclock; - u32 hactive; - u32 hfront_porch; - u32 hback_porch; - u32 hsync_len; - u32 vactive; - u32 vfront_porch; - u32 vback_porch; - u32 vsync_len; - enum display_flags flags; +struct cb_recallslotargs { + uint32_t crsa_target_highest_slotid; }; -struct acpi_device_physical_node { - unsigned int node_id; - struct list_head node; - struct device *dev; - bool put_online: 1; +struct nfs_lowner { + __u64 clientid; + __u64 id; + dev_t s_dev; }; -struct acpi_hardware_id { - struct list_head list; - const char *id; +struct cb_notify_lock_args { + struct nfs_fh cbnl_fh; + struct nfs_lowner cbnl_owner; + bool cbnl_valid; }; -struct acpi_osc_context { - char *uuid_str; - int rev; - struct acpi_buffer cap; - struct acpi_buffer ret; +struct nlm_reboot { + char *mon; + unsigned int len; + u32 state; + struct nsm_private priv; }; -typedef acpi_status (*acpi_table_handler)(u32, void *, void *); +struct nlm_block; -struct acpi_dev_walk_context { - int (*fn)(struct acpi_device *, void *); - void *data; +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 acpi_table_gtdt; - -struct acpi_gtdt_descriptor { - struct acpi_table_gtdt *gtdt; - void *gtdt_end; - void *platform_timer; +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 acpi_table_gtdt { - struct acpi_table_header header; - u64 counter_block_addresss; - u32 reserved; - u32 secure_el1_interrupt; - u32 secure_el1_flags; - u32 non_secure_el1_interrupt; - u32 non_secure_el1_flags; - u32 virtual_timer_interrupt; - u32 virtual_timer_flags; - u32 non_secure_el2_interrupt; - u32 non_secure_el2_flags; - u64 counter_read_block_address; - u32 platform_timer_count; - u32 platform_timer_offset; -} __attribute__((packed)); +enum autofs_notify { + NFY_NONE = 0, + NFY_MOUNT = 1, + NFY_EXPIRE = 2, +}; -enum arch_timer_ppi_nr { - ARCH_TIMER_PHYS_SECURE_PPI = 0, - ARCH_TIMER_PHYS_NONSECURE_PPI = 1, - ARCH_TIMER_VIRT_PPI = 2, - ARCH_TIMER_HYP_PPI = 3, - ARCH_TIMER_HYP_VIRT_PPI = 4, - ARCH_TIMER_MAX_TIMER_PPI = 5, +struct autofs_packet_hdr { + int proto_version; + int type; }; -enum acpi_gtdt_type { - ACPI_GTDT_TYPE_TIMER_BLOCK = 0, - ACPI_GTDT_TYPE_WATCHDOG = 1, - ACPI_GTDT_TYPE_RESERVED = 2, +struct autofs_packet_missing { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[256]; }; -struct acpi_gtdt_header { - u8 type; - u16 length; -} __attribute__((packed)); +struct autofs_packet_expire { + struct autofs_packet_hdr hdr; + int len; + char name[256]; +}; -struct acpi_gtdt_watchdog { - struct acpi_gtdt_header header; - u8 reserved; - u64 refresh_frame_address; - u64 control_frame_address; - u32 timer_interrupt; - u32 timer_flags; -} __attribute__((packed)); +struct autofs_packet_expire_multi { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[256]; +}; -struct arch_timer_mem_frame { - bool valid; - phys_addr_t cntbase; - size_t size; - int phys_irq; - int virt_irq; +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 arch_timer_mem { - phys_addr_t cntctlbase; - size_t size; - struct arch_timer_mem_frame frame[8]; +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]; }; -struct acpi_gtdt_timer_block { - struct acpi_gtdt_header header; - u8 reserved; - u64 block_address; - u32 timer_count; - u32 timer_offset; -} __attribute__((packed)); +typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; -struct acpi_gtdt_timer_entry { - u8 frame_number; - u8 reserved[3]; - u64 base_address; - u64 el0_base_address; - u32 timer_interrupt; - u32 timer_flags; - u32 virtual_timer_interrupt; - u32 virtual_timer_flags; - u32 common_flags; -} __attribute__((packed)); +typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; -struct s5_hw_clk { - struct clk_hw hw; - void *reg; -}; +typedef struct autofs_v5_packet autofs_packet_missing_direct_t; -struct s5_pll_conf { - unsigned long freq; - u8 div; - bool rot_ena; - u8 rot_sel; - u8 rot_dir; - u8 pre_div; +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 s5_clk_data { - void *base; - struct s5_hw_clk s5_hw[9]; -}; +struct pstore_record; -struct berlin2_pll_map { - const u8 vcodiv[16]; - u8 mult; - u8 fbdiv_shift; - u8 rfdiv_shift; - u8 divsel_shift; +struct pstore_info { + struct module *owner; + const char *name; + spinlock_t buf_lock; + char *buf; + size_t bufsize; + struct mutex read_mutex; + int flags; + int max_reason; + void *data; + int (*open)(struct pstore_info *); + int (*close)(struct pstore_info *); + ssize_t (*read)(struct pstore_record *); + int (*write)(struct pstore_record *); + int (*write_user)(struct pstore_record *, const char __attribute__((btf_type_tag("user"))) *); + int (*erase)(struct pstore_record *); }; -struct berlin2_pll { - struct clk_hw hw; - void *base; - struct berlin2_pll_map map; +enum pstore_type_id { + PSTORE_TYPE_DMESG = 0, + PSTORE_TYPE_MCE = 1, + PSTORE_TYPE_CONSOLE = 2, + PSTORE_TYPE_FTRACE = 3, + PSTORE_TYPE_PPC_RTAS = 4, + PSTORE_TYPE_PPC_OF = 5, + PSTORE_TYPE_PPC_COMMON = 6, + PSTORE_TYPE_PMSG = 7, + PSTORE_TYPE_PPC_OPAL = 8, + PSTORE_TYPE_MAX = 9, }; -struct clk_hisi_phase { - struct clk_hw hw; - void *reg; - u32 *phase_degrees; - u32 *phase_regvals; - u8 phase_num; - u32 mask; - u8 shift; - u8 flags; - spinlock_t *lock; +struct pstore_record { + struct pstore_info *psi; + enum pstore_type_id type; + u64 id; + struct timespec64 time; + char *buf; + ssize_t size; + ssize_t ecc_notice_size; + void *priv; + int count; + enum kmsg_dump_reason reason; + unsigned int part; + bool compressed; }; -struct hisi_phase_clock { - unsigned int id; - const char *name; - const char *parent_names; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u32 *phase_degrees; - u32 *phase_regvals; - u8 phase_num; +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 mtk_ref2usb_tx { - struct clk_hw hw; - void *base_addr; +struct internal_state { + int dummy; }; -struct meson_clk_mpll_data { - struct parm sdm; - struct parm sdm_en; - struct parm n2; - struct parm ssen; - struct parm misc; - const struct reg_sequence *init_regs; - unsigned int init_count; - spinlock_t *lock; - u8 flags; +struct kmsg_dump_iter { + u64 cur_seq; + u64 next_seq; }; -enum clk_ids___5 { - LAST_DT_CORE_CLK___5 = 51, - CLK_EXTAL___5 = 52, - CLK_EXTALR___5 = 53, - CLK_MAIN___5 = 54, - CLK_PLL0___3 = 55, - CLK_PLL1___5 = 56, - CLK_PLL2___2 = 57, - CLK_PLL3___4 = 58, - CLK_PLL4___2 = 59, - CLK_PLL1_DIV2___5 = 60, - CLK_PLL1_DIV4___3 = 61, - CLK_S0___3 = 62, - CLK_S1___3 = 63, - CLK_S2___2 = 64, - CLK_S3___3 = 65, - CLK_SDSRC___4 = 66, - CLK_SSPSRC = 67, - CLK_RPCSRC___4 = 68, - CLK_RINT___2 = 69, - MOD_CLK_BASE___5 = 70, +struct crypto_comp { + struct crypto_tfm base; }; -struct uniphier_clk_mux { - struct clk_hw hw; - struct regmap *regmap; - unsigned int reg; - const unsigned int *masks; - const unsigned int *vals; +struct rsa_mpi_key { + MPI n; + MPI e; + MPI d; + MPI p; + MPI q; + MPI dp; + MPI dq; + MPI qinv; }; -struct rcpm { - unsigned int wakeup_cells; - void *ippdexpcr_base; - bool little_endian; +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 rcar_sysc_area; - -struct rcar_sysc_info { - int (*init)(); - const struct rcar_sysc_area *areas; - unsigned int num_areas; - u32 extmask_offs; - u32 extmask_val; +struct chksum_ctx { + u32 key; }; -struct rcar_sysc_area { - const char *name; - u16 chan_offs; - u8 chan_bit; - u8 isr_bit; - s8 parent; - u8 flags; +struct chksum_desc_ctx { + u32 crc; }; -struct rzv2m_pwc_priv { - void *base; +struct badblocks { struct device *dev; - struct gpio_chip gp; - unsigned long ch_en_bits[1]; + int count; + int unacked_exist; + int shift; + u64 *page; + int changed; + seqlock_t lock; + sector_t sector; + sector_t size; }; -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; - int (*device_id_check)(struct pci_dev *); - u64 dma_mask; +struct badblocks_context { + sector_t start; + sector_t len; + int ack; }; -struct virtio_pci_vq_info; +enum bip_flags { + BIP_BLOCK_INTEGRITY = 1, + BIP_MAPPED_INTEGRITY = 2, + BIP_CTRL_NOCHECK = 4, + BIP_DISK_NOCHECK = 8, + BIP_IP_CHECKSUM = 16, +}; -struct virtio_pci_device { - struct virtio_device vdev; - struct pci_dev *pci_dev; - union { - struct virtio_pci_legacy_device ldev; - struct virtio_pci_modern_device mdev; - }; - bool is_legacy; - u8 *isr; - spinlock_t lock; - struct list_head virtqueues; - struct virtio_pci_vq_info **vqs; - 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); +enum blk_integrity_flags { + BLK_INTEGRITY_VERIFY = 1, + BLK_INTEGRITY_GENERATE = 2, + BLK_INTEGRITY_DEVICE_CAPABLE = 4, + BLK_INTEGRITY_IP_CHECKSUM = 8, }; -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; +enum { + SOCKET_URING_OP_SIOCINQ = 0, + SOCKET_URING_OP_SIOCOUTQ = 1, + SOCKET_URING_OP_GETSOCKOPT = 2, + SOCKET_URING_OP_SETSOCKOPT = 3, }; -struct virtio_pci_vq_info { - struct virtqueue *vq; - struct list_head node; - unsigned int msix_vector; +struct reciprocal_value_adv { + u32 m; + u8 sh; + u8 exp; + bool is_wide_m; }; -struct fixed_dev_type { - bool has_enable_clock; - bool has_performance_state; +enum { + CRYPTO_MSG_ALG_REQUEST = 0, + CRYPTO_MSG_ALG_REGISTER = 1, + CRYPTO_MSG_ALG_LOADED = 2, }; -struct fixed_voltage_config { - const char *supply_name; - const char *input_supply; - int microvolts; - unsigned int startup_delay; - unsigned int off_on_delay; - unsigned int enabled_at_boot: 1; - struct regulator_init_data *init_data; +struct sun6i_r_intc_variant { + u32 first_mux_irq; + u32 nr_mux_irqs; + u32 mux_valid[4]; }; -struct fixed_voltage_data { - struct regulator_desc desc; - struct regulator_dev *dev; - struct clk *enable_clock; - unsigned int enable_counter; - int performance_state; +struct mvebu_icu_subset_data { + unsigned int icu_group; + unsigned int offset_set_ah; + unsigned int offset_set_al; + unsigned int offset_clr_ah; + unsigned int offset_clr_al; }; -struct brcmstb_reset { +struct mvebu_icu { void *base; - struct reset_controller_dev rcdev; + struct device *dev; }; -struct vc_selection { - struct mutex lock; - struct vc_data *cons; - char *buffer; - unsigned int buf_len; - volatile int start; - int end; +struct mvebu_icu_msi_data { + struct mvebu_icu *icu; + atomic_t initialized; + const struct mvebu_icu_subset_data *subset_data; }; -struct of_serial_info { - struct clk *clk; - struct reset_control *rst; - int type; - int line; +struct mvebu_icu_irq_data { + struct mvebu_icu *icu; + unsigned int icu_group; + unsigned int type; }; -struct meson_rng_data { - void *base; - struct hwrng rng; +struct ls_scfg_msi_cfg { + u32 ibs_shift; + u32 msir_irqs; + u32 msir_base; }; -struct nvidia_smmu { - struct arm_smmu_device smmu; - void *bases[2]; - unsigned int num_instances; - struct tegra_mc *mc; -}; +struct ls_scfg_msir; -struct cache_type_info { - const char *size_prop; - const char *line_size_props[2]; - const char *nr_sets_prop; +struct ls_scfg_msi { + spinlock_t lock; + struct platform_device *pdev; + struct irq_domain *parent; + struct irq_domain *msi_domain; + void *regs; + phys_addr_t msiir_addr; + struct ls_scfg_msi_cfg *cfg; + u32 msir_num; + struct ls_scfg_msir *msir; + u32 irqs_num; + unsigned long *used; }; -enum pcpu_fc { - PCPU_FC_AUTO = 0, - PCPU_FC_EMBED = 1, - PCPU_FC_PAGE = 2, - PCPU_FC_NR = 3, +struct ls_scfg_msir { + struct ls_scfg_msi *msi_data; + unsigned int index; + unsigned int gic_irq; + unsigned int bit_start; + unsigned int bit_end; + unsigned int srs; + void *reg; }; -typedef int pcpu_fc_cpu_to_node_fn_t(int); - -typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); - -struct bgpio_pdata { - const char *label; - int base; - int ngpio; +struct irqsteer_data { + void *regs; + struct clk *ipg_clk; + int irq[8]; + int irq_count; + raw_spinlock_t lock; + int reg_num; + int channel; + struct irq_domain *domain; + u32 *saved_reg; }; -enum scsi_pr_type { - SCSI_PR_WRITE_EXCLUSIVE = 1, - SCSI_PR_EXCLUSIVE_ACCESS = 3, - SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5, - SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6, - SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7, - SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8, +struct phy_meson8b_usb2_match_data { + bool host_enable_aca; }; -struct scsi_sense_hdr { - u8 response_code; - u8 sense_key; - u8 asc; - u8 ascq; - u8 byte4; - u8 byte5; - u8 byte6; - u8 additional_length; +struct phy_meson8b_usb2_priv { + struct regmap *regmap; + enum usb_dr_mode dr_mode; + struct clk *clk_usb_general; + struct clk *clk_usb; + struct reset_control *reset; + const struct phy_meson8b_usb2_match_data *match; }; enum { - SAS_DEV_GONE = 0, - SAS_DEV_FOUND = 1, - SAS_DEV_DESTROY = 2, - SAS_DEV_EH_PENDING = 3, - SAS_DEV_LU_RESET = 4, - SAS_DEV_RESET = 5, + CFG_PRE_INIT = 0, + CFG_POST_INIT = 1, + CFG_PRE_PWR_HS = 2, + CFG_POST_PWR_HS = 3, + CFG_TAG_MAX = 4, }; -struct sas_expander_device { - int level; - int next_port_id; - char vendor_id[9]; - char product_id[17]; - char product_rev[5]; - char component_vendor_id[9]; - u16 component_id; - u8 component_revision_id; - struct sas_rphy rphy; +enum { + LANE_0 = 0, + LANE_1 = 1, }; -struct discover_resp { - u8 _r_a[5]; - u8 phy_id; - __be16 _r_b; - u8 _r_c: 4; - u8 attached_dev_type: 3; - u8 _r_d: 1; - u8 linkrate: 4; - u8 _r_e: 4; - u8 attached_sata_host: 1; - u8 iproto: 3; - u8 _r_f: 4; - u8 attached_sata_dev: 1; - u8 tproto: 3; - u8 _r_g: 3; - u8 attached_sata_ps: 1; - u8 sas_addr[8]; - u8 attached_sas_addr[8]; - u8 attached_phy_id; - u8 _r_h[7]; - u8 hmin_linkrate: 4; - u8 pmin_linkrate: 4; - u8 hmax_linkrate: 4; - u8 pmax_linkrate: 4; - u8 change_count; - u8 pptv: 4; - u8 _r_i: 3; - u8 virtual: 1; - u8 routing_attr: 4; - u8 _r_j: 4; - u8 conn_type; - u8 conn_el_index; - u8 conn_phy_link; - u8 _r_k[8]; +struct samsung_ufs_phy { + struct device *dev; + void *reg_pma; + struct regmap *reg_pmu; + struct clk_bulk_data *clks; + const struct samsung_ufs_phy_drvdata *drvdata; + const struct samsung_ufs_phy_cfg * const *cfgs; + struct samsung_ufs_phy_pmu_isol isol; + u8 lane_cnt; + int ufs_phy_state; + enum phy_mode mode; }; -struct smp_disc_resp { - u8 frame_type; - u8 function; - u8 result; - u8 reserved; - struct discover_resp disc; +struct pcs_conf_type { + const char *name; + enum pin_config_param param; }; -struct report_general_resp { - __be16 change_count; - __be16 route_indexes; - u8 _r_a; - u8 num_phys; - u8 conf_route_table: 1; - u8 configuring: 1; - u8 config_others: 1; - u8 orej_retry_supp: 1; - u8 stp_cont_awt: 1; - u8 self_config: 1; - u8 zone_config: 1; - u8 t2t_supp: 1; - u8 _r_c; - u8 enclosure_logical_id[8]; - u8 _r_d[12]; +struct pcs_soc_data { + unsigned int flags; + int irq; + unsigned int irq_enable_mask; + unsigned int irq_status_mask; + void (*rearm)(); }; -struct smp_rg_resp { - u8 frame_type; - u8 function; - u8 result; - u8 reserved; - struct report_general_resp rg; +struct pcs_gpiofunc_range { + unsigned int offset; + unsigned int npins; + unsigned int gpiofunc; + struct list_head node; }; -struct mtd_concat { - struct mtd_info mtd; - int num_subdev; - struct mtd_info **subdev; +struct pcs_data { + struct pinctrl_pin_desc *pa; + int cur; }; -struct mdio_driver { - struct mdio_driver_common mdiodrv; - int (*probe)(struct mdio_device *); - void (*remove)(struct mdio_device *); - void (*shutdown)(struct mdio_device *); +struct pcs_device { + struct resource *res; + void *base; + void *saved_vals; + unsigned int size; + struct device *dev; + struct device_node *np; + struct pinctrl_dev *pctl; + unsigned int flags; + struct property *missing_nr_pinctrl_cells; + struct pcs_soc_data socdata; + raw_spinlock_t lock; + struct mutex mutex; + unsigned int width; + unsigned int fmask; + unsigned int fshift; + unsigned int foff; + unsigned int fmax; + bool bits_per_mux; + unsigned int bits_per_pin; + struct pcs_data pins; + struct list_head gpiofuncs; + struct list_head irqs; + struct irq_chip chip; + struct irq_domain *domain; + struct pinctrl_desc desc; + unsigned int (*read)(void *); + void (*write)(unsigned int, void *); }; -struct mdio_mux_child_bus; - -struct mdio_mux_parent_bus { - struct mii_bus *mii_bus; - int current_child; - int parent_id; - void *switch_data; - int (*switch_fn)(int, int, void *); - struct mdio_mux_child_bus *children; +struct pcs_interrupt { + void *reg; + irq_hw_number_t hwirq; + unsigned int irq; + struct list_head node; }; -struct mdio_mux_child_bus { - struct mii_bus *mii_bus; - struct mdio_mux_parent_bus *parent; - struct mdio_mux_child_bus *next; - int bus_number; +struct pcs_func_vals { + void *reg; + unsigned int val; + unsigned int mask; }; -enum xgene_enet_err_code { - HBF_READ_DATA = 3, - HBF_LL_READ = 4, - BAD_WORK_MSG = 6, - BUFPOOL_TIMEOUT = 15, - INGRESS_CRC = 16, - INGRESS_CHECKSUM = 17, - INGRESS_TRUNC_FRAME = 18, - INGRESS_PKT_LEN = 19, - INGRESS_PKT_UNDER = 20, - INGRESS_FIFO_OVERRUN = 21, - INGRESS_CHECKSUM_COMPUTE = 26, - ERR_CODE_INVALID = 27, -}; +struct pcs_conf_vals; -enum xgene_enet_buf_len { - SIZE_2K = 2048, - SIZE_4K = 4096, - SIZE_16K = 16384, +struct pcs_function { + const char *name; + struct pcs_func_vals *vals; + unsigned int nvals; + const char **pgnames; + int npgnames; + struct pcs_conf_vals *conf; + int nconfs; + struct list_head node; }; -enum mdio_c22_op_seq { - MDIO_C22_WRITE = 1, - MDIO_C22_READ = 2, +struct pcs_conf_vals { + enum pin_config_param param; + unsigned int val; + unsigned int enable; + unsigned int disable; + unsigned int mask; }; -enum mdio_st_clause { - MDIO_ST_CLAUSE_45 = 0, - MDIO_ST_CLAUSE_22 = 1, +struct pcs_pdata { + int irq; + void (*rearm)(); }; -enum mdio_c45_op_seq { - MDIO_C45_WRITE_ADDR = 0, - MDIO_C45_WRITE_DATA = 1, - MDIO_C45_READ_INCREMENT = 2, - MDIO_C45_READ = 3, +struct mtk_drive_desc { + u8 min; + u8 max; + u8 step; + u8 scal; }; -struct hns_mdio_sc_reg { - u16 mdio_clk_en; - u16 mdio_clk_dis; - u16 mdio_reset_req; - u16 mdio_reset_dreq; - u16 mdio_clk_st; - u16 mdio_reset_st; +struct mtk_pin_field { + u8 index; + u32 offset; + u32 mask; + u8 bitpos; + u8 next; }; -struct hns_mdio_device { - u8 *vbase; - struct regmap *subctrl_vbase; - struct hns_mdio_sc_reg sc_reg; +struct gpio_array { + struct gpio_desc **desc; + unsigned int size; + struct gpio_chip *chip; + unsigned long *get_mask; + unsigned long *set_mask; + unsigned long invert_mask[0]; }; -struct e1000_stats { - char stat_string[32]; - int type; - int sizeof_stat; - int stat_offset; -}; +struct pwm_device; -enum e1000_state_t___3 { - __E1000_TESTING___2 = 0, - __E1000_RESETTING___2 = 1, - __E1000_DOWN___2 = 2, - __E1000_DISABLED = 3, +struct pwm_state; + +typedef void (*btf_trace_pwm_apply)(void *, struct pwm_device *, const struct pwm_state *, int); + +enum pwm_polarity { + PWM_POLARITY_NORMAL = 0, + PWM_POLARITY_INVERSED = 1, }; -enum { - NETDEV_STATS = 0, - E1000_STATS = 1, +struct pwm_args { + u64 period; + enum pwm_polarity polarity; }; -struct e1000_rx_desc { - __le64 buffer_addr; - __le16 length; - __le16 csum; - u8 status; - u8 errors; - __le16 special; +struct pwm_state { + u64 period; + u64 duty_cycle; + enum pwm_polarity polarity; + bool enabled; + bool usage_power; }; -struct smsc911x_data; +struct pwm_chip; -struct smsc911x_ops { - u32 (*reg_read)(struct smsc911x_data *, u32); - void (*reg_write)(struct smsc911x_data *, u32, u32); - void (*rx_readfifo)(struct smsc911x_data *, unsigned int *, unsigned int); - void (*tx_writefifo)(struct smsc911x_data *, unsigned int *, unsigned int); +struct pwm_device { + const char *label; + unsigned long flags; + unsigned int hwpwm; + unsigned int pwm; + struct pwm_chip *chip; + struct pwm_args args; + struct pwm_state state; + struct pwm_state last; }; -struct smsc911x_platform_config { - unsigned int irq_polarity; - unsigned int irq_type; - unsigned int flags; - unsigned int shift; - phy_interface_t phy_interface; - unsigned char mac[6]; -}; +struct pwm_ops; -struct smsc911x_data { - void *ioaddr; - unsigned int idrev; - unsigned int generation; - struct smsc911x_platform_config config; - spinlock_t mac_lock; - spinlock_t dev_lock; - struct mii_bus *mii_bus; - unsigned int using_extphy; - int last_duplex; - int last_carrier; - u32 msg_enable; - unsigned int gpio_setting; - unsigned int gpio_orig_setting; - struct net_device *dev; - struct napi_struct napi; - unsigned int software_irq_signal; - char loopback_tx_pkt[64]; - char loopback_rx_pkt[64]; - unsigned int resetcount; - unsigned int multicast_update_pending; - unsigned int set_bits_mask; - unsigned int clear_bits_mask; - unsigned int hashhi; - unsigned int hashlo; - const struct smsc911x_ops *ops; - struct regulator_bulk_data supplies[2]; - struct gpio_desc *reset_gpiod; - struct clk *clk; +struct pwm_chip { + struct device *dev; + const struct pwm_ops *ops; + struct module *owner; + 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; }; -enum snoop_when { - SUBMIT = 0, - COMPLETE = 1, +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 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 pwm_capture { + unsigned int period; + unsigned int duty_cycle; }; -struct usb_memory; +typedef void (*btf_trace_pwm_get)(void *, struct pwm_device *, const struct pwm_state *, int); -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; +enum { + PWMF_REQUESTED = 0, + PWMF_EXPORTED = 1, }; -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 pwm_lookup { + struct list_head list; + const char *provider; + unsigned int index; + const char *dev_id; + const char *con_id; + unsigned int period; + enum pwm_polarity polarity; + const char *module; }; -struct usbdevfs_iso_packet_desc { - unsigned int length; - unsigned int actual_length; - unsigned int status; +struct trace_event_raw_pwm { + struct trace_entry ent; + struct pwm_device *pwm; + u64 period; + u64 duty_cycle; + enum pwm_polarity polarity; + bool enabled; + int err; + char __data[0]; }; -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 trace_event_data_offsets_pwm {}; + +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 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]; +enum { + RCAR_PCI_ACCESS_READ = 0, + RCAR_PCI_ACCESS_WRITE = 1, }; -struct usbdevfs_setinterface { - unsigned int interface; - unsigned int altsetting; +struct rcar_pcie { + struct device *dev; + void *base; }; -struct usbdevfs_bulktransfer32 { - compat_uint_t ep; - compat_uint_t len; - compat_uint_t timeout; - compat_caddr_t data; +struct rcar_msi { + unsigned long used[1]; + struct irq_domain *domain; + struct mutex map_lock; + spinlock_t mask_lock; + int irq1; + int irq2; }; -struct usbdevfs_bulktransfer { - unsigned int ep; - unsigned int len; - unsigned int timeout; - void __attribute__((btf_type_tag("user"))) *data; +struct rcar_pcie_host { + struct rcar_pcie pcie; + struct phy *phy; + struct clk *bus_clk; + struct rcar_msi msi; + int (*phy_init_fn)(struct rcar_pcie_host *); }; -struct usbdevfs_getdriver { - unsigned int interface; - char driver[256]; +struct al_pcie_acpi { + void *dbi_base; }; -struct usbdevfs_disconnect_claim { - unsigned int interface; - unsigned int flags; - char driver[256]; +struct display_timing; + +struct display_timings { + unsigned int num_timings; + unsigned int native_mode; + struct display_timing **timings; }; -struct usbdevfs_disconnectsignal32 { - compat_int_t signr; - compat_caddr_t context; +struct timing_entry { + u32 min; + u32 typ; + u32 max; }; -struct usbdevfs_ctrltransfer32 { - u8 bRequestType; - u8 bRequest; - u16 wValue; - u16 wIndex; - u16 wLength; - u32 timeout; - compat_caddr_t data; +struct display_timing { + struct timing_entry pixelclock; + struct timing_entry hactive; + struct timing_entry hfront_porch; + struct timing_entry hback_porch; + struct timing_entry hsync_len; + struct timing_entry vactive; + struct timing_entry vfront_porch; + struct timing_entry vback_porch; + struct timing_entry vsync_len; + enum display_flags flags; }; -struct usbdevfs_ctrltransfer { - __u8 bRequestType; - __u8 bRequest; - __u16 wValue; - __u16 wIndex; - __u16 wLength; - __u32 timeout; - void __attribute__((btf_type_tag("user"))) *data; +typedef u32 (*acpi_osd_handler)(void *); + +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 usbdevfs_disconnectsignal { - unsigned int signr; - void __attribute__((btf_type_tag("user"))) *context; +typedef void (*acpi_osd_exec_callback)(void *); + +struct acpi_os_dpc { + acpi_osd_exec_callback function; + void *context; + struct work_struct work; }; -struct usbdevfs_ioctl32 { - s32 ifno; - s32 ioctl_code; - compat_caddr_t data; +struct acpi_hp_work { + struct work_struct work; + struct acpi_device *adev; + u32 src; }; -struct usbdevfs_ioctl { - int ifno; - int ioctl_code; - void __attribute__((btf_type_tag("user"))) *data; +struct acpi_predefined_names { + const char *name; + u8 type; + char *val; }; -struct usbdevfs_connectinfo { - unsigned int devnum; - unsigned char slow; +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; + +struct acpi_hardware_id { + struct list_head list; + const char *id; }; -struct usbdevfs_conninfo_ex { - __u32 size; - __u32 busnum; - __u32 devnum; - __u32 speed; - __u8 num_ports; - __u8 ports[7]; +struct acpi_data_node { + const char *name; + acpi_handle handle; + struct fwnode_handle fwnode; + struct fwnode_handle *parent; + struct acpi_device_data data; + struct list_head sibling; + struct kobject kobj; + struct completion kobj_done; }; -struct usbdevfs_streams { - unsigned int num_streams; - unsigned int num_eps; - unsigned char eps[0]; +struct acpi_device_properties { + const guid_t *guid; + union acpi_object *properties; + struct list_head list; + void **bufs; }; -typedef void (*btf_trace_mtu3_log)(void *, struct device *, struct va_format *); +typedef acpi_status (*acpi_repair_function)(struct acpi_evaluate_info *, union acpi_operand_object **); -typedef void (*btf_trace_mtu3_u3_ltssm_isr)(void *, u32); - -typedef void (*btf_trace_mtu3_u2_common_isr)(void *, u32); - -typedef void (*btf_trace_mtu3_qmu_isr)(void *, u32, u32); - -typedef void (*btf_trace_mtu3_handle_setup)(void *, struct usb_ctrlrequest *); - -typedef void (*btf_trace_mtu3_alloc_request)(void *, struct mtu3_request *); - -typedef void (*btf_trace_mtu3_free_request)(void *, struct mtu3_request *); - -typedef void (*btf_trace_mtu3_gadget_queue)(void *, struct mtu3_request *); - -typedef void (*btf_trace_mtu3_gadget_dequeue)(void *, struct mtu3_request *); - -typedef void (*btf_trace_mtu3_req_complete)(void *, struct mtu3_request *); - -typedef void (*btf_trace_mtu3_prepare_gpd)(void *, struct mtu3_ep *, struct qmu_gpd *); - -typedef void (*btf_trace_mtu3_complete_gpd)(void *, struct mtu3_ep *, struct qmu_gpd *); - -typedef void (*btf_trace_mtu3_zlp_exp_gpd)(void *, struct mtu3_ep *, struct qmu_gpd *); - -typedef void (*btf_trace_mtu3_gadget_ep_enable)(void *, struct mtu3_ep *); - -typedef void (*btf_trace_mtu3_gadget_ep_disable)(void *, struct mtu3_ep *); - -typedef void (*btf_trace_mtu3_gadget_ep_set_halt)(void *, struct mtu3_ep *); - -struct trace_event_raw_mtu3_log { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_msg; - char __data[0]; +struct acpi_repair_info { + char name[4]; + acpi_repair_function repair_function; }; -struct trace_event_raw_mtu3_u3_ltssm_isr { - struct trace_entry ent; - u32 intr; - char __data[0]; +struct acpi_rsconvert_info { + u8 opcode; + u8 resource_offset; + u8 aml_offset; + u8 value; }; -struct trace_event_raw_mtu3_u2_common_isr { - struct trace_entry ent; - u32 intr; - char __data[0]; +struct aml_resource_small_header { + u8 descriptor_type; }; -struct trace_event_raw_mtu3_qmu_isr { - struct trace_entry ent; - u32 done_intr; - u32 exp_intr; - char __data[0]; -}; +struct aml_resource_large_header { + u8 descriptor_type; + u16 resource_length; +} __attribute__((packed)); -struct trace_event_raw_mtu3_log_setup { - struct trace_entry ent; - __u8 bRequestType; - __u8 bRequest; - __u16 wValue; - __u16 wIndex; - __u16 wLength; - char __data[0]; -}; +struct aml_resource_irq { + u8 descriptor_type; + u16 irq_mask; + u8 flags; +} __attribute__((packed)); -struct trace_event_raw_mtu3_log_request { - struct trace_entry ent; - u32 __data_loc_name; - struct mtu3_request *mreq; - struct qmu_gpd *gpd; - unsigned int actual; - unsigned int length; - int status; - int zero; - int no_interrupt; - char __data[0]; +struct aml_resource_dma { + u8 descriptor_type; + u8 dma_channel_mask; + u8 flags; }; -struct trace_event_raw_mtu3_log_gpd { - struct trace_entry ent; - u32 __data_loc_name; - struct qmu_gpd *gpd; - u32 dw0; - u32 dw1; - u32 dw2; - u32 dw3; - char __data[0]; +struct aml_resource_start_dependent { + u8 descriptor_type; + u8 flags; }; -struct trace_event_raw_mtu3_log_ep { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int type; - unsigned int slot; - unsigned int maxp; - unsigned int mult; - unsigned int maxburst; - unsigned int flags; - unsigned int direction; - struct mtu3_gpd_ring *gpd_ring; - char __data[0]; +struct aml_resource_end_dependent { + u8 descriptor_type; }; -struct trace_event_data_offsets_mtu3_log { - u32 name; - u32 msg; +struct aml_resource_io { + u8 descriptor_type; + u8 flags; + u16 minimum; + u16 maximum; + u8 alignment; + u8 address_length; }; -struct trace_event_data_offsets_mtu3_log_request { - u32 name; -}; +struct aml_resource_fixed_io { + u8 descriptor_type; + u16 address; + u8 address_length; +} __attribute__((packed)); -struct trace_event_data_offsets_mtu3_log_gpd { - u32 name; -}; +struct aml_resource_fixed_dma { + u8 descriptor_type; + u16 request_lines; + u16 channels; + u8 width; +} __attribute__((packed)); -struct trace_event_data_offsets_mtu3_log_ep { - u32 name; +struct aml_resource_vendor_small { + u8 descriptor_type; }; -struct trace_event_data_offsets_mtu3_u3_ltssm_isr {}; +struct aml_resource_end_tag { + u8 descriptor_type; + u8 checksum; +}; -struct trace_event_data_offsets_mtu3_u2_common_isr {}; +struct aml_resource_memory24 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u16 minimum; + u16 maximum; + u16 alignment; + u16 address_length; +} __attribute__((packed)); -struct trace_event_data_offsets_mtu3_qmu_isr {}; +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 trace_event_data_offsets_mtu3_log_setup {}; +struct aml_resource_vendor_large { + u8 descriptor_type; + u16 resource_length; +} __attribute__((packed)); -struct brcmstb_usb_pinmap_data; +struct aml_resource_memory32 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u32 minimum; + u32 maximum; + u32 alignment; + u32 address_length; +} __attribute__((packed)); -struct in_pin { - u32 enable_mask; - u32 value_mask; - struct gpio_desc *gpiod; - const char *name; - struct brcmstb_usb_pinmap_data *pdata; -}; +struct aml_resource_fixed_memory32 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u32 address; + u32 address_length; +} __attribute__((packed)); -struct out_pin; +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 brcmstb_usb_pinmap_data { - void *regs; - int in_count; - struct in_pin *in_pins; - int out_count; - struct out_pin *out_pins; -}; +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 out_pin { - u32 enable_mask; - u32 value_mask; - u32 changed_mask; - u32 clr_changed_mask; - struct gpio_desc *gpiod; - const char *name; -}; +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 ci_hdrc_imx_platform_flag { - unsigned int flags; -}; +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 imx_usbmisc_data { - struct device *dev; - int index; - unsigned int disable_oc: 1; - unsigned int oc_pol_active_low: 1; - unsigned int oc_pol_configured: 1; - unsigned int pwr_pol: 1; - unsigned int evdo: 1; - unsigned int ulpi: 1; - unsigned int hsic: 1; - unsigned int ext_id: 1; - unsigned int ext_vbus: 1; - struct usb_phy *usb_phy; - enum usb_dr_mode available_role; - int emp_curr_control; - int dc_vol_level_adjust; -}; +struct aml_resource_extended_irq { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u8 interrupt_count; + union { + u32 interrupt; + struct { + struct {} __Empty_interrupts; + u32 interrupts[0]; + }; + }; +} __attribute__((packed)); -struct ci_hdrc_imx_data { - struct usb_phy *phy; - struct platform_device *ci_pdev; - struct clk *clk; - struct imx_usbmisc_data *usbmisc_data; - bool supports_runtime_pm; - bool override_phy_control; - bool in_lpm; - struct pinctrl *pinctrl; - struct pinctrl_state *pinctrl_hsic_active; - struct regulator *hsic_pad_regulator; - bool need_three_clks; - struct clk *clk_ipg; - struct clk *clk_ahb; - struct clk *clk_per; - struct pm_qos_request pm_qos_req; - const struct ci_hdrc_imx_platform_flag *plat_data; -}; +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 i2c_dw_semaphore_callbacks { - int (*probe)(struct dw_i2c_dev *); - void (*remove)(struct dw_i2c_dev *); -}; +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 mode_info { - const char *mode; - u32 magic; - struct list_head list; -}; +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 reboot_mode_driver { - struct device *dev; - struct list_head head; - int (*write)(struct reboot_mode_driver *, unsigned int); - struct notifier_block reboot_notifier; -}; +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 armada_thermal_priv; +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 armada_thermal_data { - void (*init)(struct platform_device *, struct armada_thermal_priv *); - s64 coef_b; - s64 coef_m; - u32 coef_div; - bool inverted; - bool signed_sample; - unsigned int temp_shift; - unsigned int temp_mask; - unsigned int thresh_shift; - unsigned int hyst_shift; - unsigned int hyst_mask; - u32 is_valid_bit; - unsigned int syscon_control0_off; - unsigned int syscon_control1_off; - unsigned int syscon_status_off; - unsigned int dfx_irq_cause_off; - unsigned int dfx_irq_mask_off; - unsigned int dfx_overheat_irq; - unsigned int dfx_server_irq_mask_off; - unsigned int dfx_server_irq_en; - unsigned int cpu_nr; -}; +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 armada_thermal_priv { - struct device *dev; - struct regmap *syscon; - char zone_name[20]; - struct mutex update_lock; - struct armada_thermal_data *data; - struct thermal_zone_device *overheat_sensor; - int interrupt_source; - int current_channel; - long current_threshold; - long current_hysteresis; -}; +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)); -enum drvtype { - LEGACY = 0, - SYSCON = 1, -}; +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 armada_drvdata { - enum drvtype type; - union { - struct armada_thermal_priv *priv; - struct thermal_zone_device *tz; - } data; -}; +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 armada_thermal_sensor { - struct armada_thermal_priv *priv; - int id; -}; +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 edac_pci_dev_attribute { - struct attribute attr; - void *value; - ssize_t (*show)(void *, char *); - ssize_t (*store)(void *, const char *, size_t); -}; +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 instance_attribute { - struct attribute attr; - ssize_t (*show)(struct edac_pci_ctl_info *, char *); - ssize_t (*store)(struct edac_pci_ctl_info *, const char *, size_t); -}; +struct aml_resource_clock_input { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 frequency_divisor; + u32 frequency_numerator; +} __attribute__((packed)); -typedef void (*pci_parity_check_fn_t)(struct pci_dev *); +struct aml_resource_address { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; +} __attribute__((packed)); -struct mmc_clk_phase { - bool valid; - u16 in_deg; - u16 out_deg; +union aml_resource { + u8 descriptor_type; + struct aml_resource_small_header small_header; + struct aml_resource_large_header large_header; + struct aml_resource_irq irq; + struct aml_resource_dma dma; + struct aml_resource_start_dependent start_dpf; + struct aml_resource_end_dependent end_dpf; + struct aml_resource_io io; + struct aml_resource_fixed_io fixed_io; + struct aml_resource_fixed_dma fixed_dma; + struct aml_resource_vendor_small vendor_small; + struct aml_resource_end_tag end_tag; + struct aml_resource_memory24 memory24; + struct aml_resource_generic_register generic_reg; + struct aml_resource_vendor_large vendor_large; + struct aml_resource_memory32 memory32; + struct aml_resource_fixed_memory32 fixed_memory32; + struct aml_resource_address16 address16; + struct aml_resource_address32 address32; + struct aml_resource_address64 address64; + struct aml_resource_extended_address64 ext_address64; + struct aml_resource_extended_irq extended_irq; + struct aml_resource_gpio gpio; + struct aml_resource_i2c_serialbus i2c_serial_bus; + struct aml_resource_spi_serialbus spi_serial_bus; + struct aml_resource_uart_serialbus uart_serial_bus; + struct aml_resource_csi2_serialbus csi2_serial_bus; + struct aml_resource_common_serialbus common_serial_bus; + struct aml_resource_pin_function pin_function; + struct aml_resource_pin_config pin_config; + struct aml_resource_pin_group pin_group; + struct aml_resource_pin_group_function pin_group_function; + struct aml_resource_pin_group_config pin_group_config; + struct aml_resource_clock_input clock_input; + struct aml_resource_address address; + u32 dword_item; + u16 word_item; + u8 byte_item; }; -struct mmc_clk_phase_map { - struct mmc_clk_phase phase[11]; +struct acpi_fan_fif { + u8 revision; + u8 fine_grain_ctrl; + u8 step_size; + u8 low_speed_notification; }; -enum { - FAST_MODE = 1, - SLOW_MODE = 2, - FASTAUTO_MODE = 4, - SLOWAUTO_MODE = 5, - UNCHANGED = 7, -}; +struct acpi_fan_fps; -enum ufs_pwm_gear_tag { - UFS_PWM_DONT_CHANGE = 0, - UFS_PWM_G1 = 1, - UFS_PWM_G2 = 2, - UFS_PWM_G3 = 3, - UFS_PWM_G4 = 4, - UFS_PWM_G5 = 5, - UFS_PWM_G6 = 6, - UFS_PWM_G7 = 7, +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; }; -enum ufs_hs_gear_tag { - UFS_HS_DONT_CHANGE = 0, - UFS_HS_G1 = 1, - UFS_HS_G2 = 2, - UFS_HS_G3 = 3, - UFS_HS_G4 = 4, - UFS_HS_G5 = 5, +struct acpi_fan_fps { + u64 control; + u64 trip_point; + u64 speed; + u64 noise_level; + u64 power; + char name[20]; + struct device_attribute dev_attr; }; -enum { - PA_HS_MODE_A = 1, - PA_HS_MODE_B = 2, +struct acpi_fan_fst { + u64 revision; + u64 control; + u64 speed; }; -struct ufs_clk_info { - struct list_head list; - struct clk *clk; - const char *name; - u32 max_freq; - u32 min_freq; - u32 curr_freq; - bool keep_link_active; - bool enabled; +enum vc5_model { + IDT_VC5_5P49V5923 = 0, + IDT_VC5_5P49V5925 = 1, + IDT_VC5_5P49V5933 = 2, + IDT_VC5_5P49V5935 = 3, + IDT_VC6_5P49V60 = 4, + IDT_VC6_5P49V6901 = 5, + IDT_VC6_5P49V6965 = 6, + IDT_VC6_5P49V6975 = 7, }; -struct ufs_dev_params { - u32 pwm_rx_gear; - u32 pwm_tx_gear; - u32 hs_rx_gear; - u32 hs_tx_gear; - u32 rx_lanes; - u32 tx_lanes; - u32 rx_pwr_pwm; - u32 tx_pwr_pwm; - u32 rx_pwr_hs; - u32 tx_pwr_hs; - u32 hs_rate; - u32 desired_working_mode; +struct vc5_chip_info { + const enum vc5_model model; + const unsigned int clk_fod_cnt; + const unsigned int clk_out_cnt; + const u32 flags; + const unsigned long vco_max; }; -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 vc5_driver_data; -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 vc5_hw_data { + struct clk_hw hw; + struct vc5_driver_data *vc5; + u32 div_int; + u32 div_frc; + unsigned int num; }; -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 vc5_out_data { + struct clk_hw hw; + struct vc5_driver_data *vc5; + unsigned int num; + unsigned int clk_output_cfg0; + unsigned int clk_output_cfg0_mask; }; -struct imx_sc_msg_irq_enable { - struct imx_sc_rpc_msg hdr; - u32 mask; - u16 resource; - u8 group; - u8 enable; +struct vc5_driver_data { + struct i2c_client *client; + struct regmap *regmap; + const struct vc5_chip_info *chip_info; + struct clk *pin_xin; + struct clk *pin_clkin; + unsigned char clk_mux_ins; + struct clk_hw clk_mux; + struct clk_hw clk_mul; + struct clk_hw clk_pfd; + struct vc5_hw_data clk_pll; + struct vc5_hw_data clk_fod[4]; + struct vc5_out_data clk_out[5]; }; -struct imx_sc_msg_irq_get_status { - struct imx_sc_rpc_msg hdr; - union { - struct { - u16 resource; - u8 group; - u8 reserved; - } req; - struct { - u32 status; - } resp; - } data; +struct clk_fracn_gppll { + struct clk_hw hw; + void *base; + const struct imx_fracn_gppll_rate_table *rate_table; + int rate_count; + u32 flags; }; -struct imx_bus { - struct devfreq_dev_profile profile; - struct devfreq *devfreq; - struct clk *clk; - struct platform_device *icc_pdev; +struct clk_divider_gate { + struct clk_divider divider; + u32 cached_val; }; -struct hisi_pa_pmu_int_regs { - u32 mask_offset; - u32 clear_offset; - u32 status_offset; +struct clk_gate2 { + struct clk_hw hw; + void *reg; + u8 bit_idx; + u8 cgr_val; + u8 cgr_mask; + u8 flags; + spinlock_t *lock; + unsigned int *share_count; }; -struct qcom_icc_provider { - struct icc_provider provider; - struct device *dev; - struct qcom_icc_bcm * const *bcms; - size_t num_bcms; - struct bcm_voter *voter; +struct fhctl_offset { + u32 offset_hp_en; + u32 offset_clk_con; + u32 offset_rst_con; + u32 offset_slope0; + u32 offset_slope1; + u32 offset_cfg; + u32 offset_updnlmt; + u32 offset_dds; + u32 offset_dvfs; + u32 offset_mon; }; -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 *); -}; +struct mtk_fh; -enum snd_device_state { - SNDRV_DEV_BUILD = 0, - SNDRV_DEV_REGISTERED = 1, - SNDRV_DEV_DISCONNECTED = 2, +struct fh_operation { + int (*hopping)(struct mtk_fh *, unsigned int, unsigned int); + int (*ssc_enable)(struct mtk_fh *, u32); }; -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 mtk_clk_pll { + struct clk_hw hw; + void *base_addr; + void *pd_addr; + void *pwr_addr; + void *tuner_addr; + void *tuner_en_addr; + void *pcw_addr; + void *pcw_chg_addr; + void *en_addr; + const struct mtk_pll_data *data; }; -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 fh_pll_regs { + void *reg_hp_en; + void *reg_clk_con; + void *reg_rst_con; + void *reg_slope0; + void *reg_slope1; + void *reg_cfg; + void *reg_updnlmt; + void *reg_dds; + void *reg_dvfs; + void *reg_mon; }; -struct snd_compr_avail { - __u64 avail; - struct snd_compr_tstamp tstamp; -} __attribute__((packed)); +struct mtk_pllfh_data; -struct snd_compr_file { - unsigned long caps; - struct snd_compr_stream stream; +struct mtk_fh { + struct mtk_clk_pll clk_pll; + struct fh_pll_regs regs; + struct mtk_pllfh_data *pllfh_data; + const struct fh_operation *ops; + spinlock_t *lock; }; -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 fh_pll_state { + void *base; + u32 fh_enable; + u32 ssc_rate; }; -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, +struct fh_pll_data { + int pll_id; + int fh_id; + int fh_ver; + u32 fhx_offset; + u32 dds_mask; + u32 slope0_value; + u32 slope1_value; + u32 sfstrx_en; + u32 frddsx_en; + u32 fhctlx_en; + u32 tgl_org; + u32 dvfs_tri; + u32 pcwchg; + u32 dt_val; + u32 df_val; + u32 updnlmt_shft; + u32 msk_frddsx_dys; + u32 msk_frddsx_dts; }; -enum { - LWT_BPF_PROG_UNSPEC = 0, - LWT_BPF_PROG_FD = 1, - LWT_BPF_PROG_NAME = 2, - __LWT_BPF_PROG_MAX = 3, +struct mtk_pllfh_data { + struct fh_pll_state state; + const struct fh_pll_data data; }; -enum bpf_ret_code { - BPF_OK = 0, - BPF_DROP = 2, - BPF_REDIRECT = 7, - BPF_LWT_REROUTE = 128, - BPF_FLOW_DISSECTOR_CONTINUE = 129, +enum fhctl_variant { + FHCTL_PLLFH_V1 = 0, + FHCTL_PLLFH_V2 = 1, }; -enum { - LWTUNNEL_XMIT_DONE = 0, - LWTUNNEL_XMIT_CONTINUE = 1, +struct meson_aoclk_data { + const unsigned int reset_reg; + const int num_reset; + const unsigned int *reset; + const int num_clks; + struct clk_regmap___2 **clks; + struct meson_clk_hw_data hw_clks; }; -struct bpf_skb_data_end { - struct qdisc_skb_cb qdisc_cb; - void *data_meta; - void *data_end; +struct meson_clk_dualdiv_param { + unsigned int n1; + unsigned int n2; + unsigned int m1; + unsigned int m2; + unsigned int dual; }; -struct gre_base_hdr { - __be16 flags; - __be16 protocol; +enum clk_ids___3 { + LAST_DT_CORE_CLK___3 = 30, + CLK_EXTAL___3 = 31, + CLK_EXTALR___3 = 32, + CLK_MAIN___3 = 33, + CLK_PLL0___2 = 34, + CLK_PLL1___3 = 35, + CLK_PLL3___2 = 36, + CLK_PLL1_DIV2___3 = 37, + CLK_PLL1_DIV4___2 = 38, + MOD_CLK_BASE___3 = 39, }; -struct bpf_lwt_prog { - struct bpf_prog *prog; - char *name; +enum r8a77970_clk_types { + CLK_TYPE_R8A77970_SD0H = 23, + CLK_TYPE_R8A77970_SD0 = 24, }; -struct bpf_lwt { - struct bpf_lwt_prog in; - struct bpf_lwt_prog out; - struct bpf_lwt_prog xmit; - int family; +struct tegra_sync_source_initdata { + char *name; + unsigned long rate; + unsigned long max_rate; + int clk_id; }; -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 tegra_audio_clk_initdata { + char *gate_name; + char *mux_name; + u32 offset; + int gate_clk_id; + int mux_clk_id; }; -struct coalesce_reply_data { - struct ethnl_reply_data base; - struct ethtool_coalesce coalesce; - struct kernel_ethtool_coalesce kernel_coalesce; - u32 supported_params; +struct tegra_audio2x_clk_initdata { + char *parent; + char *gate_name; + char *name_2x; + char *div_name; + int clk_id; + int clk_num; + u8 div_offset; }; -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 clk_id { + tegra_clk_actmon = 0, + tegra_clk_adx = 1, + tegra_clk_adx1 = 2, + tegra_clk_afi = 3, + tegra_clk_amx = 4, + tegra_clk_amx1 = 5, + tegra_clk_apb2ape = 6, + tegra_clk_ahbdma = 7, + tegra_clk_apbdma = 8, + tegra_clk_apbif = 9, + tegra_clk_ape = 10, + tegra_clk_audio0 = 11, + tegra_clk_audio0_2x = 12, + tegra_clk_audio0_mux = 13, + tegra_clk_audio1 = 14, + tegra_clk_audio1_2x = 15, + tegra_clk_audio1_mux = 16, + tegra_clk_audio2 = 17, + tegra_clk_audio2_2x = 18, + tegra_clk_audio2_mux = 19, + tegra_clk_audio3 = 20, + tegra_clk_audio3_2x = 21, + tegra_clk_audio3_mux = 22, + tegra_clk_audio4 = 23, + tegra_clk_audio4_2x = 24, + tegra_clk_audio4_mux = 25, + tegra_clk_bsea = 26, + tegra_clk_bsev = 27, + tegra_clk_cclk_g = 28, + tegra_clk_cclk_lp = 29, + tegra_clk_cilab = 30, + tegra_clk_cilcd = 31, + tegra_clk_cile = 32, + tegra_clk_clk_32k = 33, + tegra_clk_clk72Mhz = 34, + tegra_clk_clk72Mhz_8 = 35, + tegra_clk_clk_m = 36, + tegra_clk_osc = 37, + tegra_clk_osc_div2 = 38, + tegra_clk_osc_div4 = 39, + tegra_clk_cml0 = 40, + tegra_clk_cml1 = 41, + tegra_clk_csi = 42, + tegra_clk_csite = 43, + tegra_clk_csite_8 = 44, + tegra_clk_csus = 45, + tegra_clk_cve = 46, + tegra_clk_dam0 = 47, + tegra_clk_dam1 = 48, + tegra_clk_dam2 = 49, + tegra_clk_d_audio = 50, + tegra_clk_dbgapb = 51, + tegra_clk_dds = 52, + tegra_clk_dfll_ref = 53, + tegra_clk_dfll_soc = 54, + tegra_clk_disp1 = 55, + tegra_clk_disp1_8 = 56, + tegra_clk_disp2 = 57, + tegra_clk_disp2_8 = 58, + tegra_clk_dp2 = 59, + tegra_clk_dpaux = 60, + tegra_clk_dpaux1 = 61, + tegra_clk_dsialp = 62, + tegra_clk_dsia_mux = 63, + tegra_clk_dsiblp = 64, + tegra_clk_dsib_mux = 65, + tegra_clk_dtv = 66, + tegra_clk_emc = 67, + tegra_clk_entropy = 68, + tegra_clk_entropy_8 = 69, + tegra_clk_epp = 70, + tegra_clk_epp_8 = 71, + tegra_clk_extern1 = 72, + tegra_clk_extern2 = 73, + tegra_clk_extern3 = 74, + tegra_clk_fuse = 75, + tegra_clk_fuse_burn = 76, + tegra_clk_gpu = 77, + tegra_clk_gr2d = 78, + tegra_clk_gr2d_8 = 79, + tegra_clk_gr3d = 80, + tegra_clk_gr3d_8 = 81, + tegra_clk_hclk = 82, + tegra_clk_hda = 83, + tegra_clk_hda_8 = 84, + tegra_clk_hda2codec_2x = 85, + tegra_clk_hda2codec_2x_8 = 86, + tegra_clk_hda2hdmi = 87, + tegra_clk_hdmi = 88, + tegra_clk_hdmi_audio = 89, + tegra_clk_host1x = 90, + tegra_clk_host1x_8 = 91, + tegra_clk_host1x_9 = 92, + tegra_clk_hsic_trk = 93, + tegra_clk_i2c1 = 94, + tegra_clk_i2c2 = 95, + tegra_clk_i2c3 = 96, + tegra_clk_i2c4 = 97, + tegra_clk_i2c5 = 98, + tegra_clk_i2c6 = 99, + tegra_clk_i2cslow = 100, + tegra_clk_i2s0 = 101, + tegra_clk_i2s0_sync = 102, + tegra_clk_i2s1 = 103, + tegra_clk_i2s1_sync = 104, + tegra_clk_i2s2 = 105, + tegra_clk_i2s2_sync = 106, + tegra_clk_i2s3 = 107, + tegra_clk_i2s3_sync = 108, + tegra_clk_i2s4 = 109, + tegra_clk_i2s4_sync = 110, + tegra_clk_isp = 111, + tegra_clk_isp_8 = 112, + tegra_clk_isp_9 = 113, + tegra_clk_ispb = 114, + tegra_clk_kbc = 115, + tegra_clk_kfuse = 116, + tegra_clk_la = 117, + tegra_clk_maud = 118, + tegra_clk_mipi = 119, + tegra_clk_mipibif = 120, + tegra_clk_mipi_cal = 121, + tegra_clk_mpe = 122, + tegra_clk_mselect = 123, + tegra_clk_msenc = 124, + tegra_clk_ndflash = 125, + tegra_clk_ndflash_8 = 126, + tegra_clk_ndspeed = 127, + tegra_clk_ndspeed_8 = 128, + tegra_clk_nor = 129, + tegra_clk_nvdec = 130, + tegra_clk_nvenc = 131, + tegra_clk_nvjpg = 132, + tegra_clk_owr = 133, + tegra_clk_owr_8 = 134, + tegra_clk_pcie = 135, + tegra_clk_pclk = 136, + tegra_clk_pll_a = 137, + tegra_clk_pll_a_out0 = 138, + tegra_clk_pll_a1 = 139, + tegra_clk_pll_c = 140, + tegra_clk_pll_c2 = 141, + tegra_clk_pll_c3 = 142, + tegra_clk_pll_c4 = 143, + tegra_clk_pll_c4_out0 = 144, + tegra_clk_pll_c4_out1 = 145, + tegra_clk_pll_c4_out2 = 146, + tegra_clk_pll_c4_out3 = 147, + tegra_clk_pll_c_out1 = 148, + tegra_clk_pll_d = 149, + tegra_clk_pll_d2 = 150, + tegra_clk_pll_d2_out0 = 151, + tegra_clk_pll_d_out0 = 152, + tegra_clk_pll_dp = 153, + tegra_clk_pll_e_out0 = 154, + tegra_clk_pll_g_ref = 155, + tegra_clk_pll_m = 156, + tegra_clk_pll_m_out1 = 157, + tegra_clk_pll_mb = 158, + tegra_clk_pll_p = 159, + tegra_clk_pll_p_out1 = 160, + tegra_clk_pll_p_out2 = 161, + tegra_clk_pll_p_out2_int = 162, + tegra_clk_pll_p_out3 = 163, + tegra_clk_pll_p_out4 = 164, + tegra_clk_pll_p_out4_cpu = 165, + tegra_clk_pll_p_out5 = 166, + tegra_clk_pll_p_out_hsio = 167, + tegra_clk_pll_p_out_xusb = 168, + tegra_clk_pll_p_out_cpu = 169, + tegra_clk_pll_p_out_adsp = 170, + tegra_clk_pll_ref = 171, + tegra_clk_pll_re_out = 172, + tegra_clk_pll_re_vco = 173, + tegra_clk_pll_u = 174, + tegra_clk_pll_u_out = 175, + tegra_clk_pll_u_out1 = 176, + tegra_clk_pll_u_out2 = 177, + tegra_clk_pll_u_12m = 178, + tegra_clk_pll_u_480m = 179, + tegra_clk_pll_u_48m = 180, + tegra_clk_pll_u_60m = 181, + tegra_clk_pll_x = 182, + tegra_clk_pll_x_out0 = 183, + tegra_clk_pwm = 184, + tegra_clk_qspi = 185, + tegra_clk_rtc = 186, + tegra_clk_sata = 187, + tegra_clk_sata_8 = 188, + tegra_clk_sata_cold = 189, + tegra_clk_sata_oob = 190, + tegra_clk_sata_oob_8 = 191, + tegra_clk_sbc1 = 192, + tegra_clk_sbc1_8 = 193, + tegra_clk_sbc1_9 = 194, + tegra_clk_sbc2 = 195, + tegra_clk_sbc2_8 = 196, + tegra_clk_sbc2_9 = 197, + tegra_clk_sbc3 = 198, + tegra_clk_sbc3_8 = 199, + tegra_clk_sbc3_9 = 200, + tegra_clk_sbc4 = 201, + tegra_clk_sbc4_8 = 202, + tegra_clk_sbc4_9 = 203, + tegra_clk_sbc5 = 204, + tegra_clk_sbc5_8 = 205, + tegra_clk_sbc6 = 206, + tegra_clk_sbc6_8 = 207, + tegra_clk_sclk = 208, + tegra_clk_sdmmc_legacy = 209, + tegra_clk_sdmmc1 = 210, + tegra_clk_sdmmc1_8 = 211, + tegra_clk_sdmmc1_9 = 212, + tegra_clk_sdmmc2 = 213, + tegra_clk_sdmmc2_8 = 214, + tegra_clk_sdmmc3 = 215, + tegra_clk_sdmmc3_8 = 216, + tegra_clk_sdmmc3_9 = 217, + tegra_clk_sdmmc4 = 218, + tegra_clk_sdmmc4_8 = 219, + tegra_clk_se = 220, + tegra_clk_se_10 = 221, + tegra_clk_soc_therm = 222, + tegra_clk_soc_therm_8 = 223, + tegra_clk_sor0 = 224, + tegra_clk_sor0_out = 225, + tegra_clk_sor1 = 226, + tegra_clk_sor1_out = 227, + tegra_clk_spdif = 228, + tegra_clk_spdif_2x = 229, + tegra_clk_spdif_in = 230, + tegra_clk_spdif_in_8 = 231, + tegra_clk_spdif_in_sync = 232, + tegra_clk_spdif_mux = 233, + tegra_clk_spdif_out = 234, + tegra_clk_timer = 235, + tegra_clk_trace = 236, + tegra_clk_tsec = 237, + tegra_clk_tsec_8 = 238, + tegra_clk_tsecb = 239, + tegra_clk_tsensor = 240, + tegra_clk_tvdac = 241, + tegra_clk_tvo = 242, + tegra_clk_uarta = 243, + tegra_clk_uarta_8 = 244, + tegra_clk_uartb = 245, + tegra_clk_uartb_8 = 246, + tegra_clk_uartc = 247, + tegra_clk_uartc_8 = 248, + tegra_clk_uartd = 249, + tegra_clk_uartd_8 = 250, + tegra_clk_uarte = 251, + tegra_clk_uarte_8 = 252, + tegra_clk_uartape = 253, + tegra_clk_usb2 = 254, + tegra_clk_usb2_hsic_trk = 255, + tegra_clk_usb2_trk = 256, + tegra_clk_usb3 = 257, + tegra_clk_usbd = 258, + tegra_clk_vcp = 259, + tegra_clk_vde = 260, + tegra_clk_vde_8 = 261, + tegra_clk_vfir = 262, + tegra_clk_vi = 263, + tegra_clk_vi_8 = 264, + tegra_clk_vi_9 = 265, + tegra_clk_vi_10 = 266, + tegra_clk_vi_i2c = 267, + tegra_clk_vic03 = 268, + tegra_clk_vic03_8 = 269, + tegra_clk_vim2_clk = 270, + tegra_clk_vimclk_sync = 271, + tegra_clk_vi_sensor = 272, + tegra_clk_vi_sensor_8 = 273, + tegra_clk_vi_sensor_9 = 274, + tegra_clk_vi_sensor2 = 275, + tegra_clk_vi_sensor2_8 = 276, + tegra_clk_xusb_dev = 277, + tegra_clk_xusb_dev_src = 278, + tegra_clk_xusb_dev_src_8 = 279, + tegra_clk_xusb_falcon_src = 280, + tegra_clk_xusb_falcon_src_8 = 281, + tegra_clk_xusb_fs_src = 282, + tegra_clk_xusb_gate = 283, + tegra_clk_xusb_host = 284, + tegra_clk_xusb_host_src = 285, + tegra_clk_xusb_host_src_8 = 286, + tegra_clk_xusb_hs_src = 287, + tegra_clk_xusb_hs_src_4 = 288, + tegra_clk_xusb_ss = 289, + tegra_clk_xusb_ss_src = 290, + tegra_clk_xusb_ss_src_8 = 291, + tegra_clk_xusb_ss_div2 = 292, + tegra_clk_xusb_ssp_src = 293, + tegra_clk_sclk_mux = 294, + tegra_clk_sor_safe = 295, + tegra_clk_cec = 296, + tegra_clk_ispa = 297, + tegra_clk_dmic1 = 298, + tegra_clk_dmic2 = 299, + tegra_clk_dmic3 = 300, + tegra_clk_dmic1_sync_clk = 301, + tegra_clk_dmic2_sync_clk = 302, + tegra_clk_dmic3_sync_clk = 303, + tegra_clk_dmic1_sync_clk_mux = 304, + tegra_clk_dmic2_sync_clk_mux = 305, + tegra_clk_dmic3_sync_clk_mux = 306, + tegra_clk_iqc1 = 307, + tegra_clk_iqc2 = 308, + tegra_clk_pll_a_out_adsp = 309, + tegra_clk_pll_a_out0_out_adsp = 310, + tegra_clk_adsp = 311, + tegra_clk_adsp_neon = 312, + tegra_clk_max = 313, }; -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, -}; +struct pdiv_map; -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, -}; +struct div_nmp; -enum tcp_ca_ack_event_flags { - CA_ACK_SLOWPATH = 1, - CA_ACK_WIN_UPDATE = 2, - CA_ACK_ECE = 4, -}; +struct tegra_clk_pll_freq_table; -enum tcp_queue { - TCP_FRAG_IN_WRITE_QUEUE = 0, - TCP_FRAG_IN_RTX_QUEUE = 1, -}; +struct tegra_clk_pll; -enum { - SCM_TSTAMP_SND = 0, - SCM_TSTAMP_SCHED = 1, - SCM_TSTAMP_ACK = 2, +struct tegra_clk_pll_params { + unsigned long input_min; + unsigned long input_max; + unsigned long cf_min; + unsigned long cf_max; + unsigned long vco_min; + unsigned long vco_max; + u32 base_reg; + u32 misc_reg; + u32 lock_reg; + u32 lock_mask; + u32 lock_enable_bit_idx; + u32 iddq_reg; + u32 iddq_bit_idx; + u32 reset_reg; + u32 reset_bit_idx; + u32 sdm_din_reg; + u32 sdm_din_mask; + u32 sdm_ctrl_reg; + u32 sdm_ctrl_en_mask; + u32 ssc_ctrl_reg; + u32 ssc_ctrl_en_mask; + u32 aux_reg; + u32 dyn_ramp_reg; + u32 ext_misc_reg[6]; + u32 pmc_divnm_reg; + u32 pmc_divp_reg; + u32 flags; + int stepa_shift; + int stepb_shift; + int lock_delay; + int max_p; + bool defaults_set; + const struct pdiv_map *pdiv_tohw; + struct div_nmp *div_nmp; + struct tegra_clk_pll_freq_table *freq_table; + unsigned long fixed_rate; + u16 mdiv_default; + u32 (*round_p_to_pdiv)(u32, u32 *); + void (*set_gain)(struct tegra_clk_pll_freq_table *); + int (*calc_rate)(struct clk_hw *, struct tegra_clk_pll_freq_table *, unsigned long, unsigned long); + unsigned long (*adjust_vco)(struct tegra_clk_pll_params *, unsigned long); + void (*set_defaults)(struct tegra_clk_pll *); + int (*dyn_ramp)(struct tegra_clk_pll *, struct tegra_clk_pll_freq_table *); + int (*pre_rate_change)(); + void (*post_rate_change)(); }; -union tcp_word_hdr { - struct tcphdr hdr; - __be32 words[5]; +struct pdiv_map { + u8 pdiv; + u8 hw_val; }; -struct tcp_sack_block_wire { - __be32 start_seq; - __be32 end_seq; +struct div_nmp { + u8 divn_shift; + u8 divn_width; + u8 divm_shift; + u8 divm_width; + u8 divp_shift; + u8 divp_width; + u8 override_divn_shift; + u8 override_divm_shift; + u8 override_divp_shift; }; -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 tegra_clk_pll_freq_table { + unsigned long input_rate; + unsigned long output_rate; + u32 n; + u32 m; + u8 p; + u8 cpcon; + u16 sdm_data; }; -struct rpc_pipe_dir_object; +struct tegra_clk_pll { + struct clk_hw hw; + void *clk_base; + void *pmc; + spinlock_t *lock; + struct tegra_clk_pll_params *params; +}; -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 tegra_audio_clk_info { + char *name; + struct tegra_clk_pll_params *pll_params; + int clk_id; + char *parent; }; -struct rpc_pipe_dir_object { - struct list_head pdo_head; - const struct rpc_pipe_dir_object_ops *pdo_ops; - void *pdo_data; +struct tegra210_domain_mbist_war { + void (*handle_lvl2_ovr)(struct tegra210_domain_mbist_war *); + const u32 lvl2_offset; + const u32 lvl2_mask; + const unsigned int num_clks; + const unsigned int *clk_init_data; + struct clk_bulk_data *clks; }; -enum rpc_gss_svc { - RPC_GSS_SVC_NONE = 1, - RPC_GSS_SVC_INTEGRITY = 2, - RPC_GSS_SVC_PRIVACY = 3, +struct utmi_clk_param { + u32 osc_frequency; + u8 enable_delay_count; + u16 stable_count; + u8 active_delay_count; + u16 xtal_freq_count; }; -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 tegra_clk_frac_div { + struct clk_hw hw; + void *reg; + u8 flags; + u8 shift; + u8 width; + u8 frac_width; + spinlock_t *lock; }; -struct gss_pipe; +struct tegra_clk_periph_gate { + u32 magic; + struct clk_hw hw; + void *clk_base; + u8 flags; + int clk_num; + int *enable_refcnt; + const struct tegra_clk_periph_regs *regs; +}; -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 tegra_clk_periph { + u32 magic; + struct clk_hw hw; + struct clk_mux mux; + struct tegra_clk_frac_div divider; + struct tegra_clk_periph_gate gate; + const struct clk_ops *mux_ops; + const struct clk_ops *div_ops; + const struct clk_ops *gate_ops; }; -struct gss_pipe { - struct rpc_pipe_dir_object pdo; - struct rpc_pipe *pipe; - struct rpc_clnt *clnt; +struct tegra_periph_init_data { const char *name; - struct kref kref; + int clk_id; + union { + const char * const *parent_names; + const char *parent_name; + } p; + int num_parents; + struct tegra_clk_periph periph; + u32 offset; + const char *con_id; + const char *dev_id; + unsigned long flags; }; -struct gss_cl_ctx; - -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 cpu_clk_suspend_context { + u32 clk_csite_src; }; -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; +struct zynqmp_clk_gate { + struct clk_hw hw; + u8 flags; + u32 clk_id; }; -struct rpc_inode { - struct inode vfs_inode; - void *private; - struct rpc_pipe *pipe; - wait_queue_head_t waitq; +struct clock_topology { + u32 type; + u32 flag; + u32 type_flag; + u8 custom_type_flag; }; -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; +struct zynqmp_clk_mux { + struct clk_hw hw; + u8 flags; + u32 clk_id; }; -struct gss_alloc_pdo { - struct rpc_clnt *clnt; - const char *name; - const struct rpc_pipe_ops *upcall_ops; +struct of_dma_filter_info { + dma_cap_mask_t dma_cap; + dma_filter_fn filter_fn; }; -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 qman_hwerr_txt { + u32 mask; + const char *txt; }; -enum efi_cmdline_option { - EFI_CMDLINE_NONE = 0, - EFI_CMDLINE_MODE_NUM = 1, - EFI_CMDLINE_RES = 2, - EFI_CMDLINE_AUTO = 3, - EFI_CMDLINE_LIST = 4, +struct qman_error_info_mdata { + u16 addr_mask; + u16 bits; + const char *txt; }; -typedef struct { - u32 red_mask; - u32 green_mask; - u32 blue_mask; - u32 reserved_mask; -} efi_pixel_bitmask_t; - -typedef struct { - u32 version; - u32 horizontal_resolution; - u32 vertical_resolution; - int pixel_format; - efi_pixel_bitmask_t pixel_information; - u32 pixels_per_scan_line; -} efi_graphics_output_mode_info_t; - -union efi_graphics_output_protocol; - -typedef union efi_graphics_output_protocol efi_graphics_output_protocol_t; - -union efi_graphics_output_protocol_mode; - -typedef union efi_graphics_output_protocol_mode efi_graphics_output_protocol_mode_t; - -union efi_graphics_output_protocol { - struct { - efi_status_t (*query_mode)(efi_graphics_output_protocol_t *, u32, unsigned long *, efi_graphics_output_mode_info_t **); - efi_status_t (*set_mode)(efi_graphics_output_protocol_t *, u32); - void *blt; - efi_graphics_output_protocol_mode_t *mode; - }; - struct { - u32 query_mode; - u32 set_mode; - u32 blt; - u32 mode; - } mixed_mode; +enum qm_memory { + qm_memory_fqd = 0, + qm_memory_pfdr = 1, }; -union efi_graphics_output_protocol_mode { - struct { - u32 max_mode; - u32 mode; - efi_graphics_output_mode_info_t *info; - unsigned long size_of_info; - efi_physical_addr_t frame_buffer_base; - unsigned long frame_buffer_size; - }; - struct { - u32 max_mode; - u32 mode; - u32 info; - u32 size_of_info; - u64 frame_buffer_base; - u32 frame_buffer_size; - } mixed_mode; +enum qm_wq_class { + qm_wq_portal = 0, + qm_wq_pool = 1, + qm_wq_fman0 = 2, + qm_wq_fman1 = 3, + qm_wq_caam = 4, + qm_wq_pme = 5, + qm_wq_first = 0, + qm_wq_last = 5, }; -struct vgic_its_abi { - int cte_esz; - int dte_esz; - int ite_esz; - int (*save_tables)(struct vgic_its___2 *); - int (*restore_tables)(struct vgic_its___2 *); - int (*commit)(struct vgic_its___2 *); +enum qm_dc_portal { + qm_dc_portal_fman0 = 0, + qm_dc_portal_fman1 = 1, }; -struct vgic_translation_cache_entry { - struct list_head entry; - phys_addr_t db; - u32 devid; - u32 eventid; - struct vgic_irq___2 *irq; +struct qm_ecir { + u32 info; }; -struct its_device { - struct list_head dev_list; - struct list_head itt_head; - u32 num_eventid_bits; - gpa_t itt_addr; - u32 device_id; +struct qm_eadr { + u32 info; }; -struct its_collection; +struct qm_ecir2 { + u32 info; +}; -struct its_ite { - struct list_head ite_list; - struct vgic_irq___2 *irq; - struct its_collection *collection; - u32 event_id; +struct tcs_request { + enum rpmh_state state; + u32 wait_for_compl; + u32 num_cmds; + struct tcs_cmd *cmds; }; -struct its_collection { - struct list_head coll_list; - u32 collection_id; - u32 target_addr; +struct rpmh_request { + struct tcs_request msg; + struct tcs_cmd cmd[16]; + struct completion *completion; + const struct device *dev; + bool needs_free; }; -typedef int (*entry_fn_t)(struct vgic_its___2 *, u32, void *, void *); +struct rsc_drv; -struct its_vlpi_map { - struct its_vm *vm; - struct its_vpe *vpe; - u32 vintid; - u8 properties; - bool db_enabled; +struct tcs_group { + struct rsc_drv *drv; + int type; + u32 mask; + u32 offset; + int num_tcs; + int ncpt; + const struct tcs_request *req[3]; + unsigned long slots[1]; }; -enum numa_faults_stats { - NUMA_MEM = 0, - NUMA_CPU = 1, - NUMA_MEMBUF = 2, - NUMA_CPUBUF = 3, +struct rpmh_ctrlr { + struct list_head cache; + spinlock_t cache_lock; + bool dirty; + struct list_head batch_cache; }; -enum sched_tunable_scaling { - SCHED_TUNABLESCALING_NONE = 0, - SCHED_TUNABLESCALING_LOG = 1, - SCHED_TUNABLESCALING_LINEAR = 2, - SCHED_TUNABLESCALING_END = 3, +struct rsc_ver { + u32 major; + u32 minor; }; -enum numa_type { - node_has_spare = 0, - node_fully_busy = 1, - node_overloaded = 2, +struct rsc_drv { + const char *name; + void *base; + void *tcs_base; + int id; + int num_tcs; + struct notifier_block rsc_pm; + struct notifier_block genpd_nb; + atomic_t cpus_in_pm; + struct tcs_group tcs[4]; + unsigned long tcs_in_use[1]; + spinlock_t lock; + wait_queue_head_t tcs_wait; + struct rpmh_ctrlr client; + struct device *dev; + struct rsc_ver ver; + u32 *regs; }; -enum uclamp_id { - UCLAMP_MIN = 0, - UCLAMP_MAX = 1, - UCLAMP_CNT = 2, +struct cache_req___2 { + u32 addr; + u32 sleep_val; + u32 wake_val; + struct list_head list; }; -enum cpu_idle_type { - CPU_IDLE = 0, - CPU_NOT_IDLE = 1, - CPU_NEWLY_IDLE = 2, - CPU_MAX_IDLE_TYPES = 3, +struct batch_cache_req { + struct list_head list; + int count; + struct rpmh_request rpm_msgs[0]; }; -enum fbq_type { - regular = 0, - remote = 1, - all = 2, -}; +struct exynos_pmu_data; -enum migration_type { - migrate_load = 0, - migrate_util = 1, - migrate_task = 2, - migrate_misfit = 3, +struct exynos_pmu_context { + struct device *dev; + const struct exynos_pmu_data *pmu_data; }; -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 sys_powerdown { + SYS_AFTR = 0, + SYS_LPA = 1, + SYS_SLEEP = 2, + NUM_SYS_POWERDOWN = 3, }; -struct numa_stats { - unsigned long load; - unsigned long runnable; - unsigned long util; - unsigned long compute_capacity; - unsigned int nr_running; - unsigned int weight; - enum numa_type node_type; - int idle_cpu; +struct exynos_pmu_conf; + +struct exynos_pmu_data { + const struct exynos_pmu_conf *pmu_config; + const struct exynos_pmu_conf *pmu_config_extra; + void (*pmu_init)(); + void (*powerdown_conf)(enum sys_powerdown); + void (*powerdown_conf_extra)(enum sys_powerdown); }; -struct task_numa_env { - struct task_struct *p; - int src_cpu; - int src_nid; - int dst_cpu; - int dst_nid; - int imb_numa_nr; - struct numa_stats src_stats; - struct numa_stats dst_stats; - int imbalance_pct; - int dist; - struct task_struct *best_task; - long best_imp; - int best_cpu; +struct exynos_pmu_conf { + unsigned int offset; + u8 val[3]; }; -struct energy_env { - unsigned long task_busy_time; - unsigned long pd_busy_time; - unsigned long cpu_cap; - unsigned long pd_cap; +struct meson_secure_pwrc_domain_desc; + +struct meson_secure_pwrc_domain_data { + unsigned int count; + struct meson_secure_pwrc_domain_desc *domains; }; -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; +struct meson_secure_pwrc_domain; + +struct meson_secure_pwrc_domain_desc { + unsigned int index; + unsigned int parent; 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; + char *name; + bool (*is_off)(struct meson_secure_pwrc_domain *); }; -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; - unsigned int nr_numa_running; - unsigned int nr_preferred_running; -}; +struct meson_secure_pwrc; -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 meson_secure_pwrc_domain { + struct generic_pm_domain base; + unsigned int index; + unsigned int parent; + struct meson_secure_pwrc *pwrc; }; -struct listener_list { - struct rw_semaphore sem; - struct list_head list; -}; +struct meson_sm_firmware; -enum { - TASKSTATS_CMD_UNSPEC = 0, - TASKSTATS_CMD_GET = 1, - TASKSTATS_CMD_NEW = 2, - __TASKSTATS_CMD_MAX = 3, +struct meson_secure_pwrc { + struct meson_secure_pwrc_domain *domains; + struct genpd_onecell_data xlate; + struct meson_sm_firmware *fw; }; 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, + SM_EFUSE_READ = 0, + SM_EFUSE_WRITE = 1, + SM_EFUSE_USER_MAX = 2, + SM_GET_CHIP_ID = 3, + SM_A1_PWRC_SET = 4, + SM_A1_PWRC_GET = 5, }; -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, +struct scp_ctrl_reg { + int pwr_sta_offs; + int pwr_sta2nd_offs; }; -enum actions { - REGISTER = 0, - DEREGISTER = 1, - CPU_DONT_CARE = 2, +struct scp_domain_data; + +struct scp_subdomain; + +struct scp_soc_data { + const struct scp_domain_data *domains; + int num_domains; + const struct scp_subdomain *subdomains; + int num_subdomains; + const struct scp_ctrl_reg regs; + bool bus_prot_reg_update; }; -enum { - CGROUPSTATS_CMD_ATTR_UNSPEC = 0, - CGROUPSTATS_CMD_ATTR_FD = 1, - __CGROUPSTATS_CMD_ATTR_MAX = 2, +enum clk_id___2 { + CLK_NONE = 0, + CLK_MM = 1, + CLK_MFG = 2, + CLK_VENC = 3, + CLK_VENC_LT = 4, + CLK_ETHIF = 5, + CLK_VDEC = 6, + CLK_HIFSEL = 7, + CLK_JPGDEC = 8, + CLK_AUDIO = 9, + CLK_MAX = 10, }; -enum { - CGROUPSTATS_CMD_UNSPEC = 3, - CGROUPSTATS_CMD_GET = 4, - CGROUPSTATS_CMD_NEW = 5, - __CGROUPSTATS_CMD_MAX = 6, +struct scp_domain_data { + const char *name; + u32 sta_mask; + int ctl_offs; + u32 sram_pdn_bits; + u32 sram_pdn_ack_bits; + u32 bus_prot_mask; + enum clk_id___2 clk_id[3]; + u8 caps; }; -enum { - CGROUPSTATS_TYPE_UNSPEC = 0, - CGROUPSTATS_TYPE_CGROUP_STATS = 1, - __CGROUPSTATS_TYPE_MAX = 2, +struct scp_subdomain { + int origin; + int subdomain; }; -struct listener { - struct list_head list; - pid_t pid; - char valid; -}; +struct scp; -struct cgroupstats { - __u64 nr_sleeping; - __u64 nr_running; - __u64 nr_stopped; - __u64 nr_uninterruptible; - __u64 nr_io_wait; +struct scp_domain { + struct generic_pm_domain genpd; + struct scp *scp; + struct clk *clk[3]; + const struct scp_domain_data *data; + struct regulator *supply; }; -struct bpf_preload_info; - -struct bpf_preload_ops { - int (*preload)(struct bpf_preload_info *); - struct module *owner; +struct scp { + struct scp_domain *domains; + struct genpd_onecell_data pd_data; + struct device *dev; + void *base; + struct regmap *infracfg; + struct scp_ctrl_reg ctrl_reg; + bool bus_prot_reg_update; }; -struct bpf_preload_info { - char link_name[16]; - struct bpf_link *link; +struct physdev_pci_device { + uint16_t seg; + uint8_t bus; + uint8_t devfn; }; -enum bpf_type { - BPF_TYPE_UNSPEC = 0, - BPF_TYPE_PROG = 1, - BPF_TYPE_MAP = 2, - BPF_TYPE_LINK = 3, +struct physdev_dbgp_op { + uint8_t op; + uint8_t bus; + union { + struct physdev_pci_device pci; + } u; }; -enum { - OPT_MODE = 0, +struct rohm_dvs_config { + uint64_t level_map; + unsigned int run_reg; + unsigned int run_mask; + unsigned int run_on_mask; + unsigned int idle_reg; + unsigned int idle_mask; + unsigned int idle_on_mask; + unsigned int suspend_reg; + unsigned int suspend_mask; + unsigned int suspend_on_mask; + unsigned int lpsr_reg; + unsigned int lpsr_mask; + unsigned int lpsr_on_mask; + unsigned int snvs_reg; + unsigned int snvs_mask; + unsigned int snvs_on_mask; }; -struct map_iter { - void *key; - bool done; +struct reg_init { + unsigned int reg; + unsigned int mask; + unsigned int val; }; -struct bpf_mount_opts { - umode_t mode; +struct bd718xx_regulator_data { + struct regulator_desc desc; + const struct rohm_dvs_config dvs; + const struct reg_init init; + const struct reg_init *additional_inits; + int additional_init_amnt; }; 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 btf_id_set { - u32 cnt; - u32 ids[0]; -}; - -typedef void compound_page_dtor(struct page *); - -enum pageblock_bits { - PB_migrate = 0, - PB_migrate_end = 2, - PB_migrate_skip = 3, - NR_PAGEBLOCK_BITS = 4, -}; - -enum zone_flags { - ZONE_BOOSTED_WATERMARK = 0, - ZONE_RECLAIM_ACTIVE = 1, -}; - -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, + BD718XX_REG_REV = 0, + BD718XX_REG_SWRESET = 1, + BD718XX_REG_I2C_DEV = 2, + BD718XX_REG_PWRCTRL0 = 3, + BD718XX_REG_PWRCTRL1 = 4, + BD718XX_REG_BUCK1_CTRL = 5, + BD718XX_REG_BUCK2_CTRL = 6, + BD718XX_REG_1ST_NODVS_BUCK_CTRL = 9, + BD718XX_REG_2ND_NODVS_BUCK_CTRL = 10, + BD718XX_REG_3RD_NODVS_BUCK_CTRL = 11, + BD718XX_REG_4TH_NODVS_BUCK_CTRL = 12, + BD718XX_REG_BUCK1_VOLT_RUN = 13, + BD718XX_REG_BUCK1_VOLT_IDLE = 14, + BD718XX_REG_BUCK1_VOLT_SUSP = 15, + BD718XX_REG_BUCK2_VOLT_RUN = 16, + BD718XX_REG_BUCK2_VOLT_IDLE = 17, + BD718XX_REG_1ST_NODVS_BUCK_VOLT = 20, + BD718XX_REG_2ND_NODVS_BUCK_VOLT = 21, + BD718XX_REG_3RD_NODVS_BUCK_VOLT = 22, + BD718XX_REG_4TH_NODVS_BUCK_VOLT = 23, + BD718XX_REG_LDO1_VOLT = 24, + BD718XX_REG_LDO2_VOLT = 25, + BD718XX_REG_LDO3_VOLT = 26, + BD718XX_REG_LDO4_VOLT = 27, + BD718XX_REG_LDO5_VOLT = 28, + BD718XX_REG_LDO6_VOLT = 29, + BD718XX_REG_TRANS_COND0 = 31, + BD718XX_REG_TRANS_COND1 = 32, + BD718XX_REG_VRFAULTEN = 33, + BD718XX_REG_MVRFLTMASK0 = 34, + BD718XX_REG_MVRFLTMASK1 = 35, + BD718XX_REG_MVRFLTMASK2 = 36, + BD718XX_REG_RCVCFG = 37, + BD718XX_REG_RCVNUM = 38, + BD718XX_REG_PWRONCONFIG0 = 39, + BD718XX_REG_PWRONCONFIG1 = 40, + BD718XX_REG_RESETSRC = 41, + BD718XX_REG_MIRQ = 42, + BD718XX_REG_IRQ = 43, + BD718XX_REG_IN_MON = 44, + BD718XX_REG_POW_STATE = 45, + BD718XX_REG_OUT32K = 46, + BD718XX_REG_REGLOCK = 47, + BD718XX_REG_OTPVER = 255, + BD718XX_MAX_REGISTER = 256, }; -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 { + BD718XX_BUCK1 = 0, + BD718XX_BUCK2 = 1, + BD718XX_BUCK3 = 2, + BD718XX_BUCK4 = 3, + BD718XX_BUCK5 = 4, + BD718XX_BUCK6 = 5, + BD718XX_BUCK7 = 6, + BD718XX_BUCK8 = 7, + BD718XX_LDO1 = 8, + BD718XX_LDO2 = 9, + BD718XX_LDO3 = 10, + BD718XX_LDO4 = 11, + BD718XX_LDO5 = 12, + BD718XX_LDO6 = 13, + BD718XX_LDO7 = 14, + BD718XX_REGULATOR_AMOUNT = 15, }; -enum oom_constraint { - CONSTRAINT_NONE = 0, - CONSTRAINT_CPUSET = 1, - CONSTRAINT_MEMORY_POLICY = 2, - CONSTRAINT_MEMCG = 3, +struct mt6359_regulator_info { + struct regulator_desc desc; + u32 status_reg; + u32 qi; + u32 modeset_reg; + u32 modeset_mask; + u32 lp_mode_reg; + u32 lp_mode_mask; }; -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; +enum { + MT6359_ID_VS1 = 0, + MT6359_ID_VGPU11 = 1, + MT6359_ID_VMODEM = 2, + MT6359_ID_VPU = 3, + MT6359_ID_VCORE = 4, + MT6359_ID_VS2 = 5, + MT6359_ID_VPA = 6, + MT6359_ID_VPROC2 = 7, + MT6359_ID_VPROC1 = 8, + MT6359_ID_VCORE_SSHUB = 9, + MT6359_ID_VGPU11_SSHUB = 9, + MT6359_ID_VAUD18 = 10, + MT6359_ID_VSIM1 = 11, + MT6359_ID_VIBR = 12, + MT6359_ID_VRF12 = 13, + MT6359_ID_VUSB = 14, + MT6359_ID_VSRAM_PROC2 = 15, + MT6359_ID_VIO18 = 16, + MT6359_ID_VCAMIO = 17, + MT6359_ID_VCN18 = 18, + MT6359_ID_VFE28 = 19, + MT6359_ID_VCN13 = 20, + MT6359_ID_VCN33_1_BT = 21, + MT6359_ID_VCN33_1_WIFI = 22, + MT6359_ID_VAUX18 = 23, + MT6359_ID_VSRAM_OTHERS = 24, + MT6359_ID_VEFUSE = 25, + MT6359_ID_VXO22 = 26, + MT6359_ID_VRFCK = 27, + MT6359_ID_VBIF28 = 28, + MT6359_ID_VIO28 = 29, + MT6359_ID_VEMC = 30, + MT6359_ID_VCN33_2_BT = 31, + MT6359_ID_VCN33_2_WIFI = 32, + MT6359_ID_VA12 = 33, + MT6359_ID_VA09 = 34, + MT6359_ID_VRF18 = 35, + MT6359_ID_VSRAM_MD = 36, + MT6359_ID_VUFS = 37, + MT6359_ID_VM18 = 38, + MT6359_ID_VBBCK = 39, + MT6359_ID_VSRAM_PROC1 = 40, + MT6359_ID_VSIM2 = 41, + MT6359_ID_VSRAM_OTHERS_SSHUB = 42, + MT6359_ID_RG_MAX = 43, }; -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 rzg2l_usbphy_ctrl_priv { + struct reset_controller_dev rcdev; + struct reset_control *rstc; + void *base; + spinlock_t lock; }; -struct page_frag_cache { - void *va; - __u16 offset; - __u16 size; - unsigned int pagecnt_bias; - bool pfmemalloc; +struct of_serial_info { + struct clk *clk; + struct reset_control *rst; + int type; + int line; }; -enum dentry_d_lock_class { - DENTRY_D_LOCK_NORMAL = 0, - DENTRY_D_LOCK_NESTED = 1, +enum serdev_parity { + SERDEV_PARITY_NONE = 0, + SERDEV_PARITY_EVEN = 1, + SERDEV_PARITY_ODD = 2, }; -struct simple_transaction_argresp { - ssize_t size; - char data[0]; -}; +struct serdev_device; -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; +struct serdev_device_driver { + struct device_driver driver; + int (*probe)(struct serdev_device *); + void (*remove)(struct serdev_device *); }; -enum { - MBE_REFERENCED_B = 0, - MBE_REUSABLE_B = 1, -}; +struct serdev_controller; -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 serdev_device_ops; -struct mb_cache { - struct hlist_bl_head *c_hash; - int c_bucket_bits; - unsigned long c_max_entries; - spinlock_t c_list_lock; - struct list_head c_list; - unsigned long c_entry_count; - struct shrinker c_shrink; - struct work_struct c_shrink_work; +struct serdev_device { + struct device dev; + int nr; + struct serdev_controller *ctrl; + const struct serdev_device_ops *ops; + struct completion write_comp; + struct mutex write_lock; }; -enum { - Opt_uid___2 = 0, - Opt_gid___3 = 1, - Opt_mode___2 = 2, - Opt_ptmxmode = 3, - Opt_newinstance = 4, - Opt_max = 5, - Opt_err___3 = 6, -}; +struct serdev_controller_ops; -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 serdev_controller { + struct device dev; + unsigned int nr; + struct serdev_device *serdev; + const struct serdev_controller_ops *ops; }; -struct pts_fs_info { - struct ida allocated_ptys; - struct pts_mount_opts mount_opts; - struct super_block *sb; - struct dentry *ptmx_dentry; +struct serdev_controller_ops { + int (*write_buf)(struct serdev_controller *, const unsigned char *, size_t); + void (*write_flush)(struct serdev_controller *); + int (*write_room)(struct serdev_controller *); + int (*open)(struct serdev_controller *); + void (*close)(struct serdev_controller *); + void (*set_flow_control)(struct serdev_controller *, bool); + int (*set_parity)(struct serdev_controller *, enum serdev_parity); + unsigned int (*set_baudrate)(struct serdev_controller *, unsigned int); + void (*wait_until_sent)(struct serdev_controller *, long); + int (*get_tiocm)(struct serdev_controller *); + int (*set_tiocm)(struct serdev_controller *, unsigned int, unsigned int); + int (*break_ctl)(struct serdev_controller *, unsigned int); }; -struct jbd2_revoke_table_s { - int hash_size; - int hash_shift; - struct list_head *hash_table; +struct serdev_device_ops { + int (*receive_buf)(struct serdev_device *, const unsigned char *, size_t); + void (*write_wakeup)(struct serdev_device *); }; -struct jbd2_revoke_record_s { - struct list_head hash; - tid_t sequence; - unsigned long long blocknr; +struct acpi_serdev_lookup { + acpi_handle device_handle; + acpi_handle controller_handle; + int n; + int index; }; -struct jbd2_journal_revoke_header_s { - journal_header_t r_header; - __be32 r_count; +struct iova { + struct rb_node node; + unsigned long pfn_hi; + unsigned long pfn_lo; }; -typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t; - -struct nfs_io_completion { - void (*complete)(void *); - void *data; - struct kref refcount; -}; +struct iova_rcache; -enum devcg_behavior { - DEVCG_DEFAULT_NONE = 0, - DEVCG_DEFAULT_ALLOW = 1, - DEVCG_DEFAULT_DENY = 2, +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; }; -struct dev_cgroup { - struct cgroup_subsys_state css; - struct list_head exceptions; - enum devcg_behavior behavior; +enum iommu_dma_cookie_type { + IOMMU_DMA_IOVA_COOKIE = 0, + IOMMU_DMA_MSI_COOKIE = 1, }; -struct dev_exception_item { - u32 major; - u32 minor; - short type; - short access; - struct list_head list; - struct callback_head rcu; +enum iommu_dma_queue_type { + IOMMU_DMA_OPTS_PER_CPU_QUEUE = 0, + IOMMU_DMA_OPTS_SINGLE_QUEUE = 1, }; -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 iommu_dma_options { + enum iommu_dma_queue_type qt; + size_t fq_size; + unsigned int fq_timeout; }; -struct msdos_partition { - u8 boot_ind; - u8 head; - u8 sector; - u8 cyl; - u8 sys_ind; - u8 end_head; - u8 end_sector; - u8 end_cyl; - __le32 start_sect; - __le32 nr_sects; -}; +struct iova_fq; -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; +struct iommu_dma_cookie { + enum iommu_dma_cookie_type type; union { struct { - __u8 drive_number; - __u8 state; - __u8 signature; - __u8 vol_id[4]; - __u8 vol_label[11]; - __u8 fs_type[8]; - } fat16; - struct { - __le32 length; - __le16 flags; - __u8 version[2]; - __le32 root_cluster; - __le16 info_sector; - __le16 backup_boot; - __le16 reserved2[6]; - __u8 drive_number; - __u8 state; - __u8 signature; - __u8 vol_id[4]; - __u8 vol_label[11]; - __u8 fs_type[8]; - } fat32; + struct iova_domain iovad; + union { + struct iova_fq *single_fq; + struct iova_fq __attribute__((btf_type_tag("percpu"))) *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 iommu_dma_options options; + struct mutex mutex; }; -struct io_xattr { - struct file *file; - struct xattr_ctx ctx; - struct filename *filename; -}; - -enum dim_cq_period_mode { - DIM_CQ_PERIOD_MODE_START_FROM_EQE = 0, - DIM_CQ_PERIOD_MODE_START_FROM_CQE = 1, - DIM_CQ_PERIOD_NUM_MODES = 2, -}; - -enum dim_tune_state { - DIM_PARKING_ON_TOP = 0, - DIM_PARKING_TIRED = 1, - DIM_GOING_RIGHT = 2, - DIM_GOING_LEFT = 3, -}; - -enum dim_stats_state { - DIM_STATS_WORSE = 0, - DIM_STATS_SAME = 1, - DIM_STATS_BETTER = 2, +struct iova_fq_entry { + unsigned long iova_pfn; + unsigned long pages; + struct list_head freelist; + u64 counter; }; -enum dim_step_result { - DIM_STEPPED = 0, - DIM_TOO_TIRED = 1, - DIM_ON_EDGE = 2, +struct iova_fq { + spinlock_t lock; + unsigned int head; + unsigned int tail; + unsigned int mod_mask; + struct iova_fq_entry entries[0]; }; -struct tegra_ictlr_soc { - unsigned int num_ictlrs; +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 tegra_ictlr_info { - void *base[6]; - u32 cop_ier[6]; - u32 cop_iep[6]; - u32 cpu_ier[6]; - u32 cpu_iep[6]; - u32 ictlr_wake_mask[6]; +struct iommu_dma_msi_page { + struct list_head list; + dma_addr_t iova; + phys_addr_t phys; }; -struct intmux_irqchip_data { - u32 saved_reg; - int chanidx; - int irq; - struct irq_domain *domain; +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 intmux_data { - raw_spinlock_t lock; - void *regs; - struct clk *ipg_clk; - int channum; - struct intmux_irqchip_data irqchip_data[0]; +struct dma_sgt_handle { + struct sg_table sgt; + struct page **pages; }; -struct phy_g12a_usb3_pcie_priv { - struct regmap *regmap; - struct regmap *regmap_cr; - struct clk *clk_ref; - struct reset_control *reset; - struct phy *phy; - unsigned int mode; +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 samsung_usb2_common_phy; - -struct samsung_usb2_phy_config { - const struct samsung_usb2_common_phy *phys; - int (*rate_to_clk)(unsigned long, u32 *); - unsigned int num_phys; - bool has_mode_switch; - bool has_refclk_sel; +struct software_node_ref_args { + const struct software_node *node; + unsigned int nargs; + u64 args[8]; }; -struct samsung_usb2_phy_instance; +struct sunxi_rsb_device; -struct samsung_usb2_common_phy { - int (*power_on)(struct samsung_usb2_phy_instance *); - int (*power_off)(struct samsung_usb2_phy_instance *); - unsigned int id; - char *label; +struct sunxi_rsb_driver { + struct device_driver driver; + int (*probe)(struct sunxi_rsb_device *); + void (*remove)(struct sunxi_rsb_device *); }; -struct samsung_usb2_phy_driver; +struct sunxi_rsb; -struct samsung_usb2_phy_instance { - const struct samsung_usb2_common_phy *cfg; - struct phy *phy; - struct samsung_usb2_phy_driver *drv; - int int_cnt; - int ext_cnt; +struct sunxi_rsb_device { + struct device dev; + struct sunxi_rsb *rsb; + int irq; + u8 rtaddr; + u16 hwaddr; }; -struct samsung_usb2_phy_driver { - const struct samsung_usb2_phy_config *cfg; - struct clk *clk; - struct clk *ref_clk; - struct regulator *vbus; - unsigned long ref_rate; - u32 ref_reg_val; +struct axp20x_dev { struct device *dev; - void *reg_phy; - struct regmap *reg_pmu; - struct regmap *reg_sys; - spinlock_t lock; - struct samsung_usb2_phy_instance instances[0]; -}; - -struct mvebu_mpp_ctrl; - -struct mvebu_mpp_ctrl_data; - -struct mvebu_mpp_mode; - -struct mvebu_pinctrl_soc_info { - u8 variant; - const struct mvebu_mpp_ctrl *controls; - struct mvebu_mpp_ctrl_data *control_data; - int ncontrols; - struct mvebu_mpp_mode *modes; - int nmodes; - struct pinctrl_gpio_range *gpioranges; - int ngpioranges; + int irq; + unsigned long irq_flags; + struct regmap *regmap; + struct regmap_irq_chip_data *regmap_irqc; + long variant; + int nr_cells; + const struct mfd_cell *cells; + const struct regmap_config *regmap_cfg; + const struct regmap_irq_chip *regmap_irq_chip; }; -struct mvebu_mpp_ctrl { - const char *name; - u8 pid; - u8 npins; - unsigned int *pins; - int (*mpp_get)(struct mvebu_mpp_ctrl_data *, unsigned int, unsigned long *); - int (*mpp_set)(struct mvebu_mpp_ctrl_data *, unsigned int, unsigned long); - int (*mpp_gpio_req)(struct mvebu_mpp_ctrl_data *, unsigned int); - int (*mpp_gpio_dir)(struct mvebu_mpp_ctrl_data *, unsigned int, bool); +struct hi655x_pmic { + struct device *dev; + struct regmap *regmap; + struct gpio_desc *gpio; + unsigned int ver; + struct regmap_irq_chip_data *irq_data; }; -struct mvebu_mpp_ctrl_data { - union { - void *base; - struct { - struct regmap *map; - u32 offset; - } regmap; - }; +enum scsi_pr_type { + SCSI_PR_WRITE_EXCLUSIVE = 1, + SCSI_PR_EXCLUSIVE_ACCESS = 3, + SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5, + SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6, + SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7, + SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8, }; -struct mvebu_mpp_ctrl_setting; - -struct mvebu_mpp_mode { - u8 pid; - struct mvebu_mpp_ctrl_setting *settings; +enum sas_ha_state { + SAS_HA_REGISTERED = 0, + SAS_HA_DRAINING = 1, + SAS_HA_ATA_EH_ACTIVE = 2, + SAS_HA_FROZEN = 3, + SAS_HA_RESUMING = 4, }; -struct mvebu_mpp_ctrl_setting { - u8 val; - const char *name; - const char *subname; - u8 variant; - u8 flags; +enum phy_event { + PHYE_LOSS_OF_SIGNAL = 0, + PHYE_OOB_DONE = 1, + PHYE_OOB_ERROR = 2, + PHYE_SPINUP_HOLD = 3, + PHYE_RESUME_TIMEOUT = 4, + PHYE_SHUTDOWN = 5, + PHY_NUM_EVENTS = 6, }; -enum pmic_gpio_func_index { - PMIC_GPIO_FUNC_INDEX_NORMAL = 0, - PMIC_GPIO_FUNC_INDEX_PAIRED = 1, - PMIC_GPIO_FUNC_INDEX_FUNC1 = 2, - PMIC_GPIO_FUNC_INDEX_FUNC2 = 3, - PMIC_GPIO_FUNC_INDEX_FUNC3 = 4, - PMIC_GPIO_FUNC_INDEX_FUNC4 = 5, - PMIC_GPIO_FUNC_INDEX_DTEST1 = 6, - PMIC_GPIO_FUNC_INDEX_DTEST2 = 7, - PMIC_GPIO_FUNC_INDEX_DTEST3 = 8, - PMIC_GPIO_FUNC_INDEX_DTEST4 = 9, +enum port_event { + PORTE_BYTES_DMAED = 0, + PORTE_BROADCAST_RCVD = 1, + PORTE_LINK_RESET_ERR = 2, + PORTE_TIMER_EVENT = 3, + PORTE_HARD_RESET = 4, + PORT_NUM_EVENTS = 5, }; -struct spmi_device { - struct device dev; - struct spmi_controller *ctrl; - u8 usid; +struct sas_phy_data { + struct sas_phy *phy; + struct mutex event_lock; + int hard_reset; + int reset_result; + struct sas_work reset_work; + int enable; + int enable_result; + struct sas_work enable_work; }; -struct pmic_gpio_state { - struct device *dev; - struct regmap *map; - struct pinctrl_dev *ctrl; - struct gpio_chip chip; - u8 usid; - u8 pid_base; +struct mtdblk_dev { + struct mtd_blktrans_dev mbd; + int count; + struct mutex cache_mutex; + unsigned char *cache_data; + unsigned long cache_offset; + unsigned int cache_size; + enum { + STATE_EMPTY = 0, + STATE_CLEAN = 1, + STATE_DIRTY = 2, + } cache_state; }; -struct pmic_gpio_pad { - u16 base; - bool is_enabled; - bool out_value; - bool have_buffer; - bool output_enabled; - bool input_enabled; - bool analog_pass; - bool lv_mv_type; - unsigned int num_sources; - unsigned int power_source; - unsigned int buffer_type; - unsigned int pullup; - unsigned int strength; - unsigned int function; - unsigned int atest; - unsigned int dtest_buffer; +struct s3c64xx_spi_port_config { + int fifo_lvl_mask[12]; + int rx_lvl_offset; + int tx_st_done; + int quirks; + int clk_div; + bool high_speed; + bool clk_from_cmu; + bool clk_ioclk; + bool has_loopback; }; -enum of_gpio_flags { - OF_GPIO_ACTIVE_LOW = 1, - OF_GPIO_SINGLE_ENDED = 2, - OF_GPIO_OPEN_DRAIN = 4, - OF_GPIO_TRANSITORY = 8, - OF_GPIO_PULL_UP = 16, - OF_GPIO_PULL_DOWN = 32, - OF_GPIO_PULL_DISABLE = 64, +struct s3c64xx_spi_dma_data { + struct dma_chan *ch; + dma_cookie_t cookie; + enum dma_transfer_direction direction; }; -typedef struct gpio_desc * (*of_find_gpio_quirk)(struct device_node *, const char *, unsigned int, enum of_gpio_flags *); - -struct of_rename_gpio { - const char *con_id; - const char *legacy_id; - const char *compatible; -}; +struct s3c64xx_spi_info; -struct of_mm_gpio_chip { - struct gpio_chip gc; - void (*save_regs)(struct of_mm_gpio_chip *); +struct s3c64xx_spi_driver_data { void *regs; + struct clk *clk; + struct clk *src_clk; + struct clk *ioclk; + struct platform_device *pdev; + struct spi_controller *host; + struct s3c64xx_spi_info *cntrlr_info; + spinlock_t lock; + unsigned long sfr_start; + struct completion xfer_completion; + unsigned int state; + unsigned int cur_mode; + unsigned int cur_bpw; + unsigned int cur_speed; + struct s3c64xx_spi_dma_data rx_dma; + struct s3c64xx_spi_dma_data tx_dma; + const struct s3c64xx_spi_port_config *port_conf; + unsigned int port_id; }; -struct samsung_pwm_variant { - u8 bits; - u8 div_base; - u8 tclk_mask; - u8 output_mask; - bool has_tint_cstat; +struct s3c64xx_spi_info { + int src_clk_nr; + int num_cs; + bool no_cs; + bool polling; + int (*cfg_gpio)(); }; -struct samsung_pwm_chip { - struct pwm_chip chip; - struct samsung_pwm_variant variant; - u8 inverter_mask; - u8 disabled_mask; - void *base; - struct clk *base_clk; - struct clk *tclk0; - struct clk *tclk1; +struct s3c64xx_spi_csinfo { + u8 fb_delay; }; -struct samsung_pwm_channel { - u32 period_ns; - u32 duty_ns; - u32 tin_ns; +struct rtl821x_priv { + u16 phycr1; + u16 phycr2; + bool has_phycr2; + struct clk *clk; }; -struct hpx_type0 { - u32 revision; - u8 cache_line_size; - u8 latency_timer; - u8 enable_serr; - u8 enable_perr; +struct mdio_gpio_info { + struct mdiobb_ctrl ctrl; + struct gpio_desc *mdc; + struct gpio_desc *mdio; + struct gpio_desc *mdo; }; -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 mdio_gpio_platform_data { + u32 phy_mask; + u32 phy_ignore_ta_mask; }; -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, +struct xgbe_stats { + char stat_string[32]; + int stat_size; + int stat_offset; }; -enum hpx_type3_fn_type { - HPX_FN_NORMAL = 1, - HPX_FN_SRIOV_PHYS = 2, - HPX_FN_SRIOV_VIRT = 4, +struct muram_info { + struct gen_pool *pool; + void *vbase; + size_t size; + phys_addr_t pbase; }; -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; +enum fman_dma_aid_mode { + FMAN_DMA_AID_OUT_PORT_ID = 0, + FMAN_DMA_AID_OUT_TNUM = 1, }; -struct hpx_type1 { - u32 revision; - u8 max_mem_read; - u8 avg_max_split; - u16 tot_max_split; +enum fman_event_modules { + FMAN_MOD_MAC = 0, + FMAN_MOD_FMAN_CTRL = 1, + FMAN_MOD_DUMMY_LAST = 2, }; -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; +enum fman_intr_type { + FMAN_INTR_TYPE_ERR = 0, + FMAN_INTR_TYPE_NORMAL = 1, }; -enum pcie_kirin_phy_type { - PCIE_KIRIN_INTERNAL_PHY = 0, - PCIE_KIRIN_EXTERNAL_PHY = 1, +enum fman_inter_module_event { + FMAN_EV_ERR_MAC0 = 0, + FMAN_EV_ERR_MAC1 = 1, + FMAN_EV_ERR_MAC2 = 2, + FMAN_EV_ERR_MAC3 = 3, + FMAN_EV_ERR_MAC4 = 4, + FMAN_EV_ERR_MAC5 = 5, + FMAN_EV_ERR_MAC6 = 6, + FMAN_EV_ERR_MAC7 = 7, + FMAN_EV_ERR_MAC8 = 8, + FMAN_EV_ERR_MAC9 = 9, + FMAN_EV_MAC0 = 10, + FMAN_EV_MAC1 = 11, + FMAN_EV_MAC2 = 12, + FMAN_EV_MAC3 = 13, + FMAN_EV_MAC4 = 14, + FMAN_EV_MAC5 = 15, + FMAN_EV_MAC6 = 16, + FMAN_EV_MAC7 = 17, + FMAN_EV_MAC8 = 18, + FMAN_EV_MAC9 = 19, + FMAN_EV_FMAN_CTRL_0 = 20, + FMAN_EV_FMAN_CTRL_1 = 21, + FMAN_EV_FMAN_CTRL_2 = 22, + FMAN_EV_FMAN_CTRL_3 = 23, + FMAN_EV_CNT = 24, }; -struct kirin_pcie_data { - enum pcie_kirin_phy_type phy_type; +enum fman_port_type { + FMAN_PORT_TYPE_TX = 0, + FMAN_PORT_TYPE_RX = 1, }; -struct kirin_pcie { - enum pcie_kirin_phy_type type; - struct dw_pcie *pci; - struct regmap *apb; - struct phy *phy; - void *phy_priv; - int gpio_id_dwc_perst; - int num_slots; - int gpio_id_reset[3]; - const char *reset_names[3]; - int n_gpio_clkreq; - int gpio_id_clkreq[3]; - const char *clkreq_names[3]; +struct fman_fpm_regs { + u32 fmfp_tnc; + u32 fmfp_prc; + u32 fmfp_brkc; + u32 fmfp_mxd; + u32 fmfp_dist1; + u32 fmfp_dist2; + u32 fm_epi; + u32 fm_rie; + u32 fmfp_fcev[4]; + u32 res0030[4]; + u32 fmfp_cee[4]; + u32 res0050[4]; + u32 fmfp_tsc1; + u32 fmfp_tsc2; + u32 fmfp_tsp; + u32 fmfp_tsf; + u32 fm_rcr; + u32 fmfp_extc; + u32 fmfp_ext1; + u32 fmfp_ext2; + u32 fmfp_drd[16]; + u32 fmfp_dra; + u32 fm_ip_rev_1; + u32 fm_ip_rev_2; + u32 fm_rstc; + u32 fm_cld; + u32 fm_npi; + u32 fmfp_exte; + u32 fmfp_ee; + u32 fmfp_cev[4]; + u32 res00f0[4]; + u32 fmfp_ps[50]; + u32 res01c8[14]; + u32 fmfp_clfabc; + u32 fmfp_clfcc; + u32 fmfp_clfaval; + u32 fmfp_clfbval; + u32 fmfp_clfcval; + u32 fmfp_clfamsk; + u32 fmfp_clfbmsk; + u32 fmfp_clfcmsk; + u32 fmfp_clfamc; + u32 fmfp_clfbmc; + u32 fmfp_clfcmc; + u32 fmfp_decceh; + u32 res0230[116]; + u32 fmfp_ts[128]; + u32 res0600[640]; }; -struct hi3660_pcie_phy { - struct device *dev; - void *base; - struct regmap *crgctrl; - struct regmap *sysctrl; - struct clk *apb_sys_clk; - struct clk *apb_phy_clk; - struct clk *phy_ref_clk; - struct clk *aclk; - struct clk *aux_clk; +struct fman_bmi_regs { + u32 fmbm_init; + u32 fmbm_cfg1; + u32 fmbm_cfg2; + u32 res000c[5]; + u32 fmbm_ievr; + u32 fmbm_ier; + u32 fmbm_ifr; + u32 res002c[5]; + u32 fmbm_arb[8]; + u32 res0060[12]; + u32 fmbm_dtc[3]; + u32 res009c; + u32 fmbm_dcv[12]; + u32 fmbm_dcm[12]; + u32 fmbm_gde; + u32 fmbm_pp[63]; + u32 res0200; + u32 fmbm_pfs[63]; + u32 res0300; + u32 fmbm_spliodn[63]; }; -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 fman_qmi_regs { + u32 fmqm_gc; + u32 res0004; + u32 fmqm_eie; + u32 fmqm_eien; + u32 fmqm_eif; + u32 fmqm_ie; + u32 fmqm_ien; + u32 fmqm_if; + u32 fmqm_gs; + u32 fmqm_ts; + u32 fmqm_etfc; + u32 fmqm_dtfc; + u32 fmqm_dc0; + u32 fmqm_dc1; + u32 fmqm_dc2; + u32 fmqm_dc3; + u32 fmqm_dfdc; + u32 fmqm_dfcc; + u32 fmqm_dffc; + u32 fmqm_dcc; + u32 res0050[7]; + u32 fmqm_tapc; + u32 fmqm_dmcvc; + u32 fmqm_difdcc; + u32 fmqm_da1v; + u32 res007c; + u32 fmqm_dtc; + u32 fmqm_efddd; + u32 res0088[2]; + struct { + u32 fmqm_dtcfg1; + u32 fmqm_dtval1; + u32 fmqm_dtm1; + u32 fmqm_dtc1; + u32 fmqm_dtcfg2; + u32 fmqm_dtval2; + u32 fmqm_dtm2; + u32 res001c; + } dbg_traps[3]; + u8 res00f0[784]; }; -struct acpi_data_node { - const char *name; - acpi_handle handle; - struct fwnode_handle fwnode; - struct fwnode_handle *parent; - struct acpi_device_data data; - struct list_head sibling; - struct kobject kobj; - struct completion kobj_done; +struct fman_dma_regs { + u32 fmdmsr; + u32 fmdmmr; + u32 fmdmtr; + u32 fmdmhy; + u32 fmdmsetr; + u32 fmdmtah; + u32 fmdmtal; + u32 fmdmtcid; + u32 fmdmra; + u32 fmdmrd; + u32 fmdmwcr; + u32 fmdmebcr; + u32 fmdmccqdr; + u32 fmdmccqvr1; + u32 fmdmccqvr2; + u32 fmdmcqvr3; + u32 fmdmcqvr4; + u32 fmdmcqvr5; + u32 fmdmsefrc; + u32 fmdmsqfrc; + u32 fmdmssrc; + u32 fmdmdcr; + u32 fmdmemsr; + u32 res005c; + u32 fmdmplr[32]; + u32 res00e0[968]; }; -struct acpi_reg_walk_info { - u32 function; - u32 reg_run_count; - acpi_adr_space_type space_id; +struct fman_hwp_regs { + u32 res0000[529]; + u32 fmprrpimac; + u32 res[494]; }; -struct acpi_pcc_info { - u8 subspace_id; - u16 length; - u8 *internal_buffer; +struct fman_rev_info { + u8 major; + u8 minor; }; -struct acpi_ffh_info { - u64 offset; - u64 length; +struct fman_state_struct { + u8 fm_id; + u16 fm_clk_freq; + struct fman_rev_info rev_info; + bool enabled_time_stamp; + u8 count1_micro_bit; + u8 total_num_of_tasks; + u8 accumulated_num_of_tasks; + u32 accumulated_fifo_size; + u8 accumulated_num_of_open_dmas; + u8 accumulated_num_of_deq_tnums; + u32 exceptions; + u32 extra_fifo_pool_size; + u8 extra_tasks_pool_size; + u8 extra_open_dmas_pool_size; + u16 port_mfl[10]; + u16 mac_mfl[10]; + u32 fm_iram_size; + u32 dma_thresh_max_commq; + u32 dma_thresh_max_buf; + u32 max_num_of_open_dmas; + u32 qmi_max_num_of_tnums; + u32 qmi_def_tnums_thresh; + u32 bmi_max_num_of_tasks; + u32 bmi_max_fifo_size; + u32 fm_port_num_of_cg; + u32 num_of_rx_ports; + u32 total_fifo_size; + u32 qman_channel_base; + u32 num_of_qman_channels; + struct resource *res; }; -struct acpi_hest_generic; - -struct ghes_estatus_cache { - u32 estatus_len; - atomic_t count; - struct acpi_hest_generic *generic; - unsigned long long time_in; - struct callback_head rcu; +struct fman_cfg { + u8 disp_limit_tsh; + u8 prs_disp_tsh; + u8 plcr_disp_tsh; + u8 kg_disp_tsh; + u8 bmi_disp_tsh; + u8 qmi_enq_disp_tsh; + u8 qmi_deq_disp_tsh; + u8 fm_ctl1_disp_tsh; + u8 fm_ctl2_disp_tsh; + int dma_cache_override; + enum fman_dma_aid_mode dma_aid_mode; + u32 dma_axi_dbg_num_of_beats; + u32 dma_cam_num_of_entries; + u32 dma_watchdog; + u8 dma_comm_qtsh_asrt_emer; + u32 dma_write_buf_tsh_asrt_emer; + u32 dma_read_buf_tsh_asrt_emer; + u8 dma_comm_qtsh_clr_emer; + u32 dma_write_buf_tsh_clr_emer; + u32 dma_read_buf_tsh_clr_emer; + u32 dma_sos_emergency; + int dma_dbg_cnt_mode; + int catastrophic_err; + int dma_err; + u32 exceptions; + u16 clk_freq; + u32 cam_base_addr; + u32 fifo_base_addr; + u32 total_fifo_size; + u32 total_num_of_tasks; + u32 qmi_def_tnums_thresh; }; -struct acpi_hest_header { - u16 type; - u16 source_id; +struct fman_iram_regs { + u32 iadd; + u32 idata; + u32 itcfg; + u32 iready; }; -struct acpi_hest_notify { - u8 type; - u8 length; - u16 config_write_enable; - u32 poll_interval; - u32 vector; - u32 polling_threshold_value; - u32 polling_threshold_window; - u32 error_threshold_value; - u32 error_threshold_window; +struct fman_port_init_params { + u8 port_id; + enum fman_port_type port_type; + u16 port_speed; + u16 liodn_offset; + u8 num_of_tasks; + u8 num_of_extra_tasks; + u8 num_of_open_dmas; + u8 num_of_extra_open_dmas; + u32 size_of_fifo; + u32 extra_size_of_fifo; + u8 deq_pipeline_depth; + u16 max_frame_length; + u16 liodn_base; }; -struct acpi_hest_generic { - struct acpi_hest_header header; - u16 related_source_id; - u8 reserved; - u8 enabled; - u32 records_to_preallocate; - u32 max_sections_per_record; - u32 max_raw_data_length; - struct acpi_generic_address error_status_address; - struct acpi_hest_notify notify; - u32 error_block_length; +struct enetc_mdio_priv { + struct enetc_hw *hw; + int mdio_base; }; -enum hest_status { - HEST_ENABLED = 0, - HEST_DISABLED = 1, - HEST_NOT_FOUND = 2, +struct e1000_stats { + char stat_string[32]; + int type; + int sizeof_stat; + int stat_offset; }; enum { - GHES_SEV_NO = 0, - GHES_SEV_CORRECTED = 1, - GHES_SEV_RECOVERABLE = 2, - GHES_SEV_PANIC = 3, + NETDEV_STATS = 0, + E1000_STATS = 1, }; -enum acpi_hest_types { - ACPI_HEST_TYPE_IA32_CHECK = 0, - ACPI_HEST_TYPE_IA32_CORRECTED_CHECK = 1, - ACPI_HEST_TYPE_IA32_NMI = 2, - ACPI_HEST_TYPE_NOT_USED3 = 3, - ACPI_HEST_TYPE_NOT_USED4 = 4, - ACPI_HEST_TYPE_NOT_USED5 = 5, - ACPI_HEST_TYPE_AER_ROOT_PORT = 6, - ACPI_HEST_TYPE_AER_ENDPOINT = 7, - ACPI_HEST_TYPE_AER_BRIDGE = 8, - ACPI_HEST_TYPE_GENERIC_ERROR = 9, - ACPI_HEST_TYPE_GENERIC_ERROR_V2 = 10, - ACPI_HEST_TYPE_IA32_DEFERRED_CHECK = 11, - ACPI_HEST_TYPE_RESERVED = 12, -}; +struct ave_private; -enum acpi_hest_notify_types { - ACPI_HEST_NOTIFY_POLLED = 0, - ACPI_HEST_NOTIFY_EXTERNAL = 1, - ACPI_HEST_NOTIFY_LOCAL = 2, - ACPI_HEST_NOTIFY_SCI = 3, - ACPI_HEST_NOTIFY_NMI = 4, - ACPI_HEST_NOTIFY_CMCI = 5, - ACPI_HEST_NOTIFY_MCE = 6, - ACPI_HEST_NOTIFY_GPIO = 7, - ACPI_HEST_NOTIFY_SEA = 8, - ACPI_HEST_NOTIFY_SEI = 9, - ACPI_HEST_NOTIFY_GSIV = 10, - ACPI_HEST_NOTIFY_SOFTWARE_DELEGATED = 11, - ACPI_HEST_NOTIFY_RESERVED = 12, +struct ave_soc_data { + bool is_desc_64bit; + const char *clock_names[4]; + const char *reset_names[2]; + int (*get_pinmode)(struct ave_private *, phy_interface_t, u32); }; -struct acpi_hest_generic_v2; - -struct acpi_hest_generic_status; - -struct ghes { - union { - struct acpi_hest_generic *generic; - struct acpi_hest_generic_v2 *generic_v2; - }; - struct acpi_hest_generic_status *estatus; - unsigned long flags; - union { - struct list_head list; - struct timer_list timer; - unsigned int irq; - }; - struct device *dev; - struct list_head elist; +struct ave_stats { + struct u64_stats_sync syncp; + u64 packets; + u64 bytes; + u64 errors; + u64 dropped; + u64 collisions; + u64 fifo_errors; }; -struct acpi_hest_generic_v2 { - struct acpi_hest_header header; - u16 related_source_id; - u8 reserved; - u8 enabled; - u32 records_to_preallocate; - u32 max_sections_per_record; - u32 max_raw_data_length; - struct acpi_generic_address error_status_address; - struct acpi_hest_notify notify; - u32 error_block_length; - struct acpi_generic_address read_ack_register; - u64 read_ack_preserve; - u64 read_ack_write; -} __attribute__((packed)); - -struct acpi_hest_generic_status { - u32 block_status; - u32 raw_data_offset; - u32 raw_data_length; - u32 data_length; - u32 error_severity; -}; +struct ave_desc; -struct ghes_estatus_node { - struct llist_node llnode; - struct acpi_hest_generic *generic; - struct ghes *ghes; - int task_work_cpu; - struct callback_head task_work; +struct ave_desc_info { + u32 ndesc; + u32 daddr; + u32 proc_idx; + u32 done_idx; + struct ave_desc *desc; }; -struct acpi_hest_generic_data { - u8 section_type[16]; - u32 error_severity; - u16 revision; - u8 validation_bits; - u8 flags; - u32 error_data_length; - u8 fru_id[16]; - u8 fru_text[20]; +struct ave_private { + void *base; + int irq; + int phy_id; + unsigned int desc_size; + u32 msg_enable; + int nclks; + struct clk *clk[4]; + int nrsts; + struct reset_control *rst[2]; + phy_interface_t phy_mode; + struct phy_device *phydev; + struct mii_bus *mdio; + struct regmap *regmap; + unsigned int pinmode_mask; + unsigned int pinmode_val; + u32 wolopts; + struct ave_stats stats_rx; + struct ave_stats stats_tx; + struct net_device *ndev; + struct napi_struct napi_rx; + struct napi_struct napi_tx; + struct ave_desc_info rx; + struct ave_desc_info tx; + int pause_auto; + int pause_rx; + int pause_tx; + const struct ave_soc_data *data; }; -struct acpi_hest_generic_data_v300 { - u8 section_type[16]; - u32 error_severity; - u16 revision; - u8 validation_bits; - u8 flags; - u32 error_data_length; - u8 fru_id[16]; - u8 fru_text[20]; - u64 time_stamp; +struct ave_desc { + struct sk_buff *skbs; + dma_addr_t skbs_dma; + size_t skbs_dmalen; }; -struct cper_arm_err_info { - u8 version; - u8 length; - u16 validation_bits; - u8 type; - u16 multiple_error; - u8 flags; - u64 error_info; - u64 virt_fault_addr; - u64 physical_fault_addr; -} __attribute__((packed)); - -struct ghes_vendor_record_entry { - struct work_struct work; - int error_severity; - char vendor_record[0]; +enum desc_id { + AVE_DESCID_RX = 0, + AVE_DESCID_TX = 1, }; -struct cper_sec_mem_err { - u64 validation_bits; - u64 error_status; - u64 physical_addr; - u64 physical_addr_mask; - u16 node; - u16 card; - u16 module; - u16 bank; - u16 device; - u16 row; - u16 column; - u16 bit_pos; - u64 requestor_id; - u64 responder_id; - u64 target_id; - u8 error_type; - u8 extended; - u16 rank; - u16 mem_array_handle; - u16 mem_dev_handle; +enum desc_state { + AVE_DESC_RX_PERMIT = 0, + AVE_DESC_RX_SUSPEND = 1, + AVE_DESC_START = 2, + AVE_DESC_STOP = 3, }; -struct cper_sec_pcie { - u64 validation_bits; - u32 port_type; - struct { - u8 minor; - u8 major; - u8 reserved[2]; - } version; - u16 command; - u16 status; - u32 reserved; - struct { - u16 vendor_id; - u16 device_id; - u8 class_code[3]; - u8 function; - u8 device; - u16 segment; - u8 bus; - u8 secondary_bus; - u16 slot; - u8 reserved; - } __attribute__((packed)) device_id; - struct { - u32 lower; - u32 upper; - } serial_number; - struct { - u16 secondary_status; - u16 control; - } bridge; - u8 capability[60]; - u8 aer_info[96]; +struct usb_dev_cap_header { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; }; -struct cper_sec_proc_arm { - u32 validation_bits; - u16 err_info_num; - u16 context_info_num; - u32 section_length; - u8 affinity_level; - u8 reserved[3]; - u64 mpidr; - u64 midr; - u32 running_state; - u32 psci_state; +struct usb_descriptor_header { + __u8 bLength; + __u8 bDescriptorType; }; -enum rs9_model { - RENESAS_9FGV0241 = 0, - RENESAS_9FGV0441 = 1, +struct phy_devm { + struct usb_phy *phy; + struct notifier_block *nb; }; -struct rs9_chip_info { - const enum rs9_model model; - unsigned int num_clks; - u8 did; -}; +struct dwc3_meson_g12a; -struct rs9_driver_data { - struct i2c_client *client; - struct regmap *regmap; - const struct rs9_chip_info *chip_info; - struct clk_hw *clk_dif[4]; - u8 pll_amplitude; - u8 pll_ssc; - u8 clk_dif_sr; +struct dwc3_meson_g12a_drvdata { + bool otg_phy_host_port_disable; + struct clk_bulk_data *clks; + int num_clks; + const char * const *phy_names; + int num_phys; + int (*setup_regmaps)(struct dwc3_meson_g12a *, void *); + int (*usb2_init_phy)(struct dwc3_meson_g12a *, int, enum phy_mode); + int (*set_phy_mode)(struct dwc3_meson_g12a *, int, enum phy_mode); + int (*usb_init)(struct dwc3_meson_g12a *); + int (*usb_post_init)(struct dwc3_meson_g12a *); }; -struct clk_fixup_mux { - struct clk_mux mux; - const struct clk_ops *ops; - void (*fixup)(u32 *); +struct dwc3_meson_g12a { + struct device *dev; + struct regmap *u2p_regmap[3]; + struct regmap *usb_glue_regmap; + struct reset_control *reset; + struct phy *phys[3]; + enum usb_dr_mode otg_mode; + enum phy_mode otg_phy_mode; + unsigned int usb2_ports; + unsigned int usb3_ports; + struct regulator *vbus; + struct usb_role_switch_desc switch_desc; + struct usb_role_switch *role_switch; + const struct dwc3_meson_g12a_drvdata *drvdata; }; -struct imx93_clk_gate { - struct clk_hw hw; - void *reg; - u32 bit_idx; - u32 val; - u32 mask; - spinlock_t *lock; - unsigned int *share_count; +struct isp1760_memory_layout { + unsigned int blocks[3]; + unsigned int blocks_size[3]; + unsigned int slot_num; + unsigned int payload_blocks; + unsigned int payload_area_size; }; -struct meson_clk_cpu_dyndiv_data { - struct parm div; - struct parm dyn; +enum isp1760_ctrl_state { + ISP1760_CTRL_SETUP = 0, + ISP1760_CTRL_DATA_IN = 1, + ISP1760_CTRL_DATA_OUT = 2, + ISP1760_CTRL_STATUS = 3, }; -struct pll_config { - u16 l; - u32 m; - u32 n; - u32 vco_val; - u32 vco_mask; - u32 pre_div_val; - u32 pre_div_mask; - u32 post_div_val; - u32 post_div_mask; - u32 mn_ena_mask; - u32 main_output_mask; - u32 aux_output_mask; +enum isp176x_host_controller_fields { + PORT_OWNER = 0, + PORT_POWER = 1, + PORT_LSTATUS = 2, + PORT_RESET = 3, + PORT_SUSPEND = 4, + PORT_RESUME = 5, + PORT_PE = 6, + PORT_CSC = 7, + PORT_CONNECT = 8, + HCS_PPC = 9, + HCS_N_PORTS = 10, + HCC_ISOC_CACHE = 11, + HCC_ISOC_THRES = 12, + CMD_LRESET = 13, + CMD_RESET = 14, + CMD_RUN = 15, + STS_PCD = 16, + HC_FRINDEX = 17, + FLAG_CF = 18, + HC_ISO_PTD_DONEMAP = 19, + HC_ISO_PTD_SKIPMAP = 20, + HC_ISO_PTD_LASTPTD = 21, + HC_INT_PTD_DONEMAP = 22, + HC_INT_PTD_SKIPMAP = 23, + HC_INT_PTD_LASTPTD = 24, + HC_ATL_PTD_DONEMAP = 25, + HC_ATL_PTD_SKIPMAP = 26, + HC_ATL_PTD_LASTPTD = 27, + ALL_ATX_RESET = 28, + HW_ANA_DIGI_OC = 29, + HW_DEV_DMA = 30, + HW_COMN_IRQ = 31, + HW_COMN_DMA = 32, + HW_DATA_BUS_WIDTH = 33, + HW_DACK_POL_HIGH = 34, + HW_DREQ_POL_HIGH = 35, + HW_INTR_HIGH_ACT = 36, + HW_INTF_LOCK = 37, + HW_INTR_EDGE_TRIG = 38, + HW_GLOBAL_INTR_EN = 39, + HC_CHIP_ID_HIGH = 40, + HC_CHIP_ID_LOW = 41, + HC_CHIP_REV = 42, + HC_SCRATCH = 43, + SW_RESET_RESET_ATX = 44, + SW_RESET_RESET_HC = 45, + SW_RESET_RESET_ALL = 46, + ISO_BUF_FILL = 47, + INT_BUF_FILL = 48, + ATL_BUF_FILL = 49, + MEM_BANK_SEL = 50, + MEM_START_ADDR = 51, + HC_DATA = 52, + HC_INTERRUPT = 53, + HC_INT_IRQ_ENABLE = 54, + HC_ATL_IRQ_ENABLE = 55, + HC_ISO_IRQ_MASK_OR = 56, + HC_INT_IRQ_MASK_OR = 57, + HC_ATL_IRQ_MASK_OR = 58, + HC_ISO_IRQ_MASK_AND = 59, + HC_INT_IRQ_MASK_AND = 60, + HC_ATL_IRQ_MASK_AND = 61, + HW_OTG_DISABLE = 62, + HW_SW_SEL_HC_DC = 63, + HW_VBUS_DRV = 64, + HW_SEL_CP_EXT = 65, + HW_DM_PULLDOWN = 66, + HW_DP_PULLDOWN = 67, + HW_DP_PULLUP = 68, + HW_HC_2_DIS = 69, + HW_OTG_DISABLE_CLEAR = 70, + HW_SW_SEL_HC_DC_CLEAR = 71, + HW_VBUS_DRV_CLEAR = 72, + HW_SEL_CP_EXT_CLEAR = 73, + HW_DM_PULLDOWN_CLEAR = 74, + HW_DP_PULLDOWN_CLEAR = 75, + HW_DP_PULLUP_CLEAR = 76, + HW_HC_2_DIS_CLEAR = 77, + HC_FIELD_MAX = 78, }; -struct visconti_reset_data; - -struct visconti_reset { - struct reset_controller_dev rcdev; - struct regmap *regmap; - const struct visconti_reset_data *resets; - spinlock_t *lock; +enum isp176x_device_controller_fields { + DC_DEVEN = 0, + DC_DEVADDR = 1, + DC_VBUSSTAT = 2, + DC_SFRESET = 3, + DC_GLINTENA = 4, + DC_CDBGMOD_ACK = 5, + DC_DDBGMODIN_ACK = 6, + DC_DDBGMODOUT_ACK = 7, + DC_INTPOL = 8, + DC_IEPRXTX_7 = 9, + DC_IEPRXTX_6 = 10, + DC_IEPRXTX_5 = 11, + DC_IEPRXTX_4 = 12, + DC_IEPRXTX_3 = 13, + DC_IEPRXTX_2 = 14, + DC_IEPRXTX_1 = 15, + DC_IEPRXTX_0 = 16, + DC_IEP0SETUP = 17, + DC_IEVBUS = 18, + DC_IEHS_STA = 19, + DC_IERESM = 20, + DC_IESUSP = 21, + DC_IEBRST = 22, + DC_EP0SETUP = 23, + DC_ENDPIDX = 24, + DC_EPDIR = 25, + DC_CLBUF = 26, + DC_VENDP = 27, + DC_DSEN = 28, + DC_STATUS = 29, + DC_STALL = 30, + DC_BUFLEN = 31, + DC_FFOSZ = 32, + DC_EPENABLE = 33, + DC_ENDPTYP = 34, + DC_FRAMENUM = 35, + DC_UFRAMENUM = 36, + DC_CHIP_ID_HIGH = 37, + DC_CHIP_ID_LOW = 38, + DC_SCRATCH = 39, + DC_FIELD_MAX = 40, }; -struct visconti_reset_data { - u32 rson_offset; - u32 rsoff_offset; - u8 rs_idx; +struct isp1760_memory_chunk { + unsigned int start; + unsigned int size; + unsigned int free; }; -enum { - APPLE_RTKIT_PWR_STATE_OFF = 0, - APPLE_RTKIT_PWR_STATE_SLEEP = 1, - APPLE_RTKIT_PWR_STATE_IDLE = 513, - APPLE_RTKIT_PWR_STATE_QUIESCED = 16, - APPLE_RTKIT_PWR_STATE_ON = 32, -}; +struct regmap_field; -enum { - APPLE_RTKIT_MGMT_HELLO = 1, - APPLE_RTKIT_MGMT_HELLO_REPLY = 2, - APPLE_RTKIT_MGMT_STARTEP = 5, - APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE = 6, - APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE_ACK = 7, - APPLE_RTKIT_MGMT_EPMAP = 8, - APPLE_RTKIT_MGMT_EPMAP_REPLY = 8, - APPLE_RTKIT_MGMT_SET_AP_PWR_STATE = 11, - APPLE_RTKIT_MGMT_SET_AP_PWR_STATE_ACK = 11, -}; +struct isp1760_slotinfo; -enum { - APPLE_RTKIT_EP_MGMT = 0, - APPLE_RTKIT_EP_CRASHLOG = 1, - APPLE_RTKIT_EP_SYSLOG = 2, - APPLE_RTKIT_EP_DEBUG = 3, - APPLE_RTKIT_EP_IOREPORT = 4, - APPLE_RTKIT_EP_OSLOG = 8, +struct isp1760_hcd { + struct usb_hcd *hcd; + void *base; + struct regmap *regs; + struct regmap_field *fields[78]; + bool is_isp1763; + const struct isp1760_memory_layout *memory_layout; + spinlock_t lock; + struct isp1760_slotinfo *atl_slots; + int atl_done_map; + struct isp1760_slotinfo *int_slots; + int int_done_map; + struct isp1760_memory_chunk memory_pool[56]; + struct list_head qh_list[3]; + unsigned int periodic_size; + unsigned int i_thresh; + unsigned long reset_done; + unsigned long next_statechange; }; -struct apple_rtkit_shmem { - void *buffer; - void *iomem; - size_t size; - dma_addr_t iova; - bool is_mapped; - void *private; -}; +struct isp1760_qh; -struct apple_rtkit_ops; +struct isp1760_qtd; -struct apple_rtkit { - void *cookie; - const struct apple_rtkit_ops *ops; - struct device *dev; - const char *mbox_name; - int mbox_idx; - struct mbox_client mbox_cl; - struct mbox_chan *mbox_chan; - struct completion epmap_completion; - struct completion iop_pwr_ack_completion; - struct completion ap_pwr_ack_completion; - int boot_result; - int version; - unsigned int iop_power_state; - unsigned int ap_power_state; - bool crashed; - unsigned long endpoints[4]; - struct apple_rtkit_shmem ioreport_buffer; - struct apple_rtkit_shmem crashlog_buffer; - struct apple_rtkit_shmem syslog_buffer; - char *syslog_msg_buffer; - size_t syslog_n_entries; - size_t syslog_msg_size; - struct workqueue_struct *wq; +struct isp1760_slotinfo { + struct isp1760_qh *qh; + struct isp1760_qtd *qtd; + unsigned long timestamp; }; -struct apple_rtkit_ops { - void (*crashed)(void *); - void (*recv_message)(void *, u8, u64); - bool (*recv_message_early)(void *, u8, u64); - int (*shmem_setup)(void *, struct apple_rtkit_shmem *); - void (*shmem_destroy)(void *, struct apple_rtkit_shmem *); -}; +struct isp1760_udc; -struct apple_rtkit_rx_work { - struct apple_rtkit *rtk; - u8 ep; - u64 msg; - struct work_struct work; +struct isp1760_ep { + struct isp1760_udc *udc; + struct usb_ep ep; + struct list_head queue; + unsigned int addr; + unsigned int maxpacket; + char name[7]; + const struct usb_endpoint_descriptor *desc; + bool rx_pending; + bool halted; + bool wedged; }; -struct apple_rtkit_msg { - struct completion *completion; - struct apple_mbox_msg mbox_msg; -}; +struct isp1760_device; -struct regulator_coupler { - struct list_head list; - int (*attach_regulator)(struct regulator_coupler *, struct regulator_dev *); - int (*detach_regulator)(struct regulator_coupler *, struct regulator_dev *); - int (*balance_voltage)(struct regulator_coupler *, struct regulator_dev *, suspend_state_t); +struct isp1760_udc { + struct isp1760_device *isp; + int irq; + char *irqname; + struct regmap *regs; + struct regmap_field *fields[40]; + struct usb_gadget_driver *driver; + struct usb_gadget gadget; + spinlock_t lock; + struct timer_list vbus_timer; + struct isp1760_ep ep[15]; + enum isp1760_ctrl_state ep0_state; + u8 ep0_dir; + u16 ep0_length; + bool connected; + bool is_isp1763; + unsigned int devstatus; }; -struct mediatek_regulator_coupler { - struct regulator_coupler coupler; - struct regulator_dev *vsram_rdev; +struct isp1760_device { + struct device *dev; + unsigned int devflags; + struct gpio_desc *rst_gpio; + struct isp1760_hcd hcd; + struct isp1760_udc udc; }; -struct evtchn_loop_ctrl; - -struct evtchn_ops { - unsigned int (*max_channels)(); - unsigned int (*nr_channels)(); - int (*setup)(evtchn_port_t); - void (*remove)(evtchn_port_t, unsigned int); - void (*bind_to_cpu)(evtchn_port_t, unsigned int, unsigned int); - void (*clear_pending)(evtchn_port_t); - void (*set_pending)(evtchn_port_t); - bool (*is_pending)(evtchn_port_t); - void (*mask)(evtchn_port_t); - void (*unmask)(evtchn_port_t); - void (*handle_events)(unsigned int, struct evtchn_loop_ctrl *); - void (*resume)(); - int (*percpu_init)(unsigned int); - int (*percpu_deinit)(unsigned int); +struct exynos_ehci_hcd { + struct clk *clk; + struct device_node *of_node; + struct phy *phy[3]; + bool legacy_phy; }; -struct evtchn_unmask { - evtchn_port_t port; +struct alps_protocol_info { + u16 version; + u8 byte0; + u8 mask0; + unsigned int flags; }; -enum { - REGULATOR_ERROR_CLEARED = 0, - REGULATOR_FAILED_RETRY = 1, - REGULATOR_ERROR_ON = 2, +struct alps_model_info { + u8 signature[3]; + struct alps_protocol_info protocol_info; }; -struct regulator_irq { - struct regulator_irq_data rdata; - struct regulator_irq_desc desc; - int irq; - int retry_cnt; - struct delayed_work isr_work; +struct alps_nibble_commands { + int command; + unsigned char data; }; -struct reset_control { - struct reset_controller_dev *rcdev; - struct list_head list; - unsigned int id; - struct kref refcnt; - bool acquired; - bool shared; - bool array; - atomic_t deassert_count; - atomic_t triggered_count; +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, }; -struct reset_control_array { - struct reset_control base; - unsigned int num_rstcs; - struct reset_control *rstc[0]; +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 reset_control_lookup { - struct list_head list; - const char *provider; - unsigned int index; - const char *dev_id; - const char *con_id; +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 reset_control_bulk_devres { - int num_rstcs; - struct reset_control_bulk_data *rstcs; -}; - -struct qcom_geni_private_data { - struct uart_driver *drv; - u32 poll_cached_bytes; - unsigned int poll_cached_bytes_cnt; - u32 write_cached_bytes; - unsigned int write_cached_bytes_cnt; +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 qcom_geni_device_data; +struct alps_bitmap_point { + int start_bit; + int num_bits; +}; -struct qcom_geni_serial_port { - struct uart_port uport; - struct geni_se se; - const char *name; - u32 tx_fifo_depth; - u32 tx_fifo_width; - u32 rx_fifo_depth; - dma_addr_t tx_dma_addr; - dma_addr_t rx_dma_addr; - bool setup; - unsigned int baud; - unsigned long clk_rate; - void *rx_buf; - u32 loopback; - bool brk; - unsigned int tx_remaining; - int wakeup_irq; - bool rx_tx_swap; - bool cts_rts_swap; - struct qcom_geni_private_data private_data; - const struct qcom_geni_device_data *dev_data; +enum lpi2c_imx_mode { + STANDARD = 0, + FAST = 1, + FAST_PLUS = 2, + HS = 3, + ULTRA_FAST = 4, }; -struct qcom_geni_device_data { - bool console; - enum geni_se_xfer_mode mode; +enum lpi2c_imx_pincfg { + TWO_PIN_OD = 0, + TWO_PIN_OO = 1, + TWO_PIN_PP = 2, + FOUR_PIN_PP = 3, }; -enum geni_icc_path_index { - GENI_TO_CORE = 0, - CPU_TO_GENI = 1, - GENI_TO_DDR = 2, +struct lpi2c_imx_struct { + struct i2c_adapter adapter; + int num_clks; + struct clk_bulk_data *clks; + void *base; + __u8 *rx_buf; + __u8 *tx_buf; + struct completion complete; + unsigned int msglen; + unsigned int delivered; + unsigned int block_data; + unsigned int bitrate; + unsigned int txfifosize; + unsigned int rxfifosize; + enum lpi2c_imx_mode mode; }; -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, +struct kvm_ptp_clock { + struct ptp_clock *ptp_clock; + struct ptp_clock_info caps; }; -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, +struct system_counterval_t { + u64 cycles; + struct clocksource *cs; }; -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 regfield_ids { + VER_MAJOR = 0, + VER_MINOR = 1, + VER_STEP = 2, + TSENS_EN = 3, + TSENS_SW_RST = 4, + SENSOR_EN = 5, + CODE_OR_TEMP = 6, + TRDY = 7, + INT_EN = 8, + LAST_TEMP_0 = 9, + LAST_TEMP_1 = 10, + LAST_TEMP_2 = 11, + LAST_TEMP_3 = 12, + LAST_TEMP_4 = 13, + LAST_TEMP_5 = 14, + LAST_TEMP_6 = 15, + LAST_TEMP_7 = 16, + LAST_TEMP_8 = 17, + LAST_TEMP_9 = 18, + LAST_TEMP_10 = 19, + LAST_TEMP_11 = 20, + LAST_TEMP_12 = 21, + LAST_TEMP_13 = 22, + LAST_TEMP_14 = 23, + LAST_TEMP_15 = 24, + VALID_0 = 25, + VALID_1 = 26, + VALID_2 = 27, + VALID_3 = 28, + VALID_4 = 29, + VALID_5 = 30, + VALID_6 = 31, + VALID_7 = 32, + VALID_8 = 33, + VALID_9 = 34, + VALID_10 = 35, + VALID_11 = 36, + VALID_12 = 37, + VALID_13 = 38, + VALID_14 = 39, + VALID_15 = 40, + LOWER_STATUS_0 = 41, + LOWER_STATUS_1 = 42, + LOWER_STATUS_2 = 43, + LOWER_STATUS_3 = 44, + LOWER_STATUS_4 = 45, + LOWER_STATUS_5 = 46, + LOWER_STATUS_6 = 47, + LOWER_STATUS_7 = 48, + LOWER_STATUS_8 = 49, + LOWER_STATUS_9 = 50, + LOWER_STATUS_10 = 51, + LOWER_STATUS_11 = 52, + LOWER_STATUS_12 = 53, + LOWER_STATUS_13 = 54, + LOWER_STATUS_14 = 55, + LOWER_STATUS_15 = 56, + LOW_INT_STATUS_0 = 57, + LOW_INT_STATUS_1 = 58, + LOW_INT_STATUS_2 = 59, + LOW_INT_STATUS_3 = 60, + LOW_INT_STATUS_4 = 61, + LOW_INT_STATUS_5 = 62, + LOW_INT_STATUS_6 = 63, + LOW_INT_STATUS_7 = 64, + LOW_INT_STATUS_8 = 65, + LOW_INT_STATUS_9 = 66, + LOW_INT_STATUS_10 = 67, + LOW_INT_STATUS_11 = 68, + LOW_INT_STATUS_12 = 69, + LOW_INT_STATUS_13 = 70, + LOW_INT_STATUS_14 = 71, + LOW_INT_STATUS_15 = 72, + LOW_INT_CLEAR_0 = 73, + LOW_INT_CLEAR_1 = 74, + LOW_INT_CLEAR_2 = 75, + LOW_INT_CLEAR_3 = 76, + LOW_INT_CLEAR_4 = 77, + LOW_INT_CLEAR_5 = 78, + LOW_INT_CLEAR_6 = 79, + LOW_INT_CLEAR_7 = 80, + LOW_INT_CLEAR_8 = 81, + LOW_INT_CLEAR_9 = 82, + LOW_INT_CLEAR_10 = 83, + LOW_INT_CLEAR_11 = 84, + LOW_INT_CLEAR_12 = 85, + LOW_INT_CLEAR_13 = 86, + LOW_INT_CLEAR_14 = 87, + LOW_INT_CLEAR_15 = 88, + LOW_INT_MASK_0 = 89, + LOW_INT_MASK_1 = 90, + LOW_INT_MASK_2 = 91, + LOW_INT_MASK_3 = 92, + LOW_INT_MASK_4 = 93, + LOW_INT_MASK_5 = 94, + LOW_INT_MASK_6 = 95, + LOW_INT_MASK_7 = 96, + LOW_INT_MASK_8 = 97, + LOW_INT_MASK_9 = 98, + LOW_INT_MASK_10 = 99, + LOW_INT_MASK_11 = 100, + LOW_INT_MASK_12 = 101, + LOW_INT_MASK_13 = 102, + LOW_INT_MASK_14 = 103, + LOW_INT_MASK_15 = 104, + LOW_THRESH_0 = 105, + LOW_THRESH_1 = 106, + LOW_THRESH_2 = 107, + LOW_THRESH_3 = 108, + LOW_THRESH_4 = 109, + LOW_THRESH_5 = 110, + LOW_THRESH_6 = 111, + LOW_THRESH_7 = 112, + LOW_THRESH_8 = 113, + LOW_THRESH_9 = 114, + LOW_THRESH_10 = 115, + LOW_THRESH_11 = 116, + LOW_THRESH_12 = 117, + LOW_THRESH_13 = 118, + LOW_THRESH_14 = 119, + LOW_THRESH_15 = 120, + UPPER_STATUS_0 = 121, + UPPER_STATUS_1 = 122, + UPPER_STATUS_2 = 123, + UPPER_STATUS_3 = 124, + UPPER_STATUS_4 = 125, + UPPER_STATUS_5 = 126, + UPPER_STATUS_6 = 127, + UPPER_STATUS_7 = 128, + UPPER_STATUS_8 = 129, + UPPER_STATUS_9 = 130, + UPPER_STATUS_10 = 131, + UPPER_STATUS_11 = 132, + UPPER_STATUS_12 = 133, + UPPER_STATUS_13 = 134, + UPPER_STATUS_14 = 135, + UPPER_STATUS_15 = 136, + UP_INT_STATUS_0 = 137, + UP_INT_STATUS_1 = 138, + UP_INT_STATUS_2 = 139, + UP_INT_STATUS_3 = 140, + UP_INT_STATUS_4 = 141, + UP_INT_STATUS_5 = 142, + UP_INT_STATUS_6 = 143, + UP_INT_STATUS_7 = 144, + UP_INT_STATUS_8 = 145, + UP_INT_STATUS_9 = 146, + UP_INT_STATUS_10 = 147, + UP_INT_STATUS_11 = 148, + UP_INT_STATUS_12 = 149, + UP_INT_STATUS_13 = 150, + UP_INT_STATUS_14 = 151, + UP_INT_STATUS_15 = 152, + UP_INT_CLEAR_0 = 153, + UP_INT_CLEAR_1 = 154, + UP_INT_CLEAR_2 = 155, + UP_INT_CLEAR_3 = 156, + UP_INT_CLEAR_4 = 157, + UP_INT_CLEAR_5 = 158, + UP_INT_CLEAR_6 = 159, + UP_INT_CLEAR_7 = 160, + UP_INT_CLEAR_8 = 161, + UP_INT_CLEAR_9 = 162, + UP_INT_CLEAR_10 = 163, + UP_INT_CLEAR_11 = 164, + UP_INT_CLEAR_12 = 165, + UP_INT_CLEAR_13 = 166, + UP_INT_CLEAR_14 = 167, + UP_INT_CLEAR_15 = 168, + UP_INT_MASK_0 = 169, + UP_INT_MASK_1 = 170, + UP_INT_MASK_2 = 171, + UP_INT_MASK_3 = 172, + UP_INT_MASK_4 = 173, + UP_INT_MASK_5 = 174, + UP_INT_MASK_6 = 175, + UP_INT_MASK_7 = 176, + UP_INT_MASK_8 = 177, + UP_INT_MASK_9 = 178, + UP_INT_MASK_10 = 179, + UP_INT_MASK_11 = 180, + UP_INT_MASK_12 = 181, + UP_INT_MASK_13 = 182, + UP_INT_MASK_14 = 183, + UP_INT_MASK_15 = 184, + UP_THRESH_0 = 185, + UP_THRESH_1 = 186, + UP_THRESH_2 = 187, + UP_THRESH_3 = 188, + UP_THRESH_4 = 189, + UP_THRESH_5 = 190, + UP_THRESH_6 = 191, + UP_THRESH_7 = 192, + UP_THRESH_8 = 193, + UP_THRESH_9 = 194, + UP_THRESH_10 = 195, + UP_THRESH_11 = 196, + UP_THRESH_12 = 197, + UP_THRESH_13 = 198, + UP_THRESH_14 = 199, + UP_THRESH_15 = 200, + CRITICAL_STATUS_0 = 201, + CRITICAL_STATUS_1 = 202, + CRITICAL_STATUS_2 = 203, + CRITICAL_STATUS_3 = 204, + CRITICAL_STATUS_4 = 205, + CRITICAL_STATUS_5 = 206, + CRITICAL_STATUS_6 = 207, + CRITICAL_STATUS_7 = 208, + CRITICAL_STATUS_8 = 209, + CRITICAL_STATUS_9 = 210, + CRITICAL_STATUS_10 = 211, + CRITICAL_STATUS_11 = 212, + CRITICAL_STATUS_12 = 213, + CRITICAL_STATUS_13 = 214, + CRITICAL_STATUS_14 = 215, + CRITICAL_STATUS_15 = 216, + CRIT_INT_STATUS_0 = 217, + CRIT_INT_STATUS_1 = 218, + CRIT_INT_STATUS_2 = 219, + CRIT_INT_STATUS_3 = 220, + CRIT_INT_STATUS_4 = 221, + CRIT_INT_STATUS_5 = 222, + CRIT_INT_STATUS_6 = 223, + CRIT_INT_STATUS_7 = 224, + CRIT_INT_STATUS_8 = 225, + CRIT_INT_STATUS_9 = 226, + CRIT_INT_STATUS_10 = 227, + CRIT_INT_STATUS_11 = 228, + CRIT_INT_STATUS_12 = 229, + CRIT_INT_STATUS_13 = 230, + CRIT_INT_STATUS_14 = 231, + CRIT_INT_STATUS_15 = 232, + CRIT_INT_CLEAR_0 = 233, + CRIT_INT_CLEAR_1 = 234, + CRIT_INT_CLEAR_2 = 235, + CRIT_INT_CLEAR_3 = 236, + CRIT_INT_CLEAR_4 = 237, + CRIT_INT_CLEAR_5 = 238, + CRIT_INT_CLEAR_6 = 239, + CRIT_INT_CLEAR_7 = 240, + CRIT_INT_CLEAR_8 = 241, + CRIT_INT_CLEAR_9 = 242, + CRIT_INT_CLEAR_10 = 243, + CRIT_INT_CLEAR_11 = 244, + CRIT_INT_CLEAR_12 = 245, + CRIT_INT_CLEAR_13 = 246, + CRIT_INT_CLEAR_14 = 247, + CRIT_INT_CLEAR_15 = 248, + CRIT_INT_MASK_0 = 249, + CRIT_INT_MASK_1 = 250, + CRIT_INT_MASK_2 = 251, + CRIT_INT_MASK_3 = 252, + CRIT_INT_MASK_4 = 253, + CRIT_INT_MASK_5 = 254, + CRIT_INT_MASK_6 = 255, + CRIT_INT_MASK_7 = 256, + CRIT_INT_MASK_8 = 257, + CRIT_INT_MASK_9 = 258, + CRIT_INT_MASK_10 = 259, + CRIT_INT_MASK_11 = 260, + CRIT_INT_MASK_12 = 261, + CRIT_INT_MASK_13 = 262, + CRIT_INT_MASK_14 = 263, + CRIT_INT_MASK_15 = 264, + CRIT_THRESH_0 = 265, + CRIT_THRESH_1 = 266, + CRIT_THRESH_2 = 267, + CRIT_THRESH_3 = 268, + CRIT_THRESH_4 = 269, + CRIT_THRESH_5 = 270, + CRIT_THRESH_6 = 271, + CRIT_THRESH_7 = 272, + CRIT_THRESH_8 = 273, + CRIT_THRESH_9 = 274, + CRIT_THRESH_10 = 275, + CRIT_THRESH_11 = 276, + CRIT_THRESH_12 = 277, + CRIT_THRESH_13 = 278, + CRIT_THRESH_14 = 279, + CRIT_THRESH_15 = 280, + WDOG_BARK_STATUS = 281, + WDOG_BARK_CLEAR = 282, + WDOG_BARK_MASK = 283, + WDOG_BARK_COUNT = 284, + CC_MON_STATUS = 285, + CC_MON_CLEAR = 286, + CC_MON_MASK = 287, + MIN_STATUS_0 = 288, + MIN_STATUS_1 = 289, + MIN_STATUS_2 = 290, + MIN_STATUS_3 = 291, + MIN_STATUS_4 = 292, + MIN_STATUS_5 = 293, + MIN_STATUS_6 = 294, + MIN_STATUS_7 = 295, + MIN_STATUS_8 = 296, + MIN_STATUS_9 = 297, + MIN_STATUS_10 = 298, + MIN_STATUS_11 = 299, + MIN_STATUS_12 = 300, + MIN_STATUS_13 = 301, + MIN_STATUS_14 = 302, + MIN_STATUS_15 = 303, + MAX_STATUS_0 = 304, + MAX_STATUS_1 = 305, + MAX_STATUS_2 = 306, + MAX_STATUS_3 = 307, + MAX_STATUS_4 = 308, + MAX_STATUS_5 = 309, + MAX_STATUS_6 = 310, + MAX_STATUS_7 = 311, + MAX_STATUS_8 = 312, + MAX_STATUS_9 = 313, + MAX_STATUS_10 = 314, + MAX_STATUS_11 = 315, + MAX_STATUS_12 = 316, + MAX_STATUS_13 = 317, + MAX_STATUS_14 = 318, + MAX_STATUS_15 = 319, + MAX_REGFIELDS = 320, }; -enum TPM_OPS_FLAGS { - TPM_OPS_AUTO_STARTUP = 1, +enum tsens_ver { + VER_0 = 0, + VER_0_1 = 1, + VER_1_X = 2, + VER_2_X = 3, }; -enum tpm2_startup_types { - TPM2_SU_CLEAR = 0, - TPM2_SU_STATE = 1, +enum tsens_irq_type { + LOWER = 0, + UPPER = 1, + CRITICAL = 2, }; -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, +struct tsens_context { + int threshold; + int control; }; -struct tpm_header { - __be16 tag; - __be32 length; - union { - __be32 ordinal; - __be32 return_code; - }; -} __attribute__((packed)); +struct tsens_priv; -struct tpm_buf { - unsigned int flags; - u8 *data; +struct tsens_sensor { + struct tsens_priv *priv; + struct thermal_zone_device *tzd; + int offset; + unsigned int hw_id; + int slope; + u32 status; + int p1_calib_offset; + int p2_calib_offset; }; -struct devres_node { - struct list_head entry; - dr_release_t release; - const char *name; - size_t size; -}; +struct tsens_features; -struct devres { - struct devres_node node; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u8 data[0]; -}; +struct tsens_ops; -struct devres_group { - struct devres_node node[2]; - void *id; - int color; +struct tsens_priv { + struct device *dev; + u32 num_sensors; + struct regmap *tm_map; + struct regmap *srot_map; + u32 tm_offset; + spinlock_t ul_lock; + struct regmap_field *rf[320]; + struct tsens_context ctx; + struct tsens_features *feat; + const struct reg_field *fields; + const struct tsens_ops *ops; + struct dentry *debug_root; + struct dentry *debug; + struct tsens_sensor sensor[0]; }; -struct action_devres { - void *data; - void (*action)(void *); +struct tsens_features { + unsigned int ver_major; + unsigned int crit_int: 1; + unsigned int combo_int: 1; + unsigned int adc: 1; + unsigned int srot_split: 1; + unsigned int has_watchdog: 1; + unsigned int max_sensors; + int trip_min_temp; + int trip_max_temp; }; -struct pages_devres { - unsigned long addr; - unsigned int order; +struct tsens_ops { + int (*init)(struct tsens_priv *); + int (*calibrate)(struct tsens_priv *); + int (*get_temp)(const struct tsens_sensor *, int *); + int (*enable)(struct tsens_priv *, int); + void (*disable)(struct tsens_priv *); + int (*suspend)(struct tsens_priv *); + int (*resume)(struct tsens_priv *); }; -struct fw_sysfs { - bool nowait; - struct device dev; - struct fw_priv *fw_priv; - struct firmware *fw; - void *fw_upload_priv; +struct tsens_single_value { + u8 idx; + u8 shift; + u8 blob; }; -enum axp20x_variants { - AXP152_ID = 0, - AXP192_ID = 1, - AXP202_ID = 2, - AXP209_ID = 3, - AXP221_ID = 4, - AXP223_ID = 5, - AXP288_ID = 6, - AXP313A_ID = 7, - AXP803_ID = 8, - AXP806_ID = 9, - AXP809_ID = 10, - AXP813_ID = 11, - AXP15060_ID = 12, - NR_AXP20X_VARIANTS = 13, +struct tsens_irq_data { + u32 up_viol; + int up_thresh; + u32 up_irq_mask; + u32 up_irq_clear; + u32 low_viol; + int low_thresh; + u32 low_irq_mask; + u32 low_irq_clear; + u32 crit_viol; + u32 crit_thresh; + u32 crit_irq_mask; + u32 crit_irq_clear; }; -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 tsens_legacy_calibration_format { + unsigned int base_len; + unsigned int base_shift; + unsigned int sp_len; + struct tsens_single_value mode; + struct tsens_single_value invalid; + struct tsens_single_value base[2]; + struct tsens_single_value sp[0]; }; -struct scsi_exec_args { - unsigned char *sense; - unsigned int sense_len; - struct scsi_sense_hdr *sshdr; - blk_mq_req_flags_t req_flags; - int scmd_flags; - int *resid; +struct tsens_plat_data { + const u32 num_sensors; + const struct tsens_ops *ops; + unsigned int *hw_ids; + struct tsens_features *feat; + const struct reg_field *fields; }; -typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *); +struct edac_device_ctl_info; -struct ata_scsi_args { - struct ata_device *dev; - u16 *id; - struct scsi_cmnd *cmd; +struct ctl_info_attribute { + struct attribute attr; + ssize_t (*show)(struct edac_device_ctl_info *, char *); + ssize_t (*store)(struct edac_device_ctl_info *, const char *, size_t); }; -struct jedec_ecc_info { - u8 ecc_bits; - u8 codeword_size; - __le16 bb_per_lun; - __le16 block_endurance; - u8 reserved[2]; +struct edac_device_counter { + u32 ue_count; + u32 ce_count; }; -struct nand_jedec_params { - u8 sig[4]; - __le16 revision; - __le16 features; - u8 opt_cmd[3]; - __le16 sec_cmd; - u8 num_of_param_pages; - u8 reserved0[18]; - char manufacturer[12]; - char model[20]; - u8 jedec_id[6]; - u8 reserved1[10]; - __le32 byte_per_page; - __le16 spare_bytes_per_page; - u8 reserved2[6]; - __le32 pages_per_block; - __le32 blocks_per_lun; - u8 lun_count; - u8 addr_cycles; - u8 bits_per_cell; - u8 programs_per_page; - u8 multi_plane_addr; - u8 multi_plane_op_attr; - u8 reserved3[38]; - __le16 async_sdr_speed_grade; - __le16 toggle_ddr_speed_grade; - __le16 sync_ddr_speed_grade; - u8 async_sdr_features; - u8 toggle_ddr_features; - u8 sync_ddr_features; - __le16 t_prog; - __le16 t_bers; - __le16 t_r; - __le16 t_r_multi_plane; - __le16 t_ccs; - __le16 io_pin_capacitance_typ; - __le16 input_pin_capacitance_typ; - __le16 clk_pin_capacitance_typ; - u8 driver_strength_support; - __le16 t_adl; - u8 reserved4[36]; - u8 guaranteed_good_blocks; - __le16 guaranteed_block_endurance; - struct jedec_ecc_info ecc_info[4]; - u8 reserved5[29]; - u8 reserved6[148]; - __le16 vendor_rev_num; - u8 reserved7[88]; - __le16 crc; -} __attribute__((packed)); +struct edac_dev_sysfs_attribute; -typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); +struct edac_device_instance; -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 edac_device_block; -struct mdio_board_info { - const char *bus_id; - char modalias[32]; - int mdio_addr; - const void *platform_data; +struct edac_dev_sysfs_block_attribute; + +struct edac_device_ctl_info { + struct list_head link; + struct module *owner; + int dev_idx; + int log_ue; + int log_ce; + int panic_on_ue; + unsigned int poll_msec; + unsigned long delay; + struct edac_dev_sysfs_attribute *sysfs_attributes; + struct bus_type *edac_subsys; + int op_state; + struct delayed_work work; + void (*edac_check)(struct edac_device_ctl_info *); + struct device *dev; + const char *mod_name; + const char *ctl_name; + const char *dev_name; + void *pvt_info; + unsigned long start_time; + struct completion removal_complete; + char name[32]; + u32 nr_instances; + struct edac_device_instance *instances; + struct edac_device_block *blocks; + struct edac_dev_sysfs_block_attribute *attribs; + struct edac_device_counter counters; + struct kobject kobj; }; -struct trace_event_data_offsets_mdio_access {}; +struct edac_dev_sysfs_attribute { + struct attribute attr; + ssize_t (*show)(struct edac_device_ctl_info *, char *); + ssize_t (*store)(struct edac_device_ctl_info *, const char *, size_t); +}; -struct mdio_bus_stat_attr { - int addr; - unsigned int field_offset; +struct edac_device_instance { + struct edac_device_ctl_info *ctl; + char name[35]; + struct edac_device_counter counters; + u32 nr_blocks; + struct edac_device_block *blocks; + struct kobject kobj; }; -struct bgx; +struct edac_device_block { + struct edac_device_instance *instance; + char name[32]; + struct edac_device_counter counters; + int nr_attribs; + struct edac_dev_sysfs_block_attribute *block_attributes; + struct kobject kobj; +}; -struct dmac_map; +struct edac_dev_sysfs_block_attribute { + struct attribute attr; + ssize_t (*show)(struct kobject *, struct attribute *, char *); + ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); + struct edac_device_block *block; + unsigned int value; +}; -struct lmac { - struct bgx *bgx; - u8 dmacs_cfg; - u8 dmacs_count; - struct dmac_map *dmacs; - u8 mac[6]; - u8 lmac_type; - u8 lane_to_sds; - bool use_training; - bool autoneg; - bool link_up; - int lmacid; - int lmacid_bd; - long: 64; - long: 64; - struct net_device netdev; - struct phy_device *phydev; - unsigned int last_duplex; - unsigned int last_link; - unsigned int last_speed; - bool is_sgmii; - struct delayed_work dwork; - struct workqueue_struct *check_link; - long: 64; +struct instance_attribute { + struct attribute attr; + ssize_t (*show)(struct edac_device_instance *, char *); + ssize_t (*store)(struct edac_device_instance *, const char *, size_t); }; -struct bgx { - u8 bgx_id; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct lmac lmac[4]; - u8 lmac_count; - u8 max_lmac; - u8 acpi_lmac_idx; - void *reg_base; - struct pci_dev *pdev; - bool is_dlm; - bool is_rgx; - long: 64; - long: 64; - long: 64; - long: 64; +struct qcom_cpufreq_data { + void *base; + struct mutex throttle_lock; + int throttle_irq; + char irq_name[15]; + bool cancel_throttle; + struct delayed_work throttle_work; + struct cpufreq_policy *policy; + struct clk_hw cpu_clk; + bool per_core_dcvs; }; -struct dmac_map { - u64 vf_map; - u64 dmac; +struct qcom_cpufreq_soc_data { + u32 reg_enable; + u32 reg_domain_state; + u32 reg_dcvs_ctrl; + u32 reg_freq_lut; + u32 reg_volt_lut; + u32 reg_intr_clr; + u32 reg_current_vote; + u32 reg_perf_state; + u8 lut_row_size; }; -enum MCAST_MODE { - MCAST_MODE_REJECT = 0, - MCAST_MODE_ACCEPT = 1, - MCAST_MODE_CAM_FILTER = 2, - RSVD = 3, +struct sdio_device_id; + +struct sdio_driver { + char *name; + const struct sdio_device_id *id_table; + int (*probe)(struct sdio_func *, const struct sdio_device_id *); + void (*remove)(struct sdio_func *); + struct device_driver drv; }; -enum LMAC_TYPE { - BGX_MODE_SGMII = 0, - BGX_MODE_XAUI = 1, - BGX_MODE_DXAUI = 1, - BGX_MODE_RXAUI = 2, - BGX_MODE_XFI = 3, - BGX_MODE_XLAUI = 4, - BGX_MODE_10G_KR = 3, - BGX_MODE_40G_KR = 4, - BGX_MODE_RGMII = 5, - BGX_MODE_QSGMII = 6, - BGX_MODE_INVALID = 7, +struct sdio_device_id { + __u8 class; + __u16 vendor; + __u16 device; + kernel_ulong_t driver_data; }; -enum phy_reset_delays { - PRE_DELAY = 0, - PULSE = 1, - POST_DELAY = 2, - DELAYS_NUM = 3, +struct hi3798cv200_priv { + struct clk *sample_clk; + struct clk *drive_clk; }; -struct hix5hd2_desc; +typedef void (*btf_trace_ufshcd_clk_gating)(void *, const char *, int); -struct hix5hd2_desc_sw { - struct hix5hd2_desc *desc; - dma_addr_t phys_addr; - unsigned int count; - unsigned int size; -}; +typedef void (*btf_trace_ufshcd_clk_scaling)(void *, const char *, const char *, const char *, u32, u32); -struct sg_desc; +typedef void (*btf_trace_ufshcd_auto_bkops_state)(void *, const char *, const char *); -struct hix5hd2_sg_desc_ring { - struct sg_desc *desc; - dma_addr_t phys_addr; -}; +typedef void (*btf_trace_ufshcd_profile_hibern8)(void *, const char *, const char *, s64, int); -struct hix5hd2_priv { - struct hix5hd2_desc_sw pool[4]; - struct hix5hd2_sg_desc_ring tx_ring; - void *base; - void *ctrl_base; - struct sk_buff *tx_skb[1024]; - struct sk_buff *rx_skb[1024]; - struct device *dev; - struct net_device *netdev; - struct device_node *phy_node; - phy_interface_t phy_mode; - unsigned long hw_cap; - unsigned int speed; - unsigned int duplex; - struct clk *mac_core_clk; - struct clk *mac_ifc_clk; - struct reset_control *mac_core_rst; - struct reset_control *mac_ifc_rst; - struct reset_control *phy_rst; - u32 phy_reset_delays[3]; - struct mii_bus *bus; - struct napi_struct napi; - struct work_struct tx_timeout_task; -}; +typedef void (*btf_trace_ufshcd_profile_clk_gating)(void *, const char *, const char *, s64, int); -struct hix5hd2_desc { - __le32 buff_addr; - __le32 cmd; - long: 64; - long: 64; - long: 64; -}; +typedef void (*btf_trace_ufshcd_profile_clk_scaling)(void *, const char *, const char *, s64, int); -struct frags_info { - __le32 addr; - __le32 size; -}; +typedef void (*btf_trace_ufshcd_system_suspend)(void *, const char *, int, s64, int, int); -struct sg_desc { - __le32 total_len; - __le32 resvd0; - __le32 linear_addr; - __le32 linear_len; - struct frags_info frags[18]; -}; +typedef void (*btf_trace_ufshcd_system_resume)(void *, const char *, int, s64, int, int); -struct ave_private; +typedef void (*btf_trace_ufshcd_runtime_suspend)(void *, const char *, int, s64, int, int); -struct ave_soc_data { - bool is_desc_64bit; - const char *clock_names[4]; - const char *reset_names[2]; - int (*get_pinmode)(struct ave_private *, phy_interface_t, u32); -}; +typedef void (*btf_trace_ufshcd_runtime_resume)(void *, const char *, int, s64, int, int); -struct ave_stats { - struct u64_stats_sync syncp; - u64 packets; - u64 bytes; - u64 errors; - u64 dropped; - u64 collisions; - u64 fifo_errors; -}; +typedef void (*btf_trace_ufshcd_init)(void *, const char *, int, s64, int, int); -struct ave_desc; +typedef void (*btf_trace_ufshcd_wl_suspend)(void *, const char *, int, s64, int, int); -struct ave_desc_info { - u32 ndesc; - u32 daddr; - u32 proc_idx; - u32 done_idx; - struct ave_desc *desc; +typedef void (*btf_trace_ufshcd_wl_resume)(void *, const char *, int, s64, int, int); + +typedef void (*btf_trace_ufshcd_wl_runtime_suspend)(void *, const char *, int, s64, int, int); + +typedef void (*btf_trace_ufshcd_wl_runtime_resume)(void *, const char *, int, s64, int, int); + +enum ufs_trace_str_t { + UFS_CMD_SEND = 0, + UFS_CMD_COMP = 1, + UFS_DEV_COMP = 2, + UFS_QUERY_SEND = 3, + UFS_QUERY_COMP = 4, + UFS_QUERY_ERR = 5, + UFS_TM_SEND = 6, + UFS_TM_COMP = 7, + UFS_TM_ERR = 8, }; -struct ave_private { - void *base; - int irq; - int phy_id; - unsigned int desc_size; - u32 msg_enable; - int nclks; - struct clk *clk[4]; - int nrsts; - struct reset_control *rst[2]; - phy_interface_t phy_mode; - struct phy_device *phydev; - struct mii_bus *mdio; - struct regmap *regmap; - unsigned int pinmode_mask; - unsigned int pinmode_val; - u32 wolopts; - struct ave_stats stats_rx; - struct ave_stats stats_tx; - struct net_device *ndev; - struct napi_struct napi_rx; - struct napi_struct napi_tx; - struct ave_desc_info rx; - struct ave_desc_info tx; - int pause_auto; - int pause_rx; - int pause_tx; - const struct ave_soc_data *data; -}; - -struct ave_desc { - struct sk_buff *skbs; - dma_addr_t skbs_dma; - size_t skbs_dmalen; -}; +typedef void (*btf_trace_ufshcd_command)(void *, struct scsi_device *, enum ufs_trace_str_t, unsigned int, u32, u32, int, u32, u64, u8, u8); -enum desc_id { - AVE_DESCID_RX = 0, - AVE_DESCID_TX = 1, -}; +typedef void (*btf_trace_ufshcd_uic_command)(void *, const char *, enum ufs_trace_str_t, u32, u32, u32, u32); -enum desc_state___2 { - AVE_DESC_RX_PERMIT = 0, - AVE_DESC_RX_SUSPEND = 1, - AVE_DESC_START = 2, - AVE_DESC_STOP = 3, +enum ufs_trace_tsf_t { + UFS_TSF_CDB = 0, + UFS_TSF_OSF = 1, + UFS_TSF_TM_INPUT = 2, + UFS_TSF_TM_OUTPUT = 3, }; -struct usb_class { - struct kref kref; - struct class *class; -}; +typedef void (*btf_trace_ufshcd_upiu)(void *, const char *, enum ufs_trace_str_t, void *, void *, enum ufs_trace_tsf_t); -struct usb_class_driver { - char *name; - char * (*devnode)(const struct device *, umode_t *); - const struct file_operations *fops; - int minor_base; -}; +typedef void (*btf_trace_ufshcd_exception_event)(void *, const char *, u16); -enum ohci_rh_state { - OHCI_RH_HALTED = 0, - OHCI_RH_SUSPENDED = 1, - OHCI_RH_RUNNING = 2, +struct ufs_pm_lvl_states { + enum ufs_dev_pwr_mode dev_state; + enum uic_link_state link_state; }; -struct ed; - -struct td; - -struct urb_priv___2 { - struct ed *ed; - u16 length; - u16 td_cnt; - struct list_head pending; - struct td *td[0]; +struct ufs_dev_quirk { + u16 wmanufacturerid; + const u8 *model; + unsigned int quirk; }; -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; +struct ufs_ref_clk { + unsigned long freq_hz; + enum ufs_ref_clk_freq val; }; -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; +enum { + REG_CONTROLLER_CAPABILITIES = 0, + REG_MCQCAP = 4, + REG_UFS_VERSION = 8, + REG_CONTROLLER_DEV_ID = 16, + REG_CONTROLLER_PROD_ID = 20, + REG_AUTO_HIBERNATE_IDLE_TIMER = 24, + REG_INTERRUPT_STATUS = 32, + REG_INTERRUPT_ENABLE = 36, + REG_CONTROLLER_STATUS = 48, + REG_CONTROLLER_ENABLE = 52, + REG_UIC_ERROR_CODE_PHY_ADAPTER_LAYER = 56, + REG_UIC_ERROR_CODE_DATA_LINK_LAYER = 60, + REG_UIC_ERROR_CODE_NETWORK_LAYER = 64, + REG_UIC_ERROR_CODE_TRANSPORT_LAYER = 68, + REG_UIC_ERROR_CODE_DME = 72, + REG_UTP_TRANSFER_REQ_INT_AGG_CONTROL = 76, + REG_UTP_TRANSFER_REQ_LIST_BASE_L = 80, + REG_UTP_TRANSFER_REQ_LIST_BASE_H = 84, + REG_UTP_TRANSFER_REQ_DOOR_BELL = 88, + REG_UTP_TRANSFER_REQ_LIST_CLEAR = 92, + REG_UTP_TRANSFER_REQ_LIST_RUN_STOP = 96, + REG_UTP_TASK_REQ_LIST_BASE_L = 112, + REG_UTP_TASK_REQ_LIST_BASE_H = 116, + REG_UTP_TASK_REQ_DOOR_BELL = 120, + REG_UTP_TASK_REQ_LIST_CLEAR = 124, + REG_UTP_TASK_REQ_LIST_RUN_STOP = 128, + REG_UIC_COMMAND = 144, + REG_UIC_COMMAND_ARG_1 = 148, + REG_UIC_COMMAND_ARG_2 = 152, + REG_UIC_COMMAND_ARG_3 = 156, + UFSHCI_REG_SPACE_SIZE = 160, + REG_UFS_CCAP = 256, + REG_UFS_CRYPTOCAP = 260, + REG_UFS_MEM_CFG = 768, + REG_UFS_MCQ_CFG = 896, + REG_UFS_ESILBA = 900, + REG_UFS_ESIUBA = 904, + UFSHCI_CRYPTO_REG_SPACE_SIZE = 1024, }; -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]; +enum ufs_unipro_ver { + UFS_UNIPRO_VER_RESERVED = 0, + UFS_UNIPRO_VER_1_40 = 1, + UFS_UNIPRO_VER_1_41 = 2, + UFS_UNIPRO_VER_1_6 = 3, + UFS_UNIPRO_VER_1_61 = 4, + UFS_UNIPRO_VER_1_8 = 5, + UFS_UNIPRO_VER_MAX = 6, + UFS_UNIPRO_VER_MASK = 15, }; -struct ohci_roothub_regs { - __hc32 a; - __hc32 b; - __hc32 status; - __hc32 portstatus[15]; +enum ufshcd_quirks { + UFSHCD_QUIRK_BROKEN_INTR_AGGR = 1, + UFSHCD_QUIRK_DELAY_BEFORE_DME_CMDS = 2, + UFSHCD_QUIRK_BROKEN_LCC = 4, + UFSHCD_QUIRK_BROKEN_PA_RXHSUNTERMCAP = 8, + UFSHCD_QUIRK_DME_PEER_ACCESS_AUTO_MODE = 16, + UFSHCD_QUIRK_BROKEN_UFS_HCI_VERSION = 32, + UFSHCI_QUIRK_BROKEN_REQ_LIST_CLR = 64, + UFSHCI_QUIRK_SKIP_RESET_INTR_AGGR = 128, + UFSHCI_QUIRK_BROKEN_HCE = 256, + UFSHCD_QUIRK_PRDT_BYTE_GRAN = 512, + UFSHCD_QUIRK_BROKEN_OCS_FATAL_ERROR = 1024, + UFSHCD_QUIRK_BROKEN_AUTO_HIBERN8 = 2048, + UFSHCI_QUIRK_SKIP_MANUAL_WB_FLUSH_CTRL = 4096, + UFSHCD_QUIRK_SKIP_DEF_UNIPRO_TIMEOUT_SETTING = 8192, + UFSHCD_QUIRK_BROKEN_UIC_CMD = 32768, + UFSHCD_QUIRK_SKIP_PH_CONFIGURATION = 65536, + UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS = 131072, + UFSHCD_QUIRK_HIBERN_FASTAUTO = 262144, + UFSHCD_QUIRK_REINIT_AFTER_MAX_GEAR_SWITCH = 524288, + UFSHCD_QUIRK_MCQ_BROKEN_INTR = 1048576, + UFSHCD_QUIRK_MCQ_BROKEN_RTC = 2097152, }; -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; +enum flag_idn { + QUERY_FLAG_IDN_FDEVICEINIT = 1, + QUERY_FLAG_IDN_PERMANENT_WPE = 2, + QUERY_FLAG_IDN_PWR_ON_WPE = 3, + QUERY_FLAG_IDN_BKOPS_EN = 4, + QUERY_FLAG_IDN_LIFE_SPAN_MODE_ENABLE = 5, + QUERY_FLAG_IDN_PURGE_ENABLE = 6, + QUERY_FLAG_IDN_RESERVED2 = 7, + QUERY_FLAG_IDN_FPHYRESOURCEREMOVAL = 8, + QUERY_FLAG_IDN_BUSY_RTC = 9, + QUERY_FLAG_IDN_RESERVED3 = 10, + QUERY_FLAG_IDN_PERMANENTLY_DISABLE_FW_UPDATE = 11, + QUERY_FLAG_IDN_WB_EN = 14, + QUERY_FLAG_IDN_WB_BUFF_FLUSH_EN = 15, + QUERY_FLAG_IDN_WB_BUFF_FLUSH_DURING_HIBERN8 = 16, + QUERY_FLAG_IDN_HPB_RESET = 17, + QUERY_FLAG_IDN_HPB_EN = 18, }; -struct ohci_hcca { - __hc32 int_table[32]; - __hc32 frame_no; - __hc32 done_head; - u8 reserved_for_hc[116]; - u8 what[4]; +enum { + UPIU_QUERY_FUNC_STANDARD_READ_REQUEST = 1, + UPIU_QUERY_FUNC_STANDARD_WRITE_REQUEST = 129, }; -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; +enum attr_idn { + QUERY_ATTR_IDN_BOOT_LU_EN = 0, + QUERY_ATTR_IDN_MAX_HPB_SINGLE_CMD = 1, + QUERY_ATTR_IDN_POWER_MODE = 2, + QUERY_ATTR_IDN_ACTIVE_ICC_LVL = 3, + QUERY_ATTR_IDN_OOO_DATA_EN = 4, + QUERY_ATTR_IDN_BKOPS_STATUS = 5, + QUERY_ATTR_IDN_PURGE_STATUS = 6, + QUERY_ATTR_IDN_MAX_DATA_IN = 7, + QUERY_ATTR_IDN_MAX_DATA_OUT = 8, + QUERY_ATTR_IDN_DYN_CAP_NEEDED = 9, + QUERY_ATTR_IDN_REF_CLK_FREQ = 10, + QUERY_ATTR_IDN_CONF_DESC_LOCK = 11, + QUERY_ATTR_IDN_MAX_NUM_OF_RTT = 12, + QUERY_ATTR_IDN_EE_CONTROL = 13, + QUERY_ATTR_IDN_EE_STATUS = 14, + QUERY_ATTR_IDN_SECONDS_PASSED = 15, + QUERY_ATTR_IDN_CNTX_CONF = 16, + QUERY_ATTR_IDN_CORR_PRG_BLK_NUM = 17, + QUERY_ATTR_IDN_RESERVED2 = 18, + QUERY_ATTR_IDN_RESERVED3 = 19, + QUERY_ATTR_IDN_FFU_STATUS = 20, + QUERY_ATTR_IDN_PSA_STATE = 21, + QUERY_ATTR_IDN_PSA_DATA_SIZE = 22, + QUERY_ATTR_IDN_REF_CLK_GATING_WAIT_TIME = 23, + QUERY_ATTR_IDN_CASE_ROUGH_TEMP = 24, + QUERY_ATTR_IDN_HIGH_TEMP_BOUND = 25, + QUERY_ATTR_IDN_LOW_TEMP_BOUND = 26, + QUERY_ATTR_IDN_WB_FLUSH_STATUS = 28, + QUERY_ATTR_IDN_AVAIL_WB_BUFF_SIZE = 29, + QUERY_ATTR_IDN_WB_BUFF_LIFE_TIME_EST = 30, + QUERY_ATTR_IDN_CURR_WB_BUFF_SIZE = 31, + QUERY_ATTR_IDN_EXT_IID_EN = 42, + QUERY_ATTR_IDN_TIMESTAMP = 48, }; -struct ohci_driver_overrides { - const char *product_desc; - size_t extra_priv_size; - int (*reset)(struct usb_hcd *); +enum desc_idn { + QUERY_DESC_IDN_DEVICE = 0, + QUERY_DESC_IDN_CONFIGURATION = 1, + QUERY_DESC_IDN_UNIT = 2, + QUERY_DESC_IDN_RFU_0 = 3, + QUERY_DESC_IDN_INTERCONNECT = 4, + QUERY_DESC_IDN_STRING = 5, + QUERY_DESC_IDN_RFU_1 = 6, + QUERY_DESC_IDN_GEOMETRY = 7, + QUERY_DESC_IDN_POWER = 8, + QUERY_DESC_IDN_HEALTH = 9, + QUERY_DESC_IDN_MAX = 10, }; -struct udc_ep_regs; - -struct udc_stp_dma; - -struct udc_data_dma; - -struct udc_request; - -struct udc; - -struct udc_ep { - struct usb_ep ep; - struct udc_ep_regs *regs; - u32 *txfifo; - u32 *dma; - dma_addr_t td_phys; - dma_addr_t td_stp_dma; - struct udc_stp_dma *td_stp; - struct udc_data_dma *td; - struct udc_request *req; - unsigned int req_used; - unsigned int req_completed; - struct udc_request *bna_dummy_req; - unsigned int bna_occurred; - unsigned int naking; - struct udc *dev; - struct list_head queue; - unsigned int halted; - unsigned int cancel_transfer; - unsigned int num: 5; - unsigned int fifo_depth: 14; - unsigned int in: 1; +enum desc_header_offset { + QUERY_DESC_LENGTH_OFFSET = 0, + QUERY_DESC_DESC_TYPE_OFFSET = 1, }; -struct extcon_specific_cable_nb { - struct notifier_block *user_nb; - int cable_index; - struct extcon_dev *edev; - unsigned long previous_value; +enum utf16_endian { + UTF16_HOST_ENDIAN = 0, + UTF16_LITTLE_ENDIAN = 1, + UTF16_BIG_ENDIAN = 2, }; -struct udc_csrs; - -struct udc_regs; - -struct udc { - struct usb_gadget gadget; - spinlock_t lock; - struct udc_ep ep[32]; - struct usb_gadget_driver *driver; - unsigned int stall_ep0in: 1; - unsigned int waiting_zlp_ack_ep0in: 1; - unsigned int set_cfg_not_acked: 1; - unsigned int data_ep_enabled: 1; - unsigned int data_ep_queued: 1; - unsigned int sys_suspended: 1; - unsigned int connected; - u16 chiprev; - struct pci_dev *pdev; - struct udc_csrs *csr; - struct udc_regs *regs; - struct udc_ep_regs *ep_regs; - u32 *rxfifo; - u32 *txfifo; - struct dma_pool *data_requests; - struct dma_pool *stp_requests; - unsigned long phys_addr; - void *virt_addr; - unsigned int irq; - u16 cur_config; - u16 cur_intf; - u16 cur_alt; - struct device *dev; - struct phy *udc_phy; - struct extcon_dev *edev; - struct extcon_specific_cable_nb extcon_nb; - struct notifier_block nb; - struct delayed_work drd_work; - u32 conn_type; +enum ufs_hs_gear_tag { + UFS_HS_DONT_CHANGE = 0, + UFS_HS_G1 = 1, + UFS_HS_G2 = 2, + UFS_HS_G3 = 3, + UFS_HS_G4 = 4, + UFS_HS_G5 = 5, }; -struct udc_ep_regs { - u32 ctl; - u32 sts; - u32 bufin_framenum; - u32 bufout_maxpkt; - u32 subptr; - u32 desptr; - u32 reserved; - u32 confirm; +enum { + FAST_MODE = 1, + SLOW_MODE = 2, + FASTAUTO_MODE = 4, + SLOWAUTO_MODE = 5, + UNCHANGED = 7, }; -struct udc_stp_dma { - u32 status; - u32 _reserved; - u32 data12; - u32 data34; +enum { + UFSHCD_EH_IN_PROGRESS = 1, }; -struct udc_data_dma { - u32 status; - u32 _reserved; - u32 bufptr; - u32 next; +enum utp_ocs { + OCS_SUCCESS = 0, + OCS_INVALID_CMD_TABLE_ATTR = 1, + OCS_INVALID_PRDT_ATTR = 2, + OCS_MISMATCH_DATA_BUF_SIZE = 3, + OCS_MISMATCH_RESP_UPIU_SIZE = 4, + OCS_PEER_COMM_FAILURE = 5, + OCS_ABORTED = 6, + OCS_FATAL_ERROR = 7, + OCS_DEVICE_FATAL_ERROR = 8, + OCS_INVALID_CRYPTO_CONFIG = 9, + OCS_GENERAL_CRYPTO_ERROR = 10, + OCS_INVALID_COMMAND_STATUS = 15, }; -struct udc_request { - struct usb_request req; - unsigned int dma_going: 1; - unsigned int dma_done: 1; - dma_addr_t td_phys; - struct udc_data_dma *td_data; - struct udc_data_dma *td_data_last; - struct list_head queue; - unsigned int chain_len; +enum { + UTP_CMD_TYPE_SCSI = 0, + UTP_CMD_TYPE_UFS = 1, + UTP_CMD_TYPE_DEV_MANAGE = 2, }; -struct udc_csrs { - u32 sca; - u32 ne[9]; +enum { + UTP_CMD_TYPE_UFS_STORAGE = 1, }; -struct udc_regs { - u32 cfg; - u32 ctl; - u32 sts; - u32 irqsts; - u32 irqmsk; - u32 ep_irqsts; - u32 ep_irqmsk; +enum { + MASK_OCS = 15, }; -struct i2c_spec_values { - unsigned int min_low_ns; - unsigned int min_su_sta_ns; - unsigned int max_hd_dat_ns; - unsigned int min_su_dat_ns; +enum { + UFS_UPIU_REPORT_LUNS_WLUN = 129, + UFS_UPIU_UFS_DEVICE_WLUN = 208, + UFS_UPIU_BOOT_WLUN = 176, + UFS_UPIU_RPMB_WLUN = 196, }; -struct mtk_i2c_compatible { - const struct i2c_adapter_quirks *quirks; - const u16 *regs; - unsigned char pmic_i2c: 1; - unsigned char dcm: 1; - unsigned char auto_restart: 1; - unsigned char aux_len_reg: 1; - unsigned char timing_adjust: 1; - unsigned char dma_sync: 1; - unsigned char ltiming_adjust: 1; - unsigned char apdma_sync: 1; - unsigned char max_dma_support; +enum { + MASK_TRANSFER_REQUESTS_SLOTS = 31, + MASK_TASK_MANAGEMENT_REQUEST_SLOTS = 458752, + MASK_EHSLUTRD_SUPPORTED = 4194304, + MASK_AUTO_HIBERN8_SUPPORT = 8388608, + MASK_64_ADDRESSING_SUPPORT = 16777216, + MASK_OUT_OF_ORDER_DATA_DELIVERY_SUPPORT = 33554432, + MASK_UIC_DME_TEST_MODE_SUPPORT = 67108864, + MASK_CRYPTO_SUPPORT = 268435456, + MASK_MCQ_SUPPORT = 1073741824, }; -enum mtk_trans_op { - I2C_MASTER_WR = 1, - I2C_MASTER_RD = 2, - I2C_MASTER_WRRD = 3, +enum { + UFS_ABORT_TASK = 1, + UFS_ABORT_TASK_SET = 2, + UFS_CLEAR_TASK_SET = 4, + UFS_LOGICAL_RESET = 8, + UFS_QUERY_TASK = 128, + UFS_QUERY_TASK_SET = 129, }; -enum i2c_mt65xx_clks { - I2C_MT65XX_CLK_MAIN = 0, - I2C_MT65XX_CLK_DMA = 1, - I2C_MT65XX_CLK_PMIC = 2, - I2C_MT65XX_CLK_ARB = 3, - I2C_MT65XX_CLK_MAX = 4, +enum { + UPIU_TASK_MANAGEMENT_FUNC_COMPL = 0, + UPIU_TASK_MANAGEMENT_FUNC_NOT_SUPPORTED = 4, + UPIU_TASK_MANAGEMENT_FUNC_SUCCEEDED = 8, + UPIU_TASK_MANAGEMENT_FUNC_FAILED = 5, + UPIU_INCORRECT_LOGICAL_UNIT_NO = 9, }; -enum I2C_REGS_OFFSET { - OFFSET_DATA_PORT = 0, - OFFSET_SLAVE_ADDR = 1, - OFFSET_INTR_MASK = 2, - OFFSET_INTR_STAT = 3, - OFFSET_CONTROL = 4, - OFFSET_TRANSFER_LEN = 5, - OFFSET_TRANSAC_LEN = 6, - OFFSET_DELAY_LEN = 7, - OFFSET_TIMING = 8, - OFFSET_START = 9, - OFFSET_EXT_CONF = 10, - OFFSET_FIFO_STAT = 11, - OFFSET_FIFO_THRESH = 12, - OFFSET_FIFO_ADDR_CLR = 13, - OFFSET_IO_CONFIG = 14, - OFFSET_RSV_DEBUG = 15, - OFFSET_HS = 16, - OFFSET_SOFTRESET = 17, - OFFSET_DCM_EN = 18, - OFFSET_MULTI_DMA = 19, - OFFSET_PATH_DIR = 20, - OFFSET_DEBUGSTAT = 21, - OFFSET_DEBUGCTRL = 22, - OFFSET_TRANSFER_LEN_AUX = 23, - OFFSET_CLOCK_DIV = 24, - OFFSET_LTIMING = 25, - OFFSET_SCL_HIGH_LOW_RATIO = 26, - OFFSET_HS_SCL_HIGH_LOW_RATIO = 27, - OFFSET_SCL_MIS_COMP_POINT = 28, - OFFSET_STA_STO_AC_TIMING = 29, - OFFSET_HS_STA_STO_AC_TIMING = 30, - OFFSET_SDA_TIMING = 31, +enum { + UFSHCD_MAX_CHANNEL = 0, + UFSHCD_MAX_ID = 1, + UFSHCD_CMD_PER_LUN = 31, + UFSHCD_CAN_QUEUE = 31, }; -enum DMA_REGS_OFFSET { - OFFSET_INT_FLAG = 0, - OFFSET_INT_EN = 4, - OFFSET_EN = 8, - OFFSET_RST = 12, - OFFSET_CON = 24, - OFFSET_TX_MEM_ADDR = 28, - OFFSET_RX_MEM_ADDR = 32, - OFFSET_TX_LEN = 36, - OFFSET_RX_LEN = 40, - OFFSET_TX_4G_MODE = 84, - OFFSET_RX_4G_MODE = 88, +enum ufshcd_caps { + UFSHCD_CAP_CLK_GATING = 1, + UFSHCD_CAP_HIBERN8_WITH_CLK_GATING = 2, + UFSHCD_CAP_CLK_SCALING = 4, + UFSHCD_CAP_AUTO_BKOPS_SUSPEND = 8, + UFSHCD_CAP_INTR_AGGR = 16, + UFSHCD_CAP_KEEP_AUTO_BKOPS_ENABLED_EXCEPT_SUSPEND = 32, + UFSHCD_CAP_RPM_AUTOSUSPEND = 64, + UFSHCD_CAP_WB_EN = 128, + UFSHCD_CAP_CRYPTO = 256, + UFSHCD_CAP_AGGR_POWER_COLLAPSE = 512, + UFSHCD_CAP_DEEPSLEEP = 1024, + UFSHCD_CAP_TEMP_NOTIF = 2048, + UFSHCD_CAP_WB_WITH_CLK_SCALING = 4096, }; -struct mtk_i2c_ac_timing { - u16 htiming; - u16 ltiming; - u16 hs; - u16 ext; - u16 inter_clk_div; - u16 scl_hl_ratio; - u16 hs_scl_hl_ratio; - u16 sta_stop; - u16 hs_sta_stop; - u16 sda_timing; +enum { + PWR_OK = 0, + PWR_LOCAL = 1, + PWR_REMOTE = 2, + PWR_BUSY = 3, + PWR_ERROR_CAP = 4, + PWR_FATAL_ERROR = 5, }; -struct mtk_i2c { - struct i2c_adapter adap; - struct device *dev; - struct completion msg_complete; - struct i2c_timings timing_info; - void *base; - void *pdmabase; - struct clk_bulk_data clocks[4]; - bool have_pmic; - bool use_push_pull; - u16 irq_stat; - unsigned int clk_src_div; - unsigned int speed_hz; - enum mtk_trans_op op; - u16 timing_reg; - u16 high_speed_reg; - u16 ltiming_reg; - unsigned char auto_restart; - bool ignore_restart_irq; - struct mtk_i2c_ac_timing ac_timing; - const struct mtk_i2c_compatible *dev_comp; +enum { + INTERRUPT_MASK_ALL_VER_10 = 200703, + INTERRUPT_MASK_RW_VER_10 = 196608, + INTERRUPT_MASK_ALL_VER_11 = 204799, + INTERRUPT_MASK_ALL_VER_21 = 466943, }; -enum power_supply_notifier_events { - PSY_EVENT_PROP_CHANGED = 0, +enum { + UPIU_RSP_FLAG_UNDERFLOW = 32, + UPIU_RSP_FLAG_OVERFLOW = 64, }; -struct psy_am_i_supplied_data { - struct power_supply *psy; - unsigned int count; +enum upiu_response_transaction { + UPIU_TRANSACTION_NOP_IN = 32, + UPIU_TRANSACTION_RESPONSE = 33, + UPIU_TRANSACTION_DATA_IN = 34, + UPIU_TRANSACTION_TASK_RSP = 36, + UPIU_TRANSACTION_READY_XFER = 49, + UPIU_TRANSACTION_QUERY_RSP = 54, + UPIU_TRANSACTION_REJECT_UPIU = 63, }; -struct psy_get_supplier_prop_data { - struct power_supply *psy; - enum power_supply_property psp; - union power_supply_propval *val; +enum { + WB_BUF_MODE_LU_DEDICATED = 0, + WB_BUF_MODE_SHARED = 1, }; -struct npcm_wdt { - struct watchdog_device wdd; - void *reg; - struct clk *clk; +enum { + UFSHCD_UIC_DL_PA_INIT_ERROR = 1, + UFSHCD_UIC_DL_NAC_RECEIVED_ERROR = 2, + UFSHCD_UIC_DL_TCx_REPLAY_ERROR = 4, + UFSHCD_UIC_NL_ERROR = 8, + UFSHCD_UIC_TL_ERROR = 16, + UFSHCD_UIC_DME_ERROR = 32, + UFSHCD_UIC_PA_GENERIC_ERROR = 64, }; -struct od_ops { - unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int); +enum utp_data_direction { + UTP_NO_DATA_TRANSFER = 0, + UTP_HOST_TO_DEVICE = 1, + UTP_DEVICE_TO_HOST = 2, }; -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 *); +enum { + UPIU_CMD_FLAGS_NONE = 0, + UPIU_CMD_FLAGS_CP = 4, + UPIU_CMD_FLAGS_WRITE = 32, + UPIU_CMD_FLAGS_READ = 64, }; -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; +enum { + MASK_TM_SERVICE_RESP = 255, }; -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; +enum { + BLK_MQ_UNIQUE_TAG_BITS = 16, + BLK_MQ_UNIQUE_TAG_MASK = 65535, }; enum { - OD_NORMAL_SAMPLE = 0, - OD_SUB_SAMPLE = 1, + UFSHCD_POLL_FROM_INTERRUPT_CONTEXT = -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; +enum ufs_pwm_gear_tag { + UFS_PWM_DONT_CHANGE = 0, + UFS_PWM_G1 = 1, + UFS_PWM_G2 = 2, + UFS_PWM_G3 = 3, + UFS_PWM_G4 = 4, + UFS_PWM_G5 = 5, + UFS_PWM_G6 = 6, + UFS_PWM_G7 = 7, }; -struct od_dbs_tuners { - unsigned int powersave_bias; +enum ufs_lanes { + UFS_LANE_DONT_CHANGE = 0, + UFS_LANE_1 = 1, + UFS_LANE_2 = 2, }; -struct range_t { - int start; - int end; +enum geometry_desc_param { + GEOMETRY_DESC_PARAM_LEN = 0, + GEOMETRY_DESC_PARAM_TYPE = 1, + GEOMETRY_DESC_PARAM_DEV_CAP = 4, + GEOMETRY_DESC_PARAM_MAX_NUM_LUN = 12, + GEOMETRY_DESC_PARAM_SEG_SIZE = 13, + GEOMETRY_DESC_PARAM_ALLOC_UNIT_SIZE = 17, + GEOMETRY_DESC_PARAM_MIN_BLK_SIZE = 18, + GEOMETRY_DESC_PARAM_OPT_RD_BLK_SIZE = 19, + GEOMETRY_DESC_PARAM_OPT_WR_BLK_SIZE = 20, + GEOMETRY_DESC_PARAM_MAX_IN_BUF_SIZE = 21, + GEOMETRY_DESC_PARAM_MAX_OUT_BUF_SIZE = 22, + GEOMETRY_DESC_PARAM_RPMB_RW_SIZE = 23, + GEOMETRY_DESC_PARAM_DYN_CAP_RSRC_PLC = 24, + GEOMETRY_DESC_PARAM_DATA_ORDER = 25, + GEOMETRY_DESC_PARAM_MAX_NUM_CTX = 26, + GEOMETRY_DESC_PARAM_TAG_UNIT_SIZE = 27, + GEOMETRY_DESC_PARAM_TAG_RSRC_SIZE = 28, + GEOMETRY_DESC_PARAM_SEC_RM_TYPES = 29, + GEOMETRY_DESC_PARAM_MEM_TYPES = 30, + GEOMETRY_DESC_PARAM_SCM_MAX_NUM_UNITS = 32, + GEOMETRY_DESC_PARAM_SCM_CAP_ADJ_FCTR = 36, + GEOMETRY_DESC_PARAM_NPM_MAX_NUM_UNITS = 38, + GEOMETRY_DESC_PARAM_NPM_CAP_ADJ_FCTR = 42, + GEOMETRY_DESC_PARAM_ENM1_MAX_NUM_UNITS = 44, + GEOMETRY_DESC_PARAM_ENM1_CAP_ADJ_FCTR = 48, + GEOMETRY_DESC_PARAM_ENM2_MAX_NUM_UNITS = 50, + GEOMETRY_DESC_PARAM_ENM2_CAP_ADJ_FCTR = 54, + GEOMETRY_DESC_PARAM_ENM3_MAX_NUM_UNITS = 56, + GEOMETRY_DESC_PARAM_ENM3_CAP_ADJ_FCTR = 60, + GEOMETRY_DESC_PARAM_ENM4_MAX_NUM_UNITS = 62, + GEOMETRY_DESC_PARAM_ENM4_CAP_ADJ_FCTR = 66, + GEOMETRY_DESC_PARAM_OPT_LOG_BLK_SIZE = 68, + GEOMETRY_DESC_PARAM_HPB_REGION_SIZE = 72, + GEOMETRY_DESC_PARAM_HPB_NUMBER_LU = 73, + GEOMETRY_DESC_PARAM_HPB_SUBREGION_SIZE = 74, + GEOMETRY_DESC_PARAM_HPB_MAX_ACTIVE_REGS = 75, + GEOMETRY_DESC_PARAM_WB_MAX_ALLOC_UNITS = 79, + GEOMETRY_DESC_PARAM_WB_MAX_WB_LUNS = 83, + GEOMETRY_DESC_PARAM_WB_BUFF_CAP_ADJ = 84, + GEOMETRY_DESC_PARAM_WB_SUP_RED_TYPE = 85, + GEOMETRY_DESC_PARAM_WB_SUP_WB_TYPE = 86, }; -struct dw_mci_rockchip_priv_data { - struct clk *drv_clk; - struct clk *sample_clk; - int default_sample_phase; - int num_phases; +enum device_desc_param { + DEVICE_DESC_PARAM_LEN = 0, + DEVICE_DESC_PARAM_TYPE = 1, + DEVICE_DESC_PARAM_DEVICE_TYPE = 2, + DEVICE_DESC_PARAM_DEVICE_CLASS = 3, + DEVICE_DESC_PARAM_DEVICE_SUB_CLASS = 4, + DEVICE_DESC_PARAM_PRTCL = 5, + DEVICE_DESC_PARAM_NUM_LU = 6, + DEVICE_DESC_PARAM_NUM_WLU = 7, + DEVICE_DESC_PARAM_BOOT_ENBL = 8, + DEVICE_DESC_PARAM_DESC_ACCSS_ENBL = 9, + DEVICE_DESC_PARAM_INIT_PWR_MODE = 10, + DEVICE_DESC_PARAM_HIGH_PR_LUN = 11, + DEVICE_DESC_PARAM_SEC_RMV_TYPE = 12, + DEVICE_DESC_PARAM_SEC_LU = 13, + DEVICE_DESC_PARAM_BKOP_TERM_LT = 14, + DEVICE_DESC_PARAM_ACTVE_ICC_LVL = 15, + DEVICE_DESC_PARAM_SPEC_VER = 16, + DEVICE_DESC_PARAM_MANF_DATE = 18, + DEVICE_DESC_PARAM_MANF_NAME = 20, + DEVICE_DESC_PARAM_PRDCT_NAME = 21, + DEVICE_DESC_PARAM_SN = 22, + DEVICE_DESC_PARAM_OEM_ID = 23, + DEVICE_DESC_PARAM_MANF_ID = 24, + DEVICE_DESC_PARAM_UD_OFFSET = 26, + DEVICE_DESC_PARAM_UD_LEN = 27, + DEVICE_DESC_PARAM_RTT_CAP = 28, + DEVICE_DESC_PARAM_FRQ_RTC = 29, + DEVICE_DESC_PARAM_UFS_FEAT = 31, + DEVICE_DESC_PARAM_FFU_TMT = 32, + DEVICE_DESC_PARAM_Q_DPTH = 33, + DEVICE_DESC_PARAM_DEV_VER = 34, + DEVICE_DESC_PARAM_NUM_SEC_WPA = 36, + DEVICE_DESC_PARAM_PSA_MAX_DATA = 37, + DEVICE_DESC_PARAM_PSA_TMT = 41, + DEVICE_DESC_PARAM_PRDCT_REV = 42, + DEVICE_DESC_PARAM_HPB_VER = 64, + DEVICE_DESC_PARAM_HPB_CONTROL = 66, + DEVICE_DESC_PARAM_EXT_UFS_FEATURE_SUP = 79, + DEVICE_DESC_PARAM_WB_PRESRV_USRSPC_EN = 83, + DEVICE_DESC_PARAM_WB_TYPE = 84, + DEVICE_DESC_PARAM_WB_SHARED_ALLOC_UNITS = 85, }; -enum led_default_state { - LEDS_DEFSTATE_OFF = 0, - LEDS_DEFSTATE_ON = 1, - LEDS_DEFSTATE_KEEP = 2, +enum { + UFS_DEV_LOW_TEMP_NOTIF = 16, + UFS_DEV_HIGH_TEMP_NOTIF = 32, + UFS_DEV_EXT_TEMP_NOTIF = 64, + UFS_DEV_HPB_SUPPORT = 128, + UFS_DEV_WRITE_BOOSTER_SUP = 256, + UFS_DEV_EXT_IID_SUP = 65536, }; -typedef int (*gpio_blink_set_t)(struct gpio_desc *, int, unsigned long *, unsigned long *); - -struct gpio_led_data { - struct led_classdev cdev; - struct gpio_desc *gpiod; - u8 can_sleep; - u8 blinking; - gpio_blink_set_t platform_gpio_blink_set; +enum unit_desc_param { + UNIT_DESC_PARAM_LEN = 0, + UNIT_DESC_PARAM_TYPE = 1, + UNIT_DESC_PARAM_UNIT_INDEX = 2, + UNIT_DESC_PARAM_LU_ENABLE = 3, + UNIT_DESC_PARAM_BOOT_LUN_ID = 4, + UNIT_DESC_PARAM_LU_WR_PROTECT = 5, + UNIT_DESC_PARAM_LU_Q_DEPTH = 6, + UNIT_DESC_PARAM_PSA_SENSITIVE = 7, + UNIT_DESC_PARAM_MEM_TYPE = 8, + UNIT_DESC_PARAM_DATA_RELIABILITY = 9, + UNIT_DESC_PARAM_LOGICAL_BLK_SIZE = 10, + UNIT_DESC_PARAM_LOGICAL_BLK_COUNT = 11, + UNIT_DESC_PARAM_ERASE_BLK_SIZE = 19, + UNIT_DESC_PARAM_PROVISIONING_TYPE = 23, + UNIT_DESC_PARAM_PHY_MEM_RSRC_CNT = 24, + UNIT_DESC_PARAM_CTX_CAPABILITIES = 32, + UNIT_DESC_PARAM_LARGE_UNIT_SIZE_M1 = 34, + UNIT_DESC_PARAM_HPB_LU_MAX_ACTIVE_RGNS = 35, + UNIT_DESC_PARAM_HPB_PIN_RGN_START_OFF = 37, + UNIT_DESC_PARAM_HPB_NUM_PIN_RGNS = 39, + UNIT_DESC_PARAM_WB_BUF_ALLOC_UNITS = 41, }; -struct gpio_led { - const char *name; - const char *default_trigger; - unsigned int gpio; - unsigned int active_low: 1; - unsigned int retain_state_suspended: 1; - unsigned int panic_indicator: 1; - unsigned int default_state: 2; - unsigned int retain_state_shutdown: 1; - struct gpio_desc *gpiod; +enum { + MASK_EE_STATUS = 65535, + MASK_EE_DYNCAP_EVENT = 1, + MASK_EE_SYSPOOL_EVENT = 2, + MASK_EE_URGENT_BKOPS = 4, + MASK_EE_TOO_HIGH_TEMP = 8, + MASK_EE_TOO_LOW_TEMP = 16, + MASK_EE_WRITEBOOSTER_EVENT = 32, + MASK_EE_PERFORMANCE_THROTTLING = 64, }; -struct gpio_leds_priv { - int num_leds; - struct gpio_led_data leds[0]; +enum { + PA_HS_MODE_A = 1, + PA_HS_MODE_B = 2, }; -struct gpio_led_platform_data { - int num_leds; - const struct gpio_led *leds; - gpio_blink_set_t gpio_blink_set; +enum power_desc_param_offset { + PWR_DESC_LEN = 0, + PWR_DESC_TYPE = 1, + PWR_DESC_ACTIVE_LVLS_VCC_0 = 2, + PWR_DESC_ACTIVE_LVLS_VCCQ_0 = 34, + PWR_DESC_ACTIVE_LVLS_VCCQ2_0 = 66, }; -enum scmi_system_protocol_cmd { - SYSTEM_POWER_STATE_NOTIFY = 5, +enum { + UFSHCD_NANO_AMP = 0, + UFSHCD_MICRO_AMP = 1, + UFSHCD_MILI_AMP = 2, + UFSHCD_AMP = 3, }; -enum scmi_system_events { - SCMI_SYSTEM_SHUTDOWN = 0, - SCMI_SYSTEM_COLDRESET = 1, - SCMI_SYSTEM_WARMRESET = 2, - SCMI_SYSTEM_POWERUP = 3, - SCMI_SYSTEM_SUSPEND = 4, - SCMI_SYSTEM_MAX = 5, +enum { + UPIU_COMMAND_SET_TYPE_SCSI = 0, + UPIU_COMMAND_SET_TYPE_UFS = 1, + UPIU_COMMAND_SET_TYPE_QUERY = 2, }; -struct scmi_system_power_state_notify { - __le32 notify_enable; +enum ufs_lu_wp_type { + UFS_LU_NO_WP = 0, + UFS_LU_POWER_ON_WP = 1, + UFS_LU_PERM_WP = 2, }; -struct scmi_system_info { - u32 version; - bool graceful_timeout_supported; +enum rpmb_unit_desc_param { + RPMB_UNIT_DESC_PARAM_LEN = 0, + RPMB_UNIT_DESC_PARAM_TYPE = 1, + RPMB_UNIT_DESC_PARAM_UNIT_INDEX = 2, + RPMB_UNIT_DESC_PARAM_LU_ENABLE = 3, + RPMB_UNIT_DESC_PARAM_BOOT_LUN_ID = 4, + RPMB_UNIT_DESC_PARAM_LU_WR_PROTECT = 5, + RPMB_UNIT_DESC_PARAM_LU_Q_DEPTH = 6, + RPMB_UNIT_DESC_PARAM_PSA_SENSITIVE = 7, + RPMB_UNIT_DESC_PARAM_MEM_TYPE = 8, + RPMB_UNIT_DESC_PARAM_REGION_EN = 9, + RPMB_UNIT_DESC_PARAM_LOGICAL_BLK_SIZE = 10, + RPMB_UNIT_DESC_PARAM_LOGICAL_BLK_COUNT = 11, + RPMB_UNIT_DESC_PARAM_REGION0_SIZE = 19, + RPMB_UNIT_DESC_PARAM_REGION1_SIZE = 20, + RPMB_UNIT_DESC_PARAM_REGION2_SIZE = 21, + RPMB_UNIT_DESC_PARAM_REGION3_SIZE = 22, + RPMB_UNIT_DESC_PARAM_PROVISIONING_TYPE = 23, + RPMB_UNIT_DESC_PARAM_PHY_MEM_RSRC_CNT = 24, }; -struct scmi_system_power_state_notifier_payld { - __le32 agent_id; - __le32 flags; - __le32 system_state; - __le32 timeout; +enum { + MASK_EXT_IID_SUPPORT = 1024, }; -struct scmi_system_power_state_notifier_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int flags; - unsigned int system_state; - unsigned int timeout; +enum { + TASK_REQ_UPIU_SIZE_DWORDS = 8, + TASK_RSP_UPIU_SIZE_DWORDS = 8, + ALIGNED_UPIU_SIZE = 512, }; -typedef void (*tegra_bpmp_mrq_handler_t)(unsigned int, struct tegra_bpmp_channel *, void *); - -struct tegra_bpmp_mrq { +struct ufs_clk_info { struct list_head list; - unsigned int mrq; - tegra_bpmp_mrq_handler_t handler; - void *data; -}; - -struct tegra_bpmp_mb_data { - u32 code; - u32 flags; - u8 data[120]; -}; - -struct mrq_query_abi_request { - uint32_t mrq; + struct clk *clk; + const char *name; + u32 max_freq; + u32 min_freq; + u32 curr_freq; + bool keep_link_active; + bool enabled; }; -struct mrq_query_abi_response { - int32_t status; +struct trace_event_raw_ufshcd_clk_gating { + struct trace_entry ent; + u32 __data_loc_dev_name; + int state; + char __data[0]; }; -struct mrq_query_tag_request { - uint32_t addr; +struct trace_event_raw_ufshcd_clk_scaling { + struct trace_entry ent; + u32 __data_loc_dev_name; + u32 __data_loc_state; + u32 __data_loc_clk; + u32 prev_state; + u32 curr_state; + char __data[0]; }; -struct mrq_ping_request { - uint32_t challenge; +struct trace_event_raw_ufshcd_auto_bkops_state { + struct trace_entry ent; + u32 __data_loc_dev_name; + u32 __data_loc_state; + char __data[0]; }; -struct mrq_ping_response { - uint32_t reply; +struct trace_event_raw_ufshcd_profiling_template { + struct trace_entry ent; + u32 __data_loc_dev_name; + u32 __data_loc_profile_info; + s64 time_us; + int err; + char __data[0]; }; -struct mrq_query_fw_tag_response { - uint8_t tag[32]; +struct trace_event_raw_ufshcd_template { + struct trace_entry ent; + s64 usecs; + int err; + u32 __data_loc_dev_name; + int dev_state; + int link_state; + char __data[0]; }; -struct ec_params_host_sleep_event { - uint8_t sleep_event; +struct trace_event_raw_ufshcd_command { + struct trace_entry ent; + struct scsi_device *sdev; + enum ufs_trace_str_t str_t; + unsigned int tag; + u32 doorbell; + u32 hwq_id; + u32 intr; + u64 lba; + int transfer_len; + u8 opcode; + u8 group_id; + char __data[0]; }; -struct ec_params_host_sleep_event_v1 { - uint8_t sleep_event; - uint8_t reserved; - union { - struct { - uint16_t sleep_timeout_ms; - } suspend_params; - }; +struct trace_event_raw_ufshcd_uic_command { + struct trace_entry ent; + u32 __data_loc_dev_name; + enum ufs_trace_str_t str_t; + u32 cmd; + u32 arg1; + u32 arg2; + u32 arg3; + char __data[0]; }; -struct ec_response_host_sleep_event_v1 { - union { - struct { - uint32_t sleep_transitions; - } resume_response; - }; +struct trace_event_raw_ufshcd_upiu { + struct trace_entry ent; + u32 __data_loc_dev_name; + enum ufs_trace_str_t str_t; + unsigned char hdr[12]; + unsigned char tsf[16]; + enum ufs_trace_tsf_t tsf_t; + char __data[0]; }; -enum host_sleep_event { - HOST_SLEEP_EVENT_S3_SUSPEND = 1, - HOST_SLEEP_EVENT_S3_RESUME = 2, - HOST_SLEEP_EVENT_S0IX_SUSPEND = 3, - HOST_SLEEP_EVENT_S0IX_RESUME = 4, - HOST_SLEEP_EVENT_S3_WAKEABLE_SUSPEND = 5, +struct trace_event_raw_ufshcd_exception_event { + struct trace_entry ent; + u32 __data_loc_dev_name; + u16 status; + char __data[0]; }; -struct rpmsg_channel_info { - char name[32]; - u32 src; - u32 dst; +struct utp_upiu_query_v4_0 { + __u8 opcode; + __u8 idn; + __u8 index; + __u8 selector; + __u8 osf3; + __u8 osf4; + __be16 osf5; + __be32 osf6; + __be32 osf7; + __be32 reserved; }; -struct qcom_glink { - struct device *dev; - struct qcom_glink_pipe *rx_pipe; - struct qcom_glink_pipe *tx_pipe; - struct work_struct rx_work; - spinlock_t rx_lock; - struct list_head rx_queue; - spinlock_t tx_lock; - spinlock_t idr_lock; - struct idr lcids; - struct idr rcids; - unsigned long features; - bool intentless; - wait_queue_head_t tx_avail_notify; - bool sent_read_notify; - bool abort_tx; +struct trace_event_data_offsets_ufshcd_clk_gating { + u32 dev_name; }; -struct glink_msg { - __le16 cmd; - __le16 param1; - __le32 param2; - u8 data[0]; +struct trace_event_data_offsets_ufshcd_clk_scaling { + u32 dev_name; + u32 state; + u32 clk; }; -struct glink_defer_cmd { - struct list_head node; - struct glink_msg msg; - u8 data[0]; +struct trace_event_data_offsets_ufshcd_auto_bkops_state { + u32 dev_name; + u32 state; }; -struct glink_core_rx_intent; - -struct glink_channel { - struct rpmsg_endpoint ept; - struct rpmsg_device *rpdev; - struct qcom_glink *glink; - struct kref refcount; - spinlock_t recv_lock; - char *name; - unsigned int lcid; - unsigned int rcid; - spinlock_t intent_lock; - struct idr liids; - struct idr riids; - struct work_struct intent_work; - struct list_head done_intents; - struct glink_core_rx_intent *buf; - int buf_offset; - int buf_size; - struct completion open_ack; - struct completion open_req; - struct mutex intent_req_lock; - int intent_req_result; - bool intent_received; - wait_queue_head_t intent_req_wq; +struct trace_event_data_offsets_ufshcd_profiling_template { + u32 dev_name; + u32 profile_info; }; -struct glink_core_rx_intent { - void *data; - u32 id; - size_t size; - bool reuse; - bool in_use; - u32 offset; - struct list_head node; +struct trace_event_data_offsets_ufshcd_template { + u32 dev_name; }; -struct intent_pair { - __le32 size; - __le32 iid; +struct trace_event_data_offsets_ufshcd_uic_command { + u32 dev_name; }; -struct command { - __le16 id; - __le16 lcid; - __le32 count; - __le32 size; - __le32 liid; +struct trace_event_data_offsets_ufshcd_upiu { + u32 dev_name; }; -struct l3cache_event_ops { - void (*start)(struct perf_event *); - void (*stop)(struct perf_event *, int); - void (*update)(struct perf_event *); +struct trace_event_data_offsets_ufshcd_exception_event { + u32 dev_name; }; -struct l3cache_pmu { - struct pmu pmu; - struct hlist_node node; - void *regs; - struct perf_event *events[8]; - unsigned long used_mask[1]; - cpumask_t cpumask; -}; +struct trace_event_data_offsets_ufshcd_command {}; -struct rtnl_link { - rtnl_doit_func doit; - rtnl_dumpit_func dumpit; - struct module *owner; - unsigned int flags; - struct callback_head rcu; +struct uc_string_id { + u8 len; + u8 type; + wchar_t uc[0]; }; -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, +struct scm_legacy_response { + __le32 len; + __le32 buf_offset; + __le32 is_complete; }; -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, +struct scm_legacy_command { + __le32 len; + __le32 buf_offset; + __le32 resp_hdr_offset; + __le32 id; + __le32 buf[0]; }; -enum { - IFLA_BRPORT_UNSPEC = 0, - IFLA_BRPORT_STATE = 1, - IFLA_BRPORT_PRIORITY = 2, - IFLA_BRPORT_COST = 3, - IFLA_BRPORT_MODE = 4, - IFLA_BRPORT_GUARD = 5, - IFLA_BRPORT_PROTECT = 6, - IFLA_BRPORT_FAST_LEAVE = 7, - IFLA_BRPORT_LEARNING = 8, - IFLA_BRPORT_UNICAST_FLOOD = 9, - IFLA_BRPORT_PROXYARP = 10, - IFLA_BRPORT_LEARNING_SYNC = 11, - IFLA_BRPORT_PROXYARP_WIFI = 12, - IFLA_BRPORT_ROOT_ID = 13, - IFLA_BRPORT_BRIDGE_ID = 14, - IFLA_BRPORT_DESIGNATED_PORT = 15, - IFLA_BRPORT_DESIGNATED_COST = 16, - IFLA_BRPORT_ID = 17, - IFLA_BRPORT_NO = 18, - IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19, - IFLA_BRPORT_CONFIG_PENDING = 20, - IFLA_BRPORT_MESSAGE_AGE_TIMER = 21, - IFLA_BRPORT_FORWARD_DELAY_TIMER = 22, - IFLA_BRPORT_HOLD_TIMER = 23, - IFLA_BRPORT_FLUSH = 24, - IFLA_BRPORT_MULTICAST_ROUTER = 25, - IFLA_BRPORT_PAD = 26, - IFLA_BRPORT_MCAST_FLOOD = 27, - IFLA_BRPORT_MCAST_TO_UCAST = 28, - IFLA_BRPORT_VLAN_TUNNEL = 29, - IFLA_BRPORT_BCAST_FLOOD = 30, - IFLA_BRPORT_GROUP_FWD_MASK = 31, - IFLA_BRPORT_NEIGH_SUPPRESS = 32, - IFLA_BRPORT_ISOLATED = 33, - IFLA_BRPORT_BACKUP_PORT = 34, - IFLA_BRPORT_MRP_RING_OPEN = 35, - IFLA_BRPORT_MRP_IN_OPEN = 36, - IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37, - IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38, - IFLA_BRPORT_LOCKED = 39, - IFLA_BRPORT_MAB = 40, - IFLA_BRPORT_MCAST_N_GROUPS = 41, - IFLA_BRPORT_MCAST_MAX_GROUPS = 42, - IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 43, - __IFLA_BRPORT_MAX = 44, +struct arm_smccc_args { + unsigned long args[8]; }; -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, +struct qcom_scm_desc { + u32 svc; + u32 cmd; + u32 arginfo; + u64 args[10]; + u32 owner; }; -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, +struct qcom_scm_res { + u64 result[3]; }; -enum rtnl_kinds { - RTNL_KIND_NEW = 0, - RTNL_KIND_DEL = 1, - RTNL_KIND_GET = 2, - RTNL_KIND_SET = 3, -}; +typedef int (*of_init_fn_1_ret)(struct device_node *); -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, +struct apple_key_translation { + u16 from; + u16 to; + u8 flags; }; -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, +struct apple_non_apple_keyboard { + char *name; }; -enum { - IFLA_VF_INFO_UNSPEC = 0, - IFLA_VF_INFO = 1, - __IFLA_VF_INFO_MAX = 2, +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; }; -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, +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; }; -enum { - IFLA_VF_VLAN_INFO_UNSPEC = 0, - IFLA_VF_VLAN_INFO = 1, - __IFLA_VF_VLAN_INFO_MAX = 2, +struct apple_backlight_config_report { + u8 report_id; + u8 version; + u16 backlight_off; + u16 backlight_on_min; + u16 backlight_on_max; }; -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, +struct apple_backlight_set_report { + u8 report_id; + u8 version; + u16 backlight; + u16 rate; }; -enum { - IFLA_VF_PORT_UNSPEC = 0, - IFLA_VF_PORT = 1, - __IFLA_VF_PORT_MAX = 2, +enum ec_status { + EC_RES_SUCCESS = 0, + EC_RES_INVALID_COMMAND = 1, + EC_RES_ERROR = 2, + EC_RES_INVALID_PARAM = 3, + EC_RES_ACCESS_DENIED = 4, + EC_RES_INVALID_RESPONSE = 5, + EC_RES_INVALID_VERSION = 6, + EC_RES_INVALID_CHECKSUM = 7, + EC_RES_IN_PROGRESS = 8, + EC_RES_UNAVAILABLE = 9, + EC_RES_TIMEOUT = 10, + EC_RES_OVERFLOW = 11, + EC_RES_INVALID_HEADER = 12, + EC_RES_REQUEST_TRUNCATED = 13, + EC_RES_RESPONSE_TOO_BIG = 14, + EC_RES_BUS_ERROR = 15, + EC_RES_BUSY = 16, + EC_RES_INVALID_HEADER_VERSION = 17, + EC_RES_INVALID_HEADER_CRC = 18, + EC_RES_INVALID_DATA_CRC = 19, + EC_RES_DUP_UNAVAILABLE = 20, }; -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 ec_mkbp_event { + EC_MKBP_EVENT_KEY_MATRIX = 0, + EC_MKBP_EVENT_HOST_EVENT = 1, + EC_MKBP_EVENT_SENSOR_FIFO = 2, + EC_MKBP_EVENT_BUTTON = 3, + EC_MKBP_EVENT_SWITCH = 4, + EC_MKBP_EVENT_FINGERPRINT = 5, + EC_MKBP_EVENT_SYSRQ = 6, + EC_MKBP_EVENT_HOST_EVENT64 = 7, + EC_MKBP_EVENT_CEC_EVENT = 8, + EC_MKBP_EVENT_CEC_MESSAGE = 9, + EC_MKBP_EVENT_PCHG = 12, + EC_MKBP_EVENT_COUNT = 13, }; -enum { - XDP_ATTACHED_NONE = 0, - XDP_ATTACHED_DRV = 1, - XDP_ATTACHED_SKB = 2, - XDP_ATTACHED_HW = 3, - XDP_ATTACHED_MULTI = 4, +enum motionsense_command { + MOTIONSENSE_CMD_DUMP = 0, + MOTIONSENSE_CMD_INFO = 1, + MOTIONSENSE_CMD_EC_RATE = 2, + MOTIONSENSE_CMD_SENSOR_ODR = 3, + MOTIONSENSE_CMD_SENSOR_RANGE = 4, + MOTIONSENSE_CMD_KB_WAKE_ANGLE = 5, + MOTIONSENSE_CMD_DATA = 6, + MOTIONSENSE_CMD_FIFO_INFO = 7, + MOTIONSENSE_CMD_FIFO_FLUSH = 8, + MOTIONSENSE_CMD_FIFO_READ = 9, + MOTIONSENSE_CMD_PERFORM_CALIB = 10, + MOTIONSENSE_CMD_SENSOR_OFFSET = 11, + MOTIONSENSE_CMD_LIST_ACTIVITIES = 12, + MOTIONSENSE_CMD_SET_ACTIVITY = 13, + MOTIONSENSE_CMD_LID_ANGLE = 14, + MOTIONSENSE_CMD_FIFO_INT_ENABLE = 15, + MOTIONSENSE_CMD_SPOOF = 16, + MOTIONSENSE_CMD_TABLET_MODE_LID_ANGLE = 17, + MOTIONSENSE_CMD_SENSOR_SCALE = 18, + MOTIONSENSE_NUM_CMDS = 19, }; 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, + EC_MSG_TX_HEADER_BYTES = 3, + EC_MSG_TX_TRAILER_BYTES = 1, + EC_MSG_TX_PROTO_BYTES = 4, + EC_MSG_RX_PROTO_BYTES = 3, + EC_PROTO2_MSG_BYTES = 256, + EC_MAX_MSG_BYTES = 65536, }; -enum bpf_xdp_mode { - XDP_MODE_SKB = 0, - XDP_MODE_DRV = 1, - XDP_MODE_HW = 2, - __MAX_XDP_MODE = 3, +enum ec_comms_status { + EC_COMMS_STATUS_PROCESSING = 1, }; -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, +struct ec_motion_sense_activity { + uint8_t sensor_num; + uint8_t activity; + uint8_t enable; + uint8_t reserved; + uint16_t parameters[3]; }; -enum netdev_offload_xstats_type { - NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, -}; +struct ec_params_motion_sense { + uint8_t cmd; + union { + struct { + uint8_t max_sensor_count; + } dump; + struct { + int16_t data; + } kb_wake_angle; + struct { + uint8_t sensor_num; + } info; + struct { + uint8_t sensor_num; + } info_3; + struct { + uint8_t sensor_num; + } data; + struct { + uint8_t sensor_num; + } fifo_flush; + struct { + uint8_t sensor_num; + } perform_calib; + struct { + uint8_t sensor_num; + } list_activities; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } ec_rate; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } sensor_odr; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } sensor_range; + struct { + uint8_t sensor_num; + uint16_t flags; + int16_t temp; + int16_t offset[3]; + } __attribute__((packed)) sensor_offset; + struct { + uint8_t sensor_num; + uint16_t flags; + int16_t temp; + uint16_t scale[3]; + } __attribute__((packed)) sensor_scale; + struct { + uint32_t max_data_vector; + } fifo_read; + struct ec_motion_sense_activity set_activity; + struct { + int8_t enable; + } fifo_int_enable; + struct { + uint8_t sensor_id; + uint8_t spoof_enable; + uint8_t reserved; + int16_t components[3]; + } __attribute__((packed)) spoof; + struct { + int16_t lid_angle; + int16_t hys_degree; + } tablet_mode_threshold; + }; +} __attribute__((packed)); -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, +struct ec_response_motion_sensor_data { + uint8_t flags; + uint8_t sensor_num; + union { + int16_t data[3]; + struct { + uint16_t reserved; + uint32_t timestamp; + } __attribute__((packed)); + struct { + uint8_t activity; + uint8_t state; + int16_t add_info[2]; + }; + }; }; -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 ec_response_motion_sense_fifo_data { + uint32_t number_data; + struct ec_response_motion_sensor_data data[0]; }; -enum { - MDBA_SET_ENTRY_UNSPEC = 0, - MDBA_SET_ENTRY = 1, - MDBA_SET_ENTRY_ATTRS = 2, - __MDBA_SET_ENTRY_MAX = 3, +struct ec_response_motion_sense { + union { + struct { + uint8_t module_flags; + uint8_t sensor_count; + struct { + struct {} __empty_sensor; + struct ec_response_motion_sensor_data sensor[0]; + }; + } dump; + struct { + uint8_t type; + uint8_t location; + uint8_t chip; + } info; + struct { + uint8_t type; + uint8_t location; + uint8_t chip; + uint32_t min_frequency; + uint32_t max_frequency; + uint32_t fifo_max_event_count; + } info_3; + struct ec_response_motion_sensor_data data; + struct { + int32_t ret; + } ec_rate; + struct { + int32_t ret; + } sensor_odr; + struct { + int32_t ret; + } sensor_range; + struct { + int32_t ret; + } kb_wake_angle; + struct { + int32_t ret; + } fifo_int_enable; + struct { + int32_t ret; + } spoof; + struct { + int16_t temp; + int16_t offset[3]; + } sensor_offset; + struct { + int16_t temp; + int16_t offset[3]; + } perform_calib; + struct { + int16_t temp; + uint16_t scale[3]; + } sensor_scale; + struct ec_response_motion_sense_fifo_info fifo_info; + struct ec_response_motion_sense_fifo_info fifo_flush; + struct ec_response_motion_sense_fifo_data fifo_read; + struct { + uint16_t reserved; + uint32_t enabled; + uint32_t disabled; + } __attribute__((packed)) list_activities; + struct { + uint16_t value; + } lid_angle; + struct { + uint16_t lid_angle; + uint16_t hys_degree; + } tablet_mode_threshold; + }; }; -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 *); +struct ec_host_request { + uint8_t struct_version; + uint8_t checksum; + uint16_t command; + uint8_t command_version; + uint8_t reserved; + uint16_t data_len; }; -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 ec_response_get_protocol_info { + uint32_t protocol_versions; + uint16_t max_request_packet_size; + uint16_t max_response_packet_size; + uint32_t flags; }; -struct rtnl_offload_xstats_request_used { - bool request; - bool used; +struct ec_params_hello { + uint32_t in_data; }; -struct rtnl_newlink_tbs { - struct nlattr *tb[65]; - struct nlattr *attr[51]; - struct nlattr *slave_attr[44]; +struct ec_response_hello { + uint32_t out_data; }; -struct if_stats_msg { - __u8 family; - __u8 pad1; - __u16 pad2; - __u32 ifindex; - __u32 filter_mask; +struct ec_params_get_cmd_versions { + uint8_t cmd; }; -struct br_port_msg { - __u8 family; - __u32 ifindex; +struct ec_response_get_cmd_versions { + uint32_t version_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 ec_response_host_event_mask { + uint32_t mask; }; -struct netlink_dump_control { - int (*start)(struct netlink_callback *); - int (*dump)(struct sk_buff *, struct netlink_callback *); - int (*done)(struct netlink_callback *); - struct netlink_ext_ack *extack; - void *data; - struct module *module; - u32 min_dump_alloc; +struct ec_response_get_comms_status { + uint32_t flags; }; -struct ifla_vf_mac { - __u32 vf; - __u8 mac[32]; +struct ec_response_get_features { + uint32_t flags[2]; }; -struct ifla_vf_vlan { - __u32 vf; - __u32 vlan; - __u32 qos; -}; +struct cros_ec_debugfs; -struct ifla_vf_vlan_info { - __u32 vf; - __u32 vlan; - __u32 qos; - __be16 vlan_proto; +struct cros_ec_dev { + struct device class_dev; + struct cros_ec_device *ec_dev; + struct device *dev; + struct cros_ec_debugfs *debug_info; + bool has_kb_wake_angle; + u16 cmd_offset; + struct ec_response_get_features features; }; -struct ifla_vf_tx_rate { - __u32 vf; - __u32 rate; -}; +struct virtqueue; -struct ifla_vf_rate { - __u32 vf; - __u32 min_tx_rate; - __u32 max_tx_rate; -}; +typedef void vq_callback_t(struct virtqueue *); -struct ifla_vf_spoofchk { - __u32 vf; - __u32 setting; -}; +struct virtio_device; -struct ifla_vf_link_state { - __u32 vf; - __u32 link_state; -}; +struct virtio_shm_region; -struct ifla_vf_rss_query_en { - __u32 vf; - __u32 setting; +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 ifla_vf_trust { - __u32 vf; - __u32 setting; -}; +struct vringh_config_ops; -struct rtnl_stats_dump_filters { - u32 mask[6]; +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; }; -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 virtqueue { + struct list_head list; + void (*callback)(struct virtqueue *); + const char *name; + struct virtio_device *vdev; + unsigned int index; + unsigned int num_free; + unsigned int num_max; + bool reset; + void *priv; }; -struct rtnl_mdb_dump_ctx { - long idx; +struct virtio_shm_region { + u64 addr; + u64 len; }; -struct rtnl_link_ifmap { - __u64 mem_start; - __u64 mem_end; - __u64 base_addr; - __u16 irq; - __u8 dma; - __u8 port; +struct rproc_subdev { + struct list_head node; + int (*prepare)(struct rproc_subdev *); + int (*start)(struct rproc_subdev *); + void (*stop)(struct rproc_subdev *, bool); + void (*unprepare)(struct rproc_subdev *); }; -struct ifla_vf_broadcast { - __u8 broadcast[32]; +struct rproc_vdev; + +struct rproc_vring { + void *va; + int num; + u32 da; + u32 align; + int notifyid; + struct rproc_vdev *rvdev; + struct virtqueue *vq; }; -struct br_mdb_entry { - __u32 ifindex; - __u8 state; - __u8 flags; - __u16 vid; - struct { - union { - __be32 ip4; - struct in6_addr ip6; - unsigned char mac_addr[6]; - } u; - __be16 proto; - } addr; +struct rproc_vdev { + struct rproc_subdev subdev; + struct platform_device *pdev; + unsigned int id; + struct list_head node; + struct rproc *rproc; + struct rproc_vring vring[2]; + u32 rsc_offset; + u32 index; }; -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 rproc_vdev_data { + u32 rsc_offset; + unsigned int id; + u32 index; + struct fw_rsc_vdev *rsc; }; -struct privflags_reply_data { - struct ethnl_reply_data base; - const char (*priv_flag_names)[32]; - unsigned int n_priv_flags; - u32 priv_flags; +struct pcm_format_data { + unsigned char width; + unsigned char phys; + signed char le; + signed char signd; + unsigned char silence[8]; }; -enum xprt_xid_rb_cmp { - XID_RB_EQUAL = 0, - XID_RB_LEFT = 1, - XID_RB_RIGHT = 2, +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, }; -struct rpc_sysfs_xprt_switch { - struct kobject kobject; - struct net *net; - struct rpc_xprt_switch *xprt_switch; - struct rpc_xprt *xprt; +typedef int snd_pcm_hw_param_t; + +struct gnet_estimator { + signed char interval; + unsigned char ewma_log; }; -struct rpc_sysfs_xprt { - struct kobject kobject; - struct rpc_xprt *xprt; - struct rpc_xprt_switch *xprt_switch; +struct gnet_stats_rate_est64 { + __u64 bps; + __u64 pps; }; -struct _strp_msg { - struct strp_msg strp; - int accum_len; +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; }; -enum kvm_pgtable_walk_flags { - KVM_PGTABLE_WALK_LEAF = 1, - KVM_PGTABLE_WALK_TABLE_PRE = 2, - KVM_PGTABLE_WALK_TABLE_POST = 4, - KVM_PGTABLE_WALK_SHARED = 8, - KVM_PGTABLE_WALK_HANDLE_FAULT = 16, - KVM_PGTABLE_WALK_SKIP_BBM_TLBI = 32, - KVM_PGTABLE_WALK_SKIP_CMO = 64, +struct rhashtable_walker { + struct list_head list; + struct bucket_table *tbl; }; -struct hyp_shared_pfn { - u64 pfn; - int count; - struct rb_node node; +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 optimistic_spin_node { - struct optimistic_spin_node *next; - struct optimistic_spin_node *prev; - int locked; - int cpu; +struct xdp_attachment_info { + struct bpf_prog *prog; + u32 flags; }; -enum { - GP_IDLE = 0, - GP_ENTER = 1, - GP_PASSED = 2, - GP_EXIT = 3, - GP_REPLAY = 4, +typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64); + +typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64); + +typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); + +struct bpf_stab { + struct bpf_map map; + struct sock **sks; + struct sk_psock_progs progs; + spinlock_t lock; + long: 64; + long: 64; }; -struct dma_sgt_handle { - struct sg_table sgt; - struct page **pages; +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: 64; }; -struct dma_devres { - size_t size; - void *vaddr; - dma_addr_t dma_handle; - unsigned long attrs; +struct bpf_shtab_bucket { + struct hlist_head head; + spinlock_t lock; }; -struct __kernel_old_itimerval { - struct __kernel_old_timeval it_interval; - struct __kernel_old_timeval it_value; +struct bpf_shtab_elem { + struct callback_head rcu; + u32 hash; + struct sock *sk; + struct hlist_node node; + u8 key[0]; }; -struct old_itimerval32 { - struct old_timeval32 it_interval; - struct old_timeval32 it_value; +struct sock_map_seq_info { + struct bpf_map *map; + struct sock *sk; + u32 index; }; -struct itimerspec64 { - struct timespec64 it_interval; - struct timespec64 it_value; +struct bpf_iter__sockmap { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + struct sock *sk; + }; }; -struct audit_fsnotify_mark { - dev_t dev; - unsigned long ino; - char *path; - struct fsnotify_mark mark; - struct audit_krule *rule; +struct sock_hash_seq_info { + struct bpf_map *map; + struct bpf_shtab *htab; + u32 bucket_id; }; -struct event_trigger_data; +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 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 *); +struct linkmodes_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; + bool peer_empty; }; -struct event_command; +struct link_mode_info { + int speed; + u8 lanes; + u8 duplex; +}; -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; +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, }; -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 *); +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 { - EVENT_TRIGGER_FL_PROBE = 1, + 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 eprobe_trace_entry_head { - struct trace_entry ent; +struct pse_control_status { + enum ethtool_podl_pse_admin_state podl_admin_state; + enum ethtool_podl_pse_pw_d_status podl_pw_status; }; -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 pse_reply_data { + struct ethnl_reply_data base; + struct pse_control_status status; }; -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 pse_control_config { + enum ethtool_podl_pse_admin_state admin_cotrol; }; -struct eprobe_data { - struct trace_event_file *file; - struct trace_eprobe *ep; +struct tcp_seq_afinfo { + sa_family_t family; +}; + +enum tsq_enum { + TSQ_THROTTLED = 0, + TSQ_QUEUED = 1, + TCP_TSQ_DEFERRED = 2, + TCP_WRITE_TIMER_DEFERRED = 3, + TCP_DELACK_TIMER_DEFERRED = 4, + TCP_MTU_REDUCED_DEFERRED = 5, + TCP_ACK_DEFERRED = 6, }; enum { - BPF_RINGBUF_BUSY_BIT = 2147483648, - BPF_RINGBUF_DISCARD_BIT = 1073741824, - BPF_RINGBUF_HDR_SZ = 8, + TCP_MIB_NUM = 0, + TCP_MIB_RTOALGORITHM = 1, + TCP_MIB_RTOMIN = 2, + TCP_MIB_RTOMAX = 3, + TCP_MIB_MAXCONN = 4, + TCP_MIB_ACTIVEOPENS = 5, + TCP_MIB_PASSIVEOPENS = 6, + TCP_MIB_ATTEMPTFAILS = 7, + TCP_MIB_ESTABRESETS = 8, + TCP_MIB_CURRESTAB = 9, + TCP_MIB_INSEGS = 10, + TCP_MIB_OUTSEGS = 11, + TCP_MIB_RETRANSSEGS = 12, + TCP_MIB_INERRS = 13, + TCP_MIB_OUTRSTS = 14, + TCP_MIB_CSUMERRORS = 15, + __TCP_MIB_MAX = 16, +}; + +enum tcp_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, +}; + +enum inet_csk_ack_state_t { + ICSK_ACK_SCHED = 1, + ICSK_ACK_TIMER = 2, + ICSK_ACK_PUSHED = 4, + ICSK_ACK_PUSHED2 = 8, + ICSK_ACK_NOW = 16, + ICSK_ACK_NOMEM = 32, +}; + +struct tcp_ao_key; + +struct tcp_md5sig_key; + +struct tcp_key { + union { + struct { + struct tcp_ao_key *ao_key; + char *traffic_key; + u32 sne; + u8 rcv_next; + }; + struct tcp_md5sig_key *md5_key; + }; + enum { + TCP_KEY_NONE = 0, + TCP_KEY_MD5 = 1, + TCP_KEY_AO = 2, + } type; +}; + +union tcp_ao_addr { + struct in_addr a4; + struct in6_addr a6; +}; + +struct tcp_ao_key { + struct hlist_node node; + union tcp_ao_addr addr; + u8 key[80]; + unsigned int tcp_sigpool_id; + unsigned int digest_size; + int l3index; + u8 prefixlen; + u8 family; + u8 keylen; + u8 keyflags; + u8 sndid; + u8 rcvid; + u8 maclen; + struct callback_head rcu; + atomic64_t pkt_good; + atomic64_t pkt_bad; + u8 traffic_keys[0]; +}; + +struct tcp_md5sig_key { + struct hlist_node node; + u8 keylen; + u8 family; + u8 prefixlen; + u8 flags; + union tcp_ao_addr addr; + int l3index; + u8 key[80]; + struct callback_head rcu; +}; + +struct tcp_ao_hdr { + u8 kind; + u8 length; + u8 keyid; + u8 rnext_keyid; +}; + +struct 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 inet_diag_req_v2; + +struct inet_diag_msg; + +struct inet_diag_handler { + void (*dump)(struct sk_buff *, struct netlink_callback *, const struct inet_diag_req_v2 *); + int (*dump_one)(struct netlink_callback *, const struct inet_diag_req_v2 *); + void (*idiag_get_info)(struct sock *, struct inet_diag_msg *, void *); + int (*idiag_get_aux)(struct sock *, bool, struct sk_buff *); + size_t (*idiag_get_aux_size)(struct sock *, bool); + int (*destroy)(struct sk_buff *, const struct inet_diag_req_v2 *); + __u16 idiag_type; + __u16 idiag_info_size; +}; + +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; +}; + +struct inet_diag_sockid { + __be16 idiag_sport; + __be16 idiag_dport; + __be32 idiag_src[4]; + __be32 idiag_dst[4]; + __u32 idiag_if; + __u32 idiag_cookie[2]; +}; + +struct inet_diag_req_v2 { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u8 idiag_ext; + __u8 pad; + __u32 idiag_states; + struct inet_diag_sockid id; +}; + +struct inet_diag_msg { + __u8 idiag_family; + __u8 idiag_state; + __u8 idiag_timer; + __u8 idiag_retrans; + struct inet_diag_sockid id; + __u32 idiag_expires; + __u32 idiag_rqueue; + __u32 idiag_wqueue; + __u32 idiag_uid; + __u32 idiag_inode; }; enum { - BPF_RB_NO_WAKEUP = 1, - BPF_RB_FORCE_WAKEUP = 2, + 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, }; enum { - BPF_RB_AVAIL_DATA = 0, - BPF_RB_RING_SIZE = 1, - BPF_RB_CONS_POS = 2, - BPF_RB_PROD_POS = 3, + 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, }; -typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64); +struct tcp_info { + __u8 tcpi_state; + __u8 tcpi_ca_state; + __u8 tcpi_retransmits; + __u8 tcpi_probes; + __u8 tcpi_backoff; + __u8 tcpi_options; + __u8 tcpi_snd_wscale: 4; + __u8 tcpi_rcv_wscale: 4; + __u8 tcpi_delivery_rate_app_limited: 1; + __u8 tcpi_fastopen_client_fail: 2; + __u32 tcpi_rto; + __u32 tcpi_ato; + __u32 tcpi_snd_mss; + __u32 tcpi_rcv_mss; + __u32 tcpi_unacked; + __u32 tcpi_sacked; + __u32 tcpi_lost; + __u32 tcpi_retrans; + __u32 tcpi_fackets; + __u32 tcpi_last_data_sent; + __u32 tcpi_last_ack_sent; + __u32 tcpi_last_data_recv; + __u32 tcpi_last_ack_recv; + __u32 tcpi_pmtu; + __u32 tcpi_rcv_ssthresh; + __u32 tcpi_rtt; + __u32 tcpi_rttvar; + __u32 tcpi_snd_ssthresh; + __u32 tcpi_snd_cwnd; + __u32 tcpi_advmss; + __u32 tcpi_reordering; + __u32 tcpi_rcv_rtt; + __u32 tcpi_rcv_space; + __u32 tcpi_total_retrans; + __u64 tcpi_pacing_rate; + __u64 tcpi_max_pacing_rate; + __u64 tcpi_bytes_acked; + __u64 tcpi_bytes_received; + __u32 tcpi_segs_out; + __u32 tcpi_segs_in; + __u32 tcpi_notsent_bytes; + __u32 tcpi_min_rtt; + __u32 tcpi_data_segs_in; + __u32 tcpi_data_segs_out; + __u64 tcpi_delivery_rate; + __u64 tcpi_busy_time; + __u64 tcpi_rwnd_limited; + __u64 tcpi_sndbuf_limited; + __u32 tcpi_delivered; + __u32 tcpi_delivered_ce; + __u64 tcpi_bytes_sent; + __u64 tcpi_bytes_retrans; + __u32 tcpi_dsack_dups; + __u32 tcpi_reord_seen; + __u32 tcpi_rcv_ooopack; + __u32 tcpi_snd_wnd; + __u32 tcpi_rcv_wnd; + __u32 tcpi_rehash; + __u16 tcpi_total_rto; + __u16 tcpi_total_rto_recoveries; + __u32 tcpi_total_rto_time; +}; -typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64); +enum devlink_resource_unit { + DEVLINK_RESOURCE_UNIT_ENTRY = 0, +}; -typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64); +struct devlink_resource_size_params { + u64 size_min; + u64 size_max; + u64 size_granularity; + enum devlink_resource_unit unit; +}; -typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); +typedef u64 devlink_resource_occ_get_t(void *); -typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); +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 bpf_dynptr_kern; +struct svc_pool_map { + int count; + int mode; + unsigned int npools; + unsigned int *pool_to; + unsigned int *to_pool; +}; -typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); +enum { + SVC_POOL_AUTO = -1, + SVC_POOL_GLOBAL = 0, + SVC_POOL_PERCPU = 1, + SVC_POOL_PERNODE = 2, +}; -struct bpf_dynptr_kern { - void *data; - u32 size; - u32 offset; +enum rpc_reply_stat { + RPC_MSG_ACCEPTED = 0, + RPC_MSG_DENIED = 1, }; -typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64); +enum rpc_reject_stat { + RPC_MISMATCH = 0, + RPC_AUTH_ERROR = 1, +}; -typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64); +struct rps_map; -typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64); +struct rps_dev_flow_table; -struct bpf_ringbuf { - wait_queue_head_t waitq; - struct irq_work work; - u64 mask; - struct page **pages; - int nr_pages; - long: 64; - long: 64; +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 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 parsed_desc { + u32 mb; + u32 valid; +}; + +struct xdp_umem_reg { + __u64 addr; + __u64 len; + __u32 chunk_size; + __u32 headroom; + __u32 flags; +}; + +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 prev_kprobe { + struct kprobe *kp; + unsigned int status; +}; + +struct kprobe_ctlblk { + unsigned int kprobe_status; + unsigned long saved_irqflag; + struct prev_kprobe prev_kprobe; +}; + +enum bpf_link_type { + BPF_LINK_TYPE_UNSPEC = 0, + BPF_LINK_TYPE_RAW_TRACEPOINT = 1, + BPF_LINK_TYPE_TRACING = 2, + BPF_LINK_TYPE_CGROUP = 3, + BPF_LINK_TYPE_ITER = 4, + BPF_LINK_TYPE_NETNS = 5, + BPF_LINK_TYPE_XDP = 6, + BPF_LINK_TYPE_PERF_EVENT = 7, + BPF_LINK_TYPE_KPROBE_MULTI = 8, + BPF_LINK_TYPE_STRUCT_OPS = 9, + BPF_LINK_TYPE_NETFILTER = 10, + BPF_LINK_TYPE_TCX = 11, + BPF_LINK_TYPE_UPROBE_MULTI = 12, + BPF_LINK_TYPE_NETKIT = 13, + MAX_BPF_LINK_TYPE = 14, +}; + +enum bpf_text_poke_type { + BPF_MOD_CALL = 0, + BPF_MOD_JUMP = 1, +}; + +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, +}; + +struct bpf_plt { + u32 insn_ldr; + u32 insn_br; + u64 target; +}; + +struct jit_ctx { + const struct bpf_prog *prog; + int idx; + int epilogue_offset; + int *offset; + int exentry_idx; + __le32 *image; + u32 stack_size; + int fpb_offset; +}; + +struct bpf_binary_header { + u32 size; + long: 0; + u8 image[0]; +}; + +typedef void (*bpf_jit_fill_hole_t)(void *, unsigned int); + +struct bpf_tramp_link; + +struct bpf_tramp_links { + struct bpf_tramp_link *links[38]; + int nr_links; +}; + +struct bpf_link_ops; + +struct bpf_link { + atomic64_t refcnt; + u32 id; + enum bpf_link_type type; + const struct bpf_link_ops *ops; + struct bpf_prog *prog; + struct work_struct work; +}; + +struct bpf_tramp_link { + struct bpf_link link; + struct hlist_node tramp_hlist; + u64 cookie; +}; + +struct bpf_link_ops { + void (*release)(struct bpf_link *); + void (*dealloc)(struct bpf_link *); + int (*detach)(struct bpf_link *); + int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *); + void (*show_fdinfo)(const struct bpf_link *, struct seq_file *); + int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *); + int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *); +}; + +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 arm64_jit_data { + struct bpf_binary_header *header; + u8 *image; + struct jit_ctx ctx; +}; + +struct kvm_irq_routing_irqchip { + __u32 irqchip; + __u32 pin; +}; + +struct kvm_irq_routing_msi { + __u32 address_lo; + __u32 address_hi; + __u32 data; + union { + __u32 pad; + __u32 devid; + }; +}; + +struct kvm_irq_routing_s390_adapter { + __u64 ind_addr; + __u64 summary_addr; + __u64 ind_offset; + __u32 summary_offset; + __u32 adapter_id; +}; + +struct kvm_irq_routing_hv_sint { + __u32 vcpu; + __u32 sint; +}; + +struct kvm_irq_routing_xen_evtchn { + __u32 port; + __u32 vcpu; + __u32 priority; +}; + +struct kvm_irq_routing_entry { + __u32 gsi; + __u32 type; + __u32 flags; + __u32 pad; + union { + struct kvm_irq_routing_irqchip irqchip; + struct kvm_irq_routing_msi msi; + struct kvm_irq_routing_s390_adapter adapter; + struct kvm_irq_routing_hv_sint hv_sint; + struct kvm_irq_routing_xen_evtchn xen_evtchn; + __u32 pad[8]; + } u; +}; + +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, +}; + +struct dma_coherent_mem { + void *virt_base; + dma_addr_t device_base; + unsigned long pfn_base; + int size; + unsigned long *bitmap; spinlock_t spinlock; + bool use_dev_dma_pfn_offset; +}; + +typedef u32 note_buf_t[106]; + +struct ftrace_graph_ent; + +typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); + +struct ftrace_graph_ret; + +typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); + +struct fgraph_ops { + trace_func_graph_ent_t entryfunc; + trace_func_graph_ret_t retfunc; +}; + +struct ftrace_graph_ent { + unsigned long func; + int depth; +} __attribute__((packed)); + +struct ftrace_graph_ret { + unsigned long func; + unsigned long retval; + int depth; + unsigned int overrun; + unsigned long long calltime; + unsigned long long rettime; +}; + +enum trace_type { + __TRACE_FIRST_TYPE = 0, + TRACE_FN = 1, + TRACE_CTX = 2, + TRACE_WAKE = 3, + TRACE_STACK = 4, + TRACE_PRINT = 5, + TRACE_BPRINT = 6, + TRACE_MMIO_RW = 7, + TRACE_MMIO_MAP = 8, + TRACE_BRANCH = 9, + TRACE_GRAPH_RET = 10, + TRACE_GRAPH_ENT = 11, + TRACE_USER_STACK = 12, + TRACE_BLK = 13, + TRACE_BPUTS = 14, + TRACE_HWLAT = 15, + TRACE_OSNOISE = 16, + TRACE_TIMERLAT = 17, + TRACE_RAW_DATA = 18, + TRACE_FUNC_REPEATS = 19, + __TRACE_LAST_TYPE = 20, +}; + +enum { + TRACE_FTRACE_BIT = 0, + TRACE_FTRACE_NMI_BIT = 1, + TRACE_FTRACE_IRQ_BIT = 2, + TRACE_FTRACE_SIRQ_BIT = 3, + TRACE_FTRACE_TRANSITION_BIT = 4, + TRACE_INTERNAL_BIT = 5, + TRACE_INTERNAL_NMI_BIT = 6, + TRACE_INTERNAL_IRQ_BIT = 7, + TRACE_INTERNAL_SIRQ_BIT = 8, + TRACE_INTERNAL_TRANSITION_BIT = 9, + TRACE_BRANCH_BIT = 10, + TRACE_IRQ_BIT = 11, + TRACE_GRAPH_BIT = 12, + TRACE_GRAPH_DEPTH_START_BIT = 13, + TRACE_GRAPH_DEPTH_END_BIT = 14, + TRACE_GRAPH_NOTRACE_BIT = 15, + TRACE_RECORD_RECURSION_BIT = 16, +}; + +enum { + FTRACE_HASH_FL_MOD = 1, +}; + +enum trace_flag_type { + TRACE_FLAG_IRQS_OFF = 1, + TRACE_FLAG_IRQS_NOSUPPORT = 2, + TRACE_FLAG_NEED_RESCHED = 4, + TRACE_FLAG_HARDIRQ = 8, + TRACE_FLAG_SOFTIRQ = 16, + TRACE_FLAG_PREEMPT_RESCHED = 32, + TRACE_FLAG_NMI = 64, + TRACE_FLAG_BH_OFF = 128, +}; + +enum { + FLAGS_FILL_FULL = 268435456, + FLAGS_FILL_START = 536870912, + FLAGS_FILL_END = 805306368, +}; + +struct fgraph_cpu_data { + pid_t last_pid; + int depth; + int depth_irq; + int ignore; + unsigned long enter_funcs[50]; +}; + +struct ftrace_graph_ent_entry { + struct trace_entry ent; + struct ftrace_graph_ent graph_ent; +}; + +struct ftrace_graph_ret_entry { + struct trace_entry ent; + struct ftrace_graph_ret ret; +}; + +struct ftrace_func_entry { + struct hlist_node hlist; + unsigned long ip; + unsigned long direct; +}; + +struct fgraph_data { + struct fgraph_cpu_data __attribute__((btf_type_tag("percpu"))) *cpu_data; + struct ftrace_graph_ent_entry ent; + struct ftrace_graph_ret_entry ret; + int failed; + int cpu; + long: 0; +} __attribute__((packed)); + +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; +}; + +struct cgroup_iter_priv { + struct cgroup_subsys_state *start_css; + bool visited_all; + bool terminate; + int order; +}; + +struct bpf_iter__cgroup { + union { + struct bpf_iter_meta *meta; + }; + union { + struct cgroup *cgroup; + }; +}; + +struct bpf_iter_css { + __u64 __opaque[3]; +}; + +struct bpf_iter_css_kern { + struct cgroup_subsys_state *start; + struct cgroup_subsys_state *pos; + unsigned int flags; +}; + +enum lru_status { + LRU_REMOVED = 0, + LRU_REMOVED_RETRY = 1, + LRU_ROTATE = 2, + LRU_SKIP = 3, + LRU_RETRY = 4, +}; + +typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *); + +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; +}; + +typedef void (*btf_trace_ksm_start_scan)(void *, int, u32); + +typedef void (*btf_trace_ksm_stop_scan)(void *, int, u32); + +typedef void (*btf_trace_ksm_enter)(void *, void *); + +typedef void (*btf_trace_ksm_exit)(void *, void *); + +typedef void (*btf_trace_ksm_merge_one_page)(void *, unsigned long, void *, void *, int); + +typedef void (*btf_trace_ksm_merge_with_ksm_page)(void *, void *, unsigned long, void *, void *, int); + +typedef void (*btf_trace_ksm_remove_ksm_page)(void *, unsigned long); + +typedef void (*btf_trace_ksm_remove_rmap_item)(void *, unsigned long, void *, void *); + +struct mm_slot { + struct hlist_node hash; + struct list_head mm_node; + struct mm_struct *mm; +}; + +struct ksm_rmap_item; + +struct ksm_mm_slot { + struct mm_slot slot; + struct ksm_rmap_item *rmap_list; +}; + +typedef u8 rmap_age_t; + +struct ksm_stable_node; + +struct ksm_rmap_item { + struct ksm_rmap_item *rmap_list; + union { + struct anon_vma *anon_vma; + int nid; + }; + struct mm_struct *mm; + unsigned long address; + unsigned int oldchecksum; + rmap_age_t age; + rmap_age_t remaining_skips; + union { + struct rb_node node; + struct { + struct ksm_stable_node *head; + struct hlist_node hlist; + }; + }; +}; + +struct ksm_stable_node { + union { + struct rb_node node; + struct { + struct list_head *head; + struct { + struct hlist_node hlist_dup; + struct list_head list; + }; + }; + }; + struct hlist_head hlist; + union { + unsigned long kpfn; + unsigned long chain_prune_time; + }; + int rmap_hlist_len; + int nid; +}; + +struct ksm_scan { + struct ksm_mm_slot *mm_slot; + unsigned long address; + struct ksm_rmap_item **rmap_list; + unsigned long seqnr; +}; + +enum get_ksm_page_flags { + GET_KSM_PAGE_NOLOCK = 0, + GET_KSM_PAGE_LOCK = 1, + GET_KSM_PAGE_TRYLOCK = 2, +}; + +struct trace_event_raw_ksm_scan_template { + struct trace_entry ent; + int seq; + u32 rmap_entries; + char __data[0]; +}; + +struct trace_event_raw_ksm_enter_exit_template { + struct trace_entry ent; + void *mm; + char __data[0]; +}; + +struct trace_event_raw_ksm_merge_one_page { + struct trace_entry ent; + unsigned long pfn; + void *rmap_item; + void *mm; + int err; + char __data[0]; +}; + +struct trace_event_raw_ksm_merge_with_ksm_page { + struct trace_entry ent; + void *ksm_page; + unsigned long pfn; + void *rmap_item; + void *mm; + int err; + char __data[0]; +}; + +struct trace_event_raw_ksm_remove_ksm_page { + struct trace_entry ent; + unsigned long pfn; + char __data[0]; +}; + +struct trace_event_raw_ksm_remove_rmap_item { + struct trace_entry ent; + unsigned long pfn; + void *rmap_item; + void *mm; + char __data[0]; +}; + +struct trace_event_data_offsets_ksm_scan_template {}; + +struct trace_event_data_offsets_ksm_enter_exit_template {}; + +struct trace_event_data_offsets_ksm_merge_one_page {}; + +struct trace_event_data_offsets_ksm_merge_with_ksm_page {}; + +struct trace_event_data_offsets_ksm_remove_ksm_page {}; + +struct trace_event_data_offsets_ksm_remove_rmap_item {}; + +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 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 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; +}; + +typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int); + +typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int); + +typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *); + +typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *); + +typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, struct iomap *); + +typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long); + +typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t); + +typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t); + +struct trace_event_raw_iomap_readpage_class { + struct trace_entry ent; + dev_t dev; + u64 ino; + int nr_pages; + char __data[0]; +}; + +struct trace_event_raw_iomap_range_class { + struct trace_entry ent; + dev_t dev; + u64 ino; + loff_t size; + loff_t offset; + u64 length; + char __data[0]; +}; + +struct trace_event_raw_iomap_class { + struct trace_entry ent; + dev_t dev; + u64 ino; + u64 addr; + loff_t offset; + u64 length; + u16 type; + u16 flags; + dev_t bdev; + char __data[0]; +}; + +struct trace_event_raw_iomap_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_raw_iomap_dio_rw_begin { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + size_t count; + size_t done_before; + int ki_flags; + unsigned int dio_flags; + bool aio; + char __data[0]; +}; + +struct trace_event_raw_iomap_dio_complete { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + int ki_flags; + bool aio; + int error; + ssize_t ret; + char __data[0]; +}; + +struct trace_event_data_offsets_iomap_readpage_class {}; + +struct trace_event_data_offsets_iomap_range_class {}; + +struct trace_event_data_offsets_iomap_class {}; + +struct trace_event_data_offsets_iomap_iter {}; + +struct trace_event_data_offsets_iomap_dio_rw_begin {}; + +struct trace_event_data_offsets_iomap_dio_complete {}; + +enum { + Opt_uid___3 = 0, + Opt_gid___3 = 1, + Opt_mode___2 = 2, + Opt_ptmxmode = 3, + Opt_newinstance = 4, + Opt_max = 5, + Opt_err___4 = 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; +}; + +typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *); + +struct ext4_fsmap_head; + +struct ext4_getfsmap_info { + struct ext4_fsmap_head *gfi_head; + ext4_fsmap_format_t gfi_formatter; + void *gfi_format_arg; + ext4_fsblk_t gfi_next_fsblk; + u32 gfi_dev; + ext4_group_t gfi_agno; + struct ext4_fsmap gfi_low; + struct ext4_fsmap gfi_high; + struct ext4_fsmap gfi_lastfree; + struct list_head gfi_meta_list; + bool gfi_last; +}; + +struct ext4_fsmap_head { + uint32_t fmh_iflags; + uint32_t fmh_oflags; + unsigned int fmh_count; + unsigned int fmh_entries; + struct ext4_fsmap fmh_keys[2]; +}; + +struct fsmap { + __u32 fmr_device; + __u32 fmr_flags; + __u64 fmr_physical; + __u64 fmr_owner; + __u64 fmr_offset; + __u64 fmr_length; + __u64 fmr_reserved[3]; +}; + +struct ext4_getfsmap_dev { + int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); + u32 gfd_dev; +}; + +struct ext2_group_desc { + __le32 bg_block_bitmap; + __le32 bg_inode_bitmap; + __le32 bg_inode_table; + __le16 bg_free_blocks_count; + __le16 bg_free_inodes_count; + __le16 bg_used_dirs_count; + __le16 bg_pad; + __le32 bg_reserved[3]; +}; + +typedef int ext2_grpblk_t; + +typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int); + +typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_locking)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *); + +typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, tid_t, unsigned int, unsigned int, int); + +typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int); + +typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int); + +typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int); + +typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); + +typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); + +typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t); + +typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, unsigned long, tid_t); + +struct jbd2_journal_block_tail { + __be32 t_checksum; +}; + +struct trace_event_raw_jbd2_checkpoint { + struct trace_entry ent; + dev_t dev; + int result; + char __data[0]; +}; + +struct trace_event_raw_jbd2_commit { + struct trace_entry ent; + dev_t dev; + char sync_commit; + tid_t transaction; + char __data[0]; +}; + +struct trace_event_raw_jbd2_end_commit { + struct trace_entry ent; + dev_t dev; + char sync_commit; + tid_t transaction; + tid_t head; + char __data[0]; +}; + +struct trace_event_raw_jbd2_submit_inode_data { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; +}; + +struct trace_event_raw_jbd2_handle_start_class { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned int type; + unsigned int line_no; + int requested_blocks; + char __data[0]; +}; + +struct trace_event_raw_jbd2_handle_extend { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned int type; + unsigned int line_no; + int buffer_credits; + int requested_blocks; + char __data[0]; +}; + +struct trace_event_raw_jbd2_handle_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned int type; + unsigned int line_no; + int interval; + int sync; + int requested_blocks; + int dirtied_blocks; + char __data[0]; +}; + +struct trace_event_raw_jbd2_run_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned long wait; + unsigned long request_delay; + unsigned long running; + unsigned long locked; + unsigned long flushing; + unsigned long logging; + __u32 handle_count; + __u32 blocks; + __u32 blocks_logged; + char __data[0]; +}; + +struct trace_event_raw_jbd2_checkpoint_stats { + struct trace_entry ent; + dev_t dev; + tid_t tid; + unsigned long chp_time; + __u32 forced_to_close; + __u32 written; + __u32 dropped; + char __data[0]; +}; + +struct trace_event_raw_jbd2_update_log_tail { + struct trace_entry ent; + dev_t dev; + tid_t tail_sequence; + tid_t first_tid; + unsigned long block_nr; + unsigned long freed; + char __data[0]; +}; + +struct trace_event_raw_jbd2_write_superblock { + struct trace_entry ent; + dev_t dev; + blk_opf_t write_flags; + char __data[0]; +}; + +struct trace_event_raw_jbd2_lock_buffer_stall { + struct trace_entry ent; + dev_t dev; + unsigned long stall_ms; + char __data[0]; +}; + +struct trace_event_raw_jbd2_journal_shrink { + struct trace_entry ent; + dev_t dev; + unsigned long nr_to_scan; + unsigned long count; + char __data[0]; +}; + +struct trace_event_raw_jbd2_shrink_scan_exit { + struct trace_entry ent; + dev_t dev; + unsigned long nr_to_scan; + unsigned long nr_shrunk; + unsigned long count; + char __data[0]; +}; + +struct trace_event_raw_jbd2_shrink_checkpoint_list { + struct trace_entry ent; + dev_t dev; + tid_t first_tid; + tid_t tid; + tid_t last_tid; + unsigned long nr_freed; + tid_t next_tid; + char __data[0]; +}; + +struct trace_event_data_offsets_jbd2_checkpoint {}; + +struct trace_event_data_offsets_jbd2_commit {}; + +struct trace_event_data_offsets_jbd2_end_commit {}; + +struct trace_event_data_offsets_jbd2_submit_inode_data {}; + +struct trace_event_data_offsets_jbd2_handle_start_class {}; + +struct trace_event_data_offsets_jbd2_handle_extend {}; + +struct trace_event_data_offsets_jbd2_handle_stats {}; + +struct trace_event_data_offsets_jbd2_run_stats {}; + +struct trace_event_data_offsets_jbd2_checkpoint_stats {}; + +struct trace_event_data_offsets_jbd2_update_log_tail {}; + +struct trace_event_data_offsets_jbd2_write_superblock {}; + +struct trace_event_data_offsets_jbd2_lock_buffer_stall {}; + +struct trace_event_data_offsets_jbd2_journal_shrink {}; + +struct trace_event_data_offsets_jbd2_shrink_scan_exit {}; + +struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {}; + +struct jbd2_stats_proc_session { + journal_t *journal; + struct transaction_stats_s *stats; + int start; + int max; +}; + +enum { + 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, +}; + +enum { + NFS_OWNER_RECLAIM_REBOOT = 0, + NFS_OWNER_RECLAIM_NOGRACE = 1, +}; + +struct nfs4_setclientid_res { + u64 clientid; + nfs4_verifier confirm; +}; + +typedef void (*rpc_action)(struct rpc_task *); + +struct bl_dev_msg { + int32_t status; + uint32_t major; + uint32_t minor; +}; + +struct nfs_netns_client; + +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[3]; + struct nfs_netns_client *nfs_client; + spinlock_t nfs_client_lock; + ktime_t boot_time; + struct proc_dir_entry *proc_nfsfs; +}; + +enum p9_qid_t { + P9_QTDIR = 128, + P9_QTAPPEND = 64, + P9_QTEXCL = 32, + P9_QTMOUNT = 16, + P9_QTAUTH = 8, + P9_QTTMP = 4, + P9_QTSYMLINK = 2, + P9_QTLINK = 1, + P9_QTFILE = 0, +}; + +struct dotl_openflag_map { + int open_flag; + int dotl_flag; +}; + +struct dotl_iattr_map { + int iattr_valid; + int p9_iattr_valid; +}; + +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; - long: 64; - long: 64; - long: 64; - long: 64; - atomic_t busy; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - 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 shm_file_data { + int id; + struct ipc_namespace *ns; + struct file *file; + const struct vm_operations_struct *vm_ops; }; -struct bpf_ringbuf_hdr { - u32 len; - u32 pg_off; +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; }; -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); +struct shared_policy { + struct rb_root root; + rwlock_t lock; +}; -typedef void (*btf_trace_finish_task_reaping)(void *, int); +struct shmem_inode_info { + spinlock_t lock; + unsigned int seals; + unsigned long flags; + unsigned long alloced; + unsigned long swapped; + union { + struct offset_ctx dir_offsets; + struct { + struct list_head shrinklist; + struct list_head swaplist; + }; + }; + struct timespec64 i_crtime; + struct shared_policy policy; + struct simple_xattrs xattrs; + unsigned long fallocend; + unsigned int fsflags; + atomic_t stop_eviction; + struct inode vfs_inode; +}; -typedef void (*btf_trace_skip_task_reaping)(void *, int); +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; +}; -typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool); +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; +}; -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, +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 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 shminfo { + int shmmax; + int shmmin; + int shmmni; + int shmseg; + int shmall; }; -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 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 trace_event_raw_mark_victim { - struct trace_entry ent; - int pid; - char __data[0]; +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 trace_event_raw_wake_reaper { - struct trace_entry ent; - int pid; - char __data[0]; +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 trace_event_raw_start_task_reaping { - struct trace_entry ent; - int pid; - char __data[0]; +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 trace_event_raw_finish_task_reaping { - struct trace_entry ent; - int pid; - char __data[0]; +struct rand_data; + +struct jitterentropy { + spinlock_t jent_lock; + struct rand_data *entropy_collector; + struct crypto_shash *tfm; + struct shash_desc *sdesc; }; -struct trace_event_raw_skip_task_reaping { - struct trace_entry ent; - int pid; - char __data[0]; +enum bfqq_expiration { + BFQQE_TOO_IDLE = 0, + BFQQE_BUDGET_TIMEOUT = 1, + BFQQE_BUDGET_EXHAUSTED = 2, + BFQQE_NO_MORE_REQUESTS = 3, + BFQQE_PREEMPTED = 4, }; -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]; +enum blkg_rwstat_type { + BLKG_RWSTAT_READ = 0, + BLKG_RWSTAT_WRITE = 1, + BLKG_RWSTAT_SYNC = 2, + BLKG_RWSTAT_ASYNC = 3, + BLKG_RWSTAT_DISCARD = 4, + BLKG_RWSTAT_NR = 5, + BLKG_RWSTAT_TOTAL = 5, }; -struct trace_event_data_offsets_oom_score_adj_update {}; +struct bfq_sched_data; -struct trace_event_data_offsets_reclaim_retry_zone {}; +struct bfq_queue; -struct trace_event_data_offsets_mark_victim {}; +struct bfq_entity { + struct rb_node rb_node; + bool on_st_or_in_serv; + u64 start; + u64 finish; + struct rb_root *tree; + u64 min_start; + int service; + int budget; + int allocated; + int dev_weight; + int weight; + int new_weight; + int orig_weight; + struct bfq_entity *parent; + struct bfq_sched_data *my_sched_data; + struct bfq_sched_data *sched_data; + int prio_changed; + bool in_groups_with_pending_reqs; + struct bfq_queue *last_bfqq_created; +}; -struct trace_event_data_offsets_wake_reaper {}; +struct bfq_service_tree { + struct rb_root active; + struct rb_root idle; + struct bfq_entity *first_idle; + struct bfq_entity *last_idle; + u64 vtime; + unsigned long wsum; +}; -struct trace_event_data_offsets_start_task_reaping {}; +struct bfq_sched_data { + struct bfq_entity *in_service_entity; + struct bfq_entity *next_in_service; + struct bfq_service_tree service_tree[3]; + unsigned long bfq_class_idle_last_service; +}; -struct trace_event_data_offsets_finish_task_reaping {}; +struct blkg_rwstat { + struct percpu_counter cpu_cnt[5]; + atomic64_t aux_cnt[5]; +}; -struct trace_event_data_offsets_skip_task_reaping {}; +struct bfqg_stats { + struct blkg_rwstat bytes; + struct blkg_rwstat ios; +}; -struct trace_event_data_offsets_compact_retry {}; +struct bfq_data; -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, +struct bfq_group { + struct blkg_policy_data pd; + char blkg_path[128]; + refcount_t ref; + struct bfq_entity entity; + struct bfq_sched_data sched_data; + struct bfq_data *bfqd; + struct bfq_queue *async_bfqq[128]; + struct bfq_queue *async_idle_bfqq[8]; + struct bfq_entity *my_entity; + int active_entities; + int num_queues_with_pending_reqs; + struct rb_root rq_pos_tree; + struct bfqg_stats stats; }; -struct swap_extent { - struct rb_node rb_node; - unsigned long start_page; - unsigned long nr_pages; - sector_t start_block; +struct bfq_ttime { + u64 last_end_request; + u64 ttime_total; + unsigned long ttime_samples; + u64 ttime_mean; }; -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 bfq_weight_counter; -enum alarmtimer_restart { - ALARMTIMER_NORESTART = 0, - ALARMTIMER_RESTART = 1, -}; +struct bfq_io_cq; -enum alarmtimer_type { - ALARM_REALTIME = 0, - ALARM_BOOTTIME = 1, - ALARM_NUMTYPE = 2, - ALARM_REALTIME_FREEZER = 3, - ALARM_BOOTTIME_FREEZER = 4, +struct bfq_queue { + int ref; + int stable_ref; + struct bfq_data *bfqd; + unsigned short ioprio; + unsigned short ioprio_class; + unsigned short new_ioprio; + unsigned short new_ioprio_class; + u64 last_serv_time_ns; + unsigned int inject_limit; + unsigned long decrease_time_jif; + struct bfq_queue *new_bfqq; + struct rb_node pos_node; + struct rb_root *pos_root; + struct rb_root sort_list; + struct request *next_rq; + int queued[2]; + int meta_pending; + struct list_head fifo; + struct bfq_entity entity; + struct bfq_weight_counter *weight_counter; + int max_budget; + unsigned long budget_timeout; + int dispatched; + unsigned long flags; + struct list_head bfqq_list; + struct bfq_ttime ttime; + u64 io_start_time; + u64 tot_idle_time; + u32 seek_history; + struct hlist_node burst_list_node; + sector_t last_request_pos; + unsigned int requests_within_timer; + pid_t pid; + struct bfq_io_cq *bic; + unsigned long wr_cur_max_time; + unsigned long soft_rt_next_start; + unsigned long last_wr_start_finish; + unsigned int wr_coeff; + unsigned long last_idle_bklogged; + unsigned long service_from_backlogged; + unsigned long service_from_wr; + unsigned long wr_start_at_switch_to_srt; + unsigned long split_time; + unsigned long first_IO_time; + unsigned long creation_time; + struct bfq_queue *waker_bfqq; + struct bfq_queue *tentative_waker_bfqq; + unsigned int num_waker_detections; + u64 waker_detection_started; + struct hlist_node woken_list_node; + struct hlist_head woken_list; + unsigned int actuator_idx; }; -struct 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 bfq_data { + struct request_queue *queue; + struct list_head dispatch; + struct bfq_group *root_group; + struct rb_root_cached queue_weights_tree; + unsigned int num_groups_with_pending_reqs; + unsigned int busy_queues[3]; + int wr_busy_queues; + int queued; + int tot_rq_in_driver; + int rq_in_driver[8]; + bool nonrot_with_queueing; + int max_rq_in_driver; + int hw_tag_samples; + int hw_tag; + int budgets_assigned; + struct hrtimer idle_slice_timer; + struct bfq_queue *in_service_queue; + sector_t last_position; + sector_t in_serv_last_pos; + u64 last_completion; + struct bfq_queue *last_completed_rq_bfqq; + struct bfq_queue *last_bfqq_created; + u64 last_empty_occupied_ns; + bool wait_dispatch; + struct request *waited_rq; + bool rqs_injected; + u64 first_dispatch; + u64 last_dispatch; + ktime_t last_budget_start; + ktime_t last_idling_start; + unsigned long last_idling_start_jiffies; + int peak_rate_samples; + u32 sequential_samples; + u64 tot_sectors_dispatched; + u32 last_rq_max_size; + u64 delta_from_first; + u32 peak_rate; + int bfq_max_budget; + struct list_head active_list[8]; + struct list_head idle_list; + u64 bfq_fifo_expire[2]; + unsigned int bfq_back_penalty; + unsigned int bfq_back_max; + u32 bfq_slice_idle; + int bfq_user_max_budget; + unsigned int bfq_timeout; + bool strict_guarantees; + unsigned long last_ins_in_burst; + unsigned long bfq_burst_interval; + int burst_size; + struct bfq_entity *burst_parent_entity; + unsigned long bfq_large_burst_thresh; + bool large_burst; + struct hlist_head burst_list; + bool low_latency; + unsigned int bfq_wr_coeff; + unsigned int bfq_wr_rt_max_time; + unsigned int bfq_wr_min_idle_time; + unsigned long bfq_wr_min_inter_arr_async; + unsigned int bfq_wr_max_softrt_rate; + u64 rate_dur_prod; + struct bfq_queue oom_bfqq; + spinlock_t lock; + struct bfq_io_cq *bio_bic; + struct bfq_queue *bio_bfqq; + unsigned int word_depths[4]; + unsigned int full_depth_shift; + unsigned int num_actuators; + sector_t sector[8]; + sector_t nr_sectors[8]; + struct blk_independent_access_range ia_ranges[8]; + unsigned int actuator_load_threshold; }; -struct 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 bfq_iocq_bfqq_data { + bool saved_has_short_ttime; + bool saved_IO_bound; + u64 saved_io_start_time; + u64 saved_tot_idle_time; + bool saved_in_large_burst; + bool was_in_burst_list; + unsigned int saved_weight; + unsigned long saved_wr_coeff; + unsigned long saved_last_wr_start_finish; + unsigned long saved_service_from_wr; + unsigned long saved_wr_start_at_switch_to_srt; + unsigned int saved_wr_cur_max_time; + struct bfq_ttime saved_ttime; + u64 saved_last_serv_time_ns; + unsigned int saved_inject_limit; + unsigned long saved_decrease_time_jif; + struct bfq_queue *stable_merge_bfqq; + bool stably_merged; }; -struct __kernel_itimerspec { - struct __kernel_timespec it_interval; - struct __kernel_timespec it_value; +struct bfq_io_cq { + struct io_cq icq; + struct bfq_queue *bfqq[16]; + int ioprio; + uint64_t blkcg_serial_nr; + struct bfq_iocq_bfqq_data bfqq_data[8]; + unsigned int requests; }; -struct old_itimerspec32 { - struct old_timespec32 it_interval; - struct old_timespec32 it_value; +struct bfq_weight_counter { + unsigned int weight; + unsigned int num_active; + struct rb_node weights_node; }; -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 bfq_group_data { + struct blkcg_policy_data pd; + unsigned int weight; }; -struct ext4_xattr_info { - const char *name; - const void *value; - size_t value_len; - int name_index; - int in_inode; +struct blkg_rwstat_sample { + u64 cnt[5]; }; -struct ext4_xattr_search { - struct ext4_xattr_entry *first; - void *base; - void *end; - struct ext4_xattr_entry *here; - int not_found; +struct io_shutdown { + struct file *file; + int how; }; -struct ext4_xattr_ibody_find { - struct ext4_xattr_search s; - struct ext4_iloc iloc; +struct compat_msghdr; + +struct user_msghdr; + +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; + void __attribute__((btf_type_tag("user"))) *msg_control; + struct io_kiocb *notif; }; -struct ext4_filename { - const struct qstr *usr_fname; - struct fscrypt_str disk_name; - struct dx_hash_info hinfo; +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 squashfs_fragment_entry { - __le64 start_block; - __le32 size; - unsigned int unused; +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; }; -enum file_time_flags { - S_ATIME = 1, - S_MTIME = 2, - S_CTIME = 4, - S_VERSION = 8, +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 fat_boot_fsinfo { - __le32 signature1; - __le32 reserved1[120]; - __le32 signature2; - __le32 free_clusters; - __le32 next_cluster; - __le32 reserved2[4]; +struct io_socket { + struct file *file; + int domain; + int type; + int protocol; + int flags; + u32 file_slot; + unsigned long nofile; }; -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 io_connect { + struct file *file; + struct sockaddr __attribute__((btf_type_tag("user"))) *addr; + int addr_len; + bool in_progress; + bool seen_econnaborted; }; -struct nfs4_op_map { +struct io_async_msghdr { union { - unsigned long longs[2]; - u32 words[4]; - } u; + 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 nfs41_state_protection { - u32 how; - struct nfs4_op_map enforce; - struct nfs4_op_map allow; +struct io_notif_data { + struct file *file; + struct ubuf_info uarg; + unsigned long account_pages; + bool zc_report; + bool zc_used; + bool zc_copied; }; -enum nfs4_acl_type { - NFS4ACL_NONE = 0, - NFS4ACL_ACL = 1, - NFS4ACL_DACL = 2, - NFS4ACL_SACL = 3, +struct io_uring_recvmsg_out { + __u32 namelen; + __u32 controllen; + __u32 payloadlen; + __u32 flags; }; -enum state_protect_how4 { - SP4_NONE = 0, - SP4_MACH_CRED = 1, - SP4_SSV = 2, +struct io_recvmsg_multishot_hdr { + struct io_uring_recvmsg_out msg; + struct __kernel_sockaddr_storage addr; }; -enum nfs4_session_state { - NFS4_SESSION_INITING = 0, - NFS4_SESSION_ESTABLISHED = 1, +struct io_async_connect { + struct __kernel_sockaddr_storage address; }; -enum nfs4_slot_tbl_state { - NFS4_SLOT_TBL_DRAINING = 0, +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, }; -enum pnfs_notify_deviceid_type4 { - NOTIFY_DEVICEID4_CHANGE = 2, - NOTIFY_DEVICEID4_DELETE = 4, +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; }; -enum nfs_ftype4 { - NF4BAD = 0, - NF4REG = 1, - NF4DIR = 2, - NF4BLK = 3, - NF4CHR = 4, - NF4LNK = 5, - NF4SOCK = 6, - NF4FIFO = 7, - NF4ATTRDIR = 8, - NF4NAMEDATTR = 9, +struct assoc_array_delete_collapse_context { + struct assoc_array_node *node; + const void *skip_leaf; + int slot; }; -struct nfs4_cached_acl { - enum nfs4_acl_type type; - int cached; - size_t len; - char data[0]; -}; +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 nfs41_exchange_id_res { - u64 clientid; - u32 seqid; - u32 flags; - struct nfs41_server_owner *server_owner; - struct nfs41_server_scope *server_scope; - struct nfs41_impl_id *impl_id; - struct nfs41_state_protection state_protect; -}; +typedef ZSTD_DCtx ZSTD_DStream; -struct nfs41_exchange_id_args { - struct nfs_client *client; - nfs4_verifier verifier; - u32 flags; - struct nfs41_state_protection state_protect; +struct ZSTD_inBuffer_s { + const void *src; + size_t size; + size_t pos; }; -struct nfs41_exchange_id_data { - struct nfs41_exchange_id_res res; - struct nfs41_exchange_id_args args; -}; +typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; -struct nfs4_get_lease_time_args; +typedef ZSTD_ErrorCode zstd_error_code; -struct nfs4_get_lease_time_res; +typedef ZSTD_DCtx zstd_dctx; -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 ZSTD_DStream zstd_dstream; -struct nfs4_get_lease_time_args { - struct nfs4_sequence_args la_seq_args; -}; +typedef ZSTD_outBuffer zstd_out_buffer; -struct nfs4_get_lease_time_res { - struct nfs4_sequence_res lr_seq_res; - struct nfs_fsinfo *lr_fsinfo; -}; +typedef ZSTD_inBuffer zstd_in_buffer; -struct nfs_lowner { - __u64 clientid; - __u64 id; - dev_t s_dev; -}; +typedef ZSTD_frameHeader zstd_frame_header; -struct nfs4_lock_waiter { - struct inode *inode; - struct nfs_lowner owner; - wait_queue_entry_t wait; +typedef ZSTD_ErrorCode ERR_enum; + +struct rdists { + struct { + raw_spinlock_t rd_lock; + void *rd_base; + struct page *pend_page; + phys_addr_t phys_base; + u64 flags; + cpumask_t *vpe_table_mask; + void *vpe_l1_base; + } *rdist; + phys_addr_t prop_table_pa; + void *prop_table_va; + u64 flags; + u32 gicd_typer; + u32 gicd_typer2; + int cpuhp_memreserve_state; + bool has_vlpis; + bool has_rvpeid; + bool has_direct_lpi; + bool has_vpend_valid_dirty; }; -struct nfs4_call_sync_data { - const struct nfs_server *seq_server; - struct nfs4_sequence_args *seq_args; - struct nfs4_sequence_res *seq_res; +struct gic_quirk { + const char *desc; + const char *compatible; + const char *property; + bool (*init)(void *); + u32 iidr; + u32 mask; }; -struct nfs4_server_caps_arg { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fhandle; - const u32 *bitmask; +struct event_lpi_map { + unsigned long *lpi_map; + u16 *col_map; + irq_hw_number_t lpi_base; + int nr_lpis; + raw_spinlock_t vlpi_lock; + struct its_vm *vm; + struct its_vlpi_map *vlpi_maps; + int nr_vlpis; }; -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 its_node; + +struct its_device { + struct list_head entry; + struct its_node *its; + struct event_lpi_map event_map; + void *itt; + u32 nr_ites; + u32 device_id; + bool shared; }; -struct nfs4_lookup_root_arg { - struct nfs4_sequence_args seq_args; - const u32 *bitmask; +struct its_baser { + void *base; + u64 val; + u32 order; + u32 psz; }; -struct nfs4_lookup_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; - struct nfs_fh *fh; -}; +struct its_cmd_block; -struct nfs4_fsinfo_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; -}; +struct its_collection; -struct nfs4_fsinfo_res { - struct nfs4_sequence_res seq_res; - struct nfs_fsinfo *fsinfo; +struct its_node { + raw_spinlock_t lock; + struct mutex dev_alloc_lock; + struct list_head entry; + void *base; + void *sgir_base; + phys_addr_t phys_base; + struct its_cmd_block *cmd_base; + struct its_cmd_block *cmd_write; + struct its_baser tables[8]; + struct its_collection *collections; + struct fwnode_handle *fwnode_handle; + u64 (*get_msi_base)(struct its_device *); + u64 typer; + u64 cbaser_save; + u32 ctlr_save; + u32 mpidr; + struct list_head its_device_list; + u64 flags; + unsigned long list_nr; + int numa_node; + unsigned int msi_domain_flags; + u32 pre_its_base; + int vlpi_redist_offset; }; -struct nfs4_getattr_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +struct its_cmd_block { + union { + u64 raw_cmd[4]; + __le64 raw_cmd_le[4]; + }; }; -struct nfs4_getattr_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; +struct its_collection { + u64 target_address; + u16 col_id; }; -struct nfs4_lookup_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *dir_fh; - const struct qstr *name; - const u32 *bitmask; +struct cpu_lpi_count { + atomic_t managed; + atomic_t unmanaged; }; -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 its_srat_map { + u32 numa_node; + u32 its_id; }; -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; +enum its_vcpu_info_cmd_type { + MAP_VLPI = 0, + GET_VLPI = 1, + PROP_UPDATE_VLPI = 2, + PROP_UPDATE_AND_INV_VLPI = 3, + SCHEDULE_VPE = 4, + DESCHEDULE_VPE = 5, + COMMIT_VPE = 6, + INVALL_VPE = 7, + PROP_UPDATE_VSGI = 8, }; -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; +enum acpi_srat_type { + ACPI_SRAT_TYPE_CPU_AFFINITY = 0, + ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1, + ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, + ACPI_SRAT_TYPE_GICC_AFFINITY = 3, + ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, + ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, + ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, + ACPI_SRAT_TYPE_RESERVED = 7, }; -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 lpi_range { + struct list_head entry; + u32 base_id; + u32 span; }; -struct nfs_lock_res { - struct nfs4_sequence_res seq_res; - nfs4_stateid stateid; - struct nfs_seqid *lock_seqid; - struct nfs_seqid *open_seqid; +struct acpi_srat_gic_its_affinity { + struct acpi_subtable_header header; + u32 proximity_domain; + u16 reserved; + u32 its_id; +} __attribute__((packed)); + +struct acpi_madt_generic_translator { + struct acpi_subtable_header header; + u16 reserved; + u32 translation_id; + u64 base_address; + u32 reserved2; +} __attribute__((packed)); + +struct its_cmd_desc { + union { + struct { + struct its_device *dev; + u32 event_id; + } its_inv_cmd; + struct { + struct its_device *dev; + u32 event_id; + } its_clear_cmd; + struct { + struct its_device *dev; + u32 event_id; + } its_int_cmd; + struct { + struct its_device *dev; + int valid; + } its_mapd_cmd; + struct { + struct its_collection *col; + int valid; + } its_mapc_cmd; + struct { + struct its_device *dev; + u32 phys_id; + u32 event_id; + } its_mapti_cmd; + struct { + struct its_device *dev; + struct its_collection *col; + u32 event_id; + } its_movi_cmd; + struct { + struct its_device *dev; + u32 event_id; + } its_discard_cmd; + struct { + struct its_collection *col; + } its_invall_cmd; + struct { + struct its_vpe *vpe; + } its_vinvall_cmd; + struct { + struct its_vpe *vpe; + struct its_collection *col; + bool valid; + } its_vmapp_cmd; + struct { + struct its_vpe *vpe; + struct its_device *dev; + u32 virt_id; + u32 event_id; + bool db_enabled; + } its_vmapti_cmd; + struct { + struct its_vpe *vpe; + struct its_device *dev; + u32 event_id; + bool db_enabled; + } its_vmovi_cmd; + struct { + struct its_vpe *vpe; + struct its_collection *col; + u16 seq_num; + u16 its_list; + } its_vmovp_cmd; + struct { + struct its_vpe *vpe; + } its_invdb_cmd; + struct { + struct its_vpe *vpe; + u8 sgi; + u8 priority; + bool enable; + bool group; + bool clear; + } its_vsgi_cmd; + }; }; -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 its_cmd_info { + enum its_vcpu_info_cmd_type cmd_type; + union { + struct its_vlpi_map *map; + u8 config; + bool req_db; + struct { + bool g0en; + bool g1en; + }; + struct { + u8 priority; + bool group; + }; + }; }; -typedef u64 clientid4; +typedef struct its_collection * (*its_cmd_builder_t)(struct its_node *, struct its_cmd_block *, struct its_cmd_desc *); -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; -}; +typedef struct its_vpe * (*its_cmd_vbuilder_t)(struct its_node *, struct its_cmd_block *, struct its_cmd_desc *); -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 brcm_usb_init_params; -struct nfs41_bind_conn_to_session_args { - struct nfs_client *client; - struct nfs4_sessionid sessionid; - u32 dir; - bool use_conn_in_rdma_mode; - int retries; +struct brcm_usb_init_ops { + void (*init_ipp)(struct brcm_usb_init_params *); + void (*init_common)(struct brcm_usb_init_params *); + void (*init_eohci)(struct brcm_usb_init_params *); + void (*init_xhci)(struct brcm_usb_init_params *); + void (*uninit_common)(struct brcm_usb_init_params *); + void (*uninit_eohci)(struct brcm_usb_init_params *); + void (*uninit_xhci)(struct brcm_usb_init_params *); + int (*get_dual_select)(struct brcm_usb_init_params *); + void (*set_dual_select)(struct brcm_usb_init_params *); }; -struct nfs41_bind_conn_to_session_res { - struct nfs4_sessionid sessionid; - u32 dir; - bool use_conn_in_rdma_mode; +struct brcm_usb_init_params { + void *regs[6]; + int ioc; + int ipp; + int supported_port_modes; + int port_mode; + u32 family_id; + u32 product_id; + int selected_family; + const char *family_name; + const u32 *usb_reg_bits_map; + const struct brcm_usb_init_ops *ops; + struct regmap *syscon_piarbctl; + bool wake_enabled; }; -struct nfs41_create_session_args { - struct nfs_client *client; - u64 clientid; - uint32_t seqid; - uint32_t flags; - uint32_t cb_program; - struct nfs4_channel_attrs fc_attrs; - struct nfs4_channel_attrs bc_attrs; +enum brcmusb_reg_sel { + BRCM_REGS_CTRL = 0, + BRCM_REGS_XHCI_EC = 1, + BRCM_REGS_XHCI_GBL = 2, + BRCM_REGS_USB_PHY = 3, + BRCM_REGS_USB_MDIO = 4, + BRCM_REGS_BDC_EC = 5, + BRCM_REGS_MAX = 6, }; -struct nfs41_create_session_res { - struct nfs4_sessionid sessionid; - uint32_t seqid; - uint32_t flags; - struct nfs4_channel_attrs fc_attrs; - struct nfs4_channel_attrs bc_attrs; +struct imx8mq_usb_phy { + struct phy *phy; + struct clk *clk; + void *base; + struct regulator *vbus; + u32 pcs_tx_swing_full; + u32 pcs_tx_deemph_3p5db; + u32 tx_vref_tune; + u32 tx_rise_tune; + u32 tx_preemp_amp_tune; + u32 tx_vboost_level; + u32 comp_dis_tune; }; -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; +enum rockchip_pinctrl_type { + PX30 = 0, + RV1108 = 1, + RV1126 = 2, + RK2928 = 3, + RK3066B = 4, + RK3128 = 5, + RK3188 = 6, + RK3288 = 7, + RK3308 = 8, + RK3368 = 9, + RK3399 = 10, + RK3568 = 11, + RK3588 = 12, }; -struct nfs4_getdeviceinfo_args { - struct nfs4_sequence_args seq_args; - struct pnfs_device *pdev; - __u32 notify_types; -}; +struct rockchip_pin_bank; -struct nfs4_getdeviceinfo_res { - struct nfs4_sequence_res seq_res; - struct pnfs_device *pdev; - __u32 notification; -}; +struct rockchip_mux_recalced_data; -struct nfs4_lookupp_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; -}; +struct rockchip_mux_route_data; -struct nfs4_lookupp_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; - struct nfs_fh *fh; +struct rockchip_pin_ctrl { + struct rockchip_pin_bank *pin_banks; + u32 nr_banks; + u32 nr_pins; + char *label; + enum rockchip_pinctrl_type type; + int grf_mux_offset; + int pmu_mux_offset; + int grf_drv_offset; + int pmu_drv_offset; + struct rockchip_mux_recalced_data *iomux_recalced; + u32 niomux_recalced; + struct rockchip_mux_route_data *iomux_routes; + u32 niomux_routes; + int (*pull_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); + int (*drv_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); + int (*schmitt_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); }; -struct nfs4_accessargs { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; - u32 access; +struct rockchip_iomux { + int type; + int offset; }; -struct nfs4_accessres { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; - u32 supported; - u32 access; +enum rockchip_pin_drv_type { + DRV_TYPE_IO_DEFAULT = 0, + DRV_TYPE_IO_1V8_OR_3V0 = 1, + DRV_TYPE_IO_1V8_ONLY = 2, + DRV_TYPE_IO_1V8_3V0_AUTO = 3, + DRV_TYPE_IO_3V3_ONLY = 4, + DRV_TYPE_MAX = 5, }; -struct nfs4_readlink { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - unsigned int pgbase; - unsigned int pglen; - struct page **pages; +struct rockchip_drv { + enum rockchip_pin_drv_type drv_type; + int offset; }; -struct nfs4_readlink_res { - struct nfs4_sequence_res seq_res; +enum rockchip_pin_pull_type { + PULL_TYPE_IO_DEFAULT = 0, + PULL_TYPE_IO_1V8_ONLY = 1, + PULL_TYPE_MAX = 2, }; -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 rockchip_pinctrl; -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 rockchip_gpio_regs; -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 rockchip_pin_bank { + struct device *dev; + void *reg_base; + struct regmap *regmap_pull; + struct clk *clk; + struct clk *db_clk; + int irq; + u32 saved_masks; + u32 pin_base; + u8 nr_pins; + char *name; + u8 bank_num; + struct rockchip_iomux iomux[4]; + struct rockchip_drv drv[4]; + enum rockchip_pin_pull_type pull_type[4]; + bool valid; + struct device_node *of_node; + struct rockchip_pinctrl *drvdata; + struct irq_domain *domain; + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range grange; + raw_spinlock_t slock; + const struct rockchip_gpio_regs *gpio_regs; + u32 gpio_type; + u32 toggle_edge_mode; + u32 recalced_mask; + u32 route_mask; + struct list_head deferred_pins; + struct mutex deferred_lock; }; -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 rockchip_pin_group; -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 rockchip_pmx_func; -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 rockchip_pinctrl { + struct regmap *regmap_base; + int reg_size; + struct regmap *regmap_pull; + struct regmap *regmap_pmu; + struct device *dev; + struct rockchip_pin_ctrl *ctrl; + struct pinctrl_desc pctl; + struct pinctrl_dev *pctl_dev; + struct rockchip_pin_group *groups; + unsigned int ngroups; + struct rockchip_pmx_func *functions; + unsigned int nfunctions; }; -struct nfs4_readdir_res { - struct nfs4_sequence_res seq_res; - nfs4_verifier verifier; - unsigned int pgbase; -}; +struct rockchip_pin_config; -struct nfs4_statfs_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +struct rockchip_pin_group { + const char *name; + unsigned int npins; + unsigned int *pins; + struct rockchip_pin_config *data; }; -struct nfs4_statfs_res { - struct nfs4_sequence_res seq_res; - struct nfs_fsstat *fsstat; +struct rockchip_pin_config { + unsigned int func; + unsigned long *configs; + unsigned int nconfigs; }; -struct nfs4_pathconf_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +struct rockchip_pmx_func { + const char *name; + const char **groups; + u8 ngroups; }; -struct nfs4_pathconf_res { - struct nfs4_sequence_res seq_res; - struct nfs_pathconf *pathconf; +struct rockchip_gpio_regs { + u32 port_dr; + u32 port_ddr; + u32 int_en; + u32 int_mask; + u32 int_type; + u32 int_polarity; + u32 int_bothedge; + u32 int_status; + u32 int_rawstatus; + u32 debounce; + u32 dbclk_div_en; + u32 dbclk_div_con; + u32 port_eoi; + u32 ext_port; + u32 version_id; }; -struct nfs_lockt_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - struct file_lock *fl; - struct nfs_lowner lock_owner; +struct rockchip_mux_recalced_data { + u8 num; + u8 pin; + u32 reg; + u8 bit; + u8 mask; }; -struct nfs_lockt_res { - struct nfs4_sequence_res seq_res; - struct file_lock *denied; +enum rockchip_mux_route_location { + ROCKCHIP_ROUTE_SAME = 0, + ROCKCHIP_ROUTE_PMU = 1, + ROCKCHIP_ROUTE_GRF = 2, }; -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 rockchip_mux_route_data { + u8 bank_num; + u8 pin; + u8 func; + enum rockchip_mux_route_location route_location; + u32 route_offset; + u32 route_val; }; -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 rockchip_pin_deferred { + struct list_head head; + unsigned int pin; + enum pin_config_param param; + u32 arg; }; -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; +enum meson_reg_type { + MESON_REG_PULLEN = 0, + MESON_REG_PULL = 1, + MESON_REG_DIR = 2, + MESON_REG_OUT = 3, + MESON_REG_IN = 4, + MESON_REG_DS = 5, + MESON_NUM_REG = 6, }; -struct nfs_locku_res { - struct nfs4_sequence_res seq_res; - nfs4_stateid stateid; - struct nfs_seqid *seqid; +enum meson_pinconf_drv { + MESON_PINCONF_DRV_500UA = 0, + MESON_PINCONF_DRV_2500UA = 1, + MESON_PINCONF_DRV_3000UA = 2, + MESON_PINCONF_DRV_4000UA = 3, }; -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; +enum ioctrl_regs___2 { + POCCTRL = 0, + TDSELCTRL___2 = 1, }; -struct nfs41_secinfo_no_name_args { - struct nfs4_sequence_args seq_args; - int style; +struct sh_pfc_pin_range { + u16 start; + u16 end; }; -struct nfs4_secinfo_res { - struct nfs4_sequence_res seq_res; - struct nfs4_secinfo_flavors *flavors; +enum ioctrl_regs___3 { + POCCTRL0___2 = 0, + POCCTRL2___2 = 1, + TDSELCTRL___3 = 2, }; -struct nfs41_test_stateid_args { - struct nfs4_sequence_args seq_args; - nfs4_stateid *stateid; +enum { + GP_LAST___2 = 205, + PIN_DU_DOTCLKIN0 = 206, + PIN_FSCLKST_N___2 = 207, + PIN_MLB_REF = 208, + PIN_PRESETOUT_N___2 = 209, + PIN_TCK___2 = 210, + PIN_TDI___2 = 211, + PIN_TMS___2 = 212, + PIN_TRST_N___2 = 213, + PIN_VDDQ_AVB0___2 = 214, }; -struct nfs41_test_stateid_res { - struct nfs4_sequence_res seq_res; - unsigned int status; +struct stm32_desc_function { + const char *name; + const unsigned char num; }; -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; +struct stm32_desc_pin { + struct pinctrl_pin_desc pin; + const struct stm32_desc_function functions[18]; + const unsigned int pkg; }; -struct nfs_setattrres { - struct nfs4_sequence_res seq_res; - struct nfs_fattr *fattr; - const struct nfs_server *server; -}; +struct stm32_pinctrl_group; -struct nfs4_open_createattrs { - struct nfs4_label *label; - struct iattr *sattr; - const __u32 verf[2]; -}; +struct stm32_gpio_bank; -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 stm32_pinctrl_match_data; -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 stm32_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl_dev; + struct pinctrl_desc pctl_desc; + struct stm32_pinctrl_group *groups; + unsigned int ngroups; + const char **grp_names; + struct stm32_gpio_bank *banks; + unsigned int nbanks; + const struct stm32_pinctrl_match_data *match_data; + struct irq_domain *domain; + struct regmap *regmap; + struct regmap_field *irqmux[16]; + struct hwspinlock *hwlock; + struct stm32_desc_pin *pins; + u32 npins; + u32 pkg; + u16 irqmux_map; + spinlock_t irqmux_lock; }; -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 stm32_pinctrl_group { + const char *name; + unsigned long config; + unsigned int pin; }; -struct nfs_setaclres { - struct nfs4_sequence_res seq_res; +struct stm32_gpio_bank { + void *base; + struct clk *clk; + struct reset_control *rstc; + spinlock_t lock; + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range range; + struct fwnode_handle *fwnode; + struct irq_domain *domain; + u32 bank_nr; + u32 bank_ioport_nr; + u32 pin_backup[16]; + u8 irq_type[16]; + bool secure_control; }; -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 stm32_pinctrl_match_data { + const struct stm32_desc_pin *pins; + const unsigned int npins; + bool secure_control; }; -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; +enum gpio_v2_line_flag { + GPIO_V2_LINE_FLAG_USED = 1, + GPIO_V2_LINE_FLAG_ACTIVE_LOW = 2, + GPIO_V2_LINE_FLAG_INPUT = 4, + GPIO_V2_LINE_FLAG_OUTPUT = 8, + GPIO_V2_LINE_FLAG_EDGE_RISING = 16, + GPIO_V2_LINE_FLAG_EDGE_FALLING = 32, + GPIO_V2_LINE_FLAG_OPEN_DRAIN = 64, + GPIO_V2_LINE_FLAG_OPEN_SOURCE = 128, + GPIO_V2_LINE_FLAG_BIAS_PULL_UP = 256, + GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN = 512, + GPIO_V2_LINE_FLAG_BIAS_DISABLED = 1024, + GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME = 2048, + GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE = 4096, }; -struct nfs4_setclientid_res { - u64 clientid; - nfs4_verifier confirm; +enum gpio_v2_line_changed_type { + GPIO_V2_LINE_CHANGED_REQUESTED = 1, + GPIO_V2_LINE_CHANGED_RELEASED = 2, + GPIO_V2_LINE_CHANGED_CONFIG = 3, }; -struct nfs4_secinfo_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *dir_fh; - const struct qstr *name; +enum gpio_v2_line_attr_id { + GPIO_V2_LINE_ATTR_ID_FLAGS = 1, + GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 2, + GPIO_V2_LINE_ATTR_ID_DEBOUNCE = 3, }; -struct rpc_bind_conn_calldata { - struct nfs_client *clp; - const struct cred *cred; +enum gpio_v2_line_event_id { + GPIO_V2_LINE_EVENT_RISING_EDGE = 1, + GPIO_V2_LINE_EVENT_FALLING_EDGE = 2, }; -struct nfs4_sequence_data { - struct nfs_client *clp; - struct nfs4_sequence_args args; - struct nfs4_sequence_res res; +enum hte_edge { + HTE_EDGE_NO_SETUP = 1, + HTE_RISING_EDGE_TS = 2, + HTE_FALLING_EDGE_TS = 4, }; -struct nfs_release_lockowner_args { - struct nfs4_sequence_args seq_args; - struct nfs_lowner lock_owner; +enum hte_return { + HTE_CB_HANDLED = 0, + HTE_RUN_SECOND_CB = 1, }; -struct nfs_release_lockowner_res { - struct nfs4_sequence_res seq_res; +struct gpioevent_data { + __u64 timestamp; + __u32 id; }; -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 lineevent_state { + struct gpio_device *gdev; + const char *label; + struct gpio_desc *desc; + u32 eflags; + int irq; + wait_queue_head_t wait; + struct notifier_block device_unregistered_nb; + struct { + union { + struct __kfifo kfifo; + struct gpioevent_data *type; + const struct gpioevent_data *const_type; + char (*rectype)[0]; + struct gpioevent_data *ptr; + const struct gpioevent_data *ptr_const; + }; + struct gpioevent_data buf[16]; + } events; + u64 timestamp; }; -struct nfs4_renewdata { - struct nfs_client *client; - unsigned long timestamp; -}; +struct linereq; -struct nfs4_fsid_present_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - clientid4 clientid; - unsigned char renew: 1; +struct line { + struct gpio_desc *desc; + struct linereq *req; + unsigned int irq; + u64 edflags; + u64 timestamp_ns; + u32 req_seqno; + u32 line_seqno; + struct delayed_work work; + unsigned int sw_debounced; + unsigned int level; + struct hte_ts_desc hdesc; + int raw_level; + u32 total_discard_seq; + u32 last_seqno; }; -struct nfs4_fsid_present_res { - struct nfs4_sequence_res seq_res; - struct nfs_fh *fh; - unsigned char renew: 1; +struct gpio_v2_line_event { + __u64 timestamp_ns; + __u32 id; + __u32 offset; + __u32 seqno; + __u32 line_seqno; + __u32 padding[6]; }; -struct nfs41_free_stateid_args { - struct nfs4_sequence_args seq_args; - nfs4_stateid stateid; +struct linereq { + struct gpio_device *gdev; + const char *label; + u32 num_lines; + wait_queue_head_t wait; + struct notifier_block device_unregistered_nb; + u32 event_buffer_size; + struct { + union { + struct __kfifo kfifo; + struct gpio_v2_line_event *type; + const struct gpio_v2_line_event *const_type; + char (*rectype)[0]; + struct gpio_v2_line_event *ptr; + const struct gpio_v2_line_event *ptr_const; + }; + struct gpio_v2_line_event buf[0]; + } events; + atomic_t seqno; + struct mutex config_mutex; + struct line lines[0]; }; -struct nfs41_free_stateid_res { - struct nfs4_sequence_res seq_res; - unsigned int status; +struct gpio_v2_line_attribute { + __u32 id; + __u32 padding; + union { + __u64 flags; + __u64 values; + __u32 debounce_period_us; + }; }; -struct nfs_free_stateid_data { - struct nfs_server *server; - struct nfs41_free_stateid_args args; - struct nfs41_free_stateid_res res; +struct gpio_v2_line_info { + char name[32]; + char consumer[32]; + __u32 offset; + __u32 num_attrs; + __u64 flags; + struct gpio_v2_line_attribute attrs[10]; + __u32 padding[4]; }; -struct nfs41_reclaim_complete_args { - struct nfs4_sequence_args seq_args; - unsigned char one_fs: 1; +struct gpio_v2_line_info_changed { + struct gpio_v2_line_info info; + __u64 timestamp_ns; + __u32 event_type; + __u32 padding[5]; }; -struct nfs41_reclaim_complete_res { - struct nfs4_sequence_res seq_res; +struct gpio_chardev_data { + struct gpio_device *gdev; + wait_queue_head_t wait; + struct { + union { + struct __kfifo kfifo; + struct gpio_v2_line_info_changed *type; + const struct gpio_v2_line_info_changed *const_type; + char (*rectype)[0]; + struct gpio_v2_line_info_changed *ptr; + const struct gpio_v2_line_info_changed *ptr_const; + }; + struct gpio_v2_line_info_changed buf[32]; + } events; + struct notifier_block lineinfo_changed_nb; + struct notifier_block device_unregistered_nb; + unsigned long *watched_lines; + atomic_t watch_abi_version; }; -struct nfs4_reclaim_complete_data { - struct nfs_client *clp; - struct nfs41_reclaim_complete_args arg; - struct nfs41_reclaim_complete_res res; -}; +typedef ssize_t (*read_fn)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); -struct cb_notify_lock_args { - struct nfs_fh cbnl_fh; - struct nfs_lowner cbnl_owner; - bool cbnl_valid; +struct gpioline_info { + __u32 line_offset; + __u32 flags; + char name[32]; + char consumer[32]; }; -struct variable_validate { - efi_guid_t vendor; - char *name; - bool (*validate)(efi_char16_t *, int, u8 *, unsigned long); +struct gpioline_info_changed { + struct gpioline_info info; + __u64 timestamp; + __u32 event_type; + __u32 padding[5]; }; -struct efi_variable { - efi_char16_t VariableName[512]; - efi_guid_t VendorGuid; - unsigned long DataSize; - __u8 Data[1024]; - efi_status_t Status; - __u32 Attributes; -} __attribute__((packed)); +typedef __poll_t (*poll_fn)(struct file *, struct poll_table_struct *); -struct efivar_entry { - struct efi_variable var; - struct list_head list; - struct kobject kobj; +typedef long (*ioctl_fn)(struct file *, unsigned int, unsigned long); + +struct gpio_v2_line_config_attribute { + struct gpio_v2_line_attribute attr; + __u64 mask; }; -struct rsa_asn1_template { - const char *name; - const u8 *data; - size_t size; +struct gpio_v2_line_config { + __u64 flags; + __u32 num_attrs; + __u32 padding[5]; + struct gpio_v2_line_config_attribute attrs[10]; }; -struct pkcs1pad_inst_ctx { - struct crypto_akcipher_spawn spawn; - const struct rsa_asn1_template *digest_info; +struct gpio_v2_line_request { + __u32 offsets[64]; + char consumer[32]; + struct gpio_v2_line_config config; + __u32 num_lines; + __u32 event_buffer_size; + __u32 padding[5]; + __s32 fd; }; -struct pkcs1pad_ctx { - struct crypto_akcipher *child; - unsigned int key_size; +struct gpiochip_info { + char name[32]; + char label[32]; + __u32 lines; }; -struct pkcs1pad_request { - struct scatterlist in_sg[2]; - struct scatterlist out_sg[1]; - uint8_t *in_buf; - uint8_t *out_buf; - struct akcipher_request child_req; +struct gpioevent_request { + __u32 lineoffset; + __u32 handleflags; + __u32 eventflags; + char consumer_label[32]; + int fd; }; -struct bio_map_data { - bool is_our_pages: 1; - bool is_null_mapped: 1; - struct iov_iter iter; - struct iovec iov[0]; +struct gpiohandle_request { + __u32 lineoffsets[64]; + __u32 flags; + __u8 default_values[64]; + char consumer_label[32]; + __u32 lines; + int fd; }; -enum bip_flags { - BIP_BLOCK_INTEGRITY = 1, - BIP_MAPPED_INTEGRITY = 2, - BIP_CTRL_NOCHECK = 4, - BIP_DISK_NOCHECK = 8, - BIP_IP_CHECKSUM = 16, +struct linehandle_state { + struct gpio_device *gdev; + const char *label; + struct gpio_desc *descs[64]; + u32 num_descs; }; -typedef __be16 csum_fn(void *, unsigned int); +struct gpiohandle_data { + __u8 values[64]; +}; -struct t10_pi_tuple { - __be16 guard_tag; - __be16 app_tag; - __be32 ref_tag; +struct gpiohandle_config { + __u32 flags; + __u8 default_values[64]; + __u32 padding[4]; }; -struct crc64_pi_tuple { - __be64 guard_tag; - __be16 app_tag; - __u8 ref_tag[6]; +typedef enum hte_return (*hte_ts_cb_t)(struct hte_ts_data *, void *); + +typedef enum hte_return (*hte_ts_sec_cb_t)(void *); + +struct gpio_v2_line_values { + __u64 bits; + __u64 mask; }; -struct bcm7120_l1_intc_data; +typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32); -struct bcm7120_l2_intc_data { - unsigned int n_words; - void *map_base[8]; - void *pair_base[4]; - int en_offset[4]; - int stat_offset[4]; - struct irq_domain *domain; - bool can_wake; - u32 irq_fwd_mask[4]; - struct bcm7120_l1_intc_data *l1_data; - int num_parent_irqs; - const __be32 *map_mask_prop; +struct pci_reset_fn_method { + int (*reset_fn)(struct pci_dev *, bool); + char *name; }; -struct bcm7120_l1_intc_data { - struct bcm7120_l2_intc_data *b; - u32 irq_map_mask[4]; +enum pcie_reset_state { + pcie_deassert_reset = 1, + pcie_warm_reset = 2, + pcie_hot_reset = 3, }; -enum dprc_region_type { - DPRC_REGION_TYPE_MC_PORTAL = 0, - DPRC_REGION_TYPE_QBMAN_PORTAL = 1, - DPRC_REGION_TYPE_QBMAN_MEM_BACKED_PORTAL = 2, +struct pci_pme_device { + struct list_head list; + struct pci_dev *dev; }; -struct dprc_cmd_open { - __le32 container_id; +struct pci_saved_state { + u32 config_space[16]; + struct pci_cap_saved_data cap[0]; }; -struct dprc_cmd_reset_container { - __le32 child_container_id; - __le32 options; +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 dprc_cmd_set_irq { - __le32 irq_val; - u8 irq_index; - u8 pad[3]; - __le64 irq_addr; - __le32 irq_num; +struct linux_logo { + int type; + unsigned int width; + unsigned int height; + unsigned int clutsize; + const unsigned char *clut; + const unsigned char *data; }; -struct dprc_cmd_set_irq_enable { - u8 enable; - u8 pad[3]; - u8 irq_index; +enum { + FB_BLANK_UNBLANK = 0, + FB_BLANK_NORMAL = 1, + FB_BLANK_VSYNC_SUSPEND = 2, + FB_BLANK_HSYNC_SUSPEND = 3, + FB_BLANK_POWERDOWN = 4, }; -struct dprc_cmd_set_irq_mask { - __le32 mask; - u8 irq_index; +typedef u32 compat_caddr_t; + +struct fb_cmap32 { + u32 start; + u32 len; + compat_caddr_t red; + compat_caddr_t green; + compat_caddr_t blue; + compat_caddr_t transp; }; -struct dprc_cmd_get_irq_status { - __le32 status; - u8 irq_index; +struct fb_cmap_user { + __u32 start; + __u32 len; + __u16 __attribute__((btf_type_tag("user"))) *red; + __u16 __attribute__((btf_type_tag("user"))) *green; + __u16 __attribute__((btf_type_tag("user"))) *blue; + __u16 __attribute__((btf_type_tag("user"))) *transp; }; -struct dprc_rsp_get_irq_status { - __le32 status; +struct fb_fix_screeninfo32 { + char id[16]; + compat_caddr_t smem_start; + u32 smem_len; + u32 type; + u32 type_aux; + u32 visual; + u16 xpanstep; + u16 ypanstep; + u16 ywrapstep; + u32 line_length; + compat_caddr_t mmio_start; + u32 mmio_len; + u32 accel; + u16 reserved[3]; }; -struct dprc_cmd_clear_irq_status { - __le32 status; - u8 irq_index; +struct pci_osc_bit_struct { + u32 bit; + char *desc; }; -struct dprc_rsp_get_attributes { - __le32 container_id; - __le32 icid; - __le32 options; - __le32 portal_id; +enum acpi_bridge_type { + ACPI_BRIDGE_TYPE_PCIE = 1, + ACPI_BRIDGE_TYPE_CXL = 2, }; -struct dprc_rsp_get_obj_count { - __le32 pad; - __le32 obj_count; +struct acpi_device_physical_node { + unsigned int node_id; + struct list_head node; + struct device *dev; + bool put_online: 1; }; -struct dprc_cmd_get_obj { - __le32 obj_index; +struct acpi_pci_root_ops; + +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 dprc_rsp_get_obj { - __le32 pad0; - __le32 id; - __le16 vendor; - u8 irq_count; - u8 region_count; - __le32 state; - __le16 version_major; - __le16 version_minor; - __le16 flags; - __le16 pad1; - u8 type[16]; - u8 label[16]; +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 dprc_cmd_set_obj_irq { - __le32 irq_val; - u8 irq_index; - u8 pad[3]; - __le64 irq_addr; - __le32 irq_num; - __le32 obj_id; - u8 obj_type[16]; +struct acpi_osc_context { + char *uuid_str; + int rev; + struct acpi_buffer cap; + struct acpi_buffer ret; }; -struct dprc_cmd_get_obj_region { - __le32 obj_id; - __le16 pad0; - u8 region_index; - u8 pad1; - __le64 pad2[2]; - u8 obj_type[16]; +struct acpi_device_walk_info { + struct acpi_table_desc *table_desc; + struct acpi_evaluate_info *evaluate_info; + u32 device_count; + u32 num_STA; + u32 num_INI; }; -struct dprc_rsp_get_obj_region { - __le64 pad0; - __le64 base_offset; - __le32 size; - u8 type; - u8 pad2[3]; - __le32 flags; - __le32 pad3; - __le64 base_addr; +typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *); + +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, }; -struct dprc_cmd_get_connection { - __le32 ep1_id; - __le16 ep1_interface_id; - u8 pad[2]; - u8 ep1_type[16]; +typedef u16 acpi_rs_length; + +typedef u32 acpi_rsdesc_size; + +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 dprc_rsp_get_connection { - __le64 pad[3]; - __le32 ep2_id; - __le16 ep2_interface_id; - __le16 pad1; - u8 ep2_type[16]; - __le32 state; +struct tegra_ahb { + void *regs; + struct device *dev; + u32 ctx[0]; }; -struct mc_rsp_api_ver { - __le16 major_ver; - __le16 minor_ver; +struct clk_pwm { + struct clk_hw hw; + struct pwm_device *pwm; + u32 fixed_rate; }; -struct mc_rsp_create { - __le32 object_id; +struct clk_fractional_divider { + struct clk_hw hw; + void *reg; + u8 mshift; + u8 mwidth; + u8 nshift; + u8 nwidth; + u8 flags; + void (*approximation)(struct clk_hw *, unsigned long, unsigned long *, unsigned long *, unsigned long *); + spinlock_t *lock; }; -struct dprc_irq_cfg { - phys_addr_t paddr; +struct imx93_clk_gate { + struct clk_hw hw; + void *reg; + u32 bit_idx; u32 val; - int irq_num; + u32 mask; + spinlock_t *lock; + unsigned int *share_count; }; -struct dprc_region_desc { - u32 base_offset; - u32 size; - u32 flags; - enum dprc_region_type type; - u64 base_address; +struct clk_pll14xx { + struct clk_hw hw; + void *base; + enum imx_pll14xx_type type; + const struct imx_pll14xx_rate_table *rate_table; + int rate_count; }; -struct dprc_endpoint { - char type[16]; - int id; - u16 if_id; -}; +struct imx8qxp_lpcg_data; -struct hi6220_priv { - struct regmap *reg; - struct device *dev; +struct imx8qxp_ss_lpcg { + const struct imx8qxp_lpcg_data *lpcg; + u8 num_lpcg; + u8 num_max; }; -struct gpio_rcar_info { - bool has_outdtsel; - bool has_both_edge_trigger; - bool has_always_in; - bool has_inen; +struct imx8qxp_lpcg_data { + int id; + char *name; + char *parent; + unsigned long flags; + u32 offset; + u8 bit_idx; + bool hw_gate; }; -struct gpio_rcar_bank_info { - u32 iointsel; - u32 inoutsel; - u32 outdt; - u32 posneg; - u32 edglevel; - u32 bothedge; - u32 intmsk; +struct clk_rpmh_desc { + struct clk_hw **clks; + size_t num_clks; }; -struct gpio_rcar_priv { - void *base; - spinlock_t lock; +struct clk_rpmh { + struct clk_hw hw; + const char *res_name; + u8 div; + u32 res_addr; + u32 res_on_val; + u32 state; + u32 aggr_state; + u32 last_sent_aggr_state; + u32 valid_state_mask; + u32 unit; struct device *dev; - struct gpio_chip gpio_chip; - unsigned int irq_parent; - atomic_t wakeup_path; - struct gpio_rcar_info info; - struct gpio_rcar_bank_info bank_info; + struct clk_rpmh *peer; }; -struct pci_epc_group { - struct config_group group; - struct pci_epc *epc; - bool start; +struct cpg_mssr_priv { + struct reset_controller_dev rcdev; + struct device *dev; + void *base; + enum clk_reg_layout reg_layout; + spinlock_t rmw_lock; + struct device_node *np; + unsigned int num_core_clks; + unsigned int num_mod_clks; + unsigned int last_dt_core_clk; + struct raw_notifier_head notifiers; + const u16 *status_regs; + const u16 *control_regs; + const u16 *reset_regs; + const u16 *reset_clear_regs; + struct { + u32 mask; + u32 val; + } smstpcr_saved[30]; + struct clk *clks[0]; }; -struct pci_epf_group { - struct config_group group; - struct config_group primary_epc_group; - struct config_group secondary_epc_group; - struct config_group *type_group; - struct delayed_work cfs_work; - struct pci_epf *epf; - int index; +struct cpg_mssr_clk_domain { + struct generic_pm_domain genpd; + unsigned int num_core_pm_clks; + unsigned int core_pm_clks[0]; }; -enum backlight_type { - BACKLIGHT_RAW = 1, - BACKLIGHT_PLATFORM = 2, - BACKLIGHT_FIRMWARE = 3, - BACKLIGHT_TYPE_MAX = 4, +enum clk_types { + CLK_TYPE_IN = 0, + CLK_TYPE_FF = 1, + CLK_TYPE_DIV6P1 = 2, + CLK_TYPE_DIV6_RO = 3, + CLK_TYPE_FR = 4, + CLK_TYPE_CUSTOM = 5, }; -enum backlight_scale { - BACKLIGHT_SCALE_UNKNOWN = 0, - BACKLIGHT_SCALE_LINEAR = 1, - BACKLIGHT_SCALE_NON_LINEAR = 2, +struct mstp_clock { + struct clk_hw hw; + u32 index; + struct cpg_mssr_priv *priv; }; -enum backlight_update_reason { - BACKLIGHT_UPDATE_HOTKEY = 0, - BACKLIGHT_UPDATE_SYSFS = 1, +enum { + PLL_LOCK_DONE = 0, + PLL_DIV_S = 1, + PLL_MOD_EN = 2, + PLL_SDM_EN = 3, + PLL_REFIN = 4, + PLL_IBIAS = 5, + PLL_N = 6, + PLL_NINT = 7, + PLL_KINT = 8, + PLL_PREDIV = 9, + PLL_POSTDIV = 10, + PLL_FACT_MAX = 11, }; -enum backlight_notification { - BACKLIGHT_REGISTERED = 0, - BACKLIGHT_UNREGISTERED = 1, -}; +struct clk_bit_field; -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 sprd_pll { + u32 regs_num; + const u64 *itable; + const struct clk_bit_field *factors; + u16 udelay; + u16 k1; + u16 k2; + u16 fflag; + u64 fvco; + struct sprd_clk_common common; }; -struct backlight_ops; - -struct backlight_device { - struct backlight_properties props; - struct mutex update_lock; - struct mutex ops_lock; - const struct backlight_ops *ops; - struct notifier_block fb_notif; - struct list_head entry; - struct device dev; - bool fb_bl_on[32]; - int use_count; +struct clk_bit_field { + u8 shift; + u8 width; }; -struct backlight_ops { - unsigned int options; - int (*update_status)(struct backlight_device *); - int (*get_brightness)(struct backlight_device *); - int (*check_fb)(struct backlight_device *, struct fb_info *); +struct reg_cfg { + u32 val; + u32 msk; }; -struct fb_event { - struct fb_info *info; - void *data; +struct tegra_sdmmc_mux { + struct clk_hw hw; + void *reg; + spinlock_t *lock; + const struct clk_ops *gate_ops; + struct tegra_clk_periph_gate gate; + u8 div_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; +enum tegra_super_gen { + gen4 = 4, + gen5 = 5, }; -struct acpi_pci_link { - struct list_head list; - struct acpi_device *device; - struct acpi_pci_link_irq irq; - int refcnt; +struct tegra_super_gen_info { + enum tegra_super_gen gen; + const char **sclk_parents; + const char **cclk_g_parents; + const char **cclk_lp_parents; + int num_sclk_parents; + int num_cclk_g_parents; + int num_cclk_lp_parents; }; 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, + CMD_CLK_GET_RATE = 1, + CMD_CLK_SET_RATE = 2, + CMD_CLK_ROUND_RATE = 3, + CMD_CLK_GET_PARENT = 4, + CMD_CLK_SET_PARENT = 5, + CMD_CLK_IS_ENABLED = 6, + CMD_CLK_ENABLE = 7, + CMD_CLK_DISABLE = 8, + CMD_CLK_PROPERTIES = 9, + CMD_CLK_POSSIBLE_PARENTS = 10, + CMD_CLK_NUM_POSSIBLE_PARENTS = 11, + CMD_CLK_GET_POSSIBLE_PARENT = 12, + CMD_CLK_RESET_REFCOUNTS = 13, + CMD_CLK_GET_ALL_INFO = 14, + CMD_CLK_GET_MAX_CLK_ID = 15, + CMD_CLK_GET_FMAX_AT_VMIN = 16, + CMD_CLK_MAX = 17, }; -enum acpi_return_package_types { - ACPI_PTYPE1_FIXED = 1, - ACPI_PTYPE1_VAR = 2, - ACPI_PTYPE1_OPTION = 3, - ACPI_PTYPE2 = 4, - ACPI_PTYPE2_COUNT = 5, - ACPI_PTYPE2_PKG_COUNT = 6, - ACPI_PTYPE2_FIXED = 7, - ACPI_PTYPE2_MIN = 8, - ACPI_PTYPE2_REV_FIXED = 9, - ACPI_PTYPE2_FIX_VAR = 10, - ACPI_PTYPE2_VAR_VAR = 11, - ACPI_PTYPE2_UUID_PAIR = 12, - ACPI_PTYPE_CUSTOM = 13, +struct tegra_bpmp_clk { + struct clk_hw hw; + struct tegra_bpmp *bpmp; + unsigned int id; + unsigned int num_parents; + unsigned int *parents; }; -struct erst_erange { - u64 base; - u64 size; - void *vaddr; - u32 attr; +struct tegra_bpmp_clk_message { + unsigned int cmd; + unsigned int id; + struct { + const void *data; + size_t size; + } tx; + struct { + void *data; + size_t size; + int ret; + } rx; }; -struct apei_exec_context; +struct cmd_clk_get_rate_request {}; -struct acpi_whea_header; +typedef s64 int64_t; -typedef int (*apei_exec_ins_func_t)(struct apei_exec_context *, struct acpi_whea_header *); +struct cmd_clk_set_rate_request { + int32_t unused; + int64_t rate; +} __attribute__((packed)); -struct apei_exec_ins_type { - u32 flags; - apei_exec_ins_func_t run; -}; +struct cmd_clk_round_rate_request { + int32_t unused; + int64_t rate; +} __attribute__((packed)); -struct apei_exec_context { - u32 ip; - u64 value; - u64 var1; - u64 var2; - u64 src_base; - u64 dst_base; - struct apei_exec_ins_type *ins_table; - u32 instructions; - struct acpi_whea_header *action_table; - u32 entries; -}; +struct cmd_clk_get_parent_request {}; -struct acpi_whea_header { - u8 action; - u8 instruction; - u8 flags; - u8 reserved; - struct acpi_generic_address register_region; - u64 value; - u64 mask; +struct cmd_clk_set_parent_request { + uint32_t parent_id; }; -struct acpi_table_erst { - struct acpi_table_header header; - u32 header_length; - u32 reserved; - u32 entries; -}; +struct cmd_clk_enable_request {}; -struct erst_record_id_cache { - struct mutex lock; - u64 *entries; - int len; - int size; - int refcount; -}; +struct cmd_clk_disable_request {}; -enum acpi_erst_actions { - ACPI_ERST_BEGIN_WRITE = 0, - ACPI_ERST_BEGIN_READ = 1, - ACPI_ERST_BEGIN_CLEAR = 2, - ACPI_ERST_END = 3, - ACPI_ERST_SET_RECORD_OFFSET = 4, - ACPI_ERST_EXECUTE_OPERATION = 5, - ACPI_ERST_CHECK_BUSY_STATUS = 6, - ACPI_ERST_GET_COMMAND_STATUS = 7, - ACPI_ERST_GET_RECORD_ID = 8, - ACPI_ERST_SET_RECORD_ID = 9, - ACPI_ERST_GET_RECORD_COUNT = 10, - ACPI_ERST_BEGIN_DUMMY_WRIITE = 11, - ACPI_ERST_NOT_USED = 12, - ACPI_ERST_GET_ERROR_RANGE = 13, - ACPI_ERST_GET_ERROR_LENGTH = 14, - ACPI_ERST_GET_ERROR_ATTRIBUTES = 15, - ACPI_ERST_EXECUTE_TIMINGS = 16, - ACPI_ERST_ACTION_RESERVED = 17, -}; +struct cmd_clk_is_enabled_request {}; -struct cper_record_header { - char signature[4]; - u16 revision; - u32 signature_end; - u16 section_count; - u32 error_severity; - u32 validation_bits; - u32 record_length; - u64 timestamp; - guid_t platform_id; - guid_t partition_id; - guid_t creator_id; - guid_t notification_type; - u64 record_id; - u32 flags; - u64 persistence_information; - u8 reserved[12]; -} __attribute__((packed)); +struct cmd_clk_properties_request {}; -struct cper_section_descriptor { - u32 section_offset; - u32 section_length; - u16 revision; - u8 validation_bits; - u8 reserved; - u32 flags; - guid_t section_type; - guid_t fru_id; - u32 section_severity; - u8 fru_text[20]; -}; +struct cmd_clk_possible_parents_request {}; -struct cper_pstore_record { - struct cper_record_header hdr; - struct cper_section_descriptor sec_hdr; - char data[0]; -}; +struct cmd_clk_num_possible_parents_request {}; -struct apei_resources { - struct list_head iomem; - struct list_head ioport; +struct cmd_clk_get_possible_parent_request { + uint8_t parent_idx; }; -typedef void (*btf_trace_clk_enable)(void *, struct clk_core *); +struct cmd_clk_get_all_info_request {}; -struct clk_parent_map; +struct cmd_clk_get_max_clk_id_request {}; -struct clk_core { - const char *name; - const struct clk_ops *ops; - struct clk_hw *hw; - struct module *owner; - struct device *dev; - struct device_node *of_node; - struct clk_core *parent; - struct clk_parent_map *parents; - u8 num_parents; - u8 new_parent_index; - unsigned long rate; - unsigned long req_rate; - unsigned long new_rate; - struct clk_core *new_parent; - struct clk_core *new_child; - unsigned long flags; - bool orphan; - bool rpm_enabled; - unsigned int enable_count; - unsigned int prepare_count; - unsigned int protect_count; - unsigned long min_rate; - unsigned long max_rate; - unsigned long accuracy; - int phase; - struct clk_duty duty; - struct hlist_head children; - struct hlist_node child_node; - struct hlist_head clks; - unsigned int notifier_count; - struct dentry *dentry; - struct hlist_node debug_node; - struct kref ref; -}; +struct cmd_clk_get_fmax_at_vmin_request {}; -struct clk_parent_map { - const struct clk_hw *hw; - struct clk_core *core; - const char *fw_name; - const char *name; - int index; +struct mrq_clk_request { + uint32_t cmd_and_id; + union { + struct cmd_clk_get_rate_request clk_get_rate; + struct cmd_clk_set_rate_request clk_set_rate; + struct cmd_clk_round_rate_request clk_round_rate; + struct cmd_clk_get_parent_request clk_get_parent; + struct cmd_clk_set_parent_request clk_set_parent; + struct cmd_clk_enable_request clk_enable; + struct cmd_clk_disable_request clk_disable; + struct cmd_clk_is_enabled_request clk_is_enabled; + struct cmd_clk_properties_request clk_properties; + struct cmd_clk_possible_parents_request clk_possible_parents; + struct cmd_clk_num_possible_parents_request clk_num_possible_parents; + struct cmd_clk_get_possible_parent_request clk_get_possible_parent; + struct cmd_clk_get_all_info_request clk_get_all_info; + struct cmd_clk_get_max_clk_id_request clk_get_max_clk_id; + struct cmd_clk_get_fmax_at_vmin_request clk_get_fmax_at_vmin; + }; }; -typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *); +struct tegra_bpmp_message { + unsigned int mrq; + struct { + const void *data; + size_t size; + } tx; + struct { + void *data; + size_t size; + int ret; + } rx; + unsigned long flags; +}; -typedef void (*btf_trace_clk_disable)(void *, struct clk_core *); +struct cmd_clk_get_max_clk_id_response { + uint32_t max_id; +}; -typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *); +struct tegra_bpmp_clk_info { + unsigned int id; + char name[40]; + unsigned int parents[16]; + unsigned int num_parents; + unsigned long flags; +}; -typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *); +struct cmd_clk_get_all_info_response { + uint32_t flags; + uint32_t parent; + uint32_t parents[16]; + uint8_t num_parents; + uint8_t name[40]; +} __attribute__((packed)); -typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *); +struct cmd_clk_get_rate_response { + int64_t rate; +}; -typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *); +struct cmd_clk_get_parent_response { + uint32_t parent_id; +}; -typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *); +struct cmd_clk_is_enabled_response { + int32_t state; +}; -typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, unsigned long); +struct cmd_clk_round_rate_response { + int64_t rate; +}; -typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, unsigned long); +struct cmd_clk_set_parent_response { + uint32_t parent_id; +}; -typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, unsigned long); +struct cmd_clk_set_rate_response { + int64_t rate; +}; -typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, unsigned long); +struct mv_xor_v2_descriptor; -typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, unsigned long, unsigned long); +struct mv_xor_v2_sw_desc; -typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *); +struct mv_xor_v2_device { + spinlock_t lock; + void *dma_base; + void *glob_base; + struct clk *clk; + struct clk *reg_clk; + struct tasklet_struct irq_tasklet; + struct list_head free_sw_desc; + struct dma_device dmadev; + struct dma_chan dmachan; + dma_addr_t hw_desq; + struct mv_xor_v2_descriptor *hw_desq_virt; + struct mv_xor_v2_sw_desc *sw_desq; + int desc_size; + unsigned int npendings; + unsigned int hw_queue_idx; + unsigned int irq; +}; -typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *); +struct mv_xor_v2_descriptor { + u16 desc_id; + u16 flags; + u32 crc32_result; + u32 desc_ctrl; + u32 buff_size; + u32 fill_pattern_src_addr[4]; + u32 data_buff_addr[12]; + u32 reserved[12]; +}; -typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int); +struct mv_xor_v2_sw_desc { + int idx; + struct dma_async_tx_descriptor async_tx; + struct mv_xor_v2_descriptor hw_desc; + struct list_head free_list; +}; -typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int); +typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); -typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *); +struct meson_msr; -typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *); +struct meson_msr_id { + struct meson_msr *priv; + unsigned int id; + const char *name; +}; -typedef void (*btf_trace_clk_rate_request_start)(void *, struct clk_rate_request *); +struct meson_msr { + struct regmap *regmap; + struct meson_msr_id msr_table[128]; +}; -typedef void (*btf_trace_clk_rate_request_done)(void *, struct clk_rate_request *); +struct k3_ring; -struct clk_notifier { - struct clk *clk; - struct srcu_notifier_head notifier_head; - struct list_head node; +struct k3_ring_ops { + int (*push_tail)(struct k3_ring *, void *); + int (*push_head)(struct k3_ring *, void *); + int (*pop_tail)(struct k3_ring *, void *); + int (*pop_head)(struct k3_ring *, void *); }; -struct of_clk_provider { - struct list_head link; - struct device_node *node; - struct clk * (*get)(struct of_phandle_args *, void *); - struct clk_hw * (*get_hw)(struct of_phandle_args *, void *); - void *data; +enum k3_ring_size { + K3_RINGACC_RING_ELSIZE_4 = 0, + K3_RINGACC_RING_ELSIZE_8 = 1, + K3_RINGACC_RING_ELSIZE_16 = 2, + K3_RINGACC_RING_ELSIZE_32 = 3, + K3_RINGACC_RING_ELSIZE_64 = 4, + K3_RINGACC_RING_ELSIZE_128 = 5, + K3_RINGACC_RING_ELSIZE_256 = 6, + K3_RINGACC_RING_ELSIZE_INVALID = 7, }; -struct clock_provider { - void (*clk_init_cb)(struct device_node *); - struct device_node *np; - struct list_head node; +enum k3_ring_mode { + K3_RINGACC_RING_MODE_RING = 0, + K3_RINGACC_RING_MODE_MESSAGE = 1, + K3_RINGACC_RING_MODE_CREDENTIALS = 2, + K3_RINGACC_RING_MODE_INVALID = 3, }; -struct trace_event_raw_clk { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; +struct k3_ring_state { + u32 free; + u32 occ; + u32 windex; + u32 rindex; + u32 tdown_complete: 1; }; -struct trace_event_raw_clk_rate { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long rate; - char __data[0]; +struct k3_ring_rt_regs; + +struct k3_ring_fifo_regs; + +struct k3_ringacc_proxy_target_regs; + +struct k3_ringacc; + +struct k3_ring { + struct k3_ring_rt_regs *rt; + struct k3_ring_fifo_regs *fifos; + struct k3_ringacc_proxy_target_regs *proxy; + dma_addr_t ring_mem_dma; + void *ring_mem_virt; + struct k3_ring_ops *ops; + u32 size; + enum k3_ring_size elm_size; + enum k3_ring_mode mode; + u32 flags; + struct k3_ring_state state; + u32 ring_id; + struct k3_ringacc *parent; + u32 use_count; + int proxy_id; + struct device *dma_dev; + u32 asel; }; -struct trace_event_raw_clk_rate_range { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long min; - unsigned long max; - char __data[0]; +struct k3_ring_rt_regs { + u32 resv_16[4]; + u32 db; + u32 resv_4[1]; + u32 occ; + u32 indx; + u32 hwocc; + u32 hwindx; }; -struct trace_event_raw_clk_parent { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_pname; - char __data[0]; +struct k3_ring_fifo_regs { + u32 head_data[128]; + u32 tail_data[128]; + u32 peek_head_data[128]; + u32 peek_tail_data[128]; }; -struct trace_event_raw_clk_phase { - struct trace_entry ent; - u32 __data_loc_name; - int phase; - char __data[0]; +struct k3_ringacc_proxy_target_regs { + u32 control; + u32 status; + u8 resv_512[504]; + u32 data[128]; }; -struct trace_event_raw_clk_duty_cycle { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int num; - unsigned int den; - char __data[0]; -}; +struct k3_ringacc_proxy_gcfg_regs; -struct trace_event_raw_clk_rate_request { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_pname; - unsigned long min; - unsigned long max; - unsigned long prate; - char __data[0]; -}; +struct k3_ringacc_ops; -struct trace_event_data_offsets_clk { - u32 name; +struct k3_ringacc { + struct device *dev; + struct k3_ringacc_proxy_gcfg_regs *proxy_gcfg; + void *proxy_target_base; + u32 num_rings; + unsigned long *rings_inuse; + struct ti_sci_resource *rm_gp_range; + bool dma_ring_reset_quirk; + u32 num_proxies; + unsigned long *proxy_inuse; + struct k3_ring *rings; + struct list_head list; + struct mutex req_lock; + const struct ti_sci_handle *tisci; + const struct ti_sci_rm_ringacc_ops *tisci_ring_ops; + u32 tisci_dev_id; + const struct k3_ringacc_ops *ops; + bool dma_rings; }; -struct trace_event_data_offsets_clk_rate { - u32 name; +struct k3_ringacc_proxy_gcfg_regs { + u32 revision; + u32 config; }; -struct trace_event_data_offsets_clk_rate_range { - u32 name; +struct k3_ringacc_ops { + int (*init)(struct platform_device *, struct k3_ringacc *); }; -struct trace_event_data_offsets_clk_parent { - u32 name; - u32 pname; +struct ringacc_match_data { + struct k3_ringacc_ops ops; }; -struct trace_event_data_offsets_clk_phase { - u32 name; +struct k3_ringacc_soc_data { + unsigned int dma_ring_reset_quirk: 1; }; -struct trace_event_data_offsets_clk_duty_cycle { - u32 name; +enum k3_ringacc_access_mode { + K3_RINGACC_ACCESS_MODE_PUSH_HEAD = 0, + K3_RINGACC_ACCESS_MODE_POP_HEAD = 1, + K3_RINGACC_ACCESS_MODE_PUSH_TAIL = 2, + K3_RINGACC_ACCESS_MODE_POP_TAIL = 3, + K3_RINGACC_ACCESS_MODE_PEEK_HEAD = 4, + K3_RINGACC_ACCESS_MODE_PEEK_TAIL = 5, }; -struct trace_event_data_offsets_clk_rate_request { - u32 name; - u32 pname; +enum k3_ringacc_proxy_access_mode { + PROXY_ACCESS_MODE_HEAD = 0, + PROXY_ACCESS_MODE_TAIL = 1, + PROXY_ACCESS_MODE_PEEK_HEAD = 2, + PROXY_ACCESS_MODE_PEEK_TAIL = 3, }; -struct clk_notifier_devres { - struct clk *clk; - struct notifier_block *nb; +struct k3_ring_cfg { + u32 size; + enum k3_ring_size elm_size; + enum k3_ring_mode mode; + u32 flags; + struct device *dma_dev; + u32 asel; }; -struct fh_pll_state { - void *base; - u32 fh_enable; - u32 ssc_rate; +struct k3_ringacc_init_data { + const struct ti_sci_handle *tisci; + u32 tisci_dev_id; + u32 num_rings; }; -struct fh_pll_data { - int pll_id; - int fh_id; - int fh_ver; - u32 fhx_offset; - u32 dds_mask; - u32 slope0_value; - u32 slope1_value; - u32 sfstrx_en; - u32 frddsx_en; - u32 fhctlx_en; - u32 tgl_org; - u32 dvfs_tri; - u32 pcwchg; - u32 dt_val; - u32 df_val; - u32 updnlmt_shft; - u32 msk_frddsx_dys; - u32 msk_frddsx_dts; -}; +struct rpmpd; -struct mtk_pllfh_data { - struct fh_pll_state state; - const struct fh_pll_data data; +struct rpmpd_desc { + struct rpmpd **rpmpds; + size_t num_pds; + unsigned int max_state; }; -struct mn { - u8 mnctr_en_bit; - u8 mnctr_reset_bit; - u8 mnctr_mode_shift; - u8 n_val_shift; - u8 m_val_shift; - u8 width; - bool reset_in_cc; +struct rpmpd { + struct generic_pm_domain pd; + struct generic_pm_domain *parent; + struct rpmpd *peer; + const bool active_only; + unsigned int corner; + bool enabled; + const int res_type; + const int res_id; + struct qcom_smd_rpm *rpm; + unsigned int max_state; + __le32 key; + bool state_synced; }; -struct pre_div { - u8 pre_div_shift; - u8 pre_div_width; +struct rpmpd_req { + __le32 key; + __le32 nbytes; + __le32 value; }; -struct src_sel { - u8 src_sel_shift; - const struct parent_map *parent_map; +struct balloon_stats { + unsigned long current_pages; + unsigned long target_pages; + unsigned long target_unpopulated; + unsigned long balloon_low; + unsigned long balloon_high; + unsigned long total_pages; + unsigned long schedule_delay; + unsigned long max_schedule_delay; + unsigned long retry_count; + unsigned long max_retry_count; }; -struct clk_rcg { - u32 ns_reg; - u32 md_reg; - struct mn mn; - struct pre_div p; - struct src_sel s; - const struct freq_tbl *freq_tbl; - struct clk_regmap___2 clkr; +enum bp_state { + BP_DONE = 0, + BP_WAIT = 1, + BP_EAGAIN = 2, + BP_ECANCELED = 3, }; -struct clk_dyn_rcg { - u32 ns_reg[2]; - u32 md_reg[2]; - u32 bank_reg; - u8 mux_sel_bit; - struct mn mn[2]; - struct pre_div p[2]; - struct src_sel s[2]; - const struct freq_tbl *freq_tbl; - struct clk_regmap___2 clkr; -}; +typedef int mhp_t; -struct hfpll_data { - u32 mode_reg; - u32 l_reg; - u32 m_reg; - u32 n_reg; - u32 user_reg; - u32 droop_reg; - u32 config_reg; - u32 status_reg; - u8 lock_bit; - u32 droop_val; - u32 config_val; - u32 user_val; - u32 user_vco_mask; - unsigned long low_vco_max_rate; - unsigned long min_rate; - unsigned long max_rate; -}; +typedef void (*online_page_callback_t)(struct page *, unsigned int); -struct clk_hfpll { - const struct hfpll_data *d; - int init_done; - struct clk_regmap___2 clkr; - spinlock_t lock; +enum regulator_get_type { + NORMAL_GET = 0, + EXCLUSIVE_GET = 1, + OPTIONAL_GET = 2, + MAX_GET_TYPE = 3, }; -struct exynos_cpuclk { - struct clk_hw hw; - const struct clk_hw *alt_parent; - void *ctrl_base; - spinlock_t *lock; - const struct exynos_cpuclk_cfg_data *cfg; - const unsigned long num_cfgs; - struct notifier_block clk_nb; - unsigned long flags; +struct regulator_voltage { + int min_uV; + int max_uV; }; -struct socfpga_gate_clk { - struct clk_gate hw; - char *parent_name; - u32 fixed_div; - void *div_reg; - void *bypass_reg; - struct regmap *sys_mgr_base_addr; - u32 width; - u32 shift; - u32 bypass_shift; +struct regulator { + struct device *dev; + struct list_head list; + unsigned int always_on: 1; + unsigned int bypass: 1; + unsigned int device_link: 1; + int uA_load; + unsigned int enable_count; + unsigned int deferred_disables; + struct regulator_voltage voltage[5]; + const char *supply_name; + struct device_attribute dev_attr; + struct regulator_dev *rdev; + struct dentry *debugfs; }; -struct stratix10_gate_clock { - unsigned int id; - const char *name; - const char *parent_name; - const struct clk_parent_data *parent_data; - u8 num_parents; - unsigned long flags; - unsigned long gate_reg; - u8 gate_idx; - unsigned long div_reg; - u8 div_offset; - u8 div_width; - unsigned long bypass_reg; - u8 bypass_shift; - u8 fixed_div; +struct regulator_bulk_devres { + struct regulator_bulk_data *consumers; + int num_consumers; }; -struct sprd_clk_desc { - struct sprd_clk_common **clk_clks; - unsigned long num_clk_clks; - struct clk_hw_onecell_data *hw_clks; +struct regulator_supply_alias_match { + struct device *dev; + const char *id; }; -struct sprd_mux_ssel { - u8 shift; - u8 width; - const u8 *table; -}; +struct regulator_irq_data; -struct sprd_mux { - struct sprd_mux_ssel mux; - struct sprd_clk_common common; +struct regulator_irq_desc { + const char *name; + int fatal_cnt; + int reread_ms; + int irq_off_ms; + bool skip_off; + bool high_prio; + void *data; + int (*die)(struct regulator_irq_data *); + int (*map_event)(int, struct regulator_irq_data *, unsigned long *); + int (*renable)(struct regulator_irq_data *); }; -struct clk_bit_field; +struct regulator_err_state; -struct sprd_pll { - u32 regs_num; - const u64 *itable; - const struct clk_bit_field *factors; - u16 udelay; - u16 k1; - u16 k2; - u16 fflag; - u64 fvco; - struct sprd_clk_common common; +struct regulator_irq_data { + struct regulator_err_state *states; + int num_states; + void *data; + long opaque; }; -struct clk_bit_field { - u8 shift; - u8 width; +struct regulator_err_state { + struct regulator_dev *rdev; + unsigned long notifs; + unsigned long errors; + int possible_errs; }; -struct sprd_comp { - struct sprd_mux_ssel mux; - struct sprd_div_internal div; - struct sprd_clk_common common; +struct regulator_notifier_match { + struct regulator *regulator; + struct notifier_block *nb; }; -struct visconti_fixed_clk { - unsigned int id; - const char *name; - const char *parent; - unsigned long flag; - unsigned int mult; - unsigned int div; +enum hi6220_reset_ctrl_type { + PERIPHERAL = 0, + MEDIA = 1, + AO = 2, }; -struct visconti_clk_gate_table { - unsigned int id; - const char *name; - const struct clk_parent_data *parent_data; - u8 num_parents; - u8 flags; - u32 ckon_offset; - u32 ckoff_offset; - u8 ck_idx; - unsigned int div; - u8 rs_id; +struct hi6220_reset_data { + struct reset_controller_dev rc_dev; + struct regmap *regmap; }; -struct visconti_clk_provider { - struct device *dev; - struct regmap *regmap; - struct clk_hw_onecell_data clk_data; +struct uniphier_glue_reset_soc_data { + int nclks; + const char * const *clock_names; + int nrsts; + const char * const *reset_names; }; -struct apple_sart; +struct reset_simple_data { + spinlock_t lock; + void *membase; + struct reset_controller_dev rcdev; + bool active_low; + bool status_active_low; + unsigned int reset_us; +}; -struct apple_sart_ops { - void (*get_entry)(struct apple_sart *, int, u8 *, phys_addr_t *, size_t *); - void (*set_entry)(struct apple_sart *, int, u8, phys_addr_t, size_t); - unsigned int size_shift; - unsigned int paddr_shift; - size_t size_max; +struct uniphier_glue_reset_priv { + struct clk_bulk_data clk[2]; + struct reset_control_bulk_data rst[2]; + struct reset_simple_data rdata; + const struct uniphier_glue_reset_soc_data *data; }; -struct apple_sart { +struct con_driver { + const struct consw *con; + const char *desc; struct device *dev; - void *regs; - const struct apple_sart_ops *ops; - unsigned long protected_entries; - unsigned long used_entries; + int node; + int first; + int last; + int flag; }; -struct scp_ctrl_reg { - int pwr_sta_offs; - int pwr_sta2nd_offs; +struct vc { + struct vc_data *d; + struct work_struct SAK_work; }; -struct scp_domain_data; - -struct scp_subdomain; - -struct scp_soc_data { - const struct scp_domain_data *domains; - int num_domains; - const struct scp_subdomain *subdomains; - int num_subdomains; - const struct scp_ctrl_reg regs; - bool bus_prot_reg_update; +struct interval { + uint32_t first; + uint32_t last; }; -enum clk_id___2 { - CLK_NONE = 0, - CLK_MM = 1, - CLK_MFG = 2, - CLK_VENC = 3, - CLK_VENC_LT = 4, - CLK_ETHIF = 5, - CLK_VDEC = 6, - CLK_HIFSEL = 7, - CLK_JPGDEC = 8, - CLK_AUDIO = 9, - CLK_MAX = 10, +enum { + blank_off = 0, + blank_normal_wait = 1, + blank_vesa_wait = 2, }; -struct scp_domain_data { - const char *name; - u32 sta_mask; - int ctl_offs; - u32 sram_pdn_bits; - u32 sram_pdn_ack_bits; - u32 bus_prot_mask; - enum clk_id___2 clk_id[3]; - u8 caps; +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, }; -struct scp_subdomain { - int origin; - int subdomain; +enum { + EPecma = 0, + EPdec = 1, + EPeq = 2, + EPgt = 3, + EPlt = 4, }; -struct scp; - -struct scp_domain { - struct generic_pm_domain genpd; - struct scp *scp; - struct clk *clk[3]; - const struct scp_domain_data *data; - struct regulator *supply; +struct tiocl_selection { + unsigned short xs; + unsigned short ys; + unsigned short xe; + unsigned short ye; + unsigned short sel_mode; }; -struct scp { - struct scp_domain *domains; - struct genpd_onecell_data pd_data; - struct device *dev; - void *base; - struct regmap *infracfg; - struct scp_ctrl_reg ctrl_reg; - bool bus_prot_reg_update; +struct vt_notifier_param { + struct vc_data *vc; + unsigned int c; }; -enum tegra_suspend_mode { - TEGRA_SUSPEND_NONE = 0, - TEGRA_SUSPEND_LP2 = 1, - TEGRA_SUSPEND_LP1 = 2, - TEGRA_SUSPEND_LP0 = 3, - TEGRA_MAX_SUSPEND_MODE = 4, - TEGRA_SUSPEND_NOT_READY = 5, +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 tegra_pmc_soc; - -struct tegra_pmc { - struct device *dev; - void *base; - void *wake; - void *aotag; - void *scratch; - struct clk *clk; - const struct tegra_pmc_soc *soc; - bool tz_only; - unsigned long rate; - enum tegra_suspend_mode suspend_mode; - u32 cpu_good_time; - u32 cpu_off_time; - u32 core_osc_time; - u32 core_pmu_time; - u32 core_off_time; - bool corereq_high; - bool sysclkreq_high; - bool combined_req; - bool cpu_pwr_good_en; - u32 lp0_vec_phys; - u32 lp0_vec_size; - unsigned long powergates_available[1]; - struct mutex powergates_lock; - struct pinctrl_dev *pctl_dev; - struct irq_domain *domain; - struct irq_chip irq; - struct notifier_block clk_nb; - bool core_domain_state_synced; - bool core_domain_registered; - unsigned long *wake_type_level_map; - unsigned long *wake_type_dual_edge_map; - unsigned long *wake_sw_status_map; - unsigned long *wake_cntrl_level_map; - struct syscore_ops syscore; +struct vc_draw_region { + unsigned long from; + unsigned long to; + int x; }; -struct tegra_io_pad_soc; - -struct tegra_pmc_regs; +struct rgb { + u8 r; + u8 g; + u8 b; +}; -struct tegra_wake_event; +struct serial_private; -struct pmc_clk_init_data; +struct pciserial_board; -struct tegra_pmc_soc { - unsigned int num_powergates; - const char * const *powergates; - unsigned int num_cpu_powergates; - const u8 *cpu_powergates; - bool has_tsense_reset; - bool has_gpu_clamps; - bool needs_mbist_war; - bool has_impl_33v_pwr; - bool maybe_tz_only; - const struct tegra_io_pad_soc *io_pads; - unsigned int num_io_pads; - const struct pinctrl_pin_desc *pin_descs; - unsigned int num_pin_descs; - const struct tegra_pmc_regs *regs; - void (*init)(struct tegra_pmc *); - void (*setup_irq_polarity)(struct tegra_pmc *, struct device_node *, bool); - void (*set_wake_filters)(struct tegra_pmc *); - int (*irq_set_wake)(struct irq_data *, unsigned int); - int (*irq_set_type)(struct irq_data *, unsigned int); - int (*powergate_set)(struct tegra_pmc *, unsigned int, bool); - const char * const *reset_sources; - unsigned int num_reset_sources; - const char * const *reset_levels; - unsigned int num_reset_levels; - const struct tegra_wake_event *wake_events; - unsigned int num_wake_events; - unsigned int max_wake_events; - unsigned int max_wake_vectors; - const struct pmc_clk_init_data *pmc_clks_data; - unsigned int num_pmc_clks; - bool has_blink_output; - bool has_usb_sleepwalk; - bool supports_core_domain; +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 *); }; -enum tegra_io_pad { - TEGRA_IO_PAD_AUDIO = 0, - TEGRA_IO_PAD_AUDIO_HV = 1, - TEGRA_IO_PAD_BB = 2, - TEGRA_IO_PAD_CAM = 3, - TEGRA_IO_PAD_COMP = 4, - TEGRA_IO_PAD_CONN = 5, - TEGRA_IO_PAD_CSIA = 6, - TEGRA_IO_PAD_CSIB = 7, - TEGRA_IO_PAD_CSIC = 8, - TEGRA_IO_PAD_CSID = 9, - TEGRA_IO_PAD_CSIE = 10, - TEGRA_IO_PAD_CSIF = 11, - TEGRA_IO_PAD_CSIG = 12, - TEGRA_IO_PAD_CSIH = 13, - TEGRA_IO_PAD_DAP3 = 14, - TEGRA_IO_PAD_DAP5 = 15, - TEGRA_IO_PAD_DBG = 16, - TEGRA_IO_PAD_DEBUG_NONAO = 17, - TEGRA_IO_PAD_DMIC = 18, - TEGRA_IO_PAD_DMIC_HV = 19, - TEGRA_IO_PAD_DP = 20, - TEGRA_IO_PAD_DSI = 21, - TEGRA_IO_PAD_DSIB = 22, - TEGRA_IO_PAD_DSIC = 23, - TEGRA_IO_PAD_DSID = 24, - TEGRA_IO_PAD_EDP = 25, - TEGRA_IO_PAD_EMMC = 26, - TEGRA_IO_PAD_EMMC2 = 27, - TEGRA_IO_PAD_EQOS = 28, - TEGRA_IO_PAD_GPIO = 29, - TEGRA_IO_PAD_GP_PWM2 = 30, - TEGRA_IO_PAD_GP_PWM3 = 31, - TEGRA_IO_PAD_HDMI = 32, - TEGRA_IO_PAD_HDMI_DP0 = 33, - TEGRA_IO_PAD_HDMI_DP1 = 34, - TEGRA_IO_PAD_HDMI_DP2 = 35, - TEGRA_IO_PAD_HDMI_DP3 = 36, - TEGRA_IO_PAD_HSIC = 37, - TEGRA_IO_PAD_HV = 38, - TEGRA_IO_PAD_LVDS = 39, - TEGRA_IO_PAD_MIPI_BIAS = 40, - TEGRA_IO_PAD_NAND = 41, - TEGRA_IO_PAD_PEX_BIAS = 42, - TEGRA_IO_PAD_PEX_CLK_BIAS = 43, - TEGRA_IO_PAD_PEX_CLK1 = 44, - TEGRA_IO_PAD_PEX_CLK2 = 45, - TEGRA_IO_PAD_PEX_CLK3 = 46, - TEGRA_IO_PAD_PEX_CLK_2_BIAS = 47, - TEGRA_IO_PAD_PEX_CLK_2 = 48, - TEGRA_IO_PAD_PEX_CNTRL = 49, - TEGRA_IO_PAD_PEX_CTL2 = 50, - TEGRA_IO_PAD_PEX_L0_RST = 51, - TEGRA_IO_PAD_PEX_L1_RST = 52, - TEGRA_IO_PAD_PEX_L5_RST = 53, - TEGRA_IO_PAD_PWR_CTL = 54, - TEGRA_IO_PAD_SDMMC1 = 55, - TEGRA_IO_PAD_SDMMC1_HV = 56, - TEGRA_IO_PAD_SDMMC2 = 57, - TEGRA_IO_PAD_SDMMC2_HV = 58, - TEGRA_IO_PAD_SDMMC3 = 59, - TEGRA_IO_PAD_SDMMC3_HV = 60, - TEGRA_IO_PAD_SDMMC4 = 61, - TEGRA_IO_PAD_SOC_GPIO10 = 62, - TEGRA_IO_PAD_SOC_GPIO12 = 63, - TEGRA_IO_PAD_SOC_GPIO13 = 64, - TEGRA_IO_PAD_SOC_GPIO53 = 65, - TEGRA_IO_PAD_SPI = 66, - TEGRA_IO_PAD_SPI_HV = 67, - TEGRA_IO_PAD_SYS_DDC = 68, - TEGRA_IO_PAD_UART = 69, - TEGRA_IO_PAD_UART4 = 70, - TEGRA_IO_PAD_UART5 = 71, - TEGRA_IO_PAD_UFS = 72, - TEGRA_IO_PAD_USB0 = 73, - TEGRA_IO_PAD_USB1 = 74, - TEGRA_IO_PAD_USB2 = 75, - TEGRA_IO_PAD_USB3 = 76, - TEGRA_IO_PAD_USB_BIAS = 77, - TEGRA_IO_PAD_AO_HV = 78, +struct serial_private { + struct pci_dev *dev; + unsigned int nr; + struct pci_serial_quirk *quirk; + const struct pciserial_board *board; + int line[0]; }; -struct tegra_io_pad_soc { - enum tegra_io_pad id; - unsigned int dpd; - unsigned int request; - unsigned int status; - unsigned int voltage; - const char *name; +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 tegra_pmc_regs { - unsigned int scratch0; - unsigned int rst_status; - unsigned int rst_source_shift; - unsigned int rst_source_mask; - unsigned int rst_level_shift; - unsigned int rst_level_mask; +struct timedia_struct { + int num; + const unsigned short *ids; }; -struct tegra_wake_event { - const char *name; - unsigned int id; - unsigned int irq; - struct { - unsigned int instance; - unsigned int pin; - } gpio; +enum pci_board_num_t { + pbn_default = 0, + pbn_b0_1_115200 = 1, + pbn_b0_2_115200 = 2, + pbn_b0_4_115200 = 3, + pbn_b0_5_115200 = 4, + pbn_b0_8_115200 = 5, + pbn_b0_1_921600 = 6, + pbn_b0_2_921600 = 7, + pbn_b0_4_921600 = 8, + pbn_b0_2_1130000 = 9, + pbn_b0_4_1152000 = 10, + pbn_b0_4_1250000 = 11, + pbn_b0_2_1843200 = 12, + pbn_b0_4_1843200 = 13, + pbn_b0_1_15625000 = 14, + pbn_b0_bt_1_115200 = 15, + pbn_b0_bt_2_115200 = 16, + pbn_b0_bt_4_115200 = 17, + pbn_b0_bt_8_115200 = 18, + pbn_b0_bt_1_460800 = 19, + pbn_b0_bt_2_460800 = 20, + pbn_b0_bt_4_460800 = 21, + pbn_b0_bt_1_921600 = 22, + pbn_b0_bt_2_921600 = 23, + pbn_b0_bt_4_921600 = 24, + pbn_b0_bt_8_921600 = 25, + pbn_b1_1_115200 = 26, + pbn_b1_2_115200 = 27, + pbn_b1_4_115200 = 28, + pbn_b1_8_115200 = 29, + pbn_b1_16_115200 = 30, + pbn_b1_1_921600 = 31, + pbn_b1_2_921600 = 32, + pbn_b1_4_921600 = 33, + pbn_b1_8_921600 = 34, + pbn_b1_2_1250000 = 35, + pbn_b1_bt_1_115200 = 36, + pbn_b1_bt_2_115200 = 37, + pbn_b1_bt_4_115200 = 38, + pbn_b1_bt_2_921600 = 39, + pbn_b1_1_1382400 = 40, + pbn_b1_2_1382400 = 41, + pbn_b1_4_1382400 = 42, + pbn_b1_8_1382400 = 43, + pbn_b2_1_115200 = 44, + pbn_b2_2_115200 = 45, + pbn_b2_4_115200 = 46, + pbn_b2_8_115200 = 47, + pbn_b2_1_460800 = 48, + pbn_b2_4_460800 = 49, + pbn_b2_8_460800 = 50, + pbn_b2_16_460800 = 51, + pbn_b2_1_921600 = 52, + pbn_b2_4_921600 = 53, + pbn_b2_8_921600 = 54, + pbn_b2_8_1152000 = 55, + pbn_b2_bt_1_115200 = 56, + pbn_b2_bt_2_115200 = 57, + pbn_b2_bt_4_115200 = 58, + pbn_b2_bt_2_921600 = 59, + pbn_b2_bt_4_921600 = 60, + pbn_b3_2_115200 = 61, + pbn_b3_4_115200 = 62, + pbn_b3_8_115200 = 63, + pbn_b4_bt_2_921600 = 64, + pbn_b4_bt_4_921600 = 65, + pbn_b4_bt_8_921600 = 66, + pbn_panacom = 67, + pbn_panacom2 = 68, + pbn_panacom4 = 69, + pbn_plx_romulus = 70, + pbn_oxsemi = 71, + pbn_oxsemi_1_15625000 = 72, + pbn_oxsemi_2_15625000 = 73, + pbn_oxsemi_4_15625000 = 74, + pbn_oxsemi_8_15625000 = 75, + pbn_intel_i960 = 76, + pbn_sgi_ioc3 = 77, + pbn_computone_4 = 78, + pbn_computone_6 = 79, + pbn_computone_8 = 80, + pbn_sbsxrsio = 81, + pbn_pasemi_1682M = 82, + pbn_ni8430_2 = 83, + pbn_ni8430_4 = 84, + pbn_ni8430_8 = 85, + pbn_ni8430_16 = 86, + pbn_ADDIDATA_PCIe_1_3906250 = 87, + pbn_ADDIDATA_PCIe_2_3906250 = 88, + pbn_ADDIDATA_PCIe_4_3906250 = 89, + pbn_ADDIDATA_PCIe_8_3906250 = 90, + pbn_ce4100_1_115200 = 91, + pbn_omegapci = 92, + pbn_NETMOS9900_2s_115200 = 93, + pbn_brcm_trumanage = 94, + pbn_fintek_4 = 95, + pbn_fintek_8 = 96, + pbn_fintek_12 = 97, + pbn_fintek_F81504A = 98, + pbn_fintek_F81508A = 99, + pbn_fintek_F81512A = 100, + pbn_wch382_2 = 101, + pbn_wch384_4 = 102, + pbn_wch384_8 = 103, + pbn_sunix_pci_1s = 104, + pbn_sunix_pci_2s = 105, + pbn_sunix_pci_4s = 106, + pbn_sunix_pci_8s = 107, + pbn_sunix_pci_16s = 108, + pbn_titan_1_4000000 = 109, + pbn_titan_2_4000000 = 110, + pbn_titan_4_4000000 = 111, + pbn_titan_8_4000000 = 112, + pbn_moxa_2 = 113, + pbn_moxa_4 = 114, + pbn_moxa_8 = 115, }; -struct pmc_clk_init_data { - char *name; - const char * const *parents; - int num_parents; - int clk_id; - u8 mux_shift; - u8 force_en_shift; +struct f815xxa_data { + spinlock_t lock; + int idx; }; -struct tegra_powergate { - struct generic_pm_domain genpd; - struct tegra_pmc *pmc; - unsigned int id; - struct clk **clks; - unsigned int num_clks; - unsigned long *clk_rates; - struct reset_control *reset; -}; +struct arm_smmu_device; -struct pmc_clk { - struct clk_hw hw; - unsigned long offs; - u32 mux_shift; - u32 force_en_shift; -}; +struct arm_smmu_domain; -struct pmc_clk_gate { - struct clk_hw hw; - unsigned long offs; - u32 shift; +struct arm_smmu_impl { + u32 (*read_reg)(struct arm_smmu_device *, int, int); + void (*write_reg)(struct arm_smmu_device *, int, int, u32); + u64 (*read_reg64)(struct arm_smmu_device *, int, int); + void (*write_reg64)(struct arm_smmu_device *, int, int, u64); + int (*cfg_probe)(struct arm_smmu_device *); + int (*reset)(struct arm_smmu_device *); + int (*init_context)(struct arm_smmu_domain *, struct io_pgtable_cfg *, struct device *); + void (*tlb_sync)(struct arm_smmu_device *, int, int, int); + int (*def_domain_type)(struct device *); + irqreturn_t (*global_fault)(int, void *); + irqreturn_t (*context_fault)(int, void *); + int (*alloc_context_bank)(struct arm_smmu_domain *, struct arm_smmu_device *, struct device *, int); + void (*write_s2cr)(struct arm_smmu_device *, int); + void (*write_sctlr)(struct arm_smmu_device *, int, u32); + void (*probe_finalize)(struct arm_smmu_device *, struct device *); }; -enum { - AXP22X_DCDC1 = 0, - AXP22X_DCDC2 = 1, - AXP22X_DCDC3 = 2, - AXP22X_DCDC4 = 3, - AXP22X_DCDC5 = 4, - AXP22X_DC1SW = 5, - AXP22X_DC5LDO = 6, - AXP22X_ALDO1 = 7, - AXP22X_ALDO2 = 8, - AXP22X_ALDO3 = 9, - AXP22X_ELDO1 = 10, - AXP22X_ELDO2 = 11, - AXP22X_ELDO3 = 12, - AXP22X_DLDO1 = 13, - AXP22X_DLDO2 = 14, - AXP22X_DLDO3 = 15, - AXP22X_DLDO4 = 16, - AXP22X_RTC_LDO = 17, - AXP22X_LDO_IO0 = 18, - AXP22X_LDO_IO1 = 19, - AXP22X_REG_ID_MAX = 20, +enum arm_smmu_arch_version { + ARM_SMMU_V1 = 0, + ARM_SMMU_V1_64K = 1, + ARM_SMMU_V2 = 2, }; -enum { - AXP15060_DCDC1 = 0, - AXP15060_DCDC2 = 1, - AXP15060_DCDC3 = 2, - AXP15060_DCDC4 = 3, - AXP15060_DCDC5 = 4, - AXP15060_DCDC6 = 5, - AXP15060_ALDO1 = 6, - AXP15060_ALDO2 = 7, - AXP15060_ALDO3 = 8, - AXP15060_ALDO4 = 9, - AXP15060_ALDO5 = 10, - AXP15060_BLDO1 = 11, - AXP15060_BLDO2 = 12, - AXP15060_BLDO3 = 13, - AXP15060_BLDO4 = 14, - AXP15060_BLDO5 = 15, - AXP15060_CLDO1 = 16, - AXP15060_CLDO2 = 17, - AXP15060_CLDO3 = 18, - AXP15060_CLDO4 = 19, - AXP15060_CPUSLDO = 20, - AXP15060_SW = 21, - AXP15060_RTC_LDO = 22, - AXP15060_REG_ID_MAX = 23, +enum arm_smmu_implementation { + GENERIC_SMMU = 0, + ARM_MMU500 = 1, + CAVIUM_SMMUV2 = 2, + QCOM_SMMUV2 = 3, }; -enum { - AXP20X_LDO1 = 0, - AXP20X_LDO2 = 1, - AXP20X_LDO3 = 2, - AXP20X_LDO4 = 3, - AXP20X_LDO5 = 4, - AXP20X_DCDC2 = 5, - AXP20X_DCDC3 = 6, - AXP20X_REG_ID_MAX = 7, +struct arm_smmu_cb; + +struct arm_smmu_smr; + +struct arm_smmu_s2cr; + +struct arm_smmu_device { + struct device *dev; + void *base; + phys_addr_t ioaddr; + unsigned int numpage; + unsigned int pgshift; + u32 features; + enum arm_smmu_arch_version version; + enum arm_smmu_implementation model; + const struct arm_smmu_impl *impl; + u32 num_context_banks; + u32 num_s2_context_banks; + unsigned long context_map[2]; + struct arm_smmu_cb *cbs; + atomic_t irptndx; + u32 num_mapping_groups; + u16 streamid_mask; + u16 smr_mask_mask; + struct arm_smmu_smr *smrs; + struct arm_smmu_s2cr *s2crs; + struct mutex stream_map_mutex; + unsigned long va_size; + unsigned long ipa_size; + unsigned long pa_size; + unsigned long pgsize_bitmap; + int num_context_irqs; + int num_clks; + unsigned int *irqs; + struct clk_bulk_data *clks; + spinlock_t global_sync_lock; + struct iommu_device iommu; }; -enum { - AXP313A_DCDC1 = 0, - AXP313A_DCDC2 = 1, - AXP313A_DCDC3 = 2, - AXP313A_ALDO1 = 3, - AXP313A_DLDO1 = 4, - AXP313A_RTC_LDO = 5, - AXP313A_REG_ID_MAX = 6, +struct arm_smmu_cfg; + +struct arm_smmu_cb { + u64 ttbr[2]; + u32 tcr[2]; + u32 mair[2]; + struct arm_smmu_cfg *cfg; }; -enum { - AXP803_DCDC1 = 0, - AXP803_DCDC2 = 1, - AXP803_DCDC3 = 2, - AXP803_DCDC4 = 3, - AXP803_DCDC5 = 4, - AXP803_DCDC6 = 5, - AXP803_DC1SW = 6, - AXP803_ALDO1 = 7, - AXP803_ALDO2 = 8, - AXP803_ALDO3 = 9, - AXP803_DLDO1 = 10, - AXP803_DLDO2 = 11, - AXP803_DLDO3 = 12, - AXP803_DLDO4 = 13, - AXP803_ELDO1 = 14, - AXP803_ELDO2 = 15, - AXP803_ELDO3 = 16, - AXP803_FLDO1 = 17, - AXP803_FLDO2 = 18, - AXP803_RTC_LDO = 19, - AXP803_LDO_IO0 = 20, - AXP803_LDO_IO1 = 21, - AXP803_REG_ID_MAX = 22, +enum arm_smmu_cbar_type { + CBAR_TYPE_S2_TRANS = 0, + CBAR_TYPE_S1_TRANS_S2_BYPASS = 1, + CBAR_TYPE_S1_TRANS_S2_FAULT = 2, + CBAR_TYPE_S1_TRANS_S2_TRANS = 3, }; -enum { - AXP806_DCDCA = 0, - AXP806_DCDCB = 1, - AXP806_DCDCC = 2, - AXP806_DCDCD = 3, - AXP806_DCDCE = 4, - AXP806_ALDO1 = 5, - AXP806_ALDO2 = 6, - AXP806_ALDO3 = 7, - AXP806_BLDO1 = 8, - AXP806_BLDO2 = 9, - AXP806_BLDO3 = 10, - AXP806_BLDO4 = 11, - AXP806_CLDO1 = 12, - AXP806_CLDO2 = 13, - AXP806_CLDO3 = 14, - AXP806_SW = 15, - AXP806_REG_ID_MAX = 16, +enum arm_smmu_context_fmt { + ARM_SMMU_CTX_FMT_NONE = 0, + ARM_SMMU_CTX_FMT_AARCH64 = 1, + ARM_SMMU_CTX_FMT_AARCH32_L = 2, + ARM_SMMU_CTX_FMT_AARCH32_S = 3, }; -enum { - AXP809_DCDC1 = 0, - AXP809_DCDC2 = 1, - AXP809_DCDC3 = 2, - AXP809_DCDC4 = 3, - AXP809_DCDC5 = 4, - AXP809_DC1SW = 5, - AXP809_DC5LDO = 6, - AXP809_ALDO1 = 7, - AXP809_ALDO2 = 8, - AXP809_ALDO3 = 9, - AXP809_ELDO1 = 10, - AXP809_ELDO2 = 11, - AXP809_ELDO3 = 12, - AXP809_DLDO1 = 13, - AXP809_DLDO2 = 14, - AXP809_RTC_LDO = 15, - AXP809_LDO_IO0 = 16, - AXP809_LDO_IO1 = 17, - AXP809_SW = 18, - AXP809_REG_ID_MAX = 19, +struct arm_smmu_cfg { + u8 cbndx; + u8 irptndx; + union { + u16 asid; + u16 vmid; + }; + enum arm_smmu_cbar_type cbar; + enum arm_smmu_context_fmt fmt; + bool flush_walk_prefer_tlbiasid; }; -enum { - AXP813_DCDC1 = 0, - AXP813_DCDC2 = 1, - AXP813_DCDC3 = 2, - AXP813_DCDC4 = 3, - AXP813_DCDC5 = 4, - AXP813_DCDC6 = 5, - AXP813_DCDC7 = 6, - AXP813_ALDO1 = 7, - AXP813_ALDO2 = 8, - AXP813_ALDO3 = 9, - AXP813_DLDO1 = 10, - AXP813_DLDO2 = 11, - AXP813_DLDO3 = 12, - AXP813_DLDO4 = 13, - AXP813_ELDO1 = 14, - AXP813_ELDO2 = 15, - AXP813_ELDO3 = 16, - AXP813_FLDO1 = 17, - AXP813_FLDO2 = 18, - AXP813_FLDO3 = 19, - AXP813_RTC_LDO = 20, - AXP813_LDO_IO0 = 21, - AXP813_LDO_IO1 = 22, - AXP813_SW = 23, - AXP813_REG_ID_MAX = 24, +struct arm_smmu_smr { + u16 mask; + u16 id; + bool valid; + bool pinned; }; -struct reset_simple_devdata { - u32 reg_offset; - u32 nr_resets; - bool active_low; - bool status_active_low; +enum arm_smmu_s2cr_type { + S2CR_TYPE_TRANS = 0, + S2CR_TYPE_BYPASS = 1, + S2CR_TYPE_FAULT = 2, }; -struct reset_simple_data { - spinlock_t lock; - void *membase; - struct reset_controller_dev rcdev; - bool active_low; - bool status_active_low; - unsigned int reset_us; +enum arm_smmu_s2cr_privcfg { + S2CR_PRIVCFG_DEFAULT = 0, + S2CR_PRIVCFG_DIPAN = 1, + S2CR_PRIVCFG_UNPRIV = 2, + S2CR_PRIVCFG_PRIV = 3, }; -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 arm_smmu_s2cr { + struct iommu_group *group; + int count; + enum arm_smmu_s2cr_type type; + enum arm_smmu_s2cr_privcfg privcfg; + u8 cbndx; }; -struct tpm_pcr_attr { - int alg_id; - int pcr; - struct device_attribute attr; +enum arm_smmu_domain_stage { + ARM_SMMU_DOMAIN_S1 = 0, + ARM_SMMU_DOMAIN_S2 = 1, + ARM_SMMU_DOMAIN_NESTED = 2, + ARM_SMMU_DOMAIN_BYPASS = 3, }; -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, +struct arm_smmu_domain { + struct arm_smmu_device *smmu; + struct io_pgtable_ops *pgtbl_ops; + unsigned long pgtbl_quirks; + const struct iommu_flush_ops *flush_ops; + struct arm_smmu_cfg cfg; + enum arm_smmu_domain_stage stage; + struct mutex init_mutex; + spinlock_t cb_lock; + struct iommu_domain domain; }; -enum tpm_buf_flags { - TPM_BUF_OVERFLOW = 1, +struct nvidia_smmu { + struct arm_smmu_device smmu; + void *bases[2]; + unsigned int num_instances; + struct tegra_mc *mc; }; -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 genpd_notication { + GENPD_NOTIFY_PRE_OFF = 0, + GENPD_NOTIFY_OFF = 1, + GENPD_NOTIFY_PRE_ON = 2, + GENPD_NOTIFY_ON = 3, }; -enum tpm_capabilities { - TPM_CAP_FLAG = 4, - TPM_CAP_PROP = 5, - TPM_CAP_VERSION_1_1 = 6, - TPM_CAP_VERSION_1_2 = 26, +struct gpd_link { + struct generic_pm_domain *parent; + struct list_head parent_node; + struct generic_pm_domain *child; + struct list_head child_node; + unsigned int performance_state; + unsigned int prev_performance_state; }; -enum tpm_duration { - TPM_SHORT = 0, - TPM_MEDIUM = 1, - TPM_LONG = 2, - TPM_LONG_LONG = 3, - TPM_UNDEFINED = 4, - TPM_NUM_DURATIONS = 4, +struct of_genpd_provider { + struct list_head link; + struct device_node *node; + genpd_xlate_t xlate; + void *data; }; -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 gpd_timing_data; + +struct generic_pm_domain_data { + struct pm_domain_data base; + struct gpd_timing_data *td; + struct notifier_block nb; + struct notifier_block *power_nb; + int cpu; + unsigned int performance_state; + unsigned int default_pstate; + unsigned int rpm_pstate; + void *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 gpd_timing_data { + s64 suspend_latency_ns; + s64 resume_latency_ns; + s64 effective_constraint_ns; + ktime_t next_wakeup; + bool constraint_changed; + bool cached_suspend_ok; }; -struct stclear_flags_t { - __be16 tag; - u8 deactivated; - u8 disableForceClear; - u8 physicalPresence; - u8 physicalPresenceLock; - u8 bGlobalLock; -} __attribute__((packed)); +struct of_phandle_iterator { + const char *cells_name; + int cell_count; + const struct device_node *parent; + const __be32 *list_end; + const __be32 *phandle_end; + const __be32 *cur; + uint32_t cur_count; + phandle phandle; + struct device_node *node; +}; -struct tpm1_version { - u8 major; - u8 minor; - u8 rev_major; - u8 rev_minor; +enum MFI_STAT { + MFI_STAT_OK = 0, + MFI_STAT_INVALID_CMD = 1, + MFI_STAT_INVALID_DCMD = 2, + MFI_STAT_INVALID_PARAMETER = 3, + MFI_STAT_INVALID_SEQUENCE_NUMBER = 4, + MFI_STAT_ABORT_NOT_POSSIBLE = 5, + MFI_STAT_APP_HOST_CODE_NOT_FOUND = 6, + MFI_STAT_APP_IN_USE = 7, + MFI_STAT_APP_NOT_INITIALIZED = 8, + MFI_STAT_ARRAY_INDEX_INVALID = 9, + MFI_STAT_ARRAY_ROW_NOT_EMPTY = 10, + MFI_STAT_CONFIG_RESOURCE_CONFLICT = 11, + MFI_STAT_DEVICE_NOT_FOUND = 12, + MFI_STAT_DRIVE_TOO_SMALL = 13, + MFI_STAT_FLASH_ALLOC_FAIL = 14, + MFI_STAT_FLASH_BUSY = 15, + MFI_STAT_FLASH_ERROR = 16, + MFI_STAT_FLASH_IMAGE_BAD = 17, + MFI_STAT_FLASH_IMAGE_INCOMPLETE = 18, + MFI_STAT_FLASH_NOT_OPEN = 19, + MFI_STAT_FLASH_NOT_STARTED = 20, + MFI_STAT_FLUSH_FAILED = 21, + MFI_STAT_HOST_CODE_NOT_FOUNT = 22, + MFI_STAT_LD_CC_IN_PROGRESS = 23, + MFI_STAT_LD_INIT_IN_PROGRESS = 24, + MFI_STAT_LD_LBA_OUT_OF_RANGE = 25, + MFI_STAT_LD_MAX_CONFIGURED = 26, + MFI_STAT_LD_NOT_OPTIMAL = 27, + MFI_STAT_LD_RBLD_IN_PROGRESS = 28, + MFI_STAT_LD_RECON_IN_PROGRESS = 29, + MFI_STAT_LD_WRONG_RAID_LEVEL = 30, + MFI_STAT_MAX_SPARES_EXCEEDED = 31, + MFI_STAT_MEMORY_NOT_AVAILABLE = 32, + MFI_STAT_MFC_HW_ERROR = 33, + MFI_STAT_NO_HW_PRESENT = 34, + MFI_STAT_NOT_FOUND = 35, + MFI_STAT_NOT_IN_ENCL = 36, + MFI_STAT_PD_CLEAR_IN_PROGRESS = 37, + MFI_STAT_PD_TYPE_WRONG = 38, + MFI_STAT_PR_DISABLED = 39, + MFI_STAT_ROW_INDEX_INVALID = 40, + MFI_STAT_SAS_CONFIG_INVALID_ACTION = 41, + MFI_STAT_SAS_CONFIG_INVALID_DATA = 42, + MFI_STAT_SAS_CONFIG_INVALID_PAGE = 43, + MFI_STAT_SAS_CONFIG_INVALID_TYPE = 44, + MFI_STAT_SCSI_DONE_WITH_ERROR = 45, + MFI_STAT_SCSI_IO_FAILED = 46, + MFI_STAT_SCSI_RESERVATION_CONFLICT = 47, + MFI_STAT_SHUTDOWN_FAILED = 48, + MFI_STAT_TIME_NOT_SET = 49, + MFI_STAT_WRONG_STATE = 50, + MFI_STAT_LD_OFFLINE = 51, + MFI_STAT_PEER_NOTIFICATION_REJECTED = 52, + MFI_STAT_PEER_NOTIFICATION_FAILED = 53, + MFI_STAT_RESERVATION_IN_PROGRESS = 54, + MFI_STAT_I2C_ERRORS_DETECTED = 55, + MFI_STAT_PCI_ERRORS_DETECTED = 56, + MFI_STAT_CONFIG_SEQ_MISMATCH = 103, + MFI_STAT_INVALID_STATUS = 255, }; -struct tpm1_version2 { - __be16 tag; - struct tpm1_version version; +enum DCMD_RETURN_STATUS { + DCMD_SUCCESS = 0, + DCMD_TIMEOUT = 1, + DCMD_FAILED = 2, + DCMD_BUSY = 3, + DCMD_INIT = 255, }; -struct timeout_t { - __be32 a; - __be32 b; - __be32 c; - __be32 d; +enum MR_PERF_MODE { + MR_BALANCED_PERF_MODE = 0, + MR_IOPS_PERF_MODE = 1, + MR_LATENCY_PERF_MODE = 2, }; -struct duration_t { - __be32 tpm_short; - __be32 tpm_medium; - __be32 tpm_long; +enum MFI_CMD_OP { + MFI_CMD_INIT = 0, + MFI_CMD_LD_READ = 1, + MFI_CMD_LD_WRITE = 2, + MFI_CMD_LD_SCSI_IO = 3, + MFI_CMD_PD_SCSI_IO = 4, + MFI_CMD_DCMD = 5, + MFI_CMD_ABORT = 6, + MFI_CMD_SMP = 7, + MFI_CMD_STP = 8, + MFI_CMD_NVME = 9, + MFI_CMD_TOOLBOX = 10, + MFI_CMD_OP_COUNT = 11, + MFI_CMD_INVALID = 255, }; -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; +enum MR_FW_CRASH_DUMP_STATE { + UNAVAILABLE = 0, + AVAILABLE = 1, + COPYING = 2, + COPIED = 3, + COPY_ERROR = 4, +}; -typedef int (*pm_callback_t)(struct device *); +enum { + MEGASAS_HBA_OPERATIONAL = 0, + MEGASAS_ADPRESET_SM_INFAULT = 1, + MEGASAS_ADPRESET_SM_FW_RESET_SUCCESS = 2, + MEGASAS_ADPRESET_SM_OPERATIONAL = 3, + MEGASAS_HW_CRITICAL_ERROR = 4, + MEGASAS_ADPRESET_SM_POLLING = 5, + MEGASAS_ADPRESET_INPROG_SIGN = 3735936685, +}; -enum blkif_state { - BLKIF_STATE_DISCONNECTED = 0, - BLKIF_STATE_CONNECTED = 1, - BLKIF_STATE_SUSPENDED = 2, - BLKIF_STATE_ERROR = 3, +enum MR_SCSI_CMD_TYPE { + READ_WRITE_LDIO = 0, + NON_READ_WRITE_LDIO = 1, + READ_WRITE_SYSPDIO = 2, + NON_READ_WRITE_SYSPDIO = 3, }; -enum blk_req_status { - REQ_PROCESSING = 0, - REQ_WAITING = 1, - REQ_DONE = 2, - REQ_ERROR = 3, - REQ_EOPNOTSUPP = 4, +enum FW_BOOT_CONTEXT { + PROBE_CONTEXT = 0, + OCR_CONTEXT = 1, }; -typedef uint16_t blkif_vdev_t; +enum _MR_CRASH_BUF_STATUS { + MR_CRASH_BUF_TURN_OFF = 0, + MR_CRASH_BUF_TURN_ON = 1, +}; -struct blkfront_ring_info; +enum MEGASAS_OCR_CAUSE { + FW_FAULT_OCR = 0, + SCSIIO_TIMEOUT_OCR = 1, + MFI_IO_TIMEOUT_OCR = 2, +}; -struct blkfront_info { - struct mutex mutex; - struct xenbus_device *xbdev; - struct gendisk *gd; - u16 sector_size; - unsigned int physical_sector_size; - unsigned long vdisk_info; - int vdevice; - blkif_vdev_t handle; - enum blkif_state connected; - unsigned int nr_ring_pages; - struct request_queue *rq; - unsigned int feature_flush: 1; - unsigned int feature_fua: 1; - unsigned int feature_discard: 1; - unsigned int feature_secdiscard: 1; - unsigned int feature_persistent_parm: 1; - unsigned int feature_persistent: 1; - unsigned int bounce: 1; - unsigned int discard_granularity; - unsigned int discard_alignment; - unsigned int max_indirect_segments; - int is_ready; - struct blk_mq_tag_set tag_set; - struct blkfront_ring_info *rinfo; - unsigned int nr_rings; - unsigned int rinfo_size; - struct list_head requests; - struct bio_list bio_list; - struct list_head info_list; +enum CMD_RET_VALUES { + REFIRE_CMD = 1, + COMPLETE_CMD = 2, + RETURN_CMD = 3, }; -struct blkif_sring; +enum MR_PD_TYPE { + UNKNOWN_DRIVE = 0, + PARALLEL_SCSI = 1, + SAS_PD = 2, + SATA_PD = 3, + FC_PD = 4, + NVME_PD = 5, +}; -struct blkif_front_ring { - RING_IDX req_prod_pvt; - RING_IDX rsp_cons; - unsigned int nr_ents; - struct blkif_sring *sring; +struct MR_LD_TARGET_SYNC { + u8 targetId; + u8 reserved; + __le16 seqNum; }; -struct gnttab_free_callback { - struct gnttab_free_callback *next; - void (*fn)(void *); - void *arg; - u16 count; +struct MR_TM_REPLY { + char reply[128]; }; -typedef uint64_t blkif_sector_t; +struct MR_TM_REQUEST { + char request[128]; +}; -struct blkif_request_segment { - grant_ref_t gref; - uint8_t first_sect; - uint8_t last_sect; +struct MR_TASK_MANAGE_REQUEST { + struct MR_TM_REQUEST TmRequest; + union { + struct { + u32 isTMForLD: 1; + u32 isTMForPD: 1; + u32 reserved1: 30; + u32 reserved2; + } tmReqFlags; + struct MR_TM_REPLY TMReply; + }; }; -struct blkif_request_rw { - uint8_t nr_segments; - blkif_vdev_t handle; - uint32_t _pad1; - uint64_t id; - blkif_sector_t sector_number; - struct blkif_request_segment seg[11]; -} __attribute__((packed)); +struct MPI2_SCSI_TASK_MANAGE_REQUEST { + u16 DevHandle; + u8 ChainOffset; + u8 Function; + u8 Reserved1; + u8 TaskType; + u8 Reserved2; + u8 MsgFlags; + u8 VP_ID; + u8 VF_ID; + u16 Reserved3; + u8 LUN[8]; + u32 Reserved4[7]; + u16 TaskMID; + u16 Reserved5; +}; -struct blkif_request_discard { - uint8_t flag; - blkif_vdev_t _pad1; - uint32_t _pad2; - uint64_t id; - blkif_sector_t sector_number; - uint64_t nr_sectors; - uint8_t _pad3; -} __attribute__((packed)); +struct MPI2_SCSI_TASK_MANAGE_REPLY { + u16 DevHandle; + u8 MsgLength; + u8 Function; + u8 ResponseCode; + u8 TaskType; + u8 Reserved1; + u8 MsgFlags; + u8 VP_ID; + u8 VF_ID; + u16 Reserved2; + u16 Reserved3; + u16 IOCStatus; + u32 IOCLogInfo; + u32 TerminationCount; + u32 ResponseInfo; +}; -struct blkif_request_other { - uint8_t _pad1; - blkif_vdev_t _pad2; - uint32_t _pad3; - uint64_t id; -} __attribute__((packed)); +struct MPI25_IEEE_SGE_CHAIN64 { + __le64 Address; + __le32 Length; + __le16 Reserved1; + u8 NextChainOffset; + u8 Flags; +}; -struct blkif_request_indirect { - uint8_t indirect_op; - uint16_t nr_segments; - uint32_t _pad1; - uint64_t id; - blkif_sector_t sector_number; - blkif_vdev_t handle; - uint16_t _pad2; - grant_ref_t indirect_grefs[8]; - uint32_t _pad3; -} __attribute__((packed)); +struct MR_PRIV_DEVICE { + bool is_tm_capable; + bool tm_busy; + atomic_t sdev_priv_busy; + atomic_t r1_ldio_hint; + u8 interface_type; + u8 task_abort_tmo; + u8 target_reset_tmo; +}; -struct blkif_request { - uint8_t operation; - union { - struct blkif_request_rw rw; - struct blkif_request_discard discard; - struct blkif_request_other other; - struct blkif_request_indirect indirect; +union desc_value { + __le64 word; + struct { + __le32 low; + __le32 high; } u; }; -struct grant; - -struct blk_shadow { - struct blkif_request req; - struct request *request; - struct grant **grants_used; - struct grant **indirect_grants; - struct scatterlist *sg; - unsigned int num_sg; - enum blk_req_status status; - unsigned long associated_id; +struct ahci_mvebu_plat_data { + int (*plat_config)(struct ahci_host_priv *); + unsigned int flags; }; -struct blkfront_ring_info { - spinlock_t ring_lock; - struct blkif_front_ring ring; - unsigned int ring_ref[16]; - unsigned int evtchn; - unsigned int irq; - struct work_struct work; - struct gnttab_free_callback callback; - struct list_head indirect_pages; - struct list_head grants; - unsigned int persistent_gnts_c; - unsigned long shadow_free; - struct blkfront_info *dev_info; - struct blk_shadow shadow[0]; +struct mtd_chip_driver; + +struct map_info { + const char *name; + unsigned long size; + resource_size_t phys; + void *virt; + void *cached; + int swap; + int bankwidth; + void (*inval_cache)(struct map_info *, unsigned long, ssize_t); + void (*set_vpp)(struct map_info *, int); + unsigned long pfow_base; + unsigned long map_priv_1; + unsigned long map_priv_2; + struct device_node *device_node; + void *fldrv_priv; + struct mtd_chip_driver *fldrv; }; -struct blkif_response { - uint64_t id; - uint8_t operation; - int16_t status; +struct mtd_chip_driver { + struct mtd_info * (*probe)(struct map_info *); + void (*destroy)(struct mtd_info *); + struct module *module; + char *name; + struct list_head list; }; -union blkif_sring_entry { - struct blkif_request req; - struct blkif_response rsp; +struct cfi_private; + +struct chip_probe { + char *name; + int (*probe_chip)(struct map_info *, __u32, unsigned long *, struct cfi_private *); }; -struct blkif_sring { - RING_IDX req_prod; - RING_IDX req_event; - RING_IDX rsp_prod; - RING_IDX rsp_event; - uint8_t __pad[48]; - union blkif_sring_entry ring[1]; +typedef union { + unsigned long x[1]; +} map_word; + +typedef enum { + FL_READY = 0, + FL_STATUS = 1, + FL_CFI_QUERY = 2, + FL_JEDEC_QUERY = 3, + FL_ERASING = 4, + FL_ERASE_SUSPENDING = 5, + FL_ERASE_SUSPENDED = 6, + FL_WRITING = 7, + FL_WRITING_TO_BUFFER = 8, + FL_OTP_WRITE = 9, + FL_WRITE_SUSPENDING = 10, + FL_WRITE_SUSPENDED = 11, + FL_PM_SUSPENDED = 12, + FL_SYNCING = 13, + FL_UNLOADING = 14, + FL_LOCKING = 15, + FL_UNLOCKING = 16, + FL_POINT = 17, + FL_XIP_WHILE_ERASING = 18, + FL_XIP_WHILE_WRITING = 19, + FL_SHUTDOWN = 20, + FL_READING = 21, + FL_CACHEDPRG = 22, + FL_RESETTING = 23, + FL_OTPING = 24, + FL_PREPARING_ERASE = 25, + FL_VERIFYING_ERASE = 26, + FL_UNKNOWN = 27, +} flstate_t; + +struct flchip { + unsigned long start; + int ref_point_counter; + flstate_t state; + flstate_t oldstate; + unsigned int write_suspended: 1; + unsigned int erase_suspended: 1; + unsigned long in_progress_block_addr; + unsigned long in_progress_block_mask; + struct mutex mutex; + wait_queue_head_t wq; + int word_write_time; + int buffer_write_time; + int erase_time; + int word_write_time_max; + int buffer_write_time_max; + int erase_time_max; + void *priv; }; -struct grant { - grant_ref_t gref; - struct page *page; - struct list_head node; +struct cfi_ident; + +struct cfi_private { + uint16_t cmdset; + void *cmdset_priv; + int interleave; + int device_type; + int cfi_mode; + int addr_unlock1; + int addr_unlock2; + struct mtd_info * (*cmdset_setup)(struct map_info *); + struct cfi_ident *cfiq; + int mfr; + int id; + int numchips; + map_word sector_erase_cmd; + unsigned long chipshift; + const char *im_name; + unsigned long quirks; + struct flchip chips[0]; }; -struct copy_from_grant { - const struct blk_shadow *s; - unsigned int grant_idx; - unsigned int bvec_offset; - char *bvec_data; +struct cfi_ident { + uint8_t qry[3]; + uint16_t P_ID; + uint16_t P_ADR; + uint16_t A_ID; + uint16_t A_ADR; + uint8_t VccMin; + uint8_t VccMax; + uint8_t VppMin; + uint8_t VppMax; + uint8_t WordWriteTimeoutTyp; + uint8_t BufWriteTimeoutTyp; + uint8_t BlockEraseTimeoutTyp; + uint8_t ChipEraseTimeoutTyp; + uint8_t WordWriteTimeoutMax; + uint8_t BufWriteTimeoutMax; + uint8_t BlockEraseTimeoutMax; + uint8_t ChipEraseTimeoutMax; + uint8_t DevSize; + uint16_t InterfaceDesc; + uint16_t MaxBufWriteSize; + uint8_t NumEraseRegions; + uint32_t EraseRegionInfo[0]; +} __attribute__((packed)); + +typedef struct mtd_info *cfi_cmdset_fn_t(struct map_info *, int); + +struct mdiobus_devres { + struct mii_bus *mii; }; -struct setup_rw_req { - unsigned int grant_idx; - struct blkif_request_segment *segments; - struct blkfront_ring_info *rinfo; - struct blkif_request *ring_req; - grant_ref_t gref_head; - unsigned int id; - bool need_copy; - unsigned int bvec_off; - char *bvec_data; - bool require_extra_req; - struct blkif_request *extra_ring_req; +struct iproc_mdiomux_desc { + void *mux_handle; + void *base; + struct device *dev; + struct mii_bus *mii_bus; + struct clk *core_clk; }; -struct sil24_cerr_info { - unsigned int err_mask; - unsigned int action; - const char *desc; +struct tgec_regs; + +struct eth_hash_t; + +struct tgec_cfg; + +struct fman_mac { + struct tgec_regs *regs; + u64 addr; + u16 max_speed; + struct mac_device *dev_id; + fman_mac_exception_cb *exception_cb; + fman_mac_exception_cb *event_cb; + struct eth_hash_t *multicast_addr_hash; + struct eth_hash_t *unicast_addr_hash; + u8 mac_id; + u32 exceptions; + struct tgec_cfg *cfg; + void *fm; + struct fman_rev_info fm_rev_info; + bool allmulti_enabled; }; -enum { - SIL24_HOST_BAR = 0, - SIL24_PORT_BAR = 2, - SIL24_PRB_SZ = 64, - SIL24_MAX_SGT = 63, - SIL24_MAX_SGE = 253, - HOST_SLOT_STAT = 0, - HOST_CTRL = 64, - HOST_IRQ_STAT___2 = 68, - HOST_PHY_CFG = 72, - HOST_BIST_CTRL = 80, - HOST_BIST_PTRN = 84, - HOST_BIST_STAT = 88, - HOST_MEM_BIST_STAT = 92, - HOST_FLASH_CMD = 112, - HOST_FLASH_DATA = 116, - HOST_TRANSITION_DETECT = 117, - HOST_GPIO_CTRL = 118, - HOST_I2C_ADDR = 120, - HOST_I2C_DATA = 124, - HOST_I2C_XFER_CNT = 126, - HOST_I2C_CTRL = 127, - HOST_SSTAT_ATTN = -2147483648, - HOST_CTRL_M66EN = 65536, - HOST_CTRL_TRDY = 131072, - HOST_CTRL_STOP = 262144, - HOST_CTRL_DEVSEL = 524288, - HOST_CTRL_REQ64 = 1048576, - HOST_CTRL_GLOBAL_RST = -2147483648, - PORT_REGS_SIZE = 8192, - PORT_LRAM = 0, - PORT_LRAM_SLOT_SZ = 128, - PORT_PMP = 3968, - PORT_PMP_STATUS = 0, - PORT_PMP_QACTIVE = 4, - PORT_PMP_SIZE = 8, - PORT_CTRL_STAT = 4096, - PORT_CTRL_CLR = 4100, - PORT_IRQ_STAT___2 = 4104, - PORT_IRQ_ENABLE_SET = 4112, - PORT_IRQ_ENABLE_CLR = 4116, - PORT_ACTIVATE_UPPER_ADDR = 4124, - PORT_EXEC_FIFO = 4128, - PORT_CMD_ERR = 4132, - PORT_FIS_CFG = 4136, - PORT_FIFO_THRES = 4140, - PORT_DECODE_ERR_CNT = 4160, - PORT_DECODE_ERR_THRESH = 4162, - PORT_CRC_ERR_CNT = 4164, - PORT_CRC_ERR_THRESH = 4166, - PORT_HSHK_ERR_CNT = 4168, - PORT_HSHK_ERR_THRESH = 4170, - PORT_PHY_CFG = 4176, - PORT_SLOT_STAT = 6144, - PORT_CMD_ACTIVATE = 7168, - PORT_CONTEXT = 7684, - PORT_EXEC_DIAG = 7680, - PORT_PSD_DIAG = 7744, - PORT_SCONTROL = 7936, - PORT_SSTATUS = 7940, - PORT_SERROR = 7944, - PORT_SACTIVE = 7948, - PORT_CS_PORT_RST = 1, - PORT_CS_DEV_RST = 2, - PORT_CS_INIT = 4, - PORT_CS_IRQ_WOC = 8, - PORT_CS_CDB16 = 32, - PORT_CS_PMP_RESUME = 64, - PORT_CS_32BIT_ACTV = 1024, - PORT_CS_PMP_EN = 8192, - PORT_CS_RDY = -2147483648, - PORT_IRQ_COMPLETE = 1, - PORT_IRQ_ERROR___2 = 2, - PORT_IRQ_PORTRDY_CHG = 4, - PORT_IRQ_PWR_CHG = 8, - PORT_IRQ_PHYRDY_CHG = 16, - PORT_IRQ_COMWAKE = 32, - PORT_IRQ_UNK_FIS___2 = 64, - PORT_IRQ_DEV_XCHG = 128, - PORT_IRQ_8B10B = 256, - PORT_IRQ_CRC = 512, - PORT_IRQ_HANDSHAKE = 1024, - PORT_IRQ_SDB_NOTIFY = 2048, - DEF_PORT_IRQ___2 = 2259, - PORT_IRQ_RAW_SHIFT = 16, - PORT_IRQ_MASKED_MASK = 2047, - PORT_IRQ_RAW_MASK = 134152192, - PORT_IRQ_STEER_SHIFT = 30, - PORT_IRQ_STEER_MASK = -1073741824, - PORT_CERR_DEV = 1, - PORT_CERR_SDB = 2, - PORT_CERR_DATA = 3, - PORT_CERR_SEND = 4, - PORT_CERR_INCONSISTENT = 5, - PORT_CERR_DIRECTION = 6, - PORT_CERR_UNDERRUN = 7, - PORT_CERR_OVERRUN = 8, - PORT_CERR_PKT_PROT = 11, - PORT_CERR_SGT_BOUNDARY = 16, - PORT_CERR_SGT_TGTABRT = 17, - PORT_CERR_SGT_MSTABRT = 18, - PORT_CERR_SGT_PCIPERR = 19, - PORT_CERR_CMD_BOUNDARY = 24, - PORT_CERR_CMD_TGTABRT = 25, - PORT_CERR_CMD_MSTABRT = 26, - PORT_CERR_CMD_PCIPERR = 27, - PORT_CERR_XFR_UNDEF = 32, - PORT_CERR_XFR_TGTABRT = 33, - PORT_CERR_XFR_MSTABRT = 34, - PORT_CERR_XFR_PCIPERR = 35, - PORT_CERR_SENDSERVICE = 36, - PRB_CTRL_PROTOCOL = 1, - PRB_CTRL_PACKET_READ = 16, - PRB_CTRL_PACKET_WRITE = 32, - PRB_CTRL_NIEN = 64, - PRB_CTRL_SRST = 128, - PRB_PROT_PACKET = 1, - PRB_PROT_TCQ = 2, - PRB_PROT_NCQ = 4, - PRB_PROT_READ = 8, - PRB_PROT_WRITE = 16, - PRB_PROT_TRANSPARENT = 32, - SGE_TRM = -2147483648, - SGE_LNK = 1073741824, - SGE_DRD = 536870912, - SIL24_MAX_CMDS = 31, - BID_SIL3124 = 0, - BID_SIL3132 = 1, - BID_SIL3131 = 2, - SIL24_COMMON_FLAGS = 918658, - SIL24_FLAG_PCIX_IRQ_WOC = 16777216, - IRQ_STAT_4PORTS = 15, +struct tgec_regs { + u32 tgec_id; + u32 reserved001[1]; + u32 command_config; + u32 mac_addr_0; + u32 mac_addr_1; + u32 maxfrm; + u32 pause_quant; + u32 rx_fifo_sections; + u32 tx_fifo_sections; + u32 rx_fifo_almost_f_e; + u32 tx_fifo_almost_f_e; + u32 hashtable_ctrl; + u32 mdio_cfg_status; + u32 mdio_command; + u32 mdio_data; + u32 mdio_regaddr; + u32 status; + u32 tx_ipg_len; + u32 mac_addr_2; + u32 mac_addr_3; + u32 rx_fifo_ptr_rd; + u32 rx_fifo_ptr_wr; + u32 tx_fifo_ptr_rd; + u32 tx_fifo_ptr_wr; + u32 imask; + u32 ievent; + u32 udp_port; + u32 type_1588v2; + u32 reserved070[4]; + u32 tfrm_u; + u32 tfrm_l; + u32 rfrm_u; + u32 rfrm_l; + u32 rfcs_u; + u32 rfcs_l; + u32 raln_u; + u32 raln_l; + u32 txpf_u; + u32 txpf_l; + u32 rxpf_u; + u32 rxpf_l; + u32 rlong_u; + u32 rlong_l; + u32 rflr_u; + u32 rflr_l; + u32 tvlan_u; + u32 tvlan_l; + u32 rvlan_u; + u32 rvlan_l; + u32 toct_u; + u32 toct_l; + u32 roct_u; + u32 roct_l; + u32 ruca_u; + u32 ruca_l; + u32 rmca_u; + u32 rmca_l; + u32 rbca_u; + u32 rbca_l; + u32 terr_u; + u32 terr_l; + u32 reserved100[2]; + u32 tuca_u; + u32 tuca_l; + u32 tmca_u; + u32 tmca_l; + u32 tbca_u; + u32 tbca_l; + u32 rdrp_u; + u32 rdrp_l; + u32 reoct_u; + u32 reoct_l; + u32 rpkt_u; + u32 rpkt_l; + u32 trund_u; + u32 trund_l; + u32 r64_u; + u32 r64_l; + u32 r127_u; + u32 r127_l; + u32 r255_u; + u32 r255_l; + u32 r511_u; + u32 r511_l; + u32 r1023_u; + u32 r1023_l; + u32 r1518_u; + u32 r1518_l; + u32 r1519x_u; + u32 r1519x_l; + u32 trovr_u; + u32 trovr_l; + u32 trjbr_u; + u32 trjbr_l; + u32 trfrg_u; + u32 trfrg_l; + u32 rerr_u; + u32 rerr_l; }; -struct sil24_sge { - __le64 addr; - __le32 cnt; - __le32 flags; +struct eth_hash_t { + u16 size; + struct list_head *lsts; }; -struct sil24_prb { - __le16 ctrl; - __le16 prot; - __le32 rx_cnt; - u8 fis[24]; +struct tgec_cfg { + bool pause_ignore; + bool promiscuous_mode_enable; + u16 max_frame_length; + u16 pause_quant; + u32 tx_ipg_length; }; -union sil24_cmd_block; - -struct sil24_port_priv { - union sil24_cmd_block *cmd_block; - dma_addr_t cmd_block_dma; - int do_port_rst; +struct eth_hash_entry { + u64 addr; + struct list_head node; }; -struct sil24_ata_block { - struct sil24_prb prb; - struct sil24_sge sge[253]; +enum phy_reset_delays { + PRE_DELAY = 0, + PULSE = 1, + POST_DELAY = 2, + DELAYS_NUM = 3, }; -struct sil24_atapi_block { - struct sil24_prb prb; - u8 cdb[16]; - struct sil24_sge sge[253]; -}; +struct hix5hd2_desc; -union sil24_cmd_block { - struct sil24_ata_block ata; - struct sil24_atapi_block atapi; +struct hix5hd2_desc_sw { + struct hix5hd2_desc *desc; + dma_addr_t phys_addr; + unsigned int count; + unsigned int size; }; -struct spi_device_id; +struct sg_desc; -struct spi_driver { - const struct spi_device_id *id_table; - int (*probe)(struct spi_device *); - void (*remove)(struct spi_device *); - void (*shutdown)(struct spi_device *); - struct device_driver driver; +struct hix5hd2_sg_desc_ring { + struct sg_desc *desc; + dma_addr_t phys_addr; }; -struct spi_mem_driver { - struct spi_driver spidrv; - int (*probe)(struct spi_mem *); - int (*remove)(struct spi_mem *); - void (*shutdown)(struct spi_mem *); +struct hix5hd2_priv { + struct hix5hd2_desc_sw pool[4]; + struct hix5hd2_sg_desc_ring tx_ring; + void *base; + void *ctrl_base; + struct sk_buff *tx_skb[1024]; + struct sk_buff *rx_skb[1024]; + struct device *dev; + struct net_device *netdev; + struct device_node *phy_node; + phy_interface_t phy_mode; + unsigned long hw_cap; + unsigned int speed; + unsigned int duplex; + struct clk *mac_core_clk; + struct clk *mac_ifc_clk; + struct reset_control *mac_core_rst; + struct reset_control *mac_ifc_rst; + struct reset_control *phy_rst; + u32 phy_reset_delays[3]; + struct mii_bus *bus; + struct napi_struct napi; + struct work_struct tx_timeout_task; }; -struct spi_device_id { - char name[32]; - kernel_ulong_t driver_data; +struct hix5hd2_desc { + __le32 buff_addr; + __le32 cmd; + long: 64; + long: 64; + long: 64; }; -struct kszphy_type { - u32 led_mode_reg; - u16 interrupt_level_mask; - u16 cable_diag_reg; - unsigned long pair_mask; - u16 disable_dll_tx_bit; - u16 disable_dll_rx_bit; - u16 disable_dll_mask; - bool has_broadcast_disable; - bool has_nand_tree_disable; - bool has_rmii_ref_clk_sel; +struct frags_info { + __le32 addr; + __le32 size; }; -struct kszphy_hw_stat { - const char *string; - u8 reg; - u8 bits; +struct sg_desc { + __le32 total_len; + __le32 resvd0; + __le32 linear_addr; + __le32 linear_len; + struct frags_info frags[18]; }; -struct ksz9477_errata_write { - u8 dev_addr; - u8 reg_addr; - u16 val; +struct hclge_comm_caps_bit_map { + u16 imp_bit; + u16 local_bit; }; -struct lan8814_shared_priv { - struct phy_device *phydev; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_clock_info; - u8 ref; - struct mutex shared_lock; +struct hclge_cmdq_tx_timeout_map { + u32 opcode; + u32 tx_timeout; }; -struct kszphy_ptp_priv { - struct mii_timestamper mii_ts; - struct phy_device *phydev; - struct sk_buff_head tx_queue; - struct sk_buff_head rx_queue; - struct list_head rx_ts_list; - spinlock_t rx_ts_lock; - int hwts_tx_type; - enum hwtstamp_rx_filters rx_filter; - int layer; - int version; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_clock_info; - struct mutex ptp_lock; - struct ptp_pin_desc *pin_config; - s64 seconds; - spinlock_t seconds_lock; +enum hclge_comm_cmd_state { + HCLGE_COMM_STATE_CMD_DISABLE = 0, }; -struct kszphy_priv { - struct kszphy_ptp_priv ptp_priv; - const struct kszphy_type *type; - int led_mode; - u16 vct_ctrl1000; - bool rmii_ref_clk_sel; - bool rmii_ref_clk_sel_val; - u64 stats[2]; +enum HCLGE_COMM_API_CAP_BITS { + HCLGE_COMM_API_CAP_FLEX_RSS_TBL_B = 0, }; -struct lan8814_ptp_rx_ts { - struct list_head list; - u32 seconds; - u32 nsec; - u16 seq_id; +struct hclge_comm_firmware_compat_cmd { + __le32 compat; + u8 rsv[20]; }; -struct muram_info { - struct gen_pool *pool; - void *vbase; - size_t size; - phys_addr_t pbase; +struct hclge_comm_query_version_cmd { + __le32 firmware; + __le32 hardware; + __le32 api_caps; + __le32 caps[3]; }; -enum fman_dma_aid_mode { - FMAN_DMA_AID_OUT_PORT_ID = 0, - FMAN_DMA_AID_OUT_TNUM = 1, +struct hclge_comm_errcode { + u32 imp_errcode; + int common_errno; }; -enum fman_inter_module_event { - FMAN_EV_ERR_MAC0 = 0, - FMAN_EV_ERR_MAC1 = 1, - FMAN_EV_ERR_MAC2 = 2, - FMAN_EV_ERR_MAC3 = 3, - FMAN_EV_ERR_MAC4 = 4, - FMAN_EV_ERR_MAC5 = 5, - FMAN_EV_ERR_MAC6 = 6, - FMAN_EV_ERR_MAC7 = 7, - FMAN_EV_ERR_MAC8 = 8, - FMAN_EV_ERR_MAC9 = 9, - FMAN_EV_MAC0 = 10, - FMAN_EV_MAC1 = 11, - FMAN_EV_MAC2 = 12, - FMAN_EV_MAC3 = 13, - FMAN_EV_MAC4 = 14, - FMAN_EV_MAC5 = 15, - FMAN_EV_MAC6 = 16, - FMAN_EV_MAC7 = 17, - FMAN_EV_MAC8 = 18, - FMAN_EV_MAC9 = 19, - FMAN_EV_FMAN_CTRL_0 = 20, - FMAN_EV_FMAN_CTRL_1 = 21, - FMAN_EV_FMAN_CTRL_2 = 22, - FMAN_EV_FMAN_CTRL_3 = 23, - FMAN_EV_CNT = 24, +struct cpsw_sl_dev_id { + const char *device_id; + const u16 *regs; + const u32 control_features; + const u32 regs_offset; + const u32 idle_mask; }; -enum fman_port_type { - FMAN_PORT_TYPE_TX = 0, - FMAN_PORT_TYPE_RX = 1, +enum cpsw_sl_regs { + CPSW_SL_IDVER = 0, + CPSW_SL_MACCONTROL = 1, + CPSW_SL_MACSTATUS = 2, + CPSW_SL_SOFT_RESET = 3, + CPSW_SL_RX_MAXLEN = 4, + CPSW_SL_BOFFTEST = 5, + CPSW_SL_RX_PAUSE = 6, + CPSW_SL_TX_PAUSE = 7, + CPSW_SL_EMCONTROL = 8, + CPSW_SL_RX_PRI_MAP = 9, + CPSW_SL_TX_GAP = 10, }; -struct fman_fpm_regs { - u32 fmfp_tnc; - u32 fmfp_prc; - u32 fmfp_brkc; - u32 fmfp_mxd; - u32 fmfp_dist1; - u32 fmfp_dist2; - u32 fm_epi; - u32 fm_rie; - u32 fmfp_fcev[4]; - u32 res0030[4]; - u32 fmfp_cee[4]; - u32 res0050[4]; - u32 fmfp_tsc1; - u32 fmfp_tsc2; - u32 fmfp_tsp; - u32 fmfp_tsf; - u32 fm_rcr; - u32 fmfp_extc; - u32 fmfp_ext1; - u32 fmfp_ext2; - u32 fmfp_drd[16]; - u32 fmfp_dra; - u32 fm_ip_rev_1; - u32 fm_ip_rev_2; - u32 fm_rstc; - u32 fm_cld; - u32 fm_npi; - u32 fmfp_exte; - u32 fmfp_ee; - u32 fmfp_cev[4]; - u32 res00f0[4]; - u32 fmfp_ps[50]; - u32 res01c8[14]; - u32 fmfp_clfabc; - u32 fmfp_clfcc; - u32 fmfp_clfaval; - u32 fmfp_clfbval; - u32 fmfp_clfcval; - u32 fmfp_clfamsk; - u32 fmfp_clfbmsk; - u32 fmfp_clfcmsk; - u32 fmfp_clfamc; - u32 fmfp_clfbmc; - u32 fmfp_clfcmc; - u32 fmfp_decceh; - u32 res0230[116]; - u32 fmfp_ts[128]; - u32 res0600[640]; +struct cpsw_sl { + struct device *dev; + void *sl_base; + const u16 *regs; + u32 control_features; + u32 idle_mask; }; -struct fman_bmi_regs { - u32 fmbm_init; - u32 fmbm_cfg1; - u32 fmbm_cfg2; - u32 res000c[5]; - u32 fmbm_ievr; - u32 fmbm_ier; - u32 fmbm_ifr; - u32 res002c[5]; - u32 fmbm_arb[8]; - u32 res0060[12]; - u32 fmbm_dtc[3]; - u32 res009c; - u32 fmbm_dcv[12]; - u32 fmbm_dcm[12]; - u32 fmbm_gde; - u32 fmbm_pp[63]; - u32 res0200; - u32 fmbm_pfs[63]; - u32 res0300; - u32 fmbm_spliodn[63]; +enum { + VFIO_PCI_BAR0_REGION_INDEX = 0, + VFIO_PCI_BAR1_REGION_INDEX = 1, + VFIO_PCI_BAR2_REGION_INDEX = 2, + VFIO_PCI_BAR3_REGION_INDEX = 3, + VFIO_PCI_BAR4_REGION_INDEX = 4, + VFIO_PCI_BAR5_REGION_INDEX = 5, + VFIO_PCI_ROM_REGION_INDEX = 6, + VFIO_PCI_CONFIG_REGION_INDEX = 7, + VFIO_PCI_VGA_REGION_INDEX = 8, + VFIO_PCI_NUM_REGIONS = 9, }; -struct fman_qmi_regs { - u32 fmqm_gc; - u32 res0004; - u32 fmqm_eie; - u32 fmqm_eien; - u32 fmqm_eif; - u32 fmqm_ie; - u32 fmqm_ien; - u32 fmqm_if; - u32 fmqm_gs; - u32 fmqm_ts; - u32 fmqm_etfc; - u32 fmqm_dtfc; - u32 fmqm_dc0; - u32 fmqm_dc1; - u32 fmqm_dc2; - u32 fmqm_dc3; - u32 fmqm_dfdc; - u32 fmqm_dfcc; - u32 fmqm_dffc; - u32 fmqm_dcc; - u32 res0050[7]; - u32 fmqm_tapc; - u32 fmqm_dmcvc; - u32 fmqm_difdcc; - u32 fmqm_da1v; - u32 res007c; - u32 fmqm_dtc; - u32 fmqm_efddd; - u32 res0088[2]; - struct { - u32 fmqm_dtcfg1; - u32 fmqm_dtval1; - u32 fmqm_dtm1; - u32 fmqm_dtc1; - u32 fmqm_dtcfg2; - u32 fmqm_dtval2; - u32 fmqm_dtm2; - u32 res001c; - } dbg_traps[3]; - u8 res00f0[784]; +struct virqfd; + +struct vfio_pci_ioeventfd { + struct list_head next; + struct vfio_pci_core_device *vdev; + struct virqfd *virqfd; + void *addr; + uint64_t data; + loff_t pos; + int bar; + int count; + bool test_mem; }; -struct fman_dma_regs { - u32 fmdmsr; - u32 fmdmmr; - u32 fmdmtr; - u32 fmdmhy; - u32 fmdmsetr; - u32 fmdmtah; - u32 fmdmtal; - u32 fmdmtcid; - u32 fmdmra; - u32 fmdmrd; - u32 fmdmwcr; - u32 fmdmebcr; - u32 fmdmccqdr; - u32 fmdmccqvr1; - u32 fmdmccqvr2; - u32 fmdmcqvr3; - u32 fmdmcqvr4; - u32 fmdmcqvr5; - u32 fmdmsefrc; - u32 fmdmsqfrc; - u32 fmdmssrc; - u32 fmdmdcr; - u32 fmdmemsr; - u32 res005c; - u32 fmdmplr[32]; - u32 res00e0[968]; +struct vfio_pci_vf_token { + struct mutex lock; + uuid_t uuid; + int users; }; -struct fman_hwp_regs { - u32 res0000[529]; - u32 fmprrpimac; - u32 res[494]; +struct virqfd { + void *opaque; + struct eventfd_ctx *eventfd; + int (*handler)(void *, void *); + void (*thread)(void *, void *); + void *data; + struct work_struct inject; + wait_queue_entry_t wait; + poll_table pt; + struct work_struct shutdown; + struct virqfd **pvirqfd; }; -struct fman_state_struct { - u8 fm_id; - u16 fm_clk_freq; - struct fman_rev_info rev_info; - bool enabled_time_stamp; - u8 count1_micro_bit; - u8 total_num_of_tasks; - u8 accumulated_num_of_tasks; - u32 accumulated_fifo_size; - u8 accumulated_num_of_open_dmas; - u8 accumulated_num_of_deq_tnums; - u32 exceptions; - u32 extra_fifo_pool_size; - u8 extra_tasks_pool_size; - u8 extra_open_dmas_pool_size; - u16 port_mfl[10]; - u16 mac_mfl[10]; - u32 fm_iram_size; - u32 dma_thresh_max_commq; - u32 dma_thresh_max_buf; - u32 max_num_of_open_dmas; - u32 qmi_max_num_of_tnums; - u32 qmi_def_tnums_thresh; - u32 bmi_max_num_of_tasks; - u32 bmi_max_fifo_size; - u32 fm_port_num_of_cg; - u32 num_of_rx_ports; - u32 total_fifo_size; - u32 qman_channel_base; - u32 num_of_qman_channels; - struct resource *res; +struct vfio_pci_dummy_resource { + struct resource resource; + int index; + struct list_head res_next; }; -struct fman_cfg { - u8 disp_limit_tsh; - u8 prs_disp_tsh; - u8 plcr_disp_tsh; - u8 kg_disp_tsh; - u8 bmi_disp_tsh; - u8 qmi_enq_disp_tsh; - u8 qmi_deq_disp_tsh; - u8 fm_ctl1_disp_tsh; - u8 fm_ctl2_disp_tsh; - int dma_cache_override; - enum fman_dma_aid_mode dma_aid_mode; - u32 dma_axi_dbg_num_of_beats; - u32 dma_cam_num_of_entries; - u32 dma_watchdog; - u8 dma_comm_qtsh_asrt_emer; - u32 dma_write_buf_tsh_asrt_emer; - u32 dma_read_buf_tsh_asrt_emer; - u8 dma_comm_qtsh_clr_emer; - u32 dma_write_buf_tsh_clr_emer; - u32 dma_read_buf_tsh_clr_emer; - u32 dma_sos_emergency; - int dma_dbg_cnt_mode; - int catastrophic_err; - int dma_err; - u32 exceptions; - u16 clk_freq; - u32 cam_base_addr; - u32 fifo_base_addr; - u32 total_fifo_size; - u32 total_num_of_tasks; - u32 qmi_def_tnums_thresh; +struct vfio_pci_mmap_vma { + struct vm_area_struct *vma; + struct list_head vma_next; }; -struct fman_iram_regs { - u32 iadd; - u32 idata; - u32 itcfg; - u32 iready; +struct vfio_pci_walk_info { + int (*fn)(struct pci_dev *, void *); + void *data; + struct pci_dev *pdev; + bool slot; + int ret; }; -struct fman_port_init_params { - u8 port_id; - enum fman_port_type port_type; - u16 port_speed; - u16 liodn_offset; - u8 num_of_tasks; - u8 num_of_extra_tasks; - u8 num_of_open_dmas; - u8 num_of_extra_open_dmas; - u32 size_of_fifo; - u32 extra_size_of_fifo; - u8 deq_pipeline_depth; - u16 max_frame_length; - u16 liodn_base; +struct vfio_device_info { + __u32 argsz; + __u32 flags; + __u32 num_regions; + __u32 num_irqs; + __u32 cap_offset; + __u32 pad; }; -enum enetc_vf_flags { - ENETC_VF_FLAG_PF_SET_MAC = 1, +struct vfio_region_info { + __u32 argsz; + __u32 flags; + __u32 index; + __u32 cap_offset; + __u64 size; + __u64 offset; }; -enum enetc_msg_cmd_status { - ENETC_MSG_CMD_STATUS_OK = 0, - ENETC_MSG_CMD_STATUS_FAIL = 1, +struct vfio_region_info_cap_type { + struct vfio_info_cap_header header; + __u32 type; + __u32 subtype; }; -enum enetc_msg_cmd_type { - ENETC_MSG_CMD_MNG_MAC = 1, - ENETC_MSG_CMD_MNG_RX_MAC_FILTER = 2, - ENETC_MSG_CMD_MNG_RX_VLAN_FILTER = 3, +struct vfio_irq_info { + __u32 argsz; + __u32 flags; + __u32 index; + __u32 count; }; -enum enetc_msg_cmd_action_type { - ENETC_MSG_CMD_MNG_ADD = 1, - ENETC_MSG_CMD_MNG_REMOVE = 2, +struct vfio_irq_set { + __u32 argsz; + __u32 flags; + __u32 index; + __u32 start; + __u32 count; + __u8 data[0]; }; -enum enetc_mac_addr_type { - UC = 0, - MC = 1, - MADDR_TYPE = 2, +struct vfio_pci_dependent_device { + union { + __u32 group_id; + __u32 devid; + }; + __u16 segment; + __u8 bus; + __u8 devfn; }; -struct enetc_msg_cmd_header { - u16 type; - u16 id; +struct vfio_pci_hot_reset_info { + __u32 argsz; + __u32 flags; + __u32 count; + struct vfio_pci_dependent_device devices[0]; }; -struct enetc_msg_cmd_set_primary_mac { - struct enetc_msg_cmd_header header; - struct sockaddr mac; +struct vfio_pci_fill_info { + struct vfio_pci_dependent_device __attribute__((btf_type_tag("user"))) *devices; + struct vfio_pci_dependent_device __attribute__((btf_type_tag("user"))) *devices_end; + struct vfio_device *vdev; + u32 count; + u32 flags; }; -struct enetc_mac_filter { - union { - char mac_addr[6]; - unsigned long mac_hash_table[1]; - }; - int mac_addr_cnt; +struct vfio_pci_hot_reset { + __u32 argsz; + __u32 flags; + __u32 count; + __s32 group_fds[0]; }; -struct enetc_msg_swbd { - void *vaddr; - dma_addr_t dma; - int size; +struct vfio_device_ioeventfd { + __u32 argsz; + __u32 flags; + __u64 offset; + __u64 data; + __s32 fd; + __u32 reserved; }; -struct enetc_vf_state; +struct vfio_device_info_cap_pci_atomic_comp { + struct vfio_info_cap_header header; + __u32 flags; + __u32 reserved; +}; -struct enetc_pf { - struct enetc_si *si; - int num_vfs; - int total_vfs; - struct enetc_vf_state *vf_state; - struct enetc_mac_filter mac_filter[6]; - struct enetc_msg_swbd rxmsg[2]; - struct work_struct msg_task; - char msg_int_name[24]; - char vlan_promisc_simap; - unsigned long vlan_ht_filter[1]; - unsigned long active_vlans[64]; - struct mii_bus *mdio; - struct mii_bus *imdio; - struct phylink_pcs *pcs; - phy_interface_t if_mode; - struct phylink_config phylink_config; +struct vfio_pci_group_info { + int count; + struct file **files; }; -struct enetc_vf_state { - enum enetc_vf_flags flags; +struct vfio_device_low_power_entry_with_wakeup { + __s32 wakeup_eventfd; + __u32 reserved; }; -struct enetc_mdio_priv { - struct enetc_hw *hw; - int mdio_base; +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 my_u { - __le64 a; - __le64 b; +struct dwc3_exynos_driverdata { + const char *clk_names[4]; + int num_clks; + int suspend_clk_idx; }; -enum k3_ring_mode { - K3_RINGACC_RING_MODE_RING = 0, - K3_RINGACC_RING_MODE_MESSAGE = 1, - K3_RINGACC_RING_MODE_CREDENTIALS = 2, - K3_RINGACC_RING_MODE_INVALID = 3, +struct dwc3_exynos { + struct device *dev; + const char **clk_names; + struct clk *clks[4]; + int num_clks; + int suspend_clk_idx; + struct regulator *vdd33; + struct regulator *vdd10; }; -struct am65_cpsw_port; +struct wrapper_priv_data { + struct dwc2_hsotg *hsotg; +}; -struct am65_cpsw_ndev_stats; +enum xhci_overhead_type { + LS_OVERHEAD_TYPE = 0, + FS_OVERHEAD_TYPE = 1, + HS_OVERHEAD_TYPE = 2, +}; -struct am65_cpsw_ndev_priv { - u32 msg_enable; - struct am65_cpsw_port *port; - struct am65_cpsw_ndev_stats __attribute__((btf_type_tag("percpu"))) *stats; - bool offload_fwd_mark; +enum xhci_setup_dev { + SETUP_CONTEXT_ONLY = 0, + SETUP_CONTEXT_ADDRESS = 1, }; -struct cpsw_sl; +typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); -struct am65_cpsw_slave_data { - bool mac_only; - struct cpsw_sl *mac_sl; - struct device_node *phy_node; - phy_interface_t phy_if; - struct phy *ifphy; - struct phy *serdes_phy; - bool rx_pause; - bool tx_pause; - u8 mac_addr[6]; - int port_vlan; - struct phylink *phylink; - struct phylink_config phylink_config; +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 am65_cpsw_ale_ratelimit { - unsigned long cookie; - u64 rate_packet_ps; +struct ci_hdrc_imx_platform_flag { + unsigned int flags; }; -struct am65_cpsw_est; - -struct am65_cpsw_qos { - struct am65_cpsw_est *est_admin; - struct am65_cpsw_est *est_oper; - ktime_t link_down_time; - int link_speed; - struct am65_cpsw_ale_ratelimit ale_bc_ratelimit; - struct am65_cpsw_ale_ratelimit ale_mc_ratelimit; +struct imx_usbmisc_data { + struct device *dev; + int index; + unsigned int disable_oc: 1; + unsigned int oc_pol_active_low: 1; + unsigned int oc_pol_configured: 1; + unsigned int pwr_pol: 1; + unsigned int evdo: 1; + unsigned int ulpi: 1; + unsigned int hsic: 1; + unsigned int ext_id: 1; + unsigned int ext_vbus: 1; + struct usb_phy *usb_phy; + enum usb_dr_mode available_role; + int emp_curr_control; + int dc_vol_level_adjust; + int rise_fall_time_adjust; }; -struct am65_cpsw_common; +struct ci_hdrc_imx_data { + struct usb_phy *phy; + struct platform_device *ci_pdev; + struct clk *clk; + struct imx_usbmisc_data *usbmisc_data; + bool supports_runtime_pm; + bool override_phy_control; + bool in_lpm; + struct pinctrl *pinctrl; + struct pinctrl_state *pinctrl_hsic_active; + struct regulator *hsic_pad_regulator; + bool need_three_clks; + struct clk *clk_ipg; + struct clk *clk_ahb; + struct clk *clk_per; + struct pm_qos_request pm_qos_req; + const struct ci_hdrc_imx_platform_flag *plat_data; +}; -struct am65_cpsw_port { - struct am65_cpsw_common *common; - struct net_device *ndev; - const char *name; - u32 port_id; - void *port_base; - void *sgmii_base; - void *stat_base; - void *fetch_ram_base; - bool disabled; - struct am65_cpsw_slave_data slave; - bool tx_ts_enabled; - bool rx_ts_enabled; - struct am65_cpsw_qos qos; - struct devlink_port devlink_port; - u32 vid_context; +struct cros_ec_bs_map { + unsigned int ev_type; + unsigned int code; + u8 bit; + bool inverted; }; -struct am65_cpsw_pdata { - u32 quirks; - u64 extra_modes; - enum k3_ring_mode fdqring_mode; - const char *ale_dev_id; +enum ec_mkbp_info_type { + EC_MKBP_INFO_KBD = 0, + EC_MKBP_INFO_SUPPORTED = 1, + EC_MKBP_INFO_CURRENT = 2, }; -struct am65_cpsw_host { - struct am65_cpsw_common *common; - void *port_base; - void *stat_base; - u32 vid_context; +struct ec_params_mkbp_info { + uint8_t info_type; + uint8_t event_type; }; -struct k3_cppi_desc_pool; +struct vivaldi_data { + u32 function_row_physmap[24]; + unsigned int num_function_row_keys; +}; -struct k3_udma_glue_tx_channel; +struct matrix_keymap_data; -struct am65_cpsw_tx_chn { - struct device *dma_dev; - struct napi_struct napi_tx; - struct am65_cpsw_common *common; - struct k3_cppi_desc_pool *desc_pool; - struct k3_udma_glue_tx_channel *tx_chn; - spinlock_t lock; - int irq; - u32 id; - u32 descs_num; - char tx_chn_name[128]; - u32 rate_mbps; +struct cros_ec_keyb { + unsigned int rows; + unsigned int cols; + int row_shift; + const struct matrix_keymap_data *keymap_data; + bool ghost_filter; + uint8_t *valid_keys; + uint8_t *old_kb_state; + struct device *dev; + struct cros_ec_device *ec; + struct input_dev *idev; + struct input_dev *bs_idev; + struct notifier_block notifier; + struct vivaldi_data vdata; }; -struct k3_udma_glue_rx_channel; +struct matrix_keymap_data { + const uint32_t *keymap; + unsigned int keymap_size; +}; -struct am65_cpsw_rx_chn { - struct device *dev; - struct device *dma_dev; - struct k3_cppi_desc_pool *desc_pool; - struct k3_udma_glue_rx_channel *rx_chn; - u32 descs_num; - int irq; +union ec_response_get_next_data { + uint8_t key_matrix[13]; + uint32_t host_event; + uint64_t host_event64; + struct { + uint8_t reserved[3]; + struct ec_response_motion_sense_fifo_info info; + } sensor_fifo; + uint32_t buttons; + uint32_t switches; + uint32_t fp_events; + uint32_t sysrq; + uint32_t cec_events; }; -struct am65_cpts; +struct xgene_rtc_dev { + struct rtc_device *rtc; + void *csr_base; + struct clk *clk; + unsigned int irq_wake; + unsigned int irq_enabled; +}; -struct cpsw_ale; +struct i2c_spec_values { + unsigned int min_low_ns; + unsigned int min_su_sta_ns; + unsigned int max_hd_dat_ns; + unsigned int min_su_dat_ns; +}; -struct am65_cpsw_common { - struct device *dev; - struct device *mdio_dev; - struct am65_cpsw_pdata pdata; - void *ss_base; - void *cpsw_base; - u32 port_num; - struct am65_cpsw_host host; - struct am65_cpsw_port *ports; - u32 disabled_ports_mask; - struct net_device *dma_ndev; - int usage_count; - struct cpsw_ale *ale; - int tx_ch_num; - u32 tx_ch_rate_msk; - u32 rx_flow_id_base; - struct am65_cpsw_tx_chn tx_chns[8]; - struct completion tdown_complete; - atomic_t tdown_cnt; - struct am65_cpsw_rx_chn rx_chns; - struct napi_struct napi_rx; - bool rx_irq_disabled; - u32 nuss_ver; - u32 cpsw_ver; - unsigned long bus_freq; - bool pf_p0_rx_ptype_rrobin; - struct am65_cpts *cpts; - int est_enabled; - bool is_emac_mode; - u16 br_members; - int default_vlan; - struct devlink *devlink; - struct net_device *hw_bridge_dev; - struct notifier_block am65_cpsw_netdevice_nb; - unsigned char switch_id[32]; - u32 *ale_context; +struct mtk_i2c_compatible { + const struct i2c_adapter_quirks *quirks; + const u16 *regs; + unsigned char pmic_i2c: 1; + unsigned char dcm: 1; + unsigned char auto_restart: 1; + unsigned char aux_len_reg: 1; + unsigned char timing_adjust: 1; + unsigned char dma_sync: 1; + unsigned char ltiming_adjust: 1; + unsigned char apdma_sync: 1; + unsigned char max_dma_support; }; -struct cpsw_ale_params { - struct device *dev; - void *ale_regs; - unsigned long ale_ageout; - unsigned long ale_entries; - unsigned long ale_ports; - bool nu_switch_ale; - u32 major_ver_mask; - const char *dev_id; - unsigned long bus_freq; +enum mtk_trans_op { + I2C_MASTER_WR = 1, + I2C_MASTER_RD = 2, + I2C_MASTER_WRRD = 3, }; -struct ale_entry_fld; +enum i2c_mt65xx_clks { + I2C_MT65XX_CLK_MAIN = 0, + I2C_MT65XX_CLK_DMA = 1, + I2C_MT65XX_CLK_PMIC = 2, + I2C_MT65XX_CLK_ARB = 3, + I2C_MT65XX_CLK_MAX = 4, +}; -struct cpsw_ale { - struct cpsw_ale_params params; - struct timer_list timer; - unsigned long ageout; - u32 version; - u32 features; - u32 port_mask_bits; - u32 port_num_bits; - u32 vlan_field_bits; - unsigned long *p0_untag_vid_mask; - const struct ale_entry_fld *vlan_entry_tbl; +enum I2C_REGS_OFFSET { + OFFSET_DATA_PORT = 0, + OFFSET_SLAVE_ADDR = 1, + OFFSET_INTR_MASK = 2, + OFFSET_INTR_STAT = 3, + OFFSET_CONTROL = 4, + OFFSET_TRANSFER_LEN = 5, + OFFSET_TRANSAC_LEN = 6, + OFFSET_DELAY_LEN = 7, + OFFSET_TIMING = 8, + OFFSET_START = 9, + OFFSET_EXT_CONF = 10, + OFFSET_FIFO_STAT = 11, + OFFSET_FIFO_THRESH = 12, + OFFSET_FIFO_ADDR_CLR = 13, + OFFSET_IO_CONFIG = 14, + OFFSET_RSV_DEBUG = 15, + OFFSET_HS = 16, + OFFSET_SOFTRESET = 17, + OFFSET_DCM_EN = 18, + OFFSET_MULTI_DMA = 19, + OFFSET_PATH_DIR = 20, + OFFSET_DEBUGSTAT = 21, + OFFSET_DEBUGCTRL = 22, + OFFSET_TRANSFER_LEN_AUX = 23, + OFFSET_CLOCK_DIV = 24, + OFFSET_LTIMING = 25, + OFFSET_SCL_HIGH_LOW_RATIO = 26, + OFFSET_HS_SCL_HIGH_LOW_RATIO = 27, + OFFSET_SCL_MIS_COMP_POINT = 28, + OFFSET_STA_STO_AC_TIMING = 29, + OFFSET_HS_STA_STO_AC_TIMING = 30, + OFFSET_SDA_TIMING = 31, }; -struct ale_entry_fld { - u8 start_bit; - u8 num_bits; - u8 flags; +enum DMA_REGS_OFFSET { + OFFSET_INT_FLAG = 0, + OFFSET_INT_EN = 4, + OFFSET_EN = 8, + OFFSET_RST = 12, + OFFSET_CON = 24, + OFFSET_TX_MEM_ADDR = 28, + OFFSET_RX_MEM_ADDR = 32, + OFFSET_TX_LEN = 36, + OFFSET_RX_LEN = 40, + OFFSET_TX_4G_MODE = 84, + OFFSET_RX_4G_MODE = 88, }; -struct am65_cpsw_est { - int buf; - struct tc_taprio_qopt_offload taprio; +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 am65_cpsw_ndev_stats { - u64 tx_packets; - u64 tx_bytes; - u64 rx_packets; - u64 rx_bytes; - struct u64_stats_sync syncp; +struct mtk_i2c_ac_timing { + u16 htiming; + u16 ltiming; + u16 hs; + u16 ext; + u16 inter_clk_div; + u16 scl_hl_ratio; + u16 hs_scl_hl_ratio; + u16 sta_stop; + u16 hs_sta_stop; + u16 sda_timing; }; -enum ssusb_uwk_vers___2 { - SSUSB_UWK_V1___2 = 1, - SSUSB_UWK_V2___2 = 2, - SSUSB_UWK_V1_1___2 = 101, - SSUSB_UWK_V1_2___2 = 102, - SSUSB_UWK_V1_3 = 103, - SSUSB_UWK_V1_4 = 104, - SSUSB_UWK_V1_5 = 105, - SSUSB_UWK_V1_6 = 106, +struct mtk_i2c { + struct i2c_adapter adap; + struct device *dev; + struct completion msg_complete; + struct i2c_timings timing_info; + void *base; + void *pdmabase; + struct clk_bulk_data clocks[4]; + bool have_pmic; + bool use_push_pull; + u16 irq_stat; + unsigned int clk_src_div; + unsigned int speed_hz; + enum mtk_trans_op op; + u16 timing_reg; + u16 high_speed_reg; + u16 ltiming_reg; + unsigned char auto_restart; + bool ignore_restart_irq; + struct mtk_i2c_ac_timing ac_timing; + const struct mtk_i2c_compatible *dev_comp; }; -struct mu3h_sch_bw_info; - -struct mu3c_ippc_regs; +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 xhci_hcd_mtk { - struct device *dev; - struct usb_hcd *hcd; - struct mu3h_sch_bw_info *sch_array; - struct list_head bw_ep_chk_list; - struct hlist_head sch_ep_hash[32]; - struct mu3c_ippc_regs *ippc_regs; - int num_u2_ports; - int num_u3_ports; - int u2p_dis_msk; - int u3p_dis_msk; - struct clk_bulk_data clks[6]; - struct regulator_bulk_data supplies[2]; - unsigned int has_ippc: 1; - unsigned int lpm_support: 1; - unsigned int u2_lpm_disable: 1; - unsigned int uwk_en: 1; - struct regmap *uwk; - u32 uwk_reg_base; - u32 uwk_vers; +enum { + POWER_SUPPLY_SCOPE_UNKNOWN = 0, + POWER_SUPPLY_SCOPE_SYSTEM = 1, + POWER_SUPPLY_SCOPE_DEVICE = 2, }; -struct mu3h_sch_bw_info { - u32 bus_bw[64]; +enum power_supply_notifier_events { + PSY_EVENT_PROP_CHANGED = 0, }; -struct mu3c_ippc_regs { - __le32 ip_pw_ctr0; - __le32 ip_pw_ctr1; - __le32 ip_pw_ctr2; - __le32 ip_pw_ctr3; - __le32 ip_pw_sts1; - __le32 ip_pw_sts2; - __le32 reserved0[3]; - __le32 ip_xhci_cap; - __le32 reserved1[2]; - __le64 u3_ctrl_p[4]; - __le64 u2_ctrl_p[5]; - __le32 reserved2; - __le32 u2_phy_pll; - __le32 reserved3[33]; +struct psy_am_i_supplied_data { + struct power_supply *psy; + unsigned int count; }; -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 psy_get_supplier_prop_data { + struct power_supply *psy; + enum power_supply_property psp; + union power_supply_propval *val; }; -enum i2c_type_exynos { - I2C_TYPE_EXYNOS5 = 0, - I2C_TYPE_EXYNOS7 = 1, - I2C_TYPE_EXYNOSAUTOV9 = 2, +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 exynos_hsi2c_variant { - unsigned int fifo_depth; - enum i2c_type_exynos hw; +struct stm32_iwdg_data { + bool has_pclk; + u32 max_prescaler; }; -struct exynos5_i2c { - struct i2c_adapter adap; - struct i2c_msg *msg; - struct completion msg_complete; - unsigned int msg_ptr; - unsigned int irq; +struct stm32_iwdg { + struct watchdog_device wdd; + const struct stm32_iwdg_data *data; void *regs; - struct clk *clk; - struct clk *pclk; - struct device *dev; - int state; - spinlock_t lock; - int trans_done; - unsigned int op_clock; - const struct exynos_hsi2c_variant *variant; + struct clk *clk_lsi; + struct clk *clk_pclk; + unsigned int rate; }; -struct tegra_cpufreq_ops; - -struct tegra_cpufreq_soc { - struct tegra_cpufreq_ops *ops; - int maxcpus_per_cluster; - unsigned int num_clusters; - phys_addr_t actmon_cntr_base; +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 tegra_cpu_ctr; - -struct tegra_cpufreq_ops { - void (*read_counters)(struct tegra_cpu_ctr *); - void (*set_cpu_ndiv)(struct cpufreq_policy *, u64); - void (*get_cpu_cluster_id)(u32, u32 *, u32 *); - int (*get_cpu_ndiv)(u32, u32, u32, u64 *); +struct menu_device { + int needs_update; + int tick_wakeup; + u64 next_timer_ns; + unsigned int bucket; + unsigned int correction_factor[12]; + unsigned int intervals[8]; + int interval_ptr; }; -struct tegra_cpu_ctr { - u32 cpu; - u32 coreclk_cnt; - u32 last_coreclk_cnt; - u32 refclk_cnt; - u32 last_refclk_cnt; +struct psci_cpuidle_data { + u32 *psci_states; + struct device *dev; }; -struct read_counters_work { - struct work_struct work; - struct tegra_cpu_ctr c; +struct mmc_driver { + struct device_driver drv; + int (*probe)(struct mmc_card *); + void (*remove)(struct mmc_card *); + void (*shutdown)(struct mmc_card *); }; -struct mrq_cpu_ndiv_limits_response { - uint32_t ref_clk_hz; - uint16_t pdiv; - uint16_t mdiv; - uint16_t ndiv_max; - uint16_t ndiv_min; +enum mmc_drv_op { + MMC_DRV_OP_IOCTL = 0, + MMC_DRV_OP_IOCTL_RPMB = 1, + MMC_DRV_OP_BOOT_WP = 2, + MMC_DRV_OP_GET_CARD_STATUS = 3, + MMC_DRV_OP_GET_EXT_CSD = 4, }; -struct mrq_cpu_ndiv_limits_request { - uint32_t cluster_id; +enum mmc_issued { + MMC_REQ_STARTED = 0, + MMC_REQ_BUSY = 1, + MMC_REQ_FAILED_TO_START = 2, + MMC_REQ_FINISHED = 3, }; -struct tegra194_cpufreq_data { - void *regs; - struct cpufreq_frequency_table **bpmp_luts; - const struct tegra_cpufreq_soc *soc; - bool icc_dram_bw_scaling; +enum mmc_issue_type { + MMC_ISSUE_SYNC = 0, + MMC_ISSUE_DCMD = 1, + MMC_ISSUE_ASYNC = 2, + MMC_ISSUE_MAX = 3, }; -struct mmc_spi_platform_data; +enum string_size_units { + STRING_UNITS_10 = 0, + STRING_UNITS_2 = 1, +}; -struct scratch; +struct mmc_blk_data; -struct mmc_spi_host { - struct mmc_host *mmc; - struct spi_device *spi; - unsigned char power_mode; - u16 powerup_msecs; - struct mmc_spi_platform_data *pdata; - struct spi_transfer token; - struct spi_transfer t; - struct spi_transfer crc; - struct spi_transfer early_status; - struct spi_message m; - struct spi_transfer status; - struct spi_message readback; - struct device *dma_dev; - struct scratch *data; - dma_addr_t data_dma; - void *ones; - dma_addr_t ones_dma; +struct mmc_queue { + struct mmc_card *card; + struct mmc_ctx ctx; + struct blk_mq_tag_set tag_set; + struct mmc_blk_data *blkdata; + struct request_queue *queue; + spinlock_t lock; + int in_flight[3]; + unsigned int cqe_busy; + bool busy; + bool recovery_needed; + bool in_recovery; + bool rw_wait; + bool waiting; + struct work_struct recovery_work; + wait_queue_head_t wait; + struct request *recovery_req; + struct request *complete_req; + struct mutex complete_lock; + struct work_struct complete_work; }; -struct mmc_spi_platform_data { - int (*init)(struct device *, irqreturn_t (*)(int, void *), void *); - void (*exit)(struct device *, void *); - unsigned long caps; - unsigned long caps2; - u16 detect_delay; - u16 powerup_msecs; - u32 ocr_mask; - void (*setpower)(struct device *, unsigned int); +struct mmc_blk_data { + struct device *parent; + struct gendisk *disk; + struct mmc_queue queue; + struct list_head part; + struct list_head rpmbs; + unsigned int flags; + struct kref kref; + unsigned int read_only; + unsigned int part_type; + unsigned int reset_done; + unsigned int part_curr; + int area_type; + struct dentry *status_dentry; + struct dentry *ext_csd_dentry; }; -struct scratch { - u8 status[29]; - u8 data_token; - __be16 crc_val; +struct mmc_blk_request { + struct mmc_request mrq; + struct mmc_command sbc; + struct mmc_command cmd; + struct mmc_command stop; + struct mmc_data data; }; -enum { - UFS_UPIU_REPORT_LUNS_WLUN = 129, - UFS_UPIU_UFS_DEVICE_WLUN = 208, - UFS_UPIU_BOOT_WLUN = 176, - UFS_UPIU_RPMB_WLUN = 196, +struct mmc_queue_req { + struct mmc_blk_request brq; + struct scatterlist *sg; + enum mmc_drv_op drv_op; + int drv_op_result; + void *drv_op_data; + unsigned int ioc_count; + int retries; }; -enum desc_idn { - QUERY_DESC_IDN_DEVICE = 0, - QUERY_DESC_IDN_CONFIGURATION = 1, - QUERY_DESC_IDN_UNIT = 2, - QUERY_DESC_IDN_RFU_0 = 3, - QUERY_DESC_IDN_INTERCONNECT = 4, - QUERY_DESC_IDN_STRING = 5, - QUERY_DESC_IDN_RFU_1 = 6, - QUERY_DESC_IDN_GEOMETRY = 7, - QUERY_DESC_IDN_POWER = 8, - QUERY_DESC_IDN_HEALTH = 9, - QUERY_DESC_IDN_MAX = 10, +struct mmc_ioc_cmd { + int write_flag; + int is_acmd; + __u32 opcode; + __u32 arg; + __u32 response[4]; + unsigned int flags; + unsigned int blksz; + unsigned int blocks; + unsigned int postsleep_min_us; + unsigned int postsleep_max_us; + unsigned int data_timeout_ns; + unsigned int cmd_timeout_ms; + __u32 __pad; + __u64 data_ptr; }; -enum unit_desc_param { - UNIT_DESC_PARAM_LEN = 0, - UNIT_DESC_PARAM_TYPE = 1, - UNIT_DESC_PARAM_UNIT_INDEX = 2, - UNIT_DESC_PARAM_LU_ENABLE = 3, - UNIT_DESC_PARAM_BOOT_LUN_ID = 4, - UNIT_DESC_PARAM_LU_WR_PROTECT = 5, - UNIT_DESC_PARAM_LU_Q_DEPTH = 6, - UNIT_DESC_PARAM_PSA_SENSITIVE = 7, - UNIT_DESC_PARAM_MEM_TYPE = 8, - UNIT_DESC_PARAM_DATA_RELIABILITY = 9, - UNIT_DESC_PARAM_LOGICAL_BLK_SIZE = 10, - UNIT_DESC_PARAM_LOGICAL_BLK_COUNT = 11, - UNIT_DESC_PARAM_ERASE_BLK_SIZE = 19, - UNIT_DESC_PARAM_PROVISIONING_TYPE = 23, - UNIT_DESC_PARAM_PHY_MEM_RSRC_CNT = 24, - UNIT_DESC_PARAM_CTX_CAPABILITIES = 32, - UNIT_DESC_PARAM_LARGE_UNIT_SIZE_M1 = 34, - UNIT_DESC_PARAM_HPB_LU_MAX_ACTIVE_RGNS = 35, - UNIT_DESC_PARAM_HPB_PIN_RGN_START_OFF = 37, - UNIT_DESC_PARAM_HPB_NUM_PIN_RGNS = 39, - UNIT_DESC_PARAM_WB_BUF_ALLOC_UNITS = 41, +struct mmc_ioc_multi_cmd { + __u64 num_of_cmds; + struct mmc_ioc_cmd cmds[0]; }; -enum query_opcode { - UPIU_QUERY_OPCODE_NOP = 0, - UPIU_QUERY_OPCODE_READ_DESC = 1, - UPIU_QUERY_OPCODE_WRITE_DESC = 2, - UPIU_QUERY_OPCODE_READ_ATTR = 3, - UPIU_QUERY_OPCODE_WRITE_ATTR = 4, - UPIU_QUERY_OPCODE_READ_FLAG = 5, - UPIU_QUERY_OPCODE_SET_FLAG = 6, - UPIU_QUERY_OPCODE_CLEAR_FLAG = 7, - UPIU_QUERY_OPCODE_TOGGLE_FLAG = 8, +struct mmc_rpmb_data { + struct device dev; + struct cdev chrdev; + int id; + unsigned int part_index; + struct mmc_blk_data *md; + struct list_head node; }; -enum attr_idn { - QUERY_ATTR_IDN_BOOT_LU_EN = 0, - QUERY_ATTR_IDN_MAX_HPB_SINGLE_CMD = 1, - QUERY_ATTR_IDN_POWER_MODE = 2, - QUERY_ATTR_IDN_ACTIVE_ICC_LVL = 3, - QUERY_ATTR_IDN_OOO_DATA_EN = 4, - QUERY_ATTR_IDN_BKOPS_STATUS = 5, - QUERY_ATTR_IDN_PURGE_STATUS = 6, - QUERY_ATTR_IDN_MAX_DATA_IN = 7, - QUERY_ATTR_IDN_MAX_DATA_OUT = 8, - QUERY_ATTR_IDN_DYN_CAP_NEEDED = 9, - QUERY_ATTR_IDN_REF_CLK_FREQ = 10, - QUERY_ATTR_IDN_CONF_DESC_LOCK = 11, - QUERY_ATTR_IDN_MAX_NUM_OF_RTT = 12, - QUERY_ATTR_IDN_EE_CONTROL = 13, - QUERY_ATTR_IDN_EE_STATUS = 14, - QUERY_ATTR_IDN_SECONDS_PASSED = 15, - QUERY_ATTR_IDN_CNTX_CONF = 16, - QUERY_ATTR_IDN_CORR_PRG_BLK_NUM = 17, - QUERY_ATTR_IDN_RESERVED2 = 18, - QUERY_ATTR_IDN_RESERVED3 = 19, - QUERY_ATTR_IDN_FFU_STATUS = 20, - QUERY_ATTR_IDN_PSA_STATE = 21, - QUERY_ATTR_IDN_PSA_DATA_SIZE = 22, - QUERY_ATTR_IDN_REF_CLK_GATING_WAIT_TIME = 23, - QUERY_ATTR_IDN_CASE_ROUGH_TEMP = 24, - QUERY_ATTR_IDN_HIGH_TEMP_BOUND = 25, - QUERY_ATTR_IDN_LOW_TEMP_BOUND = 26, - QUERY_ATTR_IDN_WB_FLUSH_STATUS = 28, - QUERY_ATTR_IDN_AVAIL_WB_BUFF_SIZE = 29, - QUERY_ATTR_IDN_WB_BUFF_LIFE_TIME_EST = 30, - QUERY_ATTR_IDN_CURR_WB_BUFF_SIZE = 31, - QUERY_ATTR_IDN_EXT_IID_EN = 42, - QUERY_ATTR_IDN_TIMESTAMP = 48, +struct mmc_blk_busy_data { + struct mmc_card *card; + u32 status; }; -enum ufshcd_caps { - UFSHCD_CAP_CLK_GATING = 1, - UFSHCD_CAP_HIBERN8_WITH_CLK_GATING = 2, - UFSHCD_CAP_CLK_SCALING = 4, - UFSHCD_CAP_AUTO_BKOPS_SUSPEND = 8, - UFSHCD_CAP_INTR_AGGR = 16, - UFSHCD_CAP_KEEP_AUTO_BKOPS_ENABLED_EXCEPT_SUSPEND = 32, - UFSHCD_CAP_RPM_AUTOSUSPEND = 64, - UFSHCD_CAP_WB_EN = 128, - UFSHCD_CAP_CRYPTO = 256, - UFSHCD_CAP_AGGR_POWER_COLLAPSE = 512, - UFSHCD_CAP_DEEPSLEEP = 1024, - UFSHCD_CAP_TEMP_NOTIF = 2048, - UFSHCD_CAP_WB_WITH_CLK_SCALING = 4096, +struct mmc_blk_ioc_data { + struct mmc_ioc_cmd ic; + unsigned char *buf; + u64 buf_bytes; + struct mmc_rpmb_data *rpmb; }; -enum { - MASK_TRANSFER_REQUESTS_SLOTS = 31, - MASK_TASK_MANAGEMENT_REQUEST_SLOTS = 458752, - MASK_EHSLUTRD_SUPPORTED = 4194304, - MASK_AUTO_HIBERN8_SUPPORT = 8388608, - MASK_64_ADDRESSING_SUPPORT = 16777216, - MASK_OUT_OF_ORDER_DATA_DELIVERY_SUPPORT = 33554432, - MASK_UIC_DME_TEST_MODE_SUPPORT = 67108864, - MASK_CRYPTO_SUPPORT = 268435456, - MASK_MCQ_SUPPORT = 1073741824, +struct sdhci_cdns_drv_data { + int (*init)(struct platform_device *); + const struct sdhci_pltfm_data pltfm_data; }; -enum device_desc_param { - DEVICE_DESC_PARAM_LEN = 0, - DEVICE_DESC_PARAM_TYPE = 1, - DEVICE_DESC_PARAM_DEVICE_TYPE = 2, - DEVICE_DESC_PARAM_DEVICE_CLASS = 3, - DEVICE_DESC_PARAM_DEVICE_SUB_CLASS = 4, - DEVICE_DESC_PARAM_PRTCL = 5, - DEVICE_DESC_PARAM_NUM_LU = 6, - DEVICE_DESC_PARAM_NUM_WLU = 7, - DEVICE_DESC_PARAM_BOOT_ENBL = 8, - DEVICE_DESC_PARAM_DESC_ACCSS_ENBL = 9, - DEVICE_DESC_PARAM_INIT_PWR_MODE = 10, - DEVICE_DESC_PARAM_HIGH_PR_LUN = 11, - DEVICE_DESC_PARAM_SEC_RMV_TYPE = 12, - DEVICE_DESC_PARAM_SEC_LU = 13, - DEVICE_DESC_PARAM_BKOP_TERM_LT = 14, - DEVICE_DESC_PARAM_ACTVE_ICC_LVL = 15, - DEVICE_DESC_PARAM_SPEC_VER = 16, - DEVICE_DESC_PARAM_MANF_DATE = 18, - DEVICE_DESC_PARAM_MANF_NAME = 20, - DEVICE_DESC_PARAM_PRDCT_NAME = 21, - DEVICE_DESC_PARAM_SN = 22, - DEVICE_DESC_PARAM_OEM_ID = 23, - DEVICE_DESC_PARAM_MANF_ID = 24, - DEVICE_DESC_PARAM_UD_OFFSET = 26, - DEVICE_DESC_PARAM_UD_LEN = 27, - DEVICE_DESC_PARAM_RTT_CAP = 28, - DEVICE_DESC_PARAM_FRQ_RTC = 29, - DEVICE_DESC_PARAM_UFS_FEAT = 31, - DEVICE_DESC_PARAM_FFU_TMT = 32, - DEVICE_DESC_PARAM_Q_DPTH = 33, - DEVICE_DESC_PARAM_DEV_VER = 34, - DEVICE_DESC_PARAM_NUM_SEC_WPA = 36, - DEVICE_DESC_PARAM_PSA_MAX_DATA = 37, - DEVICE_DESC_PARAM_PSA_TMT = 41, - DEVICE_DESC_PARAM_PRDCT_REV = 42, - DEVICE_DESC_PARAM_HPB_VER = 64, - DEVICE_DESC_PARAM_HPB_CONTROL = 66, - DEVICE_DESC_PARAM_EXT_UFS_FEATURE_SUP = 79, - DEVICE_DESC_PARAM_WB_PRESRV_USRSPC_EN = 83, - DEVICE_DESC_PARAM_WB_TYPE = 84, - DEVICE_DESC_PARAM_WB_SHARED_ALLOC_UNITS = 85, +struct sdhci_cdns_phy_cfg { + const char *property; + u8 addr; }; -enum interconnect_desc_param { - INTERCONNECT_DESC_PARAM_LEN = 0, - INTERCONNECT_DESC_PARAM_TYPE = 1, - INTERCONNECT_DESC_PARAM_UNIPRO_VER = 2, - INTERCONNECT_DESC_PARAM_MPHY_VER = 4, +struct sdhci_cdns_phy_param { + u8 addr; + u8 data; }; -enum geometry_desc_param { - GEOMETRY_DESC_PARAM_LEN = 0, - GEOMETRY_DESC_PARAM_TYPE = 1, - GEOMETRY_DESC_PARAM_DEV_CAP = 4, - GEOMETRY_DESC_PARAM_MAX_NUM_LUN = 12, - GEOMETRY_DESC_PARAM_SEG_SIZE = 13, - GEOMETRY_DESC_PARAM_ALLOC_UNIT_SIZE = 17, - GEOMETRY_DESC_PARAM_MIN_BLK_SIZE = 18, - GEOMETRY_DESC_PARAM_OPT_RD_BLK_SIZE = 19, - GEOMETRY_DESC_PARAM_OPT_WR_BLK_SIZE = 20, - GEOMETRY_DESC_PARAM_MAX_IN_BUF_SIZE = 21, - GEOMETRY_DESC_PARAM_MAX_OUT_BUF_SIZE = 22, - GEOMETRY_DESC_PARAM_RPMB_RW_SIZE = 23, - GEOMETRY_DESC_PARAM_DYN_CAP_RSRC_PLC = 24, - GEOMETRY_DESC_PARAM_DATA_ORDER = 25, - GEOMETRY_DESC_PARAM_MAX_NUM_CTX = 26, - GEOMETRY_DESC_PARAM_TAG_UNIT_SIZE = 27, - GEOMETRY_DESC_PARAM_TAG_RSRC_SIZE = 28, - GEOMETRY_DESC_PARAM_SEC_RM_TYPES = 29, - GEOMETRY_DESC_PARAM_MEM_TYPES = 30, - GEOMETRY_DESC_PARAM_SCM_MAX_NUM_UNITS = 32, - GEOMETRY_DESC_PARAM_SCM_CAP_ADJ_FCTR = 36, - GEOMETRY_DESC_PARAM_NPM_MAX_NUM_UNITS = 38, - GEOMETRY_DESC_PARAM_NPM_CAP_ADJ_FCTR = 42, - GEOMETRY_DESC_PARAM_ENM1_MAX_NUM_UNITS = 44, - GEOMETRY_DESC_PARAM_ENM1_CAP_ADJ_FCTR = 48, - GEOMETRY_DESC_PARAM_ENM2_MAX_NUM_UNITS = 50, - GEOMETRY_DESC_PARAM_ENM2_CAP_ADJ_FCTR = 54, - GEOMETRY_DESC_PARAM_ENM3_MAX_NUM_UNITS = 56, - GEOMETRY_DESC_PARAM_ENM3_CAP_ADJ_FCTR = 60, - GEOMETRY_DESC_PARAM_ENM4_MAX_NUM_UNITS = 62, - GEOMETRY_DESC_PARAM_ENM4_CAP_ADJ_FCTR = 66, - GEOMETRY_DESC_PARAM_OPT_LOG_BLK_SIZE = 68, - GEOMETRY_DESC_PARAM_HPB_REGION_SIZE = 72, - GEOMETRY_DESC_PARAM_HPB_NUMBER_LU = 73, - GEOMETRY_DESC_PARAM_HPB_SUBREGION_SIZE = 74, - GEOMETRY_DESC_PARAM_HPB_MAX_ACTIVE_REGS = 75, - GEOMETRY_DESC_PARAM_WB_MAX_ALLOC_UNITS = 79, - GEOMETRY_DESC_PARAM_WB_MAX_WB_LUNS = 83, - GEOMETRY_DESC_PARAM_WB_BUFF_CAP_ADJ = 84, - GEOMETRY_DESC_PARAM_WB_SUP_RED_TYPE = 85, - GEOMETRY_DESC_PARAM_WB_SUP_WB_TYPE = 86, +struct sdhci_cdns_priv { + void *hrs_addr; + void *ctl_addr; + spinlock_t wrlock; + bool enhanced_strobe; + void (*priv_writel)(struct sdhci_cdns_priv *, u32, void *); + struct reset_control *rst_hw; + unsigned int nr_phy_params; + struct sdhci_cdns_phy_param phy_params[0]; }; -enum health_desc_param { - HEALTH_DESC_PARAM_LEN = 0, - HEALTH_DESC_PARAM_TYPE = 1, - HEALTH_DESC_PARAM_EOL_INFO = 2, - HEALTH_DESC_PARAM_LIFE_TIME_EST_A = 3, - HEALTH_DESC_PARAM_LIFE_TIME_EST_B = 4, +struct syscon_led { + struct led_classdev cdev; + struct regmap *map; + u32 offset; + u32 mask; + bool state; }; -enum power_desc_param_offset { - PWR_DESC_LEN = 0, - PWR_DESC_TYPE = 1, - PWR_DESC_ACTIVE_LVLS_VCC_0 = 2, - PWR_DESC_ACTIVE_LVLS_VCCQ_0 = 34, - PWR_DESC_ACTIVE_LVLS_VCCQ2_0 = 66, +struct bcm63138_leds; + +struct bcm63138_led { + struct bcm63138_leds *leds; + struct led_classdev cdev; + u32 pin; + bool active_low; }; -enum flag_idn { - QUERY_FLAG_IDN_FDEVICEINIT = 1, - QUERY_FLAG_IDN_PERMANENT_WPE = 2, - QUERY_FLAG_IDN_PWR_ON_WPE = 3, - QUERY_FLAG_IDN_BKOPS_EN = 4, - QUERY_FLAG_IDN_LIFE_SPAN_MODE_ENABLE = 5, - QUERY_FLAG_IDN_PURGE_ENABLE = 6, - QUERY_FLAG_IDN_RESERVED2 = 7, - QUERY_FLAG_IDN_FPHYRESOURCEREMOVAL = 8, - QUERY_FLAG_IDN_BUSY_RTC = 9, - QUERY_FLAG_IDN_RESERVED3 = 10, - QUERY_FLAG_IDN_PERMANENTLY_DISABLE_FW_UPDATE = 11, - QUERY_FLAG_IDN_WB_EN = 14, - QUERY_FLAG_IDN_WB_BUFF_FLUSH_EN = 15, - QUERY_FLAG_IDN_WB_BUFF_FLUSH_DURING_HIBERN8 = 16, - QUERY_FLAG_IDN_HPB_RESET = 17, - QUERY_FLAG_IDN_HPB_EN = 18, +struct bcm63138_leds { + struct device *dev; + void *base; + spinlock_t lock; }; -enum { - WB_BUF_MODE_LU_DEDICATED = 0, - WB_BUF_MODE_SHARED = 1, +enum mrq_debug_commands { + CMD_DEBUG_OPEN_RO = 0, + CMD_DEBUG_OPEN_WO = 1, + CMD_DEBUG_READ = 2, + CMD_DEBUG_WRITE = 3, + CMD_DEBUG_CLOSE = 4, + CMD_DEBUG_MAX = 5, }; -enum imx_sc_pm_func { - IMX_SC_PM_FUNC_UNKNOWN = 0, - IMX_SC_PM_FUNC_SET_SYS_POWER_MODE = 19, - IMX_SC_PM_FUNC_SET_PARTITION_POWER_MODE = 1, - IMX_SC_PM_FUNC_GET_SYS_POWER_MODE = 2, - IMX_SC_PM_FUNC_SET_RESOURCE_POWER_MODE = 3, - IMX_SC_PM_FUNC_GET_RESOURCE_POWER_MODE = 4, - IMX_SC_PM_FUNC_REQ_LOW_POWER_MODE = 16, - IMX_SC_PM_FUNC_SET_CPU_RESUME_ADDR = 17, - IMX_SC_PM_FUNC_REQ_SYS_IF_POWER_MODE = 18, - IMX_SC_PM_FUNC_SET_CLOCK_RATE = 5, - IMX_SC_PM_FUNC_GET_CLOCK_RATE = 6, - IMX_SC_PM_FUNC_CLOCK_ENABLE = 7, - IMX_SC_PM_FUNC_SET_CLOCK_PARENT = 14, - IMX_SC_PM_FUNC_GET_CLOCK_PARENT = 15, - IMX_SC_PM_FUNC_RESET = 13, - IMX_SC_PM_FUNC_RESET_REASON = 10, - IMX_SC_PM_FUNC_BOOT = 8, - IMX_SC_PM_FUNC_REBOOT = 9, - IMX_SC_PM_FUNC_REBOOT_PARTITION = 12, - IMX_SC_PM_FUNC_CPU_START = 11, +enum mrq_debugfs_commands { + CMD_DEBUGFS_READ = 1, + CMD_DEBUGFS_WRITE = 2, + CMD_DEBUGFS_DUMPDIR = 3, + CMD_DEBUGFS_MAX = 4, }; -struct imx_sc_msg_resp_misc_get_ctrl { - struct imx_sc_rpc_msg hdr; - u32 val; +struct seqbuf { + char *buf; + size_t pos; + size_t size; }; -struct imx_sc_msg_req_misc_set_ctrl { - struct imx_sc_rpc_msg hdr; - u32 ctrl; - u32 val; - u16 resource; +struct cmd_debugfs_fileop_request { + uint32_t fnameaddr; + uint32_t fnamelen; + uint32_t dataaddr; + uint32_t datalen; }; -struct imx_sc_msg_req_misc_get_ctrl { - struct imx_sc_rpc_msg hdr; - u32 ctrl; - u16 resource; +struct cmd_debugfs_dumpdir_request { + uint32_t dataaddr; + uint32_t datalen; }; -struct imx_sc_msg_req_cpu_start { - struct imx_sc_rpc_msg hdr; - u32 address_hi; - u32 address_lo; - u16 resource; - u8 enable; +struct mrq_debugfs_request { + uint32_t cmd; + union { + struct cmd_debugfs_fileop_request fop; + struct cmd_debugfs_dumpdir_request dumpdir; + }; }; -enum imx_sc_rm_func { - IMX_SC_RM_FUNC_UNKNOWN = 0, - IMX_SC_RM_FUNC_PARTITION_ALLOC = 1, - IMX_SC_RM_FUNC_SET_CONFIDENTIAL = 31, - IMX_SC_RM_FUNC_PARTITION_FREE = 2, - IMX_SC_RM_FUNC_GET_DID = 26, - IMX_SC_RM_FUNC_PARTITION_STATIC = 3, - IMX_SC_RM_FUNC_PARTITION_LOCK = 4, - IMX_SC_RM_FUNC_GET_PARTITION = 5, - IMX_SC_RM_FUNC_SET_PARENT = 6, - IMX_SC_RM_FUNC_MOVE_ALL = 7, - IMX_SC_RM_FUNC_ASSIGN_RESOURCE = 8, - IMX_SC_RM_FUNC_SET_RESOURCE_MOVABLE = 9, - IMX_SC_RM_FUNC_SET_SUBSYS_RSRC_MOVABLE = 28, - IMX_SC_RM_FUNC_SET_MASTER_ATTRIBUTES = 10, - IMX_SC_RM_FUNC_SET_MASTER_SID = 11, - IMX_SC_RM_FUNC_SET_PERIPHERAL_PERMISSIONS = 12, - IMX_SC_RM_FUNC_IS_RESOURCE_OWNED = 13, - IMX_SC_RM_FUNC_GET_RESOURCE_OWNER = 33, - IMX_SC_RM_FUNC_IS_RESOURCE_MASTER = 14, - IMX_SC_RM_FUNC_IS_RESOURCE_PERIPHERAL = 15, - IMX_SC_RM_FUNC_GET_RESOURCE_INFO = 16, - IMX_SC_RM_FUNC_MEMREG_ALLOC = 17, - IMX_SC_RM_FUNC_MEMREG_SPLIT = 29, - IMX_SC_RM_FUNC_MEMREG_FRAG = 32, - IMX_SC_RM_FUNC_MEMREG_FREE = 18, - IMX_SC_RM_FUNC_FIND_MEMREG = 30, - IMX_SC_RM_FUNC_ASSIGN_MEMREG = 19, - IMX_SC_RM_FUNC_SET_MEMREG_PERMISSIONS = 20, - IMX_SC_RM_FUNC_IS_MEMREG_OWNED = 21, - IMX_SC_RM_FUNC_GET_MEMREG_INFO = 22, - IMX_SC_RM_FUNC_ASSIGN_PAD = 23, - IMX_SC_RM_FUNC_SET_PAD_MOVABLE = 24, - IMX_SC_RM_FUNC_IS_PAD_OWNED = 25, - IMX_SC_RM_FUNC_DUMP = 27, +struct cmd_debugfs_fileop_response { + uint32_t reserved; + uint32_t nbytes; }; -struct imx_sc_msg_rm_rsrc_owned { - struct imx_sc_rpc_msg hdr; - u16 resource; - long: 0; +struct cmd_debugfs_dumpdir_response { + uint32_t reserved; + uint32_t nbytes; }; -struct imx_sc_msg_rm_get_resource_owner { - struct imx_sc_rpc_msg hdr; +struct mrq_debugfs_response { + int32_t reserved; union { - struct { - u16 resource; - } req; - struct { - u8 val; - } resp; - } data; - long: 0; + struct cmd_debugfs_fileop_response fop; + struct cmd_debugfs_dumpdir_response dumpdir; + }; }; -struct psci_operations { - u32 (*get_version)(); - int (*cpu_suspend)(u32, unsigned long); - int (*cpu_off)(u32); - int (*cpu_on)(unsigned long, unsigned long); - int (*migrate)(unsigned long); - int (*affinity_info)(unsigned long, unsigned long); - int (*migrate_info_type)(); +struct cmd_debug_fopen_request { + char name[116]; }; -typedef unsigned long psci_fn(unsigned long, unsigned long, unsigned long, unsigned long); - -struct psci_0_1_function_ids { - u32 cpu_suspend; - u32 cpu_on; - u32 cpu_off; - u32 migrate; +struct cmd_debug_fread_request { + uint32_t fd; }; -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 cmd_debug_fwrite_request { + uint32_t fd; + uint32_t datalen; + char data[108]; }; -typedef int (*psci_initcall_t)(const struct device_node *); - -enum lg_g15_model { - LG_G15 = 0, - LG_G15_V2 = 1, - LG_G510 = 2, - LG_G510_USB_AUDIO = 3, - LG_Z10 = 4, +struct cmd_debug_fclose_request { + uint32_t fd; }; -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 mrq_debug_request { + uint32_t cmd; + union { + struct cmd_debug_fopen_request fop; + struct cmd_debug_fread_request frd; + struct cmd_debug_fwrite_request fwr; + struct cmd_debug_fclose_request fcl; + }; }; -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 cmd_debug_fopen_response { + uint32_t fd; + uint32_t datalen; }; -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 cmd_debug_fread_response { + uint32_t readlen; + char data[116]; }; -struct hwspinlock_device; - -struct hwspinlock { - struct hwspinlock_device *bank; - spinlock_t lock; - void *priv; +struct mrq_debug_response { + union { + struct cmd_debug_fopen_response fop; + struct cmd_debug_fread_response frd; + }; }; -struct hwspinlock_ops; - -struct hwspinlock_device { - struct device *dev; - const struct hwspinlock_ops *ops; - int base_id; - int num_locks; - struct hwspinlock lock[0]; +enum { + MAGNITUDE_STRONG = 2, + MAGNITUDE_WEAK = 3, + MAGNITUDE_NUM = 4, }; -struct hwspinlock_ops { - int (*trylock)(struct hwspinlock *); - void (*unlock)(struct hwspinlock *); - void (*relax)(struct hwspinlock *); +struct ms_data { + unsigned long quirks; + struct hid_device *hdev; + struct work_struct ff_worker; + __u8 strong; + __u8 weak; + void *output_report_dmabuf; }; -enum iio_buffer_direction { - IIO_BUFFER_DIRECTION_IN = 0, - IIO_BUFFER_DIRECTION_OUT = 1, +struct xb1s_ff_report { + __u8 report_id; + __u8 enable; + __u8 magnitude[4]; + __u8 duration_10ms; + __u8 start_delay_10ms; + __u8 loop_count; }; -struct iio_buffer_access_funcs; - -struct iio_dev_attr; +struct arm_mhu___2; -struct iio_buffer { - unsigned int length; - unsigned long flags; - size_t bytes_per_datum; - enum iio_buffer_direction direction; - const struct iio_buffer_access_funcs *access; - long *scan_mask; - struct list_head demux_list; - wait_queue_head_t pollq; - unsigned int watermark; - bool scan_timestamp; - struct list_head buffer_attr_list; - struct attribute_group buffer_group; - const struct iio_dev_attr **attrs; - void *demux_bounce; - struct list_head attached_entry; - struct list_head buffer_list; - struct kref ref; +struct mhu_db_channel { + struct arm_mhu___2 *mhu; + unsigned int pchan; + unsigned int doorbell; }; -struct iio_buffer_access_funcs { - int (*store_to)(struct iio_buffer *, const void *); - int (*read)(struct iio_buffer *, size_t, char __attribute__((btf_type_tag("user"))) *); - size_t (*data_available)(struct iio_buffer *); - int (*remove_from)(struct iio_buffer *, void *); - int (*write)(struct iio_buffer *, size_t, const char __attribute__((btf_type_tag("user"))) *); - size_t (*space_available)(struct iio_buffer *); - int (*request_update)(struct iio_buffer *); - int (*set_bytes_per_datum)(struct iio_buffer *, size_t); - int (*set_length)(struct iio_buffer *, unsigned int); - int (*enable)(struct iio_buffer *, struct iio_dev *); - int (*disable)(struct iio_buffer *, struct iio_dev *); - void (*release)(struct iio_buffer *); - unsigned int modes; - unsigned int flags; +struct mhu_db_link { + unsigned int irq; + void *tx_reg; + void *rx_reg; }; -struct iio_dev_attr { - struct device_attribute dev_attr; - u64 address; - struct list_head l; - const struct iio_chan_spec *c; - struct iio_buffer *buffer; +struct arm_mhu___2 { + void *base; + struct mhu_db_link mlink[3]; + struct mbox_controller mbox; + struct device *dev; }; -struct iio_mount_matrix { - const char *rotation[9]; +struct rpmsg_channel_info { + char name[32]; + u32 src; + u32 dst; }; -enum iio_available_type { - IIO_AVAIL_LIST = 0, - IIO_AVAIL_RANGE = 1, +enum rpmsg_ns_flags { + RPMSG_NS_CREATE = 0, + RPMSG_NS_DESTROY = 1, }; -struct iio_event_interface; - -struct iio_ioctl_handler; +typedef __u32 __rpmsg32; -struct iio_dev_opaque { - struct iio_dev indio_dev; - int currentmode; - int id; - struct module *driver_module; - struct mutex mlock; - struct lock_class_key mlock_key; - struct mutex info_exist_lock; - bool trig_readonly; - struct iio_event_interface *event_interface; - struct iio_buffer **attached_buffers; - unsigned int attached_buffers_cnt; - struct iio_ioctl_handler *buffer_ioctl_handler; - struct list_head buffer_list; - struct list_head channel_attr_list; - struct attribute_group chan_attr_group; - struct list_head ioctl_handlers; - const struct attribute_group **groups; - int groupcounter; - struct attribute_group legacy_scan_el_group; - struct attribute_group legacy_buffer_group; - void *bounce_buffer; - size_t bounce_buffer_size; - unsigned int scan_index_timestamp; - clockid_t clock_id; - struct cdev chrdev; - unsigned long flags; - struct dentry *debugfs_dentry; - unsigned int cached_reg_addr; - char read_buf[20]; - unsigned int read_buf_len; +struct rpmsg_ns_msg { + char name[32]; + __rpmsg32 addr; + __rpmsg32 flags; }; -struct iio_ioctl_handler { - struct list_head entry; - long (*ioctl)(struct iio_dev *, struct file *, unsigned int, unsigned long); +enum mrq_bwmgr_int_cmd { + CMD_BWMGR_INT_QUERY_ABI = 1, + CMD_BWMGR_INT_CALC_AND_SET = 2, + CMD_BWMGR_INT_CAP_SET = 3, }; -struct iio_const_attr { - const char *string; - struct device_attribute dev_attr; +struct cmd_bwmgr_int_query_abi_request { + uint32_t type; }; -struct iio_enum { - const char * const *items; - unsigned int num_items; - int (*set)(struct iio_dev *, const struct iio_chan_spec *, unsigned int); - int (*get)(struct iio_dev *, const struct iio_chan_spec *); +struct cmd_bwmgr_int_calc_and_set_request { + uint32_t client_id; + uint32_t niso_bw; + uint32_t iso_bw; + uint32_t mc_floor; + uint8_t floor_unit; +} __attribute__((packed)); + +struct cmd_bwmgr_int_cap_set_request { + uint64_t rate; }; -typedef const struct iio_mount_matrix *iio_get_mount_matrix_t(const struct iio_dev *, const struct iio_chan_spec *); +struct mrq_bwmgr_int_request { + uint32_t cmd; + union { + struct cmd_bwmgr_int_query_abi_request query_abi; + struct cmd_bwmgr_int_calc_and_set_request bwmgr_calc_set_req; + struct cmd_bwmgr_int_cap_set_request bwmgr_cap_set_req; + }; +} __attribute__((packed)); -struct iio_event_data { - __u64 id; - __s64 timestamp; +struct cmd_bwmgr_int_calc_and_set_response { + uint64_t rate; }; -struct iio_event_interface { - wait_queue_head_t wait; - struct { - union { - struct __kfifo kfifo; - struct iio_event_data *type; - const struct iio_event_data *const_type; - char (*rectype)[0]; - struct iio_event_data *ptr; - const struct iio_event_data *ptr_const; - }; - struct iio_event_data buf[16]; - } det_events; - struct list_head dev_attr_list; - unsigned long flags; - struct attribute_group group; - struct mutex read_lock; - struct iio_ioctl_handler ioctl_handler; +struct mrq_bwmgr_int_response { + union { + struct cmd_bwmgr_int_calc_and_set_response bwmgr_calc_set_resp; + }; }; -struct iio_dev_buffer_pair { - struct iio_dev *indio_dev; - struct iio_buffer *buffer; +struct l3cache_event_ops { + void (*start)(struct perf_event *); + void (*stop)(struct perf_event *, int); + void (*update)(struct perf_event *); }; -struct optee_session { - struct list_head list_node; - u32 session_id; +struct l3cache_pmu { + struct pmu pmu; + struct hlist_node node; + void *regs; + struct perf_event *events[8]; + unsigned long used_mask[1]; + cpumask_t cpumask; }; -struct optee_context_data { - struct mutex mutex; - struct list_head sess_list; -}; +struct optee_rpc_param; -struct optee_supp { - struct mutex mutex; - struct tee_context *ctx; - int req_id; - struct list_head reqs; - struct idr idr; - struct completion reqs_c; +typedef void (*btf_trace_optee_invoke_fn_begin)(void *, struct optee_rpc_param *); + +struct optee_rpc_param { + u32 a0; + u32 a1; + u32 a2; + u32 a3; + u32 a4; + u32 a5; + u32 a6; + u32 a7; }; -struct tee_shm_pool_ops; +typedef void (*btf_trace_optee_invoke_fn_end)(void *, struct optee_rpc_param *, struct arm_smccc_res *); -struct tee_shm_pool { - const struct tee_shm_pool_ops *ops; - void *private_data; -}; +struct tee_shm_pool; struct tee_shm_pool_ops { int (*alloc)(struct tee_shm_pool *, struct tee_shm *, size_t, size_t); @@ -116632,6 +113666,23 @@ struct tee_shm_pool_ops { void (*destroy_pool)(struct tee_shm_pool *); }; +struct tee_shm_pool { + const struct tee_shm_pool_ops *ops; + void *private_data; +}; + +typedef unsigned int u_int; + +struct optee; + +struct optee_msg_param; + +struct optee_ops { + int (*do_call_with_arg)(struct tee_context *, struct tee_shm *, u_int); + int (*to_msg_param)(struct optee *, struct optee_msg_param *, size_t, const struct tee_param *); + int (*from_msg_param)(struct optee *, struct tee_param *, size_t, const struct optee_msg_param *); +}; + typedef void optee_invoke_fn(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, struct arm_smccc_res *); struct optee_pcpu; @@ -116666,6 +113717,8 @@ struct optee_call_queue { struct list_head waiters; }; +typedef unsigned long u_long; + struct optee_notif { u_int max_key; spinlock_t lock; @@ -116673,7 +113726,14 @@ struct optee_notif { u_long *bitmap; }; -struct optee_ops; +struct optee_supp { + struct mutex mutex; + struct tee_context *ctx; + int req_id; + struct list_head reqs; + struct idr idr; + struct completion reqs_c; +}; struct optee { struct tee_device *supp_teedev; @@ -116695,12 +113755,8 @@ struct optee { struct work_struct scan_bus_work; }; -struct optee_msg_param; - -struct optee_ops { - int (*do_call_with_arg)(struct tee_context *, struct tee_shm *, u_int); - int (*to_msg_param)(struct optee *, struct optee_msg_param *, size_t, const struct tee_param *); - int (*from_msg_param)(struct optee *, struct tee_param *, size_t, const struct optee_msg_param *); +struct optee_pcpu { + struct optee *optee; }; struct optee_msg_param_tmem { @@ -116740,2881 +113796,3559 @@ struct optee_msg_param { } u; }; -struct optee_pcpu { - struct optee *optee; +struct tee_driver_ops; + +struct tee_desc { + const char *name; + const struct tee_driver_ops *ops; + struct module *owner; + u32 flags; }; -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 tee_driver_ops { + void (*get_version)(struct tee_device *, struct tee_ioctl_version_data *); + int (*open)(struct tee_context *); + void (*release)(struct tee_context *); + int (*open_session)(struct tee_context *, struct tee_ioctl_open_session_arg *, struct tee_param *); + int (*close_session)(struct tee_context *, u32); + int (*invoke_func)(struct tee_context *, struct tee_ioctl_invoke_arg *, struct tee_param *); + int (*cancel_req)(struct tee_context *, u32, u32); + int (*supp_recv)(struct tee_context *, u32 *, u32 *, struct tee_param *); + int (*supp_send)(struct tee_context *, u32, u32, struct tee_param *); + int (*shm_register)(struct tee_context *, struct tee_shm *, struct page **, size_t, unsigned long); + int (*shm_unregister)(struct tee_context *, struct tee_shm *); }; -struct sd_flow_limit; +struct trace_event_raw_optee_invoke_fn_begin { + struct trace_entry ent; + void *param; + u32 args[8]; + char __data[0]; +}; -struct softnet_data { - struct list_head poll_list; - struct sk_buff_head process_queue; - unsigned int processed; - unsigned int time_squeeze; - struct softnet_data *rps_ipi_list; - bool in_net_rx_action; - bool in_napi_threaded_poll; - struct sd_flow_limit __attribute__((btf_type_tag("rcu"))) *flow_limit; - struct Qdisc *output_queue; - struct Qdisc **output_queue_tailp; - struct sk_buff *completion_queue; - struct { - u16 recursion; - u8 more; - u8 skip_txqueue; - } xmit; - long: 64; - long: 64; - long: 64; - unsigned int input_queue_head; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - call_single_data_t csd; - struct softnet_data *rps_ipi_next; - unsigned int cpu; - unsigned int input_queue_tail; - unsigned int received_rps; - unsigned int dropped; - struct sk_buff_head input_pkt_queue; - struct napi_struct backlog; - long: 64; - long: 64; - long: 64; - long: 64; - 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 trace_event_raw_optee_invoke_fn_end { + struct trace_entry ent; + void *param; + unsigned long rets[4]; + char __data[0]; }; -struct sd_flow_limit { - u64 count; - unsigned int num_buckets; - unsigned int history_head; - u16 history[128]; - u8 buckets[0]; +struct optee_smc_call_get_os_revision_result { + unsigned long major; + unsigned long minor; + unsigned long build_id; + unsigned long reserved1; }; -enum tc_fifo_command { - TC_FIFO_REPLACE = 0, - TC_FIFO_DESTROY = 1, - TC_FIFO_STATS = 2, +struct optee_smc_calls_revision_result { + unsigned long major; + unsigned long minor; + unsigned long reserved0; + unsigned long reserved1; }; -struct tc_fifo_qopt { - __u32 limit; +struct optee_smc_exchange_capabilities_result { + unsigned long status; + unsigned long capabilities; + unsigned long max_notif_value; + unsigned long data; }; -struct tc_fifo_qopt_offload { - enum tc_fifo_command command; - u32 handle; - u32 parent; - union { - struct tc_qopt_offload_stats stats; - }; +struct optee_smc_get_shm_config_result { + unsigned long status; + unsigned long start; + unsigned long size; + unsigned long settings; +}; + +struct optee_smc_disable_shm_cache_result { + unsigned long status; + unsigned long shm_upper32; + unsigned long shm_lower32; + unsigned long reserved0; +}; + +struct optee_call_waiter { + struct list_head list_node; + struct completion c; +}; + +struct optee_msg_arg { + u32 cmd; + u32 func; + u32 session; + u32 cancel_id; + u32 pad; + u32 ret; + u32 ret_origin; + u32 num_params; + struct optee_msg_param params[0]; +}; + +struct optee_call_ctx { + void *pages_list; + size_t num_entries; }; +struct trace_event_data_offsets_optee_invoke_fn_begin {}; + +struct trace_event_data_offsets_optee_invoke_fn_end {}; + 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, + 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 eee_reply_data { - struct ethnl_reply_data base; - struct ethtool_eee eee; +struct gnet_stats_basic { + __u64 bytes; + __u32 packets; }; -struct tcp_metrics_block; +struct gnet_stats_rate_est { + __u32 bps; + __u32 pps; +}; -struct tcpm_hash_bucket { - struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *chain; +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 ipv4_addr_key { - __be32 addr; - int vif; +struct netdev_queue_attribute { + struct attribute attr; + ssize_t (*show)(struct netdev_queue *, char *); + ssize_t (*store)(struct netdev_queue *, const char *, size_t); }; -struct inetpeer_addr { - union { - struct ipv4_addr_key a4; - struct in6_addr a6; - u32 key[4]; - }; - __u16 family; +enum xps_map_type { + XPS_CPUS = 0, + XPS_RXQS = 1, + XPS_MAPS_MAX = 2, }; -struct tcp_fastopen_metrics { - u16 mss; - u16 syn_loss: 10; - u16 try_exp: 2; - unsigned long last_syn_loss; - struct tcp_fastopen_cookie cookie; +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 tcp_metrics_block { - struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *tcpm_next; - struct net *tcpm_net; - struct inetpeer_addr tcpm_saddr; - struct inetpeer_addr tcpm_daddr; - unsigned long tcpm_stamp; - u32 tcpm_lock; - u32 tcpm_vals[5]; - struct tcp_fastopen_metrics tcpm_fastopen; - struct callback_head callback_head; +struct debug_reply_data { + struct ethnl_reply_data base; + u32 msg_mask; }; -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_fastopen_client_fail { + TFO_STATUS_UNSPEC = 0, + TFO_COOKIE_UNAVAILABLE = 1, + TFO_DATA_NOT_ACKED = 2, + TFO_SYN_RETRANSMITTED = 3, +}; + +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 *); }; 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, + INET_DIAG_REQ_NONE = 0, + INET_DIAG_REQ_BYTECODE = 1, + INET_DIAG_REQ_SK_BPF_STORAGES = 2, + INET_DIAG_REQ_PROTOCOL = 3, + __INET_DIAG_REQ_MAX = 4, }; enum { - TCP_METRICS_CMD_UNSPEC = 0, - TCP_METRICS_CMD_GET = 1, - TCP_METRICS_CMD_DEL = 2, - __TCP_METRICS_CMD_MAX = 3, + SK_MEMINFO_RMEM_ALLOC = 0, + SK_MEMINFO_RCVBUF = 1, + SK_MEMINFO_WMEM_ALLOC = 2, + SK_MEMINFO_SNDBUF = 3, + SK_MEMINFO_FWD_ALLOC = 4, + SK_MEMINFO_WMEM_QUEUED = 5, + SK_MEMINFO_OPTMEM = 6, + SK_MEMINFO_BACKLOG = 7, + SK_MEMINFO_DROPS = 8, + SK_MEMINFO_VARS = 9, }; -struct ic_device { - struct ic_device *next; - struct net_device *dev; - unsigned short flags; - short able; - __be32 xid; +enum { + INET_DIAG_BC_NOP = 0, + INET_DIAG_BC_JMP = 1, + INET_DIAG_BC_S_GE = 2, + INET_DIAG_BC_S_LE = 3, + INET_DIAG_BC_D_GE = 4, + INET_DIAG_BC_D_LE = 5, + INET_DIAG_BC_AUTO = 6, + INET_DIAG_BC_S_COND = 7, + INET_DIAG_BC_D_COND = 8, + INET_DIAG_BC_DEV_COND = 9, + INET_DIAG_BC_MARK_COND = 10, + INET_DIAG_BC_S_EQ = 11, + INET_DIAG_BC_D_EQ = 12, + INET_DIAG_BC_CGROUP_COND = 13, }; -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 inet_diag_hostcond { + __u8 family; + __u8 prefix_len; + int port; + __be32 addr[0]; }; -struct xdr_skb_reader { - struct sk_buff *skb; - unsigned int offset; - size_t count; - __wsum csum; +struct inet_diag_markcond { + __u32 mark; + __u32 mask; }; -typedef size_t (*xdr_skb_read_actor)(struct xdr_skb_reader *, void *, size_t); +struct bpf_sk_storage_diag; -typedef void (*btf_trace_rpcgss_import_ctx)(void *, int); +struct inet_diag_dump_data { + struct nlattr *req_nlas[4]; + struct bpf_sk_storage_diag *bpf_stg_diag; +}; -typedef void (*btf_trace_rpcgss_get_mic)(void *, const struct rpc_task *, u32); +struct inet_diag_entry { + const __be32 *saddr; + const __be32 *daddr; + u16 sport; + u16 dport; + u16 family; + u16 userlocks; + u32 ifindex; + u32 mark; + u64 cgroup_id; +}; -typedef void (*btf_trace_rpcgss_verify_mic)(void *, const struct rpc_task *, u32); +struct inet_diag_bc_op { + unsigned char code; + unsigned char yes; + unsigned short no; +}; -typedef void (*btf_trace_rpcgss_wrap)(void *, const struct rpc_task *, u32); +struct inet_diag_req { + __u8 idiag_family; + __u8 idiag_src_len; + __u8 idiag_dst_len; + __u8 idiag_ext; + struct inet_diag_sockid id; + __u32 idiag_states; + __u32 idiag_dbs; +}; -typedef void (*btf_trace_rpcgss_unwrap)(void *, const struct rpc_task *, u32); +struct inet_diag_sockopt { + __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 unused: 5; +}; -typedef void (*btf_trace_rpcgss_ctx_init)(void *, const struct gss_cred *); +struct inet_diag_meminfo { + __u32 idiag_rmem; + __u32 idiag_wmem; + __u32 idiag_fmem; + __u32 idiag_tmem; +}; -typedef void (*btf_trace_rpcgss_ctx_destroy)(void *, const struct gss_cred *); +enum dbg_active_el { + DBG_ACTIVE_EL0 = 0, + DBG_ACTIVE_EL1 = 1, +}; -typedef void (*btf_trace_rpcgss_svc_wrap)(void *, const struct svc_rqst *, u32); +typedef void (*btf_trace_vgic_update_irq_pending)(void *, unsigned long, __u32, bool); -typedef void (*btf_trace_rpcgss_svc_unwrap)(void *, const struct svc_rqst *, u32); +struct vgic_global { + enum vgic_type type; + phys_addr_t vcpu_base; + void *vcpu_base_va; + void *vcpu_hyp_va; + void *vctrl_base; + void *vctrl_hyp; + int nr_lr; + unsigned int maint_irq; + int max_gic_vcpus; + bool can_emulate_gicv2; + bool has_gicv4; + bool has_gicv4_1; + bool no_hw_deactivation; + struct static_key_false gicv3_cpuif; + u32 ich_vtr_el2; +}; -typedef void (*btf_trace_rpcgss_svc_mic)(void *, const struct svc_rqst *, u32); +struct trace_event_raw_vgic_update_irq_pending { + struct trace_entry ent; + unsigned long vcpu_id; + __u32 irq; + bool level; + char __data[0]; +}; -typedef void (*btf_trace_rpcgss_svc_get_mic)(void *, const struct svc_rqst *, u32); +struct trace_event_data_offsets_vgic_update_irq_pending {}; -typedef void (*btf_trace_rpcgss_svc_wrap_failed)(void *, const struct svc_rqst *); +enum exception_type { + except_type_sync = 0, + except_type_irq = 128, + except_type_fiq = 256, + except_type_serror = 384, +}; -typedef void (*btf_trace_rpcgss_svc_unwrap_failed)(void *, const struct svc_rqst *); +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)(); +}; -typedef void (*btf_trace_rpcgss_svc_seqno_bad)(void *, const struct svc_rqst *, u32, u32); +enum { + HIBERNATION_INVALID = 0, + HIBERNATION_PLATFORM = 1, + HIBERNATION_SHUTDOWN = 2, + HIBERNATION_REBOOT = 3, + HIBERNATION_SUSPEND = 4, + HIBERNATION_TEST_RESUME = 5, + __HIBERNATION_AFTER_LAST = 6, +}; -typedef void (*btf_trace_rpcgss_svc_accept_upcall)(void *, const struct svc_rqst *, u32, u32); +enum { + TEST_NONE = 0, + TEST_CORE = 1, + TEST_CPUS = 2, + TEST_PLATFORM = 3, + TEST_DEVICES = 4, + TEST_FREEZER = 5, + __TEST_AFTER_LAST = 6, +}; -struct rpc_gss_wire_cred; +struct cma { + unsigned long base_pfn; + unsigned long count; + unsigned long *bitmap; + unsigned int order_per_bit; + spinlock_t lock; + char name[64]; + bool reserve_pages_on_error; +}; -typedef void (*btf_trace_rpcgss_svc_authenticate)(void *, const struct svc_rqst *, const struct rpc_gss_wire_cred *); +enum tick_nohz_mode { + NOHZ_MODE_INACTIVE = 0, + NOHZ_MODE_LOWRES = 1, + NOHZ_MODE_HIGHRES = 2, +}; -struct rpc_gss_wire_cred { - u32 gc_v; - u32 gc_proc; - u32 gc_seq; - u32 gc_svc; - struct xdr_netobj gc_ctx; +struct tick_sched { + 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; + unsigned int stalled_jiffies; + unsigned long last_tick_jiffies; + struct hrtimer sched_timer; + ktime_t last_tick; + ktime_t next_tick; + unsigned long idle_jiffies; + ktime_t idle_waketime; + seqcount_t idle_sleeptime_seq; + ktime_t idle_entrytime; + enum tick_nohz_mode nohz_mode; + unsigned long last_jiffies; + u64 timer_expires_base; + u64 timer_expires; + u64 next_timer; + ktime_t idle_expires; + unsigned long idle_calls; + unsigned long idle_sleeps; + ktime_t idle_exittime; + ktime_t idle_sleeptime; + ktime_t iowait_sleeptime; + atomic_t tick_dep_mask; + unsigned long check_clocks; }; -typedef void (*btf_trace_rpcgss_unwrap_failed)(void *, const struct rpc_task *); +enum rdmacg_resource_type { + RDMACG_RESOURCE_HCA_HANDLE = 0, + RDMACG_RESOURCE_HCA_OBJECT = 1, + RDMACG_RESOURCE_MAX = 2, +}; -typedef void (*btf_trace_rpcgss_bad_seqno)(void *, const struct rpc_task *, u32, u32); +enum rdmacg_file_type { + RDMACG_RESOURCE_TYPE_MAX = 0, + RDMACG_RESOURCE_TYPE_STAT = 1, +}; -typedef void (*btf_trace_rpcgss_seqno)(void *, const struct rpc_task *); +struct rdmacg_resource { + int max; + int usage; +}; -typedef void (*btf_trace_rpcgss_need_reencode)(void *, const struct rpc_task *, u32, bool); +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; +}; -typedef void (*btf_trace_rpcgss_update_slack)(void *, const struct rpc_task *, const struct rpc_auth *); +struct idmap_key { + bool map_up; + u32 id; + u32 count; +}; -typedef void (*btf_trace_rpcgss_svc_seqno_large)(void *, const struct svc_rqst *, u32); +struct trace_export { + struct trace_export __attribute__((btf_type_tag("rcu"))) *next; + void (*write)(struct trace_export *, const void *, unsigned int); + int flags; +}; -typedef void (*btf_trace_rpcgss_svc_seqno_seen)(void *, const struct svc_rqst *, u32); +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; +}; -typedef void (*btf_trace_rpcgss_svc_seqno_low)(void *, const struct svc_rqst *, u32, u32, u32); +struct ftrace_stack { + unsigned long calls[1024]; +}; -typedef void (*btf_trace_rpcgss_upcall_msg)(void *, const char *); +struct ftrace_stacks { + struct ftrace_stack stacks[4]; +}; -typedef void (*btf_trace_rpcgss_upcall_result)(void *, u32, int); +struct trace_buffer_struct { + int nesting; + char buffer[4096]; +}; -typedef void (*btf_trace_rpcgss_context)(void *, u32, unsigned long, unsigned long, unsigned int, unsigned int, const u8 *); +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, +}; -typedef void (*btf_trace_rpcgss_createauth)(void *, unsigned int, int); +enum trace_iter_flags { + TRACE_FILE_LAT_FMT = 1, + TRACE_FILE_ANNOTATE = 2, + TRACE_FILE_TIME_IN_NS = 4, +}; -typedef void (*btf_trace_rpcgss_oid_to_mech)(void *, const char *); +enum { + EVENT_FILE_FL_ENABLED_BIT = 0, + EVENT_FILE_FL_RECORDED_CMD_BIT = 1, + EVENT_FILE_FL_RECORDED_TGID_BIT = 2, + EVENT_FILE_FL_FILTERED_BIT = 3, + EVENT_FILE_FL_NO_SET_FILTER_BIT = 4, + EVENT_FILE_FL_SOFT_MODE_BIT = 5, + EVENT_FILE_FL_SOFT_DISABLED_BIT = 6, + EVENT_FILE_FL_TRIGGER_MODE_BIT = 7, + EVENT_FILE_FL_TRIGGER_COND_BIT = 8, + EVENT_FILE_FL_PID_FILTER_BIT = 9, + EVENT_FILE_FL_WAS_ENABLED_BIT = 10, + EVENT_FILE_FL_FREED_BIT = 11, +}; -struct trace_event_raw_rpcgss_import_ctx { - struct trace_entry ent; - int status; - char __data[0]; +enum die_val { + DIE_UNUSED = 0, + DIE_OOPS = 1, }; -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 err_info { + const char **errs; + u8 type; + u16 pos; + u64 ts; }; -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 tracing_log_err { + struct list_head list; + struct err_info info; + char loc[128]; + char *cmd; }; -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 buffer_ref { + struct trace_buffer *buffer; + void *page; + int cpu; + refcount_t refcount; }; -struct trace_event_raw_rpcgss_svc_wrap_failed { - struct trace_entry ent; - u32 xid; - u32 __data_loc_addr; - char __data[0]; +struct trace_parser { + bool cont; + char *buffer; + unsigned int idx; + unsigned int size; }; -struct trace_event_raw_rpcgss_svc_unwrap_failed { +struct func_repeats_entry { struct trace_entry ent; - u32 xid; - u32 __data_loc_addr; - char __data[0]; + unsigned long ip; + unsigned long parent_ip; + u16 count; + u16 top_delta_ts; + u32 bottom_delta_ts; }; -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]; +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 trace_event_raw_rpcgss_svc_accept_upcall { +struct partial_page { + unsigned int offset; + unsigned int len; + unsigned long private; +}; + +struct print_entry { struct trace_entry ent; - u32 minor_status; - unsigned long major_status; - u32 xid; - u32 __data_loc_addr; - char __data[0]; + unsigned long ip; + char buf[0]; }; -struct trace_event_raw_rpcgss_svc_authenticate { +struct bputs_entry { struct trace_entry ent; - u32 seqno; - u32 xid; - u32 __data_loc_addr; - char __data[0]; + unsigned long ip; + const char *str; }; -struct trace_event_raw_rpcgss_unwrap_failed { +typedef bool (*cond_update_fn_t)(struct trace_array *, void *); + +struct ftrace_entry { struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - char __data[0]; + unsigned long ip; + unsigned long parent_ip; }; -struct trace_event_raw_rpcgss_bad_seqno { +struct stack_entry { struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - u32 expected; - u32 received; - char __data[0]; + int size; + unsigned long caller[0]; }; -struct trace_event_raw_rpcgss_seqno { +struct bprint_entry { struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - u32 xid; - u32 seqno; - char __data[0]; + unsigned long ip; + const char *fmt; + u32 buf[0]; }; -struct trace_event_raw_rpcgss_need_reencode { +struct trace_min_max_param { + struct mutex *lock; + u64 *val; + u64 *min; + u64 *max; +}; + +struct raw_data_entry { struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - u32 xid; - u32 seq_xmit; - u32 seqno; - bool ret; - char __data[0]; + unsigned int id; + char buf[0]; }; -struct trace_event_raw_rpcgss_update_slack { +struct ftrace_buffer_info { + struct trace_iterator iter; + void *spare; + unsigned int spare_cpu; + unsigned int read; +}; + +struct bpf_mprog_cp { + struct bpf_link *link; +}; + +struct bpf_mprog_bundle { + struct bpf_mprog_entry a; + struct bpf_mprog_entry b; + struct bpf_mprog_cp cp_items[64]; + struct bpf_prog *ref; + atomic64_t revision; + u32 count; +}; + +struct bpf_tuple { + struct bpf_prog *prog; + struct bpf_link *link; +}; + +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); + +typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64); + +typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t); + +typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t); + +typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t); + +typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *); + +struct bpf_cgroup_link; + +struct bpf_prog_list { + struct hlist_node node; + struct bpf_prog *prog; + struct bpf_cgroup_link *link; + struct bpf_cgroup_storage *storage[2]; +}; + +struct bpf_cgroup_link { + struct bpf_link link; + struct cgroup *cgroup; + enum bpf_attach_type type; +}; + +struct bpf_cg_run_ctx { + struct bpf_run_ctx run_ctx; + const struct bpf_prog_array_item *prog_item; + int retval; +}; + +struct bpf_link_primer { + struct bpf_link *link; + struct file *file; + int fd; + u32 id; +}; + +struct bpf_sockopt_buf { + u8 data[32]; +}; + +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, +}; + +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, +}; + +typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool); + +struct trace_event_raw_oom_score_adj_update { struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - u32 xid; - const void *auth; - unsigned int rslack; - unsigned int ralign; - unsigned int verfsize; + pid_t pid; + char comm[16]; + short oom_score_adj; char __data[0]; }; -struct trace_event_raw_rpcgss_svc_seqno_class { +struct trace_event_raw_reclaim_retry_zone { struct trace_entry ent; - u32 xid; - u32 seqno; + 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_rpcgss_svc_seqno_low { +struct trace_event_raw_mark_victim { struct trace_entry ent; - u32 xid; - u32 seqno; - u32 min; - u32 max; + int pid; char __data[0]; }; -struct trace_event_raw_rpcgss_upcall_msg { +struct trace_event_raw_wake_reaper { struct trace_entry ent; - u32 __data_loc_msg; + int pid; char __data[0]; }; -struct trace_event_raw_rpcgss_upcall_result { +struct trace_event_raw_start_task_reaping { struct trace_entry ent; - u32 uid; - int result; + int pid; char __data[0]; }; -struct trace_event_raw_rpcgss_context { +struct trace_event_raw_finish_task_reaping { struct trace_entry ent; - unsigned long expiry; - unsigned long now; - unsigned int timeout; - u32 window_size; - int len; - u32 __data_loc_acceptor; + int pid; char __data[0]; }; -struct trace_event_raw_rpcgss_createauth { - struct trace_entry ent; - unsigned int flavor; - int error; +struct trace_event_raw_skip_task_reaping { + struct trace_entry ent; + int pid; char __data[0]; }; -struct trace_event_raw_rpcgss_oid_to_mech { +struct trace_event_raw_compact_retry { struct trace_entry ent; - u32 __data_loc_oid; + int order; + int priority; + int result; + int retries; + int max_retries; + bool ret; char __data[0]; }; -struct trace_event_data_offsets_rpcgss_ctx_class { - u32 principal; -}; +struct trace_event_data_offsets_oom_score_adj_update {}; -struct trace_event_data_offsets_rpcgss_svc_gssapi_class { - u32 addr; -}; +struct trace_event_data_offsets_reclaim_retry_zone {}; -struct trace_event_data_offsets_rpcgss_svc_wrap_failed { - u32 addr; +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 memory_dev_type; + +struct node_memory_type_map { + struct memory_dev_type *memtype; + int map_count; }; -struct trace_event_data_offsets_rpcgss_svc_unwrap_failed { - u32 addr; +struct memory_dev_type { + struct list_head tier_sibling; + struct list_head list; + int adistance; + nodemask_t nodes; + struct kref kref; }; -struct trace_event_data_offsets_rpcgss_svc_seqno_bad { - u32 addr; +struct demotion_nodes { + nodemask_t preferred; }; -struct trace_event_data_offsets_rpcgss_svc_accept_upcall { - u32 addr; +struct node_hmem_attrs { + unsigned int read_bandwidth; + unsigned int write_bandwidth; + unsigned int read_latency; + unsigned int write_latency; }; -struct trace_event_data_offsets_rpcgss_svc_authenticate { - u32 addr; +struct stat { + unsigned long st_dev; + unsigned long st_ino; + unsigned int st_mode; + unsigned int st_nlink; + unsigned int st_uid; + unsigned int st_gid; + unsigned long st_rdev; + unsigned long __pad1; + long st_size; + int st_blksize; + int __pad2; + long st_blocks; + long st_atime; + unsigned long st_atime_nsec; + long st_mtime; + unsigned long st_mtime_nsec; + long st_ctime; + unsigned long st_ctime_nsec; + unsigned int __unused4; + unsigned int __unused5; }; -struct trace_event_data_offsets_rpcgss_upcall_msg { - u32 msg; +typedef u64 compat_u64; + +typedef s64 compat_s64; + +struct stat64 { + compat_u64 st_dev; + unsigned char __pad0[4]; + compat_ulong_t __st_ino; + compat_uint_t st_mode; + compat_uint_t st_nlink; + compat_ulong_t st_uid; + compat_ulong_t st_gid; + compat_u64 st_rdev; + unsigned char __pad3[4]; + compat_s64 st_size; + compat_ulong_t st_blksize; + compat_u64 st_blocks; + compat_ulong_t st_atime; + compat_ulong_t st_atime_nsec; + compat_ulong_t st_mtime; + compat_ulong_t st_mtime_nsec; + compat_ulong_t st_ctime; + compat_ulong_t st_ctime_nsec; + compat_u64 st_ino; }; -struct trace_event_data_offsets_rpcgss_context { - u32 acceptor; +struct statx_timestamp { + __s64 tv_sec; + __u32 tv_nsec; + __s32 __reserved; }; -struct trace_event_data_offsets_rpcgss_oid_to_mech { - u32 oid; +struct statx { + __u32 stx_mask; + __u32 stx_blksize; + __u64 stx_attributes; + __u32 stx_nlink; + __u32 stx_uid; + __u32 stx_gid; + __u16 stx_mode; + __u16 __spare0[1]; + __u64 stx_ino; + __u64 stx_size; + __u64 stx_blocks; + __u64 stx_attributes_mask; + struct statx_timestamp stx_atime; + struct statx_timestamp stx_btime; + struct statx_timestamp stx_ctime; + struct statx_timestamp stx_mtime; + __u32 stx_rdev_major; + __u32 stx_rdev_minor; + __u32 stx_dev_major; + __u32 stx_dev_minor; + __u64 stx_mnt_id; + __u32 stx_dio_mem_align; + __u32 stx_dio_offset_align; + __u64 __spare3[12]; }; -struct trace_event_data_offsets_rpcgss_gssapi_event {}; +typedef u32 compat_dev_t; -struct trace_event_data_offsets_rpcgss_import_ctx {}; +typedef u32 compat_ino_t; -struct trace_event_data_offsets_rpcgss_unwrap_failed {}; +typedef u16 __compat_uid16_t; -struct trace_event_data_offsets_rpcgss_bad_seqno {}; +typedef u16 __compat_gid16_t; -struct trace_event_data_offsets_rpcgss_seqno {}; +struct compat_stat { + compat_dev_t st_dev; + compat_ino_t st_ino; + compat_mode_t st_mode; + compat_ushort_t st_nlink; + __compat_uid16_t st_uid; + __compat_gid16_t st_gid; + compat_dev_t st_rdev; + compat_off_t st_size; + compat_off_t st_blksize; + compat_off_t st_blocks; + old_time32_t st_atime; + compat_ulong_t st_atime_nsec; + old_time32_t st_mtime; + compat_ulong_t st_mtime_nsec; + old_time32_t st_ctime; + compat_ulong_t st_ctime_nsec; + compat_ulong_t __unused4[2]; +}; -struct trace_event_data_offsets_rpcgss_need_reencode {}; +struct file_handle { + __u32 handle_bytes; + int handle_type; + unsigned char f_handle[0]; +}; -struct trace_event_data_offsets_rpcgss_update_slack {}; +struct inotify_inode_mark { + struct fsnotify_mark fsn_mark; + int wd; +}; -struct trace_event_data_offsets_rpcgss_svc_seqno_class {}; +typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *); -struct trace_event_data_offsets_rpcgss_svc_seqno_low {}; +typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int); -struct trace_event_data_offsets_rpcgss_upcall_result {}; +typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int); -struct trace_event_data_offsets_rpcgss_createauth {}; +typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int); -struct wchan_info { - unsigned long pc; - int count; -}; +typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int); -typedef __u16 Elf32_Half; +typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lock *); -typedef __u32 Elf32_Addr; +typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lock *); -typedef __u32 Elf32_Off; +typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lock *); -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 void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lock *); -struct arch_elf_state { - int flags; -}; +typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lock *); -struct kvm_pgtable_visit_ctx; +typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lock *); -typedef int (*kvm_pgtable_visitor_fn_t)(const struct kvm_pgtable_visit_ctx *, enum kvm_pgtable_walk_flags); +typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lock *, struct file_lock *); -struct kvm_pgtable_walker { - const kvm_pgtable_visitor_fn_t cb; - void * const arg; - const enum kvm_pgtable_walk_flags flags; +struct file_lock_list_struct { + spinlock_t lock; + struct hlist_head hlist; }; -struct kvm_pgtable_visit_ctx { - kvm_pte_t *ptep; - kvm_pte_t old; - void *arg; - struct kvm_pgtable_mm_ops *mm_ops; - u64 start; - u64 addr; - u64 end; - u32 level; - enum kvm_pgtable_walk_flags flags; +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 kvm_pgtable_walk_data { - struct kvm_pgtable_walker *walker; - const u64 start; - u64 addr; - const u64 end; +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 hyp_map_data { - const u64 phys; - kvm_pte_t attr; +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 stage2_map_data { - const u64 phys; - kvm_pte_t attr; - u8 owner_id; - kvm_pte_t *anchor; - kvm_pte_t *childp; - struct kvm_s2_mmu___2 *mmu; - void *memcache; - bool force_pte; +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 stage2_attr_data { - kvm_pte_t attr_set; - kvm_pte_t attr_clr; - kvm_pte_t pte; - u32 level; +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 leaf_walk_data { - kvm_pte_t pte; - u32 level; +struct flock64 { + short l_type; + short l_whence; + __kernel_loff_t l_start; + __kernel_loff_t l_len; + __kernel_pid_t l_pid; }; -struct stage2_age_data { - bool mkold; - bool young; -}; +struct trace_event_data_offsets_locks_get_lock_context {}; -struct k_itimer; +struct trace_event_data_offsets_filelock_lock {}; -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 *); -}; +struct trace_event_data_offsets_filelock_lease {}; -struct cpu_timer { - struct timerqueue_node node; - struct timerqueue_head *head; - struct pid *pid; - struct list_head elist; - int firing; - struct task_struct __attribute__((btf_type_tag("rcu"))) *handling; -}; +struct trace_event_data_offsets_generic_add_lease {}; -typedef __kernel_timer_t timer_t; +struct trace_event_data_offsets_leases_conflict {}; -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 locks_iterator { + int li_cpu; + loff_t li_pos; }; -struct sigevent { - sigval_t sigev_value; - int sigev_signo; - int sigev_notify; - union { - int _pad[12]; - int _tid; - struct { - void (*_function)(sigval_t); - void *_attribute; - } _sigev_thread; - } _sigev_un; +struct kernfs_super_info { + struct super_block *sb; + struct kernfs_root *root; + const void *ns; + struct list_head node; }; -struct compat_sigevent { - compat_sigval_t sigev_value; - compat_int_t sigev_signo; - compat_int_t sigev_notify; +struct ext4_attr { + struct attribute attr; + short attr_id; + short attr_ptr; + unsigned short attr_size; union { - compat_int_t _pad[13]; - compat_int_t _tid; - struct { - compat_uptr_t _function; - compat_uptr_t _attribute; - } _sigev_thread; - } _sigev_un; + int offset; + void *explicit_ptr; + } u; }; -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: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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, }; -typedef struct sigevent sigevent_t; - -struct ftrace_page; - -struct ftrace_rec_iter { - struct ftrace_page *pg; - int index; +enum { + ptr_explicit = 0, + ptr_ext4_sb_info_offset = 1, + ptr_ext4_super_block_offset = 2, }; -struct ftrace_page { - struct ftrace_page *next; - struct dyn_ftrace *records; - int index; - int order; +struct journal_block_tag3_s { + __be32 t_blocknr; + __be32 t_flags; + __be32 t_blocknr_high; + __be32 t_checksum; }; -enum ftrace_bug_type { - FTRACE_BUG_UNKNOWN = 0, - FTRACE_BUG_INIT = 1, - FTRACE_BUG_NOP = 2, - FTRACE_BUG_CALL = 3, - FTRACE_BUG_UPDATE = 4, -}; +typedef struct journal_block_tag3_s journal_block_tag3_t; -struct ftrace_func_command { - struct list_head list; - char *name; - int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); +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 ftrace_profile_page; - -struct ftrace_profile_stat { - atomic_t disabled; - struct hlist_head *hash; - struct ftrace_profile_page *pages; - struct ftrace_profile_page *start; - struct tracer_stat stat; +struct jbd2_journal_revoke_header_s { + journal_header_t r_header; + __be32 r_count; }; -struct ftrace_profile { - struct hlist_node node; - unsigned long ip; - unsigned long counter; - unsigned long long time; - unsigned long long time_squared; -}; +typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t; -struct ftrace_profile_page { - struct ftrace_profile_page *next; - unsigned long index; - struct ftrace_profile records[0]; +struct recovery_info { + tid_t start_transaction; + tid_t end_transaction; + unsigned long head_block; + int nr_replays; + int nr_revokes; + int nr_revoke_hits; }; -enum { - FTRACE_OPS_FL_ENABLED = 1, - FTRACE_OPS_FL_DYNAMIC = 2, - FTRACE_OPS_FL_SAVE_REGS = 4, - FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8, - FTRACE_OPS_FL_RECURSION = 16, - FTRACE_OPS_FL_STUB = 32, - FTRACE_OPS_FL_INITIALIZED = 64, - FTRACE_OPS_FL_DELETED = 128, - FTRACE_OPS_FL_ADDING = 256, - FTRACE_OPS_FL_REMOVING = 512, - FTRACE_OPS_FL_MODIFYING = 1024, - FTRACE_OPS_FL_ALLOC_TRAMP = 2048, - FTRACE_OPS_FL_IPMODIFY = 4096, - FTRACE_OPS_FL_PID = 8192, - FTRACE_OPS_FL_RCU = 16384, - FTRACE_OPS_FL_TRACE_ARRAY = 32768, - FTRACE_OPS_FL_PERMANENT = 65536, - FTRACE_OPS_FL_DIRECT = 131072, +struct journal_block_tag_s { + __be32 t_blocknr; + __be16 t_checksum; + __be16 t_flags; + __be32 t_blocknr_high; }; -enum { - FTRACE_MODIFY_ENABLE_FL = 1, - FTRACE_MODIFY_MAY_SLEEP_FL = 2, -}; +typedef struct journal_block_tag_s journal_block_tag_t; -enum { - FTRACE_ITER_FILTER = 1, - FTRACE_ITER_NOTRACE = 2, - FTRACE_ITER_PRINTALL = 4, - FTRACE_ITER_DO_PROBES = 8, - FTRACE_ITER_PROBE = 16, - FTRACE_ITER_MOD = 32, - FTRACE_ITER_ENABLED = 64, - FTRACE_ITER_TOUCHED = 128, - FTRACE_ITER_ADDRS = 256, +enum hugetlbfs_size_type { + NO_SIZE = 0, + SIZE_STD = 1, + SIZE_PERCENT = 2, }; -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 hugetlb_param { + Opt_gid___4 = 0, + Opt_min_size = 1, + Opt_mode___3 = 2, + Opt_nr_inodes = 3, + Opt_pagesize = 4, + Opt_size = 5, + Opt_uid___4 = 6, }; -enum { - TRACE_PIDS = 1, - TRACE_NO_PIDS = 2, +struct hugetlbfs_inode_info { + struct inode vfs_inode; + unsigned int seals; }; -enum { - FTRACE_UPDATE_IGNORE = 0, - FTRACE_UPDATE_MAKE_CALL = 1, - FTRACE_UPDATE_MODIFY_CALL = 2, - FTRACE_UPDATE_MAKE_NOP = 3, +struct resv_map { + struct kref refs; + spinlock_t lock; + struct list_head regions; + long adds_in_progress; + struct list_head region_cache; + long region_cache_count; + struct rw_semaphore rw_sema; + struct page_counter *reservation_counter; + unsigned long pages_per_hpage; + struct cgroup_subsys_state *css; }; -enum { - TRACE_CTX_NMI = 0, - TRACE_CTX_IRQ = 1, - TRACE_CTX_SOFTIRQ = 2, - TRACE_CTX_NORMAL = 3, - TRACE_CTX_TRANSITION = 4, +struct hugetlb_vma_lock { + struct kref refs; + struct rw_semaphore rw_sema; + struct vm_area_struct *vma; }; -enum graph_filter_type { - GRAPH_FILTER_NOTRACE = 0, - GRAPH_FILTER_FUNCTION = 1, +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 ftrace_func_mapper { - struct ftrace_hash hash; -}; +typedef void (*btf_trace_nlmclnt_test)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); -struct ftrace_func_map { - struct ftrace_func_entry entry; - void *data; -}; +typedef void (*btf_trace_nlmclnt_lock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); -struct ftrace_probe_ops; +typedef void (*btf_trace_nlmclnt_unlock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); -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; -}; +typedef void (*btf_trace_nlmclnt_grant)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); -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 trace_event_raw_nlmclnt_lock_event { + struct trace_entry ent; + u32 oh; + u32 svid; + u32 fh; + unsigned long status; + u64 start; + u64 len; + u32 __data_loc_addr; + char __data[0]; }; -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 trace_event_data_offsets_nlmclnt_lock_event { + u32 addr; }; -struct ftrace_mod_func { - struct list_head list; - char *name; - unsigned long ip; - unsigned int size; +enum { + Opt_uid___5 = 0, + Opt_gid___5 = 1, + Opt_mode___4 = 2, + Opt_err___5 = 3, }; -struct ftrace_init_func { +struct debugfs_cancellation { struct list_head list; - unsigned long ip; + void (*cancel)(struct dentry *, void *); + void *cancel_data; }; -struct ftrace_mod_load { - struct list_head list; - char *func; - char *module; - int enable; +struct debugfs_fsdata { + const struct file_operations *real_fops; + union { + debugfs_automount_t automount; + struct { + refcount_t active_users; + struct completion active_users_drained; + struct mutex cancellations_mtx; + struct list_head cancellations; + }; + }; }; -struct ftrace_iterator { - loff_t pos; - loff_t func_pos; - loff_t mod_pos; - struct ftrace_page *pg; - struct dyn_ftrace *func; - struct ftrace_func_probe *probe; - struct ftrace_func_entry *probe_entry; - struct trace_parser parser; - struct ftrace_hash *hash; - struct ftrace_ops *ops; - struct trace_array *tr; - struct list_head *mod_list; - int pidx; - int idx; - unsigned int flags; +struct debugfs_mount_opts { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; }; -struct ftrace_glob { - char *search; - unsigned int len; - int type; +struct debugfs_fs_info { + struct debugfs_mount_opts mount_opts; }; -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; +enum key_lookup_flag { + KEY_LOOKUP_CREATE = 1, + KEY_LOOKUP_PARTIAL = 2, + KEY_LOOKUP_ALL = 3, }; -typedef int (*ftrace_mapper_func)(void *); +struct keyctl_dh_params { + union { + __s32 private; + __s32 priv; + }; + __s32 prime; + __s32 base; +}; -struct kallsyms_data { - unsigned long *addrs; - const char **syms; - size_t cnt; - size_t found; +struct keyctl_kdf_params { + char __attribute__((btf_type_tag("user"))) *hashname; + char __attribute__((btf_type_tag("user"))) *otherinfo; + __u32 otherinfolen; + __u32 __spare[8]; }; -struct btf_kfunc_hook_filter { - btf_kfunc_filter_t filters[16]; - u32 nr_filters; +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 btf_kfunc_set_tab { - struct btf_id_set8 *sets[13]; - struct btf_kfunc_hook_filter hook_filters[13]; +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 *); }; -struct btf_id_dtor_kfunc { - u32 btf_id; - u32 kfunc_btf_id; +enum drbg_seed_state { + DRBG_SEED_STATE_UNSEEDED = 0, + DRBG_SEED_STATE_PARTIAL = 1, + DRBG_SEED_STATE_FULL = 2, }; -struct btf_id_dtor_kfunc_tab { - u32 cnt; - struct btf_id_dtor_kfunc dtors[0]; +struct drbg_string { + const unsigned char *buf; + size_t len; + struct list_head list; }; -struct btf_struct_metas { - u32 cnt; - struct btf_struct_meta types[0]; +struct skcipher_request; + +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; }; -struct bpf_flow_keys; +struct skcipher_request { + unsigned int cryptlen; + u8 *iv; + struct scatterlist *src; + struct scatterlist *dst; + struct crypto_async_request base; + void *__ctx[0]; +}; -struct bpf_sock; +typedef uint32_t drbg_flag_t; -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 drbg_core { + drbg_flag_t flags; + __u8 statelen; + __u8 blocklen_bytes; + char cra_name[128]; + char backend_cra_name[128]; }; -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; +enum drbg_prefixes { + DRBG_PREFIX0 = 0, + DRBG_PREFIX1 = 1, + DRBG_PREFIX2 = 2, + DRBG_PREFIX3 = 3, }; -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 sdesc { + struct shash_desc shash; + char ctx[0]; }; -struct bpf_sock_addr_kern { - struct sock *sk; - struct sockaddr *uaddr; - u64 tmp_reg; - void *t_ctx; +struct uuidcmp { + const char *uuid; + int len; }; -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 io_rsrc_update { + struct file *file; + u64 arg; + u32 nr_args; + u32 offset; }; -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 io_uring_rsrc_update2 { + __u32 offset; + __u32 resv; + __u64 data; + __u64 tags; + __u32 nr; + __u32 resv2; }; -struct bpf_flow_dissector { - struct bpf_flow_keys *flow_keys; - const struct sk_buff *skb; - const void *data; - const void *data_end; +struct io_uring_rsrc_register { + __u32 nr; + __u32 flags; + __u64 resv2; + __u64 data; + __u64 tags; }; -struct bpf_perf_event_data { - bpf_user_pt_regs_t regs; - __u64 sample_period; - __u64 addr; +struct v2m_data { + struct list_head entry; + struct fwnode_handle *fwnode; + struct resource res; + void *base; + u32 spi_start; + u32 nr_spis; + u32 spi_offset; + unsigned long *bm; + u32 flags; }; -struct bpf_raw_tracepoint_args { - __u64 args[0]; +struct acpi_madt_generic_msi_frame { + struct acpi_subtable_header header; + u16 reserved; + u32 msi_frame_id; + u64 base_address; + u32 flags; + u16 spi_count; + u16 spi_base; }; -struct bpf_cgroup_dev_ctx { - __u32 access_type; - __u32 major; - __u32 minor; +struct pdc_pin_region { + u32 pin_base; + u32 parent_base; + u32 cnt; }; -struct bpf_sysctl { - __u32 write; - __u32 file_pos; +enum pdc_irq_config_bits { + PDC_LEVEL_LOW = 0, + PDC_EDGE_FALLING = 2, + PDC_LEVEL_HIGH = 4, + PDC_EDGE_RISING = 6, + PDC_EDGE_DUAL = 7, }; -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; +enum { + ARB_TIMER = 0, + ARB_BP_CAP_CLR = 1, + ARB_BP_CAP_HI_ADDR = 2, + ARB_BP_CAP_ADDR = 3, + ARB_BP_CAP_STATUS = 4, + ARB_BP_CAP_MASTER = 5, + ARB_ERR_CAP_CLR = 6, + ARB_ERR_CAP_HI_ADDR = 7, + ARB_ERR_CAP_ADDR = 8, + ARB_ERR_CAP_STATUS = 9, + ARB_ERR_CAP_MASTER = 10, }; -struct bpf_sockopt { - union { - struct bpf_sock *sk; - }; - union { - void *optval; - }; - union { - void *optval_end; - }; - __s32 level; - __s32 optname; - __s32 optlen; - __s32 retval; +struct brcmstb_gisb_arb_device { + void *base; + const int *gisb_offsets; + bool big_endian; + struct mutex lock; + struct list_head next; + u32 valid_mask; + const char *master_names[32]; + u32 saved_timeout; }; -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 sun4i_usb_phy_cfg { + int num_phys; + int hsic_index; + u32 disc_thresh; + u32 hci_phy_ctl_clear; + u8 phyctl_offset; + bool dedicated_clocks; + bool phy0_dual_route; + bool needs_phy2_siddq; + bool siddq_in_base; + bool poll_vbusen; + int missing_phys; }; -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 sun4i_usb_phy { + struct phy *phy; + void *pmu; + struct regulator *vbus; + struct reset_control *reset; + struct clk *clk; + struct clk *clk2; + bool regulator_on; + int index; }; -struct sk_reuseport_kern { - struct sk_buff *skb; - struct sock *sk; - struct sock *selected_sk; - struct sock *migrating_sk; - void *data_end; - u32 hash; - u32 reuseport_id; - bool bind_inany; +struct sun4i_usb_phy_data { + void *base; + const struct sun4i_usb_phy_cfg *cfg; + enum usb_dr_mode dr_mode; + spinlock_t reg_lock; + struct sun4i_usb_phy phys[4]; + struct extcon_dev *extcon; + bool phy0_init; + struct gpio_desc *id_det_gpio; + struct gpio_desc *vbus_det_gpio; + struct power_supply *vbus_power_supply; + struct notifier_block vbus_power_nb; + bool vbus_power_nb_registered; + bool force_session_end; + int id_det_irq; + int vbus_det_irq; + int id_det; + int vbus_det; + struct delayed_work detect; }; -struct bpf_sk_lookup { - union { - union { - struct bpf_sock *sk; - }; - __u64 cookie; - }; - __u32 family; - __u32 protocol; - __u32 remote_ip4; - __u32 remote_ip6[4]; - __be16 remote_port; - __u32 local_ip4; - __u32 local_ip6[4]; - __u32 local_port; - __u32 ingress_ifindex; +struct rcar_gen3_phy { + struct phy *phy; + spinlock_t lock; + void *base; }; -struct bpf_nf_ctx { - const struct nf_hook_state *state; - struct sk_buff *skb; +struct msm_pinctrl { + struct device *dev; + struct pinctrl_dev *pctrl; + struct gpio_chip chip; + struct pinctrl_desc desc; + struct notifier_block restart_nb; + int irq; + bool intr_target_use_scm; + raw_spinlock_t lock; + unsigned long dual_edge_irqs[5]; + unsigned long enabled_irqs[5]; + unsigned long skip_wake_irqs[5]; + unsigned long disabled_for_mux[5]; + unsigned long ever_gpio[5]; + const struct msm_pinctrl_soc_data *soc; + void *regs[4]; + u32 phys_base[4]; }; -struct bpf_ctx_convert { - struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog; - struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern; - struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog; - struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern; - struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog; - struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern; - struct xdp_md BPF_PROG_TYPE_XDP_prog; - struct xdp_buff BPF_PROG_TYPE_XDP_kern; - struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog; - struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern; - struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog; - struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern; - struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog; - struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog; - struct sk_buff BPF_PROG_TYPE_LWT_IN_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog; - struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog; - struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog; - struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern; - struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog; - struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern; - struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog; - struct sk_buff BPF_PROG_TYPE_SK_SKB_kern; - struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog; - struct sk_msg BPF_PROG_TYPE_SK_MSG_kern; - struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog; - struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern; - bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog; - struct pt_regs BPF_PROG_TYPE_KPROBE_kern; - __u64 BPF_PROG_TYPE_TRACEPOINT_prog; - u64 BPF_PROG_TYPE_TRACEPOINT_kern; - struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog; - struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern; - struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog; - u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern; - struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog; - u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern; - void *BPF_PROG_TYPE_TRACING_prog; - void *BPF_PROG_TYPE_TRACING_kern; - struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog; - struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern; - struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog; - struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern; - struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog; - struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern; - struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog; - struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern; - struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog; - struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern; - void *BPF_PROG_TYPE_STRUCT_OPS_prog; - void *BPF_PROG_TYPE_STRUCT_OPS_kern; - void *BPF_PROG_TYPE_EXT_prog; - void *BPF_PROG_TYPE_EXT_kern; - void *BPF_PROG_TYPE_LSM_prog; - void *BPF_PROG_TYPE_LSM_kern; - void *BPF_PROG_TYPE_SYSCALL_prog; - void *BPF_PROG_TYPE_SYSCALL_kern; - struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_prog; - struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_kern; +enum { + PINMUX_TYPE_NONE = 0, + PINMUX_TYPE_FUNCTION = 1, + PINMUX_TYPE_GPIO = 2, + PINMUX_TYPE_OUTPUT = 3, + PINMUX_TYPE_INPUT = 4, }; -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 sh_pfc_pin_config; + +struct sh_pfc_pinctrl { + struct pinctrl_dev *pctl; + struct pinctrl_desc pctl_desc; + struct sh_pfc *pfc; + struct pinctrl_pin_desc *pins; + struct sh_pfc_pin_config *configs; }; -struct btf_verifier_env; +struct sh_pfc_pin_config { + u16 gpio_enabled: 1; + u16 mux_mark: 15; +}; -struct resolve_vertex; +enum of_gpio_flags { + OF_GPIO_ACTIVE_LOW = 1, + OF_GPIO_SINGLE_ENDED = 2, + OF_GPIO_OPEN_DRAIN = 4, + OF_GPIO_TRANSITORY = 8, + OF_GPIO_PULL_UP = 16, + OF_GPIO_PULL_DOWN = 32, + OF_GPIO_PULL_DISABLE = 64, +}; -struct btf_show; +typedef struct gpio_desc * (*of_find_gpio_quirk)(struct device_node *, const char *, unsigned int, enum of_gpio_flags *); -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 of_rename_gpio { + const char *con_id; + const char *legacy_id; + const char *compatible; }; -struct resolve_vertex { - const struct btf_type *t; - u32 type_id; - u16 next_member; +enum gpio_lookup_flags { + GPIO_ACTIVE_HIGH = 0, + GPIO_ACTIVE_LOW = 1, + GPIO_OPEN_DRAIN = 2, + GPIO_OPEN_SOURCE = 4, + GPIO_PERSISTENT = 0, + GPIO_TRANSITORY = 8, + GPIO_PULL_UP = 16, + GPIO_PULL_DOWN = 32, + GPIO_PULL_DISABLE = 64, + GPIO_LOOKUP_FLAGS_DEFAULT = 0, }; -enum verifier_phase { - CHECK_META = 0, - CHECK_TYPE = 1, +struct of_mm_gpio_chip { + struct gpio_chip gc; + void (*save_regs)(struct of_mm_gpio_chip *); + void *regs; }; -enum resolve_mode { - RESOLVE_TBD = 0, - RESOLVE_PTR = 1, - RESOLVE_STRUCT_OR_ARRAY = 2, +struct pcie_pme_service_data { + spinlock_t lock; + struct pcie_device *srv; + struct work_struct work; + bool noirq; }; -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 tegra_pcie_port_soc; -struct btf_show { - u64 flags; - void *target; - void (*showfn)(struct btf_show *, const char *, va_list); - 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 tegra_pcie_soc { + unsigned int num_ports; + const struct tegra_pcie_port_soc *ports; + unsigned int msi_base_shift; + unsigned long afi_pex2_ctrl; + u32 pads_pll_ctl; + u32 tx_ref_sel; + u32 pads_refclk_cfg0; + u32 pads_refclk_cfg1; + u32 update_fc_threshold; + bool has_pex_clkreq_en; + bool has_pex_bias_ctrl; + bool has_intr_prsnt_sense; + bool has_cml_clk; + bool has_gen2; + bool force_pca_enable; + bool program_uphy; + bool update_clamp_threshold; + bool program_deskew_time; + bool update_fc_timer; + bool has_cache_bars; struct { - u32 size; - void *head; - void *data; - u8 safe[32]; - } obj; + struct { + u32 rp_ectl_2_r1; + u32 rp_ectl_4_r1; + u32 rp_ectl_5_r1; + u32 rp_ectl_6_r1; + u32 rp_ectl_2_r2; + u32 rp_ectl_4_r2; + u32 rp_ectl_5_r2; + u32 rp_ectl_6_r2; + } regs; + bool enable; + } ectl; }; -struct bpf_cand_cache { - const char *name; - u32 name_len; - u16 kind; - u16 cnt; +struct tegra_pcie_port_soc { struct { - const struct btf *btf; - u32 id; - } cands[0]; + u8 turnoff_bit; + u8 ack_bit; + } pme; }; -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 tegra_pcie; + +struct tegra_pcie_port { + struct tegra_pcie *pcie; + struct device_node *np; + struct list_head list; + struct resource regs; + void *base; + unsigned int index; + unsigned int lanes; + struct phy **phys; + struct gpio_desc *reset_gpio; }; -enum bpf_struct_walk_result { - WALK_SCALAR = 0, - WALK_PTR = 1, - WALK_STRUCT = 2, +struct tegra_msi { + unsigned long used[4]; + struct irq_domain *domain; + struct mutex map_lock; + spinlock_t mask_lock; + void *virt; + dma_addr_t phys; + int irq; }; -enum btf_func_linkage { - BTF_FUNC_STATIC = 0, - BTF_FUNC_GLOBAL = 1, - BTF_FUNC_EXTERN = 2, +struct tegra_pcie { + struct device *dev; + void *pads; + void *afi; + void *cfg; + int irq; + struct resource cs; + struct clk *pex_clk; + struct clk *afi_clk; + struct clk *pll_e; + struct clk *cml_clk; + struct reset_control *pex_rst; + struct reset_control *afi_rst; + struct reset_control *pcie_xrst; + bool legacy_phy; + struct phy *phy; + struct tegra_msi msi; + struct list_head ports; + u32 xbar_config; + struct regulator_bulk_data *supplies; + unsigned int num_supplies; + const struct tegra_pcie_soc *soc; + struct dentry *debugfs; }; -enum { - BTF_F_COMPACT = 1, - BTF_F_NONAME = 2, - BTF_F_PTR_RAW = 4, - BTF_F_ZERO = 8, +struct tegra194_pcie_ecam { + void *config_base; + void *iatu_base; + void *dbi_base; }; -enum { - BTF_MODULE_F_LIVE = 1, +struct fb_modelist { + struct list_head list; + struct fb_videomode mode; }; -enum btf_kfunc_hook { - BTF_KFUNC_HOOK_COMMON = 0, - BTF_KFUNC_HOOK_XDP = 1, - BTF_KFUNC_HOOK_TC = 2, - BTF_KFUNC_HOOK_STRUCT_OPS = 3, - BTF_KFUNC_HOOK_TRACING = 4, - BTF_KFUNC_HOOK_SYSCALL = 5, - BTF_KFUNC_HOOK_FMODRET = 6, - BTF_KFUNC_HOOK_CGROUP_SKB = 7, - BTF_KFUNC_HOOK_SCHED_ACT = 8, - BTF_KFUNC_HOOK_SK_SKB = 9, - BTF_KFUNC_HOOK_SOCKET_FILTER = 10, - BTF_KFUNC_HOOK_LWT = 11, - BTF_KFUNC_HOOK_NETFILTER = 12, - BTF_KFUNC_HOOK_MAX = 13, +struct fb_event { + struct fb_info *info; + void *data; }; -enum { - BTF_KFUNC_SET_MAX_CNT = 256, - BTF_DTOR_KFUNC_MAX_CNT = 256, - BTF_KFUNC_FILTER_MAX_CNT = 16, +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, }; -enum { - BTF_FIELD_IGNORE = 0, - BTF_FIELD_FOUND = 1, +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; }; -enum visit_state { - NOT_VISITED = 0, - VISITED = 1, - RESOLVED = 2, +struct acpi_pci_link { + struct list_head list; + struct acpi_device *device; + struct acpi_pci_link_irq irq; + int refcnt; }; enum { - BTF_VAR_STATIC = 0, - BTF_VAR_GLOBAL_ALLOCATED = 1, - BTF_VAR_GLOBAL_EXTERN = 2, + AML_FIELD_UPDATE_PRESERVE = 0, + AML_FIELD_UPDATE_WRITE_AS_ONES = 32, + AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64, }; -struct btf_module { - struct list_head list; - struct module *module; - struct btf *btf; - struct bin_attribute *sysfs_attr; - int flags; +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; }; -typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); - -struct btf_decl_tag { - __s32 component_idx; +struct acpi_interface_info { + char *name; + struct acpi_interface_info *next; + u8 flags; + u8 value; }; -struct btf_var_secinfo { - __u32 type; - __u32 offset; - __u32 size; -}; +typedef u32 (*acpi_interface_handler)(acpi_string, u32); -struct btf_sec_info { - u32 off; - u32 len; +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; }; -struct btf_var { - __u32 linkage; +enum acpi_cedt_type { + ACPI_CEDT_TYPE_CHBS = 0, + ACPI_CEDT_TYPE_CFMWS = 1, + ACPI_CEDT_TYPE_CXIMS = 2, + ACPI_CEDT_TYPE_RDPAS = 3, + ACPI_CEDT_TYPE_RESERVED = 4, }; -struct btf_show_snprintf { - struct btf_show show; - int len_left; - int len; +struct acpi_table_srat { + struct acpi_table_header header; + u32 table_revision; + u64 reserved; }; -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 acpi_srat_cpu_affinity { + struct acpi_subtable_header header; + u8 proximity_domain_lo; + u8 apic_id; + u32 flags; + u8 local_sapic_eid; + u8 proximity_domain_hi[3]; + u32 clock_domain; }; -struct bpf_core_ctx { - struct bpf_verifier_log *log; - const struct btf *btf; +struct acpi_srat_mem_affinity { + struct acpi_subtable_header header; + u32 proximity_domain; + u16 reserved; + u64 base_address; + u64 length; + u32 reserved1; + u32 flags; + u64 reserved2; +} __attribute__((packed)); + +struct acpi_srat_x2apic_cpu_affinity { + struct acpi_subtable_header header; + u16 reserved; + u32 proximity_domain; + u32 apic_id; + u32 flags; + u32 clock_domain; + u32 reserved2; }; -struct balloon_dev_info { - unsigned long isolated_pages; - spinlock_t pages_lock; - struct list_head pages; - int (*migratepage)(struct balloon_dev_info *, struct page *, struct page *, enum migrate_mode); +struct acpi_srat_gicc_affinity { + struct acpi_subtable_header header; + u32 proximity_domain; + u32 acpi_processor_uid; + u32 flags; + u32 clock_domain; +} __attribute__((packed)); + +struct acpi_srat_generic_affinity { + struct acpi_subtable_header header; + u8 reserved; + u8 device_handle_type; + u32 proximity_domain; + u8 device_handle[16]; + u32 flags; + u32 reserved1; }; -struct 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 acpi_table_slit { + struct acpi_table_header header; + u64 locality_count; + u8 entry[0]; +} __attribute__((packed)); + +struct acpi_cedt_cfmws { + struct acpi_cedt_header header; + u32 reserved1; + u64 base_hpa; + u64 window_size; + u8 interleave_ways; + u8 interleave_arithmetic; + u16 reserved2; + u32 granularity; + u16 restrictions; + u16 qtg_id; + u32 interleave_targets[0]; +} __attribute__((packed)); + +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; }; -struct limit_names { - const char *name; - const char *unit; +struct apei_resources { + struct list_head iomem; + struct list_head ioport; }; -struct map_files_info { +struct apei_res { + struct list_head list; unsigned long start; unsigned long end; - fmode_t mode; }; -struct seccomp_data { - int nr; - __u32 arch; - __u64 instruction_pointer; - __u64 args[6]; -}; +struct apei_exec_ins_type; -struct syscall_info { - __u64 sp; - struct seccomp_data data; +struct acpi_whea_header; + +struct apei_exec_context { + u32 ip; + u64 value; + u64 var1; + u64 var2; + u64 src_base; + u64 dst_base; + struct apei_exec_ins_type *ins_table; + u32 instructions; + struct acpi_whea_header *action_table; + u32 entries; }; -struct genradix_root; +typedef int (*apei_exec_ins_func_t)(struct apei_exec_context *, struct acpi_whea_header *); -struct __genradix { - struct genradix_root *root; +struct apei_exec_ins_type { + u32 flags; + apei_exec_ins_func_t run; }; -struct tgid_iter { - unsigned int tgid; - struct task_struct *task; +struct acpi_whea_header { + u8 action; + u8 instruction; + u8 flags; + u8 reserved; + struct acpi_generic_address register_region; + u64 value; + u64 mask; }; -typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); +typedef int (*apei_exec_entry_func_t)(struct apei_exec_context *, struct acpi_whea_header *, void *); -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 clk_plldig { + struct clk_hw hw; + void *regs; + unsigned int vco_freq; }; -enum hugetlbfs_size_type { - NO_SIZE = 0, - SIZE_STD = 1, - SIZE_PERCENT = 2, +struct owl_divider_hw { + u32 reg; + u8 shift; + u8 width; + u8 div_flags; + struct clk_div_table *table; }; -enum hugetlb_param { - Opt_gid___4 = 0, - Opt_min_size = 1, - Opt_mode___3 = 2, - Opt_nr_inodes___2 = 3, - Opt_pagesize = 4, - Opt_size___2 = 5, - Opt_uid___3 = 6, +struct owl_clk_common { + struct regmap *regmap; + struct clk_hw hw; }; -struct hugetlbfs_inode_info { - struct shared_policy policy; - struct inode vfs_inode; - unsigned int seals; +struct owl_divider { + struct owl_divider_hw div_hw; + struct owl_clk_common common; }; -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 owl_clk_desc { + struct owl_clk_common **clks; + unsigned long num_clks; + struct clk_hw_onecell_data *hw_clks; + const struct owl_reset_map *resets; + unsigned long num_resets; + struct regmap *regmap; }; -struct nfs_referral_count { - struct list_head list; - const struct task_struct *task; - unsigned int referral_count; +struct clk_pll_table; + +struct owl_pll_hw { + u32 reg; + u32 bfreq; + u8 bit_idx; + u8 shift; + u8 width; + u8 min_mul; + u8 max_mul; + u8 delay; + const struct clk_pll_table *table; }; -struct crypto_kpp { - unsigned int reqsize; - struct crypto_tfm base; +struct owl_pll { + struct owl_pll_hw pll_hw; + struct owl_clk_common common; }; -struct kpp_request; +struct clk_pll_table { + unsigned int val; + unsigned long rate; +}; -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 owl_mux_hw { + u32 reg; + u8 shift; + u8 width; }; -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 owl_mux { + struct owl_mux_hw mux_hw; + struct owl_clk_common common; }; -struct kpp_instance { - void (*free)(struct kpp_instance *); - union { - struct { - char head[48]; - struct crypto_instance base; - } s; - struct kpp_alg alg; - }; +struct owl_gate_hw { + u32 reg; + u8 bit_idx; + u8 gate_flags; }; -struct crypto_istat_kpp { - atomic64_t setsecret_cnt; - atomic64_t generate_public_key_cnt; - atomic64_t compute_shared_secret_cnt; - atomic64_t err_cnt; +struct owl_gate { + struct owl_gate_hw gate_hw; + struct owl_clk_common common; }; -struct crypto_kpp_spawn { - struct crypto_spawn base; +struct clk_factor_table; + +struct owl_factor_hw { + u32 reg; + u8 shift; + u8 width; + u8 fct_flags; + struct clk_factor_table *table; }; -struct crypto_report_kpp { - char type[64]; +union owl_rate { + struct owl_divider_hw div_hw; + struct owl_factor_hw factor_hw; + struct clk_fixed_factor fix_fact_hw; }; -struct x509_certificate; +struct owl_composite { + struct owl_mux_hw mux_hw; + struct owl_gate_hw gate_hw; + union owl_rate rate; + const struct clk_ops *fix_fact_ops; + struct owl_clk_common common; +}; -struct pkcs7_signed_info; +struct clk_factor_table { + unsigned int val; + unsigned int mul; + unsigned int div; +}; -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 meson_clk_dualdiv_data { + struct parm n1; + struct parm n2; + struct parm m1; + struct parm m2; + struct parm dual; + const struct meson_clk_dualdiv_param *table; }; -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; +enum clk_ids___4 { + LAST_DT_CORE_CLK___4 = 46, + CLK_EXTAL___4 = 47, + CLK_EXTALR___4 = 48, + CLK_MAIN___4 = 49, + CLK_PLL0___3 = 50, + CLK_PLL1___4 = 51, + CLK_PLL2___2 = 52, + CLK_PLL3___3 = 53, + CLK_PLL4___2 = 54, + CLK_PLL1_DIV2___4 = 55, + CLK_PLL1_DIV4___3 = 56, + CLK_S0___2 = 57, + CLK_S1___3 = 58, + CLK_S2___2 = 59, + CLK_S3___3 = 60, + CLK_SDSRC___3 = 61, + CLK_RPCSRC___3 = 62, + CLK_RINT___2 = 63, + MOD_CLK_BASE___4 = 64, +}; + +struct sprd_clk_desc { + struct sprd_clk_common **clk_clks; + unsigned long num_clk_clks; + struct clk_hw_onecell_data *hw_clks; }; -struct pkcs7_signed_info { - struct pkcs7_signed_info *next; - struct x509_certificate *signer; - unsigned int index; - bool unsupported_crypto; - bool blacklisted; - const void *msgdigest; - unsigned int msgdigest_len; - unsigned int authattrs_len; - const void *authattrs; - unsigned long aa_set; - time64_t signing_time; - struct public_key_signature *sig; +struct sprd_div_internal { + s32 offset; + u8 shift; + u8 width; }; -enum blk_default_limits { - BLK_MAX_SEGMENTS = 128, - BLK_SAFE_MAX_SECTORS = 255, - BLK_MAX_SEGMENT_SIZE = 65536, - BLK_SEG_BOUNDARY_MASK = 4294967295, +struct sprd_comp { + struct sprd_mux_ssel mux; + struct sprd_div_internal div; + struct sprd_clk_common common; }; -enum { - IOU_PBUF_RING_MMAP = 1, +struct sprd_div { + struct sprd_div_internal div; + struct sprd_clk_common common; }; -struct io_provide_buf { - struct file *file; - __u64 addr; - __u32 len; - __u32 bgid; - __u16 nbufs; - __u16 bid; +struct cpu_clk_suspend_context___2 { + u32 clk_csite_src; + u32 cclkg_burst; + u32 cclkg_divider; }; -struct io_uring_buf_reg { - __u64 ring_addr; - __u32 ring_entries; - __u16 bgid; - __u16 flags; - __u64 resv[3]; +struct visconti_pll_rate_table; + +struct visconti_pll_info { + unsigned int id; + const char *name; + const char *parent; + unsigned long base_reg; + const struct visconti_pll_rate_table *rate_table; }; -struct sun6i_r_intc_variant { - u32 first_mux_irq; - u32 nr_mux_irqs; - u32 mux_valid[4]; +struct visconti_pll_rate_table { + unsigned long rate; + unsigned int dacen; + unsigned int dsmen; + unsigned int refdiv; + unsigned long intin; + unsigned long fracin; + unsigned int postdiv1; + unsigned int postdiv2; }; -struct ti_sci_intr_irq_domain { - const struct ti_sci_handle *sci; - struct ti_sci_resource *out_irqs; - struct device *dev; - u32 ti_sci_id; - u32 type; +struct visconti_pll_provider { + void *reg_base; + struct device_node *node; + struct clk_hw_onecell_data clk_data; }; -struct phy_meson_axg_mipi_dphy_priv { - struct device *dev; - struct regmap *regmap; - struct clk *clk; - struct reset_control *reset; - struct phy *analog; - struct phy_configure_opts_mipi_dphy config; +enum topology_type { + TYPE_INVALID = 0, + TYPE_MUX = 1, + TYPE_PLL = 2, + TYPE_FIXEDFACTOR = 3, + TYPE_DIV1 = 4, + TYPE_DIV2 = 5, + TYPE_GATE = 6, }; -struct uniphier_u3ssphy_param { - struct { - int reg_no; - int msb; - int lsb; - } field; - u8 value; +enum pm_query_id { + PM_QID_INVALID = 0, + PM_QID_CLOCK_GET_NAME = 1, + PM_QID_CLOCK_GET_TOPOLOGY = 2, + PM_QID_CLOCK_GET_FIXEDFACTOR_PARAMS = 3, + PM_QID_CLOCK_GET_PARENTS = 4, + PM_QID_CLOCK_GET_ATTRIBUTES = 5, + PM_QID_PINCTRL_GET_NUM_PINS = 6, + PM_QID_PINCTRL_GET_NUM_FUNCTIONS = 7, + PM_QID_PINCTRL_GET_NUM_FUNCTION_GROUPS = 8, + PM_QID_PINCTRL_GET_FUNCTION_NAME = 9, + PM_QID_PINCTRL_GET_FUNCTION_GROUPS = 10, + PM_QID_PINCTRL_GET_PIN_GROUPS = 11, + PM_QID_CLOCK_GET_NUM_CLOCKS = 12, + PM_QID_CLOCK_GET_MAX_DIVISOR = 13, }; -struct uniphier_u3ssphy_soc_data { - bool is_legacy; - int nparams; - const struct uniphier_u3ssphy_param param[7]; +struct zynqmp_clk_divider { + struct clk_hw hw; + u8 flags; + bool is_frac; + u32 clk_id; + u32 div_type; + u16 max_div; }; -struct uniphier_u3ssphy_priv { - struct device *dev; - void *base; - struct clk *clk; - struct clk *clk_ext; - struct clk *clk_parent; - struct clk *clk_parent_gio; - struct reset_control *rst; - struct reset_control *rst_parent; - struct reset_control *rst_parent_gio; - struct regulator *vbus; - const struct uniphier_u3ssphy_soc_data *data; +struct zynqmp_pm_query_data { + u32 qid; + u32 arg1; + u32 arg2; + u32 arg3; }; -struct mvebu_pinctrl_group { - const char *name; - const struct mvebu_mpp_ctrl *ctrl; - struct mvebu_mpp_ctrl_data *data; - struct mvebu_mpp_ctrl_setting *settings; - unsigned int num_settings; - unsigned int gid; - unsigned int *pins; - unsigned int npins; +struct admac_data; + +struct admac_tx; + +struct admac_chan { + unsigned int no; + struct admac_data *host; + struct dma_chan chan; + struct tasklet_struct tasklet; + u32 carveout; + spinlock_t lock; + struct admac_tx *current_tx; + int nperiod_acks; + struct list_head submitted; + struct list_head issued; + struct list_head to_free; }; -struct mvebu_pinctrl_function; +struct admac_sram { + u32 size; + u32 allocated; +}; -struct mvebu_pinctrl { +struct admac_data { + struct dma_device dma; struct device *dev; - struct pinctrl_dev *pctldev; - struct pinctrl_desc desc; - struct mvebu_pinctrl_group *groups; - unsigned int num_groups; - struct mvebu_pinctrl_function *functions; - unsigned int num_functions; - u8 variant; + void *base; + struct reset_control *rstc; + struct mutex cache_alloc_lock; + struct admac_sram txcache; + struct admac_sram rxcache; + int irq; + int irq_index; + int nchannels; + struct admac_chan channels[0]; }; -struct mvebu_pinctrl_function { - const char *name; - const char **groups; - unsigned int num_groups; +struct admac_tx { + struct dma_async_tx_descriptor tx; + bool cyclic; + dma_addr_t buf_addr; + dma_addr_t buf_end; + size_t buf_len; + size_t period_len; + size_t submitted_pos; + size_t reclaimed_pos; + struct list_head node; }; -struct tps65219; +struct hidma_dev; + +struct hidma_desc; -struct tps65219_gpio { - struct gpio_chip gpio_chip; - struct tps65219 *tps; +struct hidma_chan { + bool paused; + bool allocated; + char dbg_name[16]; + u32 dma_sig; + dma_cookie_t last_success; + struct hidma_dev *dmadev; + struct hidma_desc *running; + struct dma_chan chan; + struct list_head free; + struct list_head prepared; + struct list_head queued; + struct list_head active; + struct list_head completed; + spinlock_t lock; }; -struct tps65219 { - struct device *dev; - struct regmap *regmap; - struct regmap_irq_chip_data *irq_data; - struct notifier_block nb; +struct hidma_lldev; + +struct hidma_dev { + int irq; + int chidx; + u32 nr_descriptors; + int msi_virqbase; + struct hidma_lldev *lldev; + void *dev_trca; + struct resource *trca_resource; + void *dev_evca; + struct resource *evca_resource; + spinlock_t lock; + struct dma_device ddev; + struct dentry *debugfs; + struct device_attribute *chid_attrs; + struct tasklet_struct task; }; -struct iproc_pcie_ob_map { - resource_size_t window_sizes[4]; - unsigned int nr_sizes; +struct hidma_tre; + +struct hidma_lldev { + bool msi_support; + bool initialized; + u8 trch_state; + u8 evch_state; + u8 chidx; + u32 nr_tres; + spinlock_t lock; + struct hidma_tre *trepool; + struct device *dev; + void *trca; + void *evca; + struct hidma_tre **pending_tre_list; + atomic_t pending_tre_count; + void *tre_ring; + dma_addr_t tre_dma; + u32 tre_ring_size; + u32 tre_processed_off; + void *evre_ring; + dma_addr_t evre_dma; + u32 evre_ring_size; + u32 evre_processed_off; + u32 tre_write_offset; + struct tasklet_struct task; + struct { + union { + struct __kfifo kfifo; + struct hidma_tre **type; + const struct hidma_tre **const_type; + char (*rectype)[0]; + struct hidma_tre **ptr; + struct hidma_tre * const *ptr_const; + }; + struct hidma_tre *buf[0]; + } handoff_fifo; }; -enum iproc_pcie_ib_map_type { - IPROC_PCIE_IB_MAP_MEM = 0, - IPROC_PCIE_IB_MAP_IO = 1, - IPROC_PCIE_IB_MAP_INVALID = 2, +struct hidma_tre { + atomic_t allocated; + bool queued; + u16 status; + u32 idx; + u32 dma_sig; + const char *dev_name; + void (*callback)(void *); + void *data; + struct hidma_lldev *lldev; + u32 tre_local[9]; + u32 tre_index; + u32 int_flags; + u8 err_info; + u8 err_code; }; -struct iproc_pcie_ib_map { - enum iproc_pcie_ib_map_type type; - unsigned int size_unit; - resource_size_t region_sizes[9]; - unsigned int nr_sizes; - unsigned int nr_windows; - u16 imap_addr_offset; - u16 imap_window_offset; +struct hidma_desc { + struct dma_async_tx_descriptor desc; + struct list_head node; + u32 tre_ch; }; -enum iproc_pcie_type { - IPROC_PCIE_PAXB_BCMA = 0, - IPROC_PCIE_PAXB = 1, - IPROC_PCIE_PAXB_V2 = 2, - IPROC_PCIE_PAXC = 3, - IPROC_PCIE_PAXC_V2 = 4, +enum tegra_platform { + TEGRA_PLATFORM_SILICON = 0, + TEGRA_PLATFORM_QT = 1, + TEGRA_PLATFORM_SYSTEM_FPGA = 2, + TEGRA_PLATFORM_UNIT_FPGA = 3, + TEGRA_PLATFORM_ASIM_QT = 4, + TEGRA_PLATFORM_ASIM_LINSIM = 5, + TEGRA_PLATFORM_DSIM_ASIM_LINSIM = 6, + TEGRA_PLATFORM_VERIFICATION_SIMULATION = 7, + TEGRA_PLATFORM_VDK = 8, + TEGRA_PLATFORM_VSP = 9, + TEGRA_PLATFORM_MAX = 10, }; -enum iproc_pcie_reg { - IPROC_PCIE_CLK_CTRL = 0, - IPROC_PCIE_MSI_GIC_MODE = 1, - IPROC_PCIE_MSI_BASE_ADDR = 2, - IPROC_PCIE_MSI_WINDOW_SIZE = 3, - IPROC_PCIE_MSI_ADDR_LO = 4, - IPROC_PCIE_MSI_ADDR_HI = 5, - IPROC_PCIE_MSI_EN_CFG = 6, - IPROC_PCIE_CFG_IND_ADDR = 7, - IPROC_PCIE_CFG_IND_DATA = 8, - IPROC_PCIE_CFG_ADDR = 9, - IPROC_PCIE_CFG_DATA = 10, - IPROC_PCIE_INTX_EN = 11, - IPROC_PCIE_OARR0 = 12, - IPROC_PCIE_OMAP0 = 13, - IPROC_PCIE_OARR1 = 14, - IPROC_PCIE_OMAP1 = 15, - IPROC_PCIE_OARR2 = 16, - IPROC_PCIE_OMAP2 = 17, - IPROC_PCIE_OARR3 = 18, - IPROC_PCIE_OMAP3 = 19, - IPROC_PCIE_IARR0 = 20, - IPROC_PCIE_IMAP0 = 21, - IPROC_PCIE_IARR1 = 22, - IPROC_PCIE_IMAP1 = 23, - IPROC_PCIE_IARR2 = 24, - IPROC_PCIE_IMAP2 = 25, - IPROC_PCIE_IARR3 = 26, - IPROC_PCIE_IMAP3 = 27, - IPROC_PCIE_IARR4 = 28, - IPROC_PCIE_IMAP4 = 29, - IPROC_PCIE_CFG_RD_STATUS = 30, - IPROC_PCIE_LINK_STATUS = 31, - IPROC_PCIE_APB_ERR_EN = 32, - IPROC_PCIE_MAX_NUM_REG = 33, +enum { + THRESHOLD_INDEX_0 = 0, + THRESHOLD_INDEX_1 = 1, + THRESHOLD_INDEX_COUNT = 2, }; -struct iproc_pcie_ob { - resource_size_t axi_offset; - unsigned int nr_windows; +struct tegra_sku_info { + int sku_id; + int cpu_process_id; + int cpu_speedo_id; + int cpu_speedo_value; + int cpu_iddq_value; + int soc_process_id; + int soc_speedo_id; + int soc_speedo_value; + int gpu_process_id; + int gpu_speedo_id; + int gpu_speedo_value; + enum tegra_revision revision; + enum tegra_platform platform; }; -struct iproc_pcie_ib { - unsigned int nr_regions; +struct tegra_cbb_error { + const char *code; + const char *source; + const char *desc; }; -struct iproc_msi; +struct tegra194_cbb_aperture; -struct iproc_pcie { - struct device *dev; - enum iproc_pcie_type type; - u16 *reg_offsets; - void *base; - phys_addr_t base_addr; - struct resource mem; - struct phy *phy; - int (*map_irq)(const struct pci_dev *, u8, u8); - bool ep_is_internal; - bool iproc_cfg_read; - bool rej_unconfig_pf; - bool has_apb_err_disable; - bool fix_paxc_cap; - bool need_ob_cfg; - struct iproc_pcie_ob ob; - const struct iproc_pcie_ob_map *ob_map; - bool need_ib_cfg; - struct iproc_pcie_ib ib; - const struct iproc_pcie_ib_map *ib_map; - bool need_msi_steer; - struct iproc_msi *msi; -}; +struct tegra194_cbb_userbits; -struct acpi_device_properties { - const guid_t *guid; - union acpi_object *properties; - struct list_head list; - void **bufs; +struct tegra194_cbb_noc_data { + const char *name; + bool erd_mask_inband_err; + const char * const *master_id; + unsigned int max_aperture; + const struct tegra194_cbb_aperture *noc_aperture; + const char * const *routeid_initflow; + const char * const *routeid_targflow; + void (*parse_routeid)(struct tegra194_cbb_aperture *, u64); + void (*parse_userbits)(struct tegra194_cbb_userbits *, u32); }; -struct bcm2835_cprman; +struct tegra194_cbb_aperture { + u8 initflow; + u8 targflow; + u8 targ_subrange; + u8 init_mapping; + u32 init_localaddress; + u8 targ_mapping; + u32 targ_localaddress; + u16 seqid; +}; -struct bcm2835_clk_desc { - struct clk_hw * (*clk_register)(struct bcm2835_cprman *, const void *); - unsigned int supported; - const void *data; +struct tegra194_cbb_userbits { + u8 axcache; + u8 non_mod; + u8 axprot; + u8 falconsec; + u8 grpsec; + u8 vqc; + u8 mstr_id; + u8 axi_id; }; -struct bcm2835_cprman { - struct device *dev; +struct tegra194_axi2apb_bridge; + +struct tegra194_cbb { + struct tegra_cbb base; + const struct tegra194_cbb_noc_data *noc; + struct resource *res; void *regs; - spinlock_t regs_lock; - unsigned int soc; - const char *real_parent_names[7]; - struct clk_hw_onecell_data onecell; + unsigned int num_intr; + unsigned int sec_irq; + unsigned int nonsec_irq; + u32 errlog0; + u32 errlog1; + u32 errlog2; + u32 errlog3; + u32 errlog4; + u32 errlog5; + struct tegra194_axi2apb_bridge *bridges; + unsigned int num_bridges; }; -struct bcm2835_pll_ana_bits { - u32 mask0; - u32 set0; - u32 mask1; - u32 set1; - u32 mask3; - u32 set3; - u32 fb_prediv_mask; +struct tegra194_axi2apb_bridge { + struct resource res; + void *base; }; -struct cprman_plat_data { - unsigned int soc; +struct tegra194_cbb_packet_header { + bool lock; + u8 opc; + u8 errcode; + u16 len1; + bool format; }; -struct bcm2835_pll_data; - -struct bcm2835_pll { - struct clk_hw hw; - struct bcm2835_cprman *cprman; - const struct bcm2835_pll_data *data; +struct scmi_power_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const char * (*name_get)(const struct scmi_protocol_handle *, u32); + int (*state_set)(const struct scmi_protocol_handle *, u32, u32); + int (*state_get)(const struct scmi_protocol_handle *, u32, u32 *); }; -struct bcm2835_pll_data { +struct scmi_pm_domain { + struct generic_pm_domain genpd; + const struct scmi_protocol_handle *ph; const char *name; - u32 cm_ctrl_reg; - u32 a2w_ctrl_reg; - u32 frac_reg; - u32 ana_reg_base; - u32 reference_enable_mask; - u32 lock_mask; - u32 flags; - const struct bcm2835_pll_ana_bits *ana; - unsigned long min_rate; - unsigned long max_rate; - unsigned long max_fb_rate; + u32 domain; }; -struct bcm2835_pll_divider_data; - -struct bcm2835_pll_divider { - struct clk_divider div; - struct bcm2835_cprman *cprman; - const struct bcm2835_pll_divider_data *data; -}; +struct rockchip_pmu_info; -struct bcm2835_pll_divider_data { - const char *name; - const char *source_pll; - u32 cm_reg; - u32 a2w_reg; - u32 load_mask; - u32 hold_mask; - u32 fixed_divider; - u32 flags; +struct rockchip_pmu { + struct device *dev; + struct regmap *regmap; + const struct rockchip_pmu_info *info; + struct mutex mutex; + struct genpd_onecell_data genpd_data; + struct generic_pm_domain *domains[0]; }; -struct bcm2835_clock_data; +struct rockchip_domain_info; -struct bcm2835_clock { - struct clk_hw hw; - struct bcm2835_cprman *cprman; - const struct bcm2835_clock_data *data; +struct rockchip_pmu_info { + u32 pwr_offset; + u32 status_offset; + u32 req_offset; + u32 idle_offset; + u32 ack_offset; + u32 mem_pwr_offset; + u32 chain_status_offset; + u32 mem_status_offset; + u32 repair_status_offset; + u32 core_pwrcnt_offset; + u32 gpu_pwrcnt_offset; + unsigned int core_power_transition_time; + unsigned int gpu_power_transition_time; + int num_domains; + const struct rockchip_domain_info *domain_info; }; -struct bcm2835_clock_data { +struct rockchip_domain_info { const char *name; - const char * const *parents; - int num_mux_parents; - unsigned int set_rate_parent; - u32 ctl_reg; - u32 div_reg; - u32 int_bits; - u32 frac_bits; - u32 flags; - bool is_vpu_clock; - bool is_mash_clock; - bool low_jitter; - u32 tcnt_mux; - bool round_up; + int pwr_mask; + int status_mask; + int req_mask; + int idle_mask; + int ack_mask; + bool active_wakeup; + int pwr_w_mask; + int req_w_mask; + int mem_status_mask; + int repair_status_mask; + u32 pwr_offset; + u32 mem_offset; + u32 req_offset; }; -struct bcm2835_gate_data { - const char *name; - const char *parent; - u32 ctl_reg; +struct rockchip_pm_domain { + struct generic_pm_domain genpd; + const struct rockchip_domain_info *info; + struct rockchip_pmu *pmu; + int num_qos; + struct regmap **qos_regmap; + u32 *qos_save_regs[5]; + int num_clks; + struct clk_bulk_data *clks; }; -enum { - CP110_CLK_TYPE_CORE = 0, - CP110_CLK_TYPE_GATABLE = 1, +struct map_ring_valloc; + +struct xenbus_ring_ops { + int (*map)(struct xenbus_device *, struct map_ring_valloc *, grant_ref_t *, unsigned int, void **); + int (*unmap)(struct xenbus_device *, void *); }; -struct cp110_gate_clk { - struct clk_hw hw; - struct regmap *regmap; - u8 bit_idx; +struct xenbus_map_node; + +struct map_ring_valloc { + struct xenbus_map_node *node; + unsigned long addrs[16]; + phys_addr_t phys_addrs[16]; + struct gnttab_map_grant_ref map[16]; + struct gnttab_unmap_grant_ref unmap[16]; + unsigned int idx; }; -struct div6_clock { - struct clk_hw hw; - void *reg; - unsigned int div; - u32 src_mask; - struct notifier_block nb; - u8 parents[0]; +struct xenbus_map_node { + struct list_head next; + union { + struct { + struct vm_struct *area; + } pv; + struct { + struct page *pages[16]; + unsigned long addrs[16]; + void *addr; + } hvm; + }; + grant_handle_t handles[16]; + unsigned int nr_handles; }; -struct samsung_clk_pll { - struct clk_hw hw; - void *lock_reg; - void *con_reg; - unsigned short enable_offs; - unsigned short lock_offs; - enum samsung_pll_type type; - unsigned int rate_count; - const struct samsung_pll_rate_table *rate_table; +struct evtchn_alloc_unbound { + domid_t dom; + domid_t remote_dom; + evtchn_port_t port; }; -enum clk_type { - CLK_TYPE_OUTPUT = 0, - CLK_TYPE_EXTERNAL = 1, +struct unmap_ring_hvm { + unsigned int idx; + unsigned long addrs[16]; }; -struct clock_parent { - char name[50]; - int id; - u32 flag; +enum { + AXP22X_DCDC1 = 0, + AXP22X_DCDC2 = 1, + AXP22X_DCDC3 = 2, + AXP22X_DCDC4 = 3, + AXP22X_DCDC5 = 4, + AXP22X_DC1SW = 5, + AXP22X_DC5LDO = 6, + AXP22X_ALDO1 = 7, + AXP22X_ALDO2 = 8, + AXP22X_ALDO3 = 9, + AXP22X_ELDO1 = 10, + AXP22X_ELDO2 = 11, + AXP22X_ELDO3 = 12, + AXP22X_DLDO1 = 13, + AXP22X_DLDO2 = 14, + AXP22X_DLDO3 = 15, + AXP22X_DLDO4 = 16, + AXP22X_RTC_LDO = 17, + AXP22X_LDO_IO0 = 18, + AXP22X_LDO_IO1 = 19, + AXP22X_REG_ID_MAX = 20, }; -struct zynqmp_clock { - char clk_name[50]; - u32 valid; - enum clk_type type; - struct clock_topology node[6]; - u32 num_nodes; - struct clock_parent parent[100]; - u32 num_parents; - u32 clk_id; +enum { + AXP15060_DCDC1 = 0, + AXP15060_DCDC2 = 1, + AXP15060_DCDC3 = 2, + AXP15060_DCDC4 = 3, + AXP15060_DCDC5 = 4, + AXP15060_DCDC6 = 5, + AXP15060_ALDO1 = 6, + AXP15060_ALDO2 = 7, + AXP15060_ALDO3 = 8, + AXP15060_ALDO4 = 9, + AXP15060_ALDO5 = 10, + AXP15060_BLDO1 = 11, + AXP15060_BLDO2 = 12, + AXP15060_BLDO3 = 13, + AXP15060_BLDO4 = 14, + AXP15060_BLDO5 = 15, + AXP15060_CLDO1 = 16, + AXP15060_CLDO2 = 17, + AXP15060_CLDO3 = 18, + AXP15060_CLDO4 = 19, + AXP15060_CPUSLDO = 20, + AXP15060_SW = 21, + AXP15060_RTC_LDO = 22, + AXP15060_REG_ID_MAX = 23, }; -enum pm_query_id { - PM_QID_INVALID = 0, - PM_QID_CLOCK_GET_NAME = 1, - PM_QID_CLOCK_GET_TOPOLOGY = 2, - PM_QID_CLOCK_GET_FIXEDFACTOR_PARAMS = 3, - PM_QID_CLOCK_GET_PARENTS = 4, - PM_QID_CLOCK_GET_ATTRIBUTES = 5, - PM_QID_PINCTRL_GET_NUM_PINS = 6, - PM_QID_PINCTRL_GET_NUM_FUNCTIONS = 7, - PM_QID_PINCTRL_GET_NUM_FUNCTION_GROUPS = 8, - PM_QID_PINCTRL_GET_FUNCTION_NAME = 9, - PM_QID_PINCTRL_GET_FUNCTION_GROUPS = 10, - PM_QID_PINCTRL_GET_PIN_GROUPS = 11, - PM_QID_CLOCK_GET_NUM_CLOCKS = 12, - PM_QID_CLOCK_GET_MAX_DIVISOR = 13, +enum axp20x_variants { + AXP152_ID = 0, + AXP192_ID = 1, + AXP202_ID = 2, + AXP209_ID = 3, + AXP221_ID = 4, + AXP223_ID = 5, + AXP288_ID = 6, + AXP313A_ID = 7, + AXP803_ID = 8, + AXP806_ID = 9, + AXP809_ID = 10, + AXP813_ID = 11, + AXP15060_ID = 12, + NR_AXP20X_VARIANTS = 13, }; -enum topology_type { - TYPE_INVALID = 0, - TYPE_MUX = 1, - TYPE_PLL = 2, - TYPE_FIXEDFACTOR = 3, - TYPE_DIV1 = 4, - TYPE_DIV2 = 5, - TYPE_GATE = 6, +enum { + AXP20X_LDO1 = 0, + AXP20X_LDO2 = 1, + AXP20X_LDO3 = 2, + AXP20X_LDO4 = 3, + AXP20X_LDO5 = 4, + AXP20X_DCDC2 = 5, + AXP20X_DCDC3 = 6, + AXP20X_REG_ID_MAX = 7, }; -struct zynqmp_pm_query_data { - u32 qid; - u32 arg1; - u32 arg2; - u32 arg3; +enum { + AXP313A_DCDC1 = 0, + AXP313A_DCDC2 = 1, + AXP313A_DCDC3 = 2, + AXP313A_ALDO1 = 3, + AXP313A_DLDO1 = 4, + AXP313A_RTC_LDO = 5, + AXP313A_REG_ID_MAX = 6, }; -struct name_resp { - char name[16]; +enum { + AXP803_DCDC1 = 0, + AXP803_DCDC2 = 1, + AXP803_DCDC3 = 2, + AXP803_DCDC4 = 3, + AXP803_DCDC5 = 4, + AXP803_DCDC6 = 5, + AXP803_DC1SW = 6, + AXP803_ALDO1 = 7, + AXP803_ALDO2 = 8, + AXP803_ALDO3 = 9, + AXP803_DLDO1 = 10, + AXP803_DLDO2 = 11, + AXP803_DLDO3 = 12, + AXP803_DLDO4 = 13, + AXP803_ELDO1 = 14, + AXP803_ELDO2 = 15, + AXP803_ELDO3 = 16, + AXP803_FLDO1 = 17, + AXP803_FLDO2 = 18, + AXP803_RTC_LDO = 19, + AXP803_LDO_IO0 = 20, + AXP803_LDO_IO1 = 21, + AXP803_REG_ID_MAX = 22, }; -struct attr_resp { - u32 attr[1]; +enum { + AXP806_DCDCA = 0, + AXP806_DCDCB = 1, + AXP806_DCDCC = 2, + AXP806_DCDCD = 3, + AXP806_DCDCE = 4, + AXP806_ALDO1 = 5, + AXP806_ALDO2 = 6, + AXP806_ALDO3 = 7, + AXP806_BLDO1 = 8, + AXP806_BLDO2 = 9, + AXP806_BLDO3 = 10, + AXP806_BLDO4 = 11, + AXP806_CLDO1 = 12, + AXP806_CLDO2 = 13, + AXP806_CLDO3 = 14, + AXP806_SW = 15, + AXP806_REG_ID_MAX = 16, }; -struct topology_resp { - u32 topology[3]; +enum { + AXP809_DCDC1 = 0, + AXP809_DCDC2 = 1, + AXP809_DCDC3 = 2, + AXP809_DCDC4 = 3, + AXP809_DCDC5 = 4, + AXP809_DC1SW = 5, + AXP809_DC5LDO = 6, + AXP809_ALDO1 = 7, + AXP809_ALDO2 = 8, + AXP809_ALDO3 = 9, + AXP809_ELDO1 = 10, + AXP809_ELDO2 = 11, + AXP809_ELDO3 = 12, + AXP809_DLDO1 = 13, + AXP809_DLDO2 = 14, + AXP809_RTC_LDO = 15, + AXP809_LDO_IO0 = 16, + AXP809_LDO_IO1 = 17, + AXP809_SW = 18, + AXP809_REG_ID_MAX = 19, }; -struct parents_resp { - u32 parents[3]; +enum { + AXP813_DCDC1 = 0, + AXP813_DCDC2 = 1, + AXP813_DCDC3 = 2, + AXP813_DCDC4 = 3, + AXP813_DCDC5 = 4, + AXP813_DCDC6 = 5, + AXP813_DCDC7 = 6, + AXP813_ALDO1 = 7, + AXP813_ALDO2 = 8, + AXP813_ALDO3 = 9, + AXP813_DLDO1 = 10, + AXP813_DLDO2 = 11, + AXP813_DLDO3 = 12, + AXP813_DLDO4 = 13, + AXP813_ELDO1 = 14, + AXP813_ELDO2 = 15, + AXP813_ELDO3 = 16, + AXP813_FLDO1 = 17, + AXP813_FLDO2 = 18, + AXP813_FLDO3 = 19, + AXP813_RTC_LDO = 20, + AXP813_LDO_IO0 = 21, + AXP813_LDO_IO1 = 22, + AXP813_SW = 23, + AXP813_REG_ID_MAX = 24, }; -enum rpi_firmware_property_tag { - RPI_FIRMWARE_PROPERTY_END = 0, - RPI_FIRMWARE_GET_FIRMWARE_REVISION = 1, - RPI_FIRMWARE_SET_CURSOR_INFO = 32784, - RPI_FIRMWARE_SET_CURSOR_STATE = 32785, - RPI_FIRMWARE_GET_BOARD_MODEL = 65537, - RPI_FIRMWARE_GET_BOARD_REVISION = 65538, - RPI_FIRMWARE_GET_BOARD_MAC_ADDRESS = 65539, - RPI_FIRMWARE_GET_BOARD_SERIAL = 65540, - RPI_FIRMWARE_GET_ARM_MEMORY = 65541, - RPI_FIRMWARE_GET_VC_MEMORY = 65542, - RPI_FIRMWARE_GET_CLOCKS = 65543, - RPI_FIRMWARE_GET_POWER_STATE = 131073, - RPI_FIRMWARE_GET_TIMING = 131074, - RPI_FIRMWARE_SET_POWER_STATE = 163841, - RPI_FIRMWARE_GET_CLOCK_STATE = 196609, - RPI_FIRMWARE_GET_CLOCK_RATE = 196610, - RPI_FIRMWARE_GET_VOLTAGE = 196611, - RPI_FIRMWARE_GET_MAX_CLOCK_RATE = 196612, - RPI_FIRMWARE_GET_MAX_VOLTAGE = 196613, - RPI_FIRMWARE_GET_TEMPERATURE = 196614, - RPI_FIRMWARE_GET_MIN_CLOCK_RATE = 196615, - RPI_FIRMWARE_GET_MIN_VOLTAGE = 196616, - RPI_FIRMWARE_GET_TURBO = 196617, - RPI_FIRMWARE_GET_MAX_TEMPERATURE = 196618, - RPI_FIRMWARE_GET_STC = 196619, - RPI_FIRMWARE_ALLOCATE_MEMORY = 196620, - RPI_FIRMWARE_LOCK_MEMORY = 196621, - RPI_FIRMWARE_UNLOCK_MEMORY = 196622, - RPI_FIRMWARE_RELEASE_MEMORY = 196623, - RPI_FIRMWARE_EXECUTE_CODE = 196624, - RPI_FIRMWARE_EXECUTE_QPU = 196625, - RPI_FIRMWARE_SET_ENABLE_QPU = 196626, - RPI_FIRMWARE_GET_DISPMANX_RESOURCE_MEM_HANDLE = 196628, - RPI_FIRMWARE_GET_EDID_BLOCK = 196640, - RPI_FIRMWARE_GET_CUSTOMER_OTP = 196641, - RPI_FIRMWARE_GET_DOMAIN_STATE = 196656, - RPI_FIRMWARE_GET_THROTTLED = 196678, - RPI_FIRMWARE_GET_CLOCK_MEASURED = 196679, - RPI_FIRMWARE_NOTIFY_REBOOT = 196680, - RPI_FIRMWARE_SET_CLOCK_STATE = 229377, - RPI_FIRMWARE_SET_CLOCK_RATE = 229378, - RPI_FIRMWARE_SET_VOLTAGE = 229379, - RPI_FIRMWARE_SET_TURBO = 229385, - RPI_FIRMWARE_SET_CUSTOMER_OTP = 229409, - RPI_FIRMWARE_SET_DOMAIN_STATE = 229424, - RPI_FIRMWARE_GET_GPIO_STATE = 196673, - RPI_FIRMWARE_SET_GPIO_STATE = 229441, - RPI_FIRMWARE_SET_SDHOST_CLOCK = 229442, - RPI_FIRMWARE_GET_GPIO_CONFIG = 196675, - RPI_FIRMWARE_SET_GPIO_CONFIG = 229443, - RPI_FIRMWARE_GET_PERIPH_REG = 196677, - RPI_FIRMWARE_SET_PERIPH_REG = 229445, - RPI_FIRMWARE_GET_POE_HAT_VAL = 196681, - RPI_FIRMWARE_SET_POE_HAT_VAL = 196688, - RPI_FIRMWARE_NOTIFY_XHCI_RESET = 196696, - RPI_FIRMWARE_NOTIFY_DISPLAY_DONE = 196710, - RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 262145, - RPI_FIRMWARE_FRAMEBUFFER_BLANK = 262146, - RPI_FIRMWARE_FRAMEBUFFER_GET_PHYSICAL_WIDTH_HEIGHT = 262147, - RPI_FIRMWARE_FRAMEBUFFER_GET_VIRTUAL_WIDTH_HEIGHT = 262148, - RPI_FIRMWARE_FRAMEBUFFER_GET_DEPTH = 262149, - RPI_FIRMWARE_FRAMEBUFFER_GET_PIXEL_ORDER = 262150, - RPI_FIRMWARE_FRAMEBUFFER_GET_ALPHA_MODE = 262151, - RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH = 262152, - RPI_FIRMWARE_FRAMEBUFFER_GET_VIRTUAL_OFFSET = 262153, - RPI_FIRMWARE_FRAMEBUFFER_GET_OVERSCAN = 262154, - RPI_FIRMWARE_FRAMEBUFFER_GET_PALETTE = 262155, - RPI_FIRMWARE_FRAMEBUFFER_GET_TOUCHBUF = 262159, - RPI_FIRMWARE_FRAMEBUFFER_GET_GPIOVIRTBUF = 262160, - RPI_FIRMWARE_FRAMEBUFFER_RELEASE = 294913, - RPI_FIRMWARE_FRAMEBUFFER_TEST_PHYSICAL_WIDTH_HEIGHT = 278531, - RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_WIDTH_HEIGHT = 278532, - RPI_FIRMWARE_FRAMEBUFFER_TEST_DEPTH = 278533, - RPI_FIRMWARE_FRAMEBUFFER_TEST_PIXEL_ORDER = 278534, - RPI_FIRMWARE_FRAMEBUFFER_TEST_ALPHA_MODE = 278535, - RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_OFFSET = 278537, - RPI_FIRMWARE_FRAMEBUFFER_TEST_OVERSCAN = 278538, - RPI_FIRMWARE_FRAMEBUFFER_TEST_PALETTE = 278539, - RPI_FIRMWARE_FRAMEBUFFER_TEST_VSYNC = 278542, - RPI_FIRMWARE_FRAMEBUFFER_SET_PHYSICAL_WIDTH_HEIGHT = 294915, - RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_WIDTH_HEIGHT = 294916, - RPI_FIRMWARE_FRAMEBUFFER_SET_DEPTH = 294917, - RPI_FIRMWARE_FRAMEBUFFER_SET_PIXEL_ORDER = 294918, - RPI_FIRMWARE_FRAMEBUFFER_SET_ALPHA_MODE = 294919, - RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_OFFSET = 294921, - RPI_FIRMWARE_FRAMEBUFFER_SET_OVERSCAN = 294922, - RPI_FIRMWARE_FRAMEBUFFER_SET_PALETTE = 294923, - RPI_FIRMWARE_FRAMEBUFFER_SET_TOUCHBUF = 294943, - RPI_FIRMWARE_FRAMEBUFFER_SET_GPIOVIRTBUF = 294944, - RPI_FIRMWARE_FRAMEBUFFER_SET_VSYNC = 294926, - RPI_FIRMWARE_FRAMEBUFFER_SET_BACKLIGHT = 294927, - RPI_FIRMWARE_VCHIQ_INIT = 294928, - RPI_FIRMWARE_GET_COMMAND_LINE = 327681, - RPI_FIRMWARE_GET_DMA_CHANNELS = 393217, +struct mt6357_regulator_info { + struct regulator_desc desc; + u32 da_vsel_reg; + u32 da_vsel_mask; +}; + +enum { + MT6357_ID_VCORE = 0, + MT6357_ID_VMODEM = 1, + MT6357_ID_VPA = 2, + MT6357_ID_VPROC = 3, + MT6357_ID_VS1 = 4, + MT6357_ID_VAUX18 = 5, + MT6357_ID_VAUD28 = 6, + MT6357_ID_VCAMA = 7, + MT6357_ID_VCAMD = 8, + MT6357_ID_VCAMIO = 9, + MT6357_ID_VCN18 = 10, + MT6357_ID_VCN28 = 11, + MT6357_ID_VCN33_BT = 12, + MT6357_ID_VCN33_WIFI = 13, + MT6357_ID_VDRAM = 14, + MT6357_ID_VEFUSE = 15, + MT6357_ID_VEMC = 16, + MT6357_ID_VFE28 = 17, + MT6357_ID_VIBR = 18, + MT6357_ID_VIO18 = 19, + MT6357_ID_VIO28 = 20, + MT6357_ID_VLDO28 = 21, + MT6357_ID_VMC = 22, + MT6357_ID_VMCH = 23, + MT6357_ID_VRF12 = 24, + MT6357_ID_VRF18 = 25, + MT6357_ID_VSIM1 = 26, + MT6357_ID_VSIM2 = 27, + MT6357_ID_VSRAM_OTHERS = 28, + MT6357_ID_VSRAM_PROC = 29, + MT6357_ID_VUSB33 = 30, + MT6357_ID_VXO22 = 31, + MT6357_ID_RG_MAX = 32, }; -struct rpi_firmware; - -struct rpi_power_domain { - u32 domain; - bool enabled; - bool old_interface; - struct generic_pm_domain base; - struct rpi_firmware *fw; +struct uniphier_regulator_soc_data { + int nclks; + const char * const *clock_names; + int nrsts; + const char * const *reset_names; + const struct regulator_desc *desc; + const struct regmap_config *regconf; }; -struct rpi_power_domains { - bool has_new_interface; - struct genpd_onecell_data xlate; - struct rpi_firmware *fw; - struct rpi_power_domain domains[23]; +struct uniphier_regulator_priv { + struct clk_bulk_data clk[2]; + struct reset_control *rst[2]; + const struct uniphier_regulator_soc_data *data; }; -struct rpi_power_domain_packet { - u32 domain; - u32 on; +enum tty_flow_change { + TTY_FLOW_NO_CHANGE = 0, + TTY_THROTTLE_SAFE = 1, + TTY_UNTHROTTLE_SAFE = 2, }; -struct meson_secure_pwrc_domain_desc; - -struct meson_secure_pwrc_domain_data { - unsigned int count; - struct meson_secure_pwrc_domain_desc *domains; +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 meson_secure_pwrc_domain; - -struct meson_secure_pwrc_domain_desc { - unsigned int index; - unsigned int flags; - char *name; - bool (*is_off)(struct meson_secure_pwrc_domain *); +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 meson_secure_pwrc; - -struct meson_secure_pwrc_domain { - struct generic_pm_domain base; - unsigned int index; - struct meson_secure_pwrc *pwrc; +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 meson_secure_pwrc { - struct meson_secure_pwrc_domain *domains; - struct genpd_onecell_data xlate; - struct meson_sm_firmware *fw; +struct owl_uart_port { + struct uart_port port; + struct clk *clk; }; -struct exynos_pm_domain_config { - u32 local_pwr_cfg; +struct owl_uart_info { + unsigned int tx_fifosize; }; -struct exynos_pm_domain { - void *base; - struct generic_pm_domain pd; - u32 local_pwr_cfg; +struct dart_io_pgtable { + struct io_pgtable iop; + int tbl_bits; + int bits_per_level; + void *pgd[4]; }; -struct xen_feature_info { - unsigned int submap_idx; - uint32_t submap; -}; +typedef u64 dart_iopte; -enum shutdown_state { - SHUTDOWN_INVALID = -1, - SHUTDOWN_POWEROFF = 0, - SHUTDOWN_SUSPEND = 2, - SHUTDOWN_HALT = 4, -}; +struct probe; -struct shutdown_handler { - const char command[11]; - bool flag; - void (*cb)(); +struct kobj_map { + struct probe *probes[255]; + struct mutex *lock; }; -struct suspend_info { - int cancelled; +struct probe { + struct probe *next; + dev_t dev; + unsigned long range; + struct module *owner; + kobj_probe_t *get; + int (*lock)(dev_t, void *); + void *data; }; -struct evtchn_loop_ctrl { - ktime_t timeout; - unsigned int count; - bool defer_eoi; +struct regmap_irq_chip_data { + struct mutex lock; + struct irq_chip irq_chip; + struct regmap *map; + const struct regmap_irq_chip *chip; + int irq_base; + struct irq_domain *domain; + int irq; + int wake_count; + void *status_reg_buf; + unsigned int *main_status_buf; + unsigned int *status_buf; + unsigned int *mask_buf; + unsigned int *mask_buf_def; + unsigned int *wake_buf; + unsigned int *type_buf; + unsigned int *type_buf_def; + unsigned int **config_buf; + unsigned int irq_reg_stride; + unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int); + unsigned int clear_status: 1; }; -enum ipi_vector { - XEN_PLACEHOLDER_VECTOR = 0, - XEN_NR_IPIS = 1, -}; +struct dma_fence; -struct irq_info { - struct list_head list; - struct list_head eoi_list; - short refcnt; - u8 spurious_cnt; - u8 is_accounted; - short type; - u8 mask_reason; - u8 is_active; - unsigned int irq; - evtchn_port_t evtchn; - unsigned short cpu; - unsigned short eoi_cpu; - unsigned int irq_epoch; - u64 eoi_time; - raw_spinlock_t lock; - bool is_static; +typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); + +struct dma_fence_ops; + +struct dma_fence { + spinlock_t *lock; + const struct dma_fence_ops *ops; union { - unsigned short virq; - enum ipi_vector ipi; - struct { - unsigned short pirq; - unsigned short gsi; - unsigned char vector; - unsigned char flags; - uint16_t domid; - } pirq; - struct xenbus_device *interdomain; - } u; + 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 lateeoi_work { - struct delayed_work delayed; - spinlock_t eoi_list_lock; - struct list_head eoi_list; +struct dma_fence_ops { + bool use_64bit_seqno; + const char * (*get_driver_name)(struct dma_fence *); + const char * (*get_timeline_name)(struct dma_fence *); + bool (*enable_signaling)(struct dma_fence *); + bool (*signaled)(struct dma_fence *); + long (*wait)(struct dma_fence *, bool, long); + void (*release)(struct dma_fence *); + void (*fence_value_str)(struct dma_fence *, char *, int); + void (*timeline_value_str)(struct dma_fence *, char *, int); + void (*set_deadline)(struct dma_fence *, ktime_t); }; -enum xen_irq_type { - IRQT_UNBOUND = 0, - IRQT_PIRQ = 1, - IRQT_VIRQ = 2, - IRQT_IPI = 3, - IRQT_EVTCHN = 4, -}; +typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *); -struct evtchn_bind_interdomain { - domid_t remote_dom; - evtchn_port_t remote_port; - evtchn_port_t local_port; -}; +typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *); -struct evtchn_status { - domid_t dom; - evtchn_port_t port; - uint32_t status; - uint32_t vcpu; - union { - struct { - domid_t dom; - } unbound; - struct { - domid_t dom; - evtchn_port_t port; - } interdomain; - uint32_t pirq; - uint32_t virq; - } u; -}; +typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *); -struct evtchn_bind_ipi { - uint32_t vcpu; - evtchn_port_t port; -}; +typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *); -typedef struct { - union { - evtchn_port_t *p; - uint64_t q; - }; -} __guest_handle_evtchn_port_t; +typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *); -struct sched_poll { - __guest_handle_evtchn_port_t ports; - unsigned int nr_ports; - uint64_t timeout; +typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *); + +enum dma_fence_flag_bits { + DMA_FENCE_FLAG_SIGNALED_BIT = 0, + DMA_FENCE_FLAG_TIMESTAMP_BIT = 1, + DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2, + DMA_FENCE_FLAG_USER_BITS = 3, }; -struct evtchn_bind_virq { - uint32_t virq; - uint32_t vcpu; - evtchn_port_t port; +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 physdev_map_pirq { - domid_t domid; - int type; - int index; - int pirq; - int bus; - int devfn; - int entry_nr; - uint64_t table_base; +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 evtchn_bind_vcpu { - evtchn_port_t port; - uint32_t vcpu; +struct default_wait_cb { + struct dma_fence_cb base; + struct task_struct *task; }; -struct physdev_irq { - uint32_t irq; - uint32_t vector; +struct trace_event_data_offsets_dma_fence { + u32 driver; + u32 timeline; }; -struct physdev_irq_status_query { - uint32_t irq; - uint32_t flags; +struct hisi_hba; + +struct hisi_sas_device; + +struct hisi_sas_dq; + +struct hisi_sas_slot; + +struct hisi_sas_hw { + int (*hw_init)(struct hisi_hba *); + int (*interrupt_preinit)(struct hisi_hba *); + void (*setup_itct)(struct hisi_hba *, struct hisi_sas_device *); + int (*slot_index_alloc)(struct hisi_hba *, struct domain_device *); + struct hisi_sas_device * (*alloc_dev)(struct domain_device *); + void (*sl_notify_ssp)(struct hisi_hba *, int); + void (*start_delivery)(struct hisi_sas_dq *); + void (*prep_ssp)(struct hisi_hba *, struct hisi_sas_slot *); + void (*prep_smp)(struct hisi_hba *, struct hisi_sas_slot *); + void (*prep_stp)(struct hisi_hba *, struct hisi_sas_slot *); + void (*prep_abort)(struct hisi_hba *, struct hisi_sas_slot *); + void (*phys_init)(struct hisi_hba *); + void (*phy_start)(struct hisi_hba *, int); + void (*phy_disable)(struct hisi_hba *, int); + void (*phy_hard_reset)(struct hisi_hba *, int); + void (*get_events)(struct hisi_hba *, int); + void (*phy_set_linkrate)(struct hisi_hba *, int, struct sas_phy_linkrates *); + enum sas_linkrate (*phy_get_max_linkrate)(); + int (*clear_itct)(struct hisi_hba *, struct hisi_sas_device *); + void (*free_device)(struct hisi_sas_device *); + int (*get_wideport_bitmap)(struct hisi_hba *, int); + void (*dereg_device)(struct hisi_hba *, struct domain_device *); + int (*soft_reset)(struct hisi_hba *); + u32 (*get_phys_state)(struct hisi_hba *); + int (*write_gpio)(struct hisi_hba *, u8, u8, u8, u8 *); + void (*wait_cmds_complete_timeout)(struct hisi_hba *, int, int); + int (*debugfs_snapshot_regs)(struct hisi_hba *); + int complete_hdr_size; + const struct scsi_host_template *sht; }; -struct physdev_get_free_pirq { - int type; - uint32_t pirq; +struct hisi_sas_cq { + struct hisi_hba *hisi_hba; + const struct cpumask *irq_mask; + int rd_point; + int id; + int irq_no; + spinlock_t poll_lock; }; -struct physdev_unmap_pirq { - domid_t domid; - int pirq; +struct hisi_sas_dq { + struct hisi_hba *hisi_hba; + struct list_head list; + spinlock_t lock; + int wr_point; + int id; }; -struct evtchn_set_priority { - evtchn_port_t port; - uint32_t priority; +struct hisi_sas_debugfs_fifo { + u32 signal_sel; + u32 dump_msk; + u32 dump_mode; + u32 trigger; + u32 trigger_msk; + u32 trigger_mode; + u32 rd_data[32]; }; -struct evtchn_bind_pirq { - uint32_t pirq; - uint32_t flags; - evtchn_port_t port; +struct hisi_sas_port; + +struct hisi_sas_phy { + struct work_struct works[3]; + struct hisi_hba *hisi_hba; + struct hisi_sas_port *port; + struct asd_sas_phy sas_phy; + struct sas_identify identify; + struct completion *reset_completion; + struct timer_list timer; + spinlock_t lock; + u64 port_id; + u64 frame_rcvd_size; + u8 frame_rcvd[32]; + u8 phy_attached; + u8 in_reset; + u8 reserved[2]; + u32 phy_type; + u32 code_violation_err_count; + enum sas_linkrate minimum_linkrate; + enum sas_linkrate maximum_linkrate; + int enable; + int wait_phyup_cnt; + atomic_t down_cnt; + struct hisi_sas_debugfs_fifo fifo; }; -struct physdev_eoi { - uint32_t irq; +struct hisi_sas_port { + struct asd_sas_port sas_port; + u8 port_attached; + u8 id; }; -struct rk8xx_register_bit { - u8 reg; - u8 bit; +enum dev_status { + HISI_SAS_DEV_INIT = 0, + HISI_SAS_DEV_NORMAL = 1, + HISI_SAS_DEV_NCQ_ERR = 2, }; -enum { - RK805_ID = 32848, - RK806_ID = 32864, - RK808_ID = 0, - RK809_ID = 32912, - RK817_ID = 33136, - RK818_ID = 33152, +struct hisi_sas_device { + struct hisi_hba *hisi_hba; + struct domain_device *sas_device; + struct completion *completion; + struct hisi_sas_dq *dq; + struct list_head list; + enum sas_device_type dev_type; + enum dev_status dev_status; + int device_id; + int sata_idx; + spinlock_t lock; }; -enum rk809_reg_id { - RK809_ID_DCDC5 = 13, - RK809_ID_SW1 = 14, - RK809_ID_SW2 = 15, - RK809_NUM_REGULATORS = 16, +struct hisi_sas_debugfs_regs { + struct hisi_hba *hisi_hba; + u32 *data; }; -enum rk817_reg_id { - RK817_ID_DCDC1 = 0, - RK817_ID_DCDC2 = 1, - RK817_ID_DCDC3 = 2, - RK817_ID_DCDC4 = 3, - RK817_ID_LDO1 = 4, - RK817_ID_LDO2 = 5, - RK817_ID_LDO3 = 6, - RK817_ID_LDO4 = 7, - RK817_ID_LDO5 = 8, - RK817_ID_LDO6 = 9, - RK817_ID_LDO7 = 10, - RK817_ID_LDO8 = 11, - RK817_ID_LDO9 = 12, - RK817_ID_BOOST = 13, - RK817_ID_BOOST_OTG_SW = 14, - RK817_NUM_REGULATORS = 15, +struct hisi_sas_debugfs_port { + struct hisi_sas_phy *phy; + u32 *data; }; -struct rk808_regulator_data { - struct gpio_desc *dvs_gpio[2]; +struct hisi_sas_debugfs_cq { + struct hisi_sas_cq *cq; + void *complete_hdr; }; -struct rk808 { - struct device *dev; - struct regmap_irq_chip_data *irq_data; - struct regmap *regmap; - long variant; - const struct regmap_config *regmap_cfg; - const struct regmap_irq_chip *regmap_irq_chip; +struct hisi_sas_cmd_hdr; + +struct hisi_sas_debugfs_dq { + struct hisi_sas_dq *dq; + struct hisi_sas_cmd_hdr *hdr; }; -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 hisi_sas_iost; + +struct hisi_sas_debugfs_iost { + struct hisi_sas_iost *iost; }; -enum lpuart_type { - VF610_LPUART = 0, - LS1021A_LPUART = 1, - LS1028A_LPUART = 2, - IMX7ULP_LPUART = 3, - IMX8ULP_LPUART = 4, - IMX8QXP_LPUART = 5, - IMXRT1050_LPUART = 6, +struct hisi_sas_itct; + +struct hisi_sas_debugfs_itct { + struct hisi_sas_itct *itct; }; -struct lpuart_port { - struct uart_port port; - enum lpuart_type devtype; - struct clk *ipg_clk; - struct clk *baud_clk; - unsigned int txfifo_size; - unsigned int rxfifo_size; - u8 rx_watermark; - bool lpuart_dma_tx_use; - bool lpuart_dma_rx_use; - struct dma_chan *dma_tx_chan; - struct dma_chan *dma_rx_chan; - struct dma_async_tx_descriptor *dma_tx_desc; - struct dma_async_tx_descriptor *dma_rx_desc; - dma_cookie_t dma_tx_cookie; - dma_cookie_t dma_rx_cookie; - unsigned int dma_tx_bytes; - unsigned int dma_rx_bytes; - bool dma_tx_in_progress; - unsigned int dma_rx_timeout; - struct timer_list lpuart_timer; - struct scatterlist rx_sgl; - struct scatterlist tx_sgl[2]; - struct circ_buf rx_ring; - int rx_dma_rng_buf_len; - int last_residue; - unsigned int dma_tx_nents; - wait_queue_head_t dma_wait; - bool is_cs7; +struct hisi_sas_iost_itct_cache; + +struct hisi_sas_debugfs_iost_cache { + struct hisi_sas_iost_itct_cache *cache; }; -struct lpuart_soc_data { - enum lpuart_type devtype; - char iotype; - u8 reg_off; - u8 rx_watermark; +struct hisi_sas_debugfs_itct_cache { + struct hisi_sas_iost_itct_cache *cache; }; -typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); +struct hisi_sas_initial_fis; -typedef void (*btf_trace_thermal_pressure_update)(void *, int, unsigned long); +struct hisi_sas_breakpoint; -enum scale_freq_source { - SCALE_FREQ_SOURCE_CPUFREQ = 0, - SCALE_FREQ_SOURCE_ARCH = 1, - SCALE_FREQ_SOURCE_CPPC = 2, +struct hisi_hba { + struct sas_ha_struct *p; + struct platform_device *platform_dev; + struct pci_dev *pci_dev; + struct device *dev; + int prot_mask; + void *regs; + void *sgpio_regs; + struct regmap *ctrl; + u32 ctrl_reset_reg; + u32 ctrl_reset_sts_reg; + u32 ctrl_clock_ena_reg; + u32 refclk_frequency_mhz; + u8 sas_addr[8]; + int *irq_map; + int n_phy; + spinlock_t lock; + struct semaphore sem; + struct timer_list timer; + struct workqueue_struct *wq; + int slot_index_count; + int last_slot_index; + int last_dev_id; + unsigned long *slot_index_tags; + unsigned long reject_stp_links_msk; + struct sas_ha_struct sha; + struct Scsi_Host *shost; + struct hisi_sas_cq cq[32]; + struct hisi_sas_dq dq[32]; + struct hisi_sas_phy phy[9]; + struct hisi_sas_port port[9]; + int queue_count; + struct hisi_sas_device devices[1024]; + struct hisi_sas_cmd_hdr *cmd_hdr[32]; + dma_addr_t cmd_hdr_dma[32]; + void *complete_hdr[32]; + dma_addr_t complete_hdr_dma[32]; + struct hisi_sas_initial_fis *initial_fis; + dma_addr_t initial_fis_dma; + struct hisi_sas_itct *itct; + dma_addr_t itct_dma; + struct hisi_sas_iost *iost; + dma_addr_t iost_dma; + struct hisi_sas_breakpoint *breakpoint; + dma_addr_t breakpoint_dma; + struct hisi_sas_breakpoint *sata_breakpoint; + dma_addr_t sata_breakpoint_dma; + struct hisi_sas_slot *slot_info; + unsigned long flags; + const struct hisi_sas_hw *hw; + unsigned long sata_dev_bitmap[16]; + struct work_struct rst_work; + u32 phy_state; + u32 intr_coal_ticks; + u32 intr_coal_count; + int cq_nvecs; + enum sas_linkrate debugfs_bist_linkrate; + int debugfs_bist_code_mode; + int debugfs_bist_phy_no; + int debugfs_bist_mode; + u32 debugfs_bist_cnt; + int debugfs_bist_enable; + u32 debugfs_bist_ffe[72]; + u32 debugfs_bist_fixed_code[2]; + struct hisi_sas_debugfs_regs debugfs_regs[150]; + struct hisi_sas_debugfs_port debugfs_port_reg[450]; + struct hisi_sas_debugfs_cq debugfs_cq[1600]; + struct hisi_sas_debugfs_dq debugfs_dq[1600]; + struct hisi_sas_debugfs_iost debugfs_iost[50]; + struct hisi_sas_debugfs_itct debugfs_itct[50]; + struct hisi_sas_debugfs_iost_cache debugfs_iost_cache[50]; + struct hisi_sas_debugfs_itct_cache debugfs_itct_cache[50]; + u64 debugfs_timestamp[50]; + int debugfs_dump_index; + struct dentry *debugfs_dir; + struct dentry *debugfs_dump_dentry; + struct dentry *debugfs_bist_dentry; + struct dentry *debugfs_fifo_dentry; + int iopoll_q_cnt; }; -struct scale_freq_data { - enum scale_freq_source source; - void (*set_freq_scale)(); +struct hisi_sas_cmd_hdr { + __le32 dw0; + __le32 dw1; + __le32 dw2; + __le32 transfer_tags; + __le32 data_transfer_len; + __le32 first_burst_num; + __le32 sg_len; + __le32 dw7; + __le64 cmd_table_addr; + __le64 sts_buffer_addr; + __le64 prd_table_addr; + __le64 dif_prd_table_addr; }; -struct cpu_topology { - int thread_id; - int core_id; - int cluster_id; - int package_id; - cpumask_t thread_sibling; - cpumask_t core_sibling; - cpumask_t cluster_sibling; - cpumask_t llc_sibling; +struct hisi_sas_err_record { + u32 data[4]; }; -struct trace_event_raw_thermal_pressure_update { - struct trace_entry ent; - unsigned long thermal_pressure; - int cpu; - char __data[0]; +struct hisi_sas_initial_fis { + struct hisi_sas_err_record err_record; + struct dev_to_host_fis fis; + u32 rsvd[3]; }; -struct cppc_perf_caps { - u32 guaranteed_perf; - u32 highest_perf; - u32 nominal_perf; - u32 lowest_perf; - u32 lowest_nonlinear_perf; - u32 lowest_freq; - u32 nominal_freq; - u32 energy_perf; - bool auto_sel; +struct hisi_sas_itct { + __le64 qw0; + __le64 sas_addr; + __le64 qw2; + __le64 qw3; + __le64 qw4_15[12]; }; -struct trace_event_data_offsets_thermal_pressure_update {}; +struct hisi_sas_iost { + __le64 qw0; + __le64 qw1; + __le64 qw2; + __le64 qw3; +}; -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 hisi_sas_breakpoint { + u8 data[128]; }; -struct dma_fence_unwrap { - struct dma_fence *chain; - struct dma_fence *array; - unsigned int index; +struct hisi_sas_slot { + struct list_head entry; + struct list_head delivery; + struct sas_task *task; + struct hisi_sas_port *port; + u64 n_elem; + u64 n_elem_dif; + int dlvry_queue; + int dlvry_queue_slot; + int cmplt_queue; + int cmplt_queue_slot; + int abort; + int ready; + int device_id; + void *cmd_hdr; + dma_addr_t cmd_hdr_dma; + struct timer_list internal_abort_timer; + bool is_internal; + struct sas_tmf_task *tmf; + void *buf; + dma_addr_t buf_dma; + u16 idx; }; -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; +struct hisi_sas_iost_itct_cache { + u32 data[10]; }; -enum { - ACTION_FAIL = 0, - ACTION_REPREP = 1, - ACTION_DELAYED_REPREP = 2, - ACTION_RETRY = 3, - ACTION_DELAYED_RETRY = 4, +struct signal_attenuation_s; + +struct sig_atten_lu_s { + const struct signal_attenuation_s *att; + u32 sas_phy_ctrl; }; -enum scsi_ml_status { - SCSIML_STAT_OK = 0, - SCSIML_STAT_RESV_CONFLICT = 1, - SCSIML_STAT_NOSPC = 2, - SCSIML_STAT_MED_ERROR = 3, - SCSIML_STAT_TGT_FAILURE = 4, - SCSIML_STAT_DL_TIMEOUT = 5, +struct signal_attenuation_s { + u32 de_emphasis; + u32 preshoot; + u32 boost; }; -typedef void (*activate_complete)(void *, int); +struct hisi_sas_hw_error { + u32 irq_msk; + u32 msk; + int shift; + const char *msg; + int reg; + const struct hisi_sas_hw_error *sub; +}; -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 *); +enum { + HISI_SAS_PHY_PHY_UPDOWN = 0, + HISI_SAS_PHY_CHNL_INT = 1, + HISI_SAS_PHY_INT_NR = 2, }; -struct scsi_event { - enum scsi_device_event evt_type; - struct list_head node; +enum { + PORT_TYPE_SAS = 2, + PORT_TYPE_SATA = 1, }; -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 *); +enum hisi_sas_phy_event { + HISI_PHYE_PHY_UP = 0, + HISI_PHYE_LINK_RESET = 1, + HISI_PHYE_PHY_UP_PM = 2, + HISI_PHYES_NUM = 3, }; -struct scsi_mode_data { - __u32 length; - __u16 block_descriptor_length; - __u8 medium_type; - __u8 device_specific; - __u8 header_length; - __u8 longlba: 1; +enum { + TRANS_TX_FAIL_BASE = 0, + TRANS_RX_FAIL_BASE = 32, + DMA_TX_ERR_BASE = 64, + SIPC_RX_ERR_BASE = 80, + DMA_RX_ERR_BASE = 96, + TRANS_TX_OPEN_FAIL_WITH_IT_NEXUS_LOSS = 0, + TRANS_TX_ERR_PHY_NOT_ENABLE = 1, + TRANS_TX_OPEN_CNX_ERR_WRONG_DESTINATION = 2, + TRANS_TX_OPEN_CNX_ERR_ZONE_VIOLATION = 3, + TRANS_TX_OPEN_CNX_ERR_BY_OTHER = 4, + RESERVED0 = 5, + TRANS_TX_OPEN_CNX_ERR_AIP_TIMEOUT = 6, + TRANS_TX_OPEN_CNX_ERR_STP_RESOURCES_BUSY = 7, + TRANS_TX_OPEN_CNX_ERR_PROTOCOL_NOT_SUPPORTED = 8, + TRANS_TX_OPEN_CNX_ERR_CONNECTION_RATE_NOT_SUPPORTED = 9, + TRANS_TX_OPEN_CNX_ERR_BAD_DESTINATION = 10, + TRANS_TX_OPEN_CNX_ERR_BREAK_RCVD = 11, + TRANS_TX_OPEN_CNX_ERR_LOW_PHY_POWER = 12, + TRANS_TX_OPEN_CNX_ERR_PATHWAY_BLOCKED = 13, + TRANS_TX_OPEN_CNX_ERR_OPEN_TIMEOUT = 14, + TRANS_TX_OPEN_CNX_ERR_NO_DESTINATION = 15, + TRANS_TX_OPEN_RETRY_ERR_THRESHOLD_REACHED = 16, + TRANS_TX_ERR_FRAME_TXED = 17, + TRANS_TX_ERR_WITH_BREAK_TIMEOUT = 18, + TRANS_TX_ERR_WITH_BREAK_REQUEST = 19, + TRANS_TX_ERR_WITH_BREAK_RECEVIED = 20, + TRANS_TX_ERR_WITH_CLOSE_TIMEOUT = 21, + TRANS_TX_ERR_WITH_CLOSE_NORMAL = 22, + TRANS_TX_ERR_WITH_CLOSE_PHYDISALE = 23, + TRANS_TX_ERR_WITH_CLOSE_DWS_TIMEOUT = 24, + TRANS_TX_ERR_WITH_CLOSE_COMINIT = 25, + TRANS_TX_ERR_WITH_NAK_RECEVIED = 26, + TRANS_TX_ERR_WITH_ACK_NAK_TIMEOUT = 27, + TRANS_TX_ERR_WITH_CREDIT_TIMEOUT = 28, + TRANS_TX_ERR_WITH_IPTT_CONFLICT = 29, + TRANS_TX_ERR_WITH_OPEN_BY_DES_OR_OTHERS = 30, + TRANS_TX_ERR_WITH_WAIT_RECV_TIMEOUT = 31, + TRANS_RX_ERR_WITH_RXFRAME_CRC_ERR = 32, + TRANS_RX_ERR_WITH_RXFIS_8B10B_DISP_ERR = 33, + TRANS_RX_ERR_WITH_RXFRAME_HAVE_ERRPRM = 34, + TRANS_RX_ERR_WITH_RXFIS_DECODE_ERROR = 35, + TRANS_RX_ERR_WITH_RXFIS_CRC_ERR = 36, + TRANS_RX_ERR_WITH_RXFRAME_LENGTH_OVERRUN = 37, + TRANS_RX_ERR_WITH_RXFIS_RX_SYNCP = 38, + TRANS_RX_ERR_WITH_LINK_BUF_OVERRUN = 39, + TRANS_RX_ERR_WITH_BREAK_TIMEOUT = 40, + TRANS_RX_ERR_WITH_BREAK_REQUEST = 41, + TRANS_RX_ERR_WITH_BREAK_RECEVIED = 42, + RESERVED1 = 43, + TRANS_RX_ERR_WITH_CLOSE_NORMAL = 44, + TRANS_RX_ERR_WITH_CLOSE_PHY_DISABLE = 45, + TRANS_RX_ERR_WITH_CLOSE_DWS_TIMEOUT = 46, + TRANS_RX_ERR_WITH_CLOSE_COMINIT = 47, + TRANS_RX_ERR_WITH_DATA_LEN0 = 48, + TRANS_RX_ERR_WITH_BAD_HASH = 49, + TRANS_RX_XRDY_WLEN_ZERO_ERR = 50, + TRANS_RX_SSP_FRM_LEN_ERR = 51, + RESERVED2 = 52, + RESERVED3 = 53, + RESERVED4 = 54, + RESERVED5 = 55, + TRANS_RX_ERR_WITH_BAD_FRM_TYPE = 56, + TRANS_RX_SMP_FRM_LEN_ERR = 57, + TRANS_RX_SMP_RESP_TIMEOUT_ERR = 58, + RESERVED6 = 59, + RESERVED7 = 60, + RESERVED8 = 61, + RESERVED9 = 62, + TRANS_RX_R_ERR = 63, + DMA_TX_DIF_CRC_ERR = 64, + DMA_TX_DIF_APP_ERR = 65, + DMA_TX_DIF_RPP_ERR = 66, + DMA_TX_DATA_SGL_OVERFLOW = 67, + DMA_TX_DIF_SGL_OVERFLOW = 68, + DMA_TX_UNEXP_XFER_ERR = 69, + DMA_TX_UNEXP_RETRANS_ERR = 70, + DMA_TX_XFER_LEN_OVERFLOW = 71, + DMA_TX_XFER_OFFSET_ERR = 72, + DMA_TX_RAM_ECC_ERR = 73, + DMA_TX_DIF_LEN_ALIGN_ERR = 74, + DMA_TX_MAX_ERR_CODE = 75, + SIPC_RX_FIS_STATUS_ERR_BIT_VLD = 80, + SIPC_RX_PIO_WRSETUP_STATUS_DRQ_ERR = 81, + SIPC_RX_FIS_STATUS_BSY_BIT_ERR = 82, + SIPC_RX_WRSETUP_LEN_ODD_ERR = 83, + SIPC_RX_WRSETUP_LEN_ZERO_ERR = 84, + SIPC_RX_WRDATA_LEN_NOT_MATCH_ERR = 85, + SIPC_RX_NCQ_WRSETUP_OFFSET_ERR = 86, + SIPC_RX_NCQ_WRSETUP_AUTO_ACTIVE_ERR = 87, + SIPC_RX_SATA_UNEXP_FIS_ERR = 88, + SIPC_RX_WRSETUP_ESTATUS_ERR = 89, + SIPC_RX_DATA_UNDERFLOW_ERR = 90, + SIPC_RX_MAX_ERR_CODE = 91, + DMA_RX_DIF_CRC_ERR = 96, + DMA_RX_DIF_APP_ERR = 97, + DMA_RX_DIF_RPP_ERR = 98, + DMA_RX_DATA_SGL_OVERFLOW = 99, + DMA_RX_DIF_SGL_OVERFLOW = 100, + DMA_RX_DATA_LEN_OVERFLOW = 101, + DMA_RX_DATA_LEN_UNDERFLOW = 102, + DMA_RX_DATA_OFFSET_ERR = 103, + RESERVED10 = 104, + DMA_RX_SATA_FRAME_TYPE_ERR = 105, + DMA_RX_RESP_BUF_OVERFLOW = 106, + DMA_RX_UNEXP_RETRANS_RESP_ERR = 107, + DMA_RX_UNEXP_NORM_RESP_ERR = 108, + DMA_RX_UNEXP_RDFRAME_ERR = 109, + DMA_RX_PIO_DATA_LEN_ERR = 110, + DMA_RX_RDSETUP_STATUS_ERR = 111, + DMA_RX_RDSETUP_STATUS_DRQ_ERR = 112, + DMA_RX_RDSETUP_STATUS_BSY_ERR = 113, + DMA_RX_RDSETUP_LEN_ODD_ERR = 114, + DMA_RX_RDSETUP_LEN_ZERO_ERR = 115, + DMA_RX_RDSETUP_LEN_OVER_ERR = 116, + DMA_RX_RDSETUP_OFFSET_ERR = 117, + DMA_RX_RDSETUP_ACTIVE_ERR = 118, + DMA_RX_RDSETUP_ESTATUS_ERR = 119, + DMA_RX_RAM_ECC_ERR = 120, + DMA_RX_UNKNOWN_FRM_ERR = 121, + DMA_RX_MAX_ERR_CODE = 122, }; -struct cfi_fixup { - uint16_t mfr; - uint16_t id; - void (*fixup)(struct mtd_info *); +enum hisi_sas_dev_type { + HISI_SAS_DEV_TYPE_STP = 0, + HISI_SAS_DEV_TYPE_SSP = 1, + HISI_SAS_DEV_TYPE_SATA = 2, }; -enum cfi_quirks { - CFI_QUIRK_DQ_TRUE_DATA = 1, +enum sas_gpio_reg_type { + SAS_GPIO_REG_CFG = 0, + SAS_GPIO_REG_RX = 1, + SAS_GPIO_REG_RX_GP = 2, + SAS_GPIO_REG_TX = 3, + SAS_GPIO_REG_TX_GP = 4, }; -enum fwh_lock_state { - FWH_UNLOCKED = 0, - FWH_DENY_WRITE = 1, - FWH_IMMUTABLE = 2, - FWH_DENY_READ = 4, +struct sas_identify_frame { + u8 frame_type: 4; + u8 dev_type: 3; + u8 _un0: 1; + u8 _un1; + union { + struct { + u8 _un20: 1; + u8 smp_iport: 1; + u8 stp_iport: 1; + u8 ssp_iport: 1; + u8 _un247: 4; + }; + u8 initiator_bits; + }; + union { + struct { + u8 _un30: 1; + u8 smp_tport: 1; + u8 stp_tport: 1; + u8 ssp_tport: 1; + u8 _un347: 4; + }; + u8 target_bits; + }; + u8 _un4_11[8]; + u8 sas_addr[8]; + u8 phy_id; + u8 _un21_27[7]; + __be32 crc; }; -struct cfi_pri_amdstd { - uint8_t pri[3]; - uint8_t MajorVersion; - uint8_t MinorVersion; - uint8_t SiliconRevision; - uint8_t EraseSuspend; - uint8_t BlkProt; - uint8_t TmpBlkUnprotect; - uint8_t BlkProtUnprot; - uint8_t SimultaneousOps; - uint8_t BurstMode; - uint8_t PageMode; - uint8_t VppMin; - uint8_t VppMax; - uint8_t TopBottom; - uint8_t ProgramSuspend; - uint8_t UnlockBypass; - uint8_t SecureSiliconSector; - uint8_t SoftwareFeatures; +struct ssp_response_iu { + u8 _r_a[10]; + u8 datapres: 2; + u8 _r_b: 6; + u8 status; + u32 _r_c; + __be32 sense_data_len; + __be32 response_data_len; + union { + struct { + struct {} __empty_resp_data; + u8 resp_data[0]; + }; + struct { + struct {} __empty_sense_data; + u8 sense_data[0]; + }; + }; }; -struct fwh_xxlock_thunk { - enum fwh_lock_state val; - flstate_t state; +struct hisi_sas_sge { + __le64 addr; + __le32 page_ctrl_0; + __le32 page_ctrl_1; + __le32 data_len; + __le32 data_off; }; -typedef int (*varsize_frob_t)(struct map_info *, struct flchip *, unsigned long, int, void *); +struct hisi_sas_sge_page { + struct hisi_sas_sge sge[124]; +}; -struct ppb_lock { - struct flchip *chip; - unsigned long adr; - int locked; +struct hisi_sas_complete_v2_hdr { + __le32 dw0; + __le32 dw1; + __le32 act; + __le32 dw3; }; -struct cfi_pri_atmel { - uint8_t pri[3]; - uint8_t MajorVersion; - uint8_t MinorVersion; - uint8_t Features; - uint8_t BottomBoot; - uint8_t BurstMode; - uint8_t PageMode; +struct hisi_sas_status_buffer { + struct hisi_sas_err_record err; + u8 iu[1024]; }; -typedef int (*otp_op_t)(struct map_info *, struct flchip *, loff_t, size_t, u_char *, size_t); +struct hisi_sas_err_record_v2 { + __le32 trans_tx_fail_type; + __le32 trans_rx_fail_type; + __le16 dma_tx_err_type; + __le16 sipc_rx_err_type; + __le32 dma_rx_err_type; +}; struct phylink { struct net_device *netdev; @@ -119640,6 +117374,7 @@ struct phylink { struct phylink_link_state phy_state; struct work_struct resolve; unsigned int pcs_neg_mode; + unsigned int pcs_state; bool mac_link_dropped; bool using_mac_select_pcs; struct sfp_bus *sfp_bus; @@ -119653,6 +117388,9 @@ enum { PHYLINK_DISABLE_STOPPED = 0, PHYLINK_DISABLE_LINK = 1, PHYLINK_DISABLE_MAC_WOL = 2, + PCS_STATE_DOWN = 0, + PCS_STATE_STARTING = 1, + PCS_STATE_STARTED = 2, }; struct phy_setting { @@ -119661,1836 +117399,2024 @@ struct phy_setting { u8 bit; }; -enum macb_bd_control { - TSTAMP_DISABLED = 0, - TSTAMP_FRAME_PTP_EVENT_ONLY = 1, - TSTAMP_ALL_PTP_FRAMES = 2, - TSTAMP_ALL_FRAMES = 3, +struct mdio_mux_mmioreg_state { + void *mux_handle; + phys_addr_t phys; + unsigned int iosize; + unsigned int mask; }; -struct macb_dma_desc_ptp { - u32 ts_1; - u32 ts_2; +enum { + TC_MQPRIO_HW_OFFLOAD_NONE = 0, + TC_MQPRIO_HW_OFFLOAD_TCS = 1, + __TC_MQPRIO_HW_OFFLOAD_MAX = 2, }; -struct macb_stats { - u32 rx_pause_frames; - u32 tx_ok; - u32 tx_single_cols; - u32 tx_multiple_cols; - u32 rx_ok; - u32 rx_fcs_errors; - u32 rx_align_errors; - u32 tx_deferred; - u32 tx_late_cols; - u32 tx_excessive_cols; - u32 tx_underruns; - u32 tx_carrier_errors; - u32 rx_resource_errors; - u32 rx_overruns; - u32 rx_symbol_errors; - u32 rx_oversize_pkts; - u32 rx_jabbers; - u32 rx_undersize_pkts; - u32 sqe_test_errors; - u32 rx_length_mismatch; - u32 tx_pause_frames; +enum rcb_int_flag { + RCB_INT_FLAG_TX = 1, + RCB_INT_FLAG_RX = 2, + RCB_INT_FLAG_MAX = 4, }; -struct gem_stats { - u32 tx_octets_31_0; - u32 tx_octets_47_32; - u32 tx_frames; - u32 tx_broadcast_frames; - u32 tx_multicast_frames; - u32 tx_pause_frames; - u32 tx_64_byte_frames; - u32 tx_65_127_byte_frames; - u32 tx_128_255_byte_frames; - u32 tx_256_511_byte_frames; - u32 tx_512_1023_byte_frames; - u32 tx_1024_1518_byte_frames; - u32 tx_greater_than_1518_byte_frames; - u32 tx_underrun; - u32 tx_single_collision_frames; - u32 tx_multiple_collision_frames; - u32 tx_excessive_collisions; - u32 tx_late_collisions; - u32 tx_deferred_frames; - u32 tx_carrier_sense_errors; - u32 rx_octets_31_0; - u32 rx_octets_47_32; - u32 rx_frames; - u32 rx_broadcast_frames; - u32 rx_multicast_frames; - u32 rx_pause_frames; - u32 rx_64_byte_frames; - u32 rx_65_127_byte_frames; - u32 rx_128_255_byte_frames; - u32 rx_256_511_byte_frames; - u32 rx_512_1023_byte_frames; - u32 rx_1024_1518_byte_frames; - u32 rx_greater_than_1518_byte_frames; - u32 rx_undersized_frames; - u32 rx_oversize_frames; - u32 rx_jabbers; - u32 rx_frame_check_sequence_errors; - u32 rx_length_field_frame_errors; - u32 rx_symbol_errors; - u32 rx_alignment_errors; - u32 rx_resource_errors; - u32 rx_overruns; - u32 rx_ip_header_checksum_errors; - u32 rx_tcp_checksum_errors; - u32 rx_udp_checksum_errors; +struct hnae_vf_cb { + u8 port_index; + struct hns_mac_cb *mac_cb; + struct dsaf_device *dsaf_dev; + struct hnae_handle ae_handle; }; -struct queue_stats { - union { - unsigned long first; - unsigned long rx_packets; - }; - unsigned long rx_bytes; - unsigned long rx_dropped; - unsigned long tx_packets; - unsigned long tx_bytes; - unsigned long tx_dropped; +struct hclge_mac_speed_map { + u32 speed_drv; + u32 speed_fw; }; -struct macb; +struct hclge_link_mode_bmap { + u16 support_bit; + enum ethtool_link_mode_bit_indices link_mode; +}; -struct macb_dma_desc; +struct hclge_mac_mgr_tbl_entry_cmd { + u8 flags; + u8 resp_code; + __le16 vlan_tag; + u8 mac_addr[6]; + __le16 rsv1; + __le16 ethter_type; + __le16 egress_port; + __le16 egress_queue; + u8 sw_port_id_aware; + u8 rsv2; + u8 i_port_bitmap; + u8 i_port_direction; + u8 rsv3[2]; +}; -struct macb_tx_skb; +struct hclge_speed_bit_map { + u32 speed; + u32 speed_bit; +}; -struct macb_queue { - struct macb *bp; - int irq; - unsigned int ISR; - unsigned int IER; - unsigned int IDR; - unsigned int IMR; - unsigned int TBQP; - unsigned int TBQPH; - unsigned int RBQS; - unsigned int RBQP; - unsigned int RBQPH; - spinlock_t tx_ptr_lock; - unsigned int tx_head; - unsigned int tx_tail; - struct macb_dma_desc *tx_ring; - struct macb_tx_skb *tx_skb; - dma_addr_t tx_ring_dma; - struct work_struct tx_error_task; - bool txubr_pending; - struct napi_struct napi_tx; - dma_addr_t rx_ring_dma; - dma_addr_t rx_buffers_dma; - unsigned int rx_tail; - unsigned int rx_prepared_head; - struct macb_dma_desc *rx_ring; - struct sk_buff **rx_skbuff; - void *rx_buffers; - struct napi_struct napi_rx; - struct queue_stats stats; +enum HCLGE_FD_KEY_OPT { + KEY_OPT_U8 = 0, + KEY_OPT_LE16 = 1, + KEY_OPT_LE32 = 2, + KEY_OPT_MAC = 3, + KEY_OPT_IP = 4, + KEY_OPT_VNI = 5, }; -struct macb_or_gem_ops { - int (*mog_alloc_rx_buffers)(struct macb *); - void (*mog_free_rx_buffers)(struct macb *); - void (*mog_init_rings)(struct macb *); - int (*mog_rx)(struct macb_queue *, struct napi_struct *, int); +struct key_info { + u8 key_type; + u8 key_length; + enum HCLGE_FD_KEY_OPT key_opt; + int offset; + int moffset; }; -struct macb_tx_skb { - struct sk_buff *skb; - dma_addr_t mapping; - size_t size; - bool mapped_as_page; +struct hclge_comm_stats_str { + char desc[32]; + u32 stats_num; + unsigned long offset; }; -struct tsu_incr { - u32 sub_ns; - u32 ns; +enum HCLGE_VPORT_STATE { + HCLGE_VPORT_STATE_ALIVE = 0, + HCLGE_VPORT_STATE_MAC_TBL_CHANGE = 1, + HCLGE_VPORT_STATE_PROMISC_CHANGE = 2, + HCLGE_VPORT_STATE_VLAN_FLTR_CHANGE = 3, + HCLGE_VPORT_STATE_INITED = 4, + HCLGE_VPORT_STATE_MAX = 5, }; -struct ethtool_rx_fs_list { - struct list_head list; - unsigned int count; +enum HCLGE_MAC_NODE_STATE { + HCLGE_MAC_TO_ADD = 0, + HCLGE_MAC_TO_DEL = 1, + HCLGE_MAC_ACTIVE = 2, }; -struct macb_pm_data { - u32 scrt2; - u32 usrio; +enum HCLGE_MAC_ADDR_TYPE { + HCLGE_MAC_ADDR_UC = 0, + HCLGE_MAC_ADDR_MC = 1, }; -struct macb_ptp_info; +enum HCLGE_MAC_DUPLEX { + HCLGE_MAC_HALF = 0, + HCLGE_MAC_FULL = 1, +}; -struct macb_usrio_config; +enum HCLGE_MAC_SPEED { + HCLGE_MAC_SPEED_UNKNOWN = 0, + HCLGE_MAC_SPEED_10M = 10, + HCLGE_MAC_SPEED_100M = 100, + HCLGE_MAC_SPEED_1G = 1000, + HCLGE_MAC_SPEED_10G = 10000, + HCLGE_MAC_SPEED_25G = 25000, + HCLGE_MAC_SPEED_40G = 40000, + HCLGE_MAC_SPEED_50G = 50000, + HCLGE_MAC_SPEED_100G = 100000, + HCLGE_MAC_SPEED_200G = 200000, +}; -struct macb { - void *regs; - bool native_io; - u32 (*macb_reg_readl)(struct macb *, int); - void (*macb_reg_writel)(struct macb *, int, u32); - size_t rx_buffer_size; - unsigned int rx_ring_size; - unsigned int tx_ring_size; - unsigned int num_queues; - unsigned int queue_mask; - struct macb_queue queues[8]; - spinlock_t lock; - struct platform_device *pdev; - struct clk *pclk; - struct clk *hclk; - struct clk *tx_clk; - struct clk *rx_clk; - struct clk *tsu_clk; - struct net_device *dev; - union { - struct macb_stats macb; - struct gem_stats gem; - } hw_stats; - struct macb_or_gem_ops macbgem_ops; - struct mii_bus *mii_bus; - struct phylink *phylink; - struct phylink_config phylink_config; - struct phylink_pcs phylink_usx_pcs; - struct phylink_pcs phylink_sgmii_pcs; - u32 caps; - unsigned int dma_burst_length; - phy_interface_t phy_interface; - struct macb_tx_skb rm9200_txq[2]; - unsigned int max_tx_length; - u64 ethtool_stats[91]; - unsigned int rx_frm_len_mask; - unsigned int jumbo_max_len; - u32 wol; - u32 rx_watermark; - struct macb_ptp_info *ptp_info; - struct phy *sgmii_phy; - uint8_t hw_dma_cap; - spinlock_t tsu_clk_lock; - unsigned int tsu_rate; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_clock_info; - struct tsu_incr tsu_incr; - struct hwtstamp_config tstamp_config; - struct ethtool_rx_fs_list rx_fs_list; - spinlock_t rx_fs_lock; - unsigned int max_tuples; - struct tasklet_struct hresp_err_tasklet; - int rx_bd_rd_prefetch; - int tx_bd_rd_prefetch; - u32 rx_intr_mask; - struct macb_pm_data pm_data; - const struct macb_usrio_config *usrio; +enum hclge_mac_vlan_tbl_opcode { + HCLGE_MAC_VLAN_ADD = 0, + HCLGE_MAC_VLAN_UPDATE = 1, + HCLGE_MAC_VLAN_REMOVE = 2, + HCLGE_MAC_VLAN_LKUP = 3, }; -struct macb_dma_desc { - u32 addr; - u32 ctrl; +enum hclge_mac_vlan_add_resp_code { + HCLGE_ADD_UC_OVERFLOW = 2, + HCLGE_ADD_MC_OVERFLOW = 3, }; -struct macb_ptp_info { - void (*ptp_init)(struct net_device *); - void (*ptp_remove)(struct net_device *); - s32 (*get_ptp_max_adj)(); - unsigned int (*get_tsu_rate)(struct macb *); - int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *); - int (*get_hwtst)(struct net_device *, struct ifreq *); - int (*set_hwtst)(struct net_device *, struct ifreq *, int); +enum HCLGE_FD_USER_DEF_LAYER { + HCLGE_FD_USER_DEF_NONE = 0, + HCLGE_FD_USER_DEF_L2 = 1, + HCLGE_FD_USER_DEF_L3 = 2, + HCLGE_FD_USER_DEF_L4 = 3, }; -struct macb_usrio_config { - u32 mii; - u32 rmii; - u32 rgmii; - u32 refclk; - u32 hdfctlen; +enum HCLGE_FD_NODE_STATE { + HCLGE_FD_TO_ADD = 0, + HCLGE_FD_TO_DEL = 1, + HCLGE_FD_ACTIVE = 2, + HCLGE_FD_DELETED = 3, }; -struct hclge_hw_error { - u32 int_msk; - const char *msg; - enum hnae3_reset_type reset_level; +enum hclge_vlan_fltr_cap { + HCLGE_VLAN_FLTR_DEF = 0, + HCLGE_VLAN_FLTR_CAN_MDF = 1, }; -struct hclge_hw_blk { - u32 msk; - const char *name; - int (*config_err_int)(struct hclge_dev *, bool); +enum HCLGE_FIRMWARE_MAC_SPEED { + HCLGE_FW_MAC_SPEED_1G = 0, + HCLGE_FW_MAC_SPEED_10G = 1, + HCLGE_FW_MAC_SPEED_25G = 2, + HCLGE_FW_MAC_SPEED_40G = 3, + HCLGE_FW_MAC_SPEED_50G = 4, + HCLGE_FW_MAC_SPEED_100G = 5, + HCLGE_FW_MAC_SPEED_10M = 6, + HCLGE_FW_MAC_SPEED_100M = 7, + HCLGE_FW_MAC_SPEED_200G = 8, }; -enum hclge_mod_name_list { - MODULE_NONE = 0, - MODULE_BIOS_COMMON = 1, - MODULE_GE = 2, - MODULE_IGU_EGU = 3, - MODULE_LGE = 4, - MODULE_NCSI = 5, - MODULE_PPP = 6, - MODULE_QCN = 7, - MODULE_RCB_RX = 8, - MODULE_RTC = 9, - MODULE_SSU = 10, - MODULE_TM = 11, - MODULE_RCB_TX = 12, - MODULE_TXDMA = 13, - MODULE_MASTER = 14, - MODULE_HIMAC = 15, - MODULE_ROCEE_TOP = 40, - MODULE_ROCEE_TIMER = 41, - MODULE_ROCEE_MDB = 42, - MODULE_ROCEE_TSP = 43, - MODULE_ROCEE_TRP = 44, - MODULE_ROCEE_SCC = 45, - MODULE_ROCEE_CAEP = 46, - MODULE_ROCEE_GEN_AC = 47, - MODULE_ROCEE_QMM = 48, - MODULE_ROCEE_LSAN = 49, +enum hclge_evt_cause { + HCLGE_VECTOR0_EVENT_RST = 0, + HCLGE_VECTOR0_EVENT_MBX = 1, + HCLGE_VECTOR0_EVENT_ERR = 2, + HCLGE_VECTOR0_EVENT_PTP = 3, + HCLGE_VECTOR0_EVENT_OTHER = 4, }; -struct hclge_hw_module_id { - enum hclge_mod_name_list module_id; - const char *msg; +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 hclge_err_type_list { - NONE_ERROR = 0, - FIFO_ERROR = 1, - MEMORY_ERROR = 2, - POISON_ERROR = 3, - MSIX_ECC_ERROR = 4, - TQP_INT_ECC_ERROR = 5, - PF_ABNORMAL_INT_ERROR = 6, - MPF_ABNORMAL_INT_ERROR = 7, - COMMON_ERROR = 8, - PORT_ERROR = 9, - ETS_ERROR = 10, - NCSI_ERROR = 11, - GLB_ERROR = 12, - LINK_ERROR = 13, - PTP_ERROR = 14, - ROCEE_NORMAL_ERR = 40, - ROCEE_OVF_ERR = 41, - ROCEE_BUS_ERR = 42, +enum HCLGE_FD_MODE { + HCLGE_FD_MODE_DEPTH_2K_WIDTH_400B_STAGE_1 = 0, + HCLGE_FD_MODE_DEPTH_1K_WIDTH_400B_STAGE_2 = 1, + HCLGE_FD_MODE_DEPTH_4K_WIDTH_200B_STAGE_1 = 2, + HCLGE_FD_MODE_DEPTH_2K_WIDTH_200B_STAGE_2 = 3, }; -struct hclge_hw_type_id { - enum hclge_err_type_list type_id; - const char *msg; +enum HCLGE_FD_STAGE { + HCLGE_FD_STAGE_1 = 0, + HCLGE_FD_STAGE_2 = 1, + MAX_STAGE_NUM = 2, }; -enum HCLGE_DEV_STATE { - HCLGE_STATE_REINITING = 0, - HCLGE_STATE_DOWN = 1, - HCLGE_STATE_DISABLED = 2, - HCLGE_STATE_REMOVING = 3, - HCLGE_STATE_NIC_REGISTERED = 4, - HCLGE_STATE_ROCE_REGISTERED = 5, - HCLGE_STATE_SERVICE_INITED = 6, - HCLGE_STATE_RST_SERVICE_SCHED = 7, - HCLGE_STATE_RST_HANDLING = 8, - HCLGE_STATE_MBX_SERVICE_SCHED = 9, - HCLGE_STATE_MBX_HANDLING = 10, - HCLGE_STATE_ERR_SERVICE_SCHED = 11, - HCLGE_STATE_STATISTICS_UPDATING = 12, - HCLGE_STATE_LINK_UPDATING = 13, - HCLGE_STATE_RST_FAIL = 14, - HCLGE_STATE_FD_TBL_CHANGED = 15, - HCLGE_STATE_FD_CLEAR_ALL = 16, - HCLGE_STATE_FD_USER_DEF_CHANGED = 17, - HCLGE_STATE_PTP_EN = 18, - HCLGE_STATE_PTP_TX_HANDLING = 19, - HCLGE_STATE_FEC_STATS_UPDATING = 20, - HCLGE_STATE_MAX = 21, +enum HCLGE_FD_KEY_TYPE { + HCLGE_FD_KEY_BASE_ON_PTYPE = 0, + HCLGE_FD_KEY_BASE_ON_TUPLE = 1, }; -struct hclge_query_ppu_pf_other_int_dfx_cmd { - __le16 over_8bd_no_fe_qid; - __le16 over_8bd_no_fe_vf_id; - __le16 tso_mss_cmp_min_err_qid; - __le16 tso_mss_cmp_min_err_vf_id; - __le16 tso_mss_cmp_max_err_qid; - __le16 tso_mss_cmp_max_err_vf_id; - __le16 tx_rd_fbd_poison_qid; - __le16 tx_rd_fbd_poison_vf_id; - __le16 rx_rd_fbd_poison_qid; - __le16 rx_rd_fbd_poison_vf_id; +enum HCLGE_FD_TUPLE { + OUTER_DST_MAC = 0, + OUTER_SRC_MAC = 1, + OUTER_VLAN_TAG_FST = 2, + OUTER_VLAN_TAG_SEC = 3, + OUTER_ETH_TYPE = 4, + OUTER_L2_RSV = 5, + OUTER_IP_TOS = 6, + OUTER_IP_PROTO = 7, + OUTER_SRC_IP = 8, + OUTER_DST_IP = 9, + OUTER_L3_RSV = 10, + OUTER_SRC_PORT = 11, + OUTER_DST_PORT = 12, + OUTER_L4_RSV = 13, + OUTER_TUN_VNI = 14, + OUTER_TUN_FLOW_ID = 15, + INNER_DST_MAC = 16, + INNER_SRC_MAC = 17, + INNER_VLAN_TAG_FST = 18, + INNER_VLAN_TAG_SEC = 19, + INNER_ETH_TYPE = 20, + INNER_L2_RSV = 21, + INNER_IP_TOS = 22, + INNER_IP_PROTO = 23, + INNER_SRC_IP = 24, + INNER_DST_IP = 25, + INNER_L3_RSV = 26, + INNER_SRC_PORT = 27, + INNER_DST_PORT = 28, + INNER_L4_RSV = 29, + MAX_TUPLE = 30, +}; + +enum HCLGE_FD_META_DATA { + PACKET_TYPE_ID = 0, + IP_FRAGEMENT = 1, + ROCE_TYPE = 2, + NEXT_KEY = 3, + VLAN_NUMBER = 4, + SRC_VPORT = 5, + DST_VPORT = 6, + TUNNEL_PACKET = 7, + MAX_META_DATA = 8, +}; + +enum HCLGE_VPORT_NEED_NOTIFY { + HCLGE_VPORT_NEED_NOTIFY_RESET = 0, + HCLGE_VPORT_NEED_NOTIFY_VF_VLAN = 1, +}; + +enum HLCGE_PORT_TYPE { + HOST_PORT = 0, + NETWORK_PORT = 1, +}; + +enum hclge_mac_vlan_cfg_sel { + HCLGE_MAC_VLAN_NIC_SEL = 0, + HCLGE_MAC_VLAN_ROCE_SEL = 1, +}; + +enum HCLGE_FD_ACTION { + HCLGE_FD_ACTION_SELECT_QUEUE = 0, + HCLGE_FD_ACTION_DROP_PACKET = 1, + HCLGE_FD_ACTION_SELECT_TC = 2, +}; + +enum HCLGE_FD_PACKET_TYPE { + NIC_PACKET = 0, + ROCE_PACKET = 1, +}; + +enum hclge_led_status { + HCLGE_LED_OFF = 0, + HCLGE_LED_ON = 1, + HCLGE_LED_NO_CHANGE = 255, +}; + +enum flow_dissector_key_id { + FLOW_DISSECTOR_KEY_CONTROL = 0, + FLOW_DISSECTOR_KEY_BASIC = 1, + FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, + FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, + FLOW_DISSECTOR_KEY_PORTS = 4, + FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, + FLOW_DISSECTOR_KEY_ICMP = 6, + FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, + FLOW_DISSECTOR_KEY_TIPC = 8, + FLOW_DISSECTOR_KEY_ARP = 9, + FLOW_DISSECTOR_KEY_VLAN = 10, + FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, + FLOW_DISSECTOR_KEY_GRE_KEYID = 12, + FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, + FLOW_DISSECTOR_KEY_ENC_KEYID = 14, + FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, + FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, + FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, + FLOW_DISSECTOR_KEY_ENC_PORTS = 18, + FLOW_DISSECTOR_KEY_MPLS = 19, + FLOW_DISSECTOR_KEY_TCP = 20, + FLOW_DISSECTOR_KEY_IP = 21, + FLOW_DISSECTOR_KEY_CVLAN = 22, + FLOW_DISSECTOR_KEY_ENC_IP = 23, + FLOW_DISSECTOR_KEY_ENC_OPTS = 24, + FLOW_DISSECTOR_KEY_META = 25, + FLOW_DISSECTOR_KEY_CT = 26, + FLOW_DISSECTOR_KEY_HASH = 27, + FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28, + FLOW_DISSECTOR_KEY_PPPOE = 29, + FLOW_DISSECTOR_KEY_L2TPV3 = 30, + FLOW_DISSECTOR_KEY_CFM = 31, + FLOW_DISSECTOR_KEY_IPSEC = 32, + FLOW_DISSECTOR_KEY_MAX = 33, +}; + +struct hclge_reset_cmd { + u8 mac_func_reset; + u8 fun_reset_vfid; + u8 fun_reset_rcb; + u8 rsv; + __le16 fun_reset_rcb_vqid_start; + __le16 fun_reset_rcb_vqid_num; + u8 fun_reset_rcb_return_status; + u8 rsv1[15]; +}; + +struct hclge_ctrl_vector_chain_cmd { + u8 int_vector_id_l; + u8 int_cause_num; + __le16 tqp_type_and_id[10]; + u8 vfid; + u8 int_vector_id_h; +}; + +struct hclge_vport_vlan_cfg { + struct list_head node; + int hd_tbl_status; + u16 vlan_id; +}; + +struct hclge_tx_buff_alloc_cmd { + __le16 tx_pkt_buff[8]; + u8 tx_buff_rsv[8]; +}; + +struct hclge_rx_priv_buff_cmd { + __le16 buf_num[8]; + __le16 shared_buf; + u8 rsv[6]; +}; + +struct hclge_priv_wl { + __le16 high; + __le16 low; +}; + +struct hclge_rx_priv_wl_buf { + struct hclge_priv_wl tc_wl[4]; +}; + +struct hclge_rx_com_thrd { + struct hclge_priv_wl com_thrd[4]; +}; + +struct hclge_rx_com_wl { + struct hclge_priv_wl com_wl; +}; + +struct hclge_config_mac_speed_dup_cmd { + u8 speed_dup; + u8 mac_change_fec_en; u8 rsv[4]; + u8 lane_num; + u8 rsv1[17]; }; -struct hclge_sum_err_info { - u8 reset_type; - u8 mod_num; - u8 rsv[2]; +struct hclge_promisc_cfg_cmd { + u8 promisc; + u8 vf_id; + u8 extend_promisc; + u8 rsv0[21]; }; -struct hclge_mod_err_info { - u8 mod_id; - u8 err_num; +struct hclge_mac_node { + struct list_head node; + enum HCLGE_MAC_NODE_STATE state; + u8 mac_addr[6]; +}; + +struct hclge_vlan_filter_ctrl_cmd { + u8 vlan_type; + u8 vlan_fe; + u8 rsv1[2]; + u8 vf_id; + u8 rsv2[19]; +}; + +struct hclge_port_vlan_filter_bypass_cmd { + u8 bypass_state; + u8 rsv1[3]; + u8 vf_id; + u8 rsv2[19]; +}; + +struct hclge_vlan_filter_vf_cfg_cmd { + __le16 vlan_id; + u8 resp_code; + u8 rsv; + u8 vlan_cfg; + u8 rsv1[3]; + u8 vf_bitmap[16]; +}; + +struct hclge_vlan_filter_pf_cfg_cmd { + u8 vlan_offset; + u8 vlan_cfg; u8 rsv[2]; + u8 vlan_offset_bitmap[20]; }; -struct hclge_type_reg_err_info { - u8 type_id; - u8 reg_num; +struct hclge_fd_user_def_info { + enum HCLGE_FD_USER_DEF_LAYER layer; + u16 data; + u16 data_mask; + u16 offset; +}; + +struct hclge_fd_rule_tuples { + u8 src_mac[6]; + u8 dst_mac[6]; + u32 src_ip[4]; + u32 dst_ip[4]; + u16 src_port; + u16 dst_port; + u16 vlan_tag1; + u16 ether_proto; + u16 l2_user_def; + u16 l3_user_def; + u32 l4_user_def; + u8 ip_tos; + u8 ip_proto; +}; + +struct hclge_fd_rule { + struct hlist_node rule_node; + struct hclge_fd_rule_tuples tuples; + struct hclge_fd_rule_tuples tuples_mask; + u32 unused_tuple; + u32 flow_type; + union { + struct { + unsigned long cookie; + u8 tc; + } cls_flower; + struct { + u16 flow_id; + } arfs; + struct { + struct hclge_fd_user_def_info user_def; + } ep; + }; + u16 queue_id; + u16 vf_id; + u16 location; + enum HCLGE_FD_ACTIVE_RULE_TYPE rule_type; + enum HCLGE_FD_NODE_STATE state; + u8 action; +}; + +struct hclge_vport_vtag_rx_cfg_cmd { + u8 vport_vlan_cfg; + u8 vf_offset; + u8 rsv1[6]; + u8 vf_bitmap[8]; + u8 rsv2[8]; +}; + +struct hclge_vport_vtag_tx_cfg_cmd { + u8 vport_vlan_cfg; + u8 vf_offset; + u8 rsv1[2]; + __le16 def_vlan_tag1; + __le16 def_vlan_tag2; + u8 vf_bitmap[8]; + u8 rsv2[8]; +}; + +struct hclge_config_max_frm_size_cmd { + __le16 max_frm_size; + u8 min_frm_size; + u8 rsv[21]; +}; + +struct hclge_cfg_com_tqp_queue_cmd { + __le16 tqp_id; + __le16 stream_id; + u8 enable; + u8 rsv[19]; +}; + +struct hclge_reset_tqp_queue_cmd { + __le16 tqp_id; + u8 reset_req; + u8 ready_to_reset; + u8 rsv[20]; +}; + +struct hclge_func_status_cmd { + __le32 vf_rst_state[4]; + u8 pf_state; + u8 mac_id; + u8 rsv1; + u8 pf_cnt_in_mac; + u8 pf_num; + u8 vf_num; u8 rsv[2]; - u32 hclge_reg[256]; }; -enum RAVB_QUEUE { - RAVB_BE = 0, - RAVB_NC = 1, +struct hclge_pf_res_cmd { + __le16 tqp_num; + __le16 buf_size; + __le16 msixcap_localid_ba_nic; + __le16 msixcap_localid_number_nic; + __le16 pf_intr_vector_number_roce; + __le16 pf_own_fun_number; + __le16 tx_buf_size; + __le16 dv_buf_size; + __le16 ext_tqp_num; + u8 rsv[6]; }; -enum DIE_DT { - DT_FMID = 64, - DT_FSTART = 80, - DT_FEND = 96, - DT_FSINGLE = 112, - DT_LINK = 128, - DT_LINKFIX = 144, - DT_EOS = 160, - DT_FEMPTY = 192, - DT_FEMPTY_IS = 208, - DT_FEMPTY_IC = 224, - DT_FEMPTY_ND = 240, - DT_LEMPTY = 32, - DT_EEMPTY = 48, +struct hclge_dev_specs_0_cmd { + __le32 rsv0; + __le32 mac_entry_num; + __le32 mng_entry_num; + __le16 rss_ind_tbl_size; + __le16 rss_key_size; + __le16 int_ql_max; + u8 max_non_tso_bd_num; + u8 rsv1; + __le32 max_tm_rate; }; -enum CSR_BIT { - CSR_OPS = 15, - CSR_OPS_RESET = 1, - CSR_OPS_CONFIG = 2, - CSR_OPS_OPERATION = 4, - CSR_OPS_STANDBY = 8, - CSR_DTS = 256, - CSR_TPO0 = 65536, - CSR_TPO1 = 131072, - CSR_TPO2 = 262144, - CSR_TPO3 = 524288, - CSR_RPO = 1048576, +struct hclge_dev_specs_1_cmd { + __le16 max_frm_size; + __le16 max_qset_num; + __le16 max_int_gl; + u8 rsv0[2]; + __le16 umv_size; + __le16 mc_mac_size; + u8 rsv1[6]; + u8 tnl_num; + u8 rsv2[5]; }; -enum ECMR_BIT { - ECMR_PRM = 1, - ECMR_DM = 2, - ECMR_TE = 32, - ECMR_RE = 64, - ECMR_MPDE = 512, - ECMR_TXF = 65536, - ECMR_RXF = 131072, - ECMR_PFR = 262144, - ECMR_ZPF = 524288, - ECMR_RZPF = 1048576, - ECMR_DPAD = 2097152, - ECMR_RCSC = 8388608, - ECMR_RCPT = 33554432, - ECMR_TRCCM = 67108864, +struct hclge_cfg_param_cmd { + __le32 offset; + __le32 rsv; + __le32 param[4]; }; -enum CCC_BIT { - CCC_OPC = 3, - CCC_OPC_RESET = 0, - CCC_OPC_CONFIG = 1, - CCC_OPC_OPERATION = 2, - CCC_GAC = 128, - CCC_DTSR = 256, - CCC_CSEL = 196608, - CCC_CSEL_HPB = 65536, - CCC_CSEL_ETH_TX = 131072, - CCC_CSEL_GMII_REF = 196608, - CCC_LBME = 16777216, +struct hclge_tqp_map_cmd { + __le16 tqp_id; + u8 tqp_vf; + u8 tqp_flag; + __le16 tqp_vid; + u8 rsv[18]; }; -enum TX_DS_TAGL_BIT { - TX_DS = 4095, - TX_TAGL = 61440, +struct hclge_umv_spc_alc_cmd { + u8 allocate; + u8 rsv1[3]; + __le32 space_size; + u8 rsv2[16]; }; -enum ISS_BIT { - ISS_FRS = 1, - ISS_FTS = 4, - ISS_ES = 64, - ISS_MS = 128, - ISS_TFUS = 256, - ISS_TFWS = 512, - ISS_RFWS = 4096, - ISS_CGIS = 8192, - ISS_DPS1 = 131072, - ISS_DPS2 = 262144, - ISS_DPS3 = 524288, - ISS_DPS4 = 1048576, - ISS_DPS5 = 2097152, - ISS_DPS6 = 4194304, - ISS_DPS7 = 8388608, - ISS_DPS8 = 16777216, - ISS_DPS9 = 33554432, - ISS_DPS10 = 67108864, - ISS_DPS11 = 134217728, - ISS_DPS12 = 268435456, - ISS_DPS13 = 536870912, - ISS_DPS14 = 1073741824, - ISS_DPS15 = 2147483648, +struct hclge_config_auto_neg_cmd { + __le32 cfg_an_cmd_flag; + u8 rsv[20]; }; -enum TIS_BIT { - TIS_FTF0 = 1, - TIS_FTF1 = 2, - TIS_TFUF = 256, - TIS_TFWF = 512, - TIS_RESERVED = 4293980400, +struct hclge_config_fec_cmd { + u8 fec_mode; + u8 default_config; + u8 rsv[22]; }; -enum TSR_BIT { - TSR_CCS0 = 3, - TSR_CCS1 = 12, - TSR_TFFL = 1792, +struct hclge_config_mac_mode_cmd { + __le32 txrx_pad_fcs_loop_en; + u8 rsv[20]; }; -enum TFA2_BIT { - TFA2_TSV = 65535, - TFA2_TST = 67043328, +struct hclge_common_lb_cmd { + u8 mask; + u8 enable; + u8 result; + u8 rsv[21]; }; -enum TCCR_BIT { - TCCR_TSRQ0 = 1, - TCCR_TSRQ1 = 2, - TCCR_TSRQ2 = 4, - TCCR_TSRQ3 = 8, - TCCR_TFEN = 256, - TCCR_TFR = 512, +struct hclge_cfg_tso_status_cmd { + __le16 tso_mss_min; + __le16 tso_mss_max; + u8 rsv[20]; +}; + +struct hclge_cfg_gro_status_cmd { + u8 gro_en; + u8 rsv[23]; +}; + +struct hclge_rx_vlan_type_cfg_cmd { + __le16 ot_fst_vlan_type; + __le16 ot_sec_vlan_type; + __le16 in_fst_vlan_type; + __le16 in_sec_vlan_type; + u8 rsv[16]; +}; + +struct hclge_tx_vlan_type_cfg_cmd { + __le16 ot_vlan_type; + __le16 in_vlan_type; + u8 rsv[20]; +}; + +struct hclge_get_fd_mode_cmd { + u8 mode; + u8 enable; + u8 rsv[22]; +}; + +struct hclge_get_fd_allocation_cmd { + __le32 stage1_entry_num; + __le32 stage2_entry_num; + __le16 stage1_counter_num; + __le16 stage2_counter_num; + u8 rsv[12]; +}; + +struct hclge_set_fd_key_config_cmd { + u8 stage; + u8 key_select; + u8 inner_sipv6_word_en; + u8 inner_dipv6_word_en; + u8 outer_sipv6_word_en; + u8 outer_dipv6_word_en; + u8 rsv1[2]; + __le32 tuple_mask; + __le32 meta_data_mask; + u8 rsv2[8]; +}; + +struct hclge_sfp_info_cmd { + __le32 speed; + u8 query_type; + u8 active_fec; + u8 autoneg; + u8 autoneg_ability; + __le32 speed_ability; + __le32 module_type; + u8 fec_ability; + u8 lane_num; + u8 rsv[6]; }; -enum ECSR_BIT { - ECSR_ICD = 1, - ECSR_MPD = 2, - ECSR_LCHNG = 4, - ECSR_PHYI = 8, - ECSR_PFRI = 16, +struct hclge_vf_rst_cmd { + u8 dest_vfid; + u8 vf_rst; + u8 rsv[22]; }; -enum PSR_BIT { - PSR_LMON = 1, +struct hclge_pf_rst_sync_cmd { + u8 all_vf_ready; + u8 rsv[23]; }; -enum EIS_BIT { - EIS_MREF = 1, - EIS_MTEF = 2, - EIS_QEF = 4, - EIS_SEF = 8, - EIS_CLLF0 = 16, - EIS_CLLF1 = 32, - EIS_CULF0 = 64, - EIS_CULF1 = 128, - EIS_TFFF = 256, - EIS_QFS = 65536, - EIS_RESERVED = 4294899712, +struct hclge_mac_vlan_switch_cmd { + u8 roce_sel; + u8 rsv1[3]; + __le32 func_id; + u8 switch_param; + u8 rsv2[3]; + u8 param_mask; + u8 rsv3[11]; }; -enum RIS2_BIT { - RIS2_QFF0 = 1, - RIS2_QFF1 = 2, - RIS2_QFF2 = 4, - RIS2_QFF3 = 8, - RIS2_QFF4 = 16, - RIS2_QFF5 = 32, - RIS2_QFF6 = 64, - RIS2_QFF7 = 128, - RIS2_QFF8 = 256, - RIS2_QFF9 = 512, - RIS2_QFF10 = 1024, - RIS2_QFF11 = 2048, - RIS2_QFF12 = 4096, - RIS2_QFF13 = 8192, - RIS2_QFF14 = 16384, - RIS2_QFF15 = 32768, - RIS2_QFF16 = 65536, - RIS2_QFF17 = 131072, - RIS2_RFFF = 2147483648, - RIS2_RESERVED = 2147221504, +struct hclge_wol_cfg_cmd { + __le32 wake_on_lan_mode; + u8 sopass[6]; + u8 sopass_size; + u8 rsv[13]; }; -enum TX_TAGH_TSR_BIT { - TX_TAGH = 63, - TX_TSR = 64, +struct hclge_pf_rst_done_cmd { + u8 pf_rst_done; + u8 rsv[23]; }; -enum APSR_BIT { - APSR_MEMS = 2, - APSR_CMSW = 16, - APSR_RDM = 8192, - APSR_TDM = 16384, +struct hclge_link_status_cmd { + u8 status; + u8 rsv[23]; }; -enum PIR_BIT { - PIR_MDC = 1, - PIR_MMD = 2, - PIR_MDO = 4, - PIR_MDI = 8, +struct hclge_fd_tcam_config_1_cmd { + u8 stage; + u8 xy_sel; + u8 port_info; + u8 rsv1[1]; + __le32 index; + u8 entry_vld; + u8 rsv2[7]; + u8 tcam_data[8]; }; -enum RIS0_BIT { - RIS0_FRF0 = 1, - RIS0_FRF1 = 2, - RIS0_FRF2 = 4, - RIS0_FRF3 = 8, - RIS0_FRF4 = 16, - RIS0_FRF5 = 32, - RIS0_FRF6 = 64, - RIS0_FRF7 = 128, - RIS0_FRF8 = 256, - RIS0_FRF9 = 512, - RIS0_FRF10 = 1024, - RIS0_FRF11 = 2048, - RIS0_FRF12 = 4096, - RIS0_FRF13 = 8192, - RIS0_FRF14 = 16384, - RIS0_FRF15 = 32768, - RIS0_FRF16 = 65536, - RIS0_FRF17 = 131072, - RIS0_RESERVED = 4294705152, +struct hclge_fd_tcam_config_2_cmd { + u8 tcam_data[24]; }; -enum RX_DS_CC_BIT { - RX_DS = 4095, - RX_TR = 4096, - RX_EI = 8192, - RX_PS = 49152, +struct hclge_fd_tcam_config_3_cmd { + u8 tcam_data[20]; + u8 rsv[4]; }; -enum MSC_BIT { - MSC_CRC = 1, - MSC_RFE = 2, - MSC_RTSF = 4, - MSC_RTLF = 8, - MSC_FRE = 16, - MSC_CRL = 32, - MSC_CEEF = 64, - MSC_MC = 128, +struct hclge_fd_user_def_cfg_cmd { + __le16 ol2_cfg; + __le16 l2_cfg; + __le16 ol3_cfg; + __le16 l3_cfg; + __le16 ol4_cfg; + __le16 l4_cfg; + u8 rsv[12]; }; -enum GECMR_BIT { - GECMR_SPEED = 1, - GECMR_SPEED_100 = 0, - GECMR_SPEED_1000 = 1, - GBETH_GECMR_SPEED = 48, - GBETH_GECMR_SPEED_10 = 0, - GBETH_GECMR_SPEED_100 = 16, - GBETH_GECMR_SPEED_1000 = 32, +struct hclge_fd_ad_config_cmd { + u8 stage; + u8 rsv1[3]; + __le32 index; + __le64 ad_data; + u8 rsv2[8]; }; -enum RCR_BIT { - RCR_EFFS = 1, - RCR_ENCF = 2, - RCR_ESF = 12, - RCR_ETS0 = 16, - RCR_ETS2 = 32, - RCR_RFCL = 536805376, +struct hclge_query_fec_stats_cmd { + __le32 rs_fec_corr_blocks; + __le32 rs_fec_uncorr_blocks; + __le32 rs_fec_error_blocks; + u8 base_r_lane_num; + u8 rsv[3]; + __le32 base_r_fec_corr_blocks; + __le32 base_r_fec_uncorr_blocks; }; -enum TGC_BIT { - TGC_TSM0 = 1, - TGC_TSM1 = 2, - TGC_TSM2 = 4, - TGC_TSM3 = 8, - TGC_TQP = 48, - TGC_TQP_NONAVB = 0, - TGC_TQP_AVBMODE1 = 16, - TGC_TQP_AVBMODE2 = 48, - TGC_TBD0 = 768, - TGC_TBD1 = 12288, - TGC_TBD2 = 196608, - TGC_TBD3 = 3145728, +struct hclge_query_wol_supported_cmd { + __le32 supported_wake_mode; + u8 rsv[20]; }; -enum CIE_BIT { - CIE_CRIE = 1, - CIE_CTIE = 256, - CIE_RQFM = 65536, - CIE_CL0M = 131072, - CIE_RFWL = 262144, - CIE_RFFL = 524288, +struct hclge_set_led_state_cmd { + u8 rsv1[3]; + u8 locate_led_config; + u8 rsv2[20]; }; -enum RIC0_BIT { - RIC0_FRE0 = 1, - RIC0_FRE1 = 2, - RIC0_FRE2 = 4, - RIC0_FRE3 = 8, - RIC0_FRE4 = 16, - RIC0_FRE5 = 32, - RIC0_FRE6 = 64, - RIC0_FRE7 = 128, - RIC0_FRE8 = 256, - RIC0_FRE9 = 512, - RIC0_FRE10 = 1024, - RIC0_FRE11 = 2048, - RIC0_FRE12 = 4096, - RIC0_FRE13 = 8192, - RIC0_FRE14 = 16384, - RIC0_FRE15 = 32768, - RIC0_FRE16 = 65536, - RIC0_FRE17 = 131072, +struct hclge_sfp_info_bd0_cmd { + __le16 offset; + __le16 read_len; + u8 data[20]; }; -enum RIC2_BIT { - RIC2_QFE0 = 1, - RIC2_QFE1 = 2, - RIC2_QFE2 = 4, - RIC2_QFE3 = 8, - RIC2_QFE4 = 16, - RIC2_QFE5 = 32, - RIC2_QFE6 = 64, - RIC2_QFE7 = 128, - RIC2_QFE8 = 256, - RIC2_QFE9 = 512, - RIC2_QFE10 = 1024, - RIC2_QFE11 = 2048, - RIC2_QFE12 = 4096, - RIC2_QFE13 = 8192, - RIC2_QFE14 = 16384, - RIC2_QFE15 = 32768, - RIC2_QFE16 = 65536, - RIC2_QFE17 = 131072, - RIC2_RFFE = 2147483648, +struct hclge_phy_link_ksetting_0_cmd { + __le32 speed; + u8 duplex; + u8 autoneg; + u8 eth_tp_mdix; + u8 eth_tp_mdix_ctrl; + u8 port; + u8 transceiver; + u8 phy_address; + u8 rsv; + __le32 supported; + __le32 advertising; + __le32 lp_advertising; }; -enum TIC_BIT { - TIC_FTE0 = 1, - TIC_FTE1 = 2, - TIC_TFUE = 256, - TIC_TFWE = 512, +struct hclge_phy_link_ksetting_1_cmd { + u8 master_slave_cfg; + u8 master_slave_state; + u8 rsv[22]; }; -enum ECSIPR_BIT { - ECSIPR_ICDIP = 1, - ECSIPR_MPDIP = 2, - ECSIPR_LCHNGIP = 4, +struct hclge_waterline { + u32 low; + u32 high; }; -enum CSR0_BIT { - CSR0_TPE = 16, - CSR0_RPE = 32, +struct hclge_priv_buf { + struct hclge_waterline wl; + u32 buf_size; + u32 tx_buf_size; + u32 enable; }; -enum CXR31_BIT { - CXR31_SEL_LINK0 = 1, - CXR31_SEL_LINK1 = 8, +struct hclge_tc_thrd { + u32 low; + u32 high; }; -enum CXR35_BIT { - CXR35_SEL_XMII = 3, - CXR35_SEL_XMII_RGMII = 0, - CXR35_SEL_XMII_MII = 2, - CXR35_HALFCYC_CLKSW = 4294901760, +struct hclge_shared_buf { + struct hclge_waterline self; + struct hclge_tc_thrd tc_thrd[8]; + u32 buf_size; }; -struct ravb_tstamp_skb { - struct list_head list; - struct sk_buff *skb; - u16 tag; +struct hclge_pkt_buf_alloc { + struct hclge_priv_buf priv_buf[8]; + struct hclge_shared_buf s_buf; }; -struct usb_phy_roothub { - struct phy *phy; - struct list_head list; +struct hclge_mac_vlan_tbl_entry_cmd { + u8 flags; + u8 resp_code; + __le16 vlan_tag; + __le32 mac_addr_hi32; + __le16 mac_addr_lo16; + __le16 rsv1; + u8 entry_type; + u8 mc_mac_en; + __le16 egress_port; + __le16 egress_queue; + u8 rsv2[6]; }; -struct wrapper_priv_data { - struct dwc2_hsotg *hsotg; +struct flow_match_basic { + struct flow_dissector_key_basic *key; + struct flow_dissector_key_basic *mask; }; -typedef void (*btf_trace_musb_log)(void *, struct musb *, struct va_format *); +struct flow_dissector_key_eth_addrs; -typedef void (*btf_trace_musb_state)(void *, struct musb *, u8, const char *); +struct flow_match_eth_addrs { + struct flow_dissector_key_eth_addrs *key; + struct flow_dissector_key_eth_addrs *mask; +}; -typedef void (*btf_trace_musb_readb)(void *, void *, const void *, unsigned int, u8); +struct flow_dissector_key_eth_addrs { + unsigned char dst[6]; + unsigned char src[6]; +}; -typedef void (*btf_trace_musb_writeb)(void *, void *, const void *, unsigned int, u8); +struct flow_match_vlan { + struct flow_dissector_key_vlan *key; + struct flow_dissector_key_vlan *mask; +}; -typedef void (*btf_trace_musb_readw)(void *, void *, const void *, unsigned int, u16); +struct flow_match_control { + struct flow_dissector_key_control *key; + struct flow_dissector_key_control *mask; +}; -typedef void (*btf_trace_musb_writew)(void *, void *, const void *, unsigned int, u16); +struct flow_match_ipv4_addrs { + struct flow_dissector_key_ipv4_addrs *key; + struct flow_dissector_key_ipv4_addrs *mask; +}; -typedef void (*btf_trace_musb_readl)(void *, void *, const void *, unsigned int, u32); +struct flow_match_ipv6_addrs { + struct flow_dissector_key_ipv6_addrs *key; + struct flow_dissector_key_ipv6_addrs *mask; +}; -typedef void (*btf_trace_musb_writel)(void *, void *, const void *, unsigned int, u32); +struct flow_match_ports { + struct flow_dissector_key_ports *key; + struct flow_dissector_key_ports *mask; +}; -typedef void (*btf_trace_musb_isr)(void *, struct musb *); +struct hclge_cfg { + u8 tc_num; + u8 vlan_fliter_cap; + u16 tqp_desc_num; + u16 rx_buf_len; + u16 vf_rss_size_max; + u16 pf_rss_size_max; + u8 phy_addr; + u8 media_type; + u8 mac_addr[6]; + u8 default_speed; + u32 numa_node_map; + u32 tx_spare_buf_size; + u16 speed_ability; + u16 umv_space; +}; -typedef void (*btf_trace_musb_urb_start)(void *, struct musb *, struct urb *); +struct hclge_fd_ad_data { + u16 ad_id; + u8 drop_packet; + u8 forward_to_direct_queue; + u16 queue_id; + u8 use_counter; + u8 counter_id; + u8 use_next_stage; + u8 write_rule_id_to_bd; + u8 next_input_key; + u16 rule_id; + u16 tc_size; + u8 override_tc; +}; -typedef void (*btf_trace_musb_urb_gb)(void *, struct musb *, struct urb *); +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); +}; -typedef void (*btf_trace_musb_urb_rx)(void *, struct musb *, struct urb *); +struct smc91x_platdata { + unsigned long flags; + unsigned char leda; + unsigned char ledb; + bool pxa_u16_align4; +}; -typedef void (*btf_trace_musb_urb_tx)(void *, struct musb *, struct urb *); +struct smc_local { + struct sk_buff *pending_tx_skb; + struct tasklet_struct tx_task; + struct gpio_desc *power_gpio; + struct gpio_desc *reset_gpio; + int version; + int tcr_cur_mode; + int rcr_cur_mode; + int rpc_cur_mode; + int ctl_rfduplx; + int ctl_rspeed; + u32 msg_enable; + u32 phy_type; + struct mii_if_info mii; + struct work_struct phy_configure; + struct net_device *dev; + int work_pending; + spinlock_t lock; + struct dma_chan *dma_chan; + void *base; + void *datacs; + int io_shift; + bool half_word_align4; + struct smc91x_platdata cfg; +}; -typedef void (*btf_trace_musb_urb_enq)(void *, struct musb *, struct urb *); +struct usb_conn_info { + struct device *dev; + struct usb_role_switch *role_sw; + enum usb_role last_role; + struct regulator *vbus; + struct delayed_work dw_det; + unsigned long debounce_jiffies; + struct gpio_desc *id_gpiod; + struct gpio_desc *vbus_gpiod; + int id_irq; + int vbus_irq; + struct power_supply_desc desc; + struct power_supply *charger; + bool initial_detection; +}; -typedef void (*btf_trace_musb_urb_deq)(void *, struct musb *, struct urb *); +struct ulpi_info { + unsigned int id; + char *name; +}; -typedef void (*btf_trace_musb_req_gb)(void *, struct musb_request *); +struct usb_ehci_pdata { + int caps_offset; + unsigned int has_tt: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_mmio: 1; + unsigned int no_io_watchdog: 1; + unsigned int reset_on_resume: 1; + unsigned int dma_mask_64: 1; + unsigned int spurious_oc: 1; + int (*power_on)(struct platform_device *); + void (*power_off)(struct platform_device *); + void (*power_suspend)(struct platform_device *); + int (*pre_setup)(struct usb_hcd *); +}; -typedef void (*btf_trace_musb_req_tx)(void *, struct musb_request *); +struct ehci_platform_priv { + struct clk *clks[4]; + struct reset_control *rsts; + bool reset_on_resume; + bool quirk_poll; + struct timer_list poll_timer; + struct delayed_work poll_work; +}; -typedef void (*btf_trace_musb_req_rx)(void *, struct musb_request *); +struct swoc_info { + __u8 rev; + __u8 reserved[8]; + __u16 LinuxSKU; + __u16 LinuxVer; + __u8 reserved2[47]; +} __attribute__((packed)); -typedef void (*btf_trace_musb_req_alloc)(void *, struct musb_request *); +enum input_clock_type { + INPUT_CLK_REAL = 0, + INPUT_CLK_MONO = 1, + INPUT_CLK_BOOT = 2, + INPUT_CLK_MAX = 3, +}; -typedef void (*btf_trace_musb_req_free)(void *, struct musb_request *); +union input_seq_state { + struct { + unsigned short pos; + bool mutex_acquired; + }; + void *p; +}; -typedef void (*btf_trace_musb_req_start)(void *, struct musb_request *); +struct input_devres { + struct input_dev *input; +}; -typedef void (*btf_trace_musb_req_enq)(void *, struct musb_request *); +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_musb_req_deq)(void *, struct musb_request *); +typedef void (*btf_trace_smbus_read)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int); -struct trace_event_raw_musb_log { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_msg; - char __data[0]; -}; +typedef void (*btf_trace_smbus_reply)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, const union i2c_smbus_data *, int); -struct trace_event_raw_musb_state { - struct trace_entry ent; - u32 __data_loc_name; - u8 devctl; - u32 __data_loc_desc; - char __data[0]; -}; +typedef void (*btf_trace_smbus_result)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, int); -struct trace_event_raw_musb_regb { +struct trace_event_raw_smbus_write { struct trace_entry ent; - void *caller; - const void *addr; - unsigned int offset; - u8 data; + int adapter_nr; + __u16 addr; + __u16 flags; + __u8 command; + __u8 len; + __u32 protocol; + __u8 buf[34]; char __data[0]; }; -struct trace_event_raw_musb_regw { +struct trace_event_raw_smbus_read { struct trace_entry ent; - void *caller; - const void *addr; - unsigned int offset; - u16 data; + int adapter_nr; + __u16 flags; + __u16 addr; + __u8 command; + __u32 protocol; + __u8 buf[34]; char __data[0]; }; -struct trace_event_raw_musb_regl { +struct trace_event_raw_smbus_reply { struct trace_entry ent; - void *caller; - const void *addr; - unsigned int offset; - u32 data; + int adapter_nr; + __u16 addr; + __u16 flags; + __u8 command; + __u8 len; + __u32 protocol; + __u8 buf[34]; char __data[0]; }; -struct trace_event_raw_musb_isr { +struct trace_event_raw_smbus_result { struct trace_entry ent; - u32 __data_loc_name; - u8 int_usb; - u16 int_tx; - u16 int_rx; + int adapter_nr; + __u16 addr; + __u16 flags; + __u8 read_write; + __u8 command; + __s16 res; + __u32 protocol; char __data[0]; }; -struct trace_event_raw_musb_urb { - struct trace_entry ent; - u32 __data_loc_name; - struct urb *urb; - unsigned int pipe; - int status; - unsigned int flag; - u32 buf_len; - u32 actual_len; - char __data[0]; -}; +struct trace_event_data_offsets_smbus_write {}; -struct trace_event_raw_musb_req { - struct trace_entry ent; - struct usb_request *req; - u8 is_tx; - u8 epnum; - int status; - unsigned int buf_len; - unsigned int actual_len; - unsigned int zero; - unsigned int short_not_ok; - unsigned int no_interrupt; - char __data[0]; -}; +struct trace_event_data_offsets_smbus_read {}; -struct trace_event_data_offsets_musb_log { - u32 name; - u32 msg; -}; +struct trace_event_data_offsets_smbus_reply {}; -struct trace_event_data_offsets_musb_state { - u32 name; - u32 desc; -}; +struct trace_event_data_offsets_smbus_result {}; -struct trace_event_data_offsets_musb_isr { - u32 name; +struct tegra_i2c_hw_feature { + bool has_continue_xfer_support; + bool has_per_pkt_xfer_complete_irq; + bool has_config_load_reg; + u32 clk_divisor_hs_mode; + u32 clk_divisor_std_mode; + u32 clk_divisor_fast_mode; + u32 clk_divisor_fast_plus_mode; + bool has_multi_master_mode; + bool has_slcg_override_reg; + bool has_mst_fifo; + const struct i2c_adapter_quirks *quirks; + bool supports_bus_clear; + bool has_apb_dma; + u32 tlow_std_mode; + u32 thigh_std_mode; + u32 tlow_fast_fastplus_mode; + u32 thigh_fast_fastplus_mode; + u32 setup_hold_time_std_mode; + u32 setup_hold_time_fast_fast_plus_mode; + u32 setup_hold_time_hs_mode; + bool has_interface_timing_reg; }; -struct trace_event_data_offsets_musb_urb { - u32 name; +enum msg_end_type { + MSG_END_STOP = 0, + MSG_END_REPEAT_START = 1, + MSG_END_CONTINUE = 2, }; -struct trace_event_data_offsets_musb_regb {}; - -struct trace_event_data_offsets_musb_regw {}; - -struct trace_event_data_offsets_musb_regl {}; - -struct trace_event_data_offsets_musb_req {}; - -struct cros_ec_bs_map { - unsigned int ev_type; - unsigned int code; - u8 bit; - bool inverted; +struct tegra_i2c_dev { + struct device *dev; + struct i2c_adapter adapter; + const struct tegra_i2c_hw_feature *hw; + struct reset_control *rst; + unsigned int cont_id; + unsigned int irq; + phys_addr_t base_phys; + void *base; + struct clk_bulk_data clocks[2]; + unsigned int nclocks; + struct clk *div_clk; + struct i2c_timings timings; + struct completion msg_complete; + size_t msg_buf_remaining; + unsigned int msg_len; + int msg_err; + u8 *msg_buf; + struct completion dma_complete; + struct dma_chan *dma_chan; + unsigned int dma_buf_size; + struct device *dma_dev; + dma_addr_t dma_phys; + void *dma_buf; + bool multimaster_mode; + bool atomic_mode; + bool dma_mode; + bool msg_read; + bool is_dvc; + bool is_vi; }; -enum ec_mkbp_info_type { - EC_MKBP_INFO_KBD = 0, - EC_MKBP_INFO_SUPPORTED = 1, - EC_MKBP_INFO_CURRENT = 2, +struct bq27xxx_dm_reg { + u8 subclass_id; + u8 offset; + u8 bytes; + u16 min; + u16 max; }; -struct ec_params_mkbp_info { - uint8_t info_type; - uint8_t event_type; +enum bq27xxx_chip { + BQ27000 = 1, + BQ27010 = 2, + BQ2750X = 3, + BQ2751X = 4, + BQ2752X = 5, + BQ27500 = 6, + BQ27510G1 = 7, + BQ27510G2 = 8, + BQ27510G3 = 9, + BQ27520G1 = 10, + BQ27520G2 = 11, + BQ27520G3 = 12, + BQ27520G4 = 13, + BQ27521 = 14, + BQ27530 = 15, + BQ27531 = 16, + BQ27541 = 17, + BQ27542 = 18, + BQ27546 = 19, + BQ27742 = 20, + BQ27545 = 21, + BQ27411 = 22, + BQ27421 = 23, + BQ27425 = 24, + BQ27426 = 25, + BQ27441 = 26, + BQ27621 = 27, + BQ27Z561 = 28, + BQ28Z610 = 29, + BQ34Z100 = 30, + BQ78Z100 = 31, }; -struct vivaldi_data { - u32 function_row_physmap[24]; - unsigned int num_function_row_keys; +enum bq27xxx_reg_index { + BQ27XXX_REG_CTRL = 0, + BQ27XXX_REG_TEMP = 1, + BQ27XXX_REG_INT_TEMP = 2, + BQ27XXX_REG_VOLT = 3, + BQ27XXX_REG_AI = 4, + BQ27XXX_REG_FLAGS = 5, + BQ27XXX_REG_TTE = 6, + BQ27XXX_REG_TTF = 7, + BQ27XXX_REG_TTES = 8, + BQ27XXX_REG_TTECP = 9, + BQ27XXX_REG_NAC = 10, + BQ27XXX_REG_RC = 11, + BQ27XXX_REG_FCC = 12, + BQ27XXX_REG_CYCT = 13, + BQ27XXX_REG_AE = 14, + BQ27XXX_REG_SOC = 15, + BQ27XXX_REG_DCAP = 16, + BQ27XXX_REG_AP = 17, + BQ27XXX_DM_CTRL = 18, + BQ27XXX_DM_CLASS = 19, + BQ27XXX_DM_BLOCK = 20, + BQ27XXX_DM_DATA = 21, + BQ27XXX_DM_CKSUM = 22, + BQ27XXX_REG_MAX = 23, }; -struct cros_ec_keyb { - unsigned int rows; - unsigned int cols; - int row_shift; - const struct matrix_keymap_data *keymap_data; - bool ghost_filter; - uint8_t *valid_keys; - uint8_t *old_kb_state; - struct device *dev; - struct cros_ec_device *ec; - struct input_dev *idev; - struct input_dev *bs_idev; - struct notifier_block notifier; - struct vivaldi_data vdata; +enum { + POWER_SUPPLY_HEALTH_UNKNOWN = 0, + POWER_SUPPLY_HEALTH_GOOD = 1, + POWER_SUPPLY_HEALTH_OVERHEAT = 2, + POWER_SUPPLY_HEALTH_DEAD = 3, + POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4, + POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5, + POWER_SUPPLY_HEALTH_COLD = 6, + POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7, + POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8, + POWER_SUPPLY_HEALTH_OVERCURRENT = 9, + POWER_SUPPLY_HEALTH_CALIBRATION_REQUIRED = 10, + POWER_SUPPLY_HEALTH_WARM = 11, + POWER_SUPPLY_HEALTH_COOL = 12, + POWER_SUPPLY_HEALTH_HOT = 13, + POWER_SUPPLY_HEALTH_NO_BATTERY = 14, }; -union ec_response_get_next_data { - uint8_t key_matrix[13]; - uint32_t host_event; - uint64_t host_event64; - struct { - uint8_t reserved[3]; - struct ec_response_motion_sense_fifo_info info; - } sensor_fifo; - uint32_t buttons; - uint32_t switches; - uint32_t fp_events; - uint32_t sysrq; - uint32_t cec_events; +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 lpi2c_imx_mode { - STANDARD = 0, - FAST = 1, - FAST_PLUS = 2, - HS = 3, - ULTRA_FAST = 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 lpi2c_imx_pincfg { - TWO_PIN_OD = 0, - TWO_PIN_OO = 1, - TWO_PIN_PP = 2, - FOUR_PIN_PP = 3, +enum bq27xxx_dm_reg_id { + BQ27XXX_DM_DESIGN_CAPACITY = 0, + BQ27XXX_DM_DESIGN_ENERGY = 1, + BQ27XXX_DM_TERMINATE_VOLTAGE = 2, }; -struct lpi2c_imx_struct { - struct i2c_adapter adapter; - int num_clks; - struct clk_bulk_data *clks; - void *base; - __u8 *rx_buf; - __u8 *tx_buf; - struct completion complete; - unsigned int msglen; - unsigned int delivered; - unsigned int block_data; - unsigned int bitrate; - unsigned int txfifosize; - unsigned int rxfifosize; - enum lpi2c_imx_mode mode; -}; +struct bq27xxx_device_info; -struct syscon_reboot_context { - struct regmap *map; - u32 offset; - u32 value; - u32 mask; - struct notifier_block restart_handler; +struct bq27xxx_access_methods { + int (*read)(struct bq27xxx_device_info *, u8, bool); + int (*write)(struct bq27xxx_device_info *, u8, int, bool); + int (*read_bulk)(struct bq27xxx_device_info *, u8, u8 *, int); + int (*write_bulk)(struct bq27xxx_device_info *, u8, u8 *, int); }; -enum soc_type { - SOC_ARCH_EXYNOS3250 = 1, - SOC_ARCH_EXYNOS4210 = 2, - SOC_ARCH_EXYNOS4412 = 3, - SOC_ARCH_EXYNOS5250 = 4, - SOC_ARCH_EXYNOS5260 = 5, - SOC_ARCH_EXYNOS5420 = 6, - SOC_ARCH_EXYNOS5420_TRIMINFO = 7, - SOC_ARCH_EXYNOS5433 = 8, - SOC_ARCH_EXYNOS7 = 9, +struct bq27xxx_reg_cache { + int temperature; + int time_to_empty; + int time_to_empty_avg; + int time_to_full; + int charge_full; + int cycle_count; + int capacity; + int energy; + int flags; + int health; }; -struct exynos_tmu_data { +struct bq27xxx_device_info { + struct device *dev; int id; - void *base; - void *base_second; - int irq; - enum soc_type soc; - struct work_struct irq_work; + enum bq27xxx_chip chip; + u32 opts; + const char *name; + struct bq27xxx_dm_reg *dm_regs; + u32 unseal_key; + struct bq27xxx_access_methods bus; + struct bq27xxx_reg_cache cache; + int charge_design_full; + bool removed; + unsigned long last_update; + union power_supply_propval last_status; + struct delayed_work work; + struct power_supply *bat; + struct list_head list; struct mutex lock; - struct clk *clk; - struct clk *clk_sec; - struct clk *sclk; - u32 cal_type; - u32 efuse_value; - u32 min_efuse_value; - u32 max_efuse_value; - u16 temp_error1; - u16 temp_error2; - u8 gain; - u8 reference_voltage; - struct regulator *regulator; - struct thermal_zone_device *tzd; - unsigned int ntrip; - bool enabled; - void (*tmu_set_trip_temp)(struct exynos_tmu_data *, int, u8); - void (*tmu_set_trip_hyst)(struct exynos_tmu_data *, int, u8, u8); - void (*tmu_initialize)(struct platform_device *); - void (*tmu_control)(struct platform_device *, bool); - int (*tmu_read)(struct exynos_tmu_data *); - void (*tmu_set_emulation)(struct exynos_tmu_data *, int); - void (*tmu_clear_irqs)(struct exynos_tmu_data *); -}; - -struct sdio_device_id; - -struct sdio_driver { - char *name; - const struct sdio_device_id *id_table; - int (*probe)(struct sdio_func *, const struct sdio_device_id *); - void (*remove)(struct sdio_func *); - struct device_driver drv; -}; - -struct sdio_device_id { - __u8 class; - __u16 vendor; - __u16 device; - kernel_ulong_t driver_data; -}; - -struct sdhci_tegra_soc_data { - const struct sdhci_pltfm_data *pdata; - u64 dma_mask; - u32 nvquirks; - u8 min_tap_delay; - u8 max_tap_delay; + u8 *regs; }; -struct sdhci_tegra_autocal_offsets { - u32 pull_up_3v3; - u32 pull_down_3v3; - u32 pull_up_3v3_timeout; - u32 pull_down_3v3_timeout; - u32 pull_up_1v8; - u32 pull_down_1v8; - u32 pull_up_1v8_timeout; - u32 pull_down_1v8_timeout; - u32 pull_up_sdr104; - u32 pull_down_sdr104; - u32 pull_up_hs400; - u32 pull_down_hs400; +struct bq27xxx_dm_buf { + u8 class; + u8 block; + u8 data[32]; + bool has_data; + bool dirty; }; -struct sdhci_tegra { - const struct sdhci_tegra_soc_data *soc_data; - struct gpio_desc *power_gpio; - struct clk *tmclk; - bool ddr_signaling; - bool pad_calib_required; - bool pad_control_available; - struct reset_control *rst; - struct pinctrl *pinctrl_sdmmc; - struct pinctrl_state *pinctrl_state_3v3; - struct pinctrl_state *pinctrl_state_1v8; - struct pinctrl_state *pinctrl_state_3v3_drv; - struct pinctrl_state *pinctrl_state_1v8_drv; - struct sdhci_tegra_autocal_offsets autocal_offsets; - ktime_t last_calib; - u32 default_tap; - u32 default_trim; - u32 dqs_trim; - bool enable_hwcq; - unsigned long curr_clk_rate; - u8 tuned_tap_delay; - u32 stream_id; -}; +struct armada_thermal_priv; -struct ti_sci_desc { - u8 default_host_id; - int max_rx_timeout_ms; - int max_msgs; - int max_msg_size; +struct armada_thermal_data { + void (*init)(struct platform_device *, struct armada_thermal_priv *); + s64 coef_b; + s64 coef_m; + u32 coef_div; + bool inverted; + bool signed_sample; + unsigned int temp_shift; + unsigned int temp_mask; + unsigned int thresh_shift; + unsigned int hyst_shift; + unsigned int hyst_mask; + u32 is_valid_bit; + unsigned int syscon_control0_off; + unsigned int syscon_control1_off; + unsigned int syscon_status_off; + unsigned int dfx_irq_cause_off; + unsigned int dfx_irq_mask_off; + unsigned int dfx_overheat_irq; + unsigned int dfx_server_irq_mask_off; + unsigned int dfx_server_irq_en; + unsigned int cpu_nr; }; -struct ti_sci_xfer; - -struct ti_sci_xfers_info { - struct semaphore sem_xfer_count; - struct ti_sci_xfer *xfer_block; - unsigned long *xfer_alloc_table; - spinlock_t xfer_lock; +struct armada_thermal_priv { + struct device *dev; + struct regmap *syscon; + char zone_name[20]; + struct mutex update_lock; + struct armada_thermal_data *data; + struct thermal_zone_device *overheat_sensor; + int interrupt_source; + int current_channel; + long current_threshold; + long current_hysteresis; }; -struct ti_sci_info { - struct device *dev; - struct notifier_block nb; - const struct ti_sci_desc *desc; - struct dentry *d; - void *debug_region; - char *debug_buffer; - size_t debug_region_size; - struct ti_sci_handle handle; - struct mbox_client cl; - struct mbox_chan *chan_tx; - struct mbox_chan *chan_rx; - struct ti_sci_xfers_info minfo; - struct list_head node; - u8 host_id; - int users; - bool is_suspending; +enum drvtype { + LEGACY = 0, + SYSCON = 1, }; -struct ti_sci_xfer { - struct ti_msgmgr_message tx_message; - u8 rx_len; - u8 *xfer_buf; - struct completion done; +struct armada_drvdata { + enum drvtype type; + union { + struct armada_thermal_priv *priv; + struct thermal_zone_device *tz; + } data; }; -struct ti_sci_msg_hdr { - u16 type; - u8 host; - u8 seq; - u32 flags; +struct armada_thermal_sensor { + struct armada_thermal_priv *priv; + int id; }; -struct ti_sci_msg_resp_version { - struct ti_sci_msg_hdr hdr; - char firmware_description[32]; - u16 firmware_revision; - u8 abi_major; - u8 abi_minor; +struct bcm2835_wdt { + void *base; + spinlock_t lock; }; -struct ti_sci_msg_req_reboot { - struct ti_sci_msg_hdr hdr; +struct edac_pci_dev_attribute { + struct attribute attr; + void *value; + ssize_t (*show)(void *, char *); + ssize_t (*store)(void *, const char *, size_t); }; -struct ti_sci_msg_req_set_device_state { - struct ti_sci_msg_hdr hdr; - u32 id; - u32 reserved; - u8 state; -} __attribute__((packed)); +struct edac_pci_ctl_info; -struct ti_sci_msg_req_get_device_state { - struct ti_sci_msg_hdr hdr; - u32 id; +struct instance_attribute___2 { + struct attribute attr; + ssize_t (*show)(struct edac_pci_ctl_info *, char *); + ssize_t (*store)(struct edac_pci_ctl_info *, const char *, size_t); }; -struct ti_sci_msg_resp_get_device_state { - struct ti_sci_msg_hdr hdr; - u32 context_loss_count; - u32 resets; - u8 programmed_state; - u8 current_state; -} __attribute__((packed)); - -struct ti_sci_msg_req_set_device_resets { - struct ti_sci_msg_hdr hdr; - u32 id; - u32 resets; +struct edac_pci_counter { + atomic_t pe_count; + atomic_t npe_count; }; -struct ti_sci_msg_req_set_clock_state { - struct ti_sci_msg_hdr hdr; - u32 dev_id; - u8 clk_id; - u8 request_state; - u32 clk_id_32; -} __attribute__((packed)); +struct edac_pci_ctl_info { + struct list_head link; + int pci_idx; + struct bus_type *edac_subsys; + int op_state; + struct delayed_work work; + void (*edac_check)(struct edac_pci_ctl_info *); + struct device *dev; + const char *mod_name; + const char *ctl_name; + const char *dev_name; + void *pvt_info; + unsigned long start_time; + struct completion complete; + char name[32]; + struct edac_pci_counter counters; + struct kobject kobj; +}; -struct ti_sci_msg_req_get_clock_state { - struct ti_sci_msg_hdr hdr; - u32 dev_id; - u8 clk_id; - u32 clk_id_32; -} __attribute__((packed)); +typedef void (*pci_parity_check_fn_t)(struct pci_dev *); -struct ti_sci_msg_resp_get_clock_state { - struct ti_sci_msg_hdr hdr; - u8 programmed_state; - u8 current_state; -} __attribute__((packed)); +struct esdhc_soc_data { + u32 flags; +}; -struct ti_sci_msg_req_set_clock_parent { - struct ti_sci_msg_hdr hdr; - u32 dev_id; - u8 clk_id; - u8 parent_id; - u32 clk_id_32; - u32 parent_id_32; -} __attribute__((packed)); +enum wp_types { + ESDHC_WP_NONE = 0, + ESDHC_WP_CONTROLLER = 1, + ESDHC_WP_GPIO = 2, +}; -struct ti_sci_msg_req_get_clock_parent { - struct ti_sci_msg_hdr hdr; - u32 dev_id; - u8 clk_id; - u32 clk_id_32; -} __attribute__((packed)); +enum cd_types { + ESDHC_CD_NONE = 0, + ESDHC_CD_CONTROLLER = 1, + ESDHC_CD_GPIO = 2, + ESDHC_CD_PERMANENT = 3, +}; -struct ti_sci_msg_resp_get_clock_parent { - struct ti_sci_msg_hdr hdr; - u8 parent_id; - u32 parent_id_32; -} __attribute__((packed)); +struct esdhc_platform_data { + enum wp_types wp_type; + enum cd_types cd_type; + int max_bus_width; + unsigned int delay_line; + unsigned int tuning_step; + unsigned int tuning_start_tap; + unsigned int strobe_dll_delay_target; +}; -struct ti_sci_msg_req_get_clock_num_parents { - struct ti_sci_msg_hdr hdr; - u32 dev_id; - u8 clk_id; - u32 clk_id_32; -} __attribute__((packed)); +struct pltfm_imx_data { + u32 scratchpad; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_100mhz; + struct pinctrl_state *pins_200mhz; + const struct esdhc_soc_data *socdata; + struct esdhc_platform_data boarddata; + struct clk *clk_ipg; + struct clk *clk_ahb; + struct clk *clk_per; + unsigned int actual_clock; + unsigned int init_card_type; + enum { + NO_CMD_PENDING = 0, + MULTIBLK_IN_PROCESS = 1, + WAIT_FOR_INT = 2, + } multiblock_status; + u32 is_ddr; + struct pm_qos_request pm_qos_req; +}; -struct ti_sci_msg_resp_get_clock_num_parents { - struct ti_sci_msg_hdr hdr; - u8 num_parents; - u32 num_parents_32; -} __attribute__((packed)); +struct scmi_requested_dev { + const struct scmi_device_id *id_table; + struct list_head node; +}; -struct ti_sci_msg_req_query_clock_freq { - struct ti_sci_msg_hdr hdr; - u32 dev_id; - u64 min_freq_hz; - u64 target_freq_hz; - u64 max_freq_hz; - u8 clk_id; - u32 clk_id_32; -} __attribute__((packed)); +enum qcom_scm_convention { + SMC_CONVENTION_UNKNOWN = 0, + SMC_CONVENTION_LEGACY = 1, + SMC_CONVENTION_ARM_32 = 2, + SMC_CONVENTION_ARM_64 = 3, +}; -struct ti_sci_msg_resp_query_clock_freq { - struct ti_sci_msg_hdr hdr; - u64 freq_hz; +struct arm_smccc_quirk { + int id; + union { + unsigned long a6; + } state; }; -struct ti_sci_msg_req_set_clock_freq { - struct ti_sci_msg_hdr hdr; - u32 dev_id; - u64 min_freq_hz; - u64 target_freq_hz; - u64 max_freq_hz; - u8 clk_id; - u32 clk_id_32; -} __attribute__((packed)); +enum sh_tmu_model { + SH_TMU = 0, + SH_TMU_SH3 = 1, +}; -struct ti_sci_msg_req_get_clock_freq { - struct ti_sci_msg_hdr hdr; - u32 dev_id; - u8 clk_id; - u32 clk_id_32; -} __attribute__((packed)); +struct sh_tmu_device; -struct ti_sci_msg_resp_get_clock_freq { - struct ti_sci_msg_hdr hdr; - u64 freq_hz; +struct sh_tmu_channel { + struct sh_tmu_device *tmu; + unsigned int index; + void *base; + int irq; + unsigned long periodic; + long: 64; + long: 64; + long: 64; + struct clock_event_device ced; + struct clocksource cs; + bool cs_enabled; + unsigned int enable_count; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct ti_sci_msg_req_get_resource_range { - struct ti_sci_msg_hdr hdr; - u16 type; - u8 subtype; - u8 secondary_host; +struct sh_tmu_device { + struct platform_device *pdev; + void *mapbase; + struct clk *clk; + unsigned long rate; + enum sh_tmu_model model; + raw_spinlock_t lock; + struct sh_tmu_channel *channels; + unsigned int num_channels; + bool has_clockevent; + bool has_clocksource; }; -struct ti_sci_msg_resp_get_resource_range { - struct ti_sci_msg_hdr hdr; - u16 range_start; - u16 range_num; - u16 range_start_sec; - u16 range_num_sec; +struct sh_timer_config { + unsigned int channels_mask; }; -struct ti_sci_msg_req_manage_irq { - struct ti_sci_msg_hdr hdr; - u32 valid_params; - u16 src_id; - u16 src_index; - u16 dst_id; - u16 dst_host_irq; - u16 ia_id; - u16 vint; - u16 global_event; - u8 vint_status_bit; - u8 secondary_host; +struct of_bus { + const char *name; + const char *addresses; + int (*match)(struct device_node *); + void (*count_cells)(struct device_node *, int *, int *); + u64 (*map)(__be32 *, const __be32 *, int, int, int, int); + int (*translate)(__be32 *, u64, int); + int flag_cells; + unsigned int (*get_flags)(const __be32 *); }; -struct ti_sci_msg_rm_ring_cfg_req { - struct ti_sci_msg_hdr hdr; - u32 valid_params; - u16 nav_id; - u16 index; - u32 addr_lo; - u32 addr_hi; - u32 count; - u8 mode; - u8 size; - u8 order_id; - u16 virtid; - u8 asel; -} __attribute__((packed)); - -struct ti_sci_msg_psil_pair { - struct ti_sci_msg_hdr hdr; - u32 nav_id; - u32 src_thread; - u32 dst_thread; +enum smd_channel_state { + SMD_CHANNEL_CLOSED = 0, + SMD_CHANNEL_OPENING = 1, + SMD_CHANNEL_OPENED = 2, + SMD_CHANNEL_FLUSHING = 3, + SMD_CHANNEL_CLOSING = 4, + SMD_CHANNEL_RESET = 5, + SMD_CHANNEL_RESET_OPENING = 6, }; -struct ti_sci_msg_psil_unpair { - struct ti_sci_msg_hdr hdr; - u32 nav_id; - u32 src_thread; - u32 dst_thread; +struct qcom_smd_edge { + struct device dev; + const char *name; + struct device_node *of_node; + unsigned int edge_id; + unsigned int remote_pid; + int irq; + struct regmap *ipc_regmap; + int ipc_offset; + int ipc_bit; + struct mbox_client mbox_client; + struct mbox_chan *mbox_chan; + struct list_head channels; + spinlock_t channels_lock; + unsigned long allocated[2]; + unsigned int smem_available; + wait_queue_head_t new_channel_event; + struct work_struct scan_work; + struct work_struct state_work; }; -struct ti_sci_msg_rm_udmap_tx_ch_cfg_req { - struct ti_sci_msg_hdr hdr; - u32 valid_params; - u16 nav_id; - u16 index; - u8 tx_pause_on_err; - u8 tx_filt_einfo; - u8 tx_filt_pswords; - u8 tx_atype; - u8 tx_chan_type; - u8 tx_supr_tdpkt; - u16 tx_fetch_size; - u8 tx_credit_count; - u16 txcq_qnum; - u8 tx_priority; - u8 tx_qos; - u8 tx_orderid; - u16 fdepth; - u8 tx_sched_priority; - u8 tx_burst_size; - u8 tx_tdtype; - u8 extended_ch_type; -} __attribute__((packed)); - -struct ti_sci_msg_rm_udmap_rx_ch_cfg_req { - struct ti_sci_msg_hdr hdr; - u32 valid_params; - u16 nav_id; - u16 index; - u16 rx_fetch_size; - u16 rxcq_qnum; - u8 rx_priority; - u8 rx_qos; - u8 rx_orderid; - u8 rx_sched_priority; - u16 flowid_start; - u16 flowid_cnt; - u8 rx_pause_on_err; - u8 rx_atype; - u8 rx_chan_type; - u8 rx_ignore_short; - u8 rx_ignore_long; - u8 rx_burst_size; -} __attribute__((packed)); +struct qcom_smd_endpoint; -struct ti_sci_msg_rm_udmap_flow_cfg_req { - struct ti_sci_msg_hdr hdr; - u32 valid_params; - u16 nav_id; - u16 flow_index; - u8 rx_einfo_present; - u8 rx_psinfo_present; - u8 rx_error_handling; - u8 rx_desc_type; - u16 rx_sop_offset; - u16 rx_dest_qnum; - u8 rx_src_tag_hi; - u8 rx_src_tag_lo; - u8 rx_dest_tag_hi; - u8 rx_dest_tag_lo; - u8 rx_src_tag_hi_sel; - u8 rx_src_tag_lo_sel; - u8 rx_dest_tag_hi_sel; - u8 rx_dest_tag_lo_sel; - u16 rx_fdq0_sz0_qnum; - u16 rx_fdq1_qnum; - u16 rx_fdq2_qnum; - u16 rx_fdq3_qnum; - u8 rx_ps_location; -} __attribute__((packed)); +struct smd_channel_info_pair; -struct ti_sci_msg_req_proc_request { - struct ti_sci_msg_hdr hdr; - u8 processor_id; -} __attribute__((packed)); +struct smd_channel_info_word_pair; -struct ti_sci_msg_req_proc_release { - struct ti_sci_msg_hdr hdr; - u8 processor_id; -} __attribute__((packed)); +struct qcom_smd_channel { + struct qcom_smd_edge *edge; + struct qcom_smd_endpoint *qsept; + bool registered; + char *name; + enum smd_channel_state state; + enum smd_channel_state remote_state; + wait_queue_head_t state_change_event; + struct smd_channel_info_pair *info; + struct smd_channel_info_word_pair *info_word; + spinlock_t tx_lock; + wait_queue_head_t fblockread_event; + void *tx_fifo; + void *rx_fifo; + int fifo_size; + void *bounce_buffer; + spinlock_t recv_lock; + int pkt_size; + void *drvdata; + struct list_head list; +}; -struct ti_sci_msg_req_proc_handover { - struct ti_sci_msg_hdr hdr; - u8 processor_id; - u8 host_id; -} __attribute__((packed)); +struct qcom_smd_endpoint { + struct rpmsg_endpoint ept; + struct qcom_smd_channel *qsch; +}; -struct ti_sci_msg_req_set_config { - struct ti_sci_msg_hdr hdr; - u8 processor_id; - u32 bootvector_low; - u32 bootvector_high; - u32 config_flags_set; - u32 config_flags_clear; -} __attribute__((packed)); +struct smd_channel_info { + __le32 state; + u8 fDSR; + u8 fCTS; + u8 fCD; + u8 fRI; + u8 fHEAD; + u8 fTAIL; + u8 fSTATE; + u8 fBLOCKREADINTR; + __le32 tail; + __le32 head; +}; -struct ti_sci_msg_req_set_ctrl { - struct ti_sci_msg_hdr hdr; - u8 processor_id; - u32 control_flags_set; - u32 control_flags_clear; -} __attribute__((packed)); +struct smd_channel_info_pair { + struct smd_channel_info tx; + struct smd_channel_info rx; +}; -struct ti_sci_msg_req_get_status { - struct ti_sci_msg_hdr hdr; - u8 processor_id; -} __attribute__((packed)); +struct smd_channel_info_word { + __le32 state; + __le32 fDSR; + __le32 fCTS; + __le32 fCD; + __le32 fRI; + __le32 fHEAD; + __le32 fTAIL; + __le32 fSTATE; + __le32 fBLOCKREADINTR; + __le32 tail; + __le32 head; +}; -struct ti_sci_msg_resp_get_status { - struct ti_sci_msg_hdr hdr; - u8 processor_id; - u32 bootvector_low; - u32 bootvector_high; - u32 config_flags; - u32 control_flags; - u32 status_flags; -} __attribute__((packed)); +struct smd_channel_info_word_pair { + struct smd_channel_info_word tx; + struct smd_channel_info_word rx; +}; -typedef void (*btf_trace_cros_ec_request_start)(void *, struct cros_ec_command *); +struct qcom_smd_device { + struct rpmsg_device rpdev; + struct qcom_smd_edge *edge; +}; -typedef void (*btf_trace_cros_ec_request_done)(void *, struct cros_ec_command *, int); +struct qcom_smd_alloc_entry { + u8 name[20]; + __le32 cid; + __le32 flags; + __le32 ref_count; +}; -struct trace_event_raw_cros_ec_request_start { - struct trace_entry ent; - uint32_t version; - uint32_t offset; - uint32_t command; - uint32_t outsize; - uint32_t insize; - char __data[0]; +enum armpmu_attr_groups { + ARMPMU_ATTR_GROUP_COMMON = 0, + ARMPMU_ATTR_GROUP_EVENTS = 1, + ARMPMU_ATTR_GROUP_FORMATS = 2, + ARMPMU_ATTR_GROUP_CAPS = 3, + ARMPMU_NR_ATTR_GROUPS = 4, }; -struct trace_event_raw_cros_ec_request_done { - struct trace_entry ent; - uint32_t version; - uint32_t offset; - uint32_t command; - uint32_t outsize; - uint32_t insize; - uint32_t result; - int retval; - char __data[0]; +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, }; -struct trace_event_data_offsets_cros_ec_request_start {}; +typedef int (*armpmu_init_fn)(struct arm_pmu *); -struct trace_event_data_offsets_cros_ec_request_done {}; +struct pmu_probe_info { + unsigned int cpuid; + unsigned int mask; + armpmu_init_fn init; +}; -struct dpfe_api { - int version; - const char *fw_name; - const struct attribute_group **sysfs_attrs; - u32 command[48]; +struct armv8pmu_probe_info { + struct arm_pmu *pmu; + bool present; }; -enum dpfe_commands { - DPFE_CMD_GET_INFO = 0, - DPFE_CMD_GET_REFRESH = 1, - DPFE_CMD_GET_VENDOR = 2, - DPFE_CMD_MAX = 3, +struct optee_shm_arg_entry { + struct list_head list_node; + struct tee_shm *shm; + unsigned long map[1]; }; -enum dpfe_msg_fields { - MSG_HEADER = 0, - MSG_COMMAND = 1, - MSG_ARG_COUNT = 2, - MSG_ARG0 = 3, - MSG_FIELD_MAX = 16, +struct optee_session { + struct list_head list_node; + u32 session_id; }; -struct dpfe_firmware_header { - u32 magic; - u32 sequence; - u32 version; - u32 imem_size; - u32 dmem_size; +struct optee_context_data { + struct mutex mutex; + struct list_head sess_list; }; -struct brcmstb_dpfe_priv { - void *regs; - void *dmem; - void *imem; - struct device *dev; - const struct dpfe_api *dpfe_api; - struct mutex lock; +struct snd_soc_jack_pin { + struct list_head list; + const char *pin; + int mask; + bool invert; }; -struct init_data { - unsigned int dmem_len; - unsigned int imem_len; - unsigned int chksum; - bool is_big_endian; +struct fib_notifier_net { + struct list_head fib_notifier_ops; + struct atomic_notifier_head fib_chain; }; -struct ocotp_ctrl_reg { - u32 bm_addr; - u32 bm_busy; - u32 bm_error; - u32 bm_rel_shadows; +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 ocotp_priv___2; +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, +}; -struct ocotp_params { - unsigned int nregs; - unsigned int bank_address_words; - void (*set_timing)(struct ocotp_priv___2 *); - struct ocotp_ctrl_reg ctrl; +enum { + LWT_BPF_PROG_UNSPEC = 0, + LWT_BPF_PROG_FD = 1, + LWT_BPF_PROG_NAME = 2, + __LWT_BPF_PROG_MAX = 3, }; -struct ocotp_priv___2 { - struct device *dev; - struct clk *clk; - void *base; - const struct ocotp_params *params; - struct nvmem_config *config; +enum bpf_ret_code { + BPF_OK = 0, + BPF_DROP = 2, + BPF_REDIRECT = 7, + BPF_LWT_REROUTE = 128, + BPF_FLOW_DISSECTOR_CONTINUE = 129, }; -struct dmaengine_pcm { - struct dma_chan *chan[2]; - const struct snd_dmaengine_pcm_config *config; - struct snd_soc_component component; - unsigned int flags; +enum { + LWTUNNEL_XMIT_DONE = 0, + LWTUNNEL_XMIT_CONTINUE = 256, }; -struct snd_dmaengine_dai_dma_data { - dma_addr_t addr; - enum dma_slave_buswidth addr_width; - u32 maxburst; - void *filter_data; - const char *chan_name; - unsigned int fifo_size; - unsigned int flags; - void *peripheral_config; - size_t peripheral_size; +struct gre_base_hdr { + __be16 flags; + __be16 protocol; }; -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_lwt_prog { + struct bpf_prog *prog; + char *name; }; -struct rhashtable_walker { - struct list_head list; - struct bucket_table *tbl; +struct bpf_lwt { + struct bpf_lwt_prog in; + struct bpf_lwt_prog out; + struct bpf_lwt_prog xmit; + int family; }; -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; +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 xdp_attachment_info { - struct bpf_prog *prog; - u32 flags; +struct wol_reply_data { + struct ethnl_reply_data base; + struct ethtool_wolinfo wol; + bool show_sopass; }; -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 nf_hook_ops_type { + NF_HOOK_OP_UNDEFINED = 0, + NF_HOOK_OP_NF_TABLES = 1, + NF_HOOK_OP_BPF = 2, }; -enum netlink_policy_type_attr { - NL_POLICY_TYPE_ATTR_UNSPEC = 0, - NL_POLICY_TYPE_ATTR_TYPE = 1, - NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 2, - NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 3, - NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 4, - NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 5, - NL_POLICY_TYPE_ATTR_MIN_LENGTH = 6, - NL_POLICY_TYPE_ATTR_MAX_LENGTH = 7, - NL_POLICY_TYPE_ATTR_POLICY_IDX = 8, - NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 9, - NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 10, - NL_POLICY_TYPE_ATTR_PAD = 11, - NL_POLICY_TYPE_ATTR_MASK = 12, - __NL_POLICY_TYPE_ATTR_MAX = 13, - NL_POLICY_TYPE_ATTR_MAX = 12, +enum nf_ip_hook_priorities { + NF_IP_PRI_FIRST = -2147483648, + NF_IP_PRI_RAW_BEFORE_DEFRAG = -450, + NF_IP_PRI_CONNTRACK_DEFRAG = -400, + NF_IP_PRI_RAW = -300, + NF_IP_PRI_SELINUX_FIRST = -225, + NF_IP_PRI_CONNTRACK = -200, + NF_IP_PRI_MANGLE = -150, + NF_IP_PRI_NAT_DST = -100, + NF_IP_PRI_FILTER = 0, + NF_IP_PRI_SECURITY = 50, + NF_IP_PRI_NAT_SRC = 100, + NF_IP_PRI_SELINUX_LAST = 225, + NF_IP_PRI_CONNTRACK_HELPER = 300, + NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647, + NF_IP_PRI_LAST = 2147483647, }; -struct netlink_policy_dump_state { - unsigned int policy_idx; - unsigned int attr_idx; - unsigned int n_alloc; - struct { - const struct nla_policy *policy; - unsigned int maxtype; - } policies[0]; +struct 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; }; -enum ethtool_flags { - ETH_FLAG_TXVLAN = 128, - ETH_FLAG_RXVLAN = 256, - ETH_FLAG_LRO = 32768, - ETH_FLAG_NTUPLE = 134217728, - ETH_FLAG_RXHASH = 268435456, +struct nf_defrag_hook; + +struct bpf_nf_link { + struct bpf_link link; + struct nf_hook_ops hook_ops; + struct net *net; + u32 dead; + const struct nf_defrag_hook *defrag_hook; }; -enum ethtool_sfeatures_retval_bits { - ETHTOOL_F_UNSUPPORTED__BIT = 0, - ETHTOOL_F_WISH__BIT = 1, - ETHTOOL_F_COMPAT__BIT = 2, +struct nf_defrag_hook { + struct module *owner; + int (*enable)(struct net *); + void (*disable)(struct net *); }; -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, +typedef void devlink_rel_notify_cb_t(struct devlink *, u32); + +typedef void devlink_rel_cleanup_cb_t(struct devlink *, u32, u32); + +struct devlink_rel { + u32 index; + refcount_t refcount; + u32 devlink_index; + struct { + u32 devlink_index; + u32 obj_index; + devlink_rel_notify_cb_t *notify_cb; + devlink_rel_cleanup_cb_t *cleanup_cb; + struct work_struct notify_work; + } nested_in; }; -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, +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); + +typedef void (*btf_trace_devlink_trap_report)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *); + +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]; }; -enum ethtool_fec_config_bits { - ETHTOOL_FEC_NONE_BIT = 0, - ETHTOOL_FEC_AUTO_BIT = 1, - ETHTOOL_FEC_OFF_BIT = 2, - ETHTOOL_FEC_RS_BIT = 3, - ETHTOOL_FEC_BASER_BIT = 4, - ETHTOOL_FEC_LLRS_BIT = 5, +struct 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 flow_dissector_key_ip { - __u8 tos; - __u8 ttl; +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 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 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 ethtool_rx_flow_match { - struct flow_dissector dissector; - long: 0; - struct ethtool_rx_flow_key key; - struct ethtool_rx_flow_key mask; +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 ethtool_devlink_compat { - struct devlink *devlink; - union { - struct ethtool_flash efl; - struct ethtool_drvinfo info; - }; +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 ethtool_value { - __u32 cmd; - __u32 data; +struct trace_event_data_offsets_devlink_hwmsg { + u32 bus_name; + u32 dev_name; + u32 driver_name; + u32 buf; }; -struct ethtool_rx_flow_rule { - struct flow_rule *rule; - unsigned long priv[0]; +struct trace_event_data_offsets_devlink_hwerr { + u32 bus_name; + u32 dev_name; + u32 driver_name; + u32 msg; }; -struct ethtool_cmd { - __u32 cmd; - __u32 supported; - __u32 advertising; - __u16 speed; - __u8 duplex; - __u8 port; - __u8 phy_address; - __u8 transceiver; - __u8 autoneg; - __u8 mdio_support; - __u32 maxtxpkt; - __u32 maxrxpkt; - __u16 speed_hi; - __u8 eth_tp_mdix; - __u8 eth_tp_mdix_ctrl; - __u32 lp_advertising; - __u32 reserved[2]; +struct trace_event_data_offsets_devlink_health_recover_aborted { + u32 bus_name; + u32 dev_name; + u32 driver_name; + u32 reporter_name; }; -struct ethtool_link_usettings { - struct ethtool_link_settings base; - struct { - __u32 supported[4]; - __u32 advertising[4]; - __u32 lp_advertising[4]; - } link_modes; +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_health_report { + u32 bus_name; + u32 dev_name; + u32 driver_name; + u32 reporter_name; + u32 msg; }; -struct ethtool_rx_flow_spec_input { - const struct ethtool_rx_flow_spec *fs; - u32 rss_ctx; +struct trace_event_data_offsets_devlink_trap_report { + u32 bus_name; + u32 dev_name; + u32 driver_name; + u32 trap_name; + u32 trap_group_name; }; -struct ethtool_gstrings { - __u32 cmd; - __u32 string_set; - __u32 len; - __u8 data[0]; +struct cache_queue { + struct list_head list; + int reader; }; -struct ethtool_perm_addr { - __u32 cmd; - __u32 size; - __u8 data[0]; +struct cache_request { + struct cache_queue q; + struct cache_head *item; + char *buf; + int len; + int readers; }; -struct ethtool_sset_info { - __u32 cmd; - __u32 reserved; - __u64 sset_mask; - __u32 data[0]; +struct thread_deferred_req { + struct cache_deferred_req handle; + struct completion completion; }; -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 rpc_inode { + struct inode vfs_inode; + void *private; + struct rpc_pipe *pipe; + wait_queue_head_t waitq; }; -struct ethtool_get_features_block { - __u32 available; - __u32 requested; - __u32 active; - __u32 never_changed; +struct cache_reader { + struct cache_queue q; + int offset; }; -struct ethtool_gfeatures { - __u32 cmd; - __u32 size; - struct ethtool_get_features_block features[0]; -}; +struct handshake_req; -struct ethtool_set_features_block { - __u32 valid; - __u32 requested; -}; +typedef void (*btf_trace_handshake_submit)(void *, const struct net *, const struct handshake_req *, const struct sock *); -struct ethtool_sfeatures { - __u32 cmd; - __u32 size; - struct ethtool_set_features_block features[0]; -}; +struct handshake_proto; -struct ethtool_per_queue_op { - __u32 cmd; - __u32 sub_command; - __u32 queue_mask[128]; - char data[0]; +struct handshake_req { + struct list_head hr_list; + struct rhash_head hr_rhash; + unsigned long hr_flags; + const struct handshake_proto *hr_proto; + struct sock *hr_sk; + void (*hr_odestruct)(struct sock *); + char hr_priv[0]; }; -typedef void (*btf_trace_handshake_submit)(void *, const struct net *, const struct handshake_req *, const struct sock *); +struct handshake_proto { + int hp_handler_class; + size_t hp_privsize; + unsigned long hp_flags; + int (*hp_accept)(struct handshake_req *, struct genl_info *, int); + void (*hp_done)(struct handshake_req *, unsigned int, struct genl_info *); + void (*hp_destroy)(struct handshake_req *); +}; typedef void (*btf_trace_handshake_submit_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); @@ -121514,6 +119440,12 @@ typedef void (*btf_trace_handshake_cmd_done)(void *, const struct net *, const s typedef void (*btf_trace_handshake_cmd_done_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef void (*btf_trace_tls_contenttype)(void *, const struct sock *, unsigned char); + +typedef void (*btf_trace_tls_alert_send)(void *, const struct sock *, unsigned char, unsigned char); + +typedef void (*btf_trace_tls_alert_recv)(void *, const struct sock *, unsigned char, unsigned char); + struct trace_event_raw_handshake_event_class { struct trace_entry ent; const void *req; @@ -121549,2587 +119481,3307 @@ struct trace_event_raw_handshake_fd_class { char __data[0]; }; +struct trace_event_raw_tls_contenttype { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + unsigned int netns_ino; + unsigned long type; + char __data[0]; +}; + +struct trace_event_raw_handshake_alert_class { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + unsigned int netns_ino; + unsigned long level; + unsigned long description; + char __data[0]; +}; + struct trace_event_data_offsets_handshake_event_class {}; struct trace_event_data_offsets_handshake_fd_class {}; struct trace_event_data_offsets_handshake_error_class {}; +struct trace_event_data_offsets_handshake_alert_class {}; + struct trace_event_data_offsets_handshake_complete {}; -typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long); +struct trace_event_data_offsets_tls_contenttype {}; -typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long); +struct efi_smbios_protocol; -struct pt_regs_offset { - const char *name; - int offset; +typedef struct efi_smbios_protocol efi_smbios_protocol_t; + +struct efi_smbios_protocol { + efi_status_t (*add)(efi_smbios_protocol_t *, efi_handle_t, u16 *, struct efi_smbios_record *); + efi_status_t (*update_string)(efi_smbios_protocol_t *, u16 *, unsigned long *, u8 *); + efi_status_t (*remove)(efi_smbios_protocol_t *, u16); + efi_status_t (*get_next)(efi_smbios_protocol_t *, u16 *, u8 *, struct efi_smbios_record **, efi_handle_t *); + u8 major_version; + u8 minor_version; }; -enum compat_regset { - REGSET_COMPAT_GPR = 0, - REGSET_COMPAT_VFP = 1, +enum gic_type { + GIC_V2 = 0, + GIC_V3 = 1, }; -enum ptrace_syscall_dir { - PTRACE_SYSCALL_ENTER = 0, - PTRACE_SYSCALL_EXIT = 1, +struct gic_kvm_info { + enum gic_type type; + struct resource vcpu; + unsigned int maint_irq; + bool no_maint_irq_mask; + struct resource vctrl; + bool has_v4; + bool has_v4_1; + bool no_hw_deactivation; }; -struct trace_event_raw_sys_enter { - struct trace_entry ent; - long id; - unsigned long args[6]; - char __data[0]; +struct xen_p2m_entry { + unsigned long pfn; + unsigned long mfn; + unsigned long nr_pages; + struct rb_node rbnode_phys; }; -struct trace_event_raw_sys_exit { - struct trace_entry ent; - long id; - long ret; - char __data[0]; +enum { + MAX_IORES_LEVEL = 5, }; -struct user_sve_header { - __u32 size; - __u32 max_size; - __u16 vl; - __u16 max_vl; - __u16 flags; - __u16 __reserved; +enum { + REGION_INTERSECTS = 0, + REGION_DISJOINT = 1, + REGION_MIXED = 2, }; -struct trace_event_data_offsets_sys_enter {}; +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 trace_event_data_offsets_sys_exit {}; +struct region_devres { + struct resource *parent; + resource_size_t start; + resource_size_t n; +}; -struct user_za_header { - __u32 size; - __u32 max_size; - __u16 vl; - __u16 max_vl; - __u16 flags; - __u16 __reserved; +enum { + IRQTF_RUNTHREAD = 0, + IRQTF_WARNED = 1, + IRQTF_AFFINITY = 2, + IRQTF_FORCED_THREAD = 3, + IRQTF_READY = 4, }; -struct user_pac_mask { - __u64 data_mask; - __u64 insn_mask; +enum { + _IRQ_DEFAULT_INIT_FLAGS = 0, + _IRQ_PER_CPU = 512, + _IRQ_LEVEL = 256, + _IRQ_NOPROBE = 1024, + _IRQ_NOREQUEST = 2048, + _IRQ_NOTHREAD = 65536, + _IRQ_NOAUTOEN = 4096, + _IRQ_MOVE_PCNTXT = 16384, + _IRQ_NO_BALANCING = 8192, + _IRQ_NESTED_THREAD = 32768, + _IRQ_PER_CPU_DEVID = 131072, + _IRQ_IS_POLLED = 262144, + _IRQ_DISABLE_UNLAZY = 524288, + _IRQ_HIDDEN = 1048576, + _IRQ_NO_DEBUG = 2097152, + _IRQF_MODIFY_MASK = 2096911, }; -struct kvm_host_psci_config { - u32 version; - u32 smccc_version; - struct psci_0_1_function_ids function_ids_0_1; - bool psci_0_1_cpu_suspend_implemented; - bool psci_0_1_cpu_on_implemented; - bool psci_0_1_cpu_off_implemented; - bool psci_0_1_migrate_implemented; +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, }; -struct psci_boot_args { - atomic_t lock; - unsigned long pc; - unsigned long r0; +struct rchan_percpu_buf_dispatcher { + struct rchan_buf *buf; + struct dentry *dentry; }; -typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int); +typedef void (*btf_trace_cpu_idle)(void *, unsigned int, unsigned int); -typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); +typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool); -enum sig_handler { - HANDLER_CURRENT = 0, - HANDLER_SIG_DFL = 1, - HANDLER_EXIT = 2, -}; +typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int); -enum { - TRACE_SIGNAL_DELIVERED = 0, - TRACE_SIGNAL_IGNORED = 1, - TRACE_SIGNAL_ALREADY_PENDING = 2, - TRACE_SIGNAL_OVERFLOW_FAIL = 3, - TRACE_SIGNAL_LOSE_INFO = 4, -}; +typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32); -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, -}; +typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int); -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]; -}; +typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *); -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]; -}; +typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int); -typedef unsigned long old_sigset_t; +typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int); -typedef u32 compat_old_sigset_t; +typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool); -struct compat_sigaction { - compat_uptr_t sa_handler; - compat_ulong_t sa_flags; - compat_uptr_t sa_restorer; - compat_sigset_t sa_mask; -}; +typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int); -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; -}; +typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int); -struct trace_event_data_offsets_signal_generate {}; +typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int); -struct trace_event_data_offsets_signal_deliver {}; +typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int); -typedef void (*btf_trace_module_load)(void *, struct module *); +typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int); -typedef void (*btf_trace_module_free)(void *, struct module *); +typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int); -typedef void (*btf_trace_module_get)(void *, struct module *, unsigned long); +typedef void (*btf_trace_pm_qos_add_request)(void *, s32); -typedef void (*btf_trace_module_put)(void *, struct module *, unsigned long); +typedef void (*btf_trace_pm_qos_update_request)(void *, s32); -typedef void (*btf_trace_module_request)(void *, char *, bool, unsigned long); +typedef void (*btf_trace_pm_qos_remove_request)(void *, s32); -typedef struct { - seqcount_t seqcount; -} seqcount_latch_t; +typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int); -struct latch_tree_root { - seqcount_latch_t seq; - struct rb_root tree[2]; +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 mod_tree_root { - struct latch_tree_root root; - unsigned long addr_min; - unsigned long addr_max; +struct trace_event_raw_cpu_idle_miss { + struct trace_entry ent; + u32 cpu_id; + u32 state; + bool below; + char __data[0]; }; -enum mod_license { - NOT_GPL_ONLY = 0, - GPL_ONLY = 1, +struct trace_event_raw_powernv_throttle { + struct trace_entry ent; + int chip_id; + u32 __data_loc_reason; + int pmax; + char __data[0]; }; -struct symsearch { - const struct kernel_symbol *start; - const struct kernel_symbol *stop; - const s32 *crcs; - enum mod_license license; +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]; }; -enum fail_dup_mod_reason { - FAIL_DUP_MOD_BECOMING = 0, - FAIL_DUP_MOD_LOAD = 1, +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_module_load { +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; - unsigned int taints; u32 __data_loc_name; + u64 state; char __data[0]; }; -struct trace_event_raw_module_free { +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_module_refcnt { +struct trace_event_raw_power_domain { struct trace_entry ent; - unsigned long ip; - int refcnt; u32 __data_loc_name; + u64 state; + u64 cpu_id; char __data[0]; }; -struct trace_event_raw_module_request { +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; - unsigned long ip; - bool wait; u32 __data_loc_name; + enum dev_pm_qos_req_type type; + s32 new_value; char __data[0]; }; -struct mod_initfree { - struct llist_node node; - void *init_text; - void *init_data; - void *init_rodata; +struct trace_event_raw_guest_halt_poll_ns { + struct trace_entry ent; + bool grow; + unsigned int new; + unsigned int old; + char __data[0]; }; -struct idempotent { - const void *cookie; - struct hlist_node entry; - struct completion complete; - int ret; +struct trace_event_data_offsets_powernv_throttle { + u32 reason; }; -struct trace_event_data_offsets_module_load { +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_module_free { +struct trace_event_data_offsets_clock { u32 name; }; -struct trace_event_data_offsets_module_refcnt { +struct trace_event_data_offsets_power_domain { u32 name; }; -struct trace_event_data_offsets_module_request { +struct trace_event_data_offsets_dev_pm_qos_request { u32 name; }; -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 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; }; -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, +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 {}; + +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 audit_nfcfgop_tab { - enum audit_nfcfgop op; - const char *s; +enum { + BPF_MAX_TRAMP_LINKS = 38, +}; + +struct bpf_shim_tramp_link { + struct bpf_tramp_link link; + struct bpf_trampoline *trampoline; +}; + +struct bpf_attach_target_info { + struct btf_func_model fmodel; + long tgt_addr; + struct module *tgt_mod; + const char *tgt_name; + const struct btf_type *tgt_type; +}; + +typedef __kernel_rwf_t rwf_t; + +struct prepend_buffer { + char *buf; + int len; +}; + +struct mnt_idmap { + struct user_namespace *owner; + refcount_t count; +}; + +enum fanotify_event_type { + FANOTIFY_EVENT_TYPE_FID = 0, + FANOTIFY_EVENT_TYPE_FID_NAME = 1, + FANOTIFY_EVENT_TYPE_PATH = 2, + FANOTIFY_EVENT_TYPE_PATH_PERM = 3, + FANOTIFY_EVENT_TYPE_OVERFLOW = 4, + FANOTIFY_EVENT_TYPE_FS_ERROR = 5, + __FANOTIFY_EVENT_TYPE_NUM = 6, +}; + +enum { + FAN_EVENT_INIT = 0, + FAN_EVENT_REPORTED = 1, + FAN_EVENT_ANSWERED = 2, + FAN_EVENT_CANCELED = 3, +}; + +struct fanotify_event { + struct fsnotify_event fse; + struct hlist_node merge_list; + u32 mask; + struct { + unsigned int type: 3; + unsigned int hash: 29; + }; + struct pid *pid; +}; + +struct fanotify_info { + u8 dir_fh_totlen; + u8 dir2_fh_totlen; + u8 file_fh_totlen; + u8 name_len; + u8 name2_len; + u8 pad[3]; + unsigned char buf[0]; +}; + +struct fanotify_name_event { + struct fanotify_event fae; + __kernel_fsid_t fsid; + struct fanotify_info info; +}; + +struct fanotify_fh { + u8 type; + u8 len; + u8 flags; + u8 pad; + unsigned char buf[0]; +}; + +struct fanotify_fid_event { + struct fanotify_event fae; + __kernel_fsid_t fsid; + struct { + struct fanotify_fh object_fh; + unsigned char _inline_fh_buf[12]; + }; +}; + +struct fanotify_error_event { + struct fanotify_event fae; + s32 error; + u32 err_count; + __kernel_fsid_t fsid; + struct { + struct fanotify_fh object_fh; + unsigned char _inline_fh_buf[128]; + }; +}; + +struct fanotify_path_event { + struct fanotify_event fae; + struct path path; +}; + +struct fanotify_perm_event { + struct fanotify_event fae; + struct path path; + u32 response; + unsigned short state; + int fd; + union { + struct fanotify_response_info_header hdr; + struct fanotify_response_info_audit_rule audit_rule; + }; +}; + +struct fanotify_event_metadata { + __u32 event_len; + __u8 vers; + __u8 reserved; + __u16 metadata_len; + __u64 mask; + __s32 fd; + __s32 pid; +}; + +struct fanotify_event_info_header { + __u8 info_type; + __u8 pad; + __u16 len; +}; + +struct fanotify_event_info_pidfd { + struct fanotify_event_info_header hdr; + __s32 pidfd; +}; + +struct fanotify_event_info_error { + struct fanotify_event_info_header hdr; + __s32 error; + __u32 error_count; +}; + +struct fanotify_response { + __s32 fd; + __u32 response; +}; + +struct fanotify_event_info_fid { + struct fanotify_event_info_header hdr; + __kernel_fsid_t fsid; + unsigned char handle[0]; +}; + +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 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; +}; + +enum { + NFS_DEVICEID_INVALID = 0, + NFS_DEVICEID_UNAVAILABLE = 1, + NFS_DEVICEID_NOCACHE = 2, +}; + +enum stripetype4 { + STRIPE_SPARSE = 1, + STRIPE_DENSE = 2, +}; + +struct nfs4_file_layout_dsaddr; + +struct nfs4_filelayout_segment { + struct pnfs_layout_segment generic_hdr; + u32 stripe_type; + u32 commit_through_mds; + u32 stripe_unit; + u32 first_stripe_index; + u64 pattern_offset; + struct nfs4_deviceid deviceid; + struct nfs4_file_layout_dsaddr *dsaddr; + unsigned int num_fh; + struct nfs_fh **fh_array; +}; + +struct nfs4_file_layout_dsaddr { + struct nfs4_deviceid_node id_node; + u32 stripe_count; + u8 *stripe_indices; + u32 ds_num; + struct nfs4_pnfs_ds *ds_list[0]; +}; + +struct nfs4_filelayout { + struct pnfs_layout_hdr generic_hdr; + struct pnfs_ds_commit_info commit_info; +}; + +struct user_key_payload { + struct callback_head rcu; + unsigned short datalen; + long: 0; + char data[0]; +}; + +enum { + CRYPTOA_UNSPEC = 0, + CRYPTOA_ALG = 1, + CRYPTOA_TYPE = 2, + __CRYPTOA_MAX = 3, +}; + +struct rtattr { + unsigned short rta_len; + unsigned short rta_type; +}; + +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 crypto_queue { + struct list_head list; + struct list_head *backlog; + unsigned int qlen; + unsigned int max_qlen; +}; + +struct skcipher_alg_common { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + struct crypto_alg base; +}; + +struct crypto_lskcipher; + +struct lskcipher_alg { + int (*setkey)(struct crypto_lskcipher *, const u8 *, unsigned int); + int (*encrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, bool); + int (*decrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, bool); + int (*init)(struct crypto_lskcipher *); + void (*exit)(struct crypto_lskcipher *); + struct skcipher_alg_common co; +}; + +struct lskcipher_instance { + void (*free)(struct lskcipher_instance *); + union { + struct { + char head[56]; + struct crypto_instance base; + } s; + struct lskcipher_alg alg; + }; +}; + +struct crypto_lskcipher { + struct crypto_tfm base; +}; + +struct crypto_cipher_spawn { + struct crypto_spawn base; +}; + +struct crypto_lskcipher_spawn { + struct crypto_spawn base; +}; + +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; +}; + +typedef struct { + struct folio *v; +} Sector; + +struct bd_holder_disk { + struct list_head list; + struct kobject *holder_dir; + int refcnt; +}; + +struct io_uring_rsrc_update { + __u32 offset; + __u32 resv; + __u64 data; +}; + +typedef enum { + need_more = 0, + block_done = 1, + finish_started = 2, + finish_done = 3, +} block_state; + +typedef block_state (*compress_func)(deflate_state *, int); + +struct config_s { + ush good_length; + ush max_lazy; + ush nice_length; + ush max_chain; + compress_func func; +}; + +typedef struct config_s config; + +struct 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 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, +}; + +enum xz_mode { + XZ_SINGLE = 0, + XZ_PREALLOC = 1, + XZ_DYNALLOC = 2, +}; + +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 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 audit_aux_data { - struct audit_aux_data *next; - int type; +enum nla_policy_validation { + NLA_VALIDATE_NONE = 0, + NLA_VALIDATE_RANGE = 1, + NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2, + NLA_VALIDATE_MIN = 3, + NLA_VALIDATE_MAX = 4, + NLA_VALIDATE_MASK = 5, + NLA_VALIDATE_RANGE_PTR = 6, + NLA_VALIDATE_FUNCTION = 7, }; -struct audit_tree_refs { - struct audit_tree_refs *next; - struct audit_chunk *c[31]; +struct cs_data { + u32 enable_mask; + u16 slow_cfg; + u16 fast_cfg; }; -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 ebi2_xmem_prop { + const char *prop; + u32 max; + bool slowreg; + u16 shift; }; -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, +struct id_to_type { + u32 id; + int type; }; -struct cpu_vfs_cap_data { - __u32 magic_etc; - kuid_t rootid; - kernel_cap_t permitted; - kernel_cap_t inheritable; +enum brcm_family_type { + BRCM_FAMILY_3390A0 = 0, + BRCM_FAMILY_4908 = 1, + BRCM_FAMILY_7250B0 = 2, + BRCM_FAMILY_7271A0 = 3, + BRCM_FAMILY_7364A0 = 4, + BRCM_FAMILY_7366C0 = 5, + BRCM_FAMILY_74371A0 = 6, + BRCM_FAMILY_7439B0 = 7, + BRCM_FAMILY_7445D0 = 8, + BRCM_FAMILY_7260A0 = 9, + BRCM_FAMILY_7278A0 = 10, + BRCM_FAMILY_COUNT = 11, }; -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; +enum { + USB_CTRL_SETUP_SCB1_EN_SELECTOR = 0, + USB_CTRL_SETUP_SCB2_EN_SELECTOR = 1, + USB_CTRL_SETUP_SS_EHCI64BIT_EN_SELECTOR = 2, + USB_CTRL_SETUP_STRAP_IPP_SEL_SELECTOR = 3, + USB_CTRL_SETUP_OC3_DISABLE_PORT0_SELECTOR = 4, + USB_CTRL_SETUP_OC3_DISABLE_PORT1_SELECTOR = 5, + USB_CTRL_SETUP_OC3_DISABLE_SELECTOR = 6, + USB_CTRL_PLL_CTL_PLL_IDDQ_PWRDN_SELECTOR = 7, + USB_CTRL_USB_PM_BDC_SOFT_RESETB_SELECTOR = 8, + USB_CTRL_USB_PM_XHC_SOFT_RESETB_SELECTOR = 9, + USB_CTRL_USB_PM_USB_PWRDN_SELECTOR = 10, + USB_CTRL_USB30_CTL1_XHC_SOFT_RESETB_SELECTOR = 11, + USB_CTRL_USB30_CTL1_USB3_IOC_SELECTOR = 12, + USB_CTRL_USB30_CTL1_USB3_IPP_SELECTOR = 13, + USB_CTRL_USB_DEVICE_CTL1_PORT_MODE_SELECTOR = 14, + USB_CTRL_USB_PM_SOFT_RESET_SELECTOR = 15, + USB_CTRL_SETUP_CC_DRD_MODE_ENABLE_SELECTOR = 16, + USB_CTRL_SETUP_STRAP_CC_DRD_MODE_ENABLE_SEL_SELECTOR = 17, + USB_CTRL_USB_PM_USB20_HC_RESETB_SELECTOR = 18, + USB_CTRL_SETUP_ENDIAN_SELECTOR = 19, + USB_CTRL_SELECTOR_COUNT = 20, }; -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; +enum bcm_usb_phy_version { + BCM_SR_USB_COMBO_PHY = 0, + BCM_SR_USB_HS_PHY = 1, }; -struct fanotify_response_info_header { - __u8 type; - __u8 pad; - __u16 len; +enum bcm_usb_phy_type { + USB_HS_PHY = 0, + USB_SS_PHY = 1, }; -struct fanotify_response_info_audit_rule { - struct fanotify_response_info_header hdr; - __u32 rule_number; - __u32 subj_trust; - __u32 obj_trust; +enum bcm_usb_phy_reg { + PLL_CTRL = 0, + PHY_CTRL = 1, + PHY_PLL_CTRL = 2, }; -struct trace_probe_log { - const char *subsystem; - const char **argv; - int argc; - int index; +enum bcm_usb_phy_ctrl_bits { + CORERDY = 0, + PHY_RESETB = 1, + PHY_PCTL = 2, }; -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 pll_ctrl_bits { + PLL_RESETB = 0, + SSPLL_SUSPEND_EN = 1, + PLL_SEQ_START = 2, + PLL_LOCK = 3, }; -enum bpf_stack_build_id_status { - BPF_STACK_BUILD_ID_EMPTY = 0, - BPF_STACK_BUILD_ID_VALID = 1, - BPF_STACK_BUILD_ID_IP = 2, +struct bcm_usb_phy_cfg { + uint32_t type; + uint32_t version; + void *regs; + struct phy *phy; + const u8 *offset; }; -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 uniphier_u3hsphy_param { + struct { + int reg_no; + int msb; + int lsb; + } field; + u8 value; }; -typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64); - -typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); - -typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64); - -typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64); - -typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64); +struct uniphier_u3hsphy_priv; -struct stack_map_bucket; +struct uniphier_u3hsphy_trim_param; -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 uniphier_u3hsphy_soc_data { + bool is_legacy; + int nparams; + const struct uniphier_u3hsphy_param param[4]; + u32 config0; + u32 config1; + void (*trim_func)(struct uniphier_u3hsphy_priv *, u32 *, struct uniphier_u3hsphy_trim_param *); }; -struct stack_map_bucket { - struct pcpu_freelist_node fnode; - u32 hash; - u32 nr; - u64 data[0]; +struct uniphier_u3hsphy_priv { + struct device *dev; + void *base; + struct clk *clk; + struct clk *clk_parent; + struct clk *clk_ext; + struct clk *clk_parent_gio; + struct reset_control *rst; + struct reset_control *rst_parent; + struct reset_control *rst_parent_gio; + struct regulator *vbus; + const struct uniphier_u3hsphy_soc_data *data; }; -struct bpf_stack_build_id { - __s32 status; - unsigned char build_id[20]; - union { - __u64 offset; - __u64 ip; - }; +struct uniphier_u3hsphy_trim_param { + unsigned int rterm; + unsigned int sel_t; + unsigned int hs_i; }; -struct mmap_unlock_irq_work { - struct irq_work irq_work; - struct mm_struct *mm; +enum iproc_pinconf_ctrl_type { + IOCTRL_TYPE_AON = 1, + IOCTRL_TYPE_CDRU = 2, + IOCTRL_TYPE_INVALID = 3, }; -struct dma_page { - struct list_head page_list; - void *vaddr; - dma_addr_t dma; +enum iproc_pinconf_param { + IPROC_PINCONF_DRIVE_STRENGTH = 0, + IPROC_PINCONF_BIAS_DISABLE = 1, + IPROC_PINCONF_BIAS_PULL_UP = 2, + IPROC_PINCONF_BIAS_PULL_DOWN = 3, + IPROC_PINCON_MAX = 4, }; -struct dma_block; - -struct dma_pool { - struct list_head page_list; - spinlock_t lock; - struct dma_block *next_block; - size_t nr_blocks; - size_t nr_active; - size_t nr_pages; +struct iproc_gpio { struct device *dev; - unsigned int size; - unsigned int allocation; - unsigned int boundary; - char name[32]; - struct list_head pools; -}; - -struct dma_block { - struct dma_block *next_block; - dma_addr_t dma; + void *base; + void *io_ctrl; + enum iproc_pinconf_ctrl_type io_ctrl_type; + raw_spinlock_t lock; + struct gpio_chip gc; + unsigned int num_banks; + bool pinmux_is_supported; + enum pin_config_param *pinconf_disable; + unsigned int nr_pinconf_disable; + struct pinctrl_dev *pctl; + struct pinctrl_desc pctldesc; }; -enum { - DIO_LOCKING = 1, - DIO_SKIP_HOLES = 2, +enum ioctrl_regs___4 { + POC0 = 0, + POC1 = 1, + POC2 = 2, + POC4 = 3, + POC5 = 4, + POC6 = 5, + POC7 = 6, + POC8 = 7, + POC9 = 8, + TD1SEL0 = 9, }; -typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); - -struct dio { - int flags; - blk_opf_t opf; - struct gendisk *bio_disk; - struct inode *inode; - loff_t i_size; - dio_iodone_t *end_io; - bool is_pinned; - void *private; - spinlock_t bio_lock; - int page_errors; - int is_async; - bool defer_completion; - bool should_dirty; - int io_error; - unsigned long refcount; - struct bio *bio_list; - struct task_struct *waiter; - struct kiocb *iocb; - ssize_t result; - union { - struct page *pages[64]; - struct work_struct complete_work; - }; - long: 64; +enum tegra_pinconf_param { + TEGRA_PINCONF_PARAM_PULL = 0, + TEGRA_PINCONF_PARAM_TRISTATE = 1, + TEGRA_PINCONF_PARAM_ENABLE_INPUT = 2, + TEGRA_PINCONF_PARAM_OPEN_DRAIN = 3, + TEGRA_PINCONF_PARAM_LOCK = 4, + TEGRA_PINCONF_PARAM_IORESET = 5, + TEGRA_PINCONF_PARAM_RCV_SEL = 6, + TEGRA_PINCONF_PARAM_HIGH_SPEED_MODE = 7, + TEGRA_PINCONF_PARAM_SCHMITT = 8, + TEGRA_PINCONF_PARAM_LOW_POWER_MODE = 9, + TEGRA_PINCONF_PARAM_DRIVE_DOWN_STRENGTH = 10, + TEGRA_PINCONF_PARAM_DRIVE_UP_STRENGTH = 11, + TEGRA_PINCONF_PARAM_SLEW_RATE_FALLING = 12, + TEGRA_PINCONF_PARAM_SLEW_RATE_RISING = 13, + TEGRA_PINCONF_PARAM_DRIVE_TYPE = 14, }; -struct dio_submit { - struct bio *bio; - unsigned int blkbits; - unsigned int blkfactor; - unsigned int start_zero_done; - int pages_in_io; - sector_t block_in_file; - unsigned int blocks_available; - int reap_counter; - sector_t final_block_in_request; - int boundary; - get_block_t *get_block; - loff_t logical_offset_in_bio; - sector_t final_block_in_bio; - sector_t next_block_for_io; - struct page *cur_page; - unsigned int cur_page_offset; - unsigned int cur_page_len; - sector_t cur_page_block; - loff_t cur_page_fs_offset; - struct iov_iter *iter; - unsigned int head; - unsigned int tail; - size_t from; - size_t to; +struct cfg_param { + const char *property; + enum tegra_pinconf_param param; }; -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 tegra_pinctrl_soc_data; -struct proc_maps_private { - struct inode *inode; - struct task_struct *task; - struct mm_struct *mm; - struct vma_iterator iter; - struct mempolicy *task_mempolicy; -}; +struct tegra_function; -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; +struct tegra_pmx { + struct device *dev; + struct pinctrl_dev *pctl; + const struct tegra_pinctrl_soc_data *soc; + struct tegra_function *functions; + const char **group_pins; + struct pinctrl_gpio_range gpio_range; + struct pinctrl_desc desc; + int nbanks; + void **regs; + u32 *backup_regs; }; -typedef struct { - u64 pme; -} pagemap_entry_t; +struct tegra_pingroup; -struct pagemapread { - int pos; - int len; - pagemap_entry_t *buffer; - bool show_pfn; +struct tegra_pinctrl_soc_data { + unsigned int ngpios; + const char *gpio_compatible; + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const char * const *functions; + unsigned int nfunctions; + const struct tegra_pingroup *groups; + unsigned int ngroups; + bool hsm_in_mux; + bool schmitt_in_mux; + bool drvtype_in_mux; + bool sfsel_in_mux; }; -struct clear_refs_private { - enum clear_refs_types type; +struct tegra_pingroup { + const char *name; + const unsigned int *pins; + u8 npins; + u8 funcs[4]; + s32 mux_reg; + s32 pupd_reg; + s32 tri_reg; + s32 drv_reg; + u32 mux_bank: 2; + u32 pupd_bank: 2; + u32 tri_bank: 2; + u32 drv_bank: 2; + s32 mux_bit: 6; + s32 pupd_bit: 6; + s32 tri_bit: 6; + s32 einput_bit: 6; + s32 odrain_bit: 6; + s32 lock_bit: 6; + s32 ioreset_bit: 6; + s32 rcv_sel_bit: 6; + s32 hsm_bit: 6; + long: 2; + s32 sfsel_bit: 6; + s32 schmitt_bit: 6; + s32 lpmd_bit: 6; + s32 drvdn_bit: 6; + s32 drvup_bit: 6; + int: 2; + s32 slwr_bit: 6; + s32 slwf_bit: 6; + s32 lpdr_bit: 6; + s32 drvtype_bit: 6; + s32 drvdn_width: 6; + long: 2; + s32 drvup_width: 6; + s32 slwr_width: 6; + s32 slwf_width: 6; + u32 parked_bitmask; }; -struct numa_maps { - unsigned long pages; - unsigned long anon; - unsigned long active; - unsigned long writeback; - unsigned long mapcount_max; - unsigned long dirty; - unsigned long swapcache; - unsigned long node[16]; +struct tegra_function { + const char *name; + const char **groups; + unsigned int ngroups; }; -struct numa_maps_private { - struct proc_maps_private proc_maps; - struct numa_maps md; +struct max732x_platform_data { + unsigned int gpio_base; }; -enum { - PARSE_INVALID = 1, - PARSE_NOT_LONGNAME = 2, - PARSE_EOF = 3, +struct max732x_chip { + struct gpio_chip gpio_chip; + struct i2c_client *client; + struct i2c_client *client_dummy; + struct i2c_client *client_group_a; + struct i2c_client *client_group_b; + unsigned int mask_group_a; + unsigned int dir_input; + unsigned int dir_output; + struct mutex lock; + uint8_t reg_out[2]; }; -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 tps65219_gpio { + struct gpio_chip gpio_chip; + struct tps65219 *tps; }; -struct __fat_dirent { - long d_ino; - __kernel_off_t d_off; - unsigned short d_reclen; - char d_name[256]; +struct hpx_type0 { + u32 revision; + u8 cache_line_size; + u8 latency_timer; + u8 enable_serr; + u8 enable_perr; }; -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; +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, }; -struct compat_dirent { - u32 d_ino; - compat_off_t d_off; - u16 d_reclen; - char d_name[256]; +enum hpx_type3_fn_type { + HPX_FN_NORMAL = 1, + HPX_FN_SRIOV_PHYS = 2, + HPX_FN_SRIOV_VIRT = 4, }; -enum opentype4 { - NFS4_OPEN_NOCREATE = 0, - NFS4_OPEN_CREATE = 1, +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; }; -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, +struct hpx_type1 { + u32 revision; + u8 max_mem_read; + u8 avg_max_split; + u16 tot_max_split; }; -enum limit_by4 { - NFS4_LIMIT_SIZE = 1, - NFS4_LIMIT_BLOCKS = 2, +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; }; -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 pcie_kirin_phy_type { + PCIE_KIRIN_INTERNAL_PHY = 0, + PCIE_KIRIN_EXTERNAL_PHY = 1, }; -enum pnfs_layoutreturn_type { - RETURN_FILE = 1, - RETURN_FSID = 2, - RETURN_ALL = 3, +struct kirin_pcie_data { + enum pcie_kirin_phy_type phy_type; }; -enum lock_type4 { - NFS4_UNLOCK_LT = 0, - NFS4_READ_LT = 1, - NFS4_WRITE_LT = 2, - NFS4_READW_LT = 3, - NFS4_WRITEW_LT = 4, +struct kirin_pcie { + enum pcie_kirin_phy_type type; + struct dw_pcie *pci; + struct regmap *apb; + struct phy *phy; + void *phy_priv; + int gpio_id_dwc_perst; + int num_slots; + int gpio_id_reset[3]; + const char *reset_names[3]; + int n_gpio_clkreq; + int gpio_id_clkreq[3]; + const char *clkreq_names[3]; }; -enum netloc_type4 { - NL4_NAME = 1, - NL4_URL = 2, - NL4_NETADDR = 3, +struct hi3660_pcie_phy { + struct device *dev; + void *base; + struct regmap *crgctrl; + struct regmap *sysctrl; + struct clk *apb_sys_clk; + struct clk *apb_phy_clk; + struct clk *phy_ref_clk; + struct clk *aclk; + struct clk *aux_clk; }; -enum data_content4 { - NFS4_CONTENT_DATA = 0, - NFS4_CONTENT_HOLE = 1, +struct acpi_irq_parse_one_ctx { + int rc; + unsigned int index; + unsigned long *res_flags; + struct irq_fwspec *fwspec; }; -struct compound_hdr { - int32_t status; - uint32_t nops; - __be32 *nops_p; - uint32_t taglen; - char *tag; - uint32_t replen; - u32 minorversion; +struct devm_clk_state { + struct clk *clk; + void (*exit)(struct clk *); }; -struct nfs42_seek_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *sa_fh; - nfs4_stateid sa_stateid; - u64 sa_offset; - u32 sa_what; +struct clk_bulk_devres { + struct clk_bulk_data *clks; + int num_clks; }; -struct nfs42_seek_res { - struct nfs4_sequence_res seq_res; - unsigned int status; - u32 sr_eof; - u64 sr_offset; +struct fsl_sai_clk { + struct clk_divider div; + struct clk_gate gate; + spinlock_t lock; }; -struct nfs42_falloc_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *falloc_fh; - nfs4_stateid falloc_stateid; - u64 falloc_offset; - u64 falloc_length; - const u32 *falloc_bitmask; +enum gdsc_status { + GDSC_OFF = 0, + GDSC_ON = 1, }; -struct nfs42_falloc_res { - struct nfs4_sequence_res seq_res; - unsigned int status; - struct nfs_fattr *falloc_fattr; - const struct nfs_server *falloc_server; +struct gdsc_desc { + struct device *dev; + struct gdsc **scs; + size_t num; }; -struct nfs42_clone_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *src_fh; - struct nfs_fh *dst_fh; - nfs4_stateid src_stateid; - nfs4_stateid dst_stateid; - __u64 src_offset; - __u64 dst_offset; - __u64 count; - const u32 *dst_bitmask; +struct usb2_clock_sel_priv { + void *base; + struct clk_hw hw; + struct clk_bulk_data clks[2]; + struct reset_control *rsts; + bool extal; + bool xtal; }; -struct nl4_server; - -struct nfs42_copy_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *src_fh; - nfs4_stateid src_stateid; - u64 src_pos; - struct nfs_fh *dst_fh; - nfs4_stateid dst_stateid; - u64 dst_pos; - u64 count; - bool sync; - struct nl4_server *cp_src; +struct tegra_clk_sync_source { + struct clk_hw hw; + unsigned long rate; + unsigned long max_rate; }; -struct nfs42_netaddr { - char netid[5]; - char addr[58]; - u32 netid_len; - u32 addr_len; +struct tegra_clk_periph_fixed { + struct clk_hw hw; + void *base; + const struct tegra_clk_periph_regs *regs; + unsigned int mul; + unsigned int div; + unsigned int num; }; -struct nl4_server { - enum netloc_type4 nl4_type; - union { - struct { - int nl4_str_sz; - char nl4_str[1025]; - }; - struct nfs42_netaddr nl4_addr; - } u; +struct tegra_clk_super_mux { + struct clk_hw hw; + void *reg; + struct tegra_clk_frac_div frac_div; + const struct clk_ops *div_ops; + u8 width; + u8 flags; + u8 div2_index; + u8 pllx_index; + spinlock_t *lock; }; -struct nfs42_offload_status_args { - struct nfs4_sequence_args osa_seq_args; - struct nfs_fh *osa_src_fh; - nfs4_stateid osa_stateid; +enum { + DOWN___2 = 0, + UP___2 = 1, }; -struct nfs42_offload_status_res { - struct nfs4_sequence_res osr_seq_res; - uint64_t osr_count; - int osr_status; +struct rail_alignment { + int offset_uv; + int step_uv; }; -struct nfs42_copy_notify_args { - struct nfs4_sequence_args cna_seq_args; - struct nfs_fh *cna_src_fh; - nfs4_stateid cna_src_stateid; - struct nl4_server cna_dst; +struct cvb_coefficients { + int c0; + int c1; + int c2; }; -struct nfs42_copy_notify_res { - struct nfs4_sequence_res cnr_seq_res; - struct nfstime4 cnr_lease_time; - nfs4_stateid cnr_stateid; - struct nl4_server cnr_src; +struct cvb_table_freq_entry { + unsigned long freq; + struct cvb_coefficients coefficients; }; -struct nfs42_getxattrres { - struct nfs4_sequence_res seq_res; - size_t xattr_len; +struct cvb_cpu_dfll_data { + u32 tune0_low; + u32 tune0_high; + u32 tune1; + unsigned int tune_high_min_millivolts; }; -struct nfs42_setxattrargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - const u32 *bitmask; - const char *xattr_name; - u32 xattr_flags; - size_t xattr_len; - struct page **xattr_pages; +struct cvb_table { + int speedo_id; + int process_id; + int min_millivolts; + int max_millivolts; + int speedo_scale; + int voltage_scale; + struct cvb_table_freq_entry entries[40]; + struct cvb_cpu_dfll_data cpu_dfll_data; }; -struct nfs42_listxattrsargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - u32 count; - u64 cookie; - struct page **xattr_pages; +enum pll_mode { + PLL_MODE_INT = 0, + PLL_MODE_FRAC = 1, + PLL_MODE_ERROR = 2, }; -struct nfs42_listxattrsres { - struct nfs4_sequence_res seq_res; - struct page *scratch; - void *xattr_buf; - size_t xattr_len; - u64 cookie; - bool eof; - size_t copied; +struct zynqmp_pll { + struct clk_hw hw; + u32 clk_id; + bool set_pll_mode; }; -struct read_plus_segment { - enum data_content4 type; - uint64_t offset; - union { - struct { - uint64_t length; - } hole; - struct { - uint32_t length; - unsigned int from; - } data; - }; +enum clk_type { + CLK_TYPE_OUTPUT = 0, + CLK_TYPE_EXTERNAL = 1, }; -struct nfs42_write_res { - nfs4_stateid stateid; - u64 count; - struct nfs_writeverf verifier; +struct clock_parent { + char name[50]; + int id; + u32 flag; }; -struct nfs42_copy_res { - struct nfs4_sequence_res seq_res; - struct nfs42_write_res write_res; - bool consecutive; - bool synchronous; - struct nfs_commitres commit_res; +struct zynqmp_clock { + char clk_name[50]; + u32 valid; + enum clk_type type; + struct clock_topology node[6]; + u32 num_nodes; + struct clock_parent parent[100]; + u32 num_parents; + u32 clk_id; }; -struct nfs42_clone_res { - struct nfs4_sequence_res seq_res; - unsigned int rpc_status; - struct nfs_fattr *dst_fattr; - const struct nfs_server *server; +struct name_resp { + char name[16]; }; -struct nfs42_layouterror_args { - struct nfs4_sequence_args seq_args; - struct inode *inode; - unsigned int num_errors; - struct nfs42_layout_error errors[5]; +struct attr_resp { + u32 attr[1]; }; -struct nfs42_layouterror_res { - struct nfs4_sequence_res seq_res; - unsigned int num_errors; - int rpc_status; +struct topology_resp { + u32 topology[3]; }; -struct nfs42_getxattrargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - const char *xattr_name; - size_t xattr_len; - struct page **xattr_pages; +struct parents_resp { + u32 parents[3]; }; -struct nfs42_setxattrres { - struct nfs4_sequence_res seq_res; - struct nfs4_change_info cinfo; - struct nfs_fattr *fattr; - const struct nfs_server *server; +struct hidma_mgmt_dev; + +struct hidma_mgmt_fileinfo { + char *name; + int mode; + int (*get)(struct hidma_mgmt_dev *); + int (*set)(struct hidma_mgmt_dev *, u64); }; -struct nfs42_removexattrargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - const char *xattr_name; +struct hidma_mgmt_dev { + u8 hw_version_major; + u8 hw_version_minor; + u32 max_wr_xactions; + u32 max_rd_xactions; + u32 max_write_request; + u32 max_read_request; + u32 dma_channels; + u32 chreset_timeout_cycles; + u32 hw_version; + u32 *priority; + u32 *weight; + void *virtaddr; + resource_size_t addrsize; + struct kobject **chroots; + struct platform_device *pdev; }; -struct nfs42_removexattrres { - struct nfs4_sequence_res seq_res; - struct nfs4_change_info cinfo; +struct hidma_chan_attr { + struct hidma_mgmt_dev *mdev; + int index; + struct kobj_attribute attr; }; -struct shash_instance { - void (*free)(struct shash_instance *); - union { - struct { - char head[104]; - struct crypto_instance base; - } s; - struct shash_alg alg; - }; +struct rcpm { + unsigned int wakeup_cells; + void *ippdexpcr_base; + bool little_endian; }; -struct crypto_shash_spawn { - struct crypto_spawn base; +struct owl_sps_domain_info; + +struct owl_sps_info { + unsigned int num_domains; + const struct owl_sps_domain_info *domains; }; -struct hmac_ctx { - struct crypto_shash *hash; +struct owl_sps_domain_info { + const char *name; + int pwr_bit; + int ack_bit; + unsigned int genpd_flags; }; -enum bio_merge_status { - BIO_MERGE_OK = 0, - BIO_MERGE_NONE = 1, - BIO_MERGE_FAILED = 2, +struct owl_sps; + +struct owl_sps_domain { + struct generic_pm_domain genpd; + const struct owl_sps_domain_info *info; + struct owl_sps *sps; }; -struct req_iterator { - struct bvec_iter iter; - struct bio *bio; +struct owl_sps { + struct device *dev; + const struct owl_sps_info *info; + void *base; + struct genpd_onecell_data genpd_data; + struct generic_pm_domain *domains[0]; }; -struct io_open { - struct file *file; - int dfd; - u32 file_slot; - struct filename *filename; - struct open_how how; - unsigned long nofile; +struct imx93_blk_ctrl_domain_data; + +struct imx93_blk_ctrl_data { + const struct imx93_blk_ctrl_domain_data *domains; + int num_domains; + const char * const *clk_names; + int num_clks; + const struct regmap_access_table *reg_access_table; }; -struct io_close { - struct file *file; - int fd; - u32 file_slot; +struct imx93_blk_ctrl_qos { + u32 reg; + u32 cfg_off; + u32 default_prio; + u32 cfg_prio; }; -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 imx93_blk_ctrl_domain_data { + const char *name; + const char * const *clk_names; + int num_clks; + u32 rst_mask; + u32 clk_mask; + int num_qos; + struct imx93_blk_ctrl_qos qos[4]; }; -struct barrett_ctx_s; - -typedef struct barrett_ctx_s *mpi_barrett_t; +struct imx93_blk_ctrl; -enum gcry_mpi_ec_models { - MPI_EC_WEIERSTRASS = 0, - MPI_EC_MONTGOMERY = 1, - MPI_EC_EDWARDS = 2, +struct imx93_blk_ctrl_domain { + struct generic_pm_domain genpd; + const struct imx93_blk_ctrl_domain_data *data; + struct clk_bulk_data clks[4]; + struct imx93_blk_ctrl *bc; }; -enum ecc_dialects { - ECC_DIALECT_STANDARD = 0, - ECC_DIALECT_ED25519 = 1, - ECC_DIALECT_SAFECURVE = 2, +struct imx93_blk_ctrl { + struct device *dev; + struct regmap *regmap; + int num_clks; + struct clk_bulk_data clks[4]; + struct imx93_blk_ctrl_domain *domains; + struct genpd_onecell_data onecell_data; }; -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 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 gcry_mpi_point { - MPI x; - MPI y; - MPI z; +enum virtio_balloon_vq { + VIRTIO_BALLOON_VQ_INFLATE = 0, + VIRTIO_BALLOON_VQ_DEFLATE = 1, + VIRTIO_BALLOON_VQ_STATS = 2, + VIRTIO_BALLOON_VQ_FREE_PAGE = 3, + VIRTIO_BALLOON_VQ_REPORTING = 4, + VIRTIO_BALLOON_VQ_MAX = 5, }; -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 virtio_balloon_config_read { + VIRTIO_BALLOON_CONFIG_READ_CMD_ID = 0, }; -struct acpi_probe_entry; +typedef __u32 __virtio32; -typedef bool (*acpi_probe_entry_validate_subtbl)(struct acpi_subtable_header *, struct acpi_probe_entry *); +typedef __u16 __virtio16; -typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); +typedef __u64 __virtio64; -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 virtio_balloon_stat { + __virtio16 tag; + __virtio64 val; +} __attribute__((packed)); + +struct page_reporting_dev_info { + int (*report)(struct page_reporting_dev_info *, struct scatterlist *, unsigned int); + struct delayed_work work; + atomic_t state; + unsigned int order; }; -union gic_base { - void *common_base; - void __attribute__((btf_type_tag("percpu"))) **percpu_base; +struct virtio_balloon { + struct virtio_device *vdev; + struct virtqueue *inflate_vq; + struct virtqueue *deflate_vq; + struct virtqueue *stats_vq; + struct virtqueue *free_page_vq; + struct workqueue_struct *balloon_wq; + struct work_struct report_free_page_work; + struct work_struct update_balloon_stats_work; + struct work_struct update_balloon_size_work; + spinlock_t stop_update_lock; + bool stop_update; + unsigned long config_read_bitmap; + struct list_head free_page_list; + spinlock_t free_page_list_lock; + unsigned long num_free_page_blocks; + u32 cmd_id_received_cache; + __virtio32 cmd_id_active; + __virtio32 cmd_id_stop; + wait_queue_head_t acked; + unsigned int num_pages; + struct balloon_dev_info vb_dev_info; + struct mutex balloon_lock; + unsigned int num_pfns; + __virtio32 pfns[256]; + struct virtio_balloon_stat stats[10]; + struct shrinker *shrinker; + struct notifier_block oom_nb; + struct virtqueue *reporting_vq; + struct page_reporting_dev_info pr_dev_info; }; -struct gic_chip_data { - union gic_base dist_base; - union gic_base cpu_base; - void *raw_dist_base; - void *raw_cpu_base; - u32 percpu_offset; - u32 saved_spi_enable[32]; - u32 saved_spi_active[32]; - u32 saved_spi_conf[64]; - u32 saved_spi_target[255]; - u32 __attribute__((btf_type_tag("percpu"))) *saved_ppi_enable; - u32 __attribute__((btf_type_tag("percpu"))) *saved_ppi_active; - u32 __attribute__((btf_type_tag("percpu"))) *saved_ppi_conf; - struct irq_domain *domain; - unsigned int gic_irqs; +struct privcmd_buf_private; + +struct privcmd_buf_vma_private { + struct privcmd_buf_private *file_priv; + struct list_head list; + unsigned int users; + unsigned int n_pages; + struct page *pages[0]; }; -struct gic_quirk { - const char *desc; - const char *compatible; - const char *property; - bool (*init)(void *); - u32 iidr; - u32 mask; +struct privcmd_buf_private { + struct mutex lock; + struct list_head list; }; -enum acpi_madt_gic_version { - ACPI_MADT_GIC_VERSION_NONE = 0, - ACPI_MADT_GIC_VERSION_V1 = 1, - ACPI_MADT_GIC_VERSION_V2 = 2, - ACPI_MADT_GIC_VERSION_V3 = 3, - ACPI_MADT_GIC_VERSION_V4 = 4, - ACPI_MADT_GIC_VERSION_RESERVED = 5, +struct rpm_regulator_data { + const char *name; + u32 type; + u32 id; + const struct regulator_desc *desc; + const char *supply; }; -enum { - IRQCHIP_FWNODE_REAL = 0, - IRQCHIP_FWNODE_NAMED = 1, - IRQCHIP_FWNODE_NAMED_ID = 2, +struct qcom_rpm_reg { + struct device *dev; + struct qcom_smd_rpm *rpm; + u32 type; + u32 id; + struct regulator_desc desc; + int is_enabled; + int uV; + u32 load; + unsigned int enabled_updated: 1; + unsigned int uv_updated: 1; + unsigned int load_updated: 1; }; -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 rpm_regulator_req { + __le32 key; + __le32 nbytes; + __le32 value; }; -struct aic_info { - int version; - u32 event; - u32 target_cpu; - u32 irq_cfg; - u32 sw_set; - u32 sw_clr; - u32 mask_set; - u32 mask_clr; - u32 die_stride; - bool fast_ipi; +struct hi3660_reset_controller { + struct reset_controller_dev rst; + struct regmap *map; }; -struct aic_irq_chip { - void *base; - void *event; - struct irq_domain *hw_domain; - struct { - cpumask_t aff; - } *fiq_aff[7]; - int nr_irq; - int max_irq; - int nr_die; - int max_die; - struct aic_info info; +struct sysrq_key_op { + void (* const handler)(u8); + const char * const help_msg; + const char * const action_msg; + const int enable_mask; }; -enum fiq_hwirq { - AIC_TMR_EL0_PHYS = 0, - AIC_TMR_EL0_VIRT = 1, - AIC_TMR_EL02_PHYS = 2, - AIC_TMR_EL02_VIRT = 3, - AIC_CPU_PMU_Effi = 4, - AIC_CPU_PMU_Perf = 5, - AIC_VGIC_MI = 6, - AIC_NR_FIQ = 7, +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 hisi_inno_phy_priv; +struct omap8250_dma_params; -struct hisi_inno_phy_port { - struct reset_control *utmi_rst; - struct hisi_inno_phy_priv *priv; +struct omap8250_platdata { + struct omap8250_dma_params *dma_params; + u8 habit; }; -struct hisi_inno_phy_priv { - void *mmio; - struct clk *ref_clk; - struct reset_control *por_rst; - unsigned int type; - struct hisi_inno_phy_port ports[2]; +struct omap8250_dma_params { + u32 rx_size; + u8 rx_trigger; + u8 tx_trigger; }; -enum owl_pinconf_drv { - OWL_PINCONF_DRV_2MA = 0, - OWL_PINCONF_DRV_4MA = 1, - OWL_PINCONF_DRV_8MA = 2, - OWL_PINCONF_DRV_12MA = 3, +struct omap8250_priv { + void *membase; + int line; + u8 habit; + u8 mdr1; + u8 mdr3; + u8 efr; + u8 scr; + u8 wer; + u8 xon; + u8 xoff; + u8 delayed_restore; + u16 quot; + u8 tx_trigger; + u8 rx_trigger; + atomic_t active; + bool is_suspending; + int wakeirq; + int wakeups_enabled; + u32 latency; + u32 calc_latency; + struct pm_qos_request pm_qos_request; + struct work_struct qos_work; + struct uart_8250_dma omap8250_dma; + spinlock_t rx_dma_lock; + bool rx_dma_broken; + bool throttled; }; -struct owl_pinctrl_soc_data; - -struct owl_pinctrl { - struct device *dev; - struct pinctrl_dev *pctrldev; - struct gpio_chip chip; - raw_spinlock_t lock; - struct clk *clk; - const struct owl_pinctrl_soc_data *soc; - void *base; - unsigned int num_irq; - unsigned int *irq; +struct ports_driver_data { + struct dentry *debugfs_dir; + struct list_head portdevs; + struct list_head consoles; }; -struct owl_pinmux_func; +struct console___2 { + struct list_head list; + struct hvc_struct *hvc; + struct winsize ws; + u32 vtermno; +}; -struct owl_pingroup; +struct port_stats { + unsigned long bytes_sent; + unsigned long bytes_received; + unsigned long bytes_discarded; +}; -struct owl_padinfo; +struct ports_device; -struct owl_gpio_port; +struct port_buffer; -struct owl_pinctrl_soc_data { - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const struct owl_pinmux_func *functions; - unsigned int nfunctions; - const struct owl_pingroup *groups; - unsigned int ngroups; - const struct owl_padinfo *padinfo; - unsigned int ngpios; - const struct owl_gpio_port *ports; - unsigned int nports; - int (*padctl_val2arg)(const struct owl_padinfo *, unsigned int, u32 *); - int (*padctl_arg2val)(const struct owl_padinfo *, unsigned int, u32 *); +struct port { + 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 owl_pinmux_func { - const char *name; - const char * const *groups; - unsigned int ngroups; +struct virtio_console_control { + __virtio32 id; + __virtio16 event; + __virtio16 value; }; -struct owl_pingroup { - const char *name; - unsigned int *pads; - unsigned int npads; - unsigned int *funcs; - unsigned int nfuncs; - int mfpctl_reg; - unsigned int mfpctl_shift; - unsigned int mfpctl_width; - int drv_reg; - unsigned int drv_shift; - unsigned int drv_width; - int sr_reg; - unsigned int sr_shift; - unsigned int sr_width; +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 owl_pullctl; - -struct owl_st; - -struct owl_padinfo { - int pad; - struct owl_pullctl *pullctl; - struct owl_st *st; +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 owl_pullctl { - int reg; - unsigned int shift; - unsigned int width; +struct sg_list { + unsigned int n; + unsigned int size; + size_t len; + struct scatterlist *sg; }; -struct owl_st { - int reg; - unsigned int shift; - unsigned int width; +struct splice_desc { + size_t total_len; + unsigned int len; + unsigned int flags; + union { + void __attribute__((btf_type_tag("user"))) *userptr; + struct file *file; + void *data; + } u; + void (*splice_eof)(struct splice_desc *); + loff_t pos; + loff_t *opos; + size_t num_spliced; + bool need_wakeup; }; -struct owl_gpio_port { - unsigned int offset; - unsigned int pins; - unsigned int outen; - unsigned int inen; - unsigned int dat; - unsigned int intc_ctl; - unsigned int intc_pd; - unsigned int intc_msk; - unsigned int intc_type; - u8 shared_ctl_offset; +struct class_interface { + struct list_head node; + const struct class *class; + int (*add_dev)(struct device *); + void (*remove_dev)(struct device *); }; -struct iproc_gpio_chip { - struct gpio_chip gc; - spinlock_t lock; - struct device *dev; - void *base; - void *intr; +enum dpm_order { + DPM_ORDER_NONE = 0, + DPM_ORDER_DEV_AFTER_PARENT = 1, + DPM_ORDER_PARENT_BEFORE_DEV = 2, + DPM_ORDER_DEV_LAST = 3, }; -enum pci_bar_type { - pci_bar_unknown = 0, - pci_bar_io = 1, - pci_bar_mem32 = 2, - pci_bar_mem64 = 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 armada8k_pcie { - struct dw_pcie *pci; - struct clk *clk; - struct clk *clk_reg; - struct phy *phy[4]; - unsigned int phy_count; +struct class_dir { + struct kobject kobj; + const struct class *class; }; -enum acpi_cedt_type { - ACPI_CEDT_TYPE_CHBS = 0, - ACPI_CEDT_TYPE_CFMWS = 1, - ACPI_CEDT_TYPE_CXIMS = 2, - ACPI_CEDT_TYPE_RDPAS = 3, - ACPI_CEDT_TYPE_RESERVED = 4, +struct root_device { + struct device dev; + struct module *owner; }; -enum acpi_subtable_type { - ACPI_SUBTABLE_COMMON = 0, - ACPI_SUBTABLE_HMAT = 1, - ACPI_SUBTABLE_PRMT = 2, - ACPI_SUBTABLE_CEDT = 3, +struct subsys_private { + struct kset subsys; + struct kset *devices_kset; + struct list_head interfaces; + struct mutex mutex; + struct kset *drivers_kset; + struct klist klist_devices; + struct klist klist_drivers; + struct blocking_notifier_head bus_notifier; + unsigned int drivers_autoprobe: 1; + const struct bus_type *bus; + struct device *dev_root; + struct kset glue_dirs; + const struct class *class; + struct lock_class_key lock_key; }; -struct acpi_madt_io_apic { - struct acpi_subtable_header header; - u8 id; - u8 reserved; - u32 address; - u32 global_irq_base; +struct dev_printk_info { + char subsystem[16]; + char device[48]; }; -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; +union device_attr_group_devres { + const struct attribute_group *group; + const struct attribute_group **groups; }; -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 regcache_rbtree_node { + void *block; + unsigned long *cache_present; + unsigned int base_reg; + unsigned int blklen; + struct rb_node node; }; -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 regcache_rbtree_ctx { + struct rb_root root; + struct regcache_rbtree_node *cached_rbnode; }; -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; +enum rz_mtu3_channels { + RZ_MTU3_CHAN_0 = 0, + RZ_MTU3_CHAN_1 = 1, + RZ_MTU3_CHAN_2 = 2, + RZ_MTU3_CHAN_3 = 3, + RZ_MTU3_CHAN_4 = 4, + RZ_MTU3_CHAN_5 = 5, + RZ_MTU3_CHAN_6 = 6, + RZ_MTU3_CHAN_7 = 7, + RZ_MTU3_CHAN_8 = 8, + RZ_MTU_NUM_CHANNELS = 9, }; -struct acpi_madt_core_pic { - struct acpi_subtable_header header; - u8 version; - u32 processor_id; - u32 core_id; - u32 flags; -} __attribute__((packed)); - -struct acpi_subtable_entry { - union acpi_subtable_headers *hdr; - enum acpi_subtable_type type; +struct rz_mtu3_channel { + struct device *dev; + unsigned int channel_number; + struct mutex lock; + bool is_busy; }; -struct nvs_region { - __u64 phys_start; - __u64 size; - struct list_head node; +struct rz_mtu3 { + struct clk *clk; + struct rz_mtu3_channel channels[9]; + void *priv_data; }; -struct acpi_rw_lock { - void *writer_mutex; - void *reader_mutex; - u32 num_readers; +struct rz_mtu3_priv { + void *mmio; + struct reset_control *rstc; + spinlock_t lock; }; -struct pnp_info_buffer { - char *buffer; - char *curr; - unsigned long size; - unsigned long len; - int stop; - int error; +struct dma_buf_list { + struct list_head head; + struct mutex lock; }; -typedef struct pnp_info_buffer pnp_info_buffer_t; - -struct rk808_clkout { - struct regmap *regmap; - struct clk_hw clkout1_hw; - struct clk_hw clkout2_hw; +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 rcar_gen4_clk_types { - CLK_TYPE_GEN4_MAIN = 5, - CLK_TYPE_GEN4_PLL1 = 6, - CLK_TYPE_GEN4_PLL2 = 7, - CLK_TYPE_GEN4_PLL2_VAR = 8, - CLK_TYPE_GEN4_PLL2X_3X = 9, - CLK_TYPE_GEN4_PLL3 = 10, - CLK_TYPE_GEN4_PLL4 = 11, - CLK_TYPE_GEN4_PLL5 = 12, - CLK_TYPE_GEN4_PLL6 = 13, - CLK_TYPE_GEN4_SDSRC = 14, - CLK_TYPE_GEN4_SDH = 15, - CLK_TYPE_GEN4_SD = 16, - CLK_TYPE_GEN4_MDSEL = 17, - CLK_TYPE_GEN4_Z = 18, - CLK_TYPE_GEN4_OSC = 19, - CLK_TYPE_GEN4_RPCSRC = 20, - CLK_TYPE_GEN4_RPC = 21, - CLK_TYPE_GEN4_RPCD2 = 22, - CLK_TYPE_GEN4_SOC_BASE = 23, -}; +struct dma_resv_list; -struct cpg_pll_clk { - struct clk_hw hw; - void *pllcr0_reg; - void *pllecr_reg; - u32 pllecr_pllst_mask; +struct dma_resv { + struct ww_mutex lock; + struct dma_resv_list __attribute__((btf_type_tag("rcu"))) *fences; }; -struct cpg_z_clk { - struct clk_hw hw; - void *reg; - void *kick_reg; - unsigned long max_rate; - unsigned int fixed_div; - u32 mask; +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 ccu_phase { - u8 shift; - u8 width; - struct ccu_common common; -}; +struct dma_buf; -struct acpi_dma_spec; +struct dma_buf_attach_ops; -struct acpi_dma { - struct list_head dma_controllers; +struct dma_buf_attachment { + struct dma_buf *dmabuf; 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 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 acpi_dma_spec { - int chan_id; - int slave_id; - struct device *dev; +struct dma_buf_poll_cb_t { + struct dma_fence_cb cb; + wait_queue_head_t *poll; + __poll_t active; }; -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 dma_buf_ops; -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 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 acpi_table_csrt { - struct acpi_table_header header; +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 acpi_dma_parser_data { - struct acpi_dma_spec dma_spec; - size_t index; - size_t n; +struct dma_buf_attach_ops { + bool allow_peer2peer; + void (*move_notify)(struct dma_buf_attachment *); }; -struct acpi_dma_filter_info { - dma_cap_mask_t dma_cap; - dma_filter_fn filter_fn; +struct dma_buf_import_sync_file { + __u32 flags; + __s32 fd; }; -struct qman_hwerr_txt { - u32 mask; - const char *txt; +struct dma_fence_unwrap { + struct dma_fence *chain; + struct dma_fence *array; + unsigned int index; }; -struct qman_error_info_mdata { - u16 addr_mask; - u16 bits; - const char *txt; +struct dma_buf_export_sync_file { + __u32 flags; + __s32 fd; }; -enum qm_memory { - qm_memory_fqd = 0, - qm_memory_pfdr = 1, +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; }; -enum qm_wq_class { - qm_wq_portal = 0, - qm_wq_pool = 1, - qm_wq_fman0 = 2, - qm_wq_fman1 = 3, - qm_wq_caam = 4, - qm_wq_pme = 5, - qm_wq_first = 0, - qm_wq_last = 5, +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; }; -enum qm_dc_portal { - qm_dc_portal_fman0 = 0, - qm_dc_portal_fman1 = 1, +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 qm_ecir { - u32 info; +struct dma_buf_sync { + __u64 flags; }; -struct qm_eadr { - u32 info; +enum { + SAS_DATAPRES_NO_DATA = 0, + SAS_DATAPRES_RESPONSE_DATA = 1, + SAS_DATAPRES_SENSE_DATA = 2, }; -struct qm_ecir2 { - u32 info; +enum scsi_host_guard_type { + SHOST_DIX_GUARD_CRC = 1, + SHOST_DIX_GUARD_IP = 2, }; -struct qcom_smem_state_ops { - int (*update_bits)(void *, u32, u32); +enum t10_dif_type { + T10_PI_TYPE0_PROTECTION = 0, + T10_PI_TYPE1_PROTECTION = 1, + T10_PI_TYPE2_PROTECTION = 2, + T10_PI_TYPE3_PROTECTION = 3, }; -struct qcom_smp2p; - -struct qcom_smem_state; - -struct smp2p_entry { - struct list_head node; - struct qcom_smp2p *smp2p; - const char *name; - u32 *value; - u32 last_value; - struct irq_domain *domain; - unsigned long irq_enabled[1]; - unsigned long irq_rising[1]; - unsigned long irq_falling[1]; - struct qcom_smem_state *state; - spinlock_t lock; +struct ceva_ahci_priv { + struct platform_device *ahci_pdev; + u32 pp2c[2]; + u32 pp3c[2]; + u32 pp4c[2]; + u32 pp5c[2]; + u32 axicc; + bool is_cci_enabled; + int flags; + struct reset_control *rst; }; -struct smp2p_smem_item; +enum spi_nor_read_command_index { + SNOR_CMD_READ = 0, + SNOR_CMD_READ_FAST = 1, + SNOR_CMD_READ_1_1_1_DTR = 2, + SNOR_CMD_READ_1_1_2 = 3, + SNOR_CMD_READ_1_2_2 = 4, + SNOR_CMD_READ_2_2_2 = 5, + SNOR_CMD_READ_1_2_2_DTR = 6, + SNOR_CMD_READ_1_1_4 = 7, + SNOR_CMD_READ_1_4_4 = 8, + SNOR_CMD_READ_4_4_4 = 9, + SNOR_CMD_READ_1_4_4_DTR = 10, + SNOR_CMD_READ_1_1_8 = 11, + SNOR_CMD_READ_1_8_8 = 12, + SNOR_CMD_READ_8_8_8 = 13, + SNOR_CMD_READ_1_8_8_DTR = 14, + SNOR_CMD_READ_8_8_8_DTR = 15, + SNOR_CMD_READ_MAX = 16, +}; -struct qcom_smp2p { - struct device *dev; - struct smp2p_smem_item *in; - struct smp2p_smem_item *out; - unsigned int smem_items[2]; - unsigned int valid_entries; - bool ssr_ack_enabled; - bool ssr_ack; - bool negotiation_done; - unsigned int local_pid; - unsigned int remote_pid; - struct regmap *ipc_regmap; - int ipc_offset; - int ipc_bit; - struct mbox_client mbox_client; - struct mbox_chan *mbox_chan; - struct list_head inbound; - struct list_head outbound; +enum spi_nor_pp_command_index { + SNOR_CMD_PP = 0, + SNOR_CMD_PP_1_1_4 = 1, + SNOR_CMD_PP_1_4_4 = 2, + SNOR_CMD_PP_4_4_4 = 3, + SNOR_CMD_PP_1_1_8 = 4, + SNOR_CMD_PP_1_8_8 = 5, + SNOR_CMD_PP_8_8_8 = 6, + SNOR_CMD_PP_8_8_8_DTR = 7, + SNOR_CMD_PP_MAX = 8, }; -struct smp2p_smem_item { - u32 magic; - u8 version; - unsigned int features: 24; - u16 local_pid; - u16 remote_pid; - u16 total_entries; - u16 valid_entries; - u32 flags; - struct { - u8 name[16]; - u32 value; - } entries[16]; +struct spi_nor_erase_command { + struct list_head list; + u32 count; + u32 size; + u8 opcode; }; -struct virtio_pci_modern_common_cfg { - struct virtio_pci_common_cfg cfg; - __le16 queue_notify_data; - __le16 queue_reset; +struct phylib_stubs { + int (*hwtstamp_get)(struct phy_device *, struct kernel_hwtstamp_config *); + int (*hwtstamp_set)(struct phy_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); }; -struct privcmd_buf_private; - -struct privcmd_buf_vma_private { - struct privcmd_buf_private *file_priv; +struct phy_fixup { struct list_head list; - unsigned int users; - unsigned int n_pages; - struct page *pages[0]; + char bus_id[64]; + u32 phy_uid; + u32 phy_uid_mask; + int (*run)(struct phy_device *); }; -struct privcmd_buf_private { - struct mutex lock; +struct phy_led { struct list_head list; + struct phy_device *phydev; + struct led_classdev led_cdev; + u8 index; }; -struct pfuze_regulator { - struct regulator_desc desc; - unsigned char stby_reg; - unsigned char stby_mask; - bool sw_reg; +struct dsaf_drv_mac_single_dest_entry { + u8 addr[6]; + u16 in_vlan_id; + u8 in_port_num; + u8 port_num; + u8 rsv[6]; }; -struct of_regulator_match { - const char *name; - void *driver_data; - struct regulator_init_data *init_data; - struct device_node *of_node; - const struct regulator_desc *desc; +struct e1000_opt_list { + int i; + char *str; }; -enum chips { - PFUZE100 = 0, - PFUZE200 = 1, - PFUZE3000 = 3, - PFUZE3001 = 49, +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; }; -struct pfuze_chip { - int chip_id; - int flags; - struct regmap *regmap; - struct device *dev; - struct pfuze_regulator regulator_descs[16]; - struct regulator_dev *regulators[16]; - struct pfuze_regulator *pfuze_regulators; +enum igb_tx_buf_type { + IGB_TYPE_SKB = 0, + IGB_TYPE_XDP = 1, }; -struct vt_event { - unsigned int event; - unsigned int oldev; - unsigned int newev; - unsigned int pad[4]; +enum e1000_mac_type___2 { + e1000_undefined___2 = 0, + e1000_82575 = 1, + e1000_82576 = 2, + e1000_82580 = 3, + e1000_i350 = 4, + e1000_i354 = 5, + e1000_i210 = 6, + e1000_i211 = 7, + e1000_num_macs___2 = 8, }; -struct vt_event_wait { - struct list_head list; - struct vt_event event; - int done; +enum e1000_phy_type___2 { + e1000_phy_unknown___2 = 0, + e1000_phy_none___2 = 1, + e1000_phy_m88___3 = 2, + e1000_phy_igp___3 = 3, + e1000_phy_igp_2___2 = 4, + e1000_phy_gg82563___2 = 5, + e1000_phy_igp_3___2 = 6, + e1000_phy_ife___2 = 7, + e1000_phy_82580 = 8, + e1000_phy_i210 = 9, + e1000_phy_bcm54616 = 10, }; -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; +enum e1000_nvm_type___2 { + e1000_nvm_unknown___2 = 0, + e1000_nvm_none___2 = 1, + e1000_nvm_eeprom_spi___2 = 2, + e1000_nvm_flash_hw___2 = 3, + e1000_nvm_invm = 4, + e1000_nvm_flash_sw___2 = 5, }; -struct kbd_repeat { - int delay; - int period; +enum e1000_bus_type { + e1000_bus_type_unknown___2 = 0, + e1000_bus_type_pci___2 = 1, + e1000_bus_type_pcix___2 = 2, + e1000_bus_type_pci_express = 3, + e1000_bus_type_reserved___2 = 4, }; -struct unipair; +enum e1000_bus_speed { + e1000_bus_speed_unknown___2 = 0, + e1000_bus_speed_33___2 = 1, + e1000_bus_speed_66___2 = 2, + e1000_bus_speed_100___2 = 3, + e1000_bus_speed_120___2 = 4, + e1000_bus_speed_133___2 = 5, + e1000_bus_speed_2500 = 6, + e1000_bus_speed_5000 = 7, + e1000_bus_speed_reserved___2 = 8, +}; -struct unimapdesc { - unsigned short entry_ct; - struct unipair __attribute__((btf_type_tag("user"))) *entries; +enum e1000_state_t___2 { + __IGB_TESTING = 0, + __IGB_RESETTING = 1, + __IGB_DOWN = 2, + __IGB_PTP_TX_IN_PROGRESS = 3, }; -struct unipair { - unsigned short unicode; - unsigned short fontpos; +struct e1000_hw___3; + +struct e1000_mac_operations___2 { + s32 (*check_for_link)(struct e1000_hw___3 *); + s32 (*reset_hw)(struct e1000_hw___3 *); + s32 (*init_hw)(struct e1000_hw___3 *); + bool (*check_mng_mode)(struct e1000_hw___3 *); + s32 (*setup_physical_interface)(struct e1000_hw___3 *); + void (*rar_set)(struct e1000_hw___3 *, u8 *, u32); + s32 (*read_mac_addr)(struct e1000_hw___3 *); + s32 (*get_speed_and_duplex)(struct e1000_hw___3 *, u16 *, u16 *); + s32 (*acquire_swfw_sync)(struct e1000_hw___3 *, u16); + void (*release_swfw_sync)(struct e1000_hw___3 *, u16); + s32 (*get_thermal_sensor_data)(struct e1000_hw___3 *); + s32 (*init_thermal_sensor_thresh)(struct e1000_hw___3 *); + void (*write_vfta)(struct e1000_hw___3 *, u32, u32); }; -struct kbentry { - unsigned char kb_table; - unsigned char kb_index; - unsigned short kb_value; +struct e1000_thermal_diode_data { + u8 location; + u8 temp; + u8 caution_thresh; + u8 max_op_thresh; }; -struct kbsentry { - unsigned char kb_func; - unsigned char kb_string[512]; +struct e1000_thermal_sensor_data { + struct e1000_thermal_diode_data sensor[3]; }; -struct kbkeycode { - unsigned int scancode; - unsigned int keycode; +struct e1000_mac_info___2 { + struct e1000_mac_operations___2 ops; + u8 addr[6]; + u8 perm_addr[6]; + enum e1000_mac_type___2 type; + u32 ledctl_default; + u32 ledctl_mode1; + u32 ledctl_mode2; + u32 mc_filter_type; + u32 txcw; + u16 mta_reg_count; + u16 uta_reg_count; + u32 mta_shadow[128]; + u16 rar_entry_count; + u8 forced_speed_duplex; + bool adaptive_ifs; + bool arc_subsystem_valid; + bool asf_firmware_present; + bool autoneg; + bool autoneg_failed; + bool disable_hw_init_bits; + bool get_link_status; + bool ifs_params_forced; + bool in_ifs_mode; + bool report_tx_early; + bool serdes_has_link; + bool tx_pkt_filtering; + struct e1000_thermal_sensor_data thermal_sensor_data; }; -struct compat_unimapdesc { - unsigned short entry_ct; - compat_caddr_t entries; +struct e1000_fc_info___2 { + u32 high_water; + u32 low_water; + u16 pause_time; + bool send_xon; + bool strict_ieee; + enum e1000_fc_mode current_mode; + enum e1000_fc_mode requested_mode; }; -struct vt_stat { - unsigned short v_active; - unsigned short v_signal; - unsigned short v_state; +struct e1000_phy_operations___2 { + s32 (*acquire)(struct e1000_hw___3 *); + s32 (*check_polarity)(struct e1000_hw___3 *); + s32 (*check_reset_block)(struct e1000_hw___3 *); + s32 (*force_speed_duplex)(struct e1000_hw___3 *); + s32 (*get_cfg_done)(struct e1000_hw___3 *); + s32 (*get_cable_length)(struct e1000_hw___3 *); + s32 (*get_phy_info)(struct e1000_hw___3 *); + s32 (*read_reg)(struct e1000_hw___3 *, u32, u16 *); + void (*release)(struct e1000_hw___3 *); + s32 (*reset)(struct e1000_hw___3 *); + s32 (*set_d0_lplu_state)(struct e1000_hw___3 *, bool); + s32 (*set_d3_lplu_state)(struct e1000_hw___3 *, bool); + s32 (*write_reg)(struct e1000_hw___3 *, u32, u16); + s32 (*read_i2c_byte)(struct e1000_hw___3 *, u8, u8, u8 *); + s32 (*write_i2c_byte)(struct e1000_hw___3 *, u8, u8, u8); }; -struct vt_sizes { - unsigned short v_rows; - unsigned short v_cols; - unsigned short v_scrollsize; +struct e1000_phy_info___3 { + struct e1000_phy_operations___2 ops; + enum e1000_phy_type___2 type; + enum e1000_1000t_rx_status local_rx; + enum e1000_1000t_rx_status remote_rx; + enum e1000_ms_type ms_type; + enum e1000_ms_type original_ms_type; + enum e1000_rev_polarity cable_polarity; + enum e1000_smart_speed smart_speed; + u32 addr; + u32 id; + u32 reset_delay_us; + u32 revision; + enum e1000_media_type media_type; + u16 autoneg_advertised; + u16 autoneg_mask; + u16 cable_length; + u16 max_cable_length; + u16 min_cable_length; + u16 pair_length[4]; + u8 mdix; + bool disable_polarity_correction; + bool is_mdix; + bool polarity_correction; + bool reset_disable; + bool speed_downgraded; + bool autoneg_wait_to_complete; }; -struct vt_setactivate { - unsigned int console; - struct vt_mode mode; +struct e1000_nvm_operations___2 { + s32 (*acquire)(struct e1000_hw___3 *); + s32 (*read)(struct e1000_hw___3 *, u16, u16, u16 *); + void (*release)(struct e1000_hw___3 *); + s32 (*write)(struct e1000_hw___3 *, u16, u16, u16 *); + s32 (*update)(struct e1000_hw___3 *); + s32 (*validate)(struct e1000_hw___3 *); + s32 (*valid_led_default)(struct e1000_hw___3 *, u16 *); }; -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 e1000_nvm_info___2 { + struct e1000_nvm_operations___2 ops; + enum e1000_nvm_type___2 type; + enum e1000_nvm_override override; + u32 flash_bank_size; + u32 flash_base_addr; + u16 word_size; + u16 delay_usec; + u16 address_bits; + u16 opcode_bits; + u16 page_size; }; -struct tegra_uart_chip_data { - bool tx_fifo_full_status; - bool allow_txfifo_reset_fifo_mode; - bool support_clk_src_div; - bool fifo_mode_enable_status; - int uart_max_port; - int max_dma_burst_bytes; - int error_tolerance_low_range; - int error_tolerance_high_range; +struct e1000_bus_info___2 { + enum e1000_bus_type type; + enum e1000_bus_speed speed; + enum e1000_bus_width width; + u32 snoop; + u16 func; + u16 pci_cmd_word; }; -struct tegra_baud_tolerance; +struct e1000_mbx_operations { + s32 (*init_params)(struct e1000_hw___3 *); + s32 (*read)(struct e1000_hw___3 *, u32 *, u16, u16, bool); + s32 (*write)(struct e1000_hw___3 *, u32 *, u16, u16); + s32 (*read_posted)(struct e1000_hw___3 *, u32 *, u16, u16); + s32 (*write_posted)(struct e1000_hw___3 *, u32 *, u16, u16); + s32 (*check_for_msg)(struct e1000_hw___3 *, u16); + s32 (*check_for_ack)(struct e1000_hw___3 *, u16); + s32 (*check_for_rst)(struct e1000_hw___3 *, u16); + s32 (*unlock)(struct e1000_hw___3 *, u16); +}; -struct tegra_uart_port { - struct uart_port uport; - const struct tegra_uart_chip_data *cdata; - struct clk *uart_clk; - struct reset_control *rst; - unsigned int current_baud; - unsigned long fcr_shadow; - unsigned long mcr_shadow; - unsigned long lcr_shadow; - unsigned long ier_shadow; - bool rts_active; - int tx_in_progress; - unsigned int tx_bytes; - bool enable_modem_interrupt; - bool rx_timeout; - int rx_in_progress; - int symb_bit; - struct dma_chan *rx_dma_chan; - struct dma_chan *tx_dma_chan; - dma_addr_t rx_dma_buf_phys; - dma_addr_t tx_dma_buf_phys; - unsigned char *rx_dma_buf_virt; - unsigned char *tx_dma_buf_virt; - struct dma_async_tx_descriptor *tx_dma_desc; - struct dma_async_tx_descriptor *rx_dma_desc; - dma_cookie_t tx_cookie; - dma_cookie_t rx_cookie; - unsigned int tx_bytes_requested; - unsigned int rx_bytes_requested; - struct tegra_baud_tolerance *baud_tolerance; - int n_adjustable_baud_rates; - int required_rate; - int configured_rate; - bool use_rx_pio; - bool use_tx_pio; - bool rx_dma_active; +struct e1000_mbx_stats { + u32 msgs_tx; + u32 msgs_rx; + u32 acks; + u32 reqs; + u32 rsts; }; -struct tegra_baud_tolerance { - u32 lower_range_baud; - u32 upper_range_baud; - s32 tolerance; +struct e1000_mbx_info { + struct e1000_mbx_operations ops; + struct e1000_mbx_stats stats; + u32 timeout; + u32 usec_delay; + u16 size; }; -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 e1000_sfp_flags { + u8 e1000_base_sx: 1; + u8 e1000_base_lx: 1; + u8 e1000_base_cx: 1; + u8 e1000_base_t: 1; + u8 e100_base_lx: 1; + u8 e100_base_fx: 1; + u8 e10_base_bx10: 1; + u8 e10_base_px: 1; }; -struct tpmrm_priv { - struct file_priv priv; - struct tpm_space space; +struct e1000_dev_spec_82575 { + bool sgmii_active; + bool global_device_reset; + bool eee_disable; + bool clear_semaphore_once; + struct e1000_sfp_flags eth_flags; + bool module_plugged; + u8 media_port; + bool media_changed; + bool mas_capable; }; -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, +struct e1000_hw___3 { + void *back; + u8 *hw_addr; + u8 *flash_address; + unsigned long io_base; + struct e1000_mac_info___2 mac; + struct e1000_fc_info___2 fc; + struct e1000_phy_info___3 phy; + struct e1000_nvm_info___2 nvm; + struct e1000_bus_info___2 bus; + struct e1000_mbx_info mbx; + struct e1000_host_mng_dhcp_cookie mng_cookie; + union { + struct e1000_dev_spec_82575 _82575; + } dev_spec; + u16 device_id; + u16 subsystem_vendor_id; + u16 subsystem_device_id; + u16 vendor_id; + u8 revision_id; }; -enum { - 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, +struct e1000_hw_stats___3 { + u64 crcerrs; + u64 algnerrc; + u64 symerrs; + u64 rxerrc; + u64 mpc; + u64 scc; + u64 ecol; + u64 mcc; + u64 latecol; + u64 colc; + u64 dc; + u64 tncrs; + u64 sec; + u64 cexterr; + u64 rlec; + u64 xonrxc; + u64 xontxc; + u64 xoffrxc; + u64 xofftxc; + u64 fcruc; + u64 prc64; + u64 prc127; + u64 prc255; + u64 prc511; + u64 prc1023; + u64 prc1522; + u64 gprc; + u64 bprc; + u64 mprc; + u64 gptc; + u64 gorc; + u64 gotc; + u64 rnbc; + u64 ruc; + u64 rfc; + u64 roc; + u64 rjc; + u64 mgprc; + u64 mgpdc; + u64 mgptc; + u64 tor; + u64 tot; + u64 tpr; + u64 tpt; + u64 ptc64; + u64 ptc127; + u64 ptc255; + u64 ptc511; + u64 ptc1023; + u64 ptc1522; + u64 mptc; + u64 bptc; + u64 tsctc; + u64 tsctfc; + u64 iac; + u64 icrxptc; + u64 icrxatc; + u64 ictxptc; + u64 ictxatc; + u64 ictxqec; + u64 ictxqmtc; + u64 icrxdmtc; + u64 icrxoc; + u64 cbtmpc; + u64 htdpmc; + u64 cbrdpc; + u64 cbrmpc; + u64 rpthc; + u64 hgptc; + u64 htcbdpc; + u64 hgorc; + u64 hgotc; + u64 lenerrs; + u64 scvpc; + u64 hrmpc; + u64 doosync; + u64 o2bgptc; + u64 o2bspc; + u64 b2ospc; + u64 b2ogprc; }; -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, +struct igb_tx_queue_stats { + u64 packets; + u64 bytes; + u64 restart_queue; + u64 restart_queue2; }; -enum mipi_dsi_dcs_tear_mode { - MIPI_DSI_DCS_TEAR_MODE_VBLANK = 0, - MIPI_DSI_DCS_TEAR_MODE_VHBLANK = 1, +struct igb_rx_queue_stats { + u64 packets; + u64 bytes; + u64 drops; + u64 csum_err; + u64 alloc_failed; }; -struct mipi_dsi_host; +struct igb_q_vector; -struct drm_dsc_config; +struct igb_tx_buffer; -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 igb_rx_buffer; + +struct igb_ring { + struct igb_q_vector *q_vector; + struct net_device *netdev; + struct bpf_prog *xdp_prog; + struct device *dev; + union { + struct igb_tx_buffer *tx_buffer_info; + struct igb_rx_buffer *rx_buffer_info; + }; + void *desc; + unsigned long flags; + void *tail; + dma_addr_t dma; + unsigned int size; + u16 count; + u8 queue_index; + u8 reg_idx; + bool launchtime_enable; + bool cbs_enable; + s32 idleslope; + s32 sendslope; + s32 hicredit; + s32 locredit; + u16 next_to_clean; + u16 next_to_use; + u16 next_to_alloc; + union { + struct { + struct igb_tx_queue_stats tx_stats; + struct u64_stats_sync tx_syncp; + struct u64_stats_sync tx_syncp2; + }; + struct { + struct sk_buff *skb; + struct igb_rx_queue_stats rx_stats; + struct u64_stats_sync rx_syncp; + }; + }; + long: 64; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; }; -struct mipi_dsi_host_ops; +struct e1000_info___2 { + s32 (*get_invariants)(struct e1000_hw___3 *); + struct e1000_mac_operations___2 *mac_ops; + const struct e1000_phy_operations___2 *phy_ops; + struct e1000_nvm_operations___2 *nvm_ops; +}; -struct mipi_dsi_host { - struct device *dev; - const struct mipi_dsi_host_ops *ops; - struct list_head list; +struct vf_mac_filter { + struct list_head l; + int vf; + bool free; + u8 vf_mac[6]; }; -struct mipi_dsi_msg; +struct vf_data_storage; -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 hwmon_buff; + +struct igb_mac_addr; + +struct igb_adapter { + unsigned long active_vlans[64]; + struct net_device *netdev; + struct bpf_prog *xdp_prog; + unsigned long state; + unsigned int flags; + unsigned int num_q_vectors; + struct msix_entry msix_entries[10]; + u32 rx_itr_setting; + u32 tx_itr_setting; + u16 tx_itr; + u16 rx_itr; + u16 tx_work_limit; + u32 tx_timeout_count; + int num_tx_queues; + struct igb_ring *tx_ring[16]; + int num_rx_queues; + struct igb_ring *rx_ring[16]; + u32 max_frame_size; + u32 min_frame_size; + struct timer_list watchdog_timer; + struct timer_list phy_info_timer; + u16 mng_vlan_id; + u32 bd_number; + u32 wol; + u32 en_mng_pt; + u16 link_speed; + u16 link_duplex; + u8 *io_addr; + struct work_struct reset_task; + struct work_struct watchdog_task; + bool fc_autoneg; + u8 tx_timeout_factor; + struct timer_list blink_timer; + unsigned long led_status; + struct pci_dev *pdev; + spinlock_t stats64_lock; + struct rtnl_link_stats64 stats64; + struct e1000_hw___3 hw; + struct e1000_hw_stats___3 stats; + struct e1000_phy_info___3 phy_info; + u32 test_icr; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct igb_ring test_tx_ring; + struct igb_ring test_rx_ring; + int msg_enable; + struct igb_q_vector *q_vector[8]; + u32 eims_enable_mask; + u32 eims_other; + u16 tx_ring_count; + u16 rx_ring_count; + unsigned int vfs_allocated_count; + struct vf_data_storage *vf_data; + int vf_rate_link_speed; + u32 rss_queues; + u32 wvbr; + u32 *shadow_vfta; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_caps; + struct delayed_work ptp_overflow_work; + struct work_struct ptp_tx_work; + struct sk_buff *ptp_tx_skb; + struct hwtstamp_config tstamp_config; + unsigned long ptp_tx_start; + unsigned long last_rx_ptp_check; + unsigned long last_rx_timestamp; + unsigned int ptp_flags; + spinlock_t tmreg_lock; + struct cyclecounter cc; + struct timecounter tc; + u32 tx_hwtstamp_timeouts; + u32 tx_hwtstamp_skipped; + u32 rx_hwtstamp_cleared; + bool pps_sys_wrap_on; + struct ptp_pin_desc sdp_config[4]; + struct { + struct timespec64 start; + struct timespec64 period; + } perout[2]; + char fw_version[32]; + struct hwmon_buff *igb_hwmon_buff; + bool ets; + struct i2c_algo_bit_data i2c_algo; + struct i2c_adapter i2c_adap; + struct i2c_client *i2c_client; + u32 rss_indir_tbl_init; + u8 rss_indir_tbl[128]; + unsigned long link_check_timeout; + int copper_tries; + struct e1000_info___2 ei; + u16 eee_advert; + struct hlist_head nfc_filter_list; + struct hlist_head cls_flower_list; + unsigned int nfc_filter_count; + spinlock_t nfc_lock; + bool etype_bitmap[3]; + struct igb_mac_addr *mac_table; + struct vf_mac_filter vf_macs; + struct vf_mac_filter *vf_mac_list; + spinlock_t vfs_lock; + long: 64; + long: 64; + long: 64; }; -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 igb_ring_container { + struct igb_ring *ring; + unsigned int total_bytes; + unsigned int total_packets; + u16 work_limit; + u8 count; + u8 itr; }; -struct drm_dsc_rc_range_parameters { - u8 range_min_qp; - u8 range_max_qp; - u8 range_bpg_offset; +struct igb_q_vector { + struct igb_adapter *adapter; + int cpu; + u32 eims_value; + u16 itr_val; + u8 set_itr; + void *itr_register; + struct igb_ring_container rx; + struct igb_ring_container tx; + struct napi_struct napi; + struct callback_head rcu; + char name[25]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct igb_ring ring[0]; }; -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; +union e1000_adv_tx_desc; + +struct igb_tx_buffer { + union e1000_adv_tx_desc *next_to_watch; + unsigned long time_stamp; + enum igb_tx_buf_type type; + union { + struct sk_buff *skb; + struct xdp_frame *xdpf; + }; + unsigned int bytecount; + u16 gso_segs; + __be16 protocol; + dma_addr_t dma; + __u32 len; + u32 tx_flags; }; -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 *); +union e1000_adv_tx_desc { + struct { + __le64 buffer_addr; + __le32 cmd_type_len; + __le32 olinfo_status; + } read; + struct { + __le64 rsvd; + __le32 nxtseq_seed; + __le32 status; + } wb; }; -struct mipi_dsi_device_info { - char type[20]; - u32 channel; - struct device_node *node; +struct igb_rx_buffer { + dma_addr_t dma; + struct page *page; + __u32 page_offset; + __u16 pagecnt_bias; }; -struct mipi_dsi_packet { - size_t size; - u8 header[4]; - size_t payload_length; - const u8 *payload; +struct vf_data_storage { + unsigned char vf_mac_addresses[6]; + u16 vf_mc_hashes[30]; + u16 num_vf_mc_hashes; + u32 flags; + unsigned long last_nack; + u16 pf_vlan; + u16 pf_qos; + u16 tx_rate; + bool spoofchk_enabled; + bool trusted; }; -struct 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 hwmon_attr { + struct device_attribute dev_attr; + struct e1000_hw___3 *hw; + struct e1000_thermal_diode_data *sensor; + char name[12]; +}; -enum scsi_scan_mode { - SCSI_SCAN_INITIAL = 0, - SCSI_SCAN_RESCAN = 1, - SCSI_SCAN_MANUAL = 2, +struct hwmon_buff { + struct attribute_group group; + const struct attribute_group *groups[2]; + struct attribute *attrs[13]; + struct hwmon_attr hwmon_list[12]; + unsigned int n_hwmon; }; -enum scsi_timeouts { - SCSI_DEFAULT_EH_TIMEOUT = 2500, +struct igb_mac_addr { + u8 addr[6]; + u8 queue; + u8 state; }; -struct async_scan_data { - struct list_head list; - struct Scsi_Host *shost; - struct completion prev_finished; +struct ale_control_info { + const char *name; + int offset; + int port_offset; + int shift; + int port_shift; + int bits; }; -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 ale_entry_fld; + +struct cpsw_ale_dev_id { + const char *dev_id; + u32 features; + u32 tbl_entries; + u32 major_ver_mask; + bool nu_switch_ale; + const struct ale_entry_fld *vlan_entry_tbl; }; -struct cfi_intelext_blockinfo { - uint16_t NumIdentBlocks; - uint16_t BlockSize; - uint16_t MinBlockEraseCycles; - uint8_t BitsPerCell; - uint8_t BlockCap; +struct ale_entry_fld { + u8 start_bit; + u8 num_bits; + u8 flags; }; -struct cfi_intelext_regioninfo { - uint16_t NumIdentPartitions; - uint8_t NumOpAllowed; - uint8_t NumOpAllowedSimProgMode; - uint8_t NumOpAllowedSimEraMode; - uint8_t NumBlockTypes; - struct cfi_intelext_blockinfo BlockTypes[1]; +enum { + ALE_ENT_VID_MEMBER_LIST = 0, + ALE_ENT_VID_UNREG_MCAST_MSK = 1, + ALE_ENT_VID_REG_MCAST_MSK = 2, + ALE_ENT_VID_FORCE_UNTAGGED_MSK = 3, + ALE_ENT_VID_UNREG_MCAST_IDX = 4, + ALE_ENT_VID_REG_MCAST_IDX = 5, + ALE_ENT_VID_LAST = 6, }; -struct cfi_intelext_programming_regioninfo { - uint8_t ProgRegShift; - uint8_t Reserved1; - uint8_t ControlValid; - uint8_t Reserved2; - uint8_t ControlInvalid; - uint8_t Reserved3; +enum cpsw_ale_control { + ALE_ENABLE = 0, + ALE_CLEAR = 1, + ALE_AGEOUT = 2, + ALE_P0_UNI_FLOOD = 3, + ALE_VLAN_NOLEARN = 4, + ALE_NO_PORT_VLAN = 5, + ALE_OUI_DENY = 6, + ALE_BYPASS = 7, + ALE_RATE_LIMIT_TX = 8, + ALE_VLAN_AWARE = 9, + ALE_AUTH_ENABLE = 10, + ALE_RATE_LIMIT = 11, + ALE_PORT_STATE = 12, + ALE_PORT_DROP_UNTAGGED = 13, + ALE_PORT_DROP_UNKNOWN_VLAN = 14, + ALE_PORT_NOLEARN = 15, + ALE_PORT_NO_SA_UPDATE = 16, + ALE_PORT_UNKNOWN_VLAN_MEMBER = 17, + ALE_PORT_UNKNOWN_MCAST_FLOOD = 18, + ALE_PORT_UNKNOWN_REG_MCAST_FLOOD = 19, + ALE_PORT_UNTAGGED_EGRESS = 20, + ALE_PORT_MACONLY = 21, + ALE_PORT_MACONLY_CAF = 22, + ALE_PORT_BCAST_LIMIT = 23, + ALE_PORT_MCAST_LIMIT = 24, + ALE_DEFAULT_THREAD_ID = 25, + ALE_DEFAULT_THREAD_ENABLE = 26, + ALE_NUM_CONTROLS = 27, }; -struct flchip_shared { - struct mutex lock; - struct flchip *writing; - struct flchip *erasing; +enum { + CPSW_ALE_F_STATUS_REG = 1, + CPSW_ALE_F_HW_AUTOAGING = 2, + CPSW_ALE_F_COUNT = 3, }; -struct mdiobus_devres { - struct mii_bus *mii; +struct cpsw_ale_params { + struct device *dev; + void *ale_regs; + unsigned long ale_ageout; + unsigned long ale_entries; + unsigned long ale_ports; + bool nu_switch_ale; + u32 major_ver_mask; + const char *dev_id; + unsigned long bus_freq; }; -enum fec_txbuf_type { - FEC_TXBUF_T_SKB = 0, - FEC_TXBUF_T_XDP_NDO = 1, +struct cpsw_ale { + struct cpsw_ale_params params; + struct timer_list timer; + unsigned long ageout; + u32 version; + u32 features; + u32 port_mask_bits; + u32 port_num_bits; + u32 vlan_field_bits; + unsigned long *p0_untag_vid_mask; + const struct ale_entry_fld *vlan_entry_tbl; }; -struct fec_stop_mode_gpr { - struct regmap *gpr; - u8 reg; - u8 bit; +enum snoop_when { + SUBMIT = 0, + COMPLETE = 1, }; -struct fec_enet_priv_tx_q; +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 fec_enet_priv_rx_q; +struct usb_memory; -struct fec_enet_private { - void *hwp; - struct net_device *netdev; - struct clk *clk_ipg; - struct clk *clk_ahb; - struct clk *clk_ref; - struct clk *clk_enet_out; - struct clk *clk_ptp; - struct clk *clk_2x_txclk; - bool ptp_clk_on; - struct mutex ptp_clk_mutex; - unsigned int num_tx_queues; - unsigned int num_rx_queues; - struct fec_enet_priv_tx_q *tx_queue[3]; - struct fec_enet_priv_rx_q *rx_queue[3]; - unsigned int total_tx_ring_size; - unsigned int total_rx_ring_size; - struct platform_device *pdev; - int dev_id; - struct mii_bus *mii_bus; - uint phy_speed; - phy_interface_t phy_interface; - struct device_node *phy_node; - bool rgmii_txc_dly; - bool rgmii_rxc_dly; - bool rpm_active; - int link; - int full_duplex; - int speed; - int irq[3]; - bool bufdesc_ex; - int pause_flag; - int wol_flag; - int wake_irq; - u32 quirks; - struct napi_struct napi; - int csum_flags; - struct work_struct tx_timeout_work; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_caps; - unsigned long last_overflow_check; - spinlock_t tmreg_lock; - struct cyclecounter cc; - struct timecounter tc; - int rx_hwtstamp_filter; - u32 base_incval; - u32 cycle_speed; - int hwts_rx_en; - int hwts_tx_en; - struct delayed_work time_keep; - struct regulator *reg_phy; - struct fec_stop_mode_gpr stop_gpr; - struct pm_qos_request pm_qos_req; - unsigned int tx_align; - unsigned int rx_align; - unsigned int rx_pkts_itr; - unsigned int rx_time_itr; - unsigned int tx_pkts_itr; - unsigned int tx_time_itr; - unsigned int itr_clk_rate; - struct ethtool_eee eee; - unsigned int clk_ref_rate; - u32 rx_copybreak; - unsigned int ptp_inc; - int pps_channel; - unsigned int reload_period; - int pps_enable; - unsigned int next_counter; - struct hrtimer perout_timer; - u64 perout_stime; - struct imx_sc_ipc *ipc_handle; - struct bpf_prog *xdp_prog; - u64 ethtool_stats[0]; +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 bufdesc; +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 bufdesc_prop { - int qid; - struct bufdesc *base; - struct bufdesc *last; - struct bufdesc *cur; - void *reg_desc_active; - dma_addr_t dma; - unsigned short ring_size; - unsigned char dsize; - unsigned char dsize_log2; +struct usbdevfs_iso_packet_desc { + unsigned int length; + unsigned int actual_length; + unsigned int status; }; -struct fec_tx_buffer { +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 { - struct sk_buff *skb; - struct xdp_frame *xdp; + int number_of_packets; + unsigned int stream_id; }; - enum fec_txbuf_type type; + int error_count; + unsigned int signr; + void __attribute__((btf_type_tag("user"))) *usercontext; + struct usbdevfs_iso_packet_desc iso_frame_desc[0]; }; -struct fec_enet_priv_tx_q { - struct bufdesc_prop bd; - unsigned char *tx_bounce[1024]; - struct fec_tx_buffer tx_buf[1024]; - unsigned short tx_stop_threshold; - unsigned short tx_wake_threshold; - struct bufdesc *dirty_tx; - char *tso_hdrs; - dma_addr_t tso_hdrs_dma; +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 bufdesc { - __le16 cbd_datlen; - __le16 cbd_sc; - __le32 cbd_bufaddr; +struct usbdevfs_setinterface { + unsigned int interface; + unsigned int altsetting; }; -struct fec_enet_priv_txrx_info { - int offset; - struct page *page; - struct sk_buff *skb; +struct usbdevfs_bulktransfer32 { + compat_uint_t ep; + compat_uint_t len; + compat_uint_t timeout; + compat_caddr_t data; }; -struct fec_enet_priv_rx_q { - struct bufdesc_prop bd; - struct fec_enet_priv_txrx_info rx_skb_info[256]; - struct page_pool *page_pool; - struct xdp_rxq_info xdp_rxq; - u32 stats[7]; - u8 id; - long: 64; - long: 64; - long: 64; - long: 64; +struct usbdevfs_bulktransfer { + unsigned int ep; + unsigned int len; + unsigned int timeout; + void __attribute__((btf_type_tag("user"))) *data; }; -enum mac_mode { - MAC_MODE_INVALID = 0, - MAC_MODE_MII_10 = 65546, - MAC_MODE_MII_100 = 65636, - MAC_MODE_RMII_10 = 131082, - MAC_MODE_RMII_100 = 131172, - MAC_MODE_SMII_10 = 196618, - MAC_MODE_SMII_100 = 196708, - MAC_MODE_GMII_1000 = 263144, - MAC_MODE_RGMII_10 = 327690, - MAC_MODE_RGMII_100 = 327780, - MAC_MODE_RGMII_1000 = 328680, - MAC_MODE_TBI_1000 = 394216, - MAC_MODE_RTBI_1000 = 459752, - MAC_MODE_SGMII_10 = 524298, - MAC_MODE_SGMII_100 = 524388, - MAC_MODE_SGMII_1000 = 525288, - MAC_MODE_XGMII_10000 = 599824, - MAC_MODE_QSGMII_1000 = 656360, +struct usbdevfs_getdriver { + unsigned int interface; + char driver[256]; }; -enum mac_commom_mode { - MAC_COMM_MODE_NONE = 0, - MAC_COMM_MODE_RX = 1, - MAC_COMM_MODE_TX = 2, - MAC_COMM_MODE_RX_AND_TX = 3, +struct usbdevfs_disconnect_claim { + unsigned int interface; + unsigned int flags; + char driver[256]; }; -enum mac_speed { - MAC_SPEED_10 = 10, - MAC_SPEED_100 = 100, - MAC_SPEED_1000 = 1000, - MAC_SPEED_10000 = 10000, +struct usbdevfs_disconnectsignal32 { + compat_int_t signr; + compat_caddr_t context; }; -struct mac_info; +struct usbdevfs_ctrltransfer32 { + u8 bRequestType; + u8 bRequest; + u16 wValue; + u16 wIndex; + u16 wLength; + u32 timeout; + compat_caddr_t data; +}; -struct mac_driver { - void (*mac_init)(void *); - void (*mac_free)(void *); - void (*mac_enable)(void *, enum mac_commom_mode); - void (*mac_disable)(void *, enum mac_commom_mode); - void (*set_mac_addr)(void *, const char *); - int (*adjust_link)(void *, enum mac_speed, u32); - bool (*need_adjust_link)(void *, enum mac_speed, int); - void (*set_an_mode)(void *, u8); - int (*config_loopback)(void *, enum hnae_loop, u8); - void (*config_max_frame_length)(void *, u16); - void (*config_pad_and_crc)(void *, u8); - void (*set_tx_auto_pause_frames)(void *, u16); - void (*set_promiscuous)(void *, u8); - void (*mac_pausefrm_cfg)(void *, u32, u32); - void (*autoneg_stat)(void *, u32 *); - int (*set_pause_enable)(void *, u32, u32); - void (*get_pause_enable)(void *, u32 *, u32 *); - void (*get_link_status)(void *, u32 *); - void (*get_regs)(void *, void *); - int (*get_regs_count)(); - void (*get_strings)(u32, u8 *); - int (*get_sset_count)(int); - void (*get_ethtool_stats)(void *, u64 *); - void (*get_info)(void *, struct mac_info *); - void (*update_stats)(void *); - int (*wait_fifo_clean)(void *); - enum mac_mode mac_mode; - u8 mac_id; - struct hns_mac_cb *mac_cb; - u8 *io_base; - unsigned int mac_en_flg; - unsigned int virt_dev_num; - struct device *dev; +struct usbdevfs_ctrltransfer { + __u8 bRequestType; + __u8 bRequest; + __u16 wValue; + __u16 wIndex; + __u16 wLength; + __u32 timeout; + void __attribute__((btf_type_tag("user"))) *data; }; -struct mac_info { - u16 speed; - u8 duplex; - u8 auto_neg; - enum hnae_loop loop_mode; - u8 tx_pause_en; - u8 tx_pause_time; - u8 rx_pause_en; - u8 pad_and_crc_en; - u8 promiscuous_en; - u8 port_en; +struct usbdevfs_disconnectsignal { + unsigned int signr; + void __attribute__((btf_type_tag("user"))) *context; }; -struct mac_params { - char addr[6]; - u8 *vaddr; - struct device *dev; - u8 mac_id; - enum mac_mode mac_mode; +struct usbdevfs_ioctl32 { + s32 ifno; + s32 ioctl_code; + compat_caddr_t data; }; -struct k3_cppi_desc_pool { - struct device *dev; - dma_addr_t dma_addr; - void *cpumem; - size_t desc_size; - size_t mem_size; - size_t num_desc; - struct gen_pool *gen_pool; +struct usbdevfs_ioctl { + int ifno; + int ioctl_code; + void __attribute__((btf_type_tag("user"))) *data; }; -struct irq_bypass_consumer; +struct usbdevfs_connectinfo { + unsigned int devnum; + unsigned char slow; +}; -struct irq_bypass_producer { - struct list_head node; - void *token; - int irq; - int (*add_consumer)(struct irq_bypass_producer *, struct irq_bypass_consumer *); - void (*del_consumer)(struct irq_bypass_producer *, struct irq_bypass_consumer *); - void (*stop)(struct irq_bypass_producer *); - void (*start)(struct irq_bypass_producer *); +struct usbdevfs_conninfo_ex { + __u32 size; + __u32 busnum; + __u32 devnum; + __u32 speed; + __u8 num_ports; + __u8 ports[7]; }; -struct vfio_pci_irq_ctx { - struct eventfd_ctx *trigger; - struct virqfd *unmask; - struct virqfd *mask; - char *name; - bool masked; - struct irq_bypass_producer producer; +struct usbdevfs_streams { + unsigned int num_streams; + unsigned int num_eps; + unsigned char eps[0]; }; -struct irq_bypass_consumer { - struct list_head node; - void *token; - int (*add_producer)(struct irq_bypass_consumer *, struct irq_bypass_producer *); - void (*del_producer)(struct irq_bypass_consumer *, struct irq_bypass_producer *); - void (*stop)(struct irq_bypass_consumer *); - void (*start)(struct irq_bypass_consumer *); +struct dwc3_imx8mp { + struct device *dev; + struct platform_device *dwc3; + void *hsio_blk_base; + void *glue_base; + struct clk *hsio_clk; + struct clk *suspend_clk; + int irq; + bool pm_suspended; + bool wakeup_pending; }; -struct msi_map { - int index; - int virq; +enum ssusb_uwk_vers { + SSUSB_UWK_V1 = 1, + SSUSB_UWK_V2 = 2, + SSUSB_UWK_V1_1 = 101, + SSUSB_UWK_V1_2 = 102, }; -struct component_ops { - int (*bind)(struct device *, struct device *, void *); - void (*unbind)(struct device *, struct device *, void *); +enum mtu3_dr_force_mode { + MTU3_DR_FORCE_NONE = 0, + MTU3_DR_FORCE_HOST = 1, + MTU3_DR_FORCE_DEVICE = 2, }; -struct xhci_plat_priv { - const char *firmware_name; - unsigned long long quirks; - void (*plat_start)(struct usb_hcd *); - int (*init_quirk)(struct usb_hcd *); - int (*suspend_quirk)(struct usb_hcd *); - int (*resume_quirk)(struct usb_hcd *); +struct urb_priv___2 { + struct ed *ed; + u16 length; + u16 td_cnt; + struct list_head pending; + struct td *td[0]; }; -struct usbmisc_ops { - int (*init)(struct imx_usbmisc_data *); - int (*post)(struct imx_usbmisc_data *); - int (*set_wakeup)(struct imx_usbmisc_data *, bool); - int (*hsic_set_connect)(struct imx_usbmisc_data *); - int (*hsic_set_clk)(struct imx_usbmisc_data *, bool); - int (*charger_detection)(struct imx_usbmisc_data *); - int (*power_lost_check)(struct imx_usbmisc_data *); - void (*vbus_comparator_on)(struct imx_usbmisc_data *, bool); +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 imx_usbmisc { - void *base; - spinlock_t lock; - const struct usbmisc_ops *ops; +enum usb3503_mode { + USB3503_MODE_UNKNOWN = 0, + USB3503_MODE_HUB = 1, + USB3503_MODE_STANDBY = 2, + USB3503_MODE_BYPASS = 3, }; -enum { - KPARAM_X = 0, - KPARAM_Y = 1, - KPARAM_CNT = 2, +struct usb3503 { + enum usb3503_mode mode; + struct regmap *regmap; + struct device *dev; + struct clk *clk; + u8 port_off_mask; + struct gpio_desc *bypass; + struct gpio_desc *intn; + struct gpio_desc *reset; + struct gpio_desc *connect; + bool secondary_ref_clk; }; -struct xenkbd_motion { - uint8_t type; - int32_t rel_x; - int32_t rel_y; - int32_t rel_z; +struct usb3503_platform_data { + enum usb3503_mode initial_mode; + u8 port_off_mask; }; -struct xenkbd_key { - uint8_t type; - uint8_t pressed; - uint32_t keycode; +struct ci_hdrc_usb2_priv { + struct platform_device *ci_pdev; + struct clk *clk; }; -struct xenkbd_position { - uint8_t type; - int32_t abs_x; - int32_t abs_y; - int32_t rel_z; +struct trackpoint_attr_data { + size_t field_offset; + u8 command; + u8 mask; + bool inverted; + u8 power_on_default; }; -struct xenkbd_mtouch { - uint8_t type; - uint8_t event_type; - uint8_t contact_id; - uint8_t reserved[5]; - union { - struct { - int32_t abs_x; - int32_t abs_y; - } pos; - struct { - uint32_t major; - uint32_t minor; - } shape; - int16_t orientation; - } u; +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; }; -union xenkbd_in_event { - uint8_t type; - struct xenkbd_motion motion; - struct xenkbd_key key; - struct xenkbd_position pos; - struct xenkbd_mtouch mtouch; - char pad[40]; +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 xenkbd_page; +struct s3c_rtc; -struct xenkbd_info { - struct input_dev *kbd; - struct input_dev *ptr; - struct input_dev *mtouch; - struct xenkbd_page *page; - int gref; - int irq; - struct xenbus_device *xbdev; - char phys[32]; - int mtouch_cur_contact_id; +struct s3c_rtc_data { + bool needs_src_clk; + void (*irq_handler)(struct s3c_rtc *, int); + void (*enable)(struct s3c_rtc *); + void (*disable)(struct s3c_rtc *); }; -struct xenkbd_page { - uint32_t in_cons; - uint32_t in_prod; - uint32_t out_cons; - uint32_t out_prod; +struct s3c_rtc { + struct device *dev; + struct rtc_device *rtc; + void *base; + struct clk *rtc_clk; + struct clk *rtc_src_clk; + bool alarm_enabled; + const struct s3c_rtc_data *data; + int irq_alarm; + spinlock_t alarm_lock; + bool wake_en; }; enum imx_i2c_type { @@ -124196,3843 +122848,4563 @@ struct imxi2c_platform_data { u32 bitrate; }; -struct bq27xxx_dm_reg { - u8 subclass_id; - u8 offset; - u8 bytes; - u16 min; - u16 max; +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; }; -enum bq27xxx_chip { - BQ27000 = 1, - BQ27010 = 2, - BQ2750X = 3, - BQ2751X = 4, - BQ2752X = 5, - BQ27500 = 6, - BQ27510G1 = 7, - BQ27510G2 = 8, - BQ27510G3 = 9, - BQ27520G1 = 10, - BQ27520G2 = 11, - BQ27520G3 = 12, - BQ27520G4 = 13, - BQ27521 = 14, - BQ27530 = 15, - BQ27531 = 16, - BQ27541 = 17, - BQ27542 = 18, - BQ27546 = 19, - BQ27742 = 20, - BQ27545 = 21, - BQ27411 = 22, - BQ27421 = 23, - BQ27425 = 24, - BQ27426 = 25, - BQ27441 = 26, - BQ27621 = 27, - BQ27Z561 = 28, - BQ28Z610 = 29, - BQ34Z100 = 30, - BQ78Z100 = 31, +struct uniphier_tm_soc_data { + u32 map_base; + u32 block_base; + u32 tmod_setup_addr; }; -enum bq27xxx_reg_index { - BQ27XXX_REG_CTRL = 0, - BQ27XXX_REG_TEMP = 1, - BQ27XXX_REG_INT_TEMP = 2, - BQ27XXX_REG_VOLT = 3, - BQ27XXX_REG_AI = 4, - BQ27XXX_REG_FLAGS = 5, - BQ27XXX_REG_TTE = 6, - BQ27XXX_REG_TTF = 7, - BQ27XXX_REG_TTES = 8, - BQ27XXX_REG_TTECP = 9, - BQ27XXX_REG_NAC = 10, - BQ27XXX_REG_RC = 11, - BQ27XXX_REG_FCC = 12, - BQ27XXX_REG_CYCT = 13, - BQ27XXX_REG_AE = 14, - BQ27XXX_REG_SOC = 15, - BQ27XXX_REG_DCAP = 16, - BQ27XXX_REG_AP = 17, - BQ27XXX_DM_CTRL = 18, - BQ27XXX_DM_CLASS = 19, - BQ27XXX_DM_BLOCK = 20, - BQ27XXX_DM_DATA = 21, - BQ27XXX_DM_CKSUM = 22, - BQ27XXX_REG_MAX = 23, +struct uniphier_tm_dev { + struct regmap *regmap; + struct device *dev; + bool alert_en[3]; + struct thermal_zone_device *tz_dev; + const struct uniphier_tm_soc_data *data; +}; + +struct mtk_cpufreq_platform_data { + int min_volt_shift; + int max_volt_shift; + int proc_max_volt; + int sram_min_volt; + int sram_max_volt; + bool ccifreq_supported; +}; + +struct mtk_cpu_dvfs_info { + struct cpumask cpus; + struct device *cpu_dev; + struct device *cci_dev; + struct regulator *proc_reg; + struct regulator *sram_reg; + struct clk *cpu_clk; + struct clk *inter_clk; + struct list_head list_head; + int intermediate_voltage; + bool need_voltage_tracking; + int vproc_on_boot; + int pre_vproc; + struct mutex reg_lock; + struct notifier_block opp_nb; + unsigned int opp_cpu; + unsigned long current_freq; + const struct mtk_cpufreq_platform_data *soc_data; + int vtrack_max; + bool ccifreq_bound; +}; + +struct mmc_gpio { + struct gpio_desc *ro_gpio; + struct gpio_desc *cd_gpio; + irqreturn_t (*cd_gpio_isr)(int, void *); + char *ro_label; + char *cd_label; + u32 cd_debounce_delay_ms; + int cd_irq; +}; + +struct renesas_sdhi_quirks { + bool hs400_disabled; + bool hs400_4taps; + bool fixed_addr_mode; + bool dma_one_rx_only; + bool manual_tap_correction; + bool old_info1_layout; + u32 hs400_bad_taps; + const u8 (*hs400_calib_table)[32]; +}; + +struct tmio_mmc_host; + +struct tmio_mmc_data; + +struct tmio_mmc_dma_ops { + void (*start)(struct tmio_mmc_host *, struct mmc_data *); + void (*enable)(struct tmio_mmc_host *, bool); + void (*request)(struct tmio_mmc_host *, struct tmio_mmc_data *); + void (*release)(struct tmio_mmc_host *); + void (*abort)(struct tmio_mmc_host *); + void (*dataend)(struct tmio_mmc_host *); + void (*end)(struct tmio_mmc_host *); + bool (*dma_irq)(struct tmio_mmc_host *); +}; + +struct tmio_mmc_host { + void *ctl; + struct mmc_command *cmd; + struct mmc_request *mrq; + struct mmc_data *data; + struct mmc_host *mmc; + struct mmc_host_ops ops; + void (*set_pwr)(struct platform_device *, int); + struct scatterlist *sg_ptr; + struct scatterlist *sg_orig; + unsigned int sg_len; + unsigned int sg_off; + unsigned int bus_shift; + struct platform_device *pdev; + struct tmio_mmc_data *pdata; + bool dma_on; + struct dma_chan *chan_rx; + struct dma_chan *chan_tx; + struct tasklet_struct dma_issue; + struct scatterlist bounce_sg; + u8 *bounce_buf; + struct delayed_work delayed_reset_work; + struct work_struct done; + u32 sdcard_irq_mask; + u32 sdio_irq_mask; + unsigned int clk_cache; + u32 sdcard_irq_setbit_mask; + u32 sdcard_irq_mask_all; + spinlock_t lock; + unsigned long last_req_ts; + struct mutex ios_lock; + bool native_hotplug; + bool sdio_irq_enabled; + int (*clk_enable)(struct tmio_mmc_host *); + void (*set_clock)(struct tmio_mmc_host *, unsigned int); + void (*clk_disable)(struct tmio_mmc_host *); + int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); + int (*write16_hook)(struct tmio_mmc_host *, int); + void (*reset)(struct tmio_mmc_host *, bool); + bool (*check_retune)(struct tmio_mmc_host *, struct mmc_request *); + void (*fixup_request)(struct tmio_mmc_host *, struct mmc_request *); + unsigned int (*get_timeout_cycles)(struct tmio_mmc_host *); + const struct tmio_mmc_dma_ops *dma_ops; +}; + +struct tmio_mmc_data { + void *chan_priv_tx; + void *chan_priv_rx; + unsigned int hclk; + unsigned long capabilities; + unsigned long capabilities2; + unsigned long flags; + u32 ocr_mask; + dma_addr_t dma_rx_offset; + unsigned int max_blk_count; + unsigned short max_segs; + void (*set_pwr)(struct platform_device *, int); + void (*set_clk_div)(struct platform_device *, int); +}; + +struct renesas_sdhi_of_data; + +struct renesas_sdhi_of_data_with_quirks { + const struct renesas_sdhi_of_data *of_data; + const struct renesas_sdhi_quirks *quirks; +}; + +struct renesas_sdhi_scc; + +struct renesas_sdhi_of_data { + unsigned long tmio_flags; + u32 tmio_ocr_mask; + unsigned long capabilities; + unsigned long capabilities2; + enum dma_slave_buswidth dma_buswidth; + dma_addr_t dma_rx_offset; + unsigned int bus_shift; + int scc_offset; + struct renesas_sdhi_scc *taps; + int taps_num; + unsigned int max_blk_count; + unsigned short max_segs; + unsigned long sdhi_flags; +}; + +struct renesas_sdhi_scc { + unsigned long clk_rate; + u32 tap; + u32 tap_hs400_4tap; +}; + +enum renesas_sdhi_dma_cookie { + COOKIE_UNMAPPED___2 = 0, + COOKIE_PRE_MAPPED___2 = 1, + COOKIE_MAPPED___2 = 2, +}; + +struct renesas_sdhi_dma { + unsigned long end_flags; + enum dma_slave_buswidth dma_buswidth; + bool (*filter)(struct dma_chan *, void *); + void (*enable)(struct tmio_mmc_host *, bool); + struct completion dma_dataend; + struct tasklet_struct dma_complete; +}; + +struct renesas_sdhi { + struct clk *clk; + struct clk *clkh; + struct clk *clk_cd; + struct tmio_mmc_data mmc_data; + struct renesas_sdhi_dma dma_priv; + const struct renesas_sdhi_quirks *quirks; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_default; + struct pinctrl_state *pins_uhs; + void *scc_ctl; + u32 scc_tappos; + u32 scc_tappos_hs400; + const u8 *adjust_hs400_calib_table; + bool needs_adjust_hs400; + unsigned long taps[1]; + unsigned long smpcmp[1]; + unsigned int tap_num; + unsigned int tap_set; + struct reset_control *rstc; +}; + +enum xenon_variant { + XENON_A3700 = 0, + XENON_AP806 = 1, + XENON_AP807 = 2, + XENON_CP110 = 3, +}; + +struct xenon_emmc_phy_regs; + +struct xenon_priv { + unsigned char tuning_count; + u8 sdhc_id; + unsigned int init_card_type; + unsigned char bus_width; + unsigned char timing; + unsigned int clock; + struct clk *axi_clk; + int phy_type; + void *phy_params; + struct xenon_emmc_phy_regs *emmc_phy_regs; + bool restore_needed; + enum xenon_variant hw_version; +}; + +enum scpi_power_domain_state { + SCPI_PD_STATE_ON = 0, + SCPI_PD_STATE_OFF = 3, +}; + +struct scpi_pm_domain { + struct generic_pm_domain genpd; + struct scpi_ops *ops; + u32 domain; +}; + +struct scu_wakeup { + u32 mask; + u32 wakeup_src; + bool valid; +}; + +struct imx_sc_msg_irq_get_status { + struct imx_sc_rpc_msg hdr; + union { + struct { + u16 resource; + u8 group; + u8 reserved; + } req; + struct { + u32 status; + } resp; + } data; +}; + +struct imx_sc_msg_irq_enable { + struct imx_sc_rpc_msg hdr; + u32 mask; + u16 resource; + u8 group; + u8 enable; +}; + +struct rk_timer { + void *base; + void *ctrl; + struct clk *clk; + struct clk *pclk; + u32 freq; + int irq; +}; + +struct rk_clkevt { + struct clock_event_device ce; + struct rk_timer timer; + long: 64; + long: 64; + long: 64; +}; + +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; }; -enum { - POWER_SUPPLY_HEALTH_UNKNOWN = 0, - POWER_SUPPLY_HEALTH_GOOD = 1, - POWER_SUPPLY_HEALTH_OVERHEAT = 2, - POWER_SUPPLY_HEALTH_DEAD = 3, - POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4, - POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5, - POWER_SUPPLY_HEALTH_COLD = 6, - POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7, - POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8, - POWER_SUPPLY_HEALTH_OVERCURRENT = 9, - POWER_SUPPLY_HEALTH_CALIBRATION_REQUIRED = 10, - POWER_SUPPLY_HEALTH_WARM = 11, - POWER_SUPPLY_HEALTH_COOL = 12, - POWER_SUPPLY_HEALTH_HOT = 13, - POWER_SUPPLY_HEALTH_NO_BATTERY = 14, +enum arch_timer_erratum_match_type { + ate_match_dt = 0, + ate_match_local_cap_id = 1, + ate_match_acpi_oem_info = 2, }; -enum bq27xxx_dm_reg_id { - BQ27XXX_DM_DESIGN_CAPACITY = 0, - BQ27XXX_DM_DESIGN_ENERGY = 1, - BQ27XXX_DM_TERMINATE_VOLTAGE = 2, +struct arch_timer_erratum_workaround { + enum arch_timer_erratum_match_type match_type; + const void *id; + const char *desc; + u64 (*read_cntpct_el0)(); + u64 (*read_cntvct_el0)(); + int (*set_next_event_phys)(unsigned long, struct clock_event_device *); + int (*set_next_event_virt)(unsigned long, struct clock_event_device *); + bool disable_compat_vdso; }; -struct bq27xxx_device_info; +struct ate_acpi_oem_info { + char oem_id[7]; + char oem_table_id[9]; + u32 oem_revision; +}; -struct bq27xxx_access_methods { - int (*read)(struct bq27xxx_device_info *, u8, bool); - int (*write)(struct bq27xxx_device_info *, u8, int, bool); - int (*read_bulk)(struct bq27xxx_device_info *, u8, u8 *, int); - int (*write_bulk)(struct bq27xxx_device_info *, u8, u8 *, int); +struct arch_timer { + void *base; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct clock_event_device evt; }; -struct bq27xxx_reg_cache { - int temperature; - int time_to_empty; - int time_to_empty_avg; - int time_to_full; - int charge_full; - int cycle_count; - int capacity; - int energy; - int flags; - int health; +enum arch_timer_reg { + ARCH_TIMER_REG_CTRL = 0, + ARCH_TIMER_REG_CVAL = 1, }; -struct bq27xxx_device_info { - struct device *dev; - int id; - enum bq27xxx_chip chip; - u32 opts; - const char *name; - struct bq27xxx_dm_reg *dm_regs; - u32 unseal_key; - struct bq27xxx_access_methods bus; - struct bq27xxx_reg_cache cache; - int charge_design_full; - bool removed; - unsigned long last_update; - union power_supply_propval last_status; - struct delayed_work work; - struct power_supply *bat; - struct list_head list; - struct mutex lock; - u8 *regs; +enum cpu_pm_event { + CPU_PM_ENTER = 0, + CPU_PM_ENTER_FAILED = 1, + CPU_PM_EXIT = 2, + CPU_CLUSTER_PM_ENTER = 3, + CPU_CLUSTER_PM_ENTER_FAILED = 4, + CPU_CLUSTER_PM_EXIT = 5, }; -struct bq27xxx_dm_buf { - u8 class; - u8 block; - u8 data[32]; - bool has_data; - bool dirty; +enum arch_timer_spi_nr { + ARCH_TIMER_PHYS_SPI = 0, + ARCH_TIMER_VIRT_SPI = 1, + ARCH_TIMER_MAX_TIMER_SPI = 2, }; -struct sp805_wdt { - struct watchdog_device wdd; - spinlock_t lock; - void *base; - struct clk *clk; - u64 rate; - struct amba_device *adev; - unsigned int load_val; +typedef bool (*ate_match_fn_t)(const struct arch_timer_erratum_workaround *, const void *); + +struct alias_prop { + struct list_head link; + const char *alias; + struct device_node *np; + int id; + char stem[0]; }; -struct mtk_cpufreq_platform_data { - int min_volt_shift; - int max_volt_shift; - int proc_max_volt; - int sram_min_volt; - int sram_max_volt; - bool ccifreq_supported; +struct rproc_dump_segment { + struct list_head node; + dma_addr_t da; + size_t size; + void *priv; + void (*dump)(struct rproc *, struct rproc_dump_segment *, void *, size_t, size_t); + loff_t offset; }; -enum dev_pm_opp_event { - OPP_EVENT_ADD = 0, - OPP_EVENT_REMOVE = 1, - OPP_EVENT_ENABLE = 2, - OPP_EVENT_DISABLE = 3, - OPP_EVENT_ADJUST_VOLTAGE = 4, +struct rproc_coredump_state { + struct rproc *rproc; + void *header; + struct completion dump_done; }; -struct mtk_cpu_dvfs_info { - struct cpumask cpus; - struct device *cpu_dev; - struct device *cci_dev; - struct regulator *proc_reg; - struct regulator *sram_reg; - struct clk *cpu_clk; - struct clk *inter_clk; - struct list_head list_head; - int intermediate_voltage; - bool need_voltage_tracking; - int vproc_on_boot; - int pre_vproc; - struct mutex reg_lock; - struct notifier_block opp_nb; - unsigned int opp_cpu; - unsigned long current_freq; - const struct mtk_cpufreq_platform_data *soc_data; - int vtrack_max; - bool ccifreq_bound; +enum mtk_smi_type { + MTK_SMI_GEN1 = 0, + MTK_SMI_GEN2 = 1, + MTK_SMI_GEN2_SUB_COMM = 2, }; -struct sdmmc_dlyb; +struct mtk_smi_reg_pair; -struct sdmmc_tuning_ops { - int (*dlyb_enable)(struct sdmmc_dlyb *); - void (*set_input_ck)(struct sdmmc_dlyb *); - int (*tuning_prepare)(struct mmci_host *); - int (*set_cfg)(struct sdmmc_dlyb *, int, int, bool); +struct mtk_smi_common_plat { + enum mtk_smi_type type; + bool has_gals; + u32 bus_sel; + const struct mtk_smi_reg_pair *init; }; -struct sdmmc_dlyb { - void *base; - u32 unit; - u32 max; - struct sdmmc_tuning_ops *ops; +struct mtk_smi_reg_pair { + unsigned int offset; + u32 value; }; -struct sdmmc_lli_desc { - u32 idmalar; - u32 idmabase; - u32 idmasize; +struct mtk_smi_larb_gen { + int port_in_larb[33]; + int (*config_port)(struct device *); + unsigned int larb_direct_to_common_mask; + unsigned int flags_general; + const u8 (*ostd)[32]; }; -struct sdmmc_idma { - dma_addr_t sg_dma; - void *sg_cpu; - dma_addr_t bounce_dma_addr; - void *bounce_buf; - bool use_bounce_buffer; +enum iommu_atf_cmd { + IOMMU_ATF_CMD_CONFIG_SMI_LARB = 0, + IOMMU_ATF_CMD_CONFIG_INFRA_IOMMU = 1, + IOMMU_ATF_CMD_MAX = 2, }; -struct brcmstb_match_priv { - void (*hs400es)(struct mmc_host *, struct mmc_ios *); - struct sdhci_ops *ops; - const unsigned int flags; +struct mtk_smi { + struct device *dev; + unsigned int clk_num; + struct clk_bulk_data clks[4]; + struct clk *clk_async; + union { + void *smi_ao_base; + void *base; + }; + struct device *smi_common_dev; + const struct mtk_smi_common_plat *plat; }; -struct sdhci_brcmstb_priv { - void *cfg_regs; - unsigned int flags; - struct clk *base_clk; - u32 base_freq_hz; +struct mtk_smi_larb { + struct mtk_smi smi; + void *base; + struct device *smi_common_dev; + const struct mtk_smi_larb_gen *larb_gen; + int larbid; + u32 *mmu; + unsigned char *bank; }; -struct simplefb_platform_data { - u32 width; - u32 height; - u32 stride; - const char *format; +struct mtk_smi_larb_iommu { + struct device *dev; + unsigned int mmu; + unsigned char bank[32]; }; -struct hid_usage_entry { - unsigned int page; - unsigned int usage; - const char *description; +struct tee_device { + char name[32]; + const struct tee_desc *desc; + int id; + unsigned int flags; + struct device dev; + struct cdev cdev; + size_t num_users; + struct completion c_no_users; + struct mutex mutex; + struct idr idr; + struct tee_shm_pool *pool; }; -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 tee_ioctl_buf_data { + __u64 buf_ptr; + __u64 buf_len; }; -struct iio_demux_table { - unsigned int from; - unsigned int to; - unsigned int length; - struct list_head l; +struct tee_ioctl_shm_register_data { + __u64 addr; + __u64 length; + __u32 flags; + __s32 id; }; -struct iio_device_config { - unsigned int mode; - unsigned int watermark; - const unsigned long *scan_mask; - unsigned int scan_bytes; - bool scan_timestamp; +struct tee_iocl_supp_recv_arg { + __u32 func; + __u32 num_params; + struct tee_ioctl_param params[0]; }; -struct notif_entry { - struct list_head link; - struct completion c; - u_int key; +struct tee_iocl_supp_send_arg { + __u32 ret; + __u32 num_params; + struct tee_ioctl_param params[0]; }; -struct seg6_pernet_data { - struct mutex lock; - struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src; +struct tee_ioctl_close_session_arg { + __u32 session; }; -struct bpf_dispatcher_prog { - struct bpf_prog *prog; - refcount_t users; +struct tee_ioctl_cancel_arg { + __u32 cancel_id; + __u32 session; }; -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 tee_ioctl_shm_alloc_data { + __u64 size; + __u32 flags; + __s32 id; }; -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); +struct match_dev_data { + struct tee_ioctl_version_data *vers; + const void *data; + int (*match)(struct tee_ioctl_version_data *, const void *); }; -struct bpf_scratchpad { +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 { - __be32 diff[128]; - u8 buff[512]; + __u32 ee_data; + struct sock_ee_data_rfc4884 ee_rfc4884; }; }; -enum { - BPF_F_NEIGH = 2, - BPF_F_PEER = 4, - BPF_F_NEXTHOP = 8, +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; }; -enum { - BPF_F_RECOMPUTE_CSUM = 1, - BPF_F_INVALIDATE_HASH = 2, +struct compat_mmsghdr { + struct compat_msghdr msg_hdr; + compat_uint_t msg_len; }; -enum bpf_hdr_start_off { - BPF_HDR_START_MAC = 0, - BPF_HDR_START_NET = 1, +struct compat_ifmap { + compat_ulong_t mem_start; + compat_ulong_t mem_end; + unsigned short base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; }; -enum { - BPF_F_HDR_FIELD_MASK = 15, +struct compat_if_settings { + unsigned int type; + unsigned int size; + compat_uptr_t ifs_ifsu; }; -enum { - BPF_F_PSEUDO_HDR = 16, - BPF_F_MARK_MANGLED_0 = 32, - BPF_F_MARK_ENFORCE = 64, +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; }; -enum { - BPF_CSUM_LEVEL_QUERY = 0, - BPF_CSUM_LEVEL_INC = 1, - BPF_CSUM_LEVEL_DEC = 2, - BPF_CSUM_LEVEL_RESET = 3, +struct mmsghdr { + struct user_msghdr msg_hdr; + unsigned int msg_len; }; -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, +struct __kernel_old_timespec { + __kernel_old_time_t tv_sec; + long tv_nsec; }; -enum { - BPF_ADJ_ROOM_ENCAP_L2_MASK = 255, - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56, +struct __kernel_sock_timeval { + __s64 tv_sec; + __s64 tv_usec; }; -enum bpf_adj_room_mode { - BPF_ADJ_ROOM_NET = 0, - BPF_ADJ_ROOM_MAC = 1, +struct scm_ts_pktinfo { + __u32 if_index; + __u32 pkt_length; + __u32 reserved[2]; }; -enum { - BPF_F_INDEX_MASK = 4294967295ULL, - BPF_F_CURRENT_CPU = 4294967295ULL, - BPF_F_CTXLEN_MASK = 4503595332403200ULL, +struct scm_timestamping_internal { + struct timespec64 ts[3]; }; -enum { - BPF_F_TUNINFO_IPV6 = 1, +struct used_address { + struct __kernel_sockaddr_storage name; + unsigned int name_len; }; -enum { - BPF_F_TUNINFO_FLAGS = 16, +struct ifconf { + int ifc_len; + union { + char __attribute__((btf_type_tag("user"))) *ifcu_buf; + struct ifreq __attribute__((btf_type_tag("user"))) *ifcu_req; + } ifc_ifcu; }; -enum { - BPF_F_ZERO_CSUM_TX = 2, - BPF_F_DONT_FRAGMENT = 4, - BPF_F_SEQ_NUMBER = 8, - BPF_F_NO_TUNNEL_KEY = 16, +struct gro_cell { + struct sk_buff_head napi_skbs; + struct napi_struct napi; }; -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, +struct percpu_free_defer { + struct callback_head rcu; + void __attribute__((btf_type_tag("percpu"))) *ptr; }; -enum { - BPF_FIB_LOOKUP_DIRECT = 1, - BPF_FIB_LOOKUP_OUTPUT = 2, - BPF_FIB_LOOKUP_SKIP_NEIGH = 4, - BPF_FIB_LOOKUP_TBID = 8, +struct gro_cells { + struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells; }; -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 offload_act_command { + FLOW_ACT_REPLACE = 0, + FLOW_ACT_DESTROY = 1, + FLOW_ACT_STATS = 2, }; -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 { + TCA_ROOT_UNSPEC = 0, + TCA_ROOT_TAB = 1, + TCA_ROOT_FLAGS = 2, + TCA_ROOT_COUNT = 3, + TCA_ROOT_TIME_DELTA = 4, + TCA_ROOT_EXT_WARN_MSG = 5, + __TCA_ROOT_MAX = 6, }; -enum bpf_check_mtu_flags { - BPF_MTU_CHK_SEGS = 1, +struct tc_act_pernet_id { + struct list_head list; + unsigned int id; }; -enum bpf_lwt_encap_mode { - BPF_LWT_ENCAP_SEG6 = 0, - BPF_LWT_ENCAP_SEG6_INLINE = 1, - BPF_LWT_ENCAP_IP = 2, +struct tcamsg { + unsigned char tca_family; + unsigned char tca__pad1; + unsigned short tca__pad2; }; -enum { - BPF_LOAD_HDR_OPT_TCP_SYN = 1, +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; }; -enum { - BPF_SKB_TSTAMP_UNSPEC = 0, - BPF_SKB_TSTAMP_DELIVERY_MONO = 1, +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 tc_action_net { + struct tcf_idrinfo *idrinfo; + const struct tc_action_ops *ops; }; enum { - BPF_SK_LOOKUP_F_REPLACE = 1, - BPF_SK_LOOKUP_F_NO_REUSEPORT = 2, + 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, }; -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); +struct module_reply_data { + struct ethnl_reply_data base; + struct ethtool_module_power_mode_params power; +}; -typedef u64 (*btf_bpf_skb_load_helper_8)(const struct sk_buff *, const void *, int, int); +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, +}; -typedef u64 (*btf_bpf_skb_load_helper_8_no_cache)(const struct sk_buff *, int); +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, +}; -typedef u64 (*btf_bpf_skb_load_helper_16)(const struct sk_buff *, const void *, int, int); +enum tcp_ca_ack_event_flags { + CA_ACK_SLOWPATH = 1, + CA_ACK_WIN_UPDATE = 2, + CA_ACK_ECE = 4, +}; -typedef u64 (*btf_bpf_skb_load_helper_16_no_cache)(const struct sk_buff *, int); +enum tcp_queue { + TCP_FRAG_IN_WRITE_QUEUE = 0, + TCP_FRAG_IN_RTX_QUEUE = 1, +}; -typedef u64 (*btf_bpf_skb_load_helper_32)(const struct sk_buff *, const void *, int, int); +enum { + SCM_TSTAMP_SND = 0, + SCM_TSTAMP_SCHED = 1, + SCM_TSTAMP_ACK = 2, +}; -typedef u64 (*btf_bpf_skb_load_helper_32_no_cache)(const struct sk_buff *, int); +union tcp_word_hdr { + struct tcphdr hdr; + __be32 words[5]; +}; -typedef u64 (*btf_bpf_skb_store_bytes)(struct sk_buff *, u32, const void *, u32, u64); +struct tcp_sack_block_wire { + __be32 start_seq; + __be32 end_seq; +}; -typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32); +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; +}; -typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32); +typedef void ip6_icmp_send_t(struct sk_buff *, u8, u8, __u32, const struct in6_addr *, const struct inet6_skb_parm *); -typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32); +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, +}; -typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32); +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, +}; -typedef u64 (*btf_bpf_sk_fullsock)(struct sock *); +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, +}; -typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32); +union nf_inet_addr { + __u32 all[4]; + __be32 ip; + __be32 ip6[4]; + struct in_addr in; + struct in6_addr in6; +}; -typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64); +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 u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64); +typedef u16 u_int16_t; -typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum); +struct nf_conntrack_man { + union nf_inet_addr u3; + union nf_conntrack_man_proto u; + u_int16_t l3num; +}; -typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum); +struct nf_conntrack_tuple { + struct nf_conntrack_man src; + struct { + union nf_inet_addr u3; + union { + __be16 all; + struct { + __be16 port; + } tcp; + struct { + __be16 port; + } udp; + struct { + u_int8_t type; + u_int8_t code; + } icmp; + struct { + __be16 port; + } dccp; + struct { + __be16 port; + } sctp; + struct { + __be16 key; + } gre; + } u; + u_int8_t protonum; + struct {} __nfct_hash_offsetend; + u_int8_t dir; + } dst; +}; -typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64); +struct nf_conntrack_tuple_hash { + struct hlist_nulls_node hnnode; + struct nf_conntrack_tuple tuple; +}; -typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64); +typedef u64 u_int64_t; -typedef u64 (*btf_bpf_redirect)(u32, u64); +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; +}; -typedef u64 (*btf_bpf_redirect_peer)(u32, u64); +struct ip_ct_sctp { + enum sctp_conntrack state; + __be32 vtag[2]; + u8 init[2]; + u8 last_dir; + u8 flags; +}; -struct bpf_redir_neigh; +typedef u32 u_int32_t; -typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64); +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 bpf_redir_neigh { - __u32 nh_family; - union { - __be32 ipv4_nh; - __u32 ipv6_nh[4]; - }; +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; }; -typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32); +struct nf_ct_udp { + unsigned long stream_ts; +}; -typedef u64 (*btf_bpf_msg_cork_bytes)(struct sk_msg *, u32); +struct nf_ct_gre { + unsigned int stream_timeout; + unsigned int timeout; +}; -typedef u64 (*btf_bpf_msg_pull_data)(struct sk_msg *, u32, u32, u64); +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; +}; -typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64); +struct nf_ct_ext; -typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64); +struct nf_conn { + struct nf_conntrack ct_general; + spinlock_t lock; + u32 timeout; + struct nf_conntrack_tuple_hash tuplehash[2]; + unsigned long status; + possible_net_t ct_net; + struct hlist_node nat_bysource; + struct {} __nfct_init_offset; + struct nf_conn *master; + struct nf_ct_ext *ext; + union nf_conntrack_proto proto; +}; -typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *); +enum devlink_dpipe_match_type { + DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0, +}; -typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *); +enum devlink_dpipe_action_type { + DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0, +}; -typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *); +struct devlink_dpipe_table_ops; -typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *); +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; +}; -typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32); +struct devlink_dpipe_dump_ctx; -typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16); +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 *); +}; -typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *); +struct devlink_dpipe_dump_ctx { + struct genl_info *info; + enum devlink_command cmd; + struct sk_buff *skb; + struct nlattr *nest; + void *hdr; +}; -typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64); +struct devlink_dpipe_value; -typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32); +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; +}; -typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64); +struct devlink_dpipe_action; -typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64); +struct devlink_dpipe_match; -typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64); +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; +}; -typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64); +struct devlink_dpipe_action { + enum devlink_dpipe_action_type type; + unsigned int header_index; + struct devlink_dpipe_header *header; + unsigned int field_id; +}; -typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64); +struct devlink_dpipe_match { + enum devlink_dpipe_match_type type; + unsigned int header_index; + struct devlink_dpipe_header *header; + unsigned int field_id; +}; -typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64); +struct svc_xpt_user { + struct list_head list; + void (*callback)(struct svc_xpt_user *); +}; -typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *); +struct wchan_info { + unsigned long pc; + int count; +}; -typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int); +struct kvm_stats_header { + __u32 flags; + __u32 name_size; + __u32 num_desc; + __u32 id_offset; + __u32 desc_offset; + __u32 data_offset; +}; -typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32); +struct sve_state_reg_region { + unsigned int koffset; + unsigned int klen; + unsigned int upad; +}; -typedef u64 (*btf_bpf_xdp_store_bytes)(struct xdp_buff *, u32, void *, u32); +typedef u64 hfn_t; -typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int); +typedef hfn_t kvm_pfn_t; -typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int); +struct kvm_regs { + struct user_pt_regs regs; + __u64 sp_el1; + __u64 elr_el1; + __u64 spsr[5]; + long: 64; + struct user_fpsimd_state fp_regs; +}; -typedef u64 (*btf_bpf_xdp_redirect)(u32, u64); +struct kvm_sregs {}; -typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64); +struct kvm_vcpu_events { + struct { + __u8 serror_pending; + __u8 serror_has_esr; + __u8 ext_dabt_pending; + __u8 pad[5]; + __u64 serror_esr; + } exception; + __u32 reserved[12]; +}; -typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64); +struct kvm_fpu {}; -struct bpf_tunnel_key; +struct kvm_translation { + __u64 linear_address; + __u64 physical_address; + __u8 valid; + __u8 writeable; + __u8 usermode; + __u8 pad[5]; +}; -typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64); +struct kvm_guest_debug { + __u32 control; + __u32 pad; + struct kvm_guest_debug_arch arch; +}; -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]; - }; +struct kvm_arm_copy_mte_tags { + __u64 guest_ipa; + __u64 length; + void __attribute__((btf_type_tag("user"))) *addr; + __u64 flags; + __u64 reserved[2]; }; -typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32); +struct sha1_state { + u32 state[5]; + u64 count; + u8 buffer[64]; +}; -typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64); +struct sha1_ce_state { + struct sha1_state sst; + u32 finalize; +}; -typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32); +typedef void sha1_block_fn(struct sha1_state *, const u8 *, int); -typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32); +struct user_event_mm { + struct list_head mms_link; + struct list_head enablers; + struct mm_struct *mm; + struct user_event_mm *next; + refcount_t refcnt; + refcount_t tasks; + struct rcu_work put_rwork; +}; -typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *); +struct waitid_info; -typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int); +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; +}; -typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *); +struct waitid_info { + pid_t pid; + uid_t uid; + int status; + int cause; +}; -typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int); +struct pm_vt_switch { + struct list_head head; + struct device *dev; + bool required; +}; -typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64); +enum { + IRQ_STARTUP_NORMAL = 0, + IRQ_STARTUP_MANAGED = 1, + IRQ_STARTUP_ABORT = 2, +}; -typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *); +typedef void (*btf_trace_rcu_utilization)(void *, const char *); -typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); +typedef void (*btf_trace_rcu_grace_period)(void *, const char *, unsigned long, const char *); -typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *); +typedef void (*btf_trace_rcu_future_grace_period)(void *, const char *, unsigned long, unsigned long, u8, int, int, const char *); -typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *); +typedef void (*btf_trace_rcu_grace_period_init)(void *, const char *, unsigned long, u8, int, int, unsigned long); -typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *); +typedef void (*btf_trace_rcu_exp_grace_period)(void *, const char *, unsigned long, const char *); -typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *); +typedef void (*btf_trace_rcu_exp_funnel_lock)(void *, const char *, u8, int, int, const char *); -typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *); +typedef void (*btf_trace_rcu_preempt_task)(void *, const char *, int, unsigned long); -typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *); +typedef void (*btf_trace_rcu_unlock_preempted_task)(void *, const char *, unsigned long, int); -typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); +typedef void (*btf_trace_rcu_quiescent_state_report)(void *, const char *, unsigned long, unsigned long, unsigned long, u8, int, int, int); -typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); +typedef void (*btf_trace_rcu_fqs)(void *, const char *, unsigned long, int, const char *); -typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); +typedef void (*btf_trace_rcu_stall_warning)(void *, const char *, const char *); -typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); +typedef void (*btf_trace_rcu_dyntick)(void *, const char *, long, long, int); -typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int); +typedef void (*btf_trace_rcu_callback)(void *, const char *, struct callback_head *, long); -typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int); +typedef void (*btf_trace_rcu_segcb_stats)(void *, struct rcu_segcblist *, const char *); -typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); +typedef void (*btf_trace_rcu_kvfree_callback)(void *, const char *, struct callback_head *, unsigned long, long); -typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); +typedef void (*btf_trace_rcu_batch_start)(void *, const char *, long, long); -typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); +typedef void (*btf_trace_rcu_invoke_callback)(void *, const char *, struct callback_head *); -typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); +typedef void (*btf_trace_rcu_invoke_kvfree_callback)(void *, const char *, struct callback_head *, unsigned long); -typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int); +typedef void (*btf_trace_rcu_invoke_kfree_bulk_callback)(void *, const char *, unsigned long, void **); -typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int); +typedef void (*btf_trace_rcu_batch_end)(void *, const char *, int, char, char, char, char); -struct bpf_fib_lookup; +typedef void (*btf_trace_rcu_torture_read)(void *, const char *, struct callback_head *, unsigned long, unsigned long, unsigned long); -typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32); +typedef void (*btf_trace_rcu_barrier)(void *, const char *, const char *, int, int, unsigned long); -struct bpf_fib_lookup { - __u8 family; - __u8 l4_protocol; - __be16 sport; - __be16 dport; - union { - __u16 tot_len; - __u16 mtu_result; - }; - __u32 ifindex; - union { - __u8 tos; - __be32 flowinfo; - __u32 rt_metric; - }; - union { - __be32 ipv4_src; - __u32 ipv6_src[4]; - }; - union { - __be32 ipv4_dst; - __u32 ipv6_dst[4]; - }; - union { - struct { - __be16 h_vlan_proto; - __be16 h_vlan_TCI; - }; - __u32 tbid; - }; - __u8 smac[6]; - __u8 dmac[6]; -}; +struct rcu_tasks; -typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32); +typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *); -typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64); +typedef void (*pregp_func_t)(struct list_head *); -typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64); +typedef void (*pertask_func_t)(struct task_struct *, struct list_head *); -typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32); +typedef void (*postscan_func_t)(struct list_head *); -typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32); +typedef void (*holdouts_func_t)(struct list_head *, bool, bool *); -struct bpf_sock_tuple; +typedef void (*postgp_func_t)(struct rcu_tasks *); -typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t); -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 rcu_tasks_percpu; + +struct rcu_tasks { + struct rcuwait cbs_wait; + raw_spinlock_t cbs_gbl_lock; + struct mutex tasks_gp_mutex; + int gp_state; + int gp_sleep; + int init_fract; + unsigned long gp_jiffies; + unsigned long gp_start; + unsigned long tasks_gp_seq; + unsigned long n_ipis; + unsigned long n_ipis_fails; + struct task_struct *kthread_ptr; + unsigned long lazy_jiffies; + rcu_tasks_gp_func_t gp_func; + pregp_func_t pregp_func; + pertask_func_t pertask_func; + postscan_func_t postscan_func; + holdouts_func_t holdouts_func; + postgp_func_t postgp_func; + call_rcu_func_t call_func; + struct rcu_tasks_percpu __attribute__((btf_type_tag("percpu"))) *rtpcpu; + int percpu_enqueue_shift; + int percpu_enqueue_lim; + int percpu_dequeue_lim; + unsigned long percpu_dequeue_gpseq; + struct mutex barrier_q_mutex; + atomic_t barrier_q_count; + struct completion barrier_q_completion; + unsigned long barrier_q_seq; + char *name; + char *kname; }; -typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +struct rcu_tasks_percpu { + struct rcu_segcblist cblist; + raw_spinlock_t lock; + unsigned long rtp_jiffies; + unsigned long rtp_n_lock_retries; + struct timer_list lazy_timer; + unsigned int urgent_gp; + struct work_struct rtp_work; + struct irq_work rtp_irq_work; + struct callback_head barrier_q_head; + struct list_head rtp_blkd_tasks; + int cpu; + struct rcu_tasks *rtpp; +}; -typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +struct rcu_synchronize { + struct callback_head head; + struct completion completion; +}; -typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +struct trace_event_raw_rcu_utilization { + struct trace_entry ent; + const char *s; + char __data[0]; +}; -typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +struct trace_event_raw_rcu_grace_period { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + const char *gpevent; + char __data[0]; +}; -typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +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]; +}; -typedef u64 (*btf_bpf_sk_release)(struct sock *); +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]; +}; -typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); +struct trace_event_raw_rcu_exp_grace_period { + struct trace_entry ent; + const char *rcuname; + long gpseq; + const char *gpevent; + char __data[0]; +}; -typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); +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]; +}; -typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); +struct trace_event_raw_rcu_preempt_task { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + int pid; + char __data[0]; +}; -typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); +struct trace_event_raw_rcu_unlock_preempted_task { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + int pid; + char __data[0]; +}; -typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); +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]; +}; -typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); +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 bpf_tcp_sock { - __u32 snd_cwnd; - __u32 srtt_us; - __u32 rtt_min; - __u32 snd_ssthresh; - __u32 rcv_nxt; - __u32 snd_nxt; - __u32 snd_una; - __u32 mss_cache; - __u32 ecn_flags; - __u32 rate_delivered; - __u32 rate_interval_us; - __u32 packets_out; - __u32 retrans_out; - __u32 total_retrans; - __u32 segs_in; - __u32 data_segs_in; - __u32 segs_out; - __u32 data_segs_out; - __u32 lost_out; - __u32 sacked_out; - __u64 bytes_received; - __u64 bytes_acked; - __u32 dsack_dups; - __u32 delivered; - __u32 delivered_ce; - __u32 icsk_retransmits; +struct trace_event_raw_rcu_stall_warning { + struct trace_entry ent; + const char *rcuname; + const char *msg; + char __data[0]; }; -typedef u64 (*btf_bpf_tcp_sock)(struct sock *); +struct trace_event_raw_rcu_dyntick { + struct trace_entry ent; + const char *polarity; + long oldnesting; + long newnesting; + int dynticks; + char __data[0]; +}; -typedef u64 (*btf_bpf_get_listener_sock)(struct sock *); +struct trace_event_raw_rcu_callback { + struct trace_entry ent; + const char *rcuname; + void *rhp; + void *func; + long qlen; + char __data[0]; +}; -typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *); +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]; +}; -typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); +struct trace_event_raw_rcu_kvfree_callback { + struct trace_entry ent; + const char *rcuname; + void *rhp; + unsigned long offset; + long qlen; + char __data[0]; +}; -typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); +struct trace_event_raw_rcu_batch_start { + struct trace_entry ent; + const char *rcuname; + long qlen; + long blimit; + char __data[0]; +}; -typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64); +struct trace_event_raw_rcu_invoke_callback { + struct trace_entry ent; + const char *rcuname; + void *rhp; + void *func; + char __data[0]; +}; -typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64); +struct trace_event_raw_rcu_invoke_kvfree_callback { + struct trace_entry ent; + const char *rcuname; + void *rhp; + unsigned long offset; + char __data[0]; +}; -typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64); +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]; +}; -typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64); +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]; +}; -typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32); +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]; +}; -typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32); +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]; +}; -typedef u64 (*btf_sk_reuseport_load_bytes)(const struct sk_reuseport_kern *, u32, void *, u32); +struct trc_stall_chk_rdr { + int nesting; + int ipi_to_cpu; + u8 needqs; +}; -typedef u64 (*btf_sk_reuseport_load_bytes_relative)(const struct sk_reuseport_kern *, u32, void *, u32, u32); +struct trace_event_data_offsets_rcu_utilization {}; -typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, u64); +struct trace_event_data_offsets_rcu_grace_period {}; -typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *); +struct trace_event_data_offsets_rcu_future_grace_period {}; -typedef u64 (*btf_bpf_skc_to_tcp_sock)(struct sock *); +struct trace_event_data_offsets_rcu_grace_period_init {}; -typedef u64 (*btf_bpf_skc_to_tcp_timewait_sock)(struct sock *); +struct trace_event_data_offsets_rcu_exp_grace_period {}; -typedef u64 (*btf_bpf_skc_to_tcp_request_sock)(struct sock *); +struct trace_event_data_offsets_rcu_exp_funnel_lock {}; -typedef u64 (*btf_bpf_skc_to_udp6_sock)(struct sock *); +struct trace_event_data_offsets_rcu_preempt_task {}; -typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *); +struct trace_event_data_offsets_rcu_unlock_preempted_task {}; -typedef u64 (*btf_bpf_skc_to_mptcp_sock)(struct sock *); +struct trace_event_data_offsets_rcu_quiescent_state_report {}; -typedef u64 (*btf_bpf_sock_from_file)(struct file *); +struct trace_event_data_offsets_rcu_fqs {}; -struct tcp6_sock { - struct tcp_sock tcp; - struct ipv6_pinfo inet6; -}; +struct trace_event_data_offsets_rcu_stall_warning {}; -struct udp6_sock { - struct udp_sock udp; - struct ipv6_pinfo inet6; - long: 64; - long: 64; - long: 64; - long: 64; -}; +struct trace_event_data_offsets_rcu_dyntick {}; -struct mptcp_sock {}; +struct trace_event_data_offsets_rcu_callback {}; -typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long); +struct trace_event_data_offsets_rcu_segcb_stats {}; -struct compat_sock_fprog { - u16 len; - compat_uptr_t filter; -}; +struct trace_event_data_offsets_rcu_kvfree_callback {}; -typedef u16 u_int16_t; +struct trace_event_data_offsets_rcu_batch_start {}; -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 trace_event_data_offsets_rcu_invoke_callback {}; -struct nf_log_buf { - unsigned int count; - char buf[1020]; -}; +struct trace_event_data_offsets_rcu_invoke_kvfree_callback {}; -typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); +struct trace_event_data_offsets_rcu_invoke_kfree_bulk_callback {}; -typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); +struct trace_event_data_offsets_rcu_batch_end {}; -typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); +struct trace_event_data_offsets_rcu_torture_read {}; -struct rpc_filelist { - const char *name; - const struct file_operations *i_fop; - umode_t mode; +struct trace_event_data_offsets_rcu_barrier {}; + +enum freezer_state_flags { + CGROUP_FREEZER_ONLINE = 1, + CGROUP_FREEZING_SELF = 2, + CGROUP_FREEZING_PARENT = 4, + CGROUP_FROZEN = 8, + CGROUP_FREEZING = 6, }; -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, +struct freezer { + struct cgroup_subsys_state css; + unsigned int state; }; -enum { - RPCAUTH_info = 0, - RPCAUTH_EOF = 1, +struct tp_transition_snapshot { + unsigned long rcu; + unsigned long srcu; + bool ongoing; }; -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, +enum tp_func_state { + TP_FUNC_0 = 0, + TP_FUNC_1 = 1, + TP_FUNC_2 = 2, + TP_FUNC_N = 3, }; -enum { - RPC_PIPEFS_MOUNT = 0, - RPC_PIPEFS_UMOUNT = 1, +enum tp_transition_sync { + TP_TRANSITION_SYNC_1_0_1 = 0, + TP_TRANSITION_SYNC_N_2_1 = 1, + _NR_TP_TRANSITION_SYNC = 2, }; -struct xsk_dma_map { - dma_addr_t *dma_pages; - struct device *dev; - struct net_device *netdev; - refcount_t users; +struct tp_module { struct list_head list; - u32 dma_pages_cnt; - bool dma_need_sync; + struct module *mod; }; -struct xdp_umem_ring { - struct xdp_ring ptrs; - u64 desc[0]; +struct tp_probes { + struct callback_head rcu; + struct tracepoint_func probes[0]; }; -struct mpidr_hash { - u64 mask; - u32 shift_aff[4]; - u32 bits; -}; +struct tracer_stat; -struct kvm_s390_adapter_int { - u64 ind_addr; - u64 summary_addr; - u64 ind_offset; - u32 summary_offset; - u32 adapter_id; +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 kvm_hv_sint { - u32 vcpu; - u32 sint; +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 kvm_xen_evtchn { - u32 port; - u32 vcpu_id; - int vcpu_idx; - u32 priority; +struct stat_node { + struct rb_node node; + void *stat; }; -struct kvm_kernel_irq_routing_entry { - u32 gsi; - u32 type; - int (*set)(struct kvm_kernel_irq_routing_entry *, struct kvm___2 *, int, int, bool); - union { - struct { - unsigned int irqchip; - unsigned int pin; - } irqchip; - struct { - u32 address_lo; - u32 address_hi; - u32 data; - u32 flags; - u32 devid; - } msi; - struct kvm_s390_adapter_int adapter; - struct kvm_hv_sint hv_sint; - struct kvm_xen_evtchn xen_evtchn; - }; - struct hlist_node link; -}; +typedef void (*btf_trace_error_report_end)(void *, enum error_detector, unsigned long); -enum exception_type { - except_type_sync = 0, - except_type_irq = 128, - except_type_fiq = 256, - except_type_serror = 384, +struct trace_event_raw_error_report_template { + struct trace_entry ent; + enum error_detector error_detector; + unsigned long id; + char __data[0]; }; -enum { - IRQTF_RUNTHREAD = 0, - IRQTF_WARNED = 1, - IRQTF_AFFINITY = 2, - IRQTF_FORCED_THREAD = 3, - IRQTF_READY = 4, -}; +struct trace_event_data_offsets_error_report_template {}; -struct posix_clock_desc { - struct file *fp; - struct posix_clock *clk; +struct bpf_iter__bpf_prog { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_prog *prog; + }; }; -struct auditd_connection { - struct pid *pid; - u32 portid; - struct net *net; - struct callback_head rcu; +struct bpf_iter_seq_prog_info { + u32 prog_id; }; -struct audit_ctl_mutex { - struct mutex lock; - void *owner; +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 audit_features { - __u32 vers; - __u32 mask; - __u32 features; - __u32 lock; +struct uprobe { + struct rb_node rb_node; + refcount_t ref; + struct rw_semaphore register_rwsem; + struct rw_semaphore consumer_rwsem; + struct list_head pending_list; + struct uprobe_consumer *consumers; + struct inode *inode; + loff_t offset; + loff_t ref_ctr_offset; + unsigned long flags; + struct arch_uprobe arch; }; -enum audit_nlgrps { - AUDIT_NLGRP_NONE = 0, - AUDIT_NLGRP_READLOG = 1, - __AUDIT_NLGRP_MAX = 2, -}; +typedef __le32 uprobe_opcode_t; -struct audit_reply { - __u32 portid; - struct net *net; - struct sk_buff *skb; +struct delayed_uprobe { + struct list_head list; + struct uprobe *uprobe; + struct mm_struct *mm; }; -struct audit_net { - struct sock *sk; +struct __uprobe_key { + struct inode *inode; + loff_t offset; }; -struct audit_buffer { - struct sk_buff *skb; - struct audit_context *ctx; - gfp_t gfp_mask; +struct map_info___2 { + struct map_info___2 *next; + struct mm_struct *mm; + unsigned long vaddr; }; -struct audit_sig_info { - uid_t uid; - pid_t pid; - char ctx[0]; -}; +typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool); -struct audit_tty_status { - __u32 enabled; - __u32 log_passwd; -}; +typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool); -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; -}; +typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool); -struct bpf_cpumask { - cpumask_t cpumask; - struct callback_head rcu; - refcount_t usage; +struct memcg_path { + local_lock_t lock; + char __attribute__((btf_type_tag("rcu"))) *buf; + local_t buf_idx; }; -typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_mm_compaction_migratepages)(void *, 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_event_raw_mmap_lock { struct trace_entry ent; - unsigned long start_pfn; - unsigned long end_pfn; - unsigned long nr_scanned; - unsigned long nr_taken; + struct mm_struct *mm; + u32 __data_loc_memcg_path; + bool write; char __data[0]; }; -struct trace_event_raw_mm_compaction_migratepages { +struct trace_event_raw_mmap_lock_acquire_returned { struct trace_entry ent; - unsigned long nr_migrated; - unsigned long nr_failed; + struct mm_struct *mm; + u32 __data_loc_memcg_path; + bool write; + bool success; 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_data_offsets_mmap_lock { + u32 memcg_path; }; -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_data_offsets_mmap_lock_acquire_returned { + u32 memcg_path; }; -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 mempolicy_operations { + int (*create)(struct mempolicy *, const nodemask_t *); + void (*rebind)(struct mempolicy *, const nodemask_t *); }; -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]; +enum { + MPOL_DEFAULT = 0, + MPOL_PREFERRED = 1, + MPOL_BIND = 2, + MPOL_INTERLEAVE = 3, + MPOL_LOCAL = 4, + MPOL_PREFERRED_MANY = 5, + MPOL_MAX = 6, }; -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 sp_node { + struct rb_node nd; + unsigned long start; + unsigned long end; + struct mempolicy *policy; }; -struct trace_event_raw_mm_compaction_kcompactd_sleep { - struct trace_entry ent; - int nid; - char __data[0]; +struct migration_mpol { + struct mempolicy *pol; + unsigned long ilx; }; -struct trace_event_raw_kcompactd_wake_template { - struct trace_entry ent; - int nid; - int order; - enum zone_type highest_zoneidx; - char __data[0]; +struct queue_pages { + struct list_head *pagelist; + unsigned long flags; + nodemask_t *nmask; + unsigned long start; + unsigned long end; + struct vm_area_struct *first; + struct folio *large; + long nr_failed; }; -typedef 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 {}; - -typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *); +struct nodemask_scratch { + nodemask_t mask1; + nodemask_t mask2; +}; -typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *); +enum fsconfig_command { + FSCONFIG_SET_FLAG = 0, + FSCONFIG_SET_STRING = 1, + FSCONFIG_SET_BINARY = 2, + FSCONFIG_SET_PATH = 3, + FSCONFIG_SET_PATH_EMPTY = 4, + FSCONFIG_SET_FD = 5, + FSCONFIG_CMD_CREATE = 6, + FSCONFIG_CMD_RECONFIGURE = 7, + FSCONFIG_CMD_CREATE_EXCL = 8, +}; -typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int); +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; +}; -typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int); +struct limit_names { + const char *name; + const char *unit; +}; -typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int); +struct map_files_info { + unsigned long start; + unsigned long end; + fmode_t mode; +}; -typedef void (*btf_trace_inode_foreign_history)(void *, struct inode *, struct writeback_control *, unsigned int); +struct seccomp_data { + int nr; + __u32 arch; + __u64 instruction_pointer; + __u64 args[6]; +}; -typedef void (*btf_trace_inode_switch_wbs)(void *, struct inode *, struct bdi_writeback *, struct bdi_writeback *); +struct syscall_info { + __u64 sp; + struct seccomp_data data; +}; -typedef void (*btf_trace_track_foreign_dirty)(void *, struct folio *, struct bdi_writeback *); +struct genradix_root; -typedef void (*btf_trace_flush_foreign)(void *, struct bdi_writeback *, unsigned int, unsigned int); +struct __genradix { + struct genradix_root *root; +}; -typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *); +struct tgid_iter { + unsigned int tgid; + struct task_struct *task; +}; -typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *); +typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); -struct wb_writeback_work; +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; +}; -typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *); +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 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 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]; }; -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 *); +struct shortname_info { + unsigned char lower: 1; + unsigned char upper: 1; + unsigned char valid: 1; +}; -typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *); +struct nfs4_secinfo4 { + u32 flavor; + struct rpcsec_gss_info flavor_info; +}; -typedef void (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *); +struct nfs4_secinfo_flavors { + unsigned int num_flavors; + struct nfs4_secinfo4 flavors[0]; +}; -typedef void (*btf_trace_writeback_pages_written)(void *, long); +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, +}; -typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *); +struct ima_digest_data; -typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *); +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; + unsigned long real_ino; + dev_t real_dev; + 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; +}; -typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *); +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]; +}; -typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, unsigned long, int); +struct crypto_sig { + struct crypto_tfm base; +}; -typedef void (*btf_trace_global_dirty_state)(void *, unsigned long, unsigned long); +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; +}; -typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, unsigned long, unsigned long); +struct blk_mq_hw_ctx_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_mq_hw_ctx *, char *); +}; -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); +enum dd_prio { + DD_RT_PRIO = 0, + DD_BE_PRIO = 1, + DD_IDLE_PRIO = 2, + DD_PRIO_MAX = 2, +}; -typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *); +enum dd_data_dir { + DD_READ = 0, + DD_WRITE = 1, +}; -typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, unsigned long); +struct io_stats_per_prio { + uint32_t inserted; + uint32_t merged; + uint32_t dispatched; + atomic_t completed; +}; -typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, unsigned long); +struct dd_per_prio { + struct list_head dispatch; + struct rb_root sort_list[2]; + struct list_head fifo_list[2]; + sector_t latest_pos[2]; + struct io_stats_per_prio stats; +}; -typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *); +struct deadline_data { + struct dd_per_prio per_prio[3]; + enum dd_data_dir last_dir; + unsigned int batching; + unsigned int starved; + int fifo_expire[2]; + int fifo_batch; + int writes_starved; + int front_merges; + u32 async_depth; + int prio_aging_expire; + spinlock_t lock; + spinlock_t zone_lock; +}; -typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *); +struct epoll_event { + __poll_t events; + __u64 data; +}; -typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *); +struct io_epoll { + struct file *file; + int epfd; + int op; + int fd; + struct epoll_event event; +}; -typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *); +struct barrett_ctx_s; -typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *); +typedef struct barrett_ctx_s *mpi_barrett_t; -struct trace_event_raw_writeback_folio_template { - struct trace_entry ent; - char name[32]; - ino_t ino; - unsigned long index; - char __data[0]; +struct barrett_ctx_s { + MPI m; + int m_copied; + int k; + MPI y; + MPI r1; + MPI r2; + MPI r3; }; -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]; +enum devm_ioremap_type { + DEVM_IOREMAP = 0, + DEVM_IOREMAP_UC = 1, + DEVM_IOREMAP_WC = 2, + DEVM_IOREMAP_NP = 3, }; -struct trace_event_raw_inode_foreign_history { - struct trace_entry ent; - char name[32]; - ino_t ino; - ino_t cgroup_ino; - unsigned int history; - char __data[0]; +struct pcim_iomap_devres { + void *table[6]; }; -struct trace_event_raw_inode_switch_wbs { - struct trace_entry ent; - char name[32]; - ino_t ino; - ino_t old_cgroup_ino; - ino_t new_cgroup_ino; - char __data[0]; +struct arch_io_reserve_memtype_wc_devres { + resource_size_t start; + resource_size_t size; }; -struct trace_event_raw_track_foreign_dirty { - struct trace_entry ent; - char name[32]; - u64 bdi_id; - ino_t ino; - unsigned int memcg_id; - ino_t cgroup_ino; - ino_t page_cgroup_ino; - char __data[0]; -}; +struct partition_affinity; -struct trace_event_raw_flush_foreign { - struct trace_entry ent; - char name[32]; - ino_t cgroup_ino; - unsigned int frn_bdi_id; - unsigned int frn_memcg_id; - char __data[0]; +struct partition_desc { + int nr_parts; + struct partition_affinity *parts; + struct irq_domain *domain; + struct irq_desc *chained_desc; + unsigned long *bitmap; + struct irq_domain_ops ops; }; -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 partition_affinity { + cpumask_t mask; + void *partition_id; }; -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]; +enum sysc_soc { + SOC_UNKNOWN = 0, + SOC_2420 = 1, + SOC_2430 = 2, + SOC_3430 = 3, + SOC_AM35 = 4, + SOC_3630 = 5, + SOC_4430 = 6, + SOC_4460 = 7, + SOC_4470 = 8, + SOC_5430 = 9, + SOC_AM3 = 10, + SOC_AM4 = 11, + SOC_DRA7 = 12, +}; + +struct sysc_soc_info { + unsigned long general_purpose: 1; + enum sysc_soc soc; + struct mutex list_lock; + struct list_head disabled_modules; + struct list_head restored_modules; + struct notifier_block nb; }; -struct trace_event_raw_writeback_pages_written { - struct trace_entry ent; - long pages; - char __data[0]; +struct sysc_dts_quirk { + const char *name; + u32 mask; }; -struct trace_event_raw_writeback_class { - struct trace_entry ent; - char name[32]; - ino_t cgroup_ino; - char __data[0]; +struct sysc_revision_quirk { + const char *name; + u32 base; + int rev_offset; + int sysc_offset; + int syss_offset; + u32 revision; + u32 revision_mask; + u32 quirks; }; -struct trace_event_raw_writeback_bdi_register { - struct trace_entry ent; - char name[32]; - char __data[0]; +enum ti_sysc_module_type { + TI_SYSC_OMAP2 = 0, + TI_SYSC_OMAP2_TIMER = 1, + TI_SYSC_OMAP3_SHAM = 2, + TI_SYSC_OMAP3_AES = 3, + TI_SYSC_OMAP4 = 4, + TI_SYSC_OMAP4_TIMER = 5, + TI_SYSC_OMAP4_SIMPLE = 6, + TI_SYSC_OMAP34XX_SR = 7, + TI_SYSC_OMAP36XX_SR = 8, + TI_SYSC_OMAP4_SR = 9, + TI_SYSC_OMAP4_MCASP = 10, + TI_SYSC_OMAP4_USB_HOST_FS = 11, + TI_SYSC_DRA7_MCAN = 12, + TI_SYSC_PRUSS = 13, +}; + +struct sysc_regbits; + +struct sysc_capabilities { + const enum ti_sysc_module_type type; + const u32 sysc_mask; + const struct sysc_regbits *regbits; + const u32 mod_quirks; +}; + +struct sysc_regbits { + s8 midle_shift; + s8 clkact_shift; + s8 sidle_shift; + s8 enwkup_shift; + s8 srst_shift; + s8 autoidle_shift; + s8 dmadisable_shift; + s8 emufree_shift; +}; + +enum sysc_registers { + SYSC_REVISION = 0, + SYSC_SYSCONFIG = 1, + SYSC_SYSSTATUS = 2, + SYSC_MAX_REGS = 3, +}; + +enum sysc_clocks { + SYSC_FCK = 0, + SYSC_ICK = 1, + SYSC_OPTFCK0 = 2, + SYSC_OPTFCK1 = 3, + SYSC_OPTFCK2 = 4, + SYSC_OPTFCK3 = 5, + SYSC_OPTFCK4 = 6, + SYSC_OPTFCK5 = 7, + SYSC_OPTFCK6 = 8, + SYSC_OPTFCK7 = 9, + SYSC_MAX_CLOCKS = 10, +}; + +struct sysc_address { + unsigned long base; + struct list_head node; }; -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 sysc_config { + u32 sysc_val; + u32 syss_mask; + u8 midlemodes; + u8 sidlemodes; + u8 srst_udelay; + u32 quirks; }; -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 ti_sysc_cookie { + void *data; + void *clkdm; }; -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 ti_sysc_module_data; -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 sysc { + struct device *dev; + u64 module_pa; + u32 module_size; + void *module_va; + int offsets[3]; + struct ti_sysc_module_data *mdata; + struct clk **clocks; + const char **clock_roles; + int nr_clocks; + struct reset_control *rsts; + const char *legacy_mode; + const struct sysc_capabilities *cap; + struct sysc_config cfg; + struct ti_sysc_cookie cookie; + const char *name; + u32 revision; + u32 sysconfig; + unsigned int reserved: 1; + unsigned int enabled: 1; + unsigned int needs_resume: 1; + unsigned int child_needs_resume: 1; + struct delayed_work idle_work; + void (*pre_reset_quirk)(struct sysc *); + void (*post_reset_quirk)(struct sysc *); + void (*reset_done_quirk)(struct sysc *); + void (*module_enable_quirk)(struct sysc *); + void (*module_disable_quirk)(struct sysc *); + void (*module_unlock_quirk)(struct sysc *); + void (*module_lock_quirk)(struct sysc *); +}; + +struct ti_sysc_module_data { + const char *name; + u64 module_pa; + u32 module_size; + int *offsets; + int nr_offsets; + const struct sysc_capabilities *cap; + struct sysc_config *cfg; }; -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 sysc_module { + struct sysc *ddata; + struct list_head node; }; -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 ti_sysc_platform_data { + struct of_dev_auxdata *auxdata; + bool (*soc_type_gp)(); + int (*init_clockdomain)(struct device *, struct clk *, struct clk *, struct ti_sysc_cookie *); + void (*clkdm_deny_idle)(struct device *, const struct ti_sysc_cookie *); + void (*clkdm_allow_idle)(struct device *, const struct ti_sysc_cookie *); + int (*init_module)(struct device *, const struct ti_sysc_module_data *, struct ti_sysc_cookie *); + int (*enable_module)(struct device *, const struct ti_sysc_cookie *); + int (*idle_module)(struct device *, const struct ti_sysc_cookie *); + int (*shutdown_module)(struct device *, const struct ti_sysc_cookie *); }; -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 tegra_xusb_usb2_lane { + struct tegra_xusb_lane base; + u32 hs_curr_level_offset; + bool powered_on; }; -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 tegra_xusb_usb2_pad { + struct tegra_xusb_pad base; + struct clk *clk; + unsigned int enable; + struct mutex lock; }; -struct inode_switch_wbs_context { - struct rcu_work work; - struct bdi_writeback *new_wb; - struct inode *inodes[0]; +struct tegra124_xusb_fuse_calibration { + u32 hs_curr_level[3]; + u32 hs_iref_cap; + u32 hs_term_range_adj; + u32 hs_squelch_level; }; -struct trace_event_data_offsets_writeback_folio_template {}; - -struct trace_event_data_offsets_writeback_dirty_inode_template {}; - -struct trace_event_data_offsets_inode_foreign_history {}; - -struct trace_event_data_offsets_inode_switch_wbs {}; - -struct trace_event_data_offsets_track_foreign_dirty {}; - -struct trace_event_data_offsets_flush_foreign {}; - -struct trace_event_data_offsets_writeback_write_inode_template {}; +struct tegra124_xusb_padctl { + struct tegra_xusb_padctl base; + struct tegra124_xusb_fuse_calibration fuse; +}; -struct trace_event_data_offsets_writeback_work_class {}; +struct tegra_xusb_ulpi_lane { + struct tegra_xusb_lane base; +}; -struct trace_event_data_offsets_writeback_pages_written {}; +struct tegra_xusb_ulpi_pad { + struct tegra_xusb_pad base; +}; -struct trace_event_data_offsets_writeback_class {}; +struct tegra_xusb_hsic_lane { + struct tegra_xusb_lane base; + u32 strobe_trim; + u32 rx_strobe_trim; + u32 rx_data_trim; + u32 tx_rtune_n; + u32 tx_rtune_p; + u32 tx_rslew_n; + u32 tx_rslew_p; + bool auto_term; +}; -struct trace_event_data_offsets_writeback_bdi_register {}; +struct tegra_xusb_hsic_pad { + struct tegra_xusb_pad base; + struct regulator *supply; + struct clk *clk; +}; -struct trace_event_data_offsets_wbc_class {}; +struct tegra_xusb_pcie_lane { + struct tegra_xusb_lane base; +}; -struct trace_event_data_offsets_writeback_queue_io {}; +struct tegra_xusb_pcie_pad { + struct tegra_xusb_pad base; + struct reset_control *rst; + struct clk *pll; + bool enable; +}; -struct trace_event_data_offsets_global_dirty_state {}; +struct tegra_xusb_sata_lane { + struct tegra_xusb_lane base; +}; -struct trace_event_data_offsets_bdi_dirty_ratelimit {}; +struct tegra_xusb_sata_pad { + struct tegra_xusb_pad base; + struct reset_control *rst; + struct clk *pll; + bool enable; +}; -struct trace_event_data_offsets_balance_dirty_pages {}; +enum ioctrl_regs___5 { + POCCTRL0___3 = 0, + POCCTRL1___2 = 1, + POCCTRL2___3 = 2, + POCCTRL3 = 3, + TDSELCTRL___4 = 4, +}; -struct trace_event_data_offsets_writeback_sb_inodes_requeue {}; +enum { + GP_LAST___3 = 174, + PIN_DCUTCK_LPDCLK = 175, + PIN_DCUTDI_LPDI = 176, + PIN_DCUTMS = 177, + PIN_DCUTRST_N = 178, + PIN_DU_DOTCLKIN___2 = 179, + PIN_EXTALR___2 = 180, + PIN_FSCLKST = 181, + PIN_FSCLKST_N___3 = 182, + PIN_PRESETOUT_N___3 = 183, + PIN_VDDQ_AVB = 184, + PIN_VDDQ_GE = 185, +}; -struct trace_event_data_offsets_writeback_single_inode_template {}; +struct rzv2m_dedicated_configs; -struct trace_event_data_offsets_writeback_inode_template {}; +struct rzv2m_pinctrl_data { + const char * const *port_pins; + const u32 *port_pin_configs; + const struct rzv2m_dedicated_configs *dedicated_pins; + unsigned int n_port_pins; + unsigned int n_dedicated_pins; +}; -struct ext4_extent { - __le32 ee_block; - __le16 ee_len; - __le16 ee_start_hi; - __le32 ee_start_lo; +struct rzv2m_dedicated_configs { + const char *name; + u32 config; }; -struct ext4_extent_header { - __le16 eh_magic; - __le16 eh_entries; - __le16 eh_max; - __le16 eh_depth; - __le32 eh_generation; +struct rzv2m_pinctrl { + struct pinctrl_dev *pctl; + struct pinctrl_desc desc; + struct pinctrl_pin_desc *pins; + const struct rzv2m_pinctrl_data *data; + void *base; + struct device *dev; + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range gpio_range; + spinlock_t lock; + struct mutex mutex; }; -struct ext4_extent_idx { - __le32 ei_block; - __le32 ei_leaf_lo; - __le16 ei_leaf_hi; - __u16 ei_unused; +struct mxc_gpio_hwdata { + unsigned int dr_reg; + unsigned int gdir_reg; + unsigned int psr_reg; + unsigned int icr1_reg; + unsigned int icr2_reg; + unsigned int imr_reg; + unsigned int isr_reg; + int edge_sel_reg; + unsigned int low_level; + unsigned int high_level; + unsigned int rise_edge; + unsigned int fall_edge; }; -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 mxc_gpio_reg_saved { + u32 icr1; + u32 icr2; + u32 imr; + u32 gdir; + u32 edge_sel; + u32 dr; }; -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 mxc_gpio_port { + struct list_head node; + void *base; + struct clk *clk; + int irq; + int irq_high; + void (*mx_irq_handler)(struct irq_desc *); + struct irq_domain *domain; + struct gpio_chip gc; + struct device *dev; + u32 both_edges; + struct mxc_gpio_reg_saved gpio_saved_reg; + bool power_off; + u32 wakeup_pads; + bool is_pad_wakeup; + u32 pad_type[32]; + const struct mxc_gpio_hwdata *hwdata; }; -enum { - NFS_DEVICEID_INVALID = 0, - NFS_DEVICEID_UNAVAILABLE = 1, - NFS_DEVICEID_NOCACHE = 2, +struct driver_attribute { + struct attribute attr; + ssize_t (*show)(struct device_driver *, char *); + ssize_t (*store)(struct device_driver *, const char *, size_t); }; -enum stripetype4 { - STRIPE_SPARSE = 1, - STRIPE_DENSE = 2, +struct pci_dynid { + struct list_head node; + struct pci_device_id id; }; -struct nfs4_file_layout_dsaddr; +struct drv_dev_and_id { + struct pci_driver *drv; + struct pci_dev *dev; + const struct pci_device_id *id; +}; -struct nfs4_filelayout_segment { - struct pnfs_layout_segment generic_hdr; - u32 stripe_type; - u32 commit_through_mds; - u32 stripe_unit; - u32 first_stripe_index; - u64 pattern_offset; - struct nfs4_deviceid deviceid; - struct nfs4_file_layout_dsaddr *dsaddr; - unsigned int num_fh; - struct nfs_fh **fh_array; +struct armada8k_pcie { + struct dw_pcie *pci; + struct clk *clk; + struct clk *clk_reg; + struct phy *phy[4]; + unsigned int phy_count; }; -struct nfs4_file_layout_dsaddr { - struct nfs4_deviceid_node id_node; - u32 stripe_count; - u8 *stripe_indices; - u32 ds_num; - struct nfs4_pnfs_ds *ds_list[0]; +enum si_type { + SI_TYPE_INVALID = 0, + SI_KCS = 1, + SI_SMIC = 2, + SI_BT = 3, + SI_TYPE_MAX = 4, }; -struct nfs4_filelayout { - struct pnfs_layout_hdr generic_hdr; - struct pnfs_ds_commit_info commit_info; +struct ipmi_dmi_info { + enum si_type si_type; + unsigned int space; + unsigned long addr; + u8 slave_addr; + struct ipmi_dmi_info *next; }; -enum { - Opt_uid___4 = 0, - Opt_gid___5 = 1, - Opt_mode___4 = 2, - Opt_err___4 = 3, +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 debugfs_mount_opts { - kuid_t uid; - kgid_t gid; - umode_t mode; - unsigned int opts; +enum ipmi_addr_space { + IPMI_IO_ADDR_SPACE = 0, + IPMI_MEM_ADDR_SPACE = 1, }; -struct debugfs_fs_info { - struct debugfs_mount_opts mount_opts; +enum ipmi_plat_interface_type { + IPMI_PLAT_IF_SI = 0, + IPMI_PLAT_IF_SSIF = 1, }; -struct vfs_cap_data { - __le32 magic_etc; - struct { - __le32 permitted; - __le32 inheritable; - } data[2]; +enum ipmi_addr_src { + SI_INVALID = 0, + SI_HOTMOD = 1, + SI_HARDCODED = 2, + SI_SPMI = 3, + SI_ACPI = 4, + SI_SMBIOS = 5, + SI_PCI = 6, + SI_DEVICETREE = 7, + SI_PLATFORM = 8, + SI_LAST = 9, }; -struct vfs_ns_cap_data { - __le32 magic_etc; - struct { - __le32 permitted; - __le32 inheritable; - } data[2]; - __le32 rootid; +struct dmi_header { + u8 type; + u8 length; + u16 handle; }; -struct asymmetric_key_parser { - struct list_head link; - struct module *owner; +struct dmi_device { + struct list_head list; + int type; const char *name; - int (*parse)(struct key_preparsed_payload *); + void *device_data; }; -enum blkg_iostat_type { - BLKG_IOSTAT_READ = 0, - BLKG_IOSTAT_WRITE = 1, - BLKG_IOSTAT_DISCARD = 2, - BLKG_IOSTAT_NR = 3, +struct ipmi_plat_data { + enum ipmi_plat_interface_type iftype; + unsigned int type; + unsigned int space; + unsigned long addr; + unsigned int regspacing; + unsigned int regsize; + unsigned int regshift; + unsigned int irq; + unsigned int slave_addr; + enum ipmi_addr_src addr_source; }; -struct blkg_conf_ctx { - char *input; - char *body; - struct block_device *bdev; - struct blkcg_gq *blkg; +struct irq_override_cmp { + const struct dmi_system_id *system; + unsigned char irq; + unsigned char triggering; + unsigned char polarity; + unsigned char shareable; + bool override; }; -enum { - MAX_OPT_ARGS = 3, +struct res_proc_context { + struct list_head *list; + int (*preproc)(struct acpi_resource *, void *); + void *preproc_data; + int count; + int error; }; -enum { - REG_OP_ISFREE = 0, - REG_OP_ALLOC = 1, - REG_OP_RELEASE = 2, +struct resource_win { + struct resource res; + resource_size_t offset; }; -struct region { - unsigned int start; - unsigned int off; - unsigned int group_len; - unsigned int end; - unsigned int nbits; +struct acpi_pkg_info { + u8 *free_space; + acpi_size length; + u32 object_space; + u32 num_packages; }; -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; +struct cs2000_priv { + struct clk_hw hw; + struct i2c_client *client; + struct clk *clk_in; + struct clk *ref_clk; + struct regmap *regmap; + bool dynamic_mode; + bool lf_ratio; + bool clk_skip; + unsigned long saved_rate; + unsigned long saved_parent_rate; }; -union handle_parts { - depot_stack_handle_t handle; - struct { - u32 pool_index: 16; - u32 offset: 10; - u32 valid: 1; - u32 extra: 5; - }; +struct clk_fixup_mux { + struct clk_mux mux; + const struct clk_ops *ops; + void (*fixup)(u32 *); }; -struct stack_record { - struct stack_record *next; - u32 hash; - u32 size; - union handle_parts handle; - unsigned long entries[0]; +enum imx_pllv1_type { + IMX_PLLV1_IMX1 = 0, + IMX_PLLV1_IMX21 = 1, + IMX_PLLV1_IMX25 = 2, + IMX_PLLV1_IMX27 = 3, + IMX_PLLV1_IMX31 = 4, + IMX_PLLV1_IMX35 = 5, }; -struct mtk_cirq_chip_data { +struct clk_pllv1 { + struct clk_hw hw; void *base; - unsigned int ext_irq_start; - unsigned int ext_irq_end; - const u32 *offsets; - struct irq_domain *domain; + enum imx_pllv1_type type; }; -enum mtk_cirq_regoffs_index { - CIRQ_STA = 0, - CIRQ_ACK = 1, - CIRQ_MASK_SET = 2, - CIRQ_MASK_CLR = 3, - CIRQ_SENS_SET = 4, - CIRQ_SENS_CLR = 5, - CIRQ_POL_SET = 6, - CIRQ_POL_CLR = 7, - CIRQ_CONTROL = 8, +struct clk_cpu_8996_pmux { + u32 reg; + struct notifier_block nb; + struct clk_regmap clkr; }; -struct mvebu_comphy_conf { - enum phy_mode mode; - int submode; - unsigned int lane; - unsigned int port; - u32 mux; - u32 fw_mode; +enum _pmux_input { + SMUX_INDEX = 0, + PLL_INDEX = 1, + ACD_INDEX = 2, + ALT_INDEX = 3, + NUM_OF_PMUX_INPUTS = 4, }; -struct mvebu_comphy_priv { - void *base; - struct regmap *regmap; - struct device *dev; - struct clk *mg_domain_clk; - struct clk *mg_core_clk; - struct clk *axi_clk; - unsigned long cp_phys; +struct rpc_clock { + struct clk_divider div; + struct clk_gate gate; + struct cpg_simple_notifier csn; }; -struct mvebu_comphy_lane { - struct mvebu_comphy_priv *priv; - unsigned int id; - enum phy_mode mode; - int submode; - int port; +struct rpcd2_clock { + struct clk_fixed_factor fixed; + struct clk_gate gate; }; -struct bcm_plat_data { - const struct gpio_chip *gpio_chip; - const struct pinctrl_desc *pctl_desc; - const struct pinctrl_gpio_range *gpio_range; +struct pll_out_data { + char *div_name; + char *pll_out_name; + u32 offset; + int clk_id; + u8 div_shift; + u8 div_flags; + u8 rst_shift; + spinlock_t *lock; }; -enum bcm2835_fsel { - BCM2835_FSEL_COUNT = 8, - BCM2835_FSEL_MASK = 7, -}; +struct udma_dev; -struct bcm2835_pinctrl { +struct udma_tisci_rm; + +struct k3_udma_glue_common { struct device *dev; - void *base; - int *wake_irq; - unsigned long enabled_irq_map[2]; - unsigned int irq_type[58]; - struct pinctrl_dev *pctl_dev; - struct gpio_chip gpio_chip; - struct pinctrl_desc pctl_desc; - struct pinctrl_gpio_range gpio_range; - raw_spinlock_t irq_lock[2]; - spinlock_t fsel_lock; + struct device chan_dev; + struct udma_dev *udmax; + const struct udma_tisci_rm *tisci_rm; + struct k3_ringacc *ringacc; + u32 src_thread; + u32 dst_thread; + u32 hdesc_size; + bool epib; + u32 psdata_size; + u32 swdata_size; + u32 atype_asel; + struct psil_endpoint_config *ep_config; }; -struct visconti_desc_pin; +struct udma_tchan; -struct visconti_pin_group; +struct k3_udma_glue_tx_channel { + struct k3_udma_glue_common common; + struct udma_tchan *udma_tchanx; + int udma_tchan_id; + struct k3_ring *ringtx; + struct k3_ring *ringtxcq; + bool psil_paired; + int virq; + atomic_t free_pkts; + bool tx_pause_on_err; + bool tx_filt_einfo; + bool tx_filt_pswords; + bool tx_supr_tdpkt; + int udma_tflow_id; +}; -struct visconti_pin_function; +struct udma_tisci_rm { + const struct ti_sci_handle *tisci; + const struct ti_sci_rm_udmap_ops *tisci_udmap_ops; + u32 tisci_dev_id; + const struct ti_sci_rm_psil_ops *tisci_psil_ops; + u32 tisci_navss_dev_id; + struct ti_sci_resource *rm_ranges[5]; +}; -struct visconti_mux; +struct cppi5_desc_hdr_t { + u32 pkt_info0; + u32 pkt_info1; + u32 pkt_info2; + u32 src_dst_tag; +}; -struct visconti_pinctrl_devdata { - const struct visconti_desc_pin *pins; - unsigned int nr_pins; - const struct visconti_pin_group *groups; - unsigned int nr_groups; - const struct visconti_pin_function *functions; - unsigned int nr_functions; - const struct visconti_mux *gpio_mux; - void (*unlock)(void *); +struct udma_rchan; + +struct k3_udma_glue_rx_flow; + +struct k3_udma_glue_rx_channel { + struct k3_udma_glue_common common; + struct udma_rchan *udma_rchanx; + int udma_rchan_id; + bool remote; + bool psil_paired; + u32 swdata_size; + int flow_id_base; + struct k3_udma_glue_rx_flow *flows; + u32 flow_num; + u32 flows_ready; }; -struct visconti_desc_pin { - struct pinctrl_pin_desc pin; - unsigned int dsel_offset; - unsigned int dsel_shift; - unsigned int pude_offset; - unsigned int pudsel_offset; - unsigned int pud_shift; +struct udma_rflow; + +struct k3_udma_glue_rx_flow { + struct udma_rflow *udma_rflow; + int udma_rflow_id; + struct k3_ring *ringrx; + struct k3_ring *ringrxfdq; + int virq; }; -struct visconti_mux { - unsigned int offset; - unsigned int mask; - unsigned int val; +struct k3_udma_glue_rx_flow_cfg; + +struct k3_udma_glue_rx_channel_cfg { + u32 swdata_size; + int flow_id_base; + int flow_id_num; + bool flow_id_use_rxchan_id; + bool remote; + struct k3_udma_glue_rx_flow_cfg *def_flow_cfg; }; -struct visconti_pin_group { - const char *name; - const unsigned int *pins; - unsigned int nr_pins; - struct visconti_mux mux; +struct k3_udma_glue_rx_flow_cfg { + struct k3_ring_cfg rx_cfg; + struct k3_ring_cfg rxfdq_cfg; + int ring_rxq_id; + int ring_rxfdq0_id; + bool rx_error_handling; + int src_tag_lo_sel; }; -struct visconti_pin_function { - const char *name; - const char * const *groups; - unsigned int nr_groups; +struct k3_udma_glue_tx_channel_cfg { + struct k3_ring_cfg tx_cfg; + struct k3_ring_cfg txcq_cfg; + bool tx_pause_on_err; + bool tx_filt_einfo; + bool tx_filt_pswords; + bool tx_supr_tdpkt; + u32 swdata_size; }; -struct tegra_gpio_soc_config { - bool debounce_supported; - u32 bank_stride; - u32 upper_offset; +struct cppi5_host_desc_t { + struct cppi5_desc_hdr_t hdr; + u64 next_desc; + u64 buf_ptr; + u32 buf_info1; + u32 org_buf_len; + u64 org_buf_ptr; + u32 epib[0]; }; -struct tegra_gpio_bank; +struct rockchip_iodomain; -struct tegra_gpio_info { - struct device *dev; - void *regs; - struct tegra_gpio_bank *bank_info; - const struct tegra_gpio_soc_config *soc; - struct gpio_chip gc; - u32 bank_count; - unsigned int *irqs; -}; +struct rockchip_iodomain_supply; -struct tegra_gpio_bank { - unsigned int bank; - raw_spinlock_t lvl_lock[4]; - spinlock_t dbc_lock[4]; - u32 cnf[4]; - u32 out[4]; - u32 oe[4]; - u32 int_enb[4]; - u32 int_lvl[4]; - u32 wake_enb[4]; - u32 dbc_enb[4]; - u32 dbc_cnt[4]; +struct rockchip_iodomain_soc_data { + int grf_offset; + const char *supply_names[16]; + void (*init)(struct rockchip_iodomain *); + int (*write)(struct rockchip_iodomain_supply *, int); }; -struct thunder_pem_pci { - u32 ea_entry[3]; - void *pem_reg_base; +struct rockchip_iodomain_supply { + struct rockchip_iodomain *iod; + struct regulator *reg; + struct notifier_block nb; + int idx; }; -struct fb_cmap_user { - __u32 start; - __u32 len; - __u16 __attribute__((btf_type_tag("user"))) *red; - __u16 __attribute__((btf_type_tag("user"))) *green; - __u16 __attribute__((btf_type_tag("user"))) *blue; - __u16 __attribute__((btf_type_tag("user"))) *transp; +struct rockchip_iodomain { + struct device *dev; + struct regmap *grf; + const struct rockchip_iodomain_soc_data *soc_data; + struct rockchip_iodomain_supply supplies[16]; + int (*write)(struct rockchip_iodomain_supply *, int); }; -struct prt_quirk { - const struct dmi_system_id *system; - unsigned int segment; - unsigned int bus; - unsigned int device; - unsigned char pin; - const char *source; - const char *actual_source; +struct pre_voltage_change_data { + unsigned long old_uV; + unsigned long min_uV; + unsigned long max_uV; }; -struct acpi_pci_routing_table { - u32 length; - u32 pin; - u64 address; - u32 source_index; - union { - char pad[4]; - struct { - struct {} __Empty_source; - char source[0]; - }; - }; +enum mrq_pg_cmd { + CMD_PG_QUERY_ABI = 0, + CMD_PG_SET_STATE = 1, + CMD_PG_GET_STATE = 2, + CMD_PG_GET_NAME = 3, + CMD_PG_GET_MAX_ID = 4, }; -struct acpi_prt_entry { - struct acpi_pci_id id; - u8 pin; - acpi_handle link; - u32 index; +enum pg_states { + PG_STATE_OFF = 0, + PG_STATE_ON = 1, + PG_STATE_RUNNING = 2, }; -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 tegra_powergate { + struct generic_pm_domain genpd; + struct tegra_bpmp *bpmp; + unsigned int id; }; -struct acpi_create_field_info { - struct acpi_namespace_node *region_node; - struct acpi_namespace_node *field_node; - struct acpi_namespace_node *register_node; - struct acpi_namespace_node *data_register_node; - struct acpi_namespace_node *connection_node; - u8 *resource_buffer; - u32 bank_value; - u32 field_bit_position; - u32 field_bit_length; - u16 resource_length; - u16 pin_number_index; - u8 field_flags; - u8 attribute; - u8 field_type; - u8 access_length; +struct cmd_pg_get_state_response { + uint32_t state; }; -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 cmd_pg_get_name_response { + uint8_t name[40]; }; -struct cpc_reg { - u8 descriptor; - u16 length; - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 access_width; - u64 address; -} __attribute__((packed)); +struct cmd_pg_get_max_id_response { + uint32_t max_id; +}; -struct cpc_register_resource { - acpi_object_type type; - u64 *sys_mem_vaddr; +struct mrq_pg_response { union { - struct cpc_reg reg; - u64 int_value; - } cpc_entry; + struct cmd_pg_get_state_response get_state; + struct cmd_pg_get_name_response get_name; + struct cmd_pg_get_max_id_response get_max_id; + }; }; -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; +struct cmd_pg_query_abi_request { + uint32_t type; }; -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 cmd_pg_set_state_request { + uint32_t state; }; -struct cppc_perf_ctrls { - u32 max_perf; - u32 min_perf; - u32 desired_perf; - u32 energy_perf; +struct mrq_pg_request { + uint32_t cmd; + uint32_t id; + union { + struct cmd_pg_query_abi_request query_abi; + struct cmd_pg_set_state_request set_state; + }; }; -struct cppc_perf_fb_ctrs { - u64 reference; - u64 delivered; - u64 reference_perf; - u64 wraparound_time; +struct tegra_powergate_info { + unsigned int id; + char *name; }; -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; -}; +typedef uint32_t XENSTORE_RING_IDX; -struct acpi_pcct_shared_memory { - u32 signature; - u16 command; - u16 status; +struct xenstore_domain_interface { + char req[1024]; + char rsp[1024]; + XENSTORE_RING_IDX req_cons; + XENSTORE_RING_IDX req_prod; + XENSTORE_RING_IDX rsp_cons; + XENSTORE_RING_IDX rsp_prod; + uint32_t server_features; + uint32_t connection; + uint32_t error; }; -enum xgene_pll_type { - PLL_TYPE_PCP = 0, - PLL_TYPE_SOC = 1, +struct pfuze_regulator { + struct regulator_desc desc; + unsigned char stby_reg; + unsigned char stby_mask; + bool sw_reg; }; -struct xgene_clk_pll { - struct clk_hw hw; - void *reg; - spinlock_t *lock; - u32 pll_offset; - enum xgene_pll_type type; - int version; +enum chips { + PFUZE100 = 0, + PFUZE200 = 1, + PFUZE3000 = 3, + PFUZE3001 = 49, }; -struct xgene_clk_pmd { - struct clk_hw hw; - void *reg; - u8 shift; - u32 mask; - u64 denom; - u32 flags; - spinlock_t *lock; +struct pfuze_chip { + int chip_id; + int flags; + struct regmap *regmap; + struct device *dev; + struct pfuze_regulator regulator_descs[16]; + struct regulator_dev *regulators[16]; + struct pfuze_regulator *pfuze_regulators; }; -struct xgene_dev_parameters { - void *csr_reg; - u32 reg_clk_offset; - u32 reg_clk_mask; - u32 reg_csr_offset; - u32 reg_csr_mask; - void *divider_reg; - u32 reg_divider_offset; - u32 reg_divider_shift; - u32 reg_divider_width; +struct ma35d1_reset_data { + struct reset_controller_dev rcdev; + struct notifier_block restart_handler; + void *base; + spinlock_t lock; }; -struct xgene_clk { - struct clk_hw hw; - spinlock_t *lock; - struct xgene_dev_parameters param; +struct pericom8250 { + void *virt; + unsigned int nr; + int line[0]; }; -struct hi3660_stub_clk_chan { - struct mbox_client cl; - struct mbox_chan *mbox; +struct hisi_rng { + void *base; + struct hwrng rng; }; -struct hi3660_stub_clk { - unsigned int id; - struct clk_hw hw; - unsigned int cmd; - unsigned int msg[8]; - unsigned int rate; +struct cavium_smmu { + struct arm_smmu_device smmu; + u32 id_base; }; -struct tbg_def { - char *name; - u32 refdiv_offset; - u32 fbdiv_offset; - u32 vcodiv_reg; - u32 vcodiv_offset; +struct dev_pin_info { + struct pinctrl *p; + struct pinctrl_state *default_state; + struct pinctrl_state *init_state; + struct pinctrl_state *sleep_state; + struct pinctrl_state *idle_state; }; -enum clk_types { - CLK_TYPE_IN = 0, - CLK_TYPE_FF = 1, - CLK_TYPE_SAM_PLL = 2, - CLK_TYPE_DIV = 3, - CLK_TYPE_MUX = 4, - CLK_TYPE_SD_MUX = 5, - CLK_TYPE_SIPLL5 = 6, - CLK_TYPE_PLL5_4_MUX = 7, - CLK_TYPE_DSI_DIV = 8, +struct device_attach_data { + struct device *dev; + bool check_async; + bool want_async; + bool have_async; }; -struct rzg2l_cpg_priv; - -struct pll_clk { - struct clk_hw hw; - unsigned int conf; - unsigned int type; - void *base; - struct rzg2l_cpg_priv *priv; +struct rk808_reg_data { + int addr; + int mask; + int value; }; -struct rzg2l_pll5_mux_dsi_div_param { - u8 clksrc; - u8 dsi_div_a; - u8 dsi_div_b; +enum { + RK805_ID = 32848, + RK806_ID = 32864, + RK808_ID = 0, + RK809_ID = 32912, + RK817_ID = 33136, + RK818_ID = 33152, }; -struct rzg2l_cpg_priv { - struct reset_controller_dev rcdev; +struct rk808 { struct device *dev; - void *base; - spinlock_t rmw_lock; - struct clk **clks; - unsigned int num_core_clks; - unsigned int num_mod_clks; - unsigned int num_resets; - unsigned int last_dt_core_clk; - const struct rzg2l_cpg_info *info; - struct generic_pm_domain genpd; - struct rzg2l_pll5_mux_dsi_div_param mux_dsi_div_params; + struct regmap_irq_chip_data *irq_data; + struct regmap *regmap; + long variant; + const struct regmap_config *regmap_cfg; + const struct regmap_irq_chip *regmap_irq_chip; }; -struct sipll5 { - struct clk_hw hw; - u32 conf; - unsigned long foutpostdiv_rate; - struct rzg2l_cpg_priv *priv; +enum scsi_timeouts { + SCSI_DEFAULT_EH_TIMEOUT = 2500, }; -struct sd_hw_data { - struct clk_hw hw; - u32 conf; - struct rzg2l_cpg_priv *priv; +struct async_scan_data { + struct list_head list; + struct Scsi_Host *shost; + struct completion prev_finished; }; -struct pll5_mux_hw_data { - struct clk_hw hw; - u32 conf; - unsigned long rate; - struct rzg2l_cpg_priv *priv; -}; +typedef void (*activate_complete)(void *, int); -struct dsi_div_hw_data { - struct clk_hw hw; - u32 conf; - unsigned long rate; - struct rzg2l_cpg_priv *priv; +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 mstp_clock { - struct clk_hw hw; - u16 off; - u8 bit; - bool enabled; - struct rzg2l_cpg_priv *priv; - struct mstp_clock *sibling; +struct megasas_mgmt_info { + u16 count; + struct megasas_instance *instance[1024]; + int max_index; }; -struct rzg2l_pll5_param { - u32 pl5_fracin; - u8 pl5_refdiv; - u8 pl5_intin; - u8 pl5_postdiv1; - u8 pl5_postdiv2; - u8 pl5_spread; +enum DCMD_TIMEOUT_ACTION { + INITIATE_OCR = 0, + KILL_ADAPTER = 1, + IGNORE_TIMEOUT = 2, }; -struct admac_data; - -struct admac_tx; - -struct admac_chan { - unsigned int no; - struct admac_data *host; - struct dma_chan chan; - struct tasklet_struct tasklet; - u32 carveout; - spinlock_t lock; - struct admac_tx *current_tx; - int nperiod_acks; - struct list_head submitted; - struct list_head issued; - struct list_head to_free; +enum MEGASAS_LD_TARGET_ID_STATUS { + LD_TARGET_ID_INITIAL = 0, + LD_TARGET_ID_ACTIVE = 1, + LD_TARGET_ID_DELETED = 2, }; -struct admac_sram { - u32 size; - u32 allocated; +enum MR_EVT_LOCALE { + MR_EVT_LOCALE_LD = 1, + MR_EVT_LOCALE_PD = 2, + MR_EVT_LOCALE_ENCL = 4, + MR_EVT_LOCALE_BBU = 8, + MR_EVT_LOCALE_SAS = 16, + MR_EVT_LOCALE_CTRL = 32, + MR_EVT_LOCALE_CONFIG = 64, + MR_EVT_LOCALE_CLUSTER = 128, + MR_EVT_LOCALE_ALL = 65535, }; -struct admac_data { - struct dma_device dma; - struct device *dev; - void *base; - struct reset_control *rstc; - struct mutex cache_alloc_lock; - struct admac_sram txcache; - struct admac_sram rxcache; - int irq; - int irq_index; - int nchannels; - struct admac_chan channels[0]; +enum MR_EVT_CLASS { + MR_EVT_CLASS_DEBUG = -2, + MR_EVT_CLASS_PROGRESS = -1, + MR_EVT_CLASS_INFO = 0, + MR_EVT_CLASS_WARNING = 1, + MR_EVT_CLASS_CRITICAL = 2, + MR_EVT_CLASS_FATAL = 3, + MR_EVT_CLASS_DEAD = 4, }; -struct admac_tx { - struct dma_async_tx_descriptor tx; - bool cyclic; - dma_addr_t buf_addr; - dma_addr_t buf_end; - size_t buf_len; - size_t period_len; - size_t submitted_pos; - size_t reclaimed_pos; - struct list_head node; +enum mfi_evt_class { + MFI_EVT_CLASS_DEBUG = -2, + MFI_EVT_CLASS_PROGRESS = -1, + MFI_EVT_CLASS_INFO = 0, + MFI_EVT_CLASS_WARNING = 1, + MFI_EVT_CLASS_CRITICAL = 2, + MFI_EVT_CLASS_FATAL = 3, + MFI_EVT_CLASS_DEAD = 4, }; -struct bman_hwerr_txt { - u32 mask; - const char *txt; +enum MR_LD_QUERY_TYPE { + MR_LD_QUERY_TYPE_ALL = 0, + MR_LD_QUERY_TYPE_EXPOSED_TO_HOST = 1, + MR_LD_QUERY_TYPE_USED_TGT_IDS = 2, + MR_LD_QUERY_TYPE_CLUSTER_ACCESS = 3, + MR_LD_QUERY_TYPE_CLUSTER_LOCALE = 4, }; -struct rpmh_request { - struct tcs_request msg; - struct tcs_cmd cmd[16]; - struct completion *completion; - const struct device *dev; - bool needs_free; +enum MR_PD_STATE { + MR_PD_STATE_UNCONFIGURED_GOOD = 0, + MR_PD_STATE_UNCONFIGURED_BAD = 1, + MR_PD_STATE_HOT_SPARE = 2, + MR_PD_STATE_OFFLINE = 16, + MR_PD_STATE_FAILED = 17, + MR_PD_STATE_REBUILD = 20, + MR_PD_STATE_ONLINE = 24, + MR_PD_STATE_COPYBACK = 32, + MR_PD_STATE_SYSTEM = 64, }; -struct cache_req___2 { - u32 addr; - u32 sleep_val; - u32 wake_val; - struct list_head list; +enum MR_PD_QUERY_TYPE { + MR_PD_QUERY_TYPE_ALL = 0, + MR_PD_QUERY_TYPE_STATE = 1, + MR_PD_QUERY_TYPE_POWER_STATE = 2, + MR_PD_QUERY_TYPE_MEDIA_TYPE = 3, + MR_PD_QUERY_TYPE_SPEED = 4, + MR_PD_QUERY_TYPE_EXPOSED_TO_HOST = 5, }; -struct batch_cache_req { - struct list_head list; - int count; - struct rpmh_request rpm_msgs[0]; +struct megasas_init_queue_info { + __le32 init_flags; + __le32 reply_queue_entries; + __le32 reply_queue_start_phys_addr_lo; + __le32 reply_queue_start_phys_addr_hi; + __le32 producer_index_phys_addr_lo; + __le32 producer_index_phys_addr_hi; + __le32 consumer_index_phys_addr_lo; + __le32 consumer_index_phys_addr_hi; }; -struct ti_sci_genpd_provider; - -struct ti_sci_pm_domain { - int idx; - u8 exclusive; - struct generic_pm_domain pd; - struct list_head node; - struct ti_sci_genpd_provider *parent; +struct IOV_111 { + u8 maxVFsSupported; + u8 numVFsEnabled; + u8 requestorId; + u8 reserved[5]; }; -struct ti_sci_genpd_provider { - const struct ti_sci_handle *ti_sci; - struct device *dev; - struct list_head pd_list; - struct genpd_onecell_data data; -}; +struct megasas_iocpacket { + u16 host_no; + u16 __pad1; + u32 sgl_off; + u32 sge_count; + u32 sense_off; + u32 sense_len; + union { + u8 raw[128]; + struct megasas_header hdr; + } frame; + struct iovec sgl[16]; +} __attribute__((packed)); -struct physdev_pci_device { - uint16_t seg; - uint8_t bus; - uint8_t devfn; +struct megasas_evt_log_info { + __le32 newest_seq_num; + __le32 oldest_seq_num; + __le32 clear_seq_num; + __le32 shutdown_seq_num; + __le32 boot_seq_num; }; -struct physdev_dbgp_op { - uint8_t op; - uint8_t bus; +struct compat_megasas_iocpacket { + u16 host_no; + u16 __pad1; + u32 sgl_off; + u32 sge_count; + u32 sense_off; + u32 sense_len; union { - struct physdev_pci_device pci; - } u; + u8 raw[128]; + struct megasas_header hdr; + } frame; + struct compat_iovec sgl[16]; }; -enum spmi_regulator_type { - SPMI_REGULATOR_TYPE_BUCK = 3, - SPMI_REGULATOR_TYPE_LDO = 4, - SPMI_REGULATOR_TYPE_VS = 5, - SPMI_REGULATOR_TYPE_BOOST = 27, - SPMI_REGULATOR_TYPE_FTS = 28, - SPMI_REGULATOR_TYPE_BOOST_BYP = 31, - SPMI_REGULATOR_TYPE_ULT_LDO = 33, - SPMI_REGULATOR_TYPE_ULT_BUCK = 34, +struct megasas_aen { + u16 host_no; + u16 __pad1; + u32 seq_num; + u32 class_locale_word; }; -enum spmi_regulator_subtype { - SPMI_REGULATOR_SUBTYPE_GP_CTL = 8, - SPMI_REGULATOR_SUBTYPE_RF_CTL = 9, - SPMI_REGULATOR_SUBTYPE_N50 = 1, - SPMI_REGULATOR_SUBTYPE_N150 = 2, - SPMI_REGULATOR_SUBTYPE_N300 = 3, - SPMI_REGULATOR_SUBTYPE_N600 = 4, - SPMI_REGULATOR_SUBTYPE_N1200 = 5, - SPMI_REGULATOR_SUBTYPE_N600_ST = 6, - SPMI_REGULATOR_SUBTYPE_N1200_ST = 7, - SPMI_REGULATOR_SUBTYPE_N900_ST = 20, - SPMI_REGULATOR_SUBTYPE_N300_ST = 21, - SPMI_REGULATOR_SUBTYPE_P50 = 8, - SPMI_REGULATOR_SUBTYPE_P150 = 9, - SPMI_REGULATOR_SUBTYPE_P300 = 10, - SPMI_REGULATOR_SUBTYPE_P600 = 11, - SPMI_REGULATOR_SUBTYPE_P1200 = 12, - SPMI_REGULATOR_SUBTYPE_LN = 16, - SPMI_REGULATOR_SUBTYPE_LV_P50 = 40, - SPMI_REGULATOR_SUBTYPE_LV_P150 = 41, - SPMI_REGULATOR_SUBTYPE_LV_P300 = 42, - SPMI_REGULATOR_SUBTYPE_LV_P600 = 43, - SPMI_REGULATOR_SUBTYPE_LV_P1200 = 44, - SPMI_REGULATOR_SUBTYPE_LV_P450 = 45, - SPMI_REGULATOR_SUBTYPE_HT_N300_ST = 48, - SPMI_REGULATOR_SUBTYPE_HT_N600_ST = 49, - SPMI_REGULATOR_SUBTYPE_HT_N1200_ST = 50, - SPMI_REGULATOR_SUBTYPE_HT_LVP150 = 59, - SPMI_REGULATOR_SUBTYPE_HT_LVP300 = 60, - SPMI_REGULATOR_SUBTYPE_L660_N300_ST = 66, - SPMI_REGULATOR_SUBTYPE_L660_N600_ST = 67, - SPMI_REGULATOR_SUBTYPE_L660_P50 = 70, - SPMI_REGULATOR_SUBTYPE_L660_P150 = 71, - SPMI_REGULATOR_SUBTYPE_L660_P600 = 73, - SPMI_REGULATOR_SUBTYPE_L660_LVP150 = 77, - SPMI_REGULATOR_SUBTYPE_L660_LVP600 = 79, - SPMI_REGULATOR_SUBTYPE_LV100 = 1, - SPMI_REGULATOR_SUBTYPE_LV300 = 2, - SPMI_REGULATOR_SUBTYPE_MV300 = 8, - SPMI_REGULATOR_SUBTYPE_MV500 = 9, - SPMI_REGULATOR_SUBTYPE_HDMI = 16, - SPMI_REGULATOR_SUBTYPE_OTG = 17, - SPMI_REGULATOR_SUBTYPE_5V_BOOST = 1, - SPMI_REGULATOR_SUBTYPE_FTS_CTL = 8, - SPMI_REGULATOR_SUBTYPE_FTS2p5_CTL = 9, - SPMI_REGULATOR_SUBTYPE_FTS426_CTL = 10, - SPMI_REGULATOR_SUBTYPE_BB_2A = 1, - SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL1 = 13, - SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL2 = 14, - SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL3 = 15, - SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL4 = 16, - SPMI_REGULATOR_SUBTYPE_HFS430 = 10, - SPMI_REGULATOR_SUBTYPE_HT_P150 = 53, - SPMI_REGULATOR_SUBTYPE_HT_P600 = 61, - SPMI_REGULATOR_SUBTYPE_HFSMPS_510 = 10, - SPMI_REGULATOR_SUBTYPE_FTSMPS_510 = 11, - SPMI_REGULATOR_SUBTYPE_LV_P150_510 = 113, - SPMI_REGULATOR_SUBTYPE_LV_P300_510 = 114, - SPMI_REGULATOR_SUBTYPE_LV_P600_510 = 115, - SPMI_REGULATOR_SUBTYPE_N300_510 = 106, - SPMI_REGULATOR_SUBTYPE_N600_510 = 107, - SPMI_REGULATOR_SUBTYPE_N1200_510 = 108, - SPMI_REGULATOR_SUBTYPE_MV_P50_510 = 122, - SPMI_REGULATOR_SUBTYPE_MV_P150_510 = 123, - SPMI_REGULATOR_SUBTYPE_MV_P600_510 = 125, -}; +struct cfi_pri_intelext { + uint8_t pri[3]; + uint8_t MajorVersion; + uint8_t MinorVersion; + uint32_t FeatureSupport; + uint8_t SuspendCmdSupport; + uint16_t BlkStatusRegMask; + uint8_t VccOptimal; + uint8_t VppOptimal; + uint8_t NumProtectionFields; + uint16_t ProtRegAddr; + uint8_t FactProtRegSize; + uint8_t UserProtRegSize; + uint8_t extra[0]; +} __attribute__((packed)); -enum spmi_regulator_logical_type { - SPMI_REGULATOR_LOGICAL_TYPE_SMPS = 0, - SPMI_REGULATOR_LOGICAL_TYPE_LDO = 1, - SPMI_REGULATOR_LOGICAL_TYPE_VS = 2, - SPMI_REGULATOR_LOGICAL_TYPE_BOOST = 3, - SPMI_REGULATOR_LOGICAL_TYPE_FTSMPS = 4, - SPMI_REGULATOR_LOGICAL_TYPE_BOOST_BYP = 5, - SPMI_REGULATOR_LOGICAL_TYPE_LN_LDO = 6, - SPMI_REGULATOR_LOGICAL_TYPE_ULT_LO_SMPS = 7, - SPMI_REGULATOR_LOGICAL_TYPE_ULT_HO_SMPS = 8, - SPMI_REGULATOR_LOGICAL_TYPE_ULT_LDO = 9, - SPMI_REGULATOR_LOGICAL_TYPE_FTSMPS426 = 10, - SPMI_REGULATOR_LOGICAL_TYPE_HFS430 = 11, - SPMI_REGULATOR_LOGICAL_TYPE_FTSMPS3 = 12, - SPMI_REGULATOR_LOGICAL_TYPE_LDO_510 = 13, - SPMI_REGULATOR_LOGICAL_TYPE_HFSMPS = 14, +struct cfi_extquery { + uint8_t pri[3]; + uint8_t MajorVersion; + uint8_t MinorVersion; }; -struct spmi_voltage_set_points; +typedef void (*btf_trace_spmi_write_begin)(void *, u8, u8, u16, u8, const u8 *); -struct spmi_regulator_mapping { - enum spmi_regulator_type type; - enum spmi_regulator_subtype subtype; - enum spmi_regulator_logical_type logical_type; - u32 revision_min; - u32 revision_max; - const struct regulator_ops *ops; - struct spmi_voltage_set_points *set_points; - int hpm_min_load; -}; +typedef void (*btf_trace_spmi_write_end)(void *, u8, u8, u16, int); -struct spmi_voltage_range; +typedef void (*btf_trace_spmi_read_begin)(void *, u8, u8, u16); -struct spmi_voltage_set_points { - struct spmi_voltage_range *range; - int count; - unsigned int n_voltages; +typedef void (*btf_trace_spmi_read_end)(void *, u8, u8, u16, int, u8, const u8 *); + +typedef void (*btf_trace_spmi_cmd)(void *, u8, u8, int); + +struct trace_event_raw_spmi_write_begin { + struct trace_entry ent; + u8 opcode; + u8 sid; + u16 addr; + u8 len; + u32 __data_loc_buf; + char __data[0]; }; -struct spmi_voltage_range { - int min_uV; - int max_uV; - int step_uV; - int set_point_min_uV; - int set_point_max_uV; - unsigned int n_voltages; - u8 range_sel; +struct trace_event_raw_spmi_write_end { + struct trace_entry ent; + u8 opcode; + u8 sid; + u16 addr; + int ret; + char __data[0]; }; -struct spmi_regulator_data { - const char *name; - u16 base; - const char *supply; - const char *ocp; - u16 force_type; +struct trace_event_raw_spmi_read_begin { + struct trace_entry ent; + u8 opcode; + u8 sid; + u16 addr; + char __data[0]; }; -enum spmi_common_regulator_registers { - SPMI_COMMON_REG_DIG_MAJOR_REV = 1, - SPMI_COMMON_REG_TYPE = 4, - SPMI_COMMON_REG_SUBTYPE = 5, - SPMI_COMMON_REG_VOLTAGE_RANGE = 64, - SPMI_COMMON_REG_VOLTAGE_SET = 65, - SPMI_COMMON_REG_MODE = 69, - SPMI_COMMON_REG_ENABLE = 70, - SPMI_COMMON_REG_PULL_DOWN = 72, - SPMI_COMMON_REG_SOFT_START = 76, - SPMI_COMMON_REG_STEP_CTRL = 97, +struct trace_event_raw_spmi_read_end { + struct trace_entry ent; + u8 opcode; + u8 sid; + u16 addr; + int ret; + u8 len; + u32 __data_loc_buf; + char __data[0]; }; -enum spmi_vs_soft_start_str { - SPMI_VS_SOFT_START_STR_0P05_UA = 0, - SPMI_VS_SOFT_START_STR_0P25_UA = 1, - SPMI_VS_SOFT_START_STR_0P55_UA = 2, - SPMI_VS_SOFT_START_STR_0P75_UA = 3, - SPMI_VS_SOFT_START_STR_HW_DEFAULT = 4, +struct trace_event_raw_spmi_cmd { + struct trace_entry ent; + u8 opcode; + u8 sid; + int ret; + char __data[0]; }; -enum spmi_common_control_register_index { - SPMI_COMMON_IDX_VOLTAGE_RANGE = 0, - SPMI_COMMON_IDX_VOLTAGE_SET = 1, - SPMI_COMMON_IDX_MODE = 5, - SPMI_COMMON_IDX_ENABLE = 6, +struct spmi_device; + +struct spmi_driver { + struct device_driver driver; + int (*probe)(struct spmi_device *); + void (*remove)(struct spmi_device *); + void (*shutdown)(struct spmi_device *); }; -enum spmi_vs_registers { - SPMI_VS_REG_OCP = 74, - SPMI_VS_REG_SOFT_START = 76, +struct spmi_device { + struct device dev; + struct spmi_controller *ctrl; + u8 usid; }; -enum spmi_hfsmps_regulator_registers { - SPMI_HFSMPS_REG_STEP_CTRL = 60, - SPMI_HFSMPS_REG_PULL_DOWN = 160, +struct trace_event_data_offsets_spmi_write_begin { + u32 buf; }; -enum spmi_ftsmps426_regulator_registers { - SPMI_FTSMPS426_REG_VOLTAGE_LSB = 64, - SPMI_FTSMPS426_REG_VOLTAGE_MSB = 65, - SPMI_FTSMPS426_REG_VOLTAGE_ULS_LSB = 104, - SPMI_FTSMPS426_REG_VOLTAGE_ULS_MSB = 105, +struct trace_event_data_offsets_spmi_read_end { + u32 buf; }; -enum regulator_detection_severity { - REGULATOR_SEVERITY_PROT = 0, - REGULATOR_SEVERITY_ERR = 1, - REGULATOR_SEVERITY_WARN = 2, +struct trace_event_data_offsets_spmi_write_end {}; + +struct trace_event_data_offsets_spmi_read_begin {}; + +struct trace_event_data_offsets_spmi_cmd {}; + +struct mux_control; + +struct mdio_mux_multiplexer_state { + struct mux_control *muxc; + bool do_deselect; + void *mux_handle; }; -enum spmi_boost_registers { - SPMI_BOOST_REG_CURRENT_LIMIT = 74, +struct bcm4908_enet_dma_ring_bd; + +struct bcm4908_enet_dma_ring_slot; + +struct bcm4908_enet_dma_ring { + int is_tx; + int read_idx; + int write_idx; + int length; + u16 cfg_block; + u16 st_ram_block; + struct napi_struct napi; + union { + void *cpu_addr; + struct bcm4908_enet_dma_ring_bd *buf_desc; + }; + dma_addr_t dma_addr; + struct bcm4908_enet_dma_ring_slot *slots; }; -enum spmi_boost_byp_registers { - SPMI_BOOST_BYP_REG_CURRENT_LIMIT = 75, +struct bcm4908_enet_dma_ring_bd { + __le32 ctl; + __le32 addr; }; -enum spmi_saw3_registers { - SAW3_SECURE = 0, - SAW3_ID = 4, - SAW3_SPM_STS = 12, - SAW3_AVS_STS = 16, - SAW3_PMIC_STS = 20, - SAW3_RST = 24, - SAW3_VCTL = 28, - SAW3_AVS_CTL = 32, - SAW3_AVS_LIMIT = 36, - SAW3_AVS_DLY = 40, - SAW3_AVS_HYSTERESIS = 44, - SAW3_SPM_STS2 = 56, - SAW3_SPM_PMIC_DATA_3 = 76, - SAW3_VERSION = 4048, +struct bcm4908_enet_dma_ring_slot { + union { + void *buf; + struct sk_buff *skb; + }; + unsigned int len; + dma_addr_t dma_addr; }; -struct spmi_regulator { - struct regulator_desc desc; +struct bcm4908_enet { struct device *dev; - struct delayed_work ocp_work; - struct regmap *regmap; - struct spmi_voltage_set_points *set_points; - enum spmi_regulator_logical_type logical_type; - int ocp_irq; - int ocp_count; - int ocp_max_retries; - int ocp_retry_delay_ms; - int hpm_min_load; - int slew_rate; - ktime_t vs_enable_time; - u16 base; - struct list_head node; + struct net_device *netdev; + void *base; + int irq_tx; + struct bcm4908_enet_dma_ring tx_ring; + struct bcm4908_enet_dma_ring rx_ring; }; -struct spmi_regulator_init_data { - unsigned int pin_ctrl_enable; - unsigned int pin_ctrl_hpm; - enum spmi_vs_soft_start_str vs_soft_start_strength; +typedef void (*btf_trace_dpaa2_tx_fd)(void *, struct net_device *, const struct dpaa2_fd *); + +typedef void (*btf_trace_dpaa2_tx_xsk_fd)(void *, struct net_device *, const struct dpaa2_fd *); + +typedef void (*btf_trace_dpaa2_rx_fd)(void *, struct net_device *, const struct dpaa2_fd *); + +typedef void (*btf_trace_dpaa2_rx_xsk_fd)(void *, struct net_device *, const struct dpaa2_fd *); + +typedef void (*btf_trace_dpaa2_tx_conf_fd)(void *, struct net_device *, const struct dpaa2_fd *); + +typedef void (*btf_trace_dpaa2_eth_buf_seed)(void *, struct net_device *, void *, size_t, dma_addr_t, size_t, u16); + +typedef void (*btf_trace_dpaa2_xsk_buf_seed)(void *, struct net_device *, void *, size_t, dma_addr_t, size_t, u16); + +struct dpaa2_eth_dist_fields { + u64 rxnfc_field; + enum net_prot cls_prot; + int cls_field; + int size; + u64 id; }; -struct fsl8250_data { - int line; +enum dpaa2_fd_format { + dpaa2_fd_single = 0, + dpaa2_fd_list = 1, + dpaa2_fd_sg = 2, }; -struct memdev { - const char *name; - umode_t mode; - const struct file_operations *fops; - fmode_t fmode; +enum dpaa2_eth_swa_type { + DPAA2_ETH_SWA_SINGLE = 0, + DPAA2_ETH_SWA_SG = 1, + DPAA2_ETH_SWA_XDP = 2, + DPAA2_ETH_SWA_XSK = 3, + DPAA2_ETH_SWA_SW_TSO = 4, }; -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; +enum dpni_congestion_unit { + DPNI_CONGESTION_UNIT_BYTES = 0, + DPNI_CONGESTION_UNIT_FRAMES = 1, }; -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 dpni_congestion_point { + DPNI_CP_QUEUE = 0, + DPNI_CP_GROUP = 1, }; -enum iommu_fault_type { - IOMMU_FAULT_DMA_UNRECOV = 1, - IOMMU_FAULT_PAGE_REQ = 2, +enum dpni_queue_type { + DPNI_QUEUE_RX = 0, + DPNI_QUEUE_TX = 1, + DPNI_QUEUE_TX_CONFIRM = 2, + DPNI_QUEUE_RX_ERR = 3, }; -enum { - IOMMU_SET_DOMAIN_MUST_SUCCEED = 1, +enum dpaa2_eth_rx_dist { + DPAA2_ETH_RX_DIST_HASH = 0, + DPAA2_ETH_RX_DIST_CLS = 1, }; -struct group_device { - struct list_head list; - struct device *dev; - char *name; +enum dpkg_extract_type { + DPKG_EXTRACT_FROM_HDR = 0, + DPKG_EXTRACT_FROM_DATA = 1, + DPKG_EXTRACT_FROM_PARSE = 3, }; -struct group_for_pci_data { - struct pci_dev *pdev; - struct iommu_group *group; +enum dpkg_extract_from_hdr_type { + DPKG_FROM_HDR = 0, + DPKG_FROM_FIELD = 1, + DPKG_FULL_FIELD = 2, }; -struct chip_data___2 { - u32 cid_addr; - u32 cid_shift; - const struct mfd_cell *cells; - int cell_size; - int (*irq_init)(struct mt6397_chip *); +enum dpni_dist_mode { + DPNI_DIST_MODE_NONE = 0, + DPNI_DIST_MODE_HASH = 1, + DPNI_DIST_MODE_FS = 2, }; -typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *); +enum dpni_fs_miss_action { + DPNI_FS_MISS_DROP = 0, + DPNI_FS_MISS_EXPLICIT_FLOWID = 1, + DPNI_FS_MISS_HASH = 2, +}; -typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int); +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, +}; -typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *); +enum dpni_error_action { + DPNI_ERROR_ACTION_DISCARD = 0, + DPNI_ERROR_ACTION_CONTINUE = 1, + DPNI_ERROR_ACTION_SEND_TO_ERROR_QUEUE = 2, +}; -typedef void (*btf_trace_scsi_dispatch_cmd_timeout)(void *, struct scsi_cmnd *); +enum dpni_dest { + DPNI_DEST_NONE = 0, + DPNI_DEST_DPIO = 1, + DPNI_DEST_DPCON = 2, +}; -typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *); +enum tc_tbf_command { + TC_TBF_REPLACE = 0, + TC_TBF_DESTROY = 1, + TC_TBF_STATS = 2, + TC_TBF_GRAFT = 3, +}; -enum scsi_vpd_parameters { - SCSI_VPD_HEADER_SIZE = 4, +enum dpni_offload { + DPNI_OFF_RX_L3_CSUM = 0, + DPNI_OFF_RX_L4_CSUM = 1, + DPNI_OFF_TX_L3_CSUM = 2, + DPNI_OFF_TX_L4_CSUM = 3, }; -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 dpaa2_eth_swa { + enum dpaa2_eth_swa_type type; + union { + struct { + struct sk_buff *skb; + int sgt_size; + } single; + struct { + struct sk_buff *skb; + struct scatterlist *scl; + int num_sg; + int sgt_size; + } sg; + struct { + int dma_size; + struct xdp_frame *xdpf; + } xdp; + struct { + struct xdp_buff *xdp_buff; + int sgt_size; + } xsk; + struct { + struct sk_buff *skb; + int num_sg; + int sgt_size; + int is_last_fd; + } tso; + }; }; -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 dpaa2_sg_entry { + __le64 addr; + __le32 len; + __le16 bpid; + __le16 format_offset; }; -struct trace_event_raw_scsi_cmd_done_timeout_template { +struct trace_event_raw_dpaa2_eth_fd { struct trace_entry ent; - unsigned int host_no; - unsigned int channel; - unsigned int id; - unsigned int lun; - int result; - unsigned int opcode; - unsigned int cmd_len; - int driver_tag; - int scheduler_tag; - unsigned int data_sglen; - unsigned int prot_sglen; - unsigned char prot_op; - u32 __data_loc_cmnd; - u8 sense_key; - u8 asc; - u8 ascq; + u64 fd_addr; + u32 fd_len; + u16 fd_offset; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_scsi_eh_wakeup { +struct trace_event_raw_dpaa2_eth_buf { struct trace_entry ent; - unsigned int host_no; + void *vaddr; + size_t size; + dma_addr_t dma_addr; + size_t map_size; + u16 bpid; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_data_offsets_scsi_dispatch_cmd_start { - u32 cmnd; +struct trace_event_data_offsets_dpaa2_eth_fd { + u32 name; }; -struct trace_event_data_offsets_scsi_dispatch_cmd_error { - u32 cmnd; +struct trace_event_data_offsets_dpaa2_eth_buf { + u32 name; }; -struct trace_event_data_offsets_scsi_cmd_done_timeout_template { - u32 cmnd; +struct dpaa2_faead { + __le32 conf_fqid; + __le32 ctrl; }; -struct trace_event_data_offsets_scsi_eh_wakeup {}; - -enum ahci_qoriq_type { - AHCI_LS1021A = 0, - AHCI_LS1028A = 1, - AHCI_LS1043A = 2, - AHCI_LS2080A = 3, - AHCI_LS1046A = 4, - AHCI_LS1088A = 5, - AHCI_LS2088A = 6, - AHCI_LX2160A = 7, +struct dpni_taildrop { + char enable; + enum dpni_congestion_unit units; + u32 threshold; }; -struct ccsr_ahci; - -struct ahci_qoriq_priv { - struct ccsr_ahci *reg_base; - enum ahci_qoriq_type type; - void *ecc_addr; - bool is_dmacoherent; +struct dpbp_attr { + int id; + u16 bpid; }; -enum { - MICRON_ON_DIE_UNSUPPORTED = 0, - MICRON_ON_DIE_SUPPORTED = 1, - MICRON_ON_DIE_MANDATORY = 2, +struct dpni_rx_dist_cfg { + u16 dist_size; + u64 key_cfg_iova; + u8 enable; + u8 tc; + u16 fs_miss_flow_id; }; -struct nand_onfi_vendor_micron { - u8 two_plane_read; - u8 read_cache; - u8 read_unique_id; - u8 dq_imped; - u8 dq_imped_num_settings; - u8 dq_imped_feat_addr; - u8 rb_pulldown_strength; - u8 rb_pulldown_strength_feat_addr; - u8 rb_pulldown_strength_num_settings; - u8 otp_mode; - u8 otp_page_start; - u8 otp_data_prot_addr; - u8 otp_num_pages; - u8 otp_feat_addr; - u8 read_retry_options; - u8 reserved[72]; - u8 param_revision; +struct dpni_fs_tbl_cfg { + enum dpni_fs_miss_action miss_action; + u16 default_flow_id; }; -struct micron_on_die_ecc { - bool forced; - bool enabled; - void *rawbuf; +struct dpni_rx_tc_dist_cfg { + u16 dist_size; + enum dpni_dist_mode dist_mode; + u64 key_cfg_iova; + struct dpni_fs_tbl_cfg fs_cfg; }; -struct micron_nand { - struct micron_on_die_ecc ecc; +struct dpkg_mask { + u8 mask; + u8 offset; }; -struct bcm_qspi_data { - bool has_mspi_rev; - bool has_spcr3_sysclk; +struct dpkg_extract { + enum dpkg_extract_type type; + union { + struct { + enum net_prot prot; + enum dpkg_extract_from_hdr_type type; + u32 field; + u8 size; + u8 offset; + u8 hdr_index; + } from_hdr; + struct { + u8 size; + u8 offset; + } from_data; + struct { + u8 size; + u8 offset; + } from_parse; + } extract; + u8 num_of_byte_masks; + struct dpkg_mask masks[4]; }; -struct bcm_qspi_irq { - const char *irq_name; - const irq_handler_t irq_handler; - int irq_source; - u32 mask; +struct dpkg_profile_cfg { + u8 num_extracts; + struct dpkg_extract extracts[10]; }; -enum base_type { - MSPI = 0, - BSPI = 1, - CHIP_SELECT = 2, - BASEMAX = 3, +struct dpni_buffer_layout { + u32 options; + int pass_timestamp; + int pass_parser_result; + int pass_frame_status; + u16 private_data_size; + u16 data_align; + u16 data_head_room; + u16 data_tail_room; }; -enum { - MSPI_DONE = 1, - BSPI_DONE = 2, - BSPI_ERR = 4, - MSPI_BSPI_DONE = 7, +struct dpni_qos_tbl_cfg { + u64 key_cfg_iova; + int discard_on_miss; + u8 default_tc; }; -enum irq_source { - SINGLE_L2 = 0, - MUXED_L1 = 1, +struct dpni_queue { + struct { + u16 id; + enum dpni_dest type; + char hold_active; + u8 priority; + } destination; + u64 user_context; + struct { + u64 value; + char stash_control; + } flc; }; -struct bcm_qspi_parms { - u32 speed_hz; - u8 mode; - u8 bits_per_word; +struct dpni_queue_id { + u32 fqid; + u16 qdbin; }; -struct qspi_trans { - struct spi_transfer *trans; - int byte; - bool mspi_last_trans; +struct dpni_pools_cfg { + u8 num_dpbp; + u8 pool_options; + struct { + int dpbp_id; + u8 priority_mask; + u16 buffer_size; + int backup_pool; + } pools[8]; }; -struct bcm_xfer_mode { - bool flex_mode; - unsigned int width; - unsigned int addrlen; - unsigned int hp; +struct dpni_error_cfg { + u32 errors; + enum dpni_error_action error_action; + int set_frame_annotation; }; -struct bcm_qspi_soc_intc; - -struct bcm_qspi_dev_id; - -struct bcm_qspi { - struct platform_device *pdev; - struct spi_controller *master; - struct clk *clk; - u32 base_clk; - u32 max_speed_hz; - void *base[3]; - struct bcm_qspi_soc_intc *soc_intc; - struct bcm_qspi_parms last_parms; - struct qspi_trans trans_pos; - int curr_cs; - int bspi_maj_rev; - int bspi_min_rev; - int bspi_enabled; - const struct spi_mem_op *bspi_rf_op; - u32 bspi_rf_op_idx; - u32 bspi_rf_op_len; - u32 bspi_rf_op_status; - struct bcm_xfer_mode xfer_mode; - u32 s3_strap_override_ctrl; - bool bspi_mode; - bool big_endian; - int num_irqs; - struct bcm_qspi_dev_id *dev_ids; - struct completion mspi_done; - struct completion bspi_done; - u8 mspi_maj_rev; - u8 mspi_min_rev; - bool mspi_spcr3_sysclk; +struct ptp_tstamp { + u16 sec_msb; + u32 sec_lsb; + u32 nsec; }; -struct bcm_qspi_soc_intc { - void (*bcm_qspi_int_ack)(struct bcm_qspi_soc_intc *, int); - void (*bcm_qspi_int_set)(struct bcm_qspi_soc_intc *, int, bool); - u32 (*bcm_qspi_get_int_status)(struct bcm_qspi_soc_intc *); +struct dpaa2_fas { + u8 reserved; + u8 ppid; + __le16 ifpid; + __le32 status; }; -struct bcm_qspi_dev_id { - const struct bcm_qspi_irq *irqp; - void *dev; +struct dpaa2_fapr { + __le32 faf_lo; + __le16 faf_ext; + __le16 nxt_hdr; + __le64 faf_hi; + u8 last_ethertype_offset; + u8 vlan_tci_offset_n; + u8 vlan_tci_offset_1; + u8 llc_snap_offset; + u8 eth_offset; + u8 ip1_pid_offset; + u8 shim_offset_2; + u8 shim_offset_1; + u8 l5_offset; + u8 l4_offset; + u8 gre_offset; + u8 l3_offset_n; + u8 l3_offset_1; + u8 mpls_offset_n; + u8 mpls_offset_1; + u8 pppoe_offset; + __le16 running_sum; + __le16 gross_running_sum; + u8 ipv6_frag_offset; + u8 nxt_hdr_offset; + u8 routing_hdr_offset_2; + u8 routing_hdr_offset_1; + u8 reserved[5]; + u8 ip_proto_offset_n; + u8 nxt_hdr_frag_offset; + u8 parse_error_code; }; -struct reg_val { - u16 reg; - u32 val; +struct common { + u8 verb; + u8 reserved[63]; }; -struct vsc8531_edge_rate_table { - u32 vddmac; - u32 slowdown[8]; +struct dq { + u8 verb; + u8 stat; + __le16 seqnum; + __le16 oprid; + u8 reserved; + u8 tok; + __le32 fqid; + u32 reserved2; + __le32 fq_byte_cnt; + __le32 fq_frm_cnt; + __le64 fqd_ctx; + u8 fd[32]; }; -struct vsc85xx_hw_stat { - const char *string; - u8 reg; - u16 page; - u16 mask; +struct scn { + u8 verb; + u8 stat; + u8 state; + u8 reserved; + __le32 rid_tok; + __le64 ctx; }; -enum rgmii_clock_delay { - RGMII_CLK_DELAY_0_2_NS = 0, - RGMII_CLK_DELAY_0_8_NS = 1, - RGMII_CLK_DELAY_1_1_NS = 2, - RGMII_CLK_DELAY_1_7_NS = 3, - RGMII_CLK_DELAY_2_0_NS = 4, - RGMII_CLK_DELAY_2_3_NS = 5, - RGMII_CLK_DELAY_2_6_NS = 6, - RGMII_CLK_DELAY_3_4_NS = 7, +struct dpaa2_dq { + union { + struct common common; + struct dq dq; + struct scn scn; + }; }; -struct vsc85xx_ptp; - -struct vsc8531_private { - int rate_magic; - u16 supp_led_modes; - u32 leds_mode[4]; - u8 nleds; - const struct vsc85xx_hw_stat *hw_stats; - u64 *stats; - int nstats; - u8 addr; - unsigned int base_addr; - struct mii_timestamper mii_ts; - bool input_clk_init; - struct vsc85xx_ptp *ptp; - struct gpio_desc *load_save; - unsigned int ts_base_addr; - u8 ts_base_phy; - struct mutex ts_lock; - struct mutex phc_lock; +struct dpni_single_step_cfg { + u8 en; + u8 ch_update; + u16 offset; + u32 peer_delay; + u32 ptp_onestep_reg_base; }; -struct tgec_mdio_controller; +struct tc_tbf_qopt_offload_replace_params { + struct psched_ratecfg rate; + u32 max_size; + struct gnet_stats_queue *qstats; +}; -struct mdio_fsl_priv { - struct tgec_mdio_controller *mdio_base; - struct clk *enet_clk; - u32 mdc_freq; - bool is_little_endian; - bool has_a009885; - bool has_a011043; +struct tc_qopt_offload_stats { + struct gnet_stats_basic_sync *bstats; + struct gnet_stats_queue *qstats; }; -struct tgec_mdio_controller { - __be32 reserved[12]; - __be32 mdio_stat; - __be32 mdio_ctl; - __be32 mdio_data; - __be32 mdio_addr; +struct tc_tbf_qopt_offload { + enum tc_tbf_command command; + u32 handle; + u32 parent; + union { + struct tc_tbf_qopt_offload_replace_params replace_params; + struct tc_qopt_offload_stats stats; + u32 child_handle; + }; }; -struct fman_mac___2; +struct dpni_tx_shaping_cfg { + u32 rate_limit; + u16 max_burst_size; +}; -struct mac_device___2 { - void *vaddr; - struct device *dev; - struct resource *res; - u8 addr[6]; - struct fman_port *port[2]; - struct phylink *phylink; - struct phylink_config phylink_config; - phy_interface_t phy_if; - bool promisc; - bool allmulti; - const struct phylink_mac_ops *phylink_ops; - int (*enable)(struct fman_mac___2 *); - void (*disable)(struct fman_mac___2 *); - int (*set_promisc)(struct fman_mac___2 *, bool); - int (*change_addr)(struct fman_mac___2 *, const enet_addr_t *); - int (*set_allmulti)(struct fman_mac___2 *, bool); - int (*set_tstamp)(struct fman_mac___2 *, bool); - int (*set_multi)(struct net_device *, struct mac_device___2 *); - int (*set_exception)(struct fman_mac___2 *, enum fman_mac_exceptions, bool); - int (*add_hash_mac_addr)(struct fman_mac___2 *, enet_addr_t *); - int (*remove_hash_mac_addr)(struct fman_mac___2 *, enet_addr_t *); - void (*update_speed)(struct mac_device___2 *, int); - struct fman_mac___2 *fman_mac; - struct mac_priv_s *priv; +enum { + e1000_igp_cable_length_10 = 10, + e1000_igp_cable_length_20 = 20, + e1000_igp_cable_length_30 = 30, + e1000_igp_cable_length_40 = 40, + e1000_igp_cable_length_50 = 50, + e1000_igp_cable_length_60 = 60, + e1000_igp_cable_length_70 = 70, + e1000_igp_cable_length_80 = 80, + e1000_igp_cable_length_90 = 90, + e1000_igp_cable_length_100 = 100, + e1000_igp_cable_length_110 = 110, + e1000_igp_cable_length_115 = 115, + e1000_igp_cable_length_120 = 120, + e1000_igp_cable_length_130 = 130, + e1000_igp_cable_length_140 = 140, + e1000_igp_cable_length_150 = 150, + e1000_igp_cable_length_160 = 160, + e1000_igp_cable_length_170 = 170, + e1000_igp_cable_length_180 = 180, }; -typedef void fman_mac_exception_cb___2(struct mac_device___2 *, enum fman_mac_exceptions); +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 memac_regs; +struct e1000_host_mng_command_header { + u8 command_id; + u8 checksum; + u16 reserved1; + u16 reserved2; + u16 command_length; +}; -struct memac_cfg; +struct am65_cpsw_soc_pdata { + u32 quirks_dis; +}; -struct fman_mac___2 { - struct memac_regs *regs; - u64 addr; - struct mac_device___2 *dev_id; - fman_mac_exception_cb___2 *exception_cb; - fman_mac_exception_cb___2 *event_cb; - struct eth_hash_t *multicast_addr_hash; - struct eth_hash_t *unicast_addr_hash; - u8 mac_id; - u32 exceptions; - struct memac_cfg *memac_drv_param; - void *fm; - struct fman_rev_info fm_rev_info; - struct phy *serdes; - struct phylink_pcs *sgmii_pcs; - struct phylink_pcs *qsgmii_pcs; - struct phylink_pcs *xfi_pcs; - bool allmulti_enabled; - bool rgmii_no_half_duplex; +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 mac_addr___2 { - u32 mac_addr_l; - u32 mac_addr_u; +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 *); }; -struct memac_regs { - u32 res0000[2]; - u32 command_config; - struct mac_addr___2 mac_addr0; - u32 maxfrm; - u32 res0018[1]; - u32 rx_fifo_sections; - u32 tx_fifo_sections; - u32 res0024[2]; - u32 hashtable_ctrl; - u32 res0030[4]; - u32 ievent; - u32 tx_ipg_length; - u32 res0048; - u32 imask; - u32 res0050; - u32 pause_quanta[4]; - u32 pause_thresh[4]; - u32 rx_pause_status; - u32 res0078[2]; - struct mac_addr___2 mac_addr[7]; - u32 lpwake_timer; - u32 sleep_timer; - u32 res00c0[8]; - u32 statn_config; - u32 res00e4[7]; - u32 reoct_l; - u32 reoct_u; - u32 roct_l; - u32 roct_u; - u32 raln_l; - u32 raln_u; - u32 rxpf_l; - u32 rxpf_u; - u32 rfrm_l; - u32 rfrm_u; - u32 rfcs_l; - u32 rfcs_u; - u32 rvlan_l; - u32 rvlan_u; - u32 rerr_l; - u32 rerr_u; - u32 ruca_l; - u32 ruca_u; - u32 rmca_l; - u32 rmca_u; - u32 rbca_l; - u32 rbca_u; - u32 rdrp_l; - u32 rdrp_u; - u32 rpkt_l; - u32 rpkt_u; - u32 rund_l; - u32 rund_u; - u32 r64_l; - u32 r64_u; - u32 r127_l; - u32 r127_u; - u32 r255_l; - u32 r255_u; - u32 r511_l; - u32 r511_u; - u32 r1023_l; - u32 r1023_u; - u32 r1518_l; - u32 r1518_u; - u32 r1519x_l; - u32 r1519x_u; - u32 rovr_l; - u32 rovr_u; - u32 rjbr_l; - u32 rjbr_u; - u32 rfrg_l; - u32 rfrg_u; - u32 rcnp_l; - u32 rcnp_u; - u32 rdrntp_l; - u32 rdrntp_u; - u32 res01d0[12]; - u32 teoct_l; - u32 teoct_u; - u32 toct_l; - u32 toct_u; - u32 res0210[2]; - u32 txpf_l; - u32 txpf_u; - u32 tfrm_l; - u32 tfrm_u; - u32 tfcs_l; - u32 tfcs_u; - u32 tvlan_l; - u32 tvlan_u; - u32 terr_l; - u32 terr_u; - u32 tuca_l; - u32 tuca_u; - u32 tmca_l; - u32 tmca_u; - u32 tbca_l; - u32 tbca_u; - u32 res0258[2]; - u32 tpkt_l; - u32 tpkt_u; - u32 tund_l; - u32 tund_u; - u32 t64_l; - u32 t64_u; - u32 t127_l; - u32 t127_u; - u32 t255_l; - u32 t255_u; - u32 t511_l; - u32 t511_u; - u32 t1023_l; - u32 t1023_u; - u32 t1518_l; - u32 t1518_u; - u32 t1519x_l; - u32 t1519x_u; - u32 res02a8[6]; - u32 tcnp_l; - u32 tcnp_u; - u32 res02c8[14]; - u32 if_mode; - u32 if_status; - u32 res0308[14]; - u32 hg_config; - u32 res0344[3]; - u32 hg_pause_quanta; - u32 res0354[3]; - u32 hg_pause_thresh; - u32 res0364[3]; - u32 hgrx_pause_status; - u32 hg_fifos_status; - u32 rhm; - u32 thm; +struct am65_cpsw_pdata { + u32 quirks; + u64 extra_modes; + enum k3_ring_mode fdqring_mode; + const char *ale_dev_id; }; -struct memac_cfg { - bool reset_on_init; - bool pause_ignore; - bool promiscuous_mode_enable; - struct fixed_phy_status *fixed_link; - u16 max_frame_length; - u16 pause_quanta; - u32 tx_ipg_length; +enum tc_taprio_qopt_cmd { + TAPRIO_CMD_REPLACE = 0, + TAPRIO_CMD_DESTROY = 1, + TAPRIO_CMD_STATS = 2, + TAPRIO_CMD_QUEUE_STATS = 3, }; -struct fman_mac_params___2 { - u8 mac_id; - void *fm; - fman_mac_exception_cb___2 *event_cb; - fman_mac_exception_cb___2 *exception_cb; +enum { + CPSW_SL_CTL_FULLDUPLEX = 1, + CPSW_SL_CTL_LOOPBACK = 2, + CPSW_SL_CTL_MTEST = 4, + CPSW_SL_CTL_RX_FLOW_EN = 8, + CPSW_SL_CTL_TX_FLOW_EN = 16, + CPSW_SL_CTL_GMII_EN = 32, + CPSW_SL_CTL_TX_PACE = 64, + CPSW_SL_CTL_GIG = 128, + CPSW_SL_CTL_XGIG = 256, + CPSW_SL_CTL_TX_SHORT_GAP_EN = 1024, + CPSW_SL_CTL_CMD_IDLE = 2048, + CPSW_SL_CTL_CRC_TYPE = 4096, + CPSW_SL_CTL_XGMII_EN = 8192, + CPSW_SL_CTL_IFCTL_A = 32768, + CPSW_SL_CTL_IFCTL_B = 65536, + CPSW_SL_CTL_GIG_FORCE = 131072, + CPSW_SL_CTL_EXT_EN = 262144, + CPSW_SL_CTL_EXT_EN_RX_FLO = 524288, + CPSW_SL_CTL_EXT_EN_TX_FLO = 1048576, + CPSW_SL_CTL_TX_SG_LIM_EN = 2097152, + CPSW_SL_CTL_RX_CEF_EN = 4194304, + CPSW_SL_CTL_RX_CSF_EN = 8388608, + CPSW_SL_CTL_RX_CMF_EN = 16777216, + CPSW_SL_CTL_EXT_EN_XGIG = 33554432, + CPSW_SL_CTL_FUNCS_COUNT = 33554433, }; -struct hns3_dbg_dentry_info { - const char *name; - struct dentry *dentry; +enum cpsw_ale_port_state { + ALE_PORT_STATE_DISABLE = 0, + ALE_PORT_STATE_BLOCK = 1, + ALE_PORT_STATE_LEARN = 2, + ALE_PORT_STATE_FORWARD = 3, }; -enum hns3_dbg_dentry_type { - HNS3_DBG_DENTRY_TM = 0, - HNS3_DBG_DENTRY_TX_BD = 1, - HNS3_DBG_DENTRY_RX_BD = 2, - HNS3_DBG_DENTRY_MAC = 3, - HNS3_DBG_DENTRY_REG = 4, - HNS3_DBG_DENTRY_QUEUE = 5, - HNS3_DBG_DENTRY_FD = 6, - HNS3_DBG_DENTRY_COMMON = 7, +enum { + K3_UDMA_GLUE_SRC_TAG_LO_KEEP = 0, + K3_UDMA_GLUE_SRC_TAG_LO_USE_FLOW_REG = 1, + K3_UDMA_GLUE_SRC_TAG_LO_USE_REMOTE_FLOW_ID = 2, + K3_UDMA_GLUE_SRC_TAG_LO_USE_REMOTE_SRC_TAG = 4, }; -struct hns3_dbg_cmd_info { - const char *name; - enum hnae3_dbg_cmd cmd; - enum hns3_dbg_dentry_type dentry; - u32 buf_len; - int (*init)(struct hnae3_handle *, unsigned int); +enum cpsw_devlink_param_id { + AM65_CPSW_DEVLINK_PARAM_ID_BASE = 16, + AM65_CPSW_DL_PARAM_SWITCH_MODE = 17, }; -struct hns3_dbg_data; +struct am65_cpsw_port; -struct hns3_dbg_func { - enum hnae3_dbg_cmd cmd; - int (*dbg_dump)(struct hnae3_handle *, char *, int); - int (*dbg_dump_bd)(struct hns3_dbg_data *, char *, int); -}; +struct am65_cpsw_ndev_stats; -struct hns3_dbg_data { - struct hnae3_handle *handle; - enum hnae3_dbg_cmd cmd; - u16 qid; +struct am65_cpsw_ndev_priv { + u32 msg_enable; + struct am65_cpsw_port *port; + struct am65_cpsw_ndev_stats __attribute__((btf_type_tag("percpu"))) *stats; + bool offload_fwd_mark; }; -struct hns3_dbg_item { - char name[32]; - u16 interval; +struct am65_cpsw_slave_data { + bool mac_only; + struct cpsw_sl *mac_sl; + struct device_node *phy_node; + phy_interface_t phy_if; + struct phy *ifphy; + struct phy *serdes_phy; + bool rx_pause; + bool tx_pause; + u8 mac_addr[6]; + int port_vlan; + struct phylink *phylink; + struct phylink_config phylink_config; }; -struct hns3_dbg_cap_info { - const char *name; - enum HNAE3_DEV_CAP_BITS cap_bit; +struct am65_cpsw_ale_ratelimit { + unsigned long cookie; + u64 rate_packet_ps; }; -enum hns3_flow_level_range { - HNS3_FLOW_LOW = 0, - HNS3_FLOW_MID = 1, - HNS3_FLOW_HIGH = 2, - HNS3_FLOW_ULTRA = 3, +struct am65_cpsw_est; + +struct am65_cpsw_qos { + struct am65_cpsw_est *est_admin; + struct am65_cpsw_est *est_oper; + ktime_t link_down_time; + int link_speed; + struct am65_cpsw_ale_ratelimit ale_bc_ratelimit; + struct am65_cpsw_ale_ratelimit ale_mc_ratelimit; }; -enum hns3_nic_state { - HNS3_NIC_STATE_TESTING = 0, - HNS3_NIC_STATE_RESETTING = 1, - HNS3_NIC_STATE_INITED = 2, - HNS3_NIC_STATE_DOWN = 3, - HNS3_NIC_STATE_DISABLED = 4, - HNS3_NIC_STATE_REMOVING = 5, - HNS3_NIC_STATE_SERVICE_INITED = 6, - HNS3_NIC_STATE_SERVICE_SCHED = 7, - HNS3_NIC_STATE2_RESET_REQUESTED = 8, - HNS3_NIC_STATE_HW_TX_CSUM_ENABLE = 9, - HNS3_NIC_STATE_RXD_ADV_LAYOUT_ENABLE = 10, - HNS3_NIC_STATE_TX_PUSH_ENABLE = 11, - HNS3_NIC_STATE_MAX = 12, +struct am65_cpsw_common; + +struct am65_cpsw_port { + struct am65_cpsw_common *common; + struct net_device *ndev; + const char *name; + u32 port_id; + void *port_base; + void *sgmii_base; + void *stat_base; + void *fetch_ram_base; + bool disabled; + struct am65_cpsw_slave_data slave; + bool tx_ts_enabled; + bool rx_ts_enabled; + struct am65_cpsw_qos qos; + struct devlink_port devlink_port; + u32 vid_context; }; -struct hns3_desc { - union { - __le64 addr; - __le16 csum; - struct { - __le32 ts_nsec; - __le32 ts_sec; - }; - }; - union { - struct { - __le16 vlan_tag; - __le16 send_size; - union { - __le32 type_cs_vlan_tso_len; - struct { - __u8 type_cs_vlan_tso; - __u8 l2_len; - __u8 l3_len; - __u8 l4_len; - }; - }; - __le16 outer_vlan_tag; - __le16 tv; - union { - __le32 ol_type_vlan_len_msec; - struct { - __u8 ol_type_vlan_msec; - __u8 ol2_len; - __u8 ol3_len; - __u8 ol4_len; - }; - }; - __le32 paylen_ol4cs; - __le16 bdtp_fe_sc_vld_ra_ri; - __le16 mss_hw_csum; - } tx; - struct { - __le32 l234_info; - __le16 pkt_len; - __le16 size; - __le32 rss_hash; - __le16 fd_id; - __le16 vlan_tag; - union { - __le32 ol_info; - struct { - __le16 o_dm_vlan_id_fb; - __le16 ot_vlan_tag; - }; - }; - __le32 bd_base_info; - } rx; - }; +struct am65_cpsw_host { + struct am65_cpsw_common *common; + void *port_base; + void *stat_base; + u32 vid_context; }; -struct hns3_enet_coalesce { - u16 int_gl; - u16 int_ql; - u16 int_ql_max; - u8 adapt_enable: 1; - u8 ql_enable: 1; - u8 unit_1us: 1; - enum hns3_flow_level_range flow_level; +struct k3_cppi_desc_pool; + +struct am65_cpsw_tx_chn { + struct device *dma_dev; + struct napi_struct napi_tx; + struct am65_cpsw_common *common; + struct k3_cppi_desc_pool *desc_pool; + struct k3_udma_glue_tx_channel *tx_chn; + spinlock_t lock; + int irq; + u32 id; + u32 descs_num; + char tx_chn_name[128]; + u32 rate_mbps; }; -struct hns3_enet_ring; +struct am65_cpsw_rx_chn { + struct device *dev; + struct device *dma_dev; + struct k3_cppi_desc_pool *desc_pool; + struct k3_udma_glue_rx_channel *rx_chn; + u32 descs_num; + int irq; +}; -struct hns3_enet_tqp_vector; +struct am65_cpts; -struct hns3_nic_priv { - struct hnae3_handle *ae_handle; - struct net_device *netdev; +struct am65_cpsw_common { struct device *dev; - struct hns3_enet_ring *ring; - struct hns3_enet_tqp_vector *tqp_vector; - u16 vector_num; - u8 max_non_tso_bd_num; - u64 tx_timeout_count; - unsigned long state; - enum dim_cq_period_mode tx_cqe_mode; - enum dim_cq_period_mode rx_cqe_mode; - struct hns3_enet_coalesce tx_coal; - struct hns3_enet_coalesce rx_coal; - u32 tx_copybreak; - u32 rx_copybreak; + struct device *mdio_dev; + struct am65_cpsw_pdata pdata; + void *ss_base; + void *cpsw_base; + u32 port_num; + struct am65_cpsw_host host; + struct am65_cpsw_port *ports; + u32 disabled_ports_mask; + struct net_device *dma_ndev; + int usage_count; + struct cpsw_ale *ale; + int tx_ch_num; + u32 tx_ch_rate_msk; + u32 rx_flow_id_base; + struct am65_cpsw_tx_chn tx_chns[8]; + struct completion tdown_complete; + atomic_t tdown_cnt; + struct am65_cpsw_rx_chn rx_chns; + struct napi_struct napi_rx; + bool rx_irq_disabled; + u32 nuss_ver; + u32 cpsw_ver; + unsigned long bus_freq; + bool pf_p0_rx_ptype_rrobin; + struct am65_cpts *cpts; + int est_enabled; + bool is_emac_mode; + u16 br_members; + int default_vlan; + struct devlink *devlink; + struct net_device *hw_bridge_dev; + struct notifier_block am65_cpsw_netdevice_nb; + unsigned char switch_id[32]; + u32 *ale_context; }; -struct ring_stats___2 { - u64 sw_err_cnt; - u64 seg_pkt_cnt; - union { - struct { - u64 tx_pkts; - u64 tx_bytes; - u64 tx_more; - u64 tx_push; - u64 tx_mem_doorbell; - u64 restart_queue; - u64 tx_busy; - u64 tx_copy; - u64 tx_vlan_err; - u64 tx_l4_proto_err; - u64 tx_l2l3l4_err; - u64 tx_tso_err; - u64 over_max_recursion; - u64 hw_limitation; - u64 tx_bounce; - u64 tx_spare_full; - u64 copy_bits_err; - u64 tx_sgl; - u64 skb2sgl_err; - u64 map_sg_err; - }; - struct { - u64 rx_pkts; - u64 rx_bytes; - u64 rx_err_cnt; - u64 reuse_pg_cnt; - u64 err_pkt_len; - u64 err_bd_num; - u64 l2_err; - u64 l3l4_csum_err; - u64 csum_complete; - u64 rx_multicast; - u64 non_reuse_pg; - u64 frag_alloc_err; - u64 frag_alloc; - }; - __le16 csum; - }; +struct tc_taprio_qopt_stats { + u64 window_drops; + u64 tx_overruns; }; -struct hns3_desc_cb; +struct tc_taprio_qopt_queue_stats { + int queue; + struct tc_taprio_qopt_stats stats; +}; -struct hns3_tx_spare; +struct tc_taprio_sched_entry { + u8 command; + u32 gate_mask; + u32 interval; +}; -struct hns3_enet_ring { - struct hns3_desc *desc; - struct hns3_desc_cb *desc_cb; - struct hns3_enet_ring *next; - struct hns3_enet_tqp_vector *tqp_vector; - struct hnae3_queue *tqp; - int queue_index; - struct device *dev; - struct page_pool *page_pool; - struct ring_stats___2 stats; - struct u64_stats_sync syncp; - dma_addr_t desc_dma_addr; - u32 buf_size; - u16 desc_num; - int next_to_use; - int next_to_clean; - u32 flag; - int pending_buf; +struct tc_taprio_qopt_offload { + enum tc_taprio_qopt_cmd cmd; union { + struct tc_taprio_qopt_stats stats; + struct tc_taprio_qopt_queue_stats queue_stats; struct { - u32 fd_qb_tx_sample; - int last_to_use; - u32 tx_copybreak; - struct hns3_tx_spare *tx_spare; - }; - struct { - u32 pull_len; - u32 rx_copybreak; - u32 frag_num; - unsigned char *va; - struct sk_buff *skb; - struct sk_buff *tail_skb; + struct tc_mqprio_qopt_offload mqprio; + struct netlink_ext_ack *extack; + ktime_t base_time; + u64 cycle_time; + u64 cycle_time_extension; + u32 max_sdu[16]; + size_t num_entries; + struct tc_taprio_sched_entry entries[0]; }; }; - long: 64; }; -struct hns3_desc_cb { - dma_addr_t dma; - void *buf; - void *priv; - union { - u32 page_offset; - u32 send_bytes; - }; - u32 length; - u16 reuse_flag; - u16 refill; - u16 type; - u16 pagecnt_bias; +struct am65_cpsw_est { + int buf; + struct tc_taprio_qopt_offload taprio; }; -struct hns3_enet_ring_group { - struct hns3_enet_ring *ring; - u64 total_bytes; - u64 total_packets; - u16 count; - struct hns3_enet_coalesce coal; - struct dim dim; +struct am65_cpsw_ndev_stats { + u64 tx_packets; + u64 tx_bytes; + u64 rx_packets; + u64 rx_bytes; + struct u64_stats_sync syncp; }; -struct hns3_enet_tqp_vector { - struct hnae3_handle *handle; - u8 *mask_addr; - int vector_irq; - int irq_init_flag; - u16 idx; - struct napi_struct napi; - struct hns3_enet_ring_group rx_group; - struct hns3_enet_ring_group tx_group; - cpumask_t affinity_mask; - u16 num_tqps; - struct irq_affinity_notify affinity_notify; - char name[32]; - u64 event_cnt; - long: 64; - long: 64; +struct am65_cpsw_devlink { + struct am65_cpsw_common *common; }; -struct hns3_tx_spare { - dma_addr_t dma; - void *buf; - u32 next_to_use; - u32 next_to_clean; - u32 last_to_clean; - u32 len; +struct usb_phy_roothub { + struct phy *phy; + struct list_head list; }; -struct usb_conn_info { +struct dwc3_am62 { struct device *dev; - struct usb_role_switch *role_sw; - enum usb_role last_role; - struct regulator *vbus; - struct delayed_work dw_det; - unsigned long debounce_jiffies; - struct gpio_desc *id_gpiod; - struct gpio_desc *vbus_gpiod; - int id_irq; - int vbus_irq; - struct power_supply_desc desc; - struct power_supply *charger; - bool initial_detection; + void *usbss; + struct clk *usb2_refclk; + int rate_code; + struct regmap *syscon; + unsigned int offset; + unsigned int vbus_divider; + u32 wakeup_stat; }; -typedef void (*btf_trace_dwc3_readl)(void *, void *, u32, u32); - -typedef void (*btf_trace_dwc3_writel)(void *, void *, u32, u32); - -typedef void (*btf_trace_dwc3_event)(void *, u32, struct dwc3 *); +struct ehci_tt { + u16 bandwidth[8]; + struct list_head tt_list; + struct list_head ps_list; + struct usb_tt *usb_tt; + int tt_port; +}; -typedef void (*btf_trace_dwc3_ctrl_req)(void *, struct usb_ctrlrequest *); +struct ehci_iso_packet { + u64 bufp; + __le32 transaction; + u8 cross; + u32 buf1; +}; -typedef void (*btf_trace_dwc3_alloc_request)(void *, struct dwc3_request *); +struct ehci_iso_sched { + struct list_head td_list; + unsigned int span; + unsigned int first_packet; + struct ehci_iso_packet packet[0]; +}; -typedef void (*btf_trace_dwc3_free_request)(void *, struct dwc3_request *); +struct ehci_ci_priv { + struct regulator *reg_vbus; + bool enabled; +}; -typedef void (*btf_trace_dwc3_ep_queue)(void *, struct dwc3_request *); +struct ci_hdrc_dma_aligned_buffer { + void *original_buffer; + u8 data[0]; +}; -typedef void (*btf_trace_dwc3_ep_dequeue)(void *, struct dwc3_request *); +struct usb_role_switch { + struct device dev; + struct mutex lock; + enum usb_role role; + struct device *usb2_port; + struct device *usb3_port; + struct device *udc; + usb_role_switch_set_t set; + usb_role_switch_get_t get; + bool allow_userspace_control; +}; -typedef void (*btf_trace_dwc3_gadget_giveback)(void *, struct dwc3_request *); +typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); -typedef void (*btf_trace_dwc3_gadget_generic_cmd)(void *, unsigned int, u32, int); +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 dwc3_gadget_ep_cmd_params; +struct cytp_contact { + int x; + int y; + int z; +}; -typedef void (*btf_trace_dwc3_gadget_ep_cmd)(void *, struct dwc3_ep *, unsigned int, struct dwc3_gadget_ep_cmd_params *, int); +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 dwc3_gadget_ep_cmd_params { - u32 param2; - u32 param1; - u32 param0; +struct dw_i2c_dev { + struct device *dev; + struct regmap *map; + struct regmap *sysmap; + void *base; + void *ext; + struct completion cmd_complete; + struct clk *clk; + struct clk *pclk; + struct reset_control *rst; + struct i2c_client *slave; + u32 (*get_clk_rate_khz)(struct dw_i2c_dev *); + int cmd_err; + struct i2c_msg *msgs; + int msgs_num; + int msg_write_idx; + u32 tx_buf_len; + u8 *tx_buf; + int msg_read_idx; + u32 rx_buf_len; + u8 *rx_buf; + int msg_err; + unsigned int status; + unsigned int abort_source; + int irq; + u32 flags; + struct i2c_adapter adapter; + u32 functionality; + u32 master_cfg; + u32 slave_cfg; + unsigned int tx_fifo_depth; + unsigned int rx_fifo_depth; + int rx_outstanding; + struct i2c_timings timings; + u32 sda_hold_time; + u16 ss_hcnt; + u16 ss_lcnt; + u16 fs_hcnt; + u16 fs_lcnt; + u16 fp_hcnt; + u16 fp_lcnt; + u16 hs_hcnt; + u16 hs_lcnt; + int (*acquire_lock)(); + void (*release_lock)(); + int semaphore_idx; + bool shared_with_punit; + void (*disable)(struct dw_i2c_dev *); + int (*init)(struct dw_i2c_dev *); + int (*set_sda_hold_time)(struct dw_i2c_dev *); + int mode; + struct i2c_bus_recovery_info rinfo; }; -typedef void (*btf_trace_dwc3_prepare_trb)(void *, struct dwc3_ep *, struct dwc3_trb *); +enum rcar_i2c_type { + I2C_RCAR_GEN1 = 0, + I2C_RCAR_GEN2 = 1, + I2C_RCAR_GEN3 = 2, +}; -typedef void (*btf_trace_dwc3_complete_trb)(void *, struct dwc3_ep *, struct dwc3_trb *); +struct rcar_i2c_priv { + u32 flags; + void *io; + struct i2c_adapter adap; + struct i2c_msg *msg; + int msgs_left; + struct clk *clk; + wait_queue_head_t wait; + int pos; + u32 icccr; + u16 schd; + u16 scld; + u8 recovery_icmcr; + enum rcar_i2c_type devtype; + struct i2c_client *slave; + struct resource *res; + struct dma_chan *dma_tx; + struct dma_chan *dma_rx; + struct scatterlist sg; + enum dma_data_direction dma_direction; + struct reset_control *rstc; + int irq; + struct i2c_client *host_notify_client; +}; -typedef void (*btf_trace_dwc3_gadget_ep_enable)(void *, struct dwc3_ep *); +struct scmi_sensor_info; -typedef void (*btf_trace_dwc3_gadget_ep_disable)(void *, struct dwc3_ep *); +struct scmi_sensor_reading; -struct trace_event_raw_dwc3_log_io { - struct trace_entry ent; - void *base; - u32 offset; - u32 value; - char __data[0]; +struct scmi_sensor_proto_ops { + int (*count_get)(const struct scmi_protocol_handle *); + const struct scmi_sensor_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*trip_point_config)(const struct scmi_protocol_handle *, u32, u8, u64); + int (*reading_get)(const struct scmi_protocol_handle *, u32, u64 *); + int (*reading_get_timestamped)(const struct scmi_protocol_handle *, u32, u8, struct scmi_sensor_reading *); + int (*config_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*config_set)(const struct scmi_protocol_handle *, u32, u32); }; -struct trace_event_raw_dwc3_log_event { - struct trace_entry ent; - u32 event; - u32 ep0state; - char __data[0]; +struct scmi_sensor_intervals_info { + bool segmented; + unsigned int count; + unsigned int *desc; + unsigned int prealloc_pool[16]; }; -struct trace_event_raw_dwc3_log_ctrl { - struct trace_entry ent; - __u8 bRequestType; - __u8 bRequest; - __u16 wValue; - __u16 wIndex; - __u16 wLength; - char __data[0]; +struct scmi_range_attrs { + long long min_range; + long long max_range; }; -struct trace_event_raw_dwc3_log_request { - struct trace_entry ent; - u32 __data_loc_name; - struct dwc3_request *req; - unsigned int actual; - unsigned int length; - int status; - int zero; - int short_not_ok; - int no_interrupt; - char __data[0]; -}; +struct scmi_sensor_axis_info; -struct trace_event_raw_dwc3_log_generic_cmd { - struct trace_entry ent; - unsigned int cmd; - u32 param; - int status; - char __data[0]; +struct scmi_sensor_info { + unsigned int id; + unsigned int type; + int scale; + unsigned int num_trip_points; + bool async; + bool update; + bool timestamped; + int tstamp_scale; + unsigned int num_axis; + struct scmi_sensor_axis_info *axis; + struct scmi_sensor_intervals_info intervals; + unsigned int sensor_config; + char name[64]; + bool extended_scalar_attrs; + unsigned int sensor_power; + unsigned int resolution; + int exponent; + struct scmi_range_attrs scalar_attrs; }; -struct trace_event_raw_dwc3_log_gadget_ep_cmd { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int cmd; - u32 param0; - u32 param1; - u32 param2; - int cmd_status; - char __data[0]; +struct scmi_sensor_axis_info { + unsigned int id; + unsigned int type; + int scale; + char name[64]; + bool extended_attrs; + unsigned int resolution; + int exponent; + struct scmi_range_attrs attrs; }; -struct trace_event_raw_dwc3_log_trb { - struct trace_entry ent; - u32 __data_loc_name; - struct dwc3_trb *trb; - u32 bpl; - u32 bph; - u32 size; - u32 ctrl; - u32 type; - u32 enqueue; - u32 dequeue; - char __data[0]; +struct scmi_sensor_reading { + long long value; + unsigned long long timestamp; }; -struct trace_event_raw_dwc3_log_ep { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int maxpacket; - unsigned int maxpacket_limit; - unsigned int max_streams; - unsigned int maxburst; - unsigned int flags; - unsigned int direction; - u8 trb_enqueue; - u8 trb_dequeue; - char __data[0]; +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 trace_event_data_offsets_dwc3_log_request { - u32 name; -}; +struct hwmon_ops; -struct trace_event_data_offsets_dwc3_log_gadget_ep_cmd { - u32 name; -}; +struct hwmon_channel_info; -struct trace_event_data_offsets_dwc3_log_trb { - u32 name; +struct hwmon_chip_info { + const struct hwmon_ops *ops; + const struct hwmon_channel_info * const *info; }; -struct trace_event_data_offsets_dwc3_log_ep { - u32 name; +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 dwc3_event_type { - u32 is_devspec: 1; - u32 type: 7; - u32 reserved8_31: 24; +struct hwmon_channel_info { + enum hwmon_sensor_types type; + const u32 *config; }; -struct dwc3_event_depevt { - u32 one_bit: 1; - u32 endpoint_number: 5; - u32 endpoint_event: 4; - u32 reserved11_10: 2; - u32 status: 4; - u32 parameters: 16; +enum scmi_sensor_class { + NONE = 0, + UNSPEC = 1, + TEMPERATURE_C = 2, + TEMPERATURE_F = 3, + TEMPERATURE_K = 4, + VOLTAGE = 5, + CURRENT = 6, + POWER = 7, + ENERGY = 8, + CHARGE = 9, + VOLTAMPERE = 10, + NITS = 11, + LUMENS = 12, + LUX = 13, + CANDELAS = 14, + KPA = 15, + PSI = 16, + NEWTON = 17, + CFM = 18, + RPM = 19, + HERTZ = 20, + SECS = 21, + MINS = 22, + HOURS = 23, + DAYS = 24, + WEEKS = 25, + MILS = 26, + INCHES = 27, + FEET = 28, + CUBIC_INCHES = 29, + CUBIC_FEET = 30, + METERS = 31, + CUBIC_CM = 32, + CUBIC_METERS = 33, + LITERS = 34, + FLUID_OUNCES = 35, + RADIANS = 36, + STERADIANS = 37, + REVOLUTIONS = 38, + CYCLES = 39, + GRAVITIES = 40, + OUNCES = 41, + POUNDS = 42, + FOOT_POUNDS = 43, + OUNCE_INCHES = 44, + GAUSS = 45, + GILBERTS = 46, + HENRIES = 47, + FARADS = 48, + OHMS = 49, + SIEMENS = 50, + MOLES = 51, + BECQUERELS = 52, + PPM = 53, + DECIBELS = 54, + DBA = 55, + DBC = 56, + GRAYS = 57, + SIEVERTS = 58, + COLOR_TEMP_K = 59, + BITS = 60, + BYTES = 61, + WORDS = 62, + DWORDS = 63, + QWORDS = 64, + PERCENTAGE = 65, + PASCALS = 66, + COUNTS = 67, + GRAMS = 68, + NEWTON_METERS = 69, + HITS = 70, + MISSES = 71, + RETRIES = 72, + OVERRUNS = 73, + UNDERRUNS = 74, + COLLISIONS = 75, + PACKETS = 76, + MESSAGES = 77, + CHARS = 78, + ERRORS = 79, + CORRECTED_ERRS = 80, + UNCORRECTABLE_ERRS = 81, + SQ_MILS = 82, + SQ_INCHES = 83, + SQ_FEET = 84, + SQ_CM = 85, + SQ_METERS = 86, + RADIANS_SEC = 87, + BPM = 88, + METERS_SEC_SQUARED = 89, + METERS_SEC = 90, + CUBIC_METERS_SEC = 91, + MM_MERCURY = 92, + RADIANS_SEC_SQUARED = 93, + OEM_UNIT = 255, }; -struct dwc3_event_devt { - u32 one_bit: 1; - u32 device_event: 7; - u32 type: 4; - u32 reserved15_12: 4; - u32 event_info: 9; - u32 reserved31_25: 7; +struct scmi_thermal_sensor { + const struct scmi_protocol_handle *ph; + const struct scmi_sensor_info *info; }; -struct dwc3_event_gevt { - u32 one_bit: 1; - u32 device_event: 7; - u32 phy_port_number: 4; - u32 reserved31_12: 20; +struct scmi_sensors { + const struct scmi_protocol_handle *ph; + const struct scmi_sensor_info **info[10]; }; -union dwc3_event { - u32 raw; - struct dwc3_event_type type; - struct dwc3_event_depevt depevt; - struct dwc3_event_devt devt; - struct dwc3_event_gevt gevt; +struct meson_mmc_data { + unsigned int tx_delay_mask; + unsigned int rx_delay_mask; + unsigned int always_on; + unsigned int adjust; + unsigned int irq_sdio_sleep; }; -struct trace_event_data_offsets_dwc3_log_io {}; - -struct trace_event_data_offsets_dwc3_log_event {}; - -struct trace_event_data_offsets_dwc3_log_ctrl {}; - -struct trace_event_data_offsets_dwc3_log_generic_cmd {}; +struct sd_emmc_desc; -enum orion_ehci_phy_ver { - EHCI_PHY_ORION = 0, - EHCI_PHY_DD = 1, - EHCI_PHY_KW = 2, - EHCI_PHY_NA = 3, +struct meson_host { + struct device *dev; + const struct meson_mmc_data *data; + struct mmc_host *mmc; + struct mmc_command *cmd; + void *regs; + struct clk *mux_clk; + struct clk *mmc_clk; + unsigned long req_rate; + bool ddr; + bool dram_access_quirk; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_clk_gate; + unsigned int bounce_buf_size; + void *bounce_buf; + void *bounce_iomem_buf; + dma_addr_t bounce_dma_addr; + struct sd_emmc_desc *descs; + dma_addr_t descs_dma_addr; + int irq; + bool needs_pre_post_req; + spinlock_t lock; }; -struct orion_ehci_hcd { - struct clk *clk; - struct phy *phy; +struct sd_emmc_desc { + u32 cmd_cfg; + u32 cmd_arg; + u32 cmd_data; + u32 cmd_resp; }; -struct orion_ehci_data { - enum orion_ehci_phy_ver phy_version; +enum ufshcd_mcq_opr { + OPR_SQD = 0, + OPR_SQIS = 1, + OPR_CQD = 2, + OPR_CQIS = 3, + OPR_MAX = 4, }; -struct musb_register_map { - char *name; - unsigned int offset; - unsigned int size; +enum { + REG_CQIS = 0, + REG_CQIE = 4, }; -struct rtd119x_rtc { - void *base; - struct clk *clk; - struct rtc_device *rtcdev; - unsigned int base_year; +enum { + REG_SQATTR = 0, + REG_SQLBA = 4, + REG_SQUBA = 8, + REG_SQDAO = 12, + REG_SQISAO = 16, + REG_CQATTR = 32, + REG_CQLBA = 36, + REG_CQUBA = 40, + REG_CQDAO = 44, + REG_CQISAO = 48, }; -struct pasemi_platform_i2c_data { - struct pasemi_smbus smbus; - struct clk *clk_ref; +enum { + REG_SQHP = 0, + REG_SQTP = 4, + REG_SQRTC = 8, + REG_SQCTI = 12, + REG_SQRTS = 16, }; -struct ths_device; - -struct ths_thermal_chip { - bool has_mod_clk; - bool has_bus_clk_reset; - int sensor_num; - int offset; - int scale; - int ft_deviation; - int temp_data_base; - int (*calibrate)(struct ths_device *, u16 *, int); - int (*init)(struct ths_device *); - unsigned long (*irq_ack)(struct ths_device *); - int (*calc_temp)(struct ths_device *, int, int); +enum { + REG_CQHP = 0, + REG_CQTP = 4, }; -struct tsensor { - struct ths_device *tmdev; - struct thermal_zone_device *tzd; - int id; +enum { + SQ_START = 0, + SQ_STOP = 1, + SQ_ICU = 2, }; -struct ths_device { - const struct ths_thermal_chip *chip; - struct device *dev; - struct regmap *regmap; - struct reset_control *reset; - struct clk *bus_clk; - struct clk *mod_clk; - struct tsensor sensor[4]; +enum { + SQ_STS = 1, + SQ_CUS = 2, }; -enum opp_table_access { - OPP_TABLE_ACCESS_UNKNOWN = 0, - OPP_TABLE_ACCESS_EXCLUSIVE = 1, - OPP_TABLE_ACCESS_SHARED = 2, +struct simplefb_platform_data { + u32 width; + u32 height; + u32 stride; + const char *format; }; -struct dev_pm_opp_supply; +enum scmi_voltage_level_mode { + SCMI_VOLTAGE_LEVEL_SET_AUTO = 0, + SCMI_VOLTAGE_LEVEL_SET_SYNC = 1, +}; -struct dev_pm_opp_icc_bw; +struct scmi_voltage_info; -struct dev_pm_opp { - struct list_head node; - struct kref kref; - bool available; - bool dynamic; - bool turbo; - bool suspend; - bool removed; - unsigned long *rates; - unsigned int level; - struct dev_pm_opp_supply *supplies; - struct dev_pm_opp_icc_bw *bandwidth; - unsigned long clock_latency_ns; - struct dev_pm_opp **required_opps; - struct opp_table *opp_table; - struct device_node *np; - struct dentry *dentry; - const char *of_name; +struct scmi_voltage_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const struct scmi_voltage_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*config_set)(const struct scmi_protocol_handle *, u32, u32); + int (*config_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*level_set)(const struct scmi_protocol_handle *, u32, enum scmi_voltage_level_mode, s32); + int (*level_get)(const struct scmi_protocol_handle *, u32, s32 *); }; -struct dev_pm_opp_supply { - unsigned long u_volt; - unsigned long u_volt_min; - unsigned long u_volt_max; - unsigned long u_amp; - unsigned long u_watt; +struct scmi_voltage_info { + unsigned int id; + bool segmented; + bool negative_volts_allowed; + bool async_level_set; + char name[64]; + unsigned int num_levels; + int *levels_uv; }; -struct dev_pm_opp_icc_bw { - u32 avg; - u32 peak; +enum scmi_voltage_protocol_cmd { + VOLTAGE_DOMAIN_ATTRIBUTES = 3, + VOLTAGE_DESCRIBE_LEVELS = 4, + VOLTAGE_CONFIG_SET = 5, + VOLTAGE_CONFIG_GET = 6, + VOLTAGE_LEVEL_SET = 7, + VOLTAGE_LEVEL_GET = 8, + VOLTAGE_DOMAIN_NAME_GET = 9, }; -struct opp_table { - struct list_head node; - struct list_head lazy; - struct blocking_notifier_head head; - struct list_head dev_list; - struct list_head opp_list; - struct kref kref; - struct mutex lock; - struct device_node *np; - unsigned long clock_latency_ns_max; - unsigned int voltage_tolerance_v1; - unsigned int parsed_static_opps; - enum opp_table_access shared_opp; - unsigned long rate_clk_single; - struct dev_pm_opp *current_opp; - struct dev_pm_opp *suspend_opp; - struct mutex genpd_virt_dev_lock; - struct device **genpd_virt_devs; - struct opp_table **required_opp_tables; - unsigned int required_opp_count; - unsigned int *supported_hw; - unsigned int supported_hw_count; - const char *prop_name; - config_clks_t config_clks; - struct clk **clks; - struct clk *clk; - int clk_count; - config_regulators_t config_regulators; - struct regulator **regulators; - int regulator_count; - struct icc_path **paths; - unsigned int path_count; - bool enabled; - bool is_genpd; - int (*set_required_opps)(struct device *, struct opp_table *, struct dev_pm_opp *, bool); - struct dentry *dentry; - char dentry_name[255]; +struct voltage_info { + unsigned int version; + unsigned int num_domains; + struct scmi_voltage_info *domains; }; -struct opp_device { - struct list_head node; - const struct device *dev; - struct dentry *dentry; +struct scmi_msg_resp_domain_attributes { + __le32 attr; + u8 name[16]; }; -struct opp_config_data { - struct opp_table *opp_table; - unsigned int flags; +struct scmi_volt_ipriv { + struct device *dev; + struct scmi_voltage_info *v; }; -struct sdhci_sparx5_data { - struct sdhci_host *host; - struct regmap *cpu_ctrl; - int delay_clock; +struct scmi_msg_cmd_describe_levels { + __le32 domain_id; + __le32 level_index; }; -struct led_trigger_cpu { - bool is_active; - char name[8]; - struct led_trigger *_trig; +struct scmi_msg_resp_describe_levels { + __le32 flags; + __le32 voltage[0]; }; -enum cpu_led_event { - CPU_LED_IDLE_START = 0, - CPU_LED_IDLE_END = 1, - CPU_LED_START = 2, - CPU_LED_STOP = 3, - CPU_LED_HALTED = 4, +struct scmi_msg_cmd_config_set { + __le32 domain_id; + __le32 config; }; -struct scmi_optee_agent { - struct device *dev; - struct tee_context *tee_ctx; - u32 caps; - struct mutex mu; - struct list_head channel_list; +struct scmi_msg_cmd_level_set { + __le32 domain_id; + __le32 flags; + __le32 voltage_level; }; -struct tee_client_driver { - const struct tee_client_device_id *id_table; - struct device_driver driver; +struct scmi_resp_voltage_level_set_complete { + __le32 domain_id; + __le32 voltage_level; }; -enum scmi_optee_pta_cmd { - PTA_SCMI_CMD_CAPABILITIES = 0, - PTA_SCMI_CMD_PROCESS_SMT_CHANNEL = 1, - PTA_SCMI_CMD_PROCESS_SMT_CHANNEL_MESSAGE = 2, - PTA_SCMI_CMD_GET_CHANNEL = 3, - PTA_SCMI_CMD_PROCESS_MSG_CHANNEL = 4, +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 scmi_shared_mem; - -struct scmi_msg_payld; - -struct scmi_optee_channel { - u32 channel_id; - u32 tee_session; - u32 caps; - u32 rx_len; - struct mutex mu; - struct scmi_chan_info *cinfo; - union { - struct scmi_shared_mem *shmem; - struct scmi_msg_payld *msg; - } req; - struct tee_shm *tee_shm; - struct list_head link; +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; }; +typedef struct { + u64 length; + u64 data; +} efi_capsule_block_desc_t; + struct dw_apb_timer { void *base; unsigned long freq; @@ -128054,155 +127426,270 @@ struct dw_apb_clocksource { struct clocksource cs; }; -enum ec_console_read_subcmd { - CONSOLE_READ_NEXT = 0, - CONSOLE_READ_RECENT = 1, +struct ec_params_reboot_ec { + uint8_t cmd; + uint8_t flags; }; -struct cros_ec_debugfs { - struct cros_ec_dev *ec; - struct dentry *dir; - struct circ_buf log_buffer; - struct cros_ec_command *read_msg; - struct mutex log_mutex; - struct delayed_work log_poll_work; - struct debugfs_blob_wrapper panicinfo_blob; - struct notifier_block notifier_panic; +struct ec_response_get_version { + char version_string_ro[32]; + char version_string_rw[32]; + char reserved[32]; + uint32_t current_image; +}; + +struct ec_response_get_chip_info { + char vendor[32]; + char name[32]; + char revision[32]; +}; + +struct ec_response_board_version { + uint16_t board_version; +}; + +struct ec_response_flash_info { + uint32_t flash_size; + uint32_t write_block_size; + uint32_t erase_block_size; + uint32_t protect_block_size; +}; + +struct apple_mbox_hw { + unsigned int control_full; + unsigned int control_empty; + unsigned int a2i_control; + unsigned int a2i_send0; + unsigned int a2i_send1; + unsigned int i2a_control; + unsigned int i2a_recv0; + unsigned int i2a_recv1; + bool has_irq_controls; + unsigned int irq_enable; + unsigned int irq_ack; + unsigned int irq_bit_recv_not_empty; + unsigned int irq_bit_send_empty; +}; + +struct apple_mbox { + void *regs; + const struct apple_mbox_hw *hw; + int irq_recv_not_empty; + int irq_send_empty; + struct mbox_chan chan; + struct device *dev; + struct mbox_controller controller; + spinlock_t rx_lock; }; -struct ec_params_console_read_v1 { - uint8_t subcmd; +struct apple_mbox_msg { + u64 msg0; + u32 msg1; }; -struct ec_params_usb_pd_control { - uint8_t port; - uint8_t role; - uint8_t mux; - uint8_t swap; +struct imx_bus { + struct devfreq_dev_profile profile; + struct devfreq *devfreq; + struct clk *clk; + struct platform_device *icc_pdev; }; -struct ec_response_usb_pd_control_v1 { - uint8_t enabled; - uint8_t role; - uint8_t polarity; - char state[32]; +enum meson_sar_adc_chan7_mux_sel { + CHAN7_MUX_VSS = 0, + CHAN7_MUX_VDD_DIV4 = 1, + CHAN7_MUX_VDD_DIV2 = 2, + CHAN7_MUX_VDD_MUL3_DIV4 = 3, + CHAN7_MUX_VDD = 4, + CHAN7_MUX_CH7_INPUT = 7, }; -struct ap_reset_log_entry { - uint16_t reset_cause; - uint16_t reserved; - uint32_t reset_time_ms; +struct meson_sar_adc_param; + +struct meson_sar_adc_data { + const struct meson_sar_adc_param *param; + const char *name; }; -struct ec_response_uptime_info { - uint32_t time_since_ec_boot_ms; - uint32_t ap_resets_since_ec_boot; - uint32_t ec_reset_flags; - struct ap_reset_log_entry recent_ap_reset[4]; +enum meson_sar_adc_vref_sel { + VREF_CALIBATION_VOLTAGE = 0, + VREF_VDDA = 1, }; -typedef void (*btf_trace_devfreq_frequency)(void *, struct devfreq *, unsigned long, unsigned long); +struct meson_sar_adc_param { + bool has_bl30_integration; + unsigned long clock_rate; + u32 bandgap_reg; + unsigned int resolution; + const struct regmap_config *regmap_config; + u8 temperature_trimming_bits; + unsigned int temperature_multiplier; + unsigned int temperature_divider; + u8 disable_ring_counter; + bool has_reg11; + bool has_vref_select; + u8 vref_select; + u8 cmv_select; + u8 adc_eoc; + enum meson_sar_adc_vref_sel vref_volatge; +}; -typedef void (*btf_trace_devfreq_monitor)(void *, struct devfreq *); +enum iio_chan_info_enum { + IIO_CHAN_INFO_RAW = 0, + IIO_CHAN_INFO_PROCESSED = 1, + IIO_CHAN_INFO_SCALE = 2, + IIO_CHAN_INFO_OFFSET = 3, + IIO_CHAN_INFO_CALIBSCALE = 4, + IIO_CHAN_INFO_CALIBBIAS = 5, + IIO_CHAN_INFO_PEAK = 6, + IIO_CHAN_INFO_PEAK_SCALE = 7, + IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW = 8, + IIO_CHAN_INFO_AVERAGE_RAW = 9, + IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY = 10, + IIO_CHAN_INFO_HIGH_PASS_FILTER_3DB_FREQUENCY = 11, + IIO_CHAN_INFO_SAMP_FREQ = 12, + IIO_CHAN_INFO_FREQUENCY = 13, + IIO_CHAN_INFO_PHASE = 14, + IIO_CHAN_INFO_HARDWAREGAIN = 15, + IIO_CHAN_INFO_HYSTERESIS = 16, + IIO_CHAN_INFO_HYSTERESIS_RELATIVE = 17, + IIO_CHAN_INFO_INT_TIME = 18, + IIO_CHAN_INFO_ENABLE = 19, + IIO_CHAN_INFO_CALIBHEIGHT = 20, + IIO_CHAN_INFO_CALIBWEIGHT = 21, + IIO_CHAN_INFO_DEBOUNCE_COUNT = 22, + IIO_CHAN_INFO_DEBOUNCE_TIME = 23, + IIO_CHAN_INFO_CALIBEMISSIVITY = 24, + IIO_CHAN_INFO_OVERSAMPLING_RATIO = 25, + IIO_CHAN_INFO_THERMOCOUPLE_TYPE = 26, + IIO_CHAN_INFO_CALIBAMBIENT = 27, + IIO_CHAN_INFO_ZEROPOINT = 28, +}; -enum devfreq_parent_dev_type { - DEVFREQ_PARENT_DEV = 0, - CPUFREQ_PARENT_DEV = 1, +enum meson_sar_adc_avg_mode { + NO_AVERAGING = 0, + MEAN_AVERAGING = 1, + MEDIAN_AVERAGING = 2, }; -struct trace_event_raw_devfreq_frequency { - struct trace_entry ent; - u32 __data_loc_dev_name; - unsigned long freq; - unsigned long prev_freq; - unsigned long busy_time; - unsigned long total_time; - char __data[0]; +enum meson_sar_adc_num_samples { + ONE_SAMPLE = 0, + TWO_SAMPLES = 1, + FOUR_SAMPLES = 2, + EIGHT_SAMPLES = 3, }; -struct trace_event_raw_devfreq_monitor { - struct trace_entry ent; - unsigned long freq; - unsigned long busy_time; - unsigned long total_time; - unsigned int polling_ms; - u32 __data_loc_dev_name; - char __data[0]; +enum meson_sar_adc_channel_index { + NUM_CHAN_0 = 0, + NUM_CHAN_1 = 1, + NUM_CHAN_2 = 2, + NUM_CHAN_3 = 3, + NUM_CHAN_4 = 4, + NUM_CHAN_5 = 5, + NUM_CHAN_6 = 6, + NUM_CHAN_7 = 7, + NUM_CHAN_TEMP = 8, + NUM_MUX_0_VSS = 9, + NUM_MUX_1_VDD_DIV4 = 10, + NUM_MUX_2_VDD_DIV2 = 11, + NUM_MUX_3_VDD_MUL3_DIV4 = 12, + NUM_MUX_4_VDD = 13, }; -struct trace_event_data_offsets_devfreq_frequency { - u32 dev_name; +struct meson_sar_adc_priv { + struct regmap *regmap; + struct regulator *vref; + const struct meson_sar_adc_param *param; + struct clk *clkin; + struct clk *core_clk; + struct clk *adc_sel_clk; + struct clk *adc_clk; + struct clk_gate clk_gate; + struct clk *adc_div_clk; + struct clk_divider clk_div; + struct completion done; + struct mutex lock; + int calibbias; + int calibscale; + struct regmap *tsc_regmap; + bool temperature_sensor_calibrated; + u8 temperature_sensor_coefficient; + u16 temperature_sensor_adc_val; + enum meson_sar_adc_chan7_mux_sel chan7_mux_sel; }; -struct trace_event_data_offsets_devfreq_monitor { - u32 dev_name; +struct imx_icc_node_adj_desc; + +struct imx_icc_node_desc { + const char *name; + u16 id; + u16 links[4]; + u16 num_links; + const struct imx_icc_node_adj_desc *adj; }; -struct devfreq_freqs { - unsigned long old; - unsigned long new; +struct imx_icc_node_adj_desc { + unsigned int bw_mul; + unsigned int bw_div; + const char *phandle_name; + bool main_noc; }; -struct devfreq_cooling_power { - int (*get_real_power)(struct devfreq *, u32 *, unsigned long, unsigned long); +struct imx_icc_provider { + void *noc_base; + struct icc_provider provider; }; -struct devfreq_notifier_devres { - struct devfreq *devfreq; - struct notifier_block *nb; - unsigned int list; +struct imx_icc_noc_setting { + u32 reg; + u32 prio_level; + u32 mode; + u32 ext_control; }; -struct devfreq_passive_data { - struct devfreq *parent; - int (*get_target_freq)(struct devfreq *, unsigned long *); - enum devfreq_parent_dev_type parent_type; - struct devfreq *this; - struct notifier_block nb; - struct list_head cpu_data_list; +struct imx_icc_node { + const struct imx_icc_node_desc *desc; + const struct imx_icc_noc_setting *setting; + struct device *qos_dev; + struct dev_pm_qos_request qos_req; + struct imx_icc_provider *imx_provider; }; -struct tee_desc; +struct snd_device; -struct tee_device { - char name[32]; - const struct tee_desc *desc; - int id; - unsigned int flags; - struct device dev; - struct cdev cdev; - size_t num_users; - struct completion c_no_users; - struct mutex mutex; - struct idr idr; - struct tee_shm_pool *pool; +struct snd_device_ops { + int (*dev_free)(struct snd_device *); + int (*dev_register)(struct snd_device *); + int (*dev_disconnect)(struct snd_device *); }; -struct tee_driver_ops; - -struct tee_desc { - const char *name; - const struct tee_driver_ops *ops; - struct module *owner; - u32 flags; +enum snd_device_state { + SNDRV_DEV_BUILD = 0, + SNDRV_DEV_REGISTERED = 1, + SNDRV_DEV_DISCONNECTED = 2, }; -struct tee_driver_ops { - void (*get_version)(struct tee_device *, struct tee_ioctl_version_data *); - int (*open)(struct tee_context *); - void (*release)(struct tee_context *); - int (*open_session)(struct tee_context *, struct tee_ioctl_open_session_arg *, struct tee_param *); - int (*close_session)(struct tee_context *, u32); - int (*invoke_func)(struct tee_context *, struct tee_ioctl_invoke_arg *, struct tee_param *); - int (*cancel_req)(struct tee_context *, u32, u32); - int (*supp_recv)(struct tee_context *, u32 *, u32 *, struct tee_param *); - int (*supp_send)(struct tee_context *, u32, u32, struct tee_param *); - int (*shm_register)(struct tee_context *, struct tee_shm *, struct page **, size_t, unsigned long); - int (*shm_unregister)(struct tee_context *, struct tee_shm *); +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 genpool_data_align { - int align; +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_ctl_layer_ops { @@ -128219,11 +127706,28 @@ enum snd_ctl_add_mode { CTL_ADD_ON_REPLACE = 2, }; +enum { + SNDRV_DEVICE_TYPE_CONTROL = 0, + SNDRV_DEVICE_TYPE_SEQUENCER = 1, + SNDRV_DEVICE_TYPE_TIMER = 2, + SNDRV_DEVICE_TYPE_HWDEP = 3, + SNDRV_DEVICE_TYPE_RAWMIDI = 4, + SNDRV_DEVICE_TYPE_PCM_PLAYBACK = 5, + SNDRV_DEVICE_TYPE_PCM_CAPTURE = 6, + SNDRV_DEVICE_TYPE_COMPRESS = 7, +}; + 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, @@ -128350,2781 +127854,2234 @@ struct snd_ctl_tlv { }; 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, + 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 rss_req_info { - struct ethnl_req_info base; - u32 rss_context; +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 rss_reply_data { - struct ethnl_reply_data base; - u32 indir_size; - u32 hkey_size; - u32 hfunc; - u32 *indir_table; - u8 *hkey; +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; }; -enum nf_hook_ops_type { - NF_HOOK_OP_UNDEFINED = 0, - NF_HOOK_OP_NF_TABLES = 1, - NF_HOOK_OP_BPF = 2, +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]; }; -enum nf_ip_hook_priorities { - NF_IP_PRI_FIRST = -2147483648, - NF_IP_PRI_RAW_BEFORE_DEFRAG = -450, - NF_IP_PRI_CONNTRACK_DEFRAG = -400, - NF_IP_PRI_RAW = -300, - NF_IP_PRI_SELINUX_FIRST = -225, - NF_IP_PRI_CONNTRACK = -200, - NF_IP_PRI_MANGLE = -150, - NF_IP_PRI_NAT_DST = -100, - NF_IP_PRI_FILTER = 0, - NF_IP_PRI_SECURITY = 50, - NF_IP_PRI_NAT_SRC = 100, - NF_IP_PRI_SELINUX_LAST = 225, - NF_IP_PRI_CONNTRACK_HELPER = 300, - NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647, - NF_IP_PRI_LAST = 2147483647, +struct 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 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; +enum snd_soc_dpcm_link_state { + SND_SOC_DPCM_LINK_STATE_NEW = 0, + SND_SOC_DPCM_LINK_STATE_FREE = 1, }; -struct bpf_nf_link { - struct bpf_link link; - struct nf_hook_ops hook_ops; - struct net *net; - u32 dead; +struct snd_soc_dpcm { + struct snd_soc_pcm_runtime *be; + struct snd_soc_pcm_runtime *fe; + enum snd_soc_dpcm_link_state state; + struct list_head list_be; + struct list_head list_fe; + struct dentry *debugfs_state; }; -struct devinet_sysctl_table { - struct ctl_table_header *sysctl_header; - struct ctl_table devinet_vars[34]; +struct snd_soc_dapm_widget_list { + int num_widgets; + struct snd_soc_dapm_widget *widgets[0]; }; -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, +struct neigh_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table neigh_vars[22]; }; 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, + 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 { - IFLA_INET_UNSPEC = 0, - IFLA_INET_CONF = 1, - __IFLA_INET_MAX = 2, -}; - -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; + NEIGH_ARP_TABLE = 0, + NEIGH_ND_TABLE = 1, + NEIGH_DN_TABLE = 2, + NEIGH_NR_TABLES = 3, + NEIGH_LINK_TABLE = 3, }; -struct xprt_addr { - const char *addr; - struct callback_head rcu; +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 { - Rworksched = 1, - Rpending = 2, - Wworksched = 4, - Wpending = 8, -}; - -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, + 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 { - Opt_port___2 = 0, - Opt_rfdno = 1, - Opt_wfdno = 2, - Opt_err___5 = 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; -}; - -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 hyp_fixmap_slot { - u64 addr; - kvm_pte_t *ptep; -}; - -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 compat_rlimit { - compat_ulong_t rlim_cur; - compat_ulong_t rlim_max; -}; - -struct rlimit64 { - __u64 rlim_cur; - __u64 rlim_max; -}; - -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]; + 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 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 neighbour_cb { + unsigned long sched_next; + unsigned int flags; }; -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; +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 latch_tree_ops { - bool (*less)(struct latch_tree_node *, struct latch_tree_node *); - int (*comp)(void *, struct latch_tree_node *); +struct neigh_dump_filter { + int master_idx; + int dev_idx; }; -enum tick_nohz_mode { - NOHZ_MODE_INACTIVE = 0, - NOHZ_MODE_LOWRES = 1, - NOHZ_MODE_HIGHRES = 2, +struct ndtmsg { + __u8 ndtm_family; + __u8 ndtm_pad1; + __u16 ndtm_pad2; }; -struct tick_sched { - 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; - unsigned int stalled_jiffies; - unsigned long last_tick_jiffies; - struct hrtimer sched_timer; - ktime_t last_tick; - ktime_t next_tick; - unsigned long idle_jiffies; - ktime_t idle_waketime; - seqcount_t idle_sleeptime_seq; - ktime_t idle_entrytime; - enum tick_nohz_mode nohz_mode; - unsigned long last_jiffies; - u64 timer_expires_base; - u64 timer_expires; - u64 next_timer; - ktime_t idle_expires; - unsigned long idle_calls; - unsigned long idle_sleeps; - ktime_t idle_exittime; - ktime_t idle_sleeptime; - ktime_t iowait_sleeptime; - atomic_t tick_dep_mask; - unsigned long check_clocks; +struct 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 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 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 cpu_stop_done { - atomic_t nr_todo; - int ret; - struct completion completion; +struct nda_cacheinfo { + __u32 ndm_confirmed; + __u32 ndm_used; + __u32 ndm_updated; + __u32 ndm_refcnt; }; -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 ethtool_cmd { + __u32 cmd; + __u32 supported; + __u32 advertising; + __u16 speed; + __u8 duplex; + __u8 port; + __u8 phy_address; + __u8 transceiver; + __u8 autoneg; + __u8 mdio_support; + __u32 maxtxpkt; + __u32 maxrxpkt; + __u16 speed_hi; + __u8 eth_tp_mdix; + __u8 eth_tp_mdix_ctrl; + __u32 lp_advertising; + __u32 reserved[2]; }; -struct multi_stop_data { - cpu_stop_fn_t fn; - void *data; - unsigned int num_threads; - const struct cpumask *active_cpus; - enum multi_stop_state state; - atomic_t thread_ack; +struct ethtool_forced_speed_map { + u32 speed; + unsigned long caps[2]; + const u32 *cap_arr; + u32 arr_size; }; enum { - Blktrace_setup = 1, - Blktrace_running = 2, - Blktrace_stopped = 3, -}; - -enum blktrace_cat { - BLK_TC_READ = 1, - BLK_TC_WRITE = 2, - BLK_TC_FLUSH = 4, - BLK_TC_SYNC = 8, - BLK_TC_SYNCIO = 8, - BLK_TC_QUEUE = 16, - BLK_TC_REQUEUE = 32, - BLK_TC_ISSUE = 64, - BLK_TC_COMPLETE = 128, - BLK_TC_FS = 256, - BLK_TC_PC = 512, - BLK_TC_NOTIFY = 1024, - BLK_TC_AHEAD = 2048, - BLK_TC_META = 4096, - BLK_TC_DISCARD = 8192, - BLK_TC_DRV_DATA = 16384, - BLK_TC_FUA = 32768, - BLK_TC_END = 32768, -}; - -enum blktrace_notify { - __BLK_TN_PROCESS = 0, - __BLK_TN_TIMESTAMP = 1, - __BLK_TN_MESSAGE = 2, - __BLK_TN_CGROUP = 256, -}; - -enum blktrace_act { - __BLK_TA_QUEUE = 1, - __BLK_TA_BACKMERGE = 2, - __BLK_TA_FRONTMERGE = 3, - __BLK_TA_GETRQ = 4, - __BLK_TA_SLEEPRQ = 5, - __BLK_TA_REQUEUE = 6, - __BLK_TA_ISSUE = 7, - __BLK_TA_COMPLETE = 8, - __BLK_TA_PLUG = 9, - __BLK_TA_UNPLUG_IO = 10, - __BLK_TA_UNPLUG_TIMER = 11, - __BLK_TA_INSERT = 12, - __BLK_TA_SPLIT = 13, - __BLK_TA_BOUNCE = 14, - __BLK_TA_REMAP = 15, - __BLK_TA_ABORT = 16, - __BLK_TA_DRV_DATA = 17, - __BLK_TA_CGROUP = 256, -}; - -struct blk_io_trace { - __u32 magic; - __u32 sequence; - __u64 time; - __u64 sector; - __u32 bytes; - __u32 action; - __u32 pid; - __u32 device; - __u32 cpu; - __u16 error; - __u16 pdu_len; -}; - -struct blk_user_trace_setup { - char name[32]; - __u16 act_mask; - __u32 buf_size; - __u32 buf_nr; - __u64 start_lba; - __u64 end_lba; - __u32 pid; -}; - -struct blk_io_trace_remap { - __be32 device_from; - __be32 device_to; - __be64 sector_from; -}; - -typedef void blk_log_action_t(struct trace_iterator *, const char *, bool); - -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 *); - -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, + 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 mempolicy_operations { - int (*create)(struct mempolicy *, const nodemask_t *); - void (*rebind)(struct mempolicy *, const nodemask_t *); +struct phc_vclocks_reply_data { + struct ethnl_reply_data base; + int num; + int *index; }; -struct sp_node { - struct rb_node nd; - unsigned long start; - unsigned long end; - struct mempolicy *policy; +enum { + TCP_NO_QUEUE = 0, + TCP_RECV_QUEUE = 1, + TCP_SEND_QUEUE = 2, + TCP_QUEUES_NR = 3, }; -struct queue_pages { - struct list_head *pagelist; - unsigned long flags; - nodemask_t *nmask; - unsigned long start; - unsigned long end; - struct vm_area_struct *first; +enum { + TCP_CMSG_INQ = 1, + TCP_CMSG_TS = 2, }; -struct nodemask_scratch { - nodemask_t mask1; - nodemask_t mask2; +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, }; -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; +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 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 mmpin { + struct user_struct *user; + unsigned int num_pg; }; -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 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 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 tcp_splice_state { + struct pipe_inode_info *pipe; + size_t len; + unsigned int flags; }; -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 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 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 tcp_repair_opt { + __u32 opt_code; + __u32 opt_val; }; -struct flock { - short l_type; - short l_whence; - __kernel_off_t l_start; - __kernel_off_t l_len; - __kernel_pid_t l_pid; +struct tcp_repair_window { + __u32 snd_wl1; + __u32 snd_wnd; + __u32 max_window; + __u32 rcv_wnd; + __u32 rcv_wup; }; -struct flock64 { - short l_type; - short l_whence; - __kernel_loff_t l_start; - __kernel_loff_t l_len; - __kernel_pid_t l_pid; +enum sk_pacing { + SK_PACING_NONE = 0, + SK_PACING_NEEDED = 1, + SK_PACING_FQ = 2, }; -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 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 configfs_fragment; - -struct configfs_dirent { - atomic_t s_count; - int s_dependent_count; - struct list_head s_sibling; - struct list_head s_children; - int s_links; - void *s_element; - int s_type; - umode_t s_mode; - struct dentry *s_dentry; - struct iattr *s_iattr; - struct configfs_fragment *s_frag; +enum xprt_xid_rb_cmp { + XID_RB_EQUAL = 0, + XID_RB_LEFT = 1, + XID_RB_RIGHT = 2, }; -struct configfs_fragment { - atomic_t frag_count; - struct rw_semaphore frag_sem; - bool frag_dead; +struct rpc_filelist { + const char *name; + const struct file_operations *i_fop; + umode_t mode; }; enum { - BLOCK_BITMAP = 0, - INODE_BITMAP = 1, - INODE_TABLE = 2, - GROUP_TABLE_COUNT = 3, + RPCAUTH_info = 0, + RPCAUTH_EOF = 1, }; -struct ext4_rcu_ptr { - struct callback_head rcu; - void *ptr; +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 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; +enum { + RPC_PIPEFS_MOUNT = 0, + RPC_PIPEFS_UMOUNT = 1, }; -struct ext4_new_flex_group_data { - struct ext4_new_group_data *groups; - __u16 *bg_flags; - ext4_group_t count; -}; +struct rpc_pipe_dir_object_ops; -struct squashfs_base_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; +struct rpc_pipe_dir_object { + struct list_head pdo_head; + const struct rpc_pipe_dir_object_ops *pdo_ops; + void *pdo_data; }; -struct squashfs_dev_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 nlink; - __le32 rdev; +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 squashfs_ldev_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 nlink; - __le32 rdev; - __le32 xattr; +struct ida_bitmap { + unsigned long bitmap[16]; }; -struct squashfs_symlink_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 nlink; - __le32 symlink_size; - char symlink[0]; +struct uevent_sock { + struct list_head list; + struct sock *sk; }; -struct squashfs_reg_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 start_block; - __le32 fragment; - __le32 offset; - __le32 file_size; - __le16 block_list[0]; +struct vl_info { + enum vec_type type; + const char *name; + int min_vl; + int max_vl; + int max_virtualisable_vl; + unsigned long vq_map[8]; + unsigned long vq_partial_map[8]; }; -struct squashfs_lreg_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le64 start_block; - __le64 file_size; - __le64 sparse; - __le32 nlink; - __le32 fragment; - __le32 offset; - __le32 xattr; - __le16 block_list[0]; +struct cpu_fp_state { + struct user_fpsimd_state *st; + void *sve_state; + void *sme_state; + u64 *svcr; + unsigned int sve_vl; + unsigned int sme_vl; + enum fp_type *fp_type; + enum fp_type to_save; }; -struct squashfs_dir_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 start_block; - __le32 nlink; - __le16 file_size; - __le16 offset; - __le32 parent_inode; +struct vl_config { + int __default_vl; }; -struct squashfs_ldir_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 nlink; - __le32 file_size; - __le32 start_block; - __le32 parent_inode; - __le16 i_count; - __le16 offset; - __le32 xattr; - struct squashfs_dir_index index[0]; +struct kvm_vfio_file { + struct list_head node; + struct file *file; }; -struct squashfs_ipc_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 nlink; +struct kvm_vfio { + struct list_head file_list; + struct mutex lock; + bool noncoherent; }; -struct squashfs_lipc_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 nlink; - __le32 xattr; +struct hyp_fixmap_slot { + u64 addr; + kvm_pte_t *ptep; }; -union squashfs_inode { - struct squashfs_base_inode base; - struct squashfs_dev_inode dev; - struct squashfs_ldev_inode ldev; - struct squashfs_symlink_inode symlink; - struct squashfs_reg_inode reg; - struct squashfs_lreg_inode lreg; - struct squashfs_dir_inode dir; - struct squashfs_ldir_inode ldir; - struct squashfs_ipc_inode ipc; - struct squashfs_lipc_inode lipc; +struct sha256_state { + u32 state[8]; + u64 count; + u8 buf[64]; }; -struct cb_process_state; +typedef void sha256_block_fn(struct sha256_state *, const u8 *, int); -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; +typedef const struct cpumask * (*sched_domain_mask_f)(int); + +typedef int (*sched_domain_flags_f)(); + +struct sd_data { + struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; + struct sched_domain_shared * __attribute__((btf_type_tag("percpu"))) *sds; + struct sched_group * __attribute__((btf_type_tag("percpu"))) *sg; + struct sched_group_capacity * __attribute__((btf_type_tag("percpu"))) *sgc; }; -struct cb_process_state { - __be32 drc_status; - struct nfs_client *clp; - struct nfs4_slot *slot; - u32 minorversion; - struct net *net; +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; }; -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 housekeeping { + cpumask_var_t cpumasks[9]; + unsigned long flags; }; -struct cb_compound_hdr_arg { - unsigned int taglen; - const char *tag; - unsigned int minorversion; - unsigned int cb_ident; - unsigned int nops; +struct cpuacct { + struct cgroup_subsys_state css; + u64 __attribute__((btf_type_tag("percpu"))) *cpuusage; + struct kernel_cpustat __attribute__((btf_type_tag("percpu"))) *cpustat; }; -struct cb_compound_hdr_res { - __be32 *status; - unsigned int taglen; - const char *tag; - __be32 *nops; +struct sugov_tunables { + struct gov_attr_set attr_set; + unsigned int rate_limit_us; }; -struct referring_call; +struct sugov_policy; -struct referring_call_list { - struct nfs4_sessionid rcl_sessionid; - uint32_t rcl_nrefcalls; - struct referring_call *rcl_refcalls; +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 referring_call { - uint32_t rc_sequenceid; - uint32_t rc_slotid; +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; }; -struct cb_offloadargs { - struct nfs_fh coa_fh; - nfs4_stateid coa_stateid; - uint32_t error; - uint64_t wr_count; - struct nfs_writeverf wr_writeverf; +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, }; -struct cb_getattrargs { - struct nfs_fh fh; - uint32_t bitmap[2]; +enum cpuacct_stat_index { + CPUACCT_STAT_USER = 0, + CPUACCT_STAT_SYSTEM = 1, + CPUACCT_STAT_NSTATS = 2, }; -struct cb_getattrres { - __be32 status; - uint32_t bitmap[2]; - uint64_t size; - uint64_t change_attr; - struct timespec64 ctime; - struct timespec64 mtime; +enum s_alloc { + sa_rootdomain = 0, + sa_sd = 1, + sa_sd_storage = 2, + sa_none = 3, }; -struct cb_recallargs { - struct nfs_fh fh; - nfs4_stateid stateid; - uint32_t truncate; +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, }; -struct cb_layoutrecallargs { - uint32_t cbl_recall_type; - uint32_t cbl_layout_type; - uint32_t cbl_layoutchanged; - union { - struct { - struct nfs_fh cbl_fh; - struct pnfs_layout_range cbl_range; - nfs4_stateid cbl_stateid; - }; - struct nfs_fsid cbl_fsid; - }; +enum membarrier_cmd_flag { + MEMBARRIER_CMD_FLAG_CPU = 1, }; -struct cb_recallanyargs { - uint32_t craa_objs_to_keep; - uint32_t craa_type_mask; +enum { + MEMBARRIER_FLAG_SYNC_CORE = 1, + MEMBARRIER_FLAG_RSEQ = 2, }; -struct cb_recallslotargs { - uint32_t crsa_target_highest_slotid; +struct swait_queue { + struct task_struct *task; + struct list_head task_list; }; -struct cb_sequenceargs { - struct sockaddr *csa_addr; - struct nfs4_sessionid csa_sessionid; - uint32_t csa_sequenceid; - uint32_t csa_slotid; - uint32_t csa_highestslotid; - uint32_t csa_cachethis; - uint32_t csa_nrclists; - struct referring_call_list *csa_rclists; +struct __cmp_key { + const struct cpumask *cpus; + struct cpumask ***masks; + int node; + int cpu; + int w; }; -struct cb_sequenceres { - __be32 csr_status; - struct nfs4_sessionid csr_sessionid; - uint32_t csr_sequenceid; - uint32_t csr_slotid; - uint32_t csr_highestslotid; - uint32_t csr_target_highestslotid; +struct asym_cap_data { + struct list_head link; + unsigned long capacity; + unsigned long cpus[0]; }; -struct cb_devicenotifyitem; - -struct cb_devicenotifyargs { - uint32_t ndevs; - struct cb_devicenotifyitem *devs; +struct s_data { + struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; + struct root_domain *rd; }; -struct cb_devicenotifyitem { - uint32_t cbd_notify_type; - uint32_t cbd_layout_type; - struct nfs4_deviceid cbd_dev_id; - uint32_t cbd_immediate; -}; +typedef void (*btf_trace_csd_queue_cpu)(void *, const unsigned int, unsigned long, smp_call_func_t, call_single_data_t *); -enum { - Opt_debug = 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_noxattr = 9, - Opt_directio = 10, - Opt_ignoreqv = 11, - Opt_access = 12, - Opt_posixacl = 13, - Opt_locktimeout = 14, - Opt_err___6 = 15, -}; +typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, call_single_data_t *); -enum p9_cache_shortcuts { - CACHE_SC_NONE = 0, - CACHE_SC_READAHEAD = 1, - CACHE_SC_MMAP = 5, - CACHE_SC_LOOSE = 15, - CACHE_SC_FSCACHE = 143, +typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, call_single_data_t *); + +struct call_function_data { + call_single_data_t __attribute__((btf_type_tag("percpu"))) *csd; + cpumask_var_t cpumask; + cpumask_var_t cpumask_ipi; }; -struct crypto_queue { - struct list_head list; - struct list_head *backlog; - unsigned int qlen; - unsigned int max_qlen; +struct trace_event_raw_csd_queue_cpu { + struct trace_entry ent; + unsigned int cpu; + void *callsite; + void *func; + void *csd; + char __data[0]; }; -enum { - REQ_FSEQ_PREFLUSH = 1, - REQ_FSEQ_DATA = 2, - REQ_FSEQ_POSTFLUSH = 4, - REQ_FSEQ_DONE = 8, - REQ_FSEQ_ACTIONS = 7, - FLUSH_PENDING_TIMEOUT = 1250, +struct trace_event_raw_csd_function { + struct trace_entry ent; + void *func; + void *csd; + char __data[0]; }; -enum bfqq_expiration { - BFQQE_TOO_IDLE = 0, - BFQQE_BUDGET_TIMEOUT = 1, - BFQQE_BUDGET_EXHAUSTED = 2, - BFQQE_NO_MORE_REQUESTS = 3, - BFQQE_PREEMPTED = 4, +struct smp_call_on_cpu_struct { + struct work_struct work; + struct completion done; + int (*func)(void *); + void *data; + int ret; + int cpu; }; -struct bfq_sched_data; +struct trace_event_data_offsets_csd_queue_cpu {}; -struct bfq_queue; +struct trace_event_data_offsets_csd_function {}; -struct bfq_entity { - struct rb_node rb_node; - bool on_st_or_in_serv; - u64 start; - u64 finish; - struct rb_root *tree; - u64 min_start; - int service; - int budget; - int allocated; - int dev_weight; - int weight; - int new_weight; - int orig_weight; - struct bfq_entity *parent; - struct bfq_sched_data *my_sched_data; - struct bfq_sched_data *sched_data; - int prio_changed; - bool in_groups_with_pending_reqs; - struct bfq_queue *last_bfqq_created; +enum { + HASH_SIZE = 128, }; -struct bfq_service_tree { - struct rb_root active; - struct rb_root idle; - struct bfq_entity *first_idle; - struct bfq_entity *last_idle; - u64 vtime; - unsigned long wsum; +struct audit_node { + struct list_head list; + struct audit_tree *owner; + unsigned int index; }; -struct bfq_sched_data { - struct bfq_entity *in_service_entity; - struct bfq_entity *next_in_service; - struct bfq_service_tree service_tree[3]; - unsigned long bfq_class_idle_last_service; +struct 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 bfqg_stats { - struct blkg_rwstat bytes; - struct blkg_rwstat ios; +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 bfq_data; - -struct bfq_group { - struct blkg_policy_data pd; - char blkg_path[128]; - refcount_t ref; - struct bfq_entity entity; - struct bfq_sched_data sched_data; - struct bfq_data *bfqd; - struct bfq_queue *async_bfqq[128]; - struct bfq_queue *async_idle_bfqq[8]; - struct bfq_entity *my_entity; - int active_entities; - int num_queues_with_pending_reqs; - struct rb_root rq_pos_tree; - struct bfqg_stats stats; +struct audit_tree_mark { + struct fsnotify_mark mark; + struct audit_chunk *chunk; }; -struct bfq_ttime { - u64 last_end_request; - u64 ttime_total; - unsigned long ttime_samples; - u64 ttime_mean; -}; +struct event_trigger_data; -struct bfq_weight_counter; +struct event_trigger_ops; -struct bfq_io_cq; +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 bfq_queue { +struct event_trigger_data { + unsigned long count; int ref; - int stable_ref; - struct bfq_data *bfqd; - unsigned short ioprio; - unsigned short ioprio_class; - unsigned short new_ioprio; - unsigned short new_ioprio_class; - u64 last_serv_time_ns; - unsigned int inject_limit; - unsigned long decrease_time_jif; - struct bfq_queue *new_bfqq; - struct rb_node pos_node; - struct rb_root *pos_root; - struct rb_root sort_list; - struct request *next_rq; - int queued[2]; - int meta_pending; - struct list_head fifo; - struct bfq_entity entity; - struct bfq_weight_counter *weight_counter; - int max_budget; - unsigned long budget_timeout; - int dispatched; - unsigned long flags; - struct list_head bfqq_list; - struct bfq_ttime ttime; - u64 io_start_time; - u64 tot_idle_time; - u32 seek_history; - struct hlist_node burst_list_node; - sector_t last_request_pos; - unsigned int requests_within_timer; - pid_t pid; - struct bfq_io_cq *bic; - unsigned long wr_cur_max_time; - unsigned long soft_rt_next_start; - unsigned long last_wr_start_finish; - unsigned int wr_coeff; - unsigned long last_idle_bklogged; - unsigned long service_from_backlogged; - unsigned long service_from_wr; - unsigned long wr_start_at_switch_to_srt; - unsigned long split_time; - unsigned long first_IO_time; - unsigned long creation_time; - struct bfq_queue *waker_bfqq; - struct bfq_queue *tentative_waker_bfqq; - unsigned int num_waker_detections; - u64 waker_detection_started; - struct hlist_node woken_list_node; - struct hlist_head woken_list; - unsigned int actuator_idx; + 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 bfq_data { - struct request_queue *queue; - struct list_head dispatch; - struct bfq_group *root_group; - struct rb_root_cached queue_weights_tree; - unsigned int num_groups_with_pending_reqs; - unsigned int busy_queues[3]; - int wr_busy_queues; - int queued; - int tot_rq_in_driver; - int rq_in_driver[8]; - bool nonrot_with_queueing; - int max_rq_in_driver; - int hw_tag_samples; - int hw_tag; - int budgets_assigned; - struct hrtimer idle_slice_timer; - struct bfq_queue *in_service_queue; - sector_t last_position; - sector_t in_serv_last_pos; - u64 last_completion; - struct bfq_queue *last_completed_rq_bfqq; - struct bfq_queue *last_bfqq_created; - u64 last_empty_occupied_ns; - bool wait_dispatch; - struct request *waited_rq; - bool rqs_injected; - u64 first_dispatch; - u64 last_dispatch; - ktime_t last_budget_start; - ktime_t last_idling_start; - unsigned long last_idling_start_jiffies; - int peak_rate_samples; - u32 sequential_samples; - u64 tot_sectors_dispatched; - u32 last_rq_max_size; - u64 delta_from_first; - u32 peak_rate; - int bfq_max_budget; - struct list_head active_list[8]; - struct list_head idle_list; - u64 bfq_fifo_expire[2]; - unsigned int bfq_back_penalty; - unsigned int bfq_back_max; - u32 bfq_slice_idle; - int bfq_user_max_budget; - unsigned int bfq_timeout; - bool strict_guarantees; - unsigned long last_ins_in_burst; - unsigned long bfq_burst_interval; - int burst_size; - struct bfq_entity *burst_parent_entity; - unsigned long bfq_large_burst_thresh; - bool large_burst; - struct hlist_head burst_list; - bool low_latency; - unsigned int bfq_wr_coeff; - unsigned int bfq_wr_rt_max_time; - unsigned int bfq_wr_min_idle_time; - unsigned long bfq_wr_min_inter_arr_async; - unsigned int bfq_wr_max_softrt_rate; - u64 rate_dur_prod; - struct bfq_queue oom_bfqq; - spinlock_t lock; - struct bfq_io_cq *bio_bic; - struct bfq_queue *bio_bfqq; - unsigned int word_depths[4]; - unsigned int full_depth_shift; - unsigned int num_actuators; - sector_t sector[8]; - sector_t nr_sectors[8]; - struct blk_independent_access_range ia_ranges[8]; - unsigned int actuator_load_threshold; +struct 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 *); }; -struct bfq_iocq_bfqq_data { - bool saved_has_short_ttime; - bool saved_IO_bound; - u64 saved_io_start_time; - u64 saved_tot_idle_time; - bool saved_in_large_burst; - bool was_in_burst_list; - unsigned int saved_weight; - unsigned long saved_wr_coeff; - unsigned long saved_last_wr_start_finish; - unsigned long saved_service_from_wr; - unsigned long saved_wr_start_at_switch_to_srt; - unsigned int saved_wr_cur_max_time; - struct bfq_ttime saved_ttime; - u64 saved_last_serv_time_ns; - unsigned int saved_inject_limit; - unsigned long saved_decrease_time_jif; - struct bfq_queue *stable_merge_bfqq; - bool stably_merged; +enum event_command_flags { + EVENT_CMD_FL_POST_TRIGGER = 1, + EVENT_CMD_FL_NEEDS_REC = 2, }; -struct bfq_io_cq { - struct io_cq icq; - struct bfq_queue *bfqq[16]; - int ioprio; - uint64_t blkcg_serial_nr; - struct bfq_iocq_bfqq_data bfqq_data[8]; - unsigned int requests; +enum { + EVENT_TRIGGER_FL_PROBE = 1, }; -struct bfq_weight_counter { - unsigned int weight; - unsigned int num_active; - struct rb_node weights_node; +struct enable_trigger_data { + struct trace_event_file *file; + bool enable; + bool hist; }; -struct bfq_group_data { - struct blkcg_policy_data pd; - unsigned int weight; -}; +typedef u64 (*btf_bpf_inode_storage_get)(struct bpf_map *, struct inode *, void *, u64, gfp_t); -union nested_table { - union nested_table __attribute__((btf_type_tag("rcu"))) *table; - struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket; -}; +typedef u64 (*btf_bpf_inode_storage_delete)(struct bpf_map *, struct inode *); -struct sg_pool { - size_t size; - char *name; - struct kmem_cache *slab; - mempool_t *pool; +struct bpf_storage_blob { + struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *storage; }; -typedef void sg_free_fn(struct scatterlist *, unsigned int); +typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); +typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -struct armctrl_ic { - void *base; - void *pending[3]; - void *enable[3]; - void *disable[3]; - struct irq_domain *domain; -}; +typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -struct combiner_reg { - void *addr; - unsigned long enabled; -}; +typedef void (*btf_trace_mm_compaction_migratepages)(void *, struct compact_control *, unsigned int); -struct combiner { - struct irq_domain *domain; - int parent_irq; - u32 nirqs; - u32 nregs; - struct combiner_reg regs[0]; -}; +typedef void (*btf_trace_mm_compaction_begin)(void *, struct compact_control *, unsigned long, unsigned long, bool); -struct get_registers_context { - struct device *dev; - struct combiner *combiner; - int err; -}; +typedef void (*btf_trace_mm_compaction_end)(void *, struct compact_control *, unsigned long, unsigned long, bool, int); -struct phy_axg_pcie_priv { - struct phy *phy; - struct phy *analog; - struct regmap *regmap; - struct reset_control *reset; -}; +typedef void (*btf_trace_mm_compaction_try_to_compact_pages)(void *, int, gfp_t, int); -struct tegra124_xusb_fuse_calibration { - u32 hs_curr_level[3]; - u32 hs_iref_cap; - u32 hs_term_range_adj; - u32 hs_squelch_level; -}; +typedef void (*btf_trace_mm_compaction_finished)(void *, struct zone *, int, int); -struct tegra124_xusb_padctl { - struct tegra_xusb_padctl base; - struct tegra124_xusb_fuse_calibration fuse; -}; +typedef void (*btf_trace_mm_compaction_suitable)(void *, struct zone *, int, int); -struct tegra_xusb_ulpi_lane { - struct tegra_xusb_lane base; -}; +typedef void (*btf_trace_mm_compaction_deferred)(void *, struct zone *, int); -struct tegra_xusb_ulpi_pad { - struct tegra_xusb_pad base; +typedef void (*btf_trace_mm_compaction_defer_compaction)(void *, struct zone *, int); + +typedef void (*btf_trace_mm_compaction_defer_reset)(void *, struct zone *, int); + +typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int); + +typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type); + +typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type); + +enum pageblock_bits { + PB_migrate = 0, + PB_migrate_end = 2, + PB_migrate_skip = 3, + NR_PAGEBLOCK_BITS = 4, }; -struct visconti_pinctrl { - void *base; - struct device *dev; - struct pinctrl_dev *pctl; - struct pinctrl_desc pctl_desc; - const struct visconti_pinctrl_devdata *devdata; - spinlock_t lock; +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 walk_rcec_data { - struct pci_dev *rcec; - int (*user_callback)(struct pci_dev *, void *); - void *user_data; +struct trace_event_raw_mm_compaction_migratepages { + struct trace_entry ent; + unsigned long nr_migrated; + unsigned long nr_failed; + char __data[0]; }; -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 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]; }; -enum { - RCAR_PCI_ACCESS_READ = 0, - RCAR_PCI_ACCESS_WRITE = 1, +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 rcar_pcie { - struct device *dev; - void *base; +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 rcar_msi { - unsigned long used[1]; - struct irq_domain *domain; - struct mutex map_lock; - spinlock_t mask_lock; - int irq1; - int irq2; +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 rcar_pcie_host { - struct rcar_pcie pcie; - struct phy *phy; - struct clk *bus_clk; - struct rcar_msi msi; - int (*phy_init_fn)(struct rcar_pcie_host *); +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 acpi_lpat { - int temp; - int raw; +struct trace_event_raw_mm_compaction_kcompactd_sleep { + struct trace_entry ent; + int nid; + char __data[0]; }; -struct acpi_lpat_conversion_table { - struct acpi_lpat *lpat; - int lpat_count; +struct trace_event_raw_kcompactd_wake_template { + struct trace_entry ent; + int nid; + int order; + enum zone_type highest_zoneidx; + char __data[0]; }; -struct acpi_signal_fatal_info { - u32 type; - u32 code; - u32 argument; -}; +typedef enum { + ISOLATE_ABORT = 0, + ISOLATE_NONE = 1, + ISOLATE_SUCCESS = 2, +} isolate_migrate_t; -struct acpi_comment_node { - char *comment; - struct acpi_comment_node *next; -}; +struct trace_event_data_offsets_mm_compaction_isolate_template {}; -struct acpi_table_list { - struct acpi_table_desc *tables; - u32 current_table_count; - u32 max_table_count; - u8 flags; -}; +struct trace_event_data_offsets_mm_compaction_migratepages {}; -struct acpi_mutex_info { - void *mutex; - u32 use_count; - u64 thread_id; -}; +struct trace_event_data_offsets_mm_compaction_begin {}; -typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); +struct trace_event_data_offsets_mm_compaction_end {}; -typedef acpi_status (*acpi_init_handler)(acpi_handle, u32); +struct trace_event_data_offsets_mm_compaction_try_to_compact_pages {}; -typedef u32 (*acpi_sci_handler)(void *); +struct trace_event_data_offsets_mm_compaction_suitable_template {}; -struct acpi_sci_handler_info { - struct acpi_sci_handler_info *next; - acpi_sci_handler address; - void *context; -}; +struct trace_event_data_offsets_mm_compaction_defer_template {}; -struct owl_reset_map; +struct trace_event_data_offsets_mm_compaction_kcompactd_sleep {}; -struct owl_clk_desc { - struct owl_clk_common **clks; - unsigned long num_clks; - struct clk_hw_onecell_data *hw_clks; - const struct owl_reset_map *resets; - unsigned long num_resets; - struct regmap *regmap; +struct trace_event_data_offsets_kcompactd_wake_template {}; + +struct alloc_context { + struct zonelist *zonelist; + nodemask_t *nodemask; + struct zoneref *preferred_zoneref; + int migratetype; + enum zone_type highest_zoneidx; + bool spread_dirty_pages; }; -struct owl_reset_map { - u32 reg; - u32 bit; +struct node { + struct device dev; + struct list_head access_list; + struct list_head cache_attrs; + struct device *cache_dev; }; -struct hisi_reset_controller { - spinlock_t lock; - void *membase; - struct reset_controller_dev rcdev; +struct saved { + struct path link; + struct delayed_call done; + const char *name; + unsigned int seq; }; -struct meson_eeclkc_data { - struct clk_regmap * const *regmap_clks; - unsigned int regmap_clk_num; - const struct reg_sequence *init_regs; - unsigned int init_count; - struct clk_hw_onecell_data *hw_onecell_data; +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; }; -struct meson_g12a_data { - const struct meson_eeclkc_data eeclkc_data; - int (*dvfs_setup)(struct platform_device *); +enum { + LAST_NORM = 0, + LAST_ROOT = 1, + LAST_DOT = 2, + LAST_DOTDOT = 3, }; -struct g12a_cpu_clk_postmux_nb_data { - struct notifier_block nb; - struct clk_hw *xtal; - struct clk_hw *cpu_clk_dyn; - struct clk_hw *cpu_clk_postmux0; - struct clk_hw *cpu_clk_postmux1; - struct clk_hw *cpu_clk_premux1; +enum { + WALK_TRAILING = 1, + WALK_MORE = 2, + WALK_NOFOLLOW = 4, }; -struct g12a_sys_pll_nb_data { - struct notifier_block nb; - struct clk_hw *sys_pll; - struct clk_hw *cpu_clk; - struct clk_hw *cpu_clk_dyn; +struct open_flags { + int open_flag; + umode_t mode; + int acc_mode; + int intent; + int lookup_flags; }; -struct rockchip_inv_clock { - struct clk_hw hw; - void *reg; - int shift; - int flags; - spinlock_t *lock; +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 rockchip_ddrclk { - struct clk_hw hw; - void *reg_base; - int mux_offset; - int mux_shift; - int mux_width; - int div_shift; - int div_width; - int ddr_flag; - spinlock_t *lock; +struct folio_iter { + struct folio *folio; + size_t offset; + size_t length; + struct folio *_next; + size_t _seg_count; + int _i; }; -struct clk_rk3568_inits { - void (*inits)(struct device_node *); +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 tegra_sync_source_initdata { - char *name; - unsigned long rate; - unsigned long max_rate; - int clk_id; +struct mpage_data { + struct bio *bio; + sector_t last_block_in_bio; + get_block_t *get_block; }; -struct tegra_audio_clk_initdata { - char *gate_name; - char *mux_name; - u32 offset; - int gate_clk_id; - int mux_clk_id; +struct core_name { + char *corename; + int used; + int size; }; -struct tegra_audio2x_clk_initdata { - char *parent; - char *gate_name; - char *name_2x; - char *div_name; - int clk_id; - int clk_num; - u8 div_offset; +struct ext4_system_zone { + struct rb_node node; + ext4_fsblk_t start_blk; + unsigned int count; + u32 ino; }; -struct tegra_audio_clk_info { - char *name; - struct tegra_clk_pll_params *pll_params; - int clk_id; - char *parent; +enum { + MBE_REFERENCED_B = 0, + MBE_REUSABLE_B = 1, }; -struct visconti_pll { - struct clk_hw hw; - void *pll_base; - spinlock_t *lock; - unsigned long flags; - const struct visconti_pll_rate_table *rate_table; - size_t rate_count; - struct visconti_pll_provider *ctx; +struct ext4_xattr_header { + __le32 h_magic; + __le32 h_refcount; + __le32 h_blocks; + __le32 h_hash; + __le32 h_checksum; + __u32 h_reserved[3]; }; -struct pl330_of_quirks { - char *quirk; - int id; +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; }; -enum pl330_cachectrl { - CCTRL0 = 0, - CCTRL1 = 1, - CCTRL2 = 2, - CCTRL3 = 3, - INVALID1 = 4, - INVALID2 = 5, - CCTRL6 = 6, - CCTRL7 = 7, +struct ext4_xattr_block_find { + struct ext4_xattr_search s; + struct buffer_head *bh; }; -enum pl330_byteswap { - SWAP_NO = 0, - SWAP_2 = 1, - SWAP_4 = 2, - SWAP_8 = 3, - SWAP_16 = 4, +struct nfs4_ssc_client_ops { + struct file * (*sco_open)(struct vfsmount *, struct nfs_fh *, nfs4_stateid *); + void (*sco_close)(struct file *); }; -enum desc_status { - FREE = 0, - PREP = 1, - BUSY = 2, - PAUSED = 3, - DONE___2 = 4, +struct nlm_wait { + struct list_head b_list; + wait_queue_head_t b_wait; + struct nlm_host *b_host; + struct file_lock *b_lock; + __be32 b_status; }; -enum pl330_dmac_state { - UNINIT___2 = 0, - INIT = 1, - DYING = 2, +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; }; -enum pl330_op_err { - PL330_ERR_NONE = 0, - PL330_ERR_ABORT = 1, - PL330_ERR_FAIL = 2, +struct utf8_table { + int cmask; + int cval; + int shift; + long lmask; + long lval; }; -enum dmamov_dst { - SAR = 0, - CCR = 1, - DAR = 2, +typedef u32 unicode_t; + +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, +} __attribute__((mode(byte))); + +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, }; -enum pl330_cond { - SINGLE = 0, - BURST = 1, - ALWAYS = 2, +struct p9_rdir { + int head; + int tail; + uint8_t buf[0]; }; -struct pl330_dmac; +struct p9_dirent { + struct p9_qid qid; + u64 d_off; + unsigned char d_type; + char d_name[256]; +}; -struct pl330_thread; +enum devcg_behavior { + DEVCG_DEFAULT_NONE = 0, + DEVCG_DEFAULT_ALLOW = 1, + DEVCG_DEFAULT_DENY = 2, +}; -struct dma_pl330_chan { - struct tasklet_struct task; - struct dma_chan chan; - struct list_head submitted_list; - struct list_head work_list; - struct list_head completed_list; - struct pl330_dmac *dmac; - spinlock_t lock; - struct pl330_thread *thread; - int burst_sz; - int burst_len; - phys_addr_t fifo_addr; - dma_addr_t fifo_dma; - enum dma_data_direction dir; - struct dma_slave_config slave_config; - bool cyclic; - bool active; +struct dev_cgroup { + struct cgroup_subsys_state css; + struct list_head exceptions; + enum devcg_behavior behavior; }; -struct pl330_config { - u32 periph_id; - unsigned int mode; - unsigned int data_bus_width: 10; - unsigned int data_buf_dep: 11; - unsigned int num_chan: 4; - unsigned int num_peri: 6; - u32 peri_ns; - unsigned int num_events: 6; - u32 irq_ns; +struct dev_exception_item { + u32 major; + u32 minor; + short type; + short access; + struct list_head list; + struct callback_head rcu; }; -struct _pl330_tbd { - bool reset_dmac; - bool reset_mngr; - u8 reset_chan; +struct chksum_desc_ctx___2 { + __u16 crc; }; -struct pl330_dmac { - struct dma_device ddma; - struct list_head desc_pool; - spinlock_t pool_lock; - unsigned int mcbufsz; - void *base; - struct pl330_config pcfg; - spinlock_t lock; - int events[32]; - dma_addr_t mcode_bus; - void *mcode_cpu; - struct pl330_thread *channels; - struct pl330_thread *manager; - struct tasklet_struct tasks; - struct _pl330_tbd dmac_tbd; - enum pl330_dmac_state state; - struct list_head req_done; - unsigned int num_peripherals; - struct dma_pl330_chan *peripherals; - int quirks; - struct reset_control *rstc; - struct reset_control *rstc_ocp; +enum packing_op { + PACK = 0, + UNPACK = 1, }; -struct dma_pl330_desc; +typedef enum { + CODES = 0, + LENS = 1, + DISTS = 2, +} codetype; -struct _pl330_req { - u32 mc_bus; - void *mc_cpu; - struct dma_pl330_desc *desc; +struct mbi_range { + u32 spi_start; + u32 nr_spis; + unsigned long *bm; }; -struct pl330_thread { - u8 id; - int ev; - bool free; - struct pl330_dmac *dmac; - struct _pl330_req req[2]; - unsigned int lstenq; - int req_running; +struct fsl_mc_obj_cmd_open { + __le32 obj_id; }; -struct pl330_xfer { - u32 src_addr; - u32 dst_addr; - u32 bytes; +struct phy_meson_axg_mipi_dphy_priv { + struct device *dev; + struct regmap *regmap; + struct clk *clk; + struct reset_control *reset; + struct phy *analog; + struct phy_configure_opts_mipi_dphy config; }; -struct pl330_reqcfg { - unsigned int dst_inc: 1; - unsigned int src_inc: 1; - bool nonsecure; - bool privileged; - bool insnaccess; - unsigned int brst_len: 5; - unsigned int brst_size: 3; - enum pl330_cachectrl dcctl; - enum pl330_cachectrl scctl; - enum pl330_byteswap swap; - struct pl330_config *pcfg; +enum exynos_mipi_phy_id { + EXYNOS_MIPI_PHY_ID_NONE = -1, + EXYNOS_MIPI_PHY_ID_CSIS0 = 0, + EXYNOS_MIPI_PHY_ID_DSIM0 = 1, + EXYNOS_MIPI_PHY_ID_CSIS1 = 2, + EXYNOS_MIPI_PHY_ID_DSIM1 = 3, + EXYNOS_MIPI_PHY_ID_CSIS2 = 4, + EXYNOS_MIPI_PHYS_NUM = 5, }; -struct dma_pl330_desc { - struct list_head node; - struct dma_async_tx_descriptor txd; - struct pl330_xfer px; - struct pl330_reqcfg rqcfg; - enum desc_status status; - int bytes_requested; - bool last; - struct dma_pl330_chan *pchan; - enum dma_transfer_direction rqtype; - unsigned int peri: 5; - struct list_head rqd; +enum exynos_mipi_phy_regmap_id { + EXYNOS_MIPI_REGMAP_PMU = 0, + EXYNOS_MIPI_REGMAP_DISP = 1, + EXYNOS_MIPI_REGMAP_CAM0 = 2, + EXYNOS_MIPI_REGMAP_CAM1 = 3, + EXYNOS_MIPI_REGMAPS_NUM = 4, }; -struct _arg_GO { - u8 chan; - u32 addr; - unsigned int ns; +struct exynos_mipi_phy_desc { + enum exynos_mipi_phy_id coupled_phy_id; + u32 enable_val; + unsigned int enable_reg; + enum exynos_mipi_phy_regmap_id enable_map; + u32 resetn_val; + unsigned int resetn_reg; + enum exynos_mipi_phy_regmap_id resetn_map; }; -struct _xfer_spec { - u32 ccr; - struct dma_pl330_desc *desc; +struct mipi_phy_device_desc { + int num_phys; + int num_regmaps; + const char *regmap_names[4]; + struct exynos_mipi_phy_desc phys[5]; }; -struct _arg_LPEND { - enum pl330_cond cond; - bool forever; - unsigned int loop; - u8 bjump; +struct video_phy_desc { + struct phy *phy; + unsigned int index; + const struct exynos_mipi_phy_desc *data; }; -struct rsc_hdr { - __le16 slv_id; - __le16 header_offset; - __le16 data_offset; - __le16 cnt; - __le16 version; - __le16 reserved[3]; +struct exynos_mipi_video_phy { + struct regmap *regmaps[4]; + int num_phys; + struct video_phy_desc phys[5]; + spinlock_t slock; }; -struct cmd_db_header { - __le32 version; - u8 magic[4]; - struct rsc_hdr header[8]; - __le32 checksum; - __le32 reserved; - u8 data[0]; +enum s900_pinconf_pull { + OWL_PINCONF_PULL_HIZ = 0, + OWL_PINCONF_PULL_DOWN___2 = 1, + OWL_PINCONF_PULL_UP___2 = 2, + OWL_PINCONF_PULL_HOLD = 3, }; -struct entry_header { - u8 id[8]; - __le32 priority[2]; - __le32 addr; - __le16 len; - __le16 offset; +struct gpio_get_config { + u32 gpio; + u32 direction; + u32 polarity; + u32 term_en; + u32 term_pull_up; }; -struct evtchn_fifo_queue { - uint32_t head[16]; +struct rpi_exp_gpio { + struct gpio_chip gc; + struct rpi_firmware *fw; }; -typedef uint32_t event_word_t; - -struct evtchn_fifo_control_block { - uint32_t ready; - uint32_t _rsvd; - event_word_t head[16]; +struct gpio_set_config { + u32 gpio; + u32 direction; + u32 polarity; + u32 term_en; + u32 term_pull_up; + u32 state; }; -struct evtchn_init_control { - uint64_t control_gfn; - uint32_t offset; - uint32_t vcpu; - uint8_t link_bits; - uint8_t _pad[7]; +struct gpio_get_set_state { + u32 gpio; + u32 state; }; -struct evtchn_expand_array { - uint64_t array_gfn; +enum enable_type { + undefined = -1, + user_disabled = 0, + auto_disabled = 1, + user_enabled = 2, + auto_enabled = 3, }; -struct xenbus_transaction_holder { - struct list_head list; - struct xenbus_transaction handle; - unsigned int generation_id; +enum release_type { + leaf_only = 0, + whole_subtree = 1, }; -struct read_buffer { +struct pci_dev_resource { struct list_head list; - unsigned int cons; - unsigned int len; - char msg[0]; + struct resource *res; + struct pci_dev *dev; + resource_size_t start; + resource_size_t end; + resource_size_t add_size; + resource_size_t min_align; + unsigned long flags; }; -struct xenbus_file_priv { - struct mutex msgbuffer_mutex; - struct list_head transactions; - struct list_head watches; - unsigned int len; - union { - struct xsd_sockmsg msg; - char buffer[4096]; - } u; - struct mutex reply_mutex; - struct list_head read_buffers; - wait_queue_head_t read_waitq; - struct kref kref; - struct work_struct wq; +struct thunder_pem_pci { + u32 ea_entry[3]; + void *pem_reg_base; }; -struct watch_adapter { - struct list_head list; - struct xenbus_watch watch; - struct xenbus_file_priv *dev_data; - char *token; +struct mobiveil_msi { + struct mutex lock; + struct irq_domain *msi_domain; + struct irq_domain *dev_domain; + phys_addr_t msi_pages_phys; + int num_of_vectors; + unsigned long msi_irq_in_use[1]; }; -enum device_id { - MAX8973 = 0, - MAX77621 = 1, +struct mobiveil_rp_ops; + +struct mobiveil_root_port { + void *config_axi_slave_base; + struct resource *ob_io_res; + struct mobiveil_rp_ops *ops; + int irq; + raw_spinlock_t intx_mask_lock; + struct irq_domain *intx_domain; + struct mobiveil_msi msi; + struct pci_host_bridge *bridge; }; -struct max8973_regulator_platform_data { - struct regulator_init_data *reg_init_data; - unsigned long control_flags; - unsigned long junction_temp_warning; - bool enable_ext_control; - int enable_gpio; - int dvs_gpio; - unsigned int dvs_def_state: 1; +struct mobiveil_pab_ops; + +struct mobiveil_pcie { + struct platform_device *pdev; + void *csr_axi_slave_base; + void *apb_csr_base; + phys_addr_t pcie_reg_base; + int apio_wins; + int ppio_wins; + int ob_wins_configured; + int ib_wins_configured; + const struct mobiveil_pab_ops *ops; + struct mobiveil_root_port rp; }; -struct max8973_chip { - struct device *dev; - struct regulator_desc desc; - struct regmap *regmap; - bool enable_external_control; - int dvs_gpio; - int lru_index[2]; - int curr_vout_val[2]; - int curr_vout_reg; - int curr_gpio_val; - struct regulator_ops ops; - enum device_id id; - int junction_temp_warning; - int irq; - struct thermal_zone_device *tz_device; +struct mobiveil_pab_ops { + int (*link_up)(struct mobiveil_pcie *); }; -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 mobiveil_rp_ops { + int (*interrupt_init)(struct mobiveil_pcie *); }; -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 acpi_create_field_info { + struct acpi_namespace_node *region_node; + struct acpi_namespace_node *field_node; + struct acpi_namespace_node *register_node; + struct acpi_namespace_node *data_register_node; + struct acpi_namespace_node *connection_node; + u8 *resource_buffer; + u32 bank_value; + u32 field_bit_position; + u32 field_bit_length; + u16 resource_length; + u16 pin_number_index; + u8 field_flags; + u8 attribute; + u8 field_type; + u8 access_length; }; -struct 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 tbg_def { + char *name; + u32 refdiv_offset; + u32 fbdiv_offset; + u32 vcodiv_reg; + u32 vcodiv_offset; }; -struct serport { - struct tty_port *port; - struct tty_struct *tty; - struct tty_driver *tty_drv; - int tty_idx; - unsigned long flags; +enum { + P_XO = 0, + P_GPLL0 = 1, + P_APSS_PLL_EARLY = 2, }; -struct tpm2_hash { - unsigned int crypto_id; - unsigned int tpm_id; +enum clk_ids___5 { + LAST_DT_CORE_CLK___5 = 76, + CLK_EXTAL___5 = 77, + CLK_EXTALR___5 = 78, + CLK_MAIN___5 = 79, + CLK_PLL1___5 = 80, + CLK_PLL2___3 = 81, + CLK_PLL3___4 = 82, + CLK_PLL4___3 = 83, + CLK_PLL5___2 = 84, + CLK_PLL6 = 85, + CLK_PLL1_DIV2___5 = 86, + CLK_PLL2_DIV2 = 87, + CLK_PLL3_DIV2 = 88, + CLK_PLL4_DIV2 = 89, + CLK_PLL5_DIV2___2 = 90, + CLK_PLL5_DIV4___2 = 91, + CLK_PLL6_DIV2 = 92, + CLK_S0___3 = 93, + CLK_S0_VIO = 94, + CLK_S0_VC = 95, + CLK_S0_HSC = 96, + CLK_SASYNCPER = 97, + CLK_SV_VIP = 98, + CLK_SV_IR = 99, + CLK_SDSRC___4 = 100, + CLK_RPCSRC___4 = 101, + CLK_VIO = 102, + CLK_VC = 103, + CLK_OCO___2 = 104, + MOD_CLK_BASE___5 = 105, }; -enum tpm2_const { - TPM2_PLATFORM_PCR = 24, - TPM2_PCR_SELECT_MIN = 3, +struct socfpga_pll { + struct clk_gate hw; }; -enum tpm2_structures { - TPM2_ST_NO_SESSIONS = 32769, - TPM2_ST_SESSIONS = 32770, +struct stratix10_pll_clock { + unsigned int id; + const char *name; + const struct clk_parent_data *parent_data; + u8 num_parents; + unsigned long flags; + unsigned long offset; }; -enum tpm2_permanent_handles { - TPM2_RS_PW = 1073741833, +struct tegra_clk_pll_out { + struct clk_hw hw; + void *reg; + u8 enb_bit_idx; + u8 rst_bit_idx; + spinlock_t *lock; + u8 flags; }; -enum tpm2_capabilities { - TPM2_CAP_HANDLES = 1, - TPM2_CAP_COMMANDS = 2, - TPM2_CAP_PCRS = 5, - TPM2_CAP_TPM_PROPERTIES = 6, +struct dfll_fcpu_data { + const unsigned long *cpu_max_freq_table; + unsigned int cpu_max_freq_table_size; + const struct cvb_table *cpu_cvb_tables; + unsigned int cpu_cvb_tables_size; }; -enum tpm2_properties { - TPM_PT_TOTAL_COMMANDS = 297, +struct tegra_dfll_soc_data { + struct device *dev; + unsigned long max_freq; + const struct cvb_table *cvb; + struct rail_alignment alignment; + void (*init_clock_trimmers)(); + void (*set_clock_trimmers_high)(); + void (*set_clock_trimmers_low)(); }; -enum tpm2_cc_attrs { - TPM2_CC_ATTR_CHANDLES = 25, - TPM2_CC_ATTR_RHANDLE = 28, - TPM2_CC_ATTR_VENDOR = 29, +enum mv_xor_type { + XOR_ORION = 0, + XOR_ARMADA_38X = 1, + XOR_ARMADA_37XX = 2, }; -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 mv_xor_mode { + XOR_MODE_IN_REG = 0, + XOR_MODE_IN_DESC = 1, }; -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 mv_xor_device; -struct tpm2_get_random_out { - __be16 size; - u8 buffer[128]; +struct mv_xor_chan { + int pending; + spinlock_t lock; + void *mmr_base; + void *mmr_high_base; + unsigned int idx; + int irq; + struct list_head chain; + struct list_head free_slots; + struct list_head allocated_slots; + struct list_head completed_slots; + dma_addr_t dma_desc_pool; + void *dma_desc_pool_virt; + size_t pool_size; + struct dma_device dmadev; + struct dma_chan dmachan; + int slots_allocated; + struct tasklet_struct irq_tasklet; + int op_in_desc; + char dummy_src[128]; + char dummy_dst[128]; + dma_addr_t dummy_src_addr; + dma_addr_t dummy_dst_addr; + u32 saved_config_reg; + u32 saved_int_mask_reg; + struct mv_xor_device *xordev; }; -struct tpm2_get_cap_out { - u8 more_data; - __be32 subcap_id; - __be32 property_cnt; - __be32 property_id; - __be32 value; -} __attribute__((packed)); +struct mv_xor_device { + void *xor_base; + void *xor_high_base; + struct clk *clk; + struct mv_xor_chan *channels[2]; + int xor_type; + u32 win_start[8]; + u32 win_end[8]; +}; -struct tpm2_null_auth_area { - __be32 handle; - __be16 nonce_size; - u8 attributes; - __be16 auth_size; -} __attribute__((packed)); +struct mv_xor_desc_slot { + struct list_head node; + struct list_head sg_tx_list; + enum dma_transaction_type type; + void *hw_desc; + u16 idx; + struct dma_async_tx_descriptor async_tx; +}; -struct tpm2_pcr_selection { - __be16 hash_alg; - u8 size_of_select; - u8 pcr_select[3]; +struct mv_xor_desc { + u32 status; + u32 crc32_result; + u32 desc_command; + u32 phy_next_desc; + u32 byte_count; + u32 phy_dest_addr; + u32 phy_src_addr[8]; + u32 reserved0; + u32 reserved1; }; -struct subsys_private { - struct kset subsys; - struct kset *devices_kset; - struct list_head interfaces; - struct mutex mutex; - struct kset *drivers_kset; - struct klist klist_devices; - struct klist klist_drivers; - struct blocking_notifier_head bus_notifier; - unsigned int drivers_autoprobe: 1; - const struct bus_type *bus; - struct device *dev_root; - struct kset glue_dirs; - const struct class *class; - struct lock_class_key lock_key; +struct mv_xor_channel_data; + +struct mv_xor_platform_data { + struct mv_xor_channel_data *channels; }; -struct class_attribute_string { - struct class_attribute attr; - char *str; +struct mv_xor_channel_data { + dma_cap_mask_t cap_mask; }; -struct class_compat { - struct kobject *kobj; +struct bman_hwerr_txt { + u32 mask; + const char *txt; }; -struct class_interface { - struct list_head node; - const struct class *class; - int (*add_dev)(struct device *); - void (*remove_dev)(struct device *); +struct qcom_smem_state_ops { + int (*update_bits)(void *, u32, u32); }; -struct sunxi_rsb_device; +struct qcom_smem_state; -struct sunxi_rsb_driver { - struct device_driver driver; - int (*probe)(struct sunxi_rsb_device *); - void (*remove)(struct sunxi_rsb_device *); -}; +struct smsm_entry; -struct sunxi_rsb; +struct smsm_host; -struct sunxi_rsb_device { - struct device dev; - struct sunxi_rsb *rsb; - int irq; - u8 rtaddr; - u16 hwaddr; +struct qcom_smsm { + struct device *dev; + u32 local_host; + u32 num_hosts; + u32 num_entries; + u32 *local_state; + u32 *subscription; + struct qcom_smem_state *state; + spinlock_t lock; + struct smsm_entry *entries; + struct smsm_host *hosts; }; -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 smsm_entry { + struct qcom_smsm *smsm; + struct irq_domain *domain; + unsigned long irq_enabled[1]; + unsigned long irq_rising[1]; + unsigned long irq_falling[1]; + unsigned long last_value; + u32 *remote_state; + u32 *subscription; }; -struct sync_merge_data { - char name[32]; - __s32 fd2; - __s32 fence; - __u32 flags; - __u32 pad; +struct smsm_host { + struct regmap *ipc_regmap; + int ipc_offset; + int ipc_bit; }; -struct sync_file_info { - char name[32]; - __s32 status; - __u32 flags; - __u32 num_fences; - __u32 pad; - __u64 sync_fence_info; +struct scmi_perf_domain { + struct generic_pm_domain genpd; + const struct scmi_perf_proto_ops *perf_ops; + const struct scmi_protocol_handle *ph; + const struct scmi_perf_domain_info *info; + u32 domain_id; }; -struct sync_fence_info { - char obj_name[32]; - char driver_name[32]; - __s32 status; - __u32 flags; - __u64 timestamp_ns; +struct xen_bus_type { + char *root; + unsigned int levels; + int (*get_bus_id)(char *, const char *); + int (*probe)(struct xen_bus_type *, const char *, const char *); + bool (*otherend_will_handle)(struct xenbus_watch *, const char *, const char *); + void (*otherend_changed)(struct xenbus_watch *, const char *, const char *); + struct bus_type bus; }; -struct pr_keys { - u32 generation; - u32 num_keys; - u64 keys[0]; -}; +typedef void (*btf_trace_regulator_enable)(void *, const char *); -struct pr_held_reservation { - u64 key; - u32 generation; - enum pr_type type; -}; +typedef void (*btf_trace_regulator_enable_delay)(void *, const char *); -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, -}; +typedef void (*btf_trace_regulator_enable_complete)(void *, const char *); -enum { - SD_DEF_XFER_BLOCKS = 65535, - SD_MAX_XFER_BLOCKS = 4294967295, - SD_MAX_WS10_BLOCKS = 65535, - SD_MAX_WS16_BLOCKS = 8388607, -}; +typedef void (*btf_trace_regulator_disable)(void *, const char *); -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, +typedef void (*btf_trace_regulator_disable_complete)(void *, const char *); + +typedef void (*btf_trace_regulator_bypass_enable)(void *, const char *); + +typedef void (*btf_trace_regulator_bypass_enable_complete)(void *, const char *); + +typedef void (*btf_trace_regulator_bypass_disable)(void *, const char *); + +typedef void (*btf_trace_regulator_bypass_disable_complete)(void *, const char *); + +typedef void (*btf_trace_regulator_set_voltage)(void *, const char *, int, int); + +typedef void (*btf_trace_regulator_set_voltage_complete)(void *, const char *, unsigned int); + +struct ww_class { + atomic_long_t stamp; + struct lock_class_key acquire_key; + struct lock_class_key mutex_key; + const char *acquire_name; + const char *mutex_name; + unsigned int is_wait_die; }; -enum { - SD_ZERO_WRITE = 0, - SD_ZERO_WS = 1, - SD_ZERO_WS16_UNMAP = 2, - SD_ZERO_WS10_UNMAP = 3, +struct regulator_coupler { + struct list_head list; + int (*attach_regulator)(struct regulator_coupler *, struct regulator_dev *); + int (*detach_regulator)(struct regulator_coupler *, struct regulator_dev *); + int (*balance_voltage)(struct regulator_coupler *, struct regulator_dev *, suspend_state_t); }; -enum { - BLK_MQ_REQ_NOWAIT = 1, - BLK_MQ_REQ_RESERVED = 2, - BLK_MQ_REQ_PM = 4, +struct regulator_enable_gpio { + struct list_head list; + struct gpio_desc *gpiod; + u32 enable_count; + u32 request_count; }; -enum { - IOPRIO_HINT_NONE = 0, - IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1, - IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2, - IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3, - IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4, - IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5, - IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6, - IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7, +enum regulator_active_discharge { + REGULATOR_ACTIVE_DISCHARGE_DEFAULT = 0, + REGULATOR_ACTIVE_DISCHARGE_DISABLE = 1, + REGULATOR_ACTIVE_DISCHARGE_ENABLE = 2, }; -enum { - SD_EXT_CDB_SIZE = 32, - SD_MEMPOOL_SIZE = 2, +struct trace_event_raw_regulator_basic { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; }; -struct mtd_notifier { - void (*add)(struct mtd_info *); - void (*remove)(struct mtd_info *); - struct list_head list; +struct trace_event_raw_regulator_range { + struct trace_entry ent; + u32 __data_loc_name; + int min; + int max; + char __data[0]; }; -struct mtd_blktrans_ops; +struct trace_event_raw_regulator_value { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int val; + char __data[0]; +}; -struct mtd_blktrans_dev { - struct mtd_blktrans_ops *tr; +struct regulator_map { struct list_head list; - struct mtd_info *mtd; - struct mutex lock; - int devnum; - bool bg_stop; - unsigned long size; - int readonly; - int open; - struct kref ref; - struct gendisk *disk; - struct attribute_group *disk_attributes; - struct request_queue *rq; - struct list_head rq_list; - struct blk_mq_tag_set *tag_set; - spinlock_t queue_lock; - void *priv; - bool writable; + const char *dev_name; + const char *supply; + struct regulator_dev *regulator; }; -struct mtd_blktrans_ops { - char *name; - int major; - int part_bits; - int blksize; - int blkshift; - int (*readsect)(struct mtd_blktrans_dev *, unsigned long, char *); - int (*writesect)(struct mtd_blktrans_dev *, unsigned long, char *); - int (*discard)(struct mtd_blktrans_dev *, unsigned long, unsigned int); - void (*background)(struct mtd_blktrans_dev *); - int (*getgeo)(struct mtd_blktrans_dev *, struct hd_geometry *); - int (*flush)(struct mtd_blktrans_dev *); - int (*open)(struct mtd_blktrans_dev *); - void (*release)(struct mtd_blktrans_dev *); - void (*add_mtd)(struct mtd_blktrans_ops *, struct mtd_info *); - void (*remove_dev)(struct mtd_blktrans_dev *); - struct list_head devs; +struct regulator_supply_alias { struct list_head list; - struct module *owner; + struct device *src_dev; + const char *src_supply; + struct device *alias_dev; + const char *alias_supply; }; -struct fsl_ifc_mtd; - -struct fsl_ifc_nand_ctrl { - struct nand_controller controller; - struct fsl_ifc_mtd *chips[8]; - void *addr; - unsigned int page; - unsigned int read_bytes; - unsigned int column; - unsigned int index; - unsigned int oob; - unsigned int eccread; - unsigned int counter; - unsigned int max_bitflips; +struct trace_event_data_offsets_regulator_basic { + u32 name; }; -struct fsl_ifc_mtd { - struct nand_chip chip; - struct fsl_ifc_ctrl *ctrl; - struct device *dev; - int bank; - unsigned int bufnum_mask; - u8 *vbase; +struct trace_event_data_offsets_regulator_range { + u32 name; }; -enum ifc_nand_fir_opcodes { - IFC_FIR_OP_NOP = 0, - IFC_FIR_OP_CA0 = 1, - IFC_FIR_OP_CA1 = 2, - IFC_FIR_OP_CA2 = 3, - IFC_FIR_OP_CA3 = 4, - IFC_FIR_OP_RA0 = 5, - IFC_FIR_OP_RA1 = 6, - IFC_FIR_OP_RA2 = 7, - IFC_FIR_OP_RA3 = 8, - IFC_FIR_OP_CMD0 = 9, - IFC_FIR_OP_CMD1 = 10, - IFC_FIR_OP_CMD2 = 11, - IFC_FIR_OP_CMD3 = 12, - IFC_FIR_OP_CMD4 = 13, - IFC_FIR_OP_CMD5 = 14, - IFC_FIR_OP_CMD6 = 15, - IFC_FIR_OP_CMD7 = 16, - IFC_FIR_OP_CW0 = 17, - IFC_FIR_OP_CW1 = 18, - IFC_FIR_OP_CW2 = 19, - IFC_FIR_OP_CW3 = 20, - IFC_FIR_OP_CW4 = 21, - IFC_FIR_OP_CW5 = 22, - IFC_FIR_OP_CW6 = 23, - IFC_FIR_OP_CW7 = 24, - IFC_FIR_OP_WBCD = 25, - IFC_FIR_OP_RBCD = 26, - IFC_FIR_OP_BTRD = 27, - IFC_FIR_OP_RDSTAT = 28, - IFC_FIR_OP_NWAIT = 29, - IFC_FIR_OP_WFR = 30, - IFC_FIR_OP_SBRD = 31, - IFC_FIR_OP_UA = 32, - IFC_FIR_OP_RB = 33, +struct trace_event_data_offsets_regulator_value { + u32 name; }; -enum ssp_interface { - SSP_INTERFACE_MOTOROLA_SPI = 0, - SSP_INTERFACE_TI_SYNC_SERIAL = 1, - SSP_INTERFACE_NATIONAL_MICROWIRE = 2, - SSP_INTERFACE_UNIDIRECTIONAL = 3, +struct summary_lock_data { + struct ww_acquire_ctx *ww_ctx; + struct regulator_dev **new_contended_rdev; + struct regulator_dev **old_contended_rdev; }; -enum ssp_hierarchy { - SSP_MASTER = 0, - SSP_SLAVE = 1, +struct summary_data { + struct seq_file *s; + struct regulator_dev *parent; + int level; }; -struct ssp_clock_params { - u8 cpsdvsr; - u8 scr; +struct vc_selection { + struct mutex lock; + struct vc_data *cons; + char *buffer; + unsigned int buf_len; + volatile int start; + int end; }; -enum ssp_mode { - INTERRUPT_TRANSFER = 0, - POLLING_TRANSFER = 1, - DMA_TRANSFER = 2, +struct brcmuart_priv { + int line; + struct clk *baud_mux_clk; + unsigned long default_mux_rate; + u32 real_rates[4]; + const u32 *rate_table; + ktime_t char_wait; + struct uart_port *up; + struct hrtimer hrt; + bool shutdown; + bool dma_enabled; + struct uart_8250_dma dma; + void *regs[5]; + dma_addr_t rx_addr; + void *rx_bufs; + size_t rx_size; + int rx_next_buf; + dma_addr_t tx_addr; + void *tx_buf; + size_t tx_size; + bool tx_running; + bool rx_running; + struct dentry *debugfs_dir; + u64 dma_rx_partial_buf; + u64 dma_rx_full_buf; + u32 rx_bad_timeout_late_char; + u32 rx_bad_timeout_no_char; + u32 rx_missing_close_timeout; + u32 rx_err; + u32 rx_timeout; + u32 rx_abort; + u32 saved_mctrl; }; -enum ssp_rx_level_trig { - SSP_RX_1_OR_MORE_ELEM = 0, - SSP_RX_4_OR_MORE_ELEM = 1, - SSP_RX_8_OR_MORE_ELEM = 2, - SSP_RX_16_OR_MORE_ELEM = 3, - SSP_RX_32_OR_MORE_ELEM = 4, +enum cons_flags { + CON_PRINTBUFFER = 1, + CON_CONSDEV = 2, + CON_ENABLED = 4, + CON_BOOT = 8, + CON_ANYTIME = 16, + CON_BRL = 32, + CON_EXTENDED = 64, + CON_SUSPENDED = 128, + CON_NBCON = 256, }; -enum ssp_tx_level_trig { - SSP_TX_1_OR_MORE_EMPTY_LOC = 0, - SSP_TX_4_OR_MORE_EMPTY_LOC = 1, - SSP_TX_8_OR_MORE_EMPTY_LOC = 2, - SSP_TX_16_OR_MORE_EMPTY_LOC = 3, - SSP_TX_32_OR_MORE_EMPTY_LOC = 4, +struct tegra_tcu { + struct uart_driver driver; + struct console console; + struct uart_port port; + struct mbox_client tx_client; + struct mbox_client rx_client; + struct mbox_chan *tx; + struct mbox_chan *rx; }; -enum ssp_microwire_ctrl_len { - SSP_BITS_4 = 3, - SSP_BITS_5 = 4, - SSP_BITS_6 = 5, - SSP_BITS_7 = 6, - SSP_BITS_8 = 7, - SSP_BITS_9 = 8, - SSP_BITS_10 = 9, - SSP_BITS_11 = 10, - SSP_BITS_12 = 11, - SSP_BITS_13 = 12, - SSP_BITS_14 = 13, - SSP_BITS_15 = 14, - SSP_BITS_16 = 15, - SSP_BITS_17 = 16, - SSP_BITS_18 = 17, - SSP_BITS_19 = 18, - SSP_BITS_20 = 19, - SSP_BITS_21 = 20, - SSP_BITS_22 = 21, - SSP_BITS_23 = 22, - SSP_BITS_24 = 23, - SSP_BITS_25 = 24, - SSP_BITS_26 = 25, - SSP_BITS_27 = 26, - SSP_BITS_28 = 27, - SSP_BITS_29 = 28, - SSP_BITS_30 = 29, - SSP_BITS_31 = 30, - SSP_BITS_32 = 31, +struct histb_rng_priv { + struct hwrng rng; + void *base; }; -enum ssp_microwire_wait_state { - SSP_MWIRE_WAIT_ZERO = 0, - SSP_MWIRE_WAIT_ONE = 1, +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 ssp_duplex { - SSP_MICROWIRE_CHANNEL_FULL_DUPLEX = 0, - SSP_MICROWIRE_CHANNEL_HALF_DUPLEX = 1, +struct subsys_dev_iter { + struct klist_iter ki; + const struct device_type *type; }; -enum ssp_clkdelay { - SSP_FEEDBACK_CLK_DELAY_NONE = 0, - SSP_FEEDBACK_CLK_DELAY_1T = 1, - SSP_FEEDBACK_CLK_DELAY_2T = 2, - SSP_FEEDBACK_CLK_DELAY_3T = 3, - SSP_FEEDBACK_CLK_DELAY_4T = 4, - SSP_FEEDBACK_CLK_DELAY_5T = 5, - SSP_FEEDBACK_CLK_DELAY_6T = 6, - SSP_FEEDBACK_CLK_DELAY_7T = 7, +enum { + MMOP_OFFLINE = 0, + MMOP_ONLINE = 1, + MMOP_ONLINE_KERNEL = 2, + MMOP_ONLINE_MOVABLE = 3, }; -struct pl022_config_chip { - enum ssp_interface iface; - enum ssp_hierarchy hierarchy; - bool slave_tx_disable; - struct ssp_clock_params clk_freq; - enum ssp_mode com_mode; - enum ssp_rx_level_trig rx_lev_trig; - enum ssp_tx_level_trig tx_lev_trig; - enum ssp_microwire_ctrl_len ctrl_len; - enum ssp_microwire_wait_state wait_state; - enum ssp_duplex duplex; - enum ssp_clkdelay clkdelay; -}; +struct memory_group; -struct vendor_data { - int fifodepth; - int max_bpw; - bool unidir; - bool extended_cr; - bool pl023; - bool loopback; - bool internal_cs_ctrl; +struct memory_block { + unsigned long start_section_nr; + unsigned long state; + int online_type; + int nid; + struct zone *zone; + struct device dev; + struct vmem_altmap *altmap; + struct memory_group *group; + struct list_head group_next; + atomic_long_t nr_hwpoison; }; -enum ssp_reading { - READING_NULL = 0, - READING_U8 = 1, - READING_U16 = 2, - READING_U32 = 3, +struct memory_group { + int nid; + struct list_head memory_blocks; + unsigned long present_kernel_pages; + unsigned long present_movable_pages; + bool is_dynamic; + union { + struct { + unsigned long max_pages; + } s; + struct { + unsigned long unit_pages; + } d; + }; }; -enum ssp_writing { - WRITING_NULL = 0, - WRITING_U8 = 1, - WRITING_U16 = 2, - WRITING_U32 = 3, +typedef int (*walk_memory_blocks_func_t)(struct memory_block *, void *); + +struct for_each_memory_block_cb_data { + walk_memory_blocks_func_t func; + void *arg; }; -enum ssp_rx_endian { - SSP_RX_MSB = 0, - SSP_RX_LSB = 1, +typedef int (*walk_memory_groups_func_t)(struct memory_group *, void *); + +enum { + Lo_unbound = 0, + Lo_bound = 1, + Lo_rundown = 2, + Lo_deleting = 3, }; -enum ssp_tx_endian { - SSP_TX_MSB = 0, - SSP_TX_LSB = 1, +enum { + DISK_EVENT_MEDIA_CHANGE = 1, + DISK_EVENT_EJECT_REQUEST = 2, }; -enum ssp_spi_clk_pol { - SSP_CLK_POL_IDLE_LOW = 0, - SSP_CLK_POL_IDLE_HIGH = 1, +enum { + DISK_EVENT_FLAG_POLL = 1, + DISK_EVENT_FLAG_UEVENT = 2, + DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, }; -enum ssp_spi_clk_phase { - SSP_CLK_FIRST_EDGE = 0, - SSP_CLK_SECOND_EDGE = 1, +enum { + LO_FLAGS_READ_ONLY = 1, + LO_FLAGS_AUTOCLEAR = 4, + LO_FLAGS_PARTSCAN = 8, + LO_FLAGS_DIRECT_IO = 16, }; -enum ssp_loopback { - LOOPBACK_DISABLED = 0, - LOOPBACK_ENABLED = 1, +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; }; -enum ssp_chip_select { - SSP_CHIP_SELECT = 0, - SSP_CHIP_DESELECT = 1, +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; }; -enum ssp_data_size { - SSP_DATA_BITS_4 = 3, - SSP_DATA_BITS_5 = 4, - SSP_DATA_BITS_6 = 5, - SSP_DATA_BITS_7 = 6, - SSP_DATA_BITS_8 = 7, - SSP_DATA_BITS_9 = 8, - SSP_DATA_BITS_10 = 9, - SSP_DATA_BITS_11 = 10, - SSP_DATA_BITS_12 = 11, - SSP_DATA_BITS_13 = 12, - SSP_DATA_BITS_14 = 13, - SSP_DATA_BITS_15 = 14, - SSP_DATA_BITS_16 = 15, - SSP_DATA_BITS_17 = 16, - SSP_DATA_BITS_18 = 17, - SSP_DATA_BITS_19 = 18, - SSP_DATA_BITS_20 = 19, - SSP_DATA_BITS_21 = 20, - SSP_DATA_BITS_22 = 21, - SSP_DATA_BITS_23 = 22, - SSP_DATA_BITS_24 = 23, - SSP_DATA_BITS_25 = 24, - SSP_DATA_BITS_26 = 25, - SSP_DATA_BITS_27 = 26, - SSP_DATA_BITS_28 = 27, - SSP_DATA_BITS_29 = 28, - SSP_DATA_BITS_30 = 29, - SSP_DATA_BITS_31 = 30, - SSP_DATA_BITS_32 = 31, +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; }; -struct pl022_ssp_controller; +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]; +}; -struct chip_data___3; +typedef unsigned int __kernel_old_dev_t; -struct pl022 { - struct amba_device *adev; - struct vendor_data *vendor; - resource_size_t phybase; - void *virtbase; - struct clk *clk; - struct spi_controller *master; - struct pl022_ssp_controller *master_info; - struct tasklet_struct pump_transfers; - struct spi_message *cur_msg; - struct spi_transfer *cur_transfer; - struct chip_data___3 *cur_chip; - bool next_msg_cs_active; - void *tx; - void *tx_end; - void *rx; - void *rx_end; - enum ssp_reading read; - enum ssp_writing write; - u32 exp_fifo_level; - enum ssp_rx_level_trig rx_lev_trig; - enum ssp_tx_level_trig tx_lev_trig; - struct dma_chan *dma_rx_channel; - struct dma_chan *dma_tx_channel; - struct sg_table sgt_rx; - struct sg_table sgt_tx; - char *dummypage; - bool dma_running; - int cur_cs; - struct gpio_desc *cur_gpiod; +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 pl022_ssp_controller { - u16 bus_id; - u8 enable_dma: 1; - bool (*dma_filter)(struct dma_chan *, void *); - void *dma_rx_param; - void *dma_tx_param; - int autosuspend_delay; - bool rt; +struct loop_info64 { + __u64 lo_device; + __u64 lo_inode; + __u64 lo_rdevice; + __u64 lo_offset; + __u64 lo_sizelimit; + __u32 lo_number; + __u32 lo_encrypt_type; + __u32 lo_encrypt_key_size; + __u32 lo_flags; + __u8 lo_file_name[64]; + __u8 lo_crypt_name[64]; + __u8 lo_encrypt_key[32]; + __u64 lo_init[2]; }; -struct chip_data___3 { - u32 cr0; - u16 cr1; - u16 dmacr; - u16 cpsr; - u8 n_bytes; - bool enable_dma; - enum ssp_reading read; - enum ssp_writing write; - int xfer_type; +struct loop_config { + __u32 fd; + __u32 block_size; + struct loop_info64 info; + __u64 __reserved[8]; }; -enum fman_port_deq_type { - FMAN_PORT_DEQ_BY_PRI = 0, - FMAN_PORT_DEQ_ACTIVE_FQ = 1, - FMAN_PORT_DEQ_ACTIVE_FQ_NO_ICS = 2, +struct sync_merge_data { + char name[32]; + __s32 fd2; + __s32 fence; + __u32 flags; + __u32 pad; }; -enum fman_port_deq_prefetch { - FMAN_PORT_DEQ_NO_PREFETCH = 0, - FMAN_PORT_DEQ_PART_PREFETCH = 1, - FMAN_PORT_DEQ_FULL_PREFETCH = 2, +struct sync_file_info { + char name[32]; + __s32 status; + __u32 flags; + __u32 num_fences; + __u32 pad; + __u64 sync_fence_info; }; -enum fman_port_dma_swap { - FMAN_PORT_DMA_NO_SWAP = 0, - FMAN_PORT_DMA_SWAP_LE = 1, - FMAN_PORT_DMA_SWAP_BE = 2, +struct sync_fence_info { + char obj_name[32]; + char driver_name[32]; + __s32 status; + __u32 flags; + __u64 timestamp_ns; }; -enum fman_port_color { - FMAN_PORT_COLOR_GREEN = 0, - FMAN_PORT_COLOR_YELLOW = 1, - FMAN_PORT_COLOR_RED = 2, - FMAN_PORT_COLOR_OVERRIDE = 3, +enum { + SAS_DEV_GONE = 0, + SAS_DEV_FOUND = 1, + SAS_DEV_DESTROY = 2, + SAS_DEV_EH_PENDING = 3, + SAS_DEV_LU_RESET = 4, + SAS_DEV_RESET = 5, }; -struct fman_port_rsrc { - u32 num; - u32 extra; +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, }; -struct fman_port_rx_pools_params { - u8 num_of_pools; - u16 largest_buf_size; +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 fman_port_dts_params { - void *base_addr; - enum fman_port_type type; - u16 speed; - u8 id; - u32 qman_channel_id; - struct fman *fman; +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; }; -union fman_port_bmi_regs; +struct ahci_cmd_hdr; -struct fman_port_qmi_regs; +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 fman_port_hwp_regs; +struct ahci_cmd_hdr { + __le32 opts; + __le32 status; + __le32 tbl_addr; + __le32 tbl_addr_hi; + __le32 reserved[4]; +}; -struct fman_port_cfg; +struct cfi_fixup { + uint16_t mfr; + uint16_t id; + void (*fixup)(struct mtd_info *); +}; -struct fman_port { - void *fm; - struct device *dev; - struct fman_rev_info rev_info; - u8 port_id; - enum fman_port_type port_type; - u16 port_speed; - union fman_port_bmi_regs *bmi_regs; - struct fman_port_qmi_regs *qmi_regs; - struct fman_port_hwp_regs *hwp_regs; - struct fman_sp_buffer_offsets buffer_offsets; - u8 internal_buf_offset; - struct fman_ext_pools ext_buf_pools; - u16 max_frame_length; - struct fman_port_rsrc open_dmas; - struct fman_port_rsrc tasks; - struct fman_port_rsrc fifo_bufs; - struct fman_port_rx_pools_params rx_pools_params; - struct fman_port_cfg *cfg; - struct fman_port_dts_params dts_params; - u8 ext_pools_num; - u32 max_port_fifo_size; - u32 max_num_of_ext_pools; - u32 max_num_of_sub_portals; - u32 bm_max_num_of_pools; +typedef int (*varsize_frob_t)(struct map_info *, struct flchip *, unsigned long, int, void *); + +enum { + MICRON_ON_DIE_UNSUPPORTED = 0, + MICRON_ON_DIE_SUPPORTED = 1, + MICRON_ON_DIE_MANDATORY = 2, }; -struct fman_port_rx_bmi_regs { - u32 fmbm_rcfg; - u32 fmbm_rst; - u32 fmbm_rda; - u32 fmbm_rfp; - u32 fmbm_rfed; - u32 fmbm_ricp; - u32 fmbm_rim; - u32 fmbm_rebm; - u32 fmbm_rfne; - u32 fmbm_rfca; - u32 fmbm_rfpne; - u32 fmbm_rpso; - u32 fmbm_rpp; - u32 fmbm_rccb; - u32 fmbm_reth; - u32 reserved003c[1]; - u32 fmbm_rprai[8]; - u32 fmbm_rfqid; - u32 fmbm_refqid; - u32 fmbm_rfsdm; - u32 fmbm_rfsem; - u32 fmbm_rfene; - u32 reserved0074[2]; - u32 fmbm_rcmne; - u32 reserved0080[32]; - u32 fmbm_ebmpi[8]; - u32 fmbm_acnt[8]; - u32 reserved0130[8]; - u32 fmbm_rcgm[8]; - u32 fmbm_mpd; - u32 reserved0184[31]; - u32 fmbm_rstc; - u32 fmbm_rfrc; - u32 fmbm_rfbc; - u32 fmbm_rlfc; - u32 fmbm_rffc; - u32 fmbm_rfdc; - u32 fmbm_rfldec; - u32 fmbm_rodc; - u32 fmbm_rbdc; - u32 fmbm_rpec; - u32 reserved0224[22]; - u32 fmbm_rpc; - u32 fmbm_rpcp; - u32 fmbm_rccn; - u32 fmbm_rtuc; - u32 fmbm_rrquc; - u32 fmbm_rduc; - u32 fmbm_rfuc; - u32 fmbm_rpac; - u32 reserved02a0[24]; - u32 fmbm_rdcfg[3]; - u32 fmbm_rgpr; - u32 reserved0310[58]; +struct nand_onfi_vendor_micron { + u8 two_plane_read; + u8 read_cache; + u8 read_unique_id; + u8 dq_imped; + u8 dq_imped_num_settings; + u8 dq_imped_feat_addr; + u8 rb_pulldown_strength; + u8 rb_pulldown_strength_feat_addr; + u8 rb_pulldown_strength_num_settings; + u8 otp_mode; + u8 otp_page_start; + u8 otp_data_prot_addr; + u8 otp_num_pages; + u8 otp_feat_addr; + u8 read_retry_options; + u8 reserved[72]; + u8 param_revision; }; -struct fman_port_tx_bmi_regs { - u32 fmbm_tcfg; - u32 fmbm_tst; - u32 fmbm_tda; - u32 fmbm_tfp; - u32 fmbm_tfed; - u32 fmbm_ticp; - u32 fmbm_tfdne; - u32 fmbm_tfca; - u32 fmbm_tcfqid; - u32 fmbm_tefqid; - u32 fmbm_tfene; - u32 fmbm_trlmts; - u32 fmbm_trlmt; - u32 reserved0034[14]; - u32 fmbm_tccb; - u32 fmbm_tfne; - u32 fmbm_tpfcm[2]; - u32 fmbm_tcmne; - u32 reserved0080[96]; - u32 fmbm_tstc; - u32 fmbm_tfrc; - u32 fmbm_tfdc; - u32 fmbm_tfledc; - u32 fmbm_tfufdc; - u32 fmbm_tbdc; - u32 reserved0218[26]; - u32 fmbm_tpc; - u32 fmbm_tpcp; - u32 fmbm_tccn; - u32 fmbm_ttuc; - u32 fmbm_ttcquc; - u32 fmbm_tduc; - u32 fmbm_tfuc; - u32 reserved029c[16]; - u32 fmbm_tdcfg[3]; - u32 fmbm_tgpr; - u32 reserved0310[58]; +struct micron_on_die_ecc { + bool forced; + bool enabled; + void *rawbuf; }; -union fman_port_bmi_regs { - struct fman_port_rx_bmi_regs rx; - struct fman_port_tx_bmi_regs tx; +struct micron_nand { + struct micron_on_die_ecc ecc; }; -struct fman_port_qmi_regs { - u32 fmqm_pnc; - u32 fmqm_pns; - u32 fmqm_pnts; - u32 reserved00c[4]; - u32 fmqm_pnen; - u32 fmqm_pnetfc; - u32 reserved024[2]; - u32 fmqm_pndn; - u32 fmqm_pndc; - u32 fmqm_pndtfc; - u32 fmqm_pndfdc; - u32 fmqm_pndcc; +struct fsl_qspi_devtype_data { + unsigned int rxfifo; + unsigned int txfifo; + int invalid_mstrid; + unsigned int ahb_buf_size; + unsigned int quirks; + bool little_endian; }; -struct fman_port_hwp_regs { - struct { - u32 ssa; - u32 lcv; - } pmda[16]; - u32 reserved080[222]; - u32 fmpr_pcac; +struct fsl_qspi { + void *iobase; + void *ahb_addr; + u32 memmap_phy; + struct clk *clk; + struct clk *clk_en; + struct device *dev; + struct completion c; + const struct fsl_qspi_devtype_data *devtype_data; + struct mutex lock; + struct pm_qos_request pm_qos_req; + int selected; }; -struct fman_buf_pool_depletion { - bool pools_grp_mode_enable; - u8 num_of_pools; - bool pools_to_consider[64]; - bool single_pool_mode_enable; - bool pools_to_consider_for_single_mode[64]; +typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); + +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 fman_port_cfg { - u32 dflt_fqid; - u32 err_fqid; - u32 pcd_base_fqid; - u32 pcd_fqs_count; - u8 deq_sp; - bool deq_high_priority; - enum fman_port_deq_type deq_type; - enum fman_port_deq_prefetch deq_prefetch_option; - u16 deq_byte_cnt; - u8 cheksum_last_bytes_ignore; - u8 rx_cut_end_bytes; - struct fman_buf_pool_depletion buf_pool_depletion; - struct fman_ext_pools ext_buf_pools; - u32 tx_fifo_min_level; - u32 tx_fifo_low_comf_level; - u32 rx_pri_elevation; - u32 rx_fifo_thr; - struct fman_sp_buf_margins buf_margins; - u32 int_buf_start_margin; - struct fman_sp_int_context_data_copy int_context; - u32 discard_mask; - u32 err_mask; - struct fman_buffer_prefix_content buffer_prefix_content; - bool dont_release_buf; - u8 rx_fd_bits; - u32 tx_fifo_deq_pipeline_depth; - bool errata_A006320; - bool excessive_threshold_register; - bool fmbm_tfne_has_features; - enum fman_port_dma_swap dma_swap_data; - enum fman_port_color color; +struct mdio_driver { + struct mdio_driver_common mdiodrv; + int (*probe)(struct mdio_device *); + void (*remove)(struct mdio_device *); + void (*shutdown)(struct mdio_device *); }; -struct fman_port_bpools { - u8 count; - bool counters_enable; - u8 grp_bp_depleted_num; - struct { - u8 bpid; - u16 size; - bool is_backup; - bool grp_bp_depleted; - bool single_bp_depleted; - } bpool[8]; +struct mdio_board_info { + const char *bus_id; + char modalias[32]; + int mdio_addr; + const void *platform_data; }; -struct enetc_ierb { - void *regs; +struct trace_event_data_offsets_mdio_access {}; + +struct mdio_bus_stat_attr { + int addr; + unsigned int field_offset; +}; + +struct dpaa2_faf_error_bit { + int position; + enum devlink_trap_generic_id trap_id; +}; + +struct dpaa2_eth_devlink_priv { + struct dpaa2_eth_priv *dpaa2_priv; }; enum hclge_shaper_level { @@ -131137,6 +130094,11 @@ enum hclge_shaper_level { HCLGE_SHAPER_LVL_PF = 1, }; +enum hnae3_tc_map_mode { + HNAE3_TC_MAP_MODE_PRIO = 0, + HNAE3_TC_MAP_MODE_DSCP = 1, +}; + enum hclge_shap_bucket { HCLGE_TM_SHAP_C_BUCKET = 0, HCLGE_TM_SHAP_P_BUCKET = 1, @@ -131147,6 +130109,16 @@ struct hclge_pfc_en_cmd { u8 pri_en_bitmap; }; +struct hclge_cfg_pause_param_cmd { + u8 mac_addr[6]; + u8 pause_trans_gap; + u8 rsvd; + __le16 pause_trans_time; + u8 rsvd1[6]; + u8 mac_addr_extra[6]; + u16 rsvd2; +}; + struct hclge_port_shapping_cmd { __le32 port_shapping_para; u8 flag; @@ -131163,6 +130135,17 @@ struct hclge_qs_shapping_cmd { __le32 qs_rate; }; +struct hclge_tm_nodes_cmd { + u8 pg_base_id; + u8 pri_base_id; + __le16 qset_base_id; + __le16 queue_base_id; + u8 pg_num; + u8 pri_num; + __le16 qset_num; + __le16 queue_num; +}; + struct hclge_qs_to_pri_link_cmd { __le16 qs_id; __le16 rsvd; @@ -131234,3214 +130217,3634 @@ struct hclge_pg_shapping_cmd { __le32 pg_rate; }; +struct hclge_ets_tc_weight_cmd { + u8 tc_weight[8]; + u8 weight_offset; + u8 rsvd[15]; +}; + +struct hclge_bp_to_qs_map_cmd { + u8 tc_id; + u8 rsvd[2]; + u8 qs_group_id; + __le32 qs_bit_map; + u32 rsvd1; +}; + struct hclge_shaper_ir_para { u8 ir_b; u8 ir_u; u8 ir_s; }; -enum mvpp2_tx_buf_type { - MVPP2_TYPE_SKB = 0, - MVPP2_TYPE_XDP_TX = 1, - MVPP2_TYPE_XDP_NDO = 2, +struct hclge_tm_shaper_para { + u32 rate; + u8 ir_b; + u8 ir_u; + u8 ir_s; + u8 bs_b; + u8 bs_s; + u8 flag; }; -struct mvpp2_port; +struct mvneta_statistic { + unsigned short offset; + unsigned short type; + const char name[32]; +}; -struct mvpp2_queue_vector { - int irq; - struct napi_struct napi; - enum { - MVPP2_QUEUE_VECTOR_SHARED = 0, - MVPP2_QUEUE_VECTOR_PRIVATE = 1, - } type; - int sw_thread_id; - u16 sw_thread_mask; - int first_rxq; - int nrxqs; - u32 pending_cause_rx; - struct mvpp2_port *port; - struct cpumask *mask; +enum mvneta_tx_buf_type { + MVNETA_TYPE_TSO = 0, + MVNETA_TYPE_SKB = 1, + MVNETA_TYPE_XDP_TX = 2, + MVNETA_TYPE_XDP_NDO = 3, }; -struct mvpp2_hwtstamp_queue { - struct sk_buff *skb[32]; - u8 next; +enum mvneta_bm_type { + MVNETA_BM_FREE = 0, + MVNETA_BM_LONG = 1, + MVNETA_BM_SHORT = 2, }; -struct mvpp2; +enum { + __MVNETA_DOWN = 0, +}; -struct mvpp2_rx_queue; +enum { + TC_MQPRIO_SHAPER_DCB = 0, + TC_MQPRIO_SHAPER_BW_RATE = 1, + __TC_MQPRIO_SHAPER_MAX = 2, +}; -struct mvpp2_tx_queue; +enum { + ETHTOOL_STAT_EEE_WAKEUP = 0, + ETHTOOL_STAT_SKB_ALLOC_ERR = 1, + ETHTOOL_STAT_REFILL_ERR = 2, + ETHTOOL_XDP_REDIRECT = 3, + ETHTOOL_XDP_PASS = 4, + ETHTOOL_XDP_DROP = 5, + ETHTOOL_XDP_TX = 6, + ETHTOOL_XDP_TX_ERR = 7, + ETHTOOL_XDP_XMIT = 8, + ETHTOOL_XDP_XMIT_ERR = 9, + ETHTOOL_MAX_STATS = 10, +}; -struct mvpp2_port_pcpu; +struct mvneta_pcpu_port; -struct mvpp2_pcpu_stats; +struct mvneta_pcpu_stats; -struct mvpp2_bm_pool; +struct mvneta_rx_queue; -struct mvpp2_ethtool_fs; +struct mvneta_tx_queue; -struct mvpp2_port { +struct mvneta_bm; + +struct mvneta_bm_pool; + +struct mvneta_port { u8 id; - int gop_id; - int port_irq; - struct mvpp2 *priv; - struct fwnode_handle *fwnode; + struct mvneta_pcpu_port __attribute__((btf_type_tag("percpu"))) *ports; + struct mvneta_pcpu_stats __attribute__((btf_type_tag("percpu"))) *stats; + unsigned long state; + int pkt_size; void *base; - void *stats_base; - struct mvpp2_rx_queue **rxqs; - unsigned int nrxqs; - struct mvpp2_tx_queue **txqs; - unsigned int ntxqs; + struct mvneta_rx_queue *rxqs; + struct mvneta_tx_queue *txqs; struct net_device *dev; + struct hlist_node node_online; + struct hlist_node node_dead; + int rxq_def; + spinlock_t lock; + bool is_stopped; + u32 cause_rx_tx; + struct napi_struct napi; struct bpf_prog *xdp_prog; - int pkt_size; - struct mvpp2_port_pcpu __attribute__((btf_type_tag("percpu"))) *pcpu; - spinlock_t bm_lock[9]; - spinlock_t tx_lock[9]; - unsigned long flags; + struct clk *clk; + struct clk *clk_bus; + u8 mcast_count[256]; u16 tx_ring_size; u16 rx_ring_size; - struct mvpp2_pcpu_stats __attribute__((btf_type_tag("percpu"))) *stats; - u64 *ethtool_stats; - unsigned long state; - struct mutex gather_stats_lock; - struct delayed_work stats_work; - struct device_node *of_node; phy_interface_t phy_interface; + struct device_node *dn; + unsigned int tx_csum_limit; struct phylink *phylink; struct phylink_config phylink_config; - struct phylink_pcs pcs_gmac; - struct phylink_pcs pcs_xlg; + struct phylink_pcs phylink_pcs; struct phy *comphy; - struct mvpp2_bm_pool *pool_long; - struct mvpp2_bm_pool *pool_short; - u8 first_rxq; - struct mvpp2_queue_vector qvecs[9]; - unsigned int nqvecs; - bool has_tx_irqs; - u32 tx_time_coal; - struct mvpp2_ethtool_fs *rfs_rules[4]; - int n_rfs_rules; - int rss_ctx[8]; - bool hwtstamp; - bool rx_hwtstamp; - enum hwtstamp_tx_types tx_hwtstamp_type; - struct mvpp2_hwtstamp_queue tx_hwtstamp_queue[2]; - bool tx_fc; + struct mvneta_bm *bm_priv; + struct mvneta_bm_pool *pool_long; + struct mvneta_bm_pool *pool_short; + int bm_win_id; + bool eee_enabled; + bool eee_active; + bool tx_lpi_enabled; + u64 ethtool_stats[42]; + u32 indir[1]; + bool neta_armada3700; + bool neta_ac5; + u16 rx_offset_correction; + const struct mbus_dram_target_info *dram_target_info; }; -struct mvpp2_tai; - -struct mvpp2_prs_shadow; - -struct mvpp2_dbgfs_entries; +struct mvneta_pcpu_port { + struct mvneta_port *pp; + struct napi_struct napi; + u32 cause_rx_tx; +}; -struct mvpp2_rss_table; +struct mvneta_stats { + u64 rx_packets; + u64 rx_bytes; + u64 tx_packets; + u64 tx_bytes; + u64 xdp_redirect; + u64 xdp_pass; + u64 xdp_drop; + u64 xdp_xmit; + u64 xdp_xmit_err; + u64 xdp_tx; + u64 xdp_tx_err; +}; -struct mvpp2 { - void *lms_base; - void *iface_base; - void *cm3_base; - void *swth_base[9]; - struct regmap *sysctrl_base; - struct clk *pp_clk; - struct clk *gop_clk; - struct clk *mg_clk; - struct clk *mg_core_clk; - struct clk *axi_clk; - int port_count; - struct mvpp2_port *port_list[4]; - unsigned long port_map; - struct mvpp2_tai *tai; - unsigned int nthreads; - unsigned long lock_map; - struct mvpp2_tx_queue *aggr_txqs; - int percpu_pools; - struct mvpp2_bm_pool *bm_pools; - struct mvpp2_prs_shadow *prs_shadow; - bool *prs_double_vlans; - u32 tclk; - enum { - MVPP21 = 0, - MVPP22 = 1, - MVPP23 = 2, - } hw_version; - unsigned int max_port_rxqs; - char queue_name[30]; - struct workqueue_struct *stats_queue; - struct dentry *dbgfs_dir; - struct mvpp2_dbgfs_entries *dbgfs_entries; - struct mvpp2_rss_table *rss_tables[8]; - struct page_pool *page_pool[32]; - bool global_tx_fc; - spinlock_t mss_spinlock; +struct mvneta_ethtool_stats { + struct mvneta_stats ps; + u64 skb_alloc_error; + u64 refill_error; }; -struct mvpp2_txq_pcpu; +struct mvneta_pcpu_stats { + struct u64_stats_sync syncp; + struct mvneta_ethtool_stats es; + u64 rx_dropped; + u64 rx_errors; +}; -struct mvpp2_tx_desc; +struct mvneta_rx_desc; -struct mvpp2_tx_queue { +struct mvneta_rx_queue { u8 id; - u8 log_id; int size; - int count; - struct mvpp2_txq_pcpu __attribute__((btf_type_tag("percpu"))) *pcpu; - u32 done_pkts_coal; - struct mvpp2_tx_desc *descs; - dma_addr_t descs_dma; + u32 pkts_coal; + u32 time_coal; + struct page_pool *page_pool; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; + void **buf_virt_addr; + struct mvneta_rx_desc *descs; + dma_addr_t descs_phys; int last_desc; int next_desc_to_proc; + int first_to_refill; + u32 refill_num; + long: 64; + long: 64; + long: 64; }; -struct mvpp2_txq_pcpu_buf; +struct mvneta_rx_desc { + u32 status; + u16 reserved1; + u16 data_size; + u32 buf_phys_addr; + u32 reserved2; + u32 buf_cookie; + u16 reserved3; + u16 reserved4; + u32 reserved5; + u32 reserved6; +}; -struct mvpp2_txq_pcpu { - unsigned int thread; +struct mvneta_tx_buf; + +struct mvneta_tx_desc; + +struct mvneta_tx_queue { + u8 id; int size; int count; - int wake_threshold; - int stop_threshold; - int reserved_num; - struct mvpp2_txq_pcpu_buf *buffs; + int pending; + int tx_stop_threshold; + int tx_wake_threshold; + struct mvneta_tx_buf *buf; int txq_put_index; int txq_get_index; - char *tso_headers; - dma_addr_t tso_headers_dma; + u32 done_pkts_coal; + struct mvneta_tx_desc *descs; + dma_addr_t descs_phys; + int last_desc; + int next_desc_to_proc; + char *tso_hdrs[32]; + dma_addr_t tso_hdrs_phys[32]; + cpumask_t affinity_mask; }; -struct mvpp2_txq_pcpu_buf { - enum mvpp2_tx_buf_type type; +struct mvneta_tx_buf { + enum mvneta_tx_buf_type type; union { struct xdp_frame *xdpf; struct sk_buff *skb; }; - dma_addr_t dma; - size_t size; -}; - -struct mvpp21_tx_desc { - __le32 command; - u8 packet_offset; - u8 phys_txq; - __le16 data_size; - __le32 buf_dma_addr; - __le32 buf_cookie; - __le32 reserved1[3]; - __le32 reserved2; }; -struct mvpp22_tx_desc { - __le32 command; - u8 packet_offset; - u8 phys_txq; - __le16 data_size; - __le32 ptp_descriptor; - __le32 reserved2; - __le64 buf_dma_addr_ptp; - __le64 buf_cookie_misc; +struct mvneta_tx_desc { + u32 command; + u16 reserved1; + u16 data_size; + u32 buf_phys_addr; + u32 reserved2; + u32 reserved3[4]; }; -struct mvpp2_tx_desc { - union { - struct mvpp21_tx_desc pp21; - struct mvpp22_tx_desc pp22; - }; +struct mvneta_bm { + void *reg_base; + struct clk *clk; + struct platform_device *pdev; + struct gen_pool *bppi_pool; + void *bppi_virt_addr; + dma_addr_t bppi_phys_addr; + struct mvneta_bm_pool *bm_pools; }; -struct mvpp2_bm_pool { - int id; +struct hwbm_pool { int size; - int size_bytes; + int frag_size; int buf_num; - int buf_size; + int (*construct)(struct hwbm_pool *, void *); + struct mutex buf_lock; + void *priv; +}; + +struct mvneta_bm_pool { + struct hwbm_pool hwbm_pool; + u8 id; + enum mvneta_bm_type type; int pkt_size; - int frag_size; + u32 buf_size; u32 *virt_addr; + dma_addr_t phys_addr; + u8 port_map; + struct mvneta_bm *priv; +}; + +struct each_dev_arg { + void *data; + int (*fn)(struct usb_device *, void *); +}; + +struct find_interface_arg { + int minor; + struct device_driver *drv; +}; + +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]; +}; + +struct dwc3_pci { + struct platform_device *dwc3; + struct pci_dev *pci; + guid_t guid; + unsigned int has_dsm_for_pm: 1; + struct work_struct wakeup_work; +}; + +struct xhci_plat_priv { + const char *firmware_name; + unsigned long long quirks; + void (*plat_start)(struct usb_hcd *); + int (*init_quirk)(struct usb_hcd *); + int (*suspend_quirk)(struct usb_hcd *); + int (*resume_quirk)(struct usb_hcd *); +}; + +enum usb_led_event { + USB_LED_EVENT_HOST = 0, + USB_LED_EVENT_GADGET = 1, +}; + +struct usb_udc { + struct usb_gadget_driver *driver; + struct usb_gadget *gadget; + struct device dev; + struct list_head list; + bool vbus; + bool started; + bool allow_connect; + struct work_struct vbus_work; + struct mutex connect_lock; +}; + +enum bdc_ep0_state { + WAIT_FOR_SETUP = 0, + WAIT_FOR_DATA_START = 1, + WAIT_FOR_DATA_XMIT = 2, + WAIT_FOR_STATUS_START = 3, + WAIT_FOR_STATUS_XMIT = 4, + STATUS_PENDING = 5, +}; + +struct bdc_scratchpad { + dma_addr_t sp_dma; + void *buff; + u32 size; +}; + +struct bdc_sr; + +struct srr { + struct bdc_sr *sr_bds; + u16 eqp_index; + u16 dqp_index; dma_addr_t dma_addr; - u32 port_map; }; -struct mvpp2_prs_shadow { - bool valid; - bool finish; - int lu; - int udf; - u32 ri; - u32 ri_mask; +struct bdc_req; + +struct bd_transfer { + struct bdc_req *req; + int start_bdi; + int next_hwd_bdi; + int num_bds; +}; + +struct bdc_ep; + +struct bdc_req { + struct usb_request usb_req; + struct list_head queue; + struct bdc_ep *ep; + struct bd_transfer bd_xfr; + int epnum; +}; + +struct bdc { + struct usb_gadget gadget; + struct usb_gadget_driver *gadget_driver; + struct device *dev; + spinlock_t lock; + struct phy **phys; + int num_phys; + unsigned int num_eps; + struct bdc_ep **bdc_ep_array; + void *regs; + struct bdc_scratchpad scratchpad; + u32 sp_buff_size; + struct srr srr; + struct usb_ctrlrequest setup_pkt; + struct bdc_req ep0_req; + struct bdc_req status_req; + enum bdc_ep0_state ep0_state; + bool delayed_status; + bool zlp_needed; + bool reinit; + bool pullup; + u32 devstatus; + int irq; + void *mem; + u32 dev_addr; + struct dma_pool *bd_table_pool; + u8 test_mode; + void (*sr_handler[2])(struct bdc *, struct bdc_sr *); + void (*sr_xsf_ep0[3])(struct bdc *, struct bdc_sr *); + unsigned char ep0_response_buff[6]; + struct delayed_work func_wake_notify; + struct clk *clk; +}; + +struct bd_table; + +struct bd_list { + struct bd_table **bd_table_array; + int num_tabs; + int max_bdi; + int eqp_bdi; + int hwd_bdi; + int num_bds_table; +}; + +struct bdc_ep { + struct usb_ep usb_ep; + struct list_head queue; + struct bdc *bdc; + u8 ep_type; + u8 dir; + u8 ep_num; + const struct usb_ss_ep_comp_descriptor *comp_desc; + const struct usb_endpoint_descriptor *desc; + unsigned int flags; + char name[20]; + struct bd_list bd_list; + bool ignore_next_sr; +}; + +struct bdc_bd; + +struct bd_table { + struct bdc_bd *start_bd; + dma_addr_t dma; +}; + +struct bdc_bd { + __le32 offset[4]; +}; + +struct bdc_sr { + __le32 offset[4]; +}; + +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; +}; + +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 i2c_dw_semaphore_callbacks { + int (*probe)(struct dw_i2c_dev *); + void (*remove)(struct dw_i2c_dev *); +}; + +enum muxtype { + pca954x_ismux = 0, + pca954x_isswi = 1, +}; + +struct i2c_device_identity { + u16 manufacturer_id; + u16 part_id; + u8 die_revision; +}; + +struct chip_desc { + u8 nchans; + u8 enable; + u8 has_irq; + enum muxtype muxtype; + struct i2c_device_identity id; +}; + +struct i2c_mux_core { + struct i2c_adapter *parent; + struct device *dev; + unsigned int mux_locked: 1; + unsigned int arbitrator: 1; + unsigned int gate: 1; + void *priv; + int (*select)(struct i2c_mux_core *, u32); + int (*deselect)(struct i2c_mux_core *, u32); + int num_adapters; + int max_adapters; + struct i2c_adapter *adapter[0]; +}; + +struct pca954x { + const struct chip_desc *chip; + u8 last_chan; + s32 idle_state; + struct i2c_client *client; + struct irq_domain *irq; + unsigned int irq_mask; + raw_spinlock_t lock; + struct regulator *supply; +}; + +enum pchg_state { + PCHG_STATE_RESET = 0, + PCHG_STATE_INITIALIZED = 1, + PCHG_STATE_ENABLED = 2, + PCHG_STATE_DETECTED = 3, + PCHG_STATE_CHARGING = 4, + PCHG_STATE_FULL = 5, + PCHG_STATE_DOWNLOAD = 6, + PCHG_STATE_DOWNLOADING = 7, + PCHG_STATE_CONNECTED = 8, + PCHG_STATE_COUNT = 9, +}; + +enum { + POWER_SUPPLY_CHARGE_TYPE_UNKNOWN = 0, + POWER_SUPPLY_CHARGE_TYPE_NONE = 1, + POWER_SUPPLY_CHARGE_TYPE_TRICKLE = 2, + POWER_SUPPLY_CHARGE_TYPE_FAST = 3, + POWER_SUPPLY_CHARGE_TYPE_STANDARD = 4, + POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE = 5, + POWER_SUPPLY_CHARGE_TYPE_CUSTOM = 6, + POWER_SUPPLY_CHARGE_TYPE_LONGLIFE = 7, + POWER_SUPPLY_CHARGE_TYPE_BYPASS = 8, +}; + +struct port_data; + +struct charger_data { + struct device *dev; + struct cros_ec_dev *ec_dev; + struct cros_ec_device *ec_device; + int num_registered_psy; + struct port_data *ports[8]; + struct notifier_block notifier; +}; + +struct port_data { + int port_number; + char name[12]; + struct power_supply *psy; + struct power_supply_desc psy_desc; + int psy_status; + int battery_percentage; + int charge_type; + struct charger_data *charger; + unsigned long last_update; +}; + +struct ec_response_pchg_count { + uint8_t port_count; +}; + +struct ec_params_get_cmd_versions_v1 { + uint16_t cmd; +}; + +struct ec_response_pchg { + uint32_t error; + uint8_t state; + uint8_t battery_percentage; + uint8_t unused0; + uint8_t unused1; + uint32_t fw_version; + uint32_t dropped_event_count; +}; + +struct ec_params_pchg { + uint8_t port; +}; + +enum soc_type { + SOC_ARCH_EXYNOS3250 = 1, + SOC_ARCH_EXYNOS4210 = 2, + SOC_ARCH_EXYNOS4412 = 3, + SOC_ARCH_EXYNOS5250 = 4, + SOC_ARCH_EXYNOS5260 = 5, + SOC_ARCH_EXYNOS5420 = 6, + SOC_ARCH_EXYNOS5420_TRIMINFO = 7, + SOC_ARCH_EXYNOS5433 = 8, + SOC_ARCH_EXYNOS7 = 9, +}; + +struct exynos_tmu_data { + int id; + void *base; + void *base_second; + int irq; + enum soc_type soc; + struct work_struct irq_work; + struct mutex lock; + struct clk *clk; + struct clk *clk_sec; + struct clk *sclk; + u32 cal_type; + u32 efuse_value; + u32 min_efuse_value; + u32 max_efuse_value; + u16 temp_error1; + u16 temp_error2; + u8 gain; + u8 reference_voltage; + struct regulator *regulator; + struct thermal_zone_device *tzd; + unsigned int ntrip; + bool enabled; + void (*tmu_set_trip_temp)(struct exynos_tmu_data *, int, u8); + void (*tmu_set_trip_hyst)(struct exynos_tmu_data *, int, u8, u8); + void (*tmu_initialize)(struct platform_device *); + void (*tmu_control)(struct platform_device *, bool); + int (*tmu_read)(struct exynos_tmu_data *); + void (*tmu_set_emulation)(struct exynos_tmu_data *, int); + void (*tmu_clear_irqs)(struct exynos_tmu_data *); +}; + +struct mmc_op_cond_busy_data { + struct mmc_host *host; + u32 ocr; + struct mmc_command *cmd; +}; + +struct mmc_busy_data { + struct mmc_card *card; + bool retry_crc_err; + enum mmc_busy_cmd busy_cmd; +}; + +struct mmc_spi_platform_data; + +struct scratch; + +struct mmc_spi_host { + struct mmc_host *mmc; + struct spi_device *spi; + unsigned char power_mode; + u16 powerup_msecs; + struct mmc_spi_platform_data *pdata; + struct spi_transfer token; + struct spi_transfer t; + struct spi_transfer crc; + struct spi_transfer early_status; + struct spi_message m; + struct spi_transfer status; + struct spi_message readback; + struct device *dma_dev; + struct scratch *data; + dma_addr_t data_dma; + void *ones; + dma_addr_t ones_dma; +}; + +struct mmc_spi_platform_data { + int (*init)(struct device *, irqreturn_t (*)(int, void *), void *); + void (*exit)(struct device *, void *); + unsigned long caps; + unsigned long caps2; + u16 detect_delay; + u16 powerup_msecs; + u32 ocr_mask; + void (*setpower)(struct device *, unsigned int); +}; + +struct scratch { + u8 status[29]; + u8 data_token; + __be16 crc_val; +}; + +struct sdhci_iproc_data { + const struct sdhci_pltfm_data *pdata; + u32 caps; + u32 caps1; + u32 mmc_caps; + bool missing_caps; +}; + +struct sdhci_iproc_host { + const struct sdhci_iproc_data *data; + u32 shadow_cmd; + u32 shadow_blk; + bool is_cmd_shadowed; + bool is_blk_shadowed; +}; + +struct a4tech_sc { + unsigned long quirks; + unsigned int hw_wheel; + __s32 delayed_value; }; -struct mvpp2_dbgfs_prs_entry { - int tid; - struct mvpp2 *priv; +struct bcm2835_mbox { + void *regs; + spinlock_t lock; + struct mbox_controller controller; }; -struct mvpp2_dbgfs_c2_entry { - int id; - struct mvpp2 *priv; +struct exynos_adc; + +struct exynos_adc_data { + int num_channels; + bool needs_sclk; + bool needs_adc_phy; + int phy_offset; + u32 mask; + void (*init_hw)(struct exynos_adc *); + void (*exit_hw)(struct exynos_adc *); + void (*clear_irq)(struct exynos_adc *); + void (*start_conv)(struct exynos_adc *, unsigned long); }; -struct mvpp2_dbgfs_flow_tbl_entry { - int id; - struct mvpp2 *priv; +struct exynos_adc { + struct exynos_adc_data *data; + struct device *dev; + struct input_dev *input; + void *regs; + struct regmap *pmu_map; + struct clk *clk; + struct clk *sclk; + unsigned int irq; + unsigned int tsirq; + unsigned int delay; + struct regulator *vdd; + struct completion completion; + u32 value; + unsigned int version; + bool ts_enabled; + bool read_ts; + u32 ts_x; + u32 ts_y; + struct mutex lock; }; -struct mvpp2_dbgfs_flow_entry { - int flow; - struct mvpp2 *priv; +struct s3c2410_ts_mach_info { + int delay; + int presc; + int oversampling_shift; + void (*cfg_gpio)(struct platform_device *); }; -struct mvpp2_dbgfs_port_flow_entry { - struct mvpp2_port *port; - struct mvpp2_dbgfs_flow_entry *dbg_fe; +struct mtk_efuse_pdata { + bool uses_post_processing; }; -struct mvpp2_dbgfs_entries { - struct mvpp2_dbgfs_prs_entry prs_entries[256]; - struct mvpp2_dbgfs_c2_entry c2_entries[256]; - struct mvpp2_dbgfs_flow_tbl_entry flt_entries[512]; - struct mvpp2_dbgfs_flow_entry flow_entries[52]; - struct mvpp2_dbgfs_port_flow_entry port_flow_entries[4]; +struct mtk_efuse_priv { + void *base; }; -struct mvpp2_rss_table { - u32 indir[32]; +struct link_ctl_info { + snd_ctl_elem_type_t type; + int count; + int min_val; + int max_val; }; -struct mvpp2_rx_desc; +struct link_master; -struct mvpp2_rx_queue { - u8 id; - int size; - u32 pkts_coal; - u32 time_coal; - struct mvpp2_rx_desc *descs; - dma_addr_t descs_dma; - int last_desc; - int next_desc_to_proc; - int port; - int logic_rxq; - long: 64; - long: 64; - struct xdp_rxq_info xdp_rxq_short; - struct xdp_rxq_info xdp_rxq_long; +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 mvpp21_rx_desc { - __le32 status; - __le16 reserved1; - __le16 data_size; - __le32 buf_dma_addr; - __le32 buf_cookie; - __le16 reserved2; - __le16 reserved3; - u8 reserved4; - u8 reserved5; - __le16 reserved6; - __le32 reserved7; - __le32 reserved8; +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 mvpp22_rx_desc { - __le32 status; - __le16 reserved1; - __le16 data_size; - __le32 reserved2; - __le32 timestamp; - __le64 buf_dma_addr_key_hash; - __le64 buf_cookie_misc; +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, }; -struct mvpp2_rx_desc { - union { - struct mvpp21_rx_desc pp21; - struct mvpp22_rx_desc pp22; - }; +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, }; -struct mvpp2_port_pcpu { - struct hrtimer tx_done_timer; - struct net_device *dev; - bool timer_scheduled; +struct snd_timer_id { + int dev_class; + int dev_sclass; + int card; + int device; + int subdevice; }; -struct mvpp2_pcpu_stats { - struct u64_stats_sync syncp; - u64 rx_packets; - u64 rx_bytes; - u64 tx_packets; - u64 tx_bytes; - u64 xdp_redirect; - u64 xdp_pass; - u64 xdp_drop; - u64 xdp_xmit; - u64 xdp_xmit_err; - u64 xdp_tx; - u64 xdp_tx_err; +struct snd_soc_jack_zone { + unsigned int min_mv; + unsigned int max_mv; + unsigned int jack_type; + unsigned int debounce_time; + struct list_head list; }; -struct mvpp2_rfs_rule { - int loc; - int flow_type; - int c2_index; - u16 hek_fields; - u8 engine; - u64 c2_tcam; - u64 c2_tcam_mask; - struct flow_rule *flow; +struct snd_soc_jack_gpio { + unsigned int gpio; + unsigned int idx; + struct device *gpiod_dev; + const char *name; + int report; + int invert; + int debounce_time; + bool wake; + struct snd_soc_jack *jack; + struct delayed_work work; + struct notifier_block pm_notifier; + struct gpio_desc *desc; + void *data; + int (*jack_status_check)(void *); }; -struct mvpp2_ethtool_fs { - struct mvpp2_rfs_rule rule; - struct ethtool_rxnfc rxnfc; +struct jack_gpio_tbl { + int count; + struct snd_soc_jack *jack; + struct snd_soc_jack_gpio *gpios; }; -enum mvpp2_prs_lookup { - MVPP2_PRS_LU_MH = 0, - MVPP2_PRS_LU_MAC = 1, - MVPP2_PRS_LU_DSA = 2, - MVPP2_PRS_LU_VLAN = 3, - MVPP2_PRS_LU_VID = 4, - MVPP2_PRS_LU_L2 = 5, - MVPP2_PRS_LU_PPPOE = 6, - MVPP2_PRS_LU_IP4 = 7, - MVPP2_PRS_LU_IP6 = 8, - MVPP2_PRS_LU_FLOWS = 9, - MVPP2_PRS_LU_LAST = 10, -}; +struct pcpu_gen_cookie; -enum mvpp2_prs_udf { - MVPP2_PRS_UDF_MAC_DEF = 0, - MVPP2_PRS_UDF_MAC_RANGE = 1, - MVPP2_PRS_UDF_L2_DEF = 2, - MVPP2_PRS_UDF_L2_DEF_COPY = 3, - MVPP2_PRS_UDF_L2_USER = 4, +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; }; -enum mvpp2_prs_flow { - MVPP2_FL_START = 8, - MVPP2_FL_IP4_TCP_NF_UNTAG = 8, - MVPP2_FL_IP4_UDP_NF_UNTAG = 9, - MVPP2_FL_IP4_TCP_NF_TAG = 10, - MVPP2_FL_IP4_UDP_NF_TAG = 11, - MVPP2_FL_IP6_TCP_NF_UNTAG = 12, - MVPP2_FL_IP6_UDP_NF_UNTAG = 13, - MVPP2_FL_IP6_TCP_NF_TAG = 14, - MVPP2_FL_IP6_UDP_NF_TAG = 15, - MVPP2_FL_IP4_TCP_FRAG_UNTAG = 16, - MVPP2_FL_IP4_UDP_FRAG_UNTAG = 17, - MVPP2_FL_IP4_TCP_FRAG_TAG = 18, - MVPP2_FL_IP4_UDP_FRAG_TAG = 19, - MVPP2_FL_IP6_TCP_FRAG_UNTAG = 20, - MVPP2_FL_IP6_UDP_FRAG_UNTAG = 21, - MVPP2_FL_IP6_TCP_FRAG_TAG = 22, - MVPP2_FL_IP6_UDP_FRAG_TAG = 23, - MVPP2_FL_IP4_UNTAG = 24, - MVPP2_FL_IP4_TAG = 25, - MVPP2_FL_IP6_UNTAG = 26, - MVPP2_FL_IP6_TAG = 27, - MVPP2_FL_NON_IP_UNTAG = 28, - MVPP2_FL_NON_IP_TAG = 29, - MVPP2_FL_LAST = 30, +struct pcpu_gen_cookie { + local_t nesting; + u64 last; }; -struct mvpp2_prs_entry { - u32 index; - u32 tcam[6]; - u32 sram[4]; +enum { + NETNSA_NONE = 0, + NETNSA_NSID = 1, + NETNSA_PID = 2, + NETNSA_FD = 3, + NETNSA_TARGET_NSID = 4, + NETNSA_CURRENT_NSID = 5, + __NETNSA_MAX = 6, }; -struct mvpp2_cls_c2_entry { - u32 index; - u32 tcam[5]; - u32 act; - u32 attr[5]; - u8 valid; +struct net_fill_args { + u32 portid; + u32 seq; + int flags; + int cmd; + int nsid; + bool add_ref; + int ref_nsid; }; -struct mvpp2_prs_result_info { - u32 ri; - u32 ri_mask; +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; }; -struct mvpp2_cls_flow { - int flow_type; - u16 flow_id; - u16 supported_hash_opts; - struct mvpp2_prs_result_info prs_ri; +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, }; -struct mvpp2_cls_flow_entry { - u32 index; - u32 data[3]; +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, }; -struct usb_descriptor_header { - __u8 bLength; - __u8 bDescriptorType; +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, }; -struct each_dev_arg { - void *data; - int (*fn)(struct usb_device *, void *); +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 find_interface_arg { - int minor; - struct device_driver *drv; +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 dwc3_data { - struct device *dev; - void *usbss; - struct clk *usb2_refclk; - int rate_code; - struct regmap *syscon; - unsigned int offset; - unsigned int vbus_divider; - u32 wakeup_stat; +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 mtu3_file_map { - const char *name; - int (*show)(struct seq_file *, void *); +struct rpc_cred_cache { + struct hlist_head *hashtable; + unsigned int hashbits; + spinlock_t lock; }; -struct mtu3_regset { - char name[32]; - struct debugfs_regset32 regset; -}; +struct gss_pipe; -struct bulk_cb_wrap { - __le32 Signature; - __u32 Tag; - __le32 DataTransferLength; - __u8 Flags; - __u8 Lun; - __u8 Length; - __u8 CDB[16]; +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 bulk_cs_wrap { - __le32 Signature; - __u32 Tag; - __le32 Residue; - __u8 Status; +struct gss_pipe { + struct rpc_pipe_dir_object pdo; + struct rpc_pipe *pipe; + struct rpc_clnt *clnt; + const char *name; + struct kref kref; }; -union udc_setup_data { - u32 data[2]; - struct usb_ctrlrequest request; +struct gss_cl_ctx; + +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 amd5536udc; +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; +}; -struct brcmstb_waketmr { - struct rtc_device *rtc; - struct device *dev; - void *base; - unsigned int wake_irq; - unsigned int alarm_irq; - struct notifier_block reboot_notifier; - struct clk *clk; - u32 rate; - unsigned long rtc_alarm; - bool alarm_en; +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; }; -struct wktmr_time { - u32 sec; - u32 pre; +struct gss_alloc_pdo { + struct rpc_clnt *clnt; + const char *name; + const struct rpc_pipe_ops *upcall_ops; }; -struct riic_irq_desc { - int res_num; - irq_handler_t isr; - char *name; +struct printf_spec { + unsigned int type: 8; + int field_width: 24; + unsigned int flags: 8; + unsigned int base: 8; + int precision: 16; }; -struct riic_dev { - void *base; - u8 *buf; - struct i2c_msg *msg; - int bytes_left; - int err; - int is_last; - struct completion msg_done; - struct i2c_adapter adapter; - struct clk *clk; +struct page_flags_fields { + int width; + int shift; + int mask; + const struct printf_spec *spec; + const char *name; }; -struct uniphier_wdt_dev { - struct watchdog_device wdt_dev; - struct regmap *regmap; +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 tegra124_cpufreq_priv { - struct clk *cpu_clk; - struct clk *pllp_clk; - struct clk *pllx_clk; - struct clk *dfll_clk; - struct platform_device *cpufreq_dt_pdev; +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 sdhci_arasan_soc_ctl_map; +struct nmi_ctx { + u64 hcr; + unsigned int cnt; +}; -struct sdhci_arasan_clk_ops; +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)); -struct sdhci_arasan_of_data { - const struct sdhci_arasan_soc_ctl_map *soc_ctl_map; - const struct sdhci_pltfm_data *pdata; - const struct sdhci_arasan_clk_ops *clk_ops; +enum aarch64_reloc_op { + RELOC_OP_NONE = 0, + RELOC_OP_ABS = 1, + RELOC_OP_PREL = 2, + RELOC_OP_PAGE = 3, }; -struct sdhci_arasan_soc_ctl_field { - u32 reg; - u16 width; - s16 shift; +enum aarch64_insn_movw_imm_type { + AARCH64_INSN_IMM_MOVNZ = 0, + AARCH64_INSN_IMM_MOVKZ = 1, }; -struct sdhci_arasan_soc_ctl_map { - struct sdhci_arasan_soc_ctl_field baseclkfreq; - struct sdhci_arasan_soc_ctl_field clockmultiplier; - struct sdhci_arasan_soc_ctl_field support64b; - bool hiword_update; -}; +typedef __s64 Elf64_Sxword; -struct sdhci_arasan_clk_ops { - const struct clk_ops *sdcardclk_ops; - const struct clk_ops *sampleclk_ops; +struct elf64_rela { + Elf64_Addr r_offset; + Elf64_Xword r_info; + Elf64_Sxword r_addend; }; -enum pm_api_id { - PM_GET_API_VERSION = 1, - PM_REGISTER_NOTIFIER = 5, - PM_FORCE_POWERDOWN = 8, - PM_REQUEST_WAKEUP = 10, - PM_SYSTEM_SHUTDOWN = 12, - PM_REQUEST_NODE = 13, - PM_RELEASE_NODE = 14, - PM_SET_REQUIREMENT = 15, - PM_RESET_ASSERT = 17, - PM_RESET_GET_STATUS = 18, - PM_MMIO_WRITE = 19, - PM_MMIO_READ = 20, - PM_PM_INIT_FINALIZE = 21, - PM_FPGA_LOAD = 22, - PM_FPGA_GET_STATUS = 23, - PM_GET_CHIPID = 24, - PM_SECURE_SHA = 26, - PM_PINCTRL_REQUEST = 28, - PM_PINCTRL_RELEASE = 29, - PM_PINCTRL_GET_FUNCTION = 30, - PM_PINCTRL_SET_FUNCTION = 31, - PM_PINCTRL_CONFIG_PARAM_GET = 32, - PM_PINCTRL_CONFIG_PARAM_SET = 33, - PM_IOCTL = 34, - PM_QUERY_DATA = 35, - PM_CLOCK_ENABLE = 36, - PM_CLOCK_DISABLE = 37, - PM_CLOCK_GETSTATE = 38, - PM_CLOCK_SETDIVIDER = 39, - PM_CLOCK_GETDIVIDER = 40, - PM_CLOCK_SETRATE = 41, - PM_CLOCK_GETRATE = 42, - PM_CLOCK_SETPARENT = 43, - PM_CLOCK_GETPARENT = 44, - PM_FPGA_READ = 46, - PM_SECURE_AES = 47, - PM_FEATURE_CHECK = 63, -}; +typedef struct elf64_rela Elf64_Rela; -enum pm_ioctl_id { - IOCTL_GET_RPU_OPER_MODE = 0, - IOCTL_SET_RPU_OPER_MODE = 1, - IOCTL_RPU_BOOT_ADDR_CONFIG = 2, - IOCTL_TCM_COMB_CONFIG = 3, - IOCTL_SET_TAPDELAY_BYPASS = 4, - IOCTL_SD_DLL_RESET = 6, - IOCTL_SET_SD_TAPDELAY = 7, - IOCTL_SET_PLL_FRAC_MODE = 8, - IOCTL_GET_PLL_FRAC_MODE = 9, - IOCTL_SET_PLL_FRAC_DATA = 10, - IOCTL_GET_PLL_FRAC_DATA = 11, - IOCTL_WRITE_GGS = 12, - IOCTL_READ_GGS = 13, - IOCTL_WRITE_PGGS = 14, - IOCTL_READ_PGGS = 15, - IOCTL_SET_BOOT_HEALTH_STATUS = 17, - IOCTL_OSPI_MUX_SELECT = 21, - IOCTL_REGISTER_SGI = 25, - IOCTL_SET_FEATURE_CONFIG = 26, - IOCTL_GET_FEATURE_CONFIG = 27, - IOCTL_SET_SD_CONFIG = 30, - IOCTL_SET_GEM_CONFIG = 31, +enum bp_type_idx { + TYPE_INST = 0, + TYPE_DATA = 1, + TYPE_MAX = 2, }; -enum pm_node_id { - NODE_SD_0 = 39, - NODE_SD_1 = 40, +enum hw_breakpoint_ops { + HW_BREAKPOINT_INSTALL = 0, + HW_BREAKPOINT_UNINSTALL = 1, + HW_BREAKPOINT_RESTORE = 2, }; -enum dll_reset_type { - PM_DLL_RESET_ASSERT = 0, - PM_DLL_RESET_RELEASE = 1, - PM_DLL_RESET_PULSE = 2, +enum { + HW_BREAKPOINT_EMPTY = 0, + HW_BREAKPOINT_R = 1, + HW_BREAKPOINT_W = 2, + HW_BREAKPOINT_RW = 3, + HW_BREAKPOINT_X = 4, + HW_BREAKPOINT_INVALID = 7, }; -enum pm_sd_config_type { - SD_CONFIG_EMMC_SEL = 1, - SD_CONFIG_BASECLK = 2, - SD_CONFIG_8BIT = 3, - SD_CONFIG_FIXED = 4, +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, }; -enum tap_delay_type { - PM_TAPDELAY_INPUT = 0, - PM_TAPDELAY_OUTPUT = 1, -}; +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 sdhci_arasan_clk_data { - struct clk_hw sdcardclk_hw; - struct clk *sdcardclk; - struct clk_hw sampleclk_hw; - struct clk *sampleclk; - int clk_phase_in[11]; - int clk_phase_out[11]; - void (*set_clk_delays)(struct sdhci_host *); - void *clk_of_data; +struct kvm_coalesced_mmio_zone { + __u64 addr; + __u32 size; + union { + __u32 pad; + __u32 pio; + }; }; -struct sdhci_arasan_data { - struct sdhci_host *host; - struct clk *clk_ahb; - struct phy *phy; - bool is_phy_on; - bool internal_phy_reg; - bool has_cqe; - struct sdhci_arasan_clk_data clk_data; - const struct sdhci_arasan_clk_ops *clk_ops; - struct regmap *soc_ctl_base; - const struct sdhci_arasan_soc_ctl_map *soc_ctl_map; - unsigned int quirks; +struct kvm_coalesced_mmio_dev { + struct list_head list; + struct kvm_io_device___2 dev; + struct kvm___2 *kvm; + struct kvm_coalesced_mmio_zone zone; }; -struct scm_legacy_response { - __le32 len; - __le32 buf_offset; - __le32 is_complete; +struct unwind_state { + unsigned long fp; + unsigned long pc; + struct llist_node *kr_cur; + struct task_struct *task; + struct stack_info stack; + struct stack_info *stacks; + int nr_stacks; }; -struct scm_legacy_command { - __le32 len; - __le32 buf_offset; - __le32 resp_hdr_offset; - __le32 id; - __le32 buf[0]; +struct psci_0_1_function_ids { + u32 cpu_suspend; + u32 cpu_on; + u32 cpu_off; + u32 migrate; }; -struct arm_smccc_args { - unsigned long args[8]; +struct kvm_host_psci_config { + u32 version; + u32 smccc_version; + struct psci_0_1_function_ids function_ids_0_1; + bool psci_0_1_cpu_suspend_implemented; + bool psci_0_1_cpu_on_implemented; + bool psci_0_1_cpu_off_implemented; + bool psci_0_1_migrate_implemented; }; -enum { - RCD = 0, - RCH_DP = 1, - DEVICE = 2, - LD = 3, - FMLD = 4, - RP = 5, - DSP = 6, - USP = 7, +struct psci_boot_args { + atomic_t lock; + unsigned long pc; + unsigned long r0; }; -struct cxl_ras_capability_regs { - u32 uncor_status; - u32 uncor_mask; - u32 uncor_severity; - u32 cor_status; - u32 cor_mask; - u32 cap_control; - u32 header_log[16]; +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 cper_sec_prot_err { - u64 valid_bits; - u8 agent_type; - u8 reserved[7]; - union { - u64 rcrb_base_addr; - struct { - u8 function; - u8 device; - u8 bus; - u16 segment; - u8 reserved_1[3]; - } __attribute__((packed)); - } agent_addr; - struct { - u16 vendor_id; - u16 device_id; - u16 subsystem_vendor_id; - u16 subsystem_id; - u8 class_code[2]; - u16 slot; - u8 reserved_1[4]; - } device_id; - struct { - u32 lower_dw; - u32 upper_dw; - } dev_serial_num; - u8 capability[60]; - u16 dvsec_len; - u16 err_len; - u8 reserved_2[4]; -} __attribute__((packed)); - -struct cper_arm_ctx_info { - u16 version; - u16 type; - u32 size; +struct tms { + __kernel_clock_t tms_utime; + __kernel_clock_t tms_stime; + __kernel_clock_t tms_cutime; + __kernel_clock_t tms_cstime; }; -struct imx_sc_pd_range; - -struct imx_sc_pd_soc { - const struct imx_sc_pd_range *pd_ranges; - u8 num_ranges; +struct compat_tms { + compat_clock_t tms_utime; + compat_clock_t tms_stime; + compat_clock_t tms_cutime; + compat_clock_t tms_cstime; }; -struct imx_sc_pd_range { - char *name; - u32 rsrc; - u8 num; - bool postfix; - u8 start_from; +struct compat_rlimit { + compat_ulong_t rlim_cur; + compat_ulong_t rlim_max; }; -struct imx_sc_pm_domain { - struct generic_pm_domain pd; - char name[20]; - u32 rsrc; +struct rlimit64 { + __u64 rlim_cur; + __u64 rlim_max; }; -struct imx_sc_msg_req_set_resource_power_mode { - struct imx_sc_rpc_msg hdr; - u16 resource; - u8 mode; +struct getcpu_cache { + unsigned long blob[16]; }; -enum ec_feature_code { - EC_FEATURE_LIMITED = 0, - EC_FEATURE_FLASH = 1, - EC_FEATURE_PWM_FAN = 2, - EC_FEATURE_PWM_KEYB = 3, - EC_FEATURE_LIGHTBAR = 4, - EC_FEATURE_LED = 5, - EC_FEATURE_MOTION_SENSE = 6, - EC_FEATURE_KEYB = 7, - EC_FEATURE_PSTORE = 8, - EC_FEATURE_PORT80 = 9, - EC_FEATURE_THERMAL = 10, - EC_FEATURE_BKLIGHT_SWITCH = 11, - EC_FEATURE_WIFI_SWITCH = 12, - EC_FEATURE_HOST_EVENTS = 13, - EC_FEATURE_GPIO = 14, - EC_FEATURE_I2C = 15, - EC_FEATURE_CHARGER = 16, - EC_FEATURE_BATTERY = 17, - EC_FEATURE_SMART_BATTERY = 18, - EC_FEATURE_HANG_DETECT = 19, - EC_FEATURE_PMU = 20, - EC_FEATURE_SUB_MCU = 21, - EC_FEATURE_USB_PD = 22, - EC_FEATURE_USB_MUX = 23, - EC_FEATURE_MOTION_SENSE_FIFO = 24, - EC_FEATURE_VSTORE = 25, - EC_FEATURE_USBC_SS_MUX_VIRTUAL = 26, - EC_FEATURE_RTC = 27, - EC_FEATURE_FINGERPRINT = 28, - EC_FEATURE_TOUCHPAD = 29, - EC_FEATURE_RWSIG = 30, - EC_FEATURE_DEVICE_EVENT = 31, - EC_FEATURE_UNIFIED_WAKE_MASKS = 32, - EC_FEATURE_HOST_EVENT64 = 33, - EC_FEATURE_EXEC_IN_RAM = 34, - EC_FEATURE_CEC = 35, - EC_FEATURE_MOTION_SENSE_TIGHT_TIMESTAMPS = 36, - EC_FEATURE_REFINED_TABLET_MODE_HYSTERESIS = 37, - EC_FEATURE_SCP = 39, - EC_FEATURE_ISH = 40, - EC_FEATURE_TYPEC_CMD = 41, - EC_FEATURE_TYPEC_REQUIRE_AP_MODE_ENTRY = 42, - EC_FEATURE_TYPEC_MUX_REQUIRE_AP_ACK = 43, - EC_FEATURE_S4_RESIDENCY = 44, - EC_FEATURE_TYPEC_AP_MUX_SET = 45, - EC_FEATURE_TYPEC_AP_VDM_SEND = 46, +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]; }; -enum motionsense_command { - MOTIONSENSE_CMD_DUMP = 0, - MOTIONSENSE_CMD_INFO = 1, - MOTIONSENSE_CMD_EC_RATE = 2, - MOTIONSENSE_CMD_SENSOR_ODR = 3, - MOTIONSENSE_CMD_SENSOR_RANGE = 4, - MOTIONSENSE_CMD_KB_WAKE_ANGLE = 5, - MOTIONSENSE_CMD_DATA = 6, - MOTIONSENSE_CMD_FIFO_INFO = 7, - MOTIONSENSE_CMD_FIFO_FLUSH = 8, - MOTIONSENSE_CMD_FIFO_READ = 9, - MOTIONSENSE_CMD_PERFORM_CALIB = 10, - MOTIONSENSE_CMD_SENSOR_OFFSET = 11, - MOTIONSENSE_CMD_LIST_ACTIVITIES = 12, - MOTIONSENSE_CMD_SET_ACTIVITY = 13, - MOTIONSENSE_CMD_LID_ANGLE = 14, - MOTIONSENSE_CMD_FIFO_INT_ENABLE = 15, - MOTIONSENSE_CMD_SPOOF = 16, - MOTIONSENSE_CMD_TABLET_MODE_LID_ANGLE = 17, - MOTIONSENSE_CMD_SENSOR_SCALE = 18, - MOTIONSENSE_NUM_CMDS = 19, +struct prctl_mm_map { + __u64 start_code; + __u64 end_code; + __u64 start_data; + __u64 end_data; + __u64 start_brk; + __u64 brk; + __u64 start_stack; + __u64 arg_start; + __u64 arg_end; + __u64 env_start; + __u64 env_end; + __u64 *auxv; + __u32 auxv_size; + __u32 exe_fd; }; -enum motionsensor_type { - MOTIONSENSE_TYPE_ACCEL = 0, - MOTIONSENSE_TYPE_GYRO = 1, - MOTIONSENSE_TYPE_MAG = 2, - MOTIONSENSE_TYPE_PROX = 3, - MOTIONSENSE_TYPE_LIGHT = 4, - MOTIONSENSE_TYPE_ACTIVITY = 5, - MOTIONSENSE_TYPE_BARO = 6, - MOTIONSENSE_TYPE_SYNC = 7, - MOTIONSENSE_TYPE_MAX = 8, +typedef int (*proc_visitor)(struct task_struct *, void *); + +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 ec_motion_sense_activity { - uint8_t sensor_num; - uint8_t activity; - uint8_t enable; - uint8_t reserved; - uint16_t parameters[3]; +struct platform_s2idle_ops { + int (*begin)(); + int (*prepare)(); + int (*prepare_late)(); + void (*check)(); + bool (*wake)(); + void (*restore_early)(); + void (*restore)(); + void (*end)(); }; -struct ec_params_motion_sense { - uint8_t cmd; - union { - struct { - uint8_t max_sensor_count; - } dump; - struct { - int16_t data; - } kb_wake_angle; - struct { - uint8_t sensor_num; - } info; - struct { - uint8_t sensor_num; - } info_3; - struct { - uint8_t sensor_num; - } data; - struct { - uint8_t sensor_num; - } fifo_flush; - struct { - uint8_t sensor_num; - } perform_calib; - struct { - uint8_t sensor_num; - } list_activities; - struct { - uint8_t sensor_num; - uint8_t roundup; - uint16_t reserved; - int32_t data; - } ec_rate; - struct { - uint8_t sensor_num; - uint8_t roundup; - uint16_t reserved; - int32_t data; - } sensor_odr; - struct { - uint8_t sensor_num; - uint8_t roundup; - uint16_t reserved; - int32_t data; - } sensor_range; - struct { - uint8_t sensor_num; - uint16_t flags; - int16_t temp; - int16_t offset[3]; - } __attribute__((packed)) sensor_offset; - struct { - uint8_t sensor_num; - uint16_t flags; - int16_t temp; - uint16_t scale[3]; - } __attribute__((packed)) sensor_scale; - struct { - uint32_t max_data_vector; - } fifo_read; - struct ec_motion_sense_activity set_activity; - struct { - int8_t enable; - } fifo_int_enable; - struct { - uint8_t sensor_id; - uint8_t spoof_enable; - uint8_t reserved; - int16_t components[3]; - } __attribute__((packed)) spoof; - struct { - int16_t lid_angle; - int16_t hys_degree; - } tablet_mode_threshold; - }; -} __attribute__((packed)); +enum s2idle_states { + S2IDLE_STATE_NONE = 0, + S2IDLE_STATE_ENTER = 1, + S2IDLE_STATE_WAKE = 2, +}; -struct ec_response_motion_sensor_data { - uint8_t flags; - uint8_t sensor_num; - union { - int16_t data[3]; - struct { - uint16_t reserved; - uint32_t timestamp; - } __attribute__((packed)); - struct { - uint8_t activity; - uint8_t state; - int16_t add_info[2]; - }; - }; +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 ec_response_motion_sense_fifo_data { - uint32_t number_data; - struct ec_response_motion_sensor_data data[0]; +enum { + AFFINITY = 0, + AFFINITY_LIST = 1, + EFFECTIVE = 2, + EFFECTIVE_LIST = 3, }; -struct ec_response_motion_sense { - union { - struct { - uint8_t module_flags; - uint8_t sensor_count; - struct { - struct {} __empty_sensor; - struct ec_response_motion_sensor_data sensor[0]; - }; - } dump; - struct { - uint8_t type; - uint8_t location; - uint8_t chip; - } info; - struct { - uint8_t type; - uint8_t location; - uint8_t chip; - uint32_t min_frequency; - uint32_t max_frequency; - uint32_t fifo_max_event_count; - } info_3; - struct ec_response_motion_sensor_data data; - struct { - int32_t ret; - } ec_rate; - struct { - int32_t ret; - } sensor_odr; - struct { - int32_t ret; - } sensor_range; - struct { - int32_t ret; - } kb_wake_angle; - struct { - int32_t ret; - } fifo_int_enable; - struct { - int32_t ret; - } spoof; - struct { - int16_t temp; - int16_t offset[3]; - } sensor_offset; - struct { - int16_t temp; - int16_t offset[3]; - } perform_calib; - struct { - int16_t temp; - uint16_t scale[3]; - } sensor_scale; - struct ec_response_motion_sense_fifo_info fifo_info; - struct ec_response_motion_sense_fifo_info fifo_flush; - struct ec_response_motion_sense_fifo_data fifo_read; - struct { - uint16_t reserved; - uint32_t enabled; - uint32_t disabled; - } __attribute__((packed)) list_activities; - struct { - uint16_t value; - } lid_angle; - struct { - uint16_t lid_angle; - uint16_t hys_degree; - } tablet_mode_threshold; - }; +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 cros_ec_sensors_ec_overflow_state { - s64 offset; - s64 last; +struct module_use { + struct list_head source_list; + struct list_head target_list; + struct module *source; + struct module *target; }; -struct cros_ec_sensors_ts_filter_state { - s64 x_offset; - s64 y_offset; - s64 x_history[64]; - s64 y_history[64]; - s64 m_history[64]; - int history_len; - s64 temp_buf[64]; - s64 median_m; - s64 median_error; +struct module_sect_attr { + struct bin_attribute battr; + unsigned long address; }; -struct cros_ec_sensors_ring_sample; +struct module_sect_attrs { + struct attribute_group grp; + unsigned int nsections; + struct module_sect_attr attrs[0]; +}; -struct cros_ec_sensors_ts_batch_state; +struct module_notes_attrs { + struct kobject *dir; + unsigned int notes; + struct bin_attribute attrs[0]; +}; -struct cros_ec_sensorhub_sensor_push_data; +struct load_info { + const char *name; + struct module *mod; + Elf64_Ehdr *hdr; + unsigned long len; + Elf64_Shdr *sechdrs; + char *secstrings; + char *strtab; + unsigned long symoffs; + unsigned long stroffs; + unsigned long init_typeoffs; + unsigned long core_typeoffs; + bool sig_ok; + unsigned long mod_kallsyms_init_off; + struct { + unsigned int sym; + unsigned int str; + unsigned int mod; + unsigned int vers; + unsigned int info; + unsigned int pcpu; + } index; +}; -struct cros_ec_sensorhub { - struct device *dev; - struct cros_ec_dev *ec; - int sensor_num; - struct cros_ec_command *msg; - struct ec_params_motion_sense *params; - struct ec_response_motion_sense *resp; - struct mutex cmd_lock; - struct notifier_block notifier; - struct cros_ec_sensors_ring_sample *ring; - ktime_t fifo_timestamp[2]; - struct ec_response_motion_sense_fifo_info *fifo_info; - int fifo_size; - struct cros_ec_sensors_ts_batch_state *batch_state; - struct cros_ec_sensors_ec_overflow_state overflow_a; - struct cros_ec_sensors_ec_overflow_state overflow_b; - struct cros_ec_sensors_ts_filter_state filter; - int tight_timestamps; - s32 future_timestamp_count; - s64 future_timestamp_total_ns; - struct cros_ec_sensorhub_sensor_push_data *push_data; +struct posix_clock_desc { + struct file *fp; + struct posix_clock *clk; }; -struct cros_ec_sensors_ring_sample { - u8 sensor_id; - u8 flag; - s16 vector[3]; - s64 timestamp; +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 cros_ec_sensors_ts_batch_state { - s64 penul_ts; - int penul_len; - s64 last_ts; - int last_len; - s64 newest_sensor_event; +struct bpf_kfunc_desc { + struct btf_func_model func_model; + u32 func_id; + s32 imm; + u16 offset; + unsigned long addr; }; -typedef int (*cros_ec_sensorhub_push_data_cb_t)(struct iio_dev *, s16 *, s64); +struct bpf_kfunc_desc_tab { + struct bpf_kfunc_desc descs[256]; + u32 nr_descs; +}; -struct cros_ec_sensorhub_sensor_push_data { - struct iio_dev *indio_dev; - cros_ec_sensorhub_push_data_cb_t push_data_cb; +struct bpf_kfunc_btf { + struct btf *btf; + struct module *module; + u16 offset; }; -struct cros_ec_sensor_platform { - u8 sensor_num; +struct bpf_kfunc_btf_tab { + struct bpf_kfunc_btf descs[256]; + u32 nr_descs; }; -struct userspace_data { - unsigned long user_frequency; - bool valid; +struct bpf_reg_types { + const enum bpf_reg_type types[10]; + u32 *btf_id; }; -struct compat_cmsghdr { - compat_size_t cmsg_len; - compat_int_t cmsg_level; - compat_int_t cmsg_type; +enum special_kfunc_type { + KF_bpf_obj_new_impl = 0, + KF_bpf_obj_drop_impl = 1, + KF_bpf_refcount_acquire_impl = 2, + KF_bpf_list_push_front_impl = 3, + KF_bpf_list_push_back_impl = 4, + KF_bpf_list_pop_front = 5, + KF_bpf_list_pop_back = 6, + KF_bpf_cast_to_kern_ctx = 7, + KF_bpf_rdonly_cast = 8, + KF_bpf_rcu_read_lock = 9, + KF_bpf_rcu_read_unlock = 10, + KF_bpf_rbtree_remove = 11, + KF_bpf_rbtree_add_impl = 12, + KF_bpf_rbtree_first = 13, + KF_bpf_dynptr_from_skb = 14, + KF_bpf_dynptr_from_xdp = 15, + KF_bpf_dynptr_slice = 16, + KF_bpf_dynptr_slice_rdwr = 17, + KF_bpf_dynptr_clone = 18, + KF_bpf_percpu_obj_new_impl = 19, + KF_bpf_percpu_obj_drop_impl = 20, + KF_bpf_throw = 21, + KF_bpf_iter_css_task_new = 22, }; -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 bpf_stack_slot_type { + STACK_INVALID = 0, + STACK_SPILL = 1, + STACK_MISC = 2, + STACK_ZERO = 3, + STACK_DYNPTR = 4, + STACK_ITER = 5, }; -enum udp_tunnel_nic_info_flags { - UDP_TUNNEL_NIC_INFO_MAY_SLEEP = 1, - UDP_TUNNEL_NIC_INFO_OPEN_ONLY = 2, - UDP_TUNNEL_NIC_INFO_IPV4_ONLY = 4, - UDP_TUNNEL_NIC_INFO_STATIC_IANA_VXLAN = 8, +enum bpf_access_src { + ACCESS_DIRECT = 1, + ACCESS_HELPER = 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, + DISCOVERED = 16, + EXPLORED = 32, + FALLTHROUGH = 1, + BRANCH = 2, }; 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, + DONE_EXPLORING = 0, + KEEP_EXPLORING = 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 reg_arg_type { + SRC_OP = 0, + DST_OP = 1, + DST_OP_NO_MARK = 2, }; 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, + REASON_BOUNDS = -1, + REASON_TYPE = -2, + REASON_PATHS = -3, + REASON_LIMIT = -4, + REASON_STACK = -5, }; -struct ethnl_tunnel_info_dump_ctx { - struct ethnl_req_info req_info; - int pos_hash; - int pos_idx; +enum kfunc_ptr_arg_type { + KF_ARG_PTR_TO_CTX = 0, + KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, + KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2, + KF_ARG_PTR_TO_DYNPTR = 3, + KF_ARG_PTR_TO_ITER = 4, + KF_ARG_PTR_TO_LIST_HEAD = 5, + KF_ARG_PTR_TO_LIST_NODE = 6, + KF_ARG_PTR_TO_BTF_ID = 7, + KF_ARG_PTR_TO_MEM = 8, + KF_ARG_PTR_TO_MEM_SIZE = 9, + KF_ARG_PTR_TO_CALLBACK = 10, + KF_ARG_PTR_TO_RB_ROOT = 11, + KF_ARG_PTR_TO_RB_NODE = 12, + KF_ARG_PTR_TO_NULL = 13, }; enum { - INET_DIAG_REQ_NONE = 0, - INET_DIAG_REQ_BYTECODE = 1, - INET_DIAG_REQ_SK_BPF_STORAGES = 2, - INET_DIAG_REQ_PROTOCOL = 3, - __INET_DIAG_REQ_MAX = 4, + 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 { - 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, + BTF_TRACING_TYPE_TASK = 0, + BTF_TRACING_TYPE_FILE = 1, + BTF_TRACING_TYPE_VMA = 2, + MAX_BTF_TRACING_TYPE = 3, }; enum { - INET_DIAG_BC_NOP = 0, - INET_DIAG_BC_JMP = 1, - INET_DIAG_BC_S_GE = 2, - INET_DIAG_BC_S_LE = 3, - INET_DIAG_BC_D_GE = 4, - INET_DIAG_BC_D_LE = 5, - INET_DIAG_BC_AUTO = 6, - INET_DIAG_BC_S_COND = 7, - INET_DIAG_BC_D_COND = 8, - INET_DIAG_BC_DEV_COND = 9, - INET_DIAG_BC_MARK_COND = 10, - INET_DIAG_BC_S_EQ = 11, - INET_DIAG_BC_D_EQ = 12, - INET_DIAG_BC_CGROUP_COND = 13, + AT_PKT_END = -1, + BEYOND_PKT_END = -2, }; -struct inet_diag_hostcond { - __u8 family; - __u8 prefix_len; - int port; - __be32 addr[0]; +enum { + BPF_MAX_LOOPS = 8388608, }; -struct inet_diag_markcond { - __u32 mark; - __u32 mask; +enum bpf_jit_poke_reason { + BPF_POKE_REASON_TAIL_CALL = 0, }; -struct inet_diag_dump_data { - struct nlattr *req_nlas[4]; - struct bpf_sk_storage_diag *bpf_stg_diag; +struct bpf_iter_meta__safe_trusted { + struct seq_file *seq; }; -struct inet_diag_entry { - const __be32 *saddr; - const __be32 *daddr; - u16 sport; - u16 dport; - u16 family; - u16 userlocks; - u32 ifindex; - u32 mark; - u64 cgroup_id; +struct bpf_iter__task__safe_trusted { + struct bpf_iter_meta *meta; + struct task_struct *task; }; -struct inet_diag_bc_op { - unsigned char code; - unsigned char yes; - unsigned short no; +struct linux_binprm__safe_trusted { + struct file *file; }; -struct inet_diag_req { - __u8 idiag_family; - __u8 idiag_src_len; - __u8 idiag_dst_len; - __u8 idiag_ext; - struct inet_diag_sockid id; - __u32 idiag_states; - __u32 idiag_dbs; +struct file__safe_trusted { + struct inode *f_inode; }; -struct inet_diag_sockopt { - __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 unused: 5; +struct dentry__safe_trusted { + struct inode *d_inode; }; -struct inet_diag_meminfo { - __u32 idiag_rmem; - __u32 idiag_wmem; - __u32 idiag_fmem; - __u32 idiag_tmem; +struct socket__safe_trusted { + struct sock *sk; }; -struct svc_pool_map { - int count; - int mode; - unsigned int npools; - unsigned int *pool_to; - unsigned int *to_pool; +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; }; -enum { - SVC_POOL_AUTO = -1, - SVC_POOL_GLOBAL = 0, - SVC_POOL_PERCPU = 1, - SVC_POOL_PERNODE = 2, +struct cgroup__safe_rcu { + struct kernfs_node *kn; }; -enum rpc_reply_stat { - RPC_MSG_ACCEPTED = 0, - RPC_MSG_DENIED = 1, +struct css_set__safe_rcu { + struct cgroup *dfl_cgrp; }; -enum rpc_reject_stat { - RPC_MISMATCH = 0, - RPC_AUTH_ERROR = 1, +struct mm_struct__safe_rcu_or_null { + struct file __attribute__((btf_type_tag("rcu"))) *exe_file; }; -enum { - dns_key_data = 0, - dns_key_error = 1, +struct sk_buff__safe_rcu_or_null { + struct sock *sk; }; -struct user_key_payload { - struct callback_head rcu; - unsigned short datalen; - long: 0; - char data[0]; +struct request_sock__safe_rcu_or_null { + struct sock *sk; }; -typedef struct { - unsigned long key[2]; -} hsiphash_key_t; +struct bpf_iter; -struct efi_vendor_dev_path { - struct efi_generic_dev_path header; - efi_guid_t vendorguid; - u8 vendordata[0]; -}; +typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); -enum efistub_event { - EFISTUB_EVT_INITRD = 0, - EFISTUB_EVT_LOAD_OPTIONS = 1, - EFISTUB_EVT_COUNT = 2, +struct bpf_struct_ops { + const struct bpf_verifier_ops *verifier_ops; + int (*init)(struct btf *); + int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *); + int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); + int (*reg)(void *); + void (*unreg)(void *); + int (*update)(void *, void *); + int (*validate)(void *); + 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; }; -struct efi_tcg2_event { - u32 event_size; +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 { - u32 header_size; - u16 header_version; - u32 pcr_index; - u32 event_type; - } __attribute__((packed)) event_header; -} __attribute__((packed)); + u64 value; + bool found; + } arg_constant; + struct btf *arg_btf; + u32 arg_btf_id; + bool arg_owning_ref; + struct { + struct btf_field *field; + } arg_list_head; + struct { + struct btf_field *field; + } arg_rbtree_root; + struct { + enum bpf_dynptr_type type; + u32 id; + u32 ref_obj_id; + } initialized_dynptr; + struct { + u8 spi; + u8 frameno; + } iter; + u64 mem_size; +}; -typedef struct efi_tcg2_event efi_tcg2_event_t; +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 efi_tcg2_tagged_event { - u32 tagged_event_id; - u32 tagged_event_data_size; +struct bpf_bprintf_data { + u32 *bin_args; + char *buf; + bool get_bin_args; + bool get_buf; }; -typedef struct efi_tcg2_tagged_event efi_tcg2_tagged_event_t; +struct bpf_sanitize_info { + struct bpf_insn_aux_data aux; + bool mask_to_left; +}; -struct efi_measured_event { - efi_tcg2_event_t event_data; - efi_tcg2_tagged_event_t tagged_event; - u8 tagged_event_data[0]; -} __attribute__((packed)); +typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); -union efi_load_file_protocol; +enum pgt_entry { + NORMAL_PMD = 0, + HPAGE_PMD = 1, + NORMAL_PUD = 2, + HPAGE_PUD = 3, +}; -typedef union efi_load_file_protocol efi_load_file_protocol_t; +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; +}; -union efi_load_file_protocol { - struct { - efi_status_t (*load_file)(efi_load_file_protocol_t *, efi_device_path_protocol_t *, bool, unsigned long *, void *); - }; - struct { - u32 load_file; - } mixed_mode; +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; }; -typedef union efi_load_file_protocol efi_load_file2_protocol_t; +struct mmu_interval_notifier_ops { + bool (*invalidate)(struct mmu_interval_notifier *, const struct mmu_notifier_range *, unsigned long); +}; -typedef struct { - u32 attributes; - u16 file_path_list_length; - u8 variable_data[0]; -} __attribute__((packed)) efi_load_option_t; +typedef void (*btf_trace_mm_khugepaged_scan_pmd)(void *, struct mm_struct *, struct page *, bool, int, int, int, int); -typedef struct { - u32 attributes; - u16 file_path_list_length; - const efi_char16_t *description; - const efi_device_path_protocol_t *file_path_list; - u32 optional_data_size; - const void *optional_data; -} efi_load_option_unpacked_t; +typedef void (*btf_trace_mm_collapse_huge_page)(void *, struct mm_struct *, int, int); -typedef u32 efi_tcg2_event_log_format; +typedef void (*btf_trace_mm_collapse_huge_page_isolate)(void *, struct page *, int, int, bool, int); -union efi_tcg2_protocol; +typedef void (*btf_trace_mm_collapse_huge_page_swapin)(void *, struct mm_struct *, int, int, int); -typedef union efi_tcg2_protocol efi_tcg2_protocol_t; +typedef void (*btf_trace_mm_khugepaged_scan_file)(void *, struct mm_struct *, struct page *, struct file *, int, int, int); -union efi_tcg2_protocol { - struct { - void *get_capability; - efi_status_t (*get_event_log)(efi_tcg2_protocol_t *, efi_tcg2_event_log_format, efi_physical_addr_t *, efi_physical_addr_t *, efi_bool_t *); - efi_status_t (*hash_log_extend_event)(efi_tcg2_protocol_t *, u64, efi_physical_addr_t, u64, const efi_tcg2_event_t *); - void *submit_command; - void *get_active_pcr_banks; - void *set_active_pcr_banks; - void *get_result_of_set_active_pcr_banks; - }; - struct { - u32 get_capability; - u32 get_event_log; - u32 hash_log_extend_event; - u32 submit_command; - u32 get_active_pcr_banks; - u32 set_active_pcr_banks; - u32 get_result_of_set_active_pcr_banks; - } mixed_mode; +typedef void (*btf_trace_mm_khugepaged_collapse_file)(void *, struct mm_struct *, struct page *, unsigned long, bool, unsigned long, struct file *, int, int); + +struct collapse_control { + bool is_khugepaged; + u32 node_load[16]; + nodemask_t alloc_nmask; }; -union efi_memory_attribute_protocol; +struct khugepaged_mm_slot; -typedef union efi_memory_attribute_protocol efi_memory_attribute_protocol_t; +struct khugepaged_scan { + struct list_head mm_head; + struct khugepaged_mm_slot *mm_slot; + unsigned long address; +}; -union efi_memory_attribute_protocol { - struct { - efi_status_t (*get_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64 *); - efi_status_t (*set_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64); - efi_status_t (*clear_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64); - }; - struct { - u32 get_memory_attributes; - u32 set_memory_attributes; - u32 clear_memory_attributes; - } mixed_mode; +struct khugepaged_mm_slot { + struct mm_slot slot; }; -struct efi_smbios_record { - u8 type; - u8 length; - u16 handle; +enum transparent_hugepage_flag { + TRANSPARENT_HUGEPAGE_UNSUPPORTED = 0, + TRANSPARENT_HUGEPAGE_FLAG = 1, + TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG = 2, + TRANSPARENT_HUGEPAGE_DEFRAG_DIRECT_FLAG = 3, + TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_FLAG = 4, + TRANSPARENT_HUGEPAGE_DEFRAG_KSWAPD_OR_MADV_FLAG = 5, + TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG = 6, + TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG = 7, + TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG = 8, }; -struct efi_smbios_protocol; +enum scan_result { + SCAN_FAIL = 0, + SCAN_SUCCEED = 1, + SCAN_PMD_NULL = 2, + SCAN_PMD_NONE = 3, + SCAN_PMD_MAPPED = 4, + SCAN_EXCEED_NONE_PTE = 5, + SCAN_EXCEED_SWAP_PTE = 6, + SCAN_EXCEED_SHARED_PTE = 7, + SCAN_PTE_NON_PRESENT = 8, + SCAN_PTE_UFFD_WP = 9, + SCAN_PTE_MAPPED_HUGEPAGE = 10, + SCAN_PAGE_RO = 11, + SCAN_LACK_REFERENCED_PAGE = 12, + SCAN_PAGE_NULL = 13, + SCAN_SCAN_ABORT = 14, + SCAN_PAGE_COUNT = 15, + SCAN_PAGE_LRU = 16, + SCAN_PAGE_LOCK = 17, + SCAN_PAGE_ANON = 18, + SCAN_PAGE_COMPOUND = 19, + SCAN_ANY_PROCESS = 20, + SCAN_VMA_NULL = 21, + SCAN_VMA_CHECK = 22, + SCAN_ADDRESS_RANGE = 23, + SCAN_DEL_PAGE_LRU = 24, + SCAN_ALLOC_HUGE_PAGE_FAIL = 25, + SCAN_CGROUP_CHARGE_FAIL = 26, + SCAN_TRUNCATED = 27, + SCAN_PAGE_HAS_PRIVATE = 28, + SCAN_STORE_FAILED = 29, + SCAN_COPY_MC = 30, + SCAN_PAGE_FILLED = 31, +}; -typedef struct efi_smbios_protocol efi_smbios_protocol_t; +enum sgp_type { + SGP_READ = 0, + SGP_NOALLOC = 1, + SGP_CACHE = 2, + SGP_WRITE = 3, + SGP_FALLOC = 4, +}; -struct efi_smbios_protocol { - efi_status_t (*add)(efi_smbios_protocol_t *, efi_handle_t, u16 *, struct efi_smbios_record *); - efi_status_t (*update_string)(efi_smbios_protocol_t *, u16 *, unsigned long *, u8 *); - efi_status_t (*remove)(efi_smbios_protocol_t *, u16); - efi_status_t (*get_next)(efi_smbios_protocol_t *, u16 *, u8 *, struct efi_smbios_record **, efi_handle_t *); - u8 major_version; - u8 minor_version; +struct trace_event_raw_mm_khugepaged_scan_pmd { + struct trace_entry ent; + struct mm_struct *mm; + unsigned long pfn; + bool writable; + int referenced; + int none_or_zero; + int status; + int unmapped; + char __data[0]; }; -typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int)); +struct trace_event_raw_mm_collapse_huge_page { + struct trace_entry ent; + struct mm_struct *mm; + int isolated; + int status; + char __data[0]; +}; -typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *); +struct trace_event_raw_mm_collapse_huge_page_isolate { + struct trace_entry ent; + unsigned long pfn; + int none_or_zero; + int referenced; + bool writable; + int status; + char __data[0]; +}; -typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int); +struct trace_event_raw_mm_collapse_huge_page_swapin { + struct trace_entry ent; + struct mm_struct *mm; + int swapped_in; + int referenced; + int ret; + char __data[0]; +}; -struct 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; +struct trace_event_raw_mm_khugepaged_scan_file { + struct trace_entry ent; + struct mm_struct *mm; + unsigned long pfn; + u32 __data_loc_filename; + int present; + int swap; int result; - atomic_t ap_sync_state; - struct completion done_up; - struct completion done_down; + char __data[0]; }; -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; +struct trace_event_raw_mm_khugepaged_collapse_file { + struct trace_entry ent; + struct mm_struct *mm; + unsigned long hpfn; + unsigned long index; + unsigned long addr; + bool is_shmem; + u32 __data_loc_filename; + int nr; + int result; + char __data[0]; }; -enum cpu_mitigations { - CPU_MITIGATIONS_OFF = 0, - CPU_MITIGATIONS_AUTO = 1, - CPU_MITIGATIONS_AUTO_NOSMT = 2, +struct trace_event_data_offsets_mm_khugepaged_scan_file { + u32 filename; +}; + +struct trace_event_data_offsets_mm_khugepaged_collapse_file { + u32 filename; +}; + +struct trace_event_data_offsets_mm_khugepaged_scan_pmd {}; + +struct trace_event_data_offsets_mm_collapse_huge_page {}; + +struct trace_event_data_offsets_mm_collapse_huge_page_isolate {}; + +struct trace_event_data_offsets_mm_collapse_huge_page_swapin {}; + +struct proc_fs_opts { + int flag; + const char *str; +}; + +struct proc_mounts { + struct mnt_namespace *ns; + struct path root; + int (*show)(struct seq_file *, struct vfsmount *); + struct mount cursor; +}; + +struct iomap_dio { + struct kiocb *iocb; + const struct iomap_dio_ops *dops; + loff_t i_size; + loff_t size; + atomic_t ref; + unsigned int flags; + int error; + size_t done_before; + bool wait_for_completion; + union { + struct { + struct iov_iter *iter; + struct task_struct *waiter; + } submit; + struct { + struct work_struct work; + } aio; + }; }; -enum cpuhp_sync_state { - SYNC_STATE_DEAD = 0, - SYNC_STATE_KICKED = 1, - SYNC_STATE_SHOULD_DIE = 2, - SYNC_STATE_ALIVE = 3, - SYNC_STATE_SHOULD_ONLINE = 4, - SYNC_STATE_ONLINE = 5, +enum { + BLOCK_BITMAP = 0, + INODE_BITMAP = 1, + INODE_TABLE = 2, + GROUP_TABLE_COUNT = 3, }; -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 ext4_rcu_ptr { + struct callback_head rcu; + void *ptr; }; -struct trace_event_raw_cpuhp_enter { - struct trace_entry ent; - unsigned int cpu; - int target; - int idx; - void *fun; - char __data[0]; +struct ext4_new_group_data { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 mdata_blocks; + __u32 free_clusters_count; }; -struct trace_event_raw_cpuhp_multi_enter { - struct trace_entry ent; - unsigned int cpu; - int target; - int idx; - void *fun; - char __data[0]; +struct ext4_new_flex_group_data { + struct ext4_new_group_data *groups; + __u16 *bg_flags; + ext4_group_t count; }; -struct trace_event_raw_cpuhp_exit { - struct trace_entry ent; - unsigned int cpu; - int state; - int idx; - int ret; - char __data[0]; +enum shrink_type { + SHRINK_DESTROY = 0, + SHRINK_BUSY_STOP = 1, + SHRINK_BUSY_SKIP = 2, }; -struct trace_event_data_offsets_cpuhp_enter {}; - -struct trace_event_data_offsets_cpuhp_multi_enter {}; - -struct trace_event_data_offsets_cpuhp_exit {}; - -struct irqchip_fwid { - struct fwnode_handle fwnode; - unsigned int type; - char *name; - phys_addr_t *pa; +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, }; -struct tk_fast { - seqcount_latch_t seq; - struct tk_read_base base[2]; +enum createmode4 { + NFS4_CREATE_UNCHECKED = 0, + NFS4_CREATE_GUARDED = 1, + NFS4_CREATE_EXCLUSIVE = 2, + NFS4_CREATE_EXCLUSIVE4_1 = 3, }; -enum timekeeping_adv_mode { - TK_ADV_TICK = 0, - TK_ADV_FREQ = 1, +enum layoutdriver_policy_flags { + PNFS_LAYOUTRET_ON_SETATTR = 1, + PNFS_LAYOUTRET_ON_ERROR = 2, + PNFS_READ_WHOLE_PAGE = 4, + PNFS_LAYOUTGET_ON_OPEN = 8, }; -struct ktime_timestamps { - u64 mono; - u64 boot; - u64 real; +struct nfs4_layoutreturn { + struct nfs4_layoutreturn_args args; + struct nfs4_layoutreturn_res res; + const struct cred *cred; + struct nfs_client *clp; + struct inode *inode; + int rpc_status; + struct nfs4_xdr_opaque_data ld_private; }; -enum error_detector { - ERROR_DETECTOR_KFENCE = 0, - ERROR_DETECTOR_KASAN = 1, - ERROR_DETECTOR_WARN = 2, +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; }; -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 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 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 nfs4_exception { + struct nfs4_state *state; + struct inode *inode; + nfs4_stateid *stateid; + long timeout; + unsigned short retrans; + unsigned char task_is_privileged: 1; + unsigned char delay: 1; + unsigned char recovering: 1; + unsigned char retry: 1; + bool interruptible; }; -struct bpf_lru_list { - struct list_head lists[3]; - unsigned int counts[2]; - struct list_head *next_inactive_rotation; - raw_spinlock_t lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct stateowner_id { + __u64 create_time; + __u32 uniquifier; }; -struct bpf_lru_locallist { - struct list_head lists[2]; - u16 next_steal; - raw_spinlock_t lock; +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 bpf_lru_node { - struct list_head list; - u16 cpu; - u8 type; - u8 ref; +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 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 nfs_open_confirmargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + nfs4_stateid *stateid; + struct nfs_seqid *seqid; }; -typedef bool (*del_from_htab_func)(void *, struct bpf_lru_node *); - -struct bpf_lru { - union { - struct bpf_common_lru common_lru; - struct bpf_lru_list __attribute__((btf_type_tag("percpu"))) *percpu_lru; - }; - del_from_htab_func del_from_htab; - void *del_arg; - unsigned int hash_offset; - unsigned int nr_scans; - bool percpu; - long: 64; - long: 64; - long: 64; - long: 64; +struct nfs_open_confirmres { + struct nfs4_sequence_res seq_res; + nfs4_stateid stateid; + struct nfs_seqid *seqid; }; -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 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; }; -enum bpf_cgroup_storage_type { - BPF_CGROUP_STORAGE_SHARED = 0, - BPF_CGROUP_STORAGE_PERCPU = 1, - __BPF_CGROUP_STORAGE_MAX = 2, +struct nfs42_layoutstat_res { + struct nfs4_sequence_res seq_res; + int num_dev; + int rpc_status; }; -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 nfs42_layoutstat_data { + struct inode *inode; + struct nfs42_layoutstat_args args; + struct nfs42_layoutstat_res res; }; -struct mnt_idmap { - struct user_namespace *owner; - refcount_t count; +struct sbq_wait { + struct sbitmap_queue *sbq; + struct wait_queue_entry wait; }; -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 bt_iter_data { + struct blk_mq_hw_ctx *hctx; + struct request_queue *q; + busy_tag_iter_fn *fn; + void *data; + bool reserved; }; -struct signalfd_ctx { - sigset_t sigmask; +struct bt_tags_iter_data { + struct blk_mq_tags *tags; + busy_tag_iter_fn *fn; + void *data; + unsigned int flags; }; -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, -} __attribute__((mode(byte))); - -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_kyber_latency)(void *, dev_t, const char *, const char *, unsigned int, unsigned int, unsigned int, unsigned int); -typedef void (*btf_trace_netfs_sreq)(void *, struct netfs_io_subrequest *, enum netfs_sreq_trace); +typedef void (*btf_trace_kyber_adjust)(void *, dev_t, const char *, unsigned int); -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, -} __attribute__((mode(byte))); +typedef void (*btf_trace_kyber_throttled)(void *, dev_t, const char *); -typedef void (*btf_trace_netfs_failure)(void *, struct netfs_io_request *, struct netfs_io_subrequest *, int, enum netfs_failure); +enum { + KYBER_READ = 0, + KYBER_WRITE = 1, + KYBER_DISCARD = 2, + KYBER_OTHER = 3, + KYBER_NUM_DOMAINS = 4, +}; -typedef void (*btf_trace_netfs_rreq_ref)(void *, unsigned int, int, enum netfs_rreq_ref_trace); +enum { + KYBER_TOTAL_LATENCY = 0, + KYBER_IO_LATENCY = 1, +}; -typedef void (*btf_trace_netfs_sreq_ref)(void *, unsigned int, unsigned int, int, enum netfs_sreq_ref_trace); +enum { + KYBER_LATENCY_SHIFT = 2, + KYBER_GOOD_BUCKETS = 4, + KYBER_LATENCY_BUCKETS = 8, +}; -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]; +enum { + KYBER_ASYNC_PERCENT = 75, }; -struct trace_event_raw_netfs_rreq { +struct trace_event_raw_kyber_latency { struct trace_entry ent; - unsigned int rreq; - unsigned int flags; - enum netfs_io_origin origin; - enum netfs_rreq_trace what; + 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_netfs_sreq { +struct trace_event_raw_kyber_adjust { 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; + dev_t dev; + char domain[16]; + unsigned int depth; char __data[0]; }; -struct trace_event_raw_netfs_failure { +struct trace_event_raw_kyber_throttled { 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; + dev_t dev; + char domain[16]; 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 kyber_cpu_latency { + atomic_t buckets[48]; }; -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 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 trace_event_data_offsets_netfs_read {}; +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 trace_event_data_offsets_netfs_rreq {}; +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 trace_event_data_offsets_netfs_sreq {}; +struct flush_kcq_data { + struct kyber_hctx_data *khd; + unsigned int sched_domain; + struct list_head *list; +}; -struct trace_event_data_offsets_netfs_failure {}; +struct trace_event_data_offsets_kyber_latency {}; -struct trace_event_data_offsets_netfs_rreq_ref {}; +struct trace_event_data_offsets_kyber_adjust {}; -struct trace_event_data_offsets_netfs_sreq_ref {}; +struct trace_event_data_offsets_kyber_throttled {}; -enum ramfs_param { - Opt_mode___5 = 0, +struct io_cancel { + struct file *file; + u64 addr; + u32 flags; + s32 fd; + u8 opcode; }; -struct ramfs_mount_opts { - umode_t mode; +struct io_cancel_data { + struct io_ring_ctx *ctx; + union { + u64 data; + struct file *file; + }; + u8 opcode; + u32 flags; + int seq; }; -struct ramfs_fs_info { - struct ramfs_mount_opts mount_opts; +struct io_uring_sync_cancel_reg { + __u64 addr; + __s32 fd; + __u32 flags; + struct __kernel_timespec timeout; + __u8 opcode; + __u8 pad[7]; + __u64 pad2[3]; }; -struct getdents_callback { - struct dir_context ctx; - char *name; - u64 ino; - int found; - int sequence; +struct genradix_node { + union { + struct genradix_node *children[512]; + u8 data[4096]; + }; }; -enum { - NSMPROC_NULL = 0, - NSMPROC_STAT = 1, - NSMPROC_MON = 2, - NSMPROC_UNMON = 3, - NSMPROC_UNMON_ALL = 4, - NSMPROC_SIMU_CRASH = 5, - NSMPROC_NOTIFY = 6, +struct genradix_iter { + size_t offset; + size_t pos; }; -struct nsm_args { - struct nsm_private *priv; - u32 prog; - u32 vers; - u32 proc; - char *mon_name; - const char *nodename; +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, }; -struct nsm_res { - u32 status; - u32 state; +struct blake2s_state { + u32 h[8]; + u32 t[2]; + u32 f[2]; + u8 buf[64]; + unsigned int buflen; + unsigned int outlen; }; -struct ipc_params; - -struct ipc_ops { - int (*getnew)(struct ipc_namespace *, struct ipc_params *); - int (*associate)(struct kern_ipc_perm *, int); - int (*more_checks)(struct kern_ipc_perm *, struct ipc_params *); +struct 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 ipc_params { - key_t key; - int flg; - union { - size_t size; - int nsems; - } u; +struct genpool_data_align { + int align; }; -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 genpool_data_fixed { + unsigned long offset; }; -struct shm_file_data { - int id; - struct ipc_namespace *ns; - struct file *file; - const struct vm_operations_struct *vm_ops; +struct dprc_cmd_open { + __le32 container_id; }; -typedef unsigned int __kernel_uid_t; - -typedef unsigned int __kernel_gid_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 dprc_cmd_reset_container { + __le32 child_container_id; + __le32 options; }; -typedef int __kernel_ipc_pid_t; - -struct shmid_ds { - struct ipc_perm shm_perm; - int shm_segsz; - __kernel_old_time_t shm_atime; - __kernel_old_time_t shm_dtime; - __kernel_old_time_t shm_ctime; - __kernel_ipc_pid_t shm_cpid; - __kernel_ipc_pid_t shm_lpid; - unsigned short shm_nattch; - unsigned short shm_unused; - void *shm_unused2; - void *shm_unused3; +struct dprc_cmd_set_irq { + __le32 irq_val; + u8 irq_index; + u8 pad[3]; + __le64 irq_addr; + __le32 irq_num; }; -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 dprc_cmd_set_irq_enable { + u8 enable; + u8 pad[3]; + u8 irq_index; }; -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 dprc_cmd_set_irq_mask { + __le32 mask; + u8 irq_index; }; -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 dprc_cmd_get_irq_status { + __le32 status; + u8 irq_index; }; -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 dprc_rsp_get_irq_status { + __le32 status; }; -struct shminfo { - int shmmax; - int shmmin; - int shmmni; - int shmseg; - int shmall; +struct dprc_cmd_clear_irq_status { + __le32 status; + u8 irq_index; }; -typedef s32 compat_key_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; +struct dprc_rsp_get_attributes { + __le32 container_id; + __le32 icid; + __le32 options; + __le32 portal_id; }; -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 dprc_rsp_get_obj_count { + __le32 pad; + __le32 obj_count; }; -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; +struct dprc_cmd_get_obj { + __le32 obj_index; }; -typedef u16 compat_ipc_pid_t; - -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 dprc_rsp_get_obj { + __le32 pad0; + __le32 id; + __le16 vendor; + u8 irq_count; + u8 region_count; + __le32 state; + __le16 version_major; + __le16 version_minor; + __le16 flags; + __le16 pad1; + u8 type[16]; + u8 label[16]; }; -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 dprc_cmd_set_obj_irq { + __le32 irq_val; + u8 irq_index; + u8 pad[3]; + __le64 irq_addr; + __le32 irq_num; + __le32 obj_id; + u8 obj_type[16]; }; -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 dprc_cmd_get_obj_region { + __le32 obj_id; + __le16 pad0; + u8 region_index; + u8 pad1; + __le64 pad2[2]; + u8 obj_type[16]; }; -struct internal_state { - int dummy; +struct dprc_rsp_get_obj_region { + __le64 pad0; + __le64 base_offset; + __le32 size; + u8 type; + u8 pad2[3]; + __le32 flags; + __le32 pad3; + __le64 base_addr; }; -struct deflate_ctx { - struct z_stream_s comp_stream; - struct z_stream_s decomp_stream; +struct dprc_cmd_get_connection { + __le32 ep1_id; + __le16 ep1_interface_id; + u8 pad[2]; + u8 ep1_type[16]; }; -enum { - IOPRIO_CLASS_NONE = 0, - IOPRIO_CLASS_RT = 1, - IOPRIO_CLASS_BE = 2, - IOPRIO_CLASS_IDLE = 3, - IOPRIO_CLASS_INVALID = 7, +struct dprc_rsp_get_connection { + __le64 pad[3]; + __le32 ep2_id; + __le16 ep2_interface_id; + __le16 pad1; + u8 ep2_type[16]; + __le32 state; }; -enum { - IOPRIO_WHO_PROCESS = 1, - IOPRIO_WHO_PGRP = 2, - IOPRIO_WHO_USER = 3, +struct mc_rsp_api_ver { + __le16 major_ver; + __le16 minor_ver; }; -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 mc_rsp_create { + __le32 object_id; }; -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; +struct phy_g12a_mipi_dphy_analog_priv { + struct phy *phy; + struct regmap *regmap; + struct phy_configure_opts_mipi_dphy config; }; -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; +struct rcar_gen3_phy_drv_data { + const struct phy_ops *phy_usb2_ops; + bool no_adp_ctrl; }; -typedef struct ct_data_s ct_data; - -struct static_tree_desc_s; +enum rcar_gen3_phy_index { + PHY_INDEX_BOTH_HC = 0, + PHY_INDEX_OHCI = 1, + PHY_INDEX_EHCI = 2, + PHY_INDEX_HSUSB = 3, +}; -typedef struct static_tree_desc_s static_tree_desc; +struct rcar_gen3_chan; -struct tree_desc_s { - ct_data *dyn_tree; - int max_code; - static_tree_desc *stat_desc; +struct rcar_gen3_phy___2 { + struct phy *phy; + struct rcar_gen3_chan *ch; + u32 int_enable_bits; + bool initialized; + bool otg_initialized; + bool powered; }; -typedef unsigned char uch; +struct rcar_gen3_chan { + void *base; + struct device *dev; + struct extcon_dev *extcon; + struct rcar_gen3_phy___2 rphys[4]; + struct regulator *vbus; + struct work_struct work; + struct mutex lock; + enum usb_dr_mode dr_mode; + int irq; + u32 obint_enable_bits; + bool extcon_host; + bool is_otg_channel; + bool uses_otg_pins; + bool soc_no_adp_ctrl; +}; -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 pinctrl_dt_map { + struct list_head node; + struct pinctrl_dev *pctldev; + struct pinctrl_map *map; + unsigned int num_maps; }; -struct static_tree_desc_s { - const ct_data *static_tree; - const int *extra_bits; - int extra_base; - int elems; - int max_length; +enum pmic_gpio_func_index { + PMIC_GPIO_FUNC_INDEX_NORMAL = 0, + PMIC_GPIO_FUNC_INDEX_PAIRED = 1, + PMIC_GPIO_FUNC_INDEX_FUNC1 = 2, + PMIC_GPIO_FUNC_INDEX_FUNC2 = 3, + PMIC_GPIO_FUNC_INDEX_FUNC3 = 4, + PMIC_GPIO_FUNC_INDEX_FUNC4 = 5, + PMIC_GPIO_FUNC_INDEX_DTEST1 = 6, + PMIC_GPIO_FUNC_INDEX_DTEST2 = 7, + PMIC_GPIO_FUNC_INDEX_DTEST3 = 8, + PMIC_GPIO_FUNC_INDEX_DTEST4 = 9, }; -struct deflate_workspace { - deflate_state deflate_memory; - Byte *window_memory; - Pos *prev_memory; - Pos *head_memory; - char *overlay_memory; +struct pmic_gpio_state { + struct device *dev; + struct regmap *map; + struct pinctrl_dev *ctrl; + struct gpio_chip chip; + u8 usid; + u8 pid_base; }; -typedef struct deflate_workspace deflate_workspace; +struct pmic_gpio_pad { + u16 base; + bool is_enabled; + bool out_value; + bool have_buffer; + bool output_enabled; + bool input_enabled; + bool analog_pass; + bool lv_mv_type; + unsigned int num_sources; + unsigned int power_source; + unsigned int buffer_type; + unsigned int pullup; + unsigned int strength; + unsigned int function; + unsigned int atest; + unsigned int dtest_buffer; +}; -typedef enum { - ZSTD_dlm_byCopy = 0, - ZSTD_dlm_byRef = 1, -} ZSTD_dictLoadMethod_e; +struct tegra_xusb_padctl_function; -typedef enum { - ZSTD_dct_auto = 0, - ZSTD_dct_rawContent = 1, - ZSTD_dct_fullDict = 2, -} ZSTD_dictContentType_e; +struct tegra_xusb_padctl_lane; -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 tegra_xusb_padctl_soc___2 { + const struct pinctrl_pin_desc *pins; + unsigned int num_pins; + const struct tegra_xusb_padctl_function *functions; + unsigned int num_functions; + const struct tegra_xusb_padctl_lane *lanes; + unsigned int num_lanes; +}; -typedef ZSTD_ErrorCode ERR_enum; +struct tegra_xusb_padctl_function { + const char *name; + const char * const *groups; + unsigned int num_groups; +}; -struct acpi_madt_generic_translator { - struct acpi_subtable_header header; - u16 reserved; - u32 translation_id; - u64 base_address; - u32 reserved2; -} __attribute__((packed)); +struct tegra_xusb_padctl_lane { + const char *name; + unsigned int offset; + unsigned int shift; + unsigned int mask; + unsigned int iddq; + const unsigned int *funcs; + unsigned int num_funcs; +}; -struct ns2_phy_data; +enum tegra_xusb_padctl_param { + TEGRA_XUSB_PADCTL_IDDQ = 0, +}; -struct ns2_phy_driver { - void *icfgdrd_regs; - void *idmdrd_rst_ctrl; - void *crmu_usb2_ctrl; - void *usb2h_strap_reg; - struct ns2_phy_data *data; - struct extcon_dev *edev; - struct gpio_desc *vbus_gpiod; - struct gpio_desc *id_gpiod; - int id_irq; - int vbus_irq; - unsigned long debounce_jiffies; - struct delayed_work wq_extcon; +struct tegra_xusb_padctl_property { + const char *name; + enum tegra_xusb_padctl_param param; }; -struct ns2_phy_data { - struct ns2_phy_driver *driver; - struct phy *phy; - int new_state; +struct tegra_xusb_padctl___2 { + struct device *dev; + void *regs; + struct mutex lock; + struct reset_control *rst; + const struct tegra_xusb_padctl_soc___2 *soc; + struct pinctrl_dev *pinctrl; + struct pinctrl_desc desc; + struct phy_provider *provider; + struct phy *phys[2]; + unsigned int enable; }; -struct pinctrl_maps { - struct list_head node; - const struct pinctrl_map *maps; - unsigned int num_maps; +struct xgene_gpio { + struct gpio_chip chip; + void *base; + spinlock_t lock; + u32 set_dr_val[3]; }; -struct pctldev; +struct xgene_msi_group; -enum ioctrl_regs___3 { - POC0 = 0, - POC1 = 1, - POC3 = 2, - POC4 = 3, - POC5 = 4, - POC6 = 5, - POC7 = 6, - POC8 = 7, +struct xgene_msi { + struct device_node *node; + struct irq_domain *inner_domain; + struct irq_domain *msi_domain; + u64 msi_addr; + void *msi_regs; + unsigned long *bitmap; + struct mutex bitmap_lock; + struct xgene_msi_group *msi_groups; + int num_cpus; }; -enum { - GP_LAST___2 = 269, - PIN_VDDQ_AVB0___2 = 270, - PIN_VDDQ_AVB1 = 271, - PIN_VDDQ_AVB2 = 272, - PIN_VDDQ_TSN0 = 273, +struct xgene_msi_group { + struct xgene_msi *msi; + int gic_irq; + u32 msi_grp; }; -struct gpio_get_config { - u32 gpio; - u32 direction; - u32 polarity; - u32 term_en; - u32 term_pull_up; +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, }; -struct rpi_exp_gpio { - struct gpio_chip gc; - struct rpi_firmware *fw; +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, }; -struct gpio_set_config { - u32 gpio; - u32 direction; - u32 polarity; - u32 term_en; - u32 term_pull_up; - u32 state; +enum hdmi_scan_mode { + HDMI_SCAN_MODE_NONE = 0, + HDMI_SCAN_MODE_OVERSCAN = 1, + HDMI_SCAN_MODE_UNDERSCAN = 2, + HDMI_SCAN_MODE_RESERVED = 3, }; -struct gpio_get_set_state { - u32 gpio; - u32 state; +enum hdmi_colorimetry { + HDMI_COLORIMETRY_NONE = 0, + HDMI_COLORIMETRY_ITU_601 = 1, + HDMI_COLORIMETRY_ITU_709 = 2, + HDMI_COLORIMETRY_EXTENDED = 3, }; -struct visconti_pcie { - struct dw_pcie pci; - void *ulreg_base; - void *smu_base; - void *mpu_base; - struct clk *refclk; - struct clk *coreclk; - struct clk *auxclk; +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, }; -struct ipmi_dmi_info { - enum si_type si_type; - unsigned int space; - unsigned long addr; - u8 slave_addr; - struct ipmi_dmi_info *next; +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, }; -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; +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, }; -struct clk_multiplier { - struct clk_hw hw; - void *reg; - u8 shift; - u8 width; - u8 flags; - spinlock_t *lock; +enum hdmi_quantization_range { + HDMI_QUANTIZATION_RANGE_DEFAULT = 0, + HDMI_QUANTIZATION_RANGE_LIMITED = 1, + HDMI_QUANTIZATION_RANGE_FULL = 2, + HDMI_QUANTIZATION_RANGE_RESERVED = 3, }; -struct clockgen_muxinfo; - -struct clockgen; +enum hdmi_nups { + HDMI_NUPS_UNKNOWN = 0, + HDMI_NUPS_HORIZONTAL = 1, + HDMI_NUPS_VERTICAL = 2, + HDMI_NUPS_BOTH = 3, +}; -struct clockgen_chipinfo { - const char *compat; - const char *guts_compat; - const struct clockgen_muxinfo *cmux_groups[2]; - const struct clockgen_muxinfo *hwaccel[5]; - void (*init_periph)(struct clockgen *); - int cmux_to_group[9]; - u32 pll_mask; - u32 flags; +enum hdmi_ycc_quantization_range { + HDMI_YCC_QUANTIZATION_RANGE_LIMITED = 0, + HDMI_YCC_QUANTIZATION_RANGE_FULL = 1, }; -struct clockgen_pll_div { - struct clk *clk; - char name[32]; +enum hdmi_content_type { + HDMI_CONTENT_TYPE_GRAPHICS = 0, + HDMI_CONTENT_TYPE_PHOTO = 1, + HDMI_CONTENT_TYPE_CINEMA = 2, + HDMI_CONTENT_TYPE_GAME = 3, }; -struct clockgen_pll { - struct clockgen_pll_div div[32]; +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, }; -struct ccsr_guts; +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, +}; -struct clockgen { - struct device_node *node; - void *regs; - struct clockgen_chipinfo info; - struct clk *sysclk; - struct clk *coreclk; - struct clockgen_pll pll[6]; - struct clk *cmux[8]; - struct clk *hwaccel[5]; - struct clk *fman[2]; - struct ccsr_guts *guts; +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, }; -struct clockgen_sourceinfo { - u32 flags; - int pll; - int div; +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, }; -struct clockgen_muxinfo { - struct clockgen_sourceinfo clksel[16]; +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, }; -struct ccsr_guts { - u32 porpllsr; - u32 porbmsr; - u32 porimpscr; - u32 pordevsr; - u32 pordbgmsr; - u32 pordevsr2; - u8 res018[8]; - u32 porcir; - u8 res024[12]; - u32 gpiocr; - u8 res034[12]; - u32 gpoutdr; - u8 res044[12]; - u32 gpindr; - u8 res054[12]; - u32 pmuxcr; - u32 pmuxcr2; - u32 dmuxcr; - u8 res06c[4]; - u32 devdisr; - u32 devdisr2; - u8 res078[4]; - u32 pmjcr; - u32 powmgtcsr; - u32 pmrccr; - u32 pmpdccr; - u32 pmcdr; - u32 mcpsumr; - u32 rstrscr; - u32 ectrstcr; - u32 autorstsr; - u32 pvr; - u32 svr; - u8 res0a8[8]; - u32 rstcr; - u8 res0b4[12]; - u32 iovselsr; - u8 res0c4[60]; - u32 rcwsr[16]; - u8 res140[228]; - u32 iodelay1; - u32 iodelay2; - u8 res22c[984]; - u32 pamubypenr; - u8 res608[504]; - u32 clkdvdr; - u8 res804[252]; - u32 ircr; - u8 res904[4]; - u32 dmacr; - u8 res90c[8]; - u32 elbccr; - u8 res918[520]; - u32 ddr1clkdr; - u32 ddr2clkdr; - u32 ddrclkdr; - u8 resb2c[724]; - u32 clkocr; - u8 rese04[12]; - u32 ddrdllcr; - u8 rese14[12]; - u32 lbcdllcr; - u32 cpfor; - u8 rese28[220]; - u32 srds1cr0; - u32 srds1cr1; - u8 resf0c[32]; - u32 itcr; - u8 resf30[16]; - u32 srds2cr0; - u32 srds2cr1; +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, }; -struct mux_hwclock { - struct clk_hw hw; - struct clockgen *cg; - const struct clockgen_muxinfo *info; - u32 *reg; - u8 parent_to_clksel[16]; - s8 clksel_to_parent[16]; - int num_parents; +enum hdmi_metadata_type { + HDMI_STATIC_METADATA_TYPE1 = 0, }; -struct hi6220_divider_clock { - unsigned int id; - const char *name; - const char *parent_name; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u32 mask_bit; - const char *alias; +struct hdmi_any_infoframe { + enum hdmi_infoframe_type type; + unsigned char version; + unsigned char length; }; -struct rockchip_clk_pll { - struct clk_hw hw; - struct clk_mux pll_mux; - const struct clk_ops *pll_mux_ops; - struct notifier_block clk_nb; - void *reg_base; - int lock_offset; - unsigned int lock_shift; - enum rockchip_pll_type type; - u8 flags; - const struct rockchip_pll_rate_table *rate_table; - unsigned int rate_count; - spinlock_t *lock; - struct rockchip_clk_provider *ctx; +struct hdmi_avi_infoframe { + enum hdmi_infoframe_type type; + unsigned char version; + unsigned char length; + bool itc; + unsigned char pixel_repeat; + 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; + 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 short top_bar; + unsigned short bottom_bar; + unsigned short left_bar; + unsigned short right_bar; }; -struct socfpga_periph_clk { - struct clk_gate hw; - char *parent_name; - u32 fixed_div; - void *div_reg; - void *bypass_reg; - u32 width; - u32 shift; - u32 bypass_shift; +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 stratix10_perip_c_clock { - unsigned int id; - const char *name; - const char *parent_name; - const struct clk_parent_data *parent_data; - u8 num_parents; - unsigned long flags; - unsigned long offset; +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 n5x_perip_c_clock { - unsigned int id; - const char *name; - const char *parent_name; - const char * const *parent_names; - u8 num_parents; - unsigned long flags; - unsigned long offset; - unsigned long shift; +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; }; -struct stratix10_perip_cnt_clock { - unsigned int id; - const char *name; - const char *parent_name; - const struct clk_parent_data *parent_data; - u8 num_parents; - unsigned long flags; - unsigned long offset; - u8 fixed_divider; - unsigned long bypass_reg; - unsigned long bypass_shift; +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; }; -enum { - PLL_LOCK_DONE = 0, - PLL_DIV_S = 1, - PLL_MOD_EN = 2, - PLL_SDM_EN = 3, - PLL_REFIN = 4, - PLL_IBIAS = 5, - PLL_N = 6, - PLL_NINT = 7, - PLL_KINT = 8, - PLL_PREDIV = 9, - PLL_POSTDIV = 10, - PLL_FACT_MAX = 11, +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 reg_cfg { - u32 val; - u32 msk; +struct dp_sdp_header { + u8 HB0; + u8 HB1; + u8 HB2; + u8 HB3; }; -struct uniphier_clk_gate { - struct clk_hw hw; - struct regmap *regmap; - unsigned int reg; - unsigned int bit; +struct dp_sdp { + struct dp_sdp_header sdp_header; + u8 db[32]; }; -struct hidma_mgmt_dev; +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 hidma_mgmt_fileinfo { - char *name; - int mode; - int (*get)(struct hidma_mgmt_dev *); - int (*set)(struct hidma_mgmt_dev *, u64); +enum { + KPARAM_MEM = 0, + KPARAM_WIDTH = 1, + KPARAM_HEIGHT = 2, + KPARAM_CNT___2 = 3, }; -struct hidma_mgmt_dev { - u8 hw_version_major; - u8 hw_version_minor; - u32 max_wr_xactions; - u32 max_rd_xactions; - u32 max_write_request; - u32 max_read_request; - u32 dma_channels; - u32 chreset_timeout_cycles; - u32 hw_version; - u32 *priority; - u32 *weight; - void *virtaddr; - resource_size_t addrsize; - struct kobject **chroots; - struct platform_device *pdev; +struct xenfb_update { + uint8_t type; + int32_t x; + int32_t y; + int32_t width; + int32_t height; }; -struct hidma_chan_attr { - struct hidma_mgmt_dev *mdev; - int index; - struct kobj_attribute attr; +struct xenfb_resize { + uint8_t type; + int32_t width; + int32_t height; + int32_t stride; + int32_t depth; + int32_t offset; }; -struct qm_addr { - void *ce; - __be32 *ce_be; - void *ci; +union xenfb_out_event { + uint8_t type; + struct xenfb_update update; + struct xenfb_resize resize; + char pad[40]; }; -struct qm_eqcr_entry; +struct xenfb_page; -struct qm_eqcr { - struct qm_eqcr_entry *ring; - struct qm_eqcr_entry *cursor; - u8 ci; - u8 available; - u8 ithresh; - u8 vbit; +struct xenfb_info { + unsigned char *fb; + struct fb_info *fb_info; + int x1; + int y1; + int x2; + int y2; + spinlock_t dirty_lock; + int nr_pages; + int irq; + struct xenfb_page *page; + unsigned long *gfns; + int update_wanted; + int feature_resize; + struct xenfb_resize resize; + int resize_dpy; + spinlock_t resize_lock; + struct xenbus_device *xbdev; }; -struct qm_dqrr { - const struct qm_dqrr_entry *ring; - const struct qm_dqrr_entry *cursor; - u8 pi; - u8 ci; - u8 fill; - u8 ithresh; - u8 vbit; +struct xenfb_page { + uint32_t in_cons; + uint32_t in_prod; + uint32_t out_cons; + uint32_t out_prod; + int32_t width; + int32_t height; + uint32_t line_length; + uint32_t mem_length; + uint8_t depth; + unsigned long pd[256]; }; -struct qm_mr { - union qm_mr_entry *ring; - union qm_mr_entry *cursor; - u8 pi; - u8 ci; - u8 fill; - u8 ithresh; - u8 vbit; +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, }; -union qm_mc_command; +typedef u32 acpi_name; -union qm_mc_result; +struct acpi_reg_walk_info { + u32 function; + u32 reg_run_count; + acpi_adr_space_type space_id; +}; -struct qm_mc { - union qm_mc_command *cr; - union qm_mc_result *rr; - u8 rridx; - u8 vbit; +struct acpi_pcc_info { + u8 subspace_id; + u16 length; + u8 *internal_buffer; }; -struct qm_portal { - struct qm_addr addr; - struct qm_eqcr eqcr; - struct qm_dqrr dqrr; - struct qm_mr mr; - struct qm_mc mc; - long: 64; +struct acpi_ffh_info { + u64 offset; + u64 length; }; -struct qman_portal { - struct qm_portal p; - unsigned long bits; - unsigned long irq_sources; - u32 use_eqcr_ci_stashing; - struct qman_fq *vdqcr_owned; - u32 sdqcr; - const struct qm_portal_config *config; - struct qman_cgrs *cgrs; - struct list_head cgr_cbs; - spinlock_t cgr_lock; - struct work_struct congestion_work; - struct work_struct mr_work; - char irqname[16]; - long: 64; - long: 64; - long: 64; - long: 64; +enum acpi_return_package_types { + ACPI_PTYPE1_FIXED = 1, + ACPI_PTYPE1_VAR = 2, + ACPI_PTYPE1_OPTION = 3, + ACPI_PTYPE2 = 4, + ACPI_PTYPE2_COUNT = 5, + ACPI_PTYPE2_PKG_COUNT = 6, + ACPI_PTYPE2_FIXED = 7, + ACPI_PTYPE2_MIN = 8, + ACPI_PTYPE2_REV_FIXED = 9, + ACPI_PTYPE2_FIX_VAR = 10, + ACPI_PTYPE2_VAR_VAR = 11, + ACPI_PTYPE2_UUID_PAIR = 12, + ACPI_PTYPE_CUSTOM = 13, }; -struct qm_eqcr_entry { - u8 _ncw_verb; - u8 dca; - __be16 seqnum; - u8 __reserved[4]; - __be32 fqid; - __be32 tag; - struct qm_fd fd; - u8 __reserved3[32]; +struct container_dev { + struct device dev; + int (*offline)(struct container_dev *); }; -struct qm_mcc_fq { - u8 _ncw_verb; - u8 __reserved1[3]; - __be32 fqid; - u8 __reserved2[56]; +struct owl_factor { + struct owl_factor_hw factor_hw; + struct owl_clk_common common; }; -struct qm_mcc_cgr { - u8 _ncw_verb; - u8 __reserved1[30]; - u8 cgid; - u8 __reserved2[32]; +struct hisi_reset_controller { + spinlock_t lock; + void *membase; + struct reset_controller_dev rcdev; }; -union qm_mc_command { - struct { - u8 _ncw_verb; - u8 __reserved[63]; - }; - struct qm_mcc_initfq initfq; - struct qm_mcc_initcgr initcgr; - struct qm_mcc_fq fq; - struct qm_mcc_cgr cgr; +struct mtk_ref2usb_tx { + struct clk_hw hw; + void *base_addr; }; -struct qm_mcr_queryfq { - u8 verb; - u8 result; - u8 __reserved1[8]; - struct qm_fqd fqd; - u8 __reserved2[30]; +struct ma35d1_clk_pll { + struct clk_hw hw; + u32 id; + u8 mode; + void *ctl0_base; + void *ctl1_base; + void *ctl2_base; }; -struct qm_mcr_alterfq { - u8 verb; - u8 result; - u8 fqs; - u8 __reserved1[61]; +struct pll_freq_tbl; + +struct clk_pll { + u32 l_reg; + u32 m_reg; + u32 n_reg; + u32 config_reg; + u32 mode_reg; + u32 status_reg; + u8 status_bit; + u8 post_div_width; + u8 post_div_shift; + const struct pll_freq_tbl *freq_tbl; + struct clk_regmap clkr; }; -struct qm_mcr_querycgr { - u8 verb; - u8 result; - u16 __reserved1; - struct __qm_mc_cgr cgr; - u8 __reserved2[6]; - u8 i_bcnt_hi; - __be32 i_bcnt_lo; - u8 __reserved3[3]; - u8 a_bcnt_hi; - __be32 a_bcnt_lo; - __be32 cscn_targ_swp[4]; +struct pll_freq_tbl { + unsigned long freq; + u16 l; + u16 m; + u16 n; + u32 ibits; }; -struct qm_mcr_querycongestion { - u8 verb; - u8 result; - u8 __reserved[30]; - struct __qm_mcr_querycongestion state; +enum clk_ids___6 { + LAST_DT_CORE_CLK___6 = 44, + CLK_EXTAL___6 = 45, + CLK_EXTALR___6 = 46, + CLK_MAIN___6 = 47, + CLK_PLL0___4 = 48, + CLK_PLL1___6 = 49, + CLK_PLL3___5 = 50, + CLK_PLL4___4 = 51, + CLK_PLL1_DIV2___6 = 52, + CLK_PLL1_DIV4___4 = 53, + CLK_S0___4 = 54, + CLK_S1___4 = 55, + CLK_S2___3 = 56, + CLK_S3___4 = 57, + CLK_SDSRC___5 = 58, + CLK_RPCSRC___5 = 59, + CLK_RINT___3 = 60, + MOD_CLK_BASE___6 = 61, }; -struct qm_mcr_querywq { - u8 verb; - u8 result; - u16 channel_wq; - u8 __reserved[28]; - u32 wq_len[8]; +struct rockchip_mmc_clock { + struct clk_hw hw; + void *reg; + int id; + int shift; + int cached_phase; + struct notifier_block clk_rate_change_nb; }; -struct qm_mcr_queryfq_np { - u8 verb; - u8 result; - u8 __reserved1; - u8 state; - u32 fqd_link; - u16 odp_seq; - u16 orp_nesn; - u16 orp_ea_hseq; - u16 orp_ea_tseq; - u32 orp_ea_hptr; - u32 orp_ea_tptr; - u32 pfdr_hptr; - u32 pfdr_tptr; - u8 __reserved2[5]; - u8 is; - u16 ics_surp; - u32 byte_cnt; - u32 frm_cnt; - u32 __reserved3; - u16 ra1_sfdr; - u16 ra2_sfdr; - u16 __reserved4; - u16 od1_sfdr; - u16 od2_sfdr; - u16 od3_sfdr; +struct rockchip_pll_clock { + unsigned int id; + const char *name; + const char * const *parent_names; + u8 num_parents; + unsigned long flags; + int con_offset; + int mode_offset; + int mode_shift; + int lock_shift; + enum rockchip_pll_type type; + u8 pll_flags; + struct rockchip_pll_rate_table *rate_table; }; -union qm_mc_result { - struct { - u8 verb; - u8 result; - u8 __reserved1[62]; - }; - struct qm_mcr_queryfq queryfq; - struct qm_mcr_alterfq alterfq; - struct qm_mcr_querycgr querycgr; - struct qm_mcr_querycongestion querycongestion; - struct qm_mcr_querywq querywq; - struct qm_mcr_queryfq_np queryfq_np; +enum rockchip_clk_branch_type { + branch_composite = 0, + branch_mux = 1, + branch_muxgrf = 2, + branch_divider = 3, + branch_fraction_divider = 4, + branch_gate = 5, + branch_mmc = 6, + branch_inverter = 7, + branch_factor = 8, + branch_ddrclk = 9, + branch_half_divider = 10, }; -enum qm_eqcr_pmode { - qm_eqcr_pci = 0, - qm_eqcr_pce = 1, - qm_eqcr_pvb = 2, +struct rockchip_clk_branch { + unsigned int id; + enum rockchip_clk_branch_type branch_type; + const char *name; + const char * const *parent_names; + u8 num_parents; + unsigned long flags; + int muxdiv_offset; + u8 mux_shift; + u8 mux_width; + u8 mux_flags; + u32 *mux_table; + int div_offset; + u8 div_shift; + u8 div_width; + u8 div_flags; + struct clk_div_table *div_table; + int gate_offset; + u8 gate_shift; + u8 gate_flags; + struct rockchip_clk_branch *child; }; -enum qm_dqrr_dmode { - qm_dqrr_dpush = 0, - qm_dqrr_dpull = 1, +struct socfpga_periph_clk { + struct clk_gate hw; + char *parent_name; + u32 fixed_div; + void *div_reg; + void *bypass_reg; + u32 width; + u32 shift; + u32 bypass_shift; }; -enum qm_dqrr_pmode { - qm_dqrr_pci = 0, - qm_dqrr_pce = 1, - qm_dqrr_pvb = 2, +struct stratix10_perip_c_clock { + unsigned int id; + const char *name; + const char *parent_name; + const struct clk_parent_data *parent_data; + u8 num_parents; + unsigned long flags; + unsigned long offset; }; -enum qm_dqrr_cmode { - qm_dqrr_cci = 0, - qm_dqrr_cce = 1, - qm_dqrr_cdc = 2, +struct n5x_perip_c_clock { + unsigned int id; + const char *name; + const char *parent_name; + const char * const *parent_names; + u8 num_parents; + unsigned long flags; + unsigned long offset; + unsigned long shift; }; -enum qm_mr_pmode { - qm_mr_pci = 0, - qm_mr_pce = 1, - qm_mr_pvb = 2, +struct stratix10_perip_cnt_clock { + unsigned int id; + const char *name; + const char *parent_name; + const struct clk_parent_data *parent_data; + u8 num_parents; + unsigned long flags; + unsigned long offset; + u8 fixed_divider; + unsigned long bypass_reg; + unsigned long bypass_shift; }; -enum qm_mr_cmode { - qm_mr_cci = 0, - qm_mr_cce = 1, +struct stratix10_gate_clock { + unsigned int id; + const char *name; + const char *parent_name; + const struct clk_parent_data *parent_data; + u8 num_parents; + unsigned long flags; + unsigned long gate_reg; + u8 gate_idx; + unsigned long div_reg; + u8 div_offset; + u8 div_width; + unsigned long bypass_reg; + u8 bypass_shift; + u8 fixed_div; }; -struct update_cgr_params { - struct qman_cgr *cgr; - struct qm_mcc_initcgr *opts; - int ret; +struct stratix10_clock_data { + void *base; + struct clk_hw_onecell_data clk_data; }; -struct tegra234_cbb_fabric; - -struct tegra234_cbb_acpi_uid { - const char *hid; - const char *uid; - const struct tegra234_cbb_fabric *fabric; +struct log_header { + __le32 magic_word; + char reserved[4]; + __le32 buf_start; + __le32 buf_length; + __le32 last_byte; }; -struct tegra_cbb_error; - -struct tegra234_slave_lookup; - -struct tegra234_cbb_fabric { - const char *name; - phys_addr_t off_mask_erd; - phys_addr_t firewall_base; - unsigned int firewall_ctl; - unsigned int firewall_wr_ctl; - const char * const *master_id; - unsigned int notifier_offset; - const struct tegra_cbb_error *errors; - const int max_errors; - const struct tegra234_slave_lookup *slave_map; - const int max_slaves; +struct console_data { + void *map_addr; + struct log_header *hdr; + void *start_addr; + void *end_addr; + void *end_of_data; + void *cur_ptr; }; -struct tegra_cbb_error { - const char *code; - const char *source; - const char *desc; +struct imx93_power_domain { + struct generic_pm_domain genpd; + struct device *dev; + void *addr; + struct clk_bulk_data *clks; + int num_clks; + bool init_off; }; -struct tegra234_slave_lookup { - const char *name; - unsigned int offset; +struct fixed_dev_type { + bool has_enable_clock; + bool has_performance_state; }; -enum tegra234_cbb_fabric_ids { - CBB_FAB_ID = 0, - SCE_FAB_ID = 1, - RCE_FAB_ID = 2, - DCE_FAB_ID = 3, - AON_FAB_ID = 4, - PSC_FAB_ID = 5, - BPMP_FAB_ID = 6, - FSI_FAB_ID = 7, - MAX_FAB_ID = 8, +struct fixed_voltage_config { + const char *supply_name; + const char *input_supply; + int microvolts; + unsigned int startup_delay; + unsigned int off_on_delay; + unsigned int enabled_at_boot: 1; + struct regulator_init_data *init_data; }; -struct tegra234_cbb { - struct tegra_cbb base; - const struct tegra234_cbb_fabric *fabric; - struct resource *res; - void *regs; - int num_intr; - int sec_irq; - void *mon; - unsigned int type; - u32 mask; - u64 access; - u32 mn_attr0; - u32 mn_attr1; - u32 mn_attr2; - u32 mn_user_bits; +struct fixed_voltage_data { + struct regulator_desc desc; + struct regulator_dev *dev; + struct clk *enable_clock; + unsigned int enable_counter; + int performance_state; }; -struct mt6357_regulator_info { +struct max77620_regulator_info { + u8 type; + u8 fps_addr; + u8 volt_addr; + u8 cfg_addr; + u8 power_mode_mask; + u8 power_mode_shift; + u8 remote_sense_addr; + u8 remote_sense_mask; struct regulator_desc desc; - u32 da_vsel_reg; - u32 da_vsel_mask; }; -enum { - MT6357_ID_VCORE = 0, - MT6357_ID_VMODEM = 1, - MT6357_ID_VPA = 2, - MT6357_ID_VPROC = 3, - MT6357_ID_VS1 = 4, - MT6357_ID_VAUX18 = 5, - MT6357_ID_VAUD28 = 6, - MT6357_ID_VCAMA = 7, - MT6357_ID_VCAMD = 8, - MT6357_ID_VCAMIO = 9, - MT6357_ID_VCN18 = 10, - MT6357_ID_VCN28 = 11, - MT6357_ID_VCN33_BT = 12, - MT6357_ID_VCN33_WIFI = 13, - MT6357_ID_VDRAM = 14, - MT6357_ID_VEFUSE = 15, - MT6357_ID_VEMC = 16, - MT6357_ID_VFE28 = 17, - MT6357_ID_VIBR = 18, - MT6357_ID_VIO18 = 19, - MT6357_ID_VIO28 = 20, - MT6357_ID_VLDO28 = 21, - MT6357_ID_VMC = 22, - MT6357_ID_VMCH = 23, - MT6357_ID_VRF12 = 24, - MT6357_ID_VRF18 = 25, - MT6357_ID_VSIM1 = 26, - MT6357_ID_VSIM2 = 27, - MT6357_ID_VSRAM_OTHERS = 28, - MT6357_ID_VSRAM_PROC = 29, - MT6357_ID_VUSB33 = 30, - MT6357_ID_VXO22 = 31, - MT6357_ID_RG_MAX = 32, +enum max77620_regulators { + MAX77620_REGULATOR_ID_SD0 = 0, + MAX77620_REGULATOR_ID_SD1 = 1, + MAX77620_REGULATOR_ID_SD2 = 2, + MAX77620_REGULATOR_ID_SD3 = 3, + MAX77620_REGULATOR_ID_SD4 = 4, + MAX77620_REGULATOR_ID_LDO0 = 5, + MAX77620_REGULATOR_ID_LDO1 = 6, + MAX77620_REGULATOR_ID_LDO2 = 7, + MAX77620_REGULATOR_ID_LDO3 = 8, + MAX77620_REGULATOR_ID_LDO4 = 9, + MAX77620_REGULATOR_ID_LDO5 = 10, + MAX77620_REGULATOR_ID_LDO6 = 11, + MAX77620_REGULATOR_ID_LDO7 = 12, + MAX77620_REGULATOR_ID_LDO8 = 13, + MAX77620_NUM_REGS = 14, }; -enum cons_flags { - CON_PRINTBUFFER = 1, - CON_CONSDEV = 2, - CON_ENABLED = 4, - CON_BOOT = 8, - CON_ANYTIME = 16, - CON_BRL = 32, - CON_EXTENDED = 64, +enum max77620_regulator_type { + MAX77620_REGULATOR_TYPE_SD = 0, + MAX77620_REGULATOR_TYPE_LDO_N = 1, + MAX77620_REGULATOR_TYPE_LDO_P = 2, }; -struct tegra_tcu { - struct uart_driver driver; - struct console console; - struct uart_port port; - struct mbox_client tx_client; - struct mbox_client rx_client; - struct mbox_chan *tx; - struct mbox_chan *rx; +struct max77620_regulator_pdata { + int active_fps_src; + int active_fps_pd_slot; + int active_fps_pu_slot; + int suspend_fps_src; + int suspend_fps_pd_slot; + int suspend_fps_pu_slot; + int current_mode; + int power_ok; + int ramp_rate_setting; }; -struct optee_rng_private { +struct max77620_regulator { struct device *dev; - struct tee_context *ctx; - u32 session_id; - u32 data_rate; - struct tee_shm *entropy_shm_pool; - struct hwrng optee_rng; -}; - -typedef u32 arm_v7s_iopte; - -struct arm_v7s_io_pgtable { - struct io_pgtable iop; - arm_v7s_iopte *pgd; - struct kmem_cache *l2_tables; - spinlock_t split_lock; -}; - -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 regmap *rmap; + struct max77620_regulator_info *rinfo[14]; + struct max77620_regulator_pdata reg_pdata[14]; + int enable_power_mode[14]; + int current_power_mode[14]; + int active_fps_src[14]; }; -struct software_node_ref_args { - const struct software_node *node; - unsigned int nargs; - u64 args[8]; +struct tty_file_private { + struct tty_struct *tty; + struct file *file; + struct list_head list; }; -struct soc_device { - struct device dev; - struct soc_device_attribute *attr; - int soc_dev_num; +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 mtd_part_parser { - struct list_head list; - struct module *owner; - const char *name; - const struct of_device_id *of_match_table; - int (*parse_fn)(struct mtd_info *, const struct mtd_partition **, struct mtd_part_parser_data *); - void (*cleanup)(const struct mtd_partition *, int); +struct meson_uart_data { + struct uart_driver *uart_driver; + bool has_xtal_div2; }; -struct fixed_partitions_quirks { - int (*post_parse)(struct mtd_info *, struct mtd_partition *, int); +struct virtrng_info { + struct hwrng hwrng; + struct virtqueue *vq; + char name[25]; + int index; + bool hwrng_register_done; + bool hwrng_removed; + struct completion have_data; + unsigned int data_avail; + unsigned int data_idx; + u8 data[64]; }; -struct nand_ecc_req_tweak_ctx { - struct nand_page_io_req orig_req; - struct nand_device *nand; - unsigned int page_buffer_size; - unsigned int oob_buffer_size; - void *spare_databuf; - void *spare_oobbuf; - bool bounce_data; - bool bounce_oob; +struct arm_smmu_match_data { + enum arm_smmu_arch_version version; + enum arm_smmu_implementation model; }; -typedef void (*btf_trace_spmi_write_begin)(void *, u8, u8, u16, u8, const u8 *); - -typedef void (*btf_trace_spmi_write_end)(void *, u8, u8, u16, int); +struct acpi_iort_node { + u8 type; + u16 length; + u8 revision; + u32 identifier; + u32 mapping_count; + u32 mapping_offset; + char node_data[0]; +} __attribute__((packed)); -typedef void (*btf_trace_spmi_read_begin)(void *, u8, u8, u16); +struct acpi_iort_smmu { + u64 base_address; + u64 span; + u32 model; + u32 flags; + u32 global_interrupt_offset; + u32 context_interrupt_count; + u32 context_interrupt_offset; + u32 pmu_interrupt_count; + u32 pmu_interrupt_offset; + u64 interrupts[0]; +} __attribute__((packed)); -typedef void (*btf_trace_spmi_read_end)(void *, u8, u8, u16, int, u8, const u8 *); +struct iommu_iort_rmr_data { + struct iommu_resv_region rr; + const u32 *sids; + u32 num_sids; +}; -typedef void (*btf_trace_spmi_cmd)(void *, u8, u8, int); +struct arm_smmu_master_cfg { + struct arm_smmu_device *smmu; + s16 smendx[0]; +}; -struct trace_event_raw_spmi_write_begin { - struct trace_entry ent; - u8 opcode; - u8 sid; - u16 addr; - u8 len; - u32 __data_loc_buf; - 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_raw_spmi_write_end { - struct trace_entry ent; - u8 opcode; - u8 sid; - u16 addr; - int ret; - char __data[0]; +struct regmap_debugfs_node { + struct regmap *map; + struct list_head link; }; -struct trace_event_raw_spmi_read_begin { - struct trace_entry ent; - u8 opcode; - u8 sid; - u16 addr; - char __data[0]; +struct regmap_debugfs_off_cache { + struct list_head list; + off_t min; + off_t max; + unsigned int base_reg; + unsigned int max_reg; }; -struct trace_event_raw_spmi_read_end { - struct trace_entry ent; - u8 opcode; - u8 sid; - u16 addr; - int ret; - u8 len; - u32 __data_loc_buf; - char __data[0]; +struct scsi_host_busy_iter_data { + bool (*fn)(struct scsi_cmnd *, void *); + void *priv; }; -struct trace_event_raw_spmi_cmd { - struct trace_entry ent; - u8 opcode; - u8 sid; - int ret; - char __data[0]; +enum xgene_ahci_version { + XGENE_AHCI_V1 = 1, + XGENE_AHCI_V2 = 2, }; -struct spmi_driver { - struct device_driver driver; - int (*probe)(struct spmi_device *); - void (*remove)(struct spmi_device *); - void (*shutdown)(struct spmi_device *); +struct xgene_ahci_context { + struct ahci_host_priv *hpriv; + struct device *dev; + u8 last_cmd[2]; + u32 class[2]; + void *csr_core; + void *csr_diag; + void *csr_axi; + void *csr_mux; }; -struct trace_event_data_offsets_spmi_write_begin { - u32 buf; +struct acpi_pnp_device_id { + u32 length; + char *string; }; -struct trace_event_data_offsets_spmi_read_end { - u32 buf; +struct acpi_pnp_device_id_list { + u32 count; + u32 list_size; + struct acpi_pnp_device_id ids[0]; }; -struct trace_event_data_offsets_spmi_write_end {}; +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 trace_event_data_offsets_spmi_read_begin {}; +struct spansion_nor_params { + u8 clsr; +}; -struct trace_event_data_offsets_spmi_cmd {}; +struct mdio_board_entry { + struct list_head list; + struct mdio_board_info board_info; +}; enum { IFLA_TUN_UNSPEC = 0, @@ -134457,6 +133860,26 @@ enum { __IFLA_TUN_MAX = 10, }; +struct tun_struct; + +struct tun_flow_entry { + struct hlist_node hash_link; + struct callback_head rcu; + struct tun_struct *tun; + u32 rxhash; + u32 rps_rxhash; + int queue_index; + long: 64; + unsigned long updated; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + struct tap_filter { unsigned int count; u32 mask[2]; @@ -134504,7 +133927,6 @@ struct tun_file { struct sock sk; long: 64; long: 64; - long: 64; struct socket socket; struct tun_struct __attribute__((btf_type_tag("rcu"))) *tun; struct fasync_struct *fasync; @@ -134524,7030 +133946,6526 @@ struct tun_file { long: 64; long: 64; struct ptr_ring tx_ring; - struct xdp_rxq_info xdp_rxq; -}; - -struct tun_prog { - struct callback_head rcu; - struct bpf_prog *prog; -}; - -struct tun_flow_entry { - struct hlist_node hash_link; - struct callback_head rcu; - struct tun_struct *tun; - u32 rxhash; - u32 rps_rxhash; - int queue_index; - long: 64; - unsigned long updated; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct tun_pi { - __u16 flags; - __be16 proto; -}; - -struct veth { - __be16 h_vlan_proto; - __be16 h_vlan_TCI; -}; - -struct tun_page { - struct page *page; - int count; -}; - -struct tun_xdp_hdr { - int buflen; - struct virtio_net_hdr gso; -}; - -struct tun_filter { - __u16 flags; - __u16 count; - __u8 addr[0]; -}; - -struct tun_msg_ctl { - unsigned short type; - unsigned short num; - void *ptr; -}; - -struct ich8_hsflctl { - u16 flcgo: 1; - u16 flcycle: 2; - u16 reserved: 5; - u16 fldbcount: 2; - u16 flockdn: 6; -}; - -union ich8_hws_flash_ctrl { - struct ich8_hsflctl hsf_ctrl; - u16 regval; -}; - -struct ich8_hsfsts { - u16 flcdone: 1; - u16 flcerr: 1; - u16 dael: 1; - u16 berasesz: 2; - u16 flcinprog: 1; - u16 reserved1: 2; - u16 reserved2: 6; - u16 fldesvalid: 1; - u16 flockdn: 1; -}; - -union ich8_hws_flash_status { - struct ich8_hsfsts hsf_status; - u16 regval; -}; - -struct ich8_pr { - u32 base: 13; - u32 reserved1: 2; - u32 rpe: 1; - u32 limit: 13; - u32 reserved2: 2; - u32 wpe: 1; -}; - -union ich8_flash_protected_range { - struct ich8_pr range; - u32 regval; -}; - -struct am65_cpsw_regdump_hdr { - u32 module_id; - u32 len; -}; - -struct am65_cpsw_regdump_item { - struct am65_cpsw_regdump_hdr hdr; - u32 start_ofs; - u32 end_ofs; -}; - -struct am65_cpsw_ethtool_stat { - char desc[32]; - int offset; -}; - -enum { - AM65_CPSW_REGDUMP_MOD_NUSS = 1, - AM65_CPSW_REGDUMP_MOD_RGMII_STATUS = 2, - AM65_CPSW_REGDUMP_MOD_MDIO = 3, - AM65_CPSW_REGDUMP_MOD_CPSW = 4, - AM65_CPSW_REGDUMP_MOD_CPSW_P0 = 5, - AM65_CPSW_REGDUMP_MOD_CPSW_P1 = 6, - AM65_CPSW_REGDUMP_MOD_CPSW_CPTS = 7, - AM65_CPSW_REGDUMP_MOD_CPSW_ALE = 8, - AM65_CPSW_REGDUMP_MOD_CPSW_ALE_TBL = 9, - AM65_CPSW_REGDUMP_MOD_LAST = 10, -}; - -struct dwc3_imx8mp { - struct device *dev; - struct platform_device *dwc3; - void *hsio_blk_base; - void *glue_base; - struct clk *hsio_clk; - struct clk *suspend_clk; - int irq; - bool pm_suspended; - bool wakeup_pending; -}; - -struct exynos_ohci_hcd { - struct clk *clk; - struct device_node *of_node; - struct phy *phy[3]; - bool legacy_phy; -}; - -struct pl031_vendor_data { - struct rtc_class_ops ops; - bool clockwatch; - bool st_weekday; - unsigned long irqflags; - time64_t range_min; - timeu64_t range_max; -}; - -struct pl031_local { - struct pl031_vendor_data *vendor; - struct rtc_device *rtc; - void *base; -}; - -enum s3c24xx_i2c_state { - STATE_IDLE___2 = 0, - STATE_START = 1, - STATE_READ = 2, - STATE_WRITE = 3, - STATE_STOP = 4, -}; - -struct s3c2410_platform_i2c; - -struct s3c24xx_i2c { - wait_queue_head_t wait; - kernel_ulong_t quirks; - struct i2c_msg *msg; - unsigned int msg_num; - unsigned int msg_idx; - unsigned int msg_ptr; - unsigned int tx_setup; - unsigned int irq; - enum s3c24xx_i2c_state state; - unsigned long clkrate; - void *regs; - struct clk *clk; - struct device *dev; - struct i2c_adapter adap; - struct s3c2410_platform_i2c *pdata; - struct gpio_desc *gpios[2]; - struct pinctrl *pctrl; - struct regmap *sysreg; - unsigned int sys_i2c_cfg; -}; - -struct s3c2410_platform_i2c { - int bus_num; - unsigned int flags; - unsigned int slave_addr; - unsigned long frequency; - unsigned int sda_delay; - void (*cfg_gpio)(struct platform_device *); -}; - -enum scpi_sensor_class { - TEMPERATURE = 0, - VOLTAGE___2 = 1, - CURRENT___2 = 2, - POWER___2 = 3, - ENERGY___2 = 4, -}; - -struct sensor_data { - unsigned int scale; - struct scpi_sensor_info info; - struct device_attribute dev_attr_input; - struct device_attribute dev_attr_label; - char input[20]; - char label[20]; -}; - -struct scpi_sensors { - struct scpi_ops *scpi_ops; - struct sensor_data *data; - struct list_head thermal_zones; - struct attribute **attrs; - struct attribute_group group; - const struct attribute_group *groups[2]; -}; - -struct scpi_thermal_zone { - int sensor_id; - struct scpi_sensors *scpi_sensors; -}; - -enum dw_wdt_rmod { - DW_WDT_RMOD_RESET = 1, - DW_WDT_RMOD_IRQ = 2, -}; - -struct dw_wdt_timeout { - u32 top_val; - unsigned int sec; - unsigned int msec; -}; - -struct dw_wdt { - void *regs; - struct clk *clk; - struct clk *pclk; - unsigned long rate; - enum dw_wdt_rmod rmod; - struct dw_wdt_timeout timeouts[16]; - struct watchdog_device wdd; - struct reset_control *rst; - u32 control; - u32 timeout; - struct dentry *dbgfs_dir; -}; - -struct sd_busy_data { - struct mmc_card *card; - u8 *reg_buf; -}; - -struct bcm2835_host { - spinlock_t lock; - struct mutex mutex; - void *ioaddr; - u32 phys_addr; - struct platform_device *pdev; - int clock; - unsigned int max_clk; - struct work_struct dma_work; - struct delayed_work timeout_work; - struct sg_mapping_iter sg_miter; - unsigned int blocks; - int irq; - u32 ns_per_fifo_word; - u32 hcfg; - u32 cdiv; - struct mmc_request *mrq; - struct mmc_command *cmd; - struct mmc_data *data; - bool data_complete: 1; - bool use_busy: 1; - bool use_sbc: 1; - bool irq_block; - bool irq_busy; - bool irq_data; - struct dma_chan *dma_chan_rxtx; - struct dma_chan *dma_chan; - struct dma_slave_config dma_cfg_rx; - struct dma_slave_config dma_cfg_tx; - struct dma_async_tx_descriptor *dma_desc; - u32 dma_dir; - u32 drain_words; - struct page *drain_page; - u32 drain_offset; - bool use_dma; -}; - -enum rpi_firmware_property_status { - RPI_FIRMWARE_STATUS_REQUEST = 0, - RPI_FIRMWARE_STATUS_SUCCESS = 2147483648, - RPI_FIRMWARE_STATUS_ERROR = 2147483649, -}; - -struct rpi_firmware { - struct mbox_client cl; - struct mbox_chan *chan; - struct completion c; - u32 enabled; - struct kref consumers; -}; - -struct rpi_firmware_property_tag_header { - u32 tag; - u32 buf_size; - u32 req_resp_size; -}; - -struct rpi_firmware_clk_rate_request { - __le32 id; - __le32 rate; -}; - -struct cper_mem_err_compact { - u64 validation_bits; - u16 node; - u16 card; - u16 module; - u16 bank; - u16 device; - u16 row; - u16 column; - u16 bit_pos; - u64 requestor_id; - u64 responder_id; - u64 target_id; - u16 rank; - u16 mem_array_handle; - u16 mem_dev_handle; - u8 extended; -} __attribute__((packed)); - -struct cper_sec_proc_generic { - u64 validation_bits; - u8 proc_type; - u8 proc_isa; - u8 proc_error_type; - u8 operation; - u8 flags; - u8 level; - u16 reserved; - u64 cpu_version; - char cpu_brand[128]; - u64 proc_id; - u64 target_addr; - u64 requestor_id; - u64 responder_id; - u64 ip; -}; - -struct cper_sec_fw_err_rec_ref { - u8 record_type; - u8 revision; - u8 reserved[6]; - u64 record_identifier; - guid_t record_identifier_guid; -}; - -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_bpf_ops { - struct hid_report * (*hid_get_report)(struct hid_report_enum *, const u8 *); - int (*hid_hw_raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, enum hid_report_type, enum hid_class_request); - struct module *owner; - struct bus_type *bus_type; -}; - -struct hiddev { - int minor; - int exist; - int open; - struct mutex existancelock; - wait_queue_head_t wait; - struct hid_device *hid; - struct list_head list; - spinlock_t list_lock; - bool initialized; -}; - -struct hidraw { - unsigned int minor; - int exist; - int open; - wait_queue_head_t wait; - struct hid_device *hid; - struct device *dev; - spinlock_t list_lock; - struct list_head list; -}; - -struct hid_dynid { - struct list_head list; - struct hid_device_id id; -}; - -struct qcom_ipcc_chan_info; - -struct qcom_ipcc { - struct device *dev; - void *base; - struct irq_domain *irq_domain; - struct mbox_chan *chans; - struct qcom_ipcc_chan_info *mchan; - struct mbox_controller mbox; - int num_chans; - int irq; -}; - -struct qcom_ipcc_chan_info { - u16 client_id; - u16 signal_id; -}; - -enum fpga_mgr_states { - FPGA_MGR_STATE_UNKNOWN = 0, - FPGA_MGR_STATE_POWER_OFF = 1, - FPGA_MGR_STATE_POWER_UP = 2, - FPGA_MGR_STATE_RESET = 3, - FPGA_MGR_STATE_FIRMWARE_REQ = 4, - FPGA_MGR_STATE_FIRMWARE_REQ_ERR = 5, - FPGA_MGR_STATE_PARSE_HEADER = 6, - FPGA_MGR_STATE_PARSE_HEADER_ERR = 7, - FPGA_MGR_STATE_WRITE_INIT = 8, - FPGA_MGR_STATE_WRITE_INIT_ERR = 9, - FPGA_MGR_STATE_WRITE = 10, - FPGA_MGR_STATE_WRITE_ERR = 11, - FPGA_MGR_STATE_WRITE_COMPLETE = 12, - FPGA_MGR_STATE_WRITE_COMPLETE_ERR = 13, - FPGA_MGR_STATE_OPERATING = 14, + struct xdp_rxq_info xdp_rxq; }; -struct fpga_compat_id; +struct tun_prog { + struct callback_head rcu; + struct bpf_prog *prog; +}; -struct fpga_manager_ops; +struct tun_pi { + __u16 flags; + __be16 proto; +}; -struct fpga_manager { - const char *name; - struct device dev; - struct mutex ref_mutex; - enum fpga_mgr_states state; - struct fpga_compat_id *compat_id; - const struct fpga_manager_ops *mops; - void *priv; +struct virtio_net_hdr { + __u8 flags; + __u8 gso_type; + __virtio16 hdr_len; + __virtio16 gso_size; + __virtio16 csum_start; + __virtio16 csum_offset; }; -struct fpga_compat_id { - u64 id_h; - u64 id_l; +struct veth { + __be16 h_vlan_proto; + __be16 h_vlan_TCI; }; -struct fpga_image_info; +struct flow_keys_basic { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; +}; -struct fpga_manager_ops { - size_t initial_header_size; - bool skip_header; - enum fpga_mgr_states (*state)(struct fpga_manager *); - u64 (*status)(struct fpga_manager *); - int (*parse_header)(struct fpga_manager *, struct fpga_image_info *, const char *, size_t); - int (*write_init)(struct fpga_manager *, struct fpga_image_info *, const char *, size_t); - int (*write)(struct fpga_manager *, const char *, size_t); - int (*write_sg)(struct fpga_manager *, struct sg_table *); - int (*write_complete)(struct fpga_manager *, struct fpga_image_info *); - void (*fpga_remove)(struct fpga_manager *); - const struct attribute_group **groups; +struct tun_page { + struct page *page; + int count; }; -struct fpga_image_info { - u32 flags; - u32 enable_timeout_us; - u32 disable_timeout_us; - u32 config_complete_timeout_us; - char *firmware_name; - struct sg_table *sgt; - const char *buf; - size_t count; - size_t header_size; - size_t data_size; - int region_id; - struct device *dev; - struct device_node *overlay; +struct tun_xdp_hdr { + int buflen; + struct virtio_net_hdr gso; }; -struct fpga_manager_info { - const char *name; - struct fpga_compat_id *compat_id; - const struct fpga_manager_ops *mops; - void *priv; +struct tun_filter { + __u16 flags; + __u16 count; + __u8 addr[0]; }; -struct fpga_mgr_devres { - struct fpga_manager *mgr; +struct tun_msg_ctl { + unsigned short type; + unsigned short num; + void *ptr; }; -struct snd_fasync { - struct fasync_struct *fasync; - int signal; - int poll; - int on; - struct list_head list; +struct xcv { + void *reg_base; + struct pci_dev *pdev; }; -struct snd_pci_quirk { - unsigned short subvendor; - unsigned short subdevice; - unsigned short subdevice_mask; - int value; +enum dpmac_counter_id { + DPMAC_CNT_ING_FRAME_64 = 0, + DPMAC_CNT_ING_FRAME_127 = 1, + DPMAC_CNT_ING_FRAME_255 = 2, + DPMAC_CNT_ING_FRAME_511 = 3, + DPMAC_CNT_ING_FRAME_1023 = 4, + DPMAC_CNT_ING_FRAME_1518 = 5, + DPMAC_CNT_ING_FRAME_1519_MAX = 6, + DPMAC_CNT_ING_FRAG = 7, + DPMAC_CNT_ING_JABBER = 8, + DPMAC_CNT_ING_FRAME_DISCARD = 9, + DPMAC_CNT_ING_ALIGN_ERR = 10, + DPMAC_CNT_EGR_UNDERSIZED = 11, + DPMAC_CNT_ING_OVERSIZED = 12, + DPMAC_CNT_ING_VALID_PAUSE_FRAME = 13, + DPMAC_CNT_EGR_VALID_PAUSE_FRAME = 14, + DPMAC_CNT_ING_BYTE = 15, + DPMAC_CNT_ING_MCAST_FRAME = 16, + DPMAC_CNT_ING_BCAST_FRAME = 17, + DPMAC_CNT_ING_ALL_FRAME = 18, + DPMAC_CNT_ING_UCAST_FRAME = 19, + DPMAC_CNT_ING_ERR_FRAME = 20, + DPMAC_CNT_EGR_BYTE = 21, + DPMAC_CNT_EGR_MCAST_FRAME = 22, + DPMAC_CNT_EGR_BCAST_FRAME = 23, + DPMAC_CNT_EGR_UCAST_FRAME = 24, + DPMAC_CNT_EGR_ERR_FRAME = 25, + DPMAC_CNT_ING_GOOD_FRAME = 26, + DPMAC_CNT_EGR_GOOD_FRAME = 27, }; -struct mca_data; +struct dpmac_cmd_open { + __le32 dpmac_id; +}; -struct mca_cluster { - int no; - void *base; - struct mca_data *host; - struct device *pd_dev; - struct clk *clk_parent; - struct dma_chan *dma_chans[2]; - bool port_started[2]; - int port_driver; - bool clocks_in_use[2]; - struct device_link *pd_link; - unsigned int bclk_ratio; - int tdm_slots; - int tdm_slot_width; - unsigned int tdm_tx_mask; - unsigned int tdm_rx_mask; +struct dpmac_rsp_get_attributes { + u8 eth_if; + u8 link_type; + __le16 id; + __le32 max_rate; }; -struct mca_data { - struct device *dev; - void *switch_base; - struct device *pd_dev; - struct reset_control *rstc; - struct device_link *pd_link; - struct mutex port_mutex; - int nclusters; - struct mca_cluster clusters[0]; +struct dpmac_cmd_set_link_state { + __le64 options; + __le32 rate; + __le32 pad0; + u8 state; + u8 pad1[7]; + __le64 supported; + __le64 advertising; }; -struct gro_cell { - struct sk_buff_head napi_skbs; - struct napi_struct napi; +struct dpmac_cmd_get_counter { + u8 id; }; -struct percpu_free_defer { - struct callback_head rcu; - void __attribute__((btf_type_tag("percpu"))) *ptr; +struct dpmac_rsp_get_counter { + __le64 pad; + __le64 counter; }; -struct gro_cells { - struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells; +struct dpmac_rsp_get_api_version { + __le16 major; + __le16 minor; }; -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, +struct dpmac_cmd_set_protocol { + u8 eth_if; }; -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 enetc_active_offloads { + ENETC_F_TX_TSTAMP = 1, + ENETC_F_TX_ONESTEP_SYNC_TSTAMP = 2, + ENETC_F_RX_TSTAMP = 256, + ENETC_F_QBV = 512, + ENETC_F_QCI = 1024, + ENETC_F_QBU = 2048, }; -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 enetc_msg_cmd_type { + ENETC_MSG_CMD_MNG_MAC = 1, + ENETC_MSG_CMD_MNG_RX_MAC_FILTER = 2, + ENETC_MSG_CMD_MNG_RX_VLAN_FILTER = 3, }; -struct nf_conntrack_zone { +enum enetc_msg_cmd_action_type { + ENETC_MSG_CMD_MNG_ADD = 1, + ENETC_MSG_CMD_MNG_REMOVE = 2, +}; + +struct enetc_msg_cmd_header { + u16 type; u16 id; - u8 flags; - u8 dir; }; -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 enetc_msg_cmd_set_primary_mac { + struct enetc_msg_cmd_header header; + struct sockaddr mac; +}; + +struct psfp_cap { + u32 max_streamid; + u32 max_psfp_filter; + u32 max_psfp_gate; + u32 max_psfp_gatelist; + u32 max_psfp_meter; }; -struct nf_conn; +struct enetc_int_vector; -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 enetc_bdr; + +struct enetc_bdr_resource; + +struct enetc_cls_rule; + +struct enetc_ndev_priv { + struct net_device *ndev; + struct device *dev; + struct enetc_si *si; + int bdr_int_num; + struct enetc_int_vector *int_vector[2]; + u16 num_rx_rings; + u16 num_tx_rings; + u16 rx_bd_count; + u16 tx_bd_count; + u16 msg_enable; + u8 preemptible_tcs; + enum enetc_active_offloads active_offloads; + u32 speed; + struct enetc_bdr **xdp_tx_ring; + struct enetc_bdr *tx_ring[16]; + struct enetc_bdr *rx_ring[16]; + const struct enetc_bdr_resource *tx_res; + const struct enetc_bdr_resource *rx_res; + struct enetc_cls_rule *cls_rules; + struct psfp_cap psfp_cap; + unsigned int min_num_stack_tx_queues; + struct phylink *phylink; + int ic_mode; + u32 tx_ictt; + struct bpf_prog *xdp_prog; + unsigned long flags; + struct work_struct tx_onestep_tstamp; + struct sk_buff_head tx_skbs; + struct mutex mm_lock; }; -union nf_inet_addr { - __u32 all[4]; - __be32 ip; - __be32 ip6[4]; - struct in_addr in; - struct in6_addr in6; +struct enetc_xdp_data { + struct xdp_rxq_info rxq; + struct bpf_prog *prog; + int xdp_tx_in_flight; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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; +struct enetc_ring_stats { + unsigned int packets; + unsigned int bytes; + unsigned int rx_alloc_errs; + unsigned int xdp_drops; + unsigned int xdp_tx; + unsigned int xdp_tx_drops; + unsigned int xdp_redirect; + unsigned int xdp_redirect_failures; + unsigned int recycles; + unsigned int recycle_failures; + unsigned int win_drop; }; -struct nf_conntrack_man { - union nf_inet_addr u3; - union nf_conntrack_man_proto u; - u_int16_t l3num; +struct enetc_tx_swbd; + +struct enetc_rx_swbd; + +struct enetc_bdr { + struct device *dev; + struct net_device *ndev; + void *bd_base; + union { + void *tpir; + void *rcir; + }; + u16 index; + u16 prio; + int bd_count; + int next_to_use; + int next_to_clean; + union { + struct enetc_tx_swbd *tx_swbd; + struct enetc_rx_swbd *rx_swbd; + }; + union { + void *tcir; + int next_to_alloc; + }; + void *idr; + int buffer_offset; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct enetc_xdp_data xdp; + struct enetc_ring_stats stats; + dma_addr_t bd_dma_base; + u8 tsd_enable; + bool ext_en; + char *tso_headers; + dma_addr_t tso_headers_dma; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct nf_conntrack_tuple { - struct nf_conntrack_man src; - struct { - union nf_inet_addr u3; - union { - __be16 all; - struct { - __be16 port; - } tcp; - struct { - __be16 port; - } udp; - struct { - u_int8_t type; - u_int8_t code; - } icmp; - struct { - __be16 port; - } dccp; - struct { - __be16 port; - } sctp; - struct { - __be16 key; - } gre; - } u; - u_int8_t protonum; - struct {} __nfct_hash_offsetend; - u_int8_t dir; - } dst; +struct enetc_int_vector { + void *rbier; + void *tbier_base; + void *ricr1; + unsigned long tx_rings_map; + int count_tx_rings; + u32 rx_ictt; + u16 comp_cnt; + bool rx_dim_en; + bool rx_napi_work; + long: 64; + long: 64; + struct napi_struct napi; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct dim rx_dim; + char name[24]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct enetc_bdr rx_ring; + struct enetc_bdr tx_ring[0]; }; -struct nf_conntrack_tuple_hash { - struct hlist_nulls_node hnnode; - struct nf_conntrack_tuple tuple; +struct enetc_tx_swbd { + union { + struct sk_buff *skb; + struct xdp_frame *xdp_frame; + }; + dma_addr_t dma; + struct page *page; + u16 page_offset; + u16 len; + enum dma_data_direction dir; + u8 is_dma_page: 1; + u8 check_wb: 1; + u8 do_twostep_tstamp: 1; + u8 is_eof: 1; + u8 is_xdp_tx: 1; + u8 is_xdp_redirect: 1; + u8 qbv_en: 1; }; -struct nf_ct_dccp { - u_int8_t role[2]; - u_int8_t state; - u_int8_t last_pkt; - u_int8_t last_dir; - u_int64_t handshake_seq; +struct enetc_rx_swbd { + dma_addr_t dma; + struct page *page; + u16 page_offset; + enum dma_data_direction dir; + u16 len; }; -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 enetc_bdr_resource { + struct device *dev; + size_t bd_count; + size_t bd_size; + void *bd_base; + dma_addr_t bd_dma_base; + union { + struct enetc_tx_swbd *tx_swbd; + struct enetc_rx_swbd *rx_swbd; + }; + char *tso_headers; + dma_addr_t tso_headers_dma; }; -struct ip_ct_sctp { - enum sctp_conntrack state; - __be32 vtag[2]; - u8 last_dir; - u8 flags; +struct enetc_cls_rule { + struct ethtool_rx_flow_spec fs; + int used; }; -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 enetc_msg_swbd { + void *vaddr; + dma_addr_t dma; + int size; }; -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 hns3_dbg_dentry_info { + const char *name; + struct dentry *dentry; }; -struct nf_ct_udp { - unsigned long stream_ts; +enum hns3_dbg_dentry_type { + HNS3_DBG_DENTRY_TM = 0, + HNS3_DBG_DENTRY_TX_BD = 1, + HNS3_DBG_DENTRY_RX_BD = 2, + HNS3_DBG_DENTRY_MAC = 3, + HNS3_DBG_DENTRY_REG = 4, + HNS3_DBG_DENTRY_QUEUE = 5, + HNS3_DBG_DENTRY_FD = 6, + HNS3_DBG_DENTRY_COMMON = 7, }; -struct nf_ct_gre { - unsigned int stream_timeout; - unsigned int timeout; +struct hns3_dbg_cmd_info { + const char *name; + enum hnae3_dbg_cmd cmd; + enum hns3_dbg_dentry_type dentry; + u32 buf_len; + int (*init)(struct hnae3_handle *, unsigned int); }; -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 hns3_dbg_data; + +struct hns3_dbg_func { + enum hnae3_dbg_cmd cmd; + int (*dbg_dump)(struct hnae3_handle *, char *, int); + int (*dbg_dump_bd)(struct hns3_dbg_data *, char *, int); }; -struct nf_ct_ext; +struct hns3_dbg_data { + struct hnae3_handle *handle; + enum hnae3_dbg_cmd cmd; + u16 qid; +}; -struct nf_conn { - struct nf_conntrack ct_general; - spinlock_t lock; - u32 timeout; - struct nf_conntrack_tuple_hash tuplehash[2]; - unsigned long status; - possible_net_t ct_net; - struct hlist_node nat_bysource; - struct {} __nfct_init_offset; - struct nf_conn *master; - struct nf_ct_ext *ext; - union nf_conntrack_proto proto; +struct hns3_dbg_item { + char name[32]; + u16 interval; }; -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 hns3_dbg_cap_info { + const char *name; + enum HNAE3_DEV_CAP_BITS cap_bit; }; -enum nf_nat_manip_type; +typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t); -enum ip_conntrack_dir { - IP_CT_DIR_ORIGINAL = 0, - IP_CT_DIR_REPLY = 1, - IP_CT_DIR_MAX = 2, +struct e1000_reg_info { + u32 ofs; + char *name; }; -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 e1000_state_t___3 { + __E1000_TESTING___2 = 0, + __E1000_RESETTING___2 = 1, + __E1000_ACCESS_SHARED_RESOURCE = 2, + __E1000_DOWN___2 = 3, }; -struct nf_hook_entries_rcu_head { - struct callback_head head; - void *allocation; +struct trace_event_raw_e1000e_trace_mac_register { + struct trace_entry ent; + uint32_t reg; + char __data[0]; }; -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; +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; }; -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; +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 netdev_notifier_info_ext { - struct netdev_notifier_info info; - union { - u32 mtu; - } ext; +struct my_u0 { + __le64 a; + __le64 b; }; -struct mld_msg { - struct icmp6hdr mld_hdr; - struct in6_addr mld_mca; +struct my_u1 { + __le64 a; + __le64 b; + __le64 c; + __le64 d; }; -struct gss_domain { - struct auth_domain h; - u32 pseudoflavor; +struct trace_event_data_offsets_e1000e_trace_mac_register {}; + +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 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; +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 gss_svc_seq_data { - u32 sd_max; - unsigned long sd_win[2]; - spinlock_t sd_lock; +struct netdev_lag_lower_state_info { + u8 link_up: 1; + u8 tx_enabled: 1; }; -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 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 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 class_info { + int class; + char *class_name; }; -struct gssp_in_token { - struct page **pages; - unsigned int page_base; - unsigned int page_len; +struct dwc3_keystone { + struct device *dev; + void *usbss; + struct phy *usb3_phy; }; -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; +struct usb_ohci_pdata { + unsigned int big_endian_desc: 1; + unsigned int big_endian_mmio: 1; + unsigned int no_big_frame_no: 1; + unsigned int num_ports; + int (*power_on)(struct platform_device *); + void (*power_off)(struct platform_device *); + void (*power_suspend)(struct platform_device *); }; -struct unwind_state { - unsigned long fp; - unsigned long pc; - struct llist_node *kr_cur; - struct task_struct *task; - struct stack_info stack; - struct stack_info *stacks; - int nr_stacks; +struct ohci_platform_priv { + struct clk *clks[4]; + struct reset_control *resets; }; -struct kvm_coalesced_mmio_dev { - struct list_head list; - struct kvm_io_device dev; - struct kvm *kvm; - struct kvm_coalesced_mmio_zone zone; +enum { + MUSB_CONTROLLER_MHDRC = 0, + MUSB_CONTROLLER_HDRC = 1, }; -enum kvm_arch_timer_regs { - TIMER_REG_CNT = 0, - TIMER_REG_CVAL = 1, - TIMER_REG_TVAL = 2, - TIMER_REG_CTL = 3, - TIMER_REG_VOFF = 4, +struct musb_pending_work { + int (*callback)(struct musb *, void *); + void *data; + struct list_head node; }; -enum ftr_type { - FTR_EXACT = 0, - FTR_LOWER_SAFE = 1, - FTR_HIGHER_SAFE = 2, - FTR_HIGHER_OR_ZERO_SAFE = 3, +struct musb_hdrc_platform_data { + u8 mode; + const char *clock; + int (*set_vbus)(struct device *, int); + u8 power; + u8 min_power; + u8 potpgt; + unsigned int extvbus: 1; + const struct musb_hdrc_config *config; + void *board_data; + const void *platform_ops; }; -struct arm64_ftr_bits; +typedef void (*btf_trace_i2c_write)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); -struct arm64_ftr_reg { - const char *name; - u64 strict_mask; - u64 user_mask; - u64 sys_val; - u64 user_val; - struct arm64_ftr_override *override; - const struct arm64_ftr_bits *ftr_bits; -}; +typedef void (*btf_trace_i2c_read)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); -struct arm64_ftr_bits { - bool sign; - bool visible; - bool strict; - enum ftr_type type; - u8 shift; - u8 width; - s64 safe_val; -}; +typedef void (*btf_trace_i2c_reply)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); -struct host_mmu { - struct kvm_arch arch; - struct kvm_pgtable pgt; - struct kvm_pgtable_mm_ops mm_ops; - hyp_spinlock_t lock; -}; +typedef void (*btf_trace_i2c_result)(void *, const struct i2c_adapter *, int, int); -enum pkvm_component_id { - PKVM_ID_HOST = 0, - PKVM_ID_HYP = 1, - PKVM_ID_FFA = 2, +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]; }; -enum pkvm_page_state { - PKVM_PAGE_OWNED = 0ULL, - PKVM_PAGE_SHARED_OWNED = 36028797018963968ULL, - PKVM_PAGE_SHARED_BORROWED = 72057594037927936ULL, - __PKVM_PAGE_RESERVED = 108086391056891904ULL, - PKVM_NOPAGE = 108086391056891905ULL, +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 kvm_mem_range { - u64 start; - u64 end; +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 pkvm_mem_transition { - u64 nr_pages; - struct { - enum pkvm_component_id id; - u64 addr; - union { - struct { - u64 completer_addr; - } host; - struct { - u64 completer_addr; - } hyp; - }; - } initiator; - struct { - enum pkvm_component_id id; - } completer; +struct trace_event_raw_i2c_result { + struct trace_entry ent; + int adapter_nr; + __u16 nr_msgs; + __s16 ret; + char __data[0]; }; -struct pkvm_mem_donation { - const struct pkvm_mem_transition tx; +struct trace_event_data_offsets_i2c_write { + u32 buf; }; -struct pkvm_mem_share { - const struct pkvm_mem_transition tx; - const enum kvm_pgtable_prot completer_prot; +struct trace_event_data_offsets_i2c_reply { + u32 buf; }; -struct check_walk_data { - enum pkvm_page_state desired; - enum pkvm_page_state (*get_page_state)(kvm_pte_t, u64); -}; +struct trace_event_data_offsets_i2c_read {}; -typedef void (*btf_trace_notifier_register)(void *, void *); +struct trace_event_data_offsets_i2c_result {}; -typedef void (*btf_trace_notifier_unregister)(void *, void *); +struct i2c_cmd_arg { + unsigned int cmd; + void *arg; +}; -typedef void (*btf_trace_notifier_run)(void *, void *); +struct uniphier_fi2c_priv { + struct completion comp; + struct i2c_adapter adap; + void *membase; + struct clk *clk; + unsigned int len; + u8 *buf; + u32 enabled_irqs; + int error; + unsigned int flags; + unsigned int busy_cnt; + unsigned int clk_cycle; + spinlock_t lock; +}; -struct trace_event_raw_notifier_info { - struct trace_entry ent; - void *cb; - char __data[0]; +struct hwmon_type_attr_list { + const u32 *attrs; + size_t n_attrs; }; -struct trace_event_data_offsets_notifier_info {}; +enum hwmon_temp_attributes { + hwmon_temp_enable = 0, + hwmon_temp_input = 1, + hwmon_temp_type = 2, + hwmon_temp_lcrit = 3, + hwmon_temp_lcrit_hyst = 4, + hwmon_temp_min = 5, + hwmon_temp_min_hyst = 6, + hwmon_temp_max = 7, + hwmon_temp_max_hyst = 8, + hwmon_temp_crit = 9, + hwmon_temp_crit_hyst = 10, + hwmon_temp_emergency = 11, + hwmon_temp_emergency_hyst = 12, + hwmon_temp_alarm = 13, + hwmon_temp_lcrit_alarm = 14, + hwmon_temp_min_alarm = 15, + hwmon_temp_max_alarm = 16, + hwmon_temp_crit_alarm = 17, + hwmon_temp_emergency_alarm = 18, + hwmon_temp_fault = 19, + hwmon_temp_offset = 20, + hwmon_temp_label = 21, + hwmon_temp_lowest = 22, + hwmon_temp_highest = 23, + hwmon_temp_reset_history = 24, + hwmon_temp_rated_min = 25, + hwmon_temp_rated_max = 26, + hwmon_temp_beep = 27, +}; -struct die_args { - struct pt_regs *regs; - const char *str; - long err; - int trapnr; - int signr; +enum hwmon_in_attributes { + hwmon_in_enable = 0, + hwmon_in_input = 1, + hwmon_in_min = 2, + hwmon_in_max = 3, + hwmon_in_lcrit = 4, + hwmon_in_crit = 5, + hwmon_in_average = 6, + hwmon_in_lowest = 7, + hwmon_in_highest = 8, + hwmon_in_reset_history = 9, + hwmon_in_label = 10, + hwmon_in_alarm = 11, + hwmon_in_min_alarm = 12, + hwmon_in_max_alarm = 13, + hwmon_in_lcrit_alarm = 14, + hwmon_in_crit_alarm = 15, + hwmon_in_rated_min = 16, + hwmon_in_rated_max = 17, + hwmon_in_beep = 18, }; -enum msi_desc_filter { - MSI_DESC_ALL = 0, - MSI_DESC_NOTASSOCIATED = 1, - MSI_DESC_ASSOCIATED = 2, +enum hwmon_curr_attributes { + hwmon_curr_enable = 0, + hwmon_curr_input = 1, + hwmon_curr_min = 2, + hwmon_curr_max = 3, + hwmon_curr_lcrit = 4, + hwmon_curr_crit = 5, + hwmon_curr_average = 6, + hwmon_curr_lowest = 7, + hwmon_curr_highest = 8, + hwmon_curr_reset_history = 9, + hwmon_curr_label = 10, + hwmon_curr_alarm = 11, + hwmon_curr_min_alarm = 12, + hwmon_curr_max_alarm = 13, + hwmon_curr_lcrit_alarm = 14, + hwmon_curr_crit_alarm = 15, + hwmon_curr_rated_min = 16, + hwmon_curr_rated_max = 17, + hwmon_curr_beep = 18, }; -struct msi_ctrl { - unsigned int domid; - unsigned int first; - unsigned int last; - unsigned int nirqs; +struct power_supply_hwmon { + struct power_supply *psy; + unsigned long *props; }; -struct idmap_key { - bool map_up; - u32 id; - u32 count; +struct sbsa_gwdt { + struct watchdog_device wdd; + u32 clk; + int version; + void *refresh_base; + void *control_base; }; -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 edac_pci_gen_data { + int edac_idx; }; -struct bpf_kfunc_desc { - struct btf_func_model func_model; - u32 func_id; - s32 imm; - u16 offset; - unsigned long addr; +struct tegra186_cpufreq_cpu { + unsigned int bpmp_cluster_id; + unsigned int edvd_offset; }; -struct bpf_kfunc_desc_tab { - struct bpf_kfunc_desc descs[256]; - u32 nr_descs; +struct cpu_vhint_data { + uint32_t ref_clk_hz; + uint16_t pdiv; + uint16_t mdiv; + uint16_t ndiv_max; + uint16_t ndiv[80]; + uint16_t ndiv_min; + uint16_t vfloor; + uint16_t vceil; + uint16_t vindex_mult; + uint16_t vindex_div; + uint16_t reserved[328]; }; -struct bpf_kfunc_btf { - struct btf *btf; - struct module *module; - u16 offset; +struct tegra186_cpufreq_cluster { + struct cpufreq_frequency_table *table; + u32 ref_clk_khz; + u32 div; }; -struct bpf_kfunc_btf_tab { - struct bpf_kfunc_btf descs[256]; - u32 nr_descs; +struct mrq_cpu_vhint_request { + uint32_t addr; + uint32_t cluster_id; }; -struct bpf_reg_types { - const enum bpf_reg_type types[10]; - u32 *btf_id; +struct tegra186_cpufreq_data { + void *regs; + const struct tegra186_cpufreq_cpu *cpus; + struct tegra186_cpufreq_cluster clusters[0]; }; -enum special_kfunc_type { - KF_bpf_obj_new_impl = 0, - KF_bpf_obj_drop_impl = 1, - KF_bpf_refcount_acquire_impl = 2, - KF_bpf_list_push_front_impl = 3, - KF_bpf_list_push_back_impl = 4, - KF_bpf_list_pop_front = 5, - KF_bpf_list_pop_back = 6, - KF_bpf_cast_to_kern_ctx = 7, - KF_bpf_rdonly_cast = 8, - KF_bpf_rcu_read_lock = 9, - KF_bpf_rcu_read_unlock = 10, - KF_bpf_rbtree_remove = 11, - KF_bpf_rbtree_add_impl = 12, - KF_bpf_rbtree_first = 13, - KF_bpf_dynptr_from_skb = 14, - KF_bpf_dynptr_from_xdp = 15, - KF_bpf_dynptr_slice = 16, - KF_bpf_dynptr_slice_rdwr = 17, - KF_bpf_dynptr_clone = 18, +enum dw_mci_exynos_type { + DW_MCI_TYPE_EXYNOS4210 = 0, + DW_MCI_TYPE_EXYNOS4412 = 1, + DW_MCI_TYPE_EXYNOS5250 = 2, + DW_MCI_TYPE_EXYNOS5420 = 3, + DW_MCI_TYPE_EXYNOS5420_SMU = 4, + DW_MCI_TYPE_EXYNOS7 = 5, + DW_MCI_TYPE_EXYNOS7_SMU = 6, + DW_MCI_TYPE_ARTPEC8 = 7, }; -enum bpf_stack_slot_type { - STACK_INVALID = 0, - STACK_SPILL = 1, - STACK_MISC = 2, - STACK_ZERO = 3, - STACK_DYNPTR = 4, - STACK_ITER = 5, +struct dw_mci_exynos_compatible { + char *compatible; + enum dw_mci_exynos_type ctrl_type; }; -enum bpf_access_src { - ACCESS_DIRECT = 1, - ACCESS_HELPER = 2, +struct dw_mci_exynos_priv_data { + enum dw_mci_exynos_type ctrl_type; + u8 ciu_div; + u32 sdr_timing; + u32 ddr_timing; + u32 hs400_timing; + u32 tuned_sample; + u32 cur_speed; + u32 dqs_delay; + u32 saved_dqs_en; + u32 saved_strobe_ctrl; }; -enum { - DISCOVERED = 16, - EXPLORED = 32, - FALLTHROUGH = 1, - BRANCH = 2, +struct cqhci_slot { + struct mmc_request *mrq; + unsigned int flags; }; -enum { - DONE_EXPLORING = 0, - KEEP_EXPLORING = 1, -}; +struct scpi_chan; -enum reg_arg_type { - SRC_OP = 0, - DST_OP = 1, - DST_OP_NO_MARK = 2, +struct scpi_drvinfo { + u32 protocol_version; + u32 firmware_version; + bool is_legacy; + int num_chans; + int *commands; + unsigned long cmd_priority[1]; + atomic_t next_chan; + struct scpi_ops *scpi_ops; + struct scpi_chan *channels; + struct scpi_dvfs_info *dvfs[8]; }; -enum { - REASON_BOUNDS = -1, - REASON_TYPE = -2, - REASON_PATHS = -3, - REASON_LIMIT = -4, - REASON_STACK = -5, -}; +struct scpi_xfer; -enum kfunc_ptr_arg_type { - KF_ARG_PTR_TO_CTX = 0, - KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, - KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2, - KF_ARG_PTR_TO_DYNPTR = 3, - KF_ARG_PTR_TO_ITER = 4, - KF_ARG_PTR_TO_LIST_HEAD = 5, - KF_ARG_PTR_TO_LIST_NODE = 6, - KF_ARG_PTR_TO_BTF_ID = 7, - KF_ARG_PTR_TO_MEM = 8, - KF_ARG_PTR_TO_MEM_SIZE = 9, - KF_ARG_PTR_TO_CALLBACK = 10, - KF_ARG_PTR_TO_RB_ROOT = 11, - KF_ARG_PTR_TO_RB_NODE = 12, +struct scpi_chan { + struct mbox_client cl; + struct mbox_chan *chan; + void *tx_payload; + void *rx_payload; + struct list_head rx_pending; + struct list_head xfers_list; + struct scpi_xfer *xfers; + spinlock_t rx_lock; + struct mutex xfers_lock; + u8 token; }; -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, +struct scpi_xfer { + u32 slot; + u32 cmd; + u32 status; + const void *tx_buf; + void *rx_buf; + unsigned int tx_len; + unsigned int rx_len; + struct list_head node; + struct completion done; }; -enum { - BTF_TRACING_TYPE_TASK = 0, - BTF_TRACING_TYPE_FILE = 1, - BTF_TRACING_TYPE_VMA = 2, - MAX_BTF_TRACING_TYPE = 3, +enum scpi_drv_cmds { + CMD_SCPI_CAPABILITIES = 0, + CMD_GET_CLOCK_INFO = 1, + CMD_GET_CLOCK_VALUE = 2, + CMD_SET_CLOCK_VALUE = 3, + CMD_GET_DVFS = 4, + CMD_SET_DVFS = 5, + CMD_GET_DVFS_INFO = 6, + CMD_SENSOR_CAPABILITIES = 7, + CMD_SENSOR_INFO = 8, + CMD_SENSOR_VALUE = 9, + CMD_SET_DEVICE_PWR_STATE = 10, + CMD_GET_DEVICE_PWR_STATE = 11, + CMD_MAX_COUNT = 12, }; -enum { - AT_PKT_END = -1, - BEYOND_PKT_END = -2, +enum scpi_error_codes { + SCPI_SUCCESS = 0, + SCPI_ERR_PARAM = 1, + SCPI_ERR_ALIGN = 2, + SCPI_ERR_SIZE = 3, + SCPI_ERR_HANDLER = 4, + SCPI_ERR_ACCESS = 5, + SCPI_ERR_RANGE = 6, + SCPI_ERR_TIMEOUT = 7, + SCPI_ERR_NOMEM = 8, + SCPI_ERR_PWRSTATE = 9, + SCPI_ERR_SUPPORT = 10, + SCPI_ERR_DEVICE = 11, + SCPI_ERR_BUSY = 12, + SCPI_ERR_MAX = 13, }; -enum { - BPF_MAX_LOOPS = 8388608, +struct scpi_shared_mem { + __le32 command; + __le32 status; + u8 payload[0]; }; -struct bpf_iter_meta__safe_trusted { - struct seq_file *seq; +struct legacy_clk_set_value { + __le32 rate; + __le16 id; + __le16 reserved; }; -struct bpf_iter__task__safe_trusted { - struct bpf_iter_meta *meta; - struct task_struct *task; +struct scp_capabilities { + __le32 protocol_version; + __le32 event_version; + __le32 platform_version; + __le32 commands[4]; }; -struct linux_binprm__safe_trusted { - struct file *file; +struct legacy_scpi_shared_mem { + __le32 status; + u8 payload[0]; }; -struct file__safe_trusted { - struct inode *f_inode; +struct clk_get_info { + __le16 id; + __le16 flags; + __le32 min_rate; + __le32 max_rate; + u8 name[20]; }; -struct dentry__safe_trusted { - struct inode *d_inode; +struct clk_set_value { + __le16 id; + __le16 reserved; + __le32 rate; }; -struct socket__safe_trusted { - struct sock *sk; +struct dvfs_set { + u8 domain; + u8 index; }; -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 dvfs_info { + u8 domain; + u8 opp_count; + __le16 latency; + struct { + __le32 freq; + __le32 m_volt; + } opps[16]; }; -struct cgroup__safe_rcu { - struct kernfs_node *kn; +struct _scpi_sensor_info { + __le16 sensor_id; + u8 class; + u8 trigger_type; + char name[20]; }; -struct css_set__safe_rcu { - struct cgroup *dfl_cgrp; -}; +struct dev_pstate_set { + __le16 dev_id; + u8 pstate; +} __attribute__((packed)); -struct mm_struct__safe_rcu_or_null { - struct file __attribute__((btf_type_tag("rcu"))) *exe_file; +struct efi { + const efi_runtime_services_t *runtime; + unsigned int runtime_version; + unsigned int runtime_supported_mask; + unsigned long acpi; + unsigned long acpi20; + unsigned long smbios; + unsigned long smbios3; + unsigned long esrt; + unsigned long tpm_log; + unsigned long tpm_final_log; + unsigned long mokvar_table; + unsigned long coco_secret; + unsigned long unaccepted; + efi_get_time_t *get_time; + efi_set_time_t *set_time; + efi_get_wakeup_time_t *get_wakeup_time; + efi_set_wakeup_time_t *set_wakeup_time; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_info_t *query_variable_info; + efi_query_variable_info_t *query_variable_info_nonblocking; + efi_update_capsule_t *update_capsule; + efi_query_capsule_caps_t *query_capsule_caps; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; + struct efi_memory_map memmap; + unsigned long flags; }; -struct sk_buff__safe_rcu_or_null { - struct sock *sk; -}; +typedef efi_status_t efi_query_variable_store_t(u32, unsigned long, bool); -struct request_sock__safe_rcu_or_null { - struct sock *sk; +struct efivar_operations { + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_store_t *query_variable_store; + efi_query_variable_info_t *query_variable_info; }; -struct 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 efivars { + struct kset *kset; + const struct efivar_operations *ops; +}; -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 debugfs_blob_wrapper { + void *data; + unsigned long size; }; -typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); +typedef struct { + efi_guid_t guid; + unsigned long *ptr; + const char name[16]; +} efi_config_table_type_t; -struct bpf_struct_ops { - const struct bpf_verifier_ops *verifier_ops; - int (*init)(struct btf *); - int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *); - int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); - int (*reg)(void *); - void (*unreg)(void *); - int (*update)(void *, void *); - int (*validate)(void *); - 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; -}; +typedef struct { + efi_guid_t guid; + u32 table; +} efi_config_table_32_t; -struct bpf_kfunc_call_arg_meta { - struct btf *btf; - u32 func_id; - u32 kfunc_flags; - const struct btf_type *func_proto; - const char *func_name; - u32 ref_obj_id; - u8 release_regno; - bool r0_rdonly; - u32 ret_btf_id; - u64 r0_size; - u32 subprogno; - struct { - u64 value; - bool found; - } arg_constant; - struct btf *arg_btf; - u32 arg_btf_id; - bool arg_owning_ref; - struct { - struct btf_field *field; - } arg_list_head; - struct { - struct btf_field *field; - } arg_rbtree_root; - struct { - enum bpf_dynptr_type type; - u32 id; - u32 ref_obj_id; - } initialized_dynptr; +typedef union { struct { - u8 spi; - u8 frameno; - } iter; - u64 mem_size; -}; + efi_guid_t guid; + void *table; + }; + efi_config_table_32_t mixed_mode; +} efi_config_table_t; -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; -}; +typedef struct { + efi_guid_t guid; + u64 table; +} efi_config_table_64_t; -struct bpf_bprintf_data { - u32 *bin_args; - char *buf; - bool get_bin_args; - bool get_buf; +struct linux_efi_random_seed { + u32 size; + u8 bits[0]; }; -struct bpf_sanitize_info { - struct bpf_insn_aux_data aux; - bool mask_to_left; +struct psci_operations { + u32 (*get_version)(); + int (*cpu_suspend)(u32, unsigned long); + int (*cpu_off)(u32); + int (*cpu_on)(unsigned long, unsigned long); + int (*migrate)(unsigned long); + int (*affinity_info)(unsigned long, unsigned long); + int (*migrate_info_type)(); }; -typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); - -typedef void (*btf_trace_alloc_vmap_area)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int); +typedef unsigned long psci_fn(unsigned long, unsigned long, unsigned long, unsigned long); -typedef void (*btf_trace_purge_vmap_area_lazy)(void *, unsigned long, unsigned long, unsigned int); +typedef int (*psci_initcall_t)(const struct device_node *); -typedef void (*btf_trace_free_vmap_area_noflush)(void *, unsigned long, unsigned long, unsigned long); +struct hid_bpf_ops { + struct hid_report * (*hid_get_report)(struct hid_report_enum *, const u8 *); + int (*hid_hw_raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, enum hid_report_type, enum hid_class_request); + struct module *owner; + struct bus_type *bus_type; +}; -struct vfree_deferred { - struct llist_head list; - struct work_struct wq; +enum hid_bpf_prog_type { + HID_BPF_PROG_TYPE_UNDEF = -1, + HID_BPF_PROG_TYPE_DEVICE_EVENT = 0, + HID_BPF_PROG_TYPE_RDESC_FIXUP = 1, + HID_BPF_PROG_TYPE_MAX = 2, }; -struct vmap_block_queue { - spinlock_t lock; - struct list_head free; - struct xarray vmap_blocks; +enum hid_bpf_attach_flags { + HID_BPF_FLAG_NONE = 0, + HID_BPF_FLAG_INSERT_HEAD = 1, + HID_BPF_FLAG_MAX = 2, }; -struct vmap_area { - unsigned long va_start; - unsigned long va_end; - struct rb_node rb_node; - struct list_head list; +struct hid_bpf_ctx { + __u32 index; + const struct hid_device *hid; + __u32 allocated_size; + enum hid_report_type report_type; union { - unsigned long subtree_max_size; - struct vm_struct *vm; + __s32 retval; + __s32 size; }; - unsigned long flags; }; -enum memcg_stat_item { - MEMCG_SWAP = 43, - MEMCG_SOCK = 44, - MEMCG_PERCPU_B = 45, - MEMCG_VMALLOC = 46, - MEMCG_KMEM = 47, - MEMCG_ZSWAP_B = 48, - MEMCG_ZSWAPPED = 49, - MEMCG_NR_STAT = 50, +struct hid_bpf_ctx_kern { + struct hid_bpf_ctx ctx; + u8 *data; }; -enum fit_type { - NOTHING_FIT = 0, - FL_FIT_TYPE = 1, - LE_FIT_TYPE = 2, - RE_FIT_TYPE = 3, - NE_FIT_TYPE = 4, +enum ec_console_read_subcmd { + CONSOLE_READ_NEXT = 0, + CONSOLE_READ_RECENT = 1, }; -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 cros_ec_debugfs { + struct cros_ec_dev *ec; + struct dentry *dir; + struct circ_buf log_buffer; + struct cros_ec_command *read_msg; + struct mutex log_mutex; + struct delayed_work log_poll_work; + struct debugfs_blob_wrapper panicinfo_blob; + struct notifier_block notifier_panic; }; -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 ec_params_console_read_v1 { + uint8_t subcmd; }; -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 ap_reset_log_entry { + uint16_t reset_cause; + uint16_t reserved; + uint32_t reset_time_ms; }; -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; +struct ec_response_uptime_info { + uint32_t time_since_ec_boot_ms; + uint32_t ap_resets_since_ec_boot; + uint32_t ec_reset_flags; + struct ap_reset_log_entry recent_ap_reset[4]; }; -typedef unsigned int pgtbl_mod_mask; +struct cros_ec_platform { + const char *ec_name; + u16 cmd_offset; +}; -struct trace_event_data_offsets_alloc_vmap_area {}; +struct hi3660_chan_info { + unsigned int dst_irq; + unsigned int ack_irq; +}; -struct trace_event_data_offsets_purge_vmap_area_lazy {}; +struct hi3660_mbox { + struct device *dev; + void *base; + struct mbox_chan chan[32]; + struct hi3660_chan_info mchan[32]; + struct mbox_controller controller; +}; -struct trace_event_data_offsets_free_vmap_area_noflush {}; +struct qcom_glink_pipe; -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, +struct qcom_glink { + struct device *dev; + struct qcom_glink_pipe *rx_pipe; + struct qcom_glink_pipe *tx_pipe; + struct work_struct rx_work; + spinlock_t rx_lock; + struct list_head rx_queue; + spinlock_t tx_lock; + spinlock_t idr_lock; + struct idr lcids; + struct idr rcids; + unsigned long features; + bool intentless; + wait_queue_head_t tx_avail_notify; + bool sent_read_notify; + bool abort_tx; }; -enum fanotify_event_type { - FANOTIFY_EVENT_TYPE_FID = 0, - FANOTIFY_EVENT_TYPE_FID_NAME = 1, - FANOTIFY_EVENT_TYPE_PATH = 2, - FANOTIFY_EVENT_TYPE_PATH_PERM = 3, - FANOTIFY_EVENT_TYPE_OVERFLOW = 4, - FANOTIFY_EVENT_TYPE_FS_ERROR = 5, - __FANOTIFY_EVENT_TYPE_NUM = 6, +struct qcom_glink_pipe { + size_t length; + size_t (*avail)(struct qcom_glink_pipe *); + void (*peek)(struct qcom_glink_pipe *, void *, unsigned int, size_t); + void (*advance)(struct qcom_glink_pipe *, size_t); + void (*write)(struct qcom_glink_pipe *, const void *, size_t, const void *, size_t); + void (*kick)(struct qcom_glink_pipe *); }; -enum { - FAN_EVENT_INIT = 0, - FAN_EVENT_REPORTED = 1, - FAN_EVENT_ANSWERED = 2, - FAN_EVENT_CANCELED = 3, +struct glink_msg { + __le16 cmd; + __le16 param1; + __le32 param2; + u8 data[0]; }; -struct fs_error_report { - int error; - struct inode *inode; - struct super_block *sb; +struct glink_defer_cmd { + struct list_head node; + struct glink_msg msg; + u8 data[0]; }; -struct fanotify_fh { - u8 type; - u8 len; - u8 flags; - u8 pad; - unsigned char buf[0]; -}; +struct glink_core_rx_intent; -struct fanotify_event { - struct fsnotify_event fse; - struct hlist_node merge_list; - u32 mask; - struct { - unsigned int type: 3; - unsigned int hash: 29; - }; - struct pid *pid; +struct glink_channel { + struct rpmsg_endpoint ept; + struct rpmsg_device *rpdev; + struct qcom_glink *glink; + struct kref refcount; + spinlock_t recv_lock; + char *name; + unsigned int lcid; + unsigned int rcid; + spinlock_t intent_lock; + struct idr liids; + struct idr riids; + struct work_struct intent_work; + struct list_head done_intents; + struct glink_core_rx_intent *buf; + int buf_offset; + int buf_size; + struct completion open_ack; + struct completion open_req; + struct mutex intent_req_lock; + int intent_req_result; + bool intent_received; + wait_queue_head_t intent_req_wq; }; -struct fanotify_path_event { - struct fanotify_event fae; - struct path path; +struct glink_core_rx_intent { + void *data; + u32 id; + size_t size; + bool reuse; + bool in_use; + u32 offset; + struct list_head node; }; -struct fanotify_fid_event { - struct fanotify_event fae; - __kernel_fsid_t fsid; - struct { - struct fanotify_fh object_fh; - unsigned char _inline_fh_buf[12]; - }; +struct intent_pair { + __le32 size; + __le32 iid; }; -struct fanotify_info { - u8 dir_fh_totlen; - u8 dir2_fh_totlen; - u8 file_fh_totlen; - u8 name_len; - u8 name2_len; - u8 pad[3]; - unsigned char buf[0]; +struct command { + __le16 id; + __le16 lcid; + __le32 count; + __le32 size; + __le32 liid; }; -struct fanotify_name_event { - struct fanotify_event fae; - __kernel_fsid_t fsid; - struct fanotify_info info; +enum fpga_mgr_states { + FPGA_MGR_STATE_UNKNOWN = 0, + FPGA_MGR_STATE_POWER_OFF = 1, + FPGA_MGR_STATE_POWER_UP = 2, + FPGA_MGR_STATE_RESET = 3, + FPGA_MGR_STATE_FIRMWARE_REQ = 4, + FPGA_MGR_STATE_FIRMWARE_REQ_ERR = 5, + FPGA_MGR_STATE_PARSE_HEADER = 6, + FPGA_MGR_STATE_PARSE_HEADER_ERR = 7, + FPGA_MGR_STATE_WRITE_INIT = 8, + FPGA_MGR_STATE_WRITE_INIT_ERR = 9, + FPGA_MGR_STATE_WRITE = 10, + FPGA_MGR_STATE_WRITE_ERR = 11, + FPGA_MGR_STATE_WRITE_COMPLETE = 12, + FPGA_MGR_STATE_WRITE_COMPLETE_ERR = 13, + FPGA_MGR_STATE_OPERATING = 14, }; -struct fanotify_error_event { - struct fanotify_event fae; - s32 error; - u32 err_count; - __kernel_fsid_t fsid; - struct { - struct fanotify_fh object_fh; - unsigned char _inline_fh_buf[128]; - }; -}; +struct fpga_compat_id; -struct fanotify_perm_event { - struct fanotify_event fae; - struct path path; - u32 response; - unsigned short state; - int fd; - union { - struct fanotify_response_info_header hdr; - struct fanotify_response_info_audit_rule audit_rule; - }; -}; +struct fpga_manager_ops; -enum { - _DQUOT_USAGE_ENABLED = 0, - _DQUOT_LIMITS_ENABLED = 1, - _DQUOT_SUSPENDED = 2, - _DQUOT_STATE_FLAGS = 3, +struct fpga_manager { + const char *name; + struct device dev; + struct mutex ref_mutex; + enum fpga_mgr_states state; + struct fpga_compat_id *compat_id; + const struct fpga_manager_ops *mops; + void *priv; }; -enum { - DQF_ROOT_SQUASH_B = 0, - DQF_SYS_FILE_B = 16, - DQF_PRIVATE = 17, +struct fpga_compat_id { + u64 id_h; + u64 id_l; }; -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, -}; +struct fpga_image_info; -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 fpga_manager_ops { + size_t initial_header_size; + bool skip_header; + enum fpga_mgr_states (*state)(struct fpga_manager *); + u64 (*status)(struct fpga_manager *); + int (*parse_header)(struct fpga_manager *, struct fpga_image_info *, const char *, size_t); + int (*write_init)(struct fpga_manager *, struct fpga_image_info *, const char *, size_t); + int (*write)(struct fpga_manager *, const char *, size_t); + int (*write_sg)(struct fpga_manager *, struct sg_table *); + int (*write_complete)(struct fpga_manager *, struct fpga_image_info *); + void (*fpga_remove)(struct fpga_manager *); + const struct attribute_group **groups; }; -struct fs_qfilestat { - __u64 qfs_ino; - __u64 qfs_nblks; - __u32 qfs_nextents; +struct fpga_image_info { + u32 flags; + u32 enable_timeout_us; + u32 disable_timeout_us; + u32 config_complete_timeout_us; + char *firmware_name; + struct sg_table *sgt; + const char *buf; + size_t count; + size_t header_size; + size_t data_size; + int region_id; + struct device *dev; + struct device_node *overlay; }; -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 fpga_manager_info { + const char *name; + struct fpga_compat_id *compat_id; + const struct fpga_manager_ops *mops; + void *priv; }; -struct fs_qfilestatv { - __u64 qfs_ino; - __u64 qfs_nblks; - __u32 qfs_nextents; - __u32 qfs_pad; +struct fpga_mgr_devres { + struct fpga_manager *mgr; }; -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]; -}; +typedef void (*btf_trace_icc_set_bw)(void *, struct icc_path *, struct icc_node *, int, u32, u32); -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 icc_req { + struct hlist_node req_node; + struct icc_node *node; + struct device *dev; + bool enabled; + u32 tag; + u32 avg_bw; + u32 peak_bw; }; -struct if_dqinfo { - __u64 dqi_bgrace; - __u64 dqi_igrace; - __u32 dqi_flags; - __u32 dqi_valid; +struct icc_path { + const char *name; + size_t num_nodes; + struct icc_req reqs[0]; }; -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; +typedef void (*btf_trace_icc_set_bw_end)(void *, struct icc_path *, int); + +struct trace_event_raw_icc_set_bw { + struct trace_entry ent; + u32 __data_loc_path_name; + u32 __data_loc_dev; + u32 __data_loc_node_name; + u32 avg_bw; + u32 peak_bw; + u32 node_avg_bw; + u32 node_peak_bw; + char __data[0]; }; -struct configfs_buffer { - size_t count; - loff_t pos; - char *page; - struct configfs_item_operations *ops; - struct mutex mutex; - int needs_read_fill; - bool read_in_progress; - bool write_in_progress; - char *bin_buffer; - int bin_buffer_size; - int cb_max_size; - struct config_item *item; - struct module *owner; - union { - struct configfs_attribute *attr; - struct configfs_bin_attribute *bin_attr; - }; +struct trace_event_raw_icc_set_bw_end { + struct trace_entry ent; + u32 __data_loc_path_name; + u32 __data_loc_dev; + int ret; + char __data[0]; }; -enum criteria { - CR_POWER2_ALIGNED = 0, - CR_GOAL_LEN_FAST = 1, - CR_BEST_AVAIL_LEN = 2, - CR_GOAL_LEN_SLOW = 3, - CR_ANY_FREE = 4, - EXT4_MB_NUM_CRS = 5, +struct trace_event_data_offsets_icc_set_bw { + u32 path_name; + u32 dev; + u32 node_name; }; -enum { - MB_INODE_PA = 0, - MB_GROUP_PA = 1, +struct trace_event_data_offsets_icc_set_bw_end { + u32 path_name; + u32 dev; }; -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 ahash_request { + struct crypto_async_request base; + unsigned int nbytes; + struct scatterlist *src; + u8 *result; + void *priv; + void *__ctx[0]; }; -struct ext4_prealloc_space { - union { - struct rb_node inode_node; - struct list_head lg_list; - } pa_node; - struct list_head pa_group_list; - union { - struct list_head pa_tmp_list; - struct callback_head pa_rcu; - } u; - spinlock_t pa_lock; - atomic_t pa_count; - unsigned int pa_deleted; - ext4_fsblk_t pa_pstart; - ext4_lblk_t pa_lstart; - ext4_grpblk_t pa_len; - ext4_grpblk_t pa_free; - unsigned short pa_type; - union { - rwlock_t *inode_lock; - spinlock_t *lg_lock; - } pa_node_lock; - struct inode *pa_inode; +struct csum_state { + __wsum csum; + size_t off; }; -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; +typedef size_t (*iov_ustep_f)(void __attribute__((btf_type_tag("user"))) *, size_t, size_t, void *, void *); + +typedef size_t (*iov_step_f)(void *, size_t, size_t, void *, void *); + +struct compat_cmsghdr { + compat_size_t cmsg_len; + compat_int_t cmsg_level; + compat_int_t cmsg_type; }; -struct sg { - struct ext4_group_info info; - ext4_grpblk_t counters[18]; +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, }; -struct ext4_allocation_request { - struct inode *inode; - unsigned int len; - ext4_lblk_t logical; - ext4_lblk_t lleft; - ext4_lblk_t lright; - ext4_fsblk_t goal; - ext4_fsblk_t pleft; - ext4_fsblk_t pright; - unsigned int flags; +enum { + 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, }; -struct ext4_free_extent { - ext4_lblk_t fe_logical; - ext4_grpblk_t fe_start; - ext4_group_t fe_group; - ext4_grpblk_t fe_len; +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 ext4_allocation_context { - struct inode *ac_inode; - struct super_block *ac_sb; - struct ext4_free_extent ac_o_ex; - struct ext4_free_extent ac_g_ex; - struct ext4_free_extent ac_b_ex; - struct ext4_free_extent ac_f_ex; - ext4_grpblk_t ac_orig_goal_len; - __u32 ac_groups_considered; - __u32 ac_flags; - __u16 ac_groups_scanned; - __u16 ac_groups_linear_remaining; - __u16 ac_found; - __u16 ac_cX_found[5]; - __u16 ac_tail; - __u16 ac_buddy; - __u8 ac_status; - __u8 ac_criteria; - __u8 ac_2order; - __u8 ac_op; - struct page *ac_bitmap_page; - struct page *ac_buddy_page; - struct ext4_prealloc_space *ac_pa; - struct ext4_locality_group *ac_lg; +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 { - FILEID_HIGH_OFF = 0, - FILEID_LOW_OFF = 1, - FILE_I_TYPE_OFF = 2, - EMBED_FH_OFF = 3, + ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0, + ETHTOOL_A_TUNNEL_UDP_TABLE = 1, + __ETHTOOL_A_TUNNEL_UDP_CNT = 2, + ETHTOOL_A_TUNNEL_UDP_MAX = 1, }; -struct nfs4_copy_state { - struct list_head copies; - struct list_head src_copies; - nfs4_stateid stateid; - struct completion completion; - uint64_t count; - struct nfs_writeverf verf; - int error; - int flags; - struct nfs4_state *parent_src_state; - struct nfs4_state *parent_dst_state; +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 { - Opt_err___7 = 0, - Opt_fd = 1, - Opt_uid___5 = 2, - Opt_gid___6 = 3, - Opt_pgrp = 4, - Opt_minproto = 5, - Opt_maxproto = 6, - Opt_indirect = 7, - Opt_direct = 8, - Opt_offset = 9, - Opt_strictexpire = 10, - Opt_ignore = 11, + 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 autofs_wait_queue; +struct ethnl_tunnel_info_dump_ctx { + struct ethnl_req_info req_info; + unsigned long ifindex; +}; -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; +enum netns_bpf_attach_type { + NETNS_BPF_INVALID = -1, + NETNS_BPF_FLOW_DISSECTOR = 0, + NETNS_BPF_SK_LOOKUP = 1, + MAX_NETNS_BPF_ATTACH_TYPE = 2, }; -typedef unsigned int autofs_wqt_t; +struct igmphdr { + __u8 type; + __u8 code; + __sum16 csum; + __be32 group; +}; -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 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 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 igmpv3_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + __be32 grec_mca; + __be32 grec_src[0]; }; -struct sem_undo_list { - refcount_t refcnt; - spinlock_t lock; - struct list_head list_proc; +struct igmpv3_report { + __u8 type; + __u8 resv1; + __sum16 csum; + __be16 resv2; + __be16 ngrec; + struct igmpv3_grec grec[0]; }; -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 igmp_mc_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *in_dev; }; -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 igmp_mcf_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *idev; + struct ip_mc_list *im; }; -struct sem_array { - struct kern_ipc_perm sem_perm; - time64_t sem_ctime; - struct list_head pending_alter; - struct list_head pending_const; - struct list_head list_id; - int sem_nsems; - int complex_count; - unsigned int use_global_lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct sem sems[0]; +struct ip_mreq_source { + __be32 imr_multiaddr; + __be32 imr_interface; + __be32 imr_sourceaddr; }; -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 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 semid64_ds { - struct ipc64_perm sem_perm; - long sem_otime; - long sem_ctime; - unsigned long sem_nsems; - unsigned long __unused3; - unsigned long __unused4; +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 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 mld_msg { + struct icmp6hdr mld_hdr; + struct in6_addr mld_mca; }; -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; +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 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 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; + u32 rel_index; }; -struct seminfo { - int semmap; - int semmni; - int semmns; - int semmnu; - int semmsl; - int semopm; - int semume; - int semusz; - int semvmx; - int semaem; +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 prng_context { - spinlock_t prng_lock; - unsigned char rand_data[16]; - unsigned char last_rand_data[16]; - unsigned char DT[16]; - unsigned char I[16]; - unsigned char V[16]; - u32 rand_data_valid; - struct crypto_cipher *tfm; - u32 flags; +struct devlink_linecard_type { + const char *type; + const void *priv; }; -struct statx; +struct crypto_ahash { + bool using_shash; + unsigned int statesize; + unsigned int reqsize; + struct crypto_tfm base; +}; -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 long cycles_t; + +struct compress_format { + unsigned char magic[2]; + const char *name; + decompress_fn decompressor; }; -struct statx_timestamp { - __s64 tv_sec; - __u32 tv_nsec; - __s32 __reserved; +struct group_data { + int limit[21]; + int base[20]; + int permute[258]; + int minLen; + int maxLen; }; -struct statx { - __u32 stx_mask; - __u32 stx_blksize; - __u64 stx_attributes; - __u32 stx_nlink; - __u32 stx_uid; - __u32 stx_gid; - __u16 stx_mode; - __u16 __spare0[1]; - __u64 stx_ino; - __u64 stx_size; - __u64 stx_blocks; - __u64 stx_attributes_mask; - struct statx_timestamp stx_atime; - struct statx_timestamp stx_btime; - struct statx_timestamp stx_ctime; - struct statx_timestamp stx_mtime; - __u32 stx_rdev_major; - __u32 stx_rdev_minor; - __u32 stx_dev_major; - __u32 stx_dev_minor; - __u64 stx_mnt_id; - __u32 stx_dio_mem_align; - __u32 stx_dio_offset_align; - __u64 __spare3[12]; +struct 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 strarray { - char **array; - size_t n; +union efi_device_path_from_text_protocol { + struct { + efi_device_path_protocol_t * (*convert_text_to_device_node)(const efi_char16_t *); + efi_device_path_protocol_t * (*convert_text_to_device_path)(const efi_char16_t *); + }; + struct { + u32 convert_text_to_device_node; + u32 convert_text_to_device_path; + } mixed_mode; }; -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, +typedef union efi_device_path_from_text_protocol efi_device_path_from_text_protocol_t; + +struct efi_file_path_dev_path { + struct efi_generic_dev_path header; + efi_char16_t filename[0]; }; -struct irqc_priv; +union efi_file_protocol; -struct irqc_irq { - int hw_irq; - int requested_irq; - struct irqc_priv *p; +typedef union efi_file_protocol efi_file_protocol_t; + +union efi_file_protocol { + struct { + u64 revision; + efi_status_t (*open)(efi_file_protocol_t *, efi_file_protocol_t **, efi_char16_t *, u64, u64); + efi_status_t (*close)(efi_file_protocol_t *); + efi_status_t (*delete)(efi_file_protocol_t *); + efi_status_t (*read)(efi_file_protocol_t *, unsigned long *, void *); + efi_status_t (*write)(efi_file_protocol_t *, unsigned long, void *); + efi_status_t (*get_position)(efi_file_protocol_t *, u64 *); + efi_status_t (*set_position)(efi_file_protocol_t *, u64); + efi_status_t (*get_info)(efi_file_protocol_t *, efi_guid_t *, unsigned long *, void *); + efi_status_t (*set_info)(efi_file_protocol_t *, efi_guid_t *, unsigned long, void *); + efi_status_t (*flush)(efi_file_protocol_t *); + }; + struct { + u64 revision; + u32 open; + u32 close; + u32 delete; + u32 read; + u32 write; + u32 get_position; + u32 set_position; + u32 get_info; + u32 set_info; + u32 flush; + } mixed_mode; }; -struct irqc_priv { - void *iomem; - void *cpu_int_base; - struct irqc_irq irq[32]; - unsigned int number_of_irqs; - struct device *dev; - struct irq_chip_generic *gc; - struct irq_domain *irq_domain; - atomic_t wakeup_path; +typedef struct { + u64 size; + u64 file_size; + u64 phys_size; + efi_time_t create_time; + efi_time_t last_access_time; + efi_time_t modification_time; + __u64 attribute; + efi_char16_t filename[0]; +} efi_file_info_t; + +struct finfo { + efi_file_info_t info; + efi_char16_t filename[256]; }; -struct hisi_lpc_dev { - spinlock_t cycle_lock; - void *membase; - struct logic_pio_hwaddr *io_host; +union efi_simple_file_system_protocol; + +typedef union efi_simple_file_system_protocol efi_simple_file_system_protocol_t; + +union efi_simple_file_system_protocol { + struct { + u64 revision; + efi_status_t (*open_volume)(efi_simple_file_system_protocol_t *, efi_file_protocol_t **); + }; + struct { + u64 revision; + u32 open_volume; + } mixed_mode; }; -struct lpc_cycle_para { - unsigned int opflags; - unsigned int csize; +struct start_info { + char magic[32]; + unsigned long nr_pages; + unsigned long shared_info; + uint32_t flags; + xen_pfn_t store_mfn; + uint32_t store_evtchn; + union { + struct { + xen_pfn_t mfn; + uint32_t evtchn; + } domU; + struct { + uint32_t info_off; + uint32_t info_size; + } dom0; + } console; + unsigned long pt_base; + unsigned long nr_pt_frames; + unsigned long mfn_list; + unsigned long mod_start; + unsigned long mod_len; + int8_t cmd_line[1024]; + unsigned long first_p2m_pfn; + unsigned long nr_p2m_frames; }; -struct hisi_lpc_acpi_cell { - const char *hid; - const struct platform_device_info *pdevinfo; +struct xen_memory_region { + unsigned long start_pfn; + unsigned long n_pfns; }; -struct phy_reg { - u16 value; - u32 addr; +struct xenpf_settime32 { + uint32_t secs; + uint32_t nsecs; + uint64_t system_time; }; -struct usb3phy_reg { - u32 offset; - u32 enable_bit; - u32 write_enable; +struct xenpf_settime64 { + uint64_t secs; + uint32_t nsecs; + uint32_t mbz; + uint64_t system_time; }; -struct rockchip_usb3phy_port_cfg { - unsigned int reg; - struct usb3phy_reg typec_conn_dir; - struct usb3phy_reg usb3tousb2_en; - struct usb3phy_reg external_psm; - struct usb3phy_reg pipe_status; - struct usb3phy_reg usb3_host_disable; - struct usb3phy_reg usb3_host_port; - struct usb3phy_reg uphy_dp_sel; +struct xenpf_add_memtype { + xen_pfn_t mfn; + uint64_t nr_mfns; + uint32_t type; + uint32_t handle; + uint32_t reg; }; -struct rockchip_typec_phy { - struct device *dev; - void *base; - struct extcon_dev *extcon; - struct regmap *grf_regs; - struct clk *clk_core; - struct clk *clk_ref; - struct reset_control *uphy_rst; - struct reset_control *pipe_rst; - struct reset_control *tcphy_rst; - const struct rockchip_usb3phy_port_cfg *port_cfgs; - struct mutex lock; - bool flip; - u8 mode; +struct xenpf_del_memtype { + uint32_t handle; + uint32_t reg; }; -struct ns2_pinconf { - unsigned int base; - unsigned int offset; - unsigned int src_shift; - unsigned int input_en; - unsigned int pull_shift; - unsigned int drive_shift; +struct xenpf_read_memtype { + uint32_t reg; + xen_pfn_t mfn; + uint64_t nr_mfns; + uint32_t type; }; -struct ns2_pin { - unsigned int pin; - char *name; - struct ns2_pinconf pin_conf; +typedef struct { + union { + void *p; + uint64_t q; + }; +} __guest_handle_void; + +struct xenpf_microcode_update { + __guest_handle_void data; + uint32_t length; }; -struct ns2_mux { - unsigned int base; - unsigned int offset; - unsigned int shift; - unsigned int mask; - unsigned int alt; +struct xenpf_platform_quirk { + uint32_t quirk_id; }; -struct ns2_pin_group { - const char *name; - const unsigned int *pins; - const unsigned int num_pins; - const struct ns2_mux mux; +struct xenpf_efi_time { + uint16_t year; + uint8_t month; + uint8_t day; + uint8_t hour; + uint8_t min; + uint8_t sec; + uint32_t ns; + int16_t tz; + uint8_t daylight; }; -struct ns2_pin_function { - const char *name; - const char * const *groups; - const unsigned int num_groups; +struct xenpf_efi_guid { + uint32_t data1; + uint16_t data2; + uint16_t data3; + uint8_t data4[8]; }; -struct ns2_mux_log; +struct xenpf_efi_runtime_call { + uint32_t function; + uint32_t misc; + xen_ulong_t status; + union { + struct { + struct xenpf_efi_time time; + uint32_t resolution; + uint32_t accuracy; + } get_time; + struct xenpf_efi_time set_time; + struct xenpf_efi_time get_wakeup_time; + struct xenpf_efi_time set_wakeup_time; + struct { + __guest_handle_void name; + xen_ulong_t size; + __guest_handle_void data; + struct xenpf_efi_guid vendor_guid; + } get_variable; + struct { + __guest_handle_void name; + xen_ulong_t size; + __guest_handle_void data; + struct xenpf_efi_guid vendor_guid; + } set_variable; + struct { + xen_ulong_t size; + __guest_handle_void name; + struct xenpf_efi_guid vendor_guid; + } get_next_variable_name; + struct { + uint32_t attr; + uint64_t max_store_size; + uint64_t remain_store_size; + uint64_t max_size; + } query_variable_info; + struct { + __guest_handle_void capsule_header_array; + xen_ulong_t capsule_count; + uint64_t max_capsule_size; + uint32_t reset_type; + } query_capsule_capabilities; + struct { + __guest_handle_void capsule_header_array; + xen_ulong_t capsule_count; + uint64_t sg_list; + } update_capsule; + } u; +}; -struct ns2_pinctrl { - struct pinctrl_dev *pctl; - struct device *dev; - void *base0; - void *base1; - void *pinconf_base; - const struct ns2_pin_group *groups; - unsigned int num_groups; - const struct ns2_pin_function *functions; - unsigned int num_functions; - struct ns2_mux_log *mux_log; - spinlock_t lock; +typedef struct { + union { + unsigned char *p; + uint64_t q; + }; +} __guest_handle_uchar; + +union xenpf_efi_info { + uint32_t version; + struct { + uint64_t addr; + uint32_t nent; + } cfg; + struct { + uint32_t revision; + uint32_t bufsz; + __guest_handle_void name; + } vendor; + struct { + uint64_t addr; + uint64_t size; + uint64_t attr; + uint32_t type; + } mem; }; -struct ns2_mux_log { - struct ns2_mux mux; - bool is_configured; +struct xenpf_firmware_info { + uint32_t type; + uint32_t index; + union { + struct { + uint8_t device; + uint8_t version; + uint16_t interface_support; + uint16_t legacy_max_cylinder; + uint8_t legacy_max_head; + uint8_t legacy_sectors_per_track; + __guest_handle_void edd_params; + } disk_info; + struct { + uint8_t device; + uint32_t mbr_signature; + } disk_mbr_signature; + struct { + uint8_t capabilities; + uint8_t edid_transfer_time; + __guest_handle_uchar edid; + } vbeddc_info; + union xenpf_efi_info efi_info; + uint8_t kbd_shift_flags; + } u; }; -struct rzg2l_dedicated_configs; +struct xenpf_enter_acpi_sleep { + uint16_t val_a; + uint16_t val_b; + uint32_t sleep_state; + uint32_t flags; +}; -struct rzg2l_pinctrl_data { - const char * const *port_pins; - const u32 *port_pin_configs; - unsigned int n_ports; - struct rzg2l_dedicated_configs *dedicated_pins; - unsigned int n_port_pins; - unsigned int n_dedicated_pins; +struct xenpf_change_freq { + uint32_t flags; + uint32_t cpu; + uint64_t freq; }; -struct rzg2l_dedicated_configs { - const char *name; - u32 config; +struct xenpf_getidletime { + __guest_handle_uchar cpumap_bitmap; + uint32_t cpumap_nr_cpus; + __guest_handle_uint64_t idletime; + uint64_t now; }; -struct rzg2l_pinctrl { - struct pinctrl_dev *pctl; - struct pinctrl_desc desc; - struct pinctrl_pin_desc *pins; - const struct rzg2l_pinctrl_data *data; - void *base; - struct device *dev; - struct clk *clk; - struct gpio_chip gpio_chip; - struct pinctrl_gpio_range gpio_range; - unsigned long tint_slot[1]; - spinlock_t bitmap_lock; - unsigned int hwirq[32]; - spinlock_t lock; - struct mutex mutex; +struct xen_processor_flags { + uint32_t bm_control: 1; + uint32_t bm_check: 1; + uint32_t has_cst: 1; + uint32_t power_setup_done: 1; + uint32_t bm_rld_set: 1; }; -struct mvebu_gpio_chip; +struct xen_processor_cx; -struct mvebu_pwm { - struct regmap *regs; - u32 offset; - unsigned long clk_rate; - struct gpio_desc *gpiod; - struct pwm_chip chip; - spinlock_t lock; - struct mvebu_gpio_chip *mvchip; - u32 blink_select; - u32 blink_on_duration; - u32 blink_off_duration; +typedef struct { + union { + struct xen_processor_cx *p; + uint64_t q; + }; +} __guest_handle_xen_processor_cx; + +struct xen_processor_power { + uint32_t count; + struct xen_processor_flags flags; + __guest_handle_xen_processor_cx states; }; -struct mvebu_gpio_chip { - struct gpio_chip chip; - struct regmap *regs; - u32 offset; - struct regmap *percpu_regs; - int irqbase; - struct irq_domain *domain; - int soc_variant; - struct clk *clk; - struct mvebu_pwm *mvpwm; - u32 out_reg; - u32 io_conf_reg; - u32 blink_en_reg; - u32 in_pol_reg; - u32 edge_mask_regs[4]; - u32 level_mask_regs[4]; +struct xen_pct_register { + uint8_t descriptor; + uint16_t length; + uint8_t space_id; + uint8_t bit_width; + uint8_t bit_offset; + uint8_t reserved; + uint64_t address; }; -struct logo_data { - int depth; - int needs_directpalette; - int needs_truepalette; - int needs_cmapreset; - const struct linux_logo *logo; -}; +struct xen_processor_px; -struct fb_cmap32 { - u32 start; - u32 len; - compat_caddr_t red; - compat_caddr_t green; - compat_caddr_t blue; - compat_caddr_t transp; +typedef struct { + union { + struct xen_processor_px *p; + uint64_t q; + }; +} __guest_handle_xen_processor_px; + +struct xen_psd_package { + uint64_t num_entries; + uint64_t revision; + uint64_t domain; + uint64_t coord_type; + uint64_t num_processors; }; -struct fb_fix_screeninfo32 { - char id[16]; - compat_caddr_t smem_start; - u32 smem_len; - u32 type; - u32 type_aux; - u32 visual; - u16 xpanstep; - u16 ypanstep; - u16 ywrapstep; - u32 line_length; - compat_caddr_t mmio_start; - u32 mmio_len; - u32 accel; - u16 reserved[3]; +struct xen_processor_performance { + uint32_t flags; + uint32_t platform_limit; + struct xen_pct_register control_register; + struct xen_pct_register status_register; + uint32_t state_count; + __guest_handle_xen_processor_px states; + struct xen_psd_package domain_info; + uint32_t shared_type; }; -struct acpi_power_resource; +typedef struct { + union { + uint32_t *p; + uint64_t q; + }; +} __guest_handle_uint32_t; -struct acpi_power_resource_entry { - struct list_head node; - struct acpi_power_resource *resource; +struct xenpf_set_processor_pminfo { + uint32_t id; + uint32_t type; + union { + struct xen_processor_power power; + struct xen_processor_performance perf; + __guest_handle_uint32_t pdc; + }; }; -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 xenpf_pcpuinfo { + uint32_t xen_cpuid; + uint32_t max_present; + uint32_t flags; + uint32_t apic_id; + uint32_t acpi_id; }; -struct acpi_power_dependent_device { - struct device *dev; - struct list_head node; +struct xenpf_cpu_ol { + uint32_t cpuid; }; -struct u32_fract { - __u32 numerator; - __u32 denominator; +struct xenpf_cpu_hotadd { + uint32_t apic_id; + uint32_t acpi_id; + uint32_t pxm; }; -struct rockchip_cpuclk { - struct clk_hw hw; - struct clk *alt_parent; - void *reg_base; - struct notifier_block clk_nb; - unsigned int rate_count; - struct rockchip_cpuclk_rate_table *rate_table; - const struct rockchip_cpuclk_reg_data *reg_data; - spinlock_t *lock; +struct xenpf_mem_hotadd { + uint64_t spfn; + uint64_t epfn; + uint32_t pxm; + uint32_t flags; }; -struct rockchip_mmc_clock { - struct clk_hw hw; - void *reg; - int id; - int shift; - int cached_phase; - struct notifier_block clk_rate_change_nb; +struct xenpf_core_parking { + uint32_t type; + uint32_t idle_nums; }; -struct tegra_clk_sync_source { - struct clk_hw hw; - unsigned long rate; - unsigned long max_rate; -}; +typedef struct { + union { + char *p; + uint64_t q; + }; +} __guest_handle_char; -struct tegra_clk_device { - struct notifier_block clk_nb; - struct device *dev; - struct clk_hw *hw; - struct mutex lock; +struct xenpf_symdata { + uint32_t namelen; + uint32_t symnum; + __guest_handle_char name; + uint64_t address; + char type; }; -enum rz_dmac_prep_type { - RZ_DMAC_DESC_MEMCPY = 0, - RZ_DMAC_DESC_SLAVE_SG = 1, +struct dom0_vga_console_info { + uint8_t video_type; + union { + struct { + uint16_t font_height; + uint16_t cursor_x; + uint16_t cursor_y; + uint16_t rows; + uint16_t columns; + } text_mode_3; + struct { + uint16_t width; + uint16_t height; + uint16_t bytes_per_line; + uint16_t bits_per_pixel; + uint32_t lfb_base; + uint32_t lfb_size; + uint8_t red_pos; + uint8_t red_size; + uint8_t green_pos; + uint8_t green_size; + uint8_t blue_pos; + uint8_t blue_size; + uint8_t rsvd_pos; + uint8_t rsvd_size; + uint32_t gbl_caps; + uint16_t mode_attrs; + uint16_t pad; + uint32_t ext_lfb_base; + } vesa_lfb; + } u; }; -struct rz_dmac_chan; +struct xen_platform_op { + uint32_t cmd; + uint32_t interface_version; + union { + struct xenpf_settime32 settime32; + struct xenpf_settime64 settime64; + struct xenpf_add_memtype add_memtype; + struct xenpf_del_memtype del_memtype; + struct xenpf_read_memtype read_memtype; + struct xenpf_microcode_update microcode; + struct xenpf_platform_quirk platform_quirk; + struct xenpf_efi_runtime_call efi_runtime_call; + struct xenpf_firmware_info firmware_info; + struct xenpf_enter_acpi_sleep enter_acpi_sleep; + struct xenpf_change_freq change_freq; + struct xenpf_getidletime getidletime; + struct xenpf_set_processor_pminfo set_pminfo; + struct xenpf_pcpuinfo pcpu_info; + struct xenpf_cpu_ol cpu_ol; + struct xenpf_cpu_hotadd cpu_add; + struct xenpf_mem_hotadd mem_add; + struct xenpf_core_parking core_parking; + struct xenpf_symdata symdata; + struct dom0_vga_console_info dom0_console; + uint8_t pad[128]; + } u; +}; -struct rz_dmac { - struct dma_device engine; - struct device *dev; - struct reset_control *rstc; - void *base; - void *ext_base; - unsigned int n_channels; - struct rz_dmac_chan *channels; - unsigned long modules[16]; +struct xen_power_register { + uint32_t space_id; + uint32_t bit_width; + uint32_t bit_offset; + uint32_t access_size; + uint64_t address; }; -struct rz_dmac_desc; +struct xen_processor_csd; -struct rz_lmdesc; +typedef struct { + union { + struct xen_processor_csd *p; + uint64_t q; + }; +} __guest_handle_xen_processor_csd; -struct rz_dmac_chan { - struct virt_dma_chan vc; - void *ch_base; - void *ch_cmn_base; - unsigned int index; - int irq; - struct rz_dmac_desc *desc; - int descs_allocated; - dma_addr_t src_per_address; - dma_addr_t dst_per_address; - u32 chcfg; - u32 chctrl; - int mid_rid; - struct list_head ld_free; - struct list_head ld_queue; - struct list_head ld_active; - struct { - struct rz_lmdesc *base; - struct rz_lmdesc *head; - struct rz_lmdesc *tail; - dma_addr_t base_dma; - } lmdesc; +struct xen_processor_cx { + struct xen_power_register reg; + uint8_t type; + uint32_t latency; + uint32_t power; + uint32_t dpcnt; + __guest_handle_xen_processor_csd dp; }; -struct rz_dmac_desc { - struct virt_dma_desc vd; - dma_addr_t src; - dma_addr_t dest; - size_t len; - struct list_head node; - enum dma_transfer_direction direction; - enum rz_dmac_prep_type type; - struct scatterlist *sg; - unsigned int sgcount; +struct xen_processor_csd { + uint32_t domain; + uint32_t coord_type; + uint32_t num; }; -struct rz_lmdesc { - u32 header; - u32 sa; - u32 da; - u32 tb; - u32 chcfg; - u32 chitvl; - u32 chext; - u32 nxla; +struct xen_processor_px { + uint64_t core_frequency; + uint64_t power; + uint64_t transition_latency; + uint64_t bus_master_latency; + uint64_t control; + uint64_t status; }; -enum dpio_channel_mode { - DPIO_NO_CHANNEL = 0, - DPIO_LOCAL_CHANNEL = 1, +struct sched_shutdown { + unsigned int reason; }; -struct dpio_attr { - int id; - u64 qbman_portal_ce_offset; - u64 qbman_portal_ci_offset; - u16 qbman_portal_id; - enum dpio_channel_mode channel_mode; - u8 num_priorities; - u32 qbman_version; - u32 clk; +struct xen_hvm_param { + domid_t domid; + uint32_t index; + uint64_t value; }; -struct dpaa2_io_desc { - int receives_notifications; - int has_8prio; - int cpu; - void *regs_cena; - void *regs_cinh; - int dpio_id; - u32 qman_version; - u32 qman_clk; +struct vcpu_register_vcpu_info { + uint64_t mfn; + uint32_t offset; + uint32_t rsvd; }; -struct dpio_priv { - struct dpaa2_io *io; +struct optimistic_spin_node { + struct optimistic_spin_node *next; + struct optimistic_spin_node *prev; + int locked; + int cpu; }; -struct k3_ring; - -struct k3_ring_ops { - int (*push_tail)(struct k3_ring *, void *); - int (*push_head)(struct k3_ring *, void *); - int (*pop_tail)(struct k3_ring *, void *); - int (*pop_head)(struct k3_ring *, void *); +enum rtmutex_chainwalk { + RT_MUTEX_MIN_CHAINWALK = 0, + RT_MUTEX_FULL_CHAINWALK = 1, }; -enum k3_ring_size { - K3_RINGACC_RING_ELSIZE_4 = 0, - K3_RINGACC_RING_ELSIZE_8 = 1, - K3_RINGACC_RING_ELSIZE_16 = 2, - K3_RINGACC_RING_ELSIZE_32 = 3, - K3_RINGACC_RING_ELSIZE_64 = 4, - K3_RINGACC_RING_ELSIZE_128 = 5, - K3_RINGACC_RING_ELSIZE_256 = 6, - K3_RINGACC_RING_ELSIZE_INVALID = 7, +struct rt_wake_q_head { + struct wake_q_head head; + struct task_struct *rtlock_task; }; -struct k3_ring_state { - u32 free; - u32 occ; - u32 windex; - u32 rindex; - u32 tdown_complete: 1; +struct irqchip_fwid { + struct fwnode_handle fwnode; + unsigned int type; + char *name; + phys_addr_t *pa; }; -struct k3_ring_rt_regs; +typedef void (*btf_trace_module_load)(void *, struct module *); -struct k3_ring_fifo_regs; +typedef void (*btf_trace_module_free)(void *, struct module *); -struct k3_ringacc_proxy_target_regs; +typedef void (*btf_trace_module_get)(void *, struct module *, unsigned long); -struct k3_ringacc; +typedef void (*btf_trace_module_put)(void *, struct module *, unsigned long); -struct k3_ring { - struct k3_ring_rt_regs *rt; - struct k3_ring_fifo_regs *fifos; - struct k3_ringacc_proxy_target_regs *proxy; - dma_addr_t ring_mem_dma; - void *ring_mem_virt; - struct k3_ring_ops *ops; - u32 size; - enum k3_ring_size elm_size; - enum k3_ring_mode mode; - u32 flags; - struct k3_ring_state state; - u32 ring_id; - struct k3_ringacc *parent; - u32 use_count; - int proxy_id; - struct device *dma_dev; - u32 asel; -}; +typedef void (*btf_trace_module_request)(void *, char *, bool, unsigned long); -struct k3_ring_rt_regs { - u32 resv_16[4]; - u32 db; - u32 resv_4[1]; - u32 occ; - u32 indx; - u32 hwocc; - u32 hwindx; +struct latch_tree_root { + seqcount_latch_t seq; + struct rb_root tree[2]; }; -struct k3_ring_fifo_regs { - u32 head_data[128]; - u32 tail_data[128]; - u32 peek_head_data[128]; - u32 peek_tail_data[128]; +struct mod_tree_root { + struct latch_tree_root root; + unsigned long addr_min; + unsigned long addr_max; }; -struct k3_ringacc_proxy_target_regs { - u32 control; - u32 status; - u8 resv_512[504]; - u32 data[128]; +enum mod_license { + NOT_GPL_ONLY = 0, + GPL_ONLY = 1, }; -struct k3_ringacc_proxy_gcfg_regs; - -struct k3_ringacc_ops; - -struct k3_ringacc { - struct device *dev; - struct k3_ringacc_proxy_gcfg_regs *proxy_gcfg; - void *proxy_target_base; - u32 num_rings; - unsigned long *rings_inuse; - struct ti_sci_resource *rm_gp_range; - bool dma_ring_reset_quirk; - u32 num_proxies; - unsigned long *proxy_inuse; - struct k3_ring *rings; - struct list_head list; - struct mutex req_lock; - const struct ti_sci_handle *tisci; - const struct ti_sci_rm_ringacc_ops *tisci_ring_ops; - u32 tisci_dev_id; - const struct k3_ringacc_ops *ops; - bool dma_rings; +struct symsearch { + const struct kernel_symbol *start; + const struct kernel_symbol *stop; + const s32 *crcs; + enum mod_license license; }; -struct k3_ringacc_proxy_gcfg_regs { - u32 revision; - u32 config; +enum fail_dup_mod_reason { + FAIL_DUP_MOD_BECOMING = 0, + FAIL_DUP_MOD_LOAD = 1, }; -struct k3_ringacc_ops { - int (*init)(struct platform_device *, struct k3_ringacc *); +struct trace_event_raw_module_load { + struct trace_entry ent; + unsigned int taints; + u32 __data_loc_name; + char __data[0]; }; -struct ringacc_match_data { - struct k3_ringacc_ops ops; +struct trace_event_raw_module_free { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; }; -struct k3_ringacc_soc_data { - unsigned int dma_ring_reset_quirk: 1; +struct trace_event_raw_module_refcnt { + struct trace_entry ent; + unsigned long ip; + int refcnt; + u32 __data_loc_name; + char __data[0]; }; -enum k3_ringacc_access_mode { - K3_RINGACC_ACCESS_MODE_PUSH_HEAD = 0, - K3_RINGACC_ACCESS_MODE_POP_HEAD = 1, - K3_RINGACC_ACCESS_MODE_PUSH_TAIL = 2, - K3_RINGACC_ACCESS_MODE_POP_TAIL = 3, - K3_RINGACC_ACCESS_MODE_PEEK_HEAD = 4, - K3_RINGACC_ACCESS_MODE_PEEK_TAIL = 5, +struct trace_event_raw_module_request { + struct trace_entry ent; + unsigned long ip; + bool wait; + u32 __data_loc_name; + char __data[0]; }; -enum k3_ringacc_proxy_access_mode { - PROXY_ACCESS_MODE_HEAD = 0, - PROXY_ACCESS_MODE_TAIL = 1, - PROXY_ACCESS_MODE_PEEK_HEAD = 2, - PROXY_ACCESS_MODE_PEEK_TAIL = 3, +struct mod_initfree { + struct llist_node node; + void *init_text; + void *init_data; + void *init_rodata; }; -struct k3_ring_cfg { - u32 size; - enum k3_ring_size elm_size; - enum k3_ring_mode mode; - u32 flags; - struct device *dma_dev; - u32 asel; +struct idempotent { + const void *cookie; + struct hlist_node entry; + struct completion complete; + int ret; }; -struct k3_ringacc_init_data { - const struct ti_sci_handle *tisci; - u32 tisci_dev_id; - u32 num_rings; +struct trace_event_data_offsets_module_load { + u32 name; }; -struct uniphier_regulator_soc_data { - int nclks; - const char * const *clock_names; - int nrsts; - const char * const *reset_names; - const struct regulator_desc *desc; - const struct regmap_config *regconf; +struct trace_event_data_offsets_module_free { + u32 name; }; -struct uniphier_regulator_priv { - struct clk_bulk_data clk[2]; - struct reset_control *rst[2]; - const struct uniphier_regulator_soc_data *data; +struct trace_event_data_offsets_module_refcnt { + u32 name; }; -struct serial_ctrl_device { - struct device dev; - struct ida port_ida; +struct trace_event_data_offsets_module_request { + u32 name; }; -struct uart_match { - struct uart_port *port; - struct uart_driver *driver; +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; }; -enum i2c_chip_type { - SLB9635 = 0, - SLB9645 = 1, - UNKNOWN = 2, +struct ftrace_func_command { + struct list_head list; + char *name; + int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); }; -struct tpm_inf_dev { - struct i2c_client *client; - int locality; - u8 buf[1261]; - struct tpm_chip *chip; - enum i2c_chip_type chip_type; - unsigned int adapterlimit; +struct ftrace_probe_ops { + void (*func)(unsigned long, unsigned long, struct trace_array *, struct ftrace_probe_ops *, void *); + int (*init)(struct ftrace_probe_ops *, struct trace_array *, unsigned long, void *, void **); + void (*free)(struct ftrace_probe_ops *, struct trace_array *, unsigned long, void *); + int (*print)(struct seq_file *, unsigned long, struct ftrace_probe_ops *, void *); }; -enum tis_defaults { - TIS_SHORT_TIMEOUT = 750, - TIS_LONG_TIMEOUT = 2000, +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 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, +enum { + TRACE_CTX_NMI = 0, + TRACE_CTX_IRQ = 1, + TRACE_CTX_SOFTIRQ = 2, + TRACE_CTX_NORMAL = 3, + TRACE_CTX_TRANSITION = 4, }; -enum tis_access { - TPM_ACCESS_VALID = 128, - TPM_ACCESS_ACTIVE_LOCALITY = 32, - TPM_ACCESS_REQUEST_PENDING = 4, - TPM_ACCESS_REQUEST_USE = 2, +enum { + TRACE_FUNC_NO_OPTS = 0, + TRACE_FUNC_OPT_STACK = 1, + TRACE_FUNC_OPT_NO_REPEATS = 2, + TRACE_FUNC_OPT_HIGHEST_BIT = 4, }; -struct auxiliary_device; - -struct auxiliary_device_id; +typedef int (*ftrace_mapper_func)(void *); -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; +enum bpf_iter_feature { + BPF_ITER_RESCHED = 1, }; -struct auxiliary_device { - struct device dev; - const char *name; - u32 id; +struct bpf_iter_target_info { + struct list_head list; + const struct bpf_iter_reg *reg_info; + u32 btf_id; }; -struct auxiliary_device_id { - char name[32]; - kernel_ulong_t driver_data; +struct bpf_iter_link { + struct bpf_link link; + struct bpf_iter_aux_info aux; + struct bpf_iter_target_info *tinfo; }; -struct regmap_mmio_context { - void *regs; - unsigned int val_bytes; - bool big_endian; - bool attached_clk; - struct clk *clk; - void (*reg_write)(struct regmap_mmio_context *, unsigned int, unsigned int); - unsigned int (*reg_read)(struct regmap_mmio_context *, unsigned int); +struct bpf_iter_priv_data { + struct bpf_iter_target_info *tinfo; + const struct bpf_iter_seq_info *seq_info; + struct bpf_prog *prog; + u64 session_id; + u64 seq_num; + bool done_stop; + long: 0; + u8 target_private[0]; }; -struct rk808_reg_data { - int addr; - int mask; - int value; +typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64); + +typedef u64 (*btf_bpf_loop)(u32, void *, void *, u64); + +struct bpf_iter_num { + __u64 __opaque[1]; }; -struct megasas_instance; +struct bpf_iter_num_kern { + int cur; + int end; +}; -struct megasas_register_set; +struct bpf_prog_offload_ops; -struct megasas_cmd; +struct bpf_offload_dev { + const struct bpf_prog_offload_ops *ops; + struct list_head netdevs; + void *priv; +}; -struct megasas_instance_template { - void (*fire_cmd)(struct megasas_instance *, dma_addr_t, u32, struct megasas_register_set *); - void (*enable_intr)(struct megasas_instance *); - void (*disable_intr)(struct megasas_instance *); - int (*clear_intr)(struct megasas_instance *); - u32 (*read_fw_status_reg)(struct megasas_instance *); - int (*adp_reset)(struct megasas_instance *, struct megasas_register_set *); - int (*check_reset)(struct megasas_instance *, struct megasas_register_set *); - irqreturn_t (*service_isr)(int, void *); - void (*tasklet)(unsigned long); - u32 (*init_adapter)(struct megasas_instance *); - u32 (*build_and_issue_cmd)(struct megasas_instance *, struct scsi_cmnd *); - void (*issue_dcmd)(struct megasas_instance *, struct megasas_cmd *); +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 *); }; -struct megasas_pd_list { - u16 tid; - u8 driveType; - u8 driveState; +enum xdp_rx_metadata { + XDP_METADATA_KFUNC_RX_TIMESTAMP = 0, + XDP_METADATA_KFUNC_RX_HASH = 1, + MAX_XDP_METADATA_KFUNC = 2, }; -struct megasas_irq_context { - char name[32]; - struct megasas_instance *instance; - u32 MSIxIndex; - u32 os_irq; - struct irq_poll irqpoll; - bool irq_poll_scheduled; - bool irq_line_enable; - atomic_t in_used; +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; }; -struct MR_DRV_SYSTEM_INFO; +typedef struct ns_common *ns_get_path_helper_t(void *); -struct MR_LD_VF_AFFILIATION; +struct bpf_prog_info; -struct MR_LD_VF_AFFILIATION_111; +struct ns_get_path_bpf_prog_args { + struct bpf_prog *prog; + struct bpf_prog_info *info; +}; -struct MR_CTRL_HB_HOST_MEM; +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 MR_PD_INFO; +struct bpf_map_info; -struct MR_TARGET_PROPERTIES; +struct ns_get_path_bpf_map_args { + struct bpf_offloaded_map *offmap; + struct bpf_map_info *info; +}; -struct MR_PD_LIST; +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 megasas_ctrl_info; +struct list_lru_memcg { + struct callback_head rcu; + struct list_lru_one node[0]; +}; -struct MR_LD_LIST; +struct list_lru_memcg_table { + struct list_lru_memcg *mlru; + struct mem_cgroup *memcg; +}; -struct MR_LD_TARGETID_LIST; +struct hugetlb_cgroup_per_node; -struct MR_HOST_DEVICE_LIST; +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[4]; + struct page_counter rsvd_hugepage[4]; + atomic_long_t events[4]; + atomic_long_t events_local[4]; + struct cgroup_file events_file[4]; + struct cgroup_file events_local_file[4]; + struct hugetlb_cgroup_per_node *nodeinfo[0]; +}; -struct MR_SNAPDUMP_PROPERTIES; +struct hugetlb_cgroup_per_node { + unsigned long usage[4]; +}; -struct megasas_aen_event; +enum hugetlb_memory_event { + HUGETLB_MAX = 0, + HUGETLB_NR_MEMORY_EVENTS = 1, +}; -struct megasas_evt_detail; +enum { + RES_USAGE___2 = 0, + RES_RSVD_USAGE = 1, + RES_LIMIT___2 = 2, + RES_RSVD_LIMIT = 3, + RES_MAX_USAGE___2 = 4, + RES_RSVD_MAX_USAGE = 5, + RES_FAILCNT___2 = 6, + RES_RSVD_FAILCNT = 7, +}; -struct megasas_instance { - unsigned int *reply_map; - __le32 *producer; - dma_addr_t producer_h; - __le32 *consumer; - dma_addr_t consumer_h; - struct MR_DRV_SYSTEM_INFO *system_info_buf; - dma_addr_t system_info_h; - struct MR_LD_VF_AFFILIATION *vf_affiliation; - dma_addr_t vf_affiliation_h; - struct MR_LD_VF_AFFILIATION_111 *vf_affiliation_111; - dma_addr_t vf_affiliation_111_h; - struct MR_CTRL_HB_HOST_MEM *hb_host_mem; - dma_addr_t hb_host_mem_h; - struct MR_PD_INFO *pd_info; - dma_addr_t pd_info_h; - struct MR_TARGET_PROPERTIES *tgt_prop; - dma_addr_t tgt_prop_h; - __le32 *reply_queue; - dma_addr_t reply_queue_h; - u32 *crash_dump_buf; - dma_addr_t crash_dump_h; - struct MR_PD_LIST *pd_list_buf; - dma_addr_t pd_list_buf_h; - struct megasas_ctrl_info *ctrl_info_buf; - dma_addr_t ctrl_info_buf_h; - struct MR_LD_LIST *ld_list_buf; - dma_addr_t ld_list_buf_h; - struct MR_LD_TARGETID_LIST *ld_targetid_list_buf; - dma_addr_t ld_targetid_list_buf_h; - struct MR_HOST_DEVICE_LIST *host_device_list_buf; - dma_addr_t host_device_list_buf_h; - struct MR_SNAPDUMP_PROPERTIES *snapdump_prop; - dma_addr_t snapdump_prop_h; - void *crash_buf[512]; - unsigned int fw_crash_buffer_size; - unsigned int fw_crash_state; - unsigned int fw_crash_buffer_offset; - u32 drv_buf_index; - u32 drv_buf_alloc; - u32 crash_dump_fw_support; - u32 crash_dump_drv_support; - u32 crash_dump_app_support; - u32 secure_jbod_support; - u32 support_morethan256jbod; - bool use_seqnum_jbod_fp; - bool smp_affinity_enable; - spinlock_t crashdump_lock; - struct megasas_register_set *reg_set; - u32 *reply_post_host_index_addr[16]; - struct megasas_pd_list pd_list[256]; - struct megasas_pd_list local_pd_list[256]; - u8 ld_ids[256]; - u8 ld_tgtid_status[256]; - u8 ld_ids_prev[256]; - u8 ld_ids_from_raidmap[256]; - s8 init_id; - u16 max_num_sge; - u16 max_fw_cmds; - u16 max_mpt_cmds; - u16 max_mfi_cmds; - u16 max_scsi_cmds; - u16 ldio_threshold; - u16 cur_can_queue; - u32 max_sectors_per_req; - bool msix_load_balance; - struct megasas_aen_event *ev; - struct megasas_cmd **cmd_list; - struct list_head cmd_pool; - spinlock_t mfi_pool_lock; - spinlock_t hba_lock; - spinlock_t stream_lock; - spinlock_t completion_lock; - struct dma_pool *frame_dma_pool; - struct dma_pool *sense_dma_pool; - struct megasas_evt_detail *evt_detail; - dma_addr_t evt_detail_h; - struct megasas_cmd *aen_cmd; - struct semaphore ioctl_sem; - struct Scsi_Host *host; - wait_queue_head_t int_cmd_wait_q; - wait_queue_head_t abort_cmd_wait_q; - struct pci_dev *pdev; - u32 unique_id; - u32 fw_support_ieee; - u32 threshold_reply_count; - atomic_t fw_outstanding; - atomic_t ldio_outstanding; - atomic_t fw_reset_no_pci_access; - atomic64_t total_io_count; - atomic64_t high_iops_outstanding; - struct megasas_instance_template *instancet; - struct tasklet_struct isr_tasklet; - struct work_struct work_init; - struct delayed_work fw_fault_work; - struct workqueue_struct *fw_fault_work_q; - char fault_handler_work_q_name[48]; - u8 flag; - u8 unload; - u8 flag_ieee; - u8 issuepend_done; - u8 disableOnlineCtrlReset; - u8 UnevenSpanSupport; - u8 supportmax256vd; - u8 pd_list_not_supported; - u16 fw_supported_vd_count; - u16 fw_supported_pd_count; - u16 drv_supported_vd_count; - u16 drv_supported_pd_count; - atomic_t adprecovery; - unsigned long last_time; - u32 mfiStatus; - u32 last_seq_num; - struct list_head internal_reset_pending_q; - void *ctrl_context; - unsigned int msix_vectors; - struct megasas_irq_context irq_context[128]; - u64 map_id; - u64 pd_seq_map_id; - struct megasas_cmd *map_update_cmd; - struct megasas_cmd *jbod_seq_cmd; - unsigned long bar; - long reset_flags; - struct mutex reset_mutex; - struct timer_list sriov_heartbeat_timer; - char skip_heartbeat_timer_del; - u8 requestorId; - char PlasmaFW111; - char clusterId[16]; - u8 peerIsPresent; - u8 passive; - u16 throttlequeuedepth; - u8 mask_interrupts; - u16 max_chain_frame_sz; - u8 is_imr; - u8 is_rdpq; - bool dev_handle; - bool fw_sync_cache_support; - u32 mfi_frame_size; - bool msix_combined; - u16 max_raid_mapsize; - u8 r1_ldio_hint_default; - u32 nvme_page_size; - u8 adapter_type; - bool consistent_mask_64bit; - bool support_nvme_passthru; - bool enable_sdev_max_qd; - u8 task_abort_tmo; - u8 max_reset_tmo; - u8 snapdump_wait_time; - struct dentry *debugfs_root; - struct dentry *raidmap_dump; - u8 enable_fw_dev_list; - bool atomic_desc_support; - bool support_seqnum_jbod_fp; - bool support_pci_lane_margining; - u8 low_latency_index_start; - int perf_mode; - int iopoll_q_count; +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; +}; + +struct fsxattr { + __u32 fsx_xflags; + __u32 fsx_extsize; + __u32 fsx_nextents; + __u32 fsx_projid; + __u32 fsx_cowextsize; + unsigned char fsx_pad[8]; }; -struct MR_DRV_SYSTEM_INFO { - u8 infoVersion; - u8 systemIdLength; - u16 reserved0; - u8 systemId[64]; - u8 reserved[1980]; +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]; }; -union MR_LD_REF { - struct { - u8 targetId; - u8 reserved; - __le16 seqNum; - }; - __le32 ref; +struct file_clone_range { + __s64 src_fd; + __u64 src_offset; + __u64 src_length; + __u64 dest_offset; }; -struct MR_LD_VF_MAP { - u32 size; - union MR_LD_REF ref; - u8 ldVfCount; - u8 reserved[6]; - u8 policy[1]; +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 MR_LD_VF_AFFILIATION { - u32 size; - u8 ldCount; - u8 vfCount; - u8 thisVf; - u8 reserved[9]; - struct MR_LD_VF_MAP map[1]; +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 MR_LD_VF_MAP_111 { - u8 targetId; - u8 reserved[3]; - u8 policy[8]; +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]; }; -struct MR_LD_VF_AFFILIATION_111 { - u8 vdCount; - u8 vfCount; - u8 thisVf; - u8 reserved[5]; - struct MR_LD_VF_MAP_111 map[64]; +typedef int __kernel_daddr_t; + +struct ustat { + __kernel_daddr_t f_tfree; + unsigned long f_tinode; + char f_fname[6]; + char f_fpack[6]; }; -struct MR_CTRL_HB_HOST_MEM { - struct { - u32 fwCounter; +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 s32 compat_daddr_t; + +struct compat_ustat { + compat_daddr_t f_tfree; + compat_ino_t f_tinode; + char f_fname[6]; + char f_fpack[6]; +}; + +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 ext2_inode { + __le16 i_mode; + __le16 i_uid; + __le32 i_size; + __le32 i_atime; + __le32 i_ctime; + __le32 i_mtime; + __le32 i_dtime; + __le16 i_gid; + __le16 i_links_count; + __le32 i_blocks; + __le32 i_flags; + union { struct { - u32 debugmode: 1; - u32 reserved: 31; - } debug; - u32 reserved_fw[6]; - u32 driverCounter; - u32 reserved_driver[7]; - } HB; - u8 pad[960]; + __le32 l_i_reserved1; + } linux1; + struct { + __le32 h_i_translator; + } hurd1; + struct { + __le32 m_i_reserved1; + } masix1; + } osd1; + __le32 i_block[15]; + __le32 i_generation; + __le32 i_file_acl; + __le32 i_dir_acl; + __le32 i_faddr; + union { + struct { + __u8 l_i_frag; + __u8 l_i_fsize; + __u16 i_pad1; + __le16 l_i_uid_high; + __le16 l_i_gid_high; + __u32 l_i_reserved2; + } linux2; + struct { + __u8 h_i_frag; + __u8 h_i_fsize; + __le16 h_i_mode_high; + __le16 h_i_uid_high; + __le16 h_i_gid_high; + __le32 h_i_author; + } hurd2; + struct { + __u8 m_i_frag; + __u8 m_i_fsize; + __u16 m_pad1; + __u32 m_i_reserved2[2]; + } masix2; + } osd2; }; -union MR_PD_REF { - struct { - u16 deviceId; - u16 seqNum; - } mrPdRef; - u32 ref; +typedef struct { + __le32 *p; + __le32 key; + struct buffer_head *bh; +} Indirect; + +struct ipc_proc_iface { + const char *path; + const char *header; + int ids; + int (*show)(struct seq_file *, void *); }; -union MR_PD_DDF_TYPE { - struct { - union { - struct { - u16 forcedPDGUID: 1; - u16 inVD: 1; - u16 isGlobalSpare: 1; - u16 isSpare: 1; - u16 isForeign: 1; - u16 reserved: 7; - u16 intf: 4; - } pdType; - u16 type; - }; - u16 reserved; - } ddf; - struct { - u32 reserved; - } nonDisk; - u32 type; +struct ipc_proc_iter { + struct ipc_namespace *ns; + struct pid_namespace *pid_ns; + struct ipc_proc_iface *iface; }; -union MR_PROGRESS { - struct { - u16 progress; - union { - u16 elapsedSecs; - u16 elapsedSecsForLastPercent; - }; - } mrProgress; - u32 w; +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 MR_PD_PROGRESS { - struct { - u32 rbld: 1; - u32 patrol: 1; - u32 clear: 1; - u32 copyBack: 1; - u32 erase: 1; - u32 locate: 1; - u32 reserved: 26; - } active; - union MR_PROGRESS rbld; - union MR_PROGRESS patrol; - union { - union MR_PROGRESS clear; - union MR_PROGRESS erase; - }; - struct { - u32 rbld: 1; - u32 patrol: 1; - u32 clear: 1; - u32 copyBack: 1; - u32 erase: 1; - u32 reserved: 27; - } pause; - union MR_PROGRESS reserved[3]; +struct rsa_asn1_template { + const char *name; + const u8 *data; + size_t size; }; -struct MR_PD_INFO { - union MR_PD_REF ref; - u8 inquiryData[96]; - u8 vpdPage83[64]; - u8 notSupported; - u8 scsiDevType; - union { - u8 connectedPortBitmap; - u8 connectedPortNumbers; - }; - u8 deviceSpeed; - u32 mediaErrCount; - u32 otherErrCount; - u32 predFailCount; - u32 lastPredFailEventSeqNum; - u16 fwState; - u8 disabledForRemoval; - u8 linkSpeed; - union MR_PD_DDF_TYPE state; - struct { - u8 count; - u8 isPathBroken: 4; - u8 reserved3: 3; - u8 widePortCapable: 1; - u8 connectorIndex[2]; - u8 reserved[4]; - u64 sasAddr[2]; - u8 reserved2[16]; - } pathInfo; - u64 rawSize; - u64 nonCoercedSize; - u64 coercedSize; - u16 enclDeviceId; - u8 enclIndex; - union { - u8 slotNumber; - u8 enclConnectorIndex; - }; - struct MR_PD_PROGRESS progInfo; - u8 badBlockTableFull; - u8 unusableInCurrentConfig; - u8 vpdPage83Ext[64]; - u8 powerState; - u8 enclPosition; - u32 allowedOps; - u16 copyBackPartnerId; - u16 enclPartnerDeviceId; - struct { - u16 fdeCapable: 1; - u16 fdeEnabled: 1; - u16 secured: 1; - u16 locked: 1; - u16 foreign: 1; - u16 needsEKM: 1; - u16 reserved: 10; - } security; - u8 mediaType; - u8 notCertified; - u8 bridgeVendor[8]; - u8 bridgeProductIdentification[16]; - u8 bridgeProductRevisionLevel[4]; - u8 satBridgeExists; - u8 interfaceType; - u8 temperature; - u8 emulatedBlockSize; - u16 userDataBlockSize; - u16 reserved2; - struct { - u32 piType: 3; - u32 piFormatted: 1; - u32 piEligible: 1; - u32 NCQ: 1; - u32 WCE: 1; - u32 commissionedSpare: 1; - u32 emergencySpare: 1; - u32 ineligibleForSSCD: 1; - u32 ineligibleForLd: 1; - u32 useSSEraseType: 1; - u32 wceUnchanged: 1; - u32 supportScsiUnmap: 1; - u32 reserved: 18; - } properties; - u64 shieldDiagCompletionTime; - u8 shieldCounter; - u8 linkSpeedOther; - u8 reserved4[2]; - struct { - u32 bbmErrCountSupported: 1; - u32 bbmErrCount: 31; - } bbmErr; - u8 reserved1[84]; -} __attribute__((packed)); +struct pkcs1pad_inst_ctx { + struct crypto_akcipher_spawn spawn; + const struct rsa_asn1_template *digest_info; +}; -struct MR_TARGET_PROPERTIES { - u32 max_io_size_kb; - u32 device_qdepth; - u32 sector_size; - u8 reset_tmo; - u8 reserved[499]; +struct pkcs1pad_ctx { + struct crypto_akcipher *child; + unsigned int key_size; }; -struct MR_PD_ADDRESS { - __le16 deviceId; - u16 enclDeviceId; - union { - struct { - u8 enclIndex; - u8 slotNumber; - } mrPdAddress; - struct { - u8 enclPosition; - u8 enclConnectorIndex; - } mrEnclAddress; - }; - u8 scsiDevType; - union { - u8 connectedPortBitmap; - u8 connectedPortNumbers; - }; - u64 sasAddr[2]; +struct pkcs1pad_request { + struct scatterlist in_sg[2]; + struct scatterlist out_sg[1]; + uint8_t *in_buf; + uint8_t *out_buf; + struct akcipher_request child_req; }; -struct MR_PD_LIST { - __le32 size; - __le32 count; - struct MR_PD_ADDRESS addr[1]; +enum OID { + OID_id_dsa = 0, + OID_id_ecPublicKey = 1, + OID_id_prime192v1 = 2, + OID_id_prime256v1 = 3, + OID_id_ecdsa_with_sha224 = 4, + OID_id_ecdsa_with_sha256 = 5, + OID_id_ecdsa_with_sha384 = 6, + OID_id_ecdsa_with_sha512 = 7, + OID_rsaEncryption = 8, + OID_sha256WithRSAEncryption = 9, + OID_sha384WithRSAEncryption = 10, + OID_sha512WithRSAEncryption = 11, + OID_sha224WithRSAEncryption = 12, + OID_data = 13, + OID_signed_data = 14, + OID_email_address = 15, + OID_contentType = 16, + OID_messageDigest = 17, + OID_signingTime = 18, + OID_smimeCapabilites = 19, + OID_smimeAuthenticatedAttrs = 20, + OID_mskrb5 = 21, + OID_krb5 = 22, + OID_krb5u2u = 23, + OID_msIndirectData = 24, + OID_msStatementType = 25, + OID_msSpOpusInfo = 26, + OID_msPeImageDataObjId = 27, + OID_msIndividualSPKeyPurpose = 28, + OID_msOutlookExpress = 29, + OID_ntlmssp = 30, + OID_negoex = 31, + OID_spnego = 32, + OID_IAKerb = 33, + OID_PKU2U = 34, + OID_Scram = 35, + OID_certAuthInfoAccess = 36, + OID_id_ansip384r1 = 37, + OID_sha256 = 38, + OID_sha384 = 39, + OID_sha512 = 40, + OID_sha224 = 41, + OID_commonName = 42, + OID_surname = 43, + OID_countryName = 44, + OID_locality = 45, + OID_stateOrProvinceName = 46, + OID_organizationName = 47, + OID_organizationUnitName = 48, + OID_title = 49, + OID_description = 50, + OID_name = 51, + OID_givenName = 52, + OID_initials = 53, + OID_generationalQualifier = 54, + OID_subjectKeyIdentifier = 55, + OID_keyUsage = 56, + OID_subjectAltName = 57, + OID_issuerAltName = 58, + OID_basicConstraints = 59, + OID_crlDistributionPoints = 60, + OID_certPolicies = 61, + OID_authorityKeyIdentifier = 62, + OID_extKeyUsage = 63, + OID_NetlogonMechanism = 64, + OID_appleLocalKdcSupported = 65, + OID_gostCPSignA = 66, + OID_gostCPSignB = 67, + OID_gostCPSignC = 68, + OID_gost2012PKey256 = 69, + OID_gost2012PKey512 = 70, + OID_gost2012Digest256 = 71, + OID_gost2012Digest512 = 72, + OID_gost2012Signature256 = 73, + OID_gost2012Signature512 = 74, + OID_gostTC26Sign256A = 75, + OID_gostTC26Sign256B = 76, + OID_gostTC26Sign256C = 77, + OID_gostTC26Sign256D = 78, + OID_gostTC26Sign512A = 79, + OID_gostTC26Sign512B = 80, + OID_gostTC26Sign512C = 81, + OID_sm2 = 82, + OID_sm3 = 83, + OID_SM2_with_SM3 = 84, + OID_sm3WithRSAEncryption = 85, + OID_TPMLoadableKey = 86, + OID_TPMImportableKey = 87, + OID_TPMSealedData = 88, + OID_sha3_256 = 89, + OID_sha3_384 = 90, + OID_sha3_512 = 91, + OID_id_ecdsa_with_sha3_256 = 92, + OID_id_ecdsa_with_sha3_384 = 93, + OID_id_ecdsa_with_sha3_512 = 94, + OID_id_rsassa_pkcs1_v1_5_with_sha3_256 = 95, + OID_id_rsassa_pkcs1_v1_5_with_sha3_384 = 96, + OID_id_rsassa_pkcs1_v1_5_with_sha3_512 = 97, + OID__NR = 98, }; -struct megasas_ctrl_prop { - u16 seq_num; - u16 pred_fail_poll_interval; - u16 intr_throttle_count; - u16 intr_throttle_timeouts; - u8 rebuild_rate; - u8 patrol_read_rate; - u8 bgi_rate; - u8 cc_rate; - u8 recon_rate; - u8 cache_flush_interval; - u8 spinup_drv_count; - u8 spinup_delay; - u8 cluster_enable; - u8 coercion_mode; - u8 alarm_enable; - u8 disable_auto_rebuild; - u8 disable_battery_warn; - u8 ecc_bucket_size; - u16 ecc_bucket_leak_rate; - u8 restore_hotspare_on_insertion; - u8 expose_encl_devices; - u8 maintainPdFailHistory; - u8 disallowHostRequestReordering; - u8 abortCCOnError; - u8 loadBalanceMode; - u8 disableAutoDetectBackplane; - u8 snapVDSpace; - struct { - u32 copyBackDisabled: 1; - u32 SMARTerEnabled: 1; - u32 prCorrectUnconfiguredAreas: 1; - u32 useFdeOnly: 1; - u32 disableNCQ: 1; - u32 SSDSMARTerEnabled: 1; - u32 SSDPatrolReadEnabled: 1; - u32 enableSpinDownUnconfigured: 1; - u32 autoEnhancedImport: 1; - u32 enableSecretKeyControl: 1; - u32 disableOnlineCtrlReset: 1; - u32 allowBootWithPinnedCache: 1; - u32 disableSpinDownHS: 1; - u32 enableJBOD: 1; - u32 reserved: 18; - } OnOffProperties; - union { - u8 autoSnapVDSpace; - u8 viewSpace; - struct { - u16 reserved1: 4; - u16 enable_snap_dump: 1; - u16 reserved2: 1; - u16 enable_fw_dev_list: 1; - u16 reserved3: 9; - } on_off_properties2; - }; - __le16 spinDownTime; - u8 reserved[24]; +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 megasas_ctrl_info { - struct { - __le16 vendor_id; - __le16 device_id; - __le16 sub_vendor_id; - __le16 sub_device_id; - u8 reserved[24]; - } pci; - struct { - u8 PCIX: 1; - u8 PCIE: 1; - u8 iSCSI: 1; - u8 SAS_3G: 1; - u8 SRIOV: 1; - u8 reserved_0: 3; - u8 reserved_1[6]; - u8 port_count; - u64 port_addr[8]; - } host_interface; - struct { - u8 SPI: 1; - u8 SAS_3G: 1; - u8 SATA_1_5G: 1; - u8 SATA_3G: 1; - u8 reserved_0: 4; - u8 reserved_1[6]; - u8 port_count; - u64 port_addr[8]; - } device_interface; - __le32 image_check_word; - __le32 image_component_count; - struct { - char name[8]; - char version[32]; - char build_date[16]; - char built_time[16]; - } image_component[8]; - __le32 pending_image_component_count; - struct { - char name[8]; - char version[32]; - char build_date[16]; - char build_time[16]; - } pending_image_component[8]; - u8 max_arms; - u8 max_spans; - u8 max_arrays; - u8 max_lds; - char product_name[80]; - char serial_no[32]; - struct { - u32 bbu: 1; - u32 alarm: 1; - u32 nvram: 1; - u32 uart: 1; - u32 reserved: 28; - } hw_present; - __le32 current_fw_time; - __le16 max_concurrent_cmds; - __le16 max_sge_count; - __le32 max_request_size; - __le16 ld_present_count; - __le16 ld_degraded_count; - __le16 ld_offline_count; - __le16 pd_present_count; - __le16 pd_disk_present_count; - __le16 pd_disk_pred_failure_count; - __le16 pd_disk_failed_count; - __le16 nvram_size; - __le16 memory_size; - __le16 flash_size; - __le16 mem_correctable_error_count; - __le16 mem_uncorrectable_error_count; - u8 cluster_permitted; - u8 cluster_active; - __le16 max_strips_per_io; - struct { - u32 raid_level_0: 1; - u32 raid_level_1: 1; - u32 raid_level_5: 1; - u32 raid_level_1E: 1; - u32 raid_level_6: 1; - u32 reserved: 27; - } raid_levels; - struct { - u32 rbld_rate: 1; - u32 cc_rate: 1; - u32 bgi_rate: 1; - u32 recon_rate: 1; - u32 patrol_rate: 1; - u32 alarm_control: 1; - u32 cluster_supported: 1; - u32 bbu: 1; - u32 spanning_allowed: 1; - u32 dedicated_hotspares: 1; - u32 revertible_hotspares: 1; - u32 foreign_config_import: 1; - u32 self_diagnostic: 1; - u32 mixed_redundancy_arr: 1; - u32 global_hot_spares: 1; - u32 reserved: 17; - } adapter_operations; - struct { - u32 read_policy: 1; - u32 write_policy: 1; - u32 io_policy: 1; - u32 access_policy: 1; - u32 disk_cache_policy: 1; - u32 reserved: 27; - } ld_operations; - struct { - u8 min; - u8 max; - u8 reserved[2]; - } stripe_sz_ops; - struct { - u32 force_online: 1; - u32 force_offline: 1; - u32 force_rebuild: 1; - u32 reserved: 29; - } pd_operations; - struct { - u32 ctrl_supports_sas: 1; - u32 ctrl_supports_sata: 1; - u32 allow_mix_in_encl: 1; - u32 allow_mix_in_ld: 1; - u32 allow_sata_in_cluster: 1; - u32 reserved: 27; - } pd_mix_support; - u8 ecc_bucket_count; - u8 reserved_2[11]; - struct megasas_ctrl_prop properties; - char package_version[96]; - __le64 deviceInterfacePortAddr2[8]; - u8 reserved3[128]; - struct { - u16 minPdRaidLevel_0: 4; - u16 maxPdRaidLevel_0: 12; - u16 minPdRaidLevel_1: 4; - u16 maxPdRaidLevel_1: 12; - u16 minPdRaidLevel_5: 4; - u16 maxPdRaidLevel_5: 12; - u16 minPdRaidLevel_1E: 4; - u16 maxPdRaidLevel_1E: 12; - u16 minPdRaidLevel_6: 4; - u16 maxPdRaidLevel_6: 12; - u16 minPdRaidLevel_10: 4; - u16 maxPdRaidLevel_10: 12; - u16 minPdRaidLevel_50: 4; - u16 maxPdRaidLevel_50: 12; - u16 minPdRaidLevel_60: 4; - u16 maxPdRaidLevel_60: 12; - u16 minPdRaidLevel_1E_RLQ0: 4; - u16 maxPdRaidLevel_1E_RLQ0: 12; - u16 minPdRaidLevel_1E0_RLQ0: 4; - u16 maxPdRaidLevel_1E0_RLQ0: 12; - u16 reserved[6]; - } pdsForRaidLevels; - __le16 maxPds; - __le16 maxDedHSPs; - __le16 maxGlobalHSP; - __le16 ddfSize; - u8 maxLdsPerArray; - u8 partitionsInDDF; - u8 lockKeyBinding; - u8 maxPITsPerLd; - u8 maxViewsPerLd; - u8 maxTargetId; - __le16 maxBvlVdSize; - __le16 maxConfigurableSSCSize; - __le16 currentSSCsize; - char expanderFwVersion[12]; - __le16 PFKTrialTimeRemaining; - __le16 cacheMemorySize; - struct { - u32 supportPIcontroller: 1; - u32 supportLdPIType1: 1; - u32 supportLdPIType2: 1; - u32 supportLdPIType3: 1; - u32 supportLdBBMInfo: 1; - u32 supportShieldState: 1; - u32 blockSSDWriteCacheChange: 1; - u32 supportSuspendResumeBGops: 1; - u32 supportEmergencySpares: 1; - u32 supportSetLinkSpeed: 1; - u32 supportBootTimePFKChange: 1; - u32 supportJBOD: 1; - u32 disableOnlinePFKChange: 1; - u32 supportPerfTuning: 1; - u32 supportSSDPatrolRead: 1; - u32 realTimeScheduler: 1; - u32 supportResetNow: 1; - u32 supportEmulatedDrives: 1; - u32 headlessMode: 1; - u32 dedicatedHotSparesLimited: 1; - u32 supportUnevenSpans: 1; - u32 supportPointInTimeProgress: 1; - u32 supportDataLDonSSCArray: 1; - u32 mpio: 1; - u32 supportConfigAutoBalance: 1; - u32 activePassive: 2; - u32 reserved: 5; - } adapterOperations2; - u8 driverVersion[32]; - u8 maxDAPdCountSpinup60; - u8 temperatureROC; - u8 temperatureCtrl; - u8 reserved4; - __le16 maxConfigurablePds; - u8 reserved5[2]; - struct { - u32 peerIsPresent: 1; - u32 peerIsIncompatible: 1; - u32 hwIncompatible: 1; - u32 fwVersionMismatch: 1; - u32 ctrlPropIncompatible: 1; - u32 premiumFeatureMismatch: 1; - u32 passive: 1; - u32 reserved: 25; - } cluster; - char clusterId[16]; - struct { - u8 maxVFsSupported; - u8 numVFsEnabled; - u8 requestorId; - u8 reserved; - } iov; - struct { - u32 supportPersonalityChange: 2; - u32 supportThermalPollInterval: 1; - u32 supportDisableImmediateIO: 1; - u32 supportT10RebuildAssist: 1; - u32 supportMaxExtLDs: 1; - u32 supportCrashDump: 1; - u32 supportSwZone: 1; - u32 supportDebugQueue: 1; - u32 supportNVCacheErase: 1; - u32 supportForceTo512e: 1; - u32 supportHOQRebuild: 1; - u32 supportAllowedOpsforDrvRemoval: 1; - u32 supportDrvActivityLEDSetting: 1; - u32 supportNVDRAM: 1; - u32 supportForceFlash: 1; - u32 supportDisableSESMonitoring: 1; - u32 supportCacheBypassModes: 1; - u32 supportSecurityonJBOD: 1; - u32 discardCacheDuringLDDelete: 1; - u32 supportTTYLogCompression: 1; - u32 supportCPLDUpdate: 1; - u32 supportDiskCacheSettingForSysPDs: 1; - u32 supportExtendedSSCSize: 1; - u32 useSeqNumJbodFP: 1; - u32 reserved: 7; - } adapterOperations3; - struct { - u8 cpld_in_flash: 1; - u8 reserved: 7; - u8 reserved1[3]; - u8 userCodeDefinition[12]; - } cpld; - struct { - u16 ctrl_info_ext_supported: 1; - u16 support_ibutton_less: 1; - u16 supported_enc_algo: 1; - u16 support_encrypted_mfc: 1; - u16 image_upload_supported: 1; - u16 support_ses_ctrl_in_multipathcfg: 1; - u16 support_pd_map_target_id: 1; - u16 fw_swaps_bbu_vpd_info: 1; - u16 support_ssc_rev3: 1; - u16 support_dual_fw_update: 1; - u16 support_host_info: 1; - u16 support_flash_comp_info: 1; - u16 support_pl_debug_info: 1; - u16 support_nvme_passthru: 1; - u16 reserved: 2; - } adapter_operations4; - u8 pad[2]; - u32 size; - u32 pad1; - u8 reserved6[64]; - struct { - u32 mr_config_ext2_supported: 1; - u32 support_profile_change: 2; - u32 support_cvhealth_info: 1; - u32 support_pcie: 1; - u32 support_ext_mfg_vpd: 1; - u32 support_oce_only: 1; - u32 support_nvme_tm: 1; - u32 support_snap_dump: 1; - u32 support_fde_type_mix: 1; - u32 support_force_personality_change: 1; - u32 support_psoc_update: 1; - u32 support_pci_lane_margining: 1; - u32 reserved: 19; - } adapter_operations5; - u32 rsvdForAdptOp[63]; - u8 reserved7[3]; - u8 TaskAbortTO; - u8 MaxResetTO; - u8 reserved8[3]; +struct public_key; + +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 MR_LD_LIST { - __le32 ldCount; - __le32 reserved; - struct { - union MR_LD_REF ref; - u8 state; - u8 reserved[3]; - __le64 size; - } ldList[256]; +struct public_key { + void *key; + u32 keylen; + enum OID algo; + void *params; + u32 paramlen; + bool key_is_private; + const char *id_type; + const char *pkey_algo; + unsigned long key_eflags; }; -struct MR_LD_TARGETID_LIST { - __le32 size; - __le32 count; - u8 pad[3]; - u8 targetId[256]; +struct pkcs7_signed_info { + struct pkcs7_signed_info *next; + struct x509_certificate *signer; + unsigned int index; + bool unsupported_crypto; + bool blacklisted; + const void *msgdigest; + unsigned int msgdigest_len; + unsigned int authattrs_len; + const void *authattrs; + unsigned long aa_set; + time64_t signing_time; + struct public_key_signature *sig; }; -struct MR_HOST_DEVICE_LIST_ENTRY { - struct { - union { - struct { - u8 is_sys_pd: 1; - u8 reserved: 7; - } bits; - u8 byte; - } u; - } flags; - u8 scsi_type; - __le16 target_id; - u8 reserved[4]; - __le64 sas_addr[2]; +struct biovec_slab { + int nr_vecs; + char *name; + struct kmem_cache *slab; }; -struct MR_HOST_DEVICE_LIST { - __le32 size; - __le32 count; - __le32 reserved[2]; - struct MR_HOST_DEVICE_LIST_ENTRY host_device_list[1]; +enum { + BIOSET_NEED_BVECS = 1, + BIOSET_NEED_RESCUER = 2, + BIOSET_PERCPU_CACHE = 4, }; -struct MR_SNAPDUMP_PROPERTIES { - u8 offload_num; - u8 max_num_supported; - u8 cur_num_supported; - u8 trigger_min_num_sec_before_ocr; - u8 reserved[12]; +typedef unsigned int iov_iter_extraction_t; + +struct bvec_iter_all { + struct bio_vec bv; + int idx; + unsigned int done; }; -struct megasas_register_set { - u32 doorbell; - u32 fusion_seq_offset; - u32 fusion_host_diag; - u32 reserved_01; - u32 inbound_msg_0; - u32 inbound_msg_1; - u32 outbound_msg_0; - u32 outbound_msg_1; - u32 inbound_doorbell; - u32 inbound_intr_status; - u32 inbound_intr_mask; - u32 outbound_doorbell; - u32 outbound_intr_status; - u32 outbound_intr_mask; - u32 reserved_1[2]; - u32 inbound_queue_port; - u32 outbound_queue_port; - u32 reserved_2[9]; - u32 reply_post_host_index; - u32 reserved_2_2[12]; - u32 outbound_doorbell_clear; - u32 reserved_3[3]; - u32 outbound_scratch_pad_0; - u32 outbound_scratch_pad_1; - u32 outbound_scratch_pad_2; - u32 outbound_scratch_pad_3; - u32 inbound_low_queue_port; - u32 inbound_high_queue_port; - u32 inbound_single_queue_port; - u32 res_6[11]; - u32 host_diag; - u32 seq_offset; - u32 index_registers[807]; +struct bio_slab { + struct kmem_cache *slab; + unsigned int slab_ref; + unsigned int slab_size; + char name[8]; }; -struct megasas_aen_event { - struct delayed_work hotplug_work; - struct megasas_instance *instance; +struct iov_iter_state { + size_t iov_offset; + size_t count; + unsigned long nr_segs; }; -union megasas_frame; +struct mpm_gic_map; -struct megasas_cmd { - union megasas_frame *frame; - dma_addr_t frame_phys_addr; - u8 *sense; - dma_addr_t sense_phys_addr; - u32 index; - u8 sync_cmd; - u8 cmd_status_drv; - u8 abort_aen; - u8 retry_for_fw_reset; - struct list_head list; - struct scsi_cmnd *scmd; - u8 flags; - struct megasas_instance *instance; - union { - struct { - u16 smid; - u16 resvd; - } context; - u32 frame_count; - }; +struct qcom_mpm_priv { + void *base; + raw_spinlock_t lock; + struct mbox_client mbox_client; + struct mbox_chan *mbox_chan; + struct mpm_gic_map *maps; + unsigned int map_cnt; + unsigned int reg_stride; + struct irq_domain *domain; + struct generic_pm_domain genpd; }; -struct megasas_header { - u8 cmd; - u8 sense_len; - u8 cmd_status; - u8 scsi_status; - u8 target_id; - u8 lun; - u8 cdb_len; - u8 sge_count; - __le32 context; - __le32 pad_0; - __le16 flags; - __le16 timeout; - __le32 data_xferlen; +struct mpm_gic_map { + int pin; + irq_hw_number_t hwirq; }; -union _MFI_CAPABILITIES { - struct { - u32 support_fp_remote_lun: 1; - u32 support_additional_msix: 1; - u32 support_fastpath_wb: 1; - u32 support_max_255lds: 1; - u32 support_ndrive_r1_lb: 1; - u32 support_core_affinity: 1; - u32 security_protocol_cmds_fw: 1; - u32 support_ext_queue_depth: 1; - u32 support_ext_io_size: 1; - u32 support_vfid_in_ioframe: 1; - u32 support_fp_rlbypass: 1; - u32 support_qd_throttling: 1; - u32 support_pd_map_target_id: 1; - u32 support_64bit_mode: 1; - u32 support_nvme_passthru: 1; - u32 support_fw_exposed_dev_list: 1; - u32 support_memdump: 1; - u32 reserved: 15; - } mfi_capabilities; - __le32 reg; +struct dpbp_cmd_open { + __le32 dpbp_id; +}; + +struct dpbp_rsp_get_attributes { + __le16 pad; + __le16 bpid; + __le32 id; + __le16 version_major; + __le16 version_minor; +}; + +struct phy_g12a_usb3_pcie_priv { + struct regmap *regmap; + struct regmap *regmap_cr; + struct clk *clk_ref; + struct reset_control *reset; + struct phy *phy; + unsigned int mode; }; -typedef union _MFI_CAPABILITIES MFI_CAPABILITIES; +struct r8a779f0_eth_serdes_drv_data; -struct megasas_init_frame { - u8 cmd; - u8 reserved_0; - u8 cmd_status; - u8 reserved_1; - MFI_CAPABILITIES driver_operations; - __le32 context; - __le32 pad_0; - __le16 flags; - __le16 replyqueue_mask; - __le32 data_xfer_len; - __le32 queue_info_new_phys_addr_lo; - __le32 queue_info_new_phys_addr_hi; - __le32 queue_info_old_phys_addr_lo; - __le32 queue_info_old_phys_addr_hi; - __le32 reserved_4[2]; - __le32 system_info_lo; - __le32 system_info_hi; - __le32 reserved_5[2]; +struct r8a779f0_eth_serdes_channel { + struct r8a779f0_eth_serdes_drv_data *dd; + struct phy *phy; + void *addr; + phy_interface_t phy_interface; + int speed; + int index; }; -struct megasas_sge32 { - __le32 phys_addr; - __le32 length; +struct r8a779f0_eth_serdes_drv_data { + void *addr; + struct platform_device *pdev; + struct reset_control *reset; + struct r8a779f0_eth_serdes_channel channel[3]; + bool initialized; }; -struct megasas_sge64 { - __le64 phys_addr; - __le32 length; -} __attribute__((packed)); +struct mvebu_mpp_ctrl; -struct megasas_sge_skinny { - __le64 phys_addr; - __le32 length; - __le32 flag; +struct mvebu_mpp_ctrl_data; + +struct mvebu_mpp_mode; + +struct mvebu_pinctrl_soc_info { + u8 variant; + const struct mvebu_mpp_ctrl *controls; + struct mvebu_mpp_ctrl_data *control_data; + int ncontrols; + struct mvebu_mpp_mode *modes; + int nmodes; + struct pinctrl_gpio_range *gpioranges; + int ngpioranges; }; -union megasas_sgl { - struct { - struct {} __empty_sge32; - struct megasas_sge32 sge32[0]; - }; - struct { - struct {} __empty_sge64; - struct megasas_sge64 sge64[0]; - }; - struct { - struct {} __empty_sge_skinny; - struct megasas_sge_skinny sge_skinny[0]; +struct mvebu_mpp_ctrl { + const char *name; + u8 pid; + u8 npins; + unsigned int *pins; + int (*mpp_get)(struct mvebu_mpp_ctrl_data *, unsigned int, unsigned long *); + int (*mpp_set)(struct mvebu_mpp_ctrl_data *, unsigned int, unsigned long); + int (*mpp_gpio_req)(struct mvebu_mpp_ctrl_data *, unsigned int); + int (*mpp_gpio_dir)(struct mvebu_mpp_ctrl_data *, unsigned int, bool); +}; + +struct mvebu_mpp_ctrl_data { + union { + void *base; + struct { + struct regmap *map; + u32 offset; + } regmap; }; }; -struct megasas_io_frame { - u8 cmd; - u8 sense_len; - u8 cmd_status; - u8 scsi_status; - u8 target_id; - u8 access_byte; - u8 reserved_0; - u8 sge_count; - __le32 context; - __le32 pad_0; - __le16 flags; - __le16 timeout; - __le32 lba_count; - __le32 sense_buf_phys_addr_lo; - __le32 sense_buf_phys_addr_hi; - __le32 start_lba_lo; - __le32 start_lba_hi; - union megasas_sgl sgl; +struct mvebu_mpp_ctrl_setting; + +struct mvebu_mpp_mode { + u8 pid; + struct mvebu_mpp_ctrl_setting *settings; }; -struct megasas_pthru_frame { - u8 cmd; - u8 sense_len; - u8 cmd_status; - u8 scsi_status; - u8 target_id; - u8 lun; - u8 cdb_len; - u8 sge_count; - __le32 context; - __le32 pad_0; - __le16 flags; - __le16 timeout; - __le32 data_xfer_len; - __le32 sense_buf_phys_addr_lo; - __le32 sense_buf_phys_addr_hi; - u8 cdb[16]; - union megasas_sgl sgl; +struct mvebu_mpp_ctrl_setting { + u8 val; + const char *name; + const char *subname; + u8 variant; + u8 flags; }; -struct megasas_dcmd_frame { - u8 cmd; - u8 reserved_0; - u8 cmd_status; - u8 reserved_1[4]; - u8 sge_count; - __le32 context; - __le32 pad_0; - __le16 flags; - __le16 timeout; - __le32 data_xfer_len; - __le32 opcode; - union { - u8 b[12]; - __le16 s[6]; - __le32 w[3]; - } mbox; - union megasas_sgl sgl; +enum ioctrl_regs___6 { + POC0___2 = 0, + POC1___2 = 1, + POC3 = 2, + POC4___2 = 3, + POC5___2 = 4, + POC6___2 = 5, + POC7___2 = 6, + POC8___2 = 7, }; -struct megasas_abort_frame { - u8 cmd; - u8 reserved_0; - u8 cmd_status; - u8 reserved_1; - __le32 reserved_2; - __le32 context; - __le32 pad_0; - __le16 flags; - __le16 reserved_3; - __le32 reserved_4; - __le32 abort_context; - __le32 pad_1; - __le32 abort_mfi_phys_addr_lo; - __le32 abort_mfi_phys_addr_hi; - __le32 reserved_5[6]; +enum { + GP_LAST___4 = 269, + PIN_VDDQ_AVB0___3 = 270, + PIN_VDDQ_AVB1 = 271, + PIN_VDDQ_AVB2 = 272, + PIN_VDDQ_TSN0 = 273, }; -struct megasas_smp_frame { - u8 cmd; - u8 reserved_1; - u8 cmd_status; - u8 connection_status; - u8 reserved_2[3]; - u8 sge_count; - __le32 context; - __le32 pad_0; - __le16 flags; - __le16 timeout; - __le32 data_xfer_len; - __le64 sas_addr; - union { - struct megasas_sge32 sge32[2]; - struct megasas_sge64 sge64[2]; - } sgl; +struct mvebu_gpio_chip; + +struct mvebu_pwm { + struct regmap *regs; + u32 offset; + unsigned long clk_rate; + struct gpio_desc *gpiod; + struct pwm_chip chip; + spinlock_t lock; + struct mvebu_gpio_chip *mvchip; + u32 blink_select; + u32 blink_on_duration; + u32 blink_off_duration; }; -struct megasas_stp_frame { - u8 cmd; - u8 reserved_1; - u8 cmd_status; - u8 reserved_2; - u8 target_id; - u8 reserved_3[2]; - u8 sge_count; - __le32 context; - __le32 pad_0; - __le16 flags; - __le16 timeout; - __le32 data_xfer_len; - __le16 fis[10]; - __le32 stp_flags; - union { - struct megasas_sge32 sge32[2]; - struct megasas_sge64 sge64[2]; - } sgl; +struct mvebu_gpio_chip { + struct gpio_chip chip; + struct regmap *regs; + u32 offset; + struct regmap *percpu_regs; + int irqbase; + struct irq_domain *domain; + int soc_variant; + struct clk *clk; + struct mvebu_pwm *mvpwm; + u32 out_reg; + u32 io_conf_reg; + u32 blink_en_reg; + u32 in_pol_reg; + u32 edge_mask_regs[4]; + u32 level_mask_regs[4]; }; -union megasas_frame { - struct megasas_header hdr; - struct megasas_init_frame init; - struct megasas_io_frame io; - struct megasas_pthru_frame pthru; - struct megasas_dcmd_frame dcmd; - struct megasas_abort_frame abort; - struct megasas_smp_frame smp; - struct megasas_stp_frame stp; - u8 raw_bytes[64]; +struct syscon_gpio_data { + unsigned int flags; + unsigned int bit_count; + unsigned int dat_bit_offset; + unsigned int dir_bit_offset; + void (*set)(struct gpio_chip *, unsigned int, int); }; -struct megasas_evtarg_pd { - u16 device_id; - u8 encl_index; - u8 slot_number; +struct syscon_gpio_priv { + struct gpio_chip chip; + struct regmap *syscon; + const struct syscon_gpio_data *data; + u32 dreg_offset; + u32 dir_reg_offset; }; -struct megasas_evtarg_ld { - u16 target_id; - u8 ld_index; - u8 reserved; +typedef enum { + PCI_BRIDGE_EMUL_HANDLED = 0, + PCI_BRIDGE_EMUL_NOT_HANDLED = 1, +} pci_bridge_emul_read_status_t; + +struct pci_bridge_emul; + +struct pci_bridge_emul_ops { + pci_bridge_emul_read_status_t (*read_base)(struct pci_bridge_emul *, int, u32 *); + pci_bridge_emul_read_status_t (*read_pcie)(struct pci_bridge_emul *, int, u32 *); + pci_bridge_emul_read_status_t (*read_ext)(struct pci_bridge_emul *, int, u32 *); + void (*write_base)(struct pci_bridge_emul *, int, u32, u32, u32); + void (*write_pcie)(struct pci_bridge_emul *, int, u32, u32, u32); + void (*write_ext)(struct pci_bridge_emul *, int, u32, u32, u32); }; -struct megasas_progress { - __le16 progress; - __le16 elapsed_seconds; +struct pci_bridge_emul_conf { + __le16 vendor; + __le16 device; + __le16 command; + __le16 status; + __le32 class_revision; + u8 cache_line_size; + u8 latency_timer; + u8 header_type; + u8 bist; + __le32 bar[2]; + u8 primary_bus; + u8 secondary_bus; + u8 subordinate_bus; + u8 secondary_latency_timer; + u8 iobase; + u8 iolimit; + __le16 secondary_status; + __le16 membase; + __le16 memlimit; + __le16 pref_mem_base; + __le16 pref_mem_limit; + __le32 prefbaseupper; + __le32 preflimitupper; + __le16 iobaseupper; + __le16 iolimitupper; + u8 capabilities_pointer; + u8 reserve[3]; + __le32 romaddr; + u8 intline; + u8 intpin; + __le16 bridgectrl; }; -union megasas_evt_class_locale { - struct { - u16 locale; - u8 reserved; - s8 class; - } members; - u32 word; +struct pci_bridge_emul_pcie_conf { + u8 cap_id; + u8 next; + __le16 cap; + __le32 devcap; + __le16 devctl; + __le16 devsta; + __le32 lnkcap; + __le16 lnkctl; + __le16 lnksta; + __le32 slotcap; + __le16 slotctl; + __le16 slotsta; + __le16 rootctl; + __le16 rootcap; + __le32 rootsta; + __le32 devcap2; + __le16 devctl2; + __le16 devsta2; + __le32 lnkcap2; + __le16 lnkctl2; + __le16 lnksta2; + __le32 slotcap2; + __le16 slotctl2; + __le16 slotsta2; }; -struct megasas_evt_detail { - __le32 seq_num; - __le32 time_stamp; - __le32 code; - union megasas_evt_class_locale cl; - u8 arg_type; - u8 reserved1[15]; - union { - struct { - struct megasas_evtarg_pd pd; - u8 cdb_length; - u8 sense_length; - u8 reserved[2]; - u8 cdb[16]; - u8 sense[64]; - } cdbSense; - struct megasas_evtarg_ld ld; - struct { - struct megasas_evtarg_ld ld; - __le64 count; - } __attribute__((packed)) ld_count; - struct { - __le64 lba; - struct megasas_evtarg_ld ld; - } __attribute__((packed)) ld_lba; - struct { - struct megasas_evtarg_ld ld; - __le32 prevOwner; - __le32 newOwner; - } ld_owner; - struct { - u64 ld_lba; - u64 pd_lba; - struct megasas_evtarg_ld ld; - struct megasas_evtarg_pd pd; - } ld_lba_pd_lba; - struct { - struct megasas_evtarg_ld ld; - struct megasas_progress prog; - } ld_prog; - struct { - struct megasas_evtarg_ld ld; - u32 prev_state; - u32 new_state; - } ld_state; - struct { - u64 strip; - struct megasas_evtarg_ld ld; - } __attribute__((packed)) ld_strip; - struct megasas_evtarg_pd pd; - struct { - struct megasas_evtarg_pd pd; - u32 err; - } pd_err; - struct { - u64 lba; - struct megasas_evtarg_pd pd; - } __attribute__((packed)) pd_lba; - struct { - u64 lba; - struct megasas_evtarg_pd pd; - struct megasas_evtarg_ld ld; - } pd_lba_ld; - struct { - struct megasas_evtarg_pd pd; - struct megasas_progress prog; - } pd_prog; - struct { - struct megasas_evtarg_pd pd; - u32 prevState; - u32 newState; - } pd_state; - struct { - u16 vendorId; - __le16 deviceId; - u16 subVendorId; - u16 subDeviceId; - } pci; - u32 rate; - char str[96]; - struct { - u32 rtc; - u32 elapsedSeconds; - } time; - struct { - u32 ecar; - u32 elog; - char str[64]; - } ecc; - u8 b[96]; - __le16 s[48]; - __le32 w[24]; - __le64 d[12]; - } args; - char description[128]; +struct pci_bridge_reg_behavior; + +struct pci_bridge_emul { + struct pci_bridge_emul_conf conf; + struct pci_bridge_emul_pcie_conf pcie_conf; + const struct pci_bridge_emul_ops *ops; + struct pci_bridge_reg_behavior *pci_regs_behavior; + struct pci_bridge_reg_behavior *pcie_cap_regs_behavior; + void *data; + u8 pcie_start; + u8 ssid_start; + bool has_pcie; + u16 subsystem_vendor_id; + u16 subsystem_id; }; -enum MFI_STAT { - MFI_STAT_OK = 0, - MFI_STAT_INVALID_CMD = 1, - MFI_STAT_INVALID_DCMD = 2, - MFI_STAT_INVALID_PARAMETER = 3, - MFI_STAT_INVALID_SEQUENCE_NUMBER = 4, - MFI_STAT_ABORT_NOT_POSSIBLE = 5, - MFI_STAT_APP_HOST_CODE_NOT_FOUND = 6, - MFI_STAT_APP_IN_USE = 7, - MFI_STAT_APP_NOT_INITIALIZED = 8, - MFI_STAT_ARRAY_INDEX_INVALID = 9, - MFI_STAT_ARRAY_ROW_NOT_EMPTY = 10, - MFI_STAT_CONFIG_RESOURCE_CONFLICT = 11, - MFI_STAT_DEVICE_NOT_FOUND = 12, - MFI_STAT_DRIVE_TOO_SMALL = 13, - MFI_STAT_FLASH_ALLOC_FAIL = 14, - MFI_STAT_FLASH_BUSY = 15, - MFI_STAT_FLASH_ERROR = 16, - MFI_STAT_FLASH_IMAGE_BAD = 17, - MFI_STAT_FLASH_IMAGE_INCOMPLETE = 18, - MFI_STAT_FLASH_NOT_OPEN = 19, - MFI_STAT_FLASH_NOT_STARTED = 20, - MFI_STAT_FLUSH_FAILED = 21, - MFI_STAT_HOST_CODE_NOT_FOUNT = 22, - MFI_STAT_LD_CC_IN_PROGRESS = 23, - MFI_STAT_LD_INIT_IN_PROGRESS = 24, - MFI_STAT_LD_LBA_OUT_OF_RANGE = 25, - MFI_STAT_LD_MAX_CONFIGURED = 26, - MFI_STAT_LD_NOT_OPTIMAL = 27, - MFI_STAT_LD_RBLD_IN_PROGRESS = 28, - MFI_STAT_LD_RECON_IN_PROGRESS = 29, - MFI_STAT_LD_WRONG_RAID_LEVEL = 30, - MFI_STAT_MAX_SPARES_EXCEEDED = 31, - MFI_STAT_MEMORY_NOT_AVAILABLE = 32, - MFI_STAT_MFC_HW_ERROR = 33, - MFI_STAT_NO_HW_PRESENT = 34, - MFI_STAT_NOT_FOUND = 35, - MFI_STAT_NOT_IN_ENCL = 36, - MFI_STAT_PD_CLEAR_IN_PROGRESS = 37, - MFI_STAT_PD_TYPE_WRONG = 38, - MFI_STAT_PR_DISABLED = 39, - MFI_STAT_ROW_INDEX_INVALID = 40, - MFI_STAT_SAS_CONFIG_INVALID_ACTION = 41, - MFI_STAT_SAS_CONFIG_INVALID_DATA = 42, - MFI_STAT_SAS_CONFIG_INVALID_PAGE = 43, - MFI_STAT_SAS_CONFIG_INVALID_TYPE = 44, - MFI_STAT_SCSI_DONE_WITH_ERROR = 45, - MFI_STAT_SCSI_IO_FAILED = 46, - MFI_STAT_SCSI_RESERVATION_CONFLICT = 47, - MFI_STAT_SHUTDOWN_FAILED = 48, - MFI_STAT_TIME_NOT_SET = 49, - MFI_STAT_WRONG_STATE = 50, - MFI_STAT_LD_OFFLINE = 51, - MFI_STAT_PEER_NOTIFICATION_REJECTED = 52, - MFI_STAT_PEER_NOTIFICATION_FAILED = 53, - MFI_STAT_RESERVATION_IN_PROGRESS = 54, - MFI_STAT_I2C_ERRORS_DETECTED = 55, - MFI_STAT_PCI_ERRORS_DETECTED = 56, - MFI_STAT_CONFIG_SEQ_MISMATCH = 103, - MFI_STAT_INVALID_STATUS = 255, +enum { + LTSSM_DETECT_QUIET = 0, + LTSSM_DETECT_ACTIVE = 1, + LTSSM_POLLING_ACTIVE = 2, + LTSSM_POLLING_COMPLIANCE = 3, + LTSSM_POLLING_CONFIGURATION = 4, + LTSSM_CONFIG_LINKWIDTH_START = 5, + LTSSM_CONFIG_LINKWIDTH_ACCEPT = 6, + LTSSM_CONFIG_LANENUM_ACCEPT = 7, + LTSSM_CONFIG_LANENUM_WAIT = 8, + LTSSM_CONFIG_COMPLETE = 9, + LTSSM_CONFIG_IDLE = 10, + LTSSM_RECOVERY_RCVR_LOCK = 11, + LTSSM_RECOVERY_SPEED = 12, + LTSSM_RECOVERY_RCVR_CFG = 13, + LTSSM_RECOVERY_IDLE = 14, + LTSSM_L0 = 16, + LTSSM_RX_L0S_ENTRY = 17, + LTSSM_RX_L0S_IDLE = 18, + LTSSM_RX_L0S_FTS = 19, + LTSSM_TX_L0S_ENTRY = 20, + LTSSM_TX_L0S_IDLE = 21, + LTSSM_TX_L0S_FTS = 22, + LTSSM_L1_ENTRY = 23, + LTSSM_L1_IDLE = 24, + LTSSM_L2_IDLE = 25, + LTSSM_L2_TRANSMIT_WAKE = 26, + LTSSM_DISABLED = 32, + LTSSM_LOOPBACK_ENTRY_MASTER = 33, + LTSSM_LOOPBACK_ACTIVE_MASTER = 34, + LTSSM_LOOPBACK_EXIT_MASTER = 35, + LTSSM_LOOPBACK_ENTRY_SLAVE = 36, + LTSSM_LOOPBACK_ACTIVE_SLAVE = 37, + LTSSM_LOOPBACK_EXIT_SLAVE = 38, + LTSSM_HOT_RESET = 39, + LTSSM_RECOVERY_EQUALIZATION_PHASE0 = 40, + LTSSM_RECOVERY_EQUALIZATION_PHASE1 = 41, + LTSSM_RECOVERY_EQUALIZATION_PHASE2 = 42, + LTSSM_RECOVERY_EQUALIZATION_PHASE3 = 43, }; -enum DCMD_RETURN_STATUS { - DCMD_SUCCESS = 0, - DCMD_TIMEOUT = 1, - DCMD_FAILED = 2, - DCMD_BUSY = 3, - DCMD_INIT = 255, +struct advk_pcie { + struct platform_device *pdev; + void *base; + struct { + phys_addr_t match; + phys_addr_t remap; + phys_addr_t mask; + u32 actions; + } wins[8]; + u8 wins_count; + struct irq_domain *rp_irq_domain; + struct irq_domain *irq_domain; + struct irq_chip irq_chip; + raw_spinlock_t irq_lock; + struct irq_domain *msi_domain; + struct irq_domain *msi_inner_domain; + raw_spinlock_t msi_irq_lock; + unsigned long msi_used[1]; + struct mutex msi_used_lock; + int link_gen; + struct pci_bridge_emul bridge; + struct gpio_desc *reset_gpio; + struct phy *phy; }; -enum MR_ADAPTER_TYPE { - MFI_SERIES = 1, - THUNDERBOLT_SERIES = 2, - INVADER_SERIES = 3, - VENTURA_SERIES = 4, - AERO_SERIES = 5, +struct rockchip_pcie { + void *reg_base; + void *apb_base; + bool legacy_phy; + struct phy *phys[4]; + struct reset_control *core_rst; + struct reset_control *mgmt_rst; + struct reset_control *mgmt_sticky_rst; + struct reset_control *pipe_rst; + struct reset_control *pm_rst; + struct reset_control *aclk_rst; + struct reset_control *pclk_rst; + struct clk *aclk_pcie; + struct clk *aclk_perf_pcie; + struct clk *hclk_pcie; + struct clk *clk_pcie_pm; + struct regulator *vpcie12v; + struct regulator *vpcie3v3; + struct regulator *vpcie1v8; + struct regulator *vpcie0v9; + struct gpio_desc *ep_gpio; + u32 lanes; + u8 lanes_map; + int link_gen; + struct device *dev; + struct irq_domain *irq_domain; + int offset; + void *msg_region; + phys_addr_t msg_bus_addr; + bool is_rc; + struct resource *mem_res; }; -enum MR_PERF_MODE { - MR_BALANCED_PERF_MODE = 0, - MR_IOPS_PERF_MODE = 1, - MR_LATENCY_PERF_MODE = 2, +struct fbcon_display; + +struct fbcon_ops { + void (*bmove)(struct vc_data *, struct fb_info *, int, int, int, int, int, int); + void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int); + void (*putcs)(struct vc_data *, struct fb_info *, const unsigned short *, int, int, int, int, int); + void (*clear_margins)(struct vc_data *, struct fb_info *, int, int); + void (*cursor)(struct vc_data *, struct fb_info *, int, int, int); + int (*update_start)(struct fb_info *); + int (*rotate_font)(struct fb_info *, struct vc_data *); + struct fb_var_screeninfo var; + struct delayed_work cursor_work; + struct fb_cursor cursor_state; + struct fbcon_display *p; + struct fb_info *info; + int currcon; + int cur_blink_jiffies; + int cursor_flash; + int cursor_reset; + int blank_state; + int graphics; + int save_graphics; + bool initialized; + int rotate; + int cur_rotate; + char *cursor_data; + u8 *fontbuffer; + u8 *fontdata; + u8 *cursor_src; + u32 cursor_size; + u32 fd_size; }; -enum MFI_CMD_OP { - MFI_CMD_INIT = 0, - MFI_CMD_LD_READ = 1, - MFI_CMD_LD_WRITE = 2, - MFI_CMD_LD_SCSI_IO = 3, - MFI_CMD_PD_SCSI_IO = 4, - MFI_CMD_DCMD = 5, - MFI_CMD_ABORT = 6, - MFI_CMD_SMP = 7, - MFI_CMD_STP = 8, - MFI_CMD_NVME = 9, - MFI_CMD_TOOLBOX = 10, - MFI_CMD_OP_COUNT = 11, - MFI_CMD_INVALID = 255, +struct fbcon_display { + const u_char *fontdata; + int userfont; + u_short inverse; + short yscroll; + int vrows; + int cursor_shape; + int con_rotate; + u32 xres_virtual; + u32 yres_virtual; + u32 height; + u32 width; + u32 bits_per_pixel; + u32 grayscale; + u32 nonstd; + u32 accel_flags; + u32 rotate; + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + const struct fb_videomode *mode; }; -enum MR_FW_CRASH_DUMP_STATE { - UNAVAILABLE = 0, - AVAILABLE = 1, - COPYING = 2, - COPIED = 3, - COPY_ERROR = 4, +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 *); }; -enum { - MEGASAS_HBA_OPERATIONAL = 0, - MEGASAS_ADPRESET_SM_INFAULT = 1, - MEGASAS_ADPRESET_SM_FW_RESET_SUCCESS = 2, - MEGASAS_ADPRESET_SM_OPERATIONAL = 3, - MEGASAS_HW_CRITICAL_ERROR = 4, - MEGASAS_ADPRESET_SM_POLLING = 5, - MEGASAS_ADPRESET_INPROG_SIGN = 3735936685, +struct find_child_walk_data { + struct acpi_device *adev; + u64 address; + int score; + bool check_sta; + bool check_children; }; -enum MR_SCSI_CMD_TYPE { - READ_WRITE_LDIO = 0, - NON_READ_WRITE_LDIO = 1, - READ_WRITE_SYSPDIO = 2, - NON_READ_WRITE_SYSPDIO = 3, +struct imx_clk_scu_rsrc_table { + const u32 *rsrc; + u8 num; }; -enum FW_BOOT_CONTEXT { - PROBE_CONTEXT = 0, - OCR_CONTEXT = 1, +struct meson_clk_mpll_data { + struct parm sdm; + struct parm sdm_en; + struct parm n2; + struct parm ssen; + struct parm misc; + const struct reg_sequence *init_regs; + unsigned int init_count; + spinlock_t *lock; + u8 flags; }; -enum _MR_CRASH_BUF_STATUS { - MR_CRASH_BUF_TURN_OFF = 0, - MR_CRASH_BUF_TURN_ON = 1, +struct qcom_reset_controller { + const struct qcom_reset_map *reset_map; + struct regmap *regmap; + struct reset_controller_dev rcdev; }; -enum MEGASAS_OCR_CAUSE { - FW_FAULT_OCR = 0, - SCSIIO_TIMEOUT_OCR = 1, - MFI_IO_TIMEOUT_OCR = 2, +struct qcom_cc { + struct qcom_reset_controller reset; + struct clk_regmap **rclks; + size_t num_rclks; }; -enum CMD_RET_VALUES { - REFIRE_CMD = 1, - COMPLETE_CMD = 2, - RETURN_CMD = 3, +struct tegra_dma_channel___2; + +struct tegra_dma_chip_data___2 { + bool hw_support_pause; + unsigned int nr_channels; + unsigned int channel_reg_size; + unsigned int max_dma_count; + int (*terminate)(struct tegra_dma_channel___2 *); }; -enum REGION_TYPE { - REGION_TYPE_UNUSED = 0, - REGION_TYPE_SHARED_READ = 1, - REGION_TYPE_SHARED_WRITE = 2, - REGION_TYPE_EXCLUSIVE = 3, +struct tegra_dma___2; + +struct tegra_dma_desc___2; + +struct tegra_dma_channel___2 { + bool config_init; + char name[30]; + enum dma_transfer_direction sid_dir; + int id; + int irq; + int slave_id; + struct tegra_dma___2 *tdma; + struct virt_dma_chan vc; + struct tegra_dma_desc___2 *dma_desc; + struct dma_slave_config dma_sconfig; + unsigned int stream_id; + unsigned long chan_base_offset; }; -enum MR_RAID_FLAGS_IO_SUB_TYPE { - MR_RAID_FLAGS_IO_SUB_TYPE_NONE = 0, - MR_RAID_FLAGS_IO_SUB_TYPE_SYSTEM_PD = 1, - MR_RAID_FLAGS_IO_SUB_TYPE_RMW_DATA = 2, - MR_RAID_FLAGS_IO_SUB_TYPE_RMW_P = 3, - MR_RAID_FLAGS_IO_SUB_TYPE_RMW_Q = 4, - MR_RAID_FLAGS_IO_SUB_TYPE_CACHE_BYPASS = 6, - MR_RAID_FLAGS_IO_SUB_TYPE_LDIO_BW_LIMIT = 7, - MR_RAID_FLAGS_IO_SUB_TYPE_R56_DIV_OFFLOAD = 8, +struct tegra_dma___2 { + const struct tegra_dma_chip_data___2 *chip_data; + unsigned long sid_m2d_reserved; + unsigned long sid_d2m_reserved; + u32 chan_mask; + void *base_addr; + struct device *dev; + struct dma_device dma_dev; + struct reset_control *rst; + struct tegra_dma_channel___2 channels[0]; }; -enum MR_PD_TYPE { - UNKNOWN_DRIVE = 0, - PARALLEL_SCSI = 1, - SAS_PD = 2, - SATA_PD = 3, - FC_PD = 4, - NVME_PD = 5, +struct tegra_dma_channel_regs___2 { + u32 csr; + u32 src_ptr; + u32 dst_ptr; + u32 high_addr_ptr; + u32 mc_seq; + u32 mmio_seq; + u32 wcount; + u32 fixed_pattern; }; -struct MR_LD_TARGET_SYNC { - u8 targetId; - u8 reserved; - __le16 seqNum; +struct tegra_dma_sg_req___2 { + unsigned int len; + struct tegra_dma_channel_regs___2 ch_regs; }; -struct LOG_BLOCK_SPAN_INFO; +struct tegra_dma_desc___2 { + bool cyclic; + unsigned int bytes_req; + unsigned int bytes_xfer; + unsigned int sg_idx; + unsigned int sg_count; + struct virt_dma_desc vd; + struct tegra_dma_channel___2 *tdc; + struct tegra_dma_sg_req___2 sg_req[0]; +}; -typedef struct LOG_BLOCK_SPAN_INFO *PLD_SPAN_INFO; +struct dpaa2_io_desc { + int receives_notifications; + int has_8prio; + int cpu; + void *regs_cena; + void *regs_cinh; + int dpio_id; + u32 qman_version; + u32 qman_clk; +}; -struct _LD_SPAN_SET { - u64 log_start_lba; - u64 log_end_lba; - u64 span_row_start; - u64 span_row_end; - u64 data_strip_start; - u64 data_strip_end; - u64 data_row_start; - u64 data_row_end; - u8 strip_offset[8]; - u32 span_row_data_width; - u32 diff; - u32 reserved[2]; +struct qbman_swp_desc { + void *cena_bar; + void *cinh_bar; + u32 qman_version; + u32 qman_clk; + u32 qman_256_cycles_per_ns; }; -typedef struct _LD_SPAN_SET LD_SPAN_SET; +struct qbman_swp; -struct LOG_BLOCK_SPAN_INFO { - LD_SPAN_SET span_set[8]; +struct dpaa2_io { + struct dpaa2_io_desc dpio_desc; + struct qbman_swp_desc swp_desc; + struct qbman_swp *swp; + struct list_head node; + spinlock_t lock_mgmt_cmd; + spinlock_t lock_notifications; + struct list_head notifications; + struct device *dev; + struct dim rx_dim; + spinlock_t dim_lock; + u16 event_ctr; + u64 bytes; + u64 frames; }; -struct LD_LOAD_BALANCE_INFO { - u8 loadBalanceFlag; - u8 reserved1; - atomic_t scsi_pending_cmds[256]; - u64 last_accessed_block[256]; +struct qbman_swp { + const struct qbman_swp_desc *desc; + void *addr_cena; + void *addr_cinh; + struct { + u32 valid_bit; + } mc; + struct { + u32 valid_bit; + } mr; + u32 sdq; + struct { + atomic_t available; + u32 valid_bit; + struct dpaa2_dq *storage; + } vdq; + struct { + u32 next_idx; + u32 valid_bit; + u8 dqrr_size; + int reset_bug; + } dqrr; + struct { + u32 pi; + u32 pi_vb; + u32 pi_ring_size; + u32 pi_ci_mask; + u32 ci; + int available; + u32 pend; + u32 no_pfdr; + } eqcr; + spinlock_t access_spinlock; + u32 irq_threshold; + u32 irq_holdoff; + int use_adaptive_rx_coalesce; }; -struct MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR { - u8 ReplyFlags; - u8 MSIxIndex; - __le16 SMID; - __le16 TaskTag; - __le16 Reserved1; +enum qbman_pull_type_e { + qbman_pull_type_prio = 1, + qbman_pull_type_active = 2, + qbman_pull_type_active_noics = 3, }; -struct MPI2_SGE_SIMPLE_UNION { - __le32 FlagsLength; - union { - __le32 Address32; - __le64 Address64; - } u; +enum dim_state { + DIM_START_MEASURE = 0, + DIM_MEASURE_IN_PROGRESS = 1, + DIM_APPLY_NEW_PROFILE = 2, }; -struct MPI2_SGE_CHAIN_UNION { - __le16 Length; - u8 NextChainOffset; - u8 Flags; - union { - __le32 Address32; - __le64 Address64; - } u; +struct dim_cq_moder { + u16 usec; + u16 pkts; + u16 comps; + u8 cq_period_mode; }; -struct MPI2_IEEE_SGE_SIMPLE32 { - __le32 Address; - __le32 FlagsLength; +struct qbman_pull_desc { + u8 verb; + u8 numf; + u8 tok; + u8 reserved; + __le32 dq_src; + __le64 rsp_addr; + u64 rsp_addr_virt; + u8 padding[40]; }; -struct MPI2_IEEE_SGE_SIMPLE64 { - __le64 Address; - __le32 Length; - __le16 Reserved1; - u8 Reserved2; - u8 Flags; +struct qbman_eq_desc { + u8 verb; + u8 dca; + __le16 seqnum; + __le16 orpid; + __le16 reserved1; + __le32 tgtid; + __le32 tag; + __le16 qdbin; + u8 qpri; + u8 reserved[3]; + u8 wae; + u8 rspid; + __le64 rsp_addr; }; -union MPI2_IEEE_SGE_SIMPLE_UNION { - struct MPI2_IEEE_SGE_SIMPLE32 Simple32; - struct MPI2_IEEE_SGE_SIMPLE64 Simple64; +struct qbman_release_desc { + u8 verb; + u8 reserved; + __le16 bpid; + __le32 reserved2; + __le64 buf[7]; }; -struct MPI2_IEEE_SGE_CHAIN32 { - __le32 Address; - __le32 FlagsLength; +struct qbman_fq_query_np_rslt { + u8 verb; + u8 rslt; + u8 st1; + u8 st2; + u8 reserved[2]; + __le16 od1_sfdr; + __le16 od2_sfdr; + __le16 od3_sfdr; + __le16 ra1_sfdr; + __le16 ra2_sfdr; + __le32 pfdr_hptr; + __le32 pfdr_tptr; + __le32 frm_cnt; + __le32 byte_cnt; + __le16 ics_surp; + u8 is; + u8 reserved2[29]; }; -struct MPI2_IEEE_SGE_CHAIN64 { - __le64 Address; - __le32 Length; - __le16 Reserved1; - u8 Reserved2; - u8 Flags; +struct qbman_bp_query_rslt { + u8 verb; + u8 rslt; + u8 reserved[4]; + u8 bdi; + u8 state; + __le32 fill; + __le32 hdotr; + __le16 swdet; + __le16 swdxt; + __le16 hwdet; + __le16 hwdxt; + __le16 swset; + __le16 swsxt; + __le16 vbpid; + __le16 icid; + __le64 bpscn_addr; + __le64 bpscn_ctx; + __le16 hw_targ; + u8 dbe; + u8 reserved2; + u8 sdcnt; + u8 hdcnt; + u8 sscnt; + u8 reserved3[9]; }; -union MPI2_IEEE_SGE_CHAIN_UNION { - struct MPI2_IEEE_SGE_CHAIN32 Chain32; - struct MPI2_IEEE_SGE_CHAIN64 Chain64; +struct dpaa2_io_store { + unsigned int max; + dma_addr_t paddr; + struct dpaa2_dq *vaddr; + void *alloced_addr; + unsigned int idx; + struct qbman_swp *swp; + struct device *dev; }; -union MPI2_SGE_IO_UNION { - struct MPI2_SGE_SIMPLE_UNION MpiSimple; - struct MPI2_SGE_CHAIN_UNION MpiChain; - union MPI2_IEEE_SGE_SIMPLE_UNION IeeeSimple; - union MPI2_IEEE_SGE_CHAIN_UNION IeeeChain; +struct virtio_mmio_device { + struct virtio_device vdev; + struct platform_device *pdev; + void *base; + unsigned long version; + spinlock_t lock; + struct list_head virtqueues; }; -struct MPI2_SCSI_IO_CDB_EEDP32 { - u8 CDB[20]; - __be32 PrimaryReferenceTag; - __be16 PrimaryApplicationTag; - __be16 PrimaryApplicationTagMask; - __le32 TransferLength; +struct virtio_mmio_vq_info { + struct virtqueue *vq; + struct list_head node; }; -union MPI2_SCSI_IO_CDB_UNION { - u8 CDB32[32]; - struct MPI2_SCSI_IO_CDB_EEDP32 EEDP32; - struct MPI2_SGE_SIMPLE_UNION SGE; +enum fan53555_vendor { + FAN53526_VENDOR_FAIRCHILD = 0, + FAN53555_VENDOR_FAIRCHILD = 1, + FAN53555_VENDOR_ROCKCHIP = 2, + RK8602_VENDOR_ROCKCHIP = 3, + FAN53555_VENDOR_SILERGY = 4, + FAN53526_VENDOR_TCS = 5, }; -struct RAID_CONTEXT { - u8 type: 4; - u8 nseg: 4; - u8 resvd0; - __le16 timeout_value; - u8 reg_lock_flags; - u8 resvd1; - __le16 virtual_disk_tgt_id; - __le64 reg_lock_row_lba; - __le32 reg_lock_length; - __le16 next_lmid; - u8 ex_status; - u8 status; - u8 raid_flags; - u8 num_sge; - __le16 config_seq_num; - u8 span_arm; - u8 priority; - u8 num_sge_ext; - u8 resvd2; +enum { + FAN53555_VSEL_ID_0 = 0, + FAN53555_VSEL_ID_1 = 1, }; -struct RAID_CONTEXT_G35 { - u16 nseg_type; - u16 timeout_value; - u16 routing_flags; - u16 virtual_disk_tgt_id; - __le64 reg_lock_row_lba; - u32 reg_lock_length; - union { - u16 rmw_op_index; - u16 peer_smid; - u16 r56_arm_map; - } flow_specific; - u8 ex_status; - u8 status; - u8 raid_flags; - u8 span_arm; - u16 config_seq_num; - union { - struct { - u16 num_sge: 12; - u16 reserved: 3; - u16 stream_detected: 1; - } bits; - u8 bytes[2]; - } u; - u8 resvd2[2]; +enum { + FAN53526_CHIP_ID_01 = 1, }; -union RAID_CONTEXT_UNION { - struct RAID_CONTEXT raid_context; - struct RAID_CONTEXT_G35 raid_context_g35; +enum { + FAN53526_CHIP_REV_08 = 8, }; -struct MPI2_RAID_SCSI_IO_REQUEST { - __le16 DevHandle; - u8 ChainOffset; - u8 Function; - __le16 Reserved1; - u8 Reserved2; - u8 MsgFlags; - u8 VP_ID; - u8 VF_ID; - __le16 Reserved3; - __le32 SenseBufferLowAddress; - __le16 SGLFlags; - u8 SenseBufferLength; - u8 Reserved4; - u8 SGLOffset0; - u8 SGLOffset1; - u8 SGLOffset2; - u8 SGLOffset3; - __le32 SkipCount; - __le32 DataLength; - __le32 BidirectionalDataLength; - __le16 IoFlags; - __le16 EEDPFlags; - __le32 EEDPBlockSize; - __le32 SecondaryReferenceTag; - __le16 SecondaryApplicationTag; - __le16 ApplicationTagTranslationMask; - u8 LUN[8]; - __le32 Control; - union MPI2_SCSI_IO_CDB_UNION CDB; - union RAID_CONTEXT_UNION RaidContext; - union { - union MPI2_SGE_IO_UNION SGL; - struct { - struct {} __empty_SGLs; - union MPI2_SGE_IO_UNION SGLs[0]; - }; - }; +enum { + FAN53555_CHIP_ID_00 = 0, + FAN53555_CHIP_ID_01 = 1, + FAN53555_CHIP_ID_02 = 2, + FAN53555_CHIP_ID_03 = 3, + FAN53555_CHIP_ID_04 = 4, + FAN53555_CHIP_ID_05 = 5, + FAN53555_CHIP_ID_08 = 8, }; -struct MR_TM_REPLY { - char reply[128]; +enum { + FAN53555_CHIP_REV_00 = 3, + FAN53555_CHIP_REV_13 = 15, }; -struct MR_TM_REQUEST { - char request[128]; +enum { + RK8600_CHIP_ID_08 = 8, }; -struct MR_TASK_MANAGE_REQUEST { - struct MR_TM_REQUEST TmRequest; - union { - struct { - u32 isTMForLD: 1; - u32 isTMForPD: 1; - u32 reserved1: 30; - u32 reserved2; - } tmReqFlags; - struct MR_TM_REPLY TMReply; - }; +enum { + RK8602_CHIP_ID_10 = 10, }; -struct MPI2_SCSI_TASK_MANAGE_REQUEST { - u16 DevHandle; - u8 ChainOffset; - u8 Function; - u8 Reserved1; - u8 TaskType; - u8 Reserved2; - u8 MsgFlags; - u8 VP_ID; - u8 VF_ID; - u16 Reserved3; - u8 LUN[8]; - u32 Reserved4[7]; - u16 TaskMID; - u16 Reserved5; +enum { + SILERGY_SYR82X = 8, + SILERGY_SYR83X = 9, }; -struct MPI2_SCSI_TASK_MANAGE_REPLY { - u16 DevHandle; - u8 MsgLength; - u8 Function; - u8 ResponseCode; - u8 TaskType; - u8 Reserved1; - u8 MsgFlags; - u8 VP_ID; - u8 VF_ID; - u16 Reserved2; - u16 Reserved3; - u16 IOCStatus; - u32 IOCLogInfo; - u32 TerminationCount; - u32 ResponseInfo; +enum { + TCS4525_CHIP_ID_12 = 12, }; -struct MPI2_DEFAULT_REQUEST_DESCRIPTOR { - u8 RequestFlags; - u8 MSIxIndex; - __le16 SMID; - __le16 LMID; - __le16 DescriptorTypeDependent; +struct fan53555_platform_data { + struct regulator_init_data *regulator; + unsigned int slew_rate; + unsigned int sleep_vsel_id; }; -struct MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR { - u8 RequestFlags; - u8 MSIxIndex; - __le16 SMID; - __le16 LMID; - __le16 Reserved1; +struct fan53555_device_info { + enum fan53555_vendor vendor; + struct device *dev; + struct regulator_desc desc; + struct regulator_init_data *regulator; + int chip_id; + int chip_rev; + unsigned int vol_reg; + unsigned int sleep_reg; + unsigned int en_reg; + unsigned int sleep_en_reg; + unsigned int vsel_min; + unsigned int vsel_step; + unsigned int vsel_count; + unsigned int mode_reg; + unsigned int mode_mask; + unsigned int sleep_vol_cache; + unsigned int slew_reg; + unsigned int slew_mask; + const unsigned int *ramp_delay_table; + unsigned int n_ramp_values; + unsigned int slew_rate; }; -struct MPI2_SCSI_IO_REQUEST_DESCRIPTOR { - u8 RequestFlags; - u8 MSIxIndex; - __le16 SMID; - __le16 LMID; - __le16 DevHandle; +struct meson_reset_param { + int reg_count; + int level_offset; }; -struct MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR { - u8 RequestFlags; - u8 MSIxIndex; - __le16 SMID; - __le16 LMID; - __le16 IoIndex; +struct meson_reset { + void *reg_base; + const struct meson_reset_param *param; + struct reset_controller_dev rcdev; + spinlock_t lock; }; -struct MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR { - u8 RequestFlags; - u8 MSIxIndex; - __le16 SMID; - __le16 LMID; - __le16 Reserved; -}; +struct exar8250; -struct MEGASAS_RAID_MFA_IO_REQUEST_DESCRIPTOR { - u32 RequestFlags: 8; - u32 MessageAddress1: 24; - u32 MessageAddress2; +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 *); }; -union MEGASAS_REQUEST_DESCRIPTOR_UNION { - struct MPI2_DEFAULT_REQUEST_DESCRIPTOR Default; - struct MPI2_HIGH_PRIORITY_REQUEST_DESCRIPTOR HighPriority; - struct MPI2_SCSI_IO_REQUEST_DESCRIPTOR SCSIIO; - struct MPI2_SCSI_TARGET_REQUEST_DESCRIPTOR SCSITarget; - struct MPI2_RAID_ACCEL_REQUEST_DESCRIPTOR RAIDAccelerator; - struct MEGASAS_RAID_MFA_IO_REQUEST_DESCRIPTOR MFAIo; - union { - struct { - __le32 low; - __le32 high; - } u; - __le64 Words; - }; +struct exar8250 { + unsigned int nr; + struct exar8250_board *board; + void *virt; + int line[0]; }; -struct MPI2_DEFAULT_REPLY_DESCRIPTOR { - u8 ReplyFlags; - u8 MSIxIndex; - __le16 DescriptorTypeDependent1; - __le32 DescriptorTypeDependent2; +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 MPI2_ADDRESS_REPLY_DESCRIPTOR { - u8 ReplyFlags; - u8 MSIxIndex; - __le16 SMID; - __le32 ReplyFrameAddress; +struct mctrl_gpios { + struct uart_port *port; + struct gpio_desc *gpio[6]; + int irq[6]; + unsigned int mctrl_prev; + bool mctrl_on; }; -struct MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR { - u8 ReplyFlags; - u8 MSIxIndex; - __le16 SMID; - u8 SequenceNumber; - u8 Reserved1; - __le16 IoIndex; +struct meson_rng_priv { + int (*read)(struct hwrng *, void *, size_t, bool); }; -struct MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR { - u8 ReplyFlags; - u8 MSIxIndex; - u8 VP_ID; - u8 Flags; - __le16 InitiatorDevHandle; - __le16 IoIndex; +struct meson_rng_data { + void *base; + struct hwrng rng; + struct device *dev; }; -struct MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR { - u8 ReplyFlags; - u8 MSIxIndex; - __le16 SMID; - __le32 Reserved; +struct tpm2_hash { + unsigned int crypto_id; + unsigned int tpm_id; }; -union MPI2_REPLY_DESCRIPTORS_UNION { - struct MPI2_DEFAULT_REPLY_DESCRIPTOR Default; - struct MPI2_ADDRESS_REPLY_DESCRIPTOR AddressReply; - struct MPI2_SCSI_IO_SUCCESS_REPLY_DESCRIPTOR SCSIIOSuccess; - struct MPI2_TARGETASSIST_SUCCESS_REPLY_DESCRIPTOR TargetAssistSuccess; - struct MPI2_TARGET_COMMAND_BUFFER_REPLY_DESCRIPTOR TargetCommandBuffer; - struct MPI2_RAID_ACCELERATOR_SUCCESS_REPLY_DESCRIPTOR RAIDAcceleratorSuccess; - __le64 Words; +enum tpm_duration { + TPM_SHORT = 0, + TPM_MEDIUM = 1, + TPM_LONG = 2, + TPM_LONG_LONG = 3, + TPM_UNDEFINED = 4, + TPM_NUM_DURATIONS = 4, }; -struct MPI25_IEEE_SGE_CHAIN64 { - __le64 Address; - __le32 Length; - __le16 Reserved1; - u8 NextChainOffset; - u8 Flags; +enum tpm2_const { + TPM2_PLATFORM_PCR = 24, + TPM2_PCR_SELECT_MIN = 3, }; -struct rdpq_alloc_detail { - struct dma_pool *dma_pool_ptr; - dma_addr_t pool_entry_phys; - union MPI2_REPLY_DESCRIPTORS_UNION *pool_entry_virt; +enum tpm2_permanent_handles { + TPM2_RS_PW = 1073741833, }; -typedef struct LOG_BLOCK_SPAN_INFO LD_SPAN_INFO; - -struct megasas_cmd_fusion; - -struct MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY; - -struct MR_FW_RAID_MAP_DYNAMIC; - -struct MR_DRV_RAID_MAP_ALL; - -struct MR_PD_CFG_SEQ_NUM_SYNC; - -struct LD_STREAM_DETECT; - -struct MPI2_IOC_INIT_REQUEST; - -struct fusion_context { - struct megasas_cmd_fusion **cmd_list; - dma_addr_t req_frames_desc_phys; - u8 *req_frames_desc; - struct dma_pool *io_request_frames_pool; - dma_addr_t io_request_frames_phys; - u8 *io_request_frames; - struct dma_pool *sg_dma_pool; - struct dma_pool *sense_dma_pool; - u8 *sense; - dma_addr_t sense_phys_addr; - atomic_t busy_mq_poll[128]; - dma_addr_t reply_frames_desc_phys[128]; - union MPI2_REPLY_DESCRIPTORS_UNION *reply_frames_desc[128]; - struct rdpq_alloc_detail rdpq_tracker[8]; - struct dma_pool *reply_frames_desc_pool; - struct dma_pool *reply_frames_desc_pool_align; - u16 last_reply_idx[128]; - u32 reply_q_depth; - u32 request_alloc_sz; - u32 reply_alloc_sz; - u32 io_frames_alloc_sz; - struct MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY *rdpq_virt; - dma_addr_t rdpq_phys; - u16 max_sge_in_main_msg; - u16 max_sge_in_chain; - u8 chain_offset_io_request; - u8 chain_offset_mfi_pthru; - struct MR_FW_RAID_MAP_DYNAMIC *ld_map[2]; - dma_addr_t ld_map_phys[2]; - struct MR_DRV_RAID_MAP_ALL *ld_drv_map[2]; - u32 max_map_sz; - u32 current_map_sz; - u32 old_map_sz; - u32 new_map_sz; - u32 drv_map_sz; - u32 drv_map_pages; - struct MR_PD_CFG_SEQ_NUM_SYNC *pd_seq_sync[2]; - dma_addr_t pd_seq_phys[2]; - u8 fast_path_io; - struct LD_LOAD_BALANCE_INFO *load_balance_info; - u32 load_balance_info_pages; - LD_SPAN_INFO *log_to_span; - u32 log_to_span_pages; - struct LD_STREAM_DETECT **stream_detect_by_ld; - dma_addr_t ioc_init_request_phys; - struct MPI2_IOC_INIT_REQUEST *ioc_init_request; - struct megasas_cmd *ioc_init_cmd; - bool pcie_bw_limitation; - bool r56_div_offload; +enum tpm2_properties { + TPM_PT_TOTAL_COMMANDS = 297, }; -struct megasas_cmd_fusion { - struct MPI2_RAID_SCSI_IO_REQUEST *io_request; - dma_addr_t io_request_phys_addr; - union MPI2_SGE_IO_UNION *sg_frame; - dma_addr_t sg_frame_phys_addr; - u8 *sense; - dma_addr_t sense_phys_addr; - struct list_head list; - struct scsi_cmnd *scmd; - struct megasas_instance *instance; - u8 retry_for_fw_reset; - union MEGASAS_REQUEST_DESCRIPTOR_UNION *request_desc; - u32 sync_cmd_idx; - u32 index; - u8 pd_r1_lb; - struct completion done; - u8 pd_interface; - u16 r1_alt_dev_handle; - bool cmd_completed; +enum hash_algo { + HASH_ALGO_MD4 = 0, + HASH_ALGO_MD5 = 1, + HASH_ALGO_SHA1 = 2, + HASH_ALGO_RIPE_MD_160 = 3, + HASH_ALGO_SHA256 = 4, + HASH_ALGO_SHA384 = 5, + HASH_ALGO_SHA512 = 6, + HASH_ALGO_SHA224 = 7, + HASH_ALGO_RIPE_MD_128 = 8, + HASH_ALGO_RIPE_MD_256 = 9, + HASH_ALGO_RIPE_MD_320 = 10, + HASH_ALGO_WP_256 = 11, + HASH_ALGO_WP_384 = 12, + HASH_ALGO_WP_512 = 13, + HASH_ALGO_TGR_128 = 14, + HASH_ALGO_TGR_160 = 15, + HASH_ALGO_TGR_192 = 16, + HASH_ALGO_SM3_256 = 17, + HASH_ALGO_STREEBOG_256 = 18, + HASH_ALGO_STREEBOG_512 = 19, + HASH_ALGO_SHA3_256 = 20, + HASH_ALGO_SHA3_384 = 21, + HASH_ALGO_SHA3_512 = 22, + HASH_ALGO__LAST = 23, }; -struct MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY { - u64 RDPQBaseAddress; - u32 Reserved1; - u32 Reserved2; -}; +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 MR_RAID_MAP_DESC_TABLE { - u32 raid_map_desc_type; - u32 raid_map_desc_offset; - u32 raid_map_desc_buffer_size; - u32 raid_map_desc_elements; +struct tpm2_get_random_out { + __be16 size; + u8 buffer[128]; }; -struct MR_DEV_HANDLE_INFO; - -struct MR_ARRAY_INFO; +struct tpm2_get_cap_out { + u8 more_data; + __be32 subcap_id; + __be32 property_cnt; + __be32 property_id; + __be32 value; +} __attribute__((packed)); -struct MR_LD_SPAN_MAP; +struct tpm2_null_auth_area { + __be32 handle; + __be16 nonce_size; + u8 attributes; + __be16 auth_size; +} __attribute__((packed)); -struct MR_FW_RAID_MAP_DYNAMIC { - u32 raid_map_size; - u32 desc_table_offset; - u32 desc_table_size; - u32 desc_table_num_elements; - u64 reserved1; - u32 reserved2[3]; - u8 fp_pd_io_timeout_sec; - u8 reserved3[3]; - u32 rmw_fp_seq_num; - u16 ld_count; - u16 ar_count; - u16 span_count; - u16 reserved4[3]; - union { - struct { - struct MR_DEV_HANDLE_INFO *dev_hndl_info; - u16 *ld_tgt_id_to_ld; - struct MR_ARRAY_INFO *ar_map_info; - struct MR_LD_SPAN_MAP *ld_span_map; - }; - u64 ptr_structure_size[4]; - }; - struct MR_RAID_MAP_DESC_TABLE raid_map_desc_table[4]; - u32 raid_map_desc_data[0]; +struct tpm2_pcr_selection { + __be16 hash_alg; + u8 size_of_select; + u8 pcr_select[3]; }; -struct MR_DEV_HANDLE_INFO { - __le16 curDevHdl; - u8 validHandles; - u8 interfaceType; - __le16 devHandle[2]; +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, }; -struct MR_ARRAY_INFO { - __le16 pd[32]; +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, }; -struct MR_CPU_AFFINITY_MASK { - union { - struct { - u8 hw_path: 1; - u8 cpu0: 1; - u8 cpu1: 1; - u8 cpu2: 1; - u8 cpu3: 1; - u8 reserved: 3; - }; - u8 core_mask; - }; +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, }; -struct MR_IO_AFFINITY { - union { - struct { - struct MR_CPU_AFFINITY_MASK pdRead; - struct MR_CPU_AFFINITY_MASK pdWrite; - struct MR_CPU_AFFINITY_MASK ldRead; - struct MR_CPU_AFFINITY_MASK ldWrite; - }; - u32 word; - }; - u8 maxCores; - u8 reserved[3]; +enum mipi_dsi_dcs_tear_mode { + MIPI_DSI_DCS_TEAR_MODE_VBLANK = 0, + MIPI_DSI_DCS_TEAR_MODE_VHBLANK = 1, }; -struct MR_LD_RAID { - struct { - u32 fpCapable: 1; - u32 ra_capable: 1; - u32 reserved5: 2; - u32 ldPiMode: 4; - u32 pdPiMode: 4; - u32 encryptionType: 8; - u32 fpWriteCapable: 1; - u32 fpReadCapable: 1; - u32 fpWriteAcrossStripe: 1; - u32 fpReadAcrossStripe: 1; - u32 fpNonRWCapable: 1; - u32 tmCapable: 1; - u32 fpBypassRegionLock: 1; - u32 disable_coalescing: 1; - u32 fp_rmw_capable: 1; - u32 fp_cache_bypass_capable: 1; - u32 reserved4: 2; - } capability; - __le32 reserved6; - __le64 size; - u8 spanDepth; - u8 level; - u8 stripeShift; - u8 rowSize; - u8 rowDataSize; - u8 writeMode; - u8 PRL; - u8 SRL; - __le16 targetId; - u8 ldState; - u8 regTypeReqOnWrite; - u8 modFactor; - u8 regTypeReqOnRead; - __le16 seqNum; - struct { - u32 ldSyncRequired: 1; - u32 regTypeReqOnReadIsValid: 1; - u32 isEPD: 1; - u32 enableSLDOnAllRWIOs: 1; - u32 reserved: 28; - } flags; - u8 LUN[8]; - u8 fpIoTimeoutForLd; - u8 ld_accept_priority_type; - u8 reserved2[2]; - u32 logical_block_length; - struct { - u32 ld_pi_exp: 4; - u32 ld_logical_block_exp: 4; - u32 reserved1: 24; - }; - struct MR_IO_AFFINITY cpuAffinity; - u8 reserved3[64]; -}; +struct mipi_dsi_host; -struct MR_LD_SPAN { - __le64 startBlk; - __le64 numBlks; - __le16 arrayRef; - u8 spanRowSize; - u8 spanRowDataSize; - u8 reserved[4]; -}; +struct drm_dsc_config; -struct MR_QUAD_ELEMENT { - __le64 logStart; - __le64 logEnd; - __le64 offsetInSpan; - __le32 diff; - __le32 reserved1; +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 MR_SPAN_INFO { - __le32 noElements; - __le32 reserved1; - struct MR_QUAD_ELEMENT quad[8]; -}; +struct mipi_dsi_host_ops; -struct MR_SPAN_BLOCK_INFO { - __le64 num_rows; - struct MR_LD_SPAN span; - struct MR_SPAN_INFO block_span_info; +struct mipi_dsi_host { + struct device *dev; + const struct mipi_dsi_host_ops *ops; + struct list_head list; }; -struct MR_LD_SPAN_MAP { - struct MR_LD_RAID ldRaid; - u8 dataArmMap[32]; - struct MR_SPAN_BLOCK_INFO spanBlock[8]; -}; +struct mipi_dsi_msg; -struct MR_DRV_RAID_MAP { - __le32 totalSize; - union { - struct { - __le32 maxLd; - __le32 maxSpanDepth; - __le32 maxRowSize; - __le32 maxPdCount; - __le32 maxArrays; - } validationInfo; - __le32 version[5]; - }; - u8 fpPdIoTimeoutSec; - u8 reserved2[7]; - __le16 ldCount; - __le16 arCount; - __le16 spanCount; - __le16 reserve3; - struct MR_DEV_HANDLE_INFO devHndlInfo[512]; - u16 ldTgtIdToLd[512]; - struct MR_ARRAY_INFO arMapInfo[512]; - struct MR_LD_SPAN_MAP ldSpanMap[0]; +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 MR_DRV_RAID_MAP_ALL { - struct MR_DRV_RAID_MAP raidMap; - struct MR_LD_SPAN_MAP ldSpanMap[512]; +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 MR_PD_CFG_SEQ { - u16 seqNum; - u16 devHandle; - struct { - u8 tmCapable: 1; - u8 reserved: 7; - } capability; - u8 reserved; - u16 pd_target_id; +struct drm_dsc_rc_range_parameters { + u8 range_min_qp; + u8 range_max_qp; + u8 range_bpg_offset; }; -struct MR_PD_CFG_SEQ_NUM_SYNC { - __le32 size; - __le32 count; - struct MR_PD_CFG_SEQ seq[0]; +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 STREAM_DETECT { - u64 next_seq_lba; - struct megasas_cmd_fusion *first_cmd_fusion; - struct megasas_cmd_fusion *last_cmd_fusion; - u32 count_cmds_in_stream; - u16 num_sges_in_group; - u8 is_read; - u8 group_depth; - bool group_flush; - u8 reserved[7]; +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 LD_STREAM_DETECT { - bool write_back; - bool fp_write_enabled; - bool members_ssds; - bool fp_cache_bypass_capable; - u32 mru_bit_map; - struct STREAM_DETECT stream_track[8]; +struct mipi_dsi_device_info { + char type[20]; + u32 channel; + struct device_node *node; }; -struct MPI2_IOC_INIT_REQUEST { - u8 WhoInit; - u8 Reserved1; - u8 ChainOffset; - u8 Function; - __le16 Reserved2; - u8 Reserved3; - u8 MsgFlags; - u8 VP_ID; - u8 VF_ID; - __le16 Reserved4; - __le16 MsgVersion; - __le16 HeaderVersion; - u32 Reserved5; - __le16 Reserved6; - u8 HostPageSize; - u8 HostMSIxVectors; - __le16 Reserved8; - __le16 SystemRequestFrameSize; - __le16 ReplyDescriptorPostQueueDepth; - __le16 ReplyFreeQueueDepth; - __le32 SenseBufferAddressHigh; - __le32 SystemReplyAddressHigh; - __le64 SystemRequestFrameBaseAddress; - __le64 ReplyDescriptorPostQueueAddress; - __le64 ReplyFreeQueueAddress; - __le64 TimeStamp; +struct mipi_dsi_packet { + size_t size; + u8 header[4]; + size_t payload_length; + const u8 *payload; }; -struct MR_PRIV_DEVICE { - bool is_tm_capable; - bool tm_busy; - atomic_t sdev_priv_busy; - atomic_t r1_ldio_hint; - u8 interface_type; - u8 task_abort_tmo; - u8 target_reset_tmo; +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)); + +enum pcpu_fc { + PCPU_FC_AUTO = 0, + PCPU_FC_EMBED = 1, + PCPU_FC_PAGE = 2, + PCPU_FC_NR = 3, }; -struct IO_REQUEST_INFO { - u64 ldStartBlock; - u32 numBlocks; - u16 ldTgtId; - u8 isRead; - __le16 devHandle; - u8 pd_interface; - u64 pdBlock; - u8 fpOkForIo; - u8 IoforUnevenSpan; - u8 start_span; - u8 do_fp_rlbypass; - u64 start_row; - u8 span_arm; - u8 pd_after_lb; - u16 r1_alt_dev_handle; - bool ra_capable; - u8 data_arms; -}; +typedef int pcpu_fc_cpu_to_node_fn_t(int); -union desc_value { - __le64 word; - struct { - __le32 low; - __le32 high; - } u; -}; +typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); -struct fsl_qspi_devtype_data { - unsigned int rxfifo; - unsigned int txfifo; - int invalid_mstrid; - unsigned int ahb_buf_size; - unsigned int quirks; - bool little_endian; +struct qcom_spmi_pmic { + unsigned int type; + unsigned int subtype; + unsigned int major; + unsigned int minor; + unsigned int rev2; + unsigned int fab_id; + const char *name; }; -struct fsl_qspi { - void *iobase; - void *ahb_addr; - u32 memmap_phy; - struct clk *clk; - struct clk *clk_en; - struct device *dev; - struct completion c; - const struct fsl_qspi_devtype_data *devtype_data; - struct mutex lock; - struct pm_qos_request pm_qos_req; - int selected; +struct qcom_spmi_dev { + int num_usids; + struct qcom_spmi_pmic pmic; }; -struct rtl821x_priv { - u16 phycr1; - u16 phycr2; - bool has_phycr2; - struct clk *clk; -}; +struct dma_fence_array; -enum xgbe_port_mode { - XGBE_PORT_MODE_RSVD = 0, - XGBE_PORT_MODE_BACKPLANE = 1, - XGBE_PORT_MODE_BACKPLANE_2500 = 2, - XGBE_PORT_MODE_1000BASE_T = 3, - XGBE_PORT_MODE_1000BASE_X = 4, - XGBE_PORT_MODE_NBASE_T = 5, - XGBE_PORT_MODE_10GBASE_T = 6, - XGBE_PORT_MODE_10GBASE_R = 7, - XGBE_PORT_MODE_SFP = 8, - XGBE_PORT_MODE_BACKPLANE_NO_AUTONEG = 9, - XGBE_PORT_MODE_MAX = 10, +struct dma_fence_array_cb { + struct dma_fence_cb cb; + struct dma_fence_array *array; }; -enum xgbe_conn_type { - XGBE_CONN_TYPE_NONE = 0, - XGBE_CONN_TYPE_SFP = 1, - XGBE_CONN_TYPE_MDIO = 2, - XGBE_CONN_TYPE_RSVD1 = 3, - XGBE_CONN_TYPE_BACKPLANE = 4, - XGBE_CONN_TYPE_MAX = 5, +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 xgbe_sfp_comm { - XGBE_SFP_COMM_DIRECT = 0, - XGBE_SFP_COMM_PCA9545 = 1, +enum scsi_device_event { + SDEV_EVT_MEDIA_CHANGE = 1, + SDEV_EVT_INQUIRY_CHANGE_REPORTED = 2, + SDEV_EVT_CAPACITY_CHANGE_REPORTED = 3, + SDEV_EVT_SOFT_THRESHOLD_REACHED_REPORTED = 4, + SDEV_EVT_MODE_PARAMETER_CHANGE_REPORTED = 5, + SDEV_EVT_LUN_CHANGE_REPORTED = 6, + SDEV_EVT_ALUA_STATE_CHANGE_REPORTED = 7, + SDEV_EVT_POWER_ON_RESET_OCCURRED = 8, + SDEV_EVT_FIRST = 1, + SDEV_EVT_LAST = 8, + SDEV_EVT_MAXBITS = 9, }; -enum xgbe_sfp_base { - XGBE_SFP_BASE_UNKNOWN = 0, - XGBE_SFP_BASE_1000_T = 1, - XGBE_SFP_BASE_1000_SX = 2, - XGBE_SFP_BASE_1000_LX = 3, - XGBE_SFP_BASE_1000_CX = 4, - XGBE_SFP_BASE_10000_SR = 5, - XGBE_SFP_BASE_10000_LR = 6, - XGBE_SFP_BASE_10000_LRM = 7, - XGBE_SFP_BASE_10000_ER = 8, - XGBE_SFP_BASE_10000_CR = 9, -}; +typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *); -enum xgbe_sfp_cable { - XGBE_SFP_CABLE_UNKNOWN = 0, - XGBE_SFP_CABLE_ACTIVE = 1, - XGBE_SFP_CABLE_PASSIVE = 2, - XGBE_SFP_CABLE_FIBER = 3, +struct ata_scsi_args { + struct ata_device *dev; + u16 *id; + struct scsi_cmnd *cmd; }; -enum xgbe_sfp_speed { - XGBE_SFP_SPEED_UNKNOWN = 0, - XGBE_SFP_SPEED_100_1000 = 1, - XGBE_SFP_SPEED_1000 = 2, - XGBE_SFP_SPEED_10000 = 3, +struct a3700_spi { + struct spi_controller *host; + void *base; + struct clk *clk; + unsigned int irq; + unsigned int flags; + bool xmit_data; + const u8 *tx_buf; + u8 *rx_buf; + size_t buf_len; + u8 byte_len; + u32 wait_mask; + struct completion done; }; -enum xgbe_mdio_reset { - XGBE_MDIO_RESET_NONE = 0, - XGBE_MDIO_RESET_I2C_GPIO = 1, - XGBE_MDIO_RESET_INT_GPIO = 2, - XGBE_MDIO_RESET_MAX = 3, +struct bcm_qspi_data { + bool has_mspi_rev; + bool has_spcr3_sysclk; }; -enum xgbe_phy_redrv_if { - XGBE_PHY_REDRV_IF_MDIO = 0, - XGBE_PHY_REDRV_IF_I2C = 1, - XGBE_PHY_REDRV_IF_MAX = 2, +struct bcm_qspi_irq { + const char *irq_name; + const irq_handler_t irq_handler; + int irq_source; + u32 mask; }; -enum xgbe_phy_redrv_model { - XGBE_PHY_REDRV_MODEL_4223 = 0, - XGBE_PHY_REDRV_MODEL_4227 = 1, - XGBE_PHY_REDRV_MODEL_MAX = 2, +enum base_type { + MSPI = 0, + BSPI = 1, + CHIP_SELECT = 2, + BASEMAX = 3, }; -enum xgbe_mb_cmd { - XGBE_MB_CMD_POWER_OFF = 0, - XGBE_MB_CMD_SET_1G = 1, - XGBE_MB_CMD_SET_2_5G = 2, - XGBE_MB_CMD_SET_10G_SFI = 3, - XGBE_MB_CMD_SET_10G_KR = 4, - XGBE_MB_CMD_RRC = 5, +enum irq_source { + SINGLE_L2 = 0, + MUXED_L1 = 1, }; -enum xgbe_mb_subcmd { - XGBE_MB_SUBCMD_NONE = 0, - XGBE_MB_SUBCMD_RX_ADAP = 1, - XGBE_MB_SUBCMD_ACTIVE = 0, - XGBE_MB_SUBCMD_PASSIVE_1M = 1, - XGBE_MB_SUBCMD_PASSIVE_3M = 2, - XGBE_MB_SUBCMD_PASSIVE_OTHER = 3, - XGBE_MB_SUBCMD_10MBITS = 0, - XGBE_MB_SUBCMD_100MBITS = 1, - XGBE_MB_SUBCMD_1G_SGMII = 2, - XGBE_MB_SUBCMD_1G_KX = 3, +struct bcm_qspi_parms { + u32 speed_hz; + u8 mode; + u8 bits_per_word; }; -enum xgbe_phy_redrv_mode { - XGBE_PHY_REDRV_MODE_CX = 5, - XGBE_PHY_REDRV_MODE_SR = 9, +struct qspi_trans { + struct spi_transfer *trans; + int byte; + bool mspi_last_trans; }; -struct xgbe_sfp_eeprom { - u8 base[64]; - u8 extd[32]; - u8 vendor[32]; +struct bcm_xfer_mode { + bool flex_mode; + unsigned int width; + unsigned int addrlen; + unsigned int hp; }; -struct xgbe_phy_data { - enum xgbe_port_mode port_mode; - unsigned int port_id; - unsigned int port_speeds; - enum xgbe_conn_type conn_type; - enum xgbe_mode cur_mode; - enum xgbe_mode start_mode; - unsigned int rrc_count; - unsigned int mdio_addr; - enum xgbe_sfp_comm sfp_comm; - unsigned int sfp_mux_address; - unsigned int sfp_mux_channel; - unsigned int sfp_gpio_address; - unsigned int sfp_gpio_mask; - unsigned int sfp_gpio_inputs; - unsigned int sfp_gpio_rx_los; - unsigned int sfp_gpio_tx_fault; - unsigned int sfp_gpio_mod_absent; - unsigned int sfp_gpio_rate_select; - unsigned int sfp_rx_los; - unsigned int sfp_tx_fault; - unsigned int sfp_mod_absent; - unsigned int sfp_changed; - unsigned int sfp_phy_avail; - unsigned int sfp_cable_len; - enum xgbe_sfp_base sfp_base; - enum xgbe_sfp_cable sfp_cable; - enum xgbe_sfp_speed sfp_speed; - struct xgbe_sfp_eeprom sfp_eeprom; - enum xgbe_mdio_mode phydev_mode; - struct mii_bus *mii; - struct phy_device *phydev; - enum xgbe_mdio_reset mdio_reset; - unsigned int mdio_reset_addr; - unsigned int mdio_reset_gpio; - unsigned int redrv; - unsigned int redrv_if; - unsigned int redrv_addr; - unsigned int redrv_lane; - unsigned int redrv_model; - unsigned int phy_cdr_notrack; - unsigned int phy_cdr_delay; -}; +struct bcm_qspi_dev_id; -struct hclge_comm_rss_tc_mode_cmd { - __le16 rss_tc_mode[8]; - u8 rsv[8]; +struct bcm_qspi { + struct platform_device *pdev; + struct spi_controller *host; + struct clk *clk; + u32 base_clk; + u32 max_speed_hz; + void *base[3]; + struct bcm_qspi_soc_intc *soc_intc; + struct bcm_qspi_parms last_parms; + struct qspi_trans trans_pos; + int curr_cs; + int bspi_maj_rev; + int bspi_min_rev; + int bspi_enabled; + const struct spi_mem_op *bspi_rf_op; + u32 bspi_rf_op_idx; + u32 bspi_rf_op_len; + u32 bspi_rf_op_status; + struct bcm_xfer_mode xfer_mode; + u32 s3_strap_override_ctrl; + bool bspi_mode; + bool big_endian; + int num_irqs; + struct bcm_qspi_dev_id *dev_ids; + struct completion mspi_done; + struct completion bspi_done; + u8 mspi_maj_rev; + u8 mspi_min_rev; + bool mspi_spcr3_sysclk; }; -struct hclge_comm_rss_input_tuple_cmd { - u8 ipv4_tcp_en; - u8 ipv4_udp_en; - u8 ipv4_sctp_en; - u8 ipv4_fragment_en; - u8 ipv6_tcp_en; - u8 ipv6_udp_en; - u8 ipv6_sctp_en; - u8 ipv6_fragment_en; - u8 rsv[16]; +struct bcm_qspi_dev_id { + const struct bcm_qspi_irq *irqp; + void *dev; }; -struct hclge_comm_rss_ind_tbl_cmd { - __le16 start_table_index; - __le16 rss_set_bitmap; - u8 rss_qid_h[4]; - u8 rss_qid_l[16]; +struct iproc_mdio_priv { + struct mii_bus *mii_bus; + void *base; }; -struct hclge_comm_rss_config_cmd { - u8 hash_config; - u8 rsv[7]; - u8 hash_key[16]; +enum enetc_ic_mode { + ENETC_IC_NONE = 0, + ENETC_IC_RX_MANUAL = 1, + ENETC_IC_TX_MANUAL = 2, + ENETC_IC_RX_ADAPTIVE = 4, }; -struct vfio_pci_vf_token { - struct mutex lock; - uuid_t uuid; - int users; +enum enetc_flags_bit { + ENETC_TX_ONESTEP_TSTAMP_IN_PROGRESS = 0, }; -struct vfio_pci_dummy_resource { - struct resource resource; - int index; - struct list_head res_next; +enum enetc_txbd_flags { + ENETC_TXBD_FLAGS_RES0 = 1, + ENETC_TXBD_FLAGS_TSE = 2, + ENETC_TXBD_FLAGS_W = 4, + ENETC_TXBD_FLAGS_RES3 = 8, + ENETC_TXBD_FLAGS_TXSTART = 16, + ENETC_TXBD_FLAGS_EX = 64, + ENETC_TXBD_FLAGS_F = 128, }; -struct vfio_pci_mmap_vma { - struct vm_area_struct *vma; - struct list_head vma_next; +enum enetc_bdr_type { + TX = 0, + RX = 1, }; -struct vfio_pci_walk_info { - int (*fn)(struct pci_dev *, void *); - void *data; - struct pci_dev *pdev; - bool slot; - int ret; +union enetc_tx_bd { + struct { + __le64 addr; + __le16 buf_len; + __le16 frm_len; + union { + struct { + u8 reserved[3]; + u8 flags; + }; + __le32 txstart; + __le32 lstatus; + }; + }; + struct { + __le32 tstamp; + __le16 tpid; + __le16 vid; + u8 reserved[6]; + u8 e_flags; + u8 flags; + } ext; + struct { + __le32 tstamp; + u8 reserved[10]; + u8 status; + u8 flags; + } wb; }; -struct vfio_device_info { - __u32 argsz; - __u32 flags; - __u32 num_regions; - __u32 num_irqs; - __u32 cap_offset; +union enetc_rx_bd { + struct { + __le64 addr; + u8 reserved[8]; + } w; + struct { + __le16 inet_csum; + __le16 parse_summary; + __le32 rss_hash; + __le16 buf_len; + __le16 vlan_opt; + union { + struct { + __le16 flags; + __le16 error; + }; + __le32 lstatus; + }; + } r; + struct { + __le32 tstamp; + u8 reserved[12]; + } ext; }; -struct vfio_region_info { - __u32 argsz; - __u32 flags; - __u32 index; - __u32 cap_offset; - __u64 size; - __u64 offset; +enum hclge_mdio_c22_op_seq { + HCLGE_MDIO_C22_WRITE = 1, + HCLGE_MDIO_C22_READ = 2, }; -struct vfio_region_info_cap_type { - struct vfio_info_cap_header header; - __u32 type; - __u32 subtype; +struct hclge_phy_reg_cmd { + __le16 reg_addr; + u8 rsv0[2]; + __le16 reg_val; + u8 rsv1[18]; }; -struct vfio_irq_info { - __u32 argsz; - __u32 flags; - __u32 index; - __u32 count; +struct hclge_mdio_cfg_cmd { + u8 ctrl_bit; + u8 phyid; + u8 phyad; + u8 rsvd; + __le16 reserve; + __le16 data_wr; + __le16 data_rd; + __le16 sta; }; -struct vfio_irq_set { - __u32 argsz; - __u32 flags; - __u32 index; - __u32 start; - __u32 count; - __u8 data[0]; +struct dwc3_ep_file_map { + const char name[25]; + const struct file_operations * const fops; }; -struct vfio_pci_dependent_device { - __u32 group_id; - __u16 segment; - __u8 bus; - __u8 devfn; +struct ci_hdrc_pci { + struct platform_device *ci; + struct platform_device *phy; }; -struct vfio_pci_hot_reset_info { - __u32 argsz; - __u32 flags; - __u32 count; - struct vfio_pci_dependent_device devices[0]; +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; }; -struct vfio_pci_fill_info { - int max; - int cur; - struct vfio_pci_dependent_device *devices; +enum synaptics_pkt_type { + SYN_NEWABS = 0, + SYN_NEWABS_STRICT = 1, + SYN_NEWABS_RELAXED = 2, + SYN_OLDABS = 3, }; -struct vfio_pci_hot_reset { - __u32 argsz; - __u32 flags; - __u32 count; - __s32 group_fds[0]; +enum rmi_sensor_type { + rmi_sensor_default = 0, + rmi_sensor_touchscreen = 1, + rmi_sensor_touchpad = 2, }; -struct vfio_pci_group_info { - int count; - struct file **files; +enum rmi_reg_state { + RMI_REG_STATE_DEFAULT = 0, + RMI_REG_STATE_OFF = 1, + RMI_REG_STATE_ON = 2, }; -struct vfio_device_ioeventfd { - __u32 argsz; - __u32 flags; - __u64 offset; - __u64 data; - __s32 fd; +enum { + SYNAPTICS_INTERTOUCH_NOT_SET = -1, + SYNAPTICS_INTERTOUCH_OFF = 0, + SYNAPTICS_INTERTOUCH_ON = 1, }; -struct vfio_device_info_cap_pci_atomic_comp { - struct vfio_info_cap_header header; - __u32 flags; - __u32 reserved; +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 vfio_device_low_power_entry_with_wakeup { - __s32 wakeup_eventfd; - __u32 reserved; +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 ulpi_info { - unsigned int id; - char *name; +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; }; -typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_dbg_quirks)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_dbg_reset_ep)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *); - -typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); - -typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *); - -typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); - -typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); - -typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *); - -typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *); - -typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); - -typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); - -typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); - -typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); - -typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); - -typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); - -typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); - -typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); - -typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); - -typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); - -typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); - -typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); +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; +}; -typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); +struct rmi_f01_power_management { + enum rmi_reg_state nosleep; + u8 wakeup_threshold; + u8 doze_holdoff; + u8 doze_interval; +}; -typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); +struct rmi_gpio_data { + bool buttonpad; + bool trackstick_buttons; + bool disable; +}; -typedef void (*btf_trace_xhci_handle_port_status)(void *, u32, u32); +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; +}; -typedef void (*btf_trace_xhci_get_port_status)(void *, u32, u32); +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; +}; -typedef void (*btf_trace_xhci_hub_status_data)(void *, u32, u32); +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_xhci_ring_ep_doorbell)(void *, u32, u32); +struct i2c_spec_values___2 { + unsigned long min_hold_start_ns; + unsigned long min_low_ns; + unsigned long min_high_ns; + unsigned long min_setup_start_ns; + unsigned long max_data_hold_ns; + unsigned long min_data_setup_ns; + unsigned long min_setup_stop_ns; + unsigned long min_hold_buffer_ns; +}; -typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); +struct rk3x_i2c_calced_timings; -struct dbc_request; +struct rk3x_i2c_soc_data { + int grf_offset; + int (*calc_timings)(unsigned long, struct i2c_timings *, struct rk3x_i2c_calced_timings *); +}; -typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); +struct rk3x_i2c_calced_timings { + unsigned long div_low; + unsigned long div_high; + unsigned int tuning; +}; -struct xhci_dbc; +enum rk3x_i2c_state { + STATE_IDLE___2 = 0, + STATE_START = 1, + STATE_READ = 2, + STATE_WRITE = 3, + STATE_STOP = 4, +}; -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 { + REG_CON_MOD_TX = 0, + REG_CON_MOD_REGISTER_TX = 1, + REG_CON_MOD_RX = 2, + REG_CON_MOD_REGISTER_RX = 3, }; -enum dbc_state { - DS_DISABLED = 0, - DS_INITIALIZED = 1, - DS_ENABLED = 2, - DS_CONNECTED = 3, - DS_CONFIGURED = 4, - DS_STALLED = 5, +struct rk3x_i2c { + struct i2c_adapter adap; + struct device *dev; + const struct rk3x_i2c_soc_data *soc_data; + void *regs; + struct clk *clk; + struct clk *pclk; + struct notifier_block clk_rate_nb; + int irq; + struct i2c_timings t; + spinlock_t lock; + wait_queue_head_t wait; + bool busy; + struct i2c_msg *msg; + u8 addr; + unsigned int mode; + bool is_last_msg; + enum rk3x_i2c_state state; + unsigned int processed; + int error; }; -struct dbc_ep { - struct xhci_dbc *dbc; - struct list_head list_pending; - struct xhci_ring *ring; - unsigned int direction: 1; +struct dm_kobject_holder { + struct kobject kobj; + struct completion completion; }; -struct dbc_regs; +struct qcom_cpufreq_drv; -struct dbc_str_descs; +struct qcom_cpufreq_match_data { + int (*get_version)(struct device *, struct nvmem_cell *, char **, struct qcom_cpufreq_drv *); + const char **genpd_names; +}; -struct dbc_driver; +struct qcom_cpufreq_drv_cpu { + int opp_token; + struct device **virt_devs; +}; -struct xhci_dbc { - spinlock_t lock; - struct device *dev; - struct xhci_hcd *xhci; - struct dbc_regs *regs; - struct xhci_ring *ring_evt; - struct xhci_ring *ring_in; - struct xhci_ring *ring_out; - struct xhci_erst erst; - struct xhci_container_ctx *ctx; - struct dbc_str_descs *string; - dma_addr_t string_dma; - size_t string_size; - u16 idVendor; - u16 idProduct; - u16 bcdDevice; - u8 bInterfaceProtocol; - enum dbc_state state; - struct delayed_work event_work; - unsigned int resume_required: 1; - struct dbc_ep eps[2]; - const struct dbc_driver *driver; - void *priv; +struct qcom_cpufreq_drv { + u32 versions; + const struct qcom_cpufreq_match_data *data; + struct qcom_cpufreq_drv_cpu cpus[0]; }; -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; +enum ipq806x_versions { + IPQ8062_VERSION = 0, + IPQ8064_VERSION = 1, + IPQ8065_VERSION = 2, }; -struct dbc_str_descs { - char string0[64]; - char manufacturer[64]; - char product[64]; - char serial[64]; +enum ipq8074_versions { + IPQ8074_HAWKEYE_VERSION = 0, + IPQ8074_ACORN_VERSION = 1, }; -struct dbc_driver { - int (*configure)(struct xhci_dbc *); - void (*disconnect)(struct xhci_dbc *); +struct sd_busy_data { + struct mmc_card *card; + u8 *reg_buf; }; -typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *); +struct hs_timing { + u32 drv_phase; + u32 smpl_dly; + u32 smpl_phase_max; + u32 smpl_phase_min; +}; -typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *); +struct k3_priv { + int ctrl_id; + u32 cur_speed; + struct regmap *reg; +}; -typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *); +struct sdhci_msm_variant_ops; -struct trace_event_raw_xhci_log_msg { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; -}; +struct sdhci_msm_offset; -struct trace_event_raw_xhci_log_ctx { - struct trace_entry ent; - int ctx_64; - unsigned int ctx_type; - dma_addr_t ctx_dma; - u8 *ctx_va; - unsigned int ctx_ep_num; - u32 __data_loc_ctx_data; - char __data[0]; +struct sdhci_msm_variant_info { + bool mci_removed; + bool restore_dll_config; + const struct sdhci_msm_variant_ops *var_ops; + const struct sdhci_msm_offset *offset; }; -struct trace_event_raw_xhci_log_trb { - struct trace_entry ent; - u32 type; - u32 field0; - u32 field1; - u32 field2; - u32 field3; - char __data[0]; +struct sdhci_msm_variant_ops { + u32 (*msm_readl_relaxed)(struct sdhci_host *, u32); + void (*msm_writel_relaxed)(u32, struct sdhci_host *, u32); }; -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 sdhci_msm_offset { + u32 core_hc_mode; + u32 core_mci_data_cnt; + u32 core_mci_status; + u32 core_mci_fifo_cnt; + u32 core_mci_version; + u32 core_generics; + u32 core_testbus_config; + u32 core_testbus_sel2_bit; + u32 core_testbus_ena; + u32 core_testbus_sel2; + u32 core_pwrctl_status; + u32 core_pwrctl_mask; + u32 core_pwrctl_clear; + u32 core_pwrctl_ctl; + u32 core_sdcc_debug_reg; + u32 core_dll_config; + u32 core_dll_status; + u32 core_vendor_spec; + u32 core_vendor_spec_adma_err_addr0; + u32 core_vendor_spec_adma_err_addr1; + u32 core_vendor_spec_func2; + u32 core_vendor_spec_capabilities0; + u32 core_ddr_200_cfg; + u32 core_vendor_spec3; + u32 core_dll_config_2; + u32 core_dll_config_3; + u32 core_ddr_config_old; + u32 core_ddr_config; + u32 core_dll_usr_ctl; }; -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 sdhci_msm_host { + struct platform_device *pdev; + void *core_mem; + int pwr_irq; + struct clk *bus_clk; + struct clk *xo_clk; + struct clk_bulk_data bulk_clks[4]; + unsigned long clk_rate; + struct mmc_host *mmc; + bool use_14lpp_dll_reset; + bool tuning_done; + bool calibration_done; + u8 saved_tuning_phase; + bool use_cdclp533; + u32 curr_pwr_state; + u32 curr_io_level; + wait_queue_head_t pwr_irq_wait; + bool pwr_irq_flag; + u32 caps_0; + bool mci_removed; + bool restore_dll_config; + const struct sdhci_msm_variant_ops *var_ops; + const struct sdhci_msm_offset *offset; + bool use_cdr; + u32 transfer_mode; + bool updated_ddr_cfg; + bool uses_tassadar_dll; + u32 dll_config; + u32 ddr_config; + bool vqmmc_enabled; }; -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 kfifo { + union { + struct __kfifo kfifo; + unsigned char *type; + const unsigned char *const_type; + char (*rectype)[0]; + void *ptr; + const void *ptr_const; + }; + unsigned char buf[0]; }; -struct trace_event_raw_xhci_log_ep_ctx { - struct trace_entry ent; - u32 info; - u32 info2; - u64 deq; - u32 tx_info; - char __data[0]; +struct events_queue { + size_t sz; + struct kfifo kfifo; + struct work_struct notify_work; + struct workqueue_struct *wq; }; -struct trace_event_raw_xhci_log_slot_ctx { - struct trace_entry ent; - u32 info; - u32 info2; - u32 tt_info; - u32 state; - char __data[0]; -}; +struct scmi_notify_instance; -struct trace_event_raw_xhci_log_ctrl_ctx { - struct trace_entry ent; - u32 drop; - u32 add; - char __data[0]; +struct scmi_event_header; + +struct scmi_registered_event; + +struct scmi_registered_events_desc { + u8 id; + const struct scmi_event_ops *ops; + struct events_queue equeue; + struct scmi_notify_instance *ni; + struct scmi_event_header *eh; + size_t eh_sz; + void *in_flight; + int num_events; + struct scmi_registered_event **registered_events; + struct mutex registered_mtx; + const struct scmi_protocol_handle *ph; + struct hlist_head registered_events_handlers[64]; }; -struct trace_event_raw_xhci_log_ring { - struct trace_entry ent; - u32 type; - void *ring; - dma_addr_t enq; - dma_addr_t deq; - dma_addr_t enq_seg; - dma_addr_t deq_seg; - unsigned int num_segs; - unsigned int stream_id; - unsigned int cycle_state; - unsigned int bounce_buf_len; - char __data[0]; +struct scmi_notify_instance { + void *gid; + struct scmi_handle *handle; + struct work_struct init_work; + struct workqueue_struct *notify_wq; + struct mutex pending_mtx; + struct scmi_registered_events_desc **registered_protocols; + struct hlist_head pending_events_handlers[16]; }; -struct trace_event_raw_xhci_log_portsc { - struct trace_entry ent; - u32 portnum; - u32 portsc; - char __data[0]; +struct scmi_event_header { + ktime_t timestamp; + size_t payld_sz; + unsigned char evt_id; + unsigned char payld[0]; }; -struct trace_event_raw_xhci_log_doorbell { - struct trace_entry ent; - u32 slot; - u32 doorbell; - char __data[0]; +struct scmi_registered_event { + struct scmi_registered_events_desc *proto; + const struct scmi_event *evt; + void *report; + u32 num_sources; + refcount_t *sources; + struct mutex sources_mtx; }; -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 scmi_event_handler { + u32 key; + refcount_t users; + struct scmi_registered_event *r_evt; + struct blocking_notifier_head chain; + struct hlist_node hash; + bool enabled; }; -struct trace_event_data_offsets_xhci_log_msg { - u32 msg; +struct scmi_notifier_devres { + const struct scmi_handle *handle; + u8 proto_id; + u8 evt_id; + u32 __src_id; + u32 *src_id; + struct notifier_block *nb; }; -struct trace_event_data_offsets_xhci_log_ctx { - u32 ctx_data; +struct of_bus___2 { + void (*count_cells)(const void *, int, int *, int *); + u64 (*map)(__be32 *, const __be32 *, int, int, int); + int (*translate)(__be32 *, u64, int); }; -struct trace_event_data_offsets_xhci_log_trb {}; +typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); -struct trace_event_data_offsets_xhci_log_free_virt_dev {}; +struct of_intc_desc { + struct list_head list; + of_irq_init_cb_t irq_init_cb; + struct device_node *dev; + struct device_node *interrupt_parent; +}; -struct trace_event_data_offsets_xhci_log_virt_dev {}; +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 trace_event_data_offsets_xhci_log_urb {}; +struct pcc_chan_reg { + void *vaddr; + struct acpi_generic_address *gas; + u64 preserve_mask; + u64 set_mask; + u64 status_mask; +}; -struct trace_event_data_offsets_xhci_log_ep_ctx {}; +struct pcc_chan_info { + struct pcc_mbox_chan chan; + struct pcc_chan_reg db; + struct pcc_chan_reg plat_irq_ack; + struct pcc_chan_reg cmd_complete; + struct pcc_chan_reg cmd_update; + struct pcc_chan_reg error; + int plat_irq; + u8 type; + unsigned int plat_irq_flags; + bool chan_in_use; +}; -struct trace_event_data_offsets_xhci_log_slot_ctx {}; +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 trace_event_data_offsets_xhci_log_ctrl_ctx {}; +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 trace_event_data_offsets_xhci_log_ring {}; +struct acpi_table_pcct { + struct acpi_table_header header; + u32 flags; + u64 reserved; +}; -struct trace_event_data_offsets_xhci_log_portsc {}; +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 trace_event_data_offsets_xhci_log_doorbell {}; +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 trace_event_data_offsets_xhci_dbc_log_request {}; +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 meson_i2c; +struct cluster_pmu; -struct meson_i2c_data { - void (*set_clk_div)(struct meson_i2c *, unsigned int); +struct l2cache_pmu { + struct hlist_node node; + u32 num_pmus; + struct pmu pmu; + int num_counters; + cpumask_t cpumask; + struct platform_device *pdev; + struct cluster_pmu * __attribute__((btf_type_tag("percpu"))) *pmu_cluster; + struct list_head clusters; }; -struct meson_i2c { - struct i2c_adapter adap; - struct device *dev; - void *regs; - struct clk *clk; - struct i2c_msg *msg; - int state; - bool last; - int count; - int pos; - int error; - spinlock_t lock; - struct completion done; - u32 tokens[2]; - int num_tokens; - const struct meson_i2c_data *data; +struct cluster_pmu { + struct list_head next; + struct perf_event *events[9]; + struct l2cache_pmu *l2cache_pmu; + unsigned long used_counters[1]; + unsigned long used_groups[1]; + int irq; + int cluster_id; + int on_cpu; + cpumask_t cluster_cpus; + spinlock_t pmu_lock; }; enum { - STATE_IDLE___3 = 0, - STATE_READ___2 = 1, - STATE_WRITE___2 = 2, + HTE_TS_REGISTERED = 0, + HTE_TS_REQ = 1, + HTE_TS_DISABLE = 2, + HTE_TS_QUEUE_WK = 3, }; -enum { - TOKEN_END = 0, - TOKEN_START = 1, - TOKEN_SLAVE_ADDR_WRITE = 2, - TOKEN_SLAVE_ADDR_READ = 3, - TOKEN_DATA = 4, - TOKEN_DATA_LAST = 5, - TOKEN_STOP = 6, +struct hte_ts_info { + u32 xlated_id; + unsigned long flags; + unsigned long hte_cb_flags; + u64 seq; + char *line_name; + bool free_attr_name; + hte_ts_cb_t cb; + hte_ts_sec_cb_t tcb; + atomic_t dropped_ts; + spinlock_t slock; + struct work_struct cb_work; + struct mutex req_mlock; + struct dentry *ts_dbg_root; + struct hte_device *gdev; + void *cl_data; }; -struct ctl_info_attribute { - struct attribute attr; - ssize_t (*show)(struct edac_device_ctl_info *, char *); - ssize_t (*store)(struct edac_device_ctl_info *, const char *, size_t); +struct hte_device { + u32 nlines; + atomic_t ts_req; + struct device *sdev; + struct dentry *dbg_root; + struct list_head list; + struct hte_chip *chip; + struct module *owner; + struct hte_ts_info ei[0]; }; -struct instance_attribute___2 { - struct attribute attr; - ssize_t (*show)(struct edac_device_instance *, char *); - ssize_t (*store)(struct edac_device_instance *, const char *, size_t); +struct soc_mixer_control { + int min; + int max; + int platform_max; + int reg; + int rreg; + unsigned int shift; + unsigned int rshift; + unsigned int sign_bit; + unsigned int invert: 1; + unsigned int autodisable: 1; + struct snd_soc_dobj dobj; }; -enum tick_broadcast_mode { - TICK_BROADCAST_OFF = 0, - TICK_BROADCAST_ON = 1, - TICK_BROADCAST_FORCE = 2, +struct soc_enum { + int reg; + unsigned char shift_l; + unsigned char shift_r; + unsigned int items; + unsigned int mask; + const char * const *texts; + const unsigned int *values; + unsigned int autodisable: 1; + struct snd_soc_dobj dobj; }; -struct mmci_platform_data { - unsigned int ocr_mask; - unsigned int (*status)(struct device *); +struct dapm_kcontrol_data { + unsigned int value; + struct snd_soc_dapm_widget *widget; + struct list_head paths; + struct snd_soc_dapm_widget_list *wlist; }; -struct mmci_dmae_next { - struct dma_async_tx_descriptor *desc; - struct dma_chan *chan; +struct snd_soc_dapm_pinctrl_priv { + const char *active_state; + const char *sleep_state; }; -struct mmci_dmae_priv { - struct dma_chan *cur; - struct dma_chan *rx_channel; - struct dma_chan *tx_channel; - struct dma_async_tx_descriptor *desc_current; - struct mmci_dmae_next next_data; +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 exynos_ufs_uic_attr; +struct broadcast_sk { + struct sock *sk; + struct work_struct work; +}; -struct exynos_ufs; +struct sock_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; +}; -struct exynos_ufs_drv_data { - const struct ufs_hba_variant_ops *vops; - struct exynos_ufs_uic_attr *uic_attr; - unsigned int quirks; - unsigned int opts; - int (*drv_init)(struct device *, struct exynos_ufs *); - int (*pre_link)(struct exynos_ufs *); - int (*post_link)(struct exynos_ufs *); - int (*pre_pwr_change)(struct exynos_ufs *, struct ufs_pa_layer_attr *); - int (*post_pwr_change)(struct exynos_ufs *, struct ufs_pa_layer_attr *); - int (*pre_hce_enable)(struct exynos_ufs *); - int (*post_hce_enable)(struct exynos_ufs *); +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, }; -struct exynos_ufs_uic_attr { - unsigned int tx_trailingclks; - unsigned int tx_dif_p_nsec; - unsigned int tx_dif_n_nsec; - unsigned int tx_high_z_cnt_nsec; - unsigned int tx_base_unit_nsec; - unsigned int tx_gran_unit_nsec; - unsigned int tx_sleep_cnt; - unsigned int tx_min_activatetime; - unsigned int rx_filler_enable; - unsigned int rx_dif_p_nsec; - unsigned int rx_hibern8_wait_nsec; - unsigned int rx_base_unit_nsec; - unsigned int rx_gran_unit_nsec; - unsigned int rx_sleep_cnt; - unsigned int rx_stall_cnt; - unsigned int rx_hs_g1_sync_len_cap; - unsigned int rx_hs_g2_sync_len_cap; - unsigned int rx_hs_g3_sync_len_cap; - unsigned int rx_hs_g1_prep_sync_len_cap; - unsigned int rx_hs_g2_prep_sync_len_cap; - unsigned int rx_hs_g3_prep_sync_len_cap; - unsigned int cmn_pwm_clk_ctrl; - unsigned int pa_dbg_option_suite; - unsigned int rx_adv_fine_gran_sup_en; - unsigned int rx_adv_fine_gran_step; - unsigned int rx_min_actv_time_cap; - unsigned int rx_hibern8_time_cap; - unsigned int rx_adv_min_actv_time_cap; - unsigned int rx_adv_hibern8_time_cap; - unsigned int pa_granularity; - unsigned int pa_tactivate; - unsigned int pa_hibern8time; +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 ufs_phy_time_cfg { - u32 tx_linereset_p; - u32 tx_linereset_n; - u32 tx_high_z_cnt; - u32 tx_base_n_val; - u32 tx_gran_n_val; - u32 tx_sleep_cnt; - u32 rx_linereset; - u32 rx_hibern8_wait; - u32 rx_base_n_val; - u32 rx_gran_n_val; - u32 rx_sleep_cnt; - u32 rx_stall_cnt; +struct fib_rule_uid_range { + __u32 start; + __u32 end; }; -struct exynos_ufs { - struct ufs_hba *hba; - struct phy *phy; - void *reg_hci; - void *reg_unipro; - void *reg_ufsp; - struct clk *clk_hci_core; - struct clk *clk_unipro_main; - struct clk *clk_apb; - u32 pclk_rate; - u32 pclk_div; - u32 pclk_avail_min; - u32 pclk_avail_max; - unsigned long mclk_rate; - int avail_ln_rx; - int avail_ln_tx; - int rx_sel_idx; - struct ufs_pa_layer_attr dev_req_params; - struct ufs_phy_time_cfg t_cfg; - ktime_t entry_hibern8_t; - const struct exynos_ufs_drv_data *drv_data; - struct regmap *sysreg; - u32 shareability_reg_offset; - u32 opts; +struct fib_rule_notifier_info { + struct fib_notifier_info info; + struct fib_rule *rule; }; -enum { - UNIPRO_L1_5 = 0, - UNIPRO_L2 = 1, - UNIPRO_L3 = 2, - UNIPRO_L4 = 3, - UNIPRO_DME = 4, +struct strset_info { + bool per_dev; + bool free_strings; + unsigned int count; + const char (*strings)[32]; }; enum { - CPORT_IDLE = 0, - CPORT_CONNECTED = 1, + 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 { - DEV_ID = 0, - PEER_DEV_ID = 1, - PEER_CPORT_ID = 0, - TRAFFIC_CLASS = 0, + ETHTOOL_A_STRINGSETS_UNSPEC = 0, + ETHTOOL_A_STRINGSETS_STRINGSET = 1, + __ETHTOOL_A_STRINGSETS_CNT = 2, + ETHTOOL_A_STRINGSETS_MAX = 1, }; enum { - SYNC_LEN_G1 = 80000, - SYNC_LEN_G2 = 40000, - SYNC_LEN_G3 = 20000, + 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 { - UFS_ABORT_TASK = 1, - UFS_ABORT_TASK_SET = 2, - UFS_CLEAR_TASK_SET = 4, - UFS_LOGICAL_RESET = 8, - UFS_QUERY_TASK = 128, - UFS_QUERY_TASK_SET = 129, + ETHTOOL_A_STRINGS_UNSPEC = 0, + ETHTOOL_A_STRINGS_STRING = 1, + __ETHTOOL_A_STRINGS_CNT = 2, + ETHTOOL_A_STRINGS_MAX = 1, }; -struct capsule_info { - efi_capsule_header_t header; - efi_capsule_header_t *capsule; - int reset_type; - long index; - size_t count; - size_t total_size; - struct page **pages; - phys_addr_t *phys; - size_t page_bytes_remain; +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 hi3660_chan_info { - unsigned int dst_irq; - unsigned int ack_irq; +struct strset_req_info { + struct ethnl_req_info base; + u32 req_ids; + bool counts_only; }; -struct hi3660_mbox { - struct device *dev; - void *base; - struct mbox_chan chan[32]; - struct hi3660_chan_info mchan[32]; - struct mbox_controller controller; +struct strset_reply_data { + struct ethnl_reply_data base; + struct strset_info sets[21]; }; -struct usb_extcon_info { - struct device *dev; - struct extcon_dev *edev; - struct gpio_desc *id_gpiod; - struct gpio_desc *vbus_gpiod; - int id_irq; - int vbus_irq; - unsigned long debounce_jiffies; - struct delayed_work wq_detcable; +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 optee_shm_arg_entry { - struct list_head list_node; - struct tee_shm *shm; - unsigned long map[1]; +struct features_reply_data { + struct ethnl_reply_data base; + u32 hw[2]; + u32 wanted[2]; + u32 active[2]; + u32 nochange[2]; + u32 all[2]; }; -struct optee_call_waiter { - struct list_head list_node; - struct completion c; +struct ipv4_addr_key { + __be32 addr; + int vif; }; -struct optee_msg_arg { - u32 cmd; - u32 func; - u32 session; - u32 cancel_id; - u32 pad; - u32 ret; - u32 ret_origin; - u32 num_params; - struct optee_msg_param params[0]; +struct inetpeer_addr { + union { + struct ipv4_addr_key a4; + struct in6_addr a6; + u32 key[4]; + }; + __u16 family; }; -struct net_device_devres { - struct net_device *ndev; +struct inet_peer { + struct rb_node rb_node; + struct inetpeer_addr daddr; + u32 metrics[17]; + u32 rate_tokens; + u32 n_redirects; + unsigned long rate_last; + union { + struct { + atomic_t rid; + }; + struct callback_head rcu; + }; + __u32 dtime; + refcount_t refcnt; }; enum { - SKB_FCLONE_UNAVAILABLE = 0, - SKB_FCLONE_ORIG = 1, - SKB_FCLONE_CLONE = 2, + INET_FRAG_FIRST_IN = 1, + INET_FRAG_LAST_IN = 2, + INET_FRAG_COMPLETE = 4, + INET_FRAG_HASH_DEAD = 8, + INET_FRAG_DROP = 16, }; -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); - int registered; +enum ip_defrag_users { + IP_DEFRAG_LOCAL_DELIVER = 0, + IP_DEFRAG_CALL_RA_CHAIN = 1, + IP_DEFRAG_CONNTRACK_IN = 2, + __IP_DEFRAG_CONNTRACK_IN_END = 65537, + IP_DEFRAG_CONNTRACK_OUT = 65538, + __IP_DEFRAG_CONNTRACK_OUT_END = 131073, + IP_DEFRAG_CONNTRACK_BRIDGE_IN = 131074, + __IP_DEFRAG_CONNTRACK_BRIDGE_IN = 196609, + IP_DEFRAG_VS_IN = 196610, + IP_DEFRAG_VS_OUT = 196611, + IP_DEFRAG_VS_FWD = 196612, + IP_DEFRAG_AF_PACKET = 196613, + IP_DEFRAG_MACVLAN = 196614, }; -struct listeners { - struct callback_head rcu; - unsigned long masks[0]; +struct ipq { + struct inet_frag_queue q; + u8 ecn; + u16 max_df_size; + int iif; + unsigned int rid; + struct inet_peer *peer; }; -enum netlink_skb_flags { - NETLINK_SKB_DST = 8, +struct raw_hashinfo { + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct hlist_head ht[256]; }; -enum { - NETLINK_UNCONNECTED = 0, - NETLINK_CONNECTED = 1, +struct icmp_filter { + __u32 data; }; -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 raw_sock { + struct inet_sock inet; + struct icmp_filter filter; + u32 ipmr_table; }; -struct trace_event_raw_netlink_extack { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; +struct raw_frag_vec { + struct msghdr *msg; + union { + struct icmphdr icmph; + char c[1]; + } hdr; + int hlen; }; -struct netlink_tap { - struct net_device *dev; - struct module *module; - struct list_head list; +struct raw_iter_state { + struct seq_net_private p; + int bucket; }; -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; +enum nexthop_event_type { + NEXTHOP_EVENT_DEL = 0, + NEXTHOP_EVENT_REPLACE = 1, + NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, + NEXTHOP_EVENT_BUCKET_REPLACE = 3, }; -struct sockaddr_nl { - __kernel_sa_family_t nl_family; - unsigned short nl_pad; - __u32 nl_pid; - __u32 nl_groups; +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, }; -struct trace_event_data_offsets_netlink_extack { - u32 msg; +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, }; -struct netlink_tap_net { - struct list_head netlink_tap_all; - struct mutex netlink_tap_lock; +enum { + NEXTHOP_GRP_TYPE_MPATH = 0, + NEXTHOP_GRP_TYPE_RES = 1, + __NEXTHOP_GRP_TYPE_MAX = 2, }; -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; +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, }; -struct netlink_set_err_data { - struct sock *exclude_sk; - u32 portid; - u32 group; - int code; +enum { + NHA_RES_BUCKET_UNSPEC = 0, + NHA_RES_BUCKET_PAD = 0, + NHA_RES_BUCKET_INDEX = 1, + NHA_RES_BUCKET_IDLE_TIME = 2, + NHA_RES_BUCKET_NH_ID = 3, + __NHA_RES_BUCKET_MAX = 4, }; -struct netlink_compare_arg { - possible_net_t pnet; - u32 portid; -}; +struct nh_notifier_single_info; -struct nl_pktinfo { - __u32 group; -}; +struct nh_notifier_grp_info; -struct ucred { - __u32 pid; - __u32 uid; - __u32 gid; -}; +struct nh_notifier_res_table_info; -struct nl_seq_iter { - struct seq_net_private p; - struct rhashtable_iter hti; - int link; -}; +struct nh_notifier_res_bucket_info; -struct bpf_iter__netlink { +struct nh_notifier_info { + struct net *net; + struct netlink_ext_ack *extack; + u32 id; + enum nh_notifier_info_type type; union { - struct bpf_iter_meta *meta; + 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 { - struct netlink_sock *sk; + __be32 ipv4; + struct in6_addr ipv6; }; + u8 is_reject: 1; + u8 is_fdb: 1; + u8 has_encap: 1; }; -struct nlmsgerr { - int error; - struct nlmsghdr msg; +struct nh_notifier_grp_entry_info { + u8 weight; + u32 id; + struct nh_notifier_single_info nh; }; -struct netlink_notify { - struct net *net; - u32 portid; - int protocol; +struct nh_notifier_grp_info { + u16 num_nh; + bool is_fdb; + struct nh_notifier_grp_entry_info nh_entries[0]; }; -struct tsq_tasklet { - struct tasklet_struct tasklet; - struct list_head head; +struct nh_notifier_res_table_info { + u16 num_nh_buckets; + struct nh_notifier_single_info nhs[0]; }; -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, +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; }; -enum { - BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, - BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, +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; }; -enum { - TCP_NO_QUEUE = 0, - TCP_RECV_QUEUE = 1, - TCP_SEND_QUEUE = 2, - TCP_QUEUES_NR = 3, +struct nhmsg { + unsigned char nh_family; + unsigned char nh_scope; + unsigned char nh_protocol; + unsigned char resvd; + unsigned int nh_flags; }; -struct sk_buff_fclones { - struct sk_buff skb1; - struct sk_buff skb2; - refcount_t fclone_ref; +struct nexthop_grp { + __u32 id; + __u8 weight; + __u8 resvd1; + __u16 resvd2; }; -struct mptcp_out_options {}; - -struct tcp_out_options { - u16 options; - u16 mss; - u8 ws; - u8 num_sack_blocks; - u8 hash_size; - u8 bpf_opt_len; - __u8 *hash_location; - __u32 tsval; - __u32 tsecr; - struct tcp_fastopen_cookie *fastopen_cookie; - struct mptcp_out_options mptcp; +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 udp_skb_cb { - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - } header; - __u16 cscov; - __u8 partial_cov; +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 cache_queue { - struct list_head list; - int reader; +struct rtm_dump_nh_ctx { + u32 idx; }; -struct cache_request { - struct cache_queue q; - struct cache_head *item; - char *buf; - int len; - int readers; +struct rtm_dump_res_bucket_ctx { + struct rtm_dump_nh_ctx nh; + u16 bucket_index; }; -struct thread_deferred_req { - struct cache_deferred_req handle; - struct completion completion; +struct rtm_dump_nexthop_bucket_data { + struct rtm_dump_res_bucket_ctx *ctx; + struct nh_dump_filter filter; }; -struct cache_reader { - struct cache_queue q; - int offset; +struct netdev_notifier_info_ext { + struct netdev_notifier_info info; + union { + u32 mtu; + } ext; }; -typedef struct elf32_hdr Elf32_Ehdr; +struct gssx_name_attr; -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; +struct gssx_name_attr_array { + u32 count; + struct gssx_name_attr *data; }; -typedef struct elf32_phdr Elf32_Phdr; - -typedef struct elf64_phdr Elf64_Phdr; - -typedef struct elf32_note Elf32_Nhdr; +typedef struct xdr_netobj gssx_buffer; -enum { - MAX_IORES_LEVEL = 5, -}; +struct gssx_option; -enum { - REGION_INTERSECTS = 0, - REGION_DISJOINT = 1, - REGION_MIXED = 2, +struct gssx_option_array { + u32 count; + struct gssx_option *data; }; -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 gssx_name_attr { + gssx_buffer attr; + gssx_buffer value; + struct gssx_option_array extensions; }; -struct region_devres { - struct resource *parent; - resource_size_t start; - resource_size_t n; +struct gssx_option { + gssx_buffer option; + gssx_buffer value; }; -enum rtmutex_chainwalk { - RT_MUTEX_MIN_CHAINWALK = 0, - RT_MUTEX_FULL_CHAINWALK = 1, -}; +typedef struct xdr_netobj utf8string; -enum { - AFFINITY = 0, - AFFINITY_LIST = 1, - EFFECTIVE = 2, - EFFECTIVE_LIST = 3, +struct gssx_call_ctx { + utf8string locale; + gssx_buffer server_ctx; + struct gssx_option_array options; }; -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, -}; +typedef struct xdr_netobj gssx_OID; -struct kcmp_epoll_slot { - __u32 efd; - __u32 tfd; - __u32 toff; +struct gssx_name { + gssx_buffer display_name; }; -typedef unsigned short __kernel_old_uid_t; - -typedef __kernel_old_uid_t old_uid_t; +typedef struct gssx_name gssx_name; -typedef unsigned short __kernel_old_gid_t; +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; +}; -typedef __kernel_old_gid_t old_gid_t; +struct gssx_cred_element; -struct trace_bprintk_fmt { - struct list_head list; - const char *fmt; +struct gssx_cred_element_array { + u32 count; + struct gssx_cred_element *data; }; -struct bpf_empty_prog_array { - struct bpf_prog_array hdr; - struct bpf_prog *null_prog; +struct gssx_cred { + gssx_name desired_name; + struct gssx_cred_element_array elements; + gssx_buffer cred_handle_reference; + u32 needs_release; }; -typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32); +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; +}; -typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int); +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; +}; -typedef void (*btf_trace_xdp_redirect)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); +struct gssx_cb; -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); +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; +}; -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); +struct gssx_cb { + u64 initiator_addrtype; + gssx_buffer initiator_address; + u64 acceptor_addrtype; + gssx_buffer acceptor_address; + gssx_buffer application_data; +}; -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); +struct gssx_res_accept_sec_context { + struct gssx_status status; + struct gssx_ctx *context_handle; + gssx_buffer *output_token; + struct gssx_option_array options; +}; -struct xdp_cpumap_stats; +enum dns_payload_content_type { + DNS_PAYLOAD_IS_SERVER_LIST = 0, +}; -typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); +enum dns_lookup_status { + DNS_LOOKUP_NOT_DONE = 0, + DNS_LOOKUP_GOOD = 1, + DNS_LOOKUP_GOOD_WITH_BAD = 2, + DNS_LOOKUP_BAD = 3, + DNS_LOOKUP_GOT_NOT_FOUND = 4, + DNS_LOOKUP_GOT_LOCAL_FAILURE = 5, + DNS_LOOKUP_GOT_TEMP_FAILURE = 6, + DNS_LOOKUP_GOT_NS_FAILURE = 7, + NR__dns_lookup_status = 8, +}; -struct xdp_cpumap_stats { - unsigned int redirect; - unsigned int pass; - unsigned int drop; +enum { + dns_key_data = 0, + dns_key_error = 1, }; -typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int); +struct dns_payload_header { + __u8 zero; + __u8 content; + __u8 version; +}; -typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int); +struct dns_server_list_v1_header { + struct dns_payload_header hdr; + __u8 source; + __u8 status; + __u8 nr_servers; +}; -typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *); +enum handshake_msg_type { + HANDSHAKE_MSG_TYPE_UNSPEC = 0, + HANDSHAKE_MSG_TYPE_CLIENTHELLO = 1, + HANDSHAKE_MSG_TYPE_SERVERHELLO = 2, +}; -typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *); +enum handshake_auth { + HANDSHAKE_AUTH_UNSPEC = 0, + HANDSHAKE_AUTH_UNAUTH = 1, + HANDSHAKE_AUTH_PSK = 2, + HANDSHAKE_AUTH_X509 = 3, +}; -typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *); +enum hr_flags_bits { + HANDSHAKE_F_REQ_COMPLETED = 0, + HANDSHAKE_F_REQ_SESSION = 1, +}; + +enum { + TLS_ALERT_DESC_CLOSE_NOTIFY = 0, + TLS_ALERT_DESC_UNEXPECTED_MESSAGE = 10, + TLS_ALERT_DESC_BAD_RECORD_MAC = 20, + TLS_ALERT_DESC_RECORD_OVERFLOW = 22, + TLS_ALERT_DESC_HANDSHAKE_FAILURE = 40, + TLS_ALERT_DESC_BAD_CERTIFICATE = 42, + TLS_ALERT_DESC_UNSUPPORTED_CERTIFICATE = 43, + TLS_ALERT_DESC_CERTIFICATE_REVOKED = 44, + TLS_ALERT_DESC_CERTIFICATE_EXPIRED = 45, + TLS_ALERT_DESC_CERTIFICATE_UNKNOWN = 46, + TLS_ALERT_DESC_ILLEGAL_PARAMETER = 47, + TLS_ALERT_DESC_UNKNOWN_CA = 48, + TLS_ALERT_DESC_ACCESS_DENIED = 49, + TLS_ALERT_DESC_DECODE_ERROR = 50, + TLS_ALERT_DESC_DECRYPT_ERROR = 51, + TLS_ALERT_DESC_TOO_MANY_CIDS_REQUESTED = 52, + TLS_ALERT_DESC_PROTOCOL_VERSION = 70, + TLS_ALERT_DESC_INSUFFICIENT_SECURITY = 71, + TLS_ALERT_DESC_INTERNAL_ERROR = 80, + TLS_ALERT_DESC_INAPPROPRIATE_FALLBACK = 86, + TLS_ALERT_DESC_USER_CANCELED = 90, + TLS_ALERT_DESC_MISSING_EXTENSION = 109, + TLS_ALERT_DESC_UNSUPPORTED_EXTENSION = 110, + TLS_ALERT_DESC_UNRECOGNIZED_NAME = 112, + TLS_ALERT_DESC_BAD_CERTIFICATE_STATUS_RESPONSE = 113, + TLS_ALERT_DESC_UNKNOWN_PSK_IDENTITY = 115, + TLS_ALERT_DESC_CERTIFICATE_REQUIRED = 116, + TLS_ALERT_DESC_NO_APPLICATION_PROTOCOL = 120, +}; -struct rnd_state { - __u32 s1; - __u32 s2; - __u32 s3; - __u32 s4; +enum { + HANDSHAKE_A_ACCEPT_SOCKFD = 1, + HANDSHAKE_A_ACCEPT_HANDLER_CLASS = 2, + HANDSHAKE_A_ACCEPT_MESSAGE_TYPE = 3, + HANDSHAKE_A_ACCEPT_TIMEOUT = 4, + HANDSHAKE_A_ACCEPT_AUTH_MODE = 5, + HANDSHAKE_A_ACCEPT_PEER_IDENTITY = 6, + HANDSHAKE_A_ACCEPT_CERTIFICATE = 7, + HANDSHAKE_A_ACCEPT_PEERNAME = 8, + __HANDSHAKE_A_ACCEPT_MAX = 9, + HANDSHAKE_A_ACCEPT_MAX = 8, }; -struct bpf_prog_dummy { - struct bpf_prog prog; +enum { + HANDSHAKE_A_X509_CERT = 1, + HANDSHAKE_A_X509_PRIVKEY = 2, + __HANDSHAKE_A_X509_MAX = 3, + HANDSHAKE_A_X509_MAX = 2, }; -struct bpf_prog_pack { - struct list_head list; - void *ptr; - unsigned long bitmap[0]; +enum { + HANDSHAKE_A_DONE_STATUS = 1, + HANDSHAKE_A_DONE_SOCKFD = 2, + HANDSHAKE_A_DONE_REMOTE_AUTH = 3, + __HANDSHAKE_A_DONE_MAX = 4, + HANDSHAKE_A_DONE_MAX = 3, }; -typedef u64 (*btf_bpf_user_rnd_u32)(); +struct tls_handshake_req { + void (*th_consumer_done)(void *, int, key_serial_t); + void *th_consumer_data; + int th_type; + unsigned int th_timeout_ms; + int th_auth_mode; + const char *th_peername; + key_serial_t th_keyring; + key_serial_t th_certificate; + key_serial_t th_privkey; + unsigned int th_num_peerids; + key_serial_t th_peerid[5]; +}; -typedef u64 (*btf_bpf_get_raw_cpu_id)(); +enum KTHREAD_BITS { + KTHREAD_IS_PER_CPU = 0, + KTHREAD_SHOULD_STOP = 1, + KTHREAD_SHOULD_PARK = 2, +}; -struct trace_event_raw_xdp_exception { - struct trace_entry ent; - int prog_id; - u32 act; - int ifindex; - char __data[0]; +enum { + KTW_FREEZABLE = 1, }; -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 kthread_create_info { + char *full_name; + int (*threadfn)(void *); + void *data; + int node; + struct task_struct *result; + struct completion *done; + struct list_head list; }; -struct _bpf_dtab_netdev { - struct net_device *dev; +struct kthread_flush_work { + struct kthread_work work; + struct completion done; }; -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 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 trace_event_raw_xdp_cpumap_kthread { - struct trace_entry ent; - int map_id; - u32 act; +struct timer_list_iter { 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]; + bool second_pass; + u64 now; }; -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_mark { + unsigned long long val; + char sym; }; -struct trace_event_raw_xdp_devmap_xmit { +struct ctx_switch_entry { struct trace_entry ent; - int from_ifindex; - u32 act; - int to_ifindex; - int drops; - int sent; - int err; - char __data[0]; + 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 trace_event_raw_mem_disconnect { +struct userstack_entry { struct trace_entry ent; - const struct xdp_mem_allocator *xa; - u32 mem_id; - u32 mem_type; - const void *allocator; - char __data[0]; + unsigned int tgid; + unsigned long caller[8]; }; -struct trace_event_raw_mem_connect { +struct hwlat_entry { 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]; + u64 duration; + u64 outer_duration; + u64 nmi_total_ts; + struct timespec64 timestamp; + unsigned int nmi_count; + unsigned int seqnum; + unsigned int count; }; -struct trace_event_raw_mem_return_failed { +struct osnoise_entry { struct trace_entry ent; - const struct page *page; - u32 mem_id; - u32 mem_type; - char __data[0]; + 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 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 void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int); - -typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int); - -typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, unsigned long); - -typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, unsigned long); - -typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, unsigned long); - -typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long, unsigned long, unsigned long long, unsigned long, int); - -typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long, long, long); - -typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, unsigned long, unsigned long, unsigned long, unsigned long, 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; +struct timerlat_entry { + struct trace_entry ent; + unsigned int seqnum; + int context; + u64 timer_latency; }; -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); +typedef unsigned long perf_trace_t[1024]; -enum pgdat_flags { - PGDAT_DIRTY = 0, - PGDAT_WRITEBACK = 1, - PGDAT_RECLAIM_LOCKED = 2, +struct tcx_entry { + struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) *miniq; + struct bpf_mprog_bundle bundle; + bool miniq_active; + struct callback_head rcu; }; -enum folio_references { - FOLIOREF_RECLAIM = 0, - FOLIOREF_RECLAIM_CLEAN = 1, - FOLIOREF_KEEP = 2, - FOLIOREF_ACTIVATE = 3, +struct tcx_link { + struct bpf_link link; + struct net_device *dev; + u32 location; }; -enum lruvec_flags { - LRUVEC_CGROUP_CONGESTED = 0, - LRUVEC_NODE_CONGESTED = 1, +struct swap_cgroup_ctrl { + struct page **map; + unsigned long length; + spinlock_t lock; }; -enum scan_balance { - SCAN_EQUAL = 0, - SCAN_FRACT = 1, - SCAN_ANON = 2, - SCAN_FILE = 3, +struct swap_cgroup { + unsigned short id; }; -struct trace_event_raw_mm_vmscan_kswapd_sleep { - struct trace_entry ent; - int nid; - char __data[0]; +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 trace_event_raw_mm_vmscan_kswapd_wake { - struct trace_entry ent; - int nid; - int zid; - int order; - char __data[0]; +struct bh_lru { + struct buffer_head *bhs[16]; }; -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 bh_accounting { + int nr; + int ratelimit; }; -struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template { - struct trace_entry ent; - int order; - unsigned long gfp_flags; - char __data[0]; +struct postprocess_bh_ctx { + struct work_struct work; + struct buffer_head *bh; }; -struct trace_event_raw_mm_vmscan_direct_reclaim_end_template { - struct trace_entry ent; - unsigned long nr_reclaimed; - char __data[0]; +enum proc_param { + Opt_gid___6 = 0, + Opt_hidepid = 1, + Opt_subset = 2, }; -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 proc_fs_context { + struct pid_namespace *pid_ns; + unsigned int mask; + enum proc_hidepid hidepid; + int gid; + enum proc_pidonly pidonly; }; -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]; +enum SHIFT_DIRECTION { + SHIFT_LEFT = 0, + SHIFT_RIGHT = 1, }; -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 ext4_extent_tail { + __le32 et_checksum; }; -struct trace_event_raw_mm_vmscan_write_folio { - struct trace_entry ent; - unsigned long pfn; - int reclaim_flags; - char __data[0]; +struct ext2_dir_entry_2 { + __le32 inode; + __le16 rec_len; + __u8 name_len; + __u8 file_type; + char name[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 fat_floppy_defaults { + unsigned int nr_sectors; + unsigned int sec_per_clus; + unsigned int dir_entries; + unsigned int media; + unsigned int fat_length; }; -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]; +enum { + DIO_LOCKING = 1, + DIO_SKIP_HOLES = 2, }; -struct trace_event_raw_mm_vmscan_node_reclaim_begin { - struct trace_entry ent; - int nid; - int order; - unsigned long gfp_flags; - char __data[0]; +enum { + Opt_check_n = 0, + Opt_check_r = 1, + Opt_check_s = 2, + Opt_uid___6 = 3, + Opt_gid___7 = 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___3 = 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___2 = 36, + Opt_nfs = 37, + Opt_time_offset = 38, + Opt_nfs_stale_rw = 39, + Opt_nfs_nostale_ro = 40, + Opt_err___6 = 41, + Opt_dos1xfloppy = 42, }; -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 fat_boot_sector { + __u8 ignored[3]; + __u8 system_id[8]; + __u8 sector_size[2]; + __u8 sec_per_clus; + __le16 reserved; + __u8 fats; + __u8 dir_entries[2]; + __u8 sectors[2]; + __u8 media; + __le16 fat_length; + __le16 secs_track; + __le16 heads; + __le32 hidden; + __le32 total_sect; + union { + struct { + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat16; + struct { + __le32 length; + __le16 flags; + __u8 version[2]; + __le32 root_cluster; + __le16 info_sector; + __le16 backup_boot; + __le16 reserved2[6]; + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat32; + }; }; -struct 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; +struct fat_boot_fsinfo { + __le32 signature1; + __le32 reserved1[120]; + __le32 signature2; + __le32 free_clusters; + __le32 next_cluster; + __le32 reserved2[4]; }; -struct mem_cgroup_reclaim_cookie { - pg_data_t *pgdat; - unsigned int generation; +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 enum { - PAGE_KEEP = 0, - PAGE_ACTIVATE = 1, - PAGE_SUCCESS = 2, - PAGE_CLEAN = 3, -} pageout_t; - -struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {}; - -struct trace_event_data_offsets_mm_vmscan_kswapd_wake {}; - -struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {}; - -struct trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {}; - -struct trace_event_data_offsets_mm_vmscan_direct_reclaim_end_template {}; - -struct trace_event_data_offsets_mm_shrink_slab_start {}; - -struct trace_event_data_offsets_mm_shrink_slab_end {}; - -struct trace_event_data_offsets_mm_vmscan_lru_isolate {}; - -struct trace_event_data_offsets_mm_vmscan_write_folio {}; - -struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {}; +struct nfs_createdata { + struct nfs_createargs arg; + struct nfs_diropok res; + struct nfs_fh fhandle; + struct nfs_fattr fattr; +}; -struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {}; +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, +}; -struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {}; +enum { + NSMPROC_NULL = 0, + NSMPROC_STAT = 1, + NSMPROC_MON = 2, + NSMPROC_UNMON = 3, + NSMPROC_UNMON_ALL = 4, + NSMPROC_SIMU_CRASH = 5, + NSMPROC_NOTIFY = 6, +}; -struct trace_event_data_offsets_mm_vmscan_throttled {}; +struct nsm_args { + struct nsm_private *priv; + u32 prog; + u32 vers; + u32 proc; + char *mon_name; + const char *nodename; +}; -enum legacy_fs_param { - LEGACY_FS_UNSET_PARAMS = 0, - LEGACY_FS_MONOLITHIC_PARAMS = 1, - LEGACY_FS_INDIVIDUAL_PARAMS = 2, +struct nsm_res { + u32 status; + u32 state; }; -struct legacy_fs_context { - char *legacy_data; - size_t data_size; - enum legacy_fs_param param_type; +struct scatter_walk { + struct scatterlist *sg; + unsigned int offset; }; -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 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 shortname_info { - unsigned char lower: 1; - unsigned char upper: 1; - unsigned char valid: 1; +struct crypto_report_blkcipher { + char type[64]; + char geniv[64]; + unsigned int blocksize; + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; }; -enum { - NFS_OWNER_RECLAIM_REBOOT = 0, - NFS_OWNER_RECLAIM_NOGRACE = 1, +struct asymmetric_key_ids { + void *id[3]; }; -struct keyctl_dh_params { - union { - __s32 private; - __s32 priv; - }; - __s32 prime; - __s32 base; +enum asn1_class { + ASN1_UNIV = 0, + ASN1_APPL = 1, + ASN1_CONT = 2, + ASN1_PRIV = 3, }; -struct keyctl_kdf_params { - char __attribute__((btf_type_tag("user"))) *hashname; - char __attribute__((btf_type_tag("user"))) *otherinfo; - __u32 otherinfolen; - __u32 __spare[8]; +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 drbg_state; +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 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 { + DIO_SHOULD_DIRTY = 1, + DIO_IS_SYNC = 2, }; -enum drbg_seed_state { - DRBG_SEED_STATE_UNSEEDED = 0, - DRBG_SEED_STATE_PARTIAL = 1, - DRBG_SEED_STATE_FULL = 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 drbg_string { - const unsigned char *buf; - size_t len; - struct list_head list; +struct blk_ia_range_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_independent_access_range *, char *); }; -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; +struct io_xattr { + struct file *file; + struct xattr_ctx ctx; + struct filename *filename; }; -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]; +struct io_rw { + struct kiocb kiocb; + u64 addr; + u32 len; + rwf_t flags; }; -enum drbg_prefixes { - DRBG_PREFIX0 = 0, - DRBG_PREFIX1 = 1, - DRBG_PREFIX2 = 2, - DRBG_PREFIX3 = 3, +struct io_rw_state { + struct iov_iter iter; + struct iov_iter_state iter_state; + struct iovec fast_iov[8]; }; -struct sdesc { - struct shash_desc shash; - char ctx[0]; +struct io_async_rw { + struct io_rw_state s; + const struct iovec *free_iovec; + size_t bytes_done; + struct wait_page_queue wpq; }; -struct uuidcmp { - const char *uuid; - int len; +struct wait_page_key { + struct folio *folio; + int bit_nr; + int page_match; }; -struct io_epoll { - struct file *file; - int epfd; - int op; - int fd; - struct epoll_event event; +struct mvebu_pic { + void *base; + u32 parent_irq; + struct irq_domain *domain; + struct platform_device *pdev; }; -struct sunxi_sc_nmi_reg_offs { - u32 ctrl; - u32 pend; - u32 enable; +struct uniphier_aidet_priv { + struct irq_domain *domain; + void *reg_base; + spinlock_t lock; + u32 saved_vals[8]; }; -enum { - SUNXI_SRC_TYPE_LEVEL_LOW = 0, - SUNXI_SRC_TYPE_EDGE_FALLING = 1, - SUNXI_SRC_TYPE_LEVEL_HIGH = 2, - SUNXI_SRC_TYPE_EDGE_RISING = 3, +struct hisi_lpc_dev { + spinlock_t cycle_lock; + void *membase; + struct logic_pio_hwaddr *io_host; }; -struct meson_gpio_irq_controller; - -struct irq_ctl_ops { - void (*gpio_irq_sel_pin)(struct meson_gpio_irq_controller *, unsigned int, unsigned long); - void (*gpio_irq_init)(struct meson_gpio_irq_controller *); - int (*gpio_irq_set_type)(struct meson_gpio_irq_controller *, unsigned int, u32 *); +struct lpc_cycle_para { + unsigned int opflags; + unsigned int csize; }; -struct meson_gpio_irq_params { - unsigned int nr_hwirq; - unsigned int nr_channels; - bool support_edge_both; - unsigned int edge_both_offset; - unsigned int edge_single_offset; - unsigned int pol_low_offset; - unsigned int pin_sel_mask; - struct irq_ctl_ops ops; +struct hisi_lpc_acpi_cell { + const char *hid; + const struct platform_device_info *pdevinfo; }; -struct meson_gpio_irq_controller { - const struct meson_gpio_irq_params *params; - void *base; - u32 channel_irqs[64]; - unsigned long channel_map[1]; - spinlock_t lock; +struct histb_combphy_mode { + int fixed; + int select; + u32 reg; + u32 shift; + u32 mask; }; -struct phy_g12a_mipi_dphy_analog_priv { +struct histb_combphy_priv { + void *mmio; + struct regmap *syscon; + struct reset_control *por_rst; + struct clk *ref_clk; struct phy *phy; - struct regmap *regmap; - struct phy_configure_opts_mipi_dphy config; + struct histb_combphy_mode mode; }; -struct uniphier_u3hsphy_param { +struct uniphier_u3ssphy_param { struct { int reg_no; int msb; @@ -141556,213 +140474,267 @@ struct uniphier_u3hsphy_param { u8 value; }; -struct uniphier_u3hsphy_priv; - -struct uniphier_u3hsphy_trim_param; - -struct uniphier_u3hsphy_soc_data { +struct uniphier_u3ssphy_soc_data { bool is_legacy; int nparams; - const struct uniphier_u3hsphy_param param[4]; - u32 config0; - u32 config1; - void (*trim_func)(struct uniphier_u3hsphy_priv *, u32 *, struct uniphier_u3hsphy_trim_param *); + const struct uniphier_u3ssphy_param param[7]; }; -struct uniphier_u3hsphy_priv { +struct uniphier_u3ssphy_priv { struct device *dev; void *base; struct clk *clk; - struct clk *clk_parent; struct clk *clk_ext; + struct clk *clk_parent; struct clk *clk_parent_gio; struct reset_control *rst; struct reset_control *rst_parent; struct reset_control *rst_parent_gio; struct regulator *vbus; - const struct uniphier_u3hsphy_soc_data *data; + const struct uniphier_u3ssphy_soc_data *data; }; -struct uniphier_u3hsphy_trim_param { - unsigned int rterm; - unsigned int sel_t; - unsigned int hs_i; +struct rtd_pin_group_desc; + +struct rtd_pin_func_desc; + +struct rtd_pin_desc; + +struct rtd_pin_config_desc; + +struct rtd_pin_sconfig_desc; + +struct rtd_pin_reg_list; + +struct rtd_pinctrl_desc { + const struct pinctrl_pin_desc *pins; + unsigned int num_pins; + const struct rtd_pin_group_desc *groups; + unsigned int num_groups; + const struct rtd_pin_func_desc *functions; + unsigned int num_functions; + const struct rtd_pin_desc *muxes; + unsigned int num_muxes; + const struct rtd_pin_config_desc *configs; + unsigned int num_configs; + const struct rtd_pin_sconfig_desc *sconfigs; + unsigned int num_sconfigs; + struct rtd_pin_reg_list *lists; + unsigned int num_regs; }; -enum { - V_ARMADA_7K = 1, - V_ARMADA_8K_CPM = 2, - V_ARMADA_8K_CPS = 4, - V_CP115_STANDALONE = 8, - V_ARMADA_7K_8K_CPM = 3, - V_ARMADA_7K_8K_CPS = 5, +struct rtd_pin_group_desc { + const char *name; + const unsigned int *pins; + unsigned int num_pins; }; -struct tile_info { - u32 offset; - u32 size; +struct rtd_pin_func_desc { + const char *name; + const char * const *groups; + unsigned int num_groups; }; -struct xgene_gpio_sb { - struct gpio_chip gc; - void *regs; - struct irq_domain *irq_domain; - u16 irq_start; - u16 nirq; - u16 parent_irq_base; +struct rtd_pin_mux_desc; + +struct rtd_pin_desc { + const char *name; + unsigned int mux_offset; + u32 mux_mask; + const struct rtd_pin_mux_desc *functions; }; -struct pcie_pme_service_data { - spinlock_t lock; - struct pcie_device *srv; - struct work_struct work; - bool noirq; +struct rtd_pin_mux_desc { + const char *name; + u32 mux_value; }; -struct rcar_pcie_endpoint { - struct rcar_pcie pcie; - phys_addr_t *ob_mapped_addr; - struct pci_epc_mem_window *ob_window; - u8 max_functions; - unsigned int bar_to_atu[6]; - unsigned long *ib_window_map; - u32 num_ib_windows; - u32 num_ob_windows; +struct rtd_pin_config_desc { + const char *name; + unsigned int reg_offset; + unsigned int base_bit; + unsigned int pud_en_offset; + unsigned int pud_sel_offset; + unsigned int curr_offset; + unsigned int smt_offset; + unsigned int power_offset; + unsigned int curr_type; }; -struct broken_edid { - u8 manufacturer[4]; - u32 model; - u32 fix; +struct rtd_pin_sconfig_desc { + const char *name; + unsigned int reg_offset; + unsigned int dcycle_offset; + unsigned int dcycle_maskbits; + unsigned int ndrive_offset; + unsigned int ndrive_maskbits; + unsigned int pdrive_offset; + unsigned int pdrive_maskbits; }; -struct __fb_timings { - u32 dclk; - u32 hfreq; - u32 vfreq; - u32 hactive; - u32 vactive; - u32 hblank; - u32 vblank; - u32 htotal; - u32 vtotal; +struct rtd_pin_reg_list { + unsigned int reg_offset; + unsigned int val; }; -struct pci_osc_bit_struct { - u32 bit; - char *desc; +struct pwm_export { + struct device child; + struct pwm_device *pwm; + struct mutex lock; + struct pwm_state suspend; }; -enum acpi_bridge_type { - ACPI_BRIDGE_TYPE_PCIE = 1, - ACPI_BRIDGE_TYPE_CXL = 2, +struct portdrv_service_data { + struct pcie_port_service_driver *drv; + struct device *dev; + u32 service; }; -struct acpi_vendor_walk_info { - struct acpi_vendor_uuid *uuid; - struct acpi_buffer *buffer; - acpi_status status; +typedef int (*pcie_callback_t)(struct pcie_device *); + +struct aperture_range { + struct device *dev; + resource_size_t base; + resource_size_t size; + struct list_head lh; + void (*detach)(struct device *); }; -struct apei_res { - struct list_head list; - unsigned long start; - unsigned long end; +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 int (*apei_exec_entry_func_t)(struct apei_exec_context *, struct acpi_whea_header *, void *); +struct acpi_rw_lock { + void *writer_mutex; + void *reader_mutex; + u32 num_readers; +}; -struct clk_gpio { +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 hi655x_clk { + struct hi655x_pmic *hi655x; + struct clk_hw clk_hw; +}; + +struct clk_pllv2 { struct clk_hw hw; - struct gpio_desc *gpiod; + void *base; }; -struct iproc_pll_aon_pwr_ctrl { +struct clk_regmap_gate_data { unsigned int offset; - unsigned int pwr_width; - unsigned int pwr_shift; - unsigned int iso_shift; + u8 bit_idx; + u8 flags; }; -struct iproc_pll_reset_ctrl { +struct clk_regmap_div_data { unsigned int offset; - unsigned int reset_shift; - unsigned int p_reset_shift; + u8 shift; + u8 width; + u8 flags; + const struct clk_div_table *table; }; -struct iproc_pll_dig_filter_ctrl { +struct clk_regmap_mux_data { unsigned int offset; - unsigned int ki_shift; - unsigned int ki_width; - unsigned int kp_shift; - unsigned int kp_width; - unsigned int ka_shift; - unsigned int ka_width; + u32 *table; + u32 mask; + u8 shift; + u8 flags; }; -struct iproc_pll_sw_ctrl { - unsigned int offset; - unsigned int shift; +struct frac_entry { + int num; + int den; }; -struct iproc_clk_reg_op { - unsigned int offset; - unsigned int shift; - unsigned int width; +struct mn { + u8 mnctr_en_bit; + u8 mnctr_reset_bit; + u8 mnctr_mode_shift; + u8 n_val_shift; + u8 m_val_shift; + u8 width; + bool reset_in_cc; }; -struct iproc_pll_vco_ctrl { - unsigned int u_offset; - unsigned int l_offset; +struct pre_div { + u8 pre_div_shift; + u8 pre_div_width; }; -struct iproc_pll_ctrl { - unsigned long flags; - struct iproc_pll_aon_pwr_ctrl aon; - struct iproc_asiu_gate asiu; - struct iproc_pll_reset_ctrl reset; - struct iproc_pll_dig_filter_ctrl dig_filter; - struct iproc_pll_sw_ctrl sw_ctrl; - struct iproc_clk_reg_op ndiv_int; - struct iproc_clk_reg_op ndiv_frac; - struct iproc_clk_reg_op pdiv; - struct iproc_pll_vco_ctrl vco_ctrl; - struct iproc_clk_reg_op status; - struct iproc_clk_reg_op macro_mode; +struct src_sel { + u8 src_sel_shift; + const struct parent_map *parent_map; }; -struct iproc_clk_enable_ctrl { - unsigned int offset; - unsigned int enable_shift; - unsigned int hold_shift; - unsigned int bypass_shift; +struct clk_rcg { + u32 ns_reg; + u32 md_reg; + struct mn mn; + struct pre_div p; + struct src_sel s; + const struct freq_tbl *freq_tbl; + struct clk_regmap clkr; }; -struct iproc_clk_ctrl { - unsigned int channel; - unsigned long flags; - struct iproc_clk_enable_ctrl enable; - struct iproc_clk_reg_op mdiv; +struct clk_dyn_rcg { + u32 ns_reg[2]; + u32 md_reg[2]; + u32 bank_reg; + u8 mux_sel_bit; + struct mn mn[2]; + struct pre_div p[2]; + struct src_sel s[2]; + const struct freq_tbl *freq_tbl; + struct clk_regmap clkr; }; -struct iproc_pll_vco_param { - unsigned long rate; - unsigned int ndiv_int; - unsigned int ndiv_frac; - unsigned int pdiv; +struct rockchip_clk_frac { + struct notifier_block clk_nb; + struct clk_fractional_divider div; + struct clk_gate gate; + struct clk_mux mux; + const struct clk_ops *mux_ops; + int mux_frac_idx; + bool rate_change_remuxed; + int rate_change_idx; }; -struct ti_syscon_gate_clk_data { - char *name; - u32 offset; - u32 bit_idx; +struct samsung_clock_reg_cache { + struct list_head node; + void *reg_base; + struct samsung_clk_reg_dump *rdump; + unsigned int rd_num; + const struct samsung_clk_reg_dump *rsuspend; + unsigned int rsuspend_num; }; -struct ti_syscon_gate_clk_priv { - struct clk_hw hw; - struct regmap *regmap; - u32 reg; - u32 idx; +struct samsung_clock_alias { + unsigned int id; + const char *dev_name; + const char *alias; }; struct tegra210_clk_emc_provider; @@ -141792,1493 +140764,2024 @@ struct tegra210_clk_emc_config { u8 parent; }; -struct log_header { - __le32 magic_word; - char reserved[4]; - __le32 buf_start; - __le32 buf_length; - __le32 last_byte; -}; - -struct console_data { - void *map_addr; - struct log_header *hdr; - void *start_addr; - void *end_addr; - void *end_of_data; - void *cur_ptr; +struct dma_chan_tbl_ent { + struct dma_chan *chan; }; -struct registered_event_data { - u64 key; - enum pm_api_cb_id cb_type; - bool wake; - struct list_head cb_list_head; - struct hlist_node hentry; +struct dmaengine_unmap_pool { + struct kmem_cache *cache; + const char *name; + mempool_t *pool; + size_t size; }; -struct agent_cb { - void *agent_data; - event_cb_func_t eve_cb; - struct list_head list; -}; +struct apple_sart; -struct mt6359_regulator_info { - struct regulator_desc desc; - u32 status_reg; - u32 qi; - u32 modeset_reg; - u32 modeset_mask; - u32 lp_mode_reg; - u32 lp_mode_mask; +struct apple_sart_ops { + void (*get_entry)(struct apple_sart *, int, u8 *, phys_addr_t *, size_t *); + void (*set_entry)(struct apple_sart *, int, u8, phys_addr_t, size_t); + unsigned int size_shift; + unsigned int paddr_shift; + size_t size_max; }; -enum { - MT6359_ID_VS1 = 0, - MT6359_ID_VGPU11 = 1, - MT6359_ID_VMODEM = 2, - MT6359_ID_VPU = 3, - MT6359_ID_VCORE = 4, - MT6359_ID_VS2 = 5, - MT6359_ID_VPA = 6, - MT6359_ID_VPROC2 = 7, - MT6359_ID_VPROC1 = 8, - MT6359_ID_VCORE_SSHUB = 9, - MT6359_ID_VGPU11_SSHUB = 9, - MT6359_ID_VAUD18 = 10, - MT6359_ID_VSIM1 = 11, - MT6359_ID_VIBR = 12, - MT6359_ID_VRF12 = 13, - MT6359_ID_VUSB = 14, - MT6359_ID_VSRAM_PROC2 = 15, - MT6359_ID_VIO18 = 16, - MT6359_ID_VCAMIO = 17, - MT6359_ID_VCN18 = 18, - MT6359_ID_VFE28 = 19, - MT6359_ID_VCN13 = 20, - MT6359_ID_VCN33_1_BT = 21, - MT6359_ID_VCN33_1_WIFI = 22, - MT6359_ID_VAUX18 = 23, - MT6359_ID_VSRAM_OTHERS = 24, - MT6359_ID_VEFUSE = 25, - MT6359_ID_VXO22 = 26, - MT6359_ID_VRFCK = 27, - MT6359_ID_VBIF28 = 28, - MT6359_ID_VIO28 = 29, - MT6359_ID_VEMC = 30, - MT6359_ID_VCN33_2_BT = 31, - MT6359_ID_VCN33_2_WIFI = 32, - MT6359_ID_VA12 = 33, - MT6359_ID_VA09 = 34, - MT6359_ID_VRF18 = 35, - MT6359_ID_VSRAM_MD = 36, - MT6359_ID_VUFS = 37, - MT6359_ID_VM18 = 38, - MT6359_ID_VBBCK = 39, - MT6359_ID_VSRAM_PROC1 = 40, - MT6359_ID_VSIM2 = 41, - MT6359_ID_VSRAM_OTHERS_SSHUB = 42, - MT6359_ID_RG_MAX = 43, +struct apple_sart { + struct device *dev; + void *regs; + const struct apple_sart_ops *ops; + unsigned long protected_entries; + unsigned long used_entries; }; -enum { - ERASE = 0, - WERASE = 1, - KILL = 2, -}; +struct qmp_cooling_device; -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 qmp { + void *msgram; + struct device *dev; + struct mbox_client mbox_client; + struct mbox_chan *mbox_chan; + size_t offset; + size_t size; + wait_queue_head_t event; + struct mutex tx_lock; + struct clk_hw qdss_clk; + struct qmp_cooling_device *cooling_devs; }; -struct omap8250_dma_params; - -struct omap8250_platdata { - struct omap8250_dma_params *dma_params; - u8 habit; +struct qmp_cooling_device { + struct thermal_cooling_device *cdev; + struct qmp *qmp; + char *name; + bool state; }; -struct omap8250_dma_params { - u32 rx_size; - u8 rx_trigger; - u8 tx_trigger; +enum tegra_suspend_mode { + TEGRA_SUSPEND_NONE = 0, + TEGRA_SUSPEND_LP2 = 1, + TEGRA_SUSPEND_LP1 = 2, + TEGRA_SUSPEND_LP0 = 3, + TEGRA_MAX_SUSPEND_MODE = 4, + TEGRA_SUSPEND_NOT_READY = 5, }; -struct omap8250_priv { - void *membase; - int line; - u8 habit; - u8 mdr1; - u8 mdr3; - u8 efr; - u8 scr; - u8 wer; - u8 xon; - u8 xoff; - u8 delayed_restore; - u16 quot; - u8 tx_trigger; - u8 rx_trigger; - bool is_suspending; - int wakeirq; - int wakeups_enabled; - u32 latency; - u32 calc_latency; - struct pm_qos_request pm_qos_request; - struct work_struct qos_work; - struct uart_8250_dma omap8250_dma; - spinlock_t rx_dma_lock; - bool rx_dma_broken; - bool throttled; -}; +struct tegra_pmc_soc; -struct mtk_rng { +struct tegra_pmc { + struct device *dev; void *base; + void *wake; + void *aotag; + void *scratch; struct clk *clk; - struct hwrng rng; + const struct tegra_pmc_soc *soc; + bool tz_only; + unsigned long rate; + enum tegra_suspend_mode suspend_mode; + u32 cpu_good_time; + u32 cpu_off_time; + u32 core_osc_time; + u32 core_pmu_time; + u32 core_off_time; + bool corereq_high; + bool sysclkreq_high; + bool combined_req; + bool cpu_pwr_good_en; + u32 lp0_vec_phys; + u32 lp0_vec_size; + unsigned long powergates_available[1]; + struct mutex powergates_lock; + struct pinctrl_dev *pctl_dev; + struct irq_domain *domain; + struct irq_chip irq; + struct notifier_block clk_nb; + bool core_domain_state_synced; + bool core_domain_registered; + unsigned long *wake_type_level_map; + unsigned long *wake_type_dual_edge_map; + unsigned long *wake_sw_status_map; + unsigned long *wake_cntrl_level_map; + struct syscore_ops syscore; }; -enum iommu_dma_cookie_type { - IOMMU_DMA_IOVA_COOKIE = 0, - IOMMU_DMA_MSI_COOKIE = 1, -}; +struct tegra_io_pad_soc; -struct iova_fq; +struct tegra_pmc_regs; -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 tegra_wake_event; -struct iova_fq_entry { - unsigned long iova_pfn; - unsigned long pages; - struct list_head freelist; - u64 counter; -}; +struct pmc_clk_init_data; -struct iova_fq { - struct iova_fq_entry entries[256]; - unsigned int head; - unsigned int tail; - spinlock_t lock; +struct tegra_pmc_soc { + unsigned int num_powergates; + const char * const *powergates; + unsigned int num_cpu_powergates; + const u8 *cpu_powergates; + bool has_tsense_reset; + bool has_gpu_clamps; + bool needs_mbist_war; + bool has_impl_33v_pwr; + bool maybe_tz_only; + const struct tegra_io_pad_soc *io_pads; + unsigned int num_io_pads; + const struct pinctrl_pin_desc *pin_descs; + unsigned int num_pin_descs; + const struct tegra_pmc_regs *regs; + void (*init)(struct tegra_pmc *); + void (*setup_irq_polarity)(struct tegra_pmc *, struct device_node *, bool); + void (*set_wake_filters)(struct tegra_pmc *); + int (*irq_set_wake)(struct irq_data *, unsigned int); + int (*irq_set_type)(struct irq_data *, unsigned int); + int (*powergate_set)(struct tegra_pmc *, unsigned int, bool); + const char * const *reset_sources; + unsigned int num_reset_sources; + const char * const *reset_levels; + unsigned int num_reset_levels; + const struct tegra_wake_event *wake_events; + unsigned int num_wake_events; + unsigned int max_wake_events; + unsigned int max_wake_vectors; + const struct pmc_clk_init_data *pmc_clks_data; + unsigned int num_pmc_clks; + bool has_blink_output; + bool has_usb_sleepwalk; + bool supports_core_domain; }; -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, +enum tegra_io_pad { + TEGRA_IO_PAD_AUDIO = 0, + TEGRA_IO_PAD_AUDIO_HV = 1, + TEGRA_IO_PAD_BB = 2, + TEGRA_IO_PAD_CAM = 3, + TEGRA_IO_PAD_COMP = 4, + TEGRA_IO_PAD_CONN = 5, + TEGRA_IO_PAD_CSIA = 6, + TEGRA_IO_PAD_CSIB = 7, + TEGRA_IO_PAD_CSIC = 8, + TEGRA_IO_PAD_CSID = 9, + TEGRA_IO_PAD_CSIE = 10, + TEGRA_IO_PAD_CSIF = 11, + TEGRA_IO_PAD_CSIG = 12, + TEGRA_IO_PAD_CSIH = 13, + TEGRA_IO_PAD_DAP3 = 14, + TEGRA_IO_PAD_DAP5 = 15, + TEGRA_IO_PAD_DBG = 16, + TEGRA_IO_PAD_DEBUG_NONAO = 17, + TEGRA_IO_PAD_DMIC = 18, + TEGRA_IO_PAD_DMIC_HV = 19, + TEGRA_IO_PAD_DP = 20, + TEGRA_IO_PAD_DSI = 21, + TEGRA_IO_PAD_DSIB = 22, + TEGRA_IO_PAD_DSIC = 23, + TEGRA_IO_PAD_DSID = 24, + TEGRA_IO_PAD_EDP = 25, + TEGRA_IO_PAD_EMMC = 26, + TEGRA_IO_PAD_EMMC2 = 27, + TEGRA_IO_PAD_EQOS = 28, + TEGRA_IO_PAD_GPIO = 29, + TEGRA_IO_PAD_GP_PWM2 = 30, + TEGRA_IO_PAD_GP_PWM3 = 31, + TEGRA_IO_PAD_HDMI = 32, + TEGRA_IO_PAD_HDMI_DP0 = 33, + TEGRA_IO_PAD_HDMI_DP1 = 34, + TEGRA_IO_PAD_HDMI_DP2 = 35, + TEGRA_IO_PAD_HDMI_DP3 = 36, + TEGRA_IO_PAD_HSIC = 37, + TEGRA_IO_PAD_HV = 38, + TEGRA_IO_PAD_LVDS = 39, + TEGRA_IO_PAD_MIPI_BIAS = 40, + TEGRA_IO_PAD_NAND = 41, + TEGRA_IO_PAD_PEX_BIAS = 42, + TEGRA_IO_PAD_PEX_CLK_BIAS = 43, + TEGRA_IO_PAD_PEX_CLK1 = 44, + TEGRA_IO_PAD_PEX_CLK2 = 45, + TEGRA_IO_PAD_PEX_CLK3 = 46, + TEGRA_IO_PAD_PEX_CLK_2_BIAS = 47, + TEGRA_IO_PAD_PEX_CLK_2 = 48, + TEGRA_IO_PAD_PEX_CNTRL = 49, + TEGRA_IO_PAD_PEX_CTL2 = 50, + TEGRA_IO_PAD_PEX_L0_RST = 51, + TEGRA_IO_PAD_PEX_L1_RST = 52, + TEGRA_IO_PAD_PEX_L5_RST = 53, + TEGRA_IO_PAD_PWR_CTL = 54, + TEGRA_IO_PAD_SDMMC1 = 55, + TEGRA_IO_PAD_SDMMC1_HV = 56, + TEGRA_IO_PAD_SDMMC2 = 57, + TEGRA_IO_PAD_SDMMC2_HV = 58, + TEGRA_IO_PAD_SDMMC3 = 59, + TEGRA_IO_PAD_SDMMC3_HV = 60, + TEGRA_IO_PAD_SDMMC4 = 61, + TEGRA_IO_PAD_SOC_GPIO10 = 62, + TEGRA_IO_PAD_SOC_GPIO12 = 63, + TEGRA_IO_PAD_SOC_GPIO13 = 64, + TEGRA_IO_PAD_SOC_GPIO53 = 65, + TEGRA_IO_PAD_SPI = 66, + TEGRA_IO_PAD_SPI_HV = 67, + TEGRA_IO_PAD_SYS_DDC = 68, + TEGRA_IO_PAD_UART = 69, + TEGRA_IO_PAD_UART4 = 70, + TEGRA_IO_PAD_UART5 = 71, + TEGRA_IO_PAD_UFS = 72, + TEGRA_IO_PAD_USB0 = 73, + TEGRA_IO_PAD_USB1 = 74, + TEGRA_IO_PAD_USB2 = 75, + TEGRA_IO_PAD_USB3 = 76, + TEGRA_IO_PAD_USB_BIAS = 77, + TEGRA_IO_PAD_AO_HV = 78, }; -struct iommu_dma_msi_page { - struct list_head list; - dma_addr_t iova; - phys_addr_t phys; +struct tegra_io_pad_soc { + enum tegra_io_pad id; + unsigned int dpd; + unsigned int request; + unsigned int status; + unsigned int voltage; + const char *name; }; -struct pci_p2pdma_map_state { - struct dev_pagemap *pgmap; - int map; - u64 bus_off; +struct tegra_pmc_regs { + unsigned int scratch0; + unsigned int rst_status; + unsigned int rst_source_shift; + unsigned int rst_source_mask; + unsigned int rst_level_shift; + unsigned int rst_level_mask; }; -struct gpd_link { - struct generic_pm_domain *parent; - struct list_head parent_node; - struct generic_pm_domain *child; - struct list_head child_node; - unsigned int performance_state; - unsigned int prev_performance_state; +struct tegra_wake_event { + const char *name; + unsigned int id; + unsigned int irq; + struct { + unsigned int instance; + unsigned int pin; + } gpio; }; -struct of_genpd_provider { - struct list_head link; - struct device_node *node; - genpd_xlate_t xlate; - void *data; +struct pmc_clk_init_data { + char *name; + const char * const *parents; + int num_parents; + int clk_id; + u8 mux_shift; + u8 force_en_shift; }; -struct gpd_timing_data; - -struct generic_pm_domain_data { - struct pm_domain_data base; - struct gpd_timing_data *td; - struct notifier_block nb; - struct notifier_block *power_nb; - int cpu; - unsigned int performance_state; - unsigned int default_pstate; - unsigned int rpm_pstate; - void *data; +struct tegra_powergate___2 { + struct generic_pm_domain genpd; + struct tegra_pmc *pmc; + unsigned int id; + struct clk **clks; + unsigned int num_clks; + unsigned long *clk_rates; + struct reset_control *reset; }; -struct gpd_timing_data { - s64 suspend_latency_ns; - s64 resume_latency_ns; - s64 effective_constraint_ns; - ktime_t next_wakeup; - bool constraint_changed; - bool cached_suspend_ok; +struct pmc_clk { + struct clk_hw hw; + unsigned long offs; + u32 mux_shift; + u32 force_en_shift; }; -struct dma_buf_list { - struct list_head head; - struct mutex lock; +struct pmc_clk_gate { + struct clk_hw hw; + unsigned long offs; + u32 shift; }; -enum dma_resv_usage { - DMA_RESV_USAGE_KERNEL = 0, - DMA_RESV_USAGE_WRITE = 1, - DMA_RESV_USAGE_READ = 2, - DMA_RESV_USAGE_BOOKKEEP = 3, +struct rcar_gen4_sysc_pd { + struct generic_pm_domain genpd; + u8 pdr; + unsigned int flags; + char name[0]; }; -struct dma_resv_list; - -struct dma_resv { - struct ww_mutex lock; - struct dma_resv_list __attribute__((btf_type_tag("rcu"))) *fences; +struct rcar_gen4_pm_domains { + struct genpd_onecell_data onecell_data; + struct generic_pm_domain *domains[65]; }; -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 xen_memory_reservation { + __guest_handle_xen_pfn_t extent_start; + xen_ulong_t nr_extents; + unsigned int extent_order; + unsigned int address_bits; + domid_t domid; }; -struct dma_buf; - -struct dma_buf_attach_ops; - -struct dma_buf_attachment { - struct dma_buf *dmabuf; - struct device *dev; - struct list_head node; - struct sg_table *sgt; - enum dma_data_direction dir; - bool peer2peer; - const struct dma_buf_attach_ops *importer_ops; - void *importer_priv; - void *priv; +struct old_serial_port { + unsigned int uart; + unsigned int baud_base; + unsigned int port; + unsigned int irq; + upf_t flags; + unsigned char io_type; + unsigned char *iomem_base; + unsigned short iomem_reg_shift; }; -struct dma_buf_poll_cb_t { - struct dma_fence_cb cb; - wait_queue_head_t *poll; - __poll_t active; +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 dma_buf_ops; +struct irq_info___2 { + struct hlist_node node; + int irq; + spinlock_t lock; + struct list_head *head; +}; -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 plat_serial8250_port { + unsigned long iobase; + void *membase; + resource_size_t mapbase; + resource_size_t mapsize; + unsigned int uartclk; + unsigned int irq; + unsigned long irqflags; + void *private_data; + unsigned char regshift; + unsigned char iotype; + unsigned char hub6; + unsigned char has_sysrq; + unsigned int type; + upf_t flags; + u16 bugs; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); }; -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 timer_rand_state { + unsigned long last_time; + long last_delta; + long last_delta2; }; -struct dma_buf_attach_ops { - bool allow_peer2peer; - void (*move_notify)(struct dma_buf_attachment *); +enum { + CRNG_EMPTY = 0, + CRNG_EARLY = 1, + CRNG_READY = 2, }; -struct dma_buf_import_sync_file { - __u32 flags; - __s32 fd; +struct batch_u8 { + u8 entropy[96]; + local_lock_t lock; + unsigned long generation; + unsigned int position; }; -struct dma_buf_export_sync_file { - __u32 flags; - __s32 fd; +struct batch_u16 { + u16 entropy[48]; + local_lock_t lock; + unsigned long generation; + unsigned int position; }; -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 batch_u32 { + u32 entropy[24]; + local_lock_t lock; + unsigned long generation; + unsigned int position; }; -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 batch_u64 { + u64 entropy[12]; + local_lock_t lock; + unsigned long generation; + unsigned int position; }; -struct dma_buf_sync { - __u64 flags; +struct crng { + u8 key[32]; + unsigned long generation; + local_lock_t lock; }; -struct megasas_debug_buffer; - -struct megasas_debugfs_buffer { - void *buf; - u32 len; +struct fast_pool { + unsigned long pool[4]; + unsigned long last; + unsigned int count; + struct timer_list mix; }; enum { - MTD_OPS_PLACE_OOB = 0, - MTD_OPS_AUTO_OOB = 1, - MTD_OPS_RAW = 2, + MIX_INFLIGHT = 2147483648, }; -struct mdio_mux_multiplexer_state { - struct mux_control *muxc; - bool do_deselect; - void *mux_handle; +enum blake2s_iv { + BLAKE2S_IV0 = 1779033703, + BLAKE2S_IV1 = 3144134277, + BLAKE2S_IV2 = 1013904242, + BLAKE2S_IV3 = 2773480762, + BLAKE2S_IV4 = 1359893119, + BLAKE2S_IV5 = 2600822924, + BLAKE2S_IV6 = 528734635, + BLAKE2S_IV7 = 1541459225, }; -struct bcm4908_enet_dma_ring_bd; - -struct bcm4908_enet_dma_ring_slot; - -struct bcm4908_enet_dma_ring { - int is_tx; - int read_idx; - int write_idx; - int length; - u16 cfg_block; - u16 st_ram_block; - struct napi_struct napi; - union { - void *cpu_addr; - struct bcm4908_enet_dma_ring_bd *buf_desc; - }; - dma_addr_t dma_addr; - struct bcm4908_enet_dma_ring_slot *slots; +enum chacha_constants { + CHACHA_CONSTANT_EXPA = 1634760805, + CHACHA_CONSTANT_ND_3 = 857760878, + CHACHA_CONSTANT_2_BY = 2036477234, + CHACHA_CONSTANT_TE_K = 1797285236, }; -struct bcm4908_enet_dma_ring_bd { - __le32 ctl; - __le32 addr; +enum { + POOL_BITS = 256, + POOL_READY_BITS = 256, + POOL_EARLY_BITS = 128, }; -struct bcm4908_enet_dma_ring_slot { - union { - void *buf; - struct sk_buff *skb; - }; - unsigned int len; - dma_addr_t dma_addr; +enum { + CRNG_RESEED_START_INTERVAL = 250, + CRNG_RESEED_INTERVAL = 15000, }; -struct bcm4908_enet { - struct device *dev; - struct net_device *netdev; - void *base; - int irq_tx; - struct bcm4908_enet_dma_ring tx_ring; - struct bcm4908_enet_dma_ring rx_ring; +enum { + NUM_TRIAL_SAMPLES = 8192, + MAX_SAMPLES_PER_BIT = 16, }; -struct dpni_mask_cfg { - u8 mask; - u8 offset; +struct entropy_timer_state { + unsigned long entropy; + struct timer_list timer; + atomic_t samples; + unsigned int samples_per_bit; }; -struct dpni_dist_extract { - u8 prot; - u8 efh_type; - u8 size; - u8 offset; - __le32 field; - u8 hdr_index; - u8 constant; - u8 num_of_repeats; - u8 num_of_byte_masks; - u8 extract_type; - u8 pad[3]; - struct dpni_mask_cfg masks[4]; +struct cpu_attr { + struct device_attribute attr; + const struct cpumask * const map; }; -struct dpni_ext_set_rx_tc_dist { - u8 num_extracts; - u8 pad[7]; - struct dpni_dist_extract extracts[10]; +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; + u64 last_hw_sleep; + u64 total_hw_sleep; + u64 max_hw_sleep; + enum suspend_stat_step failed_steps[2]; }; -struct dpni_cmd_open { - __le32 dpni_id; -}; +typedef int (*pm_callback_t)(struct device *); -struct dpni_cmd_pool { - __le16 dpbp_id; - u8 priority_mask; - u8 pad; +struct rk8xx_i2c_platform_data { + const struct regmap_config *regmap_cfg; + int variant; }; -struct dpni_cmd_set_pools { - u8 num_dpbp; - u8 backup_pool_mask; - u8 pad; - u8 pool_options; - struct dpni_cmd_pool pool[8]; - __le16 buffer_size[8]; +struct scsi_varlen_cdb_hdr { + __u8 opcode; + __u8 control; + __u8 misc[5]; + __u8 additional_cdb_length; + __be16 service_action; }; -struct dpni_rsp_is_enabled { - u8 enabled; +struct ata_eh_cmd_timeout_ent { + const u8 *commands; + const unsigned int *timeouts; }; -struct dpni_cmd_set_irq_enable { - u8 enable; - u8 pad[3]; - u8 irq_index; +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 dpni_cmd_get_irq_enable { - __le32 pad; - u8 irq_index; +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 dpni_rsp_get_irq_enable { - u8 enabled; +enum ata_lpm_hints { + ATA_LPM_EMPTY = 1, + ATA_LPM_HIPM = 2, + ATA_LPM_WAKE_ONLY = 4, }; -struct dpni_cmd_set_irq_mask { - __le32 mask; - u8 irq_index; +struct speed_down_verdict_arg { + u64 since; + int xfer_ok; + int nr_errors[8]; }; -struct dpni_cmd_get_irq_mask { - __le32 pad; - u8 irq_index; +enum mtd_file_modes { + MTD_FILE_MODE_NORMAL = 0, + MTD_FILE_MODE_OTP_FACTORY = 1, + MTD_FILE_MODE_OTP_USER = 2, + MTD_FILE_MODE_RAW = 3, }; -struct dpni_rsp_get_irq_mask { - __le32 mask; +struct mtd_write_req { + __u64 start; + __u64 len; + __u64 ooblen; + __u64 usr_data; + __u64 usr_oob; + __u8 mode; + __u8 padding[7]; }; -struct dpni_cmd_get_irq_status { - __le32 status; - u8 irq_index; +struct mtd_read_req_ecc_stats { + __u32 uncorrectable_errors; + __u32 corrected_bitflips; + __u32 max_bitflips; }; -struct dpni_rsp_get_irq_status { - __le32 status; +struct mtd_read_req { + __u64 start; + __u64 len; + __u64 ooblen; + __u64 usr_data; + __u64 usr_oob; + __u8 mode; + __u8 padding[7]; + struct mtd_read_req_ecc_stats ecc_stats; }; -struct dpni_cmd_clear_irq_status { - __le32 status; - u8 irq_index; +struct mtd_file_info { + struct mtd_info *mtd; + enum mtd_file_modes mode; }; -struct dpni_rsp_get_attr { - __le32 options; - u8 num_queues; - u8 num_tcs; - u8 mac_filter_entries; - u8 pad0; - u8 vlan_filter_entries; - u8 pad1; - u8 qos_entries; - u8 pad2; - __le16 fs_entries; - __le16 pad3; - u8 qos_key_size; - u8 fs_key_size; - __le16 wriop_version; +struct mtd_oob_buf32 { + u_int32_t start; + u_int32_t length; + compat_caddr_t ptr; }; -struct dpni_cmd_set_errors_behavior { - __le32 errors; - u8 flags; +struct blkpg_compat_ioctl_arg { + compat_int_t op; + compat_int_t flags; + compat_int_t datalen; + compat_uptr_t data; }; -struct dpni_cmd_get_buffer_layout { - u8 qtype; +struct blkpg_ioctl_arg { + int op; + int flags; + int datalen; + void __attribute__((btf_type_tag("user"))) *data; }; -struct dpni_rsp_get_buffer_layout { - u8 pad0[6]; - u8 flags; - u8 pad1; - __le16 private_data_size; - __le16 data_align; - __le16 head_room; - __le16 tail_room; +struct mtd_info_user { + __u8 type; + __u32 flags; + __u32 size; + __u32 erasesize; + __u32 writesize; + __u32 oobsize; + __u64 padding; }; -struct dpni_cmd_set_buffer_layout { - u8 qtype; - u8 pad0[3]; - __le16 options; - u8 flags; - u8 pad1; - __le16 private_data_size; - __le16 data_align; - __le16 head_room; - __le16 tail_room; +struct erase_info_user64 { + __u64 start; + __u64 length; }; -struct dpni_cmd_set_offload { - u8 pad[3]; - u8 dpni_offload; - __le32 config; +struct erase_info_user { + __u32 start; + __u32 length; }; -struct dpni_cmd_get_offload { - u8 pad[3]; - u8 dpni_offload; +struct mtd_oob_buf { + __u32 start; + __u32 length; + unsigned char __attribute__((btf_type_tag("user"))) *ptr; }; -struct dpni_rsp_get_offload { - __le32 pad; - __le32 config; +struct mtd_oob_buf64 { + __u64 start; + __u32 pad; + __u32 length; + __u64 usr_ptr; }; -struct dpni_cmd_get_qdid { - u8 qtype; +struct nand_oobinfo { + __u32 useecc; + __u32 eccbytes; + __u32 oobfree[16]; + __u32 eccpos[32]; }; -struct dpni_rsp_get_qdid { - __le16 qdid; +struct region_info_user { + __u32 offset; + __u32 erasesize; + __u32 numblocks; + __u32 regionindex; }; -struct dpni_rsp_get_tx_data_offset { - __le16 data_offset; +struct nand_oobfree { + __u32 offset; + __u32 length; }; -struct dpni_cmd_link_cfg { - __le64 pad0; - __le32 rate; - __le32 pad1; - __le64 options; +struct nand_ecclayout_user { + __u32 eccbytes; + __u32 eccpos[64]; + __u32 oobavail; + struct nand_oobfree oobfree[8]; }; -struct dpni_rsp_get_link_state { - __le32 pad0; - u8 flags; - u8 pad1[3]; - __le32 rate; - __le32 pad2; - __le64 options; +struct blkpg_partition { + long long start; + long long length; + int pno; + char devname[64]; + char volname[64]; }; -struct dpni_cmd_set_max_frame_length { - __le16 max_frame_length; +enum ssp_interface { + SSP_INTERFACE_MOTOROLA_SPI = 0, + SSP_INTERFACE_TI_SYNC_SERIAL = 1, + SSP_INTERFACE_NATIONAL_MICROWIRE = 2, + SSP_INTERFACE_UNIDIRECTIONAL = 3, }; -struct dpni_rsp_get_max_frame_length { - __le16 max_frame_length; +enum ssp_hierarchy { + SSP_MASTER = 0, + SSP_SLAVE = 1, }; -struct dpni_cmd_set_multicast_promisc { - u8 enable; +struct ssp_clock_params { + u8 cpsdvsr; + u8 scr; }; -struct dpni_rsp_get_multicast_promisc { - u8 enabled; +enum ssp_mode { + INTERRUPT_TRANSFER = 0, + POLLING_TRANSFER = 1, + DMA_TRANSFER = 2, }; -struct dpni_cmd_set_unicast_promisc { - u8 enable; +enum ssp_rx_level_trig { + SSP_RX_1_OR_MORE_ELEM = 0, + SSP_RX_4_OR_MORE_ELEM = 1, + SSP_RX_8_OR_MORE_ELEM = 2, + SSP_RX_16_OR_MORE_ELEM = 3, + SSP_RX_32_OR_MORE_ELEM = 4, }; -struct dpni_rsp_get_unicast_promisc { - u8 enabled; +enum ssp_tx_level_trig { + SSP_TX_1_OR_MORE_EMPTY_LOC = 0, + SSP_TX_4_OR_MORE_EMPTY_LOC = 1, + SSP_TX_8_OR_MORE_EMPTY_LOC = 2, + SSP_TX_16_OR_MORE_EMPTY_LOC = 3, + SSP_TX_32_OR_MORE_EMPTY_LOC = 4, }; -struct dpni_cmd_set_primary_mac_addr { - __le16 pad; - u8 mac_addr[6]; +enum ssp_microwire_ctrl_len { + SSP_BITS_4 = 3, + SSP_BITS_5 = 4, + SSP_BITS_6 = 5, + SSP_BITS_7 = 6, + SSP_BITS_8 = 7, + SSP_BITS_9 = 8, + SSP_BITS_10 = 9, + SSP_BITS_11 = 10, + SSP_BITS_12 = 11, + SSP_BITS_13 = 12, + SSP_BITS_14 = 13, + SSP_BITS_15 = 14, + SSP_BITS_16 = 15, + SSP_BITS_17 = 16, + SSP_BITS_18 = 17, + SSP_BITS_19 = 18, + SSP_BITS_20 = 19, + SSP_BITS_21 = 20, + SSP_BITS_22 = 21, + SSP_BITS_23 = 22, + SSP_BITS_24 = 23, + SSP_BITS_25 = 24, + SSP_BITS_26 = 25, + SSP_BITS_27 = 26, + SSP_BITS_28 = 27, + SSP_BITS_29 = 28, + SSP_BITS_30 = 29, + SSP_BITS_31 = 30, + SSP_BITS_32 = 31, }; -struct dpni_rsp_get_primary_mac_addr { - __le16 pad; - u8 mac_addr[6]; +enum ssp_microwire_wait_state { + SSP_MWIRE_WAIT_ZERO = 0, + SSP_MWIRE_WAIT_ONE = 1, }; -struct dpni_rsp_get_port_mac_addr { - __le16 pad; - u8 mac_addr[6]; +enum ssp_duplex { + SSP_MICROWIRE_CHANNEL_FULL_DUPLEX = 0, + SSP_MICROWIRE_CHANNEL_HALF_DUPLEX = 1, }; -struct dpni_cmd_enable_vlan_filter { - u8 en; +enum ssp_clkdelay { + SSP_FEEDBACK_CLK_DELAY_NONE = 0, + SSP_FEEDBACK_CLK_DELAY_1T = 1, + SSP_FEEDBACK_CLK_DELAY_2T = 2, + SSP_FEEDBACK_CLK_DELAY_3T = 3, + SSP_FEEDBACK_CLK_DELAY_4T = 4, + SSP_FEEDBACK_CLK_DELAY_5T = 5, + SSP_FEEDBACK_CLK_DELAY_6T = 6, + SSP_FEEDBACK_CLK_DELAY_7T = 7, }; -struct dpni_cmd_vlan_id { - u8 flags; - u8 tc_id; - u8 flow_id; - u8 pad; - __le16 vlan_id; +struct pl022_config_chip { + enum ssp_interface iface; + enum ssp_hierarchy hierarchy; + bool slave_tx_disable; + struct ssp_clock_params clk_freq; + enum ssp_mode com_mode; + enum ssp_rx_level_trig rx_lev_trig; + enum ssp_tx_level_trig tx_lev_trig; + enum ssp_microwire_ctrl_len ctrl_len; + enum ssp_microwire_wait_state wait_state; + enum ssp_duplex duplex; + enum ssp_clkdelay clkdelay; }; -struct dpni_cmd_add_mac_addr { - __le16 pad; - u8 mac_addr[6]; +struct vendor_data___2 { + int fifodepth; + int max_bpw; + bool unidir; + bool extended_cr; + bool pl023; + bool loopback; + bool internal_cs_ctrl; }; -struct dpni_cmd_remove_mac_addr { - __le16 pad; - u8 mac_addr[6]; +enum ssp_reading { + READING_NULL = 0, + READING_U8 = 1, + READING_U16 = 2, + READING_U32 = 3, }; -struct dpni_cmd_clear_mac_filters { - u8 flags; +enum ssp_writing { + WRITING_NULL = 0, + WRITING_U8 = 1, + WRITING_U16 = 2, + WRITING_U32 = 3, }; -struct dpni_cmd_set_rx_tc_dist { - __le16 dist_size; - u8 tc_id; - u8 flags; - __le16 pad0; - __le16 default_flow_id; - __le64 pad1[5]; - __le64 key_cfg_iova; +enum ssp_rx_endian { + SSP_RX_MSB = 0, + SSP_RX_LSB = 1, }; -struct dpni_cmd_set_congestion_notification { - u8 qtype; - u8 tc; - u8 pad[6]; - __le32 dest_id; - __le16 notification_mode; - u8 dest_priority; - u8 type_units; - __le64 message_iova; - __le64 message_ctx; - __le32 threshold_entry; - __le32 threshold_exit; +enum ssp_tx_endian { + SSP_TX_MSB = 0, + SSP_TX_LSB = 1, }; -struct dpni_cmd_set_queue { - u8 qtype; - u8 tc; - u8 index; - u8 options; - __le32 pad0; - __le32 dest_id; - __le16 pad1; - u8 dest_prio; - u8 flags; - __le64 flc; - __le64 user_context; +enum ssp_spi_clk_pol { + SSP_CLK_POL_IDLE_LOW = 0, + SSP_CLK_POL_IDLE_HIGH = 1, }; -struct dpni_cmd_get_queue { - u8 qtype; - u8 tc; - u8 index; +enum ssp_spi_clk_phase { + SSP_CLK_FIRST_EDGE = 0, + SSP_CLK_SECOND_EDGE = 1, }; -struct dpni_rsp_get_queue { - __le64 pad0; - __le32 dest_id; - __le16 pad1; - u8 dest_prio; - u8 flags; - __le64 flc; - __le64 user_context; - __le32 fqid; - __le16 qdbin; +enum ssp_loopback { + LOOPBACK_DISABLED = 0, + LOOPBACK_ENABLED = 1, }; -struct dpni_cmd_get_statistics { - u8 page_number; +enum ssp_chip_select { + SSP_CHIP_SELECT = 0, + SSP_CHIP_DESELECT = 1, }; -struct dpni_rsp_get_statistics { - __le64 counter[7]; +enum ssp_data_size { + SSP_DATA_BITS_4 = 3, + SSP_DATA_BITS_5 = 4, + SSP_DATA_BITS_6 = 5, + SSP_DATA_BITS_7 = 6, + SSP_DATA_BITS_8 = 7, + SSP_DATA_BITS_9 = 8, + SSP_DATA_BITS_10 = 9, + SSP_DATA_BITS_11 = 10, + SSP_DATA_BITS_12 = 11, + SSP_DATA_BITS_13 = 12, + SSP_DATA_BITS_14 = 13, + SSP_DATA_BITS_15 = 14, + SSP_DATA_BITS_16 = 15, + SSP_DATA_BITS_17 = 16, + SSP_DATA_BITS_18 = 17, + SSP_DATA_BITS_19 = 18, + SSP_DATA_BITS_20 = 19, + SSP_DATA_BITS_21 = 20, + SSP_DATA_BITS_22 = 21, + SSP_DATA_BITS_23 = 22, + SSP_DATA_BITS_24 = 23, + SSP_DATA_BITS_25 = 24, + SSP_DATA_BITS_26 = 25, + SSP_DATA_BITS_27 = 26, + SSP_DATA_BITS_28 = 27, + SSP_DATA_BITS_29 = 28, + SSP_DATA_BITS_30 = 29, + SSP_DATA_BITS_31 = 30, + SSP_DATA_BITS_32 = 31, }; -struct dpni_cmd_set_taildrop { - u8 congestion_point; - u8 qtype; - u8 tc; - u8 index; - __le32 pad0; - u8 enable; - u8 pad1; - u8 units; - u8 pad2; - __le32 threshold; -}; +struct pl022_ssp_controller; -struct dpni_cmd_get_taildrop { - u8 congestion_point; - u8 qtype; - u8 tc; - u8 index; -}; +struct chip_data___2; -struct dpni_rsp_get_taildrop { - __le64 pad0; - u8 enable; - u8 pad1; - u8 units; - u8 pad2; - __le32 threshold; +struct pl022 { + struct amba_device *adev; + struct vendor_data___2 *vendor; + resource_size_t phybase; + void *virtbase; + struct clk *clk; + struct spi_controller *host; + struct pl022_ssp_controller *host_info; + struct tasklet_struct pump_transfers; + struct spi_message *cur_msg; + struct spi_transfer *cur_transfer; + struct chip_data___2 *cur_chip; + bool next_msg_cs_active; + void *tx; + void *tx_end; + void *rx; + void *rx_end; + enum ssp_reading read; + enum ssp_writing write; + u32 exp_fifo_level; + enum ssp_rx_level_trig rx_lev_trig; + enum ssp_tx_level_trig tx_lev_trig; + struct dma_chan *dma_rx_channel; + struct dma_chan *dma_tx_channel; + struct sg_table sgt_rx; + struct sg_table sgt_tx; + char *dummypage; + bool dma_running; + int cur_cs; + struct gpio_desc *cur_gpiod; }; -struct dpni_rsp_get_api_version { - __le16 major; - __le16 minor; +struct pl022_ssp_controller { + u16 bus_id; + u8 enable_dma: 1; + bool (*dma_filter)(struct dma_chan *, void *); + void *dma_rx_param; + void *dma_tx_param; + int autosuspend_delay; + bool rt; }; -struct dpni_cmd_set_rx_fs_dist { - __le16 dist_size; - u8 enable; - u8 tc; - __le16 miss_flow_id; - __le16 pad; - __le64 key_cfg_iova; +struct chip_data___2 { + u32 cr0; + u16 cr1; + u16 dmacr; + u16 cpsr; + u8 n_bytes; + bool enable_dma; + enum ssp_reading read; + enum ssp_writing write; + int xfer_type; }; -struct dpni_cmd_set_rx_hash_dist { - __le16 dist_size; - u8 enable; - u8 tc; - __le32 pad; - __le64 key_cfg_iova; -}; +struct fman_mac___2; -struct dpni_cmd_add_fs_entry { - __le16 options; - u8 tc_id; - u8 key_size; - __le16 index; - __le16 flow_id; - __le64 key_iova; - __le64 mask_iova; - __le64 flc; +struct mac_device___2 { + void *vaddr; + struct device *dev; + struct resource *res; + u8 addr[6]; + struct fman_port *port[2]; + struct phylink *phylink; + struct phylink_config phylink_config; + phy_interface_t phy_if; + bool promisc; + bool allmulti; + const struct phylink_mac_ops *phylink_ops; + int (*enable)(struct fman_mac___2 *); + void (*disable)(struct fman_mac___2 *); + int (*set_promisc)(struct fman_mac___2 *, bool); + int (*change_addr)(struct fman_mac___2 *, const enet_addr_t *); + int (*set_allmulti)(struct fman_mac___2 *, bool); + int (*set_tstamp)(struct fman_mac___2 *, bool); + int (*set_multi)(struct net_device *, struct mac_device___2 *); + int (*set_exception)(struct fman_mac___2 *, enum fman_mac_exceptions, bool); + int (*add_hash_mac_addr)(struct fman_mac___2 *, enet_addr_t *); + int (*remove_hash_mac_addr)(struct fman_mac___2 *, enet_addr_t *); + void (*update_speed)(struct mac_device___2 *, int); + struct fman_mac___2 *fman_mac; + struct mac_priv_s *priv; }; -struct dpni_cmd_remove_fs_entry { - __le16 pad0; - u8 tc_id; - u8 key_size; - __le32 pad1; - __le64 key_iova; - __le64 mask_iova; +typedef void fman_mac_exception_cb___2(struct mac_device___2 *, enum fman_mac_exceptions); + +struct dtsec_regs; + +struct dtsec_cfg; + +struct fman_mac___2 { + struct dtsec_regs *regs; + u64 addr; + phy_interface_t phy_if; + u16 max_speed; + struct mac_device___2 *dev_id; + fman_mac_exception_cb___2 *exception_cb; + fman_mac_exception_cb___2 *event_cb; + u8 num_of_ind_addr_in_regs; + struct eth_hash_t *multicast_addr_hash; + struct eth_hash_t *unicast_addr_hash; + u8 mac_id; + u32 exceptions; + bool ptp_tsu_enabled; + bool en_tsu_err_exception; + struct dtsec_cfg *dtsec_drv_param; + void *fm; + struct fman_rev_info fm_rev_info; + bool basex_if; + struct mdio_device *tbidev; + struct phylink_pcs pcs; }; -struct dpni_cmd_set_qos_table { - __le32 pad; - u8 default_tc; - u8 discard_on_miss; - __le16 pad1[21]; - __le64 key_cfg_iova; +struct dtsec_regs { + u32 tsec_id; + u32 tsec_id2; + u32 ievent; + u32 imask; + u32 reserved0010[1]; + u32 ecntrl; + u32 ptv; + u32 tbipa; + u32 tmr_ctrl; + u32 tmr_pevent; + u32 tmr_pemask; + u32 reserved002c[5]; + u32 tctrl; + u32 reserved0044[3]; + u32 rctrl; + u32 reserved0054[11]; + u32 igaddr[8]; + u32 gaddr[8]; + u32 reserved00c0[16]; + u32 maccfg1; + u32 maccfg2; + u32 ipgifg; + u32 hafdup; + u32 maxfrm; + u32 reserved0114[10]; + u32 ifstat; + u32 macstnaddr1; + u32 macstnaddr2; + struct { + u32 exact_match1; + u32 exact_match2; + } macaddr[15]; + u32 reserved01c0[16]; + u32 tr64; + u32 tr127; + u32 tr255; + u32 tr511; + u32 tr1k; + u32 trmax; + u32 trmgv; + u32 rbyt; + u32 rpkt; + u32 rfcs; + u32 rmca; + u32 rbca; + u32 rxcf; + u32 rxpf; + u32 rxuo; + u32 raln; + u32 rflr; + u32 rcde; + u32 rcse; + u32 rund; + u32 rovr; + u32 rfrg; + u32 rjbr; + u32 rdrp; + u32 tbyt; + u32 tpkt; + u32 tmca; + u32 tbca; + u32 txpf; + u32 tdfr; + u32 tedf; + u32 tscl; + u32 tmcl; + u32 tlcl; + u32 txcl; + u32 tncl; + u32 reserved0290[1]; + u32 tdrp; + u32 tjbr; + u32 tfcs; + u32 txcf; + u32 tovr; + u32 tund; + u32 tfrg; + u32 car1; + u32 car2; + u32 cam1; + u32 cam2; + u32 reserved02c0[848]; }; -struct dpni_cmd_add_qos_entry { - __le16 pad; - u8 tc_id; - u8 key_size; - __le16 index; - __le16 pad1; - __le64 key_iova; - __le64 mask_iova; +struct dtsec_cfg { + u16 halfdup_retransmit; + u16 halfdup_coll_window; + bool tx_pad_crc; + u16 tx_pause_time; + bool ptp_tsu_en; + bool ptp_exception_en; + u32 preamble_len; + u32 rx_prepend; + u16 tx_pause_time_extd; + u16 maximum_frame; + u32 non_back_to_back_ipg1; + u32 non_back_to_back_ipg2; + u32 min_ifg_enforcement; + u32 back_to_back_ipg; }; -struct dpni_cmd_remove_qos_entry { - u8 pad[3]; - u8 key_size; - __le32 pad1; - __le64 key_iova; - __le64 mask_iova; +struct fman_mac_params___2 { + u8 mac_id; + void *fm; + fman_mac_exception_cb___2 *event_cb; + fman_mac_exception_cb___2 *exception_cb; }; -struct dpni_cmd_set_tx_shaping { - __le16 tx_cr_max_burst_size; - __le16 tx_er_max_burst_size; - __le32 pad; - __le32 tx_cr_rate_limit; - __le32 tx_er_rate_limit; - u8 coupled; +enum hclge_ptp_udp_type { + HCLGE_PTP_UDP_NOT_TYPE = 0, + HCLGE_PTP_UDP_P13F_TYPE = 1, + HCLGE_PTP_UDP_P140_TYPE = 2, + HCLGE_PTP_UDP_FULL_TYPE = 3, }; -struct dpni_rsp_single_step_cfg { - __le16 flags; - __le16 offset; - __le32 peer_delay; - __le32 ptp_onestep_reg_base; - __le32 pad0; +enum hclge_ptp_msg0_type { + HCLGE_PTP_MSG0_V2_DELAY_REQ = 1, + HCLGE_PTP_MSG0_V2_PDELAY_REQ = 2, + HCLGE_PTP_MSG0_V2_DELAY_RESP = 3, + HCLGE_PTP_MSG0_V2_EVENT = 15, }; -struct dpni_cmd_single_step_cfg { - __le16 flags; - __le16 offset; - __le32 peer_delay; - __le32 ptp_onestep_reg_base; - __le32 pad0; +enum hclge_ptp_msg_type { + HCLGE_PTP_MSG_TYPE_V2_L2 = 0, + HCLGE_PTP_MSG_TYPE_V2 = 1, + HCLGE_PTP_MSG_TYPE_V2_EVENT = 2, }; -struct dpni_dest_cfg { - enum dpni_dest dest_type; - int dest_id; - u8 priority; +struct hclge_ptp_cfg_cmd { + __le32 cfg; + u8 rsvd[20]; }; -struct dpni_congestion_notification_cfg { - enum dpni_congestion_unit units; - u32 threshold_entry; - u32 threshold_exit; - u64 message_ctx; - u64 message_iova; - struct dpni_dest_cfg dest_cfg; - u16 notification_mode; +struct hclge_ptp_int_cmd { + u8 int_en; + u8 rsvd[23]; }; -struct dpni_fs_action_cfg { - u64 flc; - u16 flow_id; - u16 options; +enum E1000_INVM_STRUCTURE_TYPE { + E1000_INVM_UNINITIALIZED_STRUCTURE = 0, + E1000_INVM_WORD_AUTOLOAD_STRUCTURE = 1, + E1000_INVM_CSR_AUTOLOAD_STRUCTURE = 2, + E1000_INVM_PHY_REGISTER_AUTOLOAD_STRUCTURE = 3, + E1000_INVM_RSA_KEY_SHA256_STRUCTURE = 4, + E1000_INVM_INVALIDATED_STRUCTURE = 15, }; -enum ppe_qid_mode { - PPE_QID_MODE0 = 0, - PPE_QID_MODE1 = 1, - PPE_QID_MODE2 = 2, - PPE_QID_MODE3 = 3, - PPE_QID_MODE4 = 4, - PPE_QID_MODE5 = 5, - PPE_QID_MODE6 = 6, - PPE_QID_MODE7 = 7, - PPE_QID_MODE8 = 8, - PPE_QID_MODE9 = 9, - PPE_QID_MODE10 = 10, - PPE_QID_MODE11 = 11, +struct e1000_fw_version { + u32 etrack_id; + u16 eep_major; + u16 eep_minor; + u16 eep_build; + u8 invm_major; + u8 invm_minor; + u8 invm_img_type; + bool or_valid; + u16 or_major; + u16 or_build; + u16 or_patch; }; -enum ppe_port_mode { - PPE_MODE_GE = 0, - PPE_MODE_XGE = 1, +enum e1000_mac_type___3 { + e1000_undefined___3 = 0, + e1000_vfadapt = 1, + e1000_vfadapt_i350 = 2, + e1000_num_macs___3 = 3, }; -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 e1000_dev_spec_vf { + u32 vf_number; + u32 v2p_mailbox; }; -struct ale_control_info { - const char *name; - int offset; - int port_offset; - int shift; - int port_shift; - int bits; -}; +struct e1000_hw___4; -struct cpsw_ale_dev_id { - const char *dev_id; - u32 features; - u32 tbl_entries; - u32 major_ver_mask; - bool nu_switch_ale; - const struct ale_entry_fld *vlan_entry_tbl; +struct e1000_mac_operations___3 { + s32 (*init_params)(struct e1000_hw___4 *); + s32 (*check_for_link)(struct e1000_hw___4 *); + void (*clear_vfta)(struct e1000_hw___4 *); + s32 (*get_bus_info)(struct e1000_hw___4 *); + s32 (*get_link_up_info)(struct e1000_hw___4 *, u16 *, u16 *); + void (*update_mc_addr_list)(struct e1000_hw___4 *, u8 *, u32, u32, u32); + s32 (*set_uc_addr)(struct e1000_hw___4 *, u32, u8 *); + s32 (*reset_hw)(struct e1000_hw___4 *); + s32 (*init_hw)(struct e1000_hw___4 *); + s32 (*setup_link)(struct e1000_hw___4 *); + void (*write_vfta)(struct e1000_hw___4 *, u32, u32); + void (*mta_set)(struct e1000_hw___4 *, u32); + void (*rar_set)(struct e1000_hw___4 *, u8 *, u32); + s32 (*read_mac_addr)(struct e1000_hw___4 *); + s32 (*set_vfta)(struct e1000_hw___4 *, u16, bool); }; -enum { - ALE_ENT_VID_MEMBER_LIST = 0, - ALE_ENT_VID_UNREG_MCAST_MSK = 1, - ALE_ENT_VID_REG_MCAST_MSK = 2, - ALE_ENT_VID_FORCE_UNTAGGED_MSK = 3, - ALE_ENT_VID_UNREG_MCAST_IDX = 4, - ALE_ENT_VID_REG_MCAST_IDX = 5, - ALE_ENT_VID_LAST = 6, +struct e1000_mac_info___3 { + struct e1000_mac_operations___3 ops; + u8 addr[6]; + u8 perm_addr[6]; + enum e1000_mac_type___3 type; + u16 mta_reg_count; + u16 rar_entry_count; + bool get_link_status; }; -enum cpsw_ale_control { - ALE_ENABLE = 0, - ALE_CLEAR = 1, - ALE_AGEOUT = 2, - ALE_P0_UNI_FLOOD = 3, - ALE_VLAN_NOLEARN = 4, - ALE_NO_PORT_VLAN = 5, - ALE_OUI_DENY = 6, - ALE_BYPASS = 7, - ALE_RATE_LIMIT_TX = 8, - ALE_VLAN_AWARE = 9, - ALE_AUTH_ENABLE = 10, - ALE_RATE_LIMIT = 11, - ALE_PORT_STATE = 12, - ALE_PORT_DROP_UNTAGGED = 13, - ALE_PORT_DROP_UNKNOWN_VLAN = 14, - ALE_PORT_NOLEARN = 15, - ALE_PORT_NO_SA_UPDATE = 16, - ALE_PORT_UNKNOWN_VLAN_MEMBER = 17, - ALE_PORT_UNKNOWN_MCAST_FLOOD = 18, - ALE_PORT_UNKNOWN_REG_MCAST_FLOOD = 19, - ALE_PORT_UNTAGGED_EGRESS = 20, - ALE_PORT_MACONLY = 21, - ALE_PORT_MACONLY_CAF = 22, - ALE_PORT_BCAST_LIMIT = 23, - ALE_PORT_MCAST_LIMIT = 24, - ALE_DEFAULT_THREAD_ID = 25, - ALE_DEFAULT_THREAD_ENABLE = 26, - ALE_NUM_CONTROLS = 27, +struct e1000_mbx_operations___2 { + s32 (*init_params)(struct e1000_hw___4 *); + s32 (*read)(struct e1000_hw___4 *, u32 *, u16); + s32 (*write)(struct e1000_hw___4 *, u32 *, u16); + s32 (*read_posted)(struct e1000_hw___4 *, u32 *, u16); + s32 (*write_posted)(struct e1000_hw___4 *, u32 *, u16); + s32 (*check_for_msg)(struct e1000_hw___4 *); + s32 (*check_for_ack)(struct e1000_hw___4 *); + s32 (*check_for_rst)(struct e1000_hw___4 *); }; -enum { - CPSW_ALE_F_STATUS_REG = 1, - CPSW_ALE_F_HW_AUTOAGING = 2, - CPSW_ALE_F_COUNT = 3, +struct e1000_mbx_info___2 { + struct e1000_mbx_operations___2 ops; + struct e1000_mbx_stats stats; + u32 timeout; + u32 usec_delay; + u16 size; }; -struct usb_dev_cap_header { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; +struct e1000_hw___4 { + void *back; + u8 *hw_addr; + u8 *flash_address; + unsigned long io_base; + struct e1000_mac_info___3 mac; + struct e1000_mbx_info___2 mbx; + spinlock_t mbx_lock; + union { + struct e1000_dev_spec_vf vf; + } dev_spec; + u16 device_id; + u16 subsystem_vendor_id; + u16 subsystem_device_id; + u16 vendor_id; + u8 revision_id; }; -typedef int (*usb_role_switch_set_t)(struct usb_role_switch *, enum usb_role); +struct igbvf_stats { + char stat_string[32]; + int sizeof_stat; + int stat_offset; + int base_stat_offset; +}; -typedef enum usb_role (*usb_role_switch_get_t)(struct usb_role_switch *); +enum igbvf_state_t { + __IGBVF_TESTING = 0, + __IGBVF_RESETTING = 1, + __IGBVF_DOWN = 2, +}; -struct usb_role_switch_desc { - struct fwnode_handle *fwnode; - struct device *usb2_port; - struct device *usb3_port; - struct device *udc; - usb_role_switch_set_t set; - usb_role_switch_get_t get; - bool allow_userspace_control; - void *driver_data; - const char *name; +struct e1000_vf_stats { + u64 base_gprc; + u64 base_gptc; + u64 base_gorc; + u64 base_gotc; + u64 base_mprc; + u64 base_gotlbc; + u64 base_gptlbc; + u64 base_gorlbc; + u64 base_gprlbc; + u32 last_gprc; + u32 last_gptc; + u32 last_gorc; + u32 last_gotc; + u32 last_mprc; + u32 last_gotlbc; + u32 last_gptlbc; + u32 last_gorlbc; + u32 last_gprlbc; + u64 gprc; + u64 gptc; + u64 gorc; + u64 gotc; + u64 mprc; + u64 gotlbc; + u64 gptlbc; + u64 gorlbc; + u64 gprlbc; }; -typedef void (*btf_trace_usb_gadget_frame_number)(void *, struct usb_gadget *, int); +struct igbvf_queue_stats { + u64 packets; + u64 bytes; +}; -typedef void (*btf_trace_usb_gadget_wakeup)(void *, struct usb_gadget *, int); +struct igbvf_adapter; -typedef void (*btf_trace_usb_gadget_set_remote_wakeup)(void *, struct usb_gadget *, int); +union igbvf_desc; -typedef void (*btf_trace_usb_gadget_set_selfpowered)(void *, struct usb_gadget *, int); +struct igbvf_buffer; -typedef void (*btf_trace_usb_gadget_clear_selfpowered)(void *, struct usb_gadget *, int); +struct igbvf_ring { + struct igbvf_adapter *adapter; + union igbvf_desc *desc; + dma_addr_t dma; + unsigned int size; + unsigned int count; + u16 next_to_use; + u16 next_to_clean; + u16 head; + u16 tail; + struct igbvf_buffer *buffer_info; + struct napi_struct napi; + char name[21]; + u32 eims_value; + u32 itr_val; + enum latency_range itr_range; + u16 itr_register; + int set_itr; + struct sk_buff *rx_skb_top; + struct igbvf_queue_stats stats; +}; -typedef void (*btf_trace_usb_gadget_vbus_connect)(void *, struct usb_gadget *, int); +struct igbvf_info; -typedef void (*btf_trace_usb_gadget_vbus_draw)(void *, struct usb_gadget *, int); +struct igbvf_adapter { + struct timer_list watchdog_timer; + struct timer_list blink_timer; + struct work_struct reset_task; + struct work_struct watchdog_task; + const struct igbvf_info *ei; + unsigned long active_vlans[64]; + u32 bd_number; + u32 rx_buffer_len; + u32 polling_interval; + u16 mng_vlan_id; + u16 link_speed; + u16 link_duplex; + spinlock_t tx_queue_lock; + unsigned long state; + u32 requested_itr; + u32 current_itr; + struct igbvf_ring *tx_ring; + unsigned int restart_queue; + u32 txd_cmd; + 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; + u32 tx_timeout_count; + u32 tx_fifo_head; + u32 tx_head_addr; + u32 tx_fifo_size; + u32 tx_dma_failed; + struct igbvf_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 alloc_rx_buff_failed; + u32 rx_dma_failed; + unsigned int rx_ps_hdr_size; + u32 max_frame_size; + u32 min_frame_size; + struct net_device *netdev; + struct pci_dev *pdev; + spinlock_t stats_lock; + struct e1000_hw___4 hw; + struct e1000_vf_stats stats; + u64 zero_base; + struct igbvf_ring test_tx_ring; + struct igbvf_ring test_rx_ring; + u32 test_icr; + u32 msg_enable; + struct msix_entry *msix_entries; + int int_mode; + u32 eims_enable_mask; + u32 eims_other; + u32 int_counter0; + u32 int_counter1; + u32 eeprom_wol; + u32 wol; + u32 pba; + bool fc_autoneg; + unsigned long led_status; + unsigned int flags; + unsigned long last_reset; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; -typedef void (*btf_trace_usb_gadget_vbus_disconnect)(void *, struct usb_gadget *, int); +struct igbvf_info { + enum e1000_mac_type___3 mac; + unsigned int flags; + u32 pba; + void (*init_ops)(struct e1000_hw___4 *); + s32 (*get_variants)(struct igbvf_adapter *); +}; -typedef void (*btf_trace_usb_gadget_connect)(void *, struct usb_gadget *, int); +union e1000_adv_rx_desc { + struct { + __le64 pkt_addr; + __le64 hdr_addr; + } read; + struct { + struct { + union { + __le32 data; + struct { + __le16 pkt_info; + __le16 hdr_info; + } hs_rss; + } lo_dword; + union { + __le32 rss; + struct { + __le16 ip_id; + __le16 csum; + } csum_ip; + } hi_dword; + } lower; + struct { + __le32 status_error; + __le16 length; + __le16 vlan; + } upper; + } wb; +}; -typedef void (*btf_trace_usb_gadget_disconnect)(void *, struct usb_gadget *, int); +struct e1000_adv_tx_context_desc { + __le32 vlan_macip_lens; + __le32 seqnum_seed; + __le32 type_tucmd_mlhl; + __le32 mss_l4len_idx; +}; -typedef void (*btf_trace_usb_gadget_deactivate)(void *, struct usb_gadget *, int); +union igbvf_desc { + union e1000_adv_rx_desc rx_desc; + union e1000_adv_tx_desc tx_desc; + struct e1000_adv_tx_context_desc tx_context_desc; +}; -typedef void (*btf_trace_usb_gadget_activate)(void *, struct usb_gadget *, int); +struct igbvf_buffer { + dma_addr_t dma; + struct sk_buff *skb; + union { + struct { + unsigned long time_stamp; + union e1000_adv_tx_desc *next_to_watch; + u16 length; + u16 mapped_as_page; + }; + struct { + struct page *page; + u64 page_dma; + unsigned int page_offset; + }; + }; +}; -typedef void (*btf_trace_usb_ep_set_maxpacket_limit)(void *, struct usb_ep *, int); +struct smsc911x_data; -typedef void (*btf_trace_usb_ep_enable)(void *, struct usb_ep *, int); +struct smsc911x_ops { + u32 (*reg_read)(struct smsc911x_data *, u32); + void (*reg_write)(struct smsc911x_data *, u32, u32); + void (*rx_readfifo)(struct smsc911x_data *, unsigned int *, unsigned int); + void (*tx_writefifo)(struct smsc911x_data *, unsigned int *, unsigned int); +}; -typedef void (*btf_trace_usb_ep_disable)(void *, struct usb_ep *, int); +struct smsc911x_platform_config { + unsigned int irq_polarity; + unsigned int irq_type; + unsigned int flags; + unsigned int shift; + phy_interface_t phy_interface; + unsigned char mac[6]; +}; -typedef void (*btf_trace_usb_ep_set_halt)(void *, struct usb_ep *, int); +struct smsc911x_data { + void *ioaddr; + unsigned int idrev; + unsigned int generation; + struct smsc911x_platform_config config; + spinlock_t mac_lock; + spinlock_t dev_lock; + struct mii_bus *mii_bus; + unsigned int using_extphy; + int last_duplex; + int last_carrier; + u32 msg_enable; + unsigned int gpio_setting; + unsigned int gpio_orig_setting; + struct net_device *dev; + struct napi_struct napi; + unsigned int software_irq_signal; + char loopback_tx_pkt[64]; + char loopback_rx_pkt[64]; + unsigned int resetcount; + unsigned int multicast_update_pending; + unsigned int set_bits_mask; + unsigned int clear_bits_mask; + unsigned int hashhi; + unsigned int hashlo; + const struct smsc911x_ops *ops; + struct regulator_bulk_data supplies[2]; + struct gpio_desc *reset_gpiod; + struct clk *clk; +}; -typedef void (*btf_trace_usb_ep_clear_halt)(void *, struct usb_ep *, int); +struct usb_class_driver { + char *name; + char * (*devnode)(const struct device *, umode_t *); + const struct file_operations *fops; + int minor_base; +}; -typedef void (*btf_trace_usb_ep_set_wedge)(void *, struct usb_ep *, int); +struct musb_temp_buffer { + void *kmalloc_ptr; + void *old_xfer_buffer; + u8 data[0]; +}; -typedef void (*btf_trace_usb_ep_fifo_status)(void *, struct usb_ep *, int); +struct rtd119x_rtc { + void *base; + struct clk *clk; + struct rtc_device *rtcdev; + unsigned int base_year; +}; -typedef void (*btf_trace_usb_ep_fifo_flush)(void *, struct usb_ep *, int); +enum i2c_type_exynos { + I2C_TYPE_EXYNOS5 = 0, + I2C_TYPE_EXYNOS7 = 1, + I2C_TYPE_EXYNOSAUTOV9 = 2, +}; -typedef void (*btf_trace_usb_ep_alloc_request)(void *, struct usb_ep *, struct usb_request *, int); +struct exynos_hsi2c_variant { + unsigned int fifo_depth; + enum i2c_type_exynos hw; +}; -typedef void (*btf_trace_usb_ep_free_request)(void *, struct usb_ep *, struct usb_request *, int); +struct exynos5_i2c { + struct i2c_adapter adap; + struct i2c_msg *msg; + struct completion msg_complete; + unsigned int msg_ptr; + unsigned int irq; + void *regs; + struct clk *clk; + struct clk *pclk; + struct device *dev; + int state; + spinlock_t lock; + int trans_done; + unsigned int atomic; + unsigned int op_clock; + const struct exynos_hsi2c_variant *variant; +}; -typedef void (*btf_trace_usb_ep_queue)(void *, struct usb_ep *, struct usb_request *, int); +struct bsc_clk_param { + u32 hz; + u32 scl_mask; + u32 div_mask; +}; -typedef void (*btf_trace_usb_ep_dequeue)(void *, struct usb_ep *, struct usb_request *, int); +enum bsc_xfer_cmd { + CMD_WR = 0, + CMD_RD = 1, + CMD_WR_NOACK = 2, + CMD_RD_NOACK = 3, +}; -typedef void (*btf_trace_usb_gadget_giveback_request)(void *, struct usb_ep *, struct usb_request *, int); +struct bsc_regs; -struct trace_event_raw_udc_log_gadget { - struct trace_entry ent; - enum usb_device_speed speed; - enum usb_device_speed max_speed; - enum usb_device_state state; - unsigned int mA; - unsigned int sg_supported; - unsigned int is_otg; - unsigned int is_a_peripheral; - unsigned int b_hnp_enable; - unsigned int a_hnp_support; - unsigned int hnp_polling_support; - unsigned int host_request_flag; - unsigned int quirk_ep_out_aligned_size; - unsigned int quirk_altset_not_supp; - unsigned int quirk_stall_not_supp; - unsigned int quirk_zlp_not_supp; - unsigned int is_selfpowered; - unsigned int deactivated; - unsigned int connected; - int ret; - char __data[0]; +struct brcmstb_i2c_dev { + struct device *device; + void *base; + int irq; + struct bsc_regs *bsc_regmap; + struct i2c_adapter adapter; + struct completion done; + u32 clk_freq_hz; + int data_regsz; + bool atomic; }; -struct trace_event_raw_udc_log_ep { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int maxpacket; - unsigned int maxpacket_limit; - unsigned int max_streams; - unsigned int mult; - unsigned int maxburst; - u8 address; - bool claimed; - bool enabled; - int ret; - char __data[0]; +struct bsc_regs { + u32 chip_address; + u32 data_in[8]; + u32 cnt_reg; + u32 ctl_reg; + u32 iic_enable; + u32 data_out[8]; + u32 ctlhi_reg; + u32 scl_param; }; -struct trace_event_raw_udc_log_req { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int length; - unsigned int actual; - unsigned int num_sgs; - unsigned int num_mapped_sgs; - unsigned int stream_id; - unsigned int no_interrupt; - unsigned int zero; - unsigned int short_not_ok; - int status; - int ret; - struct usb_request *req; - char __data[0]; +struct sp805_wdt { + struct watchdog_device wdd; + spinlock_t lock; + void *base; + struct clk *clk; + u64 rate; + struct amba_device *adev; + unsigned int load_val; }; -struct trace_event_data_offsets_udc_log_ep { - u32 name; +struct mtk_mmc_compatible { + u8 clk_div_bits; + bool recheck_sdio_irq; + bool hs400_tune; + u32 pad_tune_reg; + bool async_fifo; + bool data_tune; + bool busy_check; + bool stop_clk_fix; + bool enhance_rx; + bool support_64g; + bool use_internal_cd; }; -struct trace_event_data_offsets_udc_log_req { - u32 name; -}; +struct mt_gpdma_desc; -struct trace_event_data_offsets_udc_log_gadget {}; +struct mt_bdma_desc; -struct ds3232 { - struct device *dev; - struct regmap *regmap; - int irq; - struct rtc_device *rtc; - bool suspended; +struct msdc_dma { + struct scatterlist *sg; + struct mt_gpdma_desc *gpd; + struct mt_bdma_desc *bd; + dma_addr_t gpd_addr; + dma_addr_t bd_addr; }; -struct sh_mobile_i2c_data; +struct msdc_save_para { + u32 msdc_cfg; + u32 iocon; + u32 sdc_cfg; + u32 pad_tune; + u32 patch_bit0; + u32 patch_bit1; + u32 patch_bit2; + u32 pad_ds_tune; + u32 pad_cmd_tune; + u32 emmc50_cfg0; + u32 emmc50_cfg3; + u32 sdc_fifo_cfg; + u32 emmc_top_control; + u32 emmc_top_cmd; + u32 emmc50_pad_ds_tune; +}; -struct sh_mobile_dt_config { - int clks_per_count; - int (*setup)(struct sh_mobile_i2c_data *); +struct msdc_tune_para { + u32 iocon; + u32 pad_tune; + u32 pad_cmd_tune; + u32 emmc_top_control; + u32 emmc_top_cmd; }; -struct sh_mobile_i2c_data { +struct msdc_host { struct device *dev; - void *reg; - struct i2c_adapter adap; - unsigned long bus_speed; - unsigned int clks_per_count; - struct clk *clk; - u_int8_t icic; - u_int8_t flags; - u_int16_t iccl; - u_int16_t icch; + const struct mtk_mmc_compatible *dev_comp; + int cmd_rsp; spinlock_t lock; - wait_queue_head_t wait; - struct i2c_msg *msg; - int pos; - int sr; - bool send_stop; - bool stop_after_dma; - bool atomic_xfer; - struct resource *res; - struct dma_chan *dma_tx; - struct dma_chan *dma_rx; - struct scatterlist sg; - enum dma_data_direction dma_direction; - u8 *dma_buf; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_data *data; + int error; + void *base; + void *top_base; + struct msdc_dma dma; + u64 dma_mask; + u32 timeout_ns; + u32 timeout_clks; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_default; + struct pinctrl_state *pins_uhs; + struct pinctrl_state *pins_eint; + struct delayed_work req_timeout; + int irq; + int eint_irq; + struct reset_control *reset; + struct clk *src_clk; + struct clk *h_clk; + struct clk *bus_clk; + struct clk *src_clk_cg; + struct clk *sys_clk_cg; + struct clk *crypto_clk; + struct clk_bulk_data bulk_clks[3]; + u32 mclk; + u32 src_clk_freq; + unsigned char timing; + bool vqmmc_enabled; + u32 latch_ck; + u32 hs400_ds_delay; + u32 hs400_ds_dly3; + u32 hs200_cmd_int_delay; + u32 hs400_cmd_int_delay; + bool hs400_cmd_resp_sel_rising; + bool hs400_mode; + bool hs400_tuning; + bool internal_cd; + bool cqhci; + struct msdc_save_para save_para; + struct msdc_tune_para def_tune_para; + struct msdc_tune_para saved_tune_para; + struct cqhci_host *cq_host; + u32 cq_ssc1_time; }; -enum sh_mobile_i2c_op { - OP_START = 0, - OP_TX_FIRST = 1, - OP_TX = 2, - OP_TX_STOP = 3, - OP_TX_TO_RX = 4, - OP_RX = 5, - OP_RX_STOP = 6, - OP_RX_STOP_DATA = 7, +struct mt_gpdma_desc { + u32 gpd_info; + u32 next; + u32 ptr; + u32 gpd_data_len; + u32 arg; + u32 blknum; + u32 cmd; }; -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 mt_bdma_desc { + u32 bd_info; + u32 next; + u32 ptr; + u32 bd_data_len; +}; -typedef void (*btf_trace_thermal_power_cpu_get_power_simple)(void *, int, u32); +struct msdc_delay_phase { + u8 maxlen; + u8 start; + u8 final_phase; +}; -typedef void (*btf_trace_thermal_power_cpu_limit)(void *, const struct cpumask *, unsigned int, unsigned long, u32); +enum { + UFS_REG_OCPTHRTL = 192, + UFS_REG_OOCPR = 196, + UFS_REG_CDACFG = 208, + UFS_REG_CDATX1 = 212, + UFS_REG_CDATX2 = 216, + UFS_REG_CDARX1 = 220, + UFS_REG_CDARX2 = 224, + UFS_REG_CDASTA = 228, + UFS_REG_LBMCFG = 240, + UFS_REG_LBMSTA = 244, + UFS_REG_UFSMODE = 248, + UFS_REG_HCLKDIV = 252, +}; -typedef void (*btf_trace_thermal_power_devfreq_get_power)(void *, struct thermal_cooling_device *, struct devfreq_dev_status *, unsigned long, u32); +struct ufs_hisi_host { + struct ufs_hba *hba; + void *ufs_sys_ctrl; + struct reset_control *rst; + uint64_t caps; + bool in_suspend; +}; -typedef void (*btf_trace_thermal_power_devfreq_limit)(void *, struct thermal_cooling_device *, unsigned long, unsigned long, u32); +struct ufs_dev_params { + u32 pwm_rx_gear; + u32 pwm_tx_gear; + u32 hs_rx_gear; + u32 hs_tx_gear; + u32 rx_lanes; + u32 tx_lanes; + u32 rx_pwr_pwm; + u32 tx_pwr_pwm; + u32 rx_pwr_hs; + u32 tx_pwr_hs; + u32 hs_rate; + u32 desired_working_mode; +}; -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]; +enum scmi_clock_protocol_cmd { + CLOCK_ATTRIBUTES = 3, + CLOCK_DESCRIBE_RATES = 4, + CLOCK_RATE_SET = 5, + CLOCK_RATE_GET = 6, + CLOCK_CONFIG_SET = 7, + CLOCK_NAME_GET = 8, + CLOCK_RATE_NOTIFY = 9, + CLOCK_RATE_CHANGE_REQUESTED_NOTIFY = 10, + CLOCK_CONFIG_GET = 11, + CLOCK_POSSIBLE_PARENTS_GET = 12, + CLOCK_PARENT_SET = 13, + CLOCK_PARENT_GET = 14, }; -struct trace_event_raw_cdev_update { - struct trace_entry ent; - u32 __data_loc_type; - unsigned long target; - char __data[0]; +enum clk_state { + CLK_STATE_DISABLE = 0, + CLK_STATE_ENABLE = 1, + CLK_STATE_RESERVED = 2, + CLK_STATE_UNCHANGED = 3, }; -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 scmi_clk_ipriv { + struct device *dev; + u32 clk_id; + struct scmi_clock_info *clk; }; -struct trace_event_raw_thermal_power_cpu_get_power_simple { - struct trace_entry ent; - int cpu; - u32 power; - char __data[0]; +struct clock_info { + u32 version; + int num_clocks; + int max_async_req; + atomic_t cur_async_req; + struct scmi_clock_info *clk; + int (*clock_config_set)(const struct scmi_protocol_handle *, u32, enum clk_state, u8, u32, bool); + int (*clock_config_get)(const struct scmi_protocol_handle *, u32, u8, u32 *, bool *, u32 *, bool); }; -struct trace_event_raw_thermal_power_cpu_limit { - struct trace_entry ent; - u32 __data_loc_cpumask; - unsigned int freq; - unsigned long cdev_state; - u32 power; - char __data[0]; +struct scmi_msg_resp_clock_protocol_attributes { + __le16 num_clocks; + u8 max_async_req; + u8 reserved; }; -struct trace_event_raw_thermal_power_devfreq_get_power { - struct trace_entry ent; - u32 __data_loc_type; - unsigned long freq; - u32 busy_time; - u32 total_time; - u32 power; - char __data[0]; +struct scmi_msg_resp_clock_attributes { + __le32 attributes; + u8 name[16]; + __le32 clock_enable_latency; }; -struct trace_event_raw_thermal_power_devfreq_limit { - struct trace_entry ent; - u32 __data_loc_type; - unsigned int freq; - unsigned long cdev_state; - u32 power; - char __data[0]; +struct scmi_msg_clock_rate_notify { + __le32 clk_id; + __le32 notify_enable; }; -struct trace_event_data_offsets_thermal_temperature { - u32 thermal_zone; +struct scmi_msg_clock_config_set_v2 { + __le32 id; + __le32 attributes; + __le32 oem_config_val; }; -struct trace_event_data_offsets_cdev_update { - u32 type; +struct scmi_msg_clock_config_get { + __le32 id; + __le32 flags; }; -struct trace_event_data_offsets_thermal_zone_trip { - u32 thermal_zone; +struct scmi_msg_resp_clock_config_get { + __le32 attributes; + __le32 config; + __le32 oem_config_val; }; -struct trace_event_data_offsets_thermal_power_cpu_limit { - u32 cpumask; +struct scmi_msg_clock_config_set { + __le32 id; + __le32 attributes; }; -struct trace_event_data_offsets_thermal_power_devfreq_get_power { - u32 type; +struct scmi_msg_clock_possible_parents { + __le32 id; + __le32 skip_parents; }; -struct trace_event_data_offsets_thermal_power_devfreq_limit { - u32 type; +struct scmi_msg_resp_clock_possible_parents { + __le32 num_parent_flags; + __le32 possible_parents[0]; }; -struct trace_event_data_offsets_thermal_power_cpu_get_power_simple {}; +struct scmi_msg_clock_describe_rates { + __le32 id; + __le32 rate_index; +}; -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 scmi_msg_resp_clock_describe_rates { + __le32 num_rates_flags; + struct { + __le32 value_low; + __le32 value_high; + } rate[0]; }; -struct esdhc_soc_data { - u32 flags; +struct scmi_clock_set_rate { + __le32 flags; + __le32 id; + __le32 value_low; + __le32 value_high; }; -enum wp_types { - ESDHC_WP_NONE = 0, - ESDHC_WP_CONTROLLER = 1, - ESDHC_WP_GPIO = 2, +struct scmi_msg_resp_set_rate_complete { + __le32 id; + __le32 rate_low; + __le32 rate_high; }; -enum cd_types { - ESDHC_CD_NONE = 0, - ESDHC_CD_CONTROLLER = 1, - ESDHC_CD_GPIO = 2, - ESDHC_CD_PERMANENT = 3, +struct scmi_msg_clock_set_parent { + __le32 id; + __le32 parent_id; }; -struct esdhc_platform_data { - enum wp_types wp_type; - enum cd_types cd_type; - int max_bus_width; - unsigned int delay_line; - unsigned int tuning_step; - unsigned int tuning_start_tap; - unsigned int strobe_dll_delay_target; +struct scmi_clock_rate_notify_payld { + __le32 agent_id; + __le32 clock_id; + __le32 rate_low; + __le32 rate_high; }; -struct pltfm_imx_data { - u32 scratchpad; - struct pinctrl *pinctrl; - struct pinctrl_state *pins_100mhz; - struct pinctrl_state *pins_200mhz; - const struct esdhc_soc_data *socdata; - struct esdhc_platform_data boarddata; - struct clk *clk_ipg; - struct clk *clk_ahb; - struct clk *clk_per; - unsigned int actual_clock; - unsigned int init_card_type; - enum { - NO_CMD_PENDING = 0, - MULTIBLK_IN_PROCESS = 1, - WAIT_FOR_INT = 2, - } multiblock_status; - u32 is_ddr; - struct pm_qos_request pm_qos_req; +struct scmi_clock_rate_notif_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int clock_id; + unsigned long long rate; }; -struct efi_system_resource_table { - u32 fw_resource_count; - u32 fw_resource_count_max; - u64 fw_resource_version; - u8 entries[0]; +struct scmi_mailbox { + struct mbox_client cl; + struct mbox_chan *chan; + struct mbox_chan *chan_receiver; + struct scmi_chan_info *cinfo; + struct scmi_shared_mem *shmem; }; -struct esre_entry; +struct cper_mem_err_compact { + u64 validation_bits; + u16 node; + u16 card; + u16 module; + u16 bank; + u16 device; + u16 row; + u16 column; + u16 bit_pos; + u64 requestor_id; + u64 responder_id; + u64 target_id; + u16 rank; + u16 mem_array_handle; + u16 mem_dev_handle; + u8 extended; +} __attribute__((packed)); -struct esre_attribute { - struct attribute attr; - ssize_t (*show)(struct esre_entry *, char *); - ssize_t (*store)(struct esre_entry *, const char *, size_t); +struct cper_sec_proc_generic { + u64 validation_bits; + u8 proc_type; + u8 proc_isa; + u8 proc_error_type; + u8 operation; + u8 flags; + u8 level; + u16 reserved; + u64 cpu_version; + char cpu_brand[128]; + u64 proc_id; + u64 target_addr; + u64 requestor_id; + u64 responder_id; + u64 ip; }; -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 cper_sec_fw_err_rec_ref { + u8 record_type; + u8 revision; + u8 reserved[6]; + u64 record_identifier; + guid_t record_identifier_guid; }; -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 font_desc { + int idx; + const char *name; + unsigned int width; + unsigned int height; + unsigned int charcount; + const void *data; + int pref; }; -struct a4tech_sc { - unsigned long quirks; - unsigned int hw_wheel; - __s32 delayed_value; +struct sp804_clkevt { + void *base; + void *load; + void *load_h; + void *value; + void *value_h; + void *ctrl; + void *intclr; + void *ris; + void *mis; + void *bgload; + void *bgload_h; + unsigned long reload; + int width; }; -struct ec_params_reboot_ec { - uint8_t cmd; - uint8_t flags; +struct sp804_timer { + int load; + int load_h; + int value; + int value_h; + int ctrl; + int intclr; + int ris; + int mis; + int bgload; + int bgload_h; + int timer_base[2]; + int width; }; -struct ec_response_get_version { - char version_string_ro[32]; - char version_string_rw[32]; - char reserved[32]; - uint32_t current_image; -}; +struct ec_host_request_i2c { + uint8_t command_protocol; + struct ec_host_request ec_request; +} __attribute__((packed)); -struct ec_response_get_chip_info { - char vendor[32]; - char name[32]; - char revision[32]; +struct ec_host_response { + uint8_t struct_version; + uint8_t checksum; + uint16_t result; + uint16_t data_len; + uint16_t reserved; }; -struct ec_response_board_version { - uint16_t board_version; +struct ec_host_response_i2c { + uint8_t result; + uint8_t packet_length; + struct ec_host_response ec_response; }; -struct ec_response_flash_info { - uint32_t flash_size; - uint32_t write_block_size; - uint32_t erase_block_size; - uint32_t protect_block_size; -}; +typedef int (*rproc_handle_resource_t)(struct rproc *, void *, int, int); -struct cpuinfo_32bit { - u32 reg_id_dfr0; - u32 reg_id_dfr1; - u32 reg_id_isar0; - u32 reg_id_isar1; - u32 reg_id_isar2; - u32 reg_id_isar3; - u32 reg_id_isar4; - u32 reg_id_isar5; - u32 reg_id_isar6; - u32 reg_id_mmfr0; - u32 reg_id_mmfr1; - u32 reg_id_mmfr2; - u32 reg_id_mmfr3; - u32 reg_id_mmfr4; - u32 reg_id_mmfr5; - u32 reg_id_pfr0; - u32 reg_id_pfr1; - u32 reg_id_pfr2; - u32 reg_mvfr0; - u32 reg_mvfr1; - u32 reg_mvfr2; +enum rproc_features { + RPROC_FEAT_ATTACH_ON_RECOVERY = 0, + RPROC_MAX_FEATURES = 1, }; -struct cpuinfo_arm64 { - struct cpu cpu; - struct kobject kobj; - u64 reg_ctr; - u64 reg_cntfrq; - u64 reg_dczid; - u64 reg_midr; - u64 reg_revidr; - u64 reg_gmid; - u64 reg_smidr; - u64 reg_id_aa64dfr0; - u64 reg_id_aa64dfr1; - u64 reg_id_aa64isar0; - u64 reg_id_aa64isar1; - u64 reg_id_aa64isar2; - u64 reg_id_aa64mmfr0; - u64 reg_id_aa64mmfr1; - u64 reg_id_aa64mmfr2; - u64 reg_id_aa64mmfr3; - u64 reg_id_aa64pfr0; - u64 reg_id_aa64pfr1; - u64 reg_id_aa64zfr0; - u64 reg_id_aa64smfr0; - struct cpuinfo_32bit aarch32; - u64 reg_zcr; - u64 reg_smcr; +enum rsc_handling_status { + RSC_HANDLED = 0, + RSC_IGNORED = 1, }; struct optee_supp_req { @@ -143316,230 +142819,204 @@ struct snd_jack_kctl { bool sw_inject_enable; }; -struct csum_state { - __wsum csum; - size_t off; -}; - -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 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 debug_reply_data { - struct ethnl_reply_data base; - u32 msg_mask; +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; }; -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; +struct nf_loginfo { + u_int8_t type; union { struct { - atomic_t rid; - }; - struct callback_head rcu; - }; - __u32 dtime; - refcount_t refcnt; + 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 mmpin { - struct user_struct *user; - unsigned int num_pg; +struct nf_log_buf { + unsigned int count; + char buf[1020]; }; -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 fib_prop { + int error; + u8 scope; }; -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 fib_nh_notifier_info { + struct fib_notifier_info info; + struct fib_nh *fib_nh; }; -struct ip_fraglist_iter { - struct sk_buff *frag; - struct iphdr *iph; - int offset; - unsigned int hlen; +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; }; -enum devlink_health_reporter_state { - DEVLINK_HEALTH_REPORTER_STATE_HEALTHY = 0, - DEVLINK_HEALTH_REPORTER_STATE_ERROR = 1, +struct rtvia { + __kernel_sa_family_t rtvia_family; + __u8 rtvia_addr[0]; }; -struct devlink_health_reporter_ops; - -struct devlink_fmsg; - -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 rpc_cb_add_xprt_calldata { + struct rpc_xprt_switch *xps; + struct rpc_xprt *xprt; }; -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 connect_timeout_data { + unsigned long connect_timeout; + unsigned long reconnect_timeout; }; -struct devlink_fmsg { - struct list_head item_list; - bool putting_binary; +struct reg_mask_range { + __u64 addr; + __u32 range; + __u32 reserved[13]; }; -struct devlink_fmsg_item { - struct list_head list; - int attrtype; - u8 nla_type; - u16 len; - int value[0]; +struct kvm_pgtable_walk_data { + struct kvm_pgtable_walker *walker; + const u64 start; + u64 addr; + const u64 end; }; -struct xdp_rxtx_ring { - struct xdp_ring ptrs; - struct xdp_desc desc[0]; +struct hyp_map_data { + const u64 phys; + kvm_pte_t attr; }; -enum { - XDP_DIAG_NONE = 0, - XDP_DIAG_INFO = 1, - XDP_DIAG_UID = 2, - XDP_DIAG_RX_RING = 3, - XDP_DIAG_TX_RING = 4, - XDP_DIAG_UMEM = 5, - XDP_DIAG_UMEM_FILL_RING = 6, - XDP_DIAG_UMEM_COMPLETION_RING = 7, - XDP_DIAG_MEMINFO = 8, - XDP_DIAG_STATS = 9, - __XDP_DIAG_MAX = 10, +struct stage2_map_data { + const u64 phys; + kvm_pte_t attr; + u8 owner_id; + kvm_pte_t *anchor; + kvm_pte_t *childp; + struct kvm_s2_mmu___2 *mmu; + void *memcache; + bool force_pte; }; -struct xdp_diag_req { - __u8 sdiag_family; - __u8 sdiag_protocol; - __u16 pad; - __u32 xdiag_ino; - __u32 xdiag_show; - __u32 xdiag_cookie[2]; +struct leaf_walk_data { + kvm_pte_t pte; + u32 level; }; -struct xdp_diag_msg { - __u8 xdiag_family; - __u8 xdiag_type; - __u16 pad; - __u32 xdiag_ino; - __u32 xdiag_cookie[2]; +struct stage2_attr_data { + kvm_pte_t attr_set; + kvm_pte_t attr_clr; + kvm_pte_t pte; + u32 level; }; -struct xdp_diag_info { - __u32 ifindex; - __u32 queue_id; +struct stage2_age_data { + bool mkold; + bool young; }; -struct xdp_diag_ring { - __u32 entries; +struct ipi_mux_cpu { + atomic_t enable; + atomic_t bits; }; -struct xdp_diag_umem { - __u64 size; - __u32 id; - __u32 num_pages; - __u32 chunk_size; - __u32 headroom; - __u32 ifindex; - __u32 queue_id; - __u32 flags; - __u32 refs; +struct stacktrace_cookie { + unsigned long *store; + unsigned int size; + unsigned int skip; + unsigned int len; }; -struct xdp_diag_stats { - __u64 n_rx_dropped; - __u64 n_rx_invalid; - __u64 n_rx_full; - __u64 n_fill_ring_empty; - __u64 n_tx_invalid; - __u64 n_tx_ring_empty; +struct __kernel_itimerspec { + struct __kernel_timespec it_interval; + struct __kernel_timespec it_value; }; -struct sys64_hook { - unsigned long esr_mask; - unsigned long esr_val; - void (*handler)(unsigned long, struct pt_regs *); +struct old_itimerspec32 { + struct old_timespec32 it_interval; + struct old_timespec32 it_value; }; -enum bug_trap_type { - BUG_TRAP_TYPE_NONE = 0, - BUG_TRAP_TYPE_WARN = 1, - BUG_TRAP_TYPE_BUG = 2, +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: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct boot_triggers { - const char *event; - char *trigger; +typedef struct sigevent sigevent_t; + +struct fgraph_ret_regs { + unsigned long regs[8]; + unsigned long fp; + unsigned long __unused; }; -enum { - FORMAT_HEADER = 1, - FORMAT_FIELD_SEPERATOR = 2, - FORMAT_PRINTFMT = 3, +struct btf_anon_stack { + u32 tid; + u32 offset; }; -struct module_string { - struct list_head next; - struct module *module; - char *str; +struct bpf_iter__bpf_link { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_link *link; + }; }; -struct event_probe_data { - struct trace_event_file *file; - unsigned long count; - int ref; - bool enable; +struct bpf_iter_seq_link_info { + u32 link_id; }; struct bpf_cpu_map_entry; @@ -143559,21 +143036,16 @@ struct bpf_cpumap_val { } 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 completion kthread_running; + struct rcu_work free_work; }; struct bpf_cpu_map { @@ -143588,22704 +143060,23736 @@ struct bpf_cpu_map { long: 64; }; -typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *); +struct xdp_cpumap_stats { + unsigned int redirect; + unsigned int pass; + unsigned int drop; +}; -typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *); +enum { + FOLL_TOUCH = 65536, + FOLL_TRIED = 131072, + FOLL_REMOTE = 262144, + FOLL_PIN = 524288, + FOLL_FAST_ONLY = 1048576, + FOLL_UNLOCKABLE = 2097152, +}; -struct lru_rotate { - local_lock_t lock; - struct folio_batch fbatch; +struct follow_page_context { + struct dev_pagemap *pgmap; + unsigned int page_mask; }; -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 slub_flush_work { + struct work_struct work; + struct kmem_cache *s; + bool skip; }; -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 slab_attribute { + struct attribute attr; + ssize_t (*show)(struct kmem_cache *, char *); + ssize_t (*store)(struct kmem_cache *, const char *, size_t); }; -struct trace_event_raw_mm_lru_activate { - struct trace_entry ent; - struct folio *folio; - unsigned long pfn; - char __data[0]; +struct saved_alias { + struct kmem_cache *s; + const char *name; + struct saved_alias *next; }; -typedef void (*move_fn_t)(struct lruvec *, struct folio *); +enum track_item { + TRACK_ALLOC = 0, + TRACK_FREE = 1, +}; -struct trace_event_data_offsets_mm_lru_insertion {}; +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, +}; -struct trace_event_data_offsets_mm_lru_activate {}; +enum slab_modes { + M_NONE = 0, + M_PARTIAL = 1, + M_FREE = 2, + M_FULL_NOLIST = 3, +}; -struct swap_iocb { - struct kiocb iocb; - struct bio_vec bvec[32]; - int pages; - int len; +enum slab_stat_type { + SL_ALL = 0, + SL_PARTIAL = 1, + SL_CPU = 2, + SL_OBJECTS = 3, + SL_TOTAL = 4, }; -struct char_device_struct { - struct char_device_struct *next; - unsigned int major; - unsigned int baseminor; - int minorct; - char name[64]; - struct cdev *cdev; +typedef struct { + unsigned long v; +} freeptr_t; + +typedef u32 depot_stack_handle_t; + +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[4]; + nodemask_t nodes; }; -typedef struct kobject *kobj_probe_t(dev_t, int *, void *); +struct track { + unsigned long addr; + depot_stack_handle_t handle; + int cpu; + int pid; + unsigned long when; +}; -struct old_utimbuf32 { - old_time32_t actime; - old_time32_t modtime; +typedef freelist_full_t pcp_op_T__; + +union __u128_halves { + u128 full; + struct { + u64 low; + u64 high; + }; }; -struct ext4_orphan_block_tail { - __le32 ob_magic; - __le32 ob_checksum; +struct detached_freelist { + struct slab *slab; + void *tail; + void *freelist; + int cnt; + struct kmem_cache *s; }; -struct ahash_alg { - int (*init)(struct ahash_request *); - int (*update)(struct ahash_request *); - int (*final)(struct ahash_request *); - int (*finup)(struct ahash_request *); - int (*digest)(struct ahash_request *); - int (*export)(struct ahash_request *, void *); - int (*import)(struct ahash_request *, const void *); - int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int); - int (*init_tfm)(struct crypto_ahash *); - void (*exit_tfm)(struct crypto_ahash *); - int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *); - struct hash_alg_common halg; +struct partial_context { + struct slab **slab; + gfp_t flags; + unsigned int orig_size; }; -struct ahash_instance { - void (*free)(struct ahash_instance *); - union { - struct { - char head[96]; - struct crypto_instance base; - } s; - struct ahash_alg alg; - }; +struct loc_track { + unsigned long max; + unsigned long count; + struct location *loc; + loff_t idx; }; -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; +typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *); + +typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *); + +typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_inode_foreign_history)(void *, struct inode *, struct writeback_control *, unsigned int); + +typedef void (*btf_trace_inode_switch_wbs)(void *, struct inode *, struct bdi_writeback *, struct bdi_writeback *); + +typedef void (*btf_trace_track_foreign_dirty)(void *, struct folio *, struct bdi_writeback *); + +typedef void (*btf_trace_flush_foreign)(void *, struct bdi_writeback *, unsigned int, unsigned int); + +typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *); + +struct wb_writeback_work; + +typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +struct wb_writeback_work { + long nr_pages; + struct super_block *sb; + enum writeback_sync_modes sync_mode; + unsigned int tagged_writepages: 1; + unsigned int for_kupdate: 1; + unsigned int range_cyclic: 1; + unsigned int for_background: 1; + unsigned int for_sync: 1; + unsigned int auto_free: 1; + enum wb_reason reason; + struct list_head list; + struct wb_completion *done; }; -struct crypto_ahash_spawn { - struct crypto_spawn base; +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 *); + +enum wb_state { + WB_registered = 0, + WB_writeback_running = 1, + WB_has_dirty_io = 2, + WB_start_all = 3, }; -struct crypto_report_hash { - char type[64]; - unsigned int blocksize; - unsigned int digestsize; +struct trace_event_raw_writeback_folio_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + unsigned long index; + char __data[0]; }; -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 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]; }; -enum { - ICQ_EXITED = 4, - ICQ_DESTROYED = 8, +struct trace_event_raw_inode_foreign_history { + struct trace_entry ent; + char name[32]; + ino_t ino; + ino_t cgroup_ino; + unsigned int history; + char __data[0]; }; -struct io_rsrc_update { - struct file *file; - u64 arg; - u32 nr_args; - u32 offset; +struct trace_event_raw_inode_switch_wbs { + struct trace_entry ent; + char name[32]; + ino_t ino; + ino_t old_cgroup_ino; + ino_t new_cgroup_ino; + char __data[0]; }; -struct io_uring_rsrc_update2 { - __u32 offset; - __u32 resv; - __u64 data; - __u64 tags; - __u32 nr; - __u32 resv2; +struct trace_event_raw_track_foreign_dirty { + struct trace_entry ent; + char name[32]; + u64 bdi_id; + ino_t ino; + unsigned int memcg_id; + ino_t cgroup_ino; + ino_t page_cgroup_ino; + char __data[0]; }; -struct io_uring_rsrc_register { - __u32 nr; - __u32 flags; - __u64 resv2; - __u64 data; - __u64 tags; +struct trace_event_raw_flush_foreign { + struct trace_entry ent; + char name[32]; + ino_t cgroup_ino; + unsigned int frn_bdi_id; + unsigned int frn_memcg_id; + char __data[0]; }; -struct mvebu_icu_subset_data { - unsigned int icu_group; - unsigned int offset_set_ah; - unsigned int offset_set_al; - unsigned int offset_clr_ah; - unsigned int offset_clr_al; +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 mvebu_icu { - void *base; - struct device *dev; +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 mvebu_icu_msi_data { - struct mvebu_icu *icu; - atomic_t initialized; - const struct mvebu_icu_subset_data *subset_data; +struct trace_event_raw_writeback_pages_written { + struct trace_entry ent; + long pages; + char __data[0]; }; -struct mvebu_icu_irq_data { - struct mvebu_icu *icu; - unsigned int icu_group; - unsigned int type; +struct trace_event_raw_writeback_class { + struct trace_entry ent; + char name[32]; + ino_t cgroup_ino; + char __data[0]; }; -struct simple_pm_bus { - struct clk_bulk_data *clks; - int num_clks; +struct trace_event_raw_writeback_bdi_register { + struct trace_entry ent; + char name[32]; + char __data[0]; }; -struct rockchip_emmc_phy { - unsigned int reg_offset; - struct regmap *reg_base; - struct clk *emmcclk; - unsigned int drive_impedance; - unsigned int enable_strobe_pulldown; - unsigned int output_tapdelay_select; +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 bcm4908_pinctrl_pin_setup; +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 bcm4908_pinctrl_grp { - const char *name; - const struct bcm4908_pinctrl_pin_setup *pins; - const unsigned int num_pins; +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 bcm4908_pinctrl_pin_setup { - unsigned int number; - unsigned int function; +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 bcm4908_pinctrl_function { - const char *name; - const char * const *groups; - const unsigned int num_groups; +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 bcm4908_pinctrl { - struct device *dev; - void *base; - struct mutex mutex; - struct pinctrl_dev *pctldev; - struct pinctrl_desc pctldesc; +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]; }; -enum ioctrl_regs___4 { - POC0___2 = 0, - POC1___2 = 1, - POC3___2 = 2, - TD0SEL1 = 3, +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]; }; -typedef struct irq_chip * (*gpio_get_irq_chip_cb_t)(unsigned int); +struct trace_event_raw_writeback_inode_template { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long state; + __u16 mode; + unsigned long dirtied_when; + char __data[0]; +}; + +struct inode_switch_wbs_context { + struct rcu_work work; + struct bdi_writeback *new_wb; + struct inode *inodes[0]; +}; + +struct trace_event_data_offsets_writeback_folio_template {}; + +struct trace_event_data_offsets_writeback_dirty_inode_template {}; + +struct trace_event_data_offsets_inode_foreign_history {}; + +struct trace_event_data_offsets_inode_switch_wbs {}; + +struct trace_event_data_offsets_track_foreign_dirty {}; + +struct trace_event_data_offsets_flush_foreign {}; + +struct trace_event_data_offsets_writeback_write_inode_template {}; + +struct trace_event_data_offsets_writeback_work_class {}; + +struct trace_event_data_offsets_writeback_pages_written {}; + +struct trace_event_data_offsets_writeback_class {}; + +struct trace_event_data_offsets_writeback_bdi_register {}; + +struct trace_event_data_offsets_wbc_class {}; + +struct trace_event_data_offsets_writeback_queue_io {}; + +struct trace_event_data_offsets_global_dirty_state {}; + +struct trace_event_data_offsets_bdi_dirty_ratelimit {}; + +struct trace_event_data_offsets_balance_dirty_pages {}; + +struct trace_event_data_offsets_writeback_sb_inodes_requeue {}; + +struct trace_event_data_offsets_writeback_single_inode_template {}; + +struct trace_event_data_offsets_writeback_inode_template {}; -struct davinci_gpio_regs { - u32 dir; - u32 out_data; - u32 set_data; - u32 clr_data; - u32 in_data; - u32 set_rising; - u32 clr_rising; - u32 set_falling; - u32 clr_falling; - u32 intstat; +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 davinci_gpio_controller { - struct gpio_chip chip; - struct irq_domain *irq_domain; +struct scomp_scratch { spinlock_t lock; - void *regs[5]; - int gpio_unbanked; - int irqs[32]; - struct davinci_gpio_regs context[5]; - u32 binten_context; + void *src; + void *dst; }; -struct davinci_gpio_irq_data { - void *regs; - struct davinci_gpio_controller *chip; - int bank_num; -}; +struct acomp_req; -struct davinci_gpio_platform_data { - bool no_auto_base; - u32 base; - u32 ngpio; - u32 gpio_unbanked; +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; }; -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; +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]; }; -enum pcie_reset_state { - pcie_deassert_reset = 1, - pcie_warm_reset = 2, - pcie_hot_reset = 3, +struct comp_alg_common { + struct crypto_alg base; }; -struct pci_pme_device { - struct list_head list; - struct pci_dev *dev; -}; +struct crypto_scomp; -struct pci_saved_state { - u32 config_space[16]; - struct pci_cap_saved_data cap[0]; +struct scomp_alg { + void * (*alloc_ctx)(struct crypto_scomp *); + void (*free_ctx)(struct crypto_scomp *, void *); + int (*compress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); + int (*decompress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; }; -struct 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 crypto_scomp { + struct crypto_tfm base; }; -struct histb_pcie { - struct dw_pcie *pci; - struct clk *aux_clk; - struct clk *pipe_clk; - struct clk *sys_clk; - struct clk *bus_clk; - struct phy *phy; - struct reset_control *soft_reset; - struct reset_control *sys_reset; - struct reset_control *bus_reset; - void *ctrl; - struct gpio_desc *reset_gpio; - struct regulator *vpcie; +struct crypto_report_comp { + char type[64]; }; -struct acpi_device_bus_id { - const char *bus_id; - struct ida instance_ida; - struct list_head node; +struct bdev_inode { + struct block_device bdev; + struct inode vfs_inode; }; -struct acpi_dep_data { - struct list_head node; - acpi_handle supplier; - acpi_handle consumer; - bool honor_dep; - bool met; - bool free_when_met; +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 acpi_scan_clear_dep_work { - struct work_struct work; - struct acpi_device *adev; +typedef uint64_t vli_type; + +struct xz_dec_hash { + vli_type unpadded; + vli_type uncompressed; + uint32_t crc32; }; -struct acpi_handle_list { - u32 count; - acpi_handle handles[10]; +enum xz_check { + XZ_CHECK_NONE = 0, + XZ_CHECK_CRC32 = 1, + XZ_CHECK_CRC64 = 4, + XZ_CHECK_SHA256 = 10, }; -struct acpi_table_stao { - struct acpi_table_header header; - u8 ignore_uart; -} __attribute__((packed)); +struct xz_dec_bcj; -struct acpi_thermal_critical { - unsigned long temperature; - bool valid; +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; }; -struct acpi_thermal_hot { - unsigned long temperature; - bool valid; +enum dim_tune_state { + DIM_PARKING_ON_TOP = 0, + DIM_PARKING_TIRED = 1, + DIM_GOING_RIGHT = 2, + DIM_GOING_LEFT = 3, }; -struct acpi_thermal_passive { - struct acpi_handle_list devices; - unsigned long temperature; - unsigned long tc1; - unsigned long tc2; - unsigned long tsp; - bool valid; +enum dim_stats_state { + DIM_STATS_WORSE = 0, + DIM_STATS_SAME = 1, + DIM_STATS_BETTER = 2, }; -struct acpi_thermal_active { - struct acpi_handle_list devices; - unsigned long temperature; - bool valid; - bool enabled; +enum dim_step_result { + DIM_STEPPED = 0, + DIM_TOO_TIRED = 1, + DIM_ON_EDGE = 2, }; -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]; +enum { + IRQ_POLL_F_SCHED = 0, + IRQ_POLL_F_DISABLE = 1, }; -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_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 aic_info { + int version; + u32 event; + u32 target_cpu; + u32 irq_cfg; + u32 sw_set; + u32 sw_clr; + u32 mask_set; + u32 mask_clr; + u32 die_stride; + bool fast_ipi; }; -struct owl_divider { - struct owl_divider_hw div_hw; - struct owl_clk_common common; +struct aic_irq_chip { + void *base; + void *event; + struct irq_domain *hw_domain; + struct { + cpumask_t aff; + } *fiq_aff[7]; + int nr_irq; + int max_irq; + int nr_die; + int max_die; + struct aic_info info; }; -struct owl_factor { - struct owl_factor_hw factor_hw; - struct owl_clk_common common; +enum fiq_hwirq { + AIC_TMR_EL0_PHYS = 0, + AIC_TMR_EL0_VIRT = 1, + AIC_TMR_EL02_PHYS = 2, + AIC_TMR_EL02_VIRT = 3, + AIC_CPU_PMU_Effi = 4, + AIC_CPU_PMU_Perf = 5, + AIC_VGIC_MI = 6, + AIC_NR_FIQ = 7, }; -struct owl_reset { - struct reset_controller_dev rcdev; - const struct owl_reset_map *reset_map; - struct regmap *regmap; +struct hi6220_priv { + struct regmap *reg; + struct device *dev; }; -struct mtk_clk_cpumux { - struct clk_hw hw; - struct regmap *regmap; - u32 reg; - u32 mask; - u8 shift; -}; +struct uniphier_ahciphy_priv; -struct clk_rk3588_inits { - void (*inits)(struct device_node *); +struct uniphier_ahciphy_soc_data { + int (*init)(struct uniphier_ahciphy_priv *); + int (*power_on)(struct uniphier_ahciphy_priv *); + int (*power_off)(struct uniphier_ahciphy_priv *); + bool is_legacy; + bool is_ready_high; + bool is_phy_clk; }; -struct udma_oes_offsets { - u32 udma_rchan; - u32 bcdma_bchan_data; - u32 bcdma_bchan_ring; - u32 bcdma_tchan_data; - u32 bcdma_tchan_ring; - u32 bcdma_rchan_data; - u32 bcdma_rchan_ring; - u32 pktdma_tchan_flow; - u32 pktdma_rchan_flow; +struct uniphier_ahciphy_priv { + struct device *dev; + void *base; + struct clk *clk; + struct clk *clk_parent; + struct clk *clk_parent_gio; + struct reset_control *rst; + struct reset_control *rst_parent; + struct reset_control *rst_parent_gio; + struct reset_control *rst_pm; + struct reset_control *rst_tx; + struct reset_control *rst_rx; + const struct uniphier_ahciphy_soc_data *data; }; -struct udma_soc_data { - struct udma_oes_offsets oes; - u32 bcdma_trigger_event_offset; +struct bcm_plat_data { + const struct gpio_chip *gpio_chip; + const struct pinctrl_desc *pctl_desc; + const struct pinctrl_gpio_range *gpio_range; }; -enum k3_dma_type { - DMA_TYPE_UDMA = 0, - DMA_TYPE_BCDMA = 1, - DMA_TYPE_PKTDMA = 2, +enum bcm2835_fsel { + BCM2835_FSEL_COUNT = 8, + BCM2835_FSEL_MASK = 7, }; -struct udma_match_data { - enum k3_dma_type type; - u32 psil_base; - bool enable_memcpy_support; - u32 flags; - u32 statictr_z_mask; - u8 burst_size[3]; - struct udma_soc_data *soc_data; +struct bcm2835_pinctrl { + struct device *dev; + void *base; + int *wake_irq; + unsigned long enabled_irq_map[2]; + unsigned int irq_type[58]; + struct pinctrl_dev *pctl_dev; + struct gpio_chip gpio_chip; + struct pinctrl_desc pctl_desc; + struct pinctrl_gpio_range gpio_range; + raw_spinlock_t irq_lock[2]; + spinlock_t fsel_lock; }; -enum udma_chan_state { - UDMA_CHAN_IS_IDLE = 0, - UDMA_CHAN_IS_ACTIVE = 1, - UDMA_CHAN_IS_TERMINATING = 2, -}; +struct samsung_pin_ctrl; -enum udma_mmr { - MMR_GCFG = 0, - MMR_BCHANRT = 1, - MMR_RCHANRT = 2, - MMR_TCHANRT = 3, - MMR_LAST = 4, +struct samsung_pinctrl_of_match_data { + const struct samsung_pin_ctrl *ctrl; + unsigned int num_ctrl; }; -enum cppi5_tr_types { - CPPI5_TR_TYPE0 = 0, - CPPI5_TR_TYPE1 = 1, - CPPI5_TR_TYPE2 = 2, - CPPI5_TR_TYPE3 = 3, - CPPI5_TR_TYPE4 = 4, - CPPI5_TR_TYPE5 = 5, - CPPI5_TR_TYPE8 = 8, - CPPI5_TR_TYPE9 = 9, - CPPI5_TR_TYPE10 = 10, - CPPI5_TR_TYPE11 = 11, - CPPI5_TR_TYPE15 = 15, - CPPI5_TR_TYPE_MAX = 16, -}; +struct samsung_pin_bank_data; -enum cppi5_tr_event_size { - CPPI5_TR_EVENT_SIZE_COMPLETION = 0, - CPPI5_TR_EVENT_SIZE_ICNT1_DEC = 1, - CPPI5_TR_EVENT_SIZE_ICNT2_DEC = 2, - CPPI5_TR_EVENT_SIZE_ICNT3_DEC = 3, - CPPI5_TR_EVENT_SIZE_MAX = 4, -}; +struct samsung_retention_data; -enum cppi5_tr_trigger_type { - CPPI5_TR_TRIGGER_TYPE_ICNT1_DEC = 0, - CPPI5_TR_TRIGGER_TYPE_ICNT2_DEC = 1, - CPPI5_TR_TRIGGER_TYPE_ICNT3_DEC = 2, - CPPI5_TR_TRIGGER_TYPE_ALL = 3, - CPPI5_TR_TRIGGER_TYPE_MAX = 4, -}; +struct samsung_pinctrl_drv_data; -enum cppi5_tr_trigger { - CPPI5_TR_TRIGGER_NONE = 0, - CPPI5_TR_TRIGGER_GLOBAL0 = 1, - CPPI5_TR_TRIGGER_GLOBAL1 = 2, - CPPI5_TR_TRIGGER_LOCAL_EVENT = 3, - CPPI5_TR_TRIGGER_MAX = 4, +struct samsung_pin_ctrl { + const struct samsung_pin_bank_data *pin_banks; + unsigned int nr_banks; + unsigned int nr_ext_resources; + const struct samsung_retention_data *retention_data; + int (*eint_gpio_init)(struct samsung_pinctrl_drv_data *); + int (*eint_wkup_init)(struct samsung_pinctrl_drv_data *); + void (*suspend)(struct samsung_pinctrl_drv_data *); + void (*resume)(struct samsung_pinctrl_drv_data *); }; -enum udma_rm_range { - RM_RANGE_BCHAN = 0, - RM_RANGE_TCHAN = 1, - RM_RANGE_RCHAN = 2, - RM_RANGE_RFLOW = 3, - RM_RANGE_TFLOW = 4, - RM_RANGE_LAST = 5, +enum eint_type { + EINT_TYPE_NONE = 0, + EINT_TYPE_GPIO = 1, + EINT_TYPE_WKUP = 2, + EINT_TYPE_WKUP_MUX = 3, }; -struct udma_static_tr { - u8 elsize; - u16 elcnt; - u16 bstcnt; -}; +struct samsung_pin_bank_type; -struct udma_tx_drain { - struct delayed_work work; - ktime_t tstamp; - u32 residue; +struct samsung_pin_bank_data { + const struct samsung_pin_bank_type *type; + u32 pctl_offset; + u8 pctl_res_idx; + u8 nr_pins; + u8 eint_func; + enum eint_type eint_type; + u32 eint_mask; + u32 eint_offset; + const char *name; }; -struct udma_chan_config { - bool pkt_mode; - bool needs_epib; - u32 psd_size; - u32 metadata_size; - u32 hdesc_size; - bool notdpkt; - int remote_thread_id; - u32 atype; - u32 asel; - u32 src_thread; - u32 dst_thread; - enum psil_endpoint_type ep_type; - bool enable_acc32; - bool enable_burst; - enum udma_tp_level channel_tpl; - u32 tr_trigger_type; - unsigned long tx_flags; - int mapped_channel_id; - int default_flow_id; - enum dma_transfer_direction dir; +struct samsung_pin_bank_type { + u8 fld_width[6]; + u8 reg_offset[6]; }; -struct udma_dev; +struct samsung_retention_ctrl; -struct udma_desc; +struct samsung_retention_data { + const u32 *regs; + int nr_regs; + u32 value; + atomic_t *refcnt; + struct samsung_retention_ctrl * (*init)(struct samsung_pinctrl_drv_data *, const struct samsung_retention_data *); +}; -struct udma_tchan; +struct samsung_retention_ctrl { + const u32 *regs; + int nr_regs; + u32 value; + atomic_t *refcnt; + void *priv; + void (*enable)(struct samsung_pinctrl_drv_data *); + void (*disable)(struct samsung_pinctrl_drv_data *); +}; -struct udma_rchan; +struct samsung_pin_group; -struct udma_rflow; +struct samsung_pmx_func; -struct udma_chan { - struct virt_dma_chan vc; - struct dma_slave_config cfg; - struct udma_dev *ud; - struct device *dma_dev; - struct udma_desc *desc; - struct udma_desc *terminated_desc; - struct udma_static_tr static_tr; - char *name; - struct udma_tchan *bchan; - struct udma_tchan *tchan; - struct udma_rchan *rchan; - struct udma_rflow *rflow; - bool psil_paired; - int irq_num_ring; - int irq_num_udma; - bool cyclic; - bool paused; - enum udma_chan_state state; - struct completion teardown_completed; - struct udma_tx_drain tx_drain; - struct udma_chan_config config; - struct udma_chan_config backup_config; - bool use_dma_pool; - struct dma_pool *hdesc_pool; - u32 id; +struct samsung_pin_bank; + +struct samsung_pinctrl_drv_data { + struct list_head node; + void *virt_base; + struct device *dev; + int irq; + struct pinctrl_desc pctl; + struct pinctrl_dev *pctl_dev; + const struct samsung_pin_group *pin_groups; + unsigned int nr_groups; + const struct samsung_pmx_func *pmx_functions; + unsigned int nr_functions; + struct samsung_pin_bank *pin_banks; + unsigned int nr_banks; + unsigned int nr_pins; + struct samsung_retention_ctrl *retention_ctrl; + void (*suspend)(struct samsung_pinctrl_drv_data *); + void (*resume)(struct samsung_pinctrl_drv_data *); }; -struct udma_tpl { - u8 levels; - u32 start_idx[3]; +struct samsung_pin_group { + const char *name; + const unsigned int *pins; + u8 num_pins; + u8 func; }; -struct udma_tisci_rm { - const struct ti_sci_handle *tisci; - const struct ti_sci_rm_udmap_ops *tisci_udmap_ops; - u32 tisci_dev_id; - const struct ti_sci_rm_psil_ops *tisci_psil_ops; - u32 tisci_navss_dev_id; - struct ti_sci_resource *rm_ranges[5]; +struct samsung_pmx_func { + const char *name; + const char **groups; + u8 num_groups; + u32 val; }; -struct cppi5_tr_resp_t; +struct exynos_irq_chip; -struct udma_hwdesc { - size_t cppi5_desc_size; - void *cppi5_desc_vaddr; - dma_addr_t cppi5_desc_paddr; - void *tr_req_base; - struct cppi5_tr_resp_t *tr_resp_base; +struct samsung_pin_bank { + const struct samsung_pin_bank_type *type; + void *pctl_base; + u32 pctl_offset; + u8 nr_pins; + void *eint_base; + u8 eint_func; + enum eint_type eint_type; + u32 eint_mask; + u32 eint_offset; + const char *name; + u32 id; + u32 pin_base; + void *soc_priv; + struct fwnode_handle *fwnode; + struct samsung_pinctrl_drv_data *drvdata; + struct irq_domain *irq_domain; + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range grange; + struct exynos_irq_chip *irq_chip; + raw_spinlock_t slock; + u32 pm_save[7]; }; -struct udma_rx_flush { - struct udma_hwdesc hwdescs[2]; - size_t buffer_size; - void *buffer_vaddr; - dma_addr_t buffer_paddr; -}; +struct tegra_gpio_port; -struct udma_dev { - struct dma_device ddev; - struct device *dev; - void *mmrs[4]; - const struct udma_match_data *match_data; - const struct udma_soc_data *soc_data; - struct udma_tpl bchan_tpl; - struct udma_tpl tchan_tpl; - struct udma_tpl rchan_tpl; - size_t desc_align; - struct udma_tisci_rm tisci_rm; - struct k3_ringacc *ringacc; - struct work_struct purge_work; - struct list_head desc_to_purge; - spinlock_t lock; - struct udma_rx_flush rx_flush; - int bchan_cnt; - int tchan_cnt; - int echan_cnt; - int rchan_cnt; - int rflow_cnt; - int tflow_cnt; - unsigned long *bchan_map; - unsigned long *tchan_map; - unsigned long *rchan_map; - unsigned long *rflow_gp_map; - unsigned long *rflow_gp_map_allocated; - unsigned long *rflow_in_use; - unsigned long *tflow_map; - struct udma_tchan *bchans; - struct udma_tchan *tchans; - struct udma_rchan *rchans; - struct udma_rflow *rflows; - struct udma_chan *channels; - u32 psil_base; - u32 atype; - u32 asel; -}; +struct tegra186_pin_range; -struct cppi5_tr_resp_t { - u8 status; - u8 _reserved; - u8 cmd_id; - u8 flags; +struct tegra_gpio_soc { + const struct tegra_gpio_port *ports; + unsigned int num_ports; + const char *name; + unsigned int instance; + unsigned int num_irqs_per_bank; + const struct tegra186_pin_range *pin_ranges; + unsigned int num_pin_ranges; + const char *pinmux; + bool has_gte; + bool has_vm_support; }; -struct udma_tchan { - void *reg_rt; - int id; - struct k3_ring *t_ring; - struct k3_ring *tc_ring; - int tflow_id; +struct tegra_gpio_port { + const char *name; + unsigned int bank; + unsigned int port; + unsigned int pins; }; -struct udma_rchan { - void *reg_rt; - int id; +struct tegra186_pin_range { + unsigned int offset; + const char *group; }; -struct udma_rflow { - int id; - struct k3_ring *fd_ring; - struct k3_ring *r_ring; +struct tegra_gpio { + struct gpio_chip gpio; + unsigned int num_irq; + unsigned int *irq; + const struct tegra_gpio_soc *soc; + unsigned int num_irqs_per_bank; + unsigned int num_banks; + void *secure; + void *base; }; -struct udma_desc { - struct virt_dma_desc vd; - bool terminated; - enum dma_transfer_direction dir; - struct udma_static_tr static_tr; - u32 residue; - unsigned int sglen; - unsigned int desc_idx; - unsigned int tr_idx; - u32 metadata_size; - void *metadata; - unsigned int hwdesc_count; - struct udma_hwdesc hwdesc[0]; +struct rcar_pcie_endpoint { + struct rcar_pcie pcie; + phys_addr_t *ob_mapped_addr; + struct pci_epc_mem_window *ob_window; + u8 max_functions; + unsigned int bar_to_atu[6]; + unsigned long *ib_window_map; + u32 num_ib_windows; + u32 num_ob_windows; }; -struct cppi5_desc_hdr_t { - u32 pkt_info0; - u32 pkt_info1; - u32 pkt_info2; - u32 src_dst_tag; +struct rockchip_pcie___2 { + struct dw_pcie pci; + void *apb_base; + struct phy *phy; + struct clk_bulk_data *clks; + unsigned int clk_cnt; + struct reset_control *rst; + struct gpio_desc *rst_gpio; + struct regulator *vpcie3v3; + struct irq_domain *irq_domain; }; -struct cppi5_host_desc_t { - struct cppi5_desc_hdr_t hdr; - u64 next_desc; - u64 buf_ptr; - u32 buf_info1; - u32 org_buf_len; - u64 org_buf_ptr; - u32 epib[0]; +struct acpi_table_apmt { + struct acpi_table_header header; }; -typedef u32 cppi5_tr_flags_t; +struct acpi_apmt_node { + u16 length; + u8 flags; + u8 type; + u32 id; + u64 inst_primary; + u32 inst_secondary; + u64 base_address0; + u64 base_address1; + u32 ovflw_irq; + u32 reserved; + u32 ovflw_irq_flags; + u32 proc_affinity; + u32 impl_id; +} __attribute__((packed)); -struct cppi5_tr_type1_t { - cppi5_tr_flags_t flags; - u16 icnt0; - u16 icnt1; - u64 addr; - s32 dim1; - long: 64; +struct mtk_clk_mux { + struct clk_hw hw; + struct regmap *regmap; + const struct mtk_mux *data; + spinlock_t *lock; + bool reparent; }; -struct cppi5_tr_type15_t { - cppi5_tr_flags_t flags; - u16 icnt0; - u16 icnt1; - u64 addr; - s32 dim1; - u16 icnt2; - u16 icnt3; - s32 dim2; - s32 dim3; - u32 _reserved; - s32 ddim1; - u64 daddr; - s32 ddim2; - s32 ddim3; - u16 dicnt0; - u16 dicnt1; - u16 dicnt2; - u16 dicnt3; +struct meson_aoclk_reset_controller { + struct reset_controller_dev reset; + const struct meson_aoclk_data *data; + struct regmap *regmap; }; -struct k3_event_route_data { - void *priv; - int (*set_event)(void *, u32); +enum { + CP110_CLK_TYPE_CORE = 0, + CP110_CLK_TYPE_GATABLE = 1, }; -struct udma_filter_param { - int remote_thread_id; - u32 atype; - u32 asel; - u32 tr_trigger_type; +struct cp110_gate_clk { + struct clk_hw hw; + struct regmap *regmap; + u8 bit_idx; }; -struct sunxi_sram_func; +struct rockchip_muxgrf_clock { + struct clk_hw hw; + struct regmap *regmap; + u32 reg; + u32 shift; + u32 width; + int flags; +}; -struct sunxi_sram_data { - char *name; - u8 reg; - u8 offset; - u8 width; - struct sunxi_sram_func *func; - struct list_head list; +struct ccu_mux_nb { + struct notifier_block clk_nb; + struct ccu_common *common; + struct ccu_mux_internal *cm; + u32 delay_us; + u8 bypass_index; + u8 original_index; }; -struct sunxi_sram_desc { - struct sunxi_sram_data data; - bool claimed; +struct ccu_nk { + u16 reg; + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_mult_internal k; + unsigned int fixed_post_div; + struct ccu_common common; }; -struct sunxi_sram_func { - char *func; - u8 val; - u32 reg_val; +struct ccu_phase { + u8 shift; + u8 width; + struct ccu_common common; }; -struct sunxi_sramc_variant { - int num_emac_clocks; - bool has_ldo_ctrl; +struct geni_se_desc { + unsigned int num_clks; + const char * const *clks; }; -struct vcpu_runstate_info { - int state; - uint64_t state_entry_time; - uint64_t time[4]; +enum geni_se_xfer_mode { + GENI_SE_INVALID = 0, + GENI_SE_FIFO = 1, + GENI_SE_DMA = 2, + GENI_GPI_DMA = 3, }; -typedef struct { - union { - struct vcpu_runstate_info *p; - uint64_t q; - }; -} __guest_handle_vcpu_runstate_info; +enum geni_se_protocol_type { + GENI_SE_NONE = 0, + GENI_SE_SPI = 1, + GENI_SE_UART = 2, + GENI_SE_I2C = 3, + GENI_SE_I3C = 4, + GENI_SE_SPI_SLAVE = 5, +}; -struct vcpu_register_runstate_memory_area { - union { - __guest_handle_vcpu_runstate_info h; - struct vcpu_runstate_info *v; - uint64_t p; - } addr; +struct geni_icc_path { + struct icc_path *path; + unsigned int avg_bw; }; -struct privcmd_dm_op_buf; +struct geni_wrapper; -struct privcmd_dm_op { - domid_t dom; - __u16 num; - const struct privcmd_dm_op_buf __attribute__((btf_type_tag("user"))) *ubufs; +struct geni_se { + void *base; + struct device *dev; + struct geni_wrapper *wrapper; + struct clk *clk; + unsigned int num_clk_levels; + unsigned long *clk_perf_tbl; + struct geni_icc_path icc_paths[3]; }; -struct privcmd_dm_op_buf { - void __attribute__((btf_type_tag("user"))) *uptr; - size_t size; +struct geni_wrapper { + struct device *dev; + void *base; + struct clk_bulk_data clks[2]; + unsigned int num_clks; }; -struct privcmd_data { - domid_t domid; -}; +struct qcom_smp2p; -struct xen_dm_op_buf { - __guest_handle_void h; - xen_ulong_t size; +struct smp2p_entry { + struct list_head node; + struct qcom_smp2p *smp2p; + const char *name; + u32 *value; + u32 last_value; + struct irq_domain *domain; + unsigned long irq_enabled[1]; + unsigned long irq_rising[1]; + unsigned long irq_falling[1]; + struct qcom_smem_state *state; + spinlock_t lock; }; -struct privcmd_hypercall { - __u64 op; - __u64 arg[5]; +struct smp2p_smem_item; + +struct qcom_smp2p { + struct device *dev; + struct smp2p_smem_item *in; + struct smp2p_smem_item *out; + unsigned int smem_items[2]; + unsigned int valid_entries; + bool ssr_ack_enabled; + bool ssr_ack; + bool negotiation_done; + unsigned int local_pid; + unsigned int remote_pid; + struct regmap *ipc_regmap; + int ipc_offset; + int ipc_bit; + struct mbox_client mbox_client; + struct mbox_chan *mbox_chan; + struct list_head inbound; + struct list_head outbound; }; -struct privcmd_mmap_resource { - domid_t dom; - __u32 type; - __u32 id; - __u32 idx; - __u64 num; - __u64 addr; +struct smp2p_smem_item { + u32 magic; + u8 version; + unsigned int features: 24; + u16 local_pid; + u16 remote_pid; + u16 total_entries; + u16 valid_entries; + u32 flags; + struct { + u8 name[16]; + u32 value; + } entries[16]; }; -struct xen_mem_acquire_resource { - domid_t domid; - uint16_t type; - uint32_t id; - uint32_t nr_frames; - uint32_t flags; - uint64_t frame; - __guest_handle_xen_pfn_t frame_list; +struct tegra_core_opp_params { + bool init_state; }; -struct privcmd_mmap_entry; +struct bcm2835_power; -struct privcmd_mmap { - int num; - domid_t dom; - struct privcmd_mmap_entry __attribute__((btf_type_tag("user"))) *entry; +struct bcm2835_power_domain { + struct generic_pm_domain base; + struct bcm2835_power *power; + u32 domain; + struct clk *clk; }; -struct privcmd_mmap_entry { - __u64 va; - __u64 mfn; - __u64 npages; +struct bcm2835_power { + struct device *dev; + void *base; + void *asb; + void *rpivid_asb; + struct genpd_onecell_data pd_xlate; + struct bcm2835_power_domain domains[13]; + struct reset_controller_dev reset; }; -struct mmap_gfn_state { - unsigned long va; - struct vm_area_struct *vma; - domid_t domain; +struct pf8x00_regulator_data { + struct regulator_desc desc; + unsigned int suspend_enable_reg; + unsigned int suspend_enable_mask; + unsigned int suspend_voltage_reg; + unsigned int suspend_voltage_cache; }; -struct mmap_batch_state { - domid_t domain; - unsigned long va; - struct vm_area_struct *vma; - int index; - int global_error; - int version; - xen_pfn_t __attribute__((btf_type_tag("user"))) *user_gfn; - int __attribute__((btf_type_tag("user"))) *user_err; +enum pf8x00_devid { + PF8100 = 0, + PF8121A = 2, + PF8200 = 8, }; -struct privcmd_mmapbatch_v2 { - unsigned int num; - domid_t dom; - __u64 addr; - const xen_pfn_t __attribute__((btf_type_tag("user"))) *arr; - int __attribute__((btf_type_tag("user"))) *err; +enum pf8x00_regulators { + PF8X00_LDO1 = 0, + PF8X00_LDO2 = 1, + PF8X00_LDO3 = 2, + PF8X00_LDO4 = 3, + PF8X00_BUCK1 = 4, + PF8X00_BUCK2 = 5, + PF8X00_BUCK3 = 6, + PF8X00_BUCK4 = 7, + PF8X00_BUCK5 = 8, + PF8X00_BUCK6 = 9, + PF8X00_BUCK7 = 10, + PF8X00_VSNVS = 11, + PF8X00_MAX_REGULATORS = 12, }; -enum hi6220_reset_ctrl_type { - PERIPHERAL = 0, - MEDIA = 1, - AO = 2, +enum pf8x00_buck_states { + SW_CONFIG1 = 0, + SW_CONFIG2 = 1, + SW_PWRUP = 2, + SW_MODE1 = 3, + SW_RUN_VOLT = 4, + SW_STBY_VOLT = 5, }; -struct hi6220_reset_data { - struct reset_controller_dev rc_dev; - struct regmap *regmap; +enum swxilim_bits { + SWXILIM_2100_MA = 0, + SWXILIM_2600_MA = 1, + SWXILIM_3000_MA = 2, + SWXILIM_4500_MA = 3, }; -struct tegra_uart { - struct clk *clk; - struct reset_control *rst; - int line; +struct pf8x00_chip { + struct regmap *regmap; + struct device *dev; }; -struct histb_rng_priv { - struct hwrng rng; +struct brcm_rescal_reset { void *base; + struct device *dev; + struct reset_controller_dev rcdev; }; -struct probe; - -struct kobj_map { - struct probe *probes[255]; - struct mutex *lock; +struct uniphier8250_priv { + int line; + struct clk *clk; + spinlock_t atomic_write_lock; }; -struct probe { - struct probe *next; - dev_t dev; - unsigned long range; - struct module *owner; - kobj_probe_t *get; - int (*lock)(dev_t, void *); - void *data; +struct serport { + struct tty_port *port; + struct tty_struct *tty; + struct tty_driver *tty_drv; + int tty_idx; + unsigned long flags; }; -typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t); +struct mtk_rng { + void *base; + struct clk *clk; + struct hwrng rng; +}; -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 tpm_pcr_attr { + int alg_id; + int pcr; + struct device_attribute attr; }; -struct trace_event_data_offsets_devres { - u32 devname; +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, }; -struct dma_fence_array_cb { - struct dma_fence_cb cb; - struct dma_fence_array *array; +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, }; -struct ahci_mvebu_plat_data { - int (*plat_config)(struct ahci_host_priv *); - unsigned int flags; +enum tpm_capabilities { + TPM_CAP_FLAG = 4, + TPM_CAP_PROP = 5, + TPM_CAP_VERSION_1_1 = 6, + TPM_CAP_VERSION_1_2 = 26, }; -enum nand_ecc_legacy_mode { - NAND_ECC_INVALID = 0, - NAND_ECC_NONE = 1, - NAND_ECC_SOFT = 2, - NAND_ECC_SOFT_BCH = 3, - NAND_ECC_HW = 4, - NAND_ECC_HW_SYNDROME = 5, - NAND_ECC_ON_DIE = 6, +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 nand_op_parser_pattern_elem; +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 nand_subop; +struct stclear_flags_t { + __be16 tag; + u8 deactivated; + u8 disableForceClear; + u8 physicalPresence; + u8 physicalPresenceLock; + u8 bGlobalLock; +} __attribute__((packed)); -struct nand_op_parser_pattern { - const struct nand_op_parser_pattern_elem *elems; - unsigned int nelems; - int (*exec)(struct nand_chip *, const struct nand_subop *); +struct tpm1_version { + u8 major; + u8 minor; + u8 rev_major; + u8 rev_minor; }; -struct nand_op_parser_addr_constraints { - unsigned int maxcycles; +struct tpm1_version2 { + __be16 tag; + struct tpm1_version version; }; -struct nand_op_parser_data_constraints { - unsigned int maxlen; +struct timeout_t { + __be32 a; + __be32 b; + __be32 c; + __be32 d; }; -struct nand_op_parser_pattern_elem { - enum nand_op_instr_type type; - bool optional; - union { - struct nand_op_parser_addr_constraints addr; - struct nand_op_parser_data_constraints data; - } ctx; +struct duration_t { + __be32 tpm_short; + __be32 tpm_medium; + __be32 tpm_long; }; -struct nand_subop { - unsigned int cs; - const struct nand_op_instr *instrs; - unsigned int ninstrs; - unsigned int first_instr_start_off; - unsigned int last_instr_end_off; -}; +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 nand_op_parser_ctx { - const struct nand_op_instr *instrs; - unsigned int ninstrs; - struct nand_subop subop; +struct of_pci_iommu_alias_info { + struct device *dev; + struct device_node *np; }; -struct nand_ecc_sw_hamming_conf { - struct nand_ecc_req_tweak_ctx req_ctx; - unsigned int code_size; - u8 *calc_buf; - u8 *code_buf; - unsigned int sm_order; +struct soc_device { + struct device dev; + struct soc_device_attribute *attr; + int soc_dev_num; }; -struct nand_op_parser { - const struct nand_op_parser_pattern *patterns; - unsigned int npatterns; +enum mt6397_irq_numbers { + MT6397_IRQ_SPKL_AB = 0, + MT6397_IRQ_SPKR_AB = 1, + MT6397_IRQ_SPKL = 2, + MT6397_IRQ_SPKR = 3, + MT6397_IRQ_BAT_L = 4, + MT6397_IRQ_BAT_H = 5, + MT6397_IRQ_FG_BAT_L = 6, + MT6397_IRQ_FG_BAT_H = 7, + MT6397_IRQ_WATCHDOG = 8, + MT6397_IRQ_PWRKEY = 9, + MT6397_IRQ_THR_L = 10, + MT6397_IRQ_THR_H = 11, + MT6397_IRQ_VBATON_UNDET = 12, + MT6397_IRQ_BVALID_DET = 13, + MT6397_IRQ_CHRDET = 14, + MT6397_IRQ_OV = 15, + MT6397_IRQ_LDO = 16, + MT6397_IRQ_HOMEKEY = 17, + MT6397_IRQ_ACCDET = 18, + MT6397_IRQ_AUDIO = 19, + MT6397_IRQ_RTC = 20, + MT6397_IRQ_PWRKEY_RSTB = 21, + MT6397_IRQ_HDMI_SIFM = 22, + MT6397_IRQ_HDMI_CEC = 23, + MT6397_IRQ_VCA15 = 24, + MT6397_IRQ_VSRMCA15 = 25, + MT6397_IRQ_VCORE = 26, + MT6397_IRQ_VGPU = 27, + MT6397_IRQ_VIO18 = 28, + MT6397_IRQ_VPCA7 = 29, + MT6397_IRQ_VSRMCA7 = 30, + MT6397_IRQ_VDRM = 31, + MT6397_IRQ_NR = 32, }; -enum orion_spi_type { - ORION_SPI = 0, - ARMADA_SPI = 1, +enum scsi_ml_status { + SCSIML_STAT_OK = 0, + SCSIML_STAT_RESV_CONFLICT = 1, + SCSIML_STAT_NOSPC = 2, + SCSIML_STAT_MED_ERROR = 3, + SCSIML_STAT_TGT_FAILURE = 4, + SCSIML_STAT_DL_TIMEOUT = 5, }; -struct orion_spi_dev { - enum orion_spi_type typ; - unsigned long max_hz; - unsigned int min_divisor; - unsigned int max_divisor; - u32 prescale_mask; - bool is_errata_50mhz_ac; +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, }; -struct orion_direct_acc { - void *vaddr; - u32 size; +struct ata_task_resp { + u16 frame_len; + u8 ending_fis[24]; }; -struct orion_child_options { - struct orion_direct_acc direct_access; +enum sata_rcar_type { + RCAR_GEN1_SATA = 0, + RCAR_GEN2_SATA = 1, + RCAR_GEN3_SATA = 2, + RCAR_R8A7790_ES1_SATA = 3, }; -struct orion_spi { - struct spi_controller *master; +struct sata_rcar_priv { void *base; - struct clk *clk; - struct clk *axi_clk; - const struct orion_spi_dev *devdata; - struct device *dev; - struct orion_child_options child[8]; + u32 sataint_mask; + enum sata_rcar_type type; }; -struct xgbe_stats { - char stat_string[32]; - int stat_size; - int stat_offset; +struct lpspi_config { + u8 bpw; + u8 chip_select; + u8 prescale; + u16 mode; + u32 speed_hz; }; -enum hclge_comm_cmd_state { - HCLGE_COMM_STATE_CMD_DISABLE = 0, +struct fsl_lpspi_data { + struct device *dev; + void *base; + unsigned long base_phys; + struct clk *clk_ipg; + struct clk *clk_per; + bool is_target; + bool is_only_cs1; + bool is_first_byte; + void *rx_buf; + const void *tx_buf; + void (*tx)(struct fsl_lpspi_data *); + void (*rx)(struct fsl_lpspi_data *); + u32 remain; + u8 watermark; + u8 txfifosize; + u8 rxfifosize; + struct lpspi_config config; + struct completion xfer_done; + bool target_aborted; + bool usedma; + struct completion dma_rx_completion; + struct completion dma_tx_completion; }; -enum hclge_mdio_c22_op_seq { - HCLGE_MDIO_C22_WRITE = 1, - HCLGE_MDIO_C22_READ = 2, +struct unimac_mdio_priv { + struct mii_bus *mii_bus; + void *base; + int (*wait_func)(void *); + void *wait_func_data; + struct clk *clk; + u32 clk_freq; }; -struct hclge_phy_reg_cmd { - __le16 reg_addr; - u8 rsv0[2]; - __le16 reg_val; - u8 rsv1[18]; +struct unimac_mdio_pdata { + u32 phy_mask; + int (*wait_func)(void *); + void *wait_func_data; + const char *bus_name; }; -struct hclge_mdio_cfg_cmd { - u8 ctrl_bit; - u8 phyid; - u8 phyad; - u8 rsvd; - __le16 reserve; - __le16 data_wr; - __le16 data_rd; - __le16 sta; +enum xgene_phy_speed { + PHY_SPEED_10 = 0, + PHY_SPEED_100 = 1, + PHY_SPEED_1000 = 2, }; -enum mvpp2_prs_l2_cast { - MVPP2_PRS_L2_UNI_CAST = 0, - MVPP2_PRS_L2_MULTI_CAST = 1, -}; +struct tgec_mdio_controller; -enum mvpp2_tag_type { - MVPP2_TAG_TYPE_NONE = 0, - MVPP2_TAG_TYPE_MH = 1, - MVPP2_TAG_TYPE_DSA = 2, - MVPP2_TAG_TYPE_EDSA = 3, - MVPP2_TAG_TYPE_VLAN = 4, - MVPP2_TAG_TYPE_LAST = 5, +struct mdio_fsl_priv { + struct tgec_mdio_controller *mdio_base; + struct clk *enet_clk; + u32 mdc_freq; + bool is_little_endian; + bool has_a009885; + bool has_a011043; }; -enum mvpp2_prs_l3_cast { - MVPP2_PRS_L3_UNI_CAST = 0, - MVPP2_PRS_L3_MULTI_CAST = 1, - MVPP2_PRS_L3_BROAD_CAST = 2, +struct tgec_mdio_controller { + __be32 reserved[12]; + __be32 mdio_stat; + __be32 mdio_ctl; + __be32 mdio_data; + __be32 mdio_addr; }; -struct usb_cdc_union_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bMasterInterface0; - __u8 bSlaveInterface0; +enum qman_cb_dqrr_result { + qman_cb_dqrr_consume = 0, + qman_cb_dqrr_park = 1, + qman_cb_dqrr_defer = 2, + qman_cb_dqrr_stop = 3, + qman_cb_dqrr_consume_stop = 4, }; -struct usb_cdc_country_functional_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 iCountryCodeRelDate; - __le16 wCountyCode0; +enum qman_fq_state { + qman_fq_state_oos = 0, + qman_fq_state_parked = 1, + qman_fq_state_sched = 2, + qman_fq_state_retired = 3, }; -struct usb_cdc_header_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdCDC; -} __attribute__((packed)); +struct qman_portal; -struct usb_cdc_acm_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bmCapabilities; -}; +struct qman_cgr; -struct usb_cdc_ether_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 iMACAddress; - __le32 bmEthernetStatistics; - __le16 wMaxSegmentSize; - __le16 wNumberMCFilters; - __u8 bNumberPowerFilters; -} __attribute__((packed)); +typedef void (*qman_cb_cgr)(struct qman_portal *, struct qman_cgr *, int); -struct usb_cdc_call_mgmt_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bmCapabilities; - __u8 bDataInterface; +struct qman_cgr { + u32 cgrid; + qman_cb_cgr cb; + u16 chan; + struct list_head node; }; -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 dpaa_buffer_layout { + u16 priv_data_size; }; -struct usb_cdc_ncm_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdNcmVersion; - __u8 bmNetworkCapabilities; -} __attribute__((packed)); +struct dpaa_percpu_priv; -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 dpaa_bp; -struct usb_cdc_mbim_extended_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdMBIMExtendedVersion; - __u8 bMaxOutstandingCommandMessages; - __le16 wMTU; -} __attribute__((packed)); +struct qman_fq; -struct set_config_request { - struct usb_device *udev; - int config; - struct work_struct work; - struct list_head node; +struct dpaa_priv { + struct dpaa_percpu_priv __attribute__((btf_type_tag("percpu"))) *percpu_priv; + struct dpaa_bp *dpaa_bp; + u16 tx_headroom; + struct net_device *net_dev; + struct mac_device___2 *mac_dev; + struct device *rx_dma_dev; + struct device *tx_dma_dev; + struct qman_fq *egress_fqs[1024]; + struct qman_fq *conf_fqs[1024]; + u16 channel; + struct list_head dpaa_fq_list; + u8 num_tc; + bool keygen_in_use; + u32 msg_enable; + struct { + struct qman_cgr cgr; + u32 congestion_start_jiffies; + u32 congested_jiffies; + u32 cgr_congested_count; + } cgr_data; + bool use_ingress_cgr; + struct qman_cgr ingress_cgr; + struct dpaa_buffer_layout buf_layout[2]; + u16 rx_headroom; + bool tx_tstamp; + bool rx_tstamp; + struct bpf_prog *xdp_prog; }; -struct api_context { - struct completion done; - int status; +struct dpaa_napi_portal { + struct napi_struct napi; + struct qman_portal *p; + bool down; + int xdp_act; }; -struct usb_cdc_network_terminal_desc; +struct dpaa_rx_errors { + u64 dme; + u64 fpe; + u64 fse; + u64 phe; +}; -struct usb_cdc_obex_desc; +struct dpaa_ern_cnt { + u64 cg_tdrop; + u64 wred; + u64 err_cond; + u64 early_window; + u64 late_window; + u64 fq_tdrop; + u64 fq_retired; + u64 orp_zero; +}; -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 dpaa_percpu_priv { + struct net_device *net_dev; + struct dpaa_napi_portal np; + u64 in_interrupt; + u64 tx_confirm; + u64 tx_frag_skbuffs; + struct rtnl_link_stats64 stats; + struct dpaa_rx_errors rx_errors; + struct dpaa_ern_cnt ern_cnt; }; -struct usb_cdc_network_terminal_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bEntityId; - __u8 iName; - __u8 bChannelIndex; - __u8 bPhysicalInterface; +struct dpaa_bp { + struct dpaa_priv *priv; + int __attribute__((btf_type_tag("percpu"))) *percpu_count; + size_t raw_size; + size_t size; + u16 config_count; + u8 bpid; + struct bman_pool *pool; + int (*seed_cb)(struct dpaa_bp *); + void (*free_buf_cb)(const struct dpaa_bp *, struct bm_buffer *); + refcount_t refs; }; -struct usb_cdc_obex_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdVersion; -} __attribute__((packed)); +struct qm_dqrr_entry; -struct usb_ohci_pdata { - unsigned int big_endian_desc: 1; - unsigned int big_endian_mmio: 1; - unsigned int no_big_frame_no: 1; - unsigned int num_ports; - int (*power_on)(struct platform_device *); - void (*power_off)(struct platform_device *); - void (*power_suspend)(struct platform_device *); -}; +typedef enum qman_cb_dqrr_result (*qman_cb_dqrr)(struct qman_portal *, struct qman_fq *, const struct qm_dqrr_entry *, bool); -struct ohci_platform_priv { - struct clk *clks[4]; - struct reset_control *resets; +union qm_mr_entry; + +typedef void (*qman_cb_mr)(struct qman_portal *, struct qman_fq *, const union qm_mr_entry *); + +struct qman_fq_cb { + qman_cb_dqrr dqrr; + qman_cb_mr ern; + qman_cb_mr fqs; }; -struct ml_effect_state { - struct ff_effect *effect; +struct qman_fq { + struct qman_fq_cb cb; + u32 fqid; + u32 idx; unsigned long flags; - int count; - unsigned long play_at; - unsigned long stop_at; - unsigned long adj_at; + enum qman_fq_state state; + int cgr_groupid; }; -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 *); +struct qm_fd { + union { + struct { + u8 cfg8b_w1; + u8 bpid; + u8 cfg8b_w3; + u8 addr_hi; + __be32 addr_lo; + }; + __be64 data; + }; + __be32 cfg; + union { + __be32 cmd; + __be32 status; + }; }; -struct tegra_rtc_info { - struct platform_device *pdev; - struct rtc_device *rtc; - void *base; - struct clk *clk; - int irq; - spinlock_t lock; +struct qm_dqrr_entry { + u8 verb; + u8 stat; + __be16 seqnum; + u8 tok; + u8 __reserved2[3]; + __be32 fqid; + __be32 context_b; + struct qm_fd fd; + u8 __reserved4[32]; }; -struct i2c_spec_values___2 { - unsigned long min_hold_start_ns; - unsigned long min_low_ns; - unsigned long min_high_ns; - unsigned long min_setup_start_ns; - unsigned long max_data_hold_ns; - unsigned long min_data_setup_ns; - unsigned long min_setup_stop_ns; - unsigned long min_hold_buffer_ns; +union qm_mr_entry { + struct { + u8 verb; + u8 __reserved[63]; + }; + struct { + u8 verb; + u8 dca; + __be16 seqnum; + u8 rc; + u8 __reserved[3]; + __be32 fqid; + __be32 tag; + struct qm_fd fd; + u8 __reserved1[32]; + } ern; + struct { + u8 verb; + u8 fqs; + u8 __reserved1[6]; + __be32 fqid; + __be32 context_b; + u8 __reserved2[48]; + } fq; }; -struct rk3x_i2c_calced_timings; - -struct rk3x_i2c_soc_data { - int grf_offset; - int (*calc_timings)(unsigned long, struct i2c_timings *, struct rk3x_i2c_calced_timings *); +enum _dsm_op_index { + HNS_OP_RESET_FUNC = 1, + HNS_OP_SERDES_LP_FUNC = 2, + HNS_OP_LED_SET_FUNC = 3, + HNS_OP_GET_PORT_TYPE_FUNC = 4, + HNS_OP_GET_SFP_STAT_FUNC = 5, + HNS_OP_LOCATE_LED_SET_FUNC = 6, }; -struct rk3x_i2c_calced_timings { - unsigned long div_low; - unsigned long div_high; - unsigned int tuning; +enum _dsm_rst_type { + HNS_DSAF_RESET_FUNC = 1, + HNS_PPE_RESET_FUNC = 2, + HNS_XGE_RESET_FUNC = 4, + HNS_GE_RESET_FUNC = 5, + HNS_DSAF_CHN_RESET_FUNC = 6, + HNS_ROCE_RESET_FUNC = 7, }; -enum rk3x_i2c_state { - STATE_IDLE___4 = 0, - STATE_START___2 = 1, - STATE_READ___3 = 2, - STATE_WRITE___3 = 3, - STATE_STOP___2 = 4, +struct ich8_hsflctl { + u16 flcgo: 1; + u16 flcycle: 2; + u16 reserved: 5; + u16 fldbcount: 2; + u16 flockdn: 6; }; -enum { - REG_CON_MOD_TX = 0, - REG_CON_MOD_REGISTER_TX = 1, - REG_CON_MOD_RX = 2, - REG_CON_MOD_REGISTER_RX = 3, +union ich8_hws_flash_ctrl { + struct ich8_hsflctl hsf_ctrl; + u16 regval; }; -struct rk3x_i2c { - struct i2c_adapter adap; - struct device *dev; - const struct rk3x_i2c_soc_data *soc_data; - void *regs; - struct clk *clk; - struct clk *pclk; - struct notifier_block clk_rate_nb; - struct i2c_timings t; - spinlock_t lock; - wait_queue_head_t wait; - bool busy; - struct i2c_msg *msg; - u8 addr; - unsigned int mode; - bool is_last_msg; - enum rk3x_i2c_state state; - unsigned int processed; - int error; +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; }; -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 *); +union ich8_hws_flash_status { + struct ich8_hsfsts hsf_status; + u16 regval; +}; -enum hwmon_in_attributes { - hwmon_in_enable = 0, - hwmon_in_input = 1, - hwmon_in_min = 2, - hwmon_in_max = 3, - hwmon_in_lcrit = 4, - hwmon_in_crit = 5, - hwmon_in_average = 6, - hwmon_in_lowest = 7, - hwmon_in_highest = 8, - hwmon_in_reset_history = 9, - hwmon_in_label = 10, - hwmon_in_alarm = 11, - hwmon_in_min_alarm = 12, - hwmon_in_max_alarm = 13, - hwmon_in_lcrit_alarm = 14, - hwmon_in_crit_alarm = 15, - hwmon_in_rated_min = 16, - hwmon_in_rated_max = 17, - hwmon_in_beep = 18, +struct ich8_pr { + u32 base: 13; + u32 reserved1: 2; + u32 rpe: 1; + u32 limit: 13; + u32 reserved2: 2; + u32 wpe: 1; }; -enum hwmon_curr_attributes { - hwmon_curr_enable = 0, - hwmon_curr_input = 1, - hwmon_curr_min = 2, - hwmon_curr_max = 3, - hwmon_curr_lcrit = 4, - hwmon_curr_crit = 5, - hwmon_curr_average = 6, - hwmon_curr_lowest = 7, - hwmon_curr_highest = 8, - hwmon_curr_reset_history = 9, - hwmon_curr_label = 10, - hwmon_curr_alarm = 11, - hwmon_curr_min_alarm = 12, - hwmon_curr_max_alarm = 13, - hwmon_curr_lcrit_alarm = 14, - hwmon_curr_crit_alarm = 15, - hwmon_curr_rated_min = 16, - hwmon_curr_rated_max = 17, - hwmon_curr_beep = 18, +union ich8_flash_protected_range { + struct ich8_pr range; + u32 regval; }; -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, +struct mvpp2_prs_result_info { + u32 ri; + u32 ri_mask; }; -enum hwmon_energy_attributes { - hwmon_energy_enable = 0, - hwmon_energy_input = 1, - hwmon_energy_label = 2, +struct mvpp2_cls_flow { + int flow_type; + u16 flow_id; + u16 supported_hash_opts; + struct mvpp2_prs_result_info prs_ri; }; -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 mvpp2_cls_field_id { + MVPP22_CLS_FIELD_MAC_DA = 3, + MVPP22_CLS_FIELD_VLAN_PRI = 5, + MVPP22_CLS_FIELD_VLAN = 6, + MVPP22_CLS_FIELD_L3_PROTO = 15, + MVPP22_CLS_FIELD_IP4SA = 16, + MVPP22_CLS_FIELD_IP4DA = 17, + MVPP22_CLS_FIELD_IP6SA = 23, + MVPP22_CLS_FIELD_IP6DA = 26, + MVPP22_CLS_FIELD_L4SIP = 29, + MVPP22_CLS_FIELD_L4DIP = 30, }; -enum hwmon_fan_attributes { - hwmon_fan_enable = 0, - hwmon_fan_input = 1, - hwmon_fan_label = 2, - hwmon_fan_min = 3, - hwmon_fan_max = 4, - hwmon_fan_div = 5, - hwmon_fan_pulses = 6, - hwmon_fan_target = 7, - hwmon_fan_alarm = 8, - hwmon_fan_min_alarm = 9, - hwmon_fan_max_alarm = 10, - hwmon_fan_fault = 11, - hwmon_fan_beep = 12, +enum mvpp2_prs_flow { + MVPP2_FL_START = 8, + MVPP2_FL_IP4_TCP_NF_UNTAG = 8, + MVPP2_FL_IP4_UDP_NF_UNTAG = 9, + MVPP2_FL_IP4_TCP_NF_TAG = 10, + MVPP2_FL_IP4_UDP_NF_TAG = 11, + MVPP2_FL_IP6_TCP_NF_UNTAG = 12, + MVPP2_FL_IP6_UDP_NF_UNTAG = 13, + MVPP2_FL_IP6_TCP_NF_TAG = 14, + MVPP2_FL_IP6_UDP_NF_TAG = 15, + MVPP2_FL_IP4_TCP_FRAG_UNTAG = 16, + MVPP2_FL_IP4_UDP_FRAG_UNTAG = 17, + MVPP2_FL_IP4_TCP_FRAG_TAG = 18, + MVPP2_FL_IP4_UDP_FRAG_TAG = 19, + MVPP2_FL_IP6_TCP_FRAG_UNTAG = 20, + MVPP2_FL_IP6_UDP_FRAG_UNTAG = 21, + MVPP2_FL_IP6_TCP_FRAG_TAG = 22, + MVPP2_FL_IP6_UDP_FRAG_TAG = 23, + MVPP2_FL_IP4_UNTAG = 24, + MVPP2_FL_IP4_TAG = 25, + MVPP2_FL_IP6_UNTAG = 26, + MVPP2_FL_IP6_TAG = 27, + MVPP2_FL_NON_IP_UNTAG = 28, + MVPP2_FL_NON_IP_TAG = 29, + MVPP2_FL_LAST = 30, }; -struct trace_event_raw_hwmon_attr_class { - struct trace_entry ent; - int index; - u32 __data_loc_attr_name; - long val; - char __data[0]; +enum mvpp2_cls_engine { + MVPP22_CLS_ENGINE_C2 = 1, + MVPP22_CLS_ENGINE_C3A = 2, + MVPP22_CLS_ENGINE_C3B = 3, + MVPP22_CLS_ENGINE_C4 = 4, + MVPP22_CLS_ENGINE_C3HA = 6, + MVPP22_CLS_ENGINE_C3HB = 7, }; -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]; +enum mvpp2_cls_lu_type { + MVPP22_CLS_LU_TYPE_ALL = 63, }; -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; +enum mvpp22_cls_c2_action { + MVPP22_C2_NO_UPD = 0, + MVPP22_C2_NO_UPD_LOCK = 1, + MVPP22_C2_UPD = 2, + MVPP22_C2_UPD_LOCK = 3, }; -struct hwmon_thermal_data { - struct list_head node; - struct device *dev; - int index; - struct thermal_zone_device *tzd; +enum mvpp22_cls_c2_fwd_action { + MVPP22_C2_FWD_NO_UPD = 0, + MVPP22_C2_FWD_NO_UPD_LOCK = 1, + MVPP22_C2_FWD_SW = 2, + MVPP22_C2_FWD_SW_LOCK = 3, + MVPP22_C2_FWD_HW = 4, + MVPP22_C2_FWD_HW_LOCK = 5, + MVPP22_C2_FWD_HW_LOW_LAT = 6, + MVPP22_C2_FWD_HW_LOW_LAT_LOCK = 7, }; -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]; +enum flow_action_hw_stats_bit { + FLOW_ACTION_HW_STATS_IMMEDIATE_BIT = 0, + FLOW_ACTION_HW_STATS_DELAYED_BIT = 1, + FLOW_ACTION_HW_STATS_DISABLED_BIT = 2, + FLOW_ACTION_HW_STATS_NUM_BITS = 3, }; -struct trace_event_data_offsets_hwmon_attr_class { - u32 attr_name; +enum mvpp22_cls_c2_color_action { + MVPP22_C2_COL_NO_UPD = 0, + MVPP22_C2_COL_NO_UPD_LOCK = 1, + MVPP22_C2_COL_GREEN = 2, + MVPP22_C2_COL_GREEN_LOCK = 3, + MVPP22_C2_COL_YELLOW = 4, + MVPP22_C2_COL_YELLOW_LOCK = 5, + MVPP22_C2_COL_RED = 6, + MVPP22_C2_COL_RED_LOCK = 7, }; -struct trace_event_data_offsets_hwmon_attr_show_string { - u32 attr_name; - u32 label; +struct mvpp2_cls_flow_entry { + u32 index; + u32 data[3]; }; -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 *); +struct mvpp2_cls_lookup_entry { + u32 lkpid; + u32 way; + u32 data; }; -struct cpufreq_freqs { - struct cpufreq_policy *policy; - unsigned int old; - unsigned int new; - u8 flags; +struct mvpp2_cls_c2_entry { + u32 index; + u32 tcam[5]; + u32 act; + u32 attr[5]; + u8 valid; }; -struct renesas_sdhi_quirks { - bool hs400_disabled; - bool hs400_4taps; - bool fixed_addr_mode; - bool dma_one_rx_only; - bool manual_tap_correction; - bool old_info1_layout; - u32 hs400_bad_taps; - const u8 (*hs400_calib_table)[32]; +struct ethtool_rx_flow_rule { + struct flow_rule *rule; + unsigned long priv[0]; }; -struct tmio_mmc_host; - -struct tmio_mmc_data; - -struct tmio_mmc_dma_ops { - void (*start)(struct tmio_mmc_host *, struct mmc_data *); - void (*enable)(struct tmio_mmc_host *, bool); - void (*request)(struct tmio_mmc_host *, struct tmio_mmc_data *); - void (*release)(struct tmio_mmc_host *); - void (*abort)(struct tmio_mmc_host *); - void (*dataend)(struct tmio_mmc_host *); - void (*end)(struct tmio_mmc_host *); - bool (*dma_irq)(struct tmio_mmc_host *); +struct ethtool_rx_flow_spec_input { + const struct ethtool_rx_flow_spec *fs; + u32 rss_ctx; }; -struct tmio_mmc_host { - void *ctl; - struct mmc_command *cmd; - struct mmc_request *mrq; - struct mmc_data *data; - struct mmc_host *mmc; - struct mmc_host_ops ops; - void (*set_pwr)(struct platform_device *, int); - struct scatterlist *sg_ptr; - struct scatterlist *sg_orig; - unsigned int sg_len; - unsigned int sg_off; - unsigned int bus_shift; - struct platform_device *pdev; - struct tmio_mmc_data *pdata; - bool dma_on; - struct dma_chan *chan_rx; - struct dma_chan *chan_tx; - struct tasklet_struct dma_issue; - struct scatterlist bounce_sg; - u8 *bounce_buf; - struct delayed_work delayed_reset_work; - struct work_struct done; - u32 sdcard_irq_mask; - u32 sdio_irq_mask; - unsigned int clk_cache; - u32 sdcard_irq_setbit_mask; - u32 sdcard_irq_mask_all; - spinlock_t lock; - unsigned long last_req_ts; - struct mutex ios_lock; - bool native_hotplug; - bool sdio_irq_enabled; - int (*clk_enable)(struct tmio_mmc_host *); - void (*set_clock)(struct tmio_mmc_host *, unsigned int); - void (*clk_disable)(struct tmio_mmc_host *); - int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); - int (*write16_hook)(struct tmio_mmc_host *, int); - void (*reset)(struct tmio_mmc_host *, bool); - bool (*check_retune)(struct tmio_mmc_host *, struct mmc_request *); - void (*fixup_request)(struct tmio_mmc_host *, struct mmc_request *); - unsigned int (*get_timeout_cycles)(struct tmio_mmc_host *); - const struct tmio_mmc_dma_ops *dma_ops; +struct vfio___2 { + struct class *device_class; + struct ida device_ida; }; -struct tmio_mmc_data { - void *chan_priv_tx; - void *chan_priv_rx; - unsigned int hclk; - unsigned long capabilities; - unsigned long capabilities2; - unsigned long flags; - u32 ocr_mask; - dma_addr_t dma_rx_offset; - unsigned int max_blk_count; - unsigned short max_segs; - void (*set_pwr)(struct platform_device *, int); - void (*set_clk_div)(struct platform_device *, int); +enum { + IOMMUFD_ACCESS_RW_READ = 0, + IOMMUFD_ACCESS_RW_WRITE = 1, + IOMMUFD_ACCESS_RW_KTHREAD = 2, + __IOMMUFD_ACCESS_RW_SLOW_PATH = 4, }; -struct renesas_sdhi_of_data; - -struct renesas_sdhi_of_data_with_quirks { - const struct renesas_sdhi_of_data *of_data; - const struct renesas_sdhi_quirks *quirks; +struct vfio_device_feature { + __u32 argsz; + __u32 flags; + __u8 data[0]; }; -struct renesas_sdhi_scc; +struct vfio_device_feature_mig_state { + __u32 device_state; + __s32 data_fd; +}; -struct renesas_sdhi_of_data { - unsigned long tmio_flags; - u32 tmio_ocr_mask; - unsigned long capabilities; - unsigned long capabilities2; - enum dma_slave_buswidth dma_buswidth; - dma_addr_t dma_rx_offset; - unsigned int bus_shift; - int scc_offset; - struct renesas_sdhi_scc *taps; - int taps_num; - unsigned int max_blk_count; - unsigned short max_segs; - unsigned long sdhi_flags; +struct vfio_device_feature_migration { + __u64 flags; }; -struct renesas_sdhi_scc { - unsigned long clk_rate; - u32 tap; - u32 tap_hs400_4tap; +struct vfio_device_feature_dma_logging_control { + __u64 page_size; + __u32 num_ranges; + __u32 __reserved; + __u64 ranges; }; -enum renesas_sdhi_dma_cookie { - COOKIE_UNMAPPED___2 = 0, - COOKIE_PRE_MAPPED___2 = 1, - COOKIE_MAPPED___2 = 2, +struct vfio_device_feature_dma_logging_range { + __u64 iova; + __u64 length; }; -struct renesas_sdhi_dma { - unsigned long end_flags; - enum dma_slave_buswidth dma_buswidth; - bool (*filter)(struct dma_chan *, void *); - void (*enable)(struct tmio_mmc_host *, bool); - struct completion dma_dataend; - struct tasklet_struct dma_complete; +struct vfio_device_feature_dma_logging_report { + __u64 iova; + __u64 length; + __u64 page_size; + __u64 bitmap; }; -struct renesas_sdhi { - struct clk *clk; - struct clk *clkh; - struct clk *clk_cd; - struct tmio_mmc_data mmc_data; - struct renesas_sdhi_dma dma_priv; - const struct renesas_sdhi_quirks *quirks; - struct pinctrl *pinctrl; - struct pinctrl_state *pins_default; - struct pinctrl_state *pins_uhs; - void *scc_ctl; - u32 scc_tappos; - u32 scc_tappos_hs400; - const u8 *adjust_hs400_calib_table; - bool needs_adjust_hs400; - unsigned long taps[1]; - unsigned long smpcmp[1]; - unsigned int tap_num; - unsigned int tap_set; - struct reset_control *rstc; +struct vfio_device_feature_mig_data_size { + __u64 stop_copy_length; }; -enum { - UFS_REG_OCPTHRTL = 192, - UFS_REG_OOCPR = 196, - UFS_REG_CDACFG = 208, - UFS_REG_CDATX1 = 212, - UFS_REG_CDATX2 = 216, - UFS_REG_CDARX1 = 220, - UFS_REG_CDARX2 = 224, - UFS_REG_CDASTA = 228, - UFS_REG_LBMCFG = 240, - UFS_REG_LBMSTA = 244, - UFS_REG_UFSMODE = 248, - UFS_REG_HCLKDIV = 252, +struct usb_cdc_union_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bMasterInterface0; + __u8 bSlaveInterface0; }; -struct ufs_hisi_host { - struct ufs_hba *hba; - void *ufs_sys_ctrl; - struct reset_control *rst; - uint64_t caps; - bool in_suspend; +struct usb_cdc_country_functional_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 iCountryCodeRelDate; + __le16 wCountyCode0; }; -struct efifb_dmi_info { - char *optname; - unsigned long base; - int stride; - int width; - int height; - int flags; +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; }; -enum { - M_I17 = 0, - M_I20 = 1, - M_I20_SR = 2, - M_I24 = 3, - M_I24_8_1 = 4, - M_I24_10_1 = 5, - M_I27_11_1 = 6, - M_MINI = 7, - M_MINI_3_1 = 8, - M_MINI_4_1 = 9, - M_MB = 10, - M_MB_2 = 11, - M_MB_3 = 12, - M_MB_5_1 = 13, - M_MB_6_1 = 14, - M_MB_7_1 = 15, - M_MB_SR = 16, - M_MBA = 17, - M_MBA_3 = 18, - M_MBP = 19, - M_MBP_2 = 20, - M_MBP_2_2 = 21, - M_MBP_SR = 22, - M_MBP_4 = 23, - M_MBP_5_1 = 24, - M_MBP_5_2 = 25, - M_MBP_5_3 = 26, - M_MBP_6_1 = 27, - M_MBP_6_2 = 28, - M_MBP_7_1 = 29, - M_MBP_8_2 = 30, - M_UNKNOWN = 31, +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; }; -enum { - OVERRIDE_NONE = 0, - OVERRIDE_BASE = 1, - OVERRIDE_STRIDE = 2, - OVERRIDE_HEIGHT = 4, - OVERRIDE_WIDTH = 8, +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]; }; -typedef void (*btf_trace_cros_ec_sensorhub_timestamp)(void *, u32, u32, s64, s64, s64); +struct usb_cdc_ncm_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdNcmVersion; + __u8 bmNetworkCapabilities; +} __attribute__((packed)); -typedef void (*btf_trace_cros_ec_sensorhub_data)(void *, u32, u32, s64, s64, s64); +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)); -typedef void (*btf_trace_cros_ec_sensorhub_filter)(void *, struct cros_ec_sensors_ts_filter_state *, s64, s64); +struct usb_cdc_mbim_extended_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdMBIMExtendedVersion; + __u8 bMaxOutstandingCommandMessages; + __le16 wMTU; +} __attribute__((packed)); -enum { - CROS_EC_SENSOR_LAST_TS = 0, - CROS_EC_SENSOR_NEW_TS = 1, - CROS_EC_SENSOR_ALL_TS = 2, +struct set_config_request { + struct usb_device *udev; + int config; + struct work_struct work; + struct list_head node; }; -struct trace_event_raw_cros_ec_sensorhub_timestamp { - struct trace_entry ent; - u32 ec_sample_timestamp; - u32 ec_fifo_timestamp; - s64 fifo_timestamp; - s64 current_timestamp; - s64 current_time; - s64 delta; - char __data[0]; +struct api_context { + struct completion done; + int status; }; -struct trace_event_raw_cros_ec_sensorhub_data { - struct trace_entry ent; - u32 ec_sensor_num; - u32 ec_fifo_timestamp; - s64 fifo_timestamp; - s64 current_timestamp; - s64 current_time; - s64 delta; - char __data[0]; +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 trace_event_raw_cros_ec_sensorhub_filter { - struct trace_entry ent; - s64 dx; - s64 dy; - s64 median_m; - s64 median_error; - s64 history_len; - s64 x; - s64 y; - char __data[0]; +struct usb_cdc_network_terminal_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bEntityId; + __u8 iName; + __u8 bChannelIndex; + __u8 bPhysicalInterface; }; -struct trace_event_data_offsets_cros_ec_sensorhub_timestamp {}; +struct usb_cdc_obex_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdVersion; +} __attribute__((packed)); -struct trace_event_data_offsets_cros_ec_sensorhub_data {}; +struct exynos_ohci_hcd { + struct clk *clk; + struct device_node *of_node; + struct phy *phy[3]; + bool legacy_phy; +}; -struct trace_event_data_offsets_cros_ec_sensorhub_filter {}; +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 meson_sar_adc_param; +struct serio_event { + enum serio_event_type type; + void *object; + struct module *owner; + struct list_head node; +}; -struct meson_sar_adc_data { - const struct meson_sar_adc_param *param; - const char *name; +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 meson_sar_adc_param { - bool has_bl30_integration; - unsigned long clock_rate; - u32 bandgap_reg; - unsigned int resolution; - const struct regmap_config *regmap_config; - u8 temperature_trimming_bits; - unsigned int temperature_multiplier; - unsigned int temperature_divider; +struct thermal_hwmon_device { + char type[20]; + struct device *device; + int count; + struct list_head tz_list; + struct list_head node; }; -enum meson_sar_adc_avg_mode { - NO_AVERAGING = 0, - MEAN_AVERAGING = 1, - MEDIAN_AVERAGING = 2, +struct thermal_hwmon_attr { + struct device_attribute attr; + char name[16]; }; -enum meson_sar_adc_num_samples { - ONE_SAMPLE = 0, - TWO_SAMPLES = 1, - FOUR_SAMPLES = 2, - EIGHT_SAMPLES = 3, +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; }; -enum meson_sar_adc_chan7_mux_sel { - CHAN7_MUX_VSS = 0, - CHAN7_MUX_VDD_DIV4 = 1, - CHAN7_MUX_VDD_DIV2 = 2, - CHAN7_MUX_VDD_MUL3_DIV4 = 3, - CHAN7_MUX_VDD = 4, - CHAN7_MUX_CH7_INPUT = 7, +struct amlogic_thermal_soc_calib_data; + +struct amlogic_thermal_data { + int u_efuse_off; + const struct amlogic_thermal_soc_calib_data *calibration_parameters; + const struct regmap_config *regmap_config; }; -struct meson_sar_adc_priv { - struct regmap *regmap; - struct regulator *vref; - const struct meson_sar_adc_param *param; - struct clk *clkin; - struct clk *core_clk; - struct clk *adc_sel_clk; - struct clk *adc_clk; - struct clk_gate clk_gate; - struct clk *adc_div_clk; - struct clk_divider clk_div; - struct completion done; - struct mutex lock; - int calibbias; - int calibscale; - struct regmap *tsc_regmap; - bool temperature_sensor_calibrated; - u8 temperature_sensor_coefficient; - u16 temperature_sensor_adc_val; +struct amlogic_thermal_soc_calib_data { + int A; + int B; + int m; + int n; }; -struct mux_state { - struct mux_control *mux; - unsigned int state; +struct amlogic_thermal { + struct platform_device *pdev; + const struct amlogic_thermal_data *data; + struct regmap *regmap; + struct regmap *sec_ao_map; + struct clk *clk; + struct thermal_zone_device *tzd; + u32 trim_info; }; -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 armada37xx_cpufreq_state { + struct platform_device *pdev; + struct device *cpu_dev; + struct regmap *regmap; + u32 nb_l0l1; + u32 nb_l2l3; + u32 nb_dyn_mod; + u32 nb_cpu_load; }; -struct gnet_stats_basic { - __u64 bytes; - __u32 packets; +struct armada_37xx_dvfs { + u32 cpu_freq_max; + u8 divider[4]; + u32 avs[4]; }; -struct gnet_stats_rate_est { - __u32 bps; - __u32 pps; +struct cpufreq_dt_platform_data { + bool have_governor_per_policy; + unsigned int (*get_intermediate)(struct cpufreq_policy *, unsigned int); + int (*target_intermediate)(struct cpufreq_policy *, unsigned int); + int (*suspend)(struct cpufreq_policy *); + int (*resume)(struct cpufreq_policy *); }; -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 sdhci_reset_reason { + SDHCI_RESET_FOR_INIT = 0, + SDHCI_RESET_FOR_REQUEST_ERROR = 1, + SDHCI_RESET_FOR_REQUEST_ERROR_DATA_ONLY = 2, + SDHCI_RESET_FOR_TUNING_ABORT = 3, + SDHCI_RESET_FOR_CARD_REMOVED = 4, + SDHCI_RESET_FOR_CQE_RECOVERY = 5, }; -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, +enum sdhci_cookie { + COOKIE_UNMAPPED___3 = 0, + COOKIE_PRE_MAPPED___3 = 1, + COOKIE_MAPPED___3 = 2, }; -struct fib_rule_uid_range { - __u32 start; - __u32 end; +struct sdhci_adma2_64_desc { + __le16 cmd; + __le16 len; + __le32 addr_lo; + __le32 addr_hi; }; -struct fib_rule_notifier_info { - struct fib_notifier_info info; - struct fib_rule *rule; +typedef int (*gpio_blink_set_t)(struct gpio_desc *, int, unsigned long *, unsigned long *); + +struct gpio_led_data { + struct led_classdev cdev; + struct gpio_desc *gpiod; + u8 can_sleep; + u8 blinking; + gpio_blink_set_t platform_gpio_blink_set; }; -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 gpio_led { + const char *name; + const char *default_trigger; + unsigned int gpio; + unsigned int active_low: 1; + unsigned int retain_state_suspended: 1; + unsigned int panic_indicator: 1; + unsigned int default_state: 2; + unsigned int retain_state_shutdown: 1; + struct gpio_desc *gpiod; }; -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 gpio_leds_priv { + int num_leds; + struct gpio_led_data leds[0]; }; -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 gpio_led_platform_data { + int num_leds; + const struct gpio_led *leds; + gpio_blink_set_t gpio_blink_set; }; -struct ipq { - struct inet_frag_queue q; - u8 ecn; - u16 max_df_size; - int iif; - unsigned int rid; - struct inet_peer *peer; +enum scmi_power_protocol_cmd { + POWER_DOMAIN_ATTRIBUTES = 3, + POWER_STATE_SET = 4, + POWER_STATE_GET = 5, + POWER_STATE_NOTIFY = 6, + POWER_DOMAIN_NAME_GET = 8, }; -typedef unsigned int t_key; +struct power_dom_info; -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 scmi_power_info { + u32 version; + int num_domains; + u64 stats_addr; + u32 stats_size; + struct power_dom_info *dom_info; }; -struct trie { - struct key_vector kv[1]; +struct power_dom_info { + bool state_set_sync; + bool state_set_async; + bool state_set_notify; + char name[64]; }; -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 scmi_msg_resp_power_attributes { + __le16 num_domains; + __le16 reserved; + __le32 stats_addr_low; + __le32 stats_addr_high; + __le32 stats_size; }; -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 scmi_msg_resp_power_domain_attributes { + __le32 flags; + u8 name[16]; }; -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 scmi_power_state_notify { + __le32 domain; + __le32 notify_enable; }; -struct fib_trie_iter { - struct seq_net_private p; - struct fib_table *tb; - struct key_vector *tnode; - unsigned int index; - unsigned int depth; +struct scmi_power_set_state { + __le32 flags; + __le32 domain; + __le32 state; }; -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 scmi_power_state_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 power_state; }; -struct efi_smbios_type4_record { - struct efi_smbios_record header; - u8 socket; - u8 processor_type; - u8 processor_family; - u8 processor_manufacturer; - u8 processor_id[8]; - u8 processor_version; - u8 voltage; - u16 external_clock; - u16 max_speed; - u16 current_speed; - u8 status; - u8 processor_upgrade; - u16 l1_cache_handle; - u16 l2_cache_handle; - u16 l3_cache_handle; - u8 serial_number; - u8 asset_tag; - u8 part_number; - u8 core_count; - u8 enabled_core_count; - u8 thread_count; - u16 processor_characteristics; - u16 processor_family2; - u16 core_count2; - u16 enabled_core_count2; - u16 thread_count2; - u16 thread_enabled; +struct scmi_power_state_changed_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int power_state; }; -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 scmi_smc { + int irq; + struct scmi_chan_info *cinfo; + struct scmi_shared_mem *shmem; + struct mutex shmem_lock; + atomic_t inflight; + unsigned long func_id; + unsigned long param_page; + unsigned long param_offset; + unsigned long cap_id; }; -struct compat_resume_swap_area { - compat_loff_t offset; - u32 dev; -} __attribute__((packed)); +struct tegra_ivc { + struct device *peer; + struct { + struct iosys_map map; + unsigned int position; + dma_addr_t phys; + } rx; + struct { + struct iosys_map map; + unsigned int position; + dma_addr_t phys; + } tx; + void (*notify)(struct tegra_ivc *, void *); + void *notify_data; + unsigned int num_frames; + size_t frame_size; +}; -struct resume_swap_area { - __kernel_loff_t offset; - __u32 dev; -} __attribute__((packed)); +typedef void (*tegra_bpmp_mrq_handler_t)(unsigned int, struct tegra_bpmp_channel *, void *); -enum { - MMOP_OFFLINE = 0, - MMOP_ONLINE = 1, - MMOP_ONLINE_KERNEL = 2, - MMOP_ONLINE_MOVABLE = 3, +struct tegra_bpmp_mrq { + struct list_head list; + unsigned int mrq; + tegra_bpmp_mrq_handler_t handler; + void *data; }; -enum { - ONLINE_POLICY_CONTIG_ZONES = 0, - ONLINE_POLICY_AUTO_MOVABLE = 1, +struct tegra_bpmp_mb_data { + u32 code; + u32 flags; + u8 data[120]; }; -struct mhp_params { - struct vmem_altmap *altmap; - pgprot_t pgprot; - struct dev_pagemap *pgmap; +struct mrq_query_abi_request { + uint32_t mrq; }; -struct auto_movable_stats { - unsigned long kernel_early_pages; - unsigned long movable_pages; +struct mrq_query_abi_response { + int32_t status; }; -typedef int (*walk_memory_groups_func_t)(struct memory_group *, void *); +struct mrq_query_tag_request { + uint32_t addr; +}; -struct auto_movable_group_stats { - unsigned long movable_pages; - unsigned long req_kernel_early_pages; +struct mrq_ping_request { + uint32_t challenge; }; -struct stat { - unsigned long st_dev; - unsigned long st_ino; - unsigned int st_mode; - unsigned int st_nlink; - unsigned int st_uid; - unsigned int st_gid; - unsigned long st_rdev; - unsigned long __pad1; - long st_size; - int st_blksize; - int __pad2; - long st_blocks; - long st_atime; - unsigned long st_atime_nsec; - long st_mtime; - unsigned long st_mtime_nsec; - long st_ctime; - unsigned long st_ctime_nsec; - unsigned int __unused4; - unsigned int __unused5; +struct mrq_ping_response { + uint32_t reply; }; -typedef s64 compat_s64; +struct mrq_query_fw_tag_response { + uint8_t tag[32]; +}; -struct stat64 { - compat_u64 st_dev; - unsigned char __pad0[4]; - compat_ulong_t __st_ino; - compat_uint_t st_mode; - compat_uint_t st_nlink; - compat_ulong_t st_uid; - compat_ulong_t st_gid; - compat_u64 st_rdev; - unsigned char __pad3[4]; - compat_s64 st_size; - compat_ulong_t st_blksize; - compat_u64 st_blocks; - compat_ulong_t st_atime; - compat_ulong_t st_atime_nsec; - compat_ulong_t st_mtime; - compat_ulong_t st_mtime_nsec; - compat_ulong_t st_ctime; - compat_ulong_t st_ctime_nsec; - compat_u64 st_ino; +struct hid_usage_entry { + unsigned int page; + unsigned int usage; + const char *description; }; -typedef u32 compat_dev_t; +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; +}; -typedef u32 compat_ino_t; +enum lightbar_command { + LIGHTBAR_CMD_DUMP = 0, + LIGHTBAR_CMD_OFF = 1, + LIGHTBAR_CMD_ON = 2, + LIGHTBAR_CMD_INIT = 3, + LIGHTBAR_CMD_SET_BRIGHTNESS = 4, + LIGHTBAR_CMD_SEQ = 5, + LIGHTBAR_CMD_REG = 6, + LIGHTBAR_CMD_SET_RGB = 7, + LIGHTBAR_CMD_GET_SEQ = 8, + LIGHTBAR_CMD_DEMO = 9, + LIGHTBAR_CMD_GET_PARAMS_V0 = 10, + LIGHTBAR_CMD_SET_PARAMS_V0 = 11, + LIGHTBAR_CMD_VERSION = 12, + LIGHTBAR_CMD_GET_BRIGHTNESS = 13, + LIGHTBAR_CMD_GET_RGB = 14, + LIGHTBAR_CMD_GET_DEMO = 15, + LIGHTBAR_CMD_GET_PARAMS_V1 = 16, + LIGHTBAR_CMD_SET_PARAMS_V1 = 17, + LIGHTBAR_CMD_SET_PROGRAM = 18, + LIGHTBAR_CMD_MANUAL_SUSPEND_CTRL = 19, + LIGHTBAR_CMD_SUSPEND = 20, + LIGHTBAR_CMD_RESUME = 21, + LIGHTBAR_CMD_GET_PARAMS_V2_TIMING = 22, + LIGHTBAR_CMD_SET_PARAMS_V2_TIMING = 23, + LIGHTBAR_CMD_GET_PARAMS_V2_TAP = 24, + LIGHTBAR_CMD_SET_PARAMS_V2_TAP = 25, + LIGHTBAR_CMD_GET_PARAMS_V2_OSCILLATION = 26, + LIGHTBAR_CMD_SET_PARAMS_V2_OSCILLATION = 27, + LIGHTBAR_CMD_GET_PARAMS_V2_BRIGHTNESS = 28, + LIGHTBAR_CMD_SET_PARAMS_V2_BRIGHTNESS = 29, + LIGHTBAR_CMD_GET_PARAMS_V2_THRESHOLDS = 30, + LIGHTBAR_CMD_SET_PARAMS_V2_THRESHOLDS = 31, + LIGHTBAR_CMD_GET_PARAMS_V2_COLORS = 32, + LIGHTBAR_CMD_SET_PARAMS_V2_COLORS = 33, + LIGHTBAR_NUM_CMDS = 34, +}; -typedef u16 __compat_uid16_t; +struct rgb_s { + uint8_t r; + uint8_t g; + uint8_t b; +}; -typedef u16 __compat_gid16_t; +struct lightbar_params_v0 { + int32_t google_ramp_up; + int32_t google_ramp_down; + int32_t s3s0_ramp_up; + int32_t s0_tick_delay[2]; + int32_t s0a_tick_delay[2]; + int32_t s0s3_ramp_down; + int32_t s3_sleep_for; + int32_t s3_ramp_up; + int32_t s3_ramp_down; + uint8_t new_s0; + uint8_t osc_min[2]; + uint8_t osc_max[2]; + uint8_t w_ofs[2]; + uint8_t bright_bl_off_fixed[2]; + uint8_t bright_bl_on_min[2]; + uint8_t bright_bl_on_max[2]; + uint8_t battery_threshold[3]; + uint8_t s0_idx[8]; + uint8_t s3_idx[8]; + struct rgb_s color[8]; +}; -struct compat_stat { - compat_dev_t st_dev; - compat_ino_t st_ino; - compat_mode_t st_mode; - compat_ushort_t st_nlink; - __compat_uid16_t st_uid; - __compat_gid16_t st_gid; - compat_dev_t st_rdev; - compat_off_t st_size; - compat_off_t st_blksize; - compat_off_t st_blocks; - old_time32_t st_atime; - compat_ulong_t st_atime_nsec; - old_time32_t st_mtime; - compat_ulong_t st_mtime_nsec; - old_time32_t st_ctime; - compat_ulong_t st_ctime_nsec; - compat_ulong_t __unused4[2]; +struct lightbar_params_v1 { + int32_t google_ramp_up; + int32_t google_ramp_down; + int32_t s3s0_ramp_up; + int32_t s0_tick_delay[2]; + int32_t s0a_tick_delay[2]; + int32_t s0s3_ramp_down; + int32_t s3_sleep_for; + int32_t s3_ramp_up; + int32_t s3_ramp_down; + int32_t s5_ramp_up; + int32_t s5_ramp_down; + int32_t tap_tick_delay; + int32_t tap_gate_delay; + int32_t tap_display_time; + uint8_t tap_pct_red; + uint8_t tap_pct_green; + uint8_t tap_seg_min_on; + uint8_t tap_seg_max_on; + uint8_t tap_seg_osc; + uint8_t tap_idx[3]; + uint8_t osc_min[2]; + uint8_t osc_max[2]; + uint8_t w_ofs[2]; + uint8_t bright_bl_off_fixed[2]; + uint8_t bright_bl_on_min[2]; + uint8_t bright_bl_on_max[2]; + uint8_t battery_threshold[3]; + uint8_t s0_idx[8]; + uint8_t s3_idx[8]; + uint8_t s5_idx; + struct rgb_s color[8]; }; -struct fanotify_event_metadata { - __u32 event_len; - __u8 vers; - __u8 reserved; - __u16 metadata_len; - __u64 mask; - __s32 fd; - __s32 pid; +struct lightbar_params_v2_timing { + int32_t google_ramp_up; + int32_t google_ramp_down; + int32_t s3s0_ramp_up; + int32_t s0_tick_delay[2]; + int32_t s0a_tick_delay[2]; + int32_t s0s3_ramp_down; + int32_t s3_sleep_for; + int32_t s3_ramp_up; + int32_t s3_ramp_down; + int32_t s5_ramp_up; + int32_t s5_ramp_down; + int32_t tap_tick_delay; + int32_t tap_gate_delay; + int32_t tap_display_time; }; -struct fanotify_event_info_header { - __u8 info_type; - __u8 pad; - __u16 len; +struct lightbar_params_v2_tap { + uint8_t tap_pct_red; + uint8_t tap_pct_green; + uint8_t tap_seg_min_on; + uint8_t tap_seg_max_on; + uint8_t tap_seg_osc; + uint8_t tap_idx[3]; }; -struct fanotify_event_info_pidfd { - struct fanotify_event_info_header hdr; - __s32 pidfd; +struct lightbar_params_v2_oscillation { + uint8_t osc_min[2]; + uint8_t osc_max[2]; + uint8_t w_ofs[2]; }; -struct fanotify_event_info_error { - struct fanotify_event_info_header hdr; - __s32 error; - __u32 error_count; +struct lightbar_params_v2_brightness { + uint8_t bright_bl_off_fixed[2]; + uint8_t bright_bl_on_min[2]; + uint8_t bright_bl_on_max[2]; }; -struct fanotify_response { - __s32 fd; - __u32 response; +struct lightbar_params_v2_thresholds { + uint8_t battery_threshold[3]; }; -struct fanotify_event_info_fid { - struct fanotify_event_info_header hdr; - __kernel_fsid_t fsid; - unsigned char handle[0]; +struct lightbar_params_v2_colors { + uint8_t s0_idx[8]; + uint8_t s3_idx[8]; + uint8_t s5_idx; + struct rgb_s color[8]; }; -struct ext4_xattr_header { - __le32 h_magic; - __le32 h_refcount; - __le32 h_blocks; - __le32 h_hash; - __le32 h_checksum; - __u32 h_reserved[3]; +struct lightbar_program { + uint8_t size; + uint8_t data[192]; }; -struct ext4_xattr_block_find { - struct ext4_xattr_search s; - struct buffer_head *bh; +struct ec_params_lightbar { + uint8_t cmd; + union { + struct { + uint8_t num; + } set_brightness; + struct { + uint8_t num; + } seq; + struct { + uint8_t num; + } demo; + struct { + uint8_t ctrl; + uint8_t reg; + uint8_t value; + } reg; + struct { + uint8_t led; + uint8_t red; + uint8_t green; + uint8_t blue; + } set_rgb; + struct { + uint8_t led; + } get_rgb; + struct { + uint8_t enable; + } manual_suspend_ctrl; + struct lightbar_params_v0 set_params_v0; + struct lightbar_params_v1 set_params_v1; + struct lightbar_params_v2_timing set_v2par_timing; + struct lightbar_params_v2_tap set_v2par_tap; + struct lightbar_params_v2_oscillation set_v2par_osc; + struct lightbar_params_v2_brightness set_v2par_bright; + struct lightbar_params_v2_thresholds set_v2par_thlds; + struct lightbar_params_v2_colors set_v2par_colors; + struct lightbar_program set_program; + }; }; -struct nlm_wait { - struct list_head b_list; - wait_queue_head_t b_wait; - struct nlm_host *b_host; - struct file_lock *b_lock; - __be32 b_status; +struct ec_response_lightbar { + union { + struct { + struct { + uint8_t reg; + uint8_t ic0; + uint8_t ic1; + } vals[23]; + } dump; + struct { + uint8_t num; + } get_seq; + struct { + uint8_t num; + } get_brightness; + struct { + uint8_t num; + } get_demo; + struct lightbar_params_v0 get_params_v0; + struct lightbar_params_v1 get_params_v1; + struct lightbar_params_v2_timing get_params_v2_timing; + struct lightbar_params_v2_tap get_params_v2_tap; + struct lightbar_params_v2_oscillation get_params_v2_osc; + struct lightbar_params_v2_brightness get_params_v2_bright; + struct lightbar_params_v2_thresholds get_params_v2_thlds; + struct lightbar_params_v2_colors get_params_v2_colors; + struct { + uint32_t num; + uint32_t flags; + } version; + struct { + uint8_t red; + uint8_t green; + uint8_t blue; + } get_rgb; + }; }; -struct fscache_cookie; +struct tegra_hsp_channel; -struct crypto_link { - int (*doit)(struct sk_buff *, struct nlmsghdr *, struct nlattr **); - int (*dump)(struct sk_buff *, struct netlink_callback *); - int (*done)(struct netlink_callback *); +struct tegra_hsp_sm_ops { + void (*send)(struct tegra_hsp_channel *, void *); + void (*recv)(struct tegra_hsp_channel *); }; -enum { - CRYPTO_MSG_BASE = 16, - CRYPTO_MSG_NEWALG = 16, - CRYPTO_MSG_DELALG = 17, - CRYPTO_MSG_UPDATEALG = 18, - CRYPTO_MSG_GETALG = 19, - CRYPTO_MSG_DELRNG = 20, - CRYPTO_MSG_GETSTAT = 21, - __CRYPTO_MSG_MAX = 22, -}; +struct tegra_hsp; -struct crypto_user_alg { - char cru_name[64]; - char cru_driver_name[64]; - char cru_module_name[64]; - __u32 cru_type; - __u32 cru_mask; - __u32 cru_refcnt; - __u32 cru_flags; +struct tegra_hsp_channel { + struct tegra_hsp *hsp; + struct mbox_chan *chan; + void *regs; }; -struct crypto_report_larval { - char type[64]; -}; +struct tegra_hsp_soc; -struct crypto_report_cipher { - char type[64]; - unsigned int blocksize; - unsigned int min_keysize; - unsigned int max_keysize; -}; +struct tegra_hsp_mailbox; -struct crypto_dump_info { - struct sk_buff *in_skb; - struct sk_buff *out_skb; - u32 nlmsg_seq; - u16 nlmsg_flags; +struct tegra_hsp { + struct device *dev; + const struct tegra_hsp_soc *soc; + struct mbox_controller mbox_db; + struct mbox_controller mbox_sm; + void *regs; + unsigned int doorbell_irq; + unsigned int *shared_irqs; + unsigned int shared_irq; + unsigned int num_sm; + unsigned int num_as; + unsigned int num_ss; + unsigned int num_db; + unsigned int num_si; + spinlock_t lock; + struct lock_class_key lock_key; + struct list_head doorbells; + struct tegra_hsp_mailbox *mailboxes; + unsigned long mask; }; -struct wrapper { - cmp_func_t cmp; - swap_func_t swap; -}; +struct tegra_hsp_db_map; -struct once_work { - struct work_struct work; - struct static_key_true *key; - struct module *module; +struct tegra_hsp_soc { + const struct tegra_hsp_db_map *map; + bool has_per_mb_ie; + bool has_128_bit_mb; + unsigned int reg_stride; }; -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, +struct tegra_hsp_db_map { + const char *name; + unsigned int master; + unsigned int index; }; -enum asn1_method { - ASN1_PRIM = 0, - ASN1_CONS = 1, +struct tegra_hsp_mailbox { + struct tegra_hsp_channel channel; + const struct tegra_hsp_sm_ops *ops; + unsigned int index; + bool producer; }; -struct exiu_irq_data { - void *base; - u32 spi_base; +struct tegra_hsp_doorbell { + struct tegra_hsp_channel channel; + struct list_head list; + const char *name; + unsigned int master; + unsigned int index; }; -struct sun4i_usb_phy_cfg { - int num_phys; - int hsic_index; - u32 disc_thresh; - u32 hci_phy_ctl_clear; - u8 phyctl_offset; - bool dedicated_clocks; - bool phy0_dual_route; - bool needs_phy2_siddq; - bool siddq_in_base; - bool poll_vbusen; - int missing_phys; +struct bpf_xdp_link { + struct bpf_link link; + struct net_device *dev; + int flags; }; -struct sun4i_usb_phy { - struct phy *phy; - void *pmu; - struct regulator *vbus; - struct reset_control *reset; - struct clk *clk; - struct clk *clk2; - bool regulator_on; - int index; +enum nf_dev_hooks { + NF_NETDEV_INGRESS = 0, + NF_NETDEV_EGRESS = 1, + NF_NETDEV_NUMHOOKS = 2, }; -struct sun4i_usb_phy_data { - void *base; - const struct sun4i_usb_phy_cfg *cfg; - enum usb_dr_mode dr_mode; - spinlock_t reg_lock; - struct sun4i_usb_phy phys[4]; - struct extcon_dev *extcon; - bool phy0_init; - struct gpio_desc *id_det_gpio; - struct gpio_desc *vbus_det_gpio; - struct power_supply *vbus_power_supply; - struct notifier_block vbus_power_nb; - bool vbus_power_nb_registered; - bool force_session_end; - int id_det_irq; - int vbus_det_irq; - int id_det; - int vbus_det; - struct delayed_work detect; +enum tcx_action_base { + TCX_NEXT = -1, + TCX_PASS = 0, + TCX_DROP = 2, + TCX_REDIRECT = 7, }; -struct phy_gmii_sel_soc_data { - u32 num_ports; - u32 features; - const struct reg_field (*regfields)[3]; - bool use_of_data; - u64 extra_modes; - u32 num_qsgmii_main_ports; +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; }; -enum { - PHY_GMII_SEL_PORT_MODE = 0, - PHY_GMII_SEL_RGMII_ID_MODE = 1, - PHY_GMII_SEL_RMII_IO_CLK_EN = 2, - PHY_GMII_SEL_LAST = 3, +struct dev_kfree_skb_cb { + enum skb_drop_reason reason; }; -struct phy_gmii_sel_phy_priv; - -struct phy_gmii_sel_priv { - struct device *dev; - const struct phy_gmii_sel_soc_data *soc_data; - struct regmap *regmap; - struct phy_provider *phy_provider; - struct phy_gmii_sel_phy_priv *if_phys; - u32 num_ports; - u32 reg_offset; - u32 qsgmii_main_ports; +struct netdev_net_notifier { + struct list_head list; + struct notifier_block *nb; }; -struct phy_gmii_sel_phy_priv { - struct phy_gmii_sel_priv *priv; - u32 id; - struct phy *if_phy; - int rmii_clock_external; - int phy_if_mode; - struct regmap_field *fields[3]; +struct net_device_path_stack { + int num_paths; + struct net_device_path path[5]; }; -struct sunxi_pinctrl_regulator { - struct regulator *regulator; - refcount_t refcount; +struct netdev_nested_priv { + unsigned char flags; + void *data; }; -struct sunxi_pinctrl_function; +struct netdev_notifier_offload_xstats_rd; -struct sunxi_pinctrl_group; +struct netdev_notifier_offload_xstats_ru; -struct sunxi_pinctrl { - void *membase; - struct gpio_chip *chip; - const struct sunxi_pinctrl_desc *desc; - struct device *dev; - struct sunxi_pinctrl_regulator regulators[9]; - struct irq_domain *domain; - struct sunxi_pinctrl_function *functions; - unsigned int nfunctions; - struct sunxi_pinctrl_group *groups; - unsigned int ngroups; - int *irq; - unsigned int *irq_array; - raw_spinlock_t lock; - struct pinctrl_dev *pctl_dev; - unsigned long variant; - u32 bank_mem_size; - u32 pull_regs_offset; - u32 dlevel_field_width; +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 sunxi_pinctrl_function { - const char *name; - const char **groups; - unsigned int ngroups; +struct netdev_notifier_offload_xstats_rd { + struct rtnl_hw_stats64 stats; + bool used; }; -struct sunxi_pinctrl_group { - const char *name; - unsigned int pin; +struct netdev_notifier_offload_xstats_ru { + bool used; }; -struct rockchip_pwm_regs { - unsigned long duty; - unsigned long period; - unsigned long cntr; - unsigned long ctrl; +struct netdev_notifier_pre_changeaddr_info { + struct netdev_notifier_info info; + const unsigned char *dev_addr; }; -struct rockchip_pwm_data { - struct rockchip_pwm_regs regs; - unsigned int prescaler; - bool supports_polarity; - bool supports_lock; - u32 enable_conf; -}; +typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *); -struct rockchip_pwm_chip { - struct pwm_chip chip; - struct clk *clk; - struct clk *pclk; - const struct rockchip_pwm_data *data; - void *base; +struct netdev_notifier_change_info { + struct netdev_notifier_info info; + unsigned int flags_changed; }; -enum altera_pcie_version { - ALTERA_PCIE_V1 = 0, - ALTERA_PCIE_V2 = 1, +struct ifslave { + __s32 slave_id; + char slave_name[16]; + __s8 link; + __s8 state; + __u32 link_failure_count; }; -struct altera_pcie_ops; +typedef struct ifslave ifslave; -struct altera_pcie_data { - const struct altera_pcie_ops *ops; - enum altera_pcie_version version; - u32 cap_offset; - u32 cfgrd0; - u32 cfgrd1; - u32 cfgwr0; - u32 cfgwr1; +struct ifbond { + __s32 bond_mode; + __s32 num_slaves; + __s32 miimon; }; -struct altera_pcie; +typedef struct ifbond ifbond; -struct altera_pcie_ops { - int (*tlp_read_pkt)(struct altera_pcie *, u32 *); - void (*tlp_write_pkt)(struct altera_pcie *, u32 *, u32, bool); - bool (*get_link_status)(struct altera_pcie *); - int (*rp_read_cfg)(struct altera_pcie *, int, int, u32 *); - int (*rp_write_cfg)(struct altera_pcie *, u8, int, int, u32); +struct netdev_bonding_info { + ifslave slave; + ifbond master; }; -struct altera_pcie { - struct platform_device *pdev; - void *cra_base; - void *hip_base; - int irq; - u8 root_bus_nr; - struct irq_domain *irq_domain; - struct resource bus_range; - const struct altera_pcie_data *pcie_data; +struct netdev_notifier_bonding_info { + struct netdev_notifier_info info; + struct netdev_bonding_info bonding_info; }; -struct tlp_rp_regpair_t { - u32 ctrl; - u32 reg0; - u32 reg1; +struct netdev_notifier_changelowerstate_info { + struct netdev_notifier_info info; + void *lower_state_info; }; -struct acpi_table_hest { - struct acpi_table_header header; - u32 error_source_count; -}; +struct dpll_pin; -struct acpi_hest_ia_corrected { - struct acpi_hest_header header; - u16 reserved1; - u8 flags; - u8 enabled; - u32 records_to_preallocate; - u32 max_sections_per_record; - struct acpi_hest_notify notify; - u8 num_hardware_banks; - u8 reserved2[3]; +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 acpi_hest_ia_machine_check { - struct acpi_hest_header header; - u16 reserved1; - u8 flags; - u8 enabled; - u32 records_to_preallocate; - u32 max_sections_per_record; - u64 global_capability_data; - u64 global_control_data; - u8 num_hardware_banks; - u8 reserved3[7]; +struct linkinfo_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; }; -struct acpi_hest_ia_deferred_check { - struct acpi_hest_header header; - u16 reserved1; - u8 flags; - u8 enabled; - u32 records_to_preallocate; - u32 max_sections_per_record; - struct acpi_hest_notify notify; - u8 num_hardware_banks; - u8 reserved2[3]; +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, }; -typedef int (*apei_hest_func_t)(struct acpi_hest_header *, void *); - -struct ghes_arr { - struct platform_device **ghes_devs; - unsigned int count; +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 clk_dvp { - struct clk_hw_onecell_data *data; - struct reset_simple_data reset; +struct fec_stat_grp { + u64 stats[9]; + u8 cnt; }; -struct imx8qxp_lpcg_data; - -struct imx8qxp_ss_lpcg { - const struct imx8qxp_lpcg_data *lpcg; - u8 num_lpcg; - u8 num_max; +struct fec_reply_data { + struct ethnl_reply_data base; + unsigned long fec_link_modes[2]; + u32 active_fec; + u8 fec_auto; + struct fec_stat_grp corr; + struct fec_stat_grp uncorr; + struct fec_stat_grp corr_bits; }; -struct imx8qxp_lpcg_data { - int id; - char *name; - char *parent; - unsigned long flags; - u32 offset; - u8 bit_idx; - bool hw_gate; +struct arphdr { + __be16 ar_hrd; + __be16 ar_pro; + unsigned char ar_hln; + unsigned char ar_pln; + __be16 ar_op; }; -struct ccu_nkm { - u32 enable; - u32 lock; - struct ccu_mult_internal n; - struct ccu_mult_internal k; - struct ccu_div_internal m; - struct ccu_mux_internal mux; - unsigned int fixed_post_div; - struct ccu_common common; +struct arpreq { + struct sockaddr arp_pa; + struct sockaddr arp_ha; + int arp_flags; + struct sockaddr arp_netmask; + char arp_dev[16]; }; -struct _ccu_nkm { - unsigned long n; - unsigned long min_n; - unsigned long max_n; - unsigned long k; - unsigned long min_k; - unsigned long max_k; - unsigned long m; - unsigned long min_m; - unsigned long max_m; +enum tpacket_versions { + TPACKET_V1 = 0, + TPACKET_V2 = 1, + TPACKET_V3 = 2, }; -struct sun6i_rtc_match_data { - bool have_ext_osc32k: 1; - bool have_iosc_calibration: 1; - bool rtc_32k_single_parent: 1; - const struct clk_parent_data *osc32k_fanout_parents; - u8 osc32k_fanout_nparents; +enum packet_sock_flags { + PACKET_SOCK_ORIGDEV = 0, + PACKET_SOCK_AUXDATA = 1, + PACKET_SOCK_TX_HAS_OFF = 2, + PACKET_SOCK_TP_LOSS = 3, + PACKET_SOCK_RUNNING = 4, + PACKET_SOCK_PRESSURE = 5, + PACKET_SOCK_QDISC_BYPASS = 6, }; -struct zynqmp_clk_mux { - struct clk_hw hw; - u8 flags; - u32 clk_id; +struct tpacket_stats { + unsigned int tp_packets; + unsigned int tp_drops; }; -enum fsl_edma_pm_state { - RUNNING = 0, - SUSPENDED = 1, +struct tpacket_stats_v3 { + unsigned int tp_packets; + unsigned int tp_drops; + unsigned int tp_freeze_q_cnt; }; -enum edma_version { - v1 = 0, - v2 = 1, - v3 = 2, +union tpacket_stats_u { + struct tpacket_stats stats1; + struct tpacket_stats_v3 stats3; }; -struct fsl_edma_engine; - -struct fsl_edma_desc; +struct pgv; -struct fsl_edma_chan { - struct virt_dma_chan vchan; - enum dma_status status; - enum fsl_edma_pm_state pm_state; - bool idle; - u32 slave_id; - struct fsl_edma_engine *edma; - struct fsl_edma_desc *edesc; - struct dma_slave_config cfg; - u32 attr; - bool is_sw; - struct dma_pool *tcd_pool; - dma_addr_t dma_dev_addr; - u32 dma_dev_size; - enum dma_data_direction dma_dir; - char chan_name[16]; +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 fsl_edma_hw_tcd; - -struct edma_regs { - void *cr; - void *es; - void *erqh; - void *erql; - void *eeih; - void *eeil; - void *seei; - void *ceei; - void *serq; - void *cerq; - void *cint; - void *cerr; - void *ssrt; - void *cdne; - void *inth; - void *intl; - void *errh; - void *errl; - struct fsl_edma_hw_tcd *tcd; +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 fsl_edma_drvdata; +struct packet_fanout; -struct fsl_edma_engine { - struct dma_device dma_dev; - void *membase; - void *muxbase[2]; - struct clk *muxclk[2]; - struct clk *dmaclk; - struct mutex fsl_edma_mutex; - const struct fsl_edma_drvdata *drvdata; - u32 n_chans; - int txirq; - int errirq; - bool big_endian; - struct edma_regs regs; - struct fsl_edma_chan chans[0]; -}; +struct packet_rollover; -struct fsl_edma_drvdata { - enum edma_version version; - u32 dmamuxs; - bool has_dmaclk; - bool mux_swap; - int (*setup_irq)(struct platform_device *, struct fsl_edma_engine *); -}; +struct packet_mclist; -struct fsl_edma_hw_tcd { - __le32 saddr; - __le16 soff; - __le16 attr; - __le32 nbytes; - __le32 slast; - __le32 daddr; - __le16 doff; - __le16 citer; - __le32 dlast_sga; - __le16 csr; - __le16 biter; +struct packet_sock { + struct sock sk; + struct packet_fanout *fanout; + union tpacket_stats_u stats; + struct packet_ring_buffer rx_ring; + struct packet_ring_buffer tx_ring; + int copy_thresh; + spinlock_t bind_lock; + struct mutex pg_vec_lock; + unsigned long flags; + int ifindex; + u8 vnet_hdr_sz; + __be16 num; + struct packet_rollover *rollover; + struct packet_mclist *mclist; + atomic_long_t mapped; + enum tpacket_versions tp_version; + unsigned int tp_hdrlen; + unsigned int tp_reserve; + unsigned int tp_tstamp; + struct completion skb_completion; + struct net_device __attribute__((btf_type_tag("rcu"))) *cached_dev; + long: 64; + long: 64; + long: 64; + long: 64; + struct packet_type prot_hook; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_t tp_drops; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct fsl_edma_sw_tcd { - dma_addr_t ptcd; - struct fsl_edma_hw_tcd *vtcd; +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 fsl_edma_desc { - struct virt_dma_desc vdesc; - struct fsl_edma_chan *echan; - bool iscyclic; - enum dma_transfer_direction dirn; - unsigned int n_tcds; - struct fsl_edma_sw_tcd tcd[0]; +struct pgv { + char *buffer; }; -struct qcom_rpm_header { - __le32 service_type; - __le32 length; +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 qcom_rpm_request { - __le32 msg_id; - __le32 flags; - __le32 type; - __le32 id; - __le32 data_len; +struct packet_mclist { + struct packet_mclist *next; + int ifindex; + int count; + unsigned short type; + unsigned short alen; + unsigned char addr[32]; }; -struct qcom_rpm_message { - __le32 msg_type; - __le32 length; +struct tpacket_bd_ts { + unsigned int ts_sec; union { - __le32 msg_id; - struct { - struct {} __empty_message; - u8 message[0]; - }; + unsigned int ts_usec; + unsigned int ts_nsec; }; }; -struct qcom_smd_rpm { - struct rpmsg_endpoint *rpm_channel; - struct platform_device *icc; - struct device *dev; - struct completion ack; - struct mutex lock; - int ack_status; +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; }; -typedef uint32_t XENSTORE_RING_IDX; +union tpacket_bd_header_u { + struct tpacket_hdr_v1 bh1; +}; -struct xenstore_domain_interface { - char req[1024]; - char rsp[1024]; - XENSTORE_RING_IDX req_cons; - XENSTORE_RING_IDX req_prod; - XENSTORE_RING_IDX rsp_cons; - XENSTORE_RING_IDX rsp_prod; - uint32_t server_features; - uint32_t connection; - uint32_t error; +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 xb_find_info { - struct xenbus_device *dev; - const char *nodename; +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 hi655x_regulator { - unsigned int disable_reg; - unsigned int status_reg; - struct regulator_desc rdesc; +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 npcm_reset_info { - u32 bmc_id; - u32 num_ipsrst; - const u32 *ipsrst; +struct sockaddr_pkt { + unsigned short spkt_family; + unsigned char spkt_device[14]; + __be16 spkt_protocol; }; -enum { - BMC_NPCM7XX = 0, - BMC_NPCM8XX = 1, +struct packet_skb_cb { + union { + struct sockaddr_pkt pkt; + union { + unsigned int origlen; + struct sockaddr_ll ll; + }; + } sa; }; -struct npcm_rc_data { - struct reset_controller_dev rcdev; - struct notifier_block restart_nb; - const struct npcm_reset_info *info; - struct regmap *gcr_regmap; - u32 sw_reset_number; - void *base; - spinlock_t lock; -}; +struct tpacket_hdr; -struct sci_port_params; +struct tpacket2_hdr; -struct plat_sci_port; +union tpacket_uhdr { + struct tpacket_hdr *h1; + struct tpacket2_hdr *h2; + struct tpacket3_hdr *h3; + void *raw; +}; -struct sci_port { - struct uart_port port; - const struct sci_port_params *params; - const struct plat_sci_port *cfg; - unsigned int sampling_rate_mask; - resource_size_t reg_size; - struct mctrl_gpios *gpios; - struct clk *clks[4]; - unsigned long clk_rates[4]; - int irqs[6]; - char *irqstr[6]; - struct dma_chan *chan_tx; - struct dma_chan *chan_rx; - struct dma_chan *chan_tx_saved; - struct dma_chan *chan_rx_saved; - dma_cookie_t cookie_tx; - dma_cookie_t cookie_rx[2]; - dma_cookie_t active_rx; - dma_addr_t tx_dma_addr; - unsigned int tx_dma_len; - struct scatterlist sg_rx[2]; - void *rx_buf[2]; - size_t buf_len_rx; - struct work_struct work_tx; - struct hrtimer rx_timer; - unsigned int rx_timeout; - unsigned int rx_frame; - int rx_trigger; - struct timer_list rx_fifo_timer; - int rx_fifo_timeout; - u16 hscif_tot; - bool has_rtscts; - bool autorts; +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 plat_sci_reg { - u8 offset; - u8 size; +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 sci_port_params { - const struct plat_sci_reg regs[20]; - unsigned int fifosize; - unsigned int overrun_reg; - unsigned int overrun_mask; - unsigned int sampling_rate_mask; - unsigned int error_mask; - unsigned int error_clear; +struct virtio_net_hdr_mrg_rxbuf { + struct virtio_net_hdr hdr; + __virtio16 num_buffers; }; -struct plat_sci_port_ops; +struct tpacket_req { + unsigned int tp_block_size; + unsigned int tp_block_nr; + unsigned int tp_frame_size; + unsigned int tp_frame_nr; +}; -struct plat_sci_port { - unsigned int type; - upf_t flags; - unsigned int sampling_rate; - unsigned int scscr; - unsigned char regtype; - struct plat_sci_port_ops *ops; +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; }; -struct plat_sci_port_ops { - void (*init_pins)(struct uart_port *, unsigned int); +union tpacket_req_u { + struct tpacket_req req; + struct tpacket_req3 req3; }; -struct sci_irq_desc { - const char *desc; - irq_handler_t handler; +struct packet_mreq_max { + int mr_ifindex; + unsigned short mr_type; + unsigned short mr_alen; + unsigned char mr_address[32]; }; -enum { - SCIx_ERI_IRQ = 0, - SCIx_RXI_IRQ = 1, - SCIx_TXI_IRQ = 2, - SCIx_BRI_IRQ = 3, - SCIx_DRI_IRQ = 4, - SCIx_TEI_IRQ = 5, - SCIx_NR_IRQS = 6, - SCIx_MUX_IRQ = 6, +struct fanout_args { + __u16 id; + __u16 type_flags; + __u32 max_num_members; }; -enum { - SCIx_PROBE_REGTYPE = 0, - SCIx_SCI_REGTYPE = 1, - SCIx_IRDA_REGTYPE = 2, - SCIx_SCIFA_REGTYPE = 3, - SCIx_SCIFB_REGTYPE = 4, - SCIx_SH2_SCIF_FIFODATA_REGTYPE = 5, - SCIx_SH3_SCIF_REGTYPE = 6, - SCIx_SH4_SCIF_REGTYPE = 7, - SCIx_SH4_SCIF_BRG_REGTYPE = 8, - SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE = 9, - SCIx_SH4_SCIF_FIFODATA_REGTYPE = 10, - SCIx_SH7705_SCIF_REGTYPE = 11, - SCIx_HSCIF_REGTYPE = 12, - SCIx_RZ_SCIFA_REGTYPE = 13, - SCIx_NR_REGTYPES = 14, +struct tpacket_rollover_stats { + __u64 tp_all; + __u64 tp_huge; + __u64 tp_failed; }; -enum { - SCSMR = 0, - SCBRR = 1, - SCSCR = 2, - SCxSR = 3, - SCFCR = 4, - SCFDR = 5, - SCxTDR = 6, - SCxRDR = 7, - SCLSR = 8, - SCTFDR = 9, - SCRFDR = 10, - SCSPTR = 11, - HSSRR = 12, - SCPCR = 13, - SCPDR = 14, - SCDL = 15, - SCCKS = 16, - HSRTRGR = 17, - HSTTRGR = 18, - SEMR = 19, - SCIx_NR_REGS = 20, +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; }; -enum SCI_CLKS { - SCI_FCK = 0, - SCI_SCK = 1, - SCI_BRG_INT = 2, - SCI_SCIF_CLK = 3, - SCI_NUM_CLKS = 4, +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, }; -struct tpm1_get_random_out { - __be32 rng_data_len; - u8 rng_data[128]; +struct errormap { + char *name; + int val; + int namelen; + struct hlist_node list; }; -struct aggregate_device; +typedef struct { + void *read; + void *write; +} efi_pci_io_protocol_access_t; -struct component { - struct list_head node; - struct aggregate_device *adev; - bool bound; - const struct component_ops *ops; - int subcomponent; - struct device *dev; -}; +typedef enum { + EfiPciIoWidthUint8 = 0, + EfiPciIoWidthUint16 = 1, + EfiPciIoWidthUint32 = 2, + EfiPciIoWidthUint64 = 3, + EfiPciIoWidthFifoUint8 = 4, + EfiPciIoWidthFifoUint16 = 5, + EfiPciIoWidthFifoUint32 = 6, + EfiPciIoWidthFifoUint64 = 7, + EfiPciIoWidthFillUint8 = 8, + EfiPciIoWidthFillUint16 = 9, + EfiPciIoWidthFillUint32 = 10, + EfiPciIoWidthFillUint64 = 11, + EfiPciIoWidthMaximum = 12, +} EFI_PCI_IO_PROTOCOL_WIDTH; -struct component_match; +union efi_pci_io_protocol; -struct aggregate_device { - struct list_head node; - bool bound; - const struct component_master_ops *ops; - struct device *parent; - struct component_match *match; -}; +typedef union efi_pci_io_protocol efi_pci_io_protocol_t; -struct component_match_array; +typedef efi_status_t (*efi_pci_io_protocol_cfg_t)(efi_pci_io_protocol_t *, EFI_PCI_IO_PROTOCOL_WIDTH, u32, unsigned long, void *); -struct component_match { - size_t alloc; - size_t num; - struct component_match_array *compare; -}; +typedef struct { + efi_pci_io_protocol_cfg_t read; + efi_pci_io_protocol_cfg_t write; +} efi_pci_io_protocol_config_access_t; -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; -}; +typedef struct { + u32 read; + u32 write; +} efi_pci_io_protocol_access_32_t; -struct rk8xx_i2c_platform_data { - const struct regmap_config *regmap_cfg; - int variant; +union efi_pci_io_protocol { + struct { + void *poll_mem; + void *poll_io; + efi_pci_io_protocol_access_t mem; + efi_pci_io_protocol_access_t io; + efi_pci_io_protocol_config_access_t pci; + void *copy_mem; + void *map; + void *unmap; + void *allocate_buffer; + void *free_buffer; + void *flush; + efi_status_t (*get_location)(efi_pci_io_protocol_t *, unsigned long *, unsigned long *, unsigned long *, unsigned long *); + void *attributes; + void *get_bar_attributes; + void *set_bar_attributes; + uint64_t romsize; + void *romimage; + }; + struct { + u32 poll_mem; + u32 poll_io; + efi_pci_io_protocol_access_32_t mem; + efi_pci_io_protocol_access_32_t io; + efi_pci_io_protocol_access_32_t pci; + u32 copy_mem; + u32 map; + u32 unmap; + u32 allocate_buffer; + u32 free_buffer; + u32 flush; + u32 get_location; + u32 attributes; + u32 get_bar_attributes; + u32 set_bar_attributes; + u64 romsize; + u32 romimage; + } mixed_mode; }; -struct megasas_mgmt_info { - u16 count; - struct megasas_instance *instance[1024]; - int max_index; +struct mpidr_hash { + u64 mask; + u32 shift_aff[4]; + u32 bits; }; -enum DCMD_TIMEOUT_ACTION { - INITIATE_OCR = 0, - KILL_ADAPTER = 1, - IGNORE_TIMEOUT = 2, +struct arm64_image_header { + __le32 code0; + __le32 code1; + __le64 text_offset; + __le64 image_size; + __le64 flags; + __le64 res2; + __le64 res3; + __le64 res4; + __le32 magic; + __le32 res5; }; -enum MEGASAS_LD_TARGET_ID_STATUS { - LD_TARGET_ID_INITIAL = 0, - LD_TARGET_ID_ACTIVE = 1, - LD_TARGET_ID_DELETED = 2, -}; +typedef void (*btf_trace_kvm_entry)(void *, unsigned long); -enum MR_EVT_LOCALE { - MR_EVT_LOCALE_LD = 1, - MR_EVT_LOCALE_PD = 2, - MR_EVT_LOCALE_ENCL = 4, - MR_EVT_LOCALE_BBU = 8, - MR_EVT_LOCALE_SAS = 16, - MR_EVT_LOCALE_CTRL = 32, - MR_EVT_LOCALE_CONFIG = 64, - MR_EVT_LOCALE_CLUSTER = 128, - MR_EVT_LOCALE_ALL = 65535, -}; +typedef void (*btf_trace_kvm_exit)(void *, int, unsigned int, unsigned long); -enum MR_EVT_CLASS { - MR_EVT_CLASS_DEBUG = -2, - MR_EVT_CLASS_PROGRESS = -1, - MR_EVT_CLASS_INFO = 0, - MR_EVT_CLASS_WARNING = 1, - MR_EVT_CLASS_CRITICAL = 2, - MR_EVT_CLASS_FATAL = 3, - MR_EVT_CLASS_DEAD = 4, -}; +typedef void (*btf_trace_kvm_guest_fault)(void *, unsigned long, unsigned long, unsigned long, unsigned long long); -enum mfi_evt_class { - MFI_EVT_CLASS_DEBUG = -2, - MFI_EVT_CLASS_PROGRESS = -1, - MFI_EVT_CLASS_INFO = 0, - MFI_EVT_CLASS_WARNING = 1, - MFI_EVT_CLASS_CRITICAL = 2, - MFI_EVT_CLASS_FATAL = 3, - MFI_EVT_CLASS_DEAD = 4, -}; +typedef void (*btf_trace_kvm_access_fault)(void *, unsigned long); -enum MR_LD_QUERY_TYPE { - MR_LD_QUERY_TYPE_ALL = 0, - MR_LD_QUERY_TYPE_EXPOSED_TO_HOST = 1, - MR_LD_QUERY_TYPE_USED_TGT_IDS = 2, - MR_LD_QUERY_TYPE_CLUSTER_ACCESS = 3, - MR_LD_QUERY_TYPE_CLUSTER_LOCALE = 4, -}; +typedef void (*btf_trace_kvm_irq_line)(void *, unsigned int, int, int, int); -enum MR_PD_STATE { - MR_PD_STATE_UNCONFIGURED_GOOD = 0, - MR_PD_STATE_UNCONFIGURED_BAD = 1, - MR_PD_STATE_HOT_SPARE = 2, - MR_PD_STATE_OFFLINE = 16, - MR_PD_STATE_FAILED = 17, - MR_PD_STATE_REBUILD = 20, - MR_PD_STATE_ONLINE = 24, - MR_PD_STATE_COPYBACK = 32, - MR_PD_STATE_SYSTEM = 64, -}; +typedef void (*btf_trace_kvm_mmio_emulate)(void *, unsigned long, unsigned long, unsigned long); -enum MR_PD_QUERY_TYPE { - MR_PD_QUERY_TYPE_ALL = 0, - MR_PD_QUERY_TYPE_STATE = 1, - MR_PD_QUERY_TYPE_POWER_STATE = 2, - MR_PD_QUERY_TYPE_MEDIA_TYPE = 3, - MR_PD_QUERY_TYPE_SPEED = 4, - MR_PD_QUERY_TYPE_EXPOSED_TO_HOST = 5, -}; +typedef void (*btf_trace_kvm_mmio_nisv)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -struct megasas_init_queue_info { - __le32 init_flags; - __le32 reply_queue_entries; - __le32 reply_queue_start_phys_addr_lo; - __le32 reply_queue_start_phys_addr_hi; - __le32 producer_index_phys_addr_lo; - __le32 producer_index_phys_addr_hi; - __le32 consumer_index_phys_addr_lo; - __le32 consumer_index_phys_addr_hi; -}; +typedef void (*btf_trace_kvm_set_way_flush)(void *, unsigned long, bool); -struct IOV_111 { - u8 maxVFsSupported; - u8 numVFsEnabled; - u8 requestorId; - u8 reserved[5]; -}; +typedef void (*btf_trace_kvm_toggle_cache)(void *, unsigned long, bool, bool); -struct megasas_iocpacket { - u16 host_no; - u16 __pad1; - u32 sgl_off; - u32 sge_count; - u32 sense_off; - u32 sense_len; - union { - u8 raw[128]; - struct megasas_header hdr; - } frame; - struct iovec sgl[16]; -} __attribute__((packed)); +typedef void (*btf_trace_kvm_timer_update_irq)(void *, unsigned long, __u32, int); -struct megasas_evt_log_info { - __le32 newest_seq_num; - __le32 oldest_seq_num; - __le32 clear_seq_num; - __le32 shutdown_seq_num; - __le32 boot_seq_num; -}; +typedef void (*btf_trace_kvm_get_timer_map)(void *, unsigned long, struct timer_map *); -struct compat_megasas_iocpacket { - u16 host_no; - u16 __pad1; - u32 sgl_off; - u32 sge_count; - u32 sense_off; - u32 sense_len; - union { - u8 raw[128]; - struct megasas_header hdr; - } frame; - struct compat_iovec sgl[16]; -}; +typedef void (*btf_trace_kvm_timer_save_state)(void *, struct arch_timer_context *); -struct megasas_aen { - u16 host_no; - u16 __pad1; - u32 seq_num; - u32 class_locale_word; -}; +typedef void (*btf_trace_kvm_timer_restore_state)(void *, struct arch_timer_context *); -struct rockchip_spi { - struct device *dev; - struct clk *spiclk; - struct clk *apb_pclk; - void *regs; - dma_addr_t dma_addr_rx; - dma_addr_t dma_addr_tx; - const void *tx; - void *rx; - unsigned int tx_left; - unsigned int rx_left; - atomic_t state; - u32 fifo_len; - u32 freq; - u8 n_bytes; - u8 rsd; - bool cs_asserted[4]; - bool slave_abort; - bool cs_inactive; - bool cs_high_supported; - struct spi_transfer *xfer; -}; +typedef void (*btf_trace_kvm_timer_hrtimer_expire)(void *, struct arch_timer_context *); -struct mdio_gpio_info { - struct mdiobb_ctrl ctrl; - struct gpio_desc *mdc; - struct gpio_desc *mdio; - struct gpio_desc *mdo; -}; +typedef void (*btf_trace_kvm_timer_emulate)(void *, struct arch_timer_context *, bool); -struct mdio_gpio_platform_data { - u32 phy_mask; - u32 phy_ignore_ta_mask; -}; +typedef void (*btf_trace_kvm_nested_eret)(void *, struct kvm_vcpu *, unsigned long, unsigned long); -struct hclge_devlink_priv { - struct hclge_dev *hdev; -}; +typedef void (*btf_trace_kvm_inject_nested_exception)(void *, struct kvm_vcpu *, u64, int); -struct sky2_stat { - char name[32]; - u16 offset; -}; +typedef void (*btf_trace_kvm_forward_sysreg_trap)(void *, struct kvm_vcpu *, u32, bool); 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, + OUTSIDE_GUEST_MODE = 0, + IN_GUEST_MODE = 1, + EXITING_GUEST_MODE = 2, + READING_SHADOW_PAGE_TABLES = 3, }; -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, +struct trace_event_raw_kvm_entry { + struct trace_entry ent; + unsigned long vcpu_pc; + char __data[0]; }; -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, +struct trace_event_raw_kvm_exit { + struct trace_entry ent; + int ret; + unsigned int esr_ec; + unsigned long vcpu_pc; + char __data[0]; }; -enum { - CFG_CHIP_R_MSK = 240, - CFG_DIS_M2_CLK = 2, - CFG_SNG_MAC = 1, +struct trace_event_raw_kvm_guest_fault { + struct trace_entry ent; + unsigned long vcpu_pc; + unsigned long hsr; + unsigned long hxfar; + unsigned long long ipa; + char __data[0]; }; -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, +struct trace_event_raw_kvm_access_fault { + struct trace_entry ent; + unsigned long ipa; + char __data[0]; }; -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, +struct trace_event_raw_kvm_irq_line { + struct trace_entry ent; + unsigned int type; + int vcpu_idx; + int irq_num; + int level; + char __data[0]; }; -enum yukon_ex_rev { - CHIP_REV_YU_EX_A0 = 1, - CHIP_REV_YU_EX_B0 = 2, +struct trace_event_raw_kvm_mmio_emulate { + struct trace_entry ent; + unsigned long vcpu_pc; + unsigned long instr; + unsigned long cpsr; + char __data[0]; }; -enum yukon_ec_rev { - CHIP_REV_YU_EC_A1 = 0, - CHIP_REV_YU_EC_A2 = 1, - CHIP_REV_YU_EC_A3 = 2, +struct trace_event_raw_kvm_mmio_nisv { + struct trace_entry ent; + unsigned long vcpu_pc; + unsigned long esr; + unsigned long far; + unsigned long ipa; + char __data[0]; }; -enum yukon_fe_p_rev { - CHIP_REV_YU_FE2_A0 = 0, +struct trace_event_raw_kvm_set_way_flush { + struct trace_entry ent; + unsigned long vcpu_pc; + bool cache; + char __data[0]; }; -enum yukon_supr_rev { - CHIP_REV_YU_SU_A0 = 0, - CHIP_REV_YU_SU_B0 = 1, - CHIP_REV_YU_SU_B1 = 3, +struct trace_event_raw_kvm_toggle_cache { + struct trace_entry ent; + unsigned long vcpu_pc; + bool was; + bool now; + char __data[0]; }; -enum { - CFG_LED_MODE_MSK = 28, - CFG_LINK_2_AVAIL = 2, - CFG_LINK_1_AVAIL = 1, +struct trace_event_raw_kvm_timer_update_irq { + struct trace_entry ent; + unsigned long vcpu_id; + __u32 irq; + int level; + char __data[0]; }; -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, +struct trace_event_raw_kvm_get_timer_map { + struct trace_entry ent; + unsigned long vcpu_id; + int direct_vtimer; + int direct_ptimer; + int emul_vtimer; + int emul_ptimer; + char __data[0]; }; -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, +struct trace_event_raw_kvm_timer_save_state { + struct trace_entry ent; + unsigned long ctl; + unsigned long long cval; + int timer_idx; + char __data[0]; }; -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, +struct trace_event_raw_kvm_timer_restore_state { + struct trace_entry ent; + unsigned long ctl; + unsigned long long cval; + int timer_idx; + char __data[0]; }; -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, +struct trace_event_raw_kvm_timer_hrtimer_expire { + struct trace_entry ent; + int timer_idx; + char __data[0]; }; -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, +struct trace_event_raw_kvm_timer_emulate { + struct trace_entry ent; + int timer_idx; + bool should_fire; + char __data[0]; }; -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, +struct trace_event_raw_kvm_nested_eret { + struct trace_entry ent; + struct kvm_vcpu *vcpu; + unsigned long elr_el2; + unsigned long spsr_el2; + unsigned long target_mode; + unsigned long hcr_el2; + char __data[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, +struct trace_event_raw_kvm_inject_nested_exception { + struct trace_entry ent; + struct kvm_vcpu *vcpu; + unsigned long esr_el2; + int type; + unsigned long spsr_el2; + unsigned long pc; + unsigned long source_mode; + unsigned long hcr_el2; + char __data[0]; }; -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, +struct trace_event_raw_kvm_forward_sysreg_trap { + struct trace_entry ent; + u64 pc; + u32 sysreg; + bool is_read; + char __data[0]; }; -enum { - GMLC_RST_CLR = 2, - GMLC_RST_SET = 1, +struct kvm_host_data___2 { + struct kvm_cpu_context host_ctxt; }; -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, +struct kvm_vcpu_init { + __u32 target; + __u32 features[7]; }; -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, -}; +struct trace_event_data_offsets_kvm_entry {}; -enum { - PEX_RD_ACCESS = -2147483648, - PEX_DB_ACCESS = 1073741824, -}; +struct trace_event_data_offsets_kvm_exit {}; -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, -}; +struct trace_event_data_offsets_kvm_guest_fault {}; -enum yukon_prm_rev { - CHIP_REV_YU_PRM_Z1 = 1, - CHIP_REV_YU_PRM_A0 = 2, -}; +struct trace_event_data_offsets_kvm_access_fault {}; -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, -}; +struct trace_event_data_offsets_kvm_irq_line {}; + +struct trace_event_data_offsets_kvm_mmio_emulate {}; + +struct trace_event_data_offsets_kvm_mmio_nisv {}; + +struct trace_event_data_offsets_kvm_set_way_flush {}; + +struct trace_event_data_offsets_kvm_toggle_cache {}; + +struct trace_event_data_offsets_kvm_timer_update_irq {}; + +struct trace_event_data_offsets_kvm_get_timer_map {}; + +struct trace_event_data_offsets_kvm_timer_save_state {}; + +struct trace_event_data_offsets_kvm_timer_restore_state {}; -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, -}; +struct trace_event_data_offsets_kvm_timer_hrtimer_expire {}; -enum { - TIM_START = 4, - TIM_STOP = 2, - TIM_CLR_IRQ = 1, -}; +struct trace_event_data_offsets_kvm_timer_emulate {}; -enum { - B28_DPT_INI = 3584, - B28_DPT_VAL = 3588, - B28_DPT_CTRL = 3592, - B28_DPT_TST = 3594, -}; +struct trace_event_data_offsets_kvm_nested_eret {}; -enum { - DPT_START = 2, - DPT_STOP = 1, -}; +struct trace_event_data_offsets_kvm_inject_nested_exception {}; -enum { - GMAC_TI_ST_VAL = 3604, - GMAC_TI_ST_CTRL = 3608, - GMAC_TI_ST_TST = 3610, -}; +struct trace_event_data_offsets_kvm_forward_sysreg_trap {}; -enum { - GMT_ST_START = 4, - GMT_ST_STOP = 2, - GMT_ST_CLR_IRQ = 1, +struct kvm_enable_cap { + __u32 cap; + __u32 flags; + __u64 args[4]; + __u8 pad[64]; }; -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, +struct kvm_irq_level { + union { + __u32 irq; + __s32 status; + }; + __u32 level; }; -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, +struct kvm_reg_list { + __u64 n; + __u64 reg[0]; }; -enum { - RI_CLR_RD_PERR = 512, - RI_CLR_WR_PERR = 256, - RI_RST_CLR = 2, - RI_RST_SET = 1, +struct tlb_inv_context___2 { + struct kvm_s2_mmu___2 *mmu; + unsigned long flags; + u64 tcr; + u64 sctlr; }; -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, -}; +typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int); -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, -}; +typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); -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 sig_handler { + HANDLER_CURRENT = 0, + HANDLER_SIG_DFL = 1, + HANDLER_EXIT = 2, }; 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, + TRACE_SIGNAL_DELIVERED = 0, + TRACE_SIGNAL_IGNORED = 1, + TRACE_SIGNAL_ALREADY_PENDING = 2, + TRACE_SIGNAL_OVERFLOW_FAIL = 3, + TRACE_SIGNAL_LOSE_INFO = 4, }; -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, +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]; }; -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, +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]; }; -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, +struct multiprocess_signals { + sigset_t signal; + struct hlist_node node; }; -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, +struct sigaltstack { + void __attribute__((btf_type_tag("user"))) *ss_sp; + int ss_flags; + __kernel_size_t ss_size; }; -enum { - GM_RXCR_UCF_ENA = 32768, - GM_RXCR_MCF_ENA = 16384, - GM_RXCR_CRC_DIS = 8192, - GM_RXCR_PASS_FC = 4096, -}; +typedef struct sigaltstack stack_t; -enum { - BASE_GMAC_1 = 10240, - BASE_GMAC_2 = 14336, +struct compat_sigaltstack { + compat_uptr_t ss_sp; + int ss_flags; + compat_size_t ss_size; }; -enum flow_control { - FC_NONE = 0, - FC_TX = 1, - FC_RX = 2, - FC_BOTH = 3, -}; +typedef struct compat_sigaltstack compat_stack_t; -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, +struct compat_sigaction { + compat_uptr_t sa_handler; + compat_ulong_t sa_flags; + compat_uptr_t sa_restorer; + compat_sigset_t sa_mask; }; -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, +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; }; -enum { - MAC_TX_CLK_0_MHZ = 2, - MAC_TX_CLK_2_5_MHZ = 6, - MAC_TX_CLK_25_MHZ = 7, -}; +struct trace_event_data_offsets_signal_generate {}; -enum { - PHY_M_PC_MAN_MDI = 0, - PHY_M_PC_MAN_MDIX = 1, - PHY_M_PC_ENA_AUTO = 3, -}; +struct trace_event_data_offsets_signal_deliver {}; -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, +struct latch_tree_ops { + bool (*less)(struct latch_tree_node *, struct latch_tree_node *); + int (*comp)(void *, struct latch_tree_node *); }; enum { - PHY_M_FESC_DIS_WAIT = 4, - PHY_M_FESC_ENA_MCLK = 2, - PHY_M_FESC_SEL_CL_A = 1, + 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, }; -enum { - PHY_M_PC_DIS_LINK_Pa = 32768, - PHY_M_PC_DSC_MSK = 28672, - PHY_M_PC_DOWN_S_ENA = 2048, +struct compat_kexec_segment { + compat_uptr_t buf; + compat_size_t bufsz; + compat_ulong_t mem; + compat_size_t memsz; }; -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, +struct action_cache { + unsigned long allow_native[8]; + unsigned long allow_compat[8]; }; -enum { - PHY_M_FIB_FORCE_LNK = 1024, - PHY_M_FIB_SIGD_POL = 512, - PHY_M_FIB_TX_DIS = 8, -}; +struct notification; -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, +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; }; -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, +struct notification { + atomic_t requests; + u32 flags; + u64 next_id; + struct list_head notifications; }; -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, +struct seccomp_log_name { + u32 log; + const char *name; }; -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 notify_state { + SECCOMP_NOTIFY_INIT = 0, + SECCOMP_NOTIFY_SENT = 1, + SECCOMP_NOTIFY_REPLIED = 2, }; -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, +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; }; -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, +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; }; -enum { - PHY_CT_SP1000 = 64, - PHY_CT_SP100 = 8192, - PHY_CT_SP10 = 0, +struct seccomp_notif_sizes { + __u16 seccomp_notif; + __u16 seccomp_notif_resp; + __u16 seccomp_data; }; -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, +struct seccomp_notif { + __u64 id; + __u32 pid; + __u32 flags; + struct seccomp_data data; }; -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, +struct seccomp_notif_resp { + __u64 id; + __s64 val; + __s32 error; + __u32 flags; }; -enum { - BLINK_42MS = 0, - BLINK_84MS = 1, - BLINK_170MS = 2, - BLINK_340MS = 3, - BLINK_670MS = 4, +struct seccomp_notif_addfd { + __u64 id; + __u32 flags; + __u32 srcfd; + __u32 newfd; + __u32 newfd_flags; }; -enum { - PHY_M_FELP_LED2_MSK = 3840, - PHY_M_FELP_LED1_MSK = 240, - PHY_M_FELP_LED0_MSK = 15, +struct bpf_preload_info; + +struct bpf_preload_ops { + int (*preload)(struct bpf_preload_info *); + struct module *owner; }; -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, +struct bpf_preload_info { + char link_name[16]; + struct bpf_link *link; }; -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 bpf_type { + BPF_TYPE_UNSPEC = 0, + BPF_TYPE_PROG = 1, + BPF_TYPE_MAP = 2, + BPF_TYPE_LINK = 3, }; 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, + OPT_MODE = 0, }; -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, +struct map_iter { + void *key; + bool done; }; -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, +struct bpf_mount_opts { + umode_t mode; }; -enum led_mode { - MO_LED_NORM = 0, - MO_LED_BLINK = 1, - MO_LED_OFF = 2, - MO_LED_ON = 3, +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; }; -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, +typedef void (*btf_trace_hugepage_set_pmd)(void *, unsigned long, unsigned long); + +typedef void (*btf_trace_hugepage_set_pud)(void *, unsigned long, unsigned long); + +typedef void (*btf_trace_hugepage_update_pmd)(void *, unsigned long, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_hugepage_update_pud)(void *, unsigned long, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_set_migration_pmd)(void *, unsigned long, unsigned long); + +typedef void (*btf_trace_remove_migration_pmd)(void *, unsigned long, unsigned long); + +struct trace_event_raw_hugepage_set { + struct trace_entry ent; + unsigned long addr; + unsigned long pte; + char __data[0]; }; -enum { - PHY_ADDR_MARV = 0, +struct trace_event_raw_hugepage_update { + struct trace_entry ent; + unsigned long addr; + unsigned long pte; + unsigned long clr; + unsigned long set; + char __data[0]; }; -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, +struct trace_event_raw_migration_pmd { + struct trace_entry ent; + unsigned long addr; + unsigned long pmd; + char __data[0]; }; -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, +struct trace_event_data_offsets_hugepage_set {}; + +struct trace_event_data_offsets_hugepage_update {}; + +struct trace_event_data_offsets_migration_pmd {}; + +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: 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: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct page *internal_pages[8]; + struct file *aio_ring_file; + unsigned int id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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, +struct kioctx_cpu { + unsigned int reqs_available; }; -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, +struct ctx_rq_wait { + struct completion comp; + atomic_t count; }; 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, + 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, }; -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, +struct fsync_iocb { + struct file *file; + struct work_struct work; + bool datasync; + struct cred *creds; }; -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, +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; }; -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, +typedef int kiocb_cancel_fn(struct kiocb *); + +struct io_event { + __u64 data; + __u64 obj; + __s64 res; + __s64 res2; }; -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, +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; }; -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, +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; }; -enum { - PREF_UNIT_OP_ON = 8, - PREF_UNIT_OP_OFF = 4, - PREF_UNIT_RST_CLR = 2, - PREF_UNIT_RST_SET = 1, +struct aio_poll_table { + struct poll_table_struct pt; + struct aio_kiocb *iocb; + bool queued; + int error; }; -enum { - PHY_M_PC_COP_TX_DIS = 8, - PHY_M_PC_POW_D_ENA = 4, +typedef u32 compat_aio_context_t; + +struct __aio_sigset { + const sigset_t __attribute__((btf_type_tag("user"))) *sigmask; + size_t sigsetsize; }; -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, +struct __compat_aio_sigset { + compat_uptr_t sigmask; + compat_size_t sigsetsize; }; -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, +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]; }; -enum { - Q_R1 = 0, - Q_R2 = 128, - Q_XS1 = 512, - Q_XA1 = 640, - Q_XS2 = 768, - Q_XA2 = 896, +struct ext4_orphan_block_tail { + __le32 ob_magic; + __le32 ob_checksum; +}; + +struct squashfs_fragment_entry { + __le64 start_block; + __le32 size; + unsigned int unused; }; enum { - F_TX_CHK_AUTO_OFF = -2147483648, - F_TX_CHK_AUTO_ON = 1073741824, - F_M_RX_RAM_DIS = 16777216, + PARSE_INVALID = 1, + PARSE_NOT_LONGNAME = 2, + PARSE_EOF = 3, }; -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, +typedef unsigned long long llu; + +struct __fat_dirent { + long d_ino; + __kernel_off_t d_off; + unsigned short d_reclen; + char d_name[256]; }; -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, +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; }; -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, +struct compat_dirent { + u32 d_ino; + compat_off_t d_off; + u16 d_reclen; + char d_name[256]; }; -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, +struct nfs_netns_client { + struct kobject kobject; + struct kobject nfs_net_kobj; + struct net *net; + const char __attribute__((btf_type_tag("rcu"))) *identifier; }; -enum { - GM_PAR_MIB_CLR = 32, - GM_PAR_MIB_TST = 16, +enum nfs_ftype4 { + NF4BAD = 0, + NF4REG = 1, + NF4DIR = 2, + NF4BLK = 3, + NF4CHR = 4, + NF4LNK = 5, + NF4SOCK = 6, + NF4FIFO = 7, + NF4ATTRDIR = 8, + NF4NAMEDATTR = 9, }; enum { - GM_TXCR_FORCE_JAM = 32768, - GM_TXCR_CRC_DIS = 16384, - GM_TXCR_PAD_DIS = 8192, - GM_TXCR_COL_THR_MSK = 7168, + FATTR4_DIR_NOTIF_DELAY = 56, + FATTR4_DIRENT_NOTIF_DELAY = 57, + FATTR4_DACL = 58, + FATTR4_SACL = 59, + FATTR4_CHANGE_POLICY = 60, + FATTR4_FS_STATUS = 61, + FATTR4_FS_LAYOUT_TYPES = 62, + FATTR4_LAYOUT_HINT = 63, + FATTR4_LAYOUT_TYPES = 64, + FATTR4_LAYOUT_BLKSIZE = 65, + FATTR4_LAYOUT_ALIGNMENT = 66, + FATTR4_FS_LOCATIONS_INFO = 67, + FATTR4_MDSTHRESHOLD = 68, + FATTR4_RETENTION_GET = 69, + FATTR4_RETENTION_SET = 70, + FATTR4_RETENTEVT_GET = 71, + FATTR4_RETENTEVT_SET = 72, + FATTR4_RETENTION_HOLD = 73, + FATTR4_MODE_SET_MASKED = 74, + FATTR4_SUPPATTR_EXCLCREAT = 75, + FATTR4_FS_CHARSET_CAP = 76, }; 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, + FATTR4_CLONE_BLKSIZE = 77, + FATTR4_SPACE_FREED = 78, + FATTR4_CHANGE_ATTR_TYPE = 79, + FATTR4_SEC_LABEL = 80, }; -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 opentype4 { + NFS4_OPEN_NOCREATE = 0, + NFS4_OPEN_CREATE = 1, }; 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, + FATTR4_MODE_UMASK = 81, }; -enum { - TX_DYN_WM_ENA = 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 { - 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 limit_by4 { + NFS4_LIMIT_SIZE = 1, + NFS4_LIMIT_BLOCKS = 2, }; -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 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 { - 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, + FATTR4_XATTR_SUPPORT = 82, }; -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 lock_type4 { + NFS4_UNLOCK_LT = 0, + NFS4_READ_LT = 1, + NFS4_WRITE_LT = 2, + NFS4_READW_LT = 3, + NFS4_WRITEW_LT = 4, }; -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 nfs4_acl_type { + NFS4ACL_NONE = 0, + NFS4ACL_ACL = 1, + NFS4ACL_DACL = 2, + NFS4ACL_SACL = 3, }; -enum { - UDPTCP = 1, - CALSUM = 2, - WR_SUM = 4, - INIT_SUM = 8, - LOCK_SUM = 16, - INS_VLAN = 32, - EOP = 128, +enum state_protect_how4 { + SP4_NONE = 0, + SP4_MACH_CRED = 1, + SP4_SSV = 2, }; -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 data_content4 { + NFS4_CONTENT_DATA = 0, + NFS4_CONTENT_HOLE = 1, }; -enum { - LINKLED_OFF = 1, - LINKLED_ON = 2, - LINKLED_LINKSYNC_OFF = 4, - LINKLED_LINKSYNC_ON = 8, - LINKLED_BLINK_OFF = 16, - LINKLED_BLINK_ON = 32, +struct compound_hdr { + int32_t status; + uint32_t nops; + __be32 *nops_p; + uint32_t taglen; + char *tag; + uint32_t replen; + u32 minorversion; }; -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, +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; }; -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, +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; }; -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 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 sky2_status_le; +struct nfs_lock_res { + struct nfs4_sequence_res seq_res; + nfs4_stateid stateid; + struct nfs_seqid *lock_seqid; + struct nfs_seqid *open_seqid; +}; -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 nfs_lockt_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + struct file_lock *fl; + struct nfs_lowner lock_owner; }; -struct sky2_status_le { - __le32 status; - __le16 length; - u8 css; - u8 opcode; +struct nfs_lockt_res { + struct nfs4_sequence_res seq_res; + struct file_lock *denied; }; -struct sky2_stats { - struct u64_stats_sync syncp; - u64 packets; - u64 bytes; +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 tx_ring_info; +struct nfs_locku_res { + struct nfs4_sequence_res seq_res; + nfs4_stateid stateid; + struct nfs_seqid *seqid; +}; -struct sky2_tx_le; +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 rx_ring_info; +struct nfs4_readlink { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + unsigned int pgbase; + unsigned int pglen; + struct page **pages; +}; -struct sky2_rx_le; +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 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: 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 nfs4_readdir_res { + struct nfs4_sequence_res seq_res; + nfs4_verifier verifier; + unsigned int pgbase; }; -struct tx_ring_info { - struct sk_buff *skb; - unsigned long flags; - dma_addr_t mapaddr; - __u32 maplen; +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 sky2_tx_le { - __le32 addr; - __le16 length; - u8 ctrl; - u8 opcode; +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 rx_ring_info { - struct sk_buff *skb; - dma_addr_t data_addr; - __u32 data_size; - dma_addr_t frag_addr[2]; +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 sky2_rx_le { - __le32 addr; - __le16 length; - u8 ctrl; - u8 opcode; +struct nfs4_secinfo_res { + struct nfs4_sequence_res seq_res; + struct nfs4_secinfo_flavors *flavors; }; -struct dwc3_ep_file_map { - const char name[25]; - const struct file_operations * const fops; +struct nfs4_op_map { + union { + unsigned long longs[2]; + u32 words[4]; + } u; }; -struct musb_temp_buffer { - void *kmalloc_ptr; - void *old_xfer_buffer; - u8 data[0]; +struct nfs41_state_protection { + u32 how; + struct nfs4_op_map enforce; + struct nfs4_op_map allow; }; -struct atkbd { - struct ps2dev ps2dev; - struct input_dev *dev; - char name[64]; - char phys[32]; - unsigned short id; - unsigned short keycode[512]; - unsigned long force_release_mask[8]; - unsigned char set; - bool translated; - bool extra; - bool write; - bool softrepeat; - bool softraw; - bool scroll; - bool enabled; - unsigned char emul; - bool resend; - bool release; - unsigned long xl_bit; - unsigned int last; - unsigned long time; - unsigned long err_count; - struct delayed_work event_work; - unsigned long event_jiffies; - unsigned long event_mask; - struct mutex mutex; - struct vivaldi_data vdata; +struct nfs41_exchange_id_args { + struct nfs_client *client; + nfs4_verifier verifier; + u32 flags; + struct nfs41_state_protection state_protect; }; -struct ec_params_i2c_passthru_msg { - uint16_t addr_flags; - uint16_t len; +struct nfs41_exchange_id_res { + u64 clientid; + u32 seqid; + u32 flags; + struct nfs41_server_owner *server_owner; + struct nfs41_server_scope *server_scope; + struct nfs41_impl_id *impl_id; + struct nfs41_state_protection state_protect; }; -struct ec_params_i2c_passthru { - uint8_t port; - uint8_t num_msgs; - struct ec_params_i2c_passthru_msg msg[0]; +struct nfs41_create_session_args { + struct nfs_client *client; + u64 clientid; + uint32_t seqid; + uint32_t flags; + uint32_t cb_program; + struct nfs4_channel_attrs fc_attrs; + struct nfs4_channel_attrs bc_attrs; }; -struct ec_response_i2c_passthru { - uint8_t i2c_status; - uint8_t num_msgs; - uint8_t data[0]; +struct nfs41_create_session_res { + struct nfs4_sessionid sessionid; + uint32_t seqid; + uint32_t flags; + struct nfs4_channel_attrs fc_attrs; + struct nfs4_channel_attrs bc_attrs; }; -struct ec_i2c_device { - struct device *dev; - struct i2c_adapter adap; - struct cros_ec_device *ec; - u16 remote_bus; - u8 request_buf[256]; - u8 response_buf[256]; +struct nfs41_reclaim_complete_args { + struct nfs4_sequence_args seq_args; + unsigned char one_fs: 1; }; -struct rtd119x_watchdog_device { - struct watchdog_device wdt_dev; - void *base; - struct clk *clk; +struct nfs4_getdeviceinfo_args { + struct nfs4_sequence_args seq_args; + struct pnfs_device *pdev; + __u32 notify_types; }; -struct qcom_cpufreq_data { - void *base; - struct mutex throttle_lock; - int throttle_irq; - char irq_name[15]; - bool cancel_throttle; - struct delayed_work throttle_work; - struct cpufreq_policy *policy; - struct clk_hw cpu_clk; - bool per_core_dcvs; +struct nfs4_getdeviceinfo_res { + struct nfs4_sequence_res seq_res; + struct pnfs_device *pdev; + __u32 notification; }; -struct qcom_cpufreq_soc_data { - u32 reg_enable; - u32 reg_domain_state; - u32 reg_dcvs_ctrl; - u32 reg_freq_lut; - u32 reg_volt_lut; - u32 reg_intr_clr; - u32 reg_current_vote; - u32 reg_perf_state; - u8 lut_row_size; +struct nfs41_secinfo_no_name_args { + struct nfs4_sequence_args seq_args; + int style; }; -struct mmc_pwrseq_simple { - struct mmc_pwrseq pwrseq; - bool clk_enabled; - u32 post_power_on_delay_ms; - u32 power_off_delay_us; - struct clk *ext_clk; - struct gpio_descs *reset_gpios; +struct nfs41_test_stateid_args { + struct nfs4_sequence_args seq_args; + nfs4_stateid *stateid; }; -struct esdhc_clk_fixup { - const unsigned int sd_dflt_max_clk; - const unsigned int max_clk[11]; +struct nfs41_test_stateid_res { + struct nfs4_sequence_res seq_res; + unsigned int status; }; -struct sdhci_esdhc { - u8 vendor_ver; - u8 spec_ver; - bool quirk_incorrect_hostver; - bool quirk_limited_clk_division; - bool quirk_unreliable_pulse_detection; - bool quirk_tuning_erratum_type1; - bool quirk_tuning_erratum_type2; - bool quirk_ignore_data_inhibit; - bool quirk_delay_before_data_reset; - bool quirk_trans_complete_erratum; - bool in_sw_tuning; - unsigned int peripheral_clock; - const struct esdhc_clk_fixup *clk_fixup; - u32 div_ratio; +struct nfs41_free_stateid_args { + struct nfs4_sequence_args seq_args; + nfs4_stateid stateid; }; -struct scpi_chan; +struct nfs41_free_stateid_res { + struct nfs4_sequence_res seq_res; + unsigned int status; +}; -struct scpi_drvinfo { - u32 protocol_version; - u32 firmware_version; - bool is_legacy; - int num_chans; - int *commands; - unsigned long cmd_priority[1]; - atomic_t next_chan; - struct scpi_ops *scpi_ops; - struct scpi_chan *channels; - struct scpi_dvfs_info *dvfs[8]; +struct nfs41_bind_conn_to_session_args { + struct nfs_client *client; + struct nfs4_sessionid sessionid; + u32 dir; + bool use_conn_in_rdma_mode; + int retries; }; -struct scpi_xfer; +struct nfs41_bind_conn_to_session_res { + struct nfs4_sessionid sessionid; + u32 dir; + bool use_conn_in_rdma_mode; +}; -struct scpi_chan { - struct mbox_client cl; - struct mbox_chan *chan; - void *tx_payload; - void *rx_payload; - struct list_head rx_pending; - struct list_head xfers_list; - struct scpi_xfer *xfers; - spinlock_t rx_lock; - struct mutex xfers_lock; - u8 token; +struct nfs42_falloc_res { + struct nfs4_sequence_res seq_res; + unsigned int status; + struct nfs_fattr *falloc_fattr; + const struct nfs_server *falloc_server; }; -struct scpi_xfer { - u32 slot; - u32 cmd; - u32 status; - const void *tx_buf; - void *rx_buf; - unsigned int tx_len; - unsigned int rx_len; - struct list_head node; - struct completion done; +struct nfs42_offload_status_res { + struct nfs4_sequence_res osr_seq_res; + uint64_t osr_count; + int osr_status; }; -enum scpi_drv_cmds { - CMD_SCPI_CAPABILITIES = 0, - CMD_GET_CLOCK_INFO = 1, - CMD_GET_CLOCK_VALUE = 2, - CMD_SET_CLOCK_VALUE = 3, - CMD_GET_DVFS = 4, - CMD_SET_DVFS = 5, - CMD_GET_DVFS_INFO = 6, - CMD_SENSOR_CAPABILITIES = 7, - CMD_SENSOR_INFO = 8, - CMD_SENSOR_VALUE = 9, - CMD_SET_DEVICE_PWR_STATE = 10, - CMD_GET_DEVICE_PWR_STATE = 11, - CMD_MAX_COUNT = 12, +struct nfs42_getxattrres { + struct nfs4_sequence_res seq_res; + size_t xattr_len; }; -enum scpi_error_codes { - SCPI_SUCCESS = 0, - SCPI_ERR_PARAM = 1, - SCPI_ERR_ALIGN = 2, - SCPI_ERR_SIZE = 3, - SCPI_ERR_HANDLER = 4, - SCPI_ERR_ACCESS = 5, - SCPI_ERR_RANGE = 6, - SCPI_ERR_TIMEOUT = 7, - SCPI_ERR_NOMEM = 8, - SCPI_ERR_PWRSTATE = 9, - SCPI_ERR_SUPPORT = 10, - SCPI_ERR_DEVICE = 11, - SCPI_ERR_BUSY = 12, - SCPI_ERR_MAX = 13, +struct nfs42_setxattrargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + const u32 *bitmask; + const char *xattr_name; + u32 xattr_flags; + size_t xattr_len; + struct page **xattr_pages; }; -struct scpi_shared_mem { - __le32 command; - __le32 status; - u8 payload[0]; +struct nfs42_listxattrsargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + u32 count; + u64 cookie; + struct page **xattr_pages; }; -struct legacy_clk_set_value { - __le32 rate; - __le16 id; - __le16 reserved; +struct nfs42_listxattrsres { + struct nfs4_sequence_res seq_res; + struct page *scratch; + void *xattr_buf; + size_t xattr_len; + u64 cookie; + bool eof; + size_t copied; }; -struct scp_capabilities { - __le32 protocol_version; - __le32 event_version; - __le32 platform_version; - __le32 commands[4]; +struct read_plus_segment { + enum data_content4 type; + uint64_t offset; + union { + struct { + uint64_t length; + } hole; + struct { + uint32_t length; + unsigned int from; + } data; + }; }; -struct legacy_scpi_shared_mem { - __le32 status; - u8 payload[0]; +struct nfs_setattrres { + struct nfs4_sequence_res seq_res; + struct nfs_fattr *fattr; + const struct nfs_server *server; }; -struct clk_get_info { - __le16 id; - __le16 flags; - __le32 min_rate; - __le32 max_rate; - u8 name[20]; +struct nfs4_fsinfo_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; }; -struct clk_set_value { - __le16 id; - __le16 reserved; - __le32 rate; +struct nfs4_fsinfo_res { + struct nfs4_sequence_res seq_res; + struct nfs_fsinfo *fsinfo; }; -struct dvfs_set { - u8 domain; - u8 index; +struct nfs4_accessargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; + u32 access; }; -struct dvfs_info { - u8 domain; - u8 opp_count; - __le16 latency; - struct { - __le32 freq; - __le32 m_volt; - } opps[16]; +struct nfs4_accessres { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; + u32 supported; + u32 access; }; -struct _scpi_sensor_info { - __le16 sensor_id; - u8 class; - u8 trigger_type; - char name[20]; +struct nfs4_getattr_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; }; -struct dev_pstate_set { - __le16 dev_id; - u8 pstate; -} __attribute__((packed)); +struct nfs4_getattr_res { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; +}; -typedef struct { - u32 version; - u32 num_entries; - u32 desc_size; - u32 flags; - efi_memory_desc_t entry[0]; -} efi_memory_attributes_table_t; +struct nfs4_lookup_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *dir_fh; + const struct qstr *name; + const u32 *bitmask; +}; -struct rproc_dump_segment { - struct list_head node; - dma_addr_t da; - size_t size; - void *priv; - void (*dump)(struct rproc *, struct rproc_dump_segment *, void *, size_t, size_t); - loff_t offset; +struct nfs4_lookup_res { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; + struct nfs_fh *fh; }; -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 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 rproc_coredump_state { - struct rproc *rproc; - void *header; - struct completion dump_done; +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 iio_subirq { - bool enabled; +struct nfs4_pathconf_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; }; -struct iio_trigger_ops; +struct nfs4_pathconf_res { + struct nfs4_sequence_res seq_res; + struct nfs_pathconf *pathconf; +}; -struct iio_trigger { - const struct iio_trigger_ops *ops; - struct module *owner; - int id; - const char *name; - struct device dev; - struct list_head list; - struct list_head alloc_list; - atomic_t use_count; - struct irq_chip subirq_chip; - int subirq_base; - struct iio_subirq subirqs[2]; - unsigned long pool[1]; - struct mutex pool_lock; - bool attached_own_device; - struct work_struct reenable_work; +struct nfs4_statfs_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; }; -struct iio_trigger_ops { - int (*set_trigger_state)(struct iio_trigger *, bool); - void (*reenable)(struct iio_trigger *); - int (*validate_device)(struct iio_trigger *, struct iio_dev *); +struct nfs4_statfs_res { + struct nfs4_sequence_res seq_res; + struct nfs_fsstat *fsstat; }; -struct iio_poll_func { - struct iio_dev *indio_dev; - irqreturn_t (*h)(int, void *); - irqreturn_t (*thread)(int, void *); - int type; - char *name; - int irq; - s64 timestamp; +struct nfs4_readlink_res { + struct nfs4_sequence_res seq_res; }; -struct link_ctl_info { - snd_ctl_elem_type_t type; - int count; - int min_val; - int max_val; +struct nfs4_server_caps_arg { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fhandle; + const u32 *bitmask; }; -struct link_master; +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 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 nfs_setaclres { + struct nfs4_sequence_res seq_res; }; -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 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; }; -enum txtime_flags { - SOF_TXTIME_DEADLINE_MODE = 1, - SOF_TXTIME_REPORT_ERRORS = 2, - SOF_TXTIME_FLAGS_LAST = 2, - SOF_TXTIME_FLAGS_MASK = 3, +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 linger { - int l_onoff; - int l_linger; +struct nfs_release_lockowner_args { + struct nfs4_sequence_args seq_args; + struct nfs_lowner lock_owner; }; -struct sock_txtime { - __kernel_clockid_t clockid; - __u32 flags; +struct nfs4_secinfo_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *dir_fh; + const struct qstr *name; }; -struct so_timestamping { - int flags; - int bind_phc; +struct nfs4_fsid_present_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + clientid4 clientid; + unsigned char renew: 1; }; -struct link_mode_info { - int speed; - u8 lanes; - u8 duplex; +struct nfs4_fsid_present_res { + struct nfs4_sequence_res seq_res; + struct nfs_fh *fh; + unsigned char renew: 1; }; -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 nfs4_get_lease_time_args { + struct nfs4_sequence_args la_seq_args; }; -struct phc_vclocks_reply_data { - struct ethnl_reply_data base; - int num; - int *index; +struct nfs4_get_lease_time_res { + struct nfs4_sequence_res lr_seq_res; + struct nfs_fsinfo *lr_fsinfo; }; -typedef u64 (*btf_bpf_tcp_send_ack)(struct tcp_sock *, u32); +struct nfs41_reclaim_complete_res { + struct nfs4_sequence_res seq_res; +}; -struct xdr_array2_desc; +struct nfs42_clone_res { + struct nfs4_sequence_res seq_res; + unsigned int rpc_status; + struct nfs_fattr *dst_fattr; + const struct nfs_server *server; +}; -typedef int (*xdr_xcode_elem_t)(struct xdr_array2_desc *, void *); +struct nfs4_lookupp_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; +}; -struct xdr_array2_desc { - unsigned int elem_size; - unsigned int array_len; - unsigned int array_maxlen; - xdr_xcode_elem_t xcode; +struct nfs4_lookupp_res { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; + struct nfs_fh *fh; }; -enum hp_flags_bits { - HANDSHAKE_F_PROTO_NOTIFY = 0, +struct nfs42_layouterror_args { + struct nfs4_sequence_args seq_args; + struct inode *inode; + unsigned int num_errors; + struct nfs42_layout_error errors[5]; }; -enum { - HANDSHAKE_CMD_READY = 1, - HANDSHAKE_CMD_ACCEPT = 2, - HANDSHAKE_CMD_DONE = 3, - __HANDSHAKE_CMD_MAX = 4, - HANDSHAKE_CMD_MAX = 3, +struct nfs42_layouterror_res { + struct nfs4_sequence_res seq_res; + unsigned int num_errors; + int rpc_status; }; -enum hn_flags_bits { - HANDSHAKE_F_NET_DRAINING = 0, +struct nfs42_getxattrargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + const char *xattr_name; + size_t xattr_len; + struct page **xattr_pages; }; -struct handshake_net { - spinlock_t hn_lock; - int hn_pending; - int hn_pending_max; - struct list_head hn_requests; - unsigned long hn_flags; +struct nfs42_setxattrres { + struct nfs4_sequence_res seq_res; + struct nfs4_change_info cinfo; + struct nfs_fattr *fattr; + const struct nfs_server *server; }; -struct vdso_abi_info { - const char *name; - const char *vdso_code_start; - const char *vdso_code_end; - unsigned long vdso_pages; - struct vm_special_mapping *dm; - struct vm_special_mapping *cm; +struct nfs42_removexattrargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + const char *xattr_name; }; -enum vdso_abi { - VDSO_ABI_AA64 = 0, - VDSO_ABI_AA32 = 1, +struct nfs42_removexattrres { + struct nfs4_sequence_res seq_res; + struct nfs4_change_info cinfo; }; -enum aarch32_map { - AA32_MAP_VECTORS = 0, - AA32_MAP_SIGPAGE = 1, - AA32_MAP_VVAR = 2, - AA32_MAP_VDSO = 3, +struct tracefs_dir_ops { + int (*mkdir)(const char *); + int (*rmdir)(const char *); }; -enum vvar_pages { - VVAR_DATA_PAGE_OFFSET = 0, - VVAR_TIMENS_PAGE_OFFSET = 1, - VVAR_NR_PAGES = 2, +struct tracefs_mount_opts { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; }; -enum aarch64_map { - AA64_MAP_VVAR = 0, - AA64_MAP_VDSO = 1, +struct tracefs_fs_info { + struct tracefs_mount_opts mount_opts; }; -typedef u64 p4dval_t; +struct crypto_istat_hash { + atomic64_t hash_cnt; + atomic64_t hash_tlen; + atomic64_t err_cnt; +}; -struct kvm_pmu_event_filter { - __u16 base_event; - __u16 nevents; - __u8 action; - __u8 pad[3]; +struct crypto_report_hash { + char type[64]; + unsigned int blocksize; + unsigned int digestsize; }; -struct arm_pmu_entry { - struct list_head entry; - struct arm_pmu *arm_pmu; +struct asymmetric_key_parser { + struct list_head link; + struct module *owner; + const char *name; + int (*parse)(struct key_preparsed_payload *); }; -typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *); +enum blacklist_hash_type { + BLACKLIST_HASH_X509_TBS = 1, + BLACKLIST_HASH_BINARY = 2, +}; -typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int); +struct pr_keys { + u32 generation; + u32 num_keys; + u64 keys[0]; +}; -typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); +struct pr_held_reservation { + u64 key; + u32 generation; + enum pr_type type; +}; -typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *); +struct pr_clear { + __u64 key; + __u32 flags; + __u32 __pad; +}; -typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t); +struct pr_reservation { + __u64 key; + __u32 type; + __u32 flags; +}; -typedef void (*btf_trace_sched_waking)(void *, struct task_struct *); +struct pr_registration { + __u64 old_key; + __u64 new_key; + __u32 flags; + __u32 __pad; +}; -typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *); +struct compat_hd_geometry { + unsigned char heads; + unsigned char sectors; + unsigned short cylinders; + u32 start; +}; -typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *); +struct compat_blkpg_ioctl_arg { + compat_int_t op; + compat_int_t flags; + compat_int_t datalen; + compat_caddr_t data; +}; -typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int); +struct pr_preempt { + __u64 old_key; + __u64 new_key; + __u32 type; + __u32 flags; +}; -typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int); +struct io_timeout { + struct file *file; + u32 off; + u32 target_seq; + u32 repeats; + struct list_head list; + struct io_kiocb *head; + struct io_kiocb *prev; +}; -typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *); +struct io_timeout_rem { + struct file *file; + u64 addr; + struct timespec64 ts; + u32 flags; + bool ltimeout; +}; -typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *); +struct io_timeout_data { + struct io_kiocb *req; + struct hrtimer timer; + struct timespec64 ts; + enum hrtimer_mode mode; + u32 flags; +}; -typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *); +typedef struct { + __be64 a; + __be64 b; +} be128; -typedef void (*btf_trace_sched_process_wait)(void *, struct pid *); +struct gf128mul_4k; -typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *); +struct gf128mul_64k { + struct gf128mul_4k *t[16]; +}; -typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *); +struct gf128mul_4k { + be128 t[256]; +}; -typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64, u64); +typedef struct { + __le64 b; + __le64 a; +} le128; -typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, struct task_struct *); +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, +}; -typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int); +struct sunxi_sc_nmi_reg_offs { + u32 ctrl; + u32 pend; + u32 enable; +}; -typedef void (*btf_trace_sched_stick_numa)(void *, struct task_struct *, int, struct task_struct *, int); +enum { + SUNXI_SRC_TYPE_LEVEL_LOW = 0, + SUNXI_SRC_TYPE_EDGE_FALLING = 1, + SUNXI_SRC_TYPE_LEVEL_HIGH = 2, + SUNXI_SRC_TYPE_EDGE_RISING = 3, +}; -typedef void (*btf_trace_sched_swap_numa)(void *, struct task_struct *, int, struct task_struct *, int); +struct mtk_sysirq_chip_data { + raw_spinlock_t lock; + u32 nr_intpol_bases; + void **intpol_bases; + u32 *intpol_words; + u8 *intpol_idx; + u16 *which_word; +}; -typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int); +struct fsl_mc_child_objs { + int child_count; + struct fsl_mc_obj_desc *child_array; +}; -typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *); +struct phy_axg_pcie_priv { + struct phy *phy; + struct phy *analog; + struct regmap *regmap; + struct reset_control *reset; +}; -typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *); +struct rockchip_p3phy_priv; -typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *); +struct rockchip_p3phy_ops { + int (*phy_init)(struct rockchip_p3phy_priv *); +}; -typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *); +struct rockchip_p3phy_priv { + const struct rockchip_p3phy_ops *ops; + void *mmio; + int mode; + int pcie30_phymode; + struct regmap *phy_grf; + struct regmap *pipe_grf; + struct reset_control *p30phy; + struct phy *phy; + struct clk_bulk_data *clks; + int num_clks; + int num_lanes; + u32 lanes[4]; +}; -typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *); +struct ns2_pinconf { + unsigned int base; + unsigned int offset; + unsigned int src_shift; + unsigned int input_en; + unsigned int pull_shift; + unsigned int drive_shift; +}; -typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *); +struct ns2_pin { + unsigned int pin; + char *name; + struct ns2_pinconf pin_conf; +}; -typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *); +struct ns2_mux { + unsigned int base; + unsigned int offset; + unsigned int shift; + unsigned int mask; + unsigned int alt; +}; -typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool); +struct ns2_pin_group { + const char *name; + const unsigned int *pins; + const unsigned int num_pins; + const struct ns2_mux mux; +}; -typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *); +struct ns2_pin_function { + const char *name; + const char * const *groups; + const unsigned int num_groups; +}; -typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *); +struct ns2_mux_log; -typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int); +struct ns2_pinctrl { + struct pinctrl_dev *pctl; + struct device *dev; + void *base0; + void *base1; + void *pinconf_base; + const struct ns2_pin_group *groups; + unsigned int num_groups; + const struct ns2_pin_function *functions; + unsigned int num_functions; + struct ns2_mux_log *mux_log; + spinlock_t lock; +}; -typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *); +struct ns2_mux_log { + struct ns2_mux mux; + bool is_configured; +}; -typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, unsigned long, void *); +struct meson8_pmx_data { + bool is_gpio; + unsigned int reg; + unsigned int bit; +}; -typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, unsigned long, void *); +struct rtd_pinctrl { + struct device *dev; + struct pinctrl_dev *pcdev; + void *base; + struct pinctrl_desc desc; + const struct rtd_pinctrl_desc *info; + struct regmap *regmap_pinctrl; +}; -typedef void (*btf_trace_ipi_entry)(void *, const char *); +struct mb86s70_gpio_chip { + struct gpio_chip gc; + void *base; + struct clk *clk; + spinlock_t lock; +}; -typedef void (*btf_trace_ipi_exit)(void *, const char *); +struct xgene_pcie { + struct device_node *node; + struct device *dev; + struct clk *clk; + void *csr_base; + void *cfg_base; + unsigned long cfg_addr; + bool link_up; + u32 version; +}; enum { - cpuset = 0, - possible = 1, - fail = 2, + ACPI_GENL_CMD_UNSPEC = 0, + ACPI_GENL_CMD_EVENT = 1, + __ACPI_GENL_CMD_MAX = 2, }; -union cpumask_rcuhead { - cpumask_t cpumask; - struct callback_head rcu; +enum { + ACPI_GENL_ATTR_UNSPEC = 0, + ACPI_GENL_ATTR_EVENT = 1, + __ACPI_GENL_ATTR_MAX = 2, }; -struct trace_event_raw_sched_kthread_stop { - struct trace_entry ent; - char comm[16]; - pid_t pid; - char __data[0]; +struct acpi_bus_event { + struct list_head node; + acpi_device_class device_class; + acpi_bus_id bus_id; + u32 type; + u32 data; }; -struct trace_event_raw_sched_kthread_stop_ret { - struct trace_entry ent; - int ret; - char __data[0]; +struct acpi_genl_event { + acpi_device_class device_class; + char bus_id[15]; + u32 type; + u32 data; }; -struct trace_event_raw_sched_kthread_work_queue_work { - struct trace_entry ent; - void *work; - void *function; - void *worker; - char __data[0]; +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 trace_event_raw_sched_kthread_work_execute_start { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; +struct cpc_register_resource { + acpi_object_type type; + u64 *sys_mem_vaddr; + union { + struct cpc_reg reg; + u64 int_value; + } cpc_entry; }; -struct trace_event_raw_sched_kthread_work_execute_end { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; +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; }; -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]; +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 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 cppc_perf_caps { + u32 guaranteed_perf; + u32 highest_perf; + u32 nominal_perf; + u32 lowest_perf; + u32 lowest_nonlinear_perf; + u32 lowest_freq; + u32 nominal_freq; + u32 energy_perf; + bool auto_sel; }; -struct 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 cppc_perf_ctrls { + u32 max_perf; + u32 min_perf; + u32 desired_perf; + u32 energy_perf; }; -struct trace_event_raw_sched_process_template { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int prio; - char __data[0]; +struct cppc_perf_fb_ctrs { + u64 reference; + u64 delivered; + u64 reference_perf; + u64 wraparound_time; }; -struct trace_event_raw_sched_process_wait { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int prio; - char __data[0]; +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 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 acpi_pcct_shared_memory { + u32 signature; + u16 command; + u16 status; }; -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 clk_multiplier { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u8 flags; + spinlock_t *lock; }; -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 u32_fract { + __u32 numerator; + __u32 denominator; }; -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 meson_g12a_data { + const struct meson_eeclkc_data eeclkc_data; + int (*dvfs_setup)(struct platform_device *); }; -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 g12a_cpu_clk_postmux_nb_data { + struct notifier_block nb; + struct clk_hw *xtal; + struct clk_hw *cpu_clk_dyn; + struct clk_hw *cpu_clk_postmux0; + struct clk_hw *cpu_clk_postmux1; + struct clk_hw *cpu_clk_premux1; }; -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 g12a_sys_pll_nb_data { + struct notifier_block nb; + struct clk_hw *sys_pll; + struct clk_hw *cpu_clk; + struct clk_hw *cpu_clk_dyn; }; -struct trace_event_raw_sched_wake_idle_without_ipi { - struct trace_entry ent; - int cpu; - char __data[0]; +struct exynos_arm64_cmu_data { + struct samsung_clk_reg_dump *clk_save; + unsigned int nr_clk_save; + const struct samsung_clk_reg_dump *clk_suspend; + unsigned int nr_clk_suspend; + struct clk *clk; + struct clk **pclks; + int nr_pclks; + struct samsung_clk_provider *ctx; }; -struct trace_event_raw_ipi_raise { - struct trace_entry ent; - u32 __data_loc_target_cpus; - const char *reason; - char __data[0]; +struct _ccu_nk { + unsigned long n; + unsigned long min_n; + unsigned long max_n; + unsigned long k; + unsigned long min_k; + unsigned long max_k; }; -struct trace_event_raw_ipi_send_cpu { - struct trace_entry ent; - unsigned int cpu; - void *callsite; - void *callback; - char __data[0]; +enum dpio_channel_mode { + DPIO_NO_CHANNEL = 0, + DPIO_LOCAL_CHANNEL = 1, }; -struct trace_event_raw_ipi_send_cpumask { - struct trace_entry ent; - u32 __data_loc_cpumask; - void *callsite; - void *callback; - char __data[0]; +struct dpio_cmd_open { + __le32 dpio_id; }; -struct trace_event_raw_ipi_handler { - struct trace_entry ent; - const char *reason; - char __data[0]; +struct dpio_rsp_get_attr { + __le32 id; + __le16 qbman_portal_id; + u8 num_priorities; + u8 channel_mode; + __le64 qbman_portal_ce_addr; + __le64 qbman_portal_ci_addr; + __le32 qbman_version; + __le32 pad1; + __le32 clk; }; -struct trace_event_data_offsets_sched_process_exec { - u32 filename; +struct dpio_stashing_dest { + u8 sdest; }; -struct trace_event_data_offsets_ipi_raise { - u32 target_cpus; +struct dpio_attr { + int id; + u64 qbman_portal_ce_offset; + u64 qbman_portal_ci_offset; + u16 qbman_portal_id; + enum dpio_channel_mode channel_mode; + u8 num_priorities; + u32 qbman_version; + u32 clk; }; -struct trace_event_data_offsets_ipi_send_cpumask { - u32 cpumask; +struct rzv2m_pwc_priv { + void *base; + struct device *dev; + struct gpio_chip gp; + unsigned long ch_en_bits[1]; }; -struct set_affinity_pending; +struct rpi_power_domain { + u32 domain; + bool enabled; + bool old_interface; + struct generic_pm_domain base; + struct rpi_firmware *fw; +}; -struct migration_arg { - struct task_struct *task; - int dest_cpu; - struct set_affinity_pending *pending; +struct rpi_power_domains { + bool has_new_interface; + struct genpd_onecell_data xlate; + struct rpi_firmware *fw; + struct rpi_power_domain domains[23]; }; -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 rpi_power_domain_packet { + u32 domain; + u32 on; }; -struct trace_event_data_offsets_sched_kthread_stop {}; +struct gntdev_unmap_notify { + int flags; + int addr; + evtchn_port_t event; +}; -struct trace_event_data_offsets_sched_kthread_stop_ret {}; +struct ioctl_gntdev_grant_ref; -struct trace_event_data_offsets_sched_kthread_work_queue_work {}; +struct gntdev_grant_map { + atomic_t in_use; + struct mmu_interval_notifier notifier; + bool notifier_init; + struct list_head next; + int index; + int count; + int flags; + refcount_t users; + struct gntdev_unmap_notify notify; + struct ioctl_gntdev_grant_ref *grants; + struct gnttab_map_grant_ref *map_ops; + struct gnttab_unmap_grant_ref *unmap_ops; + struct gnttab_map_grant_ref *kmap_ops; + struct gnttab_unmap_grant_ref *kunmap_ops; + bool *being_removed; + struct page **pages; + unsigned long pages_vm_start; + atomic_t live_grants; + struct gntab_unmap_queue_data unmap_data; +}; -struct trace_event_data_offsets_sched_kthread_work_execute_start {}; +struct ioctl_gntdev_grant_ref { + __u32 domid; + __u32 ref; +}; -struct trace_event_data_offsets_sched_kthread_work_execute_end {}; +struct gntdev_priv { + struct list_head maps; + struct mutex lock; +}; -struct trace_event_data_offsets_sched_wakeup_template {}; +struct ioctl_gntdev_map_grant_ref { + __u32 count; + __u32 pad; + __u64 index; + struct ioctl_gntdev_grant_ref refs[1]; +}; -struct trace_event_data_offsets_sched_switch {}; +struct ioctl_gntdev_unmap_notify { + __u64 index; + __u32 action; + __u32 event_channel_port; +}; -struct trace_event_data_offsets_sched_migrate_task {}; +struct gntdev_grant_copy_segment; -struct trace_event_data_offsets_sched_process_template {}; +struct ioctl_gntdev_grant_copy { + unsigned int count; + struct gntdev_grant_copy_segment __attribute__((btf_type_tag("user"))) *segments; +}; -struct trace_event_data_offsets_sched_process_wait {}; +struct gntdev_grant_copy_segment { + union { + void __attribute__((btf_type_tag("user"))) *virt; + struct { + grant_ref_t ref; + __u16 offset; + domid_t domid; + } foreign; + } source; + union { + void __attribute__((btf_type_tag("user"))) *virt; + struct { + grant_ref_t ref; + __u16 offset; + domid_t domid; + } foreign; + } dest; + __u16 len; + __u16 flags; + __s16 status; +}; -struct trace_event_data_offsets_sched_process_fork {}; +struct gntdev_copy_batch { + struct gnttab_copy ops[16]; + struct page *pages[16]; + s16 __attribute__((btf_type_tag("user"))) *status[16]; + unsigned int nr_ops; + unsigned int nr_pages; + bool writeable; +}; -struct trace_event_data_offsets_sched_stat_runtime {}; +struct ioctl_gntdev_get_offset_for_vaddr { + __u64 vaddr; + __u64 offset; + __u32 count; + __u32 pad; +}; -struct trace_event_data_offsets_sched_pi_setprio {}; +struct ioctl_gntdev_unmap_grant_ref { + __u64 index; + __u32 count; + __u32 pad; +}; -struct trace_event_data_offsets_sched_move_numa {}; +struct xmaddr { + phys_addr_t maddr; +}; -struct trace_event_data_offsets_sched_numa_pair_template {}; +typedef struct xmaddr xmaddr_t; -struct trace_event_data_offsets_sched_wake_idle_without_ipi {}; +struct mt6397_regulator_info { + struct regulator_desc desc; + u32 qi; + u32 vselon_reg; + u32 vselctrl_reg; + u32 vselctrl_mask; + u32 modeset_reg; + u32 modeset_mask; +}; -struct trace_event_data_offsets_ipi_send_cpu {}; +enum { + MT6397_ID_VPCA15 = 0, + MT6397_ID_VPCA7 = 1, + MT6397_ID_VSRAMCA15 = 2, + MT6397_ID_VSRAMCA7 = 3, + MT6397_ID_VCORE = 4, + MT6397_ID_VGPU = 5, + MT6397_ID_VDRM = 6, + MT6397_ID_VIO18 = 7, + MT6397_ID_VTCXO = 8, + MT6397_ID_VA28 = 9, + MT6397_ID_VCAMA = 10, + MT6397_ID_VIO28 = 11, + MT6397_ID_VUSB = 12, + MT6397_ID_VMC = 13, + MT6397_ID_VMCH = 14, + MT6397_ID_VEMC3V3 = 15, + MT6397_ID_VGP1 = 16, + MT6397_ID_VGP2 = 17, + MT6397_ID_VGP3 = 18, + MT6397_ID_VGP4 = 19, + MT6397_ID_VGP5 = 20, + MT6397_ID_VGP6 = 21, + MT6397_ID_VIBR = 22, + MT6397_ID_RG_MAX = 23, +}; -struct trace_event_data_offsets_ipi_handler {}; +struct qcom_geni_private_data { + struct uart_driver *drv; + u32 poll_cached_bytes; + unsigned int poll_cached_bytes_cnt; + u32 write_cached_bytes; + unsigned int write_cached_bytes_cnt; +}; -typedef int (*tg_visitor)(struct task_group *, void *); +struct qcom_geni_device_data; -struct migration_swap_arg { - struct task_struct *src_task; - struct task_struct *dst_task; - int src_cpu; - int dst_cpu; +struct qcom_geni_serial_port { + struct uart_port uport; + struct geni_se se; + const char *name; + u32 tx_fifo_depth; + u32 tx_fifo_width; + u32 rx_fifo_depth; + dma_addr_t tx_dma_addr; + dma_addr_t rx_dma_addr; + bool setup; + unsigned int baud; + unsigned long clk_rate; + void *rx_buf; + u32 loopback; + bool brk; + unsigned int tx_remaining; + int wakeup_irq; + bool rx_tx_swap; + bool cts_rts_swap; + struct qcom_geni_private_data private_data; + const struct qcom_geni_device_data *dev_data; }; -struct tp_transition_snapshot { - unsigned long rcu; - unsigned long srcu; - bool ongoing; +struct qcom_geni_device_data { + bool console; + enum geni_se_xfer_mode mode; }; -enum tp_func_state { - TP_FUNC_0 = 0, - TP_FUNC_1 = 1, - TP_FUNC_2 = 2, - TP_FUNC_N = 3, +enum geni_icc_path_index { + GENI_TO_CORE = 0, + CPU_TO_GENI = 1, + GENI_TO_DDR = 2, }; -enum tp_transition_sync { - TP_TRANSITION_SYNC_1_0_1 = 0, - TP_TRANSITION_SYNC_N_2_1 = 1, - _NR_TP_TRANSITION_SYNC = 2, +struct xgene_rng_dev { + u32 irq; + void *csr_base; + u32 revision; + u32 datum_size; + u32 failure_cnt; + unsigned long failure_ts; + struct timer_list failure_timer; + struct device *dev; }; -struct tp_module { - struct list_head list; - struct module *mod; +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 tp_probes { - struct callback_head rcu; - struct tracepoint_func probes[0]; +struct devres_node { + struct list_head entry; + dr_release_t release; + const char *name; + size_t size; }; -typedef void (*btf_trace_cpu_idle)(void *, unsigned int, unsigned int); +struct devres { + struct devres_node node; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u8 data[0]; +}; -typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool); +struct devres_group { + struct devres_node node[2]; + void *id; + int color; +}; -typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int); +struct action_devres { + void *data; + void (*action)(void *); +}; -typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32); +struct pages_devres { + unsigned long addr; + unsigned int order; +}; -typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int); +enum blkif_state { + BLKIF_STATE_DISCONNECTED = 0, + BLKIF_STATE_CONNECTED = 1, + BLKIF_STATE_SUSPENDED = 2, + BLKIF_STATE_ERROR = 3, +}; -typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *); +enum blk_req_status { + REQ_PROCESSING = 0, + REQ_WAITING = 1, + REQ_DONE = 2, + REQ_ERROR = 3, + REQ_EOPNOTSUPP = 4, +}; -typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int); +typedef uint16_t blkif_vdev_t; -typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int); +struct blkfront_ring_info; -typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool); +struct blkfront_info { + struct mutex mutex; + struct xenbus_device *xbdev; + struct gendisk *gd; + u16 sector_size; + unsigned int physical_sector_size; + unsigned long vdisk_info; + int vdevice; + blkif_vdev_t handle; + enum blkif_state connected; + unsigned int nr_ring_pages; + struct request_queue *rq; + unsigned int feature_flush: 1; + unsigned int feature_fua: 1; + unsigned int feature_discard: 1; + unsigned int feature_secdiscard: 1; + unsigned int feature_persistent_parm: 1; + unsigned int feature_persistent: 1; + unsigned int bounce: 1; + unsigned int discard_granularity; + unsigned int discard_alignment; + unsigned int max_indirect_segments; + int is_ready; + struct blk_mq_tag_set tag_set; + struct blkfront_ring_info *rinfo; + unsigned int nr_rings; + unsigned int rinfo_size; + struct list_head requests; + struct bio_list bio_list; + struct list_head info_list; +}; -typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int); +struct blkif_sring; -typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int); +struct blkif_front_ring { + RING_IDX req_prod_pvt; + RING_IDX rsp_cons; + unsigned int nr_ents; + struct blkif_sring *sring; +}; -typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int); +typedef uint64_t blkif_sector_t; -typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int); +struct blkif_request_segment { + grant_ref_t gref; + uint8_t first_sect; + uint8_t last_sect; +}; -typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int); +struct blkif_request_rw { + uint8_t nr_segments; + blkif_vdev_t handle; + uint32_t _pad1; + uint64_t id; + blkif_sector_t sector_number; + struct blkif_request_segment seg[11]; +} __attribute__((packed)); -typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int); +struct blkif_request_discard { + uint8_t flag; + blkif_vdev_t _pad1; + uint32_t _pad2; + uint64_t id; + blkif_sector_t sector_number; + uint64_t nr_sectors; + uint8_t _pad3; +} __attribute__((packed)); -typedef void (*btf_trace_pm_qos_add_request)(void *, s32); +struct blkif_request_other { + uint8_t _pad1; + blkif_vdev_t _pad2; + uint32_t _pad3; + uint64_t id; +} __attribute__((packed)); -typedef void (*btf_trace_pm_qos_update_request)(void *, s32); +struct blkif_request_indirect { + uint8_t indirect_op; + uint16_t nr_segments; + uint32_t _pad1; + uint64_t id; + blkif_sector_t sector_number; + blkif_vdev_t handle; + uint16_t _pad2; + grant_ref_t indirect_grefs[8]; + uint32_t _pad3; +} __attribute__((packed)); -typedef void (*btf_trace_pm_qos_remove_request)(void *, s32); +struct blkif_request { + uint8_t operation; + union { + struct blkif_request_rw rw; + struct blkif_request_discard discard; + struct blkif_request_other other; + struct blkif_request_indirect indirect; + } u; +}; -typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int); +struct grant; -typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int); +struct blk_shadow { + struct blkif_request req; + struct request *request; + struct grant **grants_used; + struct grant **indirect_grants; + struct scatterlist *sg; + unsigned int num_sg; + enum blk_req_status status; + unsigned long associated_id; +}; -typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32); +struct blkfront_ring_info { + spinlock_t ring_lock; + struct blkif_front_ring ring; + unsigned int ring_ref[16]; + unsigned int evtchn; + unsigned int irq; + struct work_struct work; + struct gnttab_free_callback callback; + struct list_head indirect_pages; + struct list_head grants; + unsigned int persistent_gnts_c; + unsigned long shadow_free; + struct blkfront_info *dev_info; + struct blk_shadow shadow[0]; +}; -typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32); +struct blkif_response { + uint64_t id; + uint8_t operation; + int16_t status; +}; -typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32); +union blkif_sring_entry { + struct blkif_request req; + struct blkif_response rsp; +}; -typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int); +struct blkif_sring { + RING_IDX req_prod; + RING_IDX req_event; + RING_IDX rsp_prod; + RING_IDX rsp_event; + uint8_t __pad[48]; + union blkif_sring_entry ring[1]; +}; -struct trace_event_raw_cpu { - struct trace_entry ent; - u32 state; - u32 cpu_id; - char __data[0]; +struct grant { + grant_ref_t gref; + struct page *page; + struct list_head node; }; -struct trace_event_raw_cpu_idle_miss { - struct trace_entry ent; - u32 cpu_id; - u32 state; - bool below; - char __data[0]; +struct copy_from_grant { + const struct blk_shadow *s; + unsigned int grant_idx; + unsigned int bvec_offset; + char *bvec_data; }; -struct trace_event_raw_powernv_throttle { - struct trace_entry ent; - int chip_id; - u32 __data_loc_reason; - int pmax; - char __data[0]; +struct setup_rw_req { + unsigned int grant_idx; + struct blkif_request_segment *segments; + struct blkfront_ring_info *rinfo; + struct blkif_request *ring_req; + grant_ref_t gref_head; + unsigned int id; + bool need_copy; + unsigned int bvec_off; + char *bvec_data; + bool require_extra_req; + struct blkif_request *extra_ring_req; }; -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]; +enum { + HISI_SAS_PHY_BCAST_ACK = 0, + HISI_SAS_PHY_SL_PHY_ENABLED = 1, + HISI_SAS_PHY_INT_ABNORMAL = 2, + HISI_SAS_PHY_INT_NR___2 = 3, }; -struct trace_event_raw_cpu_frequency_limits { - struct trace_entry ent; - u32 min_freq; - u32 max_freq; - u32 cpu_id; - char __data[0]; +enum { + DMA_TX_ERR_BASE___2 = 0, + DMA_RX_ERR_BASE___2 = 256, + TRANS_TX_FAIL_BASE___2 = 512, + TRANS_RX_FAIL_BASE___2 = 768, + DMA_TX_DIF_CRC_ERR___2 = 0, + DMA_TX_DIF_APP_ERR___2 = 1, + DMA_TX_DIF_RPP_ERR___2 = 2, + DMA_TX_AXI_BUS_ERR = 3, + DMA_TX_DATA_SGL_OVERFLOW_ERR = 4, + DMA_TX_DIF_SGL_OVERFLOW_ERR = 5, + DMA_TX_UNEXP_XFER_RDY_ERR = 6, + DMA_TX_XFER_RDY_OFFSET_ERR = 7, + DMA_TX_DATA_UNDERFLOW_ERR = 8, + DMA_TX_XFER_RDY_LENGTH_OVERFLOW_ERR = 9, + DMA_RX_BUFFER_ECC_ERR = 256, + DMA_RX_DIF_CRC_ERR___2 = 257, + DMA_RX_DIF_APP_ERR___2 = 258, + DMA_RX_DIF_RPP_ERR___2 = 259, + DMA_RX_RESP_BUFFER_OVERFLOW_ERR = 260, + DMA_RX_AXI_BUS_ERR = 261, + DMA_RX_DATA_SGL_OVERFLOW_ERR = 262, + DMA_RX_DIF_SGL_OVERFLOW_ERR = 263, + DMA_RX_DATA_OFFSET_ERR___2 = 264, + DMA_RX_UNEXP_RX_DATA_ERR = 265, + DMA_RX_DATA_OVERFLOW_ERR = 266, + DMA_RX_DATA_UNDERFLOW_ERR = 267, + DMA_RX_UNEXP_RETRANS_RESP_ERR___2 = 268, + TRANS_TX_RSVD0_ERR = 512, + TRANS_TX_PHY_NOT_ENABLE_ERR = 513, + TRANS_TX_OPEN_REJCT_WRONG_DEST_ERR = 514, + TRANS_TX_OPEN_REJCT_ZONE_VIOLATION_ERR = 515, + TRANS_TX_OPEN_REJCT_BY_OTHER_ERR = 516, + TRANS_TX_RSVD1_ERR = 517, + TRANS_TX_OPEN_REJCT_AIP_TIMEOUT_ERR = 518, + TRANS_TX_OPEN_REJCT_STP_BUSY_ERR = 519, + TRANS_TX_OPEN_REJCT_PROTOCOL_NOT_SUPPORT_ERR = 520, + TRANS_TX_OPEN_REJCT_RATE_NOT_SUPPORT_ERR = 521, + TRANS_TX_OPEN_REJCT_BAD_DEST_ERR = 522, + TRANS_TX_OPEN_BREAK_RECEIVE_ERR = 523, + TRANS_TX_LOW_PHY_POWER_ERR = 524, + TRANS_TX_OPEN_REJCT_PATHWAY_BLOCKED_ERR = 525, + TRANS_TX_OPEN_TIMEOUT_ERR = 526, + TRANS_TX_OPEN_REJCT_NO_DEST_ERR = 527, + TRANS_TX_OPEN_RETRY_ERR = 528, + TRANS_TX_RSVD2_ERR = 529, + TRANS_TX_BREAK_TIMEOUT_ERR = 530, + TRANS_TX_BREAK_REQUEST_ERR = 531, + TRANS_TX_BREAK_RECEIVE_ERR = 532, + TRANS_TX_CLOSE_TIMEOUT_ERR = 533, + TRANS_TX_CLOSE_NORMAL_ERR = 534, + TRANS_TX_CLOSE_PHYRESET_ERR = 535, + TRANS_TX_WITH_CLOSE_DWS_TIMEOUT_ERR = 536, + TRANS_TX_WITH_CLOSE_COMINIT_ERR = 537, + TRANS_TX_NAK_RECEIVE_ERR = 538, + TRANS_TX_ACK_NAK_TIMEOUT_ERR = 539, + TRANS_TX_CREDIT_TIMEOUT_ERR = 540, + TRANS_TX_IPTT_CONFLICT_ERR = 541, + TRANS_TX_TXFRM_TYPE_ERR = 542, + TRANS_TX_TXSMP_LENGTH_ERR = 543, + TRANS_RX_FRAME_CRC_ERR = 768, + TRANS_RX_FRAME_DONE_ERR = 769, + TRANS_RX_FRAME_ERRPRM_ERR = 770, + TRANS_RX_FRAME_NO_CREDIT_ERR = 771, + TRANS_RX_RSVD0_ERR = 772, + TRANS_RX_FRAME_OVERRUN_ERR = 773, + TRANS_RX_FRAME_NO_EOF_ERR = 774, + TRANS_RX_LINK_BUF_OVERRUN_ERR = 775, + TRANS_RX_BREAK_TIMEOUT_ERR = 776, + TRANS_RX_BREAK_REQUEST_ERR = 777, + TRANS_RX_BREAK_RECEIVE_ERR = 778, + TRANS_RX_CLOSE_TIMEOUT_ERR = 779, + TRANS_RX_CLOSE_NORMAL_ERR = 780, + TRANS_RX_CLOSE_PHYRESET_ERR = 781, + TRANS_RX_WITH_CLOSE_DWS_TIMEOUT_ERR = 782, + TRANS_RX_WITH_CLOSE_COMINIT_ERR = 783, + TRANS_RX_DATA_LENGTH0_ERR = 784, + TRANS_RX_BAD_HASH_ERR = 785, + TRANS_RX_XRDY_ZERO_ERR = 786, + TRANS_RX_SSP_FRAME_LEN_ERR = 787, + TRANS_RX_TRANS_RX_RSVD1_ERR = 788, + TRANS_RX_NO_BALANCE_ERR = 789, + TRANS_RX_TRANS_RX_RSVD2_ERR = 790, + TRANS_RX_TRANS_RX_RSVD3_ERR = 791, + TRANS_RX_BAD_FRAME_TYPE_ERR = 792, + TRANS_RX_SMP_FRAME_LEN_ERR = 793, + TRANS_RX_SMP_RESP_TIMEOUT_ERR___2 = 794, }; -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 hisi_sas_complete_v1_hdr { + __le32 data; }; -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 hisi_sas_err_record_v1 { + __le32 dma_err_type; + __le32 trans_tx_fail_type; + __le32 trans_rx_fail_type; + u32 rsvd; }; -struct trace_event_raw_suspend_resume { - struct trace_entry ent; - const char *action; - int val; - bool start; - char __data[0]; +struct mtd_part_parser { + struct list_head list; + struct module *owner; + const char *name; + const struct of_device_id *of_match_table; + int (*parse_fn)(struct mtd_info *, const struct mtd_partition **, struct mtd_part_parser_data *); + void (*cleanup)(const struct mtd_partition *, int); }; -struct trace_event_raw_wakeup_source { - struct trace_entry ent; - u32 __data_loc_name; - u64 state; - char __data[0]; +struct fixed_partitions_quirks { + int (*post_parse)(struct mtd_info *, struct mtd_partition *, int); }; -struct trace_event_raw_clock { - struct trace_entry ent; - u32 __data_loc_name; - u64 state; - u64 cpu_id; - char __data[0]; +struct sfdp_bfpt_read { + u32 hwcaps; + u32 supported_dword; + u32 supported_bit; + u32 settings_dword; + u32 settings_shift; + enum spi_nor_protocol proto; }; -struct trace_event_raw_power_domain { - struct trace_entry ent; - u32 __data_loc_name; - u64 state; - u64 cpu_id; - char __data[0]; +struct sfdp_bfpt_erase { + u32 dword; + u32 shift; }; -struct trace_event_raw_cpu_latency_qos_request { - struct trace_entry ent; - s32 value; - char __data[0]; +struct sfdp_4bait { + u32 hwcaps; + u32 supported_bit; }; -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 sfdp_header { + u32 signature; + u8 minor; + u8 major; + u8 nph; + u8 unused; + struct sfdp_parameter_header bfpt_header; }; -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 rockchip_spi { + struct device *dev; + struct clk *spiclk; + struct clk *apb_pclk; + void *regs; + dma_addr_t dma_addr_rx; + dma_addr_t dma_addr_tx; + const void *tx; + void *rx; + unsigned int tx_left; + unsigned int rx_left; + atomic_t state; + u32 fifo_len; + u32 freq; + u8 n_bytes; + u8 rsd; + bool cs_asserted[4]; + bool target_abort; + bool cs_inactive; + bool cs_high_supported; + struct spi_transfer *xfer; }; -struct trace_event_raw_guest_halt_poll_ns { - struct trace_entry ent; - bool grow; - unsigned int new; - unsigned int old; - char __data[0]; +struct kszphy_type { + u32 led_mode_reg; + u16 interrupt_level_mask; + u16 cable_diag_reg; + unsigned long pair_mask; + u16 disable_dll_tx_bit; + u16 disable_dll_rx_bit; + u16 disable_dll_mask; + bool has_broadcast_disable; + bool has_nand_tree_disable; + bool has_rmii_ref_clk_sel; }; -struct trace_event_data_offsets_powernv_throttle { - u32 reason; +struct kszphy_hw_stat { + const char *string; + u8 reg; + u8 bits; }; -struct trace_event_data_offsets_device_pm_callback_end { - u32 device; - u32 driver; +struct ksz9477_errata_write { + u8 dev_addr; + u8 reg_addr; + u16 val; }; -struct trace_event_data_offsets_wakeup_source { - u32 name; +struct lan8814_shared_priv { + struct phy_device *phydev; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; + u8 ref; + struct mutex shared_lock; }; -struct trace_event_data_offsets_clock { - u32 name; +struct kszphy_ptp_priv { + struct mii_timestamper mii_ts; + struct phy_device *phydev; + struct sk_buff_head tx_queue; + struct sk_buff_head rx_queue; + struct list_head rx_ts_list; + spinlock_t rx_ts_lock; + int hwts_tx_type; + enum hwtstamp_rx_filters rx_filter; + int layer; + int version; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; + struct mutex ptp_lock; + struct ptp_pin_desc *pin_config; + s64 seconds; + spinlock_t seconds_lock; }; -struct trace_event_data_offsets_power_domain { - u32 name; +struct kszphy_priv { + struct kszphy_ptp_priv ptp_priv; + const struct kszphy_type *type; + int led_mode; + u16 vct_ctrl1000; + bool rmii_ref_clk_sel; + bool rmii_ref_clk_sel_val; + u64 stats[2]; }; -struct trace_event_data_offsets_dev_pm_qos_request { - u32 name; +struct lan8814_ptp_rx_ts { + struct list_head list; + u32 seconds; + u32 nsec; + u16 seq_id; }; -struct trace_event_data_offsets_cpu {}; +struct xgene_gstrings_stats { + char name[32]; + int offset; + u32 addr; + u32 mask; +}; -struct trace_event_data_offsets_cpu_idle_miss {}; +typedef void (*btf_trace_hns3_over_max_bd)(void *, struct sk_buff *); -struct trace_event_data_offsets_pstate_sample {}; +typedef void (*btf_trace_hns3_gro)(void *, struct sk_buff *); -struct trace_event_data_offsets_cpu_frequency_limits {}; +typedef void (*btf_trace_hns3_tso)(void *, struct sk_buff *); -struct trace_event_data_offsets_device_pm_callback_start { - u32 device; - u32 driver; - u32 parent; - u32 pm_ops; -}; +typedef void (*btf_trace_hns3_tx_desc)(void *, struct hns3_enet_ring *, int); -struct trace_event_data_offsets_suspend_resume {}; +typedef void (*btf_trace_hns3_rx_desc)(void *, struct hns3_enet_ring *); -struct trace_event_data_offsets_cpu_latency_qos_request {}; +struct hns3_rx_ptype { + u32 ptype: 8; + u32 csum_level: 2; + u32 ip_summed: 2; + u32 l3_type: 4; + u32 valid: 1; + u32 hash_type: 3; +}; -struct trace_event_data_offsets_pm_qos_update {}; +struct hns3_hw_error_info { + enum hnae3_hw_error_type type; + const char *msg; +}; -struct trace_event_data_offsets_guest_halt_poll_ns {}; +enum hns3_pkt_ol3t_type { + HNS3_OL3T_NONE = 0, + HNS3_OL3T_IPV6 = 1, + HNS3_OL3T_IPV4_NO_CSUM = 2, + HNS3_OL3T_IPV4_CSUM = 3, +}; -struct bpf_prog_offload_ops; +enum hns3_pkt_tun_type { + HNS3_TUN_NONE = 0, + HNS3_TUN_MAC_IN_UDP = 1, + HNS3_TUN_NVGRE = 2, + HNS3_TUN_OTHER = 3, +}; -struct bpf_offload_dev { - const struct bpf_prog_offload_ops *ops; - struct list_head netdevs; - void *priv; +enum hns3_pkt_l3t_type { + HNS3_L3T_NONE = 0, + HNS3_L3T_IPV6 = 1, + HNS3_L3T_IPV4 = 2, + HNS3_L3T_RESERVED = 3, }; -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 hns3_pkt_l4t_type { + HNS3_L4T_UNKNOWN = 0, + HNS3_L4T_TCP = 1, + HNS3_L4T_UDP = 2, + HNS3_L4T_SCTP = 3, }; -enum { - XDP_METADATA_KFUNC_RX_TIMESTAMP = 0, - XDP_METADATA_KFUNC_RX_HASH = 1, - MAX_XDP_METADATA_KFUNC = 2, +enum hns3_desc_type { + DESC_TYPE_UNKNOWN = 0, + DESC_TYPE_SKB = 1, + DESC_TYPE_FRAGLIST_SKB = 2, + DESC_TYPE_PAGE = 4, + DESC_TYPE_BOUNCE_ALL = 8, + DESC_TYPE_BOUNCE_HEAD = 16, + DESC_TYPE_SGL_SKB = 32, + DESC_TYPE_PP_FRAG = 64, }; -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; +enum hns3_pkt_l2t_type { + HNS3_L2_TYPE_UNICAST = 0, + HNS3_L2_TYPE_MULTICAST = 1, + HNS3_L2_TYPE_BROADCAST = 2, + HNS3_L2_TYPE_INVALID = 3, }; -struct ns_get_path_bpf_prog_args { - struct bpf_prog *prog; - struct bpf_prog_info *info; +enum hns3_pkt_l3type { + HNS3_L3_TYPE_IPV4 = 0, + HNS3_L3_TYPE_IPV6 = 1, + HNS3_L3_TYPE_ARP = 2, + HNS3_L3_TYPE_RARP = 3, + HNS3_L3_TYPE_IPV4_OPT = 4, + HNS3_L3_TYPE_IPV6_EXT = 5, + HNS3_L3_TYPE_LLDP = 6, + HNS3_L3_TYPE_BPDU = 7, + HNS3_L3_TYPE_MAC_PAUSE = 8, + HNS3_L3_TYPE_PFC_PAUSE = 9, + HNS3_L3_TYPE_CNM = 12, + HNS3_L3_TYPE_PARSE_FAIL = 15, }; -struct ns_get_path_bpf_map_args { - struct bpf_offloaded_map *offmap; - struct bpf_map_info *info; +enum hns3_pkt_ol4type { + HNS3_OL4_TYPE_NO_TUN = 0, + HNS3_OL4_TYPE_MAC_IN_UDP = 1, + HNS3_OL4_TYPE_NVGRE = 2, + HNS3_OL4_TYPE_UNKNOWN = 3, }; -struct mlock_fbatch { - local_lock_t lock; - struct folio_batch fbatch; +enum hns3_pkt_l4type { + HNS3_L4_TYPE_UDP = 0, + HNS3_L4_TYPE_TCP = 1, + HNS3_L4_TYPE_GRE = 2, + HNS3_L4_TYPE_SCTP = 3, + HNS3_L4_TYPE_IGMP = 4, + HNS3_L4_TYPE_ICMP = 5, + HNS3_L4_TYPE_PARSE_FAIL = 15, }; -struct swap_cgroup_ctrl { - struct page **map; - unsigned long length; - spinlock_t lock; +enum { + TC_MQPRIO_MODE_DCB = 0, + TC_MQPRIO_MODE_CHANNEL = 1, + __TC_MQPRIO_MODE_MAX = 2, }; -struct swap_cgroup { - unsigned short id; +struct trace_event_raw_hns3_skb_template { + struct trace_entry ent; + unsigned int headlen; + unsigned int len; + __u8 nr_frags; + __u8 ip_summed; + unsigned int hdr_len; + unsigned short gso_size; + unsigned short gso_segs; + unsigned int gso_type; + bool fraglist; + __u32 size[17]; + char __data[0]; }; -struct inodes_stat_t { - long nr_inodes; - long nr_unused; - long dummy[5]; +struct trace_event_raw_hns3_tx_desc { + struct trace_entry ent; + int index; + int ntu; + int ntc; + dma_addr_t desc_dma; + u32 desc[8]; + u32 __data_loc_devname; + char __data[0]; }; -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, +struct trace_event_raw_hns3_rx_desc { + struct trace_entry ent; + int index; + int ntu; + int ntc; + dma_addr_t desc_dma; + dma_addr_t buf_dma; + u32 desc[8]; + u32 __data_loc_devname; + char __data[0]; }; -enum { - EXT4_FC_STATUS_OK = 0, - EXT4_FC_STATUS_INELIGIBLE = 1, - EXT4_FC_STATUS_SKIPPED = 2, - EXT4_FC_STATUS_FAILED = 3, +struct trace_event_data_offsets_hns3_tx_desc { + u32 devname; }; -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 trace_event_data_offsets_hns3_rx_desc { + u32 devname; }; -struct __track_dentry_update_args { - struct dentry *dentry; - int op; +struct hns3_desc_param { + u32 paylen_ol4cs; + u32 ol_type_vlan_len_msec; + u32 type_cs_vlan_tso; + u16 mss_hw_csum; + u16 inner_vtag; + u16 out_vtag; }; -struct __track_range_args { - ext4_lblk_t start; - ext4_lblk_t end; +union l3_hdr_info { + struct iphdr *v4; + struct ipv6hdr *v6; + unsigned char *hdr; }; -struct ext4_fc_tl { - __le16 fc_tag; - __le16 fc_len; +union l4_hdr_info { + struct tcphdr *tcp; + struct udphdr *udp; + struct gre_base_hdr *gre; + unsigned char *hdr; }; -struct ext4_fc_head { - __le32 fc_features; - __le32 fc_tid; +struct trace_event_data_offsets_hns3_skb_template {}; + +struct rcar_gen4_ptp_reg_offset { + u16 enable; + u16 disable; + u16 increment; + u16 config_t0; + u16 config_t1; + u16 config_t2; + u16 monitor_t0; + u16 monitor_t1; + u16 monitor_t2; }; -struct ext4_fc_tail { - __le32 fc_tid; - __le32 fc_crc; +enum rcar_gen4_ptp_reg_layout { + RCAR_GEN4_PTP_REG_LAYOUT_S4 = 0, }; -struct ext4_fc_tl_mem { - u16 fc_tag; - u16 fc_len; +struct rcar_gen4_ptp_private { + void *addr; + struct ptp_clock *clock; + struct ptp_clock_info info; + const struct rcar_gen4_ptp_reg_offset *offs; + spinlock_t lock; + u32 tstamp_tx_ctrl; + u32 tstamp_rx_ctrl; + s64 default_addend; + bool initialized; }; -struct ext4_fc_add_range { - __le32 fc_ino; - __u8 fc_ex[12]; +struct vfio_pci_irq_ctx { + struct eventfd_ctx *trigger; + struct virqfd *unmask; + struct virqfd *mask; + char *name; + bool masked; + struct irq_bypass_producer producer; }; -struct ext4_fc_del_range { - __le32 fc_ino; - __le32 fc_lblk; - __le32 fc_len; +typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); + +struct dwc3_acpi_pdata { + u32 qscratch_base_offset; + u32 qscratch_base_size; + u32 dwc3_core_base_size; + int hs_phy_irq_index; + int dp_hs_phy_irq_index; + int dm_hs_phy_irq_index; + int ss_phy_irq_index; + bool is_urs; }; -struct dentry_info_args { - int parent_ino; - int dname_len; - int ino; - int inode_len; - char *dname; +struct dwc3_qcom { + struct device *dev; + void *qscratch_base; + struct platform_device *dwc3; + struct platform_device *urs_usb; + struct clk **clks; + int num_clocks; + struct reset_control *resets; + int hs_phy_irq; + int dp_hs_phy_irq; + int dm_hs_phy_irq; + int ss_phy_irq; + enum usb_device_speed usb2_speed; + struct extcon_dev *edev; + struct extcon_dev *host_edev; + struct notifier_block vbus_nb; + struct notifier_block host_nb; + const struct dwc3_acpi_pdata *acpi_pdata; + enum usb_dr_mode mode; + bool is_suspended; + bool pm_suspended; + struct icc_path *icc_path_ddr; + struct icc_path *icc_path_apps; }; -struct ext4_fc_dentry_info { - __le32 fc_parent_ino; - __le32 fc_ino; - __u8 fc_dname[0]; +struct isp1760_request { + struct usb_request req; + struct list_head queue; + struct isp1760_ep *ep; + unsigned int packet_size; }; -struct ext4_fc_inode { - __le32 fc_ino; - __u8 fc_raw_inode[0]; +struct xhci_file_map { + const char *name; + int (*show)(struct seq_file *, void *); }; -enum autofs_notify { - NFY_NONE = 0, - NFY_MOUNT = 1, - NFY_EXPIRE = 2, +struct xhci_regset { + char name[32]; + struct debugfs_regset32 regset; + size_t nregs; + struct list_head list; }; -struct autofs_packet_hdr { - int proto_version; - int type; +struct xhci_ep_priv; + +struct xhci_slot_priv { + char name[32]; + struct dentry *root; + struct xhci_ep_priv *eps[31]; + struct xhci_virt_device *dev; }; -struct autofs_packet_missing { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - int len; - char name[256]; +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 autofs_packet_expire { - struct autofs_packet_hdr hdr; - int len; - char name[256]; +struct input_led { + struct led_classdev cdev; + struct input_handle *handle; + unsigned int code; }; -struct autofs_packet_expire_multi { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - int len; - char name[256]; +struct input_leds { + struct input_handle handle; + unsigned int num_leds; + struct input_led leds[0]; }; -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 armada38x_rtc; + +struct armada38x_rtc_data { + void (*update_mbus_timing)(struct armada38x_rtc *); + u32 (*read_rtc_reg)(struct armada38x_rtc *, u8); + void (*clear_isr)(struct armada38x_rtc *); + void (*unmask_interrupt)(struct armada38x_rtc *); + u32 alarm; }; -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]; +struct value_to_freq; + +struct armada38x_rtc { + struct rtc_device *rtc_dev; + void *regs; + void *regs_soc; + spinlock_t lock; + int irq; + bool initialized; + struct value_to_freq *val_to_freq; + const struct armada38x_rtc_data *data; }; -typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; +struct value_to_freq { + u32 value; + u8 freq; +}; -typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; +struct i2c_mux_priv { + struct i2c_adapter adap; + struct i2c_algorithm algo; + struct i2c_mux_core *muxc; + u32 chan_id; +}; -typedef struct autofs_v5_packet autofs_packet_missing_direct_t; +struct xgene_reboot_context { + struct device *dev; + void *csr; + u32 mask; + struct notifier_block restart_handler; +}; -typedef struct autofs_v5_packet autofs_packet_expire_direct_t; +typedef void (*btf_trace_thermal_power_allocator)(void *, struct thermal_zone_device *, u32 *, u32, u32 *, u32, size_t, u32, u32, int, s32); -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; -}; +typedef void (*btf_trace_thermal_power_allocator_pid)(void *, struct thermal_zone_device *, s32, s32, s64, s64, s64, s32); -struct msg_msgseg { - struct msg_msgseg *next; +struct trace_event_raw_thermal_power_allocator { + struct trace_entry ent; + int tz_id; + u32 __data_loc_req_power; + u32 total_req_power; + u32 __data_loc_granted_power; + u32 total_granted_power; + size_t num_actors; + u32 power_range; + u32 max_allocatable_power; + int current_temp; + s32 delta_temp; + char __data[0]; }; -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 trace_event_raw_thermal_power_allocator_pid { + struct trace_entry ent; + int tz_id; + s32 err; + s32 err_integral; + s64 p; + s64 i; + s64 d; + s32 output; + char __data[0]; }; -struct sctphdr { - __be16 source; - __be16 dest; - __be32 vtag; - __le32 checksum; +struct trace_event_data_offsets_thermal_power_allocator { + u32 req_power; + u32 granted_power; }; -struct lsm_network_audit; +struct power_allocator_params { + bool allocated_tzp; + s64 err_integral; + s32 prev_err; + u32 sustainable_power; + const struct thermal_trip *trip_switch_on; + const struct thermal_trip *trip_max_desired_temperature; +}; -struct lsm_ioctlop_audit; +struct trace_event_data_offsets_thermal_power_allocator_pid {}; -struct lsm_ibpkey_audit; +struct cpu_data { + struct clk **pclk; + struct cpufreq_frequency_table *table; +}; -struct lsm_ibendport_audit; +struct sunxi_mmc_clk_delay; -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 sunxi_mmc_cfg { + u32 idma_des_size_bits; + u32 idma_des_shift; + const struct sunxi_mmc_clk_delay *clk_delays; + bool can_calibrate; + bool mask_data0; + bool needs_new_timings; + bool ccu_has_timings_switch; }; -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 sunxi_mmc_clk_delay { + u32 output; + u32 sample; }; -struct lsm_ioctlop_audit { - struct path path; - u16 cmd; +struct sunxi_idma_des { + __le32 config; + __le32 buf_size; + __le32 buf_addr_ptr1; + __le32 buf_addr_ptr2; }; -struct lsm_ibpkey_audit { - u64 subnet_prefix; - u16 pkey; +struct sunxi_mmc_host { + struct device *dev; + struct mmc_host *mmc; + struct reset_control *reset; + const struct sunxi_mmc_cfg *cfg; + void *reg_base; + struct clk *clk_ahb; + struct clk *clk_mmc; + struct clk *clk_sample; + struct clk *clk_output; + spinlock_t lock; + int irq; + u32 int_sum; + u32 sdio_imask; + dma_addr_t sg_dma; + void *sg_cpu; + bool wait_dma; + struct mmc_request *mrq; + struct mmc_request *manual_stop_mrq; + int ferror; + bool vqmmc_enabled; + bool use_new_timings; }; -struct lsm_ibendport_audit { - const char *dev_name; - u8 port; +enum zynqmp_pm_shutdown_subtype { + ZYNQMP_PM_SHUTDOWN_SUBTYPE_SUBSYSTEM = 0, + ZYNQMP_PM_SHUTDOWN_SUBTYPE_PS_ONLY = 1, + ZYNQMP_PM_SHUTDOWN_SUBTYPE_SYSTEM = 2, }; -struct blk_ia_range_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct blk_independent_access_range *, char *); +struct zynqmp_pm_shutdown_scope { + const enum zynqmp_pm_shutdown_subtype subtype; + const char *name; }; -enum { - IRQ_POLL_F_SCHED = 0, - IRQ_POLL_F_DISABLE = 1, +enum tap_delay_type { + PM_TAPDELAY_INPUT = 0, + PM_TAPDELAY_OUTPUT = 1, }; -struct uniphier_aidet_priv { - struct irq_domain *domain; - void *reg_base; - spinlock_t lock; - u32 saved_vals[8]; +enum pm_node_id { + NODE_SD_0 = 39, + NODE_SD_1 = 40, }; -struct phy_lookup { - struct list_head node; - const char *dev_id; - const char *con_id; - struct phy *phy; +enum zynqmp_pm_reset { + ZYNQMP_PM_RESET_START = 1000, + ZYNQMP_PM_RESET_PCIE_CFG = 1000, + ZYNQMP_PM_RESET_PCIE_BRIDGE = 1001, + ZYNQMP_PM_RESET_PCIE_CTRL = 1002, + ZYNQMP_PM_RESET_DP = 1003, + ZYNQMP_PM_RESET_SWDT_CRF = 1004, + ZYNQMP_PM_RESET_AFI_FM5 = 1005, + ZYNQMP_PM_RESET_AFI_FM4 = 1006, + ZYNQMP_PM_RESET_AFI_FM3 = 1007, + ZYNQMP_PM_RESET_AFI_FM2 = 1008, + ZYNQMP_PM_RESET_AFI_FM1 = 1009, + ZYNQMP_PM_RESET_AFI_FM0 = 1010, + ZYNQMP_PM_RESET_GDMA = 1011, + ZYNQMP_PM_RESET_GPU_PP1 = 1012, + ZYNQMP_PM_RESET_GPU_PP0 = 1013, + ZYNQMP_PM_RESET_GPU = 1014, + ZYNQMP_PM_RESET_GT = 1015, + ZYNQMP_PM_RESET_SATA = 1016, + ZYNQMP_PM_RESET_ACPU3_PWRON = 1017, + ZYNQMP_PM_RESET_ACPU2_PWRON = 1018, + ZYNQMP_PM_RESET_ACPU1_PWRON = 1019, + ZYNQMP_PM_RESET_ACPU0_PWRON = 1020, + ZYNQMP_PM_RESET_APU_L2 = 1021, + ZYNQMP_PM_RESET_ACPU3 = 1022, + ZYNQMP_PM_RESET_ACPU2 = 1023, + ZYNQMP_PM_RESET_ACPU1 = 1024, + ZYNQMP_PM_RESET_ACPU0 = 1025, + ZYNQMP_PM_RESET_DDR = 1026, + ZYNQMP_PM_RESET_APM_FPD = 1027, + ZYNQMP_PM_RESET_SOFT = 1028, + ZYNQMP_PM_RESET_GEM0 = 1029, + ZYNQMP_PM_RESET_GEM1 = 1030, + ZYNQMP_PM_RESET_GEM2 = 1031, + ZYNQMP_PM_RESET_GEM3 = 1032, + ZYNQMP_PM_RESET_QSPI = 1033, + ZYNQMP_PM_RESET_UART0 = 1034, + ZYNQMP_PM_RESET_UART1 = 1035, + ZYNQMP_PM_RESET_SPI0 = 1036, + ZYNQMP_PM_RESET_SPI1 = 1037, + ZYNQMP_PM_RESET_SDIO0 = 1038, + ZYNQMP_PM_RESET_SDIO1 = 1039, + ZYNQMP_PM_RESET_CAN0 = 1040, + ZYNQMP_PM_RESET_CAN1 = 1041, + ZYNQMP_PM_RESET_I2C0 = 1042, + ZYNQMP_PM_RESET_I2C1 = 1043, + ZYNQMP_PM_RESET_TTC0 = 1044, + ZYNQMP_PM_RESET_TTC1 = 1045, + ZYNQMP_PM_RESET_TTC2 = 1046, + ZYNQMP_PM_RESET_TTC3 = 1047, + ZYNQMP_PM_RESET_SWDT_CRL = 1048, + ZYNQMP_PM_RESET_NAND = 1049, + ZYNQMP_PM_RESET_ADMA = 1050, + ZYNQMP_PM_RESET_GPIO = 1051, + ZYNQMP_PM_RESET_IOU_CC = 1052, + ZYNQMP_PM_RESET_TIMESTAMP = 1053, + ZYNQMP_PM_RESET_RPU_R50 = 1054, + ZYNQMP_PM_RESET_RPU_R51 = 1055, + ZYNQMP_PM_RESET_RPU_AMBA = 1056, + ZYNQMP_PM_RESET_OCM = 1057, + ZYNQMP_PM_RESET_RPU_PGE = 1058, + ZYNQMP_PM_RESET_USB0_CORERESET = 1059, + ZYNQMP_PM_RESET_USB1_CORERESET = 1060, + ZYNQMP_PM_RESET_USB0_HIBERRESET = 1061, + ZYNQMP_PM_RESET_USB1_HIBERRESET = 1062, + ZYNQMP_PM_RESET_USB0_APB = 1063, + ZYNQMP_PM_RESET_USB1_APB = 1064, + ZYNQMP_PM_RESET_IPI = 1065, + ZYNQMP_PM_RESET_APM_LPD = 1066, + ZYNQMP_PM_RESET_RTC = 1067, + ZYNQMP_PM_RESET_SYSMON = 1068, + ZYNQMP_PM_RESET_AFI_FM6 = 1069, + ZYNQMP_PM_RESET_LPD_SWDT = 1070, + ZYNQMP_PM_RESET_FPD = 1071, + ZYNQMP_PM_RESET_RPU_DBG1 = 1072, + ZYNQMP_PM_RESET_RPU_DBG0 = 1073, + ZYNQMP_PM_RESET_DBG_LPD = 1074, + ZYNQMP_PM_RESET_DBG_FPD = 1075, + ZYNQMP_PM_RESET_APLL = 1076, + ZYNQMP_PM_RESET_DPLL = 1077, + ZYNQMP_PM_RESET_VPLL = 1078, + ZYNQMP_PM_RESET_IOPLL = 1079, + ZYNQMP_PM_RESET_RPLL = 1080, + ZYNQMP_PM_RESET_GPO3_PL_0 = 1081, + ZYNQMP_PM_RESET_GPO3_PL_1 = 1082, + ZYNQMP_PM_RESET_GPO3_PL_2 = 1083, + ZYNQMP_PM_RESET_GPO3_PL_3 = 1084, + ZYNQMP_PM_RESET_GPO3_PL_4 = 1085, + ZYNQMP_PM_RESET_GPO3_PL_5 = 1086, + ZYNQMP_PM_RESET_GPO3_PL_6 = 1087, + ZYNQMP_PM_RESET_GPO3_PL_7 = 1088, + ZYNQMP_PM_RESET_GPO3_PL_8 = 1089, + ZYNQMP_PM_RESET_GPO3_PL_9 = 1090, + ZYNQMP_PM_RESET_GPO3_PL_10 = 1091, + ZYNQMP_PM_RESET_GPO3_PL_11 = 1092, + ZYNQMP_PM_RESET_GPO3_PL_12 = 1093, + ZYNQMP_PM_RESET_GPO3_PL_13 = 1094, + ZYNQMP_PM_RESET_GPO3_PL_14 = 1095, + ZYNQMP_PM_RESET_GPO3_PL_15 = 1096, + ZYNQMP_PM_RESET_GPO3_PL_16 = 1097, + ZYNQMP_PM_RESET_GPO3_PL_17 = 1098, + ZYNQMP_PM_RESET_GPO3_PL_18 = 1099, + ZYNQMP_PM_RESET_GPO3_PL_19 = 1100, + ZYNQMP_PM_RESET_GPO3_PL_20 = 1101, + ZYNQMP_PM_RESET_GPO3_PL_21 = 1102, + ZYNQMP_PM_RESET_GPO3_PL_22 = 1103, + ZYNQMP_PM_RESET_GPO3_PL_23 = 1104, + ZYNQMP_PM_RESET_GPO3_PL_24 = 1105, + ZYNQMP_PM_RESET_GPO3_PL_25 = 1106, + ZYNQMP_PM_RESET_GPO3_PL_26 = 1107, + ZYNQMP_PM_RESET_GPO3_PL_27 = 1108, + ZYNQMP_PM_RESET_GPO3_PL_28 = 1109, + ZYNQMP_PM_RESET_GPO3_PL_29 = 1110, + ZYNQMP_PM_RESET_GPO3_PL_30 = 1111, + ZYNQMP_PM_RESET_GPO3_PL_31 = 1112, + ZYNQMP_PM_RESET_RPU_LS = 1113, + ZYNQMP_PM_RESET_PS_ONLY = 1114, + ZYNQMP_PM_RESET_PL = 1115, + ZYNQMP_PM_RESET_PS_PL0 = 1116, + ZYNQMP_PM_RESET_PS_PL1 = 1117, + ZYNQMP_PM_RESET_PS_PL2 = 1118, + ZYNQMP_PM_RESET_PS_PL3 = 1119, + ZYNQMP_PM_RESET_END = 1119, }; -struct uniphier_ahciphy_priv; +enum zynqmp_pm_reset_action { + PM_RESET_ACTION_RELEASE = 0, + PM_RESET_ACTION_ASSERT = 1, + PM_RESET_ACTION_PULSE = 2, +}; -struct uniphier_ahciphy_soc_data { - int (*init)(struct uniphier_ahciphy_priv *); - int (*power_on)(struct uniphier_ahciphy_priv *); - int (*power_off)(struct uniphier_ahciphy_priv *); - bool is_legacy; - bool is_ready_high; - bool is_phy_clk; +enum pm_pinctrl_config_param { + PM_PINCTRL_CONFIG_SLEW_RATE = 0, + PM_PINCTRL_CONFIG_BIAS_STATUS = 1, + PM_PINCTRL_CONFIG_PULL_CTRL = 2, + PM_PINCTRL_CONFIG_SCHMITT_CMOS = 3, + PM_PINCTRL_CONFIG_DRIVE_STRENGTH = 4, + PM_PINCTRL_CONFIG_VOLTAGE_STATUS = 5, + PM_PINCTRL_CONFIG_TRI_STATE = 6, + PM_PINCTRL_CONFIG_MAX = 7, }; -struct uniphier_ahciphy_priv { - struct device *dev; - void *base; - struct clk *clk; - struct clk *clk_parent; - struct clk *clk_parent_gio; - struct reset_control *rst; - struct reset_control *rst_parent; - struct reset_control *rst_parent_gio; - struct reset_control *rst_pm; - struct reset_control *rst_tx; - struct reset_control *rst_rx; - const struct uniphier_ahciphy_soc_data *data; +enum zynqmp_pm_request_ack { + ZYNQMP_PM_REQUEST_ACK_NO = 1, + ZYNQMP_PM_REQUEST_ACK_BLOCKING = 2, + ZYNQMP_PM_REQUEST_ACK_NON_BLOCKING = 3, }; -struct mtk_drive_desc { - u8 min; - u8 max; - u8 step; - u8 scal; +enum rpu_oper_mode { + PM_RPU_MODE_LOCKSTEP = 0, + PM_RPU_MODE_SPLIT = 1, }; -struct mtk_pin_field { - u8 index; - u32 offset; - u32 mask; - u8 bitpos; - u8 next; +enum pm_ret_status { + XST_PM_SUCCESS = 0, + XST_PM_NO_FEATURE = 19, + XST_PM_INTERNAL = 2000, + XST_PM_CONFLICT = 2001, + XST_PM_NO_ACCESS = 2002, + XST_PM_INVALID_NODE = 2003, + XST_PM_DOUBLE_REQ = 2004, + XST_PM_ABORT_SUSPEND = 2005, + XST_PM_MULT_USER = 2008, }; -struct armada_37xx_pin_group; +enum rpu_tcm_comb { + PM_RPU_TCM_SPLIT = 0, + PM_RPU_TCM_COMB = 1, +}; -struct armada_37xx_pin_data { - u8 nr_pins; - char *name; - struct armada_37xx_pin_group *groups; - int ngroups; +enum pm_feature_config_id { + PM_FEATURE_INVALID = 0, + PM_FEATURE_OVERTEMP_STATUS = 1, + PM_FEATURE_OVERTEMP_VALUE = 2, + PM_FEATURE_EXTWDT_STATUS = 3, + PM_FEATURE_EXTWDT_VALUE = 4, }; -struct armada_37xx_pin_group { - const char *name; - unsigned int start_pin; - unsigned int npins; - u32 reg_mask; - u32 val[3]; - unsigned int extra_pin; - unsigned int extra_npins; - const char *funcs[3]; - unsigned int *pins; +enum pm_sd_config_type { + SD_CONFIG_EMMC_SEL = 1, + SD_CONFIG_BASECLK = 2, + SD_CONFIG_8BIT = 3, + SD_CONFIG_FIXED = 4, }; -struct armada_37xx_pm_state { - u32 out_en_l; - u32 out_en_h; - u32 out_val_l; - u32 out_val_h; - u32 irq_en_l; - u32 irq_en_h; - u32 irq_pol_l; - u32 irq_pol_h; - u32 selection; +enum zynqmp_pm_shutdown_type { + ZYNQMP_PM_SHUTDOWN_TYPE_SHUTDOWN = 0, + ZYNQMP_PM_SHUTDOWN_TYPE_RESET = 1, + ZYNQMP_PM_SHUTDOWN_TYPE_SETSCOPE_ONLY = 2, }; -struct armada_37xx_pmx_func; +struct pm_api_feature_data { + u32 pm_api_id; + int feature_status; + struct hlist_node hentry; +}; -struct armada_37xx_pinctrl { - struct regmap *regmap; - void *base; - const struct armada_37xx_pin_data *data; +struct zynqmp_devinfo { struct device *dev; - struct gpio_chip gpio_chip; - raw_spinlock_t irq_lock; - struct pinctrl_desc pctl; - struct pinctrl_dev *pctl_dev; - struct armada_37xx_pin_group *groups; - unsigned int ngroups; - struct armada_37xx_pmx_func *funcs; - unsigned int nfuncs; - struct armada_37xx_pm_state pm; + u32 feature_conf_id; }; -struct armada_37xx_pmx_func { - const char *name; - const char **groups; - unsigned int ngroups; +enum ec_vbnvcontext_op { + EC_VBNV_CONTEXT_OP_READ = 0, + EC_VBNV_CONTEXT_OP_WRITE = 1, }; -struct tegra_xusb_padctl_function; +struct ec_params_vbnvcontext { + uint32_t op; + uint8_t block[16]; +}; -struct tegra_xusb_padctl_lane; +struct ti_msgmgr_valid_queue_desc; -struct tegra_xusb_padctl_soc___2 { - const struct pinctrl_pin_desc *pins; - unsigned int num_pins; - const struct tegra_xusb_padctl_function *functions; - unsigned int num_functions; - const struct tegra_xusb_padctl_lane *lanes; - unsigned int num_lanes; +struct ti_msgmgr_desc { + u8 queue_count; + u8 max_message_size; + u8 max_messages; + u8 data_first_reg; + u8 data_last_reg; + u32 status_cnt_mask; + u32 status_err_mask; + bool tx_polled; + int tx_poll_timeout_ms; + const struct ti_msgmgr_valid_queue_desc *valid_queues; + const char *data_region_name; + const char *status_region_name; + const char *ctrl_region_name; + int num_valid_queues; + bool is_sproxy; }; -struct tegra_xusb_padctl_function { - const char *name; - const char * const *groups; - unsigned int num_groups; +struct ti_msgmgr_valid_queue_desc { + u8 queue_id; + u8 proxy_id; + bool is_tx; }; -struct tegra_xusb_padctl_lane { - const char *name; - unsigned int offset; - unsigned int shift; - unsigned int mask; - unsigned int iddq; - const unsigned int *funcs; - unsigned int num_funcs; +struct ti_queue_inst; + +struct ti_msgmgr_inst { + struct device *dev; + const struct ti_msgmgr_desc *desc; + void *queue_proxy_region; + void *queue_state_debug_region; + void *queue_ctrl_region; + u8 num_valid_queues; + struct ti_queue_inst *qinsts; + struct mbox_controller mbox; + struct mbox_chan *chans; }; -enum tegra_xusb_padctl_param { - TEGRA_XUSB_PADCTL_IDDQ = 0, +struct ti_queue_inst { + char name[30]; + u8 queue_id; + u8 proxy_id; + int irq; + bool is_tx; + void *queue_buff_start; + void *queue_buff_end; + void *queue_state; + void *queue_ctrl; + struct mbox_chan *chan; + u32 *rx_buff; + bool polled_rx_mode; }; -struct tegra_xusb_padctl_property { - const char *name; - enum tegra_xusb_padctl_param param; +enum iio_buffer_direction { + IIO_BUFFER_DIRECTION_IN = 0, + IIO_BUFFER_DIRECTION_OUT = 1, }; -struct tegra_xusb_padctl___2 { - struct device *dev; - void *regs; - struct mutex lock; - struct reset_control *rst; - const struct tegra_xusb_padctl_soc___2 *soc; - struct pinctrl_dev *pinctrl; - struct pinctrl_desc desc; - struct phy_provider *provider; - struct phy *phys[2]; - unsigned int enable; +struct iio_buffer_access_funcs; + +struct iio_buffer { + unsigned int length; + unsigned long flags; + size_t bytes_per_datum; + enum iio_buffer_direction direction; + const struct iio_buffer_access_funcs *access; + long *scan_mask; + struct list_head demux_list; + wait_queue_head_t pollq; + unsigned int watermark; + bool scan_timestamp; + struct list_head buffer_attr_list; + struct attribute_group buffer_group; + const struct iio_dev_attr **attrs; + void *demux_bounce; + struct list_head attached_entry; + struct list_head buffer_list; + struct kref ref; }; -struct iproc_pwmc { - struct pwm_chip chip; - void *base; - struct clk *clk; +struct iio_buffer_access_funcs { + int (*store_to)(struct iio_buffer *, const void *); + int (*read)(struct iio_buffer *, size_t, char __attribute__((btf_type_tag("user"))) *); + size_t (*data_available)(struct iio_buffer *); + int (*remove_from)(struct iio_buffer *, void *); + int (*write)(struct iio_buffer *, size_t, const char __attribute__((btf_type_tag("user"))) *); + size_t (*space_available)(struct iio_buffer *); + int (*request_update)(struct iio_buffer *); + int (*set_bytes_per_datum)(struct iio_buffer *, size_t); + int (*set_length)(struct iio_buffer *, unsigned int); + int (*enable)(struct iio_buffer *, struct iio_dev *); + int (*disable)(struct iio_buffer *, struct iio_dev *); + void (*release)(struct iio_buffer *); + unsigned int modes; + unsigned int flags; }; -struct xgene_msi_group; +struct iio_mount_matrix { + const char *rotation[9]; +}; -struct xgene_msi { - struct device_node *node; - struct irq_domain *inner_domain; - struct irq_domain *msi_domain; - u64 msi_addr; - void *msi_regs; - unsigned long *bitmap; - struct mutex bitmap_lock; - struct xgene_msi_group *msi_groups; - int num_cpus; +enum iio_available_type { + IIO_AVAIL_LIST = 0, + IIO_AVAIL_RANGE = 1, }; -struct xgene_msi_group { - struct xgene_msi *msi; - int gic_irq; - u32 msi_grp; +struct iio_const_attr { + const char *string; + struct device_attribute dev_attr; }; -struct dmt_videomode { - u32 dmt_id; - u32 std_2byte_code; - u32 cvt_3byte_code; - const struct fb_videomode *mode; +struct iio_enum { + const char * const *items; + unsigned int num_items; + int (*set)(struct iio_dev *, const struct iio_chan_spec *, unsigned int); + int (*get)(struct iio_dev *, const struct iio_chan_spec *); }; -struct apd_private_data; +typedef const struct iio_mount_matrix *iio_get_mount_matrix_t(const struct iio_dev *, const struct iio_chan_spec *); -struct apd_device_desc { - unsigned int fixed_clk_rate; - struct property_entry *properties; - int (*setup)(struct apd_private_data *); +struct iio_dev_buffer_pair { + struct iio_dev *indio_dev; + struct iio_buffer *buffer; }; -struct apd_private_data { - struct clk *clk; - struct acpi_device *adev; - const struct apd_device_desc *dev_desc; +struct apple_efuses_priv { + void *fuses; }; -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 notif_entry { + struct list_head link; + struct completion c; + u_int key; }; -struct acpi_hmat_locality; +struct snd_soc_tplg_kcontrol_ops { + u32 id; + int (*get)(struct snd_kcontrol *, struct snd_ctl_elem_value *); + int (*put)(struct snd_kcontrol *, struct snd_ctl_elem_value *); + int (*info)(struct snd_kcontrol *, struct snd_ctl_elem_info *); +}; -struct memory_locality { - struct list_head node; - struct acpi_hmat_locality *hmat_loc; +struct soc_tplg_map { + int uid; + int kid; }; -struct acpi_hmat_locality { - struct acpi_hmat_structure header; - u8 flags; - u8 data_type; - u8 min_transfer_size; - u8 reserved1; - u32 number_of_initiator_Pds; - u32 number_of_target_Pds; - u32 reserved2; - u64 entry_base_unit; +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, }; -enum acpi_hmat_type { - ACPI_HMAT_TYPE_PROXIMITY = 0, - ACPI_HMAT_TYPE_LOCALITY = 1, - ACPI_HMAT_TYPE_CACHE = 2, - ACPI_HMAT_TYPE_RESERVED = 3, +struct snd_soc_tplg_hdr { + __le32 magic; + __le32 abi; + __le32 version; + __le32 type; + __le32 size; + __le32 vendor_type; + __le32 payload_size; + __le32 index; + __le32 count; }; -enum locality_types { - WRITE_LATENCY = 0, - READ_LATENCY = 1, - WRITE_BANDWIDTH = 2, - READ_BANDWIDTH = 3, +struct snd_soc_tplg_io_ops { + __le32 get; + __le32 put; + __le32 info; }; -struct memory_target { - struct list_head node; - unsigned int memory_pxm; - unsigned int processor_pxm; - struct resource memregions; - struct node_hmem_attrs hmem_attrs[2]; - struct list_head caches; - struct node_cache_attrs cache_attrs; - bool registered; +struct snd_soc_tplg_tlv_dbscale { + __le32 min; + __le32 step; + __le32 mute; }; -struct memory_initiator { - struct list_head node; - unsigned int processor_pxm; - bool has_cpu; +struct snd_soc_tplg_ctl_tlv { + __le32 size; + __le32 type; + union { + __le32 data[32]; + struct snd_soc_tplg_tlv_dbscale scale; + }; }; -struct target_cache { - struct list_head node; - struct node_cache_attrs cache_attrs; +struct snd_soc_tplg_ctl_hdr { + __le32 size; + __le32 type; + char name[44]; + __le32 access; + struct snd_soc_tplg_io_ops ops; + struct snd_soc_tplg_ctl_tlv tlv; }; -struct acpi_srat_mem_affinity { - struct acpi_subtable_header header; - u32 proximity_domain; - u16 reserved; - u64 base_address; - u64 length; - u32 reserved1; - u32 flags; - u64 reserved2; -} __attribute__((packed)); +struct snd_soc_tplg_channel { + __le32 size; + __le32 reg; + __le32 shift; + __le32 id; +}; -struct acpi_hmat_proximity_domain { - struct acpi_hmat_structure header; - u16 flags; - u16 reserved1; - u32 processor_PD; - u32 memory_PD; - u32 reserved2; - u64 reserved3; - u64 reserved4; +struct snd_soc_tplg_vendor_uuid_elem { + __le32 token; + char uuid[16]; }; -struct acpi_hmat_cache { - struct acpi_hmat_structure header; - u32 memory_PD; - u32 reserved1; - u64 cache_size; - u32 cache_attributes; - u16 reserved2; - u16 number_of_SMBIOShandles; +struct snd_soc_tplg_vendor_value_elem { + __le32 token; + __le32 value; }; -struct fsl_sai_clk { - struct clk_divider div; - struct clk_gate gate; - spinlock_t lock; +struct snd_soc_tplg_vendor_string_elem { + __le32 token; + char string[44]; }; -struct imx_scu_clk_node { - const char *name; - u32 rsrc; - u8 clk_type; - const char * const *parents; - int num_parents; - struct clk_hw *hw; - struct list_head node; +struct snd_soc_tplg_vendor_array { + __le32 size; + __le32 type; + __le32 num_elems; + union { + struct { + struct {} __empty_uuid; + struct snd_soc_tplg_vendor_uuid_elem uuid[0]; + }; + struct { + struct {} __empty_value; + struct snd_soc_tplg_vendor_value_elem value[0]; + }; + struct { + struct {} __empty_string; + struct snd_soc_tplg_vendor_string_elem string[0]; + }; + }; }; -struct clk_scu { - struct clk_hw hw; - u16 rsrc_id; - u8 clk_type; - struct clk_hw *parent; - u8 parent_index; - bool is_enabled; - u32 rate; +struct snd_soc_tplg_private { + __le32 size; + union { + struct { + struct {} __empty_data; + char data[0]; + }; + struct { + struct {} __empty_array; + struct snd_soc_tplg_vendor_array array[0]; + }; + }; }; -struct clk_gpr_scu { - struct clk_hw hw; - u16 rsrc_id; - u8 gpr_id; - u8 flags; - bool gate_invert; +struct snd_soc_tplg_mixer_control { + struct snd_soc_tplg_ctl_hdr hdr; + __le32 size; + __le32 min; + __le32 max; + __le32 platform_max; + __le32 invert; + __le32 num_channels; + struct snd_soc_tplg_channel channel[8]; + struct snd_soc_tplg_private priv; }; -struct imx_sc_msg_req_clock_enable { - struct imx_sc_rpc_msg hdr; - __le16 resource; - u8 clk; - u8 enable; - u8 autog; - int: 0; +struct soc_bytes_ext { + int max; + struct snd_soc_dobj dobj; + int (*get)(struct snd_kcontrol *, unsigned int __attribute__((btf_type_tag("user"))) *, unsigned int); + int (*put)(struct snd_kcontrol *, const unsigned int __attribute__((btf_type_tag("user"))) *, unsigned int); }; -struct req_get_clock_rate { - __le16 resource; - u8 clk; +struct snd_soc_tplg_bytes_control { + struct snd_soc_tplg_ctl_hdr hdr; + __le32 size; + __le32 max; + __le32 mask; + __le32 base; + __le32 num_regs; + struct snd_soc_tplg_io_ops ext_ops; + struct snd_soc_tplg_private priv; }; -struct resp_get_clock_rate { - __le32 rate; +struct snd_soc_tplg_enum_control { + struct snd_soc_tplg_ctl_hdr hdr; + __le32 size; + __le32 num_channels; + struct snd_soc_tplg_channel channel[8]; + __le32 items; + __le32 mask; + __le32 count; + char texts[704]; + __le32 values[176]; + struct snd_soc_tplg_private priv; }; -struct imx_sc_msg_get_clock_rate { - struct imx_sc_rpc_msg hdr; - union { - struct req_get_clock_rate req; - struct resp_get_clock_rate resp; - } data; +struct snd_soc_tplg_dapm_graph_elem { + char sink[44]; + char control[44]; + char source[44]; }; -struct imx_sc_msg_set_clock_parent { - struct imx_sc_rpc_msg hdr; - __le16 resource; - u8 clk; - u8 parent; +struct snd_soc_tplg_dapm_widget { + __le32 size; + __le32 id; + char name[44]; + char sname[44]; + __le32 reg; + __le32 shift; + __le32 mask; + __le32 subseq; + __le32 invert; + __le32 ignore_suspend; + __le16 event_flags; + __le16 event_type; + __le32 num_kcontrols; + struct snd_soc_tplg_private priv; }; -struct imx_sc_msg_req_set_clock_rate { - struct imx_sc_rpc_msg hdr; +struct snd_soc_tplg_stream { + __le32 size; + char name[44]; + __le64 format; __le32 rate; - __le16 resource; - u8 clk; + __le32 period_bytes; + __le32 buffer_bytes; + __le32 channels; }; -struct req_get_clock_parent { - __le16 resource; - u8 clk; +struct snd_soc_tplg_stream_caps { + __le32 size; + char name[44]; + __le64 formats; + __le32 rates; + __le32 rate_min; + __le32 rate_max; + __le32 channels_min; + __le32 channels_max; + __le32 periods_min; + __le32 periods_max; + __le32 period_size_min; + __le32 period_size_max; + __le32 buffer_size_min; + __le32 buffer_size_max; + __le32 sig_bits; }; -struct resp_get_clock_parent { - u8 parent; -}; +struct snd_soc_tplg_pcm { + __le32 size; + char pcm_name[44]; + char dai_name[44]; + __le32 pcm_id; + __le32 dai_id; + __le32 playback; + __le32 capture; + __le32 compress; + struct snd_soc_tplg_stream stream[8]; + __le32 num_streams; + struct snd_soc_tplg_stream_caps caps[2]; + __le32 flag_mask; + __le32 flags; + struct snd_soc_tplg_private priv; +} __attribute__((packed)); + +struct snd_soc_tplg_stream_caps_v4 { + __le32 size; + char name[44]; + __le64 formats; + __le32 rates; + __le32 rate_min; + __le32 rate_max; + __le32 channels_min; + __le32 channels_max; + __le32 periods_min; + __le32 periods_max; + __le32 period_size_min; + __le32 period_size_max; + __le32 buffer_size_min; + __le32 buffer_size_max; +} __attribute__((packed)); + +struct snd_soc_tplg_pcm_v4 { + __le32 size; + char pcm_name[44]; + char dai_name[44]; + __le32 pcm_id; + __le32 dai_id; + __le32 playback; + __le32 capture; + __le32 compress; + struct snd_soc_tplg_stream stream[8]; + __le32 num_streams; + struct snd_soc_tplg_stream_caps_v4 caps[2]; +} __attribute__((packed)); + +struct snd_soc_tplg_dai { + __le32 size; + char dai_name[44]; + __le32 dai_id; + __le32 playback; + __le32 capture; + struct snd_soc_tplg_stream_caps caps[2]; + __le32 flag_mask; + __le32 flags; + struct snd_soc_tplg_private priv; +} __attribute__((packed)); -struct imx_sc_msg_get_clock_parent { - struct imx_sc_rpc_msg hdr; - union { - struct req_get_clock_parent req; - struct resp_get_clock_parent resp; - } data; +struct snd_soc_tplg_hw_config { + __le32 size; + __le32 id; + __le32 fmt; + __u8 clock_gated; + __u8 invert_bclk; + __u8 invert_fsync; + __u8 bclk_provider; + __u8 fsync_provider; + __u8 mclk_direction; + __le16 reserved; + __le32 mclk_rate; + __le32 bclk_rate; + __le32 fsync_rate; + __le32 tdm_slots; + __le32 tdm_slot_width; + __le32 tx_slots; + __le32 rx_slots; + __le32 tx_channels; + __le32 tx_chanmap[8]; + __le32 rx_channels; + __le32 rx_chanmap[8]; }; -struct clk_cbf_8996_mux { - u32 reg; - struct notifier_block nb; - struct clk_regmap___2 clkr; +struct snd_soc_tplg_link_config { + __le32 size; + __le32 id; + char name[44]; + char stream_name[44]; + struct snd_soc_tplg_stream stream[8]; + __le32 num_streams; + struct snd_soc_tplg_hw_config hw_config[8]; + __le32 num_hw_configs; + __le32 default_hw_config_id; + __le32 flag_mask; + __le32 flags; + struct snd_soc_tplg_private priv; }; -enum { - CBF_XO_INDEX = 0, - CBF_PLL_INDEX = 1, - CBF_DIV_INDEX = 2, - CBF_APCS_AUX_INDEX = 3, -}; +struct snd_soc_tplg_link_config_v4 { + __le32 size; + __le32 id; + struct snd_soc_tplg_stream stream[8]; + __le32 num_streams; +} __attribute__((packed)); -struct icc_clk_data { - struct clk *clk; - const char *name; +struct snd_soc_tplg_manifest { + __le32 size; + __le32 control_elems; + __le32 widget_elems; + __le32 graph_elems; + __le32 pcm_elems; + __le32 dai_link_elems; + __le32 dai_elems; + __le32 reserved[20]; + struct snd_soc_tplg_private priv; }; -enum clk_ids___6 { - LAST_DT_CORE_CLK___6 = 46, - CLK_EXTAL___6 = 47, - CLK_EXTALR___6 = 48, - CLK_MAIN___6 = 49, - CLK_PLL0___4 = 50, - CLK_PLL1___6 = 51, - CLK_PLL2___3 = 52, - CLK_PLL3___5 = 53, - CLK_PLL4___3 = 54, - CLK_PLL1_DIV2___6 = 55, - CLK_PLL1_DIV4___4 = 56, - CLK_S0___4 = 57, - CLK_S1___4 = 58, - CLK_S2___3 = 59, - CLK_S3___4 = 60, - CLK_SDSRC___5 = 61, - CLK_RPCSRC___5 = 62, - CLK_RINT___3 = 63, - MOD_CLK_BASE___6 = 64, +struct snd_soc_tplg_manifest_v4 { + __le32 size; + __le32 control_elems; + __le32 widget_elems; + __le32 graph_elems; + __le32 pcm_elems; + __le32 dai_link_elems; + struct snd_soc_tplg_private priv; }; -struct tegra_cpu_car_ops { - void (*wait_for_reset)(u32); - void (*put_in_reset)(u32); - void (*out_of_reset)(u32); - void (*enable_clock)(u32); - void (*disable_clock)(u32); - bool (*rail_off_ready)(); - void (*suspend)(); - void (*resume)(); -}; +struct snd_soc_tplg_bytes_ext_ops; -typedef void (*tegra_clk_apply_init_table_func)(); +struct snd_soc_tplg_ops; -struct tegra_clk_duplicate { - int clk_id; - struct clk_lookup lookup; +struct soc_tplg { + const struct firmware *fw; + const u8 *pos; + const u8 *hdr_pos; + unsigned int pass; + struct device *dev; + struct snd_soc_component *comp; + u32 index; + const struct snd_soc_tplg_kcontrol_ops *io_ops; + int io_ops_count; + const struct snd_soc_tplg_bytes_ext_ops *bytes_ext_ops; + int bytes_ext_ops_count; + struct snd_soc_tplg_ops *ops; }; -struct tegra_clk_init_table { - unsigned int clk_id; - unsigned int parent_id; - unsigned long rate; - int state; +struct snd_soc_tplg_bytes_ext_ops { + u32 id; + int (*get)(struct snd_kcontrol *, unsigned int __attribute__((btf_type_tag("user"))) *, unsigned int); + int (*put)(struct snd_kcontrol *, const unsigned int __attribute__((btf_type_tag("user"))) *, unsigned int); }; -struct tegra_devclk { - int dt_id; - char *dev_id; - char *con_id; +struct snd_soc_tplg_ops { + int (*control_load)(struct snd_soc_component *, int, struct snd_kcontrol_new *, struct snd_soc_tplg_ctl_hdr *); + int (*control_unload)(struct snd_soc_component *, struct snd_soc_dobj *); + int (*dapm_route_load)(struct snd_soc_component *, int, struct snd_soc_dapm_route *); + int (*dapm_route_unload)(struct snd_soc_component *, struct snd_soc_dobj *); + int (*widget_load)(struct snd_soc_component *, int, struct snd_soc_dapm_widget *, struct snd_soc_tplg_dapm_widget *); + int (*widget_ready)(struct snd_soc_component *, int, struct snd_soc_dapm_widget *, struct snd_soc_tplg_dapm_widget *); + int (*widget_unload)(struct snd_soc_component *, struct snd_soc_dobj *); + int (*dai_load)(struct snd_soc_component *, int, struct snd_soc_dai_driver *, struct snd_soc_tplg_pcm *, struct snd_soc_dai *); + int (*dai_unload)(struct snd_soc_component *, struct snd_soc_dobj *); + int (*link_load)(struct snd_soc_component *, int, struct snd_soc_dai_link *, struct snd_soc_tplg_link_config *); + int (*link_unload)(struct snd_soc_component *, struct snd_soc_dobj *); + int (*vendor_load)(struct snd_soc_component *, int, struct snd_soc_tplg_hdr *); + int (*vendor_unload)(struct snd_soc_component *, struct snd_soc_tplg_hdr *); + int (*complete)(struct snd_soc_component *); + int (*manifest)(struct snd_soc_component *, int, struct snd_soc_tplg_manifest *); + const struct snd_soc_tplg_kcontrol_ops *io_ops; + int io_ops_count; + const struct snd_soc_tplg_bytes_ext_ops *bytes_ext_ops; + int bytes_ext_ops_count; }; -struct idmac { - struct dma_device dma; +struct snd_soc_tplg_widget_events { + u16 type; + int (*event_handler)(struct snd_soc_dapm_widget *, struct snd_kcontrol *, int); }; -enum display_port { - DISP0 = 0, - DISP1 = 1, - DISP2 = 2, - DISP3 = 3, -}; - -struct idmac_video_param { - unsigned short in_width; - unsigned short in_height; - uint32_t in_pixel_fmt; - unsigned short out_width; - unsigned short out_height; - uint32_t out_pixel_fmt; - unsigned short out_stride; - bool graphics_combine_en; - bool global_alpha_en; - bool key_color_en; - enum display_port disp; - unsigned short out_left; - unsigned short out_top; -}; - -union ipu_channel_param { - struct idmac_video_param video; -}; - -enum ipu_channel { - IDMAC_IC_0 = 0, - IDMAC_IC_1 = 1, - IDMAC_ADC_0 = 1, - IDMAC_IC_2 = 2, - IDMAC_ADC_1 = 2, - IDMAC_IC_3 = 3, - IDMAC_IC_4 = 4, - IDMAC_IC_5 = 5, - IDMAC_IC_6 = 6, - IDMAC_IC_7 = 7, - IDMAC_IC_8 = 8, - IDMAC_IC_9 = 9, - IDMAC_IC_10 = 10, - IDMAC_IC_11 = 11, - IDMAC_IC_12 = 12, - IDMAC_IC_13 = 13, - IDMAC_SDC_0 = 14, - IDMAC_SDC_1 = 15, - IDMAC_SDC_2 = 16, - IDMAC_SDC_3 = 17, - IDMAC_ADC_2 = 18, - IDMAC_ADC_3 = 19, - IDMAC_ADC_4 = 20, - IDMAC_ADC_5 = 21, - IDMAC_ADC_6 = 22, - IDMAC_ADC_7 = 23, - IDMAC_PF_0 = 24, - IDMAC_PF_1 = 25, - IDMAC_PF_2 = 26, - IDMAC_PF_3 = 27, - IDMAC_PF_4 = 28, - IDMAC_PF_5 = 29, - IDMAC_PF_6 = 30, - IDMAC_PF_7 = 31, -}; - -enum ipu_channel_status { - IPU_CHANNEL_FREE = 0, - IPU_CHANNEL_INITIALIZED = 1, - IPU_CHANNEL_READY = 2, - IPU_CHANNEL_ENABLED = 3, -}; - -struct idmac_tx_desc; - -struct idmac_channel { - struct dma_chan dma_chan; - dma_cookie_t completed; - union ipu_channel_param params; - enum ipu_channel link; - enum ipu_channel_status status; - void *client; - unsigned int n_tx_desc; - struct idmac_tx_desc *desc; - struct scatterlist *sg[2]; - struct list_head free_list; - struct list_head queue; - spinlock_t lock; - struct mutex chan_mutex; - bool sec_chan_en; - int active_buffer; - unsigned int eof_irq; - char eof_name[16]; -}; - -struct ipu { - void *reg_ipu; - void *reg_ic; - unsigned int irq_fn; - unsigned int irq_err; - unsigned int irq_base; - unsigned long channel_init_mask; - spinlock_t lock; - struct clk *ipu_clk; - struct device *dev; - struct idmac idmac; - struct idmac_channel channel[32]; - struct tasklet_struct tasklet; +enum { + IF_LINK_MODE_DEFAULT = 0, + IF_LINK_MODE_DORMANT = 1, + IF_LINK_MODE_TESTING = 2, }; -struct idmac_tx_desc { - struct dma_async_tx_descriptor txd; - struct scatterlist *sg; - unsigned int sg_len; - struct list_head list; +enum lw_bits { + LW_URGENT = 0, }; -enum ipu_color_space { - IPU_COLORSPACE_RGB = 0, - IPU_COLORSPACE_YCBCR = 1, - IPU_COLORSPACE_YUV = 2, -}; - -enum pixel_fmt { - IPU_PIX_FMT_GENERIC = 0, - IPU_PIX_FMT_RGB332 = 1, - IPU_PIX_FMT_YUV420P = 2, - IPU_PIX_FMT_YUV422P = 3, - IPU_PIX_FMT_YUV420P2 = 4, - IPU_PIX_FMT_YVU422P = 5, - IPU_PIX_FMT_RGB565 = 6, - IPU_PIX_FMT_RGB666 = 7, - IPU_PIX_FMT_BGR666 = 8, - IPU_PIX_FMT_YUYV = 9, - IPU_PIX_FMT_UYVY = 10, - IPU_PIX_FMT_RGB24 = 11, - IPU_PIX_FMT_BGR24 = 12, - IPU_PIX_FMT_GENERIC_32 = 13, - IPU_PIX_FMT_RGB32 = 14, - IPU_PIX_FMT_BGR32 = 15, - IPU_PIX_FMT_ABGR32 = 16, - IPU_PIX_FMT_BGRA32 = 17, - IPU_PIX_FMT_RGBA32 = 18, -}; - -enum ipu_rotate_mode { - IPU_ROTATE_NONE = 0, - IPU_ROTATE_VERT_FLIP = 1, - IPU_ROTATE_HORIZ_FLIP = 2, - IPU_ROTATE_180 = 3, - IPU_ROTATE_90_RIGHT = 4, - IPU_ROTATE_90_RIGHT_VFLIP = 5, - IPU_ROTATE_90_RIGHT_HFLIP = 6, - IPU_ROTATE_90_LEFT = 7, -}; - -struct chan_param_mem_planar { - u32 xv: 10; - u32 yv: 10; - u32 xb: 12; - u32 yb: 12; - u32 res1: 2; - u32 nsb: 1; - u32 lnpb: 6; - u32 ubo_l: 11; - u32 ubo_h: 15; - u32 vbo_l: 17; - u32 vbo_h: 9; - u32 res2: 3; - u32 fw: 12; - u32 fh_l: 8; - u32 fh_h: 4; - u32 res3: 28; - u32 eba0; - u32 eba1; - u32 bpp: 3; - u32 sl: 14; - u32 pfs: 3; - u32 bam: 3; - u32 res4: 2; - u32 npb: 6; - u32 res5: 1; - u32 sat: 2; - u32 res6: 30; -}; - -struct chan_param_mem_interleaved { - u32 xv: 10; - u32 yv: 10; - u32 xb: 12; - u32 yb: 12; - u32 sce: 1; - u32 res1: 1; - u32 nsb: 1; - u32 lnpb: 6; - u32 sx: 10; - u32 sy_l: 1; - u32 sy_h: 9; - u32 ns: 10; - u32 sm: 10; - u32 sdx_l: 3; - u32 sdx_h: 2; - u32 sdy: 5; - u32 sdrx: 1; - u32 sdry: 1; - u32 sdr1: 1; - u32 res2: 2; - u32 fw: 12; - u32 fh_l: 8; - u32 fh_h: 4; - u32 res3: 28; - u32 eba0; - u32 eba1; - u32 bpp: 3; - u32 sl: 14; - u32 pfs: 3; - u32 bam: 3; - u32 res4: 2; - u32 npb: 6; - u32 res5: 1; - u32 sat: 2; - u32 scc: 1; - u32 ofs0: 5; - u32 ofs1: 5; - u32 ofs2: 5; - u32 ofs3: 5; - u32 wid0: 3; - u32 wid1: 3; - u32 wid2: 3; - u32 wid3: 3; - u32 dec_sel: 1; - u32 res6: 28; -}; - -union chan_param_mem { - struct chan_param_mem_planar pp; - struct chan_param_mem_interleaved ip; +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, }; -struct qbman_swp_desc { - void *cena_bar; - void *cinh_bar; - u32 qman_version; - u32 qman_clk; - u32 qman_256_cycles_per_ns; +enum genl_validate_flags { + GENL_DONT_VALIDATE_STRICT = 1, + GENL_DONT_VALIDATE_DUMP = 2, + GENL_DONT_VALIDATE_DUMP_STRICT = 4, }; -struct qbman_swp; - -struct dpaa2_io { - struct dpaa2_io_desc dpio_desc; - struct qbman_swp_desc swp_desc; - struct qbman_swp *swp; - struct list_head node; - spinlock_t lock_mgmt_cmd; - spinlock_t lock_notifications; - struct list_head notifications; - struct device *dev; - struct dim rx_dim; - spinlock_t dim_lock; - u16 event_ctr; - u64 bytes; - u64 frames; +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, }; -struct qbman_swp { - const struct qbman_swp_desc *desc; - void *addr_cena; - void *addr_cinh; - struct { - u32 valid_bit; - } mc; - struct { - u32 valid_bit; - } mr; - u32 sdq; - struct { - atomic_t available; - u32 valid_bit; - struct dpaa2_dq *storage; - } vdq; - struct { - u32 next_idx; - u32 valid_bit; - u8 dqrr_size; - int reset_bug; - } dqrr; - struct { - u32 pi; - u32 pi_vb; - u32 pi_ring_size; - u32 pi_ci_mask; - u32 ci; - int available; - u32 pend; - u32 no_pfdr; - } eqcr; - spinlock_t access_spinlock; - u32 irq_threshold; - u32 irq_holdoff; - int use_adaptive_rx_coalesce; +enum { + CTRL_ATTR_OP_UNSPEC = 0, + CTRL_ATTR_OP_ID = 1, + CTRL_ATTR_OP_FLAGS = 2, + __CTRL_ATTR_OP_MAX = 3, }; -enum qbman_pull_type_e { - qbman_pull_type_prio = 1, - qbman_pull_type_active = 2, - qbman_pull_type_active_noics = 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, }; -struct qbman_pull_desc { - u8 verb; - u8 numf; - u8 tok; - u8 reserved; - __le32 dq_src; - __le64 rsp_addr; - u64 rsp_addr_virt; - u8 padding[40]; +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 qbman_eq_desc { - u8 verb; - u8 dca; - __le16 seqnum; - __le16 orpid; - __le16 reserved1; - __le32 tgtid; - __le32 tag; - __le16 qdbin; - u8 qpri; - u8 reserved[3]; - u8 wae; - u8 rspid; - __le64 rsp_addr; +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 qbman_release_desc { - u8 verb; - u8 reserved; - __le16 bpid; - __le32 reserved2; - __le64 buf[7]; -}; +struct netlink_policy_dump_state; -struct qbman_fq_query_np_rslt { - u8 verb; - u8 rslt; - u8 st1; - u8 st2; - u8 reserved[2]; - __le16 od1_sfdr; - __le16 od2_sfdr; - __le16 od3_sfdr; - __le16 ra1_sfdr; - __le16 ra2_sfdr; - __le32 pfdr_hptr; - __le32 pfdr_tptr; - __le32 frm_cnt; - __le32 byte_cnt; - __le16 ics_surp; - u8 is; - u8 reserved2[29]; +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 qbman_bp_query_rslt { - u8 verb; - u8 rslt; - u8 reserved[4]; - u8 bdi; - u8 state; - __le32 fill; - __le32 hdotr; - __le16 swdet; - __le16 swdxt; - __le16 hwdet; - __le16 hwdxt; - __le16 swset; - __le16 swsxt; - __le16 vbpid; - __le16 icid; - __le64 bpscn_addr; - __le64 bpscn_ctx; - __le16 hw_targ; - u8 dbe; - u8 reserved2; - u8 sdcnt; - u8 hdcnt; - u8 sscnt; - u8 reserved3[9]; +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; }; -struct dpaa2_io_store { - unsigned int max; - dma_addr_t paddr; - struct dpaa2_dq *vaddr; - void *alloced_addr; - unsigned int idx; - struct qbman_swp *swp; - struct device *dev; +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 exynos_asv_table { - unsigned int num_rows; - unsigned int num_cols; - u32 *buf; +struct tsinfo_reply_data { + struct ethnl_reply_data base; + struct ethtool_ts_info ts_info; }; -struct exynos_asv; +struct tcp_metrics_block; -struct exynos_asv_subsys { - struct exynos_asv *asv; - const char *cpu_dt_compat; - int id; - struct exynos_asv_table table; - unsigned int base_volt; - unsigned int offset_volt_h; - unsigned int offset_volt_l; +struct tcpm_hash_bucket { + struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *chain; }; -struct exynos_asv { - struct device *dev; - struct regmap *chipid_regmap; - struct exynos_asv_subsys subsys[2]; - int (*opp_get_voltage)(const struct exynos_asv_subsys *, int, unsigned int); - unsigned int group; - unsigned int table; - bool use_sg; - int of_bin; +struct tcp_fastopen_metrics { + u16 mss; + u16 syn_loss: 10; + u16 try_exp: 2; + unsigned long last_syn_loss; + struct tcp_fastopen_cookie cookie; }; -enum virtio_balloon_vq { - VIRTIO_BALLOON_VQ_INFLATE = 0, - VIRTIO_BALLOON_VQ_DEFLATE = 1, - VIRTIO_BALLOON_VQ_STATS = 2, - VIRTIO_BALLOON_VQ_FREE_PAGE = 3, - VIRTIO_BALLOON_VQ_REPORTING = 4, - VIRTIO_BALLOON_VQ_MAX = 5, +struct tcp_metrics_block { + struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *tcpm_next; + struct net *tcpm_net; + struct inetpeer_addr tcpm_saddr; + struct inetpeer_addr tcpm_daddr; + unsigned long tcpm_stamp; + u32 tcpm_lock; + u32 tcpm_vals[5]; + struct tcp_fastopen_metrics tcpm_fastopen; + struct callback_head callback_head; }; -enum virtio_balloon_config_read { - VIRTIO_BALLOON_CONFIG_READ_CMD_ID = 0, +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, }; -struct virtio_balloon_stat { - __virtio16 tag; - __virtio64 val; -} __attribute__((packed)); - -struct virtio_balloon { - struct virtio_device *vdev; - struct virtqueue *inflate_vq; - struct virtqueue *deflate_vq; - struct virtqueue *stats_vq; - struct virtqueue *free_page_vq; - struct workqueue_struct *balloon_wq; - struct work_struct report_free_page_work; - struct work_struct update_balloon_stats_work; - struct work_struct update_balloon_size_work; - spinlock_t stop_update_lock; - bool stop_update; - unsigned long config_read_bitmap; - struct list_head free_page_list; - spinlock_t free_page_list_lock; - unsigned long num_free_page_blocks; - u32 cmd_id_received_cache; - __virtio32 cmd_id_active; - __virtio32 cmd_id_stop; - wait_queue_head_t acked; - unsigned int num_pages; - struct balloon_dev_info vb_dev_info; - struct mutex balloon_lock; - unsigned int num_pfns; - __virtio32 pfns[256]; - struct virtio_balloon_stat stats[10]; - struct shrinker shrinker; - struct notifier_block oom_nb; - struct virtqueue *reporting_vq; - struct page_reporting_dev_info pr_dev_info; +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, }; -struct mt6360_irq_mapping; - -struct mt6360_regulator_desc { - const struct regulator_desc desc; - unsigned int mode_reg; - unsigned int mode_mask; - unsigned int state_reg; - unsigned int state_mask; - const struct mt6360_irq_mapping *irq_tables; - int irq_table_size; +enum { + TCP_METRICS_CMD_UNSPEC = 0, + TCP_METRICS_CMD_GET = 1, + TCP_METRICS_CMD_DEL = 2, + __TCP_METRICS_CMD_MAX = 3, }; -struct mt6360_irq_mapping { - const char *name; - irq_handler_t handler; +struct ipfrag_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + }; + struct sk_buff *next_frag; + int frag_run_len; }; -struct mt6360_regulator_data { - struct device *dev; - struct regmap *regmap; +enum { + UDP_BPF_IPV4 = 0, + UDP_BPF_IPV6 = 1, + UDP_BPF_NUM_PROTS = 2, }; -struct uniphier_glue_reset_soc_data { - int nclks; - const char * const *clock_names; - int nrsts; - const char * const *reset_names; +struct rpcb_info { + u32 rpc_vers; + const struct rpc_procinfo *rpc_proc; }; -struct uniphier_glue_reset_priv { - struct clk_bulk_data clk[2]; - struct reset_control_bulk_data rst[2]; - struct reset_simple_data rdata; - const struct uniphier_glue_reset_soc_data *data; +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 dw8250_port_data { - int line; - struct uart_8250_dma dma; - u8 dlf_size; - bool hw_rs485_support; +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 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; +enum { + XDP_DIAG_NONE = 0, + XDP_DIAG_INFO = 1, + XDP_DIAG_UID = 2, + XDP_DIAG_RX_RING = 3, + XDP_DIAG_TX_RING = 4, + XDP_DIAG_UMEM = 5, + XDP_DIAG_UMEM_FILL_RING = 6, + XDP_DIAG_UMEM_COMPLETION_RING = 7, + XDP_DIAG_MEMINFO = 8, + XDP_DIAG_STATS = 9, + __XDP_DIAG_MAX = 10, }; -struct dw8250_platform_data { - u8 usr_reg; - u32 cpr_val; - unsigned int quirks; +struct xdp_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u16 pad; + __u32 xdiag_ino; + __u32 xdiag_show; + __u32 xdiag_cookie[2]; }; -struct owl_uart_port { - struct uart_port port; - struct clk *clk; +struct xdp_diag_msg { + __u8 xdiag_family; + __u8 xdiag_type; + __u16 pad; + __u32 xdiag_ino; + __u32 xdiag_cookie[2]; }; -struct owl_uart_info { - unsigned int tx_fifosize; +struct xdp_diag_info { + __u32 ifindex; + __u32 queue_id; }; -struct drm_dmi_panel_orientation_data { - int width; - int height; - const char * const *bios_dates; - int orientation; +struct xdp_diag_ring { + __u32 entries; }; -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 xdp_diag_umem { + __u64 size; + __u32 id; + __u32 num_pages; + __u32 chunk_size; + __u32 headroom; + __u32 ifindex; + __u32 queue_id; + __u32 flags; + __u32 refs; }; -struct fwnode_link { - struct fwnode_handle *supplier; - struct list_head s_hook; - struct fwnode_handle *consumer; - struct list_head c_hook; - u8 flags; +struct xdp_diag_stats { + __u64 n_rx_dropped; + __u64 n_rx_invalid; + __u64 n_rx_full; + __u64 n_fill_ring_empty; + __u64 n_tx_invalid; + __u64 n_tx_ring_empty; }; -struct class_dir { - struct kobject kobj; - const struct class *class; +struct sigcontext { + __u64 fault_address; + __u64 regs[31]; + __u64 sp; + __u64 pc; + __u64 pstate; + long: 64; + __u8 __reserved[4096]; }; -struct root_device { - struct device dev; - struct module *owner; +struct ucontext { + unsigned long uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; + sigset_t uc_sigmask; + __u8 __unused[120]; + long: 64; + struct sigcontext uc_mcontext; }; -union device_attr_group_devres { - const struct attribute_group *group; - const struct attribute_group **groups; +struct rt_sigframe { + struct siginfo info; + struct ucontext uc; }; -enum rz_mtu3_channels { - RZ_MTU3_CHAN_0 = 0, - RZ_MTU3_CHAN_1 = 1, - RZ_MTU3_CHAN_2 = 2, - RZ_MTU3_CHAN_3 = 3, - RZ_MTU3_CHAN_4 = 4, - RZ_MTU3_CHAN_5 = 5, - RZ_MTU3_CHAN_6 = 6, - RZ_MTU3_CHAN_7 = 7, - RZ_MTU3_CHAN_8 = 8, - RZ_MTU_NUM_CHANNELS = 9, +struct _aarch64_ctx { + __u32 magic; + __u32 size; }; -struct rz_mtu3_channel { - struct device *dev; - unsigned int channel_number; - struct mutex lock; - bool is_busy; +struct fpsimd_context { + struct _aarch64_ctx head; + __u32 fpsr; + __u32 fpcr; + __uint128_t vregs[32]; }; -struct rz_mtu3 { - struct clk *clk; - struct rz_mtu3_channel channels[9]; - void *priv_data; +struct sve_context { + struct _aarch64_ctx head; + __u16 vl; + __u16 flags; + __u16 __reserved[2]; }; -struct rz_mtu3_priv { - void *mmio; - struct reset_control *rstc; - raw_spinlock_t lock; +struct tpidr2_context { + struct _aarch64_ctx head; + __u64 tpidr2; }; -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 za_context { + struct _aarch64_ctx head; + __u16 vl; + __u16 __reserved[3]; }; -struct ata_force_ent { - int port; - int device; - struct ata_force_param param; +struct zt_context { + struct _aarch64_ctx head; + __u16 nregs; + __u16 __reserved[3]; }; -struct ata_xfer_ent { - int shift; - int bits; - u8 base; +struct extra_context { + struct _aarch64_ctx head; + __u64 datap; + __u32 size; + __u32 __reserved[3]; }; -struct ata_blacklist_entry { - const char *model_num; - const char *model_rev; - unsigned long horkage; +struct frame_record { + u64 fp; + u64 lr; }; -enum ata_xfer_mask { - ATA_MASK_PIO = 127, - ATA_MASK_MWDMA = 3968, - ATA_MASK_UDMA = 1044480, +struct user_ctxs { + struct fpsimd_context __attribute__((btf_type_tag("user"))) *fpsimd; + u32 fpsimd_size; + struct sve_context __attribute__((btf_type_tag("user"))) *sve; + u32 sve_size; + struct tpidr2_context __attribute__((btf_type_tag("user"))) *tpidr2; + u32 tpidr2_size; + struct za_context __attribute__((btf_type_tag("user"))) *za; + u32 za_size; + struct zt_context __attribute__((btf_type_tag("user"))) *zt; + u32 zt_size; }; -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 rt_sigframe_user_layout { + struct rt_sigframe __attribute__((btf_type_tag("user"))) *sigframe; + struct frame_record __attribute__((btf_type_tag("user"))) *next_frame; + unsigned long size; + unsigned long limit; + unsigned long fpsimd_offset; + unsigned long esr_offset; + unsigned long sve_offset; + unsigned long tpidr2_offset; + unsigned long za_offset; + unsigned long zt_offset; + unsigned long extra_offset; + unsigned long end_offset; }; -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 esr_context { + struct _aarch64_ctx head; + __u64 esr; }; -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]; -}; +typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int)); -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]; -}; +typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *); -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]; +typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int); + +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; }; -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 cpuhp_cpu_state { + enum cpuhp_state state; + enum cpuhp_state target; + enum cpuhp_state fail; + struct task_struct *thread; + bool should_run; + bool rollback; + bool single; + bool bringup; + struct hlist_node *node; + struct hlist_node *last; + enum cpuhp_state cb_state; + int result; + atomic_t ap_sync_state; + struct completion done_up; + struct completion done_down; }; -struct 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 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; }; -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]; +enum cpu_mitigations { + CPU_MITIGATIONS_OFF = 0, + CPU_MITIGATIONS_AUTO = 1, + CPU_MITIGATIONS_AUTO_NOSMT = 2, }; -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]; +enum cpuhp_sync_state { + SYNC_STATE_DEAD = 0, + SYNC_STATE_KICKED = 1, + SYNC_STATE_SHOULD_DIE = 2, + SYNC_STATE_ALIVE = 3, + SYNC_STATE_SHOULD_ONLINE = 4, + SYNC_STATE_ONLINE = 5, }; -struct trace_event_raw_ata_link_reset_begin_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned int class[2]; - unsigned long deadline; - char __data[0]; +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 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]; +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 trace_event_raw_ata_port_eh_begin_template { +struct trace_event_raw_cpuhp_enter { struct trace_entry ent; - unsigned int ata_port; + unsigned int cpu; + int target; + int idx; + void *fun; char __data[0]; }; -struct trace_event_raw_ata_sff_hsm_template { +struct trace_event_raw_cpuhp_multi_enter { 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; + unsigned int cpu; + int target; + int idx; + void *fun; char __data[0]; }; -struct trace_event_raw_ata_transfer_data_template { +struct trace_event_raw_cpuhp_exit { struct trace_entry ent; - unsigned int ata_port; - unsigned int ata_dev; - unsigned int tag; - unsigned int flags; - unsigned int offset; - unsigned int bytes; + unsigned int cpu; + int state; + int idx; + int ret; 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 cpu_down_work { + unsigned int cpu; + enum cpuhp_state target; }; -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_cpuhp_enter {}; -struct trace_event_data_offsets_ata_transfer_data_template {}; +struct trace_event_data_offsets_cpuhp_multi_enter {}; -struct trace_event_data_offsets_ata_sff_template {}; +struct trace_event_data_offsets_cpuhp_exit {}; -struct pci_bits { - unsigned int reg; - unsigned int width; - unsigned long mask; - unsigned long val; +struct dma_devres { + size_t size; + void *vaddr; + dma_addr_t dma_handle; + unsigned long attrs; }; -typedef void (*btf_trace_spi_controller_idle)(void *, struct spi_controller *); - -typedef void (*btf_trace_spi_controller_busy)(void *, struct spi_controller *); - -typedef void (*btf_trace_spi_setup)(void *, struct spi_device *, int); - -typedef void (*btf_trace_spi_set_cs)(void *, struct spi_device *, bool); - -typedef void (*btf_trace_spi_message_submit)(void *, struct spi_message *); - -typedef void (*btf_trace_spi_message_start)(void *, struct spi_message *); - -typedef void (*btf_trace_spi_message_done)(void *, struct spi_message *); - -typedef void (*btf_trace_spi_transfer_start)(void *, struct spi_message *, struct spi_transfer *); - -typedef void (*btf_trace_spi_transfer_stop)(void *, struct spi_message *, struct spi_transfer *); - -struct spi_board_info { - char modalias[32]; - const void *platform_data; - const struct software_node *swnode; - void *controller_data; - int irq; - u32 max_speed_hz; - u16 bus_num; - u16 chip_select; - u32 mode; +struct kexec_load_limit { + struct mutex mutex; + int limit; }; -struct boardinfo { +struct listener_list { + struct rw_semaphore sem; struct list_head list; - struct spi_board_info board_info; }; -struct trace_event_raw_spi_controller { - struct trace_entry ent; - int bus_num; - char __data[0]; +enum { + TASKSTATS_CMD_UNSPEC = 0, + TASKSTATS_CMD_GET = 1, + TASKSTATS_CMD_NEW = 2, + __TASKSTATS_CMD_MAX = 3, }; -struct trace_event_raw_spi_setup { - struct trace_entry ent; - int bus_num; - int chip_select; - unsigned long mode; - unsigned int bits_per_word; - unsigned int max_speed_hz; - int status; - char __data[0]; +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, }; -struct trace_event_raw_spi_set_cs { - struct trace_entry ent; - int bus_num; - int chip_select; - unsigned long mode; - bool enable; - char __data[0]; +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, }; -struct trace_event_raw_spi_message { - struct trace_entry ent; - int bus_num; - int chip_select; - struct spi_message *msg; - char __data[0]; +enum actions { + REGISTER = 0, + DEREGISTER = 1, + CPU_DONT_CARE = 2, }; -struct trace_event_raw_spi_message_done { - struct trace_entry ent; - int bus_num; - int chip_select; - struct spi_message *msg; - unsigned int frame; - unsigned int actual; - char __data[0]; +enum { + CGROUPSTATS_CMD_ATTR_UNSPEC = 0, + CGROUPSTATS_CMD_ATTR_FD = 1, + __CGROUPSTATS_CMD_ATTR_MAX = 2, }; -struct trace_event_raw_spi_transfer { - struct trace_entry ent; - int bus_num; - int chip_select; - struct spi_transfer *xfer; - int len; - u32 __data_loc_rx_buf; - u32 __data_loc_tx_buf; - char __data[0]; +enum { + CGROUPSTATS_CMD_UNSPEC = 3, + CGROUPSTATS_CMD_GET = 4, + CGROUPSTATS_CMD_NEW = 5, + __CGROUPSTATS_CMD_MAX = 6, }; -typedef void (*spi_res_release_t)(struct spi_controller *, struct spi_message *, void *); - -struct spi_res { - struct list_head entry; - spi_res_release_t release; - unsigned long long data[0]; +enum { + CGROUPSTATS_TYPE_UNSPEC = 0, + CGROUPSTATS_TYPE_CGROUP_STATS = 1, + __CGROUPSTATS_TYPE_MAX = 2, }; -struct trace_event_data_offsets_spi_transfer { - u32 rx_buf; - u32 tx_buf; +struct listener { + struct list_head list; + pid_t pid; + char valid; }; -struct spi_replaced_transfers; - -typedef void (*spi_replaced_release_t)(struct spi_controller *, struct spi_message *, struct spi_replaced_transfers *); - -struct spi_replaced_transfers { - spi_replaced_release_t release; - void *extradata; - struct list_head replaced_transfers; - struct list_head *replaced_after; - size_t inserted; - struct spi_transfer inserted_transfers[0]; +struct cgroupstats { + __u64 nr_sleeping; + __u64 nr_running; + __u64 nr_stopped; + __u64 nr_uninterruptible; + __u64 nr_io_wait; }; -struct trace_event_data_offsets_spi_controller {}; - -struct trace_event_data_offsets_spi_setup {}; - -struct trace_event_data_offsets_spi_set_cs {}; - -struct trace_event_data_offsets_spi_message {}; - -struct trace_event_data_offsets_spi_message_done {}; - -struct acpi_spi_lookup { - struct spi_controller *ctlr; - u32 max_speed_hz; - u32 mode; - int irq; - u8 bits_per_word; - u8 chip_select; - int n; - int index; +struct boot_triggers { + const char *event; + char *trigger; }; -struct dpaa2_faf_error_bit { - int position; - enum devlink_trap_generic_id trap_id; +enum { + TRACE_PIDS = 1, + TRACE_NO_PIDS = 2, }; -struct dpaa2_eth_devlink_priv { - struct dpaa2_eth_priv *dpaa2_priv; +enum { + FORMAT_HEADER = 1, + FORMAT_FIELD_SEPERATOR = 2, + FORMAT_PRINTFMT = 3, }; -enum hclge_ptp_udp_type { - HCLGE_PTP_UDP_NOT_TYPE = 0, - HCLGE_PTP_UDP_P13F_TYPE = 1, - HCLGE_PTP_UDP_P140_TYPE = 2, - HCLGE_PTP_UDP_FULL_TYPE = 3, +struct module_string { + struct list_head next; + struct module *module; + char *str; }; -enum hclge_ptp_msg0_type { - HCLGE_PTP_MSG0_V2_DELAY_REQ = 1, - HCLGE_PTP_MSG0_V2_PDELAY_REQ = 2, - HCLGE_PTP_MSG0_V2_DELAY_RESP = 3, - HCLGE_PTP_MSG0_V2_EVENT = 15, +struct event_probe_data { + struct trace_event_file *file; + unsigned long count; + int ref; + bool enable; }; -enum hclge_ptp_msg_type { - HCLGE_PTP_MSG_TYPE_V2_L2 = 0, - HCLGE_PTP_MSG_TYPE_V2 = 1, - HCLGE_PTP_MSG_TYPE_V2_EVENT = 2, +enum { + BPF_RINGBUF_BUSY_BIT = 2147483648, + BPF_RINGBUF_DISCARD_BIT = 1073741824, + BPF_RINGBUF_HDR_SZ = 8, }; -struct hclge_ptp_cfg_cmd { - __le32 cfg; - u8 rsvd[20]; +enum { + BPF_RB_NO_WAKEUP = 1, + BPF_RB_FORCE_WAKEUP = 2, }; -struct hclge_ptp_int_cmd { - u8 int_en; - u8 rsvd[23]; +enum { + BPF_RB_AVAIL_DATA = 0, + BPF_RB_RING_SIZE = 1, + BPF_RB_CONS_POS = 2, + BPF_RB_PROD_POS = 3, }; -struct sh_eth_cpu_data { - int (*soft_reset)(struct net_device *); - void (*chip_reset)(struct net_device *); - void (*set_duplex)(struct net_device *); - void (*set_rate)(struct net_device *); - int register_type; - u32 edtrr_trns; - u32 eesipr_value; - u32 ecsr_value; - u32 ecsipr_value; - u32 fdr_value; - u32 fcftr_value; - u32 tx_check; - u32 eesr_err_check; - u32 trscer_err_mask; - unsigned long irq_flags; - unsigned int no_psr: 1; - unsigned int apr: 1; - unsigned int mpr: 1; - unsigned int tpauser: 1; - unsigned int gecmr: 1; - unsigned int bculr: 1; - unsigned int tsu: 1; - unsigned int hw_swap: 1; - unsigned int nbst: 1; - unsigned int rpadir: 1; - unsigned int no_trimd: 1; - unsigned int no_ade: 1; - unsigned int no_xdfar: 1; - unsigned int xdfar_rw: 1; - unsigned int csmr: 1; - unsigned int rx_csum: 1; - unsigned int select_mii: 1; - unsigned int rmiimode: 1; - unsigned int rtrate: 1; - unsigned int magic: 1; - unsigned int no_tx_cntrs: 1; - unsigned int cexcr: 1; - unsigned int dual_port: 1; -}; +typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64); -enum { - EDSR = 0, - EDMR = 1, - EDTRR = 2, - EDRRR = 3, - EESR = 4, - EESIPR = 5, - TDLAR = 6, - TDFAR = 7, - TDFXR = 8, - TDFFR = 9, - RDLAR = 10, - RDFAR = 11, - RDFXR = 12, - RDFFR = 13, - TRSCER = 14, - RMFCR = 15, - TFTR = 16, - FDR = 17, - RMCR = 18, - EDOCR = 19, - TFUCR = 20, - RFOCR = 21, - RMIIMODE = 22, - FCFTR = 23, - RPADIR = 24, - TRIMD = 25, - RBWAR = 26, - TBRAR = 27, - ECMR___2 = 28, - ECSR___2 = 29, - ECSIPR___2 = 30, - PIR___2 = 31, - PSR___2 = 32, - RDMLR = 33, - PIPR___2 = 34, - RFLR___2 = 35, - IPGR = 36, - APR = 37, - MPR___2 = 38, - PFTCR___2 = 39, - PFRCR___2 = 40, - RFCR___2 = 41, - RFCF = 42, - TPAUSER = 43, - TPAUSECR = 44, - BCFR = 45, - BCFRR = 46, - GECMR___2 = 47, - BCULR = 48, - MAHR___2 = 49, - MALR___2 = 50, - TROCR___2 = 51, - CDCR = 52, - LCCR = 53, - CNDCR = 54, - CEFCR___2 = 55, - FRECR___2 = 56, - TSFRCR___2 = 57, - TLFRCR___2 = 58, - CERCR = 59, - CEECR = 60, - MAFCR___2 = 61, - RTRATE = 62, - CSMR = 63, - RMII_MII = 64, - ARSTR = 65, - TSU_CTRST = 66, - TSU_FWEN0 = 67, - TSU_FWEN1 = 68, - TSU_FCM = 69, - TSU_BSYSL0 = 70, - TSU_BSYSL1 = 71, - TSU_PRISL0 = 72, - TSU_PRISL1 = 73, - TSU_FWSL0 = 74, - TSU_FWSL1 = 75, - TSU_FWSLC = 76, - TSU_QTAG0 = 77, - TSU_QTAG1 = 78, - TSU_QTAGM0 = 79, - TSU_QTAGM1 = 80, - TSU_FWSR = 81, - TSU_FWINMK = 82, - TSU_ADQT0 = 83, - TSU_ADQT1 = 84, - TSU_VTAG0 = 85, - TSU_VTAG1 = 86, - TSU_ADSBSY = 87, - TSU_TEN = 88, - TSU_POST1 = 89, - TSU_POST2 = 90, - TSU_POST3 = 91, - TSU_POST4 = 92, - TSU_ADRH0 = 93, - TXNLCR0 = 94, - TXALCR0 = 95, - RXNLCR0 = 96, - RXALCR0 = 97, - FWNLCR0 = 98, - FWALCR0 = 99, - TXNLCR1 = 100, - TXALCR1 = 101, - RXNLCR1 = 102, - RXALCR1 = 103, - FWNLCR1 = 104, - FWALCR1 = 105, - SH_ETH_MAX_REGISTER_OFFSET = 106, +typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64); + +typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64); + +typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); + +typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); + +typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); + +typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64); + +typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64); + +typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64); + +struct bpf_ringbuf { + wait_queue_head_t waitq; + struct irq_work work; + u64 mask; + struct page **pages; + int nr_pages; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t spinlock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_t busy; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + 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]; }; -enum { - SH_ETH_REG_GIGABIT = 0, - SH_ETH_REG_FAST_RCAR = 1, - SH_ETH_REG_FAST_SH4 = 2, - SH_ETH_REG_FAST_SH3_SH2 = 3, +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; }; -enum ECSR_BIT___2 { - ECSR_BRCRX = 32, - ECSR_PSRTO = 16, - ECSR_LCHNG___2 = 4, - ECSR_MPD___2 = 2, - ECSR_ICD___2 = 1, +struct bpf_ringbuf_hdr { + u32 len; + u32 pg_off; }; -enum ECSIPR_BIT___2 { - ECSIPR_BRCRXIP = 32, - ECSIPR_PSRTOIP = 16, - ECSIPR_LCHNGIP___2 = 4, - ECSIPR_MPDIP___2 = 2, - ECSIPR_ICDIP___2 = 1, +struct reuseport_array { + struct bpf_map map; + struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0]; }; -enum FCFTR_BIT { - FCFTR_RFF2 = 262144, - FCFTR_RFF1 = 131072, - FCFTR_RFF0 = 65536, - FCFTR_RFD2 = 4, - FCFTR_RFD1 = 2, - FCFTR_RFD0 = 1, +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 EESR_BIT { - EESR_TWB1 = 2147483648, - EESR_TWB = 1073741824, - EESR_TC1 = 536870912, - EESR_TUC = 268435456, - EESR_ROC = 134217728, - EESR_TABT = 67108864, - EESR_RABT = 33554432, - EESR_RFRMER = 16777216, - EESR_ADE = 8388608, - EESR_ECI = 4194304, - EESR_FTC = 2097152, - EESR_TDE = 1048576, - EESR_TFE = 524288, - EESR_FRC = 262144, - EESR_RDE = 131072, - EESR_RFE = 65536, - EESR_CND = 2048, - EESR_DLC = 1024, - EESR_CD = 512, - EESR_TRO = 256, - EESR_RMAF = 128, - EESR_CEEF = 64, - EESR_CELF = 32, - EESR_RRF = 16, - EESR_RTLF = 8, - EESR_RTSF = 4, - EESR_PRE = 2, - EESR_CERF = 1, -}; +typedef void (*btf_trace_mm_filemap_delete_from_page_cache)(void *, struct folio *); -enum TRSCER_BIT { - TRSCER_CNDCE = 2048, - TRSCER_DLCCE = 1024, - TRSCER_CDCE = 512, - TRSCER_TROCE = 256, - TRSCER_RMAFCE = 128, - TRSCER_RRFCE = 16, - TRSCER_RTLFCE = 8, - TRSCER_RTSFCE = 4, - TRSCER_PRECE = 2, - TRSCER_CERFCE = 1, -}; +typedef void (*btf_trace_mm_filemap_add_to_page_cache)(void *, struct folio *); -enum EESIPR_BIT { - EESIPR_TWB1IP = 2147483648, - EESIPR_TWBIP = 1073741824, - EESIPR_TC1IP = 536870912, - EESIPR_TUCIP = 268435456, - EESIPR_ROCIP = 134217728, - EESIPR_TABTIP = 67108864, - EESIPR_RABTIP = 33554432, - EESIPR_RFCOFIP = 16777216, - EESIPR_ADEIP = 8388608, - EESIPR_ECIIP = 4194304, - EESIPR_FTCIP = 2097152, - EESIPR_TDEIP = 1048576, - EESIPR_TFUFIP = 524288, - EESIPR_FRIP = 262144, - EESIPR_RDEIP = 131072, - EESIPR_RFOFIP = 65536, - EESIPR_CNDIP = 2048, - EESIPR_DLCIP = 1024, - EESIPR_CDIP = 512, - EESIPR_TROIP = 256, - EESIPR_RMAFIP = 128, - EESIPR_CEEFIP = 64, - EESIPR_CELFIP = 32, - EESIPR_RRFIP = 16, - EESIPR_RTLFIP = 8, - EESIPR_RTSFIP = 4, - EESIPR_PREIP = 2, - EESIPR_CERFIP = 1, -}; +typedef void (*btf_trace_filemap_set_wb_err)(void *, struct address_space *, errseq_t); -enum TD_STS_BIT { - TD_TACT = 2147483648, - TD_TDLE = 1073741824, - TD_TFP1 = 536870912, - TD_TFP0 = 268435456, - TD_TFE = 134217728, - TD_TWBI = 67108864, -}; +typedef void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t); -enum ECMR_BIT___2 { - ECMR_TRCCM___2 = 67108864, - ECMR_RCSC___2 = 8388608, - ECMR_DPAD___2 = 2097152, - ECMR_RZPF___2 = 1048576, - ECMR_ZPF___2 = 524288, - ECMR_PFR___2 = 262144, - ECMR_RXF___2 = 131072, - ECMR_TXF___2 = 65536, - ECMR_MCT = 8192, - ECMR_PRCEF = 4096, - ECMR_MPDE___2 = 512, - ECMR_RE___2 = 64, - ECMR_TE___2 = 32, - ECMR_RTM = 16, - ECMR_ILB = 8, - ECMR_ELB = 4, - ECMR_DM___2 = 2, - ECMR_PRM___2 = 1, +enum behavior { + EXCLUSIVE = 0, + SHARED = 1, + DROP = 2, }; -enum EDMR_BIT { - EDMR_NBST = 128, - EDMR_EL = 64, - EDMR_DL1 = 32, - EDMR_DL0 = 16, - EDMR_SRST_GETHER = 3, - EDMR_SRST_ETHER = 1, +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]; }; -enum RMCR_BIT { - RMCR_RNC = 1, +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]; }; -enum TPAUSER_BIT { - TPAUSER_TPAUSE = 65535, - TPAUSER_UNLIMITED = 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]; }; -enum EDRRR_BIT { - EDRRR_R = 1, +struct cachestat_range { + __u64 off; + __u64 len; }; -enum RD_STS_BIT { - RD_RACT = 2147483648, - RD_RDLE = 1073741824, - RD_RFP1 = 536870912, - RD_RFP0 = 268435456, - RD_RFE = 134217728, - RD_RFS10 = 512, - RD_RFS9 = 256, - RD_RFS8 = 128, - RD_RFS7 = 64, - RD_RFS6 = 32, - RD_RFS5 = 16, - RD_RFS4 = 8, - RD_RFS3 = 4, - RD_RFS2 = 2, - RD_RFS1 = 1, +struct cachestat { + __u64 nr_cache; + __u64 nr_dirty; + __u64 nr_writeback; + __u64 nr_evicted; + __u64 nr_recently_evicted; }; -enum TSU_ADSBSY_BIT { - TSU_ADSBSY_0 = 1, -}; +struct trace_event_data_offsets_mm_filemap_op_page_cache {}; -enum TSU_FWSLC_BIT { - TSU_FWSLC_POSTENU = 8192, - TSU_FWSLC_POSTENL = 4096, - TSU_FWSLC_CAMSEL03 = 128, - TSU_FWSLC_CAMSEL02 = 64, - TSU_FWSLC_CAMSEL01 = 32, - TSU_FWSLC_CAMSEL00 = 16, - TSU_FWSLC_CAMSEL13 = 8, - TSU_FWSLC_CAMSEL12 = 4, - TSU_FWSLC_CAMSEL11 = 2, - TSU_FWSLC_CAMSEL10 = 1, -}; +struct trace_event_data_offsets_filemap_set_wb_err {}; -enum PIR_BIT___2 { - PIR_MDI___2 = 8, - PIR_MDO___2 = 4, - PIR_MMD___2 = 2, - PIR_MDC___2 = 1, -}; +struct trace_event_data_offsets_file_check_and_advance_wb_err {}; -enum RD_LEN_BIT { - RD_RFL = 65535, - RD_RBL = 4294901760, +struct madvise_walk_private { + struct mmu_gather *tlb; + bool pageout; }; -enum EDSR_BIT { - EDSR_ENT = 1, - EDSR_ENR = 2, +enum umount_tree_flags { + UMOUNT_SYNC = 1, + UMOUNT_PROPAGATE = 2, + UMOUNT_CONNECTED = 4, }; -enum ARSTR_BIT { - ARSTR_ARST = 1, +enum mnt_tree_flags_t { + MNT_TREE_MOVE = 1, + MNT_TREE_BENEATH = 2, }; -enum GECMR_BIT___2 { - GECMR_10 = 0, - GECMR_100 = 4, - GECMR_1000 = 1, +struct mount_attr { + __u64 attr_set; + __u64 attr_clr; + __u64 propagation; + __u64 userns_fd; }; -struct bb_info { - void (*set_gate)(void *); - struct mdiobb_ctrl ctrl; - void *addr; +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 sh_eth_rxdesc; - -struct sh_eth_txdesc; - -struct sh_eth_private { - struct platform_device *pdev; - struct sh_eth_cpu_data *cd; - const u16 *reg_offset; - void *addr; - void *tsu_addr; - struct clk *clk; - u32 num_rx_ring; - u32 num_tx_ring; - dma_addr_t rx_desc_dma; - dma_addr_t tx_desc_dma; - struct sh_eth_rxdesc *rx_ring; - struct sh_eth_txdesc *tx_ring; - struct sk_buff **rx_skbuff; - struct sk_buff **tx_skbuff; - spinlock_t lock; - u32 cur_rx; - u32 dirty_rx; - u32 cur_tx; - u32 dirty_tx; - u32 rx_buf_sz; - struct napi_struct napi; - bool irq_enabled; - u32 phy_id; - struct mii_bus *mii_bus; - int link; - phy_interface_t phy_interface; - int msg_enable; - int speed; - int duplex; - int port; - int vlan_num_ids; - unsigned int no_ether_link: 1; - unsigned int ether_link_active_low: 1; - unsigned int is_opened: 1; - unsigned int wol_enabled: 1; +struct inotify_event_info { + struct fsnotify_event fse; + u32 mask; + int wd; + u32 sync_cookie; + int name_len; + char name[0]; }; -struct sh_eth_rxdesc { - u32 status; - u32 len; - u32 addr; - u32 pad0; +struct inotify_event { + __s32 wd; + __u32 mask; + __u32 cookie; + __u32 len; + char name[0]; }; -struct sh_eth_txdesc { - u32 status; - u32 len; - u32 addr; - u32 pad0; +struct fd_data { + fmode_t mode; + unsigned int fd; }; -struct sh_eth_plat_data { - int phy; - int phy_irq; - phy_interface_t phy_interface; - void (*set_mdio_gate)(void *); - unsigned char mac_addr[6]; - unsigned int no_ether_link: 1; - unsigned int ether_link_active_low: 1; +struct vmcore { + struct list_head list; + unsigned long long paddr; + unsigned long long size; + loff_t offset; }; -struct quirk_entry { - u16 vid; - u16 pid; - u32 flags; +struct vmcore_cb { + bool (*pfn_is_ram)(struct vmcore_cb *, unsigned long); + struct list_head next; }; -struct dwc3_meson_g12a; - -struct dwc3_meson_g12a_drvdata { - bool otg_phy_host_port_disable; - struct clk_bulk_data *clks; - int num_clks; - const char * const *phy_names; - int num_phys; - int (*setup_regmaps)(struct dwc3_meson_g12a *, void *); - int (*usb2_init_phy)(struct dwc3_meson_g12a *, int, enum phy_mode); - int (*set_phy_mode)(struct dwc3_meson_g12a *, int, enum phy_mode); - int (*usb_init)(struct dwc3_meson_g12a *); - int (*usb_post_init)(struct dwc3_meson_g12a *); -}; +typedef struct elf64_note Elf64_Nhdr; -struct dwc3_meson_g12a { - struct device *dev; - struct regmap *u2p_regmap[3]; - struct regmap *usb_glue_regmap; - struct reset_control *reset; - struct phy *phys[3]; - enum usb_dr_mode otg_mode; - enum phy_mode otg_phy_mode; - unsigned int usb2_ports; - unsigned int usb3_ports; - struct regulator *vbus; - struct usb_role_switch_desc switch_desc; - struct usb_role_switch *role_switch; - const struct dwc3_meson_g12a_drvdata *drvdata; +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 ehci_tt { - u16 bandwidth[8]; - struct list_head tt_list; - struct list_head ps_list; - struct usb_tt *usb_tt; - int tt_port; +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 ehci_iso_packet { - u64 bufp; - __le32 transaction; - u8 cross; - u32 buf1; +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 ehci_iso_sched { - struct list_head td_list; - unsigned int span; - unsigned int first_packet; - struct ehci_iso_packet packet[0]; +struct nfs_readdir_descriptor { + struct file *file; + struct folio *folio; + struct dir_context *ctx; + unsigned long folio_index; + unsigned long folio_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 ci_hdrc_pci { - struct platform_device *ci; - struct platform_device *phy; +struct nfs_cache_array_entry { + u64 cookie; + u64 ino; + const char *name; + unsigned int name_len; + unsigned char d_type; }; -struct ps2pp_info { - u8 model; - u8 kind; - u16 features; +struct nfs_cache_array { + u64 change_attr; + u64 last_cookie; + unsigned int size; + unsigned char folio_full: 1; + unsigned char folio_is_eof: 1; + unsigned char cookies_are_ordered: 1; + struct nfs_cache_array_entry array[0]; }; -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 nfs4_xattr_bucket { + spinlock_t lock; + struct hlist_head hlist; + struct nfs4_xattr_cache *cache; + bool draining; }; -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 nfs4_xattr_entry; -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 nfs4_xattr_cache { + struct kref ref; + struct nfs4_xattr_bucket buckets[64]; + struct list_head lru; + struct list_head dispose; + atomic_long_t nent; + spinlock_t listxattr_lock; + struct inode *inode; + struct nfs4_xattr_entry *listxattr; }; -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 nfs4_xattr_entry { + struct kref ref; + struct hlist_node hnode; + struct list_head lru; + struct list_head dispose; + char *xattr_name; + void *xattr_value; + size_t xattr_size; + struct nfs4_xattr_bucket *bucket; + uint32_t flags; }; -struct trace_event_data_offsets_smbus_write {}; +typedef unsigned long (*count_objects_cb)(struct shrinker *, struct shrink_control *); -struct trace_event_data_offsets_smbus_read {}; +typedef unsigned long (*scan_objects_cb)(struct shrinker *, struct shrink_control *); -struct trace_event_data_offsets_smbus_reply {}; +struct variable_validate { + efi_guid_t vendor; + char *name; + bool (*validate)(efi_char16_t *, int, u8 *, unsigned long); +}; -struct trace_event_data_offsets_smbus_result {}; +struct aead_request; -struct hwmon_type_attr_list { - const u32 *attrs; - size_t n_attrs; +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 power_supply_hwmon { - struct power_supply *psy; - unsigned long *props; +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]; }; -typedef void (*btf_trace_watchdog_start)(void *, struct watchdog_device *, int); - -struct watchdog_core_data { - struct device dev; - struct cdev cdev; - struct watchdog_device *wdd; - struct mutex lock; - ktime_t last_keepalive; - ktime_t last_hw_keepalive; - ktime_t open_deadline; - struct hrtimer timer; - struct kthread_work work; - unsigned long status; +struct aead_instance { + void (*free)(struct aead_instance *); + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct aead_alg alg; + }; }; -typedef void (*btf_trace_watchdog_ping)(void *, struct watchdog_device *, int); +struct aead_geniv_ctx { + spinlock_t lock; + struct crypto_aead *child; + struct crypto_sync_skcipher *sknull; + u8 salt[0]; +}; -typedef void (*btf_trace_watchdog_stop)(void *, struct watchdog_device *, int); +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, +}; -typedef void (*btf_trace_watchdog_set_timeout)(void *, struct watchdog_device *, unsigned int, int); +struct io_statx { + struct file *file; + int dfd; + unsigned int mask; + unsigned int flags; + struct filename *filename; + struct statx __attribute__((btf_type_tag("user"))) *buffer; +}; -struct trace_event_raw_watchdog_template { - struct trace_entry ent; - int id; - int err; - char __data[0]; +union nested_table { + union nested_table __attribute__((btf_type_tag("rcu"))) *table; + struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket; }; -struct trace_event_raw_watchdog_set_timeout { - struct trace_entry ent; - int id; - unsigned int timeout; - int err; - char __data[0]; +struct rhltable { + struct rhashtable ht; }; -struct trace_event_data_offsets_watchdog_template {}; +struct gic_clk_data { + unsigned int num_clocks; + const char * const *clocks; +}; -struct trace_event_data_offsets_watchdog_set_timeout {}; +struct gic_chip_data; -struct tegra186_cpufreq_cpu { - unsigned int bpmp_cluster_id; - unsigned int edvd_offset; +struct gic_chip_pm { + struct gic_chip_data *chip_data; + const struct gic_clk_data *clk_data; + struct clk_bulk_data *clks; }; -struct cpu_vhint_data { - uint32_t ref_clk_hz; - uint16_t pdiv; - uint16_t mdiv; - uint16_t ndiv_max; - uint16_t ndiv[80]; - uint16_t ndiv_min; - uint16_t vfloor; - uint16_t vceil; - uint16_t vindex_mult; - uint16_t vindex_div; - uint16_t reserved[328]; +struct gpcv2_irqchip_data { + struct raw_spinlock rlock; + void *gpc_base; + u32 wakeup_sources[4]; + u32 saved_irq_mask[4]; + u32 cpu2wakeup; }; -struct tegra186_cpufreq_cluster { - struct cpufreq_frequency_table *table; - u32 ref_clk_khz; - u32 div; +struct sl28cpld_intc { + struct regmap *regmap; + struct regmap_irq_chip chip; + struct regmap_irq_chip_data *irq_data; }; -struct mrq_cpu_vhint_request { - uint32_t addr; - uint32_t cluster_id; +struct value_to_name_map { + int value; + const char *name; }; -struct tegra186_cpufreq_data { - void *regs; - const struct tegra186_cpufreq_cpu *cpus; - struct tegra186_cpufreq_cluster clusters[0]; +struct match_chip_info { + void (*init_func)(struct brcm_usb_init_params *); + u8 required_regs[7]; + u8 optional_reg; }; -struct scmi_requested_dev { - const struct scmi_device_id *id_table; - struct list_head node; +enum brcm_usb_phy_id { + BRCM_USB_PHY_2_0 = 0, + BRCM_USB_PHY_3_0 = 1, + BRCM_USB_PHY_ID_MAX = 2, }; -struct imx_sc_msg_misc_get_soc_id { - struct imx_sc_rpc_msg hdr; - union { - struct { - u32 control; - u16 resource; - } __attribute__((packed)) req; - struct { - u32 id; - } resp; - } data; +struct brcm_usb_phy { + struct phy *phy; + unsigned int id; + bool inited; }; -struct imx_sc_msg_misc_get_soc_uid { - struct imx_sc_rpc_msg hdr; - u32 uid_low; - u32 uid_high; +struct brcm_usb_phy_data { + struct brcm_usb_init_params ini; + bool has_eohci; + bool has_xhci; + struct clk *usb_20_clk; + struct clk *usb_30_clk; + struct clk *suspend_clk; + struct mutex mutex; + int init_count; + int wake_irq; + struct brcm_usb_phy phys[2]; + struct notifier_block pm_notifier; + bool pm_active; }; -struct sp804_clkevt { - void *base; - void *load; - void *load_h; - void *value; - void *value_h; - void *ctrl; - void *intclr; - void *ris; - void *mis; - void *bgload; - void *bgload_h; - unsigned long reload; - int width; -}; +struct samsung_usb2_common_phy; -struct sp804_timer { - int load; - int load_h; - int value; - int value_h; - int ctrl; - int intclr; - int ris; - int mis; - int bgload; - int bgload_h; - int timer_base[2]; - int width; +struct samsung_usb2_phy_config { + const struct samsung_usb2_common_phy *phys; + int (*rate_to_clk)(unsigned long, u32 *); + unsigned int num_phys; + bool has_mode_switch; + bool has_refclk_sel; }; -struct hid_control_fifo { - unsigned char dir; - struct hid_report *report; - char *raw_report; +struct samsung_usb2_phy_instance; + +struct samsung_usb2_common_phy { + int (*power_on)(struct samsung_usb2_phy_instance *); + int (*power_off)(struct samsung_usb2_phy_instance *); + unsigned int id; + char *label; }; -struct hid_output_fifo { - struct hid_report *report; - char *raw_report; +struct samsung_usb2_phy_driver; + +struct samsung_usb2_phy_instance { + const struct samsung_usb2_common_phy *cfg; + struct phy *phy; + struct samsung_usb2_phy_driver *drv; + int int_cnt; + int ext_cnt; }; -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; +struct samsung_usb2_phy_driver { + const struct samsung_usb2_phy_config *cfg; + struct clk *clk; + struct clk *ref_clk; + struct regulator *vbus; + unsigned long ref_rate; + u32 ref_reg_val; + struct device *dev; + void *reg_phy; + struct regmap *reg_pmu; + struct regmap *reg_sys; 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 samsung_usb2_phy_instance instances[0]; }; -struct hid_class_descriptor { - __u8 bDescriptorType; - __le16 wDescriptorLength; -} __attribute__((packed)); +enum pm_pinctrl_pull_ctrl { + PM_PINCTRL_BIAS_PULL_DOWN = 0, + PM_PINCTRL_BIAS_PULL_UP = 1, +}; -struct hid_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 bcdHID; - __u8 bCountryCode; - __u8 bNumDescriptors; - struct hid_class_descriptor desc[1]; -} __attribute__((packed)); +enum pm_pinctrl_bias_status { + PM_PINCTRL_BIAS_DISABLE = 0, + PM_PINCTRL_BIAS_ENABLE = 1, +}; -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 pm_pinctrl_drive_strength { + PM_PINCTRL_DRIVE_STRENGTH_2MA = 0, + PM_PINCTRL_DRIVE_STRENGTH_4MA = 1, + PM_PINCTRL_DRIVE_STRENGTH_8MA = 2, + PM_PINCTRL_DRIVE_STRENGTH_12MA = 3, }; -struct scm_timestamping64 { - struct __kernel_timespec ts[3]; +enum pm_pinctrl_tri_state { + PM_PINCTRL_TRI_STATE_DISABLE = 0, + PM_PINCTRL_TRI_STATE_ENABLE = 1, }; -struct scm_timestamping { - struct __kernel_old_timespec ts[3]; +struct zynqmp_pctrl_group; + +struct zynqmp_pmux_function; + +struct zynqmp_pinctrl { + struct pinctrl_dev *pctrl; + const struct zynqmp_pctrl_group *groups; + unsigned int ngroups; + const struct zynqmp_pmux_function *funcs; + unsigned int nfuncs; }; -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 zynqmp_pctrl_group { + const char *name; + unsigned int pins[50]; + unsigned int npins; }; -struct linkmodes_reply_data { - struct ethnl_reply_data base; - struct ethtool_link_ksettings ksettings; - struct ethtool_link_settings *lsettings; - bool peer_empty; +struct zynqmp_pmux_function { + char name[16]; + const char * const *groups; + unsigned int ngroups; }; -struct icmp_err { - int errno; - unsigned int fatal: 1; +enum { + GP_LAST___5 = 209, + PIN_ASEBRK = 210, + PIN_AVB_MDC = 211, + PIN_AVB_MDIO = 212, + PIN_AVB_TD0 = 213, + PIN_AVB_TD1 = 214, + PIN_AVB_TD2 = 215, + PIN_AVB_TD3 = 216, + PIN_AVB_TXC = 217, + PIN_AVB_TX_CTL = 218, + PIN_FSCLKST_N___4 = 219, + PIN_MLB_REF___2 = 220, + PIN_PRESETOUT_N___4 = 221, + PIN_TCK___3 = 222, + PIN_TDI___3 = 223, + PIN_TMS___3 = 224, + PIN_TRST_N___3 = 225, + PIN_VDDQ_AVB0___4 = 226, }; -struct icmp_control { - enum skb_drop_reason (*handler)(struct sk_buff *); - short error; +struct acpi_gpio_event { + struct list_head node; + acpi_handle handle; + irq_handler_t handler; + unsigned int pin; + unsigned int irq; + unsigned long irqflags; + bool irq_is_wake; + bool irq_requested; + struct gpio_desc *desc; }; -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, +struct acpi_gpio_connection { + struct list_head node; + unsigned int pin; + struct gpio_desc *desc; }; -enum { - XFRM_LOOKUP_ICMP = 1, - XFRM_LOOKUP_QUEUE = 2, - XFRM_LOOKUP_KEEP_DST_REF = 4, +struct acpi_gpio_chip { + struct acpi_connection_info conn_info; + struct list_head conns; + struct mutex conn_lock; + struct gpio_chip *chip; + struct list_head events; + struct list_head deferred_req_irqs_list_entry; }; -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 acpi_gpio_info { + struct acpi_device *adev; + enum gpiod_flags flags; + bool gpioint; + int pin_config; + int polarity; + int triggering; + bool wake_capable; + unsigned int debounce; + unsigned int quirks; }; -struct icmp_extobj_hdr { - __be16 length; - __u8 class_num; - __u8 class_type; +struct acpi_gpio_lookup { + struct acpi_gpio_info info; + int index; + u16 pin_index; + bool active_low; + struct gpio_desc *desc; + int n; }; -struct icmp_ext_hdr { - __u8 reserved1: 4; - __u8 version: 4; - __u8 reserved2; - __sum16 checksum; +struct acpi_gpiolib_dmi_quirk { + bool no_edge_events_on_boot; + char *ignore_wake; + char *ignore_interrupt; }; -struct icmp_ext_echo_ctype3_hdr { - __be16 afi; - __u8 addrlen; - __u8 reserved; +struct pci_bus_resource { + struct list_head list; + struct resource *res; + unsigned int flags; }; -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 smbios_attr_enum { + SMBIOS_ATTR_NONE = 0, + SMBIOS_ATTR_LABEL_SHOW = 1, + SMBIOS_ATTR_INSTANCE_SHOW = 2, }; -struct frag_hdr { - __u8 nexthdr; - __u8 reserved; - __be16 frag_off; - __be32 identification; +enum acpi_attr_enum { + ACPI_ATTR_LABEL_SHOW = 0, + ACPI_ATTR_INDEX_SHOW = 1, }; -struct hop_jumbo_hdr { - u8 nexthdr; - u8 hdrlen; - u8 tlv_type; - u8 tlv_len; - __be32 jumbo_payload_len; +struct dmi_dev_onboard { + struct dmi_device dev; + int instance; + int segment; + int bus; + int devfn; }; -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, +struct iproc_pcie_ob_map { + resource_size_t window_sizes[4]; + unsigned int nr_sizes; }; -typedef struct xdr_netobj utf8string; - -typedef struct xdr_netobj gssx_buffer; +enum iproc_pcie_ib_map_type { + IPROC_PCIE_IB_MAP_MEM = 0, + IPROC_PCIE_IB_MAP_IO = 1, + IPROC_PCIE_IB_MAP_INVALID = 2, +}; -struct gssx_option; +struct iproc_pcie_ib_map { + enum iproc_pcie_ib_map_type type; + unsigned int size_unit; + resource_size_t region_sizes[9]; + unsigned int nr_sizes; + unsigned int nr_windows; + u16 imap_addr_offset; + u16 imap_window_offset; +}; -struct gssx_option_array { - u32 count; - struct gssx_option *data; +enum iproc_pcie_type { + IPROC_PCIE_PAXB_BCMA = 0, + IPROC_PCIE_PAXB = 1, + IPROC_PCIE_PAXB_V2 = 2, + IPROC_PCIE_PAXC = 3, + IPROC_PCIE_PAXC_V2 = 4, }; -struct gssx_call_ctx { - utf8string locale; - gssx_buffer server_ctx; - struct gssx_option_array options; +enum iproc_pcie_reg { + IPROC_PCIE_CLK_CTRL = 0, + IPROC_PCIE_MSI_GIC_MODE = 1, + IPROC_PCIE_MSI_BASE_ADDR = 2, + IPROC_PCIE_MSI_WINDOW_SIZE = 3, + IPROC_PCIE_MSI_ADDR_LO = 4, + IPROC_PCIE_MSI_ADDR_HI = 5, + IPROC_PCIE_MSI_EN_CFG = 6, + IPROC_PCIE_CFG_IND_ADDR = 7, + IPROC_PCIE_CFG_IND_DATA = 8, + IPROC_PCIE_CFG_ADDR = 9, + IPROC_PCIE_CFG_DATA = 10, + IPROC_PCIE_INTX_EN = 11, + IPROC_PCIE_OARR0 = 12, + IPROC_PCIE_OMAP0 = 13, + IPROC_PCIE_OARR1 = 14, + IPROC_PCIE_OMAP1 = 15, + IPROC_PCIE_OARR2 = 16, + IPROC_PCIE_OMAP2 = 17, + IPROC_PCIE_OARR3 = 18, + IPROC_PCIE_OMAP3 = 19, + IPROC_PCIE_IARR0 = 20, + IPROC_PCIE_IMAP0 = 21, + IPROC_PCIE_IARR1 = 22, + IPROC_PCIE_IMAP1 = 23, + IPROC_PCIE_IARR2 = 24, + IPROC_PCIE_IMAP2 = 25, + IPROC_PCIE_IARR3 = 26, + IPROC_PCIE_IMAP3 = 27, + IPROC_PCIE_IARR4 = 28, + IPROC_PCIE_IMAP4 = 29, + IPROC_PCIE_CFG_RD_STATUS = 30, + IPROC_PCIE_LINK_STATUS = 31, + IPROC_PCIE_APB_ERR_EN = 32, + IPROC_PCIE_MAX_NUM_REG = 33, }; -struct gssx_ctx; +struct iproc_pcie_ob { + resource_size_t axi_offset; + unsigned int nr_windows; +}; -struct gssx_cred; +struct iproc_pcie_ib { + unsigned int nr_regions; +}; -struct gssx_cb; +struct iproc_msi; -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 iproc_pcie { + struct device *dev; + enum iproc_pcie_type type; + u16 *reg_offsets; + void *base; + phys_addr_t base_addr; + struct resource mem; + struct phy *phy; + int (*map_irq)(const struct pci_dev *, u8, u8); + bool ep_is_internal; + bool iproc_cfg_read; + bool rej_unconfig_pf; + bool has_apb_err_disable; + bool fix_paxc_cap; + bool need_ob_cfg; + struct iproc_pcie_ob ob; + const struct iproc_pcie_ob_map *ob_map; + bool need_ib_cfg; + struct iproc_pcie_ib ib; + const struct iproc_pcie_ib_map *ib_map; + bool need_msi_steer; + struct iproc_msi *msi; }; -struct gssx_option { - gssx_buffer option; - gssx_buffer value; +enum { + FBCON_LOGO_CANSHOW = -1, + FBCON_LOGO_DRAW = -2, + FBCON_LOGO_DONTSHOW = -3, }; -typedef struct xdr_netobj gssx_OID; - -struct gssx_name { - gssx_buffer display_name; +struct fb_con2fbmap { + __u32 console; + __u32 framebuffer; }; -typedef struct gssx_name gssx_name; +struct prt_quirk { + const struct dmi_system_id *system; + unsigned int segment; + unsigned int bus; + unsigned int device; + unsigned char pin; + const char *source; + const char *actual_source; +}; -struct 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 acpi_prt_entry { + struct acpi_pci_id id; + u8 pin; + acpi_handle link; + u32 index; }; -struct gssx_cred_element; +typedef enum { + ACPI_TRACE_AML_METHOD = 0, + ACPI_TRACE_AML_OPCODE = 1, + ACPI_TRACE_AML_REGION = 2, +} acpi_trace_event_type; -struct gssx_cred_element_array { - u32 count; - struct gssx_cred_element *data; +struct acpi_get_devices_info { + acpi_walk_callback user_function; + void *context; + const char *hid; }; -struct gssx_cred { - gssx_name desired_name; - struct gssx_cred_element_array elements; - gssx_buffer cred_handle_reference; - u32 needs_release; +struct acpi_comment_node { + char *comment; + struct acpi_comment_node *next; }; -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 acpi_table_list { + struct acpi_table_desc *tables; + u32 current_table_count; + u32 max_table_count; + u8 flags; }; -struct gssx_cb { - u64 initiator_addrtype; - gssx_buffer initiator_address; - u64 acceptor_addrtype; - gssx_buffer acceptor_address; - gssx_buffer application_data; +struct acpi_mutex_info { + void *mutex; + u32 use_count; + u64 thread_id; }; -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; -}; +typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); -struct gssx_res_accept_sec_context { - struct gssx_status status; - struct gssx_ctx *context_handle; - gssx_buffer *output_token; - struct gssx_option_array options; +typedef acpi_status (*acpi_init_handler)(acpi_handle, u32); + +typedef u32 (*acpi_sci_handler)(void *); + +struct acpi_sci_handler_info { + struct acpi_sci_handler_info *next; + acpi_sci_handler address; + void *context; }; -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 acpi_ged_handler_info { + struct acpi_ged_handler_info *next; + u32 int_id; + struct acpi_namespace_node *evt_method; }; -struct lzma_header; +struct acpi_memory_info { + struct list_head list; + u64 start_addr; + u64 length; + unsigned short caching; + unsigned short write_protect; + unsigned int enabled: 1; +}; -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 acpi_memory_device { + struct acpi_device *device; + struct list_head res_list; + int mgid; }; -struct lzma_header { - uint8_t pos; - uint32_t dict_size; - uint64_t dst_size; -} __attribute__((packed)); +typedef void (*btf_trace_clk_enable)(void *, struct clk_core *); -struct cstate { - int state; - uint32_t rep0; - uint32_t rep1; - uint32_t rep2; - uint32_t rep3; -}; +struct clk_parent_map; -struct ida_bitmap { - unsigned long bitmap[16]; +struct clk_core { + const char *name; + const struct clk_ops *ops; + struct clk_hw *hw; + struct module *owner; + struct device *dev; + struct device_node *of_node; + struct clk_core *parent; + struct clk_parent_map *parents; + u8 num_parents; + u8 new_parent_index; + unsigned long rate; + unsigned long req_rate; + unsigned long new_rate; + struct clk_core *new_parent; + struct clk_core *new_child; + unsigned long flags; + bool orphan; + bool rpm_enabled; + unsigned int enable_count; + unsigned int prepare_count; + unsigned int protect_count; + unsigned long min_rate; + unsigned long max_rate; + unsigned long accuracy; + int phase; + struct clk_duty duty; + struct hlist_head children; + struct hlist_node child_node; + struct hlist_head clks; + unsigned int notifier_count; + struct dentry *dentry; + struct hlist_node debug_node; + struct kref ref; }; -struct radix_tree_preload { - local_lock_t lock; - unsigned int nr; - struct xa_node *nodes; +struct clk_parent_map { + const struct clk_hw *hw; + struct clk_core *core; + const char *fw_name; + const char *name; + int index; }; -struct page_change_data { - pgprot_t set_mask; - pgprot_t clear_mask; -}; +typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *); -typedef void (*btf_trace_kvm_entry)(void *, unsigned long); +typedef void (*btf_trace_clk_disable)(void *, struct clk_core *); -typedef void (*btf_trace_kvm_exit)(void *, int, unsigned int, unsigned long); +typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *); -typedef void (*btf_trace_kvm_guest_fault)(void *, unsigned long, unsigned long, unsigned long, unsigned long long); +typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *); -typedef void (*btf_trace_kvm_access_fault)(void *, unsigned long); +typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *); -typedef void (*btf_trace_kvm_irq_line)(void *, unsigned int, int, int, int); +typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *); -typedef void (*btf_trace_kvm_mmio_emulate)(void *, unsigned long, unsigned long, unsigned long); +typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *); -typedef void (*btf_trace_kvm_set_way_flush)(void *, unsigned long, bool); +typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, unsigned long); -typedef void (*btf_trace_kvm_toggle_cache)(void *, unsigned long, bool, bool); +typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, unsigned long); -typedef void (*btf_trace_kvm_timer_update_irq)(void *, unsigned long, __u32, int); +typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, unsigned long); -struct timer_map; +typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, unsigned long); -typedef void (*btf_trace_kvm_get_timer_map)(void *, unsigned long, struct timer_map *); +typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, unsigned long, unsigned long); -struct timer_map { - struct arch_timer_context___2 *direct_vtimer; - struct arch_timer_context___2 *direct_ptimer; - struct arch_timer_context___2 *emul_vtimer; - struct arch_timer_context___2 *emul_ptimer; -}; +typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *); -typedef void (*btf_trace_kvm_timer_save_state)(void *, struct arch_timer_context___2 *); +typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *); -typedef void (*btf_trace_kvm_timer_restore_state)(void *, struct arch_timer_context___2 *); +typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int); -typedef void (*btf_trace_kvm_timer_hrtimer_expire)(void *, struct arch_timer_context___2 *); +typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int); -typedef void (*btf_trace_kvm_timer_emulate)(void *, struct arch_timer_context___2 *, bool); +typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *); -typedef void (*btf_trace_kvm_nested_eret)(void *, struct kvm_vcpu___2 *, unsigned long, unsigned long); +typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *); -typedef void (*btf_trace_kvm_inject_nested_exception)(void *, struct kvm_vcpu___2 *, u64, int); +typedef void (*btf_trace_clk_rate_request_start)(void *, struct clk_rate_request *); -struct kvm_kernel_irqfd_resampler; +typedef void (*btf_trace_clk_rate_request_done)(void *, struct clk_rate_request *); -struct kvm_kernel_irqfd { - struct kvm___2 *kvm; - wait_queue_entry_t wait; - struct kvm_kernel_irq_routing_entry irq_entry; - seqcount_spinlock_t irq_entry_sc; - int gsi; - struct work_struct inject; - struct kvm_kernel_irqfd_resampler *resampler; - struct eventfd_ctx *resamplefd; - struct list_head resampler_link; - struct eventfd_ctx *eventfd; - struct list_head list; - poll_table pt; - struct work_struct shutdown; - struct irq_bypass_consumer consumer; - struct irq_bypass_producer *producer; +struct clk_notifier { + struct clk *clk; + struct srcu_notifier_head notifier_head; + struct list_head node; }; -struct kvm_irq_ack_notifier { - struct hlist_node link; - unsigned int gsi; - void (*irq_acked)(struct kvm_irq_ack_notifier *); +struct of_clk_provider { + struct list_head link; + struct device_node *node; + struct clk * (*get)(struct of_phandle_args *, void *); + struct clk_hw * (*get_hw)(struct of_phandle_args *, void *); + void *data; }; -struct kvm_kernel_irqfd_resampler { - struct kvm___2 *kvm; - struct list_head list; - struct kvm_irq_ack_notifier notifier; - struct list_head link; +struct clock_provider { + void (*clk_init_cb)(struct device_node *); + struct device_node *np; + struct list_head node; }; -struct trace_event_raw_kvm_entry { +struct trace_event_raw_clk { struct trace_entry ent; - unsigned long vcpu_pc; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_kvm_exit { +struct trace_event_raw_clk_rate { struct trace_entry ent; - int ret; - unsigned int esr_ec; - unsigned long vcpu_pc; + u32 __data_loc_name; + unsigned long rate; char __data[0]; }; -struct trace_event_raw_kvm_guest_fault { +struct trace_event_raw_clk_rate_range { struct trace_entry ent; - unsigned long vcpu_pc; - unsigned long hsr; - unsigned long hxfar; - unsigned long long ipa; + u32 __data_loc_name; + unsigned long min; + unsigned long max; char __data[0]; }; -struct trace_event_raw_kvm_access_fault { +struct trace_event_raw_clk_parent { struct trace_entry ent; - unsigned long ipa; + u32 __data_loc_name; + u32 __data_loc_pname; char __data[0]; }; -struct trace_event_raw_kvm_irq_line { +struct trace_event_raw_clk_phase { struct trace_entry ent; - unsigned int type; - int vcpu_idx; - int irq_num; - int level; + u32 __data_loc_name; + int phase; char __data[0]; }; -struct trace_event_raw_kvm_mmio_emulate { +struct trace_event_raw_clk_duty_cycle { struct trace_entry ent; - unsigned long vcpu_pc; - unsigned long instr; - unsigned long cpsr; + u32 __data_loc_name; + unsigned int num; + unsigned int den; char __data[0]; }; -struct trace_event_raw_kvm_set_way_flush { +struct trace_event_raw_clk_rate_request { struct trace_entry ent; - unsigned long vcpu_pc; - bool cache; + u32 __data_loc_name; + u32 __data_loc_pname; + unsigned long min; + unsigned long max; + unsigned long prate; char __data[0]; }; -struct trace_event_raw_kvm_toggle_cache { - struct trace_entry ent; - unsigned long vcpu_pc; - bool was; - bool now; - char __data[0]; +struct trace_event_data_offsets_clk { + u32 name; }; -struct trace_event_raw_kvm_timer_update_irq { - struct trace_entry ent; - unsigned long vcpu_id; - __u32 irq; - int level; - char __data[0]; +struct trace_event_data_offsets_clk_rate { + u32 name; }; -struct trace_event_raw_kvm_get_timer_map { - struct trace_entry ent; - unsigned long vcpu_id; - int direct_vtimer; - int direct_ptimer; - int emul_vtimer; - int emul_ptimer; - char __data[0]; +struct trace_event_data_offsets_clk_rate_range { + u32 name; }; -struct trace_event_raw_kvm_timer_save_state { - struct trace_entry ent; - unsigned long ctl; - unsigned long long cval; - int timer_idx; - char __data[0]; +struct trace_event_data_offsets_clk_parent { + u32 name; + u32 pname; }; -struct trace_event_raw_kvm_timer_restore_state { - struct trace_entry ent; - unsigned long ctl; - unsigned long long cval; - int timer_idx; - char __data[0]; +struct trace_event_data_offsets_clk_phase { + u32 name; }; -struct trace_event_raw_kvm_timer_hrtimer_expire { - struct trace_entry ent; - int timer_idx; - char __data[0]; +struct trace_event_data_offsets_clk_duty_cycle { + u32 name; }; -struct trace_event_raw_kvm_timer_emulate { - struct trace_entry ent; - int timer_idx; - bool should_fire; - char __data[0]; +struct trace_event_data_offsets_clk_rate_request { + u32 name; + u32 pname; }; -struct trace_event_raw_kvm_nested_eret { - struct trace_entry ent; - struct kvm_vcpu___2 *vcpu; - unsigned long elr_el2; - unsigned long spsr_el2; - unsigned long target_mode; - unsigned long hcr_el2; - char __data[0]; +struct clk_notifier_devres { + struct clk *clk; + struct notifier_block *nb; }; -struct trace_event_raw_kvm_inject_nested_exception { - struct trace_entry ent; - struct kvm_vcpu___2 *vcpu; - unsigned long esr_el2; - int type; - unsigned long spsr_el2; - unsigned long pc; - unsigned long source_mode; - unsigned long hcr_el2; - char __data[0]; +struct clk_fixup_div { + struct clk_divider divider; + const struct clk_ops *ops; + void (*fixup)(u32 *); }; -struct kvm_host_data___2 { - struct kvm_cpu_context___2 host_ctxt; +enum imx_pllv3_type { + IMX_PLLV3_GENERIC = 0, + IMX_PLLV3_SYS = 1, + IMX_PLLV3_USB = 2, + IMX_PLLV3_USB_VF610 = 3, + IMX_PLLV3_AV = 4, + IMX_PLLV3_ENET = 5, + IMX_PLLV3_ENET_IMX7 = 6, + IMX_PLLV3_SYS_VF610 = 7, + IMX_PLLV3_DDR_IMX7 = 8, + IMX_PLLV3_AV_IMX7 = 9, }; -struct kvm_arm_counter_offset { - __u64 counter_offset; - __u64 reserved; +struct clk_pllv3 { + struct clk_hw hw; + void *base; + u32 power_bit; + bool powerup_set; + u32 div_mask; + u32 div_shift; + unsigned long ref_clock; + u32 num_offset; + u32 denom_offset; }; -struct trace_event_data_offsets_kvm_entry {}; +struct clk_pllv3_vf610_mf { + u32 mfi; + u32 mfn; + u32 mfd; +}; -struct trace_event_data_offsets_kvm_exit {}; +struct clk_sscg_pll_setup { + int divr1; + int divf1; + int divr2; + int divf2; + int divq; + int bypass; + uint64_t vco1; + uint64_t vco2; + uint64_t fout; + uint64_t ref; + uint64_t ref_div1; + uint64_t ref_div2; + uint64_t fout_request; + int fout_error; +}; -struct trace_event_data_offsets_kvm_guest_fault {}; +struct clk_sscg_pll { + struct clk_hw hw; + const struct clk_ops ops; + void *base; + struct clk_sscg_pll_setup setup; + u8 parent; + u8 bypass1; + u8 bypass2; +}; -struct trace_event_data_offsets_kvm_access_fault {}; +enum imx_sc_pm_func { + IMX_SC_PM_FUNC_UNKNOWN = 0, + IMX_SC_PM_FUNC_SET_SYS_POWER_MODE = 19, + IMX_SC_PM_FUNC_SET_PARTITION_POWER_MODE = 1, + IMX_SC_PM_FUNC_GET_SYS_POWER_MODE = 2, + IMX_SC_PM_FUNC_SET_RESOURCE_POWER_MODE = 3, + IMX_SC_PM_FUNC_GET_RESOURCE_POWER_MODE = 4, + IMX_SC_PM_FUNC_REQ_LOW_POWER_MODE = 16, + IMX_SC_PM_FUNC_SET_CPU_RESUME_ADDR = 17, + IMX_SC_PM_FUNC_REQ_SYS_IF_POWER_MODE = 18, + IMX_SC_PM_FUNC_SET_CLOCK_RATE = 5, + IMX_SC_PM_FUNC_GET_CLOCK_RATE = 6, + IMX_SC_PM_FUNC_CLOCK_ENABLE = 7, + IMX_SC_PM_FUNC_SET_CLOCK_PARENT = 14, + IMX_SC_PM_FUNC_GET_CLOCK_PARENT = 15, + IMX_SC_PM_FUNC_RESET = 13, + IMX_SC_PM_FUNC_RESET_REASON = 10, + IMX_SC_PM_FUNC_BOOT = 8, + IMX_SC_PM_FUNC_REBOOT = 9, + IMX_SC_PM_FUNC_REBOOT_PARTITION = 12, + IMX_SC_PM_FUNC_CPU_START = 11, +}; -struct trace_event_data_offsets_kvm_irq_line {}; +struct imx_scu_clk_node { + const char *name; + u32 rsrc; + u8 clk_type; + const char * const *parents; + int num_parents; + struct clk_hw *hw; + struct list_head node; +}; -struct trace_event_data_offsets_kvm_mmio_emulate {}; +struct clk_scu { + struct clk_hw hw; + u16 rsrc_id; + u8 clk_type; + struct clk_hw *parent; + u8 parent_index; + bool is_enabled; + u32 rate; +}; -struct trace_event_data_offsets_kvm_set_way_flush {}; +struct clk_gpr_scu { + struct clk_hw hw; + u16 rsrc_id; + u8 gpr_id; + u8 flags; + bool gate_invert; +}; -struct trace_event_data_offsets_kvm_toggle_cache {}; +struct imx_sc_msg_req_clock_enable { + struct imx_sc_rpc_msg hdr; + __le16 resource; + u8 clk; + u8 enable; + u8 autog; + int: 0; +}; -struct trace_event_data_offsets_kvm_timer_update_irq {}; +struct req_get_clock_rate { + __le16 resource; + u8 clk; +}; -struct trace_event_data_offsets_kvm_get_timer_map {}; +struct resp_get_clock_rate { + __le32 rate; +}; -struct trace_event_data_offsets_kvm_timer_save_state {}; +struct imx_sc_msg_get_clock_rate { + struct imx_sc_rpc_msg hdr; + union { + struct req_get_clock_rate req; + struct resp_get_clock_rate resp; + } data; +}; -struct trace_event_data_offsets_kvm_timer_restore_state {}; +struct imx_sc_msg_set_clock_parent { + struct imx_sc_rpc_msg hdr; + __le16 resource; + u8 clk; + u8 parent; +}; -struct trace_event_data_offsets_kvm_timer_hrtimer_expire {}; +struct imx_sc_msg_req_set_clock_rate { + struct imx_sc_rpc_msg hdr; + __le32 rate; + __le16 resource; + u8 clk; +}; -struct trace_event_data_offsets_kvm_timer_emulate {}; +struct req_get_clock_parent { + __le16 resource; + u8 clk; +}; -struct trace_event_data_offsets_kvm_nested_eret {}; +struct resp_get_clock_parent { + u8 parent; +}; -struct trace_event_data_offsets_kvm_inject_nested_exception {}; +struct imx_sc_msg_get_clock_parent { + struct imx_sc_rpc_msg hdr; + union { + struct req_get_clock_parent req; + struct resp_get_clock_parent resp; + } data; +}; -struct kvm_reg_list { - __u64 n; - __u64 reg[0]; +enum rcar_gen4_clk_types { + CLK_TYPE_GEN4_MAIN = 5, + CLK_TYPE_GEN4_PLL1 = 6, + CLK_TYPE_GEN4_PLL2 = 7, + CLK_TYPE_GEN4_PLL2_VAR = 8, + CLK_TYPE_GEN4_PLL2X_3X = 9, + CLK_TYPE_GEN4_PLL3 = 10, + CLK_TYPE_GEN4_PLL4 = 11, + CLK_TYPE_GEN4_PLL5 = 12, + CLK_TYPE_GEN4_PLL6 = 13, + CLK_TYPE_GEN4_SDSRC = 14, + CLK_TYPE_GEN4_SDH = 15, + CLK_TYPE_GEN4_SD = 16, + CLK_TYPE_GEN4_MDSEL = 17, + CLK_TYPE_GEN4_Z = 18, + CLK_TYPE_GEN4_OSC = 19, + CLK_TYPE_GEN4_RPCSRC = 20, + CLK_TYPE_GEN4_RPC = 21, + CLK_TYPE_GEN4_RPCD2 = 22, + CLK_TYPE_GEN4_SOC_BASE = 23, }; -struct stage2_map_data___2 { - const u64 phys; - kvm_pte_t attr; - u8 owner_id; - kvm_pte_t *anchor; - kvm_pte_t *childp; - struct kvm_s2_mmu *mmu; - void *memcache; - bool force_pte; +struct cpg_pll_clk___2 { + struct clk_hw hw; + void *pllcr0_reg; + void *pllecr_reg; + u32 pllecr_pllst_mask; }; -enum rwsem_waiter_type { - RWSEM_WAITING_FOR_WRITE = 0, - RWSEM_WAITING_FOR_READ = 1, +struct uniphier_clk_mux { + struct clk_hw hw; + struct regmap *regmap; + unsigned int reg; + const unsigned int *masks; + const unsigned int *vals; }; -enum rwsem_wake_type { - RWSEM_WAKE_ANY = 0, - RWSEM_WAKE_READERS = 1, - RWSEM_WAKE_READ_OWNED = 2, +enum owl_dma_id { + S900_DMA = 0, + S700_DMA = 1, }; -enum owner_state { - OWNER_NULL = 1, - OWNER_WRITER = 2, - OWNER_READER = 4, - OWNER_NONSPINNABLE = 8, +enum owl_dmadesc_offsets { + OWL_DMADESC_NEXT_LLI = 0, + OWL_DMADESC_SADDR = 1, + OWL_DMADESC_DADDR = 2, + OWL_DMADESC_FLEN = 3, + OWL_DMADESC_SRC_STRIDE = 4, + OWL_DMADESC_DST_STRIDE = 5, + OWL_DMADESC_CTRLA = 6, + OWL_DMADESC_CTRLB = 7, + OWL_DMADESC_CONST_NUM = 8, + OWL_DMADESC_SIZE = 9, }; -struct rwsem_waiter { - struct list_head list; - struct task_struct *task; - enum rwsem_waiter_type type; - unsigned long timeout; - bool handoff_set; +struct owl_dma_pchan; + +struct owl_dma_txd; + +struct owl_dma_vchan { + struct virt_dma_chan vc; + struct owl_dma_pchan *pchan; + struct owl_dma_txd *txd; + struct dma_slave_config cfg; + u8 drq; +}; + +struct owl_dma_pchan { + u32 id; + void *base; + struct owl_dma_vchan *vchan; +}; + +struct owl_dma_txd { + struct virt_dma_desc vd; + struct list_head lli_list; + bool cyclic; +}; + +struct owl_dma_lli { + u32 hw[9]; + dma_addr_t phys; + struct list_head node; +}; + +struct owl_dma { + struct dma_device dma; + void *base; + struct clk *clk; + spinlock_t lock; + struct dma_pool *lli_pool; + int irq; + unsigned int nr_pchans; + struct owl_dma_pchan *pchans; + unsigned int nr_vchans; + struct owl_dma_vchan *vchans; + enum owl_dma_id devid; +}; + +typedef void (*btf_trace_rpmh_tx_done)(void *, struct rsc_drv *, int, const struct tcs_request *); + +typedef void (*btf_trace_rpmh_send_msg)(void *, struct rsc_drv *, int, enum rpmh_state, int, u32, const struct tcs_cmd *); + +enum { + RSC_DRV_TCS_OFFSET = 0, + RSC_DRV_CMD_OFFSET = 1, + DRV_SOLVER_CONFIG = 2, + DRV_PRNT_CHLD_CONFIG = 3, + RSC_DRV_IRQ_ENABLE = 4, + RSC_DRV_IRQ_STATUS = 5, + RSC_DRV_IRQ_CLEAR = 6, + RSC_DRV_CMD_WAIT_FOR_CMPL = 7, + RSC_DRV_CONTROL = 8, + RSC_DRV_STATUS = 9, + RSC_DRV_CMD_ENABLE = 10, + RSC_DRV_CMD_MSGID = 11, + RSC_DRV_CMD_ADDR = 12, + RSC_DRV_CMD_DATA = 13, + RSC_DRV_CMD_STATUS = 14, + RSC_DRV_CMD_RESP_DATA = 15, +}; + +struct trace_event_raw_rpmh_tx_done { + struct trace_entry ent; + u32 __data_loc_name; + int m; + u32 addr; + u32 data; + char __data[0]; +}; + +struct trace_event_raw_rpmh_send_msg { + struct trace_entry ent; + u32 __data_loc_name; + int m; + u32 state; + int n; + u32 hdr; + u32 addr; + u32 data; + bool wait; + char __data[0]; +}; + +struct trace_event_data_offsets_rpmh_tx_done { + u32 name; +}; + +struct trace_event_data_offsets_rpmh_send_msg { + u32 name; +}; + +struct tcs_type_config { + u32 type; + u32 n; +}; + +struct tegra_fuse_soc; + +struct tegra_fuse { + struct device *dev; + void *base; + phys_addr_t phys; + struct clk *clk; + struct reset_control *rst; + u32 (*read_early)(struct tegra_fuse *, unsigned int); + u32 (*read)(struct tegra_fuse *, unsigned int); + const struct tegra_fuse_soc *soc; + struct { + struct mutex lock; + struct completion wait; + struct dma_chan *chan; + struct dma_slave_config config; + dma_addr_t phys; + u32 *virt; + } apbdma; + struct nvmem_device *nvmem; + struct nvmem_cell_lookup *lookups; +}; + +struct tegra_fuse_info; + +struct tegra_fuse_soc { + void (*init)(struct tegra_fuse *); + void (*speedo_init)(struct tegra_sku_info *); + int (*probe)(struct tegra_fuse *); + const struct tegra_fuse_info *info; + const struct nvmem_cell_lookup *lookups; + unsigned int num_lookups; + const struct nvmem_cell_info *cells; + unsigned int num_cells; + const struct nvmem_keepout *keepouts; + unsigned int num_keepouts; + const struct attribute_group *soc_attr_group; + bool clk_suspend_on; +}; + +struct tegra_fuse_info { + u32 (*read)(struct tegra_fuse *, unsigned int); + unsigned int size; + unsigned int spare; +}; + +struct privcmd_hypercall { + __u64 op; + __u64 arg[5]; +}; + +struct privcmd_data { + domid_t domid; +}; + +struct privcmd_mmap_entry; + +struct privcmd_mmap { + int num; + domid_t dom; + struct privcmd_mmap_entry __attribute__((btf_type_tag("user"))) *entry; +}; + +struct privcmd_mmap_entry { + __u64 va; + __u64 mfn; + __u64 npages; +}; + +struct mmap_gfn_state { + unsigned long va; + struct vm_area_struct *vma; + domid_t domain; +}; + +struct privcmd_mmap_resource { + domid_t dom; + __u32 type; + __u32 id; + __u32 idx; + __u64 num; + __u64 addr; }; -struct kexec_load_limit { - struct mutex mutex; - int limit; +struct xen_mem_acquire_resource { + domid_t domid; + uint16_t type; + uint32_t id; + uint32_t nr_frames; + uint32_t flags; + uint64_t frame; + __guest_handle_xen_pfn_t frame_list; }; -typedef unsigned long elf_greg_t; - -typedef elf_greg_t elf_gregset_t[34]; +struct privcmd_dm_op_buf; -struct elf_siginfo { - int si_signo; - int si_code; - int si_errno; +struct privcmd_dm_op { + domid_t dom; + __u16 num; + const struct privcmd_dm_op_buf __attribute__((btf_type_tag("user"))) *ubufs; }; -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; +struct privcmd_dm_op_buf { + void __attribute__((btf_type_tag("user"))) *uptr; + size_t size; }; -struct elf_prstatus { - struct elf_prstatus_common common; - elf_gregset_t pr_reg; - int pr_fpvalid; +struct xen_dm_op_buf { + __guest_handle_void h; + xen_ulong_t size; }; -struct ustring_buffer { - char buffer[1024]; +struct mmap_batch_state { + domid_t domain; + unsigned long va; + struct vm_area_struct *vma; + int index; + int global_error; + int version; + xen_pfn_t __attribute__((btf_type_tag("user"))) *user_gfn; + int __attribute__((btf_type_tag("user"))) *user_err; }; -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, +struct privcmd_mmapbatch_v2 { + unsigned int num; + domid_t dom; + __u64 addr; + const xen_pfn_t __attribute__((btf_type_tag("user"))) *arr; + int __attribute__((btf_type_tag("user"))) *err; }; -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, +struct reset_simple_devdata { + u32 reg_offset; + u32 nr_resets; + bool active_low; + bool status_active_low; }; -enum { - TOO_MANY_CLOSE = -1, - TOO_MANY_OPEN = -2, - MISSING_QUOTE = -3, +struct tegra_uart_chip_data { + bool tx_fifo_full_status; + bool allow_txfifo_reset_fifo_mode; + bool support_clk_src_div; + bool fifo_mode_enable_status; + int uart_max_port; + int max_dma_burst_bytes; + int error_tolerance_low_range; + int error_tolerance_high_range; }; -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, -}; +struct tegra_baud_tolerance; -enum { - INVERT = 1, - PROCESS_AND = 2, - PROCESS_OR = 4, +struct tegra_uart_port { + struct uart_port uport; + const struct tegra_uart_chip_data *cdata; + struct clk *uart_clk; + struct reset_control *rst; + unsigned int current_baud; + unsigned long fcr_shadow; + unsigned long mcr_shadow; + unsigned long lcr_shadow; + unsigned long ier_shadow; + bool rts_active; + int tx_in_progress; + unsigned int tx_bytes; + bool enable_modem_interrupt; + bool rx_timeout; + int rx_in_progress; + int symb_bit; + struct dma_chan *rx_dma_chan; + struct dma_chan *tx_dma_chan; + dma_addr_t rx_dma_buf_phys; + dma_addr_t tx_dma_buf_phys; + unsigned char *rx_dma_buf_virt; + unsigned char *tx_dma_buf_virt; + struct dma_async_tx_descriptor *tx_dma_desc; + struct dma_async_tx_descriptor *rx_dma_desc; + dma_cookie_t tx_cookie; + dma_cookie_t rx_cookie; + unsigned int tx_bytes_requested; + unsigned int rx_bytes_requested; + struct tegra_baud_tolerance *baud_tolerance; + int n_adjustable_baud_rates; + int required_rate; + int configured_rate; + bool use_rx_pio; + bool use_tx_pio; + bool rx_dma_active; }; -struct regex; +struct tegra_baud_tolerance { + u32 lower_range_baud; + u32 upper_range_baud; + s32 tolerance; +}; -typedef int (*regex_match_func)(char *, struct regex *, int); +struct cavium_rng { + struct hwrng ops; + void *result; + void *pf_regbase; + struct pci_dev *pdev; + u64 clock_rate; + u64 prev_error; + u64 prev_time; +}; -struct regex { - char pattern[256]; - int len; - int field_len; - regex_match_func match; +struct rk_iommu_ops { + phys_addr_t (*pt_address)(u32); + u32 (*mk_dtentries)(dma_addr_t); + u32 (*mk_ptentries)(phys_addr_t, int); + u64 dma_bit_mask; + gfp_t gfp_flags; }; -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 rk_iommu_domain { + struct list_head iommus; + u32 *dt; + dma_addr_t dt_dma; + spinlock_t iommus_lock; + spinlock_t dt_lock; + struct iommu_domain domain; }; -struct filter_list { - struct list_head list; - struct event_filter *filter; +struct rk_iommu { + struct device *dev; + void **bases; + int num_mmu; + int num_irq; + struct clk_bulk_data *clocks; + int num_clocks; + bool reset_disabled; + struct iommu_device iommu; + struct list_head node; + struct iommu_domain *domain; }; -struct filter_parse_error { - int lasterr; - int lasterr_pos; +struct rk_iommudata { + struct device_link *link; + struct rk_iommu *iommu; }; -struct function_filter_data { - struct ftrace_ops *ops; - int first_filter; - int first_notrace; +struct regmap_async_spi { + struct regmap_async core; + struct spi_message m; + struct spi_transfer t[2]; }; -typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **); +struct virtio_blk_vq; -struct lpm_trie_node; +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 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; +struct virtio_blk_vq { + struct virtqueue *vq; spinlock_t lock; + char name[16]; + long: 64; 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]; +struct virtio_blk_outhdr { + __virtio32 type; + __virtio32 ioprio; + __virtio64 sector; }; -struct memory_failure_entry { - unsigned long pfn; - int flags; +struct virtblk_req { + struct virtio_blk_outhdr out_hdr; + union { + u8 status; + struct { + __virtio64 sector; + u8 status; + } zone_append; + } in_hdr; + size_t in_hdr_len; + struct sg_table sg_table; + struct scatterlist sg[0]; }; -struct memory_failure_cpu { - struct { - union { - struct __kfifo kfifo; - struct memory_failure_entry *type; - const struct memory_failure_entry *const_type; - char (*rectype)[0]; - struct memory_failure_entry *ptr; - const struct memory_failure_entry *ptr_const; - }; - struct memory_failure_entry buf[16]; - } fifo; - spinlock_t lock; - struct work_struct work; +struct virtio_blk_discard_write_zeroes { + __le64 sector; + __le32 num_sectors; + __le32 flags; }; -enum mf_action_page_type { - MF_MSG_KERNEL = 0, - MF_MSG_KERNEL_HIGH_ORDER = 1, - MF_MSG_SLAB = 2, - MF_MSG_DIFFERENT_COMPOUND = 3, - MF_MSG_HUGE = 4, - MF_MSG_FREE_HUGE = 5, - MF_MSG_UNMAP_FAILED = 6, - MF_MSG_DIRTY_SWAPCACHE = 7, - MF_MSG_CLEAN_SWAPCACHE = 8, - MF_MSG_DIRTY_MLOCKED_LRU = 9, - MF_MSG_CLEAN_MLOCKED_LRU = 10, - MF_MSG_DIRTY_UNEVICTABLE_LRU = 11, - MF_MSG_CLEAN_UNEVICTABLE_LRU = 12, - MF_MSG_DIRTY_LRU = 13, - MF_MSG_CLEAN_LRU = 14, - MF_MSG_TRUNCATED_LRU = 15, - MF_MSG_BUDDY = 16, - MF_MSG_DAX = 17, - MF_MSG_UNSPLIT_THP = 18, - MF_MSG_UNKNOWN = 19, +struct syscon { + struct device_node *np; + struct regmap *regmap; + struct reset_control *reset; + struct list_head list; }; -struct page_state { - unsigned long mask; - unsigned long res; - enum mf_action_page_type type; - int (*action)(struct page_state *, struct page *); +struct syscon_platform_data { + const char *label; }; -enum mf_result { - MF_IGNORED = 0, - MF_FAILED = 1, - MF_DELAYED = 2, - MF_RECOVERED = 3, +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 to_kill { - struct list_head nd; - struct task_struct *tsk; - unsigned long addr; - short size_shift; -}; +struct request_sense; -struct raw_hwp_page { - struct llist_node node; - struct page *page; +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 hwp_walk { - struct to_kill tk; - unsigned long pfn; - int flags; +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 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 scsi_ioctl_command { + unsigned int inlen; + unsigned int outlen; + unsigned char data[0]; }; -struct iomap_readpage_ctx { - struct folio *cur_folio; - bool cur_folio_in_bio; - struct bio *bio; - struct readahead_control *rac; +struct scsi_idlun { + __u32 dev_id; + __u32 host_unique_id; }; -struct iomap_page { - atomic_t read_bytes_pending; - atomic_t write_bytes_pending; - spinlock_t uptodate_lock; - unsigned long uptodate[0]; +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 iomap_writeback_ops; - -struct iomap_writepage_ctx { - struct iomap iomap; - struct iomap_ioend *ioend; - const struct iomap_writeback_ops *ops; +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 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); +struct rq_map_data { + struct page **pages; + unsigned long offset; + unsigned short page_order; + unsigned short nr_entries; + bool null_mapped; + bool from_user; }; -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_err_cont = 7, - Opt_err_panic = 8, - Opt_err_ro = 9, - Opt_nouid32 = 10, - Opt_debug___2 = 11, - Opt_oldalloc = 12, - Opt_orlov = 13, - Opt_nobh = 14, - Opt_user_xattr = 15, - Opt_nouser_xattr = 16, - Opt_acl___2 = 17, - Opt_noacl = 18, - Opt_xip = 19, - Opt_dax = 20, - Opt_ignore___2 = 21, - Opt_err___8 = 22, - Opt_quota = 23, - Opt_usrquota = 24, - Opt_grpquota = 25, - Opt_reservation = 26, - Opt_noreservation = 27, +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 ext2_mount_options { - unsigned long s_mount_opt; - kuid_t s_resuid; - kgid_t s_resgid; +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 nfs4_xattr_bucket { - spinlock_t lock; - struct hlist_head hlist; - struct nfs4_xattr_cache *cache; - bool draining; +struct ata_show_ering_arg { + char *buf; + int written; }; -struct nfs4_xattr_entry; - -struct nfs4_xattr_cache { - struct kref ref; - struct nfs4_xattr_bucket buckets[64]; - struct list_head lru; - struct list_head dispose; - atomic_long_t nent; - spinlock_t listxattr_lock; - struct inode *inode; - struct nfs4_xattr_entry *listxattr; +struct physmap_flash_info { + unsigned int nmaps; + struct mtd_info **mtds; + struct mtd_info *cmtd; + struct map_info *maps; + spinlock_t vpp_lock; + int vpp_refcnt; + const char *probe_type; + const char * const *part_types; + unsigned int nparts; + const struct mtd_partition *parts; + struct gpio_descs *gpios; + unsigned int gpio_values; + unsigned int win_order; }; -struct nfs4_xattr_entry { - struct kref ref; - struct hlist_node hnode; - struct list_head lru; - struct list_head dispose; - char *xattr_name; - void *xattr_value; - size_t xattr_size; - struct nfs4_xattr_bucket *bucket; - uint32_t flags; +struct physmap_flash_data { + unsigned int width; + int (*init)(struct platform_device *); + void (*exit)(struct platform_device *); + void (*set_vpp)(struct platform_device *, int); + unsigned int nr_parts; + unsigned int pfow_base; + char *probe_type; + struct mtd_partition *parts; + const char * const *part_probe_types; }; -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; +enum phy_state_work { + PHY_STATE_WORK_NONE = 0, + PHY_STATE_WORK_ANEG = 1, + PHY_STATE_WORK_SUSPEND = 2, }; -struct p9_rstatfs { - u32 type; - u32 bsize; - u64 blocks; - u64 bfree; - u64 bavail; - u64 files; - u64 ffree; - u64 fsid; - u32 namelen; +enum sgmii_speed { + SGMII_SPEED_10 = 0, + SGMII_SPEED_100 = 1, + SGMII_SPEED_1000 = 2, + SGMII_SPEED_2500 = 2, }; -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, +struct lynx_pcs { + struct phylink_pcs pcs; + struct mdio_device *mdio; }; -enum { - KYBER_TOTAL_LATENCY = 0, - KYBER_IO_LATENCY = 1, +struct macb_dma_desc_ptp { + u32 ts_1; + u32 ts_2; }; -enum { - KYBER_LATENCY_SHIFT = 2, - KYBER_GOOD_BUCKETS = 4, - KYBER_LATENCY_BUCKETS = 8, +enum hns_desc_type { + DESC_TYPE_SKB___2 = 0, + DESC_TYPE_PAGE___2 = 1, }; -enum { - KYBER_ASYNC_PERCENT = 75, +enum hns_nic_state { + NIC_STATE_TESTING = 0, + NIC_STATE_RESETTING = 1, + NIC_STATE_REINITING = 2, + NIC_STATE_DOWN = 3, + NIC_STATE_DISABLED = 4, + NIC_STATE_REMOVING = 5, + NIC_STATE_SERVICE_INITED = 6, + NIC_STATE_SERVICE_SCHED = 7, + NIC_STATE2_RESET_REQUESTED = 8, + NIC_STATE_MAX = 9, }; -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 hns_nic_ring_data { + struct hnae_ring *ring; + struct napi_struct napi; + cpumask_t mask; + u32 queue_index; + int (*poll_one)(struct hns_nic_ring_data *, int, void *); + void (*ex_process)(struct hns_nic_ring_data *, struct sk_buff *); + bool (*fini_process)(struct hns_nic_ring_data *); }; -struct trace_event_raw_kyber_adjust { - struct trace_entry ent; - dev_t dev; - char domain[16]; - unsigned int depth; - char __data[0]; +struct hns_nic_ops { + void (*fill_desc)(struct hnae_ring *, void *, int, dma_addr_t, int, int, enum hns_desc_type, int, bool); + int (*maybe_stop_tx)(struct sk_buff **, int *, struct hnae_ring *); + void (*get_rxd_bnum)(u32, int *); }; -struct trace_event_raw_kyber_throttled { - struct trace_entry ent; - dev_t dev; - char domain[16]; - char __data[0]; +struct hns_nic_priv { + const struct fwnode_handle *fwnode; + u32 enet_ver; + u32 port_id; + int phy_mode; + int phy_led_val; + struct net_device *netdev; + struct device *dev; + struct hnae_handle *ae_handle; + struct hns_nic_ops ops; + struct hns_nic_ring_data *ring_data; + int link; + u64 tx_timeout_count; + unsigned long state; + struct timer_list service_timer; + struct work_struct service_task; + struct notifier_block notifier_block; }; -struct kyber_cpu_latency { - atomic_t buckets[48]; +struct dwc3_rtk { + struct device *dev; + void *regs; + size_t regs_size; + void *pm_base; + struct dwc3 *dwc; + enum usb_role cur_role; + struct usb_role_switch *role_switch; }; -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 ci_hw_req { + struct usb_request req; + struct list_head queue; + struct list_head tds; }; -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 i2c_dev { + struct list_head list; + struct i2c_adapter *adap; + struct device dev; + struct cdev cdev; }; -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 i2c_rdwr_ioctl_data { + struct i2c_msg __attribute__((btf_type_tag("user"))) *msgs; + __u32 nmsgs; }; -struct flush_kcq_data { - struct kyber_hctx_data *khd; - unsigned int sched_domain; - struct list_head *list; +struct i2c_smbus_ioctl_data { + __u8 read_write; + __u8 command; + __u32 size; + union i2c_smbus_data __attribute__((btf_type_tag("user"))) *data; }; -typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); - -struct trace_event_data_offsets_kyber_latency {}; - -struct trace_event_data_offsets_kyber_adjust {}; - -struct trace_event_data_offsets_kyber_throttled {}; - -enum devm_ioremap_type { - DEVM_IOREMAP = 0, - DEVM_IOREMAP_UC = 1, - DEVM_IOREMAP_WC = 2, - DEVM_IOREMAP_NP = 3, +struct i2c_rdwr_ioctl_data32 { + compat_caddr_t msgs; + u32 nmsgs; }; -struct pcim_iomap_devres { - void *table[6]; +struct i2c_msg32 { + u16 addr; + u16 flags; + u16 len; + compat_caddr_t buf; }; -struct arch_io_reserve_memtype_wc_devres { - resource_size_t start; - resource_size_t size; +struct i2c_smbus_ioctl_data32 { + u8 read_write; + u8 command; + u32 size; + compat_caddr_t data; }; -struct rdists { - struct { - raw_spinlock_t rd_lock; - void *rd_base; - struct page *pend_page; - phys_addr_t phys_base; - u64 flags; - cpumask_t *vpe_table_mask; - void *vpe_l1_base; - } *rdist; - phys_addr_t prop_table_pa; - void *prop_table_va; - u64 flags; - u32 gicd_typer; - u32 gicd_typer2; - int cpuhp_memreserve_state; - bool has_vlpis; - bool has_rvpeid; - bool has_direct_lpi; - bool has_vpend_valid_dirty; +enum s3c24xx_i2c_state { + STATE_IDLE___3 = 0, + STATE_START___2 = 1, + STATE_READ___2 = 2, + STATE_WRITE___2 = 3, + STATE_STOP___2 = 4, }; -struct redist_region; - -struct partition_desc; - -struct gic_chip_data___2 { - struct fwnode_handle *fwnode; - phys_addr_t dist_phys_base; - void *dist_base; - struct redist_region *redist_regions; - struct rdists rdists; - struct irq_domain *domain; - u64 redist_stride; - u32 nr_redist_regions; - u64 flags; - bool has_rss; - unsigned int ppi_nr; - struct partition_desc **ppi_descs; -}; +struct s3c2410_platform_i2c; -struct redist_region { - void *redist_base; - phys_addr_t phys_base; - bool single_redist; +struct s3c24xx_i2c { + wait_queue_head_t wait; + kernel_ulong_t quirks; + struct i2c_msg *msg; + unsigned int msg_num; + unsigned int msg_idx; + unsigned int msg_ptr; + unsigned int tx_setup; + unsigned int irq; + enum s3c24xx_i2c_state state; + unsigned long clkrate; + void *regs; + struct clk *clk; + struct device *dev; + struct i2c_adapter adap; + struct s3c2410_platform_i2c *pdata; + struct gpio_desc *gpios[2]; + struct pinctrl *pctrl; + struct regmap *sysreg; + unsigned int sys_i2c_cfg; }; -enum gic_intid_range { - SGI_RANGE = 0, - PPI_RANGE = 1, - SPI_RANGE = 2, - EPPI_RANGE = 3, - ESPI_RANGE = 4, - LPI_RANGE = 5, - __INVALID_RANGE__ = 6, +struct s3c2410_platform_i2c { + int bus_num; + unsigned int flags; + unsigned int slave_addr; + unsigned long frequency; + unsigned int sda_delay; + void (*cfg_gpio)(struct platform_device *); }; -struct acpi_madt_generic_redistributor { - struct acpi_subtable_header header; - u16 reserved; - u64 base_address; - u32 length; -} __attribute__((packed)); - -struct partition_affinity { - cpumask_t mask; - void *partition_id; +struct syscon_reboot_context { + struct regmap *map; + u32 offset; + u32 value; + u32 mask; + struct notifier_block restart_handler; }; -struct cs_data { - u32 enable_mask; - u16 slow_cfg; - u16 fast_cfg; +struct cpufreq_cooling_device { + u32 last_load; + unsigned int cpufreq_state; + unsigned int max_level; + struct em_perf_domain *em; + struct cpufreq_policy *policy; + struct thermal_cooling_device_ops cooling_ops; + struct freq_qos_request qos_req; }; -struct ebi2_xmem_prop { - const char *prop; - u32 max; - bool slowreg; - u16 shift; +struct s3c2410_wdt_variant { + int disable_reg; + int mask_reset_reg; + bool mask_reset_inv; + int mask_bit; + int rst_stat_reg; + int rst_stat_bit; + int cnt_en_reg; + int cnt_en_bit; + u32 quirks; }; -struct rcar_gen3_phy { - struct phy *phy; +struct s3c2410_wdt { + struct device *dev; + struct clk *bus_clk; + struct clk *src_clk; + void *reg_base; + unsigned int count; spinlock_t lock; - void *base; + unsigned long wtcon_save; + unsigned long wtdat_save; + struct watchdog_device wdt_device; + struct notifier_block freq_transition; + const struct s3c2410_wdt_variant *drv_data; + struct regmap *pmureg; }; -enum s700_pinconf_pull { - OWL_PINCONF_PULL_DOWN = 0, - OWL_PINCONF_PULL_UP = 1, +struct ghes_hw_desc { + int num_dimms; + struct dimm_info *dimms; }; -struct visconti_gpio { - void *base; - spinlock_t lock; - struct gpio_chip gpio_chip; - struct device *dev; +struct ghes_pvt { + struct mem_ctl_info *mci; + char other_detail[400]; + char msg[80]; }; -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); +enum dmi_entry_type { + DMI_ENTRY_BIOS = 0, + DMI_ENTRY_SYSTEM = 1, + DMI_ENTRY_BASEBOARD = 2, + DMI_ENTRY_CHASSIS = 3, + DMI_ENTRY_PROCESSOR = 4, + DMI_ENTRY_MEM_CONTROLLER = 5, + DMI_ENTRY_MEM_MODULE = 6, + DMI_ENTRY_CACHE = 7, + DMI_ENTRY_PORT_CONNECTOR = 8, + DMI_ENTRY_SYSTEM_SLOT = 9, + DMI_ENTRY_ONBOARD_DEVICE = 10, + DMI_ENTRY_OEMSTRINGS = 11, + DMI_ENTRY_SYSCONF = 12, + DMI_ENTRY_BIOS_LANG = 13, + DMI_ENTRY_GROUP_ASSOC = 14, + DMI_ENTRY_SYSTEM_EVENT_LOG = 15, + DMI_ENTRY_PHYS_MEM_ARRAY = 16, + DMI_ENTRY_MEM_DEVICE = 17, + DMI_ENTRY_32_MEM_ERROR = 18, + DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19, + DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20, + DMI_ENTRY_BUILTIN_POINTING_DEV = 21, + DMI_ENTRY_PORTABLE_BATTERY = 22, + DMI_ENTRY_SYSTEM_RESET = 23, + DMI_ENTRY_HW_SECURITY = 24, + DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25, + DMI_ENTRY_VOLTAGE_PROBE = 26, + DMI_ENTRY_COOLING_DEV = 27, + DMI_ENTRY_TEMP_PROBE = 28, + DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29, + DMI_ENTRY_OOB_REMOTE_ACCESS = 30, + DMI_ENTRY_BIS_ENTRY = 31, + DMI_ENTRY_SYSTEM_BOOT = 32, + DMI_ENTRY_MGMT_DEV = 33, + DMI_ENTRY_MGMT_DEV_COMPONENT = 34, + DMI_ENTRY_MGMT_DEV_THRES = 35, + DMI_ENTRY_MEM_CHANNEL = 36, + DMI_ENTRY_IPMI_DEV = 37, + DMI_ENTRY_SYS_POWER_SUPPLY = 38, + DMI_ENTRY_ADDITIONAL = 39, + DMI_ENTRY_ONBOARD_DEV_EXT = 40, + DMI_ENTRY_MGMT_CONTROLLER_HOST = 41, + DMI_ENTRY_INACTIVE = 126, + DMI_ENTRY_END_OF_TABLE = 127, }; -struct vga_arb_user_card { - struct pci_dev *pdev; - unsigned int mem_cnt; - unsigned int io_cnt; +struct memdev_dmi_entry { + u8 type; + u8 length; + u16 handle; + u16 phys_mem_array_handle; + u16 mem_err_info_handle; + u16 total_width; + u16 data_width; + u16 size; + u8 form_factor; + u8 device_set; + u8 device_locator; + u8 bank_locator; + u8 memory_type; + u16 type_detail; + u16 speed; + u8 manufacturer; + u8 serial_number; + u8 asset_tag; + u8 part_number; + u8 attributes; + u32 extended_size; + u16 conf_mem_clk_speed; +} __attribute__((packed)); + +struct scpi_data { + struct clk *clk; + struct device *cpu_dev; }; -struct vga_arb_private { - struct list_head list; - struct pci_dev *target; - struct vga_arb_user_card cards[16]; - spinlock_t lock; +enum dwcmshc_rk_type { + DWCMSHC_RK3568 = 0, + DWCMSHC_RK3588 = 1, }; -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, +struct dwcmshc_priv { + struct clk *bus_clk; + int vendor_specific_area1; + void *priv; }; -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, +struct rk35xx_priv { + struct clk_bulk_data rockchip_clks[3]; + struct reset_control *reset; + enum dwcmshc_rk_type devtype; + u8 txclk_tapnum; }; -enum hdmi_scan_mode { - HDMI_SCAN_MODE_NONE = 0, - HDMI_SCAN_MODE_OVERSCAN = 1, - HDMI_SCAN_MODE_UNDERSCAN = 2, - HDMI_SCAN_MODE_RESERVED = 3, +struct led_pwm_data { + struct led_classdev cdev; + struct pwm_device *pwm; + struct pwm_state pwmstate; + unsigned int active_low; }; -enum hdmi_colorimetry { - HDMI_COLORIMETRY_NONE = 0, - HDMI_COLORIMETRY_ITU_601 = 1, - HDMI_COLORIMETRY_ITU_709 = 2, - HDMI_COLORIMETRY_EXTENDED = 3, +struct led_pwm_priv { + int num_leds; + struct led_pwm_data leds[0]; }; -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, +struct led_pwm { + const char *name; + u8 active_low; + u8 default_state; + unsigned int max_brightness; }; -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, +struct meson_sm_cmd { + unsigned int index; + u32 smc_id; }; -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, +struct meson_sm_chip { + unsigned int shmem_size; + u32 cmd_shmem_in_base; + u32 cmd_shmem_out_base; + struct meson_sm_cmd cmd[0]; }; -enum hdmi_quantization_range { - HDMI_QUANTIZATION_RANGE_DEFAULT = 0, - HDMI_QUANTIZATION_RANGE_LIMITED = 1, - HDMI_QUANTIZATION_RANGE_FULL = 2, - HDMI_QUANTIZATION_RANGE_RESERVED = 3, +struct meson_sm_firmware { + const struct meson_sm_chip *chip; + void *sm_shmem_in_base; + void *sm_shmem_out_base; }; -enum hdmi_nups { - HDMI_NUPS_UNKNOWN = 0, - HDMI_NUPS_HORIZONTAL = 1, - HDMI_NUPS_VERTICAL = 2, - HDMI_NUPS_BOTH = 3, +enum tegra_ivc_state { + TEGRA_IVC_STATE_ESTABLISHED = 0, + TEGRA_IVC_STATE_SYNC = 1, + TEGRA_IVC_STATE_ACK = 2, }; -enum hdmi_ycc_quantization_range { - HDMI_YCC_QUANTIZATION_RANGE_LIMITED = 0, - HDMI_YCC_QUANTIZATION_RANGE_FULL = 1, +struct tegra_ivc_header { + union { + struct { + u32 count; + u32 state; + }; + u8 pad[64]; + } tx; + union { + u32 count; + u8 pad[64]; + } rx; }; -enum hdmi_content_type { - HDMI_CONTENT_TYPE_GRAPHICS = 0, - HDMI_CONTENT_TYPE_PHOTO = 1, - HDMI_CONTENT_TYPE_CINEMA = 2, - HDMI_CONTENT_TYPE_GAME = 3, +struct hid_bpf_prog_entry { + struct bpf_prog *prog; + struct hid_device *hdev; + enum hid_bpf_prog_type type; + u16 idx; }; -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, +struct hid_bpf_jmp_table { + struct bpf_map *map; + struct hid_bpf_prog_entry entries[1024]; + int tail; + int head; + struct bpf_prog *progs[1024]; + unsigned long enabled[16]; }; -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, +struct bpf_map_desc { + int map_fd; + __u32 max_entries; + __u64 initial_value; }; -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, +struct bpf_prog_desc { + int prog_fd; }; -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, +struct bpf_loader_ctx { + __u32 sz; + __u32 flags; + __u32 log_level; + __u32 log_size; + __u64 log_buf; }; -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, +struct entrypoints_bpf { + struct bpf_loader_ctx ctx; + struct { + struct bpf_map_desc hid_jmp_table; + } maps; + struct { + struct bpf_prog_desc hid_tail_call; + } progs; + struct { + int hid_tail_call_fd; + } links; }; -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 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 hdmi_metadata_type { - HDMI_STATIC_METADATA_TYPE1 = 0, +enum { + BPF_SKEL_KERNEL = 1, }; -struct hdmi_any_infoframe { - enum hdmi_infoframe_type type; - unsigned char version; - unsigned char length; +struct hid_bpf_link { + struct bpf_link link; + int hid_table_index; }; -struct hdmi_avi_infoframe { - enum hdmi_infoframe_type type; - unsigned char version; - unsigned char length; - bool itc; - unsigned char pixel_repeat; - 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; - 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 short top_bar; - unsigned short bottom_bar; - unsigned short left_bar; - unsigned short right_bar; +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 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; +enum ec_feature_code { + EC_FEATURE_LIMITED = 0, + EC_FEATURE_FLASH = 1, + EC_FEATURE_PWM_FAN = 2, + EC_FEATURE_PWM_KEYB = 3, + EC_FEATURE_LIGHTBAR = 4, + EC_FEATURE_LED = 5, + EC_FEATURE_MOTION_SENSE = 6, + EC_FEATURE_KEYB = 7, + EC_FEATURE_PSTORE = 8, + EC_FEATURE_PORT80 = 9, + EC_FEATURE_THERMAL = 10, + EC_FEATURE_BKLIGHT_SWITCH = 11, + EC_FEATURE_WIFI_SWITCH = 12, + EC_FEATURE_HOST_EVENTS = 13, + EC_FEATURE_GPIO = 14, + EC_FEATURE_I2C = 15, + EC_FEATURE_CHARGER = 16, + EC_FEATURE_BATTERY = 17, + EC_FEATURE_SMART_BATTERY = 18, + EC_FEATURE_HANG_DETECT = 19, + EC_FEATURE_PMU = 20, + EC_FEATURE_SUB_MCU = 21, + EC_FEATURE_USB_PD = 22, + EC_FEATURE_USB_MUX = 23, + EC_FEATURE_MOTION_SENSE_FIFO = 24, + EC_FEATURE_VSTORE = 25, + EC_FEATURE_USBC_SS_MUX_VIRTUAL = 26, + EC_FEATURE_RTC = 27, + EC_FEATURE_FINGERPRINT = 28, + EC_FEATURE_TOUCHPAD = 29, + EC_FEATURE_RWSIG = 30, + EC_FEATURE_DEVICE_EVENT = 31, + EC_FEATURE_UNIFIED_WAKE_MASKS = 32, + EC_FEATURE_HOST_EVENT64 = 33, + EC_FEATURE_EXEC_IN_RAM = 34, + EC_FEATURE_CEC = 35, + EC_FEATURE_MOTION_SENSE_TIGHT_TIMESTAMPS = 36, + EC_FEATURE_REFINED_TABLET_MODE_HYSTERESIS = 37, + EC_FEATURE_SCP = 39, + EC_FEATURE_ISH = 40, + EC_FEATURE_TYPEC_CMD = 41, + EC_FEATURE_TYPEC_REQUIRE_AP_MODE_ENTRY = 42, + EC_FEATURE_TYPEC_MUX_REQUIRE_AP_ACK = 43, + EC_FEATURE_S4_RESIDENCY = 44, + EC_FEATURE_TYPEC_AP_MUX_SET = 45, + EC_FEATURE_TYPEC_AP_VDM_SEND = 46, }; -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; +enum motionsensor_type { + MOTIONSENSE_TYPE_ACCEL = 0, + MOTIONSENSE_TYPE_GYRO = 1, + MOTIONSENSE_TYPE_MAG = 2, + MOTIONSENSE_TYPE_PROX = 3, + MOTIONSENSE_TYPE_LIGHT = 4, + MOTIONSENSE_TYPE_ACTIVITY = 5, + MOTIONSENSE_TYPE_BARO = 6, + MOTIONSENSE_TYPE_SYNC = 7, + MOTIONSENSE_TYPE_MAX = 8, }; -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; +struct cros_ec_sensors_ec_overflow_state { + s64 offset; + s64 last; }; -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; +struct cros_ec_sensors_ts_filter_state { + s64 x_offset; + s64 y_offset; + s64 x_history[64]; + s64 y_history[64]; + s64 m_history[64]; + int history_len; + s64 temp_buf[64]; + s64 median_m; + s64 median_error; }; -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 cros_ec_sensors_ring_sample; + +struct cros_ec_sensors_ts_batch_state; + +struct cros_ec_sensorhub_sensor_push_data; + +struct cros_ec_sensorhub { + struct device *dev; + struct cros_ec_dev *ec; + int sensor_num; + struct cros_ec_command *msg; + struct ec_params_motion_sense *params; + struct ec_response_motion_sense *resp; + struct mutex cmd_lock; + struct notifier_block notifier; + struct cros_ec_sensors_ring_sample *ring; + ktime_t fifo_timestamp[2]; + struct ec_response_motion_sense_fifo_info *fifo_info; + int fifo_size; + struct cros_ec_sensors_ts_batch_state *batch_state; + struct cros_ec_sensors_ec_overflow_state overflow_a; + struct cros_ec_sensors_ec_overflow_state overflow_b; + struct cros_ec_sensors_ts_filter_state filter; + int tight_timestamps; + s32 future_timestamp_count; + s64 future_timestamp_total_ns; + struct cros_ec_sensorhub_sensor_push_data *push_data; }; -struct dp_sdp_header { - u8 HB0; - u8 HB1; - u8 HB2; - u8 HB3; +struct cros_ec_sensors_ring_sample { + u8 sensor_id; + u8 flag; + s16 vector[3]; + s64 timestamp; }; -struct dp_sdp { - struct dp_sdp_header sdp_header; - u8 db[32]; +struct cros_ec_sensors_ts_batch_state { + s64 penul_ts; + int penul_len; + s64 last_ts; + int last_len; + s64 newest_sensor_event; }; -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; +typedef int (*cros_ec_sensorhub_push_data_cb_t)(struct iio_dev *, s16 *, s64); + +struct cros_ec_sensorhub_sensor_push_data { + struct iio_dev *indio_dev; + cros_ec_sensorhub_push_data_cb_t push_data_cb; }; -struct pcc_data { - struct pcc_mbox_chan *pcc_chan; - void *pcc_comm_addr; - struct completion done; - struct mbox_client cl; - struct acpi_pcc_info ctx; +struct cros_ec_sensor_platform { + u8 sensor_num; }; -typedef u64 acpi_integer; +struct hi6220_mbox_chan; -struct mcfg_fixup { - char oem_id[7]; - char oem_table_id[9]; - u32 oem_revision; - u16 segment; - struct resource bus_range; - const struct pci_ecam_ops *ops; - struct resource cfgres; +struct hi6220_mbox { + struct device *dev; + int irq; + bool tx_irq_mode; + void *ipc; + void *base; + unsigned int chan_num; + struct hi6220_mbox_chan *mchan; + void *irq_map_chan[32]; + struct mbox_chan *chan; + struct mbox_controller controller; }; -struct mcfg_entry { - struct list_head list; - phys_addr_t addr; - u16 segment; - u8 bus_start; - u8 bus_end; +struct hi6220_mbox_chan { + unsigned int dir; + unsigned int dst_irq; + unsigned int ack_irq; + unsigned int slot; + struct hi6220_mbox *parent; }; -struct acpi_table_mcfg { - struct acpi_table_header header; - u8 reserved[8]; +struct iio_demux_table { + unsigned int from; + unsigned int to; + unsigned int length; + struct list_head l; }; -struct acpi_mcfg_allocation { - u64 address; - u16 pci_segment; - u8 start_bus_number; - u8 end_bus_number; - u32 reserved; +struct iio_device_config { + unsigned int mode; + unsigned int watermark; + const unsigned long *scan_mask; + unsigned int scan_bytes; + bool scan_timestamp; }; -struct fhctl_offset { - u32 offset_hp_en; - u32 offset_clk_con; - u32 offset_rst_con; - u32 offset_slope0; - u32 offset_slope1; - u32 offset_cfg; - u32 offset_updnlmt; - u32 offset_dds; - u32 offset_dvfs; - u32 offset_mon; +struct ocotp_region { + u32 start; + u32 end; + u32 flag; }; -struct mtk_fh; +struct ocotp_devtype_data { + int devtype; + int nregs; + u32 num_region; + struct ocotp_region region[0]; +}; -struct fh_operation { - int (*hopping)(struct mtk_fh *, unsigned int, unsigned int); - int (*ssc_enable)(struct mtk_fh *, u32); +struct ocotp_priv { + struct device *dev; + const struct ocotp_devtype_data *data; + struct imx_sc_ipc *nvmem_ipc; }; -struct mtk_clk_pll { - struct clk_hw hw; - void *base_addr; - void *pd_addr; - void *pwr_addr; - void *tuner_addr; - void *tuner_en_addr; - void *pcw_addr; - void *pcw_chg_addr; - void *en_addr; - const struct mtk_pll_data *data; +struct imx_sc_msg_misc_fuse_read { + struct imx_sc_rpc_msg hdr; + u32 word; }; -struct fh_pll_regs { - void *reg_hp_en; - void *reg_clk_con; - void *reg_rst_con; - void *reg_slope0; - void *reg_slope1; - void *reg_cfg; - void *reg_updnlmt; - void *reg_dds; - void *reg_dvfs; - void *reg_mon; +struct bcm_voter { + struct device *dev; + struct device_node *np; + struct mutex lock; + struct list_head commit_list; + struct list_head ws_list; + struct list_head voter_node; + u32 tcs_wait; }; -struct mtk_fh { - struct mtk_clk_pll clk_pll; - struct fh_pll_regs regs; - struct mtk_pllfh_data *pllfh_data; - const struct fh_operation *ops; - spinlock_t *lock; +struct soc_mreg_control { + long min; + long max; + unsigned int regbase; + unsigned int regcount; + unsigned int nbits; + unsigned int invert; }; -enum fhctl_variant { - FHCTL_PLLFH_V1 = 0, - FHCTL_PLLFH_V2 = 1, +struct soc_bytes { + int base; + int num_regs; + u32 mask; }; -struct cpg_mssr_priv { - struct reset_controller_dev rcdev; - struct device *dev; - void *base; - enum clk_reg_layout reg_layout; - spinlock_t rmw_lock; - struct device_node *np; - unsigned int num_core_clks; - unsigned int num_mod_clks; - unsigned int last_dt_core_clk; - struct raw_notifier_head notifiers; - const u16 *status_regs; - const u16 *control_regs; - const u16 *reset_regs; - const u16 *reset_clear_regs; - struct { - u32 mask; - u32 val; - } smstpcr_saved[30]; - struct clk *clks[0]; +struct flow_dissector_key { + enum flow_dissector_key_id key_id; + size_t offset; }; -struct cpg_mssr_clk_domain { - struct generic_pm_domain genpd; - unsigned int num_core_pm_clks; - unsigned int core_pm_clks[0]; +struct nf_ct_event { + struct nf_conn *ct; + u32 portid; + int report; }; -enum clk_types___2 { - CLK_TYPE_IN___2 = 0, - CLK_TYPE_FF___2 = 1, - CLK_TYPE_DIV6P1 = 2, - CLK_TYPE_DIV6_RO = 3, - CLK_TYPE_FR = 4, - CLK_TYPE_CUSTOM = 5, +struct nf_ct_ext { + u8 offset[5]; + u8 len; + unsigned int gen_id; + long: 0; + char data[0]; }; -struct mstp_clock___2 { - struct clk_hw hw; - u32 index; - struct cpg_mssr_priv *priv; +struct nf_conntrack_expect; + +struct nf_exp_event { + struct nf_conntrack_expect *exp; + u32 portid; + int report; }; -struct _ccu_nm { - unsigned long n; - unsigned long min_n; - unsigned long max_n; - unsigned long m; - unsigned long min_m; - unsigned long max_m; +struct nf_conntrack_tuple_mask { + struct { + union nf_inet_addr u3; + union nf_conntrack_man_proto u; + } src; }; -struct ccu_nk { - u16 reg; - u32 enable; - u32 lock; - struct ccu_mult_internal n; - struct ccu_mult_internal k; - unsigned int fixed_post_div; - struct ccu_common common; +struct nf_conntrack_helper; + +enum ip_conntrack_dir { + IP_CT_DIR_ORIGINAL = 0, + IP_CT_DIR_REPLY = 1, + IP_CT_DIR_MAX = 2, }; -enum mv_xor_type { - XOR_ORION = 0, - XOR_ARMADA_38X = 1, - XOR_ARMADA_37XX = 2, +struct nf_conntrack_expect { + struct hlist_node lnode; + struct hlist_node hnode; + struct nf_conntrack_tuple tuple; + struct nf_conntrack_tuple_mask mask; + refcount_t use; + unsigned int flags; + unsigned int class; + void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *); + struct nf_conntrack_helper *helper; + struct nf_conn *master; + struct timer_list timeout; + union nf_inet_addr saved_addr; + union nf_conntrack_man_proto saved_proto; + enum ip_conntrack_dir dir; + struct callback_head rcu; }; -enum mv_xor_mode { - XOR_MODE_IN_REG = 0, - XOR_MODE_IN_DESC = 1, +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, }; -struct mv_xor_device; +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, +}; -struct mv_xor_chan { - int pending; - spinlock_t lock; - void *mmr_base; - void *mmr_high_base; - unsigned int idx; - int irq; - struct list_head chain; - struct list_head free_slots; - struct list_head allocated_slots; - struct list_head completed_slots; - dma_addr_t dma_desc_pool; - void *dma_desc_pool_virt; - size_t pool_size; - struct dma_device dmadev; - struct dma_chan dmachan; - int slots_allocated; - struct tasklet_struct irq_tasklet; - int op_in_desc; - char dummy_src[128]; - char dummy_dst[128]; - dma_addr_t dummy_src_addr; - dma_addr_t dummy_dst_addr; - u32 saved_config_reg; - u32 saved_int_mask_reg; - struct mv_xor_device *xordev; +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 mv_xor_device { - void *xor_base; - void *xor_high_base; - struct clk *clk; - struct mv_xor_chan *channels[2]; - int xor_type; - u32 win_start[8]; - u32 win_end[8]; +struct _flow_keys_digest_data { + __be16 n_proto; + u8 ip_proto; + u8 padding; + __be32 ports; + __be32 src; + __be32 dst; }; -struct mv_xor_desc_slot { - struct list_head node; - struct list_head sg_tx_list; - enum dma_transaction_type type; - void *hw_desc; - u16 idx; - struct dma_async_tx_descriptor async_tx; +struct mpls_label { + __be32 entry; }; -struct mv_xor_desc { - u32 status; - u32 crc32_result; - u32 desc_command; - u32 phy_next_desc; - u32 byte_count; - u32 phy_dest_addr; - u32 phy_src_addr[8]; - u32 reserved0; - u32 reserved1; +struct flow_dissector_mpls_lse { + u32 mpls_ttl: 8; + u32 mpls_bos: 1; + u32 mpls_tc: 3; + u32 mpls_label: 20; }; -struct mv_xor_channel_data; +struct flow_dissector_key_mpls { + struct flow_dissector_mpls_lse ls[7]; + u8 used_lses; +}; -struct mv_xor_platform_data { - struct mv_xor_channel_data *channels; +struct flow_dissector_key_ip { + __u8 tos; + __u8 ttl; }; -struct mv_xor_channel_data { - dma_cap_mask_t cap_mask; +struct batadv_unicast_packet { + __u8 packet_type; + __u8 version; + __u8 ttl; + __u8 ttvn; + __u8 dest[6]; }; -enum qbman_sdqcr_dct { - qbman_sdqcr_dct_null = 0, - qbman_sdqcr_dct_prio_ics = 1, - qbman_sdqcr_dct_active_ics = 2, - qbman_sdqcr_dct_active = 3, +struct flow_dissector_key_arp { + __u32 sip; + __u32 tip; + __u8 op; + unsigned char sha[6]; + unsigned char tha[6]; }; -enum qbman_sdqcr_fc { - qbman_sdqcr_fc_one = 0, - qbman_sdqcr_fc_up_to_3 = 1, +struct pppoe_tag { + __be16 tag_type; + __be16 tag_len; + char tag_data[0]; }; -enum qb_enqueue_commands { - enqueue_empty = 0, - enqueue_response_always = 1, - enqueue_rejects_to_fq = 2, +struct pppoe_hdr { + __u8 type: 4; + __u8 ver: 4; + __u8 code; + __be16 sid; + __be16 length; + struct pppoe_tag tag[0]; }; -enum qb_pull_dt_e { - qb_pull_dt_channel = 0, - qb_pull_dt_workqueue = 1, - qb_pull_dt_framequeue = 2, +struct flow_dissector_key_cfm { + u8 mdl_ver; + u8 opcode; }; -struct qbman_fq_query_desc { - u8 verb; - u8 reserved[3]; - __le32 fqid; - u8 reserved2[56]; +struct tipc_basic_hdr { + __be32 w[4]; }; -struct qbman_bp_query_desc { - u8 verb; - u8 reserved; - __le16 bpid; - u8 reserved2[60]; +struct flow_dissector_key_tcp { + __be16 flags; }; -struct qbman_acquire_desc { - u8 verb; - u8 reserved; - __le16 bpid; - u8 num; - u8 reserved2[59]; +struct ip_esp_hdr { + __be32 spi; + __be32 seq_no; + __u8 enc_data[0]; }; -struct qbman_acquire_rslt { - u8 verb; - u8 rslt; - __le16 reserved; - u8 num; - u8 reserved2[3]; - __le64 buf[7]; +struct flow_dissector_key_ipsec { + __be32 spi; }; -struct qbman_alt_fq_state_desc { - u8 verb; - u8 reserved[3]; - __le32 fqid; - u8 reserved2[56]; +struct ip_auth_hdr { + __u8 nexthdr; + __u8 hdrlen; + __be16 reserved; + __be32 spi; + __be32 seq_no; + __u8 auth_data[0]; }; -struct qbman_alt_fq_state_rslt { - u8 verb; - u8 rslt; - u8 reserved[62]; +struct flow_dissector_key_l2tpv3 { + __be32 session_id; }; -struct qbman_cdan_ctrl_desc { - u8 verb; - u8 reserved; - __le16 ch; - u8 we; - u8 ctrl; - __le16 reserved2; - __le64 cdan_ctx; - u8 reserved3[48]; +struct flow_dissector_key_meta { + int ingress_ifindex; + u16 ingress_iftype; + u8 l2_miss; }; -struct qbman_cdan_ctrl_rslt { - u8 verb; - u8 rslt; - __le16 ch; - u8 reserved[60]; +struct nf_conn_labels { + unsigned long bits[2]; }; -struct meson_msr; +struct flow_dissector_key_ct { + u16 ct_state; + u16 ct_zone; + u32 ct_mark; + u32 ct_labels[4]; +}; -struct meson_msr_id { - struct meson_msr *priv; - unsigned int id; - const char *name; +struct flow_dissector_key_enc_opts { + u8 data[255]; + u8 len; + __be16 dst_opt_type; }; -struct meson_msr { - struct regmap *regmap; - struct meson_msr_id msr_table[128]; +struct flow_dissector_key_hash { + u32 hash; }; -struct exynos_usi_mode { - const char *name; - unsigned int val; +struct hsr_tag { + __be16 path_and_LSDU_size; + __be16 sequence_nr; + __be16 encap_proto; }; -enum exynos_usi_ver { - USI_VER2 = 2, +struct flow_dissector_key_num_of_vlans { + u8 num_of_vlans; }; -struct exynos_usi_variant { - enum exynos_usi_ver ver; - unsigned int sw_conf_mask; - size_t min_mode; - size_t max_mode; - size_t num_clks; - const char * const *clk_names; +struct flow_dissector_key_pppoe { + __be16 session_id; + __be16 ppp_proto; + __be16 type; }; -struct exynos_usi { - struct device *dev; - void *regs; - struct clk_bulk_data *clks; - size_t mode; - bool clkreq_on; - struct regmap *sysreg; - unsigned int sw_conf; - const struct exynos_usi_variant *data; +struct flow_keys_digest { + u8 data[16]; }; -struct hyp_sysfs_attr { - struct attribute attr; - ssize_t (*show)(struct hyp_sysfs_attr *, char *); - ssize_t (*store)(struct hyp_sysfs_attr *, const char *, size_t); - union { - void *hyp_attr_data; - unsigned long hyp_attr_value; - }; +typedef void (*btf_trace_netlink_extack)(void *, const char *); + +struct listeners; + +struct netlink_table { + struct rhashtable hash; + struct hlist_head mc_list; + struct listeners __attribute__((btf_type_tag("rcu"))) *listeners; + unsigned int flags; + unsigned int groups; + struct mutex *cb_mutex; + struct module *module; + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, unsigned long *); + int registered; }; -struct xen_platform_parameters { - xen_ulong_t virt_start; +struct listeners { + struct callback_head rcu; + unsigned long masks[0]; }; -struct xen_build_id { - uint32_t len; - unsigned char buf[0]; +enum netlink_skb_flags { + NETLINK_SKB_DST = 8, }; -typedef uint8_t xen_domain_handle_t[16]; - -struct xen_compile_info { - char compiler[64]; - char compile_by[16]; - char compile_domain[32]; - char compile_date[32]; +enum { + NETLINK_F_KERNEL_SOCKET = 0, + NETLINK_F_RECV_PKTINFO = 1, + NETLINK_F_BROADCAST_SEND_ERROR = 2, + NETLINK_F_RECV_NO_ENOBUFS = 3, + NETLINK_F_LISTEN_ALL_NSID = 4, + NETLINK_F_CAP_ACK = 5, + NETLINK_F_EXT_ACK = 6, + NETLINK_F_STRICT_CHK = 7, }; -struct rpm_regulator_data { - const char *name; - u32 type; - u32 id; - const struct regulator_desc *desc; - const char *supply; +enum { + NETLINK_UNCONNECTED = 0, + NETLINK_CONNECTED = 1, }; -struct qcom_rpm_reg { - struct device *dev; - struct qcom_smd_rpm *rpm; - u32 type; - u32 id; - struct regulator_desc desc; - int is_enabled; - int uV; - u32 load; - unsigned int enabled_updated: 1; - unsigned int uv_updated: 1; - unsigned int load_updated: 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 rpm_regulator_req { - __le32 key; - __le32 nbytes; - __le32 value; +struct trace_event_raw_netlink_extack { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -struct serial8250_em_priv { - int line; +struct netlink_tap { + struct net_device *dev; + struct module *module; + struct list_head list; }; -struct timer_rand_state { - unsigned long last_time; - long last_delta; - long last_delta2; +struct netlink_sock { + struct sock sk; + unsigned long flags; + u32 portid; + u32 dst_portid; + u32 dst_group; + u32 subscriptions; + u32 ngroups; + unsigned long *groups; + unsigned long state; + size_t max_recvmsg_len; + wait_queue_head_t wait; + bool bound; + bool cb_running; + int dump_done_errno; + struct netlink_callback cb; + struct mutex *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); + void (*netlink_release)(struct sock *, unsigned long *); + struct module *module; + struct rhash_head node; + struct callback_head rcu; + struct work_struct work; }; -enum { - CRNG_EMPTY = 0, - CRNG_EARLY = 1, - CRNG_READY = 2, +struct sockaddr_nl { + __kernel_sa_family_t nl_family; + unsigned short nl_pad; + __u32 nl_pid; + __u32 nl_groups; }; -struct batch_u8 { - u8 entropy[96]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +struct trace_event_data_offsets_netlink_extack { + u32 msg; }; -struct batch_u16 { - u16 entropy[48]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +struct netlink_tap_net { + struct list_head netlink_tap_all; + struct mutex netlink_tap_lock; }; -struct batch_u32 { - u32 entropy[24]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +struct netlink_broadcast_data { + struct sock *exclude_sk; + struct net *net; + u32 portid; + u32 group; + int failure; + int delivery_failure; + int congested; + int delivered; + gfp_t allocation; + struct sk_buff *skb; + struct sk_buff *skb2; + int (*tx_filter)(struct sock *, struct sk_buff *, void *); + void *tx_data; }; -struct batch_u64 { - u64 entropy[12]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +struct netlink_set_err_data { + struct sock *exclude_sk; + u32 portid; + u32 group; + int code; }; -struct crng { - u8 key[32]; - unsigned long generation; - local_lock_t lock; +struct netlink_compare_arg { + possible_net_t pnet; + u32 portid; }; -struct fast_pool { - unsigned long pool[4]; - unsigned long last; - unsigned int count; - struct timer_list mix; +struct nl_pktinfo { + __u32 group; }; -enum { - MIX_INFLIGHT = 2147483648, +struct nl_seq_iter { + struct seq_net_private p; + struct rhashtable_iter hti; + int link; }; -enum blake2s_iv { - BLAKE2S_IV0 = 1779033703, - BLAKE2S_IV1 = 3144134277, - BLAKE2S_IV2 = 1013904242, - BLAKE2S_IV3 = 2773480762, - BLAKE2S_IV4 = 1359893119, - BLAKE2S_IV5 = 2600822924, - BLAKE2S_IV6 = 528734635, - BLAKE2S_IV7 = 1541459225, +struct bpf_iter__netlink { + union { + struct bpf_iter_meta *meta; + }; + union { + struct netlink_sock *sk; + }; }; -enum chacha_constants { - CHACHA_CONSTANT_EXPA = 1634760805, - CHACHA_CONSTANT_ND_3 = 857760878, - CHACHA_CONSTANT_2_BY = 2036477234, - CHACHA_CONSTANT_TE_K = 1797285236, +struct nlmsgerr { + int error; + struct nlmsghdr msg; }; -enum { - POOL_BITS = 256, - POOL_READY_BITS = 256, - POOL_EARLY_BITS = 128, +struct netlink_notify { + struct net *net; + u32 portid; + int protocol; }; enum { - CRNG_RESEED_START_INTERVAL = 250, - CRNG_RESEED_INTERVAL = 15000, + 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 { - NUM_TRIAL_SAMPLES = 8192, - MAX_SAMPLES_PER_BIT = 16, + 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 entropy_timer_state { - unsigned long entropy; - struct timer_list timer; - atomic_t samples; - unsigned int samples_per_bit; +struct pause_req_info { + struct ethnl_req_info base; + enum ethtool_mac_stats_src src; }; -enum dart_type { - DART_T8020 = 0, - DART_T6000 = 1, - DART_T8110 = 2, +struct pause_reply_data { + struct ethnl_reply_data base; + struct ethtool_pauseparam pauseparam; + struct ethtool_pause_stats pausestat; }; -struct apple_dart_stream_map; +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 apple_dart_hw { - enum dart_type type; - irqreturn_t (*irq_handler)(int, void *); - int (*invalidate_tlb)(struct apple_dart_stream_map *); - u32 oas; - enum io_pgtable_fmt fmt; - int max_sid_count; - u64 lock; - u64 lock_bit; - u64 error; - u64 enable_streams; - u64 tcr; - u64 tcr_enabled; - u64 tcr_disabled; - u64 tcr_bypass; - u64 ttbr; - u64 ttbr_valid; - u64 ttbr_addr_field_shift; - u64 ttbr_shift; - int ttbr_count; +enum { + IFLA_IPTUN_UNSPEC = 0, + IFLA_IPTUN_LINK = 1, + IFLA_IPTUN_LOCAL = 2, + IFLA_IPTUN_REMOTE = 3, + IFLA_IPTUN_TTL = 4, + IFLA_IPTUN_TOS = 5, + IFLA_IPTUN_ENCAP_LIMIT = 6, + IFLA_IPTUN_FLOWINFO = 7, + IFLA_IPTUN_FLAGS = 8, + IFLA_IPTUN_PROTO = 9, + IFLA_IPTUN_PMTUDISC = 10, + IFLA_IPTUN_6RD_PREFIX = 11, + IFLA_IPTUN_6RD_RELAY_PREFIX = 12, + IFLA_IPTUN_6RD_PREFIXLEN = 13, + IFLA_IPTUN_6RD_RELAY_PREFIXLEN = 14, + IFLA_IPTUN_ENCAP_TYPE = 15, + IFLA_IPTUN_ENCAP_FLAGS = 16, + IFLA_IPTUN_ENCAP_SPORT = 17, + IFLA_IPTUN_ENCAP_DPORT = 18, + IFLA_IPTUN_COLLECT_METADATA = 19, + IFLA_IPTUN_FWMARK = 20, + __IFLA_IPTUN_MAX = 21, }; -struct apple_dart; +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, +}; -struct apple_dart_stream_map { - struct apple_dart *dart; - unsigned long sidmap[4]; +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, }; -struct apple_dart { - struct device *dev; - const struct apple_dart_hw *hw; - void *regs; - int irq; - struct clk_bulk_data *clks; - int num_clks; - spinlock_t lock; - u32 ias; - u32 oas; - u32 pgsize; - u32 num_streams; - u32 supports_bypass: 1; - u32 force_bypass: 1; - struct iommu_group *sid2group[256]; - struct iommu_device iommu; - u32 save_tcr[256]; - u32 save_ttbr[1024]; +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, }; -struct apple_dart_atomic_stream_map { - struct apple_dart *dart; - atomic_long_t sidmap[4]; +enum { + LWTUNNEL_IP_OPT_VXLAN_UNSPEC = 0, + LWTUNNEL_IP_OPT_VXLAN_GBP = 1, + __LWTUNNEL_IP_OPT_VXLAN_MAX = 2, }; -struct apple_dart_domain { - struct io_pgtable_ops *pgtbl_ops; - bool finalized; - struct mutex init_lock; - struct apple_dart_atomic_stream_map stream_maps[2]; - struct iommu_domain domain; +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, }; -struct apple_dart_master_cfg { - struct apple_dart_stream_map stream_maps[2]; +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 firmware_fallback_config { - unsigned int force_sysfs_fallback; - unsigned int ignore_sysfs_fallback; - int old_timeout; - int loading_timeout; +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 for_each_memory_block_cb_data { - walk_memory_blocks_func_t func; - void *arg; +struct erspan_metadata { + int version; + union { + __be32 index; + struct erspan_md2 md2; + } u; }; -struct irq_top_t; +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 pmic_irq_data { - unsigned int num_top; - unsigned int num_pmic_irqs; - unsigned short top_int_status_reg; - bool *enable_hwirq; - bool *cache_hwirq; - const struct irq_top_t *pmic_ints; +struct vxlan_metadata { + u32 gbp; }; -struct irq_top_t { - int hwirq_base; - unsigned int num_int_regs; - unsigned int en_reg; - unsigned int en_reg_shift; - unsigned int sta_reg; - unsigned int sta_reg_shift; - unsigned int top_offset; +struct ipv6_stub { + int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *); + int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *); + struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *); + int (*ipv6_route_input)(struct sk_buff *); + struct fib6_table * (*fib6_get_table)(struct net *, u32); + int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int); + int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int); + void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int); + u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *); + int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *); + void (*fib6_nh_release)(struct fib6_nh *); + void (*fib6_nh_release_dsts)(struct fib6_nh *); + void (*fib6_update_sernum)(struct net *, struct fib6_info *); + int (*ip6_del_rt)(struct net *, struct fib6_info *, bool); + void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *); + void (*udpv6_encap_enable)(); + void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool); + struct neigh_table *nd_tbl; + int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int (*)(struct net *, struct sock *, struct sk_buff *)); + struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *); }; -enum scsi_msg_byte { - COMMAND_COMPLETE = 0, - EXTENDED_MESSAGE = 1, - SAVE_POINTERS = 2, - RESTORE_POINTERS = 3, - DISCONNECT = 4, - INITIATOR_ERROR = 5, - ABORT_TASK_SET = 6, - MESSAGE_REJECT = 7, - NOP = 8, - MSG_PARITY_ERROR = 9, - LINKED_CMD_COMPLETE = 10, - LINKED_FLG_CMD_COMPLETE = 11, - TARGET_RESET = 12, - ABORT_TASK = 13, - CLEAR_TASK_SET = 14, - INITIATE_RECOVERY = 15, - RELEASE_RECOVERY = 16, - TERMINATE_IO_PROC = 17, - CLEAR_ACA = 22, - LOGICAL_UNIT_RESET = 23, - SIMPLE_QUEUE_TAG = 32, - HEAD_OF_QUEUE_TAG = 33, - ORDERED_QUEUE_TAG = 34, - IGNORE_WIDE_RESIDUE = 35, - ACA = 36, - QAS_REQUEST = 85, - BUS_DEVICE_RESET = 12, - ABORT = 6, +enum bug_trap_type { + BUG_TRAP_TYPE_NONE = 0, + BUG_TRAP_TYPE_WARN = 1, + BUG_TRAP_TYPE_BUG = 2, }; -struct request_sense; +struct sys_reg_desc___2 { + const char *name; + enum { + AA32_DIRECT___2 = 0, + AA32_LO___2 = 1, + AA32_HI___2 = 2, + } aarch32_map; + u8 Op0; + u8 Op1; + u8 CRn; + u8 CRm; + u8 Op2; + bool (*access)(struct kvm_vcpu___2 *, struct sys_reg_params *, const struct sys_reg_desc___2 *); + u64 (*reset)(struct kvm_vcpu___2 *, const struct sys_reg_desc___2 *); + int reg; + u64 val; + int (*__get_user)(struct kvm_vcpu___2 *, const struct sys_reg_desc___2 *, u64 *); + int (*set_user)(struct kvm_vcpu___2 *, const struct sys_reg_desc___2 *, u64); + unsigned int (*visibility)(const struct kvm_vcpu___2 *, const struct sys_reg_desc___2 *); +}; -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 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 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 io_tlb_area { + unsigned long used; + unsigned int index; + spinlock_t lock; }; -struct scsi_ioctl_command { - unsigned int inlen; - unsigned int outlen; - unsigned char data[0]; +struct io_tlb_slot { + phys_addr_t orig_addr; + size_t alloc_size; + unsigned int list; }; -struct scsi_idlun { - __u32 dev_id; - __u32 host_unique_id; +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 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 trace_event_data_offsets_swiotlb_bounced { + u32 dev_name; }; -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 ce_unbind { + struct clock_event_device *ce; + int res; }; -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 kallsym_iter { + loff_t pos; + loff_t pos_mod_end; + loff_t pos_ftrace_mod_end; + loff_t pos_bpf_end; + unsigned long value; + unsigned int nameoff; + char type; + char name[512]; + char module_name[56]; + int exported; + int show_value; }; -struct ata_acpi_hotplug_context { - struct acpi_hotplug_context hp; +struct bpf_iter__ksym { union { - struct ata_port *ap; - struct ata_device *dev; - } data; + struct bpf_iter_meta *meta; + }; + union { + struct kallsym_iter *ksym; + }; }; -struct ata_acpi_gtf { - u8 tf[7]; +struct eprobe_trace_entry_head { + struct trace_entry ent; }; -struct chip_probe { - char *name; - int (*probe_chip)(struct map_info *, __u32, unsigned long *, struct cfi_private *); +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; }; -typedef struct mtd_info *cfi_cmdset_fn_t(struct map_info *, int); - -struct s3c64xx_spi_port_config { - int fifo_lvl_mask[12]; - int rx_lvl_offset; - int tx_st_done; - int quirks; - int clk_div; - bool high_speed; - bool clk_from_cmu; - bool clk_ioclk; - bool has_loopback; +struct eprobe_data { + struct trace_event_file *file; + struct trace_eprobe *ep; }; -struct s3c64xx_spi_dma_data { - struct dma_chan *ch; - dma_cookie_t cookie; - enum dma_transfer_direction direction; +struct prog_poke_elem { + struct list_head list; + struct bpf_prog_aux *aux; }; -struct s3c64xx_spi_info; - -struct s3c64xx_spi_driver_data { - void *regs; - struct clk *clk; - struct clk *src_clk; - struct clk *ioclk; - struct platform_device *pdev; - struct spi_controller *master; - struct s3c64xx_spi_info *cntrlr_info; - spinlock_t lock; - unsigned long sfr_start; - struct completion xfer_completion; - unsigned int state; - unsigned int cur_mode; - unsigned int cur_bpw; - unsigned int cur_speed; - struct s3c64xx_spi_dma_data rx_dma; - struct s3c64xx_spi_dma_data tx_dma; - const struct s3c64xx_spi_port_config *port_conf; - unsigned int port_id; +struct bpf_event_entry { + struct perf_event *event; + struct file *perf_file; + struct file *map_file; + struct callback_head rcu; }; -struct s3c64xx_spi_info { - int src_clk_nr; - int num_cs; - bool no_cs; - bool polling; - int (*cfg_gpio)(); +struct bpf_iter_seq_array_map_info { + struct bpf_map *map; + void *percpu_value_buf; + u32 index; }; -struct s3c64xx_spi_csinfo { - u8 fb_delay; +enum vmpressure_levels { + VMPRESSURE_LOW = 0, + VMPRESSURE_MEDIUM = 1, + VMPRESSURE_CRITICAL = 2, + VMPRESSURE_NUM_LEVELS = 3, }; -struct iproc_mdiomux_desc { - void *mux_handle; - void *base; - struct device *dev; - struct mii_bus *mii_bus; - struct clk *core_clk; +enum vmpressure_modes { + VMPRESSURE_NO_PASSTHROUGH = 0, + VMPRESSURE_HIERARCHY = 1, + VMPRESSURE_LOCAL = 2, + VMPRESSURE_NUM_MODES = 3, }; -struct xgene_gstrings_stats { - char name[32]; - int offset; - u32 addr; - u32 mask; +struct vmpressure_event { + struct eventfd_ctx *efd; + enum vmpressure_levels level; + enum vmpressure_modes mode; + struct list_head node; }; -struct dprtc_cmd_open { - __le32 dprtc_id; +enum { + XA_CHECK_SCHED = 4096, }; -struct dprtc_cmd_set_irq_enable { - u8 en; - u8 pad[3]; - u8 irq_index; +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 dprtc_cmd_get_irq { - __le32 pad; - u8 irq_index; -} __attribute__((packed)); - -struct dprtc_rsp_get_irq_enable { - u8 en; +struct posix_acl_xattr_header { + __le32 a_version; }; -struct dprtc_cmd_set_irq_mask { - __le32 mask; - u8 irq_index; -} __attribute__((packed)); - -struct dprtc_rsp_get_irq_mask { - __le32 mask; +struct posix_acl_xattr_entry { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; }; -struct dprtc_cmd_get_irq_status { - __le32 status; - u8 irq_index; -} __attribute__((packed)); +typedef __kernel_uid32_t qid_t; -struct dprtc_rsp_get_irq_status { - __le32 status; +enum { + BIAS = 2147483648, }; -struct dprtc_cmd_clear_irq_status { - __le32 status; - u8 irq_index; -} __attribute__((packed)); - -struct mac_stats_string { - const char desc[32]; - unsigned long offset; +struct pde_opener { + struct list_head lh; + struct file *file; + bool closing; + struct completion *c; }; -enum hns_gmac_duplex_mdoe { - GMAC_HALF_DUPLEX_MODE = 0, - GMAC_FULL_DUPLEX_MODE = 1, +struct sysctl_alias { + const char *kernel_param; + const char *sysctl_param; }; -enum hns_port_mode { - GMAC_10M_MII = 0, - GMAC_100M_MII = 1, - GMAC_1000M_GMII = 2, - GMAC_10M_RGMII = 3, - GMAC_100M_RGMII = 4, - GMAC_1000M_RGMII = 5, - GMAC_10M_SGMII = 6, - GMAC_100M_SGMII = 7, - GMAC_1000M_SGMII = 8, - GMAC_10000M_SGMII = 9, +enum { + Opt_bsd_df___2 = 0, + Opt_minix_df___2 = 1, + Opt_grpid___2 = 2, + Opt_nogrpid___2 = 3, + Opt_resgid___2 = 4, + Opt_resuid___2 = 5, + Opt_sb___2 = 6, + Opt_err_cont___2 = 7, + Opt_err_panic___2 = 8, + Opt_err_ro___2 = 9, + Opt_nouid32___2 = 10, + Opt_debug___4 = 11, + Opt_oldalloc = 12, + Opt_orlov = 13, + Opt_nobh = 14, + Opt_user_xattr___2 = 15, + Opt_nouser_xattr = 16, + Opt_acl___3 = 17, + Opt_noacl = 18, + Opt_xip = 19, + Opt_dax___2 = 20, + Opt_ignore___2 = 21, + Opt_err___7 = 22, + Opt_quota___2 = 23, + Opt_usrquota___2 = 24, + Opt_grpquota___2 = 25, + Opt_reservation = 26, + Opt_noreservation = 27, }; -struct hns_gmac_port_mode_cfg { - enum hns_port_mode port_mode; - u32 max_frm_size; - u32 short_runts_thr; - u32 pad_enable; - u32 crc_add; - u32 an_enable; - u32 runt_pkt_en; - u32 strip_pad_en; +struct ext2_mount_options { + unsigned long s_mount_opt; + kuid_t s_resuid; + kgid_t s_resgid; }; -struct vfio { - struct class *device_class; - struct ida device_ida; +struct fat_cache { + struct list_head cache_list; + int nr_contig; + int fcluster; + int dcluster; }; -enum { - IOMMUFD_ACCESS_RW_READ = 0, - IOMMUFD_ACCESS_RW_WRITE = 1, - IOMMUFD_ACCESS_RW_KTHREAD = 2, - __IOMMUFD_ACCESS_RW_SLOW_PATH = 4, +struct fat_cache_id { + unsigned int id; + int nr_contig; + int fcluster; + int dcluster; }; -struct vfio_device_feature { - __u32 argsz; - __u32 flags; - __u8 data[0]; +struct nfs_callback_data { + unsigned int users; + struct svc_serv *serv; }; -struct vfio_device_feature_migration { - __u64 flags; +enum nfs4_callback_procnum { + CB_NULL = 0, + CB_COMPOUND = 1, }; -struct vfio_device_feature_dma_logging_control { - __u64 page_size; - __u32 num_ranges; - __u32 __reserved; - __u64 ranges; +struct crypto_istat_aead { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t err_cnt; }; -struct vfio_device_feature_dma_logging_range { - __u64 iova; - __u64 length; +struct crypto_aead_spawn { + struct crypto_spawn base; }; -struct vfio_device_feature_mig_data_size { - __u64 stop_copy_length; +struct crypto_report_aead { + char type[64]; + char geniv[64]; + unsigned int blocksize; + unsigned int maxauthsize; + unsigned int ivsize; }; -struct vfio_device_feature_mig_state { - __u32 device_state; - __s32 data_fd; -}; +typedef unsigned char u8___2; -struct vfio_device_feature_dma_logging_report { - __u64 iova; - __u64 length; - __u64 page_size; - __u64 bitmap; +struct rand_data { + void *hash_state; + __u64 prev_time; + __u64 last_delta; + __s64 last_delta2; + unsigned int flags; + unsigned int osr; + unsigned char *mem; + unsigned int memlocation; + unsigned int memblocks; + unsigned int memblocksize; + unsigned int memaccessloops; + unsigned int rct_count; + unsigned int apt_cutoff; + unsigned int apt_cutoff_permanent; + unsigned int apt_observations; + unsigned int apt_count; + unsigned int apt_base; + unsigned int health_failure; + unsigned int apt_base_set: 1; }; -typedef int (*iova_bitmap_fn_t)(struct iova_bitmap *, unsigned long, size_t, void *); - -struct dwc3_keystone { - struct device *dev; - void *usbss; - struct phy *usb3_phy; +enum bfqq_state_flags { + BFQQF_just_created = 0, + BFQQF_busy = 1, + BFQQF_wait_request = 2, + BFQQF_non_blocking_wait_rq = 3, + BFQQF_fifo_expire = 4, + BFQQF_has_short_ttime = 5, + BFQQF_sync = 6, + BFQQF_IO_bound = 7, + BFQQF_in_large_burst = 8, + BFQQF_softrt_update = 9, + BFQQF_coop = 10, + BFQQF_split_coop = 11, }; -enum 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 io_futex { + struct file *file; + union { + u32 __attribute__((btf_type_tag("user"))) *uaddr; + struct futex_waitv __attribute__((btf_type_tag("user"))) *uwaitv; + }; + unsigned long futex_val; + unsigned long futex_mask; + unsigned long futexv_owned; + u32 futex_flags; + unsigned int futex_nr; + bool futexv_unqueued; }; -struct amd_chipset_type { - enum amd_chipset_gen gen; - u8 rev; +struct io_futex_data { + union { + struct futex_q q; + struct io_cache_entry cache; + }; + struct io_kiocb *req; }; -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 redist_region; -enum xfer_buf_dir { - TO_XFER_BUF = 0, - FROM_XFER_BUF = 1, +struct gic_chip_data { + struct fwnode_handle *fwnode; + phys_addr_t dist_phys_base; + void *dist_base; + struct redist_region *redist_regions; + struct rdists rdists; + struct irq_domain *domain; + u64 redist_stride; + u32 nr_redist_regions; + u64 flags; + bool has_rss; + unsigned int ppi_nr; + struct partition_desc **ppi_descs; }; -struct tegra_usb_soc_info { - unsigned long flags; - unsigned int txfifothresh; - enum usb_dr_mode dr_mode; +struct redist_region { + void *redist_base; + phys_addr_t phys_base; + bool single_redist; }; -struct tegra_usb { - struct ci_hdrc_platform_data data; - struct platform_device *dev; - const struct tegra_usb_soc_info *soc; - struct usb_phy *phy; - struct clk *clk; - bool needs_double_reset; +enum gic_intid_range { + SGI_RANGE = 0, + PPI_RANGE = 1, + SPI_RANGE = 2, + EPPI_RANGE = 3, + ESPI_RANGE = 4, + LPI_RANGE = 5, + __INVALID_RANGE__ = 6, }; -struct armada38x_rtc; - -struct armada38x_rtc_data { - void (*update_mbus_timing)(struct armada38x_rtc *); - u32 (*read_rtc_reg)(struct armada38x_rtc *, u8); - void (*clear_isr)(struct armada38x_rtc *); - void (*unmask_interrupt)(struct armada38x_rtc *); - u32 alarm; +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 value_to_freq; - -struct armada38x_rtc { - struct rtc_device *rtc_dev; - void *regs; - void *regs_soc; - spinlock_t lock; - int irq; - bool initialized; - struct value_to_freq *val_to_freq; - const struct armada38x_rtc_data *data; +struct acpi_madt_generic_redistributor { + struct acpi_subtable_header header; + u16 reserved; + u64 base_address; + u32 length; +} __attribute__((packed)); + +struct vexpress_config_bridge_ops { + struct regmap * (*regmap_init)(struct device *, void *); + void (*regmap_exit)(struct regmap *, void *); }; -struct value_to_freq { - u32 value; - u8 freq; +struct vexpress_syscfg; + +struct vexpress_syscfg_func { + struct list_head list; + struct vexpress_syscfg *syscfg; + struct regmap *regmap; + int num_templates; + u32 template[0]; }; -struct owl_i2c_dev { - struct i2c_adapter adap; - struct i2c_msg *msg; - struct completion msg_complete; - struct clk *clk; - spinlock_t lock; +struct vexpress_syscfg { + struct device *dev; void *base; - unsigned long clk_rate; - u32 bus_freq; - u32 msg_ptr; - int err; + struct list_head funcs; }; -struct xgene_reboot_context { - struct device *dev; - void *csr; - u32 mask; - struct notifier_block restart_handler; +struct vexpress_config_bridge { + struct vexpress_config_bridge_ops *ops; + void *context; }; -struct sr_thermal; +struct hisi_inno_phy_priv; -struct sr_tmon { - unsigned int crit_temp; - unsigned int tmon_id; - struct sr_thermal *priv; +struct hisi_inno_phy_port { + struct reset_control *utmi_rst; + struct hisi_inno_phy_priv *priv; }; -struct sr_thermal { - void *regs; - unsigned int max_crit_temp; - struct sr_tmon tmon[6]; +struct hisi_inno_phy_priv { + void *mmio; + struct clk *ref_clk; + struct reset_control *por_rst; + unsigned int type; + struct hisi_inno_phy_port ports[2]; }; -enum scrub_type { - SCRUB_UNKNOWN = 0, - SCRUB_NONE = 1, - SCRUB_SW_PROG = 2, - SCRUB_SW_SRC = 3, - SCRUB_SW_PROG_SRC = 4, - SCRUB_SW_TUNABLE = 5, - SCRUB_HW_PROG = 6, - SCRUB_HW_SRC = 7, - SCRUB_HW_PROG_SRC = 8, - SCRUB_HW_TUNABLE = 9, +struct tegra_xusb_fuse_calibration { + u32 *hs_curr_level; + u32 hs_squelch; + u32 hs_term_range_adj; + u32 rpd_ctrl; }; -enum edac_mc_layer_type { - EDAC_MC_LAYER_BRANCH = 0, - EDAC_MC_LAYER_CHANNEL = 1, - EDAC_MC_LAYER_SLOT = 2, - EDAC_MC_LAYER_CHIP_SELECT = 3, - EDAC_MC_LAYER_ALL_MEM = 4, +struct tegra186_xusb_padctl_context { + u32 vbus_id; + u32 usb2_pad_mux; + u32 usb2_port_cap; + u32 ss_port_cap; }; -enum hw_event_mc_err_type { - HW_EVENT_ERR_CORRECTED = 0, - HW_EVENT_ERR_UNCORRECTED = 1, - HW_EVENT_ERR_DEFERRED = 2, - HW_EVENT_ERR_FATAL = 3, - HW_EVENT_ERR_INFO = 4, +struct tegra186_xusb_padctl { + struct tegra_xusb_padctl base; + void *ao_regs; + struct tegra_xusb_fuse_calibration calib; + struct clk *usb2_trk_clk; + unsigned int bias_pad_enable; + struct tegra186_xusb_padctl_context context; }; -enum dev_type { - DEV_UNKNOWN = 0, - DEV_X1 = 1, - DEV_X2 = 2, - DEV_X4 = 3, - DEV_X8 = 4, - DEV_X16 = 5, - DEV_X32 = 6, - DEV_X64 = 7, +struct tegra_xusb_usb3_lane { + struct tegra_xusb_lane base; }; -enum mem_type { - MEM_EMPTY = 0, - MEM_RESERVED = 1, - MEM_UNKNOWN = 2, - MEM_FPM = 3, - MEM_EDO = 4, - MEM_BEDO = 5, - MEM_SDR = 6, - MEM_RDR = 7, - MEM_DDR = 8, - MEM_RDDR = 9, - MEM_RMBS = 10, - MEM_DDR2 = 11, - MEM_FB_DDR2 = 12, - MEM_RDDR2 = 13, - MEM_XDR = 14, - MEM_DDR3 = 15, - MEM_RDDR3 = 16, - MEM_LRDDR3 = 17, - MEM_LPDDR3 = 18, - MEM_DDR4 = 19, - MEM_RDDR4 = 20, - MEM_LRDDR4 = 21, - MEM_LPDDR4 = 22, - MEM_DDR5 = 23, - MEM_RDDR5 = 24, - MEM_LRDDR5 = 25, - MEM_NVDIMM = 26, - MEM_WIO2 = 27, - MEM_HBM2 = 28, +struct tegra_xusb_usb3_pad { + struct tegra_xusb_pad base; + unsigned int enable; + struct mutex lock; }; -enum edac_type { - EDAC_UNKNOWN = 0, - EDAC_NONE = 1, - EDAC_RESERVED = 2, - EDAC_PARITY = 3, - EDAC_EC = 4, - EDAC_SECDED = 5, - EDAC_S2ECD2ED = 6, - EDAC_S4ECD4ED = 7, - EDAC_S8ECD8ED = 8, - EDAC_S16ECD16ED = 9, +struct mvebu_pinctrl_group { + const char *name; + const struct mvebu_mpp_ctrl *ctrl; + struct mvebu_mpp_ctrl_data *data; + struct mvebu_mpp_ctrl_setting *settings; + unsigned int num_settings; + unsigned int gid; + unsigned int *pins; + unsigned int npins; }; -struct mcidev_sysfs_attribute; +struct mvebu_pinctrl_function; -struct edac_raw_error_desc { - char location[256]; - char label[296]; - long grain; - u16 error_count; - enum hw_event_mc_err_type type; - int top_layer; - int mid_layer; - int low_layer; - unsigned long page_frame_number; - unsigned long offset_in_page; - unsigned long syndrome; - const char *msg; - const char *other_detail; +struct mvebu_pinctrl { + struct device *dev; + struct pinctrl_dev *pctldev; + struct pinctrl_desc desc; + struct mvebu_pinctrl_group *groups; + unsigned int num_groups; + struct mvebu_pinctrl_function *functions; + unsigned int num_functions; + u8 variant; }; -struct csrow_info; +struct mvebu_pinctrl_function { + const char *name; + const char **groups; + unsigned int num_groups; +}; -struct edac_mc_layer; +struct scu_gpio_priv { + struct gpio_chip chip; + struct mutex lock; + struct device *dev; + struct imx_sc_ipc *handle; +}; -struct dimm_info; +struct rockchip_pwm_regs { + unsigned long duty; + unsigned long period; + unsigned long cntr; + unsigned long ctrl; +}; -struct mem_ctl_info { - struct device dev; - struct bus_type *bus; - struct list_head link; - struct module *owner; - unsigned long mtype_cap; - unsigned long edac_ctl_cap; - unsigned long edac_cap; - unsigned long scrub_cap; - enum scrub_type scrub_mode; - int (*set_sdram_scrub_rate)(struct mem_ctl_info *, u32); - int (*get_sdram_scrub_rate)(struct mem_ctl_info *); - void (*edac_check)(struct mem_ctl_info *); - unsigned long (*ctl_page_to_phys)(struct mem_ctl_info *, unsigned long); - int mc_idx; - struct csrow_info **csrows; - unsigned int nr_csrows; - unsigned int num_cschannel; - unsigned int n_layers; - struct edac_mc_layer *layers; - bool csbased; - unsigned int tot_dimms; - struct dimm_info **dimms; - struct device *pdev; - const char *mod_name; - const char *ctl_name; - const char *dev_name; - void *pvt_info; - unsigned long start_time; - u32 ce_noinfo_count; - u32 ue_noinfo_count; - u32 ue_mc; - u32 ce_mc; - struct completion complete; - const struct mcidev_sysfs_attribute *mc_driver_sysfs_attributes; - struct delayed_work work; - struct edac_raw_error_desc error_desc; - int op_state; - struct dentry *debugfs; - u8 fake_inject_layer[3]; - bool fake_inject_ue; - u16 fake_inject_count; +struct rockchip_pwm_data { + struct rockchip_pwm_regs regs; + unsigned int prescaler; + bool supports_polarity; + bool supports_lock; + u32 enable_conf; }; -struct rank_info; +struct rockchip_pwm_chip { + struct pwm_chip chip; + struct clk *clk; + struct clk *pclk; + const struct rockchip_pwm_data *data; + void *base; +}; -struct csrow_info { - struct device dev; - unsigned long first_page; - unsigned long last_page; - unsigned long page_mask; - int csrow_idx; - u32 ue_count; - u32 ce_count; - struct mem_ctl_info *mci; - u32 nr_channels; - struct rank_info **channels; +enum dw_pcie_app_clk { + DW_PCIE_DBI_CLK = 0, + DW_PCIE_MSTR_CLK = 1, + DW_PCIE_SLV_CLK = 2, + DW_PCIE_NUM_APP_CLKS = 3, }; -struct rank_info { - int chan_idx; - struct csrow_info *csrow; - struct dimm_info *dimm; - u32 ce_count; +enum dw_pcie_core_clk { + DW_PCIE_PIPE_CLK = 0, + DW_PCIE_CORE_CLK = 1, + DW_PCIE_AUX_CLK = 2, + DW_PCIE_REF_CLK = 3, + DW_PCIE_NUM_CORE_CLKS = 4, }; -struct dimm_info { - struct device dev; - char label[32]; - unsigned int location[3]; - struct mem_ctl_info *mci; - unsigned int idx; - u32 grain; - enum dev_type dtype; - enum mem_type mtype; - enum edac_type edac_mode; - u32 nr_pages; - unsigned int csrow; - unsigned int cschannel; - u16 smbios_handle; - u32 ce_count; - u32 ue_count; +enum dw_pcie_app_rst { + DW_PCIE_DBI_RST = 0, + DW_PCIE_MSTR_RST = 1, + DW_PCIE_SLV_RST = 2, + DW_PCIE_NUM_APP_RSTS = 3, }; -struct edac_mc_layer { - enum edac_mc_layer_type type; - unsigned int size; - bool is_virt_csrow; +enum dw_pcie_core_rst { + DW_PCIE_NON_STICKY_RST = 0, + DW_PCIE_STICKY_RST = 1, + DW_PCIE_CORE_RST = 2, + DW_PCIE_PIPE_RST = 3, + DW_PCIE_PHY_RST = 4, + DW_PCIE_HOT_RST = 5, + DW_PCIE_PWR_RST = 6, + DW_PCIE_NUM_CORE_RSTS = 7, }; -typedef void (*btf_trace_mmc_request_start)(void *, struct mmc_host *, struct mmc_request *); +enum dw_edma_chip_flags { + DW_EDMA_CHIP_LOCAL = 1, +}; -typedef void (*btf_trace_mmc_request_done)(void *, struct mmc_host *, struct mmc_request *); +struct dmt_videomode { + u32 dmt_id; + u32 std_2byte_code; + u32 cvt_3byte_code; + const struct fb_videomode *mode; +}; -struct trace_event_raw_mmc_request_start { - struct trace_entry ent; - u32 cmd_opcode; - u32 cmd_arg; - unsigned int cmd_flags; - unsigned int cmd_retries; - u32 stop_opcode; - u32 stop_arg; - unsigned int stop_flags; - unsigned int stop_retries; - u32 sbc_opcode; - u32 sbc_arg; - unsigned int sbc_flags; - unsigned int sbc_retries; - unsigned int blocks; - unsigned int blk_addr; - unsigned int blksz; - unsigned int data_flags; - int tag; - unsigned int can_retune; - unsigned int doing_retune; - unsigned int retune_now; - int need_retune; - int hold_retune; - unsigned int retune_period; - struct mmc_request *mrq; - u32 __data_loc_name; - char __data[0]; +struct logo_data { + int depth; + int needs_directpalette; + int needs_truepalette; + int needs_cmapreset; + const struct linux_logo *logo; }; -struct trace_event_raw_mmc_request_done { - struct trace_entry ent; - u32 cmd_opcode; - int cmd_err; - u32 cmd_resp[4]; - unsigned int cmd_retries; - u32 stop_opcode; - int stop_err; - u32 stop_resp[4]; - unsigned int stop_retries; - u32 sbc_opcode; - int sbc_err; - u32 sbc_resp[4]; - unsigned int sbc_retries; - unsigned int bytes_xfered; - int data_err; - int tag; - unsigned int can_retune; - unsigned int doing_retune; - unsigned int retune_now; - int need_retune; - int hold_retune; - unsigned int retune_period; - struct mmc_request *mrq; - u32 __data_loc_name; - char __data[0]; +struct acpi_handle_list { + u32 count; + acpi_handle *handles; }; -struct trace_event_data_offsets_mmc_request_start { - u32 name; +struct acpi_thermal_trip { + unsigned long temp_dk; + struct acpi_handle_list devices; }; -struct trace_event_data_offsets_mmc_request_done { - u32 name; +struct acpi_thermal_passive { + struct acpi_thermal_trip trip; + unsigned long tc1; + unsigned long tc2; + unsigned long tsp; }; -struct sdhci_msm_variant_ops; +struct acpi_thermal_active { + struct acpi_thermal_trip trip; +}; -struct sdhci_msm_offset; +struct acpi_thermal_trips { + struct acpi_thermal_passive passive; + struct acpi_thermal_active active[10]; +}; -struct sdhci_msm_variant_info { - bool mci_removed; - bool restore_dll_config; - const struct sdhci_msm_variant_ops *var_ops; - const struct sdhci_msm_offset *offset; +struct acpi_thermal { + struct acpi_device *device; + acpi_bus_id name; + unsigned long temp_dk; + unsigned long last_temp_dk; + unsigned long polling_frequency; + volatile u8 zombie; + struct acpi_thermal_trips trips; + struct thermal_trip *trip_table; + 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 sdhci_msm_variant_ops { - u32 (*msm_readl_relaxed)(struct sdhci_host *, u32); - void (*msm_writel_relaxed)(u32, struct sdhci_host *, u32); +struct adjust_trip_data { + struct acpi_thermal *tz; + u32 event; }; -struct sdhci_msm_offset { - u32 core_hc_mode; - u32 core_mci_data_cnt; - u32 core_mci_status; - u32 core_mci_fifo_cnt; - u32 core_mci_version; - u32 core_generics; - u32 core_testbus_config; - u32 core_testbus_sel2_bit; - u32 core_testbus_ena; - u32 core_testbus_sel2; - u32 core_pwrctl_status; - u32 core_pwrctl_mask; - u32 core_pwrctl_clear; - u32 core_pwrctl_ctl; - u32 core_sdcc_debug_reg; - u32 core_dll_config; - u32 core_dll_status; - u32 core_vendor_spec; - u32 core_vendor_spec_adma_err_addr0; - u32 core_vendor_spec_adma_err_addr1; - u32 core_vendor_spec_func2; - u32 core_vendor_spec_capabilities0; - u32 core_ddr_200_cfg; - u32 core_vendor_spec3; - u32 core_dll_config_2; - u32 core_dll_config_3; - u32 core_ddr_config_old; - u32 core_ddr_config; - u32 core_dll_usr_ctl; +struct acpi_thermal_bind_data { + struct thermal_zone_device *thermal; + struct thermal_cooling_device *cdev; + bool bind; }; -struct sdhci_msm_host { - struct platform_device *pdev; - void *core_mem; - int pwr_irq; - struct clk *bus_clk; - struct clk *xo_clk; - struct clk_bulk_data bulk_clks[4]; - unsigned long clk_rate; - struct mmc_host *mmc; - bool use_14lpp_dll_reset; - bool tuning_done; - bool calibration_done; - u8 saved_tuning_phase; - bool use_cdclp533; - u32 curr_pwr_state; - u32 curr_io_level; - wait_queue_head_t pwr_irq_wait; - bool pwr_irq_flag; - u32 caps_0; - bool mci_removed; - bool restore_dll_config; - const struct sdhci_msm_variant_ops *var_ops; - const struct sdhci_msm_offset *offset; - bool use_cdr; - u32 transfer_mode; - bool updated_ddr_cfg; - bool uses_tassadar_dll; - u32 dll_config; - u32 ddr_config; - bool vqmmc_enabled; +enum iproc_arm_pll_fid { + ARM_PLL_FID_CRYSTAL_CLK = 0, + ARM_PLL_FID_SYS_CLK = 2, + ARM_PLL_FID_CH0_SLOW_CLK = 6, + ARM_PLL_FID_CH1_FAST_CLK = 7, }; -enum scmi_voltage_level_mode { - SCMI_VOLTAGE_LEVEL_SET_AUTO = 0, - SCMI_VOLTAGE_LEVEL_SET_SYNC = 1, +struct iproc_arm_pll { + struct clk_hw hw; + void *base; + unsigned long rate; }; -struct scmi_voltage_info; +struct clk_imx8_acm_sel; -struct scmi_voltage_proto_ops { - int (*num_domains_get)(const struct scmi_protocol_handle *); - const struct scmi_voltage_info * (*info_get)(const struct scmi_protocol_handle *, u32); - int (*config_set)(const struct scmi_protocol_handle *, u32, u32); - int (*config_get)(const struct scmi_protocol_handle *, u32, u32 *); - int (*level_set)(const struct scmi_protocol_handle *, u32, enum scmi_voltage_level_mode, s32); - int (*level_get)(const struct scmi_protocol_handle *, u32, s32 *); +struct imx8_acm_soc_data { + struct clk_imx8_acm_sel *sels; + unsigned int num_sels; }; -struct scmi_voltage_info { - unsigned int id; - bool segmented; - bool negative_volts_allowed; - bool async_level_set; - char name[64]; - unsigned int num_levels; - int *levels_uv; +struct clk_imx8_acm_sel { + const char *name; + int clkid; + const struct clk_parent_data *parents; + int num_parents; + u32 reg; + u8 shift; + u8 width; }; -enum scmi_voltage_protocol_cmd { - VOLTAGE_DOMAIN_ATTRIBUTES = 3, - VOLTAGE_DESCRIBE_LEVELS = 4, - VOLTAGE_CONFIG_SET = 5, - VOLTAGE_CONFIG_GET = 6, - VOLTAGE_LEVEL_SET = 7, - VOLTAGE_LEVEL_GET = 8, - VOLTAGE_DOMAIN_NAME_GET = 9, +struct clk_imx_acm_pm_domains { + struct device **pd_dev; + struct device_link **pd_dev_link; + int num_domains; }; -struct voltage_info { - unsigned int version; - unsigned int num_domains; - struct scmi_voltage_info *domains; +struct imx8_acm_priv { + struct clk_imx_acm_pm_domains dev_pm; + const struct imx8_acm_soc_data *soc_data; + void *reg; + u32 regs[25]; }; -struct scmi_msg_resp_domain_attributes { - __le32 attr; - u8 name[16]; +struct rockchip_ddrclk { + struct clk_hw hw; + void *reg_base; + int mux_offset; + int mux_shift; + int mux_width; + int div_shift; + int div_width; + int ddr_flag; + spinlock_t *lock; }; -struct scmi_volt_ipriv { +struct qm_portal_config { + void *addr_virt_ce; + void *addr_virt_ci; struct device *dev; - struct scmi_voltage_info *v; + struct iommu_domain *iommu_domain; + struct list_head list; + int cpu; + int irq; + u16 channel; + u32 pools; }; -struct scmi_msg_cmd_describe_levels { - __le32 domain_id; - __le32 level_index; +struct __qm_mcr_querycongestion { + u32 state[8]; }; -struct scmi_msg_resp_describe_levels { - __le32 flags; - __le32 voltage[0]; +struct qman_cgrs { + struct __qm_mcr_querycongestion q; }; -struct scmi_msg_cmd_config_set { - __le32 domain_id; - __le32 config; -}; +struct imx_sc_pd_range; -struct scmi_msg_cmd_level_set { - __le32 domain_id; - __le32 flags; - __le32 voltage_level; +struct imx_sc_pd_soc { + const struct imx_sc_pd_range *pd_ranges; + u8 num_ranges; }; -struct scmi_resp_voltage_level_set_complete { - __le32 domain_id; - __le32 voltage_level; +struct imx_sc_pd_range { + char *name; + u32 rsrc; + u8 num; + bool postfix; + u8 start_from; }; -enum mrq_debug_commands { - CMD_DEBUG_OPEN_RO = 0, - CMD_DEBUG_OPEN_WO = 1, - CMD_DEBUG_READ = 2, - CMD_DEBUG_WRITE = 3, - CMD_DEBUG_CLOSE = 4, - CMD_DEBUG_MAX = 5, +struct imx_sc_pm_domain { + struct generic_pm_domain pd; + char name[20]; + u32 rsrc; }; -enum mrq_debugfs_commands { - CMD_DEBUGFS_READ = 1, - CMD_DEBUGFS_WRITE = 2, - CMD_DEBUGFS_DUMPDIR = 3, - CMD_DEBUGFS_MAX = 4, +struct req_get_resource_mode { + u16 resource; }; -struct seqbuf { - char *buf; - size_t pos; - size_t size; +struct resp_get_resource_mode { + u8 mode; }; -struct cmd_debugfs_fileop_request { - uint32_t fnameaddr; - uint32_t fnamelen; - uint32_t dataaddr; - uint32_t datalen; +struct imx_sc_msg_req_get_resource_power_mode { + struct imx_sc_rpc_msg hdr; + union { + struct req_get_resource_mode req; + struct resp_get_resource_mode resp; + } data; + long: 0; }; -struct cmd_debugfs_dumpdir_request { - uint32_t dataaddr; - uint32_t datalen; +struct imx_sc_msg_req_set_resource_power_mode { + struct imx_sc_rpc_msg hdr; + u16 resource; + u8 mode; }; -struct mrq_debugfs_request { - uint32_t cmd; - union { - struct cmd_debugfs_fileop_request fop; - struct cmd_debugfs_dumpdir_request dumpdir; - }; -}; +struct vring_desc; -struct cmd_debugfs_fileop_response { - uint32_t reserved; - uint32_t nbytes; -}; +typedef struct vring_desc vring_desc_t; -struct cmd_debugfs_dumpdir_response { - uint32_t reserved; - uint32_t nbytes; -}; +struct vring_avail; -struct mrq_debugfs_response { - int32_t reserved; - union { - struct cmd_debugfs_fileop_response fop; - struct cmd_debugfs_dumpdir_response dumpdir; - }; -}; +typedef struct vring_avail vring_avail_t; -struct cmd_debug_fopen_request { - char name[116]; -}; +struct vring_used; -struct cmd_debug_fread_request { - uint32_t fd; -}; +typedef struct vring_used vring_used_t; -struct cmd_debug_fwrite_request { - uint32_t fd; - uint32_t datalen; - char data[108]; +struct vring { + unsigned int num; + vring_desc_t *desc; + vring_avail_t *avail; + vring_used_t *used; }; -struct cmd_debug_fclose_request { - uint32_t fd; -}; +struct vring_desc_state_split; -struct mrq_debug_request { - uint32_t cmd; - union { - struct cmd_debug_fopen_request fop; - struct cmd_debug_fread_request frd; - struct cmd_debug_fwrite_request fwr; - struct cmd_debug_fclose_request fcl; - }; -}; +struct vring_desc_extra; -struct cmd_debug_fopen_response { - uint32_t fd; - uint32_t datalen; +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 cmd_debug_fread_response { - uint32_t readlen; - char data[116]; +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 mrq_debug_response { +struct vring_virtqueue { + struct virtqueue vq; + bool packed_ring; + bool use_dma_api; + bool weak_barriers; + bool broken; + bool indirect; + bool event; + bool premapped; + bool do_unmap; + unsigned int free_head; + unsigned int num_added; + u16 last_used_idx; + bool event_triggered; union { - struct cmd_debug_fopen_response fop; - struct cmd_debug_fread_response frd; + struct vring_virtqueue_split split; + struct vring_virtqueue_packed packed; }; + bool (*notify)(struct virtqueue *); + bool we_own_ring; + struct device *dma_dev; }; -struct bcm2835_mbox { - void *regs; - spinlock_t lock; - struct mbox_controller controller; +struct vring_desc { + __virtio64 addr; + __virtio32 len; + __virtio16 flags; + __virtio16 next; }; -struct brcmstb_memc_data { - u32 srpd_offset; +struct vring_avail { + __virtio16 flags; + __virtio16 idx; + __virtio16 ring[0]; }; -struct brcmstb_memc { - struct device *dev; - void *ddr_ctrl; - unsigned int timeout_cycles; - u32 frequency; - u32 srpd_offset; +struct vring_used_elem { + __virtio32 id; + __virtio32 len; }; -typedef void (*btf_trace_mc_event)(void *, const unsigned int, const char *, const char *, const int, const u8, const s8, const s8, const s8, unsigned long, const u8, unsigned long, const char *); - -typedef void (*btf_trace_arm_event)(void *, const struct cper_sec_proc_arm *); +typedef struct vring_used_elem vring_used_elem_t; -typedef void (*btf_trace_non_standard_event)(void *, const guid_t *, const guid_t *, const char *, const u8, const u8 *, const u32); +struct vring_used { + __virtio16 flags; + __virtio16 idx; + vring_used_elem_t ring[0]; +}; -typedef void (*btf_trace_aer_event)(void *, const char *, const u32, const u8, const u8, struct aer_header_log_regs *); +struct vring_desc_state_split { + void *data; + struct vring_desc *indir_desc; +}; -typedef void (*btf_trace_memory_failure_event)(void *, unsigned long, int, int); +struct vring_desc_extra { + dma_addr_t addr; + u32 len; + u16 flags; + u16 next; +}; -struct trace_event_raw_mc_event { - struct trace_entry ent; - unsigned int error_type; - u32 __data_loc_msg; - u32 __data_loc_label; - u16 error_count; - u8 mc_index; - s8 top_layer; - s8 middle_layer; - s8 lower_layer; - long address; - u8 grain_bits; - long syndrome; - u32 __data_loc_driver_detail; - char __data[0]; +struct vring_packed_desc { + __le64 addr; + __le32 len; + __le16 id; + __le16 flags; }; -struct trace_event_raw_arm_event { - struct trace_entry ent; - u64 mpidr; - u64 midr; - u32 running_state; - u32 psci_state; - u8 affinity; - char __data[0]; +struct vring_packed_desc_event { + __le16 off_wrap; + __le16 flags; }; -struct trace_event_raw_non_standard_event { - struct trace_entry ent; - char sec_type[16]; - char fru_id[16]; - u32 __data_loc_fru_text; - u8 sev; - u32 len; - u32 __data_loc_buf; - char __data[0]; +struct vring_desc_state_packed { + void *data; + struct vring_packed_desc *indir_desc; + u16 num; + u16 last; }; -struct trace_event_raw_aer_event { - struct trace_entry ent; - u32 __data_loc_dev_name; - u32 status; - u8 severity; - u8 tlp_header_valid; - u32 tlp_header[4]; - char __data[0]; +struct qcom_aoss_reset_map; + +struct qcom_aoss_desc { + const struct qcom_aoss_reset_map *resets; + size_t num_resets; }; -struct trace_event_raw_memory_failure_event { - struct trace_entry ent; - unsigned long pfn; - int type; - int result; - char __data[0]; +struct qcom_aoss_reset_map { + unsigned int reg; }; -struct trace_event_data_offsets_mc_event { - u32 msg; - u32 label; - u32 driver_detail; +struct qcom_aoss_reset_data { + struct reset_controller_dev rcdev; + void *base; + const struct qcom_aoss_desc *desc; }; -struct trace_event_data_offsets_non_standard_event { - u32 fru_text; - u32 buf; +struct tegra_uart { + struct clk *clk; + struct reset_control *rst; + int line; }; -struct trace_event_data_offsets_aer_event { - u32 dev_name; +struct memdev { + const char *name; + const struct file_operations *fops; + fmode_t fmode; + umode_t mode; }; -struct trace_event_data_offsets_arm_event {}; +typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); -struct trace_event_data_offsets_memory_failure_event {}; +enum mtk_iommu_plat { + M4U_MT2712 = 0, + M4U_MT6779 = 1, + M4U_MT6795 = 2, + M4U_MT8167 = 3, + M4U_MT8173 = 4, + M4U_MT8183 = 5, + M4U_MT8186 = 6, + M4U_MT8188 = 7, + M4U_MT8192 = 8, + M4U_MT8195 = 9, + M4U_MT8365 = 10, +}; -struct dapm_kcontrol_data { - unsigned int value; - struct snd_soc_dapm_widget *widget; - struct list_head paths; - struct snd_soc_dapm_widget_list *wlist; +struct mtk_iommu_iova_region; + +struct mtk_iommu_plat_data { + enum mtk_iommu_plat m4u_plat; + u32 flags; + u32 inv_sel_reg; + char *pericfg_comp_str; + struct list_head *hw_list; + struct { + unsigned int iova_region_nr; + const struct mtk_iommu_iova_region *iova_region; + const u32 (*iova_region_larb_msk)[32]; + }; + struct { + u8 banks_num; + bool banks_enable[5]; + unsigned int banks_portmsk[5]; + }; + unsigned char larbid_remap[64]; }; -struct snd_soc_dapm_pinctrl_priv { - const char *active_state; - const char *sleep_state; +struct mtk_iommu_iova_region { + dma_addr_t iova_base; + unsigned long long size; }; -struct bpf_dummy_ops_state { - int val; +struct mtk_iommu_suspend_reg { + u32 misc_ctrl; + u32 dcm_dis; + u32 ctrl_reg; + u32 vld_pa_rng; + u32 wr_len_ctrl; + u32 int_control[5]; + u32 int_main_control[5]; + u32 ivrp_paddr[5]; }; -struct bpf_dummy_ops_test_args { - u64 args[12]; - struct bpf_dummy_ops_state state; +struct mtk_iommu_bank_data; + +struct mtk_iommu_domain; + +struct mtk_iommu_data { + struct device *dev; + struct clk *bclk; + phys_addr_t protect_base; + struct mtk_iommu_suspend_reg reg; + struct iommu_group *m4u_group[8]; + bool enable_4GB; + struct iommu_device iommu; + const struct mtk_iommu_plat_data *plat_data; + struct device *smicomm_dev; + struct mtk_iommu_bank_data *bank; + struct mtk_iommu_domain *share_dom; + struct regmap *pericfg; + struct mutex mutex; + struct list_head *hw_list; + struct list_head hw_list_head; + struct list_head list; + struct mtk_smi_larb_iommu larb_imu[32]; }; -typedef int (*dummy_ops_test_ret_fn)(struct bpf_dummy_ops_state *, ...); +struct mtk_iommu_bank_data { + void *base; + int irq; + u8 id; + struct device *parent_dev; + struct mtk_iommu_data *parent_data; + spinlock_t tlb_lock; + struct mtk_iommu_domain *m4u_dom; +}; -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 mtk_iommu_domain { + struct io_pgtable_cfg cfg; + struct io_pgtable_ops *iop; + struct mtk_iommu_bank_data *bank; + struct iommu_domain domain; + struct mutex mutex; }; -struct plca_reply_data { - struct ethnl_reply_data base; - struct phy_plca_cfg plca_cfg; - struct phy_plca_status plca_st; +struct cache_type_info { + const char *size_prop; + const char *line_size_props[2]; + const char *nr_sets_prop; }; -struct arphdr { - __be16 ar_hrd; - __be16 ar_pro; - unsigned char ar_hln; - unsigned char ar_pln; - __be16 ar_op; +struct builtin_fw { + char *name; + void *data; + unsigned long size; }; -struct arpreq { - struct sockaddr arp_pa; - struct sockaddr arp_ha; - int arp_flags; - struct sockaddr arp_netmask; - char arp_dev[16]; +struct node_attr { + struct device_attribute attr; + enum node_states state; }; -struct netdev_notifier_change_info { - struct netdev_notifier_info info; - unsigned int flags_changed; +enum cache_indexing { + NODE_CACHE_DIRECT_MAP = 0, + NODE_CACHE_INDEXED = 1, + NODE_CACHE_OTHER = 2, }; -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; +enum cache_write_policy { + NODE_CACHE_WRITE_BACK = 0, + NODE_CACHE_WRITE_THROUGH = 1, + NODE_CACHE_WRITE_OTHER = 2, }; -struct svc_xpt_user { - struct list_head list; - void (*callback)(struct svc_xpt_user *); +struct node_cache_attrs { + enum cache_indexing indexing; + enum cache_write_policy write_policy; + u64 size; + u16 line_size; + u8 level; }; -struct mac_tfm_ctx { - struct crypto_aes_ctx key; - long: 0; - u8 consts[0]; +struct node_cache_info { + struct device dev; + struct list_head node; + struct node_cache_attrs cache_attrs; }; -struct crypto_aes_xts_ctx { - struct crypto_aes_ctx key1; - long: 0; - struct crypto_aes_ctx key2; - long: 0; +struct node_access_nodes { + struct device dev; + struct list_head list_node; + unsigned int access; + struct node_hmem_attrs hmem_attrs; }; -struct crypto_aes_essiv_cbc_ctx { - struct crypto_aes_ctx key1; - long: 0; - struct crypto_aes_ctx key2; - struct crypto_shash *hash; +enum { + MT6360_SLAVE_TCPC = 0, + MT6360_SLAVE_PMIC = 1, + MT6360_SLAVE_LDO = 2, + MT6360_SLAVE_PMU = 3, + MT6360_SLAVE_MAX = 4, }; -struct mac_desc_ctx { - unsigned int len; - u8 dg[16]; +struct mt6360_ddata { + struct i2c_client *i2c[4]; + struct device *dev; + struct regmap *regmap; + struct regmap_irq_chip_data *irq_data; + unsigned int chip_rev; + u8 crc8_tbl[256]; }; -typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int); +enum { + ACTION_FAIL = 0, + ACTION_REPREP = 1, + ACTION_DELAYED_REPREP = 2, + ACTION_RETRY = 3, + ACTION_DELAYED_RETRY = 4, +}; -typedef void (*btf_trace_contention_end)(void *, void *, int); +enum scsi_host_prot_capabilities { + SHOST_DIF_TYPE1_PROTECTION = 1, + SHOST_DIF_TYPE2_PROTECTION = 2, + SHOST_DIF_TYPE3_PROTECTION = 4, + SHOST_DIX_TYPE0_PROTECTION = 8, + SHOST_DIX_TYPE1_PROTECTION = 16, + SHOST_DIX_TYPE2_PROTECTION = 32, + SHOST_DIX_TYPE3_PROTECTION = 64, +}; -struct trace_event_raw_contention_begin { - struct trace_entry ent; - void *lock_addr; - unsigned int flags; - char __data[0]; +struct scsi_event { + enum scsi_device_event evt_type; + struct list_head node; }; -struct trace_event_raw_contention_end { - struct trace_entry ent; - void *lock_addr; - int ret; - char __data[0]; +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, }; -struct mutex_waiter { - struct list_head list; - struct task_struct *task; - struct ww_acquire_ctx *ww_ctx; +enum { + SD_DEF_XFER_BLOCKS = 65535, + SD_MAX_XFER_BLOCKS = 4294967295, + SD_MAX_WS10_BLOCKS = 65535, + SD_MAX_WS16_BLOCKS = 8388607, }; -struct trace_event_data_offsets_contention_begin {}; +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, +}; -struct trace_event_data_offsets_contention_end {}; +enum { + SD_ZERO_WRITE = 0, + SD_ZERO_WS = 1, + SD_ZERO_WS16_UNMAP = 2, + SD_ZERO_WS10_UNMAP = 3, +}; -struct profile_hit { - u32 pc; - u32 hits; +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, }; -typedef void (*btf_trace_csd_queue_cpu)(void *, const unsigned int, unsigned long, smp_call_func_t, struct __call_single_data *); +enum { + SD_EXT_CDB_SIZE = 32, + SD_MEMPOOL_SIZE = 2, +}; -typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, struct __call_single_data *); +struct hynix_read_retry_otp { + int nregs; + const u8 *regs; + const u8 *values; + int page; + int size; +}; -typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, struct __call_single_data *); +struct hynix_read_retry; -struct call_function_data { - call_single_data_t __attribute__((btf_type_tag("percpu"))) *csd; - cpumask_var_t cpumask; - cpumask_var_t cpumask_ipi; +struct hynix_nand { + const struct hynix_read_retry *read_retry; }; -struct trace_event_raw_csd_queue_cpu { - struct trace_entry ent; - unsigned int cpu; - void *callsite; - void *func; - void *csd; - char __data[0]; +struct hynix_read_retry { + int nregs; + const u8 *regs; + u8 values[0]; }; -struct trace_event_raw_csd_function { - struct trace_entry ent; - void *func; - void *csd; - char __data[0]; +struct sun6i_spi_cfg { + unsigned long fifo_depth; + bool has_clk_ctl; + u32 mode_bits; }; -struct smp_call_on_cpu_struct { - struct work_struct work; +struct sun6i_spi { + struct spi_controller *master; + void *base_addr; + dma_addr_t dma_addr_rx; + dma_addr_t dma_addr_tx; + struct clk *hclk; + struct clk *mclk; + struct reset_control *rstc; struct completion done; - int (*func)(void *); - void *data; - int ret; - int cpu; + struct completion dma_rx_done; + const u8 *tx_buf; + u8 *rx_buf; + int len; + const struct sun6i_spi_cfg *cfg; }; -struct trace_event_data_offsets_csd_queue_cpu {}; - -struct trace_event_data_offsets_csd_function {}; - -enum { - TRACE_FUNC_NO_OPTS = 0, - TRACE_FUNC_OPT_STACK = 1, - TRACE_FUNC_OPT_NO_REPEATS = 2, - TRACE_FUNC_OPT_HIGHEST_BIT = 4, +struct mv3310_chip { + bool (*has_downshift)(struct phy_device *); + void (*init_supported_interfaces)(unsigned long *); + int (*get_mactype)(struct phy_device *); + int (*set_mactype)(struct phy_device *, int); + int (*select_mactype)(unsigned long *); + int (*init_interface)(struct phy_device *, int); + int (*hwmon_read_temp_reg)(struct phy_device *); }; -enum bpf_iter_feature { - BPF_ITER_RESCHED = 1, +enum { + MV_PMA_FW_VER0 = 49169, + MV_PMA_FW_VER1 = 49170, + MV_PMA_21X0_PORT_CTRL = 49226, + MV_PMA_21X0_PORT_CTRL_SWRST = 32768, + MV_PMA_21X0_PORT_CTRL_MACTYPE_MASK = 7, + MV_PMA_21X0_PORT_CTRL_MACTYPE_USXGMII = 0, + MV_PMA_2180_PORT_CTRL_MACTYPE_DXGMII = 1, + MV_PMA_2180_PORT_CTRL_MACTYPE_QXGMII = 2, + MV_PMA_21X0_PORT_CTRL_MACTYPE_5GBASER = 4, + MV_PMA_21X0_PORT_CTRL_MACTYPE_5GBASER_NO_SGMII_AN = 5, + MV_PMA_21X0_PORT_CTRL_MACTYPE_10GBASER_RATE_MATCH = 6, + MV_PMA_BOOT = 49232, + MV_PMA_BOOT_FATAL = 1, + MV_PCS_BASE_T = 0, + MV_PCS_BASE_R = 4096, + MV_PCS_1000BASEX = 8192, + MV_PCS_CSCR1 = 32768, + MV_PCS_CSCR1_ED_MASK = 768, + MV_PCS_CSCR1_ED_OFF = 0, + MV_PCS_CSCR1_ED_RX = 512, + MV_PCS_CSCR1_ED_NLP = 768, + MV_PCS_CSCR1_MDIX_MASK = 96, + MV_PCS_CSCR1_MDIX_MDI = 0, + MV_PCS_CSCR1_MDIX_MDIX = 32, + MV_PCS_CSCR1_MDIX_AUTO = 96, + MV_PCS_DSC1 = 32771, + MV_PCS_DSC1_ENABLE = 512, + MV_PCS_DSC1_10GBT = 448, + MV_PCS_DSC1_1GBR = 56, + MV_PCS_DSC1_100BTX = 7, + MV_PCS_DSC2 = 32772, + MV_PCS_DSC2_2P5G = 61440, + MV_PCS_DSC2_5G = 3840, + MV_PCS_CSSR1 = 32776, + MV_PCS_CSSR1_SPD1_MASK = 49152, + MV_PCS_CSSR1_SPD1_SPD2 = 49152, + MV_PCS_CSSR1_SPD1_1000 = 32768, + MV_PCS_CSSR1_SPD1_100 = 16384, + MV_PCS_CSSR1_SPD1_10 = 0, + MV_PCS_CSSR1_DUPLEX_FULL = 8192, + MV_PCS_CSSR1_RESOLVED = 2048, + MV_PCS_CSSR1_MDIX = 64, + MV_PCS_CSSR1_SPD2_MASK = 12, + MV_PCS_CSSR1_SPD2_5000 = 8, + MV_PCS_CSSR1_SPD2_2500 = 4, + MV_PCS_CSSR1_SPD2_10000 = 0, + MV_PCS_TEMP = 32834, + MV_PCS_PORT_INFO = 53261, + MV_PCS_PORT_INFO_NPORTS_MASK = 896, + MV_PCS_PORT_INFO_NPORTS_SHIFT = 7, + MV_AN_21X0_SERDES_CTRL2 = 32783, + MV_AN_21X0_SERDES_CTRL2_AUTO_INIT_DIS = 8192, + MV_AN_21X0_SERDES_CTRL2_RUN_INIT = 32768, + MV_AN_CTRL1000 = 32768, + MV_AN_STAT1000 = 32769, + MV_V2_PORT_CTRL = 61441, + MV_V2_PORT_CTRL_PWRDOWN = 2048, + MV_V2_33X0_PORT_CTRL_SWRST = 32768, + MV_V2_33X0_PORT_CTRL_MACTYPE_MASK = 7, + MV_V2_33X0_PORT_CTRL_MACTYPE_RXAUI = 0, + MV_V2_3310_PORT_CTRL_MACTYPE_XAUI_RATE_MATCH = 1, + MV_V2_3340_PORT_CTRL_MACTYPE_RXAUI_NO_SGMII_AN = 1, + MV_V2_33X0_PORT_CTRL_MACTYPE_RXAUI_RATE_MATCH = 2, + MV_V2_3310_PORT_CTRL_MACTYPE_XAUI = 3, + MV_V2_33X0_PORT_CTRL_MACTYPE_10GBASER = 4, + MV_V2_33X0_PORT_CTRL_MACTYPE_10GBASER_NO_SGMII_AN = 5, + MV_V2_33X0_PORT_CTRL_MACTYPE_10GBASER_RATE_MATCH = 6, + MV_V2_33X0_PORT_CTRL_MACTYPE_USXGMII = 7, + MV_V2_PORT_INTR_STS = 61504, + MV_V2_PORT_INTR_MASK = 61507, + MV_V2_PORT_INTR_STS_WOL_EN = 256, + MV_V2_MAGIC_PKT_WORD0 = 61547, + MV_V2_MAGIC_PKT_WORD1 = 61548, + MV_V2_MAGIC_PKT_WORD2 = 61549, + MV_V2_WOL_CTRL = 61550, + MV_V2_WOL_CTRL_CLEAR_STS = 32768, + MV_V2_WOL_CTRL_MAGIC_PKT_EN = 1, + MV_V2_TEMP_CTRL = 61578, + MV_V2_TEMP_CTRL_MASK = 49152, + MV_V2_TEMP_CTRL_SAMPLE = 0, + MV_V2_TEMP_CTRL_DISABLE = 49152, + MV_V2_TEMP = 61580, + MV_V2_TEMP_UNKNOWN = 38400, }; -struct bpf_iter_target_info { - struct list_head list; - const struct bpf_iter_reg *reg_info; - u32 btf_id; +enum hwmon_chip_attributes { + hwmon_chip_temp_reset_history = 0, + hwmon_chip_in_reset_history = 1, + hwmon_chip_curr_reset_history = 2, + hwmon_chip_power_reset_history = 3, + hwmon_chip_register_tz = 4, + hwmon_chip_update_interval = 5, + hwmon_chip_alarms = 6, + hwmon_chip_samples = 7, + hwmon_chip_curr_samples = 8, + hwmon_chip_in_samples = 9, + hwmon_chip_power_samples = 10, + hwmon_chip_temp_samples = 11, + hwmon_chip_beep_enable = 12, }; -struct bpf_iter_link { - struct bpf_link link; - struct bpf_iter_aux_info aux; - struct bpf_iter_target_info *tinfo; +struct mv3310_priv { + unsigned long supported_interfaces[1]; + u32 firmware_ver; + bool has_downshift; + bool rate_match; + phy_interface_t const_interface; + struct device *hwmon_dev; + char *hwmon_name; }; -struct bpf_iter_priv_data { - struct bpf_iter_target_info *tinfo; - const struct bpf_iter_seq_info *seq_info; - struct bpf_prog *prog; - u64 session_id; - u64 seq_num; - bool done_stop; - long: 0; - u8 target_private[0]; +enum ether_type_algorithm { + ETYPE_ALG_NONE = 0, + ETYPE_ALG_SKIP = 1, + ETYPE_ALG_ENDPARSE = 2, + ETYPE_ALG_VLAN = 3, + ETYPE_ALG_VLAN_STRIP = 4, }; -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]; +enum cpi_algorithm_type { + CPI_ALG_NONE = 0, + CPI_ALG_VLAN = 1, + CPI_ALG_VLAN16 = 2, + CPI_ALG_DIFF = 3, }; -struct bpf_iter_num_kern { - int cur; - int end; +enum rx_stats_reg_offset { + RX_OCTS = 0, + RX_UCAST = 1, + RX_BCAST = 2, + RX_MCAST = 3, + RX_RED = 4, + RX_RED_OCTS = 5, + RX_ORUN = 6, + RX_ORUN_OCTS = 7, + RX_FCS = 8, + RX_L2ERR = 9, + RX_DRP_BCAST = 10, + RX_DRP_MCAST = 11, + RX_DRP_L3BCAST = 12, + RX_DRP_L3MCAST = 13, + RX_STATS_ENUM_LAST = 14, }; -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; +enum tx_stats_reg_offset { + TX_OCTS = 0, + TX_UCAST = 1, + TX_BCAST = 2, + TX_MCAST = 3, + TX_DROP = 4, + TX_STATS_ENUM_LAST = 5, }; -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; +struct pkind_cfg { + u64 minlen: 16; + u64 maxlen: 16; + u64 reserved_32_32: 1; + u64 lenerr_en: 1; + u64 rx_hdr: 3; + u64 hdr_sl: 5; + u64 reserved_42_63: 22; }; -typedef __le32 uprobe_opcode_t; +struct hw_info; -struct delayed_uprobe { - struct list_head list; - struct uprobe *uprobe; - struct mm_struct *mm; +struct nicpf { + struct pci_dev *pdev; + struct hw_info *hw; + u8 node; + unsigned int flags; + u8 num_vf_en; + bool vf_enabled[128]; + void *reg_base; + u8 num_sqs_en; + u64 nicvf[128]; + u8 vf_sqs[1408]; + u8 pqs_vf[128]; + bool sqs_used[128]; + struct pkind_cfg pkind; + u8 *vf_lmac_map; + u16 cpi_base[128]; + u16 rssi_base[128]; + u8 num_vec; + unsigned int irq_allocated[10]; + char irq_name[200]; }; -struct __uprobe_key { - struct inode *inode; - loff_t offset; +struct hw_info { + u8 bgx_cnt; + u8 chans_per_lmac; + u8 chans_per_bgx; + u8 chans_per_rgx; + u8 chans_per_lbk; + u16 cpi_cnt; + u16 rssi_cnt; + u16 rss_ind_tbl_size; + u16 tl4_cnt; + u16 tl3_cnt; + u8 tl2_cnt; + u8 tl1_cnt; + bool tl1_per_bgx; }; -struct map_info___2 { - struct map_info___2 *next; - struct mm_struct *mm; - unsigned long vaddr; +struct nic_cfg_msg { + u8 msg; + u8 vf_id; + u8 node_id; + u8 tns_mode: 1; + u8 sqs_mode: 1; + u8 loopback_supported: 1; + u8 mac_addr[6]; }; -enum pgt_entry { - NORMAL_PMD = 0, - HPAGE_PMD = 1, - NORMAL_PUD = 2, - HPAGE_PUD = 3, +struct qs_cfg_msg { + u8 msg; + u8 num; + u8 sqs_count; + u64 cfg; }; -enum hugetlb_memory_event { - HUGETLB_MAX = 0, - HUGETLB_NR_MEMORY_EVENTS = 1, +struct rq_cfg_msg { + u8 msg; + u8 qs_num; + u8 rq_num; + u64 cfg; }; -enum { - RES_USAGE = 0, - RES_RSVD_USAGE = 1, - RES_LIMIT = 2, - RES_RSVD_LIMIT = 3, - RES_MAX_USAGE = 4, - RES_RSVD_MAX_USAGE = 5, - RES_FAILCNT = 6, - RES_RSVD_FAILCNT = 7, +struct sq_cfg_msg { + u8 msg; + u8 qs_num; + u8 sq_num; + bool sqs_mode; + u64 cfg; }; -struct dnotify_struct; - -struct dnotify_mark { - struct fsnotify_mark fsn_mark; - struct dnotify_struct *dn; +struct set_mac_msg { + u8 msg; + u8 vf_id; + u8 mac_addr[6]; }; -struct dnotify_struct { - struct dnotify_struct *dn_next; - __u32 dn_mask; - int dn_fd; - struct file *dn_filp; - fl_owner_t dn_owner; +struct set_frs_msg { + u8 msg; + u8 vf_id; + u16 max_frs; }; -struct ext4_attr { - struct attribute attr; - short attr_id; - short attr_ptr; - unsigned short attr_size; - union { - int offset; - void *explicit_ptr; - } u; +struct cpi_cfg_msg { + u8 msg; + u8 vf_id; + u8 rq_cnt; + u8 cpi_alg; }; -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, +struct rss_sz_msg { + u8 msg; + u8 vf_id; + u16 ind_tbl_size; }; -enum { - ptr_explicit = 0, - ptr_ext4_sb_info_offset = 1, - ptr_ext4_super_block_offset = 2, +struct rss_cfg_msg { + u8 msg; + u8 vf_id; + u8 hash_bits; + u8 tbl_len; + u8 tbl_offset; + u8 ind_tbl[8]; }; -struct autofs_dev_ioctl; - -typedef int (*ioctl_fn)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *); +struct bgx_stats_msg { + u8 msg; + u8 vf_id; + u8 rx; + u8 idx; + u64 stats; +}; -struct args_protover { - __u32 version; +struct bgx_link_status { + u8 msg; + u8 mac_type; + u8 link_up; + u8 duplex; + u32 speed; }; -struct args_protosubver { - __u32 sub_version; +struct sqs_alloc { + u8 msg; + u8 vf_id; + u8 qs_count; }; -struct args_openmount { - __u32 devid; +struct nicvf_ptr { + u8 msg; + u8 vf_id; + bool sqs_mode; + u8 sqs_id; + u64 nicvf; }; -struct args_ready { - __u32 token; +struct set_loopback { + u8 msg; + u8 vf_id; + bool enable; }; -struct args_fail { - __u32 token; - __s32 status; +struct reset_stat_cfg { + u8 msg; + u16 rx_stat_mask; + u8 tx_stat_mask; + u16 rq_stat_mask; + u16 sq_stat_mask; }; -struct args_setpipefd { - __s32 pipefd; +struct pfc { + u8 msg; + u8 get; + u8 autoneg; + u8 fc_rx; + u8 fc_tx; }; -struct args_timeout { - __u64 timeout; +struct set_ptp { + u8 msg; + bool enable; }; -struct args_requester { - __u32 uid; - __u32 gid; +struct xcast { + u8 msg; + u8 mode; + u64 mac: 48; }; -struct args_expire { - __u32 how; +union nic_mbx { + struct { + u8 msg; + } msg; + struct nic_cfg_msg nic_cfg; + struct qs_cfg_msg qs; + struct rq_cfg_msg rq; + struct sq_cfg_msg sq; + struct set_mac_msg mac; + struct set_frs_msg frs; + struct cpi_cfg_msg cpi_cfg; + struct rss_sz_msg rss_size; + struct rss_cfg_msg rss_cfg; + struct bgx_stats_msg bgx_stats; + struct bgx_link_status link_status; + struct sqs_alloc sqs_alloc; + struct nicvf_ptr nicvf; + struct set_loopback lbk; + struct reset_stat_cfg reset_stat; + struct pfc pfc; + struct set_ptp ptp; + struct xcast xcast; }; -struct args_askumount { - __u32 may_umount; +struct hclge_devlink_priv { + struct hclge_dev *hdev; }; -struct args_in { - __u32 type; +struct igb_reg_info { + u32 ofs; + char *name; }; -struct args_out { - __u32 devid; - __u32 magic; +enum e1000_ring_flags_t { + IGB_RING_FLAG_RX_3K_BUFFER = 0, + IGB_RING_FLAG_RX_BUILD_SKB_ENABLED = 1, + IGB_RING_FLAG_RX_SCTP_CSUM = 2, + IGB_RING_FLAG_RX_LB_VLAN_BSWAP = 3, + IGB_RING_FLAG_TX_CTX_IDX = 4, + IGB_RING_FLAG_TX_DETECT_HANG = 5, }; -struct args_ismountpoint { - union { - struct args_in in; - struct args_out out; - }; +enum igb_tx_flags { + IGB_TX_FLAGS_VLAN = 1, + IGB_TX_FLAGS_TSO = 2, + IGB_TX_FLAGS_TSTAMP = 4, + IGB_TX_FLAGS_IPV4 = 16, + IGB_TX_FLAGS_CSUM = 32, }; -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 tx_queue_prio { + TX_QUEUE_PRIO_HIGH = 0, + TX_QUEUE_PRIO_LOW = 1, }; -enum { - AUTOFS_DEV_IOCTL_VERSION_CMD = 113, - AUTOFS_DEV_IOCTL_PROTOVER_CMD = 114, - AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD = 115, - AUTOFS_DEV_IOCTL_OPENMOUNT_CMD = 116, - AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD = 117, - AUTOFS_DEV_IOCTL_READY_CMD = 118, - AUTOFS_DEV_IOCTL_FAIL_CMD = 119, - AUTOFS_DEV_IOCTL_SETPIPEFD_CMD = 120, - AUTOFS_DEV_IOCTL_CATATONIC_CMD = 121, - AUTOFS_DEV_IOCTL_TIMEOUT_CMD = 122, - AUTOFS_DEV_IOCTL_REQUESTER_CMD = 123, - AUTOFS_DEV_IOCTL_EXPIRE_CMD = 124, - AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD = 125, - AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD = 126, +enum queue_mode { + QUEUE_MODE_STRICT_PRIORITY = 0, + QUEUE_MODE_STREAM_RESERVATION = 1, }; -typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *); +enum igb_filter_match_flags { + IGB_FILTER_FLAG_ETHER_TYPE = 1, + IGB_FILTER_FLAG_VLAN_TCI = 2, + IGB_FILTER_FLAG_SRC_MAC_ADDR = 4, + IGB_FILTER_FLAG_DST_MAC_ADDR = 8, +}; -typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *); +union e1000_adv_rx_desc___2 { + struct { + __le64 pkt_addr; + __le64 hdr_addr; + } read; + struct { + struct { + struct { + __le16 pkt_info; + __le16 hdr_info; + } lo_dword; + union { + __le32 rss; + struct { + __le16 ip_id; + __le16 csum; + } csum_ip; + } hi_dword; + } lower; + struct { + __le32 status_error; + __le16 length; + __le16 vlan; + } upper; + } wb; +}; -typedef void (*btf_trace_block_rq_requeue)(void *, struct request *); +struct igb_nfc_input { + u8 match_flags; + __be16 etype; + __be16 vlan_tci; + u8 src_addr[6]; + u8 dst_addr[6]; +}; -typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int); +struct igb_nfc_filter { + struct hlist_node nfc_node; + struct igb_nfc_input filter; + unsigned long cookie; + u16 etype_reg_index; + u16 sw_idx; + u16 action; +}; -typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int); +struct tc_taprio_caps { + bool supports_queue_max_sdu: 1; + bool gate_mask_per_txq: 1; + bool broken_mqprio: 1; +}; -typedef void (*btf_trace_block_rq_insert)(void *, struct request *); +struct tc_cbs_qopt_offload { + u8 enable; + s32 queue; + s32 hicredit; + s32 locredit; + s32 idleslope; + s32 sendslope; +}; -typedef void (*btf_trace_block_rq_issue)(void *, struct request *); +struct tc_etf_qopt_offload { + u8 enable; + s32 queue; +}; -typedef void (*btf_trace_block_rq_merge)(void *, struct request *); +typedef void (*btf_trace_dwc3_readl)(void *, void *, u32, u32); -typedef void (*btf_trace_block_io_start)(void *, struct request *); +typedef void (*btf_trace_dwc3_writel)(void *, void *, u32, u32); -typedef void (*btf_trace_block_io_done)(void *, struct request *); +typedef void (*btf_trace_dwc3_event)(void *, u32, struct dwc3 *); -typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *); +typedef void (*btf_trace_dwc3_ctrl_req)(void *, struct usb_ctrlrequest *); -typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); +typedef void (*btf_trace_dwc3_alloc_request)(void *, struct dwc3_request *); -typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); +typedef void (*btf_trace_dwc3_free_request)(void *, struct dwc3_request *); -typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *); +typedef void (*btf_trace_dwc3_ep_queue)(void *, struct dwc3_request *); -typedef void (*btf_trace_block_bio_queue)(void *, struct bio *); +typedef void (*btf_trace_dwc3_ep_dequeue)(void *, struct dwc3_request *); -typedef void (*btf_trace_block_getrq)(void *, struct bio *); +typedef void (*btf_trace_dwc3_gadget_giveback)(void *, struct dwc3_request *); -typedef void (*btf_trace_block_plug)(void *, struct request_queue *); +typedef void (*btf_trace_dwc3_gadget_generic_cmd)(void *, unsigned int, u32, int); -typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); +struct dwc3_gadget_ep_cmd_params; -typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int); +typedef void (*btf_trace_dwc3_gadget_ep_cmd)(void *, struct dwc3_ep *, unsigned int, struct dwc3_gadget_ep_cmd_params *, int); -typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t); +struct dwc3_gadget_ep_cmd_params { + u32 param2; + u32 param1; + u32 param0; +}; -typedef void (*btf_trace_block_rq_remap)(void *, struct request *, dev_t, sector_t); +typedef void (*btf_trace_dwc3_prepare_trb)(void *, struct dwc3_ep *, struct dwc3_trb *); -struct blk_plug_cb; +typedef void (*btf_trace_dwc3_complete_trb)(void *, struct dwc3_ep *, struct dwc3_trb *); -typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool); +typedef void (*btf_trace_dwc3_gadget_ep_enable)(void *, struct dwc3_ep *); -struct blk_plug_cb { - struct list_head list; - blk_plug_cb_fn callback; - void *data; -}; +typedef void (*btf_trace_dwc3_gadget_ep_disable)(void *, struct dwc3_ep *); -struct trace_event_raw_block_buffer { +struct trace_event_raw_dwc3_log_io { struct trace_entry ent; - dev_t dev; - sector_t sector; - size_t size; + void *base; + u32 offset; + u32 value; char __data[0]; }; -struct trace_event_raw_block_rq_requeue { +struct trace_event_raw_dwc3_log_event { struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - char rwbs[8]; - u32 __data_loc_cmd; + u32 event; + u32 ep0state; char __data[0]; }; -struct trace_event_raw_block_rq_completion { +struct trace_event_raw_dwc3_log_ctrl { struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - int error; - char rwbs[8]; - u32 __data_loc_cmd; + __u8 bRequestType; + __u8 bRequest; + __u16 wValue; + __u16 wIndex; + __u16 wLength; char __data[0]; }; -struct trace_event_raw_block_rq { +struct trace_event_raw_dwc3_log_request { 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; + u32 __data_loc_name; + struct dwc3_request *req; + unsigned int actual; + unsigned int length; + int status; + int zero; + int short_not_ok; + int no_interrupt; char __data[0]; }; -struct trace_event_raw_block_bio_complete { +struct trace_event_raw_dwc3_log_generic_cmd { struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - int error; - char rwbs[8]; + unsigned int cmd; + u32 param; + int status; char __data[0]; }; -struct trace_event_raw_block_bio { +struct trace_event_raw_dwc3_log_gadget_ep_cmd { struct trace_entry ent; - dev_t dev; - sector_t sector; - unsigned int nr_sector; - char rwbs[8]; - char comm[16]; + u32 __data_loc_name; + unsigned int cmd; + u32 param0; + u32 param1; + u32 param2; + int cmd_status; char __data[0]; }; -struct trace_event_raw_block_plug { +struct trace_event_raw_dwc3_log_trb { struct trace_entry ent; - char comm[16]; + u32 __data_loc_name; + struct dwc3_trb *trb; + u32 bpl; + u32 bph; + u32 size; + u32 ctrl; + u32 type; + u32 enqueue; + u32 dequeue; char __data[0]; }; -struct trace_event_raw_block_unplug { +struct trace_event_raw_dwc3_log_ep { struct trace_entry ent; - int nr_rq; - char comm[16]; + u32 __data_loc_name; + unsigned int maxpacket; + unsigned int maxpacket_limit; + unsigned int max_streams; + unsigned int maxburst; + unsigned int flags; + unsigned int direction; + u8 trb_enqueue; + u8 trb_dequeue; 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_data_offsets_dwc3_log_request { + u32 name; }; -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_data_offsets_dwc3_log_gadget_ep_cmd { + u32 name; }; -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_dwc3_log_trb { + u32 name; +}; + +struct trace_event_data_offsets_dwc3_log_ep { + u32 name; +}; + +struct dwc3_event_type { + u32 is_devspec: 1; + u32 type: 7; + u32 reserved8_31: 24; +}; + +struct dwc3_event_depevt { + u32 one_bit: 1; + u32 endpoint_number: 5; + u32 endpoint_event: 4; + u32 reserved11_10: 2; + u32 status: 4; + u32 parameters: 16; +}; + +struct dwc3_event_devt { + u32 one_bit: 1; + u32 device_event: 7; + u32 type: 4; + u32 reserved15_12: 4; + u32 event_info: 9; + u32 reserved31_25: 7; +}; + +struct dwc3_event_gevt { + u32 one_bit: 1; + u32 device_event: 7; + u32 phy_port_number: 4; + u32 reserved31_12: 20; +}; + +union dwc3_event { + u32 raw; + struct dwc3_event_type type; + struct dwc3_event_depevt depevt; + struct dwc3_event_devt devt; + struct dwc3_event_gevt gevt; +}; + +struct trace_event_data_offsets_dwc3_log_io {}; + +struct trace_event_data_offsets_dwc3_log_event {}; + +struct trace_event_data_offsets_dwc3_log_ctrl {}; + +struct trace_event_data_offsets_dwc3_log_generic_cmd {}; + +enum isp1760_queue_head_types { + QH_CONTROL = 0, + QH_BULK = 1, + QH_INTERRUPT = 2, + QH_END = 3, +}; + +struct isp1760_qh { + struct list_head qh_list; + struct list_head qtd_list; + u32 toggle; + u32 ping; + int slot; + int tt_buffer_dirty; }; -struct trace_event_data_offsets_block_buffer {}; - -struct trace_event_data_offsets_block_rq_requeue { - u32 cmd; +struct isp1760_qtd { + u8 packet_type; + void *data_buffer; + u32 payload_addr; + struct list_head qtd_list; + struct urb *urb; + size_t length; + size_t actual_length; + u32 status; }; -struct trace_event_data_offsets_block_rq_completion { - u32 cmd; +typedef __u32 __dw; + +struct urb_listitem { + struct list_head urb_list; + struct urb *urb; }; -struct trace_event_data_offsets_block_rq { - u32 cmd; +struct ptd { + __dw dw0; + __dw dw1; + __dw dw2; + __dw dw3; + __dw dw4; + __dw dw5; + __dw dw6; + __dw dw7; }; -struct trace_event_data_offsets_block_bio_complete {}; +struct ptd_le32 { + __le32 dw0; + __le32 dw1; + __le32 dw2; + __le32 dw3; + __le32 dw4; + __le32 dw5; + __le32 dw6; + __le32 dw7; +}; -struct trace_event_data_offsets_block_bio {}; +typedef void (*btf_trace_ci_log)(void *, struct ci_hdrc *, struct va_format *); -struct trace_event_data_offsets_block_plug {}; +typedef void (*btf_trace_ci_prepare_td)(void *, struct ci_hw_ep *, struct ci_hw_req *, struct td_node *); -struct trace_event_data_offsets_block_unplug {}; +typedef void (*btf_trace_ci_complete_td)(void *, struct ci_hw_ep *, struct ci_hw_req *, struct td_node *); -struct trace_event_data_offsets_block_split {}; +struct trace_event_raw_ci_log { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_msg; + char __data[0]; +}; -struct trace_event_data_offsets_block_bio_remap {}; +struct trace_event_raw_ci_log_trb { + struct trace_entry ent; + u32 __data_loc_name; + struct td_node *td; + struct usb_request *req; + dma_addr_t dma; + s32 td_remaining_size; + u32 next; + u32 token; + u32 type; + char __data[0]; +}; -struct trace_event_data_offsets_block_rq_remap {}; +struct trace_event_data_offsets_ci_log { + u32 name; + u32 msg; +}; -struct sg_append_table { - struct sg_table sgt; - struct scatterlist *prv; - unsigned int total_nents; +struct trace_event_data_offsets_ci_log_trb { + u32 name; }; -struct barrett_ctx_s { - MPI m; - int m_copied; - int k; - MPI y; - MPI r1; - MPI r2; - MPI r3; +struct gpio_keys_button { + unsigned int code; + int gpio; + int active_low; + const char *desc; + unsigned int type; + int wakeup; + int wakeup_event_action; + int debounce_interval; + bool can_disable; + int value; + unsigned int irq; }; -struct sg_splitter { - struct scatterlist *in_sg0; - int nents; - off_t skip_sg0; - unsigned int length_last_sg; - struct scatterlist *out_sg; +struct gpio_button_data { + const struct gpio_keys_button *button; + struct input_dev *input; + struct gpio_desc *gpiod; + unsigned short *code; + struct hrtimer release_timer; + unsigned int release_delay; + struct delayed_work work; + struct hrtimer debounce_timer; + unsigned int software_debounce; + unsigned int irq; + unsigned int wakeup_trigger_type; + spinlock_t lock; + bool disabled; + bool key_pressed; + bool suspended; + bool debounce_use_hrtimer; }; -typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); +struct gpio_keys_platform_data; -struct ls_extirq_data { - void *intpcr; - raw_spinlock_t lock; - bool big_endian; - bool is_ls1021a_or_ls1043a; - u32 nirq; - struct irq_fwspec map[12]; +struct gpio_keys_drvdata { + const struct gpio_keys_platform_data *pdata; + struct input_dev *input; + struct mutex disable_lock; + unsigned short *keymap; + struct gpio_button_data data[0]; }; -struct sunxi_rsb_addr_map { - u16 hwaddr; - u8 rtaddr; +struct gpio_keys_platform_data { + const struct gpio_keys_button *buttons; + int nbuttons; + unsigned int poll_interval; + unsigned int rep: 1; + int (*enable)(struct device *); + void (*disable)(struct device *); + const char *name; }; -struct sunxi_rsb { +struct ds3232 { struct device *dev; - void *regs; - struct clk *clk; - struct reset_control *rstc; - struct completion complete; - struct mutex lock; - unsigned int status; - u32 clk_freq; + struct regmap *regmap; + int irq; + struct rtc_device *rtc; + bool suspended; }; -struct sunxi_rsb_ctx { - struct sunxi_rsb_device *rdev; - int size; +struct omap_i2c_bus_platform_data { + u32 clkrate; + u32 rev; + u32 flags; + void (*set_mpu_wkup_lat)(struct device *, long); }; enum { - CFG_PRE_INIT = 0, - CFG_POST_INIT = 1, - CFG_PRE_PWR_HS = 2, - CFG_POST_PWR_HS = 3, - CFG_TAG_MAX = 4, + OMAP_I2C_REV_REG = 0, + OMAP_I2C_IE_REG = 1, + OMAP_I2C_STAT_REG = 2, + OMAP_I2C_IV_REG = 3, + OMAP_I2C_WE_REG = 4, + OMAP_I2C_SYSS_REG = 5, + OMAP_I2C_BUF_REG = 6, + OMAP_I2C_CNT_REG = 7, + OMAP_I2C_DATA_REG = 8, + OMAP_I2C_SYSC_REG = 9, + OMAP_I2C_CON_REG = 10, + OMAP_I2C_OA_REG = 11, + OMAP_I2C_SA_REG = 12, + OMAP_I2C_PSC_REG = 13, + OMAP_I2C_SCLL_REG = 14, + OMAP_I2C_SCLH_REG = 15, + OMAP_I2C_SYSTEST_REG = 16, + OMAP_I2C_BUFSTAT_REG = 17, + OMAP_I2C_IP_V2_REVNB_LO = 18, + OMAP_I2C_IP_V2_REVNB_HI = 19, + OMAP_I2C_IP_V2_IRQSTATUS_RAW = 20, + OMAP_I2C_IP_V2_IRQENABLE_SET = 21, + OMAP_I2C_IP_V2_IRQENABLE_CLR = 22, }; -enum { - LANE_0 = 0, - LANE_1 = 1, +struct omap_i2c_dev { + struct device *dev; + void *base; + int irq; + int reg_shift; + struct completion cmd_complete; + struct resource *ioarea; + u32 latency; + void (*set_mpu_wkup_lat)(struct device *, long); + u32 speed; + u32 flags; + u16 scheme; + u16 cmd_err; + u8 *buf; + u8 *regs; + size_t buf_len; + struct i2c_adapter adapter; + u8 threshold; + u8 fifo_size; + u32 rev; + unsigned int b_hw: 1; + unsigned int bb_valid: 1; + unsigned int receiver: 1; + u16 iestate; + u16 pscstate; + u16 scllstate; + u16 sclhstate; + u16 syscstate; + u16 westate; + u16 errata; }; -struct samsung_ufs_phy { +struct ptp_dte { + void *regs; + struct ptp_clock *ptp_clk; + struct ptp_clock_info caps; struct device *dev; - void *reg_pma; - struct regmap *reg_pmu; - struct clk_bulk_data *clks; - const struct samsung_ufs_phy_drvdata *drvdata; - const struct samsung_ufs_phy_cfg * const *cfgs; - struct samsung_ufs_phy_pmu_isol isol; - u8 lane_cnt; - int ufs_phy_state; - enum phy_mode mode; + u32 ts_ovf_last; + u32 ts_wrap_cnt; + spinlock_t lock; + u32 reg_val[4]; }; -typedef void (*btf_trace_pwm_apply)(void *, struct pwm_device *, const struct pwm_state *, int); - -typedef void (*btf_trace_pwm_get)(void *, struct pwm_device *, const struct pwm_state *, int); - -enum { - PWMF_REQUESTED = 1, - PWMF_EXPORTED = 2, +enum scpi_sensor_class { + TEMPERATURE = 0, + VOLTAGE___2 = 1, + CURRENT___2 = 2, + POWER___2 = 3, + ENERGY___2 = 4, }; -struct pwm_lookup { - struct list_head list; - const char *provider; - unsigned int index; - const char *dev_id; - const char *con_id; - unsigned int period; - enum pwm_polarity polarity; - const char *module; +struct sensor_data { + unsigned int scale; + struct scpi_sensor_info info; + struct device_attribute dev_attr_input; + struct device_attribute dev_attr_label; + char input[20]; + char label[20]; }; -struct trace_event_raw_pwm { - struct trace_entry ent; - struct pwm_device *pwm; - u64 period; - u64 duty_cycle; - enum pwm_polarity polarity; - bool enabled; - int err; - char __data[0]; +struct scpi_sensors { + struct scpi_ops *scpi_ops; + struct sensor_data *data; + struct list_head thermal_zones; + struct attribute **attrs; + struct attribute_group group; + const struct attribute_group *groups[2]; }; -struct trace_event_data_offsets_pwm {}; - -enum imx6_pcie_variants { - IMX6Q = 0, - IMX6SX = 1, - IMX6QP = 2, - IMX7D = 3, - IMX8MQ = 4, - IMX8MM___2 = 5, - IMX8MP___2 = 6, - IMX8MQ_EP = 7, - IMX8MM_EP = 8, - IMX8MP_EP = 9, +struct scpi_thermal_zone { + int sensor_id; + struct scpi_sensors *scpi_sensors; }; -enum dw_pcie_device_mode { - DW_PCIE_UNKNOWN_TYPE = 0, - DW_PCIE_EP_TYPE = 1, - DW_PCIE_LEG_EP_TYPE = 2, - DW_PCIE_RC_TYPE = 3, +struct gti_match_data { + u32 gti_num_timers; }; -struct imx6_pcie_drvdata { - enum imx6_pcie_variants variant; - enum dw_pcie_device_mode mode; - u32 flags; - int dbi_length; - const char *gpr; +struct gti_wdt_priv { + struct watchdog_device wdev; + void *base; + u32 clock_freq; + struct clk *sclk; + u32 wdt_timer_idx; + const struct gti_match_data *data; }; -struct imx6_pcie { - struct dw_pcie *pci; - int reset_gpio; - bool gpio_active_high; - bool link_is_up; - struct clk *pcie_bus; - struct clk *pcie_phy; - struct clk *pcie_inbound_axi; - struct clk *pcie; - struct clk *pcie_aux; - struct regmap *iomuxc_gpr; - u16 msi_ctrl; - u32 controller_id; - struct reset_control *pciephy_reset; - struct reset_control *apps_reset; - struct reset_control *turnoff_reset; - u32 tx_deemph_gen1; - u32 tx_deemph_gen2_3p5db; - u32 tx_deemph_gen2_6db; - u32 tx_swing_full; - u32 tx_swing_low; - struct regulator *vpcie; - struct regulator *vph; - void *phy_base; - struct device *pd_pcie; - struct device *pd_pcie_phy; - struct phy *phy; - const struct imx6_pcie_drvdata *drvdata; +struct apple_soc_cpufreq_info { + u64 max_pstate; + u64 cur_pstate_mask; + u64 cur_pstate_shift; }; -struct acpi_dev_match_info { - struct acpi_device_id hid[2]; - const char *uid; - s64 hrv; +struct apple_cpu_priv { + struct device *cpu_dev; + void *reg_base; + const struct apple_soc_cpufreq_info *info; }; -enum { - AML_FIELD_UPDATE_PRESERVE = 0, - AML_FIELD_UPDATE_WRITE_AS_ONES = 32, - AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64, +struct psci_pd_provider { + struct list_head link; + struct device_node *node; }; -struct acpi_pci_device { - acpi_handle device; - struct acpi_pci_device *next; +struct brcmstb_match_priv { + void (*hs400es)(struct mmc_host *, struct mmc_ios *); + struct sdhci_ops *ops; + const unsigned int flags; }; -struct imx_clk_gpr { - struct clk_hw hw; - struct regmap *regmap; - u32 mask; - u32 reg; - const u32 *mux_table; +struct sdhci_brcmstb_priv { + void *cfg_regs; + unsigned int flags; + struct clk *base_clk; + u32 base_freq_hz; }; -enum { - PLL_OFF_L_VAL = 0, - PLL_OFF_CAL_L_VAL = 1, - PLL_OFF_ALPHA_VAL = 2, - PLL_OFF_ALPHA_VAL_U = 3, - PLL_OFF_USER_CTL = 4, - PLL_OFF_USER_CTL_U = 5, - PLL_OFF_USER_CTL_U1 = 6, - PLL_OFF_CONFIG_CTL = 7, - PLL_OFF_CONFIG_CTL_U = 8, - PLL_OFF_CONFIG_CTL_U1 = 9, - PLL_OFF_TEST_CTL = 10, - PLL_OFF_TEST_CTL_U = 11, - PLL_OFF_TEST_CTL_U1 = 12, - PLL_OFF_TEST_CTL_U2 = 13, - PLL_OFF_STATE = 14, - PLL_OFF_STATUS = 15, - PLL_OFF_OPMODE = 16, - PLL_OFF_FRAC = 17, - PLL_OFF_CAL_VAL = 18, - PLL_OFF_MAX_REGS = 19, +struct ec_params_host_sleep_event { + uint8_t sleep_event; }; -struct clk_rpmh_desc { - struct clk_hw **clks; - size_t num_clks; +struct ec_params_host_sleep_event_v1 { + uint8_t sleep_event; + uint8_t reserved; + union { + struct { + uint16_t sleep_timeout_ms; + } suspend_params; + }; }; -struct clk_rpmh { - struct clk_hw hw; - const char *res_name; - u8 div; - u32 res_addr; - u32 res_on_val; - u32 state; - u32 aggr_state; - u32 last_sent_aggr_state; - u32 valid_state_mask; - u32 unit; - struct device *dev; - struct clk_rpmh *peer; +struct ec_response_host_sleep_event_v1 { + union { + struct { + uint32_t sleep_transitions; + } resume_response; + }; }; -enum clk_ids___7 { - LAST_DT_CORE_CLK___7 = 52, - CLK_EXTAL___7 = 53, - CLK_EXTALR___7 = 54, - CLK_MAIN___7 = 55, - CLK_PLL0___5 = 56, - CLK_PLL1___7 = 57, - CLK_PLL2___4 = 58, - CLK_PLL3___6 = 59, - CLK_PLL4___4 = 60, - CLK_PLL1_DIV2___7 = 61, - CLK_PLL1_DIV4___5 = 62, - CLK_S0___5 = 63, - CLK_S1___5 = 64, - CLK_S2___4 = 65, - CLK_S3___5 = 66, - CLK_SDSRC___6 = 67, - CLK_SSPSRC___2 = 68, - CLK_RPCSRC___6 = 69, - CLK_RINT___4 = 70, - MOD_CLK_BASE___7 = 71, +enum host_sleep_event { + HOST_SLEEP_EVENT_S3_SUSPEND = 1, + HOST_SLEEP_EVENT_S3_RESUME = 2, + HOST_SLEEP_EVENT_S0IX_SUSPEND = 3, + HOST_SLEEP_EVENT_S0IX_RESUME = 4, + HOST_SLEEP_EVENT_S3_WAKEABLE_SUSPEND = 5, }; -struct tegra_sdmmc_mux { - struct clk_hw hw; - void *reg; - spinlock_t *lock; - const struct clk_ops *gate_ops; - struct tegra_clk_periph_gate gate; - u8 div_flags; +struct sun6i_msgbox { + struct mbox_controller controller; + struct clk *clk; + spinlock_t lock; + void *regs; }; -struct tegra210_domain_mbist_war { - void (*handle_lvl2_ovr)(struct tegra210_domain_mbist_war *); - const u32 lvl2_offset; - const u32 lvl2_mask; - const unsigned int num_clks; - const unsigned int *clk_init_data; - struct clk_bulk_data *clks; +struct usb_extcon_info { + struct device *dev; + struct extcon_dev *edev; + struct gpio_desc *id_gpiod; + struct gpio_desc *vbus_gpiod; + int id_irq; + int vbus_irq; + unsigned long debounce_jiffies; + struct delayed_work wq_detcable; }; -struct utmi_clk_param___2 { - u32 osc_frequency; - u8 enable_delay_count; - u16 stable_count; - u8 active_delay_count; - u16 xtal_freq_count; +struct uniphier_efuse_priv { + void *base; }; -struct cpu_clk_suspend_context { - u32 clk_csite_src; +struct snd_dmaengine_pcm_config { + int (*prepare_slave_config)(struct snd_pcm_substream *, struct snd_pcm_hw_params *, struct dma_slave_config *); + struct dma_chan * (*compat_request_channel)(struct snd_soc_pcm_runtime *, struct snd_pcm_substream *); + int (*process)(struct snd_pcm_substream *, int, unsigned long, unsigned long); + dma_filter_fn compat_filter_fn; + struct device *dma_dev; + const char *chan_names[2]; + const struct snd_pcm_hardware *pcm_hardware; + unsigned int prealloc_buffer_size; }; -struct imx8_soc_data { - char *name; - u32 (*soc_revision)(); +struct dmaengine_pcm { + struct dma_chan *chan[2]; + const struct snd_dmaengine_pcm_config *config; + struct snd_soc_component component; + unsigned int flags; }; -enum mrq_pg_cmd { - CMD_PG_QUERY_ABI = 0, - CMD_PG_SET_STATE = 1, - CMD_PG_GET_STATE = 2, - CMD_PG_GET_NAME = 3, - CMD_PG_GET_MAX_ID = 4, +struct snd_dmaengine_dai_dma_data { + dma_addr_t addr; + enum dma_slave_buswidth addr_width; + u32 maxburst; + void *filter_data; + const char *chan_name; + unsigned int fifo_size; + unsigned int flags; + void *peripheral_config; + size_t peripheral_size; }; -enum pg_states { - PG_STATE_OFF = 0, - PG_STATE_ON = 1, - PG_STATE_RUNNING = 2, +struct drop_reason_list { + const char * const *reasons; + size_t n_reasons; }; -struct tegra_powergate___2 { - struct generic_pm_domain genpd; - struct tegra_bpmp *bpmp; - unsigned int id; +struct skb_checksum_ops { + __wsum (*update)(const void *, int, __wsum); + __wsum (*combine)(__wsum, __wsum, int, int); }; -struct cmd_pg_get_state_response { - uint32_t state; +struct page_frag_1k { + void *va; + u16 offset; + bool pfmemalloc; }; -struct cmd_pg_get_name_response { - uint8_t name[40]; +struct napi_alloc_cache { + struct page_frag_cache page; + struct page_frag_1k page_small; + unsigned int skb_count; + void *skb_cache[64]; }; -struct cmd_pg_get_max_id_response { - uint32_t max_id; +enum skb_drop_reason_subsys { + SKB_DROP_REASON_SUBSYS_CORE = 0, + SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1, + SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR = 2, + SKB_DROP_REASON_SUBSYS_OPENVSWITCH = 3, + SKB_DROP_REASON_SUBSYS_NUM = 4, }; -struct mrq_pg_response { - union { - struct cmd_pg_get_state_response get_state; - struct cmd_pg_get_name_response get_name; - struct cmd_pg_get_max_id_response get_max_id; - }; +enum skb_ext_id { + SKB_EXT_BRIDGE_NF = 0, + SKB_EXT_NUM = 1, }; -struct cmd_pg_query_abi_request { - uint32_t type; +struct sk_buff_fclones { + struct sk_buff skb1; + struct sk_buff skb2; + refcount_t fclone_ref; }; -struct cmd_pg_set_state_request { - uint32_t state; +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 mrq_pg_request { - uint32_t cmd; - uint32_t id; - union { - struct cmd_pg_query_abi_request query_abi; - struct cmd_pg_set_state_request set_state; - }; +struct mpls_shim_hdr { + __be32 label_stack_entry; }; -struct tegra_powergate_info { - unsigned int id; - char *name; +struct skb_free_array { + unsigned int skb_count; + void *skb_array[16]; }; -struct zynqmp_reset_soc_data { - u32 reset_id; - u32 num_resets; -}; +struct ts_ops; -enum zynqmp_pm_reset_action { - PM_RESET_ACTION_RELEASE = 0, - PM_RESET_ACTION_ASSERT = 1, - PM_RESET_ACTION_PULSE = 2, -}; +struct ts_state; -enum zynqmp_pm_reset { - ZYNQMP_PM_RESET_START = 1000, - ZYNQMP_PM_RESET_PCIE_CFG = 1000, - ZYNQMP_PM_RESET_PCIE_BRIDGE = 1001, - ZYNQMP_PM_RESET_PCIE_CTRL = 1002, - ZYNQMP_PM_RESET_DP = 1003, - ZYNQMP_PM_RESET_SWDT_CRF = 1004, - ZYNQMP_PM_RESET_AFI_FM5 = 1005, - ZYNQMP_PM_RESET_AFI_FM4 = 1006, - ZYNQMP_PM_RESET_AFI_FM3 = 1007, - ZYNQMP_PM_RESET_AFI_FM2 = 1008, - ZYNQMP_PM_RESET_AFI_FM1 = 1009, - ZYNQMP_PM_RESET_AFI_FM0 = 1010, - ZYNQMP_PM_RESET_GDMA = 1011, - ZYNQMP_PM_RESET_GPU_PP1 = 1012, - ZYNQMP_PM_RESET_GPU_PP0 = 1013, - ZYNQMP_PM_RESET_GPU = 1014, - ZYNQMP_PM_RESET_GT = 1015, - ZYNQMP_PM_RESET_SATA = 1016, - ZYNQMP_PM_RESET_ACPU3_PWRON = 1017, - ZYNQMP_PM_RESET_ACPU2_PWRON = 1018, - ZYNQMP_PM_RESET_ACPU1_PWRON = 1019, - ZYNQMP_PM_RESET_ACPU0_PWRON = 1020, - ZYNQMP_PM_RESET_APU_L2 = 1021, - ZYNQMP_PM_RESET_ACPU3 = 1022, - ZYNQMP_PM_RESET_ACPU2 = 1023, - ZYNQMP_PM_RESET_ACPU1 = 1024, - ZYNQMP_PM_RESET_ACPU0 = 1025, - ZYNQMP_PM_RESET_DDR = 1026, - ZYNQMP_PM_RESET_APM_FPD = 1027, - ZYNQMP_PM_RESET_SOFT = 1028, - ZYNQMP_PM_RESET_GEM0 = 1029, - ZYNQMP_PM_RESET_GEM1 = 1030, - ZYNQMP_PM_RESET_GEM2 = 1031, - ZYNQMP_PM_RESET_GEM3 = 1032, - ZYNQMP_PM_RESET_QSPI = 1033, - ZYNQMP_PM_RESET_UART0 = 1034, - ZYNQMP_PM_RESET_UART1 = 1035, - ZYNQMP_PM_RESET_SPI0 = 1036, - ZYNQMP_PM_RESET_SPI1 = 1037, - ZYNQMP_PM_RESET_SDIO0 = 1038, - ZYNQMP_PM_RESET_SDIO1 = 1039, - ZYNQMP_PM_RESET_CAN0 = 1040, - ZYNQMP_PM_RESET_CAN1 = 1041, - ZYNQMP_PM_RESET_I2C0 = 1042, - ZYNQMP_PM_RESET_I2C1 = 1043, - ZYNQMP_PM_RESET_TTC0 = 1044, - ZYNQMP_PM_RESET_TTC1 = 1045, - ZYNQMP_PM_RESET_TTC2 = 1046, - ZYNQMP_PM_RESET_TTC3 = 1047, - ZYNQMP_PM_RESET_SWDT_CRL = 1048, - ZYNQMP_PM_RESET_NAND = 1049, - ZYNQMP_PM_RESET_ADMA = 1050, - ZYNQMP_PM_RESET_GPIO = 1051, - ZYNQMP_PM_RESET_IOU_CC = 1052, - ZYNQMP_PM_RESET_TIMESTAMP = 1053, - ZYNQMP_PM_RESET_RPU_R50 = 1054, - ZYNQMP_PM_RESET_RPU_R51 = 1055, - ZYNQMP_PM_RESET_RPU_AMBA = 1056, - ZYNQMP_PM_RESET_OCM = 1057, - ZYNQMP_PM_RESET_RPU_PGE = 1058, - ZYNQMP_PM_RESET_USB0_CORERESET = 1059, - ZYNQMP_PM_RESET_USB1_CORERESET = 1060, - ZYNQMP_PM_RESET_USB0_HIBERRESET = 1061, - ZYNQMP_PM_RESET_USB1_HIBERRESET = 1062, - ZYNQMP_PM_RESET_USB0_APB = 1063, - ZYNQMP_PM_RESET_USB1_APB = 1064, - ZYNQMP_PM_RESET_IPI = 1065, - ZYNQMP_PM_RESET_APM_LPD = 1066, - ZYNQMP_PM_RESET_RTC = 1067, - ZYNQMP_PM_RESET_SYSMON = 1068, - ZYNQMP_PM_RESET_AFI_FM6 = 1069, - ZYNQMP_PM_RESET_LPD_SWDT = 1070, - ZYNQMP_PM_RESET_FPD = 1071, - ZYNQMP_PM_RESET_RPU_DBG1 = 1072, - ZYNQMP_PM_RESET_RPU_DBG0 = 1073, - ZYNQMP_PM_RESET_DBG_LPD = 1074, - ZYNQMP_PM_RESET_DBG_FPD = 1075, - ZYNQMP_PM_RESET_APLL = 1076, - ZYNQMP_PM_RESET_DPLL = 1077, - ZYNQMP_PM_RESET_VPLL = 1078, - ZYNQMP_PM_RESET_IOPLL = 1079, - ZYNQMP_PM_RESET_RPLL = 1080, - ZYNQMP_PM_RESET_GPO3_PL_0 = 1081, - ZYNQMP_PM_RESET_GPO3_PL_1 = 1082, - ZYNQMP_PM_RESET_GPO3_PL_2 = 1083, - ZYNQMP_PM_RESET_GPO3_PL_3 = 1084, - ZYNQMP_PM_RESET_GPO3_PL_4 = 1085, - ZYNQMP_PM_RESET_GPO3_PL_5 = 1086, - ZYNQMP_PM_RESET_GPO3_PL_6 = 1087, - ZYNQMP_PM_RESET_GPO3_PL_7 = 1088, - ZYNQMP_PM_RESET_GPO3_PL_8 = 1089, - ZYNQMP_PM_RESET_GPO3_PL_9 = 1090, - ZYNQMP_PM_RESET_GPO3_PL_10 = 1091, - ZYNQMP_PM_RESET_GPO3_PL_11 = 1092, - ZYNQMP_PM_RESET_GPO3_PL_12 = 1093, - ZYNQMP_PM_RESET_GPO3_PL_13 = 1094, - ZYNQMP_PM_RESET_GPO3_PL_14 = 1095, - ZYNQMP_PM_RESET_GPO3_PL_15 = 1096, - ZYNQMP_PM_RESET_GPO3_PL_16 = 1097, - ZYNQMP_PM_RESET_GPO3_PL_17 = 1098, - ZYNQMP_PM_RESET_GPO3_PL_18 = 1099, - ZYNQMP_PM_RESET_GPO3_PL_19 = 1100, - ZYNQMP_PM_RESET_GPO3_PL_20 = 1101, - ZYNQMP_PM_RESET_GPO3_PL_21 = 1102, - ZYNQMP_PM_RESET_GPO3_PL_22 = 1103, - ZYNQMP_PM_RESET_GPO3_PL_23 = 1104, - ZYNQMP_PM_RESET_GPO3_PL_24 = 1105, - ZYNQMP_PM_RESET_GPO3_PL_25 = 1106, - ZYNQMP_PM_RESET_GPO3_PL_26 = 1107, - ZYNQMP_PM_RESET_GPO3_PL_27 = 1108, - ZYNQMP_PM_RESET_GPO3_PL_28 = 1109, - ZYNQMP_PM_RESET_GPO3_PL_29 = 1110, - ZYNQMP_PM_RESET_GPO3_PL_30 = 1111, - ZYNQMP_PM_RESET_GPO3_PL_31 = 1112, - ZYNQMP_PM_RESET_RPU_LS = 1113, - ZYNQMP_PM_RESET_PS_ONLY = 1114, - ZYNQMP_PM_RESET_PL = 1115, - ZYNQMP_PM_RESET_PS_PL0 = 1116, - ZYNQMP_PM_RESET_PS_PL1 = 1117, - ZYNQMP_PM_RESET_PS_PL2 = 1118, - ZYNQMP_PM_RESET_PS_PL3 = 1119, - ZYNQMP_PM_RESET_END = 1119, +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 zynqmp_reset_data { - struct reset_controller_dev rcdev; - const struct zynqmp_reset_soc_data *data; +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 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 ts_state { + unsigned int offset; + char cb[48]; }; -struct serial_private { - struct pci_dev *dev; - unsigned int nr; - struct pci_serial_quirk *quirk; - const struct pciserial_board *board; - int line[0]; -}; +typedef int (*sendmsg_func)(struct sock *, struct msghdr *); -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; +enum { + SK_DIAG_BPF_STORAGE_REQ_NONE = 0, + SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, + __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, }; -struct timedia_struct { - int num; - const unsigned short *ids; +enum { + SK_DIAG_BPF_STORAGE_REP_NONE = 0, + SK_DIAG_BPF_STORAGE = 1, + __SK_DIAG_BPF_STORAGE_REP_MAX = 2, }; -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, +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, }; -struct f815xxa_data { - spinlock_t lock; - int idx; -}; +typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t); -struct exynos_trng_dev { - struct device *dev; - void *mem; - struct clk *clk; - struct hwrng rng; -}; +typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *); -struct subsys_dev_iter { - struct klist_iter ki; - const struct device_type *type; -}; +typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t); -struct sram_config { - int (*init)(); - bool map_only_reserved; -}; +typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *); -struct sram_reserve { - struct list_head list; - u32 start; - u32 size; - struct resource res; - bool export; - bool pool; - bool protect_exec; - const char *label; +struct bpf_sk_storage_diag { + u32 nr_maps; + struct bpf_map *maps[0]; }; -struct sram_partition { - void *base; - struct gen_pool *pool; - struct bin_attribute battr; - struct mutex lock; - struct list_head list; +struct bpf_iter_seq_sk_storage_map_info { + struct bpf_map *map; + unsigned int bucket_id; + unsigned int skip_elems; }; -struct sram_dev { - const struct sram_config *config; - struct device *dev; - void *virt_base; - bool no_memory_wc; - struct gen_pool *pool; - struct sram_partition *partition; - u32 partitions; +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 sas_host_attrs { - struct list_head rphy_list; - struct mutex lock; - struct request_queue *q; - u32 next_target_id; - u32 next_expander_id; - int next_port_id; +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 sas_end_device { - struct sas_rphy rphy; - unsigned int ready_led_meaning: 1; - unsigned int tlr_supported: 1; - unsigned int tlr_enabled: 1; - u16 I_T_nexus_loss_timeout; - u16 initiator_response_timeout; +struct privflags_reply_data { + struct ethnl_reply_data base; + const char (*priv_flag_names)[32]; + unsigned int n_priv_flags; + u32 priv_flags; }; -enum sata_rcar_type { - RCAR_GEN1_SATA = 0, - RCAR_GEN2_SATA = 1, - RCAR_GEN3_SATA = 2, - RCAR_R8A7790_ES1_SATA = 3, +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 sata_rcar_priv { - void *base; - u32 sataint_mask; - enum sata_rcar_type type; +struct ip_fraglist_iter { + struct sk_buff *frag; + struct iphdr *iph; + int offset; + unsigned int hlen; }; -struct hynix_read_retry_otp { - int nregs; - const u8 *regs; - const u8 *values; - int page; - int size; +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 hynix_read_retry; - -struct hynix_nand { - const struct hynix_read_retry *read_retry; +enum devlink_health_reporter_state { + DEVLINK_HEALTH_REPORTER_STATE_HEALTHY = 0, + DEVLINK_HEALTH_REPORTER_STATE_ERROR = 1, }; -struct hynix_read_retry { - int nregs; - const u8 *regs; - u8 values[0]; -}; +struct devlink_health_reporter_ops; -struct mdio_mux_mmioreg_state { - void *mux_handle; - phys_addr_t phys; - unsigned int iosize; - unsigned int mask; -}; +struct devlink_fmsg; -struct xgene_cle_ptree_branch { - bool valid; - u16 next_packet_pointer; - bool jump_bw; - bool jump_rel; - u8 operation; - u16 next_node; - u8 next_branch; - u16 data; - u16 mask; +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; + 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 xgene_cle_ptree_ewdn { - u8 node_type; - bool last_node; - bool hdr_len_store; - u8 hdr_extn; - u8 byte_store; - u8 search_byte_store; - u16 result_pointer; - u8 num_branches; - struct xgene_cle_ptree_branch branch[6]; +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 *); }; -enum xgene_cle_ptree_dbptrs { - DB_RES_DROP = 0, - DB_RES_DEF = 1, - DB_RES_ACCEPT = 2, - DB_MAX_PTRS = 3, +struct devlink_fmsg { + struct list_head item_list; + int err; + bool putting_binary; }; -enum xgene_cle_node_type { - INV = 0, - KN = 1, - EWDN = 2, - RES_NODE = 3, +struct devlink_fmsg_item { + struct list_head list; + int attrtype; + u8 nla_type; + u16 len; + int value[0]; }; -enum xgene_cle_ipv4_rss_hashtype { - RSS_IPV4_8B = 0, - RSS_IPV4_12B = 1, +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 *); }; -enum xgene_cle_prot_version { - XGENE_CLE_IPV4 = 0, -}; +struct lzma_header; -enum xgene_cle_prot_type { - XGENE_CLE_TCP = 0, - XGENE_CLE_UDP = 1, - XGENE_CLE_ESP = 2, - XGENE_CLE_OTHER = 3, +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; }; -enum xgene_cle_dram_type { - PKT_RAM = 0, - RSS_IDT = 1, - RSS_IPV4_HASH_SKEY = 2, - PTREE_RAM = 12, - AVL_RAM = 13, - DB_RAM = 14, -}; +struct lzma_header { + uint8_t pos; + uint32_t dict_size; + uint64_t dst_size; +} __attribute__((packed)); -enum xgene_cle_cmd_type { - CLE_CMD_WR = 1, - CLE_CMD_RD = 2, - CLE_CMD_AVL_ADD = 8, - CLE_CMD_AVL_DEL = 16, - CLE_CMD_AVL_SRCH = 32, +struct cstate { + int state; + uint32_t rep0; + uint32_t rep1; + uint32_t rep2; + uint32_t rep3; }; -struct igbvf_stats { - char stat_string[32]; - int sizeof_stat; - int stat_offset; - int base_stat_offset; +struct fdt_errtabent { + const char *str; }; -struct iova_bitmap_map { - unsigned long iova; - unsigned long pgshift; - unsigned long pgoff; - unsigned long npages; - struct page **pages; +struct fprop_local_single { + unsigned long events; + unsigned int period; + raw_spinlock_t lock; }; -struct iova_bitmap { - struct iova_bitmap_map mapped; - u64 __attribute__((btf_type_tag("user"))) *bitmap; - unsigned long mapped_base_index; - unsigned long mapped_total_index; - unsigned long iova; - size_t length; +struct efi_vendor_dev_path { + struct efi_generic_dev_path header; + efi_guid_t vendorguid; + u8 vendordata[0]; }; -struct ulpi_device_id; - -struct ulpi_driver { - const struct ulpi_device_id *id_table; - int (*probe)(struct ulpi *); - void (*remove)(struct ulpi *); - struct device_driver driver; +enum efistub_event { + EFISTUB_EVT_INITRD = 0, + EFISTUB_EVT_LOAD_OPTIONS = 1, + EFISTUB_EVT_COUNT = 2, }; -struct ulpi_device_id { - __u16 vendor; - __u16 product; - kernel_ulong_t driver_data; +struct efi_tcg2_tagged_event { + u32 tagged_event_id; + u32 tagged_event_data_size; }; -struct ulpi { - struct device dev; - struct ulpi_device_id id; - const struct ulpi_ops *ops; -}; +typedef struct efi_tcg2_tagged_event efi_tcg2_tagged_event_t; -struct usb_phy_generic { - struct usb_phy phy; - struct device *dev; - struct clk *clk; - struct regulator *vcc; - struct gpio_desc *gpiod_reset; - struct gpio_desc *gpiod_vbus; - struct regulator *vbus_draw; - bool vbus_draw_enabled; - unsigned long mA; - unsigned int vbus; -}; +struct efi_measured_event { + efi_tcg2_event_t event_data; + efi_tcg2_tagged_event_t tagged_event; + u8 tagged_event_data[0]; +} __attribute__((packed)); -struct mu3h_sch_tt; +union efi_load_file_protocol; -struct mu3h_sch_ep_info { - u32 esit; - u32 num_esit; - u32 num_budget_microframes; - u32 bw_cost_per_microframe; - struct list_head endpoint; - struct hlist_node hentry; - struct list_head tt_endpoint; - struct mu3h_sch_bw_info *bw_info; - struct mu3h_sch_tt *sch_tt; - u32 ep_type; - u32 maxpkt; - struct usb_host_endpoint *ep; - enum usb_device_speed speed; - bool allocated; - u32 offset; - u32 repeat; - u32 pkts; - u32 cs_count; - u32 burst_mode; -}; +typedef union efi_load_file_protocol efi_load_file_protocol_t; -struct mu3h_sch_tt { - u32 fs_bus_bw[64]; - struct list_head ep_list; +union efi_load_file_protocol { + struct { + efi_status_t (*load_file)(efi_load_file_protocol_t *, efi_device_path_protocol_t *, bool, unsigned long *, void *); + }; + struct { + u32 load_file; + } mixed_mode; }; -enum bdc_link_state { - BDC_LINK_STATE_U0 = 0, - BDC_LINK_STATE_U3 = 3, - BDC_LINK_STATE_RX_DET = 5, - BDC_LINK_STATE_RESUME = 15, -}; +typedef union efi_load_file_protocol efi_load_file2_protocol_t; -enum muxtype { - pca954x_ismux = 0, - pca954x_isswi = 1, -}; +typedef struct { + u32 attributes; + u16 file_path_list_length; + u8 variable_data[0]; +} __attribute__((packed)) efi_load_option_t; -struct chip_desc { - u8 nchans; - u8 enable; - u8 has_irq; - enum muxtype muxtype; - struct i2c_device_identity id; -}; +typedef struct { + u32 attributes; + u16 file_path_list_length; + const efi_char16_t *description; + const efi_device_path_protocol_t *file_path_list; + u32 optional_data_size; + const void *optional_data; +} efi_load_option_unpacked_t; -struct pca954x { - const struct chip_desc *chip; - u8 last_chan; - s32 idle_state; - struct i2c_client *client; - struct irq_domain *irq; - unsigned int irq_mask; - raw_spinlock_t lock; -}; +union efi_memory_attribute_protocol; -struct rzg2l_thermal_priv { - struct device *dev; - void *base; - struct thermal_zone_device *zone; - struct reset_control *rstc; - u32 calib0; - u32 calib1; -}; +typedef union efi_memory_attribute_protocol efi_memory_attribute_protocol_t; -struct dev_ch_attribute { - struct device_attribute attr; - unsigned int channel; +union efi_memory_attribute_protocol { + struct { + efi_status_t (*get_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64 *); + efi_status_t (*set_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64); + efi_status_t (*clear_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64); + }; + struct { + u32 get_memory_attributes; + u32 set_memory_attributes; + u32 clear_memory_attributes; + } mixed_mode; }; -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 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 walksize; + union { + struct { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + struct crypto_alg base; + }; + struct skcipher_alg_common co; + }; }; -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 mac_tfm_ctx { + struct crypto_aes_ctx key; + long: 0; + u8 consts[0]; }; -struct cpuidle_driver_kobj { - struct cpuidle_driver *drv; - struct completion kobj_unregister; - struct kobject kobj; +struct crypto_aes_xts_ctx { + struct crypto_aes_ctx key1; + long: 0; + struct crypto_aes_ctx key2; + long: 0; }; -struct cpuidle_device_kobj { - struct cpuidle_device *dev; - struct completion kobj_unregister; - struct kobject kobj; +struct crypto_aes_essiv_cbc_ctx { + struct crypto_aes_ctx key1; + long: 0; + struct crypto_aes_ctx key2; + struct crypto_shash *hash; }; -struct cpuidle_driver_attr { - struct attribute attr; - ssize_t (*show)(struct cpuidle_driver *, char *); - ssize_t (*store)(struct cpuidle_driver *, const char *, size_t); +struct mac_desc_ctx { + unsigned int len; + u8 dg[16]; }; -struct cpuidle_attr { - struct attribute attr; - ssize_t (*show)(struct cpuidle_device *, char *); - ssize_t (*store)(struct cpuidle_device *, const char *, size_t); +enum sysctl_writes_mode { + SYSCTL_WRITES_LEGACY = -1, + SYSCTL_WRITES_WARN = 0, + SYSCTL_WRITES_STRICT = 1, }; -struct of_mmc_spi { - struct mmc_spi_platform_data pdata; - int detect_irq; +struct do_proc_dointvec_minmax_conv_param { + int *min; + int *max; }; -typedef void (*btf_trace_ufshcd_clk_gating)(void *, const char *, int); - -typedef void (*btf_trace_ufshcd_clk_scaling)(void *, const char *, const char *, const char *, u32, u32); +struct do_proc_douintvec_minmax_conv_param { + unsigned int *min; + unsigned int *max; +}; -typedef void (*btf_trace_ufshcd_auto_bkops_state)(void *, const char *, const char *); +typedef void (*btf_trace_timer_init)(void *, struct timer_list *); -typedef void (*btf_trace_ufshcd_profile_hibern8)(void *, const char *, const char *, s64, int); +typedef void (*btf_trace_timer_start)(void *, struct timer_list *, unsigned long, unsigned int); -typedef void (*btf_trace_ufshcd_profile_clk_gating)(void *, const char *, const char *, s64, int); +typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, unsigned long); -typedef void (*btf_trace_ufshcd_profile_clk_scaling)(void *, const char *, const char *, s64, int); +typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *); -typedef void (*btf_trace_ufshcd_system_suspend)(void *, const char *, int, s64, int, int); +typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *); -typedef void (*btf_trace_ufshcd_system_resume)(void *, const char *, int, s64, int, int); +typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode); -typedef void (*btf_trace_ufshcd_runtime_suspend)(void *, const char *, int, s64, int, int); +typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode); -typedef void (*btf_trace_ufshcd_runtime_resume)(void *, const char *, int, s64, int, int); +typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *); -typedef void (*btf_trace_ufshcd_init)(void *, const char *, int, s64, int, int); +typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *); -typedef void (*btf_trace_ufshcd_wl_suspend)(void *, const char *, int, s64, int, int); +typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *); -typedef void (*btf_trace_ufshcd_wl_resume)(void *, const char *, int, s64, int, int); +typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, unsigned long long); -typedef void (*btf_trace_ufshcd_wl_runtime_suspend)(void *, const char *, int, s64, int, int); +typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, unsigned long long); -typedef void (*btf_trace_ufshcd_wl_runtime_resume)(void *, const char *, int, s64, int, int); +typedef void (*btf_trace_tick_stop)(void *, int, int); -enum ufs_trace_str_t { - UFS_CMD_SEND = 0, - UFS_CMD_COMP = 1, - UFS_DEV_COMP = 2, - UFS_QUERY_SEND = 3, - UFS_QUERY_COMP = 4, - UFS_QUERY_ERR = 5, - UFS_TM_SEND = 6, - UFS_TM_COMP = 7, - UFS_TM_ERR = 8, +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; }; -typedef void (*btf_trace_ufshcd_command)(void *, const char *, enum ufs_trace_str_t, unsigned int, u32, u32, int, u32, u64, u8, u8); - -typedef void (*btf_trace_ufshcd_uic_command)(void *, const char *, enum ufs_trace_str_t, u32, u32, u32, u32); - -enum ufs_trace_tsf_t { - UFS_TSF_CDB = 0, - UFS_TSF_OSF = 1, - UFS_TSF_TM_INPUT = 2, - UFS_TSF_TM_OUTPUT = 3, +struct trace_event_raw_timer_class { + struct trace_entry ent; + void *timer; + char __data[0]; }; -typedef void (*btf_trace_ufshcd_upiu)(void *, const char *, enum ufs_trace_str_t, void *, void *, enum ufs_trace_tsf_t); - -typedef void (*btf_trace_ufshcd_exception_event)(void *, const char *, u16); - -struct ufs_pm_lvl_states { - enum ufs_dev_pwr_mode dev_state; - enum uic_link_state link_state; +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 ufs_dev_quirk { - u16 wmanufacturerid; - const u8 *model; - unsigned int quirk; +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 ufs_ref_clk { - unsigned long freq_hz; - enum ufs_ref_clk_freq val; +struct trace_event_raw_hrtimer_init { + struct trace_entry ent; + void *hrtimer; + clockid_t clockid; + enum hrtimer_mode mode; + char __data[0]; }; -enum ufs_unipro_ver { - UFS_UNIPRO_VER_RESERVED = 0, - UFS_UNIPRO_VER_1_40 = 1, - UFS_UNIPRO_VER_1_41 = 2, - UFS_UNIPRO_VER_1_6 = 3, - UFS_UNIPRO_VER_1_61 = 4, - UFS_UNIPRO_VER_1_8 = 5, - UFS_UNIPRO_VER_MAX = 6, - UFS_UNIPRO_VER_MASK = 15, +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]; }; -enum { - UPIU_QUERY_FUNC_STANDARD_READ_REQUEST = 1, - UPIU_QUERY_FUNC_STANDARD_WRITE_REQUEST = 129, +struct trace_event_raw_hrtimer_expire_entry { + struct trace_entry ent; + void *hrtimer; + s64 now; + void *function; + char __data[0]; }; -enum desc_header_offset { - QUERY_DESC_LENGTH_OFFSET = 0, - QUERY_DESC_DESC_TYPE_OFFSET = 1, +struct trace_event_raw_hrtimer_class { + struct trace_entry ent; + void *hrtimer; + char __data[0]; }; -enum { - UFSHCD_EH_IN_PROGRESS = 1, +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]; }; -enum utp_ocs { - OCS_SUCCESS = 0, - OCS_INVALID_CMD_TABLE_ATTR = 1, - OCS_INVALID_PRDT_ATTR = 2, - OCS_MISMATCH_DATA_BUF_SIZE = 3, - OCS_MISMATCH_RESP_UPIU_SIZE = 4, - OCS_PEER_COMM_FAILURE = 5, - OCS_ABORTED = 6, - OCS_FATAL_ERROR = 7, - OCS_DEVICE_FATAL_ERROR = 8, - OCS_INVALID_CRYPTO_CONFIG = 9, - OCS_GENERAL_CRYPTO_ERROR = 10, - OCS_INVALID_COMMAND_STATUS = 15, +struct trace_event_raw_itimer_expire { + struct trace_entry ent; + int which; + pid_t pid; + unsigned long long now; + char __data[0]; }; -enum { - UTP_CMD_TYPE_SCSI = 0, - UTP_CMD_TYPE_UFS = 1, - UTP_CMD_TYPE_DEV_MANAGE = 2, +struct trace_event_raw_tick_stop { + struct trace_entry ent; + int success; + int dependency; + char __data[0]; }; -enum { - UTP_CMD_TYPE_UFS_STORAGE = 1, +struct process_timer { + struct timer_list timer; + struct task_struct *task; }; -enum { - MASK_OCS = 15, -}; +struct trace_event_data_offsets_timer_class {}; -enum { - MASK_SCSI_STATUS = 255, - MASK_TASK_RESPONSE = 65280, - MASK_RSP_UPIU_RESULT = 65535, - MASK_QUERY_DATA_SEG_LEN = 65535, - MASK_RSP_UPIU_DATA_SEG_LEN = 65535, - MASK_RSP_EXCEPTION_EVENT = 65536, - MASK_TM_SERVICE_RESP = 255, - MASK_TM_FUNC = 255, -}; +struct trace_event_data_offsets_timer_start {}; -enum { - UPIU_TRANSACTION_NOP_OUT = 0, - UPIU_TRANSACTION_COMMAND = 1, - UPIU_TRANSACTION_DATA_OUT = 2, - UPIU_TRANSACTION_TASK_REQ = 4, - UPIU_TRANSACTION_QUERY_REQ = 22, -}; +struct trace_event_data_offsets_timer_expire_entry {}; -enum { - UTP_SCSI_COMMAND = 0, - UTP_NATIVE_UFS_COMMAND = 268435456, - UTP_DEVICE_MANAGEMENT_FUNCTION = 536870912, - UTP_REQ_DESC_INT_CMD = 16777216, - UTP_REQ_DESC_CRYPTO_ENABLE_CMD = 8388608, -}; +struct trace_event_data_offsets_hrtimer_init {}; -enum { - UPIU_TASK_MANAGEMENT_FUNC_COMPL = 0, - UPIU_TASK_MANAGEMENT_FUNC_NOT_SUPPORTED = 4, - UPIU_TASK_MANAGEMENT_FUNC_SUCCEEDED = 8, - UPIU_TASK_MANAGEMENT_FUNC_FAILED = 5, - UPIU_INCORRECT_LOGICAL_UNIT_NO = 9, -}; +struct trace_event_data_offsets_hrtimer_start {}; -enum { - UFSHCD_MAX_CHANNEL = 0, - UFSHCD_MAX_ID = 1, - UFSHCD_CMD_PER_LUN = 31, - UFSHCD_CAN_QUEUE = 31, -}; +struct trace_event_data_offsets_hrtimer_expire_entry {}; -enum { - PWR_OK = 0, - PWR_LOCAL = 1, - PWR_REMOTE = 2, - PWR_BUSY = 3, - PWR_ERROR_CAP = 4, - PWR_FATAL_ERROR = 5, +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 {}; + +enum cgroup_filetype { + CGROUP_FILE_PROCS = 0, + CGROUP_FILE_TASKS = 1, }; -enum { - INTERRUPT_MASK_ALL_VER_10 = 200703, - INTERRUPT_MASK_RW_VER_10 = 196608, - INTERRUPT_MASK_ALL_VER_11 = 204799, - INTERRUPT_MASK_ALL_VER_21 = 466943, +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 = 8, + Opt_nofavordynmods = 9, }; -enum { - UPIU_TRANSACTION_NOP_IN = 32, - UPIU_TRANSACTION_RESPONSE = 33, - UPIU_TRANSACTION_DATA_IN = 34, - UPIU_TRANSACTION_TASK_RSP = 36, - UPIU_TRANSACTION_READY_XFER = 49, - UPIU_TRANSACTION_QUERY_RSP = 54, - UPIU_TRANSACTION_REJECT_UPIU = 63, +struct cgrp_cset_link { + struct cgroup *cgrp; + struct css_set *cset; + struct list_head cset_link; + struct list_head cgrp_link; }; -enum { - UFSHCD_UIC_DL_PA_INIT_ERROR = 1, - UFSHCD_UIC_DL_NAC_RECEIVED_ERROR = 2, - UFSHCD_UIC_DL_TCx_REPLAY_ERROR = 4, - UFSHCD_UIC_NL_ERROR = 8, - UFSHCD_UIC_TL_ERROR = 16, - UFSHCD_UIC_DME_ERROR = 32, - UFSHCD_UIC_PA_GENERIC_ERROR = 64, +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; }; -enum { - UTP_NO_DATA_TRANSFER = 0, - UTP_HOST_TO_DEVICE = 33554432, - UTP_DEVICE_TO_HOST = 67108864, +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 { - UPIU_CMD_FLAGS_NONE = 0, - UPIU_CMD_FLAGS_WRITE = 32, - UPIU_CMD_FLAGS_READ = 64, +struct cgroup_mgctx { + struct list_head preloaded_src_csets; + struct list_head preloaded_dst_csets; + struct cgroup_taskset tset; + u16 ss_mask; }; -enum UFSHPB_STATE { - HPB_INIT = 0, - HPB_PRESENT = 1, - HPB_SUSPEND = 2, - HPB_FAILED = 3, - HPB_RESET = 4, +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; }; -enum { - UFSHCD_POLL_FROM_INTERRUPT_CONTEXT = -1, +struct ftrace_page; + +struct ftrace_rec_iter { + struct ftrace_page *pg; + int index; }; -enum { - UFS_DEV_LOW_TEMP_NOTIF = 16, - UFS_DEV_HIGH_TEMP_NOTIF = 32, - UFS_DEV_EXT_TEMP_NOTIF = 64, - UFS_DEV_HPB_SUPPORT = 128, - UFS_DEV_WRITE_BOOSTER_SUP = 256, - UFS_DEV_EXT_IID_SUP = 65536, +struct ftrace_page { + struct ftrace_page *next; + struct dyn_ftrace *records; + int index; + int order; }; -enum { - UFSHCD_NANO_AMP = 0, - UFSHCD_MICRO_AMP = 1, - UFSHCD_MILI_AMP = 2, - UFSHCD_AMP = 3, +enum ftrace_bug_type { + FTRACE_BUG_UNKNOWN = 0, + FTRACE_BUG_INIT = 1, + FTRACE_BUG_NOP = 2, + FTRACE_BUG_CALL = 3, + FTRACE_BUG_UPDATE = 4, }; -enum { - UPIU_COMMAND_SET_TYPE_SCSI = 0, - UPIU_COMMAND_SET_TYPE_UFS = 1, - UPIU_COMMAND_SET_TYPE_QUERY = 2, +struct ftrace_profile_page; + +struct ftrace_profile_stat { + atomic_t disabled; + struct hlist_head *hash; + struct ftrace_profile_page *pages; + struct ftrace_profile_page *start; + struct tracer_stat stat; }; -enum ufs_lu_wp_type { - UFS_LU_NO_WP = 0, - UFS_LU_POWER_ON_WP = 1, - UFS_LU_PERM_WP = 2, +struct ftrace_profile { + struct hlist_node node; + unsigned long ip; + unsigned long counter; + unsigned long long time; + unsigned long long time_squared; }; -enum rpmb_unit_desc_param { - RPMB_UNIT_DESC_PARAM_LEN = 0, - RPMB_UNIT_DESC_PARAM_TYPE = 1, - RPMB_UNIT_DESC_PARAM_UNIT_INDEX = 2, - RPMB_UNIT_DESC_PARAM_LU_ENABLE = 3, - RPMB_UNIT_DESC_PARAM_BOOT_LUN_ID = 4, - RPMB_UNIT_DESC_PARAM_LU_WR_PROTECT = 5, - RPMB_UNIT_DESC_PARAM_LU_Q_DEPTH = 6, - RPMB_UNIT_DESC_PARAM_PSA_SENSITIVE = 7, - RPMB_UNIT_DESC_PARAM_MEM_TYPE = 8, - RPMB_UNIT_DESC_PARAM_REGION_EN = 9, - RPMB_UNIT_DESC_PARAM_LOGICAL_BLK_SIZE = 10, - RPMB_UNIT_DESC_PARAM_LOGICAL_BLK_COUNT = 11, - RPMB_UNIT_DESC_PARAM_REGION0_SIZE = 19, - RPMB_UNIT_DESC_PARAM_REGION1_SIZE = 20, - RPMB_UNIT_DESC_PARAM_REGION2_SIZE = 21, - RPMB_UNIT_DESC_PARAM_REGION3_SIZE = 22, - RPMB_UNIT_DESC_PARAM_PROVISIONING_TYPE = 23, - RPMB_UNIT_DESC_PARAM_PHY_MEM_RSRC_CNT = 24, +struct ftrace_profile_page { + struct ftrace_profile_page *next; + unsigned long index; + struct ftrace_profile records[0]; }; enum { - MASK_EXT_IID_SUPPORT = 1024, + FTRACE_MODIFY_ENABLE_FL = 1, + FTRACE_MODIFY_MAY_SLEEP_FL = 2, }; enum { - TASK_REQ_UPIU_SIZE_DWORDS = 8, - TASK_RSP_UPIU_SIZE_DWORDS = 8, - ALIGNED_UPIU_SIZE = 512, + FTRACE_ITER_FILTER = 1, + FTRACE_ITER_NOTRACE = 2, + FTRACE_ITER_PRINTALL = 4, + FTRACE_ITER_DO_PROBES = 8, + FTRACE_ITER_PROBE = 16, + FTRACE_ITER_MOD = 32, + FTRACE_ITER_ENABLED = 64, + FTRACE_ITER_TOUCHED = 128, + FTRACE_ITER_ADDRS = 256, }; -struct trace_event_raw_ufshcd_clk_gating { - struct trace_entry ent; - u32 __data_loc_dev_name; - int state; - char __data[0]; +enum regex_type { + MATCH_FULL = 0, + MATCH_FRONT_ONLY = 1, + MATCH_MIDDLE_ONLY = 2, + MATCH_END_ONLY = 3, + MATCH_GLOB = 4, + MATCH_INDEX = 5, }; -struct trace_event_raw_ufshcd_clk_scaling { - struct trace_entry ent; - u32 __data_loc_dev_name; - u32 __data_loc_state; - u32 __data_loc_clk; - u32 prev_state; - u32 curr_state; - char __data[0]; +enum { + FTRACE_UPDATE_IGNORE = 0, + FTRACE_UPDATE_MAKE_CALL = 1, + FTRACE_UPDATE_MODIFY_CALL = 2, + FTRACE_UPDATE_MAKE_NOP = 3, }; -struct trace_event_raw_ufshcd_auto_bkops_state { - struct trace_entry ent; - u32 __data_loc_dev_name; - u32 __data_loc_state; - char __data[0]; +enum graph_filter_type { + GRAPH_FILTER_NOTRACE = 0, + GRAPH_FILTER_FUNCTION = 1, }; -struct trace_event_raw_ufshcd_profiling_template { - struct trace_entry ent; - u32 __data_loc_dev_name; - u32 __data_loc_profile_info; - s64 time_us; - int err; - char __data[0]; +struct ftrace_func_mapper { + struct ftrace_hash hash; }; -struct trace_event_raw_ufshcd_template { - struct trace_entry ent; - s64 usecs; - int err; - u32 __data_loc_dev_name; - int dev_state; - int link_state; - char __data[0]; +struct ftrace_func_map { + struct ftrace_func_entry entry; + void *data; }; -struct trace_event_raw_ufshcd_command { - struct trace_entry ent; - u32 __data_loc_dev_name; - enum ufs_trace_str_t str_t; - unsigned int tag; - u32 doorbell; - u32 hwq_id; - u32 intr; - u64 lba; - int transfer_len; - u8 opcode; - u8 group_id; - char __data[0]; +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 trace_event_raw_ufshcd_uic_command { - struct trace_entry ent; - u32 __data_loc_dev_name; - enum ufs_trace_str_t str_t; - u32 cmd; - u32 arg1; - u32 arg2; - u32 arg3; - char __data[0]; +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 trace_event_raw_ufshcd_upiu { - struct trace_entry ent; - u32 __data_loc_dev_name; - enum ufs_trace_str_t str_t; - unsigned char hdr[12]; - unsigned char tsf[16]; - enum ufs_trace_tsf_t tsf_t; - char __data[0]; +struct ftrace_mod_func { + struct list_head list; + char *name; + unsigned long ip; + unsigned int size; }; -struct trace_event_raw_ufshcd_exception_event { - struct trace_entry ent; - u32 __data_loc_dev_name; - u16 status; - char __data[0]; +struct ftrace_init_func { + struct list_head list; + unsigned long ip; }; -struct utp_upiu_query_v4_0 { - __u8 opcode; - __u8 idn; - __u8 index; - __u8 selector; - __u8 osf3; - __u8 osf4; - __be16 osf5; - __be32 osf6; - __be32 osf7; - __be32 reserved; +struct ftrace_mod_load { + struct list_head list; + char *func; + char *module; + int enable; }; -struct trace_event_data_offsets_ufshcd_clk_gating { - u32 dev_name; +struct ftrace_iterator { + loff_t pos; + loff_t func_pos; + loff_t mod_pos; + struct ftrace_page *pg; + struct dyn_ftrace *func; + struct ftrace_func_probe *probe; + struct ftrace_func_entry *probe_entry; + struct trace_parser parser; + struct ftrace_hash *hash; + struct ftrace_ops *ops; + struct trace_array *tr; + struct list_head *mod_list; + int pidx; + int idx; + unsigned int flags; }; -struct trace_event_data_offsets_ufshcd_clk_scaling { - u32 dev_name; - u32 state; - u32 clk; +struct ftrace_glob { + char *search; + unsigned int len; + int type; }; -struct trace_event_data_offsets_ufshcd_auto_bkops_state { - u32 dev_name; - u32 state; +struct ftrace_graph_data { + struct ftrace_hash *hash; + struct ftrace_func_entry *entry; + int idx; + enum graph_filter_type type; + struct ftrace_hash *new_hash; + const struct seq_operations *seq_ops; + struct trace_parser parser; }; -struct trace_event_data_offsets_ufshcd_profiling_template { - u32 dev_name; - u32 profile_info; +struct kallsyms_data { + unsigned long *addrs; + const char **syms; + size_t cnt; + size_t found; }; -struct trace_event_data_offsets_ufshcd_template { - u32 dev_name; +struct bpf_empty_prog_array { + struct bpf_prog_array hdr; + struct bpf_prog *null_prog; }; -struct trace_event_data_offsets_ufshcd_command { - u32 dev_name; -}; +typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32); -struct trace_event_data_offsets_ufshcd_uic_command { - u32 dev_name; -}; +typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int); -struct trace_event_data_offsets_ufshcd_upiu { - u32 dev_name; -}; +typedef void (*btf_trace_xdp_redirect)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); -struct trace_event_data_offsets_ufshcd_exception_event { - u32 dev_name; -}; +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 bool busy_tag_iter_fn(struct request *, void *); +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); -struct uc_string_id { - u8 len; - u8 type; - wchar_t uc[0]; -}; +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); -struct ufs_arpmb_meta { - __be16 req_resp_type; - __u8 nonce[16]; - __be32 write_counter; - __be16 addr_lun; - __be16 block_count; - __be16 result; -} __attribute__((packed)); +typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); -struct ufs_ehs { - __u8 length; - __u8 ehs_type; - __be16 ehssub_type; - struct ufs_arpmb_meta meta; - __u8 mac_key[32]; -}; +typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int); -struct rmem_assigned_device { - struct device *dev; - struct reserved_mem *rmem; - struct list_head list; -}; +typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int); -typedef int (*reservedmem_of_init_fn)(struct reserved_mem *); +typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *); -struct qcom_apcs_ipc_data { - int offset; - char *clk_name; +typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *); + +typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *); + +typedef void (*btf_trace_bpf_xdp_link_attach_failed)(void *, const char *); + +struct rnd_state { + __u32 s1; + __u32 s2; + __u32 s3; + __u32 s4; }; -struct qcom_apcs_ipc { - struct mbox_controller mbox; - struct mbox_chan mbox_chans[32]; - struct regmap *regmap; - unsigned long offset; - struct platform_device *clk; +struct bpf_prog_dummy { + struct bpf_prog prog; }; -enum mtk_smi_type { - MTK_SMI_GEN1 = 0, - MTK_SMI_GEN2 = 1, - MTK_SMI_GEN2_SUB_COMM = 2, +struct bpf_prog_pack { + struct list_head list; + void *ptr; + unsigned long bitmap[0]; }; -struct mtk_smi_reg_pair; +typedef u64 (*btf_bpf_user_rnd_u32)(); -struct mtk_smi_common_plat { - enum mtk_smi_type type; - bool has_gals; - u32 bus_sel; - const struct mtk_smi_reg_pair *init; -}; +typedef u64 (*btf_bpf_get_raw_cpu_id)(); -struct mtk_smi_reg_pair { - unsigned int offset; - u32 value; +struct trace_event_raw_xdp_exception { + struct trace_entry ent; + int prog_id; + u32 act; + int ifindex; + char __data[0]; }; -struct mtk_smi_larb_gen { - int port_in_larb[33]; - int (*config_port)(struct device *); - unsigned int larb_direct_to_common_mask; - unsigned int flags_general; - const u8 (*ostd)[32]; +struct trace_event_raw_xdp_bulk_tx { + struct trace_entry ent; + int ifindex; + u32 act; + int drops; + int sent; + int err; + char __data[0]; }; -enum iommu_atf_cmd { - IOMMU_ATF_CMD_CONFIG_SMI_LARB = 0, - IOMMU_ATF_CMD_MAX = 1, +struct _bpf_dtab_netdev { + struct net_device *dev; }; -struct mtk_smi { - struct device *dev; - unsigned int clk_num; - struct clk_bulk_data clks[4]; - struct clk *clk_async; - union { - void *smi_ao_base; - void *base; - }; - struct device *smi_common_dev; - const struct mtk_smi_common_plat *plat; +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 mtk_smi_larb { - struct mtk_smi smi; - void *base; - struct device *smi_common_dev; - const struct mtk_smi_larb_gen *larb_gen; - int larbid; - u32 *mmu; - unsigned char *bank; +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 mtk_efuse_pdata { - bool uses_post_processing; +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 mtk_efuse_priv { - void *base; +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 optee_rpc_param; - -typedef void (*btf_trace_optee_invoke_fn_begin)(void *, struct optee_rpc_param *); - -struct optee_rpc_param { - u32 a0; - u32 a1; - u32 a2; - u32 a3; - u32 a4; - u32 a5; - u32 a6; - u32 a7; +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]; }; -typedef void (*btf_trace_optee_invoke_fn_end)(void *, struct optee_rpc_param *, struct arm_smccc_res *); - -struct trace_event_raw_optee_invoke_fn_begin { +struct trace_event_raw_mem_connect { struct trace_entry ent; - void *param; - u32 args[8]; + 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_optee_invoke_fn_end { +struct trace_event_raw_mem_return_failed { struct trace_entry ent; - void *param; - unsigned long rets[4]; + const struct page *page; + u32 mem_id; + u32 mem_type; char __data[0]; }; -struct optee_smc_call_get_os_revision_result { - unsigned long major; - unsigned long minor; - unsigned long build_id; - unsigned long reserved1; +struct trace_event_raw_bpf_xdp_link_attach_failed { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -struct optee_smc_calls_revision_result { - unsigned long major; - unsigned long minor; - unsigned long reserved0; - unsigned long reserved1; +struct trace_event_data_offsets_bpf_xdp_link_attach_failed { + u32 msg; }; -struct optee_smc_exchange_capabilities_result { - unsigned long status; - unsigned long capabilities; - unsigned long max_notif_value; - unsigned long data; -}; +struct trace_event_data_offsets_xdp_exception {}; -struct optee_smc_get_shm_config_result { - unsigned long status; - unsigned long start; - unsigned long size; - unsigned long settings; -}; +struct trace_event_data_offsets_xdp_bulk_tx {}; -struct optee_smc_disable_shm_cache_result { - unsigned long status; - unsigned long shm_upper32; - unsigned long shm_lower32; - unsigned long reserved0; -}; +struct trace_event_data_offsets_xdp_redirect_template {}; -struct optee_call_ctx { - void *pages_list; - size_t num_entries; -}; +struct trace_event_data_offsets_xdp_cpumap_kthread {}; -struct trace_event_data_offsets_optee_invoke_fn_begin {}; +struct trace_event_data_offsets_xdp_cpumap_enqueue {}; -struct trace_event_data_offsets_optee_invoke_fn_end {}; +struct trace_event_data_offsets_xdp_devmap_xmit {}; -struct drop_reason_list { - const char * const *reasons; - size_t n_reasons; -}; +struct trace_event_data_offsets_mem_disconnect {}; -struct skb_checksum_ops { - __wsum (*update)(const void *, int, __wsum); - __wsum (*combine)(__wsum, __wsum, int, int); -}; +struct trace_event_data_offsets_mem_connect {}; -struct page_frag_1k { - void *va; - u16 offset; - bool pfmemalloc; -}; +struct trace_event_data_offsets_mem_return_failed {}; -struct napi_alloc_cache { - struct page_frag_cache page; - struct page_frag_1k page_small; - unsigned int skb_count; - void *skb_cache[64]; +struct dirty_throttle_control { + struct wb_domain *dom; + struct dirty_throttle_control *gdtc; + struct bdi_writeback *wb; + struct fprop_local_percpu *wb_completions; + unsigned long avail; + unsigned long dirty; + unsigned long thresh; + unsigned long bg_thresh; + unsigned long wb_dirty; + unsigned long wb_thresh; + unsigned long wb_bg_thresh; + unsigned long pos_ratio; }; -enum skb_drop_reason_subsys { - SKB_DROP_REASON_SUBSYS_CORE = 0, - SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1, - SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR = 2, - SKB_DROP_REASON_SUBSYS_NUM = 3, +struct wb_lock_cookie { + bool locked; + unsigned long flags; }; -enum skb_ext_id { - SKB_EXT_BRIDGE_NF = 0, - SKB_EXT_NUM = 1, +struct dma_page { + struct list_head page_list; + void *vaddr; + dma_addr_t dma; }; -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 dma_block; -struct ip_auth_hdr { - __u8 nexthdr; - __u8 hdrlen; - __be16 reserved; - __be32 spi; - __be32 seq_no; - __u8 auth_data[0]; +struct dma_pool { + struct list_head page_list; + spinlock_t lock; + struct dma_block *next_block; + size_t nr_blocks; + size_t nr_active; + size_t nr_pages; + struct device *dev; + unsigned int size; + unsigned int allocation; + unsigned int boundary; + char name[32]; + struct list_head pools; }; -struct mpls_shim_hdr { - __be32 label_stack_entry; +struct dma_block { + struct dma_block *next_block; + dma_addr_t dma; }; -struct skb_free_array { - unsigned int skb_count; - void *skb_array[16]; -}; +typedef void (*btf_trace_cma_release)(void *, const char *, unsigned long, const struct page *, unsigned long); -typedef int (*sendmsg_func)(struct sock *, struct msghdr *); +typedef void (*btf_trace_cma_alloc_start)(void *, const char *, unsigned long, unsigned int); -struct ts_ops; +typedef void (*btf_trace_cma_alloc_finish)(void *, const char *, unsigned long, const struct page *, unsigned long, unsigned int, int); -struct ts_state; +typedef void (*btf_trace_cma_alloc_busy_retry)(void *, const char *, unsigned long, const struct page *, unsigned long, unsigned int); -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 trace_event_raw_cma_release { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long pfn; + const struct page *page; + unsigned long count; + char __data[0]; }; -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 trace_event_raw_cma_alloc_start { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long count; + unsigned int align; + char __data[0]; }; -struct ts_state { - unsigned int offset; - char cb[48]; +struct trace_event_raw_cma_alloc_finish { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long pfn; + const struct page *page; + unsigned long count; + unsigned int align; + int errorno; + char __data[0]; }; -struct strset_info { - bool per_dev; - bool free_strings; - unsigned int count; - const char (*strings)[32]; +struct trace_event_raw_cma_alloc_busy_retry { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long pfn; + const struct page *page; + unsigned long count; + unsigned int align; + char __data[0]; }; -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, +struct trace_event_data_offsets_cma_release { + u32 name; }; -enum { - ETHTOOL_A_STRINGSETS_UNSPEC = 0, - ETHTOOL_A_STRINGSETS_STRINGSET = 1, - __ETHTOOL_A_STRINGSETS_CNT = 2, - ETHTOOL_A_STRINGSETS_MAX = 1, +struct trace_event_data_offsets_cma_alloc_start { + u32 name; }; -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, +struct trace_event_data_offsets_cma_alloc_finish { + u32 name; }; -enum { - ETHTOOL_A_STRINGS_UNSPEC = 0, - ETHTOOL_A_STRINGS_STRING = 1, - __ETHTOOL_A_STRINGS_CNT = 2, - ETHTOOL_A_STRINGS_MAX = 1, +struct trace_event_data_offsets_cma_alloc_busy_retry { + u32 name; }; -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, -}; +typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); -struct strset_req_info { - struct ethnl_req_info base; - u32 req_ids; - bool counts_only; -}; +struct epitem; -struct strset_reply_data { - struct ethnl_reply_data base; - struct strset_info sets[21]; +struct eventpoll { + struct mutex mtx; + wait_queue_head_t wq; + wait_queue_head_t poll_wait; + struct list_head rdllist; + rwlock_t lock; + struct rb_root_cached rbr; + struct epitem *ovflist; + struct wakeup_source *ws; + struct user_struct *user; + struct file *file; + u64 gen; + struct hlist_head refs; + refcount_t refcount; + unsigned int napi_id; }; -struct uncached_list { - spinlock_t lock; - struct list_head head; - struct list_head quarantine; -}; +struct epoll_filefd { + struct file *file; + int fd; +} __attribute__((packed)); -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 eppoll_entry; -struct rpc_cb_add_xprt_calldata { - struct rpc_xprt_switch *xps; - struct rpc_xprt *xprt; +struct epitem { + union { + struct rb_node rbn; + struct callback_head rcu; + }; + struct list_head rdllink; + struct epitem *next; + struct epoll_filefd ffd; + bool dying; + struct eppoll_entry *pwqlist; + struct eventpoll *ep; + struct hlist_node fllink; + struct wakeup_source __attribute__((btf_type_tag("rcu"))) *ws; + struct epoll_event event; }; -struct connect_timeout_data { - unsigned long connect_timeout; - unsigned long reconnect_timeout; +struct eppoll_entry { + struct eppoll_entry *next; + struct epitem *base; + wait_queue_entry_t wait; + wait_queue_head_t *whead; }; -struct errormap { - char *name; - int val; - int namelen; - struct hlist_node list; +struct epitems_head { + struct hlist_head epitems; + struct epitems_head *next; }; -struct compress_format { - unsigned char magic[2]; - const char *name; - decompress_fn decompressor; +struct ep_pqueue { + poll_table pt; + struct epitem *epi; }; -struct taint_flag { - char c_true; - char c_false; - bool module; +struct kernfs_global_locks { + struct mutex open_file_mutex[1024]; }; -enum con_flush_mode { - CONSOLE_FLUSH_PENDING = 0, - CONSOLE_REPLAY_ALL = 1, +struct configfs_buffer { + size_t count; + loff_t pos; + char *page; + struct configfs_item_operations *ops; + struct mutex mutex; + int needs_read_fill; + bool read_in_progress; + bool write_in_progress; + char *bin_buffer; + int bin_buffer_size; + int cb_max_size; + struct config_item *item; + struct module *owner; + union { + struct configfs_attribute *attr; + struct configfs_bin_attribute *bin_attr; + }; }; -struct warn_args { - const char *fmt; - va_list args; -}; +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, +} __attribute__((mode(byte))); -struct mcs_spinlock { - struct mcs_spinlock *next; - int locked; - int count; -}; +typedef void (*btf_trace_netfs_read)(void *, struct netfs_io_request *, loff_t, size_t, enum netfs_read_trace); -struct qnode { - struct mcs_spinlock mcs; -}; +typedef void (*btf_trace_netfs_rreq)(void *, struct netfs_io_request *, enum netfs_rreq_trace); -struct dma_coherent_mem { - void *virt_base; - dma_addr_t device_base; - unsigned long pfn_base; - int size; - unsigned long *bitmap; - spinlock_t spinlock; - bool use_dev_dma_pfn_offset; -}; +typedef void (*btf_trace_netfs_sreq)(void *, struct netfs_io_subrequest *, enum netfs_sreq_trace); -struct pids_cgroup { - struct cgroup_subsys_state css; - atomic64_t counter; - atomic64_t limit; - int64_t watermark; - struct cgroup_file events_file; - atomic64_t events_limit; -}; +typedef void (*btf_trace_netfs_failure)(void *, struct netfs_io_request *, struct netfs_io_subrequest *, int, enum netfs_failure); -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, -}; +typedef void (*btf_trace_netfs_rreq_ref)(void *, unsigned int, int, enum netfs_rreq_ref_trace); -enum { - RB_LEN_TIME_EXTEND = 8, - RB_LEN_TIME_STAMP = 8, +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]; }; -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, +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]; }; -enum { - RB_ADD_STAMP_NONE = 0, - RB_ADD_STAMP_EXTEND = 2, - RB_ADD_STAMP_ABSOLUTE = 4, - RB_ADD_STAMP_FORCE = 8, +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 buffer_data_page; +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 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 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 buffer_data_page { - u64 time_stamp; - local_t commit; - unsigned 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 ring_buffer_per_cpu; +struct trace_event_data_offsets_netfs_read {}; -struct ring_buffer_iter { - struct ring_buffer_per_cpu *cpu_buffer; - unsigned long head; - unsigned long next_event; - struct buffer_page *head_page; - struct buffer_page *cache_reader_page; - unsigned long cache_read; - unsigned long cache_pages_removed; - u64 read_stamp; - u64 page_stamp; - struct ring_buffer_event *event; - int missed_events; -}; +struct trace_event_data_offsets_netfs_rreq {}; -struct rb_time_struct { - local64_t time; -}; +struct trace_event_data_offsets_netfs_sreq {}; -typedef struct rb_time_struct rb_time_t; +struct trace_event_data_offsets_netfs_failure {}; -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_event_data_offsets_netfs_rreq_ref {}; + +struct trace_event_data_offsets_netfs_sreq_ref {}; + +enum bio_post_read_step { + STEP_INITIAL = 0, + STEP_DECRYPT = 1, + STEP_VERITY = 2, + STEP_MAX = 3, }; -struct ring_buffer_per_cpu { - int cpu; - atomic_t record_disabled; - atomic_t resize_disabled; - struct trace_buffer *buffer; - raw_spinlock_t reader_lock; - arch_spinlock_t lock; - struct lock_class_key lock_key; - struct buffer_data_page *free_page; - unsigned long nr_pages; - unsigned int current_context; - struct list_head *pages; - struct buffer_page *head_page; - struct buffer_page *tail_page; - struct buffer_page *commit_page; - struct buffer_page *reader_page; - unsigned long lost_events; - unsigned long last_overrun; - unsigned long nest; - local_t entries_bytes; - local_t entries; - local_t overrun; - local_t commit_overrun; - local_t dropped_events; - local_t committing; - local_t commits; - local_t pages_touched; - local_t pages_lost; - local_t pages_read; - long last_pages_touch; - size_t shortest_full; - unsigned long read; - unsigned long read_bytes; - rb_time_t write_stamp; - rb_time_t before_stamp; - u64 event_stamp[5]; - u64 read_stamp; - unsigned long pages_removed; - long nr_pages_to_update; - struct list_head new_pages; - struct work_struct update_pages_work; - struct completion update_done; - struct rb_irq_work irq_work; +struct bio_post_read_ctx { + struct bio *bio; + struct work_struct work; + unsigned int cur_step; + unsigned int enabled_steps; }; -struct trace_buffer { - unsigned int flags; - int cpus; - atomic_t record_disabled; - atomic_t resizing; - cpumask_var_t cpumask; - struct lock_class_key *reader_lock_key; - struct mutex mutex; - struct ring_buffer_per_cpu **buffers; - struct hlist_node node; - u64 (*clock)(); - struct rb_irq_work irq_work; - bool time_stamp_abs; +struct nfs_ssc_client_ops { + void (*sco_sb_deactive)(struct super_block *); }; -struct rb_event_info { - u64 ts; - u64 delta; - u64 before; - u64 after; - unsigned long length; - struct buffer_page *tail_page; - int add_timestamp; +struct proc_nfs_info { + int flag; + const char *str; + const char *nostr; }; -enum vmpressure_levels { - VMPRESSURE_LOW = 0, - VMPRESSURE_MEDIUM = 1, - VMPRESSURE_CRITICAL = 2, - VMPRESSURE_NUM_LEVELS = 3, +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; }; -enum vmpressure_modes { - VMPRESSURE_NO_PASSTHROUGH = 0, - VMPRESSURE_HIERARCHY = 1, - VMPRESSURE_LOCAL = 2, - VMPRESSURE_NUM_MODES = 3, +struct nfs42_layouterror_data { + struct nfs42_layouterror_args args; + struct nfs42_layouterror_res res; + struct inode *inode; + struct pnfs_layout_segment *lseg; }; -struct vmpressure_event { - struct eventfd_ctx *efd; - enum vmpressure_levels level; - enum vmpressure_modes mode; - struct list_head node; +struct nfs42_offloadcancel_data { + struct nfs_server *seq_server; + struct nfs42_offload_status_args args; + struct nfs42_offload_status_res res; }; -struct dentry_stat_t { - long nr_dentry; - long nr_unused; - long age_limit; - long want_pages; - long nr_negative; - long dummy; +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; }; -enum d_walk_ret { - D_WALK_CONTINUE = 0, - D_WALK_QUIT = 1, - D_WALK_NORETRY = 2, - D_WALK_SKIP = 3, +struct sctphdr { + __be16 source; + __be16 dest; + __be32 vtag; + __le32 checksum; }; -struct external_name { +struct lsm_network_audit; + +struct lsm_ioctlop_audit; + +struct lsm_ibpkey_audit; + +struct lsm_ibendport_audit; + +struct common_audit_data { + char type; union { - atomic_t count; - struct callback_head head; + 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; - unsigned char name[0]; + union {}; }; -struct check_mount { - struct vfsmount *mnt; - unsigned int mounted; +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 select_data { - struct dentry *start; - union { - long found; - struct dentry *victim; - }; - struct list_head dispose; +struct lsm_ioctlop_audit { + struct path path; + u16 cmd; }; -struct core_name { - char *corename; - int used; - int size; +struct lsm_ibpkey_audit { + u64 subnet_prefix; + u16 pkey; }; -struct partial_cluster { - ext4_fsblk_t pclu; - ext4_lblk_t lblk; - enum { - initial = 0, - tofree = 1, - nofree = 2, - } state; +struct lsm_ibendport_audit { + const char *dev_name; + u8 port; }; -enum SHIFT_DIRECTION { - SHIFT_LEFT = 0, - SHIFT_RIGHT = 1, +struct sha3_state { + u64 st[25]; + unsigned int rsiz; + unsigned int rsizw; + unsigned int partial; + u8 buf[144]; }; -struct ext4_extent_tail { - __le32 et_checksum; +enum { + ICQ_EXITED = 4, + ICQ_DESTROYED = 8, }; -struct tracefs_dir_ops { - int (*mkdir)(const char *); - int (*rmdir)(const char *); +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; }; -struct tracefs_mount_opts { - kuid_t uid; - kgid_t gid; - umode_t mode; - unsigned int opts; +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]; }; -struct tracefs_fs_info { - struct tracefs_mount_opts mount_opts; +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; }; -enum blacklist_hash_type { - BLACKLIST_HASH_X509_TBS = 1, - BLACKLIST_HASH_BINARY = 2, +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 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, }; -enum dd_prio { - DD_RT_PRIO = 0, - DD_BE_PRIO = 1, - DD_IDLE_PRIO = 2, - DD_PRIO_MAX = 2, +struct alpine_msix_data { + spinlock_t msi_map_lock; + phys_addr_t addr; + u32 spi_first; + u32 num_spis; + unsigned long *msi_map; }; -enum dd_data_dir { - DD_READ = 0, - DD_WRITE = 1, +struct mvebu_gicp_spi_range; + +struct mvebu_gicp { + struct mvebu_gicp_spi_range *spi_ranges; + unsigned int spi_ranges_cnt; + unsigned int spi_cnt; + unsigned long *spi_bitmap; + spinlock_t spi_lock; + struct resource *res; + struct device *dev; }; -struct io_stats_per_prio { - uint32_t inserted; - uint32_t merged; - uint32_t dispatched; - atomic_t completed; +struct mvebu_gicp_spi_range { + unsigned int start; + unsigned int count; }; -struct dd_per_prio { - struct list_head dispatch; - struct rb_root sort_list[2]; - struct list_head fifo_list[2]; - sector_t latest_pos[2]; - struct io_stats_per_prio stats; +struct phy_meson_gxl_usb2_priv { + struct regmap *regmap; + enum phy_mode mode; + int is_enabled; + struct clk *clk; + struct reset_control *reset; }; -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 mtk_phy_version { + MTK_PHY_V1 = 1, + MTK_PHY_V2 = 2, + MTK_PHY_V3 = 3, }; -struct io_cancel { - struct file *file; - u64 addr; - u32 flags; - s32 fd; +struct mtk_phy_pdata { + bool avoid_rx_sen_degradation; + bool sw_pll_48m_to_26m; + bool sw_efuse_supported; + enum mtk_phy_version version; }; -struct io_uring_sync_cancel_reg { - __u64 addr; - __s32 fd; - __u32 flags; - struct __kernel_timespec timeout; - __u64 pad[4]; +enum u2_phy_params { + U2P_EYE_VRT = 0, + U2P_EYE_TERM = 1, + U2P_EFUSE_EN = 2, + U2P_EFUSE_INTR = 3, + U2P_DISCTH = 4, + U2P_PRE_EMPHASIS = 5, }; -struct partition_desc { - int nr_parts; - struct partition_affinity *parts; - struct irq_domain *domain; - struct irq_desc *chained_desc; - unsigned long *bitmap; - struct irq_domain_ops ops; +enum u3_phy_params { + U3P_EFUSE_EN = 0, + U3P_EFUSE_INTR = 1, + U3P_EFUSE_TX_IMP = 2, + U3P_EFUSE_RX_IMP = 3, }; -enum { - ARB_TIMER = 0, - ARB_BP_CAP_CLR = 1, - ARB_BP_CAP_HI_ADDR = 2, - ARB_BP_CAP_ADDR = 3, - ARB_BP_CAP_STATUS = 4, - ARB_BP_CAP_MASTER = 5, - ARB_ERR_CAP_CLR = 6, - ARB_ERR_CAP_HI_ADDR = 7, - ARB_ERR_CAP_ADDR = 8, - ARB_ERR_CAP_STATUS = 9, - ARB_ERR_CAP_MASTER = 10, +struct u2phy_banks { + void *misc; + void *fmreg; + void *com; }; -struct brcmstb_gisb_arb_device { - void *base; - const int *gisb_offsets; - bool big_endian; - struct mutex lock; - struct list_head next; - u32 valid_mask; - const char *master_names[32]; - u32 saved_timeout; +struct u3phy_banks { + void *spllc; + void *chip; + void *phyd; + void *phya; }; -struct sr_pcie_phy_core; - -struct sr_pcie_phy { - struct sr_pcie_phy_core *core; - unsigned int index; +struct mtk_phy_instance { struct phy *phy; + void *port_base; + union { + struct u2phy_banks u2_banks; + struct u3phy_banks u3_banks; + }; + struct clk_bulk_data clks[2]; + u32 index; + u32 type; + struct regmap *type_sw; + u32 type_sw_reg; + u32 type_sw_index; + u32 efuse_sw_en; + u32 efuse_intr; + u32 efuse_tx_imp; + u32 efuse_rx_imp; + int eye_src; + int eye_vrt; + int eye_term; + int intr; + int discth; + int pre_emphasis; + bool bc12_en; }; -struct sr_pcie_phy_core { +struct mtk_tphy { struct device *dev; - void *base; - struct regmap *cdru; - struct regmap *mhb; - u32 pipemux; - struct sr_pcie_phy phys[9]; + void *sif_base; + const struct mtk_phy_pdata *pdata; + struct mtk_phy_instance **phys; + int nphys; + int src_ref_clk; + int src_coef; }; -struct msm_pinctrl { - struct device *dev; - struct pinctrl_dev *pctrl; - struct gpio_chip chip; - struct pinctrl_desc desc; - struct notifier_block restart_nb; - int irq; - bool intr_target_use_scm; - raw_spinlock_t lock; - unsigned long dual_edge_irqs[5]; - unsigned long enabled_irqs[5]; - unsigned long skip_wake_irqs[5]; - unsigned long disabled_for_mux[5]; - unsigned long ever_gpio[5]; - const struct msm_pinctrl_soc_data *soc; - void *regs[4]; - u32 phys_base[4]; -}; +struct dwapb_gpio_port_irqchip; -enum { - GP_LAST___3 = 205, - PIN_DU_DOTCLKIN0 = 206, - PIN_FSCLKST_N___2 = 207, - PIN_MLB_REF___2 = 208, - PIN_PRESETOUT_N___2 = 209, - PIN_TCK___2 = 210, - PIN_TDI___2 = 211, - PIN_TMS___2 = 212, - PIN_TRST_N___2 = 213, - PIN_VDDQ_AVB0___3 = 214, -}; +struct dwapb_gpio; -struct max732x_platform_data { - unsigned int gpio_base; -}; +struct dwapb_context; -struct max732x_chip { - struct gpio_chip gpio_chip; - struct i2c_client *client; - struct i2c_client *client_dummy; - struct i2c_client *client_group_a; - struct i2c_client *client_group_b; - unsigned int mask_group_a; - unsigned int dir_input; - unsigned int dir_output; - struct mutex lock; - uint8_t reg_out[2]; +struct dwapb_gpio_port { + struct gpio_chip gc; + struct dwapb_gpio_port_irqchip *pirq; + struct dwapb_gpio *gpio; + struct dwapb_context *ctx; + unsigned int idx; }; -struct tegra_pcie_port_soc; +struct dwapb_gpio_port_irqchip { + unsigned int nr_irqs; + unsigned int irq[32]; +}; -struct tegra_pcie_soc { - unsigned int num_ports; - const struct tegra_pcie_port_soc *ports; - unsigned int msi_base_shift; - unsigned long afi_pex2_ctrl; - u32 pads_pll_ctl; - u32 tx_ref_sel; - u32 pads_refclk_cfg0; - u32 pads_refclk_cfg1; - u32 update_fc_threshold; - bool has_pex_clkreq_en; - bool has_pex_bias_ctrl; - bool has_intr_prsnt_sense; - bool has_cml_clk; - bool has_gen2; - bool force_pca_enable; - bool program_uphy; - bool update_clamp_threshold; - bool program_deskew_time; - bool update_fc_timer; - bool has_cache_bars; - struct { - struct { - u32 rp_ectl_2_r1; - u32 rp_ectl_4_r1; - u32 rp_ectl_5_r1; - u32 rp_ectl_6_r1; - u32 rp_ectl_2_r2; - u32 rp_ectl_4_r2; - u32 rp_ectl_5_r2; - u32 rp_ectl_6_r2; - } regs; - bool enable; - } ectl; +struct dwapb_gpio { + struct device *dev; + void *regs; + struct dwapb_gpio_port *ports; + unsigned int nr_ports; + unsigned int flags; + struct reset_control *rst; + struct clk_bulk_data clks[2]; }; -struct tegra_pcie_port_soc { - struct { - u8 turnoff_bit; - u8 ack_bit; - } pme; +struct dwapb_context { + u32 data; + u32 dir; + u32 ext; + u32 int_en; + u32 int_mask; + u32 int_type; + u32 int_pol; + u32 int_deb; + u32 wake_en; }; -struct tegra_pcie; +struct dwapb_port_property; -struct tegra_pcie_port { - struct tegra_pcie *pcie; - struct device_node *np; - struct list_head list; - struct resource regs; - void *base; - unsigned int index; - unsigned int lanes; - struct phy **phys; - struct gpio_desc *reset_gpio; +struct dwapb_platform_data { + struct dwapb_port_property *properties; + unsigned int nports; }; -struct tegra_msi { - unsigned long used[4]; - struct irq_domain *domain; - struct mutex map_lock; - spinlock_t mask_lock; - void *virt; - dma_addr_t phys; - int irq; +struct dwapb_port_property { + struct fwnode_handle *fwnode; + unsigned int idx; + unsigned int ngpio; + unsigned int gpio_base; + int irq[32]; }; -struct tegra_pcie { - struct device *dev; - void *pads; - void *afi; - void *cfg; - int irq; - struct resource cs; - struct clk *pex_clk; - struct clk *afi_clk; - struct clk *pll_e; - struct clk *cml_clk; - struct reset_control *pex_rst; - struct reset_control *afi_rst; - struct reset_control *pcie_xrst; - bool legacy_phy; - struct phy *phy; - struct tegra_msi msi; - struct list_head ports; - u32 xbar_config; - struct regulator_bulk_data *supplies; - unsigned int num_supplies; - const struct tegra_pcie_soc *soc; - struct dentry *debugfs; +struct walk_rcec_data { + struct pci_dev *rcec; + int (*user_callback)(struct pci_dev *, void *); + void *user_data; }; -struct acpi_processor_errata { - u8 smp; - struct { - u8 throttle: 1; - u8 fdma: 1; - u8 reserved: 6; - u32 bmisx; - } piix4; +struct pci_epc_group { + struct config_group group; + struct pci_epc *epc; + bool start; }; -struct acpi_table_srat { - struct acpi_table_header header; - u32 table_revision; - u64 reserved; +struct pci_epf_group { + struct config_group group; + struct config_group primary_epc_group; + struct config_group secondary_epc_group; + struct config_group *type_group; + struct delayed_work cfs_work; + struct pci_epf *epf; + int index; }; -struct acpi_srat_cpu_affinity { - struct acpi_subtable_header header; - u8 proximity_domain_lo; - u8 apic_id; - u32 flags; - u8 local_sapic_eid; - u8 proximity_domain_hi[3]; - u32 clock_domain; +struct nvs_region { + __u64 phys_start; + __u64 size; + struct list_head node; }; -struct acpi_srat_x2apic_cpu_affinity { - struct acpi_subtable_header header; - u16 reserved; - u32 proximity_domain; - u32 apic_id; - u32 flags; - u32 clock_domain; - u32 reserved2; +struct acpi_wakeup_handler { + struct list_head list_node; + bool (*wakeup)(void *); + void *context; }; -struct acpi_srat_generic_affinity { - struct acpi_subtable_header header; - u8 reserved; - u8 device_handle_type; - u32 proximity_domain; - u8 device_handle[16]; +struct event_counter { + u32 count; u32 flags; - u32 reserved1; }; -struct acpi_table_slit { - struct acpi_table_header header; - u64 locality_count; - u8 entry[0]; -} __attribute__((packed)); - -struct acpi_cedt_cfmws { - struct acpi_cedt_header header; - u32 reserved1; - u64 base_hpa; - u64 window_size; - u8 interleave_ways; - u8 interleave_arithmetic; - u16 reserved2; - u32 granularity; - u16 restrictions; - u16 qtg_id; - u32 interleave_targets[0]; -} __attribute__((packed)); - -enum iproc_arm_pll_fid { - ARM_PLL_FID_CRYSTAL_CLK = 0, - ARM_PLL_FID_SYS_CLK = 2, - ARM_PLL_FID_CH0_SLOW_CLK = 6, - ARM_PLL_FID_CH1_FAST_CLK = 7, -}; +struct acpi_data_attr; -struct iproc_arm_pll { - struct clk_hw hw; - void *base; - unsigned long rate; +struct acpi_data_obj { + char *name; + int (*fn)(void *, struct acpi_data_attr *); }; -struct clk_composite { - struct clk_hw hw; - struct clk_ops ops; - struct clk_hw *mux_hw; - struct clk_hw *rate_hw; - struct clk_hw *gate_hw; - const struct clk_ops *mux_ops; - const struct clk_ops *rate_ops; - const struct clk_ops *gate_ops; +struct acpi_data_attr { + struct bin_attribute attr; + u64 addr; }; -enum rcar_gen3_clk_types { - CLK_TYPE_GEN3_MAIN = 5, - CLK_TYPE_GEN3_PLL0 = 6, - CLK_TYPE_GEN3_PLL1 = 7, - CLK_TYPE_GEN3_PLL2 = 8, - CLK_TYPE_GEN3_PLL3 = 9, - CLK_TYPE_GEN3_PLL4 = 10, - CLK_TYPE_GEN3_SDH = 11, - CLK_TYPE_GEN3_SD = 12, - CLK_TYPE_GEN3_R = 13, - CLK_TYPE_GEN3_MDSEL = 14, - CLK_TYPE_GEN3_Z = 15, - CLK_TYPE_GEN3_OSC = 16, - CLK_TYPE_GEN3_RCKSEL = 17, - CLK_TYPE_GEN3_RPCSRC = 18, - CLK_TYPE_GEN3_E3_RPCSRC = 19, - CLK_TYPE_GEN3_RPC = 20, - CLK_TYPE_GEN3_RPCD2 = 21, - CLK_TYPE_GEN3_SOC_BASE = 22, +struct acpi_table_attr { + struct bin_attribute attr; + char name[4]; + int instance; + char filename[8]; + struct list_head node; }; -struct cpg_pll_clk___2 { - struct clk_hw hw; - void *pllcr_reg; - void *pllecr_reg; - unsigned int fixed_mult; - u32 pllecr_pllst_mask; +struct acpi_table_bert { + struct acpi_table_header header; + u32 region_length; + u64 address; }; -struct ipu_irq_bank; - -struct ipu_irq_map { - unsigned int irq; - int source; - struct ipu_irq_bank *bank; - struct ipu *ipu; +struct acpi_table_ccel { + struct acpi_table_header header; + u8 CCtype; + u8 Ccsub_type; + u16 reserved; + u64 log_area_minimum_length; + u64 log_area_start_address; }; -struct ipu_irq_bank { - unsigned int control; - unsigned int status; - struct ipu *ipu; +struct acpi_exception_info { + char *name; }; -enum cpubiuctrl_regs { - CPU_CREDIT_REG = 0, - CPU_MCP_FLOW_REG = 1, - CPU_WRITEBACK_CTRL_REG = 2, - RAC_CONFIG0_REG = 3, - RAC_CONFIG1_REG = 4, - NUM_CPU_BIUCTRL_REGS = 5, +struct acpi_offsets { + size_t offset; + u8 mode; }; -struct imx93_blk_ctrl_domain_data; - -struct imx93_blk_ctrl_data { - const struct imx93_blk_ctrl_domain_data *domains; - int num_domains; - const char * const *clk_names; - int num_clks; - const struct regmap_access_table *reg_access_table; +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, }; -struct imx93_blk_ctrl_qos { - u32 reg; - u32 cfg_off; - u32 default_prio; - u32 cfg_prio; +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 imx93_blk_ctrl_domain_data { +struct acpi_battery_hook { const char *name; - const char * const *clk_names; - int num_clks; - u32 rst_mask; - u32 clk_mask; - int num_qos; - struct imx93_blk_ctrl_qos qos[4]; + int (*add_battery)(struct power_supply *, struct acpi_battery_hook *); + int (*remove_battery)(struct power_supply *, struct acpi_battery_hook *); + struct list_head list; }; -struct imx93_blk_ctrl; +enum rs9_model { + RENESAS_9FGV0241 = 0, + RENESAS_9FGV0441 = 1, +}; -struct imx93_blk_ctrl_domain { - struct generic_pm_domain genpd; - const struct imx93_blk_ctrl_domain_data *data; - struct clk_bulk_data clks[4]; - struct imx93_blk_ctrl *bc; +struct rs9_chip_info { + const enum rs9_model model; + unsigned int num_clks; + u8 did; }; -struct imx93_blk_ctrl { - struct device *dev; +struct rs9_driver_data { + struct i2c_client *client; struct regmap *regmap; - int num_clks; - struct clk_bulk_data clks[4]; - struct imx93_blk_ctrl_domain *domains; - struct genpd_onecell_data onecell_data; + const struct rs9_chip_info *chip_info; + struct clk_hw *clk_dif[4]; + u8 pll_amplitude; + u8 pll_ssc; + u8 clk_dif_sr; }; -struct rcar_sysc_ch { - u16 chan_offs; - u8 chan_bit; - u8 isr_bit; +struct hi3660_stub_clk_chan { + struct mbox_client cl; + struct mbox_chan *mbox; }; -struct rcar_sysc_pd { - struct generic_pm_domain genpd; - struct rcar_sysc_ch ch; - unsigned int flags; - char name[0]; +struct hi3660_stub_clk { + unsigned int id; + struct clk_hw hw; + unsigned int cmd; + unsigned int msg[8]; + unsigned int rate; }; -struct rcar_pm_domains { - struct genpd_onecell_data onecell_data; - struct generic_pm_domain *domains[33]; +struct mtk_clk_rst_data { + struct regmap *regmap; + struct reset_controller_dev rcdev; + const struct mtk_clk_rst_desc *desc; }; -typedef void (*btf_trace_regulator_enable)(void *, const char *); - -typedef void (*btf_trace_regulator_enable_delay)(void *, const char *); - -typedef void (*btf_trace_regulator_enable_complete)(void *, const char *); - -typedef void (*btf_trace_regulator_disable)(void *, const char *); - -typedef void (*btf_trace_regulator_disable_complete)(void *, const char *); - -typedef void (*btf_trace_regulator_bypass_enable)(void *, const char *); - -typedef void (*btf_trace_regulator_bypass_enable_complete)(void *, const char *); - -typedef void (*btf_trace_regulator_bypass_disable)(void *, const char *); - -typedef void (*btf_trace_regulator_bypass_disable_complete)(void *, const char *); - -typedef void (*btf_trace_regulator_set_voltage)(void *, const char *, int, int); - -typedef void (*btf_trace_regulator_set_voltage_complete)(void *, const char *, unsigned int); +struct clk_regmap_mux_div { + u32 reg_offset; + u32 hid_width; + u32 hid_shift; + u32 src_width; + u32 src_shift; + u32 div; + u32 src; + const u32 *parent_map; + struct clk_regmap clkr; + struct clk *pclk; + struct notifier_block clk_nb; +}; -struct ww_class { - atomic_long_t stamp; - struct lock_class_key acquire_key; - struct lock_class_key mutex_key; - const char *acquire_name; - const char *mutex_name; - unsigned int is_wait_die; +enum clk_ids___7 { + LAST_DT_CORE_CLK___7 = 52, + CLK_EXTAL___7 = 53, + CLK_EXTALR___7 = 54, + CLK_MAIN___7 = 55, + CLK_PLL0___5 = 56, + CLK_PLL1___7 = 57, + CLK_PLL2___4 = 58, + CLK_PLL3___6 = 59, + CLK_PLL4___5 = 60, + CLK_PLL1_DIV2___7 = 61, + CLK_PLL1_DIV4___5 = 62, + CLK_S0___5 = 63, + CLK_S1___5 = 64, + CLK_S2___4 = 65, + CLK_S3___5 = 66, + CLK_SDSRC___6 = 67, + CLK_SSPSRC___2 = 68, + CLK_RPCSRC___6 = 69, + CLK_RINT___4 = 70, + MOD_CLK_BASE___7 = 71, }; -struct regulator_enable_gpio { - struct list_head list; - struct gpio_desc *gpiod; - u32 enable_count; - u32 request_count; +struct clk_rk3399_inits { + void (*inits)(struct device_node *); }; -enum regulator_active_discharge { - REGULATOR_ACTIVE_DISCHARGE_DEFAULT = 0, - REGULATOR_ACTIVE_DISCHARGE_DISABLE = 1, - REGULATOR_ACTIVE_DISCHARGE_ENABLE = 2, +enum { + APPLE_RTKIT_PWR_STATE_OFF = 0, + APPLE_RTKIT_PWR_STATE_SLEEP = 1, + APPLE_RTKIT_PWR_STATE_IDLE = 513, + APPLE_RTKIT_PWR_STATE_QUIESCED = 16, + APPLE_RTKIT_PWR_STATE_ON = 32, }; -struct trace_event_raw_regulator_basic { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; +enum { + APPLE_RTKIT_MGMT_HELLO = 1, + APPLE_RTKIT_MGMT_HELLO_REPLY = 2, + APPLE_RTKIT_MGMT_STARTEP = 5, + APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE = 6, + APPLE_RTKIT_MGMT_SET_IOP_PWR_STATE_ACK = 7, + APPLE_RTKIT_MGMT_EPMAP = 8, + APPLE_RTKIT_MGMT_EPMAP_REPLY = 8, + APPLE_RTKIT_MGMT_SET_AP_PWR_STATE = 11, + APPLE_RTKIT_MGMT_SET_AP_PWR_STATE_ACK = 11, }; -struct trace_event_raw_regulator_range { - struct trace_entry ent; - u32 __data_loc_name; - int min; - int max; - char __data[0]; +enum { + APPLE_RTKIT_EP_MGMT = 0, + APPLE_RTKIT_EP_CRASHLOG = 1, + APPLE_RTKIT_EP_SYSLOG = 2, + APPLE_RTKIT_EP_DEBUG = 3, + APPLE_RTKIT_EP_IOREPORT = 4, + APPLE_RTKIT_EP_OSLOG = 8, }; -struct trace_event_raw_regulator_value { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int val; - char __data[0]; +struct apple_rtkit_rx_work { + struct apple_rtkit *rtk; + u8 ep; + u64 msg; + struct work_struct work; }; -struct regulator_map { - struct list_head list; - const char *dev_name; - const char *supply; - struct regulator_dev *regulator; +struct apple_rtkit_msg { + struct completion *completion; + struct apple_mbox_msg mbox_msg; }; -struct regulator_supply_alias { - struct list_head list; - struct device *src_dev; - const char *src_supply; - struct device *alias_dev; - const char *alias_supply; +struct rsc_hdr { + __le16 slv_id; + __le16 header_offset; + __le16 data_offset; + __le16 cnt; + __le16 version; + __le16 reserved[3]; }; -struct trace_event_data_offsets_regulator_basic { - u32 name; +struct cmd_db_header { + __le32 version; + u8 magic[4]; + struct rsc_hdr header[8]; + __le32 checksum; + __le32 reserved; + u8 data[0]; }; -struct trace_event_data_offsets_regulator_range { - u32 name; +struct entry_header { + u8 id[8]; + __le32 priority[2]; + __le32 addr; + __le16 len; + __le16 offset; }; -struct trace_event_data_offsets_regulator_value { - u32 name; +struct zynqmp_pm_work_struct { + struct work_struct callback_work; + u32 args[4]; }; -struct pre_voltage_change_data { - unsigned long old_uV; - unsigned long min_uV; - unsigned long max_uV; +enum pm_suspend_mode { + PM_SUSPEND_MODE_FIRST = 0, + PM_SUSPEND_MODE_STD = 0, + PM_SUSPEND_MODE_POWER_OFF = 1, }; -struct summary_lock_data { - struct ww_acquire_ctx *ww_ctx; - struct regulator_dev **new_contended_rdev; - struct regulator_dev **old_contended_rdev; +enum pm_api_cb_id { + PM_INIT_SUSPEND_CB = 30, + PM_ACKNOWLEDGE_CB = 31, + PM_NOTIFY_CB = 32, }; -struct summary_data { - struct seq_file *s; - struct regulator_dev *parent; - int level; +enum zynqmp_pm_suspend_reason { + SUSPEND_POWER_REQUEST = 201, + SUSPEND_ALERT = 202, + SUSPEND_SYSTEM_SHUTDOWN = 203, }; -struct uni_pagedict { - u16 **uni_pgdir[32]; - unsigned long refcount; - unsigned long sum; - unsigned char *inverse_translations[4]; - u16 *inverse_trans_unicode; +typedef void (*event_cb_func_t)(const u32 *, void *); + +struct virtio_pci_legacy_device { + struct pci_dev *pci_dev; + u8 *isr; + void *ioaddr; + struct virtio_device_id id; }; -struct s3c24xx_uart_info; +struct virtio_pci_vq_info; -struct s3c24xx_serial_drv_data; +struct virtio_pci_device { + struct virtio_device vdev; + struct pci_dev *pci_dev; + union { + struct virtio_pci_legacy_device ldev; + struct virtio_pci_modern_device mdev; + }; + bool is_legacy; + u8 *isr; + spinlock_t lock; + struct list_head virtqueues; + struct virtio_pci_vq_info **vqs; + 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 s3c2410_uartcfg; +struct virtio_pci_vq_info { + struct virtqueue *vq; + struct list_head node; + unsigned int msix_vector; +}; -struct s3c24xx_uart_dma; +struct rpmh_vreg_hw_data; -struct s3c24xx_uart_port { - unsigned char rx_claimed; - unsigned char tx_claimed; - unsigned char rx_enabled; - unsigned char tx_enabled; - unsigned int pm_level; - unsigned long baudclk_rate; - unsigned int min_dma_size; - unsigned int rx_irq; - unsigned int tx_irq; - unsigned int tx_in_progress; - unsigned int tx_mode; - unsigned int rx_mode; - const struct s3c24xx_uart_info *info; - struct clk *clk; - struct clk *baudclk; - struct uart_port port; - const struct s3c24xx_serial_drv_data *drv_data; - const struct s3c2410_uartcfg *cfg; - struct s3c24xx_uart_dma *dma; +struct rpmh_vreg_init_data { + const char *name; + const char *resource_name; + const char *supply_name; + const struct rpmh_vreg_hw_data *hw_data; }; -enum s3c24xx_port_type { - TYPE_S3C24XX = 0, - TYPE_S3C6400 = 1, - TYPE_APPLE_S5L = 2, +enum rpmh_regulator_type { + VRM = 0, + XOB = 1, }; -struct s3c24xx_uart_info { - const char *name; - enum s3c24xx_port_type type; - unsigned int port_type; - unsigned int fifosize; - unsigned long rx_fifomask; - unsigned long rx_fifoshift; - unsigned long rx_fifofull; - unsigned long tx_fifomask; - unsigned long tx_fifoshift; - unsigned long tx_fifofull; - unsigned int def_clk_sel; - unsigned long num_clks; - unsigned long clksel_mask; - unsigned long clksel_shift; - unsigned long ucon_mask; - unsigned int has_divslot: 1; +struct rpmh_vreg_hw_data { + enum rpmh_regulator_type regulator_type; + const struct regulator_ops *ops; + const struct linear_range voltage_range; + int n_voltages; + int hpm_min_load_uA; + const int *pmic_mode_map; + unsigned int (*of_map_mode)(unsigned int); }; -struct s3c2410_uartcfg { - unsigned char hwport; - unsigned char unused; - unsigned short flags; - upf_t uart_flags; - unsigned int clk_sel; - unsigned int has_fracval; - unsigned long ucon; - unsigned long ulcon; - unsigned long ufcon; +struct rpmh_vreg { + struct device *dev; + u32 addr; + struct regulator_desc rdesc; + const struct rpmh_vreg_hw_data *hw_data; + bool always_wait_for_ack; + int enabled; + bool bypassed; + int voltage_selector; + unsigned int mode; }; -struct s3c24xx_serial_drv_data { - const struct s3c24xx_uart_info info; - const struct s3c2410_uartcfg def_cfg; - const unsigned int fifosize[12]; +struct vt_event { + unsigned int event; + unsigned int oldev; + unsigned int newev; + unsigned int pad[4]; }; -struct s3c24xx_uart_dma { - unsigned int rx_chan_id; - unsigned int tx_chan_id; - struct dma_slave_config rx_conf; - struct dma_slave_config tx_conf; - struct dma_chan *rx_chan; - struct dma_chan *tx_chan; - dma_addr_t rx_addr; - dma_addr_t tx_addr; - dma_cookie_t rx_cookie; - dma_cookie_t tx_cookie; - char *rx_buf; - dma_addr_t tx_transfer_addr; - size_t rx_size; - size_t tx_size; - struct dma_async_tx_descriptor *tx_desc; - struct dma_async_tx_descriptor *rx_desc; - int tx_bytes_requested; - int rx_bytes_requested; +struct vt_event_wait { + struct list_head list; + struct vt_event event; + int done; }; -struct samsung_early_console_data { - u32 txfull_mask; - u32 rxfifo_mask; +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 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 kbd_repeat { + int delay; + int period; }; -struct nand_onfi_vendor_macronix { - u8 reserved; - u8 reliability_func; +struct unimapdesc { + unsigned short entry_ct; + struct unipair __attribute__((btf_type_tag("user"))) *entries; }; -struct bcm_iproc_intc { - struct bcm_qspi_soc_intc soc_intc; - struct platform_device *pdev; - void *int_reg; - void *int_status_reg; - spinlock_t soclock; - bool big_endian; +struct kbentry { + unsigned char kb_table; + unsigned char kb_index; + unsigned short kb_value; }; -struct xcv { - void *reg_base; - struct pci_dev *pdev; +struct kbsentry { + unsigned char kb_func; + unsigned char kb_string[512]; }; -enum dpmac_counter_id { - DPMAC_CNT_ING_FRAME_64 = 0, - DPMAC_CNT_ING_FRAME_127 = 1, - DPMAC_CNT_ING_FRAME_255 = 2, - DPMAC_CNT_ING_FRAME_511 = 3, - DPMAC_CNT_ING_FRAME_1023 = 4, - DPMAC_CNT_ING_FRAME_1518 = 5, - DPMAC_CNT_ING_FRAME_1519_MAX = 6, - DPMAC_CNT_ING_FRAG = 7, - DPMAC_CNT_ING_JABBER = 8, - DPMAC_CNT_ING_FRAME_DISCARD = 9, - DPMAC_CNT_ING_ALIGN_ERR = 10, - DPMAC_CNT_EGR_UNDERSIZED = 11, - DPMAC_CNT_ING_OVERSIZED = 12, - DPMAC_CNT_ING_VALID_PAUSE_FRAME = 13, - DPMAC_CNT_EGR_VALID_PAUSE_FRAME = 14, - DPMAC_CNT_ING_BYTE = 15, - DPMAC_CNT_ING_MCAST_FRAME = 16, - DPMAC_CNT_ING_BCAST_FRAME = 17, - DPMAC_CNT_ING_ALL_FRAME = 18, - DPMAC_CNT_ING_UCAST_FRAME = 19, - DPMAC_CNT_ING_ERR_FRAME = 20, - DPMAC_CNT_EGR_BYTE = 21, - DPMAC_CNT_EGR_MCAST_FRAME = 22, - DPMAC_CNT_EGR_BCAST_FRAME = 23, - DPMAC_CNT_EGR_UCAST_FRAME = 24, - DPMAC_CNT_EGR_ERR_FRAME = 25, - DPMAC_CNT_ING_GOOD_FRAME = 26, - DPMAC_CNT_EGR_GOOD_FRAME = 27, +struct kbkeycode { + unsigned int scancode; + unsigned int keycode; }; -struct hclge_mbx_vf_to_pf_cmd; +struct compat_unimapdesc { + unsigned short entry_ct; + compat_caddr_t entries; +}; -typedef void (*btf_trace_hclge_pf_mbx_get)(void *, struct hclge_dev *, struct hclge_mbx_vf_to_pf_cmd *); +struct vt_stat { + unsigned short v_active; + unsigned short v_signal; + unsigned short v_state; +}; -struct hclge_ring_chain_param { - u8 ring_type; - u8 tqp_index; - u8 int_gl_index; +struct vt_sizes { + unsigned short v_rows; + unsigned short v_cols; + unsigned short v_scrollsize; }; -struct hclge_vf_to_pf_msg { - u8 code; - union { - struct { - u8 subcode; - u8 data[14]; - }; - struct { - u8 en_bc; - u8 en_uc; - u8 en_mc; - u8 en_limit_promisc; - }; - struct { - u8 vector_id; - u8 ring_num; - struct hclge_ring_chain_param param[4]; - }; - }; +struct vt_setactivate { + unsigned int console; + struct vt_mode mode; }; -struct hclge_mbx_vf_to_pf_cmd { - u8 rsv; - u8 mbx_src_vfid; - u8 mbx_need_resp; - u8 rsv1[1]; - u8 msg_len; - u8 rsv2; - __le16 match_id; - struct hclge_vf_to_pf_msg msg; +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 hclge_mbx_pf_to_vf_cmd; +struct tpm1_get_random_out { + __be32 rng_data_len; + u8 rng_data[128]; +}; -typedef void (*btf_trace_hclge_pf_mbx_send)(void *, struct hclge_dev *, struct hclge_mbx_pf_to_vf_cmd *); +typedef void (*btf_trace_regmap_reg_write)(void *, struct regmap *, unsigned int, unsigned int); -struct hclge_pf_to_vf_msg { - __le16 code; - union { - struct { - __le16 vf_mbx_msg_code; - __le16 vf_mbx_msg_subcode; - __le16 resp_status; - u8 resp_data[8]; - }; - struct { - u8 msg_data[14]; - }; - }; -}; +typedef void (*btf_trace_regmap_reg_read)(void *, struct regmap *, unsigned int, unsigned int); -struct hclge_mbx_pf_to_vf_cmd { - u8 dest_vfid; - u8 rsv[3]; - u8 msg_len; - u8 rsv1; - __le16 match_id; - struct hclge_pf_to_vf_msg msg; -}; +typedef void (*btf_trace_regmap_reg_read_cache)(void *, struct regmap *, unsigned int, unsigned int); -struct hclge_mbx_ops_param; +typedef void (*btf_trace_regmap_bulk_write)(void *, struct regmap *, unsigned int, const void *, int); -typedef int (*hclge_mbx_ops_fn)(struct hclge_mbx_ops_param *); +typedef void (*btf_trace_regmap_bulk_read)(void *, struct regmap *, unsigned int, const void *, int); -struct hclge_respond_to_vf_msg; +typedef void (*btf_trace_regmap_hw_read_start)(void *, struct regmap *, unsigned int, int); -struct hclge_mbx_ops_param { - struct hclge_vport *vport; - struct hclge_mbx_vf_to_pf_cmd *req; - struct hclge_respond_to_vf_msg *resp_msg; +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 hclge_respond_to_vf_msg { - int status; - u8 data[8]; - u16 len; +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]; }; -enum HCLGE_MBX_OPCODE { - HCLGE_MBX_RESET = 1, - HCLGE_MBX_ASSERTING_RESET = 2, - HCLGE_MBX_SET_UNICAST = 3, - HCLGE_MBX_SET_MULTICAST = 4, - HCLGE_MBX_SET_VLAN = 5, - HCLGE_MBX_MAP_RING_TO_VECTOR = 6, - HCLGE_MBX_UNMAP_RING_TO_VECTOR = 7, - HCLGE_MBX_SET_PROMISC_MODE = 8, - HCLGE_MBX_SET_MACVLAN = 9, - HCLGE_MBX_API_NEGOTIATE = 10, - HCLGE_MBX_GET_QINFO = 11, - HCLGE_MBX_GET_QDEPTH = 12, - HCLGE_MBX_GET_BASIC_INFO = 13, - HCLGE_MBX_GET_RETA = 14, - HCLGE_MBX_GET_RSS_KEY = 15, - HCLGE_MBX_GET_MAC_ADDR = 16, - HCLGE_MBX_PF_VF_RESP = 17, - HCLGE_MBX_GET_BDNUM = 18, - HCLGE_MBX_GET_BUFSIZE = 19, - HCLGE_MBX_GET_STREAMID = 20, - HCLGE_MBX_SET_AESTART = 21, - HCLGE_MBX_SET_TSOSTATS = 22, - HCLGE_MBX_LINK_STAT_CHANGE = 23, - HCLGE_MBX_GET_BASE_CONFIG = 24, - HCLGE_MBX_BIND_FUNC_QUEUE = 25, - HCLGE_MBX_GET_LINK_STATUS = 26, - HCLGE_MBX_QUEUE_RESET = 27, - HCLGE_MBX_KEEP_ALIVE = 28, - HCLGE_MBX_SET_ALIVE = 29, - HCLGE_MBX_SET_MTU = 30, - HCLGE_MBX_GET_QID_IN_PF = 31, - HCLGE_MBX_LINK_STAT_MODE = 32, - HCLGE_MBX_GET_LINK_MODE = 33, - HCLGE_MBX_PUSH_VLAN_INFO = 34, - HCLGE_MBX_GET_MEDIA_TYPE = 35, - HCLGE_MBX_PUSH_PROMISC_INFO = 36, - HCLGE_MBX_VF_UNINIT = 37, - HCLGE_MBX_HANDLE_VF_TBL = 38, - HCLGE_MBX_GET_RING_VECTOR_MAP = 39, - HCLGE_MBX_GET_VF_FLR_STATUS = 200, - HCLGE_MBX_PUSH_LINK_STATUS = 201, - HCLGE_MBX_NCSI_ERROR = 202, +struct trace_event_raw_regmap_block { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int reg; + int count; + char __data[0]; }; -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, +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]; }; -enum hclge_mbx_mac_vlan_subcode { - HCLGE_MBX_MAC_VLAN_UC_MODIFY = 0, - HCLGE_MBX_MAC_VLAN_UC_ADD = 1, - HCLGE_MBX_MAC_VLAN_UC_REMOVE = 2, - HCLGE_MBX_MAC_VLAN_MC_MODIFY = 3, - HCLGE_MBX_MAC_VLAN_MC_ADD = 4, - HCLGE_MBX_MAC_VLAN_MC_REMOVE = 5, +struct trace_event_raw_regmap_bool { + struct trace_entry ent; + u32 __data_loc_name; + int flag; + char __data[0]; }; -enum HCLGE_MAC_ADDR_TYPE { - HCLGE_MAC_ADDR_UC = 0, - HCLGE_MAC_ADDR_MC = 1, +struct trace_event_raw_regmap_async { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; }; -enum hclge_mbx_vlan_cfg_subcode { - HCLGE_MBX_VLAN_FILTER = 0, - HCLGE_MBX_VLAN_TX_OFF_CFG = 1, - HCLGE_MBX_VLAN_RX_OFF_CFG = 2, - HCLGE_MBX_PORT_BASE_VLAN_CFG = 3, - HCLGE_MBX_GET_PORT_BASE_VLAN_STATE = 4, - HCLGE_MBX_ENABLE_VLAN_FILTER = 5, +struct trace_event_raw_regcache_drop_region { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int from; + unsigned int to; + char __data[0]; }; -enum hnae3_pflag { - HNAE3_PFLAG_LIMIT_PROMISC = 0, - HNAE3_PFLAG_MAX = 1, +struct trace_event_data_offsets_regmap_reg { + u32 name; }; -enum HCLGE_VPORT_STATE { - HCLGE_VPORT_STATE_ALIVE = 0, - HCLGE_VPORT_STATE_MAC_TBL_CHANGE = 1, - HCLGE_VPORT_STATE_PROMISC_CHANGE = 2, - HCLGE_VPORT_STATE_VLAN_FLTR_CHANGE = 3, - HCLGE_VPORT_STATE_INITED = 4, - HCLGE_VPORT_STATE_MAX = 5, +struct trace_event_data_offsets_regmap_bulk { + u32 name; + u32 buf; }; -enum HNAE3_PF_CAP_BITS { - HNAE3_PF_SUPPORT_VLAN_FLTR_MDF_B = 0, +struct trace_event_data_offsets_regmap_block { + u32 name; }; -enum HCLGE_VPORT_NEED_NOTIFY { - HCLGE_VPORT_NEED_NOTIFY_RESET = 0, - HCLGE_VPORT_NEED_NOTIFY_VF_VLAN = 1, +struct trace_event_data_offsets_regcache_sync { + u32 name; + u32 status; + u32 type; }; -enum hclge_mbx_tbl_cfg_subcode { - HCLGE_MBX_VPORT_LIST_CLEAR = 0, +struct trace_event_data_offsets_regmap_bool { + u32 name; }; -enum hclge_link_fail_code { - HCLGE_LF_NORMAL = 0, - HCLGE_LF_REF_CLOCK_LOST = 1, - HCLGE_LF_XSFP_TX_DISABLE = 2, - HCLGE_LF_XSFP_ABSENT = 3, +struct trace_event_data_offsets_regmap_async { + u32 name; }; -struct trace_event_raw_hclge_pf_mbx_get { - struct trace_entry ent; - u8 vfid; - u8 code; - u8 subcode; - u32 __data_loc_pciname; - u32 __data_loc_devname; - u32 mbx_data[6]; - char __data[0]; +struct trace_event_data_offsets_regcache_drop_region { + u32 name; }; -struct trace_event_raw_hclge_pf_mbx_send { - struct trace_entry ent; - u8 vfid; - u16 code; - u32 __data_loc_pciname; - u32 __data_loc_devname; - u32 mbx_data[6]; - char __data[0]; +struct regmap_field { + struct regmap *regmap; + unsigned int mask; + unsigned int shift; + unsigned int reg; + unsigned int id_size; + unsigned int id_offset; }; -struct hclge_vf_vlan_cfg { - u8 mbx_cmd; - u8 subcode; - union { - struct { - u8 is_kill; - __le16 vlan; - __le16 proto; - } __attribute__((packed)); - u8 enable; - }; +struct sram_config { + int (*init)(); + bool map_only_reserved; }; -struct hclge_mbx_vf_queue_info { - __le16 num_tqps; - __le16 rss_size; - __le16 rx_buf_len; +struct sram_reserve { + struct list_head list; + u32 start; + u32 size; + struct resource res; + bool export; + bool pool; + bool protect_exec; + const char *label; }; -struct hclge_mbx_vf_queue_depth { - __le16 num_tx_desc; - __le16 num_rx_desc; +struct sram_partition { + void *base; + struct gen_pool *pool; + struct bin_attribute battr; + struct mutex lock; + struct list_head list; }; -struct hclge_basic_info { - u8 hw_tc_map; - u8 rsv; - __le16 mbx_api_version; - __le32 pf_caps; +struct sram_dev { + const struct sram_config *config; + struct device *dev; + void *virt_base; + bool no_memory_wc; + struct gen_pool *pool; + struct sram_partition *partition; + u32 partitions; }; -struct hclge_mbx_mtu_info { - __le32 mtu; +struct hisi_sas_rst { + struct hisi_hba *hisi_hba; + struct completion *completion; + struct work_struct work; + bool done; }; -struct hclge_ctrl_vector_chain_cmd { - u8 int_vector_id_l; - u8 int_cause_num; - __le16 tqp_type_and_id[10]; - u8 vfid; - u8 int_vector_id_h; +struct hisi_sas_internal_abort_data { + bool rst_ha_timeout; }; -struct trace_event_data_offsets_hclge_pf_mbx_get { - u32 pciname; - u32 devname; +struct pata_platform_info { + unsigned int ioport_shift; }; -struct trace_event_data_offsets_hclge_pf_mbx_send { - u32 pciname; - u32 devname; +enum nand_ecc_legacy_mode { + NAND_ECC_INVALID = 0, + NAND_ECC_NONE = 1, + NAND_ECC_SOFT = 2, + NAND_ECC_SOFT_BCH = 3, + NAND_ECC_HW = 4, + NAND_ECC_HW_SYNDROME = 5, + NAND_ECC_ON_DIE = 6, }; -struct hclge_mbx_link_status { - __le16 link_status; - __le32 speed; - __le16 duplex; - u8 flag; -} __attribute__((packed)); +struct nand_op_parser_ctx { + const struct nand_op_instr *instrs; + unsigned int ninstrs; + struct nand_subop subop; +}; -struct hclge_mbx_port_base_vlan { - __le16 state; - __le16 vlan_proto; - __le16 qos; - __le16 vlan_tag; +struct nand_ecc_step_info; + +struct nand_ecc_caps { + const struct nand_ecc_step_info *stepinfos; + int nstepinfos; + int (*calc_ecc_bytes)(int, int); }; -struct hclge_mbx_link_mode { - __le16 idx; - __le64 link_mode; -} __attribute__((packed)); +struct nand_ecc_step_info { + int stepsize; + const int *strengths; + int nstrengths; +}; -enum rswitch_reg { - FWGC = 0, - FWTTC0 = 16, - FWTTC1 = 20, - FWLBMC = 24, - FWCEPTC = 32, - FWCEPRC0 = 36, - FWCEPRC1 = 40, - FWCEPRC2 = 44, - FWCLPTC = 48, - FWCLPRC = 52, - FWCMPTC = 64, - FWEMPTC = 68, - FWSDMPTC = 80, - FWSDMPVC = 84, - FWLBWMC0 = 128, - FWPC00 = 256, - FWPC10 = 260, - FWPC20 = 264, - FWCTGC00 = 1024, - FWCTGC10 = 1028, - FWCTTC00 = 1032, - FWCTTC10 = 1036, - FWCTTC200 = 1040, - FWCTSC00 = 1056, - FWCTSC10 = 1060, - FWCTSC20 = 1064, - FWCTSC30 = 1068, - FWCTSC40 = 1072, - FWTWBFC0 = 4096, - FWTWBFVC0 = 4100, - FWTHBFC0 = 5120, - FWTHBFV0C0 = 5124, - FWTHBFV1C0 = 5128, - FWFOBFC0 = 6144, - FWFOBFV0C0 = 6148, - FWFOBFV1C0 = 6152, - FWRFC0 = 7168, - FWRFVC0 = 7172, - FWCFC0 = 8192, - FWCFMC00 = 8196, - FWIP4SC = 16392, - FWIP6SC = 16408, - FWIP6OC = 16412, - FWL2SC = 16416, - FWSFHEC = 16432, - FWSHCR0 = 16448, - FWSHCR1 = 16452, - FWSHCR2 = 16456, - FWSHCR3 = 16460, - FWSHCR4 = 16464, - FWSHCR5 = 16468, - FWSHCR6 = 16472, - FWSHCR7 = 16476, - FWSHCR8 = 16480, - FWSHCR9 = 16484, - FWSHCR10 = 16488, - FWSHCR11 = 16492, - FWSHCR12 = 16496, - FWSHCR13 = 16500, - FWSHCRR = 16504, - FWLTHHEC = 16528, - FWLTHHC = 16532, - FWLTHTL0 = 16544, - FWLTHTL1 = 16548, - FWLTHTL2 = 16552, - FWLTHTL3 = 16556, - FWLTHTL4 = 16560, - FWLTHTL5 = 16564, - FWLTHTL6 = 16568, - FWLTHTL7 = 16572, - FWLTHTL80 = 16576, - FWLTHTL9 = 16592, - FWLTHTLR = 16596, - FWLTHTIM = 16608, - FWLTHTEM = 16612, - FWLTHTS0 = 16640, - FWLTHTS1 = 16644, - FWLTHTS2 = 16648, - FWLTHTS3 = 16652, - FWLTHTS4 = 16656, - FWLTHTSR0 = 16672, - FWLTHTSR1 = 16676, - FWLTHTSR2 = 16680, - FWLTHTSR3 = 16684, - FWLTHTSR40 = 16688, - FWLTHTSR5 = 16704, - FWLTHTR = 16720, - FWLTHTRR0 = 16724, - FWLTHTRR1 = 16728, - FWLTHTRR2 = 16732, - FWLTHTRR3 = 16736, - FWLTHTRR4 = 16740, - FWLTHTRR5 = 16744, - FWLTHTRR6 = 16748, - FWLTHTRR7 = 16752, - FWLTHTRR8 = 16756, - FWLTHTRR9 = 16768, - FWLTHTRR10 = 16784, - FWIPHEC = 16916, - FWIPHC = 16920, - FWIPTL0 = 16928, - FWIPTL1 = 16932, - FWIPTL2 = 16936, - FWIPTL3 = 16940, - FWIPTL4 = 16944, - FWIPTL5 = 16948, - FWIPTL6 = 16952, - FWIPTL7 = 16960, - FWIPTL8 = 16976, - FWIPTLR = 16980, - FWIPTIM = 16992, - FWIPTEM = 16996, - FWIPTS0 = 17008, - FWIPTS1 = 17012, - FWIPTS2 = 17016, - FWIPTS3 = 17020, - FWIPTS4 = 17024, - FWIPTSR0 = 17028, - FWIPTSR1 = 17032, - FWIPTSR2 = 17036, - FWIPTSR3 = 17040, - FWIPTSR4 = 17056, - FWIPTR = 17072, - FWIPTRR0 = 17076, - FWIPTRR1 = 17080, - FWIPTRR2 = 17084, - FWIPTRR3 = 17088, - FWIPTRR4 = 17092, - FWIPTRR5 = 17096, - FWIPTRR6 = 17100, - FWIPTRR7 = 17104, - FWIPTRR8 = 17120, - FWIPTRR9 = 17136, - FWIPHLEC = 17152, - FWIPAGUSPC = 17664, - FWIPAGC = 17668, - FWIPAGM0 = 17680, - FWIPAGM1 = 17684, - FWIPAGM2 = 17688, - FWIPAGM3 = 17692, - FWIPAGM4 = 17696, - FWMACHEC = 17952, - FWMACHC = 17956, - FWMACTL0 = 17968, - FWMACTL1 = 17972, - FWMACTL2 = 17976, - FWMACTL3 = 17980, - FWMACTL4 = 17984, - FWMACTL5 = 18000, - FWMACTLR = 18004, - FWMACTIM = 18016, - FWMACTEM = 18020, - FWMACTS0 = 18032, - FWMACTS1 = 18036, - FWMACTSR0 = 18040, - FWMACTSR1 = 18044, - FWMACTSR2 = 18048, - FWMACTSR3 = 18064, - FWMACTR = 18080, - FWMACTRR0 = 18084, - FWMACTRR1 = 18088, - FWMACTRR2 = 18092, - FWMACTRR3 = 18096, - FWMACTRR4 = 18100, - FWMACTRR5 = 18112, - FWMACTRR6 = 18128, - FWMACHLEC = 18176, - FWMACAGUSPC = 18560, - FWMACAGC = 18564, - FWMACAGM0 = 18568, - FWMACAGM1 = 18572, - FWVLANTEC = 18688, - FWVLANTL0 = 18704, - FWVLANTL1 = 18708, - FWVLANTL2 = 18712, - FWVLANTL3 = 18720, - FWVLANTL4 = 18736, - FWVLANTLR = 18740, - FWVLANTIM = 18752, - FWVLANTEM = 18756, - FWVLANTS = 18768, - FWVLANTSR0 = 18772, - FWVLANTSR1 = 18776, - FWVLANTSR2 = 18784, - FWVLANTSR3 = 18800, - FWPBFC0 = 18944, - FWPBFCSDC00 = 18948, - FWL23URL0 = 19968, - FWL23URL1 = 19972, - FWL23URL2 = 19976, - FWL23URL3 = 19980, - FWL23URLR = 19984, - FWL23UTIM = 20000, - FWL23URR = 20016, - FWL23URRR0 = 20020, - FWL23URRR1 = 20024, - FWL23URRR2 = 20028, - FWL23URRR3 = 20032, - FWL23URMC0 = 20224, - FWPMFGC0 = 20480, - FWPGFC0 = 20736, - FWPGFIGSC0 = 20740, - FWPGFENC0 = 20744, - FWPGFENM0 = 20748, - FWPGFCSTC00 = 20752, - FWPGFCSTC10 = 20756, - FWPGFCSTM00 = 20760, - FWPGFCSTM10 = 20764, - FWPGFCTC0 = 20768, - FWPGFCTM0 = 20772, - FWPGFHCC0 = 20776, - FWPGFSM0 = 20780, - FWPGFGC0 = 20784, - FWPGFGL0 = 21760, - FWPGFGL1 = 21764, - FWPGFGLR = 21784, - FWPGFGR = 21776, - FWPGFGRR0 = 21780, - FWPGFGRR1 = 21784, - FWPGFRIM = 21792, - FWPMTRFC0 = 22016, - FWPMTRCBSC0 = 22020, - FWPMTRC0RC0 = 22024, - FWPMTREBSC0 = 22028, - FWPMTREIRC0 = 22032, - FWPMTRFM0 = 22036, - FWFTL0 = 24576, - FWFTL1 = 24580, - FWFTLR = 24584, - FWFTOC = 24592, - FWFTOPC = 24596, - FWFTIM = 24608, - FWFTR = 24624, - FWFTRR0 = 24628, - FWFTRR1 = 24632, - FWFTRR2 = 24636, - FWSEQNGC0 = 24832, - FWSEQNGM0 = 24836, - FWSEQNRC = 25088, - FWCTFDCN0 = 25344, - FWLTHFDCN0 = 25348, - FWIPFDCN0 = 25352, - FWLTWFDCN0 = 25356, - FWPBFDCN0 = 25360, - FWMHLCN0 = 25364, - FWIHLCN0 = 25368, - FWICRDCN0 = 25856, - FWWMRDCN0 = 25860, - FWCTRDCN0 = 25864, - FWLTHRDCN0 = 25868, - FWIPRDCN0 = 25872, - FWLTWRDCN0 = 25876, - FWPBRDCN0 = 25880, - FWPMFDCN0 = 26368, - FWPGFDCN0 = 26496, - FWPMGDCN0 = 26624, - FWPMYDCN0 = 26628, - FWPMRDCN0 = 26632, - FWFRPPCN0 = 27136, - FWFRDPCN0 = 27140, - FWEIS00 = 30976, - FWEIE00 = 30980, - FWEID00 = 30984, - FWEIS1 = 31232, - FWEIE1 = 31236, - FWEID1 = 31240, - FWEIS2 = 31248, - FWEIE2 = 31252, - FWEID2 = 31256, - FWEIS3 = 31264, - FWEIE3 = 31268, - FWEID3 = 31272, - FWEIS4 = 31280, - FWEIE4 = 31284, - FWEID4 = 31288, - FWEIS5 = 31296, - FWEIE5 = 31300, - FWEID5 = 31304, - FWEIS60 = 31312, - FWEIE60 = 31316, - FWEID60 = 31320, - FWEIS61 = 31328, - FWEIE61 = 31332, - FWEID61 = 31336, - FWEIS62 = 31344, - FWEIE62 = 31348, - FWEID62 = 31352, - FWEIS63 = 31360, - FWEIE63 = 31364, - FWEID63 = 31368, - FWEIS70 = 31376, - FWEIE70 = 31380, - FWEID70 = 31384, - FWEIS71 = 31392, - FWEIE71 = 31396, - FWEID71 = 31400, - FWEIS72 = 31408, - FWEIE72 = 31412, - FWEID72 = 31416, - FWEIS73 = 31424, - FWEIE73 = 31428, - FWEID73 = 31432, - FWEIS80 = 31440, - FWEIE80 = 31444, - FWEID80 = 31448, - FWEIS81 = 31456, - FWEIE81 = 31460, - FWEID81 = 31464, - FWEIS82 = 31472, - FWEIE82 = 31476, - FWEID82 = 31480, - FWEIS83 = 31488, - FWEIE83 = 31492, - FWEID83 = 31496, - FWMIS0 = 31744, - FWMIE0 = 31748, - FWMID0 = 31752, - FWSCR0 = 32000, - FWSCR1 = 32004, - FWSCR2 = 32008, - FWSCR3 = 32012, - FWSCR4 = 32016, - FWSCR5 = 32020, - FWSCR6 = 32024, - FWSCR7 = 32028, - FWSCR8 = 32032, - FWSCR9 = 32036, - FWSCR10 = 32040, - FWSCR11 = 32044, - FWSCR12 = 32048, - FWSCR13 = 32052, - FWSCR14 = 32056, - FWSCR15 = 32060, - FWSCR16 = 32064, - FWSCR17 = 32068, - FWSCR18 = 32072, - FWSCR19 = 32076, - FWSCR20 = 32080, - FWSCR21 = 32084, - FWSCR22 = 32088, - FWSCR23 = 32092, - FWSCR24 = 32096, - FWSCR25 = 32100, - FWSCR26 = 32104, - FWSCR27 = 32108, - FWSCR28 = 32112, - FWSCR29 = 32116, - FWSCR30 = 32120, - FWSCR31 = 32124, - FWSCR32 = 32128, - FWSCR33 = 32132, - FWSCR34 = 32136, - FWSCR35 = 32140, - FWSCR36 = 32144, - FWSCR37 = 32148, - FWSCR38 = 32152, - FWSCR39 = 32156, - FWSCR40 = 32160, - FWSCR41 = 32164, - FWSCR42 = 32168, - FWSCR43 = 32172, - FWSCR44 = 32176, - FWSCR45 = 32180, - FWSCR46 = 32184, - TPEMIMC0 = 32768, - TPEMIMC1 = 32772, - TPEMIMC2 = 32776, - TPEMIMC3 = 32780, - TPEMIMC4 = 32784, - TPEMIMC5 = 32788, - TPEMIMC60 = 32896, - TPEMIMC70 = 33024, - TSIM = 34560, - TFIM = 34564, - TCIM = 34568, - TGIM0 = 34576, - TGIM1 = 34580, - TEIM0 = 34592, - TEIM1 = 34596, - TEIM2 = 34600, - RIPV = 36864, - RRC = 36868, - RCEC = 36872, - RCDC = 36876, - RSSIS = 36880, - RSSIE = 36884, - RSSID = 36888, - CABPIBWMC = 36896, - CABPWMLC = 36928, - CABPPFLC0 = 36944, - CABPPWMLC0 = 36960, - CABPPPFLC00 = 37024, - CABPULC = 37120, - CABPIRM = 37184, - CABPPCM = 37188, - CABPLCM = 37192, - CABPCPM = 37248, - CABPMCPM = 37376, - CARDNM = 37504, - CARDMNM = 37508, - CARDCN = 37520, - CAEIS0 = 37632, - CAEIE0 = 37636, - CAEID0 = 37640, - CAEIS1 = 37648, - CAEIE1 = 37652, - CAEID1 = 37656, - CAMIS0 = 37696, - CAMIE0 = 37700, - CAMID0 = 37704, - CAMIS1 = 37712, - CAMIE1 = 37716, - CAMID1 = 37720, - CASCR = 37760, - EAMC = 0, - EAMS = 4, - EAIRC = 16, - EATDQSC = 20, - EATDQC = 24, - EATDQAC = 28, - EATPEC = 32, - EATMFSC0 = 64, - EATDQDC0 = 96, - EATDQM0 = 128, - EATDQMLM0 = 160, - EACTQC = 256, - EACTDQDC = 260, - EACTDQM = 264, - EACTDQMLM = 268, - EAVCC = 304, - EAVTC = 308, - EATTFC = 312, - EACAEC = 512, - EACC = 516, - EACAIVC0 = 544, - EACAULC0 = 576, - EACOEM = 608, - EACOIVM0 = 640, - EACOULM0 = 672, - EACGSM = 704, - EATASC = 768, - EATASENC0 = 800, - EATASCTENC = 832, - EATASENM0 = 864, - EATASCTENM = 896, - EATASCSTC0 = 928, - EATASCSTC1 = 932, - EATASCSTM0 = 936, - EATASCSTM1 = 940, - EATASCTC = 944, - EATASCTM = 948, - EATASGL0 = 960, - EATASGL1 = 964, - EATASGLR = 968, - EATASGR = 976, - EATASGRR = 980, - EATASHCC = 992, - EATASRIRM = 996, - EATASSM = 1000, - EAUSMFSECN = 1024, - EATFECN = 1028, - EAFSECN = 1032, - EADQOECN = 1036, - EADQSECN = 1040, - EACKSECN = 1044, - EAEIS0 = 1280, - EAEIE0 = 1284, - EAEID0 = 1288, - EAEIS1 = 1296, - EAEIE1 = 1300, - EAEID1 = 1304, - EAEIS2 = 1312, - EAEIE2 = 1316, - EAEID2 = 1320, - EASCR = 1408, - MPSM = 4096, - MPIC = 4100, - MPIM = 4104, - MIOC = 4112, - MIOM = 4116, - MXMS = 4120, - MTFFC = 4128, - MTPFC = 4132, - MTPFC2 = 4136, - MTPFC30 = 4144, - MTATC0 = 4176, - MTIM = 4192, - MRGC = 4224, - MRMAC0 = 4228, - MRMAC1 = 4232, - MRAFC = 4236, - MRSCE = 4240, - MRSCP = 4244, - MRSCC = 4248, - MRFSCE = 4252, - MRFSCP = 4256, - MTRC = 4260, - MRIM = 4264, - MRPFM = 4268, - MPFC0 = 4352, - MLVC = 4480, - MEEEC = 4484, - MLBC = 4488, - MXGMIIC = 4496, - MPCH = 4500, - MANC = 4504, - MANM = 4508, - MPLCA1 = 4512, - MPLCA2 = 4516, - MPLCA3 = 4520, - MPLCA4 = 4524, - MPLCAM = 4528, - MHDC1 = 4544, - MHDC2 = 4548, - MEIS = 4608, - MEIE = 4612, - MEID = 4616, - MMIS0 = 4624, - MMIE0 = 4628, - MMID0 = 4632, - MMIS1 = 4640, - MMIE1 = 4644, - MMID1 = 4648, - MMIS2 = 4656, - MMIE2 = 4660, - MMID2 = 4664, - MMPFTCT = 4864, - MAPFTCT = 4868, - MPFRCT = 4872, - MFCICT = 4876, - MEEECT = 4880, - MMPCFTCT0 = 4896, - MAPCFTCT0 = 4912, - MPCFRCT0 = 4928, - MHDCC = 4944, - MROVFC = 4948, - MRHCRCEC = 4952, - MRXBCE = 5120, - MRXBCP = 5124, - MRGFCE = 5128, - MRGFCP = 5132, - MRBFC = 5136, - MRMFC = 5140, - MRUFC = 5144, - MRPEFC = 5148, - MRNEFC = 5152, - MRFMEFC = 5156, - MRFFMEFC = 5160, - MRCFCEFC = 5164, - MRFCEFC = 5168, - MRRCFEFC = 5172, - MRUEFC = 5180, - MROEFC = 5184, - MRBOEC = 5188, - MTXBCE = 5376, - MTXBCP = 5380, - MTGFCE = 5384, - MTGFCP = 5388, - MTBFC = 5392, - MTMFC = 5396, - MTUFC = 5400, - MTEFC = 5404, - GWMC = 65536, - GWMS = 65540, - GWIRC = 65552, - GWRDQSC = 65556, - GWRDQC = 65560, - GWRDQAC = 65564, - GWRGC = 65568, - GWRMFSC0 = 65600, - GWRDQDC0 = 65632, - GWRDQM0 = 65664, - GWRDQMLM0 = 65696, - GWMTIRM = 65792, - GWMSTLS = 65796, - GWMSTLR = 65800, - GWMSTSS = 65804, - GWMSTSR = 65808, - GWMAC0 = 65824, - GWMAC1 = 65828, - GWVCC = 65840, - GWVTC = 65844, - GWTTFC = 65848, - GWTDCAC00 = 65856, - GWTDCAC10 = 65860, - GWTSDCC0 = 65888, - GWTNM = 65920, - GWTMNM = 65924, - GWAC = 65936, - GWDCBAC0 = 65940, - GWDCBAC1 = 65944, - GWIICBSC = 65948, - GWMDNC = 65952, - GWTRC0 = 66048, - GWTPC0 = 66304, - GWARIRM = 66432, - GWDCC0 = 66560, - GWAARSS = 67584, - GWAARSR0 = 67588, - GWAARSR1 = 67592, - GWIDAUAS0 = 67648, - GWIDASM0 = 67712, - GWIDASAM00 = 67840, - GWIDASAM10 = 67844, - GWIDACAM00 = 67968, - GWIDACAM10 = 67972, - GWGRLC = 68096, - GWGRLULC = 68100, - GWRLIVC0 = 68224, - GWRLULC0 = 68228, - GWIDPC = 68352, - GWIDC0 = 68608, - GWDIS0 = 69888, - GWDIE0 = 69892, - GWDID0 = 69896, - GWTSDIS = 70016, - GWTSDIE = 70020, - GWTSDID = 70024, - GWEIS0 = 70032, - GWEIE0 = 70036, - GWEID0 = 70040, - GWEIS1 = 70048, - GWEIE1 = 70052, - GWEID1 = 70056, - GWEIS20 = 70144, - GWEIE20 = 70148, - GWEID20 = 70152, - GWEIS3 = 70272, - GWEIE3 = 70276, - GWEID3 = 70280, - GWEIS4 = 70288, - GWEIE4 = 70292, - GWEID4 = 70296, - GWEIS5 = 70304, - GWEIE5 = 70308, - GWEID5 = 70312, - GWSCR0 = 71680, - GWSCR1 = 71936, +enum dpaa_fq_type { + FQ_TYPE_RX_DEFAULT = 1, + FQ_TYPE_RX_ERROR = 2, + FQ_TYPE_RX_PCD = 3, + FQ_TYPE_TX = 4, + FQ_TYPE_TX_CONFIRM = 5, + FQ_TYPE_TX_CONF_MQ = 6, + FQ_TYPE_TX_ERROR = 7, }; -enum DIE_DT___2 { - DT_FSINGLE___2 = 128, - DT_FSTART___2 = 144, - DT_FMID___2 = 160, - DT_FEND___2 = 176, - DT_LEMPTY___2 = 192, - DT_EEMPTY___2 = 208, - DT_LINKFIX___2 = 0, - DT_LINK___2 = 224, - DT_EOS___2 = 240, - DT_FEMPTY___2 = 64, - DT_FEMPTY_IS___2 = 16, - DT_FEMPTY_IC___2 = 32, - DT_FEMPTY_ND___2 = 48, - DT_FEMPTY_START = 80, - DT_FEMPTY_MID = 96, - DT_FEMPTY_END = 112, - DT_MASK = 240, - DIE = 8, +struct dpaa_fq { + struct qman_fq fq_base; + struct list_head list; + struct net_device *net_dev; + bool init; + u32 fqid; + u32 flags; + u16 channel; + u8 wq; + enum dpaa_fq_type fq_type; + long: 64; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; }; -enum rswitch_gwca_mode { - GWMC_OPC_RESET = 0, - GWMC_OPC_DISABLE = 1, - GWMC_OPC_CONFIG = 2, - GWMC_OPC_OPERATION = 3, +enum dsaf_port_rate_mode { + DSAF_PORT_RATE_1000 = 0, + DSAF_PORT_RATE_2500 = 1, + DSAF_PORT_RATE_10000 = 2, }; -enum rswitch_etha_mode { - EAMC_OPC_RESET = 0, - EAMC_OPC_DISABLE = 1, - EAMC_OPC_CONFIG = 2, - EAMC_OPC_OPERATION = 3, +enum dsaf_roce_port_mode { + DSAF_ROCE_6PORT_MODE = 0, + DSAF_ROCE_4PORT_MODE = 1, + DSAF_ROCE_2PORT_MODE = 2, + DSAF_ROCE_CHAN_MODE_NUM = 3, }; -struct rswitch_gwca_ts_info { - struct sk_buff *skb; - struct list_head list; - int port; - u8 tag; +enum dsaf_stp_port_type { + DSAF_STP_PORT_TYPE_DISCARD = 0, + DSAF_STP_PORT_TYPE_BLOCK = 1, + DSAF_STP_PORT_TYPE_LISTEN = 2, + DSAF_STP_PORT_TYPE_LEARN = 3, + DSAF_STP_PORT_TYPE_FORWARD = 4, }; -struct rswitch_ext_desc; +enum dsaf_sw_port_type { + DSAF_SW_PORT_TYPE_NON_VLAN = 0, + DSAF_SW_PORT_TYPE_ACCESS = 1, + DSAF_SW_PORT_TYPE_TRUNK = 2, +}; -struct rswitch_ext_ts_desc; +struct dsaf_drv_soft_mac_tbl; -struct rswitch_ts_desc; +struct dsaf_drv_priv { + struct dsaf_drv_soft_mac_tbl *soft_mac_tbl; +}; -struct rswitch_gwca_queue { +struct dsaf_drv_tbl_tcam_key { union { - struct rswitch_ext_desc *tx_ring; - struct rswitch_ext_ts_desc *rx_ring; - struct rswitch_ts_desc *ts_ring; - }; - dma_addr_t ring_dma; - int ring_size; - int cur; - int dirty; - int index; - bool dir_tx; - struct sk_buff **skbs; - struct net_device *ndev; + struct { + u8 mac_3; + u8 mac_2; + u8 mac_1; + u8 mac_0; + } bits; + u32 val; + } high; + union { + struct { + u16 port_vlan; + u8 mac_5; + u8 mac_4; + } bits; + u32 val; + } low; }; -struct rswitch_desc; - -struct rswitch_gwca { - int index; - struct rswitch_desc *linkfix_table; - dma_addr_t linkfix_table_dma; - u32 linkfix_table_size; - struct rswitch_gwca_queue *queues; - int num_queues; - struct rswitch_gwca_queue ts_queue; - struct list_head ts_info_list; - unsigned long used[2]; - u32 tx_irq_bits[4]; - u32 rx_irq_bits[4]; - int speed; +struct dsaf_drv_soft_mac_tbl { + struct dsaf_drv_tbl_tcam_key tcam_key; + u16 index; }; -struct rswitch_etha { - int index; - void *addr; - void *coma_addr; - bool external_phy; - struct mii_bus *mii; - phy_interface_t phy_interface; - u8 mac_addr[32]; - int link; - int speed; - bool operated; +struct dsaf_tbl_tcam_data { + u32 tbl_tcam_data_high; + u32 tbl_tcam_data_low; }; -struct rswitch_mac_table_entry; - -struct rswitch_mfwd { - struct rswitch_mac_table_entry *mac_table_entries; - int num_mac_table_entries; +struct dsaf_tbl_tcam_ucast_cfg { + u32 tbl_ucast_old_en; + u32 tbl_ucast_item_vld; + u32 tbl_ucast_mac_discard; + u32 tbl_ucast_dvc; + u32 tbl_ucast_out_port; }; -struct rswitch_device; - -struct rswitch_private { - struct platform_device *pdev; - void *addr; - struct rcar_gen4_ptp_private *ptp_priv; - struct rswitch_device *rdev[3]; - unsigned long opened_ports[1]; - struct rswitch_gwca gwca; - struct rswitch_etha etha[3]; - struct rswitch_mfwd mfwd; - bool gwca_halt; +struct dsaf_tbl_tcam_mcast_cfg { + u8 tbl_mcast_old_en; + u8 tbl_mcast_item_vld; + u32 tbl_mcast_port_msk[5]; }; -struct rswitch_device { - struct rswitch_private *priv; - struct net_device *ndev; - struct napi_struct napi; - void *addr; - struct rswitch_gwca_queue *tx_queue; - struct rswitch_gwca_queue *rx_queue; - u8 ts_tag; - bool disabled; - int port; - struct rswitch_etha *etha; - struct device_node *np_port; - struct phy *serdes; +struct dsaf_tbl_line_cfg { + u32 tbl_line_mac_discard; + u32 tbl_line_dvc; + u32 tbl_line_out_port; }; -struct rswitch_desc { - __le16 info_ds; - u8 die_dt; - __u8 dptrh; - __le32 dptrl; -}; +struct hclge_mbx_vf_to_pf_cmd; -struct rswitch_ext_desc { - struct rswitch_desc desc; - __le64 info1; +typedef void (*btf_trace_hclge_pf_mbx_get)(void *, struct hclge_dev *, struct hclge_mbx_vf_to_pf_cmd *); + +struct hclge_ring_chain_param { + u8 ring_type; + u8 tqp_index; + u8 int_gl_index; }; -struct rswitch_ext_ts_desc { - struct rswitch_desc desc; - __le64 info1; - __le32 ts_nsec; - __le32 ts_sec; +struct hclge_vf_to_pf_msg { + u8 code; + union { + struct { + u8 subcode; + u8 data[14]; + }; + struct { + u8 en_bc; + u8 en_uc; + u8 en_mc; + u8 en_limit_promisc; + }; + struct { + u8 vector_id; + u8 ring_num; + struct hclge_ring_chain_param param[4]; + }; + }; }; -struct rswitch_ts_desc { - struct rswitch_desc desc; - __le32 ts_nsec; - __le32 ts_sec; +struct hclge_mbx_vf_to_pf_cmd { + u8 rsv; + u8 mbx_src_vfid; + u8 mbx_need_resp; + u8 rsv1[1]; + u8 msg_len; + u8 rsv2; + __le16 match_id; + struct hclge_vf_to_pf_msg msg; }; -typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); +struct hclge_mbx_pf_to_vf_cmd; -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; -}; +typedef void (*btf_trace_hclge_pf_mbx_send)(void *, struct hclge_dev *, struct hclge_mbx_pf_to_vf_cmd *); -struct ff_effect_compat { - __u16 type; - __s16 id; - __u16 direction; - struct ff_trigger trigger; - struct ff_replay replay; +struct hclge_pf_to_vf_msg { + __le16 code; 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 { + __le16 vf_mbx_msg_code; + __le16 vf_mbx_msg_subcode; + __le16 resp_status; + u8 resp_data[8]; + }; + struct { + u8 msg_data[14]; + }; + }; }; -struct input_event_compat { - compat_ulong_t sec; - compat_ulong_t usec; - __u16 type; - __u16 code; - __s32 value; +struct hclge_mbx_pf_to_vf_cmd { + u8 dest_vfid; + u8 rsv[3]; + u8 msg_len; + u8 rsv1; + __le16 match_id; + struct hclge_pf_to_vf_msg msg; }; -struct input_event { - __kernel_ulong_t __sec; - __kernel_ulong_t __usec; - __u16 type; - __u16 code; - __s32 value; -}; +struct hclge_mbx_ops_param; -struct pm8941_data { - unsigned int pull_up_bit; - unsigned int status_bit; - bool supports_ps_hold_poff_config; - bool supports_debounce_config; - bool has_pon_pbs; - const char *name; - const char *phys; -}; +typedef int (*hclge_mbx_ops_fn)(struct hclge_mbx_ops_param *); -struct pm8941_pwrkey { - struct device *dev; - int irq; - u32 baseaddr; - u32 pon_pbs_baseaddr; - struct regmap *regmap; - struct input_dev *input; - unsigned int revision; - unsigned int subtype; - struct notifier_block reboot_notifier; - u32 code; - u32 sw_debounce_time_us; - ktime_t sw_debounce_end_time; - bool last_status; - const struct pm8941_data *data; -}; +struct hclge_respond_to_vf_msg; -struct thermal_hwmon_device { - char type[20]; - struct device *device; - int count; - struct list_head tz_list; - struct list_head node; +struct hclge_mbx_ops_param { + struct hclge_vport *vport; + struct hclge_mbx_vf_to_pf_cmd *req; + struct hclge_respond_to_vf_msg *resp_msg; }; -struct thermal_hwmon_attr { - struct device_attribute attr; - char name[16]; +struct hclge_respond_to_vf_msg { + int status; + u8 data[8]; + u16 len; }; -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; +enum HCLGE_MBX_OPCODE { + HCLGE_MBX_RESET = 1, + HCLGE_MBX_ASSERTING_RESET = 2, + HCLGE_MBX_SET_UNICAST = 3, + HCLGE_MBX_SET_MULTICAST = 4, + HCLGE_MBX_SET_VLAN = 5, + HCLGE_MBX_MAP_RING_TO_VECTOR = 6, + HCLGE_MBX_UNMAP_RING_TO_VECTOR = 7, + HCLGE_MBX_SET_PROMISC_MODE = 8, + HCLGE_MBX_SET_MACVLAN = 9, + HCLGE_MBX_API_NEGOTIATE = 10, + HCLGE_MBX_GET_QINFO = 11, + HCLGE_MBX_GET_QDEPTH = 12, + HCLGE_MBX_GET_BASIC_INFO = 13, + HCLGE_MBX_GET_RETA = 14, + HCLGE_MBX_GET_RSS_KEY = 15, + HCLGE_MBX_GET_MAC_ADDR = 16, + HCLGE_MBX_PF_VF_RESP = 17, + HCLGE_MBX_GET_BDNUM = 18, + HCLGE_MBX_GET_BUFSIZE = 19, + HCLGE_MBX_GET_STREAMID = 20, + HCLGE_MBX_SET_AESTART = 21, + HCLGE_MBX_SET_TSOSTATS = 22, + HCLGE_MBX_LINK_STAT_CHANGE = 23, + HCLGE_MBX_GET_BASE_CONFIG = 24, + HCLGE_MBX_BIND_FUNC_QUEUE = 25, + HCLGE_MBX_GET_LINK_STATUS = 26, + HCLGE_MBX_QUEUE_RESET = 27, + HCLGE_MBX_KEEP_ALIVE = 28, + HCLGE_MBX_SET_ALIVE = 29, + HCLGE_MBX_SET_MTU = 30, + HCLGE_MBX_GET_QID_IN_PF = 31, + HCLGE_MBX_LINK_STAT_MODE = 32, + HCLGE_MBX_GET_LINK_MODE = 33, + HCLGE_MBX_PUSH_VLAN_INFO = 34, + HCLGE_MBX_GET_MEDIA_TYPE = 35, + HCLGE_MBX_PUSH_PROMISC_INFO = 36, + HCLGE_MBX_VF_UNINIT = 37, + HCLGE_MBX_HANDLE_VF_TBL = 38, + HCLGE_MBX_GET_RING_VECTOR_MAP = 39, + HCLGE_MBX_GET_VF_FLR_STATUS = 200, + HCLGE_MBX_PUSH_LINK_STATUS = 201, + HCLGE_MBX_NCSI_ERROR = 202, }; -enum rz_wdt_type { - WDT_RZG2L = 0, - WDT_RZV2M = 1, +enum hclge_mbx_mac_vlan_subcode { + HCLGE_MBX_MAC_VLAN_UC_MODIFY = 0, + HCLGE_MBX_MAC_VLAN_UC_ADD = 1, + HCLGE_MBX_MAC_VLAN_UC_REMOVE = 2, + HCLGE_MBX_MAC_VLAN_MC_MODIFY = 3, + HCLGE_MBX_MAC_VLAN_MC_ADD = 4, + HCLGE_MBX_MAC_VLAN_MC_REMOVE = 5, }; -struct rzg2l_wdt_priv { - void *base; - struct watchdog_device wdev; - struct reset_control *rstc; - unsigned long osc_clk_rate; - unsigned long delay; - unsigned long minimum_assertion_period; - struct clk *pclk; - struct clk *osc_clk; - enum rz_wdt_type devtype; +enum hclge_mbx_vlan_cfg_subcode { + HCLGE_MBX_VLAN_FILTER = 0, + HCLGE_MBX_VLAN_TX_OFF_CFG = 1, + HCLGE_MBX_VLAN_RX_OFF_CFG = 2, + HCLGE_MBX_PORT_BASE_VLAN_CFG = 3, + HCLGE_MBX_GET_PORT_BASE_VLAN_STATE = 4, + HCLGE_MBX_ENABLE_VLAN_FILTER = 5, }; -struct pmap { - unsigned int mode; - unsigned int p1; - unsigned int p2; - unsigned int state; +enum HNAE3_PF_CAP_BITS { + HNAE3_PF_SUPPORT_VLAN_FLTR_MDF_B = 0, }; -struct private_data___2 { - void *base; - void *avs_intr_base; - struct device *dev; - struct completion done; - struct semaphore sem; - struct pmap pmap; - int host_irq; +enum hclge_mbx_tbl_cfg_subcode { + HCLGE_MBX_VPORT_LIST_CLEAR = 0, }; -struct mmc_gpio { - struct gpio_desc *ro_gpio; - struct gpio_desc *cd_gpio; - irqreturn_t (*cd_gpio_isr)(int, void *); - char *ro_label; - char *cd_label; - u32 cd_debounce_delay_ms; - int cd_irq; +enum hclge_link_fail_code { + HCLGE_LF_NORMAL = 0, + HCLGE_LF_REF_CLOCK_LOST = 1, + HCLGE_LF_XSFP_TX_DISABLE = 2, + HCLGE_LF_XSFP_ABSENT = 3, }; -struct sdhci_cdns_drv_data { - int (*init)(struct platform_device *); - const struct sdhci_pltfm_data pltfm_data; +struct trace_event_raw_hclge_pf_mbx_get { + struct trace_entry ent; + u8 vfid; + u8 code; + u8 subcode; + u32 __data_loc_pciname; + u32 __data_loc_devname; + u32 mbx_data[6]; + char __data[0]; }; -struct sdhci_cdns_phy_cfg { - const char *property; - u8 addr; +struct trace_event_raw_hclge_pf_mbx_send { + struct trace_entry ent; + u8 vfid; + u16 code; + u32 __data_loc_pciname; + u32 __data_loc_devname; + u32 mbx_data[6]; + char __data[0]; }; -struct sdhci_cdns_phy_param { - u8 addr; - u8 data; +struct hclge_vf_vlan_cfg { + u8 mbx_cmd; + u8 subcode; + union { + struct { + u8 is_kill; + __le16 vlan; + __le16 proto; + } __attribute__((packed)); + u8 enable; + }; }; -struct sdhci_cdns_priv { - void *hrs_addr; - void *ctl_addr; - spinlock_t wrlock; - bool enhanced_strobe; - void (*priv_writel)(struct sdhci_cdns_priv *, u32, void *); - struct reset_control *rst_hw; - unsigned int nr_phy_params; - struct sdhci_cdns_phy_param phy_params[0]; +struct hclge_mbx_vf_queue_info { + __le16 num_tqps; + __le16 rss_size; + __le16 rx_buf_len; }; -enum scmi_sensor_protocol_cmd { - SENSOR_DESCRIPTION_GET = 3, - SENSOR_TRIP_POINT_NOTIFY = 4, - SENSOR_TRIP_POINT_CONFIG = 5, - SENSOR_READING_GET = 6, - SENSOR_AXIS_DESCRIPTION_GET = 7, - SENSOR_LIST_UPDATE_INTERVALS = 8, - SENSOR_CONFIG_GET = 9, - SENSOR_CONFIG_SET = 10, - SENSOR_CONTINUOUS_UPDATE_NOTIFY = 11, - SENSOR_NAME_GET = 12, - SENSOR_AXIS_NAME_GET = 13, +struct hclge_mbx_vf_queue_depth { + __le16 num_tx_desc; + __le16 num_rx_desc; }; -struct scmi_sens_ipriv { - void *priv; - struct device *dev; +struct hclge_basic_info { + u8 hw_tc_map; + u8 rsv; + __le16 mbx_api_version; + __le32 pf_caps; }; -struct sensors_info { - u32 version; - int num_sensors; - int max_requests; - u64 reg_addr; - u32 reg_size; - struct scmi_sensor_info *sensors; +struct hclge_mbx_mtu_info { + __le32 mtu; }; -struct scmi_msg_resp_sensor_attributes { - __le16 num_sensors; - u8 max_requests; - u8 reserved; - __le32 reg_addr_low; - __le32 reg_addr_high; - __le32 reg_size; +struct trace_event_data_offsets_hclge_pf_mbx_get { + u32 pciname; + u32 devname; }; -struct scmi_apriv { - bool any_axes_support_extended_names; - struct scmi_sensor_info *s; +struct trace_event_data_offsets_hclge_pf_mbx_send { + u32 pciname; + u32 devname; }; -struct scmi_msg_resp_attrs { - __le32 min_range_low; - __le32 min_range_high; - __le32 max_range_low; - __le32 max_range_high; +struct hclge_mbx_link_status { + __le16 link_status; + __le32 speed; + __le16 duplex; + u8 flag; +} __attribute__((packed)); + +struct hclge_mbx_port_base_vlan { + __le16 state; + __le16 vlan_proto; + __le16 qos; + __le16 vlan_tag; }; -struct scmi_sensor_reading_resp { - __le32 sensor_value_low; - __le32 sensor_value_high; - __le32 timestamp_low; - __le32 timestamp_high; +struct hclge_mbx_link_mode { + __le16 idx; + __le64 link_mode; +} __attribute__((packed)); + +enum ssusb_uwk_vers___2 { + SSUSB_UWK_V1___2 = 1, + SSUSB_UWK_V2___2 = 2, + SSUSB_UWK_V1_1___2 = 101, + SSUSB_UWK_V1_2___2 = 102, + SSUSB_UWK_V1_3 = 103, + SSUSB_UWK_V1_4 = 104, + SSUSB_UWK_V1_5 = 105, + SSUSB_UWK_V1_6 = 106, }; -struct scmi_msg_sensor_request_notify { - __le32 id; - __le32 event_control; +struct usbmisc_ops { + int (*init)(struct imx_usbmisc_data *); + int (*post)(struct imx_usbmisc_data *); + int (*set_wakeup)(struct imx_usbmisc_data *, bool); + int (*hsic_set_connect)(struct imx_usbmisc_data *); + int (*hsic_set_clk)(struct imx_usbmisc_data *, bool); + int (*charger_detection)(struct imx_usbmisc_data *); + int (*power_lost_check)(struct imx_usbmisc_data *); + void (*vbus_comparator_on)(struct imx_usbmisc_data *, bool); }; -struct scmi_msg_sensor_description { - __le32 desc_index; +struct imx_usbmisc { + void *base; + spinlock_t lock; + const struct usbmisc_ops *ops; }; -struct scmi_sensor_descriptor { - __le32 id; - __le32 attributes_low; - __le32 attributes_high; - u8 name[16]; - __le32 power; - __le32 resolution; - struct scmi_msg_resp_attrs scalar_attrs; +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 scmi_msg_resp_sensor_description { - __le16 num_returned; - __le16 num_remaining; - struct scmi_sensor_descriptor desc[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 scmi_msg_sensor_list_update_intervals { - __le32 id; - __le32 index; +struct input_mask { + __u32 type; + __u32 codes_size; + __u64 codes_ptr; }; -struct scmi_msg_resp_sensor_list_update_intervals { - __le32 num_intervals_flags; - __le32 intervals[0]; +struct pl031_vendor_data { + struct rtc_class_ops ops; + bool clockwatch; + bool st_weekday; + unsigned long irqflags; + time64_t range_min; + timeu64_t range_max; }; -struct scmi_msg_sensor_axis_description_get { - __le32 id; - __le32 axis_desc_index; +struct pl031_local { + struct pl031_vendor_data *vendor; + struct rtc_device *rtc; + void *base; }; -struct scmi_axis_descriptor { - __le32 id; - __le32 attributes_low; - __le32 attributes_high; - u8 name[16]; - __le32 resolution; - struct scmi_msg_resp_attrs attrs; +enum smcwd_call { + SMCWD_INIT = 0, + SMCWD_SET_TIMEOUT = 1, + SMCWD_ENABLE = 2, + SMCWD_PET = 3, + SMCWD_GET_TIMELEFT = 4, }; -struct scmi_msg_resp_sensor_axis_description { - __le32 num_axis_flags; - struct scmi_axis_descriptor desc[0]; +struct owl_mmc_host { + struct device *dev; + struct reset_control *reset; + void *base; + struct clk *clk; + struct completion sdc_complete; + spinlock_t lock; + int irq; + u32 clock; + bool ddr_50; + enum dma_data_direction dma_dir; + struct dma_chan *dma; + struct dma_async_tx_descriptor *desc; + struct dma_slave_config dma_cfg; + struct completion dma_complete; + struct mmc_host *mmc; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_data *data; }; -struct scmi_sensor_axis_name_descriptor { - __le32 axis_id; - u8 name[64]; +struct dmi_device_attribute { + struct device_attribute dev_attr; + int field; }; -struct scmi_msg_resp_sensor_axis_names_description { - __le32 num_axis_flags; - struct scmi_sensor_axis_name_descriptor desc[0]; +struct mafield { + const char *prefix; + int field; }; -struct scmi_msg_set_sensor_trip_point { - __le32 id; - __le32 event_control; - __le32 value_low; - __le32 value_high; +struct cper_arm_ctx_info { + u16 version; + u16 type; + u32 size; }; -struct scmi_msg_sensor_reading_get { - __le32 id; - __le32 flags; +enum imx_sc_rm_func { + IMX_SC_RM_FUNC_UNKNOWN = 0, + IMX_SC_RM_FUNC_PARTITION_ALLOC = 1, + IMX_SC_RM_FUNC_SET_CONFIDENTIAL = 31, + IMX_SC_RM_FUNC_PARTITION_FREE = 2, + IMX_SC_RM_FUNC_GET_DID = 26, + IMX_SC_RM_FUNC_PARTITION_STATIC = 3, + IMX_SC_RM_FUNC_PARTITION_LOCK = 4, + IMX_SC_RM_FUNC_GET_PARTITION = 5, + IMX_SC_RM_FUNC_SET_PARENT = 6, + IMX_SC_RM_FUNC_MOVE_ALL = 7, + IMX_SC_RM_FUNC_ASSIGN_RESOURCE = 8, + IMX_SC_RM_FUNC_SET_RESOURCE_MOVABLE = 9, + IMX_SC_RM_FUNC_SET_SUBSYS_RSRC_MOVABLE = 28, + IMX_SC_RM_FUNC_SET_MASTER_ATTRIBUTES = 10, + IMX_SC_RM_FUNC_SET_MASTER_SID = 11, + IMX_SC_RM_FUNC_SET_PERIPHERAL_PERMISSIONS = 12, + IMX_SC_RM_FUNC_IS_RESOURCE_OWNED = 13, + IMX_SC_RM_FUNC_GET_RESOURCE_OWNER = 33, + IMX_SC_RM_FUNC_IS_RESOURCE_MASTER = 14, + IMX_SC_RM_FUNC_IS_RESOURCE_PERIPHERAL = 15, + IMX_SC_RM_FUNC_GET_RESOURCE_INFO = 16, + IMX_SC_RM_FUNC_MEMREG_ALLOC = 17, + IMX_SC_RM_FUNC_MEMREG_SPLIT = 29, + IMX_SC_RM_FUNC_MEMREG_FRAG = 32, + IMX_SC_RM_FUNC_MEMREG_FREE = 18, + IMX_SC_RM_FUNC_FIND_MEMREG = 30, + IMX_SC_RM_FUNC_ASSIGN_MEMREG = 19, + IMX_SC_RM_FUNC_SET_MEMREG_PERMISSIONS = 20, + IMX_SC_RM_FUNC_IS_MEMREG_OWNED = 21, + IMX_SC_RM_FUNC_GET_MEMREG_INFO = 22, + IMX_SC_RM_FUNC_ASSIGN_PAD = 23, + IMX_SC_RM_FUNC_SET_PAD_MOVABLE = 24, + IMX_SC_RM_FUNC_IS_PAD_OWNED = 25, + IMX_SC_RM_FUNC_DUMP = 27, }; -struct scmi_resp_sensor_reading_complete { - __le32 id; - __le32 readings_low; - __le32 readings_high; +struct imx_sc_msg_rm_rsrc_owned { + struct imx_sc_rpc_msg hdr; + u16 resource; + long: 0; }; -struct scmi_resp_sensor_reading_complete_v3 { - __le32 id; - struct scmi_sensor_reading_resp readings[0]; +struct imx_sc_msg_rm_get_resource_owner { + struct imx_sc_rpc_msg hdr; + union { + struct { + u16 resource; + } req; + struct { + u8 val; + } resp; + } data; + long: 0; }; -struct scmi_msg_sensor_config_set { - __le32 id; - __le32 sensor_config; +struct qcom_scm { + struct device *dev; + struct clk *core_clk; + struct clk *iface_clk; + struct clk *bus_clk; + struct icc_path *path; + struct completion waitq_comp; + struct reset_controller_dev reset; + struct mutex scm_bw_lock; + int scm_vote_count; + u64 dload_mode_addr; }; -struct scmi_sensor_trip_notify_payld { - __le32 agent_id; - __le32 sensor_id; - __le32 trip_point_desc; +enum qcom_scm_arg_types { + QCOM_SCM_VAL = 0, + QCOM_SCM_RO = 1, + QCOM_SCM_RW = 2, + QCOM_SCM_BUFVAL = 3, }; -struct scmi_sensor_trip_point_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int sensor_id; - unsigned int trip_point_desc; +enum qcom_scm_ocmem_client { + QCOM_SCM_OCMEM_UNUSED_ID = 0, + QCOM_SCM_OCMEM_GRAPHICS_ID = 1, + QCOM_SCM_OCMEM_VIDEO_ID = 2, + QCOM_SCM_OCMEM_LP_AUDIO_ID = 3, + QCOM_SCM_OCMEM_SENSORS_ID = 4, + QCOM_SCM_OCMEM_OTHER_OS_ID = 5, + QCOM_SCM_OCMEM_DEBUG_ID = 6, }; -struct scmi_sensor_update_notify_payld { - __le32 agent_id; - __le32 sensor_id; - struct scmi_sensor_reading_resp readings[0]; +enum qcom_scm_ice_cipher { + QCOM_SCM_ICE_CIPHER_AES_128_XTS = 0, + QCOM_SCM_ICE_CIPHER_AES_128_CBC = 1, + QCOM_SCM_ICE_CIPHER_AES_256_XTS = 3, + QCOM_SCM_ICE_CIPHER_AES_256_CBC = 4, }; -struct scmi_sensor_update_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int sensor_id; - unsigned int readings_count; - struct scmi_sensor_reading readings[0]; +struct qcom_scm_pas_metadata { + void *ptr; + dma_addr_t phys; + ssize_t size; }; -enum zynqmp_pm_shutdown_subtype { - ZYNQMP_PM_SHUTDOWN_SUBTYPE_SUBSYSTEM = 0, - ZYNQMP_PM_SHUTDOWN_SUBTYPE_PS_ONLY = 1, - ZYNQMP_PM_SHUTDOWN_SUBTYPE_SYSTEM = 2, +struct qcom_scm_vmperm { + int vmid; + int perm; }; -struct zynqmp_pm_shutdown_scope { - const enum zynqmp_pm_shutdown_subtype subtype; - const char *name; +struct qcom_scm_mem_map_info { + __le64 mem_addr; + __le64 mem_size; }; -enum rpu_oper_mode { - PM_RPU_MODE_LOCKSTEP = 0, - PM_RPU_MODE_SPLIT = 1, +struct qcom_scm_current_perm_info { + __le32 vmid; + __le32 perm; + __le64 ctx; + __le32 ctx_size; + __le32 unused; }; -enum pm_ret_status { - XST_PM_SUCCESS = 0, - XST_PM_NO_FEATURE = 19, - XST_PM_INTERNAL = 2000, - XST_PM_CONFLICT = 2001, - XST_PM_NO_ACCESS = 2002, - XST_PM_INVALID_NODE = 2003, - XST_PM_DOUBLE_REQ = 2004, - XST_PM_ABORT_SUSPEND = 2005, - XST_PM_MULT_USER = 2008, +struct qcom_scm_hdcp_req { + u32 addr; + u32 val; }; -enum rpu_tcm_comb { - PM_RPU_TCM_SPLIT = 0, - PM_RPU_TCM_COMB = 1, +struct omap_dm_timer_ops; + +struct dmtimer_platform_data { + int (*set_timer_src)(struct platform_device *, int); + u32 timer_capability; + u32 timer_errata; + int (*get_context_loss_count)(struct device *); + const struct omap_dm_timer_ops *timer_ops; }; -enum pm_feature_config_id { - PM_FEATURE_INVALID = 0, - PM_FEATURE_OVERTEMP_STATUS = 1, - PM_FEATURE_OVERTEMP_VALUE = 2, - PM_FEATURE_EXTWDT_STATUS = 3, - PM_FEATURE_EXTWDT_VALUE = 4, +struct omap_dm_timer; + +struct omap_dm_timer_ops { + struct omap_dm_timer * (*request_by_node)(struct device_node *); + struct omap_dm_timer * (*request_specific)(int); + struct omap_dm_timer * (*request)(); + int (*free)(struct omap_dm_timer *); + void (*enable)(struct omap_dm_timer *); + void (*disable)(struct omap_dm_timer *); + int (*get_irq)(struct omap_dm_timer *); + int (*set_int_enable)(struct omap_dm_timer *, unsigned int); + int (*set_int_disable)(struct omap_dm_timer *, u32); + struct clk * (*get_fclk)(struct omap_dm_timer *); + int (*start)(struct omap_dm_timer *); + int (*stop)(struct omap_dm_timer *); + int (*set_source)(struct omap_dm_timer *, int); + int (*set_load)(struct omap_dm_timer *, unsigned int); + int (*set_match)(struct omap_dm_timer *, int, unsigned int); + int (*set_pwm)(struct omap_dm_timer *, int, int, int, int); + int (*get_pwm_status)(struct omap_dm_timer *); + int (*set_prescaler)(struct omap_dm_timer *, int); + unsigned int (*read_counter)(struct omap_dm_timer *); + int (*write_counter)(struct omap_dm_timer *, unsigned int); + unsigned int (*read_status)(struct omap_dm_timer *); + int (*write_status)(struct omap_dm_timer *, unsigned int); }; -enum pm_gem_config_type { - GEM_CONFIG_SGMII_MODE = 1, - GEM_CONFIG_FIXED = 2, +struct omap_dm_timer {}; + +enum { + REQUEST_ANY = 0, + REQUEST_BY_ID = 1, + REQUEST_BY_CAP = 2, + REQUEST_BY_NODE = 3, }; -enum zynqmp_pm_shutdown_type { - ZYNQMP_PM_SHUTDOWN_TYPE_SHUTDOWN = 0, - ZYNQMP_PM_SHUTDOWN_TYPE_RESET = 1, - ZYNQMP_PM_SHUTDOWN_TYPE_SETSCOPE_ONLY = 2, +struct timer_regs { + u32 ocp_cfg; + u32 tidr; + u32 tier; + u32 twer; + u32 tclr; + u32 tcrr; + u32 tldr; + u32 ttrg; + u32 twps; + u32 tmar; + u32 tcar1; + u32 tsicr; + u32 tcar2; + u32 tpir; + u32 tnir; + u32 tcvr; + u32 tocr; + u32 towr; }; -struct pm_api_feature_data { - u32 pm_api_id; - int feature_status; - struct hlist_node hentry; +struct dmtimer { + struct omap_dm_timer cookie; + int id; + int irq; + struct clk *fclk; + void *io_base; + int irq_stat; + int irq_ena; + int irq_dis; + void *pend; + void *func_base; + atomic_t enabled; + unsigned long rate; + unsigned int reserved: 1; + unsigned int posted: 1; + unsigned int omap1: 1; + struct timer_regs context; + int revision; + u32 capability; + u32 errata; + struct platform_device *pdev; + struct list_head node; + struct notifier_block nb; + struct notifier_block fclk_nb; + unsigned long fclk_rate; }; -struct zynqmp_devinfo { - struct device *dev; - u32 feature_conf_id; +typedef int (*cros_ec_xfer_fn_t)(struct cros_ec_device *, struct cros_ec_command *); + +struct cros_ec_xfer_work_params { + struct kthread_work work; + cros_ec_xfer_fn_t fn; + struct cros_ec_device *ec_dev; + struct cros_ec_command *ec_msg; + int ret; }; -enum { - EC_MSG_TX_HEADER_BYTES = 3, - EC_MSG_TX_TRAILER_BYTES = 1, - EC_MSG_TX_PROTO_BYTES = 4, - EC_MSG_RX_PROTO_BYTES = 3, - EC_PROTO2_MSG_BYTES = 256, - EC_MAX_MSG_BYTES = 65536, +struct cros_ec_spi { + struct spi_device *spi; + s64 last_transfer_ns; + unsigned int start_of_msg_delay; + unsigned int end_of_msg_delay; + struct kthread_worker *high_pri_worker; }; -enum ec_comms_status { - EC_COMMS_STATUS_PROCESSING = 1, +struct mca_data; + +struct mca_cluster { + int no; + void *base; + struct mca_data *host; + struct device *pd_dev; + struct clk *clk_parent; + struct dma_chan *dma_chans[2]; + bool port_started[2]; + int port_driver; + bool clocks_in_use[2]; + struct device_link *pd_link; + unsigned int bclk_ratio; + int tdm_slots; + int tdm_slot_width; + unsigned int tdm_tx_mask; + unsigned int tdm_rx_mask; }; -struct ec_host_request { - uint8_t struct_version; - uint8_t checksum; - uint16_t command; - uint8_t command_version; - uint8_t reserved; - uint16_t data_len; +struct mca_data { + struct device *dev; + void *switch_base; + struct device *pd_dev; + struct reset_control *rstc; + struct device_link *pd_link; + struct mutex port_mutex; + int nclusters; + struct mca_cluster clusters[0]; }; -struct ec_response_get_protocol_info { - uint32_t protocol_versions; - uint16_t max_request_packet_size; - uint16_t max_response_packet_size; - uint32_t flags; +enum hwtstamp_flags { + HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1, + HWTSTAMP_FLAG_LAST = 1, + HWTSTAMP_FLAG_MASK = 1, }; -struct ec_params_hello { - uint32_t in_data; +struct compat_ifconf { + compat_int_t ifc_len; + compat_caddr_t ifcbuf; }; -struct ec_response_hello { - uint32_t out_data; +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, }; -struct ec_params_get_cmd_versions { - uint8_t cmd; +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, }; -struct ec_response_host_event_mask { - uint32_t mask; +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, }; -struct ec_response_get_comms_status { - uint32_t flags; +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, }; -struct snd_soc_jack_pin { - struct list_head list; - const char *pin; - int mask; - bool invert; +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, }; -struct snd_soc_jack_zone { - unsigned int min_mv; - unsigned int max_mv; - unsigned int jack_type; - unsigned int debounce_time; - struct list_head list; +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, }; -struct snd_soc_jack_gpio { - unsigned int gpio; - unsigned int idx; - struct device *gpiod_dev; - const char *name; - int report; - int invert; - int debounce_time; - bool wake; - struct snd_soc_jack *jack; - struct delayed_work work; - struct notifier_block pm_notifier; - struct gpio_desc *desc; - void *data; - int (*jack_status_check)(void *); +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, }; -struct jack_gpio_tbl { - int count; - struct snd_soc_jack *jack; - struct snd_soc_jack_gpio *gpios; +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 offload_act_command { - FLOW_ACT_REPLACE = 0, - FLOW_ACT_DESTROY = 1, - FLOW_ACT_STATS = 2, +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, }; -typedef int flow_indr_block_bind_cb_t(struct net_device *, struct Qdisc *, void *, enum tc_setup_type, void *, void *, void (*)(struct flow_block_cb *)); - -struct flow_indr_dev { - struct list_head list; - flow_indr_block_bind_cb_t *cb; - void *cb_priv; - refcount_t refcnt; +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, }; -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; +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, }; -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; +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, }; -struct flow_dissector_key_meta; - -struct flow_match_meta { - struct flow_dissector_key_meta *key; - struct flow_dissector_key_meta *mask; +struct in_pktinfo { + int ipi_ifindex; + struct in_addr ipi_spec_dst; + struct in_addr ipi_addr; }; -struct flow_dissector_key_meta { - int ingress_ifindex; - u16 ingress_iftype; - u8 l2_miss; +struct group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; }; -struct flow_match_basic { - struct flow_dissector_key_basic *key; - struct flow_dissector_key_basic *mask; -}; +struct compat_group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; +} __attribute__((packed)); -struct flow_match_control { - struct flow_dissector_key_control *key; - struct flow_dissector_key_control *mask; -}; +struct compat_group_req { + __u32 gr_interface; + struct __kernel_sockaddr_storage gr_group; +} __attribute__((packed)); -struct flow_dissector_key_arp; +struct group_req { + __u32 gr_interface; + struct __kernel_sockaddr_storage gr_group; +}; -struct flow_match_arp { - struct flow_dissector_key_arp *key; - struct flow_dissector_key_arp *mask; +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)); + }; }; -struct flow_dissector_key_arp { - __u32 sip; - __u32 tip; - __u8 op; - unsigned char sha[6]; - unsigned char tha[6]; +struct icmp_err { + int errno; + unsigned int fatal: 1; }; -struct flow_match_ipv4_addrs { - struct flow_dissector_key_ipv4_addrs *key; - struct flow_dissector_key_ipv4_addrs *mask; +struct icmp_control { + enum skb_drop_reason (*handler)(struct sk_buff *); + short error; }; -struct flow_match_ipv6_addrs { - struct flow_dissector_key_ipv6_addrs *key; - struct flow_dissector_key_ipv6_addrs *mask; +enum { + XFRM_LOOKUP_ICMP = 1, + XFRM_LOOKUP_QUEUE = 2, + XFRM_LOOKUP_KEEP_DST_REF = 4, }; -struct flow_match_ip { - struct flow_dissector_key_ip *key; - struct flow_dissector_key_ip *mask; +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 flow_match_ports { - struct flow_dissector_key_ports *key; - struct flow_dissector_key_ports *mask; +struct icmp_extobj_hdr { + __be16 length; + __u8 class_num; + __u8 class_type; }; -struct flow_dissector_key_ports_range; +struct icmp_ext_hdr { + __u8 reserved1: 4; + __u8 version: 4; + __u8 reserved2; + __sum16 checksum; +}; -struct flow_match_ports_range { - struct flow_dissector_key_ports_range *key; - struct flow_dissector_key_ports_range *mask; +struct icmp_ext_echo_ctype3_hdr { + __be16 afi; + __u8 addrlen; + __u8 reserved; }; -struct flow_dissector_key_ports_range { +struct icmp_ext_echo_iio { + struct icmp_extobj_hdr extobj_hdr; union { - struct flow_dissector_key_ports tp; + char name[16]; + __be32 ifindex; struct { - struct flow_dissector_key_ports tp_min; - struct flow_dissector_key_ports tp_max; - }; - }; + struct icmp_ext_echo_ctype3_hdr ctype3_hdr; + union { + __be32 ipv4_addr; + struct in6_addr ipv6_addr; + } ip_addr; + } addr; + } ident; }; -struct flow_dissector_key_tcp; +struct xdr_array2_desc; -struct flow_match_tcp { - struct flow_dissector_key_tcp *key; - struct flow_dissector_key_tcp *mask; +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 flow_dissector_key_tcp { - __be16 flags; +enum { + Rworksched = 1, + Rpending = 2, + Wworksched = 4, + Wpending = 8, }; -struct flow_match_icmp { - struct flow_dissector_key_icmp *key; - struct flow_dissector_key_icmp *mask; +enum { + Opt_port___2 = 0, + Opt_rfdno = 1, + Opt_wfdno = 2, + Opt_err___8 = 3, + Opt_privport = 4, }; -struct flow_dissector_key_mpls; +struct p9_conn; -struct flow_match_mpls { - struct flow_dissector_key_mpls *key; - struct flow_dissector_key_mpls *mask; +struct p9_poll_wait { + struct p9_conn *conn; + wait_queue_entry_t wait; + wait_queue_head_t *wait_addr; }; -struct flow_dissector_mpls_lse { - u32 mpls_ttl: 8; - u32 mpls_bos: 1; - u32 mpls_tc: 3; - u32 mpls_label: 20; +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; }; -struct flow_dissector_key_mpls { - struct flow_dissector_mpls_lse ls[7]; - u8 used_lses; +struct p9_trans_fd { + struct file *rd; + struct file *wr; + struct p9_conn conn; }; -struct flow_match_enc_keyid { - struct flow_dissector_key_keyid *key; - struct flow_dissector_key_keyid *mask; +struct p9_fd_opts { + int rfd; + int wfd; + u16 port; + bool privport; }; -struct flow_dissector_key_enc_opts; +typedef void (*btf_trace_kvm_wfx_arm64)(void *, unsigned long, bool); -struct flow_match_enc_opts { - struct flow_dissector_key_enc_opts *key; - struct flow_dissector_key_enc_opts *mask; -}; +typedef void (*btf_trace_kvm_hvc_arm64)(void *, unsigned long, unsigned long, unsigned long); -struct flow_dissector_key_enc_opts { - u8 data[255]; - u8 len; - __be16 dst_opt_type; -}; +typedef void (*btf_trace_kvm_arm_setup_debug)(void *, struct kvm_vcpu *, __u32); -struct flow_dissector_key_ct; +typedef void (*btf_trace_kvm_arm_clear_debug)(void *, __u32); -struct flow_match_ct { - struct flow_dissector_key_ct *key; - struct flow_dissector_key_ct *mask; -}; +typedef void (*btf_trace_kvm_arm_set_dreg32)(void *, const char *, __u64); -struct flow_dissector_key_ct { - u16 ct_state; - u16 ct_zone; - u32 ct_mark; - u32 ct_labels[4]; -}; +typedef void (*btf_trace_kvm_arm_set_regset)(void *, const char *, int, __u64 *, __u64 *); -struct flow_dissector_key_pppoe; +typedef void (*btf_trace_trap_reg)(void *, const char *, int, bool, u64); -struct flow_match_pppoe { - struct flow_dissector_key_pppoe *key; - struct flow_dissector_key_pppoe *mask; -}; +typedef void (*btf_trace_kvm_handle_sys_reg)(void *, unsigned long); -struct flow_dissector_key_pppoe { - __be16 session_id; - __be16 ppp_proto; - __be16 type; -}; +typedef void (*btf_trace_kvm_sys_access)(void *, unsigned long, struct sys_reg_params *, const struct sys_reg_desc *); -struct flow_dissector_key_l2tpv3; +typedef void (*btf_trace_kvm_set_guest_debug)(void *, struct kvm_vcpu *, __u32); -struct flow_match_l2tpv3 { - struct flow_dissector_key_l2tpv3 *key; - struct flow_dissector_key_l2tpv3 *mask; +typedef int (*exit_handle_fn)(struct kvm_vcpu *); + +struct trace_event_raw_kvm_wfx_arm64 { + struct trace_entry ent; + unsigned long vcpu_pc; + bool is_wfe; + char __data[0]; }; -struct flow_dissector_key_l2tpv3 { - __be32 session_id; +struct trace_event_raw_kvm_hvc_arm64 { + struct trace_entry ent; + unsigned long vcpu_pc; + unsigned long r0; + unsigned long imm; + char __data[0]; }; -enum tc_mq_command { - TC_MQ_CREATE = 0, - TC_MQ_DESTROY = 1, - TC_MQ_STATS = 2, - TC_MQ_GRAFT = 3, +struct trace_event_raw_kvm_arm_setup_debug { + struct trace_entry ent; + struct kvm_vcpu *vcpu; + __u32 guest_debug; + char __data[0]; }; -struct tc_mq_opt_offload_graft_params { - unsigned long queue; - u32 child_handle; +struct trace_event_raw_kvm_arm_clear_debug { + struct trace_entry ent; + __u32 guest_debug; + char __data[0]; }; -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 trace_event_raw_kvm_arm_set_dreg32 { + struct trace_entry ent; + const char *name; + __u64 value; + char __data[0]; }; -struct mq_sched { - struct Qdisc **qdiscs; +struct trace_event_raw_kvm_arm_set_regset { + struct trace_entry ent; + const char *name; + int len; + u64 ctrls[16]; + u64 values[16]; + char __data[0]; }; -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 trace_event_raw_trap_reg { + struct trace_entry ent; + const char *fn; + int reg; + bool is_write; + u64 write_value; + char __data[0]; }; -struct channels_reply_data { - struct ethnl_reply_data base; - struct ethtool_channels channels; +struct trace_event_raw_kvm_handle_sys_reg { + struct trace_entry ent; + unsigned long hsr; + char __data[0]; }; -struct snmp_mib { +struct trace_event_raw_kvm_sys_access { + struct trace_entry ent; + unsigned long vcpu_pc; + bool is_write; const char *name; - int entry; + u8 Op0; + u8 Op1; + u8 CRn; + u8 CRm; + u8 Op2; + char __data[0]; }; -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 *); +struct trace_event_raw_kvm_set_guest_debug { + struct trace_entry ent; + struct kvm_vcpu *vcpu; + __u32 guest_debug; + char __data[0]; +}; -typedef void (*btf_trace_rpc_xdr_reply_pages)(void *, const struct rpc_task *, const struct xdr_buf *); +struct trace_event_data_offsets_kvm_wfx_arm64 {}; -typedef void (*btf_trace_rpc_clnt_free)(void *, const struct rpc_clnt *); +struct trace_event_data_offsets_kvm_hvc_arm64 {}; -typedef void (*btf_trace_rpc_clnt_killall)(void *, const struct rpc_clnt *); +struct trace_event_data_offsets_kvm_arm_setup_debug {}; -typedef void (*btf_trace_rpc_clnt_shutdown)(void *, const struct rpc_clnt *); +struct trace_event_data_offsets_kvm_arm_clear_debug {}; -typedef void (*btf_trace_rpc_clnt_release)(void *, const struct rpc_clnt *); +struct trace_event_data_offsets_kvm_arm_set_dreg32 {}; -typedef void (*btf_trace_rpc_clnt_replace_xprt)(void *, const struct rpc_clnt *); +struct trace_event_data_offsets_kvm_arm_set_regset {}; -typedef void (*btf_trace_rpc_clnt_replace_xprt_err)(void *, const struct rpc_clnt *); +struct trace_event_data_offsets_trap_reg {}; -typedef void (*btf_trace_rpc_clnt_new)(void *, const struct rpc_clnt *, const struct rpc_xprt *, const struct rpc_create_args *); +struct trace_event_data_offsets_kvm_handle_sys_reg {}; -typedef void (*btf_trace_rpc_clnt_new_err)(void *, const char *, const char *, int); +struct trace_event_data_offsets_kvm_sys_access {}; -typedef void (*btf_trace_rpc_clnt_clone_err)(void *, const struct rpc_clnt *, int); +struct trace_event_data_offsets_kvm_set_guest_debug {}; -typedef void (*btf_trace_rpc_call_status)(void *, const struct rpc_task *); +struct vgic_state_iter { + int nr_cpus; + int nr_spis; + int nr_lpis; + int dist_id; + int vcpu_id; + int intid; + int lpi_idx; + u32 *lpi_array; +}; -typedef void (*btf_trace_rpc_connect_status)(void *, const struct rpc_task *); +struct sha256_ce_state { + struct sha256_state sst; + u32 finalize; +}; -typedef void (*btf_trace_rpc_timeout_status)(void *, const struct rpc_task *); +enum { + HP_THREAD_NONE = 0, + HP_THREAD_ACTIVE = 1, + HP_THREAD_PARKED = 2, +}; -typedef void (*btf_trace_rpc_retry_refresh_status)(void *, const struct rpc_task *); +struct smpboot_thread_data { + unsigned int cpu; + unsigned int status; + struct smp_hotplug_thread *ht; +}; -typedef void (*btf_trace_rpc_refresh_status)(void *, const struct rpc_task *); +struct mcs_spinlock { + struct mcs_spinlock *next; + int locked; + int count; +}; -typedef void (*btf_trace_rpc_request)(void *, const struct rpc_task *); +struct qnode { + struct mcs_spinlock mcs; +}; -typedef void (*btf_trace_rpc_task_begin)(void *, const struct rpc_task *, const void *); +typedef void (*btf_trace_console)(void *, const char *, size_t); -typedef void (*btf_trace_rpc_task_run_action)(void *, const struct rpc_task *, const void *); +struct prb_desc; -typedef void (*btf_trace_rpc_task_sync_sleep)(void *, const struct rpc_task *, const void *); +struct printk_info; -typedef void (*btf_trace_rpc_task_sync_wake)(void *, const struct rpc_task *, const void *); +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; +}; -typedef void (*btf_trace_rpc_task_complete)(void *, const struct rpc_task *, const void *); +struct prb_data_ring { + unsigned int size_bits; + char *data; + atomic_long_t head_lpos; + atomic_long_t tail_lpos; +}; -typedef void (*btf_trace_rpc_task_timeout)(void *, const struct rpc_task *, const void *); +struct printk_ringbuffer { + struct prb_desc_ring desc_ring; + struct prb_data_ring text_data_ring; + atomic_long_t fail; +}; -typedef void (*btf_trace_rpc_task_signalled)(void *, const struct rpc_task *, const void *); +struct prb_data_blk_lpos { + unsigned long begin; + unsigned long next; +}; -typedef void (*btf_trace_rpc_task_end)(void *, const struct rpc_task *, const void *); +struct prb_desc { + atomic_long_t state_var; + struct prb_data_blk_lpos text_blk_lpos; +}; -typedef void (*btf_trace_rpc_task_call_done)(void *, const struct rpc_task *, const void *); +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; +}; -typedef void (*btf_trace_rpc_task_sleep)(void *, const struct rpc_task *, const struct rpc_wait_queue *); +struct printk_buffers { + char outbuf[2048]; + char scratchbuf[1024]; +}; -typedef void (*btf_trace_rpc_task_wakeup)(void *, const struct rpc_task *, const struct rpc_wait_queue *); +struct latched_seq { + seqcount_latch_t latch; + u64 val[2]; +}; -typedef void (*btf_trace_rpc_bad_callhdr)(void *, const struct rpc_task *); +struct console_cmdline { + char name[16]; + int index; + bool user_specified; + char *options; +}; -typedef void (*btf_trace_rpc_bad_verifier)(void *, const struct rpc_task *); +enum devkmsg_log_masks { + DEVKMSG_LOG_MASK_ON = 1, + DEVKMSG_LOG_MASK_OFF = 2, + DEVKMSG_LOG_MASK_LOCK = 4, +}; -typedef void (*btf_trace_rpc__prog_unavail)(void *, const struct rpc_task *); +enum printk_info_flags { + LOG_NEWLINE = 2, + LOG_CONT = 8, +}; -typedef void (*btf_trace_rpc__prog_mismatch)(void *, const struct rpc_task *); +enum con_msg_format_flags { + MSG_FORMAT_DEFAULT = 0, + MSG_FORMAT_SYSLOG = 1, +}; -typedef void (*btf_trace_rpc__proc_unavail)(void *, const struct rpc_task *); +struct trace_event_raw_console { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; -typedef void (*btf_trace_rpc__garbage_args)(void *, const struct rpc_task *); +struct trace_event_data_offsets_console { + u32 msg; +}; -typedef void (*btf_trace_rpc__unparsable)(void *, const struct rpc_task *); +struct printk_record { + struct printk_info *info; + char *text_buf; + unsigned int text_buf_size; +}; -typedef void (*btf_trace_rpc__mismatch)(void *, const struct rpc_task *); +struct prb_reserved_entry { + struct printk_ringbuffer *rb; + unsigned long irqflags; + unsigned long id; + unsigned int text_space; +}; -typedef void (*btf_trace_rpc__stale_creds)(void *, const struct rpc_task *); +struct printk_message { + struct printk_buffers *pbufs; + unsigned int outbuf_len; + u64 seq; + unsigned long dropped; +}; -typedef void (*btf_trace_rpc__bad_creds)(void *, const struct rpc_task *); +struct devkmsg_user { + atomic64_t seq; + struct ratelimit_state rs; + struct mutex lock; + struct printk_buffers pbufs; +}; -typedef void (*btf_trace_rpc__auth_tooweak)(void *, const struct rpc_task *); +struct tk_fast { + seqcount_latch_t seq; + struct tk_read_base base[2]; +}; -typedef void (*btf_trace_rpcb_prog_unavail_err)(void *, const struct rpc_task *); +enum timekeeping_adv_mode { + TK_ADV_TICK = 0, + TK_ADV_FREQ = 1, +}; -typedef void (*btf_trace_rpcb_timeout_err)(void *, const struct rpc_task *); +struct ktime_timestamps { + u64 mono; + u64 boot; + u64 real; +}; -typedef void (*btf_trace_rpcb_bind_version_err)(void *, const struct rpc_task *); +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 void (*btf_trace_rpcb_unreachable_err)(void *, const struct rpc_task *); +typedef __u16 comp_t; -typedef void (*btf_trace_rpcb_unrecognized_err)(void *, const struct rpc_task *); +struct acct_v3 { + char ac_flag; + char ac_version; + __u16 ac_tty; + __u32 ac_exitcode; + __u32 ac_uid; + __u32 ac_gid; + __u32 ac_pid; + __u32 ac_ppid; + __u32 ac_btime; + __u32 ac_etime; + comp_t ac_utime; + comp_t ac_stime; + comp_t ac_mem; + comp_t ac_io; + comp_t ac_rw; + comp_t ac_minflt; + comp_t ac_majflt; + comp_t ac_swaps; + char ac_comm[16]; +}; -typedef void (*btf_trace_rpc_buf_alloc)(void *, const struct rpc_task *, int); +typedef struct acct_v3 acct_t; -typedef void (*btf_trace_rpc_call_rpcerror)(void *, const struct rpc_task *, int, int); +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]; +}; -typedef void (*btf_trace_rpc_stats_latency)(void *, const struct rpc_task *, ktime_t, ktime_t, ktime_t); +struct user_event_group { + char *system_name; + struct hlist_node node; + struct mutex reg_mutex; + struct hlist_head register_table[256]; +}; -typedef void (*btf_trace_rpc_xdr_overflow)(void *, const struct xdr_stream *, size_t); +enum user_reg_flag { + USER_EVENT_REG_PERSIST = 1, + USER_EVENT_REG_MAX = 2, +}; -typedef void (*btf_trace_rpc_xdr_alignment)(void *, const struct xdr_stream *, size_t, unsigned int); +struct user_event; -typedef void (*btf_trace_rpc_socket_state_change)(void *, struct rpc_xprt *, struct socket *); +struct user_event_enabler { + struct list_head mm_enablers_link; + struct user_event *event; + unsigned long addr; + unsigned long values; +}; -typedef void (*btf_trace_rpc_socket_connect)(void *, struct rpc_xprt *, struct socket *, int); +struct user_event { + struct user_event_group *group; + struct tracepoint tracepoint; + struct trace_event_call call; + struct trace_event_class class; + struct dyn_event devent; + struct hlist_node node; + struct list_head fields; + struct list_head validators; + struct work_struct put_work; + refcount_t refcnt; + int min_size; + int reg_flags; + char status; +}; -typedef void (*btf_trace_rpc_socket_error)(void *, struct rpc_xprt *, struct socket *, int); +struct user_event_validator { + struct list_head user_event_link; + int offset; + int flags; +}; -typedef void (*btf_trace_rpc_socket_reset_connection)(void *, struct rpc_xprt *, struct socket *, int); +struct user_event_refs { + struct callback_head rcu; + int count; + struct user_event *events[0]; +}; -typedef void (*btf_trace_rpc_socket_close)(void *, struct rpc_xprt *, struct socket *); +struct user_reg { + __u32 size; + __u8 enable_bit; + __u8 enable_size; + __u16 flags; + __u64 enable_addr; + __u64 name_args; + __u32 write_index; +} __attribute__((packed)); -typedef void (*btf_trace_rpc_socket_shutdown)(void *, struct rpc_xprt *, struct socket *); +struct user_event_enabler_fault { + struct work_struct work; + struct user_event_mm *mm; + struct user_event_enabler *enabler; + int attempt; +}; -typedef void (*btf_trace_rpc_socket_nospace)(void *, const struct rpc_rqst *, const struct sock_xprt *); +struct user_unreg { + __u32 size; + __u8 disable_bit; + __u8 __reserved; + __u16 __reserved2; + __u64 disable_addr; +}; -typedef void (*btf_trace_xprt_create)(void *, const struct rpc_xprt *); +struct user_event_file_info { + struct user_event_group *group; + struct user_event_refs *refs; +}; -typedef void (*btf_trace_xprt_connect)(void *, const struct rpc_xprt *); +typedef void (*user_event_func_t)(struct user_event *, struct iov_iter *, void *, bool *); -typedef void (*btf_trace_xprt_disconnect_auto)(void *, const struct rpc_xprt *); +struct bpf_bloom_filter { + struct bpf_map map; + u32 bitset_mask; + u32 hash_seed; + u32 nr_hash_funcs; + unsigned long bitset[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; -typedef void (*btf_trace_xprt_disconnect_done)(void *, const struct rpc_xprt *); +enum bpf_struct_ops_state { + BPF_STRUCT_OPS_STATE_INIT = 0, + BPF_STRUCT_OPS_STATE_INUSE = 1, + BPF_STRUCT_OPS_STATE_TOBEFREE = 2, + BPF_STRUCT_OPS_STATE_READY = 3, +}; -typedef void (*btf_trace_xprt_disconnect_force)(void *, const struct rpc_xprt *); +struct bpf_dummy_ops_state; -typedef void (*btf_trace_xprt_destroy)(void *, const struct rpc_xprt *); +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 *); +}; -typedef void (*btf_trace_xprt_timer)(void *, const struct rpc_xprt *, __be32, int); +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; +}; -typedef void (*btf_trace_xprt_lookup_rqst)(void *, const struct rpc_xprt *, __be32, int); +struct bpf_dummy_ops_state { + int val; +}; -typedef void (*btf_trace_xprt_transmit)(void *, const struct rpc_rqst *, int); +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; +}; -typedef void (*btf_trace_xprt_retransmit)(void *, const struct rpc_rqst *); +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]; +}; -typedef void (*btf_trace_xprt_ping)(void *, const struct rpc_xprt *, int); +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; +}; -typedef void (*btf_trace_xprt_reserve_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct bpf_struct_ops_link { + struct bpf_link link; + struct bpf_map __attribute__((btf_type_tag("rcu"))) *map; +}; -typedef void (*btf_trace_xprt_release_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); +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_xprt_reserve_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void __attribute__((btf_type_tag("percpu"))) *); -typedef void (*btf_trace_xprt_release_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +typedef void (*btf_trace_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_t); -typedef void (*btf_trace_xprt_get_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +typedef void (*btf_trace_percpu_create_chunk)(void *, void *); -typedef void (*btf_trace_xprt_put_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *); -typedef void (*btf_trace_xprt_reserve)(void *, const struct rpc_rqst *); +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; +}; -typedef void (*btf_trace_xs_data_ready)(void *, const struct rpc_xprt *); +struct pcpu_chunk { + struct list_head list; + int free_bytes; + struct pcpu_block_md chunk_md; + unsigned long *bound_map; + void *base_addr; + unsigned long *alloc_map; + struct pcpu_block_md *md_blocks; + void *data; + bool immutable; + bool isolated; + int start_offset; + int end_offset; + struct obj_cgroup **obj_cgroups; + int nr_pages; + int nr_populated; + int nr_empty_pop_pages; + unsigned long populated[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; -typedef void (*btf_trace_xs_stream_read_data)(void *, struct rpc_xprt *, ssize_t, size_t); +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]; +}; -typedef void (*btf_trace_xs_stream_read_request)(void *, struct sock_xprt *); +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]; +}; -typedef void (*btf_trace_rpcb_getport)(void *, const struct rpc_clnt *, const struct rpc_task *, unsigned int); +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]; +}; -typedef void (*btf_trace_rpcb_setport)(void *, const struct rpc_task *, int, unsigned short); +struct trace_event_raw_percpu_create_chunk { + struct trace_entry ent; + void *base_addr; + char __data[0]; +}; -typedef void (*btf_trace_pmap_register)(void *, u32, u32, int, unsigned short); +struct trace_event_raw_percpu_destroy_chunk { + struct trace_entry ent; + void *base_addr; + char __data[0]; +}; -typedef void (*btf_trace_rpcb_register)(void *, u32, u32, const char *, const char *); +struct pcpu_group_info { + int nr_units; + unsigned long base_offset; + unsigned int *cpu_map; +}; -typedef void (*btf_trace_rpcb_unregister)(void *, u32, u32, const char *); +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]; +}; -typedef void (*btf_trace_rpc_tls_unavailable)(void *, const struct rpc_clnt *, const struct rpc_xprt *); +struct trace_event_data_offsets_percpu_alloc_percpu {}; -typedef void (*btf_trace_rpc_tls_not_started)(void *, const struct rpc_clnt *, const struct rpc_xprt *); +struct trace_event_data_offsets_percpu_free_percpu {}; -typedef void (*btf_trace_svc_xdr_recvfrom)(void *, const struct xdr_buf *); +struct trace_event_data_offsets_percpu_alloc_percpu_fail {}; -typedef void (*btf_trace_svc_xdr_sendto)(void *, __be32, const struct xdr_buf *); +struct trace_event_data_offsets_percpu_create_chunk {}; -typedef void (*btf_trace_svc_authenticate)(void *, const struct svc_rqst *, int); +struct trace_event_data_offsets_percpu_destroy_chunk {}; -typedef void (*btf_trace_svc_process)(void *, const struct svc_rqst *, const char *); +struct swap_extent { + struct rb_node rb_node; + unsigned long start_page; + unsigned long nr_pages; + sector_t start_block; +}; -typedef void (*btf_trace_svc_defer)(void *, const struct svc_rqst *); +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; +}; -typedef void (*btf_trace_svc_drop)(void *, const struct svc_rqst *); +struct ns_get_path_task_args { + const struct proc_ns_operations *ns_ops; + struct task_struct *task; +}; -typedef void (*btf_trace_svc_send)(void *, const struct svc_rqst *, int); +struct nfs_ssc_client_ops_tbl { + const struct nfs4_ssc_client_ops *ssc_nfs4_ops; + const struct nfs_ssc_client_ops *ssc_nfs_ops; +}; -typedef void (*btf_trace_svc_replace_page_err)(void *, const struct svc_rqst *); +struct move_extent { + __u32 reserved; + __u32 donor_fd; + __u64 orig_start; + __u64 donor_start; + __u64 len; + __u64 moved_len; +}; -typedef void (*btf_trace_svc_stats_latency)(void *, const struct svc_rqst *); +struct ext4_new_group_input { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 unused; +}; -typedef void (*btf_trace_svc_xprt_create_err)(void *, const char *, const char *, struct sockaddr *, size_t, const struct svc_xprt *); +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]; +}; -typedef void (*btf_trace_svc_xprt_enqueue)(void *, const struct svc_xprt *, const struct svc_rqst *); +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; +}; -typedef void (*btf_trace_svc_xprt_dequeue)(void *, const struct svc_rqst *); +struct fsuuid { + __u32 fsu_len; + __u32 fsu_flags; + __u8 fsu_uuid[0]; +}; -typedef void (*btf_trace_svc_xprt_no_write_space)(void *, const struct svc_xprt *); +typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *); -typedef void (*btf_trace_svc_xprt_close)(void *, const struct svc_xprt *); +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; +}; -typedef void (*btf_trace_svc_xprt_detach)(void *, const struct svc_xprt *); +enum nfs3_ftype { + NF3NON = 0, + NF3REG = 1, + NF3DIR = 2, + NF3BLK = 3, + NF3CHR = 4, + NF3LNK = 5, + NF3SOCK = 6, + NF3FIFO = 7, + NF3BAD = 8, +}; -typedef void (*btf_trace_svc_xprt_free)(void *, const struct svc_xprt *); +enum nfs3_createmode { + NFS3_CREATE_UNCHECKED = 0, + NFS3_CREATE_GUARDED = 1, + NFS3_CREATE_EXCLUSIVE = 2, +}; -typedef void (*btf_trace_svc_tls_start)(void *, const struct svc_xprt *); +struct nfs3_sattrargs { + struct nfs_fh *fh; + struct iattr *sattr; + unsigned int guard; + struct timespec64 guardtime; +}; -typedef void (*btf_trace_svc_tls_upcall)(void *, const struct svc_xprt *); +struct nfs3_accessargs { + struct nfs_fh *fh; + __u32 access; +}; -typedef void (*btf_trace_svc_tls_unavailable)(void *, const struct svc_xprt *); +struct nfs3_createargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + struct iattr *sattr; + enum nfs3_createmode createmode; + __be32 verifier[2]; +}; -typedef void (*btf_trace_svc_tls_not_started)(void *, const struct svc_xprt *); +struct nfs3_diropres { + struct nfs_fattr *dir_attr; + struct nfs_fh *fh; + struct nfs_fattr *fattr; +}; -typedef void (*btf_trace_svc_tls_timed_out)(void *, const struct svc_xprt *); +struct nfs3_symlinkargs { + struct nfs_fh *fromfh; + const char *fromname; + unsigned int fromlen; + struct page **pages; + unsigned int pathlen; + struct iattr *sattr; +}; -typedef void (*btf_trace_svc_xprt_accept)(void *, const struct svc_xprt *, const char *); +struct nfs3_mknodargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + enum nfs3_ftype type; + struct iattr *sattr; + dev_t rdev; +}; -typedef void (*btf_trace_svc_wake_up)(void *, int); +struct nfs3_readdirargs { + struct nfs_fh *fh; + __u64 cookie; + __be32 verf[2]; + bool plus; + unsigned int count; + struct page **pages; +}; -typedef void (*btf_trace_svc_alloc_arg_err)(void *, unsigned int, unsigned int); +struct nfs3_readdirres { + struct nfs_fattr *dir_attr; + __be32 *verf; + bool plus; +}; -typedef void (*btf_trace_svc_defer_drop)(void *, const struct svc_deferred_req *); +struct nfs3_diropargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; +}; -typedef void (*btf_trace_svc_defer_queue)(void *, const struct svc_deferred_req *); +struct nfs3_accessres { + struct nfs_fattr *fattr; + __u32 access; +}; -typedef void (*btf_trace_svc_defer_recv)(void *, const struct svc_deferred_req *); +struct nfs3_readlinkargs { + struct nfs_fh *fh; + unsigned int pgbase; + unsigned int pglen; + struct page **pages; +}; -typedef void (*btf_trace_svcsock_new)(void *, const void *, const struct socket *); +struct nfs3_mkdirargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + struct iattr *sattr; +}; -typedef void (*btf_trace_svcsock_free)(void *, const void *, const struct socket *); +struct nfs3_linkargs { + struct nfs_fh *fromfh; + struct nfs_fh *tofh; + const char *toname; + unsigned int tolen; +}; -typedef void (*btf_trace_svcsock_marker)(void *, const struct svc_xprt *, __be32); +struct nfs3_linkres { + struct nfs_fattr *dir_attr; + struct nfs_fattr *fattr; +}; -typedef void (*btf_trace_svcsock_udp_send)(void *, const struct svc_xprt *, ssize_t); +enum { + Opt_kmsg_bytes = 0, + Opt_err___9 = 1, +}; -typedef void (*btf_trace_svcsock_udp_recv)(void *, const struct svc_xprt *, ssize_t); +struct pstore_private { + struct list_head list; + struct dentry *dentry; + struct pstore_record *record; + size_t total_size; +}; -typedef void (*btf_trace_svcsock_udp_recv_err)(void *, const struct svc_xprt *, ssize_t); +struct pstore_ftrace_record { + unsigned long ip; + unsigned long parent_ip; + u64 ts; +}; -typedef void (*btf_trace_svcsock_tcp_send)(void *, const struct svc_xprt *, ssize_t); +struct pstore_ftrace_seq_data { + const void *ptr; + size_t off; + size_t size; +}; -typedef void (*btf_trace_svcsock_tcp_recv)(void *, const struct svc_xprt *, ssize_t); +struct ahash_alg { + int (*init)(struct ahash_request *); + int (*update)(struct ahash_request *); + int (*final)(struct ahash_request *); + int (*finup)(struct ahash_request *); + int (*digest)(struct ahash_request *); + int (*export)(struct ahash_request *, void *); + int (*import)(struct ahash_request *, const void *); + int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_ahash *); + void (*exit_tfm)(struct crypto_ahash *); + int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *); + struct hash_alg_common halg; +}; -typedef void (*btf_trace_svcsock_tcp_recv_eagain)(void *, const struct svc_xprt *, ssize_t); +struct ahash_instance { + void (*free)(struct ahash_instance *); + union { + struct { + char head[96]; + struct crypto_instance base; + } s; + struct ahash_alg alg; + }; +}; -typedef void (*btf_trace_svcsock_tcp_recv_err)(void *, const struct svc_xprt *, ssize_t); +struct crypto_hash_walk { + char *data; + unsigned int offset; + unsigned int flags; + struct page *pg; + unsigned int entrylen; + unsigned int total; + struct scatterlist *sg; +}; -typedef void (*btf_trace_svcsock_data_ready)(void *, const struct svc_xprt *, ssize_t); +struct crypto_ahash_spawn { + struct crypto_spawn base; +}; -typedef void (*btf_trace_svcsock_write_space)(void *, const struct svc_xprt *, ssize_t); +enum { + REQ_FSEQ_PREFLUSH = 1, + REQ_FSEQ_DATA = 2, + REQ_FSEQ_POSTFLUSH = 4, + REQ_FSEQ_DONE = 8, + REQ_FSEQ_ACTIONS = 7, + FLUSH_PENDING_TIMEOUT = 1250, +}; -typedef void (*btf_trace_svcsock_tcp_recv_short)(void *, const struct svc_xprt *, u32, u32); +enum { + IOPRIO_WHO_PROCESS = 1, + IOPRIO_WHO_PGRP = 2, + IOPRIO_WHO_USER = 3, +}; -typedef void (*btf_trace_svcsock_tcp_state)(void *, const struct svc_xprt *, const struct socket *); +enum { + IORING_MSG_DATA = 0, + IORING_MSG_SEND_FD = 1, +}; -typedef void (*btf_trace_svcsock_accept_err)(void *, const struct svc_xprt *, const char *, long); +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; +}; -typedef void (*btf_trace_svcsock_getpeername_err)(void *, const struct svc_xprt *, const char *, long); +struct mpi_ec_ctx; -typedef void (*btf_trace_cache_entry_expired)(void *, const struct cache_detail *, const struct cache_head *); +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 *); +}; -typedef void (*btf_trace_cache_entry_upcall)(void *, const struct cache_detail *, const struct cache_head *); +enum gcry_mpi_ec_models { + MPI_EC_WEIERSTRASS = 0, + MPI_EC_MONTGOMERY = 1, + MPI_EC_EDWARDS = 2, +}; -typedef void (*btf_trace_cache_entry_update)(void *, const struct cache_detail *, const struct cache_head *); +enum ecc_dialects { + ECC_DIALECT_STANDARD = 0, + ECC_DIALECT_ED25519 = 1, + ECC_DIALECT_SAFECURVE = 2, +}; -typedef void (*btf_trace_cache_entry_make_negative)(void *, const struct cache_detail *, const struct cache_head *); +struct gcry_mpi_point; -typedef void (*btf_trace_cache_entry_no_listener)(void *, const struct cache_detail *, const struct cache_head *); +typedef struct gcry_mpi_point *MPI_POINT; -typedef void (*btf_trace_svc_register)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); +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 *); +}; -typedef void (*btf_trace_svc_noregister)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); +struct gcry_mpi_point { + MPI x; + MPI y; + MPI z; +}; -typedef void (*btf_trace_svc_unregister)(void *, const char *, const u32, int); +typedef struct { + size_t compressedSize; + unsigned long long decompressedBound; +} ZSTD_frameSizeInfo; -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]; -}; +typedef enum { + ZSTD_dlm_byCopy = 0, + ZSTD_dlm_byRef = 1, +} ZSTD_dictLoadMethod_e; -struct trace_event_raw_rpc_clnt_class { - struct trace_entry ent; - unsigned int client_id; - char __data[0]; -}; +typedef enum { + ZSTD_dct_auto = 0, + ZSTD_dct_rawContent = 1, + ZSTD_dct_fullDict = 2, +} ZSTD_dictContentType_e; -struct trace_event_raw_rpc_clnt_new { - struct trace_entry ent; - unsigned int client_id; - unsigned long xprtsec; - unsigned long flags; - u32 __data_loc_program; - u32 __data_loc_server; - u32 __data_loc_addr; - u32 __data_loc_port; - char __data[0]; -}; +typedef enum { + ZSTD_reset_session_only = 1, + ZSTD_reset_parameters = 2, + ZSTD_reset_session_and_parameters = 3, +} ZSTD_ResetDirective; -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]; -}; +typedef enum { + ZSTD_d_windowLogMax = 100, + ZSTD_d_experimentalParam1 = 1000, + ZSTD_d_experimentalParam2 = 1001, + ZSTD_d_experimentalParam3 = 1002, + ZSTD_d_experimentalParam4 = 1003, +} ZSTD_dParameter; -struct trace_event_raw_rpc_clnt_clone_err { - struct trace_entry ent; - unsigned int client_id; - int error; - char __data[0]; -}; +typedef struct { + size_t error; + int lowerBound; + int upperBound; +} ZSTD_bounds; -struct trace_event_raw_rpc_task_status { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - int status; - char __data[0]; -}; +typedef enum { + ZSTDnit_frameHeader = 0, + ZSTDnit_blockHeader = 1, + ZSTDnit_block = 2, + ZSTDnit_lastBlock = 3, + ZSTDnit_checksum = 4, + ZSTDnit_skippableFrame = 5, +} ZSTD_nextInputType_e; -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]; +union handle_parts { + depot_stack_handle_t handle; + struct { + u32 pool_index: 16; + u32 offset: 10; + u32 valid: 1; + u32 extra: 5; + }; }; -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 stack_record { + struct stack_record *next; + u32 hash; + u32 size; + union handle_parts handle; + unsigned long entries[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 bcm7038_l1_cpu; -struct trace_event_raw_rpc_failure { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - char __data[0]; +struct bcm7038_l1_chip { + raw_spinlock_t lock; + unsigned int n_words; + struct irq_domain *domain; + struct bcm7038_l1_cpu *cpus[256]; + struct list_head list; + u32 wake_mask[8]; + u32 irq_fwd_mask[8]; + u8 affinity[256]; }; -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 bcm7038_l1_cpu { + void *map_base; + u32 mask_cache[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 mst_intc_chip_data { + raw_spinlock_t lock; + unsigned int irq_start; + unsigned int nr_irqs; + void *base; + bool no_eoi; + struct list_head entry; + u16 saved_polarity_conf[4]; }; -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 simple_pm_bus { + struct clk_bulk_data *clks; + int num_clks; }; -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 sr_pcie_phy_core; -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 sr_pcie_phy { + struct sr_pcie_phy_core *core; + unsigned int index; + struct phy *phy; }; -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 sr_pcie_phy_core { + struct device *dev; + void *base; + struct regmap *cdru; + struct regmap *mhb; + u32 pipemux; + struct sr_pcie_phy phys[9]; }; -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 uniphier_u2phy_param { + u32 offset; + u32 value; }; -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 uniphier_u2phy_soc_data { + struct uniphier_u2phy_param config0; + struct uniphier_u2phy_param config1; }; -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 uniphier_u2phy_priv { + struct regmap *regmap; + struct phy *phy; + struct regulator *vbus; + const struct uniphier_u2phy_soc_data *data; + struct uniphier_u2phy_priv *next; }; -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 bcm4908_pinctrl_pin_setup; -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 bcm4908_pinctrl_grp { + const char *name; + const struct bcm4908_pinctrl_pin_setup *pins; + const unsigned int num_pins; }; -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 bcm4908_pinctrl_pin_setup { + unsigned int number; + unsigned int function; }; -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 bcm4908_pinctrl_function { + const char *name; + const char * const *groups; + const unsigned int num_groups; }; -struct trace_event_raw_xprt_ping { - struct trace_entry ent; - int status; - u32 __data_loc_addr; - u32 __data_loc_port; - char __data[0]; +struct bcm4908_pinctrl { + struct device *dev; + void *base; + struct mutex mutex; + struct pinctrl_dev *pctldev; + struct pinctrl_desc pctldesc; }; -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 xgene_gpio_sb { + struct gpio_chip gc; + void *regs; + struct irq_domain *irq_domain; + u16 irq_start; + u16 nirq; + u16 parent_irq_base; }; -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 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 trace_event_raw_xprt_reserve { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - u32 xid; - char __data[0]; +struct acpi_table_cdat { + u32 length; + u8 revision; + u8 checksum; + u8 reserved[6]; + u32 sequence; }; -struct trace_event_raw_xs_data_ready { - struct trace_entry ent; - u32 __data_loc_addr; - u32 __data_loc_port; - char __data[0]; +enum acpi_pptt_type { + ACPI_PPTT_TYPE_PROCESSOR = 0, + ACPI_PPTT_TYPE_CACHE = 1, + ACPI_PPTT_TYPE_ID = 2, + ACPI_PPTT_TYPE_RESERVED = 3, }; -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 acpi_pptt_processor { + struct acpi_subtable_header header; + u16 reserved; + u32 flags; + u32 parent; + u32 acpi_processor_id; + u32 number_of_priv_resources; }; -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 acpi_pptt_cache { + struct acpi_subtable_header header; + u16 reserved; + u32 flags; + u32 next_level_of_cache; + u32 size; + u32 number_of_sets; + u8 associativity; + u8 attributes; + u16 line_size; }; -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 acpi_pptt_cache_v1 { + u32 cache_id; }; -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 acpi_bert_region { + u32 block_status; + u32 raw_data_offset; + u32 raw_data_length; + u32 data_length; + u32 error_severity; }; -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 acpi_table_einj { + struct acpi_table_header header; + u32 header_length; + u8 flags; + u8 reserved[3]; + u32 entries; }; -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]; +enum acpi_einj_actions { + ACPI_EINJ_BEGIN_OPERATION = 0, + ACPI_EINJ_GET_TRIGGER_TABLE = 1, + ACPI_EINJ_SET_ERROR_TYPE = 2, + ACPI_EINJ_GET_ERROR_TYPE = 3, + ACPI_EINJ_END_OPERATION = 4, + ACPI_EINJ_EXECUTE_OPERATION = 5, + ACPI_EINJ_CHECK_BUSY_STATUS = 6, + ACPI_EINJ_GET_COMMAND_STATUS = 7, + ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS = 8, + ACPI_EINJ_GET_EXECUTE_TIMINGS = 9, + ACPI_EINJ_ACTION_RESERVED = 10, + ACPI_EINJ_TRIGGER_ERROR = 255, }; -struct trace_event_raw_rpcb_unregister { - struct trace_entry ent; - unsigned int program; - unsigned int version; - u32 __data_loc_netid; - char __data[0]; +enum { + SETWA_FLAGS_APICID = 1, + SETWA_FLAGS_MEM = 2, + SETWA_FLAGS_PCIE_SBDF = 4, }; -struct trace_event_raw_rpc_tls_class { - struct trace_entry ent; - unsigned long requested_policy; - u32 version; - u32 __data_loc_servername; - u32 __data_loc_progname; - char __data[0]; +enum acpi_einj_instructions { + ACPI_EINJ_READ_REGISTER = 0, + ACPI_EINJ_READ_REGISTER_VALUE = 1, + ACPI_EINJ_WRITE_REGISTER = 2, + ACPI_EINJ_WRITE_REGISTER_VALUE = 3, + ACPI_EINJ_NOOP = 4, + ACPI_EINJ_FLUSH_CACHELINE = 5, + ACPI_EINJ_INSTRUCTION_RESERVED = 6, }; -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 set_error_type_with_address { + u32 type; + u32 vendor_extension; + u32 flags; + u32 apicid; + u64 memory_address; + u64 memory_address_range; + u32 pcie_sbdf; }; -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 vendor_error_type_extension { + u32 length; + u32 pcie_sbdf; + u16 vendor_id; + u16 device_id; + u8 rev_id; + u8 reserved[3]; }; -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 einj_parameter { + u64 type; + u64 reserved1; + u64 reserved2; + u64 param1; + u64 param2; }; -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 acpi_einj_trigger { + u32 header_size; + u32 revision; + u32 table_size; + u32 entry_count; }; -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 rk808_clkout { + struct regmap *regmap; + struct clk_hw clkout1_hw; + struct clk_hw clkout2_hw; }; -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 clk_hisi_phase { + struct clk_hw hw; + void *reg; + u32 *phase_degrees; + u32 *phase_regvals; + u8 phase_num; + u32 mask; + u8 shift; + u8 flags; + spinlock_t *lock; }; -struct trace_event_raw_svc_replace_page_err { - struct trace_entry ent; - u32 __data_loc_server; - u32 __data_loc_client; - unsigned int netns_ino; - u32 xid; - const void *begin; - const void *respages; - const void *nextpage; - char __data[0]; +struct clk_lpcg_scu { + struct clk_hw hw; + void *reg; + u8 bit_idx; + bool hw_gate; + u32 state; }; -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 pll_config { + u16 l; + u32 m; + u32 n; + u32 vco_val; + u32 vco_mask; + u32 pre_div_val; + u32 pre_div_mask; + u32 post_div_val; + u32 post_div_mask; + u32 mn_ena_mask; + u32 main_output_mask; + u32 aux_output_mask; }; -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 apss_pll_data { + int pll_type; + struct clk_alpha_pll *pll; + const struct alpha_pll_config *pll_config; }; -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]; +enum { + CLK_ALPHA_PLL_TYPE_DEFAULT = 0, + CLK_ALPHA_PLL_TYPE_HUAYRA = 1, + CLK_ALPHA_PLL_TYPE_BRAMMO = 2, + CLK_ALPHA_PLL_TYPE_FABIA = 3, + CLK_ALPHA_PLL_TYPE_TRION = 4, + CLK_ALPHA_PLL_TYPE_LUCID = 4, + CLK_ALPHA_PLL_TYPE_AGERA = 5, + CLK_ALPHA_PLL_TYPE_ZONDA = 6, + CLK_ALPHA_PLL_TYPE_LUCID_EVO = 7, + CLK_ALPHA_PLL_TYPE_LUCID_OLE = 8, + CLK_ALPHA_PLL_TYPE_RIVIAN_EVO = 9, + CLK_ALPHA_PLL_TYPE_DEFAULT_EVO = 10, + CLK_ALPHA_PLL_TYPE_BRAMMO_EVO = 11, + CLK_ALPHA_PLL_TYPE_STROMER = 12, + CLK_ALPHA_PLL_TYPE_STROMER_PLUS = 13, + CLK_ALPHA_PLL_TYPE_MAX = 14, }; -struct trace_event_raw_svc_xprt_dequeue { - struct trace_entry ent; - u32 __data_loc_server; - u32 __data_loc_client; +struct exynos_cpuclk { + struct clk_hw hw; + const struct clk_hw *alt_parent; + void *ctrl_base; + spinlock_t *lock; + const struct exynos_cpuclk_cfg_data *cfg; + const unsigned long num_cfgs; + struct notifier_block clk_nb; 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 utmi_clk_param___2 { + u32 osc_frequency; + u8 enable_delay_count; + u8 stable_count; + u8 active_delay_count; + u8 xtal_freq_count; }; -struct trace_event_raw_svc_xprt_accept { - struct trace_entry ent; - u32 __data_loc_server; - u32 __data_loc_client; +struct k3dma_soc_data { 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 k3_dma_phy; + +struct k3_dma_chan; + +struct k3_dma_dev { + struct dma_device slave; + void *base; + struct tasklet_struct task; + spinlock_t lock; + struct list_head chan_pending; + struct k3_dma_phy *phy; + struct k3_dma_chan *chans; + struct clk *clk; + struct dma_pool *pool; + u32 dma_channels; + u32 dma_requests; + u32 dma_channel_mask; + unsigned int irq; }; -struct trace_event_raw_svc_alloc_arg_err { - struct trace_entry ent; - unsigned int requested; - unsigned int allocated; - char __data[0]; +struct k3_dma_desc_sw; + +struct k3_dma_phy { + u32 idx; + void *base; + struct k3_dma_chan *vchan; + struct k3_dma_desc_sw *ds_run; + struct k3_dma_desc_sw *ds_done; }; -struct trace_event_raw_svc_deferred_event { - struct trace_entry ent; - const void *dr; - u32 xid; - u32 __data_loc_addr; - char __data[0]; +struct k3_dma_chan { + u32 ccfg; + struct virt_dma_chan vc; + struct k3_dma_phy *phy; + struct list_head node; + dma_addr_t dev_addr; + enum dma_status status; + bool cyclic; + struct dma_slave_config slave_config; }; -struct trace_event_raw_svcsock_lifetime_class { - struct trace_entry ent; - unsigned int netns_ino; - const void *svsk; - const void *sk; - unsigned long type; - unsigned long family; - unsigned long state; - char __data[0]; +struct k3_desc_hw; + +struct k3_dma_desc_sw { + struct virt_dma_desc vd; + dma_addr_t desc_hw_lli; + size_t desc_num; + size_t size; + struct k3_desc_hw *desc_hw; }; -struct trace_event_raw_svcsock_marker { - struct trace_entry ent; - unsigned int length; - bool last; - u32 __data_loc_addr; - char __data[0]; +struct k3_desc_hw { + u32 lli; + u32 reserved[3]; + u32 count; + u32 saddr; + u32 daddr; + u32 config; }; -struct trace_event_raw_svcsock_class { - struct trace_entry ent; - ssize_t result; - unsigned long flags; - u32 __data_loc_addr; - char __data[0]; +enum cpubiuctrl_regs { + CPU_CREDIT_REG = 0, + CPU_MCP_FLOW_REG = 1, + CPU_WRITEBACK_CTRL_REG = 2, + RAC_CONFIG0_REG = 3, + RAC_CONFIG1_REG = 4, + NUM_CPU_BIUCTRL_REGS = 5, }; -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]; +enum qbman_sdqcr_dct { + qbman_sdqcr_dct_null = 0, + qbman_sdqcr_dct_prio_ics = 1, + qbman_sdqcr_dct_active_ics = 2, + qbman_sdqcr_dct_active = 3, }; -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]; +enum qbman_sdqcr_fc { + qbman_sdqcr_fc_one = 0, + qbman_sdqcr_fc_up_to_3 = 1, }; -struct trace_event_raw_svcsock_accept_class { - struct trace_entry ent; - long status; - u32 __data_loc_service; - unsigned int netns_ino; - char __data[0]; +enum qb_enqueue_commands { + enqueue_empty = 0, + enqueue_response_always = 1, + enqueue_rejects_to_fq = 2, }; -struct trace_event_raw_cache_event { - struct trace_entry ent; - const struct cache_head *h; - u32 __data_loc_name; - char __data[0]; +enum qb_pull_dt_e { + qb_pull_dt_channel = 0, + qb_pull_dt_workqueue = 1, + qb_pull_dt_framequeue = 2, }; -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 qbman_fq_query_desc { + u8 verb; + u8 reserved[3]; + __le32 fqid; + u8 reserved2[56]; }; -struct trace_event_raw_svc_unregister { - struct trace_entry ent; - u32 version; - int error; - u32 __data_loc_program; - char __data[0]; +struct qbman_bp_query_desc { + u8 verb; + u8 reserved; + __le16 bpid; + u8 reserved2[60]; }; -struct trace_event_data_offsets_rpc_clnt_new { - u32 program; - u32 server; - u32 addr; - u32 port; +struct qbman_acquire_desc { + u8 verb; + u8 reserved; + __le16 bpid; + u8 num; + u8 reserved2[59]; }; -struct trace_event_data_offsets_rpc_clnt_new_err { - u32 program; - u32 server; +struct qbman_acquire_rslt { + u8 verb; + u8 rslt; + __le16 reserved; + u8 num; + u8 reserved2[3]; + __le64 buf[7]; }; -struct trace_event_data_offsets_rpc_request { - u32 progname; - u32 procname; +struct qbman_alt_fq_state_desc { + u8 verb; + u8 reserved[3]; + __le32 fqid; + u8 reserved2[56]; }; -struct trace_event_data_offsets_rpc_task_queued { - u32 q_name; +struct qbman_alt_fq_state_rslt { + u8 verb; + u8 rslt; + u8 reserved[62]; }; -struct trace_event_data_offsets_rpc_reply_event { - u32 progname; - u32 procname; - u32 servername; +struct qbman_cdan_ctrl_desc { + u8 verb; + u8 reserved; + __le16 ch; + u8 we; + u8 ctrl; + __le16 reserved2; + __le64 cdan_ctx; + u8 reserved3[48]; }; -struct trace_event_data_offsets_rpc_stats_latency { - u32 progname; - u32 procname; +struct qbman_cdan_ctrl_rslt { + u8 verb; + u8 rslt; + __le16 ch; + u8 reserved[60]; }; -struct trace_event_data_offsets_rpc_xdr_overflow { - u32 progname; - u32 procedure; +struct mediatek_regulator_coupler { + struct regulator_coupler coupler; + struct regulator_dev *vsram_rdev; }; -struct trace_event_data_offsets_rpc_xdr_alignment { - u32 progname; - u32 procedure; +struct registered_event_data { + u64 key; + enum pm_api_cb_id cb_type; + bool wake; + struct list_head cb_list_head; + struct hlist_node hentry; }; -struct trace_event_data_offsets_rpc_xprt_lifetime_class { - u32 addr; - u32 port; +struct agent_cb { + void *agent_data; + event_cb_func_t eve_cb; + struct list_head list; }; -struct trace_event_data_offsets_rpc_xprt_event { - u32 addr; - u32 port; +enum shutdown_state { + SHUTDOWN_INVALID = -1, + SHUTDOWN_POWEROFF = 0, + SHUTDOWN_SUSPEND = 2, + SHUTDOWN_HALT = 4, }; -struct trace_event_data_offsets_xprt_retransmit { - u32 progname; - u32 procname; +struct shutdown_handler { + const char command[11]; + bool flag; + void (*cb)(); }; -struct trace_event_data_offsets_xprt_ping { - u32 addr; - u32 port; +struct suspend_info { + int cancelled; }; -struct trace_event_data_offsets_xs_data_ready { - u32 addr; - u32 port; +struct vcpu_runstate_info { + int state; + uint64_t state_entry_time; + uint64_t time[4]; }; -struct trace_event_data_offsets_xs_stream_read_data { - u32 addr; - u32 port; +typedef struct { + union { + struct vcpu_runstate_info *p; + uint64_t q; + }; +} __guest_handle_vcpu_runstate_info; + +struct vcpu_register_runstate_memory_area { + union { + __guest_handle_vcpu_runstate_info h; + struct vcpu_runstate_info *v; + uint64_t p; + } addr; }; -struct trace_event_data_offsets_xs_stream_read_request { - u32 addr; - u32 port; +struct per_user_data; + +struct user_evtchn { + struct rb_node node; + struct per_user_data *user; + evtchn_port_t port; + bool enabled; }; -struct trace_event_data_offsets_rpcb_getport { - u32 servername; +struct per_user_data { + struct mutex bind_mutex; + struct rb_root evtchns; + unsigned int nr_evtchns; + unsigned int ring_size; + evtchn_port_t *ring; + unsigned int ring_cons; + unsigned int ring_prod; + unsigned int ring_overflow; + struct mutex ring_cons_mutex; + spinlock_t ring_prod_lock; + wait_queue_head_t evtchn_wait; + struct fasync_struct *evtchn_async_queue; + const char *name; + domid_t restrict_domid; }; -struct trace_event_data_offsets_rpcb_register { - u32 addr; - u32 netid; +struct ioctl_evtchn_bind_virq { + unsigned int virq; }; -struct trace_event_data_offsets_rpcb_unregister { - u32 netid; +struct ioctl_evtchn_bind_interdomain { + unsigned int remote_domain; + unsigned int remote_port; }; -struct trace_event_data_offsets_rpc_tls_class { - u32 servername; - u32 progname; +struct ioctl_evtchn_bind_unbound_port { + unsigned int remote_domain; }; -struct trace_event_data_offsets_svc_authenticate { - u32 server; - u32 client; +struct ioctl_evtchn_unbind { + unsigned int port; }; -struct trace_event_data_offsets_svc_process { - u32 service; - u32 procedure; - u32 addr; +struct ioctl_evtchn_bind { + unsigned int port; }; -struct trace_event_data_offsets_svc_rqst_event { - u32 server; - u32 client; +struct ioctl_evtchn_notify { + unsigned int port; }; -struct trace_event_data_offsets_svc_rqst_status { - u32 server; - u32 client; +struct ioctl_evtchn_restrict_domid { + domid_t domid; }; -struct trace_event_data_offsets_svc_replace_page_err { - u32 server; - u32 client; +struct gpio_regulator_state; + +struct gpio_regulator_config { + const char *supply_name; + const char *input_supply; + unsigned int enabled_at_boot: 1; + unsigned int startup_delay; + enum gpiod_flags *gflags; + int ngpios; + struct gpio_regulator_state *states; + int nr_states; + enum regulator_type type; + struct regulator_init_data *init_data; }; -struct trace_event_data_offsets_svc_stats_latency { - u32 server; - u32 client; - u32 procedure; +struct gpio_regulator_state { + int value; + int gpios; }; -struct trace_event_data_offsets_svc_xprt_create_err { - u32 program; - u32 protocol; - u32 addr; +struct gpio_regulator_data { + struct regulator_desc desc; + struct gpio_desc **gpiods; + int nr_gpios; + struct gpio_regulator_state *states; + int nr_states; + int state; }; -struct trace_event_data_offsets_svc_xprt_enqueue { - u32 server; - u32 client; +struct mt6360_irq_mapping; + +struct mt6360_regulator_desc { + const struct regulator_desc desc; + unsigned int mode_reg; + unsigned int mode_mask; + unsigned int state_reg; + unsigned int state_mask; + const struct mt6360_irq_mapping *irq_tables; + int irq_table_size; }; -struct trace_event_data_offsets_svc_xprt_dequeue { - u32 server; - u32 client; +struct mt6360_irq_mapping { + const char *name; + irq_handler_t handler; }; -struct trace_event_data_offsets_svc_xprt_event { - u32 server; - u32 client; +struct mt6360_regulator_data { + struct device *dev; + struct regmap *regmap; }; -struct trace_event_data_offsets_svc_xprt_accept { - u32 server; - u32 client; - u32 protocol; - u32 service; +struct reset_control { + struct reset_controller_dev *rcdev; + struct list_head list; + unsigned int id; + struct kref refcnt; + bool acquired; + bool shared; + bool array; + atomic_t deassert_count; + atomic_t triggered_count; }; -struct trace_event_data_offsets_svc_deferred_event { - u32 addr; +struct reset_control_array { + struct reset_control base; + unsigned int num_rstcs; + struct reset_control *rstc[0]; }; -struct trace_event_data_offsets_svcsock_marker { - u32 addr; +struct reset_control_lookup { + struct list_head list; + const char *provider; + unsigned int index; + const char *dev_id; + const char *con_id; }; -struct trace_event_data_offsets_svcsock_class { - u32 addr; +struct reset_control_bulk_devres { + int num_rstcs; + struct reset_control_bulk_data *rstcs; }; -struct trace_event_data_offsets_svcsock_tcp_recv_short { - u32 addr; +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 trace_event_data_offsets_svcsock_tcp_state { - u32 addr; +struct stm32_usart_offsets { + u8 cr1; + u8 cr2; + u8 cr3; + u8 brr; + u8 gtpr; + u8 rtor; + u8 rqr; + u8 isr; + u8 icr; + u8 rdr; + u8 tdr; }; -struct trace_event_data_offsets_svcsock_accept_class { - u32 service; +struct stm32_usart_config { + u8 uart_enable_bit; + bool has_7bits_data; + bool has_swap; + bool has_wakeup; + bool has_fifo; + int fifosize; }; -struct trace_event_data_offsets_cache_event { - u32 name; +struct stm32_usart_info { + struct stm32_usart_offsets ofs; + struct stm32_usart_config cfg; }; -struct trace_event_data_offsets_register_class { - u32 program; +struct stm32_port { + struct uart_port port; + struct clk *clk; + const struct stm32_usart_info *info; + struct dma_chan *rx_ch; + dma_addr_t rx_dma_buf; + unsigned char *rx_buf; + struct dma_chan *tx_ch; + dma_addr_t tx_dma_buf; + unsigned char *tx_buf; + u32 cr1_irq; + u32 cr3_irq; + int last_res; + bool tx_dma_busy; + bool rx_dma_busy; + bool throttled; + bool hw_flow_control; + bool swap; + bool fifoen; + int rxftcfg; + int txftcfg; + bool wakeup_src; + int rdr_mask; + struct mctrl_gpios *gpios; + struct dma_tx_state rx_dma_state; }; -struct trace_event_data_offsets_svc_unregister { - u32 program; +struct npcm_rng { + void *base; + struct hwrng rng; + u32 clkp; }; -struct trace_event_data_offsets_rpc_xdr_buf_class {}; +enum dart_type { + DART_T8020 = 0, + DART_T6000 = 1, + DART_T8110 = 2, +}; -struct trace_event_data_offsets_rpc_clnt_class {}; +struct apple_dart_stream_map; -struct trace_event_data_offsets_rpc_clnt_clone_err {}; +struct apple_dart_hw { + enum dart_type type; + irqreturn_t (*irq_handler)(int, void *); + int (*invalidate_tlb)(struct apple_dart_stream_map *); + u32 oas; + enum io_pgtable_fmt fmt; + int max_sid_count; + u64 lock; + u64 lock_bit; + u64 error; + u64 enable_streams; + u64 tcr; + u64 tcr_enabled; + u64 tcr_disabled; + u64 tcr_bypass; + u64 ttbr; + u64 ttbr_valid; + u64 ttbr_addr_field_shift; + u64 ttbr_shift; + int ttbr_count; +}; -struct trace_event_data_offsets_rpc_task_status {}; +struct apple_dart; -struct trace_event_data_offsets_rpc_task_running {}; +struct apple_dart_stream_map { + struct apple_dart *dart; + unsigned long sidmap[4]; +}; -struct trace_event_data_offsets_rpc_failure {}; +struct apple_dart { + struct device *dev; + const struct apple_dart_hw *hw; + void *regs; + int irq; + struct clk_bulk_data *clks; + int num_clks; + spinlock_t lock; + u32 ias; + u32 oas; + u32 pgsize; + u32 num_streams; + u32 supports_bypass: 1; + struct iommu_group *sid2group[256]; + struct iommu_device iommu; + u32 save_tcr[256]; + u32 save_ttbr[1024]; +}; -struct trace_event_data_offsets_rpc_buf_alloc {}; +struct apple_dart_atomic_stream_map { + struct apple_dart *dart; + atomic_long_t sidmap[4]; +}; -struct trace_event_data_offsets_rpc_call_rpcerror {}; +struct apple_dart_domain { + struct io_pgtable_ops *pgtbl_ops; + bool finalized; + struct mutex init_lock; + struct apple_dart_atomic_stream_map stream_maps[2]; + struct iommu_domain domain; +}; -struct trace_event_data_offsets_xs_socket_event {}; +struct apple_dart_master_cfg { + struct apple_dart_stream_map stream_maps[2]; +}; -struct trace_event_data_offsets_xs_socket_event_done {}; +struct cros_feature_to_name { + unsigned int id; + const char *name; + const char *desc; +}; -struct trace_event_data_offsets_rpc_socket_nospace {}; +struct cros_feature_to_cells { + unsigned int id; + const struct mfd_cell *mfd_cells; + unsigned int num_cells; +}; -struct trace_event_data_offsets_xprt_transmit {}; +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 trace_event_data_offsets_xprt_writelock_event {}; +enum hsm_task_states { + HSM_ST_IDLE = 0, + HSM_ST_FIRST = 1, + HSM_ST = 2, + HSM_ST_LAST = 3, + HSM_ST_ERR = 4, +}; -struct trace_event_data_offsets_xprt_cong_event {}; +enum fwh_lock_state { + FWH_UNLOCKED = 0, + FWH_DENY_WRITE = 1, + FWH_IMMUTABLE = 2, + FWH_DENY_READ = 4, +}; -struct trace_event_data_offsets_xprt_reserve {}; +struct cfi_intelext_otpinfo { + uint32_t ProtRegAddr; + uint16_t FactGroups; + uint8_t FactProtRegSize; + uint16_t UserGroups; + uint8_t UserProtRegSize; +} __attribute__((packed)); -struct trace_event_data_offsets_rpcb_setport {}; +struct cfi_intelext_blockinfo { + uint16_t NumIdentBlocks; + uint16_t BlockSize; + uint16_t MinBlockEraseCycles; + uint8_t BitsPerCell; + uint8_t BlockCap; +}; -struct trace_event_data_offsets_pmap_register {}; +struct cfi_intelext_regioninfo { + uint16_t NumIdentPartitions; + uint8_t NumOpAllowed; + uint8_t NumOpAllowedSimProgMode; + uint8_t NumOpAllowedSimEraMode; + uint8_t NumBlockTypes; + struct cfi_intelext_blockinfo BlockTypes[1]; +}; -struct trace_event_data_offsets_svc_xdr_msg_class {}; +struct fwh_xxlock_thunk { + enum fwh_lock_state val; + flstate_t state; +}; -struct trace_event_data_offsets_svc_xdr_buf_class {}; +struct cfi_intelext_programming_regioninfo { + uint8_t ProgRegShift; + uint8_t Reserved1; + uint8_t ControlValid; + uint8_t Reserved2; + uint8_t ControlInvalid; + uint8_t Reserved3; +}; -struct trace_event_data_offsets_svc_wake_up {}; +struct flchip_shared { + struct mutex lock; + struct flchip *writing; + struct flchip *erasing; +}; -struct trace_event_data_offsets_svc_alloc_arg_err {}; +struct cfi_pri_atmel { + uint8_t pri[3]; + uint8_t MajorVersion; + uint8_t MinorVersion; + uint8_t Features; + uint8_t BottomBoot; + uint8_t BurstMode; + uint8_t PageMode; +}; -struct trace_event_data_offsets_svcsock_lifetime_class {}; +struct mdio_mux_child_bus; -struct return_address_data { - unsigned int level; - void *addr; +struct mdio_mux_parent_bus { + struct mii_bus *mii_bus; + int current_child; + int parent_id; + void *switch_data; + int (*switch_fn)(int, int, void *); + struct mdio_mux_child_bus *children; }; -struct aes_block { - u8 b[16]; +struct mdio_mux_child_bus { + struct mii_bus *mii_bus; + struct mdio_mux_parent_bus *parent; + struct mdio_mux_child_bus *next; + int bus_number; }; -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 xgene_cle_ptree_branch { + bool valid; + u16 next_packet_pointer; + bool jump_bw; + bool jump_rel; + u8 operation; + u16 next_node; + u8 next_branch; + u16 data; + u16 mask; }; -enum { - IRQC_IS_HARDIRQ = 0, - IRQC_IS_NESTED = 1, +struct xgene_cle_ptree_ewdn { + u8 node_type; + bool last_node; + bool hdr_len_store; + u8 hdr_extn; + u8 byte_store; + u8 search_byte_store; + u16 result_pointer; + u8 num_branches; + struct xgene_cle_ptree_branch branch[6]; }; -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 *); +enum xgene_cle_ptree_dbptrs { + DB_RES_DROP = 0, + DB_RES_DEF = 1, + DB_RES_ACCEPT = 2, + DB_MAX_PTRS = 3, +}; -typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode); +enum xgene_cle_node_type { + INV = 0, + KN = 1, + EWDN = 2, + RES_NODE = 3, +}; -typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode); +enum xgene_cle_ipv4_rss_hashtype { + RSS_IPV4_8B = 0, + RSS_IPV4_12B = 1, +}; -typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *); +enum xgene_cle_prot_version { + XGENE_CLE_IPV4 = 0, +}; -typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *); +enum xgene_cle_prot_type { + XGENE_CLE_TCP = 0, + XGENE_CLE_UDP = 1, + XGENE_CLE_ESP = 2, + XGENE_CLE_OTHER = 3, +}; -typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *); +enum xgene_cle_dram_type { + PKT_RAM = 0, + RSS_IDT = 1, + RSS_IPV4_HASH_SKEY = 2, + PTREE_RAM = 12, + AVL_RAM = 13, + DB_RAM = 14, +}; -typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, unsigned long long); +enum xgene_cle_cmd_type { + CLE_CMD_WR = 1, + CLE_CMD_RD = 2, + CLE_CMD_AVL_ADD = 8, + CLE_CMD_AVL_DEL = 16, + CLE_CMD_AVL_SRCH = 32, +}; -typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, unsigned long long); +typedef void (*btf_trace_dpaa_tx_fd)(void *, struct net_device *, struct qman_fq *, const struct qm_fd *); -typedef void (*btf_trace_tick_stop)(void *, int, int); +typedef void (*btf_trace_dpaa_rx_fd)(void *, struct net_device *, struct qman_fq *, const struct qm_fd *); -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; -}; +typedef void (*btf_trace_dpaa_tx_conf_fd)(void *, struct net_device *, struct qman_fq *, const struct qm_fd *); -struct trace_event_raw_timer_class { - struct trace_entry ent; - void *timer; - char __data[0]; +struct dpaa_fq_cbs { + struct qman_fq rx_defq; + struct qman_fq tx_defq; + struct qman_fq rx_errq; + struct qman_fq tx_errq; + struct qman_fq egress_ern; }; -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]; +enum qm_fd_format { + qm_fd_contig = 0, + qm_fd_contig_big = 1073741824, + qm_fd_sg = 2147483648, + qm_fd_sg_big = 3221225472, + qm_fd_compound = 536870912, }; -struct trace_event_raw_timer_expire_entry { - struct trace_entry ent; - void *timer; - unsigned long now; - void *function; - unsigned long baseclk; - char __data[0]; +enum port_type { + RX___2 = 0, + TX___2 = 1, }; -struct trace_event_raw_hrtimer_init { +struct trace_event_raw_dpaa_eth_fd { struct trace_entry ent; - void *hrtimer; - clockid_t clockid; - enum hrtimer_mode mode; + u32 fqid; + u64 fd_addr; + u8 fd_format; + u16 fd_offset; + u32 fd_length; + u32 fd_status; + u32 __data_loc_name; 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 dpaa_eth_swbp { + struct sk_buff *skb; + struct xdp_frame *xdpf; }; -struct trace_event_raw_hrtimer_expire_entry { - struct trace_entry ent; - void *hrtimer; - s64 now; - void *function; - char __data[0]; +struct qm_sg_entry { + union { + struct { + u8 __reserved1[3]; + u8 addr_hi; + __be32 addr_lo; + }; + __be64 data; + }; + __be32 cfg; + u8 __reserved2; + u8 bpid; + __be16 offset; }; -struct trace_event_raw_hrtimer_class { - struct trace_entry ent; - void *hrtimer; - char __data[0]; +struct fman_prs_result { + u8 lpid; + u8 shimr; + __be16 l2r; + __be16 l3r; + u8 l4r; + u8 cplan; + __be16 nxthdr; + __be16 cksum; + __be16 flags_frag_off; + u8 route_type; + u8 rhp_ip_valid; + u8 shim_off[2]; + u8 ip_pid_off; + u8 eth_off; + u8 llc_snap_off; + u8 vlan_off[2]; + u8 etype_off; + u8 pppoe_off; + u8 mpls_off[2]; + u8 ip_off[2]; + u8 gre_off; + u8 l4_off; + u8 nxthdr_off; }; -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_data_offsets_dpaa_eth_fd { + u32 name; }; -struct trace_event_raw_itimer_expire { - struct trace_entry ent; - int which; - pid_t pid; - unsigned long long now; - char __data[0]; +struct fm_port_fqs { + struct dpaa_fq *tx_defq; + struct dpaa_fq *tx_errq; + struct dpaa_fq *rx_defq; + struct dpaa_fq *rx_errq; + struct dpaa_fq *rx_pcdq; }; -struct trace_event_raw_tick_stop { - struct trace_entry ent; - int success; - int dependency; - char __data[0]; +struct qm_cgr_wr_parm { + __be32 word; }; -struct process_timer { - struct timer_list timer; - struct task_struct *task; +struct qm_cgr_cs_thres { + __be16 word; }; -struct trace_event_data_offsets_timer_class {}; - -struct trace_event_data_offsets_timer_start {}; +struct __qm_mc_cgr { + struct qm_cgr_wr_parm wr_parm_g; + struct qm_cgr_wr_parm wr_parm_y; + struct qm_cgr_wr_parm wr_parm_r; + u8 wr_en_g; + u8 wr_en_y; + u8 wr_en_r; + u8 cscn_en; + union { + struct { + __be16 cscn_targ_upd_ctrl; + __be16 cscn_targ_dcp_low; + }; + __be32 cscn_targ; + }; + u8 cstd_en; + u8 cs; + struct qm_cgr_cs_thres cs_thres; + u8 mode; +} __attribute__((packed)); -struct trace_event_data_offsets_timer_expire_entry {}; +struct qm_mcc_initcgr { + u8 __reserve1[2]; + __be16 we_mask; + struct __qm_mc_cgr cgr; + u8 __reserved2[2]; + u8 cgid; + u8 __reserved3[32]; +}; -struct trace_event_data_offsets_hrtimer_init {}; +struct qm_fqd_oac { + u8 oac; + s8 oal; +}; -struct trace_event_data_offsets_hrtimer_start {}; +struct qm_fqd_stashing { + u8 exclusive; + u8 cl; +}; -struct trace_event_data_offsets_hrtimer_expire_entry {}; +struct qm_fqd { + u8 orpc; + u8 cgid; + __be16 fq_ctrl; + __be16 dest_wq; + __be16 ics_cred; + union { + __be16 td; + struct qm_fqd_oac oac_init; + }; + __be32 context_b; + union { + __be64 opaque; + struct { + __be32 hi; + __be32 lo; + }; + struct { + struct qm_fqd_stashing stashing; + __be16 context_hi; + __be32 context_lo; + }; + } context_a; + struct qm_fqd_oac oac_query; +} __attribute__((packed)); -struct trace_event_data_offsets_hrtimer_class {}; +struct qm_mcc_initfq { + u8 __reserved1[2]; + __be16 we_mask; + __be32 fqid; + __be16 count; + struct qm_fqd fqd; + u8 __reserved2[30]; +}; -struct trace_event_data_offsets_itimer_state {}; +struct fman_buffer_prefix_content { + u16 priv_data_size; + bool pass_prs_result; + bool pass_time_stamp; + bool pass_hash_result; + u16 data_align; +}; -struct trace_event_data_offsets_itimer_expire {}; +struct fman_ext_pool_params { + u8 id; + u16 size; +}; -struct trace_event_data_offsets_tick_stop {}; +struct fman_ext_pools { + u8 num_of_pools_used; + struct fman_ext_pool_params ext_buf_pool[8]; +}; -enum event_command_flags { - EVENT_CMD_FL_POST_TRIGGER = 1, - EVENT_CMD_FL_NEEDS_REC = 2, +struct fman_port_rx_params { + u32 err_fqid; + u32 dflt_fqid; + u32 pcd_base_fqid; + u32 pcd_fqs_count; + struct fman_ext_pools ext_buf_pools; }; -struct enable_trigger_data { - struct trace_event_file *file; - bool enable; - bool hist; +struct fman_port_non_rx_params { + u32 err_fqid; + u32 dflt_fqid; }; -typedef u64 (*btf_bpf_inode_storage_get)(struct bpf_map *, struct inode *, void *, u64, gfp_t); +union fman_port_specific_params { + struct fman_port_rx_params rx_params; + struct fman_port_non_rx_params non_rx_params; +}; -typedef u64 (*btf_bpf_inode_storage_delete)(struct bpf_map *, struct inode *); +struct fman_port_params { + void *fm; + union fman_port_specific_params specific_params; +}; -struct bpf_storage_blob { - struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *storage; +struct mvpp2_dbgfs_prs_entry { + int tid; + struct mvpp2 *priv; }; -struct memcg_vmstats { - long state[50]; - unsigned long events[17]; - long state_pending[50]; - unsigned long events_pending[17]; +struct mvpp2_dbgfs_c2_entry { + int id; + struct mvpp2 *priv; }; -struct mem_cgroup_tree_per_node; +struct mvpp2_dbgfs_flow_tbl_entry { + int id; + struct mvpp2 *priv; +}; -struct mem_cgroup_tree { - struct mem_cgroup_tree_per_node *rb_tree_per_node[16]; +struct mvpp2_dbgfs_flow_entry { + int flow; + struct mvpp2 *priv; }; -struct mem_cgroup_tree_per_node { - struct rb_root rb_root; - struct rb_node *rb_rightmost; - spinlock_t lock; +struct mvpp2_dbgfs_port_flow_entry { + struct mvpp2_port *port; + struct mvpp2_dbgfs_flow_entry *dbg_fe; }; -struct memory_stat { - const char *name; - unsigned int idx; +struct mvpp2_dbgfs_entries { + struct mvpp2_dbgfs_prs_entry prs_entries[256]; + struct mvpp2_dbgfs_c2_entry c2_entries[256]; + struct mvpp2_dbgfs_flow_tbl_entry flt_entries[512]; + struct mvpp2_dbgfs_flow_entry flow_entries[52]; + struct mvpp2_dbgfs_port_flow_entry port_flow_entries[4]; }; -struct move_charge_struct { - spinlock_t lock; - struct mm_struct *mm; - struct mem_cgroup *from; - struct mem_cgroup *to; - unsigned long flags; - unsigned long precharge; - unsigned long moved_charge; - unsigned long moved_swap; - struct task_struct *moving_task; - wait_queue_head_t waitq; +struct quirk_entry { + u16 vid; + u16 pid; + u32 flags; }; -struct memcg_stock_pcp { - local_lock_t stock_lock; - struct mem_cgroup *cached; - unsigned int nr_pages; - struct obj_cgroup *cached_objcg; - struct pglist_data *cached_pgdat; - unsigned int nr_bytes; - int nr_slab_reclaimable_b; - int nr_slab_unreclaimable_b; - struct work_struct work; - unsigned long flags; +struct timing { + u8 u1sel; + u8 u1pel; + __le16 u2sel; + __le16 u2pel; }; -struct numa_stat { +struct mtu3_file_map { const char *name; - unsigned int lru_mask; + int (*show)(struct seq_file *, void *); }; -enum writeback_stat_item { - NR_DIRTY_THRESHOLD = 0, - NR_DIRTY_BG_THRESHOLD = 1, - NR_VM_WRITEBACK_STAT_ITEMS = 2, +struct mtu3_regset { + char name[32]; + struct debugfs_regset32 regset; }; -enum mc_target_type { - MC_TARGET_NONE = 0, - MC_TARGET_PAGE = 1, - MC_TARGET_SWAP = 2, - MC_TARGET_DEVICE = 3, +struct npcm_udc_data { + struct platform_device *ci; + struct clk *core_clk; + struct ci_hdrc_platform_data pdata; }; -enum res_type { - _MEM = 0, - _MEMSWAP = 1, - _KMEM = 2, - _TCP = 3, +enum bdc_link_state { + BDC_LINK_STATE_U0 = 0, + BDC_LINK_STATE_U3 = 3, + BDC_LINK_STATE_RX_DET = 5, + BDC_LINK_STATE_RESUME = 15, }; -enum { - RES_USAGE___2 = 0, - RES_LIMIT___2 = 1, - RES_MAX_USAGE___2 = 2, - RES_FAILCNT___2 = 3, - RES_SOFT_LIMIT = 4, +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 mem_cgroup_events_target { - MEM_CGROUP_TARGET_THRESH = 0, - MEM_CGROUP_TARGET_SOFTLIMIT = 1, - MEM_CGROUP_NTARGETS = 2, +struct cros_ec_rtc { + struct cros_ec_device *cros_ec; + struct rtc_device *rtc; + struct notifier_block notifier; + u32 saved_alarm; }; -struct oom_wait_info { - struct mem_cgroup *memcg; - wait_queue_entry_t wait; +struct ec_response_rtc { + uint32_t time; }; -struct mem_cgroup_eventfd_list { - struct list_head list; - struct eventfd_ctx *eventfd; +enum bcm_iproc_i2c_type { + IPROC_I2C = 0, + IPROC_I2C_NIC = 1, }; -struct mem_cgroup_event { - struct mem_cgroup *memcg; - struct eventfd_ctx *eventfd; - struct list_head list; - int (*register_event)(struct mem_cgroup *, struct eventfd_ctx *, const char *); - void (*unregister_event)(struct mem_cgroup *, struct eventfd_ctx *); - poll_table pt; - wait_queue_head_t *wqh; - wait_queue_entry_t wait; - struct work_struct remove; +enum i2c_slave_read_status { + I2C_SLAVE_RX_FIFO_EMPTY = 0, + I2C_SLAVE_RX_START = 1, + I2C_SLAVE_RX_DATA = 2, + I2C_SLAVE_RX_END = 3, }; -struct uncharge_gather { - struct mem_cgroup *memcg; - unsigned long nr_memory; - unsigned long pgpgout; - unsigned long nr_kmem; - int nid; +struct bcm_iproc_i2c_dev { + struct device *device; + enum bcm_iproc_i2c_type type; + int irq; + void *base; + void *idm_base; + u32 ape_addr_mask; + spinlock_t idm_lock; + struct i2c_adapter adapter; + unsigned int bus_speed; + struct completion done; + int xfer_is_done; + struct i2c_msg *msg; + struct i2c_client *slave; + unsigned int tx_bytes; + unsigned int rx_bytes; + unsigned int thld_bytes; + bool slave_rx_only; + bool rx_start_rcvd; + bool slave_read_complete; + u32 tx_underrun; + u32 slave_int_mask; + struct tasklet_struct slave_rx_tasklet; }; -union mc_target { - struct page *page; - swp_entry_t ent; +enum { + CMD_I2C_XFER = 1, }; -enum nfs_ftype { - NFNON = 0, - NFREG = 1, - NFDIR = 2, - NFBLK = 3, - NFCHR = 4, - NFLNK = 5, - NFSOCK = 6, - NFBAD = 7, - NFFIFO = 8, +struct tegra_bpmp_i2c { + struct i2c_adapter adapter; + struct device *dev; + struct tegra_bpmp *bpmp; + unsigned int bus; }; -enum nfs2_ftype { - NF2NON = 0, - NF2REG = 1, - NF2DIR = 2, - NF2BLK = 3, - NF2CHR = 4, - NF2LNK = 5, - NF2SOCK = 6, - NF2BAD = 7, - NF2FIFO = 8, +struct cmd_i2c_xfer_request { + uint32_t bus_id; + uint32_t data_size; + uint8_t data_buf[108]; }; -struct nfs_diropok { - struct nfs_fh *fh; - struct nfs_fattr *fattr; +struct mrq_i2c_request { + uint32_t cmd; + struct cmd_i2c_xfer_request xfer; }; -struct nfs_readdirargs { - struct nfs_fh *fh; - __u32 cookie; - unsigned int count; - struct page **pages; +struct cmd_i2c_xfer_response { + uint32_t data_size; + uint8_t data_buf[116]; }; -struct nfs2_fsstat { - __u32 tsize; - __u32 bsize; - __u32 blocks; - __u32 bfree; - __u32 bavail; +struct mrq_i2c_response { + struct cmd_i2c_xfer_response xfer; }; -struct nfs_sattrargs { - struct nfs_fh *fh; - struct iattr *sattr; +struct rcar_thermal_chip { + unsigned int use_of_thermal: 1; + unsigned int has_filonoff: 1; + unsigned int irq_per_ch: 1; + unsigned int needs_suspend_resume: 1; + unsigned int nirqs; + unsigned int ctemp_bands; }; -struct nfs_diropargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; -}; +struct rcar_thermal_common; -struct nfs_readlinkargs { - struct nfs_fh *fh; - unsigned int pgbase; - unsigned int pglen; - struct page **pages; +struct rcar_thermal_priv { + void *base; + struct rcar_thermal_common *common; + struct thermal_zone_device *zone; + const struct rcar_thermal_chip *chip; + struct delayed_work work; + struct mutex lock; + struct list_head list; + int id; }; -struct nfs_createargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; - struct iattr *sattr; +struct rcar_thermal_common { + void *base; + struct device *dev; + struct list_head head; + spinlock_t lock; }; -struct nfs_linkargs { - struct nfs_fh *fromfh; - struct nfs_fh *tofh; - const char *toname; - unsigned int tolen; +struct rwdt_priv { + void *base; + struct watchdog_device wdev; + unsigned long clk_rate; + u8 cks; + struct clk *clk; }; -struct nfs_symlinkargs { - struct nfs_fh *fromfh; - const char *fromname; - unsigned int fromlen; - struct page **pages; - unsigned int pathlen; - struct iattr *sattr; +struct userspace_policy { + unsigned int is_managed; + unsigned int setspeed; + struct mutex mutex; }; -struct dotl_openflag_map { - int open_flag; - int dotl_flag; -}; +typedef int tpl_parse_t(struct mmc_card *, struct sdio_func *, const unsigned char *, unsigned int); -struct dotl_iattr_map { - int iattr_valid; - int p9_iattr_valid; +struct cis_tpl { + unsigned char code; + unsigned char min_size; + tpl_parse_t *parse; }; -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 of_mmc_spi { + struct mmc_spi_platform_data pdata; + int detect_irq; }; -struct io_madvise { - struct file *file; - u64 addr; - u32 len; - u32 advice; -}; +typedef __kernel_mode_t mode_t; -struct io_fadvise { - struct file *file; - u64 offset; - u32 len; - u32 advice; +struct ufs_debugfs_attr { + const char *name; + mode_t mode; + const struct file_operations *fops; }; -struct xxh32_state { - uint32_t total_len_32; - uint32_t large_len; - uint32_t v1; - uint32_t v2; - uint32_t v3; - uint32_t v4; - uint32_t mem32[4]; - uint32_t memsize; +enum stratix10_svc_command_code { + COMMAND_NOOP = 0, + COMMAND_RECONFIG = 1, + COMMAND_RECONFIG_DATA_SUBMIT = 2, + COMMAND_RECONFIG_DATA_CLAIM = 3, + COMMAND_RECONFIG_STATUS = 4, + COMMAND_RSU_STATUS = 10, + COMMAND_RSU_UPDATE = 11, + COMMAND_RSU_NOTIFY = 12, + COMMAND_RSU_RETRY = 13, + COMMAND_RSU_MAX_RETRY = 14, + COMMAND_RSU_DCMF_VERSION = 15, + COMMAND_RSU_DCMF_STATUS = 16, + COMMAND_FIRMWARE_VERSION = 17, + COMMAND_FCS_REQUEST_SERVICE = 20, + COMMAND_FCS_SEND_CERTIFICATE = 21, + COMMAND_FCS_GET_PROVISION_DATA = 22, + COMMAND_FCS_DATA_ENCRYPTION = 23, + COMMAND_FCS_DATA_DECRYPTION = 24, + COMMAND_FCS_RANDOM_NUMBER_GEN = 25, + COMMAND_POLL_SERVICE_STATUS = 40, + COMMAND_MBOX_SEND_CMD = 100, + COMMAND_SMC_SVC_VERSION = 200, }; -typedef struct tree_desc_s tree_desc; +typedef void svc_invoke_fn(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, struct arm_smccc_res *); -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 stratix10_svc_chan; + +struct stratix10_svc_controller { + struct device *dev; + struct stratix10_svc_chan *chans; + int num_chans; + int num_active_client; + struct list_head node; + struct gen_pool *genpool; + struct task_struct *task; + struct kfifo svc_fifo; + struct completion complete_status; + spinlock_t svc_fifo_lock; + svc_invoke_fn *invoke_fn; }; -struct cpu_rmap { - struct kref refcount; - u16 size; - void **obj; - struct { - u16 index; - u16 dist; - } near[0]; +struct stratix10_svc_client; + +struct stratix10_svc_chan { + struct stratix10_svc_controller *ctrl; + struct stratix10_svc_client *scl; + char *name; + spinlock_t lock; }; -struct irq_glue { - struct irq_affinity_notify notify; - struct cpu_rmap *rmap; - u16 index; +struct stratix10_svc_cb_data; + +struct stratix10_svc_client { + struct device *dev; + void (*receive_cb)(struct stratix10_svc_client *, struct stratix10_svc_cb_data *); + void *priv; }; -struct node_groups { - unsigned int id; - union { - unsigned int ngroups; - unsigned int ncpus; - }; +struct stratix10_svc_cb_data { + u32 status; + void *kaddr1; + void *kaddr2; + void *kaddr3; }; -struct v2m_data { - struct list_head entry; - struct fwnode_handle *fwnode; - struct resource res; - void *base; - u32 spi_start; - u32 nr_spis; - u32 spi_offset; - unsigned long *bm; - u32 flags; +struct stratix10_svc_client_msg { + void *payload; + size_t payload_length; + void *payload_output; + size_t payload_length_output; + enum stratix10_svc_command_code command; + u64 arg[3]; }; -struct acpi_madt_generic_msi_frame { - struct acpi_subtable_header header; - u16 reserved; - u32 msi_frame_id; - u64 base_address; +struct stratix10_svc_command_config_type { u32 flags; - u16 spi_count; - u16 spi_base; }; -struct sl28cpld_intc { - struct regmap *regmap; - struct regmap_irq_chip chip; - struct regmap_irq_chip_data *irq_data; +struct stratix10_svc_data_mem { + void *vaddr; + phys_addr_t paddr; + size_t size; + struct list_head node; }; -enum meson_soc_id { - MESON_SOC_G12A = 0, - MESON_SOC_A1 = 1, +struct stratix10_svc_sh_memory { + struct completion sync_complete; + unsigned long addr; + unsigned long size; + svc_invoke_fn *invoke_fn; }; -struct phy_meson_g12a_usb2_priv { - struct device *dev; - struct regmap *regmap; - struct clk *clk; - struct reset_control *reset; - int soc_id; +struct stratix10_svc_data { + struct stratix10_svc_chan *chan; + phys_addr_t paddr; + size_t size; + phys_addr_t paddr_output; + size_t size_output; + u32 command; + u32 flag; + u64 arg[3]; }; -struct tegra_xusb_ulpi_port { - struct tegra_xusb_port base; - struct regulator *supply; - bool internal; +struct stratix10_svc { + struct platform_device *stratix10_svc_rsu; + struct platform_device *intel_svc_fcs; }; -struct tegra_xusb_hsic_port { - struct tegra_xusb_port base; +enum scmi_system_protocol_cmd { + SYSTEM_POWER_STATE_NOTIFY = 5, }; -enum ioctrl_regs___5 { - POC0___3 = 0, - POC1___3 = 1, - POC2 = 2, - POC4___2 = 3, - POC5___2 = 4, - POC6___2 = 5, - POC7___2 = 6, - POC8___2 = 7, - POC9 = 8, - TD1SEL0 = 9, +enum scmi_system_events { + SCMI_SYSTEM_SHUTDOWN = 0, + SCMI_SYSTEM_COLDRESET = 1, + SCMI_SYSTEM_WARMRESET = 2, + SCMI_SYSTEM_POWERUP = 3, + SCMI_SYSTEM_SUSPEND = 4, + SCMI_SYSTEM_MAX = 5, }; -struct pwm_export { - struct device child; - struct pwm_device *pwm; - struct mutex lock; - struct pwm_state suspend; +struct scmi_system_power_state_notify { + __le32 notify_enable; }; -struct portdrv_service_data { - struct pcie_port_service_driver *drv; - struct device *dev; - u32 service; +struct scmi_system_info { + u32 version; + bool graceful_timeout_supported; }; -typedef int (*pcie_callback_t)(struct pcie_device *); - -struct ls_g4_pcie { - struct mobiveil_pcie pci; - struct delayed_work dwork; - int irq; +struct scmi_system_power_state_notifier_payld { + __le32 agent_id; + __le32 flags; + __le32 system_state; + __le32 timeout; }; -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 scmi_system_power_state_notifier_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int flags; + unsigned int system_state; + unsigned int timeout; }; -struct acpi_osi_entry { - char string[64]; - bool enable; +struct imx_sc_msg_resp_misc_get_ctrl { + struct imx_sc_rpc_msg hdr; + u32 val; }; -struct acpi_wakeup_handler { - struct list_head list_node; - bool (*wakeup)(void *); - void *context; +struct imx_sc_msg_req_misc_set_ctrl { + struct imx_sc_rpc_msg hdr; + u32 ctrl; + u32 val; + u16 resource; }; -typedef acpi_status (*acpi_object_converter)(struct acpi_namespace_node *, union acpi_operand_object *, union acpi_operand_object **); - -struct acpi_simple_repair_info { - char name[4]; - u32 unexpected_btypes; - u32 package_index; - acpi_object_converter object_converter; +struct imx_sc_msg_req_misc_get_ctrl { + struct imx_sc_rpc_msg hdr; + u32 ctrl; + u16 resource; }; -struct acpi_fadt_info { - const char *name; - u16 address64; - u16 address32; - u16 length; - u8 default_length; - u8 flags; +struct imx_sc_msg_req_cpu_start { + struct imx_sc_rpc_msg hdr; + u32 address_hi; + u32 address_lo; + u16 resource; + u8 enable; }; -struct acpi_fadt_pm_info { - struct acpi_generic_address *target; - u16 source; - u8 register_num; +struct imx_sc_msg_misc_get_soc_id { + struct imx_sc_rpc_msg hdr; + union { + struct { + u32 control; + u16 resource; + } __attribute__((packed)) req; + struct { + u32 id; + } resp; + } data; }; -struct scpi_clk { - u32 id; - struct clk_hw hw; - struct scpi_dvfs_info *info; - struct scpi_ops *scpi_ops; +struct imx_sc_msg_misc_get_soc_uid { + struct imx_sc_rpc_msg hdr; + u32 uid_low; + u32 uid_high; }; -struct scpi_clk_data { - struct scpi_clk **clk; - unsigned int clk_num; +enum sh_cmt_model { + SH_CMT_16BIT = 0, + SH_CMT_32BIT = 1, + SH_CMT_48BIT = 2, + SH_CMT0_RCAR_GEN2 = 3, + SH_CMT1_RCAR_GEN2 = 4, }; -struct hi3519_crg_data { - struct hisi_clock_data *clk_data; - struct hisi_reset_controller *rstc; +struct sh_cmt_info { + enum sh_cmt_model model; + unsigned int channels_mask; + unsigned long width; + u32 overflow_bit; + u32 clear_bits; + u32 (*read_control)(void *, unsigned long); + void (*write_control)(void *, unsigned long, u32); + u32 (*read_count)(void *, unsigned long); + void (*write_count)(void *, unsigned long, u32); }; -struct clk_regmap_mux_div { - u32 reg_offset; - u32 hid_width; - u32 hid_shift; - u32 src_width; - u32 src_shift; - u32 div; - u32 src; - const u32 *parent_map; - struct clk_regmap___2 clkr; - struct clk *pclk; - struct notifier_block clk_nb; -}; +struct sh_cmt_device; -struct stratix10_pll_clock { - unsigned int id; - const char *name; - const struct clk_parent_data *parent_data; - u8 num_parents; +struct sh_cmt_channel { + struct sh_cmt_device *cmt; + unsigned int index; + unsigned int hwidx; + void *iostart; + void *ioctrl; + unsigned int timer_bit; unsigned long flags; - unsigned long offset; + u32 match_value; + u32 next_match_value; + u32 max_match_value; + raw_spinlock_t lock; + struct clock_event_device ced; + struct clocksource cs; + u64 total_cycles; + bool cs_enabled; + long: 64; + long: 64; + long: 64; }; -struct stratix10_clock_data { - struct clk_hw_onecell_data clk_data; - void *base; +struct sh_cmt_device { + struct platform_device *pdev; + const struct sh_cmt_info *info; + void *mapbase; + struct clk *clk; + unsigned long rate; + unsigned int reg_delay; + raw_spinlock_t lock; + struct sh_cmt_channel *channels; + unsigned int num_channels; + unsigned int hw_channels; + bool has_clockevent; + bool has_clocksource; }; -struct visconti_clk_gate { - struct clk_hw hw; - struct regmap *regmap; - u32 ckon_offset; - u32 ckoff_offset; - u8 ck_idx; - u8 flags; - u32 rson_offset; - u32 rsoff_offset; - u8 rs_idx; - spinlock_t *lock; -}; +typedef void (*btf_trace_cros_ec_sensorhub_timestamp)(void *, u32, u32, s64, s64, s64); -struct owl_sps_domain_info; +typedef void (*btf_trace_cros_ec_sensorhub_data)(void *, u32, u32, s64, s64, s64); -struct owl_sps_info { - unsigned int num_domains; - const struct owl_sps_domain_info *domains; -}; +typedef void (*btf_trace_cros_ec_sensorhub_filter)(void *, struct cros_ec_sensors_ts_filter_state *, s64, s64); -struct owl_sps_domain_info { - const char *name; - int pwr_bit; - int ack_bit; - unsigned int genpd_flags; +enum { + CROS_EC_SENSOR_LAST_TS = 0, + CROS_EC_SENSOR_NEW_TS = 1, + CROS_EC_SENSOR_ALL_TS = 2, }; -struct owl_sps; +struct trace_event_raw_cros_ec_sensorhub_timestamp { + struct trace_entry ent; + u32 ec_sample_timestamp; + u32 ec_fifo_timestamp; + s64 fifo_timestamp; + s64 current_timestamp; + s64 current_time; + s64 delta; + char __data[0]; +}; -struct owl_sps_domain { - struct generic_pm_domain genpd; - const struct owl_sps_domain_info *info; - struct owl_sps *sps; +struct trace_event_raw_cros_ec_sensorhub_data { + struct trace_entry ent; + u32 ec_sensor_num; + u32 ec_fifo_timestamp; + s64 fifo_timestamp; + s64 current_timestamp; + s64 current_time; + s64 delta; + char __data[0]; }; -struct owl_sps { - struct device *dev; - const struct owl_sps_info *info; - void *base; - struct genpd_onecell_data genpd_data; - struct generic_pm_domain *domains[0]; +struct trace_event_raw_cros_ec_sensorhub_filter { + struct trace_entry ent; + s64 dx; + s64 dy; + s64 median_m; + s64 median_error; + s64 history_len; + s64 x; + s64 y; + char __data[0]; }; -struct imx_pgc_domain; +struct trace_event_data_offsets_cros_ec_sensorhub_timestamp {}; -struct imx_pgc_regs; +struct trace_event_data_offsets_cros_ec_sensorhub_data {}; -struct imx_pgc_domain_data { - const struct imx_pgc_domain *domains; - size_t domains_num; - const struct regmap_access_table *reg_access_table; - const struct imx_pgc_regs *pgc_regs; -}; +struct trace_event_data_offsets_cros_ec_sensorhub_filter {}; -struct imx_pgc_domain { - struct generic_pm_domain genpd; - struct regmap *regmap; - const struct imx_pgc_regs *regs; - struct regulator *regulator; - struct reset_control *reset; - struct clk_bulk_data *clks; - int num_clks; - unsigned long pgc; - const struct { - u32 pxx; - u32 map; - u32 hskreq; - u32 hskack; - } bits; - const int voltage; - const bool keep_clocks; - struct device *dev; - unsigned int pgc_sw_pup_reg; - unsigned int pgc_sw_pdn_reg; +struct iio_map; + +struct iio_map_internal { + struct iio_dev *indio_dev; + struct iio_map *map; + struct list_head l; }; -struct imx_pgc_regs { - u16 map; - u16 pup; - u16 pdn; - u16 hsk; +struct iio_map { + const char *adc_channel_label; + const char *consumer_dev_name; + const char *consumer_channel; + void *consumer_data; }; -struct exynos_pmu_data; +struct iio_channel { + struct iio_dev *indio_dev; + const struct iio_chan_spec *channel; + void *data; +}; -struct exynos_pmu_context { +struct rockchip_efuse_chip { struct device *dev; - const struct exynos_pmu_data *pmu_data; + void *base; + struct clk *clk; }; -enum sys_powerdown { - SYS_AFTR = 0, - SYS_LPA = 1, - SYS_SLEEP = 2, - NUM_SYS_POWERDOWN = 3, +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; }; -struct exynos_pmu_conf; - -struct exynos_pmu_data { - const struct exynos_pmu_conf *pmu_config; - const struct exynos_pmu_conf *pmu_config_extra; - void (*pmu_init)(); - void (*powerdown_conf)(enum sys_powerdown); - void (*powerdown_conf_extra)(enum sys_powerdown); +enum tc_fifo_command { + TC_FIFO_REPLACE = 0, + TC_FIFO_DESTROY = 1, + TC_FIFO_STATS = 2, }; -struct exynos_pmu_conf { - unsigned int offset; - u8 val[3]; +struct tc_fifo_qopt { + __u32 limit; }; -struct grant_frames { - xen_pfn_t *pfn; - unsigned int count; - void *vaddr; +struct tc_fifo_qopt_offload { + enum tc_fifo_command command; + u32 handle; + u32 parent; + union { + struct tc_qopt_offload_stats stats; + }; }; -struct gnttab_ops { - unsigned int version; - unsigned int grefs_per_grant_frame; - int (*map_frames)(xen_pfn_t *, unsigned int); - void (*unmap_frames)(); - void (*update_entry)(grant_ref_t, domid_t, unsigned long, unsigned int); - int (*end_foreign_access_ref)(grant_ref_t); - unsigned long (*read_frame)(grant_ref_t); +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, }; -typedef uint16_t grant_status_t; - -struct grant_entry_v1 { - uint16_t flags; - domid_t domid; - uint32_t frame; +struct coalesce_reply_data { + struct ethnl_reply_data base; + struct ethtool_coalesce coalesce; + struct kernel_ethtool_coalesce kernel_coalesce; + u32 supported_params; }; -struct grant_entry_header { - uint16_t flags; - domid_t domid; -}; +typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); -union grant_entry_v2 { - struct grant_entry_header hdr; - struct { - struct grant_entry_header hdr; - uint32_t pad0; - uint64_t frame; - } full_page; - struct { - struct grant_entry_header hdr; - uint16_t page_off; - uint16_t length; - uint64_t frame; - } sub_page; - struct { - struct grant_entry_header hdr; - domid_t trans_domid; - uint16_t pad0; - grant_ref_t gref; - } transitive; - uint32_t __spacer[4]; -}; +typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); -struct deferred_entry { - struct list_head list; - grant_ref_t ref; - uint16_t warn_delay; - struct page *page; +typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); + +enum { + TCP_BPF_IPV4 = 0, + TCP_BPF_IPV6 = 1, + TCP_BPF_NUM_PROTS = 2, }; -struct xen_page_foreign { - domid_t domid; - grant_ref_t gref; +enum { + TCP_BPF_BASE = 0, + TCP_BPF_TX = 1, + TCP_BPF_RX = 2, + TCP_BPF_TXRX = 3, + TCP_BPF_NUM_CFGS = 4, }; -struct gnttab_query_size { - domid_t dom; - uint32_t nr_frames; - uint32_t max_nr_frames; - int16_t status; +struct tx_work { + struct delayed_work work; + struct sock *sk; }; -struct gnttab_page_cache { - spinlock_t lock; - struct list_head pages; - unsigned int num_pages; -}; +struct tls_rec; -struct gnttab_set_version { - uint32_t version; +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 unmap_refs_callback_data { - struct completion completion; - int result; -}; +typedef void (*btf_trace_rpc_xdr_sendto)(void *, const struct rpc_task *, const struct xdr_buf *); -struct gnttab_setup_table { - domid_t dom; - uint32_t nr_frames; - int16_t status; - __guest_handle_xen_pfn_t frame_list; -}; +typedef void (*btf_trace_rpc_xdr_recvfrom)(void *, const struct rpc_task *, const struct xdr_buf *); -struct gnttab_get_status_frames { - uint32_t nr_frames; - domid_t dom; - int16_t status; - __guest_handle_uint64_t frame_list; -}; +typedef void (*btf_trace_rpc_xdr_reply_pages)(void *, const struct rpc_task *, const struct xdr_buf *); -struct reg_init { - unsigned int reg; - unsigned int mask; - unsigned int val; -}; +typedef void (*btf_trace_rpc_clnt_free)(void *, const struct rpc_clnt *); -struct bd718xx_regulator_data { - struct regulator_desc desc; - const struct rohm_dvs_config dvs; - const struct reg_init init; - const struct reg_init *additional_inits; - int additional_init_amnt; -}; +typedef void (*btf_trace_rpc_clnt_killall)(void *, const struct rpc_clnt *); -enum { - BD718XX_REG_REV = 0, - BD718XX_REG_SWRESET = 1, - BD718XX_REG_I2C_DEV = 2, - BD718XX_REG_PWRCTRL0 = 3, - BD718XX_REG_PWRCTRL1 = 4, - BD718XX_REG_BUCK1_CTRL = 5, - BD718XX_REG_BUCK2_CTRL = 6, - BD718XX_REG_1ST_NODVS_BUCK_CTRL = 9, - BD718XX_REG_2ND_NODVS_BUCK_CTRL = 10, - BD718XX_REG_3RD_NODVS_BUCK_CTRL = 11, - BD718XX_REG_4TH_NODVS_BUCK_CTRL = 12, - BD718XX_REG_BUCK1_VOLT_RUN = 13, - BD718XX_REG_BUCK1_VOLT_IDLE = 14, - BD718XX_REG_BUCK1_VOLT_SUSP = 15, - BD718XX_REG_BUCK2_VOLT_RUN = 16, - BD718XX_REG_BUCK2_VOLT_IDLE = 17, - BD718XX_REG_1ST_NODVS_BUCK_VOLT = 20, - BD718XX_REG_2ND_NODVS_BUCK_VOLT = 21, - BD718XX_REG_3RD_NODVS_BUCK_VOLT = 22, - BD718XX_REG_4TH_NODVS_BUCK_VOLT = 23, - BD718XX_REG_LDO1_VOLT = 24, - BD718XX_REG_LDO2_VOLT = 25, - BD718XX_REG_LDO3_VOLT = 26, - BD718XX_REG_LDO4_VOLT = 27, - BD718XX_REG_LDO5_VOLT = 28, - BD718XX_REG_LDO6_VOLT = 29, - BD718XX_REG_TRANS_COND0 = 31, - BD718XX_REG_TRANS_COND1 = 32, - BD718XX_REG_VRFAULTEN = 33, - BD718XX_REG_MVRFLTMASK0 = 34, - BD718XX_REG_MVRFLTMASK1 = 35, - BD718XX_REG_MVRFLTMASK2 = 36, - BD718XX_REG_RCVCFG = 37, - BD718XX_REG_RCVNUM = 38, - BD718XX_REG_PWRONCONFIG0 = 39, - BD718XX_REG_PWRONCONFIG1 = 40, - BD718XX_REG_RESETSRC = 41, - BD718XX_REG_MIRQ = 42, - BD718XX_REG_IRQ = 43, - BD718XX_REG_IN_MON = 44, - BD718XX_REG_POW_STATE = 45, - BD718XX_REG_OUT32K = 46, - BD718XX_REG_REGLOCK = 47, - BD718XX_REG_OTPVER = 255, - BD718XX_MAX_REGISTER = 256, -}; +typedef void (*btf_trace_rpc_clnt_shutdown)(void *, const struct rpc_clnt *); -enum { - BD718XX_BUCK1 = 0, - BD718XX_BUCK2 = 1, - BD718XX_BUCK3 = 2, - BD718XX_BUCK4 = 3, - BD718XX_BUCK5 = 4, - BD718XX_BUCK6 = 5, - BD718XX_BUCK7 = 6, - BD718XX_BUCK8 = 7, - BD718XX_LDO1 = 8, - BD718XX_LDO2 = 9, - BD718XX_LDO3 = 10, - BD718XX_LDO4 = 11, - BD718XX_LDO5 = 12, - BD718XX_LDO6 = 13, - BD718XX_LDO7 = 14, - BD718XX_REGULATOR_AMOUNT = 15, -}; +typedef void (*btf_trace_rpc_clnt_release)(void *, const struct rpc_clnt *); -struct qcom_aoss_reset_map; +typedef void (*btf_trace_rpc_clnt_replace_xprt)(void *, const struct rpc_clnt *); -struct qcom_aoss_desc { - const struct qcom_aoss_reset_map *resets; - size_t num_resets; -}; +typedef void (*btf_trace_rpc_clnt_replace_xprt_err)(void *, const struct rpc_clnt *); -struct qcom_aoss_reset_map { - unsigned int reg; -}; +typedef void (*btf_trace_rpc_clnt_new)(void *, const struct rpc_clnt *, const struct rpc_xprt *, const struct rpc_create_args *); -struct qcom_aoss_reset_data { - struct reset_controller_dev rcdev; - void *base; - const struct qcom_aoss_desc *desc; -}; +typedef void (*btf_trace_rpc_clnt_new_err)(void *, const char *, const char *, int); -struct xgene_rng_dev { - u32 irq; - void *csr_base; - u32 revision; - u32 datum_size; - u32 failure_cnt; - unsigned long failure_ts; - struct timer_list failure_timer; - struct device *dev; -}; +typedef void (*btf_trace_rpc_clnt_clone_err)(void *, const struct rpc_clnt *, int); -typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *); +typedef void (*btf_trace_rpc_call_status)(void *, const struct rpc_task *); -typedef void (*btf_trace_remove_device_from_group)(void *, int, struct device *); +typedef void (*btf_trace_rpc_connect_status)(void *, const struct rpc_task *); -typedef void (*btf_trace_attach_device_to_domain)(void *, struct device *); +typedef void (*btf_trace_rpc_timeout_status)(void *, const struct rpc_task *); -typedef void (*btf_trace_map)(void *, unsigned long, phys_addr_t, size_t); +typedef void (*btf_trace_rpc_retry_refresh_status)(void *, const struct rpc_task *); -typedef void (*btf_trace_unmap)(void *, unsigned long, size_t, size_t); +typedef void (*btf_trace_rpc_refresh_status)(void *, const struct rpc_task *); -typedef void (*btf_trace_io_page_fault)(void *, struct device *, unsigned long, int); +typedef void (*btf_trace_rpc_request)(void *, const struct rpc_task *); -struct trace_event_raw_iommu_group_event { - struct trace_entry ent; - int gid; - u32 __data_loc_device; - char __data[0]; -}; +typedef void (*btf_trace_rpc_task_begin)(void *, const struct rpc_task *, const void *); -struct trace_event_raw_iommu_device_event { - struct trace_entry ent; - u32 __data_loc_device; - char __data[0]; -}; +typedef void (*btf_trace_rpc_task_run_action)(void *, const struct rpc_task *, const void *); -struct trace_event_raw_map { - struct trace_entry ent; - u64 iova; - u64 paddr; - size_t size; - char __data[0]; -}; +typedef void (*btf_trace_rpc_task_sync_sleep)(void *, const struct rpc_task *, const void *); -struct trace_event_raw_unmap { - struct trace_entry ent; - u64 iova; - size_t size; - size_t unmapped_size; - char __data[0]; -}; +typedef void (*btf_trace_rpc_task_sync_wake)(void *, const struct rpc_task *, const void *); -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]; -}; +typedef void (*btf_trace_rpc_task_complete)(void *, const struct rpc_task *, const void *); -struct trace_event_data_offsets_iommu_group_event { - u32 device; -}; +typedef void (*btf_trace_rpc_task_timeout)(void *, const struct rpc_task *, const void *); -struct trace_event_data_offsets_iommu_device_event { - u32 device; -}; +typedef void (*btf_trace_rpc_task_signalled)(void *, const struct rpc_task *, const void *); -struct trace_event_data_offsets_iommu_error { - u32 device; - u32 driver; -}; +typedef void (*btf_trace_rpc_task_end)(void *, const struct rpc_task *, const void *); -struct trace_event_data_offsets_map {}; +typedef void (*btf_trace_rpc_task_call_done)(void *, const struct rpc_task *, const void *); -struct trace_event_data_offsets_unmap {}; +typedef void (*btf_trace_rpc_task_sleep)(void *, const struct rpc_task *, const struct rpc_wait_queue *); -struct qcom_spmi_pmic { - unsigned int type; - unsigned int subtype; - unsigned int major; - unsigned int minor; - unsigned int rev2; - unsigned int fab_id; - const char *name; -}; +typedef void (*btf_trace_rpc_task_wakeup)(void *, const struct rpc_task *, const struct rpc_wait_queue *); -struct qcom_spmi_dev { - int num_usids; - struct qcom_spmi_pmic pmic; -}; +typedef void (*btf_trace_rpc_bad_callhdr)(void *, const struct rpc_task *); -struct scsi_host_busy_iter_data { - bool (*fn)(struct scsi_cmnd *, void *); - void *priv; -}; +typedef void (*btf_trace_rpc_bad_verifier)(void *, const struct rpc_task *); -struct ata_eh_cmd_timeout_ent { - const u8 *commands; - const unsigned int *timeouts; -}; +typedef void (*btf_trace_rpc__prog_unavail)(void *, const struct rpc_task *); -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, -}; +typedef void (*btf_trace_rpc__prog_mismatch)(void *, const struct rpc_task *); -enum ata_lpm_hints { - ATA_LPM_EMPTY = 1, - ATA_LPM_HIPM = 2, - ATA_LPM_WAKE_ONLY = 4, -}; +typedef void (*btf_trace_rpc__proc_unavail)(void *, const struct rpc_task *); -struct speed_down_verdict_arg { - u64 since; - int xfer_ok; - int nr_errors[8]; -}; +typedef void (*btf_trace_rpc__garbage_args)(void *, const struct rpc_task *); -struct onfi_ext_ecc_info { - u8 ecc_bits; - u8 codeword_size; - __le16 bb_per_lun; - __le16 block_endurance; - u8 reserved[2]; -}; +typedef void (*btf_trace_rpc__unparsable)(void *, const struct rpc_task *); -struct onfi_ext_section { - u8 type; - u8 length; -}; +typedef void (*btf_trace_rpc__mismatch)(void *, const struct rpc_task *); -struct onfi_ext_param_page { - __le16 crc; - u8 sig[4]; - u8 reserved0[10]; - struct onfi_ext_section sections[8]; -}; +typedef void (*btf_trace_rpc__stale_creds)(void *, const struct rpc_task *); -struct hclge_mac_speed_map { - u32 speed_drv; - u32 speed_fw; -}; +typedef void (*btf_trace_rpc__bad_creds)(void *, const struct rpc_task *); -struct hclge_mac_mgr_tbl_entry_cmd { - u8 flags; - u8 resp_code; - __le16 vlan_tag; - u8 mac_addr[6]; - __le16 rsv1; - __le16 ethter_type; - __le16 egress_port; - __le16 egress_queue; - u8 sw_port_id_aware; - u8 rsv2; - u8 i_port_bitmap; - u8 i_port_direction; - u8 rsv3[2]; -}; +typedef void (*btf_trace_rpc__auth_tooweak)(void *, const struct rpc_task *); -struct hclge_speed_bit_map { - u32 speed; - u32 speed_bit; -}; +typedef void (*btf_trace_rpcb_prog_unavail_err)(void *, const struct rpc_task *); -enum HCLGE_FD_KEY_OPT { - KEY_OPT_U8 = 0, - KEY_OPT_LE16 = 1, - KEY_OPT_LE32 = 2, - KEY_OPT_MAC = 3, - KEY_OPT_IP = 4, - KEY_OPT_VNI = 5, -}; +typedef void (*btf_trace_rpcb_timeout_err)(void *, const struct rpc_task *); -struct key_info { - u8 key_type; - u8 key_length; - enum HCLGE_FD_KEY_OPT key_opt; - int offset; - int moffset; -}; +typedef void (*btf_trace_rpcb_bind_version_err)(void *, const struct rpc_task *); -struct hclge_comm_stats_str { - char desc[32]; - u32 stats_num; - unsigned long offset; -}; +typedef void (*btf_trace_rpcb_unreachable_err)(void *, const struct rpc_task *); -enum HCLGE_MAC_DUPLEX { - HCLGE_MAC_HALF = 0, - HCLGE_MAC_FULL = 1, -}; +typedef void (*btf_trace_rpcb_unrecognized_err)(void *, const struct rpc_task *); -enum HCLGE_MAC_SPEED { - HCLGE_MAC_SPEED_UNKNOWN = 0, - HCLGE_MAC_SPEED_10M = 10, - HCLGE_MAC_SPEED_100M = 100, - HCLGE_MAC_SPEED_1G = 1000, - HCLGE_MAC_SPEED_10G = 10000, - HCLGE_MAC_SPEED_25G = 25000, - HCLGE_MAC_SPEED_40G = 40000, - HCLGE_MAC_SPEED_50G = 50000, - HCLGE_MAC_SPEED_100G = 100000, - HCLGE_MAC_SPEED_200G = 200000, -}; +typedef void (*btf_trace_rpc_buf_alloc)(void *, const struct rpc_task *, int); -enum hclge_mac_vlan_tbl_opcode { - HCLGE_MAC_VLAN_ADD = 0, - HCLGE_MAC_VLAN_UPDATE = 1, - HCLGE_MAC_VLAN_REMOVE = 2, - HCLGE_MAC_VLAN_LKUP = 3, -}; +typedef void (*btf_trace_rpc_call_rpcerror)(void *, const struct rpc_task *, int, int); -enum hclge_mac_vlan_add_resp_code { - HCLGE_ADD_UC_OVERFLOW = 2, - HCLGE_ADD_MC_OVERFLOW = 3, -}; +typedef void (*btf_trace_rpc_stats_latency)(void *, const struct rpc_task *, ktime_t, ktime_t, ktime_t); -enum hclge_vlan_fltr_cap { - HCLGE_VLAN_FLTR_DEF = 0, - HCLGE_VLAN_FLTR_CAN_MDF = 1, -}; +typedef void (*btf_trace_rpc_xdr_overflow)(void *, const struct xdr_stream *, size_t); -enum HCLGE_FIRMWARE_MAC_SPEED { - HCLGE_FW_MAC_SPEED_1G = 0, - HCLGE_FW_MAC_SPEED_10G = 1, - HCLGE_FW_MAC_SPEED_25G = 2, - HCLGE_FW_MAC_SPEED_40G = 3, - HCLGE_FW_MAC_SPEED_50G = 4, - HCLGE_FW_MAC_SPEED_100G = 5, - HCLGE_FW_MAC_SPEED_10M = 6, - HCLGE_FW_MAC_SPEED_100M = 7, - HCLGE_FW_MAC_SPEED_200G = 8, -}; +typedef void (*btf_trace_rpc_xdr_alignment)(void *, const struct xdr_stream *, size_t, unsigned int); -enum hnae3_fec_mode { - HNAE3_FEC_AUTO = 0, - HNAE3_FEC_BASER = 1, - HNAE3_FEC_RS = 2, - HNAE3_FEC_LLRS = 3, - HNAE3_FEC_NONE = 4, - HNAE3_FEC_USER_DEF = 5, -}; +typedef void (*btf_trace_rpc_socket_state_change)(void *, struct rpc_xprt *, struct socket *); -enum hclge_evt_cause { - HCLGE_VECTOR0_EVENT_RST = 0, - HCLGE_VECTOR0_EVENT_MBX = 1, - HCLGE_VECTOR0_EVENT_ERR = 2, - HCLGE_VECTOR0_EVENT_PTP = 3, - HCLGE_VECTOR0_EVENT_OTHER = 4, -}; +typedef void (*btf_trace_rpc_socket_connect)(void *, struct rpc_xprt *, struct socket *, int); -enum HCLGE_FD_MODE { - HCLGE_FD_MODE_DEPTH_2K_WIDTH_400B_STAGE_1 = 0, - HCLGE_FD_MODE_DEPTH_1K_WIDTH_400B_STAGE_2 = 1, - HCLGE_FD_MODE_DEPTH_4K_WIDTH_200B_STAGE_1 = 2, - HCLGE_FD_MODE_DEPTH_2K_WIDTH_200B_STAGE_2 = 3, -}; +typedef void (*btf_trace_rpc_socket_error)(void *, struct rpc_xprt *, struct socket *, int); -enum HCLGE_FD_KEY_TYPE { - HCLGE_FD_KEY_BASE_ON_PTYPE = 0, - HCLGE_FD_KEY_BASE_ON_TUPLE = 1, -}; +typedef void (*btf_trace_rpc_socket_reset_connection)(void *, struct rpc_xprt *, struct socket *, int); -enum HCLGE_FD_TUPLE { - OUTER_DST_MAC = 0, - OUTER_SRC_MAC = 1, - OUTER_VLAN_TAG_FST = 2, - OUTER_VLAN_TAG_SEC = 3, - OUTER_ETH_TYPE = 4, - OUTER_L2_RSV = 5, - OUTER_IP_TOS = 6, - OUTER_IP_PROTO = 7, - OUTER_SRC_IP = 8, - OUTER_DST_IP = 9, - OUTER_L3_RSV = 10, - OUTER_SRC_PORT = 11, - OUTER_DST_PORT = 12, - OUTER_L4_RSV = 13, - OUTER_TUN_VNI = 14, - OUTER_TUN_FLOW_ID = 15, - INNER_DST_MAC = 16, - INNER_SRC_MAC = 17, - INNER_VLAN_TAG_FST = 18, - INNER_VLAN_TAG_SEC = 19, - INNER_ETH_TYPE = 20, - INNER_L2_RSV = 21, - INNER_IP_TOS = 22, - INNER_IP_PROTO = 23, - INNER_SRC_IP = 24, - INNER_DST_IP = 25, - INNER_L3_RSV = 26, - INNER_SRC_PORT = 27, - INNER_DST_PORT = 28, - INNER_L4_RSV = 29, - MAX_TUPLE = 30, -}; +typedef void (*btf_trace_rpc_socket_close)(void *, struct rpc_xprt *, struct socket *); -enum HCLGE_FD_META_DATA { - PACKET_TYPE_ID = 0, - IP_FRAGEMENT = 1, - ROCE_TYPE = 2, - NEXT_KEY = 3, - VLAN_NUMBER = 4, - SRC_VPORT = 5, - DST_VPORT = 6, - TUNNEL_PACKET = 7, - MAX_META_DATA = 8, -}; +typedef void (*btf_trace_rpc_socket_shutdown)(void *, struct rpc_xprt *, struct socket *); -enum hnae3_module_type { - HNAE3_MODULE_TYPE_UNKNOWN = 0, - HNAE3_MODULE_TYPE_FIBRE_LR = 1, - HNAE3_MODULE_TYPE_FIBRE_SR = 2, - HNAE3_MODULE_TYPE_AOC = 3, - HNAE3_MODULE_TYPE_CR = 4, - HNAE3_MODULE_TYPE_KR = 5, - HNAE3_MODULE_TYPE_TP = 6, -}; +typedef void (*btf_trace_rpc_socket_nospace)(void *, const struct rpc_rqst *, const struct sock_xprt *); -enum HLCGE_PORT_TYPE { - HOST_PORT = 0, - NETWORK_PORT = 1, -}; +typedef void (*btf_trace_xprt_create)(void *, const struct rpc_xprt *); -enum hclge_mac_vlan_cfg_sel { - HCLGE_MAC_VLAN_NIC_SEL = 0, - HCLGE_MAC_VLAN_ROCE_SEL = 1, -}; +typedef void (*btf_trace_xprt_connect)(void *, const struct rpc_xprt *); -enum HCLGE_FD_ACTION { - HCLGE_FD_ACTION_SELECT_QUEUE = 0, - HCLGE_FD_ACTION_DROP_PACKET = 1, - HCLGE_FD_ACTION_SELECT_TC = 2, -}; +typedef void (*btf_trace_xprt_disconnect_auto)(void *, const struct rpc_xprt *); -enum HCLGE_FD_PACKET_TYPE { - NIC_PACKET = 0, - ROCE_PACKET = 1, -}; +typedef void (*btf_trace_xprt_disconnect_done)(void *, const struct rpc_xprt *); -enum hclge_led_status { - HCLGE_LED_OFF = 0, - HCLGE_LED_ON = 1, - HCLGE_LED_NO_CHANGE = 255, -}; +typedef void (*btf_trace_xprt_disconnect_force)(void *, const struct rpc_xprt *); -struct hclge_reset_cmd { - u8 mac_func_reset; - u8 fun_reset_vfid; - u8 fun_reset_rcb; - u8 rsv; - __le16 fun_reset_rcb_vqid_start; - __le16 fun_reset_rcb_vqid_num; - u8 fun_reset_rcb_return_status; - u8 rsv1[15]; -}; +typedef void (*btf_trace_xprt_destroy)(void *, const struct rpc_xprt *); -struct hclge_vport_vlan_cfg { - struct list_head node; - int hd_tbl_status; - u16 vlan_id; -}; +typedef void (*btf_trace_xprt_timer)(void *, const struct rpc_xprt *, __be32, int); -struct hclge_promisc_cfg_cmd { - u8 promisc; - u8 vf_id; - u8 extend_promisc; - u8 rsv0[21]; -}; +typedef void (*btf_trace_xprt_lookup_rqst)(void *, const struct rpc_xprt *, __be32, int); -struct hclge_vlan_filter_vf_cfg_cmd { - __le16 vlan_id; - u8 resp_code; - u8 rsv; - u8 vlan_cfg; - u8 rsv1[3]; - u8 vf_bitmap[16]; -}; +typedef void (*btf_trace_xprt_transmit)(void *, const struct rpc_rqst *, int); -struct hclge_vlan_filter_pf_cfg_cmd { - u8 vlan_offset; - u8 vlan_cfg; - u8 rsv[2]; - u8 vlan_offset_bitmap[20]; -}; +typedef void (*btf_trace_xprt_retransmit)(void *, const struct rpc_rqst *); -struct hclge_cfg_com_tqp_queue_cmd { - __le16 tqp_id; - __le16 stream_id; - u8 enable; - u8 rsv[19]; -}; +typedef void (*btf_trace_xprt_ping)(void *, const struct rpc_xprt *, int); -struct hclge_reset_tqp_queue_cmd { - __le16 tqp_id; - u8 reset_req; - u8 ready_to_reset; - u8 rsv[20]; -}; +typedef void (*btf_trace_xprt_reserve_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); -struct hclge_func_status_cmd { - __le32 vf_rst_state[4]; - u8 pf_state; - u8 mac_id; - u8 rsv1; - u8 pf_cnt_in_mac; - u8 pf_num; - u8 vf_num; - u8 rsv[2]; -}; +typedef void (*btf_trace_xprt_release_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); -struct hclge_pf_res_cmd { - __le16 tqp_num; - __le16 buf_size; - __le16 msixcap_localid_ba_nic; - __le16 msixcap_localid_number_nic; - __le16 pf_intr_vector_number_roce; - __le16 pf_own_fun_number; - __le16 tx_buf_size; - __le16 dv_buf_size; - __le16 ext_tqp_num; - u8 rsv[6]; -}; +typedef void (*btf_trace_xprt_reserve_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); -struct hclge_dev_specs_0_cmd { - __le32 rsv0; - __le32 mac_entry_num; - __le32 mng_entry_num; - __le16 rss_ind_tbl_size; - __le16 rss_key_size; - __le16 int_ql_max; - u8 max_non_tso_bd_num; - u8 rsv1; - __le32 max_tm_rate; -}; +typedef void (*btf_trace_xprt_release_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); -struct hclge_dev_specs_1_cmd { - __le16 max_frm_size; - __le16 max_qset_num; - __le16 max_int_gl; - u8 rsv0[2]; - __le16 umv_size; - __le16 mc_mac_size; - u8 rsv1[12]; -}; +typedef void (*btf_trace_xprt_get_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); -struct hclge_cfg_param_cmd { - __le32 offset; - __le32 rsv; - __le32 param[4]; -}; +typedef void (*btf_trace_xprt_put_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); -struct hclge_tqp_map_cmd { - __le16 tqp_id; - u8 tqp_vf; - u8 tqp_flag; - __le16 tqp_vid; - u8 rsv[18]; -}; +typedef void (*btf_trace_xprt_reserve)(void *, const struct rpc_rqst *); -struct hclge_umv_spc_alc_cmd { - u8 allocate; - u8 rsv1[3]; - __le32 space_size; - u8 rsv2[16]; -}; +typedef void (*btf_trace_xs_data_ready)(void *, const struct rpc_xprt *); -struct hclge_config_auto_neg_cmd { - __le32 cfg_an_cmd_flag; - u8 rsv[20]; -}; +typedef void (*btf_trace_xs_stream_read_data)(void *, struct rpc_xprt *, ssize_t, size_t); -struct hclge_config_fec_cmd { - u8 fec_mode; - u8 default_config; - u8 rsv[22]; -}; +typedef void (*btf_trace_xs_stream_read_request)(void *, struct sock_xprt *); -struct hclge_cfg_tso_status_cmd { - __le16 tso_mss_min; - __le16 tso_mss_max; - u8 rsv[20]; -}; +typedef void (*btf_trace_rpcb_getport)(void *, const struct rpc_clnt *, const struct rpc_task *, unsigned int); -struct hclge_cfg_gro_status_cmd { - u8 gro_en; - u8 rsv[23]; -}; +typedef void (*btf_trace_rpcb_setport)(void *, const struct rpc_task *, int, unsigned short); -struct hclge_rx_vlan_type_cfg_cmd { - __le16 ot_fst_vlan_type; - __le16 ot_sec_vlan_type; - __le16 in_fst_vlan_type; - __le16 in_sec_vlan_type; - u8 rsv[16]; -}; +typedef void (*btf_trace_pmap_register)(void *, u32, u32, int, unsigned short); -struct hclge_tx_vlan_type_cfg_cmd { - __le16 ot_vlan_type; - __le16 in_vlan_type; - u8 rsv[20]; -}; +typedef void (*btf_trace_rpcb_register)(void *, u32, u32, const char *, const char *); -struct hclge_get_fd_mode_cmd { - u8 mode; - u8 enable; - u8 rsv[22]; -}; +typedef void (*btf_trace_rpcb_unregister)(void *, u32, u32, const char *); -struct hclge_get_fd_allocation_cmd { - __le32 stage1_entry_num; - __le32 stage2_entry_num; - __le16 stage1_counter_num; - __le16 stage2_counter_num; - u8 rsv[12]; -}; +typedef void (*btf_trace_rpc_tls_unavailable)(void *, const struct rpc_clnt *, const struct rpc_xprt *); -struct hclge_set_fd_key_config_cmd { - u8 stage; - u8 key_select; - u8 inner_sipv6_word_en; - u8 inner_dipv6_word_en; - u8 outer_sipv6_word_en; - u8 outer_dipv6_word_en; - u8 rsv1[2]; - __le32 tuple_mask; - __le32 meta_data_mask; - u8 rsv2[8]; -}; +typedef void (*btf_trace_rpc_tls_not_started)(void *, const struct rpc_clnt *, const struct rpc_xprt *); -struct hclge_sfp_info_cmd { - __le32 speed; - u8 query_type; - u8 active_fec; - u8 autoneg; - u8 autoneg_ability; - __le32 speed_ability; - __le32 module_type; - u8 fec_ability; - u8 lane_num; - u8 rsv[6]; -}; +typedef void (*btf_trace_svc_xdr_recvfrom)(void *, const struct xdr_buf *); -struct hclge_vf_rst_cmd { - u8 dest_vfid; - u8 vf_rst; - u8 rsv[22]; -}; +typedef void (*btf_trace_svc_xdr_sendto)(void *, __be32, const struct xdr_buf *); -struct hclge_pf_rst_sync_cmd { - u8 all_vf_ready; - u8 rsv[23]; -}; +typedef void (*btf_trace_svc_authenticate)(void *, const struct svc_rqst *, enum svc_auth_status); -struct hclge_mac_vlan_switch_cmd { - u8 roce_sel; - u8 rsv1[3]; - __le32 func_id; - u8 switch_param; - u8 rsv2[3]; - u8 param_mask; - u8 rsv3[11]; -}; +typedef void (*btf_trace_svc_process)(void *, const struct svc_rqst *, const char *); -struct hclge_wol_cfg_cmd { - __le32 wake_on_lan_mode; - u8 sopass[6]; - u8 sopass_size; - u8 rsv[13]; -}; +typedef void (*btf_trace_svc_defer)(void *, const struct svc_rqst *); -struct hclge_pf_rst_done_cmd { - u8 pf_rst_done; - u8 rsv[23]; -}; +typedef void (*btf_trace_svc_drop)(void *, const struct svc_rqst *); -struct hclge_link_status_cmd { - u8 status; - u8 rsv[23]; -}; +typedef void (*btf_trace_svc_send)(void *, const struct svc_rqst *, int); -struct hclge_fd_user_def_cfg_cmd { - __le16 ol2_cfg; - __le16 l2_cfg; - __le16 ol3_cfg; - __le16 l3_cfg; - __le16 ol4_cfg; - __le16 l4_cfg; - u8 rsv[12]; -}; +typedef void (*btf_trace_svc_replace_page_err)(void *, const struct svc_rqst *); -struct hclge_fd_ad_config_cmd { - u8 stage; - u8 rsv1[3]; - __le32 index; - __le64 ad_data; - u8 rsv2[8]; -}; +typedef void (*btf_trace_svc_stats_latency)(void *, const struct svc_rqst *); -struct hclge_query_fec_stats_cmd { - __le32 rs_fec_corr_blocks; - __le32 rs_fec_uncorr_blocks; - __le32 rs_fec_error_blocks; - u8 base_r_lane_num; - u8 rsv[3]; - __le32 base_r_fec_corr_blocks; - __le32 base_r_fec_uncorr_blocks; -}; +typedef void (*btf_trace_svc_xprt_create_err)(void *, const char *, const char *, struct sockaddr *, size_t, const struct svc_xprt *); -struct hclge_query_wol_supported_cmd { - __le32 supported_wake_mode; - u8 rsv[20]; -}; +typedef void (*btf_trace_svc_xprt_enqueue)(void *, const struct svc_xprt *, unsigned long); -struct hclge_set_led_state_cmd { - u8 rsv1[3]; - u8 locate_led_config; - u8 rsv2[20]; -}; +typedef void (*btf_trace_svc_xprt_dequeue)(void *, const struct svc_rqst *); -struct hclge_sfp_info_bd0_cmd { - __le16 offset; - __le16 read_len; - u8 data[20]; -}; +typedef void (*btf_trace_svc_xprt_no_write_space)(void *, const struct svc_xprt *); -struct hclge_phy_link_ksetting_0_cmd { - __le32 speed; - u8 duplex; - u8 autoneg; - u8 eth_tp_mdix; - u8 eth_tp_mdix_ctrl; - u8 port; - u8 transceiver; - u8 phy_address; - u8 rsv; - __le32 supported; - __le32 advertising; - __le32 lp_advertising; -}; +typedef void (*btf_trace_svc_xprt_close)(void *, const struct svc_xprt *); -struct hclge_phy_link_ksetting_1_cmd { - u8 master_slave_cfg; - u8 master_slave_state; - u8 rsv[22]; -}; +typedef void (*btf_trace_svc_xprt_detach)(void *, const struct svc_xprt *); -struct hclge_waterline { - u32 low; - u32 high; -}; +typedef void (*btf_trace_svc_xprt_free)(void *, const struct svc_xprt *); -struct hclge_priv_buf { - struct hclge_waterline wl; - u32 buf_size; - u32 tx_buf_size; - u32 enable; -}; +typedef void (*btf_trace_svc_tls_start)(void *, const struct svc_xprt *); -struct hclge_tc_thrd { - u32 low; - u32 high; -}; +typedef void (*btf_trace_svc_tls_upcall)(void *, const struct svc_xprt *); -struct hclge_shared_buf { - struct hclge_waterline self; - struct hclge_tc_thrd tc_thrd[8]; - u32 buf_size; -}; +typedef void (*btf_trace_svc_tls_unavailable)(void *, const struct svc_xprt *); -struct hclge_pkt_buf_alloc { - struct hclge_priv_buf priv_buf[8]; - struct hclge_shared_buf s_buf; -}; +typedef void (*btf_trace_svc_tls_not_started)(void *, const struct svc_xprt *); -struct hclge_mac_vlan_tbl_entry_cmd { - u8 flags; - u8 resp_code; - __le16 vlan_tag; - __le32 mac_addr_hi32; - __le16 mac_addr_lo16; - __le16 rsv1; - u8 entry_type; - u8 mc_mac_en; - __le16 egress_port; - __le16 egress_queue; - u8 rsv2[6]; -}; +typedef void (*btf_trace_svc_tls_timed_out)(void *, const struct svc_xprt *); -struct hclge_cfg { - u8 tc_num; - u8 vlan_fliter_cap; - u16 tqp_desc_num; - u16 rx_buf_len; - u16 vf_rss_size_max; - u16 pf_rss_size_max; - u8 phy_addr; - u8 media_type; - u8 mac_addr[6]; - u8 default_speed; - u32 numa_node_map; - u32 tx_spare_buf_size; - u16 speed_ability; - u16 umv_space; -}; +typedef void (*btf_trace_svc_xprt_accept)(void *, const struct svc_xprt *, const char *); -struct hclge_fd_ad_data { - u16 ad_id; - u8 drop_packet; - u8 forward_to_direct_queue; - u16 queue_id; - u8 use_counter; - u8 counter_id; - u8 use_next_stage; - u8 write_rule_id_to_bd; - u8 next_input_key; - u16 rule_id; - u16 tc_size; - u8 override_tc; -}; +typedef void (*btf_trace_svc_wake_up)(void *, int); -enum usb_led_event { - USB_LED_EVENT_HOST = 0, - USB_LED_EVENT_GADGET = 1, -}; +typedef void (*btf_trace_svc_alloc_arg_err)(void *, unsigned int, unsigned int); -enum dwc2_hsotg_dmamode { - S3C_HSOTG_DMA_NONE = 0, - S3C_HSOTG_DMA_ONLY = 1, - S3C_HSOTG_DMA_DRV = 2, -}; +typedef void (*btf_trace_svc_defer_drop)(void *, const struct svc_deferred_req *); -struct dwc2_hsotg_plat { - enum dwc2_hsotg_dmamode dma; - unsigned int is_osc: 1; - int phy_type; - int (*phy_init)(struct platform_device *, int); - int (*phy_exit)(struct platform_device *, int); -}; +typedef void (*btf_trace_svc_defer_queue)(void *, const struct svc_deferred_req *); -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; -}; +typedef void (*btf_trace_svc_defer_recv)(void *, const struct svc_deferred_req *); -enum synaptics_pkt_type { - SYN_NEWABS = 0, - SYN_NEWABS_STRICT = 1, - SYN_NEWABS_RELAXED = 2, - SYN_OLDABS = 3, -}; +typedef void (*btf_trace_svcsock_new)(void *, const void *, const struct socket *); -enum rmi_sensor_type { - rmi_sensor_default = 0, - rmi_sensor_touchscreen = 1, - rmi_sensor_touchpad = 2, -}; +typedef void (*btf_trace_svcsock_free)(void *, const void *, const struct socket *); -enum rmi_reg_state { - RMI_REG_STATE_DEFAULT = 0, - RMI_REG_STATE_OFF = 1, - RMI_REG_STATE_ON = 2, -}; +typedef void (*btf_trace_svcsock_marker)(void *, const struct svc_xprt *, __be32); -enum { - SYNAPTICS_INTERTOUCH_NOT_SET = -1, - SYNAPTICS_INTERTOUCH_OFF = 0, - SYNAPTICS_INTERTOUCH_ON = 1, -}; +typedef void (*btf_trace_svcsock_udp_send)(void *, const struct svc_xprt *, ssize_t); -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; -}; +typedef void (*btf_trace_svcsock_udp_recv)(void *, const struct svc_xprt *, ssize_t); -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); -}; +typedef void (*btf_trace_svcsock_udp_recv_err)(void *, const struct svc_xprt *, ssize_t); -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; -}; +typedef void (*btf_trace_svcsock_tcp_send)(void *, const struct svc_xprt *, ssize_t); -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; -}; +typedef void (*btf_trace_svcsock_tcp_recv)(void *, const struct svc_xprt *, ssize_t); -struct rmi_f01_power_management { - enum rmi_reg_state nosleep; - u8 wakeup_threshold; - u8 doze_holdoff; - u8 doze_interval; -}; +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); -struct rmi_gpio_data { - bool buttonpad; - bool trackstick_buttons; - bool disable; -}; +typedef void (*btf_trace_svcsock_tcp_state)(void *, const struct svc_xprt *, const struct socket *); -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; -}; +typedef void (*btf_trace_svcsock_accept_err)(void *, const struct svc_xprt *, const char *, long); -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; -}; +typedef void (*btf_trace_svcsock_getpeername_err)(void *, const struct svc_xprt *, const char *, long); -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_cache_entry_expired)(void *, const struct cache_detail *, const struct cache_head *); -struct pxa_reg_layout { - u32 ibmr; - u32 idbr; - u32 icr; - u32 isr; - u32 isar; - u32 ilcr; - u32 iwcr; - u32 fm; - u32 hs; -}; +typedef void (*btf_trace_cache_entry_upcall)(void *, const struct cache_detail *, const struct cache_head *); -enum pxa_i2c_types { - REGS_PXA2XX = 0, - REGS_PXA3XX = 1, - REGS_CE4100 = 2, - REGS_PXA910 = 3, - REGS_A3700 = 4, -}; +typedef void (*btf_trace_cache_entry_update)(void *, const struct cache_detail *, const struct cache_head *); -struct pxa_i2c { - spinlock_t lock; - wait_queue_head_t wait; - struct i2c_msg *msg; - unsigned int msg_num; - unsigned int msg_idx; - unsigned int msg_ptr; - unsigned int slave_addr; - unsigned int req_slave_addr; - struct i2c_adapter adap; - struct clk *clk; - unsigned int irqlogidx; - u32 isrlog[32]; - u32 icrlog[32]; - void *reg_base; - void *reg_ibmr; - void *reg_idbr; - void *reg_icr; - void *reg_isr; - void *reg_isar; - void *reg_ilcr; - void *reg_iwcr; - unsigned long iobase; - unsigned long iosize; - int irq; - unsigned int use_pio: 1; - unsigned int fast_mode: 1; - unsigned int high_mode: 1; - unsigned char master_code; - unsigned long rate; - bool highmode_enter; - u32 fm_mask; - u32 hs_mask; - struct i2c_bus_recovery_info recovery; -}; +typedef void (*btf_trace_cache_entry_make_negative)(void *, const struct cache_detail *, const struct cache_head *); -struct i2c_pxa_platform_data { - unsigned int class; - unsigned int use_pio: 1; - unsigned int fast_mode: 1; - unsigned int high_mode: 1; - unsigned char master_code; - unsigned long rate; -}; +typedef void (*btf_trace_cache_entry_no_listener)(void *, const struct cache_detail *, const struct cache_head *); -struct hisi_thermal_sensor; +typedef void (*btf_trace_svc_register)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); -struct hisi_thermal_data; +typedef void (*btf_trace_svc_noregister)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); -struct hisi_thermal_ops { - int (*get_temp)(struct hisi_thermal_sensor *); - int (*enable_sensor)(struct hisi_thermal_sensor *); - int (*disable_sensor)(struct hisi_thermal_sensor *); - int (*irq_handler)(struct hisi_thermal_sensor *); - int (*probe)(struct hisi_thermal_data *); -}; +typedef void (*btf_trace_svc_unregister)(void *, const char *, const u32, int); -struct hisi_thermal_sensor { - struct hisi_thermal_data *data; - struct thermal_zone_device *tzd; - const char *irq_name; - uint32_t id; - uint32_t thres_temp; +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 hisi_thermal_data { - const struct hisi_thermal_ops *ops; - struct hisi_thermal_sensor *sensor; - struct platform_device *pdev; - struct clk *clk; - void *regs; - int nr_sensors; +struct trace_event_raw_rpc_clnt_class { + struct trace_entry ent; + unsigned int client_id; + char __data[0]; }; -struct mmc_op_cond_busy_data { - struct mmc_host *host; - u32 ocr; - struct mmc_command *cmd; +struct trace_event_raw_rpc_clnt_new { + struct trace_entry ent; + unsigned int client_id; + unsigned long xprtsec; + unsigned long flags; + u32 __data_loc_program; + u32 __data_loc_server; + u32 __data_loc_addr; + u32 __data_loc_port; + char __data[0]; }; -struct mmc_busy_data { - struct mmc_card *card; - bool retry_crc_err; - enum mmc_busy_cmd busy_cmd; +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]; }; -enum { - EVENT_CMD_COMPLETE = 0, - EVENT_XFER_COMPLETE = 1, - EVENT_DATA_COMPLETE = 2, - EVENT_DATA_ERROR = 3, +struct trace_event_raw_rpc_clnt_clone_err { + struct trace_entry ent; + unsigned int client_id; + int error; + char __data[0]; }; -enum { - TRANS_MODE_PIO = 0, - TRANS_MODE_IDMAC = 1, - TRANS_MODE_EDMAC = 2, +struct trace_event_raw_rpc_task_status { + struct trace_entry ent; + unsigned int task_id; + unsigned int client_id; + int status; + char __data[0]; }; -enum dw_mci_cookie { - COOKIE_UNMAPPED___3 = 0, - COOKIE_PRE_MAPPED___3 = 1, - COOKIE_MAPPED___3 = 2, +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 idmac_desc_64addr { - u32 des0; - u32 des1; - u32 des2; - u32 des3; - u32 des4; - u32 des5; - u32 des6; - u32 des7; +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 idmac_desc { - __le32 des0; - __le32 des1; - __le32 des2; - __le32 des3; +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]; }; -enum scmi_base_protocol_cmd { - BASE_DISCOVER_VENDOR = 3, - BASE_DISCOVER_SUB_VENDOR = 4, - BASE_DISCOVER_IMPLEMENT_VERSION = 5, - BASE_DISCOVER_LIST_PROTOCOLS = 6, - BASE_DISCOVER_AGENT = 7, - BASE_NOTIFY_ERRORS = 8, - BASE_SET_DEVICE_PERMISSIONS = 9, - BASE_SET_PROTOCOL_PERMISSIONS = 10, - BASE_RESET_AGENT_CONFIGURATION = 11, +struct trace_event_raw_rpc_failure { + struct trace_entry ent; + unsigned int task_id; + unsigned int client_id; + char __data[0]; }; -struct scmi_msg_resp_base_attributes { - u8 num_protocols; - u8 num_agents; - __le16 reserved; +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 scmi_msg_resp_base_discover_agent { - __le32 agent_id; - u8 name[16]; +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 scmi_msg_base_error_notify { - __le32 event_control; +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 scmi_base_error_notify_payld { - __le32 agent_id; - __le32 error_status; - __le64 msg_reports[1024]; +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 scmi_base_error_report { - ktime_t timestamp; - unsigned int agent_id; - bool fatal; - unsigned int cmd_count; - unsigned long long reports[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 imx_sc_chan { - struct imx_sc_ipc *sc_ipc; - struct mbox_client cl; - struct mbox_chan *ch; - int idx; - struct completion tx_done; +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 imx_sc_ipc { - struct imx_sc_chan chans[8]; - struct device *dev; - struct mutex lock; - struct completion done; - bool fast_ipc; - u32 *msg; - u8 rx_size; - u8 count; +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]; }; -enum imx_sc_error_codes { - IMX_SC_ERR_NONE = 0, - IMX_SC_ERR_VERSION = 1, - IMX_SC_ERR_CONFIG = 2, - IMX_SC_ERR_PARM = 3, - IMX_SC_ERR_NOACCESS = 4, - IMX_SC_ERR_LOCKED = 5, - IMX_SC_ERR_UNAVAILABLE = 6, - IMX_SC_ERR_NOTFOUND = 7, - IMX_SC_ERR_NOPOWER = 8, - IMX_SC_ERR_IPC = 9, - IMX_SC_ERR_BUSY = 10, - IMX_SC_ERR_FAIL = 11, - IMX_SC_ERR_LAST = 12, +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 of_bus___2 { - void (*count_cells)(const void *, int, int *, int *); - u64 (*map)(__be32 *, const __be32 *, int, int, int); - int (*translate)(__be32 *, u64, int); +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 of_intc_desc { - struct list_head list; - of_irq_init_cb_t irq_init_cb; - struct device_node *dev; - struct device_node *interrupt_parent; +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 tegra_hsp_channel; - -struct tegra_hsp_sm_ops { - void (*send)(struct tegra_hsp_channel *, void *); - void (*recv)(struct tegra_hsp_channel *); +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 tegra_hsp; - -struct tegra_hsp_channel { - struct tegra_hsp *hsp; - struct mbox_chan *chan; - void *regs; +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 tegra_hsp_soc; - -struct tegra_hsp_mailbox; - -struct tegra_hsp { - struct device *dev; - const struct tegra_hsp_soc *soc; - struct mbox_controller mbox_db; - struct mbox_controller mbox_sm; - void *regs; - unsigned int doorbell_irq; - unsigned int *shared_irqs; - unsigned int shared_irq; - unsigned int num_sm; - unsigned int num_as; - unsigned int num_ss; - unsigned int num_db; - unsigned int num_si; - spinlock_t lock; - struct lock_class_key lock_key; - struct list_head doorbells; - struct tegra_hsp_mailbox *mailboxes; - unsigned long mask; +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 tegra_hsp_db_map; +struct trace_event_raw_xprt_ping { + struct trace_entry ent; + int status; + u32 __data_loc_addr; + u32 __data_loc_port; + char __data[0]; +}; -struct tegra_hsp_soc { - const struct tegra_hsp_db_map *map; - bool has_per_mb_ie; - bool has_128_bit_mb; - unsigned int reg_stride; +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 tegra_hsp_db_map { - const char *name; - unsigned int master; - unsigned int index; +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 tegra_hsp_mailbox { - struct tegra_hsp_channel channel; - const struct tegra_hsp_sm_ops *ops; - unsigned int index; - bool producer; +struct trace_event_raw_xprt_reserve { + struct trace_entry ent; + unsigned int task_id; + unsigned int client_id; + u32 xid; + char __data[0]; }; -struct tegra_hsp_doorbell { - struct tegra_hsp_channel channel; - struct list_head list; - const char *name; - unsigned int master; - unsigned int index; +struct trace_event_raw_xs_data_ready { + struct trace_entry ent; + u32 __data_loc_addr; + u32 __data_loc_port; + char __data[0]; }; -struct qfprom_soc_data { - u32 accel_value; - u32 qfprom_blow_timer_value; - u32 qfprom_blow_set_freq; - int qfprom_blow_uV; +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 qfprom_soc_compatible_data { - const struct nvmem_keepout *keepout; - unsigned int nkeepout; +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 qfprom_priv { - void *qfpraw; - void *qfpconf; - void *qfpcorrected; - void *qfpsecurity; - struct device *dev; - struct clk *secclk; - struct regulator *vcc; - const struct qfprom_soc_data *soc_data; +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 qfprom_touched_values { - unsigned long clk_rate; - u32 accel_val; - u32 timer_val; +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 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; +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 snd_soc_tplg_kcontrol_ops { - u32 id; - int (*get)(struct snd_kcontrol *, struct snd_ctl_elem_value *); - int (*put)(struct snd_kcontrol *, struct snd_ctl_elem_value *); - int (*info)(struct snd_kcontrol *, struct snd_ctl_elem_info *); +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 soc_tplg_map { - int uid; - int kid; +struct trace_event_raw_rpcb_unregister { + struct trace_entry ent; + unsigned int program; + unsigned int version; + u32 __data_loc_netid; + char __data[0]; }; -struct snd_soc_tplg_hdr { - __le32 magic; - __le32 abi; - __le32 version; - __le32 type; - __le32 size; - __le32 vendor_type; - __le32 payload_size; - __le32 index; - __le32 count; +struct trace_event_raw_rpc_tls_class { + struct trace_entry ent; + unsigned long requested_policy; + u32 version; + u32 __data_loc_servername; + u32 __data_loc_progname; + char __data[0]; }; -struct snd_soc_tplg_io_ops { - __le32 get; - __le32 put; - __le32 info; +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 snd_soc_tplg_tlv_dbscale { - __le32 min; - __le32 step; - __le32 mute; +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 snd_soc_tplg_ctl_tlv { - __le32 size; - __le32 type; - union { - __le32 data[32]; - struct snd_soc_tplg_tlv_dbscale scale; - }; +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 snd_soc_tplg_ctl_hdr { - __le32 size; - __le32 type; - char name[44]; - __le32 access; - struct snd_soc_tplg_io_ops ops; - struct snd_soc_tplg_ctl_tlv tlv; +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 snd_soc_tplg_channel { - __le32 size; - __le32 reg; - __le32 shift; - __le32 id; +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 snd_soc_tplg_vendor_uuid_elem { - __le32 token; - char uuid[16]; +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 snd_soc_tplg_vendor_value_elem { - __le32 token; - __le32 value; +struct trace_event_raw_svc_replace_page_err { + struct trace_entry ent; + u32 __data_loc_server; + u32 __data_loc_client; + unsigned int netns_ino; + u32 xid; + const void *begin; + const void *respages; + const void *nextpage; + char __data[0]; }; -struct snd_soc_tplg_vendor_string_elem { - __le32 token; - char string[44]; +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 snd_soc_tplg_vendor_array { - __le32 size; - __le32 type; - __le32 num_elems; - union { - struct { - struct {} __empty_uuid; - struct snd_soc_tplg_vendor_uuid_elem uuid[0]; - }; - struct { - struct {} __empty_value; - struct snd_soc_tplg_vendor_value_elem value[0]; - }; - struct { - struct {} __empty_string; - struct snd_soc_tplg_vendor_string_elem string[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 snd_soc_tplg_private { - __le32 size; - union { - struct { - struct {} __empty_data; - char data[0]; - }; - struct { - struct {} __empty_array; - struct snd_soc_tplg_vendor_array array[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; + char __data[0]; }; -struct snd_soc_tplg_mixer_control { - struct snd_soc_tplg_ctl_hdr hdr; - __le32 size; - __le32 min; - __le32 max; - __le32 platform_max; - __le32 invert; - __le32 num_channels; - struct snd_soc_tplg_channel channel[8]; - struct snd_soc_tplg_private priv; +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 snd_soc_tplg_bytes_control { - struct snd_soc_tplg_ctl_hdr hdr; - __le32 size; - __le32 max; - __le32 mask; - __le32 base; - __le32 num_regs; - struct snd_soc_tplg_io_ops ext_ops; - struct snd_soc_tplg_private priv; +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 snd_soc_tplg_enum_control { - struct snd_soc_tplg_ctl_hdr hdr; - __le32 size; - __le32 num_channels; - struct snd_soc_tplg_channel channel[8]; - __le32 items; - __le32 mask; - __le32 count; - char texts[704]; - __le32 values[176]; - struct snd_soc_tplg_private priv; +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 snd_soc_tplg_dapm_graph_elem { - char sink[44]; - char control[44]; - char source[44]; +struct trace_event_raw_svc_wake_up { + struct trace_entry ent; + int pid; + char __data[0]; }; -struct snd_soc_tplg_dapm_widget { - __le32 size; - __le32 id; - char name[44]; - char sname[44]; - __le32 reg; - __le32 shift; - __le32 mask; - __le32 subseq; - __le32 invert; - __le32 ignore_suspend; - __le16 event_flags; - __le16 event_type; - __le32 num_kcontrols; - struct snd_soc_tplg_private priv; +struct trace_event_raw_svc_alloc_arg_err { + struct trace_entry ent; + unsigned int requested; + unsigned int allocated; + char __data[0]; }; -struct snd_soc_tplg_stream { - __le32 size; - char name[44]; - __le64 format; - __le32 rate; - __le32 period_bytes; - __le32 buffer_bytes; - __le32 channels; +struct trace_event_raw_svc_deferred_event { + struct trace_entry ent; + const void *dr; + u32 xid; + u32 __data_loc_addr; + char __data[0]; }; -struct snd_soc_tplg_stream_caps { - __le32 size; - char name[44]; - __le64 formats; - __le32 rates; - __le32 rate_min; - __le32 rate_max; - __le32 channels_min; - __le32 channels_max; - __le32 periods_min; - __le32 periods_max; - __le32 period_size_min; - __le32 period_size_max; - __le32 buffer_size_min; - __le32 buffer_size_max; - __le32 sig_bits; +struct trace_event_raw_svcsock_lifetime_class { + struct trace_entry ent; + unsigned int netns_ino; + const void *svsk; + const void *sk; + unsigned long type; + unsigned long family; + unsigned long state; + char __data[0]; }; -struct snd_soc_tplg_pcm { - __le32 size; - char pcm_name[44]; - char dai_name[44]; - __le32 pcm_id; - __le32 dai_id; - __le32 playback; - __le32 capture; - __le32 compress; - struct snd_soc_tplg_stream stream[8]; - __le32 num_streams; - struct snd_soc_tplg_stream_caps caps[2]; - __le32 flag_mask; - __le32 flags; - struct snd_soc_tplg_private priv; -} __attribute__((packed)); +struct trace_event_raw_svcsock_marker { + struct trace_entry ent; + unsigned int length; + bool last; + u32 __data_loc_addr; + char __data[0]; +}; -struct snd_soc_tplg_stream_caps_v4 { - __le32 size; - char name[44]; - __le64 formats; - __le32 rates; - __le32 rate_min; - __le32 rate_max; - __le32 channels_min; - __le32 channels_max; - __le32 periods_min; - __le32 periods_max; - __le32 period_size_min; - __le32 period_size_max; - __le32 buffer_size_min; - __le32 buffer_size_max; -} __attribute__((packed)); +struct trace_event_raw_svcsock_class { + struct trace_entry ent; + ssize_t result; + unsigned long flags; + u32 __data_loc_addr; + char __data[0]; +}; -struct snd_soc_tplg_pcm_v4 { - __le32 size; - char pcm_name[44]; - char dai_name[44]; - __le32 pcm_id; - __le32 dai_id; - __le32 playback; - __le32 capture; - __le32 compress; - struct snd_soc_tplg_stream stream[8]; - __le32 num_streams; - struct snd_soc_tplg_stream_caps_v4 caps[2]; -} __attribute__((packed)); +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 snd_soc_tplg_dai { - __le32 size; - char dai_name[44]; - __le32 dai_id; - __le32 playback; - __le32 capture; - struct snd_soc_tplg_stream_caps caps[2]; - __le32 flag_mask; - __le32 flags; - struct snd_soc_tplg_private priv; -} __attribute__((packed)); +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 snd_soc_tplg_hw_config { - __le32 size; - __le32 id; - __le32 fmt; - __u8 clock_gated; - __u8 invert_bclk; - __u8 invert_fsync; - __u8 bclk_provider; - __u8 fsync_provider; - __u8 mclk_direction; - __le16 reserved; - __le32 mclk_rate; - __le32 bclk_rate; - __le32 fsync_rate; - __le32 tdm_slots; - __le32 tdm_slot_width; - __le32 tx_slots; - __le32 rx_slots; - __le32 tx_channels; - __le32 tx_chanmap[8]; - __le32 rx_channels; - __le32 rx_chanmap[8]; +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 snd_soc_tplg_link_config { - __le32 size; - __le32 id; - char name[44]; - char stream_name[44]; - struct snd_soc_tplg_stream stream[8]; - __le32 num_streams; - struct snd_soc_tplg_hw_config hw_config[8]; - __le32 num_hw_configs; - __le32 default_hw_config_id; - __le32 flag_mask; - __le32 flags; - struct snd_soc_tplg_private priv; +struct trace_event_raw_cache_event { + struct trace_entry ent; + const struct cache_head *h; + u32 __data_loc_name; + char __data[0]; }; -struct snd_soc_tplg_link_config_v4 { - __le32 size; - __le32 id; - struct snd_soc_tplg_stream stream[8]; - __le32 num_streams; -} __attribute__((packed)); +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 snd_soc_tplg_manifest { - __le32 size; - __le32 control_elems; - __le32 widget_elems; - __le32 graph_elems; - __le32 pcm_elems; - __le32 dai_link_elems; - __le32 dai_elems; - __le32 reserved[20]; - struct snd_soc_tplg_private priv; +struct trace_event_raw_svc_unregister { + struct trace_entry ent; + u32 version; + int error; + u32 __data_loc_program; + char __data[0]; }; -struct snd_soc_tplg_manifest_v4 { - __le32 size; - __le32 control_elems; - __le32 widget_elems; - __le32 graph_elems; - __le32 pcm_elems; - __le32 dai_link_elems; - struct snd_soc_tplg_private priv; +struct trace_event_data_offsets_rpc_clnt_new { + u32 program; + u32 server; + u32 addr; + u32 port; }; -struct snd_soc_tplg_bytes_ext_ops; +struct trace_event_data_offsets_rpc_clnt_new_err { + u32 program; + u32 server; +}; -struct snd_soc_tplg_ops; +struct trace_event_data_offsets_rpc_request { + u32 progname; + u32 procname; +}; -struct soc_tplg { - const struct firmware *fw; - const u8 *pos; - const u8 *hdr_pos; - unsigned int pass; - struct device *dev; - struct snd_soc_component *comp; - u32 index; - const struct snd_soc_tplg_kcontrol_ops *io_ops; - int io_ops_count; - const struct snd_soc_tplg_bytes_ext_ops *bytes_ext_ops; - int bytes_ext_ops_count; - struct snd_soc_tplg_ops *ops; +struct trace_event_data_offsets_rpc_task_queued { + u32 q_name; }; -struct snd_soc_tplg_bytes_ext_ops { - u32 id; - int (*get)(struct snd_kcontrol *, unsigned int __attribute__((btf_type_tag("user"))) *, unsigned int); - int (*put)(struct snd_kcontrol *, const unsigned int __attribute__((btf_type_tag("user"))) *, unsigned int); +struct trace_event_data_offsets_rpc_reply_event { + u32 progname; + u32 procname; + u32 servername; }; -struct snd_soc_tplg_ops { - int (*control_load)(struct snd_soc_component *, int, struct snd_kcontrol_new *, struct snd_soc_tplg_ctl_hdr *); - int (*control_unload)(struct snd_soc_component *, struct snd_soc_dobj *); - int (*dapm_route_load)(struct snd_soc_component *, int, struct snd_soc_dapm_route *); - int (*dapm_route_unload)(struct snd_soc_component *, struct snd_soc_dobj *); - int (*widget_load)(struct snd_soc_component *, int, struct snd_soc_dapm_widget *, struct snd_soc_tplg_dapm_widget *); - int (*widget_ready)(struct snd_soc_component *, int, struct snd_soc_dapm_widget *, struct snd_soc_tplg_dapm_widget *); - int (*widget_unload)(struct snd_soc_component *, struct snd_soc_dobj *); - int (*dai_load)(struct snd_soc_component *, int, struct snd_soc_dai_driver *, struct snd_soc_tplg_pcm *, struct snd_soc_dai *); - int (*dai_unload)(struct snd_soc_component *, struct snd_soc_dobj *); - int (*link_load)(struct snd_soc_component *, int, struct snd_soc_dai_link *, struct snd_soc_tplg_link_config *); - int (*link_unload)(struct snd_soc_component *, struct snd_soc_dobj *); - int (*vendor_load)(struct snd_soc_component *, int, struct snd_soc_tplg_hdr *); - int (*vendor_unload)(struct snd_soc_component *, struct snd_soc_tplg_hdr *); - int (*complete)(struct snd_soc_component *); - int (*manifest)(struct snd_soc_component *, int, struct snd_soc_tplg_manifest *); - const struct snd_soc_tplg_kcontrol_ops *io_ops; - int io_ops_count; - const struct snd_soc_tplg_bytes_ext_ops *bytes_ext_ops; - int bytes_ext_ops_count; +struct trace_event_data_offsets_rpc_stats_latency { + u32 progname; + u32 procname; }; -struct snd_soc_tplg_widget_events { - u16 type; - int (*event_handler)(struct snd_soc_dapm_widget *, struct snd_kcontrol *, int); +struct trace_event_data_offsets_rpc_xdr_overflow { + u32 progname; + u32 procedure; }; -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, +struct trace_event_data_offsets_rpc_xdr_alignment { + u32 progname; + u32 procedure; }; -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, +struct trace_event_data_offsets_rpc_xprt_lifetime_class { + u32 addr; + u32 port; }; -enum { - NETDEV_NLGRP_MGMT = 0, +struct trace_event_data_offsets_rpc_xprt_event { + u32 addr; + u32 port; }; -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 trace_event_data_offsets_xprt_retransmit { + u32 progname; + u32 procname; }; -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; +struct trace_event_data_offsets_xprt_ping { + u32 addr; + u32 port; }; -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 trace_event_data_offsets_xs_data_ready { + u32 addr; + u32 port; }; -struct tsinfo_reply_data { - struct ethnl_reply_data base; - struct ethtool_ts_info ts_info; +struct trace_event_data_offsets_xs_stream_read_data { + u32 addr; + u32 port; }; -enum nexthop_event_type { - NEXTHOP_EVENT_DEL = 0, - NEXTHOP_EVENT_REPLACE = 1, - NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, - NEXTHOP_EVENT_BUCKET_REPLACE = 3, +struct trace_event_data_offsets_xs_stream_read_request { + u32 addr; + u32 port; }; -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, +struct trace_event_data_offsets_rpcb_getport { + u32 servername; }; -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, +struct trace_event_data_offsets_rpcb_register { + u32 addr; + u32 netid; }; -enum { - NEXTHOP_GRP_TYPE_MPATH = 0, - NEXTHOP_GRP_TYPE_RES = 1, - __NEXTHOP_GRP_TYPE_MAX = 2, +struct trace_event_data_offsets_rpcb_unregister { + u32 netid; }; -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, +struct trace_event_data_offsets_rpc_tls_class { + u32 servername; + u32 progname; }; -enum { - NHA_RES_BUCKET_UNSPEC = 0, - NHA_RES_BUCKET_PAD = 0, - NHA_RES_BUCKET_INDEX = 1, - NHA_RES_BUCKET_IDLE_TIME = 2, - NHA_RES_BUCKET_NH_ID = 3, - __NHA_RES_BUCKET_MAX = 4, +struct trace_event_data_offsets_svc_authenticate { + u32 server; + u32 client; }; -struct nh_notifier_single_info; +struct trace_event_data_offsets_svc_process { + u32 service; + u32 procedure; + u32 addr; +}; -struct nh_notifier_grp_info; +struct trace_event_data_offsets_svc_rqst_event { + u32 server; + u32 client; +}; -struct nh_notifier_res_table_info; +struct trace_event_data_offsets_svc_rqst_status { + u32 server; + u32 client; +}; -struct nh_notifier_res_bucket_info; +struct trace_event_data_offsets_svc_replace_page_err { + u32 server; + u32 client; +}; -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 trace_event_data_offsets_svc_stats_latency { + u32 server; + u32 client; + u32 procedure; }; -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 trace_event_data_offsets_svc_xprt_create_err { + u32 program; + u32 protocol; + u32 addr; }; -struct nh_notifier_grp_entry_info { - u8 weight; - u32 id; - struct nh_notifier_single_info nh; +struct trace_event_data_offsets_svc_xprt_enqueue { + u32 server; + u32 client; }; -struct nh_notifier_grp_info { - u16 num_nh; - bool is_fdb; - struct nh_notifier_grp_entry_info nh_entries[0]; +struct trace_event_data_offsets_svc_xprt_dequeue { + u32 server; + u32 client; }; -struct nh_notifier_res_table_info { - u16 num_nh_buckets; - struct nh_notifier_single_info nhs[0]; +struct trace_event_data_offsets_svc_xprt_event { + u32 server; + u32 client; }; -struct nh_notifier_res_bucket_info { - u16 bucket_index; - unsigned int idle_timer_ms; - bool force; - struct nh_notifier_single_info old_nh; - struct nh_notifier_single_info new_nh; +struct trace_event_data_offsets_svc_xprt_accept { + u32 server; + u32 client; + u32 protocol; + u32 service; }; -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 trace_event_data_offsets_svc_deferred_event { + u32 addr; }; -struct nhmsg { - unsigned char nh_family; - unsigned char nh_scope; - unsigned char nh_protocol; - unsigned char resvd; - unsigned int nh_flags; +struct trace_event_data_offsets_svcsock_marker { + u32 addr; }; -struct nexthop_grp { - __u32 id; - __u8 weight; - __u8 resvd1; - __u16 resvd2; +struct trace_event_data_offsets_svcsock_class { + u32 addr; }; -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 trace_event_data_offsets_svcsock_tcp_recv_short { + u32 addr; }; -struct rtm_dump_nh_ctx { - u32 idx; +struct trace_event_data_offsets_svcsock_tcp_state { + u32 addr; }; -struct rtm_dump_res_bucket_ctx { - struct rtm_dump_nh_ctx nh; - u16 bucket_index; - u32 done_nh_idx; +struct trace_event_data_offsets_svcsock_accept_class { + u32 service; }; -struct rtm_dump_nexthop_bucket_data { - struct rtm_dump_res_bucket_ctx *ctx; - struct nh_dump_filter filter; +struct trace_event_data_offsets_cache_event { + u32 name; }; -struct rpcb_info { - u32 rpc_vers; - const struct rpc_procinfo *rpc_proc; +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_lifetime_class {}; + +enum hp_flags_bits { + HANDSHAKE_F_PROTO_NOTIFY = 0, }; 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, + HANDSHAKE_CMD_READY = 1, + HANDSHAKE_CMD_ACCEPT = 2, + HANDSHAKE_CMD_DONE = 3, + __HANDSHAKE_CMD_MAX = 4, + HANDSHAKE_CMD_MAX = 3, }; -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; +enum hn_flags_bits { + HANDSHAKE_F_NET_DRAINING = 0, }; -enum dns_payload_content_type { - DNS_PAYLOAD_IS_SERVER_LIST = 0, +struct handshake_net { + spinlock_t hn_lock; + int hn_pending; + int hn_pending_max; + struct list_head hn_requests; + unsigned long hn_flags; }; -struct dns_payload_header { - __u8 zero; - __u8 content; - __u8 version; +struct sys64_hook { + unsigned long esr_mask; + unsigned long esr_val; + void (*handler)(unsigned long, struct pt_regs *); }; -struct tlb_inv_context___2 { - u64 tcr; +enum dl_bw_request { + dl_bw_req_check_overflow = 0, + dl_bw_req_alloc = 1, + dl_bw_req_free = 2, }; -struct __user_cap_header_struct; +struct idle_timer { + struct hrtimer timer; + int done; +}; -typedef struct __user_cap_header_struct *cap_user_header_t; +typedef struct rt_rq *rt_rq_iter_t; -struct __user_cap_header_struct { - __u32 version; - int pid; +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 __user_cap_data_struct; +struct audit_fsnotify_mark { + dev_t dev; + unsigned long ino; + char *path; + struct fsnotify_mark mark; + struct audit_krule *rule; +}; -typedef struct __user_cap_data_struct __attribute__((btf_type_tag("user"))) *cap_user_data_t; +enum { + Blktrace_setup = 1, + Blktrace_running = 2, + Blktrace_stopped = 3, +}; -struct __user_cap_data_struct { - __u32 effective; - __u32 permitted; - __u32 inheritable; +enum blktrace_notify { + __BLK_TN_PROCESS = 0, + __BLK_TN_TIMESTAMP = 1, + __BLK_TN_MESSAGE = 2, + __BLK_TN_CGROUP = 256, }; -struct platform_s2idle_ops { - int (*begin)(); - int (*prepare)(); - int (*prepare_late)(); - void (*check)(); - bool (*wake)(); - void (*restore_early)(); - void (*restore)(); - void (*end)(); +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, }; -typedef void (*btf_trace_alarmtimer_suspend)(void *, ktime_t, int); +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; +}; -typedef void (*btf_trace_alarmtimer_fired)(void *, struct alarm *, ktime_t); +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; +}; -typedef void (*btf_trace_alarmtimer_start)(void *, struct alarm *, ktime_t); +struct blk_io_trace_remap { + __be32 device_from; + __be32 device_to; + __be64 sector_from; +}; -typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t); +typedef void blk_log_action_t(struct trace_iterator *, const char *, bool); -struct alarm_base { - spinlock_t lock; - struct timerqueue_head timerqueue; - ktime_t (*get_ktime)(); - void (*get_timespec)(struct timespec64 *); - clockid_t base_clockid; +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; }; -struct trace_event_raw_alarmtimer_suspend { - struct trace_entry ent; - s64 expires; - unsigned char alarm_type; - char __data[0]; +struct callchain_cpus_entries { + struct callback_head callback_head; + struct perf_callchain_entry *cpu_entries[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 swap_iocb { + struct kiocb iocb; + struct bio_vec bvec[32]; + int pages; + int len; }; -struct trace_event_data_offsets_alarmtimer_suspend {}; +enum { + PAGE_REPORTING_IDLE = 0, + PAGE_REPORTING_REQUESTED = 1, + PAGE_REPORTING_ACTIVE = 2, +}; -struct trace_event_data_offsets_alarm_class {}; +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 trace_mark { - unsigned long long val; - char sym; +struct iomap_readpage_ctx { + struct folio *cur_folio; + bool cur_folio_in_bio; + struct bio *bio; + struct readahead_control *rac; }; -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 iomap_folio_state { + spinlock_t state_lock; + unsigned int read_bytes_pending; + atomic_t write_bytes_pending; + unsigned long state[0]; }; -struct userstack_entry { - struct trace_entry ent; - unsigned int tgid; - unsigned long caller[8]; +typedef int (*iomap_punch_t)(struct inode *, loff_t, loff_t); + +struct iomap_writeback_ops; + +struct iomap_writepage_ctx { + struct iomap iomap; + struct iomap_ioend *ioend; + const struct iomap_writeback_ops *ops; }; -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 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); }; -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; +typedef struct ext2_dir_entry_2 ext2_dirent; + +enum Opt_errors { + Opt_errors_continue = 0, + Opt_errors_panic = 1, }; -struct timerlat_entry { - struct trace_entry ent; - unsigned int seqnum; - int context; - u64 timer_latency; +enum squashfs_param { + Opt_errors___2 = 0, + Opt_threads = 1, }; -struct bpf_iter__bpf_map { - union { - struct bpf_iter_meta *meta; - }; +struct squashfs_mount_opts { + enum Opt_errors errors; + const struct squashfs_decompressor_thread_ops *thread_ops; + int thread_num; +}; + +struct squashfs_super_block { + __le32 s_magic; + __le32 inodes; + __le32 mkfs_time; + __le32 block_size; + __le32 fragments; + __le16 compression; + __le16 block_log; + __le16 flags; + __le16 no_ids; + __le16 s_major; + __le16 s_minor; + __le64 root_inode; + __le64 bytes_used; + __le64 id_table_start; + __le64 xattr_id_table_start; + __le64 inode_table_start; + __le64 directory_table_start; + __le64 fragment_table_start; + __le64 lookup_table_start; +}; + +struct squashfs_xattr_id_table { + __le64 xattr_table_start; + __le32 xattr_ids; + __le32 unused; +}; + +struct nfs3_createdata { + struct rpc_message msg; union { - struct bpf_map *map; - }; + 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; }; -struct bpf_iter_seq_map_info { - u32 map_id; +struct crypto_istat_rng { + atomic64_t generate_cnt; + atomic64_t generate_tlen; + atomic64_t seed_cnt; + atomic64_t err_cnt; }; -enum bpf_struct_ops_state { - BPF_STRUCT_OPS_STATE_INIT = 0, - BPF_STRUCT_OPS_STATE_INUSE = 1, - BPF_STRUCT_OPS_STATE_TOBEFREE = 2, - BPF_STRUCT_OPS_STATE_READY = 3, +struct crypto_report_rng { + char type[64]; + unsigned int seedsize; }; -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 *); +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 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 msdos_partition { + u8 boot_ind; + u8 head; + u8 sector; + u8 cyl; + u8 sys_ind; + u8 end_head; + u8 end_sector; + u8 end_cyl; + __le32 start_sect; + __le32 nr_sects; }; -struct 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; +typedef __be16 csum_fn(void *, unsigned int); + +struct t10_pi_tuple { + __be16 guard_tag; + __be16 app_tag; + __be32 ref_tag; }; -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 crc64_pi_tuple { + __be64 guard_tag; + __be16 app_tag; + __u8 ref_tag[6]; }; -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 region { + unsigned int start; + unsigned int off; + unsigned int group_len; + unsigned int end; + unsigned int nbits; }; -struct bpf_struct_ops_link { - struct bpf_link link; - struct bpf_map __attribute__((btf_type_tag("rcu"))) *map; +union gic_base { + void *common_base; + void __attribute__((btf_type_tag("percpu"))) **percpu_base; }; -typedef void (*btf_trace_cma_release)(void *, const char *, unsigned long, const struct page *, unsigned long); +struct gic_chip_data___2 { + union gic_base dist_base; + union gic_base cpu_base; + void *raw_dist_base; + void *raw_cpu_base; + u32 percpu_offset; + u32 saved_spi_enable[32]; + u32 saved_spi_active[32]; + u32 saved_spi_conf[64]; + u32 saved_spi_target[255]; + u32 __attribute__((btf_type_tag("percpu"))) *saved_ppi_enable; + u32 __attribute__((btf_type_tag("percpu"))) *saved_ppi_active; + u32 __attribute__((btf_type_tag("percpu"))) *saved_ppi_conf; + struct irq_domain *domain; + unsigned int gic_irqs; +}; -typedef void (*btf_trace_cma_alloc_start)(void *, const char *, unsigned long, unsigned int); +enum acpi_madt_gic_version { + ACPI_MADT_GIC_VERSION_NONE = 0, + ACPI_MADT_GIC_VERSION_V1 = 1, + ACPI_MADT_GIC_VERSION_V2 = 2, + ACPI_MADT_GIC_VERSION_V3 = 3, + ACPI_MADT_GIC_VERSION_V4 = 4, + ACPI_MADT_GIC_VERSION_RESERVED = 5, +}; -typedef void (*btf_trace_cma_alloc_finish)(void *, const char *, unsigned long, const struct page *, unsigned long, unsigned int, int); +struct phy_reg { + u16 value; + u32 addr; +}; -typedef void (*btf_trace_cma_alloc_busy_retry)(void *, const char *, unsigned long, const struct page *, unsigned long, unsigned int); +struct usb3phy_reg { + u32 offset; + u32 enable_bit; + u32 write_enable; +}; -struct trace_event_raw_cma_release { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long pfn; - const struct page *page; - unsigned long count; - char __data[0]; +struct rockchip_usb3phy_port_cfg { + unsigned int reg; + struct usb3phy_reg typec_conn_dir; + struct usb3phy_reg usb3tousb2_en; + struct usb3phy_reg external_psm; + struct usb3phy_reg pipe_status; + struct usb3phy_reg usb3_host_disable; + struct usb3phy_reg usb3_host_port; + struct usb3phy_reg uphy_dp_sel; }; -struct trace_event_raw_cma_alloc_start { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long count; - unsigned int align; - char __data[0]; +struct rockchip_typec_phy { + struct device *dev; + void *base; + struct extcon_dev *extcon; + struct regmap *grf_regs; + struct clk *clk_core; + struct clk *clk_ref; + struct reset_control *uphy_rst; + struct reset_control *pipe_rst; + struct reset_control *tcphy_rst; + const struct rockchip_usb3phy_port_cfg *port_cfgs; + struct mutex lock; + bool flip; + u8 mode; }; -struct trace_event_raw_cma_alloc_finish { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long pfn; - const struct page *page; - unsigned long count; - unsigned int align; - int errorno; - char __data[0]; +enum pincfg_type { + PINCFG_TYPE_FUNC = 0, + PINCFG_TYPE_DAT = 1, + PINCFG_TYPE_PUD = 2, + PINCFG_TYPE_DRV = 3, + PINCFG_TYPE_CON_PDN = 4, + PINCFG_TYPE_PUD_PDN = 5, + PINCFG_TYPE_NUM = 6, }; -struct trace_event_raw_cma_alloc_busy_retry { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long pfn; - const struct page *page; - unsigned long count; - unsigned int align; - char __data[0]; +struct pin_config { + const char *property; + enum pincfg_type param; }; -struct trace_event_data_offsets_cma_release { - u32 name; +enum gio_reg_index { + GIO_REG_ODEN = 0, + GIO_REG_DATA = 1, + GIO_REG_IODIR = 2, + GIO_REG_EC = 3, + GIO_REG_EI = 4, + GIO_REG_MASK = 5, + GIO_REG_LEVEL = 6, + GIO_REG_STAT = 7, + NUMBER_OF_GIO_REGISTERS = 8, +}; + +struct brcmstb_gpio_priv; + +struct brcmstb_gpio_bank { + struct list_head node; + int id; + struct gpio_chip gc; + struct brcmstb_gpio_priv *parent_priv; + u32 width; + u32 wake_active; + u32 saved_regs[7]; }; -struct trace_event_data_offsets_cma_alloc_start { - u32 name; +struct brcmstb_gpio_priv { + struct list_head bank_list; + void *reg_base; + struct platform_device *pdev; + struct irq_domain *irq_domain; + struct irq_chip irq_chip; + int parent_irq; + int gpio_base; + int num_gpios; + int parent_wake_irq; }; -struct trace_event_data_offsets_cma_alloc_finish { - u32 name; +struct gpio_rcar_info { + bool has_outdtsel; + bool has_both_edge_trigger; + bool has_always_in; + bool has_inen; }; -struct trace_event_data_offsets_cma_alloc_busy_retry { - u32 name; +struct gpio_rcar_bank_info { + u32 iointsel; + u32 inoutsel; + u32 outdt; + u32 posneg; + u32 edglevel; + u32 bothedge; + u32 intmsk; }; -typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); - -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 gpio_rcar_priv { + void *base; + spinlock_t lock; + struct device *dev; + struct gpio_chip gpio_chip; + unsigned int irq_parent; + atomic_t wakeup_path; + struct gpio_rcar_info info; + struct gpio_rcar_bank_info bank_info; }; -struct move_extent { - __u32 reserved; - __u32 donor_fd; - __u64 orig_start; - __u64 donor_start; - __u64 len; - __u64 moved_len; +struct samsung_pwm_variant { + u8 bits; + u8 div_base; + u8 tclk_mask; + u8 output_mask; + bool has_tint_cstat; }; -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 samsung_pwm_channel { + u32 period_ns; + u32 duty_ns; + u32 tin_ns; }; -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 samsung_pwm_chip { + struct pwm_chip chip; + struct samsung_pwm_variant variant; + u8 inverter_mask; + u8 disabled_mask; + void *base; + struct clk *base_clk; + struct clk *tclk0; + struct clk *tclk1; + struct samsung_pwm_channel channel[5]; }; -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 hisi_pcie { + void *reg_base; }; -struct fsuuid { - __u32 fsu_len; - __u32 fsu_flags; - __u8 fsu_uuid[0]; +struct acpi_dev_walk_context { + int (*fn)(struct acpi_device *, void *); + void *data; }; -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; +struct acpi_port_info { + char *name; + u16 start; + u16 end; + u8 osi_dependency; }; -struct nfs_page_iter_page { - const struct nfs_page *req; - size_t count; -}; +typedef acpi_status (*acpi_object_converter)(struct acpi_namespace_node *, union acpi_operand_object *, union acpi_operand_object **); -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 acpi_simple_repair_info { + char name[4]; + u32 unexpected_btypes; + u32 package_index; + acpi_object_converter object_converter; }; -struct msg_queue { - struct kern_ipc_perm q_perm; - time64_t q_stime; - time64_t q_rtime; - time64_t q_ctime; - unsigned long q_cbytes; - unsigned long q_qnum; - unsigned long q_qbytes; - struct pid *q_lspid; - struct pid *q_lrpid; - struct list_head q_messages; - struct list_head q_receivers; - struct list_head q_senders; - long: 64; - long: 64; +struct iproc_asiu_div { + unsigned int offset; + unsigned int en_shift; + unsigned int high_shift; + unsigned int high_width; + unsigned int low_shift; + unsigned int low_width; }; -struct msg; +struct iproc_asiu; -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 iproc_asiu_clk { + struct clk_hw hw; + const char *name; + struct iproc_asiu *asiu; + unsigned long rate; + struct iproc_asiu_div div; + struct iproc_asiu_gate gate; }; -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 iproc_asiu { + void *div_base; + void *gate_base; + struct clk_hw_onecell_data *clk_data; + struct iproc_asiu_clk *clks; }; -struct msg_sender { - struct list_head list; - struct task_struct *tsk; - size_t msgsz; +struct clk_busy_divider { + struct clk_divider div; + const struct clk_ops *div_ops; + void *reg; + u8 shift; }; -struct msgbuf { - __kernel_long_t mtype; - char mtext[1]; +struct clk_busy_mux { + struct clk_mux mux; + const struct clk_ops *mux_ops; + void *reg; + u8 shift; }; -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 clk_cpu { + struct clk_hw hw; + struct clk *div; + struct clk *mux; + struct clk *pll; + struct clk *step; }; -struct msginfo { - int msgpool; - int msgmap; - int msgmax; - int msgmnb; - int msgmni; - int msgssz; - int msgtql; - unsigned short msgseg; +struct clk_pfd { + struct clk_hw hw; + void *reg; + u8 idx; }; -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; +struct imx_clk_gpr { + struct clk_hw hw; + struct regmap *regmap; + u32 mask; + u32 reg; + const u32 *mux_table; }; -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 exynos_clkout_variant { + u32 mux_mask; }; -struct compat_msgbuf { - compat_long_t mtype; - char mtext[1]; +struct exynos_clkout { + struct clk_gate gate; + struct clk_mux mux; + spinlock_t slock; + void *reg; + struct device_node *np; + u32 pmu_debug_save; + struct clk_hw_onecell_data data; }; -enum bfqq_state_flags { - BFQQF_just_created = 0, - BFQQF_busy = 1, - BFQQF_wait_request = 2, - BFQQF_non_blocking_wait_rq = 3, - BFQQF_fifo_expire = 4, - BFQQF_has_short_ttime = 5, - BFQQF_sync = 6, - BFQQF_IO_bound = 7, - BFQQF_in_large_burst = 8, - BFQQF_softrt_update = 9, - BFQQF_coop = 10, - BFQQF_split_coop = 11, +struct _ccu_mult { + unsigned long mult; + unsigned long min; + unsigned long max; }; -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, +struct _ccu_nkmp { + unsigned long n; + unsigned long min_n; + unsigned long max_n; + unsigned long k; + unsigned long min_k; + unsigned long max_k; + unsigned long m; + unsigned long min_m; + unsigned long max_m; + unsigned long p; + unsigned long min_p; + unsigned long max_p; }; -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 uniphier_clk_gate { + struct clk_hw hw; + struct regmap *regmap; + unsigned int reg; + unsigned int bit; }; -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 pl330_of_quirks { + char *quirk; + int id; }; -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; +enum pl330_cachectrl { + CCTRL0 = 0, + CCTRL1 = 1, + CCTRL2 = 2, + CCTRL3 = 3, + INVALID1 = 4, + INVALID2 = 5, + CCTRL6 = 6, + CCTRL7 = 7, }; -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; +enum pl330_byteswap { + SWAP_NO = 0, + SWAP_2 = 1, + SWAP_4 = 2, + SWAP_8 = 3, + SWAP_16 = 4, }; -struct lzma_len_dec { - uint16_t choice; - uint16_t choice2; - uint16_t low[128]; - uint16_t mid[128]; - uint16_t high[256]; +enum desc_status { + FREE = 0, + PREP = 1, + BUSY = 2, + PAUSED = 3, + DONE___2 = 4, }; -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]; +enum pl330_dmac_state { + UNINIT___2 = 0, + INIT = 1, + DYING = 2, }; -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; +enum pl330_op_err { + PL330_ERR_NONE = 0, + PL330_ERR_ABORT = 1, + PL330_ERR_FAIL = 2, }; -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, +enum dmamov_dst { + SAR = 0, + CCR = 1, + DAR = 2, }; -struct gpcv2_irqchip_data { - struct raw_spinlock rlock; - void *gpc_base; - u32 wakeup_sources[4]; - u32 saved_irq_mask[4]; - u32 cpu2wakeup; +enum pl330_cond { + SINGLE = 0, + BURST = 1, + ALWAYS = 2, }; -struct histb_combphy_mode { - int fixed; - int select; - u32 reg; - u32 shift; - u32 mask; -}; +struct pl330_dmac; -struct histb_combphy_priv { - void *mmio; - struct regmap *syscon; - struct reset_control *por_rst; - struct clk *ref_clk; - struct phy *phy; - struct histb_combphy_mode mode; -}; +struct pl330_thread; -enum pm_pinctrl_config_param { - PM_PINCTRL_CONFIG_SLEW_RATE = 0, - PM_PINCTRL_CONFIG_BIAS_STATUS = 1, - PM_PINCTRL_CONFIG_PULL_CTRL = 2, - PM_PINCTRL_CONFIG_SCHMITT_CMOS = 3, - PM_PINCTRL_CONFIG_DRIVE_STRENGTH = 4, - PM_PINCTRL_CONFIG_VOLTAGE_STATUS = 5, - PM_PINCTRL_CONFIG_TRI_STATE = 6, - PM_PINCTRL_CONFIG_MAX = 7, +struct dma_pl330_chan { + struct tasklet_struct task; + struct dma_chan chan; + struct list_head submitted_list; + struct list_head work_list; + struct list_head completed_list; + struct pl330_dmac *dmac; + spinlock_t lock; + struct pl330_thread *thread; + int burst_sz; + int burst_len; + phys_addr_t fifo_addr; + dma_addr_t fifo_dma; + enum dma_data_direction dir; + struct dma_slave_config slave_config; + bool cyclic; + bool active; }; -enum pm_pinctrl_pull_ctrl { - PM_PINCTRL_BIAS_PULL_DOWN = 0, - PM_PINCTRL_BIAS_PULL_UP = 1, +struct pl330_config { + u32 periph_id; + unsigned int mode; + unsigned int data_bus_width: 10; + unsigned int data_buf_dep: 11; + unsigned int num_chan: 4; + unsigned int num_peri: 6; + u32 peri_ns; + unsigned int num_events: 6; + u32 irq_ns; }; -enum pm_pinctrl_bias_status { - PM_PINCTRL_BIAS_DISABLE = 0, - PM_PINCTRL_BIAS_ENABLE = 1, +struct _pl330_tbd { + bool reset_dmac; + bool reset_mngr; + u8 reset_chan; }; -enum pm_pinctrl_drive_strength { - PM_PINCTRL_DRIVE_STRENGTH_2MA = 0, - PM_PINCTRL_DRIVE_STRENGTH_4MA = 1, - PM_PINCTRL_DRIVE_STRENGTH_8MA = 2, - PM_PINCTRL_DRIVE_STRENGTH_12MA = 3, +struct pl330_dmac { + struct dma_device ddma; + struct list_head desc_pool; + spinlock_t pool_lock; + unsigned int mcbufsz; + void *base; + struct pl330_config pcfg; + spinlock_t lock; + int events[32]; + dma_addr_t mcode_bus; + void *mcode_cpu; + struct pl330_thread *channels; + struct pl330_thread *manager; + struct tasklet_struct tasks; + struct _pl330_tbd dmac_tbd; + enum pl330_dmac_state state; + struct list_head req_done; + unsigned int num_peripherals; + struct dma_pl330_chan *peripherals; + int quirks; + struct reset_control *rstc; + struct reset_control *rstc_ocp; }; -struct zynqmp_pctrl_group; - -struct zynqmp_pmux_function; +struct dma_pl330_desc; -struct zynqmp_pinctrl { - struct pinctrl_dev *pctrl; - const struct zynqmp_pctrl_group *groups; - unsigned int ngroups; - const struct zynqmp_pmux_function *funcs; - unsigned int nfuncs; +struct _pl330_req { + u32 mc_bus; + void *mc_cpu; + struct dma_pl330_desc *desc; }; -struct zynqmp_pctrl_group { - const char *name; - unsigned int pins[50]; - unsigned int npins; +struct pl330_thread { + u8 id; + int ev; + bool free; + struct pl330_dmac *dmac; + struct _pl330_req req[2]; + unsigned int lstenq; + int req_running; }; -struct zynqmp_pmux_function { - char name[16]; - const char * const *groups; - unsigned int ngroups; +struct pl330_xfer { + u32 src_addr; + u32 dst_addr; + u32 bytes; }; -enum gpio_v2_line_flag { - GPIO_V2_LINE_FLAG_USED = 1, - GPIO_V2_LINE_FLAG_ACTIVE_LOW = 2, - GPIO_V2_LINE_FLAG_INPUT = 4, - GPIO_V2_LINE_FLAG_OUTPUT = 8, - GPIO_V2_LINE_FLAG_EDGE_RISING = 16, - GPIO_V2_LINE_FLAG_EDGE_FALLING = 32, - GPIO_V2_LINE_FLAG_OPEN_DRAIN = 64, - GPIO_V2_LINE_FLAG_OPEN_SOURCE = 128, - GPIO_V2_LINE_FLAG_BIAS_PULL_UP = 256, - GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN = 512, - GPIO_V2_LINE_FLAG_BIAS_DISABLED = 1024, - GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME = 2048, - GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE = 4096, +struct pl330_reqcfg { + unsigned int dst_inc: 1; + unsigned int src_inc: 1; + bool nonsecure; + bool privileged; + bool insnaccess; + unsigned int brst_len: 5; + unsigned int brst_size: 3; + enum pl330_cachectrl dcctl; + enum pl330_cachectrl scctl; + enum pl330_byteswap swap; + struct pl330_config *pcfg; }; -enum gpio_v2_line_changed_type { - GPIO_V2_LINE_CHANGED_REQUESTED = 1, - GPIO_V2_LINE_CHANGED_RELEASED = 2, - GPIO_V2_LINE_CHANGED_CONFIG = 3, +struct dma_pl330_desc { + struct list_head node; + struct dma_async_tx_descriptor txd; + struct pl330_xfer px; + struct pl330_reqcfg rqcfg; + enum desc_status status; + int bytes_requested; + bool last; + struct dma_pl330_chan *pchan; + enum dma_transfer_direction rqtype; + unsigned int peri: 5; + struct list_head rqd; }; -enum gpio_v2_line_attr_id { - GPIO_V2_LINE_ATTR_ID_FLAGS = 1, - GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 2, - GPIO_V2_LINE_ATTR_ID_DEBOUNCE = 3, +struct _arg_GO { + u8 chan; + u32 addr; + unsigned int ns; }; -enum gpio_v2_line_event_id { - GPIO_V2_LINE_EVENT_RISING_EDGE = 1, - GPIO_V2_LINE_EVENT_FALLING_EDGE = 2, +struct _xfer_spec { + u32 ccr; + struct dma_pl330_desc *desc; }; -enum hte_return { - HTE_CB_HANDLED = 0, - HTE_RUN_SECOND_CB = 1, +struct _arg_LPEND { + enum pl330_cond cond; + bool forever; + unsigned int loop; + u8 bjump; }; -struct linereq; +struct imx8m_blk_ctrl_domain_data; -struct line { - struct gpio_desc *desc; - struct linereq *req; - unsigned int irq; - u64 edflags; - u64 timestamp_ns; - u32 req_seqno; - u32 line_seqno; - struct delayed_work work; - unsigned int sw_debounced; - unsigned int level; - struct hte_ts_desc hdesc; - int raw_level; - u32 total_discard_seq; - u32 last_seqno; +struct imx8m_blk_ctrl_data { + int max_reg; + notifier_fn_t power_notifier_fn; + const struct imx8m_blk_ctrl_domain_data *domains; + int num_domains; }; -struct gpio_v2_line_event { - __u64 timestamp_ns; - __u32 id; - __u32 offset; - __u32 seqno; - __u32 line_seqno; - __u32 padding[6]; +struct imx8m_blk_ctrl_domain_data { + const char *name; + const char * const *clk_names; + const char * const *path_names; + const char *gpc_name; + int num_clks; + int num_paths; + u32 rst_mask; + u32 clk_mask; + u32 mipi_phy_rst_mask; }; -struct linereq { - struct gpio_device *gdev; - const char *label; - u32 num_lines; - wait_queue_head_t wait; - u32 event_buffer_size; - struct { - union { - struct __kfifo kfifo; - struct gpio_v2_line_event *type; - const struct gpio_v2_line_event *const_type; - char (*rectype)[0]; - struct gpio_v2_line_event *ptr; - const struct gpio_v2_line_event *ptr_const; - }; - struct gpio_v2_line_event buf[0]; - } events; - atomic_t seqno; - struct mutex config_mutex; - struct line lines[0]; +struct imx8m_blk_ctrl; + +struct imx8m_blk_ctrl_domain { + struct generic_pm_domain genpd; + const struct imx8m_blk_ctrl_domain_data *data; + struct clk_bulk_data clks[4]; + struct icc_bulk_data paths[4]; + struct device *power_dev; + struct imx8m_blk_ctrl *bc; + int num_paths; }; -struct gpio_v2_line_attribute { - __u32 id; - __u32 padding; - union { - __u64 flags; - __u64 values; - __u32 debounce_period_us; - }; +struct imx8m_blk_ctrl { + struct device *dev; + struct notifier_block power_nb; + struct device *bus_power_dev; + struct regmap *regmap; + struct imx8m_blk_ctrl_domain *domains; + struct genpd_onecell_data onecell_data; }; -struct gpio_v2_line_info { - char name[32]; - char consumer[32]; - __u32 offset; - __u32 num_attrs; - __u64 flags; - struct gpio_v2_line_attribute attrs[10]; - __u32 padding[4]; +struct xen_device_domain_owner { + domid_t domain; + struct pci_dev *dev; + struct list_head list; }; -struct gpio_v2_line_info_changed { - struct gpio_v2_line_info info; - __u64 timestamp_ns; - __u32 event_type; - __u32 padding[5]; +struct physdev_pci_device_add { + uint16_t seg; + uint8_t bus; + uint8_t devfn; + uint32_t flags; + struct { + uint8_t bus; + uint8_t devfn; + } physfn; + uint32_t optarr[0]; }; -struct gpio_chardev_data { - struct gpio_device *gdev; - wait_queue_head_t wait; +struct physdev_manage_pci_ext { + uint8_t bus; + uint8_t devfn; + unsigned int is_extfn; + unsigned int is_virtfn; struct { - union { - struct __kfifo kfifo; - struct gpio_v2_line_info_changed *type; - const struct gpio_v2_line_info_changed *const_type; - char (*rectype)[0]; - struct gpio_v2_line_info_changed *ptr; - const struct gpio_v2_line_info_changed *ptr_const; - }; - struct gpio_v2_line_info_changed buf[32]; - } events; - struct notifier_block lineinfo_changed_nb; - unsigned long *watched_lines; - atomic_t watch_abi_version; + uint8_t bus; + uint8_t devfn; + } physfn; }; -typedef ssize_t (*read_fn)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); +struct physdev_manage_pci { + uint8_t bus; + uint8_t devfn; +}; -struct gpioline_info { - __u32 line_offset; - __u32 flags; - char name[32]; - char consumer[32]; +struct devm_of_regulator_matches { + struct of_regulator_match *matches; + unsigned int num_matches; }; -struct gpioline_info_changed { - struct gpioline_info info; - __u64 timestamp; - __u32 event_type; - __u32 padding[5]; +struct hi655x_regulator { + unsigned int disable_reg; + unsigned int status_reg; + struct regulator_desc rdesc; }; -typedef __poll_t (*poll_fn)(struct file *, struct poll_table_struct *); +struct kbdiacruc { + unsigned int diacr; + unsigned int base; + unsigned int result; +}; -struct gpio_v2_line_config_attribute { - struct gpio_v2_line_attribute attr; - __u64 mask; +enum imx_tx_state { + OFF___2 = 0, + WAIT_AFTER_RTS = 1, + SEND = 2, + WAIT_AFTER_SEND = 3, }; -struct gpio_v2_line_config { - __u64 flags; - __u32 num_attrs; - __u32 padding[5]; - struct gpio_v2_line_config_attribute attrs[10]; +struct imx_uart_data; + +struct imx_port { + struct uart_port port; + struct timer_list timer; + unsigned int old_status; + unsigned int have_rtscts: 1; + unsigned int have_rtsgpio: 1; + unsigned int dte_mode: 1; + unsigned int inverted_tx: 1; + unsigned int inverted_rx: 1; + struct clk *clk_ipg; + struct clk *clk_per; + const struct imx_uart_data *devdata; + struct mctrl_gpios *gpios; + int idle_counter; + unsigned int dma_is_enabled: 1; + unsigned int dma_is_rxing: 1; + unsigned int dma_is_txing: 1; + struct dma_chan *dma_chan_rx; + struct dma_chan *dma_chan_tx; + struct scatterlist rx_sgl; + struct scatterlist tx_sgl[2]; + void *rx_buf; + struct circ_buf rx_ring; + unsigned int rx_buf_size; + unsigned int rx_period_length; + unsigned int rx_periods; + dma_cookie_t rx_cookie; + unsigned int tx_bytes; + unsigned int dma_tx_nents; + unsigned int saved_reg[10]; + bool context_saved; + enum imx_tx_state tx_state; + struct hrtimer trigger_start_tx; + struct hrtimer trigger_stop_tx; }; -struct gpio_v2_line_request { - __u32 offsets[64]; - char consumer[32]; - struct gpio_v2_line_config config; - __u32 num_lines; - __u32 event_buffer_size; - __u32 padding[5]; - __s32 fd; +enum imx_uart_type { + IMX1_UART = 0, + IMX21_UART = 1, }; -struct gpiochip_info { - char name[32]; - char label[32]; - __u32 lines; +struct imx_uart_data { + unsigned int uts_reg; + enum imx_uart_type devtype; }; -struct gpioevent_request { - __u32 lineoffset; - __u32 handleflags; - __u32 eventflags; - char consumer_label[32]; - int fd; +struct imx_port_ucrs { + unsigned int ucr1; + unsigned int ucr2; + unsigned int ucr3; }; -struct gpioevent_data { - __u64 timestamp; - __u32 id; +struct tpmrm_priv { + struct file_priv priv; + struct tpm_space space; }; -struct lineevent_state { - struct gpio_device *gdev; - const char *label; - struct gpio_desc *desc; - u32 eflags; - int irq; - wait_queue_head_t wait; - struct { - union { - struct __kfifo kfifo; - struct gpioevent_data *type; - const struct gpioevent_data *const_type; - char (*rectype)[0]; - struct gpioevent_data *ptr; - const struct gpioevent_data *ptr_const; - }; - struct gpioevent_data buf[16]; - } events; - u64 timestamp; +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 gpiohandle_request { - __u32 lineoffsets[64]; - __u32 flags; - __u8 default_values[64]; - char consumer_label[32]; - __u32 lines; - int fd; +struct iommu_group_attribute { + struct attribute attr; + ssize_t (*show)(struct iommu_group *, char *); + ssize_t (*store)(struct iommu_group *, const char *, size_t); }; -struct linehandle_state { - struct gpio_device *gdev; - const char *label; - struct gpio_desc *descs[64]; - u32 num_descs; +enum iommu_fault_type { + IOMMU_FAULT_DMA_UNRECOV = 1, + IOMMU_FAULT_PAGE_REQ = 2, }; -typedef long (*ioctl_fn___2)(struct file *, unsigned int, unsigned long); +enum { + IOMMU_SET_DOMAIN_MUST_SUCCEED = 1, +}; -struct gpiohandle_data { - __u8 values[64]; +struct group_device { + struct list_head list; + struct device *dev; + char *name; }; -struct gpiohandle_config { - __u32 flags; - __u8 default_values[64]; - __u32 padding[4]; +struct group_for_pci_data { + struct pci_dev *pdev; + struct iommu_group *group; }; -typedef enum hte_return (*hte_ts_cb_t)(struct hte_ts_data *, void *); +struct auxiliary_device; -typedef enum hte_return (*hte_ts_sec_cb_t)(void *); +struct auxiliary_device_id; -struct gpio_v2_line_values { - __u64 bits; - __u64 mask; +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 pcie_link_state { - struct pci_dev *pdev; - struct pci_dev *downstream; - struct pcie_link_state *root; - struct pcie_link_state *parent; - struct list_head sibling; - u32 aspm_support: 7; - u32 aspm_enabled: 7; - u32 aspm_capable: 7; - u32 aspm_default: 7; - int: 4; - u32 aspm_disable: 7; - u32 clkpm_capable: 1; - u32 clkpm_enabled: 1; - u32 clkpm_default: 1; - u32 clkpm_disable: 1; +struct auxiliary_device { + struct device dev; + const char *name; + u32 id; +}; + +struct auxiliary_device_id { + char name[32]; + kernel_ulong_t driver_data; }; -struct acpi_memory_info { - struct list_head list; - u64 start_addr; - u64 length; - unsigned short caching; - unsigned short write_protect; - unsigned int enabled: 1; +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 acpi_memory_device { - struct acpi_device *device; - struct list_head res_list; - int mgid; +struct ata_acpi_hotplug_context { + struct acpi_hotplug_context hp; + union { + struct ata_port *ap; + struct ata_device *dev; + } data; }; -struct scmi_clk { - u32 id; - struct clk_hw hw; - const struct scmi_clock_info *info; - const struct scmi_protocol_handle *ph; +struct ata_acpi_gtf { + u8 tf[7]; }; -struct hi6220_clk_divider { - struct clk_hw hw; - void *reg; - u8 shift; - u8 width; - u32 mask; - const struct clk_div_table *table; - spinlock_t *lock; +struct mtd_partitions { + const struct mtd_partition *parts; + int nr_parts; + const struct mtd_part_parser *parser; }; -struct rockchip_softrst { - struct reset_controller_dev rcdev; - const int *lut; - void *reg_base; - int num_regs; - int num_per_reg; - u8 flags; - spinlock_t lock; +enum nand_bbt_block_status { + NAND_BBT_BLOCK_STATUS_UNKNOWN = 0, + NAND_BBT_BLOCK_GOOD = 1, + NAND_BBT_BLOCK_WORN = 2, + NAND_BBT_BLOCK_RESERVED = 3, + NAND_BBT_BLOCK_FACTORY_BAD = 4, + NAND_BBT_BLOCK_NUM_STATUS = 5, }; -struct socfpga_pll { - struct clk_gate hw; +struct denali_chip_sel { + int bank; + u32 hwhr2_and_we_2_re; + u32 tcwaw_and_addr_2_data; + u32 re_2_we; + u32 acc_clks; + u32 rdwr_en_lo_cnt; + u32 rdwr_en_hi_cnt; + u32 cs_setup_cnt; + u32 re_2_re; }; -struct cpu_clk_suspend_context___2 { - u32 clk_csite_src; - u32 cclkg_burst; - u32 cclkg_divider; +struct denali_chip { + struct nand_chip chip; + struct list_head node; + unsigned int nsels; + struct denali_chip_sel sels[0]; }; -enum owl_dma_id { - S900_DMA = 0, - S700_DMA = 1, +struct denali_controller { + struct nand_controller controller; + struct device *dev; + struct list_head chips; + unsigned long clk_rate; + unsigned long clk_x_rate; + void *reg; + void *host; + struct completion complete; + int irq; + u32 irq_mask; + u32 irq_status; + spinlock_t irq_lock; + bool dma_avail; + int devs_per_cs; + int oob_skip_bytes; + int active_bank; + int nbanks; + unsigned int revision; + unsigned int caps; + const struct nand_ecc_caps *ecc_caps; + u32 (*host_read)(struct denali_controller *, u32); + void (*host_write)(struct denali_controller *, u32, u32); + void (*setup_dma)(struct denali_controller *, dma_addr_t, int, bool); }; -enum owl_dmadesc_offsets { - OWL_DMADESC_NEXT_LLI = 0, - OWL_DMADESC_SADDR = 1, - OWL_DMADESC_DADDR = 2, - OWL_DMADESC_FLEN = 3, - OWL_DMADESC_SRC_STRIDE = 4, - OWL_DMADESC_DST_STRIDE = 5, - OWL_DMADESC_CTRLA = 6, - OWL_DMADESC_CTRLB = 7, - OWL_DMADESC_CONST_NUM = 8, - OWL_DMADESC_SIZE = 9, -}; +typedef void (*btf_trace_spi_controller_idle)(void *, struct spi_controller *); -struct owl_dma_pchan; +typedef void (*btf_trace_spi_controller_busy)(void *, struct spi_controller *); -struct owl_dma_txd; +typedef void (*btf_trace_spi_setup)(void *, struct spi_device *, int); -struct owl_dma_vchan { - struct virt_dma_chan vc; - struct owl_dma_pchan *pchan; - struct owl_dma_txd *txd; - struct dma_slave_config cfg; - u8 drq; +typedef void (*btf_trace_spi_set_cs)(void *, struct spi_device *, bool); + +typedef void (*btf_trace_spi_message_submit)(void *, struct spi_message *); + +typedef void (*btf_trace_spi_message_start)(void *, struct spi_message *); + +typedef void (*btf_trace_spi_message_done)(void *, struct spi_message *); + +typedef void (*btf_trace_spi_transfer_start)(void *, struct spi_message *, struct spi_transfer *); + +typedef void (*btf_trace_spi_transfer_stop)(void *, struct spi_message *, struct spi_transfer *); + +struct spi_board_info { + char modalias[32]; + const void *platform_data; + const struct software_node *swnode; + void *controller_data; + int irq; + u32 max_speed_hz; + u16 bus_num; + u16 chip_select; + u32 mode; }; -struct owl_dma_pchan { - u32 id; - void *base; - struct owl_dma_vchan *vchan; +struct boardinfo { + struct list_head list; + struct spi_board_info board_info; }; -struct owl_dma_txd { - struct virt_dma_desc vd; - struct list_head lli_list; - bool cyclic; +struct trace_event_raw_spi_controller { + struct trace_entry ent; + int bus_num; + char __data[0]; }; -struct owl_dma_lli { - u32 hw[9]; - dma_addr_t phys; - struct list_head node; +struct trace_event_raw_spi_setup { + struct trace_entry ent; + int bus_num; + int chip_select; + unsigned long mode; + unsigned int bits_per_word; + unsigned int max_speed_hz; + int status; + char __data[0]; }; -struct owl_dma { - struct dma_device dma; - void *base; - struct clk *clk; - spinlock_t lock; - struct dma_pool *lli_pool; - int irq; - unsigned int nr_pchans; - struct owl_dma_pchan *pchans; - unsigned int nr_vchans; - struct owl_dma_vchan *vchans; - enum owl_dma_id devid; +struct trace_event_raw_spi_set_cs { + struct trace_entry ent; + int bus_num; + int chip_select; + unsigned long mode; + bool enable; + char __data[0]; }; -struct imx8m_blk_ctrl_domain_data; +struct trace_event_raw_spi_message { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_message *msg; + char __data[0]; +}; -struct imx8m_blk_ctrl_data { - int max_reg; - notifier_fn_t power_notifier_fn; - const struct imx8m_blk_ctrl_domain_data *domains; - int num_domains; +struct trace_event_raw_spi_message_done { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_message *msg; + unsigned int frame; + unsigned int actual; + char __data[0]; }; -struct imx8m_blk_ctrl_domain_data { - const char *name; - const char * const *clk_names; - const char * const *path_names; - const char *gpc_name; - int num_clks; - int num_paths; - u32 rst_mask; - u32 clk_mask; - u32 mipi_phy_rst_mask; +struct trace_event_raw_spi_transfer { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_transfer *xfer; + int len; + u32 __data_loc_rx_buf; + u32 __data_loc_tx_buf; + char __data[0]; }; -struct imx8m_blk_ctrl; +typedef void (*spi_res_release_t)(struct spi_controller *, struct spi_message *, void *); -struct imx8m_blk_ctrl_domain { - struct generic_pm_domain genpd; - const struct imx8m_blk_ctrl_domain_data *data; - struct clk_bulk_data clks[4]; - struct icc_bulk_data paths[4]; - struct device *power_dev; - struct imx8m_blk_ctrl *bc; - int num_paths; +struct spi_res { + struct list_head entry; + spi_res_release_t release; + unsigned long long data[0]; }; -struct imx8m_blk_ctrl { - struct device *dev; - struct notifier_block power_nb; - struct device *bus_power_dev; - struct regmap *regmap; - struct imx8m_blk_ctrl_domain *domains; - struct genpd_onecell_data onecell_data; +struct trace_event_data_offsets_spi_transfer { + u32 rx_buf; + u32 tx_buf; }; -struct rockchip_iodomain; +struct spi_replaced_transfers; -struct rockchip_iodomain_supply; +typedef void (*spi_replaced_release_t)(struct spi_controller *, struct spi_message *, struct spi_replaced_transfers *); -struct rockchip_iodomain_soc_data { - int grf_offset; - const char *supply_names[16]; - void (*init)(struct rockchip_iodomain *); - int (*write)(struct rockchip_iodomain_supply *, int); +struct spi_replaced_transfers { + spi_replaced_release_t release; + void *extradata; + struct list_head replaced_transfers; + struct list_head *replaced_after; + size_t inserted; + struct spi_transfer inserted_transfers[0]; }; -struct rockchip_iodomain_supply { - struct rockchip_iodomain *iod; - struct regulator *reg; - struct notifier_block nb; - int idx; -}; +struct trace_event_data_offsets_spi_controller {}; -struct rockchip_iodomain { - struct device *dev; - struct regmap *grf; - const struct rockchip_iodomain_soc_data *soc_data; - struct rockchip_iodomain_supply supplies[16]; - int (*write)(struct rockchip_iodomain_supply *, int); -}; +struct trace_event_data_offsets_spi_setup {}; -struct hi3660_reset_controller { - struct reset_controller_dev rst; - struct regmap *map; -}; +struct trace_event_data_offsets_spi_set_cs {}; -struct brcmuart_priv { - int line; - struct clk *baud_mux_clk; - unsigned long default_mux_rate; - u32 real_rates[4]; - const u32 *rate_table; - ktime_t char_wait; - struct uart_port *up; - struct hrtimer hrt; - bool shutdown; - bool dma_enabled; - struct uart_8250_dma dma; - void *regs[5]; - dma_addr_t rx_addr; - void *rx_bufs; - size_t rx_size; - int rx_next_buf; - dma_addr_t tx_addr; - void *tx_buf; - size_t tx_size; - bool tx_running; - bool rx_running; - struct dentry *debugfs_dir; - u64 dma_rx_partial_buf; - u64 dma_rx_full_buf; - u32 rx_bad_timeout_late_char; - u32 rx_bad_timeout_no_char; - u32 rx_missing_close_timeout; - u32 rx_err; - u32 rx_timeout; - u32 rx_abort; - u32 saved_mctrl; -}; +struct trace_event_data_offsets_spi_message {}; -struct cavium_rng { - struct hwrng ops; - void *result; - void *pf_regbase; - struct pci_dev *pdev; - u64 clock_rate; - u64 prev_error; - u64 prev_time; -}; +struct trace_event_data_offsets_spi_message_done {}; -struct dart_io_pgtable { - struct io_pgtable iop; - int tbl_bits; - int bits_per_level; - void *pgd[4]; +struct acpi_spi_lookup { + struct spi_controller *ctlr; + u32 max_speed_hz; + u32 mode; + int irq; + u8 bits_per_word; + u8 chip_select; + int n; + int index; }; -typedef u64 dart_iopte; - -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 bcmasp_pkt_offload { + __be32 nop; + __be32 header; + __be32 header2; + __be32 epkt; + __be32 end; }; -struct cros_feature_to_name { - unsigned int id; - const char *name; - const char *desc; +enum enetc_vf_flags { + ENETC_VF_FLAG_PF_SET_MAC = 1, }; -struct cros_feature_to_cells { - unsigned int id; - const struct mfd_cell *mfd_cells; - unsigned int num_cells; +struct enetc_mac_filter { + union { + char mac_addr[6]; + unsigned long mac_hash_table[1]; + }; + int mac_addr_cnt; }; -struct signal_attenuation_s; +struct enetc_vf_state; -struct sig_atten_lu_s { - const struct signal_attenuation_s *att; - u32 sas_phy_ctrl; +struct enetc_pf { + struct enetc_si *si; + int num_vfs; + int total_vfs; + struct enetc_vf_state *vf_state; + struct enetc_mac_filter mac_filter[6]; + struct enetc_msg_swbd rxmsg[2]; + struct work_struct msg_task; + char msg_int_name[24]; + char vlan_promisc_simap; + unsigned long vlan_ht_filter[1]; + unsigned long active_vlans[64]; + struct mii_bus *mdio; + struct mii_bus *imdio; + struct phylink_pcs *pcs; + phy_interface_t if_mode; + struct phylink_config phylink_config; }; -struct signal_attenuation_s { - u32 de_emphasis; - u32 preshoot; - u32 boost; +struct enetc_vf_state { + enum enetc_vf_flags flags; }; -enum { - HISI_SAS_PHY_PHY_UPDOWN = 0, - HISI_SAS_PHY_CHNL_INT = 1, - HISI_SAS_PHY_INT_NR = 2, +struct hclge_dbg_status_dfx_info { + u32 offset; + char message[60]; }; -enum { - TRANS_TX_FAIL_BASE = 0, - TRANS_RX_FAIL_BASE = 32, - DMA_TX_ERR_BASE = 64, - SIPC_RX_ERR_BASE = 80, - DMA_RX_ERR_BASE = 96, - TRANS_TX_OPEN_FAIL_WITH_IT_NEXUS_LOSS = 0, - TRANS_TX_ERR_PHY_NOT_ENABLE = 1, - TRANS_TX_OPEN_CNX_ERR_WRONG_DESTINATION = 2, - TRANS_TX_OPEN_CNX_ERR_ZONE_VIOLATION = 3, - TRANS_TX_OPEN_CNX_ERR_BY_OTHER = 4, - RESERVED0 = 5, - TRANS_TX_OPEN_CNX_ERR_AIP_TIMEOUT = 6, - TRANS_TX_OPEN_CNX_ERR_STP_RESOURCES_BUSY = 7, - TRANS_TX_OPEN_CNX_ERR_PROTOCOL_NOT_SUPPORTED = 8, - TRANS_TX_OPEN_CNX_ERR_CONNECTION_RATE_NOT_SUPPORTED = 9, - TRANS_TX_OPEN_CNX_ERR_BAD_DESTINATION = 10, - TRANS_TX_OPEN_CNX_ERR_BREAK_RCVD = 11, - TRANS_TX_OPEN_CNX_ERR_LOW_PHY_POWER = 12, - TRANS_TX_OPEN_CNX_ERR_PATHWAY_BLOCKED = 13, - TRANS_TX_OPEN_CNX_ERR_OPEN_TIMEOUT = 14, - TRANS_TX_OPEN_CNX_ERR_NO_DESTINATION = 15, - TRANS_TX_OPEN_RETRY_ERR_THRESHOLD_REACHED = 16, - TRANS_TX_ERR_FRAME_TXED = 17, - TRANS_TX_ERR_WITH_BREAK_TIMEOUT = 18, - TRANS_TX_ERR_WITH_BREAK_REQUEST = 19, - TRANS_TX_ERR_WITH_BREAK_RECEVIED = 20, - TRANS_TX_ERR_WITH_CLOSE_TIMEOUT = 21, - TRANS_TX_ERR_WITH_CLOSE_NORMAL = 22, - TRANS_TX_ERR_WITH_CLOSE_PHYDISALE = 23, - TRANS_TX_ERR_WITH_CLOSE_DWS_TIMEOUT = 24, - TRANS_TX_ERR_WITH_CLOSE_COMINIT = 25, - TRANS_TX_ERR_WITH_NAK_RECEVIED = 26, - TRANS_TX_ERR_WITH_ACK_NAK_TIMEOUT = 27, - TRANS_TX_ERR_WITH_CREDIT_TIMEOUT = 28, - TRANS_TX_ERR_WITH_IPTT_CONFLICT = 29, - TRANS_TX_ERR_WITH_OPEN_BY_DES_OR_OTHERS = 30, - TRANS_TX_ERR_WITH_WAIT_RECV_TIMEOUT = 31, - TRANS_RX_ERR_WITH_RXFRAME_CRC_ERR = 32, - TRANS_RX_ERR_WITH_RXFIS_8B10B_DISP_ERR = 33, - TRANS_RX_ERR_WITH_RXFRAME_HAVE_ERRPRM = 34, - TRANS_RX_ERR_WITH_RXFIS_DECODE_ERROR = 35, - TRANS_RX_ERR_WITH_RXFIS_CRC_ERR = 36, - TRANS_RX_ERR_WITH_RXFRAME_LENGTH_OVERRUN = 37, - TRANS_RX_ERR_WITH_RXFIS_RX_SYNCP = 38, - TRANS_RX_ERR_WITH_LINK_BUF_OVERRUN = 39, - TRANS_RX_ERR_WITH_BREAK_TIMEOUT = 40, - TRANS_RX_ERR_WITH_BREAK_REQUEST = 41, - TRANS_RX_ERR_WITH_BREAK_RECEVIED = 42, - RESERVED1 = 43, - TRANS_RX_ERR_WITH_CLOSE_NORMAL = 44, - TRANS_RX_ERR_WITH_CLOSE_PHY_DISABLE = 45, - TRANS_RX_ERR_WITH_CLOSE_DWS_TIMEOUT = 46, - TRANS_RX_ERR_WITH_CLOSE_COMINIT = 47, - TRANS_RX_ERR_WITH_DATA_LEN0 = 48, - TRANS_RX_ERR_WITH_BAD_HASH = 49, - TRANS_RX_XRDY_WLEN_ZERO_ERR = 50, - TRANS_RX_SSP_FRM_LEN_ERR = 51, - RESERVED2 = 52, - RESERVED3 = 53, - RESERVED4 = 54, - RESERVED5 = 55, - TRANS_RX_ERR_WITH_BAD_FRM_TYPE = 56, - TRANS_RX_SMP_FRM_LEN_ERR = 57, - TRANS_RX_SMP_RESP_TIMEOUT_ERR = 58, - RESERVED6 = 59, - RESERVED7 = 60, - RESERVED8 = 61, - RESERVED9 = 62, - TRANS_RX_R_ERR = 63, - DMA_TX_DIF_CRC_ERR = 64, - DMA_TX_DIF_APP_ERR = 65, - DMA_TX_DIF_RPP_ERR = 66, - DMA_TX_DATA_SGL_OVERFLOW = 67, - DMA_TX_DIF_SGL_OVERFLOW = 68, - DMA_TX_UNEXP_XFER_ERR = 69, - DMA_TX_UNEXP_RETRANS_ERR = 70, - DMA_TX_XFER_LEN_OVERFLOW = 71, - DMA_TX_XFER_OFFSET_ERR = 72, - DMA_TX_RAM_ECC_ERR = 73, - DMA_TX_DIF_LEN_ALIGN_ERR = 74, - DMA_TX_MAX_ERR_CODE = 75, - SIPC_RX_FIS_STATUS_ERR_BIT_VLD = 80, - SIPC_RX_PIO_WRSETUP_STATUS_DRQ_ERR = 81, - SIPC_RX_FIS_STATUS_BSY_BIT_ERR = 82, - SIPC_RX_WRSETUP_LEN_ODD_ERR = 83, - SIPC_RX_WRSETUP_LEN_ZERO_ERR = 84, - SIPC_RX_WRDATA_LEN_NOT_MATCH_ERR = 85, - SIPC_RX_NCQ_WRSETUP_OFFSET_ERR = 86, - SIPC_RX_NCQ_WRSETUP_AUTO_ACTIVE_ERR = 87, - SIPC_RX_SATA_UNEXP_FIS_ERR = 88, - SIPC_RX_WRSETUP_ESTATUS_ERR = 89, - SIPC_RX_DATA_UNDERFLOW_ERR = 90, - SIPC_RX_MAX_ERR_CODE = 91, - DMA_RX_DIF_CRC_ERR = 96, - DMA_RX_DIF_APP_ERR = 97, - DMA_RX_DIF_RPP_ERR = 98, - DMA_RX_DATA_SGL_OVERFLOW = 99, - DMA_RX_DIF_SGL_OVERFLOW = 100, - DMA_RX_DATA_LEN_OVERFLOW = 101, - DMA_RX_DATA_LEN_UNDERFLOW = 102, - DMA_RX_DATA_OFFSET_ERR = 103, - RESERVED10 = 104, - DMA_RX_SATA_FRAME_TYPE_ERR = 105, - DMA_RX_RESP_BUF_OVERFLOW = 106, - DMA_RX_UNEXP_RETRANS_RESP_ERR = 107, - DMA_RX_UNEXP_NORM_RESP_ERR = 108, - DMA_RX_UNEXP_RDFRAME_ERR = 109, - DMA_RX_PIO_DATA_LEN_ERR = 110, - DMA_RX_RDSETUP_STATUS_ERR = 111, - DMA_RX_RDSETUP_STATUS_DRQ_ERR = 112, - DMA_RX_RDSETUP_STATUS_BSY_ERR = 113, - DMA_RX_RDSETUP_LEN_ODD_ERR = 114, - DMA_RX_RDSETUP_LEN_ZERO_ERR = 115, - DMA_RX_RDSETUP_LEN_OVER_ERR = 116, - DMA_RX_RDSETUP_OFFSET_ERR = 117, - DMA_RX_RDSETUP_ACTIVE_ERR = 118, - DMA_RX_RDSETUP_ESTATUS_ERR = 119, - DMA_RX_RAM_ECC_ERR = 120, - DMA_RX_UNKNOWN_FRM_ERR = 121, - DMA_RX_MAX_ERR_CODE = 122, +struct hclge_dbg_func { + enum hnae3_dbg_cmd cmd; + int (*dbg_dump)(struct hclge_dev *, char *, int); + int (*dbg_dump_reg)(struct hclge_dev *, enum hnae3_dbg_cmd, char *, int); }; -struct hisi_sas_complete_v2_hdr { - __le32 dw0; - __le32 dw1; - __le32 act; - __le32 dw3; +struct hclge_dbg_item { + char name[32]; + u16 interval; }; -struct hisi_sas_err_record_v2 { - __le32 trans_tx_fail_type; - __le32 trans_rx_fail_type; - __le16 dma_tx_err_type; - __le16 sipc_rx_err_type; - __le32 dma_rx_err_type; +struct hclge_dbg_reg_common_msg { + int msg_num; + int offset; + enum hclge_opcode_type cmd; }; -struct flash_info___2 { - char *name; - u64 jedec_id; - unsigned int nr_pages; - u16 pagesize; - u16 pageoffset; - u16 flags; +struct hclge_dbg_dfx_message; + +struct hclge_dbg_reg_type_info { + enum hnae3_dbg_cmd cmd; + const struct hclge_dbg_dfx_message *dfx_msg; + struct hclge_dbg_reg_common_msg reg_msg; }; -struct dataflash { - u8 command[4]; - char name[24]; - unsigned short page_offset; - unsigned int page_size; - struct mutex lock; - struct spi_device *spi; - struct mtd_info mtd; +struct hclge_dbg_dfx_message { + int flag; + char message[60]; }; -struct flash_platform_data { - char *name; - struct mtd_partition *parts; - unsigned int nr_parts; - char *type; +struct hclge_qos_pri_map_cmd { + u8 pri0_tc: 4; + u8 pri1_tc: 4; + u8 pri2_tc: 4; + u8 pri3_tc: 4; + u8 pri4_tc: 4; + u8 pri5_tc: 4; + u8 pri6_tc: 4; + u8 pri7_tc: 4; + u8 vlan_pri: 4; + u8 rev: 4; }; -struct hclge_comm_caps_bit_map { - u16 imp_bit; - u16 local_bit; +struct hclge_mac_ethertype_idx_rd_cmd { + u8 flags; + u8 resp_code; + __le16 vlan_tag; + u8 mac_addr[6]; + __le16 index; + __le16 ethter_type; + __le16 egress_port; + __le16 egress_queue; + __le16 rev0; + u8 i_port_bitmap; + u8 i_port_direction; + u8 rev1[2]; }; -struct hclge_cmdq_tx_timeout_map { - u32 opcode; - u32 tx_timeout; +struct hclge_get_imp_bd_cmd { + __le32 bd_num; + u8 rsv[20]; }; -enum HCLGE_COMM_API_CAP_BITS { - HCLGE_COMM_API_CAP_FLEX_RSS_TBL_B = 0, +struct hclge_fd_ad_cnt_read_cmd { + u8 rsv0[4]; + __le16 index; + u8 rsv1[2]; + __le64 cnt; + u8 rsv2[8]; }; -struct hclge_comm_firmware_compat_cmd { - __le32 compat; - u8 rsv[20]; +struct hclge_dbg_bitmap_cmd { + union { + u8 bitmap; + struct { + u8 bit0: 1; + u8 bit1: 1; + u8 bit2: 1; + u8 bit3: 1; + u8 bit4: 1; + u8 bit5: 1; + u8 bit6: 1; + u8 bit7: 1; + }; + }; }; -struct hclge_comm_query_version_cmd { - __le32 firmware; - __le32 hardware; - __le32 api_caps; - __le32 caps[3]; +struct hclge_dbg_vlan_cfg { + u16 pvid; + u8 accept_tag1; + u8 accept_tag2; + u8 accept_untag1; + u8 accept_untag2; + u8 insert_tag1; + u8 insert_tag2; + u8 shift_tag; + u8 strip_tag1; + u8 strip_tag2; + u8 drop_tag1; + u8 drop_tag2; + u8 pri_only1; + u8 pri_only2; }; -struct hclge_comm_errcode { - u32 imp_errcode; - int common_errno; +struct hclge_dbg_tcam_msg { + u8 stage; + u32 loc; }; struct mvpp2_ethtool_counter { @@ -166348,974 +166852,1211 @@ struct mvpp2_buff_hdr { __le16 reserved5; }; -struct dwc3_xlnx { - int num_clocks; - struct clk_bulk_data *clks; - struct device *dev; +struct brcmstb_usb_pinmap_data; + +struct in_pin { + u32 enable_mask; + u32 value_mask; + struct gpio_desc *gpiod; + const char *name; + struct brcmstb_usb_pinmap_data *pdata; +}; + +struct out_pin; + +struct brcmstb_usb_pinmap_data { void *regs; - int (*pltfm_init)(struct dwc3_xlnx *); - struct phy *usb3_phy; + int in_count; + struct in_pin *in_pins; + int out_count; + struct out_pin *out_pins; }; -enum usb3503_mode { - USB3503_MODE_UNKNOWN = 0, - USB3503_MODE_HUB = 1, - USB3503_MODE_STANDBY = 2, - USB3503_MODE_BYPASS = 3, +struct out_pin { + u32 enable_mask; + u32 value_mask; + u32 changed_mask; + u32 clr_changed_mask; + struct gpio_desc *gpiod; + const char *name; }; -struct usb3503 { - enum usb3503_mode mode; - struct regmap *regmap; - struct device *dev; +struct tegra_usb_soc_info { + unsigned long flags; + unsigned int txfifothresh; + enum usb_dr_mode dr_mode; +}; + +struct tegra_usb { + struct ci_hdrc_platform_data data; + struct platform_device *dev; + const struct tegra_usb_soc_info *soc; + struct usb_phy *phy; struct clk *clk; - u8 port_off_mask; - struct gpio_desc *bypass; - struct gpio_desc *intn; - struct gpio_desc *reset; - struct gpio_desc *connect; - bool secondary_ref_clk; + bool needs_double_reset; }; -struct usb3503_platform_data { - enum usb3503_mode initial_mode; - u8 port_off_mask; +struct sun6i_rtc_clk_data; + +struct sun6i_rtc_dev { + struct rtc_device *rtc; + const struct sun6i_rtc_clk_data *data; + void *base; + int irq; + time64_t alarm; + unsigned long flags; + struct clk_hw hw; + struct clk_hw *int_osc; + struct clk *losc; + struct clk *ext_losc; + spinlock_t lock; }; -struct usb_role_switch { - struct device dev; - struct mutex lock; - enum usb_role role; - struct device *usb2_port; - struct device *usb3_port; - struct device *udc; - usb_role_switch_set_t set; - usb_role_switch_get_t get; - bool allow_userspace_control; +struct sun6i_rtc_clk_data { + unsigned long rc_osc_rate; + unsigned int fixed_prescaler: 16; + unsigned int has_prescaler: 1; + unsigned int has_out_clk: 1; + unsigned int has_losc_en: 1; + unsigned int has_auto_swt: 1; }; -struct alps_protocol_info { - u16 version; - u8 byte0; - u8 mask0; - unsigned int flags; +struct mv64xxx_i2c_regs { + u8 addr; + u8 ext_addr; + u8 data; + u8 control; + u8 status; + u8 clock; + u8 soft_reset; }; -struct alps_model_info { - u8 signature[3]; - struct alps_protocol_info protocol_info; +enum { + MV64XXX_I2C_STATE_INVALID = 0, + MV64XXX_I2C_STATE_IDLE = 1, + MV64XXX_I2C_STATE_WAITING_FOR_START_COND = 2, + MV64XXX_I2C_STATE_WAITING_FOR_RESTART = 3, + MV64XXX_I2C_STATE_WAITING_FOR_ADDR_1_ACK = 4, + MV64XXX_I2C_STATE_WAITING_FOR_ADDR_2_ACK = 5, + MV64XXX_I2C_STATE_WAITING_FOR_SLAVE_ACK = 6, + MV64XXX_I2C_STATE_WAITING_FOR_SLAVE_DATA = 7, }; -struct alps_nibble_commands { - int command; - unsigned char data; +enum { + MV64XXX_I2C_ACTION_INVALID = 0, + MV64XXX_I2C_ACTION_CONTINUE = 1, + MV64XXX_I2C_ACTION_SEND_RESTART = 2, + MV64XXX_I2C_ACTION_SEND_ADDR_1 = 3, + MV64XXX_I2C_ACTION_SEND_ADDR_2 = 4, + MV64XXX_I2C_ACTION_SEND_DATA = 5, + MV64XXX_I2C_ACTION_RCV_DATA = 6, + MV64XXX_I2C_ACTION_RCV_DATA_STOP = 7, + MV64XXX_I2C_ACTION_SEND_STOP = 8, }; -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, +struct mv64xxx_i2c_data { + struct i2c_msg *msgs; + int num_msgs; + int irq; + u32 state; + u32 action; + u32 aborting; + u32 cntl_bits; + void *reg_base; + struct mv64xxx_i2c_regs reg_offsets; + u32 addr1; + u32 addr2; + u32 bytes_left; + u32 byte_posn; + u32 send_stop; + u32 block; + int rc; + u32 freq_m; + u32 freq_n; + struct clk *clk; + struct clk *reg_clk; + wait_queue_head_t waitq; + spinlock_t lock; + struct i2c_msg *msg; + struct i2c_adapter adapter; + bool offload_enabled; + bool errata_delay; + struct reset_control *rstc; + bool irq_clear_inverted; + bool clk_n_base_0; + struct i2c_bus_recovery_info rinfo; + bool atomic; }; -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 mv64xxx_i2c_pdata { + u32 freq_m; + u32 freq_n; + u32 timeout; }; -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 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; }; -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; +enum power_supply_charge_behaviour { + POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0, + POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1, + POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2, +}; + +struct rzg2l_thermal_priv { + struct device *dev; + void *base; + struct thermal_zone_device *zone; + struct reset_control *rstc; + u32 calib0; + u32 calib1; +}; + +enum rz_wdt_type { + WDT_RZG2L = 0, + WDT_RZV2M = 1, +}; + +struct rzg2l_wdt_priv { + void *base; + struct watchdog_device wdev; + struct reset_control *rstc; + unsigned long osc_clk_rate; + unsigned long delay; + unsigned long minimum_assertion_period; + struct clk *pclk; + struct clk *osc_clk; + enum rz_wdt_type devtype; +}; + +struct f_sdhost_priv { + struct clk *clk_iface; + struct clk *clk; + struct reset_control *rst; + u32 vendor_hs200; + struct device *dev; + bool enable_cmd_dat_delay; +}; + +struct sdhci_arasan_soc_ctl_map; + +struct sdhci_arasan_clk_ops; + +struct sdhci_arasan_of_data { + const struct sdhci_arasan_soc_ctl_map *soc_ctl_map; + const struct sdhci_pltfm_data *pdata; + const struct sdhci_arasan_clk_ops *clk_ops; +}; + +struct sdhci_arasan_soc_ctl_field { + u32 reg; + u16 width; + s16 shift; +}; + +struct sdhci_arasan_soc_ctl_map { + struct sdhci_arasan_soc_ctl_field baseclkfreq; + struct sdhci_arasan_soc_ctl_field clockmultiplier; + struct sdhci_arasan_soc_ctl_field support64b; + bool hiword_update; +}; + +struct sdhci_arasan_clk_ops { + const struct clk_ops *sdcardclk_ops; + const struct clk_ops *sampleclk_ops; +}; + +enum dll_reset_type { + PM_DLL_RESET_ASSERT = 0, + PM_DLL_RESET_RELEASE = 1, + PM_DLL_RESET_PULSE = 2, +}; + +struct sdhci_arasan_clk_data { + struct clk_hw sdcardclk_hw; + struct clk *sdcardclk; + struct clk_hw sampleclk_hw; + struct clk *sampleclk; + int clk_phase_in[11]; + int clk_phase_out[11]; + void (*set_clk_delays)(struct sdhci_host *); + void *clk_of_data; +}; + +struct sdhci_arasan_data { + struct sdhci_host *host; + struct clk *clk_ahb; + struct phy *phy; + bool is_phy_on; + bool internal_phy_reg; + bool has_cqe; + struct sdhci_arasan_clk_data clk_data; + const struct sdhci_arasan_clk_ops *clk_ops; + struct regmap *soc_ctl_base; + const struct sdhci_arasan_soc_ctl_map *soc_ctl_map; + unsigned int quirks; +}; + +struct heartbeat_trig_data { + struct led_classdev *led_cdev; + unsigned int phase; + unsigned int period; struct timer_list timer; + unsigned int invert; +}; + +struct clocksource_mmio { + void *reg; + struct clocksource clksrc; +}; + +struct virtproc_info; + +struct virtio_rpmsg_channel { + struct rpmsg_device rpdev; + struct virtproc_info *vrp; +}; + +struct virtproc_info { + struct virtio_device *vdev; + struct virtqueue *rvq; + struct virtqueue *svq; + void *rbufs; + void *sbufs; + unsigned int num_bufs; + unsigned int buf_size; + int last_sbuf; + dma_addr_t bufs_dma; + struct mutex tx_lock; + struct idr endpoints; + struct mutex endpoints_lock; + wait_queue_head_t sendq; + atomic_t sleepers; +}; + +typedef __u16 __rpmsg16; + +struct rpmsg_hdr { + __rpmsg32 src; + __rpmsg32 dst; + __rpmsg32 reserved; + __rpmsg16 len; + __rpmsg16 flags; + u8 data[0]; }; -struct alps_bitmap_point { - int start_bit; - int num_bits; +struct otpc_map { + u32 otpc_row_size; + u16 data_r_offset[4]; + u16 data_w_offset[4]; }; -struct ptp_dte { - void *regs; - struct ptp_clock *ptp_clk; - struct ptp_clock_info caps; +struct otpc_priv { struct device *dev; - u32 ts_ovf_last; - u32 ts_wrap_cnt; - spinlock_t lock; - u32 reg_val[4]; + void *base; + const struct otpc_map *map; + struct nvmem_config *config; }; -struct f_sdhost_priv { - struct clk *clk_iface; - struct clk *clk; - struct reset_control *rst; - u32 vendor_hs200; - struct device *dev; - bool enable_cmd_dat_delay; -}; +struct mux_chip; -struct cqhci_slot { - struct mmc_request *mrq; - unsigned int flags; +struct mux_control { + struct semaphore lock; + struct mux_chip *chip; + int cached_state; + unsigned int states; + int idle_state; + ktime_t last_change; }; -struct events_queue { - size_t sz; - struct kfifo kfifo; - struct work_struct notify_work; - struct workqueue_struct *wq; +struct mux_control_ops; + +struct mux_chip { + unsigned int controllers; + struct mux_control *mux; + struct device dev; + int id; + const struct mux_control_ops *ops; }; -struct scmi_notify_instance; +struct mux_control_ops { + int (*set)(struct mux_control *, int); +}; -struct scmi_event_header; +struct mux_state { + struct mux_control *mux; + unsigned int state; +}; -struct scmi_registered_event; +struct snd_fasync { + struct fasync_struct *fasync; + int signal; + int poll; + int on; + struct list_head list; +}; -struct scmi_registered_events_desc { - u8 id; - const struct scmi_event_ops *ops; - struct events_queue equeue; - struct scmi_notify_instance *ni; - struct scmi_event_header *eh; - size_t eh_sz; - void *in_flight; - int num_events; - struct scmi_registered_event **registered_events; - struct mutex registered_mtx; - const struct scmi_protocol_handle *ph; - struct hlist_head registered_events_handlers[64]; +struct snd_pci_quirk { + unsigned short subvendor; + unsigned short subdevice; + unsigned short subdevice_mask; + int value; }; -struct scmi_notify_instance { - void *gid; - struct scmi_handle *handle; - struct work_struct init_work; - struct workqueue_struct *notify_wq; - struct mutex pending_mtx; - struct scmi_registered_events_desc **registered_protocols; - struct hlist_head pending_events_handlers[16]; +struct snd_pcm_chmap_elem { + unsigned char channels; + unsigned char map[15]; }; -struct scmi_event_header { - ktime_t timestamp; - size_t payld_sz; - unsigned char evt_id; - unsigned char payld[0]; +enum { + SNDRV_PCM_TSTAMP_NONE = 0, + SNDRV_PCM_TSTAMP_ENABLE = 1, + SNDRV_PCM_TSTAMP_LAST = 1, }; -struct scmi_registered_event { - struct scmi_registered_events_desc *proto; - const struct scmi_event *evt; - void *report; - u32 num_sources; - refcount_t *sources; - struct mutex sources_mtx; +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, }; -struct scmi_event_handler { - u32 key; - refcount_t users; - struct scmi_registered_event *r_evt; - struct blocking_notifier_head chain; - struct hlist_node hash; - bool enabled; +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, }; -struct scmi_notifier_devres { - const struct scmi_handle *handle; - u8 proto_id; - u8 evt_id; - u32 __src_id; - u32 *src_id; - struct notifier_block *nb; +typedef int (*pcm_transfer_f)(struct snd_pcm_substream *, int, unsigned long, struct iov_iter *, unsigned long); + +struct snd_ratden { + unsigned int num_min; + unsigned int num_max; + unsigned int num_step; + unsigned int den; }; -struct tegra210_bpmp { - void *atomics; - void *arb_sema; - struct irq_data *tx_irq_data; +struct snd_pcm_channel_info { + unsigned int channel; + __kernel_off_t offset; + unsigned int first; + unsigned int step; }; -struct arm_mhu___2; +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 mhu_db_channel { - struct arm_mhu___2 *mhu; - unsigned int pchan; - unsigned int doorbell; +struct snd_ratnum { + unsigned int num; + unsigned int den_min; + unsigned int den_max; + unsigned int den_step; }; -struct mhu_db_link { - unsigned int irq; - void *tx_reg; - void *rx_reg; +struct snd_pcm_hw_constraint_list { + const unsigned int *list; + unsigned int count; + unsigned int mask; }; -struct arm_mhu___2 { - void *base; - struct mhu_db_link mlink[3]; - struct mbox_controller mbox; - struct device *dev; +struct snd_pcm_hw_constraint_ranges { + unsigned int count; + const struct snd_interval *ranges; + unsigned int mask; }; -enum mrq_bwmgr_int_cmd { - CMD_BWMGR_INT_QUERY_ABI = 1, - CMD_BWMGR_INT_CALC_AND_SET = 2, - CMD_BWMGR_INT_CAP_SET = 3, +struct snd_pcm_hw_constraint_ratnums { + int nrats; + const struct snd_ratnum *rats; }; -struct cmd_bwmgr_int_query_abi_request { - uint32_t type; +struct snd_pcm_hw_constraint_ratdens { + int nrats; + const struct snd_ratden *rats; }; -struct cmd_bwmgr_int_calc_and_set_request { - uint32_t client_id; - uint32_t niso_bw; - uint32_t iso_bw; - uint32_t mc_floor; - uint8_t floor_unit; -} __attribute__((packed)); +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, bool); -struct cmd_bwmgr_int_cap_set_request { - uint64_t rate; +enum tc_mq_command { + TC_MQ_CREATE = 0, + TC_MQ_DESTROY = 1, + TC_MQ_STATS = 2, + TC_MQ_GRAFT = 3, }; -struct mrq_bwmgr_int_request { - uint32_t cmd; +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 cmd_bwmgr_int_query_abi_request query_abi; - struct cmd_bwmgr_int_calc_and_set_request bwmgr_calc_set_req; - struct cmd_bwmgr_int_cap_set_request bwmgr_cap_set_req; + struct tc_qopt_offload_stats stats; + struct tc_mq_opt_offload_graft_params graft_params; }; -} __attribute__((packed)); +}; -struct cmd_bwmgr_int_calc_and_set_response { - uint64_t rate; +struct mq_sched { + struct Qdisc **qdiscs; }; -struct mrq_bwmgr_int_response { - union { - struct cmd_bwmgr_int_calc_and_set_response bwmgr_calc_set_resp; - }; +typedef void (*btf_trace_bpf_test_finish)(void *, int *); + +struct bpf_test_timer { + enum { + NO_PREEMPT = 0, + NO_MIGRATE = 1, + } mode; + u32 i; + u64 time_start; + u64 time_spent; }; -struct rockchip_efuse_chip { - struct device *dev; - void *base; - struct clk *clk; +struct bpf_fentry_test_t { + struct bpf_fentry_test_t *a; }; -enum timer_tread_format { - TREAD_FORMAT_NONE = 0, - TREAD_FORMAT_TIME64 = 1, - TREAD_FORMAT_TIME32 = 2, +struct trace_event_raw_bpf_test_finish { + struct trace_entry ent; + int err; + char __data[0]; }; -enum { - SNDRV_TIMER_IOCTL_GPARAMS32 = 1077695492, - SNDRV_TIMER_IOCTL_INFO32 = 2162185233, - SNDRV_TIMER_IOCTL_STATUS_COMPAT32 = 1079530516, - SNDRV_TIMER_IOCTL_STATUS_COMPAT64 = 1080054804, +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 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 xdp_page_head { + struct xdp_buff orig_ctx; + struct xdp_buff ctx; + union { + struct { + struct {} __empty_frame; + struct xdp_frame frame[0]; + }; + struct { + struct {} __empty_data; + u8 data[0]; + }; + }; }; -struct 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 trace_event_data_offsets_bpf_test_finish {}; + +struct prog_test_member1 { + int a; }; -struct snd_timer_gparams32 { - struct snd_timer_id tid; - u32 period_num; - u32 period_den; - unsigned char reserved[32]; +struct prog_test_member { + struct prog_test_member1 m; + int c; }; -struct snd_timer_gparams { - struct snd_timer_id tid; - unsigned long period_num; - unsigned long period_den; - unsigned char reserved[32]; +struct prog_test_ref_kfunc { + int a; + int b; + struct prog_test_member memb; + struct prog_test_ref_kfunc *next; + refcount_t cnt; }; -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 bpf_raw_tp_test_run_info { + struct bpf_prog *prog; + void *ctx; + u32 retval; }; -struct snd_timer_read; +struct nf_queue_entry; -struct snd_timer_tread64; +struct nf_queue_handler { + int (*outfn)(struct nf_queue_entry *, unsigned int); + void (*nf_hook_drop)(struct net *); +}; -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 nf_queue_entry { + struct list_head list; + struct sk_buff *skb; + unsigned int id; + unsigned int hook_index; + struct net_device *physin; + struct net_device *physout; + struct nf_hook_state state; + u16 size; }; -struct snd_timer_read { - unsigned int resolution; - unsigned int ticks; +struct nf_bridge_info { + enum { + BRNF_PROTO_UNCHANGED = 0, + BRNF_PROTO_8021Q = 1, + BRNF_PROTO_PPPOE = 2, + } orig_proto: 8; + u8 pkt_otherhost: 1; + u8 in_prerouting: 1; + u8 bridged_dnat: 1; + u8 sabotage_in_done: 1; + __u16 frag_max_size; + int physinif; + struct net_device *physoutdev; + union { + __be32 ipv4_daddr; + struct in6_addr ipv6_daddr; + char neigh_header[8]; + }; }; -struct snd_timer_tread64 { - int event; - u8 pad1[4]; - s64 tstamp_sec; - s64 tstamp_nsec; - unsigned int val; - u8 pad2[4]; +struct ip_rt_info { + __be32 daddr; + __be32 saddr; + u_int8_t tos; + u_int32_t mark; }; -struct snd_timer_select { - struct snd_timer_id id; - unsigned char reserved[32]; +struct ip6_rt_info { + struct in6_addr daddr; + struct in6_addr saddr; + u_int32_t mark; }; -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 snmp_mib { + const char *name; + int entry; }; -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]; +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_FN_ATTR_DEVLINK = 5, + __DEVLINK_PORT_FUNCTION_ATTR_MAX = 6, + DEVLINK_PORT_FUNCTION_ATTR_MAX = 5, }; -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]; +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_CAP_IPSEC_CRYPTO_BIT = 2, + DEVLINK_PORT_FN_ATTR_CAP_IPSEC_PACKET_BIT = 3, + __DEVLINK_PORT_FN_ATTR_CAPS_MAX = 4, }; -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 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 snd_timer_tread32 { - int event; - s32 tstamp_sec; - s32 tstamp_nsec; - unsigned int val; +struct decryptor_desc { + u8 iv[16]; + struct skcipher_request *req; + struct scatterlist frags[4]; + int fragno; + int fraglen; }; -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 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 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]; +typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long); + +typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long); + +struct pt_regs_offset { + const char *name; + int offset; }; -typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); +enum compat_regset { + REGSET_COMPAT_GPR = 0, + REGSET_COMPAT_VFP = 1, +}; -typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64); +enum ptrace_syscall_dir { + PTRACE_SYSCALL_ENTER = 0, + PTRACE_SYSCALL_EXIT = 1, +}; -typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64); +struct trace_event_raw_sys_enter { + struct trace_entry ent; + long id; + unsigned long args[6]; + char __data[0]; +}; -typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); +struct trace_event_raw_sys_exit { + struct trace_entry ent; + long id; + long ret; + char __data[0]; +}; -typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64); +struct user_sve_header { + __u32 size; + __u32 max_size; + __u16 vl; + __u16 max_vl; + __u16 flags; + __u16 __reserved; +}; -typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); +struct trace_event_data_offsets_sys_enter {}; -struct bpf_stab { - struct bpf_map map; - struct sock **sks; - struct sk_psock_progs progs; - raw_spinlock_t lock; - long: 64; - long: 64; +struct trace_event_data_offsets_sys_exit {}; + +struct user_za_header { + __u32 size; + __u32 max_size; + __u16 vl; + __u16 max_vl; + __u16 flags; + __u16 __reserved; }; -struct bpf_shtab_bucket; +struct user_pac_mask { + __u64 data_mask; + __u64 insn_mask; +}; -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: 64; +struct aes_block { + u8 b[16]; }; -struct bpf_shtab_bucket { - struct hlist_head head; - raw_spinlock_t lock; +typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, unsigned long); + +typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *); + +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 bpf_shtab_elem { +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; - u32 hash; - struct sock *sk; - struct hlist_node node; - u8 key[0]; + struct vm_struct *stack_vm_area; }; -struct sock_map_seq_info { - struct bpf_map *map; - struct sock *sk; - u32 index; +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 bpf_iter__sockmap { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; - union { - void *key; - }; +struct trace_event_data_offsets_task_newtask {}; + +struct trace_event_data_offsets_task_rename {}; + +struct nbcon_state { union { - struct sock *sk; + unsigned int atom; + struct { + unsigned int prio: 2; + unsigned int req_prio: 2; + unsigned int unsafe: 1; + unsigned int unsafe_takeover: 1; + unsigned int cpu: 24; + }; }; }; -struct sock_hash_seq_info { - struct bpf_map *map; - struct bpf_shtab *htab; - u32 bucket_id; +enum desc_state___2 { + desc_miss = -1, + desc_reserved = 0, + desc_committed = 1, + desc_finalized = 2, + desc_reusable = 3, }; -enum { - ETHTOOL_STATS_ETH_PHY = 0, - ETHTOOL_STATS_ETH_MAC = 1, - ETHTOOL_STATS_ETH_CTRL = 2, - ETHTOOL_STATS_RMON = 3, - __ETHTOOL_STATS_CNT = 4, +struct prb_data_block { + unsigned long id; + char data[0]; }; -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, +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; }; -enum { - ETHTOOL_A_STATS_GRP_UNSPEC = 0, - ETHTOOL_A_STATS_GRP_PAD = 1, - ETHTOOL_A_STATS_GRP_ID = 2, - ETHTOOL_A_STATS_GRP_SS_ID = 3, - ETHTOOL_A_STATS_GRP_STAT = 4, - ETHTOOL_A_STATS_GRP_HIST_RX = 5, - ETHTOOL_A_STATS_GRP_HIST_TX = 6, - ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, - ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, - ETHTOOL_A_STATS_GRP_HIST_VAL = 9, - __ETHTOOL_A_STATS_GRP_CNT = 10, - ETHTOOL_A_STATS_GRP_MAX = 9, +struct trace_event_raw_alarmtimer_suspend { + struct trace_entry ent; + s64 expires; + unsigned char alarm_type; + char __data[0]; }; -enum { - ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0, - __ETHTOOL_A_STATS_ETH_PHY_CNT = 1, - ETHTOOL_A_STATS_ETH_PHY_MAX = 0, +struct trace_event_raw_alarm_class { + struct trace_entry ent; + void *alarm; + unsigned char alarm_type; + s64 expires; + s64 now; + char __data[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, +struct trace_event_data_offsets_alarmtimer_suspend {}; + +struct trace_event_data_offsets_alarm_class {}; + +struct bpf_hrtimer { + struct hrtimer timer; + struct bpf_map *map; + struct bpf_prog *prog; + void __attribute__((btf_type_tag("rcu"))) *callback_fn; + void *value; }; -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, +struct bpf_bprintf_buffers { + char bin_args[512]; + char buf[1024]; }; 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, + BPF_F_TIMER_ABS = 1, + BPF_F_TIMER_CPU_PIN = 2, }; -struct stats_req_info { - struct ethnl_req_info base; - unsigned long stat_mask[1]; - enum ethtool_mac_stats_src src; -}; +typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *); -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; -}; +typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64); -enum { - UDP_BPF_IPV4 = 0, - UDP_BPF_IPV6 = 1, - UDP_BPF_NUM_PROTS = 2, +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); + +struct bpf_spin_lock; + +typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *); + +struct bpf_spin_lock { + __u32 val; }; -struct unix_domain { - struct auth_domain h; +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; }; -struct unix_gid { - struct cache_head h; - kuid_t uid; - struct group_info *gi; - struct callback_head rcu; +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; }; -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; +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_refcount { + int: 32; }; -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, +struct bpf_rb_node_kern { + struct rb_node rb_node; + void *owner; }; -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 bpf_rb_node { + long: 64; + long: 64; + long: 64; + long: 64; }; -struct xen_p2m_entry { - unsigned long pfn; - unsigned long mfn; - unsigned long nr_pages; - struct rb_node rbnode_phys; +struct bpf_timer { + long: 64; + long: 64; }; -enum KTHREAD_BITS { - KTHREAD_IS_PER_CPU = 0, - KTHREAD_SHOULD_STOP = 1, - KTHREAD_SHOULD_PARK = 2, +struct bpf_dynptr { + long: 64; + long: 64; }; -enum { - KTW_FREEZABLE = 1, +struct bpf_list_node_kern { + struct list_head list_head; + void *owner; }; -struct kthread_create_info { - char *full_name; - int (*threadfn)(void *); - void *data; - int node; - struct task_struct *result; - struct completion *done; - struct list_head list; +struct bpf_list_node { + long: 64; + long: 64; + long: 64; }; -struct kthread_flush_work { - struct kthread_work work; - struct completion done; +struct bpf_list_head { + long: 64; + long: 64; }; -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 bpf_rb_root { + long: 64; + long: 64; }; -typedef void (*btf_trace_console)(void *, const char *, size_t); - -struct latched_seq { - seqcount_latch_t latch; - u64 val[2]; +struct bpf_throw_ctx { + struct bpf_prog_aux *aux; + u64 sp; + u64 bp; + int cnt; }; -struct console_cmdline { - char name[16]; - int index; - bool user_specified; - char *options; +struct bp_slots_histogram { + atomic_t *count; }; -struct printk_buffers { - char outbuf[2048]; - char scratchbuf[1024]; +struct bp_cpuinfo { + unsigned int cpu_pinned; + struct bp_slots_histogram tsk_pinned; }; -enum devkmsg_log_masks { - DEVKMSG_LOG_MASK_ON = 1, - DEVKMSG_LOG_MASK_OFF = 2, - DEVKMSG_LOG_MASK_LOCK = 4, +struct context_tracking { + atomic_t state; + long dynticks_nesting; + long dynticks_nmi_nesting; }; -enum printk_info_flags { - LOG_NEWLINE = 2, - LOG_CONT = 8, +enum shmem_param { + Opt_gid___8 = 0, + Opt_huge = 1, + Opt_mode___5 = 2, + Opt_mpol = 3, + Opt_nr_blocks = 4, + Opt_nr_inodes___2 = 5, + Opt_size___2 = 6, + Opt_uid___7 = 7, + Opt_inode32 = 8, + Opt_inode64 = 9, + Opt_noswap = 10, + Opt_quota___3 = 11, + Opt_usrquota___3 = 12, + Opt_grpquota___3 = 13, + Opt_usrquota_block_hardlimit = 14, + Opt_usrquota_inode_hardlimit = 15, + Opt_grpquota_block_hardlimit = 16, + Opt_grpquota_inode_hardlimit = 17, }; -enum con_msg_format_flags { - MSG_FORMAT_DEFAULT = 0, - MSG_FORMAT_SYSLOG = 1, +struct shmem_quota_limits { + qsize_t usrquota_bhardlimit; + qsize_t usrquota_ihardlimit; + qsize_t grpquota_bhardlimit; + qsize_t grpquota_ihardlimit; }; -struct trace_event_raw_console { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; +struct shmem_sb_info { + unsigned long max_blocks; + struct percpu_counter used_blocks; + unsigned long max_inodes; + unsigned long free_ispace; + raw_spinlock_t stat_lock; + umode_t mode; + unsigned char huge; + kuid_t uid; + kgid_t gid; + bool full_inums; + bool noswap; + ino_t next_ino; + ino_t __attribute__((btf_type_tag("percpu"))) *ino_batch; + struct mempolicy *mpol; + spinlock_t shrinklist_lock; + struct list_head shrinklist; + unsigned long shrinklist_len; + struct shmem_quota_limits qlimits; }; -struct trace_event_data_offsets_console { - u32 msg; -}; +typedef int (*initxattrs)(struct inode *, const struct xattr *, void *); -struct printk_message { - struct printk_buffers *pbufs; - unsigned int outbuf_len; - u64 seq; - unsigned long dropped; +struct shmem_falloc { + wait_queue_head_t *waitq; + unsigned long start; + unsigned long next; + unsigned long nr_falloced; + unsigned long nr_unswapped; }; -struct devkmsg_user { - atomic64_t seq; - struct ratelimit_state rs; - struct mutex lock; - struct printk_buffers pbufs; +struct shmem_options { + unsigned long long blocks; + unsigned long long inodes; + struct mempolicy *mpol; + kuid_t uid; + kgid_t gid; + umode_t mode; + bool full_inums; + int huge; + int seen; + bool noswap; + unsigned short quota_types; + struct shmem_quota_limits qlimits; }; -enum kprobe_slot_state { - SLOT_CLEAN = 0, - SLOT_DIRTY = 1, - SLOT_USED = 2, +struct node_hstate { + struct kobject *hugepages_kobj; + struct kobject *hstate_kobjs[4]; }; -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]; +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 kprobe_blacklist_entry { +struct huge_bootmem_page { struct list_head list; - unsigned long start_addr; - unsigned long end_addr; + struct hstate *hstate; }; -struct bpf_bloom_filter { - struct bpf_map map; - u32 bitset_mask; - u32 hash_seed; - u32 nr_hash_funcs; - unsigned long bitset[0]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); + +struct dio { + int flags; + blk_opf_t opf; + struct gendisk *bio_disk; + struct inode *inode; + loff_t i_size; + dio_iodone_t *end_io; + bool is_pinned; + void *private; + spinlock_t bio_lock; + int page_errors; + int is_async; + bool defer_completion; + bool should_dirty; + int io_error; + unsigned long refcount; + struct bio *bio_list; + struct task_struct *waiter; + struct kiocb *iocb; + ssize_t result; + union { + struct page *pages[64]; + struct work_struct complete_work; + }; long: 64; }; -struct reuseport_array { - struct bpf_map map; - struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0]; +struct dio_submit { + struct bio *bio; + unsigned int blkbits; + unsigned int blkfactor; + unsigned int start_zero_done; + int pages_in_io; + sector_t block_in_file; + unsigned int blocks_available; + int reap_counter; + sector_t final_block_in_request; + int boundary; + get_block_t *get_block; + loff_t logical_offset_in_bio; + sector_t final_block_in_bio; + sector_t next_block_for_io; + struct page *cur_page; + unsigned int cur_page_offset; + unsigned int cur_page_len; + sector_t cur_page_block; + loff_t cur_page_fs_offset; + struct iov_iter *iter; + unsigned int head; + unsigned int tail; + size_t from; + size_t to; }; -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 dqstats { + unsigned long stat[8]; + struct percpu_counter counter[8]; +}; -struct memcg_path { - local_lock_t lock; - char __attribute__((btf_type_tag("rcu"))) *buf; - local_t buf_idx; +struct quota_module_name { + int qm_fmt_id; + char *qm_mod_name; }; -struct trace_event_raw_mmap_lock { - struct trace_entry ent; - struct mm_struct *mm; - u32 __data_loc_memcg_path; - bool write; - char __data[0]; +enum { + DQF_INFO_DIRTY_B = 17, }; -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]; +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, }; -struct trace_event_data_offsets_mmap_lock { - u32 memcg_path; +enum { + DQF_ROOT_SQUASH_B = 0, + DQF_SYS_FILE_B = 16, + DQF_PRIVATE = 17, }; -struct trace_event_data_offsets_mmap_lock_acquire_returned { - u32 memcg_path; +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, }; -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 dquot_warn { + struct super_block *w_sb; + struct kqid w_dq_id; + short w_type; }; struct ext4_dir_entry_tail { @@ -167421,16553 +168162,18659 @@ typedef enum { DIRENT_HTREE = 3, } dirblock_type_t; -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 nfs4_ds_server { - struct list_head list; - struct rpc_clnt *rpc_clnt; -}; - -struct p9_getlock { - u8 type; - u64 start; - u64 length; - u32 proc_id; - char *client_id; +struct squashfs_base_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; }; -struct p9_flock { - u8 type; - u32 flags; - u64 start; - u64 length; - u32 proc_id; - char *client_id; +struct squashfs_dev_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 rdev; }; -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 squashfs_ldev_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 rdev; + __le32 xattr; }; -struct blk_rq_stat; - -struct blk_stat_callback { - struct list_head list; - struct timer_list timer; - struct blk_rq_stat __attribute__((btf_type_tag("percpu"))) *cpu_stat; - int (*bucket_fn)(const struct request *); - unsigned int buckets; - struct blk_rq_stat *stat; - void (*timer_fn)(struct blk_stat_callback *); - void *data; - struct callback_head rcu; +struct squashfs_symlink_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 symlink_size; + char symlink[0]; }; -struct blk_rq_stat { - u64 mean; - u64 min; - u64 max; - u32 nr_samples; - u64 batch; +struct squashfs_reg_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 start_block; + __le32 fragment; + __le32 offset; + __le32 file_size; + __le16 block_list[0]; }; -struct blk_queue_stats { - struct list_head callbacks; - spinlock_t lock; - int accounting; +struct squashfs_lreg_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le64 start_block; + __le64 file_size; + __le64 sparse; + __le32 nlink; + __le32 fragment; + __le32 offset; + __le32 xattr; + __le16 block_list[0]; }; -struct show_busy_params { - struct seq_file *m; - struct blk_mq_hw_ctx *hctx; +struct squashfs_dir_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 start_block; + __le32 nlink; + __le16 file_size; + __le16 offset; + __le32 parent_inode; }; -struct mst_intc_chip_data { - raw_spinlock_t lock; - unsigned int irq_start; - unsigned int nr_irqs; - void *base; - bool no_eoi; - struct list_head entry; - u16 saved_polarity_conf[4]; +struct squashfs_ldir_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 file_size; + __le32 start_block; + __le32 parent_inode; + __le16 i_count; + __le16 offset; + __le32 xattr; + struct squashfs_dir_index index[0]; }; -struct tegra_xusb_fuse_calibration { - u32 *hs_curr_level; - u32 hs_squelch; - u32 hs_term_range_adj; - u32 rpd_ctrl; +struct squashfs_ipc_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; }; -struct tegra186_xusb_padctl_context { - u32 vbus_id; - u32 usb2_pad_mux; - u32 usb2_port_cap; - u32 ss_port_cap; +struct squashfs_lipc_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 xattr; }; -struct tegra186_xusb_padctl { - struct tegra_xusb_padctl base; - void *ao_regs; - struct tegra_xusb_fuse_calibration calib; - struct clk *usb2_trk_clk; - unsigned int bias_pad_enable; - struct tegra186_xusb_padctl_context context; +union squashfs_inode { + struct squashfs_base_inode base; + struct squashfs_dev_inode dev; + struct squashfs_ldev_inode ldev; + struct squashfs_symlink_inode symlink; + struct squashfs_reg_inode reg; + struct squashfs_lreg_inode lreg; + struct squashfs_dir_inode dir; + struct squashfs_ldir_inode ldir; + struct squashfs_ipc_inode ipc; + struct squashfs_lipc_inode lipc; }; -struct tegra_xusb_usb3_lane { - struct tegra_xusb_lane base; -}; +struct idmap_legacy_upcalldata; -struct tegra_xusb_usb3_pad { - struct tegra_xusb_pad base; - unsigned int enable; - struct mutex lock; +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 meson8_pmx_data { - bool is_gpio; - unsigned int reg; - unsigned int bit; +struct idmap_msg { + __u8 im_type; + __u8 im_conv; + char im_name[128]; + __u32 im_id; + __u8 im_status; }; -enum ioctrl_regs___6 { - POCCTRL0___2 = 0, - POCCTRL1 = 1, - POCCTRL2___2 = 2, - POCCTRL3 = 3, - TDSELCTRL___3 = 4, +struct idmap_legacy_upcalldata { + struct rpc_pipe_msg pipe_msg; + struct idmap_msg idmap_msg; + struct key *authkey; + struct idmap *idmap; }; enum { - GP_LAST___4 = 174, - PIN_DCUTCK_LPDCLK = 175, - PIN_DCUTDI_LPDI = 176, - PIN_DCUTMS = 177, - PIN_DCUTRST_N = 178, - PIN_DU_DOTCLKIN = 179, - PIN_EXTALR = 180, - PIN_FSCLKST = 181, - PIN_FSCLKST_N___3 = 182, - PIN_PRESETOUT_N___3 = 183, - PIN_VDDQ_AVB = 184, - PIN_VDDQ_GE = 185, -}; - -struct acpi_gpio_event { - struct list_head node; - acpi_handle handle; - irq_handler_t handler; - unsigned int pin; - unsigned int irq; - unsigned long irqflags; - bool irq_is_wake; - bool irq_requested; - struct gpio_desc *desc; -}; - -struct acpi_gpio_connection { - struct list_head node; - unsigned int pin; - struct gpio_desc *desc; -}; - -struct acpi_gpio_chip { - struct acpi_connection_info conn_info; - struct list_head conns; - struct mutex conn_lock; - struct gpio_chip *chip; - struct list_head events; - struct list_head deferred_req_irqs_list_entry; -}; - -struct acpi_gpio_info { - struct acpi_device *adev; - enum gpiod_flags flags; - bool gpioint; - int pin_config; - int polarity; - int triggering; - bool wake_capable; - unsigned int debounce; - unsigned int quirks; -}; - -struct acpi_gpio_lookup { - struct acpi_gpio_info info; - int index; - u16 pin_index; - bool active_low; - struct gpio_desc *desc; - int n; -}; - -struct acpi_gpiolib_dmi_quirk { - bool no_edge_events_on_boot; - char *ignore_wake; - char *ignore_interrupt; -}; - -struct irq_override_cmp { - const struct dmi_system_id *system; - unsigned char irq; - unsigned char triggering; - unsigned char polarity; - unsigned char shareable; - bool override; + Opt_find_uid = 0, + Opt_find_gid = 1, + Opt_find_user = 2, + Opt_find_group = 3, + Opt_find_err = 4, }; -struct res_proc_context { - struct list_head *list; - int (*preproc)(struct acpi_resource *, void *); - void *preproc_data; - int count; - int error; -}; +struct fscache_cookie; -struct acpi_get_devices_info { - acpi_walk_callback user_function; - void *context; - const char *hid; +struct acomp_alg { + int (*compress)(struct acomp_req *); + int (*decompress)(struct acomp_req *); + void (*dst_free)(struct scatterlist *); + int (*init)(struct crypto_acomp *); + void (*exit)(struct crypto_acomp *); + unsigned int reqsize; + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; }; -struct clk_plldig { - struct clk_hw hw; - void *regs; - unsigned int vco_freq; +struct crypto_istat_compress { + atomic64_t compress_cnt; + atomic64_t compress_tlen; + atomic64_t decompress_cnt; + atomic64_t decompress_tlen; + atomic64_t err_cnt; }; -struct clkgate_separated { - struct clk_hw hw; - void *enable; - u8 bit_idx; - u8 flags; - spinlock_t *lock; +struct crypto_report_acomp { + char type[64]; }; -struct _ccu_nk { - unsigned long n; - unsigned long min_n; - unsigned long max_n; - unsigned long k; - unsigned long min_k; - unsigned long max_k; +struct bio_map_data { + bool is_our_pages: 1; + bool is_null_mapped: 1; + struct iov_iter iter; + struct iovec iov[0]; }; -struct mv_xor_v2_descriptor; - -struct mv_xor_v2_sw_desc; - -struct mv_xor_v2_device { +struct disk_events { + struct list_head node; + struct gendisk *disk; spinlock_t lock; - void *dma_base; - void *glob_base; - struct clk *clk; - struct clk *reg_clk; - struct tasklet_struct irq_tasklet; - struct list_head free_sw_desc; - struct dma_device dmadev; - struct dma_chan dmachan; - dma_addr_t hw_desq; - struct mv_xor_v2_descriptor *hw_desq_virt; - struct mv_xor_v2_sw_desc *sw_desq; - int desc_size; - unsigned int npendings; - unsigned int hw_queue_idx; - unsigned int irq; -}; - -struct mv_xor_v2_descriptor { - u16 desc_id; - u16 flags; - u32 crc32_result; - u32 desc_ctrl; - u32 buff_size; - u32 fill_pattern_src_addr[4]; - u32 data_buff_addr[12]; - u32 reserved[12]; -}; - -struct mv_xor_v2_sw_desc { - int idx; - struct dma_async_tx_descriptor async_tx; - struct mv_xor_v2_descriptor hw_desc; - struct list_head free_list; -}; - -struct dpio_cmd_open { - __le32 dpio_id; -}; - -struct dpio_rsp_get_attr { - __le32 id; - __le16 qbman_portal_id; - u8 num_priorities; - u8 channel_mode; - __le64 qbman_portal_ce_addr; - __le64 qbman_portal_ci_addr; - __le32 qbman_version; - __le32 pad1; - __le32 clk; -}; - -struct dpio_stashing_dest { - u8 sdest; -}; - -struct qcom_smem_state { - struct kref refcount; - bool orphan; - struct list_head list; - struct device_node *of_node; - void *priv; - struct qcom_smem_state_ops ops; -}; - -struct xen_device_domain_owner { - domid_t domain; - struct pci_dev *dev; - struct list_head list; -}; - -struct physdev_pci_device_add { - uint16_t seg; - uint8_t bus; - uint8_t devfn; - uint32_t flags; - struct { - uint8_t bus; - uint8_t devfn; - } physfn; - uint32_t optarr[0]; -}; - -struct physdev_manage_pci_ext { - uint8_t bus; - uint8_t devfn; - unsigned int is_extfn; - unsigned int is_virtfn; - struct { - uint8_t bus; - uint8_t devfn; - } physfn; -}; - -struct physdev_manage_pci { - uint8_t bus; - uint8_t devfn; -}; - -struct mt6358_regulator_info { - struct regulator_desc desc; - u32 status_reg; - u32 qi; - const u32 *index_table; - unsigned int n_table; - u32 da_vsel_reg; - u32 da_vsel_mask; - u32 modeset_reg; - u32 modeset_mask; -}; - -enum { - MT6366_ID_VDRAM1 = 0, - MT6366_ID_VCORE = 1, - MT6366_ID_VPA = 2, - MT6366_ID_VPROC11 = 3, - MT6366_ID_VPROC12 = 4, - MT6366_ID_VGPU = 5, - MT6366_ID_VS2 = 6, - MT6366_ID_VMODEM = 7, - MT6366_ID_VS1 = 8, - MT6366_ID_VDRAM2 = 9, - MT6366_ID_VSIM1 = 10, - MT6366_ID_VIBR = 11, - MT6366_ID_VRF12 = 12, - MT6366_ID_VIO18 = 13, - MT6366_ID_VUSB = 14, - MT6366_ID_VCN18 = 15, - MT6366_ID_VFE28 = 16, - MT6366_ID_VSRAM_PROC11 = 17, - MT6366_ID_VCN28 = 18, - MT6366_ID_VSRAM_OTHERS = 19, - MT6366_ID_VSRAM_GPU = 20, - MT6366_ID_VXO22 = 21, - MT6366_ID_VEFUSE = 22, - MT6366_ID_VAUX18 = 23, - MT6366_ID_VMCH = 24, - MT6366_ID_VBIF28 = 25, - MT6366_ID_VSRAM_PROC12 = 26, - MT6366_ID_VEMC = 27, - MT6366_ID_VIO28 = 28, - MT6366_ID_VA12 = 29, - MT6366_ID_VRF18 = 30, - MT6366_ID_VCN33 = 31, - MT6366_ID_VMC = 32, - MT6366_ID_VAUD28 = 33, - MT6366_ID_VSIM2 = 34, - MT6366_ID_RG_MAX = 35, -}; - -enum { - MT6358_ID_VDRAM1 = 0, - MT6358_ID_VCORE = 1, - MT6358_ID_VPA = 2, - MT6358_ID_VPROC11 = 3, - MT6358_ID_VPROC12 = 4, - MT6358_ID_VGPU = 5, - MT6358_ID_VS2 = 6, - MT6358_ID_VMODEM = 7, - MT6358_ID_VS1 = 8, - MT6358_ID_VDRAM2 = 9, - MT6358_ID_VSIM1 = 10, - MT6358_ID_VIBR = 11, - MT6358_ID_VRF12 = 12, - MT6358_ID_VIO18 = 13, - MT6358_ID_VUSB = 14, - MT6358_ID_VCAMIO = 15, - MT6358_ID_VCAMD = 16, - MT6358_ID_VCN18 = 17, - MT6358_ID_VFE28 = 18, - MT6358_ID_VSRAM_PROC11 = 19, - MT6358_ID_VCN28 = 20, - MT6358_ID_VSRAM_OTHERS = 21, - MT6358_ID_VSRAM_GPU = 22, - MT6358_ID_VXO22 = 23, - MT6358_ID_VEFUSE = 24, - MT6358_ID_VAUX18 = 25, - MT6358_ID_VMCH = 26, - MT6358_ID_VBIF28 = 27, - MT6358_ID_VSRAM_PROC12 = 28, - MT6358_ID_VCAMA1 = 29, - MT6358_ID_VEMC = 30, - MT6358_ID_VIO28 = 31, - MT6358_ID_VA12 = 32, - MT6358_ID_VRF18 = 33, - MT6358_ID_VCN33 = 34, - MT6358_ID_VCAMA2 = 35, - MT6358_ID_VMC = 36, - MT6358_ID_VLDO28 = 37, - MT6358_ID_VAUD28 = 38, - MT6358_ID_VSIM2 = 39, - MT6358_ID_RG_MAX = 40, + struct mutex block_mutex; + int block; + unsigned int pending; + unsigned int clearing; + long poll_msecs; + struct delayed_work dwork; }; -struct tty_file_private { - struct tty_struct *tty; +struct io_rename { struct file *file; - struct list_head list; -}; - -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; -}; - -enum imx_tx_state { - OFF___2 = 0, - WAIT_AFTER_RTS = 1, - SEND = 2, - WAIT_AFTER_SEND = 3, + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; }; -struct imx_uart_data; - -struct imx_port { - struct uart_port port; - struct timer_list timer; - unsigned int old_status; - unsigned int have_rtscts: 1; - unsigned int have_rtsgpio: 1; - unsigned int dte_mode: 1; - unsigned int inverted_tx: 1; - unsigned int inverted_rx: 1; - struct clk *clk_ipg; - struct clk *clk_per; - const struct imx_uart_data *devdata; - struct mctrl_gpios *gpios; - int idle_counter; - unsigned int dma_is_enabled: 1; - unsigned int dma_is_rxing: 1; - unsigned int dma_is_txing: 1; - struct dma_chan *dma_chan_rx; - struct dma_chan *dma_chan_tx; - struct scatterlist rx_sgl; - struct scatterlist tx_sgl[2]; - void *rx_buf; - struct circ_buf rx_ring; - unsigned int rx_buf_size; - unsigned int rx_period_length; - unsigned int rx_periods; - dma_cookie_t rx_cookie; - unsigned int tx_bytes; - unsigned int dma_tx_nents; - unsigned int saved_reg[10]; - bool context_saved; - enum imx_tx_state tx_state; - struct hrtimer trigger_start_tx; - struct hrtimer trigger_stop_tx; +struct io_unlink { + struct file *file; + int dfd; + int flags; + struct filename *filename; }; -enum imx_uart_type { - IMX1_UART = 0, - IMX21_UART = 1, - IMX53_UART = 2, - IMX6Q_UART = 3, +struct io_mkdir { + struct file *file; + int dfd; + umode_t mode; + struct filename *filename; }; -struct imx_uart_data { - unsigned int uts_reg; - enum imx_uart_type devtype; +struct io_link { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; }; -struct imx_port_ucrs { - unsigned int ucr1; - unsigned int ucr2; - unsigned int ucr3; -}; +typedef unsigned int FSE_DTable; -enum tpm2_handle_types { - TPM2_HT_HMAC_SESSION = 33554432, - TPM2_HT_POLICY_SESSION = 50331648, - TPM2_HT_TRANSIENT = 2147483648, -}; +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; -struct tpm2_context { - __be64 sequence; - __be32 saved_handle; - __be32 hierarchy; - __be16 blob_size; -} __attribute__((packed)); +typedef struct { + unsigned short newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; -struct tpm2_cap_handles { - u8 more_data; - __be32 capability; - __be32 count; - __be32 handles[0]; -} __attribute__((packed)); +typedef struct { + short ncount[256]; + FSE_DTable dtable[0]; +} FSE_DecompressWksp; -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; - u64 last_hw_sleep; - u64 total_hw_sleep; - u64 max_hw_sleep; - enum suspend_stat_step failed_steps[2]; -}; +typedef struct { + size_t state; + const void *table; +} FSE_DState_t; -struct syscon { - struct device_node *np; - struct regmap *regmap; - struct reset_control *reset; - struct list_head list; +struct font_data { + unsigned int extra[4]; + const unsigned char data[0]; }; -struct syscon_platform_data { - const char *label; +enum acpi_subtable_type { + ACPI_SUBTABLE_COMMON = 0, + ACPI_SUBTABLE_HMAT = 1, + ACPI_SUBTABLE_PRMT = 2, + ACPI_SUBTABLE_CEDT = 3, }; -struct scsi_varlen_cdb_hdr { - __u8 opcode; - __u8 control; - __u8 misc[5]; - __u8 additional_cdb_length; - __be16 service_action; +struct acpi_subtable_entry { + union acpi_subtable_headers *hdr; + enum acpi_subtable_type type; }; -struct cfi_early_fixup { - uint16_t mfr; - uint16_t id; - void (*fixup)(struct cfi_private *); +struct armctrl_ic { + void *base; + void *pending[3]; + void *enable[3]; + void *disable[3]; + struct irq_domain *domain; }; -struct marvell_hw_ecc_layout { - int writesize; - int chunk; - int strength; - int nchunks; - int full_chunk_cnt; - int data_bytes; - int spare_bytes; - int ecc_bytes; - int last_data_bytes; - int last_spare_bytes; - int last_ecc_bytes; -}; +struct irqc_priv; -struct marvell_nfc_caps { - unsigned int max_cs_nb; - unsigned int max_rb_nb; - bool need_system_controller; - bool legacy_of_bindings; - bool is_nfcv2; - bool use_dma; +struct irqc_irq { + int hw_irq; + int requested_irq; + struct irqc_priv *p; }; -struct marvell_nand_chip_sel { - unsigned int cs; - u32 ndcb0_csel; - unsigned int rb; +struct irqc_priv { + void *iomem; + void *cpu_int_base; + struct irqc_irq irq[32]; + unsigned int number_of_irqs; + struct device *dev; + struct irq_chip_generic *gc; + struct irq_domain *irq_domain; + atomic_t wakeup_path; }; -struct marvell_nand_chip { - struct nand_chip chip; +struct phy_lookup { struct list_head node; - const struct marvell_hw_ecc_layout *layout; - u32 ndcr; - u32 ndtr0; - u32 ndtr1; - int addr_cyc; - int selected_die; - unsigned int nsels; - struct marvell_nand_chip_sel sels[0]; + const char *dev_id; + const char *con_id; + struct phy *phy; }; -struct marvell_nfc { - struct nand_controller controller; - struct device *dev; - void *regs; - struct clk *core_clk; - struct clk *reg_clk; - struct completion complete; - unsigned long assigned_cs; - struct list_head chips; - struct nand_chip *selected_chip; - const struct marvell_nfc_caps *caps; - bool use_dma; - struct dma_chan *dma_chan; - u8 *dma_buf; +struct exynos_dp_video_phy_drvdata { + u32 phy_ctrl_offset; }; -struct marvell_nfc_op { - u32 ndcb[4]; - unsigned int cle_ale_delay_ns; - unsigned int rdy_timeout_ms; - unsigned int rdy_delay_ns; - unsigned int data_delay_ns; - unsigned int data_instr_idx; - const struct nand_op_instr *data_instr; +struct exynos_dp_video_phy { + struct regmap *regs; + const struct exynos_dp_video_phy_drvdata *drvdata; }; -struct pxa3xx_nand_platform_data { - bool keep_config; - bool flash_bbt; - int ecc_strength; - int ecc_step_size; - const struct mtd_partition *parts; - unsigned int nr_parts; +enum ioctrl_regs___7 { + POC0___3 = 0, + POC1___3 = 1, + POC3___2 = 2, + TD0SEL1 = 3, }; -struct marvell_nfc_timings { - unsigned int tRP; - unsigned int tRH; - unsigned int tWP; - unsigned int tWH; - unsigned int tCS; - unsigned int tCH; - unsigned int tADL; - unsigned int tAR; - unsigned int tWHR; - unsigned int tRHW; - unsigned int tR; +struct max77620_gpio { + struct gpio_chip gpio_chip; + struct regmap *rmap; + struct device *dev; + struct mutex buslock; + unsigned int irq_type[8]; + bool irq_enabled[8]; }; -struct swmii_regs { - u16 bmsr; - u16 lpa; - u16 lpagb; - u16 estat; +struct iproc_pwmc { + struct pwm_chip chip; + void *base; + struct clk *clk; }; -enum { - SWMII_SPEED_10 = 0, - SWMII_SPEED_100 = 1, - SWMII_SPEED_1000 = 2, - SWMII_DUPLEX_HALF = 0, - SWMII_DUPLEX_FULL = 1, +struct pcie_link_state { + struct pci_dev *pdev; + struct pci_dev *downstream; + struct pcie_link_state *root; + struct pcie_link_state *parent; + struct list_head sibling; + u32 aspm_support: 7; + u32 aspm_enabled: 7; + u32 aspm_capable: 7; + u32 aspm_default: 7; + int: 4; + u32 aspm_disable: 7; + u32 clkpm_capable: 1; + u32 clkpm_enabled: 1; + u32 clkpm_default: 1; + u32 clkpm_disable: 1; }; -enum { - DP83867_PORT_MIRROING_KEEP = 0, - DP83867_PORT_MIRROING_EN = 1, - DP83867_PORT_MIRROING_DIS = 2, +enum imx6_pcie_variants { + IMX6Q = 0, + IMX6SX = 1, + IMX6QP = 2, + IMX7D = 3, + IMX8MQ = 4, + IMX8MM___2 = 5, + IMX8MP___2 = 6, + IMX8MQ_EP = 7, + IMX8MM_EP = 8, + IMX8MP_EP = 9, }; -struct dp83867_private { - u32 rx_id_delay; - u32 tx_id_delay; - u32 tx_fifo_depth; - u32 rx_fifo_depth; - int io_impedance; - int port_mirroring; - bool rxctrl_strap_quirk; - bool set_clk_output; - u32 clk_output_sel; - bool sgmii_ref_clk_en; +enum dw_pcie_device_mode { + DW_PCIE_UNKNOWN_TYPE = 0, + DW_PCIE_EP_TYPE = 1, + DW_PCIE_LEG_EP_TYPE = 2, + DW_PCIE_RC_TYPE = 3, }; -struct vfio___2 { - struct class *class; - struct list_head group_list; - struct mutex group_lock; - struct ida group_ida; - dev_t group_devt; +struct imx6_pcie_drvdata { + enum imx6_pcie_variants variant; + enum dw_pcie_device_mode mode; + u32 flags; + int dbi_length; + const char *gpr; }; -enum { - vfio_noiommu = 0, +struct imx6_pcie { + struct dw_pcie *pci; + int reset_gpio; + bool gpio_active_high; + bool link_is_up; + struct clk *pcie_bus; + struct clk *pcie_phy; + struct clk *pcie_inbound_axi; + struct clk *pcie; + struct clk *pcie_aux; + struct regmap *iomuxc_gpr; + u16 msi_ctrl; + u32 controller_id; + struct reset_control *pciephy_reset; + struct reset_control *apps_reset; + struct reset_control *turnoff_reset; + u32 tx_deemph_gen1; + u32 tx_deemph_gen2_3p5db; + u32 tx_deemph_gen2_6db; + u32 tx_swing_full; + u32 tx_swing_low; + struct regulator *vpcie; + struct regulator *vph; + void *phy_base; + struct device *pd_pcie; + struct device *pd_pcie_phy; + struct phy *phy; + const struct imx6_pcie_drvdata *drvdata; }; -struct vfio_group_status { - __u32 argsz; - __u32 flags; +struct acpi_device_bus_id { + const char *bus_id; + struct ida instance_ida; + struct list_head node; }; -struct usb_dynid { +struct acpi_dep_data { struct list_head node; - struct usb_device_id id; + acpi_handle supplier; + acpi_handle consumer; + bool honor_dep; + bool met; + bool free_when_met; }; -struct dwc3_of_simple { - struct device *dev; - struct clk_bulk_data *clks; - int num_clocks; - struct reset_control *resets; - bool need_reset; +struct acpi_scan_clear_dep_work { + struct work_struct work; + struct acpi_device *adev; }; -struct usb_set_sel_req { - __u8 u1_sel; - __u8 u1_pel; - __le16 u2_sel; - __le16 u2_pel; -}; +struct acpi_table_stao { + struct acpi_table_header header; + u8 ignore_uart; +} __attribute__((packed)); -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 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 iort_dev_config { + const char *name; + int (*dev_init)(struct acpi_iort_node *); + void (*dev_dma_configure)(struct device *, struct acpi_iort_node *); + int (*dev_count_resources)(struct acpi_iort_node *); + void (*dev_init_resources)(struct resource *, struct acpi_iort_node *); + int (*dev_set_proximity)(struct device *, struct acpi_iort_node *); + int (*dev_add_platdata)(struct platform_device *); }; -enum bcm_iproc_i2c_type { - IPROC_I2C = 0, - IPROC_I2C_NIC = 1, +enum acpi_predicate { + all_versions = 0, + less_than_or_equal = 1, + equal = 2, + greater_than_or_equal = 3, }; -enum i2c_slave_read_status { - I2C_SLAVE_RX_FIFO_EMPTY = 0, - I2C_SLAVE_RX_START = 1, - I2C_SLAVE_RX_DATA = 2, - I2C_SLAVE_RX_END = 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; }; -struct bcm_iproc_i2c_dev { - struct device *device; - enum bcm_iproc_i2c_type type; - int irq; - void *base; - void *idm_base; - u32 ape_addr_mask; - spinlock_t idm_lock; - struct i2c_adapter adapter; - unsigned int bus_speed; - struct completion done; - int xfer_is_done; - struct i2c_msg *msg; - struct i2c_client *slave; - unsigned int tx_bytes; - unsigned int rx_bytes; - unsigned int thld_bytes; - bool slave_rx_only; - bool rx_start_rcvd; - bool slave_read_complete; - u32 tx_underrun; - u32 slave_int_mask; - struct tasklet_struct slave_rx_tasklet; +enum acpi_iort_node_type { + ACPI_IORT_NODE_ITS_GROUP = 0, + ACPI_IORT_NODE_NAMED_COMPONENT = 1, + ACPI_IORT_NODE_PCI_ROOT_COMPLEX = 2, + ACPI_IORT_NODE_SMMU = 3, + ACPI_IORT_NODE_SMMU_V3 = 4, + ACPI_IORT_NODE_PMCG = 5, + ACPI_IORT_NODE_RMR = 6, }; -struct reset_reg_mask { - u32 rst_src_en_mask; - u32 sw_mstr_rst_mask; +struct iort_its_msi_chip { + struct list_head list; + struct fwnode_handle *fw_node; + phys_addr_t base_addr; + u32 translation_id; }; -struct devfreq_cooling_device { - struct thermal_cooling_device *cdev; - struct thermal_cooling_device_ops cooling_ops; - struct devfreq *devfreq; - unsigned long cooling_state; - u32 *freq_table; - size_t max_state; - struct devfreq_cooling_power *power_ops; - u32 res_util; - int capped_state; - struct dev_pm_qos_request req_max_freq; - struct em_perf_domain *em_pd; +struct acpi_iort_named_component { + u32 node_flags; + u64 memory_properties; + u8 memory_address_limit; + char device_name[0]; +} __attribute__((packed)); + +struct acpi_iort_root_complex { + u64 memory_properties; + u32 ats_attribute; + u32 pci_segment_number; + u8 memory_address_limit; + u16 pasid_capabilities; + u8 reserved[0]; +} __attribute__((packed)); + +struct iort_fwnode { + struct list_head list; + struct acpi_iort_node *iort_node; + struct fwnode_handle *fwnode; }; -struct dm_kobject_holder { - struct kobject kobj; - struct completion completion; +struct acpi_iort_id_mapping { + u32 input_base; + u32 id_count; + u32 output_base; + u32 output_reference; + u32 flags; }; -struct ti_cpufreq_data; +struct acpi_iort_smmu_v3 { + u64 base_address; + u32 flags; + u32 reserved; + u64 vatos_address; + u32 model; + u32 event_gsiv; + u32 pri_gsiv; + u32 gerr_gsiv; + u32 sync_gsiv; + u32 pxm; + u32 id_mapping_index; +} __attribute__((packed)); -struct ti_cpufreq_soc_data { - const char * const *reg_names; - unsigned long (*efuse_xlate)(struct ti_cpufreq_data *, unsigned long); - unsigned long efuse_fallback; - unsigned long efuse_offset; - unsigned long efuse_mask; - unsigned long efuse_shift; - unsigned long rev_offset; - bool multi_regulator; +struct acpi_iort_pmcg { + u64 page0_base_address; + u32 overflow_gsiv; + u32 node_reference; + u64 page1_base_address; }; -struct ti_cpufreq_data { - struct device *cpu_dev; - struct device_node *opp_node; - struct regmap *syscon; - const struct ti_cpufreq_soc_data *soc_data; +struct acpi_iort_its_group { + u32 its_count; + u32 identifiers[0]; }; -struct scmi_mailbox { - struct mbox_client cl; - struct mbox_chan *chan; - struct mbox_chan *chan_receiver; - struct scmi_chan_info *cinfo; - struct scmi_shared_mem *shmem; +struct acpi_table_iort { + struct acpi_table_header header; + u32 node_count; + u32 node_offset; + u32 reserved; }; -typedef int (*of_init_fn_1_ret)(struct device_node *); - -struct lg_drv_data { - unsigned long quirks; - void *device_props; +struct acpi_iort_rmr { + u32 flags; + u32 rmr_count; + u32 rmr_offset; }; -struct sun6i_msgbox { - struct mbox_controller controller; - struct clk *clk; - spinlock_t lock; - void *regs; +struct acpi_iort_rmr_desc { + u64 base_address; + u64 length; + u32 reserved; +} __attribute__((packed)); + +struct iort_pci_alias_info { + struct device *dev; + struct acpi_iort_node *node; }; -enum { - IF_LINK_MODE_DEFAULT = 0, - IF_LINK_MODE_DORMANT = 1, - IF_LINK_MODE_TESTING = 2, +typedef acpi_status (*iort_find_node_callback)(struct acpi_iort_node *, void *); + +struct berlin2_avpll_vco { + struct clk_hw hw; + void *base; + u8 flags; }; -enum lw_bits { - LW_URGENT = 0, +struct berlin2_avpll_channel { + struct clk_hw hw; + void *base; + u8 flags; + u8 index; }; -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, +struct berlin2_div_map { + u16 pll_select_offs; + u16 pll_switch_offs; + u16 div_select_offs; + u16 div_switch_offs; + u16 div3_switch_offs; + u16 gate_offs; + u8 pll_select_shift; + u8 pll_switch_shift; + u8 div_select_shift; + u8 div_switch_shift; + u8 div3_switch_shift; + u8 gate_shift; }; -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 berlin2_div { + struct clk_hw hw; + void *base; + struct berlin2_div_map map; + spinlock_t *lock; }; -struct fec_stat_grp { - u64 stats[9]; - u8 cnt; +struct clkgate_separated { + struct clk_hw hw; + void *enable; + u8 bit_idx; + u8 flags; + spinlock_t *lock; }; -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 imx_pfdv2_type { + IMX_PFDV2_IMX7ULP = 0, + IMX_PFDV2_IMX8ULP = 1, }; -enum { - TCP_BPF_IPV4 = 0, - TCP_BPF_IPV6 = 1, - TCP_BPF_NUM_PROTS = 2, +struct pcc_reset_dev { + void *base; + struct reset_controller_dev rcdev; + const u32 *resets; + spinlock_t *lock; }; -enum { - TCP_BPF_BASE = 0, - TCP_BPF_TX = 1, - TCP_BPF_RX = 2, - TCP_BPF_TXRX = 3, - TCP_BPF_NUM_CFGS = 4, +enum clk_types___2 { + CLK_TYPE_IN___2 = 0, + CLK_TYPE_FF___2 = 1, + CLK_TYPE_SAM_PLL = 2, + CLK_TYPE_G3S_PLL = 3, + CLK_TYPE_DIV = 4, + CLK_TYPE_G3S_DIV = 5, + CLK_TYPE_MUX = 6, + CLK_TYPE_SD_MUX = 7, + CLK_TYPE_SIPLL5 = 8, + CLK_TYPE_PLL5_4_MUX = 9, + CLK_TYPE_DSI_DIV = 10, }; -struct tx_work { - struct delayed_work work; - struct sock *sk; +struct rzg2l_cpg_priv; + +struct clk_hw_data { + struct clk_hw hw; + u32 conf; + u32 sconf; + struct rzg2l_cpg_priv *priv; }; -struct tls_rec; +struct rzg2l_pll5_mux_dsi_div_param { + u8 clksrc; + u8 dsi_div_a; + u8 dsi_div_b; +}; -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 rzg2l_cpg_priv { + struct reset_controller_dev rcdev; + struct device *dev; + void *base; + spinlock_t rmw_lock; + struct clk **clks; + unsigned int num_core_clks; + unsigned int num_mod_clks; + unsigned int num_resets; + unsigned int last_dt_core_clk; + const struct rzg2l_cpg_info *info; + struct generic_pm_domain genpd; + struct rzg2l_pll5_mux_dsi_div_param mux_dsi_div_params; }; -enum p9_proto_versions { - p9_proto_legacy = 0, - p9_proto_2000u = 1, - p9_proto_2000L = 2, +struct div_hw_data { + struct clk_hw_data hw_data; + const struct clk_div_table *dtable; + unsigned long invalid_rate; + unsigned long max_rate; + u32 width; }; -struct klist_waiter { - struct list_head list; - struct klist_node *node; - struct task_struct *process; - int woken; +struct pll_clk { + struct clk_hw hw; + unsigned int conf; + unsigned int type; + void *base; + struct rzg2l_cpg_priv *priv; }; -struct printf_spec { - unsigned int type: 8; - int field_width: 24; - unsigned int flags: 8; - unsigned int base: 8; - int precision: 16; +struct sipll5 { + struct clk_hw hw; + u32 conf; + unsigned long foutpostdiv_rate; + struct rzg2l_cpg_priv *priv; }; -struct page_flags_fields { - int width; - int shift; - int mask; - const struct printf_spec *spec; - const char *name; +struct sd_mux_hw_data { + struct clk_hw_data hw_data; + const u32 *mtable; }; -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 pll5_mux_hw_data { + struct clk_hw hw; + u32 conf; + unsigned long rate; + struct rzg2l_cpg_priv *priv; }; -struct __ftr_reg_entry { - u32 sys_id; - struct arm64_ftr_reg *reg; +struct dsi_div_hw_data { + struct clk_hw hw; + u32 conf; + unsigned long rate; + struct rzg2l_cpg_priv *priv; }; -enum { - CAP_HWCAP = 1, - CAP_COMPAT_HWCAP = 2, - CAP_COMPAT_HWCAP2 = 3, +struct mstp_clock___2 { + struct clk_hw hw; + u16 off; + u8 bit; + bool enabled; + struct rzg2l_cpg_priv *priv; + struct mstp_clock___2 *sibling; }; -typedef void kpti_remap_fn(int, int, phys_addr_t, unsigned long); +struct rzg2l_pll5_param { + u32 pl5_fracin; + u8 pl5_refdiv; + u8 pl5_intin; + u8 pl5_postdiv1; + u8 pl5_postdiv2; + u8 pl5_spread; +}; -typedef void (*btf_trace_vgic_update_irq_pending)(void *, unsigned long, __u32, bool); +enum hidma_cap { + HIDMA_MSI_CAP = 1, + HIDMA_IDENTITY_CAP = 2, +}; -struct vgic_global { - enum vgic_type type; - phys_addr_t vcpu_base; - void *vcpu_base_va; - void *vcpu_hyp_va; - void *vctrl_base; - void *vctrl_hyp; - int nr_lr; - unsigned int maint_irq; - int max_gic_vcpus; - bool can_emulate_gicv2; - bool has_gicv4; - bool has_gicv4_1; - bool no_hw_deactivation; - struct static_key_false gicv3_cpuif; - u32 ich_vtr_el2; +enum tre_type { + HIDMA_TRE_MEMCPY = 3, + HIDMA_TRE_MEMSET = 4, }; -struct trace_event_raw_vgic_update_irq_pending { - struct trace_entry ent; - unsigned long vcpu_id; - __u32 irq; - bool level; - char __data[0]; +struct dpio_priv { + struct dpaa2_io *io; }; -struct trace_event_data_offsets_vgic_update_irq_pending {}; +struct qcom_smem_state { + struct kref refcount; + bool orphan; + struct list_head list; + struct device_node *of_node; + void *priv; + struct qcom_smem_state_ops ops; +}; -struct irq_devres { - unsigned int irq; - void *dev_id; +struct apple_pmgr_ps { + struct device *dev; + struct generic_pm_domain genpd; + struct reset_controller_dev rcdev; + struct regmap *regmap; + u32 offset; + u32 min_state; }; -struct irq_desc_devres { - unsigned int from; - unsigned int cnt; +enum { + VP_MSIX_CONFIG_VECTOR = 0, + VP_MSIX_VQ_VECTOR = 1, }; -struct irq_generic_chip_devres { - struct irq_chip_generic *gc; - u32 msk; - unsigned int clr; - unsigned int set; +struct notify_info { + uint16_t pgoff: 12; + uint16_t flags: 2; + int event; }; -enum cgroup_filetype { - CGROUP_FILE_PROCS = 0, - CGROUP_FILE_TASKS = 1, +struct gntalloc_gref { + struct list_head next_gref; + struct list_head next_file; + struct page *page; + uint64_t file_index; + unsigned int users; + grant_ref_t gref_id; + struct notify_info notify; }; -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 gntalloc_file_private_data { + struct list_head list; + uint64_t index; }; -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 ioctl_gntalloc_alloc_gref { + __u16 domid; + __u16 flags; + __u32 count; + __u64 index; + __u32 gref_ids[1]; }; -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, +struct ioctl_gntalloc_dealloc_gref { + __u64 index; + __u32 count; }; -typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64); +struct ioctl_gntalloc_unmap_notify { + __u64 index; + __u32 action; + __u32 event_channel_port; +}; -struct bpf_iter__task { - union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; +struct gntalloc_vma_private_data { + struct gntalloc_gref *gref; + int users; + int count; }; -struct bpf_iter_seq_task_common { - struct pid_namespace *ns; - enum bpf_iter_task_type type; - u32 pid; - u32 pid_visiting; +struct pwm_continuous_reg_data { + unsigned int min_uV_dutycycle; + unsigned int max_uV_dutycycle; + unsigned int dutycycle_unit; }; -struct bpf_iter__task_file { - union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; - u32 fd; - union { - struct file *file; - }; +struct pwm_voltages; + +struct pwm_regulator_data { + struct pwm_device *pwm; + struct pwm_voltages *duty_cycle_table; + struct pwm_continuous_reg_data continuous; + struct regulator_desc desc; + int state; + struct gpio_desc *enb_gpio; }; -struct bpf_iter_seq_task_file_info { - struct bpf_iter_seq_task_common common; - struct task_struct *task; - u32 tid; - u32 fd; +struct pwm_voltages { + unsigned int uV; + unsigned int dutycycle; }; -struct bpf_iter__task_vma { - union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; - union { - struct vm_area_struct *vma; - }; +struct scmi_reset_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const char * (*name_get)(const struct scmi_protocol_handle *, u32); + int (*latency_get)(const struct scmi_protocol_handle *, u32); + int (*reset)(const struct scmi_protocol_handle *, u32); + int (*assert)(const struct scmi_protocol_handle *, u32); + int (*deassert)(const struct scmi_protocol_handle *, u32); }; -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 scmi_reset_data { + struct reset_controller_dev rcdev; + const struct scmi_protocol_handle *ph; }; -struct bpf_iter_seq_task_info { - struct bpf_iter_seq_task_common common; - u32 tid; +typedef uint32_t XENCONS_RING_IDX; + +struct xencons_interface; + +struct xencons_info { + struct list_head list; + struct xenbus_device *xbdev; + struct xencons_interface *intf; + unsigned int evtchn; + XENCONS_RING_IDX out_cons; + unsigned int out_cons_same; + struct hvc_struct *hvc; + int irq; + int vtermno; + grant_ref_t gntref; + spinlock_t ring_lock; }; -struct callchain_cpus_entries { - struct callback_head callback_head; - struct perf_callchain_entry *cpu_entries[0]; +struct xencons_interface { + char in[1024]; + char out[2048]; + XENCONS_RING_IDX in_cons; + XENCONS_RING_IDX in_prod; + XENCONS_RING_IDX out_cons; + XENCONS_RING_IDX out_prod; }; -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); +struct s3c24xx_uart_info; -typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void __attribute__((btf_type_tag("percpu"))) *); +struct s3c24xx_serial_drv_data; -typedef void (*btf_trace_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_t); +struct s3c2410_uartcfg; -typedef void (*btf_trace_percpu_create_chunk)(void *, void *); +struct s3c24xx_uart_dma; -typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *); +struct s3c24xx_uart_port { + unsigned char rx_enabled; + unsigned char tx_enabled; + unsigned int pm_level; + unsigned long baudclk_rate; + unsigned int min_dma_size; + unsigned int rx_irq; + unsigned int tx_irq; + unsigned int tx_in_progress; + unsigned int tx_mode; + unsigned int rx_mode; + const struct s3c24xx_uart_info *info; + struct clk *clk; + struct clk *baudclk; + struct uart_port port; + const struct s3c24xx_serial_drv_data *drv_data; + const struct s3c2410_uartcfg *cfg; + struct s3c24xx_uart_dma *dma; +}; -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; +enum s3c24xx_port_type { + TYPE_S3C6400 = 0, + TYPE_APPLE_S5L = 1, +}; + +struct s3c24xx_uart_info { + const char *name; + enum s3c24xx_port_type type; + unsigned int port_type; + unsigned int fifosize; + unsigned long rx_fifomask; + unsigned long rx_fifoshift; + unsigned long rx_fifofull; + unsigned long tx_fifomask; + unsigned long tx_fifoshift; + unsigned long tx_fifofull; + unsigned int def_clk_sel; + unsigned long num_clks; + unsigned long clksel_mask; + unsigned long clksel_shift; + unsigned long ucon_mask; + unsigned int has_divslot: 1; +}; + +struct s3c2410_uartcfg { + unsigned char hwport; + unsigned char unused; + unsigned short flags; + upf_t uart_flags; + unsigned int clk_sel; + unsigned int has_fracval; + unsigned long ucon; + unsigned long ulcon; + unsigned long ufcon; +}; + +struct s3c24xx_serial_drv_data { + const struct s3c24xx_uart_info info; + const struct s3c2410_uartcfg def_cfg; + const unsigned int fifosize[12]; +}; + +struct s3c24xx_uart_dma { + unsigned int rx_chan_id; + unsigned int tx_chan_id; + struct dma_slave_config rx_conf; + struct dma_slave_config tx_conf; + struct dma_chan *rx_chan; + struct dma_chan *tx_chan; + dma_addr_t rx_addr; + dma_addr_t tx_addr; + dma_cookie_t rx_cookie; + dma_cookie_t tx_cookie; + char *rx_buf; + dma_addr_t tx_transfer_addr; + size_t rx_size; + size_t tx_size; + struct dma_async_tx_descriptor *tx_desc; + struct dma_async_tx_descriptor *rx_desc; + int tx_bytes_requested; + int rx_bytes_requested; }; -struct pcpu_chunk { - struct list_head list; - int free_bytes; - struct pcpu_block_md chunk_md; - unsigned long *bound_map; - void *base_addr; - unsigned long *alloc_map; - struct pcpu_block_md *md_blocks; - void *data; - bool immutable; - bool isolated; - int start_offset; - int end_offset; - struct obj_cgroup **obj_cgroups; - int nr_pages; - int nr_populated; - int nr_empty_pop_pages; - unsigned long populated[0]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct samsung_early_console_data { + u32 txfull_mask; + u32 rxfifo_mask; }; -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 stm32_rng_data { + uint max_clock_rate; + u32 cr; + u32 nscr; + u32 htcr; + bool has_cond_reset; }; -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 stm32_rng_config { + u32 cr; + u32 nscr; + u32 htcr; }; -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 stm32_rng_private { + struct hwrng rng; + void *base; + struct clk *clk; + struct reset_control *rst; + struct stm32_rng_config pm_conf; + const struct stm32_rng_data *data; + bool ced; + bool lock_conf; }; -struct trace_event_raw_percpu_create_chunk { - struct trace_entry ent; - void *base_addr; - char __data[0]; +enum i2c_chip_type { + SLB9635 = 0, + SLB9645 = 1, + UNKNOWN = 2, }; -struct trace_event_raw_percpu_destroy_chunk { - struct trace_entry ent; - void *base_addr; - char __data[0]; +struct tpm_inf_dev { + struct i2c_client *client; + int locality; + u8 buf[1261]; + struct tpm_chip *chip; + enum i2c_chip_type chip_type; + unsigned int adapterlimit; }; -struct pcpu_group_info { - int nr_units; - unsigned long base_offset; - unsigned int *cpu_map; +enum tis_defaults { + TIS_SHORT_TIMEOUT = 750, + TIS_LONG_TIMEOUT = 2000, }; -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]; +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, }; -struct trace_event_data_offsets_percpu_alloc_percpu {}; - -struct trace_event_data_offsets_percpu_free_percpu {}; +enum tis_access { + TPM_ACCESS_VALID = 128, + TPM_ACCESS_ACTIVE_LOCALITY = 32, + TPM_ACCESS_REQUEST_PENDING = 4, + TPM_ACCESS_REQUEST_USE = 2, +}; -struct trace_event_data_offsets_percpu_alloc_percpu_fail {}; +struct class_attribute_string { + struct class_attribute attr; + char *str; +}; -struct trace_event_data_offsets_percpu_create_chunk {}; +struct class_compat { + struct kobject *kobj; +}; -struct trace_event_data_offsets_percpu_destroy_chunk {}; +typedef void (*btf_trace_thermal_pressure_update)(void *, int, unsigned long); -typedef void (*btf_trace_test_pages_isolated)(void *, unsigned long, unsigned long, unsigned long); +struct cpu_topology { + int thread_id; + int core_id; + int cluster_id; + int package_id; + cpumask_t thread_sibling; + cpumask_t core_sibling; + cpumask_t cluster_sibling; + cpumask_t llc_sibling; +}; -struct trace_event_raw_test_pages_isolated { +struct trace_event_raw_thermal_pressure_update { struct trace_entry ent; - unsigned long start_pfn; - unsigned long end_pfn; - unsigned long fin_pfn; + unsigned long thermal_pressure; + int cpu; char __data[0]; }; -struct trace_event_data_offsets_test_pages_isolated {}; +struct trace_event_data_offsets_thermal_pressure_update {}; -enum umount_tree_flags { - UMOUNT_SYNC = 1, - UMOUNT_PROPAGATE = 2, - UMOUNT_CONNECTED = 4, -}; +struct hisi_sas_debugfs_reg_lu; -enum mnt_tree_flags_t { - MNT_TREE_MOVE = 1, - MNT_TREE_BENEATH = 2, +struct hisi_sas_debugfs_reg { + const struct hisi_sas_debugfs_reg_lu *lu; + int count; + int base_off; }; -struct mount_attr { - __u64 attr_set; - __u64 attr_clr; - __u64 propagation; - __u64 userns_fd; +struct hisi_sas_debugfs_reg_lu { + char *name; + int off; }; -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; +enum { + DSM_FUNC_ERR_HANDLE_MSI = 0, }; -struct proc_mounts { - struct mnt_namespace *ns; - struct path root; - int (*show)(struct seq_file *, struct vfsmount *); - struct mount cursor; +enum hisi_sas_debugfs_bist_ffe_cfg { + FFE_SAS_1_5_GBPS = 0, + FFE_SAS_3_0_GBPS = 1, + FFE_SAS_6_0_GBPS = 2, + FFE_SAS_12_0_GBPS = 3, + FFE_RESV = 4, + FFE_SATA_1_5_GBPS = 5, + FFE_SATA_3_0_GBPS = 6, + FFE_SATA_6_0_GBPS = 7, + FFE_CFG_MAX = 8, }; -struct fd_data { - fmode_t mode; - unsigned int fd; +enum hisi_sas_debugfs_reg_array_member { + DEBUGFS_GLOBAL = 0, + DEBUGFS_AXI = 1, + DEBUGFS_RAS = 2, + DEBUGFS_REGS_NUM = 3, }; -struct journal_block_tag3_s { - __be32 t_blocknr; - __be32 t_flags; - __be32 t_blocknr_high; - __be32 t_checksum; +enum hisi_sas_debugfs_cache_type { + HISI_SAS_ITCT_CACHE = 0, + HISI_SAS_IOST_CACHE = 1, }; -typedef struct journal_block_tag3_s journal_block_tag3_t; +enum hisi_sas_debugfs_bist_fixed_code { + FIXED_CODE = 0, + FIXED_CODE_1 = 1, + FIXED_CODE_MAX = 2, +}; -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; +enum { + HISI_SAS_BIST_CODE_MODE_PRBS7 = 0, + HISI_SAS_BIST_CODE_MODE_PRBS23 = 1, + HISI_SAS_BIST_CODE_MODE_PRBS31 = 2, + HISI_SAS_BIST_CODE_MODE_JTPAT = 3, + HISI_SAS_BIST_CODE_MODE_CJTPAT = 4, + HISI_SAS_BIST_CODE_MODE_SCRAMBED_0 = 5, + HISI_SAS_BIST_CODE_MODE_TRAIN = 6, + HISI_SAS_BIST_CODE_MODE_TRAIN_DONE = 7, + HISI_SAS_BIST_CODE_MODE_HFTP = 8, + HISI_SAS_BIST_CODE_MODE_MFTP = 9, + HISI_SAS_BIST_CODE_MODE_LFTP = 10, + HISI_SAS_BIST_CODE_MODE_FIXED_DATA = 11, }; -struct recovery_info { - tid_t start_transaction; - tid_t end_transaction; - unsigned long head_block; - int nr_replays; - int nr_revokes; - int nr_revoke_hits; +enum fifo_dump_mode_v3_hw { + FIFO_DUMP_FORVER = 1, + FIFO_DUMP_AFTER_TRIGGER = 2, + FIFO_DUMP_UNTILL_TRIGGER = 4, }; -struct journal_block_tag_s { - __be32 t_blocknr; - __be16 t_checksum; - __be16 t_flags; - __be32 t_blocknr_high; +enum fifo_trigger_mode_v3_hw { + FIFO_TRIGGER_EDGE = 1, + FIFO_TRIGGER_SAME_LEVEL = 2, + FIFO_TRIGGER_DIFF_LEVEL = 4, }; -typedef struct journal_block_tag_s journal_block_tag_t; +struct hisi_sas_complete_v3_hdr { + __le32 dw0; + __le32 dw1; + __le32 act; + __le32 dw3; +}; -struct nfs_find_desc { - struct nfs_fh *fh; - struct nfs_fattr *fattr; +struct hisi_sas_err_record_v3 { + __le32 trans_tx_fail_type; + __le32 trans_rx_fail_type; + __le16 dma_tx_err_type; + __le16 sipc_rx_err_type; + __le32 dma_rx_err_type; }; -struct bdev_inode { - struct block_device bdev; - struct inode vfs_inode; +struct hisi_sas_protect_iu_v3_hw { + u32 dw0; + u32 lbrtcv; + u32 lbrtgv; + u32 dw3; + u32 dw4; + u32 dw5; + u32 rsv; }; -struct mbigen_device { - struct platform_device *pdev; - void *base; +struct hisi_sas_sge_dif_page { + struct hisi_sas_sge sge[124]; }; -struct dpcon_cmd_open { - __le32 dpcon_id; +struct cfi_early_fixup { + uint16_t mfr; + uint16_t id; + void (*fixup)(struct cfi_private *); }; -struct dpcon_rsp_get_attr { - __le32 id; - __le16 qbman_ch_id; - u8 num_priorities; - u8 pad; +struct jedec_ecc_info { + u8 ecc_bits; + u8 codeword_size; + __le16 bb_per_lun; + __le16 block_endurance; + u8 reserved[2]; }; -struct dpcon_cmd_set_notification { - __le32 dpio_id; - u8 priority; - u8 pad[3]; - __le64 user_ctx; +struct nand_jedec_params { + u8 sig[4]; + __le16 revision; + __le16 features; + u8 opt_cmd[3]; + __le16 sec_cmd; + u8 num_of_param_pages; + u8 reserved0[18]; + char manufacturer[12]; + char model[20]; + u8 jedec_id[6]; + u8 reserved1[10]; + __le32 byte_per_page; + __le16 spare_bytes_per_page; + u8 reserved2[6]; + __le32 pages_per_block; + __le32 blocks_per_lun; + u8 lun_count; + u8 addr_cycles; + u8 bits_per_cell; + u8 programs_per_page; + u8 multi_plane_addr; + u8 multi_plane_op_attr; + u8 reserved3[38]; + __le16 async_sdr_speed_grade; + __le16 toggle_ddr_speed_grade; + __le16 sync_ddr_speed_grade; + u8 async_sdr_features; + u8 toggle_ddr_features; + u8 sync_ddr_features; + __le16 t_prog; + __le16 t_bers; + __le16 t_r; + __le16 t_r_multi_plane; + __le16 t_ccs; + __le16 io_pin_capacitance_typ; + __le16 input_pin_capacitance_typ; + __le16 clk_pin_capacitance_typ; + u8 driver_strength_support; + __le16 t_adl; + u8 reserved4[36]; + u8 guaranteed_good_blocks; + __le16 guaranteed_block_endurance; + struct jedec_ecc_info ecc_info[4]; + u8 reserved5[29]; + u8 reserved6[148]; + __le16 vendor_rev_num; + u8 reserved7[88]; + __le16 crc; +} __attribute__((packed)); + +struct nxp_fspi_devtype_data { + unsigned int rxfifo; + unsigned int txfifo; + unsigned int ahb_buf_size; + unsigned int quirks; + bool little_endian; }; -struct mvebu_a3700_utmi_caps { - int usb32; - const struct phy_ops *ops; +struct nxp_fspi { + void *iobase; + void *ahb_addr; + u32 memmap_phy; + u32 memmap_phy_size; + u32 memmap_start; + u32 memmap_len; + struct clk *clk; + struct clk *clk_en; + struct device *dev; + struct completion c; + struct nxp_fspi_devtype_data *devtype_data; + struct mutex lock; + struct pm_qos_request pm_qos_req; + int selected; }; -struct mvebu_a3700_utmi { - void *regs; - struct regmap *usb_misc; - const struct mvebu_a3700_utmi_caps *caps; - struct phy *phy; +enum { + DP83867_PORT_MIRROING_KEEP = 0, + DP83867_PORT_MIRROING_EN = 1, + DP83867_PORT_MIRROING_DIS = 2, }; -enum s900_pinconf_pull { - OWL_PINCONF_PULL_HIZ = 0, - OWL_PINCONF_PULL_DOWN___2 = 1, - OWL_PINCONF_PULL_UP___2 = 2, - OWL_PINCONF_PULL_HOLD = 3, +enum led_trigger_netdev_modes { + TRIGGER_NETDEV_LINK = 0, + TRIGGER_NETDEV_LINK_10 = 1, + TRIGGER_NETDEV_LINK_100 = 2, + TRIGGER_NETDEV_LINK_1000 = 3, + TRIGGER_NETDEV_HALF_DUPLEX = 4, + TRIGGER_NETDEV_FULL_DUPLEX = 5, + TRIGGER_NETDEV_TX = 6, + TRIGGER_NETDEV_RX = 7, + __TRIGGER_NETDEV_MAX = 8, }; -struct exynos_irq_chip { - struct irq_chip chip; - u32 eint_con; - u32 eint_mask; - u32 eint_pend; - u32 *eint_wake_mask_value; - u32 eint_wake_mask_reg; - void (*set_eint_wakeup_mask)(struct samsung_pinctrl_drv_data *, struct exynos_irq_chip *); +struct dp83867_private { + u32 rx_id_delay; + u32 tx_id_delay; + u32 tx_fifo_depth; + u32 rx_fifo_depth; + int io_impedance; + int port_mirroring; + bool rxctrl_strap_quirk; + bool set_clk_output; + u32 clk_output_sel; + bool sgmii_ref_clk_en; }; -struct exynos_eint_gpio_save { - u32 eint_con; - u32 eint_fltcon0; - u32 eint_fltcon1; - u32 eint_mask; +struct virtnet_stat_desc { + char desc[32]; + size_t offset; }; -struct exynos_muxed_weint_data { - unsigned int nr_banks; - struct samsung_pin_bank *banks[0]; +struct virtnet_interrupt_coalesce { + u32 max_packets; + u32 max_usecs; }; -struct exynos_weint_data { - unsigned int irq; - struct samsung_pin_bank *bank; +struct send_queue; + +struct receive_queue; + +struct control_buf; + +struct virtnet_info { + struct virtio_device *vdev; + struct virtqueue *cvq; + struct net_device *dev; + struct send_queue *sq; + struct receive_queue *rq; + unsigned int status; + u16 max_queue_pairs; + u16 curr_queue_pairs; + u16 xdp_queue_pairs; + bool xdp_enabled; + bool big_packets; + unsigned int big_packets_num_skbfrags; + bool mergeable_rx_bufs; + bool has_rss; + bool has_rss_hash_report; + u8 rss_key_size; + u16 rss_indir_table_size; + u32 rss_hash_types_supported; + u32 rss_hash_types_saved; + bool has_cvq; + bool any_header_sg; + u8 hdr_len; + struct delayed_work refill; + bool refill_enabled; + spinlock_t refill_lock; + struct work_struct config_work; + bool affinity_hint_set; + struct hlist_node node; + struct hlist_node node_dead; + struct control_buf *ctrl; + u8 duplex; + u32 speed; + struct virtnet_interrupt_coalesce intr_coal_tx; + struct virtnet_interrupt_coalesce intr_coal_rx; + unsigned long guest_offloads; + unsigned long guest_offloads_capable; + struct failover *failover; }; -struct mxc_gpio_hwdata { - unsigned int dr_reg; - unsigned int gdir_reg; - unsigned int psr_reg; - unsigned int icr1_reg; - unsigned int icr2_reg; - unsigned int imr_reg; - unsigned int isr_reg; - int edge_sel_reg; - unsigned int low_level; - unsigned int high_level; - unsigned int rise_edge; - unsigned int fall_edge; +struct virtnet_sq_stats { + struct u64_stats_sync syncp; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t xdp_tx; + u64_stats_t xdp_tx_drops; + u64_stats_t kicks; + u64_stats_t tx_timeouts; }; -struct mxc_gpio_reg_saved { - u32 icr1; - u32 icr2; - u32 imr; - u32 gdir; - u32 edge_sel; - u32 dr; +struct send_queue { + struct virtqueue *vq; + struct scatterlist sg[19]; + char name[16]; + struct virtnet_sq_stats stats; + struct virtnet_interrupt_coalesce intr_coal; + struct napi_struct napi; + bool reset; }; -struct mxc_gpio_port { - struct list_head node; - void *base; - struct clk *clk; - int irq; - int irq_high; - struct irq_domain *domain; - struct gpio_chip gc; - struct device *dev; - u32 both_edges; - struct mxc_gpio_reg_saved gpio_saved_reg; - bool power_off; - u32 wakeup_pads; - bool is_pad_wakeup; - u32 pad_type[32]; - const struct mxc_gpio_hwdata *hwdata; +struct virtnet_rq_stats { + struct u64_stats_sync syncp; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t drops; + u64_stats_t xdp_packets; + u64_stats_t xdp_tx; + u64_stats_t xdp_redirects; + u64_stats_t xdp_drops; + u64_stats_t kicks; }; -typedef enum { - PCI_BRIDGE_EMUL_HANDLED = 0, - PCI_BRIDGE_EMUL_NOT_HANDLED = 1, -} pci_bridge_emul_read_status_t; +struct ewma_pkt_len { + unsigned long internal; +}; -struct pci_bridge_emul; +struct virtnet_rq_dma; -struct pci_bridge_emul_ops { - pci_bridge_emul_read_status_t (*read_base)(struct pci_bridge_emul *, int, u32 *); - pci_bridge_emul_read_status_t (*read_pcie)(struct pci_bridge_emul *, int, u32 *); - pci_bridge_emul_read_status_t (*read_ext)(struct pci_bridge_emul *, int, u32 *); - void (*write_base)(struct pci_bridge_emul *, int, u32, u32, u32); - void (*write_pcie)(struct pci_bridge_emul *, int, u32, u32, u32); - void (*write_ext)(struct pci_bridge_emul *, int, u32, u32, u32); +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 virtnet_interrupt_coalesce intr_coal; + struct page *pages; + struct ewma_pkt_len mrg_avg_pkt_len; + struct page_frag alloc_frag; + struct scatterlist sg[19]; + unsigned int min_buf_len; + char name[16]; + long: 64; + struct xdp_rxq_info xdp_rxq; + struct virtnet_rq_dma *last_dma; + bool do_dma; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct pci_bridge_emul_conf { - __le16 vendor; - __le16 device; - __le16 command; - __le16 status; - __le32 class_revision; - u8 cache_line_size; - u8 latency_timer; - u8 header_type; - u8 bist; - __le32 bar[2]; - u8 primary_bus; - u8 secondary_bus; - u8 subordinate_bus; - u8 secondary_latency_timer; - u8 iobase; - u8 iolimit; - __le16 secondary_status; - __le16 membase; - __le16 memlimit; - __le16 pref_mem_base; - __le16 pref_mem_limit; - __le32 prefbaseupper; - __le32 preflimitupper; - __le16 iobaseupper; - __le16 iolimitupper; - u8 capabilities_pointer; - u8 reserve[3]; - __le32 romaddr; - u8 intline; - u8 intpin; - __le16 bridgectrl; +struct virtnet_rq_dma { + dma_addr_t addr; + u32 ref; + u16 len; + u16 need_sync; }; -struct pci_bridge_emul_pcie_conf { - u8 cap_id; - u8 next; - __le16 cap; - __le32 devcap; - __le16 devctl; - __le16 devsta; - __le32 lnkcap; - __le16 lnkctl; - __le16 lnksta; - __le32 slotcap; - __le16 slotctl; - __le16 slotsta; - __le16 rootctl; - __le16 rootcap; - __le32 rootsta; - __le32 devcap2; - __le16 devctl2; - __le16 devsta2; - __le32 lnkcap2; - __le16 lnkctl2; - __le16 lnksta2; - __le32 slotcap2; - __le16 slotctl2; - __le16 slotsta2; +struct virtio_net_ctrl_hdr { + __u8 class; + __u8 cmd; }; -struct pci_bridge_reg_behavior; +typedef __u8 virtio_net_ctrl_ack; -struct pci_bridge_emul { - struct pci_bridge_emul_conf conf; - struct pci_bridge_emul_pcie_conf pcie_conf; - const struct pci_bridge_emul_ops *ops; - struct pci_bridge_reg_behavior *pci_regs_behavior; - struct pci_bridge_reg_behavior *pcie_cap_regs_behavior; - void *data; - u8 pcie_start; - u8 ssid_start; - bool has_pcie; - u16 subsystem_vendor_id; - u16 subsystem_id; +struct virtio_net_ctrl_mq { + __virtio16 virtqueue_pairs; }; -enum { - LTSSM_DETECT_QUIET = 0, - LTSSM_DETECT_ACTIVE = 1, - LTSSM_POLLING_ACTIVE = 2, - LTSSM_POLLING_COMPLIANCE = 3, - LTSSM_POLLING_CONFIGURATION = 4, - LTSSM_CONFIG_LINKWIDTH_START = 5, - LTSSM_CONFIG_LINKWIDTH_ACCEPT = 6, - LTSSM_CONFIG_LANENUM_ACCEPT = 7, - LTSSM_CONFIG_LANENUM_WAIT = 8, - LTSSM_CONFIG_COMPLETE = 9, - LTSSM_CONFIG_IDLE = 10, - LTSSM_RECOVERY_RCVR_LOCK = 11, - LTSSM_RECOVERY_SPEED = 12, - LTSSM_RECOVERY_RCVR_CFG = 13, - LTSSM_RECOVERY_IDLE = 14, - LTSSM_L0 = 16, - LTSSM_RX_L0S_ENTRY = 17, - LTSSM_RX_L0S_IDLE = 18, - LTSSM_RX_L0S_FTS = 19, - LTSSM_TX_L0S_ENTRY = 20, - LTSSM_TX_L0S_IDLE = 21, - LTSSM_TX_L0S_FTS = 22, - LTSSM_L1_ENTRY = 23, - LTSSM_L1_IDLE = 24, - LTSSM_L2_IDLE = 25, - LTSSM_L2_TRANSMIT_WAKE = 26, - LTSSM_DISABLED = 32, - LTSSM_LOOPBACK_ENTRY_MASTER = 33, - LTSSM_LOOPBACK_ACTIVE_MASTER = 34, - LTSSM_LOOPBACK_EXIT_MASTER = 35, - LTSSM_LOOPBACK_ENTRY_SLAVE = 36, - LTSSM_LOOPBACK_ACTIVE_SLAVE = 37, - LTSSM_LOOPBACK_EXIT_SLAVE = 38, - LTSSM_HOT_RESET = 39, - LTSSM_RECOVERY_EQUALIZATION_PHASE0 = 40, - LTSSM_RECOVERY_EQUALIZATION_PHASE1 = 41, - LTSSM_RECOVERY_EQUALIZATION_PHASE2 = 42, - LTSSM_RECOVERY_EQUALIZATION_PHASE3 = 43, +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 advk_pcie { - struct platform_device *pdev; - void *base; - struct { - phys_addr_t match; - phys_addr_t remap; - phys_addr_t mask; - u32 actions; - } wins[8]; - u8 wins_count; - struct irq_domain *rp_irq_domain; - struct irq_domain *irq_domain; - struct irq_chip irq_chip; - raw_spinlock_t irq_lock; - struct irq_domain *msi_domain; - struct irq_domain *msi_inner_domain; - raw_spinlock_t msi_irq_lock; - unsigned long msi_used[1]; - struct mutex msi_used_lock; - int link_gen; - struct pci_bridge_emul bridge; - struct gpio_desc *reset_gpio; - struct phy *phy; +struct virtio_net_ctrl_coal_tx { + __le32 tx_max_packets; + __le32 tx_usecs; }; -struct event_counter { - u32 count; - u32 flags; +struct virtio_net_ctrl_coal_rx { + __le32 rx_max_packets; + __le32 rx_usecs; }; -struct acpi_data_attr; +struct virtio_net_ctrl_coal { + __le32 max_packets; + __le32 max_usecs; +}; -struct acpi_data_obj { - char *name; - int (*fn)(void *, struct acpi_data_attr *); +struct virtio_net_ctrl_coal_vq { + __le16 vqn; + __le16 reserved; + struct virtio_net_ctrl_coal coal; }; -struct acpi_data_attr { - struct bin_attribute attr; - u64 addr; +struct control_buf { + struct virtio_net_ctrl_hdr hdr; + virtio_net_ctrl_ack status; + struct virtio_net_ctrl_mq mq; + u8 promisc; + u8 allmulti; + __virtio16 vid; + __virtio64 offloads; + struct virtio_net_ctrl_rss rss; + struct virtio_net_ctrl_coal_tx coal_tx; + struct virtio_net_ctrl_coal_rx coal_rx; + struct virtio_net_ctrl_coal_vq coal_vq; }; -struct acpi_table_attr { - struct bin_attribute attr; - char name[4]; - int instance; - char filename[8]; - struct list_head node; +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 acpi_table_bert { - struct acpi_table_header header; - u32 region_length; - u64 address; +struct virtio_net_hdr_v1_hash { + struct virtio_net_hdr_v1 hdr; + __le32 hash_value; + __le16 hash_report; + __le16 padding; }; -struct acpi_table_ccel { - struct acpi_table_header header; - u8 CCtype; - u8 Ccsub_type; - u16 reserved; - u64 log_area_minimum_length; - u64 log_area_start_address; +struct virtio_net_common_hdr { + union { + struct virtio_net_hdr hdr; + struct virtio_net_hdr_mrg_rxbuf mrg_hdr; + struct virtio_net_hdr_v1_hash hash_v1_hdr; + }; }; -struct acpi_bert_region { - u32 block_status; - u32 raw_data_offset; - u32 raw_data_length; - u32 data_length; - u32 error_severity; +struct virtio_net_ctrl_mac { + __virtio32 entries; + __u8 macs[0]; }; -struct devm_clk_state { - struct clk *clk; - void (*exit)(struct clk *); +struct fman_mac___3; + +struct mac_device___3 { + void *vaddr; + struct device *dev; + struct resource *res; + u8 addr[6]; + struct fman_port *port[2]; + struct phylink *phylink; + struct phylink_config phylink_config; + phy_interface_t phy_if; + bool promisc; + bool allmulti; + const struct phylink_mac_ops *phylink_ops; + int (*enable)(struct fman_mac___3 *); + void (*disable)(struct fman_mac___3 *); + int (*set_promisc)(struct fman_mac___3 *, bool); + int (*change_addr)(struct fman_mac___3 *, const enet_addr_t *); + int (*set_allmulti)(struct fman_mac___3 *, bool); + int (*set_tstamp)(struct fman_mac___3 *, bool); + int (*set_multi)(struct net_device *, struct mac_device___3 *); + int (*set_exception)(struct fman_mac___3 *, enum fman_mac_exceptions, bool); + int (*add_hash_mac_addr)(struct fman_mac___3 *, enet_addr_t *); + int (*remove_hash_mac_addr)(struct fman_mac___3 *, enet_addr_t *); + void (*update_speed)(struct mac_device___3 *, int); + struct fman_mac___3 *fman_mac; + struct mac_priv_s *priv; }; -struct clk_bulk_devres { - struct clk_bulk_data *clks; - int num_clks; +typedef void fman_mac_exception_cb___3(struct mac_device___3 *, enum fman_mac_exceptions); + +struct memac_regs; + +struct memac_cfg; + +struct fman_mac___3 { + struct memac_regs *regs; + u64 addr; + struct mac_device___3 *dev_id; + fman_mac_exception_cb___3 *exception_cb; + fman_mac_exception_cb___3 *event_cb; + struct eth_hash_t *multicast_addr_hash; + struct eth_hash_t *unicast_addr_hash; + u8 mac_id; + u32 exceptions; + struct memac_cfg *memac_drv_param; + void *fm; + struct fman_rev_info fm_rev_info; + struct phy *serdes; + struct phylink_pcs *sgmii_pcs; + struct phylink_pcs *qsgmii_pcs; + struct phylink_pcs *xfi_pcs; + bool allmulti_enabled; + bool rgmii_no_half_duplex; }; -struct clk_divider_gate { - struct clk_divider divider; - u32 cached_val; +struct mac_addr___2 { + u32 mac_addr_l; + u32 mac_addr_u; }; -enum imx_pllv1_type { - IMX_PLLV1_IMX1 = 0, - IMX_PLLV1_IMX21 = 1, - IMX_PLLV1_IMX25 = 2, - IMX_PLLV1_IMX27 = 3, - IMX_PLLV1_IMX31 = 4, - IMX_PLLV1_IMX35 = 5, +struct memac_regs { + u32 res0000[2]; + u32 command_config; + struct mac_addr___2 mac_addr0; + u32 maxfrm; + u32 res0018[1]; + u32 rx_fifo_sections; + u32 tx_fifo_sections; + u32 res0024[2]; + u32 hashtable_ctrl; + u32 res0030[4]; + u32 ievent; + u32 tx_ipg_length; + u32 res0048; + u32 imask; + u32 res0050; + u32 pause_quanta[4]; + u32 pause_thresh[4]; + u32 rx_pause_status; + u32 res0078[2]; + struct mac_addr___2 mac_addr[7]; + u32 lpwake_timer; + u32 sleep_timer; + u32 res00c0[8]; + u32 statn_config; + u32 res00e4[7]; + u32 reoct_l; + u32 reoct_u; + u32 roct_l; + u32 roct_u; + u32 raln_l; + u32 raln_u; + u32 rxpf_l; + u32 rxpf_u; + u32 rfrm_l; + u32 rfrm_u; + u32 rfcs_l; + u32 rfcs_u; + u32 rvlan_l; + u32 rvlan_u; + u32 rerr_l; + u32 rerr_u; + u32 ruca_l; + u32 ruca_u; + u32 rmca_l; + u32 rmca_u; + u32 rbca_l; + u32 rbca_u; + u32 rdrp_l; + u32 rdrp_u; + u32 rpkt_l; + u32 rpkt_u; + u32 rund_l; + u32 rund_u; + u32 r64_l; + u32 r64_u; + u32 r127_l; + u32 r127_u; + u32 r255_l; + u32 r255_u; + u32 r511_l; + u32 r511_u; + u32 r1023_l; + u32 r1023_u; + u32 r1518_l; + u32 r1518_u; + u32 r1519x_l; + u32 r1519x_u; + u32 rovr_l; + u32 rovr_u; + u32 rjbr_l; + u32 rjbr_u; + u32 rfrg_l; + u32 rfrg_u; + u32 rcnp_l; + u32 rcnp_u; + u32 rdrntp_l; + u32 rdrntp_u; + u32 res01d0[12]; + u32 teoct_l; + u32 teoct_u; + u32 toct_l; + u32 toct_u; + u32 res0210[2]; + u32 txpf_l; + u32 txpf_u; + u32 tfrm_l; + u32 tfrm_u; + u32 tfcs_l; + u32 tfcs_u; + u32 tvlan_l; + u32 tvlan_u; + u32 terr_l; + u32 terr_u; + u32 tuca_l; + u32 tuca_u; + u32 tmca_l; + u32 tmca_u; + u32 tbca_l; + u32 tbca_u; + u32 res0258[2]; + u32 tpkt_l; + u32 tpkt_u; + u32 tund_l; + u32 tund_u; + u32 t64_l; + u32 t64_u; + u32 t127_l; + u32 t127_u; + u32 t255_l; + u32 t255_u; + u32 t511_l; + u32 t511_u; + u32 t1023_l; + u32 t1023_u; + u32 t1518_l; + u32 t1518_u; + u32 t1519x_l; + u32 t1519x_u; + u32 res02a8[6]; + u32 tcnp_l; + u32 tcnp_u; + u32 res02c8[14]; + u32 if_mode; + u32 if_status; + u32 res0308[14]; + u32 hg_config; + u32 res0344[3]; + u32 hg_pause_quanta; + u32 res0354[3]; + u32 hg_pause_thresh; + u32 res0364[3]; + u32 hgrx_pause_status; + u32 hg_fifos_status; + u32 rhm; + u32 thm; }; -struct clk_pllv1 { - struct clk_hw hw; - void *base; - enum imx_pllv1_type type; +struct memac_cfg { + bool reset_on_init; + bool pause_ignore; + bool promiscuous_mode_enable; + struct fixed_phy_status *fixed_link; + u16 max_frame_length; + u16 pause_quanta; + u32 tx_ipg_length; }; -struct clk_sscg_pll_setup { - int divr1; - int divf1; - int divr2; - int divf2; - int divq; - int bypass; - uint64_t vco1; - uint64_t vco2; - uint64_t fout; - uint64_t ref; - uint64_t ref_div1; - uint64_t ref_div2; - uint64_t fout_request; - int fout_error; +struct fman_mac_params___3 { + u8 mac_id; + void *fm; + fman_mac_exception_cb___3 *event_cb; + fman_mac_exception_cb___3 *exception_cb; }; -struct clk_sscg_pll { - struct clk_hw hw; - const struct clk_ops ops; - void *base; - struct clk_sscg_pll_setup setup; - u8 parent; - u8 bypass1; - u8 bypass2; +enum hclge_reg_tag { + HCLGE_REG_TAG_CMDQ = 0, + HCLGE_REG_TAG_COMMON = 1, + HCLGE_REG_TAG_RING = 2, + HCLGE_REG_TAG_TQP_INTR = 3, + HCLGE_REG_TAG_QUERY_32_BIT = 4, + HCLGE_REG_TAG_QUERY_64_BIT = 5, + HCLGE_REG_TAG_DFX_BIOS_COMMON = 6, + HCLGE_REG_TAG_DFX_SSU_0 = 7, + HCLGE_REG_TAG_DFX_SSU_1 = 8, + HCLGE_REG_TAG_DFX_IGU_EGU = 9, + HCLGE_REG_TAG_DFX_RPU_0 = 10, + HCLGE_REG_TAG_DFX_RPU_1 = 11, + HCLGE_REG_TAG_DFX_NCSI = 12, + HCLGE_REG_TAG_DFX_RTC = 13, + HCLGE_REG_TAG_DFX_PPP = 14, + HCLGE_REG_TAG_DFX_RCB = 15, + HCLGE_REG_TAG_DFX_TQP = 16, + HCLGE_REG_TAG_DFX_SSU_2 = 17, + HCLGE_REG_TAG_RPU_TNL = 18, +}; + +struct hclge_reg_tlv { + u16 tag; + u16 len; }; -struct clk_lpcg_scu { - struct clk_hw hw; - void *reg; - u8 bit_idx; - bool hw_gate; - u32 state; +struct hclge_reg_header { + u64 magic_number; + u8 is_vf; + u8 rsv[7]; }; -enum clk_ids___8 { - LAST_DT_CORE_CLK___8 = 49, - CLK_EXTAL___8 = 50, - CLK_EXTALR___8 = 51, - CLK_MAIN___8 = 52, - CLK_PLL0___6 = 53, - CLK_PLL1___8 = 54, - CLK_PLL3___7 = 55, - CLK_PLL4___5 = 56, - CLK_PLL1_DIV2___8 = 57, - CLK_PLL1_DIV4___6 = 58, - CLK_S0___6 = 59, - CLK_S1___6 = 60, - CLK_S2___5 = 61, - CLK_S3___6 = 62, - CLK_SDSRC___7 = 63, - CLK_SSPSRC___3 = 64, - CLK_RPCSRC___7 = 65, - CLK_RINT___5 = 66, - MOD_CLK_BASE___8 = 67, +struct igb_reg_test { + u16 reg; + u16 reg_offset; + u16 array_len; + u16 test_type; + u32 mask; + u32 write; }; -struct dfll_fcpu_data { - const unsigned long *cpu_max_freq_table; - unsigned int cpu_max_freq_table_size; - const struct cvb_table *cpu_cvb_tables; - unsigned int cpu_cvb_tables_size; +struct igb_stats { + char stat_string[32]; + int sizeof_stat; + int stat_offset; }; -struct apple_rtkit_crashlog_regs { - u32 unk_0; - u32 unk_4; - u64 regs[31]; - u64 sp; - u64 pc; - u64 psr; - u64 cpacr; - u64 fpsr; - u64 fpcr; - u64 unk[64]; - u64 far; - u64 unk_X; - u64 esr; - u64 unk_Z; +enum igb_diagnostics_results { + TEST_REG = 0, + TEST_EEP = 1, + TEST_IRQ = 2, + TEST_LOOP = 3, + TEST_LINK = 4, }; -struct apple_rtkit_crashlog_mbox_entry { - u64 msg0; - u64 msg1; - u32 timestamp; - u8 _unk[4]; +struct k3_cppi_desc_pool { + struct device *dev; + dma_addr_t dma_addr; + void *cpumem; + size_t desc_size; + size_t mem_size; + size_t num_desc; + struct gen_pool *gen_pool; }; -struct apple_rtkit_crashlog_header { - u32 fourcc; - u32 version; - u32 size; - u32 flags; - u8 _unk[16]; +struct vfio_iommu_driver_ops { + char *name; + struct module *owner; + void * (*open)(unsigned long); + void (*release)(void *); + long (*ioctl)(void *, unsigned int, unsigned long); + int (*attach_group)(void *, struct iommu_group *, enum vfio_group_type); + void (*detach_group)(void *, struct iommu_group *); + int (*pin_pages)(void *, struct iommu_group *, dma_addr_t, int, int, struct page **); + void (*unpin_pages)(void *, dma_addr_t, int); + void (*register_device)(void *, struct vfio_device *); + void (*unregister_device)(void *, struct vfio_device *); + int (*dma_rw)(void *, dma_addr_t, void *, size_t, bool); + struct iommu_domain * (*group_iommu_domain)(void *, struct iommu_group *); }; -struct imx8mp_blk_ctrl; - -struct imx8mp_blk_ctrl_domain; +struct vfio_iommu_group { + struct iommu_group *iommu_group; + struct list_head next; + bool pinned_page_dirty_scope; +}; -struct imx8mp_blk_ctrl_domain_data; +struct vfio_domain { + struct iommu_domain *domain; + struct list_head next; + struct list_head group_list; + bool fgsp: 1; + bool enforce_cache_coherency: 1; +}; -struct imx8mp_blk_ctrl_data { - int max_reg; - int (*probe)(struct imx8mp_blk_ctrl *); - notifier_fn_t power_notifier_fn; - void (*power_off)(struct imx8mp_blk_ctrl *, struct imx8mp_blk_ctrl_domain *); - void (*power_on)(struct imx8mp_blk_ctrl *, struct imx8mp_blk_ctrl_domain *); - const struct imx8mp_blk_ctrl_domain_data *domains; - int num_domains; +struct vfio_dma { + struct rb_node node; + dma_addr_t iova; + unsigned long vaddr; + size_t size; + int prot; + bool iommu_mapped; + bool lock_cap; + bool vaddr_invalid; + struct task_struct *task; + struct rb_root pfn_list; + unsigned long *bitmap; + struct mm_struct *mm; + size_t locked_vm; }; -struct imx8mp_blk_ctrl { - struct device *dev; - struct notifier_block power_nb; - struct device *bus_power_dev; - struct regmap *regmap; - struct imx8mp_blk_ctrl_domain *domains; - struct genpd_onecell_data onecell_data; - void (*power_off)(struct imx8mp_blk_ctrl *, struct imx8mp_blk_ctrl_domain *); - void (*power_on)(struct imx8mp_blk_ctrl *, struct imx8mp_blk_ctrl_domain *); +struct vfio_pfn { + struct rb_node node; + dma_addr_t iova; + unsigned long pfn; + unsigned int ref_count; }; -struct imx8mp_blk_ctrl_domain { - struct generic_pm_domain genpd; - const struct imx8mp_blk_ctrl_domain_data *data; - struct clk_bulk_data clks[2]; - struct icc_bulk_data paths[3]; - struct device *power_dev; - struct imx8mp_blk_ctrl *bc; - int num_paths; - int id; +struct vfio_regions { + struct list_head list; + dma_addr_t iova; + phys_addr_t phys; + size_t len; }; -struct imx8mp_blk_ctrl_domain_data { - const char *name; - const char * const *clk_names; - int num_clks; - const char * const *path_names; - int num_paths; - const char *gpc_name; +struct vfio_iova { + struct list_head list; + dma_addr_t start; + dma_addr_t end; }; -struct clk_hsio_pll { - struct clk_hw hw; - struct regmap *regmap; +struct vfio_iova_range { + __u64 start; + __u64 end; }; -struct exynos_soc_id { - const char *name; - unsigned int id; +struct vfio_iommu_type1_info_cap_iova_range { + struct vfio_info_cap_header header; + __u32 nr_iovas; + __u32 reserved; + struct vfio_iova_range iova_ranges[0]; }; -struct exynos_chipid_variant { - unsigned int rev_reg; - unsigned int main_rev_shift; - unsigned int sub_rev_shift; +struct vfio_iommu { + struct list_head domain_list; + struct list_head iova_list; + struct mutex lock; + struct rb_root dma_list; + struct list_head device_list; + struct mutex device_list_lock; + unsigned int dma_avail; + unsigned int vaddr_invalid_count; + uint64_t pgsize_bitmap; + uint64_t num_non_pinned_groups; + bool v2; + bool nesting; + bool dirty_page_tracking; + struct list_head emulated_iommu_groups; }; -struct exynos_chipid_info { - u32 product_id; - u32 revision; +struct vfio_iommu_type1_dma_map { + __u32 argsz; + __u32 flags; + __u64 vaddr; + __u64 iova; + __u64 size; }; -struct virtio_mmio_device { - struct virtio_device vdev; - struct platform_device *pdev; - void *base; - unsigned long version; - spinlock_t lock; - struct list_head virtqueues; +struct vfio_iommu_type1_info { + __u32 argsz; + __u32 flags; + __u64 iova_pgsizes; + __u32 cap_offset; + __u32 pad; }; -struct virtio_mmio_vq_info { - struct virtqueue *vq; - struct list_head node; +struct vfio_iommu_type1_info_cap_migration { + struct vfio_info_cap_header header; + __u32 flags; + __u64 pgsize_bitmap; + __u64 max_dirty_bitmap_size; }; -struct fixed_regulator_data { - struct fixed_voltage_config cfg; - struct regulator_init_data init_data; - struct platform_device pdev; +struct vfio_iommu_type1_info_dma_avail { + struct vfio_info_cap_header header; + __u32 avail; }; -struct tps65219_regulator_irq_type { - const char *irq_name; - const char *regulator_name; - const char *event_name; - unsigned long event; +struct vfio_iommu_type1_dma_unmap { + __u32 argsz; + __u32 flags; + __u64 iova; + __u64 size; + __u8 data[0]; }; -struct tps65219_regulator_irq_data { - struct device *dev; - struct tps65219_regulator_irq_type *type; - struct regulator_dev *rdev; +struct vfio_bitmap { + __u64 pgsize; + __u64 size; + __u64 __attribute__((btf_type_tag("user"))) *data; }; -typedef uint32_t XENCONS_RING_IDX; +struct vfio_iommu_type1_dirty_bitmap { + __u32 argsz; + __u32 flags; + __u8 data[0]; +}; -struct xencons_interface; +struct vfio_iommu_type1_dirty_bitmap_get { + __u64 iova; + __u64 size; + struct vfio_bitmap bitmap; +}; -struct xencons_info { - struct list_head list; - struct xenbus_device *xbdev; - struct xencons_interface *intf; - unsigned int evtchn; - XENCONS_RING_IDX out_cons; - unsigned int out_cons_same; - struct hvc_struct *hvc; - int irq; - int vtermno; - grant_ref_t gntref; - spinlock_t ring_lock; +struct vfio_batch { + struct page **pages; + struct page *fallback_page; + int capacity; + int size; + int offset; }; -struct xencons_interface { - char in[1024]; - char out[2048]; - XENCONS_RING_IDX in_cons; - XENCONS_RING_IDX in_prod; - XENCONS_RING_IDX out_cons; - XENCONS_RING_IDX out_prod; +struct tegra_xusb_mbox_regs { + u16 cmd; + u16 data_in; + u16 data_out; + u16 owner; + u16 smi_intr; }; -struct msm_dma { - struct dma_chan *chan; - enum dma_data_direction dir; - dma_addr_t phys; - unsigned char *virt; - dma_cookie_t cookie; - u32 enable_bit; - unsigned int count; - struct dma_async_tx_descriptor *desc; +struct tegra_xusb_phy_type; + +struct tegra_xusb_context_soc; + +struct tegra_xusb_soc_ops; + +struct tegra_xusb_soc { + const char *firmware; + const char * const *supply_names; + unsigned int num_supplies; + const struct tegra_xusb_phy_type *phy_types; + unsigned int num_types; + const struct tegra_xusb_context_soc *context; + struct { + struct { + unsigned int offset; + unsigned int count; + } usb2; + struct { + unsigned int offset; + unsigned int count; + } ulpi; + struct { + unsigned int offset; + unsigned int count; + } hsic; + struct { + unsigned int offset; + unsigned int count; + } usb3; + } ports; + struct tegra_xusb_mbox_regs mbox; + const struct tegra_xusb_soc_ops *ops; + bool scale_ss_clock; + bool has_ipfs; + bool lpm_support; + bool otg_reset_sspi; + bool has_bar2; }; -struct msm_port { - struct uart_port uart; - char name[16]; - struct clk *clk; - struct clk *pclk; - unsigned int imr; - int is_uartdm; - unsigned int old_snap_state; - bool break_detected; - struct msm_dma tx_dma; - struct msm_dma rx_dma; +struct tegra_xusb_phy_type { + const char *name; + unsigned int num; }; -struct msm_baud_map { - u16 divisor; - u8 code; - u8 rxstale; +struct tegra_xusb_context_soc { + struct { + const unsigned int *offsets; + unsigned int num_offsets; + } ipfs; + struct { + const unsigned int *offsets; + unsigned int num_offsets; + } fpci; }; -enum { - UARTDM_1P1 = 1, - UARTDM_1P2 = 2, - UARTDM_1P3 = 3, - UARTDM_1P4 = 4, +struct tegra_xusb; + +struct tegra_xusb_soc_ops { + u32 (*mbox_reg_readl)(struct tegra_xusb *, unsigned int); + void (*mbox_reg_writel)(struct tegra_xusb *, u32, unsigned int); + u32 (*csb_reg_readl)(struct tegra_xusb *, unsigned int); + void (*csb_reg_writel)(struct tegra_xusb *, u32, unsigned int); }; -struct tegra_smmu_as { - struct iommu_domain domain; - struct tegra_smmu *smmu; - unsigned int use_count; - spinlock_t lock; - u32 *count; - struct page **pts; - struct page *pd; - dma_addr_t pd_dma; - unsigned int id; - u32 attr; +struct tegra_xusb_padctl; + +struct tegra_xusb_context { + u32 *ipfs; + u32 *fpci; }; -struct tegra_smmu { - void *regs; +struct tegra_xusb { struct device *dev; - struct tegra_mc *mc; - const struct tegra_smmu_soc *soc; - struct list_head groups; - unsigned long pfn_mask; - unsigned long tlb_mask; - unsigned long *asids; + void *regs; + struct usb_hcd *hcd; struct mutex lock; - struct list_head list; - struct dentry *debugfs; - struct iommu_device iommu; + int xhci_irq; + int mbox_irq; + int padctl_irq; + void *ipfs_base; + void *fpci_base; + void *bar2_base; + struct resource *bar2; + const struct tegra_xusb_soc *soc; + struct regulator_bulk_data *supplies; + struct tegra_xusb_padctl *padctl; + struct clk *host_clk; + struct clk *falcon_clk; + struct clk *ss_clk; + struct clk *ss_src_clk; + struct clk *hs_src_clk; + struct clk *fs_src_clk; + struct clk *pll_u_480m; + struct clk *clk_m; + struct clk *pll_e; + struct reset_control *host_rst; + struct reset_control *ss_rst; + struct device *genpd_dev_host; + struct device *genpd_dev_ss; + bool use_genpd; + struct phy **phys; + unsigned int num_phys; + struct usb_phy **usbphy; + unsigned int num_usb_phys; + int otg_usb2_port; + int otg_usb3_port; + bool host_mode; + struct notifier_block id_nb; + struct work_struct id_work; + struct { + size_t size; + void *virt; + dma_addr_t phys; + } fw; + bool suspended; + struct tegra_xusb_context context; + u8 lp0_utmi_pad_mask; }; -struct tegra_smmu_group { - struct list_head list; - struct tegra_smmu *smmu; - const struct tegra_smmu_group_soc *soc; - struct iommu_group *group; - unsigned int swgroup; +enum tegra_xusb_mbox_cmd { + MBOX_CMD_MSG_ENABLED = 1, + MBOX_CMD_INC_FALC_CLOCK = 2, + MBOX_CMD_DEC_FALC_CLOCK = 3, + MBOX_CMD_INC_SSPI_CLOCK = 4, + MBOX_CMD_DEC_SSPI_CLOCK = 5, + MBOX_CMD_SET_BW = 6, + MBOX_CMD_SET_SS_PWR_GATING = 7, + MBOX_CMD_SET_SS_PWR_UNGATING = 8, + MBOX_CMD_SAVE_DFE_CTLE_CTX = 9, + MBOX_CMD_AIRPLANE_MODE_ENABLED = 10, + MBOX_CMD_AIRPLANE_MODE_DISABLED = 11, + MBOX_CMD_START_HSIC_IDLE = 12, + MBOX_CMD_STOP_HSIC_IDLE = 13, + MBOX_CMD_DBC_WAKE_STACK = 14, + MBOX_CMD_HSIC_PRETEND_CONNECT = 15, + MBOX_CMD_RESET_SSPI = 16, + MBOX_CMD_DISABLE_SS_LFPS_DETECTION = 17, + MBOX_CMD_ENABLE_SS_LFPS_DETECTION = 18, + MBOX_CMD_MAX = 19, + MBOX_CMD_ACK = 128, + MBOX_CMD_NAK = 129, }; -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 tegra_xusb_fw_header { + __le32 boot_loadaddr_in_imem; + __le32 boot_codedfi_offset; + __le32 boot_codetag; + __le32 boot_codesize; + __le32 phys_memaddr; + __le16 reqphys_memsize; + __le16 alloc_phys_memsize; + __le32 rodata_img_offset; + __le32 rodata_section_start; + __le32 rodata_section_end; + __le32 main_fnaddr; + __le32 fwimg_cksum; + __le32 fwimg_created_time; + __le32 imem_resident_start; + __le32 imem_resident_end; + __le32 idirect_start; + __le32 idirect_end; + __le32 l2_imem_start; + __le32 l2_imem_end; + __le32 version_id; + u8 init_ddirect; + u8 reserved[3]; + __le32 phys_addr_log_buffer; + __le32 total_log_entries; + __le32 dequeue_ptr; + __le32 dummy_var[2]; + __le32 fwimg_len; + u8 magic[8]; + __le32 ss_low_power_entry_timeout; + u8 num_hsic_port; + u8 padding[139]; }; -struct virtio_blk_vq { - struct virtqueue *vq; - spinlock_t lock; - char name[16]; - long: 64; - long: 64; - long: 64; - long: 64; +struct tegra_xusb_mbox_msg { + u32 cmd; + u32 data; }; -struct virtio_blk_outhdr { - __virtio32 type; - __virtio32 ioprio; - __virtio64 sector; +struct ci_hdrc_msm { + struct platform_device *ci; + struct clk *core_clk; + struct clk *iface_clk; + struct clk *fs_clk; + struct ci_hdrc_platform_data pdata; + struct reset_controller_dev rcdev; + bool secondary_phy; + bool hsic; + void *base; }; -struct virtblk_req { - struct virtio_blk_outhdr out_hdr; - union { - u8 status; - struct { - __virtio64 sector; - u8 status; - } zone_append; - } in_hdr; - size_t in_hdr_len; - struct sg_table sg_table; - struct scatterlist sg[0]; +struct 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 virtio_blk_discard_write_zeroes { - __le64 sector; - __le32 num_sectors; - __le32 flags; +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 *); }; -struct ahci_sg { - __le32 addr; - __le32 addr_hi; - __le32 reserved; - __le32 flags_size; +typedef void (*btf_trace_i2c_slave)(void *, const struct i2c_client *, enum i2c_slave_event, __u8 *, int); + +struct trace_event_raw_i2c_slave { + struct trace_entry ent; + int adapter_nr; + int ret; + __u16 addr; + __u16 len; + enum i2c_slave_event event; + __u8 buf[1]; + char __data[0]; }; -struct spi_nor_erase_command { - struct list_head list; - u32 count; - u32 size; - u8 opcode; +struct trace_event_data_offsets_i2c_slave {}; + +struct sh_mobile_i2c_data; + +struct sh_mobile_dt_config { + int clks_per_count; + int (*setup)(struct sh_mobile_i2c_data *); }; -struct mdio_board_entry { - struct list_head list; - struct mdio_board_info board_info; +struct sh_mobile_i2c_data { + struct device *dev; + void *reg; + struct i2c_adapter adap; + unsigned long bus_speed; + unsigned int clks_per_count; + struct clk *clk; + u_int8_t icic; + u_int8_t flags; + u_int16_t iccl; + u_int16_t icch; + spinlock_t lock; + wait_queue_head_t wait; + struct i2c_msg *msg; + int pos; + int sr; + bool send_stop; + bool stop_after_dma; + bool atomic_xfer; + struct resource *res; + struct dma_chan *dma_tx; + struct dma_chan *dma_rx; + struct scatterlist sg; + enum dma_data_direction dma_direction; + u8 *dma_buf; }; -struct hns3_stats { - char stats_string[32]; - int stats_offset; +enum sh_mobile_i2c_op { + OP_START = 0, + OP_TX_FIRST = 1, + OP_TX = 2, + OP_TX_STOP = 3, + OP_TX_TO_RX = 4, + OP_RX = 5, + OP_RX_STOP = 6, + OP_RX_STOP_DATA = 7, }; -struct hns3_pflag_desc { - char name[32]; - void (*handler)(struct net_device *, bool); +struct syscon_reboot_mode { + struct regmap *map; + struct reboot_mode_driver reboot; + u32 offset; + u32 mask; }; -enum ethtool_reset_flags { - ETH_RESET_MGMT = 1, - ETH_RESET_IRQ = 2, - ETH_RESET_DMA = 4, - ETH_RESET_FILTER = 8, - ETH_RESET_OFFLOAD = 16, - ETH_RESET_MAC = 32, - ETH_RESET_PHY = 64, - ETH_RESET_RAM = 128, - ETH_RESET_AP = 256, - ETH_RESET_DEDICATED = 65535, - ETH_RESET_ALL = 4294967295, +struct ths_device; + +struct ths_thermal_chip { + bool has_mod_clk; + bool has_bus_clk_reset; + int sensor_num; + int offset; + int scale; + int ft_deviation; + int temp_data_base; + int (*calibrate)(struct ths_device *, u16 *, int); + int (*init)(struct ths_device *); + unsigned long (*irq_ack)(struct ths_device *); + int (*calc_temp)(struct ths_device *, int, int); }; -struct hns3_reset_type_map { - enum ethtool_reset_flags rst_flags; - enum hnae3_reset_type rst_type; +struct tsensor { + struct ths_device *tmdev; + struct thermal_zone_device *tzd; + int id; }; -struct hns3_ethtool_link_ext_state_mapping { - u32 status_code; - enum ethtool_link_ext_state link_ext_state; - u8 link_ext_substate; +struct ths_device { + const struct ths_thermal_chip *chip; + struct device *dev; + struct regmap *regmap; + struct reset_control *reset; + struct clk *bus_clk; + struct clk *mod_clk; + struct tsensor sensor[4]; }; -enum { - SFF8024_ID_UNK = 0, - SFF8024_ID_SFF_8472 = 2, - SFF8024_ID_SFP = 3, - SFF8024_ID_DWDM_SFP = 11, - SFF8024_ID_QSFP_8438 = 12, - SFF8024_ID_QSFP_8436_8636 = 13, - SFF8024_ID_QSFP28_8636 = 17, - SFF8024_ENCODING_UNSPEC = 0, - SFF8024_ENCODING_8B10B = 1, - SFF8024_ENCODING_4B5B = 2, - SFF8024_ENCODING_NRZ = 3, - SFF8024_ENCODING_8472_MANCHESTER = 4, - SFF8024_ENCODING_8472_SONET = 5, - SFF8024_ENCODING_8472_64B66B = 6, - SFF8024_ENCODING_8436_MANCHESTER = 6, - SFF8024_ENCODING_8436_SONET = 4, - SFF8024_ENCODING_8436_64B66B = 5, - SFF8024_ENCODING_256B257B = 7, - SFF8024_ENCODING_PAM4 = 8, - SFF8024_CONNECTOR_UNSPEC = 0, - SFF8024_CONNECTOR_SC = 1, - SFF8024_CONNECTOR_FIBERJACK = 6, - SFF8024_CONNECTOR_LC = 7, - SFF8024_CONNECTOR_MT_RJ = 8, - SFF8024_CONNECTOR_MU = 9, - SFF8024_CONNECTOR_SG = 10, - SFF8024_CONNECTOR_OPTICAL_PIGTAIL = 11, - SFF8024_CONNECTOR_MPO_1X12 = 12, - SFF8024_CONNECTOR_MPO_2X16 = 13, - SFF8024_CONNECTOR_HSSDC_II = 32, - SFF8024_CONNECTOR_COPPER_PIGTAIL = 33, - SFF8024_CONNECTOR_RJ45 = 34, - SFF8024_CONNECTOR_NOSEPARATE = 35, - SFF8024_CONNECTOR_MXC_2X16 = 36, - SFF8024_ECC_UNSPEC = 0, - SFF8024_ECC_100G_25GAUI_C2M_AOC = 1, - SFF8024_ECC_100GBASE_SR4_25GBASE_SR = 2, - SFF8024_ECC_100GBASE_LR4_25GBASE_LR = 3, - SFF8024_ECC_100GBASE_ER4_25GBASE_ER = 4, - SFF8024_ECC_100GBASE_SR10 = 5, - SFF8024_ECC_100GBASE_CR4 = 11, - SFF8024_ECC_25GBASE_CR_S = 12, - SFF8024_ECC_25GBASE_CR_N = 13, - SFF8024_ECC_10GBASE_T_SFI = 22, - SFF8024_ECC_10GBASE_T_SR = 28, - SFF8024_ECC_5GBASE_T = 29, - SFF8024_ECC_2_5GBASE_T = 30, +struct mtk_wdt_data { + int toprgu_sw_rst_num; }; -struct hns3_ring_param { - u32 tx_desc_num; - u32 rx_desc_num; - u32 rx_buf_len; +struct mtk_wdt_dev { + struct watchdog_device wdt_dev; + void *wdt_base; + spinlock_t lock; + struct reset_controller_dev rcdev; + bool disable_wdt_extrst; + bool reset_by_toprgu; }; -struct hns3_sfp_type { - u8 type; - u8 ext_type; +struct cpufreq_freqs { + struct cpufreq_policy *policy; + unsigned int old; + unsigned int new; + u8 flags; }; -enum mvpp2_cls_field_id { - MVPP22_CLS_FIELD_MAC_DA = 3, - MVPP22_CLS_FIELD_VLAN_PRI = 5, - MVPP22_CLS_FIELD_VLAN = 6, - MVPP22_CLS_FIELD_L3_PROTO = 15, - MVPP22_CLS_FIELD_IP4SA = 16, - MVPP22_CLS_FIELD_IP4DA = 17, - MVPP22_CLS_FIELD_IP6SA = 23, - MVPP22_CLS_FIELD_IP6DA = 26, - MVPP22_CLS_FIELD_L4SIP = 29, - MVPP22_CLS_FIELD_L4DIP = 30, +enum interconnect_desc_param { + INTERCONNECT_DESC_PARAM_LEN = 0, + INTERCONNECT_DESC_PARAM_TYPE = 1, + INTERCONNECT_DESC_PARAM_UNIPRO_VER = 2, + INTERCONNECT_DESC_PARAM_MPHY_VER = 4, }; -enum mvpp2_cls_engine { - MVPP22_CLS_ENGINE_C2 = 1, - MVPP22_CLS_ENGINE_C3A = 2, - MVPP22_CLS_ENGINE_C3B = 3, - MVPP22_CLS_ENGINE_C4 = 4, - MVPP22_CLS_ENGINE_C3HA = 6, - MVPP22_CLS_ENGINE_C3HB = 7, +enum health_desc_param { + HEALTH_DESC_PARAM_LEN = 0, + HEALTH_DESC_PARAM_TYPE = 1, + HEALTH_DESC_PARAM_EOL_INFO = 2, + HEALTH_DESC_PARAM_LIFE_TIME_EST_A = 3, + HEALTH_DESC_PARAM_LIFE_TIME_EST_B = 4, }; -enum mvpp2_cls_lu_type { - MVPP22_CLS_LU_TYPE_ALL = 63, +struct tegra186_bpmp { + struct tegra_bpmp *parent; + struct { + struct gen_pool *pool; + union { + void *sram; + void *dram; + }; + dma_addr_t phys; + } tx; + struct { + struct gen_pool *pool; + union { + void *sram; + void *dram; + }; + dma_addr_t phys; + } rx; + struct { + struct mbox_client client; + struct mbox_chan *channel; + } mbox; }; -enum mvpp22_cls_c2_action { - MVPP22_C2_NO_UPD = 0, - MVPP22_C2_NO_UPD_LOCK = 1, - MVPP22_C2_UPD = 2, - MVPP22_C2_UPD_LOCK = 3, +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; }; -enum mvpp22_cls_c2_fwd_action { - MVPP22_C2_FWD_NO_UPD = 0, - MVPP22_C2_FWD_NO_UPD_LOCK = 1, - MVPP22_C2_FWD_SW = 2, - MVPP22_C2_FWD_SW_LOCK = 3, - MVPP22_C2_FWD_HW = 4, - MVPP22_C2_FWD_HW_LOCK = 5, - MVPP22_C2_FWD_HW_LOW_LAT = 6, - MVPP22_C2_FWD_HW_LOW_LAT_LOCK = 7, +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; }; -enum flow_action_hw_stats_bit { - FLOW_ACTION_HW_STATS_IMMEDIATE_BIT = 0, - FLOW_ACTION_HW_STATS_DELAYED_BIT = 1, - FLOW_ACTION_HW_STATS_DISABLED_BIT = 2, - FLOW_ACTION_HW_STATS_NUM_BITS = 3, +struct hid_parser { + struct hid_global global; + struct hid_global global_stack[4]; + unsigned int global_stack_ptr; + struct hid_local local; + unsigned int *collection_stack; + unsigned int collection_stack_ptr; + unsigned int collection_stack_size; + struct hid_device *device; + unsigned int scan_flags; }; -enum mvpp22_cls_c2_color_action { - MVPP22_C2_COL_NO_UPD = 0, - MVPP22_C2_COL_NO_UPD_LOCK = 1, - MVPP22_C2_COL_GREEN = 2, - MVPP22_C2_COL_GREEN_LOCK = 3, - MVPP22_C2_COL_YELLOW = 4, - MVPP22_C2_COL_YELLOW_LOCK = 5, - MVPP22_C2_COL_RED = 6, - MVPP22_C2_COL_RED_LOCK = 7, +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 mvpp2_cls_lookup_entry { - u32 lkpid; - u32 way; - u32 data; +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 onboard_hub_pdata { - unsigned long reset_us; +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 pdev_list_entry { - struct platform_device *pdev; - struct list_head node; +struct hid_dynid { + struct list_head list; + struct hid_device_id id; }; -enum isp176x_host_controller_fields { - PORT_OWNER = 0, - PORT_POWER = 1, - PORT_LSTATUS = 2, - PORT_RESET = 3, - PORT_SUSPEND = 4, - PORT_RESUME = 5, - PORT_PE = 6, - PORT_CSC = 7, - PORT_CONNECT = 8, - HCS_PPC = 9, - HCS_N_PORTS = 10, - HCC_ISOC_CACHE = 11, - HCC_ISOC_THRES = 12, - CMD_LRESET = 13, - CMD_RESET = 14, - CMD_RUN = 15, - STS_PCD = 16, - HC_FRINDEX = 17, - FLAG_CF = 18, - HC_ISO_PTD_DONEMAP = 19, - HC_ISO_PTD_SKIPMAP = 20, - HC_ISO_PTD_LASTPTD = 21, - HC_INT_PTD_DONEMAP = 22, - HC_INT_PTD_SKIPMAP = 23, - HC_INT_PTD_LASTPTD = 24, - HC_ATL_PTD_DONEMAP = 25, - HC_ATL_PTD_SKIPMAP = 26, - HC_ATL_PTD_LASTPTD = 27, - ALL_ATX_RESET = 28, - HW_ANA_DIGI_OC = 29, - HW_DEV_DMA = 30, - HW_COMN_IRQ = 31, - HW_COMN_DMA = 32, - HW_DATA_BUS_WIDTH = 33, - HW_DACK_POL_HIGH = 34, - HW_DREQ_POL_HIGH = 35, - HW_INTR_HIGH_ACT = 36, - HW_INTF_LOCK = 37, - HW_INTR_EDGE_TRIG = 38, - HW_GLOBAL_INTR_EN = 39, - HC_CHIP_ID_HIGH = 40, - HC_CHIP_ID_LOW = 41, - HC_CHIP_REV = 42, - HC_SCRATCH = 43, - SW_RESET_RESET_ATX = 44, - SW_RESET_RESET_HC = 45, - SW_RESET_RESET_ALL = 46, - ISO_BUF_FILL = 47, - INT_BUF_FILL = 48, - ATL_BUF_FILL = 49, - MEM_BANK_SEL = 50, - MEM_START_ADDR = 51, - HC_DATA = 52, - HC_INTERRUPT = 53, - HC_INT_IRQ_ENABLE = 54, - HC_ATL_IRQ_ENABLE = 55, - HC_ISO_IRQ_MASK_OR = 56, - HC_INT_IRQ_MASK_OR = 57, - HC_ATL_IRQ_MASK_OR = 58, - HC_ISO_IRQ_MASK_AND = 59, - HC_INT_IRQ_MASK_AND = 60, - HC_ATL_IRQ_MASK_AND = 61, - HW_OTG_DISABLE = 62, - HW_SW_SEL_HC_DC = 63, - HW_VBUS_DRV = 64, - HW_SEL_CP_EXT = 65, - HW_DM_PULLDOWN = 66, - HW_DP_PULLDOWN = 67, - HW_DP_PULLUP = 68, - HW_HC_2_DIS = 69, - HW_OTG_DISABLE_CLEAR = 70, - HW_SW_SEL_HC_DC_CLEAR = 71, - HW_VBUS_DRV_CLEAR = 72, - HW_SEL_CP_EXT_CLEAR = 73, - HW_DM_PULLDOWN_CLEAR = 74, - HW_DP_PULLDOWN_CLEAR = 75, - HW_DP_PULLUP_CLEAR = 76, - HW_HC_2_DIS_CLEAR = 77, - HC_FIELD_MAX = 78, +struct rmem_assigned_device { + struct device *dev; + struct reserved_mem *rmem; + struct list_head list; +}; + +typedef int (*reservedmem_of_init_fn)(struct reserved_mem *); + +enum imx_mu_type { + IMX_MU_V1 = 0, + IMX_MU_V2 = 2, + IMX_MU_V2_S4 = 32768, + IMX_MU_V2_IRQ = 65536, }; -struct exynos_ehci_hcd { - struct clk *clk; - struct device_node *of_node; - struct phy *phy[3]; - bool legacy_phy; +struct imx_mu_priv; + +struct imx_mu_con_priv; + +struct imx_mu_dcfg { + int (*tx)(struct imx_mu_priv *, struct imx_mu_con_priv *, void *); + int (*rx)(struct imx_mu_priv *, struct imx_mu_con_priv *); + int (*rxdb)(struct imx_mu_priv *, struct imx_mu_con_priv *); + void (*init)(struct imx_mu_priv *); + enum imx_mu_type type; + u32 xTR; + u32 xRR; + u32 xSR[4]; + u32 xCR[5]; }; -struct sunxi_musb_cfg { - const struct musb_hdrc_config *hdrc_config; - bool has_sram; - bool has_reset; - bool no_configdata; +enum imx_mu_chan_type { + IMX_MU_TYPE_TX = 0, + IMX_MU_TYPE_RX = 1, + IMX_MU_TYPE_TXDB = 2, + IMX_MU_TYPE_RXDB = 3, + IMX_MU_TYPE_RST = 4, + IMX_MU_TYPE_TXDB_V2 = 5, }; -struct sunxi_glue { +struct imx_mu_con_priv { + unsigned int idx; + char irq_desc[20]; + enum imx_mu_chan_type type; + struct mbox_chan *chan; + struct tasklet_struct txdb_tasklet; +}; + +struct imx_mu_priv { struct device *dev; - struct musb *musb; - struct platform_device *musb_pdev; + void *base; + void *msg; + spinlock_t xcr_lock; + struct mbox_controller mbox; + struct mbox_chan mbox_chans[24]; + struct imx_mu_con_priv con_priv[24]; + const struct imx_mu_dcfg *dcfg; struct clk *clk; - struct reset_control *rst; - struct phy *phy; - struct platform_device *usb_phy; - struct usb_phy *xceiv; - enum phy_mode phy_mode; - unsigned long flags; - struct work_struct work; - struct extcon_dev *extcon; - struct notifier_block host_nb; + int irq[24]; + bool suspend; + u32 xcr[5]; + bool side_b; }; -struct input_led { - struct led_classdev cdev; - struct input_handle *handle; - unsigned int code; +enum imx_mu_xcr { + IMX_MU_CR = 0, + IMX_MU_GIER = 1, + IMX_MU_GCR = 2, + IMX_MU_TCR = 3, + IMX_MU_RCR = 4, + IMX_MU_xCR_MAX = 5, }; -struct input_leds { - struct input_handle handle; - unsigned int num_leds; - struct input_led leds[0]; +enum imx_mu_xsr { + IMX_MU_SR = 0, + IMX_MU_GSR = 1, + IMX_MU_TSR = 2, + IMX_MU_RSR = 3, + IMX_MU_xSR_MAX = 4, }; -struct xgene_rtc_dev { - struct rtc_device *rtc; - void *csr_base; - struct clk *clk; - unsigned int irq_wake; - unsigned int irq_enabled; +struct imx_s4_rpc_msg { + uint8_t ver; + uint8_t size; + uint8_t cmd; + uint8_t tag; }; -struct tegra_i2c_hw_feature { - bool has_continue_xfer_support; - bool has_per_pkt_xfer_complete_irq; - bool has_config_load_reg; - u32 clk_divisor_hs_mode; - u32 clk_divisor_std_mode; - u32 clk_divisor_fast_mode; - u32 clk_divisor_fast_plus_mode; - bool has_multi_master_mode; - bool has_slcg_override_reg; - bool has_mst_fifo; - const struct i2c_adapter_quirks *quirks; - bool supports_bus_clear; - bool has_apb_dma; - u32 tlow_std_mode; - u32 thigh_std_mode; - u32 tlow_fast_fastplus_mode; - u32 thigh_fast_fastplus_mode; - u32 setup_hold_time_std_mode; - u32 setup_hold_time_fast_fast_plus_mode; - u32 setup_hold_time_hs_mode; - bool has_interface_timing_reg; +struct imx_s4_rpc_msg_max { + struct imx_s4_rpc_msg hdr; + u32 data[254]; }; -enum msg_end_type { - MSG_END_STOP = 0, - MSG_END_REPEAT_START = 1, - MSG_END_CONTINUE = 2, +struct imx_sc_rpc_msg_max { + struct imx_sc_rpc_msg hdr; + u32 data[30]; }; -struct tegra_i2c_dev { - struct device *dev; - struct i2c_adapter adapter; - const struct tegra_i2c_hw_feature *hw; - struct reset_control *rst; - unsigned int cont_id; - unsigned int irq; - phys_addr_t base_phys; - void *base; - struct clk_bulk_data clocks[2]; - unsigned int nclocks; - struct clk *div_clk; - struct i2c_timings timings; - struct completion msg_complete; - size_t msg_buf_remaining; - unsigned int msg_len; - int msg_err; - u8 *msg_buf; - struct completion dma_complete; - struct dma_chan *dma_chan; - unsigned int dma_buf_size; - struct device *dma_dev; - dma_addr_t dma_phys; - void *dma_buf; - bool multimaster_mode; - bool atomic_mode; - bool dma_mode; - bool msg_read; - bool is_dvc; - bool is_vi; +struct glink_rpm_pipe { + struct qcom_glink_pipe native; + void *tail; + void *head; + void *fifo; }; -typedef void (*btf_trace_thermal_power_allocator)(void *, struct thermal_zone_device *, u32 *, u32, u32 *, u32, size_t, u32, u32, int, s32); - -typedef void (*btf_trace_thermal_power_allocator_pid)(void *, struct thermal_zone_device *, s32, s32, s64, s64, s64, s32); - -struct trace_event_raw_thermal_power_allocator { - struct trace_entry ent; - int tz_id; - u32 __data_loc_req_power; - u32 total_req_power; - u32 __data_loc_granted_power; - u32 total_granted_power; - size_t num_actors; - u32 power_range; - u32 max_allocatable_power; - int current_temp; - s32 delta_temp; - char __data[0]; +struct glink_rpm { + struct qcom_glink *glink; + int irq; + struct mbox_client mbox_client; + struct mbox_chan *mbox_chan; + struct glink_rpm_pipe rx_pipe; + struct glink_rpm_pipe tx_pipe; }; -struct trace_event_raw_thermal_power_allocator_pid { - struct trace_entry ent; - int tz_id; - s32 err; - s32 err_integral; - s64 p; - s64 i; - s64 d; - s32 output; - char __data[0]; +struct rpm_toc_entry { + __le32 id; + __le32 offset; + __le32 size; }; -struct trace_event_data_offsets_thermal_power_allocator { - u32 req_power; - u32 granted_power; +struct rpm_toc { + __le32 magic; + __le32 count; + struct rpm_toc_entry entries[0]; }; -struct power_allocator_params { - bool allocated_tzp; - s64 err_integral; - s32 prev_err; - int trip_switch_on; - int trip_max_desired_temperature; - u32 sustainable_power; +struct iio_subirq { + bool enabled; }; -struct trace_event_data_offsets_thermal_power_allocator_pid {}; +struct iio_trigger_ops; -struct cpufreq_stats { - unsigned int total_trans; - unsigned long long last_time; - unsigned int max_state; - unsigned int state_num; - unsigned int last_index; - u64 *time_in_state; - unsigned int *freq_table; - unsigned int *trans_table; - unsigned int reset_pending; - unsigned long long reset_time; +struct iio_trigger { + const struct iio_trigger_ops *ops; + struct module *owner; + int id; + const char *name; + struct device dev; + struct list_head list; + struct list_head alloc_list; + atomic_t use_count; + struct irq_chip subirq_chip; + int subirq_base; + struct iio_subirq subirqs[2]; + unsigned long pool[1]; + struct mutex pool_lock; + bool attached_own_device; + struct work_struct reenable_work; }; -enum dw_mci_exynos_type { - DW_MCI_TYPE_EXYNOS4210 = 0, - DW_MCI_TYPE_EXYNOS4412 = 1, - DW_MCI_TYPE_EXYNOS5250 = 2, - DW_MCI_TYPE_EXYNOS5420 = 3, - DW_MCI_TYPE_EXYNOS5420_SMU = 4, - DW_MCI_TYPE_EXYNOS7 = 5, - DW_MCI_TYPE_EXYNOS7_SMU = 6, - DW_MCI_TYPE_ARTPEC8 = 7, +struct iio_trigger_ops { + int (*set_trigger_state)(struct iio_trigger *, bool); + void (*reenable)(struct iio_trigger *); + int (*validate_device)(struct iio_trigger *, struct iio_dev *); }; -struct dw_mci_exynos_compatible { - char *compatible; - enum dw_mci_exynos_type ctrl_type; +struct iio_poll_func { + struct iio_dev *indio_dev; + irqreturn_t (*h)(int, void *); + irqreturn_t (*thread)(int, void *); + int type; + char *name; + int irq; + s64 timestamp; }; -struct dw_mci_exynos_priv_data { - enum dw_mci_exynos_type ctrl_type; - u8 ciu_div; - u32 sdr_timing; - u32 ddr_timing; - u32 hs400_timing; - u32 tuned_sample; - u32 cur_speed; - u32 dqs_delay; - u32 saved_dqs_en; - u32 saved_strobe_ctrl; +struct ocotp_ctrl_reg { + u32 bm_addr; + u32 bm_busy; + u32 bm_error; + u32 bm_rel_shadows; }; -struct led_lookup_data { - struct list_head list; - const char *provider; - const char *dev_id; - const char *con_id; +struct ocotp_priv___2; + +struct ocotp_params { + unsigned int nregs; + unsigned int bank_address_words; + void (*set_timing)(struct ocotp_priv___2 *); + struct ocotp_ctrl_reg ctrl; }; -enum scmi_reset_protocol_cmd { - RESET_DOMAIN_ATTRIBUTES = 3, - RESET = 4, - RESET_NOTIFY = 5, - RESET_DOMAIN_NAME_GET = 6, +struct ocotp_priv___2 { + struct device *dev; + struct clk *clk; + void *base; + const struct ocotp_params *params; + struct nvmem_config *config; }; -struct reset_dom_info; +struct snd_compr_avail { + __u64 avail; + struct snd_compr_tstamp tstamp; +} __attribute__((packed)); -struct scmi_reset_info { - u32 version; - int num_domains; - struct reset_dom_info *dom_info; +struct snd_compr_file { + unsigned long caps; + struct snd_compr_stream stream; }; -struct reset_dom_info { - bool async_reset; - bool reset_notify; - u32 latency_us; - char name[64]; +enum txtime_flags { + SOF_TXTIME_DEADLINE_MODE = 1, + SOF_TXTIME_REPORT_ERRORS = 2, + SOF_TXTIME_FLAGS_LAST = 2, + SOF_TXTIME_FLAGS_MASK = 3, }; -struct scmi_msg_resp_reset_domain_attributes { - __le32 attributes; - __le32 latency; - u8 name[16]; +struct linger { + int l_onoff; + int l_linger; }; -struct scmi_msg_reset_domain_reset { - __le32 domain_id; - __le32 flags; - __le32 reset_state; +struct sock_txtime { + __kernel_clockid_t clockid; + __u32 flags; }; -struct scmi_msg_reset_notify { - __le32 id; - __le32 event_control; +struct so_timestamping { + int flags; + int bind_phc; }; -struct scmi_reset_issued_notify_payld { - __le32 agent_id; - __le32 domain_id; - __le32 reset_state; +enum netlink_attribute_type { + NL_ATTR_TYPE_INVALID = 0, + NL_ATTR_TYPE_FLAG = 1, + NL_ATTR_TYPE_U8 = 2, + NL_ATTR_TYPE_U16 = 3, + NL_ATTR_TYPE_U32 = 4, + NL_ATTR_TYPE_U64 = 5, + NL_ATTR_TYPE_S8 = 6, + NL_ATTR_TYPE_S16 = 7, + NL_ATTR_TYPE_S32 = 8, + NL_ATTR_TYPE_S64 = 9, + NL_ATTR_TYPE_BINARY = 10, + NL_ATTR_TYPE_STRING = 11, + NL_ATTR_TYPE_NUL_STRING = 12, + NL_ATTR_TYPE_NESTED = 13, + NL_ATTR_TYPE_NESTED_ARRAY = 14, + NL_ATTR_TYPE_BITFIELD32 = 15, + NL_ATTR_TYPE_SINT = 16, + NL_ATTR_TYPE_UINT = 17, }; -struct scmi_reset_issued_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int domain_id; - unsigned int reset_state; +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 tegra186_bpmp { - struct tegra_bpmp *parent; - struct { - struct gen_pool *pool; - union { - void *sram; - void *dram; - }; - dma_addr_t phys; - } tx; - struct { - struct gen_pool *pool; - union { - void *sram; - void *dram; - }; - dma_addr_t phys; - } rx; +struct netlink_policy_dump_state { + unsigned int policy_idx; + unsigned int attr_idx; + unsigned int n_alloc; struct { - struct mbox_client client; - struct mbox_chan *channel; - } mbox; + const struct nla_policy *policy; + unsigned int maxtype; + } policies[0]; }; -enum { - MAGNITUDE_STRONG = 2, - MAGNITUDE_WEAK = 3, - MAGNITUDE_NUM = 4, +enum ethtool_flags { + ETH_FLAG_TXVLAN = 128, + ETH_FLAG_RXVLAN = 256, + ETH_FLAG_LRO = 32768, + ETH_FLAG_NTUPLE = 134217728, + ETH_FLAG_RXHASH = 268435456, }; -struct ms_data { - unsigned long quirks; - struct hid_device *hdev; - struct work_struct ff_worker; - __u8 strong; - __u8 weak; - void *output_report_dmabuf; +enum ethtool_sfeatures_retval_bits { + ETHTOOL_F_UNSUPPORTED__BIT = 0, + ETHTOOL_F_WISH__BIT = 1, + ETHTOOL_F_COMPAT__BIT = 2, }; -struct xb1s_ff_report { - __u8 report_id; - __u8 enable; - __u8 magnitude[4]; - __u8 duration_10ms; - __u8 start_delay_10ms; - __u8 loop_count; +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, }; -struct qcom_hwspinlock_of_data { - u32 offset; - u32 stride; - const struct regmap_config *regmap_config; +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 tegra186_emc_dvfs; +struct ethtool_rx_flow_match { + struct flow_dissector dissector; + struct ethtool_rx_flow_key key; + struct ethtool_rx_flow_key mask; +}; -struct tegra186_emc { - struct tegra_bpmp *bpmp; - struct device *dev; - struct clk *clk; - struct tegra186_emc_dvfs *dvfs; - unsigned int num_dvfs; +struct ethtool_devlink_compat { + struct devlink *devlink; + union { + struct ethtool_flash efl; + struct ethtool_drvinfo info; + }; +}; + +struct ethtool_value { + __u32 cmd; + __u32 data; +}; + +struct ethtool_link_usettings { + struct ethtool_link_settings base; struct { - struct dentry *root; - unsigned long min_rate; - unsigned long max_rate; - } debugfs; - struct icc_provider provider; + __u32 supported[4]; + __u32 advertising[4]; + __u32 lp_advertising[4]; + } link_modes; }; -struct tegra186_emc_dvfs { - unsigned long latency; - unsigned long rate; +struct ethtool_gstrings { + __u32 cmd; + __u32 string_set; + __u32 len; + __u8 data[0]; }; -struct emc_dvfs_latency { - uint32_t freq; - uint32_t latency; +struct ethtool_perm_addr { + __u32 cmd; + __u32 size; + __u8 data[0]; }; -struct mrq_emc_dvfs_latency_response { - uint32_t num_pairs; - struct emc_dvfs_latency pairs[14]; +struct ethtool_sset_info { + __u32 cmd; + __u32 reserved; + __u64 sset_mask; + __u32 data[0]; }; -struct sunxi_sid_cfg { - u32 value_offset; - u32 size; - bool need_register_readout; +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 sunxi_sid { - void *base; - u32 value_offset; +struct ethtool_get_features_block { + __u32 available; + __u32 requested; + __u32 active; + __u32 never_changed; }; -enum { - HTE_TS_REGISTERED = 0, - HTE_TS_REQ = 1, - HTE_TS_DISABLE = 2, - HTE_TS_QUEUE_WK = 3, +struct ethtool_gfeatures { + __u32 cmd; + __u32 size; + struct ethtool_get_features_block features[0]; }; -struct hte_ts_info { - u32 xlated_id; - unsigned long flags; - unsigned long hte_cb_flags; - u64 seq; - char *line_name; - bool free_attr_name; - hte_ts_cb_t cb; - hte_ts_sec_cb_t tcb; - atomic_t dropped_ts; - spinlock_t slock; - struct work_struct cb_work; - struct mutex req_mlock; - struct dentry *ts_dbg_root; - struct hte_device *gdev; - void *cl_data; +struct ethtool_set_features_block { + __u32 valid; + __u32 requested; }; -struct hte_device { - u32 nlines; - atomic_t ts_req; - struct device *sdev; - struct dentry *dbg_root; - struct list_head list; - struct hte_chip *chip; - struct module *owner; - struct hte_ts_info ei[0]; +struct ethtool_sfeatures { + __u32 cmd; + __u32 size; + struct ethtool_set_features_block features[0]; }; -enum qdisc_state2_t { - __QDISC_STATE2_RUNNING = 0, +struct ethtool_per_queue_op { + __u32 cmd; + __u32 sub_command; + __u32 queue_mask[128]; + char data[0]; }; -struct skb_array { - struct ptr_ring ring; +struct nf_bridge_frag_data; + +struct nf_ipv6_ops { + int (*chk_addr)(struct net *, const struct in6_addr *, const struct net_device *, int); + int (*route_me_harder)(struct net *, struct sock *, struct sk_buff *); + int (*dev_get_saddr)(struct net *, const struct net_device *, const struct in6_addr *, unsigned int, struct in6_addr *); + int (*route)(struct net *, struct dst_entry **, struct flowi *, bool); + u32 (*cookie_init_sequence)(const struct ipv6hdr *, const struct tcphdr *, u16 *); + int (*cookie_v6_check)(const struct ipv6hdr *, const struct tcphdr *, __u32); + 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 *); + int (*br_fragment)(struct net *, struct sock *, struct sk_buff *, struct nf_bridge_frag_data *, int (*)(struct net *, struct sock *, const struct nf_bridge_frag_data *, struct sk_buff *)); }; -struct pfifo_fast_priv { - struct skb_array q[3]; +struct tcp_plb_state { + u8 consec_cong_rounds: 5; + u8 unused: 3; + u32 pause_until; }; -struct tc_prio_qopt { - int bands; - __u8 priomap[16]; +struct xdr_skb_reader { + struct sk_buff *skb; + unsigned int offset; + size_t count; + __wsum csum; }; -struct psched_pktrate { - u64 rate_pkts_ps; - u32 mult; - u8 shift; +typedef size_t (*xdr_skb_read_actor)(struct xdr_skb_reader *, void *, size_t); + +struct xprt_addr { + const char *addr; + struct callback_head rcu; }; -struct mini_Qdisc_pair { - struct mini_Qdisc miniq1; - struct mini_Qdisc miniq2; - struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq; +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, }; -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, +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]; }; -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 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 mm_reply_data { - struct ethnl_reply_data base; - struct ethtool_mm_state state; - struct ethtool_mm_stats stats; +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 tcp_plb_state { - u8 consec_cong_rounds: 5; - u8 unused: 3; - u32 pause_until; +struct maple_pnode; + +struct maple_metadata { + unsigned char end; + unsigned char gap; }; -struct bpf_iter__unix { +struct maple_range_64 { + struct maple_pnode *parent; + unsigned long pivot[15]; union { - struct bpf_iter_meta *meta; + 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 unix_sock *unix_sk; + 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; }; - 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 maple_topiary { + struct maple_pnode *parent; + struct maple_enode *next; }; -struct unix_stream_read_state { - int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *); - struct socket *socket; - struct msghdr *msg; - struct pipe_inode_info *pipe; - size_t size; - int flags; - unsigned int splice_flags; +struct 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 group_data { - int limit[21]; - int base[20]; - int permute[258]; - int minLen; - int maxLen; +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 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 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; }; -typedef ZSTD_frameHeader zstd_frame_header; +struct ma_topiary { + struct maple_enode *head; + struct maple_enode *tail; + struct maple_tree *mtree; +}; -typedef ZSTD_DCtx ZSTD_DStream; +struct trace_event_data_offsets_ma_op {}; -typedef ZSTD_DStream zstd_dstream; +struct trace_event_data_offsets_ma_read {}; -typedef ZSTD_outBuffer zstd_out_buffer; +struct trace_event_data_offsets_ma_write {}; -struct ZSTD_inBuffer_s { - const void *src; - size_t size; - size_t pos; +struct vdso_abi_info { + const char *name; + const char *vdso_code_start; + const char *vdso_code_end; + unsigned long vdso_pages; + struct vm_special_mapping *dm; + struct vm_special_mapping *cm; }; -typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; +enum vdso_abi { + VDSO_ABI_AA64 = 0, + VDSO_ABI_AA32 = 1, +}; -typedef ZSTD_inBuffer zstd_in_buffer; +enum aarch32_map { + AA32_MAP_VECTORS = 0, + AA32_MAP_SIGPAGE = 1, + AA32_MAP_VVAR = 2, + AA32_MAP_VDSO = 3, +}; -typedef ZSTD_DCtx zstd_dctx; +enum vvar_pages { + VVAR_DATA_PAGE_OFFSET = 0, + VVAR_TIMENS_PAGE_OFFSET = 1, + VVAR_NR_PAGES = 2, +}; -typedef ZSTD_ErrorCode zstd_error_code; +enum aarch64_map { + AA64_MAP_VVAR = 0, + AA64_MAP_VDSO = 1, +}; -struct uevent_sock { - struct list_head list; - struct sock *sk; +struct page_change_data { + pgprot_t set_mask; + pgprot_t clear_mask; }; -struct alt_region { - struct alt_instr *begin; - struct alt_instr *end; +struct vgic_its_abi { + int cte_esz; + int dte_esz; + int ite_esz; + int (*save_tables)(struct vgic_its *); + int (*restore_tables)(struct vgic_its *); + int (*commit)(struct vgic_its *); }; -typedef void (*alternative_cb_t)(struct alt_instr *, __le32 *, __le32 *, int); +struct vgic_translation_cache_entry { + struct list_head entry; + phys_addr_t db; + u32 devid; + u32 eventid; + struct vgic_irq *irq; +}; -enum { - kvm_ioeventfd_flag_nr_datamatch = 0, - kvm_ioeventfd_flag_nr_pio = 1, - kvm_ioeventfd_flag_nr_deassign = 2, - kvm_ioeventfd_flag_nr_virtio_ccw_notify = 3, - kvm_ioeventfd_flag_nr_fast_mmio = 4, - kvm_ioeventfd_flag_nr_max = 5, +struct its_device___2 { + struct list_head dev_list; + struct list_head itt_head; + u32 num_eventid_bits; + gpa_t itt_addr; + u32 device_id; }; -struct _ioeventfd { - struct list_head list; - u64 addr; - int length; - struct eventfd_ctx *eventfd; - u64 datamatch; - struct kvm_io_device dev; - u8 bus_idx; - bool wildcard; +struct its_collection___2; + +struct its_ite { + struct list_head ite_list; + struct vgic_irq *irq; + struct its_collection___2 *collection; + u32 event_id; }; -typedef void (*btf_trace_kvm_wfx_arm64)(void *, unsigned long, bool); +struct its_collection___2 { + struct list_head coll_list; + u32 collection_id; + u32 target_addr; +}; -typedef void (*btf_trace_kvm_hvc_arm64)(void *, unsigned long, unsigned long, unsigned long); +typedef int (*entry_fn_t)(struct vgic_its *, u32, void *, void *); -typedef void (*btf_trace_kvm_arm_setup_debug)(void *, struct kvm_vcpu___2 *, __u32); +struct host_mmu { + struct kvm_arch___2 arch; + struct kvm_pgtable___2 pgt; + struct kvm_pgtable_mm_ops mm_ops; + hyp_spinlock_t lock; +}; -typedef void (*btf_trace_kvm_arm_clear_debug)(void *, __u32); +struct kvm_mem_range { + u64 start; + u64 end; +}; -typedef void (*btf_trace_kvm_arm_set_dreg32)(void *, const char *, __u64); +struct pkvm_mem_transition { + u64 nr_pages; + struct { + enum pkvm_component_id id; + u64 addr; + union { + struct { + u64 completer_addr; + } host; + struct { + u64 completer_addr; + } hyp; + }; + } initiator; + struct { + enum pkvm_component_id id; + } completer; +}; -typedef void (*btf_trace_kvm_arm_set_regset)(void *, const char *, int, __u64 *, __u64 *); +struct pkvm_mem_donation { + const struct pkvm_mem_transition tx; +}; -typedef void (*btf_trace_trap_reg)(void *, const char *, int, bool, u64); +struct pkvm_mem_share { + const struct pkvm_mem_transition tx; + const enum kvm_pgtable_prot completer_prot; +}; -typedef void (*btf_trace_kvm_handle_sys_reg)(void *, unsigned long); +struct check_walk_data { + enum pkvm_page_state desired; + enum pkvm_page_state (*get_page_state)(kvm_pte_t, u64); +}; + +typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *); -typedef void (*btf_trace_kvm_sys_access)(void *, unsigned long, struct sys_reg_params *, const struct sys_reg_desc___2 *); +typedef void (*btf_trace_irq_handler_exit)(void *, int, struct irqaction *, int); -typedef void (*btf_trace_kvm_set_guest_debug)(void *, struct kvm_vcpu___2 *, __u32); +typedef void (*btf_trace_softirq_entry)(void *, unsigned int); -typedef int (*exit_handle_fn)(struct kvm_vcpu___2 *); +typedef void (*btf_trace_softirq_exit)(void *, unsigned int); -struct trace_event_raw_kvm_wfx_arm64 { - struct trace_entry ent; - unsigned long vcpu_pc; - bool is_wfe; - char __data[0]; -}; +typedef void (*btf_trace_softirq_raise)(void *, unsigned int); -struct trace_event_raw_kvm_hvc_arm64 { - struct trace_entry ent; - unsigned long vcpu_pc; - unsigned long r0; - unsigned long imm; - char __data[0]; +typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *); + +typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); + +typedef struct { + unsigned int __softirq_pending; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +} irq_cpustat_t; + +struct tasklet_head { + struct tasklet_struct *head; + struct tasklet_struct **tail; }; -struct trace_event_raw_kvm_arm_setup_debug { +struct trace_event_raw_irq_handler_entry { struct trace_entry ent; - struct kvm_vcpu___2 *vcpu; - __u32 guest_debug; + int irq; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_kvm_arm_clear_debug { +struct trace_event_raw_irq_handler_exit { struct trace_entry ent; - __u32 guest_debug; + int irq; + int ret; char __data[0]; }; -struct trace_event_raw_kvm_arm_set_dreg32 { +struct trace_event_raw_softirq { struct trace_entry ent; - const char *name; - __u64 value; + unsigned int vec; char __data[0]; }; -struct trace_event_raw_kvm_arm_set_regset { +struct trace_event_raw_tasklet { struct trace_entry ent; - const char *name; - int len; - u64 ctrls[16]; - u64 values[16]; + void *tasklet; + void *func; char __data[0]; }; -struct trace_event_raw_trap_reg { - struct trace_entry ent; - const char *fn; - int reg; - bool is_write; - u64 write_value; - char __data[0]; +struct trace_event_data_offsets_irq_handler_entry { + u32 name; }; -struct trace_event_raw_kvm_handle_sys_reg { - struct trace_entry ent; - unsigned long hsr; - char __data[0]; -}; +struct trace_event_data_offsets_irq_handler_exit {}; -struct trace_event_raw_kvm_sys_access { - struct trace_entry ent; - unsigned long vcpu_pc; - bool is_write; - const char *name; - u8 Op0; - u8 Op1; - u8 CRn; - u8 CRm; - u8 Op2; - char __data[0]; -}; +struct trace_event_data_offsets_softirq {}; -struct trace_event_raw_kvm_set_guest_debug { - struct trace_entry ent; - struct kvm_vcpu___2 *vcpu; - __u32 guest_debug; - char __data[0]; -}; +struct trace_event_data_offsets_tasklet {}; -struct trace_event_data_offsets_kvm_wfx_arm64 {}; +struct semaphore_waiter { + struct list_head list; + struct task_struct *task; + bool up; +}; -struct trace_event_data_offsets_kvm_hvc_arm64 {}; +typedef __kernel_long_t __kernel_suseconds_t; -struct trace_event_data_offsets_kvm_arm_setup_debug {}; +typedef __kernel_suseconds_t suseconds_t; -struct trace_event_data_offsets_kvm_arm_clear_debug {}; +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 trace_event_data_offsets_kvm_arm_set_dreg32 {}; +enum kprobe_slot_state { + SLOT_CLEAN = 0, + SLOT_DIRTY = 1, + SLOT_USED = 2, +}; -struct trace_event_data_offsets_kvm_arm_set_regset {}; +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 trace_event_data_offsets_trap_reg {}; +struct kprobe_blacklist_entry { + struct list_head list; + unsigned long start_addr; + unsigned long end_addr; +}; -struct trace_event_data_offsets_kvm_handle_sys_reg {}; +typedef int (*objpool_init_obj_cb)(void *, void *); -struct trace_event_data_offsets_kvm_sys_access {}; +typedef void (*btf_trace_bpf_trace_printk)(void *, const char *); -struct trace_event_data_offsets_kvm_set_guest_debug {}; +struct bpf_nested_pt_regs { + struct pt_regs regs[3]; +}; -struct waitid_info; +struct bpf_trace_sample_data { + struct perf_sample_data sds[3]; +}; -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 send_signal_irq_work { + struct irq_work irq_work; + struct task_struct *task; + u32 sig; + enum pid_type type; }; -struct waitid_info { - pid_t pid; - uid_t uid; - int status; - int cause; +struct bpf_raw_tp_regs { + struct pt_regs regs[3]; }; -struct elf64_note { - Elf64_Word n_namesz; - Elf64_Word n_descsz; - Elf64_Word n_type; +enum { + BPF_F_UPROBE_MULTI_RETURN = 1, }; -typedef unsigned long perf_trace_t[1024]; +enum { + BPF_F_GET_BRANCH_RECORDS_SIZE = 1, +}; -struct bucket; +typedef u64 (*btf_bpf_override_return)(struct pt_regs *, unsigned long); -struct htab_elem; +typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); -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; -}; +typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); -struct bucket { - struct hlist_nulls_head head; - raw_spinlock_t raw_lock; -}; +typedef u64 (*btf_bpf_probe_read_kernel)(void *, u32, const void *); -struct htab_elem { - union { - struct hlist_nulls_node hash_node; - struct { - void *padding; - union { - struct pcpu_freelist_node fnode; - struct htab_elem *batch_flink; - }; - }; - }; - union { - void *ptr_to_pptr; - struct bpf_lru_node lru_node; - }; - u32 hash; - long: 0; - char key[0]; -}; +typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *); -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; -}; +typedef u64 (*btf_bpf_probe_read_compat)(void *, u32, const void *); -typedef void (*btf_trace_mm_filemap_delete_from_page_cache)(void *, struct folio *); +typedef u64 (*btf_bpf_probe_read_compat_str)(void *, u32, const void *); -typedef void (*btf_trace_mm_filemap_add_to_page_cache)(void *, struct folio *); +typedef u64 (*btf_bpf_probe_write_user)(void __attribute__((btf_type_tag("user"))) *, const void *, u32); -typedef void (*btf_trace_filemap_set_wb_err)(void *, struct address_space *, errseq_t); +typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64); -typedef void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t); +typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32); -enum behavior { - EXCLUSIVE = 0, - SHARED = 1, - DROP = 2, -}; +typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32); -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]; -}; +typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32); -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 btf_ptr; -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]; -}; +typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64); -struct cachestat_range { - __u64 off; - __u64 len; +struct btf_ptr { + void *ptr; + __u32 type_id; + __u32 flags; }; -struct cachestat { - __u64 nr_cache; - __u64 nr_dirty; - __u64 nr_writeback; - __u64 nr_evicted; - __u64 nr_recently_evicted; -}; +typedef u64 (*btf_bpf_perf_event_read)(struct bpf_map *, u64); -struct trace_event_data_offsets_mm_filemap_op_page_cache {}; +struct bpf_perf_event_value; -struct trace_event_data_offsets_filemap_set_wb_err {}; +typedef u64 (*btf_bpf_perf_event_read_value)(struct bpf_map *, u64, struct bpf_perf_event_value *, u32); -struct trace_event_data_offsets_file_check_and_advance_wb_err {}; +struct bpf_perf_event_value { + __u64 counter; + __u64 enabled; + __u64 running; +}; -typedef void (*btf_trace_ksm_start_scan)(void *, int, u32); +typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64); -typedef void (*btf_trace_ksm_stop_scan)(void *, int, u32); +typedef u64 (*btf_bpf_get_current_task)(); -typedef void (*btf_trace_ksm_enter)(void *, void *); +typedef u64 (*btf_bpf_get_current_task_btf)(); -typedef void (*btf_trace_ksm_exit)(void *, void *); +typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *); -typedef void (*btf_trace_ksm_merge_one_page)(void *, unsigned long, void *, void *, int); +typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32); -typedef void (*btf_trace_ksm_merge_with_ksm_page)(void *, void *, unsigned long, void *, void *, int); +typedef u64 (*btf_bpf_send_signal)(u32); -typedef void (*btf_trace_ksm_remove_ksm_page)(void *, unsigned long); +typedef u64 (*btf_bpf_send_signal_thread)(u32); -typedef void (*btf_trace_ksm_remove_rmap_item)(void *, unsigned long, void *, void *); +typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32); -struct ksm_rmap_item; +typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64); -struct ksm_mm_slot { - struct mm_slot slot; - struct ksm_rmap_item *rmap_list; -}; +typedef u64 (*btf_bpf_get_func_ip_tracing)(void *); -struct ksm_stable_node; +typedef u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *); -struct ksm_rmap_item { - struct ksm_rmap_item *rmap_list; - union { - struct anon_vma *anon_vma; - int nid; - }; - struct mm_struct *mm; - unsigned long address; - unsigned int oldchecksum; - union { - struct rb_node node; - struct { - struct ksm_stable_node *head; - struct hlist_node hlist; - }; - }; -}; +typedef u64 (*btf_bpf_get_func_ip_kprobe_multi)(struct pt_regs *); -struct ksm_stable_node { - union { - struct rb_node node; - struct { - struct list_head *head; - struct { - struct hlist_node hlist_dup; - struct list_head list; - }; - }; - }; - struct hlist_head hlist; - union { - unsigned long kpfn; - unsigned long chain_prune_time; - }; - int rmap_hlist_len; - int nid; -}; +typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *); -struct ksm_scan { - struct ksm_mm_slot *mm_slot; - unsigned long address; - struct ksm_rmap_item **rmap_list; - unsigned long seqnr; -}; +typedef u64 (*btf_bpf_get_func_ip_uprobe_multi)(struct pt_regs *); -enum get_ksm_page_flags { - GET_KSM_PAGE_NOLOCK = 0, - GET_KSM_PAGE_LOCK = 1, - GET_KSM_PAGE_TRYLOCK = 2, -}; +typedef u64 (*btf_bpf_get_attach_cookie_uprobe_multi)(struct pt_regs *); -struct trace_event_raw_ksm_scan_template { - struct trace_entry ent; - int seq; - u32 rmap_entries; - char __data[0]; -}; +typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *); -struct trace_event_raw_ksm_enter_exit_template { - struct trace_entry ent; - void *mm; - char __data[0]; -}; +typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *); -struct trace_event_raw_ksm_merge_one_page { - struct trace_entry ent; - unsigned long pfn; - void *rmap_item; - void *mm; - int err; - char __data[0]; -}; +typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *); -struct trace_event_raw_ksm_merge_with_ksm_page { - struct trace_entry ent; - void *ksm_page; - unsigned long pfn; - void *rmap_item; - void *mm; - int err; - char __data[0]; -}; +typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64); -struct trace_event_raw_ksm_remove_ksm_page { - struct trace_entry ent; - unsigned long pfn; - char __data[0]; -}; +typedef u64 (*btf_get_func_arg)(void *, u32, u64 *); -struct trace_event_raw_ksm_remove_rmap_item { - struct trace_entry ent; - unsigned long pfn; - void *rmap_item; - void *mm; - char __data[0]; -}; +typedef u64 (*btf_get_func_ret)(void *, u64 *); -struct trace_event_data_offsets_ksm_scan_template {}; +typedef u64 (*btf_get_func_arg_cnt)(void *); -struct trace_event_data_offsets_ksm_enter_exit_template {}; +typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64); -struct trace_event_data_offsets_ksm_merge_one_page {}; +typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64); -struct trace_event_data_offsets_ksm_merge_with_ksm_page {}; +typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64); -struct trace_event_data_offsets_ksm_remove_ksm_page {}; +typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32); -struct trace_event_data_offsets_ksm_remove_rmap_item {}; +typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64); -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]; -}; +typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64); -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 u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64); -typedef int __kernel_daddr_t; +typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64); -struct ustat { - __kernel_daddr_t f_tfree; - unsigned long f_tinode; - char f_fname[6]; - char f_fpack[6]; +struct trace_event_raw_bpf_trace_printk { + struct trace_entry ent; + u32 __data_loc_bpf_string; + char __data[0]; }; -typedef __kernel_fsid_t compat_fsid_t; +struct bpf_uprobe; -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]; +struct bpf_uprobe_multi_run_ctx { + struct bpf_run_ctx run_ctx; + unsigned long entry_ip; + struct bpf_uprobe *uprobe; }; -typedef s32 compat_daddr_t; +struct bpf_uprobe_multi_link; -struct compat_ustat { - compat_daddr_t f_tfree; - compat_ino_t f_tinode; - char f_fname[6]; - char f_fpack[6]; +struct bpf_uprobe { + struct bpf_uprobe_multi_link *link; + loff_t offset; + u64 cookie; + struct uprobe_consumer consumer; }; -struct posix_acl_xattr_header { - __le32 a_version; +struct bpf_uprobe_multi_link { + struct path path; + struct bpf_link link; + u32 cnt; + struct bpf_uprobe *uprobes; + struct task_struct *task; }; -struct posix_acl_xattr_entry { - __le16 e_tag; - __le16 e_perm; - __le32 e_id; +struct bpf_trace_module { + struct module *module; + struct list_head list; }; -enum { - MOUNTPROC3_NULL = 0, - MOUNTPROC3_MNT = 1, - MOUNTPROC3_DUMP = 2, - MOUNTPROC3_UMNT = 3, - MOUNTPROC3_UMNTALL = 4, - MOUNTPROC3_EXPORT = 5, +struct trace_event_data_offsets_bpf_trace_printk { + u32 bpf_string; }; -enum { - MOUNTPROC_NULL = 0, - MOUNTPROC_MNT = 1, - MOUNTPROC_DUMP = 2, - MOUNTPROC_UMNT = 3, - MOUNTPROC_UMNTALL = 4, - MOUNTPROC_EXPORT = 5, +struct bpf_key { + struct key *key; + bool has_ref; }; -struct mountres { - int errno; - struct nfs_fh *fh; - unsigned int *auth_count; - rpc_authflavor_t *auth_flavors; +struct perf_event_query_bpf { + __u32 ids_len; + __u32 prog_cnt; + __u32 ids[0]; }; -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_mm_lru_insertion)(void *, struct folio *); -typedef void (*btf_trace_nfs4_renew_async)(void *, const struct nfs_client *, int); +typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *); -typedef void (*btf_trace_nfs4_exchange_id)(void *, const struct nfs_client *, int); +struct lru_rotate { + local_lock_t lock; + struct folio_batch fbatch; +}; -typedef void (*btf_trace_nfs4_create_session)(void *, const struct nfs_client *, int); +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; +}; -typedef void (*btf_trace_nfs4_destroy_session)(void *, const struct nfs_client *, int); +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]; +}; -typedef void (*btf_trace_nfs4_destroy_clientid)(void *, const struct nfs_client *, int); +struct trace_event_raw_mm_lru_activate { + struct trace_entry ent; + struct folio *folio; + unsigned long pfn; + char __data[0]; +}; -typedef void (*btf_trace_nfs4_bind_conn_to_session)(void *, const struct nfs_client *, int); +typedef void (*move_fn_t)(struct lruvec *, struct folio *); -typedef void (*btf_trace_nfs4_sequence)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_mm_lru_insertion {}; -typedef void (*btf_trace_nfs4_reclaim_complete)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_mm_lru_activate {}; -typedef void (*btf_trace_nfs4_sequence_done)(void *, const struct nfs4_session *, const struct nfs4_sequence_res *); +struct vma_swap_readahead { + unsigned short win; + unsigned short offset; + unsigned short nr_pte; +}; -typedef void (*btf_trace_nfs4_cb_sequence)(void *, const struct cb_sequenceargs *, const struct cb_sequenceres *, __be32); +struct inodes_stat_t { + long nr_inodes; + long nr_unused; + long dummy[5]; +}; -typedef void (*btf_trace_nfs4_cb_seqid_err)(void *, const struct cb_sequenceargs *, __be32); +typedef void (*btf_trace_ext2_dio_write_begin)(void *, struct kiocb *, struct iov_iter *, ssize_t); -typedef void (*btf_trace_nfs4_cb_offload)(void *, const struct nfs_fh *, const nfs4_stateid *, uint64_t, int, int); +typedef void (*btf_trace_ext2_dio_write_end)(void *, struct kiocb *, struct iov_iter *, ssize_t); -typedef void (*btf_trace_nfs4_setup_sequence)(void *, const struct nfs4_session *, const struct nfs4_sequence_args *); +typedef void (*btf_trace_ext2_dio_write_buff_end)(void *, struct kiocb *, struct iov_iter *, ssize_t); -typedef void (*btf_trace_nfs4_state_mgr)(void *, const struct nfs_client *); +typedef void (*btf_trace_ext2_dio_read_begin)(void *, struct kiocb *, struct iov_iter *, ssize_t); -typedef void (*btf_trace_nfs4_state_mgr_failed)(void *, const struct nfs_client *, const char *, int); +typedef void (*btf_trace_ext2_dio_read_end)(void *, struct kiocb *, struct iov_iter *, ssize_t); -typedef void (*btf_trace_nfs4_xdr_bad_operation)(void *, const struct xdr_stream *, u32, u32); +typedef void (*btf_trace_ext2_dio_write_endio)(void *, struct kiocb *, ssize_t, int); -typedef void (*btf_trace_nfs4_xdr_status)(void *, const struct xdr_stream *, u32, u32); +struct trace_event_raw_ext2_dio_class { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + size_t count; + int ki_flags; + bool aio; + ssize_t ret; + char __data[0]; +}; -typedef void (*btf_trace_nfs4_xdr_bad_filehandle)(void *, const struct xdr_stream *, u32, u32); +struct trace_event_raw_ext2_dio_write_endio { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + ssize_t size; + int ki_flags; + bool aio; + int ret; + char __data[0]; +}; -typedef void (*btf_trace_nfs_cb_no_clp)(void *, __be32, u32); +struct trace_event_data_offsets_ext2_dio_class {}; -typedef void (*btf_trace_nfs_cb_badprinc)(void *, __be32, u32); +struct trace_event_data_offsets_ext2_dio_write_endio {}; -typedef void (*btf_trace_nfs4_open_reclaim)(void *, const struct nfs_open_context *, int, int); +struct nfs_page_iter_page { + const struct nfs_page *req; + size_t count; +}; -typedef void (*btf_trace_nfs4_open_expired)(void *, const struct nfs_open_context *, int, int); +struct nfs4_ds_server { + struct list_head list; + struct rpc_clnt *rpc_clnt; +}; -typedef void (*btf_trace_nfs4_open_file)(void *, const struct nfs_open_context *, int, int); +struct autofs_dev_ioctl; -typedef void (*btf_trace_nfs4_cached_open)(void *, const struct nfs4_state *); +typedef int (*ioctl_fn___2)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *); -typedef void (*btf_trace_nfs4_close)(void *, const struct nfs4_state *, const struct nfs_closeargs *, const struct nfs_closeres *, int); +struct args_protover { + __u32 version; +}; -typedef void (*btf_trace_nfs4_get_lock)(void *, const struct file_lock *, const struct nfs4_state *, int, int); +struct args_protosubver { + __u32 sub_version; +}; -typedef void (*btf_trace_nfs4_unlock)(void *, const struct file_lock *, const struct nfs4_state *, int, int); +struct args_openmount { + __u32 devid; +}; -typedef void (*btf_trace_nfs4_set_lock)(void *, const struct file_lock *, const struct nfs4_state *, const nfs4_stateid *, int, int); +struct args_ready { + __u32 token; +}; -typedef void (*btf_trace_nfs4_state_lock_reclaim)(void *, const struct nfs4_state *, const struct nfs4_lock_state *); +struct args_fail { + __u32 token; + __s32 status; +}; -typedef void (*btf_trace_nfs4_set_delegation)(void *, const struct inode *, fmode_t); +struct args_setpipefd { + __s32 pipefd; +}; -typedef void (*btf_trace_nfs4_reclaim_delegation)(void *, const struct inode *, fmode_t); +struct args_timeout { + __u64 timeout; +}; -typedef void (*btf_trace_nfs4_delegreturn_exit)(void *, const struct nfs4_delegreturnargs *, const struct nfs4_delegreturnres *, int); +struct args_requester { + __u32 uid; + __u32 gid; +}; -typedef void (*btf_trace_nfs4_test_delegation_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); +struct args_expire { + __u32 how; +}; -typedef void (*btf_trace_nfs4_test_open_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); +struct args_askumount { + __u32 may_umount; +}; -typedef void (*btf_trace_nfs4_test_lock_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); +struct args_in { + __u32 type; +}; -typedef void (*btf_trace_nfs4_lookup)(void *, const struct inode *, const struct qstr *, int); +struct args_out { + __u32 devid; + __u32 magic; +}; -typedef void (*btf_trace_nfs4_symlink)(void *, const struct inode *, const struct qstr *, int); +struct args_ismountpoint { + union { + struct args_in in; + struct args_out out; + }; +}; -typedef void (*btf_trace_nfs4_mkdir)(void *, const struct inode *, const struct qstr *, int); +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]; +}; -typedef void (*btf_trace_nfs4_mknod)(void *, const struct inode *, const struct qstr *, int); +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, +}; -typedef void (*btf_trace_nfs4_remove)(void *, const struct inode *, const struct qstr *, int); +struct msg_msgseg { + struct msg_msgseg *next; +}; -typedef void (*btf_trace_nfs4_get_fs_locations)(void *, const struct inode *, const struct qstr *, int); +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_submount; + 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 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; +}; -typedef void (*btf_trace_nfs4_secinfo)(void *, const struct inode *, const struct qstr *, int); +enum lsm_event { + LSM_POLICY_CHANGE = 0, +}; -typedef void (*btf_trace_nfs4_lookupp)(void *, const struct inode *, int); +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; +}; -typedef void (*btf_trace_nfs4_rename)(void *, const struct inode *, const struct qstr *, const struct inode *, const struct qstr *, int); +struct io_open { + struct file *file; + int dfd; + u32 file_slot; + struct filename *filename; + struct open_how how; + unsigned long nofile; +}; -typedef void (*btf_trace_nfs4_access)(void *, const struct inode *, int); +struct io_close { + struct file *file; + int fd; + u32 file_slot; +}; -typedef void (*btf_trace_nfs4_readlink)(void *, const struct inode *, int); +struct strarray { + char **array; + size_t n; +}; -typedef void (*btf_trace_nfs4_readdir)(void *, const struct inode *, int); +struct sg_splitter { + struct scatterlist *in_sg0; + int nents; + off_t skip_sg0; + unsigned int length_last_sg; + struct scatterlist *out_sg; +}; -typedef void (*btf_trace_nfs4_get_acl)(void *, const struct inode *, int); +struct mbigen_device { + struct platform_device *pdev; + void *base; +}; -typedef void (*btf_trace_nfs4_set_acl)(void *, const struct inode *, int); +struct ti_sci_inta_event_desc { + u16 global_event; + u32 hwirq; + u8 vint_bit; +}; -typedef void (*btf_trace_nfs4_get_security_label)(void *, const struct inode *, int); +struct ti_sci_inta_vint_desc { + struct irq_domain *domain; + struct list_head list; + unsigned long event_map[1]; + struct ti_sci_inta_event_desc events[64]; + unsigned int parent_virq; + u16 vint_id; +}; -typedef void (*btf_trace_nfs4_set_security_label)(void *, const struct inode *, int); +struct ti_sci_inta_irq_domain { + const struct ti_sci_handle *sci; + struct ti_sci_resource *vint; + struct ti_sci_resource *global_event; + struct list_head vint_list; + struct mutex vint_mutex; + void *base; + struct platform_device *pdev; + u32 ti_sci_id; + int unmapped_cnt; + u16 *unmapped_dev_ids; +}; -typedef void (*btf_trace_nfs4_setattr)(void *, const struct inode *, const nfs4_stateid *, int); +struct sunxi_rsb_addr_map { + u16 hwaddr; + u8 rtaddr; +}; -typedef void (*btf_trace_nfs4_delegreturn)(void *, const struct inode *, const nfs4_stateid *, int); +struct sunxi_rsb { + struct device *dev; + void *regs; + struct clk *clk; + struct reset_control *rstc; + struct completion complete; + struct mutex lock; + unsigned int status; + u32 clk_freq; +}; -typedef void (*btf_trace_nfs4_open_stateid_update)(void *, const struct inode *, const nfs4_stateid *, int); +struct sunxi_rsb_ctx { + struct sunxi_rsb_device *rdev; + int size; +}; -typedef void (*btf_trace_nfs4_open_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int); +struct mvebu_comphy_conf { + enum phy_mode mode; + int submode; + unsigned int lane; + unsigned int port; + u32 mux; + u32 fw_mode; +}; -typedef void (*btf_trace_nfs4_close_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int); +struct mvebu_comphy_priv { + void *base; + struct regmap *regmap; + struct device *dev; + struct clk *mg_domain_clk; + struct clk *mg_core_clk; + struct clk *axi_clk; + unsigned long cp_phys; +}; -typedef void (*btf_trace_nfs4_getattr)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); +struct mvebu_comphy_lane { + struct mvebu_comphy_priv *priv; + unsigned int id; + enum phy_mode mode; + int submode; + int port; +}; -typedef void (*btf_trace_nfs4_lookup_root)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); +struct pinctrl_maps { + struct list_head node; + const struct pinctrl_map *maps; + unsigned int num_maps; +}; -typedef void (*btf_trace_nfs4_fsinfo)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); +struct pctldev; -typedef void (*btf_trace_nfs4_cb_getattr)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, int); +enum pad_func_e { + IMX_SC_PAD_FUNC_SET = 15, + IMX_SC_PAD_FUNC_GET = 16, +}; -typedef void (*btf_trace_nfs4_cb_recall)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int); +struct imx_sc_msg_resp_pad_get { + struct imx_sc_rpc_msg hdr; + u32 val; +}; -typedef void (*btf_trace_nfs4_cb_layoutrecall_file)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int); +struct imx_sc_msg_req_pad_get { + struct imx_sc_rpc_msg hdr; + u16 pad; + long: 0; +}; -typedef void (*btf_trace_nfs4_map_name_to_uid)(void *, const char *, int, u32, int); +struct imx_sc_msg_req_pad_set { + struct imx_sc_rpc_msg hdr; + u32 val; + u16 pad; +}; -typedef void (*btf_trace_nfs4_map_group_to_gid)(void *, const char *, int, u32, int); +struct imx_sc_msg_gpio_set_pad_wakeup { + struct imx_sc_rpc_msg hdr; + u16 pad; + u8 wakeup; +}; -typedef void (*btf_trace_nfs4_map_uid_to_name)(void *, const char *, int, u32, int); +struct meson_pmx_axg_data { + unsigned int func; +}; -typedef void (*btf_trace_nfs4_map_gid_to_group)(void *, const char *, int, u32, int); +struct armada_37xx_pin_group; -typedef void (*btf_trace_nfs4_read)(void *, const struct nfs_pgio_header *, int); +struct armada_37xx_pin_data { + u8 nr_pins; + char *name; + struct armada_37xx_pin_group *groups; + int ngroups; +}; -typedef void (*btf_trace_nfs4_pnfs_read)(void *, const struct nfs_pgio_header *, int); +struct armada_37xx_pin_group { + const char *name; + unsigned int start_pin; + unsigned int npins; + u32 reg_mask; + u32 val[3]; + unsigned int extra_pin; + unsigned int extra_npins; + const char *funcs[3]; + unsigned int *pins; +}; -typedef void (*btf_trace_nfs4_write)(void *, const struct nfs_pgio_header *, int); +struct armada_37xx_pm_state { + u32 out_en_l; + u32 out_en_h; + u32 out_val_l; + u32 out_val_h; + u32 irq_en_l; + u32 irq_en_h; + u32 irq_pol_l; + u32 irq_pol_h; + u32 selection; +}; -typedef void (*btf_trace_nfs4_pnfs_write)(void *, const struct nfs_pgio_header *, int); +struct armada_37xx_pmx_func; -typedef void (*btf_trace_nfs4_commit)(void *, const struct nfs_commit_data *, int); +struct armada_37xx_pinctrl { + struct regmap *regmap; + void *base; + const struct armada_37xx_pin_data *data; + struct device *dev; + struct gpio_chip gpio_chip; + raw_spinlock_t irq_lock; + struct pinctrl_desc pctl; + struct pinctrl_dev *pctl_dev; + struct armada_37xx_pin_group *groups; + unsigned int ngroups; + struct armada_37xx_pmx_func *funcs; + unsigned int nfuncs; + struct armada_37xx_pm_state pm; +}; -typedef void (*btf_trace_nfs4_pnfs_commit_ds)(void *, const struct nfs_commit_data *, int); +struct armada_37xx_pmx_func { + const char *name; + const char **groups; + unsigned int ngroups; +}; -typedef void (*btf_trace_nfs4_layoutget)(void *, const struct nfs_open_context *, const struct pnfs_layout_range *, const struct pnfs_layout_range *, const nfs4_stateid *, int); +struct tile_info { + u32 offset; + u32 size; +}; -typedef void (*btf_trace_nfs4_layoutcommit)(void *, const struct inode *, const nfs4_stateid *, int); +typedef void (*btf_trace_gpio_direction)(void *, unsigned int, int, int); -typedef void (*btf_trace_nfs4_layoutreturn)(void *, const struct inode *, const nfs4_stateid *, int); +typedef void (*btf_trace_gpio_value)(void *, unsigned int, int, int); -typedef void (*btf_trace_nfs4_layoutreturn_on_close)(void *, const struct inode *, const nfs4_stateid *, int); +enum { + GPIOLINE_CHANGED_REQUESTED = 1, + GPIOLINE_CHANGED_RELEASED = 2, + GPIOLINE_CHANGED_CONFIG = 3, +}; -typedef void (*btf_trace_nfs4_layouterror)(void *, const struct inode *, const nfs4_stateid *, int); +struct gpio_pin_range { + struct list_head node; + struct pinctrl_dev *pctldev; + struct pinctrl_gpio_range range; +}; -typedef void (*btf_trace_nfs4_layoutstats)(void *, const struct inode *, const nfs4_stateid *, int); +struct trace_event_raw_gpio_direction { + struct trace_entry ent; + unsigned int gpio; + int in; + int err; + char __data[0]; +}; -typedef void (*btf_trace_pnfs_update_layout)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *, enum pnfs_update_layout_reason); +struct trace_event_raw_gpio_value { + struct trace_entry ent; + unsigned int gpio; + int get; + int value; + char __data[0]; +}; -typedef void (*btf_trace_pnfs_mds_fallback_pg_init_read)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +struct gpiod_hog { + struct list_head list; + const char *chip_label; + u16 chip_hwnum; + const char *line_name; + unsigned long lflags; + int dflags; +}; -typedef void (*btf_trace_pnfs_mds_fallback_pg_init_write)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +typedef struct { + spinlock_t *lock; + unsigned long flags; +} class_spinlock_irqsave_t; -typedef void (*btf_trace_pnfs_mds_fallback_pg_get_mirror_count)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +struct trace_event_data_offsets_gpio_direction {}; -typedef void (*btf_trace_pnfs_mds_fallback_read_done)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +struct trace_event_data_offsets_gpio_value {}; -typedef void (*btf_trace_pnfs_mds_fallback_write_done)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +enum { + MATCH_MTR = 0, + MATCH_MEQ = 1, + MATCH_MLE = 2, + MATCH_MLT = 3, + MATCH_MGE = 4, + MATCH_MGT = 5, +}; -typedef void (*btf_trace_pnfs_mds_fallback_read_pagelist)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +struct acpi_table_hest { + struct acpi_table_header header; + u32 error_source_count; +}; -typedef void (*btf_trace_pnfs_mds_fallback_write_pagelist)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +struct acpi_hest_ia_corrected { + struct acpi_hest_header header; + u16 reserved1; + u8 flags; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + struct acpi_hest_notify notify; + u8 num_hardware_banks; + u8 reserved2[3]; +}; -typedef void (*btf_trace_nfs4_deviceid_free)(void *, const struct nfs_client *, const struct nfs4_deviceid *); +struct acpi_hest_ia_machine_check { + struct acpi_hest_header header; + u16 reserved1; + u8 flags; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + u64 global_capability_data; + u64 global_control_data; + u8 num_hardware_banks; + u8 reserved3[7]; +}; -typedef void (*btf_trace_nfs4_getdeviceinfo)(void *, const struct nfs_server *, const struct nfs4_deviceid *, int); +struct acpi_hest_ia_deferred_check { + struct acpi_hest_header header; + u16 reserved1; + u8 flags; + u8 enabled; + u32 records_to_preallocate; + u32 max_sections_per_record; + struct acpi_hest_notify notify; + u8 num_hardware_banks; + u8 reserved2[3]; +}; -typedef void (*btf_trace_nfs4_find_deviceid)(void *, const struct nfs_server *, const struct nfs4_deviceid *, int); +typedef int (*apei_hest_func_t)(struct acpi_hest_header *, void *); -typedef void (*btf_trace_ff_layout_read_error)(void *, const struct nfs_pgio_header *); +struct ghes_arr { + struct platform_device **ghes_devs; + unsigned int count; +}; -typedef void (*btf_trace_ff_layout_write_error)(void *, const struct nfs_pgio_header *); +struct acpipnp_parse_option_s { + struct pnp_dev *dev; + unsigned int option_flags; +}; -typedef void (*btf_trace_ff_layout_commit_error)(void *, const struct nfs_commit_data *); +enum s5m8767_reg { + S5M8767_REG_ID = 0, + S5M8767_REG_INT1 = 1, + S5M8767_REG_INT2 = 2, + S5M8767_REG_INT3 = 3, + S5M8767_REG_INT1M = 4, + S5M8767_REG_INT2M = 5, + S5M8767_REG_INT3M = 6, + S5M8767_REG_STATUS1 = 7, + S5M8767_REG_STATUS2 = 8, + S5M8767_REG_STATUS3 = 9, + S5M8767_REG_CTRL1 = 10, + S5M8767_REG_CTRL2 = 11, + S5M8767_REG_LOWBAT1 = 12, + S5M8767_REG_LOWBAT2 = 13, + S5M8767_REG_BUCHG = 14, + S5M8767_REG_DVSRAMP = 15, + S5M8767_REG_DVSTIMER2 = 16, + S5M8767_REG_DVSTIMER3 = 17, + S5M8767_REG_DVSTIMER4 = 18, + S5M8767_REG_LDO1 = 19, + S5M8767_REG_LDO2 = 20, + S5M8767_REG_LDO3 = 21, + S5M8767_REG_LDO4 = 22, + S5M8767_REG_LDO5 = 23, + S5M8767_REG_LDO6 = 24, + S5M8767_REG_LDO7 = 25, + S5M8767_REG_LDO8 = 26, + S5M8767_REG_LDO9 = 27, + S5M8767_REG_LDO10 = 28, + S5M8767_REG_LDO11 = 29, + S5M8767_REG_LDO12 = 30, + S5M8767_REG_LDO13 = 31, + S5M8767_REG_LDO14 = 32, + S5M8767_REG_LDO15 = 33, + S5M8767_REG_LDO16 = 34, + S5M8767_REG_LDO17 = 35, + S5M8767_REG_LDO18 = 36, + S5M8767_REG_LDO19 = 37, + S5M8767_REG_LDO20 = 38, + S5M8767_REG_LDO21 = 39, + S5M8767_REG_LDO22 = 40, + S5M8767_REG_LDO23 = 41, + S5M8767_REG_LDO24 = 42, + S5M8767_REG_LDO25 = 43, + S5M8767_REG_LDO26 = 44, + S5M8767_REG_LDO27 = 45, + S5M8767_REG_LDO28 = 46, + S5M8767_REG_UVLO = 49, + S5M8767_REG_BUCK1CTRL1 = 50, + S5M8767_REG_BUCK1CTRL2 = 51, + S5M8767_REG_BUCK2CTRL = 52, + S5M8767_REG_BUCK2DVS1 = 53, + S5M8767_REG_BUCK2DVS2 = 54, + S5M8767_REG_BUCK2DVS3 = 55, + S5M8767_REG_BUCK2DVS4 = 56, + S5M8767_REG_BUCK2DVS5 = 57, + S5M8767_REG_BUCK2DVS6 = 58, + S5M8767_REG_BUCK2DVS7 = 59, + S5M8767_REG_BUCK2DVS8 = 60, + S5M8767_REG_BUCK3CTRL = 61, + S5M8767_REG_BUCK3DVS1 = 62, + S5M8767_REG_BUCK3DVS2 = 63, + S5M8767_REG_BUCK3DVS3 = 64, + S5M8767_REG_BUCK3DVS4 = 65, + S5M8767_REG_BUCK3DVS5 = 66, + S5M8767_REG_BUCK3DVS6 = 67, + S5M8767_REG_BUCK3DVS7 = 68, + S5M8767_REG_BUCK3DVS8 = 69, + S5M8767_REG_BUCK4CTRL = 70, + S5M8767_REG_BUCK4DVS1 = 71, + S5M8767_REG_BUCK4DVS2 = 72, + S5M8767_REG_BUCK4DVS3 = 73, + S5M8767_REG_BUCK4DVS4 = 74, + S5M8767_REG_BUCK4DVS5 = 75, + S5M8767_REG_BUCK4DVS6 = 76, + S5M8767_REG_BUCK4DVS7 = 77, + S5M8767_REG_BUCK4DVS8 = 78, + S5M8767_REG_BUCK5CTRL1 = 79, + S5M8767_REG_BUCK5CTRL2 = 80, + S5M8767_REG_BUCK5CTRL3 = 81, + S5M8767_REG_BUCK5CTRL4 = 82, + S5M8767_REG_BUCK5CTRL5 = 83, + S5M8767_REG_BUCK6CTRL1 = 84, + S5M8767_REG_BUCK6CTRL2 = 85, + S5M8767_REG_BUCK7CTRL1 = 86, + S5M8767_REG_BUCK7CTRL2 = 87, + S5M8767_REG_BUCK8CTRL1 = 88, + S5M8767_REG_BUCK8CTRL2 = 89, + S5M8767_REG_BUCK9CTRL1 = 90, + S5M8767_REG_BUCK9CTRL2 = 91, + S5M8767_REG_LDO1CTRL = 92, + S5M8767_REG_LDO2_1CTRL = 93, + S5M8767_REG_LDO2_2CTRL = 94, + S5M8767_REG_LDO2_3CTRL = 95, + S5M8767_REG_LDO2_4CTRL = 96, + S5M8767_REG_LDO3CTRL = 97, + S5M8767_REG_LDO4CTRL = 98, + S5M8767_REG_LDO5CTRL = 99, + S5M8767_REG_LDO6CTRL = 100, + S5M8767_REG_LDO7CTRL = 101, + S5M8767_REG_LDO8CTRL = 102, + S5M8767_REG_LDO9CTRL = 103, + S5M8767_REG_LDO10CTRL = 104, + S5M8767_REG_LDO11CTRL = 105, + S5M8767_REG_LDO12CTRL = 106, + S5M8767_REG_LDO13CTRL = 107, + S5M8767_REG_LDO14CTRL = 108, + S5M8767_REG_LDO15CTRL = 109, + S5M8767_REG_LDO16CTRL = 110, + S5M8767_REG_LDO17CTRL = 111, + S5M8767_REG_LDO18CTRL = 112, + S5M8767_REG_LDO19CTRL = 113, + S5M8767_REG_LDO20CTRL = 114, + S5M8767_REG_LDO21CTRL = 115, + S5M8767_REG_LDO22CTRL = 116, + S5M8767_REG_LDO23CTRL = 117, + S5M8767_REG_LDO24CTRL = 118, + S5M8767_REG_LDO25CTRL = 119, + S5M8767_REG_LDO26CTRL = 120, + S5M8767_REG_LDO27CTRL = 121, + S5M8767_REG_LDO28CTRL = 122, +}; -typedef void (*btf_trace_nfs4_llseek)(void *, const struct inode *, const struct nfs42_seek_args *, const struct nfs42_seek_res *, int); +struct s2mps11_clk { + struct sec_pmic_dev *iodev; + struct device_node *clk_np; + struct clk_hw hw; + struct clk *clk; + struct clk_lookup *lookup; + u32 mask; + unsigned int reg; +}; -typedef void (*btf_trace_nfs4_fallocate)(void *, const struct inode *, const struct nfs42_falloc_args *, int); +struct hi6220_stub_clk { + u32 id; + struct device *dev; + struct clk_hw hw; + struct regmap *dfs_map; + struct mbox_client cl; + struct mbox_chan *mbox; +}; -typedef void (*btf_trace_nfs4_deallocate)(void *, const struct inode *, const struct nfs42_falloc_args *, int); +struct hi6220_mbox_msg { + unsigned char type; + unsigned char cmd; + unsigned char obj; + unsigned char src; + unsigned char para[4]; +}; -typedef void (*btf_trace_nfs4_copy)(void *, const struct inode *, const struct inode *, const struct nfs42_copy_args *, const struct nfs42_copy_res *, const struct nl4_server *, int); +union hi6220_mbox_data { + unsigned int data[8]; + struct hi6220_mbox_msg msg; +}; -typedef void (*btf_trace_nfs4_clone)(void *, const struct inode *, const struct inode *, const struct nfs42_clone_args *, int); +struct mtk_clk_cpumux { + struct clk_hw hw; + struct regmap *regmap; + u32 reg; + u32 mask; + u8 shift; +}; -typedef void (*btf_trace_nfs4_copy_notify)(void *, const struct inode *, const struct nfs42_copy_notify_args *, const struct nfs42_copy_notify_res *, int); +struct div6_clock { + struct clk_hw hw; + void *reg; + unsigned int div; + u32 src_mask; + struct notifier_block nb; + u8 parents[0]; +}; -typedef void (*btf_trace_nfs4_offload_cancel)(void *, const struct nfs42_offload_status_args *, int); +struct clk_rk3568_inits { + void (*inits)(struct device_node *); +}; -typedef void (*btf_trace_nfs4_getxattr)(void *, const struct inode *, const char *, int); +struct tegra_clk_device { + struct notifier_block clk_nb; + struct device *dev; + struct clk_hw *hw; + struct mutex lock; +}; -typedef void (*btf_trace_nfs4_setxattr)(void *, const struct inode *, const char *, int); +struct vexpress_osc { + struct regmap *reg; + struct clk_hw hw; + unsigned long rate_min; + unsigned long rate_max; +}; -typedef void (*btf_trace_nfs4_removexattr)(void *, const struct inode *, const char *, int); +enum pmic_type { + PMIC_MT6323 = 0, + PMIC_MT6331 = 1, + PMIC_MT6332 = 2, + PMIC_MT6351 = 3, + PMIC_MT6357 = 4, + PMIC_MT6358 = 5, + PMIC_MT6359 = 6, + PMIC_MT6380 = 7, + PMIC_MT6397 = 8, +}; -typedef void (*btf_trace_nfs4_listxattr)(void *, const struct inode *, int); +struct pwrap_slv_regops; -struct trace_event_raw_nfs4_clientid_event { - struct trace_entry ent; - u32 __data_loc_dstaddr; - unsigned long error; - char __data[0]; +struct pwrap_slv_type { + const u32 *dew_regs; + enum pmic_type type; + const u32 *comp_dew_regs; + enum pmic_type comp_type; + const struct pwrap_slv_regops *regops; + u32 caps; }; -struct trace_event_raw_nfs4_sequence_done { - struct trace_entry ent; - unsigned int session; - unsigned int slot_nr; - unsigned int seq_nr; - unsigned int highest_slotid; - unsigned int target_highest_slotid; - unsigned long status_flags; - unsigned long error; - char __data[0]; -}; +struct pmic_wrapper; -struct trace_event_raw_nfs4_cb_sequence { - struct trace_entry ent; - unsigned int session; - unsigned int slot_nr; - unsigned int seq_nr; - unsigned int highest_slotid; - unsigned int cachethis; - unsigned long error; - char __data[0]; +struct pwrap_slv_regops { + const struct regmap_config *regmap; + int (*pwrap_read)(struct pmic_wrapper *, u32, u32 *); + int (*pwrap_write)(struct pmic_wrapper *, u32, u32); }; -struct trace_event_raw_nfs4_cb_seqid_err { - struct trace_entry ent; - unsigned int session; - unsigned int slot_nr; - unsigned int seq_nr; - unsigned int highest_slotid; - unsigned int cachethis; - unsigned long error; - char __data[0]; -}; +struct pmic_wrapper_type; -struct trace_event_raw_nfs4_cb_offload { - struct trace_entry ent; - unsigned long error; - u32 fhandle; - loff_t cb_count; - int cb_how; - int cb_stateid_seq; - u32 cb_stateid_hash; - char __data[0]; +struct pmic_wrapper { + struct device *dev; + void *base; + struct regmap *regmap; + const struct pmic_wrapper_type *master; + const struct pwrap_slv_type *slave; + struct clk *clk_spi; + struct clk *clk_wrap; + struct clk *clk_sys; + struct clk *clk_tmr; + struct reset_control *rstc; + struct reset_control *rstc_bridge; + void *bridge_base; }; -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]; +enum pwrap_type { + PWRAP_MT2701 = 0, + PWRAP_MT6765 = 1, + PWRAP_MT6779 = 2, + PWRAP_MT6795 = 3, + PWRAP_MT6797 = 4, + PWRAP_MT6873 = 5, + PWRAP_MT7622 = 6, + PWRAP_MT8135 = 7, + PWRAP_MT8173 = 8, + PWRAP_MT8183 = 9, + PWRAP_MT8186 = 10, + PWRAP_MT8195 = 11, + PWRAP_MT8365 = 12, + PWRAP_MT8516 = 13, }; -struct trace_event_raw_nfs4_state_mgr { - struct trace_entry ent; - unsigned long state; - u32 __data_loc_hostname; - char __data[0]; +struct pmic_wrapper_type { + int *regs; + enum pwrap_type type; + u32 arb_en_all; + u32 int_en_all; + u32 int1_en_all; + u32 spi_w; + u32 wdt_src; + u32 caps; + int (*init_reg_clock)(struct pmic_wrapper *); + int (*init_soc_specific)(struct pmic_wrapper *); }; -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]; +enum pwrap_regs { + PWRAP_MUX_SEL = 0, + PWRAP_WRAP_EN = 1, + PWRAP_DIO_EN = 2, + PWRAP_SIDLY = 3, + PWRAP_CSHEXT_WRITE = 4, + PWRAP_CSHEXT_READ = 5, + PWRAP_CSLEXT_START = 6, + PWRAP_CSLEXT_END = 7, + PWRAP_STAUPD_PRD = 8, + PWRAP_STAUPD_GRPEN = 9, + PWRAP_STAUPD_MAN_TRIG = 10, + PWRAP_STAUPD_STA = 11, + PWRAP_WRAP_STA = 12, + PWRAP_HARB_INIT = 13, + PWRAP_HARB_HPRIO = 14, + PWRAP_HIPRIO_ARB_EN = 15, + PWRAP_HARB_STA0 = 16, + PWRAP_HARB_STA1 = 17, + PWRAP_MAN_EN = 18, + PWRAP_MAN_CMD = 19, + PWRAP_MAN_RDATA = 20, + PWRAP_MAN_VLDCLR = 21, + PWRAP_WACS0_EN = 22, + PWRAP_INIT_DONE0 = 23, + PWRAP_WACS0_CMD = 24, + PWRAP_WACS0_RDATA = 25, + PWRAP_WACS0_VLDCLR = 26, + PWRAP_WACS1_EN = 27, + PWRAP_INIT_DONE1 = 28, + PWRAP_WACS1_CMD = 29, + PWRAP_WACS1_RDATA = 30, + PWRAP_WACS1_VLDCLR = 31, + PWRAP_WACS2_EN = 32, + PWRAP_INIT_DONE2 = 33, + PWRAP_WACS2_CMD = 34, + PWRAP_WACS2_RDATA = 35, + PWRAP_WACS2_VLDCLR = 36, + PWRAP_INT_EN = 37, + PWRAP_INT_FLG_RAW = 38, + PWRAP_INT_FLG = 39, + PWRAP_INT_CLR = 40, + PWRAP_SIG_ADR = 41, + PWRAP_SIG_MODE = 42, + PWRAP_SIG_VALUE = 43, + PWRAP_SIG_ERRVAL = 44, + PWRAP_CRC_EN = 45, + PWRAP_TIMER_EN = 46, + PWRAP_TIMER_STA = 47, + PWRAP_WDT_UNIT = 48, + PWRAP_WDT_SRC_EN = 49, + PWRAP_WDT_FLG = 50, + PWRAP_DEBUG_INT_SEL = 51, + PWRAP_CIPHER_KEY_SEL = 52, + PWRAP_CIPHER_IV_SEL = 53, + PWRAP_CIPHER_RDY = 54, + PWRAP_CIPHER_MODE = 55, + PWRAP_CIPHER_SWRST = 56, + PWRAP_DCM_EN = 57, + PWRAP_DCM_DBC_PRD = 58, + PWRAP_EINT_STA0_ADR = 59, + PWRAP_EINT_STA1_ADR = 60, + PWRAP_SWINF_2_WDATA_31_0 = 61, + PWRAP_SWINF_2_RDATA_31_0 = 62, + PWRAP_ADC_CMD_ADDR = 63, + PWRAP_PWRAP_ADC_CMD = 64, + PWRAP_ADC_RDY_ADDR = 65, + PWRAP_ADC_RDATA_ADDR1 = 66, + PWRAP_ADC_RDATA_ADDR2 = 67, + PWRAP_STA = 68, + PWRAP_CLR = 69, + PWRAP_DVFS_ADR8 = 70, + PWRAP_DVFS_WDATA8 = 71, + PWRAP_DVFS_ADR9 = 72, + PWRAP_DVFS_WDATA9 = 73, + PWRAP_DVFS_ADR10 = 74, + PWRAP_DVFS_WDATA10 = 75, + PWRAP_DVFS_ADR11 = 76, + PWRAP_DVFS_WDATA11 = 77, + PWRAP_DVFS_ADR12 = 78, + PWRAP_DVFS_WDATA12 = 79, + PWRAP_DVFS_ADR13 = 80, + PWRAP_DVFS_WDATA13 = 81, + PWRAP_DVFS_ADR14 = 82, + PWRAP_DVFS_WDATA14 = 83, + PWRAP_DVFS_ADR15 = 84, + PWRAP_DVFS_WDATA15 = 85, + PWRAP_EXT_CK = 86, + PWRAP_ADC_RDATA_ADDR = 87, + PWRAP_GPS_STA = 88, + PWRAP_SW_RST = 89, + PWRAP_DVFS_STEP_CTRL0 = 90, + PWRAP_DVFS_STEP_CTRL1 = 91, + PWRAP_DVFS_STEP_CTRL2 = 92, + PWRAP_SPI2_CTRL = 93, + PWRAP_CSHEXT = 94, + PWRAP_EVENT_IN_EN = 95, + PWRAP_EVENT_DST_EN = 96, + PWRAP_RRARB_INIT = 97, + PWRAP_RRARB_EN = 98, + PWRAP_RRARB_STA0 = 99, + PWRAP_RRARB_STA1 = 100, + PWRAP_EVENT_STA = 101, + PWRAP_EVENT_STACLR = 102, + PWRAP_CIPHER_LOAD = 103, + PWRAP_CIPHER_START = 104, + PWRAP_RDDMY = 105, + PWRAP_SI_CK_CON = 106, + PWRAP_DVFS_ADR0 = 107, + PWRAP_DVFS_WDATA0 = 108, + PWRAP_DVFS_ADR1 = 109, + PWRAP_DVFS_WDATA1 = 110, + PWRAP_DVFS_ADR2 = 111, + PWRAP_DVFS_WDATA2 = 112, + PWRAP_DVFS_ADR3 = 113, + PWRAP_DVFS_WDATA3 = 114, + PWRAP_DVFS_ADR4 = 115, + PWRAP_DVFS_WDATA4 = 116, + PWRAP_DVFS_ADR5 = 117, + PWRAP_DVFS_WDATA5 = 118, + PWRAP_DVFS_ADR6 = 119, + PWRAP_DVFS_WDATA6 = 120, + PWRAP_DVFS_ADR7 = 121, + PWRAP_DVFS_WDATA7 = 122, + PWRAP_SPMINF_STA = 123, + PWRAP_CIPHER_EN = 124, + PWRAP_SI_SAMPLE_CTRL = 125, + PWRAP_CSLEXT_WRITE = 126, + PWRAP_CSLEXT_READ = 127, + PWRAP_EXT_CK_WRITE = 128, + PWRAP_STAUPD_CTRL = 129, + PWRAP_WACS_P2P_EN = 130, + PWRAP_INIT_DONE_P2P = 131, + PWRAP_WACS_MD32_EN = 132, + PWRAP_INIT_DONE_MD32 = 133, + PWRAP_INT1_EN = 134, + PWRAP_INT1_FLG = 135, + PWRAP_INT1_CLR = 136, + PWRAP_WDT_SRC_EN_1 = 137, + PWRAP_INT_GPS_AUXADC_CMD_ADDR = 138, + PWRAP_INT_GPS_AUXADC_CMD = 139, + PWRAP_INT_GPS_AUXADC_RDATA_ADDR = 140, + PWRAP_EXT_GPS_AUXADC_RDATA_ADDR = 141, + PWRAP_GPSINF_0_STA = 142, + PWRAP_GPSINF_1_STA = 143, + PWRAP_OP_TYPE = 144, + PWRAP_MSB_FIRST = 145, }; -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]; +enum dew_regs { + PWRAP_DEW_BASE = 0, + PWRAP_DEW_DIO_EN = 1, + PWRAP_DEW_READ_TEST = 2, + PWRAP_DEW_WRITE_TEST = 3, + PWRAP_DEW_CRC_EN = 4, + PWRAP_DEW_CRC_VAL = 5, + PWRAP_DEW_MON_GRP_SEL = 6, + PWRAP_DEW_CIPHER_KEY_SEL = 7, + PWRAP_DEW_CIPHER_IV_SEL = 8, + PWRAP_DEW_CIPHER_RDY = 9, + PWRAP_DEW_CIPHER_MODE = 10, + PWRAP_DEW_CIPHER_SWRST = 11, + PWRAP_DEW_CIPHER_EN = 12, + PWRAP_DEW_RDDMY_NO = 13, + PWRAP_SMT_CON1 = 14, + PWRAP_DRV_CON1 = 15, + PWRAP_FILTER_CON0 = 16, + PWRAP_GPIO_PULLEN0_CLR = 17, + PWRAP_RG_SPI_CON0 = 18, + PWRAP_RG_SPI_RECORD0 = 19, + PWRAP_RG_SPI_CON2 = 20, + PWRAP_RG_SPI_CON3 = 21, + PWRAP_RG_SPI_CON4 = 22, + PWRAP_RG_SPI_CON5 = 23, + PWRAP_RG_SPI_CON6 = 24, + PWRAP_RG_SPI_CON7 = 25, + PWRAP_RG_SPI_CON8 = 26, + PWRAP_RG_SPI_CON13 = 27, + PWRAP_SPISLV_KEY = 28, + PWRAP_DEW_CRC_SWRST = 29, + PWRAP_DEW_RG_EN_RECORD = 30, + PWRAP_DEW_RECORD_CMD0 = 31, + PWRAP_DEW_RECORD_CMD1 = 32, + PWRAP_DEW_RECORD_CMD2 = 33, + PWRAP_DEW_RECORD_CMD3 = 34, + PWRAP_DEW_RECORD_CMD4 = 35, + PWRAP_DEW_RECORD_CMD5 = 36, + PWRAP_DEW_RECORD_WDATA0 = 37, + PWRAP_DEW_RECORD_WDATA1 = 38, + PWRAP_DEW_RECORD_WDATA2 = 39, + PWRAP_DEW_RECORD_WDATA3 = 40, + PWRAP_DEW_RECORD_WDATA4 = 41, + PWRAP_DEW_RECORD_WDATA5 = 42, + PWRAP_DEW_RG_ADDR_TARGET = 43, + PWRAP_DEW_RG_ADDR_MASK = 44, + PWRAP_DEW_RG_WDATA_TARGET = 45, + PWRAP_DEW_RG_WDATA_MASK = 46, + PWRAP_DEW_RG_SPI_RECORD_CLR = 47, + PWRAP_DEW_RG_CMD_ALERT_CLR = 48, + PWRAP_DEW_EVENT_OUT_EN = 49, + PWRAP_DEW_EVENT_SRC_EN = 50, + PWRAP_DEW_EVENT_SRC = 51, + PWRAP_DEW_EVENT_FLAG = 52, + PWRAP_DEW_MON_FLAG_SEL = 53, + PWRAP_DEW_EVENT_TEST = 54, + PWRAP_DEW_CIPHER_LOAD = 55, + PWRAP_DEW_CIPHER_START = 56, }; -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 exynos_soc_id { + const char *name; + unsigned int id; }; -struct trace_event_raw_nfs4_cb_error_class { - struct trace_entry ent; - u32 xid; - u32 cbident; - char __data[0]; +struct exynos_chipid_variant { + unsigned int rev_reg; + unsigned int main_rev_shift; + unsigned int sub_rev_shift; }; -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 exynos_chipid_info { + u32 product_id; + u32 revision; }; -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 meson_gx_pwrc_vpu { + struct generic_pm_domain genpd; + struct regmap *regmap_ao; + struct regmap *regmap_hhi; + struct reset_control *rstc; + struct clk *vpu_clk; + struct clk *vapb_clk; }; -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 scpsys_domain_data; -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 scpsys_soc_data { + const struct scpsys_domain_data *domains_data; + int num_domains; }; -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 scpsys_bus_prot_data { + u32 bus_prot_set_clr_mask; + u32 bus_prot_set; + u32 bus_prot_clr; + u32 bus_prot_sta_mask; + u32 bus_prot_sta; + u8 flags; }; -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 scpsys_domain_data { + const char *name; + u32 sta_mask; + int ctl_offs; + u32 sram_pdn_bits; + u32 sram_pdn_ack_bits; + int ext_buck_iso_offs; + u32 ext_buck_iso_mask; + u16 caps; + const struct scpsys_bus_prot_data bp_cfg[6]; + int pwr_sta_offs; + int pwr_sta2nd_offs; }; -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]; +enum scpsys_bus_prot_flags { + BUS_PROT_REG_UPDATE = 2, + BUS_PROT_IGNORE_CLR_ACK = 4, + BUS_PROT_INVERTED = 8, + BUS_PROT_COMPONENT_INFRA = 16, + BUS_PROT_COMPONENT_SMI = 32, + BUS_PROT_STA_COMPONENT_INFRA_NAO = 64, }; -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 scpsys; -struct trace_event_raw_nfs4_test_stateid_event { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - u64 fileid; - int stateid_seq; - u32 stateid_hash; - char __data[0]; +struct scpsys_domain { + struct generic_pm_domain genpd; + const struct scpsys_domain_data *data; + struct scpsys *scpsys; + int num_clks; + struct clk_bulk_data *clks; + int num_subsys_clks; + struct clk_bulk_data *subsys_clks; + struct regmap *infracfg_nao; + struct regmap *infracfg; + struct regmap *smi; + struct regulator *supply; }; -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 scpsys { + struct device *dev; + struct regmap *base; + const struct scpsys_soc_data *soc_data; + struct genpd_onecell_data pd_data; + struct generic_pm_domain *domains[0]; }; -struct trace_event_raw_nfs4_lookupp { - struct trace_entry ent; - dev_t dev; - u64 ino; - unsigned long error; - char __data[0]; +struct evtchn_fifo_queue { + uint32_t head[16]; }; -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]; +typedef uint32_t event_word_t; + +struct evtchn_fifo_control_block { + uint32_t ready; + uint32_t _rsvd; + event_word_t head[16]; }; -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 evtchn_init_control { + uint64_t control_gfn; + uint32_t offset; + uint32_t vcpu; + uint8_t link_bits; + uint8_t _pad[7]; }; -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 evtchn_expand_array { + uint64_t array_gfn; }; -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 xenbus_transaction_holder { + struct list_head list; + struct xenbus_transaction handle; + unsigned int generation_id; }; -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 read_buffer { + struct list_head list; + unsigned int cons; + unsigned int len; + char msg[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 xenbus_file_priv { + struct mutex msgbuffer_mutex; + struct list_head transactions; + struct list_head watches; + unsigned int len; + union { + struct xsd_sockmsg msg; + char buffer[4096]; + } u; + struct mutex reply_mutex; + struct list_head read_buffers; + wait_queue_head_t read_waitq; + struct kref kref; + struct work_struct wq; }; -struct trace_event_raw_nfs4_idmap_event { - struct trace_entry ent; - unsigned long error; - u32 id; - u32 __data_loc_name; - char __data[0]; +struct watch_adapter { + struct list_head list; + struct xenbus_watch watch; + struct xenbus_file_priv *dev_data; + char *token; }; -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 fixed_regulator_data { + struct fixed_voltage_config cfg; + struct regulator_init_data init_data; + struct platform_device pdev; }; -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 uniphier_reset_data { + unsigned int id; + unsigned int reg; + unsigned int bit; + unsigned int flags; }; -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 uniphier_reset_priv { + struct reset_controller_dev rcdev; + struct device *dev; + struct regmap *regmap; + const struct uniphier_reset_data *data; }; -struct trace_event_raw_nfs4_layoutget { - struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - u32 iomode; - u64 offset; - u64 count; - unsigned long error; - int stateid_seq; - u32 stateid_hash; - int layoutstateid_seq; - u32 layoutstateid_hash; - char __data[0]; +struct vcs_poll_data { + struct notifier_block notifier; + unsigned int cons_num; + int event; + wait_queue_head_t waitq; + struct fasync_struct *fasync; }; -struct trace_event_raw_pnfs_update_layout { - struct trace_entry ent; - dev_t dev; - u64 fileid; - u32 fhandle; - loff_t pos; - u64 count; - enum pnfs_iomode iomode; - int layoutstateid_seq; - u32 layoutstateid_hash; - long lseg; - enum pnfs_update_layout_reason reason; - char __data[0]; +struct dw8250_platform_data { + u8 usr_reg; + u32 cpr_val; + unsigned int quirks; }; -struct trace_event_raw_pnfs_layout_event { - struct trace_entry ent; - dev_t dev; - u64 fileid; - u32 fhandle; - loff_t pos; - u64 count; - enum pnfs_iomode iomode; - int layoutstateid_seq; - u32 layoutstateid_hash; - long lseg; - char __data[0]; +struct dw8250_port_data { + int line; + struct uart_8250_dma dma; + u8 dlf_size; + bool hw_rs485_support; }; -struct trace_event_raw_nfs4_deviceid_event { - struct trace_entry ent; - u32 __data_loc_dstaddr; - unsigned char deviceid[16]; - char __data[0]; +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 trace_event_raw_nfs4_deviceid_status { - struct trace_entry ent; - dev_t dev; - int status; - u32 __data_loc_dstaddr; - unsigned char deviceid[16]; - char __data[0]; +enum lpuart_type { + VF610_LPUART = 0, + LS1021A_LPUART = 1, + LS1028A_LPUART = 2, + IMX7ULP_LPUART = 3, + IMX8ULP_LPUART = 4, + IMX8QXP_LPUART = 5, + IMXRT1050_LPUART = 6, }; -struct trace_event_raw_nfs4_flexfiles_io_event { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - u64 fileid; - loff_t offset; - u32 count; - int stateid_seq; - u32 stateid_hash; - u32 __data_loc_dstaddr; - char __data[0]; +struct lpuart_port { + struct uart_port port; + enum lpuart_type devtype; + struct clk *ipg_clk; + struct clk *baud_clk; + unsigned int txfifo_size; + unsigned int rxfifo_size; + u8 rx_watermark; + bool lpuart_dma_tx_use; + bool lpuart_dma_rx_use; + struct dma_chan *dma_tx_chan; + struct dma_chan *dma_rx_chan; + struct dma_async_tx_descriptor *dma_tx_desc; + struct dma_async_tx_descriptor *dma_rx_desc; + dma_cookie_t dma_tx_cookie; + dma_cookie_t dma_rx_cookie; + unsigned int dma_tx_bytes; + unsigned int dma_rx_bytes; + bool dma_tx_in_progress; + unsigned int dma_rx_timeout; + struct timer_list lpuart_timer; + struct scatterlist rx_sgl; + struct scatterlist tx_sgl[2]; + struct circ_buf rx_ring; + int rx_dma_rng_buf_len; + int last_residue; + unsigned int dma_tx_nents; + wait_queue_head_t dma_wait; + bool is_cs7; + bool dma_idle_int; }; -struct trace_event_raw_ff_layout_commit_error { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - u64 fileid; - loff_t offset; - u32 count; - u32 __data_loc_dstaddr; - char __data[0]; +struct lpuart_soc_data { + enum lpuart_type devtype; + char iotype; + u8 reg_off; + u8 rx_watermark; }; -struct trace_event_raw_nfs4_llseek { - struct trace_entry ent; - unsigned long error; - u32 fhandle; - u32 fileid; - dev_t dev; - int stateid_seq; - u32 stateid_hash; - loff_t offset_s; - u32 what; - loff_t offset_r; - u32 eof; - char __data[0]; +struct arm_smmu_ctx_desc { + u16 asid; + u64 ttbr; + u64 tcr; + u64 mair; + refcount_t refs; + struct mm_struct *mm; }; -struct trace_event_raw_nfs4_sparse_event { - struct trace_entry ent; - unsigned long error; - loff_t offset; - loff_t len; - dev_t dev; - u32 fhandle; - u64 fileid; - int stateid_seq; - u32 stateid_hash; - char __data[0]; +struct arm_smmu_option_prop { + u32 opt; + const char *prop; }; -struct trace_event_raw_nfs4_copy { - struct trace_entry ent; - unsigned long error; - u32 src_fhandle; - u32 src_fileid; - u32 dst_fhandle; - u32 dst_fileid; - dev_t src_dev; - dev_t dst_dev; - int src_stateid_seq; - u32 src_stateid_hash; - int dst_stateid_seq; - u32 dst_stateid_hash; - loff_t src_offset; - loff_t dst_offset; - bool sync; - loff_t len; - int res_stateid_seq; - u32 res_stateid_hash; - loff_t res_count; - bool res_sync; - bool res_cons; - bool intra; - char __data[0]; +enum pri_resp { + PRI_RESP_DENY = 0, + PRI_RESP_FAIL = 1, + PRI_RESP_SUCC = 2, }; -struct trace_event_raw_nfs4_clone { - struct trace_entry ent; - unsigned long error; - u32 src_fhandle; - u32 src_fileid; - u32 dst_fhandle; - u32 dst_fileid; - dev_t src_dev; - dev_t dst_dev; - loff_t src_offset; - loff_t dst_offset; - int src_stateid_seq; - u32 src_stateid_hash; - int dst_stateid_seq; - u32 dst_stateid_hash; - loff_t len; - char __data[0]; +enum iommu_fault_reason { + IOMMU_FAULT_REASON_UNKNOWN = 0, + IOMMU_FAULT_REASON_PASID_FETCH = 1, + IOMMU_FAULT_REASON_BAD_PASID_ENTRY = 2, + IOMMU_FAULT_REASON_PASID_INVALID = 3, + IOMMU_FAULT_REASON_WALK_EABT = 4, + IOMMU_FAULT_REASON_PTE_FETCH = 5, + IOMMU_FAULT_REASON_PERMISSION = 6, + IOMMU_FAULT_REASON_ACCESS = 7, + IOMMU_FAULT_REASON_OOR_ADDRESS = 8, }; -struct trace_event_raw_nfs4_copy_notify { - struct trace_entry ent; - unsigned long error; - u32 fhandle; - u32 fileid; - dev_t dev; - int stateid_seq; - u32 stateid_hash; - int res_stateid_seq; - u32 res_stateid_hash; - char __data[0]; +enum arm_smmu_msi_index { + EVTQ_MSI_INDEX = 0, + GERROR_MSI_INDEX = 1, + PRIQ_MSI_INDEX = 2, + ARM_SMMU_MAX_MSIS = 3, }; -struct trace_event_raw_nfs4_offload_cancel { - struct trace_entry ent; - unsigned long error; - u32 fhandle; - int stateid_seq; - u32 stateid_hash; - char __data[0]; -}; +struct arm_smmu_l1_ctx_desc; -struct trace_event_raw_nfs4_xattr_event { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - u64 fileid; - u32 __data_loc_name; - char __data[0]; +struct arm_smmu_ctx_desc_cfg { + __le64 *cdtab; + dma_addr_t cdtab_dma; + struct arm_smmu_l1_ctx_desc *l1_desc; + unsigned int num_l1_ents; + u8 s1fmt; + u8 s1cdmax; + u8 stall_enabled: 1; }; -struct trace_event_data_offsets_nfs4_clientid_event { - u32 dstaddr; +struct arm_smmu_device___2; + +struct arm_smmu_domain___2; + +struct arm_smmu_stream; + +struct arm_smmu_master { + struct arm_smmu_device___2 *smmu; + struct device *dev; + struct arm_smmu_domain___2 *domain; + struct list_head domain_head; + struct arm_smmu_stream *streams; + struct arm_smmu_ctx_desc_cfg cd_table; + unsigned int num_streams; + bool ats_enabled; + bool stall_enabled; + bool sva_enabled; + bool iopf_enabled; + struct list_head bonds; + unsigned int ssid_bits; }; -struct trace_event_data_offsets_nfs4_state_mgr { - u32 hostname; +struct arm_smmu_ll_queue { + union { + u64 val; + struct { + u32 prod; + u32 cons; + }; + struct { + atomic_t prod; + atomic_t cons; + } atomic; + u8 __pad[64]; + }; + u32 max_n_shift; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct trace_event_data_offsets_nfs4_state_mgr_failed { - u32 hostname; - u32 section; +struct arm_smmu_queue { + struct arm_smmu_ll_queue llq; + int irq; + __le64 *base; + dma_addr_t base_dma; + u64 q_base; + size_t ent_dwords; + u32 *prod_reg; + u32 *cons_reg; + long: 64; }; -struct trace_event_data_offsets_nfs4_open_event { - u32 name; +struct arm_smmu_cmdq { + struct arm_smmu_queue q; + atomic_long_t *valid_map; + atomic_t owner_prod; + atomic_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct trace_event_data_offsets_nfs4_lookup_event { - u32 name; +struct iopf_queue; + +struct arm_smmu_evtq { + struct arm_smmu_queue q; + struct iopf_queue *iopf; + u32 max_stalls; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct trace_event_data_offsets_nfs4_rename { - u32 oldname; - u32 newname; +struct arm_smmu_priq { + struct arm_smmu_queue q; }; -struct trace_event_data_offsets_nfs4_inode_callback_event { - u32 dstaddr; +struct arm_smmu_strtab_l1_desc; + +struct arm_smmu_strtab_cfg { + __le64 *strtab; + dma_addr_t strtab_dma; + struct arm_smmu_strtab_l1_desc *l1_desc; + unsigned int num_l1_ents; + u64 strtab_base; + u32 strtab_base_cfg; }; -struct trace_event_data_offsets_nfs4_inode_stateid_callback_event { - u32 dstaddr; +struct arm_smmu_device___2 { + struct device *dev; + void *base; + void *page1; + u32 features; + u32 options; + long: 64; + long: 64; + long: 64; + long: 64; + struct arm_smmu_cmdq cmdq; + struct arm_smmu_evtq evtq; + struct arm_smmu_priq priq; + int gerr_irq; + int combined_irq; + unsigned long ias; + unsigned long oas; + unsigned long pgsize_bitmap; + unsigned int asid_bits; + unsigned int vmid_bits; + struct ida vmid_map; + unsigned int ssid_bits; + unsigned int sid_bits; + struct arm_smmu_strtab_cfg strtab_cfg; + struct iommu_device iommu; + struct rb_root streams; + struct mutex streams_mutex; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct trace_event_data_offsets_nfs4_idmap_event { - u32 name; +struct arm_smmu_strtab_l1_desc { + u8 span; + __le64 *l2ptr; + dma_addr_t l2ptr_dma; }; -struct trace_event_data_offsets_nfs4_deviceid_event { - u32 dstaddr; +struct arm_smmu_s2_cfg { + u16 vmid; + u64 vttbr; + u64 vtcr; }; -struct trace_event_data_offsets_nfs4_deviceid_status { - u32 dstaddr; +struct arm_smmu_domain___2 { + struct arm_smmu_device___2 *smmu; + struct mutex init_mutex; + struct io_pgtable_ops *pgtbl_ops; + atomic_t nr_ats_masters; + enum arm_smmu_domain_stage stage; + union { + struct arm_smmu_ctx_desc cd; + struct arm_smmu_s2_cfg s2_cfg; + }; + struct iommu_domain domain; + struct list_head devices; + spinlock_t devices_lock; + struct list_head mmu_notifiers; }; -struct trace_event_data_offsets_nfs4_flexfiles_io_event { - u32 dstaddr; +struct arm_smmu_stream { + u32 id; + struct arm_smmu_master *master; + struct rb_node node; }; -struct trace_event_data_offsets_ff_layout_commit_error { - u32 dstaddr; +struct arm_smmu_l1_ctx_desc { + __le64 *l2ptr; + dma_addr_t l2ptr_dma; }; -struct trace_event_data_offsets_nfs4_xattr_event { - u32 name; +struct arm_smmu_cmdq_ent { + u8 opcode; + bool substream_valid; + union { + struct { + u32 sid; + } prefetch; + struct { + u32 sid; + u32 ssid; + union { + bool leaf; + u8 span; + }; + } cfgi; + struct { + u8 num; + u8 scale; + u16 asid; + u16 vmid; + bool leaf; + u8 ttl; + u8 tg; + u64 addr; + } tlbi; + struct { + u32 sid; + u32 ssid; + u64 addr; + u8 size; + bool global; + } atc; + struct { + u32 sid; + u32 ssid; + u16 grpid; + enum pri_resp resp; + } pri; + struct { + u32 sid; + u16 stag; + u8 resp; + } resume; + struct { + u64 msiaddr; + } sync; + }; }; -struct trace_event_data_offsets_nfs4_sequence_done {}; +struct arm_smmu_cmdq_batch { + u64 cmds[128]; + int num; +}; -struct trace_event_data_offsets_nfs4_cb_sequence {}; +struct arm_smmu_queue_poll { + ktime_t timeout; + unsigned int delay; + unsigned int spin_cnt; + bool wfe; +}; -struct trace_event_data_offsets_nfs4_cb_seqid_err {}; +enum pce_status { + PCE_STATUS_NONE = 0, + PCE_STATUS_ACQUIRED = 1, + PCE_STATUS_PREPARED = 2, + PCE_STATUS_ENABLED = 3, + PCE_STATUS_ERROR = 4, +}; -struct trace_event_data_offsets_nfs4_cb_offload {}; +struct pm_clock_entry { + struct list_head node; + char *con_id; + struct clk *clk; + enum pce_status status; + bool enabled_when_prepared; +}; -struct trace_event_data_offsets_nfs4_setup_sequence {}; +struct pm_clk_notifier_block { + struct notifier_block nb; + struct dev_pm_domain *pm_domain; + char *con_ids[0]; +}; -struct trace_event_data_offsets_nfs4_xdr_bad_operation {}; +struct regmap_mmio_context { + void *regs; + unsigned int val_bytes; + bool big_endian; + bool attached_clk; + struct clk *clk; + void (*reg_write)(struct regmap_mmio_context *, unsigned int, unsigned int); + unsigned int (*reg_read)(struct regmap_mmio_context *, unsigned int); +}; -struct trace_event_data_offsets_nfs4_xdr_event {}; +struct irq_top_t; -struct trace_event_data_offsets_nfs4_cb_error_class {}; +struct pmic_irq_data { + unsigned int num_top; + unsigned int num_pmic_irqs; + unsigned short top_int_status_reg; + bool *enable_hwirq; + bool *cache_hwirq; + const struct irq_top_t *pmic_ints; +}; -struct trace_event_data_offsets_nfs4_cached_open {}; +struct irq_top_t { + int hwirq_base; + unsigned int num_int_regs; + unsigned int en_reg; + unsigned int en_reg_shift; + unsigned int sta_reg; + unsigned int sta_reg_shift; + unsigned int top_offset; +}; -struct trace_event_data_offsets_nfs4_close {}; +struct simple_mfd_data { + const struct regmap_config *regmap_config; + const struct mfd_cell *mfd_cell; + size_t mfd_cell_size; +}; -struct trace_event_data_offsets_nfs4_lock_event {}; +struct megasas_debug_buffer; -struct trace_event_data_offsets_nfs4_set_lock {}; +struct megasas_debugfs_buffer { + void *buf; + u32 len; +}; -struct trace_event_data_offsets_nfs4_state_lock_reclaim {}; +struct ahci_sg { + __le32 addr; + __le32 addr_hi; + __le32 reserved; + __le32 flags_size; +}; -struct trace_event_data_offsets_nfs4_set_delegation_event {}; +struct flash_info___3 { + char *name; + u64 jedec_id; + unsigned int nr_pages; + u16 pagesize; + u16 pageoffset; + u16 flags; +}; -struct trace_event_data_offsets_nfs4_delegreturn_exit {}; +struct dataflash { + u8 command[4]; + char name[24]; + unsigned short page_offset; + unsigned int page_size; + struct mutex lock; + struct spi_device *spi; + struct mtd_info mtd; +}; -struct trace_event_data_offsets_nfs4_test_stateid_event {}; +struct qcom_nandc_props { + u32 ecc_modes; + u32 dev_cmd_reg_start; + bool is_bam; + bool is_qpic; + bool qpic_v2; + bool use_codeword_fixup; +}; -struct trace_event_data_offsets_nfs4_lookupp {}; +enum bam_command_type { + BAM_WRITE_COMMAND = 0, + BAM_READ_COMMAND = 1, +}; -struct trace_event_data_offsets_nfs4_inode_event {}; +struct qcom_nand_boot_partition; -struct trace_event_data_offsets_nfs4_inode_stateid_event {}; +struct qcom_nand_host { + struct qcom_nand_boot_partition *boot_partitions; + struct nand_chip chip; + struct list_head node; + int nr_boot_partitions; + int cs; + int cw_size; + int cw_data; + int ecc_bytes_hw; + int spare_bytes; + int bbm_size; + int last_command; + u32 cfg0; + u32 cfg1; + u32 cfg0_raw; + u32 cfg1_raw; + u32 ecc_buf_cfg; + u32 ecc_bch_cfg; + u32 clrflashstatus; + u32 clrreadstatus; + u8 status; + bool codeword_fixup; + bool use_ecc; + bool bch_enabled; +}; -struct trace_event_data_offsets_nfs4_getattr_event {}; +struct qcom_nand_boot_partition { + u32 page_offset; + u32 page_size; +}; -struct trace_event_data_offsets_nfs4_read_event {}; +struct nandc_regs; -struct trace_event_data_offsets_nfs4_write_event {}; +struct bam_transaction; -struct trace_event_data_offsets_nfs4_commit_event {}; +struct qcom_nand_controller { + struct device *dev; + void *base; + struct clk *core_clk; + struct clk *aon_clk; + struct nandc_regs *regs; + struct bam_transaction *bam_txn; + const struct qcom_nandc_props *props; + struct nand_controller controller; + struct list_head host_list; + union { + struct { + struct dma_chan *tx_chan; + struct dma_chan *rx_chan; + struct dma_chan *cmd_chan; + }; + struct { + struct dma_chan *chan; + unsigned int cmd_crci; + unsigned int data_crci; + }; + }; + struct list_head desc_list; + u8 *data_buffer; + __le32 *reg_read_buf; + phys_addr_t base_phys; + dma_addr_t base_dma; + dma_addr_t reg_read_dma; + int buf_size; + int buf_count; + int buf_start; + unsigned int max_cwperpage; + int reg_read_pos; + u32 cmd1; + u32 vld; + bool exec_opwrite; +}; -struct trace_event_data_offsets_nfs4_layoutget {}; +struct nandc_regs { + __le32 cmd; + __le32 addr0; + __le32 addr1; + __le32 chip_sel; + __le32 exec; + __le32 cfg0; + __le32 cfg1; + __le32 ecc_bch_cfg; + __le32 clrflashstatus; + __le32 clrreadstatus; + __le32 cmd1; + __le32 vld; + __le32 orig_cmd1; + __le32 orig_vld; + __le32 ecc_buf_cfg; + __le32 read_location0; + __le32 read_location1; + __le32 read_location2; + __le32 read_location3; + __le32 read_location_last0; + __le32 read_location_last1; + __le32 read_location_last2; + __le32 read_location_last3; + __le32 erased_cw_detect_cfg_clr; + __le32 erased_cw_detect_cfg_set; +}; -struct trace_event_data_offsets_pnfs_update_layout {}; +struct bam_cmd_element; -struct trace_event_data_offsets_pnfs_layout_event {}; +struct bam_transaction { + struct bam_cmd_element *bam_ce; + struct scatterlist *cmd_sgl; + struct scatterlist *data_sgl; + struct dma_async_tx_descriptor *last_data_desc; + struct dma_async_tx_descriptor *last_cmd_desc; + struct completion txn_done; + u32 bam_ce_pos; + u32 bam_ce_start; + u32 cmd_sgl_pos; + u32 cmd_sgl_start; + u32 tx_sgl_pos; + u32 tx_sgl_start; + u32 rx_sgl_pos; + u32 rx_sgl_start; + bool wait_second_completion; +}; -struct trace_event_data_offsets_nfs4_llseek {}; +struct bam_cmd_element { + __le32 cmd_and_addr; + __le32 data; + __le32 mask; + __le32 reserved; +}; -struct trace_event_data_offsets_nfs4_sparse_event {}; +struct desc_info { + struct dma_async_tx_descriptor *dma_desc; + struct list_head node; + union { + struct scatterlist adm_sgl; + struct { + struct scatterlist *bam_sgl; + int sgl_cnt; + }; + }; + enum dma_data_direction dir; +}; -struct trace_event_data_offsets_nfs4_copy {}; +struct read_stats { + __le32 flash; + __le32 buffer; + __le32 erased_cw; +}; -struct trace_event_data_offsets_nfs4_clone {}; +struct qcom_op { + const struct nand_op_instr *data_instr; + unsigned int data_instr_idx; + unsigned int rdy_timeout_ms; + unsigned int rdy_delay_ns; + u32 addr1_reg; + u32 addr2_reg; + u32 cmd_reg; + u8 flag; +}; -struct trace_event_data_offsets_nfs4_copy_notify {}; +enum xgene_enet_buf_len { + SIZE_2K = 2048, + SIZE_4K = 4096, + SIZE_16K = 16384, +}; -struct trace_event_data_offsets_nfs4_offload_cancel {}; +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 sha3_state { - u64 st[25]; - unsigned int rsiz; - unsigned int rsizw; - unsigned int partial; - u8 buf[144]; +struct sh_eth_cpu_data { + int (*soft_reset)(struct net_device *); + void (*chip_reset)(struct net_device *); + void (*set_duplex)(struct net_device *); + void (*set_rate)(struct net_device *); + int register_type; + u32 edtrr_trns; + u32 eesipr_value; + u32 ecsr_value; + u32 ecsipr_value; + u32 fdr_value; + u32 fcftr_value; + u32 tx_check; + u32 eesr_err_check; + u32 trscer_err_mask; + unsigned long irq_flags; + unsigned int no_psr: 1; + unsigned int apr: 1; + unsigned int mpr: 1; + unsigned int tpauser: 1; + unsigned int gecmr: 1; + unsigned int bculr: 1; + unsigned int tsu: 1; + unsigned int hw_swap: 1; + unsigned int nbst: 1; + unsigned int rpadir: 1; + unsigned int no_trimd: 1; + unsigned int no_ade: 1; + unsigned int no_xdfar: 1; + unsigned int xdfar_rw: 1; + unsigned int csmr: 1; + unsigned int rx_csum: 1; + unsigned int select_mii: 1; + unsigned int rmiimode: 1; + unsigned int rtrate: 1; + unsigned int magic: 1; + unsigned int no_tx_cntrs: 1; + unsigned int cexcr: 1; + unsigned int dual_port: 1; }; -struct bt_iter_data { - struct blk_mq_hw_ctx *hctx; - struct request_queue *q; - busy_tag_iter_fn *fn; - void *data; - bool reserved; +enum { + EDSR = 0, + EDMR = 1, + EDTRR = 2, + EDRRR = 3, + EESR = 4, + EESIPR = 5, + TDLAR = 6, + TDFAR = 7, + TDFXR = 8, + TDFFR = 9, + RDLAR = 10, + RDFAR = 11, + RDFXR = 12, + RDFFR = 13, + TRSCER = 14, + RMFCR = 15, + TFTR = 16, + FDR = 17, + RMCR = 18, + EDOCR = 19, + TFUCR = 20, + RFOCR = 21, + RMIIMODE = 22, + FCFTR = 23, + RPADIR = 24, + TRIMD = 25, + RBWAR = 26, + TBRAR = 27, + ECMR___2 = 28, + ECSR___2 = 29, + ECSIPR___2 = 30, + PIR___2 = 31, + PSR___2 = 32, + RDMLR = 33, + PIPR___2 = 34, + RFLR___2 = 35, + IPGR = 36, + APR = 37, + MPR___2 = 38, + PFTCR___2 = 39, + PFRCR___2 = 40, + RFCR___2 = 41, + RFCF = 42, + TPAUSER = 43, + TPAUSECR = 44, + BCFR = 45, + BCFRR = 46, + GECMR___2 = 47, + BCULR = 48, + MAHR___2 = 49, + MALR___2 = 50, + TROCR___2 = 51, + CDCR = 52, + LCCR = 53, + CNDCR = 54, + CEFCR___2 = 55, + FRECR___2 = 56, + TSFRCR___2 = 57, + TLFRCR___2 = 58, + CERCR = 59, + CEECR = 60, + MAFCR___2 = 61, + RTRATE = 62, + CSMR = 63, + RMII_MII = 64, + ARSTR = 65, + TSU_CTRST = 66, + TSU_FWEN0 = 67, + TSU_FWEN1 = 68, + TSU_FCM = 69, + TSU_BSYSL0 = 70, + TSU_BSYSL1 = 71, + TSU_PRISL0 = 72, + TSU_PRISL1 = 73, + TSU_FWSL0 = 74, + TSU_FWSL1 = 75, + TSU_FWSLC = 76, + TSU_QTAG0 = 77, + TSU_QTAG1 = 78, + TSU_QTAGM0 = 79, + TSU_QTAGM1 = 80, + TSU_FWSR = 81, + TSU_FWINMK = 82, + TSU_ADQT0 = 83, + TSU_ADQT1 = 84, + TSU_VTAG0 = 85, + TSU_VTAG1 = 86, + TSU_ADSBSY = 87, + TSU_TEN = 88, + TSU_POST1 = 89, + TSU_POST2 = 90, + TSU_POST3 = 91, + TSU_POST4 = 92, + TSU_ADRH0 = 93, + TXNLCR0 = 94, + TXALCR0 = 95, + RXNLCR0 = 96, + RXALCR0 = 97, + FWNLCR0 = 98, + FWALCR0 = 99, + TXNLCR1 = 100, + TXALCR1 = 101, + RXNLCR1 = 102, + RXALCR1 = 103, + FWNLCR1 = 104, + FWALCR1 = 105, + SH_ETH_MAX_REGISTER_OFFSET = 106, }; -struct bt_tags_iter_data { - struct blk_mq_tags *tags; - busy_tag_iter_fn *fn; - void *data; - unsigned int flags; +enum { + SH_ETH_REG_GIGABIT = 0, + SH_ETH_REG_FAST_RCAR = 1, + SH_ETH_REG_FAST_SH4 = 2, + SH_ETH_REG_FAST_SH3_SH2 = 3, }; -struct reciprocal_value_adv { - u32 m; - u8 sh; - u8 exp; - bool is_wide_m; +enum ECSR_BIT___2 { + ECSR_BRCRX = 32, + ECSR_PSRTO = 16, + ECSR_LCHNG___2 = 4, + ECSR_MPD___2 = 2, + ECSR_ICD___2 = 1, }; -struct event_lpi_map { - unsigned long *lpi_map; - u16 *col_map; - irq_hw_number_t lpi_base; - int nr_lpis; - raw_spinlock_t vlpi_lock; - struct its_vm *vm; - struct its_vlpi_map *vlpi_maps; - int nr_vlpis; +enum ECSIPR_BIT___2 { + ECSIPR_BRCRXIP = 32, + ECSIPR_PSRTOIP = 16, + ECSIPR_LCHNGIP___2 = 4, + ECSIPR_MPDIP___2 = 2, + ECSIPR_ICDIP___2 = 1, }; -struct its_node; - -struct its_device___2 { - struct list_head entry; - struct its_node *its; - struct event_lpi_map event_map; - void *itt; - u32 nr_ites; - u32 device_id; - bool shared; +enum FCFTR_BIT { + FCFTR_RFF2 = 262144, + FCFTR_RFF1 = 131072, + FCFTR_RFF0 = 65536, + FCFTR_RFD2 = 4, + FCFTR_RFD1 = 2, + FCFTR_RFD0 = 1, }; -struct its_baser { - void *base; - u64 val; - u32 order; - u32 psz; +enum EESR_BIT { + EESR_TWB1 = 2147483648, + EESR_TWB = 1073741824, + EESR_TC1 = 536870912, + EESR_TUC = 268435456, + EESR_ROC = 134217728, + EESR_TABT = 67108864, + EESR_RABT = 33554432, + EESR_RFRMER = 16777216, + EESR_ADE = 8388608, + EESR_ECI = 4194304, + EESR_FTC = 2097152, + EESR_TDE = 1048576, + EESR_TFE = 524288, + EESR_FRC = 262144, + EESR_RDE = 131072, + EESR_RFE = 65536, + EESR_CND = 2048, + EESR_DLC = 1024, + EESR_CD = 512, + EESR_TRO = 256, + EESR_RMAF = 128, + EESR_CEEF = 64, + EESR_CELF = 32, + EESR_RRF = 16, + EESR_RTLF = 8, + EESR_RTSF = 4, + EESR_PRE = 2, + EESR_CERF = 1, }; -struct its_cmd_block; - -struct its_collection___2; - -struct its_node { - raw_spinlock_t lock; - struct mutex dev_alloc_lock; - struct list_head entry; - void *base; - void *sgir_base; - phys_addr_t phys_base; - struct its_cmd_block *cmd_base; - struct its_cmd_block *cmd_write; - struct its_baser tables[8]; - struct its_collection___2 *collections; - struct fwnode_handle *fwnode_handle; - u64 (*get_msi_base)(struct its_device___2 *); - u64 typer; - u64 cbaser_save; - u32 ctlr_save; - u32 mpidr; - struct list_head its_device_list; - u64 flags; - unsigned long list_nr; - int numa_node; - unsigned int msi_domain_flags; - u32 pre_its_base; - int vlpi_redist_offset; +enum TRSCER_BIT { + TRSCER_CNDCE = 2048, + TRSCER_DLCCE = 1024, + TRSCER_CDCE = 512, + TRSCER_TROCE = 256, + TRSCER_RMAFCE = 128, + TRSCER_RRFCE = 16, + TRSCER_RTLFCE = 8, + TRSCER_RTSFCE = 4, + TRSCER_PRECE = 2, + TRSCER_CERFCE = 1, }; -struct its_cmd_block { - union { - u64 raw_cmd[4]; - __le64 raw_cmd_le[4]; - }; +enum EESIPR_BIT { + EESIPR_TWB1IP = 2147483648, + EESIPR_TWBIP = 1073741824, + EESIPR_TC1IP = 536870912, + EESIPR_TUCIP = 268435456, + EESIPR_ROCIP = 134217728, + EESIPR_TABTIP = 67108864, + EESIPR_RABTIP = 33554432, + EESIPR_RFCOFIP = 16777216, + EESIPR_ADEIP = 8388608, + EESIPR_ECIIP = 4194304, + EESIPR_FTCIP = 2097152, + EESIPR_TDEIP = 1048576, + EESIPR_TFUFIP = 524288, + EESIPR_FRIP = 262144, + EESIPR_RDEIP = 131072, + EESIPR_RFOFIP = 65536, + EESIPR_CNDIP = 2048, + EESIPR_DLCIP = 1024, + EESIPR_CDIP = 512, + EESIPR_TROIP = 256, + EESIPR_RMAFIP = 128, + EESIPR_CEEFIP = 64, + EESIPR_CELFIP = 32, + EESIPR_RRFIP = 16, + EESIPR_RTLFIP = 8, + EESIPR_RTSFIP = 4, + EESIPR_PREIP = 2, + EESIPR_CERFIP = 1, }; -struct its_collection___2 { - u64 target_address; - u16 col_id; +enum TD_STS_BIT { + TD_TACT = 2147483648, + TD_TDLE = 1073741824, + TD_TFP1 = 536870912, + TD_TFP0 = 268435456, + TD_TFE = 134217728, + TD_TWBI = 67108864, }; -struct cpu_lpi_count { - atomic_t managed; - atomic_t unmanaged; +enum ECMR_BIT___2 { + ECMR_TRCCM___2 = 67108864, + ECMR_RCSC___2 = 8388608, + ECMR_DPAD___2 = 2097152, + ECMR_RZPF___2 = 1048576, + ECMR_ZPF___2 = 524288, + ECMR_PFR___2 = 262144, + ECMR_RXF___2 = 131072, + ECMR_TXF___2 = 65536, + ECMR_MCT = 8192, + ECMR_PRCEF = 4096, + ECMR_MPDE___2 = 512, + ECMR_RE___2 = 64, + ECMR_TE___2 = 32, + ECMR_RTM = 16, + ECMR_ILB = 8, + ECMR_ELB = 4, + ECMR_DM___2 = 2, + ECMR_PRM___2 = 1, }; -struct its_srat_map { - u32 numa_node; - u32 its_id; +enum EDMR_BIT { + EDMR_NBST = 128, + EDMR_EL = 64, + EDMR_DL1 = 32, + EDMR_DL0 = 16, + EDMR_SRST_GETHER = 3, + EDMR_SRST_ETHER = 1, }; -enum its_vcpu_info_cmd_type { - MAP_VLPI = 0, - GET_VLPI = 1, - PROP_UPDATE_VLPI = 2, - PROP_UPDATE_AND_INV_VLPI = 3, - SCHEDULE_VPE = 4, - DESCHEDULE_VPE = 5, - COMMIT_VPE = 6, - INVALL_VPE = 7, - PROP_UPDATE_VSGI = 8, +enum RMCR_BIT { + RMCR_RNC = 1, }; -struct lpi_range { - struct list_head entry; - u32 base_id; - u32 span; +enum TPAUSER_BIT { + TPAUSER_TPAUSE = 65535, + TPAUSER_UNLIMITED = 0, }; -struct acpi_srat_gic_its_affinity { - struct acpi_subtable_header header; - u32 proximity_domain; - u16 reserved; - u32 its_id; -} __attribute__((packed)); - -struct its_cmd_desc { - union { - struct { - struct its_device___2 *dev; - u32 event_id; - } its_inv_cmd; - struct { - struct its_device___2 *dev; - u32 event_id; - } its_clear_cmd; - struct { - struct its_device___2 *dev; - u32 event_id; - } its_int_cmd; - struct { - struct its_device___2 *dev; - int valid; - } its_mapd_cmd; - struct { - struct its_collection___2 *col; - int valid; - } its_mapc_cmd; - struct { - struct its_device___2 *dev; - u32 phys_id; - u32 event_id; - } its_mapti_cmd; - struct { - struct its_device___2 *dev; - struct its_collection___2 *col; - u32 event_id; - } its_movi_cmd; - struct { - struct its_device___2 *dev; - u32 event_id; - } its_discard_cmd; - struct { - struct its_collection___2 *col; - } its_invall_cmd; - struct { - struct its_vpe *vpe; - } its_vinvall_cmd; - struct { - struct its_vpe *vpe; - struct its_collection___2 *col; - bool valid; - } its_vmapp_cmd; - struct { - struct its_vpe *vpe; - struct its_device___2 *dev; - u32 virt_id; - u32 event_id; - bool db_enabled; - } its_vmapti_cmd; - struct { - struct its_vpe *vpe; - struct its_device___2 *dev; - u32 event_id; - bool db_enabled; - } its_vmovi_cmd; - struct { - struct its_vpe *vpe; - struct its_collection___2 *col; - u16 seq_num; - u16 its_list; - } its_vmovp_cmd; - struct { - struct its_vpe *vpe; - } its_invdb_cmd; - struct { - struct its_vpe *vpe; - u8 sgi; - u8 priority; - bool enable; - bool group; - bool clear; - } its_vsgi_cmd; - }; +enum EDRRR_BIT { + EDRRR_R = 1, }; -struct its_cmd_info { - enum its_vcpu_info_cmd_type cmd_type; - union { - struct its_vlpi_map *map; - u8 config; - bool req_db; - struct { - bool g0en; - bool g1en; - }; - struct { - u8 priority; - bool group; - }; - }; +enum RD_STS_BIT { + RD_RACT = 2147483648, + RD_RDLE = 1073741824, + RD_RFP1 = 536870912, + RD_RFP0 = 268435456, + RD_RFE = 134217728, + RD_RFS10 = 512, + RD_RFS9 = 256, + RD_RFS8 = 128, + RD_RFS7 = 64, + RD_RFS6 = 32, + RD_RFS5 = 16, + RD_RFS4 = 8, + RD_RFS3 = 4, + RD_RFS2 = 2, + RD_RFS1 = 1, }; -typedef struct its_collection___2 * (*its_cmd_builder_t)(struct its_node *, struct its_cmd_block *, struct its_cmd_desc *); - -typedef struct its_vpe * (*its_cmd_vbuilder_t)(struct its_node *, struct its_cmd_block *, struct its_cmd_desc *); - -struct imx8mq_usb_phy { - struct phy *phy; - struct clk *clk; - void *base; - struct regulator *vbus; - u32 pcs_tx_swing_full; - u32 pcs_tx_deemph_3p5db; - u32 tx_vref_tune; - u32 tx_rise_tune; - u32 tx_preemp_amp_tune; - u32 tx_vboost_level; - u32 comp_dis_tune; +enum TSU_ADSBSY_BIT { + TSU_ADSBSY_0 = 1, }; -struct max77620_pin_function { - const char *name; - const char * const *groups; - unsigned int ngroups; - int mux_option; +enum TSU_FWSLC_BIT { + TSU_FWSLC_POSTENU = 8192, + TSU_FWSLC_POSTENL = 4096, + TSU_FWSLC_CAMSEL03 = 128, + TSU_FWSLC_CAMSEL02 = 64, + TSU_FWSLC_CAMSEL01 = 32, + TSU_FWSLC_CAMSEL00 = 16, + TSU_FWSLC_CAMSEL13 = 8, + TSU_FWSLC_CAMSEL12 = 4, + TSU_FWSLC_CAMSEL11 = 2, + TSU_FWSLC_CAMSEL10 = 1, }; -enum max77620_alternate_pinmux_option { - MAX77620_PINMUX_GPIO = 0, - MAX77620_PINMUX_LOW_POWER_MODE_CONTROL_IN = 1, - MAX77620_PINMUX_FLEXIBLE_POWER_SEQUENCER_OUT = 2, - MAX77620_PINMUX_32K_OUT1 = 3, - MAX77620_PINMUX_SD0_DYNAMIC_VOLTAGE_SCALING_IN = 4, - MAX77620_PINMUX_SD1_DYNAMIC_VOLTAGE_SCALING_IN = 5, - MAX77620_PINMUX_REFERENCE_OUT = 6, +enum PIR_BIT___2 { + PIR_MDI___2 = 8, + PIR_MDO___2 = 4, + PIR_MMD___2 = 2, + PIR_MDC___2 = 1, }; -struct max77620_pingroup { - const char *name; - const unsigned int pins[1]; - unsigned int npins; - enum max77620_alternate_pinmux_option alt_option; +enum RD_LEN_BIT { + RD_RFL = 65535, + RD_RBL = 4294901760, }; -enum max77620_pin_ppdrv { - MAX77620_PIN_UNCONFIG_DRV = 0, - MAX77620_PIN_OD_DRV = 1, - MAX77620_PIN_PP_DRV = 2, +enum EDSR_BIT { + EDSR_ENT = 1, + EDSR_ENR = 2, }; -struct max77620_pin_info { - enum max77620_pin_ppdrv drv_type; - int pull_config; +enum ARSTR_BIT { + ARSTR_ARST = 1, }; -struct max77620_fps_config { - int active_fps_src; - int active_power_up_slots; - int active_power_down_slots; - int suspend_fps_src; - int suspend_power_up_slots; - int suspend_power_down_slots; +enum GECMR_BIT___2 { + GECMR_10 = 0, + GECMR_100 = 4, + GECMR_1000 = 1, }; -struct max77620_pctrl_info { - struct device *dev; - struct pinctrl_dev *pctl; - struct regmap *rmap; - int pins_current_opt[8]; - const struct max77620_pin_function *functions; - unsigned int num_functions; - const struct max77620_pingroup *pin_groups; - int num_pin_groups; - const struct pinctrl_pin_desc *pins; - unsigned int num_pins; - struct max77620_pin_info pin_info[8]; - struct max77620_fps_config fps_config[8]; +struct bb_info { + void (*set_gate)(void *); + struct mdiobb_ctrl ctrl; + void *addr; }; -enum ioctrl_regs___7 { - POCCTRL0___3 = 0, - POCCTRL1___2 = 1, - POCCTRL2___3 = 2, - TDSELCTRL___4 = 3, -}; +struct sh_eth_rxdesc; -enum { - GP_LAST___5 = 174, - PIN_DU_DOTCLKIN___2 = 175, - PIN_EXTALR___2 = 176, - PIN_FSCLKST_N___4 = 177, - PIN_PRESETOUT_N___4 = 178, - PIN_TCK___3 = 179, - PIN_TDI___3 = 180, - PIN_TMS___3 = 181, - PIN_TRST_N___3 = 182, - PIN_VDDQ_AVB0___4 = 183, -}; +struct sh_eth_txdesc; -enum gio_reg_index { - GIO_REG_ODEN = 0, - GIO_REG_DATA = 1, - GIO_REG_IODIR = 2, - GIO_REG_EC = 3, - GIO_REG_EI = 4, - GIO_REG_MASK = 5, - GIO_REG_LEVEL = 6, - GIO_REG_STAT = 7, - NUMBER_OF_GIO_REGISTERS = 8, +struct sh_eth_private { + struct platform_device *pdev; + struct sh_eth_cpu_data *cd; + const u16 *reg_offset; + void *addr; + void *tsu_addr; + struct clk *clk; + u32 num_rx_ring; + u32 num_tx_ring; + dma_addr_t rx_desc_dma; + dma_addr_t tx_desc_dma; + struct sh_eth_rxdesc *rx_ring; + struct sh_eth_txdesc *tx_ring; + struct sk_buff **rx_skbuff; + struct sk_buff **tx_skbuff; + spinlock_t lock; + u32 cur_rx; + u32 dirty_rx; + u32 cur_tx; + u32 dirty_tx; + u32 rx_buf_sz; + struct napi_struct napi; + bool irq_enabled; + u32 phy_id; + struct mii_bus *mii_bus; + int link; + phy_interface_t phy_interface; + int msg_enable; + int speed; + int duplex; + int port; + int vlan_num_ids; + unsigned int no_ether_link: 1; + unsigned int ether_link_active_low: 1; + unsigned int is_opened: 1; + unsigned int wol_enabled: 1; }; -struct brcmstb_gpio_priv; +struct sh_eth_rxdesc { + u32 status; + u32 len; + u32 addr; + u32 pad0; +}; -struct brcmstb_gpio_bank { - struct list_head node; - int id; - struct gpio_chip gc; - struct brcmstb_gpio_priv *parent_priv; - u32 width; - u32 wake_active; - u32 saved_regs[7]; +struct sh_eth_txdesc { + u32 status; + u32 len; + u32 addr; + u32 pad0; }; -struct brcmstb_gpio_priv { - struct list_head bank_list; - void *reg_base; - struct platform_device *pdev; - struct irq_domain *irq_domain; - struct irq_chip irq_chip; - int parent_irq; - int gpio_base; - int num_gpios; - int parent_wake_irq; +struct sh_eth_plat_data { + int phy; + int phy_irq; + phy_interface_t phy_interface; + void (*set_mdio_gate)(void *); + unsigned char mac_addr[6]; + unsigned int no_ether_link: 1; + unsigned int ether_link_active_low: 1; }; -struct pci_bridge_reg_behavior { - u32 ro; - u32 rw; - u32 w1c; +struct tegra_xtal_freq { + unsigned int freq; + u8 enable_delay; + u8 stable_count; + u8 active_delay; + u8 xtal_freq_count; + u16 debounce; }; -enum { - PCI_BRIDGE_EMUL_NO_PREFMEM_FORWARD = 1, - PCI_BRIDGE_EMUL_NO_IO_FORWARD = 2, +struct tegra_phy_soc_config { + bool utmi_pll_config_in_car_module; + bool has_hostpc; + bool requires_usbmode_setup; + bool requires_extra_tuning_parameters; + bool requires_pmc_ao_power_up; }; -enum smbios_attr_enum { - SMBIOS_ATTR_NONE = 0, - SMBIOS_ATTR_LABEL_SHOW = 1, - SMBIOS_ATTR_INSTANCE_SHOW = 2, +enum tegra_usb_phy_port_speed { + TEGRA_USB_PHY_PORT_SPEED_FULL = 0, + TEGRA_USB_PHY_PORT_SPEED_LOW = 1, + TEGRA_USB_PHY_PORT_SPEED_HIGH = 2, }; -enum acpi_attr_enum { - ACPI_ATTR_LABEL_SHOW = 0, - ACPI_ATTR_INDEX_SHOW = 1, +struct tegra_usb_phy { + int irq; + int instance; + const struct tegra_xtal_freq *freq; + void *regs; + void *pad_regs; + struct clk *clk; + struct clk *pll_u; + struct clk *pad_clk; + struct regulator *vbus; + struct regmap *pmc_regmap; + enum usb_dr_mode mode; + void *config; + const struct tegra_phy_soc_config *soc_config; + struct usb_phy *ulpi; + struct usb_phy u_phy; + bool is_legacy_phy; + bool is_ulpi_phy; + struct gpio_desc *reset_gpio; + struct reset_control *pad_rst; + bool wakeup_enabled; + bool pad_wakeup; + bool powered_on; }; -struct al_pcie_acpi { - void *dbi_base; +struct tegra_utmip_config { + u8 hssync_start_delay; + u8 elastic_limit; + u8 idle_wait_delay; + u8 term_range_adj; + bool xcvr_setup_use_fuses; + u8 xcvr_setup; + u8 xcvr_lsfslew; + u8 xcvr_lsrslew; + u8 xcvr_hsslew; + u8 hssquelch_level; + u8 hsdiscon_level; }; -enum { - KPARAM_MEM = 0, - KPARAM_WIDTH = 1, - KPARAM_HEIGHT = 2, - KPARAM_CNT___2 = 3, +enum dwc2_hsotg_dmamode { + S3C_HSOTG_DMA_NONE = 0, + S3C_HSOTG_DMA_ONLY = 1, + S3C_HSOTG_DMA_DRV = 2, }; -struct xenfb_update { - uint8_t type; - int32_t x; - int32_t y; - int32_t width; - int32_t height; +struct dwc2_hsotg_plat { + enum dwc2_hsotg_dmamode dma; + unsigned int is_osc: 1; + int phy_type; + int (*phy_init)(struct platform_device *, int); + int (*phy_exit)(struct platform_device *, int); }; -struct xenfb_resize { - uint8_t type; - int32_t width; - int32_t height; - int32_t stride; - int32_t depth; - int32_t offset; +struct riic_irq_desc { + int res_num; + irq_handler_t isr; + char *name; }; -union xenfb_out_event { - uint8_t type; - struct xenfb_update update; - struct xenfb_resize resize; - char pad[40]; +struct riic_dev { + void *base; + u8 *buf; + struct i2c_msg *msg; + int bytes_left; + int err; + int is_last; + struct completion msg_done; + struct i2c_adapter adapter; + struct clk *clk; }; -struct xenfb_page; +struct devfreq_cooling_power; -struct xenfb_info { - unsigned char *fb; - struct fb_info *fb_info; - int x1; - int y1; - int x2; - int y2; - spinlock_t dirty_lock; - int nr_pages; - int irq; - struct xenfb_page *page; - unsigned long *gfns; - int update_wanted; - int feature_resize; - struct xenfb_resize resize; - int resize_dpy; - spinlock_t resize_lock; - struct xenbus_device *xbdev; +struct devfreq_cooling_device { + struct thermal_cooling_device *cdev; + struct thermal_cooling_device_ops cooling_ops; + struct devfreq *devfreq; + unsigned long cooling_state; + u32 *freq_table; + size_t max_state; + struct devfreq_cooling_power *power_ops; + u32 res_util; + int capped_state; + struct dev_pm_qos_request req_max_freq; + struct em_perf_domain *em_pd; }; -struct xenfb_page { - uint32_t in_cons; - uint32_t in_prod; - uint32_t out_cons; - uint32_t out_prod; - int32_t width; - int32_t height; - uint32_t line_length; - uint32_t mem_length; - uint8_t depth; - unsigned long pd[256]; +struct devfreq_cooling_power { + int (*get_real_power)(struct devfreq *, u32 *, unsigned long, unsigned long); }; -struct acpi_table_einj { - struct acpi_table_header header; - u32 header_length; - u8 flags; - u8 reserved[3]; - u32 entries; +enum dw_wdt_rmod { + DW_WDT_RMOD_RESET = 1, + DW_WDT_RMOD_IRQ = 2, }; -enum acpi_einj_actions { - ACPI_EINJ_BEGIN_OPERATION = 0, - ACPI_EINJ_GET_TRIGGER_TABLE = 1, - ACPI_EINJ_SET_ERROR_TYPE = 2, - ACPI_EINJ_GET_ERROR_TYPE = 3, - ACPI_EINJ_END_OPERATION = 4, - ACPI_EINJ_EXECUTE_OPERATION = 5, - ACPI_EINJ_CHECK_BUSY_STATUS = 6, - ACPI_EINJ_GET_COMMAND_STATUS = 7, - ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS = 8, - ACPI_EINJ_GET_EXECUTE_TIMINGS = 9, - ACPI_EINJ_ACTION_RESERVED = 10, - ACPI_EINJ_TRIGGER_ERROR = 255, +struct dw_wdt_timeout { + u32 top_val; + unsigned int sec; + unsigned int msec; }; -enum { - SETWA_FLAGS_APICID = 1, - SETWA_FLAGS_MEM = 2, - SETWA_FLAGS_PCIE_SBDF = 4, +struct dw_wdt { + void *regs; + struct clk *clk; + struct clk *pclk; + unsigned long rate; + enum dw_wdt_rmod rmod; + struct dw_wdt_timeout timeouts[16]; + struct watchdog_device wdd; + struct reset_control *rst; + u32 control; + u32 timeout; + struct dentry *dbgfs_dir; }; -enum acpi_einj_instructions { - ACPI_EINJ_READ_REGISTER = 0, - ACPI_EINJ_READ_REGISTER_VALUE = 1, - ACPI_EINJ_WRITE_REGISTER = 2, - ACPI_EINJ_WRITE_REGISTER_VALUE = 3, - ACPI_EINJ_NOOP = 4, - ACPI_EINJ_FLUSH_CACHELINE = 5, - ACPI_EINJ_INSTRUCTION_RESERVED = 6, +struct ti_cpufreq_data; + +struct ti_cpufreq_soc_data { + const char * const *reg_names; + unsigned long (*efuse_xlate)(struct ti_cpufreq_data *, unsigned long); + unsigned long efuse_fallback; + unsigned long efuse_offset; + unsigned long efuse_mask; + unsigned long efuse_shift; + unsigned long rev_offset; + bool multi_regulator; }; -struct set_error_type_with_address { - u32 type; - u32 vendor_extension; - u32 flags; - u32 apicid; - u64 memory_address; - u64 memory_address_range; - u32 pcie_sbdf; +struct ti_cpufreq_data { + struct device *cpu_dev; + struct device_node *opp_node; + struct regmap *syscon; + const struct ti_cpufreq_soc_data *soc_data; }; -struct vendor_error_type_extension { - u32 length; - u32 pcie_sbdf; - u16 vendor_id; - u16 device_id; - u8 rev_id; - u8 reserved[3]; +struct uniphier_sd_priv { + struct tmio_mmc_data tmio_data; + struct pinctrl *pinctrl; + struct pinctrl_state *pinstate_uhs; + struct clk *clk; + struct reset_control *rst; + struct reset_control *rst_br; + struct reset_control *rst_hw; + struct dma_chan *chan; + enum dma_data_direction dma_dir; + struct regmap *sdctrl_regmap; + u32 sdctrl_ch; + unsigned long clk_rate; + unsigned long caps; }; -struct einj_parameter { - u64 type; - u64 reserved1; - u64 reserved2; - u64 param1; - u64 param2; +struct xenon_emmc_phy_regs { + u16 timing_adj; + u16 func_ctrl; + u16 pad_ctrl; + u16 pad_ctrl2; + u16 dll_ctrl; + u16 logic_timing_adj; + u32 dll_update; + u32 logic_timing_val; }; -struct acpi_einj_trigger { - u32 header_size; - u32 revision; - u32 table_size; - u32 entry_count; +enum soc_pad_ctrl_type { + SOC_PAD_SD = 0, + SOC_PAD_FIXED_1_8V = 1, }; -struct tegra_ahb { - void *regs; - struct device *dev; - u32 ctx[0]; +enum xenon_phy_type_enum { + EMMC_5_0_PHY = 0, + EMMC_5_1_PHY = 1, + NR_PHY_TYPES = 2, }; -struct clk_pllv2 { - struct clk_hw hw; - void *base; +struct soc_pad_ctrl { + void *reg; + enum soc_pad_ctrl_type pad_type; + void (*set_soc_pad)(struct sdhci_host *, unsigned char); }; -enum gdsc_status { - GDSC_OFF = 0, - GDSC_ON = 1, +struct xenon_emmc_phy_params { + bool slow_mode; + u8 znr; + u8 zpr; + u8 nr_tun_times; + u8 tun_step_divider; + struct soc_pad_ctrl pad_ctrl; }; -enum clk_ids___9 { - LAST_DT_CORE_CLK___9 = 37, - CLK_EXTAL___9 = 38, - CLK_EXTALR___9 = 39, - CLK_MAIN___9 = 40, - CLK_PLL1___9 = 41, - CLK_PLL2___5 = 42, - CLK_PLL3___8 = 43, - CLK_PLL1_DIV2___9 = 44, - CLK_PLL1_DIV4___7 = 45, - CLK_S0___7 = 46, - CLK_S1___7 = 47, - CLK_S2___6 = 48, - CLK_S3___7 = 49, - CLK_SDSRC___8 = 50, - CLK_RPCSRC___8 = 51, - CLK_OCO___3 = 52, - MOD_CLK_BASE___9 = 53, +struct dmi_memdev_info { + const char *device; + const char *bank; + u64 size; + u16 handle; + u8 type; }; -struct reg_offset_data { - u32 base_offset; - unsigned int pipe_mult; - unsigned int evnt_mult; - unsigned int ee_mult; +struct platform_mhu_link { + int irq; + void *tx_reg; + void *rx_reg; }; -enum bam_reg { - BAM_CTRL = 0, - BAM_REVISION = 1, - BAM_NUM_PIPES = 2, - BAM_DESC_CNT_TRSHLD = 3, - BAM_IRQ_SRCS = 4, - BAM_IRQ_SRCS_MSK = 5, - BAM_IRQ_SRCS_UNMASKED = 6, - BAM_IRQ_STTS = 7, - BAM_IRQ_CLR = 8, - BAM_IRQ_EN = 9, - BAM_CNFG_BITS = 10, - BAM_IRQ_SRCS_EE = 11, - BAM_IRQ_SRCS_MSK_EE = 12, - BAM_P_CTRL = 13, - BAM_P_RST = 14, - BAM_P_HALT = 15, - BAM_P_IRQ_STTS = 16, - BAM_P_IRQ_CLR = 17, - BAM_P_IRQ_EN = 18, - BAM_P_EVNT_DEST_ADDR = 19, - BAM_P_EVNT_REG = 20, - BAM_P_SW_OFSTS = 21, - BAM_P_DATA_FIFO_ADDR = 22, - BAM_P_DESC_FIFO_ADDR = 23, - BAM_P_EVNT_GEN_TRSHLD = 24, - BAM_P_FIFO_SIZES = 25, +struct platform_mhu { + void *base; + struct platform_mhu_link mlink[3]; + struct mbox_chan chan[3]; + struct mbox_controller mbox; }; -struct bam_chan; +struct fsl_ifc_global; -struct bam_device { - void *regs; +struct fsl_ifc_runtime; + +struct fsl_ifc_ctrl { struct device *dev; - struct dma_device common; - struct bam_chan *channels; - u32 num_channels; - u32 num_ees; - u32 ee; - bool controlled_remotely; - bool powered_remotely; - u32 active_channels; - const struct reg_offset_data *layout; - struct clk *bamclk; + struct fsl_ifc_global *gregs; + struct fsl_ifc_runtime *rregs; int irq; - struct tasklet_struct task; + int nand_irq; + spinlock_t lock; + void *nand; + int version; + int banks; + u32 nand_stat; + wait_queue_head_t nand_wait; + bool little_endian; }; -struct bam_desc_hw; +struct fsl_ifc_global { + __be32 ifc_rev; + u32 res1[2]; + struct { + __be32 cspr_ext; + __be32 cspr; + u32 res2; + } cspr_cs[8]; + u32 res3[13]; + struct { + __be32 amask; + u32 res4[2]; + } amask_cs[8]; + u32 res5[12]; + struct { + __be32 csor; + __be32 csor_ext; + u32 res6; + } csor_cs[8]; + u32 res7[12]; + struct { + __be32 ftim[4]; + u32 res8[8]; + } ftim_cs[8]; + u32 res9[48]; + __be32 rb_stat; + __be32 rb_map; + __be32 wb_map; + __be32 ifc_gcr; + u32 res10[2]; + __be32 cm_evter_stat; + u32 res11[2]; + __be32 cm_evter_en; + u32 res12[2]; + __be32 cm_evter_intr_en; + u32 res13[2]; + __be32 cm_erattr0; + __be32 cm_erattr1; + u32 res14[2]; + __be32 ifc_ccr; + __be32 ifc_csr; + __be32 ddr_ccr_low; +}; -struct bam_chan { - struct virt_dma_chan vc; - struct bam_device *bdev; - u32 id; - struct dma_slave_config slave; - struct bam_desc_hw *fifo_virt; - dma_addr_t fifo_phys; - unsigned short head; - unsigned short tail; - unsigned int initialized; - unsigned int paused; - unsigned int reconfigure; - struct list_head desc_list; - struct list_head node; +struct fsl_ifc_nand { + __be32 ncfgr; + u32 res1[4]; + __be32 nand_fcr0; + __be32 nand_fcr1; + u32 res2[8]; + __be32 row0; + u32 res3; + __be32 col0; + u32 res4; + __be32 row1; + u32 res5; + __be32 col1; + u32 res6; + __be32 row2; + u32 res7; + __be32 col2; + u32 res8; + __be32 row3; + u32 res9; + __be32 col3; + u32 res10[36]; + __be32 nand_fbcr; + u32 res11; + __be32 nand_fir0; + __be32 nand_fir1; + __be32 nand_fir2; + u32 res12[16]; + __be32 nand_csel; + u32 res13; + __be32 nandseq_strt; + u32 res14; + __be32 nand_evter_stat; + u32 res15; + __be32 pgrdcmpl_evt_stat; + u32 res16[2]; + __be32 nand_evter_en; + u32 res17[2]; + __be32 nand_evter_intr_en; + __be32 nand_vol_addr_stat; + u32 res18; + __be32 nand_erattr0; + __be32 nand_erattr1; + u32 res19[16]; + __be32 nand_fsr; + u32 res20; + __be32 nand_eccstat[8]; + u32 res21[28]; + __be32 nanndcr; + u32 res22[2]; + __be32 nand_autoboot_trgr; + u32 res23; + __be32 nand_mdr; + u32 res24[28]; + __be32 nand_dll_lowcfg0; + __be32 nand_dll_lowcfg1; + u32 res25; + __be32 nand_dll_lowstat; + u32 res26[60]; }; -struct bam_desc_hw { - __le32 addr; - __le16 size; - __le16 flags; +struct fsl_ifc_nor { + __be32 nor_evter_stat; + u32 res1[2]; + __be32 nor_evter_en; + u32 res2[2]; + __be32 nor_evter_intr_en; + u32 res3[2]; + __be32 nor_erattr0; + __be32 nor_erattr1; + __be32 nor_erattr2; + u32 res4[4]; + __be32 norcr; + u32 res5[239]; }; -struct bam_async_desc { - struct virt_dma_desc vd; - u32 num_desc; - u32 xfer_len; - u16 flags; - struct bam_desc_hw *curr_desc; - struct list_head desc_node; - enum dma_transfer_direction dir; - size_t length; - struct bam_desc_hw desc[0]; +struct fsl_ifc_gpcm { + __be32 gpcm_evter_stat; + u32 res1[2]; + __be32 gpcm_evter_en; + u32 res2[2]; + __be32 gpcm_evter_intr_en; + u32 res3[2]; + __be32 gpcm_erattr0; + __be32 gpcm_erattr1; + __be32 gpcm_erattr2; + __be32 gpcm_stat; }; -struct meson_gx_soc_id { - const char *name; - unsigned int id; +struct fsl_ifc_runtime { + struct fsl_ifc_nand ifc_nand; + struct fsl_ifc_nor ifc_nor; + struct fsl_ifc_gpcm ifc_gpcm; }; -struct meson_gx_package_id { - const char *name; - unsigned int major_id; - unsigned int pack_id; - unsigned int pack_mask; +struct hisi_pa_pmu_int_regs { + u32 mask_offset; + u32 clear_offset; + u32 status_offset; }; -struct rcar_gen4_sysc_pd { - struct generic_pm_domain genpd; - u8 pdr; - unsigned int flags; - char name[0]; +struct snd_monitor_file { + struct file *file; + const struct file_operations *disconnected_f_op; + struct list_head shutdown_list; + struct list_head list; }; -struct rcar_gen4_pm_domains { - struct genpd_onecell_data onecell_data; - struct generic_pm_domain *domains[65]; +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 { - VP_MSIX_CONFIG_VECTOR = 0, - VP_MSIX_VQ_VECTOR = 1, + 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, }; -struct devm_of_regulator_matches { - struct of_regulator_match *matches; - unsigned int num_matches; +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, }; -struct brcm_rescal_reset { - void *base; - struct device *dev; - struct reset_controller_dev rcdev; +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, }; -struct vt_spawn_console { - spinlock_t lock; - struct pid *pid; - int sig; -}; +typedef char __pad_before_u32[0]; -struct kbd_struct { - unsigned char lockstate; - unsigned char slockstate; - unsigned char ledmode: 1; - unsigned char ledflagstate: 4; - char: 3; - unsigned char default_ledflagstate: 4; - unsigned char kbdmode: 3; - int: 1; - unsigned char modeflags: 5; +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; }; -typedef void k_handler_fn(struct vc_data *, unsigned char, char); - -typedef void fn_handler_fn(struct vc_data *); +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 kbd_led_trigger { - struct led_trigger trigger; - unsigned int mask; +struct snd_pcm_file { + struct snd_pcm_substream *substream; + int no_compat_mmap; + unsigned int user_pversion; }; -struct getset_keycode_data { - struct input_keymap_entry ke; - int error; +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 keyboard_notifier_param { - struct vc_data *vc; - int down; - int shift; - int ledstate; - unsigned int value; +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 kbdiacr { - unsigned char diacr; - unsigned char base; - unsigned char result; +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 kbdiacrs { - unsigned int kb_cnt; - struct kbdiacr kbdiacr[256]; +struct snd_pcm_mmap_control32 { + u32 appl_ptr; + u32 avail_min; }; -struct kbdiacrsuc { - unsigned int kb_cnt; - struct kbdiacruc kbdiacruc[256]; +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 stm32_usart_offsets { - u8 cr1; - u8 cr2; - u8 cr3; - u8 brr; - u8 gtpr; - u8 rtor; - u8 rqr; - u8 isr; - u8 icr; - u8 rdr; - u8 tdr; +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 stm32_usart_config { - u8 uart_enable_bit; - bool has_7bits_data; - bool has_swap; - bool has_wakeup; - bool has_fifo; - int fifosize; +struct snd_xferi { + snd_pcm_sframes_t result; + void __attribute__((btf_type_tag("user"))) *buf; + snd_pcm_uframes_t frames; }; -struct stm32_usart_info { - struct stm32_usart_offsets ofs; - struct stm32_usart_config cfg; +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 stm32_port { - struct uart_port port; - struct clk *clk; - const struct stm32_usart_info *info; - struct dma_chan *rx_ch; - dma_addr_t rx_dma_buf; - unsigned char *rx_buf; - struct dma_chan *tx_ch; - dma_addr_t tx_dma_buf; - unsigned char *tx_buf; - u32 cr1_irq; - u32 cr3_irq; - int last_res; - bool tx_dma_busy; - bool throttled; - bool hw_flow_control; - bool swap; - bool fifoen; - int rxftcfg; - int txftcfg; - bool wakeup_src; - int rdr_mask; - struct mctrl_gpios *gpios; - struct dma_tx_state rx_dma_state; +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 arm_smmu_ctx_desc { - u16 asid; - u64 ttbr; - u64 tcr; - u64 mair; - refcount_t refs; - struct mm_struct *mm; +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 arm_smmu_option_prop { - u32 opt; - const char *prop; +struct snd_pcm_channel_info32 { + u32 channel; + u32 offset; + u32 first; + u32 step; }; -enum pri_resp { - PRI_RESP_DENY = 0, - PRI_RESP_FAIL = 1, - PRI_RESP_SUCC = 2, +struct snd_xferi32 { + s32 result; + u32 buf; + u32 frames; }; -enum iommu_fault_reason { - IOMMU_FAULT_REASON_UNKNOWN = 0, - IOMMU_FAULT_REASON_PASID_FETCH = 1, - IOMMU_FAULT_REASON_BAD_PASID_ENTRY = 2, - IOMMU_FAULT_REASON_PASID_INVALID = 3, - IOMMU_FAULT_REASON_WALK_EABT = 4, - IOMMU_FAULT_REASON_PTE_FETCH = 5, - IOMMU_FAULT_REASON_PERMISSION = 6, - IOMMU_FAULT_REASON_ACCESS = 7, - IOMMU_FAULT_REASON_OOR_ADDRESS = 8, +struct snd_xfern32 { + s32 result; + u32 bufs; + u32 frames; }; -enum arm_smmu_msi_index { - EVTQ_MSI_INDEX = 0, - GERROR_MSI_INDEX = 1, - PRIQ_MSI_INDEX = 2, - ARM_SMMU_MAX_MSIS = 3, +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 arm_smmu_device___2; +struct net_test { + char name[32]; + int (*fn)(struct net_device *); +}; -struct arm_smmu_domain___2; +struct netsfhdr { + __be32 version; + __be64 magic; + u8 id; +} __attribute__((packed)); -struct arm_smmu_stream; +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 arm_smmu_master { - struct arm_smmu_device___2 *smmu; - struct device *dev; - struct arm_smmu_domain___2 *domain; - struct list_head domain_head; - struct arm_smmu_stream *streams; - unsigned int num_streams; - bool ats_enabled; - bool stall_enabled; - bool sva_enabled; - bool iopf_enabled; - struct list_head bonds; - unsigned int ssid_bits; +struct net_test_priv { + struct net_packet_attrs *packet; + struct packet_type pt; + struct completion comp; + int double_vlan; + int vlan_id; + int ok; }; -struct arm_smmu_ll_queue { - union { - u64 val; - struct { - u32 prod; - u32 cons; - }; - struct { - atomic_t prod; - atomic_t cons; - } atomic; - u8 __pad[64]; - }; - u32 max_n_shift; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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 arm_smmu_queue { - struct arm_smmu_ll_queue llq; - int irq; - __le64 *base; - dma_addr_t base_dma; - u64 q_base; - size_t ent_dwords; - u32 *prod_reg; - u32 *cons_reg; - long: 64; +struct rss_req_info { + struct ethnl_req_info base; + u32 rss_context; }; -struct arm_smmu_cmdq { - struct arm_smmu_queue q; - atomic_long_t *valid_map; - atomic_t owner_prod; - atomic_t lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct rss_reply_data { + struct ethnl_reply_data base; + u32 indir_size; + u32 hkey_size; + u32 hfunc; + u32 *indir_table; + u8 *hkey; }; -struct iopf_queue; +struct nf_conntrack_zone { + u16 id; + u8 flags; + u8 dir; +}; -struct arm_smmu_evtq { - struct arm_smmu_queue q; - struct iopf_queue *iopf; - u32 max_stalls; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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 arm_smmu_priq { - struct arm_smmu_queue q; +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 arm_smmu_strtab_l1_desc; +enum nf_nat_manip_type; -struct arm_smmu_strtab_cfg { - __le64 *strtab; - dma_addr_t strtab_dma; - struct arm_smmu_strtab_l1_desc *l1_desc; - unsigned int num_l1_ents; - u64 strtab_base; - u32 strtab_base_cfg; +struct nf_nat_hook { + int (*parse_nat_setup)(struct nf_conn *, enum nf_nat_manip_type, const struct nlattr *); + void (*decode_session)(struct sk_buff *, struct flowi *); + unsigned int (*manip_pkt)(struct sk_buff *, struct nf_conn *, enum nf_nat_manip_type, enum ip_conntrack_dir); + void (*remove_nat_bysrc)(struct nf_conn *); }; -struct arm_smmu_device___2 { - struct device *dev; - void *base; - void *page1; - u32 features; - u32 options; - long: 64; - long: 64; - long: 64; - long: 64; - struct arm_smmu_cmdq cmdq; - struct arm_smmu_evtq evtq; - struct arm_smmu_priq priq; - int gerr_irq; - int combined_irq; - unsigned long ias; - unsigned long oas; - unsigned long pgsize_bitmap; - unsigned int asid_bits; - unsigned int vmid_bits; - unsigned long vmid_map[1024]; - unsigned int ssid_bits; - unsigned int sid_bits; - struct arm_smmu_strtab_cfg strtab_cfg; - struct iommu_device iommu; - struct rb_root streams; - struct mutex streams_mutex; - long: 64; +struct nf_hook_entries_rcu_head { + struct callback_head head; + void *allocation; }; -struct arm_smmu_strtab_l1_desc { - u8 span; - __le64 *l2ptr; - dma_addr_t l2ptr_dma; +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 arm_smmu_l1_ctx_desc; +typedef u32 inet6_ehashfn_t(const struct net *, const struct in6_addr *, const u16, const struct in6_addr *, const __be16); -struct arm_smmu_ctx_desc_cfg { - __le64 *cdtab; - dma_addr_t cdtab_dma; - struct arm_smmu_l1_ctx_desc *l1_desc; - unsigned int num_l1_ents; -}; +typedef void (*btf_trace_rpcgss_import_ctx)(void *, int); -struct arm_smmu_s1_cfg { - struct arm_smmu_ctx_desc_cfg cdcfg; - struct arm_smmu_ctx_desc cd; - u8 s1fmt; - u8 s1cdmax; -}; +typedef void (*btf_trace_rpcgss_get_mic)(void *, const struct rpc_task *, u32); -struct arm_smmu_s2_cfg { - u16 vmid; - u64 vttbr; - u64 vtcr; -}; +typedef void (*btf_trace_rpcgss_verify_mic)(void *, const struct rpc_task *, u32); -struct arm_smmu_domain___2 { - struct arm_smmu_device___2 *smmu; - struct mutex init_mutex; - struct io_pgtable_ops *pgtbl_ops; - bool stall_enabled; - atomic_t nr_ats_masters; - enum arm_smmu_domain_stage stage; - union { - struct arm_smmu_s1_cfg s1_cfg; - struct arm_smmu_s2_cfg s2_cfg; - }; - struct iommu_domain domain; - struct list_head devices; - spinlock_t devices_lock; - struct list_head mmu_notifiers; -}; +typedef void (*btf_trace_rpcgss_wrap)(void *, const struct rpc_task *, u32); -struct arm_smmu_l1_ctx_desc { - __le64 *l2ptr; - dma_addr_t l2ptr_dma; -}; +typedef void (*btf_trace_rpcgss_unwrap)(void *, const struct rpc_task *, u32); -struct arm_smmu_stream { - u32 id; - struct arm_smmu_master *master; - struct rb_node node; -}; +typedef void (*btf_trace_rpcgss_ctx_init)(void *, const struct gss_cred *); -struct arm_smmu_cmdq_ent { - u8 opcode; - bool substream_valid; - union { - struct { - u32 sid; - } prefetch; - struct { - u32 sid; - u32 ssid; - union { - bool leaf; - u8 span; - }; - } cfgi; - struct { - u8 num; - u8 scale; - u16 asid; - u16 vmid; - bool leaf; - u8 ttl; - u8 tg; - u64 addr; - } tlbi; - struct { - u32 sid; - u32 ssid; - u64 addr; - u8 size; - bool global; - } atc; - struct { - u32 sid; - u32 ssid; - u16 grpid; - enum pri_resp resp; - } pri; - struct { - u32 sid; - u16 stag; - u8 resp; - } resume; - struct { - u64 msiaddr; - } sync; - }; -}; +typedef void (*btf_trace_rpcgss_ctx_destroy)(void *, const struct gss_cred *); -struct arm_smmu_cmdq_batch { - u64 cmds[128]; - int num; -}; +typedef void (*btf_trace_rpcgss_svc_wrap)(void *, const struct svc_rqst *, u32); -struct arm_smmu_queue_poll { - ktime_t timeout; - unsigned int delay; - unsigned int spin_cnt; - bool wfe; -}; +typedef void (*btf_trace_rpcgss_svc_unwrap)(void *, const struct svc_rqst *, u32); -enum { - BD718XX_INT_STBY_REQ = 0, - BD718XX_INT_ON_REQ = 1, - BD718XX_INT_WDOG = 2, - BD718XX_INT_PWRBTN = 3, - BD718XX_INT_PWRBTN_L = 4, - BD718XX_INT_PWRBTN_S = 5, - BD718XX_INT_SWRST = 6, -}; +typedef void (*btf_trace_rpcgss_svc_mic)(void *, const struct svc_rqst *, u32); -enum { - HISI_SAS_PHY_BCAST_ACK = 0, - HISI_SAS_PHY_SL_PHY_ENABLED = 1, - HISI_SAS_PHY_INT_ABNORMAL = 2, - HISI_SAS_PHY_INT_NR___2 = 3, -}; +typedef void (*btf_trace_rpcgss_svc_get_mic)(void *, const struct svc_rqst *, u32); -enum { - DMA_TX_ERR_BASE___2 = 0, - DMA_RX_ERR_BASE___2 = 256, - TRANS_TX_FAIL_BASE___2 = 512, - TRANS_RX_FAIL_BASE___2 = 768, - DMA_TX_DIF_CRC_ERR___2 = 0, - DMA_TX_DIF_APP_ERR___2 = 1, - DMA_TX_DIF_RPP_ERR___2 = 2, - DMA_TX_AXI_BUS_ERR = 3, - DMA_TX_DATA_SGL_OVERFLOW_ERR = 4, - DMA_TX_DIF_SGL_OVERFLOW_ERR = 5, - DMA_TX_UNEXP_XFER_RDY_ERR = 6, - DMA_TX_XFER_RDY_OFFSET_ERR = 7, - DMA_TX_DATA_UNDERFLOW_ERR = 8, - DMA_TX_XFER_RDY_LENGTH_OVERFLOW_ERR = 9, - DMA_RX_BUFFER_ECC_ERR = 256, - DMA_RX_DIF_CRC_ERR___2 = 257, - DMA_RX_DIF_APP_ERR___2 = 258, - DMA_RX_DIF_RPP_ERR___2 = 259, - DMA_RX_RESP_BUFFER_OVERFLOW_ERR = 260, - DMA_RX_AXI_BUS_ERR = 261, - DMA_RX_DATA_SGL_OVERFLOW_ERR = 262, - DMA_RX_DIF_SGL_OVERFLOW_ERR = 263, - DMA_RX_DATA_OFFSET_ERR___2 = 264, - DMA_RX_UNEXP_RX_DATA_ERR = 265, - DMA_RX_DATA_OVERFLOW_ERR = 266, - DMA_RX_DATA_UNDERFLOW_ERR = 267, - DMA_RX_UNEXP_RETRANS_RESP_ERR___2 = 268, - TRANS_TX_RSVD0_ERR = 512, - TRANS_TX_PHY_NOT_ENABLE_ERR = 513, - TRANS_TX_OPEN_REJCT_WRONG_DEST_ERR = 514, - TRANS_TX_OPEN_REJCT_ZONE_VIOLATION_ERR = 515, - TRANS_TX_OPEN_REJCT_BY_OTHER_ERR = 516, - TRANS_TX_RSVD1_ERR = 517, - TRANS_TX_OPEN_REJCT_AIP_TIMEOUT_ERR = 518, - TRANS_TX_OPEN_REJCT_STP_BUSY_ERR = 519, - TRANS_TX_OPEN_REJCT_PROTOCOL_NOT_SUPPORT_ERR = 520, - TRANS_TX_OPEN_REJCT_RATE_NOT_SUPPORT_ERR = 521, - TRANS_TX_OPEN_REJCT_BAD_DEST_ERR = 522, - TRANS_TX_OPEN_BREAK_RECEIVE_ERR = 523, - TRANS_TX_LOW_PHY_POWER_ERR = 524, - TRANS_TX_OPEN_REJCT_PATHWAY_BLOCKED_ERR = 525, - TRANS_TX_OPEN_TIMEOUT_ERR = 526, - TRANS_TX_OPEN_REJCT_NO_DEST_ERR = 527, - TRANS_TX_OPEN_RETRY_ERR = 528, - TRANS_TX_RSVD2_ERR = 529, - TRANS_TX_BREAK_TIMEOUT_ERR = 530, - TRANS_TX_BREAK_REQUEST_ERR = 531, - TRANS_TX_BREAK_RECEIVE_ERR = 532, - TRANS_TX_CLOSE_TIMEOUT_ERR = 533, - TRANS_TX_CLOSE_NORMAL_ERR = 534, - TRANS_TX_CLOSE_PHYRESET_ERR = 535, - TRANS_TX_WITH_CLOSE_DWS_TIMEOUT_ERR = 536, - TRANS_TX_WITH_CLOSE_COMINIT_ERR = 537, - TRANS_TX_NAK_RECEIVE_ERR = 538, - TRANS_TX_ACK_NAK_TIMEOUT_ERR = 539, - TRANS_TX_CREDIT_TIMEOUT_ERR = 540, - TRANS_TX_IPTT_CONFLICT_ERR = 541, - TRANS_TX_TXFRM_TYPE_ERR = 542, - TRANS_TX_TXSMP_LENGTH_ERR = 543, - TRANS_RX_FRAME_CRC_ERR = 768, - TRANS_RX_FRAME_DONE_ERR = 769, - TRANS_RX_FRAME_ERRPRM_ERR = 770, - TRANS_RX_FRAME_NO_CREDIT_ERR = 771, - TRANS_RX_RSVD0_ERR = 772, - TRANS_RX_FRAME_OVERRUN_ERR = 773, - TRANS_RX_FRAME_NO_EOF_ERR = 774, - TRANS_RX_LINK_BUF_OVERRUN_ERR = 775, - TRANS_RX_BREAK_TIMEOUT_ERR = 776, - TRANS_RX_BREAK_REQUEST_ERR = 777, - TRANS_RX_BREAK_RECEIVE_ERR = 778, - TRANS_RX_CLOSE_TIMEOUT_ERR = 779, - TRANS_RX_CLOSE_NORMAL_ERR = 780, - TRANS_RX_CLOSE_PHYRESET_ERR = 781, - TRANS_RX_WITH_CLOSE_DWS_TIMEOUT_ERR = 782, - TRANS_RX_WITH_CLOSE_COMINIT_ERR = 783, - TRANS_RX_DATA_LENGTH0_ERR = 784, - TRANS_RX_BAD_HASH_ERR = 785, - TRANS_RX_XRDY_ZERO_ERR = 786, - TRANS_RX_SSP_FRAME_LEN_ERR = 787, - TRANS_RX_TRANS_RX_RSVD1_ERR = 788, - TRANS_RX_NO_BALANCE_ERR = 789, - TRANS_RX_TRANS_RX_RSVD2_ERR = 790, - TRANS_RX_TRANS_RX_RSVD3_ERR = 791, - TRANS_RX_BAD_FRAME_TYPE_ERR = 792, - TRANS_RX_SMP_FRAME_LEN_ERR = 793, - TRANS_RX_SMP_RESP_TIMEOUT_ERR___2 = 794, -}; +typedef void (*btf_trace_rpcgss_svc_wrap_failed)(void *, const struct svc_rqst *); -struct hisi_sas_complete_v1_hdr { - __le32 data; -}; +typedef void (*btf_trace_rpcgss_svc_unwrap_failed)(void *, const struct svc_rqst *); -struct hisi_sas_err_record_v1 { - __le32 dma_err_type; - __le32 trans_tx_fail_type; - __le32 trans_rx_fail_type; - u32 rsvd; -}; +typedef void (*btf_trace_rpcgss_svc_seqno_bad)(void *, const struct svc_rqst *, u32, u32); -struct mtdblk_dev { - struct mtd_blktrans_dev mbd; - int count; - struct mutex cache_mutex; - unsigned char *cache_data; - unsigned long cache_offset; - unsigned int cache_size; - enum { - STATE_EMPTY = 0, - STATE_CLEAN = 1, - STATE_DIRTY = 2, - } cache_state; -}; +typedef void (*btf_trace_rpcgss_svc_accept_upcall)(void *, const struct svc_rqst *, u32, u32); -struct lpspi_config { - u8 bpw; - u8 chip_select; - u8 prescale; - u16 mode; - u32 speed_hz; -}; +typedef void (*btf_trace_rpcgss_svc_authenticate)(void *, const struct svc_rqst *, const struct rpc_gss_wire_cred *); -struct fsl_lpspi_data { - struct device *dev; - void *base; - unsigned long base_phys; - struct clk *clk_ipg; - struct clk *clk_per; - bool is_slave; - u32 num_cs; - bool is_only_cs1; - bool is_first_byte; - void *rx_buf; - const void *tx_buf; - void (*tx)(struct fsl_lpspi_data *); - void (*rx)(struct fsl_lpspi_data *); - u32 remain; - u8 watermark; - u8 txfifosize; - u8 rxfifosize; - struct lpspi_config config; - struct completion xfer_done; - bool slave_aborted; - bool usedma; - struct completion dma_rx_completion; - struct completion dma_tx_completion; -}; +typedef void (*btf_trace_rpcgss_unwrap_failed)(void *, const struct rpc_task *); -enum xgbe_speedset { - XGBE_SPEEDSET_1000_10000 = 0, - XGBE_SPEEDSET_2500_10000 = 1, -}; +typedef void (*btf_trace_rpcgss_bad_seqno)(void *, const struct rpc_task *, u32, u32); -enum xgbe_speed { - XGBE_SPEED_1000 = 0, - XGBE_SPEED_2500 = 1, - XGBE_SPEED_10000 = 2, - XGBE_SPEEDS = 3, -}; +typedef void (*btf_trace_rpcgss_seqno)(void *, const struct rpc_task *); -struct xgbe_phy_data___2 { - unsigned int speed_set; - u32 blwc[3]; - u32 cdr_rate[3]; - u32 pq_skew[3]; - u32 tx_amp[3]; - u32 dfe_tap_cfg[3]; - u32 dfe_tap_ena[3]; -}; +typedef void (*btf_trace_rpcgss_need_reencode)(void *, const struct rpc_task *, u32, bool); -struct dpmac_cmd_open { - __le32 dpmac_id; -}; +typedef void (*btf_trace_rpcgss_update_slack)(void *, const struct rpc_task *, const struct rpc_auth *); -struct dpmac_rsp_get_attributes { - u8 eth_if; - u8 link_type; - __le16 id; - __le32 max_rate; -}; +typedef void (*btf_trace_rpcgss_svc_seqno_large)(void *, const struct svc_rqst *, u32); -struct dpmac_cmd_set_link_state { - __le64 options; - __le32 rate; - __le32 pad0; - u8 state; - u8 pad1[7]; - __le64 supported; - __le64 advertising; -}; +typedef void (*btf_trace_rpcgss_svc_seqno_seen)(void *, const struct svc_rqst *, u32); -struct dpmac_cmd_get_counter { - u8 id; +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 dpmac_rsp_get_counter { - __le64 pad; - __le64 counter; +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 dpmac_rsp_get_api_version { - __le16 major; - __le16 minor; +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 dpmac_cmd_set_protocol { - u8 eth_if; +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 e1000_host_mng_command_header { - u8 command_id; - u8 checksum; - u16 reserved1; - u16 reserved2; - u16 command_length; +struct trace_event_raw_rpcgss_svc_wrap_failed { + struct trace_entry ent; + u32 xid; + u32 __data_loc_addr; + char __data[0]; }; -enum ring_id { - NETSEC_RING_TX = 0, - NETSEC_RING_RX = 1, +struct trace_event_raw_rpcgss_svc_unwrap_failed { + struct trace_entry ent; + u32 xid; + u32 __data_loc_addr; + char __data[0]; }; -enum buf_type { - TYPE_NETSEC_SKB = 0, - TYPE_NETSEC_XDP_TX = 1, - TYPE_NETSEC_XDP_NDO = 2, +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 netsec_desc; +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 netsec_desc_ring { - dma_addr_t desc_dma; - struct netsec_desc *desc; - void *vaddr; - u16 head; - u16 tail; - u16 xdp_xmit; - struct page_pool *page_pool; - long: 64; - long: 64; - long: 64; - struct xdp_rxq_info xdp_rxq; - spinlock_t lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct trace_event_raw_rpcgss_svc_authenticate { + struct trace_entry ent; + u32 seqno; + u32 xid; + u32 __data_loc_addr; + char __data[0]; }; -struct netsec_priv { - struct netsec_desc_ring desc_ring[2]; - struct ethtool_coalesce et_coalesce; - struct bpf_prog *xdp_prog; - spinlock_t reglock; - struct napi_struct napi; - phy_interface_t phy_interface; - struct net_device *ndev; - struct device_node *phy_np; - struct phy_device *phydev; - struct mii_bus *mii_bus; - void *ioaddr; - void *eeprom_base; - struct device *dev; - struct clk *clk; - u32 msg_enable; - u32 freq; - u32 phy_addr; - bool rx_cksum_offload_flag; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct trace_event_raw_rpcgss_unwrap_failed { + struct trace_entry ent; + unsigned int task_id; + unsigned int client_id; + char __data[0]; }; -struct netsec_desc { - union { - struct sk_buff *skb; - struct xdp_frame *xdpf; - }; - dma_addr_t dma_addr; - void *addr; - u16 len; - u8 buf_type; +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 netsec_de { - u32 attr; - u32 data_buf_addr_up; - u32 data_buf_addr_lw; - u32 buf_len_info; +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 netsec_rx_pkt_info { - int rx_cksum_result; - int err_code; - bool err_flag; +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 netsec_tx_pkt_ctrl { - u16 tcp_seg_len; - bool tcp_seg_offload_flag; - bool cksum_offload_flag; +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 timing { - u8 u1sel; - u8 u1pel; - __le16 u2sel; - __le16 u2pel; +struct trace_event_raw_rpcgss_svc_seqno_class { + struct trace_entry ent; + u32 xid; + u32 seqno; + char __data[0]; }; -struct usb_ehci_pdata { - int caps_offset; - unsigned int has_tt: 1; - unsigned int has_synopsys_hc_bug: 1; - unsigned int big_endian_desc: 1; - unsigned int big_endian_mmio: 1; - unsigned int no_io_watchdog: 1; - unsigned int reset_on_resume: 1; - unsigned int dma_mask_64: 1; - unsigned int spurious_oc: 1; - int (*power_on)(struct platform_device *); - void (*power_off)(struct platform_device *); - void (*power_suspend)(struct platform_device *); - int (*pre_setup)(struct usb_hcd *); +struct trace_event_raw_rpcgss_svc_seqno_low { + struct trace_entry ent; + u32 xid; + u32 seqno; + u32 min; + u32 max; + char __data[0]; }; -struct ehci_platform_priv { - struct clk *clks[4]; - struct reset_control *rsts; - bool reset_on_resume; - bool quirk_poll; - struct timer_list poll_timer; - struct delayed_work poll_work; +struct trace_event_raw_rpcgss_upcall_msg { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -struct touchscreen_properties { - unsigned int max_x; - unsigned int max_y; - bool invert_x; - bool invert_y; - bool swap_x_y; +struct trace_event_raw_rpcgss_upcall_result { + struct trace_entry ent; + u32 uid; + int result; + char __data[0]; }; -struct s3c_rtc; - -struct s3c_rtc_data { - bool needs_src_clk; - void (*irq_handler)(struct s3c_rtc *, int); - void (*enable)(struct s3c_rtc *); - void (*disable)(struct s3c_rtc *); +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 s3c_rtc { - struct device *dev; - struct rtc_device *rtc; - void *base; - struct clk *rtc_clk; - struct clk *rtc_src_clk; - bool alarm_enabled; - const struct s3c_rtc_data *data; - int irq_alarm; - spinlock_t alarm_lock; - bool wake_en; +struct trace_event_raw_rpcgss_createauth { + struct trace_entry ent; + unsigned int flavor; + int error; + char __data[0]; }; -struct qup_i2c_block { - int count; - int pos; - int tx_tag_len; - int rx_tag_len; - int data_len; - int cur_blk_len; - int total_tx_len; - int total_rx_len; - int tx_fifo_data_pos; - int tx_fifo_free; - int rx_fifo_data_pos; - int fifo_available; - u32 tx_fifo_data; - u32 rx_fifo_data; - u8 *cur_data; - u8 *cur_tx_tags; - bool tx_tags_sent; - bool send_last_word; - bool rx_tags_fetched; - bool rx_bytes_read; - bool is_tx_blk_mode; - bool is_rx_blk_mode; - u8 tags[6]; +struct trace_event_raw_rpcgss_oid_to_mech { + struct trace_entry ent; + u32 __data_loc_oid; + char __data[0]; }; -struct qup_i2c_tag { - u8 *start; - dma_addr_t addr; +struct trace_event_data_offsets_rpcgss_ctx_class { + u32 principal; }; -struct qup_i2c_bam { - struct qup_i2c_tag tag; - struct dma_chan *dma; - struct scatterlist *sg; - unsigned int sg_cnt; +struct trace_event_data_offsets_rpcgss_svc_gssapi_class { + u32 addr; }; -struct qup_i2c_dev { - struct device *dev; - void *base; - int irq; - struct clk *clk; - struct clk *pclk; - struct i2c_adapter adap; - int clk_ctl; - int out_fifo_sz; - int in_fifo_sz; - int out_blk_sz; - int in_blk_sz; - int blk_xfer_limit; - unsigned long one_byte_t; - unsigned long xfer_timeout; - struct qup_i2c_block blk; - struct i2c_msg *msg; - int pos; - u32 bus_err; - u32 qup_err; - bool is_last; - bool is_smbus_read; - u32 config_run; - bool is_dma; - bool use_dma; - unsigned int max_xfer_sg_len; - unsigned int tag_buf_pos; - unsigned int blk_mode_threshold; - struct dma_pool *dpool; - struct qup_i2c_tag start_tag; - struct qup_i2c_bam brx; - struct qup_i2c_bam btx; - struct completion xfer; - void (*write_tx_fifo)(struct qup_i2c_dev *); - void (*read_rx_fifo)(struct qup_i2c_dev *); - void (*write_rx_tags)(struct qup_i2c_dev *); +struct trace_event_data_offsets_rpcgss_svc_wrap_failed { + u32 addr; }; -struct bcm2835_wdt { - void *base; - spinlock_t lock; +struct trace_event_data_offsets_rpcgss_svc_unwrap_failed { + u32 addr; }; -struct armada37xx_cpufreq_state { - struct platform_device *pdev; - struct device *cpu_dev; - struct regmap *regmap; - u32 nb_l0l1; - u32 nb_l2l3; - u32 nb_dyn_mod; - u32 nb_cpu_load; +struct trace_event_data_offsets_rpcgss_svc_seqno_bad { + u32 addr; }; -struct armada_37xx_dvfs { - u32 cpu_freq_max; - u8 divider[4]; - u32 avs[4]; +struct trace_event_data_offsets_rpcgss_svc_accept_upcall { + u32 addr; }; -struct led_properties { - u32 color; - bool color_present; - const char *function; - u32 func_enum; - bool func_enum_present; - const char *label; +struct trace_event_data_offsets_rpcgss_svc_authenticate { + u32 addr; }; -struct scmi_pm_domain { - struct generic_pm_domain genpd; - const struct scmi_protocol_handle *ph; - const char *name; - u32 domain; +struct trace_event_data_offsets_rpcgss_upcall_msg { + u32 msg; }; -struct clocksource_mmio { - void *reg; - struct clocksource clksrc; +struct trace_event_data_offsets_rpcgss_context { + u32 acceptor; }; -struct usage_priority { - __u32 usage; - bool global; - unsigned int slot_overwrite; +struct trace_event_data_offsets_rpcgss_oid_to_mech { + u32 oid; }; -typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int); +struct trace_event_data_offsets_rpcgss_gssapi_event {}; -struct cros_usbpd_notify_data { - struct device *dev; - struct cros_ec_device *ec; - struct notifier_block nb; -}; +struct trace_event_data_offsets_rpcgss_import_ctx {}; -struct ec_response_host_event_status { - uint32_t status; -}; +struct trace_event_data_offsets_rpcgss_unwrap_failed {}; -struct extcon_dev_notifier_devres { - struct extcon_dev *edev; - unsigned int id; - struct notifier_block *nb; -}; +struct trace_event_data_offsets_rpcgss_bad_seqno {}; -struct icc_clk_node { - struct clk *clk; - bool enabled; -}; +struct trace_event_data_offsets_rpcgss_seqno {}; -struct icc_clk_provider { - struct icc_provider provider; - int num_clocks; - struct icc_clk_node clocks[0]; -}; +struct trace_event_data_offsets_rpcgss_need_reencode {}; -struct dmaengine_pcm_runtime_data { - struct dma_chan *dma_chan; - dma_cookie_t cookie; - unsigned int pos; +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 {}; + +struct radix_tree_preload { + local_lock_t lock; + unsigned int nr; + struct xa_node *nodes; }; -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 cpu_suspend_ctx { + u64 ctx_regs[13]; + u64 sp; }; -struct features_reply_data { - struct ethnl_reply_data base; - u32 hw[2]; - u32 wanted[2]; - u32 active[2]; - u32 nochange[2]; - u32 all[2]; +struct sleep_stack_data { + struct cpu_suspend_ctx system_regs; + unsigned long callee_saved_regs[12]; }; -struct ipfrag_skb_cb { - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - }; - struct sk_buff *next_frag; - int frag_run_len; +struct acpi_pci_generic_root_info { + struct acpi_pci_root_info common; + struct pci_config_window *cfg; }; -typedef void ip6_icmp_send_t(struct sk_buff *, u8, u8, __u32, const struct in6_addr *, const struct inet6_skb_parm *); +union trap_config { + u64 val; + struct { + unsigned long cgt: 10; + unsigned long fgt: 4; + unsigned long bit: 6; + unsigned long pol: 1; + unsigned long fgf: 5; + unsigned long unused: 37; + unsigned long mbz: 1; + }; +}; + +struct encoding_to_trap_config { + const u32 encoding; + const u32 end; + const union trap_config tc; + const unsigned int line; +}; + +enum cgt_group_id { + __RESERVED__ = 0, + CGT_HCR_TID1 = 1, + CGT_HCR_TID2 = 2, + CGT_HCR_TID3 = 3, + CGT_HCR_IMO = 4, + CGT_HCR_FMO = 5, + CGT_HCR_TIDCP = 6, + CGT_HCR_TACR = 7, + CGT_HCR_TSW = 8, + CGT_HCR_TPC = 9, + CGT_HCR_TPU = 10, + CGT_HCR_TTLB = 11, + CGT_HCR_TVM = 12, + CGT_HCR_TDZ = 13, + CGT_HCR_TRVM = 14, + CGT_HCR_TLOR = 15, + CGT_HCR_TERR = 16, + CGT_HCR_APK = 17, + CGT_HCR_NV = 18, + CGT_HCR_NV_nNV2 = 19, + CGT_HCR_NV1_nNV2 = 20, + CGT_HCR_AT = 21, + CGT_HCR_nFIEN = 22, + CGT_HCR_TID4 = 23, + CGT_HCR_TICAB = 24, + CGT_HCR_TOCU = 25, + CGT_HCR_ENSCXT = 26, + CGT_HCR_TTLBIS = 27, + CGT_HCR_TTLBOS = 28, + CGT_MDCR_TPMCR = 29, + CGT_MDCR_TPM = 30, + CGT_MDCR_TDE = 31, + CGT_MDCR_TDA = 32, + CGT_MDCR_TDOSA = 33, + CGT_MDCR_TDRA = 34, + CGT_MDCR_E2PB = 35, + CGT_MDCR_TPMS = 36, + CGT_MDCR_TTRF = 37, + CGT_MDCR_E2TB = 38, + CGT_MDCR_TDCC = 39, + __MULTIPLE_CONTROL_BITS__ = 40, + CGT_HCR_IMO_FMO = 40, + CGT_HCR_TID2_TID4 = 41, + CGT_HCR_TTLB_TTLBIS = 42, + CGT_HCR_TTLB_TTLBOS = 43, + CGT_HCR_TVM_TRVM = 44, + CGT_HCR_TPU_TICAB = 45, + CGT_HCR_TPU_TOCU = 46, + CGT_HCR_NV1_nNV2_ENSCXT = 47, + CGT_MDCR_TPM_TPMCR = 48, + CGT_MDCR_TDE_TDA = 49, + CGT_MDCR_TDE_TDOSA = 50, + CGT_MDCR_TDE_TDRA = 51, + CGT_MDCR_TDCC_TDE_TDA = 52, + __COMPLEX_CONDITIONS__ = 53, + CGT_CNTHCTL_EL1PCTEN = 53, + CGT_CNTHCTL_EL1PTEN = 54, + __NR_CGT_GROUP_IDS__ = 55, +}; + +enum trap_behaviour { + BEHAVE_HANDLE_LOCALLY = 0, + BEHAVE_FORWARD_READ = 1, + BEHAVE_FORWARD_WRITE = 2, + BEHAVE_FORWARD_ANY = 3, +}; + +struct trap_bits { + const enum vcpu_sysreg index; + const enum trap_behaviour behaviour; + const u64 value; + const u64 mask; +}; + +typedef enum trap_behaviour (*complex_condition_check)(struct kvm_vcpu___2 *); + +enum fgt_group_id { + __NO_FGT_GROUP__ = 0, + HFGxTR_GROUP = 1, + HDFGRTR_GROUP = 2, + HDFGWTR_GROUP = 3, + HFGITR_GROUP = 4, + __NR_FGT_GROUP_IDS__ = 5, +}; + +enum fg_filter_id { + __NO_FGF__ = 0, + HCRX_FGTnXS = 1, + __NR_FG_FILTER_IDS__ = 2, +}; + +typedef bool (*exit_handler_fn)(struct kvm_vcpu___2 *, u64 *); + +struct timer_map___2 { + struct arch_timer_context___2 *direct_vtimer; + struct arch_timer_context___2 *direct_ptimer; + struct arch_timer_context___2 *emul_vtimer; + struct arch_timer_context___2 *emul_ptimer; +}; -enum switchdev_attr_id { - SWITCHDEV_ATTR_ID_UNDEFINED = 0, - SWITCHDEV_ATTR_ID_PORT_STP_STATE = 1, - SWITCHDEV_ATTR_ID_PORT_MST_STATE = 2, - SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS = 3, - SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS = 4, - SWITCHDEV_ATTR_ID_PORT_MROUTER = 5, - SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME = 6, - SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING = 7, - SWITCHDEV_ATTR_ID_BRIDGE_VLAN_PROTOCOL = 8, - SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED = 9, - SWITCHDEV_ATTR_ID_BRIDGE_MROUTER = 10, - SWITCHDEV_ATTR_ID_BRIDGE_MST = 11, - SWITCHDEV_ATTR_ID_MRP_PORT_ROLE = 12, - SWITCHDEV_ATTR_ID_VLAN_MSTI = 13, +struct kvm_exception_table_entry { + int insn; + int fixup; }; -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, +struct stage2_map_data___2 { + const u64 phys; + kvm_pte_t attr; + u8 owner_id; + kvm_pte_t *anchor; + kvm_pte_t *childp; + struct kvm_s2_mmu *mmu; + void *memcache; + bool force_pte; }; -typedef void switchdev_deferred_func_t(struct net_device *, const void *); +typedef void (*btf_trace_notifier_register)(void *, void *); -struct switchdev_deferred_item { - struct list_head list; - struct net_device *dev; - netdevice_tracker dev_tracker; - switchdev_deferred_func_t *func; - unsigned long data[0]; -}; +typedef void (*btf_trace_notifier_unregister)(void *, void *); -struct switchdev_notifier_info { - struct net_device *dev; - struct netlink_ext_ack *extack; - const void *ctx; -}; +typedef void (*btf_trace_notifier_run)(void *, void *); -struct switchdev_attr { - struct net_device *orig_dev; - enum switchdev_attr_id id; - u32 flags; - void *complete_priv; - void (*complete)(struct net_device *, int, void *); - union { - u8 stp_state; - struct switchdev_mst_state mst_state; - struct switchdev_brport_flags brport_flags; - bool mrouter; - clock_t ageing_time; - bool vlan_filtering; - u16 vlan_protocol; - bool mst; - bool mc_disabled; - u8 mrp_port_role; - struct switchdev_vlan_msti vlan_msti; - } u; +struct trace_event_raw_notifier_info { + struct trace_entry ent; + void *cb; + char __data[0]; }; -struct switchdev_notifier_port_attr_info { - struct switchdev_notifier_info info; - const struct switchdev_attr *attr; - bool handled; -}; +struct trace_event_data_offsets_notifier_info {}; -struct switchdev_notifier_port_obj_info { - struct switchdev_notifier_info info; - const struct switchdev_obj *obj; - bool handled; +struct die_args { + struct pt_regs *regs; + const char *str; + long err; + int trapnr; + int signr; }; -struct switchdev_nested_priv { - bool (*check_cb)(const struct net_device *); - bool (*foreign_dev_check_cb)(const struct net_device *, const struct net_device *); - const struct net_device *dev; - struct net_device *lower_dev; +enum { + IRQC_IS_HARDIRQ = 0, + IRQC_IS_NESTED = 1, }; -struct netdev_nested_priv { - unsigned char flags; - void *data; +struct __kernel_old_itimerval { + struct __kernel_old_timeval it_interval; + struct __kernel_old_timeval it_value; }; -struct switchdev_notifier_fdb_info { - struct switchdev_notifier_info info; - const unsigned char *addr; - u16 vid; - u8 added_by_user: 1; - u8 is_local: 1; - u8 locked: 1; - u8 offloaded: 1; +struct old_itimerval32 { + struct old_timeval32 it_interval; + struct old_timeval32 it_value; }; -struct switchdev_brport { - struct net_device *dev; - const void *ctx; - struct notifier_block *atomic_nb; - struct notifier_block *blocking_nb; - bool tx_fwd_offload; +struct audit_parent { + struct list_head watches; + struct fsnotify_mark mark; }; -struct switchdev_notifier_brport_info { - struct switchdev_notifier_info info; - const struct switchdev_brport brport; +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 gnttab_cache_flush { - union { - uint64_t dev_bus_addr; - grant_ref_t ref; - } a; - uint16_t offset; - uint16_t length; - uint32_t op; +struct ustring_buffer { + char buffer[1024]; }; -struct linked_page; +enum filter_pred_fn { + FILTER_PRED_FN_NOP = 0, + FILTER_PRED_FN_64 = 1, + FILTER_PRED_FN_64_CPUMASK = 2, + FILTER_PRED_FN_S64 = 3, + FILTER_PRED_FN_U64 = 4, + FILTER_PRED_FN_32 = 5, + FILTER_PRED_FN_32_CPUMASK = 6, + FILTER_PRED_FN_S32 = 7, + FILTER_PRED_FN_U32 = 8, + FILTER_PRED_FN_16 = 9, + FILTER_PRED_FN_16_CPUMASK = 10, + FILTER_PRED_FN_S16 = 11, + FILTER_PRED_FN_U16 = 12, + FILTER_PRED_FN_8 = 13, + FILTER_PRED_FN_8_CPUMASK = 14, + FILTER_PRED_FN_S8 = 15, + FILTER_PRED_FN_U8 = 16, + FILTER_PRED_FN_COMM = 17, + FILTER_PRED_FN_STRING = 18, + FILTER_PRED_FN_STRLOC = 19, + FILTER_PRED_FN_STRRELLOC = 20, + FILTER_PRED_FN_PCHAR_USER = 21, + FILTER_PRED_FN_PCHAR = 22, + FILTER_PRED_FN_CPU = 23, + FILTER_PRED_FN_CPU_CPUMASK = 24, + FILTER_PRED_FN_CPUMASK = 25, + FILTER_PRED_FN_CPUMASK_CPU = 26, + FILTER_PRED_FN_FUNCTION = 27, + FILTER_PRED_FN_ = 28, + FILTER_PRED_TEST_VISITED = 29, +}; -struct chain_allocator { - struct linked_page *chain; - unsigned int used_space; - gfp_t gfp_mask; - int safe_needed; +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, }; -struct linked_page { - struct linked_page *next; - char data[4088]; +enum { + TOO_MANY_CLOSE = -1, + TOO_MANY_OPEN = -2, + MISSING_QUOTE = -3, }; -struct pbe { - void *address; - void *orig_address; - struct pbe *next; +enum { + FILT_ERR_NONE = 0, + FILT_ERR_INVALID_OP = 1, + FILT_ERR_TOO_MANY_OPEN = 2, + FILT_ERR_TOO_MANY_CLOSE = 3, + FILT_ERR_MISSING_QUOTE = 4, + FILT_ERR_MISSING_BRACE_OPEN = 5, + FILT_ERR_MISSING_BRACE_CLOSE = 6, + FILT_ERR_OPERAND_TOO_LONG = 7, + FILT_ERR_EXPECT_STRING = 8, + FILT_ERR_EXPECT_DIGIT = 9, + FILT_ERR_ILLEGAL_FIELD_OP = 10, + FILT_ERR_FIELD_NOT_FOUND = 11, + FILT_ERR_ILLEGAL_INTVAL = 12, + FILT_ERR_BAD_SUBSYS_FILTER = 13, + FILT_ERR_TOO_MANY_PREDS = 14, + FILT_ERR_INVALID_FILTER = 15, + FILT_ERR_INVALID_CPULIST = 16, + FILT_ERR_IP_FIELD_ONLY = 17, + FILT_ERR_INVALID_VALUE = 18, + FILT_ERR_NO_FUNCTION = 19, + FILT_ERR_ERRNO = 20, + FILT_ERR_NO_FILTER = 21, }; -struct mem_zone_bm_rtree; +enum { + INVERT = 1, + PROCESS_AND = 2, + PROCESS_OR = 4, +}; -struct rtree_node; +struct regex; -struct bm_position { - struct mem_zone_bm_rtree *zone; - struct rtree_node *node; - unsigned long node_pfn; - int node_bit; +struct filter_pred { + struct regex *regex; + struct cpumask *mask; + unsigned short *ops; + struct ftrace_event_field *field; + u64 val; + u64 val2; + enum filter_pred_fn fn_num; + int offset; + int not; + int op; }; -struct memory_bitmap { - struct list_head zones; - struct linked_page *p_list; - struct bm_position cur; -}; +typedef int (*regex_match_func)(char *, struct regex *, int); -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 regex { + char pattern[256]; + int len; + int field_len; + regex_match_func match; }; -struct rtree_node { +struct filter_list { struct list_head list; - unsigned long *data; + struct event_filter *filter; }; -struct nosave_region { - struct list_head list; - unsigned long start_pfn; - unsigned long end_pfn; +struct filter_parse_error { + int lasterr; + int lasterr_pos; }; -struct mem_extent { - struct list_head hook; - unsigned long start; - unsigned long end; +struct function_filter_data { + struct ftrace_ops *ops; + int first_filter; + int first_notrace; }; -typedef __kernel_long_t __kernel_suseconds_t; +typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **); -typedef __kernel_suseconds_t suseconds_t; +enum { + BPF_TASK_ITER_ALL_PROCS = 0, + BPF_TASK_ITER_ALL_THREADS = 1, + BPF_TASK_ITER_PROC_THREADS = 2, +}; -struct rchan_percpu_buf_dispatcher { - struct rchan_buf *buf; - struct dentry *dentry; +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 void (*btf_trace_bpf_trace_printk)(void *, const char *); +typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64); -struct bpf_nested_pt_regs { - struct pt_regs regs[3]; +struct bpf_iter__task { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; }; -struct bpf_trace_sample_data { - struct perf_sample_data sds[3]; +struct bpf_iter_seq_task_common { + struct pid_namespace *ns; + enum bpf_iter_task_type type; + u32 pid; + u32 pid_visiting; }; -struct send_signal_irq_work { - struct irq_work irq_work; +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 sig; - enum pid_type type; + u32 tid; + u32 fd; }; -struct bpf_raw_tp_regs { - struct pt_regs regs[3]; +struct bpf_iter__task_vma { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; + union { + struct vm_area_struct *vma; + }; }; -enum { - BPF_F_GET_BRANCH_RECORDS_SIZE = 1, +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; }; -typedef u64 (*btf_bpf_override_return)(struct pt_regs *, unsigned long); +struct bpf_iter_task_vma { + __u64 __opaque[1]; +}; -typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); +struct bpf_iter_task_vma_kern_data; -typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); +struct bpf_iter_task_vma_kern { + struct bpf_iter_task_vma_kern_data *data; +}; -typedef u64 (*btf_bpf_probe_read_kernel)(void *, u32, const void *); +struct bpf_iter_task_vma_kern_data { + struct task_struct *task; + struct mm_struct *mm; + struct mmap_unlock_irq_work *work; + struct vma_iterator vmi; +}; -typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *); +struct bpf_iter_css_task { + __u64 __opaque[1]; +}; -typedef u64 (*btf_bpf_probe_read_compat)(void *, u32, const void *); +struct bpf_iter_css_task_kern { + struct css_task_iter *css_it; +}; -typedef u64 (*btf_bpf_probe_read_compat_str)(void *, u32, const void *); +struct bpf_iter_task { + __u64 __opaque[3]; +}; -typedef u64 (*btf_bpf_probe_write_user)(void __attribute__((btf_type_tag("user"))) *, const void *, u32); +struct bpf_iter_task_kern { + struct task_struct *task; + struct task_struct *pos; + unsigned int flags; +}; -typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64); +struct bpf_iter_seq_task_info { + struct bpf_iter_seq_task_common common; + u32 tid; +}; -typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32); +enum { + BPF_F_BPRM_SECUREEXEC = 1, +}; -typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32); +typedef u64 (*btf_bpf_bprm_opts_set)(struct linux_binprm *, u64); -typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32); +typedef u64 (*btf_bpf_ima_inode_hash)(struct inode *, void *, u32); -struct btf_ptr; +typedef u64 (*btf_bpf_ima_file_hash)(struct file *, void *, u32); -typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64); +typedef u64 (*btf_bpf_get_attach_cookie)(void *); -struct btf_ptr { - void *ptr; - __u32 type_id; - __u32 flags; +struct memblock { + bool bottom_up; + phys_addr_t current_limit; + struct memblock_type memory; + struct memblock_type reserved; }; -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; +struct memory_failure_entry { + unsigned long pfn; + int flags; }; -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)(); +struct memory_failure_cpu { + struct { + union { + struct __kfifo kfifo; + struct memory_failure_entry *type; + const struct memory_failure_entry *const_type; + char (*rectype)[0]; + struct memory_failure_entry *ptr; + const struct memory_failure_entry *ptr_const; + }; + struct memory_failure_entry buf[16]; + } fifo; + spinlock_t lock; + struct work_struct work; +}; -typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *); +enum mf_action_page_type { + MF_MSG_KERNEL = 0, + MF_MSG_KERNEL_HIGH_ORDER = 1, + MF_MSG_SLAB = 2, + MF_MSG_DIFFERENT_COMPOUND = 3, + MF_MSG_HUGE = 4, + MF_MSG_FREE_HUGE = 5, + MF_MSG_UNMAP_FAILED = 6, + MF_MSG_DIRTY_SWAPCACHE = 7, + MF_MSG_CLEAN_SWAPCACHE = 8, + MF_MSG_DIRTY_MLOCKED_LRU = 9, + MF_MSG_CLEAN_MLOCKED_LRU = 10, + MF_MSG_DIRTY_UNEVICTABLE_LRU = 11, + MF_MSG_CLEAN_UNEVICTABLE_LRU = 12, + MF_MSG_DIRTY_LRU = 13, + MF_MSG_CLEAN_LRU = 14, + MF_MSG_TRUNCATED_LRU = 15, + MF_MSG_BUDDY = 16, + MF_MSG_DAX = 17, + MF_MSG_UNSPLIT_THP = 18, + MF_MSG_UNKNOWN = 19, +}; -typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32); +struct page_state { + unsigned long mask; + unsigned long res; + enum mf_action_page_type type; + int (*action)(struct page_state *, struct page *); +}; -typedef u64 (*btf_bpf_send_signal)(u32); +enum mf_result { + MF_IGNORED = 0, + MF_FAILED = 1, + MF_DELAYED = 2, + MF_RECOVERED = 3, +}; -typedef u64 (*btf_bpf_send_signal_thread)(u32); +struct raw_hwp_page { + struct llist_node node; + struct page *page; +}; -typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32); +struct to_kill { + struct list_head nd; + struct task_struct *tsk; + unsigned long addr; + short size_shift; +}; -typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64); +struct hwpoison_walk { + struct to_kill tk; + unsigned long pfn; + int flags; +}; -typedef u64 (*btf_bpf_get_func_ip_tracing)(void *); +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 u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *); +struct orlov_stats { + __u64 free_clusters; + __u32 free_inodes; + __u32 used_dirs; +}; -typedef u64 (*btf_bpf_get_func_ip_kprobe_multi)(struct pt_regs *); +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; +}; -typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *); +enum { + FILEID_HIGH_OFF = 0, + FILEID_LOW_OFF = 1, + FILE_I_TYPE_OFF = 2, + EMBED_FH_OFF = 3, +}; -typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *); +enum pnfs_notify_deviceid_type4 { + NOTIFY_DEVICEID4_CHANGE = 2, + NOTIFY_DEVICEID4_DELETE = 4, +}; -typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *); +struct nfs4_cached_acl { + enum nfs4_acl_type type; + int cached; + size_t len; + char data[0]; +}; -typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *); +struct nfs41_exchange_id_data { + struct nfs41_exchange_id_res res; + struct nfs41_exchange_id_args args; +}; -typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64); +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 u64 (*btf_get_func_arg)(void *, u32, u64 *); +struct nfs4_lock_waiter { + struct inode *inode; + struct nfs_lowner owner; + wait_queue_entry_t wait; +}; -typedef u64 (*btf_get_func_ret)(void *, u64 *); +struct nfs4_call_sync_data { + const struct nfs_server *seq_server; + struct nfs4_sequence_args *seq_args; + struct nfs4_sequence_res *seq_res; +}; -typedef u64 (*btf_get_func_arg_cnt)(void *); +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; +}; -typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64); +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; +}; -typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64); +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; +}; -typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64); +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; +}; -typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32); +struct nfs4_open_createattrs { + struct nfs4_label *label; + struct iattr *sattr; + const __u32 verf[2]; +}; -typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64); +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; +}; -typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64); +struct rpc_bind_conn_calldata { + struct nfs_client *clp; + const struct cred *cred; +}; -typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64); +struct nfs4_sequence_data { + struct nfs_client *clp; + struct nfs4_sequence_args args; + struct nfs4_sequence_res res; +}; -typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64); +struct nfs_release_lockowner_res { + struct nfs4_sequence_res seq_res; +}; -struct trace_event_raw_bpf_trace_printk { - struct trace_entry ent; - u32 __data_loc_bpf_string; - char __data[0]; +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 bpf_trace_module { - struct module *module; - struct list_head list; +struct nfs4_renewdata { + struct nfs_client *client; + unsigned long timestamp; }; -struct trace_event_data_offsets_bpf_trace_printk { - u32 bpf_string; +struct nfs_free_stateid_data { + struct nfs_server *server; + struct nfs41_free_stateid_args args; + struct nfs41_free_stateid_res res; }; -struct bpf_key { - struct key *key; - bool has_ref; +struct nfs4_reclaim_complete_data { + struct nfs_client *clp; + struct nfs41_reclaim_complete_args arg; + struct nfs41_reclaim_complete_res res; }; -struct perf_event_query_bpf { - __u32 ids_len; - __u32 prog_cnt; - __u32 ids[0]; +struct debugfs_devm_entry { + int (*read)(struct seq_file *, void *); + struct device *dev; }; -struct copy_subpage_arg { - struct page *dst; - struct page *src; - struct vm_area_struct *vma; +enum { + Opt_err___10 = 0, + Opt_enc = 1, + Opt_hash = 2, }; -struct f_owner_ex { - int type; - __kernel_pid_t pid; +struct blk_rq_stat; + +struct blk_stat_callback { + struct list_head list; + struct timer_list timer; + struct blk_rq_stat __attribute__((btf_type_tag("percpu"))) *cpu_stat; + int (*bucket_fn)(const struct request *); + unsigned int buckets; + struct blk_rq_stat *stat; + void (*timer_fn)(struct blk_stat_callback *); + void *data; + struct callback_head rcu; }; -struct compat_flock64 { - short l_type; - short l_whence; - compat_loff_t l_start; - compat_loff_t l_len; - compat_pid_t l_pid; +struct blk_rq_stat { + u64 mean; + u64 min; + u64 max; + u32 nr_samples; + u64 batch; }; -struct compat_flock { - short l_type; - short l_whence; - compat_off_t l_start; - compat_off_t l_len; - compat_pid_t l_pid; +struct blk_queue_stats { + struct list_head callbacks; + spinlock_t lock; + int accounting; }; -struct bh_lru { - struct buffer_head *bhs[16]; +struct bsg_set { + struct blk_mq_tag_set tag_set; + struct bsg_device *bd; + bsg_job_fn *job_fn; + bsg_timeout_fn *timeout_fn; }; -struct bh_accounting { - int nr; - int ratelimit; +struct io_madvise { + struct file *file; + u64 addr; + u32 len; + u32 advice; }; -struct postprocess_bh_ctx { - struct work_struct work; - struct buffer_head *bh; +struct io_fadvise { + struct file *file; + u64 offset; + u32 len; + u32 advice; }; -struct orlov_stats { - __u64 free_clusters; - __u32 free_inodes; - __u32 used_dirs; +struct io_waitid { + struct file *file; + int which; + pid_t upid; + int options; + atomic_t refs; + struct wait_queue_head *head; + struct siginfo __attribute__((btf_type_tag("user"))) *infop; + struct waitid_info info; }; -struct fat_floppy_defaults { - unsigned int nr_sectors; - unsigned int sec_per_clus; - unsigned int dir_entries; - unsigned int media; - unsigned int fat_length; +struct io_waitid_async { + struct io_kiocb *req; + struct wait_opts wo; }; -enum { - Opt_check_n = 0, - Opt_check_r = 1, - Opt_check_s = 2, - Opt_uid___6 = 3, - Opt_gid___7 = 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___3 = 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___2 = 33, - Opt_err_panic___2 = 34, - Opt_err_ro___2 = 35, - Opt_discard = 36, - Opt_nfs = 37, - Opt_time_offset = 38, - Opt_nfs_stale_rw = 39, - Opt_nfs_nostale_ro = 40, - Opt_err___9 = 41, - Opt_dos1xfloppy = 42, -}; +typedef uintptr_t uptrval; -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 enum { + endOnOutputSize = 0, + endOnInputSize = 1, +} endCondition_directive; -typedef void (*btf_trace_nlmclnt_test)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); +typedef enum { + decode_full_block = 0, + partial_decode = 1, +} earlyEnd_directive; -typedef void (*btf_trace_nlmclnt_lock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); +typedef enum { + noDict = 0, + withPrefix64k = 1, + usingExtDict = 2, +} dict_directive; -typedef void (*btf_trace_nlmclnt_unlock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); +typedef struct { + const uint8_t *externalDict; + size_t extDictSize; + const uint8_t *prefixEnd; + size_t prefixSize; +} LZ4_streamDecode_t_internal; -typedef void (*btf_trace_nlmclnt_grant)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); +typedef union { + unsigned long long table[4]; + LZ4_streamDecode_t_internal internal_donotuse; +} LZ4_streamDecode_t; -struct trace_event_raw_nlmclnt_lock_event { - struct trace_entry ent; - u32 oh; - u32 svid; - u32 fh; - unsigned long status; - u64 start; - u64 len; - u32 __data_loc_addr; - char __data[0]; +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 trace_event_data_offsets_nlmclnt_lock_event { - u32 addr; +enum { + EI_ETYPE_NULL = 0, + EI_ETYPE_ERRNO = 1, + EI_ETYPE_ERRNO_NULL = 2, + EI_ETYPE_TRUE = 3, }; -struct ext_wait_queue { - struct task_struct *task; +struct ei_entry { struct list_head list; - struct msg_msg *msg; - int state; + unsigned long start_addr; + unsigned long end_addr; + int etype; + void *priv; }; -struct posix_msg_tree_node; +struct bcm7120_l1_intc_data; -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 bcm7120_l2_intc_data { + unsigned int n_words; + void *map_base[8]; + void *pair_base[4]; + int en_offset[4]; + int stat_offset[4]; + struct irq_domain *domain; + bool can_wake; + u32 irq_fwd_mask[4]; + struct bcm7120_l1_intc_data *l1_data; + int num_parent_irqs; + const __be32 *map_mask_prop; }; -struct posix_msg_tree_node { - struct rb_node rb_node; - struct list_head msg_list; - int priority; +struct bcm7120_l1_intc_data { + struct bcm7120_l2_intc_data *b; + u32 irq_map_mask[4]; }; -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 ns2_phy_data; -struct mqueue_fs_context { - struct ipc_namespace *ipc_ns; - bool newns; +struct ns2_phy_driver { + void *icfgdrd_regs; + void *idmdrd_rst_ctrl; + void *crmu_usb2_ctrl; + void *usb2h_strap_reg; + struct ns2_phy_data *data; + struct extcon_dev *edev; + struct gpio_desc *vbus_gpiod; + struct gpio_desc *id_gpiod; + int id_irq; + int vbus_irq; + unsigned long debounce_jiffies; + struct delayed_work wq_extcon; }; -struct blk_mq_hw_ctx_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct blk_mq_hw_ctx *, char *); +struct ns2_phy_data { + struct ns2_phy_driver *driver; + struct phy *phy; + int new_state; }; -enum { - IO_WORKER_F_UP = 1, - IO_WORKER_F_RUNNING = 2, - IO_WORKER_F_FREE = 4, - IO_WORKER_F_BOUND = 8, +struct phy_gmii_sel_soc_data { + u32 num_ports; + u32 features; + const struct reg_field (*regfields)[3]; + bool use_of_data; + u64 extra_modes; + u32 num_qsgmii_main_ports; }; enum { - IO_WQ_BIT_EXIT = 0, + PHY_GMII_SEL_PORT_MODE = 0, + PHY_GMII_SEL_RGMII_ID_MODE = 1, + PHY_GMII_SEL_RMII_IO_CLK_EN = 2, + PHY_GMII_SEL_LAST = 3, }; -enum { - IO_ACCT_STALLED_BIT = 0, -}; +struct phy_gmii_sel_phy_priv; -enum { - IO_WQ_ACCT_BOUND = 0, - IO_WQ_ACCT_UNBOUND = 1, - IO_WQ_ACCT_NR = 2, +struct phy_gmii_sel_priv { + struct device *dev; + const struct phy_gmii_sel_soc_data *soc_data; + struct regmap *regmap; + struct phy_provider *phy_provider; + struct phy_gmii_sel_phy_priv *if_phys; + u32 num_ports; + u32 reg_offset; + u32 qsgmii_main_ports; + bool no_offset; }; -struct io_worker { - refcount_t ref; - unsigned int flags; - struct hlist_nulls_node nulls_node; - struct list_head all_list; - struct task_struct *task; - struct io_wq *wq; - struct io_wq_work *cur_work; - struct io_wq_work *next_work; - raw_spinlock_t lock; - struct completion ref_done; - unsigned long create_state; - struct callback_head create_work; - int create_index; - union { - struct callback_head rcu; - struct work_struct work; - }; +struct phy_gmii_sel_phy_priv { + struct phy_gmii_sel_priv *priv; + u32 id; + struct phy *if_phy; + int rmii_clock_external; + int phy_if_mode; + struct regmap_field *fields[3]; }; -struct io_wq_acct { - unsigned int nr_workers; - unsigned int max_workers; - int index; - atomic_t nr_running; - raw_spinlock_t lock; - struct io_wq_work_list work_list; - unsigned long flags; +enum { + V_ARMADA_7K = 1, + V_ARMADA_8K_CPM = 2, + V_ARMADA_8K_CPS = 4, + V_CP115_STANDALONE = 8, + V_ARMADA_7K_8K_CPM = 3, + V_ARMADA_7K_8K_CPS = 5, }; -struct io_wq { - unsigned long state; - free_work_fn *free_work; - io_wq_work_fn *do_work; - struct io_wq_hash *hash; - atomic_t worker_refs; - struct completion worker_done; - struct hlist_node cpuhp_node; - struct task_struct *task; - struct io_wq_acct acct[2]; - raw_spinlock_t lock; - struct hlist_nulls_head free_list; - struct list_head all_list; - struct wait_queue_entry wait; - struct io_wq_work *hash_tail[64]; - cpumask_var_t cpu_mask; -}; +typedef struct irq_chip * (*gpio_get_irq_chip_cb_t)(unsigned int); -struct io_cb_cancel_data { - work_cancel_fn *fn; - void *data; - int nr_running; - int nr_pending; - bool cancel_all; +struct davinci_gpio_regs { + u32 dir; + u32 out_data; + u32 set_data; + u32 clr_data; + u32 in_data; + u32 set_rising; + u32 clr_rising; + u32 set_falling; + u32 clr_falling; + u32 intstat; }; -struct online_data { - unsigned int cpu; - bool online; +struct davinci_gpio_controller { + struct gpio_chip chip; + struct irq_domain *irq_domain; + spinlock_t lock; + void *regs[5]; + int gpio_unbanked; + int irqs[32]; + struct davinci_gpio_regs context[5]; + u32 binten_context; }; -struct fsl_mc_version { - u32 major; - u32 minor; - u32 revision; +struct davinci_gpio_irq_data { + void *regs; + struct davinci_gpio_controller *chip; + int bank_num; }; -struct dpmng_rsp_get_version { - __le32 revision; - __le32 version_major; - __le32 version_minor; +struct davinci_gpio_platform_data { + bool no_auto_base; + u32 base; + u32 ngpio; + u32 gpio_unbanked; }; -struct fsl_mc_addr_translation_range; - -struct fsl_mc { - struct fsl_mc_device *root_mc_bus_dev; - u8 num_translation_ranges; - struct fsl_mc_addr_translation_range *translation_ranges; - void *fsl_mc_regs; +struct ls_g4_pcie { + struct mobiveil_pcie pci; + struct delayed_work dwork; + int irq; }; -struct fsl_mc_addr_translation_range { - enum dprc_region_type mc_region_type; - u64 start_mc_offset; - u64 end_mc_offset; - phys_addr_t start_phys_addr; +struct acpi_madt_io_apic { + struct acpi_subtable_header header; + u8 id; + u8 reserved; + u32 address; + u32 global_irq_base; }; -struct usb2phy_reg { - unsigned int offset; - unsigned int bitend; - unsigned int bitstart; - unsigned int disable; - unsigned int enable; -}; +struct acpi_madt_interrupt_override { + struct acpi_subtable_header header; + u8 bus; + u8 source_irq; + u32 global_irq; + u16 inti_flags; +} __attribute__((packed)); -struct rockchip_usb2phy_port_cfg { - struct usb2phy_reg phy_sus; - struct usb2phy_reg bvalid_det_en; - struct usb2phy_reg bvalid_det_st; - struct usb2phy_reg bvalid_det_clr; - struct usb2phy_reg id_det_en; - struct usb2phy_reg id_det_st; - struct usb2phy_reg id_det_clr; - struct usb2phy_reg ls_det_en; - struct usb2phy_reg ls_det_st; - struct usb2phy_reg ls_det_clr; - struct usb2phy_reg utmi_avalid; - struct usb2phy_reg utmi_bvalid; - struct usb2phy_reg utmi_id; - struct usb2phy_reg utmi_ls; - struct usb2phy_reg utmi_hstdet; +struct acpi_madt_nmi_source { + struct acpi_subtable_header header; + u16 inti_flags; + u32 global_irq; }; -struct rockchip_chg_det_reg { - struct usb2phy_reg cp_det; - struct usb2phy_reg dcp_det; - struct usb2phy_reg dp_det; - struct usb2phy_reg idm_sink_en; - struct usb2phy_reg idp_sink_en; - struct usb2phy_reg idp_src_en; - struct usb2phy_reg rdm_pdwn_en; - struct usb2phy_reg vdm_src_en; - struct usb2phy_reg vdp_src_en; - struct usb2phy_reg opmode; -}; +struct acpi_madt_local_apic_nmi { + struct acpi_subtable_header header; + u8 processor_id; + u16 inti_flags; + u8 lint; +} __attribute__((packed)); -struct rockchip_usb2phy_cfg { - unsigned int reg; - unsigned int num_ports; - struct usb2phy_reg clkout_ctl; - const struct rockchip_usb2phy_port_cfg port_cfgs[2]; - const struct rockchip_chg_det_reg chg_det; +struct acpi_madt_local_x2apic_nmi { + struct acpi_subtable_header header; + u16 inti_flags; + u32 uid; + u8 lint; + u8 reserved[3]; }; -enum usb_chg_state { - USB_CHG_STATE_UNDEFINED = 0, - USB_CHG_STATE_WAIT_FOR_DCD = 1, - USB_CHG_STATE_DCD_DONE = 2, - USB_CHG_STATE_PRIMARY_DONE = 3, - USB_CHG_STATE_SECONDARY_DONE = 4, - USB_CHG_STATE_DETECTED = 5, -}; +struct acpi_madt_local_apic_override { + struct acpi_subtable_header header; + u16 reserved; + u64 address; +} __attribute__((packed)); -enum rockchip_usb2phy_port_id { - USB2PHY_PORT_OTG = 0, - USB2PHY_PORT_HOST = 1, - USB2PHY_NUM_PORTS = 2, +struct acpi_madt_io_sapic { + struct acpi_subtable_header header; + u8 id; + u8 reserved; + u32 global_irq_base; + u64 address; }; -enum rockchip_usb2phy_host_state { - PHY_STATE_HS_ONLINE = 0, - PHY_STATE_DISCONNECT = 1, - PHY_STATE_CONNECT = 2, - PHY_STATE_FS_LS_ONLINE = 4, +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 rockchip_usb2phy_port { - struct phy *phy; - unsigned int port_id; - bool suspended; - bool vbus_attached; - int bvalid_irq; - int id_irq; - int ls_irq; - int otg_mux_irq; - struct mutex mutex; - struct delayed_work chg_work; - struct delayed_work otg_sm_work; - struct delayed_work sm_work; - const struct rockchip_usb2phy_port_cfg *port_cfg; - struct notifier_block event_nb; - enum usb_otg_state state; - enum usb_dr_mode mode; +struct acpi_ged_event { + struct list_head node; + struct device *dev; + unsigned int gsi; + unsigned int irq; + acpi_handle handle; }; -struct rockchip_usb2phy { +struct acpi_ged_device { struct device *dev; - struct regmap *grf; - struct regmap *usbgrf; - struct clk *clk; - struct clk *clk480m; - struct clk_hw clk480m_hw; - enum usb_chg_state chg_state; - enum power_supply_type chg_type; - u8 dcd_retries; - struct extcon_dev *edev; - int irq; - const struct rockchip_usb2phy_cfg *phy_cfg; - struct rockchip_usb2phy_port ports[2]; + struct list_head event_list; }; -struct meson_pmx_axg_data { - unsigned int func; +struct acpi_signal_fatal_info { + u32 type; + u32 code; + u32 argument; }; -struct stm32_pinctrl_group; - -struct stm32_gpio_bank; +struct acpi_hmat_locality; -struct stm32_pinctrl { - struct device *dev; - struct pinctrl_dev *pctl_dev; - struct pinctrl_desc pctl_desc; - struct stm32_pinctrl_group *groups; - unsigned int ngroups; - const char **grp_names; - struct stm32_gpio_bank *banks; - unsigned int nbanks; - const struct stm32_pinctrl_match_data *match_data; - struct irq_domain *domain; - struct regmap *regmap; - struct regmap_field *irqmux[16]; - struct hwspinlock *hwlock; - struct stm32_desc_pin *pins; - u32 npins; - u32 pkg; - u16 irqmux_map; - spinlock_t irqmux_lock; +struct memory_locality { + struct list_head node; + struct acpi_hmat_locality *hmat_loc; }; -struct stm32_pinctrl_group { - const char *name; - unsigned long config; - unsigned int pin; +struct acpi_hmat_locality { + struct acpi_hmat_structure header; + u8 flags; + u8 data_type; + u8 min_transfer_size; + u8 reserved1; + u32 number_of_initiator_Pds; + u32 number_of_target_Pds; + u32 reserved2; + u64 entry_base_unit; }; -struct stm32_gpio_bank { - void *base; - struct clk *clk; - struct reset_control *rstc; - spinlock_t lock; - struct gpio_chip gpio_chip; - struct pinctrl_gpio_range range; - struct fwnode_handle *fwnode; - struct irq_domain *domain; - u32 bank_nr; - u32 bank_ioport_nr; - u32 pin_backup[16]; - u8 irq_type[16]; - bool secure_control; +enum acpi_hmat_type { + ACPI_HMAT_TYPE_PROXIMITY = 0, + ACPI_HMAT_TYPE_LOCALITY = 1, + ACPI_HMAT_TYPE_CACHE = 2, + ACPI_HMAT_TYPE_RESERVED = 3, }; -struct fsl_gpio_soc_data { - bool have_paddr; +enum locality_types { + WRITE_LATENCY = 0, + READ_LATENCY = 1, + WRITE_BANDWIDTH = 2, + READ_BANDWIDTH = 3, }; -struct vf610_gpio_port { - struct gpio_chip gc; - void *base; - void *gpio_base; - const struct fsl_gpio_soc_data *sdata; - u8 irqc[32]; - struct clk *clk_port; - struct clk *clk_gpio; - int irq; +struct memory_target { + struct list_head node; + unsigned int memory_pxm; + unsigned int processor_pxm; + struct resource memregions; + struct node_hmem_attrs hmem_attrs[2]; + struct list_head caches; + struct node_cache_attrs cache_attrs; + bool registered; }; -struct tegra194_pcie_ecam { - void *config_base; - void *iatu_base; - void *dbi_base; +struct memory_initiator { + struct list_head node; + unsigned int processor_pxm; + bool has_cpu; }; -struct di_mapping { - uint32_t b0; - uint32_t b1; - uint32_t b2; +struct target_cache { + struct list_head node; + struct node_cache_attrs cache_attrs; }; -enum disp_data_mapping { - IPU_DISP_DATA_MAPPING_RGB666 = 0, - IPU_DISP_DATA_MAPPING_RGB565 = 1, - IPU_DISP_DATA_MAPPING_RGB888 = 2, +struct acpi_hmat_proximity_domain { + struct acpi_hmat_structure header; + u16 flags; + u16 reserved1; + u32 processor_PD; + u32 memory_PD; + u32 reserved2; + u64 reserved3; + u64 reserved4; }; -enum ipu_panel { - IPU_PANEL_SHARP_TFT = 0, - IPU_PANEL_TFT = 1, +struct acpi_hmat_cache { + struct acpi_hmat_structure header; + u32 memory_PD; + u32 reserved1; + u64 cache_size; + u32 cache_attributes; + u16 reserved2; + u16 number_of_SMBIOShandles; }; -struct mx3fb_data { - struct fb_info *fbi; - int backlight_level; - void *reg_base; - spinlock_t lock; - struct device *dev; - struct backlight_device *bl; - uint32_t h_start_width; - uint32_t v_start_width; - enum disp_data_mapping disp_data_fmt; +struct erst_erange { + u64 base; + u64 size; + void *vaddr; + u32 attr; + u64 timings; }; -struct mx3fb_platform_data { - struct device *dma_dev; - const char *name; - const struct fb_videomode *mode; - int num_modes; - enum disp_data_mapping disp_data_fmt; +struct acpi_table_erst { + struct acpi_table_header header; + u32 header_length; + u32 reserved; + u32 entries; }; -struct mx3fb_info { - int blank; - enum ipu_channel ipu_ch; - uint32_t cur_ipu_buf; - u32 pseudo_palette[16]; - struct completion flip_cmpl; - struct mutex mutex; - struct mx3fb_data *mx3fb; - struct idmac_channel *idmac_channel; - struct dma_async_tx_descriptor *txd; - dma_cookie_t cookie; - struct scatterlist sg[2]; - struct fb_var_screeninfo cur_var; +struct erst_record_id_cache { + struct mutex lock; + u64 *entries; + int len; + int size; + int refcount; }; -struct ipu_di_signal_cfg { - unsigned int datamask_en: 1; - unsigned int clksel_en: 1; - unsigned int clkidle_en: 1; - unsigned int data_pol: 1; - unsigned int clk_pol: 1; - unsigned int enable_pol: 1; - unsigned int Hsync_pol: 1; - unsigned int Vsync_pol: 1; +enum acpi_erst_actions { + ACPI_ERST_BEGIN_WRITE = 0, + ACPI_ERST_BEGIN_READ = 1, + ACPI_ERST_BEGIN_CLEAR = 2, + ACPI_ERST_END = 3, + ACPI_ERST_SET_RECORD_OFFSET = 4, + ACPI_ERST_EXECUTE_OPERATION = 5, + ACPI_ERST_CHECK_BUSY_STATUS = 6, + ACPI_ERST_GET_COMMAND_STATUS = 7, + ACPI_ERST_GET_RECORD_ID = 8, + ACPI_ERST_SET_RECORD_ID = 9, + ACPI_ERST_GET_RECORD_COUNT = 10, + ACPI_ERST_BEGIN_DUMMY_WRIITE = 11, + ACPI_ERST_NOT_USED = 12, + ACPI_ERST_GET_ERROR_RANGE = 13, + ACPI_ERST_GET_ERROR_LENGTH = 14, + ACPI_ERST_GET_ERROR_ATTRIBUTES = 15, + ACPI_ERST_EXECUTE_TIMINGS = 16, + ACPI_ERST_ACTION_RESERVED = 17, }; -struct dma_chan_request { - struct mx3fb_data *mx3fb; - enum ipu_channel id; -}; +struct cper_record_header { + char signature[4]; + u16 revision; + u32 signature_end; + u16 section_count; + u32 error_severity; + u32 validation_bits; + u32 record_length; + u64 timestamp; + guid_t platform_id; + guid_t partition_id; + guid_t creator_id; + guid_t notification_type; + u64 record_id; + u32 flags; + u64 persistence_information; + u8 reserved[12]; +} __attribute__((packed)); -struct acpi_port_info { - char *name; - u16 start; - u16 end; - u8 osi_dependency; +struct cper_section_descriptor { + u32 section_offset; + u32 section_length; + u16 revision; + u8 validation_bits; + u8 reserved; + u32 flags; + guid_t section_type; + guid_t fru_id; + u32 section_severity; + u8 fru_text[20]; }; -struct applnco_tables; +struct cper_pstore_record { + struct cper_record_header hdr; + struct cper_section_descriptor sec_hdr; + char data[0]; +}; -struct applnco_channel { - void *base; - struct applnco_tables *tbl; +struct clk_frac_pll { struct clk_hw hw; - spinlock_t lock; + void *base; }; -struct applnco_tables { - u16 fwd[2048]; - u16 inv[2048]; +struct ti_syscon_gate_clk_data { + char *name; + u32 offset; + u32 bit_idx; }; -struct clk_cpu_8996_pmux { +struct ti_syscon_gate_clk_priv { + struct clk_hw hw; + struct regmap *regmap; u32 reg; - struct notifier_block nb; - struct clk_regmap___2 clkr; + u32 idx; }; -enum _pmux_input { - SMUX_INDEX = 0, - PLL_INDEX = 1, - ACD_INDEX = 2, - ALT_INDEX = 3, - NUM_OF_PMUX_INPUTS = 4, +struct meson_clk_cpu_dyndiv_data { + struct parm div; + struct parm dyn; }; -struct rcar_dmac_of_data { - u32 chan_offset_base; - u32 chan_offset_stride; +struct clk_cbf_8996_mux { + u32 reg; + struct notifier_block nb; + struct clk_regmap clkr; }; -struct rcar_dmac_chan_slave { - phys_addr_t slave_addr; - unsigned int xfer_size; +enum { + CBF_XO_INDEX = 0, + CBF_PLL_INDEX = 1, + CBF_DIV_INDEX = 2, + CBF_APCS_AUX_INDEX = 3, }; -struct rcar_dmac_chan_map { - dma_addr_t addr; - enum dma_data_direction dir; - struct rcar_dmac_chan_slave slave; +enum clk_ids___8 { + LAST_DT_CORE_CLK___8 = 50, + CLK_EXTAL___8 = 51, + CLK_EXTALR___8 = 52, + CLK_MAIN___8 = 53, + CLK_PLL1___8 = 54, + CLK_PLL2___5 = 55, + CLK_PLL3___7 = 56, + CLK_PLL5___3 = 57, + CLK_PLL6___2 = 58, + CLK_PLL1_DIV2___8 = 59, + CLK_PLL2_DIV2___2 = 60, + CLK_PLL3_DIV2___2 = 61, + CLK_PLL5_DIV2___3 = 62, + CLK_PLL5_DIV4___3 = 63, + CLK_PLL6_DIV2___2 = 64, + CLK_S0___6 = 65, + CLK_SASYNCPER___2 = 66, + CLK_SDSRC___7 = 67, + CLK_RPCSRC___7 = 68, + CLK_OCO___3 = 69, + MOD_CLK_BASE___8 = 70, }; -struct rcar_dmac_desc; - -struct rcar_dmac_chan { - struct dma_chan chan; - void *iomem; - unsigned int index; - int irq; - struct rcar_dmac_chan_slave src; - struct rcar_dmac_chan_slave dst; - struct rcar_dmac_chan_map map; - int mid_rid; - spinlock_t lock; - struct { - struct list_head free; - struct list_head pending; - struct list_head active; - struct list_head done; - struct list_head wait; - struct rcar_dmac_desc *running; - struct list_head chunks_free; - struct list_head pages; - } desc; +enum dfll_ctrl_mode { + DFLL_UNINITIALIZED = 0, + DFLL_DISABLED = 1, + DFLL_OPEN_LOOP = 2, + DFLL_CLOSED_LOOP = 3, }; -struct rcar_dmac_xfer_chunk; - -struct rcar_dmac_hw_desc; - -struct rcar_dmac_desc { - struct dma_async_tx_descriptor async_tx; - enum dma_transfer_direction direction; - unsigned int xfer_shift; - u32 chcr; - struct list_head node; - struct list_head chunks; - struct rcar_dmac_xfer_chunk *running; - unsigned int nchunks; - struct { - bool use; - struct rcar_dmac_hw_desc *mem; - dma_addr_t dma; - size_t size; - } hwdescs; - unsigned int size; - bool cyclic; +enum dfll_tune_range { + DFLL_TUNE_UNINITIALIZED = 0, + DFLL_TUNE_LOW = 1, }; -struct rcar_dmac_xfer_chunk { - struct list_head node; - dma_addr_t src_addr; - dma_addr_t dst_addr; - u32 size; +enum tegra_dfll_pmu_if { + TEGRA_DFLL_PMU_I2C = 0, + TEGRA_DFLL_PMU_PWM = 1, }; -struct rcar_dmac_hw_desc { - u32 sar; - u32 dar; - u32 tcr; - u32 reserved; +struct dfll_rate_req { + unsigned long rate; + unsigned long dvco_target_rate; + int lut_index; + u8 mult_bits; + u8 scale_bits; }; -struct rcar_dmac { - struct dma_device engine; +struct tegra_dfll { struct device *dev; - void *dmac_base; - void *chan_base; - unsigned int n_channels; - struct rcar_dmac_chan *channels; - u32 channels_mask; - unsigned long modules[4]; -}; - -struct rcar_dmac_desc_page { - struct list_head node; - union { - struct { - struct {} __empty_descs; - struct rcar_dmac_desc descs[0]; - }; - struct { - struct {} __empty_chunks; - struct rcar_dmac_xfer_chunk chunks[0]; - }; - }; + struct tegra_dfll_soc_data *soc; + void *base; + void *i2c_base; + void *i2c_controller_base; + void *lut_base; + struct regulator *vdd_reg; + struct clk *soc_clk; + struct clk *ref_clk; + struct clk *i2c_clk; + struct clk *dfll_clk; + struct reset_control *dfll_rst; + struct reset_control *dvco_rst; + unsigned long ref_rate; + unsigned long i2c_clk_rate; + unsigned long dvco_rate_min; + enum dfll_ctrl_mode mode; + enum dfll_tune_range tune_range; + struct dentry *debugfs_dir; + struct clk_hw dfll_clk_hw; + const char *output_clock_name; + struct dfll_rate_req last_req; + unsigned long last_unrounded_rate; + u32 droop_ctrl; + u32 sample_rate; + u32 force_mode; + u32 cf; + u32 ci; + u32 cg; + bool cg_scale; + u32 i2c_fs_rate; + u32 i2c_reg; + u32 i2c_slave_addr; + unsigned int lut[33]; + unsigned long lut_uv[33]; + int lut_size; + u8 lut_bottom; + u8 lut_min; + u8 lut_max; + u8 lut_safe; + enum tegra_dfll_pmu_if pmu_if; + unsigned long pwm_rate; + struct pinctrl *pwm_pin; + struct pinctrl_state *pwm_enable_state; + struct pinctrl_state *pwm_disable_state; + u32 reg_init_uV; }; -struct scpsys_domain_data; - -struct scpsys_soc_data { - const struct scpsys_domain_data *domains_data; - int num_domains; +enum ch_command { + HIDMA_CH_DISABLE = 0, + HIDMA_CH_ENABLE = 1, + HIDMA_CH_SUSPEND = 2, + HIDMA_CH_RESET = 9, }; -struct scpsys_bus_prot_data { - u32 bus_prot_mask; - u32 bus_prot_set; - u32 bus_prot_clr; - u32 bus_prot_sta; - bool bus_prot_reg_update; - bool ignore_clr_ack; +enum ch_state { + HIDMA_CH_DISABLED = 0, + HIDMA_CH_ENABLED = 1, + HIDMA_CH_RUNNING = 2, + HIDMA_CH_SUSPENDED = 3, + HIDMA_CH_STOPPED = 4, }; -struct scpsys_domain_data { - const char *name; - u32 sta_mask; - int ctl_offs; - u32 sram_pdn_bits; - u32 sram_pdn_ack_bits; - int ext_buck_iso_offs; - u32 ext_buck_iso_mask; - u8 caps; - const struct scpsys_bus_prot_data bp_infracfg[6]; - const struct scpsys_bus_prot_data bp_smi[6]; - int pwr_sta_offs; - int pwr_sta2nd_offs; +enum err_code { + HIDMA_EVRE_STATUS_COMPLETE = 1, + HIDMA_EVRE_STATUS_ERROR = 4, }; -struct scpsys; - -struct scpsys_domain { - struct generic_pm_domain genpd; - const struct scpsys_domain_data *data; - struct scpsys *scpsys; - int num_clks; - struct clk_bulk_data *clks; - int num_subsys_clks; - struct clk_bulk_data *subsys_clks; - struct regmap *infracfg; - struct regmap *smi; - struct regulator *supply; -}; +struct tegra234_cbb_fabric; -struct scpsys { - struct device *dev; - struct regmap *base; - const struct scpsys_soc_data *soc_data; - struct genpd_onecell_data pd_data; - struct generic_pm_domain *domains[0]; +struct tegra234_cbb_acpi_uid { + const char *hid; + const char *uid; + const struct tegra234_cbb_fabric *fabric; }; -struct tegra194_cbb_aperture; - -struct tegra194_cbb_userbits; +struct tegra234_slave_lookup; -struct tegra194_cbb_noc_data { +struct tegra234_cbb_fabric { const char *name; - bool erd_mask_inband_err; + phys_addr_t off_mask_erd; + phys_addr_t firewall_base; + unsigned int firewall_ctl; + unsigned int firewall_wr_ctl; const char * const *master_id; - unsigned int max_aperture; - const struct tegra194_cbb_aperture *noc_aperture; - const char * const *routeid_initflow; - const char * const *routeid_targflow; - void (*parse_routeid)(struct tegra194_cbb_aperture *, u64); - void (*parse_userbits)(struct tegra194_cbb_userbits *, u32); + unsigned int notifier_offset; + const struct tegra_cbb_error *errors; + const int max_errors; + const struct tegra234_slave_lookup *slave_map; + const int max_slaves; }; -struct tegra194_cbb_aperture { - u8 initflow; - u8 targflow; - u8 targ_subrange; - u8 init_mapping; - u32 init_localaddress; - u8 targ_mapping; - u32 targ_localaddress; - u16 seqid; +struct tegra234_slave_lookup { + const char *name; + unsigned int offset; }; -struct tegra194_cbb_userbits { - u8 axcache; - u8 non_mod; - u8 axprot; - u8 falconsec; - u8 grpsec; - u8 vqc; - u8 mstr_id; - u8 axi_id; +enum tegra234_cbb_fabric_ids { + CBB_FAB_ID = 0, + SCE_FAB_ID = 1, + RCE_FAB_ID = 2, + DCE_FAB_ID = 3, + AON_FAB_ID = 4, + PSC_FAB_ID = 5, + BPMP_FAB_ID = 6, + FSI_FAB_ID = 7, + MAX_FAB_ID = 8, }; -struct tegra194_axi2apb_bridge; - -struct tegra194_cbb { +struct tegra234_cbb { struct tegra_cbb base; - const struct tegra194_cbb_noc_data *noc; + const struct tegra234_cbb_fabric *fabric; struct resource *res; void *regs; - unsigned int num_intr; - unsigned int sec_irq; - unsigned int nonsec_irq; - u32 errlog0; - u32 errlog1; - u32 errlog2; - u32 errlog3; - u32 errlog4; - u32 errlog5; - struct tegra194_axi2apb_bridge *bridges; - unsigned int num_bridges; + int num_intr; + int sec_irq; + void *mon; + unsigned int type; + u32 mask; + u64 access; + u32 mn_attr0; + u32 mn_attr1; + u32 mn_attr2; + u32 mn_user_bits; }; -struct tegra194_axi2apb_bridge { - struct resource res; - void *base; -}; +struct imx8mp_blk_ctrl; -struct tegra194_cbb_packet_header { - bool lock; - u8 opc; - u8 errcode; - u16 len1; - bool format; -}; +struct imx8mp_blk_ctrl_domain; -struct per_user_data; +struct imx8mp_blk_ctrl_domain_data; -struct user_evtchn { - struct rb_node node; - struct per_user_data *user; - evtchn_port_t port; - bool enabled; +struct imx8mp_blk_ctrl_data { + int max_reg; + int (*probe)(struct imx8mp_blk_ctrl *); + notifier_fn_t power_notifier_fn; + void (*power_off)(struct imx8mp_blk_ctrl *, struct imx8mp_blk_ctrl_domain *); + void (*power_on)(struct imx8mp_blk_ctrl *, struct imx8mp_blk_ctrl_domain *); + const struct imx8mp_blk_ctrl_domain_data *domains; + int num_domains; }; -struct per_user_data { - struct mutex bind_mutex; - struct rb_root evtchns; - unsigned int nr_evtchns; - unsigned int ring_size; - evtchn_port_t *ring; - unsigned int ring_cons; - unsigned int ring_prod; - unsigned int ring_overflow; - struct mutex ring_cons_mutex; - spinlock_t ring_prod_lock; - wait_queue_head_t evtchn_wait; - struct fasync_struct *evtchn_async_queue; - const char *name; - domid_t restrict_domid; +struct imx8mp_blk_ctrl { + struct device *dev; + struct notifier_block power_nb; + struct device *bus_power_dev; + struct regmap *regmap; + struct imx8mp_blk_ctrl_domain *domains; + struct genpd_onecell_data onecell_data; + void (*power_off)(struct imx8mp_blk_ctrl *, struct imx8mp_blk_ctrl_domain *); + void (*power_on)(struct imx8mp_blk_ctrl *, struct imx8mp_blk_ctrl_domain *); }; -struct ioctl_evtchn_bind_virq { - unsigned int virq; +struct imx8mp_blk_ctrl_domain { + struct generic_pm_domain genpd; + const struct imx8mp_blk_ctrl_domain_data *data; + struct clk_bulk_data clks[2]; + struct icc_bulk_data paths[3]; + struct device *power_dev; + struct imx8mp_blk_ctrl *bc; + int num_paths; + int id; }; -struct ioctl_evtchn_bind_interdomain { - unsigned int remote_domain; - unsigned int remote_port; +struct imx8mp_blk_ctrl_domain_data { + const char *name; + const char * const *clk_names; + int num_clks; + const char * const *path_names; + int num_paths; + const char *gpc_name; }; -struct ioctl_evtchn_bind_unbound_port { - unsigned int remote_domain; +struct clk_hsio_pll { + struct clk_hw hw; + struct regmap *regmap; }; -struct ioctl_evtchn_unbind { - unsigned int port; +struct ti_sci_reset_data { + struct reset_controller_dev rcdev; + struct device *dev; + const struct ti_sci_handle *sci; + struct idr idr; }; -struct ioctl_evtchn_bind { - unsigned int port; +struct ti_sci_reset_control { + u32 dev_id; + u32 reset_mask; + struct mutex lock; }; -struct ioctl_evtchn_notify { - unsigned int port; +struct vt_spawn_console { + spinlock_t lock; + struct pid *pid; + int sig; }; -struct ioctl_evtchn_restrict_domid { - domid_t domid; +struct kbd_struct { + unsigned char lockstate; + unsigned char slockstate; + unsigned char ledmode: 1; + unsigned char ledflagstate: 4; + char: 3; + unsigned char default_ledflagstate: 4; + unsigned char kbdmode: 3; + int: 1; + unsigned char modeflags: 5; }; -struct pc9450_dvs_config { - unsigned int run_reg; - unsigned int run_mask; - unsigned int standby_reg; - unsigned int standby_mask; -}; +typedef void k_handler_fn(struct vc_data *, unsigned char, char); -struct pca9450_regulator_desc { - struct regulator_desc desc; - const struct pc9450_dvs_config dvs; -}; +typedef void fn_handler_fn(struct vc_data *); -enum pca9450_chip_type { - PCA9450_TYPE_PCA9450A = 0, - PCA9450_TYPE_PCA9450BC = 1, - PCA9450_TYPE_AMOUNT = 2, +struct kbd_led_trigger { + struct led_trigger trigger; + unsigned int mask; }; -enum { - PCA9450_REG_DEV_ID = 0, - PCA9450_REG_INT1 = 1, - PCA9450_REG_INT1_MSK = 2, - PCA9450_REG_STATUS1 = 3, - PCA9450_REG_STATUS2 = 4, - PCA9450_REG_PWRON_STAT = 5, - PCA9450_REG_SWRST = 6, - PCA9450_REG_PWRCTRL = 7, - PCA9450_REG_RESET_CTRL = 8, - PCA9450_REG_CONFIG1 = 9, - PCA9450_REG_CONFIG2 = 10, - PCA9450_REG_BUCK123_DVS = 12, - PCA9450_REG_BUCK1OUT_LIMIT = 13, - PCA9450_REG_BUCK2OUT_LIMIT = 14, - PCA9450_REG_BUCK3OUT_LIMIT = 15, - PCA9450_REG_BUCK1CTRL = 16, - PCA9450_REG_BUCK1OUT_DVS0 = 17, - PCA9450_REG_BUCK1OUT_DVS1 = 18, - PCA9450_REG_BUCK2CTRL = 19, - PCA9450_REG_BUCK2OUT_DVS0 = 20, - PCA9450_REG_BUCK2OUT_DVS1 = 21, - PCA9450_REG_BUCK3CTRL = 22, - PCA9450_REG_BUCK3OUT_DVS0 = 23, - PCA9450_REG_BUCK3OUT_DVS1 = 24, - PCA9450_REG_BUCK4CTRL = 25, - PCA9450_REG_BUCK4OUT = 26, - PCA9450_REG_BUCK5CTRL = 27, - PCA9450_REG_BUCK5OUT = 28, - PCA9450_REG_BUCK6CTRL = 29, - PCA9450_REG_BUCK6OUT = 30, - PCA9450_REG_LDO_AD_CTRL = 32, - PCA9450_REG_LDO1CTRL = 33, - PCA9450_REG_LDO2CTRL = 34, - PCA9450_REG_LDO3CTRL = 35, - PCA9450_REG_LDO4CTRL = 36, - PCA9450_REG_LDO5CTRL_L = 37, - PCA9450_REG_LDO5CTRL_H = 38, - PCA9450_REG_LOADSW_CTRL = 42, - PCA9450_REG_VRFLT1_STS = 43, - PCA9450_REG_VRFLT2_STS = 44, - PCA9450_REG_VRFLT1_MASK = 45, - PCA9450_REG_VRFLT2_MASK = 46, - PCA9450_MAX_REGISTER = 47, +struct getset_keycode_data { + struct input_keymap_entry ke; + int error; }; -enum { - PCA9450_DVS_LEVEL_RUN = 0, - PCA9450_DVS_LEVEL_STANDBY = 1, - PCA9450_DVS_LEVEL_MAX = 2, +struct keyboard_notifier_param { + struct vc_data *vc; + int down; + int shift; + int ledstate; + unsigned int value; }; -struct pca9450 { - struct device *dev; - struct regmap *regmap; - struct gpio_desc *sd_vsel_gpio; - enum pca9450_chip_type type; - unsigned int rcnt; - int irq; +struct kbdiacr { + unsigned char diacr; + unsigned char base; + unsigned char result; }; -struct ldsem_waiter { - struct list_head list; - struct task_struct *task; +struct kbdiacrs { + unsigned int kb_cnt; + struct kbdiacr kbdiacr[256]; }; -struct pericom8250 { - void *virt; - unsigned int nr; - int line[0]; +struct kbdiacrsuc { + unsigned int kb_cnt; + struct kbdiacruc kbdiacruc[256]; }; -struct virtrng_info { - struct hwrng hwrng; - struct virtqueue *vq; - char name[25]; - int index; - bool hwrng_register_done; - bool hwrng_removed; - struct completion have_data; - unsigned int data_avail; - unsigned int data_idx; - u8 data[64]; +struct fsl8250_data { + int line; }; -struct arm_smmu_match_data { - enum arm_smmu_arch_version version; - enum arm_smmu_implementation model; +struct cdns_platform_data { + u32 quirks; }; -struct arm_smmu_master_cfg { - struct arm_smmu_device *smmu; - s16 smendx[0]; +struct cdns_uart { + struct uart_port *port; + struct clk *uartclk; + struct clk *pclk; + struct uart_driver *cdns_uart_driver; + unsigned int baud; + struct notifier_block clk_rate_change_nb; + u32 quirks; + bool cts_override; }; -struct mfd_of_node_entry { - struct list_head list; +struct optee_rng_private { struct device *dev; - struct device_node *np; + struct tee_context *ctx; + u32 session_id; + u32 data_rate; + struct tee_shm *entropy_shm_pool; + struct hwrng optee_rng; }; -struct match_ids_walk_data { - struct acpi_device_id *ids; - struct acpi_device *adev; +struct qcom_smmu_config; + +struct qcom_smmu_match_data { + const struct qcom_smmu_config *cfg; + const struct arm_smmu_impl *impl; + const struct arm_smmu_impl *adreno_impl; }; -enum { - SAS_DATAPRES_NO_DATA = 0, - SAS_DATAPRES_RESPONSE_DATA = 1, - SAS_DATAPRES_SENSE_DATA = 2, +struct qcom_smmu_config { + const u32 *reg_offset; }; -struct aqr107_hw_stat { - const char *name; - int reg; - int size; +struct qcom_smmu { + struct arm_smmu_device smmu; + const struct qcom_smmu_config *cfg; + bool bypass_quirk; + u8 bypass_cbndx; + u32 stall_enabled; }; -struct aqr107_priv { - u64 sgmii_stats[10]; +struct adreno_smmu_fault_info; + +struct adreno_smmu_priv { + const void *cookie; + const struct io_pgtable_cfg * (*get_ttbr1_cfg)(const void *); + int (*set_ttbr0_cfg)(const void *, const struct io_pgtable_cfg *); + void (*get_fault_info)(const void *, struct adreno_smmu_fault_info *); + void (*set_stall)(const void *, bool); + void (*resume_translation)(const void *, bool); }; -enum sgmii_speed { - SGMII_SPEED_10 = 0, - SGMII_SPEED_100 = 1, - SGMII_SPEED_1000 = 2, - SGMII_SPEED_2500 = 2, +struct adreno_smmu_fault_info { + u64 far; + u64 ttbr0; + u32 contextidr; + u32 fsr; + u32 fsynr0; + u32 fsynr1; + u32 cbfrsynra; }; -struct lynx_pcs { - struct phylink_pcs pcs; - struct mdio_device *mdio; +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 macb_config { - u32 caps; - unsigned int dma_burst_length; - int (*clk_init)(struct platform_device *, struct clk **, struct clk **, struct clk **, struct clk **, struct clk **); - int (*init)(struct platform_device *); - unsigned int max_tx_length; - int jumbo_max_len; - const struct macb_usrio_config *usrio; +enum { + BD718XX_INT_STBY_REQ = 0, + BD718XX_INT_ON_REQ = 1, + BD718XX_INT_WDOG = 2, + BD718XX_INT_PWRBTN = 3, + BD718XX_INT_PWRBTN_L = 4, + BD718XX_INT_PWRBTN_S = 5, + BD718XX_INT_SWRST = 6, }; -struct gem_statistic { - char stat_string[32]; - int offset; - u32 stat_bits; +enum task_disposition { + TASK_IS_DONE = 0, + TASK_IS_ABORTED = 1, + TASK_IS_AT_LU = 2, + TASK_IS_NOT_AT_LU = 3, + TASK_ABORT_FAILED = 4, }; -struct sifive_fu540_macb_mgmt { - void *reg; - unsigned long rate; - struct clk_hw hw; +enum ahci_qoriq_type { + AHCI_LS1021A = 0, + AHCI_LS1028A = 1, + AHCI_LS1043A = 2, + AHCI_LS2080A = 3, + AHCI_LS1046A = 4, + AHCI_LS1088A = 5, + AHCI_LS2088A = 6, + AHCI_LX2160A = 7, }; -struct macb_dma_desc_64 { - u32 addrh; - u32 resvd; +struct ccsr_ahci; + +struct ahci_qoriq_priv { + struct ccsr_ahci *reg_base; + enum ahci_qoriq_type type; + void *ecc_addr; + bool is_dmacoherent; }; -struct ethtool_rx_fs_item { - struct ethtool_rx_flow_spec fs; - struct list_head list; +enum dspi_trans_mode { + DSPI_XSPI_MODE = 0, + DSPI_DMA_MODE = 1, }; -struct macb_platform_data { - struct clk *pclk; - struct clk *hclk; +struct fsl_dspi_devtype_data { + enum dspi_trans_mode trans_mode; + u8 max_clock_factor; + int fifo_size; }; -struct igb_reg_info { - u32 ofs; - char *name; +enum { + LS1021A = 0, + LS1012A = 1, + LS1028A = 2, + LS1043A = 3, + LS1046A = 4, + LS2080A = 5, + LS2085A = 6, + LX2160A = 7, + MCF5441X = 8, + VF610 = 9, }; -enum e1000_ring_flags_t { - IGB_RING_FLAG_RX_3K_BUFFER = 0, - IGB_RING_FLAG_RX_BUILD_SKB_ENABLED = 1, - IGB_RING_FLAG_RX_SCTP_CSUM = 2, - IGB_RING_FLAG_RX_LB_VLAN_BSWAP = 3, - IGB_RING_FLAG_TX_CTX_IDX = 4, - IGB_RING_FLAG_TX_DETECT_HANG = 5, +struct chip_data___3; + +struct fsl_dspi_dma; + +struct fsl_dspi { + struct spi_controller *ctlr; + struct platform_device *pdev; + struct regmap *regmap; + struct regmap *regmap_pushr; + int irq; + struct clk *clk; + struct spi_transfer *cur_transfer; + struct spi_message *cur_msg; + struct chip_data___3 *cur_chip; + size_t progress; + size_t len; + const void *tx; + void *rx; + u16 tx_cmd; + const struct fsl_dspi_devtype_data *devtype_data; + struct completion xfer_done; + struct fsl_dspi_dma *dma; + int oper_word_size; + int oper_bits_per_word; + int words_in_flight; + int pushr_cmd; + int pushr_tx; + void (*host_to_dev)(struct fsl_dspi *, u32 *); + void (*dev_to_host)(struct fsl_dspi *, u32); }; -enum igb_tx_flags { - IGB_TX_FLAGS_VLAN = 1, - IGB_TX_FLAGS_TSO = 2, - IGB_TX_FLAGS_TSTAMP = 4, - IGB_TX_FLAGS_IPV4 = 16, - IGB_TX_FLAGS_CSUM = 32, +struct chip_data___3 { + u32 ctar_val; }; -enum tx_queue_prio { - TX_QUEUE_PRIO_HIGH = 0, - TX_QUEUE_PRIO_LOW = 1, +struct fsl_dspi_dma { + u32 *tx_dma_buf; + struct dma_chan *chan_tx; + dma_addr_t tx_dma_phys; + struct completion cmd_tx_complete; + struct dma_async_tx_descriptor *tx_desc; + u32 *rx_dma_buf; + struct dma_chan *chan_rx; + dma_addr_t rx_dma_phys; + struct completion cmd_rx_complete; + struct dma_async_tx_descriptor *rx_desc; }; -enum queue_mode { - QUEUE_MODE_STRICT_PRIORITY = 0, - QUEUE_MODE_STREAM_RESERVATION = 1, +struct fsl_dspi_platform_data { + u32 cs_num; + u32 bus_num; + u32 sck_cs_delay; + u32 cs_sck_delay; }; -struct e1000_fw_version { - u32 etrack_id; - u16 eep_major; - u16 eep_minor; - u16 eep_build; - u8 invm_major; - u8 invm_minor; - u8 invm_img_type; - bool or_valid; - u16 or_major; - u16 or_build; - u16 or_patch; +struct swmii_regs { + u16 bmsr; + u16 lpa; + u16 lpagb; + u16 estat; }; -typedef void (*set_params_cb)(struct dwc2_hsotg *); +enum { + SWMII_SPEED_10 = 0, + SWMII_SPEED_100 = 1, + SWMII_SPEED_1000 = 2, + SWMII_DUPLEX_HALF = 0, + SWMII_DUPLEX_FULL = 1, +}; -enum xhci_overhead_type { - LS_OVERHEAD_TYPE = 0, - FS_OVERHEAD_TYPE = 1, - HS_OVERHEAD_TYPE = 2, +struct fman_sp_int_context_data_copy { + u16 ext_buf_offset; + u8 int_context_offset; + u16 size; }; -struct amba_kmi_port { - struct serio *io; - struct clk *clk; - void *base; - unsigned int irq; - unsigned int divisor; - unsigned int open; +struct fman_sp_buf_margins { + u16 start_margins; + u16 end_margins; }; -struct omap_i2c_bus_platform_data { - u32 clkrate; - u32 rev; - u32 flags; - void (*set_mpu_wkup_lat)(struct device *, long); +struct fman_sp_buffer_offsets { + u32 data_offset; + u32 prs_result_offset; + u32 time_stamp_offset; + u32 hash_result_offset; }; -enum { - OMAP_I2C_REV_REG = 0, - OMAP_I2C_IE_REG = 1, - OMAP_I2C_STAT_REG = 2, - OMAP_I2C_IV_REG = 3, - OMAP_I2C_WE_REG = 4, - OMAP_I2C_SYSS_REG = 5, - OMAP_I2C_BUF_REG = 6, - OMAP_I2C_CNT_REG = 7, - OMAP_I2C_DATA_REG = 8, - OMAP_I2C_SYSC_REG = 9, - OMAP_I2C_CON_REG = 10, - OMAP_I2C_OA_REG = 11, - OMAP_I2C_SA_REG = 12, - OMAP_I2C_PSC_REG = 13, - OMAP_I2C_SCLL_REG = 14, - OMAP_I2C_SCLH_REG = 15, - OMAP_I2C_SYSTEST_REG = 16, - OMAP_I2C_BUFSTAT_REG = 17, - OMAP_I2C_IP_V2_REVNB_LO = 18, - OMAP_I2C_IP_V2_REVNB_HI = 19, - OMAP_I2C_IP_V2_IRQSTATUS_RAW = 20, - OMAP_I2C_IP_V2_IRQENABLE_SET = 21, - OMAP_I2C_IP_V2_IRQENABLE_CLR = 22, +struct fman_kg_scheme_regs { + u32 kgse_mode; + u32 kgse_ekfc; + u32 kgse_ekdv; + u32 kgse_bmch; + u32 kgse_bmcl; + u32 kgse_fqb; + u32 kgse_hc; + u32 kgse_ppc; + u32 kgse_gec[8]; + u32 kgse_spc; + u32 kgse_dv0; + u32 kgse_dv1; + u32 kgse_ccbs; + u32 kgse_mv; + u32 kgse_om; + u32 kgse_vsp; }; -struct omap_i2c_dev { - struct device *dev; - void *base; - int irq; - int reg_shift; - struct completion cmd_complete; - struct resource *ioarea; - u32 latency; - void (*set_mpu_wkup_lat)(struct device *, long); - u32 speed; - u32 flags; - u16 scheme; - u16 cmd_err; - u8 *buf; - u8 *regs; - size_t buf_len; - struct i2c_adapter adapter; - u8 threshold; - u8 fifo_size; - u32 rev; - unsigned int b_hw: 1; - unsigned int bb_valid: 1; - unsigned int receiver: 1; - u16 iestate; - u16 pscstate; - u16 scllstate; - u16 sclhstate; - u16 syscstate; - u16 westate; - u16 errata; +struct fman_kg_pe_regs { + u32 fmkg_pe_sp; + u32 fmkg_pe_cpp; }; -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; +struct fman_kg_regs { + u32 fmkg_gcr; + u32 res004; + u32 res008; + u32 fmkg_eer; + u32 fmkg_eeer; + u32 res014; + u32 res018; + u32 fmkg_seer; + u32 fmkg_seeer; + u32 fmkg_gsr; + u32 fmkg_tpc; + u32 fmkg_serc; + u32 res030[4]; + u32 fmkg_fdor; + u32 fmkg_gdv0r; + u32 fmkg_gdv1r; + u32 res04c[6]; + u32 fmkg_feer; + u32 res068[38]; + union { + u32 fmkg_indirect[63]; + struct fman_kg_scheme_regs fmkg_sch; + struct fman_kg_pe_regs fmkg_pe; + }; + u32 fmkg_ar; }; -enum power_supply_charge_behaviour { - POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0, - POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1, - POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2, +struct keygen_scheme { + bool used; + u8 hw_port_id; + u32 base_fqid; + u32 hash_fqid_count; + bool use_hashing; + bool symmetric_hash; + u8 hashShift; + u32 match_vector; }; -struct menu_device { - int needs_update; - int tick_wakeup; - u64 next_timer_ns; - unsigned int bucket; - unsigned int correction_factor[12]; - unsigned int intervals[8]; - int interval_ptr; +struct fman_keygen { + struct keygen_scheme schemes[32]; + struct fman_kg_regs *keygen_regs; }; -struct uniphier_sd_priv { - struct tmio_mmc_data tmio_data; - struct pinctrl *pinctrl; - struct pinctrl_state *pinstate_uhs; - struct clk *clk; - struct reset_control *rst; - struct reset_control *rst_br; - struct reset_control *rst_hw; - struct dma_chan *chan; - enum dma_data_direction dma_dir; - struct regmap *sdctrl_regmap; - u32 sdctrl_ch; - unsigned long clk_rate; - unsigned long caps; +enum fman_port_deq_type { + FMAN_PORT_DEQ_BY_PRI = 0, + FMAN_PORT_DEQ_ACTIVE_FQ = 1, + FMAN_PORT_DEQ_ACTIVE_FQ_NO_ICS = 2, }; -struct syscon_led { - struct led_classdev cdev; - struct regmap *map; - u32 offset; - u32 mask; - bool state; +enum fman_port_deq_prefetch { + FMAN_PORT_DEQ_NO_PREFETCH = 0, + FMAN_PORT_DEQ_PART_PREFETCH = 1, + FMAN_PORT_DEQ_FULL_PREFETCH = 2, }; -struct scmi_shared_mem { - __le32 reserved; - __le32 channel_status; - __le32 reserved1[2]; - __le32 flags; - __le32 length; - __le32 msg_header; - u8 msg_payload[0]; +enum fman_port_dma_swap { + FMAN_PORT_DMA_NO_SWAP = 0, + FMAN_PORT_DMA_SWAP_LE = 1, + FMAN_PORT_DMA_SWAP_BE = 2, }; -enum arch_timer_erratum_match_type { - ate_match_dt = 0, - ate_match_local_cap_id = 1, - ate_match_acpi_oem_info = 2, +enum fman_port_color { + FMAN_PORT_COLOR_GREEN = 0, + FMAN_PORT_COLOR_YELLOW = 1, + FMAN_PORT_COLOR_RED = 2, + FMAN_PORT_COLOR_OVERRIDE = 3, }; -struct arch_timer_erratum_workaround { - enum arch_timer_erratum_match_type match_type; - const void *id; - const char *desc; - u64 (*read_cntpct_el0)(); - u64 (*read_cntvct_el0)(); - int (*set_next_event_phys)(unsigned long, struct clock_event_device *); - int (*set_next_event_virt)(unsigned long, struct clock_event_device *); - bool disable_compat_vdso; +struct fman_port_rsrc { + u32 num; + u32 extra; }; -struct arch_timer_kvm_info { - struct timecounter timecounter; - int virtual_irq; - int physical_irq; +struct fman_port_rx_pools_params { + u8 num_of_pools; + u16 largest_buf_size; }; -struct ate_acpi_oem_info { - char oem_id[7]; - char oem_table_id[9]; - u32 oem_revision; +struct fman_port_dts_params { + void *base_addr; + enum fman_port_type type; + u16 speed; + u8 id; + u32 qman_channel_id; + struct fman *fman; }; -struct arch_timer { - void *base; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct clock_event_device evt; +union fman_port_bmi_regs; + +struct fman_port_qmi_regs; + +struct fman_port_hwp_regs; + +struct fman_port_cfg; + +struct fman_port { + void *fm; + struct device *dev; + struct fman_rev_info rev_info; + u8 port_id; + enum fman_port_type port_type; + u16 port_speed; + union fman_port_bmi_regs *bmi_regs; + struct fman_port_qmi_regs *qmi_regs; + struct fman_port_hwp_regs *hwp_regs; + struct fman_sp_buffer_offsets buffer_offsets; + u8 internal_buf_offset; + struct fman_ext_pools ext_buf_pools; + u16 max_frame_length; + struct fman_port_rsrc open_dmas; + struct fman_port_rsrc tasks; + struct fman_port_rsrc fifo_bufs; + struct fman_port_rx_pools_params rx_pools_params; + struct fman_port_cfg *cfg; + struct fman_port_dts_params dts_params; + u8 ext_pools_num; + u32 max_port_fifo_size; + u32 max_num_of_ext_pools; + u32 max_num_of_sub_portals; + u32 bm_max_num_of_pools; }; -enum arch_timer_reg { - ARCH_TIMER_REG_CTRL = 0, - ARCH_TIMER_REG_CVAL = 1, +struct fman_port_rx_bmi_regs { + u32 fmbm_rcfg; + u32 fmbm_rst; + u32 fmbm_rda; + u32 fmbm_rfp; + u32 fmbm_rfed; + u32 fmbm_ricp; + u32 fmbm_rim; + u32 fmbm_rebm; + u32 fmbm_rfne; + u32 fmbm_rfca; + u32 fmbm_rfpne; + u32 fmbm_rpso; + u32 fmbm_rpp; + u32 fmbm_rccb; + u32 fmbm_reth; + u32 reserved003c[1]; + u32 fmbm_rprai[8]; + u32 fmbm_rfqid; + u32 fmbm_refqid; + u32 fmbm_rfsdm; + u32 fmbm_rfsem; + u32 fmbm_rfene; + u32 reserved0074[2]; + u32 fmbm_rcmne; + u32 reserved0080[32]; + u32 fmbm_ebmpi[8]; + u32 fmbm_acnt[8]; + u32 reserved0130[8]; + u32 fmbm_rcgm[8]; + u32 fmbm_mpd; + u32 reserved0184[31]; + u32 fmbm_rstc; + u32 fmbm_rfrc; + u32 fmbm_rfbc; + u32 fmbm_rlfc; + u32 fmbm_rffc; + u32 fmbm_rfdc; + u32 fmbm_rfldec; + u32 fmbm_rodc; + u32 fmbm_rbdc; + u32 fmbm_rpec; + u32 reserved0224[22]; + u32 fmbm_rpc; + u32 fmbm_rpcp; + u32 fmbm_rccn; + u32 fmbm_rtuc; + u32 fmbm_rrquc; + u32 fmbm_rduc; + u32 fmbm_rfuc; + u32 fmbm_rpac; + u32 reserved02a0[24]; + u32 fmbm_rdcfg[3]; + u32 fmbm_rgpr; + u32 reserved0310[58]; }; -enum arch_timer_spi_nr { - ARCH_TIMER_PHYS_SPI = 0, - ARCH_TIMER_VIRT_SPI = 1, - ARCH_TIMER_MAX_TIMER_SPI = 2, +struct fman_port_tx_bmi_regs { + u32 fmbm_tcfg; + u32 fmbm_tst; + u32 fmbm_tda; + u32 fmbm_tfp; + u32 fmbm_tfed; + u32 fmbm_ticp; + u32 fmbm_tfdne; + u32 fmbm_tfca; + u32 fmbm_tcfqid; + u32 fmbm_tefqid; + u32 fmbm_tfene; + u32 fmbm_trlmts; + u32 fmbm_trlmt; + u32 reserved0034[14]; + u32 fmbm_tccb; + u32 fmbm_tfne; + u32 fmbm_tpfcm[2]; + u32 fmbm_tcmne; + u32 reserved0080[96]; + u32 fmbm_tstc; + u32 fmbm_tfrc; + u32 fmbm_tfdc; + u32 fmbm_tfledc; + u32 fmbm_tfufdc; + u32 fmbm_tbdc; + u32 reserved0218[26]; + u32 fmbm_tpc; + u32 fmbm_tpcp; + u32 fmbm_tccn; + u32 fmbm_ttuc; + u32 fmbm_ttcquc; + u32 fmbm_tduc; + u32 fmbm_tfuc; + u32 reserved029c[16]; + u32 fmbm_tdcfg[3]; + u32 fmbm_tgpr; + u32 reserved0310[58]; }; -typedef bool (*ate_match_fn_t)(const struct arch_timer_erratum_workaround *, const void *); +union fman_port_bmi_regs { + struct fman_port_rx_bmi_regs rx; + struct fman_port_tx_bmi_regs tx; +}; -typedef int (*cros_ec_xfer_fn_t)(struct cros_ec_device *, struct cros_ec_command *); +struct fman_port_qmi_regs { + u32 fmqm_pnc; + u32 fmqm_pns; + u32 fmqm_pnts; + u32 reserved00c[4]; + u32 fmqm_pnen; + u32 fmqm_pnetfc; + u32 reserved024[2]; + u32 fmqm_pndn; + u32 fmqm_pndc; + u32 fmqm_pndtfc; + u32 fmqm_pndfdc; + u32 fmqm_pndcc; +}; -struct cros_ec_xfer_work_params { - struct kthread_work work; - cros_ec_xfer_fn_t fn; - struct cros_ec_device *ec_dev; - struct cros_ec_command *ec_msg; - int ret; +struct fman_port_hwp_regs { + struct { + u32 ssa; + u32 lcv; + } pmda[16]; + u32 reserved080[222]; + u32 fmpr_pcac; }; -struct ec_host_response { - uint8_t struct_version; - uint8_t checksum; - uint16_t result; - uint16_t data_len; - uint16_t reserved; +struct fman_buf_pool_depletion { + bool pools_grp_mode_enable; + u8 num_of_pools; + bool pools_to_consider[64]; + bool single_pool_mode_enable; + bool pools_to_consider_for_single_mode[64]; }; -struct cros_ec_spi { - struct spi_device *spi; - s64 last_transfer_ns; - unsigned int start_of_msg_delay; - unsigned int end_of_msg_delay; - struct kthread_worker *high_pri_worker; +struct fman_port_cfg { + u32 dflt_fqid; + u32 err_fqid; + u32 pcd_base_fqid; + u32 pcd_fqs_count; + u8 deq_sp; + bool deq_high_priority; + enum fman_port_deq_type deq_type; + enum fman_port_deq_prefetch deq_prefetch_option; + u16 deq_byte_cnt; + u8 cheksum_last_bytes_ignore; + u8 rx_cut_end_bytes; + struct fman_buf_pool_depletion buf_pool_depletion; + struct fman_ext_pools ext_buf_pools; + u32 tx_fifo_min_level; + u32 tx_fifo_low_comf_level; + u32 rx_pri_elevation; + u32 rx_fifo_thr; + struct fman_sp_buf_margins buf_margins; + u32 int_buf_start_margin; + struct fman_sp_int_context_data_copy int_context; + u32 discard_mask; + u32 err_mask; + struct fman_buffer_prefix_content buffer_prefix_content; + bool dont_release_buf; + u8 rx_fd_bits; + u32 tx_fifo_deq_pipeline_depth; + bool errata_A006320; + bool excessive_threshold_register; + bool fmbm_tfne_has_features; + enum fman_port_dma_swap dma_swap_data; + enum fman_port_color color; }; -enum { - TCA_ROOT_UNSPEC = 0, - TCA_ROOT_TAB = 1, - TCA_ROOT_FLAGS = 2, - TCA_ROOT_COUNT = 3, - TCA_ROOT_TIME_DELTA = 4, - TCA_ROOT_EXT_WARN_MSG = 5, - __TCA_ROOT_MAX = 6, +struct fman_port_bpools { + u8 count; + bool counters_enable; + u8 grp_bp_depleted_num; + struct { + u8 bpid; + u16 size; + bool is_backup; + bool grp_bp_depleted; + bool single_bp_depleted; + } bpool[8]; }; -struct tc_act_pernet_id { - struct list_head list; - unsigned int id; +struct dpni_mask_cfg { + u8 mask; + u8 offset; }; -struct tcamsg { - unsigned char tca_family; - unsigned char tca__pad1; - unsigned short tca__pad2; +struct dpni_dist_extract { + u8 prot; + u8 efh_type; + u8 size; + u8 offset; + __le32 field; + u8 hdr_index; + u8 constant; + u8 num_of_repeats; + u8 num_of_byte_masks; + u8 extract_type; + u8 pad[3]; + struct dpni_mask_cfg masks[4]; }; -struct tc_action_net { - struct tcf_idrinfo *idrinfo; - const struct tc_action_ops *ops; +struct dpni_ext_set_rx_tc_dist { + u8 num_extracts; + u8 pad[7]; + struct dpni_dist_extract extracts[10]; }; -struct nf_queue_handler { - int (*outfn)(struct nf_queue_entry *, unsigned int); - void (*nf_hook_drop)(struct net *); +struct dpni_cmd_open { + __le32 dpni_id; }; -struct nf_bridge_info { - enum { - BRNF_PROTO_UNCHANGED = 0, - BRNF_PROTO_8021Q = 1, - BRNF_PROTO_PPPOE = 2, - } orig_proto: 8; - u8 pkt_otherhost: 1; - u8 in_prerouting: 1; - u8 bridged_dnat: 1; - u8 sabotage_in_done: 1; - __u16 frag_max_size; - struct net_device *physindev; - struct net_device *physoutdev; - union { - __be32 ipv4_daddr; - struct in6_addr ipv6_daddr; - char neigh_header[8]; - }; +struct dpni_cmd_pool { + __le16 dpbp_id; + u8 priority_mask; + u8 pad; }; -struct ip6_rt_info { - struct in6_addr daddr; - struct in6_addr saddr; - u_int32_t mark; +struct dpni_cmd_set_pools { + u8 num_dpbp; + u8 backup_pool_mask; + u8 pad; + u8 pool_options; + struct dpni_cmd_pool pool[8]; + __le16 buffer_size[8]; }; -struct igmphdr { - __u8 type; - __u8 code; - __sum16 csum; - __be32 group; +struct dpni_rsp_is_enabled { + u8 enabled; }; -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 dpni_cmd_set_irq_enable { + u8 enable; + u8 pad[3]; + u8 irq_index; }; -struct igmpv3_grec { - __u8 grec_type; - __u8 grec_auxwords; - __be16 grec_nsrcs; - __be32 grec_mca; - __be32 grec_src[0]; +struct dpni_cmd_get_irq_enable { + __le32 pad; + u8 irq_index; }; -struct igmpv3_report { - __u8 type; - __u8 resv1; - __sum16 csum; - __be16 resv2; - __be16 ngrec; - struct igmpv3_grec grec[0]; +struct dpni_rsp_get_irq_enable { + u8 enabled; }; -struct igmp_mc_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct in_device *in_dev; +struct dpni_cmd_set_irq_mask { + __le32 mask; + u8 irq_index; }; -struct igmp_mcf_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct in_device *idev; - struct ip_mc_list *im; +struct dpni_cmd_get_irq_mask { + __le32 pad; + u8 irq_index; }; -struct ip_mreq_source { - __be32 imr_multiaddr; - __be32 imr_interface; - __be32 imr_sourceaddr; +struct dpni_rsp_get_irq_mask { + __le32 mask; }; -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 dpni_cmd_get_irq_status { + __le32 status; + u8 irq_index; }; -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 dpni_rsp_get_irq_status { + __le32 status; }; -typedef struct rpc_xprt * (*xprt_switch_find_xprt_t)(struct rpc_xprt_switch *, const struct rpc_xprt *); - -struct sockaddr_xdp { - __u16 sxdp_family; - __u16 sxdp_flags; - __u32 sxdp_ifindex; - __u32 sxdp_queue_id; - __u32 sxdp_shared_umem_fd; +struct dpni_cmd_clear_irq_status { + __le32 status; + u8 irq_index; }; -struct xdp_ring_offset_v1 { - __u64 producer; - __u64 consumer; - __u64 desc; +struct dpni_rsp_get_attr { + __le32 options; + u8 num_queues; + u8 num_tcs; + u8 mac_filter_entries; + u8 pad0; + u8 vlan_filter_entries; + u8 pad1; + u8 qos_entries; + u8 pad2; + __le16 fs_entries; + __le16 pad3; + u8 qos_key_size; + u8 fs_key_size; + __le16 wriop_version; }; -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 dpni_cmd_set_errors_behavior { + __le32 errors; + u8 flags; }; -struct xdp_ring_offset { - __u64 producer; - __u64 consumer; - __u64 desc; - __u64 flags; +struct dpni_cmd_get_buffer_layout { + u8 qtype; }; -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 dpni_rsp_get_buffer_layout { + u8 pad0[6]; + u8 flags; + u8 pad1; + __le16 private_data_size; + __le16 data_align; + __le16 head_room; + __le16 tail_room; }; -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 dpni_cmd_set_buffer_layout { + u8 qtype; + u8 pad0[3]; + __le16 options; + u8 flags; + u8 pad1; + __le16 private_data_size; + __le16 data_align; + __le16 head_room; + __le16 tail_room; }; -struct xdp_options { - __u32 flags; +struct dpni_cmd_set_offload { + u8 pad[3]; + u8 dpni_offload; + __le32 config; }; -struct secondary_data { - struct task_struct *task; - long status; +struct dpni_cmd_get_offload { + u8 pad[3]; + u8 dpni_offload; }; -enum ipi_msg_type { - IPI_RESCHEDULE = 0, - IPI_CALL_FUNC = 1, - IPI_CPU_STOP = 2, - IPI_CPU_CRASH_STOP = 3, - IPI_TIMER = 4, - IPI_IRQ_WORK = 5, - IPI_WAKEUP = 6, - NR_IPI = 7, +struct dpni_rsp_get_offload { + __le32 pad; + __le32 config; }; -struct kvm_vfio_group { - struct list_head node; - struct file *file; +struct dpni_cmd_get_qdid { + u8 qtype; }; -struct kvm_vfio { - struct list_head group_list; - struct mutex lock; - bool noncoherent; +struct dpni_rsp_get_qdid { + __le16 qdid; }; -enum { - HP_THREAD_NONE = 0, - HP_THREAD_ACTIVE = 1, - HP_THREAD_PARKED = 2, +struct dpni_rsp_get_tx_data_offset { + __le16 data_offset; }; -struct smpboot_thread_data { - unsigned int cpu; - unsigned int status; - struct smp_hotplug_thread *ht; +struct dpni_cmd_link_cfg { + __le64 pad0; + __le32 rate; + __le32 pad1; + __le64 options; }; -struct pm_vt_switch { - struct list_head head; - struct device *dev; - bool required; +struct dpni_rsp_get_link_state { + __le32 pad0; + u8 flags; + u8 pad1[3]; + __le32 rate; + __le32 pad2; + __le64 options; }; -struct ipi_mux_cpu { - atomic_t enable; - atomic_t bits; +struct dpni_cmd_set_max_frame_length { + __le16 max_frame_length; }; -struct timer_list_iter { - int cpu; - bool second_pass; - u64 now; +struct dpni_rsp_get_max_frame_length { + __le16 max_frame_length; }; -struct compat_kexec_segment { - compat_uptr_t buf; - compat_size_t bufsz; - compat_ulong_t mem; - compat_size_t memsz; +struct dpni_cmd_set_multicast_promisc { + u8 enable; }; -enum { - TRACE_NOP_OPT_ACCEPT = 1, - TRACE_NOP_OPT_REFUSE = 2, +struct dpni_rsp_get_multicast_promisc { + u8 enabled; }; -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 dpni_cmd_set_unicast_promisc { + u8 enable; }; -struct bpf_bprintf_buffers { - char bin_args[512]; - char buf[1024]; +struct dpni_rsp_get_unicast_promisc { + u8 enabled; }; -enum { - BPF_F_TIMER_ABS = 1, +struct dpni_cmd_set_primary_mac_addr { + __le16 pad; + u8 mac_addr[6]; }; -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 *); +struct dpni_rsp_get_primary_mac_addr { + __le16 pad; + u8 mac_addr[6]; +}; -typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32); +struct dpni_rsp_get_port_mac_addr { + __le16 pad; + u8 mac_addr[6]; +}; -typedef u64 (*btf_bpf_get_smp_processor_id)(); +struct dpni_cmd_enable_vlan_filter { + u8 en; +}; -typedef u64 (*btf_bpf_get_numa_node_id)(); +struct dpni_cmd_vlan_id { + u8 flags; + u8 tc_id; + u8 flow_id; + u8 pad; + __le16 vlan_id; +}; -typedef u64 (*btf_bpf_ktime_get_ns)(); +struct dpni_cmd_add_mac_addr { + __le16 pad; + u8 mac_addr[6]; +}; -typedef u64 (*btf_bpf_ktime_get_boot_ns)(); +struct dpni_cmd_remove_mac_addr { + __le16 pad; + u8 mac_addr[6]; +}; -typedef u64 (*btf_bpf_ktime_get_coarse_ns)(); +struct dpni_cmd_clear_mac_filters { + u8 flags; +}; -typedef u64 (*btf_bpf_ktime_get_tai_ns)(); +struct dpni_cmd_set_rx_tc_dist { + __le16 dist_size; + u8 tc_id; + u8 flags; + __le16 pad0; + __le16 default_flow_id; + __le64 pad1[5]; + __le64 key_cfg_iova; +}; -typedef u64 (*btf_bpf_get_current_pid_tgid)(); +struct dpni_cmd_set_congestion_notification { + u8 qtype; + u8 tc; + u8 pad[6]; + __le32 dest_id; + __le16 notification_mode; + u8 dest_priority; + u8 type_units; + __le64 message_iova; + __le64 message_ctx; + __le32 threshold_entry; + __le32 threshold_exit; +}; -typedef u64 (*btf_bpf_get_current_uid_gid)(); +struct dpni_cmd_set_queue { + u8 qtype; + u8 tc; + u8 index; + u8 options; + __le32 pad0; + __le32 dest_id; + __le16 pad1; + u8 dest_prio; + u8 flags; + __le64 flc; + __le64 user_context; +}; -typedef u64 (*btf_bpf_get_current_comm)(char *, u32); +struct dpni_cmd_get_queue { + u8 qtype; + u8 tc; + u8 index; +}; -typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *); +struct dpni_rsp_get_queue { + __le64 pad0; + __le32 dest_id; + __le16 pad1; + u8 dest_prio; + u8 flags; + __le64 flc; + __le64 user_context; + __le32 fqid; + __le16 qdbin; +}; -typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *); +struct dpni_cmd_get_statistics { + u8 page_number; +}; -typedef u64 (*btf_bpf_jiffies64)(); +struct dpni_rsp_get_statistics { + __le64 counter[7]; +}; -typedef u64 (*btf_bpf_get_current_cgroup_id)(); +struct dpni_cmd_set_taildrop { + u8 congestion_point; + u8 qtype; + u8 tc; + u8 index; + __le32 pad0; + u8 enable; + u8 pad1; + u8 units; + u8 pad2; + __le32 threshold; +}; -typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int); +struct dpni_cmd_get_taildrop { + u8 congestion_point; + u8 qtype; + u8 tc; + u8 index; +}; -typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, long *); +struct dpni_rsp_get_taildrop { + __le64 pad0; + u8 enable; + u8 pad1; + u8 units; + u8 pad2; + __le32 threshold; +}; -typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, unsigned long *); +struct dpni_rsp_get_api_version { + __le16 major; + __le16 minor; +}; -typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *); +struct dpni_cmd_set_rx_fs_dist { + __le16 dist_size; + u8 enable; + u8 tc; + __le16 miss_flow_id; + __le16 pad; + __le64 key_cfg_iova; +}; -struct bpf_pidns_info; +struct dpni_cmd_set_rx_hash_dist { + __le16 dist_size; + u8 enable; + u8 tc; + __le32 pad; + __le64 key_cfg_iova; +}; -typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32); +struct dpni_cmd_add_fs_entry { + __le16 options; + u8 tc_id; + u8 key_size; + __le16 index; + __le16 flow_id; + __le64 key_iova; + __le64 mask_iova; + __le64 flc; +}; -struct bpf_pidns_info { - __u32 pid; - __u32 tgid; +struct dpni_cmd_remove_fs_entry { + __le16 pad0; + u8 tc_id; + u8 key_size; + __le32 pad1; + __le64 key_iova; + __le64 mask_iova; }; -typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64); +struct dpni_cmd_set_qos_table { + __le32 pad; + u8 default_tc; + u8 discard_on_miss; + __le16 pad1[21]; + __le64 key_cfg_iova; +}; -typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); +struct dpni_cmd_add_qos_entry { + __le16 pad; + u8 tc_id; + u8 key_size; + __le16 index; + __le16 pad1; + __le64 key_iova; + __le64 mask_iova; +}; -typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void __attribute__((btf_type_tag("user"))) *, struct task_struct *, u64); +struct dpni_cmd_remove_qos_entry { + u8 pad[3]; + u8 key_size; + __le32 pad1; + __le64 key_iova; + __le64 mask_iova; +}; -typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32); +struct dpni_cmd_set_tx_shaping { + __le16 tx_cr_max_burst_size; + __le16 tx_er_max_burst_size; + __le32 pad; + __le32 tx_cr_rate_limit; + __le32 tx_er_rate_limit; + u8 coupled; +}; -typedef u64 (*btf_bpf_this_cpu_ptr)(const void *); +struct dpni_rsp_single_step_cfg { + __le16 flags; + __le16 offset; + __le32 peer_delay; + __le32 ptp_onestep_reg_base; + __le32 pad0; +}; -typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32); +struct dpni_cmd_single_step_cfg { + __le16 flags; + __le16 offset; + __le32 peer_delay; + __le32 ptp_onestep_reg_base; + __le32 pad0; +}; -struct bpf_timer_kern; +struct dpni_dest_cfg { + enum dpni_dest dest_type; + int dest_id; + u8 priority; +}; -typedef u64 (*btf_bpf_timer_init)(struct bpf_timer_kern *, struct bpf_map *, u64); +struct dpni_congestion_notification_cfg { + enum dpni_congestion_unit units; + u32 threshold_entry; + u32 threshold_exit; + u64 message_ctx; + u64 message_iova; + struct dpni_dest_cfg dest_cfg; + u16 notification_mode; +}; -struct bpf_timer_kern { - struct bpf_hrtimer *timer; - struct bpf_spin_lock lock; +struct hclge_comm_rss_tc_mode_cmd { + __le16 rss_tc_mode[8]; + u8 rsv[8]; }; -typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *); +struct hclge_comm_rss_input_tuple_cmd { + u8 ipv4_tcp_en; + u8 ipv4_udp_en; + u8 ipv4_sctp_en; + u8 ipv4_fragment_en; + u8 ipv6_tcp_en; + u8 ipv6_udp_en; + u8 ipv6_sctp_en; + u8 ipv6_fragment_en; + u8 rsv[16]; +}; -typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64); +struct hclge_comm_rss_ind_tbl_cmd { + __le16 start_table_index; + __le16 rss_set_bitmap; + u8 rss_qid_h[4]; + u8 rss_qid_l[16]; +}; -typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *); +struct hclge_comm_rss_config_cmd { + u8 hash_config; + u8 rsv[7]; + u8 hash_key[16]; +}; -typedef u64 (*btf_bpf_kptr_xchg)(void *, void *); +enum GIS_BIT { + GIS_PTCF = 1, + GIS_PTMF = 4, + GIS_RESERVED = 64512, +}; -typedef u64 (*btf_bpf_dynptr_from_mem)(void *, u32, u64, struct bpf_dynptr_kern *); +enum GIC_BIT { + GIC_PTCE = 1, + GIC_PTME = 4, +}; -typedef u64 (*btf_bpf_dynptr_read)(void *, u32, const struct bpf_dynptr_kern *, u32, u64); +enum GIE_BIT { + GIE_PTCS = 1, + GIE_PTOS = 2, + GIE_PTMS0 = 4, + GIE_PTMS1 = 8, + GIE_PTMS2 = 16, + GIE_PTMS3 = 32, + GIE_PTMS4 = 64, + GIE_PTMS5 = 128, + GIE_PTMS6 = 256, + GIE_PTMS7 = 512, + GIE_ATCS0 = 65536, + GIE_ATCS1 = 131072, + GIE_ATCS2 = 262144, + GIE_ATCS3 = 524288, + GIE_ATCS4 = 1048576, + GIE_ATCS5 = 2097152, + GIE_ATCS6 = 4194304, + GIE_ATCS7 = 8388608, + GIE_ATCS8 = 16777216, + GIE_ATCS9 = 33554432, + GIE_ATCS10 = 67108864, + GIE_ATCS11 = 134217728, + GIE_ATCS12 = 268435456, + GIE_ATCS13 = 536870912, + GIE_ATCS14 = 1073741824, + GIE_ATCS15 = 2147483648, +}; -typedef u64 (*btf_bpf_dynptr_write)(const struct bpf_dynptr_kern *, u32, void *, u32, u64); +enum GID_BIT { + GID_PTCD = 1, + GID_PTOD = 2, + GID_PTMD0 = 4, + GID_PTMD1 = 8, + GID_PTMD2 = 16, + GID_PTMD3 = 32, + GID_PTMD4 = 64, + GID_PTMD5 = 128, + GID_PTMD6 = 256, + GID_PTMD7 = 512, + GID_ATCD0 = 65536, + GID_ATCD1 = 131072, + GID_ATCD2 = 262144, + GID_ATCD3 = 524288, + GID_ATCD4 = 1048576, + GID_ATCD5 = 2097152, + GID_ATCD6 = 4194304, + GID_ATCD7 = 8388608, + GID_ATCD8 = 16777216, + GID_ATCD9 = 33554432, + GID_ATCD10 = 67108864, + GID_ATCD11 = 134217728, + GID_ATCD12 = 268435456, + GID_ATCD13 = 536870912, + GID_ATCD14 = 1073741824, + GID_ATCD15 = 2147483648, +}; -typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32); +struct am65_cpsw_regdump_hdr { + u32 module_id; + u32 len; +}; -struct bpf_refcount { - int: 32; +struct am65_cpsw_regdump_item { + struct am65_cpsw_regdump_hdr hdr; + u32 start_ofs; + u32 end_ofs; }; -struct bpf_rb_node { - long: 64; - long: 64; - long: 64; +struct am65_cpsw_ethtool_stat { + char desc[32]; + int offset; }; -struct bpf_timer { - long: 64; - long: 64; +enum { + AM65_CPSW_REGDUMP_MOD_NUSS = 1, + AM65_CPSW_REGDUMP_MOD_RGMII_STATUS = 2, + AM65_CPSW_REGDUMP_MOD_MDIO = 3, + AM65_CPSW_REGDUMP_MOD_CPSW = 4, + AM65_CPSW_REGDUMP_MOD_CPSW_P0 = 5, + AM65_CPSW_REGDUMP_MOD_CPSW_P1 = 6, + AM65_CPSW_REGDUMP_MOD_CPSW_CPTS = 7, + AM65_CPSW_REGDUMP_MOD_CPSW_ALE = 8, + AM65_CPSW_REGDUMP_MOD_CPSW_ALE_TBL = 9, + AM65_CPSW_REGDUMP_MOD_LAST = 10, }; -struct bpf_dynptr { - long: 64; - long: 64; +struct dwc3_haps { + struct platform_device *dwc3; + struct pci_dev *pci; }; -struct bpf_list_node { - long: 64; - long: 64; +struct ignore_entry { + u16 vid; + u16 pid; + u16 bcdmin; + u16 bcdmax; }; -struct bpf_list_head { - long: 64; - long: 64; +struct sunxi_musb_cfg { + const struct musb_hdrc_config *hdrc_config; + bool has_sram; + bool has_reset; + bool no_configdata; }; -struct bpf_rb_root { - long: 64; - long: 64; +struct sunxi_glue { + struct device *dev; + struct musb *musb; + struct platform_device *musb_pdev; + struct clk *clk; + struct reset_control *rst; + struct phy *phy; + struct platform_device *usb_phy; + struct usb_phy *xceiv; + enum phy_mode phy_mode; + unsigned long flags; + struct work_struct work; + struct extcon_dev *extcon; + struct notifier_block host_nb; }; -struct memory_dev_type; +struct udc_ep_regs; -struct node_memory_type_map { - struct memory_dev_type *memtype; - int map_count; -}; +struct udc_stp_dma; -struct memory_dev_type { - struct list_head tier_sibiling; - int adistance; - nodemask_t nodes; - struct kref kref; -}; +struct udc_data_dma; -struct demotion_nodes { - nodemask_t preferred; -}; +struct udc_request; -struct linux_dirent { - unsigned long d_ino; - unsigned long d_off; - unsigned short d_reclen; - char d_name[0]; -}; +struct udc; -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 udc_ep { + struct usb_ep ep; + struct udc_ep_regs *regs; + u32 *txfifo; + u32 *dma; + dma_addr_t td_phys; + dma_addr_t td_stp_dma; + struct udc_stp_dma *td_stp; + struct udc_data_dma *td; + struct udc_request *req; + unsigned int req_used; + unsigned int req_completed; + struct udc_request *bna_dummy_req; + unsigned int bna_occurred; + unsigned int naking; + struct udc *dev; + struct list_head queue; + unsigned int halted; + unsigned int cancel_transfer; + unsigned int num: 5; + unsigned int fifo_depth: 14; + unsigned int in: 1; }; -struct linux_dirent64 { - u64 d_ino; - s64 d_off; - unsigned short d_reclen; - unsigned char d_type; - char d_name[0]; +struct extcon_specific_cable_nb { + struct notifier_block *user_nb; + int cable_index; + struct extcon_dev *edev; + unsigned long previous_value; }; -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 udc_csrs; -struct compat_old_linux_dirent { - compat_ulong_t d_ino; - compat_ulong_t d_offset; - unsigned short d_namlen; - char d_name[0]; -}; +struct udc_regs; -struct compat_readdir_callback { - struct dir_context ctx; - struct compat_old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent; - int result; +struct udc { + struct usb_gadget gadget; + spinlock_t lock; + struct udc_ep ep[32]; + struct usb_gadget_driver *driver; + unsigned int stall_ep0in: 1; + unsigned int waiting_zlp_ack_ep0in: 1; + unsigned int set_cfg_not_acked: 1; + unsigned int data_ep_enabled: 1; + unsigned int data_ep_queued: 1; + unsigned int sys_suspended: 1; + unsigned int connected; + u16 chiprev; + struct pci_dev *pdev; + struct udc_csrs *csr; + struct udc_regs *regs; + struct udc_ep_regs *ep_regs; + u32 *rxfifo; + u32 *txfifo; + struct dma_pool *data_requests; + struct dma_pool *stp_requests; + unsigned long phys_addr; + void *virt_addr; + unsigned int irq; + u16 cur_config; + u16 cur_intf; + u16 cur_alt; + struct device *dev; + struct phy *udc_phy; + struct extcon_dev *edev; + struct extcon_specific_cable_nb extcon_nb; + struct notifier_block nb; + struct delayed_work drd_work; + u32 conn_type; }; -struct compat_linux_dirent { - compat_ulong_t d_ino; - compat_ulong_t d_off; - unsigned short d_reclen; - char d_name[0]; +struct udc_ep_regs { + u32 ctl; + u32 sts; + u32 bufin_framenum; + u32 bufout_maxpkt; + u32 subptr; + u32 desptr; + u32 reserved; + u32 confirm; }; -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 udc_stp_dma { + u32 status; + u32 _reserved; + u32 data12; + u32 data34; }; -struct proc_fs_opts { - int flag; - const char *str; +struct udc_data_dma { + u32 status; + u32 _reserved; + u32 bufptr; + u32 next; }; -struct gnu_property { - u32 pr_type; - u32 pr_datasz; +struct udc_request { + struct usb_request req; + unsigned int dma_going: 1; + unsigned int dma_done: 1; + dma_addr_t td_phys; + struct udc_data_dma *td_data; + struct udc_data_dma *td_data_last; + struct list_head queue; + unsigned int chain_len; }; -struct memelfnote { - const char *name; - int type; - unsigned int datasz; - void *data; +struct udc_csrs { + u32 sca; + u32 ne[9]; }; -struct elf_thread_core_info; - -struct elf_note_info { - struct elf_thread_core_info *thread; - struct memelfnote psinfo; - struct memelfnote signote; - struct memelfnote auxv; - struct memelfnote files; - siginfo_t csigdata; - size_t size; - int thread_notes; +struct udc_regs { + u32 cfg; + u32 ctl; + u32 sts; + u32 irqsts; + u32 irqmsk; + u32 ep_irqsts; + u32 ep_irqmsk; }; -struct elf_thread_core_info { - struct elf_thread_core_info *next; - struct task_struct *task; - struct elf_prstatus prstatus; - struct memelfnote notes[0]; +struct tegra_rtc_info { + struct platform_device *pdev; + struct rtc_device *rtc; + void *base; + struct clk *clk; + int irq; + spinlock_t lock; }; -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 meson_i2c; -struct ext4_system_zone { - struct rb_node node; - ext4_fsblk_t start_blk; - unsigned int count; - u32 ino; +struct meson_i2c_data { + void (*set_clk_div)(struct meson_i2c *, unsigned int); }; -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 meson_i2c { + struct i2c_adapter adap; + struct device *dev; + void *regs; + struct clk *clk; + struct i2c_msg *msg; + int state; + bool last; + int count; + int pos; + int error; + spinlock_t lock; + struct completion done; + u32 tokens[2]; + int num_tokens; + const struct meson_i2c_data *data; }; -struct idmap_msg { - __u8 im_type; - __u8 im_conv; - char im_name[128]; - __u32 im_id; - __u8 im_status; +enum { + STATE_IDLE___4 = 0, + STATE_READ___3 = 1, + STATE_WRITE___3 = 2, }; -struct idmap_legacy_upcalldata { - struct rpc_pipe_msg pipe_msg; - struct idmap_msg idmap_msg; - struct key *authkey; - struct idmap *idmap; +enum { + TOKEN_END = 0, + TOKEN_START = 1, + TOKEN_SLAVE_ADDR_WRITE = 2, + TOKEN_SLAVE_ADDR_READ = 3, + TOKEN_DATA = 4, + TOKEN_DATA_LAST = 5, + TOKEN_STOP = 6, }; -enum { - Opt_find_uid = 0, - Opt_find_gid = 1, - Opt_find_user = 2, - Opt_find_group = 3, - Opt_find_err = 4, +struct pps_kinfo { + __u32 assert_sequence; + __u32 clear_sequence; + struct pps_ktime assert_tu; + struct pps_ktime clear_tu; + int current_mode; }; -enum prep_dispatch { - PREP_DISPATCH_OK = 0, - PREP_DISPATCH_NO_TAG = 1, - PREP_DISPATCH_NO_BUDGET = 2, +struct pps_fdata { + struct pps_kinfo info; + struct pps_ktime timeout; }; -struct blk_mq_qe_pair { - struct list_head node; - struct request_queue *q; - struct elevator_type *type; +struct pps_bind_args { + int tsformat; + int edge; + int consumer; }; -struct flush_busy_ctx_data { - struct blk_mq_hw_ctx *hctx; - struct list_head *list; +struct pps_ktime_compat { + __s64 sec; + __s32 nsec; + __u32 flags; }; -struct dispatch_rq_data { - struct blk_mq_hw_ctx *hctx; - struct request *rq; +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)); + +struct reset_reg_mask { + u32 rst_src_en_mask; + u32 sw_mstr_rst_mask; }; -struct blk_expired_data { - bool has_timedout_rq; - unsigned long next; - unsigned long timeout_start; +typedef void (*btf_trace_watchdog_start)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_watchdog_ping)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_watchdog_stop)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_watchdog_set_timeout)(void *, struct watchdog_device *, unsigned int, int); + +struct trace_event_raw_watchdog_template { + struct trace_entry ent; + int id; + int err; + char __data[0]; }; -struct rq_iter_data { - struct blk_mq_hw_ctx *hctx; - bool has_rq; +struct trace_event_raw_watchdog_set_timeout { + struct trace_entry ent; + int id; + unsigned int timeout; + int err; + char __data[0]; }; -struct mq_inflight { - struct block_device *part; - unsigned int inflight[2]; +struct trace_event_data_offsets_watchdog_template {}; + +struct trace_event_data_offsets_watchdog_set_timeout {}; + +struct tegra_cpufreq_ops; + +struct tegra_cpufreq_soc { + struct tegra_cpufreq_ops *ops; + int maxcpus_per_cluster; + unsigned int num_clusters; + phys_addr_t actmon_cntr_base; + u32 refclk_delta_min; }; -struct blk_rq_wait { - struct completion done; - blk_status_t ret; +struct tegra_cpu_ctr; + +struct tegra_cpufreq_ops { + void (*read_counters)(struct tegra_cpu_ctr *); + void (*set_cpu_ndiv)(struct cpufreq_policy *, u64); + void (*get_cpu_cluster_id)(u32, u32 *, u32 *); + int (*get_cpu_ndiv)(u32, u32, u32, u64 *); }; -struct genradix_node { - union { - struct genradix_node *children[512]; - u8 data[4096]; - }; +struct tegra_cpu_ctr { + u32 cpu; + u32 coreclk_cnt; + u32 last_coreclk_cnt; + u32 refclk_cnt; + u32 last_refclk_cnt; }; -struct genradix_iter { - size_t offset; - size_t pos; +struct read_counters_work { + struct work_struct work; + struct tegra_cpu_ctr c; }; -enum packing_op { - PACK = 0, - UNPACK = 1, +struct mrq_cpu_ndiv_limits_response { + uint32_t ref_clk_hz; + uint16_t pdiv; + uint16_t mdiv; + uint16_t ndiv_max; + uint16_t ndiv_min; }; -struct bcm2836_arm_irqchip_intc { - struct irq_domain *domain; - void *base; +struct mrq_cpu_ndiv_limits_request { + uint32_t cluster_id; }; -struct irqsteer_data { +struct tegra_cpu_data; + +struct tegra194_cpufreq_data { void *regs; - struct clk *ipg_clk; - int irq[8]; - int irq_count; - raw_spinlock_t lock; - int reg_num; - int channel; - struct irq_domain *domain; - u32 *saved_reg; + struct cpufreq_frequency_table **bpmp_luts; + const struct tegra_cpufreq_soc *soc; + bool icc_dram_bw_scaling; + struct tegra_cpu_data *cpu_data; }; -struct phy_meson_gxl_usb2_priv { - struct regmap *regmap; - enum phy_mode mode; - int is_enabled; - struct clk *clk; - struct reset_control *reset; +struct tegra_cpu_data { + u32 cpuid; + u32 clusterid; + void *freq_core_reg; }; -struct exynos5_usbdrd_phy_config; +struct mmci_platform_data { + unsigned int ocr_mask; + unsigned int (*status)(struct device *); +}; -struct exynos5_usbdrd_phy_drvdata { - const struct exynos5_usbdrd_phy_config *phy_cfg; - u32 pmu_offset_usbdrd0_phy; - u32 pmu_offset_usbdrd1_phy; - bool has_common_clk_gate; +struct mmci_dmae_next { + struct dma_async_tx_descriptor *desc; + struct dma_chan *chan; }; -struct phy_usb_instance; +struct mmci_dmae_priv { + struct dma_chan *cur; + struct dma_chan *rx_channel; + struct dma_chan *tx_channel; + struct dma_async_tx_descriptor *desc_current; + struct mmci_dmae_next next_data; +}; -struct exynos5_usbdrd_phy; +enum scmi_base_protocol_cmd { + BASE_DISCOVER_VENDOR = 3, + BASE_DISCOVER_SUB_VENDOR = 4, + BASE_DISCOVER_IMPLEMENT_VERSION = 5, + BASE_DISCOVER_LIST_PROTOCOLS = 6, + BASE_DISCOVER_AGENT = 7, + BASE_NOTIFY_ERRORS = 8, + BASE_SET_DEVICE_PERMISSIONS = 9, + BASE_SET_PROTOCOL_PERMISSIONS = 10, + BASE_RESET_AGENT_CONFIGURATION = 11, +}; -struct exynos5_usbdrd_phy_config { - u32 id; - void (*phy_isol)(struct phy_usb_instance *, u32); - void (*phy_init)(struct exynos5_usbdrd_phy *); - unsigned int (*set_refclk)(struct phy_usb_instance *); +struct scmi_msg_resp_base_attributes { + u8 num_protocols; + u8 num_agents; + __le16 reserved; }; -struct phy_usb_instance { - struct phy *phy; - u32 index; - struct regmap *reg_pmu; - u32 pmu_offset; - const struct exynos5_usbdrd_phy_config *phy_cfg; +struct scmi_msg_resp_base_discover_agent { + __le32 agent_id; + u8 name[16]; }; -struct exynos5_usbdrd_phy { - struct device *dev; - void *reg_phy; - struct clk *clk; - struct clk *pipeclk; - struct clk *utmiclk; - struct clk *itpclk; - const struct exynos5_usbdrd_phy_drvdata *drv_data; - struct phy_usb_instance phys[2]; - u32 extrefclk; - struct clk *ref_clk; - struct regulator *vbus; - struct regulator *vbus_boost; +struct scmi_msg_base_error_notify { + __le32 event_control; }; -enum exynos5_usbdrd_phy_id { - EXYNOS5_DRDPHY_UTMI = 0, - EXYNOS5_DRDPHY_PIPE3 = 1, - EXYNOS5_DRDPHYS_NUM = 2, +struct scmi_base_error_notify_payld { + __le32 agent_id; + __le32 error_status; + __le64 msg_reports[1024]; }; -struct mtk_pinctrl___2 { - struct regmap *regmap1; - struct regmap *regmap2; - struct pinctrl_desc pctl_desc; - struct device *dev; - struct gpio_chip *chip; - struct mtk_pinctrl_group *groups; - unsigned int ngroups; - const char **grp_names; - struct pinctrl_dev *pctl_dev; - const struct mtk_pinctrl_devdata *devdata; - struct mtk_eint *eint; +struct scmi_base_error_report { + ktime_t timestamp; + unsigned int agent_id; + bool fatal; + unsigned int cmd_count; + unsigned long long reports[0]; }; -struct scu_gpio_priv { - struct gpio_chip chip; - struct mutex lock; - struct device *dev; - struct imx_sc_ipc *handle; +enum scmi_reset_protocol_cmd { + RESET_DOMAIN_ATTRIBUTES = 3, + RESET = 4, + RESET_NOTIFY = 5, + RESET_DOMAIN_NAME_GET = 6, }; -struct pci_bus_resource { - struct list_head list; - struct resource *res; - unsigned int flags; +struct reset_dom_info; + +struct scmi_reset_info { + u32 version; + int num_domains; + struct reset_dom_info *dom_info; }; -struct qcom_pcie_ops; +struct reset_dom_info { + bool async_reset; + bool reset_notify; + u32 latency_us; + char name[64]; +}; -struct qcom_pcie_cfg { - const struct qcom_pcie_ops *ops; +struct scmi_msg_resp_reset_domain_attributes { + __le32 attributes; + __le32 latency; + u8 name[16]; }; -struct qcom_pcie; +struct scmi_msg_reset_domain_reset { + __le32 domain_id; + __le32 flags; + __le32 reset_state; +}; -struct qcom_pcie_ops { - int (*get_resources)(struct qcom_pcie *); - int (*init)(struct qcom_pcie *); - int (*post_init)(struct qcom_pcie *); - void (*deinit)(struct qcom_pcie *); - void (*ltssm_enable)(struct qcom_pcie *); - int (*config_sid)(struct qcom_pcie *); +struct scmi_msg_reset_notify { + __le32 id; + __le32 event_control; }; -struct qcom_pcie_resources_1_0_0 { - struct clk_bulk_data clks[4]; - struct reset_control *core; - struct regulator *vdda; +struct scmi_reset_issued_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 reset_state; }; -struct qcom_pcie_resources_2_1_0 { - struct clk_bulk_data clks[5]; - struct reset_control_bulk_data resets[6]; - int num_resets; - struct regulator_bulk_data supplies[3]; +struct scmi_reset_issued_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int reset_state; }; -struct qcom_pcie_resources_2_3_2 { - struct clk_bulk_data clks[4]; - struct regulator_bulk_data supplies[2]; +struct tee_bnxt_fw_private { + struct device *dev; + struct tee_context *ctx; + u32 session_id; + struct tee_shm *fw_shm_pool; }; -struct qcom_pcie_resources_2_3_3 { - struct clk_bulk_data clks[5]; - struct reset_control_bulk_data rst[7]; +enum ta_cmd { + TA_CMD_BNXT_FASTBOOT = 0, + TA_CMD_BNXT_COPY_COREDUMP = 3, }; -struct qcom_pcie_resources_2_4_0 { - struct clk_bulk_data clks[4]; - int num_clks; - struct reset_control_bulk_data resets[12]; - int num_resets; +struct efifb_dmi_info { + char *optname; + unsigned long base; + int stride; + int width; + int height; + int flags; }; -struct qcom_pcie_resources_2_7_0 { - struct clk_bulk_data clks[15]; - int num_clks; - struct regulator_bulk_data supplies[2]; - struct reset_control *rst; +enum { + M_I17 = 0, + M_I20 = 1, + M_I20_SR = 2, + M_I24 = 3, + M_I24_8_1 = 4, + M_I24_10_1 = 5, + M_I27_11_1 = 6, + M_MINI = 7, + M_MINI_3_1 = 8, + M_MINI_4_1 = 9, + M_MB = 10, + M_MB_2 = 11, + M_MB_3 = 12, + M_MB_5_1 = 13, + M_MB_6_1 = 14, + M_MB_7_1 = 15, + M_MB_SR = 16, + M_MBA = 17, + M_MBA_3 = 18, + M_MBP = 19, + M_MBP_2 = 20, + M_MBP_2_2 = 21, + M_MBP_SR = 22, + M_MBP_4 = 23, + M_MBP_5_1 = 24, + M_MBP_5_2 = 25, + M_MBP_5_3 = 26, + M_MBP_6_1 = 27, + M_MBP_6_2 = 28, + M_MBP_7_1 = 29, + M_MBP_8_2 = 30, + M_UNKNOWN = 31, }; -struct qcom_pcie_resources_2_9_0 { - struct clk_bulk_data clks[5]; - struct reset_control *rst; +enum { + OVERRIDE_NONE = 0, + OVERRIDE_BASE = 1, + OVERRIDE_STRIDE = 2, + OVERRIDE_HEIGHT = 4, + OVERRIDE_WIDTH = 8, }; -union qcom_pcie_resources { - struct qcom_pcie_resources_1_0_0 v1_0_0; - struct qcom_pcie_resources_2_1_0 v2_1_0; - struct qcom_pcie_resources_2_3_2 v2_3_2; - struct qcom_pcie_resources_2_3_3 v2_3_3; - struct qcom_pcie_resources_2_4_0 v2_4_0; - struct qcom_pcie_resources_2_7_0 v2_7_0; - struct qcom_pcie_resources_2_9_0 v2_9_0; +struct hid_control_fifo { + unsigned char dir; + struct hid_report *report; + char *raw_report; }; -struct qcom_pcie { - struct dw_pcie *pci; - void *parf; - void *elbi; - void *mhi; - union qcom_pcie_resources res; - struct phy *phy; - struct gpio_desc *reset; - struct icc_path *icc_mem; - const struct qcom_pcie_cfg *cfg; - struct dentry *debugfs; - bool suspended; +struct hid_output_fifo { + struct hid_report *report; + char *raw_report; }; -struct find_child_walk_data { - struct acpi_device *adev; - u64 address; - int score; - bool check_sta; - bool check_children; +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; }; -typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *); +struct hid_class_descriptor { + __u8 bDescriptorType; + __le16 wDescriptorLength; +} __attribute__((packed)); -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 hid_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdHID; + __u8 bCountryCode; + __u8 bNumDescriptors; + struct hid_class_descriptor desc[1]; +} __attribute__((packed)); + +struct qcom_apcs_ipc_data { + int offset; + char *clk_name; }; -struct mtk_clk_gate { - struct clk_hw hw; +struct qcom_apcs_ipc { + struct mbox_controller mbox; + struct mbox_chan mbox_chans[32]; struct regmap *regmap; - int set_ofs; - int clr_ofs; - int sta_ofs; - u8 bit; + unsigned long offset; + struct platform_device *clk; }; -struct clk_regmap_gate_data { - unsigned int offset; - u8 bit_idx; - u8 flags; -}; +typedef void (*btf_trace_devfreq_frequency)(void *, struct devfreq *, unsigned long, unsigned long); -struct clk_regmap_div_data { - unsigned int offset; - u8 shift; - u8 width; - u8 flags; - const struct clk_div_table *table; -}; +typedef void (*btf_trace_devfreq_monitor)(void *, struct devfreq *); -struct clk_regmap_mux_data { - unsigned int offset; - u32 *table; - u32 mask; - u8 shift; - u8 flags; +enum devfreq_parent_dev_type { + DEVFREQ_PARENT_DEV = 0, + CPUFREQ_PARENT_DEV = 1, }; -struct exynos_clkout_variant { - u32 mux_mask; +struct trace_event_raw_devfreq_frequency { + struct trace_entry ent; + u32 __data_loc_dev_name; + unsigned long freq; + unsigned long prev_freq; + unsigned long busy_time; + unsigned long total_time; + char __data[0]; }; -struct exynos_clkout { - struct clk_gate gate; - struct clk_mux mux; - spinlock_t slock; - void *reg; - struct device_node *np; - u32 pmu_debug_save; - struct clk_hw_onecell_data data; +struct trace_event_raw_devfreq_monitor { + struct trace_entry ent; + unsigned long freq; + unsigned long busy_time; + unsigned long total_time; + unsigned int polling_ms; + u32 __data_loc_dev_name; + char __data[0]; }; -enum tegra_super_gen { - gen4 = 4, - gen5 = 5, +struct trace_event_data_offsets_devfreq_frequency { + u32 dev_name; }; -struct tegra_super_gen_info { - enum tegra_super_gen gen; - const char **sclk_parents; - const char **cclk_g_parents; - const char **cclk_lp_parents; - int num_sclk_parents; - int num_cclk_g_parents; - int num_cclk_lp_parents; +struct trace_event_data_offsets_devfreq_monitor { + u32 dev_name; }; -struct vexpress_osc { - struct regmap *reg; - struct clk_hw hw; - unsigned long rate_min; - unsigned long rate_max; +struct devfreq_freqs { + unsigned long old; + unsigned long new; }; -struct k3_udma_glue_common { - struct device *dev; - struct device chan_dev; - struct udma_dev *udmax; - const struct udma_tisci_rm *tisci_rm; - struct k3_ringacc *ringacc; - u32 src_thread; - u32 dst_thread; - u32 hdesc_size; - bool epib; - u32 psdata_size; - u32 swdata_size; - u32 atype_asel; - struct psil_endpoint_config *ep_config; +struct devfreq_notifier_devres { + struct devfreq *devfreq; + struct notifier_block *nb; + unsigned int list; }; -struct k3_udma_glue_tx_channel { - struct k3_udma_glue_common common; - struct udma_tchan *udma_tchanx; - int udma_tchan_id; - struct k3_ring *ringtx; - struct k3_ring *ringtxcq; - bool psil_paired; - int virq; - atomic_t free_pkts; - bool tx_pause_on_err; - bool tx_filt_einfo; - bool tx_filt_pswords; - bool tx_supr_tdpkt; - int udma_tflow_id; +struct devfreq_passive_data { + struct devfreq *parent; + int (*get_target_freq)(struct devfreq *, unsigned long *); + enum devfreq_parent_dev_type parent_type; + struct devfreq *this; + struct notifier_block nb; + struct list_head cpu_data_list; }; -struct k3_udma_glue_rx_flow; +typedef void (*btf_trace_mc_event)(void *, const unsigned int, const char *, const char *, const int, const u8, const s8, const s8, const s8, unsigned long, const u8, unsigned long, const char *); -struct k3_udma_glue_rx_channel { - struct k3_udma_glue_common common; - struct udma_rchan *udma_rchanx; - int udma_rchan_id; - bool remote; - bool psil_paired; - u32 swdata_size; - int flow_id_base; - struct k3_udma_glue_rx_flow *flows; - u32 flow_num; - u32 flows_ready; -}; +typedef void (*btf_trace_arm_event)(void *, const struct cper_sec_proc_arm *); -struct k3_udma_glue_rx_flow { - struct udma_rflow *udma_rflow; - int udma_rflow_id; - struct k3_ring *ringrx; - struct k3_ring *ringrxfdq; - int virq; -}; +typedef void (*btf_trace_non_standard_event)(void *, const guid_t *, const guid_t *, const char *, const u8, const u8 *, const u32); -struct k3_udma_glue_rx_flow_cfg; +typedef void (*btf_trace_aer_event)(void *, const char *, const u32, const u8, const u8, struct aer_header_log_regs *); -struct k3_udma_glue_rx_channel_cfg { - u32 swdata_size; - int flow_id_base; - int flow_id_num; - bool flow_id_use_rxchan_id; - bool remote; - struct k3_udma_glue_rx_flow_cfg *def_flow_cfg; -}; +typedef void (*btf_trace_memory_failure_event)(void *, unsigned long, int, int); -struct k3_udma_glue_rx_flow_cfg { - struct k3_ring_cfg rx_cfg; - struct k3_ring_cfg rxfdq_cfg; - int ring_rxq_id; - int ring_rxfdq0_id; - bool rx_error_handling; - int src_tag_lo_sel; +struct trace_event_raw_mc_event { + struct trace_entry ent; + unsigned int error_type; + u32 __data_loc_msg; + u32 __data_loc_label; + u16 error_count; + u8 mc_index; + s8 top_layer; + s8 middle_layer; + s8 lower_layer; + long address; + u8 grain_bits; + long syndrome; + u32 __data_loc_driver_detail; + char __data[0]; }; -struct k3_udma_glue_tx_channel_cfg { - struct k3_ring_cfg tx_cfg; - struct k3_ring_cfg txcq_cfg; - bool tx_pause_on_err; - bool tx_filt_einfo; - bool tx_filt_pswords; - bool tx_supr_tdpkt; - u32 swdata_size; +struct trace_event_raw_arm_event { + struct trace_entry ent; + u64 mpidr; + u64 midr; + u32 running_state; + u32 psci_state; + u8 affinity; + char __data[0]; }; -enum pmic_type { - PMIC_MT6323 = 0, - PMIC_MT6331 = 1, - PMIC_MT6332 = 2, - PMIC_MT6351 = 3, - PMIC_MT6357 = 4, - PMIC_MT6358 = 5, - PMIC_MT6359 = 6, - PMIC_MT6380 = 7, - PMIC_MT6397 = 8, +struct trace_event_raw_non_standard_event { + struct trace_entry ent; + char sec_type[16]; + char fru_id[16]; + u32 __data_loc_fru_text; + u8 sev; + u32 len; + u32 __data_loc_buf; + char __data[0]; }; -struct pwrap_slv_regops; - -struct pwrap_slv_type { - const u32 *dew_regs; - enum pmic_type type; - const u32 *comp_dew_regs; - enum pmic_type comp_type; - const struct pwrap_slv_regops *regops; - u32 caps; +struct trace_event_raw_aer_event { + struct trace_entry ent; + u32 __data_loc_dev_name; + u32 status; + u8 severity; + u8 tlp_header_valid; + u32 tlp_header[4]; + char __data[0]; }; -struct pmic_wrapper; - -struct pwrap_slv_regops { - const struct regmap_config *regmap; - int (*pwrap_read)(struct pmic_wrapper *, u32, u32 *); - int (*pwrap_write)(struct pmic_wrapper *, u32, u32); +struct trace_event_raw_memory_failure_event { + struct trace_entry ent; + unsigned long pfn; + int type; + int result; + char __data[0]; }; -struct pmic_wrapper_type; - -struct pmic_wrapper { - struct device *dev; - void *base; - struct regmap *regmap; - const struct pmic_wrapper_type *master; - const struct pwrap_slv_type *slave; - struct clk *clk_spi; - struct clk *clk_wrap; - struct clk *clk_sys; - struct clk *clk_tmr; - struct reset_control *rstc; - struct reset_control *rstc_bridge; - void *bridge_base; +struct trace_event_data_offsets_mc_event { + u32 msg; + u32 label; + u32 driver_detail; }; -enum pwrap_type { - PWRAP_MT2701 = 0, - PWRAP_MT6765 = 1, - PWRAP_MT6779 = 2, - PWRAP_MT6795 = 3, - PWRAP_MT6797 = 4, - PWRAP_MT6873 = 5, - PWRAP_MT7622 = 6, - PWRAP_MT8135 = 7, - PWRAP_MT8173 = 8, - PWRAP_MT8183 = 9, - PWRAP_MT8186 = 10, - PWRAP_MT8195 = 11, - PWRAP_MT8365 = 12, - PWRAP_MT8516 = 13, +struct trace_event_data_offsets_non_standard_event { + u32 fru_text; + u32 buf; }; -struct pmic_wrapper_type { - int *regs; - enum pwrap_type type; - u32 arb_en_all; - u32 int_en_all; - u32 int1_en_all; - u32 spi_w; - u32 wdt_src; - u32 caps; - int (*init_reg_clock)(struct pmic_wrapper *); - int (*init_soc_specific)(struct pmic_wrapper *); +struct trace_event_data_offsets_aer_event { + u32 dev_name; }; -enum pwrap_regs { - PWRAP_MUX_SEL = 0, - PWRAP_WRAP_EN = 1, - PWRAP_DIO_EN = 2, - PWRAP_SIDLY = 3, - PWRAP_CSHEXT_WRITE = 4, - PWRAP_CSHEXT_READ = 5, - PWRAP_CSLEXT_START = 6, - PWRAP_CSLEXT_END = 7, - PWRAP_STAUPD_PRD = 8, - PWRAP_STAUPD_GRPEN = 9, - PWRAP_STAUPD_MAN_TRIG = 10, - PWRAP_STAUPD_STA = 11, - PWRAP_WRAP_STA = 12, - PWRAP_HARB_INIT = 13, - PWRAP_HARB_HPRIO = 14, - PWRAP_HIPRIO_ARB_EN = 15, - PWRAP_HARB_STA0 = 16, - PWRAP_HARB_STA1 = 17, - PWRAP_MAN_EN = 18, - PWRAP_MAN_CMD = 19, - PWRAP_MAN_RDATA = 20, - PWRAP_MAN_VLDCLR = 21, - PWRAP_WACS0_EN = 22, - PWRAP_INIT_DONE0 = 23, - PWRAP_WACS0_CMD = 24, - PWRAP_WACS0_RDATA = 25, - PWRAP_WACS0_VLDCLR = 26, - PWRAP_WACS1_EN = 27, - PWRAP_INIT_DONE1 = 28, - PWRAP_WACS1_CMD = 29, - PWRAP_WACS1_RDATA = 30, - PWRAP_WACS1_VLDCLR = 31, - PWRAP_WACS2_EN = 32, - PWRAP_INIT_DONE2 = 33, - PWRAP_WACS2_CMD = 34, - PWRAP_WACS2_RDATA = 35, - PWRAP_WACS2_VLDCLR = 36, - PWRAP_INT_EN = 37, - PWRAP_INT_FLG_RAW = 38, - PWRAP_INT_FLG = 39, - PWRAP_INT_CLR = 40, - PWRAP_SIG_ADR = 41, - PWRAP_SIG_MODE = 42, - PWRAP_SIG_VALUE = 43, - PWRAP_SIG_ERRVAL = 44, - PWRAP_CRC_EN = 45, - PWRAP_TIMER_EN = 46, - PWRAP_TIMER_STA = 47, - PWRAP_WDT_UNIT = 48, - PWRAP_WDT_SRC_EN = 49, - PWRAP_WDT_FLG = 50, - PWRAP_DEBUG_INT_SEL = 51, - PWRAP_CIPHER_KEY_SEL = 52, - PWRAP_CIPHER_IV_SEL = 53, - PWRAP_CIPHER_RDY = 54, - PWRAP_CIPHER_MODE = 55, - PWRAP_CIPHER_SWRST = 56, - PWRAP_DCM_EN = 57, - PWRAP_DCM_DBC_PRD = 58, - PWRAP_EINT_STA0_ADR = 59, - PWRAP_EINT_STA1_ADR = 60, - PWRAP_SWINF_2_WDATA_31_0 = 61, - PWRAP_SWINF_2_RDATA_31_0 = 62, - PWRAP_ADC_CMD_ADDR = 63, - PWRAP_PWRAP_ADC_CMD = 64, - PWRAP_ADC_RDY_ADDR = 65, - PWRAP_ADC_RDATA_ADDR1 = 66, - PWRAP_ADC_RDATA_ADDR2 = 67, - PWRAP_STA = 68, - PWRAP_CLR = 69, - PWRAP_DVFS_ADR8 = 70, - PWRAP_DVFS_WDATA8 = 71, - PWRAP_DVFS_ADR9 = 72, - PWRAP_DVFS_WDATA9 = 73, - PWRAP_DVFS_ADR10 = 74, - PWRAP_DVFS_WDATA10 = 75, - PWRAP_DVFS_ADR11 = 76, - PWRAP_DVFS_WDATA11 = 77, - PWRAP_DVFS_ADR12 = 78, - PWRAP_DVFS_WDATA12 = 79, - PWRAP_DVFS_ADR13 = 80, - PWRAP_DVFS_WDATA13 = 81, - PWRAP_DVFS_ADR14 = 82, - PWRAP_DVFS_WDATA14 = 83, - PWRAP_DVFS_ADR15 = 84, - PWRAP_DVFS_WDATA15 = 85, - PWRAP_EXT_CK = 86, - PWRAP_ADC_RDATA_ADDR = 87, - PWRAP_GPS_STA = 88, - PWRAP_SW_RST = 89, - PWRAP_DVFS_STEP_CTRL0 = 90, - PWRAP_DVFS_STEP_CTRL1 = 91, - PWRAP_DVFS_STEP_CTRL2 = 92, - PWRAP_SPI2_CTRL = 93, - PWRAP_CSHEXT = 94, - PWRAP_EVENT_IN_EN = 95, - PWRAP_EVENT_DST_EN = 96, - PWRAP_RRARB_INIT = 97, - PWRAP_RRARB_EN = 98, - PWRAP_RRARB_STA0 = 99, - PWRAP_RRARB_STA1 = 100, - PWRAP_EVENT_STA = 101, - PWRAP_EVENT_STACLR = 102, - PWRAP_CIPHER_LOAD = 103, - PWRAP_CIPHER_START = 104, - PWRAP_RDDMY = 105, - PWRAP_SI_CK_CON = 106, - PWRAP_DVFS_ADR0 = 107, - PWRAP_DVFS_WDATA0 = 108, - PWRAP_DVFS_ADR1 = 109, - PWRAP_DVFS_WDATA1 = 110, - PWRAP_DVFS_ADR2 = 111, - PWRAP_DVFS_WDATA2 = 112, - PWRAP_DVFS_ADR3 = 113, - PWRAP_DVFS_WDATA3 = 114, - PWRAP_DVFS_ADR4 = 115, - PWRAP_DVFS_WDATA4 = 116, - PWRAP_DVFS_ADR5 = 117, - PWRAP_DVFS_WDATA5 = 118, - PWRAP_DVFS_ADR6 = 119, - PWRAP_DVFS_WDATA6 = 120, - PWRAP_DVFS_ADR7 = 121, - PWRAP_DVFS_WDATA7 = 122, - PWRAP_SPMINF_STA = 123, - PWRAP_CIPHER_EN = 124, - PWRAP_SI_SAMPLE_CTRL = 125, - PWRAP_CSLEXT_WRITE = 126, - PWRAP_CSLEXT_READ = 127, - PWRAP_EXT_CK_WRITE = 128, - PWRAP_STAUPD_CTRL = 129, - PWRAP_WACS_P2P_EN = 130, - PWRAP_INIT_DONE_P2P = 131, - PWRAP_WACS_MD32_EN = 132, - PWRAP_INIT_DONE_MD32 = 133, - PWRAP_INT1_EN = 134, - PWRAP_INT1_FLG = 135, - PWRAP_INT1_CLR = 136, - PWRAP_WDT_SRC_EN_1 = 137, - PWRAP_INT_GPS_AUXADC_CMD_ADDR = 138, - PWRAP_INT_GPS_AUXADC_CMD = 139, - PWRAP_INT_GPS_AUXADC_RDATA_ADDR = 140, - PWRAP_EXT_GPS_AUXADC_RDATA_ADDR = 141, - PWRAP_GPSINF_0_STA = 142, - PWRAP_GPSINF_1_STA = 143, - PWRAP_OP_TYPE = 144, - PWRAP_MSB_FIRST = 145, +struct trace_event_data_offsets_arm_event {}; + +struct trace_event_data_offsets_memory_failure_event {}; + +enum timer_tread_format { + TREAD_FORMAT_NONE = 0, + TREAD_FORMAT_TIME64 = 1, + TREAD_FORMAT_TIME32 = 2, }; -enum dew_regs { - PWRAP_DEW_BASE = 0, - PWRAP_DEW_DIO_EN = 1, - PWRAP_DEW_READ_TEST = 2, - PWRAP_DEW_WRITE_TEST = 3, - PWRAP_DEW_CRC_EN = 4, - PWRAP_DEW_CRC_VAL = 5, - PWRAP_DEW_MON_GRP_SEL = 6, - PWRAP_DEW_CIPHER_KEY_SEL = 7, - PWRAP_DEW_CIPHER_IV_SEL = 8, - PWRAP_DEW_CIPHER_RDY = 9, - PWRAP_DEW_CIPHER_MODE = 10, - PWRAP_DEW_CIPHER_SWRST = 11, - PWRAP_DEW_CIPHER_EN = 12, - PWRAP_DEW_RDDMY_NO = 13, - PWRAP_SMT_CON1 = 14, - PWRAP_DRV_CON1 = 15, - PWRAP_FILTER_CON0 = 16, - PWRAP_GPIO_PULLEN0_CLR = 17, - PWRAP_RG_SPI_CON0 = 18, - PWRAP_RG_SPI_RECORD0 = 19, - PWRAP_RG_SPI_CON2 = 20, - PWRAP_RG_SPI_CON3 = 21, - PWRAP_RG_SPI_CON4 = 22, - PWRAP_RG_SPI_CON5 = 23, - PWRAP_RG_SPI_CON6 = 24, - PWRAP_RG_SPI_CON7 = 25, - PWRAP_RG_SPI_CON8 = 26, - PWRAP_RG_SPI_CON13 = 27, - PWRAP_SPISLV_KEY = 28, - PWRAP_DEW_CRC_SWRST = 29, - PWRAP_DEW_RG_EN_RECORD = 30, - PWRAP_DEW_RECORD_CMD0 = 31, - PWRAP_DEW_RECORD_CMD1 = 32, - PWRAP_DEW_RECORD_CMD2 = 33, - PWRAP_DEW_RECORD_CMD3 = 34, - PWRAP_DEW_RECORD_CMD4 = 35, - PWRAP_DEW_RECORD_CMD5 = 36, - PWRAP_DEW_RECORD_WDATA0 = 37, - PWRAP_DEW_RECORD_WDATA1 = 38, - PWRAP_DEW_RECORD_WDATA2 = 39, - PWRAP_DEW_RECORD_WDATA3 = 40, - PWRAP_DEW_RECORD_WDATA4 = 41, - PWRAP_DEW_RECORD_WDATA5 = 42, - PWRAP_DEW_RG_ADDR_TARGET = 43, - PWRAP_DEW_RG_ADDR_MASK = 44, - PWRAP_DEW_RG_WDATA_TARGET = 45, - PWRAP_DEW_RG_WDATA_MASK = 46, - PWRAP_DEW_RG_SPI_RECORD_CLR = 47, - PWRAP_DEW_RG_CMD_ALERT_CLR = 48, - PWRAP_DEW_EVENT_OUT_EN = 49, - PWRAP_DEW_EVENT_SRC_EN = 50, - PWRAP_DEW_EVENT_SRC = 51, - PWRAP_DEW_EVENT_FLAG = 52, - PWRAP_DEW_MON_FLAG_SEL = 53, - PWRAP_DEW_EVENT_TEST = 54, - PWRAP_DEW_CIPHER_LOAD = 55, - PWRAP_DEW_CIPHER_START = 56, +enum { + SNDRV_TIMER_IOCTL_GPARAMS32 = 1077695492, + SNDRV_TIMER_IOCTL_INFO32 = 2162185233, + SNDRV_TIMER_IOCTL_STATUS_COMPAT32 = 1079530516, + SNDRV_TIMER_IOCTL_STATUS_COMPAT64 = 1080054804, }; -struct gpio_regulator_state; +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 gpio_regulator_config { - const char *supply_name; - const char *input_supply; - unsigned int enabled_at_boot: 1; - unsigned int startup_delay; - enum gpiod_flags *gflags; - int ngpios; - struct gpio_regulator_state *states; - int nr_states; - enum regulator_type type; - struct regulator_init_data *init_data; +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 gpio_regulator_state { - int value; - int gpios; +struct snd_timer_gparams32 { + struct snd_timer_id tid; + u32 period_num; + u32 period_den; + unsigned char reserved[32]; }; -struct gpio_regulator_data { - struct regulator_desc desc; - struct gpio_desc **gpiods; - int nr_gpios; - struct gpio_regulator_state *states; - int nr_states; - int state; +struct snd_timer_gparams { + struct snd_timer_id tid; + unsigned long period_num; + unsigned long period_den; + unsigned char reserved[32]; }; -struct rzg2l_usbphy_ctrl_priv { - struct reset_controller_dev rcdev; - struct reset_control *rstc; - void *base; - spinlock_t lock; +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 old_serial_port { - unsigned int uart; - unsigned int baud_base; - unsigned int port; - unsigned int irq; - upf_t flags; - unsigned char io_type; - unsigned char *iomem_base; - unsigned short iomem_reg_shift; +struct 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; }; -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 snd_timer_read { + unsigned int resolution; + unsigned int ticks; }; -struct irq_info___2 { - struct hlist_node node; - int irq; - spinlock_t lock; - struct list_head *head; +struct snd_timer_tread64 { + int event; + u8 pad1[4]; + s64 tstamp_sec; + s64 tstamp_nsec; + unsigned int val; + u8 pad2[4]; }; -struct plat_serial8250_port { - unsigned long iobase; - void *membase; - resource_size_t mapbase; - resource_size_t mapsize; - unsigned int uartclk; - unsigned int irq; - unsigned long irqflags; - void *private_data; - unsigned char regshift; - unsigned char iotype; - unsigned char hub6; - unsigned char has_sysrq; - unsigned int type; - upf_t flags; - u16 bugs; - unsigned int (*serial_in)(struct uart_port *, int); - void (*serial_out)(struct uart_port *, int, int); - u32 (*dl_read)(struct uart_8250_port *); - void (*dl_write)(struct uart_8250_port *, u32); - void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - unsigned int (*get_mctrl)(struct uart_port *); - int (*handle_irq)(struct uart_port *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - void (*handle_break)(struct uart_port *); +struct snd_timer_select { + struct snd_timer_id id; + unsigned char reserved[32]; }; -struct uart_regs_layout { - unsigned int rbr; - unsigned int tsh; - unsigned int ctrl; - unsigned int intr; +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 uart_flags { - unsigned int ctrl_tx_rdy_int; - unsigned int ctrl_rx_rdy_int; - unsigned int stat_tx_rdy; - unsigned int stat_rx_rdy; +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 mvebu_uart_driver_data { - bool is_ext; - struct uart_regs_layout regs; - struct uart_flags flags; +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]; }; -enum { - UART_IRQ_SUM = 0, - UART_RX_IRQ = 0, - UART_TX_IRQ = 1, - UART_IRQ_COUNT = 2, +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 mvebu_uart_pm_regs { - unsigned int rbr; - unsigned int tsh; - unsigned int ctrl; - unsigned int intr; - unsigned int stat; - unsigned int brdv; - unsigned int osamp; +struct snd_timer_tread32 { + int event; + s32 tstamp_sec; + s32 tstamp_nsec; + unsigned int val; }; -struct mvebu_uart { - struct uart_port *port; - struct clk *clk; - int irq[2]; - struct mvebu_uart_driver_data *data; - struct mvebu_uart_pm_regs pm_regs; +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 mvebu_uart_clock { - struct clk_hw clk_hw; - int clock_idx; - u32 pm_context_reg1; - u32 pm_context_reg2; +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]; }; -struct mvebu_uart_clock_base { - struct mvebu_uart_clock clocks[2]; - unsigned int parent_rates[5]; - int parent_idx; - unsigned int div; - void *reg1; - void *reg2; - bool configured; +enum { + ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0, + ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1, + ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2, }; -enum bios_platform_class { - BIOS_CLIENT = 0, - BIOS_SERVER = 1, +enum { + ETHTOOL_A_RINGS_UNSPEC = 0, + ETHTOOL_A_RINGS_HEADER = 1, + ETHTOOL_A_RINGS_RX_MAX = 2, + ETHTOOL_A_RINGS_RX_MINI_MAX = 3, + ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4, + ETHTOOL_A_RINGS_TX_MAX = 5, + ETHTOOL_A_RINGS_RX = 6, + ETHTOOL_A_RINGS_RX_MINI = 7, + ETHTOOL_A_RINGS_RX_JUMBO = 8, + ETHTOOL_A_RINGS_TX = 9, + ETHTOOL_A_RINGS_RX_BUF_LEN = 10, + ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11, + ETHTOOL_A_RINGS_CQE_SIZE = 12, + ETHTOOL_A_RINGS_TX_PUSH = 13, + ETHTOOL_A_RINGS_RX_PUSH = 14, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16, + __ETHTOOL_A_RINGS_CNT = 17, + ETHTOOL_A_RINGS_MAX = 16, }; -struct client_hdr { - u32 log_max_len; - u64 log_start_addr; -} __attribute__((packed)); +enum ethtool_supported_ring_param { + ETHTOOL_RING_USE_RX_BUF_LEN = 1, + ETHTOOL_RING_USE_CQE_SIZE = 2, + ETHTOOL_RING_USE_TX_PUSH = 4, + ETHTOOL_RING_USE_RX_PUSH = 8, + ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16, +}; -struct server_hdr { - u16 reserved; - u64 log_max_len; - u64 log_start_addr; -} __attribute__((packed)); +struct rings_reply_data { + struct ethnl_reply_data base; + struct ethtool_ringparam ringparam; + struct kernel_ethtool_ringparam kernel_ringparam; + u32 supported_ring_params; +}; -struct acpi_tcpa { - struct acpi_table_header hdr; - u16 platform_class; - union { - struct client_hdr client; - struct server_hdr server; - }; +struct uncached_list { + spinlock_t lock; + struct list_head head; + struct list_head quarantine; }; -struct acpi_table_tpm2 { - struct acpi_table_header header; - u16 platform_class; - u16 reserved; - u64 control_address; - u32 start_method; -} __attribute__((packed)); +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 acpi_tpm2_phy { - u8 start_method_specific[12]; - u32 log_area_minimum_length; - u64 log_area_start_address; +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; }; -struct builtin_fw { - char *name; - void *data; - unsigned long size; +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 { - Lo_unbound = 0, - Lo_bound = 1, - Lo_rundown = 2, - Lo_deleting = 3, +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; }; enum { - LO_FLAGS_READ_ONLY = 1, - LO_FLAGS_AUTOCLEAR = 4, - LO_FLAGS_PARTSCAN = 8, - LO_FLAGS_DIRECT_IO = 16, + SVC_HANDSHAKE_TO = 1250, }; -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; +enum handshake_handler_class { + HANDSHAKE_HANDLER_CLASS_NONE = 0, + HANDSHAKE_HANDLER_CLASS_TLSHD = 1, + HANDSHAKE_HANDLER_CLASS_MAX = 2, }; -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 compat_sigcontext { + compat_ulong_t trap_no; + compat_ulong_t error_code; + compat_ulong_t oldmask; + compat_ulong_t arm_r0; + compat_ulong_t arm_r1; + compat_ulong_t arm_r2; + compat_ulong_t arm_r3; + compat_ulong_t arm_r4; + compat_ulong_t arm_r5; + compat_ulong_t arm_r6; + compat_ulong_t arm_r7; + compat_ulong_t arm_r8; + compat_ulong_t arm_r9; + compat_ulong_t arm_r10; + compat_ulong_t arm_fp; + compat_ulong_t arm_ip; + compat_ulong_t arm_sp; + compat_ulong_t arm_lr; + compat_ulong_t arm_pc; + compat_ulong_t arm_cpsr; + compat_ulong_t fault_address; }; -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; +struct compat_ucontext { + compat_ulong_t uc_flags; + compat_uptr_t uc_link; + compat_stack_t uc_stack; + struct compat_sigcontext uc_mcontext; + compat_sigset_t uc_sigmask; + int __unused[30]; + compat_ulong_t uc_regspace[128]; }; -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]; +struct compat_sigframe { + struct compat_ucontext uc; + compat_ulong_t retcode[2]; }; -typedef unsigned int __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 compat_rt_sigframe { + struct compat_siginfo info; + struct compat_sigframe sig; }; -struct loop_info64 { - __u64 lo_device; - __u64 lo_inode; - __u64 lo_rdevice; - __u64 lo_offset; - __u64 lo_sizelimit; - __u32 lo_number; - __u32 lo_encrypt_type; - __u32 lo_encrypt_key_size; - __u32 lo_flags; - __u8 lo_file_name[64]; - __u8 lo_crypt_name[64]; - __u8 lo_encrypt_key[32]; - __u64 lo_init[2]; +struct compat_user_vfp { + compat_u64 fpregs[32]; + compat_ulong_t fpscr; }; -struct loop_config { - __u32 fd; - __u32 block_size; - struct loop_info64 info; - __u64 __reserved[8]; +struct compat_user_vfp_exc { + compat_ulong_t fpexc; + compat_ulong_t fpinst; + compat_ulong_t fpinst2; }; -enum MR_RAID_MAP_DESC_TYPE { - RAID_MAP_DESC_TYPE_DEVHDL_INFO = 0, - RAID_MAP_DESC_TYPE_TGTID_INFO = 1, - RAID_MAP_DESC_TYPE_ARRAY_INFO = 2, - RAID_MAP_DESC_TYPE_SPAN_INFO = 3, - RAID_MAP_DESC_TYPE_COUNT = 4, +struct compat_vfp_sigframe { + compat_ulong_t magic; + compat_ulong_t size; + struct compat_user_vfp ufp; + struct compat_user_vfp_exc ufp_exc; }; -struct MR_FW_RAID_MAP_EXT { - u32 reserved; - union { - struct { - u32 maxLd; - u32 maxSpanDepth; - u32 maxRowSize; - u32 maxPdCount; - u32 maxArrays; - } validationInfo; - u32 version[5]; - }; - u8 fpPdIoTimeoutSec; - u8 reserved2[7]; - __le16 ldCount; - __le16 arCount; - __le16 spanCount; - __le16 reserve3; - struct MR_DEV_HANDLE_INFO devHndlInfo[256]; - u8 ldTgtIdToLd[256]; - struct MR_ARRAY_INFO arMapInfo[256]; - struct MR_LD_SPAN_MAP ldSpanMap[256]; +struct compat_aux_sigframe { + struct compat_vfp_sigframe vfp; + unsigned long end_magic; }; -struct MR_FW_RAID_MAP { - __le32 totalSize; - union { - struct { - __le32 maxLd; - __le32 maxSpanDepth; - __le32 maxRowSize; - __le32 maxPdCount; - __le32 maxArrays; - } validationInfo; - __le32 version[5]; +union __fpsimd_vreg { + __uint128_t raw; + struct { + u64 lo; + u64 hi; }; - __le32 ldCount; - __le32 Reserved1; - u8 ldTgtIdToLd[128]; - u8 fpPdIoTimeoutSec; - u8 reserved2[7]; - struct MR_ARRAY_INFO arMapInfo[128]; - struct MR_DEV_HANDLE_INFO devHndlInfo[256]; - struct MR_LD_SPAN_MAP ldSpanMap[0]; }; -struct MR_FW_RAID_MAP_ALL { - struct MR_FW_RAID_MAP raidMap; - struct MR_LD_SPAN_MAP ldSpanMap[64]; +struct arch_hibernate_hdr_invariants { + char uts_version[65]; }; -enum mtd_file_modes { - MTD_FILE_MODE_NORMAL = 0, - MTD_FILE_MODE_OTP_FACTORY = 1, - MTD_FILE_MODE_OTP_USER = 2, - MTD_FILE_MODE_RAW = 3, +struct arch_hibernate_hdr { + struct arch_hibernate_hdr_invariants invariants; + phys_addr_t ttbr1_el1; + void (*reenter_kernel)(); + phys_addr_t __hyp_stub_vectors; + u64 sleep_cpu_mpidr; }; -struct mtd_write_req { - __u64 start; - __u64 len; - __u64 ooblen; - __u64 usr_data; - __u64 usr_oob; - __u8 mode; - __u8 padding[7]; -}; +typedef void (*btf_trace_kvm_userspace_exit)(void *, __u32, int); -struct mtd_read_req_ecc_stats { - __u32 uncorrectable_errors; - __u32 corrected_bitflips; - __u32 max_bitflips; -}; +typedef void (*btf_trace_kvm_vcpu_wakeup)(void *, __u64, bool, bool); -struct mtd_read_req { - __u64 start; - __u64 len; - __u64 ooblen; - __u64 usr_data; - __u64 usr_oob; - __u8 mode; - __u8 padding[7]; - struct mtd_read_req_ecc_stats ecc_stats; +typedef void (*btf_trace_kvm_set_irq)(void *, unsigned int, int, int); + +typedef void (*btf_trace_kvm_ack_irq)(void *, unsigned int, unsigned int); + +typedef void (*btf_trace_kvm_mmio)(void *, int, int, u64, void *); + +typedef void (*btf_trace_kvm_fpu)(void *, int); + +typedef void (*btf_trace_kvm_halt_poll_ns)(void *, bool, unsigned int, unsigned int, unsigned int); + +typedef void (*btf_trace_kvm_dirty_ring_push)(void *, struct kvm_dirty_ring *, u32, u64); + +typedef void (*btf_trace_kvm_dirty_ring_reset)(void *, struct kvm_dirty_ring *); + +typedef void (*btf_trace_kvm_dirty_ring_exit)(void *, struct kvm_vcpu___2 *); + +typedef void (*btf_trace_kvm_unmap_hva_range)(void *, unsigned long, unsigned long); + +typedef void (*btf_trace_kvm_set_spte_hva)(void *, unsigned long); + +typedef void (*btf_trace_kvm_age_hva)(void *, unsigned long, unsigned long); + +typedef void (*btf_trace_kvm_test_age_hva)(void *, unsigned long); + +union kvm_mmu_notifier_arg { + pte_t pte; }; -struct mtd_file_info { - struct mtd_info *mtd; - enum mtd_file_modes mode; +enum kvm_mr_change { + KVM_MR_CREATE = 0, + KVM_MR_DELETE = 1, + KVM_MR_MOVE = 2, + KVM_MR_FLAGS_ONLY = 3, }; -struct mtd_oob_buf32 { - u_int32_t start; - u_int32_t length; - compat_caddr_t ptr; +struct trace_event_raw_kvm_userspace_exit { + struct trace_entry ent; + __u32 reason; + int errno; + char __data[0]; }; -struct blkpg_compat_ioctl_arg { - compat_int_t op; - compat_int_t flags; - compat_int_t datalen; - compat_uptr_t data; +struct trace_event_raw_kvm_vcpu_wakeup { + struct trace_entry ent; + __u64 ns; + bool waited; + bool valid; + char __data[0]; }; -struct blkpg_ioctl_arg { - int op; - int flags; - int datalen; - void __attribute__((btf_type_tag("user"))) *data; +struct trace_event_raw_kvm_set_irq { + struct trace_entry ent; + unsigned int gsi; + int level; + int irq_source_id; + char __data[0]; }; -struct mtd_info_user { - __u8 type; - __u32 flags; - __u32 size; - __u32 erasesize; - __u32 writesize; - __u32 oobsize; - __u64 padding; +struct trace_event_raw_kvm_ack_irq { + struct trace_entry ent; + unsigned int irqchip; + unsigned int pin; + char __data[0]; }; -struct erase_info_user64 { - __u64 start; - __u64 length; +struct trace_event_raw_kvm_mmio { + struct trace_entry ent; + u32 type; + u32 len; + u64 gpa; + u64 val; + char __data[0]; }; -struct erase_info_user { - __u32 start; - __u32 length; +struct trace_event_raw_kvm_fpu { + struct trace_entry ent; + u32 load; + char __data[0]; }; -struct mtd_oob_buf { - __u32 start; - __u32 length; - unsigned char __attribute__((btf_type_tag("user"))) *ptr; +struct trace_event_raw_kvm_halt_poll_ns { + struct trace_entry ent; + bool grow; + unsigned int vcpu_id; + unsigned int new; + unsigned int old; + char __data[0]; }; -struct mtd_oob_buf64 { - __u64 start; - __u32 pad; - __u32 length; - __u64 usr_ptr; +struct trace_event_raw_kvm_dirty_ring_push { + struct trace_entry ent; + int index; + u32 dirty_index; + u32 reset_index; + u32 slot; + u64 offset; + char __data[0]; }; -struct nand_oobinfo { - __u32 useecc; - __u32 eccbytes; - __u32 oobfree[16]; - __u32 eccpos[32]; +struct trace_event_raw_kvm_dirty_ring_reset { + struct trace_entry ent; + int index; + u32 dirty_index; + u32 reset_index; + char __data[0]; }; -struct region_info_user { - __u32 offset; - __u32 erasesize; - __u32 numblocks; - __u32 regionindex; +struct trace_event_raw_kvm_dirty_ring_exit { + struct trace_entry ent; + int vcpu_id; + char __data[0]; }; -struct nand_oobfree { - __u32 offset; - __u32 length; +struct trace_event_raw_kvm_unmap_hva_range { + struct trace_entry ent; + unsigned long start; + unsigned long end; + char __data[0]; }; -struct nand_ecclayout_user { - __u32 eccbytes; - __u32 eccpos[64]; - __u32 oobavail; - struct nand_oobfree oobfree[8]; +struct trace_event_raw_kvm_set_spte_hva { + struct trace_entry ent; + unsigned long hva; + char __data[0]; }; -struct blkpg_partition { - long long start; - long long length; - int pno; - char devname[64]; - char volname[64]; +struct trace_event_raw_kvm_age_hva { + struct trace_entry ent; + unsigned long start; + unsigned long end; + char __data[0]; }; -struct cqspi_flash_pdata; +struct trace_event_raw_kvm_test_age_hva { + struct trace_entry ent; + unsigned long hva; + char __data[0]; +}; -struct cqspi_st; +typedef u64 hpa_t; -struct cqspi_driver_platdata { - u32 hwcaps_mask; - u8 quirks; - int (*indirect_read_dma)(struct cqspi_flash_pdata *, u_char *, loff_t, size_t); - u32 (*get_dma_status)(struct cqspi_st *); +struct kvm_userspace_memory_region { + __u32 slot; + __u32 flags; + __u64 guest_phys_addr; + __u64 memory_size; + __u64 userspace_addr; }; -struct cqspi_flash_pdata { - struct cqspi_st *cqspi; - u32 clk_rate; - u32 read_delay; - u32 tshsl_ns; - u32 tsd2d_ns; - u32 tchsh_ns; - u32 tslch_ns; - u8 cs; +struct kvm_memslot_iter { + struct kvm_memslots *slots; + struct rb_node *node; + struct kvm_memory_slot *slot; }; -struct cqspi_st { - struct platform_device *pdev; - struct spi_controller *master; - struct clk *clk; - unsigned int sclk; - void *iobase; - void *ahb_base; - resource_size_t ahb_size; - struct completion transfer_complete; - struct dma_chan *rx_chan; - struct completion rx_dma_complete; - dma_addr_t mmap_phys_base; - int current_cs; - unsigned long master_ref_clk_hz; - bool is_decoded_cs; - u32 fifo_depth; - u32 fifo_width; - u32 num_chipselect; - bool rclk_en; - u32 trigger_address; - u32 wr_delay; - bool use_direct_mode; - bool use_direct_mode_wr; - struct cqspi_flash_pdata f_pdata[16]; - bool use_dma_read; - u32 pd_dev_id; - bool wr_completion; - bool slow_sram; - bool apb_ahb_hazard; -}; +typedef unsigned long hva_t; -enum ospi_mux_select_type { - PM_OSPI_MUX_SEL_DMA = 0, - PM_OSPI_MUX_SEL_LINEAR = 1, +struct kvm_dirty_log { + __u32 slot; + __u32 padding1; + union { + void __attribute__((btf_type_tag("user"))) *dirty_bitmap; + __u64 padding2; + }; }; -struct fec_stat { - char name[32]; - u16 offset; +struct kvm_clear_dirty_log { + __u32 slot; + __u32 num_pages; + __u64 first_page; + union { + void __attribute__((btf_type_tag("user"))) *dirty_bitmap; + __u64 padding2; + }; }; -struct fec_devinfo { - u32 quirks; -}; +struct kvm_gfn_range; -enum { - RX_XDP_REDIRECT = 0, - RX_XDP_PASS = 1, - RX_XDP_DROP = 2, - RX_XDP_TX = 3, - RX_XDP_TX_ERRORS = 4, - TX_XDP_XMIT = 5, - TX_XDP_XMIT_ERRORS = 6, - XDP_STATS_TOTAL = 7, -}; +typedef bool (*hva_handler_t)(struct kvm___2 *, struct kvm_gfn_range *); -struct bufdesc_ex { - struct bufdesc desc; - __le32 cbd_esc; - __le32 cbd_prot; - __le32 cbd_bdu; - __le32 ts; - __le16 res0[4]; -}; +typedef void (*on_lock_fn_t)(struct kvm___2 *, unsigned long, unsigned long); -struct fec_platform_data { - phy_interface_t phy; - unsigned char mac[6]; - void (*sleep_mode_enable)(int); +typedef void (*on_unlock_fn_t)(struct kvm___2 *); + +struct kvm_hva_range { + unsigned long start; + unsigned long end; + union kvm_mmu_notifier_arg arg; + hva_handler_t handler; + on_lock_fn_t on_lock; + on_unlock_fn_t on_unlock; + bool flush_on_ret; + bool may_block; }; -enum E1000_INVM_STRUCTURE_TYPE { - E1000_INVM_UNINITIALIZED_STRUCTURE = 0, - E1000_INVM_WORD_AUTOLOAD_STRUCTURE = 1, - E1000_INVM_CSR_AUTOLOAD_STRUCTURE = 2, - E1000_INVM_PHY_REGISTER_AUTOLOAD_STRUCTURE = 3, - E1000_INVM_RSA_KEY_SHA256_STRUCTURE = 4, - E1000_INVM_INVALIDATED_STRUCTURE = 15, +struct kvm_gfn_range { + struct kvm_memory_slot *slot; + gfn_t start; + gfn_t end; + union kvm_mmu_notifier_arg arg; + bool may_block; }; -struct orion_mdio_dev; +struct trace_event_data_offsets_kvm_userspace_exit {}; -struct orion_mdio_ops { - int (*is_done)(struct orion_mdio_dev *); - unsigned int poll_interval_min; - unsigned int poll_interval_max; -}; +struct trace_event_data_offsets_kvm_vcpu_wakeup {}; -struct orion_mdio_dev { - void *regs; - struct clk *clk[4]; - int err_interrupt; - wait_queue_head_t smi_busy_wait; -}; +struct trace_event_data_offsets_kvm_set_irq {}; -enum orion_mdio_bus_type { - BUS_TYPE_SMI = 0, - BUS_TYPE_XSMI = 1, -}; +struct trace_event_data_offsets_kvm_ack_irq {}; -struct cpsw_sl_dev_id { - const char *device_id; - const u16 *regs; - const u32 control_features; - const u32 regs_offset; - const u32 idle_mask; -}; +struct trace_event_data_offsets_kvm_mmio {}; -enum cpsw_sl_regs { - CPSW_SL_IDVER = 0, - CPSW_SL_MACCONTROL = 1, - CPSW_SL_MACSTATUS = 2, - CPSW_SL_SOFT_RESET = 3, - CPSW_SL_RX_MAXLEN = 4, - CPSW_SL_BOFFTEST = 5, - CPSW_SL_RX_PAUSE = 6, - CPSW_SL_TX_PAUSE = 7, - CPSW_SL_EMCONTROL = 8, - CPSW_SL_RX_PRI_MAP = 9, - CPSW_SL_TX_GAP = 10, -}; +struct trace_event_data_offsets_kvm_fpu {}; -struct cpsw_sl { - struct device *dev; - void *sl_base; - const u16 *regs; - u32 control_features; - u32 idle_mask; -}; +struct trace_event_data_offsets_kvm_halt_poll_ns {}; -struct vfio___3 { - struct list_head iommu_drivers_list; - struct mutex iommu_drivers_lock; -}; +struct trace_event_data_offsets_kvm_dirty_ring_push {}; -struct vfio_iommu_driver { - const struct vfio_iommu_driver_ops *ops; - struct list_head vfio_next; +struct trace_event_data_offsets_kvm_dirty_ring_reset {}; + +struct trace_event_data_offsets_kvm_dirty_ring_exit {}; + +struct trace_event_data_offsets_kvm_unmap_hva_range {}; + +struct trace_event_data_offsets_kvm_set_spte_hva {}; + +struct trace_event_data_offsets_kvm_age_hva {}; + +struct trace_event_data_offsets_kvm_test_age_hva {}; + +struct kvm_host_map { + struct page *page; + void *hva; + kvm_pfn_t pfn; + kvm_pfn_t gfn; }; -struct vfio_container { - struct kref kref; - struct list_head group_list; - struct rw_semaphore group_lock; - struct vfio_iommu_driver *iommu_driver; - void *iommu_data; - bool noiommu; +struct gfn_to_hva_cache { + u64 generation; + gpa_t gpa; + unsigned long hva; + unsigned long len; + struct kvm_memory_slot *memslot; }; -struct trackpoint_attr_data { - size_t field_offset; - u8 command; - u8 mask; - bool inverted; - u8 power_on_default; +typedef int (*kvm_vm_thread_fn_t)(struct kvm___2 *, uintptr_t); + +struct kvm_vm_worker_thread_context { + struct kvm___2 *kvm; + struct task_struct *parent; + struct completion init_done; + kvm_vm_thread_fn_t thread_fn; + uintptr_t data; + int err; }; -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 kvm_irq_routing { + __u32 nr; + __u32 flags; + struct kvm_irq_routing_entry entries[0]; }; -struct i2c_dev { - struct list_head list; - struct i2c_adapter *adap; - struct device dev; - struct cdev cdev; +struct kvm_create_device { + __u32 type; + __u32 fd; + __u32 flags; }; -struct i2c_rdwr_ioctl_data { - struct i2c_msg __attribute__((btf_type_tag("user"))) *msgs; - __u32 nmsgs; +struct kvm_signal_mask { + __u32 len; + __u8 sigset[0]; }; -struct i2c_smbus_ioctl_data { - __u8 read_write; - __u8 command; - __u32 size; - union i2c_smbus_data __attribute__((btf_type_tag("user"))) *data; +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 i2c_rdwr_ioctl_data32 { - compat_caddr_t msgs; - u32 nmsgs; +struct compat_resume_swap_area { + compat_loff_t offset; + u32 dev; +} __attribute__((packed)); + +struct resume_swap_area { + __kernel_loff_t offset; + __u32 dev; +} __attribute__((packed)); + +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 i2c_msg32 { - u16 addr; - u16 flags; - u16 len; - compat_caddr_t buf; +struct kcmp_epoll_slot { + __u32 efd; + __u32 tfd; + __u32 toff; }; -struct i2c_smbus_ioctl_data32 { - u8 read_write; - u8 command; - u32 size; - compat_caddr_t data; +struct misc_res { + u64 max; + atomic64_t usage; + atomic64_t events; }; -struct amlogic_thermal_soc_calib_data; +struct misc_cg { + struct cgroup_subsys_state css; + struct cgroup_file events_file; + struct misc_res res[0]; +}; -struct amlogic_thermal_data { - int u_efuse_off; - const struct amlogic_thermal_soc_calib_data *calibration_parameters; - const struct regmap_config *regmap_config; +enum misc_res_type { + MISC_CG_RES_TYPES = 0, }; -struct amlogic_thermal_soc_calib_data { - int A; - int B; - int m; - int n; +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 amlogic_thermal { - struct platform_device *pdev; - const struct amlogic_thermal_data *data; - struct regmap *regmap; - struct regmap *sec_ao_map; - struct clk *clk; - struct thermal_zone_device *tzd; - u32 trim_info; +struct cpu_stop_done { + atomic_t nr_todo; + int ret; + struct completion completion; }; -struct psci_cpuidle_data { - u32 *psci_states; - struct device *dev; +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 led_pwm_data { - struct led_classdev cdev; - struct pwm_device *pwm; - struct pwm_state pwmstate; - unsigned int active_low; +struct multi_stop_data { + cpu_stop_fn_t fn; + void *data; + unsigned int num_threads; + const struct cpumask *active_cpus; + enum multi_stop_state state; + atomic_t thread_ack; }; -struct led_pwm_priv { - int num_leds; - struct led_pwm_data leds[0]; +enum { + TRACE_NOP_OPT_ACCEPT = 1, + TRACE_NOP_OPT_REFUSE = 2, }; -struct led_pwm { - const char *name; - u8 active_low; - u8 default_state; - unsigned int max_brightness; +enum bpf_audit { + BPF_AUDIT_LOAD = 0, + BPF_AUDIT_UNLOAD = 1, + BPF_AUDIT_MAX = 2, }; -enum scmi_performance_protocol_cmd { - PERF_DOMAIN_ATTRIBUTES = 3, - PERF_DESCRIBE_LEVELS = 4, - PERF_LIMITS_SET = 5, - PERF_LIMITS_GET = 6, - PERF_LEVEL_SET = 7, - PERF_LEVEL_GET = 8, - PERF_NOTIFY_LIMITS = 9, - PERF_NOTIFY_LEVEL = 10, - PERF_DESCRIBE_FASTCHANNEL = 11, - PERF_DOMAIN_NAME_GET = 12, +enum bpf_perf_event_type { + BPF_PERF_EVENT_UNSPEC = 0, + BPF_PERF_EVENT_UPROBE = 1, + BPF_PERF_EVENT_URETPROBE = 2, + BPF_PERF_EVENT_KPROBE = 3, + BPF_PERF_EVENT_KRETPROBE = 4, + BPF_PERF_EVENT_TRACEPOINT = 5, + BPF_PERF_EVENT_EVENT = 6, }; -enum { - PERF_FC_LEVEL = 0, - PERF_FC_LIMIT = 1, - PERF_FC_MAX = 2, +enum bpf_stats_type { + BPF_STATS_RUN_TIME = 0, }; -struct perf_dom_info; +typedef u64 (*btf_bpf_sys_bpf)(int, union bpf_attr *, u32); -struct scmi_perf_info { - u32 version; - int num_domains; - enum scmi_power_scale power_scale; - u64 stats_addr; - u32 stats_size; - struct perf_dom_info *dom_info; -}; +typedef u64 (*btf_bpf_sys_close)(u32); -struct scmi_opp { - u32 perf; - u32 power; - u32 trans_latency_us; +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 perf_dom_info { - bool set_limits; - bool set_perf; - bool perf_limit_notify; - bool perf_level_notify; - bool perf_fastchannels; - u32 opp_count; - u32 sustained_freq_khz; - u32 sustained_perf_level; - u32 mult_factor; - char name[64]; - struct scmi_opp opp[16]; - struct scmi_fc_info *fc_info; +struct bpf_raw_tp_link { + struct bpf_link link; + struct bpf_raw_event_map *btp; }; -struct scmi_msg_resp_perf_attributes { - __le16 num_domains; - __le16 flags; - __le32 stats_addr_low; - __le32 stats_addr_high; - __le32 stats_size; +struct bpf_perf_link { + struct bpf_link link; + struct file *perf_file; }; -struct scmi_msg_resp_perf_domain_attributes { - __le32 flags; - __le32 rate_limit_us; - __le32 sustained_freq_khz; - __le32 sustained_perf_level; - u8 name[16]; +struct bpf_prog_kstats { + u64 nsecs; + u64 cnt; + u64 misses; }; -struct scmi_perf_ipriv { - u32 domain; - struct perf_dom_info *perf_dom; +typedef int fpi_t; + +typedef void (*btf_trace_test_pages_isolated)(void *, unsigned long, unsigned long, unsigned long); + +struct trace_event_raw_test_pages_isolated { + struct trace_entry ent; + unsigned long start_pfn; + unsigned long end_pfn; + unsigned long fin_pfn; + char __data[0]; }; -struct scmi_perf_set_limits { - __le32 domain; - __le32 max_level; - __le32 min_level; +struct trace_event_data_offsets_test_pages_isolated {}; + +struct dentry_stat_t { + long nr_dentry; + long nr_unused; + long age_limit; + long want_pages; + long nr_negative; + long dummy; }; -struct scmi_perf_get_limits { - __le32 max_level; - __le32 min_level; +enum d_walk_ret { + D_WALK_CONTINUE = 0, + D_WALK_QUIT = 1, + D_WALK_NORETRY = 2, + D_WALK_SKIP = 3, }; -struct scmi_perf_set_level { - __le32 domain; - __le32 level; +struct external_name { + union { + atomic_t count; + struct callback_head head; + } u; + unsigned char name[0]; }; -struct scmi_perf_notify_level_or_limits { - __le32 domain; - __le32 notify_enable; +struct check_mount { + struct vfsmount *mnt; + unsigned int mounted; }; -struct scmi_msg_perf_describe_levels { - __le32 domain; - __le32 level_index; +struct select_data { + struct dentry *start; + union { + long found; + struct dentry *victim; + }; + struct list_head dispose; }; -struct scmi_msg_resp_perf_describe_levels { - __le16 num_returned; - __le16 num_remaining; - struct { - __le32 perf_val; - __le32 power; - __le16 transition_latency_us; - __le16 reserved; - } opp[0]; +enum legacy_fs_param { + LEGACY_FS_UNSET_PARAMS = 0, + LEGACY_FS_MONOLITHIC_PARAMS = 1, + LEGACY_FS_INDIVIDUAL_PARAMS = 2, }; -struct scmi_perf_limits_notify_payld { - __le32 agent_id; - __le32 domain_id; - __le32 range_max; - __le32 range_min; +struct legacy_fs_context { + char *legacy_data; + size_t data_size; + enum legacy_fs_param param_type; }; -struct scmi_perf_limits_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int domain_id; - unsigned int range_max; - unsigned int range_min; +struct eventfd_ctx { + struct kref kref; + wait_queue_head_t wqh; + __u64 count; + unsigned int flags; + int id; }; -struct scmi_perf_level_notify_payld { - __le32 agent_id; - __le32 domain_id; - __le32 performance_level; +struct jbd2_revoke_table_s { + int hash_size; + int hash_shift; + struct list_head *hash_table; }; -struct scmi_perf_level_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int domain_id; - unsigned int performance_level; +struct jbd2_revoke_record_s { + struct list_head hash; + tid_t sequence; + unsigned long long blocknr; }; -struct tegra186_timer_soc { - unsigned int num_timers; - unsigned int num_wdts; +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 tegra186_tmr; +typedef void (*btf_trace_nfs_set_inode_stale)(void *, const struct inode *); -struct tegra186_wdt { - struct watchdog_device base; - void *regs; - unsigned int index; - bool locked; - struct tegra186_tmr *tmr; -}; +typedef void (*btf_trace_nfs_refresh_inode_enter)(void *, const struct inode *); -struct tegra186_timer; +typedef void (*btf_trace_nfs_refresh_inode_exit)(void *, const struct inode *, int); -struct tegra186_tmr { - struct tegra186_timer *parent; - void *regs; - unsigned int index; - unsigned int hwirq; -}; +typedef void (*btf_trace_nfs_revalidate_inode_enter)(void *, const struct inode *); -struct tegra186_timer { - const struct tegra186_timer_soc *soc; - struct device *dev; - void *regs; - struct tegra186_wdt *wdt; - struct clocksource usec; - struct clocksource tsc; - struct clocksource osc; -}; +typedef void (*btf_trace_nfs_revalidate_inode_exit)(void *, const struct inode *, int); -struct supplier_bindings { - struct device_node * (*parse_prop)(struct device_node *, const char *, int); - bool optional; - bool node_not_dev; -}; +typedef void (*btf_trace_nfs_invalidate_mapping_enter)(void *, const struct inode *); -struct of_endpoint { - unsigned int port; - unsigned int id; - const struct device_node *local_node; -}; +typedef void (*btf_trace_nfs_invalidate_mapping_exit)(void *, const struct inode *, int); -struct zynqmp_ipi_mchan { - int is_opened; - void *req_buf; - void *resp_buf; - void *rx_buf; - size_t req_buf_size; - size_t resp_buf_size; - unsigned int chan_type; -}; +typedef void (*btf_trace_nfs_getattr_enter)(void *, const struct inode *); -struct zynqmp_ipi_pdata; +typedef void (*btf_trace_nfs_getattr_exit)(void *, const struct inode *, int); -struct zynqmp_ipi_mbox { - struct zynqmp_ipi_pdata *pdata; - struct device dev; - u32 remote_id; - struct mbox_controller mbox; - struct zynqmp_ipi_mchan mchans[2]; -}; +typedef void (*btf_trace_nfs_setattr_enter)(void *, const struct inode *); -struct zynqmp_ipi_pdata { - struct device *dev; - int irq; - unsigned int method; - u32 local_id; - int num_mboxes; - struct zynqmp_ipi_mbox ipi_mboxes[0]; -}; +typedef void (*btf_trace_nfs_setattr_exit)(void *, const struct inode *, int); -struct iio_map; +typedef void (*btf_trace_nfs_writeback_inode_enter)(void *, const struct inode *); -struct iio_map_internal { - struct iio_dev *indio_dev; - struct iio_map *map; - struct list_head l; -}; +typedef void (*btf_trace_nfs_writeback_inode_exit)(void *, const struct inode *, int); -struct iio_map { - const char *adc_channel_label; - const char *consumer_dev_name; - const char *consumer_channel; - void *consumer_data; -}; +typedef void (*btf_trace_nfs_fsync_enter)(void *, const struct inode *); -struct iio_channel { - struct iio_dev *indio_dev; - const struct iio_chan_spec *channel; - void *data; -}; +typedef void (*btf_trace_nfs_fsync_exit)(void *, const struct inode *, int); -struct tee_ioctl_buf_data { - __u64 buf_ptr; - __u64 buf_len; -}; +typedef void (*btf_trace_nfs_access_enter)(void *, const struct inode *); -struct tee_ioctl_shm_register_data { - __u64 addr; - __u64 length; - __u32 flags; - __s32 id; -}; +typedef void (*btf_trace_nfs_set_cache_invalid)(void *, const struct inode *, int); -struct tee_iocl_supp_recv_arg { - __u32 func; - __u32 num_params; - struct tee_ioctl_param params[0]; -}; +typedef void (*btf_trace_nfs_readdir_force_readdirplus)(void *, const struct inode *); -struct tee_iocl_supp_send_arg { - __u32 ret; - __u32 num_params; - struct tee_ioctl_param params[0]; -}; +typedef void (*btf_trace_nfs_readdir_cache_fill_done)(void *, const struct inode *, int); -struct tee_ioctl_close_session_arg { - __u32 session; -}; +typedef void (*btf_trace_nfs_readdir_uncached_done)(void *, const struct inode *, int); -struct tee_ioctl_cancel_arg { - __u32 cancel_id; - __u32 session; -}; +typedef void (*btf_trace_nfs_access_exit)(void *, const struct inode *, unsigned int, unsigned int, int); -struct tee_ioctl_shm_alloc_data { - __u64 size; - __u32 flags; - __s32 id; -}; +typedef void (*btf_trace_nfs_size_truncate)(void *, const struct inode *, loff_t); -struct match_dev_data { - struct tee_ioctl_version_data *vers; - const void *data; - int (*match)(struct tee_ioctl_version_data *, const void *); -}; +typedef void (*btf_trace_nfs_size_wcc)(void *, const struct inode *, loff_t); -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, -}; +typedef void (*btf_trace_nfs_size_update)(void *, const struct inode *, loff_t); -struct flow_dissector_key { - enum flow_dissector_key_id key_id; - size_t offset; -}; +typedef void (*btf_trace_nfs_size_grow)(void *, const struct inode *, loff_t); -struct nf_ct_event { - struct nf_conn *ct; - u32 portid; - int report; -}; +typedef void (*btf_trace_nfs_readdir_invalidate_cache_range)(void *, const struct inode *, loff_t, loff_t); -struct nf_ct_ext { - u8 offset[5]; - u8 len; - unsigned int gen_id; - long: 0; - char data[0]; -}; +typedef void (*btf_trace_nfs_readdir_cache_fill)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); -struct nf_conntrack_expect; +typedef void (*btf_trace_nfs_readdir_uncached)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); -struct nf_exp_event { - struct nf_conntrack_expect *exp; - u32 portid; - int report; -}; +typedef void (*btf_trace_nfs_lookup_enter)(void *, const struct inode *, const struct dentry *, unsigned int); -struct nf_conntrack_tuple_mask { - struct { - union nf_inet_addr u3; - union nf_conntrack_man_proto u; - } src; -}; +typedef void (*btf_trace_nfs_lookup_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); -struct nf_conntrack_helper; +typedef void (*btf_trace_nfs_lookup_revalidate_enter)(void *, const struct inode *, const struct dentry *, unsigned int); -struct nf_conntrack_expect { - struct hlist_node lnode; - struct hlist_node hnode; - struct nf_conntrack_tuple tuple; - struct nf_conntrack_tuple_mask mask; - refcount_t use; - unsigned int flags; - unsigned int class; - void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *); - struct nf_conntrack_helper *helper; - struct nf_conn *master; - struct timer_list timeout; - union nf_inet_addr saved_addr; - union nf_conntrack_man_proto saved_proto; - enum ip_conntrack_dir dir; - struct callback_head rcu; -}; +typedef void (*btf_trace_nfs_lookup_revalidate_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); -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, -}; +typedef void (*btf_trace_nfs_readdir_lookup)(void *, const struct inode *, const struct dentry *, unsigned int); -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, -}; +typedef void (*btf_trace_nfs_readdir_lookup_revalidate_failed)(void *, const struct inode *, const struct dentry *, unsigned int); -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, -}; +typedef void (*btf_trace_nfs_readdir_lookup_revalidate)(void *, const struct inode *, const struct dentry *, unsigned int, int); -struct _flow_keys_digest_data { - __be16 n_proto; - u8 ip_proto; - u8 padding; - __be32 ports; - __be32 src; - __be32 dst; -}; +typedef void (*btf_trace_nfs_atomic_open_enter)(void *, const struct inode *, const struct nfs_open_context *, unsigned int); -struct mpls_label { - __be32 entry; -}; +typedef void (*btf_trace_nfs_atomic_open_exit)(void *, const struct inode *, const struct nfs_open_context *, unsigned int, int); -struct batadv_unicast_packet { - __u8 packet_type; - __u8 version; - __u8 ttl; - __u8 ttvn; - __u8 dest[6]; -}; +typedef void (*btf_trace_nfs_create_enter)(void *, const struct inode *, const struct dentry *, unsigned int); -struct pppoe_tag { - __be16 tag_type; - __be16 tag_len; - char tag_data[0]; -}; +typedef void (*btf_trace_nfs_create_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); -struct pppoe_hdr { - __u8 type: 4; - __u8 ver: 4; - __u8 code; - __be16 sid; - __be16 length; - struct pppoe_tag tag[0]; -}; +typedef void (*btf_trace_nfs_mknod_enter)(void *, const struct inode *, const struct dentry *); -struct flow_dissector_key_cfm { - u8 mdl_ver; - u8 opcode; -}; +typedef void (*btf_trace_nfs_mknod_exit)(void *, const struct inode *, const struct dentry *, int); -struct tipc_basic_hdr { - __be32 w[4]; -}; +typedef void (*btf_trace_nfs_mkdir_enter)(void *, const struct inode *, const struct dentry *); -struct nf_conn_labels { - unsigned long bits[2]; -}; +typedef void (*btf_trace_nfs_mkdir_exit)(void *, const struct inode *, const struct dentry *, int); -struct flow_dissector_key_hash { - u32 hash; -}; +typedef void (*btf_trace_nfs_rmdir_enter)(void *, const struct inode *, const struct dentry *); -struct hsr_tag { - __be16 path_and_LSDU_size; - __be16 sequence_nr; - __be16 encap_proto; -}; +typedef void (*btf_trace_nfs_rmdir_exit)(void *, const struct inode *, const struct dentry *, int); -struct flow_dissector_key_num_of_vlans { - u8 num_of_vlans; -}; +typedef void (*btf_trace_nfs_remove_enter)(void *, const struct inode *, const struct dentry *); -struct flow_keys_digest { - u8 data[16]; -}; +typedef void (*btf_trace_nfs_remove_exit)(void *, const struct inode *, const struct dentry *, int); -typedef void (*btf_trace_bpf_test_finish)(void *, int *); +typedef void (*btf_trace_nfs_unlink_enter)(void *, const struct inode *, const struct dentry *); -struct bpf_test_timer { - enum { - NO_PREEMPT = 0, - NO_MIGRATE = 1, - } mode; - u32 i; - u64 time_start; - u64 time_spent; -}; +typedef void (*btf_trace_nfs_unlink_exit)(void *, const struct inode *, const struct dentry *, int); -struct bpf_fentry_test_t { - struct bpf_fentry_test_t *a; -}; +typedef void (*btf_trace_nfs_symlink_enter)(void *, const struct inode *, const struct dentry *); -struct trace_event_raw_bpf_test_finish { - struct trace_entry ent; - int err; - char __data[0]; -}; +typedef void (*btf_trace_nfs_symlink_exit)(void *, const struct inode *, const struct dentry *, int); -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; -}; +typedef void (*btf_trace_nfs_link_enter)(void *, const struct inode *, const struct inode *, const struct dentry *); -struct xdp_page_head { - struct xdp_buff orig_ctx; - struct xdp_buff ctx; - union { - struct { - struct {} __empty_frame; - struct xdp_frame frame[0]; - }; - struct { - struct {} __empty_data; - u8 data[0]; - }; - }; -}; +typedef void (*btf_trace_nfs_link_exit)(void *, const struct inode *, const struct inode *, const struct dentry *, int); -struct trace_event_data_offsets_bpf_test_finish {}; +typedef void (*btf_trace_nfs_rename_enter)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *); -struct prog_test_member1 { - int a; -}; +typedef void (*btf_trace_nfs_rename_exit)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); -struct prog_test_member { - struct prog_test_member1 m; - int c; -}; +typedef void (*btf_trace_nfs_sillyrename_rename)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); -struct prog_test_ref_kfunc { - int a; - int b; - struct prog_test_member memb; - struct prog_test_ref_kfunc *next; - refcount_t cnt; -}; +typedef void (*btf_trace_nfs_sillyrename_unlink)(void *, const struct nfs_unlinkdata *, int); -struct bpf_raw_tp_test_run_info { - struct bpf_prog *prog; - void *ctx; - u32 retval; -}; +typedef void (*btf_trace_nfs_aop_readpage)(void *, const struct inode *, struct folio *); -struct bpf_cg_run_ctx { - struct bpf_run_ctx run_ctx; - const struct bpf_prog_array_item *prog_item; - int retval; -}; +typedef void (*btf_trace_nfs_aop_readpage_done)(void *, const struct inode *, struct folio *, int); -struct group_source_req { - __u32 gsr_interface; - struct __kernel_sockaddr_storage gsr_group; - struct __kernel_sockaddr_storage gsr_source; -}; +typedef void (*btf_trace_nfs_writeback_folio)(void *, const struct inode *, struct folio *); -struct compat_group_source_req { - __u32 gsr_interface; - struct __kernel_sockaddr_storage gsr_group; - struct __kernel_sockaddr_storage gsr_source; -} __attribute__((packed)); +typedef void (*btf_trace_nfs_writeback_folio_done)(void *, const struct inode *, struct folio *, int); -struct compat_group_req { - __u32 gr_interface; - struct __kernel_sockaddr_storage gr_group; -} __attribute__((packed)); +typedef void (*btf_trace_nfs_invalidate_folio)(void *, const struct inode *, struct folio *); -struct group_req { - __u32 gr_interface; - struct __kernel_sockaddr_storage gr_group; -}; +typedef void (*btf_trace_nfs_launder_folio_done)(void *, const struct inode *, struct folio *, int); -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)); - }; -}; +typedef void (*btf_trace_nfs_aop_readahead)(void *, const struct inode *, loff_t, unsigned int); -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); -}; +typedef void (*btf_trace_nfs_aop_readahead_done)(void *, const struct inode *, unsigned int, int); -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); -}; +typedef void (*btf_trace_nfs_initiate_read)(void *, const struct nfs_pgio_header *); -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, -}; +typedef void (*btf_trace_nfs_readpage_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); -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, -}; +typedef void (*btf_trace_nfs_readpage_short)(void *, const struct rpc_task *, const struct nfs_pgio_header *); -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, -}; +typedef void (*btf_trace_nfs_pgio_error)(void *, const struct nfs_pgio_header *, int, loff_t); -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, -}; +typedef void (*btf_trace_nfs_initiate_write)(void *, const struct nfs_pgio_header *); -enum { - LWTUNNEL_IP_OPT_VXLAN_UNSPEC = 0, - LWTUNNEL_IP_OPT_VXLAN_GBP = 1, - __LWTUNNEL_IP_OPT_VXLAN_MAX = 2, -}; +typedef void (*btf_trace_nfs_writeback_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); -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, -}; +typedef void (*btf_trace_nfs_write_error)(void *, const struct inode *, const struct nfs_page *, int); -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, -}; +typedef void (*btf_trace_nfs_comp_error)(void *, const struct inode *, const struct nfs_page *, int); -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; -}; +typedef void (*btf_trace_nfs_commit_error)(void *, const struct inode *, const struct nfs_page *, int); -struct erspan_metadata { - int version; - union { - __be32 index; - struct erspan_md2 md2; - } u; -}; +typedef void (*btf_trace_nfs_initiate_commit)(void *, const struct nfs_commit_data *); -struct geneve_opt { - __be16 opt_class; - u8 type; - u8 length: 5; - u8 r3: 1; - u8 r2: 1; - u8 r1: 1; - u8 opt_data[0]; -}; +typedef void (*btf_trace_nfs_commit_done)(void *, const struct rpc_task *, const struct nfs_commit_data *); -struct vxlan_metadata { - u32 gbp; -}; +typedef void (*btf_trace_nfs_direct_commit_complete)(void *, const struct nfs_direct_req *); -struct gssx_name_attr; +typedef void (*btf_trace_nfs_direct_resched_write)(void *, const struct nfs_direct_req *); -struct gssx_name_attr_array { - u32 count; - struct gssx_name_attr *data; -}; +typedef void (*btf_trace_nfs_direct_write_complete)(void *, const struct nfs_direct_req *); -struct gssx_name_attr { - gssx_buffer attr; - gssx_buffer value; - struct gssx_option_array extensions; -}; +typedef void (*btf_trace_nfs_direct_write_completion)(void *, const struct nfs_direct_req *); -typedef struct { - void *read; - void *write; -} efi_pci_io_protocol_access_t; +typedef void (*btf_trace_nfs_direct_write_schedule_iovec)(void *, const struct nfs_direct_req *); -typedef enum { - EfiPciIoWidthUint8 = 0, - EfiPciIoWidthUint16 = 1, - EfiPciIoWidthUint32 = 2, - EfiPciIoWidthUint64 = 3, - EfiPciIoWidthFifoUint8 = 4, - EfiPciIoWidthFifoUint16 = 5, - EfiPciIoWidthFifoUint32 = 6, - EfiPciIoWidthFifoUint64 = 7, - EfiPciIoWidthFillUint8 = 8, - EfiPciIoWidthFillUint16 = 9, - EfiPciIoWidthFillUint32 = 10, - EfiPciIoWidthFillUint64 = 11, - EfiPciIoWidthMaximum = 12, -} EFI_PCI_IO_PROTOCOL_WIDTH; +typedef void (*btf_trace_nfs_direct_write_reschedule_io)(void *, const struct nfs_direct_req *); -union efi_pci_io_protocol; +typedef void (*btf_trace_nfs_fh_to_dentry)(void *, const struct super_block *, const struct nfs_fh *, u64, int); -typedef union efi_pci_io_protocol efi_pci_io_protocol_t; +typedef void (*btf_trace_nfs_mount_assign)(void *, const char *, const char *); -typedef efi_status_t (*efi_pci_io_protocol_cfg_t)(efi_pci_io_protocol_t *, EFI_PCI_IO_PROTOCOL_WIDTH, u32, unsigned long, void *); +typedef void (*btf_trace_nfs_mount_option)(void *, const struct fs_parameter *); -typedef struct { - efi_pci_io_protocol_cfg_t read; - efi_pci_io_protocol_cfg_t write; -} efi_pci_io_protocol_config_access_t; +typedef void (*btf_trace_nfs_mount_path)(void *, const char *); -typedef struct { - u32 read; - u32 write; -} efi_pci_io_protocol_access_32_t; +typedef void (*btf_trace_nfs_xdr_status)(void *, const struct xdr_stream *, int); -union efi_pci_io_protocol { - struct { - void *poll_mem; - void *poll_io; - efi_pci_io_protocol_access_t mem; - efi_pci_io_protocol_access_t io; - efi_pci_io_protocol_config_access_t pci; - void *copy_mem; - void *map; - void *unmap; - void *allocate_buffer; - void *free_buffer; - void *flush; - efi_status_t (*get_location)(efi_pci_io_protocol_t *, unsigned long *, unsigned long *, unsigned long *, unsigned long *); - void *attributes; - void *get_bar_attributes; - void *set_bar_attributes; - uint64_t romsize; - void *romimage; - }; - struct { - u32 poll_mem; - u32 poll_io; - efi_pci_io_protocol_access_32_t mem; - efi_pci_io_protocol_access_32_t io; - efi_pci_io_protocol_access_32_t pci; - u32 copy_mem; - u32 map; - u32 unmap; - u32 allocate_buffer; - u32 free_buffer; - u32 flush; - u32 get_location; - u32 attributes; - u32 get_bar_attributes; - u32 set_bar_attributes; - u64 romsize; - u32 romimage; - } mixed_mode; -}; +typedef void (*btf_trace_nfs_xdr_bad_filehandle)(void *, const struct xdr_stream *, int); -struct tcpa_event { - u32 pcr_index; - u32 event_type; - u8 pcr_value[20]; - u32 event_size; - u8 event_data[0]; +struct trace_event_raw_nfs_inode_event { + struct trace_entry ent; + dev_t dev; + u32 fhandle; + u64 fileid; + u64 version; + char __data[0]; }; -struct kvm_ffa_descriptor_buffer { - void *buf; - size_t len; +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 kvm_ffa_buffers { - hyp_spinlock_t lock; - void *tx; - void *rx; +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 ffa_mem_region_addr_range { - u64 address; - u32 pg_cnt; - u32 reserved; +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 ffa_composite_mem_region { - u32 total_pg_cnt; - u32 addr_range_cnt; - u64 reserved; - struct ffa_mem_region_addr_range constituents[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 ffa_mem_region_attributes { - u16 receiver; - u8 attrs; - u8 flag; - u32 composite_off; - u64 reserved; +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 ffa_mem_region { - u16 sender_id; - u8 attributes; - u8 reserved_0; - u32 flags; - u64 handle; - u64 tag; - u32 reserved_1; - u32 ep_count; - struct ffa_mem_region_attributes ep_mem_access[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]; }; -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, +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 sys_off_handler { - struct notifier_block nb; - int (*sys_off_cb)(struct sys_off_data *); - void *cb_data; - enum sys_off_mode mode; - bool blocking; - void *list; +struct 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 clock_data { - seqcount_latch_t seq; - struct clock_read_data read_data[2]; - ktime_t wrap_kt; - unsigned long rate; - u64 (*actual_read_sched_clock)(); +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]; }; -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 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]; }; -enum freezer_state_flags { - CGROUP_FREEZER_ONLINE = 1, - CGROUP_FREEZING_SELF = 2, - CGROUP_FREEZING_PARENT = 4, - CGROUP_FROZEN = 8, - CGROUP_FREEZING = 6, +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 freezer { - struct cgroup_subsys_state css; - unsigned int state; +struct trace_event_raw_nfs_directory_event { + struct trace_entry ent; + dev_t dev; + u64 dir; + u32 __data_loc_name; + char __data[0]; }; -struct user_event_group { - char *system_name; - struct hlist_node node; - struct mutex reg_mutex; - struct hlist_head register_table[256]; +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]; }; -enum user_reg_flag { - USER_EVENT_REG_PERSIST = 1, - USER_EVENT_REG_MAX = 2, +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 user_event; - -struct user_event_enabler { - struct list_head mm_enablers_link; - struct user_event *event; - unsigned long addr; - unsigned long values; +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 user_event { - struct user_event_group *group; - struct tracepoint tracepoint; - struct trace_event_call call; - struct trace_event_class class; - struct dyn_event devent; - struct hlist_node node; - struct list_head fields; - struct list_head validators; - struct work_struct put_work; - refcount_t refcnt; - int min_size; - int reg_flags; - char status; +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 user_event_validator { - struct list_head user_event_link; - int offset; - int flags; +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 user_event_refs { - struct callback_head rcu; - int count; - struct user_event *events[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 user_reg { - __u32 size; - __u8 enable_bit; - __u8 enable_size; - __u16 flags; - __u64 enable_addr; - __u64 name_args; - __u32 write_index; -} __attribute__((packed)); - -struct user_event_enabler_fault { - struct work_struct work; - struct user_event_mm *mm; - struct user_event_enabler *enabler; - int attempt; +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 user_unreg { - __u32 size; - __u8 disable_bit; - __u8 __reserved; - __u16 __reserved2; - __u64 disable_addr; +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 user_event_file_info { - struct user_event_group *group; - struct user_event_refs *refs; +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]; }; -typedef void (*user_event_func_t)(struct user_event *, struct iov_iter *, void *, bool *); - -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: 64; - long: 64; +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 bpf_devmap_val { - __u32 ifindex; - union { - int fd; - __u32 id; - } bpf_prog; +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 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 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 vm_event_state { - unsigned long event[107]; +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 contig_page_info { - unsigned long free_pages; - unsigned long free_blocks_total; - unsigned long free_blocks_suitable; +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 files_stat_struct { - unsigned long nr_files; - unsigned long nr_free_files; - unsigned long max_files; +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 backing_file { - struct file file; - struct path real_path; +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 prepend_buffer { - char *buf; - int len; +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 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; - compat_siginfo_t csigdata; - size_t size; - int thread_notes; +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 compat_elf_siginfo { - compat_int_t si_signo; - compat_int_t si_code; - compat_int_t si_errno; +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 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 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]; }; -typedef unsigned int compat_elf_greg_t; - -typedef compat_elf_greg_t compat_elf_gregset_t[18]; - -struct compat_elf_prstatus { - struct compat_elf_prstatus_common common; - compat_elf_gregset_t pr_reg; - compat_int_t pr_fpvalid; +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 elf_thread_core_info___2 { - struct elf_thread_core_info___2 *next; - struct task_struct *task; - struct compat_elf_prstatus prstatus; - struct memelfnote notes[0]; +struct trace_event_raw_nfs_mount_assign { + struct trace_entry ent; + u32 __data_loc_option; + u32 __data_loc_value; + char __data[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 trace_event_raw_nfs_mount_option { + struct trace_entry ent; + u32 __data_loc_option; + char __data[0]; }; -struct vmcore { - struct list_head list; - unsigned long long paddr; - unsigned long long size; - loff_t offset; +struct trace_event_raw_nfs_mount_path { + struct trace_entry ent; + u32 __data_loc_path; + char __data[0]; }; -struct vmcore_cb { - bool (*pfn_is_ram)(struct vmcore_cb *, unsigned long); - struct list_head next; +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]; }; -typedef struct elf64_note Elf64_Nhdr; - -struct nfs_createdata { - struct nfs_createargs arg; - struct nfs_diropok res; - struct nfs_fh fhandle; - struct nfs_fattr fattr; +struct trace_event_data_offsets_nfs_lookup_event { + u32 name; }; -struct nfs42_layouterror_data { - struct nfs42_layouterror_args args; - struct nfs42_layouterror_res res; - struct inode *inode; - struct pnfs_layout_segment *lseg; +struct trace_event_data_offsets_nfs_lookup_event_done { + u32 name; }; -struct nfs42_offloadcancel_data { - struct nfs_server *seq_server; - struct nfs42_offload_status_args args; - struct nfs42_offload_status_res res; +struct trace_event_data_offsets_nfs_atomic_open_enter { + u32 name; }; -struct keyring_read_iterator_context { - size_t buflen; - size_t count; - key_serial_t *buffer; +struct trace_event_data_offsets_nfs_atomic_open_exit { + u32 name; }; -struct chksum_desc_ctx___2 { - __u16 crc; +struct trace_event_data_offsets_nfs_create_enter { + u32 name; }; -struct pr_clear { - __u64 key; - __u32 flags; - __u32 __pad; +struct trace_event_data_offsets_nfs_create_exit { + u32 name; }; -struct pr_reservation { - __u64 key; - __u32 type; - __u32 flags; +struct trace_event_data_offsets_nfs_directory_event { + u32 name; }; -struct pr_registration { - __u64 old_key; - __u64 new_key; - __u32 flags; - __u32 __pad; +struct trace_event_data_offsets_nfs_directory_event_done { + u32 name; }; -struct compat_hd_geometry { - unsigned char heads; - unsigned char sectors; - unsigned short cylinders; - u32 start; +struct trace_event_data_offsets_nfs_link_enter { + u32 name; }; -struct compat_blkpg_ioctl_arg { - compat_int_t op; - compat_int_t flags; - compat_int_t datalen; - compat_caddr_t data; +struct trace_event_data_offsets_nfs_link_exit { + u32 name; }; -struct pr_preempt { - __u64 old_key; - __u64 new_key; - __u32 type; - __u32 flags; +struct trace_event_data_offsets_nfs_rename_event { + u32 old_name; + u32 new_name; }; -enum { - IO_SQ_THREAD_SHOULD_STOP = 0, - IO_SQ_THREAD_SHOULD_PARK = 1, +struct trace_event_data_offsets_nfs_rename_event_done { + u32 old_name; + u32 new_name; }; -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 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 mtk_sysirq_chip_data { - raw_spinlock_t lock; - u32 nr_intpol_bases; - void **intpol_bases; - u32 *intpol_words; - u8 *intpol_idx; - u16 *which_word; +struct trace_event_data_offsets_nfs_sillyrename_unlink { + u32 name; }; -struct id_to_type { - u32 id; - int type; +struct trace_event_data_offsets_nfs_mount_assign { + u32 option; + u32 value; }; -enum brcm_family_type { - BRCM_FAMILY_3390A0 = 0, - BRCM_FAMILY_4908 = 1, - BRCM_FAMILY_7250B0 = 2, - BRCM_FAMILY_7271A0 = 3, - BRCM_FAMILY_7364A0 = 4, - BRCM_FAMILY_7366C0 = 5, - BRCM_FAMILY_74371A0 = 6, - BRCM_FAMILY_7439B0 = 7, - BRCM_FAMILY_7445D0 = 8, - BRCM_FAMILY_7260A0 = 9, - BRCM_FAMILY_7278A0 = 10, - BRCM_FAMILY_COUNT = 11, +struct trace_event_data_offsets_nfs_mount_option { + u32 option; }; -enum { - USB_CTRL_SETUP_SCB1_EN_SELECTOR = 0, - USB_CTRL_SETUP_SCB2_EN_SELECTOR = 1, - USB_CTRL_SETUP_SS_EHCI64BIT_EN_SELECTOR = 2, - USB_CTRL_SETUP_STRAP_IPP_SEL_SELECTOR = 3, - USB_CTRL_SETUP_OC3_DISABLE_PORT0_SELECTOR = 4, - USB_CTRL_SETUP_OC3_DISABLE_PORT1_SELECTOR = 5, - USB_CTRL_SETUP_OC3_DISABLE_SELECTOR = 6, - USB_CTRL_PLL_CTL_PLL_IDDQ_PWRDN_SELECTOR = 7, - USB_CTRL_USB_PM_BDC_SOFT_RESETB_SELECTOR = 8, - USB_CTRL_USB_PM_XHC_SOFT_RESETB_SELECTOR = 9, - USB_CTRL_USB_PM_USB_PWRDN_SELECTOR = 10, - USB_CTRL_USB30_CTL1_XHC_SOFT_RESETB_SELECTOR = 11, - USB_CTRL_USB30_CTL1_USB3_IOC_SELECTOR = 12, - USB_CTRL_USB30_CTL1_USB3_IPP_SELECTOR = 13, - USB_CTRL_USB_DEVICE_CTL1_PORT_MODE_SELECTOR = 14, - USB_CTRL_USB_PM_SOFT_RESET_SELECTOR = 15, - USB_CTRL_SETUP_CC_DRD_MODE_ENABLE_SELECTOR = 16, - USB_CTRL_SETUP_STRAP_CC_DRD_MODE_ENABLE_SEL_SELECTOR = 17, - USB_CTRL_USB_PM_USB20_HC_RESETB_SELECTOR = 18, - USB_CTRL_SETUP_ENDIAN_SELECTOR = 19, - USB_CTRL_SELECTOR_COUNT = 20, +struct trace_event_data_offsets_nfs_mount_path { + u32 path; }; -struct rcar_gen3_phy_drv_data { - const struct phy_ops *phy_usb2_ops; - bool no_adp_ctrl; +struct trace_event_data_offsets_nfs_xdr_event { + u32 program; + u32 procedure; }; -enum rcar_gen3_phy_index { - PHY_INDEX_BOTH_HC = 0, - PHY_INDEX_OHCI = 1, - PHY_INDEX_EHCI = 2, - PHY_INDEX_HSUSB = 3, -}; +struct trace_event_data_offsets_nfs_inode_event {}; -struct rcar_gen3_chan; +struct trace_event_data_offsets_nfs_inode_event_done {}; -struct rcar_gen3_phy___2 { - struct phy *phy; - struct rcar_gen3_chan *ch; - u32 int_enable_bits; - bool initialized; - bool otg_initialized; - bool powered; -}; +struct trace_event_data_offsets_nfs_access_exit {}; -struct rcar_gen3_chan { - void *base; - struct device *dev; - struct extcon_dev *extcon; - struct rcar_gen3_phy___2 rphys[4]; - struct regulator *vbus; - struct work_struct work; - struct mutex lock; - enum usb_dr_mode dr_mode; - int irq; - u32 obint_enable_bits; - bool extcon_host; - bool is_otg_channel; - bool uses_otg_pins; - bool soc_no_adp_ctrl; -}; +struct trace_event_data_offsets_nfs_update_size_class {}; -enum enable_type { - undefined = -1, - user_disabled = 0, - auto_disabled = 1, - user_enabled = 2, - auto_enabled = 3, -}; +struct trace_event_data_offsets_nfs_inode_range_event {}; -enum release_type { - leaf_only = 0, - whole_subtree = 1, -}; +struct trace_event_data_offsets_nfs_readdir_event {}; -struct pci_dev_resource { - struct list_head list; - struct resource *res; - struct pci_dev *dev; - resource_size_t start; - resource_size_t end; - resource_size_t add_size; - resource_size_t min_align; - unsigned long flags; -}; +struct trace_event_data_offsets_nfs_folio_event {}; -enum dw_pcie_app_clk { - DW_PCIE_DBI_CLK = 0, - DW_PCIE_MSTR_CLK = 1, - DW_PCIE_SLV_CLK = 2, - DW_PCIE_NUM_APP_CLKS = 3, -}; +struct trace_event_data_offsets_nfs_folio_event_done {}; -enum dw_pcie_core_clk { - DW_PCIE_PIPE_CLK = 0, - DW_PCIE_CORE_CLK = 1, - DW_PCIE_AUX_CLK = 2, - DW_PCIE_REF_CLK = 3, - DW_PCIE_NUM_CORE_CLKS = 4, -}; +struct trace_event_data_offsets_nfs_aop_readahead {}; -enum dw_pcie_app_rst { - DW_PCIE_DBI_RST = 0, - DW_PCIE_MSTR_RST = 1, - DW_PCIE_SLV_RST = 2, - DW_PCIE_NUM_APP_RSTS = 3, -}; +struct trace_event_data_offsets_nfs_aop_readahead_done {}; -enum dw_pcie_core_rst { - DW_PCIE_NON_STICKY_RST = 0, - DW_PCIE_STICKY_RST = 1, - DW_PCIE_CORE_RST = 2, - DW_PCIE_PIPE_RST = 3, - DW_PCIE_PHY_RST = 4, - DW_PCIE_HOT_RST = 5, - DW_PCIE_PWR_RST = 6, - DW_PCIE_NUM_CORE_RSTS = 7, -}; +struct trace_event_data_offsets_nfs_initiate_read {}; -enum dw_edma_chip_flags { - DW_EDMA_CHIP_LOCAL = 1, -}; +struct trace_event_data_offsets_nfs_readpage_done {}; -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 trace_event_data_offsets_nfs_readpage_short {}; -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 trace_event_data_offsets_nfs_pgio_error {}; -struct prm_buffer { - u8 prm_status; - u64 efi_status; - u8 prm_cmd; - guid_t handler_guid; -} __attribute__((packed)); +struct trace_event_data_offsets_nfs_initiate_write {}; -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 trace_event_data_offsets_nfs_writeback_done {}; -struct prm_mmio_info; +struct trace_event_data_offsets_nfs_page_error_class {}; -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 trace_event_data_offsets_nfs_initiate_commit {}; -struct prm_mmio_addr_range { - u64 phys_addr; - u64 virt_addr; - u32 length; -} __attribute__((packed)); +struct trace_event_data_offsets_nfs_commit_done {}; -struct prm_mmio_info { - u64 mmio_count; - struct prm_mmio_addr_range addr_ranges[0]; +struct trace_event_data_offsets_nfs_direct_req_class {}; + +struct trace_event_data_offsets_nfs_fh_to_dentry {}; + +struct getdents_callback___2 { + struct dir_context ctx; + char *name; + u64 ino; + int found; + int sequence; }; -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 { + AUTOFS_IOC_READY_CMD = 96, + AUTOFS_IOC_FAIL_CMD = 97, + AUTOFS_IOC_CATATONIC_CMD = 98, + AUTOFS_IOC_PROTOVER_CMD = 99, + AUTOFS_IOC_SETTIMEOUT_CMD = 100, + AUTOFS_IOC_EXPIRE_CMD = 101, }; enum { - MATCH_MTR = 0, - MATCH_MEQ = 1, - MATCH_MLE = 2, - MATCH_MLT = 3, - MATCH_MGE = 4, - MATCH_MGT = 5, + SKCIPHER_WALK_PHYS = 1, + SKCIPHER_WALK_SLOW = 2, + SKCIPHER_WALK_COPY = 4, + SKCIPHER_WALK_DIFF = 8, + SKCIPHER_WALK_SLEEP = 16, }; -enum kp_band { - KP_BAND_MID = 0, - KP_BAND_HIGH = 1, - KP_BAND_HIGH_HIGH = 2, +struct skcipher_walk_buffer { + struct list_head entry; + struct scatter_walk dst; + unsigned int len; + u8 *data; + u8 buffer[0]; }; -enum vco_freq_range { - VCO_LOW = 700000000, - VCO_MID = 1200000000, - VCO_HIGH = 2200000000, - VCO_HIGH_HIGH = 3100000000, - VCO_MAX = 4000000000, +struct skcipher_instance { + void (*free)(struct skcipher_instance *); + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct skcipher_alg alg; + }; }; -struct iproc_pll; +struct crypto_istat_cipher { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t err_cnt; +}; -struct iproc_clk { - struct clk_hw hw; - struct iproc_pll *pll; - const struct iproc_clk_ctrl *ctrl; +struct skcipher_ctx_simple { + struct crypto_cipher *cipher; }; -struct iproc_pll { - void *status_base; - void *control_base; - void *pwr_base; - void *asiu_base; - const struct iproc_pll_ctrl *ctrl; - const struct iproc_pll_vco_param *vco_param; - unsigned int num_vco_entries; +struct crypto_skcipher_spawn { + struct crypto_spawn base; }; -struct mtk_clk_rst_data { - struct regmap *regmap; - struct reset_controller_dev rcdev; - const struct mtk_clk_rst_desc *desc; +struct crypto_link { + int (*doit)(struct sk_buff *, struct nlmsghdr *, struct nlattr **); + int (*dump)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); }; -struct clk_periph_data { - const char *name; - const char * const *parent_names; - int num_parents; - struct clk_hw *mux_hw; - struct clk_hw *rate_hw; - struct clk_hw *gate_hw; - struct clk_hw *muxrate_hw; - bool is_double_div; +enum { + CRYPTO_MSG_BASE = 16, + CRYPTO_MSG_NEWALG = 16, + CRYPTO_MSG_DELALG = 17, + CRYPTO_MSG_UPDATEALG = 18, + CRYPTO_MSG_GETALG = 19, + CRYPTO_MSG_DELRNG = 20, + CRYPTO_MSG_GETSTAT = 21, + __CRYPTO_MSG_MAX = 22, }; -struct clk_double_div { - struct clk_hw hw; - void *reg1; - u8 shift1; - void *reg2; - u8 shift2; +struct crypto_user_alg { + char cru_name[64]; + char cru_driver_name[64]; + char cru_module_name[64]; + __u32 cru_type; + __u32 cru_mask; + __u32 cru_refcnt; + __u32 cru_flags; }; -struct clk_pm_cpu { - struct clk_hw hw; - void *reg_mux; - u8 shift_mux; - u32 mask_mux; - void *reg_div; - u8 shift_div; - struct regmap *nb_pm_base; - unsigned long l1_expiration; +struct crypto_report_larval { + char type[64]; }; -struct clk_periph_driver_data { - struct clk_hw_onecell_data *hw_data; - spinlock_t lock; - void *reg; - u32 tbg_sel; - u32 div_sel0; - u32 div_sel1; - u32 div_sel2; - u32 clk_sel; - u32 clk_dis; +struct crypto_report_cipher { + char type[64]; + unsigned int blocksize; + unsigned int min_keysize; + unsigned int max_keysize; }; -enum clk_ids___10 { - LAST_DT_CORE_CLK___10 = 76, - CLK_EXTAL___10 = 77, - CLK_EXTALR___10 = 78, - CLK_MAIN___10 = 79, - CLK_PLL1___10 = 80, - CLK_PLL2___6 = 81, - CLK_PLL3___9 = 82, - CLK_PLL4___6 = 83, - CLK_PLL5___3 = 84, - CLK_PLL6___2 = 85, - CLK_PLL1_DIV2___10 = 86, - CLK_PLL2_DIV2___2 = 87, - CLK_PLL3_DIV2___2 = 88, - CLK_PLL4_DIV2 = 89, - CLK_PLL5_DIV2___3 = 90, - CLK_PLL5_DIV4___3 = 91, - CLK_PLL6_DIV2___2 = 92, - CLK_S0___8 = 93, - CLK_S0_VIO = 94, - CLK_S0_VC = 95, - CLK_S0_HSC = 96, - CLK_SASYNCPER___2 = 97, - CLK_SV_VIP = 98, - CLK_SV_IR = 99, - CLK_SDSRC___9 = 100, - CLK_RPCSRC___9 = 101, - CLK_VIO = 102, - CLK_VC = 103, - CLK_OCO___4 = 104, - MOD_CLK_BASE___10 = 105, +struct crypto_dump_info { + struct sk_buff *in_skb; + struct sk_buff *out_skb; + u32 nlmsg_seq; + u16 nlmsg_flags; }; -struct fsl_soc_data { - const char *sfp_compat; - u32 uid_offset; +struct blk_major_name { + struct blk_major_name *next; + int major; + char name[16]; + void (*probe)(dev_t); }; -struct fsl_soc_die_attr { - char *die; - u32 svr; - u32 mask; +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 smem_partition { - void *virt_base; - phys_addr_t phys_base; - size_t cacheline; - size_t size; +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 smem_region { - phys_addr_t aux_base; - void *virt_base; - size_t size; +struct once_work { + struct work_struct work; + struct static_key_true *key; + struct module *module; }; -struct smem_ptable; - -struct qcom_smem { - struct device *dev; - struct hwspinlock *hwlock; - u32 item_count; - struct platform_device *socinfo; - struct smem_ptable *ptable; - struct smem_partition global_partition; - struct smem_partition partitions[20]; - unsigned int num_regions; - struct smem_region regions[0]; +struct sg_pool { + size_t size; + char *name; + struct kmem_cache *slab; + mempool_t *pool; }; -struct smem_ptable_entry { - __le32 offset; - __le32 size; - __le32 flags; - __le16 host0; - __le16 host1; - __le32 cacheline; - __le32 reserved[7]; +struct intmux_irqchip_data { + u32 saved_reg; + int chanidx; + int irq; + struct irq_domain *domain; }; -struct smem_ptable { - u8 magic[4]; - __le32 version; - __le32 num_entries; - __le32 reserved[5]; - struct smem_ptable_entry entry[0]; +struct intmux_data { + raw_spinlock_t lock; + void *regs; + struct clk *ipg_clk; + int channum; + struct intmux_irqchip_data irqchip_data[0]; }; -struct smem_partition_header { - u8 magic[4]; - __le16 host0; - __le16 host1; - __le32 size; - __le32 offset_free_uncached; - __le32 offset_free_cached; - __le32 reserved[3]; +struct mvebu_a3700_comphy_conf { + unsigned int lane; + enum phy_mode mode; + int submode; }; -struct smem_info { - u8 magic[4]; - __le32 size; - __le32 base_addr; - __le32 reserved; - __le16 num_items; +struct gbe_phy_init_data_fix { + u16 addr; + u16 value; }; -struct smem_global_entry { - __le32 allocated; - __le32 offset; - __le32 size; - __le32 aux_base; +struct mvebu_a3700_comphy_priv; + +struct mvebu_a3700_comphy_lane { + struct mvebu_a3700_comphy_priv *priv; + struct device *dev; + unsigned int id; + enum phy_mode mode; + int submode; + bool invert_tx; + bool invert_rx; }; -struct smem_proc_comm { - __le32 command; - __le32 status; - __le32 params[2]; +struct mvebu_a3700_comphy_priv { + void *comphy_regs; + void *lane0_phy_regs; + void *lane1_phy_regs; + void *lane2_phy_indirect; + spinlock_t lock; + bool xtal_is_40m; }; -struct smem_header { - struct smem_proc_comm proc_comm[4]; - __le32 version[32]; - __le32 initialized; - __le32 free_offset; - __le32 available; - __le32 reserved; - struct smem_global_entry toc[512]; +struct exynos_irq_chip { + struct irq_chip chip; + u32 eint_con; + u32 eint_mask; + u32 eint_pend; + u32 *eint_wake_mask_value; + u32 eint_wake_mask_reg; + void (*set_eint_wakeup_mask)(struct samsung_pinctrl_drv_data *, struct exynos_irq_chip *); }; -struct smem_private_entry { - u16 canary; - __le16 item; - __le32 size; - __le16 padding_data; - __le16 padding_hdr; - __le32 reserved; +struct exynos_eint_gpio_save { + u32 eint_con; + u32 eint_fltcon0; + u32 eint_fltcon1; + u32 eint_mask; }; -struct socinfo { - __le32 fmt; - __le32 id; - __le32 ver; - char build_id[32]; - __le32 raw_id; - __le32 raw_ver; - __le32 hw_plat; - __le32 plat_ver; - __le32 accessory_chip; - __le32 hw_plat_subtype; - __le32 pmic_model; - __le32 pmic_die_rev; - __le32 pmic_model_1; - __le32 pmic_die_rev_1; - __le32 pmic_model_2; - __le32 pmic_die_rev_2; - __le32 foundry_id; - __le32 serial_num; - __le32 num_pmics; - __le32 pmic_array_offset; - __le32 chip_family; - __le32 raw_device_family; - __le32 raw_device_num; - __le32 nproduct_id; - char chip_id[32]; - __le32 num_clusters; - __le32 ncluster_array_offset; - __le32 num_subset_parts; - __le32 nsubset_parts_array_offset; - __le32 nmodem_supported; - __le32 feature_code; - __le32 pcode; - __le32 npartnamemap_offset; - __le32 nnum_partname_mapping; - __le32 oem_variant; - __le32 num_kvps; - __le32 kvps_offset; - __le32 num_func_clusters; - __le32 boot_cluster; - __le32 boot_core; +struct exynos_muxed_weint_data { + unsigned int nr_banks; + struct samsung_pin_bank *banks[0]; }; -struct notify_info { - uint16_t pgoff: 12; - uint16_t flags: 2; - int event; +struct exynos_weint_data { + unsigned int irq; + struct samsung_pin_bank *bank; }; -struct gntalloc_gref { - struct list_head next_gref; - struct list_head next_file; - struct page *page; - uint64_t file_index; - unsigned int users; - grant_ref_t gref_id; - struct notify_info notify; +struct iproc_gpio_chip { + struct gpio_chip gc; + spinlock_t lock; + struct device *dev; + void *base; + void *intr; }; -struct gntalloc_file_private_data { +struct pci_domain_busn_res { struct list_head list; - uint64_t index; + struct resource res; + int domain_nr; }; -struct ioctl_gntalloc_alloc_gref { - __u16 domid; - __u16 flags; - __u32 count; - __u64 index; - __u32 gref_ids[1]; +struct acpiphp_attention_info { + int (*set_attn)(struct hotplug_slot *, u8); + int (*get_attn)(struct hotplug_slot *, u8 *); + struct module *owner; }; -struct ioctl_gntalloc_dealloc_gref { - __u64 index; - __u32 count; +struct altera_msi { + unsigned long used[1]; + struct mutex lock; + struct platform_device *pdev; + struct irq_domain *msi_domain; + struct irq_domain *inner_domain; + void *csr_base; + void *vector_base; + phys_addr_t vector_phy; + u32 num_of_vectors; + int irq; }; -struct ioctl_gntalloc_unmap_notify { - __u64 index; - __u32 action; - __u32 event_channel_port; -}; +struct acpi_power_resource; -struct gntalloc_vma_private_data { - struct gntalloc_gref *gref; - int users; - int count; +struct acpi_power_resource_entry { + struct list_head node; + struct acpi_power_resource *resource; }; -struct pf8x00_regulator_data { - struct regulator_desc desc; - unsigned int suspend_enable_reg; - unsigned int suspend_enable_mask; - unsigned int suspend_voltage_reg; - unsigned int suspend_voltage_cache; +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; }; -enum pf8x00_devid { - PF8100 = 0, - PF8121A = 2, - PF8200 = 8, +struct acpi_power_dependent_device { + struct device *dev; + struct list_head node; }; -enum pf8x00_regulators { - PF8X00_LDO1 = 0, - PF8X00_LDO2 = 1, - PF8X00_LDO3 = 2, - PF8X00_LDO4 = 3, - PF8X00_BUCK1 = 4, - PF8X00_BUCK2 = 5, - PF8X00_BUCK3 = 6, - PF8X00_BUCK4 = 7, - PF8X00_BUCK5 = 8, - PF8X00_BUCK6 = 9, - PF8X00_BUCK7 = 10, - PF8X00_VSNVS = 11, - PF8X00_MAX_REGULATORS = 12, +struct acpi_fadt_info { + const char *name; + u16 address64; + u16 address32; + u16 length; + u8 default_length; + u8 flags; }; -enum pf8x00_buck_states { - SW_CONFIG1 = 0, - SW_CONFIG2 = 1, - SW_PWRUP = 2, - SW_MODE1 = 3, - SW_RUN_VOLT = 4, - SW_STBY_VOLT = 5, +struct acpi_fadt_pm_info { + struct acpi_generic_address *target; + u16 source; + u8 register_num; }; -enum swxilim_bits { - SWXILIM_2100_MA = 0, - SWXILIM_2600_MA = 1, - SWXILIM_3000_MA = 2, - SWXILIM_4500_MA = 3, +struct s5_hw_clk { + struct clk_hw hw; + void *reg; }; -struct pf8x00_chip { - struct regmap *regmap; - struct device *dev; +struct s5_pll_conf { + unsigned long freq; + u8 div; + bool rot_ena; + u8 rot_sel; + u8 rot_dir; + u8 pre_div; }; -struct hisi_rng { +struct s5_clk_data { void *base; - struct hwrng rng; + struct s5_hw_clk s5_hw[9]; }; -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 bcm2835_cprman; + +struct bcm2835_clk_desc { + struct clk_hw * (*clk_register)(struct bcm2835_cprman *, const void *); + unsigned int supported; + const void *data; }; -struct tcpa_pc_event { - u32 event_id; - u32 event_size; - u8 event_data[0]; +struct bcm2835_cprman { + struct device *dev; + void *regs; + spinlock_t regs_lock; + unsigned int soc; + const char *real_parent_names[7]; + struct clk_hw_onecell_data onecell; }; -enum task_disposition { - TASK_IS_DONE = 0, - TASK_IS_ABORTED = 1, - TASK_IS_AT_LU = 2, - TASK_IS_NOT_AT_LU = 3, - TASK_ABORT_FAILED = 4, +struct bcm2835_pll_ana_bits { + u32 mask0; + u32 set0; + u32 mask1; + u32 set1; + u32 mask3; + u32 set3; + u32 fb_prediv_mask; }; -struct mtd_partitions { - const struct mtd_partition *parts; - int nr_parts; - const struct mtd_part_parser *parser; +struct cprman_plat_data { + unsigned int soc; }; -struct flash_info___3 { - const char *name; - uint16_t device_id; - unsigned int page_size; - unsigned int nr_pages; - unsigned int erase_size; +struct bcm2835_pll_data; + +struct bcm2835_pll { + struct clk_hw hw; + struct bcm2835_cprman *cprman; + const struct bcm2835_pll_data *data; }; -struct sst25l_flash { - struct spi_device *spi; - struct mutex lock; - struct mtd_info mtd; +struct bcm2835_pll_data { + const char *name; + u32 cm_ctrl_reg; + u32 a2w_ctrl_reg; + u32 frac_reg; + u32 ana_reg_base; + u32 reference_enable_mask; + u32 lock_mask; + u32 flags; + const struct bcm2835_pll_ana_bits *ana; + unsigned long min_rate; + unsigned long max_rate; + unsigned long max_fb_rate; }; -struct sun6i_spi_cfg { - unsigned long fifo_depth; - bool has_clk_ctl; +struct bcm2835_pll_divider_data; + +struct bcm2835_pll_divider { + struct clk_divider div; + struct bcm2835_cprman *cprman; + const struct bcm2835_pll_divider_data *data; }; -struct sun6i_spi { - struct spi_controller *master; - void *base_addr; - dma_addr_t dma_addr_rx; - dma_addr_t dma_addr_tx; - struct clk *hclk; - struct clk *mclk; - struct reset_control *rstc; - struct completion done; - const u8 *tx_buf; - u8 *rx_buf; - int len; - const struct sun6i_spi_cfg *cfg; +struct bcm2835_pll_divider_data { + const char *name; + const char *source_pll; + u32 cm_reg; + u32 a2w_reg; + u32 load_mask; + u32 hold_mask; + u32 fixed_divider; + u32 flags; }; -struct cvmx_smix_clk_s { - u64 phase: 8; - u64 sample: 4; - u64 preamble: 1; - u64 clk_idle: 1; - u64 reserved_14_14: 1; - u64 sample_mode: 1; - u64 sample_hi: 5; - u64 reserved_21_23: 3; - u64 mode: 1; - u64 reserved_25_63: 39; +struct bcm2835_clock_data; + +struct bcm2835_clock { + struct clk_hw hw; + struct bcm2835_cprman *cprman; + const struct bcm2835_clock_data *data; }; -union cvmx_smix_clk { - u64 u64; - struct cvmx_smix_clk_s s; +struct bcm2835_clock_data { + const char *name; + const char * const *parents; + int num_mux_parents; + unsigned int set_rate_parent; + u32 ctl_reg; + u32 div_reg; + u32 int_bits; + u32 frac_bits; + u32 flags; + bool is_vpu_clock; + bool is_mash_clock; + bool low_jitter; + u32 tcnt_mux; + bool round_up; }; -struct cvmx_smix_wr_dat_s { - u64 dat: 16; - u64 val: 1; - u64 pending: 1; - u64 reserved_18_63: 46; +struct bcm2835_gate_data { + const char *name; + const char *parent; + u32 ctl_reg; }; -union cvmx_smix_wr_dat { - u64 u64; - struct cvmx_smix_wr_dat_s s; +struct clk_pfdv2 { + struct clk_hw hw; + void *reg; + u8 gate_bit; + u8 vld_bit; + u8 frac_off; }; -struct cvmx_smix_cmd_s { - u64 reg_adr: 5; - u64 reserved_5_7: 3; - u64 phy_adr: 5; - u64 reserved_13_15: 3; - u64 phy_op: 2; - u64 reserved_18_63: 46; +struct ma35d1_adc_clk_div { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u32 mask; + const struct clk_div_table *table; + spinlock_t *lock; }; -union cvmx_smix_cmd { - u64 u64; - struct cvmx_smix_cmd_s s; +enum clk_ids___9 { + LAST_DT_CORE_CLK___9 = 49, + CLK_EXTAL___9 = 50, + CLK_EXTALR___9 = 51, + CLK_MAIN___9 = 52, + CLK_PLL0___6 = 53, + CLK_PLL1___9 = 54, + CLK_PLL3___8 = 55, + CLK_PLL4___6 = 56, + CLK_PLL1_DIV2___9 = 57, + CLK_PLL1_DIV4___6 = 58, + CLK_S0___7 = 59, + CLK_S1___6 = 60, + CLK_S2___5 = 61, + CLK_S3___6 = 62, + CLK_SDSRC___8 = 63, + CLK_SSPSRC___3 = 64, + CLK_RPCSRC___8 = 65, + CLK_RINT___5 = 66, + MOD_CLK_BASE___9 = 67, }; -struct cvmx_smix_rd_dat_s { - u64 dat: 16; - u64 val: 1; - u64 pending: 1; - u64 reserved_18_63: 46; +struct clk_rk3588_inits { + void (*inits)(struct device_node *); }; -union cvmx_smix_rd_dat { - u64 u64; - struct cvmx_smix_rd_dat_s s; +struct visconti_pll { + struct clk_hw hw; + void *pll_base; + spinlock_t *lock; + unsigned long flags; + const struct visconti_pll_rate_table *rate_table; + size_t rate_count; + struct visconti_pll_provider *ctx; }; -struct fman_mac___3; +struct acpi_dma_spec; -struct mac_device___3 { - void *vaddr; +struct acpi_dma { + struct list_head dma_controllers; struct device *dev; - struct resource *res; - u8 addr[6]; - struct fman_port *port[2]; - struct phylink *phylink; - struct phylink_config phylink_config; - phy_interface_t phy_if; - bool promisc; - bool allmulti; - const struct phylink_mac_ops *phylink_ops; - int (*enable)(struct fman_mac___3 *); - void (*disable)(struct fman_mac___3 *); - int (*set_promisc)(struct fman_mac___3 *, bool); - int (*change_addr)(struct fman_mac___3 *, const enet_addr_t *); - int (*set_allmulti)(struct fman_mac___3 *, bool); - int (*set_tstamp)(struct fman_mac___3 *, bool); - int (*set_multi)(struct net_device *, struct mac_device___3 *); - int (*set_exception)(struct fman_mac___3 *, enum fman_mac_exceptions, bool); - int (*add_hash_mac_addr)(struct fman_mac___3 *, enet_addr_t *); - int (*remove_hash_mac_addr)(struct fman_mac___3 *, enet_addr_t *); - void (*update_speed)(struct mac_device___3 *, int); - struct fman_mac___3 *fman_mac; - struct mac_priv_s *priv; + 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; }; -typedef void fman_mac_exception_cb___3(struct mac_device___3 *, enum fman_mac_exceptions); - -struct tgec_regs; - -struct tgec_cfg; +struct acpi_dma_spec { + int chan_id; + int slave_id; + struct device *dev; +}; -struct fman_mac___3 { - struct tgec_regs *regs; - u64 addr; - u16 max_speed; - struct mac_device___3 *dev_id; - fman_mac_exception_cb___3 *exception_cb; - fman_mac_exception_cb___3 *event_cb; - struct eth_hash_t *multicast_addr_hash; - struct eth_hash_t *unicast_addr_hash; - u8 mac_id; - u32 exceptions; - struct tgec_cfg *cfg; - void *fm; - struct fman_rev_info fm_rev_info; - bool allmulti_enabled; +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 tgec_regs { - u32 tgec_id; - u32 reserved001[1]; - u32 command_config; - u32 mac_addr_0; - u32 mac_addr_1; - u32 maxfrm; - u32 pause_quant; - u32 rx_fifo_sections; - u32 tx_fifo_sections; - u32 rx_fifo_almost_f_e; - u32 tx_fifo_almost_f_e; - u32 hashtable_ctrl; - u32 mdio_cfg_status; - u32 mdio_command; - u32 mdio_data; - u32 mdio_regaddr; - u32 status; - u32 tx_ipg_len; - u32 mac_addr_2; - u32 mac_addr_3; - u32 rx_fifo_ptr_rd; - u32 rx_fifo_ptr_wr; - u32 tx_fifo_ptr_rd; - u32 tx_fifo_ptr_wr; - u32 imask; - u32 ievent; - u32 udp_port; - u32 type_1588v2; - u32 reserved070[4]; - u32 tfrm_u; - u32 tfrm_l; - u32 rfrm_u; - u32 rfrm_l; - u32 rfcs_u; - u32 rfcs_l; - u32 raln_u; - u32 raln_l; - u32 txpf_u; - u32 txpf_l; - u32 rxpf_u; - u32 rxpf_l; - u32 rlong_u; - u32 rlong_l; - u32 rflr_u; - u32 rflr_l; - u32 tvlan_u; - u32 tvlan_l; - u32 rvlan_u; - u32 rvlan_l; - u32 toct_u; - u32 toct_l; - u32 roct_u; - u32 roct_l; - u32 ruca_u; - u32 ruca_l; - u32 rmca_u; - u32 rmca_l; - u32 rbca_u; - u32 rbca_l; - u32 terr_u; - u32 terr_l; - u32 reserved100[2]; - u32 tuca_u; - u32 tuca_l; - u32 tmca_u; - u32 tmca_l; - u32 tbca_u; - u32 tbca_l; - u32 rdrp_u; - u32 rdrp_l; - u32 reoct_u; - u32 reoct_l; - u32 rpkt_u; - u32 rpkt_l; - u32 trund_u; - u32 trund_l; - u32 r64_u; - u32 r64_l; - u32 r127_u; - u32 r127_l; - u32 r255_u; - u32 r255_l; - u32 r511_u; - u32 r511_l; - u32 r1023_u; - u32 r1023_l; - u32 r1518_u; - u32 r1518_l; - u32 r1519x_u; - u32 r1519x_l; - u32 trovr_u; - u32 trovr_l; - u32 trjbr_u; - u32 trjbr_l; - u32 trfrg_u; - u32 trfrg_l; - u32 rerr_u; - u32 rerr_l; +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 tgec_cfg { - bool pause_ignore; - bool promiscuous_mode_enable; - u16 max_frame_length; - u16 pause_quant; - u32 tx_ipg_length; +struct acpi_table_csrt { + struct acpi_table_header header; }; -struct fman_mac_params___3 { - u8 mac_id; - void *fm; - fman_mac_exception_cb___3 *event_cb; - fman_mac_exception_cb___3 *exception_cb; +struct acpi_dma_parser_data { + struct acpi_dma_spec dma_spec; + size_t index; + size_t n; }; -typedef void (*btf_trace_hns3_over_max_bd)(void *, struct sk_buff *); +struct acpi_dma_filter_info { + dma_cap_mask_t dma_cap; + dma_filter_fn filter_fn; +}; -typedef void (*btf_trace_hns3_gro)(void *, struct sk_buff *); +struct udma_oes_offsets { + u32 udma_rchan; + u32 bcdma_bchan_data; + u32 bcdma_bchan_ring; + u32 bcdma_tchan_data; + u32 bcdma_tchan_ring; + u32 bcdma_rchan_data; + u32 bcdma_rchan_ring; + u32 pktdma_tchan_flow; + u32 pktdma_rchan_flow; +}; -typedef void (*btf_trace_hns3_tso)(void *, struct sk_buff *); +struct udma_soc_data { + struct udma_oes_offsets oes; + u32 bcdma_trigger_event_offset; +}; -typedef void (*btf_trace_hns3_tx_desc)(void *, struct hns3_enet_ring *, int); +enum k3_dma_type { + DMA_TYPE_UDMA = 0, + DMA_TYPE_BCDMA = 1, + DMA_TYPE_PKTDMA = 2, +}; -typedef void (*btf_trace_hns3_rx_desc)(void *, struct hns3_enet_ring *); +struct udma_match_data { + enum k3_dma_type type; + u32 psil_base; + bool enable_memcpy_support; + u32 flags; + u32 statictr_z_mask; + u8 burst_size[3]; + struct udma_soc_data *soc_data; +}; -struct hns3_rx_ptype { - u32 ptype: 8; - u32 csum_level: 2; - u32 ip_summed: 2; - u32 l3_type: 4; - u32 valid: 1; - u32 hash_type: 3; +enum udma_chan_state { + UDMA_CHAN_IS_IDLE = 0, + UDMA_CHAN_IS_ACTIVE = 1, + UDMA_CHAN_IS_TERMINATING = 2, }; -struct hns3_hw_error_info { - enum hnae3_hw_error_type type; - const char *msg; +enum udma_mmr { + MMR_GCFG = 0, + MMR_BCHANRT = 1, + MMR_RCHANRT = 2, + MMR_TCHANRT = 3, + MMR_LAST = 4, }; -enum hns3_pkt_ol3t_type { - HNS3_OL3T_NONE = 0, - HNS3_OL3T_IPV6 = 1, - HNS3_OL3T_IPV4_NO_CSUM = 2, - HNS3_OL3T_IPV4_CSUM = 3, +enum cppi5_tr_types { + CPPI5_TR_TYPE0 = 0, + CPPI5_TR_TYPE1 = 1, + CPPI5_TR_TYPE2 = 2, + CPPI5_TR_TYPE3 = 3, + CPPI5_TR_TYPE4 = 4, + CPPI5_TR_TYPE5 = 5, + CPPI5_TR_TYPE8 = 8, + CPPI5_TR_TYPE9 = 9, + CPPI5_TR_TYPE10 = 10, + CPPI5_TR_TYPE11 = 11, + CPPI5_TR_TYPE15 = 15, + CPPI5_TR_TYPE_MAX = 16, }; -enum hns3_pkt_tun_type { - HNS3_TUN_NONE = 0, - HNS3_TUN_MAC_IN_UDP = 1, - HNS3_TUN_NVGRE = 2, - HNS3_TUN_OTHER = 3, +enum cppi5_tr_event_size { + CPPI5_TR_EVENT_SIZE_COMPLETION = 0, + CPPI5_TR_EVENT_SIZE_ICNT1_DEC = 1, + CPPI5_TR_EVENT_SIZE_ICNT2_DEC = 2, + CPPI5_TR_EVENT_SIZE_ICNT3_DEC = 3, + CPPI5_TR_EVENT_SIZE_MAX = 4, }; -enum hns3_pkt_l3t_type { - HNS3_L3T_NONE = 0, - HNS3_L3T_IPV6 = 1, - HNS3_L3T_IPV4 = 2, - HNS3_L3T_RESERVED = 3, +enum cppi5_tr_trigger_type { + CPPI5_TR_TRIGGER_TYPE_ICNT1_DEC = 0, + CPPI5_TR_TRIGGER_TYPE_ICNT2_DEC = 1, + CPPI5_TR_TRIGGER_TYPE_ICNT3_DEC = 2, + CPPI5_TR_TRIGGER_TYPE_ALL = 3, + CPPI5_TR_TRIGGER_TYPE_MAX = 4, }; -enum hns3_pkt_l4t_type { - HNS3_L4T_UNKNOWN = 0, - HNS3_L4T_TCP = 1, - HNS3_L4T_UDP = 2, - HNS3_L4T_SCTP = 3, +enum cppi5_tr_trigger { + CPPI5_TR_TRIGGER_NONE = 0, + CPPI5_TR_TRIGGER_GLOBAL0 = 1, + CPPI5_TR_TRIGGER_GLOBAL1 = 2, + CPPI5_TR_TRIGGER_LOCAL_EVENT = 3, + CPPI5_TR_TRIGGER_MAX = 4, }; -enum hns3_desc_type { - DESC_TYPE_UNKNOWN = 0, - DESC_TYPE_SKB___2 = 1, - DESC_TYPE_FRAGLIST_SKB = 2, - DESC_TYPE_PAGE___2 = 4, - DESC_TYPE_BOUNCE_ALL = 8, - DESC_TYPE_BOUNCE_HEAD = 16, - DESC_TYPE_SGL_SKB = 32, - DESC_TYPE_PP_FRAG = 64, +enum udma_rm_range { + RM_RANGE_BCHAN = 0, + RM_RANGE_TCHAN = 1, + RM_RANGE_RCHAN = 2, + RM_RANGE_RFLOW = 3, + RM_RANGE_TFLOW = 4, + RM_RANGE_LAST = 5, }; -enum hns3_pkt_l2t_type { - HNS3_L2_TYPE_UNICAST = 0, - HNS3_L2_TYPE_MULTICAST = 1, - HNS3_L2_TYPE_BROADCAST = 2, - HNS3_L2_TYPE_INVALID = 3, +struct udma_static_tr { + u8 elsize; + u16 elcnt; + u16 bstcnt; }; -enum hns3_pkt_l3type { - HNS3_L3_TYPE_IPV4 = 0, - HNS3_L3_TYPE_IPV6 = 1, - HNS3_L3_TYPE_ARP = 2, - HNS3_L3_TYPE_RARP = 3, - HNS3_L3_TYPE_IPV4_OPT = 4, - HNS3_L3_TYPE_IPV6_EXT = 5, - HNS3_L3_TYPE_LLDP = 6, - HNS3_L3_TYPE_BPDU = 7, - HNS3_L3_TYPE_MAC_PAUSE = 8, - HNS3_L3_TYPE_PFC_PAUSE = 9, - HNS3_L3_TYPE_CNM = 12, - HNS3_L3_TYPE_PARSE_FAIL = 15, +struct udma_tx_drain { + struct delayed_work work; + ktime_t tstamp; + u32 residue; }; -enum hns3_pkt_ol4type { - HNS3_OL4_TYPE_NO_TUN = 0, - HNS3_OL4_TYPE_MAC_IN_UDP = 1, - HNS3_OL4_TYPE_NVGRE = 2, - HNS3_OL4_TYPE_UNKNOWN = 3, +struct udma_chan_config { + bool pkt_mode; + bool needs_epib; + u32 psd_size; + u32 metadata_size; + u32 hdesc_size; + bool notdpkt; + int remote_thread_id; + u32 atype; + u32 asel; + u32 src_thread; + u32 dst_thread; + enum psil_endpoint_type ep_type; + bool enable_acc32; + bool enable_burst; + enum udma_tp_level channel_tpl; + u32 tr_trigger_type; + unsigned long tx_flags; + int mapped_channel_id; + int default_flow_id; + enum dma_transfer_direction dir; }; -enum hns3_pkt_l4type { - HNS3_L4_TYPE_UDP = 0, - HNS3_L4_TYPE_TCP = 1, - HNS3_L4_TYPE_GRE = 2, - HNS3_L4_TYPE_SCTP = 3, - HNS3_L4_TYPE_IGMP = 4, - HNS3_L4_TYPE_ICMP = 5, - HNS3_L4_TYPE_PARSE_FAIL = 15, +struct udma_desc; + +struct udma_chan { + struct virt_dma_chan vc; + struct dma_slave_config cfg; + struct udma_dev *ud; + struct device *dma_dev; + struct udma_desc *desc; + struct udma_desc *terminated_desc; + struct udma_static_tr static_tr; + char *name; + struct udma_tchan *bchan; + struct udma_tchan *tchan; + struct udma_rchan *rchan; + struct udma_rflow *rflow; + bool psil_paired; + int irq_num_ring; + int irq_num_udma; + bool cyclic; + bool paused; + enum udma_chan_state state; + struct completion teardown_completed; + struct udma_tx_drain tx_drain; + struct udma_chan_config config; + struct udma_chan_config backup_config; + bool use_dma_pool; + struct dma_pool *hdesc_pool; + u32 id; }; -enum { - TC_MQPRIO_MODE_DCB = 0, - TC_MQPRIO_MODE_CHANNEL = 1, - __TC_MQPRIO_MODE_MAX = 2, +struct udma_tpl { + u8 levels; + u32 start_idx[3]; }; -struct trace_event_raw_hns3_skb_template { - struct trace_entry ent; - unsigned int headlen; - unsigned int len; - __u8 nr_frags; - __u8 ip_summed; - unsigned int hdr_len; - unsigned short gso_size; - unsigned short gso_segs; - unsigned int gso_type; - bool fraglist; - __u32 size[17]; - char __data[0]; +struct cppi5_tr_resp_t; + +struct udma_hwdesc { + size_t cppi5_desc_size; + void *cppi5_desc_vaddr; + dma_addr_t cppi5_desc_paddr; + void *tr_req_base; + struct cppi5_tr_resp_t *tr_resp_base; }; -struct trace_event_raw_hns3_tx_desc { - struct trace_entry ent; - int index; - int ntu; - int ntc; - dma_addr_t desc_dma; - u32 desc[8]; - u32 __data_loc_devname; - char __data[0]; +struct udma_rx_flush { + struct udma_hwdesc hwdescs[2]; + size_t buffer_size; + void *buffer_vaddr; + dma_addr_t buffer_paddr; }; -struct trace_event_raw_hns3_rx_desc { - struct trace_entry ent; - int index; - int ntu; - int ntc; - dma_addr_t desc_dma; - dma_addr_t buf_dma; - u32 desc[8]; - u32 __data_loc_devname; - char __data[0]; +struct udma_dev { + struct dma_device ddev; + struct device *dev; + void *mmrs[4]; + const struct udma_match_data *match_data; + const struct udma_soc_data *soc_data; + struct udma_tpl bchan_tpl; + struct udma_tpl tchan_tpl; + struct udma_tpl rchan_tpl; + size_t desc_align; + struct udma_tisci_rm tisci_rm; + struct k3_ringacc *ringacc; + struct work_struct purge_work; + struct list_head desc_to_purge; + spinlock_t lock; + struct udma_rx_flush rx_flush; + int bchan_cnt; + int tchan_cnt; + int echan_cnt; + int rchan_cnt; + int rflow_cnt; + int tflow_cnt; + unsigned long *bchan_map; + unsigned long *tchan_map; + unsigned long *rchan_map; + unsigned long *rflow_gp_map; + unsigned long *rflow_gp_map_allocated; + unsigned long *rflow_in_use; + unsigned long *tflow_map; + struct udma_tchan *bchans; + struct udma_tchan *tchans; + struct udma_rchan *rchans; + struct udma_rflow *rflows; + struct udma_chan *channels; + u32 psil_base; + u32 atype; + u32 asel; }; -struct trace_event_data_offsets_hns3_tx_desc { - u32 devname; +struct cppi5_tr_resp_t { + u8 status; + u8 _reserved; + u8 cmd_id; + u8 flags; }; -struct trace_event_data_offsets_hns3_rx_desc { - u32 devname; +struct udma_tchan { + void *reg_rt; + int id; + struct k3_ring *t_ring; + struct k3_ring *tc_ring; + int tflow_id; }; -struct hns3_desc_param { - u32 paylen_ol4cs; - u32 ol_type_vlan_len_msec; - u32 type_cs_vlan_tso; - u16 mss_hw_csum; - u16 inner_vtag; - u16 out_vtag; +struct udma_rchan { + void *reg_rt; + int id; }; -union l3_hdr_info { - struct iphdr *v4; - struct ipv6hdr *v6; - unsigned char *hdr; +struct udma_rflow { + int id; + struct k3_ring *fd_ring; + struct k3_ring *r_ring; }; -union l4_hdr_info { - struct tcphdr *tcp; - struct udphdr *udp; - struct gre_base_hdr *gre; - unsigned char *hdr; +struct udma_desc { + struct virt_dma_desc vd; + bool terminated; + enum dma_transfer_direction dir; + struct udma_static_tr static_tr; + u32 residue; + unsigned int sglen; + unsigned int desc_idx; + unsigned int tr_idx; + u32 metadata_size; + void *metadata; + unsigned int hwdesc_count; + struct udma_hwdesc hwdesc[0]; }; -struct trace_event_data_offsets_hns3_skb_template {}; - -enum hub_led_mode { - INDICATOR_AUTO = 0, - INDICATOR_CYCLE = 1, - INDICATOR_GREEN_BLINK = 2, - INDICATOR_GREEN_BLINK_OFF = 3, - INDICATOR_AMBER_BLINK = 4, - INDICATOR_AMBER_BLINK_OFF = 5, - INDICATOR_ALT_BLINK = 6, - INDICATOR_ALT_BLINK_OFF = 7, -} __attribute__((mode(byte))); +typedef u32 cppi5_tr_flags_t; -enum hub_quiescing_type { - HUB_DISCONNECT = 0, - HUB_PRE_RESET = 1, - HUB_SUSPEND = 2, +struct cppi5_tr_type1_t { + cppi5_tr_flags_t flags; + u16 icnt0; + u16 icnt1; + u64 addr; + s32 dim1; + long: 64; }; -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 cppi5_tr_type15_t { + cppi5_tr_flags_t flags; + u16 icnt0; + u16 icnt1; + u64 addr; + s32 dim1; + u16 icnt2; + u16 icnt3; + s32 dim2; + s32 dim3; + u32 _reserved; + s32 ddim1; + u64 daddr; + s32 ddim2; + s32 ddim3; + u16 dicnt0; + u16 dicnt1; + u16 dicnt2; + u16 dicnt3; }; -struct usb_tt_clear { - struct list_head clear_list; - unsigned int tt; - u16 devinfo; - struct usb_hcd *hcd; - struct usb_host_endpoint *ep; +struct k3_event_route_data { + void *priv; + int (*set_event)(void *, u32); }; -struct usb_otg_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bmAttributes; +struct udma_filter_param { + int remote_thread_id; + u32 atype; + u32 asel; + u32 tr_trigger_type; }; -struct usb_qualifier_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 bcdUSB; - __u8 bDeviceClass; - __u8 bDeviceSubClass; - __u8 bDeviceProtocol; - __u8 bMaxPacketSize0; - __u8 bNumConfigurations; - __u8 bRESERVED; +struct rst_config { + unsigned int modemr; + int (*configure)(void *); + int (*set_rproc_boot_addr)(u64); }; -struct usbdevfs_hub_portinfo { - char nports; - char port[127]; -}; +struct sunxi_sram_func; -enum isp1760_queue_head_types { - QH_CONTROL = 0, - QH_BULK = 1, - QH_INTERRUPT = 2, - QH_END = 3, +struct sunxi_sram_data { + char *name; + u8 reg; + u8 offset; + u8 width; + struct sunxi_sram_func *func; + struct list_head list; }; -struct isp1760_qh { - struct list_head qh_list; - struct list_head qtd_list; - u32 toggle; - u32 ping; - int slot; - int tt_buffer_dirty; +struct sunxi_sram_desc { + struct sunxi_sram_data data; + bool claimed; }; -struct isp1760_qtd { - u8 packet_type; - void *data_buffer; - u32 payload_addr; - struct list_head qtd_list; - struct urb *urb; - size_t length; - size_t actual_length; - u32 status; +struct sunxi_sram_func { + char *func; + u8 val; + u32 reg_val; }; -typedef __u32 __dw; - -struct urb_listitem { - struct list_head urb_list; - struct urb *urb; +struct sunxi_sramc_variant { + int num_emac_clocks; + bool has_ldo_ctrl; }; -struct ptd { - __dw dw0; - __dw dw1; - __dw dw2; - __dw dw3; - __dw dw4; - __dw dw5; - __dw dw6; - __dw dw7; +struct zynqmp_pm_domain { + struct generic_pm_domain gpd; + u32 node_id; + bool requested; }; -struct ptd_le32 { - __le32 dw0; - __le32 dw1; - __le32 dw2; - __le32 dw3; - __le32 dw4; - __le32 dw5; - __le32 dw6; - __le32 dw7; +struct xb_find_info { + struct xenbus_device *dev; + const char *nodename; }; -struct usb_udc { - struct usb_gadget_driver *driver; - struct usb_gadget *gadget; - struct device dev; - struct list_head list; - bool vbus; - bool started; - bool allow_connect; - struct work_struct vbus_work; - struct mutex connect_lock; +enum { + REGULATOR_ERROR_CLEARED = 0, + REGULATOR_FAILED_RETRY = 1, + REGULATOR_ERROR_ON = 2, }; -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 regulator_irq { + struct regulator_irq_data rdata; + struct regulator_irq_desc desc; + int irq; + int retry_cnt; + struct delayed_work isr_work; }; -struct psmouse_smbus_removal_work { - struct work_struct work; - struct i2c_client *client; +enum mrq_reset_commands { + CMD_RESET_ASSERT = 1, + CMD_RESET_DEASSERT = 2, + CMD_RESET_MODULE = 3, + CMD_RESET_GET_MAX_ID = 4, + CMD_RESET_MAX = 5, }; -struct mv64xxx_i2c_regs { - u8 addr; - u8 ext_addr; - u8 data; - u8 control; - u8 status; - u8 clock; - u8 soft_reset; +struct mrq_reset_request { + uint32_t cmd; + uint32_t reset_id; }; enum { - MV64XXX_I2C_STATE_INVALID = 0, - MV64XXX_I2C_STATE_IDLE = 1, - MV64XXX_I2C_STATE_WAITING_FOR_START_COND = 2, - MV64XXX_I2C_STATE_WAITING_FOR_RESTART = 3, - MV64XXX_I2C_STATE_WAITING_FOR_ADDR_1_ACK = 4, - MV64XXX_I2C_STATE_WAITING_FOR_ADDR_2_ACK = 5, - MV64XXX_I2C_STATE_WAITING_FOR_SLAVE_ACK = 6, - MV64XXX_I2C_STATE_WAITING_FOR_SLAVE_DATA = 7, + ERASE = 0, + WERASE = 1, + KILL = 2, }; -enum { - MV64XXX_I2C_ACTION_INVALID = 0, - MV64XXX_I2C_ACTION_CONTINUE = 1, - MV64XXX_I2C_ACTION_SEND_RESTART = 2, - MV64XXX_I2C_ACTION_SEND_ADDR_1 = 3, - MV64XXX_I2C_ACTION_SEND_ADDR_2 = 4, - MV64XXX_I2C_ACTION_SEND_DATA = 5, - MV64XXX_I2C_ACTION_RCV_DATA = 6, - MV64XXX_I2C_ACTION_RCV_DATA_STOP = 7, - MV64XXX_I2C_ACTION_SEND_STOP = 8, +struct n_tty_data { + size_t read_head; + size_t commit_head; + size_t canon_head; + size_t echo_head; + size_t echo_commit; + size_t echo_mark; + unsigned long char_map[4]; + unsigned long overrun_time; + unsigned int num_overrun; + bool no_room; + unsigned char lnext: 1; + unsigned char erasing: 1; + unsigned char raw: 1; + unsigned char real_raw: 1; + unsigned char icanon: 1; + unsigned char push: 1; + u8 read_buf[4096]; + unsigned long read_flags[64]; + u8 echo_buf[4096]; + size_t read_tail; + size_t line_start; + size_t lookahead_count; + unsigned int column; + unsigned int canon_column; + size_t echo_tail; + struct mutex atomic_read_lock; + struct mutex output_lock; }; -struct mv64xxx_i2c_data { - struct i2c_msg *msgs; - int num_msgs; - int irq; - u32 state; - u32 action; - u32 aborting; - u32 cntl_bits; - void *reg_base; - struct mv64xxx_i2c_regs reg_offsets; - u32 addr1; - u32 addr2; - u32 bytes_left; - u32 byte_posn; - u32 send_stop; - u32 block; - int rc; - u32 freq_m; - u32 freq_n; - struct clk *clk; - struct clk *reg_clk; - wait_queue_head_t waitq; - spinlock_t lock; - struct i2c_msg *msg; - struct i2c_adapter adapter; - bool offload_enabled; - bool errata_delay; - struct reset_control *rstc; - bool irq_clear_inverted; - bool clk_n_base_0; - struct i2c_bus_recovery_info rinfo; - bool atomic; +enum dma_rx_status { + DMA_RX_START = 0, + DMA_RX_RUNNING = 1, + DMA_RX_SHUTDOWN = 2, }; -struct mv64xxx_i2c_pdata { - u32 freq_m; - u32 freq_n; - u32 timeout; +enum { + MTK_UART_FC_NONE = 0, + MTK_UART_FC_SW = 1, + MTK_UART_FC_HW = 2, }; -struct syscon_reboot_mode { - struct regmap *map; - struct reboot_mode_driver reboot; - u32 offset; - u32 mask; +struct mtk8250_data { + int line; + unsigned int rx_pos; + unsigned int clk_count; + struct clk *uart_clk; + struct clk *bus_clk; + struct uart_8250_dma *dma; + enum dma_rx_status rx_status; + int rx_wakeup_irq; }; -struct rcar_gen3_thermal_priv; - -struct rcar_thermal_info { - int ths_tj_1; - void (*read_fuses)(struct rcar_gen3_thermal_priv *); +struct iproc_rng200_dev { + struct hwrng rng; + void *base; }; -struct rcar_gen3_thermal_tsc; - -struct rcar_gen3_thermal_priv { - struct rcar_gen3_thermal_tsc *tscs[5]; - struct thermal_zone_device_ops ops; - unsigned int num_tscs; - int ptat[3]; - const struct rcar_thermal_info *info; +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 equation_coefs { - int a1; - int b1; - int a2; - int b2; +struct tcpa_pc_event { + u32 event_id; + u32 event_size; + u8 event_data[0]; }; -struct rcar_gen3_thermal_tsc { - void *base; - struct thermal_zone_device *zone; - struct equation_coefs coef; - int tj_t; - int thcode[3]; -}; +struct iova_magazine; -struct ghes_hw_desc { - int num_dimms; - struct dimm_info *dimms; +struct iova_cpu_rcache { + spinlock_t lock; + struct iova_magazine *loaded; + struct iova_magazine *prev; }; -struct ghes_pvt { - struct mem_ctl_info *mci; - char other_detail[400]; - char msg[80]; +struct iova_magazine { + union { + unsigned long size; + struct iova_magazine *next; + }; + unsigned long pfns[127]; }; -struct memdev_dmi_entry { - u8 type; - u8 length; - u16 handle; - u16 phys_mem_array_handle; - u16 mem_err_info_handle; - u16 total_width; - u16 data_width; - u16 size; - u8 form_factor; - u8 device_set; - u8 device_locator; - u8 bank_locator; - u8 memory_type; - u16 type_detail; - u16 speed; - u8 manufacturer; - u8 serial_number; - u8 asset_tag; - u8 part_number; - u8 attributes; - u32 extended_size; - u16 conf_mem_clk_speed; -} __attribute__((packed)); - -struct psci_pd_provider { - struct list_head link; - struct device_node *node; +struct iova_rcache { + spinlock_t lock; + unsigned int depot_size; + struct iova_magazine *depot; + struct iova_cpu_rcache __attribute__((btf_type_tag("percpu"))) *cpu_rcaches; + struct iova_domain *iovad; + struct delayed_work work; }; -struct mtk_mmc_compatible { - u8 clk_div_bits; - bool recheck_sdio_irq; - bool hs400_tune; - u32 pad_tune_reg; - bool async_fifo; - bool data_tune; - bool busy_check; - bool stop_clk_fix; - bool enhance_rx; - bool support_64g; - bool use_internal_cd; +struct internal_container { + struct klist_node node; + struct attribute_container *cont; + struct device classdev; }; -struct mt_gpdma_desc; +struct mfd_of_node_entry { + struct list_head list; + struct device *dev; + struct device_node *np; +}; -struct mt_bdma_desc; +struct match_ids_walk_data { + struct acpi_device_id *ids; + struct acpi_device *adev; +}; -struct msdc_dma { - struct scatterlist *sg; - struct mt_gpdma_desc *gpd; - struct mt_bdma_desc *bd; - dma_addr_t gpd_addr; - dma_addr_t bd_addr; +struct discover_resp { + u8 _r_a[5]; + u8 phy_id; + __be16 _r_b; + u8 _r_c: 4; + u8 attached_dev_type: 3; + u8 _r_d: 1; + u8 linkrate: 4; + u8 _r_e: 4; + u8 attached_sata_host: 1; + u8 iproto: 3; + u8 _r_f: 4; + u8 attached_sata_dev: 1; + u8 tproto: 3; + u8 _r_g: 3; + u8 attached_sata_ps: 1; + u8 sas_addr[8]; + u8 attached_sas_addr[8]; + u8 attached_phy_id; + u8 _r_h[7]; + u8 hmin_linkrate: 4; + u8 pmin_linkrate: 4; + u8 hmax_linkrate: 4; + u8 pmax_linkrate: 4; + u8 change_count; + u8 pptv: 4; + u8 _r_i: 3; + u8 virtual: 1; + u8 routing_attr: 4; + u8 _r_j: 4; + u8 conn_type; + u8 conn_el_index; + u8 conn_phy_link; + u8 _r_k[8]; }; -struct msdc_save_para { - u32 msdc_cfg; - u32 iocon; - u32 sdc_cfg; - u32 pad_tune; - u32 patch_bit0; - u32 patch_bit1; - u32 patch_bit2; - u32 pad_ds_tune; - u32 pad_cmd_tune; - u32 emmc50_cfg0; - u32 emmc50_cfg3; - u32 sdc_fifo_cfg; - u32 emmc_top_control; - u32 emmc_top_cmd; - u32 emmc50_pad_ds_tune; +struct smp_disc_resp { + u8 frame_type; + u8 function; + u8 result; + u8 reserved; + struct discover_resp disc; }; -struct msdc_tune_para { - u32 iocon; - u32 pad_tune; - u32 pad_cmd_tune; - u32 emmc_top_control; - u32 emmc_top_cmd; +struct report_general_resp { + __be16 change_count; + __be16 route_indexes; + u8 _r_a; + u8 num_phys; + u8 conf_route_table: 1; + u8 configuring: 1; + u8 config_others: 1; + u8 orej_retry_supp: 1; + u8 stp_cont_awt: 1; + u8 self_config: 1; + u8 zone_config: 1; + u8 t2t_supp: 1; + u8 _r_c; + u8 enclosure_logical_id[8]; + u8 _r_d[12]; }; -struct msdc_host { - struct device *dev; - const struct mtk_mmc_compatible *dev_comp; - int cmd_rsp; - spinlock_t lock; - struct mmc_request *mrq; - struct mmc_command *cmd; - struct mmc_data *data; - int error; - void *base; - void *top_base; - struct msdc_dma dma; - u64 dma_mask; - u32 timeout_ns; - u32 timeout_clks; - struct pinctrl *pinctrl; - struct pinctrl_state *pins_default; - struct pinctrl_state *pins_uhs; - struct pinctrl_state *pins_eint; - struct delayed_work req_timeout; - int irq; - int eint_irq; - struct reset_control *reset; - struct clk *src_clk; - struct clk *h_clk; - struct clk *bus_clk; - struct clk *src_clk_cg; - struct clk *sys_clk_cg; - struct clk *crypto_clk; - struct clk_bulk_data bulk_clks[3]; - u32 mclk; - u32 src_clk_freq; - unsigned char timing; - bool vqmmc_enabled; - u32 latch_ck; - u32 hs400_ds_delay; - u32 hs400_ds_dly3; - u32 hs200_cmd_int_delay; - u32 hs400_cmd_int_delay; - bool hs400_cmd_resp_sel_rising; - bool hs400_mode; - bool hs400_tuning; - bool internal_cd; - bool cqhci; - struct msdc_save_para save_para; - struct msdc_tune_para def_tune_para; - struct msdc_tune_para saved_tune_para; - struct cqhci_host *cq_host; - u32 cq_ssc1_time; +struct smp_rg_resp { + u8 frame_type; + u8 function; + u8 result; + u8 reserved; + struct report_general_resp rg; }; -struct mt_gpdma_desc { - u32 gpd_info; - u32 next; - u32 ptr; - u32 gpd_data_len; - u32 arg; - u32 blknum; - u32 cmd; +struct sil24_cerr_info { + unsigned int err_mask; + unsigned int action; + const char *desc; }; -struct mt_bdma_desc { - u32 bd_info; - u32 next; - u32 ptr; - u32 bd_data_len; +enum { + SIL24_HOST_BAR = 0, + SIL24_PORT_BAR = 2, + SIL24_PRB_SZ = 64, + SIL24_MAX_SGT = 63, + SIL24_MAX_SGE = 253, + HOST_SLOT_STAT = 0, + HOST_CTRL = 64, + HOST_IRQ_STAT___2 = 68, + HOST_PHY_CFG = 72, + HOST_BIST_CTRL = 80, + HOST_BIST_PTRN = 84, + HOST_BIST_STAT = 88, + HOST_MEM_BIST_STAT = 92, + HOST_FLASH_CMD = 112, + HOST_FLASH_DATA = 116, + HOST_TRANSITION_DETECT = 117, + HOST_GPIO_CTRL = 118, + HOST_I2C_ADDR = 120, + HOST_I2C_DATA = 124, + HOST_I2C_XFER_CNT = 126, + HOST_I2C_CTRL = 127, + HOST_SSTAT_ATTN = -2147483648, + HOST_CTRL_M66EN = 65536, + HOST_CTRL_TRDY = 131072, + HOST_CTRL_STOP = 262144, + HOST_CTRL_DEVSEL = 524288, + HOST_CTRL_REQ64 = 1048576, + HOST_CTRL_GLOBAL_RST = -2147483648, + PORT_REGS_SIZE = 8192, + PORT_LRAM = 0, + PORT_LRAM_SLOT_SZ = 128, + PORT_PMP = 3968, + PORT_PMP_STATUS = 0, + PORT_PMP_QACTIVE = 4, + PORT_PMP_SIZE = 8, + PORT_CTRL_STAT = 4096, + PORT_CTRL_CLR = 4100, + PORT_IRQ_STAT___2 = 4104, + PORT_IRQ_ENABLE_SET = 4112, + PORT_IRQ_ENABLE_CLR = 4116, + PORT_ACTIVATE_UPPER_ADDR = 4124, + PORT_EXEC_FIFO = 4128, + PORT_CMD_ERR = 4132, + PORT_FIS_CFG = 4136, + PORT_FIFO_THRES = 4140, + PORT_DECODE_ERR_CNT = 4160, + PORT_DECODE_ERR_THRESH = 4162, + PORT_CRC_ERR_CNT = 4164, + PORT_CRC_ERR_THRESH = 4166, + PORT_HSHK_ERR_CNT = 4168, + PORT_HSHK_ERR_THRESH = 4170, + PORT_PHY_CFG = 4176, + PORT_SLOT_STAT = 6144, + PORT_CMD_ACTIVATE = 7168, + PORT_CONTEXT = 7684, + PORT_EXEC_DIAG = 7680, + PORT_PSD_DIAG = 7744, + PORT_SCONTROL = 7936, + PORT_SSTATUS = 7940, + PORT_SERROR = 7944, + PORT_SACTIVE = 7948, + PORT_CS_PORT_RST = 1, + PORT_CS_DEV_RST = 2, + PORT_CS_INIT = 4, + PORT_CS_IRQ_WOC = 8, + PORT_CS_CDB16 = 32, + PORT_CS_PMP_RESUME = 64, + PORT_CS_32BIT_ACTV = 1024, + PORT_CS_PMP_EN = 8192, + PORT_CS_RDY = -2147483648, + PORT_IRQ_COMPLETE = 1, + PORT_IRQ_ERROR___2 = 2, + PORT_IRQ_PORTRDY_CHG = 4, + PORT_IRQ_PWR_CHG = 8, + PORT_IRQ_PHYRDY_CHG = 16, + PORT_IRQ_COMWAKE = 32, + PORT_IRQ_UNK_FIS___2 = 64, + PORT_IRQ_DEV_XCHG = 128, + PORT_IRQ_8B10B = 256, + PORT_IRQ_CRC = 512, + PORT_IRQ_HANDSHAKE = 1024, + PORT_IRQ_SDB_NOTIFY = 2048, + DEF_PORT_IRQ___2 = 2259, + PORT_IRQ_RAW_SHIFT = 16, + PORT_IRQ_MASKED_MASK = 2047, + PORT_IRQ_RAW_MASK = 134152192, + PORT_IRQ_STEER_SHIFT = 30, + PORT_IRQ_STEER_MASK = -1073741824, + PORT_CERR_DEV = 1, + PORT_CERR_SDB = 2, + PORT_CERR_DATA = 3, + PORT_CERR_SEND = 4, + PORT_CERR_INCONSISTENT = 5, + PORT_CERR_DIRECTION = 6, + PORT_CERR_UNDERRUN = 7, + PORT_CERR_OVERRUN = 8, + PORT_CERR_PKT_PROT = 11, + PORT_CERR_SGT_BOUNDARY = 16, + PORT_CERR_SGT_TGTABRT = 17, + PORT_CERR_SGT_MSTABRT = 18, + PORT_CERR_SGT_PCIPERR = 19, + PORT_CERR_CMD_BOUNDARY = 24, + PORT_CERR_CMD_TGTABRT = 25, + PORT_CERR_CMD_MSTABRT = 26, + PORT_CERR_CMD_PCIPERR = 27, + PORT_CERR_XFR_UNDEF = 32, + PORT_CERR_XFR_TGTABRT = 33, + PORT_CERR_XFR_MSTABRT = 34, + PORT_CERR_XFR_PCIPERR = 35, + PORT_CERR_SENDSERVICE = 36, + PRB_CTRL_PROTOCOL = 1, + PRB_CTRL_PACKET_READ = 16, + PRB_CTRL_PACKET_WRITE = 32, + PRB_CTRL_NIEN = 64, + PRB_CTRL_SRST = 128, + PRB_PROT_PACKET = 1, + PRB_PROT_TCQ = 2, + PRB_PROT_NCQ = 4, + PRB_PROT_READ = 8, + PRB_PROT_WRITE = 16, + PRB_PROT_TRANSPARENT = 32, + SGE_TRM = -2147483648, + SGE_LNK = 1073741824, + SGE_DRD = 536870912, + SIL24_MAX_CMDS = 31, + BID_SIL3124 = 0, + BID_SIL3132 = 1, + BID_SIL3131 = 2, + SIL24_COMMON_FLAGS = 918658, + SIL24_FLAG_PCIX_IRQ_WOC = 16777216, + IRQ_STAT_4PORTS = 15, }; -struct msdc_delay_phase { - u8 maxlen; - u8 start; - u8 final_phase; +struct sil24_sge { + __le64 addr; + __le32 cnt; + __le32 flags; }; -struct scmi_smc { - int irq; - struct scmi_chan_info *cinfo; - struct scmi_shared_mem *shmem; - struct mutex shmem_lock; - atomic_t inflight; - u32 func_id; - u32 param_page; - u32 param_offset; +struct sil24_prb { + __le16 ctrl; + __le16 prot; + __le32 rx_cnt; + u8 fis[24]; }; -struct hi6220_mbox_chan; +union sil24_cmd_block; -struct hi6220_mbox { - struct device *dev; - int irq; - bool tx_irq_mode; - void *ipc; - void *base; - unsigned int chan_num; - struct hi6220_mbox_chan *mchan; - void *irq_map_chan[32]; - struct mbox_chan *chan; - struct mbox_controller controller; +struct sil24_port_priv { + union sil24_cmd_block *cmd_block; + dma_addr_t cmd_block_dma; + int do_port_rst; }; -struct hi6220_mbox_chan { - unsigned int dir; - unsigned int dst_irq; - unsigned int ack_irq; - unsigned int slot; - struct hi6220_mbox *parent; +struct sil24_ata_block { + struct sil24_prb prb; + struct sil24_sge sge[253]; }; -enum usb_data_roles { - DR_NONE = 0, - DR_HOST = 1, - DR_DEVICE = 2, +struct sil24_atapi_block { + struct sil24_prb prb; + u8 cdb[16]; + struct sil24_sge sge[253]; }; -enum usb_pd_control_role { - USB_PD_CTRL_ROLE_NO_CHANGE = 0, - USB_PD_CTRL_ROLE_TOGGLE_ON = 1, - USB_PD_CTRL_ROLE_TOGGLE_OFF = 2, - USB_PD_CTRL_ROLE_FORCE_SINK = 3, - USB_PD_CTRL_ROLE_FORCE_SOURCE = 4, - USB_PD_CTRL_ROLE_FREEZE = 5, - USB_PD_CTRL_ROLE_COUNT = 6, +union sil24_cmd_block { + struct sil24_ata_block ata; + struct sil24_atapi_block atapi; }; -enum usb_pd_control_mux { - USB_PD_CTRL_MUX_NO_CHANGE = 0, - USB_PD_CTRL_MUX_NONE = 1, - USB_PD_CTRL_MUX_USB = 2, - USB_PD_CTRL_MUX_DP = 3, - USB_PD_CTRL_MUX_DOCK = 4, - USB_PD_CTRL_MUX_AUTO = 5, - USB_PD_CTRL_MUX_COUNT = 6, +enum cfi_quirks { + CFI_QUIRK_DQ_TRUE_DATA = 1, }; -enum usb_pd_control_swap { - USB_PD_CTRL_SWAP_NONE = 0, - USB_PD_CTRL_SWAP_DATA = 1, - USB_PD_CTRL_SWAP_POWER = 2, - USB_PD_CTRL_SWAP_VCONN = 3, - USB_PD_CTRL_SWAP_COUNT = 4, +struct cfi_pri_amdstd { + uint8_t pri[3]; + uint8_t MajorVersion; + uint8_t MinorVersion; + uint8_t SiliconRevision; + uint8_t EraseSuspend; + uint8_t BlkProt; + uint8_t TmpBlkUnprotect; + uint8_t BlkProtUnprot; + uint8_t SimultaneousOps; + uint8_t BurstMode; + uint8_t PageMode; + uint8_t VppMin; + uint8_t VppMax; + uint8_t TopBottom; + uint8_t ProgramSuspend; + uint8_t UnlockBypass; + uint8_t SecureSiliconSector; + uint8_t SoftwareFeatures; }; -enum usb_chg_type { - USB_CHG_TYPE_NONE = 0, - USB_CHG_TYPE_PD = 1, - USB_CHG_TYPE_C = 2, - USB_CHG_TYPE_PROPRIETARY = 3, - USB_CHG_TYPE_BC12_DCP = 4, - USB_CHG_TYPE_BC12_CDP = 5, - USB_CHG_TYPE_BC12_SDP = 6, - USB_CHG_TYPE_OTHER = 7, - USB_CHG_TYPE_VBUS = 8, - USB_CHG_TYPE_UNKNOWN = 9, - USB_CHG_TYPE_DEDICATED = 10, +struct ppb_lock { + struct flchip *chip; + unsigned long adr; + int locked; }; -struct cros_ec_extcon_info { - struct device *dev; - struct extcon_dev *edev; - int port_id; - struct cros_ec_device *ec; - struct notifier_block notifier; - unsigned int dr; - bool pr; - bool dp; - bool mux; - unsigned int power_type; -}; +typedef int (*otp_op_t)(struct map_info *, struct flchip *, loff_t, size_t, u_char *, size_t); -struct ec_response_usb_pd_ports { - uint8_t num_ports; -}; +struct fsl_ifc_mtd; -struct usb_chg_measures { - uint16_t voltage_max; - uint16_t voltage_now; - uint16_t current_max; - uint16_t current_lim; +struct fsl_ifc_nand_ctrl { + struct nand_controller controller; + struct fsl_ifc_mtd *chips[8]; + void *addr; + unsigned int page; + unsigned int read_bytes; + unsigned int column; + unsigned int index; + unsigned int oob; + unsigned int eccread; + unsigned int counter; + unsigned int max_bitflips; }; -struct ec_response_usb_pd_power_info { - uint8_t role; - uint8_t type; - uint8_t dualrole; - uint8_t reserved1; - struct usb_chg_measures meas; - uint32_t max_power; +struct fsl_ifc_mtd { + struct nand_chip chip; + struct fsl_ifc_ctrl *ctrl; + struct device *dev; + int bank; + unsigned int bufnum_mask; + u8 *vbase; }; -struct ec_params_usb_pd_power_info { - uint8_t port; +enum ifc_nand_fir_opcodes { + IFC_FIR_OP_NOP = 0, + IFC_FIR_OP_CA0 = 1, + IFC_FIR_OP_CA1 = 2, + IFC_FIR_OP_CA2 = 3, + IFC_FIR_OP_CA3 = 4, + IFC_FIR_OP_RA0 = 5, + IFC_FIR_OP_RA1 = 6, + IFC_FIR_OP_RA2 = 7, + IFC_FIR_OP_RA3 = 8, + IFC_FIR_OP_CMD0 = 9, + IFC_FIR_OP_CMD1 = 10, + IFC_FIR_OP_CMD2 = 11, + IFC_FIR_OP_CMD3 = 12, + IFC_FIR_OP_CMD4 = 13, + IFC_FIR_OP_CMD5 = 14, + IFC_FIR_OP_CMD6 = 15, + IFC_FIR_OP_CMD7 = 16, + IFC_FIR_OP_CW0 = 17, + IFC_FIR_OP_CW1 = 18, + IFC_FIR_OP_CW2 = 19, + IFC_FIR_OP_CW3 = 20, + IFC_FIR_OP_CW4 = 21, + IFC_FIR_OP_CW5 = 22, + IFC_FIR_OP_CW6 = 23, + IFC_FIR_OP_CW7 = 24, + IFC_FIR_OP_WBCD = 25, + IFC_FIR_OP_RBCD = 26, + IFC_FIR_OP_BTRD = 27, + IFC_FIR_OP_RDSTAT = 28, + IFC_FIR_OP_NWAIT = 29, + IFC_FIR_OP_WFR = 30, + IFC_FIR_OP_SBRD = 31, + IFC_FIR_OP_UA = 32, + IFC_FIR_OP_RB = 33, }; -struct ec_params_usb_pd_mux_info { - uint8_t port; +enum orion_spi_type { + ORION_SPI = 0, + ARMADA_SPI = 1, }; -struct ec_response_usb_pd_mux_info { - uint8_t flags; +struct orion_spi_dev { + enum orion_spi_type typ; + unsigned long max_hz; + unsigned int min_divisor; + unsigned int max_divisor; + u32 prescale_mask; + bool is_errata_50mhz_ac; }; -enum { - NVMEM_ADD = 1, - NVMEM_REMOVE = 2, - NVMEM_CELL_ADD = 3, - NVMEM_CELL_REMOVE = 4, +struct orion_direct_acc { + void *vaddr; + u32 size; }; -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; - struct gpio_desc *wp_gpio; - struct nvmem_layout *layout; - void *priv; +struct orion_child_options { + struct orion_direct_acc direct_access; }; -struct nvmem_cell_table { - const char *nvmem_name; - const struct nvmem_cell_info *cells; - size_t ncells; - struct list_head node; +struct orion_spi { + struct spi_controller *host; + void *base; + struct clk *clk; + struct clk *axi_clk; + const struct orion_spi_dev *devdata; + struct device *dev; + struct orion_child_options child[8]; }; -struct nvmem_cell_entry { +struct aqr107_hw_stat { const char *name; - int offset; - size_t raw_len; - int bytes; - int bit_offset; - int nbits; - nvmem_cell_post_process_t read_post_process; - void *priv; - struct device_node *np; - struct nvmem_device *nvmem; - struct list_head node; + int reg; + int size; }; -struct nvmem_cell { - struct nvmem_cell_entry *entry; - const char *id; - int index; +struct aqr107_priv { + u64 sgmii_stats[10]; }; -enum hwtstamp_flags { - HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1, - HWTSTAMP_FLAG_LAST = 1, - HWTSTAMP_FLAG_MASK = 1, +struct thunder_mdiobus_nexus { + void *bar0; + struct cavium_mdiobus *buses[4]; }; -struct compat_ifconf { - compat_int_t ifc_len; - compat_caddr_t ifcbuf; +struct cvmx_smix_en_s { + u64 en: 1; + u64 reserved_1_63: 63; }; -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, +union cvmx_smix_en { + u64 u64; + struct cvmx_smix_en_s s; }; -enum genl_validate_flags { - GENL_DONT_VALIDATE_STRICT = 1, - GENL_DONT_VALIDATE_DUMP = 2, - GENL_DONT_VALIDATE_DUMP_STRICT = 4, +struct bgx; + +struct dmac_map; + +struct lmac { + struct bgx *bgx; + u8 dmacs_cfg; + u8 dmacs_count; + struct dmac_map *dmacs; + u8 mac[6]; + u8 lmac_type; + u8 lane_to_sds; + bool use_training; + bool autoneg; + bool link_up; + int lmacid; + int lmacid_bd; + long: 64; + long: 64; + struct net_device netdev; + struct phy_device *phydev; + unsigned int last_duplex; + unsigned int last_link; + unsigned int last_speed; + bool is_sgmii; + struct delayed_work dwork; + struct workqueue_struct *check_link; + long: 64; }; -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, +struct bgx { + u8 bgx_id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct lmac lmac[4]; + u8 lmac_count; + u8 max_lmac; + u8 acpi_lmac_idx; + void *reg_base; + struct pci_dev *pdev; + bool is_dlm; + bool is_rgx; + long: 64; + long: 64; + long: 64; + long: 64; }; -enum { - CTRL_ATTR_OP_UNSPEC = 0, - CTRL_ATTR_OP_ID = 1, - CTRL_ATTR_OP_FLAGS = 2, - __CTRL_ATTR_OP_MAX = 3, +struct dmac_map { + u64 vf_map; + u64 dmac; }; -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 MCAST_MODE { + MCAST_MODE_REJECT = 0, + MCAST_MODE_ACCEPT = 1, + MCAST_MODE_CAM_FILTER = 2, + RSVD = 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, +enum LMAC_TYPE { + BGX_MODE_SGMII = 0, + BGX_MODE_XAUI = 1, + BGX_MODE_DXAUI = 1, + BGX_MODE_RXAUI = 2, + BGX_MODE_XFI = 3, + BGX_MODE_XLAUI = 4, + BGX_MODE_10G_KR = 3, + BGX_MODE_40G_KR = 4, + BGX_MODE_RGMII = 5, + BGX_MODE_QSGMII = 6, + BGX_MODE_INVALID = 7, }; -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; +enum enetc_msg_cmd_status { + ENETC_MSG_CMD_STATUS_OK = 0, + ENETC_MSG_CMD_STATUS_FAIL = 1, }; -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; +enum enetc_mac_addr_type { + UC = 0, + MC = 1, + MADDR_TYPE = 2, }; -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; +struct orion_mdio_dev; + +struct orion_mdio_ops { + int (*is_done)(struct orion_mdio_dev *); + unsigned int poll_interval_min; + unsigned int poll_interval_max; }; -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, +struct orion_mdio_dev { + void *regs; + struct clk *clk[4]; + int err_interrupt; + wait_queue_head_t smi_busy_wait; }; -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 orion_mdio_bus_type { + BUS_TYPE_SMI = 0, + BUS_TYPE_XSMI = 1, }; -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, +enum rswitch_reg { + FWGC = 0, + FWTTC0 = 16, + FWTTC1 = 20, + FWLBMC = 24, + FWCEPTC = 32, + FWCEPRC0 = 36, + FWCEPRC1 = 40, + FWCEPRC2 = 44, + FWCLPTC = 48, + FWCLPRC = 52, + FWCMPTC = 64, + FWEMPTC = 68, + FWSDMPTC = 80, + FWSDMPVC = 84, + FWLBWMC0 = 128, + FWPC00 = 256, + FWPC10 = 260, + FWPC20 = 264, + FWCTGC00 = 1024, + FWCTGC10 = 1028, + FWCTTC00 = 1032, + FWCTTC10 = 1036, + FWCTTC200 = 1040, + FWCTSC00 = 1056, + FWCTSC10 = 1060, + FWCTSC20 = 1064, + FWCTSC30 = 1068, + FWCTSC40 = 1072, + FWTWBFC0 = 4096, + FWTWBFVC0 = 4100, + FWTHBFC0 = 5120, + FWTHBFV0C0 = 5124, + FWTHBFV1C0 = 5128, + FWFOBFC0 = 6144, + FWFOBFV0C0 = 6148, + FWFOBFV1C0 = 6152, + FWRFC0 = 7168, + FWRFVC0 = 7172, + FWCFC0 = 8192, + FWCFMC00 = 8196, + FWIP4SC = 16392, + FWIP6SC = 16408, + FWIP6OC = 16412, + FWL2SC = 16416, + FWSFHEC = 16432, + FWSHCR0 = 16448, + FWSHCR1 = 16452, + FWSHCR2 = 16456, + FWSHCR3 = 16460, + FWSHCR4 = 16464, + FWSHCR5 = 16468, + FWSHCR6 = 16472, + FWSHCR7 = 16476, + FWSHCR8 = 16480, + FWSHCR9 = 16484, + FWSHCR10 = 16488, + FWSHCR11 = 16492, + FWSHCR12 = 16496, + FWSHCR13 = 16500, + FWSHCRR = 16504, + FWLTHHEC = 16528, + FWLTHHC = 16532, + FWLTHTL0 = 16544, + FWLTHTL1 = 16548, + FWLTHTL2 = 16552, + FWLTHTL3 = 16556, + FWLTHTL4 = 16560, + FWLTHTL5 = 16564, + FWLTHTL6 = 16568, + FWLTHTL7 = 16572, + FWLTHTL80 = 16576, + FWLTHTL9 = 16592, + FWLTHTLR = 16596, + FWLTHTIM = 16608, + FWLTHTEM = 16612, + FWLTHTS0 = 16640, + FWLTHTS1 = 16644, + FWLTHTS2 = 16648, + FWLTHTS3 = 16652, + FWLTHTS4 = 16656, + FWLTHTSR0 = 16672, + FWLTHTSR1 = 16676, + FWLTHTSR2 = 16680, + FWLTHTSR3 = 16684, + FWLTHTSR40 = 16688, + FWLTHTSR5 = 16704, + FWLTHTR = 16720, + FWLTHTRR0 = 16724, + FWLTHTRR1 = 16728, + FWLTHTRR2 = 16732, + FWLTHTRR3 = 16736, + FWLTHTRR4 = 16740, + FWLTHTRR5 = 16744, + FWLTHTRR6 = 16748, + FWLTHTRR7 = 16752, + FWLTHTRR8 = 16756, + FWLTHTRR9 = 16768, + FWLTHTRR10 = 16784, + FWIPHEC = 16916, + FWIPHC = 16920, + FWIPTL0 = 16928, + FWIPTL1 = 16932, + FWIPTL2 = 16936, + FWIPTL3 = 16940, + FWIPTL4 = 16944, + FWIPTL5 = 16948, + FWIPTL6 = 16952, + FWIPTL7 = 16960, + FWIPTL8 = 16976, + FWIPTLR = 16980, + FWIPTIM = 16992, + FWIPTEM = 16996, + FWIPTS0 = 17008, + FWIPTS1 = 17012, + FWIPTS2 = 17016, + FWIPTS3 = 17020, + FWIPTS4 = 17024, + FWIPTSR0 = 17028, + FWIPTSR1 = 17032, + FWIPTSR2 = 17036, + FWIPTSR3 = 17040, + FWIPTSR4 = 17056, + FWIPTR = 17072, + FWIPTRR0 = 17076, + FWIPTRR1 = 17080, + FWIPTRR2 = 17084, + FWIPTRR3 = 17088, + FWIPTRR4 = 17092, + FWIPTRR5 = 17096, + FWIPTRR6 = 17100, + FWIPTRR7 = 17104, + FWIPTRR8 = 17120, + FWIPTRR9 = 17136, + FWIPHLEC = 17152, + FWIPAGUSPC = 17664, + FWIPAGC = 17668, + FWIPAGM0 = 17680, + FWIPAGM1 = 17684, + FWIPAGM2 = 17688, + FWIPAGM3 = 17692, + FWIPAGM4 = 17696, + FWMACHEC = 17952, + FWMACHC = 17956, + FWMACTL0 = 17968, + FWMACTL1 = 17972, + FWMACTL2 = 17976, + FWMACTL3 = 17980, + FWMACTL4 = 17984, + FWMACTL5 = 18000, + FWMACTLR = 18004, + FWMACTIM = 18016, + FWMACTEM = 18020, + FWMACTS0 = 18032, + FWMACTS1 = 18036, + FWMACTSR0 = 18040, + FWMACTSR1 = 18044, + FWMACTSR2 = 18048, + FWMACTSR3 = 18064, + FWMACTR = 18080, + FWMACTRR0 = 18084, + FWMACTRR1 = 18088, + FWMACTRR2 = 18092, + FWMACTRR3 = 18096, + FWMACTRR4 = 18100, + FWMACTRR5 = 18112, + FWMACTRR6 = 18128, + FWMACHLEC = 18176, + FWMACAGUSPC = 18560, + FWMACAGC = 18564, + FWMACAGM0 = 18568, + FWMACAGM1 = 18572, + FWVLANTEC = 18688, + FWVLANTL0 = 18704, + FWVLANTL1 = 18708, + FWVLANTL2 = 18712, + FWVLANTL3 = 18720, + FWVLANTL4 = 18736, + FWVLANTLR = 18740, + FWVLANTIM = 18752, + FWVLANTEM = 18756, + FWVLANTS = 18768, + FWVLANTSR0 = 18772, + FWVLANTSR1 = 18776, + FWVLANTSR2 = 18784, + FWVLANTSR3 = 18800, + FWPBFC0 = 18944, + FWPBFCSDC00 = 18948, + FWL23URL0 = 19968, + FWL23URL1 = 19972, + FWL23URL2 = 19976, + FWL23URL3 = 19980, + FWL23URLR = 19984, + FWL23UTIM = 20000, + FWL23URR = 20016, + FWL23URRR0 = 20020, + FWL23URRR1 = 20024, + FWL23URRR2 = 20028, + FWL23URRR3 = 20032, + FWL23URMC0 = 20224, + FWPMFGC0 = 20480, + FWPGFC0 = 20736, + FWPGFIGSC0 = 20740, + FWPGFENC0 = 20744, + FWPGFENM0 = 20748, + FWPGFCSTC00 = 20752, + FWPGFCSTC10 = 20756, + FWPGFCSTM00 = 20760, + FWPGFCSTM10 = 20764, + FWPGFCTC0 = 20768, + FWPGFCTM0 = 20772, + FWPGFHCC0 = 20776, + FWPGFSM0 = 20780, + FWPGFGC0 = 20784, + FWPGFGL0 = 21760, + FWPGFGL1 = 21764, + FWPGFGLR = 21784, + FWPGFGR = 21776, + FWPGFGRR0 = 21780, + FWPGFGRR1 = 21784, + FWPGFRIM = 21792, + FWPMTRFC0 = 22016, + FWPMTRCBSC0 = 22020, + FWPMTRC0RC0 = 22024, + FWPMTREBSC0 = 22028, + FWPMTREIRC0 = 22032, + FWPMTRFM0 = 22036, + FWFTL0 = 24576, + FWFTL1 = 24580, + FWFTLR = 24584, + FWFTOC = 24592, + FWFTOPC = 24596, + FWFTIM = 24608, + FWFTR = 24624, + FWFTRR0 = 24628, + FWFTRR1 = 24632, + FWFTRR2 = 24636, + FWSEQNGC0 = 24832, + FWSEQNGM0 = 24836, + FWSEQNRC = 25088, + FWCTFDCN0 = 25344, + FWLTHFDCN0 = 25348, + FWIPFDCN0 = 25352, + FWLTWFDCN0 = 25356, + FWPBFDCN0 = 25360, + FWMHLCN0 = 25364, + FWIHLCN0 = 25368, + FWICRDCN0 = 25856, + FWWMRDCN0 = 25860, + FWCTRDCN0 = 25864, + FWLTHRDCN0 = 25868, + FWIPRDCN0 = 25872, + FWLTWRDCN0 = 25876, + FWPBRDCN0 = 25880, + FWPMFDCN0 = 26368, + FWPGFDCN0 = 26496, + FWPMGDCN0 = 26624, + FWPMYDCN0 = 26628, + FWPMRDCN0 = 26632, + FWFRPPCN0 = 27136, + FWFRDPCN0 = 27140, + FWEIS00 = 30976, + FWEIE00 = 30980, + FWEID00 = 30984, + FWEIS1 = 31232, + FWEIE1 = 31236, + FWEID1 = 31240, + FWEIS2 = 31248, + FWEIE2 = 31252, + FWEID2 = 31256, + FWEIS3 = 31264, + FWEIE3 = 31268, + FWEID3 = 31272, + FWEIS4 = 31280, + FWEIE4 = 31284, + FWEID4 = 31288, + FWEIS5 = 31296, + FWEIE5 = 31300, + FWEID5 = 31304, + FWEIS60 = 31312, + FWEIE60 = 31316, + FWEID60 = 31320, + FWEIS61 = 31328, + FWEIE61 = 31332, + FWEID61 = 31336, + FWEIS62 = 31344, + FWEIE62 = 31348, + FWEID62 = 31352, + FWEIS63 = 31360, + FWEIE63 = 31364, + FWEID63 = 31368, + FWEIS70 = 31376, + FWEIE70 = 31380, + FWEID70 = 31384, + FWEIS71 = 31392, + FWEIE71 = 31396, + FWEID71 = 31400, + FWEIS72 = 31408, + FWEIE72 = 31412, + FWEID72 = 31416, + FWEIS73 = 31424, + FWEIE73 = 31428, + FWEID73 = 31432, + FWEIS80 = 31440, + FWEIE80 = 31444, + FWEID80 = 31448, + FWEIS81 = 31456, + FWEIE81 = 31460, + FWEID81 = 31464, + FWEIS82 = 31472, + FWEIE82 = 31476, + FWEID82 = 31480, + FWEIS83 = 31488, + FWEIE83 = 31492, + FWEID83 = 31496, + FWMIS0 = 31744, + FWMIE0 = 31748, + FWMID0 = 31752, + FWSCR0 = 32000, + FWSCR1 = 32004, + FWSCR2 = 32008, + FWSCR3 = 32012, + FWSCR4 = 32016, + FWSCR5 = 32020, + FWSCR6 = 32024, + FWSCR7 = 32028, + FWSCR8 = 32032, + FWSCR9 = 32036, + FWSCR10 = 32040, + FWSCR11 = 32044, + FWSCR12 = 32048, + FWSCR13 = 32052, + FWSCR14 = 32056, + FWSCR15 = 32060, + FWSCR16 = 32064, + FWSCR17 = 32068, + FWSCR18 = 32072, + FWSCR19 = 32076, + FWSCR20 = 32080, + FWSCR21 = 32084, + FWSCR22 = 32088, + FWSCR23 = 32092, + FWSCR24 = 32096, + FWSCR25 = 32100, + FWSCR26 = 32104, + FWSCR27 = 32108, + FWSCR28 = 32112, + FWSCR29 = 32116, + FWSCR30 = 32120, + FWSCR31 = 32124, + FWSCR32 = 32128, + FWSCR33 = 32132, + FWSCR34 = 32136, + FWSCR35 = 32140, + FWSCR36 = 32144, + FWSCR37 = 32148, + FWSCR38 = 32152, + FWSCR39 = 32156, + FWSCR40 = 32160, + FWSCR41 = 32164, + FWSCR42 = 32168, + FWSCR43 = 32172, + FWSCR44 = 32176, + FWSCR45 = 32180, + FWSCR46 = 32184, + TPEMIMC0 = 32768, + TPEMIMC1 = 32772, + TPEMIMC2 = 32776, + TPEMIMC3 = 32780, + TPEMIMC4 = 32784, + TPEMIMC5 = 32788, + TPEMIMC60 = 32896, + TPEMIMC70 = 33024, + TSIM = 34560, + TFIM = 34564, + TCIM = 34568, + TGIM0 = 34576, + TGIM1 = 34580, + TEIM0 = 34592, + TEIM1 = 34596, + TEIM2 = 34600, + RIPV = 36864, + RRC = 36868, + RCEC = 36872, + RCDC = 36876, + RSSIS = 36880, + RSSIE = 36884, + RSSID = 36888, + CABPIBWMC = 36896, + CABPWMLC = 36928, + CABPPFLC0 = 36944, + CABPPWMLC0 = 36960, + CABPPPFLC00 = 37024, + CABPULC = 37120, + CABPIRM = 37184, + CABPPCM = 37188, + CABPLCM = 37192, + CABPCPM = 37248, + CABPMCPM = 37376, + CARDNM = 37504, + CARDMNM = 37508, + CARDCN = 37520, + CAEIS0 = 37632, + CAEIE0 = 37636, + CAEID0 = 37640, + CAEIS1 = 37648, + CAEIE1 = 37652, + CAEID1 = 37656, + CAMIS0 = 37696, + CAMIE0 = 37700, + CAMID0 = 37704, + CAMIS1 = 37712, + CAMIE1 = 37716, + CAMID1 = 37720, + CASCR = 37760, + EAMC = 0, + EAMS = 4, + EAIRC = 16, + EATDQSC = 20, + EATDQC = 24, + EATDQAC = 28, + EATPEC = 32, + EATMFSC0 = 64, + EATDQDC0 = 96, + EATDQM0 = 128, + EATDQMLM0 = 160, + EACTQC = 256, + EACTDQDC = 260, + EACTDQM = 264, + EACTDQMLM = 268, + EAVCC = 304, + EAVTC = 308, + EATTFC = 312, + EACAEC = 512, + EACC = 516, + EACAIVC0 = 544, + EACAULC0 = 576, + EACOEM = 608, + EACOIVM0 = 640, + EACOULM0 = 672, + EACGSM = 704, + EATASC = 768, + EATASENC0 = 800, + EATASCTENC = 832, + EATASENM0 = 864, + EATASCTENM = 896, + EATASCSTC0 = 928, + EATASCSTC1 = 932, + EATASCSTM0 = 936, + EATASCSTM1 = 940, + EATASCTC = 944, + EATASCTM = 948, + EATASGL0 = 960, + EATASGL1 = 964, + EATASGLR = 968, + EATASGR = 976, + EATASGRR = 980, + EATASHCC = 992, + EATASRIRM = 996, + EATASSM = 1000, + EAUSMFSECN = 1024, + EATFECN = 1028, + EAFSECN = 1032, + EADQOECN = 1036, + EADQSECN = 1040, + EACKSECN = 1044, + EAEIS0 = 1280, + EAEIE0 = 1284, + EAEID0 = 1288, + EAEIS1 = 1296, + EAEIE1 = 1300, + EAEID1 = 1304, + EAEIS2 = 1312, + EAEIE2 = 1316, + EAEID2 = 1320, + EASCR = 1408, + MPSM = 4096, + MPIC = 4100, + MPIM = 4104, + MIOC = 4112, + MIOM = 4116, + MXMS = 4120, + MTFFC = 4128, + MTPFC = 4132, + MTPFC2 = 4136, + MTPFC30 = 4144, + MTATC0 = 4176, + MTIM = 4192, + MRGC = 4224, + MRMAC0 = 4228, + MRMAC1 = 4232, + MRAFC = 4236, + MRSCE = 4240, + MRSCP = 4244, + MRSCC = 4248, + MRFSCE = 4252, + MRFSCP = 4256, + MTRC = 4260, + MRIM = 4264, + MRPFM = 4268, + MPFC0 = 4352, + MLVC = 4480, + MEEEC = 4484, + MLBC = 4488, + MXGMIIC = 4496, + MPCH = 4500, + MANC = 4504, + MANM = 4508, + MPLCA1 = 4512, + MPLCA2 = 4516, + MPLCA3 = 4520, + MPLCA4 = 4524, + MPLCAM = 4528, + MHDC1 = 4544, + MHDC2 = 4548, + MEIS = 4608, + MEIE = 4612, + MEID = 4616, + MMIS0 = 4624, + MMIE0 = 4628, + MMID0 = 4632, + MMIS1 = 4640, + MMIE1 = 4644, + MMID1 = 4648, + MMIS2 = 4656, + MMIE2 = 4660, + MMID2 = 4664, + MMPFTCT = 4864, + MAPFTCT = 4868, + MPFRCT = 4872, + MFCICT = 4876, + MEEECT = 4880, + MMPCFTCT0 = 4896, + MAPCFTCT0 = 4912, + MPCFRCT0 = 4928, + MHDCC = 4944, + MROVFC = 4948, + MRHCRCEC = 4952, + MRXBCE = 5120, + MRXBCP = 5124, + MRGFCE = 5128, + MRGFCP = 5132, + MRBFC = 5136, + MRMFC = 5140, + MRUFC = 5144, + MRPEFC = 5148, + MRNEFC = 5152, + MRFMEFC = 5156, + MRFFMEFC = 5160, + MRCFCEFC = 5164, + MRFCEFC = 5168, + MRRCFEFC = 5172, + MRUEFC = 5180, + MROEFC = 5184, + MRBOEC = 5188, + MTXBCE = 5376, + MTXBCP = 5380, + MTGFCE = 5384, + MTGFCP = 5388, + MTBFC = 5392, + MTMFC = 5396, + MTUFC = 5400, + MTEFC = 5404, + GWMC = 65536, + GWMS = 65540, + GWIRC = 65552, + GWRDQSC = 65556, + GWRDQC = 65560, + GWRDQAC = 65564, + GWRGC = 65568, + GWRMFSC0 = 65600, + GWRDQDC0 = 65632, + GWRDQM0 = 65664, + GWRDQMLM0 = 65696, + GWMTIRM = 65792, + GWMSTLS = 65796, + GWMSTLR = 65800, + GWMSTSS = 65804, + GWMSTSR = 65808, + GWMAC0 = 65824, + GWMAC1 = 65828, + GWVCC = 65840, + GWVTC = 65844, + GWTTFC = 65848, + GWTDCAC00 = 65856, + GWTDCAC10 = 65860, + GWTSDCC0 = 65888, + GWTNM = 65920, + GWTMNM = 65924, + GWAC = 65936, + GWDCBAC0 = 65940, + GWDCBAC1 = 65944, + GWIICBSC = 65948, + GWMDNC = 65952, + GWTRC0 = 66048, + GWTPC0 = 66304, + GWARIRM = 66432, + GWDCC0 = 66560, + GWAARSS = 67584, + GWAARSR0 = 67588, + GWAARSR1 = 67592, + GWIDAUAS0 = 67648, + GWIDASM0 = 67712, + GWIDASAM00 = 67840, + GWIDASAM10 = 67844, + GWIDACAM00 = 67968, + GWIDACAM10 = 67972, + GWGRLC = 68096, + GWGRLULC = 68100, + GWRLIVC0 = 68224, + GWRLULC0 = 68228, + GWIDPC = 68352, + GWIDC0 = 68608, + GWDIS0 = 69888, + GWDIE0 = 69892, + GWDID0 = 69896, + GWTSDIS = 70016, + GWTSDIE = 70020, + GWTSDID = 70024, + GWEIS0 = 70032, + GWEIE0 = 70036, + GWEID0 = 70040, + GWEIS1 = 70048, + GWEIE1 = 70052, + GWEID1 = 70056, + GWEIS20 = 70144, + GWEIE20 = 70148, + GWEID20 = 70152, + GWEIS3 = 70272, + GWEIE3 = 70276, + GWEID3 = 70280, + GWEIS4 = 70288, + GWEIE4 = 70292, + GWEID4 = 70296, + GWEIS5 = 70304, + GWEIE5 = 70308, + GWEID5 = 70312, + GWSCR0 = 71680, + GWSCR1 = 71936, }; -struct pse_control_status { - enum ethtool_podl_pse_admin_state podl_admin_state; - enum ethtool_podl_pse_pw_d_status podl_pw_status; +enum DIE_DT___2 { + DT_FSINGLE___2 = 128, + DT_FSTART___2 = 144, + DT_FMID___2 = 160, + DT_FEND___2 = 176, + DT_LEMPTY___2 = 192, + DT_EEMPTY___2 = 208, + DT_LINKFIX___2 = 0, + DT_LINK___2 = 224, + DT_EOS___2 = 240, + DT_FEMPTY___2 = 64, + DT_FEMPTY_IS___2 = 16, + DT_FEMPTY_IC___2 = 32, + DT_FEMPTY_ND___2 = 48, + DT_FEMPTY_START = 80, + DT_FEMPTY_MID = 96, + DT_FEMPTY_END = 112, + DT_MASK = 240, + DIE = 8, }; -struct pse_reply_data { - struct ethnl_reply_data base; - struct pse_control_status status; +enum rswitch_gwca_mode { + GWMC_OPC_RESET = 0, + GWMC_OPC_DISABLE = 1, + GWMC_OPC_CONFIG = 2, + GWMC_OPC_OPERATION = 3, }; -struct pse_control_config { - enum ethtool_podl_pse_admin_state admin_cotrol; +enum rswitch_etha_mode { + EAMC_OPC_RESET = 0, + EAMC_OPC_DISABLE = 1, + EAMC_OPC_CONFIG = 2, + EAMC_OPC_OPERATION = 3, }; -struct udp_dev_scratch { - u32 _tsize_state; - u16 len; - bool is_linear; - bool csum_unnecessary; +struct rswitch_gwca_ts_info { + struct sk_buff *skb; + struct list_head list; + int port; + u8 tag; }; -struct bpf_iter__udp { - union { - struct bpf_iter_meta *meta; - }; +struct rswitch_ext_desc; + +struct rswitch_ext_ts_desc; + +struct rswitch_ts_desc; + +struct rswitch_gwca_queue { union { - struct udp_sock *udp_sk; + struct rswitch_ext_desc *tx_ring; + struct rswitch_ext_ts_desc *rx_ring; + struct rswitch_ts_desc *ts_ring; }; - uid_t uid; - long: 0; - int bucket; + dma_addr_t ring_dma; + int ring_size; + int cur; + int dirty; + int index; + bool dir_tx; + struct sk_buff **skbs; + struct net_device *ndev; }; -struct udp_iter_state { - struct seq_net_private p; - int bucket; -}; +struct rswitch_desc; -struct bpf_udp_iter_state { - struct udp_iter_state state; - unsigned int cur_sk; - unsigned int end_sk; - unsigned int max_sk; - int offset; - struct sock **batch; - bool st_bucket_done; +struct rswitch_gwca { + int index; + struct rswitch_desc *linkfix_table; + dma_addr_t linkfix_table_dma; + u32 linkfix_table_size; + struct rswitch_gwca_queue *queues; + int num_queues; + struct rswitch_gwca_queue ts_queue; + struct list_head ts_info_list; + unsigned long used[2]; + u32 tx_irq_bits[4]; + u32 rx_irq_bits[4]; + int speed; }; -enum devlink_info_version_type { - DEVLINK_INFO_VERSION_TYPE_NONE = 0, - DEVLINK_INFO_VERSION_TYPE_COMPONENT = 1, +struct rswitch_etha { + int index; + void *addr; + void *coma_addr; + bool external_phy; + struct mii_bus *mii; + phy_interface_t phy_interface; + u32 psmcs; + u8 mac_addr[32]; + int link; + int speed; + bool operated; }; -struct devlink_info_req { - struct sk_buff *msg; - void (*version_cb)(const char *, enum devlink_info_version_type, void *); - void *version_cb_priv; -}; +struct rswitch_mac_table_entry; -struct devlink_reload_combination { - enum devlink_reload_action action; - enum devlink_reload_limit limit; +struct rswitch_mfwd { + struct rswitch_mac_table_entry *mac_table_entries; + int num_mac_table_entries; }; -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, -}; +struct rswitch_device; -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 rswitch_private { + struct platform_device *pdev; + void *addr; + struct rcar_gen4_ptp_private *ptp_priv; + struct rswitch_device *rdev[3]; + unsigned long opened_ports[1]; + struct rswitch_gwca gwca; + struct rswitch_etha etha[3]; + struct rswitch_mfwd mfwd; + spinlock_t lock; + struct clk *clk; + bool etha_no_runtime_change; + bool gwca_halt; }; -struct devlink_flash_notify { - const char *status_msg; - const char *component; - unsigned long done; - unsigned long total; - unsigned long timeout; +struct rswitch_device { + struct rswitch_private *priv; + struct net_device *ndev; + struct napi_struct napi; + void *addr; + struct rswitch_gwca_queue *tx_queue; + struct rswitch_gwca_queue *rx_queue; + u8 ts_tag; + bool disabled; + int port; + struct rswitch_etha *etha; + struct device_node *np_port; + struct phy *serdes; }; -struct devlink_flash_component_lookup_ctx { - const char *lookup_name; - bool lookup_name_found; +struct rswitch_desc { + __le16 info_ds; + u8 die_dt; + __u8 dptrh; + __le32 dptrl; }; -enum handshake_handler_class { - HANDSHAKE_HANDLER_CLASS_NONE = 0, - HANDSHAKE_HANDLER_CLASS_TLSHD = 1, - HANDSHAKE_HANDLER_CLASS_MAX = 2, +struct rswitch_ext_desc { + struct rswitch_desc desc; + __le64 info1; }; -enum hr_flags_bits { - HANDSHAKE_F_REQ_COMPLETED = 0, +struct rswitch_ext_ts_desc { + struct rswitch_desc desc; + __le64 info1; + __le32 ts_nsec; + __le32 ts_sec; }; -enum sysctl_writes_mode { - SYSCTL_WRITES_LEGACY = -1, - SYSCTL_WRITES_WARN = 0, - SYSCTL_WRITES_STRICT = 1, +struct rswitch_ts_desc { + struct rswitch_desc desc; + __le32 ts_nsec; + __le32 ts_sec; }; -struct do_proc_dointvec_minmax_conv_param { - int *min; - int *max; +struct ep_device { + struct usb_endpoint_descriptor *desc; + struct usb_device *udev; + struct device dev; }; -struct do_proc_douintvec_minmax_conv_param { - unsigned int *min; - unsigned int *max; +enum xhci_ep_reset_type { + EP_HARD_RESET = 0, + EP_SOFT_RESET = 1, }; -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); +union udc_setup_data { + u32 data[2]; + struct usb_ctrlrequest request; +}; -typedef void (*btf_trace_rcu_torture_read)(void *, const char *, struct callback_head *, unsigned long, unsigned long, unsigned long); +struct amd5536udc; -typedef void (*btf_trace_rcu_barrier)(void *, const char *, const char *, int, int, unsigned long); +struct brcmstb_waketmr { + struct rtc_device *rtc; + struct device *dev; + void *base; + unsigned int wake_irq; + unsigned int alarm_irq; + struct notifier_block reboot_notifier; + struct clk *clk; + u32 rate; + unsigned long rtc_alarm; + bool alarm_en; + bool alarm_expired; +}; -struct rcu_tasks; +struct wktmr_time { + u32 sec; + u32 pre; +}; -typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *); +struct ec_params_i2c_passthru_msg { + uint16_t addr_flags; + uint16_t len; +}; -typedef void (*pregp_func_t)(struct list_head *); +struct ec_params_i2c_passthru { + uint8_t port; + uint8_t num_msgs; + struct ec_params_i2c_passthru_msg msg[0]; +}; -typedef void (*pertask_func_t)(struct task_struct *, struct list_head *); +struct ec_response_i2c_passthru { + uint8_t i2c_status; + uint8_t num_msgs; + uint8_t data[0]; +}; -typedef void (*postscan_func_t)(struct list_head *); +struct ec_i2c_device { + struct device *dev; + struct i2c_adapter adap; + struct cros_ec_device *ec; + u16 remote_bus; + u8 request_buf[256]; + u8 response_buf[256]; +}; -typedef void (*holdouts_func_t)(struct list_head *, bool, bool *); +typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long); -typedef void (*postgp_func_t)(struct rcu_tasks *); +typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long); -struct rcu_tasks_percpu; +typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *); -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; +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, }; -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; +enum hwmon_energy_attributes { + hwmon_energy_enable = 0, + hwmon_energy_input = 1, + hwmon_energy_label = 2, }; -struct trace_event_raw_rcu_utilization { - struct trace_entry ent; - const char *s; - char __data[0]; +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, }; -struct trace_event_raw_rcu_grace_period { - struct trace_entry ent; - const char *rcuname; - long gp_seq; - const char *gpevent; - char __data[0]; +enum hwmon_fan_attributes { + hwmon_fan_enable = 0, + hwmon_fan_input = 1, + hwmon_fan_label = 2, + hwmon_fan_min = 3, + hwmon_fan_max = 4, + hwmon_fan_div = 5, + hwmon_fan_pulses = 6, + hwmon_fan_target = 7, + hwmon_fan_alarm = 8, + hwmon_fan_min_alarm = 9, + hwmon_fan_max_alarm = 10, + hwmon_fan_fault = 11, + hwmon_fan_beep = 12, }; -struct trace_event_raw_rcu_future_grace_period { +struct trace_event_raw_hwmon_attr_class { struct trace_entry ent; - const char *rcuname; - long gp_seq; - long gp_seq_req; - u8 level; - int grplo; - int grphi; - const char *gpevent; + int index; + u32 __data_loc_attr_name; + long val; char __data[0]; }; -struct trace_event_raw_rcu_grace_period_init { +struct trace_event_raw_hwmon_attr_show_string { struct trace_entry ent; - const char *rcuname; - long gp_seq; - u8 level; - int grplo; - int grphi; - unsigned long qsmask; + int index; + u32 __data_loc_attr_name; + u32 __data_loc_label; 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 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_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 hwmon_thermal_data { + struct list_head node; + struct device *dev; + int index; + struct thermal_zone_device *tzd; }; -struct trace_event_raw_rcu_preempt_task { - struct trace_entry ent; - const char *rcuname; - long gp_seq; - int pid; - 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 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_data_offsets_hwmon_attr_class { + u32 attr_name; }; -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_data_offsets_hwmon_attr_show_string { + u32 attr_name; + u32 label; }; -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 rtd119x_watchdog_device { + struct watchdog_device wdt_dev; + void *base; + struct clk *clk; }; -struct trace_event_raw_rcu_stall_warning { - struct trace_entry ent; - const char *rcuname; - const char *msg; - char __data[0]; +struct private_data { + struct list_head node; + cpumask_var_t cpus; + struct device *cpu_dev; + struct cpufreq_frequency_table *freq_table; + bool have_static_opps; + int opp_token; }; -struct trace_event_raw_rcu_dyntick { - struct trace_entry ent; - const char *polarity; - long oldnesting; - long newnesting; - int dynticks; - char __data[0]; +struct mmc_clk_phase { + bool valid; + u16 in_deg; + u16 out_deg; }; -struct trace_event_raw_rcu_callback { - struct trace_entry ent; - const char *rcuname; - void *rhp; - void *func; - long qlen; - char __data[0]; +struct mmc_clk_phase_map { + struct mmc_clk_phase phase[11]; }; -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 exynos_ufs_uic_attr; -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 exynos_ufs; -struct trace_event_raw_rcu_batch_start { - struct trace_entry ent; - const char *rcuname; - long qlen; - long blimit; - char __data[0]; +struct exynos_ufs_drv_data { + const struct ufs_hba_variant_ops *vops; + struct exynos_ufs_uic_attr *uic_attr; + unsigned int quirks; + unsigned int opts; + int (*drv_init)(struct device *, struct exynos_ufs *); + int (*pre_link)(struct exynos_ufs *); + int (*post_link)(struct exynos_ufs *); + int (*pre_pwr_change)(struct exynos_ufs *, struct ufs_pa_layer_attr *); + int (*post_pwr_change)(struct exynos_ufs *, struct ufs_pa_layer_attr *); + int (*pre_hce_enable)(struct exynos_ufs *); + int (*post_hce_enable)(struct exynos_ufs *); }; -struct trace_event_raw_rcu_invoke_callback { - struct trace_entry ent; - const char *rcuname; - void *rhp; - void *func; - char __data[0]; +struct exynos_ufs_uic_attr { + unsigned int tx_trailingclks; + unsigned int tx_dif_p_nsec; + unsigned int tx_dif_n_nsec; + unsigned int tx_high_z_cnt_nsec; + unsigned int tx_base_unit_nsec; + unsigned int tx_gran_unit_nsec; + unsigned int tx_sleep_cnt; + unsigned int tx_min_activatetime; + unsigned int rx_filler_enable; + unsigned int rx_dif_p_nsec; + unsigned int rx_hibern8_wait_nsec; + unsigned int rx_base_unit_nsec; + unsigned int rx_gran_unit_nsec; + unsigned int rx_sleep_cnt; + unsigned int rx_stall_cnt; + unsigned int rx_hs_g1_sync_len_cap; + unsigned int rx_hs_g2_sync_len_cap; + unsigned int rx_hs_g3_sync_len_cap; + unsigned int rx_hs_g1_prep_sync_len_cap; + unsigned int rx_hs_g2_prep_sync_len_cap; + unsigned int rx_hs_g3_prep_sync_len_cap; + unsigned int cmn_pwm_clk_ctrl; + unsigned int pa_dbg_option_suite; + unsigned int rx_adv_fine_gran_sup_en; + unsigned int rx_adv_fine_gran_step; + unsigned int rx_min_actv_time_cap; + unsigned int rx_hibern8_time_cap; + unsigned int rx_adv_min_actv_time_cap; + unsigned int rx_adv_hibern8_time_cap; + unsigned int pa_granularity; + unsigned int pa_tactivate; + unsigned int pa_hibern8time; }; -struct trace_event_raw_rcu_invoke_kvfree_callback { - struct trace_entry ent; - const char *rcuname; - void *rhp; - unsigned long offset; - char __data[0]; +struct ufs_phy_time_cfg { + u32 tx_linereset_p; + u32 tx_linereset_n; + u32 tx_high_z_cnt; + u32 tx_base_n_val; + u32 tx_gran_n_val; + u32 tx_sleep_cnt; + u32 rx_linereset; + u32 rx_hibern8_wait; + u32 rx_base_n_val; + u32 rx_gran_n_val; + u32 rx_sleep_cnt; + u32 rx_stall_cnt; }; -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 exynos_ufs { + struct ufs_hba *hba; + struct phy *phy; + void *reg_hci; + void *reg_unipro; + void *reg_ufsp; + struct clk *clk_hci_core; + struct clk *clk_unipro_main; + struct clk *clk_apb; + u32 pclk_rate; + u32 pclk_div; + u32 pclk_avail_min; + u32 pclk_avail_max; + unsigned long mclk_rate; + int avail_ln_rx; + int avail_ln_tx; + int rx_sel_idx; + struct ufs_pa_layer_attr dev_req_params; + struct ufs_phy_time_cfg t_cfg; + ktime_t entry_hibern8_t; + const struct exynos_ufs_drv_data *drv_data; + struct regmap *sysreg; + u32 shareability_reg_offset; + u32 opts; }; -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]; +enum { + UNIPRO_L1_5 = 0, + UNIPRO_L2 = 1, + UNIPRO_L3 = 2, + UNIPRO_L4 = 3, + UNIPRO_DME = 4, }; -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]; +enum { + CPORT_IDLE = 0, + CPORT_CONNECTED = 1, }; -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]; +enum { + DEV_ID = 0, + PEER_DEV_ID = 1, + PEER_CPORT_ID = 0, + TRAFFIC_CLASS = 0, }; -struct trc_stall_chk_rdr { - int nesting; - int ipi_to_cpu; - u8 needqs; +enum { + SYNC_LEN_G1 = 80000, + SYNC_LEN_G2 = 40000, + SYNC_LEN_G3 = 20000, }; -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 {}; +enum scmi_sensor_protocol_cmd { + SENSOR_DESCRIPTION_GET = 3, + SENSOR_TRIP_POINT_NOTIFY = 4, + SENSOR_TRIP_POINT_CONFIG = 5, + SENSOR_READING_GET = 6, + SENSOR_AXIS_DESCRIPTION_GET = 7, + SENSOR_LIST_UPDATE_INTERVALS = 8, + SENSOR_CONFIG_GET = 9, + SENSOR_CONFIG_SET = 10, + SENSOR_CONTINUOUS_UPDATE_NOTIFY = 11, + SENSOR_NAME_GET = 12, + SENSOR_AXIS_NAME_GET = 13, +}; -struct trace_event_data_offsets_rcu_invoke_kvfree_callback {}; +struct scmi_sens_ipriv { + void *priv; + struct device *dev; +}; -struct trace_event_data_offsets_rcu_invoke_kfree_bulk_callback {}; +struct sensors_info { + u32 version; + int num_sensors; + int max_requests; + u64 reg_addr; + u32 reg_size; + struct scmi_sensor_info *sensors; +}; -struct trace_event_data_offsets_rcu_batch_end {}; +struct scmi_msg_resp_sensor_attributes { + __le16 num_sensors; + u8 max_requests; + u8 reserved; + __le32 reg_addr_low; + __le32 reg_addr_high; + __le32 reg_size; +}; -struct trace_event_data_offsets_rcu_torture_read {}; +struct scmi_apriv { + bool any_axes_support_extended_names; + struct scmi_sensor_info *s; +}; -struct trace_event_data_offsets_rcu_barrier {}; +struct scmi_msg_resp_attrs { + __le32 min_range_low; + __le32 min_range_high; + __le32 max_range_low; + __le32 max_range_high; +}; -struct action_cache { - unsigned long allow_native[8]; - unsigned long allow_compat[8]; +struct scmi_sensor_reading_resp { + __le32 sensor_value_low; + __le32 sensor_value_high; + __le32 timestamp_low; + __le32 timestamp_high; }; -struct notification; +struct scmi_msg_sensor_request_notify { + __le32 id; + __le32 event_control; +}; -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 scmi_msg_sensor_description { + __le32 desc_index; }; -struct notification { - struct semaphore request; - u64 next_id; - struct list_head notifications; +struct scmi_sensor_descriptor { + __le32 id; + __le32 attributes_low; + __le32 attributes_high; + u8 name[16]; + __le32 power; + __le32 resolution; + struct scmi_msg_resp_attrs scalar_attrs; }; -struct seccomp_log_name { - u32 log; - const char *name; +struct scmi_msg_resp_sensor_description { + __le16 num_returned; + __le16 num_remaining; + struct scmi_sensor_descriptor desc[0]; }; -enum notify_state { - SECCOMP_NOTIFY_INIT = 0, - SECCOMP_NOTIFY_SENT = 1, - SECCOMP_NOTIFY_REPLIED = 2, +struct scmi_msg_sensor_list_update_intervals { + __le32 id; + __le32 index; }; -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 scmi_msg_resp_sensor_list_update_intervals { + __le32 num_intervals_flags; + __le32 intervals[0]; }; -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 scmi_msg_sensor_axis_description_get { + __le32 id; + __le32 axis_desc_index; }; -struct seccomp_notif_sizes { - __u16 seccomp_notif; - __u16 seccomp_notif_resp; - __u16 seccomp_data; +struct scmi_axis_descriptor { + __le32 id; + __le32 attributes_low; + __le32 attributes_high; + u8 name[16]; + __le32 resolution; + struct scmi_msg_resp_attrs attrs; }; -struct seccomp_notif_resp { - __u64 id; - __s64 val; - __s32 error; - __u32 flags; +struct scmi_msg_resp_sensor_axis_description { + __le32 num_axis_flags; + struct scmi_axis_descriptor desc[0]; }; -struct seccomp_notif { - __u64 id; - __u32 pid; - __u32 flags; - struct seccomp_data data; +struct scmi_sensor_axis_name_descriptor { + __le32 axis_id; + u8 name[64]; }; -struct seccomp_notif_addfd { - __u64 id; - __u32 flags; - __u32 srcfd; - __u32 newfd; - __u32 newfd_flags; +struct scmi_msg_resp_sensor_axis_names_description { + __le32 num_axis_flags; + struct scmi_sensor_axis_name_descriptor desc[0]; }; -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; +struct scmi_msg_set_sensor_trip_point { + __le32 id; + __le32 event_control; + __le32 value_low; + __le32 value_high; }; -struct cgroup_lsm_atype { - u32 attach_btf_id; - int refcnt; +struct scmi_msg_sensor_reading_get { + __le32 id; + __le32 flags; }; -enum { - BPF_F_SYSCTL_BASE_NAME = 1, +struct scmi_resp_sensor_reading_complete { + __le32 id; + __le32 readings_low; + __le32 readings_high; }; -typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64); +struct scmi_resp_sensor_reading_complete_v3 { + __le32 id; + struct scmi_sensor_reading_resp readings[0]; +}; -typedef u64 (*btf_bpf_get_retval)(); +struct scmi_msg_sensor_config_set { + __le32 id; + __le32 sensor_config; +}; -typedef u64 (*btf_bpf_set_retval)(int); +struct scmi_sensor_trip_notify_payld { + __le32 agent_id; + __le32 sensor_id; + __le32 trip_point_desc; +}; -typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64); +struct scmi_sensor_trip_point_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int sensor_id; + unsigned int trip_point_desc; +}; -typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t); +struct scmi_sensor_update_notify_payld { + __le32 agent_id; + __le32 sensor_id; + struct scmi_sensor_reading_resp readings[0]; +}; -typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t); +struct scmi_sensor_update_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int sensor_id; + unsigned int readings_count; + struct scmi_sensor_reading readings[0]; +}; -typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t); +struct capsule_info { + efi_capsule_header_t header; + efi_capsule_header_t *capsule; + int reset_type; + long index; + size_t count; + size_t total_size; + struct page **pages; + phys_addr_t *phys; + size_t page_bytes_remain; +}; -typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *); +struct quirks_list_struct { + struct hid_device_id hid_bl_item; + struct list_head node; +}; -struct bpf_cgroup_link; +struct cros_usbpd_notify_data { + struct device *dev; + struct cros_ec_device *ec; + struct notifier_block nb; +}; -struct bpf_prog_list { - struct hlist_node node; - struct bpf_prog *prog; - struct bpf_cgroup_link *link; - struct bpf_cgroup_storage *storage[2]; +struct ec_response_host_event_status { + uint32_t status; }; -struct bpf_cgroup_link { - struct bpf_link link; - struct cgroup *cgroup; - enum bpf_attach_type type; +struct extcon_dev_notifier_devres { + struct extcon_dev *edev; + unsigned int id; + struct notifier_block *nb; }; -struct bpf_sockopt_buf { - u8 data[32]; +struct pmu_irq_ops { + void (*enable_pmuirq)(unsigned int); + void (*disable_pmuirq)(unsigned int); + void (*free_pmuirq)(unsigned int, int, void __attribute__((btf_type_tag("percpu"))) *); }; -typedef void (*btf_trace_tlb_flush)(void *, int, unsigned long); +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, +}; -typedef void (*btf_trace_mm_migrate_pages)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, enum migrate_mode, int); +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, +}; -typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int); +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, +}; -typedef void (*btf_trace_set_migration_pte)(void *, unsigned long, unsigned long, int); +struct snvs_lpgpr_cfg { + int offset; + int offset_hplr; + int offset_lplr; + int size; +}; -typedef void (*btf_trace_remove_migration_pte)(void *, unsigned long, unsigned long, int); +struct device_d; -struct trace_event_raw_tlb_flush { - struct trace_entry ent; - int reason; - unsigned long pages; - char __data[0]; +struct snvs_lpgpr_priv { + struct device_d *dev; + struct regmap *regmap; + struct nvmem_config cfg; + const struct snvs_lpgpr_cfg *dcfg; }; -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 dmaengine_pcm_runtime_data { + struct dma_chan *dma_chan; + dma_cookie_t cookie; + unsigned int pos; }; -struct trace_event_raw_mm_migrate_pages_start { - struct trace_entry ent; - enum migrate_mode mode; - int reason; - char __data[0]; +struct scm_timestamping64 { + struct __kernel_timespec ts[3]; }; -struct trace_event_raw_migration_pte { - struct trace_entry ent; - unsigned long addr; - unsigned long pte; - int order; - char __data[0]; +struct scm_timestamping { + struct __kernel_old_timespec ts[3]; }; -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 flow_indr_dev { + struct list_head list; + flow_indr_block_bind_cb_t *cb; + void *cb_priv; + refcount_t refcnt; +}; -struct folio_referenced_arg { - int mapcount; - int referenced; - unsigned long vm_flags; - struct mem_cgroup *memcg; +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 saved { - struct path link; - struct delayed_call done; - const char *name; - unsigned int seq; +struct flow_match_meta { + struct flow_dissector_key_meta *key; + struct flow_dissector_key_meta *mask; }; -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; +struct flow_match_arp { + struct flow_dissector_key_arp *key; + struct flow_dissector_key_arp *mask; }; -enum { - LAST_NORM = 0, - LAST_ROOT = 1, - LAST_DOT = 2, - LAST_DOTDOT = 3, +struct flow_match_ip { + struct flow_dissector_key_ip *key; + struct flow_dissector_key_ip *mask; }; -enum { - WALK_TRAILING = 1, - WALK_MORE = 2, - WALK_NOFOLLOW = 4, +struct flow_dissector_key_ports_range; + +struct flow_match_ports_range { + struct flow_dissector_key_ports_range *key; + struct flow_dissector_key_ports_range *mask; }; -struct 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 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 dqstats { - unsigned long stat[8]; - struct percpu_counter counter[8]; +struct flow_match_tcp { + struct flow_dissector_key_tcp *key; + struct flow_dissector_key_tcp *mask; }; -struct quota_module_name { - int qm_fmt_id; - char *qm_mod_name; +struct flow_match_ipsec { + struct flow_dissector_key_ipsec *key; + struct flow_dissector_key_ipsec *mask; }; -enum { - DQF_INFO_DIRTY_B = 17, +struct flow_match_icmp { + struct flow_dissector_key_icmp *key; + struct flow_dissector_key_icmp *mask; }; -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, +struct flow_match_mpls { + struct flow_dissector_key_mpls *key; + struct flow_dissector_key_mpls *mask; }; -struct dquot_warn { - struct super_block *w_sb; - struct kqid w_dq_id; - short w_type; +struct flow_match_enc_keyid { + struct flow_dissector_key_keyid *key; + struct flow_dissector_key_keyid *mask; }; -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); +struct flow_match_enc_opts { + struct flow_dissector_key_enc_opts *key; + struct flow_dissector_key_enc_opts *mask; +}; -typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); +struct flow_match_ct { + struct flow_dissector_key_ct *key; + struct flow_dissector_key_ct *mask; +}; -typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, unsigned long); +struct flow_match_pppoe { + struct flow_dissector_key_pppoe *key; + struct flow_dissector_key_pppoe *mask; +}; -typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); +struct flow_match_l2tpv3 { + struct flow_dissector_key_l2tpv3 *key; + struct flow_dissector_key_l2tpv3 *mask; +}; -typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int); +struct bpf_dummy_ops_test_args { + u64 args[12]; + struct bpf_dummy_ops_state state; +}; -typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int); +typedef int (*dummy_ops_test_ret_fn)(struct bpf_dummy_ops_state *, ...); -typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); +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, +}; -typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); +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, +}; -typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); +struct mm_reply_data { + struct ethnl_reply_data base; + struct ethtool_mm_state state; + struct ethtool_mm_stats stats; +}; -typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *); +struct tsq_tasklet { + struct tasklet_struct tasklet; + struct list_head head; +}; -typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, unsigned long, struct writeback_control *); +enum tsq_flags { + TSQF_THROTTLED = 1, + TSQF_QUEUED = 2, + TCPF_TSQ_DEFERRED = 4, + TCPF_WRITE_TIMER_DEFERRED = 8, + TCPF_DELACK_TIMER_DEFERRED = 16, + TCPF_MTU_REDUCED_DEFERRED = 32, + TCPF_ACK_DEFERRED = 64, +}; -typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); +enum { + BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, + BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, +}; -typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); +struct mptcp_out_options {}; -typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *); +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; +}; -typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *); +typedef u64 (*btf_bpf_tcp_send_ack)(struct tcp_sock *, u32); -typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t); +enum switchdev_attr_id { + SWITCHDEV_ATTR_ID_UNDEFINED = 0, + SWITCHDEV_ATTR_ID_PORT_STP_STATE = 1, + SWITCHDEV_ATTR_ID_PORT_MST_STATE = 2, + SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS = 3, + SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS = 4, + SWITCHDEV_ATTR_ID_PORT_MROUTER = 5, + SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME = 6, + SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING = 7, + SWITCHDEV_ATTR_ID_BRIDGE_VLAN_PROTOCOL = 8, + SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED = 9, + SWITCHDEV_ATTR_ID_BRIDGE_MROUTER = 10, + SWITCHDEV_ATTR_ID_BRIDGE_MST = 11, + SWITCHDEV_ATTR_ID_MRP_PORT_ROLE = 12, + SWITCHDEV_ATTR_ID_VLAN_MSTI = 13, +}; -typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t); +enum switchdev_notifier_type { + SWITCHDEV_FDB_ADD_TO_BRIDGE = 1, + SWITCHDEV_FDB_DEL_TO_BRIDGE = 2, + SWITCHDEV_FDB_ADD_TO_DEVICE = 3, + SWITCHDEV_FDB_DEL_TO_DEVICE = 4, + SWITCHDEV_FDB_OFFLOADED = 5, + SWITCHDEV_FDB_FLUSH_TO_BRIDGE = 6, + SWITCHDEV_PORT_OBJ_ADD = 7, + SWITCHDEV_PORT_OBJ_DEL = 8, + SWITCHDEV_PORT_ATTR_SET = 9, + SWITCHDEV_VXLAN_FDB_ADD_TO_BRIDGE = 10, + SWITCHDEV_VXLAN_FDB_DEL_TO_BRIDGE = 11, + SWITCHDEV_VXLAN_FDB_ADD_TO_DEVICE = 12, + SWITCHDEV_VXLAN_FDB_DEL_TO_DEVICE = 13, + SWITCHDEV_VXLAN_FDB_OFFLOADED = 14, + SWITCHDEV_BRPORT_OFFLOADED = 15, + SWITCHDEV_BRPORT_UNOFFLOADED = 16, + SWITCHDEV_BRPORT_REPLAY = 17, +}; -typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, unsigned long long, unsigned long long); +typedef void switchdev_deferred_func_t(struct net_device *, const void *); -typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); +struct switchdev_deferred_item { + struct list_head list; + struct net_device *dev; + netdevice_tracker dev_tracker; + switchdev_deferred_func_t *func; + unsigned long data[0]; +}; -typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); +struct switchdev_notifier_info { + struct net_device *dev; + struct netlink_ext_ack *extack; + const void *ctx; +}; -typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, unsigned long long, unsigned int); +struct switchdev_attr { + struct net_device *orig_dev; + enum switchdev_attr_id id; + u32 flags; + void *complete_priv; + void (*complete)(struct net_device *, int, void *); + union { + u8 stp_state; + struct switchdev_mst_state mst_state; + struct switchdev_brport_flags brport_flags; + bool mrouter; + clock_t ageing_time; + bool vlan_filtering; + u16 vlan_protocol; + bool mst; + bool mc_disabled; + u8 mrp_port_role; + struct switchdev_vlan_msti vlan_msti; + } u; +}; -typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *); +struct switchdev_notifier_port_attr_info { + struct switchdev_notifier_info info; + const struct switchdev_attr *attr; + bool handled; +}; -typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int, unsigned int); +struct switchdev_notifier_port_obj_info { + struct switchdev_notifier_info info; + const struct switchdev_obj *obj; + bool handled; +}; -typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int); +struct switchdev_nested_priv { + bool (*check_cb)(const struct net_device *); + bool (*foreign_dev_check_cb)(const struct net_device *, const struct net_device *); + const struct net_device *dev; + struct net_device *lower_dev; +}; -typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *); +struct switchdev_notifier_fdb_info { + struct switchdev_notifier_info info; + const unsigned char *addr; + u16 vid; + u8 added_by_user: 1; + u8 is_local: 1; + u8 locked: 1; + u8 offloaded: 1; +}; -typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, unsigned long long); +struct switchdev_brport { + struct net_device *dev; + const void *ctx; + struct notifier_block *atomic_nb; + struct notifier_block *blocking_nb; + bool tx_fwd_offload; +}; -typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, unsigned long, int); +struct switchdev_notifier_brport_info { + struct switchdev_notifier_info info; + const struct switchdev_brport brport; +}; -typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int); +enum aarch64_insn_special_register { + AARCH64_INSN_SPCLREG_SPSR_EL1 = 49664, + AARCH64_INSN_SPCLREG_ELR_EL1 = 49665, + AARCH64_INSN_SPCLREG_SP_EL0 = 49672, + AARCH64_INSN_SPCLREG_SPSEL = 49680, + AARCH64_INSN_SPCLREG_CURRENTEL = 49682, + AARCH64_INSN_SPCLREG_DAIF = 55825, + AARCH64_INSN_SPCLREG_NZCV = 55824, + AARCH64_INSN_SPCLREG_FPCR = 55840, + AARCH64_INSN_SPCLREG_DSPSR_EL0 = 55848, + AARCH64_INSN_SPCLREG_DLR_EL0 = 55849, + AARCH64_INSN_SPCLREG_SPSR_EL2 = 57856, + AARCH64_INSN_SPCLREG_ELR_EL2 = 57857, + AARCH64_INSN_SPCLREG_SP_EL1 = 57864, + AARCH64_INSN_SPCLREG_SPSR_INQ = 57880, + AARCH64_INSN_SPCLREG_SPSR_ABT = 57881, + AARCH64_INSN_SPCLREG_SPSR_UND = 57882, + AARCH64_INSN_SPCLREG_SPSR_FIQ = 57883, + AARCH64_INSN_SPCLREG_SPSR_EL3 = 61952, + AARCH64_INSN_SPCLREG_ELR_EL3 = 61953, + AARCH64_INSN_SPCLREG_SP_EL2 = 61968, +}; -typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int); +struct fault_info { + int (*fn)(unsigned long, unsigned long, struct pt_regs *); + int sig; + int code; + const char *name; +}; -typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int); +struct hyp_shared_pfn { + u64 pfn; + int count; + struct rb_node node; +}; -typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *); +typedef void (*hcall_t)(struct kvm_cpu_context___2 *); -typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *); +struct ghash_key { + be128 k; + u64 h[0]; +}; -typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *); +struct gcm_aes_ctx { + struct crypto_aes_ctx aes_key; + u8 nonce[4]; + struct ghash_key ghash_key; +}; -typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); +struct ghash_desc_ctx { + u64 digest[2]; + u8 buf[16]; + u32 count; +}; -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_contention_begin)(void *, void *, unsigned int); -typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64); +typedef void (*btf_trace_contention_end)(void *, void *, int); -typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); +struct trace_event_raw_contention_begin { + struct trace_entry ent; + void *lock_addr; + unsigned int flags; + char __data[0]; +}; -typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *); +struct trace_event_raw_contention_end { + struct trace_entry ent; + void *lock_addr; + int ret; + char __data[0]; +}; -typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); +struct mutex_waiter { + struct list_head list; + struct task_struct *task; + struct ww_acquire_ctx *ww_ctx; +}; -typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, unsigned long); +struct trace_event_data_offsets_contention_begin {}; -typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, unsigned long); +struct trace_event_data_offsets_contention_end {}; -typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, unsigned long); +enum { + GP_IDLE = 0, + GP_ENTER = 1, + GP_PASSED = 2, + GP_EXIT = 3, + GP_REPLAY = 4, +}; -typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, unsigned long, bool); +struct rcu_exp_work { + unsigned long rew_s; + struct work_struct rew_work; +}; -typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int); +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: 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; +}; -typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int); +union rcu_noqs { + struct { + u8 norm; + u8 exp; + } b; + u16 s; +}; -typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int); +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; +}; -typedef void (*btf_trace_ext4_fallocate_exit)(void *, struct inode *, loff_t, unsigned int, int); +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; +}; -typedef void (*btf_trace_ext4_unlink_enter)(void *, struct inode *, struct dentry *); +struct rcu_state { + struct rcu_node node[17]; + 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; + int nr_fqs_jiffies_stall; + unsigned long jiffies_resched; + unsigned long n_force_qs_gpstart; + const char *name; + char abbr; + 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; +}; -typedef void (*btf_trace_ext4_unlink_exit)(void *, struct dentry *, int); +struct rcu_gp_oldstate { + unsigned long rgos_norm; + unsigned long rgos_exp; +}; -typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *); +struct kfree_rcu_cpu; -typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *); +struct kfree_rcu_cpu_work { + struct rcu_work rcu_work; + struct callback_head *head_free; + struct rcu_gp_oldstate head_free_gp_snap; + struct list_head bulk_head_free[2]; + struct kfree_rcu_cpu *krcp; +}; -typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *); +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; +}; -typedef void (*btf_trace_ext4_ext_convert_to_initialized_fastpath)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *, struct ext4_extent *); +struct kvfree_rcu_bulk_data { + struct list_head list; + struct rcu_gp_oldstate gp_snap; + unsigned long nr_records; + void *records[0]; +}; -typedef void (*btf_trace_ext4_ext_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); +struct rcu_stall_chk_rdr { + int nesting; + union rcu_special rs; + bool on_blkd_list; +}; -typedef void (*btf_trace_ext4_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); +typedef void (*btf_trace_cgroup_setup_root)(void *, struct cgroup_root *); -typedef void (*btf_trace_ext4_ext_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); +typedef void (*btf_trace_cgroup_destroy_root)(void *, struct cgroup_root *); -typedef void (*btf_trace_ext4_ind_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); +typedef void (*btf_trace_cgroup_remount)(void *, struct cgroup_root *); -typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t); +typedef void (*btf_trace_cgroup_mkdir)(void *, struct cgroup *, const char *); -typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, unsigned long); +typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *); -typedef void (*btf_trace_ext4_journal_start_sb)(void *, struct super_block *, int, int, int, int, unsigned long); +typedef void (*btf_trace_cgroup_release)(void *, struct cgroup *, const char *); -typedef void (*btf_trace_ext4_journal_start_inode)(void *, struct inode *, int, int, int, int, unsigned long); +typedef void (*btf_trace_cgroup_rename)(void *, struct cgroup *, const char *); -typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, unsigned long); +typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *); -typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); +typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *); -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_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool); -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_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool); -typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int); +typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const char *, int); -typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, unsigned short); +typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int); -typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); +enum cgroup2_param { + Opt_nsdelegate = 0, + Opt_favordynmods___2 = 1, + Opt_memory_localevents = 2, + Opt_memory_recursiveprot = 3, + Opt_memory_hugetlb_accounting = 4, + nr__cgroup2_params = 5, +}; -typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *); +enum cgroup_opt_features { + OPT_FEATURE_COUNT = 0, +}; -typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); +struct trace_event_raw_cgroup_root { + struct trace_entry ent; + int root; + u16 ss_mask; + u32 __data_loc_name; + char __data[0]; +}; -typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int); +struct trace_event_raw_cgroup { + struct trace_entry ent; + int root; + int level; + u64 id; + u32 __data_loc_path; + char __data[0]; +}; -typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16); +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]; +}; -typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *); +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]; +}; -typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *); +struct trace_event_data_offsets_cgroup_root { + u32 name; +}; -typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t); +struct trace_event_data_offsets_cgroup { + u32 path; +}; -typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t); +struct trace_event_data_offsets_cgroup_migrate { + u32 dst_path; + u32 comm; +}; -typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *); +struct trace_event_data_offsets_cgroup_event { + u32 path; +}; -typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t); +struct lpm_trie_node; -typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int); +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: 64; + long: 64; + long: 64; +}; -typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int); +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]; +}; -typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int); +struct bpf_lpm_trie_key { + __u32 prefixlen; + __u8 data[0]; +}; -typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int); +typedef u64 (*btf_bpf_cgrp_storage_get)(struct bpf_map *, struct cgroup *, void *, u64, gfp_t); -typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); +typedef u64 (*btf_bpf_cgrp_storage_delete)(struct bpf_map *, struct cgroup *); -typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t); +struct vm_event_state { + unsigned long event[107]; +}; -typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int); +struct contig_page_info { + unsigned long free_pages; + unsigned long free_blocks_total; + unsigned long free_blocks_suitable; +}; -typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool); +enum { + ONLINE_POLICY_CONTIG_ZONES = 0, + ONLINE_POLICY_AUTO_MOVABLE = 1, +}; -typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64); +enum { + MEMMAP_ON_MEMORY_DISABLE = 0, + MEMMAP_ON_MEMORY_ENABLE = 1, + MEMMAP_ON_MEMORY_FORCE = 2, +}; -typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); +struct auto_movable_stats { + unsigned long kernel_early_pages; + unsigned long movable_pages; +}; -typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64); +struct auto_movable_group_stats { + unsigned long movable_pages; + unsigned long req_kernel_early_pages; +}; -typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *); +struct files_stat_struct { + unsigned long nr_files; + unsigned long nr_free_files; + unsigned long max_files; +}; -typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); +struct backing_file { + struct file file; + struct path user_path; +}; -typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *); +struct old_utimbuf32 { + old_time32_t actime; + old_time32_t modtime; +}; -typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, unsigned long); +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; +}; -typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); +struct fs_qfilestat { + __u64 qfs_ino; + __u64 qfs_nblks; + __u32 qfs_nextents; +}; -typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); +typedef struct fs_qfilestat fs_qfilestat_t; -typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_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; +}; -typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); +struct fs_qfilestatv { + __u64 qfs_ino; + __u64 qfs_nblks; + __u32 qfs_nextents; + __u32 qfs_pad; +}; -typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int); +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]; +}; -typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *, tid_t); +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]; +}; -typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int, tid_t); +struct if_dqinfo { + __u64 dqi_bgrace; + __u64 dqi_igrace; + __u32 dqi_flags; + __u32 dqi_valid; +}; -typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *); +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; +}; -typedef void (*btf_trace_ext4_fc_track_create)(void *, handle_t *, struct inode *, struct dentry *, int); +enum { + MOUNTPROC3_NULL = 0, + MOUNTPROC3_MNT = 1, + MOUNTPROC3_DUMP = 2, + MOUNTPROC3_UMNT = 3, + MOUNTPROC3_UMNTALL = 4, + MOUNTPROC3_EXPORT = 5, +}; -typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int); +enum { + MOUNTPROC_NULL = 0, + MOUNTPROC_MNT = 1, + MOUNTPROC_DUMP = 2, + MOUNTPROC_UMNT = 3, + MOUNTPROC_UMNTALL = 4, + MOUNTPROC_EXPORT = 5, +}; -typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int); +struct mountres { + int errno; + struct nfs_fh *fh; + unsigned int *auth_count; + rpc_authflavor_t *auth_flavors; +}; -typedef void (*btf_trace_ext4_fc_track_inode)(void *, handle_t *, struct inode *, int); +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; +}; -typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long, long, int); +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, +}; -typedef void (*btf_trace_ext4_fc_cleanup)(void *, journal_t *, int, tid_t); +struct cb_compound_hdr_arg { + unsigned int taglen; + const char *tag; + unsigned int minorversion; + unsigned int cb_ident; + unsigned int nops; +}; -typedef void (*btf_trace_ext4_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int); +struct cb_compound_hdr_res { + __be32 *status; + unsigned int taglen; + const char *tag; + __be32 *nops; +}; -struct ext4_lazy_init { - unsigned long li_state; - struct list_head li_request_list; - struct mutex li_list_mtx; +struct sem_undo_list { + refcount_t refcnt; + spinlock_t lock; + struct list_head list_proc; }; -struct ext4_err_translation { - int code; - int errno; +struct sem_undo { + struct list_head list_proc; + struct callback_head rcu; + struct sem_undo_list *ulp; + struct list_head list_id; + int semid; + short semadj[0]; }; -struct mount_opts { - int token; - int mount_opt; - int flags; +struct sem { + int semval; + struct pid *sempid; + spinlock_t lock; + struct list_head pending_alter; + struct list_head pending_const; + time64_t sem_otime; }; -enum { - Opt_bsd_df___2 = 0, - Opt_minix_df___2 = 1, - Opt_grpid___2 = 2, - Opt_nogrpid___2 = 3, - Opt_resgid___2 = 4, - Opt_resuid___2 = 5, - Opt_sb___2 = 6, - Opt_nouid32___2 = 7, - Opt_debug___4 = 8, - Opt_removed = 9, - Opt_user_xattr___2 = 10, - Opt_acl___3 = 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___2 = 32, - Opt_noquota = 33, - Opt_barrier = 34, - Opt_nobarrier = 35, - Opt_err___10 = 36, - Opt_usrquota___2 = 37, - Opt_grpquota___2 = 38, - Opt_prjquota = 39, - Opt_dax___2 = 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___2 = 67, - Opt_data = 68, - Opt_data_err = 69, - Opt_jqfmt = 70, - Opt_dax_type = 71, +struct sem_array { + struct kern_ipc_perm sem_perm; + time64_t sem_ctime; + struct list_head pending_alter; + struct list_head pending_const; + struct list_head list_id; + int sem_nsems; + int complex_count; + unsigned int use_global_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sem sems[0]; }; -enum { - I_DATA_SEM_NORMAL = 0, - I_DATA_SEM_OTHER = 1, - I_DATA_SEM_QUOTA = 2, - I_DATA_SEM_EA = 3, +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 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 semid64_ds { + struct ipc64_perm sem_perm; + long sem_otime; + long sem_ctime; + unsigned long sem_nsems; + unsigned long __unused3; + unsigned long __unused4; }; -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 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 trace_event_raw_ext4_request_inode { - struct trace_entry ent; - dev_t dev; - ino_t dir; - __u16 mode; - char __data[0]; +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 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 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 trace_event_raw_ext4_evict_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int nlink; - char __data[0]; +struct seminfo { + int semmap; + int semmni; + int semmns; + int semmnu; + int semmsl; + int semopm; + int semume; + int semusz; + int semvmx; + int semaem; }; -struct trace_event_raw_ext4_drop_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int drop; - char __data[0]; +struct crypto_kpp { + unsigned int reqsize; + struct crypto_tfm base; }; -struct trace_event_raw_ext4_nfs_commit_metadata { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; +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 trace_event_raw_ext4_mark_inode_dirty { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long ip; - char __data[0]; +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 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 kpp_instance { + void (*free)(struct kpp_instance *); + union { + struct { + char head[48]; + struct crypto_instance base; + } s; + struct kpp_alg alg; + }; }; -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 crypto_istat_kpp { + atomic64_t setsecret_cnt; + atomic64_t generate_public_key_cnt; + atomic64_t compute_shared_secret_cnt; + atomic64_t err_cnt; }; -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 crypto_kpp_spawn { + struct crypto_spawn base; }; -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 crypto_report_kpp { + char type[64]; }; -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 queue_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct request_queue *, char *); + ssize_t (*store)(struct request_queue *, const char *, size_t); }; -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 show_busy_params { + struct seq_file *m; + struct blk_mq_hw_ctx *hctx; }; -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 wrapper { + cmp_func_t cmp; + swap_func_t swap; }; -struct trace_event_raw_ext4__folio_op { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long index; - char __data[0]; +enum { + MAX_OPT_ARGS = 3, }; -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]; +typedef void sg_free_fn(struct scatterlist *, unsigned int); + +typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); + +struct sg_append_table { + struct sg_table sgt; + struct scatterlist *prv; + unsigned int total_nents; }; -struct trace_event_raw_ext4_discard_blocks { - struct trace_entry ent; - dev_t dev; - __u64 blk; - __u64 count; - char __data[0]; +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, }; -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]; +enum asn1_method { + ASN1_PRIM = 0, + ASN1_CONS = 1, }; -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 mvebu_sei_interrupt_range { + u32 first; + u32 size; }; -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 mvebu_sei_caps { + struct mvebu_sei_interrupt_range ap_range; + struct mvebu_sei_interrupt_range cp_range; }; -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 mvebu_sei { + struct device *dev; + void *base; + struct resource *res; + struct irq_domain *sei_domain; + struct irq_domain *ap_domain; + struct irq_domain *cp_domain; + const struct mvebu_sei_caps *caps; + struct mutex cp_msi_lock; + unsigned long cp_msi_bitmap[1]; + raw_spinlock_t mask_lock; }; -struct trace_event_raw_ext4_mb_discard_preallocations { - struct trace_entry ent; - dev_t dev; - int needed; - char __data[0]; +struct meson_gpio_irq_controller; + +struct irq_ctl_ops { + void (*gpio_irq_sel_pin)(struct meson_gpio_irq_controller *, unsigned int, unsigned long); + void (*gpio_irq_init)(struct meson_gpio_irq_controller *); + int (*gpio_irq_set_type)(struct meson_gpio_irq_controller *, unsigned int, u32 *); }; -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 meson_gpio_irq_params { + unsigned int nr_hwirq; + unsigned int nr_channels; + bool support_edge_both; + unsigned int edge_both_offset; + unsigned int edge_single_offset; + unsigned int pol_low_offset; + unsigned int pin_sel_mask; + struct irq_ctl_ops ops; }; -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 meson_gpio_irq_controller { + const struct meson_gpio_irq_params *params; + void *base; + u32 channel_irqs[64]; + unsigned long channel_map[1]; + spinlock_t lock; }; -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 dpmcp_cmd_open { + __le32 dpmcp_id; }; -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 mvebu_a3700_utmi_caps { + int usb32; + const struct phy_ops *ops; }; -struct trace_event_raw_ext4_sync_file_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int ret; - char __data[0]; +struct mvebu_a3700_utmi { + void *regs; + struct regmap *usb_misc; + const struct mvebu_a3700_utmi_caps *caps; + struct phy *phy; }; -struct trace_event_raw_ext4_sync_fs { - struct trace_entry ent; - dev_t dev; - int wait; - char __data[0]; +struct tegra210_xusb_fuse_calibration { + u32 hs_curr_level[4]; + u32 hs_term_range_adj; + u32 rpd_ctrl; }; -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 tegra210_xusb_padctl_context { + u32 usb2_pad_mux; + u32 usb2_port_cap; + u32 ss_port_map; + u32 usb3_pad_mux; }; -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 tegra210_xusb_padctl { + struct tegra_xusb_padctl base; + struct regmap *regmap; + struct tegra210_xusb_fuse_calibration fuse; + struct tegra210_xusb_padctl_context context; }; -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 fsl_gpio_soc_data { + bool have_paddr; + bool have_dual_base; }; -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 vf610_gpio_port { + struct gpio_chip gc; + void *base; + void *gpio_base; + const struct fsl_gpio_soc_data *sdata; + u8 irqc[32]; + struct clk *clk_port; + struct clk *clk_gpio; + int irq; }; -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 pci_bridge_reg_behavior { + u32 ro; + u32 rw; + u32 w1c; }; -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]; +enum { + PCI_BRIDGE_EMUL_NO_PREFMEM_FORWARD = 1, + PCI_BRIDGE_EMUL_NO_IO_FORWARD = 2, }; -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 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 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 vga_arb_user_card { + struct pci_dev *pdev; + unsigned int mem_cnt; + unsigned int io_cnt; }; -struct trace_event_raw_ext4__bitmap_load { - struct trace_entry ent; - dev_t dev; - __u32 group; - char __data[0]; +struct vga_arb_private { + struct list_head list; + struct pci_dev *target; + struct vga_arb_user_card cards[16]; + spinlock_t lock; }; -struct trace_event_raw_ext4_read_block_bitmap_load { - struct trace_entry ent; - dev_t dev; - __u32 group; - bool prefetch; - char __data[0]; +enum iproc_msi_reg { + IPROC_MSI_EQ_PAGE = 0, + IPROC_MSI_EQ_PAGE_UPPER = 1, + IPROC_MSI_PAGE = 2, + IPROC_MSI_PAGE_UPPER = 3, + IPROC_MSI_CTRL = 4, + IPROC_MSI_EQ_HEAD = 5, + IPROC_MSI_EQ_TAIL = 6, + IPROC_MSI_INTS_EN = 7, + IPROC_MSI_REG_SIZE = 8, }; -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 iproc_msi_grp; + +struct iproc_msi { + struct iproc_pcie *pcie; + const u16 (*reg_offsets)[8]; + struct iproc_msi_grp *grps; + int nr_irqs; + int nr_cpus; + bool has_inten_reg; + unsigned long *bitmap; + struct mutex bitmap_lock; + unsigned int nr_msi_vecs; + struct irq_domain *inner_domain; + struct irq_domain *msi_domain; + unsigned int nr_eq_region; + unsigned int nr_msi_region; + void *eq_cpu; + dma_addr_t eq_dma; + phys_addr_t msi_addr; }; -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 iproc_msi_grp { + struct iproc_msi *msi; + int gic_irq; + unsigned int eq; }; -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 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 trace_event_raw_ext4_unlink_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int ret; - char __data[0]; +struct acpi_osi_entry { + char string[64]; + bool enable; }; -struct trace_event_raw_ext4__truncate { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 blocks; - char __data[0]; +struct acpi_dev_match_info { + struct acpi_device_id hid[2]; + const char *uid; + s64 hrv; }; -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 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 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 pnp_info_buffer { + char *buffer; + char *curr; + unsigned long size; + unsigned long len; + int stop; + int error; }; -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]; +typedef struct pnp_info_buffer pnp_info_buffer_t; + +struct applnco_tables; + +struct applnco_channel { + void *base; + struct applnco_tables *tbl; + struct clk_hw hw; + spinlock_t lock; }; -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 applnco_tables { + u16 fwd[2048]; + u16 inv[2048]; }; -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 clk_dvp { + struct clk_hw_onecell_data *data; + struct reset_simple_data reset; }; -struct trace_event_raw_ext4_load_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; +struct mtk_clk_gate { + struct clk_hw hw; + struct regmap *regmap; + int set_ofs; + int clr_ofs; + int sta_ofs; + u8 bit; }; -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 vid_pll_div { + unsigned int shift_val; + unsigned int shift_sel; + unsigned int divider; + unsigned int multiplier; }; -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 meson_vid_pll_div_data { + struct parm val; + struct parm sel; }; -struct trace_event_raw_ext4_journal_start_reserved { - struct trace_entry ent; - dev_t dev; - unsigned long ip; - int blocks; - char __data[0]; +enum freq_policy { + FLOOR = 0, + CEIL = 1, }; -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 clk_rcg2_gfx3d { + u8 div; + struct clk_rcg2 rcg; + struct clk_hw **hws; }; -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]; +enum clk_ids___10 { + LAST_DT_CORE_CLK___10 = 37, + CLK_EXTAL___10 = 38, + CLK_EXTALR___10 = 39, + CLK_MAIN___10 = 40, + CLK_PLL1___10 = 41, + CLK_PLL2___6 = 42, + CLK_PLL3___9 = 43, + CLK_PLL1_DIV2___10 = 44, + CLK_PLL1_DIV4___7 = 45, + CLK_S0___8 = 46, + CLK_S1___7 = 47, + CLK_S2___6 = 48, + CLK_S3___7 = 49, + CLK_SDSRC___9 = 50, + CLK_RPCSRC___9 = 51, + CLK_OCO___4 = 52, + MOD_CLK_BASE___10 = 53, }; -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 samsung_clk_pll { + struct clk_hw hw; + void *lock_reg; + void *con_reg; + unsigned short enable_offs; + unsigned short lock_offs; + enum samsung_pll_type type; + unsigned int rate_count; + const struct samsung_pll_rate_table *rate_table; }; -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 socfpga_gate_clk { + struct clk_gate hw; + char *parent_name; + u32 fixed_div; + void *div_reg; + void *bypass_reg; + struct regmap *sys_mgr_base_addr; + u32 width; + u32 shift; + u32 bypass_shift; }; -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 visconti_clk_gate { + struct clk_hw hw; + struct regmap *regmap; + u32 ckon_offset; + u32 ckoff_offset; + u8 ck_idx; + u8 flags; + u32 rson_offset; + u32 rsoff_offset; + u8 rs_idx; + spinlock_t *lock; }; -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 rcar_dmac_of_data { + u32 chan_offset_base; + u32 chan_offset_stride; }; -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 rcar_dmac_chan_slave { + phys_addr_t slave_addr; + unsigned int xfer_size; }; -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 rcar_dmac_chan_map { + dma_addr_t addr; + enum dma_data_direction dir; + struct rcar_dmac_chan_slave slave; }; -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 rcar_dmac_desc; + +struct rcar_dmac_chan { + struct dma_chan chan; + void *iomem; + unsigned int index; + int irq; + struct rcar_dmac_chan_slave src; + struct rcar_dmac_chan_slave dst; + struct rcar_dmac_chan_map map; + int mid_rid; + spinlock_t lock; + struct { + struct list_head free; + struct list_head pending; + struct list_head active; + struct list_head done; + struct list_head wait; + struct rcar_dmac_desc *running; + struct list_head chunks_free; + struct list_head pages; + } desc; }; -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 rcar_dmac_xfer_chunk; + +struct rcar_dmac_hw_desc; + +struct rcar_dmac_desc { + struct dma_async_tx_descriptor async_tx; + enum dma_transfer_direction direction; + unsigned int xfer_shift; + u32 chcr; + struct list_head node; + struct list_head chunks; + struct rcar_dmac_xfer_chunk *running; + unsigned int nchunks; + struct { + bool use; + struct rcar_dmac_hw_desc *mem; + dma_addr_t dma; + size_t size; + } hwdescs; + unsigned int size; + bool cyclic; }; -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 rcar_dmac_xfer_chunk { + struct list_head node; + dma_addr_t src_addr; + dma_addr_t dst_addr; + u32 size; }; -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 rcar_dmac_hw_desc { + u32 sar; + u32 dar; + u32 tcr; + u32 reserved; +}; + +struct rcar_dmac { + struct dma_device engine; + struct device *dev; + void *dmac_base; + void *chan_base; + unsigned int n_channels; + struct rcar_dmac_chan *channels; + u32 channels_mask; + unsigned long modules[4]; +}; + +struct rcar_dmac_desc_page { + struct list_head node; + union { + struct { + struct {} __empty_descs; + struct rcar_dmac_desc descs[0]; + }; + struct { + struct {} __empty_chunks; + struct rcar_dmac_xfer_chunk chunks[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 qm_addr { + void *ce; + __be32 *ce_be; + void *ci; }; -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 qm_eqcr_entry; -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 qm_eqcr { + struct qm_eqcr_entry *ring; + struct qm_eqcr_entry *cursor; + u8 ci; + u8 available; + u8 ithresh; + u8 vbit; }; -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 qm_dqrr { + const struct qm_dqrr_entry *ring; + const struct qm_dqrr_entry *cursor; + u8 pi; + u8 ci; + u8 fill; + u8 ithresh; + u8 vbit; }; -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 qm_mr { + union qm_mr_entry *ring; + union qm_mr_entry *cursor; + u8 pi; + u8 ci; + u8 fill; + u8 ithresh; + u8 vbit; }; -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]; -}; +union qm_mc_command; -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]; -}; +union qm_mc_result; -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 qm_mc { + union qm_mc_command *cr; + union qm_mc_result *rr; + u8 rridx; + u8 vbit; }; -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 qm_portal { + struct qm_addr addr; + struct qm_eqcr eqcr; + struct qm_dqrr dqrr; + struct qm_mr mr; + struct qm_mc mc; + long: 64; }; -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 qman_portal { + struct qm_portal p; + unsigned long bits; + unsigned long irq_sources; + u32 use_eqcr_ci_stashing; + struct qman_fq *vdqcr_owned; + u32 sdqcr; + const struct qm_portal_config *config; + struct qman_cgrs *cgrs; + struct list_head cgr_cbs; + spinlock_t cgr_lock; + struct work_struct congestion_work; + struct work_struct mr_work; + char irqname[16]; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 qm_eqcr_entry { + u8 _ncw_verb; + u8 dca; + __be16 seqnum; + u8 __reserved[4]; + __be32 fqid; + __be32 tag; + struct qm_fd fd; + u8 __reserved3[32]; }; -struct trace_event_raw_ext4_shutdown { - struct trace_entry ent; - dev_t dev; - unsigned int flags; - char __data[0]; +struct qm_mcc_fq { + u8 _ncw_verb; + u8 __reserved1[3]; + __be32 fqid; + u8 __reserved2[56]; }; -struct trace_event_raw_ext4_error { - struct trace_entry ent; - dev_t dev; - const char *function; - unsigned int line; - char __data[0]; +struct qm_mcc_cgr { + u8 _ncw_verb; + u8 __reserved1[30]; + u8 cgid; + u8 __reserved2[32]; }; -struct trace_event_raw_ext4_prefetch_bitmaps { - struct trace_entry ent; - dev_t dev; - __u32 group; - __u32 next; - __u32 ios; - char __data[0]; +union qm_mc_command { + struct { + u8 _ncw_verb; + u8 __reserved[63]; + }; + struct qm_mcc_initfq initfq; + struct qm_mcc_initcgr initcgr; + struct qm_mcc_fq fq; + struct qm_mcc_cgr cgr; }; -struct trace_event_raw_ext4_lazy_itable_init { - struct trace_entry ent; - dev_t dev; - __u32 group; - char __data[0]; +struct qm_mcr_queryfq { + u8 verb; + u8 result; + u8 __reserved1[8]; + struct qm_fqd fqd; + u8 __reserved2[30]; }; -struct trace_event_raw_ext4_fc_replay_scan { - struct trace_entry ent; - dev_t dev; - int error; - int off; - char __data[0]; +struct qm_mcr_alterfq { + u8 verb; + u8 result; + u8 fqs; + u8 __reserved1[61]; }; -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 qm_mcr_querycgr { + u8 verb; + u8 result; + u16 __reserved1; + struct __qm_mc_cgr cgr; + u8 __reserved2[6]; + u8 i_bcnt_hi; + __be32 i_bcnt_lo; + u8 __reserved3[3]; + u8 a_bcnt_hi; + __be32 a_bcnt_lo; + __be32 cscn_targ_swp[4]; }; -struct trace_event_raw_ext4_fc_commit_start { - struct trace_entry ent; - dev_t dev; - tid_t tid; - char __data[0]; +struct qm_mcr_querycongestion { + u8 verb; + u8 result; + u8 __reserved[30]; + struct __qm_mcr_querycongestion state; }; -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 qm_mcr_querywq { + u8 verb; + u8 result; + u16 channel_wq; + u8 __reserved[28]; + u32 wq_len[8]; }; -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 qm_mcr_queryfq_np { + u8 verb; + u8 result; + u8 __reserved1; + u8 state; + u32 fqd_link; + u16 odp_seq; + u16 orp_nesn; + u16 orp_ea_hseq; + u16 orp_ea_tseq; + u32 orp_ea_hptr; + u32 orp_ea_tptr; + u32 pfdr_hptr; + u32 pfdr_tptr; + u8 __reserved2[5]; + u8 is; + u16 ics_surp; + u32 byte_cnt; + u32 frm_cnt; + u32 __reserved3; + u16 ra1_sfdr; + u16 ra2_sfdr; + u16 __reserved4; + u16 od1_sfdr; + u16 od2_sfdr; + u16 od3_sfdr; }; -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]; +union qm_mc_result { + struct { + u8 verb; + u8 result; + u8 __reserved1[62]; + }; + struct qm_mcr_queryfq queryfq; + struct qm_mcr_alterfq alterfq; + struct qm_mcr_querycgr querycgr; + struct qm_mcr_querycongestion querycongestion; + struct qm_mcr_querywq querywq; + struct qm_mcr_queryfq_np queryfq_np; }; -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]; +enum qm_eqcr_pmode { + qm_eqcr_pci = 0, + qm_eqcr_pce = 1, + qm_eqcr_pvb = 2, }; -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]; +enum qm_dqrr_dmode { + qm_dqrr_dpush = 0, + qm_dqrr_dpull = 1, }; -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]; +enum qm_dqrr_pmode { + qm_dqrr_pci = 0, + qm_dqrr_pce = 1, + qm_dqrr_pvb = 2, }; -struct trace_event_raw_ext4_update_sb { - struct trace_entry ent; - dev_t dev; - ext4_fsblk_t fsblk; - unsigned int flags; - char __data[0]; +enum qm_dqrr_cmode { + qm_dqrr_cci = 0, + qm_dqrr_cce = 1, + qm_dqrr_cdc = 2, }; -struct ext4_journal_cb_entry { - struct list_head jce_list; - void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); +enum qm_mr_pmode { + qm_mr_pci = 0, + qm_mr_pce = 1, + qm_mr_pvb = 2, }; -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; +enum qm_mr_cmode { + qm_mr_cci = 0, + qm_mr_cce = 1, }; -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 update_cgr_params { + struct qman_cgr *cgr; + struct qm_mcc_initcgr *opts; + int ret; }; -struct trace_event_data_offsets_ext4_other_inode_update_time {}; +struct exynos_usi_mode { + const char *name; + unsigned int val; +}; -struct trace_event_data_offsets_ext4_free_inode {}; +enum exynos_usi_ver { + USI_VER2 = 2, +}; -struct trace_event_data_offsets_ext4_request_inode {}; +struct exynos_usi_variant { + enum exynos_usi_ver ver; + unsigned int sw_conf_mask; + size_t min_mode; + size_t max_mode; + size_t num_clks; + const char * const *clk_names; +}; -struct trace_event_data_offsets_ext4_allocate_inode {}; +struct exynos_usi { + struct device *dev; + void *regs; + struct clk_bulk_data *clks; + size_t mode; + bool clkreq_on; + struct regmap *sysreg; + unsigned int sw_conf; + const struct exynos_usi_variant *data; +}; -struct trace_event_data_offsets_ext4_evict_inode {}; +struct meson_ee_pwrc_domain_desc; -struct trace_event_data_offsets_ext4_drop_inode {}; +struct meson_ee_pwrc_domain_data { + unsigned int count; + struct meson_ee_pwrc_domain_desc *domains; +}; -struct trace_event_data_offsets_ext4_nfs_commit_metadata {}; +struct meson_ee_pwrc_top_domain; -struct trace_event_data_offsets_ext4_mark_inode_dirty {}; +struct meson_ee_pwrc_mem_domain; -struct trace_event_data_offsets_ext4_begin_ordered_truncate {}; +struct meson_ee_pwrc_domain; -struct trace_event_data_offsets_ext4__write_begin {}; +struct meson_ee_pwrc_domain_desc { + char *name; + unsigned int reset_names_count; + unsigned int clk_names_count; + struct meson_ee_pwrc_top_domain *top_pd; + unsigned int mem_pd_count; + struct meson_ee_pwrc_mem_domain *mem_pd; + bool (*is_powered_off)(struct meson_ee_pwrc_domain *); +}; -struct trace_event_data_offsets_ext4__write_end {}; +struct meson_ee_pwrc_top_domain { + unsigned int sleep_reg; + unsigned int sleep_mask; + unsigned int iso_reg; + unsigned int iso_mask; +}; -struct trace_event_data_offsets_ext4_writepages {}; +struct meson_ee_pwrc_mem_domain { + unsigned int reg; + unsigned int mask; +}; -struct trace_event_data_offsets_ext4_da_write_pages {}; +struct meson_ee_pwrc; -struct trace_event_data_offsets_ext4_da_write_pages_extent {}; +struct meson_ee_pwrc_domain { + struct generic_pm_domain base; + bool enabled; + struct meson_ee_pwrc *pwrc; + struct meson_ee_pwrc_domain_desc desc; + struct clk_bulk_data *clks; + int num_clks; + struct reset_control *rstc; + int num_rstc; +}; -struct trace_event_data_offsets_ext4_writepages_result {}; +struct meson_ee_pwrc { + struct regmap *regmap_ao; + struct regmap *regmap_hhi; + struct meson_ee_pwrc_domain *domains; + struct genpd_onecell_data xlate; +}; -struct trace_event_data_offsets_ext4__folio_op {}; +struct cpr_desc; -struct trace_event_data_offsets_ext4_invalidate_folio_op {}; +struct acc_desc; -struct trace_event_data_offsets_ext4_discard_blocks {}; +struct cpr_acc_desc { + const struct cpr_desc *cpr_desc; + const struct acc_desc *acc_desc; +}; -struct trace_event_data_offsets_ext4__mb_new_pa {}; +struct fuse_corner_data; -struct trace_event_data_offsets_ext4_mb_release_inode_pa {}; +struct cpr_fuses { + int init_voltage_step; + int init_voltage_width; + struct fuse_corner_data *fuse_corner_data; +}; -struct trace_event_data_offsets_ext4_mb_release_group_pa {}; +struct cpr_desc { + unsigned int num_fuse_corners; + int min_diff_quot; + int *step_quot; + unsigned int timer_delay_us; + unsigned int timer_cons_up; + unsigned int timer_cons_down; + unsigned int up_threshold; + unsigned int down_threshold; + unsigned int idle_clocks; + unsigned int gcnt_us; + unsigned int vdd_apc_step_up_limit; + unsigned int vdd_apc_step_down_limit; + unsigned int clamp_timer_interval; + struct cpr_fuses cpr_fuses; + bool reduce_to_fuse_uV; + bool reduce_to_corner_uV; +}; -struct trace_event_data_offsets_ext4_discard_preallocations {}; +struct fuse_corner_data { + int ref_uV; + int max_uV; + int min_uV; + int max_volt_scale; + int max_quot_scale; + int quot_offset; + int quot_scale; + int quot_adjust; + int quot_offset_scale; + int quot_offset_adjust; +}; -struct trace_event_data_offsets_ext4_mb_discard_preallocations {}; +struct acc_desc { + unsigned int enable_reg; + u32 enable_mask; + struct reg_sequence *config; + struct reg_sequence *settings; + int num_regs_per_fuse; +}; -struct trace_event_data_offsets_ext4_request_blocks {}; +enum voltage_change_dir { + NO_CHANGE = 0, + DOWN___3 = 1, + UP___3 = 2, +}; -struct trace_event_data_offsets_ext4_allocate_blocks {}; +struct corner; -struct trace_event_data_offsets_ext4_free_blocks {}; +struct fuse_corner; -struct trace_event_data_offsets_ext4_sync_file_enter {}; +struct cpr_fuse; -struct trace_event_data_offsets_ext4_sync_file_exit {}; +struct cpr_drv { + unsigned int num_corners; + unsigned int ref_clk_khz; + struct generic_pm_domain pd; + struct device *dev; + struct device *attached_cpu_dev; + struct mutex lock; + void *base; + struct corner *corner; + struct regulator *vdd_apc; + struct clk *cpu_clk; + struct regmap *tcsr; + bool loop_disabled; + u32 gcnt; + unsigned long flags; + struct fuse_corner *fuse_corners; + struct corner *corners; + const struct cpr_desc *desc; + const struct acc_desc *acc_desc; + const struct cpr_fuse *cpr_fuses; + struct dentry *debugfs; +}; -struct trace_event_data_offsets_ext4_sync_fs {}; +struct corner { + int min_uV; + int max_uV; + int uV; + int last_uV; + int quot_adjust; + u32 save_ctl; + u32 save_irq; + unsigned long freq; + struct fuse_corner *fuse_corner; +}; -struct trace_event_data_offsets_ext4_alloc_da_blocks {}; +struct fuse_corner { + int min_uV; + int max_uV; + int uV; + int quot; + int step_quot; + const struct reg_sequence *accs; + int num_accs; + unsigned long max_freq; + u8 ring_osc_idx; +}; -struct trace_event_data_offsets_ext4_mballoc_alloc {}; +struct cpr_fuse { + char *ring_osc; + char *init_voltage; + char *quotient; + char *quotient_offset; +}; -struct trace_event_data_offsets_ext4_mballoc_prealloc {}; +struct corner_data { + unsigned int fuse_corner; + unsigned long freq; +}; -struct trace_event_data_offsets_ext4__mballoc {}; +struct rk8xx_register_bit { + u8 reg; + u8 bit; +}; -struct trace_event_data_offsets_ext4_forget {}; +enum rk809_reg_id { + RK809_ID_DCDC5 = 13, + RK809_ID_SW1 = 14, + RK809_ID_SW2 = 15, + RK809_NUM_REGULATORS = 16, +}; -struct trace_event_data_offsets_ext4_da_update_reserve_space {}; +enum rk817_reg_id { + RK817_ID_DCDC1 = 0, + RK817_ID_DCDC2 = 1, + RK817_ID_DCDC3 = 2, + RK817_ID_DCDC4 = 3, + RK817_ID_LDO1 = 4, + RK817_ID_LDO2 = 5, + RK817_ID_LDO3 = 6, + RK817_ID_LDO4 = 7, + RK817_ID_LDO5 = 8, + RK817_ID_LDO6 = 9, + RK817_ID_LDO7 = 10, + RK817_ID_LDO8 = 11, + RK817_ID_LDO9 = 12, + RK817_ID_BOOST = 13, + RK817_ID_BOOST_OTG_SW = 14, + RK817_NUM_REGULATORS = 15, +}; -struct trace_event_data_offsets_ext4_da_reserve_space {}; +struct rk808_regulator_data { + struct gpio_desc *dvs_gpio[2]; +}; -struct trace_event_data_offsets_ext4_da_release_space {}; +struct zynqmp_reset_soc_data { + u32 reset_id; + u32 num_resets; +}; -struct trace_event_data_offsets_ext4__bitmap_load {}; +struct zynqmp_reset_data { + struct reset_controller_dev rcdev; + const struct zynqmp_reset_soc_data *data; +}; -struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; +struct tty_audit_buf { + struct mutex mutex; + dev_t dev; + bool icanon; + size_t valid; + u8 *data; +}; -struct trace_event_data_offsets_ext4__fallocate_mode {}; +struct exynos_trng_dev { + struct device *dev; + void *mem; + struct clk *clk; + struct hwrng rng; +}; -struct trace_event_data_offsets_ext4_fallocate_exit {}; +struct cn10k_rng { + void *reg_base; + struct hwrng ops; + struct pci_dev *pdev; + bool extended_trng_regs; +}; -struct trace_event_data_offsets_ext4_unlink_enter {}; +struct arm_lpae_io_pgtable { + struct io_pgtable iop; + int pgd_bits; + int start_level; + int bits_per_level; + void *pgd; +}; -struct trace_event_data_offsets_ext4_unlink_exit {}; +typedef u64 arm_lpae_iopte; -struct trace_event_data_offsets_ext4__truncate {}; +typedef void (*btf_trace_ata_qc_prep)(void *, struct ata_queued_cmd *); -struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {}; +typedef void (*btf_trace_ata_qc_issue)(void *, struct ata_queued_cmd *); -struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {}; +typedef void (*btf_trace_ata_qc_complete_internal)(void *, struct ata_queued_cmd *); -struct trace_event_data_offsets_ext4__map_blocks_enter {}; +typedef void (*btf_trace_ata_qc_complete_failed)(void *, struct ata_queued_cmd *); -struct trace_event_data_offsets_ext4__map_blocks_exit {}; +typedef void (*btf_trace_ata_qc_complete_done)(void *, struct ata_queued_cmd *); -struct trace_event_data_offsets_ext4_ext_load_extent {}; +typedef void (*btf_trace_ata_tf_load)(void *, struct ata_port *, const struct ata_taskfile *); -struct trace_event_data_offsets_ext4_load_inode {}; +typedef void (*btf_trace_ata_exec_command)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); -struct trace_event_data_offsets_ext4_journal_start_sb {}; +typedef void (*btf_trace_ata_bmdma_setup)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); -struct trace_event_data_offsets_ext4_journal_start_inode {}; +typedef void (*btf_trace_ata_bmdma_start)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); -struct trace_event_data_offsets_ext4_journal_start_reserved {}; +typedef void (*btf_trace_ata_bmdma_stop)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); -struct trace_event_data_offsets_ext4__trim {}; +typedef void (*btf_trace_ata_bmdma_status)(void *, struct ata_port *, unsigned int); -struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {}; +typedef void (*btf_trace_ata_eh_link_autopsy)(void *, struct ata_device *, unsigned int, unsigned int); -struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; +typedef void (*btf_trace_ata_eh_link_autopsy_qc)(void *, struct ata_queued_cmd *); -struct trace_event_data_offsets_ext4_ext_show_extent {}; +typedef void (*btf_trace_ata_eh_about_to_do)(void *, struct ata_link *, unsigned int, unsigned int); -struct trace_event_data_offsets_ext4_remove_blocks {}; +typedef void (*btf_trace_ata_eh_done)(void *, struct ata_link *, unsigned int, unsigned int); -struct trace_event_data_offsets_ext4_ext_rm_leaf {}; +typedef void (*btf_trace_ata_link_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); -struct trace_event_data_offsets_ext4_ext_rm_idx {}; +typedef void (*btf_trace_ata_slave_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); -struct trace_event_data_offsets_ext4_ext_remove_space {}; +typedef void (*btf_trace_ata_link_softreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); -struct trace_event_data_offsets_ext4_ext_remove_space_done {}; +typedef void (*btf_trace_ata_link_hardreset_end)(void *, struct ata_link *, unsigned int *, int); -struct trace_event_data_offsets_ext4__es_extent {}; +typedef void (*btf_trace_ata_slave_hardreset_end)(void *, struct ata_link *, unsigned int *, int); -struct trace_event_data_offsets_ext4_es_remove_extent {}; +typedef void (*btf_trace_ata_link_softreset_end)(void *, struct ata_link *, unsigned int *, int); -struct trace_event_data_offsets_ext4_es_find_extent_range_enter {}; +typedef void (*btf_trace_ata_link_postreset)(void *, struct ata_link *, unsigned int *, int); -struct trace_event_data_offsets_ext4_es_find_extent_range_exit {}; +typedef void (*btf_trace_ata_slave_postreset)(void *, struct ata_link *, unsigned int *, int); -struct trace_event_data_offsets_ext4_es_lookup_extent_enter {}; +typedef void (*btf_trace_ata_std_sched_eh)(void *, struct ata_port *); -struct trace_event_data_offsets_ext4_es_lookup_extent_exit {}; +typedef void (*btf_trace_ata_port_freeze)(void *, struct ata_port *); -struct trace_event_data_offsets_ext4__es_shrink_enter {}; +typedef void (*btf_trace_ata_port_thaw)(void *, struct ata_port *); -struct trace_event_data_offsets_ext4_es_shrink_scan_exit {}; +typedef void (*btf_trace_ata_sff_hsm_state)(void *, struct ata_queued_cmd *, unsigned char); -struct trace_event_data_offsets_ext4_collapse_range {}; +typedef void (*btf_trace_ata_sff_hsm_command_complete)(void *, struct ata_queued_cmd *, unsigned char); -struct trace_event_data_offsets_ext4_insert_range {}; +typedef void (*btf_trace_ata_sff_port_intr)(void *, struct ata_queued_cmd *, unsigned char); -struct trace_event_data_offsets_ext4_es_shrink {}; +typedef void (*btf_trace_ata_sff_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); -struct trace_event_data_offsets_ext4_es_insert_delayed_block {}; +typedef void (*btf_trace_atapi_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); -struct trace_event_data_offsets_ext4_fsmap_class {}; +typedef void (*btf_trace_atapi_send_cdb)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); -struct trace_event_data_offsets_ext4_getfsmap_class {}; +typedef void (*btf_trace_ata_sff_flush_pio_task)(void *, struct ata_port *); -struct trace_event_data_offsets_ext4_shutdown {}; +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 trace_event_data_offsets_ext4_error {}; +struct ata_force_ent { + int port; + int device; + struct ata_force_param param; +}; -struct trace_event_data_offsets_ext4_prefetch_bitmaps {}; +struct ata_xfer_ent { + int shift; + int bits; + u8 base; +}; -struct trace_event_data_offsets_ext4_lazy_itable_init {}; +struct ata_blacklist_entry { + const char *model_num; + const char *model_rev; + unsigned long horkage; +}; -struct trace_event_data_offsets_ext4_fc_replay_scan {}; +enum ata_xfer_mask { + ATA_MASK_PIO = 127, + ATA_MASK_MWDMA = 3968, + ATA_MASK_UDMA = 1044480, +}; -struct trace_event_data_offsets_ext4_fc_replay {}; +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_data_offsets_ext4_fc_commit_start {}; +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_data_offsets_ext4_fc_commit_stop {}; +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_data_offsets_ext4_fc_stats {}; +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_data_offsets_ext4_fc_track_dentry {}; +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_data_offsets_ext4_fc_track_inode {}; +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_data_offsets_ext4_fc_track_range {}; +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_data_offsets_ext4_fc_cleanup {}; +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_data_offsets_ext4_update_sb {}; +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 ipc_proc_iface { - const char *path; - const char *header; - int ids; - int (*show)(struct seq_file *, void *); +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 ipc_proc_iter { - struct ipc_namespace *ns; - struct pid_namespace *pid_ns; - struct ipc_proc_iface *iface; +struct trace_event_raw_ata_port_eh_begin_template { + struct trace_entry ent; + unsigned int ata_port; + char __data[0]; }; -struct crypto_istat_hash { - atomic64_t hash_cnt; - atomic64_t hash_tlen; - atomic64_t err_cnt; +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]; }; -enum asn1_class { - ASN1_UNIV = 0, - ASN1_APPL = 1, - ASN1_CONT = 2, - ASN1_PRIV = 3, +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 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 trace_event_raw_ata_sff_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned char hsm_state; + char __data[0]; }; -struct gf128mul_4k; +struct trace_event_data_offsets_ata_qc_issue_template {}; -struct gf128mul_64k { - struct gf128mul_4k *t[16]; -}; +struct trace_event_data_offsets_ata_qc_complete_template {}; -struct gf128mul_4k { - be128 t[256]; -}; +struct trace_event_data_offsets_ata_tf_load {}; -typedef struct { - __le64 b; - __le64 a; -} le128; +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 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 trace_event_data_offsets_ata_sff_template {}; -struct genpool_data_fixed { - unsigned long offset; +struct pci_bits { + unsigned int reg; + unsigned int width; + unsigned long mask; + unsigned long val; }; -struct mvebu_sei_interrupt_range { - u32 first; - u32 size; +struct denali_dt_data { + unsigned int revision; + unsigned int caps; + unsigned int oob_skip_bytes; + const struct nand_ecc_caps *ecc_caps; }; -struct mvebu_sei_caps { - struct mvebu_sei_interrupt_range ap_range; - struct mvebu_sei_interrupt_range cp_range; +struct denali_dt { + struct denali_controller controller; + struct clk *clk; + struct clk *clk_x; + struct clk *clk_ecc; + struct reset_control *rst; + struct reset_control *rst_reg; }; -struct mvebu_sei { - struct device *dev; - void *base; - struct resource *res; - struct irq_domain *sei_domain; - struct irq_domain *ap_domain; - struct irq_domain *cp_domain; - const struct mvebu_sei_caps *caps; - struct mutex cp_msi_lock; - unsigned long cp_msi_bitmap[1]; - raw_spinlock_t mask_lock; +enum xgene_mdio_id { + XGENE_MDIO_RGMII = 1, + XGENE_MDIO_XFI = 2, }; -struct vexpress_config_bridge_ops { - struct regmap * (*regmap_init)(struct device *, void *); - void (*regmap_exit)(struct regmap *, void *); +enum { + MIIM_CMD_IDLE = 0, + MIIM_CMD_LEGACY_WRITE = 1, + MIIM_CMD_LEGACY_READ = 2, }; -struct vexpress_syscfg; - -struct vexpress_syscfg_func { - struct list_head list; - struct vexpress_syscfg *syscfg; - struct regmap *regmap; - int num_templates; - u32 template[0]; +enum bcmasp_stat_type { + BCMASP_STAT_RX_EDPKT = 0, + BCMASP_STAT_RX_CTRL = 1, + BCMASP_STAT_RX_CTRL_PER_INTF = 2, + BCMASP_STAT_SOFT = 3, }; -struct vexpress_syscfg { - struct device *dev; - void *base; - struct list_head funcs; +struct bcmasp_stats { + char stat_string[32]; + enum bcmasp_stat_type type; + u32 reg_offset; }; -struct vexpress_config_bridge { - struct vexpress_config_bridge_ops *ops; - void *context; +enum forward_type { + FILTER_ACTION_TYPE_PSFP = 1, + FILTER_ACTION_TYPE_ACL = 2, + FILTER_ACTION_TYPE_BOTH = 3, }; -enum exynos_mipi_phy_id { - EXYNOS_MIPI_PHY_ID_NONE = -1, - EXYNOS_MIPI_PHY_ID_CSIS0 = 0, - EXYNOS_MIPI_PHY_ID_DSIM0 = 1, - EXYNOS_MIPI_PHY_ID_CSIS1 = 2, - EXYNOS_MIPI_PHY_ID_DSIM1 = 3, - EXYNOS_MIPI_PHY_ID_CSIS2 = 4, - EXYNOS_MIPI_PHYS_NUM = 5, +struct actions_fwd { + u64 actions; + u64 keys; + enum forward_type output; }; -enum exynos_mipi_phy_regmap_id { - EXYNOS_MIPI_REGMAP_PMU = 0, - EXYNOS_MIPI_REGMAP_DISP = 1, - EXYNOS_MIPI_REGMAP_CAM0 = 2, - EXYNOS_MIPI_REGMAP_CAM1 = 3, - EXYNOS_MIPI_REGMAPS_NUM = 4, +struct enetc_psfp { + unsigned long dev_bitmap; + unsigned long *psfp_sfi_bitmap; + struct hlist_head stream_list; + struct hlist_head psfp_filter_list; + struct hlist_head psfp_gate_list; + struct hlist_head psfp_meter_list; + spinlock_t psfp_lock; }; -struct exynos_mipi_phy_desc { - enum exynos_mipi_phy_id coupled_phy_id; - u32 enable_val; - unsigned int enable_reg; - enum exynos_mipi_phy_regmap_id enable_map; - u32 resetn_val; - unsigned int resetn_reg; - enum exynos_mipi_phy_regmap_id resetn_map; +enum bdcr_cmd_class { + BDCR_CMD_UNSPEC = 0, + BDCR_CMD_MAC_FILTER = 1, + BDCR_CMD_VLAN_FILTER = 2, + BDCR_CMD_RSS = 3, + BDCR_CMD_RFS = 4, + BDCR_CMD_PORT_GCL = 5, + BDCR_CMD_RECV_CLASSIFIER = 6, + BDCR_CMD_STREAM_IDENTIFY = 7, + BDCR_CMD_STREAM_FILTER = 8, + BDCR_CMD_STREAM_GCL = 9, + BDCR_CMD_FLOW_METER = 10, + __BDCR_CMD_MAX_LEN = 11, + BDCR_CMD_MAX_LEN = 10, }; -struct mipi_phy_device_desc { - int num_phys; - int num_regmaps; - const char *regmap_names[4]; - struct exynos_mipi_phy_desc phys[5]; +enum streamid_type { + STREAMID_TYPE_RESERVED = 0, + STREAMID_TYPE_NULL = 1, + STREAMID_TYPE_SMAC = 2, }; -struct video_phy_desc { - struct phy *phy; - unsigned int index; - const struct exynos_mipi_phy_desc *data; +enum streamid_vlan_tagged { + STREAMID_VLAN_RESERVED = 0, + STREAMID_VLAN_TAGGED = 1, + STREAMID_VLAN_UNTAGGED = 2, + STREAMID_VLAN_ALL = 3, }; -struct exynos_mipi_video_phy { - struct regmap *regmaps[4]; - int num_phys; - struct video_phy_desc phys[5]; - spinlock_t slock; +struct gce { + __le32 period; + u8 gate; + u8 res[3]; }; -struct pci_domain_busn_res { - struct list_head list; - struct resource res; - int domain_nr; +struct enetc_psfp_filter { + u32 index; + s32 handle; + s8 prio; + u32 maxsdu; + u32 gate_id; + s32 meter_id; + refcount_t refcount; + struct hlist_node node; }; -enum iproc_msi_reg { - IPROC_MSI_EQ_PAGE = 0, - IPROC_MSI_EQ_PAGE_UPPER = 1, - IPROC_MSI_PAGE = 2, - IPROC_MSI_PAGE_UPPER = 3, - IPROC_MSI_CTRL = 4, - IPROC_MSI_EQ_HEAD = 5, - IPROC_MSI_EQ_TAIL = 6, - IPROC_MSI_INTS_EN = 7, - IPROC_MSI_REG_SIZE = 8, +struct enetc_psfp_meter { + u32 index; + u32 cir; + u32 cbs; + refcount_t refcount; + struct hlist_node node; }; -struct iproc_msi_grp; - -struct iproc_msi { - struct iproc_pcie *pcie; - const u16 (*reg_offsets)[8]; - struct iproc_msi_grp *grps; - int nr_irqs; - int nr_cpus; - bool has_inten_reg; - unsigned long *bitmap; - struct mutex bitmap_lock; - unsigned int nr_msi_vecs; - struct irq_domain *inner_domain; - struct irq_domain *msi_domain; - unsigned int nr_eq_region; - unsigned int nr_msi_region; - void *eq_cpu; - dma_addr_t eq_dma; - phys_addr_t msi_addr; +struct enetc_psfp_gate { + u32 index; + s8 init_ipv; + u64 basetime; + u64 cycletime; + u64 cycletimext; + u32 num_entries; + refcount_t refcount; + struct hlist_node node; + struct action_gate_entry entries[0]; }; -struct iproc_msi_grp { - struct iproc_msi *msi; - int gic_irq; - unsigned int eq; +struct enetc_streamid { + u32 index; + union { + u8 src_mac[6]; + u8 dst_mac[6]; + }; + u8 filtertype; + u16 vid; + u8 tagged; + s32 handle; }; -typedef enum { - ACPI_TRACE_AML_METHOD = 0, - ACPI_TRACE_AML_OPCODE = 1, - ACPI_TRACE_AML_REGION = 2, -} acpi_trace_event_type; - -struct acpi_table_apmt { - struct acpi_table_header header; +struct enetc_stream_filter { + struct enetc_streamid sid; + u32 sfi_index; + u32 sgi_index; + u32 flags; + u32 fmi_index; + struct flow_stats stats; + struct hlist_node node; }; -struct acpi_apmt_node { - u16 length; - u8 flags; - u8 type; - u32 id; - u64 inst_primary; - u32 inst_secondary; - u64 base_address0; - u64 base_address1; - u32 ovflw_irq; - u32 reserved; - u32 ovflw_irq_flags; - u32 proc_affinity; - u32 impl_id; -} __attribute__((packed)); +struct tgs_gcl_data { + __le32 btl; + __le32 bth; + __le32 ct; + __le32 cte; + struct gce entry[0]; +}; -struct cs2000_priv { - struct clk_hw hw; - struct i2c_client *client; - struct clk *clk_in; - struct clk *ref_clk; - struct regmap *regmap; - bool dynamic_mode; - bool lf_ratio; - bool clk_skip; - unsigned long saved_rate; - unsigned long saved_parent_rate; +struct psfp_streamfilter_counters { + u64 matching_frames_count; + u64 passing_frames_count; + u64 not_passing_frames_count; + u64 passing_sdu_count; + u64 not_passing_sdu_count; + u64 red_frames_count; }; -struct clk_fracn_gppll { - struct clk_hw hw; - void *base; - const struct imx_fracn_gppll_rate_table *rate_table; - int rate_count; - u32 flags; +struct sfi_counter_data { + u32 matchl; + u32 matchh; + u32 msdu_dropl; + u32 msdu_droph; + u32 stream_gate_dropl; + u32 stream_gate_droph; + u32 flow_meter_dropl; + u32 flow_meter_droph; }; -struct clk_gate_exclusive { - struct clk_gate gate; - u32 exclusive_mask; +struct sgce { + u32 interval; + u8 msdu[3]; + u8 multi; }; -struct clk_pllv4 { - struct clk_hw hw; - void *base; - u32 cfg_offset; - u32 num_offset; - u32 denom_offset; +struct sgcl_data { + u32 btl; + u32 bth; + u32 ct; + u32 cte; + struct sgce sgcl[0]; }; -struct clk_imx8mp_audiomix_sel { - const char *name; - int clkid; - const struct clk_parent_data parent; - const struct clk_parent_data *parents; - int num_parents; - u16 reg; - u8 width; - u8 shift; +struct streamid_data { + union { + u8 dmac[6]; + u8 smac[6]; + }; + u16 vid_vidm_tg; }; -struct zynqmp_clk_divider { - struct clk_hw hw; - u8 flags; - bool is_frac; - u32 clk_id; - u32 div_type; - u16 max_div; +struct k3_mdio_soc_data { + bool manual_mode; }; -struct k3dma_soc_data { - unsigned long flags; +struct mdio_platform_data { + unsigned long bus_freq; }; -struct k3_dma_phy; +struct davinci_mdio_of_param { + int autosuspend_delay_ms; + bool manual_mode; +}; -struct k3_dma_chan; +struct davinci_mdio_regs; -struct k3_dma_dev { - struct dma_device slave; - void *base; - struct tasklet_struct task; - spinlock_t lock; - struct list_head chan_pending; - struct k3_dma_phy *phy; - struct k3_dma_chan *chans; +struct davinci_mdio_data { + struct mdio_platform_data pdata; + struct mdiobb_ctrl bb_ctrl; + struct davinci_mdio_regs *regs; struct clk *clk; - struct dma_pool *pool; - u32 dma_channels; - u32 dma_requests; - u32 dma_channel_mask; - unsigned int irq; + struct device *dev; + struct mii_bus *bus; + bool active_in_suspend; + unsigned long access_time; + bool skip_scan; + u32 clk_div; + bool manual_mode; }; -struct k3_dma_desc_sw; - -struct k3_dma_phy { - u32 idx; - void *base; - struct k3_dma_chan *vchan; - struct k3_dma_desc_sw *ds_run; - struct k3_dma_desc_sw *ds_done; +struct davinci_mdio_regs { + u32 version; + u32 control; + u32 alive; + u32 link; + u32 linkintraw; + u32 linkintmasked; + u32 __reserved_0[2]; + u32 userintraw; + u32 userintmasked; + u32 userintmaskset; + u32 userintmaskclr; + u32 manualif; + u32 poll; + u32 __reserved_1[18]; + struct { + u32 access; + u32 physel; + } user[0]; }; -struct k3_dma_chan { - u32 ccfg; - struct virt_dma_chan vc; - struct k3_dma_phy *phy; - struct list_head node; - dma_addr_t dev_addr; - enum dma_status status; - bool cyclic; - struct dma_slave_config slave_config; +struct vfio___3 { + struct list_head iommu_drivers_list; + struct mutex iommu_drivers_lock; }; -struct k3_desc_hw; - -struct k3_dma_desc_sw { - struct virt_dma_desc vd; - dma_addr_t desc_hw_lli; - size_t desc_num; - size_t size; - struct k3_desc_hw *desc_hw; +struct vfio_iommu_driver { + const struct vfio_iommu_driver_ops *ops; + struct list_head vfio_next; }; -struct k3_desc_hw { - u32 lli; - u32 reserved[3]; - u32 count; - u32 saddr; - u32 daddr; - u32 config; +struct vfio_container { + struct kref kref; + struct list_head group_list; + struct rw_semaphore group_lock; + struct vfio_iommu_driver *iommu_driver; + void *iommu_data; + bool noiommu; }; -struct smsm_entry; - -struct smsm_host; +struct usb_dynid { + struct list_head node; + struct usb_device_id id; +}; -struct qcom_smsm { +struct usb_phy_generic { + struct usb_phy phy; struct device *dev; - u32 local_host; - u32 num_hosts; - u32 num_entries; - u32 *local_state; - u32 *subscription; - struct qcom_smem_state *state; - spinlock_t lock; - struct smsm_entry *entries; - struct smsm_host *hosts; + struct clk *clk; + struct regulator *vcc; + struct gpio_desc *gpiod_reset; + struct gpio_desc *gpiod_vbus; + struct regulator *vbus_draw; + bool vbus_draw_enabled; + unsigned long mA; + unsigned int vbus; }; -struct smsm_entry { - struct qcom_smsm *smsm; - struct irq_domain *domain; - unsigned long irq_enabled[1]; - unsigned long irq_rising[1]; - unsigned long irq_falling[1]; - unsigned long last_value; - u32 *remote_state; - u32 *subscription; -}; +typedef void (*btf_trace_mtu3_log)(void *, struct device *, struct va_format *); -struct smsm_host { - struct regmap *ipc_regmap; - int ipc_offset; - int ipc_bit; -}; +typedef void (*btf_trace_mtu3_u3_ltssm_isr)(void *, u32); -struct vring_desc; +typedef void (*btf_trace_mtu3_u2_common_isr)(void *, u32); -typedef struct vring_desc vring_desc_t; +typedef void (*btf_trace_mtu3_qmu_isr)(void *, u32, u32); -struct vring_avail; +typedef void (*btf_trace_mtu3_handle_setup)(void *, struct usb_ctrlrequest *); -typedef struct vring_avail vring_avail_t; +typedef void (*btf_trace_mtu3_alloc_request)(void *, struct mtu3_request *); -struct vring_used; +typedef void (*btf_trace_mtu3_free_request)(void *, struct mtu3_request *); -typedef struct vring_used vring_used_t; +typedef void (*btf_trace_mtu3_gadget_queue)(void *, struct mtu3_request *); -struct vring { - unsigned int num; - vring_desc_t *desc; - vring_avail_t *avail; - vring_used_t *used; -}; +typedef void (*btf_trace_mtu3_gadget_dequeue)(void *, struct mtu3_request *); -struct vring_desc_state_split; +typedef void (*btf_trace_mtu3_req_complete)(void *, struct mtu3_request *); -struct vring_desc_extra; +typedef void (*btf_trace_mtu3_prepare_gpd)(void *, struct mtu3_ep *, struct qmu_gpd *); -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; -}; +typedef void (*btf_trace_mtu3_complete_gpd)(void *, struct mtu3_ep *, struct qmu_gpd *); -struct vring_packed_desc; +typedef void (*btf_trace_mtu3_zlp_exp_gpd)(void *, struct mtu3_ep *, struct qmu_gpd *); -struct vring_packed_desc_event; +typedef void (*btf_trace_mtu3_gadget_ep_enable)(void *, struct mtu3_ep *); -struct vring_desc_state_packed; +typedef void (*btf_trace_mtu3_gadget_ep_disable)(void *, struct mtu3_ep *); -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; +typedef void (*btf_trace_mtu3_gadget_ep_set_halt)(void *, struct mtu3_ep *); + +struct trace_event_raw_mtu3_log { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_msg; + char __data[0]; }; -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; +struct trace_event_raw_mtu3_u3_ltssm_isr { + struct trace_entry ent; + u32 intr; + char __data[0]; }; -struct vring_desc { - __virtio64 addr; - __virtio32 len; - __virtio16 flags; - __virtio16 next; +struct trace_event_raw_mtu3_u2_common_isr { + struct trace_entry ent; + u32 intr; + char __data[0]; }; -struct vring_avail { - __virtio16 flags; - __virtio16 idx; - __virtio16 ring[0]; +struct trace_event_raw_mtu3_qmu_isr { + struct trace_entry ent; + u32 done_intr; + u32 exp_intr; + char __data[0]; }; -struct vring_used_elem { - __virtio32 id; - __virtio32 len; +struct trace_event_raw_mtu3_log_setup { + struct trace_entry ent; + __u8 bRequestType; + __u8 bRequest; + __u16 wValue; + __u16 wIndex; + __u16 wLength; + char __data[0]; }; -typedef struct vring_used_elem vring_used_elem_t; +struct trace_event_raw_mtu3_log_request { + struct trace_entry ent; + u32 __data_loc_name; + struct mtu3_request *mreq; + struct qmu_gpd *gpd; + unsigned int actual; + unsigned int length; + int status; + int zero; + int no_interrupt; + char __data[0]; +}; -struct vring_used { - __virtio16 flags; - __virtio16 idx; - vring_used_elem_t ring[0]; +struct trace_event_raw_mtu3_log_gpd { + struct trace_entry ent; + u32 __data_loc_name; + struct qmu_gpd *gpd; + u32 dw0; + u32 dw1; + u32 dw2; + u32 dw3; + char __data[0]; }; -struct vring_desc_state_split { - void *data; - struct vring_desc *indir_desc; +struct trace_event_raw_mtu3_log_ep { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int type; + unsigned int slot; + unsigned int maxp; + unsigned int mult; + unsigned int maxburst; + unsigned int flags; + unsigned int direction; + struct mtu3_gpd_ring *gpd_ring; + char __data[0]; }; -struct vring_desc_extra { - dma_addr_t addr; - u32 len; - u16 flags; - u16 next; +struct trace_event_data_offsets_mtu3_log { + u32 name; + u32 msg; }; -struct vring_packed_desc { - __le64 addr; - __le32 len; - __le16 id; - __le16 flags; +struct trace_event_data_offsets_mtu3_log_request { + u32 name; }; -struct vring_packed_desc_event { - __le16 off_wrap; - __le16 flags; +struct trace_event_data_offsets_mtu3_log_gpd { + u32 name; }; -struct vring_desc_state_packed { - void *data; - struct vring_packed_desc *indir_desc; - u16 num; - u16 last; +struct trace_event_data_offsets_mtu3_log_ep { + u32 name; }; -typedef void (*xen_gfn_fn_t)(unsigned long, void *); +struct trace_event_data_offsets_mtu3_u3_ltssm_isr {}; -struct xen_remap_gfn_info; +struct trace_event_data_offsets_mtu3_u2_common_isr {}; -struct remap_data { - xen_pfn_t *fgfn; - int nr_fgfn; - pgprot_t prot; - domid_t domid; - struct vm_area_struct *vma; - int index; - struct page **pages; - struct xen_remap_gfn_info *info; - int *err_ptr; - int mapped; - int h_errs[1]; - xen_ulong_t h_idxs[1]; - xen_pfn_t h_gpfns[1]; - int h_iter; -}; +struct trace_event_data_offsets_mtu3_qmu_isr {}; -struct map_balloon_pages { - xen_pfn_t *pfns; - unsigned int idx; -}; +struct trace_event_data_offsets_mtu3_log_setup {}; -struct remap_pfn { - struct mm_struct *mm; - struct page **pages; - pgprot_t prot; - unsigned long i; -}; +typedef void (*btf_trace_usb_gadget_frame_number)(void *, struct usb_gadget *, int); -enum s2mps11_regulators { - S2MPS11_LDO1 = 0, - S2MPS11_LDO2 = 1, - S2MPS11_LDO3 = 2, - S2MPS11_LDO4 = 3, - S2MPS11_LDO5 = 4, - S2MPS11_LDO6 = 5, - S2MPS11_LDO7 = 6, - S2MPS11_LDO8 = 7, - S2MPS11_LDO9 = 8, - S2MPS11_LDO10 = 9, - S2MPS11_LDO11 = 10, - S2MPS11_LDO12 = 11, - S2MPS11_LDO13 = 12, - S2MPS11_LDO14 = 13, - S2MPS11_LDO15 = 14, - S2MPS11_LDO16 = 15, - S2MPS11_LDO17 = 16, - S2MPS11_LDO18 = 17, - S2MPS11_LDO19 = 18, - S2MPS11_LDO20 = 19, - S2MPS11_LDO21 = 20, - S2MPS11_LDO22 = 21, - S2MPS11_LDO23 = 22, - S2MPS11_LDO24 = 23, - S2MPS11_LDO25 = 24, - S2MPS11_LDO26 = 25, - S2MPS11_LDO27 = 26, - S2MPS11_LDO28 = 27, - S2MPS11_LDO29 = 28, - S2MPS11_LDO30 = 29, - S2MPS11_LDO31 = 30, - S2MPS11_LDO32 = 31, - S2MPS11_LDO33 = 32, - S2MPS11_LDO34 = 33, - S2MPS11_LDO35 = 34, - S2MPS11_LDO36 = 35, - S2MPS11_LDO37 = 36, - S2MPS11_LDO38 = 37, - S2MPS11_BUCK1 = 38, - S2MPS11_BUCK2 = 39, - S2MPS11_BUCK3 = 40, - S2MPS11_BUCK4 = 41, - S2MPS11_BUCK5 = 42, - S2MPS11_BUCK6 = 43, - S2MPS11_BUCK7 = 44, - S2MPS11_BUCK8 = 45, - S2MPS11_BUCK9 = 46, - S2MPS11_BUCK10 = 47, - S2MPS11_REGULATOR_MAX = 48, -}; +typedef void (*btf_trace_usb_gadget_wakeup)(void *, struct usb_gadget *, int); -enum s2mps14_regulators { - S2MPS14_LDO1 = 0, - S2MPS14_LDO2 = 1, - S2MPS14_LDO3 = 2, - S2MPS14_LDO4 = 3, - S2MPS14_LDO5 = 4, - S2MPS14_LDO6 = 5, - S2MPS14_LDO7 = 6, - S2MPS14_LDO8 = 7, - S2MPS14_LDO9 = 8, - S2MPS14_LDO10 = 9, - S2MPS14_LDO11 = 10, - S2MPS14_LDO12 = 11, - S2MPS14_LDO13 = 12, - S2MPS14_LDO14 = 13, - S2MPS14_LDO15 = 14, - S2MPS14_LDO16 = 15, - S2MPS14_LDO17 = 16, - S2MPS14_LDO18 = 17, - S2MPS14_LDO19 = 18, - S2MPS14_LDO20 = 19, - S2MPS14_LDO21 = 20, - S2MPS14_LDO22 = 21, - S2MPS14_LDO23 = 22, - S2MPS14_LDO24 = 23, - S2MPS14_LDO25 = 24, - S2MPS14_BUCK1 = 25, - S2MPS14_BUCK2 = 26, - S2MPS14_BUCK3 = 27, - S2MPS14_BUCK4 = 28, - S2MPS14_BUCK5 = 29, - S2MPS14_REGULATOR_MAX = 30, -}; +typedef void (*btf_trace_usb_gadget_set_remote_wakeup)(void *, struct usb_gadget *, int); -enum S2MPU02_regulators { - S2MPU02_LDO1 = 0, - S2MPU02_LDO2 = 1, - S2MPU02_LDO3 = 2, - S2MPU02_LDO4 = 3, - S2MPU02_LDO5 = 4, - S2MPU02_LDO6 = 5, - S2MPU02_LDO7 = 6, - S2MPU02_LDO8 = 7, - S2MPU02_LDO9 = 8, - S2MPU02_LDO10 = 9, - S2MPU02_LDO11 = 10, - S2MPU02_LDO12 = 11, - S2MPU02_LDO13 = 12, - S2MPU02_LDO14 = 13, - S2MPU02_LDO15 = 14, - S2MPU02_LDO16 = 15, - S2MPU02_LDO17 = 16, - S2MPU02_LDO18 = 17, - S2MPU02_LDO19 = 18, - S2MPU02_LDO20 = 19, - S2MPU02_LDO21 = 20, - S2MPU02_LDO22 = 21, - S2MPU02_LDO23 = 22, - S2MPU02_LDO24 = 23, - S2MPU02_LDO25 = 24, - S2MPU02_LDO26 = 25, - S2MPU02_LDO27 = 26, - S2MPU02_LDO28 = 27, - S2MPU02_BUCK1 = 28, - S2MPU02_BUCK2 = 29, - S2MPU02_BUCK3 = 30, - S2MPU02_BUCK4 = 31, - S2MPU02_BUCK5 = 32, - S2MPU02_BUCK6 = 33, - S2MPU02_BUCK7 = 34, - S2MPU02_REGULATOR_MAX = 35, -}; +typedef void (*btf_trace_usb_gadget_set_selfpowered)(void *, struct usb_gadget *, int); -struct s2mps11_info { - int ramp_delay2; - int ramp_delay34; - int ramp_delay5; - int ramp_delay16; - int ramp_delay7810; - int ramp_delay9; - enum sec_device_type dev_type; - unsigned long suspend_state[1]; - struct gpio_desc **ext_control_gpiod; -}; +typedef void (*btf_trace_usb_gadget_clear_selfpowered)(void *, struct usb_gadget *, int); -struct vcs_poll_data { - struct notifier_block notifier; - unsigned int cons_num; - int event; - wait_queue_head_t waitq; - struct fasync_struct *fasync; -}; +typedef void (*btf_trace_usb_gadget_vbus_connect)(void *, struct usb_gadget *, int); -struct pl011_sgbuf { - struct scatterlist sg; - char *buf; -}; +typedef void (*btf_trace_usb_gadget_vbus_draw)(void *, struct usb_gadget *, int); -struct pl011_dmarx_data { - struct dma_chan *chan; - struct completion complete; - bool use_buf_b; - struct pl011_sgbuf sgbuf_a; - struct pl011_sgbuf sgbuf_b; - dma_cookie_t cookie; - bool running; - struct timer_list timer; - unsigned int last_residue; - unsigned long last_jiffies; - bool auto_poll_rate; - unsigned int poll_rate; - unsigned int poll_timeout; -}; +typedef void (*btf_trace_usb_gadget_vbus_disconnect)(void *, struct usb_gadget *, int); -struct pl011_dmatx_data { - struct dma_chan *chan; - struct scatterlist sg; - char *buf; - bool queued; -}; +typedef void (*btf_trace_usb_gadget_connect)(void *, struct usb_gadget *, int); -struct vendor_data___2; +typedef void (*btf_trace_usb_gadget_disconnect)(void *, struct usb_gadget *, int); -struct uart_amba_port { - struct uart_port port; - const u16 *reg_offset; - struct clk *clk; - const struct vendor_data___2 *vendor; - unsigned int dmacr; - unsigned int im; - unsigned int old_status; - unsigned int fifosize; - unsigned int fixed_baud; - char type[12]; - bool rs485_tx_started; - unsigned int rs485_tx_drain_interval; - bool using_tx_dma; - bool using_rx_dma; - struct pl011_dmarx_data dmarx; - struct pl011_dmatx_data dmatx; - bool dma_probed; -}; +typedef void (*btf_trace_usb_gadget_deactivate)(void *, struct usb_gadget *, int); -struct vendor_data___2 { - const u16 *reg_offset; - unsigned int ifls; - unsigned int fr_busy; - unsigned int fr_dsr; - unsigned int fr_cts; - unsigned int fr_ri; - unsigned int inv_fr; - bool access_32b; - bool oversampling; - bool dma_threshold; - bool cts_event_workaround; - bool always_enabled; - bool fixed_options; - unsigned int (*get_fifosize)(struct amba_device *); -}; +typedef void (*btf_trace_usb_gadget_activate)(void *, struct usb_gadget *, int); -enum { - REG_DR = 0, - REG_ST_DMAWM = 1, - REG_ST_TIMEOUT = 2, - REG_FR = 3, - REG_LCRH_RX = 4, - REG_LCRH_TX = 5, - REG_IBRD = 6, - REG_FBRD = 7, - REG_CR = 8, - REG_IFLS = 9, - REG_IMSC = 10, - REG_RIS = 11, - REG_MIS = 12, - REG_ICR = 13, - REG_DMACR = 14, - REG_ST_XFCR = 15, - REG_ST_XON1 = 16, - REG_ST_XON2 = 17, - REG_ST_XOFF1 = 18, - REG_ST_XOFF2 = 19, - REG_ST_ITCR = 20, - REG_ST_ITIP = 21, - REG_ST_ABCR = 22, - REG_ST_ABIMSC = 23, - REG_ARRAY_SIZE = 24, -}; +typedef void (*btf_trace_usb_ep_set_maxpacket_limit)(void *, struct usb_ep *, int); -struct amba_pl011_data { - bool (*dma_filter)(struct dma_chan *, void *); - void *dma_rx_param; - void *dma_tx_param; - bool dma_rx_poll_enable; - unsigned int dma_rx_poll_rate; - unsigned int dma_rx_poll_timeout; - void (*init)(); - void (*exit)(); -}; +typedef void (*btf_trace_usb_ep_enable)(void *, struct usb_ep *, int); -struct device_attach_data { - struct device *dev; - bool check_async; - bool want_async; - bool have_async; -}; +typedef void (*btf_trace_usb_ep_disable)(void *, struct usb_ep *, int); -struct ceva_ahci_priv { - struct platform_device *ahci_pdev; - u32 pp2c[2]; - u32 pp3c[2]; - u32 pp4c[2]; - u32 pp5c[2]; - u32 axicc; - bool is_cci_enabled; - int flags; - struct reset_control *rst; +typedef void (*btf_trace_usb_ep_set_halt)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_clear_halt)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_set_wedge)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_fifo_status)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_fifo_flush)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_alloc_request)(void *, struct usb_ep *, struct usb_request *, int); + +typedef void (*btf_trace_usb_ep_free_request)(void *, struct usb_ep *, struct usb_request *, int); + +typedef void (*btf_trace_usb_ep_queue)(void *, struct usb_ep *, struct usb_request *, int); + +typedef void (*btf_trace_usb_ep_dequeue)(void *, struct usb_ep *, struct usb_request *, int); + +typedef void (*btf_trace_usb_gadget_giveback_request)(void *, struct usb_ep *, struct usb_request *, int); + +struct trace_event_raw_udc_log_gadget { + struct trace_entry ent; + enum usb_device_speed speed; + enum usb_device_speed max_speed; + enum usb_device_state state; + unsigned int mA; + unsigned int sg_supported; + unsigned int is_otg; + unsigned int is_a_peripheral; + unsigned int b_hnp_enable; + unsigned int a_hnp_support; + unsigned int hnp_polling_support; + unsigned int host_request_flag; + unsigned int quirk_ep_out_aligned_size; + unsigned int quirk_altset_not_supp; + unsigned int quirk_stall_not_supp; + unsigned int quirk_zlp_not_supp; + unsigned int is_selfpowered; + unsigned int deactivated; + unsigned int connected; + int ret; + char __data[0]; }; -struct phy_fixup { - struct list_head list; - char bus_id[64]; - u32 phy_uid; - u32 phy_uid_mask; - int (*run)(struct phy_device *); +struct trace_event_raw_udc_log_ep { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int maxpacket; + unsigned int maxpacket_limit; + unsigned int max_streams; + unsigned int mult; + unsigned int maxburst; + u8 address; + bool claimed; + bool enabled; + int ret; + char __data[0]; }; -struct phy_led { - struct list_head list; - struct phy_device *phydev; - struct led_classdev led_cdev; - u8 index; +struct trace_event_raw_udc_log_req { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int length; + unsigned int actual; + unsigned int num_sgs; + unsigned int num_mapped_sgs; + unsigned int stream_id; + unsigned int no_interrupt; + unsigned int zero; + unsigned int short_not_ok; + int status; + int ret; + struct usb_request *req; + char __data[0]; }; -struct bgmac_stat { - u8 size; - u32 offset; - const char *name; +struct trace_event_data_offsets_udc_log_ep { + u32 name; }; -enum bgmac_dma_ring_type { - BGMAC_DMA_RING_TX = 0, - BGMAC_DMA_RING_RX = 1, +struct trace_event_data_offsets_udc_log_req { + u32 name; }; -struct bgmac_rx_header { - __le16 len; - __le16 flags; - __le16 pad[12]; -}; +struct trace_event_data_offsets_udc_log_gadget {}; -enum _dsm_op_index { - HNS_OP_RESET_FUNC = 1, - HNS_OP_SERDES_LP_FUNC = 2, - HNS_OP_LED_SET_FUNC = 3, - HNS_OP_GET_PORT_TYPE_FUNC = 4, - HNS_OP_GET_SFP_STAT_FUNC = 5, - HNS_OP_LOCATE_LED_SET_FUNC = 6, +struct ps2pp_info { + u8 model; + u8 kind; + u16 features; }; -enum _dsm_rst_type { - HNS_DSAF_RESET_FUNC = 1, - HNS_PPE_RESET_FUNC = 2, - HNS_XGE_RESET_FUNC = 4, - HNS_GE_RESET_FUNC = 5, - HNS_DSAF_CHN_RESET_FUNC = 6, - HNS_ROCE_RESET_FUNC = 7, +struct max77686_rtc_driver_data { + unsigned long delay; + u8 mask; + const unsigned int *map; + bool alarm_enable_reg; + int rtc_i2c_addr; + bool rtc_irq_from_platform; + int alarm_pending_status_reg; + const struct regmap_irq_chip *rtc_irq_chip; + const struct regmap_config *regmap_config; }; -struct am65_cpsw_soc_pdata { - u32 quirks_dis; +enum max77686_irq { + MAX77686_PMICIRQ_PWRONF = 0, + MAX77686_PMICIRQ_PWRONR = 1, + MAX77686_PMICIRQ_JIGONBF = 2, + MAX77686_PMICIRQ_JIGONBR = 3, + MAX77686_PMICIRQ_ACOKBF = 4, + MAX77686_PMICIRQ_ACOKBR = 5, + MAX77686_PMICIRQ_ONKEY1S = 6, + MAX77686_PMICIRQ_MRSTB = 7, + MAX77686_PMICIRQ_140C = 8, + MAX77686_PMICIRQ_120C = 9, + MAX77686_RTCIRQ_RTC60S = 0, + MAX77686_RTCIRQ_RTCA1 = 1, + MAX77686_RTCIRQ_RTCA2 = 2, + MAX77686_RTCIRQ_SMPL = 3, + MAX77686_RTCIRQ_RTC1S = 4, + MAX77686_RTCIRQ_WTSR = 5, }; -enum { - CPSW_SL_CTL_FULLDUPLEX = 1, - CPSW_SL_CTL_LOOPBACK = 2, - CPSW_SL_CTL_MTEST = 4, - CPSW_SL_CTL_RX_FLOW_EN = 8, - CPSW_SL_CTL_TX_FLOW_EN = 16, - CPSW_SL_CTL_GMII_EN = 32, - CPSW_SL_CTL_TX_PACE = 64, - CPSW_SL_CTL_GIG = 128, - CPSW_SL_CTL_XGIG = 256, - CPSW_SL_CTL_TX_SHORT_GAP_EN = 1024, - CPSW_SL_CTL_CMD_IDLE = 2048, - CPSW_SL_CTL_CRC_TYPE = 4096, - CPSW_SL_CTL_XGMII_EN = 8192, - CPSW_SL_CTL_IFCTL_A = 32768, - CPSW_SL_CTL_IFCTL_B = 65536, - CPSW_SL_CTL_GIG_FORCE = 131072, - CPSW_SL_CTL_EXT_EN = 262144, - CPSW_SL_CTL_EXT_EN_RX_FLO = 524288, - CPSW_SL_CTL_EXT_EN_TX_FLO = 1048576, - CPSW_SL_CTL_TX_SG_LIM_EN = 2097152, - CPSW_SL_CTL_RX_CEF_EN = 4194304, - CPSW_SL_CTL_RX_CSF_EN = 8388608, - CPSW_SL_CTL_RX_CMF_EN = 16777216, - CPSW_SL_CTL_EXT_EN_XGIG = 33554432, - CPSW_SL_CTL_FUNCS_COUNT = 33554433, +enum max77686_rtc_reg_offset { + REG_RTC_CONTROLM = 0, + REG_RTC_CONTROL = 1, + REG_RTC_UPDATE0 = 2, + REG_WTSR_SMPL_CNTL = 3, + REG_RTC_SEC = 4, + REG_RTC_MIN = 5, + REG_RTC_HOUR = 6, + REG_RTC_WEEKDAY = 7, + REG_RTC_MONTH = 8, + REG_RTC_YEAR = 9, + REG_RTC_MONTHDAY = 10, + REG_ALARM1_SEC = 11, + REG_ALARM1_MIN = 12, + REG_ALARM1_HOUR = 13, + REG_ALARM1_WEEKDAY = 14, + REG_ALARM1_MONTH = 15, + REG_ALARM1_YEAR = 16, + REG_ALARM1_DATE = 17, + REG_ALARM2_SEC = 18, + REG_ALARM2_MIN = 19, + REG_ALARM2_HOUR = 20, + REG_ALARM2_WEEKDAY = 21, + REG_ALARM2_MONTH = 22, + REG_ALARM2_YEAR = 23, + REG_ALARM2_DATE = 24, + REG_RTC_AE1 = 25, + REG_RTC_END = 26, }; -enum cpsw_ale_port_state { - ALE_PORT_STATE_DISABLE = 0, - ALE_PORT_STATE_BLOCK = 1, - ALE_PORT_STATE_LEARN = 2, - ALE_PORT_STATE_FORWARD = 3, +enum MAX77686_RTC_OP { + MAX77686_RTC_WRITE = 0, + MAX77686_RTC_READ = 1, }; enum { - K3_UDMA_GLUE_SRC_TAG_LO_KEEP = 0, - K3_UDMA_GLUE_SRC_TAG_LO_USE_FLOW_REG = 1, - K3_UDMA_GLUE_SRC_TAG_LO_USE_REMOTE_FLOW_ID = 2, - K3_UDMA_GLUE_SRC_TAG_LO_USE_REMOTE_SRC_TAG = 4, + RTC_SEC___2 = 0, + RTC_MIN___2 = 1, + RTC_HOUR___2 = 2, + RTC_WEEKDAY___2 = 3, + RTC_MONTH___2 = 4, + RTC_YEAR = 5, + RTC_MONTHDAY = 6, + RTC_NR_TIME = 7, }; -enum cpsw_devlink_param_id { - AM65_CPSW_DEVLINK_PARAM_ID_BASE = 16, - AM65_CPSW_DL_PARAM_SWITCH_MODE = 17, +struct max77686_rtc_info { + struct device *dev; + struct i2c_client *rtc; + struct rtc_device *rtc_dev; + struct mutex lock; + struct regmap *regmap; + struct regmap *rtc_regmap; + const struct max77686_rtc_driver_data *drv_data; + struct regmap_irq_chip_data *rtc_irq_data; + int rtc_irq; + int virq; }; -struct am65_cpsw_devlink { - struct am65_cpsw_common *common; -}; +typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *); -struct dwc3_exynos_driverdata { - const char *clk_names[4]; - int num_clks; - int suspend_clk_idx; -}; +typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, unsigned long); -struct dwc3_exynos { - struct device *dev; - const char **clk_names; - struct clk *clks[4]; - int num_clks; - int suspend_clk_idx; - struct regulator *vdd33; - struct regulator *vdd10; -}; +typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type); -struct swoc_info { - __u8 rev; - __u8 reserved[8]; - __u16 LinuxSKU; - __u16 LinuxVer; - __u8 reserved2[47]; -} __attribute__((packed)); +typedef void (*btf_trace_thermal_power_cpu_get_power_simple)(void *, int, u32); -struct rzv2m_usb3drd { - void *reg; - int drd_irq; - struct device *dev; - struct reset_control *drd_rstc; -}; +typedef void (*btf_trace_thermal_power_cpu_limit)(void *, const struct cpumask *, unsigned int, unsigned long, u32); -struct evdev; +typedef void (*btf_trace_thermal_power_devfreq_get_power)(void *, struct thermal_cooling_device *, struct devfreq_dev_status *, unsigned long, u32); -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]; -}; +typedef void (*btf_trace_thermal_power_devfreq_limit)(void *, struct thermal_cooling_device *, unsigned long, unsigned long, u32); -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 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 input_mask { - __u32 type; - __u32 codes_size; - __u64 codes_ptr; +struct trace_event_raw_cdev_update { + struct trace_entry ent; + u32 __data_loc_type; + unsigned long target; + char __data[0]; }; -typedef void (*btf_trace_i2c_slave)(void *, const struct i2c_client *, enum i2c_slave_event, __u8 *, int); - -struct trace_event_raw_i2c_slave { +struct trace_event_raw_thermal_zone_trip { struct trace_entry ent; - int adapter_nr; - int ret; - __u16 addr; - __u16 len; - enum i2c_slave_event event; - __u8 buf[1]; + u32 __data_loc_thermal_zone; + int id; + int trip; + enum thermal_trip_type trip_type; char __data[0]; }; -struct trace_event_data_offsets_i2c_slave {}; - -struct uniphier_tm_soc_data { - u32 map_base; - u32 block_base; - u32 tmod_setup_addr; +struct trace_event_raw_thermal_power_cpu_get_power_simple { + struct trace_entry ent; + int cpu; + u32 power; + char __data[0]; }; -struct uniphier_tm_dev { - struct regmap *regmap; - struct device *dev; - bool alert_en[3]; - struct thermal_zone_device *tz_dev; - const struct uniphier_tm_soc_data *data; +struct trace_event_raw_thermal_power_cpu_limit { + struct trace_entry ent; + u32 __data_loc_cpumask; + unsigned int freq; + unsigned long cdev_state; + u32 power; + char __data[0]; }; -struct ti_opp_supply_optimum_voltage_table; - -struct ti_opp_supply_data { - struct ti_opp_supply_optimum_voltage_table *vdd_table; - u32 num_vdd_table; - u32 vdd_absolute_max_voltage_uv; - struct dev_pm_opp_supply old_supplies[2]; - struct dev_pm_opp_supply new_supplies[2]; +struct trace_event_raw_thermal_power_devfreq_get_power { + struct trace_entry ent; + u32 __data_loc_type; + unsigned long freq; + u32 busy_time; + u32 total_time; + u32 power; + char __data[0]; }; -struct ti_opp_supply_optimum_voltage_table { - unsigned int reference_uv; - unsigned int optimized_uv; +struct trace_event_raw_thermal_power_devfreq_limit { + struct trace_entry ent; + u32 __data_loc_type; + unsigned int freq; + unsigned long cdev_state; + u32 power; + char __data[0]; }; -struct ti_opp_supply_of_data { - const u8 flags; - const u32 efuse_voltage_mask; - const bool efuse_voltage_uv; +struct trace_event_data_offsets_thermal_temperature { + u32 thermal_zone; }; -struct hi3798cv200_priv { - struct clk *sample_clk; - struct clk *drive_clk; +struct trace_event_data_offsets_cdev_update { + u32 type; }; -struct scmi_msg_payld { - __le32 msg_header; - __le32 msg_payload[0]; +struct trace_event_data_offsets_thermal_zone_trip { + u32 thermal_zone; }; -struct tee_bnxt_fw_private { - struct device *dev; - struct tee_context *ctx; - u32 session_id; - struct tee_shm *fw_shm_pool; +struct trace_event_data_offsets_thermal_power_cpu_limit { + u32 cpumask; }; -enum ta_cmd { - TA_CMD_BNXT_FASTBOOT = 0, - TA_CMD_BNXT_COPY_COREDUMP = 3, +struct trace_event_data_offsets_thermal_power_devfreq_get_power { + u32 type; }; -enum sh_tmu_model { - SH_TMU = 0, - SH_TMU_SH3 = 1, +struct trace_event_data_offsets_thermal_power_devfreq_limit { + u32 type; }; -struct sh_tmu_device; +struct trace_event_data_offsets_thermal_power_cpu_get_power_simple {}; -struct sh_tmu_channel { - struct sh_tmu_device *tmu; - unsigned int index; - void *base; - int irq; - unsigned long periodic; - long: 64; - long: 64; - long: 64; - struct clock_event_device ced; - struct clocksource cs; - bool cs_enabled; - unsigned int enable_count; - long: 64; - long: 64; - long: 64; - long: 64; +struct uniphier_wdt_dev { + struct watchdog_device wdt_dev; + struct regmap *regmap; }; -struct sh_tmu_device { - struct platform_device *pdev; - void *mapbase; - struct clk *clk; - unsigned long rate; - enum sh_tmu_model model; - raw_spinlock_t lock; - struct sh_tmu_channel *channels; - unsigned int num_channels; - bool has_clockevent; - bool has_clocksource; +struct mmc_pwrseq_emmc { + struct mmc_pwrseq pwrseq; + struct notifier_block reset_nb; + struct gpio_desc *reset_gpio; }; -struct ec_host_request_i2c { - uint8_t command_protocol; - struct ec_host_request ec_request; -} __attribute__((packed)); +struct sdhci_acpi_slot; -struct ec_host_response_i2c { - uint8_t result; - uint8_t packet_length; - struct ec_host_response ec_response; +struct sdhci_acpi_uid_slot { + const char *hid; + const char *uid; + const struct sdhci_acpi_slot *slot; }; -enum smd_channel_state { - SMD_CHANNEL_CLOSED = 0, - SMD_CHANNEL_OPENING = 1, - SMD_CHANNEL_OPENED = 2, - SMD_CHANNEL_FLUSHING = 3, - SMD_CHANNEL_CLOSING = 4, - SMD_CHANNEL_RESET = 5, - SMD_CHANNEL_RESET_OPENING = 6, -}; +struct sdhci_acpi_chip; -struct qcom_smd_edge { - struct device dev; - const char *name; - struct device_node *of_node; - unsigned int edge_id; - unsigned int remote_pid; - int irq; - struct regmap *ipc_regmap; - int ipc_offset; - int ipc_bit; - struct mbox_client mbox_client; - struct mbox_chan *mbox_chan; - struct list_head channels; - spinlock_t channels_lock; - unsigned long allocated[2]; - unsigned int smem_available; - wait_queue_head_t new_channel_event; - struct work_struct scan_work; - struct work_struct state_work; +struct sdhci_acpi_slot { + const struct sdhci_acpi_chip *chip; + unsigned int quirks; + unsigned int quirks2; + unsigned long caps; + unsigned int caps2; + mmc_pm_flag_t pm_caps; + unsigned int flags; + size_t priv_size; + int (*probe_slot)(struct platform_device *, struct acpi_device *); + int (*remove_slot)(struct platform_device *); + int (*free_slot)(struct platform_device *); + int (*setup_host)(struct platform_device *); }; -struct qcom_smd_endpoint; - -struct smd_channel_info_pair; - -struct smd_channel_info_word_pair; - -struct qcom_smd_channel { - struct qcom_smd_edge *edge; - struct qcom_smd_endpoint *qsept; - bool registered; - char *name; - enum smd_channel_state state; - enum smd_channel_state remote_state; - wait_queue_head_t state_change_event; - struct smd_channel_info_pair *info; - struct smd_channel_info_word_pair *info_word; - spinlock_t tx_lock; - wait_queue_head_t fblockread_event; - void *tx_fifo; - void *rx_fifo; - int fifo_size; - void *bounce_buffer; - spinlock_t recv_lock; - int pkt_size; - void *drvdata; - struct list_head list; +struct sdhci_acpi_chip { + const struct sdhci_ops *ops; + unsigned int quirks; + unsigned int quirks2; + unsigned long caps; + unsigned int caps2; + mmc_pm_flag_t pm_caps; }; -struct qcom_smd_endpoint { - struct rpmsg_endpoint ept; - struct qcom_smd_channel *qsch; +enum { + SDHCI_ACPI_SD_CD = 1, + SDHCI_ACPI_RUNTIME_PM = 2, + SDHCI_ACPI_SD_CD_OVERRIDE_LEVEL = 4, }; -struct smd_channel_info { - __le32 state; - u8 fDSR; - u8 fCTS; - u8 fCD; - u8 fRI; - u8 fHEAD; - u8 fTAIL; - u8 fSTATE; - u8 fBLOCKREADINTR; - __le32 tail; - __le32 head; +enum { + DMI_QUIRK_RESET_SD_SIGNAL_VOLT_ON_SUSP = 1, + DMI_QUIRK_SD_NO_WRITE_PROTECT = 2, }; -struct smd_channel_info_pair { - struct smd_channel_info tx; - struct smd_channel_info rx; +enum { + INTEL_DSM_FNS = 0, + INTEL_DSM_V18_SWITCH = 3, + INTEL_DSM_V33_SWITCH = 4, + INTEL_DSM_HS_CAPS = 8, }; -struct smd_channel_info_word { - __le32 state; - __le32 fDSR; - __le32 fCTS; - __le32 fCD; - __le32 fRI; - __le32 fHEAD; - __le32 fTAIL; - __le32 fSTATE; - __le32 fBLOCKREADINTR; - __le32 tail; - __le32 head; +struct sdhci_acpi_host { + struct sdhci_host *host; + const struct sdhci_acpi_slot *slot; + struct platform_device *pdev; + bool use_runtime_pm; + bool is_intel; + bool reset_signal_volt_on_suspend; + long: 64; + long: 64; + long: 64; + long: 64; + unsigned long private[0]; }; -struct smd_channel_info_word_pair { - struct smd_channel_info_word tx; - struct smd_channel_info_word rx; +struct intel_host { + u32 dsm_fns; + u32 hs_caps; }; -struct qcom_smd_device { - struct rpmsg_device rpdev; - struct qcom_smd_edge *edge; +struct amd_sdhci_host { + bool tuned_clock; + bool dll_enabled; }; -struct qcom_smd_alloc_entry { - u8 name[20]; - __le32 cid; - __le32 flags; - __le32 ref_count; +struct sdhci_tegra_soc_data { + const struct sdhci_pltfm_data *pdata; + u64 dma_mask; + u32 nvquirks; + u8 min_tap_delay; + u8 max_tap_delay; }; -struct apple_efuses_priv { - void *fuses; +struct sdhci_tegra_autocal_offsets { + u32 pull_up_3v3; + u32 pull_down_3v3; + u32 pull_up_3v3_timeout; + u32 pull_down_3v3_timeout; + u32 pull_up_1v8; + u32 pull_down_1v8; + u32 pull_up_1v8_timeout; + u32 pull_down_1v8_timeout; + u32 pull_up_sdr104; + u32 pull_down_sdr104; + u32 pull_up_hs400; + u32 pull_down_hs400; }; -typedef void (*btf_trace_icc_set_bw)(void *, struct icc_path *, struct icc_node *, int, u32, u32); - -struct icc_req { - struct hlist_node req_node; - struct icc_node *node; - struct device *dev; - bool enabled; - u32 tag; - u32 avg_bw; - u32 peak_bw; +struct sdhci_tegra { + const struct sdhci_tegra_soc_data *soc_data; + struct gpio_desc *power_gpio; + struct clk *tmclk; + bool ddr_signaling; + bool pad_calib_required; + bool pad_control_available; + struct reset_control *rst; + struct pinctrl *pinctrl_sdmmc; + struct pinctrl_state *pinctrl_state_3v3; + struct pinctrl_state *pinctrl_state_1v8; + struct pinctrl_state *pinctrl_state_3v3_drv; + struct pinctrl_state *pinctrl_state_1v8_drv; + struct sdhci_tegra_autocal_offsets autocal_offsets; + ktime_t last_calib; + u32 default_tap; + u32 default_trim; + u32 dqs_trim; + bool enable_hwcq; + unsigned long curr_clk_rate; + u8 tuned_tap_delay; + u32 stream_id; }; -struct icc_path { - const char *name; - size_t num_nodes; - struct icc_req reqs[0]; +enum lg_g15_model { + LG_G15 = 0, + LG_G15_V2 = 1, + LG_G510 = 2, + LG_G510_USB_AUDIO = 3, + LG_Z10 = 4, }; -typedef void (*btf_trace_icc_set_bw_end)(void *, struct icc_path *, int); +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 trace_event_raw_icc_set_bw { - struct trace_entry ent; - u32 __data_loc_path_name; - u32 __data_loc_dev; - u32 __data_loc_node_name; - u32 avg_bw; - u32 peak_bw; - u32 node_avg_bw; - u32 node_peak_bw; - char __data[0]; +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 trace_event_raw_icc_set_bw_end { - struct trace_entry ent; - u32 __data_loc_path_name; - u32 __data_loc_dev; - int ret; - char __data[0]; +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 trace_event_data_offsets_icc_set_bw { - u32 path_name; - u32 dev; - u32 node_name; +enum imx_rproc_method { + IMX_RPROC_NONE = 0, + IMX_RPROC_MMIO = 1, + IMX_RPROC_SMC = 2, + IMX_RPROC_SCU_API = 3, }; -struct trace_event_data_offsets_icc_set_bw_end { - u32 path_name; - u32 dev; +struct imx_rproc_att; + +struct imx_rproc_dcfg { + u32 src_reg; + u32 src_mask; + u32 src_start; + u32 src_stop; + u32 gpr_reg; + u32 gpr_wait; + const struct imx_rproc_att *att; + size_t att_size; + enum imx_rproc_method method; }; -struct bpf_xdp_link { - struct bpf_link link; - struct net_device *dev; +struct imx_rproc_att { + u32 da; + u32 sa; + u32 size; int flags; }; -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 imx_rproc_mem { + void *cpu_addr; + phys_addr_t sys_addr; + size_t size; }; -struct dev_kfree_skb_cb { - enum skb_drop_reason reason; +struct imx_rproc { + struct device *dev; + struct regmap *regmap; + struct regmap *gpr; + struct rproc *rproc; + const struct imx_rproc_dcfg *dcfg; + struct imx_rproc_mem mem[32]; + struct clk *clk; + struct mbox_client cl; + struct mbox_chan *tx_ch; + struct mbox_chan *rx_ch; + struct work_struct rproc_work; + struct workqueue_struct *workqueue; + void *rsc_table; + struct imx_sc_ipc *ipc_handle; + struct notifier_block rproc_nb; + u32 rproc_pt; + u32 rsrc_id; + u32 entry; + int num_pd; + u32 core_index; + struct device **pd_dev; + struct device_link **pd_dev_link; }; -struct netdev_net_notifier { - struct list_head list; - struct notifier_block *nb; +struct tegra186_emc_dvfs; + +struct tegra186_emc { + struct tegra_bpmp *bpmp; + struct device *dev; + struct clk *clk; + struct tegra186_emc_dvfs *dvfs; + unsigned int num_dvfs; + struct { + struct dentry *root; + unsigned long min_rate; + unsigned long max_rate; + } debugfs; + struct icc_provider provider; }; -struct net_device_path_stack { - int num_paths; - struct net_device_path path[5]; +struct tegra186_emc_dvfs { + unsigned long latency; + unsigned long rate; }; -struct netdev_notifier_offload_xstats_rd; +struct emc_dvfs_latency { + uint32_t freq; + uint32_t latency; +}; -struct netdev_notifier_offload_xstats_ru; +struct mrq_emc_dvfs_latency_response { + uint32_t num_pairs; + struct emc_dvfs_latency pairs[14]; +}; -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 rockchip_data { + int size; + const char * const *clks; + int num_clks; + nvmem_reg_read_t reg_read; }; -struct netdev_notifier_offload_xstats_rd { - struct rtnl_hw_stats64 stats; - bool used; +struct rockchip_otp { + struct device *dev; + void *base; + struct clk_bulk_data *clks; + struct reset_control *rst; + const struct rockchip_data *data; }; -struct netdev_notifier_offload_xstats_ru { - bool used; +enum { + NETDEV_A_DEV_IFINDEX = 1, + NETDEV_A_DEV_PAD = 2, + NETDEV_A_DEV_XDP_FEATURES = 3, + NETDEV_A_DEV_XDP_ZC_MAX_SEGS = 4, + NETDEV_A_DEV_XDP_RX_METADATA_FEATURES = 5, + __NETDEV_A_DEV_MAX = 6, + NETDEV_A_DEV_MAX = 5, }; -struct netdev_notifier_pre_changeaddr_info { - struct netdev_notifier_info info; - const unsigned char *dev_addr; +enum netdev_xdp_rx_metadata { + NETDEV_XDP_RX_METADATA_TIMESTAMP = 1, + NETDEV_XDP_RX_METADATA_HASH = 2, + NETDEV_XDP_RX_METADATA_MASK = 3, }; -typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *); +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, +}; -struct ifslave { - __s32 slave_id; - char slave_name[16]; - __s8 link; - __s8 state; - __u32 link_failure_count; +enum { + NETDEV_NLGRP_MGMT = 0, }; -typedef struct ifslave ifslave; +typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *); -struct ifbond { - __s32 bond_mode; - __s32 num_slaves; - __s32 miimon; +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, }; -typedef struct ifbond ifbond; - -struct netdev_bonding_info { - ifslave slave; - ifbond master; +enum ethtool_multicast_groups { + ETHNL_MCGRP_MONITOR = 0, }; -struct netdev_notifier_bonding_info { - struct netdev_notifier_info info; - struct netdev_bonding_info bonding_info; +struct ethnl_dump_ctx { + const struct ethnl_request_ops *ops; + struct ethnl_req_info *req_info; + struct ethnl_reply_data *reply_data; + unsigned long pos_ifindex; }; -struct netdev_notifier_changelowerstate_info { - struct netdev_notifier_info info; - void *lower_state_info; +struct devinet_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table devinet_vars[34]; }; enum { - TCP_CMSG_INQ = 1, - TCP_CMSG_TS = 2, + 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 { - 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, + 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 { - 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, + IFLA_INET_UNSPEC = 0, + IFLA_INET_CONF = 1, + __IFLA_INET_MAX = 2, }; -struct tcp_splice_state { - struct pipe_inode_info *pipe; - size_t len; - unsigned int flags; +struct ifaddrmsg { + __u8 ifa_family; + __u8 ifa_prefixlen; + __u8 ifa_flags; + __u8 ifa_scope; + __u32 ifa_index; }; -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 ifa_cacheinfo { + __u32 ifa_prefered; + __u32 ifa_valid; + __u32 cstamp; + __u32 tstamp; }; -struct tcp_repair_opt { - __u32 opt_code; - __u32 opt_val; +struct inet_fill_args { + u32 portid; + u32 seq; + int event; + unsigned int flags; + int netnsid; + int ifindex; }; -struct tcp_repair_window { - __u32 snd_wl1; - __u32 snd_wnd; - __u32 max_window; - __u32 rcv_wnd; - __u32 rcv_wup; +struct netconfmsg { + __u8 ncm_family; }; -enum { - IP6_FH_F_FRAG = 1, - IP6_FH_F_AUTH = 2, - IP6_FH_F_SKIP_RH = 4, +struct in_validator_info { + __be32 ivi_addr; + struct in_device *ivi_dev; + struct netlink_ext_ack *extack; }; -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 *); +struct devlink_reload_combination { + enum devlink_reload_action action; + enum devlink_reload_limit limit; +}; -typedef void (*btf_trace_9p_fid_ref)(void *, struct p9_fid *, __u8); +enum devlink_info_version_type { + DEVLINK_INFO_VERSION_TYPE_NONE = 0, + DEVLINK_INFO_VERSION_TYPE_COMPONENT = 1, +}; -enum p9_fid_reftype { - P9_FID_REF_CREATE = 0, - P9_FID_REF_GET = 1, - P9_FID_REF_PUT = 2, - P9_FID_REF_DESTROY = 3, -} __attribute__((mode(byte))); +struct devlink_info_req { + struct sk_buff *msg; + void (*version_cb)(const char *, enum devlink_info_version_type, void *); + void *version_cb_priv; +}; -enum { - Opt_msize = 0, - Opt_trans = 1, - Opt_legacy = 2, - Opt_version = 3, - Opt_err___11 = 4, +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, }; -struct trace_event_raw_9p_client_req { - struct trace_entry ent; - void *clnt; - __u8 type; - __u32 tag; - char __data[0]; +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 trace_event_raw_9p_client_res { - struct trace_entry ent; - void *clnt; - __u8 type; - __u32 tag; - __u32 err; - char __data[0]; +struct devlink_flash_notify { + const char *status_msg; + const char *component; + unsigned long done; + unsigned long total; + unsigned long timeout; }; -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 devlink_flash_component_lookup_ctx { + const char *lookup_name; + bool lookup_name_found; }; -struct trace_event_raw_9p_fid_ref { - struct trace_entry ent; - int fid; - int refcount; - __u8 type; - char __data[0]; +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 trace_event_data_offsets_9p_client_req {}; +typedef struct { + unsigned long key[2]; +} hsiphash_key_t; -struct trace_event_data_offsets_9p_client_res {}; +union efi_rng_protocol; -struct trace_event_data_offsets_9p_protocol_dump {}; +typedef union efi_rng_protocol efi_rng_protocol_t; -struct trace_event_data_offsets_9p_fid_ref {}; +union efi_rng_protocol { + struct { + efi_status_t (*get_info)(efi_rng_protocol_t *, unsigned long *, efi_guid_t *); + efi_status_t (*get_rng)(efi_rng_protocol_t *, efi_guid_t *, unsigned long, u8 *); + }; + struct { + u32 get_info; + u32 get_rng; + } mixed_mode; +}; #ifndef BPF_NO_PRESERVE_ACCESS_INDEX #pragma clang attribute pop diff --git a/crates/bpf-builder/include/arm/vmlinux.h b/crates/bpf-builder/include/arm/vmlinux.h index 545efbd9..e38f7d98 120000 --- a/crates/bpf-builder/include/arm/vmlinux.h +++ b/crates/bpf-builder/include/arm/vmlinux.h @@ -1 +1 @@ -vmlinux_6_5_2.h \ No newline at end of file +vmlinux_6_7_2.h \ No newline at end of file diff --git a/crates/bpf-builder/include/arm/vmlinux_6_5_2.h b/crates/bpf-builder/include/arm/vmlinux_6_7_2.h similarity index 96% rename from crates/bpf-builder/include/arm/vmlinux_6_5_2.h rename to crates/bpf-builder/include/arm/vmlinux_6_7_2.h index 6f030105..0d64b447 100644 --- a/crates/bpf-builder/include/arm/vmlinux_6_5_2.h +++ b/crates/bpf-builder/include/arm/vmlinux_6_7_2.h @@ -1,5 +1,5 @@ // File autogenerated with `cargo xtask vmlinux`. DO NOT EDIT MANUALLY! -// Kernel 6.5.2 compiled with clang +// Kernel 6.7.2 compiled with clang-15 #ifndef __VMLINUX_H__ #define __VMLINUX_H__ @@ -8,17 +8,41 @@ #pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record) #endif -enum module_state { - MODULE_STATE_LIVE = 0, - MODULE_STATE_COMING = 1, - MODULE_STATE_GOING = 2, - MODULE_STATE_UNFORMED = 3, +typedef int (*initcall_t)(); + +typedef unsigned char __u8; + +typedef __u8 u8; + +typedef unsigned int __u32; + +typedef __u32 u32; + +typedef unsigned short __u16; + +typedef __u16 u16; + +struct __raw_tickets { + u16 owner; + u16 next; }; -enum quota_type { - USRQUOTA = 0, - GRPQUOTA = 1, - PRJQUOTA = 2, +typedef struct { + union { + u32 slock; + struct __raw_tickets tickets; + }; +} arch_spinlock_t; + +struct raw_spinlock { + arch_spinlock_t raw_lock; +}; + +typedef struct raw_spinlock raw_spinlock_t; + +struct list_head { + struct list_head *next; + struct list_head *prev; }; enum hrtimer_restart { @@ -34,6 +58,21 @@ enum pid_type { PIDTYPE_MAX = 4, }; +enum module_state { + MODULE_STATE_LIVE = 0, + MODULE_STATE_COMING = 1, + MODULE_STATE_GOING = 2, + MODULE_STATE_UNFORMED = 3, +}; + +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, +}; + enum fault_flag { FAULT_FLAG_WRITE = 1, FAULT_FLAG_MKWRITE = 2, @@ -50,18 +89,28 @@ enum fault_flag { FAULT_FLAG_VMA_LOCK = 4096, }; -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, +enum migrate_mode { + MIGRATE_ASYNC = 0, + MIGRATE_SYNC_LIGHT = 1, + MIGRATE_SYNC = 2, + MIGRATE_SYNC_NO_COPY = 3, +}; + +enum kobj_ns_type { + KOBJ_NS_TYPE_NONE = 0, + KOBJ_NS_TYPE_NET = 1, + KOBJ_NS_TYPES = 2, +}; + +enum freeze_holder { + FREEZE_HOLDER_KERNEL = 1, + FREEZE_HOLDER_USERSPACE = 2, }; -enum page_entry_size { - PE_SIZE_PTE = 0, - PE_SIZE_PMD = 1, - PE_SIZE_PUD = 2, +enum quota_type { + USRQUOTA = 0, + GRPQUOTA = 1, + PRJQUOTA = 2, }; enum timespec_type { @@ -77,83 +126,174 @@ enum uprobe_task_state { UTASK_SSTEP_TRAPPED = 3, }; -enum migrate_mode { - MIGRATE_ASYNC = 0, - MIGRATE_SYNC_LIGHT = 1, - MIGRATE_SYNC = 2, - MIGRATE_SYNC_NO_COPY = 3, +enum bug_trap_type { + BUG_TRAP_TYPE_NONE = 0, + BUG_TRAP_TYPE_WARN = 1, + BUG_TRAP_TYPE_BUG = 2, }; -enum kobj_ns_type { - KOBJ_NS_TYPE_NONE = 0, - KOBJ_NS_TYPE_NET = 1, - KOBJ_NS_TYPES = 2, +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, }; enum { - false = 0, - true = 1, + SPECTRE_UNAFFECTED = 0, + SPECTRE_MITIGATED = 1, + SPECTRE_VULNERABLE = 2, }; -typedef unsigned int gfp_t; +enum { + SPECTRE_V2_METHOD_BPIALL = 1, + SPECTRE_V2_METHOD_ICIALLU = 2, + SPECTRE_V2_METHOD_SMC = 4, + SPECTRE_V2_METHOD_HVC = 8, + SPECTRE_V2_METHOD_LOOP8 = 16, +}; -typedef unsigned int __u32; +enum die_val { + DIE_UNUSED = 0, + DIE_OOPS = 1, +}; -typedef __u32 Elf32_Word; +enum { + TASK_COMM_LEN = 16, +}; -typedef __u32 Elf32_Addr; +enum lockdep_ok { + LOCKDEP_STILL_OK = 0, + LOCKDEP_NOW_UNRELIABLE = 1, +}; -typedef unsigned short __u16; +enum { + false = 0, + true = 1, +}; -typedef __u16 Elf32_Half; +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, +}; -struct elf32_sym { - Elf32_Word st_name; - Elf32_Addr st_value; - Elf32_Word st_size; - unsigned char st_info; - unsigned char st_other; - Elf32_Half st_shndx; +struct cpu_context_save { + __u32 r4; + __u32 r5; + __u32 r6; + __u32 r7; + __u32 r8; + __u32 r9; + __u32 sl; + __u32 fp; + __u32 sp; + __u32 pc; + __u32 extra[2]; }; -typedef struct elf32_sym Elf32_Sym; +struct fp_hard_struct { + unsigned int save[35]; +}; -typedef __u32 u32; +struct fp_soft_struct { + unsigned int save[35]; +}; -typedef int __s32; +struct iwmmxt_struct { + unsigned int save[38]; +}; -typedef __s32 s32; +union fp_state { + struct fp_hard_struct hard; + struct fp_soft_struct soft; + struct iwmmxt_struct iwmmxt; +}; -struct list_head { - struct list_head *next; - struct list_head *prev; +typedef unsigned long long __u64; + +struct vfp_hard_struct { + __u64 fpregs[32]; + __u32 fpexc; + __u32 fpscr; + __u32 fpinst; + __u32 fpinst2; + __u32 cpu; + long: 32; }; -struct unwind_idx; +union vfp_state { + struct vfp_hard_struct hard; +}; -struct unwind_table { - struct list_head list; - struct list_head mod_list; - const struct unwind_idx *start; - const struct unwind_idx *origin; - const struct unwind_idx *stop; - unsigned long begin_addr; - unsigned long end_addr; +struct thread_info { + unsigned long flags; + int preempt_count; + __u32 cpu; + __u32 cpu_domain; + struct cpu_context_save cpu_context; + __u32 abi_syscall; + unsigned long tp_value[2]; + long: 32; + union fp_state fpstate; + union vfp_state vfpstate; + unsigned long thumbee_state; + long: 32; }; -struct unwind_idx { - unsigned long addr_offset; - unsigned long insn; +struct pt_regs; + +struct undef_hook { + struct list_head node; + u32 instr_mask; + u32 instr_val; + u32 cpsr_mask; + u32 cpsr_val; + int (*fn)(struct pt_regs *, unsigned int); }; -typedef u32 pteval_t; +struct pt_regs { + unsigned long uregs[18]; +}; -typedef pteval_t pgprot_t; +typedef unsigned long uintptr_t; + +struct cpumask { + unsigned long bits[1]; +}; + +typedef unsigned int gfp_t; typedef _Bool bool; typedef unsigned int __kernel_size_t; +typedef __kernel_size_t size_t; + typedef struct { int counter; } atomic_t; @@ -164,76 +304,21 @@ struct refcount_struct { 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; - -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 atomic_t atomic_long_t; - -typedef __u16 u16; - -struct __raw_tickets { - u16 owner; - u16 next; +struct llist_node { + struct llist_node *next; }; -typedef struct { +struct __call_single_node { + struct llist_node llist; union { - u32 slock; - struct __raw_tickets tickets; + unsigned int u_flags; + atomic_t a_flags; }; -} 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 load_weight { + unsigned long weight; + u32 inv_weight; }; struct rb_node { @@ -242,149 +327,61 @@ struct rb_node { struct rb_node *rb_left; }; -struct latch_tree_node { - struct rb_node node[2]; -}; - -struct mod_tree_node { - struct module *mod; - struct latch_tree_node node; -}; - -struct module_memory { - void *base; - unsigned int size; - struct mod_tree_node mtn; -}; - -struct elf32_shdr; - -struct plt_entries; +typedef __u64 u64; -struct mod_plt_sec { - struct elf32_shdr *plt; - struct plt_entries *plt_ent; - int plt_count; -}; +typedef long long __s64; -struct mod_arch_specific { - struct list_head unwind_list; - struct unwind_table *init_table; - struct mod_plt_sec core; - struct mod_plt_sec init; -}; +typedef __s64 s64; -struct mod_kallsyms { - Elf32_Sym *symtab; - unsigned int num_symtab; - char *strtab; - char *typetab; +struct util_est { + unsigned int enqueued; + unsigned int ewma; }; -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 tracepoint; - -typedef struct tracepoint * const tracepoint_ptr_t; - -struct srcu_struct; - -struct bpf_raw_event_map; - -struct trace_event_call; - -struct trace_eval_map; - -struct error_injection_entry; - -struct module { - enum module_state state; - struct list_head list; - char name[60]; - struct module_kobject mkobj; - struct module_attribute *modinfo_attrs; - const char *version; - const char *srcversion; - struct kobject *holders_dir; - const struct kernel_symbol *syms; - const s32 *crcs; - unsigned int num_syms; - struct mutex param_lock; - struct kernel_param *kp; - unsigned int num_kp; - unsigned int num_gpl_syms; - const struct kernel_symbol *gpl_syms; - const s32 *gpl_crcs; - bool using_gplonly_symbols; - bool async_probe_requested; - unsigned int num_exentries; - struct exception_table_entry *extable; - int (*init)(); - long: 32; +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; long: 32; + struct util_est util_est; long: 32; long: 32; +}; + +struct cfs_rq; + +struct sched_entity { + struct load_weight load; + struct rb_node run_node; long: 32; + u64 deadline; + u64 min_deadline; + struct list_head group_node; + unsigned int on_rq; long: 32; + u64 exec_start; + u64 sum_exec_runtime; + u64 prev_sum_exec_runtime; + u64 vruntime; + s64 vlag; + u64 slice; + u64 nr_migrations; + int depth; + struct sched_entity *parent; + struct cfs_rq *cfs_rq; + struct cfs_rq *my_q; + unsigned long runnable_weight; long: 32; long: 32; long: 32; long: 32; long: 32; long: 32; - struct module_memory mem[7]; - struct mod_arch_specific arch; - unsigned long taints; - unsigned int num_bugs; - struct list_head bug_list; - struct bug_entry *bug_table; - struct mod_kallsyms __attribute__((btf_type_tag("rcu"))) *kallsyms; - struct mod_kallsyms core_kallsyms; - struct module_sect_attrs *sect_attrs; - struct module_notes_attrs *notes_attrs; - char *args; - void __attribute__((btf_type_tag("percpu"))) *percpu; - unsigned int percpu_size; - void *noinstr_text_start; - unsigned int noinstr_text_size; - unsigned int num_tracepoints; - tracepoint_ptr_t *tracepoints_ptrs; - unsigned int num_srcu_structs; - struct srcu_struct **srcu_struct_ptrs; - unsigned int num_bpf_raw_events; - struct bpf_raw_event_map *bpf_raw_events; - unsigned int btf_data_size; - void *btf_data; - 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; - 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: 32; long: 32; @@ -394,345 +391,383 @@ struct module { long: 32; long: 32; long: 32; + struct sched_avg avg; +}; + +struct sched_rt_entity { + struct list_head run_list; + unsigned long timeout; + unsigned long watchdog_stamp; + unsigned int time_slice; + unsigned short on_rq; + unsigned short on_list; + struct sched_rt_entity *back; +}; + +typedef s64 ktime_t; + +struct timerqueue_node { + struct rb_node node; long: 32; + ktime_t expires; +}; + +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; long: 32; }; -struct spinlock { - union { - struct raw_spinlock rlock; - }; +struct sched_dl_entity { + struct rb_node rb_node; + long: 32; + 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; + long: 32; }; -typedef struct spinlock spinlock_t; +struct sched_statistics {}; -struct kset_uevent_ops; +typedef struct cpumask cpumask_t; -struct kset { - struct list_head list; - spinlock_t list_lock; - struct kobject kobj; - const struct kset_uevent_ops *uevent_ops; +union rcu_special { + struct { + u8 blocked; + u8 need_qs; + u8 exp_hint; + u8 need_mb; + } b; + u32 s; }; -struct kobj_uevent_env; +struct sched_info {}; -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 plist_node { + int prio; + struct list_head prio_list; + struct list_head node_list; }; -struct kobj_uevent_env { - char *argv[3]; - char *envp[64]; - int envp_idx; - char buf[2048]; - int buflen; -}; +typedef int __kernel_clockid_t; -typedef unsigned int __kernel_uid32_t; +typedef __kernel_clockid_t clockid_t; -typedef __kernel_uid32_t uid_t; +struct __kernel_timespec; -typedef struct { - uid_t val; -} kuid_t; +struct old_timespec32; -typedef unsigned int __kernel_gid32_t; +struct pollfd; -typedef __kernel_gid32_t gid_t; +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; + long: 32; + } 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; + }; + long: 32; + 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 struct { - gid_t val; -} kgid_t; +typedef int __kernel_pid_t; -struct sysfs_ops; +typedef __kernel_pid_t pid_t; -struct attribute_group; +struct hlist_node { + struct hlist_node *next; + struct hlist_node **pprev; +}; -struct kobj_ns_type_operations; +struct prev_cputime { + u64 utime; + u64 stime; + raw_spinlock_t lock; + long: 32; +}; -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 *); +struct rb_root { + struct rb_node *rb_node; }; -typedef int __kernel_ssize_t; +struct rb_root_cached { + struct rb_root rb_root; + struct rb_node *rb_leftmost; +}; -typedef __kernel_ssize_t ssize_t; +struct timerqueue_head { + struct rb_root_cached rb_root; +}; -typedef __kernel_size_t size_t; +struct posix_cputimer_base { + u64 nextevt; + struct timerqueue_head tqhead; +}; -struct attribute; +struct posix_cputimers { + struct posix_cputimer_base bases[3]; + unsigned int timers_active; + unsigned int expiry_active; +}; -struct sysfs_ops { - ssize_t (*show)(struct kobject *, struct attribute *, char *); - ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); +struct sem_undo_list; + +struct sysv_sem { + struct sem_undo_list *undo_list; }; -typedef unsigned short umode_t; +struct sysv_shm { + struct list_head shm_clist; +}; -struct attribute { - const char *name; - umode_t mode; +typedef struct { + unsigned long sig[2]; +} sigset_t; + +struct sigpending { + struct list_head list; + sigset_t signal; }; -struct bin_attribute; +struct seccomp_filter; -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; +struct seccomp { + int mode; + atomic_t filter_count; + struct seccomp_filter *filter; }; -struct address_space; +struct syscall_user_dispatch {}; -struct file; +struct spinlock { + union { + struct raw_spinlock rlock; + }; +}; -typedef long long __kernel_loff_t; +typedef struct spinlock spinlock_t; -typedef __kernel_loff_t loff_t; +struct wake_q_node { + struct wake_q_node *next; +}; -struct vm_area_struct; +struct task_io_accounting {}; -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 struct { + unsigned long bits[1]; +} nodemask_t; + +struct seqcount { + unsigned int sequence; }; -struct xarray { - spinlock_t xa_lock; - gfp_t xa_flags; - void __attribute__((btf_type_tag("rcu"))) *xa_head; +typedef struct seqcount seqcount_t; + +struct seqcount_spinlock { + seqcount_t seqcount; }; -struct rw_semaphore { - atomic_long_t count; +typedef struct seqcount_spinlock seqcount_spinlock_t; + +typedef atomic_t atomic_long_t; + +struct optimistic_spin_queue { + atomic_t tail; +}; + +struct mutex { atomic_long_t owner; - struct optimistic_spin_queue osq; raw_spinlock_t wait_lock; + struct optimistic_spin_queue osq; struct list_head wait_list; }; -struct rb_root { - struct rb_node *rb_node; +struct callback_head { + struct callback_head *next; + void (*func)(struct callback_head *); }; -struct rb_root_cached { - struct rb_root rb_root; - struct rb_node *rb_leftmost; +struct tlbflush_unmap_batch {}; + +struct page; + +struct page_frag { + struct page *page; + __u16 offset; + __u16 size; }; -typedef u32 errseq_t; +typedef u32 pteval_t; -struct inode; +typedef pteval_t pte_t; -struct address_space_operations; +struct kmap_ctrl { + int idx; + pte_t pteval[16]; +}; -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 timer_list { + struct hlist_node entry; + unsigned long expires; + void (*function)(struct timer_list *); + u32 flags; }; -struct hlist_node; +struct llist_head { + struct llist_node *first; +}; -struct hlist_head { - struct hlist_node *first; +struct perf_event; + +struct debug_info { + struct perf_event *hbp[32]; }; -struct callback_head { - struct callback_head *next; - void (*func)(struct callback_head *); +struct thread_struct { + unsigned long address; + unsigned long trap_no; + unsigned long error_code; + struct debug_info debug; }; -typedef u32 __kernel_dev_t; +struct sched_class; -typedef __kernel_dev_t dev_t; +struct task_group; -typedef long long __s64; +struct mm_struct; -typedef __s64 time64_t; +struct address_space; -struct timespec64 { - time64_t tv_sec; - long tv_nsec; - long: 32; -}; +struct pid; -typedef unsigned char __u8; +struct completion; -typedef __u8 u8; +struct cred; -typedef unsigned long long __u64; +struct key; -typedef __u64 u64; +struct nameidata; -typedef u64 blkcnt_t; +struct fs_struct; -struct seqcount { - unsigned int sequence; -}; +struct files_struct; -typedef struct seqcount seqcount_t; +struct io_uring_task; -struct hlist_node { - struct hlist_node *next; - struct hlist_node **pprev; -}; +struct nsproxy; -typedef __s64 s64; +struct signal_struct; -typedef struct { - s64 counter; -} atomic64_t; +struct sighand_struct; -struct posix_acl; +struct rt_mutex_waiter; -struct inode_operations; +struct bio_list; -struct super_block; +struct blk_plug; -struct file_operations; +struct reclaim_state; -struct file_lock_context; +struct io_context; -struct pipe_inode_info; +struct capture_control; -struct cdev; +struct kernel_siginfo; -struct fsnotify_mark_connector; +typedef struct kernel_siginfo kernel_siginfo_t; -struct inode { - umode_t i_mode; - unsigned short i_opflags; - kuid_t i_uid; - kgid_t i_gid; - unsigned int i_flags; - struct posix_acl *i_acl; - struct posix_acl *i_default_acl; - const struct inode_operations *i_op; - struct super_block *i_sb; - struct address_space *i_mapping; - unsigned long i_ino; - union { - const unsigned int i_nlink; - unsigned int __i_nlink; - }; - dev_t i_rdev; - loff_t i_size; - struct timespec64 i_atime; - struct timespec64 i_mtime; - struct timespec64 i_ctime; - spinlock_t i_lock; - unsigned short i_bytes; - u8 i_blkbits; - u8 i_write_hint; - blkcnt_t i_blocks; - seqcount_t i_size_seqcount; - 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 css_set; -struct dentry; +struct robust_list_head; -struct delayed_call; +struct futex_pi_state; -struct mnt_idmap; +struct perf_event_context; -struct iattr; +struct rseq; -struct path; +struct pipe_inode_info; -struct kstat; +struct ftrace_ret_stack; -struct fiemap_extent_info; +struct mem_cgroup; -struct fileattr; +struct obj_cgroup; -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 gendisk; + +struct uprobe_task; + +struct vm_struct; + +struct bpf_local_storage; + +struct bpf_run_ctx; + +struct user_event_mm; + +struct task_struct { + struct thread_info thread_info; + unsigned int __state; + unsigned int saved_state; + void *stack; + refcount_t usage; + unsigned int flags; + unsigned int ptrace; + int on_cpu; + struct __call_single_node wake_entry; + unsigned int wakee_flips; + unsigned long wakee_flip_decay_ts; + struct task_struct *last_wakee; + int recent_used_cpu; + int wake_cpu; + int on_rq; + int prio; + int static_prio; + int normal_prio; + unsigned int rt_priority; long: 32; long: 32; long: 32; @@ -741,997 +776,6 @@ struct inode_operations { long: 32; long: 32; long: 32; -}; - -struct hlist_bl_node { - struct hlist_bl_node *next; - struct hlist_bl_node **pprev; -}; - -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; - long: 32; -}; - -struct lockref { - union { - __u64 lock_count; - struct { - spinlock_t lock; - int count; - }; - }; -}; - -struct dentry_operations; - -struct wait_queue_head; - -typedef struct wait_queue_head wait_queue_head_t; - -struct dentry { - unsigned int d_flags; - seqcount_spinlock_t d_seq; - struct hlist_bl_node d_hash; - struct dentry *d_parent; - long: 32; - struct qstr d_name; - struct inode *d_inode; - unsigned char d_iname[36]; - 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: 32; - long: 32; - long: 32; -}; - -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; -}; - -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; - long: 32; - qsize_t dqi_max_spc_limit; - qsize_t dqi_max_ino_limit; - void *dqi_priv; - long: 32; -}; - -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]; - long: 32; -}; - -struct wait_queue_head { - spinlock_t lock; - struct list_head head; -}; - -struct rcu_sync { - int gp_state; - int gp_count; - wait_queue_head_t gp_wait; - struct callback_head cb_head; -}; - -struct task_struct; - -struct rcuwait { - struct task_struct __attribute__((btf_type_tag("rcu"))) *task; -}; - -struct percpu_rw_semaphore { - struct rcu_sync rss; - unsigned int __attribute__((btf_type_tag("percpu"))) *read_count; - struct rcuwait writer; - wait_queue_head_t waiters; - atomic_t block; -}; - -struct sb_writers { - int frozen; - struct percpu_rw_semaphore rw_sem[3]; -}; - -typedef struct { - __u8 b[16]; -} uuid_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 mtd_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; - long: 32; - loff_t s_maxbytes; - struct file_system_type *s_type; - const struct super_operations *s_op; - const struct dquot_operations *dq_op; - const struct quotactl_ops *s_qcop; - const struct export_operations *s_export_op; - unsigned long s_flags; - unsigned long s_iflags; - unsigned long s_magic; - struct dentry *s_root; - struct rw_semaphore s_umount; - int s_count; - atomic_t s_active; - const struct xattr_handler **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; - long: 32; - 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; - 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: 32; - long: 32; - spinlock_t s_inode_list_lock; - struct list_head s_inodes; - spinlock_t s_inode_wblist_lock; - struct list_head s_inodes_wb; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; - -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 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 *); - long (*nr_cached_objects)(struct super_block *, struct shrink_control *); - long (*free_cached_objects)(struct super_block *, struct shrink_control *); - void (*shutdown)(struct super_block *); -}; - -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; -}; - -typedef __kernel_uid32_t projid_t; - -typedef struct { - projid_t val; -} kprojid_t; - -struct dquot; - -struct kqid; - -struct dquot_operations { - int (*write_dquot)(struct dquot *); - struct dquot * (*alloc_dquot)(struct super_block *, int); - void (*destroy_dquot)(struct dquot *); - int (*acquire_dquot)(struct dquot *); - int (*release_dquot)(struct dquot *); - int (*mark_dirty)(struct dquot *); - int (*write_info)(struct super_block *, int); - qsize_t * (*get_reserved_space)(struct inode *); - int (*get_projid)(struct inode *, kprojid_t *); - int (*get_inode_usage)(struct inode *, qsize_t *); - int (*get_next_id)(struct super_block *, struct kqid *); -}; - -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; - long: 32; - struct mem_dqblk dq_dqb; -}; - -struct qc_info; - -struct qc_dqblk; - -struct qc_state; - -struct quotactl_ops { - int (*quota_on)(struct super_block *, int, int, const struct path *); - int (*quota_off)(struct super_block *, int); - int (*quota_enable)(struct super_block *, unsigned int); - int (*quota_disable)(struct super_block *, unsigned int); - int (*quota_sync)(struct super_block *, int); - int (*set_info)(struct super_block *, int, struct qc_info *); - int (*get_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *); - int (*get_nextdqblk)(struct super_block *, struct kqid *, struct qc_dqblk *); - int (*set_dqblk)(struct super_block *, struct kqid, struct qc_dqblk *); - int (*get_state)(struct super_block *, struct qc_state *); - int (*rm_xquota)(struct super_block *, unsigned int); -}; - -struct path { - struct vfsmount *mnt; - struct dentry *dentry; -}; - -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; - long: 32; - 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; - long: 32; -}; - -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; - long: 32; - unsigned long long ino; - blkcnt_t blocks; - blkcnt_t nextents; -}; - -struct qc_state { - unsigned int s_incoredqs; - long: 32; - struct qc_type_state s_state[3]; -}; - -struct fid; - -struct iomap; - -struct export_operations { - int (*encode_fh)(struct inode *, __u32 *, int *, struct inode *); - struct dentry * (*fh_to_dentry)(struct super_block *, struct fid *, int, int); - struct dentry * (*fh_to_parent)(struct super_block *, struct fid *, int, int); - int (*get_name)(struct dentry *, char *, struct dentry *); - struct dentry * (*get_parent)(struct dentry *); - int (*commit_metadata)(struct inode *); - int (*get_uuid)(struct super_block *, u8 *, u32 *, u64 *); - int (*map_blocks)(struct inode *, loff_t, u64, struct iomap *, bool, u32 *); - int (*commit_blocks)(struct inode *, struct iomap *, int, struct iattr *); - unsigned long flags; -}; - -struct xattr_handler { - const char *name; - const char *prefix; - int flags; - bool (*list)(struct dentry *); - int (*get)(const struct xattr_handler *, struct dentry *, struct inode *, const char *, void *, size_t); - int (*set)(const struct xattr_handler *, struct mnt_idmap *, struct dentry *, struct inode *, const char *, const void *, size_t, int); -}; - -struct quota_format_type { - int qf_fmt_id; - const struct quota_format_ops *qf_ops; - struct module *qf_owner; - struct quota_format_type *qf_next; -}; - -struct quota_format_ops { - int (*check_quota_file)(struct super_block *, int); - int (*read_file_info)(struct super_block *, int); - int (*write_file_info)(struct super_block *, int); - int (*free_file_info)(struct super_block *, int); - int (*read_dqblk)(struct dquot *); - int (*commit_dqblk)(struct dquot *); - int (*release_dqblk)(struct dquot *); - int (*get_next_id)(struct super_block *, struct kqid *); -}; - -struct cpu_context_save { - __u32 r4; - __u32 r5; - __u32 r6; - __u32 r7; - __u32 r8; - __u32 r9; - __u32 sl; - __u32 fp; - __u32 sp; - __u32 pc; - __u32 extra[2]; -}; - -struct fp_hard_struct { - unsigned int save[35]; -}; - -struct fp_soft_struct { - unsigned int save[35]; -}; - -struct iwmmxt_struct { - unsigned int save[38]; -}; - -union fp_state { - struct fp_hard_struct hard; - struct fp_soft_struct soft; - struct iwmmxt_struct iwmmxt; -}; - -struct vfp_hard_struct { - __u64 fpregs[32]; - __u32 fpexc; - __u32 fpscr; - __u32 fpinst; - __u32 fpinst2; - __u32 cpu; - long: 32; -}; - -union vfp_state { - struct vfp_hard_struct hard; -}; - -struct thread_info { - unsigned long flags; - int preempt_count; - __u32 cpu; - __u32 cpu_domain; - struct cpu_context_save cpu_context; - __u32 abi_syscall; - __u8 used_cp[16]; - unsigned long tp_value[2]; - long: 32; - union fp_state fpstate; - union vfp_state vfpstate; - unsigned long thumbee_state; - long: 32; -}; - -struct llist_node { - struct llist_node *next; -}; - -struct __call_single_node { - struct llist_node llist; - union { - unsigned int u_flags; - atomic_t a_flags; - }; -}; - -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; - long: 32; - struct util_est util_est; - long: 32; - long: 32; -}; - -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; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct sched_avg avg; -}; - -struct sched_rt_entity { - struct list_head run_list; - unsigned long timeout; - unsigned long watchdog_stamp; - unsigned int time_slice; - unsigned short on_rq; - unsigned short on_list; - struct sched_rt_entity *back; -}; - -typedef s64 ktime_t; - -struct timerqueue_node { - struct rb_node node; - long: 32; - ktime_t expires; -}; - -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; - long: 32; -}; - -struct sched_dl_entity { - struct rb_node rb_node; - long: 32; - 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; - long: 32; -}; - -struct sched_statistics {}; - -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 {}; - -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; - -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; - long: 32; - } 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; - }; - long: 32; - 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; - long: 32; -}; - -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 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[2]; -} 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 {}; - -struct wake_q_node { - struct wake_q_node *next; -}; - -struct task_io_accounting {}; - -struct tlbflush_unmap_batch {}; - -struct page; - -struct page_frag { - struct page *page; - __u16 offset; - __u16 size; -}; - -typedef pteval_t pte_t; - -struct kmap_ctrl { - int idx; - pte_t pteval[16]; -}; - -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 perf_event; - -struct debug_info { - struct perf_event *hbp[32]; -}; - -struct thread_struct { - unsigned long address; - unsigned long trap_no; - unsigned long error_code; - struct debug_info debug; -}; - -struct sched_class; - -struct mm_struct; - -struct pid; - -struct cred; - -struct key; - -struct nameidata; - -struct fs_struct; - -struct files_struct; - -struct io_uring_task; - -struct nsproxy; - -struct signal_struct; - -struct sighand_struct; - -struct rt_mutex_waiter; - -struct bio_list; - -struct blk_plug; - -struct reclaim_state; - -struct io_context; - -struct capture_control; - -struct kernel_siginfo; - -typedef struct kernel_siginfo kernel_siginfo_t; - -struct css_set; - -struct robust_list_head; - -struct futex_pi_state; - -struct perf_event_context; - -struct rseq; - -struct ftrace_ret_stack; - -struct uprobe_task; - -struct vm_struct; - -struct bpf_local_storage; - -struct bpf_run_ctx; - -struct user_event_mm; - -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; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; long: 32; long: 32; long: 32; @@ -1740,7 +784,7 @@ struct task_struct { long: 32; struct sched_dl_entity dl; const struct sched_class *sched_class; - long: 32; + struct task_group *sched_task_group; long: 32; long: 32; long: 32; @@ -1771,6 +815,7 @@ struct task_struct { struct rb_node pushable_dl_tasks; struct mm_struct *mm; struct mm_struct *active_mm; + struct address_space *faults_disabled_mapping; int exit_state; int exit_code; int exit_signal; @@ -1782,14 +827,16 @@ struct task_struct { unsigned int sched_migrated: 1; long: 29; unsigned int sched_remote_wakeup: 1; + unsigned int sched_rt_mutex: 1; unsigned int in_execve: 1; unsigned int in_iowait: 1; + unsigned int in_user_fault: 1; unsigned int brk_randomized: 1; unsigned int no_cgroup_migration: 1; unsigned int frozen: 1; + unsigned int use_memdelay: 1; unsigned int in_eventfd: 1; unsigned long atomic_flags; - long: 32; struct restart_block restart_block; pid_t pid; pid_t tgid; @@ -1803,7 +850,6 @@ struct task_struct { 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; @@ -1863,6 +909,10 @@ struct task_struct { unsigned long ptrace_message; kernel_siginfo_t *last_siginfo; struct task_io_accounting ioac; + nodemask_t mems_allowed; + seqcount_spinlock_t mems_allowed_seq; + int cpuset_mem_spread_rotor; + int cpuset_slab_spread_rotor; struct css_set __attribute__((btf_type_tag("rcu"))) *cgroups; struct list_head cg_list; struct robust_list_head __attribute__((btf_type_tag("user"))) *robust_list; @@ -1898,6 +948,13 @@ struct task_struct { atomic_t trace_overrun; atomic_t tracing_graph_pause; unsigned long trace_recursion; + struct mem_cgroup *memcg_in_oom; + gfp_t memcg_oom_gfp_mask; + int memcg_oom_order; + unsigned int memcg_nr_pages_over_high; + struct mem_cgroup *active_memcg; + struct obj_cgroup *objcg; + struct gendisk *throttle_disk; struct uprobe_task *utask; struct kmap_ctrl kmap_ctrl; struct callback_head rcu; @@ -1912,6 +969,13 @@ struct task_struct { struct llist_head kretprobe_instances; struct user_event_mm *user_event_mm; struct thread_struct thread; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; struct seqcount_raw_spinlock { @@ -1966,7 +1030,7 @@ struct sched_class { 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); + void (*wakeup_preempt)(struct rq *, struct task_struct *, int); struct task_struct * (*pick_next_task)(struct rq *); void (*put_prev_task)(struct rq *, struct task_struct *); void (*set_next_task)(struct rq *, struct task_struct *, bool); @@ -1987,6 +1051,7 @@ struct sched_class { 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 struct {} lockdep_map_p; @@ -1996,14 +1061,30 @@ struct maple_tree { spinlock_t ma_lock; lockdep_map_p ma_external_lock; }; - void __attribute__((btf_type_tag("rcu"))) *ma_root; unsigned int ma_flags; + void __attribute__((btf_type_tag("rcu"))) *ma_root; }; typedef u32 pmdval_t; typedef pmdval_t pgd_t[2]; +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; +}; + +typedef struct { + s64 counter; +} atomic64_t; + +typedef int __s32; + +typedef __s32 s32; + struct percpu_counter { raw_spinlock_t lock; long: 32; @@ -2027,12 +1108,26 @@ struct uprobes_state { struct xol_area *xol_area; }; +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; + struct mm_cid; struct linux_binfmt; struct kioctx_table; +struct user_namespace; + struct mm_struct { struct { struct { @@ -2100,6 +1195,7 @@ struct mm_struct { unsigned long flags; spinlock_t ioctx_lock; struct kioctx_table __attribute__((btf_type_tag("rcu"))) *ioctx_table; + struct task_struct __attribute__((btf_type_tag("rcu"))) *owner; struct user_namespace *user_ns; struct file __attribute__((btf_type_tag("rcu"))) *exe_file; atomic_t tlb_flush_pending; @@ -2119,13 +1215,16 @@ struct mm_struct { long: 32; long: 32; long: 32; - long: 32; }; unsigned long cpu_bitmap[0]; }; typedef unsigned int fmode_t; +typedef long long __kernel_loff_t; + +typedef __kernel_loff_t loff_t; + typedef struct { u32 lock; } arch_rwlock_t; @@ -2134,6 +1233,14 @@ typedef struct { arch_rwlock_t raw_lock; } rwlock_t; +typedef unsigned int __kernel_uid32_t; + +typedef __kernel_uid32_t uid_t; + +typedef struct { + uid_t val; +} kuid_t; + struct fown_struct { rwlock_t lock; struct pid *pid; @@ -2153,10 +1260,27 @@ struct file_ra_state { loff_t prev_pos; }; -struct file { - union { - struct llist_node f_llist; - struct callback_head f_rcuhead; +struct vfsmount; + +struct dentry; + +struct path { + struct vfsmount *mnt; + struct dentry *dentry; +}; + +typedef u32 errseq_t; + +struct inode; + +struct file_operations; + +struct hlist_head; + +struct file { + union { + struct llist_node f_llist; + struct callback_head f_rcuhead; unsigned int f_iocb_flags; }; spinlock_t f_lock; @@ -2180,6 +1304,17 @@ struct file { long: 32; }; +struct hlist_head { + struct hlist_node *first; +}; + +struct wait_queue_head { + spinlock_t lock; + struct list_head head; +}; + +typedef struct wait_queue_head wait_queue_head_t; + struct pid_namespace; struct upid { @@ -2198,18 +1333,77 @@ struct pid { struct upid numbers[0]; }; +struct xarray { + spinlock_t xa_lock; + gfp_t xa_flags; + void __attribute__((btf_type_tag("rcu"))) *xa_head; +}; + +struct idr { + struct xarray idr_rt; + unsigned int idr_base; + unsigned int idr_next; +}; + +struct proc_ns_operations; + +struct ns_common { + atomic_long_t stashed; + const struct proc_ns_operations *ops; + unsigned int inum; + refcount_t count; +}; + +struct kmem_cache; + +struct ucounts; + +struct pid_namespace { + struct idr idr; + struct callback_head rcu; + unsigned int pid_allocated; + struct task_struct *child_reaper; + struct kmem_cache *pid_cachep; + unsigned int level; + struct pid_namespace *parent; + struct user_namespace *user_ns; + struct ucounts *ucounts; + int reboot; + struct ns_common ns; + int memfd_noexec_scope; +}; + +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 *); +}; + +typedef unsigned int __kernel_gid32_t; + +typedef __kernel_gid32_t gid_t; + +typedef struct { + gid_t val; +} kgid_t; + typedef struct { u64 val; } kernel_cap_t; struct user_struct; -struct ucounts; - struct group_info; struct cred { - atomic_t usage; + atomic_long_t usage; kuid_t uid; kgid_t gid; kuid_t suid; @@ -2240,6 +1434,8 @@ struct cred { long: 32; }; +typedef __s64 time64_t; + struct key_type; struct key_tag; @@ -2341,10 +1537,14 @@ struct key_restriction { typedef int (*request_key_actor_t)(struct key *, void *); +struct lock_class_key {}; + struct key_preparsed_payload; struct key_match_data; +struct seq_file; + struct kernel_pkey_params; struct kernel_pkey_query; @@ -2397,175 +1597,835 @@ struct user_struct { }; struct group_info { - atomic_t usage; + refcount_t usage; int ngroups; kgid_t gid[0]; }; -typedef unsigned int __poll_t; +struct super_block; -typedef void *fl_owner_t; +struct mnt_idmap; -struct kiocb; +struct vfsmount { + struct dentry *mnt_root; + struct super_block *mnt_sb; + int mnt_flags; + struct mnt_idmap *mnt_idmap; +}; -struct iov_iter; +struct hlist_bl_node { + struct hlist_bl_node *next; + struct hlist_bl_node **pprev; +}; -struct io_comp_batch; +struct qstr { + union { + struct { + u32 hash; + u32 len; + }; + u64 hash_len; + }; + const unsigned char *name; + long: 32; +}; -struct dir_context; +struct lockref { + union { + __u64 lock_count; + struct { + spinlock_t lock; + int count; + }; + }; +}; -struct poll_table_struct; +struct dentry_operations; -struct file_lock; +struct dentry { + unsigned int d_flags; + seqcount_spinlock_t d_seq; + struct hlist_bl_node d_hash; + struct dentry *d_parent; + long: 32; + struct qstr d_name; + struct inode *d_inode; + unsigned char d_iname[36]; + 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 io_uring_cmd; +typedef unsigned short umode_t; -struct file_operations { - struct module *owner; - loff_t (*llseek)(struct file *, loff_t, int); - ssize_t (*read)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - ssize_t (*write)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - ssize_t (*read_iter)(struct kiocb *, struct iov_iter *); - ssize_t (*write_iter)(struct kiocb *, struct iov_iter *); - int (*iopoll)(struct kiocb *, struct io_comp_batch *, unsigned int); - int (*iterate_shared)(struct file *, struct dir_context *); - __poll_t (*poll)(struct file *, struct poll_table_struct *); - long (*unlocked_ioctl)(struct file *, unsigned int, unsigned long); - long (*compat_ioctl)(struct file *, unsigned int, unsigned long); - int (*mmap)(struct file *, struct vm_area_struct *); - unsigned long mmap_supported_flags; - int (*open)(struct inode *, struct file *); - int (*flush)(struct file *, fl_owner_t); - int (*release)(struct inode *, struct file *); - int (*fsync)(struct file *, loff_t, loff_t, int); - int (*fasync)(int, struct file *, int); - int (*lock)(struct file *, int, struct file_lock *); - unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); - int (*check_flags)(int); - int (*flock)(struct file *, int, struct file_lock *); - ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); - ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); - void (*splice_eof)(struct file *); - int (*setlease)(struct file *, 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); -}; +typedef u32 __kernel_dev_t; -struct wait_page_queue; +typedef __kernel_dev_t dev_t; -struct kiocb { - struct file *ki_filp; - long: 32; - 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 timespec64 { + time64_t tv_sec; + long tv_nsec; long: 32; }; -typedef bool (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64, unsigned int); +typedef u64 blkcnt_t; -struct dir_context { - filldir_t actor; - long: 32; - loff_t pos; +struct address_space_operations; + +struct address_space { + struct inode *host; + struct xarray i_pages; + struct rw_semaphore invalidate_lock; + gfp_t gfp_mask; + atomic_t i_mmap_writable; + struct rb_root_cached i_mmap; + unsigned long nrpages; + unsigned long writeback_index; + const struct address_space_operations *a_ops; + unsigned long flags; + struct rw_semaphore i_mmap_rwsem; + errseq_t wb_err; + spinlock_t private_lock; + struct list_head private_list; + void *private_data; }; -typedef unsigned long vm_flags_t; +struct posix_acl; -struct vm_userfaultfd_ctx {}; +struct inode_operations; -struct anon_vma; +struct bdi_writeback; -struct vm_operations_struct; +struct file_lock_context; -struct vm_area_struct { +struct cdev; + +struct fsnotify_mark_connector; + +struct inode { + umode_t i_mode; + unsigned short i_opflags; + kuid_t i_uid; + kgid_t i_gid; + unsigned int i_flags; + struct posix_acl *i_acl; + struct posix_acl *i_default_acl; + const struct inode_operations *i_op; + struct super_block *i_sb; + struct address_space *i_mapping; + unsigned long i_ino; union { - struct { - unsigned long vm_start; - unsigned long vm_end; - }; + const unsigned int i_nlink; + unsigned int __i_nlink; }; - struct mm_struct *vm_mm; - pgprot_t vm_page_prot; + 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; + seqcount_t i_size_seqcount; + unsigned long i_state; + struct rw_semaphore i_rwsem; + unsigned long dirtied_when; + unsigned long dirtied_time_when; + struct hlist_node i_hash; + struct list_head i_io_list; + struct bdi_writeback *i_wb; + int i_wb_frn_winner; + u16 i_wb_frn_avg_time; + u16 i_wb_frn_history; + struct list_head i_lru; + struct list_head i_sb_list; + struct list_head i_wb_list; union { - const vm_flags_t vm_flags; - vm_flags_t __vm_flags; + struct hlist_head i_dentry; + struct callback_head i_rcu; }; - 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; + long: 32; + 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; }; -typedef unsigned int vm_fault_t; +typedef int __kernel_ssize_t; -struct vm_fault; +typedef __kernel_ssize_t ssize_t; -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); +struct delayed_call; + +struct iattr; + +struct kstat; + +struct fiemap_extent_info; + +struct fileattr; + +struct offset_ctx; + +struct inode_operations { + struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int); + const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *); + int (*permission)(struct mnt_idmap *, struct inode *, int); + struct posix_acl * (*get_inode_acl)(struct inode *, int, bool); + int (*readlink)(struct dentry *, char __attribute__((btf_type_tag("user"))) *, int); + int (*create)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, bool); + int (*link)(struct dentry *, struct inode *, struct dentry *); + int (*unlink)(struct inode *, struct dentry *); + int (*symlink)(struct mnt_idmap *, struct inode *, struct dentry *, const char *); + int (*mkdir)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t); + int (*rmdir)(struct inode *, struct dentry *); + int (*mknod)(struct mnt_idmap *, struct inode *, struct dentry *, umode_t, dev_t); + int (*rename)(struct mnt_idmap *, struct inode *, struct dentry *, struct inode *, struct dentry *, unsigned int); + int (*setattr)(struct mnt_idmap *, struct dentry *, struct iattr *); + int (*getattr)(struct mnt_idmap *, const struct path *, struct kstat *, u32, unsigned int); + ssize_t (*listxattr)(struct dentry *, char *, size_t); + int (*fiemap)(struct inode *, struct fiemap_extent_info *, u64, u64); + int (*update_time)(struct inode *, int); + int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t); + int (*tmpfile)(struct mnt_idmap *, struct inode *, struct file *, umode_t); + struct posix_acl * (*get_acl)(struct mnt_idmap *, struct dentry *, int); + int (*set_acl)(struct mnt_idmap *, struct dentry *, struct posix_acl *, int); + int (*fileattr_set)(struct mnt_idmap *, struct dentry *, struct fileattr *); + int (*fileattr_get)(struct dentry *, struct fileattr *); + struct offset_ctx * (*get_offset_ctx)(struct inode *); + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -typedef pmdval_t pmd_t; +struct delayed_call { + void (*fn)(void *); + void *arg; +}; typedef struct { - pgd_t pgd; -} p4d_t; + uid_t val; +} vfsuid_t; typedef struct { - p4d_t p4d; -} pud_t; - -typedef struct page *pgtable_t; + gid_t val; +} vfsgid_t; -struct vm_fault { - struct { - struct vm_area_struct *vma; - gfp_t gfp_mask; - unsigned long pgoff; - unsigned long address; - unsigned long real_address; +struct iattr { + unsigned int ia_valid; + umode_t ia_mode; + union { + kuid_t ia_uid; + vfsuid_t ia_vfsuid; }; - enum fault_flag flags; - pmd_t *pmd; - pud_t *pud; union { - pte_t orig_pte; - pmd_t orig_pmd; + kgid_t ia_gid; + vfsgid_t ia_vfsgid; }; - struct page *cow_page; - struct page *page; - pte_t *pte; - spinlock_t *ptl; - pgtable_t prealloc_pte; + loff_t ia_size; + struct timespec64 ia_atime; + struct timespec64 ia_mtime; + struct timespec64 ia_ctime; + struct file *ia_file; + long: 32; +}; + +struct kstat { + u32 result_mask; + umode_t mode; + unsigned int nlink; + uint32_t blksize; + u64 attributes; + u64 attributes_mask; + u64 ino; + dev_t dev; + dev_t rdev; + kuid_t uid; + kgid_t gid; + loff_t size; + struct timespec64 atime; + struct timespec64 mtime; + struct timespec64 ctime; + struct timespec64 btime; + u64 blocks; + u64 mnt_id; + u32 dio_mem_align; + u32 dio_offset_align; + u64 change_cookie; +}; + +struct offset_ctx { + struct xarray xa; + u32 next_offset; +}; + +struct hlist_bl_head { + struct hlist_bl_node *first; +}; + +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; + long: 32; + qsize_t dqi_max_spc_limit; + qsize_t dqi_max_ino_limit; + void *dqi_priv; + long: 32; +}; + +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]; + long: 32; +}; + +struct rcu_sync { + int gp_state; + int gp_count; + wait_queue_head_t gp_wait; + struct callback_head cb_head; +}; + +struct rcuwait { + struct task_struct __attribute__((btf_type_tag("rcu"))) *task; +}; + +struct percpu_rw_semaphore { + struct rcu_sync rss; + unsigned int __attribute__((btf_type_tag("percpu"))) *read_count; + struct rcuwait writer; + wait_queue_head_t waiters; + atomic_t block; +}; + +struct sb_writers { + unsigned short frozen; + unsigned short freeze_holders; + struct percpu_rw_semaphore rw_sem[3]; +}; + +typedef struct { + __u8 b[16]; +} uuid_t; + +struct list_lru_node; + +struct list_lru { + struct list_lru_node *node; + struct list_head list; + int shrinker_id; + bool memcg_aware; + struct xarray xa; +}; + +struct file_system_type; + +struct super_operations; + +struct dquot_operations; + +struct quotactl_ops; + +struct export_operations; + +struct xattr_handler; + +struct block_device; + +struct bdev_handle; + +struct backing_dev_info; + +struct mtd_info; + +struct shrinker; + +struct workqueue_struct; + +struct super_block { + struct list_head s_list; + dev_t s_dev; + unsigned char s_blocksize_bits; + unsigned long s_blocksize; + long: 32; + loff_t s_maxbytes; + struct file_system_type *s_type; + const struct super_operations *s_op; + const struct dquot_operations *dq_op; + const struct quotactl_ops *s_qcop; + const struct export_operations *s_export_op; + unsigned long s_flags; + unsigned long s_iflags; + unsigned long s_magic; + struct dentry *s_root; + struct rw_semaphore s_umount; + int s_count; + atomic_t s_active; + const struct xattr_handler * const *s_xattr; + struct hlist_bl_head s_roots; + struct list_head s_mounts; + struct block_device *s_bdev; + struct bdev_handle *s_bdev_handle; + 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; + 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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + spinlock_t s_inode_list_lock; + struct list_head s_inodes; + spinlock_t s_inode_wblist_lock; + struct list_head s_inodes_wb; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; + +struct fs_context; + +struct fs_parameter_spec; + +struct module; + +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 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 module_kobject { + struct kobject kobj; + struct module *mod; + struct kobject *drivers_dir; + struct module_param_attrs *mp; + struct completion *kobj_completion; +}; + +struct latch_tree_node { + struct rb_node node[2]; +}; + +struct mod_tree_node { + struct module *mod; + struct latch_tree_node node; +}; + +struct module_memory { + void *base; + unsigned int size; + struct mod_tree_node mtn; +}; + +struct elf32_shdr; + +struct plt_entries; + +struct mod_plt_sec { + struct elf32_shdr *plt; + struct plt_entries *plt_ent; + int plt_count; +}; + +struct unwind_table; + +struct mod_arch_specific { + struct list_head unwind_list; + struct unwind_table *init_table; + struct mod_plt_sec core; + struct mod_plt_sec init; +}; + +struct elf32_sym; + +typedef struct elf32_sym Elf32_Sym; + +struct mod_kallsyms { + Elf32_Sym *symtab; + unsigned int num_symtab; + char *strtab; + char *typetab; +}; + +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 tracepoint; + +typedef struct tracepoint * const tracepoint_ptr_t; + +struct srcu_struct; + +struct bpf_raw_event_map; + +struct trace_event_call; + +struct trace_eval_map; + +struct error_injection_entry; + +struct module { + enum module_state state; + struct list_head list; + char name[60]; + struct module_kobject mkobj; + struct module_attribute *modinfo_attrs; + const char *version; + const char *srcversion; + struct kobject *holders_dir; + const struct kernel_symbol *syms; + const s32 *crcs; + unsigned int num_syms; + struct mutex param_lock; + struct kernel_param *kp; + unsigned int num_kp; + unsigned int num_gpl_syms; + const struct kernel_symbol *gpl_syms; + const s32 *gpl_crcs; + bool using_gplonly_symbols; + bool async_probe_requested; + unsigned int num_exentries; + struct exception_table_entry *extable; + int (*init)(); + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct module_memory mem[7]; + struct mod_arch_specific arch; + unsigned long taints; + unsigned int num_bugs; + struct list_head bug_list; + struct bug_entry *bug_table; + struct mod_kallsyms __attribute__((btf_type_tag("rcu"))) *kallsyms; + struct mod_kallsyms core_kallsyms; + struct module_sect_attrs *sect_attrs; + struct module_notes_attrs *notes_attrs; + char *args; + void __attribute__((btf_type_tag("percpu"))) *percpu; + unsigned int percpu_size; + void *noinstr_text_start; + unsigned int noinstr_text_size; + unsigned int num_tracepoints; + tracepoint_ptr_t *tracepoints_ptrs; + unsigned int num_srcu_structs; + struct srcu_struct **srcu_struct_ptrs; + unsigned int num_bpf_raw_events; + struct bpf_raw_event_map *bpf_raw_events; + unsigned int btf_data_size; + void *btf_data; + 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; + 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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; + +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; +}; + +struct sysfs_ops; + +struct attribute_group; + +struct kobj_ns_type_operations; + +struct kobj_type { + void (*release)(struct kobject *); + const struct sysfs_ops *sysfs_ops; + const struct attribute_group **default_groups; + const struct kobj_ns_type_operations * (*child_ns_type)(const struct kobject *); + const void * (*namespace)(const struct kobject *); + void (*get_ownership)(const struct kobject *, kuid_t *, kgid_t *); +}; + +struct attribute; + +struct sysfs_ops { + ssize_t (*show)(struct kobject *, struct attribute *, char *); + ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); +}; + +struct attribute { + const char *name; + umode_t mode; +}; + +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; +}; + +struct vm_area_struct; + +struct bin_attribute { + struct attribute attr; + size_t size; + void *private; + struct address_space * (*f_mapping)(); + ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); + ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); + loff_t (*llseek)(struct file *, struct kobject *, struct bin_attribute *, loff_t, int); + int (*mmap)(struct file *, struct kobject *, struct bin_attribute *, struct vm_area_struct *); +}; + +typedef u64 sector_t; + +struct writeback_control; + +struct folio; + +struct readahead_control; + +struct kiocb; + +struct iov_iter; + +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 page_pool; @@ -2597,24 +2457,11 @@ struct page { 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; - }; + 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; @@ -2626,6 +2473,7 @@ struct page { unsigned int page_type; }; atomic_t _refcount; + unsigned long memcg_data; }; struct range { @@ -2692,524 +2540,107 @@ struct percpu_ref_data { struct percpu_ref *ref; }; +typedef unsigned int vm_fault_t; + +struct vm_fault; + struct dev_pagemap_ops { void (*page_free)(struct page *); vm_fault_t (*migrate_to_ram)(struct vm_fault *); int (*memory_failure)(struct dev_pagemap *, unsigned long, unsigned long, int); }; -struct mm_cid { - u64 time; - int cid; - long: 32; -}; - -struct kioctx; - -struct kioctx_table { - struct callback_head rcu; - unsigned int nr; - struct kioctx __attribute__((btf_type_tag("rcu"))) *table[0]; -}; +typedef pmdval_t pmd_t; -typedef long long __kernel_time64_t; +typedef struct { + pgd_t pgd; +} p4d_t; -struct __kernel_timespec { - __kernel_time64_t tv_sec; - long long tv_nsec; -}; +typedef struct { + p4d_t p4d; +} pud_t; -typedef s32 old_time32_t; +typedef struct page *pgtable_t; -struct old_timespec32 { - old_time32_t tv_sec; - s32 tv_nsec; -}; - -struct pollfd { - int fd; - short events; - short revents; -}; - -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; - -typedef unsigned long __kernel_ulong_t; - -struct rlimit { - __kernel_ulong_t rlim_cur; - __kernel_ulong_t rlim_max; -}; - -struct core_state; - -struct tty_struct; - -struct signal_struct { - refcount_t sigcnt; - atomic_t live; - int nr_threads; - int quick_threads; - struct list_head thread_head; - wait_queue_head_t wait_chldexit; - struct task_struct *curr_target; - struct sigpending shared_pending; - struct hlist_head multiprocess; - int group_exit_code; - int notify_count; - struct task_struct *group_exec_task; - int group_stop_count; - unsigned int flags; - struct core_state *core_state; - unsigned int is_child_subreaper: 1; - unsigned int has_child_subreaper: 1; - unsigned int next_posix_timer_id; - struct list_head posix_timers; - long: 32; - 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; - long: 32; - 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]; - 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; -}; - -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_cq; - -struct io_context { - atomic_long_t refcount; - atomic_t active_ref; - unsigned short ioprio; - spinlock_t lock; - struct xarray icq_tree; - struct io_cq __attribute__((btf_type_tag("rcu"))) *icq_hint; - struct hlist_head icq_list; - struct work_struct release_work; -}; - -struct request_queue; - -struct kmem_cache; - -struct io_cq { - struct request_queue *q; - struct io_context *ioc; - union { - struct list_head q_node; - struct kmem_cache *__rcu_icq_cache; +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 { - struct hlist_node ioc_node; - struct callback_head __rcu_head; - }; - unsigned int flags; -}; - -typedef int __kernel_timer_t; - -union sigval { - int sival_int; - void __attribute__((btf_type_tag("user"))) *sival_ptr; -}; - -typedef union sigval sigval_t; - -typedef long __kernel_long_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[4]; - void __attribute__((btf_type_tag("user"))) *_lower; - void __attribute__((btf_type_tag("user"))) *_upper; - } _addr_bnd; - struct { - char _dummy_pkey[4]; - __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; + 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 cgroup_subsys_state; - -struct cgroup; - -struct css_set { - struct cgroup_subsys_state *subsys[0]; - 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[0]; - 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 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 unsigned long vm_flags_t; -struct rseq { - __u32 cpu_id_start; - __u32 cpu_id; - __u64 rseq_cs; - __u32 flags; - __u32 node_id; - __u32 mm_cid; - char end[0]; - long: 32; -}; +typedef pteval_t pgprot_t; -struct arch_uprobe_task { - u32 backup; - unsigned long saved_trap_no; -}; +struct vm_userfaultfd_ctx {}; -struct uprobe; +struct anon_vma; -struct return_instance; +struct vm_operations_struct; -struct uprobe_task { - enum uprobe_task_state state; +struct vm_area_struct { union { struct { - struct arch_uprobe_task autask; - unsigned long vaddr; - }; - struct { - struct callback_head dup_xol_work; - unsigned long dup_xol_addr; + unsigned long vm_start; + unsigned long vm_end; }; }; - 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; -}; - -typedef u32 phys_addr_t; - -struct vm_struct { - struct vm_struct *next; - void *addr; - unsigned long size; - unsigned long flags; - struct page **pages; - unsigned int nr_pages; - phys_addr_t phys_addr; - const void *caller; -}; - -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; -}; - -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; + struct mm_struct *vm_mm; + pgprot_t vm_page_prot; union { - fsnotify_connp_t *obj; - struct fsnotify_mark_connector *destroy_next; + const vm_flags_t vm_flags; + vm_flags_t __vm_flags; }; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; + 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; }; -struct delayed_call { - void (*fn)(void *); - void *arg; +struct vm_operations_struct { + void (*open)(struct vm_area_struct *); + void (*close)(struct vm_area_struct *); + int (*may_split)(struct vm_area_struct *, unsigned long); + int (*mremap)(struct vm_area_struct *); + int (*mprotect)(struct vm_area_struct *, unsigned long, unsigned long, unsigned long); + vm_fault_t (*fault)(struct vm_fault *); + vm_fault_t (*huge_fault)(struct vm_fault *, unsigned int); + vm_fault_t (*map_pages)(struct vm_fault *, unsigned long, unsigned long); + unsigned long (*pagesize)(struct vm_area_struct *); + vm_fault_t (*page_mkwrite)(struct vm_fault *); + vm_fault_t (*pfn_mkwrite)(struct vm_fault *); + int (*access)(struct vm_area_struct *, unsigned long, void *, int, int); + const char * (*name)(struct vm_area_struct *); + struct page * (*find_special_page)(struct vm_area_struct *, unsigned long); }; 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; - long: 32; -}; - -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; - -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 *); -}; + unsigned long val; +} swp_entry_t; struct folio { union { @@ -3224,9 +2655,13 @@ struct folio { }; struct address_space *mapping; unsigned long index; - void *private; + union { + void *private; + swp_entry_t swap; + }; atomic_t _mapcount; atomic_t _refcount; + unsigned long memcg_data; }; struct page page; }; @@ -3234,8 +2669,7 @@ struct folio { struct { unsigned long _flags_1; unsigned long _head_1; - unsigned char _folio_dtor; - unsigned char _folio_order; + unsigned long _folio_avail; atomic_t _entire_mapcount; atomic_t _nr_pages_mapped; atomic_t _pincount; @@ -3260,6 +2694,68 @@ struct folio { }; }; +struct wait_page_queue; + +struct kiocb { + struct file *ki_filp; + long: 32; + loff_t ki_pos; + void (*ki_complete)(struct kiocb *, long); + void *private; + int ki_flags; + u16 ki_ioprio; + union { + struct wait_page_queue *ki_waitq; + ssize_t (*dio_complete)(void *); + }; + long: 32; +}; + +struct iovec { + void __attribute__((btf_type_tag("user"))) *iov_base; + __kernel_size_t iov_len; +}; + +struct kvec; + +struct bio_vec; + +struct iov_iter { + u8 iter_type; + bool copy_mc; + bool nofault; + bool data_source; + size_t iov_offset; + union { + struct iovec __ubuf_iovec; + struct { + union { + const struct iovec *__iov; + const struct kvec *kvec; + const struct bio_vec *bvec; + struct xarray *xarray; + void __attribute__((btf_type_tag("user"))) *ubuf; + }; + size_t count; + }; + }; + union { + unsigned long nr_segs; + loff_t xarray_start; + }; +}; + +struct kvec { + void *iov_base; + size_t iov_len; +}; + +struct bio_vec { + struct page *bv_page; + unsigned int bv_len; + unsigned int bv_offset; +}; + struct sock; struct kobj_ns_type_operations { @@ -3320,8 +2816,12 @@ struct kernfs_node { struct kernfs_iattrs *iattr; }; +typedef unsigned int __poll_t; + struct kernfs_open_file; +struct poll_table_struct; + struct kernfs_ops { int (*open)(struct kernfs_open_file *); void (*release)(struct kernfs_open_file *); @@ -3335,6 +2835,7 @@ struct kernfs_ops { ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t); __poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *); int (*mmap)(struct kernfs_open_file *, struct vm_area_struct *); + loff_t (*llseek)(struct kernfs_open_file *, loff_t, int); }; struct kernfs_open_file { @@ -3426,6 +2927,27 @@ struct exception_table_entry { unsigned long fixup; }; +struct unwind_idx; + +struct unwind_table { + struct list_head list; + struct list_head mod_list; + const struct unwind_idx *start; + const struct unwind_idx *origin; + const struct unwind_idx *stop; + unsigned long begin_addr; + unsigned long end_addr; +}; + +struct unwind_idx { + unsigned long addr_offset; + unsigned long insn; +}; + +typedef __u32 Elf32_Word; + +typedef __u32 Elf32_Addr; + typedef __u32 Elf32_Off; struct elf32_shdr { @@ -3453,6 +2975,17 @@ struct bug_entry { unsigned short flags; }; +typedef __u16 Elf32_Half; + +struct elf32_sym { + Elf32_Word st_name; + Elf32_Addr st_value; + Elf32_Word st_size; + unsigned char st_info; + unsigned char st_other; + Elf32_Half st_shndx; +}; + struct static_key { atomic_t enabled; }; @@ -3609,217 +3142,1102 @@ struct error_injection_entry { int etype; }; -typedef struct elf32_shdr Elf32_Shdr; +struct kstatfs; -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; -}; +struct shrink_control; -typedef struct elf32_hdr Elf32_Ehdr; +struct super_operations { + struct inode * (*alloc_inode)(struct super_block *); + void (*destroy_inode)(struct inode *); + void (*free_inode)(struct inode *); + void (*dirty_inode)(struct inode *, int); + int (*write_inode)(struct inode *, struct writeback_control *); + int (*drop_inode)(struct inode *); + void (*evict_inode)(struct inode *); + void (*put_super)(struct super_block *); + int (*sync_fs)(struct super_block *, int); + int (*freeze_super)(struct super_block *, enum freeze_holder); + int (*freeze_fs)(struct super_block *); + int (*thaw_super)(struct super_block *, enum freeze_holder); + int (*unfreeze_fs)(struct super_block *); + int (*statfs)(struct dentry *, struct kstatfs *); + int (*remount_fs)(struct super_block *, int *, char *); + void (*umount_begin)(struct super_block *); + int (*show_options)(struct seq_file *, struct dentry *); + int (*show_devname)(struct seq_file *, struct dentry *); + int (*show_path)(struct seq_file *, struct dentry *); + int (*show_stats)(struct seq_file *, struct dentry *); + long (*nr_cached_objects)(struct super_block *, struct shrink_control *); + long (*free_cached_objects)(struct super_block *, struct shrink_control *); + void (*shutdown)(struct super_block *); +}; -struct elf32_rel { - Elf32_Addr r_offset; - Elf32_Word r_info; +struct shrink_control { + gfp_t gfp_mask; + int nid; + unsigned long nr_to_scan; + unsigned long nr_scanned; + struct mem_cgroup *memcg; }; -typedef struct elf32_rel Elf32_Rel; +typedef __kernel_uid32_t projid_t; -enum mod_mem_type { - MOD_TEXT = 0, - MOD_DATA = 1, - MOD_RODATA = 2, - MOD_RO_AFTER_INIT = 3, - MOD_INIT_TEXT = 4, - MOD_INIT_DATA = 5, - MOD_INIT_RODATA = 6, - MOD_MEM_NUM_TYPES = 7, - MOD_INVALID = -1, -}; +typedef struct { + projid_t val; +} kprojid_t; -struct idr { - struct xarray idr_rt; - unsigned int idr_base; - unsigned int idr_next; -}; +struct dquot; -struct proc_ns_operations; +struct kqid; -struct ns_common { - atomic_long_t stashed; - const struct proc_ns_operations *ops; - unsigned int inum; - refcount_t count; +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 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 user_namespace *user_ns; - struct ucounts *ucounts; - int reboot; - struct ns_common ns; - int memfd_noexec_scope; +struct kqid { + union { + kuid_t uid; + kgid_t gid; + kprojid_t projid; + }; + enum quota_type type; }; -struct nsset; +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 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 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; + long: 32; + struct mem_dqblk dq_dqb; }; -struct uts_namespace; +struct qc_info; -struct ipc_namespace; +struct qc_dqblk; -struct mnt_namespace; +struct qc_state; -struct net; +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 time_namespace; +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 cgroup_namespace; +struct qc_dqblk { + int d_fieldmask; + long: 32; + 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; + long: 32; +}; -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 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; + long: 32; + unsigned long long ino; + blkcnt_t blocks; + blkcnt_t nextents; }; -struct ftrace_ret_stack { - unsigned long ret; - unsigned long func; - unsigned long long calltime; - unsigned long long subtime; - unsigned long fp; +struct qc_state { + unsigned int s_incoredqs; long: 32; + struct qc_type_state s_state[3]; }; -typedef int (*cmp_func_t)(const void *, const void *); +struct fid; -typedef void (*swap_func_t)(void *, void *, int); +struct iomap; -struct pci_dev; +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 pci_fixup { - u16 vendor; - u16 device; - u32 class; - unsigned int class_shift; - void (*hook)(struct pci_dev *); +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 device_dma_parameters { - unsigned int max_segment_size; - unsigned int min_align_mask; - unsigned long segment_boundary_mask; +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; }; -typedef int pci_power_t; +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 unsigned int pci_channel_state_t; +typedef struct { + int val[2]; +} __kernel_fsid_t; -enum dl_dev_state { - DL_DEV_NO_DRIVER = 0, - DL_DEV_PROBING = 1, - DL_DEV_DRIVER_BOUND = 2, - DL_DEV_UNBINDING = 3, -}; +typedef struct fsnotify_mark_connector __attribute__((btf_type_tag("rcu"))) *fsnotify_connp_t; -struct dev_links_info { - struct list_head suppliers; - struct list_head consumers; - struct list_head defer_sync; - enum dl_dev_state status; +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 pm_message { - int event; +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: 32; + long: 32; + long: 32; }; -typedef struct pm_message pm_message_t; +struct shrinker { + unsigned long (*count_objects)(struct shrinker *, struct shrink_control *); + unsigned long (*scan_objects)(struct shrinker *, struct shrink_control *); + long batch; + int seeks; + unsigned int flags; + refcount_t refcount; + struct completion done; + struct callback_head rcu; + void *private_data; + struct list_head list; + int id; + atomic_long_t *nr_deferred; +}; -enum rpm_request { - RPM_REQ_NONE = 0, - RPM_REQ_IDLE = 1, - RPM_REQ_SUSPEND = 2, - RPM_REQ_AUTOSUSPEND = 3, - RPM_REQ_RESUME = 4, +struct list_lru_one { + struct list_head list; + long nr_items; }; -enum rpm_status { - RPM_INVALID = -1, - RPM_ACTIVE = 0, - RPM_RESUMING = 1, - RPM_SUSPENDED = 2, - RPM_SUSPENDING = 3, +struct list_lru_node { + spinlock_t lock; + struct list_lru_one lru; + long nr_items; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct wakeup_source; +typedef void *fl_owner_t; -struct wake_irq; +struct io_comp_batch; -struct pm_subsys_data; +struct dir_context; -struct device; +struct file_lock; -struct dev_pm_qos; +struct io_uring_cmd; -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; +struct file_operations { + struct module *owner; + loff_t (*llseek)(struct file *, loff_t, int); + ssize_t (*read)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + ssize_t (*write)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + ssize_t (*read_iter)(struct kiocb *, struct iov_iter *); + ssize_t (*write_iter)(struct kiocb *, struct iov_iter *); + int (*iopoll)(struct kiocb *, struct io_comp_batch *, unsigned int); + int (*iterate_shared)(struct file *, struct dir_context *); + __poll_t (*poll)(struct file *, struct poll_table_struct *); + long (*unlocked_ioctl)(struct file *, unsigned int, unsigned long); + long (*compat_ioctl)(struct file *, unsigned int, unsigned long); + int (*mmap)(struct file *, struct vm_area_struct *); + unsigned long mmap_supported_flags; + int (*open)(struct inode *, struct file *); + int (*flush)(struct file *, fl_owner_t); + int (*release)(struct inode *, struct file *); + int (*fsync)(struct file *, loff_t, loff_t, int); + int (*fasync)(int, struct file *, int); + int (*lock)(struct file *, int, struct file_lock *); + unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); + int (*check_flags)(int); + int (*flock)(struct file *, int, struct file_lock *); + ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); + ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*splice_eof)(struct file *); + int (*setlease)(struct file *, int, struct file_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); +}; + +typedef bool (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64, unsigned int); + +struct dir_context { + filldir_t actor; + long: 32; + loff_t pos; +}; + +struct mm_cid { + u64 time; + int cid; + long: 32; +}; + +struct kioctx; + +struct kioctx_table { + struct callback_head rcu; + unsigned int nr; + struct kioctx __attribute__((btf_type_tag("rcu"))) *table[0]; +}; + +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 uts_namespace; + +struct ipc_namespace; + +struct mnt_namespace; + +struct net; + +struct time_namespace; + +struct cgroup_namespace; + +struct nsproxy { + refcount_t count; + struct uts_namespace *uts_ns; + struct ipc_namespace *ipc_ns; + struct mnt_namespace *mnt_ns; + struct pid_namespace *pid_ns_for_children; + struct net *net_ns; + struct time_namespace *time_ns; + struct time_namespace *time_ns_for_children; + struct cgroup_namespace *cgroup_ns; +}; + +struct 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; + +typedef unsigned long __kernel_ulong_t; + +struct rlimit { + __kernel_ulong_t rlim_cur; + __kernel_ulong_t rlim_max; +}; + +struct core_state; + +struct tty_struct; + +struct signal_struct { + refcount_t sigcnt; + atomic_t live; + int nr_threads; + int quick_threads; + struct list_head thread_head; + wait_queue_head_t wait_chldexit; + struct task_struct *curr_target; + struct sigpending shared_pending; + struct hlist_head multiprocess; + int group_exit_code; + int notify_count; + struct task_struct *group_exec_task; + int group_stop_count; + unsigned int flags; + struct core_state *core_state; + unsigned int is_child_subreaper: 1; + unsigned int has_child_subreaper: 1; + unsigned int next_posix_timer_id; + struct list_head posix_timers; + long: 32; + 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; + long: 32; + 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]; + 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; +}; + +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_cq; + +struct io_context { + atomic_long_t refcount; + atomic_t active_ref; + unsigned short ioprio; + spinlock_t lock; + struct xarray icq_tree; + struct io_cq __attribute__((btf_type_tag("rcu"))) *icq_hint; + struct hlist_head icq_list; + struct work_struct release_work; +}; + +struct request_queue; + +struct io_cq { + struct request_queue *q; + struct io_context *ioc; + union { + struct list_head q_node; + struct kmem_cache *__rcu_icq_cache; + }; + union { + struct hlist_node ioc_node; + struct callback_head __rcu_head; + }; + unsigned int flags; +}; + +typedef int __kernel_timer_t; + +union sigval { + int sival_int; + void __attribute__((btf_type_tag("user"))) *sival_ptr; +}; + +typedef union sigval sigval_t; + +typedef long __kernel_long_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[4]; + void __attribute__((btf_type_tag("user"))) *_lower; + void __attribute__((btf_type_tag("user"))) *_upper; + } _addr_bnd; + struct { + char _dummy_pkey[4]; + __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 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 robust_list { + struct robust_list __attribute__((btf_type_tag("user"))) *next; +}; + +struct robust_list_head { + struct robust_list list; + long futex_offset; + struct robust_list __attribute__((btf_type_tag("user"))) *list_op_pending; +}; + +struct rseq { + __u32 cpu_id_start; + __u32 cpu_id; + __u64 rseq_cs; + __u32 flags; + __u32 node_id; + __u32 mm_cid; + char end[0]; + long: 32; +}; + +struct ftrace_ret_stack { + unsigned long ret; + unsigned long func; + unsigned long long calltime; + unsigned long long subtime; + unsigned long fp; + long: 32; +}; + +struct arch_uprobe_task { + u32 backup; + unsigned long saved_trap_no; +}; + +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; +}; + +typedef u32 phys_addr_t; + +struct vm_struct { + struct vm_struct *next; + void *addr; + unsigned long size; + unsigned long flags; + struct page **pages; + unsigned int nr_pages; + phys_addr_t phys_addr; + const void *caller; +}; + +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 tag; + +struct tagtable { + __u32 tag; + int (*parse)(const struct tag *); +}; + +struct tag_header { + __u32 size; + __u32 tag; +}; + +struct tag_core { + __u32 flags; + __u32 pagesize; + __u32 rootdev; +}; + +struct tag_mem32 { + __u32 size; + __u32 start; +}; + +struct tag_videotext { + __u8 x; + __u8 y; + __u16 video_page; + __u8 video_mode; + __u8 video_cols; + __u16 video_ega_bx; + __u8 video_lines; + __u8 video_isvga; + __u16 video_points; +}; + +struct tag_ramdisk { + __u32 flags; + __u32 size; + __u32 start; +}; + +struct tag_initrd { + __u32 start; + __u32 size; +}; + +struct tag_serialnr { + __u32 low; + __u32 high; +}; + +struct tag_revision { + __u32 rev; +}; + +struct tag_videolfb { + __u16 lfb_width; + __u16 lfb_height; + __u16 lfb_depth; + __u16 lfb_linelength; + __u32 lfb_base; + __u32 lfb_size; + __u8 red_size; + __u8 red_pos; + __u8 green_size; + __u8 green_pos; + __u8 blue_size; + __u8 blue_pos; + __u8 rsvd_size; + __u8 rsvd_pos; +}; + +struct tag_cmdline { + char cmdline[1]; +}; + +struct tag_acorn { + __u32 memc_control_reg; + __u32 vram_pages; + __u8 sounddefault; + __u8 adfsdrives; +}; + +struct tag_memclk { + __u32 fmemclk; +}; + +struct tag { + struct tag_header hdr; + union { + struct tag_core core; + struct tag_mem32 mem; + struct tag_videotext videotext; + struct tag_ramdisk ramdisk; + struct tag_initrd initrd; + struct tag_serialnr serialnr; + struct tag_revision revision; + struct tag_videolfb videolfb; + struct tag_cmdline cmdline; + struct tag_acorn acorn; + struct tag_memclk memclk; + } u; +}; + +enum reboot_mode { + REBOOT_UNDEFINED = -1, + REBOOT_COLD = 0, + REBOOT_WARM = 1, + REBOOT_HARD = 2, + REBOOT_SOFT = 3, + REBOOT_GPIO = 4, +}; + +struct smp_operations; + +struct machine_desc { + unsigned int nr; + const char *name; + unsigned long atag_offset; + const char * const *dt_compat; + unsigned int nr_irqs; + phys_addr_t dma_zone_size; + unsigned int video_start; + unsigned int video_end; + unsigned char reserve_lp0: 1; + unsigned char reserve_lp1: 1; + unsigned char reserve_lp2: 1; + enum reboot_mode reboot_mode; + unsigned int l2c_aux_val; + unsigned int l2c_aux_mask; + void (*l2c_write_sec)(unsigned long, unsigned int); + const struct smp_operations *smp; + bool (*smp_init)(); + void (*fixup)(struct tag *, char **); + void (*dt_fixup)(); + long long (*pv_fixup)(); + void (*reserve)(); + void (*map_io)(); + void (*init_early)(); + void (*init_irq)(); + void (*init_time)(); + void (*init_machine)(); + void (*init_late)(); + void (*restart)(enum reboot_mode, const char *); +}; + +struct smp_operations { + void (*smp_init_cpus)(); + void (*smp_prepare_cpus)(unsigned int); + void (*smp_secondary_init)(unsigned int); + int (*smp_boot_secondary)(unsigned int, struct task_struct *); + int (*cpu_kill)(unsigned int); + void (*cpu_die)(unsigned int); + bool (*cpu_can_disable)(unsigned int); + int (*cpu_disable)(unsigned int); +}; + +struct proc_ops { + unsigned int proc_flags; + int (*proc_open)(struct inode *, struct file *); + ssize_t (*proc_read)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + ssize_t (*proc_read_iter)(struct kiocb *, struct iov_iter *); + ssize_t (*proc_write)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + loff_t (*proc_lseek)(struct file *, loff_t, int); + int (*proc_release)(struct inode *, struct file *); + __poll_t (*proc_poll)(struct file *, struct poll_table_struct *); + long (*proc_ioctl)(struct file *, unsigned int, unsigned long); + int (*proc_mmap)(struct file *, struct vm_area_struct *); + unsigned long (*proc_get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); +}; + +enum kmalloc_cache_type { + KMALLOC_NORMAL = 0, + KMALLOC_RANDOM_START = 0, + KMALLOC_RANDOM_END = 0, + KMALLOC_RECLAIM = 1, + KMALLOC_DMA = 2, + KMALLOC_CGROUP = 3, + NR_KMALLOC_TYPES = 4, +}; + +struct buffer { + size_t size; + char data[0]; +}; + +struct cpuidle_ops; + +struct of_cpuidle_method { + const char *method; + const struct cpuidle_ops *ops; +}; + +struct device_node; + +struct cpuidle_ops { + int (*suspend)(unsigned long); + int (*init)(struct device_node *, int); +}; + +typedef u32 phandle; + +struct fwnode_operations; + +struct device; + +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; + struct kobject kobj; + 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 *); +}; + +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; @@ -3892,14 +4310,12 @@ struct dma_map_ops; struct bus_dma_region; +struct device_dma_parameters; + struct dma_coherent_mem; struct cma; -struct device_node; - -struct fwnode_handle; - struct class; struct iommu_group; @@ -3957,197 +4373,886 @@ struct device { long: 32; }; -typedef phys_addr_t resource_size_t; +struct fwnode_reference_args { + struct fwnode_handle *fwnode; + unsigned int nargs; + u64 args[8]; +}; -struct resource { - resource_size_t start; - resource_size_t end; - const char *name; - unsigned long flags; - unsigned long desc; - struct resource *parent; - struct resource *sibling; - struct resource *child; +struct fwnode_endpoint { + unsigned int port; + unsigned int id; + const struct fwnode_handle *local_fwnode; }; -typedef unsigned short pci_dev_flags_t; +struct property { + char *name; + int length; + void *value; + struct property *next; + unsigned long _flags; + struct bin_attribute attr; +}; -struct pci_vpd { - struct mutex lock; - unsigned int len; - u8 cap; +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 pci_bus; +struct cpuidle_state_kobj; -struct proc_dir_entry; +struct cpuidle_driver_kobj; -struct pci_slot; +struct cpuidle_device_kobj; -struct rcec_ea; +struct cpuidle_coupled; -struct pci_driver; +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; + long: 32; + 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; + cpumask_t coupled_cpus; + struct cpuidle_coupled *coupled; +}; -struct pcie_link_state; +struct cpuidle_driver; -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; +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); long: 32; - 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; - u16 acs_cap; - phys_addr_t rom; - size_t romlen; - const char *driver_override; - unsigned long priv_flags; - u8 reset_methods[7]; +}; + +struct cpuidle_driver { + const char *name; + struct module *owner; + unsigned int bctimer: 1; long: 32; + struct cpuidle_state states[10]; + int state_count; + int safe_state_index; + struct cpumask *cpumask; + const char *governor; }; -typedef unsigned short pci_bus_flags_t; +struct fiq_handler { + struct fiq_handler *next; + const char *name; + int (*fiq_op)(void *, int); + void *dev_id; +}; -struct pci_ops; +struct seq_operations; -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; - int domain_nr; - char name[48]; - unsigned short bridge_ctl; - pci_bus_flags_t bus_flags; - struct device *bridge; +struct seq_file { + char *buf; + size_t size; + size_t from; + size_t count; + size_t pad_until; long: 32; - struct device dev; - struct bin_attribute *legacy_io; - struct bin_attribute *legacy_mem; - unsigned int is_added: 1; - unsigned int unsafe_warn: 1; + loff_t index; + loff_t read_pos; + struct mutex lock; + const struct seq_operations *op; + int poll_event; + const struct file *file; + void *private; long: 32; }; -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); +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 *); +}; + +typedef struct elf32_shdr Elf32_Shdr; + +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_rel { + Elf32_Addr r_offset; + Elf32_Word r_info; +}; + +typedef struct elf32_rel Elf32_Rel; + +struct ctl_table; + +struct ctl_table_root; + +struct ctl_table_set; + +struct ctl_dir; + +struct ctl_node; + +struct ctl_table_header { + union { + struct { + struct ctl_table *ctl_table; + int ctl_table_size; + int used; + int count; + int nreg; + }; + struct callback_head rcu; + }; + struct completion *unregistering; + struct ctl_table *ctl_table_arg; + struct ctl_table_root *root; + struct ctl_table_set *set; + struct ctl_dir *parent; + struct ctl_node *node; + struct hlist_head inodes; +}; + +typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *); + +struct ctl_table_poll; + +struct ctl_table { + const char *procname; + void *data; + int maxlen; + umode_t mode; + enum { + SYSCTL_TABLE_TYPE_DEFAULT = 0, + SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY = 1, + } type; + proc_handler *proc_handler; + struct ctl_table_poll *poll; + void *extra1; + void *extra2; +}; + +struct ctl_table_poll { + atomic_t event; + wait_queue_head_t wait; +}; + +struct ctl_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 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; +}; + +typedef __u32 __le32; + +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, +}; + +enum print_line_t { + TRACE_TYPE_PARTIAL_LINE = 0, + TRACE_TYPE_HANDLED = 1, + TRACE_TYPE_UNHANDLED = 2, + TRACE_TYPE_NO_CONSUME = 3, +}; + +enum probe_type { + PROBE_DEFAULT_STRATEGY = 0, + PROBE_PREFER_ASYNCHRONOUS = 1, + PROBE_FORCE_SYNCHRONOUS = 2, +}; + +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, +}; + +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, +}; + +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, +}; + +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 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 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 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 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 event_filter; + +struct bpf_prog_array; + +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 *); +}; + +struct trace_event_fields; + +struct trace_event_class { + const char *system; + void *probe; + void *perf_probe; + int (*reg)(struct trace_event_call *, enum trace_reg, void *); + struct trace_event_fields *fields_array; + struct list_head * (*get_fields)(struct trace_event_call *); + struct list_head fields; + int (*raw_init)(struct trace_event_call *); +}; + +struct trace_event_fields { + const char *type; + union { + struct { + const char *name; + const int size; + const int align; + const int is_signed; + const int filter_type; + const int len; + }; + int (*define_fields)(struct trace_event_call *); + }; +}; + +struct trace_iterator; + +typedef enum print_line_t (*trace_print_func)(struct trace_iterator *, int, struct trace_event *); + +struct trace_event_functions { + trace_print_func trace; + trace_print_func raw; + trace_print_func hex; + trace_print_func binary; +}; + +struct seq_buf { + char *buffer; + size_t size; + size_t len; +}; + +struct trace_seq { + char buffer[4096]; + struct seq_buf seq; + size_t readpos; + int full; +}; + +typedef struct cpumask cpumask_var_t[1]; + +struct trace_array; + +struct tracer; + +struct array_buffer; + +struct ring_buffer_iter; + +struct trace_entry; + +struct trace_iterator { + struct trace_array *tr; + struct tracer *trace; + struct array_buffer *array_buffer; + void *private; + int cpu_file; + struct mutex mutex; + struct ring_buffer_iter **buffer_iter; + unsigned long iter_flags; + void *temp; + unsigned int temp_size; + char *fmt; + unsigned int fmt_size; + 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; + long: 32; +}; + +struct trace_entry { + unsigned short type; + unsigned char flags; + unsigned char preempt_count; + int pid; +}; + +struct bpf_prog; + +struct bpf_cgroup_storage; + +struct bpf_prog_array_item { + struct bpf_prog *prog; + long: 32; + 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]; +}; + +typedef struct { + atomic64_t a; +} local64_t; + +struct perf_event_attr { + __u32 type; + __u32 size; + __u64 config; + union { + __u64 sample_period; + __u64 sample_freq; + }; + __u64 sample_type; + __u64 read_format; + __u64 disabled: 1; + __u64 inherit: 1; + __u64 pinned: 1; + __u64 exclusive: 1; + __u64 exclude_user: 1; + __u64 exclude_kernel: 1; + __u64 exclude_hv: 1; + __u64 exclude_idle: 1; + __u64 mmap: 1; + __u64 comm: 1; + __u64 freq: 1; + __u64 inherit_stat: 1; + __u64 enable_on_exec: 1; + __u64 task: 1; + __u64 watermark: 1; + __u64 precise_ip: 2; + __u64 mmap_data: 1; + __u64 sample_id_all: 1; + __u64 exclude_host: 1; + __u64 exclude_guest: 1; + __u64 exclude_callchain_kernel: 1; + __u64 exclude_callchain_user: 1; + __u64 mmap2: 1; + __u64 comm_exec: 1; + __u64 use_clockid: 1; + __u64 context_switch: 1; + __u64 write_backward: 1; + __u64 namespaces: 1; + __u64 ksymbol: 1; + __u64 bpf_event: 1; + __u64 aux_output: 1; + __u64 cgroup: 1; + __u64 text_poke: 1; + __u64 build_id: 1; + __u64 inherit_thread: 1; + __u64 remove_on_exec: 1; + __u64 sigtrap: 1; + __u64 __reserved_1: 26; + union { + __u32 wakeup_events; + __u32 wakeup_watermark; + }; + __u32 bp_type; + union { + __u64 bp_addr; + __u64 kprobe_func; + __u64 uprobe_path; + __u64 config1; + }; + union { + __u64 bp_len; + __u64 kprobe_addr; + __u64 probe_offset; + __u64 config2; + }; + __u64 branch_sample_type; + __u64 sample_regs_user; + __u32 sample_stack_user; + __s32 clockid; + __u64 sample_regs_intr; + __u32 aux_watermark; + __u16 sample_max_stack; + __u16 __reserved_2; + __u32 aux_sample_size; + __u32 __reserved_3; + __u64 sig_data; + __u64 config3; +}; + +struct hw_perf_event_extra { + u64 config; + unsigned int reg; + int alloc; + int idx; + long: 32; +}; + +struct arch_hw_breakpoint_ctrl { + u32 __reserved: 9; + u32 mismatch: 1; + short: 6; + char: 3; + u32 len: 8; + u32 type: 2; + u32 privilege: 2; + u32 enabled: 1; +}; + +struct arch_hw_breakpoint { + u32 address; + u32 trigger; + struct arch_hw_breakpoint_ctrl step_ctrl; + struct arch_hw_breakpoint_ctrl ctrl; +}; + +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 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; + long: 32; + u64 conf; + u64 conf1; + }; + }; + struct task_struct *target; + void *addr_filters; + unsigned long addr_filters_gen; + int state; + local64_t prev_count; + u64 sample_period; + union { + struct { + u64 last_period; + local64_t period_left; + }; + struct { + u64 saved_metric; + u64 saved_slots; + }; + }; + u64 interrupts_seq; + u64 interrupts; + u64 freq_time_stamp; + u64 freq_count_stamp; +}; + +struct irq_work { + struct __call_single_node node; + void (*func)(struct irq_work *); + struct rcuwait irqwait; +}; + +struct perf_addr_filters_head { + struct list_head list; + raw_spinlock_t lock; + unsigned int nr_file_filters; +}; + +struct perf_sample_data; + +typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *); + +struct 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; +}; + +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 pmu; + +struct perf_event_pmu_context; + +struct perf_buffer; + +struct fasync_struct; + +struct perf_addr_filter_range; + +struct perf_cgroup; + +struct perf_event { + struct list_head event_entry; + struct list_head sibling_list; + struct list_head active_list; + struct rb_node group_node; + long: 32; + u64 group_index; + struct list_head migrate_entry; + struct hlist_node hlist_entry; + struct list_head active_entry; + int nr_siblings; + int event_caps; + int group_caps; + unsigned int group_generation; + struct perf_event *group_leader; + struct pmu *pmu; + void *pmu_private; + enum perf_event_state state; + unsigned int attach_state; + long: 32; + 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; + long: 32; + 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; + long: 32; + u64 bpf_cookie; + struct trace_event_call *tp_event; + struct event_filter *filter; + struct ftrace_ops ftrace_ops; + struct perf_cgroup *cgrp; + struct list_head sb_list; + __u32 orig_type; + long: 32; +}; + +struct perf_cpu_pmu_context; + +struct perf_output_handle; + +struct pmu { + struct list_head entry; + struct module *module; + struct device *dev; + struct device *parent; + const struct attribute_group **attr_groups; + const struct attribute_group **attr_update; + const char *name; + int type; + int capabilities; + int __attribute__((btf_type_tag("percpu"))) *pmu_disable_count; + struct perf_cpu_pmu_context __attribute__((btf_type_tag("percpu"))) *cpu_pmu_context; + atomic_t exclusive_cnt; + int task_ctx_nr; + int hrtimer_interval_ms; + unsigned int nr_addr_filters; + void (*pmu_enable)(struct pmu *); + void (*pmu_disable)(struct pmu *); + int (*event_init)(struct perf_event *); + void (*event_mapped)(struct perf_event *, struct mm_struct *); + void (*event_unmapped)(struct perf_event *, struct mm_struct *); + int (*add)(struct perf_event *, int); + void (*del)(struct perf_event *, int); + void (*start)(struct perf_event *, int); + void (*stop)(struct perf_event *, int); + void (*read)(struct perf_event *); + void (*start_txn)(struct pmu *, unsigned int); + int (*commit_txn)(struct pmu *); + void (*cancel_txn)(struct pmu *); + int (*event_idx)(struct perf_event *); + void (*sched_task)(struct perf_event_pmu_context *, bool); + struct kmem_cache *task_ctx_cache; + void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *); + void * (*setup_aux)(struct perf_event *, void **, int, bool); + void (*free_aux)(void *); + long (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, unsigned long); + int (*addr_filters_validate)(struct list_head *); + void (*addr_filters_sync)(struct perf_event *); + int (*aux_output_match)(struct perf_event *); + bool (*filter)(struct pmu *, int); + int (*check_period)(struct perf_event *, u64); }; struct dev_pm_ops; @@ -4213,12 +5318,6 @@ struct bus_type { 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; @@ -4269,6 +5368,7 @@ enum iommu_cap { IOMMU_CAP_PRE_BOOT_PROTECTION = 2, IOMMU_CAP_ENFORCE_CACHE_COHERENCY = 3, IOMMU_CAP_DEFERRED_FLUSH = 4, + IOMMU_CAP_DIRTY_TRACKING = 5, }; enum iommu_dev_features { @@ -4280,6 +5380,8 @@ typedef unsigned int ioasid_t; struct iommu_domain; +struct iommu_user_data; + struct iommu_device; struct of_phandle_args; @@ -4292,11 +5394,13 @@ struct iommu_domain_ops; struct iommu_ops { bool (*capable)(struct device *, enum iommu_cap); + void * (*hw_info)(struct device *, u32 *, u32 *); struct iommu_domain * (*domain_alloc)(unsigned int); + struct iommu_domain * (*domain_alloc_user)(struct device *, u32, struct iommu_domain *, const struct iommu_user_data *); + struct iommu_domain * (*domain_alloc_paging)(struct device *); 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 *); @@ -4309,6 +5413,9 @@ struct iommu_ops { const struct iommu_domain_ops *default_domain_ops; unsigned long pgsize_bitmap; struct module *owner; + struct iommu_domain *identity_domain; + struct iommu_domain *blocked_domain; + struct iommu_domain *default_domain; }; struct wakeup_source { @@ -4353,6 +5460,7 @@ struct dev_pm_domain { int (*activate)(struct device *); void (*sync)(struct device *); void (*dismiss)(struct device *); + int (*set_performance_state)(struct device *, unsigned int); }; typedef u32 dma_addr_t; @@ -4403,62 +5511,10 @@ struct bus_dma_region { u64 offset; }; -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; -}; - -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 device_dma_parameters { + unsigned int max_segment_size; + unsigned int min_align_mask; + unsigned long segment_boundary_mask; }; struct class { @@ -4476,28 +5532,6 @@ struct class { const struct dev_pm_ops *pm; }; -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; @@ -4506,152 +5540,179 @@ struct device_physical_location { bool lid; }; -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 perf_event_pmu_context { + struct pmu *pmu; + struct perf_event_context *ctx; + struct list_head pmu_ctx_entry; + struct list_head pinned_active; + struct list_head flexible_active; + unsigned int embedded: 1; + unsigned int nr_events; + unsigned int nr_cgroups; + atomic_t refcount; + struct callback_head callback_head; + void *task_ctx_data; + int rotate_necessary; }; -struct pci_dynids { - spinlock_t lock; - struct list_head list; +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; + long: 32; + struct hrtimer hrtimer; + ktime_t hrtimer_interval; + unsigned int hrtimer_active; + long: 32; }; -struct pci_device_id; +struct perf_event_groups { + struct rb_root tree; + long: 32; + u64 index; +}; -struct pci_error_handlers; +typedef struct { + atomic_long_t a; +} local_t; -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 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; + long: 32; + u64 time; + u64 timestamp; + u64 timeoffset; + struct perf_event_context *parent_ctx; + long: 32; + u64 parent_gen; + u64 generation; + int pin_count; + int nr_cgroups; + struct callback_head callback_head; + local_t nr_pending; + long: 32; }; -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; +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; }; -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 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; }; -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 perf_addr_filter_range { + unsigned long start; + unsigned long size; }; -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, +union perf_sample_weight { + __u64 full; + struct { + __u32 var1_dw; + __u16 var2_w; + __u16 var3_w; + }; }; -struct pci_sys_data { - struct list_head node; - int busnr; - long: 32; - u64 mem_offset; - unsigned long io_offset; - struct pci_bus *bus; - struct list_head resources; - struct resource io_res; - char io_res_name[12]; - u8 (*swizzle)(struct pci_dev *, u8 *); - int (*map_irq)(const struct pci_dev *, u8, u8); - void *private_data; +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 resource_entry { - struct list_head node; - struct resource *res; - resource_size_t offset; - struct resource __res; +struct perf_regs { + __u64 abi; + struct pt_regs *regs; + long: 32; }; -struct pci_host_bridge; +struct perf_callchain_entry; -struct hw_pci { - struct pci_ops *ops; - int nr_controllers; - void **private_data; - int (*setup)(int, struct pci_sys_data *); - int (*scan)(int, struct pci_host_bridge *); - void (*preinit)(); - void (*postinit)(); - u8 (*swizzle)(struct pci_dev *, u8 *); - int (*map_irq)(const struct pci_dev *, u8, u8); -}; +struct perf_raw_record; -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); +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; + long: 32; + 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: 32; + long: 32; + long: 32; + long: 32; long: 32; long: 32; long: 32; @@ -4660,332 +5721,300 @@ struct pci_host_bridge { long: 32; long: 32; long: 32; - unsigned long private[0]; }; -struct map_desc { - unsigned long virtual; - unsigned long pfn; - unsigned long length; - unsigned int type; +struct perf_callchain_entry { + __u64 nr; + __u64 ip[0]; }; -typedef unsigned int u_int; - -struct ctl_table; - -struct ctl_table_root; - -struct ctl_table_set; - -struct ctl_dir; - -struct ctl_node; +typedef unsigned long (*perf_copy_f)(void *, const void *, unsigned long, unsigned long); -struct ctl_table_header { +struct perf_raw_frag { union { - struct { - struct ctl_table *ctl_table; - int used; - int count; - int nreg; - }; - struct callback_head rcu; + struct perf_raw_frag *next; + unsigned long pad; }; - 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; + perf_copy_f copy; + void *data; + u32 size; }; -typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *); - -struct ctl_table_poll; - -struct ctl_table { - const char *procname; - void *data; - int maxlen; - umode_t mode; - enum { - SYSCTL_TABLE_TYPE_DEFAULT = 0, - SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY = 1, - } type; - proc_handler *proc_handler; - struct ctl_table_poll *poll; - void *extra1; - void *extra2; +struct perf_raw_record { + struct perf_raw_frag frag; + u32 size; }; -struct ctl_table_poll { - atomic_t event; - wait_queue_head_t wait; +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 ctl_dir { - struct ctl_table_header header; - struct rb_root root; +struct perf_branch_stack { + __u64 nr; + __u64 hw_idx; + struct perf_branch_entry entries[0]; }; -struct ctl_table_set { - int (*is_seen)(struct ctl_table_set *); - struct ctl_dir dir; +struct ftrace_regs { + struct pt_regs regs; }; -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 ftrace_hash { + unsigned long size_bits; + struct hlist_head *buckets; + unsigned long count; + unsigned long flags; + struct callback_head rcu; }; -struct ctl_node { - struct rb_node node; - struct ctl_table_header *header; +struct rcu_work { + struct work_struct work; + struct callback_head rcu; + struct workqueue_struct *wq; }; -typedef int (*initcall_t)(); +struct cgroup_subsys; -enum kmalloc_cache_type { - KMALLOC_NORMAL = 0, - KMALLOC_CGROUP = 0, - KMALLOC_RECLAIM = 1, - KMALLOC_DMA = 2, - NR_KMALLOC_TYPES = 3, +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; + long: 32; }; -struct mpu_rgn_info; +struct perf_cgroup_info; -struct secondary_data { - union { - struct mpu_rgn_info *mpu_rgn_info; - u64 pgdir; - }; - unsigned long swapper_pg_dir; - void *stack; - struct task_struct *task; +struct perf_cgroup { + struct cgroup_subsys_state css; + struct perf_cgroup_info __attribute__((btf_type_tag("percpu"))) *info; long: 32; }; -struct mpu_rgn { - union { - u32 drbar; - u32 prbar; - }; - union { - u32 drsr; - u32 prlar; - }; - union { - u32 dracr; - u32 unused; - }; +struct cgroup_file { + struct kernfs_node *kn; + unsigned long notified_at; + struct timer_list notify_timer; }; -struct mpu_rgn_info { - unsigned int used; - struct mpu_rgn rgns[16]; +struct task_cputime { + u64 stime; + u64 utime; + unsigned long long sum_exec_runtime; }; -struct seq_operations; - -struct seq_file { - char *buf; - size_t size; - size_t from; - size_t count; - size_t pad_until; - long: 32; - loff_t index; - loff_t read_pos; - struct mutex lock; - const struct seq_operations *op; - int poll_event; - const struct file *file; - void *private; - long: 32; +struct cgroup_base_stat { + struct task_cputime cputime; }; -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 cgroup_bpf { + struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *effective[28]; + struct hlist_head progs[28]; + u8 flags[28]; + struct list_head storages; + struct bpf_prog_array *inactive; + struct percpu_ref refcnt; + struct work_struct release_work; }; -struct trace_eval_map { - const char *system; - const char *eval_string; - unsigned long eval_value; +struct cgroup_freezer_state { + bool freeze; + int e_freeze; + int nr_frozen_descendants; + int nr_frozen_tasks; }; -typedef struct cpumask cpumask_var_t[1]; +struct cgroup_root; -struct msi_desc; +struct cgroup_rstat_cpu; -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; - unsigned int ipi_offset; +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]; + long: 32; }; -struct irq_chip; +struct cgroup_root { + struct kernfs_root *kf_root; + unsigned int subsys_mask; + int hierarchy_id; + long: 32; + 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]; + long: 32; +}; -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 u64_stats_sync { + seqcount_t seq; }; -struct irq_desc; +struct cgroup_rstat_cpu { + struct u64_stats_sync bsync; + long: 32; + struct cgroup_base_stat bstat; + struct cgroup_base_stat last_bstat; + struct cgroup_base_stat subtree_bstat; + struct cgroup_base_stat last_subtree_bstat; + struct cgroup *updated_children; + struct cgroup *updated_next; +}; -typedef void (*irq_flow_handler_t)(struct irq_desc *); +struct psi_group {}; -struct irqaction; +struct cgroup_taskset; -struct irq_affinity_notify; +struct cftype; -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; - 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; +struct cgroup_subsys { + struct cgroup_subsys_state * (*css_alloc)(struct cgroup_subsys_state *); + int (*css_online)(struct cgroup_subsys_state *); + void (*css_offline)(struct cgroup_subsys_state *); + void (*css_released)(struct cgroup_subsys_state *); + void (*css_free)(struct cgroup_subsys_state *); + void (*css_reset)(struct cgroup_subsys_state *); + void (*css_rstat_flush)(struct cgroup_subsys_state *, int); + int (*css_extra_stat_show)(struct seq_file *, struct cgroup_subsys_state *); + int (*css_local_stat_show)(struct seq_file *, struct cgroup_subsys_state *); + int (*can_attach)(struct cgroup_taskset *); + void (*cancel_attach)(struct cgroup_taskset *); + void (*attach)(struct cgroup_taskset *); + void (*post_attach)(); + int (*can_fork)(struct task_struct *, struct css_set *); + void (*cancel_fork)(struct task_struct *, struct css_set *); + void (*fork)(struct task_struct *); + void (*exit)(struct task_struct *); + void (*release)(struct task_struct *); + void (*bind)(struct cgroup_subsys_state *); + bool early_init: 1; + bool implicit_on_dfl: 1; + bool threaded: 1; + int id; const char *name; - struct hlist_node resend_node; - long: 32; + 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; }; -enum irqchip_irq_state { - IRQCHIP_STATE_PENDING = 0, - IRQCHIP_STATE_ACTIVE = 1, - IRQCHIP_STATE_MASKED = 2, - IRQCHIP_STATE_LINE_LEVEL = 3, +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 msi_msg; - -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 perf_cgroup_info { + u64 time; + u64 timestamp; + u64 timeoffset; + int active; + long: 32; }; -enum irqreturn { - IRQ_NONE = 0, - IRQ_HANDLED = 1, - IRQ_WAKE_THREAD = 2, +struct trace_eval_map { + const char *system; + const char *eval_string; + unsigned long eval_value; }; -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: 32; - long: 32; - long: 32; +struct cgroup_namespace { + struct ns_common ns; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct css_set *root_cset; }; -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 *); -}; +typedef phys_addr_t resource_size_t; -struct smp_operations { - void (*smp_init_cpus)(); - void (*smp_prepare_cpus)(unsigned int); - void (*smp_secondary_init)(unsigned int); - int (*smp_boot_secondary)(unsigned int, struct task_struct *); - int (*cpu_kill)(unsigned int); - void (*cpu_die)(unsigned int); - bool (*cpu_can_disable)(unsigned int); - int (*cpu_disable)(unsigned int); +struct of_dev_auxdata { + char *compatible; + resource_size_t phys_addr; + char *name; + void *platform_data; }; struct notifier_block; @@ -4998,6 +6027,13 @@ struct notifier_block { int priority; }; +enum { + COHERENCY_FABRIC_TYPE_NONE = 0, + COHERENCY_FABRIC_TYPE_ARMADA_370_XP = 1, + COHERENCY_FABRIC_TYPE_ARMADA_375 = 2, + COHERENCY_FABRIC_TYPE_ARMADA_380 = 3, +}; + enum cpuhp_state { CPUHP_INVALID = -1, CPUHP_OFFLINE = 0, @@ -5031,84 +6067,84 @@ enum cpuhp_state { 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_BP_KICK_AP = 93, - CPUHP_BRINGUP_CPU = 94, - CPUHP_AP_IDLE_DEAD = 95, - CPUHP_AP_OFFLINE = 96, - CPUHP_AP_CACHECTRL_STARTING = 97, - CPUHP_AP_SCHED_STARTING = 98, - CPUHP_AP_RCUTREE_DYING = 99, - CPUHP_AP_CPU_PM_STARTING = 100, - CPUHP_AP_IRQ_GIC_STARTING = 101, - CPUHP_AP_IRQ_HIP04_STARTING = 102, - CPUHP_AP_IRQ_APPLE_AIC_STARTING = 103, - CPUHP_AP_IRQ_ARMADA_XP_STARTING = 104, - CPUHP_AP_IRQ_BCM2836_STARTING = 105, - CPUHP_AP_IRQ_MIPS_GIC_STARTING = 106, - CPUHP_AP_IRQ_RISCV_STARTING = 107, - CPUHP_AP_IRQ_LOONGARCH_STARTING = 108, - CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 109, - CPUHP_AP_ARM_MVEBU_COHERENCY = 110, - CPUHP_AP_MICROCODE_LOADER = 111, - CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 112, - CPUHP_AP_PERF_X86_STARTING = 113, - CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 114, - CPUHP_AP_PERF_X86_CQM_STARTING = 115, - CPUHP_AP_PERF_X86_CSTATE_STARTING = 116, - CPUHP_AP_PERF_XTENSA_STARTING = 117, - CPUHP_AP_MIPS_OP_LOONGSON3_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_PERCPU_CNT_DEAD = 31, + CPUHP_RADIX_DEAD = 32, + CPUHP_PAGE_ALLOC = 33, + CPUHP_NET_DEV_DEAD = 34, + CPUHP_PCI_XGENE_DEAD = 35, + CPUHP_IOMMU_IOVA_DEAD = 36, + CPUHP_LUSTRE_CFS_DEAD = 37, + CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 38, + CPUHP_PADATA_DEAD = 39, + CPUHP_AP_DTPM_CPU_DEAD = 40, + CPUHP_RANDOM_PREPARE = 41, + CPUHP_WORKQUEUE_PREP = 42, + CPUHP_POWER_NUMA_PREPARE = 43, + CPUHP_HRTIMERS_PREPARE = 44, + CPUHP_PROFILE_PREPARE = 45, + CPUHP_X2APIC_PREPARE = 46, + CPUHP_SMPCFD_PREPARE = 47, + CPUHP_RELAY_PREPARE = 48, + CPUHP_SLAB_PREPARE = 49, + CPUHP_MD_RAID5_PREPARE = 50, + CPUHP_RCUTREE_PREP = 51, + CPUHP_CPUIDLE_COUPLED_PREPARE = 52, + CPUHP_POWERPC_PMAC_PREPARE = 53, + CPUHP_POWERPC_MMU_CTX_PREPARE = 54, + CPUHP_XEN_PREPARE = 55, + CPUHP_XEN_EVTCHN_PREPARE = 56, + CPUHP_ARM_SHMOBILE_SCU_PREPARE = 57, + CPUHP_SH_SH3X_PREPARE = 58, + CPUHP_NET_FLOW_PREPARE = 59, + CPUHP_TOPOLOGY_PREPARE = 60, + CPUHP_NET_IUCV_PREPARE = 61, + CPUHP_ARM_BL_PREPARE = 62, + CPUHP_TRACE_RB_PREPARE = 63, + CPUHP_MM_ZS_PREPARE = 64, + CPUHP_MM_ZSWP_MEM_PREPARE = 65, + CPUHP_MM_ZSWP_POOL_PREPARE = 66, + CPUHP_KVM_PPC_BOOK3S_PREPARE = 67, + CPUHP_ZCOMP_PREPARE = 68, + CPUHP_TIMERS_PREPARE = 69, + CPUHP_MIPS_SOC_PREPARE = 70, + CPUHP_BP_PREPARE_DYN = 71, + CPUHP_BP_PREPARE_DYN_END = 91, + CPUHP_BP_KICK_AP = 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_VFP_STARTING = 118, + CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 119, + CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 120, + CPUHP_AP_PERF_ARM_ACPI_STARTING = 121, + CPUHP_AP_PERF_ARM_STARTING = 122, + CPUHP_AP_PERF_RISCV_STARTING = 123, + CPUHP_AP_ARM_L2X0_STARTING = 124, + CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 125, + CPUHP_AP_ARM_ARCH_TIMER_STARTING = 126, + CPUHP_AP_ARM_ARCH_TIMER_EVTSTRM_STARTING = 127, CPUHP_AP_ARM_GLOBAL_TIMER_STARTING = 128, CPUHP_AP_JCORE_TIMER_STARTING = 129, CPUHP_AP_ARM_TWD_STARTING = 130, @@ -5125,402 +6161,889 @@ enum cpuhp_state { 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_HYPERV_ONLINE = 153, - CPUHP_AP_KVM_ONLINE = 154, - CPUHP_AP_SCHED_WAIT_EMPTY = 155, - CPUHP_AP_SMPBOOT_THREADS = 156, - CPUHP_AP_X86_VDSO_VMA_ONLINE = 157, - CPUHP_AP_IRQ_AFFINITY_ONLINE = 158, - CPUHP_AP_BLK_MQ_ONLINE = 159, - CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 160, - CPUHP_AP_X86_INTEL_EPB_ONLINE = 161, - CPUHP_AP_PERF_ONLINE = 162, - CPUHP_AP_PERF_X86_ONLINE = 163, - CPUHP_AP_PERF_X86_UNCORE_ONLINE = 164, - CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 165, - CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 166, - CPUHP_AP_PERF_X86_RAPL_ONLINE = 167, - CPUHP_AP_PERF_X86_CQM_ONLINE = 168, - CPUHP_AP_PERF_X86_CSTATE_ONLINE = 169, - CPUHP_AP_PERF_X86_IDXD_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, + CPUHP_AP_ARM_XEN_RUNSTATE_STARTING = 144, + CPUHP_AP_ARM_CORESIGHT_STARTING = 145, + CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 146, + CPUHP_AP_ARM64_ISNDEP_STARTING = 147, + CPUHP_AP_SMPCFD_DYING = 148, + CPUHP_AP_HRTIMERS_DYING = 149, + CPUHP_AP_X86_TBOOT_DYING = 150, + CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 151, + CPUHP_AP_ONLINE = 152, + CPUHP_TEARDOWN_CPU = 153, + CPUHP_AP_ONLINE_IDLE = 154, + CPUHP_AP_HYPERV_ONLINE = 155, + CPUHP_AP_KVM_ONLINE = 156, + CPUHP_AP_SCHED_WAIT_EMPTY = 157, + CPUHP_AP_SMPBOOT_THREADS = 158, + CPUHP_AP_IRQ_AFFINITY_ONLINE = 159, + CPUHP_AP_BLK_MQ_ONLINE = 160, + CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 161, + CPUHP_AP_X86_INTEL_EPB_ONLINE = 162, + CPUHP_AP_PERF_ONLINE = 163, + CPUHP_AP_PERF_X86_ONLINE = 164, + CPUHP_AP_PERF_X86_UNCORE_ONLINE = 165, + CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 166, + CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 167, + CPUHP_AP_PERF_X86_RAPL_ONLINE = 168, + CPUHP_AP_PERF_X86_CQM_ONLINE = 169, + CPUHP_AP_PERF_X86_CSTATE_ONLINE = 170, + CPUHP_AP_PERF_X86_IDXD_ONLINE = 171, + CPUHP_AP_PERF_S390_CF_ONLINE = 172, + CPUHP_AP_PERF_S390_SF_ONLINE = 173, + CPUHP_AP_PERF_ARM_CCI_ONLINE = 174, + CPUHP_AP_PERF_ARM_CCN_ONLINE = 175, + CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 176, + CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 177, + CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 178, + CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 179, + CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 180, + CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 181, + CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 182, + CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 183, + CPUHP_AP_PERF_ARM_L2X0_ONLINE = 184, + CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 185, + CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 186, + CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 187, + CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 188, + CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 189, + CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 190, + CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 191, + CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 192, + CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 193, + CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 194, + CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 195, + CPUHP_AP_PERF_CSKY_ONLINE = 196, + CPUHP_AP_WATCHDOG_ONLINE = 197, + CPUHP_AP_WORKQUEUE_ONLINE = 198, + CPUHP_AP_RANDOM_ONLINE = 199, + CPUHP_AP_RCUTREE_ONLINE = 200, + CPUHP_AP_BASE_CACHEINFO_ONLINE = 201, + CPUHP_AP_ONLINE_DYN = 202, + CPUHP_AP_ONLINE_DYN_END = 232, + CPUHP_AP_MM_DEMOTION_ONLINE = 233, + CPUHP_AP_X86_HPET_ONLINE = 234, + CPUHP_AP_X86_KVM_CLK_ONLINE = 235, + CPUHP_AP_ACTIVE = 236, + CPUHP_ONLINE = 237, }; -enum pm_qos_type { - PM_QOS_UNITIALIZED = 0, - PM_QOS_MAX = 1, - PM_QOS_MIN = 2, +enum { + MT_UNCACHED = 4, + MT_CACHECLEAN = 5, + MT_MINICLEAN = 6, + MT_LOW_VECTORS = 7, + MT_HIGH_VECTORS = 8, + MT_MEMORY_RWX = 9, + MT_MEMORY_RW = 10, + MT_MEMORY_RO = 11, + MT_ROM = 12, + MT_MEMORY_RWX_NONCACHED = 13, + MT_MEMORY_RW_DTCM = 14, + MT_MEMORY_RWX_ITCM = 15, + MT_MEMORY_RW_SO = 16, + MT_MEMORY_DMA_READY = 17, }; -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, +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, }; -enum freq_qos_req_type { - FREQ_QOS_MIN = 1, - FREQ_QOS_MAX = 2, +struct sg_table { + struct scatterlist *sgl; + unsigned int nents; + unsigned int orig_nents; }; -enum ipi_msg_type { - IPI_WAKEUP = 0, - IPI_TIMER = 1, - IPI_RESCHEDULE = 2, - IPI_CALL_FUNC = 3, - IPI_CPU_STOP = 4, - IPI_IRQ_WORK = 5, - IPI_COMPLETION = 6, - NR_IPI = 7, - IPI_CPU_BACKTRACE = 7, - MAX_IPI = 8, +struct scatterlist { + unsigned long page_link; + unsigned int offset; + unsigned int length; + dma_addr_t dma_address; + unsigned int dma_length; }; -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 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; }; -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, +struct sysc_regbits { + s8 midle_shift; + s8 clkact_shift; + s8 sidle_shift; + s8 enwkup_shift; + s8 srst_shift; + s8 autoidle_shift; + s8 dmadisable_shift; + s8 emufree_shift; }; -enum cpufreq_table_sorting { - CPUFREQ_TABLE_UNSORTED = 0, - CPUFREQ_TABLE_SORTED_ASCENDING = 1, - CPUFREQ_TABLE_SORTED_DESCENDING = 2, +struct omap_dss_dispc_dev_attr { + u8 manager_count; + bool has_framedonetv_irq; }; -struct cpu { - int node_id; - int hotpluggable; - struct device dev; +enum writeback_sync_modes { + WB_SYNC_NONE = 0, + WB_SYNC_ALL = 1, }; -struct cpuinfo_arm { - struct cpu cpu; - u32 cpuid; - unsigned int loops_per_jiffy; +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 plist_head { - struct list_head node_list; +enum zone_type { + ZONE_DMA = 0, + ZONE_NORMAL = 1, + ZONE_HIGHMEM = 2, + ZONE_MOVABLE = 3, + __MAX_NR_ZONES = 4, }; -struct blocking_notifier_head; - -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; +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, }; -struct blocking_notifier_head { - struct rw_semaphore rwsem; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +enum irqchip_irq_state { + IRQCHIP_STATE_PENDING = 0, + IRQCHIP_STATE_ACTIVE = 1, + IRQCHIP_STATE_MASKED = 2, + IRQCHIP_STATE_LINE_LEVEL = 3, }; -struct freq_constraints { - struct pm_qos_constraints min_freq; - struct blocking_notifier_head min_freq_notifiers; - struct pm_qos_constraints max_freq; - struct blocking_notifier_head max_freq_notifiers; +enum irq_gc_flags { + IRQ_GC_INIT_MASK_CACHE = 1, + IRQ_GC_INIT_NESTED_LOCK = 2, + IRQ_GC_MASK_CACHE_PER_TYPE = 4, + IRQ_GC_NO_MASK = 8, + IRQ_GC_BE_IO = 16, }; -struct pm_qos_flags { - struct list_head list; - s32 effective_flags; +enum irqreturn { + IRQ_NONE = 0, + IRQ_HANDLED = 1, + IRQ_WAKE_THREAD = 2, }; -struct dev_pm_qos_request; +typedef short __s16; -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; -}; +typedef __s16 s16; -struct pm_qos_flags_request { - struct list_head node; - s32 flags; +struct omap_hwmod_omap2_prcm { + s16 module_offs; + u8 idlest_reg_id; + u8 idlest_idle_bit; }; -struct freq_qos_request { - enum freq_qos_req_type type; - struct plist_node pnode; - struct freq_constraints *qos; +struct omap_hwmod_omap4_prcm { + u16 clkctrl_offs; + u16 rstctrl_offs; + u16 rstst_offs; + u16 context_offs; + u32 lostcontext_mask; + u8 submodule_wkdep_bit; + u8 modulemode; + u8 flags; + int context_lost_counter; }; -struct dev_pm_qos_request { - enum dev_pm_qos_req_type type; - union { - struct plist_node pnode; - struct pm_qos_flags_request flr; - struct freq_qos_request freq; - } data; - struct device *dev; -}; +struct omap_hwmod_class; -typedef u32 phandle; +struct omap_device; -struct property; +struct omap_hwmod_rst_info; -struct device_node { +struct clk; + +struct omap_hwmod_opt_clk; + +struct clockdomain; + +struct omap_hwmod_ocp_if; + +struct omap_hwmod { 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; - struct kobject kobj; - unsigned long _flags; - void *data; + struct omap_hwmod_class *class; + struct omap_device *od; + struct omap_hwmod_rst_info *rst_lines; + union { + struct omap_hwmod_omap2_prcm omap2; + struct omap_hwmod_omap4_prcm omap4; + } prcm; + const char *main_clk; + struct clk *_clk; + struct omap_hwmod_opt_clk *opt_clks; + const char *clkdm_name; + struct clockdomain *clkdm; + struct list_head slave_ports; + void *dev_attr; + u32 _sysc_cache; + void *_mpu_rt_va; + spinlock_t _lock; + struct lock_class_key hwmod_key; + struct list_head node; + struct omap_hwmod_ocp_if *_mpu_port; + u32 flags; + u8 mpu_rt_idx; + u8 response_lat; + u8 rst_lines_cnt; + u8 opt_clks_cnt; + u8 slaves_cnt; + u8 hwmods_cnt; + u8 _int_flags; + u8 _state; + u8 _postsetup_state; + struct omap_hwmod *parent_hwmod; }; -struct property { - char *name; - int length; - void *value; - struct property *next; - unsigned long _flags; - struct bin_attribute attr; -}; +struct omap_hwmod_class_sysconfig; -struct pt_regs { - unsigned long uregs[18]; +struct omap_hwmod_class { + const char *name; + struct omap_hwmod_class_sysconfig *sysc; + int (*pre_shutdown)(struct omap_hwmod *); + int (*reset)(struct omap_hwmod *); + void (*lock)(struct omap_hwmod *); + void (*unlock)(struct omap_hwmod *); }; -typedef unsigned long uintptr_t; - -typedef u64 uint64_t; +struct omap_hwmod_class_sysconfig { + s32 rev_offs; + s32 sysc_offs; + s32 syss_offs; + u16 sysc_flags; + struct sysc_regbits *sysc_fields; + u8 srst_udelay; + u8 idlemodes; +}; -struct cpufreq_policy; +struct platform_device; -struct cpufreq_freqs { - struct cpufreq_policy *policy; - unsigned int old; - unsigned int new; +struct omap_device { + struct platform_device *pdev; + struct omap_hwmod **hwmods; + unsigned long _driver_status; + u8 hwmods_cnt; + u8 _state; u8 flags; }; -struct cpufreq_cpuinfo { - unsigned int max_freq; - unsigned int min_freq; - unsigned int transition_latency; +struct pdev_archdata { + struct omap_device *od; }; -struct clk; +struct platform_device_id; -struct cpufreq_governor; +struct mfd_cell; -struct cpufreq_frequency_table; +struct platform_device { + const char *name; + int id; + bool id_auto; + long: 32; + 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; + long: 32; +}; -struct cpufreq_stats; +struct swap_iocb; -struct thermal_cooling_device; +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; + struct swap_iocb **swap_plug; + struct bdi_writeback *wb; + struct inode *inode; + int wb_id; + int wb_lcand_id; + int wb_tcand_id; + size_t wb_bytes; + size_t wb_lcand_bytes; + size_t wb_tcand_bytes; + long: 32; +}; -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 fprop_local_percpu { + struct percpu_counter events; + unsigned int period; + raw_spinlock_t lock; }; -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 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; + long: 32; + 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; + long: 32; + 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 percpu_ref refcnt; + struct fprop_local_percpu memcg_completions; + struct cgroup_subsys_state *memcg_css; + struct cgroup_subsys_state *blkcg_css; + struct list_head memcg_node; + struct list_head blkcg_node; + struct list_head b_attached; + struct list_head offline_node; + union { + struct work_struct release_work; + struct callback_head rcu; + }; }; -struct cpufreq_frequency_table { +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; + long: 32; + struct bdi_writeback wb; + struct list_head wb_list; + struct xarray cgwb_tree; + struct mutex cgwb_release_mutex; + struct rw_semaphore wb_switch_rwsem; + wait_queue_head_t wb_waitq; + struct device *dev; + char dev_name[64]; + struct device *owner; + struct timer_list laptop_mode_wb_timer; + struct dentry *debug_dir; + long: 32; +}; + +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; - unsigned int driver_data; - unsigned int frequency; + void *private; + wait_queue_func_t func; + struct list_head entry; }; -struct tlb_args { - struct vm_area_struct *ta_vma; - unsigned long ta_start; - unsigned long ta_end; +typedef struct wait_queue_entry wait_queue_entry_t; + +struct wait_page_queue { + struct folio *folio; + int bit_nr; + wait_queue_entry_t wait; }; -typedef void (*smp_call_func_t)(void *); +struct bio; -typedef bool (*smp_cond_func_t)(int, void *); +struct bio_list { + struct bio *head; + struct bio *tail; +}; -typedef __u32 __le32; +typedef __u32 blk_opf_t; -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, +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; }; -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 *); +typedef unsigned int blk_qc_t; + +typedef void bio_end_io_t(struct bio *); + +struct bio_issue { + u64 value; +}; + +struct blkcg_gq; + +struct bio_set; + +struct bio { + struct bio *bi_next; + struct block_device *bi_bdev; + blk_opf_t bi_opf; + unsigned short bi_flags; + unsigned short bi_ioprio; + 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; long: 32; - 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; + struct bio_issue bi_issue; + 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 disk_stats; + +struct blk_holder_ops; + +struct partition_meta_info; + +struct block_device { + sector_t bd_start_sect; + sector_t bd_nr_sectors; + struct gendisk *bd_disk; + struct request_queue *bd_queue; + struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats; + unsigned long bd_stamp; + bool bd_read_only; + u8 bd_partno; + bool bd_write_holder; + bool bd_has_submit_bio; + dev_t bd_dev; + struct inode *bd_inode; + atomic_t bd_openers; + spinlock_t bd_size_lock; + void *bd_claiming; + void *bd_holder; + const struct blk_holder_ops *bd_holder_ops; + struct mutex bd_holder_lock; + int bd_fsfreeze_count; + int bd_holders; + struct kobject *bd_holder_dir; + struct mutex bd_fsfreeze_mutex; + struct super_block *bd_fsfreeze_sb; + struct partition_meta_info *bd_meta_info; + bool bd_ro_warned; + struct device bd_device; +}; + +struct disk_stats { + u64 nsecs[4]; + unsigned long sectors[4]; + unsigned long ios[4]; + unsigned long merges[4]; + unsigned long io_ticks; + local_t in_flight[2]; + long: 32; +}; + +struct blk_holder_ops { + void (*mark_dead)(struct block_device *, bool); + void (*sync)(struct block_device *); +}; + +typedef void *mempool_alloc_t(gfp_t, void *); + +typedef void mempool_free_t(void *, void *); + +struct mempool_s { + spinlock_t lock; + int min_nr; + int curr_nr; + void **elements; + void *pool_data; + mempool_alloc_t *alloc; + mempool_free_t *free; + wait_queue_head_t wait; +}; + +typedef struct mempool_s mempool_t; + +struct bio_alloc_cache; + +struct bio_set { + struct kmem_cache *bio_slab; + unsigned int front_pad; + struct bio_alloc_cache __attribute__((btf_type_tag("percpu"))) *cache; + mempool_t bio_pool; + mempool_t bvec_pool; + unsigned int back_pad; + spinlock_t rescue_lock; + struct bio_list rescue_list; + struct work_struct rescue_work; + struct workqueue_struct *rescue_workqueue; + struct hlist_node cpuhp_dead; +}; + +struct bio_alloc_cache { + struct bio *free_list; + struct bio *free_list_irq; + unsigned int nr; + unsigned int nr_irq; +}; + +struct reclaim_state { + unsigned long reclaimed; +}; + +struct cacheline_padding { + char x[0]; +}; + +struct page_counter { + atomic_long_t usage; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + 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; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct cacheline_padding _pad2_; + unsigned long min; + unsigned long low; + unsigned long high; + unsigned long max; + struct page_counter *parent; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; + +struct mem_cgroup_id { + int id; + refcount_t ref; +}; + +struct vmpressure { + unsigned long scanned; + unsigned long reclaimed; + unsigned long tree_scanned; + unsigned long tree_reclaimed; + spinlock_t sr_lock; + struct list_head events; + struct mutex events_lock; + struct work_struct work; +}; + +struct mem_cgroup_threshold_ary; + +struct mem_cgroup_thresholds { + struct mem_cgroup_threshold_ary *primary; + struct mem_cgroup_threshold_ary *spare; +}; + +struct fprop_global { + struct percpu_counter events; + unsigned int period; + seqcount_t sequence; +}; + +struct wb_domain { + spinlock_t lock; + long: 32; + struct fprop_global completions; + struct timer_list period_timer; + unsigned long period_time; + unsigned long dirty_limit_tstamp; + unsigned long dirty_limit; +}; + +struct wb_completion { + atomic_t cnt; + wait_queue_head_t *waitq; +}; + +struct memcg_cgwb_frn { + u64 bdi_id; + int memcg_id; + long: 32; + u64 at; + struct wb_completion done; +}; + +struct memcg_vmstats; + +struct memcg_vmstats_percpu; + +struct mem_cgroup_per_node; + +struct mem_cgroup { + struct cgroup_subsys_state css; + struct mem_cgroup_id id; + long: 32; + long: 32; + struct page_counter memory; + union { + struct page_counter swap; + struct page_counter memsw; + }; + struct page_counter kmem; + struct page_counter tcpmem; + struct work_struct high_work; + unsigned long soft_limit; + struct vmpressure vmpressure; + bool oom_group; + bool oom_lock; + int under_oom; + int swappiness; + int oom_kill_disable; + struct cgroup_file events_file; + struct cgroup_file events_local_file; + struct cgroup_file swap_events_file; + struct mutex thresholds_lock; + struct mem_cgroup_thresholds thresholds; + struct mem_cgroup_thresholds memsw_thresholds; + struct list_head oom_notify; + unsigned long move_charge_at_immigrate; + spinlock_t move_lock; + unsigned long move_lock_flags; + long: 32; + long: 32; + long: 32; + long: 32; + struct cacheline_padding _pad1_; + struct memcg_vmstats *vmstats; + atomic_long_t memory_events[9]; + atomic_long_t memory_events_local[9]; + unsigned long socket_pressure; + bool tcpmem_active; + int tcpmem_pressure; + int kmemcg_id; + struct obj_cgroup __attribute__((btf_type_tag("rcu"))) *objcg; + struct obj_cgroup *orig_objcg; + struct list_head objcg_list; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct cacheline_padding _pad2_; + atomic_t moving_account; + struct task_struct *move_lock_task; + struct memcg_vmstats_percpu __attribute__((btf_type_tag("percpu"))) *vmstats_percpu; + struct list_head cgwb_list; + long: 32; + struct wb_domain cgwb_domain; + struct memcg_cgwb_frn cgwb_frn[4]; + struct list_head event_list; + spinlock_t event_list_lock; + struct mem_cgroup_per_node *nodeinfo[0]; + long: 32; + long: 32; + long: 32; +}; + +struct eventfd_ctx; + +struct mem_cgroup_threshold { + struct eventfd_ctx *eventfd; + unsigned long threshold; +}; + +struct mem_cgroup_threshold_ary { + int current_threshold; + unsigned int size; + struct mem_cgroup_threshold entries[0]; +}; + +struct obj_cgroup { + struct percpu_ref refcnt; + struct mem_cgroup *memcg; + atomic_t nr_charged_bytes; + union { + struct list_head list; + struct callback_head rcu; + }; +}; + +struct memcg_vmstats_percpu { + long state[48]; + unsigned long events[15]; + long state_prev[48]; + unsigned long events_prev[15]; + unsigned long nr_page_events; + unsigned long targets[2]; +}; + +struct pglist_data; + +struct lruvec { + struct list_head lists[5]; + spinlock_t lru_lock; + unsigned long anon_cost; + unsigned long file_cost; + atomic_long_t nonresident_age; + unsigned long refaults[2]; + unsigned long flags; + struct pglist_data *pgdat; +}; + +struct lruvec_stats { + long state[41]; + long state_local[41]; + long state_pending[41]; +}; + +struct mem_cgroup_reclaim_iter { + struct mem_cgroup *position; + unsigned int generation; +}; + +struct lruvec_stats_percpu; + +struct shrinker_info; + +struct mem_cgroup_per_node { + struct lruvec lruvec; + struct lruvec_stats_percpu __attribute__((btf_type_tag("percpu"))) *lruvec_stats_percpu; + struct lruvec_stats lruvec_stats; + unsigned long lru_zone_size[20]; + struct mem_cgroup_reclaim_iter iter; + struct shrinker_info __attribute__((btf_type_tag("rcu"))) *shrinker_info; + struct rb_node tree_node; + unsigned long usage_in_excess; + bool on_tree; + struct mem_cgroup *memcg; +}; + +struct free_area { + struct list_head free_list[6]; + unsigned long nr_free; +}; + +struct per_cpu_pages; + +struct per_cpu_zonestat; + +struct zone { + unsigned long _watermark[4]; + unsigned long watermark_boost; + unsigned long nr_reserved_highatomic; + long lowmem_reserve[4]; + struct pglist_data *zone_pgdat; + struct per_cpu_pages __attribute__((btf_type_tag("percpu"))) *per_cpu_pageset; + struct per_cpu_zonestat __attribute__((btf_type_tag("percpu"))) *per_cpu_zonestats; + int pageset_high_min; + int pageset_high_max; + int pageset_batch; + unsigned long *pageblock_flags; + unsigned long zone_start_pfn; + atomic_long_t managed_pages; + unsigned long spanned_pages; + unsigned long present_pages; + unsigned long cma_pages; const char *name; - int rating; - int irq; - int bound_on; - const struct cpumask *cpumask; - struct list_head list; - struct module *owner; + unsigned long nr_isolate_pageblock; + int initialized; long: 32; long: 32; long: 32; @@ -5528,8 +7051,32 @@ struct clock_event_device { long: 32; long: 32; long: 32; + struct cacheline_padding _pad1_; + struct free_area free_area[12]; + unsigned long flags; + spinlock_t lock; + long: 32; + long: 32; + struct cacheline_padding _pad2_; + unsigned long percpu_drift_mark; + unsigned long compact_cached_free_pfn; + unsigned long compact_cached_migrate_pfn[2]; + unsigned long compact_init_migrate_pfn; + unsigned long compact_init_free_pfn; + unsigned int compact_considered; + unsigned int compact_defer_shift; + int compact_order_failed; + bool compact_blockskip_flush; + bool contiguous; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; long: 32; + struct cacheline_padding _pad3_; + atomic_long_t vm_stat[10]; + atomic_long_t vm_numa_event[0]; long: 32; long: 32; long: 32; @@ -5538,31 +7085,168 @@ struct clock_event_device { long: 32; }; -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, +struct zoneref { + struct zone *zone; + int zone_idx; }; -enum irq_gc_flags { - IRQ_GC_INIT_MASK_CACHE = 1, - IRQ_GC_INIT_NESTED_LOCK = 2, - IRQ_GC_MASK_CACHE_PER_TYPE = 4, - IRQ_GC_NO_MASK = 8, - IRQ_GC_BE_IO = 16, +struct zonelist { + struct zoneref _zonerefs[5]; +}; + +struct per_cpu_nodestat; + +struct pglist_data { + struct zone node_zones[4]; + struct zonelist node_zonelists[1]; + int nr_zones; + struct page *node_mem_map; + 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; + struct cacheline_padding _pad1_; + struct lruvec __lruvec; + unsigned long flags; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct cacheline_padding _pad2_; + struct per_cpu_nodestat __attribute__((btf_type_tag("percpu"))) *per_cpu_nodestats; + atomic_long_t vm_stat[41]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; + +struct per_cpu_pages { + spinlock_t lock; + int count; + int high; + int high_min; + int high_max; + int batch; + u8 flags; + u8 alloc_factor; + short free_count; + struct list_head lists[12]; + long: 32; +}; + +struct per_cpu_zonestat { + s8 vm_stat_diff[10]; + s8 stat_threshold; +}; + +struct per_cpu_nodestat { + s8 stat_threshold; + s8 vm_node_stat_diff[41]; +}; + +struct lruvec_stats_percpu { + long state[41]; + long state_prev[41]; +}; + +struct shrinker_info_unit; + +struct shrinker_info { + struct callback_head rcu; + int map_nr_max; + struct shrinker_info_unit *unit[0]; +}; + +struct shrinker_info_unit { + atomic_long_t nr_deferred[32]; + unsigned long map[1]; +}; + +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 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 bdev_handle *bdev_handle; + 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; }; typedef unsigned long irq_hw_number_t; @@ -5573,6 +7257,8 @@ struct irq_domain_chip_generic; struct msi_parent_ops; +struct irq_data; + struct irq_domain { struct list_head link; const char *name; @@ -5616,6 +7302,70 @@ struct irq_fwspec { 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; + unsigned int ipi_offset; +}; + +struct msi_msg; + +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 { @@ -5637,6 +7387,10 @@ struct irq_chip_regs { 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; @@ -5669,6 +7423,82 @@ struct irq_chip_generic { struct irq_chip_type chip_types[0]; }; +struct irqaction; + +struct irq_affinity_notify; + +struct proc_dir_entry; + +struct irq_desc { + struct irq_common_data irq_common_data; + struct irq_data irq_data; + unsigned int __attribute__((btf_type_tag("percpu"))) *kstat_irqs; + irq_flow_handler_t handle_irq; + struct irqaction *action; + unsigned int status_use_accessors; + unsigned int core_internal_state__do_not_mess_with_it; + unsigned int depth; + unsigned int wake_depth; + unsigned int tot_count; + unsigned int irq_count; + unsigned long last_unhandled; + unsigned int irqs_unhandled; + atomic_t threads_handled; + int threads_handled_last; + raw_spinlock_t lock; + struct cpumask *percpu_enabled; + const struct cpumask *percpu_affinity; + const struct cpumask *affinity_hint; + struct irq_affinity_notify *affinity_notify; + unsigned long threads_oneshot; + atomic_t threads_active; + wait_queue_head_t wait_for_threads; + unsigned int nr_actions; + unsigned int no_suspend_depth; + unsigned int cond_suspend_depth; + unsigned int force_resume_depth; + struct proc_dir_entry *dir; + struct callback_head rcu; + struct kobject kobj; + struct mutex request_mutex; + int parent_irq; + struct module *owner; + const char *name; + struct hlist_node resend_node; + long: 32; +}; + +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: 32; + long: 32; + long: 32; +}; + +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 { @@ -5677,1784 +7507,1813 @@ struct msi_parent_ops { bool (*init_dev_msi_info)(struct device *, struct irq_domain *, struct irq_domain *, struct msi_domain_info *); }; -struct clk_notifier_data { - struct clk *clk; - unsigned long old_rate; - unsigned long new_rate; +struct platform_device_id { + char name[20]; + kernel_ulong_t driver_data; }; -struct delay_timer { - unsigned long (*read_current_timer)(); - unsigned long freq; +struct omap_hwmod_rst_info { + const char *name; + u8 rst_shift; + u8 st_shift; }; -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, +struct omap_hwmod_opt_clk { + const char *role; + const char *clk; + struct clk *_clk; }; -typedef int (*cpu_stop_fn_t)(void *); - -struct stackframe { - unsigned long fp; - unsigned long sp; - unsigned long lr; - unsigned long pc; - unsigned long *lr_addr; - struct llist_node *kr_cur; - struct task_struct *tsk; +struct omap_hwmod_omap2_firewall { + u8 l3_perm_bit; + u8 l4_fw_region; + u8 l4_prot_group; + u8 flags; }; -struct ftrace_ops; +struct omap_hwmod_addr_space; -struct ftrace_regs; +struct omap_hwmod_ocp_if { + struct omap_hwmod *master; + struct omap_hwmod *slave; + struct omap_hwmod_addr_space *addr; + const char *clk; + struct clk *_clk; + struct list_head node; + union { + struct omap_hwmod_omap2_firewall omap2; + } fw; + u8 width; + u8 user; + u8 flags; + u8 _int_flags; +}; -typedef void (*ftrace_func_t)(unsigned long, unsigned long, struct ftrace_ops *, struct ftrace_regs *); +struct linux_binprm; -struct ftrace_hash; +struct coredump_params; -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; +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; }; -typedef int (*ftrace_ops_func_t)(struct ftrace_ops *, enum ftrace_ops_cmd); +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 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 core_vma_metadata; + +struct coredump_params { + const kernel_siginfo_t *siginfo; + struct file *file; + unsigned long limit; + unsigned long mm_flags; + int cpu; + long: 32; + loff_t written; + loff_t pos; + loff_t to_skip; + int vma_count; + size_t vma_data_size; + struct core_vma_metadata *vma_meta; + long: 32; }; -struct ftrace_hash { - unsigned long size_bits; - struct hlist_head *buckets; - unsigned long count; +struct core_vma_metadata { + unsigned long start; + unsigned long end; unsigned long flags; - struct callback_head rcu; + unsigned long dump_size; + unsigned long pgoff; + struct file *file; }; -struct ftrace_regs { - struct pt_regs regs; +struct ld_semaphore { + atomic_long_t count; + raw_spinlock_t wait_lock; + unsigned int wait_readers; + struct list_head read_wait; + struct list_head write_wait; }; -struct dyn_arch_ftrace { - struct module *mod; -}; +typedef unsigned int tcflag_t; -struct dyn_ftrace { - unsigned long ip; - unsigned long flags; - struct dyn_arch_ftrace arch; -}; +typedef unsigned char cc_t; -enum fixed_addresses { - FIX_EARLYCON_MEM_BASE = 0, - __end_of_permanent_fixed_addresses = 1, - FIX_KMAP_BEGIN = 1, - FIX_KMAP_END = 256, - FIX_TEXT_POKE0 = 257, - FIX_TEXT_POKE1 = 258, - __end_of_fixmap_region = 259, - FIX_BTMAP_END = 1, - FIX_BTMAP_BEGIN = 224, - __end_of_early_ioremap_region = 225, -}; +typedef unsigned int speed_t; -struct patch { - void *addr; - unsigned int insn; +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; }; -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, - IRQD_RESEND_WHEN_IN_PROGRESS = 2147483648, +struct winsize { + unsigned short ws_row; + unsigned short ws_col; + unsigned short ws_xpixel; + unsigned short ws_ypixel; }; -typedef __u32 __be32; +struct tty_driver; -struct iovec { - void __attribute__((btf_type_tag("user"))) *iov_base; - __kernel_size_t iov_len; -}; +struct tty_port; -struct kvec; +struct tty_operations; -struct bio_vec; +struct tty_ldisc; -struct iov_iter { - u8 iter_type; - bool copy_mc; - bool nofault; - bool data_source; - bool user_backed; - union { - size_t iov_offset; - int last_offset; - }; - union { - struct iovec __ubuf_iovec; - struct { - union { - const struct iovec *__iov; - const struct kvec *kvec; - const struct bio_vec *bvec; - struct xarray *xarray; - void __attribute__((btf_type_tag("user"))) *ubuf; - }; - size_t count; - }; - }; - long: 32; - union { - unsigned long nr_segs; - loff_t xarray_start; - }; +struct tty_struct { + struct kref kref; + int index; + struct device *dev; + struct tty_driver *driver; + struct tty_port *port; + const struct tty_operations *ops; + struct tty_ldisc *ldisc; + struct ld_semaphore ldisc_sem; + struct mutex atomic_write_lock; + struct mutex legacy_mutex; + struct mutex throttle_mutex; + struct rw_semaphore termios_rwsem; + struct mutex winsize_mutex; + struct ktermios termios; + struct ktermios termios_locked; + char name[64]; + unsigned long flags; + int count; + unsigned int receive_room; + struct winsize winsize; + struct { + spinlock_t lock; + bool stopped; + bool tco_stopped; + unsigned long unused[0]; + } flow; + struct { + struct pid *pgrp; + struct pid *session; + spinlock_t lock; + unsigned char pktstatus; + bool packet; + unsigned long unused[0]; + } ctrl; + bool hw_stopped; + bool closing; + int flow_change; + struct tty_struct *link; + struct fasync_struct *fasync; + wait_queue_head_t write_wait; + wait_queue_head_t read_wait; + struct work_struct hangup_work; + void *disc_data; + void *driver_data; + spinlock_t files_lock; + int write_cnt; + unsigned char *write_buf; + struct list_head tty_files; + struct work_struct SAK_work; }; -struct kvec { - void *iov_base; - size_t iov_len; +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 bio_vec { - struct page *bv_page; - unsigned int bv_len; - unsigned int bv_offset; +struct cdev { + struct kobject kobj; + struct module *owner; + const struct file_operations *ops; + struct list_head list; + dev_t dev; + unsigned int count; }; -typedef unsigned long kimage_entry_t; +struct __kfifo { + unsigned int in; + unsigned int out; + unsigned int mask; + unsigned int esize; + void *data; +}; -struct kexec_segment { +struct tty_buffer { union { - void __attribute__((btf_type_tag("user"))) *buf; - void *kbuf; + struct tty_buffer *next; + struct llist_node free; }; - size_t bufsz; - unsigned long mem; - size_t memsz; + unsigned int used; + unsigned int size; + unsigned int commit; + unsigned int lookahead; + unsigned int read; + bool flags; + long: 0; + u8 data[0]; }; -struct kimage_arch { - u32 kernel_r2; +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 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 tty_port_operations; -struct kexec_relocate_data { - unsigned long kexec_start_address; - unsigned long kexec_indirection_page; - unsigned long kexec_mach_type; - unsigned long kexec_r2; -}; +struct tty_port_client_operations; -struct atomic_notifier_head { +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; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; + 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; }; -enum unwind_reason_code { - URC_OK = 0, - URC_CONTINUE_UNWIND = 8, - URC_FAILURE = 9, +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 *); }; -enum regs { - FP = 11, - SP = 13, - LR = 14, - PC = 15, +struct tty_port_client_operations { + size_t (*receive_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_port *); }; -struct unwind_ctrl_block { - unsigned long vrs[16]; - const unsigned long *insn; - unsigned long sp_high; - unsigned long *lr_addr; - int check_each_pop; - int entries; - int byte; -}; +struct serial_icounter_struct; -enum reboot_mode { - REBOOT_UNDEFINED = -1, - REBOOT_COLD = 0, - REBOOT_WARM = 1, - REBOOT_HARD = 2, - REBOOT_SOFT = 3, - REBOOT_GPIO = 4, +struct serial_struct; + +struct tty_operations { + struct tty_struct * (*lookup)(struct tty_driver *, struct file *, int); + int (*install)(struct tty_driver *, struct tty_struct *); + void (*remove)(struct tty_driver *, struct tty_struct *); + int (*open)(struct tty_struct *, struct file *); + void (*close)(struct tty_struct *, struct file *); + void (*shutdown)(struct tty_struct *); + void (*cleanup)(struct tty_struct *); + ssize_t (*write)(struct tty_struct *, const u8 *, size_t); + int (*put_char)(struct tty_struct *, u8); + void (*flush_chars)(struct tty_struct *); + unsigned int (*write_room)(struct tty_struct *); + unsigned int (*chars_in_buffer)(struct tty_struct *); + int (*ioctl)(struct tty_struct *, unsigned int, unsigned long); + long (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long); + void (*set_termios)(struct tty_struct *, const struct ktermios *); + void (*throttle)(struct tty_struct *); + void (*unthrottle)(struct tty_struct *); + void (*stop)(struct tty_struct *); + void (*start)(struct tty_struct *); + void (*hangup)(struct tty_struct *); + int (*break_ctl)(struct tty_struct *, int); + void (*flush_buffer)(struct tty_struct *); + void (*set_ldisc)(struct tty_struct *); + void (*wait_until_sent)(struct tty_struct *, int); + void (*send_xchar)(struct tty_struct *, 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 tag; +struct tty_ldisc_ops; -struct machine_desc { - unsigned int nr; - const char *name; - unsigned long atag_offset; - const char * const *dt_compat; - unsigned int nr_irqs; - phys_addr_t dma_zone_size; - unsigned int video_start; - unsigned int video_end; - unsigned char reserve_lp0: 1; - unsigned char reserve_lp1: 1; - unsigned char reserve_lp2: 1; - enum reboot_mode reboot_mode; - unsigned int l2c_aux_val; - unsigned int l2c_aux_mask; - void (*l2c_write_sec)(unsigned long, unsigned int); - const struct smp_operations *smp; - bool (*smp_init)(); - void (*fixup)(struct tag *, char **); - void (*dt_fixup)(); - long long (*pv_fixup)(); - void (*reserve)(); - void (*map_io)(); - void (*init_early)(); - void (*init_irq)(); - void (*init_time)(); - void (*init_machine)(); - void (*init_late)(); - void (*restart)(enum reboot_mode, const char *); +struct tty_ldisc { + struct tty_ldisc_ops *ops; + struct tty_struct *tty; }; -struct tag_core { - __u32 flags; - __u32 pagesize; - __u32 rootdev; +struct tty_ldisc_ops { + char *name; + int num; + int (*open)(struct tty_struct *); + void (*close)(struct tty_struct *); + void (*flush_buffer)(struct tty_struct *); + ssize_t (*read)(struct tty_struct *, struct file *, u8 *, size_t, void **, unsigned long); + ssize_t (*write)(struct tty_struct *, struct file *, const u8 *, size_t); + int (*ioctl)(struct tty_struct *, unsigned int, unsigned long); + int (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long); + void (*set_termios)(struct tty_struct *, const struct ktermios *); + __poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *); + void (*hangup)(struct tty_struct *); + void (*receive_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_struct *); + void (*dcd_change)(struct tty_struct *, bool); + size_t (*receive_buf2)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + struct module *owner; }; -struct tag_mem32 { - __u32 size; - __u32 start; -}; +typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int); -struct tag_videotext { - __u8 x; - __u8 y; - __u16 video_page; - __u8 video_mode; - __u8 video_cols; - __u16 video_ega_bx; - __u8 video_lines; - __u8 video_isvga; - __u16 video_points; -}; +typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); -struct tag_ramdisk { - __u32 flags; - __u32 size; - __u32 start; +struct obs_kernel_param { + const char *str; + int (*setup_func)(char *); + int early; }; -struct tag_initrd { - __u32 start; - __u32 size; +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; }; -struct tag_serialnr { - __u32 low; - __u32 high; +enum sig_handler { + HANDLER_CURRENT = 0, + HANDLER_SIG_DFL = 1, + HANDLER_EXIT = 2, }; -struct tag_revision { - __u32 rev; +enum { + TRACE_SIGNAL_DELIVERED = 0, + TRACE_SIGNAL_IGNORED = 1, + TRACE_SIGNAL_ALREADY_PENDING = 2, + TRACE_SIGNAL_OVERFLOW_FAIL = 3, + TRACE_SIGNAL_LOSE_INFO = 4, }; -struct tag_videolfb { - __u16 lfb_width; - __u16 lfb_height; - __u16 lfb_depth; - __u16 lfb_linelength; - __u32 lfb_base; - __u32 lfb_size; - __u8 red_size; - __u8 red_pos; - __u8 green_size; - __u8 green_pos; - __u8 blue_size; - __u8 blue_pos; - __u8 rsvd_size; - __u8 rsvd_pos; +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 tag_cmdline { - char cmdline[1]; +enum { + EVENT_FILE_FL_ENABLED = 1, + EVENT_FILE_FL_RECORDED_CMD = 2, + EVENT_FILE_FL_RECORDED_TGID = 4, + EVENT_FILE_FL_FILTERED = 8, + EVENT_FILE_FL_NO_SET_FILTER = 16, + EVENT_FILE_FL_SOFT_MODE = 32, + EVENT_FILE_FL_SOFT_DISABLED = 64, + EVENT_FILE_FL_TRIGGER_MODE = 128, + EVENT_FILE_FL_TRIGGER_COND = 256, + EVENT_FILE_FL_PID_FILTER = 512, + EVENT_FILE_FL_WAS_ENABLED = 1024, + EVENT_FILE_FL_FREED = 2048, }; -struct tag_acorn { - __u32 memc_control_reg; - __u32 vram_pages; - __u8 sounddefault; - __u8 adfsdrives; +enum rlimit_type { + UCOUNT_RLIMIT_NPROC = 0, + UCOUNT_RLIMIT_MSGQUEUE = 1, + UCOUNT_RLIMIT_SIGPENDING = 2, + UCOUNT_RLIMIT_MEMLOCK = 3, + UCOUNT_RLIMIT_COUNTS = 4, }; -struct tag_memclk { - __u32 fmemclk; +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 tag_header { - __u32 size; - __u32 tag; +struct sigqueue { + struct list_head list; + int flags; + kernel_siginfo_t info; + struct ucounts *ucounts; }; -struct tag { - struct tag_header hdr; +struct siginfo { union { - struct tag_core core; - struct tag_mem32 mem; - struct tag_videotext videotext; - struct tag_ramdisk ramdisk; - struct tag_initrd initrd; - struct tag_serialnr serialnr; - struct tag_revision revision; - struct tag_videolfb videolfb; - struct tag_cmdline cmdline; - struct tag_acorn acorn; - struct tag_memclk memclk; - } u; + struct { + int si_signo; + int si_errno; + int si_code; + union __sifields _sifields; + }; + int _si_pad[32]; + }; }; -struct of_cpu_method { - const char *method; - const struct smp_operations *ops; +typedef struct siginfo siginfo_t; + +struct sigaltstack { + void __attribute__((btf_type_tag("user"))) *ss_sp; + int ss_flags; + __kernel_size_t ss_size; }; -struct undef_hook { - struct list_head node; - u32 instr_mask; - u32 instr_val; - u32 cpsr_mask; - u32 cpsr_val; - int (*fn)(struct pt_regs *, unsigned int); +typedef struct sigaltstack stack_t; + +typedef unsigned long old_sigset_t; + +struct old_sigaction { + __sighandler_t sa_handler; + old_sigset_t sa_mask; + unsigned long sa_flags; + __sigrestore_t sa_restorer; }; -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, +typedef unsigned int slab_flags_t; + +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]; }; -enum print_line_t { - TRACE_TYPE_PARTIAL_LINE = 0, - TRACE_TYPE_HANDLED = 1, - TRACE_TYPE_UNHANDLED = 2, - TRACE_TYPE_NO_CONSUME = 3, +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]; }; -enum perf_event_state { - PERF_EVENT_STATE_DEAD = -4, - PERF_EVENT_STATE_EXIT = -3, - PERF_EVENT_STATE_ERROR = -2, - PERF_EVENT_STATE_OFF = -1, - PERF_EVENT_STATE_INACTIVE = 0, - PERF_EVENT_STATE_ACTIVE = 1, +struct multiprocess_signals { + sigset_t signal; + struct hlist_node node; }; -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 eventfs_inode; + +struct trace_subsystem_dir; + +struct trace_event_file { + struct list_head list; + struct trace_event_call *event_call; + struct event_filter __attribute__((btf_type_tag("rcu"))) *filter; + struct eventfs_inode *ei; + struct trace_array *tr; + struct trace_subsystem_dir *system; + struct list_head triggers; + unsigned long flags; + atomic_t ref; + atomic_t sm_ref; + atomic_t tm_ref; }; -struct uid_gid_extent { - u32 first; - u32 lower_first; - u32 count; +struct prog_entry; + +struct event_filter { + struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog; + char *filter_string; }; -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 trace_buffer; + +struct ring_buffer_event; + +struct trace_event_buffer { + struct trace_buffer *buffer; + struct ring_buffer_event *event; + struct trace_event_file *trace_file; + void *entry; + unsigned int trace_ctx; + struct pt_regs *regs; }; -struct 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 ring_buffer_event { + u32 type_len: 5; + u32 time_delta: 27; + u32 array[0]; }; -struct ucounts { - struct hlist_node node; - struct user_namespace *ns; - kuid_t uid; - atomic_t count; - atomic_long_t ucount[10]; - atomic_long_t rlimit[4]; +struct ksignal { + struct k_sigaction ka; + kernel_siginfo_t info; + int sig; }; -struct cgroup_namespace { - struct ns_common ns; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct css_set *root_cset; +struct fd { + struct file *file; + unsigned int flags; }; -struct rcu_work { - struct work_struct work; - struct callback_head rcu; - struct workqueue_struct *wq; +struct trace_event_data_offsets_signal_generate {}; + +struct trace_event_data_offsets_signal_deliver {}; + +enum desc_state { + desc_miss = -1, + desc_reserved = 0, + desc_committed = 1, + desc_finalized = 2, + desc_reusable = 3, }; -struct cgroup_subsys; +struct dev_printk_info { + char subsystem[16]; + char device[48]; +}; -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; - long: 32; +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 cgroup_file { - struct kernfs_node *kn; - unsigned long notified_at; - struct timer_list notify_timer; +struct prb_desc; + +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 task_cputime { - u64 stime; - u64 utime; - unsigned long long sum_exec_runtime; +struct prb_data_blk_lpos { + unsigned long begin; + unsigned long next; }; -struct cgroup_base_stat { - struct task_cputime cputime; +struct prb_desc { + atomic_long_t state_var; + struct prb_data_blk_lpos text_blk_lpos; }; -struct bpf_prog_array; +struct prb_data_ring { + unsigned int size_bits; + char *data; + atomic_long_t head_lpos; + atomic_long_t tail_lpos; +}; -struct cgroup_bpf { - struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *effective[23]; - struct hlist_head progs[23]; - u8 flags[23]; - struct list_head storages; - struct bpf_prog_array *inactive; - struct percpu_ref refcnt; - struct work_struct release_work; +struct prb_data_block { + unsigned long id; + char data[0]; }; -struct cgroup_freezer_state { - bool freeze; - int e_freeze; - int nr_frozen_descendants; - int nr_frozen_tasks; +struct printk_ringbuffer { + struct prb_desc_ring desc_ring; + struct prb_data_ring text_data_ring; + atomic_long_t fail; }; -struct cgroup_root; +struct prb_reserved_entry { + struct printk_ringbuffer *rb; + unsigned long irqflags; + unsigned long id; + unsigned int text_space; +}; -struct cgroup_rstat_cpu; +struct printk_record { + struct printk_info *info; + char *text_buf; + unsigned int text_buf_size; +}; -struct psi_group; +enum { + IRQ_STARTUP_NORMAL = 0, + IRQ_STARTUP_MANAGED = 1, + IRQ_STARTUP_ABORT = 2, +}; -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[0]; - struct cgroup_root *root; - struct list_head cset_links; - struct list_head e_csets[0]; - struct cgroup *dom_cgrp; - struct cgroup *old_dom_cgrp; - struct cgroup_rstat_cpu __attribute__((btf_type_tag("percpu"))) *rstat_cpu; - struct list_head rstat_css_list; - long: 32; - 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]; +enum { + IRQCHIP_SET_TYPE_MASKED = 1, + IRQCHIP_EOI_IF_HANDLED = 2, + IRQCHIP_MASK_ON_SUSPEND = 4, + IRQCHIP_ONOFFLINE_ENABLED = 8, + IRQCHIP_SKIP_SET_WAKE = 16, + IRQCHIP_ONESHOT_SAFE = 32, + IRQCHIP_EOI_THREADED = 64, + IRQCHIP_SUPPORTS_LEVEL_MSI = 128, + IRQCHIP_SUPPORTS_NMI = 256, + IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, + IRQCHIP_AFFINITY_PRE_STARTUP = 1024, + IRQCHIP_IMMUTABLE = 2048, }; -struct trace_event_functions; +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, +}; -struct trace_event { - struct hlist_node node; - int type; - struct trace_event_functions *funcs; +enum { + IRQD_TRIGGER_MASK = 15, + IRQD_SETAFFINITY_PENDING = 256, + IRQD_ACTIVATED = 512, + IRQD_NO_BALANCING = 1024, + IRQD_PER_CPU = 2048, + IRQD_AFFINITY_SET = 4096, + IRQD_LEVEL = 8192, + IRQD_WAKEUP_STATE = 16384, + IRQD_MOVE_PCNTXT = 32768, + IRQD_IRQ_DISABLED = 65536, + IRQD_IRQ_MASKED = 131072, + IRQD_IRQ_INPROGRESS = 262144, + IRQD_WAKEUP_ARMED = 524288, + IRQD_FORWARDED_TO_VCPU = 1048576, + IRQD_AFFINITY_MANAGED = 2097152, + IRQD_IRQ_STARTED = 4194304, + IRQD_MANAGED_SHUTDOWN = 8388608, + IRQD_SINGLE_TARGET = 16777216, + IRQD_DEFAULT_TRIGGER_SET = 33554432, + IRQD_CAN_RESERVE = 67108864, + IRQD_HANDLE_ENFORCE_IRQCTX = 134217728, + IRQD_AFFINITY_ON_ACTIVATE = 268435456, + IRQD_IRQ_ENABLED_ON_SUSPEND = 536870912, + IRQD_RESEND_WHEN_IN_PROGRESS = 1073741824, }; -struct trace_event_class; +enum { + _IRQ_DEFAULT_INIT_FLAGS = 3072, + _IRQ_PER_CPU = 512, + _IRQ_LEVEL = 256, + _IRQ_NOPROBE = 1024, + _IRQ_NOREQUEST = 2048, + _IRQ_NOTHREAD = 65536, + _IRQ_NOAUTOEN = 4096, + _IRQ_MOVE_PCNTXT = 16384, + _IRQ_NO_BALANCING = 8192, + _IRQ_NESTED_THREAD = 32768, + _IRQ_PER_CPU_DEVID = 131072, + _IRQ_IS_POLLED = 262144, + _IRQ_DISABLE_UNLAZY = 524288, + _IRQ_HIDDEN = 1048576, + _IRQ_NO_DEBUG = 2097152, + _IRQF_MODIFY_MASK = 2096911, +}; -struct event_filter; +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 trace_event_call { - struct list_head list; - struct trace_event_class *class; +struct pci_msi_desc { union { - char *name; - struct tracepoint *tp; + u32 msi_mask; + u32 msix_ctrl; }; - struct trace_event event; - char *print_fmt; - struct event_filter *filter; + 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 { - void *module; - atomic_t refcnt; + u8 mask_pos; + void *mask_base; }; - 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 *); }; -struct trace_event_fields; +union msi_domain_cookie { + u64 value; + void *ptr; + void *iobase; +}; -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 *); +union msi_instance_cookie { + u64 value; + void *ptr; }; -struct trace_event_fields { - const char *type; - union { - struct { - const char *name; - const int size; - const int align; - const int is_signed; - const int filter_type; - const int len; - }; - int (*define_fields)(struct trace_event_call *); - }; +struct msi_desc_data { + union msi_domain_cookie dcookie; + union msi_instance_cookie icookie; }; -struct trace_iterator; +struct arch_msi_msg_addr_lo { + u32 address_lo; +}; -typedef enum print_line_t (*trace_print_func)(struct trace_iterator *, int, struct trace_event *); +typedef struct arch_msi_msg_addr_lo arch_msi_msg_addr_lo_t; -struct trace_event_functions { - trace_print_func trace; - trace_print_func raw; - trace_print_func hex; - trace_print_func binary; +struct arch_msi_msg_addr_hi { + u32 address_hi; }; -struct seq_buf { - char *buffer; - size_t size; - size_t len; - long: 32; - loff_t readpos; -}; +typedef struct arch_msi_msg_addr_hi arch_msi_msg_addr_hi_t; -struct trace_seq { - char buffer[4096]; - struct seq_buf seq; - int full; - long: 32; +struct arch_msi_msg_data { + u32 data; }; -struct trace_array; +typedef struct arch_msi_msg_data arch_msi_msg_data_t; -struct tracer; +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 array_buffer; +struct irq_affinity_desc; -struct ring_buffer_iter; +struct device_attribute; -struct trace_entry; +struct msi_desc { + unsigned int irq; + unsigned int nvec_used; + struct device *dev; + struct msi_msg msg; + struct irq_affinity_desc *affinity; + struct device_attribute *sysfs_attrs; + void (*write_msi_msg)(struct msi_desc *, void *); + void *write_msi_msg_data; + u16 msi_index; + long: 32; + union { + struct pci_msi_desc pci; + struct msi_desc_data data; + }; +}; -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; - long: 32; - 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; - long: 32; - u64 ts; - loff_t pos; - long idx; - long: 32; -}; +struct msi_domain_ops; -struct trace_entry { - unsigned short type; - unsigned char flags; - unsigned char preempt_count; - int pid; +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 bpf_prog; - -struct bpf_cgroup_storage; +struct msi_alloc_info; -struct bpf_prog_array_item { - struct bpf_prog *prog; - long: 32; - union { - struct bpf_cgroup_storage *cgroup_storage[2]; - u64 bpf_cookie; - }; -}; +typedef struct msi_alloc_info msi_alloc_info_t; -struct bpf_prog_array { - struct callback_head rcu; - struct bpf_prog_array_item items[0]; +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 *); }; -typedef struct { - atomic64_t a; -} local64_t; - -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; - }; +struct msi_alloc_info { + struct msi_desc *desc; + irq_hw_number_t hwirq; + unsigned long flags; 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; + unsigned long ul; + void *ptr; + } scratchpad[2]; }; -struct hw_perf_event_extra { - u64 config; - unsigned int reg; - int alloc; - int idx; - long: 32; +struct msi_dev_domain { + struct xarray store; + struct irq_domain *domain; }; -struct arch_hw_breakpoint_ctrl { - u32 __reserved: 9; - u32 mismatch: 1; - short: 6; - char: 3; - u32 len: 8; - u32 type: 2; - u32 privilege: 2; - u32 enabled: 1; -}; +struct platform_msi_priv_data; -struct arch_hw_breakpoint { - u32 address; - u32 trigger; - struct arch_hw_breakpoint_ctrl step_ctrl; - struct arch_hw_breakpoint_ctrl ctrl; +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 rhash_head { - struct rhash_head __attribute__((btf_type_tag("rcu"))) *next; +struct irq_affinity_desc { + struct cpumask mask; + unsigned int is_managed: 1; }; -struct rhlist_head { - struct rhash_head rhead; - struct rhlist_head __attribute__((btf_type_tag("rcu"))) *next; +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); }; -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; - long: 32; - 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; +enum tick_device_mode { + TICKDEV_MODE_PERIODIC = 0, + TICKDEV_MODE_ONESHOT = 1, }; -struct irq_work { - struct __call_single_node node; - void (*func)(struct irq_work *); - struct rcuwait irqwait; -}; +struct clock_event_device; -struct perf_addr_filters_head { - struct list_head list; - raw_spinlock_t lock; - unsigned int nr_file_filters; +struct tick_device { + struct clock_event_device *evtdev; + enum tick_device_mode mode; }; -struct perf_sample_data; - -typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *); - -struct pmu; - -struct perf_event_pmu_context; - -struct perf_buffer; - -struct fasync_struct; - -struct perf_addr_filter_range; +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 perf_event { - struct list_head event_entry; - struct list_head sibling_list; - struct list_head active_list; - struct rb_node group_node; +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 *); + long: 32; + 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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; - 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; long: 32; - 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; long: 32; - u64 bpf_cookie; - struct trace_event_call *tp_event; - struct event_filter *filter; - struct ftrace_ops ftrace_ops; - struct list_head sb_list; - __u32 orig_type; -}; - -struct perf_cpu_pmu_context; - -struct perf_output_handle; - -struct pmu { - struct list_head entry; - struct module *module; - struct device *dev; - struct device *parent; - const struct attribute_group **attr_groups; - const struct attribute_group **attr_update; - const char *name; - int type; - int capabilities; - int __attribute__((btf_type_tag("percpu"))) *pmu_disable_count; - struct perf_cpu_pmu_context __attribute__((btf_type_tag("percpu"))) *cpu_pmu_context; - atomic_t exclusive_cnt; - int task_ctx_nr; - int hrtimer_interval_ms; - unsigned int nr_addr_filters; - void (*pmu_enable)(struct pmu *); - void (*pmu_disable)(struct pmu *); - int (*event_init)(struct perf_event *); - void (*event_mapped)(struct perf_event *, struct mm_struct *); - void (*event_unmapped)(struct perf_event *, struct mm_struct *); - int (*add)(struct perf_event *, int); - void (*del)(struct perf_event *, int); - void (*start)(struct perf_event *, int); - void (*stop)(struct perf_event *, int); - void (*read)(struct perf_event *); - void (*start_txn)(struct pmu *, unsigned int); - int (*commit_txn)(struct pmu *); - void (*cancel_txn)(struct pmu *); - int (*event_idx)(struct perf_event *); - void (*sched_task)(struct perf_event_pmu_context *, bool); - struct kmem_cache *task_ctx_cache; - void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *); - void * (*setup_aux)(struct perf_event *, void **, int, bool); - void (*free_aux)(void *); - long (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, unsigned long); - int (*addr_filters_validate)(struct list_head *); - void (*addr_filters_sync)(struct perf_event *); - int (*aux_output_match)(struct perf_event *); - bool (*filter)(struct pmu *, int); - int (*check_period)(struct perf_event *, u64); -}; - -struct perf_event_pmu_context { - struct pmu *pmu; - struct perf_event_context *ctx; - struct list_head pmu_ctx_entry; - struct list_head pinned_active; - struct list_head flexible_active; - unsigned int embedded: 1; - unsigned int nr_events; - 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; long: 32; -}; - -struct perf_event_groups { - struct rb_root tree; long: 32; - u64 index; -}; - -typedef struct { - atomic_long_t a; -} local_t; - -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; long: 32; - u64 time; - u64 timestamp; - u64 timeoffset; - struct perf_event_context *parent_ctx; long: 32; - u64 parent_gen; - u64 generation; - int pin_count; - struct callback_head callback_head; - local_t nr_pending; }; -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 plist_head { + struct list_head node_list; }; -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; +enum pm_qos_type { + PM_QOS_UNITIALIZED = 0, + PM_QOS_MAX = 1, + PM_QOS_MIN = 2, }; -struct perf_addr_filter_range { - unsigned long start; - unsigned long size; -}; +struct blocking_notifier_head; -union perf_sample_weight { - __u64 full; - struct { - __u32 var1_dw; - __u16 var2_w; - __u16 var3_w; - }; +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; }; -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 blocking_notifier_head { + struct rw_semaphore rwsem; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -struct perf_regs { - __u64 abi; - struct pt_regs *regs; - long: 32; +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 perf_callchain_entry; - -struct perf_raw_record; +struct pm_qos_flags { + struct list_head list; + s32 effective_flags; +}; -struct perf_branch_stack; +struct dev_pm_qos_request; -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; - long: 32; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +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 perf_callchain_entry { - __u64 nr; - __u64 ip[0]; +struct pm_qos_flags_request { + struct list_head node; + s32 flags; }; -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; +enum freq_qos_req_type { + FREQ_QOS_MIN = 1, + FREQ_QOS_MAX = 2, }; -struct perf_raw_record { - struct perf_raw_frag frag; - u32 size; +struct freq_qos_request { + enum freq_qos_req_type type; + struct plist_node pnode; + struct freq_constraints *qos; }; -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; +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 perf_branch_stack { - __u64 nr; - __u64 hw_idx; - struct perf_branch_entry entries[0]; +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; }; -typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *); +enum tick_broadcast_state { + TICK_BROADCAST_EXIT = 0, + TICK_BROADCAST_ENTER = 1, +}; -struct poll_table_struct { - poll_queue_proc _qproc; - __poll_t _key; +struct static_key_false { + struct static_key key; }; -struct cgroup_root { - struct kernfs_root *kf_root; - unsigned int subsys_mask; - int hierarchy_id; - long: 32; - 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 fmeter { + int cnt; + int val; + time64_t time; + spinlock_t lock; long: 32; }; -struct u64_stats_sync { - seqcount_t seq; +enum prs_errcode { + PERR_NONE = 0, + PERR_INVCPUS = 1, + PERR_INVPARENT = 2, + PERR_NOTPART = 3, + PERR_NOTEXCL = 4, + PERR_NOCPUS = 5, + PERR_HOTPLUG = 6, + PERR_CPUSEMPTY = 7, + PERR_HKEEPING = 8, }; -struct cgroup_rstat_cpu { - struct u64_stats_sync bsync; +struct cpuset { + struct cgroup_subsys_state css; + unsigned long flags; + cpumask_var_t cpus_allowed; + nodemask_t mems_allowed; + cpumask_var_t effective_cpus; + nodemask_t effective_mems; + cpumask_var_t effective_xcpus; + cpumask_var_t exclusive_cpus; + nodemask_t old_mems_allowed; + struct fmeter fmeter; + int attach_in_progress; + int pn; + int relax_domain_level; + int nr_subparts; + int partition_root_state; + int use_parent_ecpus; + int child_ecpus_count; + int nr_deadline_tasks; + int nr_migrate_dl_tasks; long: 32; - struct cgroup_base_stat bstat; - struct cgroup_base_stat last_bstat; - struct cgroup *updated_children; - struct cgroup *updated_next; + u64 sum_migrate_dl_bw; + enum prs_errcode prs_err; + struct cgroup_file partition_file; + struct list_head remote_sibling; }; -struct psi_group {}; - -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; +enum node_states { + N_POSSIBLE = 0, + N_ONLINE = 1, + N_NORMAL_MEMORY = 2, + N_HIGH_MEMORY = 3, + N_MEMORY = 4, + N_CPU = 5, + N_GENERIC_INITIATOR = 6, + NR_NODE_STATES = 7, }; -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 *); +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_UNBOUND_MAX_ACTIVE = 512, + WQ_DFL_ACTIVE = 256, }; -enum bp_type_idx { - TYPE_INST = 0, - TYPE_DATA = 1, - TYPE_MAX = 2, +enum cgroup_subsys_id { + cpuset_cgrp_id = 0, + cpu_cgrp_id = 1, + cpuacct_cgrp_id = 2, + io_cgrp_id = 3, + memory_cgrp_id = 4, + devices_cgrp_id = 5, + freezer_cgrp_id = 6, + net_cls_cgrp_id = 7, + perf_event_cgrp_id = 8, + net_prio_cgrp_id = 9, + pids_cgrp_id = 10, + rdma_cgrp_id = 11, + misc_cgrp_id = 12, + CGROUP_SUBSYS_COUNT = 13, }; 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, + CSS_NO_REF = 1, + CSS_ONLINE = 2, + CSS_RELEASED = 4, + CSS_VISIBLE = 8, + CSS_DYING = 16, }; 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, + __PERCPU_REF_ATOMIC = 1, + __PERCPU_REF_DEAD = 2, + __PERCPU_REF_ATOMIC_DEAD = 3, + __PERCPU_REF_FLAG_BITS = 2, }; -enum cpu_pm_event { - CPU_PM_ENTER = 0, - CPU_PM_ENTER_FAILED = 1, - CPU_PM_EXIT = 2, - CPU_CLUSTER_PM_ENTER = 3, - CPU_CLUSTER_PM_ENTER_FAILED = 4, - CPU_CLUSTER_PM_EXIT = 5, +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 perf_event_arm_regs { - PERF_REG_ARM_R0 = 0, - PERF_REG_ARM_R1 = 1, - PERF_REG_ARM_R2 = 2, - PERF_REG_ARM_R3 = 3, - PERF_REG_ARM_R4 = 4, - PERF_REG_ARM_R5 = 5, - PERF_REG_ARM_R6 = 6, - PERF_REG_ARM_R7 = 7, - PERF_REG_ARM_R8 = 8, - PERF_REG_ARM_R9 = 9, - PERF_REG_ARM_R10 = 10, - PERF_REG_ARM_FP = 11, - PERF_REG_ARM_IP = 12, - PERF_REG_ARM_SP = 13, - PERF_REG_ARM_LR = 14, - PERF_REG_ARM_PC = 15, - PERF_REG_ARM_MAX = 16, +enum { + CGRP_NOTIFY_ON_RELEASE = 0, + CGRP_CPUSET_CLONE_CHILDREN = 1, + CGRP_FREEZE = 2, + CGRP_FROZEN = 3, + CGRP_KILL = 4, }; -enum perf_sample_regs_abi { - PERF_SAMPLE_REGS_ABI_NONE = 0, - PERF_SAMPLE_REGS_ABI_32 = 1, - PERF_SAMPLE_REGS_ABI_64 = 2, +enum partition_cmd { + partcmd_enable = 0, + partcmd_disable = 1, + partcmd_update = 2, + partcmd_invalidate = 3, }; -struct frame_tail { - struct frame_tail __attribute__((btf_type_tag("user"))) *fp; - unsigned long sp; - unsigned long lr; +enum { + WORK_STRUCT_PENDING_BIT = 0, + WORK_STRUCT_INACTIVE_BIT = 1, + WORK_STRUCT_PWQ_BIT = 2, + WORK_STRUCT_LINKED_BIT = 3, + WORK_STRUCT_COLOR_SHIFT = 4, + WORK_STRUCT_COLOR_BITS = 4, + WORK_STRUCT_PENDING = 1, + WORK_STRUCT_INACTIVE = 2, + WORK_STRUCT_PWQ = 4, + WORK_STRUCT_LINKED = 8, + WORK_STRUCT_STATIC = 0, + WORK_NR_COLORS = 16, + WORK_CPU_UNBOUND = 16, + WORK_STRUCT_FLAG_BITS = 8, + WORK_OFFQ_FLAG_BASE = 4, + __WORK_OFFQ_CANCELING = 4, + WORK_OFFQ_FLAG_BITS = 1, + WORK_OFFQ_POOL_SHIFT = 5, + WORK_OFFQ_LEFT = 27, + WORK_OFFQ_POOL_BITS = 27, + WORK_BUSY_PENDING = 1, + WORK_BUSY_RUNNING = 2, + WORKER_DESC_LEN = 24, }; -struct perf_callchain_entry_ctx { - struct perf_callchain_entry *entry; - u32 max_stack; - u32 nr; - short contexts; - bool contexts_maxed; +enum { + ZONELIST_FALLBACK = 0, + MAX_ZONELISTS = 1, }; -struct platform_device; +enum { + CGRP_ROOT_NOPREFIX = 2, + CGRP_ROOT_XATTR = 4, + CGRP_ROOT_NS_DELEGATE = 8, + CGRP_ROOT_FAVOR_DYNMODS = 16, + CGRP_ROOT_CPUSET_V2_MODE = 65536, + CGRP_ROOT_MEMORY_LOCAL_EVENTS = 131072, + CGRP_ROOT_MEMORY_RECURSIVE_PROT = 262144, + CGRP_ROOT_MEMORY_HUGETLB_ACCOUNTING = 524288, +}; -struct platform_device_id; +struct cpuset_migrate_mm_work { + struct work_struct work; + struct mm_struct *mm; + nodemask_t from; + nodemask_t to; +}; -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 sched_domain_attr { + int relax_domain_level; }; -struct omap_device; +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 pdev_archdata { - struct omap_device *od; +struct tmpmasks { + cpumask_var_t addmask; + cpumask_var_t delmask; + cpumask_var_t new_cpus; }; -struct mfd_cell; +typedef enum { + CS_ONLINE = 0, + CS_CPU_EXCLUSIVE = 1, + CS_MEM_EXCLUSIVE = 2, + CS_MEM_HARDWALL = 3, + CS_MEMORY_MIGRATE = 4, + CS_SCHED_LOAD_BALANCE = 5, + CS_SPREAD_PAGE = 6, + CS_SPREAD_SLAB = 7, +} cpuset_flagbits_t; -struct platform_device { - const char *name; - int id; - bool id_auto; +typedef enum { + FILE_MEMORY_MIGRATE = 0, + FILE_CPULIST = 1, + FILE_MEMLIST = 2, + FILE_EFFECTIVE_CPULIST = 3, + FILE_EFFECTIVE_MEMLIST = 4, + FILE_SUBPARTS_CPULIST = 5, + FILE_EXCLUSIVE_CPULIST = 6, + FILE_EFFECTIVE_XCPULIST = 7, + FILE_CPU_EXCLUSIVE = 8, + FILE_MEM_EXCLUSIVE = 9, + FILE_MEM_HARDWALL = 10, + FILE_SCHED_LOAD_BALANCE = 11, + FILE_PARTITION_ROOT = 12, + FILE_SCHED_RELAX_DOMAIN_LEVEL = 13, + FILE_MEMORY_PRESSURE_ENABLED = 14, + FILE_MEMORY_PRESSURE = 15, + FILE_SPREAD_PAGE = 16, + FILE_SPREAD_SLAB = 17, +} cpuset_filetype_t; + +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; long: 32; - 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; + u64 time_start; + int cpu; long: 32; }; -struct platform_device_id { - char name[20]; - kernel_ulong_t driver_data; -}; - -struct arm_pmu; - -typedef int (*armpmu_init_fn)(struct arm_pmu *); +struct trace_pid_list; -struct pmu_probe_info { - unsigned int cpuid; - unsigned int mask; - armpmu_init_fn init; -}; +struct trace_options; -struct pmu_hw_events; +struct trace_func_repeats; -struct arm_pmu { - struct pmu pmu; - cpumask_t supported_cpus; +struct trace_array { + struct list_head list; char *name; - int pmuver; - irqreturn_t (*handle_irq)(struct arm_pmu *); - void (*enable)(struct perf_event *); - void (*disable)(struct perf_event *); - int (*get_event_idx)(struct pmu_hw_events *, struct perf_event *); - void (*clear_event_idx)(struct pmu_hw_events *, struct perf_event *); - int (*set_event_filter)(struct hw_perf_event *, struct perf_event_attr *); - u64 (*read_counter)(struct perf_event *); - void (*write_counter)(struct perf_event *, u64); - void (*start)(struct arm_pmu *); - void (*stop)(struct arm_pmu *); - void (*reset)(void *); - int (*map_event)(struct perf_event *); - int num_events; - bool secure_access; - unsigned long pmceid_bitmap[2]; - unsigned long pmceid_ext_bitmap[2]; - struct platform_device *plat_device; - struct pmu_hw_events __attribute__((btf_type_tag("percpu"))) *hw_events; - struct hlist_node node; - struct notifier_block cpu_pm_nb; - const struct attribute_group *attr_groups[5]; - u64 reg_pmmir; - unsigned long acpi_cpuid; + long: 32; + 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[460]; + struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[460]; + 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 eventfs_inode *event_dir; + struct trace_options *topts; + struct list_head systems; + struct list_head events; + struct trace_event_file *trace_marker_file; + cpumask_var_t tracing_cpumask; + cpumask_var_t pipe_cpumask; + int ref; + int trace_ref; + struct ftrace_ops *ops; + struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_pids; + struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_no_pids; + struct list_head func_probes; + struct list_head mod_trace; + struct list_head mod_notrace; + int function_enabled; + int no_filter_buffering_ref; + struct list_head hist_vars; + struct trace_func_repeats __attribute__((btf_type_tag("percpu"))) *last_func_repeats; + bool ring_buffer_expanded; long: 32; }; -struct pmu_hw_events { - struct perf_event *events[32]; - unsigned long used_mask[1]; - raw_spinlock_t pmu_lock; - struct arm_pmu *percpu_pmu; - int irq; +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; + long: 32; + u64 preempt_timestamp; + pid_t pid; + kuid_t uid; + char comm[16]; + int ftrace_ignore_pid; + bool ignore_pid; }; -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); +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; }; -struct perf_pmu_events_attr { - struct device_attribute attr; - u64 id; - const char *event_str; - long: 32; +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; }; -enum armpmu_attr_groups { - ARMPMU_ATTR_GROUP_COMMON = 0, - ARMPMU_ATTR_GROUP_EVENTS = 1, - ARMPMU_ATTR_GROUP_FORMATS = 2, - ARMPMU_ATTR_GROUP_CAPS = 3, - ARMPMU_NR_ATTR_GROUPS = 4, +struct tracer_opt; + +struct tracer_flags { + u32 val; + struct tracer_opt *opts; + struct tracer *trace; }; -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, +struct tracer_opt { + const char *name; + u32 bit; }; -struct cpu_efficiency { - const char *compatible; - unsigned long efficiency; +struct filter_pred; + +struct prog_entry { + int target; + int when_to_branch; + struct filter_pred *pred; }; -struct cpu_topology { - int thread_id; - int core_id; - int cluster_id; - int package_id; - cpumask_t thread_sibling; - cpumask_t core_sibling; - cpumask_t cluster_sibling; - cpumask_t llc_sibling; +union upper_chunk { + union upper_chunk *next; + union lower_chunk *data[256]; }; -struct vdso_timestamp { - u64 sec; - u64 nsec; +union lower_chunk { + union lower_chunk *next; + unsigned long data[512]; }; -struct timens_offset { - s64 sec; - u64 nsec; +struct event_subsystem; + +struct trace_subsystem_dir { + struct list_head list; + struct event_subsystem *subsystem; + struct trace_array *tr; + struct eventfs_inode *ei; + int ref_count; + int nr_events; }; -struct arch_vdso_data {}; +struct event_subsystem { + struct list_head list; + const char *name; + struct event_filter *filter; + int ref_count; +}; -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 trace_option_dentry; + +struct trace_options { + struct tracer *tracer; + struct trace_option_dentry *topts; }; -union vdso_data_store { - struct vdso_data data[2]; - u8 page[4096]; +struct trace_option_dentry { + struct tracer_opt *opt; + struct tracer_flags *flags; + struct trace_array *tr; + struct dentry *entry; }; -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 trace_func_repeats { + unsigned long ip; + unsigned long parent_ip; + unsigned long count; + long: 32; + u64 ts_last_call; }; -struct elfinfo { - Elf32_Ehdr *hdr; - Elf32_Sym *dynsym; - unsigned long dynsymsize; - char *dynstr; +struct ftrace_graph_ent; + +typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); + +struct ftrace_graph_ret; + +typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); + +struct fgraph_ops { + trace_func_graph_ent_t entryfunc; + trace_func_graph_ret_t retfunc; }; -typedef struct { - __u8 b[16]; -} guid_t; +struct ftrace_graph_ent { + unsigned long func; + int depth; +}; -typedef guid_t efi_guid_t; +struct ftrace_graph_ret { + unsigned long func; + int depth; + unsigned int overrun; + unsigned long long calltime; + unsigned long long rettime; +}; -typedef struct { - efi_guid_t guid; - unsigned long *ptr; - const char name[16]; -} efi_config_table_type_t; +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 { - MT_UNCACHED = 4, - MT_CACHECLEAN = 5, - MT_MINICLEAN = 6, - MT_LOW_VECTORS = 7, - MT_HIGH_VECTORS = 8, - MT_MEMORY_RWX = 9, - MT_MEMORY_RW = 10, - MT_MEMORY_RO = 11, - MT_ROM = 12, - MT_MEMORY_RWX_NONCACHED = 13, - MT_MEMORY_RW_DTCM = 14, - MT_MEMORY_RWX_ITCM = 15, - MT_MEMORY_RW_SO = 16, - MT_MEMORY_DMA_READY = 17, + 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, }; -struct cdev { - struct kobject kobj; - struct module *owner; - const struct file_operations *ops; - struct list_head list; - dev_t dev; - unsigned int count; +enum trace_iterator_flags { + TRACE_ITER_PRINT_PARENT = 1, + TRACE_ITER_SYM_OFFSET = 2, + TRACE_ITER_SYM_ADDR = 4, + TRACE_ITER_VERBOSE = 8, + TRACE_ITER_RAW = 16, + TRACE_ITER_HEX = 32, + TRACE_ITER_BIN = 64, + TRACE_ITER_BLOCK = 128, + TRACE_ITER_FIELDS = 256, + TRACE_ITER_PRINTK = 512, + TRACE_ITER_ANNOTATE = 1024, + TRACE_ITER_USERSTACKTRACE = 2048, + TRACE_ITER_SYM_USEROBJ = 4096, + TRACE_ITER_PRINTK_MSGONLY = 8192, + TRACE_ITER_CONTEXT_INFO = 16384, + TRACE_ITER_LATENCY_FMT = 32768, + TRACE_ITER_RECORD_CMD = 65536, + TRACE_ITER_RECORD_TGID = 131072, + TRACE_ITER_OVERWRITE = 262144, + TRACE_ITER_STOP_ON_FREE = 524288, + TRACE_ITER_IRQ_INFO = 1048576, + TRACE_ITER_MARKERS = 2097152, + TRACE_ITER_EVENT_FORK = 4194304, + TRACE_ITER_PAUSE_ON_TRACE = 8388608, + TRACE_ITER_HASH_PTR = 16777216, + TRACE_ITER_FUNCTION = 33554432, + TRACE_ITER_FUNC_FORK = 67108864, + TRACE_ITER_DISPLAY_GRAPH = 134217728, + TRACE_ITER_STACKTRACE = 268435456, }; -typedef int (*pte_fn_t)(pte_t *, unsigned long, void *); +enum { + FTRACE_HASH_FL_MOD = 1, +}; -typedef struct { - u32 type; - u32 pad; - u64 phys_addr; - u64 virt_addr; - u64 num_pages; - u64 attribute; -} efi_memory_desc_t; +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, +}; -struct efi_arm_entry_state { - u32 cpsr_before_ebs; - u32 sctlr_before_ebs; - u32 cpsr_after_ebs; - u32 sctlr_after_ebs; +enum { + FLAGS_FILL_FULL = 268435456, + FLAGS_FILL_START = 536870912, + FLAGS_FILL_END = 805306368, }; -enum writeback_sync_modes { - WB_SYNC_NONE = 0, - WB_SYNC_ALL = 1, +typedef u64 uint64_t; + +struct fgraph_cpu_data { + pid_t last_pid; + int depth; + int depth_irq; + int ignore; + unsigned long enter_funcs[50]; }; -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 ftrace_graph_ent_entry { + struct trace_entry ent; + struct ftrace_graph_ent graph_ent; +}; + +struct ftrace_graph_ret_entry { + struct trace_entry ent; + struct ftrace_graph_ret ret; +}; + +struct ftrace_func_entry { + struct hlist_node hlist; + unsigned long ip; + unsigned long direct; +}; + +struct fgraph_data { + struct fgraph_cpu_data __attribute__((btf_type_tag("percpu"))) *cpu_data; + struct ftrace_graph_ent_entry ent; + struct ftrace_graph_ret_entry ret; + int failed; + int cpu; +}; + +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_prog_type { @@ -7540,249 +9399,17 @@ enum bpf_attach_type { BPF_LSM_CGROUP = 43, BPF_STRUCT_OPS = 44, BPF_NETFILTER = 45, - __MAX_BPF_ATTACH_TYPE = 46, -}; - -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, -}; - -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, -}; - -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, -}; - -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, - BPF_REFCOUNT = 256, -}; - -enum { - SPECTRE_UNAFFECTED = 0, - SPECTRE_MITIGATED = 1, - SPECTRE_VULNERABLE = 2, -}; - -enum { - SPECTRE_V2_METHOD_BPIALL = 1, - SPECTRE_V2_METHOD_ICIALLU = 2, - SPECTRE_V2_METHOD_SMC = 4, - SPECTRE_V2_METHOD_HVC = 8, - SPECTRE_V2_METHOD_LOOP8 = 16, -}; - -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; - struct swap_iocb **swap_plug; - long: 32; -}; - -struct gendisk; - -struct disk_stats; - -struct blk_holder_ops; - -struct partition_meta_info; - -struct block_device { - sector_t bd_start_sect; - sector_t bd_nr_sectors; - struct gendisk *bd_disk; - struct request_queue *bd_queue; - struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats; - unsigned long bd_stamp; - bool bd_read_only; - u8 bd_partno; - bool bd_write_holder; - bool bd_has_submit_bio; - dev_t bd_dev; - atomic_t bd_openers; - spinlock_t bd_size_lock; - struct inode *bd_inode; - struct super_block *bd_super; - void *bd_claiming; - void *bd_holder; - const struct blk_holder_ops *bd_holder_ops; - struct mutex bd_holder_lock; - int bd_fsfreeze_count; - int bd_holders; - struct kobject *bd_holder_dir; - struct mutex bd_fsfreeze_mutex; - struct super_block *bd_fsfreeze_sb; - struct partition_meta_info *bd_meta_info; - struct device bd_device; -}; - -struct disk_stats { - u64 nsecs[4]; - unsigned long sectors[4]; - unsigned long ios[4]; - unsigned long merges[4]; - unsigned long io_ticks; - local_t in_flight[2]; - long: 32; -}; - -struct blk_holder_ops { - void (*mark_dead)(struct block_device *); -}; - -struct fprop_local_percpu { - struct percpu_counter events; - unsigned int period; - raw_spinlock_t lock; -}; - -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; - long: 32; - 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; - long: 32; - 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; - long: 32; - 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; - long: 32; + BPF_TCX_INGRESS = 46, + BPF_TCX_EGRESS = 47, + BPF_TRACE_UPROBE_MULTI = 48, + BPF_CGROUP_UNIX_CONNECT = 49, + BPF_CGROUP_UNIX_SENDMSG = 50, + BPF_CGROUP_UNIX_RECVMSG = 51, + BPF_CGROUP_UNIX_GETPEERNAME = 52, + BPF_CGROUP_UNIX_GETSOCKNAME = 53, + BPF_NETKIT_PRIMARY = 54, + BPF_NETKIT_PEER = 55, + __MAX_BPF_ATTACH_TYPE = 56, }; struct sock_filter { @@ -7792,8 +9419,6 @@ struct sock_filter { __u32 k; }; -typedef short __s16; - struct bpf_insn { __u8 code; __u8 dst_reg: 4; @@ -7905,6 +9530,7 @@ struct bpf_prog_aux { u32 stack_depth; u32 id; u32 func_cnt; + u32 real_func_cnt; u32 func_idx; u32 attach_btf_id; u32 ctx_arg_info_size; @@ -7925,6 +9551,8 @@ struct bpf_prog_aux { bool sleepable; bool tail_call_reachable; bool xdp_has_frags; + bool exception_cb; + bool exception_boundary; const struct btf_type *attach_func_proto; const char *attach_func_name; struct bpf_prog **func; @@ -7946,6 +9574,7 @@ struct bpf_prog_aux { int cgroup_atype; struct bpf_map *cgroup_storage[2]; char name[16]; + unsigned int (*bpf_exception_cb)(u64, u64, u64); struct bpf_prog_offload *offload; struct btf *btf; struct bpf_func_info *func_info; @@ -7962,6 +9591,38 @@ struct bpf_prog_aux { struct work_struct work; struct callback_head rcu; }; + long: 32; +}; + +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 { @@ -8011,2455 +9672,2296 @@ struct bpf_tramp_image { }; }; -struct btf_type { - __u32 name_off; - __u32 info; - union { - __u32 size; - __u32 type; - }; +struct fc_log; + +struct p_log { + const char *prefix; + struct fc_log *log; }; -struct bpf_jit_poke_descriptor { - void *tailcall_target; - void *tailcall_bypass; - void *bypass_addr; - void *aux; +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; + enum fs_context_purpose purpose: 8; + enum fs_context_phase phase: 8; + bool need_free: 1; + bool global: 1; + bool oldapi: 1; + bool exclusive: 1; +}; + +struct fs_context_operations { + void (*free)(struct fs_context *); + int (*dup)(struct fs_context *, struct fs_context *); + int (*parse_param)(struct fs_context *, struct fs_parameter *); + int (*parse_monolithic)(struct fs_context *, void *); + int (*get_tree)(struct fs_context *); + int (*reconfigure)(struct fs_context *); +}; + +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 { - struct { - struct bpf_map *map; - u32 key; - } tail_call; + char *string; + void *blob; + struct filename *name; + struct file *file; }; - bool tailcall_target_stable; - u8 adj_off; - u16 reason; - u32 insn_idx; + size_t size; + int dirfd; }; -struct bpf_map_ops; +struct audit_names; -struct btf_record; +struct filename { + const char *name; + const char __attribute__((btf_type_tag("user"))) *uptr; + atomic_t refcnt; + struct audit_names *aname; + const char iname[0]; +}; -struct bpf_map { - const struct bpf_map_ops *ops; - struct bpf_map *inner_map_meta; - enum bpf_map_type map_type; - u32 key_size; - u32 value_size; - u32 max_entries; - u64 map_extra; - u32 map_flags; - u32 id; - struct btf_record *record; - int numa_node; - u32 btf_key_type_id; - u32 btf_value_type_id; - u32 btf_vmlinux_value_type_id; - struct btf *btf; - char name[16]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - atomic64_t refcnt; - atomic64_t usercnt; - struct work_struct work; - struct mutex freeze_mutex; - long: 32; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct ref_tracker_dir {}; + +struct raw_notifier_head { + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64); +struct prot_inuse; -union bpf_attr; +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 bpf_verifier_env; +struct ipstats_mib; -struct bpf_func_state; +struct tcp_mib; -struct bpf_iter_seq_info; +struct linux_mib; -struct bpf_map_ops { - int (*map_alloc_check)(union bpf_attr *); - struct bpf_map * (*map_alloc)(union bpf_attr *); - void (*map_release)(struct bpf_map *, struct file *); - void (*map_free)(struct bpf_map *); - int (*map_get_next_key)(struct bpf_map *, void *, void *); - void (*map_release_uref)(struct bpf_map *); - void * (*map_lookup_elem_sys_only)(struct bpf_map *, void *); - int (*map_lookup_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); - int (*map_lookup_and_delete_elem)(struct bpf_map *, void *, void *, u64); - int (*map_lookup_and_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); - int (*map_update_batch)(struct bpf_map *, struct file *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); - int (*map_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); - void * (*map_lookup_elem)(struct bpf_map *, void *); - long (*map_update_elem)(struct bpf_map *, void *, void *, u64); - long (*map_delete_elem)(struct bpf_map *, void *); - long (*map_push_elem)(struct bpf_map *, void *, u64); - long (*map_pop_elem)(struct bpf_map *, void *); - long (*map_peek_elem)(struct bpf_map *, void *); - void * (*map_lookup_percpu_elem)(struct bpf_map *, void *, u32); - void * (*map_fd_get_ptr)(struct bpf_map *, struct file *, int); - void (*map_fd_put_ptr)(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 *); - long (*map_redirect)(struct bpf_map *, u64, u64); - bool (*map_meta_equal)(const struct bpf_map *, const struct bpf_map *); - int (*map_set_for_each_callback_args)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *); - long (*map_for_each_callback)(struct bpf_map *, bpf_callback_t, void *, u64); - u64 (*map_mem_usage)(const struct bpf_map *); - int *map_btf_id; - const struct bpf_iter_seq_info *iter_seq_info; -}; - -union bpf_attr { - struct { - __u32 map_type; - __u32 key_size; - __u32 value_size; - __u32 max_entries; - __u32 map_flags; - __u32 inner_map_fd; - __u32 numa_node; - char map_name[16]; - __u32 map_ifindex; - __u32 btf_fd; - __u32 btf_key_type_id; - __u32 btf_value_type_id; - __u32 btf_vmlinux_value_type_id; - __u64 map_extra; - }; - struct { - __u32 map_fd; - long: 32; - __u64 key; - union { - __u64 value; - __u64 next_key; - }; - __u64 flags; - }; - struct { - __u64 in_batch; - __u64 out_batch; - __u64 keys; - __u64 values; - __u32 count; - __u32 map_fd; - __u64 elem_flags; - __u64 flags; - } batch; - struct { - __u32 prog_type; - __u32 insn_cnt; - __u64 insns; - __u64 license; - __u32 log_level; - __u32 log_size; - __u64 log_buf; - __u32 kern_version; - __u32 prog_flags; - char prog_name[16]; - __u32 prog_ifindex; - __u32 expected_attach_type; - __u32 prog_btf_fd; - __u32 func_info_rec_size; - __u64 func_info; - __u32 func_info_cnt; - __u32 line_info_rec_size; - __u64 line_info; - __u32 line_info_cnt; - __u32 attach_btf_id; - union { - __u32 attach_prog_fd; - __u32 attach_btf_obj_fd; - }; - __u32 core_relo_cnt; - __u64 fd_array; - __u64 core_relos; - __u32 core_relo_rec_size; - __u32 log_true_size; - }; - struct { - __u64 pathname; - __u32 bpf_fd; - __u32 file_flags; - __s32 path_fd; - long: 32; - }; - 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; - long: 32; - } 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; - long: 32; - __u64 prog_attach_flags; - } query; - struct { - __u64 name; - __u32 prog_fd; - long: 32; - } raw_tracepoint; - struct { - __u64 btf; - __u64 btf_log_buf; - __u32 btf_size; - __u32 btf_log_size; - __u32 btf_log_level; - __u32 btf_log_true_size; - }; - struct { - __u32 pid; - __u32 fd; - __u32 flags; - __u32 buf_len; - __u64 buf; - __u32 prog_id; - __u32 fd_type; - __u64 probe_offset; - __u64 probe_addr; - } task_fd_query; - struct { - union { - __u32 prog_fd; - __u32 map_fd; - }; - union { - __u32 target_fd; - __u32 target_ifindex; - }; - __u32 attach_type; - __u32 flags; - union { - __u32 target_btf_id; - struct { - __u64 iter_info; - __u32 iter_info_len; - long: 32; - }; - struct { - __u64 bpf_cookie; - } perf_event; - struct { - __u32 flags; - __u32 cnt; - __u64 syms; - __u64 addrs; - __u64 cookies; - } kprobe_multi; - struct { - __u32 target_btf_id; - long: 32; - __u64 cookie; - } tracing; - struct { - __u32 pf; - __u32 hooknum; - __s32 priority; - __u32 flags; - } netfilter; - }; - } link_create; - struct { - __u32 link_fd; - union { - __u32 new_prog_fd; - __u32 new_map_fd; - }; - __u32 flags; - union { - __u32 old_prog_fd; - __u32 old_map_fd; - }; - } link_update; - struct { - __u32 link_fd; - } link_detach; - struct { - __u32 type; - } enable_stats; - struct { - __u32 link_fd; - __u32 flags; - } iter_create; - struct { - __u32 prog_fd; - __u32 map_fd; - __u32 flags; - } prog_bind_map; -}; +struct udp_mib; -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 icmp_mib; -struct btf_kfunc_set_tab; +struct icmpmsg_mib; -struct btf_id_dtor_kfunc_tab; +struct icmpv6_mib; -struct btf_struct_metas; +struct icmpv6msg_mib; -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[60]; - bool kernel_btf; +struct netns_mib { + struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ip_statistics; + struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ipv6_statistics; + struct tcp_mib __attribute__((btf_type_tag("percpu"))) *tcp_statistics; + struct linux_mib __attribute__((btf_type_tag("percpu"))) *net_statistics; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_statistics; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_stats_in6; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_statistics; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_stats_in6; + struct icmp_mib __attribute__((btf_type_tag("percpu"))) *icmp_statistics; + struct icmpmsg_mib *icmpmsg_statistics; + struct icmpv6_mib __attribute__((btf_type_tag("percpu"))) *icmpv6_statistics; + struct icmpv6msg_mib *icmpv6msg_statistics; + struct proc_dir_entry *proc_net_devsnmp6; }; -struct 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; +struct netns_packet { + struct mutex sklist_lock; + struct hlist_head sklist; }; -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; +struct unix_table { + spinlock_t *locks; + struct hlist_head *buckets; }; -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 netns_unix { + struct unix_table table; + int sysctl_max_dgram_qlen; + struct ctl_table_header *ctl; }; -struct btf_field_graph_root { - struct btf *btf; - u32 value_btf_id; - u32 node_offset; - struct btf_record *value_rec; +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 btf_field { - u32 offset; - u32 size; - enum btf_field_type type; - union { - struct btf_field_kptr kptr; - struct btf_field_graph_root graph_root; - }; -}; +struct inet_hashinfo; -struct btf_record { - u32 cnt; - u32 field_mask; - int spin_lock_off; - int timer_off; - int refcount_off; - struct btf_field fields[0]; +struct inet_timewait_death_row { + refcount_t tw_refcount; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct inet_hashinfo *hashinfo; + int sysctl_max_tw_buckets; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct bpf_prog_ops { - int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); +struct local_ports { + seqlock_t lock; + int range[2]; + bool warned; }; -struct btf_mod_pair { - struct btf *btf; - struct module *module; +struct ping_group_range { + seqlock_t lock; + kgid_t range[2]; }; -struct net_device; +typedef struct { + u64 key[2]; +} siphash_key_t; -struct bpf_offload_dev; +struct udp_table; -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 ipv4_devconf; -struct bpf_func_info { - __u32 insn_off; - __u32 type_id; -}; +struct ip_ra_chain; -struct bpf_func_info_aux { - u16 linkage; - bool unreliable; -}; +struct inet_peer_base; -struct bpf_line_info { - __u32 insn_off; - __u32 file_name_off; - __u32 line_off; - __u32 line_col; -}; +struct fqdir; -struct bpf_run_ctx {}; +struct tcp_congestion_ops; -struct fsr_info { - int (*fn)(unsigned long, unsigned int, struct pt_regs *); - int sig; - int code; - const char *name; -}; +struct tcp_fastopen_context; -enum zone_type { - ZONE_DMA = 0, - ZONE_NORMAL = 1, - ZONE_HIGHMEM = 2, - ZONE_MOVABLE = 3, - __MAX_NR_ZONES = 4, -}; +struct fib_notifier_ops; -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 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; + bool fib_has_custom_local_routes; + bool fib_offload_disabled; + u8 sysctl_tcp_shrink_window; + struct hlist_head *fib_table_hash; + struct sock *fibnl; + struct sock *mc_autojoin_sk; + struct inet_peer_base *peers; + struct fqdir *fqdir; + u8 sysctl_icmp_echo_ignore_all; + u8 sysctl_icmp_echo_enable_probe; + u8 sysctl_icmp_echo_ignore_broadcasts; + u8 sysctl_icmp_ignore_bogus_error_responses; + u8 sysctl_icmp_errors_use_inbound_ifaddr; + int sysctl_icmp_ratelimit; + int sysctl_icmp_ratemask; + u32 ip_rt_min_pmtu; + int ip_rt_mtu_expires; + int ip_rt_min_advmss; + struct local_ports ip_local_ports; + u8 sysctl_tcp_ecn; + u8 sysctl_tcp_ecn_fallback; + u8 sysctl_ip_default_ttl; + u8 sysctl_ip_no_pmtu_disc; + u8 sysctl_ip_fwd_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; + u8 sysctl_tcp_backlog_ack_defer; + u8 sysctl_tcp_pingpong_thresh; + 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_tcp_syn_linear_timeouts; + u8 sysctl_igmp_llm_reports; + int sysctl_igmp_max_memberships; + int sysctl_igmp_max_msf; + int sysctl_igmp_qrv; + struct ping_group_range ping_group_range; + atomic_t dev_addr_genid; + unsigned int sysctl_udp_child_hash_entries; + unsigned long *sysctl_local_reserved_ports; + int sysctl_ip_prot_sock; + struct fib_notifier_ops *notifier_ops; + unsigned int fib_seq; + struct fib_notifier_ops *ipmr_notifier_ops; + unsigned int ipmr_seq; + atomic_t rt_genid; + siphash_key_t ip_id_key; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -typedef void (*harden_branch_predictor_fn_t)(); - -typedef u32 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); - -typedef u32 probes_opcode_t; - -struct arch_probes_insn; - -typedef void probes_insn_handler_t(probes_opcode_t, struct arch_probes_insn *, struct pt_regs *); - -typedef unsigned long probes_check_cc(unsigned long); - -typedef void probes_insn_singlestep_t(probes_opcode_t, struct arch_probes_insn *, struct pt_regs *); +struct dst_entry; -typedef void probes_insn_fn_t(); +struct net_device; -struct arch_probes_insn { - probes_opcode_t *insn; - probes_insn_handler_t *insn_handler; - probes_check_cc *insn_check_cc; - probes_insn_singlestep_t *insn_singlestep; - probes_insn_fn_t *insn_fn; - int stack_space; - unsigned long register_usage_flags; - bool kprobe_direct_exec; -}; +struct sk_buff; -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_probes_insn ainsn; - u32 flags; -}; +struct neighbour; -struct tagtable { - __u32 tag; - int (*parse)(const struct tag *); +struct dst_ops { + unsigned short family; + unsigned int gc_thresh; + void (*gc)(struct dst_ops *); + struct dst_entry * (*check)(struct dst_entry *, __u32); + unsigned int (*default_advmss)(const struct dst_entry *); + unsigned int (*mtu)(const struct dst_entry *); + u32 * (*cow_metrics)(struct dst_entry *, unsigned long); + void (*destroy)(struct dst_entry *); + void (*ifdown)(struct dst_entry *, struct net_device *); + struct dst_entry * (*negative_advice)(struct dst_entry *); + void (*link_failure)(struct sk_buff *); + void (*update_pmtu)(struct dst_entry *, struct sock *, struct sk_buff *, u32, bool); + void (*redirect)(struct dst_entry *, struct sock *, struct sk_buff *); + int (*local_out)(struct net *, struct sock *, struct sk_buff *); + struct neighbour * (*neigh_lookup)(const struct dst_entry *, struct sk_buff *, const void *); + void (*confirm_neigh)(const struct dst_entry *, const void *); + struct kmem_cache *kmem_cachep; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct percpu_counter pcpuc_entries; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct section_perm { - const char *name; - unsigned long start; - unsigned long end; - pmdval_t mask; - pmdval_t prot; - pmdval_t clear; +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[8]; + unsigned long *icmpv6_ratemask_ptr; + u8 anycast_src_echo_reply; + u8 ip_nonlocal_bind; + u8 fwmark_reflect; + u8 flowlabel_state_ranges; + int idgen_retries; + int idgen_delay; + int flowlabel_reflect; + int max_dst_opts_cnt; + int max_hbh_opts_cnt; + int max_dst_opts_len; + int max_hbh_opts_len; + int seg6_flowlabel; + u32 ioam6_id; + u64 ioam6_id_wide; + u8 skip_notify_on_dev_down; + u8 fib_notify_on_flag_change; + u8 icmpv6_error_anycast_as_unicast; + long: 32; }; -enum memblock_flags { - MEMBLOCK_NONE = 0, - MEMBLOCK_HOTPLUG = 1, - MEMBLOCK_MIRROR = 2, - MEMBLOCK_NOMAP = 4, - MEMBLOCK_DRIVER_MANAGED = 8, -}; +struct ipv6_devconf; -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, - __NR_PAGEFLAGS = 22, - 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_isolated = 18, - PG_reported = 2, -}; +struct fib6_info; -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 rt6_info; -struct wait_queue_entry; +struct rt6_statistics; -typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *); +struct fib6_table; -struct wait_queue_entry { - unsigned int flags; - void *private; - wait_queue_func_t func; - struct list_head entry; -}; +struct fib_rules_ops; -typedef struct wait_queue_entry wait_queue_entry_t; +struct seg6_pernet_data; -struct wait_page_queue { - struct folio *folio; - int bit_nr; - wait_queue_entry_t wait; -}; +struct ioam6_pernet_data; -struct swap_cluster_info { - spinlock_t lock; - unsigned int data: 24; - unsigned int flags: 8; +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; + bool fib6_has_custom_rules; + unsigned int fib6_rules_require_fldissect; + unsigned int fib6_routes_require_src; + struct rt6_info *ip6_prohibit_entry; + struct rt6_info *ip6_blk_hole_entry; + struct fib6_table *fib6_local_tbl; + struct fib_rules_ops *fib6_rules_ops; + 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: 32; + long: 32; }; -struct swap_cluster_list { - struct swap_cluster_info head; - struct swap_cluster_info tail; +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 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 xfrm_policy_hash { + struct hlist_head __attribute__((btf_type_tag("rcu"))) *table; + unsigned int hmask; + u8 dbits4; + u8 sbits4; + u8 dbits6; + u8 sbits6; }; -struct percpu_cluster { - struct swap_cluster_info index; - unsigned int next; +struct xfrm_policy_hthresh { + struct work_struct work; + seqlock_t lock; + u8 lbits4; + u8 rbits4; + u8 lbits6; + u8 rbits6; }; -struct sg_table { - struct scatterlist *sgl; - unsigned int nents; - unsigned int orig_nents; +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; + unsigned int idx_generator; + 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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + 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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct scatterlist { - unsigned long page_link; - unsigned int offset; - unsigned int length; - dma_addr_t dma_address; - unsigned int dma_length; -}; +struct can_dev_rcv_lists; -struct reclaim_state { - unsigned long reclaimed; -}; +struct can_pkg_stats; -struct memblock_region; +struct can_rcv_lists_stats; -struct memblock_type { - unsigned long cnt; - unsigned long max; - phys_addr_t total_size; - struct memblock_region *regions; - char *name; +struct netns_can { + struct proc_dir_entry *proc_dir; + struct proc_dir_entry *pde_stats; + struct proc_dir_entry *pde_reset_stats; + struct proc_dir_entry *pde_rcvlist_all; + struct proc_dir_entry *pde_rcvlist_fil; + struct proc_dir_entry *pde_rcvlist_inv; + struct proc_dir_entry *pde_rcvlist_sff; + struct proc_dir_entry *pde_rcvlist_eff; + struct proc_dir_entry *pde_rcvlist_err; + struct proc_dir_entry *bcmproc_dir; + struct can_dev_rcv_lists *rx_alldev_list; + spinlock_t rcvlists_lock; + struct timer_list stattimer; + struct can_pkg_stats *pkg_stats; + struct can_rcv_lists_stats *rcv_lists_stats; + struct hlist_head cgw_list; }; -struct memblock_region { - phys_addr_t base; - phys_addr_t size; - enum memblock_flags flags; +struct netns_xdp { + struct mutex lock; + struct hlist_head list; }; -struct obs_kernel_param { - const char *str; - int (*setup_func)(char *); - int early; -}; +struct uevent_sock; -struct dma_contig_early_reserve { - phys_addr_t base; - unsigned long size; +struct net_generic; + +struct net { + refcount_t passive; + spinlock_t rules_mod_lock; + atomic_t dev_unreg_count; + unsigned int dev_base_seq; + u32 ifindex; + spinlock_t nsid_lock; + atomic_t fnhe_genid; + struct list_head list; + struct list_head exit_list; + struct llist_node cleanup_list; + struct key_tag *key_domain; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct idr netns_ids; + struct ns_common ns; + struct ref_tracker_dir refcnt_tracker; + struct ref_tracker_dir notrefcnt_tracker; + struct list_head dev_base_head; + struct proc_dir_entry *proc_net; + struct proc_dir_entry *proc_net_stat; + struct ctl_table_set sysctls; + struct sock *rtnl; + struct sock *genl_sock; + struct uevent_sock *uevent_sock; + struct hlist_head *dev_name_head; + struct hlist_head *dev_index_head; + struct xarray dev_by_index; + struct raw_notifier_head netdev_chain; + u32 hash_mix; + struct net_device *loopback_dev; + struct list_head rules_ops; + struct netns_core core; + struct netns_mib mib; + struct netns_packet packet; + struct netns_unix unx; + struct netns_nexthop nexthop; + long: 32; + long: 32; + struct netns_ipv4 ipv4; + struct netns_ipv6 ipv6; + struct net_generic __attribute__((btf_type_tag("rcu"))) *gen; + struct netns_bpf bpf; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct netns_xfrm xfrm; + u64 net_cookie; + struct netns_can can; + struct netns_xdp xdp; + struct sock *crypto_nlsk; + struct sock *diag_nlsk; + long: 32; + long: 32; }; -struct gen_pool; +typedef __u64 __addrpair; -typedef unsigned long (*genpool_algo_t)(unsigned long *, unsigned long, unsigned long, unsigned int, void *, struct gen_pool *, unsigned long); +typedef __u32 __be32; -struct gen_pool { - spinlock_t lock; - struct list_head chunks; - int min_alloc_order; - genpool_algo_t algo; - void *data; - const char *name; -}; +typedef __u32 __portpair; -typedef int (*iommu_fault_handler_t)(struct iommu_domain *, struct device *, unsigned long, int, void *); +typedef __u16 __be16; -struct iommu_domain_geometry { - dma_addr_t aperture_start; - dma_addr_t aperture_end; - bool force_aperture; -}; +typedef struct {} possible_net_t; -struct iommu_dma_cookie; +struct in6_addr { + union { + __u8 u6_addr8[16]; + __be16 u6_addr16[8]; + __be32 u6_addr32[4]; + } in6_u; +}; -enum iommu_page_response_code { - IOMMU_PAGE_RESP_SUCCESS = 0, - IOMMU_PAGE_RESP_INVALID = 1, - IOMMU_PAGE_RESP_FAILURE = 2, +struct hlist_nulls_node { + struct hlist_nulls_node *next; + struct hlist_nulls_node **pprev; }; -struct iommu_fault; +struct proto; -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; +struct sock_common { union { + __addrpair skc_addrpair; struct { - iommu_fault_handler_t handler; - void *handler_token; + __be32 skc_daddr; + __be32 skc_rcv_saddr; }; + }; + union { + unsigned int skc_hash; + __u16 skc_u16hashes[2]; + }; + union { + __portpair skc_portpair; struct { - struct mm_struct *mm; - int users; + __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; + long: 32; + 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; + }; + long: 32; }; -struct iommu_iotlb_gather; +typedef struct { + spinlock_t slock; + int owned; + wait_queue_head_t wq; +} socket_lock_t; -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 sk_buff_list { + struct sk_buff *next; + struct sk_buff *prev; }; -struct iommu_iotlb_gather { - unsigned long start; - unsigned long end; - size_t pgsize; - struct list_head freelist; - bool queued; +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 iommu_fault_unrecoverable { - __u32 reason; - __u32 flags; - __u32 pasid; - __u32 perm; - __u64 addr; - __u64 fetch_addr; -}; +typedef u64 netdev_features_t; -struct iommu_fault_page_request { - __u32 flags; - __u32 pasid; - __u32 grpid; - __u32 perm; - __u64 addr; - __u64 private_data[2]; +struct sock_cgroup_data { + struct cgroup *cgroup; + u32 classid; + u16 prioidx; }; -struct iommu_fault { - __u32 type; - __u32 padding; +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; + int sk_disconnects; + struct sk_filter __attribute__((btf_type_tag("rcu"))) *sk_filter; union { - struct iommu_fault_unrecoverable event; - struct iommu_fault_page_request prm; - __u8 padding2[56]; + 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; + long: 32; + 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; + seqlock_t sk_stamp_seq; + 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; + 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 iommu_device { - struct list_head list; - const struct iommu_ops *ops; - struct fwnode_handle *fwnode; - struct device *dev; - u32 max_pasids; -}; +struct smc_hashinfo; -struct of_phandle_args { - struct device_node *np; - int args_count; - uint32_t args[16]; -}; +typedef struct { + union { + void *kernel; + void __attribute__((btf_type_tag("user"))) *user; + }; + bool is_kernel: 1; +} sockptr_t; -struct iommu_fault_event { - struct iommu_fault fault; - struct list_head list; -}; +struct sockaddr; -struct iommu_page_response { - __u32 argsz; - __u32 version; - __u32 flags; - __u32 pasid; - __u32 grpid; - __u32 code; -}; +struct msghdr; -struct dma_iommu_mapping { - struct iommu_domain *domain; - unsigned long **bitmaps; - unsigned int nr_bitmaps; - unsigned int extensions; - size_t bitmap_size; - size_t bits; - dma_addr_t base; - spinlock_t lock; - struct kref kref; -}; +struct sk_psock; -struct iopf_device_param; +struct request_sock_ops; -struct iommu_fault_param; +struct timewait_sock_ops; -struct iommu_fwspec; +struct raw_hashinfo; -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; +struct proto { + void (*close)(struct sock *, long); + int (*pre_connect)(struct sock *, struct sockaddr *, int); + int (*connect)(struct sock *, struct sockaddr *, int); + int (*disconnect)(struct sock *, int); + struct sock * (*accept)(struct sock *, int, int *, bool); + int (*ioctl)(struct sock *, int, int *); + int (*init)(struct sock *); + void (*destroy)(struct sock *); + void (*shutdown)(struct sock *, int); + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); + void (*keepalive)(struct sock *, int); + int (*sendmsg)(struct sock *, struct msghdr *, size_t); + int (*recvmsg)(struct sock *, struct msghdr *, size_t, int, int *); + void (*splice_eof)(struct socket *); + int (*bind)(struct sock *, struct sockaddr *, int); + int (*bind_add)(struct sock *, struct sockaddr *, int); + int (*backlog_rcv)(struct sock *, struct sk_buff *); + bool (*bpf_bypass_getsockopt)(int, int); + void (*release_cb)(struct sock *); + int (*hash)(struct sock *); + void (*unhash)(struct sock *); + void (*rehash)(struct sock *); + int (*get_port)(struct sock *, unsigned short); + void (*put_port)(struct sock *); + int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); + unsigned int inuse_idx; + bool (*stream_memory_free)(const struct sock *, int); + bool (*sock_is_readable)(struct sock *); + void (*enter_memory_pressure)(struct sock *); + void (*leave_memory_pressure)(struct sock *); + atomic_long_t *memory_allocated; + int __attribute__((btf_type_tag("percpu"))) *per_cpu_fw_alloc; + struct percpu_counter *sockets_allocated; + unsigned long *memory_pressure; + long *sysctl_mem; + int *sysctl_wmem; + int *sysctl_rmem; + u32 sysctl_wmem_offset; + u32 sysctl_rmem_offset; + int max_header; + bool no_autobind; + struct kmem_cache *slab; + unsigned int obj_size; + unsigned int ipv6_pinfo_offset; + slab_flags_t slab_flags; + unsigned int useroffset; + unsigned int usersize; + unsigned int __attribute__((btf_type_tag("percpu"))) *orphan_count; + struct request_sock_ops *rsk_prot; + struct timewait_sock_ops *twsk_prot; + union { + struct inet_hashinfo *hashinfo; + struct udp_table *udp_table; + struct raw_hashinfo *raw_hash; + struct smc_hashinfo *smc_hash; + } h; + struct module *owner; + char name[32]; + struct list_head node; + int (*diag_destroy)(struct sock *, int); }; -typedef int (*iommu_dev_fault_handler_t)(struct iommu_fault *, void *); +typedef unsigned short __kernel_sa_family_t; -struct iommu_fault_param { - iommu_dev_fault_handler_t handler; - void *data; - struct list_head faults; - struct mutex lock; -}; +typedef __kernel_sa_family_t sa_family_t; -struct iommu_fwspec { - const struct iommu_ops *ops; - struct fwnode_handle *iommu_fwnode; - u32 flags; - unsigned int num_ids; - u32 ids[0]; +struct sockaddr { + sa_family_t sa_family; + union { + char sa_data_min[14]; + struct { + struct {} __empty_sa_data; + char sa_data[0]; + }; + }; }; -struct arm_dma_alloc_args; - -struct arm_dma_free_args; +struct ubuf_info; -struct arm_dma_allocator { - void * (*alloc)(struct arm_dma_alloc_args *, struct page **); - void (*free)(struct arm_dma_free_args *); +struct msghdr { + void *msg_name; + int msg_namelen; + int msg_inq; + long: 32; + 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); + long: 32; }; -struct arm_dma_alloc_args { - struct device *dev; - size_t size; - gfp_t gfp; - pgprot_t prot; - const void *caller; - bool want_vaddr; - int coherent_flag; +struct ubuf_info { + void (*callback)(struct sk_buff *, struct ubuf_info *, bool); + refcount_t refcnt; + u8 flags; }; -struct arm_dma_free_args { - struct device *dev; - size_t size; - void *cpu_addr; - struct page *page; - bool want_vaddr; -}; +typedef __u32 __wsum; -enum node_states { - N_POSSIBLE = 0, - N_ONLINE = 1, - N_NORMAL_MEMORY = 2, - N_HIGH_MEMORY = 3, - N_MEMORY = 4, - N_CPU = 5, - N_GENERIC_INITIATOR = 6, - NR_NODE_STATES = 7, +typedef unsigned char *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 int len; + unsigned int data_len; + __u16 mac_len; + __u16 hdr_len; + __u16 queue_mapping; + __u8 __cloned_offset[0]; + __u8 cloned: 1; + __u8 nohdr: 1; + __u8 fclone: 2; + __u8 peeked: 1; + __u8 head_frag: 1; + __u8 pfmemalloc: 1; + __u8 pp_recycle: 1; + __u8 active_extensions; + union { + struct { + __u8 __pkt_type_offset[0]; + __u8 pkt_type: 3; + __u8 ignore_df: 1; + __u8 dst_pending_confirm: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 __mono_tc_offset[0]; + __u8 mono_delivery_time: 1; + __u8 tc_at_ingress: 1; + __u8 tc_skip_classify: 1; + __u8 remcsum_offload: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 inner_protocol_type: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 ndisc_nodetype: 2; + __u8 offload_fwd_mark: 1; + __u8 offload_l3_fwd_mark: 1; + __u8 redirected: 1; + __u8 slow_gro: 1; + __u16 tc_index; + u16 alloc_cpu; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + union { + u32 vlan_all; + struct { + __be16 vlan_proto; + __u16 vlan_tci; + }; + }; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + union { + __u32 mark; + __u32 reserved_tailroom; + }; + union { + __be16 inner_protocol; + __u8 inner_ipproto; + }; + __u16 inner_transport_header; + __u16 inner_network_header; + __u16 inner_mac_header; + __be16 protocol; + __u16 transport_header; + __u16 network_header; + __u16 mac_header; + }; + struct { + __u8 __pkt_type_offset[0]; + __u8 pkt_type: 3; + __u8 ignore_df: 1; + __u8 dst_pending_confirm: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 __mono_tc_offset[0]; + __u8 mono_delivery_time: 1; + __u8 tc_at_ingress: 1; + __u8 tc_skip_classify: 1; + __u8 remcsum_offload: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 inner_protocol_type: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 ndisc_nodetype: 2; + __u8 offload_fwd_mark: 1; + __u8 offload_l3_fwd_mark: 1; + __u8 redirected: 1; + __u8 slow_gro: 1; + __u16 tc_index; + u16 alloc_cpu; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + union { + u32 vlan_all; + struct { + __be16 vlan_proto; + __u16 vlan_tci; + }; + }; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + union { + __u32 mark; + __u32 reserved_tailroom; + }; + union { + __be16 inner_protocol; + __u8 inner_ipproto; + }; + __u16 inner_transport_header; + __u16 inner_network_header; + __u16 inner_mac_header; + __be16 protocol; + __u16 transport_header; + __u16 network_header; + __u16 mac_header; + } headers; + }; + sk_buff_data_t tail; + sk_buff_data_t end; + unsigned char *head; + unsigned char *data; + unsigned int truesize; + refcount_t users; + struct skb_ext *extensions; }; -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, +typedef u32 xdp_features_t; + +struct net_device_stats { + union { + unsigned long rx_packets; + atomic_long_t __rx_packets; + }; + union { + unsigned long tx_packets; + atomic_long_t __tx_packets; + }; + union { + unsigned long rx_bytes; + atomic_long_t __rx_bytes; + }; + union { + unsigned long tx_bytes; + atomic_long_t __tx_bytes; + }; + union { + unsigned long rx_errors; + atomic_long_t __rx_errors; + }; + union { + unsigned long tx_errors; + atomic_long_t __tx_errors; + }; + union { + unsigned long rx_dropped; + atomic_long_t __rx_dropped; + }; + union { + unsigned long tx_dropped; + atomic_long_t __tx_dropped; + }; + union { + unsigned long multicast; + atomic_long_t __multicast; + }; + union { + unsigned long collisions; + atomic_long_t __collisions; + }; + union { + unsigned long rx_length_errors; + atomic_long_t __rx_length_errors; + }; + union { + unsigned long rx_over_errors; + atomic_long_t __rx_over_errors; + }; + union { + unsigned long rx_crc_errors; + atomic_long_t __rx_crc_errors; + }; + union { + unsigned long rx_frame_errors; + atomic_long_t __rx_frame_errors; + }; + union { + unsigned long rx_fifo_errors; + atomic_long_t __rx_fifo_errors; + }; + union { + unsigned long rx_missed_errors; + atomic_long_t __rx_missed_errors; + }; + union { + unsigned long tx_aborted_errors; + atomic_long_t __tx_aborted_errors; + }; + union { + unsigned long tx_carrier_errors; + atomic_long_t __tx_carrier_errors; + }; + union { + unsigned long tx_fifo_errors; + atomic_long_t __tx_fifo_errors; + }; + union { + unsigned long tx_heartbeat_errors; + atomic_long_t __tx_heartbeat_errors; + }; + union { + unsigned long tx_window_errors; + atomic_long_t __tx_window_errors; + }; + union { + unsigned long rx_compressed; + atomic_long_t __rx_compressed; + }; + union { + unsigned long tx_compressed; + atomic_long_t __tx_compressed; + }; }; -struct arm_dma_buffer { +struct netdev_hw_addr_list { struct list_head list; - void *virt; - struct arm_dma_allocator *allocator; + int count; + struct rb_root tree; }; -typedef struct { - unsigned long bits[1]; -} nodemask_t; +struct wireless_dev; -struct static_vm { - struct vm_struct vm; - struct list_head list; +enum rx_handler_result { + RX_HANDLER_CONSUMED = 0, + RX_HANDLER_ANOTHER = 1, + RX_HANDLER_EXACT = 2, + RX_HANDLER_PASS = 3, }; -struct mem_type { - pteval_t prot_pte; - pteval_t prot_pte_s2; - pmdval_t prot_l1; - pmdval_t prot_sect; - unsigned int domain; -}; +typedef enum rx_handler_result rx_handler_result_t; -struct vm_unmapped_area_info { - unsigned long flags; - unsigned long length; - unsigned long low_limit; - unsigned long high_limit; - unsigned long align_mask; - unsigned long align_offset; +typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **); + +enum netdev_ml_priv_type { + ML_PRIV_NONE = 0, + ML_PRIV_CAN = 1, }; -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, +enum netdev_stat_type { + NETDEV_PCPU_STAT_NONE = 0, + NETDEV_PCPU_STAT_LSTATS = 1, + NETDEV_PCPU_STAT_TSTATS = 2, + NETDEV_PCPU_STAT_DSTATS = 3, }; -struct cacheline_padding { - char x[0]; +struct netdev_tc_txq { + u16 count; + u16 offset; }; -struct free_area { - struct list_head free_list[6]; - unsigned long nr_free; +struct udp_tunnel_nic; + +struct bpf_xdp_link; + +struct bpf_xdp_entity { + struct bpf_prog *prog; + struct bpf_xdp_link *link; }; -struct pglist_data; +typedef struct {} netdevice_tracker; -struct per_cpu_pages; +struct netdev_name_node; -struct per_cpu_zonestat; +struct dev_ifalias; -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 *pageblock_flags; - unsigned long zone_start_pfn; - atomic_long_t managed_pages; - unsigned long spanned_pages; - unsigned long present_pages; - unsigned long cma_pages; - const char *name; - unsigned long nr_isolate_pageblock; - int initialized; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct cacheline_padding _pad1_; - struct free_area free_area[12]; - unsigned long flags; - spinlock_t lock; - long: 32; - long: 32; - struct cacheline_padding _pad2_; - unsigned long percpu_drift_mark; - unsigned long compact_cached_free_pfn; - unsigned long compact_cached_migrate_pfn[2]; - unsigned long compact_init_migrate_pfn; - unsigned long compact_init_free_pfn; - unsigned int compact_considered; - unsigned int compact_defer_shift; - int compact_order_failed; - bool compact_blockskip_flush; - bool contiguous; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct cacheline_padding _pad3_; - atomic_long_t vm_stat[10]; - atomic_long_t vm_numa_event[0]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; +struct net_device_ops; -struct zoneref { - struct zone *zone; - int zone_idx; -}; +struct xdp_metadata_ops; -struct zonelist { - struct zoneref _zonerefs[5]; -}; +struct net_device_core_stats; -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 ethtool_ops; -struct per_cpu_nodestat; +struct ndisc_ops; -struct pglist_data { - struct zone node_zones[4]; - struct zonelist node_zonelists[1]; - int nr_zones; - struct page *node_mem_map; - 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; - struct cacheline_padding _pad1_; - struct lruvec __lruvec; - unsigned long flags; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct cacheline_padding _pad2_; - struct per_cpu_nodestat __attribute__((btf_type_tag("percpu"))) *per_cpu_nodestats; - atomic_long_t vm_stat[41]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; +struct header_ops; -struct per_cpu_pages { - spinlock_t lock; - int count; - int high; - int batch; - short free_factor; - struct list_head lists[12]; - long: 32; - long: 32; - long: 32; -}; +struct in_device; -struct per_cpu_zonestat { - s8 vm_stat_diff[10]; - s8 stat_threshold; -}; +struct inet6_dev; -struct per_cpu_nodestat { - s8 stat_threshold; - s8 vm_node_stat_diff[41]; -}; +struct dsa_port; -struct cachepolicy { - const char policy[16]; - unsigned int cr_mask; - pmdval_t pmd; - pteval_t pte; -}; +struct netdev_rx_queue; -enum lockdep_ok { - LOCKDEP_STILL_OK = 0, - LOCKDEP_NOW_UNRELIABLE = 1, -}; +struct bpf_mprog_entry; -struct page_change_data { - pgprot_t set_mask; - pgprot_t clear_mask; -}; +struct netdev_queue; -struct proc_ops { - unsigned int proc_flags; - int (*proc_open)(struct inode *, struct file *); - ssize_t (*proc_read)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - ssize_t (*proc_read_iter)(struct kiocb *, struct iov_iter *); - ssize_t (*proc_write)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - loff_t (*proc_lseek)(struct file *, loff_t, int); - int (*proc_release)(struct inode *, struct file *); - __poll_t (*proc_poll)(struct file *, struct poll_table_struct *); - long (*proc_ioctl)(struct file *, unsigned int, unsigned long); - int (*proc_mmap)(struct file *, struct vm_area_struct *); - unsigned long (*proc_get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); -}; +struct cpu_rmap; -union offset_union { - unsigned long un; - long sn; -}; +struct Qdisc; -struct cpu_user_fns { - void (*cpu_clear_user_highpage)(struct page *, unsigned long); - void (*cpu_copy_user_highpage)(struct page *, struct page *, unsigned long, struct vm_area_struct *); -}; +struct xdp_dev_bulk_queue; -enum arm_smccc_conduit { - SMCCC_CONDUIT_NONE = 0, - SMCCC_CONDUIT_SMC = 1, - SMCCC_CONDUIT_HVC = 2, -}; +struct xps_dev_maps; -struct arm_smccc_res { - unsigned long a0; - unsigned long a1; - unsigned long a2; - unsigned long a3; -}; +struct pcpu_lstats; -struct syscore_ops { - struct list_head node; - int (*suspend)(); - void (*resume)(); - void (*shutdown)(); -}; +struct pcpu_sw_netstats; -struct l2x0_regs { - unsigned long phy_base; - unsigned long aux_ctrl; - unsigned long tag_latency; - unsigned long data_latency; - unsigned long filter_start; - unsigned long filter_end; - unsigned long prefetch_ctrl; - unsigned long pwr_ctrl; - unsigned long ctrl; - unsigned long aux2_ctrl; -}; +struct pcpu_dstats; -struct outer_cache_fns { - void (*inv_range)(unsigned long, unsigned long); - void (*clean_range)(unsigned long, unsigned long); - void (*flush_range)(unsigned long, unsigned long); - void (*flush_all)(); - void (*disable)(); - void (*sync)(); - void (*resume)(); - void (*write_sec)(unsigned long, unsigned int); - void (*configure)(const struct l2x0_regs *); -}; +struct rtnl_link_ops; -struct l2c_init_data { - const char *type; - unsigned int way_size_0; - unsigned int num_lock; - void (*of_parse)(const struct device_node *, u32 *, u32 *); - void (*enable)(void *, unsigned int); - void (*fixup)(void *, u32, struct outer_cache_fns *); - void (*save)(void *); - void (*configure)(void *); - void (*unlock)(void *, unsigned int); - struct outer_cache_fns outer_cache; -}; +struct netprio_map; -struct firmware_ops { - int (*prepare_idle)(unsigned long); - int (*do_idle)(unsigned long); - int (*set_cpu_boot_addr)(int, unsigned long); - int (*get_cpu_boot_addr)(int, unsigned long *); - int (*cpu_boot)(int); - int (*l2x0_init)(); - int (*suspend)(); - int (*resume)(); -}; +struct phy_device; -struct mcpm_sync_struct { +struct sfp_bus; + +struct udp_tunnel_nic_info; + +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 { - s8 cpu; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - } cpus[4]; - s8 cluster; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - s8 inbound; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; + 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 dsa_port *dsa_ptr; + struct wireless_dev *ieee80211_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; + unsigned int xdp_zc_max_segs; + rx_handler_func_t __attribute__((btf_type_tag("rcu"))) *rx_handler; + void __attribute__((btf_type_tag("rcu"))) *rx_handler_data; + struct bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_ingress; + struct netdev_queue __attribute__((btf_type_tag("rcu"))) *ingress_queue; + unsigned char broadcast[32]; + struct cpu_rmap *rx_cpu_rmap; + struct hlist_node index_hlist; long: 32; long: 32; + 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 bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_egress; + 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 *); + possible_net_t nd_net; + void *ml_priv; + enum netdev_ml_priv_type ml_priv_type; + enum netdev_stat_type pcpu_stat_type: 8; + 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; + }; long: 32; + 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: 32; long: 32; }; -struct sync_struct { - struct mcpm_sync_struct clusters[4]; +struct dev_ifalias { + struct callback_head rcuhead; + char ifalias[0]; }; -struct mcpm_platform_ops { - int (*cpu_powerup)(unsigned int, unsigned int); - int (*cluster_powerup)(unsigned int); - void (*cpu_suspend_prepare)(unsigned int, unsigned int); - void (*cpu_powerdown_prepare)(unsigned int, unsigned int); - void (*cluster_powerdown_prepare)(unsigned int); - void (*cpu_cache_disable)(); - void (*cluster_cache_disable)(); - void (*cpu_is_up)(unsigned int, unsigned int); - void (*cluster_is_up)(unsigned int); - int (*wait_for_powerdown)(unsigned int, unsigned int); +enum netdev_tx { + __NETDEV_TX_MIN = -2147483648, + NETDEV_TX_OK = 0, + NETDEV_TX_BUSY = 16, }; -typedef void (*phys_reset_t)(unsigned long, bool); +typedef enum netdev_tx netdev_tx_t; -struct of_dev_auxdata { - char *compatible; - resource_size_t phys_addr; - char *name; - void *platform_data; +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 clk_bulk_data { - const char *id; - struct clk *clk; -}; +struct ifreq; -struct at91_pm_quirk_eth { - struct device *dev; - struct device_node *np; - struct clk_bulk_data clks[2]; - u32 modes; - u32 dns_modes; -}; +struct if_settings; -struct at91_pm_quirks { - struct at91_pm_quirk_eth eth[2]; -}; +struct ifmap; -struct at91_pm_data { - void *pmc; - void *ramc[2]; - void *ramc_phy; - unsigned long uhp_udp_mask; - unsigned int memctrl; - unsigned int mode; - void *shdwc; - void *sfrbu; - unsigned int standby_mode; - unsigned int suspend_mode; - unsigned int pmc_mckr_offset; - unsigned int pmc_version; -}; +struct neigh_parms; -struct at91_pm_sfrbu_regs { - struct { - u32 key; - u32 ctrl; - u32 state; - u32 softsw; - } pswbu; -}; +struct rtnl_link_stats64; -struct at91_pm_bu; +struct ifla_vf_info; -struct at91_soc_pm { - int (*config_shdwc_ws)(void *, u32 *, u32 *); - int (*config_pmc_ws)(void *, u32, u32); - const struct of_device_id *ws_ids; - struct at91_pm_bu *bu; - struct at91_pm_quirks quirks; - struct at91_pm_data data; - struct at91_pm_sfrbu_regs sfrbu_regs; - void *memcs; -}; +struct ifla_vf_stats; -struct at91_pm_bu { - int suspended; - unsigned long reserved; - phys_addr_t canary; - phys_addr_t resume; - unsigned long ddr_phy_calibration[9]; -}; +struct nlattr; -struct match_token { - int token; - const char *pattern; -}; +struct ifla_vf_guid; -struct ramc_info { - void (*idle)(); - unsigned int memctrl; -}; +struct netlink_ext_ack; -struct pmc_info { - unsigned long uhp_udp_mask; - unsigned long mckr; - unsigned long version; -}; +struct ndmsg; -typedef int suspend_state_t; +struct nlmsghdr; -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 netlink_callback; -struct wakeup_source_info { - unsigned int pmc_fsmr_bit; - unsigned int shdwc_mr_bit; - bool set_polarity; -}; +struct netdev_phys_item_id; -enum at91_pm_eth { - AT91_PM_G_ETH = 0, - AT91_PM_E_ETH = 1, - AT91_PM_MAX_ETH = 2, -}; +struct netdev_bpf; -enum at91_pm_iomaps { - AT91_PM_IOMAP_SHDWC = 0, - AT91_PM_IOMAP_SFRBU = 1, - AT91_PM_IOMAP_ETHC = 2, -}; +struct xdp_frame; -enum at91_pm_eth_clk { - AT91_PM_ETH_PCLK = 0, - AT91_PM_ETH_HCLK = 1, - AT91_PM_ETH_MAX_CLK = 2, -}; +struct xdp_buff; -typedef struct { - char *from; - char *to; -} substring_t; +struct ip_tunnel_parm; -enum { - ZONE_MAN_CLKEN_MASK = 1, - ZONE_MAN_RESET_CNTL_MASK = 2, - ZONE_MAN_MEM_PWR_MASK = 16, - ZONE_RESERVED_1_MASK = 32, - ZONE_MAN_ISO_CNTL_MASK = 64, - ZONE_MANUAL_CONTROL_MASK = 128, - ZONE_PWR_DN_REQ_MASK = 512, - ZONE_PWR_UP_REQ_MASK = 1024, - ZONE_BLK_RST_ASSERT_MASK = 4096, - ZONE_PWR_OFF_STATE_MASK = 33554432, - ZONE_PWR_ON_STATE_MASK = 67108864, - ZONE_DPG_PWR_STATE_MASK = 268435456, - ZONE_MEM_PWR_STATE_MASK = 536870912, - ZONE_RESET_STATE_MASK = 2147483648, - CPU0_PWR_ZONE_CTRL_REG = 1, - CPU_RESET_CONFIG_REG = 2, -}; +struct net_device_path_ctx; -struct pm_clk_notifier_block { - struct notifier_block nb; - struct dev_pm_domain *pm_domain; - char *con_ids[0]; -}; +struct net_device_path; -struct mvebu_system_controller { - u32 rstoutn_mask_offset; - u32 system_soft_reset_offset; - u32 rstoutn_mask_reset_out_en; - u32 system_soft_reset; - u32 resume_boot_addr; - u32 dev_id; - u32 rev_id; -}; +struct skb_shared_hwtstamps; -enum pmsu_idle_prepare_flags { - PMSU_PREPARE_NORMAL = 0, - PMSU_PREPARE_DEEP_IDLE = 1, - PMSU_PREPARE_SNOOP_DISABLE = 2, +struct kernel_hwtstamp_config; + +struct net_device_ops { + int (*ndo_init)(struct net_device *); + void (*ndo_uninit)(struct net_device *); + int (*ndo_open)(struct net_device *); + int (*ndo_stop)(struct net_device *); + netdev_tx_t (*ndo_start_xmit)(struct sk_buff *, struct net_device *); + netdev_features_t (*ndo_features_check)(struct sk_buff *, struct net_device *, netdev_features_t); + u16 (*ndo_select_queue)(struct net_device *, struct sk_buff *, struct net_device *); + void (*ndo_change_rx_flags)(struct net_device *, int); + void (*ndo_set_rx_mode)(struct net_device *); + int (*ndo_set_mac_address)(struct net_device *, void *); + int (*ndo_validate_addr)(struct net_device *); + int (*ndo_do_ioctl)(struct net_device *, struct ifreq *, int); + int (*ndo_eth_ioctl)(struct net_device *, struct ifreq *, int); + int (*ndo_siocbond)(struct net_device *, struct ifreq *, int); + int (*ndo_siocwandev)(struct net_device *, struct if_settings *); + int (*ndo_siocdevprivate)(struct net_device *, struct ifreq *, void __attribute__((btf_type_tag("user"))) *, int); + int (*ndo_set_config)(struct net_device *, struct ifmap *); + int (*ndo_change_mtu)(struct net_device *, int); + int (*ndo_neigh_setup)(struct net_device *, struct neigh_parms *); + void (*ndo_tx_timeout)(struct net_device *, unsigned int); + void (*ndo_get_stats64)(struct net_device *, struct rtnl_link_stats64 *); + bool (*ndo_has_offload_stats)(const struct net_device *, int); + int (*ndo_get_offload_stats)(int, const struct net_device *, void *); + struct net_device_stats * (*ndo_get_stats)(struct net_device *); + int (*ndo_vlan_rx_add_vid)(struct net_device *, __be16, u16); + int (*ndo_vlan_rx_kill_vid)(struct net_device *, __be16, u16); + int (*ndo_set_vf_mac)(struct net_device *, int, u8 *); + int (*ndo_set_vf_vlan)(struct net_device *, int, u16, u8, __be16); + int (*ndo_set_vf_rate)(struct net_device *, int, int, int); + int (*ndo_set_vf_spoofchk)(struct net_device *, int, bool); + int (*ndo_set_vf_trust)(struct net_device *, int, bool); + int (*ndo_get_vf_config)(struct net_device *, int, struct ifla_vf_info *); + int (*ndo_set_vf_link_state)(struct net_device *, int, int); + int (*ndo_get_vf_stats)(struct net_device *, int, struct ifla_vf_stats *); + int (*ndo_set_vf_port)(struct net_device *, int, struct nlattr **); + int (*ndo_get_vf_port)(struct net_device *, int, struct sk_buff *); + int (*ndo_get_vf_guid)(struct net_device *, int, struct ifla_vf_guid *, struct ifla_vf_guid *); + int (*ndo_set_vf_guid)(struct net_device *, int, u64, int); + int (*ndo_set_vf_rss_query_en)(struct net_device *, int, bool); + int (*ndo_setup_tc)(struct net_device *, enum tc_setup_type, void *); + int (*ndo_rx_flow_steer)(struct net_device *, const struct sk_buff *, u16, u32); + int (*ndo_add_slave)(struct net_device *, struct net_device *, struct netlink_ext_ack *); + int (*ndo_del_slave)(struct net_device *, struct net_device *); + struct net_device * (*ndo_get_xmit_slave)(struct net_device *, struct sk_buff *, bool); + struct net_device * (*ndo_sk_get_lower_dev)(struct net_device *, struct sock *); + netdev_features_t (*ndo_fix_features)(struct net_device *, netdev_features_t); + int (*ndo_set_features)(struct net_device *, netdev_features_t); + int (*ndo_neigh_construct)(struct net_device *, struct neighbour *); + void (*ndo_neigh_destroy)(struct net_device *, struct neighbour *); + int (*ndo_fdb_add)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, u16, struct netlink_ext_ack *); + int (*ndo_fdb_del)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, struct netlink_ext_ack *); + int (*ndo_fdb_del_bulk)(struct nlmsghdr *, struct net_device *, struct netlink_ext_ack *); + int (*ndo_fdb_dump)(struct sk_buff *, struct netlink_callback *, struct net_device *, struct net_device *, int *); + int (*ndo_fdb_get)(struct sk_buff *, struct nlattr **, struct net_device *, const unsigned char *, u16, u32, u32, struct netlink_ext_ack *); + int (*ndo_mdb_add)(struct net_device *, struct nlattr **, u16, struct netlink_ext_ack *); + int (*ndo_mdb_del)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); + int (*ndo_mdb_dump)(struct net_device *, struct sk_buff *, struct netlink_callback *); + int (*ndo_mdb_get)(struct net_device *, struct nlattr **, u32, u32, struct netlink_ext_ack *); + int (*ndo_bridge_setlink)(struct net_device *, struct nlmsghdr *, u16, struct netlink_ext_ack *); + int (*ndo_bridge_getlink)(struct sk_buff *, u32, u32, struct net_device *, u32, int); + int (*ndo_bridge_dellink)(struct net_device *, struct nlmsghdr *, u16); + int (*ndo_change_carrier)(struct net_device *, bool); + int (*ndo_get_phys_port_id)(struct net_device *, struct netdev_phys_item_id *); + int (*ndo_get_port_parent_id)(struct net_device *, struct netdev_phys_item_id *); + int (*ndo_get_phys_port_name)(struct net_device *, char *, size_t); + void * (*ndo_dfwd_add_station)(struct net_device *, struct net_device *); + void (*ndo_dfwd_del_station)(struct net_device *, void *); + int (*ndo_set_tx_maxrate)(struct net_device *, int, u32); + int (*ndo_get_iflink)(const struct net_device *); + int (*ndo_fill_metadata_dst)(struct net_device *, struct sk_buff *); + void (*ndo_set_rx_headroom)(struct net_device *, int); + int (*ndo_bpf)(struct net_device *, struct netdev_bpf *); + int (*ndo_xdp_xmit)(struct net_device *, int, struct xdp_frame **, u32); + struct net_device * (*ndo_xdp_get_xmit_slave)(struct net_device *, struct xdp_buff *); + int (*ndo_xsk_wakeup)(struct net_device *, u32, u32); + int (*ndo_tunnel_ctl)(struct net_device *, struct ip_tunnel_parm *, int); + struct net_device * (*ndo_get_peer_dev)(struct net_device *); + int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *); + ktime_t (*ndo_get_tstamp)(struct net_device *, const struct skb_shared_hwtstamps *, bool); + int (*ndo_hwtstamp_get)(struct net_device *, struct kernel_hwtstamp_config *); + int (*ndo_hwtstamp_set)(struct net_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); }; -struct arm_smccc_quirk { - int id; - union { - unsigned long a6; - } state; +struct ifmap { + unsigned long mem_start; + unsigned long mem_end; + unsigned short base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; }; -typedef __s16 s16; +typedef struct { + unsigned short encoding; + unsigned short parity; +} raw_hdlc_proto; -struct voltagedomain; +typedef struct { + unsigned int interval; + unsigned int timeout; +} cisco_proto; -struct clockdomain; +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; -struct powerdomain { - const char *name; - union { - const char *name; - struct voltagedomain *ptr; - } voltdm; - const s16 prcm_offs; - const u8 pwrsts; - const u8 pwrsts_logic_ret; - const u8 flags; - const u8 banks; - const u8 pwrsts_mem_ret[5]; - const u8 pwrsts_mem_on[5]; - const u8 prcm_partition; - struct clockdomain *pwrdm_clkdms[11]; - struct list_head node; - struct list_head voltdm_node; - int state; - unsigned int state_counter[4]; - unsigned int ret_logic_off_counter; - unsigned int ret_mem_off_counter[5]; - spinlock_t _lock; - unsigned long _lock_flags; - const u8 pwrstctrl_offs; - const u8 pwrstst_offs; - const u32 logicretstate_mask; - const u32 mem_on_mask[5]; - const u32 mem_ret_mask[5]; - const u32 mem_pwrst_mask[5]; - const u32 mem_retst_mask[5]; - u32 context; -}; +typedef struct { + unsigned int dlci; +} fr_proto_pvc; -struct pwrdm_ops { - int (*pwrdm_set_next_pwrst)(struct powerdomain *, u8); - int (*pwrdm_read_next_pwrst)(struct powerdomain *); - int (*pwrdm_read_pwrst)(struct powerdomain *); - int (*pwrdm_read_prev_pwrst)(struct powerdomain *); - int (*pwrdm_set_logic_retst)(struct powerdomain *, u8); - int (*pwrdm_set_mem_onst)(struct powerdomain *, u8, u8); - int (*pwrdm_set_mem_retst)(struct powerdomain *, u8, u8); - int (*pwrdm_read_logic_pwrst)(struct powerdomain *); - int (*pwrdm_read_prev_logic_pwrst)(struct powerdomain *); - int (*pwrdm_read_logic_retst)(struct powerdomain *); - int (*pwrdm_read_mem_pwrst)(struct powerdomain *, u8); - int (*pwrdm_read_prev_mem_pwrst)(struct powerdomain *, u8); - int (*pwrdm_read_mem_retst)(struct powerdomain *, u8); - int (*pwrdm_clear_all_prev_pwrst)(struct powerdomain *); - int (*pwrdm_enable_hdwr_sar)(struct powerdomain *); - int (*pwrdm_disable_hdwr_sar)(struct powerdomain *); - int (*pwrdm_set_lowpwrstchange)(struct powerdomain *); - int (*pwrdm_wait_transition)(struct powerdomain *); - int (*pwrdm_has_voltdm)(); - void (*pwrdm_save_context)(struct powerdomain *); - void (*pwrdm_restore_context)(struct powerdomain *); -}; +typedef struct { + unsigned int dlci; + char master[16]; +} fr_proto_pvc_info; -struct clkdm_dep; +typedef struct { + unsigned short dce; + unsigned int modulo; + unsigned int window; + unsigned int t1; + unsigned int t2; + unsigned int n2; +} x25_hdlc_proto; -struct clockdomain { - const char *name; - union { - const char *name; - struct powerdomain *ptr; - } pwrdm; - const u16 clktrctrl_mask; - const u8 flags; - u8 _flags; - const u8 dep_bit; - const u8 prcm_partition; - const u16 cm_inst; - const u16 clkdm_offs; - struct clkdm_dep *wkdep_srcs; - struct clkdm_dep *sleepdep_srcs; - int usecount; - int forcewake_count; - struct list_head node; - u32 context; -}; +typedef struct { + unsigned int clock_rate; + unsigned int clock_type; + unsigned short loopback; +} sync_serial_settings; -struct clkdm_dep { - const char *clkdm_name; - struct clockdomain *clkdm; - s16 wkdep_usecount; - s16 sleepdep_usecount; -}; +typedef struct { + unsigned int clock_rate; + unsigned int clock_type; + unsigned short loopback; + unsigned int slot_map; +} te1_settings; -struct clkdm_autodep { +struct if_settings { + unsigned int type; + unsigned int size; union { - const char *name; - struct clockdomain *ptr; - } clkdm; -}; - -struct clkdm_ops { - int (*clkdm_add_wkdep)(struct clockdomain *, struct clockdomain *); - int (*clkdm_del_wkdep)(struct clockdomain *, struct clockdomain *); - int (*clkdm_read_wkdep)(struct clockdomain *, struct clockdomain *); - int (*clkdm_clear_all_wkdeps)(struct clockdomain *); - int (*clkdm_add_sleepdep)(struct clockdomain *, struct clockdomain *); - int (*clkdm_del_sleepdep)(struct clockdomain *, struct clockdomain *); - int (*clkdm_read_sleepdep)(struct clockdomain *, struct clockdomain *); - int (*clkdm_clear_all_sleepdeps)(struct clockdomain *); - int (*clkdm_sleep)(struct clockdomain *); - int (*clkdm_wakeup)(struct clockdomain *); - void (*clkdm_allow_idle)(struct clockdomain *); - void (*clkdm_deny_idle)(struct clockdomain *); - int (*clkdm_clk_enable)(struct clockdomain *); - int (*clkdm_clk_disable)(struct clockdomain *); - int (*clkdm_save_context)(struct clockdomain *); - int (*clkdm_restore_context)(struct clockdomain *); + 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 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; +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 new_utsname { - char sysname[65]; - char nodename[65]; - char release[65]; - char version[65]; - char machine[65]; - char domainname[65]; -}; +struct neigh_table; -struct uts_namespace { - struct new_utsname name; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct ns_common ns; +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 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 hh_cache { + unsigned int hh_len; + seqlock_t hh_lock; + unsigned long hh_data[24]; }; -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 neigh_ops; -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, +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; + long: 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 module_use { - struct list_head source_list; - struct list_head target_list; - struct module *source; - struct module *target; -}; +struct pneigh_entry; -struct module_sect_attr { - struct bin_attribute battr; - unsigned long address; -}; +struct neigh_statistics; -struct module_sect_attrs { - struct attribute_group grp; - unsigned int nsections; - struct module_sect_attr attrs[0]; -}; +struct neigh_hash_table; -struct module_notes_attrs { - struct kobject *dir; - unsigned int notes; - struct bin_attribute attrs[0]; +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 load_info { - const char *name; - struct module *mod; - Elf32_Ehdr *hdr; - unsigned long len; - Elf32_Shdr *sechdrs; - char *secstrings; - char *strtab; - unsigned long symoffs; - unsigned long stroffs; - unsigned long init_typeoffs; - unsigned long core_typeoffs; - bool sig_ok; - unsigned long mod_kallsyms_init_off; - struct { - unsigned int sym; - unsigned int str; - unsigned int mod; - unsigned int vers; - unsigned int info; - unsigned int pcpu; - } index; -}; - -enum futex_access { - FUTEX_READ = 0, - FUTEX_WRITE = 1, -}; - -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, -}; - -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; - long: 32; - 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; - long: 32; -}; - -struct rt_mutex_base { - raw_spinlock_t wait_lock; - struct rb_root_cached waiters; - struct task_struct *owner; -}; - -struct futex_pi_state { - struct list_head list; - struct rt_mutex_base pi_mutex; - struct task_struct *owner; - refcount_t refcount; - union futex_key key; -}; - -struct wake_q_head { - struct wake_q_node *first; - struct wake_q_node **lastp; -}; - -struct futex_hash_bucket { - atomic_t waiters; - spinlock_t lock; - struct plist_head chain; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; - -struct hrtimer_sleeper { - struct hrtimer timer; - struct task_struct *task; - long: 32; -}; - -struct futex_waitv { - __u64 val; - __u64 uaddr; - __u32 flags; - __u32 __reserved; -}; - -struct futex_vector { - struct futex_waitv w; - struct futex_q q; -}; - -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; -}; - -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 multi_stop_state { - MULTI_STOP_NONE = 0, - MULTI_STOP_PREPARE = 1, - MULTI_STOP_DISABLE_IRQ = 2, - MULTI_STOP_RUN = 3, - MULTI_STOP_EXIT = 4, -}; - -struct multi_stop_data { - cpu_stop_fn_t fn; - void *data; - unsigned int num_threads; - const struct cpumask *active_cpus; - enum multi_stop_state state; - atomic_t thread_ack; -}; - -struct ustring_buffer { - char buffer[1024]; -}; - -enum regex_type { - MATCH_FULL = 0, - MATCH_FRONT_ONLY = 1, - MATCH_MIDDLE_ONLY = 2, - MATCH_END_ONLY = 3, - MATCH_GLOB = 4, - MATCH_INDEX = 5, -}; - -enum filter_pred_fn { - FILTER_PRED_FN_NOP = 0, - FILTER_PRED_FN_64 = 1, - FILTER_PRED_FN_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_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, - FILTER_STACKTRACE = 8, +struct pneigh_entry { + struct pneigh_entry *next; + possible_net_t net; + struct net_device *dev; + netdevice_tracker dev_tracker; + u32 flags; + u8 protocol; + u32 key[0]; }; -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, -}; +struct nla_policy; -enum { - TASK_COMM_LEN = 16, +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]; }; -enum { - TOO_MANY_CLOSE = -1, - TOO_MANY_OPEN = -2, - MISSING_QUOTE = -3, +struct nlattr { + __u16 nla_len; + __u16 nla_type; }; -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, -}; +struct netlink_range_validation; -enum { - INVERT = 1, - PROCESS_AND = 2, - PROCESS_OR = 4, -}; +struct netlink_range_validation_signed; -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 nla_policy { + u8 type; + u8 validation_type; + u16 len; + union { + u16 strict_start_type; + const u32 bitfield32_valid; + const u32 mask; + const char *reject_message; + const struct nla_policy *nested_policy; + const struct netlink_range_validation *range; + const struct netlink_range_validation_signed *range_signed; + struct { + s16 min; + s16 max; + }; + int (*validate)(const struct nlattr *, struct netlink_ext_ack *); + }; }; -struct filter_pred; - -struct prog_entry { - int target; - int when_to_branch; - struct filter_pred *pred; +struct netlink_range_validation { + u64 min; + u64 max; }; -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 netlink_range_validation_signed { + s64 min; + s64 max; }; -struct ftrace_event_field; - -struct filter_pred { - enum filter_pred_fn fn_num; - long: 32; - u64 val; - u64 val2; - struct regex regex; - unsigned short *ops; - struct ftrace_event_field *field; - int offset; - int not; - int op; +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 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 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 event_filter { - struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog; - char *filter_string; +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 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 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 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; - long: 32; - u64 time_start; - int cpu; - long: 32; +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 trace_pid_list; - -struct trace_options; - -struct trace_func_repeats; - -struct trace_array { - struct list_head list; - char *name; - long: 32; - 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[452]; - struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[452]; - 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; - cpumask_var_t pipe_cpumask; - int ref; - int trace_ref; - struct ftrace_ops *ops; - struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_pids; - struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_no_pids; - struct list_head func_probes; - struct list_head mod_trace; - struct list_head mod_notrace; - int function_enabled; - int no_filter_buffering_ref; - struct list_head hist_vars; - struct trace_func_repeats __attribute__((btf_type_tag("percpu"))) *last_func_repeats; +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 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; +struct ifla_vf_guid { + __u32 vf; long: 32; - u64 preempt_timestamp; - pid_t pid; - kuid_t uid; - char comm[16]; - int ftrace_ignore_pid; - bool ignore_pid; -}; - -union upper_chunk; - -union lower_chunk; - -struct trace_pid_list { - raw_spinlock_t lock; - struct irq_work refill_irqwork; - union upper_chunk *upper[256]; - union upper_chunk *upper_list; - union lower_chunk *lower_list; - int free_upper_chunks; - int free_lower_chunks; -}; - -union upper_chunk { - union upper_chunk *next; - union lower_chunk *data[256]; -}; - -union lower_chunk { - union lower_chunk *next; - unsigned long data[512]; -}; - -struct tracer_flags; - -struct tracer { - const char *name; - int (*init)(struct trace_array *); - void (*reset)(struct trace_array *); - void (*start)(struct trace_array *); - void (*stop)(struct trace_array *); - int (*update_thresh)(struct trace_array *); - void (*open)(struct trace_iterator *); - void (*pipe_open)(struct trace_iterator *); - void (*close)(struct trace_iterator *); - void (*pipe_close)(struct trace_iterator *); - ssize_t (*read)(struct trace_iterator *, struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - ssize_t (*splice_read)(struct trace_iterator *, struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); - void (*print_header)(struct seq_file *); - enum print_line_t (*print_line)(struct trace_iterator *); - int (*set_flag)(struct trace_array *, u32, u32, int); - int (*flag_changed)(struct trace_array *, u32, int); - struct tracer *next; - struct tracer_flags *flags; - int enabled; - bool print_max; - bool allow_instances; - bool noboot; -}; - -struct tracer_opt; - -struct tracer_flags { - u32 val; - struct tracer_opt *opts; - struct tracer *trace; -}; - -struct tracer_opt { - const char *name; - u32 bit; + __u64 guid; }; -struct trace_option_dentry; - -struct trace_options { - struct tracer *tracer; - struct trace_option_dentry *topts; +struct ndmsg { + __u8 ndm_family; + __u8 ndm_pad1; + __u16 ndm_pad2; + __s32 ndm_ifindex; + __u16 ndm_state; + __u8 ndm_flags; + __u8 ndm_type; }; -struct trace_option_dentry { - struct tracer_opt *opt; - struct tracer_flags *flags; - struct trace_array *tr; - struct dentry *entry; +struct nlmsghdr { + __u32 nlmsg_len; + __u16 nlmsg_type; + __u16 nlmsg_flags; + __u32 nlmsg_seq; + __u32 nlmsg_pid; }; -struct trace_func_repeats { - unsigned long ip; - unsigned long parent_ip; - unsigned long count; - long: 32; - u64 ts_last_call; +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 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 netdev_phys_item_id { + unsigned char id[32]; + unsigned char id_len; }; -struct event_subsystem { - struct list_head list; - const char *name; - struct event_filter *filter; - int ref_count; +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 filter_list { - struct list_head list; - struct event_filter *filter; -}; +struct bpf_offloaded_map; -struct filter_parse_error { - int lasterr; - int lasterr_pos; -}; +struct xsk_buff_pool; -struct function_filter_data { - struct ftrace_ops *ops; - int first_filter; - int first_notrace; +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; + }; }; -typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **); - -struct napi_struct; - -struct page_pool_params { - unsigned int flags; - unsigned int order; - unsigned int pool_size; - int nid; - struct device *dev; - struct napi_struct *napi; - enum dma_data_direction dma_dir; - unsigned int max_len; - unsigned int offset; - void (*init_callback)(struct page *, void *); - void *init_arg; +enum bpf_map_type { + BPF_MAP_TYPE_UNSPEC = 0, + BPF_MAP_TYPE_HASH = 1, + BPF_MAP_TYPE_ARRAY = 2, + BPF_MAP_TYPE_PROG_ARRAY = 3, + BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4, + BPF_MAP_TYPE_PERCPU_HASH = 5, + BPF_MAP_TYPE_PERCPU_ARRAY = 6, + BPF_MAP_TYPE_STACK_TRACE = 7, + BPF_MAP_TYPE_CGROUP_ARRAY = 8, + BPF_MAP_TYPE_LRU_HASH = 9, + BPF_MAP_TYPE_LRU_PERCPU_HASH = 10, + BPF_MAP_TYPE_LPM_TRIE = 11, + BPF_MAP_TYPE_ARRAY_OF_MAPS = 12, + BPF_MAP_TYPE_HASH_OF_MAPS = 13, + BPF_MAP_TYPE_DEVMAP = 14, + BPF_MAP_TYPE_SOCKMAP = 15, + BPF_MAP_TYPE_CPUMAP = 16, + BPF_MAP_TYPE_XSKMAP = 17, + BPF_MAP_TYPE_SOCKHASH = 18, + BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19, + BPF_MAP_TYPE_CGROUP_STORAGE = 19, + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20, + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED = 21, + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21, + BPF_MAP_TYPE_QUEUE = 22, + BPF_MAP_TYPE_STACK = 23, + BPF_MAP_TYPE_SK_STORAGE = 24, + BPF_MAP_TYPE_DEVMAP_HASH = 25, + BPF_MAP_TYPE_STRUCT_OPS = 26, + BPF_MAP_TYPE_RINGBUF = 27, + BPF_MAP_TYPE_INODE_STORAGE = 28, + BPF_MAP_TYPE_TASK_STORAGE = 29, + BPF_MAP_TYPE_BLOOM_FILTER = 30, + BPF_MAP_TYPE_USER_RINGBUF = 31, + BPF_MAP_TYPE_CGRP_STORAGE = 32, }; -struct page_pool_alloc_stats { - u64 fast; - u64 slow; - u64 slow_high_order; - u64 empty; - u64 refill; - u64 waive; -}; +struct bpf_map_ops; -struct pp_alloc_cache { - u32 count; - struct page *cache[128]; -}; +struct btf_record; -struct ptr_ring { - int producer; - spinlock_t producer_lock; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - int consumer_head; - int consumer_tail; - spinlock_t consumer_lock; - long: 32; - long: 32; - long: 32; +struct bpf_map { + const struct bpf_map_ops *ops; + struct bpf_map *inner_map_meta; + enum bpf_map_type map_type; + u32 key_size; + u32 value_size; + u32 max_entries; + u64 map_extra; + u32 map_flags; + u32 id; + struct btf_record *record; + int numa_node; + u32 btf_key_type_id; + u32 btf_value_type_id; + u32 btf_vmlinux_value_type_id; + struct btf *btf; + struct obj_cgroup *objcg; + char name[16]; long: 32; long: 32; long: 32; @@ -10470,11 +11972,26 @@ struct ptr_ring { long: 32; long: 32; long: 32; - int size; - int batch; - void **queue; long: 32; + atomic64_t refcnt; + atomic64_t usercnt; + union { + struct work_struct work; + struct callback_head rcu; + }; + struct mutex freeze_mutex; long: 32; + atomic64_t writecnt; + struct { + spinlock_t lock; + enum bpf_prog_type type; + bool jited; + bool xdp_has_frags; + } owner; + bool bypass_spec_v1; + bool frozen; + bool free_after_mult_rcu_gp; + s64 __attribute__((btf_type_tag("percpu"))) *elem_count; long: 32; long: 32; long: 32; @@ -10488,48 +12005,15 @@ struct ptr_ring { long: 32; }; -struct page_pool_recycle_stats; +struct bpf_map_dev_ops; -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; - long: 32; - struct page_pool_alloc_stats alloc_stats; - u32 xdp_mem_id; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct pp_alloc_cache alloc; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - 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; +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: 32; - u64 destroy_cnt; long: 32; long: 32; long: 32; @@ -10542,1078 +12026,1166 @@ struct page_pool { long: 32; }; -struct gro_list { - struct list_head list; - int count; -}; +typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64); -struct sk_buff; +union bpf_attr; -struct napi_struct { - struct list_head poll_list; - unsigned long state; - int weight; - int defer_hard_irqs_count; - unsigned long gro_bitmask; - int (*poll)(struct napi_struct *, int); - int list_owner; - struct net_device *dev; - struct gro_list gro_hash[8]; - struct sk_buff *skb; - struct list_head rx_list; - int rx_count; - unsigned int napi_id; - struct hrtimer timer; - struct task_struct *thread; - struct list_head dev_list; - struct hlist_node napi_hash_node; - long: 32; -}; +struct bpf_verifier_env; -struct pcpu_dstats; +struct bpf_func_state; -typedef u32 xdp_features_t; +struct bpf_iter_seq_info; -typedef u64 netdev_features_t; +struct bpf_map_ops { + int (*map_alloc_check)(union bpf_attr *); + struct bpf_map * (*map_alloc)(union bpf_attr *); + void (*map_release)(struct bpf_map *, struct file *); + void (*map_free)(struct bpf_map *); + int (*map_get_next_key)(struct bpf_map *, void *, void *); + void (*map_release_uref)(struct bpf_map *); + void * (*map_lookup_elem_sys_only)(struct bpf_map *, void *); + int (*map_lookup_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); + int (*map_lookup_and_delete_elem)(struct bpf_map *, void *, void *, u64); + int (*map_lookup_and_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); + int (*map_update_batch)(struct bpf_map *, struct file *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); + int (*map_delete_batch)(struct bpf_map *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); + void * (*map_lookup_elem)(struct bpf_map *, void *); + long (*map_update_elem)(struct bpf_map *, void *, void *, u64); + long (*map_delete_elem)(struct bpf_map *, void *); + long (*map_push_elem)(struct bpf_map *, void *, u64); + long (*map_pop_elem)(struct bpf_map *, void *); + long (*map_peek_elem)(struct bpf_map *, void *); + void * (*map_lookup_percpu_elem)(struct bpf_map *, void *, u32); + void * (*map_fd_get_ptr)(struct bpf_map *, struct file *, int); + void (*map_fd_put_ptr)(struct bpf_map *, void *, bool); + int (*map_gen_lookup)(struct bpf_map *, struct bpf_insn *); + u32 (*map_fd_sys_lookup_elem)(void *); + void (*map_seq_show_elem)(struct bpf_map *, void *, struct seq_file *); + int (*map_check_btf)(const struct bpf_map *, const struct btf *, const struct btf_type *, const struct btf_type *); + int (*map_poke_track)(struct bpf_map *, struct bpf_prog_aux *); + void (*map_poke_untrack)(struct bpf_map *, struct bpf_prog_aux *); + void (*map_poke_run)(struct bpf_map *, u32, struct bpf_prog *, struct bpf_prog *); + int (*map_direct_value_addr)(const struct bpf_map *, u64 *, u32); + int (*map_direct_value_meta)(const struct bpf_map *, u64, u32 *); + int (*map_mmap)(struct bpf_map *, struct vm_area_struct *); + __poll_t (*map_poll)(struct bpf_map *, struct file *, struct poll_table_struct *); + int (*map_local_storage_charge)(struct bpf_local_storage_map *, void *, u32); + void (*map_local_storage_uncharge)(struct bpf_local_storage_map *, void *, u32); + struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) ** (*map_owner_storage_ptr)(void *); + long (*map_redirect)(struct bpf_map *, u64, u64); + bool (*map_meta_equal)(const struct bpf_map *, const struct bpf_map *); + int (*map_set_for_each_callback_args)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *); + long (*map_for_each_callback)(struct bpf_map *, bpf_callback_t, void *, u64); + u64 (*map_mem_usage)(const struct bpf_map *); + int *map_btf_id; + const struct bpf_iter_seq_info *iter_seq_info; +}; -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 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; }; - union { - unsigned long rx_bytes; - atomic_long_t __rx_bytes; + struct { + __u32 map_fd; + long: 32; + __u64 key; + union { + __u64 value; + __u64 next_key; + }; + __u64 flags; }; - union { - unsigned long tx_bytes; - atomic_long_t __tx_bytes; + struct { + __u64 in_batch; + __u64 out_batch; + __u64 keys; + __u64 values; + __u32 count; + __u32 map_fd; + __u64 elem_flags; + __u64 flags; + } batch; + struct { + __u32 prog_type; + __u32 insn_cnt; + __u64 insns; + __u64 license; + __u32 log_level; + __u32 log_size; + __u64 log_buf; + __u32 kern_version; + __u32 prog_flags; + char prog_name[16]; + __u32 prog_ifindex; + __u32 expected_attach_type; + __u32 prog_btf_fd; + __u32 func_info_rec_size; + __u64 func_info; + __u32 func_info_cnt; + __u32 line_info_rec_size; + __u64 line_info; + __u32 line_info_cnt; + __u32 attach_btf_id; + union { + __u32 attach_prog_fd; + __u32 attach_btf_obj_fd; + }; + __u32 core_relo_cnt; + __u64 fd_array; + __u64 core_relos; + __u32 core_relo_rec_size; + __u32 log_true_size; }; - union { - unsigned long rx_errors; - atomic_long_t __rx_errors; + struct { + __u64 pathname; + __u32 bpf_fd; + __u32 file_flags; + __s32 path_fd; + long: 32; }; - union { - unsigned long tx_errors; - atomic_long_t __tx_errors; + struct { + union { + __u32 target_fd; + __u32 target_ifindex; + }; + __u32 attach_bpf_fd; + __u32 attach_type; + __u32 attach_flags; + __u32 replace_bpf_fd; + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; }; - 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; + 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; + long: 32; + } test; + struct { + union { + __u32 start_id; + __u32 prog_id; + __u32 map_id; + __u32 btf_id; + __u32 link_id; + }; + __u32 next_id; + __u32 open_flags; }; - union { - unsigned long tx_compressed; - atomic_long_t __tx_compressed; + struct { + __u32 bpf_fd; + __u32 info_len; + __u64 info; + } info; + struct { + union { + __u32 target_fd; + __u32 target_ifindex; + }; + __u32 attach_type; + __u32 query_flags; + __u32 attach_flags; + __u64 prog_ids; + union { + __u32 prog_cnt; + __u32 count; + }; + long: 32; + __u64 prog_attach_flags; + __u64 link_ids; + __u64 link_attach_flags; + __u64 revision; + } query; + struct { + __u64 name; + __u32 prog_fd; + long: 32; + } raw_tracepoint; + struct { + __u64 btf; + __u64 btf_log_buf; + __u32 btf_size; + __u32 btf_log_size; + __u32 btf_log_level; + __u32 btf_log_true_size; }; + struct { + __u32 pid; + __u32 fd; + __u32 flags; + __u32 buf_len; + __u64 buf; + __u32 prog_id; + __u32 fd_type; + __u64 probe_offset; + __u64 probe_addr; + } task_fd_query; + struct { + union { + __u32 prog_fd; + __u32 map_fd; + }; + union { + __u32 target_fd; + __u32 target_ifindex; + }; + __u32 attach_type; + __u32 flags; + union { + __u32 target_btf_id; + struct { + __u64 iter_info; + __u32 iter_info_len; + long: 32; + }; + struct { + __u64 bpf_cookie; + } perf_event; + struct { + __u32 flags; + __u32 cnt; + __u64 syms; + __u64 addrs; + __u64 cookies; + } kprobe_multi; + struct { + __u32 target_btf_id; + long: 32; + __u64 cookie; + } tracing; + struct { + __u32 pf; + __u32 hooknum; + __s32 priority; + __u32 flags; + } netfilter; + struct { + union { + __u32 relative_fd; + __u32 relative_id; + }; + long: 32; + __u64 expected_revision; + } tcx; + struct { + __u64 path; + __u64 offsets; + __u64 ref_ctr_offsets; + __u64 cookies; + __u32 cnt; + __u32 flags; + __u32 pid; + long: 32; + } uprobe_multi; + struct { + union { + __u32 relative_fd; + __u32 relative_id; + }; + long: 32; + __u64 expected_revision; + } netkit; + }; + } link_create; + struct { + __u32 link_fd; + union { + __u32 new_prog_fd; + __u32 new_map_fd; + }; + __u32 flags; + union { + __u32 old_prog_fd; + __u32 old_map_fd; + }; + } link_update; + struct { + __u32 link_fd; + } link_detach; + struct { + __u32 type; + } enable_stats; + struct { + __u32 link_fd; + __u32 flags; + } iter_create; + struct { + __u32 prog_fd; + __u32 map_fd; + __u32 flags; + } prog_bind_map; }; -struct netdev_hw_addr_list { - struct list_head list; - int count; - struct rb_root tree; -}; - -struct wireless_dev; - -enum rx_handler_result { - RX_HANDLER_CONSUMED = 0, - RX_HANDLER_ANOTHER = 1, - RX_HANDLER_EXACT = 2, - RX_HANDLER_PASS = 3, +struct btf_header { + __u16 magic; + __u8 version; + __u8 flags; + __u32 hdr_len; + __u32 type_off; + __u32 type_len; + __u32 str_off; + __u32 str_len; }; -typedef enum rx_handler_result rx_handler_result_t; - -typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **); +struct btf_kfunc_set_tab; -struct ref_tracker_dir {}; +struct btf_id_dtor_kfunc_tab; -typedef struct {} possible_net_t; +struct btf_struct_metas; -enum netdev_ml_priv_type { - ML_PRIV_NONE = 0, - ML_PRIV_CAN = 1, +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[60]; + bool kernel_btf; }; -struct netdev_tc_txq { - u16 count; - u16 offset; +struct btf_type { + __u32 name_off; + __u32 info; + union { + __u32 size; + __u32 type; + }; }; -struct udp_tunnel_nic; +struct bpf_mem_caches; -struct bpf_xdp_link; +struct bpf_mem_cache; -struct bpf_xdp_entity { - struct bpf_prog *prog; - struct bpf_xdp_link *link; +struct bpf_mem_alloc { + struct bpf_mem_caches __attribute__((btf_type_tag("percpu"))) *caches; + struct bpf_mem_cache __attribute__((btf_type_tag("percpu"))) *cache; + bool percpu; + struct work_struct work; }; -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 bpf_local_storage_map_bucket; -struct header_ops; +struct bpf_local_storage_map { + struct bpf_map map; + struct bpf_local_storage_map_bucket *buckets; + u32 bucket_log; + u16 elem_size; + u16 cache_idx; + struct bpf_mem_alloc selem_ma; + struct bpf_mem_alloc storage_ma; + bool bpf_ma; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; -struct in_device; +struct bpf_local_storage_map_bucket { + struct hlist_head list; + raw_spinlock_t lock; +}; -struct inet6_dev; +struct bpf_mem_cache { + struct llist_head free_llist; + local_t active; + struct llist_head free_llist_extra; + struct irq_work refill_work; + struct obj_cgroup *objcg; + int unit_size; + int free_cnt; + int low_watermark; + int high_watermark; + int batch; + int percpu_size; + bool draining; + struct bpf_mem_cache *tgt; + struct llist_head free_by_rcu; + struct llist_node *free_by_rcu_tail; + struct llist_head waiting_for_gp; + struct llist_node *waiting_for_gp_tail; + struct callback_head rcu; + atomic_t call_rcu_in_progress; + struct llist_head free_llist_extra_rcu; + struct llist_head free_by_rcu_ttrace; + struct llist_head waiting_for_gp_ttrace; + struct callback_head rcu_ttrace; + atomic_t call_rcu_ttrace_in_progress; +}; -struct dsa_port; +struct bpf_mem_caches { + struct bpf_mem_cache cache[11]; +}; -struct netdev_rx_queue; +struct bpf_local_storage_data { + struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap; + long: 32; + u8 data[0]; +}; -struct netdev_queue; +struct bpf_id_pair { + u32 old; + u32 cur; +}; -struct cpu_rmap; +struct bpf_idmap { + u32 tmp_id_gen; + struct bpf_id_pair map[600]; +}; -struct Qdisc; +struct bpf_idset { + u32 count; + u32 ids[600]; +}; -struct xdp_dev_bulk_queue; +struct btf_mod_pair { + struct btf *btf; + struct module *module; +}; -struct xps_dev_maps; +struct bpf_verifier_log { + u64 start_pos; + u64 end_pos; + char __attribute__((btf_type_tag("user"))) *ubuf; + u32 level; + u32 len_total; + u32 len_max; + char kbuf[1024]; +}; -struct pcpu_lstats; +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_cb; + bool is_async_cb; + bool is_exception_cb; +}; -struct pcpu_sw_netstats; +struct backtrack_state { + struct bpf_verifier_env *env; + u32 frame; + u32 reg_masks[8]; + u64 stack_masks[8]; +}; -struct rtnl_link_ops; +typedef sockptr_t bpfptr_t; -struct phy_device; +struct bpf_verifier_ops; -struct sfp_bus; +struct bpf_verifier_stack_elem; -struct udp_tunnel_nic_info; +struct bpf_verifier_state; -struct rtnl_hw_stats64; +struct bpf_verifier_state_list; -struct devlink_port; +struct bpf_insn_aux_data; -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 dsa_port *dsa_ptr; - struct wireless_dev *ieee80211_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 netdev_queue __attribute__((btf_type_tag("rcu"))) *ingress_queue; - unsigned char broadcast[32]; - struct cpu_rmap *rx_cpu_rmap; - struct hlist_node index_hlist; - long: 32; - long: 32; - long: 32; +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; + u32 hidden_subprog_cnt; + int exception_callback_subprog; + bool explore_alu_limits; + bool allow_ptr_leaks; + bool allow_uninit_stack; + bool bpf_capable; + bool bypass_spec_v1; + bool bypass_spec_v4; + bool seen_direct_write; + bool seen_exception; + struct bpf_insn_aux_data *insn_aux_data; + const struct bpf_line_info *prev_linfo; long: 32; - 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 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 *); - possible_net_t nd_net; - void *ml_priv; - enum netdev_ml_priv_type ml_priv_type; + struct bpf_verifier_log log; + struct bpf_subprog_info subprog_info[258]; 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 bpf_idmap idmap_scratch; + struct bpf_idset idset_scratch; }; + struct { + int *insn_state; + int *insn_stack; + int cur_stack; + } cfg; + struct backtrack_state bt; + 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; long: 32; - 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 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; + u64 scratched_stack_slots; + u64 prev_log_pos; + u64 prev_insn_print_pos; + char tmp_str_buf[320]; }; -struct dev_ifalias { - struct callback_head rcuhead; - char ifalias[0]; +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 netdev_tx { - __NETDEV_TX_MIN = -2147483648, - NETDEV_TX_OK = 0, - NETDEV_TX_BUSY = 16, +enum bpf_access_type { + BPF_READ = 1, + BPF_WRITE = 2, }; -typedef enum netdev_tx netdev_tx_t; +struct bpf_insn_access_aux; -typedef __u16 __be16; +struct bpf_reg_state; -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 bpf_verifier_ops { + const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *); + bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *); + int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *); + int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *); + u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); + int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int); }; -struct ifreq; - -struct if_settings; - -struct ifmap; - -struct neigh_parms; - -struct rtnl_link_stats64; - -struct ifla_vf_info; +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 ifla_vf_stats; +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, +}; -struct nlattr; +enum bpf_iter_state { + BPF_ITER_STATE_INVALID = 0, + BPF_ITER_STATE_ACTIVE = 1, + BPF_ITER_STATE_DRAINED = 2, +}; -struct ifla_vf_guid; +struct tnum { + u64 value; + u64 mask; +}; -struct netlink_ext_ack; +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 neighbour; +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; + }; + long: 32; + 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; + long: 32; +}; -struct ndmsg; +struct bpf_active_lock { + void *ptr; + u32 id; +}; -struct netlink_callback; +struct bpf_idx_pair; -struct nlmsghdr; +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; + bool used_as_loop_entry; + u32 first_insn_idx; + u32 last_insn_idx; + struct bpf_verifier_state *loop_entry; + struct bpf_idx_pair *jmp_history; + u32 jmp_history_cnt; + u32 dfs_depth; + u32 callback_unroll_depth; +}; -struct netdev_phys_item_id; +struct bpf_reference_state; -struct netdev_bpf; +struct bpf_stack_state; -struct xdp_frame; - -struct xdp_buff; - -struct ip_tunnel_parm; - -struct net_device_path_ctx; +struct bpf_func_state { + struct bpf_reg_state regs[11]; + int callsite; + u32 frameno; + u32 subprogno; + u32 async_entry_cnt; + bool in_callback_fn; + long: 32; + struct tnum callback_ret_range; + bool in_async_callback_fn; + bool in_exception_callback_fn; + u32 callback_depth; + int acquired_refs; + struct bpf_reference_state *refs; + int allocated_stack; + struct bpf_stack_state *stack; +}; -struct net_device_path; +struct bpf_reference_state { + int id; + int insn_idx; + int callback_ref; +}; -struct skb_shared_hwtstamps; +struct bpf_stack_state { + struct bpf_reg_state spilled_ptr; + u8 slot_type[8]; +}; -struct net_device_ops { - int (*ndo_init)(struct net_device *); - void (*ndo_uninit)(struct net_device *); - int (*ndo_open)(struct net_device *); - int (*ndo_stop)(struct net_device *); - netdev_tx_t (*ndo_start_xmit)(struct sk_buff *, struct net_device *); - netdev_features_t (*ndo_features_check)(struct sk_buff *, struct net_device *, netdev_features_t); - u16 (*ndo_select_queue)(struct net_device *, struct sk_buff *, struct net_device *); - void (*ndo_change_rx_flags)(struct net_device *, int); - void (*ndo_set_rx_mode)(struct net_device *); - int (*ndo_set_mac_address)(struct net_device *, void *); - int (*ndo_validate_addr)(struct net_device *); - int (*ndo_do_ioctl)(struct net_device *, struct ifreq *, int); - int (*ndo_eth_ioctl)(struct net_device *, struct ifreq *, int); - int (*ndo_siocbond)(struct net_device *, struct ifreq *, int); - int (*ndo_siocwandev)(struct net_device *, struct if_settings *); - int (*ndo_siocdevprivate)(struct net_device *, struct ifreq *, void __attribute__((btf_type_tag("user"))) *, int); - int (*ndo_set_config)(struct net_device *, struct ifmap *); - int (*ndo_change_mtu)(struct net_device *, int); - int (*ndo_neigh_setup)(struct net_device *, struct neigh_parms *); - void (*ndo_tx_timeout)(struct net_device *, unsigned int); - void (*ndo_get_stats64)(struct net_device *, struct rtnl_link_stats64 *); - bool (*ndo_has_offload_stats)(const struct net_device *, int); - int (*ndo_get_offload_stats)(int, const struct net_device *, void *); - struct net_device_stats * (*ndo_get_stats)(struct net_device *); - int (*ndo_vlan_rx_add_vid)(struct net_device *, __be16, u16); - int (*ndo_vlan_rx_kill_vid)(struct net_device *, __be16, u16); - int (*ndo_set_vf_mac)(struct net_device *, int, u8 *); - int (*ndo_set_vf_vlan)(struct net_device *, int, u16, u8, __be16); - int (*ndo_set_vf_rate)(struct net_device *, int, int, int); - int (*ndo_set_vf_spoofchk)(struct net_device *, int, bool); - int (*ndo_set_vf_trust)(struct net_device *, int, bool); - int (*ndo_get_vf_config)(struct net_device *, int, struct ifla_vf_info *); - int (*ndo_set_vf_link_state)(struct net_device *, int, int); - int (*ndo_get_vf_stats)(struct net_device *, int, struct ifla_vf_stats *); - int (*ndo_set_vf_port)(struct net_device *, int, struct nlattr **); - int (*ndo_get_vf_port)(struct net_device *, int, struct sk_buff *); - int (*ndo_get_vf_guid)(struct net_device *, int, struct ifla_vf_guid *, struct ifla_vf_guid *); - int (*ndo_set_vf_guid)(struct net_device *, int, u64, int); - int (*ndo_set_vf_rss_query_en)(struct net_device *, int, bool); - int (*ndo_setup_tc)(struct net_device *, enum tc_setup_type, void *); - int (*ndo_rx_flow_steer)(struct net_device *, const struct sk_buff *, u16, u32); - int (*ndo_add_slave)(struct net_device *, struct net_device *, struct netlink_ext_ack *); - int (*ndo_del_slave)(struct net_device *, struct net_device *); - struct net_device * (*ndo_get_xmit_slave)(struct net_device *, struct sk_buff *, bool); - struct net_device * (*ndo_sk_get_lower_dev)(struct net_device *, struct sock *); - netdev_features_t (*ndo_fix_features)(struct net_device *, netdev_features_t); - int (*ndo_set_features)(struct net_device *, netdev_features_t); - int (*ndo_neigh_construct)(struct net_device *, struct neighbour *); - void (*ndo_neigh_destroy)(struct net_device *, struct neighbour *); - int (*ndo_fdb_add)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, u16, struct netlink_ext_ack *); - int (*ndo_fdb_del)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, struct netlink_ext_ack *); - int (*ndo_fdb_del_bulk)(struct 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_mdb_add)(struct net_device *, struct nlattr **, u16, struct netlink_ext_ack *); - int (*ndo_mdb_del)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); - int (*ndo_mdb_dump)(struct net_device *, struct sk_buff *, struct netlink_callback *); - 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); +struct bpf_idx_pair { + u32 prev_idx; + u32 idx; }; -typedef __u32 __wsum; +struct bpf_verifier_state_list { + struct bpf_verifier_state state; + struct bpf_verifier_state_list *next; + int miss_cnt; + int hit_cnt; +}; -typedef unsigned char *sk_buff_data_t; +struct bpf_loop_inline_state { + unsigned int initialized: 1; + unsigned int fit_for_inline: 1; + u32 callback_subprogno; +}; -struct skb_ext; +struct btf_struct_meta; -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 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; +struct bpf_insn_aux_data { union { + enum bpf_reg_type ptr_type; + unsigned long map_ptr_state; + s32 call_imm; + u32 alu_limit; struct { - __u8 __pkt_type_offset[0]; - __u8 pkt_type: 3; - __u8 ignore_df: 1; - __u8 dst_pending_confirm: 1; - __u8 ip_summed: 2; - __u8 ooo_okay: 1; - __u8 __mono_tc_offset[0]; - __u8 mono_delivery_time: 1; - __u8 remcsum_offload: 1; - __u8 csum_complete_sw: 1; - __u8 csum_level: 2; - __u8 inner_protocol_type: 1; - __u8 l4_hash: 1; - __u8 sw_hash: 1; - __u8 wifi_acked_valid: 1; - __u8 wifi_acked: 1; - __u8 no_fcs: 1; - __u8 encapsulation: 1; - __u8 encap_hdr_csum: 1; - __u8 csum_valid: 1; - __u8 ndisc_nodetype: 2; - __u8 offload_fwd_mark: 1; - __u8 offload_l3_fwd_mark: 1; - __u8 redirected: 1; - __u8 slow_gro: 1; - u16 alloc_cpu; - union { - __wsum csum; - struct { - __u16 csum_start; - __u16 csum_offset; - }; - }; - __u32 priority; - int skb_iif; - __u32 hash; - union { - u32 vlan_all; - struct { - __be16 vlan_proto; - __u16 vlan_tci; - }; - }; - union { - unsigned int napi_id; - unsigned int sender_cpu; - }; - union { - __u32 mark; - __u32 reserved_tailroom; - }; - union { - __be16 inner_protocol; - __u8 inner_ipproto; - }; - __u16 inner_transport_header; - __u16 inner_network_header; - __u16 inner_mac_header; - __be16 protocol; - __u16 transport_header; - __u16 network_header; - __u16 mac_header; + u32 map_index; + u32 map_off; }; struct { - __u8 __pkt_type_offset[0]; - __u8 pkt_type: 3; - __u8 ignore_df: 1; - __u8 dst_pending_confirm: 1; - __u8 ip_summed: 2; - __u8 ooo_okay: 1; - __u8 __mono_tc_offset[0]; - __u8 mono_delivery_time: 1; - __u8 remcsum_offload: 1; - __u8 csum_complete_sw: 1; - __u8 csum_level: 2; - __u8 inner_protocol_type: 1; - __u8 l4_hash: 1; - __u8 sw_hash: 1; - __u8 wifi_acked_valid: 1; - __u8 wifi_acked: 1; - __u8 no_fcs: 1; - __u8 encapsulation: 1; - __u8 encap_hdr_csum: 1; - __u8 csum_valid: 1; - __u8 ndisc_nodetype: 2; - __u8 offload_fwd_mark: 1; - __u8 offload_l3_fwd_mark: 1; - __u8 redirected: 1; - __u8 slow_gro: 1; - u16 alloc_cpu; - union { - __wsum csum; - struct { - __u16 csum_start; - __u16 csum_offset; - }; - }; - __u32 priority; - int skb_iif; - __u32 hash; + enum bpf_reg_type reg_type; union { - u32 vlan_all; struct { - __be16 vlan_proto; - __u16 vlan_tci; + struct btf *btf; + u32 btf_id; }; + u32 mem_size; }; - union { - unsigned int napi_id; - unsigned int sender_cpu; - }; - union { - __u32 mark; - __u32 reserved_tailroom; - }; - union { - __be16 inner_protocol; - __u8 inner_ipproto; - }; - __u16 inner_transport_header; - __u16 inner_network_header; - __u16 inner_mac_header; - __be16 protocol; - __u16 transport_header; - __u16 network_header; - __u16 mac_header; - } headers; + } btf_var; + struct bpf_loop_inline_state loop_inline_state; }; - sk_buff_data_t tail; - sk_buff_data_t end; - unsigned char *head; - unsigned char *data; - unsigned int truesize; - refcount_t users; - struct skb_ext *extensions; -}; - -struct skb_ext { - refcount_t refcnt; - u8 offset[1]; - u8 chunks; - long: 0; - char data[0]; -}; - -typedef unsigned short __kernel_sa_family_t; - -typedef __kernel_sa_family_t sa_family_t; - -struct sockaddr { - sa_family_t sa_family; + long: 32; union { - char sa_data_min[14]; - struct { - struct {} __empty_sa_data; - char sa_data[0]; - }; + u64 obj_new_size; + u64 insert_off; }; + struct btf_struct_meta *kptr_struct_meta; + long: 32; + 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; + bool call_with_percpu_alloc_ptr; + u8 alu_state; + unsigned int orig_idx; + bool jmp_point; + bool prune_point; + bool force_checkpoint; + bool calls_callback; }; -struct 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 btf_struct_meta { + u32 btf_id; + struct btf_record *record; }; -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; +enum btf_field_type { + BPF_SPIN_LOCK = 1, + BPF_TIMER = 2, + BPF_KPTR_UNREF = 4, + BPF_KPTR_REF = 8, + BPF_KPTR_PERCPU = 16, + BPF_KPTR = 28, + BPF_LIST_HEAD = 32, + BPF_LIST_NODE = 64, + BPF_RB_ROOT = 128, + BPF_RB_NODE = 256, + BPF_GRAPH_NODE_OR_ROOT = 480, + BPF_REFCOUNT = 512, }; -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; -}; +typedef void (*btf_dtor_kfunc_t)(void *); -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 btf_field_kptr { + struct btf *btf; + struct module *module; + btf_dtor_kfunc_t dtor; + u32 btf_id; }; -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 btf_field_graph_root { + struct btf *btf; + u32 value_btf_id; + u32 node_offset; + struct btf_record *value_rec; }; -struct nlattr { - __u16 nla_len; - __u16 nla_type; +struct btf_field { + u32 offset; + u32 size; + enum btf_field_type type; + union { + struct btf_field_kptr kptr; + struct btf_field_graph_root graph_root; + }; }; -struct ifla_vf_guid { - __u32 vf; - long: 32; - __u64 guid; +struct btf_record { + u32 cnt; + u32 field_mask; + int spin_lock_off; + int timer_off; + int refcount_off; + struct btf_field fields[0]; }; -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 bpf_line_info { + __u32 insn_off; + __u32 file_name_off; + __u32 line_off; + __u32 line_col; }; -struct netlink_range_validation; - -struct netlink_range_validation_signed; +struct bpf_iter_aux_info; -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 *); - }; -}; +typedef int (*bpf_iter_init_seq_priv_t)(void *, struct bpf_iter_aux_info *); -struct netlink_range_validation { - u64 min; - u64 max; -}; +typedef void (*bpf_iter_fini_seq_priv_t)(void *); -struct netlink_range_validation_signed { - s64 min; - s64 max; +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; }; -struct ndmsg { - __u8 ndm_family; - __u8 ndm_pad1; - __u16 ndm_pad2; - __s32 ndm_ifindex; - __u16 ndm_state; - __u8 ndm_flags; - __u8 ndm_type; +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, }; -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]; - }; +enum bpf_iter_task_type { + BPF_TASK_ITER_ALL = 0, + BPF_TASK_ITER_TID = 1, + BPF_TASK_ITER_TGID = 2, }; -struct nlmsghdr { - __u32 nlmsg_len; - __u16 nlmsg_type; - __u16 nlmsg_flags; - __u32 nlmsg_seq; - __u32 nlmsg_pid; +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; }; -struct netdev_phys_item_id { - unsigned char id[32]; - unsigned char id_len; +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; }; -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_cgroup_storage_key { + __u64 cgroup_inode_id; + __u32 attach_type; + long: 32; }; -struct bpf_offloaded_map; +struct bpf_storage_buffer; -struct xsk_buff_pool; +struct bpf_cgroup_storage_map; -struct netdev_bpf { - enum bpf_netdev_command command; +struct bpf_cgroup_storage { 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_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; + long: 32; }; -struct sock_fprog_kern { - u16 len; - struct sock_filter *filter; -}; - -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct bpf_storage_buffer { + struct callback_head rcu; + char data[0]; }; struct bpf_map_dev_ops { @@ -11623,59 +13195,6 @@ struct bpf_map_dev_ops { 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; - -struct xdp_txq_info { - struct net_device *dev; -}; - struct net_device_path_ctx { const struct net_device *dev; u8 daddr[6]; @@ -11723,6 +13242,7 @@ struct net_device_path { u8 queue; u16 wcid; u8 bss; + u8 amsdu; } mtk_wdma; }; }; @@ -11734,6 +13254,20 @@ struct skb_shared_hwtstamps { }; }; +enum hwtstamp_source { + HWTSTAMP_SOURCE_NETDEV = 0, + HWTSTAMP_SOURCE_PHYLIB = 1, +}; + +struct kernel_hwtstamp_config { + int flags; + int tx_type; + int rx_filter; + struct ifreq *ifr; + bool copied_to_user; + enum hwtstamp_source source; +}; + enum xdp_rss_hash_type { XDP_RSS_L3_IPV4 = 1, XDP_RSS_L3_IPV6 = 2, @@ -11770,15 +13304,6 @@ struct xdp_metadata_ops { int (*xmo_rx_hash)(const struct xdp_md *, u32 *, enum xdp_rss_hash_type *); }; -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; @@ -11947,8 +13472,6 @@ 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 *); @@ -11958,8 +13481,6 @@ struct ndisc_ops { 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 *); @@ -11969,65 +13490,6 @@ struct header_ops { __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[24]; -}; - -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; - long: 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]; @@ -12064,14 +13526,6 @@ struct in_device { struct callback_head callback_head; }; -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; @@ -12101,6 +13555,7 @@ struct ipv6_devconf { __s32 accept_ra_defrtr; __u32 ra_defrtr_metric; __s32 accept_ra_min_hop_limit; + __s32 accept_ra_min_lft; __s32 accept_ra_pinfo; __s32 ignore_routes_with_linkdown; __s32 accept_ra_rtr_pref; @@ -12132,11 +13587,10 @@ struct ipv6_devconf { __u32 ioam6_id_wide; __u8 ioam6_enabled; __u8 ndisc_evict_nocarrier; + __u8 ra_honor_pio_life; struct ctl_table_header *sysctl_header; }; -struct ipstats_mib; - struct icmpv6_mib_device; struct icmpv6msg_mib_device; @@ -12195,39 +13649,15 @@ struct inet6_dev { unsigned int ra_mtu; }; -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: 32; - long: 32; - long: 32; -}; - -struct rps_map { - unsigned int len; - struct callback_head rcu; - u16 cpus[0]; +struct bpf_mprog_fp { + struct bpf_prog *prog; }; -struct rps_dev_flow { - u16 cpu; - u16 filter; - unsigned int last_qtail; -}; +struct bpf_mprog_bundle; -struct rps_dev_flow_table { - unsigned int mask; - struct callback_head rcu; - struct rps_dev_flow flows[0]; +struct bpf_mprog_entry { + struct bpf_mprog_fp fp_items[64]; + struct bpf_mprog_bundle *parent; }; struct dql { @@ -12463,99 +13893,275 @@ struct tcf_block { struct mutex proto_destroy_lock; }; -struct raw_notifier_head { - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; -}; +struct tcf_proto; -struct prot_inuse; +struct tcf_proto_ops; -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 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 tcp_mib; - -struct linux_mib; +struct tcf_result; -struct udp_mib; +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 icmp_mib; +enum skb_drop_reason { + SKB_NOT_DROPPED_YET = 0, + SKB_CONSUMED = 1, + SKB_DROP_REASON_NOT_SPECIFIED = 2, + SKB_DROP_REASON_NO_SOCKET = 3, + SKB_DROP_REASON_PKT_TOO_SMALL = 4, + SKB_DROP_REASON_TCP_CSUM = 5, + SKB_DROP_REASON_SOCKET_FILTER = 6, + SKB_DROP_REASON_UDP_CSUM = 7, + SKB_DROP_REASON_NETFILTER_DROP = 8, + SKB_DROP_REASON_OTHERHOST = 9, + SKB_DROP_REASON_IP_CSUM = 10, + SKB_DROP_REASON_IP_INHDR = 11, + SKB_DROP_REASON_IP_RPFILTER = 12, + SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST = 13, + SKB_DROP_REASON_XFRM_POLICY = 14, + SKB_DROP_REASON_IP_NOPROTO = 15, + SKB_DROP_REASON_SOCKET_RCVBUFF = 16, + SKB_DROP_REASON_PROTO_MEM = 17, + SKB_DROP_REASON_TCP_AUTH_HDR = 18, + SKB_DROP_REASON_TCP_MD5NOTFOUND = 19, + SKB_DROP_REASON_TCP_MD5UNEXPECTED = 20, + SKB_DROP_REASON_TCP_MD5FAILURE = 21, + SKB_DROP_REASON_TCP_AONOTFOUND = 22, + SKB_DROP_REASON_TCP_AOUNEXPECTED = 23, + SKB_DROP_REASON_TCP_AOKEYNOTFOUND = 24, + SKB_DROP_REASON_TCP_AOFAILURE = 25, + SKB_DROP_REASON_SOCKET_BACKLOG = 26, + SKB_DROP_REASON_TCP_FLAGS = 27, + SKB_DROP_REASON_TCP_ZEROWINDOW = 28, + SKB_DROP_REASON_TCP_OLD_DATA = 29, + SKB_DROP_REASON_TCP_OVERWINDOW = 30, + SKB_DROP_REASON_TCP_OFOMERGE = 31, + SKB_DROP_REASON_TCP_RFC7323_PAWS = 32, + SKB_DROP_REASON_TCP_OLD_SEQUENCE = 33, + SKB_DROP_REASON_TCP_INVALID_SEQUENCE = 34, + SKB_DROP_REASON_TCP_RESET = 35, + SKB_DROP_REASON_TCP_INVALID_SYN = 36, + SKB_DROP_REASON_TCP_CLOSE = 37, + SKB_DROP_REASON_TCP_FASTOPEN = 38, + SKB_DROP_REASON_TCP_OLD_ACK = 39, + SKB_DROP_REASON_TCP_TOO_OLD_ACK = 40, + SKB_DROP_REASON_TCP_ACK_UNSENT_DATA = 41, + SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE = 42, + SKB_DROP_REASON_TCP_OFO_DROP = 43, + SKB_DROP_REASON_IP_OUTNOROUTES = 44, + SKB_DROP_REASON_BPF_CGROUP_EGRESS = 45, + SKB_DROP_REASON_IPV6DISABLED = 46, + SKB_DROP_REASON_NEIGH_CREATEFAIL = 47, + SKB_DROP_REASON_NEIGH_FAILED = 48, + SKB_DROP_REASON_NEIGH_QUEUEFULL = 49, + SKB_DROP_REASON_NEIGH_DEAD = 50, + SKB_DROP_REASON_TC_EGRESS = 51, + SKB_DROP_REASON_QDISC_DROP = 52, + SKB_DROP_REASON_CPU_BACKLOG = 53, + SKB_DROP_REASON_XDP = 54, + SKB_DROP_REASON_TC_INGRESS = 55, + SKB_DROP_REASON_UNHANDLED_PROTO = 56, + SKB_DROP_REASON_SKB_CSUM = 57, + SKB_DROP_REASON_SKB_GSO_SEG = 58, + SKB_DROP_REASON_SKB_UCOPY_FAULT = 59, + SKB_DROP_REASON_DEV_HDR = 60, + SKB_DROP_REASON_DEV_READY = 61, + SKB_DROP_REASON_FULL_RING = 62, + SKB_DROP_REASON_NOMEM = 63, + SKB_DROP_REASON_HDR_TRUNC = 64, + SKB_DROP_REASON_TAP_FILTER = 65, + SKB_DROP_REASON_TAP_TXFILTER = 66, + SKB_DROP_REASON_ICMP_CSUM = 67, + SKB_DROP_REASON_INVALID_PROTO = 68, + SKB_DROP_REASON_IP_INADDRERRORS = 69, + SKB_DROP_REASON_IP_INNOROUTES = 70, + SKB_DROP_REASON_PKT_TOO_BIG = 71, + SKB_DROP_REASON_DUP_FRAG = 72, + SKB_DROP_REASON_FRAG_REASM_TIMEOUT = 73, + SKB_DROP_REASON_FRAG_TOO_FAR = 74, + SKB_DROP_REASON_TCP_MINTTL = 75, + SKB_DROP_REASON_IPV6_BAD_EXTHDR = 76, + SKB_DROP_REASON_IPV6_NDISC_FRAG = 77, + SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT = 78, + SKB_DROP_REASON_IPV6_NDISC_BAD_CODE = 79, + SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS = 80, + SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST = 81, + SKB_DROP_REASON_QUEUE_PURGE = 82, + SKB_DROP_REASON_TC_ERROR = 83, + SKB_DROP_REASON_MAX = 84, + SKB_DROP_REASON_SUBSYS_MASK = 4294901760, +}; -struct icmpmsg_mib; +struct tcf_result { + union { + struct { + unsigned long class; + u32 classid; + }; + const struct tcf_proto *goto_tp; + }; + enum skb_drop_reason drop_reason; +}; -struct icmpv6_mib; +typedef int flow_setup_cb_t(enum tc_setup_type, void *, void *); -struct icmpv6msg_mib; +struct tcf_walker; -struct netns_mib { - struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ip_statistics; - struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ipv6_statistics; - struct tcp_mib __attribute__((btf_type_tag("percpu"))) *tcp_statistics; - struct linux_mib __attribute__((btf_type_tag("percpu"))) *net_statistics; - struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_statistics; - struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_stats_in6; - struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_statistics; - struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_stats_in6; - struct icmp_mib __attribute__((btf_type_tag("percpu"))) *icmp_statistics; - struct icmpmsg_mib *icmpmsg_statistics; - struct icmpv6_mib __attribute__((btf_type_tag("percpu"))) *icmpv6_statistics; - struct icmpv6msg_mib *icmpv6msg_statistics; - struct proc_dir_entry *proc_net_devsnmp6; -}; +struct tcf_exts; -struct netns_packet { - struct mutex sklist_lock; - struct hlist_head sklist; +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 unix_table { - spinlock_t *locks; - struct hlist_head *buckets; +struct tc_stats { + __u64 bytes; + __u32 packets; + __u32 drops; + __u32 overlimits; + __u32 bps; + __u32 pps; + __u32 qlen; + __u32 backlog; + long: 32; }; -struct netns_unix { - struct unix_table table; - int sysctl_max_dgram_qlen; - struct ctl_table_header *ctl; +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 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 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 inet_hashinfo; +struct qdisc_size_table { + struct callback_head rcu; + struct list_head list; + struct tc_sizespec szopts; + int refcnt; + u16 data[0]; +}; -struct inet_timewait_death_row { - refcount_t tw_refcount; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct inet_hashinfo *hashinfo; - int sysctl_max_tw_buckets; - long: 32; +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 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 pcpu_lstats { + u64_stats_t packets; + u64_stats_t bytes; + struct u64_stats_sync syncp; long: 32; long: 32; long: 32; +}; + +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; long: 32; long: 32; long: 32; @@ -12563,209 +14169,107 @@ struct inet_timewait_death_row { long: 32; long: 32; long: 32; +}; + +struct pcpu_dstats { + u64 rx_packets; + u64 rx_bytes; + u64 rx_drops; + u64 tx_packets; + u64 tx_bytes; + u64 tx_drops; + struct u64_stats_sync syncp; long: 32; long: 32; long: 32; }; -struct local_ports { - seqlock_t lock; - int range[2]; - bool warned; +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 ping_group_range { - seqlock_t lock; - kgid_t range[2]; +struct netprio_map { + struct callback_head rcu; + u32 priomap_len; + u32 priomap[0]; }; -typedef struct { - u64 key[2]; -} siphash_key_t; - -struct udp_table; - -struct ip_ra_chain; - -struct inet_peer_base; +struct udp_tunnel_nic_table_info { + unsigned int n_entries; + unsigned int tunnel_types; +}; -struct fqdir; +struct udp_tunnel_info; -struct tcp_congestion_ops; +struct udp_tunnel_nic_shared; -struct tcp_fastopen_context; +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 fib_notifier_ops; +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 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; - bool fib_has_custom_local_routes; - bool fib_offload_disabled; - u8 sysctl_tcp_shrink_window; - struct hlist_head *fib_table_hash; - struct sock *fibnl; - struct sock *mc_autojoin_sk; - struct inet_peer_base *peers; - struct fqdir *fqdir; - u8 sysctl_icmp_echo_ignore_all; - u8 sysctl_icmp_echo_enable_probe; - u8 sysctl_icmp_echo_ignore_broadcasts; - u8 sysctl_icmp_ignore_bogus_error_responses; - u8 sysctl_icmp_errors_use_inbound_ifaddr; - int sysctl_icmp_ratelimit; - int sysctl_icmp_ratemask; - u32 ip_rt_min_pmtu; - int ip_rt_mtu_expires; - int ip_rt_min_advmss; - struct local_ports ip_local_ports; - u8 sysctl_tcp_ecn; - u8 sysctl_tcp_ecn_fallback; - u8 sysctl_ip_default_ttl; - u8 sysctl_ip_no_pmtu_disc; - u8 sysctl_ip_fwd_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_tcp_syn_linear_timeouts; - u8 sysctl_igmp_llm_reports; - int sysctl_igmp_max_memberships; - int sysctl_igmp_max_msf; - int sysctl_igmp_qrv; - struct ping_group_range ping_group_range; - atomic_t dev_addr_genid; - unsigned int sysctl_udp_child_hash_entries; - unsigned long *sysctl_local_reserved_ports; - int sysctl_ip_prot_sock; - struct fib_notifier_ops *notifier_ops; - unsigned int fib_seq; - struct fib_notifier_ops *ipmr_notifier_ops; - unsigned int ipmr_seq; - atomic_t rt_genid; - siphash_key_t ip_id_key; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct skb_ext { + refcount_t refcnt; + u8 offset[1]; + u8 chunks; + long: 0; + char data[0]; }; -struct dst_entry; +typedef enum { + SS_FREE = 0, + SS_UNCONNECTED = 1, + SS_CONNECTING = 2, + SS_CONNECTED = 3, + SS_DISCONNECTING = 4, +} socket_state; -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; - long: 32; - long: 32; - long: 32; - long: 32; +struct socket_wq { + wait_queue_head_t wait; + struct fasync_struct *fasync_list; + unsigned long flags; + struct callback_head rcu; long: 32; long: 32; long: 32; @@ -12775,9 +14279,19 @@ struct dst_ops { long: 32; long: 32; long: 32; +}; + +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: 32; long: 32; - struct percpu_counter pcpuc_entries; long: 32; long: 32; long: 32; @@ -12786,286 +14300,224 @@ struct dst_ops { long: 32; long: 32; long: 32; + struct socket_wq wq; }; -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[8]; - unsigned long *icmpv6_ratemask_ptr; - u8 anycast_src_echo_reply; - u8 ip_nonlocal_bind; - u8 fwmark_reflect; - u8 flowlabel_state_ranges; - int idgen_retries; - int idgen_delay; - int flowlabel_reflect; - int max_dst_opts_cnt; - int max_hbh_opts_cnt; - int max_dst_opts_len; - int max_hbh_opts_len; - int seg6_flowlabel; - u32 ioam6_id; - u64 ioam6_id_wide; - u8 skip_notify_on_dev_down; - u8 fib_notify_on_flag_change; - u8 icmpv6_error_anycast_as_unicast; - long: 32; -}; +typedef struct { + size_t written; + size_t count; + union { + char __attribute__((btf_type_tag("user"))) *buf; + void *data; + } arg; + int error; +} read_descriptor_t; -struct fib6_info; +typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t); -struct rt6_info; +typedef int (*skb_read_actor_t)(struct sock *, struct sk_buff *); -struct rt6_statistics; +struct proto_ops { + int family; + struct module *owner; + int (*release)(struct socket *); + int (*bind)(struct socket *, struct sockaddr *, int); + int (*connect)(struct socket *, struct sockaddr *, int, int); + int (*socketpair)(struct socket *, struct socket *); + int (*accept)(struct socket *, struct socket *, int, bool); + int (*getname)(struct socket *, struct sockaddr *, int); + __poll_t (*poll)(struct file *, struct socket *, struct poll_table_struct *); + int (*ioctl)(struct socket *, unsigned int, unsigned long); + int (*gettstamp)(struct socket *, void __attribute__((btf_type_tag("user"))) *, bool, bool); + int (*listen)(struct socket *, int); + int (*shutdown)(struct socket *, int); + int (*setsockopt)(struct socket *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct socket *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); + void (*show_fdinfo)(struct seq_file *, struct socket *); + int (*sendmsg)(struct socket *, struct msghdr *, size_t); + int (*recvmsg)(struct socket *, struct msghdr *, size_t, int); + int (*mmap)(struct file *, struct socket *, struct vm_area_struct *); + ssize_t (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*splice_eof)(struct socket *); + int (*set_peek_off)(struct sock *, int); + int (*peek_len)(struct socket *); + int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t); + int (*read_skb)(struct sock *, skb_read_actor_t); + int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); + int (*set_rcvlowat)(struct sock *, int); +}; -struct fib6_table; +typedef struct { + atomic_t refcnt; +} rcuref_t; -struct fib_rules_ops; +struct xfrm_state; -struct seg6_pernet_data; +struct lwtunnel_state; -struct ioam6_pernet_data; +struct uncached_list; -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; - bool fib6_has_custom_rules; - unsigned int fib6_rules_require_fldissect; - unsigned int fib6_routes_require_src; - struct rt6_info *ip6_prohibit_entry; - struct rt6_info *ip6_blk_hole_entry; - struct fib6_table *fib6_local_tbl; - struct fib_rules_ops *fib6_rules_ops; - 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: 32; - long: 32; +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; + int __use; + unsigned long lastuse; + struct callback_head callback_head; + short error; + short __pad; + __u32 tclassid; + struct lwtunnel_state *lwtstate; + rcuref_t __rcuref; + netdevice_tracker dev_tracker; + struct list_head rt_uncached; + struct uncached_list *rt_uncached_list; }; -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 sk_filter { + refcount_t refcnt; + struct callback_head rcu; + struct bpf_prog *prog; }; -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_mark { + __u32 v; + __u32 m; }; -struct xfrm_policy_hthresh { - struct work_struct work; - seqlock_t lock; - u8 lbits4; - u8 rbits4; - u8 lbits6; - u8 rbits6; +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 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +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 can_dev_rcv_lists; +struct xfrm_lifetime_cur { + __u64 bytes; + __u64 packets; + __u64 add_time; + __u64 use_time; +}; -struct can_pkg_stats; +struct xfrm_policy_walk_entry { + struct list_head all; + u8 dead; +}; -struct can_rcv_lists_stats; +struct xfrm_policy_queue { + struct sk_buff_head hold_queue; + struct timer_list hold_timer; + unsigned long timeout; +}; -struct netns_can { - struct proc_dir_entry *proc_dir; - struct proc_dir_entry *pde_stats; - struct proc_dir_entry *pde_reset_stats; - struct proc_dir_entry *pde_rcvlist_all; - struct proc_dir_entry *pde_rcvlist_fil; - struct proc_dir_entry *pde_rcvlist_inv; - struct proc_dir_entry *pde_rcvlist_sff; - struct proc_dir_entry *pde_rcvlist_eff; - struct proc_dir_entry *pde_rcvlist_err; - struct proc_dir_entry *bcmproc_dir; - struct can_dev_rcv_lists *rx_alldev_list; - spinlock_t rcvlists_lock; - struct timer_list stattimer; - struct can_pkg_stats *pkg_stats; - struct can_rcv_lists_stats *rcv_lists_stats; - struct hlist_head cgw_list; +struct xfrm_id { + xfrm_address_t daddr; + __be32 spi; + __u8 proto; }; -struct netns_xdp { - struct mutex lock; - struct hlist_head list; +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 uevent_sock; +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; + u8 flags: 2; +}; -struct net_generic; +struct xfrm_sec_ctx; -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; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct netns_ipv4 ipv4; - struct netns_ipv6 ipv6; - struct net_generic __attribute__((btf_type_tag("rcu"))) *gen; - struct netns_bpf bpf; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct netns_xfrm xfrm; - u64 net_cookie; - struct netns_can can; - struct netns_xdp xdp; - struct sock *crypto_nlsk; - struct sock *diag_nlsk; - long: 32; - long: 32; +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; +}; + +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 prot_inuse { @@ -13074,7 +14526,7 @@ struct prot_inuse { }; struct ipstats_mib { - u64 mibs[37]; + u64 mibs[38]; struct u64_stats_sync syncp; long: 32; }; @@ -13084,7 +14536,7 @@ struct tcp_mib { }; struct linux_mib { - unsigned long mibs[127]; + unsigned long mibs[132]; }; struct udp_mib { @@ -13329,777 +14781,989 @@ struct tcp_fastopen_context { long: 32; }; -typedef struct { - atomic_t refcnt; -} rcuref_t; +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 xfrm_state; +struct fib_rule; -struct lwtunnel_state; +struct flowi; -struct uncached_list; +struct fib_lookup_arg; -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; - int __use; - unsigned long lastuse; - struct callback_head callback_head; - short error; - short __pad; - __u32 tclassid; - struct lwtunnel_state *lwtstate; - rcuref_t __rcuref; - netdevice_tracker dev_tracker; - struct list_head rt_uncached; - struct uncached_list *rt_uncached_list; -}; +struct fib_rule_hdr; -struct net_generic { - union { - struct { - unsigned int len; - struct callback_head rcu; - } s; - struct { - struct {} __empty_ptr; - void *ptr[0]; - }; - }; +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; }; -struct tcf_proto; +typedef __u64 __be64; -struct tcf_proto_ops; +struct fib_kuid_range { + kuid_t start; + kuid_t end; +}; -struct tcf_chain { - struct mutex filter_chain_lock; - struct tcf_proto __attribute__((btf_type_tag("rcu"))) *filter_chain; +struct fib_rule_port_range { + __u16 start; + __u16 end; +}; + +struct fib_rule { 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; + 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 tcf_result; +struct flowi_tunnel { + __be64 tun_id; +}; -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 flowi_common { + int flowic_oif; + int flowic_iif; + int flowic_l3mdev; + __u32 flowic_mark; + __u8 flowic_tos; + __u8 flowic_scope; + __u8 flowic_proto; + __u8 flowic_flags; + __u32 flowic_secid; + kuid_t flowic_uid; + __u32 flowic_multipath_hash; + struct flowi_tunnel flowic_tun_key; }; -struct tcf_result { - union { - struct { - unsigned long class; - u32 classid; - }; - const struct tcf_proto *goto_tp; - }; +union flowi_uli { + struct { + __be16 dport; + __be16 sport; + } ports; + struct { + __u8 type; + __u8 code; + } icmpt; + __be32 gre_key; + struct { + __u8 type; + } mht; }; -typedef int flow_setup_cb_t(enum tc_setup_type, void *, void *); +struct flowi4 { + struct flowi_common __fl_common; + __be32 saddr; + __be32 daddr; + union flowi_uli uli; + long: 32; +}; -struct tcf_walker; +struct flowi6 { + struct flowi_common __fl_common; + struct in6_addr daddr; + struct in6_addr saddr; + __be32 flowlabel; + union flowi_uli uli; + __u32 mp_hash; + long: 32; +}; -struct tcf_exts; +struct flowi { + union { + struct flowi_common __fl_common; + struct flowi4 ip4; + struct flowi6 ip6; + } u; +}; -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; +struct fib_lookup_arg { + void *lookup_ptr; + const void *lookup_data; + void *result; + struct fib_rule *rule; + u32 table; int flags; }; -struct tc_stats { - __u64 bytes; - __u32 packets; - __u32 drops; - __u32 overlimits; - __u32 bps; - __u32 pps; - __u32 qlen; - __u32 backlog; +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 net_generic { + union { + struct { + unsigned int len; + struct callback_head rcu; + } s; + struct { + struct {} __empty_ptr; + void *ptr[0]; + }; + }; +}; + +struct bpf_run_ctx {}; + +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; long: 32; + union { + bool boolean; + int int_32; + unsigned int uint_32; + u64 uint_64; + }; }; -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 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; }; -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 bpf_prog_ops { + int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); }; -struct qdisc_size_table { - struct callback_head rcu; - struct list_head list; - struct tc_sizespec szopts; - int refcnt; - u16 data[0]; +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 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 bpf_func_info { + __u32 insn_off; + __u32 type_id; }; -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 bpf_func_info_aux { + u16 linkage; + bool unreliable; }; -struct xps_map; +struct sock_fprog_kern { + u16 len; + struct sock_filter *filter; +}; -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 bpf_link; + +struct bpf_link_info; + +struct bpf_link_ops { + void (*release)(struct bpf_link *); + void (*dealloc)(struct bpf_link *); + int (*detach)(struct bpf_link *); + int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *); + void (*show_fdinfo)(const struct bpf_link *, struct seq_file *); + int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *); + int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *); }; -struct xps_map { - unsigned int len; - unsigned int alloc_len; - struct callback_head rcu; - u16 queues[0]; +enum bpf_link_type { + BPF_LINK_TYPE_UNSPEC = 0, + BPF_LINK_TYPE_RAW_TRACEPOINT = 1, + BPF_LINK_TYPE_TRACING = 2, + BPF_LINK_TYPE_CGROUP = 3, + BPF_LINK_TYPE_ITER = 4, + BPF_LINK_TYPE_NETNS = 5, + BPF_LINK_TYPE_XDP = 6, + BPF_LINK_TYPE_PERF_EVENT = 7, + BPF_LINK_TYPE_KPROBE_MULTI = 8, + BPF_LINK_TYPE_STRUCT_OPS = 9, + BPF_LINK_TYPE_NETFILTER = 10, + BPF_LINK_TYPE_TCX = 11, + BPF_LINK_TYPE_UPROBE_MULTI = 12, + BPF_LINK_TYPE_NETKIT = 13, + MAX_BPF_LINK_TYPE = 14, }; -struct pcpu_lstats { - u64_stats_t packets; - u64_stats_t bytes; - struct u64_stats_sync syncp; - long: 32; - long: 32; - long: 32; +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 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; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct bpf_link_info { + __u32 type; + __u32 id; + __u32 prog_id; long: 32; + union { + struct { + __u64 tp_name; + __u32 tp_name_len; + long: 32; + } raw_tracepoint; + struct { + __u32 attach_type; + __u32 target_obj_id; + __u32 target_btf_id; + } tracing; + struct { + __u64 cgroup_id; + __u32 attach_type; + long: 32; + } cgroup; + struct { + __u64 target_name; + __u32 target_name_len; + union { + struct { + __u32 map_id; + } map; + }; + union { + struct { + __u64 cgroup_id; + __u32 order; + long: 32; + } cgroup; + struct { + __u32 tid; + __u32 pid; + } task; + }; + } iter; + struct { + __u32 netns_ino; + __u32 attach_type; + } netns; + struct { + __u32 ifindex; + } xdp; + struct { + __u32 map_id; + } struct_ops; + struct { + __u32 pf; + __u32 hooknum; + __s32 priority; + __u32 flags; + } netfilter; + struct { + __u64 addrs; + __u32 count; + __u32 flags; + __u64 missed; + } kprobe_multi; + struct { + __u32 type; + long: 32; + union { + struct { + __u64 file_name; + __u32 name_len; + __u32 offset; + } uprobe; + struct { + __u64 func_name; + __u32 name_len; + __u32 offset; + __u64 addr; + __u64 missed; + } kprobe; + struct { + __u64 tp_name; + __u32 name_len; + long: 32; + } tracepoint; + struct { + __u64 config; + __u32 type; + long: 32; + } event; + }; + } perf_event; + struct { + __u32 ifindex; + __u32 attach_type; + } tcx; + struct { + __u32 ifindex; + __u32 attach_type; + } netkit; + }; +}; + +enum cgroup_bpf_attach_type { + CGROUP_BPF_ATTACH_TYPE_INVALID = -1, + CGROUP_INET_INGRESS = 0, + CGROUP_INET_EGRESS = 1, + CGROUP_INET_SOCK_CREATE = 2, + CGROUP_SOCK_OPS = 3, + CGROUP_DEVICE = 4, + CGROUP_INET4_BIND = 5, + CGROUP_INET6_BIND = 6, + CGROUP_INET4_CONNECT = 7, + CGROUP_INET6_CONNECT = 8, + CGROUP_UNIX_CONNECT = 9, + CGROUP_INET4_POST_BIND = 10, + CGROUP_INET6_POST_BIND = 11, + CGROUP_UDP4_SENDMSG = 12, + CGROUP_UDP6_SENDMSG = 13, + CGROUP_UNIX_SENDMSG = 14, + CGROUP_SYSCTL = 15, + CGROUP_UDP4_RECVMSG = 16, + CGROUP_UDP6_RECVMSG = 17, + CGROUP_UNIX_RECVMSG = 18, + CGROUP_GETSOCKOPT = 19, + CGROUP_SETSOCKOPT = 20, + CGROUP_INET4_GETPEERNAME = 21, + CGROUP_INET6_GETPEERNAME = 22, + CGROUP_UNIX_GETPEERNAME = 23, + CGROUP_INET4_GETSOCKNAME = 24, + CGROUP_INET6_GETSOCKNAME = 25, + CGROUP_UNIX_GETSOCKNAME = 26, + CGROUP_INET_SOCK_RELEASE = 27, + CGROUP_LSM_START = 28, + CGROUP_LSM_END = 27, + MAX_CGROUP_BPF_ATTACH_TYPE = 28, +}; + +enum bpf_cgroup_storage_type { + BPF_CGROUP_STORAGE_SHARED = 0, + BPF_CGROUP_STORAGE_PERCPU = 1, + __BPF_CGROUP_STORAGE_MAX = 2, +}; + +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 { + BPF_F_SYSCTL_BASE_NAME = 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, +}; + +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; long: 32; + u64 tmp_reg; }; -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); +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; + long: 32; + u64 tmp_reg; }; -struct udp_tunnel_nic_table_info { - unsigned int n_entries; - unsigned int tunnel_types; +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 udp_tunnel_info; +struct bpf_cgroup_link { + struct bpf_link link; + struct cgroup *cgroup; + enum bpf_attach_type type; +}; -struct udp_tunnel_nic_shared; +struct qdisc_skb_cb { + struct { + unsigned int pkt_len; + u16 slave_dev_queue_mapping; + u16 tc_classid; + }; + unsigned char data[20]; +}; -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 bpf_skb_data_end { + struct qdisc_skb_cb qdisc_cb; + void *data_meta; + void *data_end; }; -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 bpf_cg_run_ctx { + struct bpf_run_ctx run_ctx; + const struct bpf_prog_array_item *prog_item; + int retval; }; -struct page_pool_recycle_stats { - u64 cached; - u64 cache_full; - u64 ring; - u64 ring_full; - u64 released_refcnt; +typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); + +typedef unsigned int (*bpf_dispatcher_fn)(const void *, const struct bpf_insn *, unsigned int (*)(const void *, const struct bpf_insn *)); + +typedef unsigned int (*bpf_func_t)(const void *, const struct bpf_insn *); + +struct bpf_link_primer { + struct bpf_link *link; + struct file *file; + int fd; + u32 id; }; -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, +struct bpf_sockopt_buf { + u8 data[32]; }; -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_sock_addr_kern { + struct sock *sk; + struct sockaddr *uaddr; + u64 tmp_reg; + void *t_ctx; + u32 uaddrlen; }; -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; +struct __kernel_sockaddr_storage { 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; + __kernel_sa_family_t ss_family; + char __data[126]; }; - enum bpf_arg_type arg_type[5]; + void *__align; }; +}; + +struct bpf_sock_ops_kern { + struct sock *sk; 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]; + u32 args[4]; + u32 reply; + u32 replylong[4]; }; - int *ret_btf_id; - bool (*allowed)(const struct bpf_prog *); + struct sk_buff *syn_skb; + struct sk_buff *skb; + void *skb_data_end; + u8 op; + u8 is_fullsock; + u8 remaining_opt_len; + long: 32; + u64 temp; }; -enum { - BPF_F_NO_PREALLOC = 1, - BPF_F_NO_COMMON_LRU = 2, - BPF_F_NUMA_NODE = 4, - BPF_F_RDONLY = 8, - BPF_F_WRONLY = 16, - BPF_F_STACK_BUILD_ID = 32, - BPF_F_ZERO_SEED = 64, - BPF_F_RDONLY_PROG = 128, - BPF_F_WRONLY_PROG = 256, - BPF_F_CLONE = 512, - BPF_F_MMAPABLE = 1024, - BPF_F_PRESERVE_ELEMS = 2048, - BPF_F_INNER_MAP = 4096, - BPF_F_LINK = 8192, - BPF_F_PATH_FD = 16384, +struct bpf_cgroup_dev_ctx { + __u32 access_type; + __u32 major; + __u32 minor; }; -enum { - BPF_RINGBUF_BUSY_BIT = 2147483648, - BPF_RINGBUF_DISCARD_BIT = 1073741824, - BPF_RINGBUF_HDR_SZ = 8, +enum page_walk_lock { + PGWALK_RDLOCK = 0, + PGWALK_WRLOCK = 1, + PGWALK_WRLOCK_VERIFY = 2, }; -enum { - BPF_RB_NO_WAKEUP = 1, - BPF_RB_FORCE_WAKEUP = 2, +struct mm_walk; + +struct mm_walk_ops { + int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); + int (*p4d_entry)(p4d_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pte_hole)(unsigned long, unsigned long, int, struct mm_walk *); + int (*hugetlb_entry)(pte_t *, unsigned long, unsigned long, unsigned long, struct mm_walk *); + int (*test_walk)(unsigned long, unsigned long, struct mm_walk *); + int (*pre_vma)(unsigned long, unsigned long, struct mm_walk *); + void (*post_vma)(struct mm_walk *); + enum page_walk_lock walk_lock; }; -enum { - BPF_RB_AVAIL_DATA = 0, - BPF_RB_RING_SIZE = 1, - BPF_RB_CONS_POS = 2, - BPF_RB_PROD_POS = 3, +enum page_walk_action { + ACTION_SUBTREE = 0, + ACTION_CONTINUE = 1, + ACTION_AGAIN = 2, }; -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, +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; }; -typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64); +enum pageflags { + PG_locked = 0, + PG_writeback = 1, + PG_referenced = 2, + PG_uptodate = 3, + PG_dirty = 4, + PG_lru = 5, + PG_head = 6, + PG_waiters = 7, + PG_active = 8, + PG_workingset = 9, + PG_error = 10, + PG_slab = 11, + PG_owner_priv_1 = 12, + PG_arch_1 = 13, + PG_reserved = 14, + PG_private = 15, + PG_private_2 = 16, + PG_mappedtodisk = 17, + PG_reclaim = 18, + PG_swapbacked = 19, + PG_unevictable = 20, + PG_mlocked = 21, + __NR_PAGEFLAGS = 22, + PG_readahead = 18, + PG_anon_exclusive = 17, + PG_checked = 12, + PG_swapcache = 12, + PG_fscache = 16, + PG_pinned = 12, + PG_savepinned = 4, + PG_foreign = 12, + PG_xen_remapped = 12, + PG_isolated = 18, + PG_reported = 3, + PG_has_hwpoisoned = 10, + PG_hugetlb = 8, + PG_large_rmappable = 9, +}; -typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64); +typedef unsigned int blk_mode_t; -typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64); +struct block_device_operations; -typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); +struct timer_rand_state; -typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); +struct disk_events; -struct bpf_dynptr_kern; +struct cdrom_device_info; -typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); +struct badblocks; -struct bpf_dynptr_kern { - void *data; - u32 size; - u32 offset; - long: 32; +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 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; + blk_mode_t open_mode; + struct blk_independent_access_ranges *ia_ranges; }; -typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64); +struct blk_zone; -typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64); +typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); -typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64); +enum blk_unique_id { + BLK_UID_T10 = 1, + BLK_UID_EUI64 = 2, + BLK_UID_NAA = 3, +}; -struct bpf_ringbuf { - wait_queue_head_t waitq; - struct irq_work work; - long: 32; - u64 mask; - struct page **pages; - int nr_pages; - long: 32; - long: 32; - long: 32; - long: 32; - spinlock_t spinlock; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - atomic_t busy; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct hd_geometry; + +struct pr_ops; + +struct block_device_operations { + void (*submit_bio)(struct bio *); + int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int); + int (*open)(struct gendisk *, blk_mode_t); + void (*release)(struct gendisk *); + int (*ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); + int (*compat_ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); + unsigned int (*check_events)(struct gendisk *, unsigned int); + void (*unlock_native_capacity)(struct gendisk *); + int (*getgeo)(struct block_device *, struct hd_geometry *); + int (*set_read_only)(struct block_device *, bool); + void (*free_disk)(struct gendisk *); + void (*swap_slot_free_notify)(struct block_device *, unsigned long); + int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *); + char * (*devnode)(struct gendisk *, umode_t *); + int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id); + struct module *owner; + const struct pr_ops *pr_ops; + int (*alternative_gpt_sector)(struct gendisk *, sector_t *); +}; + +struct request; + +struct io_comp_batch { + struct request *req_list; + bool need_ts; + void (*complete)(struct io_comp_batch *); +}; + +struct blk_zone { + __u64 start; + __u64 len; + __u64 wp; + __u8 type; + __u8 cond; + __u8 non_seq; + __u8 reset; + __u8 resv[4]; + __u64 capacity; + __u8 reserved[24]; +}; + +enum pr_type { + PR_WRITE_EXCLUSIVE = 1, + PR_EXCLUSIVE_ACCESS = 2, + PR_WRITE_EXCLUSIVE_REG_ONLY = 3, + PR_EXCLUSIVE_ACCESS_REG_ONLY = 4, + PR_WRITE_EXCLUSIVE_ALL_REGS = 5, + PR_EXCLUSIVE_ACCESS_ALL_REGS = 6, +}; + +struct pr_keys; + +struct pr_held_reservation; + +struct pr_ops { + int (*pr_register)(struct block_device *, u64, u64, u32); + int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32); + int (*pr_release)(struct block_device *, u64, enum pr_type); + int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool); + int (*pr_clear)(struct block_device *, u64); + int (*pr_read_keys)(struct block_device *, struct pr_keys *); + int (*pr_read_reservation)(struct block_device *, struct pr_held_reservation *); +}; + +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_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; + struct mutex rq_qos_mutex; + 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; + 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 flush_list; + 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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + }; + 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: 32; long: 32; long: 32; @@ -14115,12 +15779,536 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; +}; + +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; long: 32; + 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; long: 32; + sector_t sector; + sector_t nr_sectors; +}; + +struct blk_independent_access_ranges { + struct kobject kobj; + bool sysfs_registered; + unsigned int nr_ia_ranges; long: 32; + struct blk_independent_access_range ia_range[0]; +}; + +struct partition_meta_info { + char uuid[37]; + u8 volname[64]; +}; + +struct blk_plug { + struct request *mq_list; + struct request *cached_rq; + unsigned short nr_ios; + unsigned short rq_count; + bool multiple_queues; + bool has_elevator; + struct list_head cb_list; +}; + +struct bdev_handle { + struct block_device *bdev; + void *holder; + blk_mode_t mode; +}; + +typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *); + +typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *); + +typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_inode_foreign_history)(void *, struct inode *, struct writeback_control *, unsigned int); + +typedef void (*btf_trace_inode_switch_wbs)(void *, struct inode *, struct bdi_writeback *, struct bdi_writeback *); + +typedef void (*btf_trace_track_foreign_dirty)(void *, struct folio *, struct bdi_writeback *); + +typedef void (*btf_trace_flush_foreign)(void *, struct bdi_writeback *, unsigned int, unsigned int); + +typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *); + +struct wb_writeback_work; + +typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +struct wb_writeback_work { + long nr_pages; + struct super_block *sb; + enum writeback_sync_modes sync_mode; + unsigned int tagged_writepages: 1; + unsigned int for_kupdate: 1; + unsigned int range_cyclic: 1; + unsigned int for_background: 1; + unsigned int for_sync: 1; + unsigned int auto_free: 1; + enum wb_reason reason; + struct list_head list; + struct wb_completion *done; +}; + +typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_start)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_pages_written)(void *, long); + +typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *); + +typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *); + +typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *); + +typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, unsigned long, int); + +typedef void (*btf_trace_global_dirty_state)(void *, unsigned long, unsigned long); + +typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, unsigned long, unsigned long); + +typedef void (*btf_trace_balance_dirty_pages)(void *, struct bdi_writeback *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, long, unsigned long); + +typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *); + +typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, unsigned long); + +typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, unsigned long); + +typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *); + +typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *); + +typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *); + +typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *); + +typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *); + +struct trace_print_flags { + unsigned long mask; + const char *name; +}; + +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, +}; + +enum wb_state { + WB_registered = 0, + WB_writeback_running = 1, + WB_has_dirty_io = 2, + WB_start_all = 3, +}; + +enum page_memcg_data_flags { + MEMCG_DATA_OBJCGS = 1, + MEMCG_DATA_KMEM = 2, + __NR_MEMCG_DATA_FLAGS = 4, +}; + +enum wb_stat_item { + WB_RECLAIMABLE = 0, + WB_WRITEBACK = 1, + WB_DIRTIED = 2, + WB_WRITTEN = 3, + NR_WB_STAT_ITEMS = 4, +}; + +typedef __kernel_ulong_t ino_t; + +struct trace_event_raw_writeback_folio_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + unsigned long index; + char __data[0]; +}; + +struct trace_event_raw_writeback_dirty_inode_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + unsigned long state; + unsigned long flags; + char __data[0]; +}; + +struct trace_event_raw_inode_foreign_history { + struct trace_entry ent; + char name[32]; + ino_t ino; + ino_t cgroup_ino; + unsigned int history; + char __data[0]; +}; + +struct trace_event_raw_inode_switch_wbs { + struct trace_entry ent; + char name[32]; + ino_t ino; + ino_t old_cgroup_ino; + ino_t new_cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_track_foreign_dirty { + struct trace_entry ent; + char name[32]; + u64 bdi_id; + ino_t ino; + unsigned int memcg_id; + ino_t cgroup_ino; + ino_t page_cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_flush_foreign { + struct trace_entry ent; + char name[32]; + ino_t cgroup_ino; + unsigned int frn_bdi_id; + unsigned int frn_memcg_id; + char __data[0]; +}; + +struct trace_event_raw_writeback_write_inode_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + int sync_mode; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_work_class { + struct trace_entry ent; + char name[32]; + long nr_pages; + dev_t sb_dev; + int sync_mode; + int for_kupdate; + int range_cyclic; + int for_background; + int reason; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_pages_written { + struct trace_entry ent; + long pages; + char __data[0]; +}; + +struct trace_event_raw_writeback_class { + struct trace_entry ent; + char name[32]; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_bdi_register { + struct trace_entry ent; + char name[32]; + char __data[0]; +}; + +struct trace_event_raw_wbc_class { + struct trace_entry ent; + char name[32]; + long nr_to_write; + long pages_skipped; + int sync_mode; + int for_kupdate; + int for_background; + int for_reclaim; + int range_cyclic; + long range_start; + long range_end; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_queue_io { + struct trace_entry ent; + char name[32]; + unsigned long older; + long age; + int moved; + int reason; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_global_dirty_state { + struct trace_entry ent; + unsigned long nr_dirty; + unsigned long nr_writeback; + unsigned long background_thresh; + unsigned long dirty_thresh; + unsigned long dirty_limit; + unsigned long nr_dirtied; + unsigned long nr_written; + char __data[0]; +}; + +struct trace_event_raw_bdi_dirty_ratelimit { + struct trace_entry ent; + char bdi[32]; + unsigned long write_bw; + unsigned long avg_write_bw; + unsigned long dirty_rate; + unsigned long dirty_ratelimit; + unsigned long task_ratelimit; + unsigned long balanced_dirty_ratelimit; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_balance_dirty_pages { + struct trace_entry ent; + char bdi[32]; + unsigned long limit; + unsigned long setpoint; + unsigned long dirty; + unsigned long bdi_setpoint; + unsigned long bdi_dirty; + unsigned long dirty_ratelimit; + unsigned long task_ratelimit; + unsigned int dirtied; + unsigned int dirtied_pause; + unsigned long paused; + long pause; + unsigned long period; + long think; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_sb_inodes_requeue { + struct trace_entry ent; + char name[32]; + ino_t ino; + unsigned long state; + unsigned long dirtied_when; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_single_inode_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + unsigned long state; + unsigned long dirtied_when; + unsigned long writeback_index; + long nr_to_write; + unsigned long wrote; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_inode_template { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long state; + __u16 mode; + unsigned long dirtied_when; + char __data[0]; +}; + +struct inode_switch_wbs_context { + struct rcu_work work; + struct bdi_writeback *new_wb; + struct inode *inodes[0]; +}; + +struct 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[6]; + unsigned long marks[6]; + }; +}; + +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 wait_bit_key { + void *flags; + int bit_nr; + unsigned long timeout; +}; + +struct wait_bit_queue_entry { + struct wait_bit_key key; + struct wait_queue_entry wq_entry; +}; + +struct trace_event_data_offsets_writeback_folio_template {}; + +struct trace_event_data_offsets_writeback_dirty_inode_template {}; + +struct trace_event_data_offsets_inode_foreign_history {}; + +struct trace_event_data_offsets_inode_switch_wbs {}; + +struct trace_event_data_offsets_track_foreign_dirty {}; + +struct trace_event_data_offsets_flush_foreign {}; + +struct trace_event_data_offsets_writeback_write_inode_template {}; + +struct trace_event_data_offsets_writeback_work_class {}; + +struct trace_event_data_offsets_writeback_pages_written {}; + +struct trace_event_data_offsets_writeback_class {}; + +struct trace_event_data_offsets_writeback_bdi_register {}; + +struct trace_event_data_offsets_wbc_class {}; + +struct trace_event_data_offsets_writeback_queue_io {}; + +struct trace_event_data_offsets_global_dirty_state {}; + +struct trace_event_data_offsets_bdi_dirty_ratelimit {}; + +struct trace_event_data_offsets_balance_dirty_pages {}; + +struct trace_event_data_offsets_writeback_sb_inodes_requeue {}; + +struct trace_event_data_offsets_writeback_single_inode_template {}; + +struct trace_event_data_offsets_writeback_inode_template {}; + +struct 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: 32; long: 32; long: 32; + 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[32]; long: 32; long: 32; long: 32; @@ -14132,15 +16320,595 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; +}; + +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; long: 32; +}; + +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; +}; + +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 srcu_notifier_head { + struct mutex mutex; + struct srcu_usage srcuu; + struct srcu_struct srcu; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +}; + +struct file_lock_list_struct { + spinlock_t lock; + struct hlist_head hlist; +}; + +enum proc_hidepid { + HIDEPID_OFF = 0, + HIDEPID_NO_ACCESS = 1, + HIDEPID_INVISIBLE = 2, + HIDEPID_NOT_PTRACEABLE = 4, +}; + +enum proc_pidonly { + PROC_PIDONLY_OFF = 0, + PROC_PIDONLY_ON = 1, +}; + +struct trace_event_raw_locks_get_lock_context { + struct trace_entry ent; + unsigned long i_ino; + dev_t s_dev; + unsigned char type; + struct file_lock_context *ctx; + char __data[0]; +}; + +struct trace_event_raw_filelock_lock { + struct trace_entry ent; + struct file_lock *fl; + unsigned long i_ino; + dev_t s_dev; + struct file_lock *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]; long: 32; +}; + +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]; +}; + +typedef __kernel_long_t __kernel_off_t; + +typedef __kernel_off_t off_t; + +struct flock { + short l_type; + short l_whence; + __kernel_off_t l_start; + __kernel_off_t l_len; + __kernel_pid_t l_pid; +}; + +struct flock64 { + short l_type; + short l_whence; long: 32; + __kernel_loff_t l_start; + __kernel_loff_t l_len; + __kernel_pid_t l_pid; long: 32; +}; + +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; long: 32; + loff_t li_pos; +}; + +enum kernfs_node_type { + KERNFS_DIR = 1, + KERNFS_FILE = 2, + KERNFS_LINK = 4, +}; + +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_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, +}; + +typedef struct {} local_lock_t; + +struct kernfs_syscall_ops; + +struct kernfs_root { + struct kernfs_node *kn; + unsigned int flags; + struct idr ino_idr; + u32 last_id_lowbits; + u32 id_highbits; + struct kernfs_syscall_ops *syscall_ops; + struct list_head supers; + wait_queue_head_t deactivate_waitq; + struct rw_semaphore kernfs_rwsem; + struct rw_semaphore kernfs_iattr_rwsem; + struct rw_semaphore kernfs_supers_rwsem; +}; + +struct 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 simple_xattrs { + struct rb_root rb_root; + rwlock_t lock; +}; + +struct kernfs_iattrs { + kuid_t ia_uid; + kgid_t ia_gid; + struct timespec64 ia_atime; + struct timespec64 ia_mtime; + struct timespec64 ia_ctime; + struct simple_xattrs xattrs; + atomic_t nr_user_xattrs; + atomic_t user_xattr_size; +}; + +struct kernfs_super_info { + struct super_block *sb; + struct kernfs_root *root; + const void *ns; + struct list_head node; +}; + +typedef unsigned int tid_t; + +struct transaction_chp_stats_s { + unsigned long cs_chp_time; + __u32 cs_forced_to_close; + __u32 cs_written; + __u32 cs_dropped; +}; + +struct journal_s; + +typedef struct journal_s journal_t; + +struct journal_head; + +struct transaction_s; + +typedef struct transaction_s transaction_t; + +struct transaction_s { + journal_t *t_journal; + tid_t t_tid; + enum { + T_RUNNING = 0, + T_LOCKED = 1, + T_SWITCH = 2, + T_FLUSH = 3, + T_COMMIT = 4, + T_COMMIT_DFLUSH = 5, + T_COMMIT_JFLUSH = 6, + T_COMMIT_CALLBACK = 7, + T_FINISHED = 8, + } t_state; + unsigned long t_log_start; + int t_nr_buffers; + struct journal_head *t_reserved_list; + struct journal_head *t_buffers; + struct journal_head *t_forget; + struct journal_head *t_checkpoint_list; + struct journal_head *t_shadow_list; + struct list_head t_inode_list; + unsigned long t_max_wait; + unsigned long t_start; + unsigned long t_requested; + struct transaction_chp_stats_s t_chp_stats; + atomic_t t_updates; + atomic_t t_outstanding_credits; + atomic_t t_outstanding_revokes; + atomic_t t_handle_count; + transaction_t *t_cpnext; + transaction_t *t_cpprev; + unsigned long t_expires; + ktime_t t_start_time; + unsigned int t_synchronous_commit: 1; + int t_need_data_flush; + struct list_head t_private_list; +}; + +struct transaction_run_stats_s { + unsigned long rs_wait; + unsigned long rs_request_delay; + unsigned long rs_running; + unsigned long rs_locked; + unsigned long rs_flushing; + unsigned long rs_logging; + __u32 rs_handle_count; + __u32 rs_blocks; + __u32 rs_blocks_logged; +}; + +struct transaction_stats_s { + unsigned long ts_tid; + unsigned long ts_requested; + struct transaction_run_stats_s run; +}; + +enum passtype { + PASS_SCAN = 0, + PASS_REVOKE = 1, + PASS_REPLAY = 2, +}; + +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; + 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; long: 32; + 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; long: 32; + 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); + int (*j_bmap)(struct journal_s *, sector_t *); long: 32; +}; + +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; + }; long: 32; + 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 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 fiemap_extent; + +struct fiemap_extent_info { + unsigned int fi_flags; + unsigned int fi_extents_mapped; + unsigned int fi_extents_max; + struct fiemap_extent __attribute__((btf_type_tag("user"))) *fi_extents_start; +}; + +struct fiemap_extent { + __u64 fe_logical; + __u64 fe_physical; + __u64 fe_length; + __u64 fe_reserved64[2]; + __u32 fe_flags; + __u32 fe_reserved[3]; +}; + +struct journal_header_s { + __be32 h_magic; + __be32 h_blocktype; + __be32 h_sequence; +}; + +typedef struct journal_header_s journal_header_t; + +struct journal_superblock_s { + journal_header_t s_header; + __be32 s_blocksize; + __be32 s_maxlen; + __be32 s_first; + __be32 s_sequence; + __be32 s_start; + __be32 s_errno; + __be32 s_feature_compat; + __be32 s_feature_incompat; + __be32 s_feature_ro_compat; + __u8 s_uuid[16]; + __be32 s_nr_users; + __be32 s_dynsuper; + __be32 s_max_transaction; + __be32 s_max_trans_data; + __u8 s_checksum_type; + __u8 s_padding2[3]; + __be32 s_num_fc_blks; + __be32 s_head; + __u32 s_padding[40]; + __be32 s_checksum; + __u8 s_users[768]; +}; + +struct jbd2_inode { + transaction_t *i_transaction; + transaction_t *i_next_transaction; + struct list_head i_list; + struct inode *i_vfs_inode; + unsigned long i_flags; + loff_t i_dirty_start; + loff_t i_dirty_end; +}; + +struct crypto_alg; + +struct crypto_tfm { + refcount_t refcnt; + u32 crt_flags; + int node; + void (*exit)(struct crypto_tfm *); + struct crypto_alg *__crt_alg; long: 32; long: 32; long: 32; @@ -14152,6 +16920,11 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; + void *__crt_ctx[0]; +}; + +struct crypto_shash { + unsigned int descsize; long: 32; long: 32; long: 32; @@ -14167,6 +16940,44 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; + 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; long: 32; long: 32; long: 32; @@ -14179,11 +16990,351 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; +}; + +struct crypto_instance; + +struct crypto_type { + unsigned int (*ctxsize)(struct crypto_alg *, u32, u32); + unsigned int (*extsize)(struct crypto_alg *); + int (*init_tfm)(struct crypto_tfm *); + void (*show)(struct seq_file *, struct crypto_alg *); + int (*report)(struct sk_buff *, struct crypto_alg *); + void (*free)(struct crypto_instance *); + unsigned int type; + unsigned int maskclear; + unsigned int maskset; + unsigned int tfmsize; +}; + +struct jbd2_buffer_trigger_type; + +struct journal_head { + struct buffer_head *b_bh; + spinlock_t b_state_lock; + int b_jcount; + unsigned int b_jlist; + unsigned int b_modified; + char *b_frozen_data; + char *b_committed_data; + transaction_t *b_transaction; + transaction_t *b_next_transaction; + struct journal_head *b_tnext; + struct journal_head *b_tprev; + transaction_t *b_cp_transaction; + struct journal_head *b_cpnext; + struct journal_head *b_cpprev; + struct jbd2_buffer_trigger_type *b_triggers; + struct jbd2_buffer_trigger_type *b_frozen_triggers; +}; + +struct jbd2_buffer_trigger_type { + void (*t_frozen)(struct jbd2_buffer_trigger_type *, struct buffer_head *, void *, size_t); + void (*t_abort)(struct jbd2_buffer_trigger_type *, struct buffer_head *); +}; + +enum ext4_li_mode { + EXT4_LI_MODE_PREFETCH_BBITMAP = 0, + EXT4_LI_MODE_ITABLE = 1, +}; + +enum req_flag_bits { + __REQ_FAILFAST_DEV = 8, + __REQ_FAILFAST_TRANSPORT = 9, + __REQ_FAILFAST_DRIVER = 10, + __REQ_SYNC = 11, + __REQ_META = 12, + __REQ_PRIO = 13, + __REQ_NOMERGE = 14, + __REQ_IDLE = 15, + __REQ_INTEGRITY = 16, + __REQ_FUA = 17, + __REQ_PREFLUSH = 18, + __REQ_RAHEAD = 19, + __REQ_BACKGROUND = 20, + __REQ_NOWAIT = 21, + __REQ_POLLED = 22, + __REQ_ALLOC_CACHE = 23, + __REQ_SWAP = 24, + __REQ_DRV = 25, + __REQ_FS_PRIVATE = 26, + __REQ_NOUNMAP = 27, + __REQ_NR_BITS = 28, +}; + +enum 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 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 { + SB_UNFROZEN = 0, + SB_FREEZE_WRITE = 1, + SB_FREEZE_PAGEFAULT = 2, + SB_FREEZE_FS = 3, + SB_FREEZE_COMPLETE = 4, +}; + +typedef __u64 __le64; + +typedef __u16 __le16; + +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; +}; + +typedef unsigned long long ext4_fsblk_t; + +typedef unsigned int ext4_group_t; + +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; long: 32; + struct percpu_counter es_stats_cache_hits; + struct percpu_counter es_stats_cache_misses; + u64 es_stats_scan_time; + u64 es_stats_max_scan_time; + struct percpu_counter es_stats_all_cnt; + struct percpu_counter es_stats_shk_cnt; +}; + +struct ext4_journal_trigger { + struct jbd2_buffer_trigger_type tr_triggers; + struct super_block *sb; +}; + +struct fscrypt_dummy_policy {}; + +struct dax_device; + +struct ext4_fc_stats { + unsigned int fc_ineligible_reason_count[10]; + unsigned long fc_num_commits; + unsigned long fc_ineligible_commits; + unsigned long fc_failed_commits; + unsigned long fc_skipped_commits; + unsigned long fc_numblks; long: 32; + u64 s_fc_avg_commit_time; +}; + +struct ext4_fc_alloc_region; + +struct ext4_fc_replay_state { + int fc_replay_num_tags; + int fc_replay_expected_off; + int fc_current_pass; + int fc_cur_tag; + int fc_crc; + struct ext4_fc_alloc_region *fc_regions; + int fc_regions_size; + int fc_regions_used; + int fc_regions_valid; + int *fc_modified_inodes; + int fc_modified_inodes_used; + int fc_modified_inodes_size; +}; + +struct ext4_super_block; + +struct blockgroup_lock; + +struct ext4_system_blocks; + +struct ext4_group_info; + +struct ext4_locality_group; + +struct flex_groups; + +struct ext4_li_request; + +struct mb_cache; + +struct ext4_sb_info { + unsigned long s_desc_size; + unsigned long s_inodes_per_block; + unsigned long s_blocks_per_group; + unsigned long s_clusters_per_group; + unsigned long s_inodes_per_group; + unsigned long s_itb_per_group; + unsigned long s_gdb_count; + unsigned long s_desc_per_block; + ext4_group_t s_groups_count; + ext4_group_t s_blockfile_groups; + unsigned long s_overhead; + unsigned int s_cluster_ratio; + unsigned int s_cluster_bits; long: 32; + loff_t s_bitmap_maxbytes; + struct buffer_head *s_sbh; + struct ext4_super_block *s_es; + struct buffer_head * __attribute__((btf_type_tag("rcu"))) *s_group_desc; + unsigned int s_mount_opt; + unsigned int s_mount_opt2; + unsigned long s_mount_flags; + unsigned int s_def_mount_opt; + unsigned int s_def_mount_opt2; + ext4_fsblk_t s_sb_block; + atomic64_t s_resv_clusters; + kuid_t s_resuid; + kgid_t s_resgid; + unsigned short s_mount_state; + unsigned short s_pad; + int s_addr_per_block_bits; + int s_desc_per_block_bits; + int s_inode_size; + int s_first_ino; + unsigned int s_inode_readahead_blks; + unsigned int s_inode_goal; + u32 s_hash_seed[4]; + int s_def_hash_version; + int s_hash_unsigned; long: 32; + 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 bdev_handle *s_journal_bdev_handle; + unsigned int s_want_extra_isize; + struct ext4_system_blocks __attribute__((btf_type_tag("rcu"))) *s_system_blks; + struct ext4_group_info ** __attribute__((btf_type_tag("rcu"))) *s_group_info; + struct inode *s_buddy_cache; + spinlock_t s_md_lock; + unsigned short *s_mb_offsets; + unsigned int *s_mb_maxs; + unsigned int s_group_info_size; + unsigned int s_mb_free_pending; + struct list_head s_freed_data_list[2]; + struct list_head s_discard_list; + struct work_struct s_discard_work; + atomic_t s_retry_alloc_pending; + struct list_head *s_mb_avg_fragment_size; + rwlock_t *s_mb_avg_fragment_size_locks; + struct list_head *s_mb_largest_free_orders; + rwlock_t *s_mb_largest_free_orders_locks; + unsigned long s_stripe; + unsigned int s_mb_max_linear_groups; + unsigned int s_mb_stream_request; + unsigned int s_mb_max_to_scan; + unsigned int s_mb_min_to_scan; + unsigned int s_mb_stats; + unsigned int s_mb_order2_reqs; + unsigned int s_mb_group_prealloc; + unsigned int s_max_dir_size_kb; + unsigned long s_mb_last_group; + unsigned long s_mb_last_start; + unsigned int s_mb_prefetch; + unsigned int s_mb_prefetch_limit; + unsigned int s_mb_best_avail_max_trim_order; + atomic_t s_bal_reqs; + atomic_t s_bal_success; + atomic_t s_bal_allocated; + atomic_t s_bal_ex_scanned; + atomic_t s_bal_cX_ex_scanned[5]; + atomic_t s_bal_groups_scanned; + atomic_t s_bal_goals; + atomic_t s_bal_len_goals; + atomic_t s_bal_breaks; + atomic_t s_bal_2orders; + atomic_t s_bal_p2_aligned_bad_suggestions; + atomic_t s_bal_goal_fast_bad_suggestions; + atomic_t s_bal_best_avail_bad_suggestions; + atomic64_t s_bal_cX_groups_considered[5]; + atomic64_t s_bal_cX_hits[5]; + atomic64_t s_bal_cX_failed[5]; + atomic_t s_mb_buddies_generated; long: 32; + 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: 32; long: 32; long: 32; @@ -14198,11 +17349,48 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; + 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; long: 32; + 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; long: 32; + __u64 s_first_error_block; + const char *s_first_error_func; long: 32; + time64_t s_first_error_time; + int s_last_error_code; + __u32 s_last_error_line; + __u32 s_last_error_ino; long: 32; + __u64 s_last_error_block; + const char *s_last_error_func; long: 32; + time64_t s_last_error_time; + struct work_struct s_sb_upd_work; + atomic_t s_fc_subtid; + struct list_head s_fc_q[2]; + struct list_head s_fc_dentry_q[2]; + unsigned int s_fc_bytes; + spinlock_t s_fc_lock; + struct buffer_head *s_fc_bh; + struct ext4_fc_stats s_fc_stats; + tid_t s_fc_ineligible_tid; + struct ext4_fc_replay_state s_fc_replay_state; long: 32; long: 32; long: 32; @@ -14216,6 +17404,116 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; +}; + +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: 32; long: 32; @@ -14231,18 +17529,1142 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; +}; + +struct blockgroup_lock { + struct bgl_lock locks[64]; +}; + +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; +}; + +typedef __u32 ext4_lblk_t; + +struct ext4_fc_alloc_region { + ext4_lblk_t lblk; long: 32; + ext4_fsblk_t pblk; + int ino; + int len; +}; + +struct shash_desc { + struct crypto_shash *tfm; long: 32; + void *__ctx[0]; +}; + +enum shrink_type { + SHRINK_DESTROY = 0, + SHRINK_BUSY_STOP = 1, + SHRINK_BUSY_SKIP = 2, +}; + +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 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 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 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; long: 32; +}; + +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 nfs_server; + +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; long: 32; + struct nfs_seqid_counter so_seqid; + seqcount_spinlock_t so_reclaim_seqcount; + struct mutex so_delegreturn_mutex; +}; + +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; +}; + +typedef u32 rpc_authflavor_t; + +struct nfs_auth_info { + unsigned int flavor_len; + rpc_authflavor_t flavors[12]; +}; + +struct ida { + struct xarray xa; +}; + +struct nfs_client; + +struct rpc_clnt; + +struct nlm_host; + +struct nfs_iostats; + +struct pnfs_layoutdriver_type; + +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 gxasize; + unsigned int sxasize; + unsigned int lxasize; + 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; long: 32; + struct nfs_fsid fsid; + int s_sysfs_id; long: 32; + __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 delegation_gen; + 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; + struct kobject kobj; +}; + +enum xprtsec_policies { + RPC_XPRTSEC_NONE = 0, + RPC_XPRTSEC_TLS_ANON = 1, + RPC_XPRTSEC_TLS_X509 = 2, +}; + +struct xprtsec_parms { + enum xprtsec_policies policy; + key_serial_t cert_serial; + key_serial_t privkey_serial; +}; + +typedef struct { + char data[8]; +} nfs4_verifier; + +struct nfs_rpc_ops; + +struct nfs_subversion; + +struct idmap; + +struct nfs4_minor_version_ops; + +struct nfs4_slot_table; + +struct nfs4_session; + +struct nfs41_server_owner; + +struct nfs41_server_scope; + +struct nfs41_impl_id; + +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 xprtsec_parms cl_xprtsec; + struct list_head cl_ds_clients; long: 32; + 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; + wait_queue_head_t cl_lock_waitq; + char cl_ipaddr[48]; + struct net *cl_net; + struct list_head pending_cb_stateids; long: 32; +}; + +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; + unsigned int cl_shutdown: 1; + struct xprtsec_parms cl_xprtsec; + 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 super_block *pipefs_sb; +}; + +struct rpc_xprt_ops; + +struct rpc_task; + +struct svc_xprt; + +struct svc_serv; + +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; + struct xprtsec_parms xprtsec; + 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 svc_serv *bc_serv; + unsigned int bc_alloc_max; + unsigned int bc_alloc_count; + atomic_t bc_slot_count; + spinlock_t bc_pa_lock; + struct list_head bc_pa_list; + struct rb_root recv_queue; long: 32; + 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; long: 32; +}; + +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; +}; + +struct xdr_stream; + +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 lwq_node { + struct llist_node node; +}; + +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 lwq_node rq_bc_list; + unsigned long rq_bc_pa_state; + struct list_head rq_bc_pa_list; long: 32; +}; + +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 *); + int (*ping)(struct rpc_clnt *); +}; + +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; + void *page_kaddr; + 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 lwq { + spinlock_t lock; + struct llist_node *ready; + struct llist_head new; +}; + +struct svc_program; + +struct svc_stat; + +struct svc_pool; + +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 lwq sv_cb_list; + bool sv_bc_enabled; +}; + +enum svc_auth_status { + SVC_GARBAGE = 1, + SVC_SYSERR = 2, + SVC_VALID = 3, + SVC_NEGATIVE = 4, + SVC_OK = 5, + SVC_DROP = 6, + SVC_CLOSE = 7, + SVC_DENIED = 8, + SVC_PENDING = 9, + SVC_COMPLETE = 10, +}; + +struct svc_version; + +struct svc_rqst; + +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; + enum svc_auth_status (*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_procedure; + +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 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 folio_batch { + unsigned char nr; + bool percpu_pvec_drained; + struct folio *folios[15]; +}; + +struct cache_deferred_req; + +struct cache_req { + struct cache_deferred_req * (*defer)(struct cache_req *); + unsigned long thread_wait; +}; + +struct auth_ops; + +struct svc_deferred_req; + +struct auth_domain; + +struct svc_rqst { + struct list_head rq_all; + struct llist_node rq_idle; + 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 folio_batch rq_fbatch; + 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; long: 32; + ktime_t rq_stime; + struct cache_req rq_chandle; + struct auth_domain *rq_client; + struct auth_domain *rq_gssclient; + struct task_struct *rq_task; + struct net *rq_bc_net; + void **rq_lease_breaker; + unsigned int rq_status_counter; +}; + +struct svc_pool { + unsigned int sp_id; + struct lwq sp_xprts; + atomic_t sp_nrthreads; + struct list_head sp_all_threads; + struct llist_head sp_idle_threads; + struct percpu_counter sp_messages_arrived; + struct percpu_counter sp_sockets_queued; + struct percpu_counter sp_threads_woken; + unsigned long sp_flags; long: 32; long: 32; long: 32; @@ -14258,116 +18680,3778 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; +}; + +struct auth_ops { + char *name; + struct module *owner; + int flavour; + enum svc_auth_status (*accept)(struct svc_rqst *); + int (*release)(struct svc_rqst *); + void (*domain_release)(struct auth_domain *); + enum svc_auth_status (*set_client)(struct svc_rqst *); +}; + +struct auth_domain { + struct kref ref; + struct hlist_node hash; + char *name; + struct auth_ops *flavour; + struct callback_head callback_head; +}; + +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 xdr_netobj; + +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 xdr_netobj { + unsigned int len; + u8 *data; +}; + +struct pf_desc { + u32 pseudoflavor; + u32 qop; + u32 service; + char *name; + char *auth_domain_name; + struct auth_domain *domain; + bool datatouch; +}; + +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 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 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 xprtsec_parms xprtsec; + unsigned long connect_timeout; + unsigned long reconnect_timeout; +}; + +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 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: 32; +}; + +struct rpc_sysfs_client { + struct kobject kobject; + struct net *net; + struct rpc_clnt *clnt; + struct rpc_xprt_switch *xprt_switch; +}; + +struct nlmclnt_operations; + +struct nfs_fh; + +struct nfs_fsinfo; + +struct nfs_fattr; + +struct nfs_access_entry; + +struct nfs_unlinkdata; + +struct nfs_renamedata; + +struct nfs_readdir_arg; + +struct nfs_readdir_res; + +struct nfs_fsstat; + +struct nfs_pathconf; + +struct nfs_entry; + +struct nfs_pgio_header; + +struct nfs_commit_data; + +struct nfs_open_context; + +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 folio *, 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 *); +}; + +struct nlmclnt_operations { + void (*nlmclnt_alloc_call)(void *); + bool (*nlmclnt_unlock_prepare)(struct rpc_task *, void *); + void (*nlmclnt_release_call)(void *); +}; + +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_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; long: 32; +}; + +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; long: 32; + 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; long: 32; + 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; long: 32; + struct nfs_fattr dir_attr; + long timeout; long: 32; +}; + +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; long: 32; + struct nfs4_change_info old_cinfo; + struct nfs_fattr *old_fattr; long: 32; + struct nfs4_change_info new_cinfo; + struct nfs_fattr *new_fattr; long: 32; +}; + +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; long: 32; + 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; long: 32; +}; + +struct nfs_readdir_arg { + struct dentry *dentry; + const struct cred *cred; + __be32 *verf; long: 32; + u64 cookie; + struct page **pages; + unsigned int page_len; + bool plus; long: 32; +}; + +struct nfs_readdir_res { + __be32 *verf; +}; + +struct nfs_fsstat { + struct nfs_fattr *fattr; long: 32; + __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; long: 32; +}; + +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; long: 32; + __u64 count; + __u32 op_status; + union { + struct { + unsigned int replen; + int eof; + void *scratch; + }; + 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; long: 32; +}; + +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 pnfs_layout_range { + u32 iomode; long: 32; + u64 offset; + u64 length; +}; + +struct pnfs_layout_hdr; + +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; +}; + +enum pnfs_iomode { + IOMODE_READ = 1, + IOMODE_RW = 2, + IOMODE_ANY = 3, +}; + +struct pnfs_layout_hdr { + refcount_t plh_refcount; + atomic_t plh_outstanding; + struct list_head plh_layouts; + struct list_head plh_bulk_destroy; + struct list_head plh_segs; + struct list_head plh_return_segs; + unsigned long plh_block_lgets; + unsigned long plh_retry_timestamp; + unsigned long plh_flags; + nfs4_stateid plh_stateid; + u32 plh_barrier; + u32 plh_return_seq; + enum pnfs_iomode plh_return_iomode; long: 32; + loff_t plh_lwb; + const struct cred *plh_lc_cred; + struct inode *plh_inode; + struct callback_head plh_rcu; +}; + +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_commit_ops; + +struct pnfs_ds_commit_info { + struct list_head commits; + unsigned int nwritten; + unsigned int ncommitting; + const struct pnfs_commit_ops *ops; +}; + +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; long: 32; + 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_commit_info; + +struct pnfs_commit_ops { + void (*setup_ds_info)(struct pnfs_ds_commit_info *, struct pnfs_layout_segment *); + void (*release_ds_info)(struct pnfs_ds_commit_info *, struct inode *); + int (*commit_pagelist)(struct inode *, struct list_head *, int, struct nfs_commit_info *); + void (*mark_request_commit)(struct nfs_page *, struct pnfs_layout_segment *, struct nfs_commit_info *, u32); + void (*clear_request_commit)(struct nfs_page *, struct nfs_commit_info *); + int (*scan_commit_lists)(struct nfs_commit_info *, int); + void (*recover_commit_reqs)(struct list_head *, struct nfs_commit_info *); + struct nfs_page * (*search_commit_reqs)(struct nfs_commit_info *, struct folio *); +}; + +struct nfs_commit_completion_ops; + +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_commit_completion_ops { + void (*completion)(struct nfs_commit_data *); + void (*resched_write)(struct nfs_commit_info *, struct nfs_page *); +}; + +struct nfs_commitargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; long: 32; + __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_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_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 xprtsec_parms xprtsec; + unsigned long connect_timeout; + unsigned long reconnect_timeout; +}; + +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 * const *xattr; + struct list_head list; +}; + +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]; long: 32; +}; + +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_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 nfs41_server_owner { + uint64_t minor_id; + uint32_t major_id_sz; + char major_id[1024]; long: 32; +}; + +struct nfs41_server_scope { + uint32_t server_scope_sz; + char server_scope[1024]; +}; + +struct nfstime4 { + u64 seconds; + u32 nseconds; long: 32; +}; + +struct nfs41_impl_id { + char domain[1025]; + char name[1025]; long: 32; + struct nfstime4 date; +}; + +struct nfs_iostats { + unsigned long long bytes[8]; + unsigned long events[27]; long: 32; long: 32; long: 32; long: 32; long: 32; +}; + +enum pnfs_try_status { + PNFS_ATTEMPTED = 0, + PNFS_NOT_ATTEMPTED = 1, + PNFS_TRY_AGAIN = 2, +}; + +struct nfs4_layoutget_res; + +struct nfs_pageio_ops; + +struct nfs4_deviceid_node; + +struct pnfs_device; + +struct nfs4_layoutreturn_args; + +struct nfs4_layoutcommit_data; + +struct nfs4_layoutcommit_args; + +struct nfs42_layoutstat_args; + +struct pnfs_layoutdriver_type { + struct list_head pnfs_tblid; + const u32 id; + const char *name; + struct module *owner; + unsigned int flags; + unsigned int max_deviceinfo_size; + unsigned int max_layoutget_response; + int (*set_layoutdriver)(struct nfs_server *, const struct nfs_fh *); + int (*clear_layoutdriver)(struct nfs_server *); + struct pnfs_layout_hdr * (*alloc_layout_hdr)(struct inode *, gfp_t); + void (*free_layout_hdr)(struct pnfs_layout_hdr *); + struct pnfs_layout_segment * (*alloc_lseg)(struct pnfs_layout_hdr *, struct nfs4_layoutget_res *, gfp_t); + void (*free_lseg)(struct pnfs_layout_segment *); + void (*add_lseg)(struct pnfs_layout_hdr *, struct pnfs_layout_segment *, struct list_head *); + void (*return_range)(struct pnfs_layout_hdr *, struct pnfs_layout_range *); + const struct nfs_pageio_ops *pg_read_ops; + const struct nfs_pageio_ops *pg_write_ops; + struct pnfs_ds_commit_info * (*get_ds_info)(struct inode *); + int (*sync)(struct inode *, bool); + enum pnfs_try_status (*read_pagelist)(struct nfs_pgio_header *); + enum pnfs_try_status (*write_pagelist)(struct nfs_pgio_header *, int); + void (*free_deviceid_node)(struct nfs4_deviceid_node *); + struct nfs4_deviceid_node * (*alloc_deviceid_node)(struct nfs_server *, struct pnfs_device *, gfp_t); + int (*prepare_layoutreturn)(struct nfs4_layoutreturn_args *); + void (*cleanup_layoutcommit)(struct nfs4_layoutcommit_data *); + int (*prepare_layoutcommit)(struct nfs4_layoutcommit_args *); + int (*prepare_layoutstats)(struct nfs42_layoutstat_args *); + void (*cancel_io)(struct pnfs_layout_segment *); +}; + +struct nfs4_layoutdriver_data; + +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; long: 32; +}; + +struct nfs4_layoutdriver_data { + struct page **pages; + __u32 pglen; + __u32 len; +}; + +struct nfs_pageio_descriptor; + +struct nfs_pgio_mirror; + +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); +}; + +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_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 nfs4_deviceid { + char data[16]; +}; + +struct nfs4_deviceid_node { + struct hlist_node node; + struct hlist_node tmpnode; + const struct pnfs_layoutdriver_type *ld; + const struct nfs_client *nfs_client; + unsigned long flags; + unsigned long timestamp_unavailable; + struct nfs4_deviceid deviceid; + struct callback_head rcu; + atomic_t ref; +}; + +struct pnfs_device { + struct nfs4_deviceid dev_id; + unsigned int layout_type; + unsigned int mincount; + unsigned int maxcount; + struct page **pages; + unsigned int pgbase; + unsigned int pglen; + unsigned char nocache: 1; +}; + +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; long: 32; +}; + +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_layoutcommit_args { + struct nfs4_sequence_args seq_args; + nfs4_stateid stateid; long: 32; + __u64 lastbytewritten; + struct inode *inode; + const u32 *bitmask; + size_t layoutupdate_len; + struct page *layoutupdate_page; + struct page **layoutupdate_pages; + __be32 *start_p; +}; + +struct nfs4_layoutcommit_res { + struct nfs4_sequence_res seq_res; + struct nfs_fattr *fattr; + const struct nfs_server *server; + int status; +}; + +struct nfs4_layoutcommit_data { + struct rpc_task task; + struct nfs_fattr fattr; + struct list_head lseg_list; + const struct cred *cred; + struct inode *inode; + struct nfs4_layoutcommit_args args; + struct nfs4_layoutcommit_res res; long: 32; +}; + +struct nfs42_layoutstat_devinfo; + +struct nfs42_layoutstat_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + struct inode *inode; + nfs4_stateid stateid; + int num_dev; + struct nfs42_layoutstat_devinfo *devinfo; +}; + +struct nfs42_layoutstat_devinfo { + struct nfs4_deviceid dev_id; + __u64 offset; + __u64 length; + __u64 read_count; + __u64 read_bytes; + __u64 write_count; + __u64 write_bytes; + __u32 layout_type; + struct nfs4_xdr_opaque_data ld_private; long: 32; +}; + +typedef void (*exitcall_t)(); + +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 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 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, +}; + +struct nfs4_cached_acl; + +struct nfs_delegation; + +struct nfs4_xattr_cache; + +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 { + int cnt; + long: 32; + struct { + u64 start; + u64 end; + } gap[16]; + } *ooo; + 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; long: 32; + __u64 write_io; + __u64 read_io; + struct nfs4_xattr_cache *xattr_cache; long: 32; + union { + 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; long: 32; + __u64 change_attr; + unsigned long test_gen; + unsigned long flags; + refcount_t refcount; + spinlock_t lock; + struct callback_head rcu; +}; + +typedef int wait_bit_action_f(struct wait_bit_key *, int); + +struct nfs_find_desc { + struct nfs_fh *fh; + struct nfs_fattr *fattr; +}; + +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[32]; + 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; +}; + +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_exchange_id)(void *, const struct nfs_client *, int); + +typedef void (*btf_trace_nfs4_create_session)(void *, const struct nfs_client *, int); + +typedef void (*btf_trace_nfs4_destroy_session)(void *, const struct nfs_client *, int); + +typedef void (*btf_trace_nfs4_destroy_clientid)(void *, const struct nfs_client *, int); + +typedef void (*btf_trace_nfs4_bind_conn_to_session)(void *, const struct nfs_client *, int); + +typedef void (*btf_trace_nfs4_sequence)(void *, const struct nfs_client *, int); + +typedef void (*btf_trace_nfs4_reclaim_complete)(void *, const struct nfs_client *, int); + +typedef void (*btf_trace_nfs4_sequence_done)(void *, const struct nfs4_session *, const struct nfs4_sequence_res *); + +struct cb_sequenceargs; + +struct cb_sequenceres; + +typedef void (*btf_trace_nfs4_cb_sequence)(void *, const struct cb_sequenceargs *, const struct cb_sequenceres *, __be32); + +struct referring_call_list; + +struct cb_sequenceargs { + struct sockaddr *csa_addr; + struct nfs4_sessionid csa_sessionid; + uint32_t csa_sequenceid; + uint32_t csa_slotid; + uint32_t csa_highestslotid; + uint32_t csa_cachethis; + uint32_t csa_nrclists; + struct referring_call_list *csa_rclists; +}; + +struct referring_call; + +struct referring_call_list { + struct nfs4_sessionid rcl_sessionid; + uint32_t rcl_nrefcalls; + struct referring_call *rcl_refcalls; +}; + +struct referring_call { + uint32_t rc_sequenceid; + uint32_t rc_slotid; +}; + +struct cb_sequenceres { + __be32 csr_status; + struct nfs4_sessionid csr_sessionid; + uint32_t csr_sequenceid; + uint32_t csr_slotid; + uint32_t csr_highestslotid; + uint32_t csr_target_highestslotid; +}; + +typedef void (*btf_trace_nfs4_cb_seqid_err)(void *, const struct cb_sequenceargs *, __be32); + +typedef void (*btf_trace_nfs4_cb_offload)(void *, const struct nfs_fh *, const nfs4_stateid *, uint64_t, int, 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 *); + +struct nfs_closeargs; + +struct nfs_closeres; + +typedef void (*btf_trace_nfs4_close)(void *, const struct nfs4_state *, const struct nfs_closeargs *, const struct nfs_closeres *, int); + +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_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; +}; + +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); + +struct nfs4_delegreturnargs; + +struct nfs4_delegreturnres; + +typedef void (*btf_trace_nfs4_delegreturn_exit)(void *, const struct nfs4_delegreturnargs *, const struct nfs4_delegreturnres *, int); + +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; +}; + +typedef void (*btf_trace_nfs4_test_delegation_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); + +typedef void (*btf_trace_nfs4_test_open_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); + +typedef void (*btf_trace_nfs4_test_lock_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, 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_pnfs_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_pnfs_write)(void *, const struct nfs_pgio_header *, int); + +typedef void (*btf_trace_nfs4_commit)(void *, const struct nfs_commit_data *, int); + +typedef void (*btf_trace_nfs4_pnfs_commit_ds)(void *, const struct nfs_commit_data *, int); + +typedef void (*btf_trace_nfs4_layoutget)(void *, const struct nfs_open_context *, const struct pnfs_layout_range *, const struct pnfs_layout_range *, const nfs4_stateid *, int); + +typedef void (*btf_trace_nfs4_layoutcommit)(void *, const struct inode *, const nfs4_stateid *, int); + +typedef void (*btf_trace_nfs4_layoutreturn)(void *, const struct inode *, const nfs4_stateid *, int); + +typedef void (*btf_trace_nfs4_layoutreturn_on_close)(void *, const struct inode *, const nfs4_stateid *, int); + +typedef void (*btf_trace_nfs4_layouterror)(void *, const struct inode *, const nfs4_stateid *, int); + +typedef void (*btf_trace_nfs4_layoutstats)(void *, const struct inode *, const nfs4_stateid *, int); + +enum pnfs_update_layout_reason { + PNFS_UPDATE_LAYOUT_UNKNOWN = 0, + PNFS_UPDATE_LAYOUT_NO_PNFS = 1, + PNFS_UPDATE_LAYOUT_RD_ZEROLEN = 2, + PNFS_UPDATE_LAYOUT_MDSTHRESH = 3, + PNFS_UPDATE_LAYOUT_NOMEM = 4, + PNFS_UPDATE_LAYOUT_BULK_RECALL = 5, + PNFS_UPDATE_LAYOUT_IO_TEST_FAIL = 6, + PNFS_UPDATE_LAYOUT_FOUND_CACHED = 7, + PNFS_UPDATE_LAYOUT_RETURN = 8, + PNFS_UPDATE_LAYOUT_RETRY = 9, + PNFS_UPDATE_LAYOUT_BLOCKED = 10, + PNFS_UPDATE_LAYOUT_INVALID_OPEN = 11, + PNFS_UPDATE_LAYOUT_SEND_LAYOUTGET = 12, + PNFS_UPDATE_LAYOUT_EXIT = 13, +}; + +typedef void (*btf_trace_pnfs_update_layout)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *, enum pnfs_update_layout_reason); + +typedef void (*btf_trace_pnfs_mds_fallback_pg_init_read)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); + +typedef void (*btf_trace_pnfs_mds_fallback_pg_init_write)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); + +typedef void (*btf_trace_pnfs_mds_fallback_pg_get_mirror_count)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); + +typedef void (*btf_trace_pnfs_mds_fallback_read_done)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); + +typedef void (*btf_trace_pnfs_mds_fallback_write_done)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); + +typedef void (*btf_trace_pnfs_mds_fallback_read_pagelist)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); + +typedef void (*btf_trace_pnfs_mds_fallback_write_pagelist)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); + +typedef void (*btf_trace_nfs4_deviceid_free)(void *, const struct nfs_client *, const struct nfs4_deviceid *); + +typedef void (*btf_trace_nfs4_getdeviceinfo)(void *, const struct nfs_server *, const struct nfs4_deviceid *, int); + +typedef void (*btf_trace_nfs4_find_deviceid)(void *, const struct nfs_server *, const struct nfs4_deviceid *, int); + +typedef void (*btf_trace_ff_layout_read_error)(void *, const struct nfs_pgio_header *); + +typedef void (*btf_trace_ff_layout_write_error)(void *, const struct nfs_pgio_header *); + +typedef void (*btf_trace_ff_layout_commit_error)(void *, const struct nfs_commit_data *); + +struct nfs42_seek_args; + +struct nfs42_seek_res; + +typedef void (*btf_trace_nfs4_llseek)(void *, const struct inode *, const struct nfs42_seek_args *, const struct nfs42_seek_res *, int); + +struct nfs42_seek_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *sa_fh; + nfs4_stateid sa_stateid; + u64 sa_offset; + u32 sa_what; long: 32; +}; + +struct nfs42_seek_res { + struct nfs4_sequence_res seq_res; + unsigned int status; + u32 sr_eof; + u64 sr_offset; +}; + +struct nfs42_falloc_args; + +typedef void (*btf_trace_nfs4_fallocate)(void *, const struct inode *, const struct nfs42_falloc_args *, int); + +struct nfs42_falloc_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *falloc_fh; + nfs4_stateid falloc_stateid; + u64 falloc_offset; + u64 falloc_length; + const u32 *falloc_bitmask; long: 32; +}; + +typedef void (*btf_trace_nfs4_deallocate)(void *, const struct inode *, const struct nfs42_falloc_args *, int); + +struct nfs42_copy_args; + +struct nfs42_copy_res; + +struct nl4_server; + +typedef void (*btf_trace_nfs4_copy)(void *, const struct inode *, const struct inode *, const struct nfs42_copy_args *, const struct nfs42_copy_res *, const struct nl4_server *, int); + +struct nfs42_copy_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *src_fh; + nfs4_stateid src_stateid; + u64 src_pos; + struct nfs_fh *dst_fh; + nfs4_stateid dst_stateid; + u64 dst_pos; + u64 count; + bool sync; + struct nl4_server *cp_src; +}; + +struct nfs42_netaddr { + char netid[5]; + char addr[58]; + u32 netid_len; + u32 addr_len; +}; + +enum netloc_type4 { + NL4_NAME = 1, + NL4_URL = 2, + NL4_NETADDR = 3, +}; + +struct nl4_server { + enum netloc_type4 nl4_type; + union { + struct { + int nl4_str_sz; + char nl4_str[1025]; + }; + struct nfs42_netaddr nl4_addr; + } u; +}; + +struct nfs42_write_res { + nfs4_stateid stateid; long: 32; + u64 count; + struct nfs_writeverf verifier; long: 32; +}; + +struct nfs42_copy_res { + struct nfs4_sequence_res seq_res; + struct nfs42_write_res write_res; + bool consecutive; + bool synchronous; + struct nfs_commitres commit_res; long: 32; +}; + +struct nfs42_clone_args; + +typedef void (*btf_trace_nfs4_clone)(void *, const struct inode *, const struct inode *, const struct nfs42_clone_args *, int); + +struct nfs42_clone_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *src_fh; + struct nfs_fh *dst_fh; + nfs4_stateid src_stateid; + nfs4_stateid dst_stateid; + __u64 src_offset; + __u64 dst_offset; + __u64 count; + const u32 *dst_bitmask; long: 32; +}; + +struct nfs42_copy_notify_args; + +struct nfs42_copy_notify_res; + +typedef void (*btf_trace_nfs4_copy_notify)(void *, const struct inode *, const struct nfs42_copy_notify_args *, const struct nfs42_copy_notify_res *, int); + +struct nfs42_copy_notify_args { + struct nfs4_sequence_args cna_seq_args; + struct nfs_fh *cna_src_fh; + nfs4_stateid cna_src_stateid; + struct nl4_server cna_dst; +}; + +struct nfs42_copy_notify_res { + struct nfs4_sequence_res cnr_seq_res; + struct nfstime4 cnr_lease_time; + nfs4_stateid cnr_stateid; + struct nl4_server cnr_src; +}; + +struct nfs42_offload_status_args; + +typedef void (*btf_trace_nfs4_offload_cancel)(void *, const struct nfs42_offload_status_args *, int); + +struct nfs42_offload_status_args { + struct nfs4_sequence_args osa_seq_args; + struct nfs_fh *osa_src_fh; + nfs4_stateid osa_stateid; +}; + +typedef void (*btf_trace_nfs4_getxattr)(void *, const struct inode *, const char *, int); + +typedef void (*btf_trace_nfs4_setxattr)(void *, const struct inode *, const char *, int); + +typedef void (*btf_trace_nfs4_removexattr)(void *, const struct inode *, const char *, int); + +typedef void (*btf_trace_nfs4_listxattr)(void *, const struct inode *, int); + +enum { + NFS_LAYOUT_RO_FAILED = 0, + NFS_LAYOUT_RW_FAILED = 1, + NFS_LAYOUT_BULK_RECALL = 2, + NFS_LAYOUT_RETURN = 3, + NFS_LAYOUT_RETURN_LOCK = 4, + NFS_LAYOUT_RETURN_REQUESTED = 5, + NFS_LAYOUT_INVALID_STID = 6, + NFS_LAYOUT_FIRST_LAYOUTGET = 7, + NFS_LAYOUT_INODE_FREEING = 8, + NFS_LAYOUT_HASHED = 9, + NFS_LAYOUT_DRAIN = 10, +}; + +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, +}; + +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_sequence_done { + struct trace_entry ent; + unsigned int session; + unsigned int slot_nr; + unsigned int seq_nr; + unsigned int highest_slotid; + unsigned int target_highest_slotid; + unsigned long status_flags; + unsigned long error; + char __data[0]; +}; + +struct trace_event_raw_nfs4_cb_sequence { + struct trace_entry ent; + unsigned int session; + unsigned int slot_nr; + unsigned int seq_nr; + unsigned int highest_slotid; + unsigned int cachethis; + unsigned long error; + char __data[0]; +}; + +struct trace_event_raw_nfs4_cb_seqid_err { + struct trace_entry ent; + unsigned int session; + unsigned int slot_nr; + unsigned int seq_nr; + unsigned int highest_slotid; + unsigned int cachethis; + unsigned long error; + char __data[0]; +}; + +struct trace_event_raw_nfs4_cb_offload { + struct trace_entry ent; + unsigned long error; + u32 fhandle; + loff_t cb_count; + int cb_how; + int cb_stateid_seq; + u32 cb_stateid_hash; + char __data[0]; long: 32; +}; + +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; long: 32; + u64 fileid; + u64 dir; + u32 __data_loc_name; + int stateid_seq; + u32 stateid_hash; + int openstateid_seq; + u32 openstateid_hash; + char __data[0]; long: 32; +}; + +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]; long: 32; +}; + +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; long: 32; + 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; long: 32; + 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]; long: 32; +}; + +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_test_stateid_event { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; long: 32; + u64 fileid; + 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]; long: 32; +}; + +struct trace_event_raw_nfs4_lookupp { + struct trace_entry ent; + dev_t dev; long: 32; + u64 ino; + unsigned long error; + char __data[0]; long: 32; +}; + +struct trace_event_raw_nfs4_rename { + struct trace_entry ent; + dev_t dev; + unsigned long error; + u64 olddir; + u32 __data_loc_oldname; long: 32; + u64 newdir; + u32 __data_loc_newname; + char __data[0]; long: 32; +}; + +struct trace_event_raw_nfs4_inode_event { + struct trace_entry ent; + dev_t dev; + u32 fhandle; + u64 fileid; + unsigned long error; + char __data[0]; long: 32; +}; + +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]; long: 32; +}; + +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; long: 32; + u64 fileid; + u32 __data_loc_dstaddr; + char __data[0]; long: 32; +}; + +struct trace_event_raw_nfs4_inode_stateid_callback_event { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; long: 32; + u64 fileid; + u32 __data_loc_dstaddr; + int stateid_seq; + u32 stateid_hash; + char __data[0]; long: 32; +}; + +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]; long: 32; +}; + +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]; long: 32; +}; + +struct trace_event_raw_nfs4_commit_event { + struct trace_entry ent; + dev_t dev; + u32 fhandle; + u64 fileid; + unsigned long error; long: 32; + loff_t offset; + u32 count; + int layoutstateid_seq; + u32 layoutstateid_hash; + char __data[0]; long: 32; +}; + +struct trace_event_raw_nfs4_layoutget { + struct trace_entry ent; + dev_t dev; + u32 fhandle; + u64 fileid; + u32 iomode; long: 32; + u64 offset; + u64 count; + unsigned long error; + int stateid_seq; + u32 stateid_hash; + int layoutstateid_seq; + u32 layoutstateid_hash; + char __data[0]; long: 32; +}; + +struct trace_event_raw_pnfs_update_layout { + struct trace_entry ent; + dev_t dev; long: 32; + u64 fileid; + u32 fhandle; long: 32; + loff_t pos; + u64 count; + enum pnfs_iomode iomode; + int layoutstateid_seq; + u32 layoutstateid_hash; + long lseg; + enum pnfs_update_layout_reason reason; + char __data[0]; long: 32; +}; + +struct trace_event_raw_pnfs_layout_event { + struct trace_entry ent; + dev_t dev; long: 32; + u64 fileid; + u32 fhandle; long: 32; + loff_t pos; + u64 count; + enum pnfs_iomode iomode; + int layoutstateid_seq; + u32 layoutstateid_hash; + long lseg; + char __data[0]; +}; + +struct trace_event_raw_nfs4_deviceid_event { + struct trace_entry ent; + u32 __data_loc_dstaddr; + unsigned char deviceid[16]; + char __data[0]; +}; + +struct trace_event_raw_nfs4_deviceid_status { + struct trace_entry ent; + dev_t dev; + int status; + u32 __data_loc_dstaddr; + unsigned char deviceid[16]; + char __data[0]; +}; + +struct trace_event_raw_nfs4_flexfiles_io_event { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; long: 32; + u64 fileid; + loff_t offset; + u32 count; + int stateid_seq; + u32 stateid_hash; + u32 __data_loc_dstaddr; + char __data[0]; +}; + +struct trace_event_raw_ff_layout_commit_error { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; long: 32; + u64 fileid; + loff_t offset; + u32 count; + u32 __data_loc_dstaddr; + char __data[0]; +}; + +struct trace_event_raw_nfs4_llseek { + struct trace_entry ent; + unsigned long error; + u32 fhandle; + u32 fileid; + dev_t dev; + int stateid_seq; + u32 stateid_hash; + loff_t offset_s; + u32 what; long: 32; + loff_t offset_r; + u32 eof; + char __data[0]; long: 32; +}; + +struct trace_event_raw_nfs4_sparse_event { + struct trace_entry ent; + unsigned long error; long: 32; + loff_t offset; + loff_t len; + dev_t dev; + u32 fhandle; + u64 fileid; + int stateid_seq; + u32 stateid_hash; + char __data[0]; +}; + +struct trace_event_raw_nfs4_copy { + struct trace_entry ent; + unsigned long error; + u32 src_fhandle; + u32 src_fileid; + u32 dst_fhandle; + u32 dst_fileid; + dev_t src_dev; + dev_t dst_dev; + int src_stateid_seq; + u32 src_stateid_hash; + int dst_stateid_seq; + u32 dst_stateid_hash; long: 32; + loff_t src_offset; + loff_t dst_offset; + bool sync; long: 32; + loff_t len; + int res_stateid_seq; + u32 res_stateid_hash; + loff_t res_count; + bool res_sync; + bool res_cons; + bool intra; + char __data[0]; long: 32; +}; + +struct trace_event_raw_nfs4_clone { + struct trace_entry ent; + unsigned long error; + u32 src_fhandle; + u32 src_fileid; + u32 dst_fhandle; + u32 dst_fileid; + dev_t src_dev; + dev_t dst_dev; long: 32; + loff_t src_offset; + loff_t dst_offset; + int src_stateid_seq; + u32 src_stateid_hash; + int dst_stateid_seq; + u32 dst_stateid_hash; + loff_t len; + char __data[0]; +}; + +struct trace_event_raw_nfs4_copy_notify { + struct trace_entry ent; + unsigned long error; + u32 fhandle; + u32 fileid; + dev_t dev; + int stateid_seq; + u32 stateid_hash; + int res_stateid_seq; + u32 res_stateid_hash; + char __data[0]; +}; + +struct trace_event_raw_nfs4_offload_cancel { + struct trace_entry ent; + unsigned long error; + u32 fhandle; + int stateid_seq; + u32 stateid_hash; + char __data[0]; +}; + +struct trace_event_raw_nfs4_xattr_event { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; long: 32; + u64 fileid; + u32 __data_loc_name; + char __data[0]; long: 32; +}; + +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_deviceid_event { + u32 dstaddr; +}; + +struct trace_event_data_offsets_nfs4_deviceid_status { + u32 dstaddr; +}; + +struct trace_event_data_offsets_nfs4_flexfiles_io_event { + u32 dstaddr; +}; + +struct trace_event_data_offsets_ff_layout_commit_error { + u32 dstaddr; +}; + +struct trace_event_data_offsets_nfs4_xattr_event { + u32 name; +}; + +struct trace_event_data_offsets_nfs4_sequence_done {}; + +struct trace_event_data_offsets_nfs4_cb_sequence {}; + +struct trace_event_data_offsets_nfs4_cb_seqid_err {}; + +struct trace_event_data_offsets_nfs4_cb_offload {}; + +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_test_stateid_event {}; + +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 trace_event_data_offsets_nfs4_layoutget {}; + +struct trace_event_data_offsets_pnfs_update_layout {}; + +struct trace_event_data_offsets_pnfs_layout_event {}; + +struct trace_event_data_offsets_nfs4_llseek {}; + +struct trace_event_data_offsets_nfs4_sparse_event {}; + +struct trace_event_data_offsets_nfs4_copy {}; + +struct trace_event_data_offsets_nfs4_clone {}; + +struct trace_event_data_offsets_nfs4_copy_notify {}; + +struct trace_event_data_offsets_nfs4_offload_cancel {}; + +struct module_version_attribute { + struct module_attribute mattr; + const char *module_name; + const char *version; +}; + +struct match_token { + int token; + const char *pattern; +}; + +enum hash_algo { + HASH_ALGO_MD4 = 0, + HASH_ALGO_MD5 = 1, + HASH_ALGO_SHA1 = 2, + HASH_ALGO_RIPE_MD_160 = 3, + HASH_ALGO_SHA256 = 4, + HASH_ALGO_SHA384 = 5, + HASH_ALGO_SHA512 = 6, + HASH_ALGO_SHA224 = 7, + HASH_ALGO_RIPE_MD_128 = 8, + HASH_ALGO_RIPE_MD_256 = 9, + HASH_ALGO_RIPE_MD_320 = 10, + HASH_ALGO_WP_256 = 11, + HASH_ALGO_WP_384 = 12, + HASH_ALGO_WP_512 = 13, + HASH_ALGO_TGR_128 = 14, + HASH_ALGO_TGR_160 = 15, + HASH_ALGO_TGR_192 = 16, + HASH_ALGO_SM3_256 = 17, + HASH_ALGO_STREEBOG_256 = 18, + HASH_ALGO_STREEBOG_512 = 19, + HASH_ALGO_SHA3_256 = 20, + HASH_ALGO_SHA3_384 = 21, + HASH_ALGO_SHA3_512 = 22, + HASH_ALGO__LAST = 23, +}; + +enum { + UBIFS_COMPR_FL = 1, + UBIFS_SYNC_FL = 2, + UBIFS_IMMUTABLE_FL = 4, + UBIFS_APPEND_FL = 8, + UBIFS_DIRSYNC_FL = 16, + UBIFS_XATTR_FL = 32, + UBIFS_CRYPT_FL = 64, +}; + +enum { + UBIFS_INO_KEY = 0, + UBIFS_DATA_KEY = 1, + UBIFS_DENT_KEY = 2, + UBIFS_XENT_KEY = 3, + UBIFS_KEY_TYPES_CNT = 4, +}; + +enum { + UBIFS_COMPR_NONE = 0, + UBIFS_COMPR_LZO = 1, + UBIFS_COMPR_ZLIB = 2, + UBIFS_COMPR_ZSTD = 3, + UBIFS_COMPR_TYPES_CNT = 4, +}; + +enum { + UBIFS_MST_DIRTY = 1, + UBIFS_MST_NO_ORPHS = 2, + UBIFS_MST_RCVRY = 4, +}; + +enum { + Opt_fast_unmount = 0, + Opt_norm_unmount = 1, + Opt_bulk_read = 2, + Opt_no_bulk_read = 3, + Opt_chk_data_crc = 4, + Opt_no_chk_data_crc = 5, + Opt_override_compr = 6, + Opt_assert = 7, + Opt_auth_key = 8, + Opt_auth_hash_name = 9, + Opt_ignore = 10, + Opt_err = 11, +}; + +enum { + ASSACT_REPORT = 0, + ASSACT_RO = 1, + ASSACT_PANIC = 2, +}; + +enum { + UBI_READONLY = 1, + UBI_READWRITE = 2, + UBI_EXCLUSIVE = 3, + UBI_METAONLY = 4, +}; + +enum { + UBIFS_SIMPLE_KEY_FMT = 0, +}; + +enum { + UBI_DYNAMIC_VOLUME = 3, + UBI_STATIC_VOLUME = 4, +}; + +enum { + UBIFS_INO_NODE = 0, + UBIFS_DATA_NODE = 1, + UBIFS_DENT_NODE = 2, + UBIFS_XENT_NODE = 3, + UBIFS_TRUN_NODE = 4, + UBIFS_PAD_NODE = 5, + UBIFS_SB_NODE = 6, + UBIFS_MST_NODE = 7, + UBIFS_REF_NODE = 8, + UBIFS_IDX_NODE = 9, + UBIFS_CS_NODE = 10, + UBIFS_ORPH_NODE = 11, + UBIFS_AUTH_NODE = 12, + UBIFS_SIG_NODE = 13, + UBIFS_NODE_TYPES_CNT = 14, +}; + +enum { + LPROPS_UNCAT = 0, + LPROPS_DIRTY = 1, + LPROPS_DIRTY_IDX = 2, + LPROPS_FREE = 3, + LPROPS_HEAP_CNT = 3, + LPROPS_EMPTY = 4, + LPROPS_FREEABLE = 5, + LPROPS_FRDI_IDX = 6, + LPROPS_CAT_MASK = 15, + LPROPS_TAKEN = 16, + LPROPS_INDEX = 32, +}; + +typedef s64 int64_t; + +union ubifs_dev_desc { + __le32 new; + __le64 huge; +}; + +struct ubifs_inode { + struct inode vfs_inode; + unsigned long long creat_sqnum; + unsigned long long del_cmtno; + unsigned int xattr_size; + unsigned int xattr_cnt; + unsigned int xattr_names; + unsigned int dirty: 1; + unsigned int xattr: 1; + unsigned int bulk_read: 1; + unsigned int compr_type: 2; + struct mutex ui_mutex; + struct rw_semaphore xattr_sem; + spinlock_t ui_lock; + loff_t synced_i_size; + loff_t ui_size; + int flags; + unsigned long last_page_read; + unsigned long read_in_a_row; + int data_len; + void *data; long: 32; +}; + +typedef u8 uint8_t; + +union ubifs_key { + uint8_t u8[8]; + uint32_t u32[2]; + uint64_t u64[1]; + __le32 j32[2]; +}; + +struct ubifs_znode; + +struct ubifs_zbranch { + union ubifs_key key; + union { + struct ubifs_znode *znode; + void *leaf; + }; + int lnum; + int offs; + int len; + u8 hash[0]; +}; + +struct bu_info { + union ubifs_key key; + struct ubifs_zbranch zbranch[32]; + void *buf; + int buf_len; + int gc_seq; + int cnt; + int blk_cnt; + int eof; +}; + +struct ubifs_lp_stats { + int empty_lebs; + int taken_empty_lebs; + int idx_lebs; long: 32; + long long total_free; + long long total_dirty; + long long total_used; + long long total_dead; + long long total_dark; +}; + +struct ubifs_budg_info { + long long idx_growth; + long long data_growth; + long long dd_growth; + long long uncommitted_idx; + unsigned long long old_idx_sz; + int min_idx_lebs; + unsigned int nospace: 1; + unsigned int nospace_rp: 1; + int page_budget; + int inode_budget; + int dent_budget; long: 32; +}; + +struct ubifs_node_range { + union { + int len; + int min_len; + }; + int max_len; +}; + +struct ubi_device_info { + int ubi_num; + int leb_size; + int leb_start; + int min_io_size; + int max_write_size; + int ro_mode; + dev_t cdev; +}; + +struct ubi_volume_info { + int ubi_num; + int vol_id; + int size; long: 32; + long long used_bytes; + int used_ebs; + int vol_type; + int corrupted; + int upd_marker; + int alignment; + int usable_leb_size; + int name_len; + const char *name; + dev_t cdev; + struct device *dev; +}; + +struct ubifs_lprops; + +struct ubifs_lpt_heap { + struct ubifs_lprops **arr; + int cnt; + int max_cnt; +}; + +struct ubifs_mount_opts { + unsigned int unmount_mode: 2; + unsigned int bulk_read: 2; + unsigned int chk_data_crc: 2; + unsigned int override_compr: 1; + unsigned int compr_type: 2; +}; + +struct ubifs_sb_node; + +struct ubifs_jhead; + +struct ubifs_mst_node; + +struct ubi_volume_desc; + +struct ubifs_orphan; + +struct ubifs_nnode; + +struct ubifs_cnode; + +struct ubifs_lpt_lprops; + +struct ubifs_debug_info; + +struct ubifs_stats_info; + +struct ubifs_info { + struct super_block *vfs_sb; + struct ubifs_sb_node *sup_node; + ino_t highest_inum; long: 32; + unsigned long long max_sqnum; + unsigned long long cmt_no; + spinlock_t cnt_lock; + int fmt_version; + int ro_compat_version; + unsigned char uuid[16]; + int lhead_lnum; + int lhead_offs; + int ltail_lnum; + struct mutex log_mutex; + int min_log_bytes; + long long cmt_bud_bytes; + struct rb_root buds; long: 32; + long long bud_bytes; + spinlock_t buds_lock; + int jhead_cnt; + struct ubifs_jhead *jheads; long: 32; + long long max_bud_bytes; + long long bg_bud_bytes; + struct list_head old_buds; + int max_bud_cnt; + struct rw_semaphore commit_sem; + int cmt_state; + spinlock_t cs_lock; + wait_queue_head_t cmt_wq; + struct kobject kobj; + struct completion kobj_unregister; + unsigned int big_lpt: 1; + unsigned int space_fixup: 1; + unsigned int double_hash: 1; + unsigned int encrypted: 1; + unsigned int no_chk_data_crc: 1; + unsigned int bulk_read: 1; + unsigned int default_compr: 2; + unsigned int rw_incompat: 1; + unsigned int assert_action: 2; + unsigned int authenticated: 1; + unsigned int superblock_need_write: 1; + struct mutex tnc_mutex; long: 32; + struct ubifs_zbranch zroot; + struct ubifs_znode *cnext; + struct ubifs_znode *enext; + int *gap_lebs; + void *cbuf; + void *ileb_buf; + int ileb_len; + int ihead_lnum; + int ihead_offs; + int *ilebs; + int ileb_cnt; + int ileb_nxt; + struct rb_root old_idx; + int *bottom_up_buf; + struct ubifs_mst_node *mst_node; + int mst_offs; + int max_bu_buf_len; + struct mutex bu_mutex; long: 32; + struct bu_info bu; + struct mutex write_reserve_mutex; + void *write_reserve_buf; + int log_lebs; long: 32; + long long log_bytes; + int log_last; + int lpt_lebs; + int lpt_first; + int lpt_last; + int orph_lebs; + int orph_first; + int orph_last; + int main_lebs; + int main_first; long: 32; + long long main_bytes; + uint8_t key_hash_type; + uint32_t (*key_hash)(const char *, int); + int key_fmt; + int key_len; + int hash_len; + int fanout; + int min_io_size; + int min_io_shift; + int max_write_size; + int max_write_shift; + int leb_size; + int leb_start; + int half_leb_size; + int idx_leb_size; + int leb_cnt; + int max_leb_cnt; + unsigned int ro_media: 1; + unsigned int ro_mount: 1; + unsigned int ro_error: 1; + atomic_long_t dirty_pg_cnt; + atomic_long_t dirty_zn_cnt; + atomic_long_t clean_zn_cnt; + spinlock_t space_lock; long: 32; + struct ubifs_lp_stats lst; + struct ubifs_budg_info bi; + unsigned long long calc_idx_sz; + int ref_node_alsz; + int mst_node_alsz; + int min_idx_node_sz; + int max_idx_node_sz; + long long max_inode_sz; + int max_znode_sz; + int leb_overhead; + int dead_wm; + int dark_wm; + int block_cnt; + struct ubifs_node_range ranges[14]; + struct ubi_volume_desc *ubi; + struct ubi_device_info di; long: 32; + struct ubi_volume_info vi; + struct rb_root orph_tree; + struct list_head orph_list; + struct list_head orph_new; + struct ubifs_orphan *orph_cnext; + struct ubifs_orphan *orph_dnext; + spinlock_t orphan_lock; + void *orph_buf; + int new_orphans; + int cmt_orphans; + int tot_orphans; + int max_orphans; + int ohead_lnum; + int ohead_offs; + int no_orphs; + struct task_struct *bgt; + char bgt_name[24]; + int need_bgt; + int need_wbuf_sync; + int gc_lnum; + void *sbuf; + struct list_head idx_gc; + int idx_gc_cnt; + int gc_seq; + int gced_lnum; + struct list_head infos_list; + struct mutex umount_mutex; + unsigned int shrinker_run_no; + int space_bits; + int lpt_lnum_bits; + int lpt_offs_bits; + int lpt_spc_bits; + int pcnt_bits; + int lnum_bits; + int nnode_sz; + int pnode_sz; + int ltab_sz; + int lsave_sz; + int pnode_cnt; + int nnode_cnt; + int lpt_hght; + int pnodes_have; + struct mutex lp_mutex; + int lpt_lnum; + int lpt_offs; + int nhead_lnum; + int nhead_offs; + int lpt_drty_flgs; + int dirty_nn_cnt; + int dirty_pn_cnt; + int check_lpt_free; long: 32; + long long lpt_sz; + void *lpt_nod_buf; + void *lpt_buf; + struct ubifs_nnode *nroot; + struct ubifs_cnode *lpt_cnext; + struct ubifs_lpt_heap lpt_heap[3]; + struct ubifs_lpt_heap dirty_idx; + struct list_head uncat_list; + struct list_head empty_list; + struct list_head freeable_list; + struct list_head frdi_idx_list; + int freeable_cnt; + int in_a_category_cnt; + int ltab_lnum; + int ltab_offs; + struct ubifs_lpt_lprops *ltab; + struct ubifs_lpt_lprops *ltab_cmt; + int lsave_cnt; + int lsave_lnum; + int lsave_offs; + int *lsave; + int lscan_lnum; long: 32; + long long rp_size; + long long report_rp_size; + kuid_t rp_uid; + kgid_t rp_gid; + struct crypto_shash *hash_tfm; + struct crypto_shash *hmac_tfm; + int hmac_desc_len; + char *auth_key_name; + char *auth_hash_name; + enum hash_algo auth_hash_algo; + struct shash_desc *log_hash; + unsigned int empty: 1; + unsigned int need_recovery: 1; + unsigned int replaying: 1; + unsigned int mounting: 1; + unsigned int remounting_rw: 1; + unsigned int probing: 1; + struct list_head replay_list; + struct list_head replay_buds; + unsigned long long cs_sqnum; + struct list_head unclean_leb_list; + struct ubifs_mst_node *rcvrd_mst_node; + struct rb_root size_tree; + struct ubifs_mount_opts mount_opts; + struct ubifs_debug_info *dbg; + struct ubifs_stats_info *stats; long: 32; +}; + +struct ubifs_ch { + __le32 magic; + __le32 crc; + __le64 sqnum; + __le32 len; + __u8 node_type; + __u8 group_type; + __u8 padding[2]; +}; + +struct ubifs_sb_node { + struct ubifs_ch ch; + __u8 padding[2]; + __u8 key_hash; + __u8 key_fmt; + __le32 flags; + __le32 min_io_size; + __le32 leb_size; + __le32 leb_cnt; + __le32 max_leb_cnt; + __le64 max_bud_bytes; + __le32 log_lebs; + __le32 lpt_lebs; + __le32 orph_lebs; + __le32 jhead_cnt; + __le32 fanout; + __le32 lsave_cnt; + __le32 fmt_version; + __le16 default_compr; + __u8 padding1[2]; + __le32 rp_uid; + __le32 rp_gid; + __le64 rp_size; + __le32 time_gran; + __u8 uuid[16]; + __le32 ro_compat_version; + __u8 hmac[64]; + __u8 hmac_wkm[64]; + __le16 hash_algo; + __u8 hash_mst[64]; + __u8 padding2[3774]; +}; + +struct ubifs_wbuf { + struct ubifs_info *c; + void *buf; + int lnum; + int offs; + int avail; + int used; + int size; + int jhead; + int (*sync_callback)(struct ubifs_info *, int, int, int); + struct mutex io_mutex; + spinlock_t lock; long: 32; + struct hrtimer timer; + unsigned int no_timer: 1; + unsigned int need_sync: 1; + int next_ino; + ino_t *inodes; long: 32; +}; + +struct ubifs_jhead { + struct ubifs_wbuf wbuf; + struct list_head buds_list; + unsigned int grouped: 1; + struct shash_desc *log_hash; +}; + +struct ubifs_znode { + struct ubifs_znode *parent; + struct ubifs_znode *cnext; + struct ubifs_znode *cparent; + int ciip; + unsigned long flags; long: 32; + time64_t time; + int level; + int child_cnt; + int iip; + int alt; + int lnum; + int offs; + int len; long: 32; + struct ubifs_zbranch zbranch[0]; +}; + +struct ubifs_mst_node { + struct ubifs_ch ch; + __le64 highest_inum; + __le64 cmt_no; + __le32 flags; + __le32 log_lnum; + __le32 root_lnum; + __le32 root_offs; + __le32 root_len; + __le32 gc_lnum; + __le32 ihead_lnum; + __le32 ihead_offs; + __le64 index_size; + __le64 total_free; + __le64 total_dirty; + __le64 total_used; + __le64 total_dead; + __le64 total_dark; + __le32 lpt_lnum; + __le32 lpt_offs; + __le32 nhead_lnum; + __le32 nhead_offs; + __le32 ltab_lnum; + __le32 ltab_offs; + __le32 lsave_lnum; + __le32 lsave_offs; + __le32 lscan_lnum; + __le32 empty_lebs; + __le32 idx_lebs; + __le32 leb_cnt; + __u8 hash_root_idx[64]; + __u8 hash_lpt[64]; + __u8 hmac[64]; + __u8 padding[152]; +}; + +struct ubifs_orphan { + struct rb_node rb; + struct list_head list; + struct list_head new_list; + struct list_head child_list; + struct ubifs_orphan *cnext; + struct ubifs_orphan *dnext; + ino_t inum; + unsigned int new: 1; + unsigned int cmt: 1; + unsigned int del: 1; +}; + +struct ubifs_pnode; + +struct ubifs_nbranch { + int lnum; + int offs; + union { + struct ubifs_nnode *nnode; + struct ubifs_pnode *pnode; + struct ubifs_cnode *cnode; + }; +}; + +struct ubifs_nnode { + struct ubifs_nnode *parent; + struct ubifs_cnode *cnext; + unsigned long flags; + int iip; + int level; + int num; + struct ubifs_nbranch nbranch[4]; +}; + +struct ubifs_cnode { + struct ubifs_nnode *parent; + struct ubifs_cnode *cnext; + unsigned long flags; + int iip; + int level; + int num; +}; + +struct ubifs_lprops { + int free; + int dirty; + int flags; + int lnum; + union { + struct list_head list; + int hpos; + }; +}; + +struct ubifs_pnode { + struct ubifs_nnode *parent; + struct ubifs_cnode *cnext; + unsigned long flags; + int iip; + int level; + int num; + struct ubifs_lprops lprops[4]; +}; + +struct ubifs_lpt_lprops { + int free; + int dirty; + unsigned int tgc: 1; + unsigned int cmt: 1; +}; + +struct ubifs_debug_info { + struct ubifs_zbranch old_zroot; + int old_zroot_level; long: 32; + unsigned long long old_zroot_sqnum; + int pc_happened; + int pc_delay; + unsigned long pc_timeout; + unsigned int pc_cnt; + unsigned int pc_cnt_max; long: 32; + long long chk_lpt_sz; + long long chk_lpt_sz2; + long long chk_lpt_wastage; + int chk_lpt_lebs; + int new_nhead_offs; + int new_ihead_lnum; + int new_ihead_offs; + struct ubifs_lp_stats saved_lst; + struct ubifs_budg_info saved_bi; + long long saved_free; + int saved_idx_gc_cnt; + unsigned int chk_gen: 1; + unsigned int chk_index: 1; + unsigned int chk_orph: 1; + unsigned int chk_lprops: 1; + unsigned int chk_fs: 1; + unsigned int tst_rcvry: 1; + char dfs_dir_name[10]; + struct dentry *dfs_dir; + struct dentry *dfs_dump_lprops; + struct dentry *dfs_dump_budg; + struct dentry *dfs_dump_tnc; + struct dentry *dfs_chk_gen; + struct dentry *dfs_chk_index; + struct dentry *dfs_chk_orph; + struct dentry *dfs_chk_lprops; + struct dentry *dfs_chk_fs; + struct dentry *dfs_tst_rcvry; + struct dentry *dfs_ro_error; long: 32; +}; + +struct ubifs_stats_info { + unsigned int magic_errors; + unsigned int node_errors; + unsigned int crc_errors; +}; + +struct ubifs_unclean_leb { + struct list_head list; + int lnum; + int endpt; +}; + +struct ubifs_bud { + int lnum; + int start; + int jhead; + struct list_head list; + struct rb_node rb; + struct shash_desc *log_hash; +}; + +typedef struct { + char *from; + char *to; +} substring_t; + +struct ubifs_ino_node { + struct ubifs_ch ch; + __u8 key[16]; + __le64 creat_sqnum; + __le64 size; + __le64 atime_sec; + __le64 ctime_sec; + __le64 mtime_sec; + __le32 atime_nsec; + __le32 ctime_nsec; + __le32 mtime_nsec; + __le32 nlink; + __le32 uid; + __le32 gid; + __le32 mode; + __le32 flags; + __le32 data_len; + __le32 xattr_cnt; + __le32 xattr_size; + __u8 padding1[4]; + __le32 xattr_names; + __le16 compr_type; + __u8 padding2[26]; + __u8 data[0]; +}; + +enum pstore_type_id { + PSTORE_TYPE_DMESG = 0, + PSTORE_TYPE_MCE = 1, + PSTORE_TYPE_CONSOLE = 2, + PSTORE_TYPE_FTRACE = 3, + PSTORE_TYPE_PPC_RTAS = 4, + PSTORE_TYPE_PPC_OF = 5, + PSTORE_TYPE_PPC_COMMON = 6, + PSTORE_TYPE_PMSG = 7, + PSTORE_TYPE_PPC_OPAL = 8, + PSTORE_TYPE_MAX = 9, +}; + +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 pstore_info; + +struct pstore_record { + struct pstore_info *psi; + enum pstore_type_id type; + u64 id; + struct timespec64 time; + char *buf; + ssize_t size; + ssize_t ecc_notice_size; + void *priv; + int count; + enum kmsg_dump_reason reason; + unsigned int part; + bool compressed; +}; + +struct pstore_info { + struct module *owner; + const char *name; + spinlock_t buf_lock; + char *buf; + size_t bufsize; + struct mutex read_mutex; + int flags; + int max_reason; + void *data; + int (*open)(struct pstore_info *); + int (*close)(struct pstore_info *); + ssize_t (*read)(struct pstore_record *); + int (*write)(struct pstore_record *); + int (*write_user)(struct pstore_record *, const char __attribute__((btf_type_tag("user"))) *); + int (*erase)(struct pstore_record *); +}; + +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; long: 32; + 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; long: 32; + 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]; +}; + +enum OID { + OID_id_dsa = 0, + OID_id_ecPublicKey = 1, + OID_id_prime192v1 = 2, + OID_id_prime256v1 = 3, + OID_id_ecdsa_with_sha224 = 4, + OID_id_ecdsa_with_sha256 = 5, + OID_id_ecdsa_with_sha384 = 6, + OID_id_ecdsa_with_sha512 = 7, + OID_rsaEncryption = 8, + OID_sha256WithRSAEncryption = 9, + OID_sha384WithRSAEncryption = 10, + OID_sha512WithRSAEncryption = 11, + OID_sha224WithRSAEncryption = 12, + OID_data = 13, + OID_signed_data = 14, + OID_email_address = 15, + OID_contentType = 16, + OID_messageDigest = 17, + OID_signingTime = 18, + OID_smimeCapabilites = 19, + OID_smimeAuthenticatedAttrs = 20, + OID_mskrb5 = 21, + OID_krb5 = 22, + OID_krb5u2u = 23, + OID_msIndirectData = 24, + OID_msStatementType = 25, + OID_msSpOpusInfo = 26, + OID_msPeImageDataObjId = 27, + OID_msIndividualSPKeyPurpose = 28, + OID_msOutlookExpress = 29, + OID_ntlmssp = 30, + OID_negoex = 31, + OID_spnego = 32, + OID_IAKerb = 33, + OID_PKU2U = 34, + OID_Scram = 35, + OID_certAuthInfoAccess = 36, + OID_id_ansip384r1 = 37, + OID_sha256 = 38, + OID_sha384 = 39, + OID_sha512 = 40, + OID_sha224 = 41, + OID_commonName = 42, + OID_surname = 43, + OID_countryName = 44, + OID_locality = 45, + OID_stateOrProvinceName = 46, + OID_organizationName = 47, + OID_organizationUnitName = 48, + OID_title = 49, + OID_description = 50, + OID_name = 51, + OID_givenName = 52, + OID_initials = 53, + OID_generationalQualifier = 54, + OID_subjectKeyIdentifier = 55, + OID_keyUsage = 56, + OID_subjectAltName = 57, + OID_issuerAltName = 58, + OID_basicConstraints = 59, + OID_crlDistributionPoints = 60, + OID_certPolicies = 61, + OID_authorityKeyIdentifier = 62, + OID_extKeyUsage = 63, + OID_NetlogonMechanism = 64, + OID_appleLocalKdcSupported = 65, + OID_gostCPSignA = 66, + OID_gostCPSignB = 67, + OID_gostCPSignC = 68, + OID_gost2012PKey256 = 69, + OID_gost2012PKey512 = 70, + OID_gost2012Digest256 = 71, + OID_gost2012Digest512 = 72, + OID_gost2012Signature256 = 73, + OID_gost2012Signature512 = 74, + OID_gostTC26Sign256A = 75, + OID_gostTC26Sign256B = 76, + OID_gostTC26Sign256C = 77, + OID_gostTC26Sign256D = 78, + OID_gostTC26Sign512A = 79, + OID_gostTC26Sign512B = 80, + OID_gostTC26Sign512C = 81, + OID_sm2 = 82, + OID_sm3 = 83, + OID_SM2_with_SM3 = 84, + OID_sm3WithRSAEncryption = 85, + OID_TPMLoadableKey = 86, + OID_TPMImportableKey = 87, + OID_TPMSealedData = 88, + OID_sha3_256 = 89, + OID_sha3_384 = 90, + OID_sha3_512 = 91, + OID_id_ecdsa_with_sha3_256 = 92, + OID_id_ecdsa_with_sha3_384 = 93, + OID_id_ecdsa_with_sha3_512 = 94, + OID_id_rsassa_pkcs1_v1_5_with_sha3_256 = 95, + OID_id_rsassa_pkcs1_v1_5_with_sha3_384 = 96, + OID_id_rsassa_pkcs1_v1_5_with_sha3_512 = 97, + OID__NR = 98, +}; + +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 hash_alg_common { + unsigned int digestsize; + unsigned int statesize; long: 32; long: 32; long: 32; @@ -14382,21 +22466,319 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; + struct crypto_alg base; +}; + +struct shash_alg { + int (*init)(struct shash_desc *); + int (*update)(struct shash_desc *, const u8 *, unsigned int); + int (*final)(struct shash_desc *, u8 *); + int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*export)(struct shash_desc *, void *); + int (*import)(struct shash_desc *, const void *); + int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_shash *); + void (*exit_tfm)(struct crypto_shash *); + int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *); + unsigned int descsize; long: 32; long: 32; long: 32; long: 32; + union { + struct { + unsigned int digestsize; + unsigned int statesize; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct crypto_alg base; + }; + struct hash_alg_common halg; + }; +}; + +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; long: 32; +}; + +struct public_key { + void *key; + u32 keylen; + enum OID algo; + void *params; + u32 paramlen; + bool key_is_private; + const char *id_type; + const char *pkey_algo; + unsigned long key_eflags; +}; + +struct public_key_signature { + struct asymmetric_key_id *auth_ids[3]; + u8 *s; + u8 *digest; + u32 s_size; + u32 digest_size; + const char *pkey_algo; + const char *hash_algo; + const char *encoding; +}; + +struct asymmetric_key_id { + unsigned short len; + unsigned char data[0]; +}; + +struct 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; long: 32; + time64_t signing_time; + struct public_key_signature *sig; long: 32; +}; + +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, +}; + +enum iter_type { + ITER_UBUF = 0, + ITER_IOVEC = 1, + ITER_BVEC = 2, + ITER_KVEC = 3, + ITER_XARRAY = 4, + ITER_DISCARD = 5, +}; + +enum { + BIO_PAGE_PINNED = 0, + BIO_CLONED = 1, + BIO_BOUNCED = 2, + BIO_QUIET = 3, + BIO_CHAIN = 4, + BIO_REFFED = 5, + BIO_BPS_THROTTLED = 6, + BIO_TRACE_COMPLETION = 7, + BIO_CGROUP_ACCT = 8, + BIO_QOS_THROTTLED = 9, + BIO_QOS_MERGED = 10, + BIO_REMAPPED = 11, + BIO_ZONE_WRITE_LOCKED = 12, + BIO_FLAG_LAST = 13, +}; + +typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t); + +typedef __u32 req_flags_t; + +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; long: 32; + sector_t __sector; + struct bio *bio; + struct bio *biotail; + union { + struct list_head queuelist; + struct request *rq_next; + }; + struct block_device *part; long: 32; + 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; + }; + struct { + struct io_cq *icq; + void *priv[2]; + } elv; + struct { + unsigned int seq; + rq_end_io_fn *saved_end_io; + } flush; long: 32; + u64 fifo_time; + rq_end_io_fn *end_io; + void *end_io_data; +}; + +struct sbitmap_word; + +struct sbitmap { + unsigned int depth; + unsigned int shift; + unsigned int map_nr; + bool round_robin; + struct sbitmap_word *map; + unsigned int __attribute__((btf_type_tag("percpu"))) *alloc_hint; +}; + +struct blk_mq_hw_ctx { + struct { + spinlock_t lock; + struct list_head dispatch; + unsigned long state; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + }; + 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 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: 32; long: 32; long: 32; long: 32; long: 32; +}; + +struct blk_flush_queue { + spinlock_t mq_flush_lock; + unsigned int flush_pending_idx: 1; + unsigned int flush_running_idx: 1; + blk_status_t rq_status; + unsigned long flush_pending_since; + struct list_head flush_queue[2]; + unsigned long flush_data_in_flight; + struct request *flush_rq; +}; + +struct sbitmap_word { + unsigned long word; long: 32; long: 32; long: 32; @@ -14412,6 +22794,7 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; + unsigned long cleared; long: 32; long: 32; long: 32; @@ -14427,6 +22810,35 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; +}; + +struct sbq_wait_state; + +struct sbitmap_queue { + struct sbitmap sb; + unsigned int wake_batch; + atomic_t wake_index; + struct sbq_wait_state *ws; + atomic_t ws_active; + unsigned int min_shallow_depth; + atomic_t completion_cnt; + atomic_t wakeup_cnt; +}; + +struct blk_mq_tags { + unsigned int nr_tags; + unsigned int nr_reserved_tags; + unsigned int active_queues; + struct sbitmap_queue bitmap_tags; + struct sbitmap_queue breserved_tags; + struct request **rqs; + struct request **static_rqs; + struct list_head page_list; + spinlock_t lock; +}; + +struct sbq_wait_state { + wait_queue_head_t wait; long: 32; long: 32; long: 32; @@ -14440,8 +22852,119 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; +}; + +struct blk_mq_queue_data { + struct request *rq; + bool last; +}; + +struct blk_mq_queue_map { + unsigned int *mq_map; + unsigned int nr_queues; + unsigned int queue_offset; +}; + +struct blk_mq_tag_set { + const struct blk_mq_ops *ops; + struct blk_mq_queue_map map[3]; + unsigned int nr_maps; + unsigned int nr_hw_queues; + unsigned int queue_depth; + unsigned int reserved_tags; + unsigned int cmd_size; + int numa_node; + unsigned int timeout; + unsigned int flags; + void *driver_data; + struct blk_mq_tags **tags; + struct blk_mq_tags *shared_tags; + struct mutex tag_list_lock; + struct list_head tag_list; + struct srcu_struct *srcu; +}; + +typedef unsigned int iov_iter_extraction_t; + +struct rq_map_data { + struct page **pages; + unsigned long offset; + unsigned short page_order; + unsigned short nr_entries; + bool null_mapped; + bool from_user; +}; + +struct bio_map_data { + bool is_our_pages: 1; + bool is_null_mapped: 1; long: 32; + struct iov_iter iter; + struct iovec iov[0]; +}; + +struct bvec_iter_all { + struct bio_vec bv; + int idx; + unsigned int done; +}; + +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_MEDIA_CHANGE = 1, + DISK_EVENT_EJECT_REQUEST = 2, +}; + +enum { + DISK_EVENT_FLAG_POLL = 1, + DISK_EVENT_FLAG_UEVENT = 2, + DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, +}; + +enum kobject_action { + KOBJ_ADD = 0, + KOBJ_REMOVE = 1, + KOBJ_CHANGE = 2, + KOBJ_MOVE = 3, + KOBJ_ONLINE = 4, + KOBJ_OFFLINE = 5, + KOBJ_BIND = 6, + KOBJ_UNBIND = 7, +}; + +enum task_work_notify_mode { + TWA_NONE = 0, + TWA_RESUME = 1, + TWA_SIGNAL = 2, + TWA_SIGNAL_NO_IPI = 3, +}; + +struct io_ring_ctx; + +struct io_wq; + +struct io_uring_task { + int cached_refs; + const struct io_ring_ctx *last; + struct io_wq *io_wq; + struct file *registered_rings[16]; + struct xarray xa; + struct wait_queue_head wait; + atomic_t in_cancel; + atomic_t inflight_tracked; long: 32; + struct percpu_counter inflight; long: 32; long: 32; long: 32; @@ -14454,20 +22977,477 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; + struct { + struct llist_head task_list; + struct callback_head task_work; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + }; +}; + +struct io_fixed_file; + +struct io_file_table { + struct io_fixed_file *files; + unsigned long *bitmap; + unsigned int alloc_hint; +}; + +struct io_wq_work_node { + struct io_wq_work_node *next; +}; + +struct io_wq_work_list { + struct io_wq_work_node *first; + struct io_wq_work_node *last; +}; + +struct io_kiocb; + +struct io_submit_link { + struct io_kiocb *head; + struct io_kiocb *last; +}; + +struct io_submit_state { + struct io_wq_work_node free_list; + struct io_wq_work_list compl_reqs; + struct io_submit_link link; + bool plug_started; + bool need_plug; + unsigned short submit_nr; + unsigned int cqes_count; + struct blk_plug plug; +}; + +struct io_hash_bucket; + +struct io_hash_table { + struct io_hash_bucket *hbs; + unsigned int hash_bits; +}; + +struct io_alloc_cache { + struct io_wq_work_node list; + unsigned int nr_cached; + unsigned int max_cached; + size_t elem_size; +}; + +struct io_uring_cqe { + __u64 user_data; + __s32 res; + __u32 flags; + __u64 big_cqe[0]; +}; + +struct io_restriction { + unsigned long register_op[1]; + unsigned long sqe_op[2]; + u8 sqe_flags_allowed; + u8 sqe_flags_required; + bool registered; +}; + +struct io_rings; + +struct io_uring_sqe; + +struct io_rsrc_node; + +struct io_mapped_ubuf; + +struct io_buffer_list; + +struct io_ev_fd; + +struct io_sq_data; + +struct io_rsrc_data; + +struct io_wq_hash; + +struct io_ring_ctx { + struct { + unsigned int flags; + unsigned int drain_next: 1; + unsigned int restricted: 1; + unsigned int off_timeout_used: 1; + unsigned int drain_active: 1; + unsigned int has_evfd: 1; + unsigned int task_complete: 1; + unsigned int lockless_cq: 1; + unsigned int syscall_iopoll: 1; + unsigned int poll_activated: 1; + unsigned int drain_disabled: 1; + unsigned int compat: 1; + struct task_struct *submitter_task; + struct io_rings *rings; + struct percpu_ref refs; + enum task_work_notify_mode notify_method; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + }; + struct { + struct mutex uring_lock; + u32 *sq_array; + struct io_uring_sqe *sq_sqes; + unsigned int cached_sq_head; + unsigned int sq_entries; + struct io_rsrc_node *rsrc_node; + atomic_t cancel_seq; + 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 io_hash_table cancel_table_locked; + struct io_alloc_cache apoll_cache; + struct io_alloc_cache netmsg_cache; + struct io_wq_work_list iopoll_list; + bool poll_multi_queue; + struct hlist_head cancelable_uring_cmd; + }; + struct { + struct io_uring_cqe *cqe_cached; + struct io_uring_cqe *cqe_sentinel; + unsigned int cached_cq_tail; + unsigned int cq_entries; + struct io_ev_fd __attribute__((btf_type_tag("rcu"))) *io_ev_fd; + unsigned int cq_extra; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + }; + struct { + struct llist_head work_llist; + unsigned long check_cq; + atomic_t cq_wait_nr; + atomic_t cq_timeouts; + struct wait_queue_head cq_wait; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + }; + struct { + spinlock_t timeout_lock; + struct list_head timeout_list; + struct list_head ltimeout_list; + unsigned int cq_last_tm_flush; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + }; + struct io_uring_cqe completion_cqes[16]; + spinlock_t completion_lock; + struct io_wq_work_list locked_free_list; + unsigned int locked_free_nr; + struct list_head io_buffers_comp; + struct list_head cq_overflow_list; + struct io_hash_table cancel_table; + struct hlist_head waitid_list; + struct hlist_head futex_list; + struct io_alloc_cache futex_cache; + const struct cred *sq_creds; + struct io_sq_data *sq_data; + struct wait_queue_head sqo_sq_wait; + struct list_head sqd_list; + unsigned int file_alloc_start; + unsigned int file_alloc_end; + struct xarray personalities; + u32 pers_next; + struct list_head io_buffers_cache; + struct hlist_head io_buf_list; + struct wait_queue_head poll_wq; + struct io_restriction restrictions; + struct io_mapped_ubuf *dummy_ubuf; + struct io_rsrc_data *file_data; + struct io_rsrc_data *buf_data; + struct list_head rsrc_ref_list; + struct io_alloc_cache rsrc_node_cache; + struct wait_queue_head rsrc_quiesce_wq; + unsigned int rsrc_quiesce; + 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; + unsigned short n_ring_pages; + unsigned short n_sqe_pages; + struct page **ring_pages; + struct page **sqe_pages; long: 32; long: 32; long: 32; long: 32; long: 32; long: 32; +}; + +struct io_uring { + u32 head; + u32 tail; +}; + +struct io_rings { + struct io_uring sq; + struct io_uring cq; + u32 sq_ring_mask; + u32 cq_ring_mask; + u32 sq_ring_entries; + u32 cq_ring_entries; + u32 sq_dropped; + atomic_t sq_flags; + u32 cq_flags; + u32 cq_overflow; long: 32; long: 32; long: 32; long: 32; + struct io_uring_cqe cqes[0]; +}; + +typedef int __kernel_rwf_t; + +struct io_uring_sqe { + __u8 opcode; + __u8 flags; + __u16 ioprio; + __s32 fd; + union { + __u64 off; + __u64 addr2; + struct { + __u32 cmd_op; + __u32 __pad1; + }; + }; + union { + __u64 addr; + __u64 splice_off_in; + struct { + __u32 level; + __u32 optname; + }; + }; + __u32 len; + union { + __kernel_rwf_t rw_flags; + __u32 fsync_flags; + __u16 poll_events; + __u32 poll32_events; + __u32 sync_range_flags; + __u32 msg_flags; + __u32 timeout_flags; + __u32 accept_flags; + __u32 cancel_flags; + __u32 open_flags; + __u32 statx_flags; + __u32 fadvise_advice; + __u32 splice_flags; + __u32 rename_flags; + __u32 unlink_flags; + __u32 hardlink_flags; + __u32 xattr_flags; + __u32 msg_ring_flags; + __u32 uring_cmd_flags; + __u32 waitid_flags; + __u32 futex_flags; + }; + __u64 user_data; + union { + __u16 buf_index; + __u16 buf_group; + }; + __u16 personality; + union { + __s32 splice_fd_in; + __u32 file_index; + __u32 optlen; + struct { + __u16 addr_len; + __u16 __pad3[1]; + }; + }; + union { + struct { + __u64 addr3; + __u64 __pad2[1]; + }; + __u64 optval; + __u8 cmd[0]; + }; +}; + +struct io_cache_entry { + struct io_wq_work_node node; +}; + +struct io_rsrc_put { + u64 tag; + union { + void *rsrc; + struct file *file; + struct io_mapped_ubuf *buf; + }; long: 32; +}; + +struct io_rsrc_node { + union { + struct io_cache_entry cache; + struct io_ring_ctx *ctx; + }; + int refs; + bool empty; + u16 type; + struct list_head node; long: 32; + struct io_rsrc_put item; +}; + +struct io_mapped_ubuf { + u64 ubuf; + u64 ubuf_end; + unsigned int nr_bvecs; + unsigned long acct_pages; + struct bio_vec bvec[0]; +}; + +struct io_fixed_file { + unsigned long file_ptr; +}; + +struct io_cmd_data { + struct file *file; + __u8 data[56]; +}; + +struct io_cqe { + __u64 user_data; + __s32 res; + union { + __u32 flags; + int fd; + }; +}; + +struct io_tw_state; + +typedef void (*io_req_tw_func_t)(struct io_kiocb *, struct io_tw_state *); + +struct io_task_work { + struct llist_node node; + io_req_tw_func_t func; +}; + +struct io_wq_work { + struct io_wq_work_node list; + unsigned int flags; + int cancel_seq; +}; + +struct io_buffer; + +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; long: 32; + 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; + unsigned int nr_tw; + struct hlist_node hash_node; + struct async_poll *apoll; + void *async_data; + struct io_kiocb *link; + const struct cred *creds; + struct io_wq_work work; long: 32; + struct { + u64 extra1; + u64 extra2; + } big_cqe; +}; + +struct io_tw_state { + bool locked; +}; + +struct io_hash_bucket { + spinlock_t lock; + struct hlist_head list; long: 32; long: 32; long: 32; @@ -14482,9181 +23462,9130 @@ struct bpf_ringbuf { long: 32; long: 32; long: 32; +}; + +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_rsrc_data { + struct io_ring_ctx *ctx; + u64 **tags; + unsigned int nr; + u16 rsrc_type; + bool quiesce; +}; + +struct io_wq_hash { + refcount_t refs; + unsigned long map; + struct wait_queue_head wait; +}; + +struct io_uring_cmd { + struct file *file; + const struct io_uring_sqe *sqe; + union { + void (*task_work_cb)(struct io_uring_cmd *, unsigned int); + void *cookie; + }; + u32 cmd_op; + u32 flags; + u8 pdu[32]; +}; + +enum { + IOU_F_TWQ_LAZY_WAKE = 1, +}; + +enum io_uring_cmd_flags { + IO_URING_F_COMPLETE_DEFER = 1, + IO_URING_F_UNLOCKED = 2, + IO_URING_F_MULTISHOT = 4, + IO_URING_F_IOWQ = 8, + IO_URING_F_NONBLOCK = -2147483648, + IO_URING_F_SQE128 = 256, + IO_URING_F_CQE32 = 512, + IO_URING_F_IOPOLL = 1024, + IO_URING_F_CANCEL = 2048, + IO_URING_F_COMPAT = 4096, +}; + +enum { + IOU_OK = 0, + IOU_ISSUE_SKIP_COMPLETE = -529, + IOU_STOP_MULTISHOT = -125, +}; + +enum { + SOCKET_URING_OP_SIOCINQ = 0, + SOCKET_URING_OP_SIOCOUTQ = 1, + SOCKET_URING_OP_GETSOCKOPT = 2, + SOCKET_URING_OP_SETSOCKOPT = 3, +}; + +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 = 536870912, + REQ_F_ISREG = 1073741824, + 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 = 67108864, + REQ_F_CLEAR_POLLIN = 134217728, + REQ_F_HASH_LOCKED = 268435456, + REQ_F_POLL_NO_LAZY = 2147483648, +}; + +typedef struct { + __u8 b[16]; +} guid_t; + +struct static_key_true; + +struct once_work { + struct work_struct work; + struct static_key_true *key; + struct module *module; +}; + +struct static_key_true { + struct static_key key; +}; + +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 uint32_t U32; + +typedef uint8_t U8; + +typedef u16 uint16_t; + +typedef uint16_t U16; + +typedef uint8_t BYTE; + +typedef struct { + U16 nextState; + BYTE nbAdditionalBits; + BYTE nbBits; + U32 baseValue; +} ZSTD_seqSymbol; + +typedef U32 HUF_DTable; + +typedef struct { + ZSTD_seqSymbol LLTable[513]; + ZSTD_seqSymbol OFTable[257]; + ZSTD_seqSymbol MLTable[513]; + HUF_DTable hufTable[4097]; + U32 rep[3]; + U32 workspace[157]; +} ZSTD_entropyDTables_t; + +typedef enum { + ZSTD_frame = 0, + ZSTD_skippableFrame = 1, +} ZSTD_frameType_e; + +typedef struct { + unsigned long long frameContentSize; + unsigned long long windowSize; + unsigned int blockSizeMax; + ZSTD_frameType_e frameType; + unsigned int headerSize; + unsigned int dictID; + unsigned int checksumFlag; long: 32; +} ZSTD_frameHeader; + +typedef uint64_t U64; + +typedef enum { + bt_raw = 0, + bt_rle = 1, + bt_compressed = 2, + bt_reserved = 3, +} blockType_e; + +typedef enum { + ZSTDds_getFrameHeaderSize = 0, + ZSTDds_decodeFrameHeader = 1, + ZSTDds_decodeBlockHeader = 2, + ZSTDds_decompressBlock = 3, + ZSTDds_decompressLastBlock = 4, + ZSTDds_checkChecksum = 5, + ZSTDds_decodeSkippableHeader = 6, + ZSTDds_skipFrame = 7, +} ZSTD_dStage; + +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; long: 32; +}; + +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 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; + +struct ZSTD_outBuffer_s { + void *dst; + size_t size; + size_t pos; +}; + +typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; + +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; + 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; long: 32; +}; + +typedef struct ZSTD_DCtx_s ZSTD_DCtx; + +struct ZSTD_DDict_s { + void *dictBuffer; + const void *dictContent; + size_t dictSize; + ZSTD_entropyDTables_t entropy; + U32 dictID; + U32 entropyPresent; + ZSTD_customMem cMem; +}; + +typedef struct { + size_t compressedSize; long: 32; + unsigned long long decompressedBound; +} ZSTD_frameSizeInfo; + +typedef struct { + blockType_e blockType; + U32 lastBlock; + U32 origSize; +} blockProperties_t; + +typedef enum { + ZSTD_error_no_error = 0, + ZSTD_error_GENERIC = 1, + ZSTD_error_prefix_unknown = 10, + ZSTD_error_version_unsupported = 12, + ZSTD_error_frameParameter_unsupported = 14, + ZSTD_error_frameParameter_windowTooLarge = 16, + ZSTD_error_corruption_detected = 20, + ZSTD_error_checksum_wrong = 22, + ZSTD_error_dictionary_corrupted = 30, + ZSTD_error_dictionary_wrong = 32, + ZSTD_error_dictionaryCreation_failed = 34, + ZSTD_error_parameter_unsupported = 40, + ZSTD_error_parameter_outOfBound = 42, + ZSTD_error_tableLog_tooLarge = 44, + ZSTD_error_maxSymbolValue_tooLarge = 46, + ZSTD_error_maxSymbolValue_tooSmall = 48, + ZSTD_error_stage_wrong = 60, + ZSTD_error_init_missing = 62, + ZSTD_error_memory_allocation = 64, + ZSTD_error_workSpace_tooSmall = 66, + ZSTD_error_dstSize_tooSmall = 70, + ZSTD_error_srcSize_wrong = 72, + ZSTD_error_dstBuffer_null = 74, + ZSTD_error_frameIndex_tooLarge = 100, + ZSTD_error_seekableIO = 102, + ZSTD_error_dstBuffer_wrong = 104, + ZSTD_error_srcBuffer_wrong = 105, + ZSTD_error_maxCode = 120, +} ZSTD_ErrorCode; + +typedef enum { + not_streaming = 0, + is_streaming = 1, +} streaming_operation; + +typedef enum { + ZSTD_dlm_byCopy = 0, + ZSTD_dlm_byRef = 1, +} ZSTD_dictLoadMethod_e; + +typedef enum { + ZSTD_dct_auto = 0, + ZSTD_dct_rawContent = 1, + ZSTD_dct_fullDict = 2, +} ZSTD_dictContentType_e; + +typedef enum { + ZSTD_reset_session_only = 1, + ZSTD_reset_parameters = 2, + ZSTD_reset_session_and_parameters = 3, +} ZSTD_ResetDirective; + +typedef ZSTD_DCtx ZSTD_DStream; + +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 ZSTD_inBuffer_s { + const void *src; + size_t size; + size_t pos; +}; + +typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; + +struct hip04_irq_data { + void *dist_base; + void *cpu_base; + struct irq_domain *domain; + unsigned int nr_irqs; +}; + +enum { + IRQ_SET_MASK_OK = 0, + IRQ_SET_MASK_OK_NOCOPY = 1, + IRQ_SET_MASK_OK_DONE = 2, +}; + +struct syscore_ops { + struct list_head node; + int (*suspend)(); + void (*resume)(); + void (*shutdown)(); +}; + +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 phy_ops; + +struct mvebu_a3700_utmi_caps { + int usb32; + const struct phy_ops *ops; +}; + +enum phy_mode { + PHY_MODE_INVALID = 0, + PHY_MODE_USB_HOST = 1, + PHY_MODE_USB_HOST_LS = 2, + PHY_MODE_USB_HOST_FS = 3, + PHY_MODE_USB_HOST_HS = 4, + PHY_MODE_USB_HOST_SS = 5, + PHY_MODE_USB_DEVICE = 6, + PHY_MODE_USB_DEVICE_LS = 7, + PHY_MODE_USB_DEVICE_FS = 8, + PHY_MODE_USB_DEVICE_HS = 9, + PHY_MODE_USB_DEVICE_SS = 10, + PHY_MODE_USB_OTG = 11, + PHY_MODE_UFS_HS_A = 12, + PHY_MODE_UFS_HS_B = 13, + PHY_MODE_PCIE = 14, + PHY_MODE_ETHERNET = 15, + PHY_MODE_MIPI_DPHY = 16, + PHY_MODE_SATA = 17, + PHY_MODE_LVDS = 18, + PHY_MODE_DP = 19, +}; + +enum phy_media { + PHY_MEDIA_DEFAULT = 0, + PHY_MEDIA_SR = 1, + PHY_MEDIA_DAC = 2, +}; + +struct phy; + +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_attrs { + u32 bus_width; + u32 max_link_rate; + enum phy_mode mode; +}; + +struct regulator; + +struct phy { + struct device dev; + int id; + const struct phy_ops *ops; + struct mutex mutex; + int init_count; + int power_count; + struct phy_attrs attrs; + struct regulator *pwr; + struct dentry *debugfs; +}; + +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 phy_provider { + struct device *dev; + struct device_node *children; + struct module *owner; + struct list_head list; + struct phy * (*of_xlate)(struct device *, struct of_phandle_args *); +}; + +struct of_phandle_args { + struct device_node *np; + int args_count; + uint32_t args[16]; +}; + +struct regmap; + +struct mvebu_a3700_utmi { + void *regs; + struct regmap *usb_misc; + const struct mvebu_a3700_utmi_caps *caps; + struct phy *phy; +}; + +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, +}; + +enum { + RADIX_TREE_ITER_TAG_MASK = 15, + RADIX_TREE_ITER_TAGGED = 16, + RADIX_TREE_ITER_CONTIG = 32, +}; + +struct pinctrl_dev; + +struct pinctrl_setting_mux; + +struct pin_desc { + struct pinctrl_dev *pctldev; + const char *name; + bool dynamic_name; + void *drv_data; + unsigned int mux_usecount; + const char *mux_owner; + const struct pinctrl_setting_mux *mux_setting; + const char *gpio_owner; +}; + +struct pinctrl_desc; + +struct pinctrl; + +struct pinctrl_state; + +struct pinctrl_dev { + struct list_head node; + struct pinctrl_desc *desc; + struct xarray pin_desc_tree; + struct xarray pin_group_tree; + unsigned int num_groups; + struct xarray pin_function_tree; + unsigned int num_functions; + struct list_head gpio_ranges; + struct device *dev; + struct module *owner; + void *driver_data; + struct pinctrl *p; + struct pinctrl_state *hog_default; + struct pinctrl_state *hog_sleep; + struct mutex mutex; + struct dentry *device_root; +}; + +struct pinctrl_pin_desc; + +struct pinctrl_ops; + +struct pinmux_ops; + +struct pinconf_ops; + +struct pinconf_generic_params; + +struct pin_config_item; + +struct pinctrl_desc { + const char *name; + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct pinctrl_ops *pctlops; + const struct pinmux_ops *pmxops; + const struct pinconf_ops *confops; + struct module *owner; + unsigned int num_custom_params; + const struct pinconf_generic_params *custom_params; + const struct pin_config_item *custom_conf_items; + bool link_consumers; +}; + +struct pinctrl_pin_desc { + unsigned int number; + const char *name; + void *drv_data; +}; + +struct pinctrl_map; + +struct pinctrl_ops { + int (*get_groups_count)(struct pinctrl_dev *); + const char * (*get_group_name)(struct pinctrl_dev *, unsigned int); + int (*get_group_pins)(struct pinctrl_dev *, unsigned int, const unsigned int **, unsigned int *); + void (*pin_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + int (*dt_node_to_map)(struct pinctrl_dev *, struct device_node *, struct pinctrl_map **, unsigned int *); + void (*dt_free_map)(struct pinctrl_dev *, struct pinctrl_map *, unsigned int); +}; + +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; +}; + +struct pinctrl_gpio_range; + +struct pinmux_ops { + int (*request)(struct pinctrl_dev *, unsigned int); + int (*free)(struct pinctrl_dev *, unsigned int); + int (*get_functions_count)(struct pinctrl_dev *); + const char * (*get_function_name)(struct pinctrl_dev *, unsigned int); + int (*get_function_groups)(struct pinctrl_dev *, unsigned int, const char * const **, unsigned int *); + int (*set_mux)(struct pinctrl_dev *, unsigned int, unsigned int); + int (*gpio_request_enable)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); + void (*gpio_disable_free)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); + int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); + bool strict; +}; + +struct gpio_chip; + +struct pinctrl_gpio_range { + struct list_head node; + const char *name; + unsigned int id; + unsigned int base; + unsigned int pin_base; + unsigned int npins; + const unsigned int *pins; + struct gpio_chip *gc; +}; + +struct pinconf_ops { + bool is_generic; + int (*pin_config_get)(struct pinctrl_dev *, unsigned int, unsigned long *); + int (*pin_config_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); + int (*pin_config_group_get)(struct pinctrl_dev *, unsigned int, unsigned long *); + int (*pin_config_group_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); + void (*pin_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + void (*pin_config_group_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + void (*pin_config_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned long); +}; + +enum pin_config_param { + PIN_CONFIG_BIAS_BUS_HOLD = 0, + PIN_CONFIG_BIAS_DISABLE = 1, + PIN_CONFIG_BIAS_HIGH_IMPEDANCE = 2, + PIN_CONFIG_BIAS_PULL_DOWN = 3, + PIN_CONFIG_BIAS_PULL_PIN_DEFAULT = 4, + PIN_CONFIG_BIAS_PULL_UP = 5, + PIN_CONFIG_DRIVE_OPEN_DRAIN = 6, + PIN_CONFIG_DRIVE_OPEN_SOURCE = 7, + PIN_CONFIG_DRIVE_PUSH_PULL = 8, + PIN_CONFIG_DRIVE_STRENGTH = 9, + PIN_CONFIG_DRIVE_STRENGTH_UA = 10, + PIN_CONFIG_INPUT_DEBOUNCE = 11, + PIN_CONFIG_INPUT_ENABLE = 12, + PIN_CONFIG_INPUT_SCHMITT = 13, + PIN_CONFIG_INPUT_SCHMITT_ENABLE = 14, + PIN_CONFIG_MODE_LOW_POWER = 15, + PIN_CONFIG_MODE_PWM = 16, + PIN_CONFIG_OUTPUT = 17, + PIN_CONFIG_OUTPUT_ENABLE = 18, + PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS = 19, + PIN_CONFIG_PERSIST_STATE = 20, + PIN_CONFIG_POWER_SOURCE = 21, + PIN_CONFIG_SKEW_DELAY = 22, + PIN_CONFIG_SLEEP_HARDWARE_STATE = 23, + PIN_CONFIG_SLEW_RATE = 24, + PIN_CONFIG_END = 127, + PIN_CONFIG_MAX = 255, +}; + +struct pinconf_generic_params { + const char * const property; + enum pin_config_param param; + u32 default_value; +}; + +struct pin_config_item { + const enum pin_config_param param; + const char * const display; + const char * const format; + bool has_arg; +}; + +struct pinctrl { + struct list_head node; + struct device *dev; + struct list_head states; + struct pinctrl_state *state; + struct list_head dt_maps; + struct kref users; +}; + +struct pinctrl_state { + struct list_head node; + const char *name; + struct list_head settings; +}; + +struct pinctrl_setting_mux { + unsigned int group; + unsigned int func; +}; + +struct radix_tree_iter { + unsigned long index; + unsigned long next_index; + unsigned long tags; + struct xa_node *node; +}; + +struct function_desc { + const char *name; + const char * const *group_names; + int num_group_names; + void *data; +}; + +struct pinctrl_setting_configs { + unsigned int group_or_pin; + unsigned long *configs; + unsigned int num_configs; +}; + +struct pinctrl_setting { + struct list_head node; + enum pinctrl_map_type type; + struct pinctrl_dev *pctldev; + const char *dev_name; + union { + struct pinctrl_setting_mux mux; + struct pinctrl_setting_configs configs; + } data; +}; + +struct cygnus_gpio_mux { + int is_supported; + unsigned int offset; + unsigned int shift; +}; + +struct cygnus_pin { + unsigned int pin; + char *name; + struct cygnus_gpio_mux gpio_mux; +}; + +struct cygnus_mux { + unsigned int offset; + unsigned int shift; + unsigned int alt; +}; + +struct cygnus_pin_group { + const char *name; + const unsigned int *pins; + unsigned int num_pins; + struct cygnus_mux mux; +}; + +struct cygnus_pin_function { + const char *name; + const char * const *groups; + unsigned int num_groups; +}; + +struct cygnus_mux_log; + +struct cygnus_pinctrl { + struct pinctrl_dev *pctl; + struct device *dev; + void *base0; + void *base1; + const struct cygnus_pin_group *groups; + unsigned int num_groups; + const struct cygnus_pin_function *functions; + unsigned int num_functions; + struct cygnus_mux_log *mux_log; + spinlock_t lock; +}; + +struct cygnus_mux_log { + struct cygnus_mux mux; + bool is_configured; +}; + +enum sunxi_desc_bias_voltage { + BIAS_VOLTAGE_NONE = 0, + BIAS_VOLTAGE_GRP_CONFIG = 1, + BIAS_VOLTAGE_PIO_POW_MODE_SEL = 2, + BIAS_VOLTAGE_PIO_POW_MODE_CTL = 3, +}; + +struct sunxi_desc_pin; + +struct sunxi_pinctrl_desc { + const struct sunxi_desc_pin *pins; + int npins; + unsigned int pin_base; + unsigned int irq_banks; + const unsigned int *irq_bank_map; + bool irq_read_needs_mux; + bool disable_strict_mode; + enum sunxi_desc_bias_voltage io_bias_cfg_variant; +}; + +struct sunxi_desc_function; + +struct sunxi_desc_pin { + struct pinctrl_pin_desc pin; + unsigned long variant; + struct sunxi_desc_function *functions; +}; + +struct sunxi_desc_function { + unsigned long variant; + const char *name; + u8 muxval; + u8 irqbank; + u8 irqnum; +}; + +struct uniphier_pinctrl_group; + +struct uniphier_pinmux_function; + +struct uniphier_pinctrl_socdata { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct uniphier_pinctrl_group *groups; + int groups_count; + const struct uniphier_pinmux_function *functions; + int functions_count; + int (*get_gpio_muxval)(unsigned int, unsigned int); + unsigned int caps; +}; + +struct uniphier_pinctrl_group { + const char *name; + const unsigned int *pins; + unsigned int num_pins; + const int *muxvals; +}; + +struct uniphier_pinmux_function { + const char *name; + const char * const *groups; + unsigned int num_groups; +}; + +union gpio_irq_fwspec; + +struct gpio_irq_chip { + struct irq_chip *chip; + struct irq_domain *domain; + struct fwnode_handle *fwnode; + struct irq_domain *parent_domain; + int (*child_to_parent_hwirq)(struct gpio_chip *, unsigned int, unsigned int, unsigned int *, unsigned int *); + int (*populate_parent_alloc_arg)(struct gpio_chip *, union gpio_irq_fwspec *, unsigned int, unsigned int); + unsigned int (*child_offset_to_irq)(struct gpio_chip *, unsigned int); + struct irq_domain_ops child_irq_domain_ops; + irq_flow_handler_t handler; + unsigned int default_type; + struct lock_class_key *lock_key; + struct lock_class_key *request_key; + irq_flow_handler_t parent_handler; + union { + void *parent_handler_data; + void **parent_handler_data_array; + }; + unsigned int num_parents; + unsigned int *parents; + unsigned int *map; + bool threaded; + bool per_parent_data; + bool initialized; + bool domain_is_allocated_externally; + int (*init_hw)(struct gpio_chip *); + void (*init_valid_mask)(struct gpio_chip *, unsigned long *, unsigned int); + unsigned long *valid_mask; + unsigned int first; + void (*irq_enable)(struct irq_data *); + void (*irq_disable)(struct irq_data *); + void (*irq_unmask)(struct irq_data *); + void (*irq_mask)(struct irq_data *); +}; + +struct gpio_device; + +struct gpio_chip { + const char *label; + struct gpio_device *gpiodev; + struct device *parent; + struct fwnode_handle *fwnode; + struct module *owner; + int (*request)(struct gpio_chip *, unsigned int); + void (*free)(struct gpio_chip *, unsigned int); + int (*get_direction)(struct gpio_chip *, unsigned int); + int (*direction_input)(struct gpio_chip *, unsigned int); + int (*direction_output)(struct gpio_chip *, unsigned int, int); + int (*get)(struct gpio_chip *, unsigned int); + int (*get_multiple)(struct gpio_chip *, unsigned long *, unsigned long *); + void (*set)(struct gpio_chip *, unsigned int, int); + void (*set_multiple)(struct gpio_chip *, unsigned long *, unsigned long *); + int (*set_config)(struct gpio_chip *, unsigned int, unsigned long); + int (*to_irq)(struct gpio_chip *, unsigned int); + void (*dbg_show)(struct seq_file *, struct gpio_chip *); + int (*init_valid_mask)(struct gpio_chip *, unsigned long *, unsigned int); + int (*add_pin_ranges)(struct gpio_chip *); + int (*en_hw_timestamp)(struct gpio_chip *, u32, unsigned long); + int (*dis_hw_timestamp)(struct gpio_chip *, u32, unsigned long); + int base; + u16 ngpio; + u16 offset; + const char * const *names; + bool can_sleep; + unsigned long (*read_reg)(void *); + void (*write_reg)(void *, unsigned long); + bool be_bits; + void *reg_dat; + void *reg_set; + void *reg_clr; + void *reg_dir_out; + void *reg_dir_in; + bool bgpio_dir_unreadable; + int bgpio_bits; + raw_spinlock_t bgpio_lock; + unsigned long bgpio_data; + unsigned long bgpio_dir; + struct gpio_irq_chip irq; + unsigned long *valid_mask; + unsigned int of_gpio_n_cells; + int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *); +}; + +struct airoha_gpio_ctrl { + struct gpio_chip gc; + void *data; + void *dir[2]; + void *output; +}; + +union gpio_irq_fwspec { + struct irq_fwspec fwspec; + msi_alloc_info_t msiinfo; +}; + +enum i2c_slave_event { + I2C_SLAVE_READ_REQUESTED = 0, + I2C_SLAVE_WRITE_REQUESTED = 1, + I2C_SLAVE_READ_PROCESSED = 2, + I2C_SLAVE_WRITE_RECEIVED = 3, + I2C_SLAVE_STOP = 4, +}; + +struct i2c_client; + +struct tps65910_board; + +struct regmap_irq_chip_data; + +struct tps65910 { + struct device *dev; + struct i2c_client *i2c_client; + struct regmap *regmap; + unsigned long id; + struct tps65910_board *of_plat_data; + int chip_irq; + struct regmap_irq_chip_data *irq_data; +}; + +typedef int (*i2c_slave_cb_t)(struct i2c_client *, enum i2c_slave_event, u8 *); + +struct i2c_adapter; + +struct i2c_client { + unsigned short flags; + unsigned short addr; + char name[20]; + struct i2c_adapter *adapter; long: 32; + struct device dev; + int init_irq; + int irq; + struct list_head detected; + i2c_slave_cb_t slave_cb; + void *devres_group_id; +}; + +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 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; long: 32; + 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; long: 32; +}; + +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 *); + int (*reg_slave)(struct i2c_client *); + int (*unreg_slave)(struct i2c_client *); +}; + +struct i2c_msg { + __u16 addr; + __u16 flags; + __u16 len; + __u8 *buf; +}; + +union i2c_smbus_data { + __u8 byte; + __u16 word; + __u8 block[34]; +}; + +struct i2c_lock_operations { + void (*lock_bus)(struct i2c_adapter *, unsigned int); + int (*trylock_bus)(struct i2c_adapter *, unsigned int); + void (*unlock_bus)(struct i2c_adapter *, unsigned int); +}; + +struct gpio_desc; + +struct 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; long: 32; +}; + +struct tps65910_sleep_keepon_data { + unsigned int therm_keepon: 1; + unsigned int clkout32k_keepon: 1; + unsigned int i2chs_keepon: 1; +}; + +struct regulator_init_data; + +struct tps65910_board { + int gpio_base; + int irq; + int irq_base; + int vmbch_threshold; + int vmbch2_threshold; + bool en_ck32k_xtal; + bool en_dev_slp; + bool pm_off; + struct tps65910_sleep_keepon_data slp_keepon; + bool en_gpio_sleep[9]; + unsigned long regulator_ext_sleep_control[14]; + struct regulator_init_data *tps65910_pmic_init_data[14]; +}; + +struct tps65910_gpio { + struct gpio_chip gpio_chip; + struct tps65910 *tps65910; +}; + +typedef int pci_power_t; + +typedef unsigned int pci_channel_state_t; + +typedef unsigned short pci_dev_flags_t; + +struct pci_vpd { + struct mutex lock; + unsigned int len; + u8 cap; +}; + +struct pci_bus; + +struct pci_slot; + +struct rcec_ea; + +struct pci_driver; + +struct pcie_link_state; + +struct pci_dev { + struct list_head bus_list; + struct pci_bus *bus; + struct pci_bus *subordinate; + void *sysdata; + struct proc_dir_entry *procent; + struct pci_slot *slot; + unsigned int devfn; + unsigned short vendor; + unsigned short device; + unsigned short subsystem_vendor; + unsigned short subsystem_device; + unsigned int class; + u8 revision; + u8 hdr_type; + 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; long: 32; + u64 dma_mask; + struct device_dma_parameters dma_parms; + pci_power_t current_state; + u8 pm_cap; + unsigned int imm_ready: 1; + unsigned int pme_support: 5; + unsigned int pme_poll: 1; + unsigned int d1_support: 1; + unsigned int d2_support: 1; + unsigned int no_d1d2: 1; + unsigned int no_d3cold: 1; + unsigned int bridge_d3: 1; + unsigned int d3cold_allowed: 1; + unsigned int mmio_always_on: 1; + unsigned int wakeup_prepared: 1; + unsigned int skip_bus_pm: 1; + unsigned int ignore_hotplug: 1; + unsigned int hotplug_user_indicators: 1; + unsigned int clear_retrain_link: 1; + unsigned int d3hot_delay; + unsigned int d3cold_delay; + struct pcie_link_state *link_state; + u16 l1ss; + unsigned int ltr_path: 1; + unsigned int pasid_no_tlp: 1; + unsigned int eetlp_prefix_path: 1; + pci_channel_state_t error_state; + struct device dev; + int cfg_size; + unsigned int irq; + struct resource resource[11]; + struct resource driver_exclusive_resource; + bool match_driver; + unsigned int transparent: 1; + unsigned int io_window: 1; + unsigned int pref_window: 1; + unsigned int pref_64_window: 1; + unsigned int multifunction: 1; + unsigned int is_busmaster: 1; + unsigned int no_msi: 1; + unsigned int no_64bit_msi: 1; + unsigned int block_cfg_access: 1; + unsigned int broken_parity_status: 1; + unsigned int irq_reroute_variant: 2; + unsigned int msi_enabled: 1; + unsigned int msix_enabled: 1; + unsigned int ari_enabled: 1; + unsigned int ats_enabled: 1; + unsigned int pasid_enabled: 1; + unsigned int pri_enabled: 1; + unsigned int is_managed: 1; + unsigned int is_msi_managed: 1; + unsigned int needs_freset: 1; + unsigned int state_saved: 1; + unsigned int is_physfn: 1; + unsigned int is_virtfn: 1; + unsigned int is_hotplug_bridge: 1; + unsigned int shpc_managed: 1; + unsigned int is_thunderbolt: 1; + unsigned int untrusted: 1; + unsigned int external_facing: 1; + unsigned int broken_intx_masking: 1; + unsigned int io_window_1k: 1; + unsigned int irq_managed: 1; + unsigned int non_compliant_bars: 1; + unsigned int is_probed: 1; + unsigned int link_active_reporting: 1; + unsigned int no_vf_scan: 1; + unsigned int no_command_memory: 1; + unsigned int rom_bar_overlap: 1; + unsigned int rom_attr_enabled: 1; + pci_dev_flags_t dev_flags; + atomic_t enable_cnt; + spinlock_t pcie_cap_lock; + u32 saved_config_space[16]; + struct hlist_head saved_cap_space; + struct bin_attribute *res_attr[11]; + struct bin_attribute *res_attr_wc[11]; + void *msix_base; + raw_spinlock_t msi_lock; + struct pci_vpd vpd; + u16 acs_cap; + phys_addr_t rom; + size_t romlen; + const char *driver_override; + unsigned long priv_flags; + u8 reset_methods[7]; long: 32; +}; + +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; + int domain_nr; + char name[48]; + unsigned short bridge_ctl; + pci_bus_flags_t bus_flags; + struct device *bridge; long: 32; + struct device dev; + struct bin_attribute *legacy_io; + struct bin_attribute *legacy_mem; + unsigned int is_added: 1; + unsigned int unsafe_warn: 1; long: 32; +}; + +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); +}; + +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 rcec_ea { + u8 nextbusn; + u8 lastbusn; + u32 bitmap; +}; + +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 *); +}; + +enum iproc_pcie_type { + IPROC_PCIE_PAXB_BCMA = 0, + IPROC_PCIE_PAXB = 1, + IPROC_PCIE_PAXB_V2 = 2, + IPROC_PCIE_PAXC = 3, + IPROC_PCIE_PAXC_V2 = 4, +}; + +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_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 iproc_msi_reg { + IPROC_MSI_EQ_PAGE = 0, + IPROC_MSI_EQ_PAGE_UPPER = 1, + IPROC_MSI_PAGE = 2, + IPROC_MSI_PAGE_UPPER = 3, + IPROC_MSI_CTRL = 4, + IPROC_MSI_EQ_HEAD = 5, + IPROC_MSI_EQ_TAIL = 6, + IPROC_MSI_INTS_EN = 7, + IPROC_MSI_REG_SIZE = 8, +}; + +struct iproc_pcie; + +struct iproc_msi_grp; + +struct iproc_msi { + struct iproc_pcie *pcie; + const u16 (*reg_offsets)[8]; + struct iproc_msi_grp *grps; + int nr_irqs; + int nr_cpus; + bool has_inten_reg; + unsigned long *bitmap; + struct mutex bitmap_lock; + unsigned int nr_msi_vecs; + struct irq_domain *inner_domain; + struct irq_domain *msi_domain; + unsigned int nr_eq_region; + unsigned int nr_msi_region; + void *eq_cpu; + dma_addr_t eq_dma; + phys_addr_t msi_addr; +}; + +struct iproc_pcie_ob { + resource_size_t axi_offset; + unsigned int nr_windows; +}; + +struct iproc_pcie_ib { + unsigned int nr_regions; +}; + +struct iproc_pcie_ob_map; + +struct iproc_pcie_ib_map; + +struct iproc_pcie { + struct device *dev; + enum iproc_pcie_type type; + u16 *reg_offsets; + void *base; + phys_addr_t base_addr; + struct resource mem; + struct phy *phy; + int (*map_irq)(const struct pci_dev *, u8, u8); + bool ep_is_internal; + bool iproc_cfg_read; + bool rej_unconfig_pf; + bool has_apb_err_disable; + bool fix_paxc_cap; + bool need_ob_cfg; + struct iproc_pcie_ob ob; + const struct iproc_pcie_ob_map *ob_map; + bool need_ib_cfg; + struct iproc_pcie_ib ib; + const struct iproc_pcie_ib_map *ib_map; + bool need_msi_steer; + struct iproc_msi *msi; +}; + +struct iproc_pcie_ob_map { + resource_size_t window_sizes[4]; + unsigned int nr_sizes; +}; + +enum iproc_pcie_ib_map_type { + IPROC_PCIE_IB_MAP_MEM = 0, + IPROC_PCIE_IB_MAP_IO = 1, + IPROC_PCIE_IB_MAP_INVALID = 2, +}; + +struct iproc_pcie_ib_map { + enum iproc_pcie_ib_map_type type; + unsigned int size_unit; + resource_size_t region_sizes[9]; + unsigned int nr_sizes; + unsigned int nr_windows; + u16 imap_addr_offset; + u16 imap_window_offset; +}; + +struct iproc_msi_grp { + struct iproc_msi *msi; + int gic_irq; + unsigned int eq; +}; + +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 dmt_videomode { + u32 dmt_id; + u32 std_2byte_code; + u32 cvt_3byte_code; + const struct fb_videomode *mode; +}; + +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 fb_modelist { + struct list_head list; + struct fb_videomode mode; +}; + +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_monspecs { + struct fb_chroma chroma; + struct fb_videomode *modedb; + __u8 manufacturer[4]; + __u8 monitor[14]; + __u8 serial_no[14]; + __u8 ascii[14]; + __u32 modedb_len; + __u32 model; + __u32 serial; + __u32 year; + __u32 week; + __u32 hfmin; + __u32 hfmax; + __u32 dclkmin; + __u32 dclkmax; + __u16 input; + __u16 dpms; + __u16 signal; + __u16 vfmin; + __u16 vfmax; + __u16 gamma; + __u16 gtf: 1; + __u16 misc; + __u8 version; + __u8 revision; + __u8 max_x; + __u8 max_y; +}; + +struct fb_info; + +struct fb_pixmap { + u8 *addr; + u32 size; + u32 offset; + u32 buf_align; + u32 scan_align; + u32 access_align; + u32 flags; + 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 backlight_device; + +struct fb_deferred_io_pageref; + +struct fb_deferred_io; + +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; + struct backlight_device *bl_dev; + struct mutex bl_curve_mutex; + u8 bl_curve[128]; + struct delayed_work deferred_work; + unsigned long npagerefs; + struct fb_deferred_io_pageref *pagerefs; + struct fb_deferred_io *fbdefio; + 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 backlight_properties { + int brightness; + int max_brightness; + int power; + int fb_blank; + enum backlight_type type; + unsigned int state; + enum backlight_scale scale; +}; + +struct backlight_ops; + +struct backlight_device { + struct backlight_properties props; + struct mutex update_lock; + struct mutex ops_lock; + const struct backlight_ops *ops; + struct notifier_block fb_notif; + struct list_head entry; long: 32; + struct device dev; + bool fb_bl_on[32]; + int use_count; long: 32; +}; + +struct backlight_ops { + unsigned int options; + int (*update_status)(struct backlight_device *); + int (*get_brightness)(struct backlight_device *); + int (*check_fb)(struct backlight_device *, struct fb_info *); +}; + +struct fb_deferred_io_pageref { + struct page *page; + unsigned long offset; + struct list_head list; +}; + +struct fb_deferred_io { + unsigned long delay; + bool sort_pagereflist; + int open_count; + struct mutex lock; + struct list_head pagereflist; + void (*deferred_io)(struct fb_info *, struct list_head *); +}; + +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; +}; + +struct clk_hw; + +struct clk_rate_request; + +struct clk_duty; + +struct clk_ops { + int (*prepare)(struct clk_hw *); + void (*unprepare)(struct clk_hw *); + int (*is_prepared)(struct clk_hw *); + void (*unprepare_unused)(struct clk_hw *); + int (*enable)(struct clk_hw *); + void (*disable)(struct clk_hw *); + int (*is_enabled)(struct clk_hw *); + void (*disable_unused)(struct clk_hw *); + int (*save_context)(struct clk_hw *); + void (*restore_context)(struct clk_hw *); + unsigned long (*recalc_rate)(struct clk_hw *, unsigned long); + long (*round_rate)(struct clk_hw *, unsigned long, unsigned long *); + int (*determine_rate)(struct clk_hw *, struct clk_rate_request *); + int (*set_parent)(struct clk_hw *, u8); + u8 (*get_parent)(struct clk_hw *); + int (*set_rate)(struct clk_hw *, unsigned long, unsigned long); + int (*set_rate_and_parent)(struct clk_hw *, unsigned long, unsigned long, u8); + unsigned long (*recalc_accuracy)(struct clk_hw *, unsigned long); + int (*get_phase)(struct clk_hw *); + int (*set_phase)(struct clk_hw *, int); + int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *); + int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *); + int (*init)(struct clk_hw *); + void (*terminate)(struct clk_hw *); + void (*debug_init)(struct clk_hw *, struct dentry *); +}; + +struct clk_core; + +struct clk_init_data; + +struct clk_hw { + struct clk_core *core; + struct clk *clk; + const struct clk_init_data *init; +}; + +struct clk_parent_data; + +struct clk_init_data { + const char *name; + const struct clk_ops *ops; + const char * const *parent_names; + const struct clk_parent_data *parent_data; + const struct clk_hw **parent_hws; + u8 num_parents; + unsigned long flags; +}; + +struct clk_parent_data { + const struct clk_hw *hw; + const char *fw_name; + const char *name; + int index; +}; + +struct clk_rate_request { + struct clk_core *core; + unsigned long rate; + unsigned long min_rate; + unsigned long max_rate; + unsigned long best_parent_rate; + struct clk_hw *best_parent_hw; +}; + +struct clk_duty { + unsigned int num; + unsigned int den; +}; + +struct clk_i2s_mux { + struct clk_hw hw; + struct regmap *regmap; + u8 bus_id; +}; + +struct bcm_lvm_en { + u32 offset; + u32 bit; +}; + +struct bcm_policy_ctl { + u32 offset; + u32 go_bit; + u32 atl_bit; + u32 ac_bit; +}; + +struct ccu_policy { + struct bcm_lvm_en enable; + struct bcm_policy_ctl control; +}; + +enum bcm_clk_type { + bcm_clk_none = 0, + bcm_clk_bus = 1, + bcm_clk_core = 2, + bcm_clk_peri = 3, +}; + +struct ccu_data; + +struct peri_clk_data; + +struct kona_clk { + struct clk_hw hw; + struct clk_init_data init_data; + struct ccu_data *ccu; + enum bcm_clk_type type; + union { + void *data; + struct peri_clk_data *peri; + } u; +}; + +struct ccu_data { + void *base; + spinlock_t lock; + bool write_enabled; + struct ccu_policy policy; + struct device_node *node; + size_t clk_num; + const char *name; + u32 range; + struct kona_clk kona_clks[0]; +}; + +struct bcm_clk_policy { + u32 offset; + u32 bit; +}; + +struct bcm_clk_gate { + u32 offset; + u32 status_bit; + u32 en_bit; + u32 hw_sw_sel_bit; + u32 flags; +}; + +struct bcm_clk_hyst { + u32 offset; + u32 en_bit; + u32 val_bit; +}; + +struct bcm_clk_trig { + u32 offset; + u32 bit; + u32 flags; +}; + +struct bcm_clk_div { + union { + struct { + u32 offset; + u32 shift; + u32 width; + u32 frac_width; + u64 scaled_div; + } s; + u32 fixed; + } u; + u32 flags; long: 32; +}; + +struct bcm_clk_sel { + u32 offset; + u32 shift; + u32 width; + u32 parent_count; + u32 *parent_sel; + u8 clk_index; +}; + +struct peri_clk_data { + struct bcm_clk_policy policy; + struct bcm_clk_gate gate; + struct bcm_clk_hyst hyst; + struct bcm_clk_trig pre_trig; long: 32; + struct bcm_clk_div pre_div; + struct bcm_clk_trig trig; long: 32; + struct bcm_clk_div div; + struct bcm_clk_sel sel; + const char *clocks[0]; +}; + +struct hisi_clock_data; + +struct hisi_crg_funcs { + struct hisi_clock_data * (*register_clks)(struct platform_device *); + void (*unregister_clks)(struct platform_device *); +}; + +struct clk_onecell_data { + struct clk **clks; + unsigned int clk_num; +}; + +struct hisi_clock_data { + struct clk_onecell_data clk_data; + void *base; +}; + +struct hisi_fixed_rate_clock { + unsigned int id; + char *name; + const char *parent_name; + unsigned long flags; + unsigned long fixed_rate; +}; + +struct hisi_mux_clock { + unsigned int id; + const char *name; + const char * const *parent_names; + u8 num_parents; + unsigned long flags; + unsigned long offset; + u8 shift; + u8 width; + u8 mux_flags; + const u32 *table; + const char *alias; +}; + +struct hisi_gate_clock { + unsigned int id; + const char *name; + const char *parent_name; + unsigned long flags; + unsigned long offset; + u8 bit_idx; + u8 gate_flags; + const char *alias; +}; + +struct hisi_reset_controller; + +struct hisi_crg_dev { + struct hisi_clock_data *clk_data; + struct hisi_reset_controller *rstc; + const struct hisi_crg_funcs *funcs; +}; + +struct clk_pll_data; + +struct clk_pll { + struct clk_hw hw; + struct clk_pll_data *pll_data; +}; + +struct clk_pll_data { + bool has_pllctrl; + u32 phy_pllm; + u32 phy_pll_ctl0; + void *pllm; + void *pllod; + void *pll_ctl0; + u32 pllm_lower_mask; + u32 pllm_upper_mask; + u32 pllm_upper_shift; + u32 plld_mask; + u32 clkod_mask; + u32 clkod_shift; + u32 postdiv; +}; + +struct clk_div_table { + unsigned int val; + unsigned int div; +}; + +struct mtk_gate; + +struct mtk_composite; + +struct mtk_clk_divider; + +struct mtk_fixed_clk; + +struct mtk_fixed_factor; + +struct mtk_mux; + +struct mtk_clk_rst_desc; + +struct mtk_clk_desc { + const struct mtk_gate *clks; + size_t num_clks; + const struct mtk_composite *composite_clks; + size_t num_composite_clks; + const struct mtk_clk_divider *divider_clks; + size_t num_divider_clks; + const struct mtk_fixed_clk *fixed_clks; + size_t num_fixed_clks; + const struct mtk_fixed_factor *factor_clks; + size_t num_factor_clks; + const struct mtk_mux *mux_clks; + size_t num_mux_clks; + const struct mtk_clk_rst_desc *rst_desc; + spinlock_t *clk_lock; + bool shared_io; + int (*clk_notifier_func)(struct device *, struct clk *); + unsigned int mfg_clk_idx; +}; + +struct mtk_gate_regs; + +struct mtk_gate { + int id; + const char *name; + const char *parent_name; + const struct mtk_gate_regs *regs; + int shift; + const struct clk_ops *ops; + unsigned long flags; +}; + +struct mtk_gate_regs { + u32 sta_ofs; + u32 clr_ofs; + u32 set_ofs; +}; + +struct mtk_composite { + int id; + const char *name; + const char * const *parent_names; + const char *parent; + unsigned int flags; + uint32_t mux_reg; + uint32_t divider_reg; + uint32_t gate_reg; + signed char mux_shift; + signed char mux_width; + signed char gate_shift; + signed char divider_shift; + signed char divider_width; + u8 mux_flags; + signed char num_parents; +}; + +struct mtk_clk_divider { + int id; + const char *name; + const char *parent_name; + unsigned long flags; + u32 div_reg; + unsigned char div_shift; + unsigned char div_width; + unsigned char clk_divider_flags; + const struct clk_div_table *clk_div_table; +}; + +struct mtk_fixed_clk { + int id; + const char *name; + const char *parent; + unsigned long rate; +}; + +struct mtk_fixed_factor { + int id; + const char *name; + const char *parent_name; + int mult; + int div; + unsigned long flags; +}; + +struct mtk_mux { + int id; + const char *name; + const char * const *parent_names; + unsigned int flags; + u32 mux_ofs; + u32 set_ofs; + u32 clr_ofs; + u32 upd_ofs; + u8 mux_shift; + u8 mux_width; + u8 gate_shift; + s8 upd_shift; + const struct clk_ops *ops; + signed char num_parents; +}; + +enum mtk_reset_version { + MTK_RST_SIMPLE = 0, + MTK_RST_SET_CLR = 1, + MTK_RST_MAX = 2, +}; + +struct mtk_clk_rst_desc { + enum mtk_reset_version version; + u16 *rst_bank_ofs; + u32 rst_bank_nr; + u16 *rst_idx_map; + u32 rst_idx_map_nr; +}; + +struct clk_apbc { + struct clk_hw hw; + void *base; + unsigned int delay; + unsigned int flags; + spinlock_t *lock; +}; + +struct pm_domain_data { + struct list_head list_node; + struct device *dev; +}; + +enum regcache_type { + REGCACHE_NONE = 0, + REGCACHE_RBTREE = 1, + REGCACHE_FLAT = 2, + REGCACHE_MAPLE = 3, +}; + +enum regmap_endian { + REGMAP_ENDIAN_DEFAULT = 0, + REGMAP_ENDIAN_BIG = 1, + REGMAP_ENDIAN_LITTLE = 2, + REGMAP_ENDIAN_NATIVE = 3, +}; + +enum gpd_status { + GENPD_STATE_ON = 0, + GENPD_STATE_OFF = 1, +}; + +struct reset_control_ops; + +struct reset_controller_dev { + const struct reset_control_ops *ops; + struct module *owner; + struct list_head list; + struct list_head reset_control_head; + struct device *dev; + struct device_node *of_node; + int of_reset_n_cells; + int (*of_xlate)(struct reset_controller_dev *, const struct of_phandle_args *); + unsigned int nr_resets; +}; + +struct qcom_reset_map; + +struct qcom_reset_controller { + const struct qcom_reset_map *reset_map; + struct regmap *regmap; + struct reset_controller_dev rcdev; +}; + +struct clk_regmap; + +struct qcom_cc { + struct qcom_reset_controller reset; + struct clk_regmap **rclks; + size_t num_rclks; +}; + +struct qcom_reset_map { + unsigned int reg; + u8 bit; + u8 udelay; + u32 bitmask; +}; + +struct reset_control_ops { + int (*reset)(struct reset_controller_dev *, unsigned long); + int (*assert)(struct reset_controller_dev *, unsigned long); + int (*deassert)(struct reset_controller_dev *, unsigned long); + int (*status)(struct reset_controller_dev *, unsigned long); +}; + +struct clk_regmap { + struct clk_hw hw; + struct regmap *regmap; + unsigned int enable_reg; + unsigned int enable_mask; + bool enable_is_inverted; +}; + +struct gdsc; + +struct gdsc_desc { + struct device *dev; + struct gdsc **scs; + size_t num; +}; + +struct gpd_dev_ops { + int (*start)(struct device *); + int (*stop)(struct device *); +}; + +struct dev_power_governor; + +struct genpd_governor_data; + +struct opp_table; + +struct dev_pm_opp; + +struct genpd_power_state; + +struct genpd_lock_ops; + +struct generic_pm_domain { + struct device dev; + struct dev_pm_domain domain; + struct list_head gpd_list_node; + struct list_head parent_links; + struct list_head child_links; + struct list_head dev_list; + struct dev_power_governor *gov; + struct genpd_governor_data *gd; + struct work_struct power_off_work; + struct fwnode_handle *provider; + bool has_provider; + const char *name; + atomic_t sd_count; + enum gpd_status status; + unsigned int device_count; + unsigned int suspended_count; + unsigned int prepared_count; + unsigned int performance_state; + cpumask_var_t cpus; + bool synced_poweroff; + int (*power_off)(struct generic_pm_domain *); + int (*power_on)(struct generic_pm_domain *); + struct raw_notifier_head power_notifiers; + struct opp_table *opp_table; + unsigned int (*opp_to_performance_state)(struct generic_pm_domain *, struct dev_pm_opp *); + int (*set_performance_state)(struct generic_pm_domain *, unsigned int); + struct gpd_dev_ops dev_ops; + int (*attach_dev)(struct generic_pm_domain *, struct device *); + void (*detach_dev)(struct generic_pm_domain *, struct device *); + unsigned int flags; + struct genpd_power_state *states; + void (*free_states)(struct genpd_power_state *, unsigned int); + unsigned int state_count; + unsigned int state_idx; long: 32; + u64 on_time; + u64 accounting_time; + const struct genpd_lock_ops *lock_ops; + union { + struct mutex mlock; + struct { + spinlock_t slock; + unsigned long lock_flags; + }; + }; +}; + +struct gdsc { + struct generic_pm_domain pd; + struct generic_pm_domain *parent; + struct regmap *regmap; + unsigned int gdscr; + unsigned int collapse_ctrl; + unsigned int collapse_mask; + unsigned int gds_hw_ctrl; + unsigned int clamp_io_ctrl; + unsigned int *cxcs; + unsigned int cxc_count; + unsigned int en_rest_wait_val; + unsigned int en_few_wait_val; + unsigned int clk_dis_wait_val; + const u8 pwrsts; + const u16 flags; + struct reset_controller_dev *rcdev; + unsigned int *resets; + unsigned int reset_count; + const char *supply; + struct regulator *rsupply; +}; + +struct dev_power_governor { + bool (*power_down_ok)(struct dev_pm_domain *); + bool (*suspend_ok)(struct device *); +}; + +struct genpd_governor_data { + s64 max_off_time_ns; + bool max_off_time_changed; long: 32; + ktime_t next_wakeup; + ktime_t next_hrtimer; + bool cached_power_down_ok; + bool cached_power_down_state_idx; long: 32; +}; + +struct genpd_power_state { + s64 power_off_latency_ns; + s64 power_on_latency_ns; + s64 residency_ns; + u64 usage; + u64 rejected; + struct fwnode_handle *fwnode; long: 32; + u64 idle_time; + void *data; long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - unsigned long consumer_pos; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - unsigned long producer_pos; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - char data[0]; }; -struct bpf_ringbuf_map { - struct bpf_map map; - struct bpf_ringbuf *rb; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct genpd_lock_ops { + void (*lock)(struct generic_pm_domain *); + void (*lock_nested)(struct generic_pm_domain *, int); + int (*lock_interruptible)(struct generic_pm_domain *); + void (*unlock)(struct generic_pm_domain *); }; -typedef struct poll_table_struct poll_table; +struct regmap_config; -struct bpf_ringbuf_hdr { - u32 len; - u32 pg_off; -}; - -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 qcom_cc_desc { + const struct regmap_config *config; + struct clk_regmap **clks; + size_t num_clks; + const struct qcom_reset_map *resets; + size_t num_resets; + struct gdsc **gdscs; + size_t num_gdscs; + struct clk_hw **clk_hws; + size_t num_clk_hws; }; -enum fs_context_purpose { - FS_CONTEXT_FOR_MOUNT = 0, - FS_CONTEXT_FOR_SUBMOUNT = 1, - FS_CONTEXT_FOR_RECONFIGURE = 2, -}; +typedef void (*regmap_lock)(void *); -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, -}; +typedef void (*regmap_unlock)(void *); -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, -}; +struct regmap_access_table; -struct fc_log; +struct reg_default; -struct p_log { - const char *prefix; - struct fc_log *log; +struct regmap_range_cfg; + +struct regmap_config { + const char *name; + int reg_bits; + int reg_stride; + int reg_shift; + 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 fs_context_operations; +struct regmap_range; -struct fs_context { - const struct fs_context_operations *ops; - struct mutex uapi_mutex; - struct file_system_type *fs_type; - void *fs_private; - void *sget_key; - struct dentry *root; - struct user_namespace *user_ns; - struct net *net_ns; - const struct cred *cred; - struct p_log log; - const char *source; - void *security; - void *s_fs_info; - unsigned int sb_flags; - unsigned int sb_flags_mask; - unsigned int s_iflags; - enum fs_context_purpose purpose: 8; - enum fs_context_phase phase: 8; - bool need_free: 1; - bool global: 1; - bool oldapi: 1; +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 fs_context_operations { - void (*free)(struct fs_context *); - int (*dup)(struct fs_context *, struct fs_context *); - int (*parse_param)(struct fs_context *, struct fs_parameter *); - int (*parse_monolithic)(struct fs_context *, void *); - int (*get_tree)(struct fs_context *); - int (*reconfigure)(struct fs_context *); +struct regmap_range { + unsigned int range_min; + unsigned int range_max; }; -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 reg_default { + unsigned int reg; + unsigned int def; }; -struct audit_names; - -struct filename { +struct regmap_range_cfg { const char *name; - const char __attribute__((btf_type_tag("user"))) *uptr; - int refcnt; - struct audit_names *aname; - const char iname[0]; + 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 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 freq_tbl { + unsigned long freq; + u8 src; + u8 pre_div; + u16 m; + u16 n; }; -struct fc_log { - refcount_t usage; - u8 head; - u8 tail; - u8 need_free; - struct module *owner; - char *buffer[8]; +struct parent_map { + u8 src; + u8 cfg; }; -struct fs_parse_result { - bool negated; - long: 32; - union { - bool boolean; - int int_32; - unsigned int uint_32; - u64 uint_64; - }; +struct clk_fixed_rate { + struct clk_hw hw; + unsigned long fixed_rate; + unsigned long fixed_accuracy; + unsigned long flags; }; -struct compact_control; - -struct capture_control { - struct compact_control *cc; - struct page *page; +struct clk_fixed_factor { + struct clk_hw hw; + unsigned int mult; + unsigned int div; }; -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 pll_freq_tbl; -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[6]; - unsigned long marks[6]; - }; +struct clk_pll___2 { + u32 l_reg; + u32 m_reg; + u32 n_reg; + u32 config_reg; + u32 mode_reg; + u32 status_reg; + u8 status_bit; + u8 post_div_width; + u8 post_div_shift; + const struct pll_freq_tbl *freq_tbl; + struct clk_regmap clkr; }; -struct folio_batch { - unsigned char nr; - bool percpu_pvec_drained; - struct folio *folios[15]; +struct pll_freq_tbl { + unsigned long freq; + u16 l; + u16 m; + u16 n; + u32 ibits; }; -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 pll_config { + u16 l; + u32 m; + u32 n; + u32 vco_val; + u32 vco_mask; + u32 pre_div_val; + u32 pre_div_mask; + u32 post_div_val; + u32 post_div_mask; + u32 mn_ena_mask; + u32 main_output_mask; + u32 aux_output_mask; }; -enum page_walk_action { - ACTION_SUBTREE = 0, - ACTION_CONTINUE = 1, - ACTION_AGAIN = 2, +struct frac_entry { + int num; + int den; }; -enum page_walk_lock { - PGWALK_RDLOCK = 0, - PGWALK_WRLOCK = 1, - PGWALK_WRLOCK_VERIFY = 2, +struct mn { + u8 mnctr_en_bit; + u8 mnctr_reset_bit; + u8 mnctr_mode_shift; + u8 n_val_shift; + u8 m_val_shift; + u8 width; + bool reset_in_cc; }; -struct mm_walk_ops; - -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 pre_div { + u8 pre_div_shift; + u8 pre_div_width; }; -struct mm_walk_ops { - int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); - int (*p4d_entry)(p4d_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pte_hole)(unsigned long, unsigned long, int, struct mm_walk *); - int (*hugetlb_entry)(pte_t *, unsigned long, unsigned long, unsigned long, struct mm_walk *); - int (*test_walk)(unsigned long, unsigned long, struct mm_walk *); - int (*pre_vma)(unsigned long, unsigned long, struct mm_walk *); - void (*post_vma)(struct mm_walk *); - enum page_walk_lock walk_lock; +struct src_sel { + u8 src_sel_shift; + const struct parent_map *parent_map; }; -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]; - long: 32; +struct clk_rcg { + u32 ns_reg; + u32 md_reg; + struct mn mn; + struct pre_div p; + struct src_sel s; + const struct freq_tbl *freq_tbl; + struct clk_regmap clkr; }; -enum { - XA_CHECK_SCHED = 4096, +struct clk_dyn_rcg { + u32 ns_reg[2]; + u32 md_reg[2]; + u32 bank_reg; + u8 mux_sel_bit; + struct mn mn[2]; + struct pre_div p[2]; + struct src_sel s[2]; + const struct freq_tbl *freq_tbl; + struct clk_regmap clkr; }; -enum { - HUGETLB_SHMFS_INODE = 1, - HUGETLB_ANONHUGE_INODE = 2, +struct clk_branch { + u32 hwcg_reg; + u32 halt_reg; + u8 hwcg_bit; + u8 halt_bit; + u8 halt_check; + struct clk_regmap clkr; }; -struct shared_policy {}; - -struct simple_xattrs { - struct rb_root rb_root; - rwlock_t lock; +struct clk_regmap_div { + u32 reg; + u32 shift; + u32 width; + struct clk_regmap clkr; }; -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; - long: 32; - struct timespec64 i_crtime; - unsigned int fsflags; - long: 32; - struct inode vfs_inode; +struct clk_regmap_mux_div { + u32 reg_offset; + u32 hid_width; + u32 hid_shift; + u32 src_width; + u32 src_shift; + u32 div; + u32 src; + const u32 *parent_map; + struct clk_regmap clkr; + struct clk *pclk; + struct notifier_block clk_nb; }; -typedef unsigned int xa_mark_t; - -struct fsnotify_event { - struct list_head list; +struct clk_rcg2 { + u32 cmd_rcgr; + u8 mnd_width; + u8 hid_width; + u8 safe_src_index; + const struct parent_map *parent_map; + const struct freq_tbl *freq_tbl; + struct clk_regmap clkr; + u8 cfg_off; + u32 parked_cfg; + bool hw_clk_ctrl; }; -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; - long: 32; - u64 event; - unsigned int mounts; - unsigned int pending_mounts; +struct rcar_gen2_cpg_pll_config { + u8 extal_div; + u8 pll1_mult; + u8 pll3_mult; + u8 pll0_mult; }; -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 soc_device_attribute { + const char *machine; + const char *family; + const char *revision; + const char *serial_number; + const char *soc_id; + const void *data; + const struct attribute_group *custom_attr_group; }; -struct mnt_pcp { - int mnt_count; - int mnt_writers; +enum clk_reg_layout { + CLK_REG_LAYOUT_RCAR_GEN2_AND_GEN3 = 0, + CLK_REG_LAYOUT_RZ_A = 1, + CLK_REG_LAYOUT_RCAR_GEN4 = 2, }; -struct mountpoint { - struct hlist_node m_hash; - struct dentry *m_dentry; - struct hlist_head m_list; - int m_count; +enum rcar_gen2_clk_types { + CLK_TYPE_GEN2_MAIN = 5, + CLK_TYPE_GEN2_PLL0 = 6, + CLK_TYPE_GEN2_PLL1 = 7, + CLK_TYPE_GEN2_PLL3 = 8, + CLK_TYPE_GEN2_Z = 9, + CLK_TYPE_GEN2_LB = 10, + CLK_TYPE_GEN2_ADSP = 11, + CLK_TYPE_GEN2_SDH = 12, + CLK_TYPE_GEN2_SD0 = 13, + CLK_TYPE_GEN2_SD1 = 14, + CLK_TYPE_GEN2_QSPI = 15, + CLK_TYPE_GEN2_RCAN = 16, }; -struct inotify_group_private_data { - spinlock_t idr_lock; - struct idr idr; - struct ucounts *ucounts; +struct cpg_z_clk { + struct clk_hw hw; + void *reg; + void *kick_reg; }; -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 cpg_core_clk { + const char *name; + unsigned int id; + unsigned int type; + unsigned int parent; + unsigned int div; + unsigned int mult; + unsigned int offset; }; -struct fsnotify_iter_info; - -struct fsnotify_mark; +struct mssr_mod_clk; -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 cpg_mssr_info { + const struct cpg_core_clk *early_core_clks; + unsigned int num_early_core_clks; + const struct mssr_mod_clk *early_mod_clks; + unsigned int num_early_mod_clks; + const struct cpg_core_clk *core_clks; + unsigned int num_core_clks; + unsigned int last_dt_core_clk; + unsigned int num_total_core_clks; + enum clk_reg_layout reg_layout; + const struct mssr_mod_clk *mod_clks; + unsigned int num_mod_clks; + unsigned int num_hw_mod_clks; + const unsigned int *crit_mod_clks; + unsigned int num_crit_mod_clks; + const unsigned int *core_pm_clks; + unsigned int num_core_pm_clks; + int (*init)(struct device *); + struct clk * (*cpg_clk_register)(struct device *, const struct cpg_core_clk *, const struct cpg_mssr_info *, struct clk **, void *, struct raw_notifier_head *); }; -struct fsnotify_iter_info { - struct fsnotify_mark *marks[5]; - struct fsnotify_group *current_group; - unsigned int report_mask; - int srcu_idx; +struct mssr_mod_clk { + const char *name; + unsigned int id; + unsigned int parent; }; -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 clk { + struct clk_core *core; + struct device *dev; + const char *dev_id; + const char *con_id; + unsigned long min_rate; + unsigned long max_rate; + unsigned int exclusive_count; + struct hlist_node clks_node; }; -struct fs_struct { - int users; - spinlock_t lock; - seqcount_spinlock_t seq; - int umask; - int in_exec; - struct path root; - struct path pwd; +struct clk_gate { + struct clk_hw hw; + void *reg; + u8 bit_idx; + u8 flags; + spinlock_t *lock; }; -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]; - }; - }; +struct clk_divider { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u8 flags; + const struct clk_div_table *table; + spinlock_t *lock; }; -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, +struct socfpga_gate_clk { + struct clk_gate hw; + char *parent_name; + u32 fixed_div; + void *div_reg; + void *bypass_reg; + struct regmap *sys_mgr_base_addr; + u32 width; + u32 shift; + u32 bypass_shift; }; -struct file_handle { - __u32 handle_bytes; - int handle_type; - unsigned char f_handle[0]; +struct clk_mux { + struct clk_hw hw; + void *reg; + const u32 *table; + u32 mask; + u8 shift; + u8 flags; + spinlock_t *lock; }; -struct fd { - struct file *file; - unsigned int flags; -}; +struct ccu_common; -enum kernfs_node_type { - KERNFS_DIR = 1, - KERNFS_FILE = 2, - KERNFS_LINK = 4, -}; +struct clk_hw_onecell_data; -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, -}; +struct ccu_reset_map; -enum blk_unique_id { - BLK_UID_T10 = 1, - BLK_UID_EUI64 = 2, - BLK_UID_NAA = 3, +struct sunxi_ccu_desc { + struct ccu_common **ccu_clks; + unsigned long num_ccu_clks; + struct clk_hw_onecell_data *hw_clks; + struct ccu_reset_map *resets; + unsigned long num_resets; }; -enum blk_bounce { - BLK_BOUNCE_NONE = 0, - BLK_BOUNCE_HIGH = 1, +struct ccu_common { + void *base; + u16 reg; + u16 lock_reg; + u32 prediv; + unsigned long features; + spinlock_t *lock; + struct clk_hw hw; }; -enum blk_zoned_model { - BLK_ZONED_NONE = 0, - BLK_ZONED_HA = 1, - BLK_ZONED_HM = 2, +struct clk_hw_onecell_data { + unsigned int num; + struct clk_hw *hws[0]; }; -enum passtype { - PASS_SCAN = 0, - PASS_REVOKE = 1, - PASS_REPLAY = 2, +struct ccu_reset_map { + u16 reg; + u32 bit; }; -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 ccu_gate { + u32 enable; + struct ccu_common common; }; -struct journal_s; - -typedef struct journal_s journal_t; - -struct journal_head; +struct ccu_div_internal { + u8 shift; + u8 width; + u32 max; + u32 offset; + u32 flags; + struct clk_div_table *table; +}; -struct transaction_s; +struct ccu_mux_fixed_prediv; -typedef struct transaction_s transaction_t; +struct ccu_mux_var_prediv; -struct transaction_s { - journal_t *t_journal; - tid_t t_tid; - enum { - T_RUNNING = 0, - T_LOCKED = 1, - T_SWITCH = 2, - T_FLUSH = 3, - T_COMMIT = 4, - T_COMMIT_DFLUSH = 5, - T_COMMIT_JFLUSH = 6, - T_COMMIT_CALLBACK = 7, - T_FINISHED = 8, - } t_state; - unsigned long t_log_start; - int t_nr_buffers; - struct journal_head *t_reserved_list; - struct journal_head *t_buffers; - struct journal_head *t_forget; - struct journal_head *t_checkpoint_list; - struct journal_head *t_shadow_list; - struct list_head t_inode_list; - 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; - long: 32; - ktime_t t_start_time; - unsigned int t_synchronous_commit: 1; - int t_need_data_flush; - struct list_head t_private_list; +struct ccu_mux_internal { + u8 shift; + u8 width; + const u8 *table; + const struct ccu_mux_fixed_prediv *fixed_predivs; + u8 n_predivs; + const struct ccu_mux_var_prediv *var_predivs; + u8 n_var_predivs; }; -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 ccu_div { + u32 enable; + struct ccu_div_internal div; + struct ccu_mux_internal mux; + struct ccu_common common; + unsigned int fixed_post_div; }; -struct transaction_stats_s { - unsigned long ts_tid; - unsigned long ts_requested; - struct transaction_run_stats_s run; +struct ccu_mux_fixed_prediv { + u8 index; + u16 div; }; -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; - 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; - long: 32; - 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; - long: 32; - 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; - long: 32; - 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); - int (*j_bmap)(struct journal_s *, sector_t *); - long: 32; +struct ccu_mux_var_prediv { + u8 index; + u8 shift; + u8 width; }; -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; - }; - long: 32; - 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; +enum tegra_super_gen { + gen4 = 4, + gen5 = 5, }; -struct request; - -struct io_comp_batch { - struct request *req_list; - bool need_ts; - void (*complete)(struct io_comp_batch *); +struct tegra_super_gen_info { + enum tegra_super_gen gen; + const char **sclk_parents; + const char **cclk_g_parents; + const char **cclk_lp_parents; + int num_sclk_parents; + int num_cclk_g_parents; + int num_cclk_lp_parents; }; -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; +enum clk_id { + tegra_clk_actmon = 0, + tegra_clk_adx = 1, + tegra_clk_adx1 = 2, + tegra_clk_afi = 3, + tegra_clk_amx = 4, + tegra_clk_amx1 = 5, + tegra_clk_apb2ape = 6, + tegra_clk_ahbdma = 7, + tegra_clk_apbdma = 8, + tegra_clk_apbif = 9, + tegra_clk_ape = 10, + tegra_clk_audio0 = 11, + tegra_clk_audio0_2x = 12, + tegra_clk_audio0_mux = 13, + tegra_clk_audio1 = 14, + tegra_clk_audio1_2x = 15, + tegra_clk_audio1_mux = 16, + tegra_clk_audio2 = 17, + tegra_clk_audio2_2x = 18, + tegra_clk_audio2_mux = 19, + tegra_clk_audio3 = 20, + tegra_clk_audio3_2x = 21, + tegra_clk_audio3_mux = 22, + tegra_clk_audio4 = 23, + tegra_clk_audio4_2x = 24, + tegra_clk_audio4_mux = 25, + tegra_clk_bsea = 26, + tegra_clk_bsev = 27, + tegra_clk_cclk_g = 28, + tegra_clk_cclk_lp = 29, + tegra_clk_cilab = 30, + tegra_clk_cilcd = 31, + tegra_clk_cile = 32, + tegra_clk_clk_32k = 33, + tegra_clk_clk72Mhz = 34, + tegra_clk_clk72Mhz_8 = 35, + tegra_clk_clk_m = 36, + tegra_clk_osc = 37, + tegra_clk_osc_div2 = 38, + tegra_clk_osc_div4 = 39, + tegra_clk_cml0 = 40, + tegra_clk_cml1 = 41, + tegra_clk_csi = 42, + tegra_clk_csite = 43, + tegra_clk_csite_8 = 44, + tegra_clk_csus = 45, + tegra_clk_cve = 46, + tegra_clk_dam0 = 47, + tegra_clk_dam1 = 48, + tegra_clk_dam2 = 49, + tegra_clk_d_audio = 50, + tegra_clk_dbgapb = 51, + tegra_clk_dds = 52, + tegra_clk_dfll_ref = 53, + tegra_clk_dfll_soc = 54, + tegra_clk_disp1 = 55, + tegra_clk_disp1_8 = 56, + tegra_clk_disp2 = 57, + tegra_clk_disp2_8 = 58, + tegra_clk_dp2 = 59, + tegra_clk_dpaux = 60, + tegra_clk_dpaux1 = 61, + tegra_clk_dsialp = 62, + tegra_clk_dsia_mux = 63, + tegra_clk_dsiblp = 64, + tegra_clk_dsib_mux = 65, + tegra_clk_dtv = 66, + tegra_clk_emc = 67, + tegra_clk_entropy = 68, + tegra_clk_entropy_8 = 69, + tegra_clk_epp = 70, + tegra_clk_epp_8 = 71, + tegra_clk_extern1 = 72, + tegra_clk_extern2 = 73, + tegra_clk_extern3 = 74, + tegra_clk_fuse = 75, + tegra_clk_fuse_burn = 76, + tegra_clk_gpu = 77, + tegra_clk_gr2d = 78, + tegra_clk_gr2d_8 = 79, + tegra_clk_gr3d = 80, + tegra_clk_gr3d_8 = 81, + tegra_clk_hclk = 82, + tegra_clk_hda = 83, + tegra_clk_hda_8 = 84, + tegra_clk_hda2codec_2x = 85, + tegra_clk_hda2codec_2x_8 = 86, + tegra_clk_hda2hdmi = 87, + tegra_clk_hdmi = 88, + tegra_clk_hdmi_audio = 89, + tegra_clk_host1x = 90, + tegra_clk_host1x_8 = 91, + tegra_clk_host1x_9 = 92, + tegra_clk_hsic_trk = 93, + tegra_clk_i2c1 = 94, + tegra_clk_i2c2 = 95, + tegra_clk_i2c3 = 96, + tegra_clk_i2c4 = 97, + tegra_clk_i2c5 = 98, + tegra_clk_i2c6 = 99, + tegra_clk_i2cslow = 100, + tegra_clk_i2s0 = 101, + tegra_clk_i2s0_sync = 102, + tegra_clk_i2s1 = 103, + tegra_clk_i2s1_sync = 104, + tegra_clk_i2s2 = 105, + tegra_clk_i2s2_sync = 106, + tegra_clk_i2s3 = 107, + tegra_clk_i2s3_sync = 108, + tegra_clk_i2s4 = 109, + tegra_clk_i2s4_sync = 110, + tegra_clk_isp = 111, + tegra_clk_isp_8 = 112, + tegra_clk_isp_9 = 113, + tegra_clk_ispb = 114, + tegra_clk_kbc = 115, + tegra_clk_kfuse = 116, + tegra_clk_la = 117, + tegra_clk_maud = 118, + tegra_clk_mipi = 119, + tegra_clk_mipibif = 120, + tegra_clk_mipi_cal = 121, + tegra_clk_mpe = 122, + tegra_clk_mselect = 123, + tegra_clk_msenc = 124, + tegra_clk_ndflash = 125, + tegra_clk_ndflash_8 = 126, + tegra_clk_ndspeed = 127, + tegra_clk_ndspeed_8 = 128, + tegra_clk_nor = 129, + tegra_clk_nvdec = 130, + tegra_clk_nvenc = 131, + tegra_clk_nvjpg = 132, + tegra_clk_owr = 133, + tegra_clk_owr_8 = 134, + tegra_clk_pcie = 135, + tegra_clk_pclk = 136, + tegra_clk_pll_a = 137, + tegra_clk_pll_a_out0 = 138, + tegra_clk_pll_a1 = 139, + tegra_clk_pll_c = 140, + tegra_clk_pll_c2 = 141, + tegra_clk_pll_c3 = 142, + tegra_clk_pll_c4 = 143, + tegra_clk_pll_c4_out0 = 144, + tegra_clk_pll_c4_out1 = 145, + tegra_clk_pll_c4_out2 = 146, + tegra_clk_pll_c4_out3 = 147, + tegra_clk_pll_c_out1 = 148, + tegra_clk_pll_d = 149, + tegra_clk_pll_d2 = 150, + tegra_clk_pll_d2_out0 = 151, + tegra_clk_pll_d_out0 = 152, + tegra_clk_pll_dp = 153, + tegra_clk_pll_e_out0 = 154, + tegra_clk_pll_g_ref = 155, + tegra_clk_pll_m = 156, + tegra_clk_pll_m_out1 = 157, + tegra_clk_pll_mb = 158, + tegra_clk_pll_p = 159, + tegra_clk_pll_p_out1 = 160, + tegra_clk_pll_p_out2 = 161, + tegra_clk_pll_p_out2_int = 162, + tegra_clk_pll_p_out3 = 163, + tegra_clk_pll_p_out4 = 164, + tegra_clk_pll_p_out4_cpu = 165, + tegra_clk_pll_p_out5 = 166, + tegra_clk_pll_p_out_hsio = 167, + tegra_clk_pll_p_out_xusb = 168, + tegra_clk_pll_p_out_cpu = 169, + tegra_clk_pll_p_out_adsp = 170, + tegra_clk_pll_ref = 171, + tegra_clk_pll_re_out = 172, + tegra_clk_pll_re_vco = 173, + tegra_clk_pll_u = 174, + tegra_clk_pll_u_out = 175, + tegra_clk_pll_u_out1 = 176, + tegra_clk_pll_u_out2 = 177, + tegra_clk_pll_u_12m = 178, + tegra_clk_pll_u_480m = 179, + tegra_clk_pll_u_48m = 180, + tegra_clk_pll_u_60m = 181, + tegra_clk_pll_x = 182, + tegra_clk_pll_x_out0 = 183, + tegra_clk_pwm = 184, + tegra_clk_qspi = 185, + tegra_clk_rtc = 186, + tegra_clk_sata = 187, + tegra_clk_sata_8 = 188, + tegra_clk_sata_cold = 189, + tegra_clk_sata_oob = 190, + tegra_clk_sata_oob_8 = 191, + tegra_clk_sbc1 = 192, + tegra_clk_sbc1_8 = 193, + tegra_clk_sbc1_9 = 194, + tegra_clk_sbc2 = 195, + tegra_clk_sbc2_8 = 196, + tegra_clk_sbc2_9 = 197, + tegra_clk_sbc3 = 198, + tegra_clk_sbc3_8 = 199, + tegra_clk_sbc3_9 = 200, + tegra_clk_sbc4 = 201, + tegra_clk_sbc4_8 = 202, + tegra_clk_sbc4_9 = 203, + tegra_clk_sbc5 = 204, + tegra_clk_sbc5_8 = 205, + tegra_clk_sbc6 = 206, + tegra_clk_sbc6_8 = 207, + tegra_clk_sclk = 208, + tegra_clk_sdmmc_legacy = 209, + tegra_clk_sdmmc1 = 210, + tegra_clk_sdmmc1_8 = 211, + tegra_clk_sdmmc1_9 = 212, + tegra_clk_sdmmc2 = 213, + tegra_clk_sdmmc2_8 = 214, + tegra_clk_sdmmc3 = 215, + tegra_clk_sdmmc3_8 = 216, + tegra_clk_sdmmc3_9 = 217, + tegra_clk_sdmmc4 = 218, + tegra_clk_sdmmc4_8 = 219, + tegra_clk_se = 220, + tegra_clk_se_10 = 221, + tegra_clk_soc_therm = 222, + tegra_clk_soc_therm_8 = 223, + tegra_clk_sor0 = 224, + tegra_clk_sor0_out = 225, + tegra_clk_sor1 = 226, + tegra_clk_sor1_out = 227, + tegra_clk_spdif = 228, + tegra_clk_spdif_2x = 229, + tegra_clk_spdif_in = 230, + tegra_clk_spdif_in_8 = 231, + tegra_clk_spdif_in_sync = 232, + tegra_clk_spdif_mux = 233, + tegra_clk_spdif_out = 234, + tegra_clk_timer = 235, + tegra_clk_trace = 236, + tegra_clk_tsec = 237, + tegra_clk_tsec_8 = 238, + tegra_clk_tsecb = 239, + tegra_clk_tsensor = 240, + tegra_clk_tvdac = 241, + tegra_clk_tvo = 242, + tegra_clk_uarta = 243, + tegra_clk_uarta_8 = 244, + tegra_clk_uartb = 245, + tegra_clk_uartb_8 = 246, + tegra_clk_uartc = 247, + tegra_clk_uartc_8 = 248, + tegra_clk_uartd = 249, + tegra_clk_uartd_8 = 250, + tegra_clk_uarte = 251, + tegra_clk_uarte_8 = 252, + tegra_clk_uartape = 253, + tegra_clk_usb2 = 254, + tegra_clk_usb2_hsic_trk = 255, + tegra_clk_usb2_trk = 256, + tegra_clk_usb3 = 257, + tegra_clk_usbd = 258, + tegra_clk_vcp = 259, + tegra_clk_vde = 260, + tegra_clk_vde_8 = 261, + tegra_clk_vfir = 262, + tegra_clk_vi = 263, + tegra_clk_vi_8 = 264, + tegra_clk_vi_9 = 265, + tegra_clk_vi_10 = 266, + tegra_clk_vi_i2c = 267, + tegra_clk_vic03 = 268, + tegra_clk_vic03_8 = 269, + tegra_clk_vim2_clk = 270, + tegra_clk_vimclk_sync = 271, + tegra_clk_vi_sensor = 272, + tegra_clk_vi_sensor_8 = 273, + tegra_clk_vi_sensor_9 = 274, + tegra_clk_vi_sensor2 = 275, + tegra_clk_vi_sensor2_8 = 276, + tegra_clk_xusb_dev = 277, + tegra_clk_xusb_dev_src = 278, + tegra_clk_xusb_dev_src_8 = 279, + tegra_clk_xusb_falcon_src = 280, + tegra_clk_xusb_falcon_src_8 = 281, + tegra_clk_xusb_fs_src = 282, + tegra_clk_xusb_gate = 283, + tegra_clk_xusb_host = 284, + tegra_clk_xusb_host_src = 285, + tegra_clk_xusb_host_src_8 = 286, + tegra_clk_xusb_hs_src = 287, + tegra_clk_xusb_hs_src_4 = 288, + tegra_clk_xusb_ss = 289, + tegra_clk_xusb_ss_src = 290, + tegra_clk_xusb_ss_src_8 = 291, + tegra_clk_xusb_ss_div2 = 292, + tegra_clk_xusb_ssp_src = 293, + tegra_clk_sclk_mux = 294, + tegra_clk_sor_safe = 295, + tegra_clk_cec = 296, + tegra_clk_ispa = 297, + tegra_clk_dmic1 = 298, + tegra_clk_dmic2 = 299, + tegra_clk_dmic3 = 300, + tegra_clk_dmic1_sync_clk = 301, + tegra_clk_dmic2_sync_clk = 302, + tegra_clk_dmic3_sync_clk = 303, + tegra_clk_dmic1_sync_clk_mux = 304, + tegra_clk_dmic2_sync_clk_mux = 305, + tegra_clk_dmic3_sync_clk_mux = 306, + tegra_clk_iqc1 = 307, + tegra_clk_iqc2 = 308, + tegra_clk_pll_a_out_adsp = 309, + tegra_clk_pll_a_out0_out_adsp = 310, + tegra_clk_adsp = 311, + tegra_clk_adsp_neon = 312, + tegra_clk_max = 313, }; -typedef struct mempool_s mempool_t; +struct tegra_clk { + int dt_id; + bool present; +}; -struct bio; +struct pdiv_map; -struct bio_list { - struct bio *head; - struct bio *tail; -}; +struct div_nmp; -struct bio_alloc_cache; +struct tegra_clk_pll_freq_table; -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 tegra_clk_pll; -typedef unsigned int blk_mode_t; +struct tegra_clk_pll_params { + unsigned long input_min; + unsigned long input_max; + unsigned long cf_min; + unsigned long cf_max; + unsigned long vco_min; + unsigned long vco_max; + u32 base_reg; + u32 misc_reg; + u32 lock_reg; + u32 lock_mask; + u32 lock_enable_bit_idx; + u32 iddq_reg; + u32 iddq_bit_idx; + u32 reset_reg; + u32 reset_bit_idx; + u32 sdm_din_reg; + u32 sdm_din_mask; + u32 sdm_ctrl_reg; + u32 sdm_ctrl_en_mask; + u32 ssc_ctrl_reg; + u32 ssc_ctrl_en_mask; + u32 aux_reg; + u32 dyn_ramp_reg; + u32 ext_misc_reg[6]; + u32 pmc_divnm_reg; + u32 pmc_divp_reg; + u32 flags; + int stepa_shift; + int stepb_shift; + int lock_delay; + int max_p; + bool defaults_set; + const struct pdiv_map *pdiv_tohw; + struct div_nmp *div_nmp; + struct tegra_clk_pll_freq_table *freq_table; + unsigned long fixed_rate; + u16 mdiv_default; + u32 (*round_p_to_pdiv)(u32, u32 *); + void (*set_gain)(struct tegra_clk_pll_freq_table *); + int (*calc_rate)(struct clk_hw *, struct tegra_clk_pll_freq_table *, unsigned long, unsigned long); + unsigned long (*adjust_vco)(struct tegra_clk_pll_params *, unsigned long); + void (*set_defaults)(struct tegra_clk_pll *); + int (*dyn_ramp)(struct tegra_clk_pll *, struct tegra_clk_pll_freq_table *); + int (*pre_rate_change)(); + void (*post_rate_change)(); +}; -struct block_device_operations; +struct pdiv_map { + u8 pdiv; + u8 hw_val; +}; -struct timer_rand_state; +struct div_nmp { + u8 divn_shift; + u8 divn_width; + u8 divm_shift; + u8 divm_width; + u8 divp_shift; + u8 divp_width; + u8 override_divn_shift; + u8 override_divm_shift; + u8 override_divp_shift; +}; -struct disk_events; +struct tegra_clk_pll_freq_table { + unsigned long input_rate; + unsigned long output_rate; + u32 n; + u32 m; + u8 p; + u8 cpcon; + u16 sdm_data; +}; -struct cdrom_device_info; +struct tegra_clk_pll { + struct clk_hw hw; + void *clk_base; + void *pmc; + spinlock_t *lock; + struct tegra_clk_pll_params *params; +}; -struct badblocks; +struct rcar_dmac_of_data { + u32 chan_offset_base; + u32 chan_offset_stride; +}; -struct blk_independent_access_ranges; +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, +}; -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 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; - blk_mode_t open_mode; - struct blk_independent_access_ranges *ia_ranges; +enum dma_desc_metadata_mode { + DESC_METADATA_NONE = 0, + DESC_METADATA_CLIENT = 1, + DESC_METADATA_ENGINE = 2, }; -struct blk_zone; +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, +}; -typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); +enum dma_residue_granularity { + DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, + DMA_RESIDUE_GRANULARITY_SEGMENT = 1, + DMA_RESIDUE_GRANULARITY_BURST = 2, +}; -struct hd_geometry; +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, +}; -struct pr_ops; +enum dmaengine_tx_result { + DMA_TRANS_NOERROR = 0, + DMA_TRANS_READ_FAILED = 1, + DMA_TRANS_WRITE_FAILED = 2, + DMA_TRANS_ABORTED = 3, +}; -struct block_device_operations { - void (*submit_bio)(struct bio *); - int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int); - int (*open)(struct gendisk *, blk_mode_t); - void (*release)(struct gendisk *); - int (*ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); - int (*compat_ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); - unsigned int (*check_events)(struct gendisk *, unsigned int); - void (*unlock_native_capacity)(struct gendisk *); - int (*getgeo)(struct block_device *, struct hd_geometry *); - int (*set_read_only)(struct block_device *, bool); - void (*free_disk)(struct gendisk *); - void (*swap_slot_free_notify)(struct block_device *, unsigned long); - int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *); - char * (*devnode)(struct gendisk *, umode_t *); - int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id); - struct module *owner; - const struct pr_ops *pr_ops; - int (*alternative_gpt_sector)(struct gendisk *, sector_t *); +enum sum_check_flags { + SUM_CHECK_P_RESULT = 1, + SUM_CHECK_Q_RESULT = 2, }; -typedef __u32 blk_opf_t; +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, +}; -typedef u8 blk_status_t; +enum dma_status { + DMA_COMPLETE = 0, + DMA_IN_PROGRESS = 1, + DMA_PAUSED = 2, + DMA_ERROR = 3, + DMA_OUT_OF_ORDER = 4, +}; -struct bvec_iter { - sector_t bi_sector; - unsigned int bi_size; - unsigned int bi_idx; - unsigned int bi_bvec_done; +enum dma_transaction_type { + DMA_MEMCPY = 0, + DMA_XOR = 1, + DMA_PQ = 2, + DMA_XOR_VAL = 3, + DMA_PQ_VAL = 4, + DMA_MEMSET = 5, + DMA_MEMSET_SG = 6, + DMA_INTERRUPT = 7, + DMA_PRIVATE = 8, + DMA_ASYNC_TX = 9, + DMA_SLAVE = 10, + DMA_CYCLIC = 11, + DMA_INTERLEAVE = 12, + DMA_COMPLETION_NO_ORDER = 13, + DMA_REPEAT = 14, + DMA_LOAD_EOT = 15, + DMA_TX_TYPE_END = 16, }; -typedef unsigned int blk_qc_t; +typedef s32 dma_cookie_t; -typedef void bio_end_io_t(struct bio *); +struct dma_device; -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; - 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 dma_chan_dev; -struct bio_alloc_cache { - struct bio *free_list; - struct bio *free_list_irq; - unsigned int nr; - unsigned int nr_irq; -}; +struct dma_chan_percpu; -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]; -}; +struct dma_router; -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 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 pr_keys; - -struct pr_held_reservation; +struct rcar_dmac_chan_slave { + phys_addr_t slave_addr; + unsigned int xfer_size; +}; -struct pr_ops { - int (*pr_register)(struct block_device *, u64, u64, u32); - int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32); - int (*pr_release)(struct block_device *, u64, enum pr_type); - int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool); - int (*pr_clear)(struct block_device *, u64); - int (*pr_read_keys)(struct block_device *, struct pr_keys *); - int (*pr_read_reservation)(struct block_device *, struct pr_held_reservation *); +struct rcar_dmac_chan_map { + dma_addr_t addr; + enum dma_data_direction dir; + struct rcar_dmac_chan_slave slave; }; -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 rcar_dmac_desc; + +struct rcar_dmac_chan { + struct dma_chan chan; + void *iomem; + unsigned int index; + int irq; + struct rcar_dmac_chan_slave src; + struct rcar_dmac_chan_slave dst; + struct rcar_dmac_chan_map map; + int mid_rid; + spinlock_t lock; + struct { + struct list_head free; + struct list_head pending; + struct list_head active; + struct list_head done; + struct list_head wait; + struct rcar_dmac_desc *running; + struct list_head chunks_free; + struct list_head pages; + } desc; }; -struct elevator_queue; +typedef bool (*dma_filter_fn)(struct dma_chan *, void *); -struct blk_queue_stats; +struct dma_slave_map; -struct rq_qos; +struct dma_filter { + dma_filter_fn fn; + int mapcnt; + const struct dma_slave_map *map; +}; -struct blk_mq_ops; +typedef struct { + unsigned long bits[1]; +} dma_cap_mask_t; -struct blk_mq_ctx; +struct dma_async_tx_descriptor; -struct blk_mq_tags; +struct dma_interleaved_template; -struct blk_trace; +struct dma_slave_caps; -struct blk_flush_queue; +struct dma_slave_config; -struct blk_mq_tag_set; +struct dma_tx_state; -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; - struct mutex rq_qos_mutex; - 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 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; - enum rpm_status rpm_status; - unsigned long nr_requests; - unsigned int dma_pad_mask; - unsigned int rq_timeout; - 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; - 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 flush_list; - 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; + 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; }; -enum blk_eh_timer_return { - BLK_EH_DONE = 0, - BLK_EH_RESET_TIMER = 1, +struct dma_slave_map { + const char *devname; + const char *slave; + void *param; }; -struct blk_mq_hw_ctx; - -struct blk_mq_queue_data; +typedef void (*dma_async_tx_callback)(void *); -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 dmaengine_result; -struct blk_mq_ctxs; +typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); -struct blk_mq_ctx { - struct { - spinlock_t lock; - struct list_head rq_lists[3]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - }; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; +struct dmaengine_unmap_data; -struct rchan; +struct dma_descriptor_metadata_ops; -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; - long: 32; - u64 start_lba; - u64 end_lba; - u32 pid; - u32 dev; - struct dentry *dir; - struct list_head running_list; - atomic_t dropped; +struct dma_async_tx_descriptor { + dma_cookie_t cookie; + enum dma_ctrl_flags flags; + dma_addr_t phys; + struct dma_chan *chan; + dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *); + int (*desc_free)(struct dma_async_tx_descriptor *); + dma_async_tx_callback callback; + dma_async_tx_callback_result callback_result; + void *callback_param; + struct dmaengine_unmap_data *unmap; + enum dma_desc_metadata_mode desc_metadata_mode; + struct dma_descriptor_metadata_ops *metadata_ops; + struct dma_async_tx_descriptor *next; + struct dma_async_tx_descriptor *parent; + spinlock_t lock; }; -struct blk_independent_access_range { - struct kobject kobj; - long: 32; - sector_t sector; - sector_t nr_sectors; +struct dmaengine_result { + enum dmaengine_tx_result result; + u32 residue; }; -struct blk_independent_access_ranges { - struct kobject kobj; - bool sysfs_registered; - unsigned int nr_ia_ranges; - long: 32; - struct blk_independent_access_range ia_range[0]; +struct dmaengine_unmap_data { + u16 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 partition_meta_info { - char uuid[37]; - u8 volname[64]; +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 blk_plug { - struct request *mq_list; - struct request *cached_rq; - unsigned short nr_ios; - unsigned short rq_count; - bool multiple_queues; - bool has_elevator; - struct list_head cb_list; +struct data_chunk { + size_t size; + size_t icg; + size_t dst_icg; + size_t src_icg; }; -struct fiemap_extent; +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 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 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 fiemap_extent { - __u64 fe_logical; - __u64 fe_physical; - __u64 fe_length; - __u64 fe_reserved64[2]; - __u32 fe_flags; - __u32 fe_reserved[3]; +struct dma_slave_config { + enum dma_transfer_direction direction; + phys_addr_t src_addr; + phys_addr_t dst_addr; + enum dma_slave_buswidth src_addr_width; + enum dma_slave_buswidth dst_addr_width; + u32 src_maxburst; + u32 dst_maxburst; + u32 src_port_window_size; + u32 dst_port_window_size; + bool device_fc; + void *peripheral_config; + size_t peripheral_size; }; -struct journal_header_s { - __be32 h_magic; - __be32 h_blocktype; - __be32 h_sequence; +struct dma_tx_state { + dma_cookie_t last; + dma_cookie_t used; + u32 residue; + u32 in_flight_bytes; }; -typedef struct journal_header_s journal_header_t; +struct dma_chan_dev { + struct dma_chan *chan; + long: 32; + struct device device; + int dev_id; + bool chan_dma_dev; +}; -struct journal_superblock_s { - journal_header_t s_header; - __be32 s_blocksize; - __be32 s_maxlen; - __be32 s_first; - __be32 s_sequence; - __be32 s_start; - __be32 s_errno; - __be32 s_feature_compat; - __be32 s_feature_incompat; - __be32 s_feature_ro_compat; - __u8 s_uuid[16]; - __be32 s_nr_users; - __be32 s_dynsuper; - __be32 s_max_transaction; - __be32 s_max_trans_data; - __u8 s_checksum_type; - __u8 s_padding2[3]; - __be32 s_num_fc_blks; - __be32 s_head; - __u32 s_padding[40]; - __be32 s_checksum; - __u8 s_users[768]; +struct dma_chan_percpu { + unsigned long memcpy_count; + unsigned long bytes_transferred; }; -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 dma_router { + struct device *dev; + void (*route_free)(struct device *, void *); }; -struct crypto_alg; +struct rcar_dmac_xfer_chunk; -struct crypto_tfm { - refcount_t refcnt; - u32 crt_flags; - int node; - void (*exit)(struct crypto_tfm *); - struct crypto_alg *__crt_alg; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - void *__crt_ctx[0]; -}; +struct rcar_dmac_hw_desc; -struct crypto_shash { - unsigned int descsize; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct crypto_tfm base; +struct rcar_dmac_desc { + struct dma_async_tx_descriptor async_tx; + enum dma_transfer_direction direction; + unsigned int xfer_shift; + u32 chcr; + struct list_head node; + struct list_head chunks; + struct rcar_dmac_xfer_chunk *running; + unsigned int nchunks; + struct { + bool use; + struct rcar_dmac_hw_desc *mem; + dma_addr_t dma; + size_t size; + } hwdescs; + unsigned int size; + bool cyclic; }; -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 rcar_dmac_xfer_chunk { + struct list_head node; + dma_addr_t src_addr; + dma_addr_t dst_addr; + u32 size; }; -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 rcar_dmac_hw_desc { + u32 sar; + u32 dar; + u32 tcr; + u32 reserved; }; -struct crypto_type; +struct rcar_dmac { + struct dma_device engine; + struct device *dev; + void *dmac_base; + void *chan_base; + unsigned int n_channels; + struct rcar_dmac_chan *channels; + u32 channels_mask; + unsigned long modules[8]; +}; -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; +struct rcar_dmac_desc_page { + struct list_head node; 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; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; + struct { + struct {} __empty_descs; + struct rcar_dmac_desc descs[0]; + }; + struct { + struct {} __empty_chunks; + struct rcar_dmac_xfer_chunk chunks[0]; + }; + }; }; -struct crypto_instance; +struct of_dma { + struct list_head of_dma_controllers; + struct device_node *of_node; + struct dma_chan * (*of_dma_xlate)(struct of_phandle_args *, struct of_dma *); + void * (*of_dma_route_allocate)(struct of_phandle_args *, struct of_dma *); + struct dma_router *dma_router; + void *of_dma_data; +}; -struct crypto_type { - unsigned int (*ctxsize)(struct crypto_alg *, u32, u32); - unsigned int (*extsize)(struct crypto_alg *); - int (*init_tfm)(struct crypto_tfm *); - void (*show)(struct seq_file *, struct crypto_alg *); - int (*report)(struct sk_buff *, struct crypto_alg *); - void (*free)(struct crypto_instance *); - unsigned int type; - unsigned int maskclear; - unsigned int maskset; - unsigned int tfmsize; +struct dmaengine_desc_callback { + dma_async_tx_callback callback; + dma_async_tx_callback_result callback_result; + void *callback_param; }; -struct jbd2_buffer_trigger_type; +struct renesas_family; -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 renesas_soc { + const struct renesas_family *family; + u32 id; }; -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 *); +struct renesas_family { + const char name[16]; + u32 reg; +}; + +struct renesas_id { + unsigned int offset; + u32 mask; +}; + +enum tegra_revision { + TEGRA_REVISION_UNKNOWN = 0, + TEGRA_REVISION_A01 = 1, + TEGRA_REVISION_A02 = 2, + TEGRA_REVISION_A03 = 3, + TEGRA_REVISION_A03p = 4, + TEGRA_REVISION_A04 = 5, + TEGRA_REVISION_MAX = 6, +}; + +enum tegra_platform { + TEGRA_PLATFORM_SILICON = 0, + TEGRA_PLATFORM_QT = 1, + TEGRA_PLATFORM_SYSTEM_FPGA = 2, + TEGRA_PLATFORM_UNIT_FPGA = 3, + TEGRA_PLATFORM_ASIM_QT = 4, + TEGRA_PLATFORM_ASIM_LINSIM = 5, + TEGRA_PLATFORM_DSIM_ASIM_LINSIM = 6, + TEGRA_PLATFORM_VERIFICATION_SIMULATION = 7, + TEGRA_PLATFORM_VDK = 8, + TEGRA_PLATFORM_VSP = 9, + TEGRA_PLATFORM_MAX = 10, }; 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, + THRESHOLD_INDEX_0 = 0, + THRESHOLD_INDEX_1 = 1, + THRESHOLD_INDEX_2 = 2, + THRESHOLD_INDEX_3 = 3, + THRESHOLD_INDEX_4 = 4, + THRESHOLD_INDEX_5 = 5, + THRESHOLD_INDEX_6 = 6, + THRESHOLD_INDEX_7 = 7, + THRESHOLD_INDEX_8 = 8, + THRESHOLD_INDEX_9 = 9, + THRESHOLD_INDEX_10 = 10, + THRESHOLD_INDEX_11 = 11, + THRESHOLD_INDEX_COUNT = 12, }; -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, +struct tegra_sku_info { + int sku_id; + int cpu_process_id; + int cpu_speedo_id; + int cpu_speedo_value; + int cpu_iddq_value; + int soc_process_id; + int soc_speedo_id; + int soc_speedo_value; + int gpu_process_id; + int gpu_speedo_id; + int gpu_speedo_value; + enum tegra_revision revision; + enum tegra_platform platform; }; -enum ext4_li_mode { - EXT4_LI_MODE_PREFETCH_BBITMAP = 0, - EXT4_LI_MODE_ITABLE = 1, +typedef int (*config_clks_t)(struct device *, struct opp_table *, struct dev_pm_opp *, void *, bool); + +typedef int (*config_regulators_t)(struct device *, struct dev_pm_opp *, struct dev_pm_opp *, struct regulator **, unsigned int); + +struct dev_pm_opp_config { + const char * const *clk_names; + config_clks_t config_clks; + const char *prop_name; + config_regulators_t config_regulators; + const unsigned int *supported_hw; + unsigned int supported_hw_count; + const char * const *regulator_names; + const char * const *genpd_names; + struct device ***virt_devs; }; -typedef unsigned long long ext4_fsblk_t; +struct tegra_core_opp_params { + bool init_state; +}; -typedef unsigned int ext4_group_t; +struct imx_pgc_domain; -typedef __u32 ext4_lblk_t; +struct imx_pgc_regs; -struct extent_status; +struct imx_pgc_domain_data { + const struct imx_pgc_domain *domains; + size_t domains_num; + const struct regmap_access_table *reg_access_table; + const struct imx_pgc_regs *pgc_regs; +}; -struct ext4_es_tree { - struct rb_root root; - struct extent_status *cache_es; +struct reset_control; + +struct clk_bulk_data; + +struct imx_pgc_domain { + struct generic_pm_domain genpd; + struct regmap *regmap; + const struct imx_pgc_regs *regs; + struct regulator *regulator; + struct reset_control *reset; + struct clk_bulk_data *clks; + int num_clks; + unsigned long pgc; + const struct { + u32 pxx; + u32 map; + u32 hskreq; + u32 hskack; + } bits; + const int voltage; + const bool keep_clocks; + struct device *dev; + unsigned int pgc_sw_pup_reg; + unsigned int pgc_sw_pdn_reg; }; -struct ext4_pending_tree { - struct rb_root root; +struct imx_pgc_regs { + u16 map; + u16 pup; + u16 pdn; + u16 hsk; }; -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_state_flags; - 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; - long: 32; - loff_t i_disksize; - struct rw_semaphore i_data_sem; - struct inode vfs_inode; - struct jbd2_inode *jinode; - spinlock_t i_raw_lock; - struct timespec64 i_crtime; - atomic_t i_prealloc_active; - struct rb_root i_prealloc_node; - rwlock_t i_prealloc_lock; - struct ext4_es_tree i_es_tree; - rwlock_t i_es_lock; - struct list_head i_es_list; - unsigned int i_es_all_nr; - unsigned int i_es_shk_nr; - ext4_lblk_t i_es_shrink_lblk; - ext4_group_t i_last_alloc_group; - unsigned int i_reserved_data_blocks; - struct ext4_pending_tree i_pending_tree; - __u16 i_extra_isize; - u16 i_inline_off; - u16 i_inline_size; - spinlock_t i_completed_io_lock; - struct list_head i_rsv_conversion_list; - struct work_struct i_rsv_conversion_work; - atomic_t i_unwritten; - spinlock_t i_block_reservation_lock; - tid_t i_sync_tid; - tid_t i_datasync_tid; - __u32 i_csum_seed; - kprojid_t i_projid; - long: 32; +struct clk_bulk_data { + const char *id; + struct clk *clk; }; -struct extent_status { - struct rb_node rb_node; - ext4_lblk_t es_lblk; - ext4_lblk_t es_len; - long: 32; - ext4_fsblk_t es_pblk; +struct linear_range; + +struct bcm590xx_info { + const char *name; + const char *vin_name; + u8 n_voltages; + const unsigned int *volt_table; + u8 n_linear_ranges; + const struct linear_range *linear_ranges; }; -typedef __u16 __le16; +struct linear_range { + unsigned int min; + unsigned int min_sel; + unsigned int max_sel; + unsigned int step; +}; -struct ext4_extent_header { - __le16 eh_magic; - __le16 eh_entries; - __le16 eh_max; - __le16 eh_depth; - __le32 eh_generation; +struct regulator_dev; + +struct regulator_ops { + int (*list_voltage)(struct regulator_dev *, unsigned int); + int (*set_voltage)(struct regulator_dev *, int, int, unsigned int *); + int (*map_voltage)(struct regulator_dev *, int, int); + int (*set_voltage_sel)(struct regulator_dev *, unsigned int); + int (*get_voltage)(struct regulator_dev *); + int (*get_voltage_sel)(struct regulator_dev *); + int (*set_current_limit)(struct regulator_dev *, int, int); + int (*get_current_limit)(struct regulator_dev *); + int (*set_input_current_limit)(struct regulator_dev *, int); + int (*set_over_current_protection)(struct regulator_dev *, int, int, bool); + int (*set_over_voltage_protection)(struct regulator_dev *, int, int, bool); + int (*set_under_voltage_protection)(struct regulator_dev *, int, int, bool); + int (*set_thermal_protection)(struct regulator_dev *, int, int, bool); + int (*set_active_discharge)(struct regulator_dev *, bool); + int (*enable)(struct regulator_dev *); + int (*disable)(struct regulator_dev *); + int (*is_enabled)(struct regulator_dev *); + int (*set_mode)(struct regulator_dev *, unsigned int); + unsigned int (*get_mode)(struct regulator_dev *); + int (*get_error_flags)(struct regulator_dev *, unsigned int *); + int (*enable_time)(struct regulator_dev *); + int (*set_ramp_delay)(struct regulator_dev *, int); + int (*set_voltage_time)(struct regulator_dev *, int, int); + int (*set_voltage_time_sel)(struct regulator_dev *, unsigned int, unsigned int); + int (*set_soft_start)(struct regulator_dev *); + int (*get_status)(struct regulator_dev *); + unsigned int (*get_optimum_mode)(struct regulator_dev *, int, int, int); + int (*set_load)(struct regulator_dev *, int); + int (*set_bypass)(struct regulator_dev *, bool); + int (*get_bypass)(struct regulator_dev *, bool *); + int (*set_suspend_voltage)(struct regulator_dev *, int); + int (*set_suspend_enable)(struct regulator_dev *); + int (*set_suspend_disable)(struct regulator_dev *); + int (*set_suspend_mode)(struct regulator_dev *, unsigned int); + int (*resume)(struct regulator_dev *); + int (*set_pull_down)(struct regulator_dev *); }; -struct ext4_extent; +struct regulator_coupler; -struct ext4_extent_idx; +struct coupling_desc { + struct regulator_dev **coupled_rdevs; + struct regulator_coupler *coupler; + int n_resolved; + int n_coupled; +}; -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 ww_acquire_ctx; + +struct ww_mutex { + struct mutex base; + struct ww_acquire_ctx *ctx; +}; + +struct regulator_desc; + +struct regulation_constraints; + +struct regulator_enable_gpio; + +struct regulator_dev { + const struct regulator_desc *desc; + int exclusive; + u32 use_count; + u32 open_count; + u32 bypass_count; + struct list_head list; + struct list_head consumer_list; + struct coupling_desc coupling_desc; + struct blocking_notifier_head notifier; + struct ww_mutex mutex; + struct task_struct *mutex_owner; + int ref_cnt; + struct module *owner; + long: 32; + struct device dev; + struct regulation_constraints *constraints; + struct regulator *supply; + const char *supply_name; + struct regmap *regmap; + struct delayed_work disable_work; + void *reg_data; + struct dentry *debugfs; + struct regulator_enable_gpio *ena_pin; + unsigned int ena_gpio_state: 1; + unsigned int is_switch: 1; + long: 32; + ktime_t last_off; + int cached_err; + bool use_cached_err; + spinlock_t err_lock; long: 32; }; -struct ext4_extent { - __le32 ee_block; - __le16 ee_len; - __le16 ee_start_hi; - __le32 ee_start_lo; +enum regulator_type { + REGULATOR_VOLTAGE = 0, + REGULATOR_CURRENT = 1, }; -struct ext4_extent_idx { - __le32 ei_block; - __le32 ei_leaf_lo; - __le16 ei_leaf_hi; - __u16 ei_unused; +struct regulator_config; + +struct regulator_desc { + const char *name; + const char *supply_name; + const char *of_match; + bool of_match_full_name; + const char *regulators_node; + int (*of_parse_cb)(struct device_node *, const struct regulator_desc *, struct regulator_config *); + int id; + unsigned int continuous_voltage_range: 1; + unsigned int n_voltages; + unsigned int n_current_limits; + const struct regulator_ops *ops; + int irq; + enum regulator_type type; + struct module *owner; + unsigned int min_uV; + unsigned int uV_step; + unsigned int linear_min_sel; + int fixed_uV; + unsigned int ramp_delay; + int min_dropout_uV; + const struct linear_range *linear_ranges; + const unsigned int *linear_range_selectors_bitfield; + int n_linear_ranges; + const unsigned int *volt_table; + const unsigned int *curr_table; + unsigned int vsel_range_reg; + unsigned int vsel_range_mask; + unsigned int vsel_reg; + unsigned int vsel_mask; + unsigned int vsel_step; + unsigned int csel_reg; + unsigned int csel_mask; + unsigned int apply_reg; + unsigned int apply_bit; + unsigned int enable_reg; + unsigned int enable_mask; + unsigned int enable_val; + unsigned int disable_val; + bool enable_is_inverted; + unsigned int bypass_reg; + unsigned int bypass_mask; + unsigned int bypass_val_on; + unsigned int bypass_val_off; + unsigned int active_discharge_on; + unsigned int active_discharge_off; + unsigned int active_discharge_mask; + unsigned int active_discharge_reg; + unsigned int soft_start_reg; + unsigned int soft_start_mask; + unsigned int soft_start_val_on; + unsigned int pull_down_reg; + unsigned int pull_down_mask; + unsigned int pull_down_val_on; + unsigned int ramp_reg; + unsigned int ramp_mask; + const unsigned int *ramp_delay_table; + unsigned int n_ramp_values; + unsigned int enable_time; + unsigned int off_on_delay; + unsigned int poll_enabled_time; + unsigned int (*of_map_mode)(unsigned int); }; -struct jbd2_journal_handle; +struct regulator_config { + struct device *dev; + const struct regulator_init_data *init_data; + void *driver_data; + struct device_node *of_node; + struct regmap *regmap; + struct gpio_desc *ena_gpiod; +}; -typedef struct jbd2_journal_handle handle_t; +struct regulator_state { + int uV; + int min_uV; + int max_uV; + unsigned int mode; + int enabled; + bool changeable; +}; -struct jbd2_journal_handle { - union { - transaction_t *h_transaction; - journal_t *h_journal; - }; - handle_t *h_rsv_handle; - int h_total_credits; - int h_revoke_credits; - int h_revoke_credits_requested; - int h_ref; - int h_err; - unsigned int h_sync: 1; - unsigned int h_jdata: 1; - unsigned int h_reserved: 1; - unsigned int h_aborted: 1; - unsigned int h_type: 8; - unsigned int h_line_no: 16; - unsigned long h_start_jiffies; - unsigned int h_requested_credits; - unsigned int saved_alloc_context; +struct notification_limit { + int prot; + int err; + int warn; }; -struct ext4_orphan_block; +typedef int suspend_state_t; -struct ext4_orphan_info { - int of_blocks; - __u32 of_csum_seed; - struct ext4_orphan_block *of_binfo; +struct regulation_constraints { + const char *name; + int min_uV; + int max_uV; + int uV_offset; + int min_uA; + int max_uA; + int ilim_uA; + int system_load; + u32 *max_spread; + int max_uV_step; + unsigned int valid_modes_mask; + unsigned int valid_ops_mask; + int input_uV; + struct regulator_state state_disk; + struct regulator_state state_mem; + struct regulator_state state_standby; + struct notification_limit over_curr_limits; + struct notification_limit over_voltage_limits; + struct notification_limit under_voltage_limits; + struct notification_limit temp_limits; + suspend_state_t initial_state; + unsigned int initial_mode; + unsigned int ramp_delay; + unsigned int settling_time; + unsigned int settling_time_up; + unsigned int settling_time_down; + unsigned int enable_time; + unsigned int active_discharge; + unsigned int always_on: 1; + unsigned int boot_on: 1; + unsigned int apply_uV: 1; + unsigned int ramp_disable: 1; + unsigned int soft_start: 1; + unsigned int pull_down: 1; + unsigned int over_current_protection: 1; + unsigned int over_current_detection: 1; + unsigned int over_voltage_detection: 1; + unsigned int under_voltage_detection: 1; + unsigned int over_temp_detection: 1; }; -struct ext4_es_stats { - unsigned long es_stats_shrunk; - long: 32; - 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 regulator_consumer_supply; + +struct regulator_init_data { + const char *supply_regulator; + struct regulation_constraints constraints; + int num_consumer_supplies; + struct regulator_consumer_supply *consumer_supplies; + int (*regulator_init)(void *); + void *driver_data; }; -struct ext4_journal_trigger { - struct jbd2_buffer_trigger_type tr_triggers; - struct super_block *sb; +struct regulator_consumer_supply { + const char *dev_name; + const char *supply; }; -struct fscrypt_dummy_policy {}; +struct ww_acquire_ctx { + struct task_struct *task; + unsigned long stamp; + unsigned int acquired; + unsigned short wounded; + unsigned short is_wait_die; +}; -struct dax_device; +struct bcm590xx; -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; - long: 32; - u64 s_fc_avg_commit_time; +struct bcm590xx_reg { + struct regulator_desc *desc; + struct bcm590xx *mfd; }; -struct ext4_fc_alloc_region; +struct bcm590xx { + struct device *dev; + struct i2c_client *i2c_pri; + struct i2c_client *i2c_sec; + struct regmap *regmap_pri; + struct regmap *regmap_sec; + unsigned int id; +}; -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; +enum { + PWR_REG11 = 0, + PWR_REG18 = 1, + PWR_USB33 = 2, + STM32PWR_REG_NUM_REGS = 3, }; -struct ext4_super_block; +struct stm32_pwr_reg { + void *base; + u32 ready_mask; +}; -struct blockgroup_lock; +struct brcm_rescal_reset { + void *base; + struct device *dev; + struct reset_controller_dev rcdev; +}; -struct ext4_system_blocks; +struct earlycon_device; -struct ext4_group_info; +struct earlycon_id { + char name[15]; + char name_term; + char compatible[128]; + int (*setup)(struct earlycon_device *, const char *); +}; -struct ext4_locality_group; +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; +}; -struct flex_groups; +typedef u64 upf_t; -struct ext4_li_request; +typedef unsigned int upstat_t; -struct mb_cache; +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 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; - long: 32; - loff_t s_bitmap_maxbytes; - struct buffer_head *s_sbh; - struct ext4_super_block *s_es; - struct buffer_head * __attribute__((btf_type_tag("rcu"))) *s_group_desc; - unsigned int s_mount_opt; - unsigned int s_mount_opt2; - unsigned long s_mount_flags; - unsigned int s_def_mount_opt; - unsigned int s_def_mount_opt2; - ext4_fsblk_t s_sb_block; - atomic64_t s_resv_clusters; - kuid_t s_resuid; - kgid_t s_resgid; - unsigned short s_mount_state; - unsigned short s_pad; - int s_addr_per_block_bits; - int s_desc_per_block_bits; - int s_inode_size; - int s_first_ino; - unsigned int s_inode_readahead_blks; - unsigned int s_inode_goal; - u32 s_hash_seed[4]; - int s_def_hash_version; - int s_hash_unsigned; - long: 32; - 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; - 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_max_dir_size_kb; - unsigned long s_mb_last_group; - unsigned long s_mb_last_start; - unsigned int s_mb_prefetch; - unsigned int s_mb_prefetch_limit; - unsigned int s_mb_best_avail_max_trim_order; - atomic_t s_bal_reqs; - atomic_t s_bal_success; - atomic_t s_bal_allocated; - atomic_t s_bal_ex_scanned; - atomic_t s_bal_cX_ex_scanned[5]; - atomic_t s_bal_groups_scanned; - atomic_t s_bal_goals; - atomic_t s_bal_len_goals; - atomic_t s_bal_breaks; - atomic_t s_bal_2orders; - atomic_t s_bal_p2_aligned_bad_suggestions; - atomic_t s_bal_goal_fast_bad_suggestions; - atomic_t s_bal_best_avail_bad_suggestions; - atomic64_t s_bal_cX_groups_considered[5]; - atomic64_t s_bal_cX_hits[5]; - atomic64_t s_bal_cX_failed[5]; - atomic_t s_mb_buddies_generated; - long: 32; - 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; - long: 32; - struct ext4_es_stats s_es_stats; - struct mb_cache *s_ea_block_cache; - struct mb_cache *s_ea_inode_cache; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - 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; - long: 32; - 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; - long: 32; - __u64 s_first_error_block; - const char *s_first_error_func; - long: 32; - time64_t s_first_error_time; - int s_last_error_code; - __u32 s_last_error_line; - __u32 s_last_error_ino; - long: 32; - __u64 s_last_error_block; - const char *s_last_error_func; - long: 32; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +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 serial_port_device; + +struct uart_port { + spinlock_t lock; + unsigned long iobase; + unsigned char *membase; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + void (*set_mctrl)(struct uart_port *, unsigned int); + unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *); + void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int); + int (*startup)(struct uart_port *); + void (*shutdown)(struct uart_port *); + void (*throttle)(struct uart_port *); + void (*unthrottle)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); + int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); + int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *); + unsigned int ctrl_id; + unsigned int port_id; + unsigned int irq; + unsigned long irqflags; + unsigned int uartclk; + unsigned int fifosize; + unsigned char x_char; + unsigned char regshift; + unsigned char iotype; + unsigned char quirks; + unsigned int read_status_mask; + unsigned int ignore_status_mask; + struct uart_state *state; + struct uart_icount icount; + struct console *cons; + upf_t flags; + upstat_t status; + bool hw_stopped; + unsigned int mctrl; + unsigned int frame_time; + unsigned int type; + const struct uart_ops *ops; + unsigned int custom_divisor; + unsigned int line; + unsigned int minor; + resource_size_t mapbase; + resource_size_t mapsize; + struct device *dev; + struct serial_port_device *port_dev; + unsigned long sysrq; + u8 sysrq_ch; + unsigned char has_sysrq; + unsigned char sysrq_seq; + unsigned char hub6; + unsigned char suspended; + unsigned char console_reinit; + const char *name; + struct attribute_group *attr_group; + const struct attribute_group **tty_groups; + struct serial_rs485 rs485; + struct serial_rs485 rs485_supported; + struct gpio_desc *rs485_term_gpio; + struct gpio_desc *rs485_rx_during_tx_gpio; + struct serial_iso7816 iso7816; + void *private_data; +}; + +struct earlycon_device { + struct console *con; long: 32; + struct uart_port port; + char options[32]; + unsigned int baud; long: 32; +}; + +typedef unsigned int uint; + +struct nbcon_write_context; + +struct printk_buffers; + +struct console { + char name[16]; + void (*write)(struct console *, const char *, unsigned int); + int (*read)(struct console *, char *, unsigned int); + struct tty_driver * (*device)(struct console *, int *); + void (*unblank)(); + int (*setup)(struct console *, char *); + int (*exit)(struct console *); + int (*match)(struct console *, char *, int, char *); + short flags; + short index; + int cflag; + uint ispeed; + uint ospeed; long: 32; + u64 seq; + unsigned long dropped; + void *data; + struct hlist_node node; + bool (*write_atomic)(struct console *, struct nbcon_write_context *); + atomic_t nbcon_state; + atomic_long_t nbcon_seq; + struct printk_buffers *pbufs; }; -typedef __u64 __le64; +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 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 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 bgl_lock { - spinlock_t lock; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +enum nbcon_prio { + NBCON_PRIO_NONE = 0, + NBCON_PRIO_NORMAL = 1, + NBCON_PRIO_EMERGENCY = 2, + NBCON_PRIO_PANIC = 3, + NBCON_PRIO_MAX = 4, +}; + +struct nbcon_context { + struct console *console; + unsigned int spinwait_max_us; + enum nbcon_prio prio; + unsigned int allow_unsafe_takeover: 1; + unsigned int backlog: 1; + struct printk_buffers *pbufs; long: 32; + u64 seq; +}; + +struct nbcon_write_context { + struct nbcon_context ctxt; + char *outbuf; + unsigned int len; + bool unsafe_takeover; long: 32; }; -struct blockgroup_lock { - struct bgl_lock locks[64]; +enum uart_pm_state { + UART_PM_STATE_ON = 0, + UART_PM_STATE_OFF = 3, + UART_PM_STATE_UNDEFINED = 4, }; -struct ext4_orphan_block { - atomic_t ob_free_entries; - struct buffer_head *ob_bh; +struct circ_buf { + char *buf; + int head; + int tail; }; -struct ext4_system_blocks { - struct rb_root root; - struct callback_head rcu; +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 int ext4_grpblk_t; +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 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]; +enum lpuart_type { + VF610_LPUART = 0, + LS1021A_LPUART = 1, + LS1028A_LPUART = 2, + IMX7ULP_LPUART = 3, + IMX8ULP_LPUART = 4, + IMX8QXP_LPUART = 5, + IMXRT1050_LPUART = 6, }; -struct ext4_locality_group { - struct mutex lg_mutex; - struct list_head lg_prealloc_list[10]; - spinlock_t lg_prealloc_lock; +struct lpuart_port { + struct uart_port port; + enum lpuart_type devtype; + struct clk *ipg_clk; + struct clk *baud_clk; + unsigned int txfifo_size; + unsigned int rxfifo_size; + u8 rx_watermark; + bool lpuart_dma_tx_use; + bool lpuart_dma_rx_use; + struct dma_chan *dma_tx_chan; + struct dma_chan *dma_rx_chan; + struct dma_async_tx_descriptor *dma_tx_desc; + struct dma_async_tx_descriptor *dma_rx_desc; + dma_cookie_t dma_tx_cookie; + dma_cookie_t dma_rx_cookie; + unsigned int dma_tx_bytes; + unsigned int dma_rx_bytes; + bool dma_tx_in_progress; + unsigned int dma_rx_timeout; + struct timer_list lpuart_timer; + struct scatterlist rx_sgl; + struct scatterlist tx_sgl[2]; + struct circ_buf rx_ring; + int rx_dma_rng_buf_len; + int last_residue; + unsigned int dma_tx_nents; + wait_queue_head_t dma_wait; + bool is_cs7; + bool dma_idle_int; }; -struct flex_groups { - atomic64_t free_clusters; - atomic_t free_inodes; - atomic_t used_dirs; +struct lpuart_soc_data { + enum lpuart_type devtype; + char iotype; + u8 reg_off; + u8 rx_watermark; }; -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 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 ext4_fc_alloc_region { - ext4_lblk_t lblk; - long: 32; - ext4_fsblk_t pblk; - int ino; - int len; +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 squashfs_inode_info { - u64 start; - int offset; +struct histb_rng_priv { + struct hwrng rng; + void *base; +}; + +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; long: 32; - u64 xattr; - unsigned int xattr_size; - int xattr_count; union { struct { - u64 fragment_block; - int fragment_size; - int fragment_offset; - u64 block_list_start; - }; + u64 ttbr; + struct { + u32 ips: 3; + u32 tg: 2; + u32 sh: 2; + u32 orgn: 2; + u32 irgn: 2; + u32 tsz: 6; + } tcr; + long: 32; + u64 mair; + } arm_lpae_s1_cfg; struct { - u64 dir_idx_start; - int dir_idx_offset; - int dir_idx_cnt; - int parent; + 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; long: 32; - }; + } 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; + long: 32; + } apple_dart_cfg; }; - struct inode vfs_inode; }; -struct squashfs_cache; +struct iommu_iotlb_gather; -struct squashfs_page_actor; +struct iommu_dirty_bitmap; -struct squashfs_cache_entry { - u64 block; - int length; - int refcount; - u64 next_index; - int pending; - int error; - int num_waiters; - wait_queue_head_t wait_queue; - struct squashfs_cache *cache; - void **data; - struct squashfs_page_actor *actor; - long: 32; +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); + int (*read_and_clear_dirty)(struct io_pgtable_ops *, unsigned long, size_t, unsigned long, struct iommu_dirty_bitmap *); }; -struct squashfs_cache { - char *name; - int entries; - int curr_blk; - int next_blk; - int num_waiters; - int unused; - int block_size; - int pages; - spinlock_t lock; - wait_queue_head_t wait_queue; - struct squashfs_cache_entry *entry; +struct io_pgtable { + enum io_pgtable_fmt fmt; + void *cookie; + struct io_pgtable_cfg cfg; + struct io_pgtable_ops ops; }; -struct squashfs_decompressor; +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 meta_index; +struct iommu_iotlb_gather { + unsigned long start; + unsigned long end; + size_t pgsize; + struct list_head freelist; + bool queued; +}; -struct squashfs_decompressor_thread_ops; +typedef int (*iommu_fault_handler_t)(struct iommu_domain *, struct device *, unsigned long, int, void *); -struct squashfs_sb_info { - const struct squashfs_decompressor *decompressor; - int devblksize; - int devblksize_log2; - struct squashfs_cache *block_cache; - struct squashfs_cache *fragment_cache; - struct squashfs_cache *read_page; - struct address_space *cache_mapping; - int next_meta_index; - __le64 *id_table; - __le64 *fragment_index; - __le64 *xattr_id_table; - struct mutex meta_index_mutex; - struct meta_index *meta_index; - void *stream; - __le64 *inode_lookup_table; - long: 32; - u64 inode_table; - u64 directory_table; - u64 xattr_table; - unsigned int block_size; - unsigned short block_log; - long long bytes_used; - unsigned int inodes; - unsigned int fragments; - unsigned int xattr_ids; - unsigned int ids; - bool panic_on_errors; - const struct squashfs_decompressor_thread_ops *thread_ops; - int max_thread_num; - long: 32; +struct iommu_domain_geometry { + dma_addr_t aperture_start; + dma_addr_t aperture_end; + bool force_aperture; }; -struct squashfs_decompressor { - void * (*init)(struct squashfs_sb_info *, void *); - void * (*comp_opts)(struct squashfs_sb_info *, void *, int); - void (*free)(void *); - int (*decompress)(struct squashfs_sb_info *, void *, struct bio *, int, int, struct squashfs_page_actor *); - int id; - char *name; - int alloc_buffer; - int supported; -}; +struct iommu_dma_cookie; -struct meta_entry { - u64 data_block; - unsigned int index_block; - unsigned short offset; - unsigned short pad; +enum iommu_page_response_code { + IOMMU_PAGE_RESP_SUCCESS = 0, + IOMMU_PAGE_RESP_INVALID = 1, + IOMMU_PAGE_RESP_FAILURE = 2, }; -struct meta_index { - unsigned int inode_number; - unsigned int offset; - unsigned short entries; - unsigned short skip; - unsigned short locked; - unsigned short pad; - struct meta_entry meta_entry[127]; -}; +struct iommu_dirty_ops; -struct squashfs_decompressor_thread_ops { - void * (*create)(struct squashfs_sb_info *, void *); - void (*destroy)(struct squashfs_sb_info *); - int (*decompress)(struct squashfs_sb_info *, struct bio *, int, int, struct squashfs_page_actor *); - int (*max_decompressors)(); -}; +struct iommu_fault; -struct posix_acl_entry { - short e_tag; - unsigned short e_perm; +struct iommu_domain { + unsigned int type; + const struct iommu_domain_ops *ops; + const struct iommu_dirty_ops *dirty_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 { - kuid_t e_uid; - kgid_t e_gid; + struct { + iommu_fault_handler_t handler; + void *handler_token; + }; + struct { + struct mm_struct *mm; + int users; + }; }; }; -struct posix_acl { - refcount_t a_refcount; - struct callback_head a_rcu; - unsigned int a_count; - struct posix_acl_entry a_entries[0]; +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_pages)(struct iommu_domain *, unsigned long, phys_addr_t, size_t, size_t, int, gfp_t, size_t *); + size_t (*unmap_pages)(struct iommu_domain *, unsigned long, size_t, size_t, struct iommu_iotlb_gather *); + void (*flush_iotlb_all)(struct iommu_domain *); + int (*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 *); }; -typedef __u64 __addrpair; +struct iommu_dirty_ops { + int (*set_dirty_tracking)(struct iommu_domain *, bool); + int (*read_and_clear_dirty)(struct iommu_domain *, unsigned long, size_t, unsigned long, struct iommu_dirty_bitmap *); +}; -typedef __u32 __portpair; +struct iova_bitmap; -struct hlist_nulls_node { - struct hlist_nulls_node *next; - struct hlist_nulls_node **pprev; +struct iommu_dirty_bitmap { + struct iova_bitmap *bitmap; + struct iommu_iotlb_gather *gather; }; -struct proto; +struct iommu_fault_unrecoverable { + __u32 reason; + __u32 flags; + __u32 pasid; + __u32 perm; + __u64 addr; + __u64 fetch_addr; +}; -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; - long: 32; - 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]; +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 { - u32 skc_rxhash; - u32 skc_window_clamp; - u32 skc_tw_snd_nxt; + struct iommu_fault_unrecoverable event; + struct iommu_fault_page_request prm; + __u8 padding2[56]; }; - long: 32; }; -typedef struct { - spinlock_t slock; - int owned; - wait_queue_head_t wq; -} socket_lock_t; - -struct sock_cgroup_data { - struct cgroup *cgroup; +struct iommu_user_data { + unsigned int type; + void __attribute__((btf_type_tag("user"))) *uptr; + size_t len; }; -typedef struct {} netns_tracker; +struct iommu_device { + struct list_head list; + const struct iommu_ops *ops; + struct fwnode_handle *fwnode; + struct device *dev; + struct iommu_group *singleton_group; + u32 max_pasids; +}; -struct sk_filter; +struct iommu_fault_event { + struct iommu_fault fault; + struct list_head list; +}; -struct socket_wq; +struct iommu_page_response { + __u32 argsz; + __u32 version; + __u32 flags; + __u32 pasid; + __u32 grpid; + __u32 code; +}; -struct xfrm_policy; +struct iopf_device_param; -struct socket; +struct iommu_fault_param; -struct sock_reuseport; +struct iommu_fwspec; -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; - int sk_wait_pending; - 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; - long: 32; - 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; - seqlock_t sk_stamp_seq; - 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; - 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 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; + u32 pci_32bit_workaround: 1; + u32 require_direct: 1; + u32 shadow_on_flush: 1; }; -struct smc_hashinfo; +typedef int (*iommu_dev_fault_handler_t)(struct iommu_fault *, void *); -typedef struct { - union { - void *kernel; - void __attribute__((btf_type_tag("user"))) *user; - }; - bool is_kernel: 1; -} sockptr_t; +struct iommu_fault_param { + iommu_dev_fault_handler_t handler; + void *data; + struct list_head faults; + struct mutex lock; +}; -typedef unsigned int slab_flags_t; +struct iommu_fwspec { + const struct iommu_ops *ops; + struct fwnode_handle *iommu_fwnode; + u32 flags; + unsigned int num_ids; + u32 ids[0]; +}; -struct msghdr; +struct arm_lpae_io_pgtable { + struct io_pgtable iop; + int pgd_bits; + int start_level; + int bits_per_level; + void *pgd; +}; -struct sk_psock; +typedef u64 arm_lpae_iopte; -struct request_sock_ops; +struct host1x_channel; -struct timewait_sock_ops; +struct host1x; -struct raw_hashinfo; +struct host1x_job; -struct proto { - void (*close)(struct sock *, long); - int (*pre_connect)(struct sock *, struct sockaddr *, int); - int (*connect)(struct sock *, struct sockaddr *, int); - int (*disconnect)(struct sock *, int); - struct sock * (*accept)(struct sock *, int, int *, bool); - int (*ioctl)(struct sock *, int, int *); - int (*init)(struct sock *); - void (*destroy)(struct sock *); - void (*shutdown)(struct sock *, int); - int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); - int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); - void (*keepalive)(struct sock *, int); - int (*sendmsg)(struct sock *, struct msghdr *, size_t); - int (*recvmsg)(struct sock *, struct msghdr *, size_t, int, int *); - void (*splice_eof)(struct socket *); - int (*bind)(struct sock *, struct sockaddr *, int); - int (*bind_add)(struct sock *, struct sockaddr *, int); - int (*backlog_rcv)(struct sock *, struct sk_buff *); - bool (*bpf_bypass_getsockopt)(int, int); - void (*release_cb)(struct sock *); - int (*hash)(struct sock *); - void (*unhash)(struct sock *); - void (*rehash)(struct sock *); - int (*get_port)(struct sock *, unsigned short); - void (*put_port)(struct sock *); - int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); - unsigned int inuse_idx; - bool (*stream_memory_free)(const struct sock *, int); - bool (*sock_is_readable)(struct sock *); - void (*enter_memory_pressure)(struct sock *); - void (*leave_memory_pressure)(struct sock *); - atomic_long_t *memory_allocated; - int __attribute__((btf_type_tag("percpu"))) *per_cpu_fw_alloc; - struct percpu_counter *sockets_allocated; - unsigned long *memory_pressure; - long *sysctl_mem; - int *sysctl_wmem; - int *sysctl_rmem; - u32 sysctl_wmem_offset; - u32 sysctl_rmem_offset; - int max_header; - bool no_autobind; - struct kmem_cache *slab; - unsigned int obj_size; - unsigned int ipv6_pinfo_offset; - slab_flags_t slab_flags; - unsigned int useroffset; - unsigned int usersize; - unsigned int __attribute__((btf_type_tag("percpu"))) *orphan_count; - struct request_sock_ops *rsk_prot; - struct timewait_sock_ops *twsk_prot; - union { - struct inet_hashinfo *hashinfo; - struct udp_table *udp_table; - struct raw_hashinfo *raw_hash; - struct smc_hashinfo *smc_hash; - } h; - struct module *owner; - char name[32]; - struct list_head node; - int (*diag_destroy)(struct sock *, int); -}; - -struct ubuf_info; - -struct msghdr { - void *msg_name; - int msg_namelen; - int msg_inq; - long: 32; - 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); - long: 32; +struct host1x_channel_ops { + int (*init)(struct host1x_channel *, struct host1x *, unsigned int); + int (*submit)(struct host1x_job *); }; -struct ubuf_info { - void (*callback)(struct sk_buff *, struct ubuf_info *, bool); - refcount_t refcnt; - u8 flags; +enum cdma_event { + CDMA_EVENT_NONE = 0, + CDMA_EVENT_SYNC_QUEUE_EMPTY = 1, + CDMA_EVENT_PUSH_BUFFER_SPACE = 2, }; -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 push_buffer { + void *mapped; + dma_addr_t dma; + dma_addr_t phys; + u32 fence; + u32 pos; + u32 size; + u32 alloc_size; }; -struct pneigh_entry; - -struct neigh_statistics; +struct host1x_syncpt; -struct neigh_hash_table; +struct host1x_client; -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 buffer_timeout { + struct delayed_work wq; + bool initialized; + struct host1x_syncpt *syncpt; + u32 syncpt_val; + ktime_t start_ktime; + struct host1x_client *client; + long: 32; }; -struct pneigh_entry { - struct pneigh_entry *next; - possible_net_t net; - struct net_device *dev; - netdevice_tracker dev_tracker; - u32 flags; - u8 protocol; - u32 key[0]; +struct host1x_cdma { + struct mutex lock; + struct completion complete; + enum cdma_event event; + unsigned int slots_used; + unsigned int slots_free; + unsigned int first_get; + unsigned int last_pos; + struct push_buffer push_buffer; + struct list_head sync_queue; + long: 32; + struct buffer_timeout timeout; + bool running; + bool torndown; + struct work_struct update_work; + long: 32; }; -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 host1x_channel { + struct kref refcount; + unsigned int id; + struct mutex submitlock; + void *regs; + struct host1x_client *client; + struct device *dev; + struct host1x_cdma cdma; }; -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; +enum host1x_class { + HOST1X_CLASS_HOST1X = 1, + HOST1X_CLASS_GR2D = 81, + HOST1X_CLASS_GR2D_SB = 82, + HOST1X_CLASS_VIC = 93, + HOST1X_CLASS_GR3D = 96, + HOST1X_CLASS_NVDEC = 240, + HOST1X_CLASS_NVDEC1 = 245, }; -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 host1x_bo_cache { + struct list_head mappings; + struct mutex lock; }; -struct ip6_sf_list; +struct host1x_client_ops; -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 host1x_client { + struct list_head list; + struct device *host; + struct device *dev; + struct iommu_group *group; + const struct host1x_client_ops *ops; + enum host1x_class class; + struct host1x_channel *channel; + struct host1x_syncpt **syncpts; + unsigned int num_syncpts; + struct host1x_client *parent; + unsigned int usecount; + struct mutex lock; + struct host1x_bo_cache cache; }; -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 host1x_client_ops { + int (*early_init)(struct host1x_client *); + int (*init)(struct host1x_client *); + int (*exit)(struct host1x_client *); + int (*late_exit)(struct host1x_client *); + int (*suspend)(struct host1x_client *); + int (*resume)(struct host1x_client *); }; -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 host1x_fence_list { + spinlock_t lock; + struct list_head list; }; -struct icmpv6_mib_device { - atomic_long_t mibs[7]; +struct host1x_syncpt_base; + +struct host1x_syncpt { + struct kref ref; + unsigned int id; + atomic_t min_val; + atomic_t max_val; + u32 base_val; + const char *name; + bool client_managed; + struct host1x *host; + struct host1x_syncpt_base *base; + struct host1x_fence_list fences; + bool locked; }; -struct icmpv6msg_mib_device { - atomic_long_t mibs[512]; +struct reset_control_bulk_data { + const char *id; + struct reset_control *rstc; }; -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 iova { + struct rb_node node; + unsigned long pfn_hi; + unsigned long pfn_lo; }; -struct fib_rule; +struct iova_rcache; -struct flowi; +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; +}; -struct fib_lookup_arg; +struct host1x_channel_list { + struct host1x_channel *channels; + struct mutex lock; + unsigned long *allocated_channels; +}; -struct fib_rule_hdr; +struct host1x_memory_context; -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; +struct host1x_memory_context_list { + struct mutex lock; + struct host1x_memory_context *devs; + unsigned int len; }; -typedef __u64 __be64; +struct host1x_info; -struct fib_kuid_range { - kuid_t start; - kuid_t end; -}; +struct host1x_syncpt_ops; -struct fib_rule_port_range { - __u16 start; - __u16 end; -}; +struct host1x_intr_ops; -struct fib_rule { +struct host1x_cdma_ops; + +struct host1x_pushbuffer_ops; + +struct host1x_debug_ops; + +struct host1x { + const struct host1x_info *info; + void *regs; + void *hv_regs; + void *common_regs; + int syncpt_irqs[8]; + int num_syncpt_irqs; + struct host1x_syncpt *syncpt; + struct host1x_syncpt_base *bases; + struct device *dev; + struct clk *clk; + struct reset_control_bulk_data resets[2]; + unsigned int nresets; + struct iommu_group *group; + struct iommu_domain *domain; + struct iova_domain iova; + dma_addr_t iova_end; + struct mutex intr_mutex; + const struct host1x_syncpt_ops *syncpt_op; + const struct host1x_intr_ops *intr_op; + const struct host1x_channel_ops *channel_op; + const struct host1x_cdma_ops *cdma_op; + const struct host1x_pushbuffer_ops *cdma_pb_op; + const struct host1x_debug_ops *debug_op; + struct host1x_syncpt *nop_sp; + struct mutex syncpt_mutex; + struct host1x_channel_list channel_list; + struct host1x_memory_context_list context_list; + struct dentry *debugfs; + struct mutex devices_lock; + struct list_head devices; 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 device_dma_parameters dma_parms; + struct host1x_bo_cache cache; }; -struct flowi_tunnel { - __be64 tun_id; +struct host1x_table_desc { + unsigned int base; + unsigned int count; }; -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; - long: 32; - struct flowi_tunnel flowic_tun_key; - __u32 flowic_multipath_hash; - long: 32; +struct host1x_sid_entry; + +struct host1x_info { + unsigned int nb_channels; + unsigned int nb_pts; + unsigned int nb_bases; + unsigned int nb_mlocks; + int (*init)(struct host1x *); + unsigned int sync_offset; + u64 dma_mask; + bool has_wide_gather; + bool has_hypervisor; + bool has_common; + unsigned int num_sid_entries; + const struct host1x_sid_entry *sid_table; + struct host1x_table_desc streamid_vm_table; + struct host1x_table_desc classid_vm_table; + struct host1x_table_desc mmio_vm_table; + bool reserve_vblank_syncpts; }; -union flowi_uli { - struct { - __be16 dport; - __be16 sport; - } ports; - struct { - __u8 type; - __u8 code; - } icmpt; - __be32 gre_key; - struct { - __u8 type; - } mht; +struct host1x_sid_entry { + unsigned int base; + unsigned int offset; + unsigned int limit; }; -struct flowi4 { - struct flowi_common __fl_common; - __be32 saddr; - __be32 daddr; - union flowi_uli uli; - long: 32; +struct host1x_syncpt_base { + unsigned int id; + bool requested; }; -struct flowi6 { - struct flowi_common __fl_common; - struct in6_addr daddr; - struct in6_addr saddr; - __be32 flowlabel; - union flowi_uli uli; - __u32 mp_hash; - long: 32; +struct host1x_syncpt_ops { + void (*restore)(struct host1x_syncpt *); + void (*restore_wait_base)(struct host1x_syncpt *); + void (*load_wait_base)(struct host1x_syncpt *); + u32 (*load)(struct host1x_syncpt *); + int (*cpu_incr)(struct host1x_syncpt *); + void (*assign_to_channel)(struct host1x_syncpt *, struct host1x_channel *); + void (*enable_protection)(struct host1x *); }; -struct flowi { - union { - struct flowi_common __fl_common; - struct flowi4 ip4; - struct flowi6 ip6; - } u; +struct host1x_intr_ops { + int (*init_host_sync)(struct host1x *, u32); + void (*set_syncpt_threshold)(struct host1x *, unsigned int, u32); + void (*enable_syncpt_intr)(struct host1x *, unsigned int); + void (*disable_syncpt_intr)(struct host1x *, unsigned int); + void (*disable_all_syncpt_intrs)(struct host1x *); + int (*free_syncpt_irq)(struct host1x *); }; -struct fib_lookup_arg { - void *lookup_ptr; - const void *lookup_data; - void *result; - struct fib_rule *rule; - u32 table; - int flags; +struct host1x_cdma_ops { + void (*start)(struct host1x_cdma *); + void (*stop)(struct host1x_cdma *); + void (*flush)(struct host1x_cdma *); + int (*timeout_init)(struct host1x_cdma *); + void (*timeout_destroy)(struct host1x_cdma *); + void (*freeze)(struct host1x_cdma *); + void (*resume)(struct host1x_cdma *, u32); + void (*timeout_cpu_incr)(struct host1x_cdma *, u32, u32, u32, u32); }; -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 host1x_pushbuffer_ops { + void (*init)(struct push_buffer *); }; -typedef enum { - SS_FREE = 0, - SS_UNCONNECTED = 1, - SS_CONNECTING = 2, - SS_CONNECTED = 3, - SS_DISCONNECTING = 4, -} socket_state; +struct output; -struct socket_wq { - wait_queue_head_t wait; - struct fasync_struct *fasync_list; - unsigned long flags; - struct callback_head rcu; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct host1x_debug_ops { + void (*debug_init)(struct dentry *); + void (*show_channel_cdma)(struct host1x *, struct host1x_channel *, struct output *); + void (*show_channel_fifo)(struct host1x *, struct host1x_channel *, struct output *); + void (*show_mlocks)(struct host1x *, struct output *); }; -struct proto_ops; +struct output { + void (*fn)(void *, const char *, size_t, bool); + void *ctx; + char buf[256]; +}; -struct socket { - socket_state state; - short type; - unsigned long flags; - struct file *file; - struct sock *sk; - const struct proto_ops *ops; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct host1x_memory_context { + struct host1x *host; + refcount_t ref; + struct pid *owner; long: 32; + struct device dev; + u64 dma_mask; + u32 stream_id; long: 32; - 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; +struct dma_fence; -typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t); +struct dma_fence_cb; -typedef int (*skb_read_actor_t)(struct sock *, struct sk_buff *); +typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *); -struct proto_ops { - int family; - struct module *owner; - int (*release)(struct socket *); - int (*bind)(struct socket *, struct sockaddr *, int); - int (*connect)(struct socket *, struct sockaddr *, int, int); - int (*socketpair)(struct socket *, struct socket *); - int (*accept)(struct socket *, struct socket *, int, bool); - int (*getname)(struct socket *, struct sockaddr *, int); - __poll_t (*poll)(struct file *, struct socket *, struct poll_table_struct *); - int (*ioctl)(struct socket *, unsigned int, unsigned long); - int (*gettstamp)(struct socket *, void __attribute__((btf_type_tag("user"))) *, bool, bool); - int (*listen)(struct socket *, int); - int (*shutdown)(struct socket *, int); - int (*setsockopt)(struct socket *, int, int, sockptr_t, unsigned int); - int (*getsockopt)(struct socket *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); - void (*show_fdinfo)(struct seq_file *, struct socket *); - int (*sendmsg)(struct socket *, struct msghdr *, size_t); - int (*recvmsg)(struct socket *, struct msghdr *, size_t, int); - int (*mmap)(struct file *, struct socket *, struct vm_area_struct *); - ssize_t (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); - void (*splice_eof)(struct socket *); - int (*set_peek_off)(struct sock *, int); - int (*peek_len)(struct socket *); - int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t); - int (*read_skb)(struct sock *, skb_read_actor_t); - int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); - int (*set_rcvlowat)(struct sock *, int); +struct dma_fence_cb { + struct list_head node; + dma_fence_func_t func; }; -struct request_sock; +struct host1x_job_cmd; -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 host1x_reloc; -struct saved_syn; +struct host1x_job_unpin_data; -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 host1x_job { + struct kref ref; + struct list_head list; + struct host1x_channel *channel; + struct host1x_client *client; + struct host1x_job_cmd *cmds; + unsigned int num_cmds; + struct host1x_reloc *relocs; + unsigned int num_relocs; + struct host1x_job_unpin_data *unpins; + unsigned int num_unpins; + dma_addr_t *addr_phys; + dma_addr_t *gather_addr_phys; + dma_addr_t *reloc_addr_phys; + struct host1x_syncpt *syncpt; + u32 syncpt_incrs; + u32 syncpt_end; + struct dma_fence *fence; + struct dma_fence_cb fence_cb; + unsigned int timeout; + bool cancelled; + unsigned int first_get; + unsigned int num_slots; + size_t gather_copy_size; + dma_addr_t gather_copy; + u8 *gather_copy_mapped; + int (*is_addr_reg)(struct device *, u32, u32); + int (*is_valid_class)(u32); + u32 class; + bool serialize; + bool syncpt_recovery; + void (*release)(struct host1x_job *); + void *user_data; + bool enable_firewall; + struct host1x_memory_context *memory_context; + u32 engine_fallback_streamid; + u32 engine_streamid_offset; }; -struct saved_syn { - u32 mac_hdrlen; - u32 network_hdrlen; - u32 tcp_hdrlen; - u8 data[0]; +struct host1x_bo; + +struct host1x_job_gather { + unsigned int words; + dma_addr_t base; + struct host1x_bo *bo; + unsigned int offset; + bool handled; }; -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 host1x_job_wait { + u32 id; + u32 threshold; + u32 next_class; + bool relative; }; -struct sk_filter { - refcount_t refcnt; - struct callback_head rcu; - struct bpf_prog *prog; +struct host1x_job_cmd { + bool is_wait; + union { + struct host1x_job_gather gather; + struct host1x_job_wait wait; + }; }; -struct xfrm_mark { - __u32 v; - __u32 m; +struct host1x_bo_ops; + +struct host1x_bo { + const struct host1x_bo_ops *ops; + struct list_head mappings; + spinlock_t lock; }; -typedef union { - __be32 a4; - __be32 a6[4]; - struct in6_addr in6; -} xfrm_address_t; +struct host1x_bo_mapping; -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 host1x_bo_ops { + struct host1x_bo * (*get)(struct host1x_bo *); + void (*put)(struct host1x_bo *); + struct host1x_bo_mapping * (*pin)(struct device *, struct host1x_bo *, enum dma_data_direction); + void (*unpin)(struct host1x_bo_mapping *); + void * (*mmap)(struct host1x_bo *); + void (*munmap)(struct host1x_bo *, void *); }; -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 dma_buf_attachment; + +struct host1x_bo_mapping { + struct kref ref; + struct dma_buf_attachment *attach; + enum dma_data_direction direction; + struct list_head list; + struct host1x_bo *bo; + struct sg_table *sgt; + unsigned int chunks; + struct device *dev; + dma_addr_t phys; + size_t size; + struct host1x_bo_cache *cache; + struct list_head entry; }; -struct xfrm_lifetime_cur { - __u64 bytes; - __u64 packets; - __u64 add_time; - __u64 use_time; +struct host1x_reloc { + struct { + struct host1x_bo *bo; + unsigned long offset; + } cmdbuf; + struct { + struct host1x_bo *bo; + unsigned long offset; + } target; + unsigned long shift; + unsigned long flags; }; -struct xfrm_policy_walk_entry { - struct list_head all; - u8 dead; +struct host1x_job_unpin_data { + struct host1x_bo_mapping *map; }; -struct xfrm_policy_queue { - struct sk_buff_head hold_queue; - struct timer_list hold_timer; - unsigned long timeout; +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; + long: 32; }; -struct xfrm_id { - xfrm_address_t daddr; - __be32 spi; - __u8 proto; +struct dma_fence_ops { + bool use_64bit_seqno; + const char * (*get_driver_name)(struct dma_fence *); + const char * (*get_timeline_name)(struct dma_fence *); + bool (*enable_signaling)(struct dma_fence *); + bool (*signaled)(struct dma_fence *); + long (*wait)(struct dma_fence *, bool, long); + void (*release)(struct dma_fence *); + void (*fence_value_str)(struct dma_fence *, char *, int); + void (*timeline_value_str)(struct dma_fence *, char *, int); + void (*set_deadline)(struct dma_fence *, ktime_t); }; -struct 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; +enum { + HOST1X_OPCODE_SETCLASS = 0, + HOST1X_OPCODE_INCR = 1, + HOST1X_OPCODE_NONINCR = 2, + HOST1X_OPCODE_MASK = 3, + HOST1X_OPCODE_IMM = 4, + HOST1X_OPCODE_RESTART = 5, + HOST1X_OPCODE_GATHER = 6, + HOST1X_OPCODE_SETSTRMID = 7, + HOST1X_OPCODE_SETAPPID = 8, + HOST1X_OPCODE_SETPYLD = 9, + HOST1X_OPCODE_INCR_W = 10, + HOST1X_OPCODE_NONINCR_W = 11, + HOST1X_OPCODE_GATHER_W = 12, + HOST1X_OPCODE_RESTART_W = 13, + HOST1X_OPCODE_EXTEND = 14, }; -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; - u8 flags: 2; +enum { + HOST1X_OPCODE_EXTEND_ACQUIRE_MLOCK = 0, + HOST1X_OPCODE_EXTEND_RELEASE_MLOCK = 1, }; -struct xfrm_sec_ctx; +struct host1x_intr_irq_data { + struct host1x *host; + u32 offset; +}; -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; +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 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]; +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, }; -struct nlm_lockowner; +struct drm_mm; -struct nfs_lock_info { - u32 state; - struct nlm_lockowner *owner; - struct list_head list; +struct drm_mm_node { + unsigned long color; + long: 32; + 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; + long: 32; }; -struct nfs4_lock_state; +struct drm_mm { + void (*color_adjust)(const struct drm_mm_node *, unsigned long, u64 *, u64 *); + struct list_head hole_stack; + long: 32; + 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 nfs4_lock_info { - struct nfs4_lock_state *owner; +struct va_format; + +struct drm_printer { + void (*printfn)(struct drm_printer *, struct va_format *); + void (*puts)(struct drm_printer *, const char *); + void *arg; + const char *prefix; }; -struct file_lock_operations; +struct __va_list; -struct lock_manager_operations; +typedef __builtin_va_list va_list; -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; - long: 32; +struct va_format { + const char *fmt; + va_list *va; }; -struct file_lock_operations { - void (*fl_copy_lock)(struct file_lock *, struct file_lock *); - void (*fl_release_private)(struct file_lock *); +struct __va_list { + void *__ap; }; -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 drm_mm_scan { + struct drm_mm *mm; + long: 32; + 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 rpc_timer { - struct list_head list; - unsigned long expires; - struct delayed_work dwork; +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 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; +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, }; -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; +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, }; -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; +enum drm_connector_registration_state { + DRM_CONNECTOR_INITIALIZING = 0, + DRM_CONNECTOR_REGISTERED = 1, + DRM_CONNECTOR_UNREGISTERED = 2, }; -typedef struct nfs4_stateid_struct nfs4_stateid; +enum drm_connector_status { + connector_status_connected = 1, + connector_status_disconnected = 2, + connector_status_unknown = 3, +}; -struct nfs4_state; +enum subpixel_order { + SubPixelUnknown = 0, + SubPixelHorizontalRGB = 1, + SubPixelHorizontalBGR = 2, + SubPixelVerticalRGB = 3, + SubPixelVerticalBGR = 4, + SubPixelNone = 5, +}; -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; - long: 32; +enum drm_link_status { + DRM_LINK_STATUS_GOOD = 0, + DRM_LINK_STATUS_BAD = 1, }; -struct nfs4_state_owner; +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, +}; -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; +enum drm_colorspace { + DRM_MODE_COLORIMETRY_DEFAULT = 0, + DRM_MODE_COLORIMETRY_NO_DATA = 0, + DRM_MODE_COLORIMETRY_SMPTE_170M_YCC = 1, + DRM_MODE_COLORIMETRY_BT709_YCC = 2, + DRM_MODE_COLORIMETRY_XVYCC_601 = 3, + DRM_MODE_COLORIMETRY_XVYCC_709 = 4, + DRM_MODE_COLORIMETRY_SYCC_601 = 5, + DRM_MODE_COLORIMETRY_OPYCC_601 = 6, + DRM_MODE_COLORIMETRY_OPRGB = 7, + DRM_MODE_COLORIMETRY_BT2020_CYCC = 8, + DRM_MODE_COLORIMETRY_BT2020_RGB = 9, + DRM_MODE_COLORIMETRY_BT2020_YCC = 10, + DRM_MODE_COLORIMETRY_DCI_P3_RGB_D65 = 11, + DRM_MODE_COLORIMETRY_DCI_P3_RGB_THEATER = 12, + DRM_MODE_COLORIMETRY_RGB_WIDE_FIXED = 13, + DRM_MODE_COLORIMETRY_RGB_WIDE_FLOAT = 14, + DRM_MODE_COLORIMETRY_BT601_YCC = 15, + DRM_MODE_COLORIMETRY_COUNT = 16, }; -struct nfs_server; +enum drm_privacy_screen_status { + PRIVACY_SCREEN_DISABLED = 0, + PRIVACY_SCREEN_ENABLED = 1, + PRIVACY_SCREEN_DISABLED_LOCKED = 2, + PRIVACY_SCREEN_ENABLED_LOCKED = 3, +}; -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; - long: 32; - struct nfs_seqid_counter so_seqid; - seqcount_spinlock_t so_reclaim_seqcount; - struct mutex so_delegreturn_mutex; +enum drm_connector_force { + DRM_FORCE_UNSPECIFIED = 0, + DRM_FORCE_OFF = 1, + DRM_FORCE_ON = 2, + DRM_FORCE_ON_DIGITAL = 3, }; -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, +enum drm_panel_orientation { + DRM_MODE_PANEL_ORIENTATION_UNKNOWN = -1, + DRM_MODE_PANEL_ORIENTATION_NORMAL = 0, + DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP = 1, + DRM_MODE_PANEL_ORIENTATION_LEFT_UP = 2, + DRM_MODE_PANEL_ORIENTATION_RIGHT_UP = 3, }; -struct nfs_fsid { - uint64_t major; - uint64_t minor; +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, }; -typedef u32 rpc_authflavor_t; +enum drm_scaling_filter { + DRM_SCALING_FILTER_DEFAULT = 0, + DRM_SCALING_FILTER_NEAREST_NEIGHBOR = 1, +}; -struct nfs_auth_info { - unsigned int flavor_len; - rpc_authflavor_t flavors[12]; +enum drm_color_encoding { + DRM_COLOR_YCBCR_BT601 = 0, + DRM_COLOR_YCBCR_BT709 = 1, + DRM_COLOR_YCBCR_BT2020 = 2, + DRM_COLOR_ENCODING_MAX = 3, }; -struct ida { - struct xarray xa; +enum drm_color_range { + DRM_COLOR_YCBCR_LIMITED_RANGE = 0, + DRM_COLOR_YCBCR_FULL_RANGE = 1, + DRM_COLOR_RANGE_MAX = 2, }; -struct __kernel_sockaddr_storage { - union { - struct { - __kernel_sa_family_t ss_family; - char __data[126]; - }; - void *__align; - }; +enum drm_plane_type { + DRM_PLANE_TYPE_OVERLAY = 0, + DRM_PLANE_TYPE_PRIMARY = 1, + DRM_PLANE_TYPE_CURSOR = 2, }; -struct nfs_client; +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, +}; -struct rpc_clnt; +struct drm_modeset_lock { + struct ww_mutex mutex; + struct list_head head; +}; -struct nlm_host; +struct drm_object_properties; -struct nfs_iostats; +struct drm_mode_object { + uint32_t id; + uint32_t type; + struct drm_object_properties *properties; + struct kref refcount; + void (*free_cb)(struct kref *); +}; -struct pnfs_layoutdriver_type; +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; +}; -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 gxasize; - unsigned int sxasize; - unsigned int lxasize; - 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; - long: 32; - struct nfs_fsid fsid; - int s_sysfs_id; - long: 32; - __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; - struct kobject kobj; +struct drm_property; + +struct drm_object_properties { + int count; + struct drm_property *properties[24]; long: 32; + uint64_t values[24]; }; -enum xprtsec_policies { - RPC_XPRTSEC_NONE = 0, - RPC_XPRTSEC_TLS_ANON = 1, - RPC_XPRTSEC_TLS_X509 = 2, -}; +struct drm_crtc_crc_entry; -struct xprtsec_parms { - enum xprtsec_policies policy; - key_serial_t cert_serial; - key_serial_t privkey_serial; +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; }; -typedef struct { - char data[8]; -} nfs4_verifier; +struct drm_device; -struct nfs_rpc_ops; +struct drm_plane; -struct nfs_subversion; +struct drm_crtc_funcs; -struct idmap; +struct drm_crtc_helper_funcs; -struct nfs4_minor_version_ops; +struct drm_crtc_state; -struct nfs4_slot_table; +struct drm_self_refresh_data; -struct nfs4_session; +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 nfs41_server_owner; +struct drm_modeset_acquire_ctx; -struct nfs41_server_scope; +struct drm_mode_config_funcs; -struct nfs41_impl_id; +struct drm_atomic_state; -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 xprtsec_parms cl_xprtsec; - struct list_head cl_ds_clients; - long: 32; - 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; - wait_queue_head_t cl_lock_waitq; - char cl_ipaddr[48]; - struct net *cl_net; - struct list_head pending_cb_stateids; - long: 32; +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 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 rpc_xprt_switch; +struct drm_vram_mm; -struct rpc_xprt; +struct drm_driver; -struct rpc_xprt_iter_ops; +struct drm_minor; -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 drm_master; -struct rpc_pipe_dir_head { - struct list_head pdh_entries; - struct dentry *pdh_dentry; +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 dentry *debugfs_root; }; -struct rpc_rtt { - unsigned long timeo; - unsigned long srtt[5]; - unsigned long sdrtt[5]; - int ntimeouts[5]; +struct drm_file; + +struct drm_gem_object; + +struct dma_buf; + +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 (*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 *); + void (*show_fdinfo)(struct drm_printer *, struct drm_file *); + 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 rpc_timeout { - unsigned long to_initval; - unsigned long to_maxval; - unsigned long to_increment; - unsigned int to_retries; - unsigned char to_exponential; +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 rpc_procinfo; +typedef u32 depot_stack_handle_t; -struct rpc_auth; +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 rpc_stat; +struct drm_framebuffer; -struct rpc_iostats; +struct drm_mode_fb_cmd2; -struct rpc_program; +struct drm_format_info; -struct rpc_sysfs_client; +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 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; - unsigned int cl_shutdown: 1; - struct xprtsec_parms cl_xprtsec; - 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; +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]; + long: 32; + __u64 modifier[4]; +}; + +struct drm_format_info { + u32 format; + u8 depth; + u8 num_planes; union { - struct rpc_xprt_iter cl_xpi; - struct work_struct cl_work; + u8 cpp[4]; + u8 char_per_block[4]; }; - const struct cred *cl_cred; - unsigned int cl_max_connect; + u8 block_w[4]; + u8 block_h[4]; + u8 hsub; + u8 vsub; + bool has_alpha; + bool is_yuv; + bool is_color_indexed; }; -struct rpc_xprt_ops; - -struct rpc_task; +struct __drm_planes_state; -struct svc_xprt; +struct __drm_crtcs_state; -struct svc_serv; +struct __drm_connnectors_state; -struct xprt_class; +struct __drm_private_objs_state; -struct rpc_sysfs_xprt; +struct drm_crtc_commit; -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; - struct xprtsec_parms xprtsec; - 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 svc_serv *bc_serv; - unsigned int bc_alloc_max; - unsigned int bc_alloc_count; - atomic_t bc_slot_count; - spinlock_t bc_pa_lock; - struct list_head bc_pa_list; - struct rb_root recv_queue; - long: 32; - 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; - long: 32; +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 rpc_rqst; - -struct xdr_buf; +struct drm_plane_state; -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 __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 rpc_call_ops; +struct drm_plane_funcs; -struct rpc_cred; +struct drm_plane_helper_funcs; -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; +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; + long: 32; + 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; + long: 32; }; -struct xdr_stream; - -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 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 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 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 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 list_head rq_bc_list; - unsigned long rq_bc_pa_state; - struct list_head rq_bc_pa_list; +struct drm_rect { + int x1; + int y1; + int x2; + int y2; }; -struct rpc_credops; +struct drm_property_blob; -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 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 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 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 rpc_auth_create_args; - -struct auth_cred; - -struct rpcsec_gss_info; +struct drm_pending_vblank_event; -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 *); - int (*ping)(struct rpc_clnt *); +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 rpc_auth_create_args { - rpc_authflavor_t pseudoflavor; - const char *target_name; +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_enable)(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 auth_cred { - const struct cred *cred; - const char *principal; +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 rpcsec_gss_oid { - unsigned int len; - u8 data[32]; +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 rpcsec_gss_info { - struct rpcsec_gss_oid oid; - u32 qop; - u32 service; -}; +struct drm_connector; -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 drm_connector_state; -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 __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 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 drm_scrambling { + bool supported; + bool low_rates; }; -struct svc_program; - -struct svc_stat; - -struct svc_pool; +struct drm_scdc { + bool supported; + bool read_request; + struct drm_scrambling scrambling; +}; -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 list_head sv_cb_list; - spinlock_t sv_cb_lock; - wait_queue_head_t sv_cb_waitq; - bool sv_bc_enabled; +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 svc_version; +struct drm_hdmi_info { + struct drm_scdc scdc; + unsigned long y420_vdb_modes[8]; + unsigned long y420_cmdb_modes[8]; + u8 y420_dc_modes; + u8 max_frl_rate_per_lane; + u8 max_lanes; + struct drm_hdmi_dsc_cap dsc_cap; +}; -struct svc_rqst; +struct drm_monitor_range_info { + u16 min_vfreq; + u16 max_vfreq; +}; -struct svc_process_info; +struct drm_luminance_range_info { + u32 min_luminance; + u32 max_luminance; +}; -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 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_audio; + 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; + u16 source_physical_address; }; -struct svc_procedure; +struct drm_privacy_screen; -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 drm_connector_tv_margins { + unsigned int bottom; + unsigned int left; + unsigned int right; + unsigned int top; }; -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 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 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 hdr_static_metadata { + __u8 eotf; + __u8 metadata_type; + __u16 max_cll; + __u16 max_fall; + __u16 min_cll; }; -struct cache_deferred_req; - -struct cache_req { - struct cache_deferred_req * (*defer)(struct cache_req *); - unsigned long thread_wait; +struct hdr_sink_metadata { + __u32 metadata_type; + union { + struct hdr_static_metadata hdmi_type1; + }; }; -struct svc_cacherep; +struct drm_connector_funcs; -struct auth_ops; +struct drm_connector_helper_funcs; -struct svc_deferred_req; +struct drm_edid; -struct auth_domain; +struct drm_encoder; -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 folio_batch rq_fbatch; - 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; - long: 32; - 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; - long: 32; - 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 drm_tile_group; -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; - long: 32; - struct percpu_counter sp_sockets_queued; - struct percpu_counter sp_threads_woken; - struct percpu_counter sp_threads_timedout; - unsigned long sp_flags; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +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; long: 32; + 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; long: 32; + 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; long: 32; }; -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 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 *, enum drm_connector_status); + void (*debugfs_init)(struct drm_connector *, struct dentry *); }; -struct auth_domain { - struct kref ref; - struct hlist_node hash; - char *name; - struct auth_ops *flavour; - struct callback_head callback_head; +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 gss_api_ops; - -struct pf_desc; +struct drm_writeback_job; -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 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; + enum drm_colorspace 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 gss_ctx; - -struct xdr_netobj; +struct drm_writeback_connector; -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 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 gss_ctx { - struct gss_api_mech *mech_type; - void *internal_ctx_id; - unsigned int slack; - unsigned int align; -}; +struct edid; -struct xdr_netobj { - unsigned int len; - u8 *data; +struct drm_edid { + size_t size; + const struct edid *edid; }; -struct pf_desc { - u32 pseudoflavor; - u32 qop; - u32 service; - char *name; - char *auth_domain_name; - struct auth_domain *domain; - bool datatouch; +struct drm_tile_group { + struct kref refcount; + struct drm_device *dev; + int id; + u8 group_data[8]; }; -struct cache_head; +struct drm_private_obj; -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 drm_private_state; -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 __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 cache_head { - struct hlist_node cache_list; - time64_t expiry_time; - time64_t last_refresh; - struct kref ref; - unsigned long flags; -}; +struct drm_private_state_funcs; -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 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 svc_process_info { - union { - int (*dispatch)(struct svc_rqst *); - struct { - unsigned int lovers; - unsigned int hivers; - } mismatch; - }; +struct drm_private_state { + struct drm_atomic_state *state; + struct drm_private_obj *obj; }; -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 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 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 xprtsec_parms xprtsec; +struct drm_mode_config_helper_funcs { + void (*atomic_commit_tail)(struct drm_atomic_state *); + int (*atomic_commit_setup)(struct drm_atomic_state *); }; -struct rpc_sysfs_xprt_switch; +struct drm_mode_set; -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 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 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 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; }; -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; +enum mode_set_atomic { + LEAVE_ATOMIC_MODE_SET = 0, + ENTER_ATOMIC_MODE_SET = 1, }; -struct rpc_version; +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 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 drm_crtc_crc_entry { + bool has_frame_counter; + uint32_t frame; + uint32_t crcs[10]; }; -struct rpc_version { - u32 number; - unsigned int nrprocs; - const struct rpc_procinfo *procs; - unsigned int *counts; +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 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: 32; -}; +struct drm_encoder_helper_funcs; -struct rpc_sysfs_client { - struct kobject kobject; - struct net *net; - struct rpc_clnt *clnt; - struct rpc_xprt_switch *xprt_switch; +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 nlmclnt_operations; - -struct nfs_fh; - -struct nfs_fsinfo; - -struct nfs_fattr; - -struct nfs_access_entry; +struct drm_mode_create_dumb { + __u32 height; + __u32 width; + __u32 bpp; + __u32 flags; + __u32 handle; + __u32 pitch; + __u64 size; +}; -struct nfs_unlinkdata; +enum drm_ioctl_flags { + DRM_AUTH = 1, + DRM_MASTER = 2, + DRM_ROOT_ONLY = 4, + DRM_UNLOCKED = 16, + DRM_RENDER_ALLOW = 32, +}; -struct nfs_renamedata; +typedef int drm_ioctl_t(struct drm_device *, void *, struct drm_file *); -struct nfs_readdir_arg; +struct drm_ioctl_desc { + unsigned int cmd; + enum drm_ioctl_flags flags; + drm_ioctl_t *func; + const char *name; +}; -struct nfs_readdir_res; +struct drm_framebuffer_funcs; -struct nfs_fsstat; +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]; + long: 32; +}; -struct nfs_pathconf; +struct drm_clip_rect; -struct nfs_entry; +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 nfs_pgio_header; +struct drm_clip_rect { + unsigned short x1; + unsigned short y1; + unsigned short x2; + unsigned short y2; +}; -struct nfs_commit_data; +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 nfs_open_context; +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]; + long: 32; +}; -struct nfs_client_initdata; +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 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 *); +enum dma_fence_flag_bits { + DMA_FENCE_FLAG_SIGNALED_BIT = 0, + DMA_FENCE_FLAG_TIMESTAMP_BIT = 1, + DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2, + DMA_FENCE_FLAG_USER_BITS = 3, }; -struct nlmclnt_operations { - void (*nlmclnt_alloc_call)(void *); - bool (*nlmclnt_unlock_prepare)(struct rpc_task *, void *); - void (*nlmclnt_release_call)(void *); +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_GEM_GPUVA = 256, + DRIVER_USE_AGP = 33554432, + DRIVER_LEGACY = 67108864, + DRIVER_PCI_DMA = 134217728, + DRIVER_SG = 268435456, + DRIVER_HAVE_DMA = 536870912, + DRIVER_HAVE_IRQ = 1073741824, }; -struct nfs_fh { - unsigned short size; - unsigned char data[128]; +struct drm_connector_list_iter { + struct drm_device *dev; + struct drm_connector *conn; }; -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 drm_minor { + int index; + int type; + struct device *kdev; + struct drm_device *dev; + struct dentry *debugfs_symlink; + struct dentry *debugfs_root; }; -struct nfs4_string; +struct kthread_worker; -struct nfs4_threshold; +struct drm_vblank_crtc { + struct drm_device *dev; + wait_queue_head_t queue; + struct timer_list disable_timer; + seqlock_t seqlock; + long: 32; + 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 nfs4_label; +struct kthread_work; -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 kthread_worker { + unsigned int flags; + raw_spinlock_t lock; + struct list_head work_list; + struct list_head delayed_work_list; + struct task_struct *task; + struct kthread_work *current_work; }; -struct nfs4_string { - unsigned int len; - char *data; +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 nfs4_threshold { - __u32 bm; - __u32 l_type; - __u64 rd_sz; - __u64 wr_sz; - __u64 rd_io_sz; - __u64 wr_io_sz; +typedef unsigned int drm_magic_t; + +struct drm_prime_file_private { + struct mutex lock; + struct rb_root dmabufs; + struct rb_root handles; }; -struct nfs4_label { - uint32_t lfs; - uint32_t pi; - u32 len; - char *label; +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 __attribute__((btf_type_tag("rcu"))) *pid; + long: 32; + u64 client_id; + 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; + long: 32; }; -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 drm_vma_offset_node { + rwlock_t vm_lock; long: 32; + struct drm_mm_node vm_node; + struct rb_root vm_files; + void *driver_private; }; -struct nfs4_slot; +struct dma_resv_list; -struct nfs4_sequence_args { - struct nfs4_slot *sa_slot; - u8 sa_cache_this: 1; - u8 sa_privileged: 1; +struct dma_resv { + struct ww_mutex lock; + struct dma_resv_list __attribute__((btf_type_tag("rcu"))) *fences; }; -struct nfs_removeargs { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - long: 32; - struct qstr name; -}; +struct drm_gem_object_funcs; -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 drm_gem_lru; -struct nfs4_change_info { - u32 atomic; - long: 32; - u64 before; - u64 after; +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; + struct { + struct list_head list; + } gpuva; + const struct drm_gem_object_funcs *funcs; + struct list_head lru_node; + struct drm_gem_lru *lru; }; -struct nfs_removeres { - struct nfs4_sequence_res seq_res; - struct nfs_server *server; - struct nfs_fattr *dir_attr; - struct nfs4_change_info cinfo; +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 nfs_unlinkdata { - struct nfs_removeargs args; - struct nfs_removeres res; - struct dentry *dentry; - wait_queue_head_t wq; - const struct cred *cred; - long: 32; - struct nfs_fattr dir_attr; - long timeout; - long: 32; +enum drm_gem_object_status { + DRM_GEM_OBJECT_RESIDENT = 1, + DRM_GEM_OBJECT_PURGEABLE = 2, }; -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 iosys_map; -struct nfs4_slot_table { - struct nfs4_session *session; - struct nfs4_slot *slots; - unsigned long used_slots[32]; - 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 drm_gem_object_funcs { + 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 *); + int (*evict)(struct drm_gem_object *); + enum drm_gem_object_status (*status)(struct drm_gem_object *); + size_t (*rss)(struct drm_gem_object *); + const struct vm_operations_struct *vm_ops; }; -struct nfs4_sessionid { - unsigned char data[16]; +struct drm_gem_lru { + struct mutex *lock; + long count; + struct list_head list; }; -struct nfs4_channel_attrs { - u32 max_rqst_sz; - u32 max_resp_sz; - u32 max_resp_sz_cached; - u32 max_ops; - u32 max_reqs; +struct drm_event { + __u32 type; + __u32 length; }; -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; +struct drm_event_vblank { + struct drm_event base; + __u64 user_data; + __u32 tv_sec; + __u32 tv_usec; + __u32 sequence; + __u32 crtc_id; }; -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 drm_event_crtc_sequence { + struct drm_event base; + __u64 user_data; + __s64 time_ns; + __u64 sequence; }; -struct nfs_renameres { - struct nfs4_sequence_res seq_res; - struct nfs_server *server; - long: 32; - struct nfs4_change_info old_cinfo; - struct nfs_fattr *old_fattr; - long: 32; - struct nfs4_change_info new_cinfo; - struct nfs_fattr *new_fattr; - long: 32; +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 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; - long: 32; - 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; - long: 32; +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 nfs_readdir_arg { - struct dentry *dentry; - const struct cred *cred; - __be32 *verf; - long: 32; - u64 cookie; - struct page **pages; - unsigned int page_len; - bool plus; +struct drm_vma_offset_manager { + rwlock_t vm_lock; long: 32; + struct drm_mm vm_addr_space_mm; }; -struct nfs_readdir_res { - __be32 *verf; +struct drm_info_list { + const char *name; + int (*show)(struct seq_file *, void *); + u32 driver_features; + void *data; }; -struct nfs_fsstat { - struct nfs_fattr *fattr; - long: 32; - __u64 tbytes; - __u64 fbytes; - __u64 abytes; - __u64 tfiles; - __u64 ffiles; - __u64 afiles; +struct debugfs_reg32 { + char *name; + unsigned long offset; }; -struct nfs_pathconf { - struct nfs_fattr *fattr; - __u32 max_link; - __u32 max_namelen; -}; +struct tegra_windowgroup_soc; -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; - long: 32; +struct tegra_dc_soc_info { + bool supports_background_color; + bool supports_interlacing; + bool supports_cursor; + bool supports_block_linear; + bool supports_sector_layout; + bool has_legacy_blending; + unsigned int pitch_align; + bool has_powergate; + bool coupled_pm; + bool has_nvdisplay; + const struct tegra_windowgroup_soc *wgrps; + unsigned int num_wgrps; + const u32 *primary_formats; + unsigned int num_primary_formats; + const u32 *overlay_formats; + unsigned int num_overlay_formats; + const u64 *modifiers; + bool has_win_a_without_filters; + bool has_win_b_vfilter_mem_client; + bool has_win_c_without_vert_filter; + bool plane_tiled_memory_bandwidth_x2; + bool has_pll_d2_out0; }; -struct nfs_write_verifier { - char data[8]; +struct tegra_windowgroup_soc { + unsigned int index; + unsigned int dc; + const unsigned int *windows; + unsigned int num_windows; }; -enum nfs3_stable_how { - NFS_UNSTABLE = 0, - NFS_DATA_SYNC = 1, - NFS_FILE_SYNC = 2, - NFS_INVALID_STABLE_HOW = -1, +enum drm_bridge_attach_flags { + DRM_BRIDGE_ATTACH_NO_CONNECTOR = 1, }; -struct nfs_writeverf { - struct nfs_write_verifier verifier; - enum nfs3_stable_how committed; +enum drm_bridge_ops { + DRM_BRIDGE_OP_DETECT = 1, + DRM_BRIDGE_OP_EDID = 2, + DRM_BRIDGE_OP_HPD = 4, + DRM_BRIDGE_OP_MODES = 8, }; -struct nfs_lock_context; +enum tegra_bo_tiling_mode { + TEGRA_BO_TILING_MODE_PITCH = 0, + TEGRA_BO_TILING_MODE_TILED = 1, + TEGRA_BO_TILING_MODE_BLOCK = 2, +}; -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; - }; - }; +enum tegra_bo_sector_layout { + TEGRA_BO_SECTOR_LAYOUT_TEGRA = 0, + TEGRA_BO_SECTOR_LAYOUT_GPU = 1, }; -struct nfs_pgio_res { - struct nfs4_sequence_res seq_res; - struct nfs_fattr *fattr; - long: 32; - __u64 count; - __u32 op_status; - union { - struct { - unsigned int replen; - int eof; - void *scratch; - }; - struct { - struct nfs_writeverf *verf; - const struct nfs_server *server; - }; - }; +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, }; -struct nfs_page_array { - struct page **pagevec; - unsigned int npages; - struct page *page_array[8]; +struct tegra_dc_state { + struct drm_crtc_state base; + struct clk *clk; + unsigned long pclk; + unsigned int div; + u32 planes; }; -struct nfs_page; +struct tegra_dc_stats { + unsigned long frames; + unsigned long vblank; + unsigned long underflow; + unsigned long overflow; + unsigned long frames_total; + unsigned long vblank_total; + unsigned long underflow_total; + unsigned long overflow_total; +}; -struct pnfs_layout_segment; +struct tegra_output; -struct nfs_pgio_completion_ops; +struct tegra_dc { + struct host1x_client client; + struct host1x_syncpt *syncpt; + struct device *dev; + struct drm_crtc base; + unsigned int powergate; + int pipe; + struct clk *clk; + struct reset_control *rst; + void *regs; + int irq; + struct tegra_output *rgb; + struct tegra_dc_stats stats; + struct list_head list; + struct drm_info_list *debugfs_files; + const struct tegra_dc_soc_info *soc; + bool has_opp_table; +}; -struct nfs_rw_ops; +struct drm_bridge; -struct nfs_io_completion; +struct drm_panel; -struct nfs_direct_req; +struct cec_notifier; -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 tegra_output { + struct device_node *of_node; + struct device *dev; + struct drm_bridge *bridge; + struct drm_panel *panel; + struct i2c_adapter *ddc; + const struct edid *edid; + struct cec_notifier *cec; + unsigned int hpd_irq; + struct gpio_desc *hpd_gpio; + struct drm_encoder encoder; long: 32; + struct drm_connector connector; }; -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 drm_bridge_timings; -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 drm_bridge_funcs; -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 drm_bridge { + struct drm_private_obj base; + struct drm_device *dev; + struct drm_encoder *encoder; + struct list_head chain_node; + struct device_node *of_node; struct list_head list; - struct nfs4_threshold *mdsthreshold; - struct callback_head callback_head; + 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 pnfs_layout_range { - u32 iomode; - long: 32; - u64 offset; - u64 length; +struct drm_bridge_timings { + u32 input_bus_flags; + u32 setup_time_ps; + u32 hold_time_ps; + bool dual_link; }; -struct pnfs_layout_hdr; +struct drm_bridge_state; -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 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 *); }; -enum pnfs_iomode { - IOMODE_READ = 1, - IOMODE_RW = 2, - IOMODE_ANY = 3, +struct drm_bus_cfg { + u32 format; + u32 flags; }; -struct pnfs_layout_hdr { - refcount_t plh_refcount; - atomic_t plh_outstanding; - struct list_head plh_layouts; - struct list_head plh_bulk_destroy; - struct list_head plh_segs; - struct list_head plh_return_segs; - unsigned long plh_block_lgets; - unsigned long plh_retry_timestamp; - unsigned long plh_flags; - nfs4_stateid plh_stateid; - u32 plh_barrier; - u32 plh_return_seq; - enum pnfs_iomode plh_return_iomode; - long: 32; - loff_t plh_lwb; - const struct cred *plh_lc_cred; - struct inode *plh_inode; - struct callback_head plh_rcu; +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 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 est_timings { + u8 t1; + u8 t2; + u8 mfg_rsvd; }; -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 std_timing { + u8 hsize; + u8 vfreq_aspect; }; -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 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 nfs_mds_commit_info { - atomic_t rpcs_out; - atomic_long_t ncommit; - struct list_head list; +struct detailed_data_string { + u8 str[13]; }; -struct pnfs_commit_ops; - -struct pnfs_ds_commit_info { - struct list_head commits; - unsigned int nwritten; - unsigned int ncommitting; - const struct pnfs_commit_ops *ops; +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; }; -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; - long: 32; - 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 detailed_data_wpindex { + u8 white_yx_lo; + u8 white_x_hi; + u8 white_y_hi; + u8 gamma; }; -struct nfs_commit_info; - -struct pnfs_commit_ops { - void (*setup_ds_info)(struct pnfs_ds_commit_info *, struct pnfs_layout_segment *); - void (*release_ds_info)(struct pnfs_ds_commit_info *, struct inode *); - int (*commit_pagelist)(struct inode *, struct list_head *, int, struct nfs_commit_info *); - void (*mark_request_commit)(struct nfs_page *, struct pnfs_layout_segment *, struct nfs_commit_info *, u32); - void (*clear_request_commit)(struct nfs_page *, struct nfs_commit_info *); - int (*scan_commit_lists)(struct nfs_commit_info *, int); - void (*recover_commit_reqs)(struct list_head *, struct nfs_commit_info *); - struct nfs_page * (*search_commit_reqs)(struct nfs_commit_info *, struct folio *); +struct cvt_timing { + u8 code[3]; }; -struct nfs_commit_completion_ops; +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; +}; -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 detailed_timing { + __le16 pixel_clock; + union { + struct detailed_pixel_timing pixel_data; + struct detailed_non_pixel other_data; + } data; }; -struct nfs_commit_completion_ops { - void (*completion)(struct nfs_commit_data *); - void (*resched_write)(struct nfs_commit_info *, struct nfs_page *); +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 nfs_commitargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; +struct icc_path; + +struct tegra_plane { + struct drm_plane base; + struct tegra_dc *dc; + unsigned int offset; + unsigned int index; + struct icc_path *icc_mem; + struct icc_path *icc_mem_vfilter; long: 32; - __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 tegra_bo_tiling { + enum tegra_bo_tiling_mode mode; + unsigned long value; + enum tegra_bo_sector_layout sector_layout; }; -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 tegra_plane_legacy_blending_state { + bool alpha; + bool top; }; -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 xprtsec_parms xprtsec; +struct tegra_plane_state { + struct drm_plane_state base; + struct host1x_bo_mapping *map[3]; + dma_addr_t iova[3]; + struct tegra_bo_tiling tiling; + u32 format; + u32 swap; + bool reflect_x; + bool reflect_y; + struct tegra_plane_legacy_blending_state blending[2]; + bool opaque; + u32 total_peak_memory_bandwidth; + u32 peak_memory_bandwidth; + u32 avg_memory_bandwidth; }; -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 of_phandle_iterator { + const char *cells_name; + int cell_count; + const struct device_node *parent; + const __be32 *list_end; + const __be32 *phandle_end; + const __be32 *cur; + uint32_t cur_count; + phandle phandle; + struct device_node *node; }; -struct nfs_seqid; +struct tegra_dc_window { + struct { + unsigned int x; + unsigned int y; + unsigned int w; + unsigned int h; + } src; + struct { + unsigned int x; + unsigned int y; + unsigned int w; + unsigned int h; + } dst; + unsigned int bits_per_pixel; + unsigned int stride[2]; + unsigned long base[3]; + unsigned int zpos; + bool reflect_x; + bool reflect_y; + struct tegra_bo_tiling tiling; + u32 format; + u32 swap; +}; -struct nfs4_state_recovery_ops; +union dfixed { + u32 full; +}; -struct nfs4_state_maintenance_ops; +typedef union dfixed fixed20_12; -struct nfs4_mig_recovery_ops; +typedef unsigned long ulong; -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 tegra_display_hub; -struct nfs_seqid { - struct nfs_seqid_counter *sequence; - struct list_head list; - struct rpc_task *task; +struct tegra_drm { + struct drm_device *drm; + struct iommu_domain *domain; + bool use_explicit_iommu; + struct mutex mm_lock; + struct drm_mm mm; + struct { + struct iova_domain domain; + unsigned long shift; + unsigned long limit; + } carveout; + struct mutex clients_lock; + struct list_head clients; + unsigned int hmask; + unsigned int vmask; + unsigned int pitch_align; + unsigned int num_crtcs; + struct tegra_display_hub *hub; }; -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 tegra_display_hub_soc; + +struct tegra_windowgroup; + +struct tegra_display_hub { + struct drm_private_obj base; + struct host1x_client client; + struct clk *clk_disp; + struct clk *clk_dsc; + struct clk *clk_hub; + struct reset_control *rst; + unsigned int num_heads; + struct clk **clk_heads; + const struct tegra_display_hub_soc *soc; + struct tegra_windowgroup *wgrps; }; -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 tegra_display_hub_soc { + unsigned int num_wgrps; + bool supports_dsc; }; -struct nfs4_fs_locations; +struct tegra_windowgroup { + unsigned int usecount; + struct mutex lock; + unsigned int index; + struct host1x_client *parent; + struct reset_control *rst; +}; -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 drm_info_node { + struct drm_minor *minor; + const struct drm_info_list *info_ent; + struct list_head list; + struct dentry *dent; }; -struct nfs4_pathname { - unsigned int ncomponents; - struct nfs4_string components[512]; +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 nfs4_fs_location { - unsigned int nservers; - struct nfs4_string servers[10]; - struct nfs4_pathname rootpath; +enum pm_qos_req_action { + PM_QOS_ADD_REQ = 0, + PM_QOS_UPDATE_REQ = 1, + PM_QOS_REMOVE_REQ = 2, }; -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 wake_irq { + struct device *dev; + unsigned int status; + int irq; + const char *name; }; -struct nfs41_server_owner { - uint64_t minor_id; - uint32_t major_id_sz; - char major_id[1024]; +struct brd_device { + int brd_number; + struct gendisk *brd_disk; + struct list_head brd_list; + struct xarray brd_pages; long: 32; + u64 brd_nr_pages; }; -struct nfs41_server_scope { - uint32_t server_scope_sz; - char server_scope[1024]; -}; +struct mfd_cell_acpi_match; -struct nfstime4 { - u64 seconds; - u32 nseconds; - long: 32; +struct software_node; + +struct mfd_cell { + const char *name; + int id; + int level; + int (*suspend)(struct platform_device *); + int (*resume)(struct platform_device *); + void *platform_data; + size_t pdata_size; + const struct mfd_cell_acpi_match *acpi_match; + const struct software_node *swnode; + const char *of_compatible; + u64 of_reg; + bool use_of_reg; + int num_resources; + const struct resource *resources; + bool ignore_resource_conflicts; + bool pm_runtime_no_callbacks; + int num_parent_supplies; + const char * const *parent_supplies; }; -struct nfs41_impl_id { - char domain[1025]; - char name[1025]; +struct mfd_cell_acpi_match { + const char *pnpid; long: 32; - struct nfstime4 date; + const unsigned long long adr; }; -struct nfs_iostats { - unsigned long long bytes[8]; - unsigned long events[27]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct property_entry; + +struct software_node { + const char *name; + const struct software_node *parent; + const struct property_entry *properties; }; -enum pnfs_try_status { - PNFS_ATTEMPTED = 0, - PNFS_NOT_ATTEMPTED = 1, - PNFS_TRY_AGAIN = 2, +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, }; -struct nfs4_layoutget_res; +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[2]; + } value; + }; +}; -struct nfs_pageio_ops; +struct regmap_irq_sub_irq_map; -struct nfs4_deviceid_node; +struct regmap_irq; -struct pnfs_device; +struct regmap_irq_chip { + const char *name; + unsigned int main_status; + unsigned int num_main_status_bits; + struct regmap_irq_sub_irq_map *sub_reg_offsets; + int num_main_regs; + unsigned int status_base; + unsigned int mask_base; + unsigned int unmask_base; + unsigned int ack_base; + unsigned int wake_base; + const unsigned int *config_base; + unsigned int irq_reg_stride; + unsigned int init_ack_masked: 1; + unsigned int mask_unmask_non_inverted: 1; + unsigned int use_ack: 1; + unsigned int ack_invert: 1; + unsigned int clear_ack: 1; + unsigned int status_invert: 1; + unsigned int wake_invert: 1; + unsigned int type_in_mask: 1; + unsigned int clear_on_unmask: 1; + unsigned int runtime_pm: 1; + unsigned int no_status: 1; + int num_regs; + const struct regmap_irq *irqs; + int num_irqs; + int num_config_bases; + int num_config_regs; + int (*handle_pre_irq)(void *); + int (*handle_post_irq)(void *); + int (*handle_mask_sync)(int, unsigned int, unsigned int, void *); + int (*set_type_config)(unsigned int **, unsigned int, const struct regmap_irq *, int, void *); + unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int); + void *irq_drv_data; +}; -struct nfs4_layoutreturn_args; +struct regmap_irq_sub_irq_map { + unsigned int num_regs; + unsigned int *offset; +}; -struct nfs4_layoutcommit_data; +struct regmap_irq_type { + unsigned int type_reg_offset; + unsigned int type_reg_mask; + unsigned int type_rising_val; + unsigned int type_falling_val; + unsigned int type_level_low_val; + unsigned int type_level_high_val; + unsigned int types_supported; +}; -struct nfs4_layoutcommit_args; +struct regmap_irq { + unsigned int reg_offset; + unsigned int mask; + struct regmap_irq_type type; +}; -struct nfs42_layoutstat_args; +enum axp20x_variants { + AXP152_ID = 0, + AXP192_ID = 1, + AXP202_ID = 2, + AXP209_ID = 3, + AXP221_ID = 4, + AXP223_ID = 5, + AXP288_ID = 6, + AXP313A_ID = 7, + AXP803_ID = 8, + AXP806_ID = 9, + AXP809_ID = 10, + AXP813_ID = 11, + AXP15060_ID = 12, + NR_AXP20X_VARIANTS = 13, +}; -struct pnfs_layoutdriver_type { - struct list_head pnfs_tblid; - const u32 id; - const char *name; - struct module *owner; - unsigned int flags; - unsigned int max_deviceinfo_size; - unsigned int max_layoutget_response; - int (*set_layoutdriver)(struct nfs_server *, const struct nfs_fh *); - int (*clear_layoutdriver)(struct nfs_server *); - struct pnfs_layout_hdr * (*alloc_layout_hdr)(struct inode *, gfp_t); - void (*free_layout_hdr)(struct pnfs_layout_hdr *); - struct pnfs_layout_segment * (*alloc_lseg)(struct pnfs_layout_hdr *, struct nfs4_layoutget_res *, gfp_t); - void (*free_lseg)(struct pnfs_layout_segment *); - void (*add_lseg)(struct pnfs_layout_hdr *, struct pnfs_layout_segment *, struct list_head *); - void (*return_range)(struct pnfs_layout_hdr *, struct pnfs_layout_range *); - const struct nfs_pageio_ops *pg_read_ops; - const struct nfs_pageio_ops *pg_write_ops; - struct pnfs_ds_commit_info * (*get_ds_info)(struct inode *); - int (*sync)(struct inode *, bool); - enum pnfs_try_status (*read_pagelist)(struct nfs_pgio_header *); - enum pnfs_try_status (*write_pagelist)(struct nfs_pgio_header *, int); - void (*free_deviceid_node)(struct nfs4_deviceid_node *); - struct nfs4_deviceid_node * (*alloc_deviceid_node)(struct nfs_server *, struct pnfs_device *, gfp_t); - int (*prepare_layoutreturn)(struct nfs4_layoutreturn_args *); - void (*cleanup_layoutcommit)(struct nfs4_layoutcommit_data *); - int (*prepare_layoutcommit)(struct nfs4_layoutcommit_args *); - int (*prepare_layoutstats)(struct nfs42_layoutstat_args *); - void (*cancel_io)(struct pnfs_layout_segment *); +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 nfs4_layoutdriver_data; +struct sys_off_data { + int mode; + void *cb_data; + const char *cmd; + struct device *dev; +}; -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; - long: 32; +struct axp20x_dev { + struct device *dev; + int irq; + unsigned long irq_flags; + struct regmap *regmap; + struct regmap_irq_chip_data *regmap_irqc; + long variant; + int nr_cells; + const struct mfd_cell *cells; + const struct regmap_config *regmap_cfg; + const struct regmap_irq_chip *regmap_irq_chip; }; -struct nfs4_layoutdriver_data { - struct page **pages; - __u32 pglen; - __u32 len; +enum i2c_alert_protocol { + I2C_PROTOCOL_SMBUS_ALERT = 0, + I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1, }; -struct nfs_pageio_descriptor; +struct i2c_device_id; -struct nfs_pgio_mirror; +struct i2c_board_info; -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); +struct i2c_driver { + unsigned int class; + int (*probe)(struct i2c_client *); + void (*remove)(struct i2c_client *); + void (*shutdown)(struct i2c_client *); + void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int); + int (*command)(struct i2c_client *, unsigned int, void *); + struct device_driver driver; + const struct i2c_device_id *id_table; + int (*detect)(struct i2c_client *, struct i2c_board_info *); + const unsigned short *address_list; + struct list_head clients; + u32 flags; }; -struct 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 i2c_device_id { + char name[20]; + kernel_ulong_t driver_data; }; -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 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 nfs4_deviceid { - char data[16]; -}; +struct palmas_gpadc; -struct nfs4_deviceid_node { - struct hlist_node node; - struct hlist_node tmpnode; - const struct pnfs_layoutdriver_type *ld; - const struct nfs_client *nfs_client; - unsigned long flags; - unsigned long timestamp_unavailable; - struct nfs4_deviceid deviceid; - struct callback_head rcu; - atomic_t ref; -}; +struct palmas_pmic_driver_data; -struct pnfs_device { - struct nfs4_deviceid dev_id; - unsigned int layout_type; - unsigned int mincount; - unsigned int maxcount; - struct page **pages; - unsigned int pgbase; - unsigned int pglen; - unsigned char nocache: 1; -}; +struct palmas_pmic; -struct nfs4_xdr_opaque_data; +struct palmas_resource; -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; - long: 32; +struct palmas_usb; + +struct palmas { + struct device *dev; + struct i2c_client *i2c_clients[3]; + struct regmap *regmap[3]; + int id; + unsigned int features; + int irq; + u32 irq_mask; + struct mutex irq_lock; + struct regmap_irq_chip_data *irq_data; + struct palmas_pmic_driver_data *pmic_ddata; + struct palmas_pmic *pmic; + struct palmas_gpadc *gpadc; + struct palmas_resource *resource; + struct palmas_usb *usb; + u8 gpio_muxed; + u8 led_muxed; + u8 pwm_muxed; }; -struct nfs4_xdr_opaque_ops; +struct palmas_regs_info; -struct nfs4_xdr_opaque_data { - const struct nfs4_xdr_opaque_ops *ops; - void *data; -}; +struct of_regulator_match; -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 palmas_sleep_requestor_info; + +struct palmas_pmic_platform_data; + +struct palmas_pmic_driver_data { + int smps_start; + int smps_end; + int ldo_begin; + int ldo_end; + int max_reg; + bool has_regen3; + struct palmas_regs_info *palmas_regs_info; + struct of_regulator_match *palmas_matches; + struct palmas_sleep_requestor_info *sleep_req_info; + int (*smps_register)(struct palmas_pmic *, struct palmas_pmic_driver_data *, struct palmas_pmic_platform_data *, const char *, struct regulator_config); + int (*ldo_register)(struct palmas_pmic *, struct palmas_pmic_driver_data *, struct palmas_pmic_platform_data *, const char *, struct regulator_config); }; -struct nfs4_layoutcommit_args { - struct nfs4_sequence_args seq_args; - nfs4_stateid stateid; - long: 32; - __u64 lastbytewritten; - struct inode *inode; - const u32 *bitmask; - size_t layoutupdate_len; - struct page *layoutupdate_page; - struct page **layoutupdate_pages; - __be32 *start_p; +struct palmas_regs_info { + char *name; + char *sname; + u8 vsel_addr; + u8 ctrl_addr; + u8 tstep_addr; + int sleep_id; }; -struct nfs4_layoutcommit_res { - struct nfs4_sequence_res seq_res; - struct nfs_fattr *fattr; - const struct nfs_server *server; - int status; +struct palmas_sleep_requestor_info { + int id; + int reg_offset; + int bit_pos; }; -struct nfs4_layoutcommit_data { - struct rpc_task task; - struct nfs_fattr fattr; - struct list_head lseg_list; - const struct cred *cred; - struct inode *inode; - struct nfs4_layoutcommit_args args; - struct nfs4_layoutcommit_res res; - long: 32; +struct palmas_pmic { + struct palmas *palmas; + struct device *dev; + struct regulator_desc desc[27]; + struct mutex mutex; + int smps123; + int smps457; + int smps12; + int range[10]; + unsigned int ramp_delay[10]; + unsigned int current_reg_mode[10]; }; -struct nfs42_layoutstat_devinfo; +struct palmas_reg_init; -struct nfs42_layoutstat_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - struct inode *inode; - nfs4_stateid stateid; - int num_dev; - struct nfs42_layoutstat_devinfo *devinfo; +struct palmas_pmic_platform_data { + struct regulator_init_data *reg_data[27]; + struct palmas_reg_init *reg_init[27]; + int ldo6_vibrator; + bool enable_ldo8_tracking; }; -struct nfs42_layoutstat_devinfo { - struct nfs4_deviceid dev_id; - __u64 offset; - __u64 length; - __u64 read_count; - __u64 read_bytes; - __u64 write_count; - __u64 write_bytes; - __u32 layout_type; - struct nfs4_xdr_opaque_data ld_private; - long: 32; +struct palmas_reg_init { + int warm_reset; + int roof_floor; + int mode_sleep; + u8 vsel; }; -struct file_lock_context { - spinlock_t flc_lock; - struct list_head flc_flock; - struct list_head flc_posix; - struct list_head flc_lease; +struct palmas_resource { + struct palmas *palmas; + struct device *dev; }; -struct nfs_ssc_client_ops { - void (*sco_sb_deactive)(struct super_block *); +enum palmas_usb_state { + PALMAS_USB_STATE_DISCONNECT = 0, + PALMAS_USB_STATE_VBUS = 1, + PALMAS_USB_STATE_ID = 2, }; -struct proc_nfs_info { - int flag; - const char *str; - const char *nostr; -}; +struct extcon_dev; -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, +struct palmas_usb { + struct palmas *palmas; + struct device *dev; + struct extcon_dev *edev; + int id_otg_irq; + int id_irq; + int vbus_otg_irq; + int vbus_irq; + int gpio_id_irq; + int gpio_vbus_irq; + struct gpio_desc *id_gpiod; + struct gpio_desc *vbus_gpiod; + unsigned long sw_debounce_jiffies; + struct delayed_work wq_detectid; + enum palmas_usb_state linkstat; + int wakeup; + bool enable_vbus_detection; + bool enable_id_detection; + bool enable_gpio_id_detection; + bool enable_gpio_vbus_detection; }; -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, +struct palmas_driver_data { + unsigned int features; + const struct regmap_irq_chip *irq_chip; }; -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 palmas_external_requestor_id { + PALMAS_EXTERNAL_REQSTR_ID_REGEN1 = 0, + PALMAS_EXTERNAL_REQSTR_ID_REGEN2 = 1, + PALMAS_EXTERNAL_REQSTR_ID_SYSEN1 = 2, + PALMAS_EXTERNAL_REQSTR_ID_SYSEN2 = 3, + PALMAS_EXTERNAL_REQSTR_ID_CLK32KG = 4, + PALMAS_EXTERNAL_REQSTR_ID_CLK32KGAUDIO = 5, + PALMAS_EXTERNAL_REQSTR_ID_REGEN3 = 6, + PALMAS_EXTERNAL_REQSTR_ID_SMPS12 = 7, + PALMAS_EXTERNAL_REQSTR_ID_SMPS3 = 8, + PALMAS_EXTERNAL_REQSTR_ID_SMPS45 = 9, + PALMAS_EXTERNAL_REQSTR_ID_SMPS6 = 10, + PALMAS_EXTERNAL_REQSTR_ID_SMPS7 = 11, + PALMAS_EXTERNAL_REQSTR_ID_SMPS8 = 12, + PALMAS_EXTERNAL_REQSTR_ID_SMPS9 = 13, + PALMAS_EXTERNAL_REQSTR_ID_SMPS10 = 14, + PALMAS_EXTERNAL_REQSTR_ID_LDO1 = 15, + PALMAS_EXTERNAL_REQSTR_ID_LDO2 = 16, + PALMAS_EXTERNAL_REQSTR_ID_LDO3 = 17, + PALMAS_EXTERNAL_REQSTR_ID_LDO4 = 18, + PALMAS_EXTERNAL_REQSTR_ID_LDO5 = 19, + PALMAS_EXTERNAL_REQSTR_ID_LDO6 = 20, + PALMAS_EXTERNAL_REQSTR_ID_LDO7 = 21, + PALMAS_EXTERNAL_REQSTR_ID_LDO8 = 22, + PALMAS_EXTERNAL_REQSTR_ID_LDO9 = 23, + PALMAS_EXTERNAL_REQSTR_ID_LDOLN = 24, + PALMAS_EXTERNAL_REQSTR_ID_LDOUSB = 25, + PALMAS_EXTERNAL_REQSTR_ID_MAX = 26, }; 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, + PALMAS_EXT_CONTROL_ENABLE1 = 1, + PALMAS_EXT_CONTROL_ENABLE2 = 2, + PALMAS_EXT_CONTROL_NSLEEP = 4, }; -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 palmas_gpadc_platform_data; -struct nfs4_cached_acl; +struct palmas_usb_platform_data; -struct nfs_delegation; +struct palmas_resource_platform_data; -struct nfs4_xattr_cache; +struct palmas_clk_platform_data; -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 { - int cnt; - long: 32; - struct { - u64 start; - u64 end; - } gap[16]; - } *ooo; - 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; - long: 32; - __u64 write_io; - __u64 read_io; - struct nfs4_xattr_cache *xattr_cache; - long: 32; - union { - struct inode vfs_inode; - }; +struct palmas_platform_data { + int irq_flags; + int gpio_base; + u8 power_ctrl; + int mux_from_pdata; + u8 pad1; + u8 pad2; + bool pm_off; + struct palmas_pmic_platform_data *pmic_pdata; + struct palmas_gpadc_platform_data *gpadc_pdata; + struct palmas_usb_platform_data *usb_pdata; + struct palmas_resource_platform_data *resource_pdata; + struct palmas_clk_platform_data *clk_pdata; }; -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; - long: 32; - __u64 change_attr; - unsigned long flags; - refcount_t refcount; - spinlock_t lock; - struct callback_head rcu; - long: 32; +struct palmas_gpadc_platform_data { + int ch3_current; + int ch0_current; + bool extended_delay; + int bat_removal; + int start_polarity; + int auto_conversion_period_ms; }; -struct in_addr { - __be32 s_addr; +struct palmas_usb_platform_data { + int wakeup; }; -struct sockaddr_in { - __kernel_sa_family_t sin_family; - __be16 sin_port; - struct in_addr sin_addr; - unsigned char __pad[8]; +struct palmas_resource_platform_data { + int regen1_mode_sleep; + int regen2_mode_sleep; + int sysen1_mode_sleep; + int sysen2_mode_sleep; + u8 nsleep_res; + u8 nsleep_smps; + u8 nsleep_ldo1; + u8 nsleep_ldo2; + u8 enable1_res; + u8 enable1_smps; + u8 enable1_ldo1; + u8 enable1_ldo2; + u8 enable2_res; + u8 enable2_smps; + u8 enable2_ldo1; + u8 enable2_ldo2; }; -struct sockaddr_in6 { - unsigned short sin6_family; - __be16 sin6_port; - __be32 sin6_flowinfo; - struct in6_addr sin6_addr; - __u32 sin6_scope_id; +struct palmas_clk_platform_data { + int clk32kg_mode_sleep; + int clk32kgaudio_mode_sleep; }; -struct nfs_clone_mount { - struct super_block *sb; - struct dentry *dentry; - struct nfs_fattr *fattr; - unsigned int inherited_bsize; -}; +struct cdrom_device_ops; -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; - struct xprtsec_parms xprtsec; - 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; +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 (*exit)(struct cdrom_device_info *); + int mrw_mode_page; + bool opened_for_data; + long: 32; + __s64 last_media_change_ms; }; -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 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; }; -enum netloc_type4 { - NL4_NAME = 1, - NL4_URL = 2, - NL4_NETADDR = 3, +struct cdrom_msf0 { + __u8 minute; + __u8 second; + __u8 frame; }; -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, +union cdrom_addr { + struct cdrom_msf0 msf; + int lba; }; -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, +struct cdrom_multisession { + union cdrom_addr addr; + __u8 xa_flag; + __u8 addr_format; }; -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, +struct cdrom_mcn { + __u8 medium_catalog_number[14]; }; -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 scsi_sense_hdr; + +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]; }; -enum data_content4 { - NFS4_CONTENT_DATA = 0, - NFS4_CONTENT_HOLE = 1, +struct scsi_sense_hdr { + u8 response_code; + u8 sense_key; + u8 asc; + u8 ascq; + u8 byte4; + u8 byte5; + u8 byte6; + u8 additional_length; }; -enum { - NFS_LAYOUT_RO_FAILED = 0, - NFS_LAYOUT_RW_FAILED = 1, - NFS_LAYOUT_BULK_RECALL = 2, - NFS_LAYOUT_RETURN = 3, - NFS_LAYOUT_RETURN_LOCK = 4, - NFS_LAYOUT_RETURN_REQUESTED = 5, - NFS_LAYOUT_INVALID_STID = 6, - NFS_LAYOUT_FIRST_LAYOUTGET = 7, - NFS_LAYOUT_INODE_FREEING = 8, - NFS_LAYOUT_HASHED = 9, - NFS_LAYOUT_DRAIN = 10, +enum scsi_cmnd_submitter { + SUBMITTED_BY_BLOCK_LAYER = 0, + SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, + SUBMITTED_BY_SCSI_RESET_IOCTL = 2, +} __attribute__((mode(byte))); + +enum scsi_target_state { + STARGET_CREATED = 1, + STARGET_RUNNING = 2, + STARGET_REMOVE = 3, + STARGET_CREATED_REMOVE = 4, + STARGET_DEL = 5, }; -struct nfs4_copy_state { - struct list_head copies; - struct list_head src_copies; - nfs4_stateid stateid; - struct completion completion; - long: 32; - uint64_t count; - struct nfs_writeverf verf; - int error; - int flags; - struct nfs4_state *parent_src_state; - struct nfs4_state *parent_dst_state; - long: 32; +enum scsi_timeout_action { + SCSI_EH_DONE = 0, + SCSI_EH_RESET_TIMER = 1, + SCSI_EH_NOT_HANDLED = 2, }; -struct nfs42_falloc_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *falloc_fh; - nfs4_stateid falloc_stateid; - u64 falloc_offset; - u64 falloc_length; - const u32 *falloc_bitmask; - long: 32; +enum scsi_host_state { + SHOST_CREATED = 1, + SHOST_RUNNING = 2, + SHOST_CANCEL = 3, + SHOST_DEL = 4, + SHOST_RECOVERY = 5, + SHOST_CANCEL_RECOVERY = 6, + SHOST_DEL_RECOVERY = 7, }; -struct nfs42_falloc_res { - struct nfs4_sequence_res seq_res; - unsigned int status; - struct nfs_fattr *falloc_fattr; - const struct nfs_server *falloc_server; +enum scsi_device_state { + SDEV_CREATED = 1, + SDEV_RUNNING = 2, + SDEV_CANCEL = 3, + SDEV_DEL = 4, + SDEV_QUIESCE = 5, + SDEV_OFFLINE = 6, + SDEV_TRANSPORT_OFFLINE = 7, + SDEV_BLOCK = 8, + SDEV_CREATED_BLOCK = 9, }; -struct 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; +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, }; -struct nl4_server; +typedef __u64 blist_flags_t; -struct nfs42_copy_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *src_fh; - nfs4_stateid src_stateid; - u64 src_pos; - struct nfs_fh *dst_fh; - nfs4_stateid dst_stateid; - u64 dst_pos; - u64 count; - bool sync; - struct nl4_server *cp_src; -}; +struct Scsi_Host; -struct nfs42_netaddr { - char netid[5]; - char addr[58]; - u32 netid_len; - u32 addr_len; -}; +struct scsi_vpd; -struct nl4_server { - enum netloc_type4 nl4_type; - union { - struct { - int nl4_str_sz; - char nl4_str[1025]; - }; - struct nfs42_netaddr nl4_addr; - } u; -}; +struct scsi_target; -struct nfs42_write_res { - nfs4_stateid stateid; +struct scsi_device_handler; + +struct bsg_device; + +struct scsi_device { + struct Scsi_Host *host; + struct request_queue *request_queue; + struct list_head siblings; + struct list_head same_target_siblings; + struct sbitmap budget_map; + atomic_t device_blocked; + atomic_t restarts; + spinlock_t list_lock; + struct list_head starved_entry; + unsigned short queue_depth; + unsigned short max_queue_depth; + unsigned short last_queue_full_depth; + unsigned short last_queue_full_count; + unsigned long last_queue_full_time; + unsigned long queue_ramp_up_period; + unsigned long last_queue_ramp_up; + unsigned int id; + unsigned int channel; + u64 lun; + unsigned int manufacturer; + unsigned int sector_size; + void *hostdata; + unsigned char type; + char scsi_level; + char inq_periph_qual; + struct mutex inquiry_mutex; + unsigned char inquiry_len; + unsigned char *inquiry; + const char *vendor; + const char *model; + const char *rev; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg0; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg83; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg80; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pg89; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb0; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb1; + struct scsi_vpd __attribute__((btf_type_tag("rcu"))) *vpd_pgb2; + struct scsi_target *sdev_target; + blist_flags_t sdev_bflags; + unsigned int eh_timeout; + unsigned int manage_system_start_stop: 1; + unsigned int manage_runtime_start_stop: 1; + unsigned int manage_shutdown: 1; + unsigned int force_runtime_start_on_system_start: 1; + unsigned int removable: 1; + unsigned int changed: 1; + unsigned int busy: 1; + unsigned int lockable: 1; + unsigned int locked: 1; + unsigned int borken: 1; + unsigned int disconnect: 1; + unsigned int soft_reset: 1; + unsigned int sdtr: 1; + unsigned int wdtr: 1; + unsigned int ppr: 1; + unsigned int tagged_supported: 1; + unsigned int simple_tags: 1; + unsigned int was_reset: 1; + unsigned int expecting_cc_ua: 1; + unsigned int use_10_for_rw: 1; + unsigned int use_10_for_ms: 1; + unsigned int set_dbd_for_ms: 1; + unsigned int no_report_opcodes: 1; + unsigned int no_write_same: 1; + unsigned int use_16_for_rw: 1; + unsigned int use_16_for_sync: 1; + unsigned int skip_ms_page_8: 1; + unsigned int skip_ms_page_3f: 1; + unsigned int skip_vpd_pages: 1; + unsigned int try_vpd_pages: 1; + unsigned int use_192_bytes_for_3f: 1; + unsigned int no_start_on_add: 1; + unsigned int allow_restart: 1; + unsigned int start_stop_pwr_cond: 1; + unsigned int no_uld_attach: 1; + unsigned int select_no_atn: 1; + unsigned int fix_capacity: 1; + unsigned int guess_capacity: 1; + unsigned int retry_hwerror: 1; + unsigned int last_sector_bug: 1; + unsigned int no_read_disc_info: 1; + unsigned int no_read_capacity_16: 1; + unsigned int try_rc_10_first: 1; + unsigned int security_supported: 1; + unsigned int is_visible: 1; + unsigned int wce_default_on: 1; + unsigned int no_dif: 1; + unsigned int broken_fua: 1; + unsigned int lun_in_cdb: 1; + unsigned int unmap_limit_for_ws: 1; + unsigned int rpm_autosuspend: 1; + unsigned int ignore_media_change: 1; + unsigned int silence_suspend: 1; + unsigned int no_vpd_size: 1; + unsigned int cdl_supported: 1; + unsigned int cdl_enable: 1; + unsigned int queue_stopped; + bool offline_already; + atomic_t disk_events_disable_depth; + unsigned long supported_events[1]; + unsigned long pending_events[1]; + struct list_head event_list; + struct work_struct event_work; + unsigned int max_device_blocked; + atomic_t iorequest_cnt; + atomic_t iodone_cnt; + atomic_t ioerr_cnt; + atomic_t iotmo_cnt; long: 32; - u64 count; - struct nfs_writeverf verifier; + 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]; long: 32; }; -struct nfs42_copy_res { - struct nfs4_sequence_res seq_res; - struct nfs42_write_res write_res; - bool consecutive; - bool synchronous; - struct nfs_commitres commit_res; - long: 32; -}; +struct scsi_host_template; -struct nfs42_copy_notify_args { - struct nfs4_sequence_args cna_seq_args; - struct nfs_fh *cna_src_fh; - nfs4_stateid cna_src_stateid; - struct nl4_server cna_dst; -}; +struct scsi_transport_template; -struct nfs42_copy_notify_res { - struct nfs4_sequence_res cnr_seq_res; - struct nfstime4 cnr_lease_time; - nfs4_stateid cnr_stateid; - struct nl4_server cnr_src; +struct Scsi_Host { + struct list_head __devices; + struct list_head __targets; + struct list_head starved_list; + spinlock_t default_lock; + spinlock_t *host_lock; + struct mutex scan_mutex; + struct list_head eh_abort_list; + struct list_head eh_cmd_q; + struct task_struct *ehandler; + struct completion *eh_action; + wait_queue_head_t host_wait; + const struct scsi_host_template *hostt; + struct scsi_transport_template *transportt; + struct kref tagset_refcnt; + struct completion tagset_freed; + struct blk_mq_tag_set tag_set; + atomic_t host_blocked; + unsigned int host_failed; + unsigned int host_eh_scheduled; + unsigned int host_no; + int eh_deadline; + unsigned long last_reset; + unsigned int max_channel; + unsigned int max_id; + u64 max_lun; + unsigned int unique_id; + unsigned short max_cmd_len; + int this_id; + int can_queue; + short cmd_per_lun; + unsigned short sg_tablesize; + unsigned short sg_prot_tablesize; + unsigned int max_sectors; + unsigned int opt_sectors; + unsigned int max_segment_size; + unsigned long dma_boundary; + unsigned long virt_boundary_mask; + unsigned int nr_hw_queues; + unsigned int nr_maps; + unsigned int active_mode: 2; + unsigned int host_self_blocked: 1; + unsigned int reverse_ordering: 1; + unsigned int tmf_in_progress: 1; + unsigned int async_scan: 1; + unsigned int eh_noresume: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int queuecommand_may_block: 1; + unsigned int short_inquiry: 1; + unsigned int no_scsi2_lun_in_cdb: 1; + char work_q_name[20]; + struct workqueue_struct *work_q; + struct workqueue_struct *tmf_work_q; + unsigned int max_host_blocked; + unsigned int prot_capabilities; + unsigned char prot_guard_type; + unsigned long base; + unsigned long io_port; + unsigned char n_io_port; + unsigned char dma_channel; + unsigned int irq; + enum scsi_host_state shost_state; + long: 32; + struct device shost_gendev; + struct device shost_dev; + void *shost_data; + struct device *dma_dev; + unsigned long hostdata[0]; }; -struct nfs42_seek_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *sa_fh; - nfs4_stateid sa_stateid; - u64 sa_offset; - u32 sa_what; +struct scsi_cmnd; + +struct scsi_host_template { + unsigned int cmd_size; + int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *); + void (*commit_rqs)(struct Scsi_Host *, u16); + struct module *module; + const char *name; + const char * (*info)(struct Scsi_Host *); + int (*ioctl)(struct scsi_device *, unsigned int, void __attribute__((btf_type_tag("user"))) *); + int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *); + int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *); + int (*eh_abort_handler)(struct scsi_cmnd *); + int (*eh_device_reset_handler)(struct scsi_cmnd *); + int (*eh_target_reset_handler)(struct scsi_cmnd *); + int (*eh_bus_reset_handler)(struct scsi_cmnd *); + int (*eh_host_reset_handler)(struct scsi_cmnd *); + int (*slave_alloc)(struct scsi_device *); + int (*slave_configure)(struct scsi_device *); + void (*slave_destroy)(struct scsi_device *); + int (*target_alloc)(struct scsi_target *); + void (*target_destroy)(struct scsi_target *); + int (*scan_finished)(struct Scsi_Host *, unsigned long); + void (*scan_start)(struct Scsi_Host *); + int (*change_queue_depth)(struct scsi_device *, int); + void (*map_queues)(struct Scsi_Host *); + int (*mq_poll)(struct Scsi_Host *, unsigned int); + bool (*dma_need_drain)(struct request *); + int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *); + void (*unlock_native_capacity)(struct scsi_device *); + int (*show_info)(struct seq_file *, struct Scsi_Host *); + int (*write_info)(struct Scsi_Host *, char *, int); + enum scsi_timeout_action (*eh_timed_out)(struct scsi_cmnd *); + bool (*eh_should_retry_cmd)(struct scsi_cmnd *); + int (*host_reset)(struct Scsi_Host *, int); + const char *proc_name; + int can_queue; + int this_id; + unsigned short sg_tablesize; + unsigned short sg_prot_tablesize; + unsigned int max_sectors; + unsigned int max_segment_size; + unsigned long dma_boundary; + unsigned long virt_boundary_mask; + short cmd_per_lun; + int tag_alloc_policy; + unsigned int track_queue_depth: 1; + unsigned int supported_mode: 2; + unsigned int emulated: 1; + unsigned int skip_settle_delay: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int queuecommand_may_block: 1; + unsigned int max_host_blocked; + const struct attribute_group **shost_groups; + const struct attribute_group **sdev_groups; + u64 vendor_id; + int rpm_autosuspend_delay; long: 32; }; -struct nfs42_seek_res { - struct nfs4_sequence_res seq_res; - unsigned int status; - u32 sr_eof; - u64 sr_offset; +struct scsi_data_buffer { + struct sg_table table; + unsigned int length; }; -struct nfs42_device_error { - struct nfs4_deviceid dev_id; - int status; - enum nfs_opnum4 opnum; +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; }; -struct nfs42_layout_error { - __u64 offset; - __u64 length; - nfs4_stateid stateid; - struct nfs42_device_error errors[1]; +struct scsi_target { + struct scsi_device *starget_sdev_user; + struct list_head siblings; + struct list_head devices; + long: 32; + 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]; long: 32; }; -struct nfs42_layouterror_args { - struct nfs4_sequence_args seq_args; - struct inode *inode; - unsigned int num_errors; - struct nfs42_layout_error errors[5]; +struct scsi_vpd { + struct callback_head rcu; + int len; + unsigned char data[0]; }; -struct nfs42_layouterror_res { - struct nfs4_sequence_res seq_res; - unsigned int num_errors; - int rpc_status; -}; +typedef __u32 blk_mq_req_flags_t; -struct nfs42_layouterror_data { - struct nfs42_layouterror_args args; - struct nfs42_layouterror_res res; - struct inode *inode; - struct pnfs_layout_segment *lseg; -}; - -struct nfs42_clone_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *src_fh; - struct nfs_fh *dst_fh; - nfs4_stateid src_stateid; - nfs4_stateid dst_stateid; - __u64 src_offset; - __u64 dst_offset; - __u64 count; - const u32 *dst_bitmask; - long: 32; -}; - -struct nfs42_clone_res { - struct nfs4_sequence_res seq_res; - unsigned int rpc_status; - struct nfs_fattr *dst_fattr; - const struct nfs_server *server; +struct scsi_exec_args { + unsigned char *sense; + unsigned int sense_len; + struct scsi_sense_hdr *sshdr; + blk_mq_req_flags_t req_flags; + int scmd_flags; + int *resid; }; -struct nfs42_getxattrargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - const char *xattr_name; - size_t xattr_len; - struct page **xattr_pages; +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 nfs42_getxattrres { - struct nfs4_sequence_res seq_res; - size_t xattr_len; +struct cdrom_tochdr { + __u8 cdth_trk0; + __u8 cdth_trk1; }; -struct nfs42_setxattrargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - const u32 *bitmask; - const char *xattr_name; - u32 xattr_flags; - size_t xattr_len; - struct page **xattr_pages; +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; + long: 32; + struct cdrom_device_info cdi; + struct mutex lock; + struct gendisk *disk; }; -struct nfs42_setxattrres { - struct nfs4_sequence_res seq_res; - struct nfs4_change_info cinfo; - struct nfs_fattr *fattr; - const struct nfs_server *server; +struct cdrom_ti { + __u8 cdti_trk0; + __u8 cdti_ind0; + __u8 cdti_trk1; + __u8 cdti_ind1; }; -struct nfs42_listxattrsargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - u32 count; - u64 cookie; - struct page **xattr_pages; - long: 32; +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; }; -struct nfs42_listxattrsres { - struct nfs4_sequence_res seq_res; - struct page *scratch; - void *xattr_buf; - size_t xattr_len; - long: 32; - u64 cookie; - bool eof; - size_t copied; -}; +typedef struct scsi_cd Scsi_CD; -struct nfs42_removexattrargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - const char *xattr_name; -}; +struct ata_port_operations; -struct nfs42_removexattrres { - struct nfs4_sequence_res seq_res; - struct nfs4_change_info cinfo; +struct ata_port_info { + unsigned long flags; + unsigned long link_flags; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + struct ata_port_operations *port_ops; + void *private_data; }; -struct nfs42_offload_status_args { - struct nfs4_sequence_args osa_seq_args; - struct nfs_fh *osa_src_fh; - nfs4_stateid osa_stateid; +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 nfs42_offload_status_res { - struct nfs4_sequence_res osr_seq_res; - uint64_t osr_count; - int osr_status; - long: 32; -}; +struct ata_link; -struct nfs42_offloadcancel_data { - struct nfs_server *seq_server; - struct nfs42_offload_status_args args; - long: 32; - struct nfs42_offload_status_res res; -}; +typedef int (*ata_prereset_fn_t)(struct ata_link *, unsigned long); -struct nfs42_layoutstat_res { - struct nfs4_sequence_res seq_res; - int num_dev; - int rpc_status; -}; +typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, unsigned long); -struct nfs42_layoutstat_data { - struct inode *inode; - struct nfs42_layoutstat_args args; - struct nfs42_layoutstat_res res; -}; +typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); -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 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 { - SCANNED_GARBAGE = 0, - SCANNED_EMPTY_SPACE = -1, - SCANNED_A_NODE = -2, - SCANNED_A_CORRUPT_NODE = -3, - SCANNED_A_BAD_PAD_NODE = -4, +enum sw_activity { + OFF = 0, + BLINK_ON = 1, + BLINK_OFF = 2, }; -enum { - UBIFS_INO_NODE = 0, - UBIFS_DATA_NODE = 1, - UBIFS_DENT_NODE = 2, - UBIFS_XENT_NODE = 3, - UBIFS_TRUN_NODE = 4, - UBIFS_PAD_NODE = 5, - UBIFS_SB_NODE = 6, - UBIFS_MST_NODE = 7, - UBIFS_REF_NODE = 8, - UBIFS_IDX_NODE = 9, - UBIFS_CS_NODE = 10, - UBIFS_ORPH_NODE = 11, - UBIFS_AUTH_NODE = 12, - UBIFS_SIG_NODE = 13, - UBIFS_NODE_TYPES_CNT = 14, -}; +struct ata_queued_cmd; -enum { - DUMP_PREFIX_NONE = 0, - DUMP_PREFIX_ADDRESS = 1, - DUMP_PREFIX_OFFSET = 2, -}; +struct ata_port; -enum { - UBIFS_INO_KEY = 0, - UBIFS_DATA_KEY = 1, - UBIFS_DENT_KEY = 2, - UBIFS_XENT_KEY = 3, - UBIFS_KEY_TYPES_CNT = 4, -}; +struct ata_device; -typedef __kernel_ulong_t ino_t; +struct ata_taskfile; -typedef u8 uint8_t; +struct ata_host; -union ubifs_key { - uint8_t u8[8]; - uint32_t u32[2]; - uint64_t u64[1]; - __le32 j32[2]; +struct ata_port_operations { + int (*qc_defer)(struct ata_queued_cmd *); + int (*check_atapi_dma)(struct ata_queued_cmd *); + enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *); + unsigned int (*qc_issue)(struct ata_queued_cmd *); + void (*qc_fill_rtf)(struct ata_queued_cmd *); + void (*qc_ncq_fill_rtf)(struct ata_port *, u64); + int (*cable_detect)(struct ata_port *); + unsigned int (*mode_filter)(struct ata_device *, unsigned int); + void (*set_piomode)(struct ata_port *, struct ata_device *); + void (*set_dmamode)(struct ata_port *, struct ata_device *); + int (*set_mode)(struct ata_link *, struct ata_device **); + unsigned int (*read_id)(struct ata_device *, struct ata_taskfile *, __le16 *); + void (*dev_config)(struct ata_device *); + void (*freeze)(struct ata_port *); + void (*thaw)(struct ata_port *); + ata_prereset_fn_t prereset; + ata_reset_fn_t softreset; + ata_reset_fn_t hardreset; + ata_postreset_fn_t postreset; + ata_prereset_fn_t pmp_prereset; + ata_reset_fn_t pmp_softreset; + ata_reset_fn_t pmp_hardreset; + ata_postreset_fn_t pmp_postreset; + void (*error_handler)(struct ata_port *); + void (*lost_interrupt)(struct ata_port *); + void (*post_internal_cmd)(struct ata_queued_cmd *); + void (*sched_eh)(struct ata_port *); + void (*end_eh)(struct ata_port *); + int (*scr_read)(struct ata_link *, unsigned int, u32 *); + int (*scr_write)(struct ata_link *, unsigned int, u32); + void (*pmp_attach)(struct ata_port *); + void (*pmp_detach)(struct ata_port *); + int (*set_lpm)(struct ata_link *, enum ata_lpm_policy, unsigned int); + int (*port_suspend)(struct ata_port *, pm_message_t); + int (*port_resume)(struct ata_port *); + int (*port_start)(struct ata_port *); + void (*port_stop)(struct ata_port *); + void (*host_stop)(struct ata_host *); + void (*sff_dev_select)(struct ata_port *, unsigned int); + void (*sff_set_devctl)(struct ata_port *, u8); + u8 (*sff_check_status)(struct ata_port *); + u8 (*sff_check_altstatus)(struct ata_port *); + void (*sff_tf_load)(struct ata_port *, const struct ata_taskfile *); + void (*sff_tf_read)(struct ata_port *, struct ata_taskfile *); + void (*sff_exec_command)(struct ata_port *, const struct ata_taskfile *); + unsigned int (*sff_data_xfer)(struct ata_queued_cmd *, unsigned char *, unsigned int, int); + void (*sff_irq_on)(struct ata_port *); + bool (*sff_irq_check)(struct ata_port *); + void (*sff_irq_clear)(struct ata_port *); + void (*sff_drain_fifo)(struct ata_queued_cmd *); + void (*bmdma_setup)(struct ata_queued_cmd *); + void (*bmdma_start)(struct ata_queued_cmd *); + void (*bmdma_stop)(struct ata_queued_cmd *); + u8 (*bmdma_status)(struct ata_port *); + ssize_t (*em_show)(struct ata_port *, char *); + ssize_t (*em_store)(struct ata_port *, const char *, size_t); + ssize_t (*sw_activity_show)(struct ata_device *, char *); + ssize_t (*sw_activity_store)(struct ata_device *, enum sw_activity); + ssize_t (*transmit_led_message)(struct ata_port *, u32, ssize_t); + const struct ata_port_operations *inherits; }; -struct ubifs_znode; - -struct ubifs_zbranch { - union ubifs_key key; +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 { - struct ubifs_znode *znode; - void *leaf; + u8 error; + u8 feature; }; - int lnum; - int offs; - int len; - u8 hash[0]; + u8 nsect; + u8 lbal; + u8 lbam; + u8 lbah; + u8 device; + union { + u8 status; + u8 command; + }; + u32 auxiliary; }; -struct bu_info { - union ubifs_key key; - struct ubifs_zbranch zbranch[32]; - void *buf; - int buf_len; - int gc_seq; - int cnt; - int blk_cnt; - int eof; +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 ubifs_lp_stats { - int empty_lebs; - int taken_empty_lebs; - int idx_lebs; - long: 32; - long long total_free; - long long total_dirty; - long long total_used; - long long total_dead; - long long total_dark; +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 ubifs_budg_info { - long long idx_growth; - long long data_growth; - long long dd_growth; - long long uncommitted_idx; - unsigned long long old_idx_sz; - int min_idx_lebs; - unsigned int nospace: 1; - unsigned int nospace_rp: 1; - int page_budget; - int inode_budget; - int dent_budget; - long: 32; +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 ubifs_node_range { - union { - int len; - int min_len; - }; - int max_len; +struct ata_eh_context { + struct ata_eh_info i; + int tries[2]; + int cmd_timeout_idx[16]; + unsigned int classes[2]; + unsigned int did_probe_mask; + unsigned int unloaded_mask; + unsigned int saved_ncq_enabled; + u8 saved_xfer_mode[2]; + unsigned long last_reset; }; -struct ubi_device_info { - int ubi_num; - int leb_size; - int leb_start; - int min_io_size; - int max_write_size; - int ro_mode; - dev_t cdev; +struct ata_ering_entry { + unsigned int eflags; + unsigned int err_mask; + u64 timestamp; }; -struct ubi_volume_info { - int ubi_num; - int vol_id; - int size; +struct ata_ering { + int cursor; long: 32; - long long used_bytes; - int used_ebs; - int vol_type; - int corrupted; - int upd_marker; - int alignment; - int usable_leb_size; - int name_len; - const char *name; - dev_t cdev; - struct device *dev; + struct ata_ering_entry ring[32]; }; -struct ubifs_lprops; - -struct ubifs_lpt_heap { - struct ubifs_lprops **arr; - int cnt; - int max_cnt; -}; +struct ata_cpr_log; -struct ubifs_mount_opts { - unsigned int unmount_mode: 2; - unsigned int bulk_read: 2; - unsigned int chk_data_crc: 2; - unsigned int override_compr: 1; - unsigned int compr_type: 2; +struct ata_device { + struct ata_link *link; + unsigned int devno; + unsigned int horkage; + unsigned long flags; + struct scsi_device *sdev; + void *private_data; + 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: 32; + long: 32; + union { + u16 id[256]; + u32 gscr[128]; + }; + u8 devslp_timing[8]; + u8 ncq_send_recv_cmds[20]; + u8 ncq_non_data_cmds[64]; + u32 zac_zoned_cap; + u32 zac_zones_optimal_open; + u32 zac_zones_optimal_nonseq; + u32 zac_zones_max_open; + struct ata_cpr_log *cpr_log; + u8 cdl[512]; + int spdn_cnt; + long: 32; + struct ata_ering ering; }; -struct ubifs_sb_node; - -struct ubifs_jhead; - -struct ubifs_mst_node; - -struct ubi_volume_desc; - -struct ubifs_orphan; - -struct ubifs_nnode; - -struct ubifs_cnode; - -struct ubifs_lpt_lprops; - -struct shash_desc; - -struct ubifs_debug_info; - -struct ubifs_stats_info; - -struct ubifs_info { - struct super_block *vfs_sb; - struct ubifs_sb_node *sup_node; - ino_t highest_inum; +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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct ata_device device[2]; + unsigned long last_lpm_change; + long: 32; long: 32; - unsigned long long max_sqnum; - unsigned long long cmt_no; - spinlock_t cnt_lock; - int fmt_version; - int ro_compat_version; - unsigned char uuid[16]; - int lhead_lnum; - int lhead_offs; - int ltail_lnum; - struct mutex log_mutex; - int min_log_bytes; - long long cmt_bud_bytes; - struct rb_root buds; long: 32; - long long bud_bytes; - spinlock_t buds_lock; - int jhead_cnt; - struct ubifs_jhead *jheads; long: 32; - long long max_bud_bytes; - long long bg_bud_bytes; - struct list_head old_buds; - int max_bud_cnt; - struct rw_semaphore commit_sem; - int cmt_state; - spinlock_t cs_lock; - wait_queue_head_t cmt_wq; - struct kobject kobj; - struct completion kobj_unregister; - unsigned int big_lpt: 1; - unsigned int space_fixup: 1; - unsigned int double_hash: 1; - unsigned int encrypted: 1; - unsigned int no_chk_data_crc: 1; - unsigned int bulk_read: 1; - unsigned int default_compr: 2; - unsigned int rw_incompat: 1; - unsigned int assert_action: 2; - unsigned int authenticated: 1; - unsigned int superblock_need_write: 1; - struct mutex tnc_mutex; long: 32; - struct ubifs_zbranch zroot; - struct ubifs_znode *cnext; - struct ubifs_znode *enext; - int *gap_lebs; - void *cbuf; - void *ileb_buf; - int ileb_len; - int ihead_lnum; - int ihead_offs; - int *ilebs; - int ileb_cnt; - int ileb_nxt; - struct rb_root old_idx; - int *bottom_up_buf; - struct ubifs_mst_node *mst_node; - int mst_offs; - int max_bu_buf_len; - struct mutex bu_mutex; long: 32; - struct bu_info bu; - struct mutex write_reserve_mutex; - void *write_reserve_buf; - int log_lebs; long: 32; - long long log_bytes; - int log_last; - int lpt_lebs; - int lpt_first; - int lpt_last; - int orph_lebs; - int orph_first; - int orph_last; - int main_lebs; - int main_first; long: 32; - long long main_bytes; - uint8_t key_hash_type; - uint32_t (*key_hash)(const char *, int); - int key_fmt; - int key_len; - int hash_len; - int fanout; - int min_io_size; - int min_io_shift; - int max_write_size; - int max_write_shift; - int leb_size; - int leb_start; - int half_leb_size; - int idx_leb_size; - int leb_cnt; - int max_leb_cnt; - unsigned int ro_media: 1; - unsigned int ro_mount: 1; - unsigned int ro_error: 1; - atomic_long_t dirty_pg_cnt; - atomic_long_t dirty_zn_cnt; - atomic_long_t clean_zn_cnt; - spinlock_t space_lock; long: 32; - struct ubifs_lp_stats lst; - struct ubifs_budg_info bi; - unsigned long long calc_idx_sz; - int ref_node_alsz; - int mst_node_alsz; - int min_idx_node_sz; - int max_idx_node_sz; - long long max_inode_sz; - int max_znode_sz; - int leb_overhead; - int dead_wm; - int dark_wm; - int block_cnt; - struct ubifs_node_range ranges[14]; - struct ubi_volume_desc *ubi; - struct ubi_device_info di; long: 32; - struct ubi_volume_info vi; - struct rb_root orph_tree; - struct list_head orph_list; - struct list_head orph_new; - struct ubifs_orphan *orph_cnext; - struct ubifs_orphan *orph_dnext; - spinlock_t orphan_lock; - void *orph_buf; - int new_orphans; - int cmt_orphans; - int tot_orphans; - int max_orphans; - int ohead_lnum; - int ohead_offs; - int no_orphs; - struct task_struct *bgt; - char bgt_name[24]; - int need_bgt; - int need_wbuf_sync; - int gc_lnum; - void *sbuf; - struct list_head idx_gc; - int idx_gc_cnt; - int gc_seq; - int gced_lnum; - struct list_head infos_list; - struct mutex umount_mutex; - unsigned int shrinker_run_no; - int space_bits; - int lpt_lnum_bits; - int lpt_offs_bits; - int lpt_spc_bits; - int pcnt_bits; - int lnum_bits; - int nnode_sz; - int pnode_sz; - int ltab_sz; - int lsave_sz; - int pnode_cnt; - int nnode_cnt; - int lpt_hght; - int pnodes_have; - struct mutex lp_mutex; - int lpt_lnum; - int lpt_offs; - int nhead_lnum; - int nhead_offs; - int lpt_drty_flgs; - int dirty_nn_cnt; - int dirty_pn_cnt; - int check_lpt_free; long: 32; - long long lpt_sz; - void *lpt_nod_buf; - void *lpt_buf; - struct ubifs_nnode *nroot; - struct ubifs_cnode *lpt_cnext; - struct ubifs_lpt_heap lpt_heap[3]; - struct ubifs_lpt_heap dirty_idx; - struct list_head uncat_list; - struct list_head empty_list; - struct list_head freeable_list; - struct list_head frdi_idx_list; - int freeable_cnt; - int in_a_category_cnt; - int ltab_lnum; - int ltab_offs; - struct ubifs_lpt_lprops *ltab; - struct ubifs_lpt_lprops *ltab_cmt; - int lsave_cnt; - int lsave_lnum; - int lsave_offs; - int *lsave; - int lscan_lnum; long: 32; - long long rp_size; - long long report_rp_size; - kuid_t rp_uid; - kgid_t rp_gid; - struct crypto_shash *hash_tfm; - struct crypto_shash *hmac_tfm; - int hmac_desc_len; - char *auth_key_name; - char *auth_hash_name; - enum hash_algo auth_hash_algo; - struct shash_desc *log_hash; - unsigned int empty: 1; - unsigned int need_recovery: 1; - unsigned int replaying: 1; - unsigned int mounting: 1; - unsigned int remounting_rw: 1; - unsigned int probing: 1; - struct list_head replay_list; - struct list_head replay_buds; - unsigned long long cs_sqnum; - struct list_head unclean_leb_list; - struct ubifs_mst_node *rcvrd_mst_node; - struct rb_root size_tree; - struct ubifs_mount_opts mount_opts; - struct ubifs_debug_info *dbg; - struct ubifs_stats_info *stats; long: 32; -}; - -struct ubifs_ch { - __le32 magic; - __le32 crc; - __le64 sqnum; - __le32 len; - __u8 node_type; - __u8 group_type; - __u8 padding[2]; -}; - -struct ubifs_sb_node { - struct ubifs_ch ch; - __u8 padding[2]; - __u8 key_hash; - __u8 key_fmt; - __le32 flags; - __le32 min_io_size; - __le32 leb_size; - __le32 leb_cnt; - __le32 max_leb_cnt; - __le64 max_bud_bytes; - __le32 log_lebs; - __le32 lpt_lebs; - __le32 orph_lebs; - __le32 jhead_cnt; - __le32 fanout; - __le32 lsave_cnt; - __le32 fmt_version; - __le16 default_compr; - __u8 padding1[2]; - __le32 rp_uid; - __le32 rp_gid; - __le64 rp_size; - __le32 time_gran; - __u8 uuid[16]; - __le32 ro_compat_version; - __u8 hmac[64]; - __u8 hmac_wkm[64]; - __le16 hash_algo; - __u8 hash_mst[64]; - __u8 padding2[3774]; -}; - -struct ubifs_wbuf { - struct ubifs_info *c; - void *buf; - int lnum; - int offs; - int avail; - int used; - int size; - int jhead; - int (*sync_callback)(struct ubifs_info *, int, int, int); - struct mutex io_mutex; - spinlock_t lock; long: 32; - struct hrtimer timer; - unsigned int no_timer: 1; - unsigned int need_sync: 1; - int next_ino; - ino_t *inodes; long: 32; }; -struct ubifs_jhead { - struct ubifs_wbuf wbuf; - struct list_head buds_list; - unsigned int grouped: 1; - struct shash_desc *log_hash; -}; - -struct shash_desc { - struct crypto_shash *tfm; - long: 32; - void *__ctx[0]; +struct ata_port_stats { + unsigned long unhandled_irq; + unsigned long idle_irq; + unsigned long rw_reqbuf; }; -struct crypto_template; +typedef u64 async_cookie_t; -struct crypto_spawn; +struct ata_bmdma_prd; -struct crypto_instance { - struct crypto_alg alg; - struct crypto_template *tmpl; - union { - struct hlist_node list; - struct crypto_spawn *spawns; - }; +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: 32; long: 32; @@ -23666,8333 +32595,9293 @@ struct crypto_instance { long: 32; long: 32; long: 32; + 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; long: 32; + struct device tdev; + struct mutex scsi_scan_mutex; + struct delayed_work hotplug_task; + struct delayed_work scsi_rescan_task; + unsigned int hsm_task_state; + struct list_head eh_done_q; + wait_queue_head_t eh_wait_q; + int eh_tries; + struct completion park_req_pending; + pm_message_t pm_mesg; + enum ata_lpm_policy target_lpm_policy; + struct timer_list fastdrain_timer; + unsigned int fastdrain_cnt; + async_cookie_t cookie; + int em_message_type; + void *private_data; + u8 *ncq_sense_buf; long: 32; long: 32; long: 32; - void *__ctx[0]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + u8 sector_buf[512]; }; -struct rtattr; +struct ata_cpr { + u8 num; + u8 num_storage_elements; + long: 32; + u64 start_lba; + u64 num_lbas; +}; -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 ata_cpr_log { + u8 nr_cpr; + long: 32; + struct ata_cpr cpr[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 ata_bmdma_prd { + __le32 addr; + __le32 flags_len; }; -struct ubifs_znode { - struct ubifs_znode *parent; - struct ubifs_znode *cnext; - struct ubifs_znode *cparent; - int ciip; +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; - long: 32; - time64_t time; - int level; - int child_cnt; - int iip; - int alt; - int lnum; - int offs; - int len; - long: 32; - struct ubifs_zbranch zbranch[0]; + struct kref kref; + struct mutex eh_mutex; + struct task_struct *eh_owner; + struct ata_port *simplex_claimed; + struct ata_port *ports[0]; }; -struct ubifs_mst_node { - struct ubifs_ch ch; - __le64 highest_inum; - __le64 cmt_no; - __le32 flags; - __le32 log_lnum; - __le32 root_lnum; - __le32 root_offs; - __le32 root_len; - __le32 gc_lnum; - __le32 ihead_lnum; - __le32 ihead_offs; - __le64 index_size; - __le64 total_free; - __le64 total_dirty; - __le64 total_used; - __le64 total_dead; - __le64 total_dark; - __le32 lpt_lnum; - __le32 lpt_offs; - __le32 nhead_lnum; - __le32 nhead_offs; - __le32 ltab_lnum; - __le32 ltab_offs; - __le32 lsave_lnum; - __le32 lsave_offs; - __le32 lscan_lnum; - __le32 empty_lebs; - __le32 idx_lebs; - __le32 leb_cnt; - __u8 hash_root_idx[64]; - __u8 hash_lpt[64]; - __u8 hmac[64]; - __u8 padding[152]; +enum brcm_ahci_version { + BRCM_SATA_BCM7425 = 1, + BRCM_SATA_BCM7445 = 2, + BRCM_SATA_NSP = 3, + BRCM_SATA_BCM7216 = 4, }; -struct ubifs_orphan { - struct rb_node rb; - struct list_head list; - struct list_head new_list; - struct list_head child_list; - struct ubifs_orphan *cnext; - struct ubifs_orphan *dnext; - ino_t inum; - unsigned int new: 1; - unsigned int cmt: 1; - unsigned int del: 1; +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, }; -struct ubifs_pnode; - -struct ubifs_nbranch { - int lnum; - int offs; - union { - struct ubifs_nnode *nnode; - struct ubifs_pnode *pnode; - struct ubifs_cnode *cnode; - }; +enum brcm_ahci_quirks { + BRCM_AHCI_QUIRK_SKIP_PHY_ENABLE = 1, }; -struct ubifs_nnode { - struct ubifs_nnode *parent; - struct ubifs_cnode *cnext; - unsigned long flags; - int iip; - int level; - int num; - struct ubifs_nbranch nbranch[4]; +struct brcm_ahci_priv { + struct device *dev; + void *top_ctrl; + u32 port_mask; + u32 quirks; + enum brcm_ahci_version version; + struct reset_control *rcdev_rescal; + struct reset_control *rcdev_ahci; }; -struct ubifs_cnode { - struct ubifs_nnode *parent; - struct ubifs_cnode *cnext; - unsigned long flags; - int iip; - int level; - int num; +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 ubifs_lprops { - int free; - int dirty; - int flags; - int lnum; - union { - struct list_head list; - int hpos; - }; -}; +struct nand_chip; -struct ubifs_pnode { - struct ubifs_nnode *parent; - struct ubifs_cnode *cnext; - unsigned long flags; - int iip; - int level; - int num; - struct ubifs_lprops lprops[4]; +struct nand_onfi_params; + +struct nand_manufacturer_ops { + void (*detect)(struct nand_chip *); + int (*init)(struct nand_chip *); + void (*cleanup)(struct nand_chip *); + void (*fixup_onfi_param_page)(struct nand_chip *, struct nand_onfi_params *); }; -struct ubifs_lpt_lprops { - int free; - int dirty; - unsigned int tgc: 1; - unsigned int cmt: 1; +typedef unsigned char u_char; + +struct mtd_ecc_stats { + __u32 corrected; + __u32 failed; + __u32 badblocks; + __u32 bbtblocks; }; -struct ubifs_debug_info { - struct ubifs_zbranch old_zroot; - int old_zroot_level; - long: 32; - unsigned long long old_zroot_sqnum; - int pc_happened; - int pc_delay; - unsigned long pc_timeout; - unsigned int pc_cnt; - unsigned int pc_cnt_max; - long: 32; - long long chk_lpt_sz; - long long chk_lpt_sz2; - long long chk_lpt_wastage; - int chk_lpt_lebs; - int new_nhead_offs; - int new_ihead_lnum; - int new_ihead_offs; - struct ubifs_lp_stats saved_lst; - struct ubifs_budg_info saved_bi; - long long saved_free; - int saved_idx_gc_cnt; - unsigned int chk_gen: 1; - unsigned int chk_index: 1; - unsigned int chk_orph: 1; - unsigned int chk_lprops: 1; - unsigned int chk_fs: 1; - unsigned int tst_rcvry: 1; - char dfs_dir_name[10]; +struct mtd_debug_info { struct dentry *dfs_dir; - struct dentry *dfs_dump_lprops; - struct dentry *dfs_dump_budg; - struct dentry *dfs_dump_tnc; - struct dentry *dfs_chk_gen; - struct dentry *dfs_chk_index; - struct dentry *dfs_chk_orph; - struct dentry *dfs_chk_lprops; - struct dentry *dfs_chk_fs; - struct dentry *dfs_tst_rcvry; - struct dentry *dfs_ro_error; - long: 32; }; -struct ubifs_stats_info { - unsigned int magic_errors; - unsigned int node_errors; - unsigned int crc_errors; +struct mtd_part { + struct list_head node; + u64 offset; + u64 size; + u32 flags; + long: 32; }; -struct ubifs_scan_node { - struct list_head list; - union ubifs_key key; - unsigned long long sqnum; - int type; - int offs; - int len; - void *node; +struct mtd_master { + struct mutex partitions_lock; + struct mutex chrdev_lock; + unsigned int suspended: 1; }; -struct ubifs_scan_leb { - int lnum; - int nodes_cnt; - struct list_head nodes; - int endpt; - void *buf; +struct mtd_ooblayout_ops; + +struct mtd_pairing_scheme; + +struct mtd_erase_region_info; + +struct erase_info; + +struct mtd_oob_ops; + +struct otp_info; + +struct nvmem_device; + +struct mtd_info { + u_char type; + uint32_t flags; + uint64_t size; + uint32_t erasesize; + uint32_t writesize; + uint32_t writebufsize; + uint32_t oobsize; + uint32_t oobavail; + unsigned int erasesize_shift; + unsigned int writesize_shift; + unsigned int erasesize_mask; + unsigned int writesize_mask; + unsigned int bitflip_threshold; + const char *name; + int index; + const struct mtd_ooblayout_ops *ooblayout; + const struct mtd_pairing_scheme *pairing; + unsigned int ecc_step_size; + unsigned int ecc_strength; + int numeraseregions; + struct mtd_erase_region_info *eraseregions; + int (*_erase)(struct mtd_info *, struct erase_info *); + int (*_point)(struct mtd_info *, loff_t, size_t, size_t *, void **, resource_size_t *); + int (*_unpoint)(struct mtd_info *, loff_t, size_t); + int (*_read)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); + int (*_write)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); + int (*_panic_write)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); + int (*_read_oob)(struct mtd_info *, loff_t, struct mtd_oob_ops *); + int (*_write_oob)(struct mtd_info *, loff_t, struct mtd_oob_ops *); + int (*_get_fact_prot_info)(struct mtd_info *, size_t, size_t *, struct otp_info *); + int (*_read_fact_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); + int (*_get_user_prot_info)(struct mtd_info *, size_t, size_t *, struct otp_info *); + int (*_read_user_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); + int (*_write_user_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); + int (*_lock_user_prot_reg)(struct mtd_info *, loff_t, size_t); + int (*_erase_user_prot_reg)(struct mtd_info *, loff_t, size_t); + int (*_writev)(struct mtd_info *, const struct kvec *, unsigned long, loff_t, size_t *); + void (*_sync)(struct mtd_info *); + int (*_lock)(struct mtd_info *, loff_t, uint64_t); + int (*_unlock)(struct mtd_info *, loff_t, uint64_t); + int (*_is_locked)(struct mtd_info *, loff_t, uint64_t); + int (*_block_isreserved)(struct mtd_info *, loff_t); + int (*_block_isbad)(struct mtd_info *, loff_t); + int (*_block_markbad)(struct mtd_info *, loff_t); + int (*_max_bad_blocks)(struct mtd_info *, loff_t, size_t); + int (*_suspend)(struct mtd_info *); + void (*_resume)(struct mtd_info *); + void (*_reboot)(struct mtd_info *); + int (*_get_device)(struct mtd_info *); + void (*_put_device)(struct mtd_info *); + bool oops_panic_write; + struct notifier_block reboot_notifier; + struct mtd_ecc_stats ecc_stats; + int subpage_sft; + void *priv; + struct module *owner; + struct device dev; + struct kref refcnt; + struct mtd_debug_info dbg; + struct nvmem_device *nvmem; + struct nvmem_device *otp_user_nvmem; + struct nvmem_device *otp_factory_nvmem; + struct mtd_info *parent; + struct list_head partitions; + struct mtd_part part; + struct mtd_master master; + long: 32; }; -struct ubifs_ino_node { - struct ubifs_ch ch; - __u8 key[16]; - __le64 creat_sqnum; - __le64 size; - __le64 atime_sec; - __le64 ctime_sec; - __le64 mtime_sec; - __le32 atime_nsec; - __le32 ctime_nsec; - __le32 mtime_nsec; - __le32 nlink; - __le32 uid; - __le32 gid; - __le32 mode; - __le32 flags; - __le32 data_len; - __le32 xattr_cnt; - __le32 xattr_size; - __u8 padding1[4]; - __le32 xattr_names; - __le16 compr_type; - __u8 padding2[26]; - __u8 data[0]; +struct nand_memory_organization { + unsigned int bits_per_cell; + unsigned int pagesize; + unsigned int oobsize; + unsigned int pages_per_eraseblock; + unsigned int eraseblocks_per_lun; + unsigned int max_bad_eraseblocks_per_lun; + unsigned int planes_per_lun; + unsigned int luns_per_target; + unsigned int ntargets; }; -struct ubifs_pad_node { - struct ubifs_ch ch; - __le32 pad_len; +enum nand_ecc_engine_type { + NAND_ECC_ENGINE_TYPE_INVALID = 0, + NAND_ECC_ENGINE_TYPE_NONE = 1, + NAND_ECC_ENGINE_TYPE_SOFT = 2, + NAND_ECC_ENGINE_TYPE_ON_HOST = 3, + NAND_ECC_ENGINE_TYPE_ON_DIE = 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 nand_ecc_placement { + NAND_ECC_PLACEMENT_UNKNOWN = 0, + NAND_ECC_PLACEMENT_OOB = 1, + NAND_ECC_PLACEMENT_INTERLEAVED = 2, }; -struct debugfs_fsdata { - const struct file_operations *real_fops; - refcount_t active_users; - struct completion active_users_drained; +enum nand_ecc_algo { + NAND_ECC_ALGO_UNKNOWN = 0, + NAND_ECC_ALGO_HAMMING = 1, + NAND_ECC_ALGO_BCH = 2, + NAND_ECC_ALGO_RS = 3, }; -struct debugfs_reg32 { - char *name; - unsigned long offset; +struct nand_ecc_props { + enum nand_ecc_engine_type engine_type; + enum nand_ecc_placement placement; + enum nand_ecc_algo algo; + unsigned int strength; + unsigned int step_size; + unsigned int flags; }; -struct debugfs_blob_wrapper { - void *data; - unsigned long size; +struct nand_ecc_context { + struct nand_ecc_props conf; + unsigned int nsteps; + unsigned int total; + void *priv; }; -struct debugfs_u32_array { - u32 *array; - u32 n_elements; +struct nand_ecc_engine; + +struct nand_ecc { + struct nand_ecc_props defaults; + struct nand_ecc_props requirements; + struct nand_ecc_props user_conf; + struct nand_ecc_context ctx; + struct nand_ecc_engine *ondie_engine; + struct nand_ecc_engine *engine; }; -struct debugfs_regset32 { - const struct debugfs_reg32 *regs; - int nregs; - void *base; - struct device *dev; +struct nand_row_converter { + unsigned int lun_addr_shift; + unsigned int eraseblock_addr_shift; }; -struct debugfs_devm_entry { - int (*read)(struct seq_file *, void *); - struct device *dev; +struct nand_bbt { + unsigned long *cache; }; -typedef void (*exitcall_t)(); +struct nand_ops; -enum { - CRYPTO_MSG_ALG_REQUEST = 0, - CRYPTO_MSG_ALG_REGISTER = 1, - CRYPTO_MSG_ALG_LOADED = 2, +struct nand_device { + struct mtd_info mtd; + struct nand_memory_organization memorg; + struct nand_ecc ecc; + struct nand_row_converter rowconv; + struct nand_bbt bbt; + const struct nand_ops *ops; }; -enum { - CRYPTOA_UNSPEC = 0, - CRYPTOA_ALG = 1, - CRYPTOA_TYPE = 2, - __CRYPTOA_MAX = 3, +struct nand_id { + u8 data[8]; + int len; }; -struct crypto_larval { - struct crypto_alg alg; - struct crypto_alg *adult; - struct completion completion; - u32 mask; - bool test_started; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; +struct onfi_params; -struct rtattr { - unsigned short rta_len; - unsigned short rta_type; +struct nand_parameters { + const char *model; + bool supports_set_get_features; + bool supports_read_cache; + unsigned long set_feature_list[8]; + unsigned long get_feature_list[8]; + struct onfi_params *onfi; }; -struct crypto_attr_type { - u32 type; - u32 mask; +struct nand_manufacturer_desc; + +struct nand_manufacturer { + const struct nand_manufacturer_desc *desc; + void *priv; }; -struct crypto_attr_alg { - char name[128]; +struct nand_interface_config; + +struct nand_chip_ops { + int (*suspend)(struct nand_chip *); + void (*resume)(struct nand_chip *); + int (*lock_area)(struct nand_chip *, loff_t, uint64_t); + int (*unlock_area)(struct nand_chip *, loff_t, uint64_t); + int (*setup_read_retry)(struct nand_chip *, int); + int (*choose_interface_config)(struct nand_chip *, struct nand_interface_config *); }; -struct cryptomgr_param { - struct rtattr *tb[34]; - struct { - struct rtattr attr; - struct crypto_attr_type data; - } type; +struct nand_controller_ops; + +struct nand_controller { + struct mutex lock; + const struct nand_controller_ops *ops; struct { - struct rtattr attr; - struct crypto_attr_alg data; - } attrs[32]; - char template[128]; - struct crypto_larval *larval; - u32 otype; - u32 omask; + unsigned int data_only_read: 1; + unsigned int cont_read: 1; + } supported_op; }; -enum mq_rq_state { - MQ_RQ_IDLE = 0, - MQ_RQ_IN_FLIGHT = 1, - MQ_RQ_COMPLETE = 2, +struct nand_legacy { + void *IO_ADDR_R; + void *IO_ADDR_W; + void (*select_chip)(struct nand_chip *, int); + u8 (*read_byte)(struct nand_chip *); + void (*write_byte)(struct nand_chip *, u8); + void (*write_buf)(struct nand_chip *, const u8 *, int); + void (*read_buf)(struct nand_chip *, u8 *, int); + void (*cmd_ctrl)(struct nand_chip *, int, unsigned int); + void (*cmdfunc)(struct nand_chip *, unsigned int, int, int); + int (*dev_ready)(struct nand_chip *); + int (*waitfunc)(struct nand_chip *); + int (*block_bad)(struct nand_chip *, loff_t); + int (*block_markbad)(struct nand_chip *, loff_t); + int (*set_features)(struct nand_chip *, int, u8 *); + int (*get_features)(struct nand_chip *, int, u8 *); + int chip_delay; + struct nand_controller dummy_controller; }; -enum rq_end_io_ret { - RQ_END_IO_NONE = 0, - RQ_END_IO_FREE = 1, +struct nand_ecc_ctrl { + enum nand_ecc_engine_type engine_type; + enum nand_ecc_placement placement; + enum nand_ecc_algo algo; + int steps; + int size; + int bytes; + int total; + int strength; + int prepad; + int postpad; + unsigned int options; + u8 *calc_buf; + u8 *code_buf; + void (*hwctl)(struct nand_chip *, int); + int (*calculate)(struct nand_chip *, const uint8_t *, uint8_t *); + int (*correct)(struct nand_chip *, uint8_t *, uint8_t *, uint8_t *); + int (*read_page_raw)(struct nand_chip *, uint8_t *, int, int); + int (*write_page_raw)(struct nand_chip *, const uint8_t *, int, int); + int (*read_page)(struct nand_chip *, uint8_t *, int, int); + int (*read_subpage)(struct nand_chip *, uint32_t, uint32_t, uint8_t *, int); + int (*write_subpage)(struct nand_chip *, uint32_t, uint32_t, const uint8_t *, int, int); + int (*write_page)(struct nand_chip *, const uint8_t *, int, int); + int (*write_oob_raw)(struct nand_chip *, int); + int (*read_oob_raw)(struct nand_chip *, int); + int (*read_oob)(struct nand_chip *, int); + int (*write_oob)(struct nand_chip *, int); }; -enum { - IOPRIO_CLASS_NONE = 0, - IOPRIO_CLASS_RT = 1, - IOPRIO_CLASS_BE = 2, - IOPRIO_CLASS_IDLE = 3, - IOPRIO_CLASS_INVALID = 7, -}; +struct nand_bbt_descr; -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, -}; +struct nand_secure_region; -struct bfq_sched_data; +struct nand_chip { + struct nand_device base; + struct nand_id id; + struct nand_parameters parameters; + struct nand_manufacturer manufacturer; + struct nand_chip_ops ops; + struct nand_legacy legacy; + unsigned int options; + const struct nand_interface_config *current_interface_config; + struct nand_interface_config *best_interface_config; + unsigned int bbt_erase_shift; + unsigned int bbt_options; + unsigned int badblockpos; + unsigned int badblockbits; + struct nand_bbt_descr *bbt_td; + struct nand_bbt_descr *bbt_md; + struct nand_bbt_descr *badblock_pattern; + u8 *bbt; + unsigned int page_shift; + unsigned int phys_erase_shift; + unsigned int chip_shift; + unsigned int pagemask; + unsigned int subpagesize; + u8 *data_buf; + u8 *oob_poi; + struct { + unsigned int bitflips; + int page; + } pagecache; + unsigned long buf_align; + struct mutex lock; + unsigned int suspended: 1; + wait_queue_head_t resume_wq; + int cur_cs; + int read_retries; + struct nand_secure_region *secure_regions; + u8 nr_secure_regions; + struct { + bool ongoing; + unsigned int first_page; + unsigned int last_page; + } cont_read; + struct nand_controller *controller; + struct nand_ecc_ctrl ecc; + void *priv; +}; -struct bfq_queue; +struct mtd_oob_region; -struct bfq_entity { - struct rb_node rb_node; - bool on_st_or_in_serv; - u64 start; - u64 finish; - struct rb_root *tree; - long: 32; - u64 min_start; - int service; - int budget; - int allocated; - int dev_weight; - int weight; - int new_weight; - int orig_weight; - struct bfq_entity *parent; - struct bfq_sched_data *my_sched_data; - struct bfq_sched_data *sched_data; - int prio_changed; - struct bfq_queue *last_bfqq_created; +struct mtd_ooblayout_ops { + int (*ecc)(struct mtd_info *, int, struct mtd_oob_region *); + int (*free)(struct mtd_info *, int, struct mtd_oob_region *); }; -struct bfq_ttime { - u64 last_end_request; - u64 ttime_total; - unsigned long ttime_samples; - long: 32; - u64 ttime_mean; +struct mtd_oob_region { + u32 offset; + u32 length; }; -struct bfq_data; +struct mtd_pairing_info; -struct bfq_weight_counter; +struct mtd_pairing_scheme { + int ngroups; + int (*get_info)(struct mtd_info *, int, struct mtd_pairing_info *); + int (*get_wunit)(struct mtd_info *, const struct mtd_pairing_info *); +}; -struct bfq_io_cq; +struct mtd_pairing_info { + int pair; + int group; +}; -struct bfq_queue { - int ref; - int stable_ref; - struct bfq_data *bfqd; - unsigned short ioprio; - unsigned short ioprio_class; - unsigned short new_ioprio; - unsigned short new_ioprio_class; - long: 32; - u64 last_serv_time_ns; - unsigned int inject_limit; - unsigned long decrease_time_jif; - struct bfq_queue *new_bfqq; - struct rb_node pos_node; - struct rb_root *pos_root; - struct rb_root sort_list; - struct request *next_rq; - int queued[2]; - int meta_pending; - struct list_head fifo; - struct bfq_entity entity; - struct bfq_weight_counter *weight_counter; - int max_budget; - unsigned long budget_timeout; - int dispatched; - unsigned long flags; - struct list_head bfqq_list; - long: 32; - struct bfq_ttime ttime; - u64 io_start_time; - u64 tot_idle_time; - u32 seek_history; - struct hlist_node burst_list_node; - long: 32; - sector_t last_request_pos; - unsigned int requests_within_timer; - pid_t pid; - struct bfq_io_cq *bic; - unsigned long wr_cur_max_time; - unsigned long soft_rt_next_start; - unsigned long last_wr_start_finish; - unsigned int wr_coeff; - unsigned long last_idle_bklogged; - unsigned long service_from_backlogged; - unsigned long service_from_wr; - unsigned long wr_start_at_switch_to_srt; - unsigned long split_time; - unsigned long first_IO_time; - unsigned long creation_time; - struct bfq_queue *waker_bfqq; - struct bfq_queue *tentative_waker_bfqq; - unsigned int num_waker_detections; +struct mtd_erase_region_info { + uint64_t offset; + uint32_t erasesize; + uint32_t numblocks; + unsigned long *lockmap; long: 32; - u64 waker_detection_started; - struct hlist_node woken_list_node; - struct hlist_head woken_list; - unsigned int actuator_idx; }; -struct bfq_group; +struct erase_info { + uint64_t addr; + uint64_t len; + uint64_t fail_addr; +}; -struct bfq_data { - struct request_queue *queue; - struct list_head dispatch; - struct bfq_group *root_group; - struct rb_root_cached queue_weights_tree; - unsigned int busy_queues[3]; - int wr_busy_queues; - int queued; - int tot_rq_in_driver; - int rq_in_driver[8]; - bool nonrot_with_queueing; - int max_rq_in_driver; - int hw_tag_samples; - int hw_tag; - int budgets_assigned; - long: 32; - struct hrtimer idle_slice_timer; - struct bfq_queue *in_service_queue; - long: 32; - sector_t last_position; - sector_t in_serv_last_pos; - u64 last_completion; - struct bfq_queue *last_completed_rq_bfqq; - struct bfq_queue *last_bfqq_created; - u64 last_empty_occupied_ns; - bool wait_dispatch; - struct request *waited_rq; - bool rqs_injected; - long: 32; - u64 first_dispatch; - u64 last_dispatch; - ktime_t last_budget_start; - ktime_t last_idling_start; - unsigned long last_idling_start_jiffies; - int peak_rate_samples; - u32 sequential_samples; - long: 32; - u64 tot_sectors_dispatched; - u32 last_rq_max_size; - long: 32; - u64 delta_from_first; - u32 peak_rate; - int bfq_max_budget; - struct list_head active_list[8]; - struct list_head idle_list; - u64 bfq_fifo_expire[2]; - unsigned int bfq_back_penalty; - unsigned int bfq_back_max; - u32 bfq_slice_idle; - int bfq_user_max_budget; - unsigned int bfq_timeout; - bool strict_guarantees; - unsigned long last_ins_in_burst; - unsigned long bfq_burst_interval; - int burst_size; - struct bfq_entity *burst_parent_entity; - unsigned long bfq_large_burst_thresh; - bool large_burst; - struct hlist_head burst_list; - bool low_latency; - unsigned int bfq_wr_coeff; - unsigned int bfq_wr_rt_max_time; - unsigned int bfq_wr_min_idle_time; - unsigned long bfq_wr_min_inter_arr_async; - unsigned int bfq_wr_max_softrt_rate; - long: 32; - u64 rate_dur_prod; - struct bfq_queue oom_bfqq; - spinlock_t lock; - struct bfq_io_cq *bio_bic; - struct bfq_queue *bio_bfqq; - unsigned int word_depths[4]; - unsigned int full_depth_shift; - unsigned int num_actuators; - long: 32; - sector_t sector[8]; - sector_t nr_sectors[8]; - struct blk_independent_access_range ia_ranges[8]; - unsigned int actuator_load_threshold; - long: 32; +struct mtd_req_stats; + +struct mtd_oob_ops { + unsigned int mode; + size_t len; + size_t retlen; + size_t ooblen; + size_t oobretlen; + uint32_t ooboffs; + uint8_t *datbuf; + uint8_t *oobbuf; + struct mtd_req_stats *stats; }; -typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t); +struct mtd_req_stats { + unsigned int uncorrectable_errors; + unsigned int corrected_bitflips; + unsigned int max_bitflips; +}; -struct __call_single_data { - struct __call_single_node node; - smp_call_func_t func; - void *info; +struct otp_info { + __u32 start; + __u32 length; + __u32 locked; }; -typedef __u32 req_flags_t; +enum nand_ecc_engine_integration { + NAND_ECC_ENGINE_INTEGRATION_INVALID = 0, + NAND_ECC_ENGINE_INTEGRATION_PIPELINED = 1, + NAND_ECC_ENGINE_INTEGRATION_EXTERNAL = 2, +}; -struct request { - struct request_queue *q; - struct blk_mq_ctx *mq_ctx; - struct blk_mq_hw_ctx *mq_hctx; - blk_opf_t cmd_flags; - req_flags_t rq_flags; - int tag; - int internal_tag; - unsigned int timeout; - unsigned int __data_len; - long: 32; - sector_t __sector; - struct bio *bio; - struct bio *biotail; - union { - struct list_head queuelist; - struct request *rq_next; - }; - struct block_device *part; - long: 32; - 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; - }; - 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; - long: 32; - union { - struct __call_single_data csd; - u64 fifo_time; - }; - rq_end_io_fn *end_io; - void *end_io_data; -}; - -struct sbitmap_word; - -struct sbitmap { - unsigned int depth; - unsigned int shift; - unsigned int map_nr; - bool round_robin; - struct sbitmap_word *map; - unsigned int __attribute__((btf_type_tag("percpu"))) *alloc_hint; -}; - -struct blk_mq_hw_ctx { - struct { - spinlock_t lock; - struct list_head dispatch; - unsigned long state; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - }; - 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 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; +struct nand_ecc_engine_ops; -struct sbitmap_word { - unsigned long word; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - unsigned long cleared; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct nand_ecc_engine { + struct device *dev; + struct list_head node; + struct nand_ecc_engine_ops *ops; + enum nand_ecc_engine_integration integration; + void *priv; }; -struct sbq_wait_state; +struct nand_page_io_req; -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 nand_ecc_engine_ops { + int (*init_ctx)(struct nand_device *); + void (*cleanup_ctx)(struct nand_device *); + int (*prepare_io_req)(struct nand_device *, struct nand_page_io_req *); + int (*finish_io_req)(struct nand_device *, struct nand_page_io_req *); }; -struct blk_mq_tags { - unsigned int nr_tags; - unsigned int nr_reserved_tags; - unsigned int active_queues; - struct sbitmap_queue bitmap_tags; - struct sbitmap_queue breserved_tags; - struct request **rqs; - struct request **static_rqs; - struct list_head page_list; - spinlock_t lock; +enum nand_page_io_req_type { + NAND_PAGE_READ = 0, + NAND_PAGE_WRITE = 1, }; -struct sbq_wait_state { - wait_queue_head_t wait; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct nand_pos { + unsigned int target; + unsigned int lun; + unsigned int plane; + unsigned int eraseblock; + unsigned int page; }; -struct blk_mq_queue_data { - struct request *rq; - bool last; +struct nand_page_io_req { + enum nand_page_io_req_type type; + struct nand_pos pos; + unsigned int dataoffs; + unsigned int datalen; + union { + const void *out; + void *in; + } databuf; + unsigned int ooboffs; + unsigned int ooblen; + union { + const void *out; + void *in; + } oobbuf; + int mode; }; -struct blk_mq_queue_map { - unsigned int *mq_map; - unsigned int nr_queues; - unsigned int queue_offset; +struct nand_ops { + int (*erase)(struct nand_device *, const struct nand_pos *); + int (*markbad)(struct nand_device *, const struct nand_pos *); + bool (*isbad)(struct nand_device *, const struct nand_pos *); }; -struct blk_mq_tag_set { - const struct blk_mq_ops *ops; - struct blk_mq_queue_map map[3]; - unsigned int nr_maps; - unsigned int nr_hw_queues; - unsigned int queue_depth; - unsigned int reserved_tags; - unsigned int cmd_size; - int numa_node; - unsigned int timeout; - unsigned int flags; - void *driver_data; - struct blk_mq_tags **tags; - struct blk_mq_tags *shared_tags; - struct mutex tag_list_lock; - struct list_head tag_list; - struct srcu_struct *srcu; +struct onfi_params { + int version; + u16 tPROG; + u16 tBERS; + u16 tR; + u16 tCCS; + bool fast_tCAD; + u16 sdr_timing_modes; + u16 nvddr_timing_modes; + u16 vendor_revision; + u8 vendor[88]; }; -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 nand_manufacturer_desc { + int id; + char *name; + const struct nand_manufacturer_ops *ops; }; -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 *); +enum nand_interface_type { + NAND_SDR_IFACE = 0, + NAND_NVDDR_IFACE = 1, }; -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct nand_sdr_timings { + u64 tBERS_max; + u32 tCCS_min; long: 32; + u64 tPROG_max; + u64 tR_max; + u32 tALH_min; + u32 tADL_min; + u32 tALS_min; + u32 tAR_min; + u32 tCEA_max; + u32 tCEH_min; + u32 tCH_min; + u32 tCHZ_max; + u32 tCLH_min; + u32 tCLR_min; + u32 tCLS_min; + u32 tCOH_min; + u32 tCS_min; + u32 tDH_min; + u32 tDS_min; + u32 tFEAT_max; + u32 tIR_min; + u32 tITC_max; + u32 tRC_min; + u32 tREA_max; + u32 tREH_min; + u32 tRHOH_min; + u32 tRHW_min; + u32 tRHZ_max; + u32 tRLOH_min; + u32 tRP_min; + u32 tRR_min; long: 32; + u64 tRST_max; + u32 tWB_max; + u32 tWC_min; + u32 tWH_min; + u32 tWHR_min; + u32 tWP_min; + u32 tWW_min; }; -struct bfq_service_tree { - struct rb_root active; - struct rb_root idle; - struct bfq_entity *first_idle; - struct bfq_entity *last_idle; - u64 vtime; - unsigned long wsum; +struct nand_nvddr_timings { + u64 tBERS_max; + u32 tCCS_min; long: 32; -}; - -struct bfq_sched_data { - struct bfq_entity *in_service_entity; - struct bfq_entity *next_in_service; - struct bfq_service_tree service_tree[3]; - unsigned long bfq_class_idle_last_service; + u64 tPROG_max; + u64 tR_max; + u32 tAC_min; + u32 tAC_max; + u32 tADL_min; + u32 tCAD_min; + u32 tCAH_min; + u32 tCALH_min; + u32 tCALS_min; + u32 tCAS_min; + u32 tCEH_min; + u32 tCH_min; + u32 tCK_min; + u32 tCS_min; + u32 tDH_min; + u32 tDQSCK_min; + u32 tDQSCK_max; + u32 tDQSD_min; + u32 tDQSD_max; + u32 tDQSHZ_max; + u32 tDQSQ_max; + u32 tDS_min; + u32 tDSC_min; + u32 tFEAT_max; + u32 tITC_max; + u32 tQHS_max; + u32 tRHW_min; + u32 tRR_min; + u32 tRST_max; + u32 tWB_max; + u32 tWHR_min; + u32 tWRCK_min; + u32 tWW_min; long: 32; }; -struct bfq_group { - struct bfq_entity entity; - struct bfq_sched_data sched_data; - struct bfq_queue *async_bfqq[128]; - struct bfq_queue *async_idle_bfqq[8]; - struct rb_root rq_pos_tree; +struct nand_timings { + unsigned int mode; long: 32; + union { + struct nand_sdr_timings sdr; + struct nand_nvddr_timings nvddr; + }; }; -struct bfq_iocq_bfqq_data { - bool saved_has_short_ttime; - bool saved_IO_bound; - long: 32; - u64 saved_io_start_time; - u64 saved_tot_idle_time; - bool saved_in_large_burst; - bool was_in_burst_list; - unsigned int saved_weight; - unsigned long saved_wr_coeff; - unsigned long saved_last_wr_start_finish; - unsigned long saved_service_from_wr; - unsigned long saved_wr_start_at_switch_to_srt; - unsigned int saved_wr_cur_max_time; +struct nand_interface_config { + enum nand_interface_type type; long: 32; - struct bfq_ttime saved_ttime; - u64 saved_last_serv_time_ns; - unsigned int saved_inject_limit; - unsigned long saved_decrease_time_jif; - struct bfq_queue *stable_merge_bfqq; - bool stably_merged; + struct nand_timings timings; }; -struct bfq_io_cq { - struct io_cq icq; - struct bfq_queue *bfqq[16]; - int ioprio; - struct bfq_iocq_bfqq_data bfqq_data[8]; - unsigned int requests; - long: 32; +struct nand_operation; + +struct nand_controller_ops { + int (*attach_chip)(struct nand_chip *); + void (*detach_chip)(struct nand_chip *); + int (*exec_op)(struct nand_chip *, const struct nand_operation *, bool); + int (*setup_interface)(struct nand_chip *, int, const struct nand_interface_config *); }; -struct bfq_weight_counter { - unsigned int weight; - unsigned int num_active; - struct rb_node weights_node; +struct nand_op_instr; + +struct nand_operation { + unsigned int cs; + const struct nand_op_instr *instrs; + unsigned int ninstrs; }; -enum { - MAX_OPT_ARGS = 3, +enum nand_op_instr_type { + NAND_OP_CMD_INSTR = 0, + NAND_OP_ADDR_INSTR = 1, + NAND_OP_DATA_IN_INSTR = 2, + NAND_OP_DATA_OUT_INSTR = 3, + NAND_OP_WAITRDY_INSTR = 4, }; -enum { - REG_OP_ISFREE = 0, - REG_OP_ALLOC = 1, - REG_OP_RELEASE = 2, +struct nand_op_cmd_instr { + u8 opcode; }; -struct region { - unsigned int start; - unsigned int off; - unsigned int group_len; - unsigned int end; - unsigned int nbits; +struct nand_op_addr_instr { + unsigned int naddrs; + const u8 *addrs; }; -typedef int __kernel_ptrdiff_t; +struct nand_op_data_instr { + unsigned int len; + union { + void *in; + const void *out; + } buf; + bool force_8bit; +}; -typedef __kernel_ptrdiff_t ptrdiff_t; +struct nand_op_waitrdy_instr { + unsigned int timeout_ms; +}; -typedef long mpi_limb_signed_t; +struct nand_op_instr { + enum nand_op_instr_type type; + union { + struct nand_op_cmd_instr cmd; + struct nand_op_addr_instr addr; + struct nand_op_data_instr data; + struct nand_op_waitrdy_instr waitrdy; + } ctx; + unsigned int delay_ns; +}; -typedef unsigned long mpi_limb_t; +struct nand_bbt_descr { + int options; + int pages[8]; + int offs; + int veroffs; + uint8_t version[8]; + int len; + int maxblocks; + int reserved_block_code; + uint8_t *pattern; +}; -typedef mpi_limb_t *mpi_ptr_t; +struct nand_secure_region { + u64 offset; + u64 size; +}; -typedef int mpi_size_t; +struct nand_onfi_params { + u8 sig[4]; + __le16 revision; + __le16 features; + __le16 opt_cmd; + u8 reserved0[2]; + __le16 ext_param_page_length; + u8 num_of_param_pages; + u8 reserved1[17]; + char manufacturer[12]; + char model[20]; + u8 jedec_id; + __le16 date_code; + u8 reserved2[13]; + __le32 byte_per_page; + __le16 spare_bytes_per_page; + __le32 data_bytes_per_ppage; + __le16 spare_bytes_per_ppage; + __le32 pages_per_block; + __le32 blocks_per_lun; + u8 lun_count; + u8 addr_cycles; + u8 bits_per_cell; + __le16 bb_per_lun; + __le16 block_endurance; + u8 guaranteed_good_blocks; + __le16 guaranteed_block_endurance; + u8 programs_per_page; + u8 ppage_attr; + u8 ecc_bits; + u8 interleaved_bits; + u8 interleaved_ops; + u8 reserved3[13]; + u8 io_pin_capacitance_max; + __le16 sdr_timing_modes; + __le16 program_cache_timing_mode; + __le16 t_prog; + __le16 t_bers; + __le16 t_r; + __le16 t_ccs; + u8 nvddr_timing_modes; + u8 nvddr2_timing_modes; + u8 nvddr_nvddr2_features; + __le16 clk_pin_capacitance_typ; + __le16 io_pin_capacitance_typ; + __le16 input_pin_capacitance_typ; + u8 input_pin_capacitance_max; + u8 driver_strength_support; + __le16 t_int_r; + __le16 t_adl; + u8 reserved4[8]; + __le16 vendor_revision; + u8 vendor[88]; + __le16 crc; +} __attribute__((packed)); -struct gcry_mpi; +struct marvell_hw_ecc_layout { + int writesize; + int chunk; + int strength; + int nchunks; + int full_chunk_cnt; + int data_bytes; + int spare_bytes; + int ecc_bytes; + int last_data_bytes; + int last_spare_bytes; + int last_ecc_bytes; +}; -typedef struct gcry_mpi *MPI; +struct nand_op_parser_pattern; -struct gcry_mpi { - int alloced; - int nlimbs; - int nbits; - int sign; - unsigned int flags; - mpi_limb_t *d; +struct nand_op_parser { + const struct nand_op_parser_pattern *patterns; + unsigned int npatterns; }; -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; -}; +struct nand_op_parser_pattern_elem; -typedef u32 depot_stack_handle_t; +struct nand_subop; -union handle_parts { - depot_stack_handle_t handle; - struct { - u32 pool_index: 16; - u32 offset: 10; - u32 valid: 1; - u32 extra: 5; - }; +struct nand_op_parser_pattern { + const struct nand_op_parser_pattern_elem *elems; + unsigned int nelems; + int (*exec)(struct nand_chip *, const struct nand_subop *); }; -struct stack_record { - struct stack_record *next; - u32 hash; - u32 size; - union handle_parts handle; - unsigned long entries[0]; +struct nand_op_parser_addr_constraints { + unsigned int maxcycles; }; -struct mtk_cirq_chip_data { - void *base; - unsigned int ext_irq_start; - unsigned int ext_irq_end; - const u32 *offsets; - struct irq_domain *domain; +struct nand_op_parser_data_constraints { + unsigned int maxlen; }; -enum mtk_cirq_regoffs_index { - CIRQ_STA = 0, - CIRQ_ACK = 1, - CIRQ_MASK_SET = 2, - CIRQ_MASK_CLR = 3, - CIRQ_SENS_SET = 4, - CIRQ_SENS_CLR = 5, - CIRQ_POL_SET = 6, - CIRQ_POL_CLR = 7, - CIRQ_CONTROL = 8, +struct nand_op_parser_pattern_elem { + enum nand_op_instr_type type; + bool optional; + union { + struct nand_op_parser_addr_constraints addr; + struct nand_op_parser_data_constraints data; + } ctx; }; -typedef void (*regmap_lock)(void *); - -typedef void (*regmap_unlock)(void *); - -enum regcache_type { - REGCACHE_NONE = 0, - REGCACHE_RBTREE = 1, - REGCACHE_FLAT = 2, - REGCACHE_MAPLE = 3, +struct nand_subop { + unsigned int cs; + const struct nand_op_instr *instrs; + unsigned int ninstrs; + unsigned int first_instr_start_off; + unsigned int last_instr_end_off; }; -enum regmap_endian { - REGMAP_ENDIAN_DEFAULT = 0, - REGMAP_ENDIAN_BIG = 1, - REGMAP_ENDIAN_LITTLE = 2, - REGMAP_ENDIAN_NATIVE = 3, +struct marvell_nfc_caps { + unsigned int max_cs_nb; + unsigned int max_rb_nb; + bool need_system_controller; + bool legacy_of_bindings; + bool is_nfcv2; + bool use_dma; + unsigned int max_mode_number; }; -struct regmap_access_table; - -struct reg_default; - -struct regmap_range_cfg; +struct marvell_nand_chip_sel { + unsigned int cs; + u32 ndcb0_csel; + unsigned int rb; +}; -struct regmap_config { - const char *name; - int reg_bits; - int reg_stride; - int reg_shift; - 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 marvell_nand_chip { + struct nand_chip chip; + struct list_head node; + const struct marvell_hw_ecc_layout *layout; + u32 ndcr; + u32 ndtr0; + u32 ndtr1; + int addr_cyc; + int selected_die; + unsigned int nsels; + struct marvell_nand_chip_sel sels[0]; + long: 32; }; -struct regmap_range; +struct marvell_nfc { + struct nand_controller controller; + struct device *dev; + void *regs; + struct clk *core_clk; + struct clk *reg_clk; + struct completion complete; + unsigned long assigned_cs; + struct list_head chips; + struct nand_chip *selected_chip; + const struct marvell_nfc_caps *caps; + bool use_dma; + struct dma_chan *dma_chan; + u8 *dma_buf; +}; -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 marvell_nfc_op { + u32 ndcb[4]; + unsigned int cle_ale_delay_ns; + unsigned int rdy_timeout_ms; + unsigned int rdy_delay_ns; + unsigned int data_delay_ns; + unsigned int data_instr_idx; + const struct nand_op_instr *data_instr; }; -struct regmap_range { - unsigned int range_min; - unsigned int range_max; +struct nand_flash_dev { + char *name; + union { + struct { + uint8_t mfr_id; + uint8_t dev_id; + }; + uint8_t id[8]; + }; + unsigned int pagesize; + unsigned int chipsize; + unsigned int erasesize; + unsigned int options; + uint16_t id_len; + uint16_t oobsize; + struct { + uint16_t strength_ds; + uint16_t step_ds; + } ecc; }; -struct reg_default { - unsigned int reg; - unsigned int def; +struct mtd_part_parser_data { + unsigned long origin; }; -struct regmap_range_cfg { +struct mtd_partition { 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; + const char * const *types; + uint64_t size; + uint64_t offset; + uint32_t mask_flags; + uint32_t add_flags; + struct device_node *of_node; + long: 32; }; -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 pxa3xx_nand_platform_data { + bool keep_config; + bool flash_bbt; + int ecc_strength; + int ecc_step_size; + const struct mtd_partition *parts; + unsigned int nr_parts; }; -enum phy_media { - PHY_MEDIA_DEFAULT = 0, - PHY_MEDIA_SR = 1, - PHY_MEDIA_DAC = 2, +struct marvell_nfc_timings { + unsigned int tRP; + unsigned int tRH; + unsigned int tWP; + unsigned int tWH; + unsigned int tCS; + unsigned int tCH; + unsigned int tADL; + unsigned int tAR; + unsigned int tWHR; + unsigned int tRHW; + unsigned int tR; }; -struct phy; - -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; +enum spi_mem_data_dir { + SPI_MEM_NO_DATA = 0, + SPI_MEM_DATA_IN = 1, + SPI_MEM_DATA_OUT = 2, }; -struct phy_attrs { - u32 bus_width; - u32 max_link_rate; - enum phy_mode mode; +enum spi_nor_protocol { + SNOR_PROTO_1_1_1 = 65793, + SNOR_PROTO_1_1_2 = 65794, + SNOR_PROTO_1_1_4 = 65796, + SNOR_PROTO_1_1_8 = 65800, + SNOR_PROTO_1_2_2 = 66050, + SNOR_PROTO_1_4_4 = 66564, + SNOR_PROTO_1_8_8 = 67592, + SNOR_PROTO_2_2_2 = 131586, + SNOR_PROTO_4_4_4 = 263172, + SNOR_PROTO_8_8_8 = 526344, + SNOR_PROTO_1_1_1_DTR = 16843009, + SNOR_PROTO_1_2_2_DTR = 16843266, + SNOR_PROTO_1_4_4_DTR = 16843780, + SNOR_PROTO_1_8_8_DTR = 16844808, + SNOR_PROTO_8_8_8_DTR = 17303560, }; -struct regulator; - -struct phy { - struct device dev; - int id; - const struct phy_ops *ops; - struct mutex mutex; - int init_count; - int power_count; - struct phy_attrs attrs; - struct regulator *pwr; - struct dentry *debugfs; +enum spi_nor_cmd_ext { + SPI_NOR_EXT_NONE = 0, + SPI_NOR_EXT_REPEAT = 1, + SPI_NOR_EXT_INVERT = 2, + SPI_NOR_EXT_HEX = 3, }; -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; +enum string_size_units { + STRING_UNITS_10 = 0, + STRING_UNITS_2 = 1, }; -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; +enum spi_nor_option_flags { + SNOR_F_HAS_SR_TB = 1, + SNOR_F_NO_OP_CHIP_ERASE = 2, + SNOR_F_BROKEN_RESET = 4, + SNOR_F_4B_OPCODES = 8, + SNOR_F_HAS_4BAIT = 16, + SNOR_F_HAS_LOCK = 32, + SNOR_F_HAS_16BIT_SR = 64, + SNOR_F_NO_READ_CR = 128, + SNOR_F_HAS_SR_TB_BIT6 = 256, + SNOR_F_HAS_4BIT_BP = 512, + SNOR_F_HAS_SR_BP3_BIT6 = 1024, + SNOR_F_IO_MODE_EN_VOLATILE = 2048, + SNOR_F_SOFT_RESET = 4096, + SNOR_F_SWP_IS_VOLATILE = 8192, + SNOR_F_RWW = 16384, + SNOR_F_ECC = 32768, + SNOR_F_NO_WP = 65536, }; -struct phy_configure_opts_lvds { - unsigned int bits_per_lane_and_dclk_cycle; - unsigned long differential_clk_rate; - unsigned int lanes; - bool is_slave; +struct spi_nor_erase_region { + u64 offset; + u64 size; }; -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 spi_nor_read_command { + u8 num_mode_clocks; + u8 num_wait_states; + u8 opcode; + enum spi_nor_protocol proto; }; -struct phy_meson8b_usb2_match_data { - bool host_enable_aca; +struct spi_nor_pp_command { + u8 opcode; + enum spi_nor_protocol proto; }; -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 phy_provider { - struct device *dev; - struct device_node *children; - struct module *owner; - struct list_head list; - struct phy * (*of_xlate)(struct device *, struct of_phandle_args *); +struct spi_nor_rww { + wait_queue_head_t wait; + bool ongoing_io; + bool ongoing_rd; + bool ongoing_pe; + unsigned int used_banks; }; -struct regmap; - -struct reset_control; +struct spi_mem; -struct phy_meson8b_usb2_priv { - struct regmap *regmap; - enum usb_dr_mode dr_mode; - struct clk *clk_usb_general; - struct clk *clk_usb; - struct reset_control *reset; - const struct phy_meson8b_usb2_match_data *match; -}; +struct flash_info; -struct stih407_usb2_picophy { - struct phy *phy; - struct regmap *regmap; - struct device *dev; - struct reset_control *rstc; - struct reset_control *rstport; - int ctrl; - int param; -}; +struct spi_nor_manufacturer; -struct pinctrl_pin_desc; +struct sfdp; -struct pinctrl_ops; +struct spi_nor_controller_ops; -struct pinmux_ops; +struct spi_nor_flash_parameter; -struct pinconf_ops; +struct spi_mem_dirmap_desc; -struct pinconf_generic_params; +struct spi_nor { + struct mtd_info mtd; + struct mutex lock; + struct spi_nor_rww rww; + struct device *dev; + struct spi_mem *spimem; + u8 *bouncebuf; + size_t bouncebuf_size; + u8 *id; + const struct flash_info *info; + const struct spi_nor_manufacturer *manufacturer; + u8 addr_nbytes; + u8 erase_opcode; + u8 read_opcode; + u8 read_dummy; + u8 program_opcode; + enum spi_nor_protocol read_proto; + enum spi_nor_protocol write_proto; + enum spi_nor_protocol reg_proto; + bool sst_write_second; + u32 flags; + enum spi_nor_cmd_ext cmd_ext_type; + struct sfdp *sfdp; + struct dentry *debugfs_root; + const struct spi_nor_controller_ops *controller_ops; + struct spi_nor_flash_parameter *params; + struct { + struct spi_mem_dirmap_desc *rdesc; + struct spi_mem_dirmap_desc *wdesc; + } dirmap; + void *priv; +}; -struct pin_config_item; +struct spi_device; -struct pinctrl_desc { +struct spi_mem { + struct spi_device *spi; + void *drvpriv; const char *name; - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const struct pinctrl_ops *pctlops; - const struct pinmux_ops *pmxops; - const struct pinconf_ops *confops; - struct module *owner; - unsigned int num_custom_params; - const struct pinconf_generic_params *custom_params; - const struct pin_config_item *custom_conf_items; - bool link_consumers; }; -struct pinctrl_pin_desc { - unsigned int number; - const char *name; - void *drv_data; +struct spi_delay { + u16 value; + u8 unit; }; -struct pinctrl_dev; +struct spi_controller; -struct pinctrl_map; +struct spi_statistics; -struct pinctrl_ops { - int (*get_groups_count)(struct pinctrl_dev *); - const char * (*get_group_name)(struct pinctrl_dev *, unsigned int); - int (*get_group_pins)(struct pinctrl_dev *, unsigned int, const unsigned int **, unsigned int *); - void (*pin_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); - int (*dt_node_to_map)(struct pinctrl_dev *, struct device_node *, struct pinctrl_map **, unsigned int *); - void (*dt_free_map)(struct pinctrl_dev *, struct pinctrl_map *, unsigned int); +struct spi_device { + struct device dev; + struct spi_controller *controller; + struct spi_controller *master; + u32 max_speed_hz; + u8 chip_select; + u8 bits_per_word; + bool rt; + u32 mode; + int irq; + void *controller_state; + void *controller_data; + char modalias[32]; + const char *driver_override; + struct gpio_desc *cs_gpiod; + struct spi_delay word_delay; + struct spi_delay cs_setup; + struct spi_delay cs_hold; + struct spi_delay cs_inactive; + struct spi_statistics __attribute__((btf_type_tag("percpu"))) *pcpu_statistics; + long: 32; }; -struct pinctrl; +struct spi_message; -struct pinctrl_state; +struct spi_transfer; -struct pinctrl_dev { - struct list_head node; - struct pinctrl_desc *desc; - struct xarray pin_desc_tree; - struct xarray pin_group_tree; - unsigned int num_groups; - struct xarray pin_function_tree; - unsigned int num_functions; - struct list_head gpio_ranges; - struct device *dev; - struct module *owner; - void *driver_data; - struct pinctrl *p; - struct pinctrl_state *hog_default; - struct pinctrl_state *hog_sleep; - struct mutex mutex; - struct dentry *device_root; -}; +struct spi_controller_mem_ops; -struct pinctrl { - struct list_head node; - struct device *dev; - struct list_head states; - struct pinctrl_state *state; - struct list_head dt_maps; - struct kref users; -}; +struct spi_controller_mem_caps; -struct pinctrl_state { - struct list_head node; - const char *name; - struct list_head settings; +struct spi_controller { + struct device dev; + struct list_head list; + s16 bus_num; + u16 num_chipselect; + u16 dma_alignment; + u32 mode_bits; + u32 buswidth_override_bits; + u32 bits_per_word_mask; + u32 min_speed_hz; + u32 max_speed_hz; + u16 flags; + bool devm_allocated; + union { + bool slave; + bool target; + }; + size_t (*max_transfer_size)(struct spi_device *); + size_t (*max_message_size)(struct spi_device *); + struct mutex io_mutex; + struct mutex add_lock; + spinlock_t bus_lock_spinlock; + struct mutex bus_lock_mutex; + bool bus_lock_flag; + int (*setup)(struct spi_device *); + int (*set_cs_timing)(struct spi_device *); + int (*transfer)(struct spi_device *, struct spi_message *); + void (*cleanup)(struct spi_device *); + bool (*can_dma)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + struct device *dma_map_dev; + struct device *cur_rx_dma_dev; + struct device *cur_tx_dma_dev; + bool queued; + struct kthread_worker *kworker; + struct kthread_work pump_messages; + spinlock_t queue_lock; + struct list_head queue; + struct spi_message *cur_msg; + struct completion cur_msg_completion; + bool cur_msg_incomplete; + bool cur_msg_need_completion; + bool busy; + bool running; + bool rt; + bool auto_runtime_pm; + bool cur_msg_mapped; + char last_cs; + bool last_cs_mode_high; + bool fallback; + struct completion xfer_completion; + size_t max_dma_len; + int (*prepare_transfer_hardware)(struct spi_controller *); + int (*transfer_one_message)(struct spi_controller *, struct spi_message *); + int (*unprepare_transfer_hardware)(struct spi_controller *); + int (*prepare_message)(struct spi_controller *, struct spi_message *); + int (*unprepare_message)(struct spi_controller *, struct spi_message *); + union { + int (*slave_abort)(struct spi_controller *); + int (*target_abort)(struct spi_controller *); + }; + void (*set_cs)(struct spi_device *, bool); + int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + void (*handle_err)(struct spi_controller *, struct spi_message *); + const struct spi_controller_mem_ops *mem_ops; + const struct spi_controller_mem_caps *mem_caps; + struct gpio_desc **cs_gpiods; + bool use_gpio_descriptors; + s8 unused_native_cs; + s8 max_native_cs; + struct spi_statistics __attribute__((btf_type_tag("percpu"))) *pcpu_statistics; + struct dma_chan *dma_tx; + struct dma_chan *dma_rx; + void *dummy_rx; + void *dummy_tx; + int (*fw_translate_cs)(struct spi_controller *, unsigned int); + bool ptp_sts_supported; + unsigned long irq_flags; + bool queue_empty; + bool must_async; }; -struct pinctrl_map_mux { - const char *group; - const char *function; +struct spi_message { + struct list_head transfers; + struct spi_device *spi; + unsigned int is_dma_mapped: 1; + bool prepared; + int status; + void (*complete)(void *); + void *context; + unsigned int frame_length; + unsigned int actual_length; + struct list_head queue; + void *state; + struct list_head resources; }; -struct pinctrl_map_configs { - const char *group_or_pin; - unsigned long *configs; - unsigned int num_configs; +struct ptp_system_timestamp; + +struct spi_transfer { + const void *tx_buf; + void *rx_buf; + unsigned int len; + u16 error; + dma_addr_t tx_dma; + dma_addr_t rx_dma; + struct sg_table tx_sg; + struct sg_table rx_sg; + unsigned int dummy_data: 1; + unsigned int cs_off: 1; + unsigned int cs_change: 1; + unsigned int tx_nbits: 3; + unsigned int rx_nbits: 3; + unsigned int timestamped: 1; + u8 bits_per_word; + struct spi_delay delay; + struct spi_delay cs_change_delay; + struct spi_delay word_delay; + u32 speed_hz; + u32 effective_speed_hz; + unsigned int ptp_sts_word_pre; + unsigned int ptp_sts_word_post; + struct ptp_system_timestamp *ptp_sts; + struct list_head transfer_list; }; -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 spi_mem_op; + +struct spi_controller_mem_ops { + int (*adjust_op_size)(struct spi_mem *, struct spi_mem_op *); + bool (*supports_op)(struct spi_mem *, const struct spi_mem_op *); + int (*exec_op)(struct spi_mem *, const struct spi_mem_op *); + const char * (*get_name)(struct spi_mem *); + int (*dirmap_create)(struct spi_mem_dirmap_desc *); + void (*dirmap_destroy)(struct spi_mem_dirmap_desc *); + ssize_t (*dirmap_read)(struct spi_mem_dirmap_desc *, u64, size_t, void *); + ssize_t (*dirmap_write)(struct spi_mem_dirmap_desc *, u64, size_t, const void *); + int (*poll_status)(struct spi_mem *, const struct spi_mem_op *, u16, u16, unsigned long, unsigned long, unsigned long); }; -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; +struct spi_mem_op { + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + u16 opcode; + } cmd; + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + long: 32; + u64 val; + } addr; + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + } dummy; + struct { + u8 buswidth; + u8 dtr: 1; + u8 ecc: 1; + u8 __pad: 6; + enum spi_mem_data_dir dir; + unsigned int nbytes; + union { + void *in; + const void *out; + } buf; } data; + long: 32; }; -struct pinctrl_gpio_range; - -struct pinmux_ops { - int (*request)(struct pinctrl_dev *, unsigned int); - int (*free)(struct pinctrl_dev *, unsigned int); - int (*get_functions_count)(struct pinctrl_dev *); - const char * (*get_function_name)(struct pinctrl_dev *, unsigned int); - int (*get_function_groups)(struct pinctrl_dev *, unsigned int, const char * const **, unsigned int *); - int (*set_mux)(struct pinctrl_dev *, unsigned int, unsigned int); - int (*gpio_request_enable)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); - void (*gpio_disable_free)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); - int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); - bool strict; +struct spi_mem_dirmap_info { + struct spi_mem_op op_tmpl; + u64 offset; + u64 length; }; -struct gpio_chip; - -struct pinctrl_gpio_range { - struct list_head node; - const char *name; - unsigned int id; - unsigned int base; - unsigned int pin_base; - unsigned int npins; - const unsigned int *pins; - struct gpio_chip *gc; +struct spi_mem_dirmap_desc { + struct spi_mem *mem; + long: 32; + struct spi_mem_dirmap_info info; + unsigned int nodirmap; + void *priv; }; -struct pinconf_ops { - bool is_generic; - int (*pin_config_get)(struct pinctrl_dev *, unsigned int, unsigned long *); - int (*pin_config_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); - int (*pin_config_group_get)(struct pinctrl_dev *, unsigned int, unsigned long *); - int (*pin_config_group_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); - void (*pin_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); - void (*pin_config_group_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); - void (*pin_config_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned long); +struct spi_controller_mem_caps { + bool dtr; + bool ecc; }; -enum pin_config_param { - PIN_CONFIG_BIAS_BUS_HOLD = 0, - PIN_CONFIG_BIAS_DISABLE = 1, - PIN_CONFIG_BIAS_HIGH_IMPEDANCE = 2, - PIN_CONFIG_BIAS_PULL_DOWN = 3, - PIN_CONFIG_BIAS_PULL_PIN_DEFAULT = 4, - PIN_CONFIG_BIAS_PULL_UP = 5, - PIN_CONFIG_DRIVE_OPEN_DRAIN = 6, - PIN_CONFIG_DRIVE_OPEN_SOURCE = 7, - PIN_CONFIG_DRIVE_PUSH_PULL = 8, - PIN_CONFIG_DRIVE_STRENGTH = 9, - PIN_CONFIG_DRIVE_STRENGTH_UA = 10, - PIN_CONFIG_INPUT_DEBOUNCE = 11, - PIN_CONFIG_INPUT_ENABLE = 12, - PIN_CONFIG_INPUT_SCHMITT = 13, - PIN_CONFIG_INPUT_SCHMITT_ENABLE = 14, - PIN_CONFIG_MODE_LOW_POWER = 15, - PIN_CONFIG_MODE_PWM = 16, - PIN_CONFIG_OUTPUT = 17, - PIN_CONFIG_OUTPUT_ENABLE = 18, - PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS = 19, - PIN_CONFIG_PERSIST_STATE = 20, - PIN_CONFIG_POWER_SOURCE = 21, - PIN_CONFIG_SKEW_DELAY = 22, - PIN_CONFIG_SLEEP_HARDWARE_STATE = 23, - PIN_CONFIG_SLEW_RATE = 24, - PIN_CONFIG_END = 127, - PIN_CONFIG_MAX = 255, +struct spi_statistics { + struct u64_stats_sync syncp; + long: 32; + u64_stats_t messages; + u64_stats_t transfers; + u64_stats_t errors; + u64_stats_t timedout; + u64_stats_t spi_sync; + u64_stats_t spi_sync_immediate; + u64_stats_t spi_async; + u64_stats_t bytes; + u64_stats_t bytes_rx; + u64_stats_t bytes_tx; + u64_stats_t transfer_bytes_histo[17]; + u64_stats_t transfers_split_maxsize; }; -struct pinconf_generic_params { - const char * const property; - enum pin_config_param param; - u32 default_value; -}; +struct spi_nor_id; -struct pin_config_item { - const enum pin_config_param param; - const char * const display; - const char * const format; - bool has_arg; +struct spi_nor_otp_organization; + +struct spi_nor_fixups; + +struct flash_info { + char *name; + const struct spi_nor_id *id; + size_t size; + unsigned int sector_size; + u16 page_size; + u8 n_banks; + u8 addr_nbytes; + u16 flags; + u8 no_sfdp_flags; + u8 fixup_flags; + u8 mfr_flags; + const struct spi_nor_otp_organization *otp; + const struct spi_nor_fixups *fixups; }; -struct berlin_desc_function { - const char *name; - u8 muxval; +struct spi_nor_id { + const u8 *bytes; + u8 len; }; -struct berlin_desc_group { - const char *name; - u8 offset; - u8 bit_width; - u8 lsb; - struct berlin_desc_function *functions; +struct spi_nor_otp_organization { + size_t len; + long: 32; + loff_t base; + loff_t offset; + unsigned int n_regions; + long: 32; }; -struct berlin_pinctrl_desc; +struct sfdp_parameter_header; -struct berlin_pinctrl_function; +struct sfdp_bfpt; -struct berlin_pinctrl { - struct regmap *regmap; - struct device *dev; - const struct berlin_pinctrl_desc *desc; - struct berlin_pinctrl_function *functions; - unsigned int nfunctions; - struct pinctrl_dev *pctrl_dev; +struct spi_nor_fixups { + void (*default_init)(struct spi_nor *); + int (*post_bfpt)(struct spi_nor *, const struct sfdp_parameter_header *, const struct sfdp_bfpt *); + int (*post_sfdp)(struct spi_nor *); + int (*late_init)(struct spi_nor *); }; -struct berlin_pinctrl_desc { - const struct berlin_desc_group *groups; - unsigned int ngroups; +struct sfdp_parameter_header { + u8 id_lsb; + u8 minor; + u8 major; + u8 length; + u8 parameter_table_pointer[3]; + u8 id_msb; }; -struct berlin_pinctrl_function { - const char *name; - const char **groups; - unsigned int ngroups; +struct sfdp_bfpt { + u32 dwords[20]; }; -struct mtk_eint_xt { - int (*get_gpio_n)(void *, unsigned long, unsigned int *, struct gpio_chip **); - int (*get_gpio_state)(void *, unsigned long); - int (*set_gpio_as_eint)(void *, unsigned long); +struct spi_nor_manufacturer { + const char *name; + const struct flash_info *parts; + unsigned int nparts; + const struct spi_nor_fixups *fixups; }; -union gpio_irq_fwspec; - -struct gpio_irq_chip { - struct irq_chip *chip; - struct irq_domain *domain; - struct fwnode_handle *fwnode; - struct irq_domain *parent_domain; - int (*child_to_parent_hwirq)(struct gpio_chip *, unsigned int, unsigned int, unsigned int *, unsigned int *); - int (*populate_parent_alloc_arg)(struct gpio_chip *, union gpio_irq_fwspec *, unsigned int, unsigned int); - unsigned int (*child_offset_to_irq)(struct gpio_chip *, unsigned int); - struct irq_domain_ops child_irq_domain_ops; - irq_flow_handler_t handler; - unsigned int default_type; - struct lock_class_key *lock_key; - struct lock_class_key *request_key; - irq_flow_handler_t parent_handler; - union { - void *parent_handler_data; - void **parent_handler_data_array; - }; - unsigned int num_parents; - unsigned int *parents; - unsigned int *map; - bool threaded; - bool per_parent_data; - bool initialized; - bool domain_is_allocated_externally; - int (*init_hw)(struct gpio_chip *); - void (*init_valid_mask)(struct gpio_chip *, unsigned long *, unsigned int); - unsigned long *valid_mask; - unsigned int first; - void (*irq_enable)(struct irq_data *); - void (*irq_disable)(struct irq_data *); - void (*irq_unmask)(struct irq_data *); - void (*irq_mask)(struct irq_data *); +struct sfdp { + size_t num_dwords; + u32 *dwords; }; -struct gpio_device; - -struct gpio_chip { - const char *label; - struct gpio_device *gpiodev; - struct device *parent; - struct fwnode_handle *fwnode; - struct module *owner; - int (*request)(struct gpio_chip *, unsigned int); - void (*free)(struct gpio_chip *, unsigned int); - int (*get_direction)(struct gpio_chip *, unsigned int); - int (*direction_input)(struct gpio_chip *, unsigned int); - int (*direction_output)(struct gpio_chip *, unsigned int, int); - int (*get)(struct gpio_chip *, unsigned int); - int (*get_multiple)(struct gpio_chip *, unsigned long *, unsigned long *); - void (*set)(struct gpio_chip *, unsigned int, int); - void (*set_multiple)(struct gpio_chip *, unsigned long *, unsigned long *); - int (*set_config)(struct gpio_chip *, unsigned int, unsigned long); - int (*to_irq)(struct gpio_chip *, unsigned int); - void (*dbg_show)(struct seq_file *, struct gpio_chip *); - int (*init_valid_mask)(struct gpio_chip *, unsigned long *, unsigned int); - int (*add_pin_ranges)(struct gpio_chip *); - int (*en_hw_timestamp)(struct gpio_chip *, u32, unsigned long); - int (*dis_hw_timestamp)(struct gpio_chip *, u32, unsigned long); - int base; - u16 ngpio; - u16 offset; - const char * const *names; - bool can_sleep; - unsigned long (*read_reg)(void *); - void (*write_reg)(void *, unsigned long); - bool be_bits; - void *reg_dat; - void *reg_set; - void *reg_clr; - void *reg_dir_out; - void *reg_dir_in; - bool bgpio_dir_unreadable; - int bgpio_bits; - raw_spinlock_t bgpio_lock; - unsigned long bgpio_data; - unsigned long bgpio_dir; - struct gpio_irq_chip irq; - unsigned long *valid_mask; - unsigned int of_gpio_n_cells; - int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *); +struct spi_nor_controller_ops { + int (*prepare)(struct spi_nor *); + void (*unprepare)(struct spi_nor *); + int (*read_reg)(struct spi_nor *, u8, u8 *, size_t); + int (*write_reg)(struct spi_nor *, u8, const u8 *, size_t); + ssize_t (*read)(struct spi_nor *, loff_t, size_t, u8 *); + ssize_t (*write)(struct spi_nor *, loff_t, size_t, const u8 *); + int (*erase)(struct spi_nor *, loff_t); }; -struct msi_alloc_info { - struct msi_desc *desc; - irq_hw_number_t hwirq; - unsigned long flags; - union { - unsigned long ul; - void *ptr; - } scratchpad[2]; +struct spi_nor_hwcaps { + u32 mask; }; -typedef struct msi_alloc_info msi_alloc_info_t; - -union gpio_irq_fwspec { - struct irq_fwspec fwspec; - msi_alloc_info_t msiinfo; +struct spi_nor_erase_type { + u32 size; + u32 size_shift; + u32 size_mask; + u8 opcode; + u8 idx; }; -struct mtk_drive_desc { - u8 min; - u8 max; - u8 step; - u8 scal; +struct spi_nor_erase_map { + struct spi_nor_erase_region *regions; + long: 32; + struct spi_nor_erase_region uniform_region; + struct spi_nor_erase_type erase_type[4]; + u8 uniform_erase_type; + long: 32; }; -enum { - PINCTRL_PIN_REG_MODE = 0, - PINCTRL_PIN_REG_DIR = 1, - PINCTRL_PIN_REG_DI = 2, - PINCTRL_PIN_REG_DO = 3, - PINCTRL_PIN_REG_SR = 4, - PINCTRL_PIN_REG_SMT = 5, - PINCTRL_PIN_REG_PD = 6, - PINCTRL_PIN_REG_PU = 7, - PINCTRL_PIN_REG_E4 = 8, - PINCTRL_PIN_REG_E8 = 9, - PINCTRL_PIN_REG_TDSEL = 10, - PINCTRL_PIN_REG_RDSEL = 11, - PINCTRL_PIN_REG_DRV = 12, - PINCTRL_PIN_REG_PUPD = 13, - PINCTRL_PIN_REG_R0 = 14, - PINCTRL_PIN_REG_R1 = 15, - PINCTRL_PIN_REG_IES = 16, - PINCTRL_PIN_REG_PULLEN = 17, - PINCTRL_PIN_REG_PULLSEL = 18, - PINCTRL_PIN_REG_DRV_EN = 19, - PINCTRL_PIN_REG_DRV_E0 = 20, - PINCTRL_PIN_REG_DRV_E1 = 21, - PINCTRL_PIN_REG_DRV_ADV = 22, - PINCTRL_PIN_REG_RSEL = 23, - PINCTRL_PIN_REG_MAX = 24, -}; +struct spi_nor_otp_ops; -struct mtk_eint_desc { - u16 eint_m; - u16 eint_n; +struct spi_nor_otp { + const struct spi_nor_otp_organization *org; + const struct spi_nor_otp_ops *ops; }; -struct mtk_func_desc; +struct spi_nor_locking_ops; -struct mtk_pin_desc { - unsigned int number; - const char *name; - struct mtk_eint_desc eint; - u8 drv_n; - struct mtk_func_desc *funcs; +struct spi_nor_flash_parameter { + u64 bank_size; + u64 size; + u32 writesize; + u32 page_size; + u8 addr_nbytes; + u8 addr_mode_nbytes; + u8 rdsr_dummy; + u8 rdsr_addr_nbytes; + u8 n_banks; + u8 n_dice; + u32 *vreg_offset; + struct spi_nor_hwcaps hwcaps; + struct spi_nor_read_command reads[16]; + struct spi_nor_pp_command page_programs[8]; + struct spi_nor_erase_map erase_map; + struct spi_nor_otp otp; + int (*set_octal_dtr)(struct spi_nor *, bool); + int (*quad_enable)(struct spi_nor *); + int (*set_4byte_addr_mode)(struct spi_nor *, bool); + u32 (*convert_addr)(struct spi_nor *, u32); + int (*setup)(struct spi_nor *, const struct spi_nor_hwcaps *); + int (*ready)(struct spi_nor *); + const struct spi_nor_locking_ops *locking_ops; + void *priv; }; -struct mtk_func_desc { - const char *name; - u8 muxval; +struct spi_nor_otp_ops { + int (*read)(struct spi_nor *, loff_t, size_t, u8 *); + int (*write)(struct spi_nor *, loff_t, size_t, const u8 *); + int (*lock)(struct spi_nor *, unsigned int); + int (*erase)(struct spi_nor *, loff_t); + int (*is_locked)(struct spi_nor *, unsigned int); }; -struct mtk_pin_soc; - -struct mtk_eint; - -struct mtk_pinctrl_group; +struct spi_nor_locking_ops { + int (*lock)(struct spi_nor *, loff_t, uint64_t); + int (*unlock)(struct spi_nor *, loff_t, uint64_t); + int (*is_locked)(struct spi_nor *, loff_t, uint64_t); +}; -struct mtk_pinctrl { - struct pinctrl_dev *pctrl; - void **base; - u8 nbase; - struct device *dev; - struct gpio_chip chip; - const struct mtk_pin_soc *soc; - struct mtk_eint *eint; - struct mtk_pinctrl_group *groups; - const char **grp_names; - spinlock_t lock; - bool rsel_si_unit; +struct mdio_driver_common { + struct device_driver driver; + int flags; }; -struct mtk_pin_reg_calc; +typedef enum { + PHY_INTERFACE_MODE_NA = 0, + PHY_INTERFACE_MODE_INTERNAL = 1, + PHY_INTERFACE_MODE_MII = 2, + PHY_INTERFACE_MODE_GMII = 3, + PHY_INTERFACE_MODE_SGMII = 4, + PHY_INTERFACE_MODE_TBI = 5, + PHY_INTERFACE_MODE_REVMII = 6, + PHY_INTERFACE_MODE_RMII = 7, + PHY_INTERFACE_MODE_REVRMII = 8, + PHY_INTERFACE_MODE_RGMII = 9, + PHY_INTERFACE_MODE_RGMII_ID = 10, + PHY_INTERFACE_MODE_RGMII_RXID = 11, + PHY_INTERFACE_MODE_RGMII_TXID = 12, + PHY_INTERFACE_MODE_RTBI = 13, + PHY_INTERFACE_MODE_SMII = 14, + PHY_INTERFACE_MODE_XGMII = 15, + PHY_INTERFACE_MODE_XLGMII = 16, + PHY_INTERFACE_MODE_MOCA = 17, + PHY_INTERFACE_MODE_PSGMII = 18, + PHY_INTERFACE_MODE_QSGMII = 19, + PHY_INTERFACE_MODE_TRGMII = 20, + PHY_INTERFACE_MODE_100BASEX = 21, + PHY_INTERFACE_MODE_1000BASEX = 22, + PHY_INTERFACE_MODE_2500BASEX = 23, + PHY_INTERFACE_MODE_5GBASER = 24, + PHY_INTERFACE_MODE_RXAUI = 25, + PHY_INTERFACE_MODE_XAUI = 26, + PHY_INTERFACE_MODE_10GBASER = 27, + PHY_INTERFACE_MODE_25GBASER = 28, + PHY_INTERFACE_MODE_USXGMII = 29, + PHY_INTERFACE_MODE_10GKR = 30, + PHY_INTERFACE_MODE_QUSGMII = 31, + PHY_INTERFACE_MODE_1000BASEKX = 32, + PHY_INTERFACE_MODE_MAX = 33, +} phy_interface_t; -struct group_desc; +enum led_brightness { + LED_OFF = 0, + LED_ON = 1, + LED_HALF = 127, + LED_FULL = 255, +}; -struct function_desc; +struct phy_tdr_config; -struct mtk_eint_regs; +struct phy_plca_cfg; -struct mtk_eint_hw; +struct phy_plca_status; -struct mtk_pin_rsel; +struct phy_driver { + struct mdio_driver_common mdiodrv; + u32 phy_id; + char *name; + u32 phy_id_mask; + const unsigned long * const features; + u32 flags; + const void *driver_data; + int (*soft_reset)(struct phy_device *); + int (*config_init)(struct phy_device *); + int (*probe)(struct phy_device *); + int (*get_features)(struct phy_device *); + int (*get_rate_matching)(struct phy_device *, phy_interface_t); + int (*suspend)(struct phy_device *); + int (*resume)(struct phy_device *); + int (*config_aneg)(struct phy_device *); + int (*aneg_done)(struct phy_device *); + int (*read_status)(struct phy_device *); + int (*config_intr)(struct phy_device *); + irqreturn_t (*handle_interrupt)(struct phy_device *); + void (*remove)(struct phy_device *); + int (*match_phy_device)(struct phy_device *); + int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *); + void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *); + void (*link_change_notify)(struct phy_device *); + int (*read_mmd)(struct phy_device *, int, u16); + int (*write_mmd)(struct phy_device *, int, u16, u16); + int (*read_page)(struct phy_device *); + int (*write_page)(struct phy_device *, int); + int (*module_info)(struct phy_device *, struct ethtool_modinfo *); + int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *); + int (*cable_test_start)(struct phy_device *); + int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *); + int (*cable_test_get_status)(struct phy_device *, bool *); + int (*get_sset_count)(struct phy_device *); + void (*get_strings)(struct phy_device *, u8 *); + void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); + int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); + int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); + int (*set_loopback)(struct phy_device *, bool); + int (*get_sqi)(struct phy_device *); + int (*get_sqi_max)(struct phy_device *); + int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); + int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *); + int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); + int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness); + int (*led_blink_set)(struct phy_device *, u8, unsigned long *, unsigned long *); + int (*led_hw_is_supported)(struct phy_device *, u8, unsigned long); + int (*led_hw_control_set)(struct phy_device *, u8, unsigned long); + int (*led_hw_control_get)(struct phy_device *, u8, unsigned long *); +}; -struct mtk_pin_soc { - const struct mtk_pin_reg_calc *reg_cal; - const struct mtk_pin_desc *pins; - unsigned int npins; - const struct group_desc *grps; - unsigned int ngrps; - const struct function_desc *funcs; - unsigned int nfuncs; - const struct mtk_eint_regs *eint_regs; - const struct mtk_eint_hw *eint_hw; - u8 gpio_m; - bool ies_present; - const char * const *base_names; - unsigned int nbase_names; - const unsigned int *pull_type; - const struct mtk_pin_rsel *pin_rsel; - unsigned int npin_rsel; - int (*bias_disable_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *); - int (*bias_disable_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, int *); - int (*bias_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool); - int (*bias_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool, int *); - int (*bias_set_combo)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32, u32); - int (*bias_get_combo)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32 *, u32 *); - int (*drive_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32); - int (*drive_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, int *); - int (*adv_pull_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool, u32); - int (*adv_pull_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, bool, u32 *); - int (*adv_drive_set)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32); - int (*adv_drive_get)(struct mtk_pinctrl *, const struct mtk_pin_desc *, u32 *); - void *driver_data; +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 mtk_pin_field_calc; +struct ethtool_regs { + __u32 cmd; + __u32 version; + __u32 len; + __u8 data[0]; +}; -struct mtk_pin_reg_calc { - const struct mtk_pin_field_calc *range; - unsigned int nranges; +struct ethtool_wolinfo { + __u32 cmd; + __u32 supported; + __u32 wolopts; + __u8 sopass[6]; }; -struct mtk_pin_field_calc { - u16 s_pin; - u16 e_pin; - u8 i_base; - u32 s_addr; - u8 x_addrs; - u8 s_bit; - u8 x_bits; - u8 sz_reg; - u8 fixed; +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, }; -struct group_desc { - const char *name; - int *pins; - int num_pins; - void *data; +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, }; -struct function_desc { - const char *name; - const char * const *group_names; - int num_group_names; - void *data; +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, }; -struct mtk_eint_regs { - unsigned int stat; - unsigned int ack; - unsigned int mask; - unsigned int mask_set; - unsigned int mask_clr; - unsigned int sens; - unsigned int sens_set; - unsigned int sens_clr; - unsigned int soft; - unsigned int soft_set; - unsigned int soft_clr; - unsigned int pol; - unsigned int pol_set; - unsigned int pol_clr; - unsigned int dom_en; - unsigned int dbnc_ctrl; - unsigned int dbnc_set; - unsigned int dbnc_clr; +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, }; -struct mtk_eint_hw { - u8 port_mask; - u8 ports; - unsigned int ap_num; - unsigned int db_cnt; - const unsigned int *db_time; +enum ethtool_link_ext_substate_cable_issue { + ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1, + ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 2, }; -struct mtk_pin_rsel { - u16 s_pin; - u16 e_pin; - u16 rsel_index; - u32 up_rsel; - u32 down_rsel; +enum ethtool_link_ext_substate_module { + ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1, }; -struct mtk_eint { - struct device *dev; - void *base; - struct irq_domain *domain; - int irq; - int *dual_edge; - u32 *wake_mask; - u32 *cur_mask; - const struct mtk_eint_hw *hw; - const struct mtk_eint_regs *regs; - u16 num_db_time; - void *pctl; - const struct mtk_eint_xt *gpio_xlate; +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 mtk_pinctrl_group { - const char *name; - unsigned long config; - unsigned int pin; +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 mtk_pin_field { - u8 index; - u32 offset; - u32 mask; - u8 bitpos; - u8 next; +struct ethtool_link_ext_stats { + u64 link_down_events; }; -struct pmic_mpp_state { - struct device *dev; - struct regmap *map; - struct pinctrl_dev *ctrl; - struct gpio_chip chip; +struct ethtool_eeprom { + __u32 cmd; + __u32 magic; + __u32 offset; + __u32 len; + __u8 data[0]; }; -struct pmic_mpp_pad { - u16 base; - bool is_enabled; - bool out_value; - bool output_enabled; - bool input_enabled; - bool paired; - bool has_pullup; - unsigned int num_sources; - unsigned int power_source; - unsigned int amux_input; - unsigned int aout_level; - unsigned int pullup; - unsigned int function; - unsigned int drive_strength; - unsigned int dtest; +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 uniphier_pinctrl_group; - -struct uniphier_pinmux_function; - -struct uniphier_pinctrl_socdata { - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const struct uniphier_pinctrl_group *groups; - int groups_count; - const struct uniphier_pinmux_function *functions; - int functions_count; - int (*get_gpio_muxval)(unsigned int, unsigned int); - unsigned int caps; +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 uniphier_pinctrl_group { - const char *name; - const unsigned int *pins; - unsigned int num_pins; - const int *muxvals; +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 uniphier_pinmux_function { - const char *name; - const char * const *groups; - unsigned int num_groups; +struct kernel_ethtool_ringparam { + u32 rx_buf_len; + u8 tcp_data_split; + u8 tx_push; + u8 rx_push; + u32 cqe_size; + u32 tx_push_buf_len; + u32 tx_push_buf_max_len; }; -enum i2c_alert_protocol { - I2C_PROTOCOL_SMBUS_ALERT = 0, - I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1, +enum ethtool_mac_stats_src { + ETHTOOL_MAC_STATS_SRC_AGGREGATE = 0, + ETHTOOL_MAC_STATS_SRC_EMAC = 1, + ETHTOOL_MAC_STATS_SRC_PMAC = 2, }; -struct i2c_client; +struct ethtool_pause_stats { + enum ethtool_mac_stats_src src; + long: 32; + union { + struct { + u64 tx_pause_frames; + u64 rx_pause_frames; + }; + struct { + u64 tx_pause_frames; + u64 rx_pause_frames; + } stats; + }; +}; -struct i2c_device_id; +struct ethtool_pauseparam { + __u32 cmd; + __u32 autoneg; + __u32 rx_pause; + __u32 tx_pause; +}; -struct i2c_board_info; +struct ethtool_test { + __u32 cmd; + __u32 flags; + __u32 reserved; + __u32 len; + __u64 data[0]; +}; -struct i2c_driver { - unsigned int class; - union { - int (*probe)(struct i2c_client *); - int (*probe_new)(struct i2c_client *); - }; - void (*remove)(struct i2c_client *); - void (*shutdown)(struct i2c_client *); - void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int); - int (*command)(struct i2c_client *, unsigned int, void *); - struct device_driver driver; - const struct i2c_device_id *id_table; - int (*detect)(struct i2c_client *, struct i2c_board_info *); - const unsigned short *address_list; - struct list_head clients; - u32 flags; +struct ethtool_stats { + __u32 cmd; + __u32 n_stats; + __u64 data[0]; }; -enum i2c_slave_event { - I2C_SLAVE_READ_REQUESTED = 0, - I2C_SLAVE_WRITE_REQUESTED = 1, - I2C_SLAVE_READ_PROCESSED = 2, - I2C_SLAVE_WRITE_RECEIVED = 3, - I2C_SLAVE_STOP = 4, +struct ethtool_tcpip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be16 psrc; + __be16 pdst; + __u8 tos; }; -typedef int (*i2c_slave_cb_t)(struct i2c_client *, enum i2c_slave_event, u8 *); +struct ethtool_ah_espip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 spi; + __u8 tos; +}; -struct i2c_adapter; +struct ethtool_usrip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 l4_4_bytes; + __u8 tos; + __u8 ip_ver; + __u8 proto; +}; -struct i2c_client { - unsigned short flags; - unsigned short addr; - char name[20]; - struct i2c_adapter *adapter; - long: 32; - struct device dev; - int init_irq; - int irq; - struct list_head detected; - i2c_slave_cb_t slave_cb; - void *devres_group_id; +struct ethtool_tcpip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be16 psrc; + __be16 pdst; + __u8 tclass; }; -struct rt_mutex { - struct rt_mutex_base rtmutex; +struct ethtool_ah_espip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be32 spi; + __u8 tclass; }; -struct i2c_algorithm; +struct ethtool_usrip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be32 l4_4_bytes; + __u8 tclass; + __u8 l4_proto; +}; -struct i2c_lock_operations; +struct ethhdr { + unsigned char h_dest[6]; + unsigned char h_source[6]; + __be16 h_proto; +}; -struct i2c_bus_recovery_info; +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 i2c_adapter_quirks; +struct ethtool_flow_ext { + __u8 padding[2]; + unsigned char h_dest[6]; + __be16 vlan_etype; + __be16 vlan_tci; + __be32 data[2]; +}; -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 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; long: 32; - 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; + __u64 ring_cookie; + __u32 location; long: 32; }; -struct i2c_msg; - -union i2c_smbus_data; +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]; + long: 32; +}; -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 *); - int (*reg_slave)(struct i2c_client *); - int (*unreg_slave)(struct i2c_client *); +struct ethtool_flash { + __u32 cmd; + __u32 region; + char data[128]; }; -struct i2c_msg { - __u16 addr; - __u16 flags; - __u16 len; - __u8 *buf; +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; }; -union i2c_smbus_data { - __u8 byte; - __u16 word; - __u8 block[34]; +struct ethtool_dump { + __u32 cmd; + __u32 version; + __u32 flag; + __u32 len; + __u8 data[0]; }; -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 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 gpio_desc; +struct ethtool_modinfo { + __u32 cmd; + __u32 type; + __u32 eeprom_len; + __u32 reserved[8]; +}; -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 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 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; - long: 32; +struct ethtool_tunable { + __u32 cmd; + __u32 id; + __u32 type_id; + __u32 len; + void *data[0]; }; -struct i2c_device_id { - char name[20]; - kernel_ulong_t driver_data; +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 software_node; +struct ethtool_link_ksettings { + struct ethtool_link_settings base; + struct { + unsigned long supported[4]; + unsigned long advertising[4]; + unsigned long lp_advertising[4]; + } link_modes; + u32 lanes; +}; -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 ethtool_fec_stat { + u64 total; + u64 lanes[8]; }; -struct property_entry; +struct ethtool_fec_stats { + struct ethtool_fec_stat corrected_blocks; + struct ethtool_fec_stat uncorrectable_blocks; + struct ethtool_fec_stat corrected_bits; +}; -struct software_node { - const char *name; - const struct software_node *parent; - const struct property_entry *properties; +struct ethtool_fecparam { + __u32 cmd; + __u32 active_fec; + __u32 fec; + __u32 reserved; }; -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, +struct ethtool_module_eeprom { + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; + u8 *data; }; -struct property_entry { - const char *name; - size_t length; - bool is_inline; - enum dev_prop_type type; +struct ethtool_eth_phy_stats { + enum ethtool_mac_stats_src src; + long: 32; union { - const void *pointer; - union { - u8 u8_data[8]; - u16 u16_data[4]; - u32 u32_data[2]; - u64 u64_data[1]; - const char *str[2]; - } value; + struct { + u64 SymbolErrorDuringCarrier; + }; + struct { + u64 SymbolErrorDuringCarrier; + } stats; }; }; -struct pcf857x { - struct gpio_chip chip; - struct i2c_client *client; - struct mutex lock; - unsigned int out; - unsigned int status; - unsigned int irq_enabled; - int (*write)(struct i2c_client *, unsigned int); - int (*read)(struct i2c_client *); +struct ethtool_eth_mac_stats { + enum ethtool_mac_stats_src src; + long: 32; + 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; + }; }; -enum pci_mmap_state { - pci_mmap_io = 0, - pci_mmap_mem = 1, +struct ethtool_eth_ctrl_stats { + enum ethtool_mac_stats_src src; + long: 32; + union { + struct { + u64 MACControlFramesTransmitted; + u64 MACControlFramesReceived; + u64 UnsupportedOpcodesReceived; + }; + struct { + u64 MACControlFramesTransmitted; + u64 MACControlFramesReceived; + u64 UnsupportedOpcodesReceived; + } stats; + }; }; -enum pci_mmap_api { - PCI_MMAP_SYSFS = 0, - PCI_MMAP_PROCFS = 1, +struct ethtool_rmon_stats { + enum ethtool_mac_stats_src src; + long: 32; + 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 rcec_ea { - u8 nextbusn; - u8 lastbusn; - u32 bitmap; +struct ethtool_rmon_hist_range { + u16 low; + u16 high; }; -struct pci_filp_private { - enum pci_mmap_state mmap_state; - int write_combine; +enum ethtool_module_power_mode_policy { + ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1, + ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2, }; -enum con_scroll { - SM_UP = 0, - SM_DOWN = 1, +enum ethtool_module_power_mode { + ETHTOOL_MODULE_POWER_MODE_LOW = 1, + ETHTOOL_MODULE_POWER_MODE_HIGH = 2, }; -enum vc_intensity { - VCI_HALF_BRIGHT = 0, - VCI_NORMAL = 1, - VCI_BOLD = 2, - VCI_MASK = 3, +struct ethtool_module_power_mode_params { + enum ethtool_module_power_mode_policy policy; + enum ethtool_module_power_mode mode; }; -struct vc_data; - -struct console_font; +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 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 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 ld_semaphore { - atomic_long_t count; - raw_spinlock_t wait_lock; - unsigned int wait_readers; - struct list_head read_wait; - struct list_head write_wait; +struct ethtool_mm_cfg { + u32 verify_time; + bool verify_enabled; + bool tx_enabled; + bool pmac_enabled; + u32 tx_min_frag_size; }; -typedef unsigned int tcflag_t; +struct ethtool_mm_stats { + u64 MACMergeFrameAssErrorCount; + u64 MACMergeFrameSmdErrorCount; + u64 MACMergeFrameAssOkCount; + u64 MACMergeFragCountRx; + u64 MACMergeFragCountTx; + u64 MACMergeHoldCount; +}; -typedef unsigned char cc_t; +struct mii_bus; -typedef unsigned int speed_t; +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 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 phy_c45_device_ids { + u32 devices_in_package; + u32 mmds_present; + u32 device_ids[32]; }; -struct winsize { - unsigned short ws_row; - unsigned short ws_col; - unsigned short ws_xpixel; - unsigned short ws_ypixel; +enum phy_state { + PHY_DOWN = 0, + PHY_READY = 1, + PHY_HALTED = 2, + PHY_ERROR = 3, + PHY_UP = 4, + PHY_RUNNING = 5, + PHY_NOLINK = 6, + PHY_CABLETEST = 7, }; -struct tty_driver; +struct pse_control; -struct tty_operations; +struct device_link; -struct tty_ldisc; +struct phy_package_shared; -struct tty_port; +struct phylink; -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; - bool 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 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 wol_enabled: 1; + unsigned int autoneg: 1; + unsigned int link: 1; + unsigned int autoneg_complete: 1; + unsigned int interrupts: 1; + unsigned int irq_suspended: 1; + unsigned int irq_rerun: 1; + int rate_matching; + enum phy_state state; + u32 dev_flags; + phy_interface_t interface; + 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[4]; + unsigned long advertising[4]; + unsigned long lp_advertising[4]; + unsigned long adv_old[4]; + unsigned long supported_eee[4]; + unsigned long advertising_eee[4]; + bool eee_enabled; + unsigned long host_interfaces[2]; + u32 eee_broken_modes; + struct list_head leds; + int irq; + void *priv; + struct phy_package_shared *shared; + struct sk_buff *skb; + void *ehdr; + struct nlattr *nest; + struct delayed_work state_queue; + struct mutex lock; + bool sfp_bus_attached; + struct sfp_bus *sfp_bus; + struct phylink *phylink; + struct net_device *attached_dev; + struct mii_timestamper *mii_ts; + struct pse_control *psec; + u8 mdix; + u8 mdix_ctrl; + int pma_extable; + unsigned int link_down_events; + void (*phy_link_change)(struct phy_device *, bool); + void (*adjust_link)(struct net_device *); + long: 32; }; -struct tty_driver { - struct kref kref; - struct cdev **cdevs; +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; + long: 32; +}; + +struct mii_bus { 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; + 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; + long: 32; + 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 __kfifo { - unsigned int in; - unsigned int out; - unsigned int mask; - unsigned int esize; - void *data; +struct phy_package_shared { + int addr; + refcount_t refcnt; + unsigned long flags; + size_t priv_size; + void *priv; }; -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]; +enum device_link_state { + DL_STATE_NONE = -1, + DL_STATE_DORMANT = 0, + DL_STATE_AVAILABLE = 1, + DL_STATE_CONSUMER_PROBE = 2, + DL_STATE_ACTIVE = 3, + DL_STATE_SUPPLIER_UNBIND = 4, }; -struct 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 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; + long: 32; }; -struct tty_port_operations; - -struct tty_port_client_operations; +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; +}; -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 phy_tdr_config { + u32 first; + u32 last; + u32 step; + s8 pair; }; -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 phy_plca_cfg { + int version; + int enabled; + int node_id; + int node_cnt; + int to_tmr; + int burst_cnt; + int burst_tmr; }; -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 phy_plca_status { + bool pst; }; -struct serial_icounter_struct; +struct hwmon_ops; -struct serial_struct; +struct hwmon_channel_info; -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 hwmon_chip_info { + const struct hwmon_ops *ops; + const struct hwmon_channel_info * const *info; }; -struct tty_ldisc_ops; +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 tty_ldisc { - struct tty_ldisc_ops *ops; - struct tty_struct *tty; +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 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 hwmon_channel_info { + enum hwmon_sensor_types type; + const u32 *config; }; -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 marvell_hw_stat { + const char *string; + u8 page; + u8 reg; + u8 bits; }; -struct console_font { - unsigned int width; - unsigned int height; - unsigned int charcount; - unsigned char *data; +struct marvell_hwmon_ops { + int (*config)(struct phy_device *); + int (*get_temp)(struct phy_device *, long *); + int (*get_temp_critical)(struct phy_device *, long *); + int (*set_temp_critical)(struct phy_device *, long); + int (*get_temp_alarm)(struct phy_device *, long *); }; -struct vt_mode { - char mode; - char waitv; - short relsig; - short acqsig; - short frsig; +struct marvell_led_rules { + int mode; + unsigned long rules; }; -struct uni_pagedict; +struct sfp_eeprom_id; -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[8]; - 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; +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 fb_info; +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; + } 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; + } active; + }; + u8 reserved62; + u8 cc_base; +}; -struct fb_var_screeninfo; +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 fb_cmap; +struct sfp_eeprom_id { + struct sfp_eeprom_base base; + struct sfp_eeprom_ext ext; +}; -struct fb_fillrect; +enum hwmon_temp_attributes { + hwmon_temp_enable = 0, + hwmon_temp_input = 1, + hwmon_temp_type = 2, + hwmon_temp_lcrit = 3, + hwmon_temp_lcrit_hyst = 4, + hwmon_temp_min = 5, + hwmon_temp_min_hyst = 6, + hwmon_temp_max = 7, + hwmon_temp_max_hyst = 8, + hwmon_temp_crit = 9, + hwmon_temp_crit_hyst = 10, + hwmon_temp_emergency = 11, + hwmon_temp_emergency_hyst = 12, + hwmon_temp_alarm = 13, + hwmon_temp_lcrit_alarm = 14, + hwmon_temp_min_alarm = 15, + hwmon_temp_max_alarm = 16, + hwmon_temp_crit_alarm = 17, + hwmon_temp_emergency_alarm = 18, + hwmon_temp_fault = 19, + hwmon_temp_offset = 20, + hwmon_temp_label = 21, + hwmon_temp_lowest = 22, + hwmon_temp_highest = 23, + hwmon_temp_reset_history = 24, + hwmon_temp_rated_min = 25, + hwmon_temp_rated_max = 26, + hwmon_temp_beep = 27, +}; -struct fb_copyarea; +enum ethtool_link_mode_bit_indices { + ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0, + ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1, + ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2, + ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3, + ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4, + ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5, + ETHTOOL_LINK_MODE_Autoneg_BIT = 6, + ETHTOOL_LINK_MODE_TP_BIT = 7, + ETHTOOL_LINK_MODE_AUI_BIT = 8, + ETHTOOL_LINK_MODE_MII_BIT = 9, + ETHTOOL_LINK_MODE_FIBRE_BIT = 10, + ETHTOOL_LINK_MODE_BNC_BIT = 11, + ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12, + ETHTOOL_LINK_MODE_Pause_BIT = 13, + ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14, + ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15, + ETHTOOL_LINK_MODE_Backplane_BIT = 16, + ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17, + ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18, + ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19, + ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20, + ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21, + ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22, + ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23, + ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24, + ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25, + ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26, + ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27, + ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28, + ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29, + ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30, + ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31, + ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32, + ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33, + ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34, + ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35, + ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36, + ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37, + ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38, + ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39, + ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40, + ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41, + ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42, + ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43, + ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44, + ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45, + ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46, + ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, + ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, + ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49, + ETHTOOL_LINK_MODE_FEC_RS_BIT = 50, + ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51, + ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52, + ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53, + ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54, + ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55, + ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56, + ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57, + ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58, + ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59, + ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60, + ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61, + ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62, + ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63, + ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64, + ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65, + ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, + ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, + ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, + ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69, + ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70, + ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, + ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, + ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, + ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74, + ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75, + ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76, + ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77, + ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78, + ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79, + ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80, + ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81, + ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82, + ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83, + ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84, + ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85, + ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86, + ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87, + ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88, + ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89, + ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, + ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, + ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92, + ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93, + ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94, + ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95, + ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96, + ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97, + ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98, + ETHTOOL_LINK_MODE_10baseT1S_Full_BIT = 99, + ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100, + ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101, + __ETHTOOL_LINK_MODE_MASK_NBITS = 102, +}; -struct fb_image; +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 fb_cursor; +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, +}; -struct fb_blit_caps; +enum { + ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC = 0, + ETHTOOL_A_CABLE_RESULT_CODE_OK = 1, + ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 2, + ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 3, + ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 4, +}; -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 marvell_priv { + u64 stats[3]; + char *hwmon_name; + struct device *hwmon_dev; + bool cable_test_tdr; + u32 first; + u32 last; + u32 step; + s8 pair; + long: 32; }; -struct fb_bitfield { - __u32 offset; - __u32 length; - __u32 msb_right; +struct inet_peer_base { + struct rb_root rb_root; + seqlock_t lock; + int total; }; -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]; +enum devlink_port_type { + DEVLINK_PORT_TYPE_NOTSET = 0, + DEVLINK_PORT_TYPE_AUTO = 1, + DEVLINK_PORT_TYPE_ETH = 2, + DEVLINK_PORT_TYPE_IB = 3, }; -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]; +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 fb_chroma { - __u32 redx; - __u32 greenx; - __u32 bluex; - __u32 whitex; - __u32 redy; - __u32 greeny; - __u32 bluey; - __u32 whitey; +struct devlink_port_phys_attrs { + u32 port_number; + u32 split_subport_number; }; -struct fb_videomode; +struct devlink_port_pci_pf_attrs { + u32 controller; + u16 pf; + u8 external: 1; +}; -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 devlink_port_pci_vf_attrs { + u32 controller; + u16 pf; + u16 vf; + u8 external: 1; }; -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 devlink_port_pci_sf_attrs { + u32 controller; + u32 sf; + u16 pf; + u8 external: 1; }; -struct fb_cmap { - __u32 start; - __u32 len; - __u16 *red; - __u16 *green; - __u16 *blue; - __u16 *transp; +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 backlight_device; +struct devlink; -struct fb_deferred_io_pageref; +struct devlink_port_ops; -struct fb_deferred_io; +struct ib_device; -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; - struct backlight_device *bl_dev; - struct mutex bl_curve_mutex; - u8 bl_curve[128]; - struct delayed_work deferred_work; - unsigned long npagerefs; - struct fb_deferred_io_pageref *pagerefs; - struct fb_deferred_io *fbdefio; - const struct fb_ops *fbops; - struct device *device; - struct device *dev; - int class_flag; +struct devlink_rate; + +struct devlink_linecard; + +struct devlink_port { + struct list_head list; + struct list_head region_list; + struct devlink *devlink; + const struct devlink_port_ops *ops; + unsigned int index; + spinlock_t type_lock; + enum devlink_port_type type; + enum devlink_port_type desired_type; union { - char *screen_base; - char *screen_buffer; + struct { + struct net_device *netdev; + int ifindex; + char ifname[16]; + } type_eth; + struct { + struct ib_device *ibdev; + } type_ib; }; - unsigned long screen_size; - void *pseudo_palette; - u32 state; - void *fbcon_par; - void *par; - bool skip_vt_switch; + struct devlink_port_attrs attrs; + u8 attrs_set: 1; + u8 switch_port: 1; + u8 registered: 1; + u8 initialized: 1; + struct delayed_work type_warn_dw; + struct list_head reporter_list; + struct devlink_rate *devlink_rate; + struct devlink_linecard *linecard; + u32 rel_index; }; -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; +enum phylink_op_type { + PHYLINK_NETDEV = 0, + PHYLINK_DEV = 1, }; -enum backlight_type { - BACKLIGHT_RAW = 1, - BACKLIGHT_PLATFORM = 2, - BACKLIGHT_FIRMWARE = 3, - BACKLIGHT_TYPE_MAX = 4, -}; +struct phylink_link_state; -enum backlight_scale { - BACKLIGHT_SCALE_UNKNOWN = 0, - BACKLIGHT_SCALE_LINEAR = 1, - BACKLIGHT_SCALE_NON_LINEAR = 2, +struct phylink_config { + struct device *dev; + enum phylink_op_type type; + bool poll_fixed_state; + bool mac_managed_pm; + bool ovr_an_inband; + void (*get_fixed_state)(struct phylink_config *, struct phylink_link_state *); + unsigned long supported_interfaces[2]; + unsigned long mac_capabilities; }; -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 dsa_device_ops; -struct backlight_ops; +struct dsa_switch_tree; -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; - long: 32; - struct device dev; - bool fb_bl_on[32]; - int use_count; - long: 32; -}; +struct dsa_switch; -struct backlight_ops { - unsigned int options; - int (*update_status)(struct backlight_device *); - int (*get_brightness)(struct backlight_device *); - int (*check_fb)(struct backlight_device *, struct fb_info *); -}; +struct dsa_bridge; -struct fb_deferred_io_pageref { - struct page *page; - unsigned long offset; +struct dsa_lag; + +struct dsa_port { + union { + struct net_device *conduit; + struct net_device *user; + }; + const struct dsa_device_ops *tag_ops; + struct dsa_switch_tree *dst; + struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); + struct dsa_switch *ds; + unsigned int index; + enum { + DSA_PORT_TYPE_UNUSED = 0, + DSA_PORT_TYPE_CPU = 1, + DSA_PORT_TYPE_DSA = 2, + DSA_PORT_TYPE_USER = 3, + } type; + const char *name; + struct dsa_port *cpu_dp; + u8 mac[6]; + u8 stp_state; + u8 vlan_filtering: 1; + u8 learning: 1; + u8 lag_tx_enabled: 1; + u8 conduit_admin_up: 1; + u8 conduit_oper_up: 1; + u8 cpu_port_in_lag: 1; + u8 setup: 1; + struct device_node *dn; + unsigned int ageing_time; + struct dsa_bridge *bridge; + struct devlink_port devlink_port; + struct phylink *pl; + struct phylink_config pl_config; + struct dsa_lag *lag; + struct net_device *hsr_dev; struct list_head list; + const struct ethtool_ops *orig_ethtool_ops; + struct mutex addr_lists_lock; + struct list_head fdbs; + struct list_head mdbs; + struct mutex vlans_lock; + union { + struct list_head vlans; + struct list_head user_vlans; + }; }; -struct fb_deferred_io { - unsigned long delay; - bool sort_pagereflist; - int open_count; - struct mutex lock; - struct list_head pagereflist; - void (*deferred_io)(struct fb_info *, struct list_head *); +enum dsa_tag_protocol { + DSA_TAG_PROTO_NONE = 0, + DSA_TAG_PROTO_BRCM = 1, + DSA_TAG_PROTO_BRCM_LEGACY = 22, + DSA_TAG_PROTO_BRCM_PREPEND = 2, + DSA_TAG_PROTO_DSA = 3, + DSA_TAG_PROTO_EDSA = 4, + DSA_TAG_PROTO_GSWIP = 5, + DSA_TAG_PROTO_KSZ9477 = 6, + DSA_TAG_PROTO_KSZ9893 = 7, + DSA_TAG_PROTO_LAN9303 = 8, + DSA_TAG_PROTO_MTK = 9, + DSA_TAG_PROTO_QCA = 10, + DSA_TAG_PROTO_TRAILER = 11, + DSA_TAG_PROTO_8021Q = 12, + DSA_TAG_PROTO_SJA1105 = 13, + DSA_TAG_PROTO_KSZ8795 = 14, + DSA_TAG_PROTO_OCELOT = 15, + DSA_TAG_PROTO_AR9331 = 16, + DSA_TAG_PROTO_RTL4_A = 17, + DSA_TAG_PROTO_HELLCREEK = 18, + DSA_TAG_PROTO_XRS700X = 19, + DSA_TAG_PROTO_OCELOT_8021Q = 20, + DSA_TAG_PROTO_SEVILLE = 21, + DSA_TAG_PROTO_SJA1110 = 23, + DSA_TAG_PROTO_RTL8_4 = 24, + DSA_TAG_PROTO_RTL8_4T = 25, + DSA_TAG_PROTO_RZN1_A5PSW = 26, + DSA_TAG_PROTO_LAN937X = 27, }; -struct fb_fillrect { - __u32 dx; - __u32 dy; - __u32 width; - __u32 height; - __u32 color; - __u32 rop; +struct dsa_device_ops { + struct sk_buff * (*xmit)(struct sk_buff *, struct net_device *); + struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); + void (*flow_dissect)(const struct sk_buff *, __be16 *, int *); + int (*connect)(struct dsa_switch *); + void (*disconnect)(struct dsa_switch *); + unsigned int needed_headroom; + unsigned int needed_tailroom; + const char *name; + enum dsa_tag_protocol proto; + bool promisc_on_conduit; }; -struct fb_copyarea { - __u32 dx; - __u32 dy; - __u32 width; - __u32 height; - __u32 sx; - __u32 sy; -}; +struct dsa_8021q_context; -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 dsa_chip_data; -struct fbcurpos { - __u16 x; - __u16 y; -}; +struct dsa_switch_ops; -struct fb_cursor { - __u16 set; - __u16 enable; - __u16 rop; - const char *mask; - struct fbcurpos hot; - struct fb_image image; +struct dsa_switch { + struct device *dev; + struct dsa_switch_tree *dst; + unsigned int index; + u32 setup: 1; + u32 vlan_filtering_is_global: 1; + u32 needs_standalone_vlan_filtering: 1; + u32 configure_vlan_while_not_filtering: 1; + u32 untag_bridge_pvid: 1; + u32 assisted_learning_on_cpu_port: 1; + u32 vlan_filtering: 1; + u32 mtu_enforcement_ingress: 1; + u32 fdb_isolation: 1; + struct notifier_block nb; + void *priv; + void *tagger_data; + struct dsa_chip_data *cd; + const struct dsa_switch_ops *ops; + u32 phys_mii_mask; + struct mii_bus *user_mii_bus; + unsigned int ageing_time_min; + unsigned int ageing_time_max; + struct dsa_8021q_context *tag_8021q_ctx; + struct devlink *devlink; + unsigned int num_tx_queues; + unsigned int num_lag_ids; + unsigned int max_num_bridges; + unsigned int num_ports; }; -struct fb_blit_caps { - u32 x; - u32 y; - u32 len; - u32 flags; -}; +struct dsa_platform_data; -struct di_mapping { - uint32_t b0; - uint32_t b1; - uint32_t b2; +struct dsa_switch_tree { + struct list_head list; + struct list_head ports; + struct raw_notifier_head nh; + unsigned int index; + struct kref refcount; + struct dsa_lag **lags; + const struct dsa_device_ops *tag_ops; + enum dsa_tag_protocol default_proto; + bool setup; + struct dsa_platform_data *pd; + struct list_head rtable; + unsigned int lags_len; + unsigned int last_switch; }; -enum disp_data_mapping { - IPU_DISP_DATA_MAPPING_RGB666 = 0, - IPU_DISP_DATA_MAPPING_RGB565 = 1, - IPU_DISP_DATA_MAPPING_RGB888 = 2, +struct dsa_lag { + struct net_device *dev; + unsigned int id; + struct mutex fdb_lock; + struct list_head fdbs; + refcount_t refcount; }; -enum dma_desc_metadata_mode { - DESC_METADATA_NONE = 0, - DESC_METADATA_CLIENT = 1, - DESC_METADATA_ENGINE = 2, +struct dsa_platform_data { + struct device *netdev; + struct net_device *of_netdev; + int nr_chips; + struct dsa_chip_data *chip; }; -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, +struct dsa_chip_data { + struct device *host_dev; + int sw_addr; + struct device *netdev[12]; + int eeprom_len; + struct device_node *of_node; + char *port_names[12]; + struct device_node *port_dn[12]; + s8 rtable[4]; }; -enum dma_residue_granularity { - DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, - DMA_RESIDUE_GRANULARITY_SEGMENT = 1, - DMA_RESIDUE_GRANULARITY_BURST = 2, -}; +typedef int dsa_fdb_dump_cb_t(const unsigned char *, u16, bool, void *); -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 devlink_sb_threshold_type { + DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0, + DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 1, }; -enum dmaengine_tx_result { - DMA_TRANS_NOERROR = 0, - DMA_TRANS_READ_FAILED = 1, - DMA_TRANS_WRITE_FAILED = 2, - DMA_TRANS_ABORTED = 3, +enum devlink_sb_pool_type { + DEVLINK_SB_POOL_TYPE_INGRESS = 0, + DEVLINK_SB_POOL_TYPE_EGRESS = 1, }; -enum sum_check_flags { - SUM_CHECK_P_RESULT = 1, - SUM_CHECK_Q_RESULT = 2, -}; +struct fixed_phy_status; -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, -}; +struct phylink_pcs; -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 netdev_notifier_changeupper_info; -enum ipu_channel { - IDMAC_IC_0 = 0, - IDMAC_IC_1 = 1, - IDMAC_ADC_0 = 1, - IDMAC_IC_2 = 2, - IDMAC_ADC_1 = 2, - IDMAC_IC_3 = 3, - IDMAC_IC_4 = 4, - IDMAC_IC_5 = 5, - IDMAC_IC_6 = 6, - IDMAC_IC_7 = 7, - IDMAC_IC_8 = 8, - IDMAC_IC_9 = 9, - IDMAC_IC_10 = 10, - IDMAC_IC_11 = 11, - IDMAC_IC_12 = 12, - IDMAC_IC_13 = 13, - IDMAC_SDC_0 = 14, - IDMAC_SDC_1 = 15, - IDMAC_SDC_2 = 16, - IDMAC_SDC_3 = 17, - IDMAC_ADC_2 = 18, - IDMAC_ADC_3 = 19, - IDMAC_ADC_4 = 20, - IDMAC_ADC_5 = 21, - IDMAC_ADC_6 = 22, - IDMAC_ADC_7 = 23, - IDMAC_PF_0 = 24, - IDMAC_PF_1 = 25, - IDMAC_PF_2 = 26, - IDMAC_PF_3 = 27, - IDMAC_PF_4 = 28, - IDMAC_PF_5 = 29, - IDMAC_PF_6 = 30, - IDMAC_PF_7 = 31, -}; +struct switchdev_mst_state; -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, -}; +struct switchdev_brport_flags; -enum display_port { - DISP0 = 0, - DISP1 = 1, - DISP2 = 2, - DISP3 = 3, -}; +struct switchdev_obj_port_vlan; -enum ipu_channel_status { - IPU_CHANNEL_FREE = 0, - IPU_CHANNEL_INITIALIZED = 1, - IPU_CHANNEL_READY = 2, - IPU_CHANNEL_ENABLED = 3, -}; +struct switchdev_vlan_msti; -enum { - FB_BLANK_UNBLANK = 0, - FB_BLANK_NORMAL = 1, - FB_BLANK_VSYNC_SUSPEND = 2, - FB_BLANK_HSYNC_SUSPEND = 3, - FB_BLANK_POWERDOWN = 4, -}; +struct dsa_db; -enum ipu_panel { - IPU_PANEL_SHARP_TFT = 0, - IPU_PANEL_TFT = 1, -}; - -enum pixel_fmt { - IPU_PIX_FMT_GENERIC = 0, - IPU_PIX_FMT_RGB332 = 1, - IPU_PIX_FMT_YUV420P = 2, - IPU_PIX_FMT_YUV422P = 3, - IPU_PIX_FMT_YUV420P2 = 4, - IPU_PIX_FMT_YVU422P = 5, - IPU_PIX_FMT_RGB565 = 6, - IPU_PIX_FMT_RGB666 = 7, - IPU_PIX_FMT_BGR666 = 8, - IPU_PIX_FMT_YUYV = 9, - IPU_PIX_FMT_UYVY = 10, - IPU_PIX_FMT_RGB24 = 11, - IPU_PIX_FMT_BGR24 = 12, - IPU_PIX_FMT_GENERIC_32 = 13, - IPU_PIX_FMT_RGB32 = 14, - IPU_PIX_FMT_BGR32 = 15, - IPU_PIX_FMT_ABGR32 = 16, - IPU_PIX_FMT_BGRA32 = 17, - IPU_PIX_FMT_RGBA32 = 18, -}; +struct switchdev_obj_port_mdb; -typedef s32 dma_cookie_t; +struct flow_cls_offload; -struct dma_device; +struct dsa_mall_mirror_tc_entry; -struct dma_chan_dev; +struct dsa_mall_policer_tc_entry; -struct dma_chan_percpu; +struct netdev_lag_upper_info; -struct dma_router; +struct devlink_param_gset_ctx; -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 devlink_info_req; -struct idmac_video_param { - unsigned short in_width; - unsigned short in_height; - uint32_t in_pixel_fmt; - unsigned short out_width; - unsigned short out_height; - uint32_t out_pixel_fmt; - unsigned short out_stride; - bool graphics_combine_en; - bool global_alpha_en; - bool key_color_en; - enum display_port disp; - unsigned short out_left; - unsigned short out_top; -}; +struct devlink_sb_pool_info; -union ipu_channel_param { - struct idmac_video_param video; -}; +struct switchdev_obj_mrp; -struct idmac_tx_desc; +struct switchdev_obj_ring_role_mrp; -struct idmac_channel { - struct dma_chan dma_chan; - dma_cookie_t completed; - union ipu_channel_param params; - enum ipu_channel link; - enum ipu_channel_status status; - void *client; - unsigned int n_tx_desc; - struct idmac_tx_desc *desc; - struct scatterlist *sg[2]; - struct list_head free_list; - struct list_head queue; - spinlock_t lock; - struct mutex chan_mutex; - bool sec_chan_en; - int active_buffer; - unsigned int eof_irq; - char eof_name[16]; +struct dsa_switch_ops { + enum dsa_tag_protocol (*get_tag_protocol)(struct dsa_switch *, int, enum dsa_tag_protocol); + int (*change_tag_protocol)(struct dsa_switch *, enum dsa_tag_protocol); + int (*connect_tag_protocol)(struct dsa_switch *, enum dsa_tag_protocol); + int (*port_change_conduit)(struct dsa_switch *, int, struct net_device *, struct netlink_ext_ack *); + int (*setup)(struct dsa_switch *); + void (*teardown)(struct dsa_switch *); + int (*port_setup)(struct dsa_switch *, int); + void (*port_teardown)(struct dsa_switch *, int); + u32 (*get_phy_flags)(struct dsa_switch *, int); + int (*phy_read)(struct dsa_switch *, int, int); + int (*phy_write)(struct dsa_switch *, int, int, u16); + void (*adjust_link)(struct dsa_switch *, int, struct phy_device *); + void (*fixed_link_update)(struct dsa_switch *, int, struct fixed_phy_status *); + void (*phylink_get_caps)(struct dsa_switch *, int, struct phylink_config *); + struct phylink_pcs * (*phylink_mac_select_pcs)(struct dsa_switch *, int, phy_interface_t); + int (*phylink_mac_prepare)(struct dsa_switch *, int, unsigned int, phy_interface_t); + void (*phylink_mac_config)(struct dsa_switch *, int, unsigned int, const struct phylink_link_state *); + int (*phylink_mac_finish)(struct dsa_switch *, int, unsigned int, phy_interface_t); + void (*phylink_mac_link_down)(struct dsa_switch *, int, unsigned int, phy_interface_t); + void (*phylink_mac_link_up)(struct dsa_switch *, int, unsigned int, phy_interface_t, struct phy_device *, int, int, bool, bool); + void (*phylink_fixed_state)(struct dsa_switch *, int, struct phylink_link_state *); + void (*get_strings)(struct dsa_switch *, int, u32, uint8_t *); + void (*get_ethtool_stats)(struct dsa_switch *, int, uint64_t *); + int (*get_sset_count)(struct dsa_switch *, int, int); + void (*get_ethtool_phy_stats)(struct dsa_switch *, int, uint64_t *); + void (*get_eth_phy_stats)(struct dsa_switch *, int, struct ethtool_eth_phy_stats *); + void (*get_eth_mac_stats)(struct dsa_switch *, int, struct ethtool_eth_mac_stats *); + void (*get_eth_ctrl_stats)(struct dsa_switch *, int, struct ethtool_eth_ctrl_stats *); + void (*get_rmon_stats)(struct dsa_switch *, int, struct ethtool_rmon_stats *, const struct ethtool_rmon_hist_range **); + void (*get_stats64)(struct dsa_switch *, int, struct rtnl_link_stats64 *); + void (*get_pause_stats)(struct dsa_switch *, int, struct ethtool_pause_stats *); + void (*self_test)(struct dsa_switch *, int, struct ethtool_test *, u64 *); + void (*get_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); + int (*set_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); + int (*get_ts_info)(struct dsa_switch *, int, struct ethtool_ts_info *); + int (*get_mm)(struct dsa_switch *, int, struct ethtool_mm_state *); + int (*set_mm)(struct dsa_switch *, int, struct ethtool_mm_cfg *, struct netlink_ext_ack *); + void (*get_mm_stats)(struct dsa_switch *, int, struct ethtool_mm_stats *); + int (*port_get_default_prio)(struct dsa_switch *, int); + int (*port_set_default_prio)(struct dsa_switch *, int, u8); + int (*port_get_dscp_prio)(struct dsa_switch *, int, u8); + int (*port_add_dscp_prio)(struct dsa_switch *, int, u8, u8); + int (*port_del_dscp_prio)(struct dsa_switch *, int, u8, u8); + int (*suspend)(struct dsa_switch *); + int (*resume)(struct dsa_switch *); + int (*port_enable)(struct dsa_switch *, int, struct phy_device *); + void (*port_disable)(struct dsa_switch *, int); + int (*port_set_mac_address)(struct dsa_switch *, int, const unsigned char *); + struct dsa_port * (*preferred_default_local_cpu_port)(struct dsa_switch *); + int (*set_mac_eee)(struct dsa_switch *, int, struct ethtool_eee *); + int (*get_mac_eee)(struct dsa_switch *, int, struct ethtool_eee *); + int (*get_eeprom_len)(struct dsa_switch *); + int (*get_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); + int (*set_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); + int (*get_regs_len)(struct dsa_switch *, int); + void (*get_regs)(struct dsa_switch *, int, struct ethtool_regs *, void *); + int (*port_prechangeupper)(struct dsa_switch *, int, struct netdev_notifier_changeupper_info *); + int (*set_ageing_time)(struct dsa_switch *, unsigned int); + int (*port_bridge_join)(struct dsa_switch *, int, struct dsa_bridge, bool *, struct netlink_ext_ack *); + void (*port_bridge_leave)(struct dsa_switch *, int, struct dsa_bridge); + void (*port_stp_state_set)(struct dsa_switch *, int, u8); + int (*port_mst_state_set)(struct dsa_switch *, int, const struct switchdev_mst_state *); + void (*port_fast_age)(struct dsa_switch *, int); + int (*port_vlan_fast_age)(struct dsa_switch *, int, u16); + int (*port_pre_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); + int (*port_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); + void (*port_set_host_flood)(struct dsa_switch *, int, bool, bool); + int (*port_vlan_filtering)(struct dsa_switch *, int, bool, struct netlink_ext_ack *); + int (*port_vlan_add)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *, struct netlink_ext_ack *); + int (*port_vlan_del)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *); + int (*vlan_msti_set)(struct dsa_switch *, struct dsa_bridge, const struct switchdev_vlan_msti *); + int (*port_fdb_add)(struct dsa_switch *, int, const unsigned char *, u16, struct dsa_db); + int (*port_fdb_del)(struct dsa_switch *, int, const unsigned char *, u16, struct dsa_db); + int (*port_fdb_dump)(struct dsa_switch *, int, dsa_fdb_dump_cb_t *, void *); + int (*lag_fdb_add)(struct dsa_switch *, struct dsa_lag, const unsigned char *, u16, struct dsa_db); + int (*lag_fdb_del)(struct dsa_switch *, struct dsa_lag, const unsigned char *, u16, struct dsa_db); + int (*port_mdb_add)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *, struct dsa_db); + int (*port_mdb_del)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *, struct dsa_db); + int (*get_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *, u32 *); + int (*set_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *); + int (*cls_flower_add)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*cls_flower_del)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*cls_flower_stats)(struct dsa_switch *, int, struct flow_cls_offload *, bool); + int (*port_mirror_add)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *, bool, struct netlink_ext_ack *); + void (*port_mirror_del)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *); + int (*port_policer_add)(struct dsa_switch *, int, struct dsa_mall_policer_tc_entry *); + void (*port_policer_del)(struct dsa_switch *, int); + int (*port_setup_tc)(struct dsa_switch *, int, enum tc_setup_type, void *); + int (*crosschip_bridge_join)(struct dsa_switch *, int, int, int, struct dsa_bridge, struct netlink_ext_ack *); + void (*crosschip_bridge_leave)(struct dsa_switch *, int, int, int, struct dsa_bridge); + int (*crosschip_lag_change)(struct dsa_switch *, int, int); + int (*crosschip_lag_join)(struct dsa_switch *, int, int, struct dsa_lag, struct netdev_lag_upper_info *, struct netlink_ext_ack *); + int (*crosschip_lag_leave)(struct dsa_switch *, int, int, struct dsa_lag); + int (*port_hwtstamp_get)(struct dsa_switch *, int, struct ifreq *); + int (*port_hwtstamp_set)(struct dsa_switch *, int, struct ifreq *); + void (*port_txtstamp)(struct dsa_switch *, int, struct sk_buff *); + bool (*port_rxtstamp)(struct dsa_switch *, int, struct sk_buff *, unsigned int); + int (*devlink_param_get)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); + int (*devlink_param_set)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); + int (*devlink_info_get)(struct dsa_switch *, struct devlink_info_req *, struct netlink_ext_ack *); + int (*devlink_sb_pool_get)(struct dsa_switch *, unsigned int, u16, struct devlink_sb_pool_info *); + int (*devlink_sb_pool_set)(struct dsa_switch *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *); + int (*devlink_sb_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *); + int (*devlink_sb_port_pool_set)(struct dsa_switch *, int, unsigned int, u16, u32, struct netlink_ext_ack *); + int (*devlink_sb_tc_pool_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *); + int (*devlink_sb_tc_pool_bind_set)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *); + int (*devlink_sb_occ_snapshot)(struct dsa_switch *, unsigned int); + int (*devlink_sb_occ_max_clear)(struct dsa_switch *, unsigned int); + int (*devlink_sb_occ_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *, u32 *); + int (*devlink_sb_occ_tc_port_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *); + int (*port_change_mtu)(struct dsa_switch *, int, int); + int (*port_max_mtu)(struct dsa_switch *, int); + int (*port_lag_change)(struct dsa_switch *, int); + int (*port_lag_join)(struct dsa_switch *, int, struct dsa_lag, struct netdev_lag_upper_info *, struct netlink_ext_ack *); + int (*port_lag_leave)(struct dsa_switch *, int, struct dsa_lag); + int (*port_hsr_join)(struct dsa_switch *, int, struct net_device *, struct netlink_ext_ack *); + int (*port_hsr_leave)(struct dsa_switch *, int, struct net_device *); + int (*port_mrp_add)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); + int (*port_mrp_del)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); + int (*port_mrp_add_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); + int (*port_mrp_del_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); + int (*tag_8021q_vlan_add)(struct dsa_switch *, int, u16, u16); + int (*tag_8021q_vlan_del)(struct dsa_switch *, int, u16); + void (*conduit_state_change)(struct dsa_switch *, const struct net_device *, bool); }; -typedef bool (*dma_filter_fn)(struct dma_chan *, void *); - -struct dma_slave_map; - -struct dma_filter { - dma_filter_fn fn; - int mapcnt; - const struct dma_slave_map *map; +struct fixed_phy_status { + int link; + int speed; + int duplex; + int pause; + int asym_pause; }; -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_slave_config; +struct phylink_link_state { + unsigned long advertising[4]; + unsigned long lp_advertising[4]; + phy_interface_t interface; + int speed; + int duplex; + int pause; + int rate_matching; + unsigned int link: 1; + unsigned int an_complete: 1; +}; -struct dma_tx_state; +struct phylink_pcs_ops; -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 phylink_pcs { + const struct phylink_pcs_ops *ops; + struct phylink *phylink; + bool neg_mode; + bool poll; }; -struct dma_slave_map { - const char *devname; - const char *slave; - void *param; +struct phylink_pcs_ops { + int (*pcs_validate)(struct phylink_pcs *, unsigned long *, const struct phylink_link_state *); + int (*pcs_enable)(struct phylink_pcs *); + void (*pcs_disable)(struct phylink_pcs *); + void (*pcs_pre_config)(struct phylink_pcs *, phy_interface_t); + int (*pcs_post_config)(struct phylink_pcs *, phy_interface_t); + void (*pcs_get_state)(struct phylink_pcs *, struct phylink_link_state *); + int (*pcs_config)(struct phylink_pcs *, unsigned int, phy_interface_t, const unsigned long *, bool); + void (*pcs_an_restart)(struct phylink_pcs *); + void (*pcs_link_up)(struct phylink_pcs *, unsigned int, phy_interface_t, int, int); }; -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 dma_async_tx_descriptor *next; - struct dma_async_tx_descriptor *parent; - spinlock_t lock; +struct netdev_notifier_info { + struct net_device *dev; + struct netlink_ext_ack *extack; }; -struct dmaengine_result { - enum dmaengine_tx_result result; - u32 residue; +struct netdev_notifier_changeupper_info { + struct netdev_notifier_info info; + struct net_device *upper_dev; + bool master; + bool linking; + void *upper_info; }; -struct dmaengine_unmap_data { - u16 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 dsa_bridge { + struct net_device *dev; + unsigned int num; + bool tx_fwd_offload; + refcount_t refcount; }; -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 switchdev_mst_state { + u16 msti; + u8 state; }; -struct data_chunk { - size_t size; - size_t icg; - size_t dst_icg; - size_t src_icg; +struct switchdev_brport_flags { + unsigned long val; + unsigned long mask; }; -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]; +enum switchdev_obj_id { + SWITCHDEV_OBJ_ID_UNDEFINED = 0, + SWITCHDEV_OBJ_ID_PORT_VLAN = 1, + SWITCHDEV_OBJ_ID_PORT_MDB = 2, + SWITCHDEV_OBJ_ID_HOST_MDB = 3, + SWITCHDEV_OBJ_ID_MRP = 4, + SWITCHDEV_OBJ_ID_RING_TEST_MRP = 5, + SWITCHDEV_OBJ_ID_RING_ROLE_MRP = 6, + SWITCHDEV_OBJ_ID_RING_STATE_MRP = 7, + SWITCHDEV_OBJ_ID_IN_TEST_MRP = 8, + SWITCHDEV_OBJ_ID_IN_ROLE_MRP = 9, + SWITCHDEV_OBJ_ID_IN_STATE_MRP = 10, }; -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 switchdev_obj { + struct list_head list; + struct net_device *orig_dev; + enum switchdev_obj_id id; + u32 flags; + void *complete_priv; + void (*complete)(struct net_device *, int, 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; +struct switchdev_obj_port_vlan { + struct switchdev_obj obj; + u16 flags; + u16 vid; + bool changed; }; -struct dma_tx_state { - dma_cookie_t last; - dma_cookie_t used; - u32 residue; - u32 in_flight_bytes; +struct switchdev_vlan_msti { + u16 vid; + u16 msti; }; -struct dma_chan_dev { - struct dma_chan *chan; - long: 32; - struct device device; - int dev_id; - bool chan_dma_dev; +enum dsa_db_type { + DSA_DB_PORT = 0, + DSA_DB_LAG = 1, + DSA_DB_BRIDGE = 2, }; -struct dma_chan_percpu { - unsigned long memcpy_count; - unsigned long bytes_transferred; +struct dsa_db { + enum dsa_db_type type; + union { + const struct dsa_port *dp; + struct dsa_lag lag; + struct dsa_bridge bridge; + }; }; -struct dma_router { - struct device *dev; - void (*route_free)(struct device *, void *); +struct switchdev_obj_port_mdb { + struct switchdev_obj obj; + unsigned char addr[6]; + u16 vid; }; -struct idmac_tx_desc { - struct dma_async_tx_descriptor txd; - struct scatterlist *sg; - unsigned int sg_len; - struct list_head list; +struct flow_cls_common_offload { + u32 chain_index; + __be16 protocol; + u32 prio; + struct netlink_ext_ack *extack; }; -struct mx3fb_data { - struct fb_info *fbi; - int backlight_level; - void *reg_base; - spinlock_t lock; - struct device *dev; - struct backlight_device *bl; - uint32_t h_start_width; - uint32_t v_start_width; - enum disp_data_mapping disp_data_fmt; +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, }; -struct mx3fb_platform_data { - struct device *dma_dev; - const char *name; - const struct fb_videomode *mode; - int num_modes; - enum disp_data_mapping disp_data_fmt; +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, }; -struct mx3fb_info { - int blank; - enum ipu_channel ipu_ch; - uint32_t cur_ipu_buf; - u32 pseudo_palette[16]; - struct completion flip_cmpl; - struct mutex mutex; - struct mx3fb_data *mx3fb; - struct idmac_channel *idmac_channel; - struct dma_async_tx_descriptor *txd; - dma_cookie_t cookie; - struct scatterlist sg[2]; - struct fb_var_screeninfo cur_var; +struct flow_stats { + u64 pkts; + u64 bytes; + u64 drops; + u64 lastused; + enum flow_action_hw_stats used_hw_stats; + bool used_hw_stats_valid; }; -typedef u16 uint16_t; +struct flow_rule; -struct ipu_di_signal_cfg { - unsigned int datamask_en: 1; - unsigned int clksel_en: 1; - unsigned int clkidle_en: 1; - unsigned int data_pol: 1; - unsigned int clk_pol: 1; - unsigned int enable_pol: 1; - unsigned int Hsync_pol: 1; - unsigned int Vsync_pol: 1; +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; + long: 32; }; -typedef s16 int16_t; +struct flow_dissector; -struct dma_chan_request { - struct mx3fb_data *mx3fb; - enum ipu_channel id; +struct flow_match { + struct flow_dissector *dissector; + void *mask; + void *key; }; -typedef __kernel_long_t __kernel_off_t; - -typedef __kernel_off_t off_t; - -struct clk_hw; - -struct clk_rate_request; +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, +}; -struct clk_duty; +typedef void (*action_destr)(void *); -struct clk_ops { - int (*prepare)(struct clk_hw *); - void (*unprepare)(struct clk_hw *); - int (*is_prepared)(struct clk_hw *); - void (*unprepare_unused)(struct clk_hw *); - int (*enable)(struct clk_hw *); - void (*disable)(struct clk_hw *); - int (*is_enabled)(struct clk_hw *); - void (*disable_unused)(struct clk_hw *); - int (*save_context)(struct clk_hw *); - void (*restore_context)(struct clk_hw *); - unsigned long (*recalc_rate)(struct clk_hw *, unsigned long); - long (*round_rate)(struct clk_hw *, unsigned long, unsigned long *); - int (*determine_rate)(struct clk_hw *, struct clk_rate_request *); - int (*set_parent)(struct clk_hw *, u8); - u8 (*get_parent)(struct clk_hw *); - int (*set_rate)(struct clk_hw *, unsigned long, unsigned long); - int (*set_rate_and_parent)(struct clk_hw *, unsigned long, unsigned long, u8); - unsigned long (*recalc_accuracy)(struct clk_hw *, unsigned long); - int (*get_phase)(struct clk_hw *); - int (*set_phase)(struct clk_hw *, int); - int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *); - int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *); - int (*init)(struct clk_hw *); - void (*terminate)(struct clk_hw *); - void (*debug_init)(struct clk_hw *, struct dentry *); +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, }; -struct clk_core; - -struct clk_init_data; +struct psample_group; -struct clk_hw { - struct clk_core *core; - struct clk *clk; - const struct clk_init_data *init; -}; +struct nf_flowtable; -struct clk_parent_data; +struct action_gate_entry; -struct clk_init_data { - const char *name; - const struct clk_ops *ops; - const char * const *parent_names; - const struct clk_parent_data *parent_data; - const struct clk_hw **parent_hws; - u8 num_parents; - unsigned long flags; -}; +struct ip_tunnel_info; -struct clk_parent_data { - const struct clk_hw *hw; - const char *fw_name; - const char *name; - int index; -}; +struct flow_action_cookie; -struct clk_rate_request { - struct clk_core *core; - unsigned long rate; - unsigned long min_rate; - unsigned long max_rate; - unsigned long best_parent_rate; - struct clk_hw *best_parent_hw; +struct flow_action_entry { + enum flow_action_id id; + u32 hw_index; + unsigned long cookie; + long: 32; + u64 miss_cookie; + enum flow_action_hw_stats hw_stats; + action_destr destructor; + void *destructor_priv; + long: 32; + 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; + long: 32; + 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; + long: 32; + } 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; + long: 32; + 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; + long: 32; }; -struct clk_duty { - unsigned int num; - unsigned int den; +struct flow_action { + unsigned int num_entries; + long: 32; + struct flow_action_entry entries[0]; }; -struct clk_mux { - struct clk_hw hw; - void *reg; - const u32 *table; - u32 mask; - u8 shift; - u8 flags; - spinlock_t *lock; +struct flow_rule { + struct flow_match match; + long: 32; + struct flow_action action; }; -struct clk_div_table; - -struct clk_divider { - struct clk_hw hw; - void *reg; - u8 shift; - u8 width; - u8 flags; - const struct clk_div_table *table; - spinlock_t *lock; +struct flow_dissector { + unsigned long long used_keys; + unsigned short offset[33]; + long: 32; }; -struct clk_div_table { - unsigned int val; - unsigned int div; +struct flow_action_cookie { + u32 cookie_len; + u8 cookie[0]; }; -struct clk_gate { - struct clk_hw hw; - void *reg; - u8 bit_idx; - u8 flags; - spinlock_t *lock; +struct dsa_mall_mirror_tc_entry { + u8 to_local_port; + bool ingress; }; -enum imx_pllv1_type { - IMX_PLLV1_IMX1 = 0, - IMX_PLLV1_IMX21 = 1, - IMX_PLLV1_IMX25 = 2, - IMX_PLLV1_IMX27 = 3, - IMX_PLLV1_IMX31 = 4, - IMX_PLLV1_IMX35 = 5, +struct dsa_mall_policer_tc_entry { + u32 burst; + long: 32; + u64 rate_bytes_per_sec; }; -struct clk_pllv1 { - struct clk_hw hw; - void *base; - enum imx_pllv1_type type; +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, }; -struct clk_psc_data; - -struct clk_psc { - struct clk_hw hw; - struct clk_psc_data *psc_data; - spinlock_t *lock; +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 clk_psc_data { - void *control_base; - void *domain_base; - u32 domain_id; +struct netdev_lag_upper_info { + enum netdev_lag_tx_type tx_type; + enum netdev_lag_hash hash_type; }; -struct mtk_pll_div_table; - -struct mtk_pll_data { - int id; - const char *name; - u32 reg; - u32 pwr_reg; - u32 en_mask; - u32 pd_reg; - u32 tuner_reg; - u32 tuner_en_reg; - u8 tuner_en_bit; - int pd_shift; - unsigned int flags; - const struct clk_ops *ops; - u32 rst_bar_mask; - unsigned long fmin; - unsigned long fmax; - int pcwbits; - int pcwibits; - u32 pcw_reg; - int pcw_shift; - u32 pcw_chg_reg; - const struct mtk_pll_div_table *div_table; - const char *parent_name; - u32 en_reg; - u8 pll_en_bit; +union devlink_param_value { + u8 vu8; + u16 vu16; + u32 vu32; + char vstr[32]; + bool vbool; }; -struct mtk_pll_div_table { - u32 div; - unsigned long freq; +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 clk_hw_onecell_data { - unsigned int num; - struct clk_hw *hws[0]; +struct devlink_param_gset_ctx { + union devlink_param_value val; + enum devlink_param_cmode cmode; }; -struct coreclk_ratio; - -struct coreclk_soc_desc { - u32 (*get_tclk_freq)(void *); - u32 (*get_cpu_freq)(void *); - void (*get_clk_ratio)(void *, int, int *, int *); - u32 (*get_refclk_freq)(void *); - bool (*is_sscg_enabled)(void *); - u32 (*fix_sscg_deviation)(u32); - const struct coreclk_ratio *ratios; - int num_ratios; +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 coreclk_ratio { - int id; - const char *name; +struct switchdev_obj_mrp { + struct switchdev_obj obj; + struct net_device *p_port; + struct net_device *s_port; + u32 ring_id; + u16 prio; }; -struct clk_gating_soc_desc { - const char *name; - const char *parent; - int bit_idx; - unsigned long flags; +struct switchdev_obj_ring_role_mrp { + struct switchdev_obj obj; + u8 ring_role; + u32 ring_id; + u8 sw_backup; }; -enum { - A380_CPU_TO_DDR = 0, - A380_CPU_TO_L2 = 1, +enum devlink_port_fn_state { + DEVLINK_PORT_FN_STATE_INACTIVE = 0, + DEVLINK_PORT_FN_STATE_ACTIVE = 1, }; -struct pm_domain_data { - struct list_head list_node; - struct device *dev; +enum devlink_port_fn_opstate { + DEVLINK_PORT_FN_OPSTATE_DETACHED = 0, + DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1, }; -struct clk_regmap; - -struct qcom_reset_map; - -struct gdsc; - -struct qcom_cc_desc { - const struct regmap_config *config; - struct clk_regmap **clks; - size_t num_clks; - const struct qcom_reset_map *resets; - size_t num_resets; - struct gdsc **gdscs; - size_t num_gdscs; - struct clk_hw **clk_hws; - size_t num_clk_hws; +struct devlink_port_ops { + int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *); + int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_type_set)(struct devlink_port *, enum devlink_port_type); + int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); + int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); + int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_set)(struct devlink_port *, bool, struct netlink_ext_ack *); }; -struct clk_regmap { - struct clk_hw hw; - struct regmap *regmap; - unsigned int enable_reg; - unsigned int enable_mask; - bool enable_is_inverted; +enum devlink_rate_type { + DEVLINK_RATE_TYPE_LEAF = 0, + DEVLINK_RATE_TYPE_NODE = 1, }; -struct qcom_reset_map { - unsigned int reg; - u8 bit; - u8 udelay; - u32 bitmask; +struct devlink_rate { + struct list_head list; + enum devlink_rate_type type; + struct devlink *devlink; + void *priv; + long: 32; + 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; + long: 32; }; -enum gpd_status { - GENPD_STATE_ON = 0, - GENPD_STATE_OFF = 1, +struct bgmac_stat { + u8 size; + u32 offset; + const char *name; }; -struct gpd_dev_ops { - int (*start)(struct device *); - int (*stop)(struct device *); +enum bcma_hosttype { + BCMA_HOSTTYPE_PCI = 0, + BCMA_HOSTTYPE_SDIO = 1, + BCMA_HOSTTYPE_SOC = 2, }; -struct dev_power_governor; - -struct genpd_governor_data; - -struct opp_table; - -struct dev_pm_opp; - -struct genpd_power_state; - -struct genpd_lock_ops; - -struct generic_pm_domain { - struct device dev; - struct dev_pm_domain domain; - struct list_head gpd_list_node; - struct list_head parent_links; - struct list_head child_links; - struct list_head dev_list; - struct dev_power_governor *gov; - struct genpd_governor_data *gd; - struct work_struct power_off_work; - struct fwnode_handle *provider; - bool has_provider; - const char *name; - atomic_t sd_count; - enum gpd_status status; - unsigned int device_count; - unsigned int suspended_count; - unsigned int prepared_count; - unsigned int performance_state; - cpumask_var_t cpus; - bool synced_poweroff; - int (*power_off)(struct generic_pm_domain *); - int (*power_on)(struct generic_pm_domain *); - struct raw_notifier_head power_notifiers; - struct opp_table *opp_table; - unsigned int (*opp_to_performance_state)(struct generic_pm_domain *, struct dev_pm_opp *); - int (*set_performance_state)(struct generic_pm_domain *, unsigned int); - struct gpd_dev_ops dev_ops; - int (*attach_dev)(struct generic_pm_domain *, struct device *); - void (*detach_dev)(struct generic_pm_domain *, struct device *); - unsigned int flags; - struct genpd_power_state *states; - void (*free_states)(struct genpd_power_state *, unsigned int); - unsigned int state_count; - unsigned int state_idx; - u64 on_time; - u64 accounting_time; - const struct genpd_lock_ops *lock_ops; - union { - struct mutex mlock; - struct { - spinlock_t slock; - unsigned long lock_flags; - }; - }; +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, }; -struct reset_controller_dev; +enum netdev_queue_state_t { + __QUEUE_STATE_DRV_XOFF = 0, + __QUEUE_STATE_STACK_XOFF = 1, + __QUEUE_STATE_FROZEN = 2, +}; -struct gdsc { - struct generic_pm_domain pd; - struct generic_pm_domain *parent; - struct regmap *regmap; - unsigned int gdscr; - unsigned int collapse_ctrl; - unsigned int collapse_mask; - unsigned int gds_hw_ctrl; - unsigned int clamp_io_ctrl; - unsigned int *cxcs; - unsigned int cxc_count; - unsigned int en_rest_wait_val; - unsigned int en_few_wait_val; - unsigned int clk_dis_wait_val; - const u8 pwrsts; - const u16 flags; - struct reset_controller_dev *rcdev; - unsigned int *resets; - unsigned int reset_count; - const char *supply; - struct regulator *rsupply; +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, }; -struct dev_power_governor { - bool (*power_down_ok)(struct dev_pm_domain *); - bool (*suspend_ok)(struct device *); +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, }; -struct genpd_governor_data { - s64 max_off_time_ns; - bool max_off_time_changed; - long: 32; - ktime_t next_wakeup; - ktime_t next_hrtimer; - bool cached_power_down_ok; - bool cached_power_down_state_idx; - long: 32; +enum bgmac_dma_ring_type { + BGMAC_DMA_RING_TX = 0, + BGMAC_DMA_RING_RX = 1, }; -struct genpd_power_state { - s64 power_off_latency_ns; - s64 power_on_latency_ns; - s64 residency_ns; - u64 usage; - u64 rejected; - struct fwnode_handle *fwnode; - long: 32; - u64 idle_time; - void *data; - long: 32; +enum gro_result { + GRO_MERGED = 0, + GRO_MERGED_FREE = 1, + GRO_HELD = 2, + GRO_NORMAL = 3, + GRO_CONSUMED = 4, }; -struct genpd_lock_ops { - void (*lock)(struct generic_pm_domain *); - void (*lock_nested)(struct generic_pm_domain *, int); - int (*lock_interruptible)(struct generic_pm_domain *); - void (*unlock)(struct generic_pm_domain *); +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 reset_control_ops; +typedef struct bio_vec skb_frag_t; -struct reset_controller_dev { - const struct reset_control_ops *ops; - struct module *owner; +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; + long: 32; + 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 gro_list { struct list_head list; - struct list_head reset_control_head; - struct device *dev; - struct device_node *of_node; - int of_reset_n_cells; - int (*of_xlate)(struct reset_controller_dev *, const struct of_phandle_args *); - unsigned int nr_resets; + int count; }; -struct reset_control_ops { - int (*reset)(struct reset_controller_dev *, unsigned long); - int (*assert)(struct reset_controller_dev *, unsigned long); - int (*deassert)(struct reset_controller_dev *, unsigned long); - int (*status)(struct reset_controller_dev *, unsigned long); +struct napi_struct { + struct list_head poll_list; + unsigned long state; + int weight; + int defer_hard_irqs_count; + unsigned long gro_bitmask; + int (*poll)(struct napi_struct *, int); + int list_owner; + struct net_device *dev; + struct gro_list gro_hash[8]; + struct sk_buff *skb; + struct list_head rx_list; + int rx_count; + unsigned int napi_id; + struct hrtimer timer; + struct task_struct *thread; + struct list_head dev_list; + struct hlist_node napi_hash_node; + long: 32; }; -struct parent_map; +struct bgmac_slot_info { + union { + struct sk_buff *skb; + void *buf; + }; + dma_addr_t dma_addr; +}; -struct freq_tbl; +struct bgmac_dma_desc; -struct clk_rcg2 { - u32 cmd_rcgr; - u8 mnd_width; - u8 hid_width; - u8 safe_src_index; - const struct parent_map *parent_map; - const struct freq_tbl *freq_tbl; - struct clk_regmap clkr; - u8 cfg_off; - u32 parked_cfg; - bool hw_clk_ctrl; +struct bgmac_dma_ring { + u32 start; + u32 end; + struct bgmac_dma_desc *cpu_base; + dma_addr_t dma_base; + u32 index_base; + u16 mmio_base; + bool unaligned; + struct bgmac_slot_info slots[512]; }; -struct parent_map { - u8 src; - u8 cfg; +struct bcma_device; + +struct bgmac { + union { + struct { + void *base; + void *idm_base; + void *nicpm_base; + } plat; + struct { + struct bcma_device *core; + struct bcma_device *cmn; + } bcma; + }; + struct device *dev; + struct device *dma_dev; + u32 feature_flags; + struct net_device *net_dev; + long: 32; + struct napi_struct napi; + struct mii_bus *mii_bus; + struct bgmac_dma_ring tx_ring[4]; + struct bgmac_dma_ring rx_ring[1]; + bool stats_grabbed; + u32 mib_tx_regs[43]; + u32 mib_rx_regs[31]; + int irq; + u32 int_mask; + bool in_init; + int mac_speed; + int mac_duplex; + u8 phyaddr; + bool has_robosw; + bool loopback; + u32 (*read)(struct bgmac *, u16); + void (*write)(struct bgmac *, u16, u32); + u32 (*idm_read)(struct bgmac *, u16); + void (*idm_write)(struct bgmac *, u16, u32); + bool (*clk_enabled)(struct bgmac *); + void (*clk_enable)(struct bgmac *, u32); + void (*cco_ctl_maskset)(struct bgmac *, u32, u32, u32); + u32 (*get_bus_clock)(struct bgmac *); + void (*cmn_maskset32)(struct bgmac *, u16, u32, u32); + int (*phy_connect)(struct bgmac *); }; -struct freq_tbl { - unsigned long freq; - u8 src; - u8 pre_div; - u16 m; - u16 n; +struct bcma_device_id { + __u16 manuf; + __u16 id; + __u8 rev; + __u8 class; }; -struct pll_freq_tbl; +struct bcma_bus; -struct clk_pll { - u32 l_reg; - u32 m_reg; - u32 n_reg; - u32 config_reg; - u32 mode_reg; - u32 status_reg; - u8 status_bit; - u8 post_div_width; - u8 post_div_shift; - const struct pll_freq_tbl *freq_tbl; - struct clk_regmap clkr; +struct bcma_device { + struct bcma_bus *bus; + struct bcma_device_id id; + long: 32; + struct device dev; + struct device *dma_dev; + unsigned int irq; + bool dev_registered; + u8 core_index; + u8 core_unit; + u32 addr; + u32 addr_s[8]; + u32 wrap; + void *io_addr; + void *io_wrap; + void *drvdata; + struct list_head list; }; -struct pll_freq_tbl { - unsigned long freq; - u16 l; - u16 m; - u16 n; - u32 ibits; +struct bcma_chipinfo { + u16 id; + u8 rev; + u8 pkg; }; -struct clk_branch { - u32 hwcg_reg; - u32 halt_reg; - u8 hwcg_bit; - u8 halt_bit; - u8 halt_check; - struct clk_regmap clkr; +struct bcma_boardinfo { + u16 vendor; + u16 type; }; -struct pll_config { - u16 l; - u32 m; - u32 n; - u32 vco_val; - u32 vco_mask; - u32 pre_div_val; - u32 pre_div_mask; - u32 post_div_val; - u32 post_div_mask; - u32 mn_ena_mask; - u32 main_output_mask; - u32 aux_output_mask; +struct bcma_chipcommon_pmu { + struct bcma_device *core; + u8 rev; + u32 crystalfreq; }; -struct pll_rate_tbl; - -struct clk_vco { - struct clk_hw hw; - void *mode_reg; - void *cfg_reg; - struct pll_rate_tbl *rtbl; - u8 rtbl_cnt; - spinlock_t *lock; +struct bcma_sflash { + bool present; + u32 blocksize; + u16 numblocks; + u32 size; }; -struct pll_rate_tbl { - u8 mode; - u16 m; - u8 n; - u8 p; +struct bcma_drv_cc { + struct bcma_device *core; + u32 status; + u32 capabilities; + u32 capabilities_ext; + u8 setup_done: 1; + u8 early_setup_done: 1; + u16 fast_pwrup_delay; + struct bcma_chipcommon_pmu pmu; + struct bcma_sflash sflash; + u32 ticks_per_ms; + struct platform_device *watchdog; + spinlock_t gpio_lock; + struct gpio_chip gpio; }; -struct clk_pll___2 { - struct clk_hw hw; - struct clk_vco *vco; - const char *parent[1]; - spinlock_t *lock; +struct bcma_drv_cc_b { + struct bcma_device *core; + u8 setup_done: 1; + void *mii; }; -typedef unsigned long (*clk_calc_rate)(struct clk_hw *, unsigned long, int); - -struct clk_multiplier { - struct clk_hw hw; - void *reg; - u8 shift; - u8 width; - u8 flags; - spinlock_t *lock; +struct bcma_drv_pci { + struct bcma_device *core; + u8 early_setup_done: 1; + u8 setup_done: 1; + u8 hostmode: 1; }; -struct ccu_div_internal { - u8 shift; - u8 width; - u32 max; - u32 offset; - u32 flags; - struct clk_div_table *table; +struct bcma_drv_pcie2 { + struct bcma_device *core; + u16 reqsize; }; -struct ccu_mux_fixed_prediv; - -struct ccu_mux_var_prediv; +struct bcma_drv_mips { + struct bcma_device *core; + u8 setup_done: 1; + u8 early_setup_done: 1; +}; -struct ccu_mux_internal { - u8 shift; - u8 width; - const u8 *table; - const struct ccu_mux_fixed_prediv *fixed_predivs; - u8 n_predivs; - const struct ccu_mux_var_prediv *var_predivs; - u8 n_var_predivs; +struct bcma_drv_gmac_cmn { + struct bcma_device *core; + struct mutex phy_mutex; }; -struct ccu_common { - void *base; - u16 reg; - u16 lock_reg; - u32 prediv; - unsigned long features; - spinlock_t *lock; - struct clk_hw hw; +struct ssb_sprom_core_pwr_info { + u8 itssi_2g; + u8 itssi_5g; + u8 maxpwr_2g; + u8 maxpwr_5gl; + u8 maxpwr_5g; + u8 maxpwr_5gh; + u16 pa_2g[4]; + u16 pa_5gl[4]; + u16 pa_5g[4]; + u16 pa_5gh[4]; }; -struct ccu_mp { - u32 enable; - struct ccu_div_internal m; - struct ccu_div_internal p; - struct ccu_mux_internal mux; - unsigned int fixed_post_div; - struct ccu_common common; +struct ssb_sprom { + u8 revision; + short: 0; + u8 il0mac[6]; + u8 et0mac[6]; + u8 et1mac[6]; + u8 et2mac[6]; + u8 et0phyaddr; + u8 et1phyaddr; + u8 et2phyaddr; + u8 et0mdcport; + u8 et1mdcport; + u8 et2mdcport; + u16 dev_id; + u16 board_rev; + u16 board_num; + u16 board_type; + u8 country_code; + char alpha2[2]; + u8 leddc_on_time; + u8 leddc_off_time; + u8 ant_available_a; + u8 ant_available_bg; + u16 pa0b0; + u16 pa0b1; + u16 pa0b2; + u16 pa1b0; + u16 pa1b1; + u16 pa1b2; + u16 pa1lob0; + u16 pa1lob1; + u16 pa1lob2; + u16 pa1hib0; + u16 pa1hib1; + u16 pa1hib2; + u8 gpio0; + u8 gpio1; + u8 gpio2; + u8 gpio3; + u8 maxpwr_bg; + u8 maxpwr_al; + u8 maxpwr_a; + u8 maxpwr_ah; + u8 itssi_a; + u8 itssi_bg; + u8 tri2g; + u8 tri5gl; + u8 tri5g; + u8 tri5gh; + u8 txpid2g[4]; + u8 txpid5gl[4]; + u8 txpid5g[4]; + u8 txpid5gh[4]; + s8 rxpo2g; + s8 rxpo5g; + u8 rssisav2g; + u8 rssismc2g; + u8 rssismf2g; + u8 bxa2g; + u8 rssisav5g; + u8 rssismc5g; + u8 rssismf5g; + u8 bxa5g; + u16 cck2gpo; + u32 ofdm2gpo; + u32 ofdm5glpo; + u32 ofdm5gpo; + u32 ofdm5ghpo; + u32 boardflags; + u32 boardflags2; + u32 boardflags3; + u16 boardflags_lo; + u16 boardflags_hi; + u16 boardflags2_lo; + u16 boardflags2_hi; + struct ssb_sprom_core_pwr_info core_pwr_info[4]; + struct { + s8 a0; + s8 a1; + s8 a2; + s8 a3; + } antenna_gain; + struct { + struct { + u8 tssipos; + u8 extpa_gain; + u8 pdet_range; + u8 tr_iso; + u8 antswlut; + } ghz2; + struct { + u8 tssipos; + u8 extpa_gain; + u8 pdet_range; + u8 tr_iso; + u8 antswlut; + } ghz5; + } fem; + u16 mcs2gpo[8]; + u16 mcs5gpo[8]; + u16 mcs5glpo[8]; + u16 mcs5ghpo[8]; + u8 opo; + u8 rxgainerr2ga[3]; + u8 rxgainerr5gla[3]; + u8 rxgainerr5gma[3]; + u8 rxgainerr5gha[3]; + u8 rxgainerr5gua[3]; + u8 noiselvl2ga[3]; + u8 noiselvl5gla[3]; + u8 noiselvl5gma[3]; + u8 noiselvl5gha[3]; + u8 noiselvl5gua[3]; + u8 regrev; + u8 txchain; + u8 rxchain; + u8 antswitch; + u16 cddpo; + u16 stbcpo; + u16 bw40po; + u16 bwduppo; + u8 tempthresh; + u8 tempoffset; + u16 rawtempsense; + u8 measpower; + u8 tempsense_slope; + u8 tempcorrx; + u8 tempsense_option; + u8 freqoffset_corr; + u8 iqcal_swp_dis; + u8 hw_iqcal_en; + u8 elna2g; + u8 elna5g; + u8 phycal_tempdelta; + u8 temps_period; + u8 temps_hysteresis; + u8 measpower1; + u8 measpower2; + u8 pcieingress_war; + u16 cckbw202gpo; + u16 cckbw20ul2gpo; + u32 legofdmbw202gpo; + u32 legofdmbw20ul2gpo; + u32 legofdmbw205glpo; + u32 legofdmbw20ul5glpo; + u32 legofdmbw205gmpo; + u32 legofdmbw20ul5gmpo; + u32 legofdmbw205ghpo; + u32 legofdmbw20ul5ghpo; + u32 mcsbw202gpo; + u32 mcsbw20ul2gpo; + u32 mcsbw402gpo; + u32 mcsbw205glpo; + u32 mcsbw20ul5glpo; + u32 mcsbw405glpo; + u32 mcsbw205gmpo; + u32 mcsbw20ul5gmpo; + u32 mcsbw405gmpo; + u32 mcsbw205ghpo; + u32 mcsbw20ul5ghpo; + u32 mcsbw405ghpo; + u16 mcs32po; + u16 legofdm40duppo; + u8 sar2g; + u8 sar5g; }; -struct ccu_mux_fixed_prediv { - u8 index; - u16 div; +struct bcma_host_ops; + +struct bcma_bus { + struct device *dev; + void *mmio; + const struct bcma_host_ops *ops; + enum bcma_hosttype hosttype; + bool host_is_pcie2; + struct pci_dev *host_pci; + struct bcma_chipinfo chipinfo; + struct bcma_boardinfo boardinfo; + struct bcma_device *mapped_core; + struct list_head cores; + u8 nr_cores; + u8 num; + struct bcma_drv_cc drv_cc; + struct bcma_drv_cc_b drv_cc_b; + struct bcma_drv_pci drv_pci[2]; + struct bcma_drv_pcie2 drv_pcie2; + struct bcma_drv_mips drv_mips; + struct bcma_drv_gmac_cmn drv_gmac_cmn; + struct ssb_sprom sprom; }; -struct ccu_mux_var_prediv { - u8 index; - u8 shift; - u8 width; +struct bcma_host_ops { + u8 (*read8)(struct bcma_device *, u16); + u16 (*read16)(struct bcma_device *, u16); + u32 (*read32)(struct bcma_device *, u16); + void (*write8)(struct bcma_device *, u16, u8); + void (*write16)(struct bcma_device *, u16, u16); + void (*write32)(struct bcma_device *, u16, u32); + u32 (*aread32)(struct bcma_device *, u16); + void (*awrite32)(struct bcma_device *, u16, u32); }; -struct div_nmp { - u8 divn_shift; - u8 divn_width; - u8 divm_shift; - u8 divm_width; - u8 divp_shift; - u8 divp_width; - u8 override_divn_shift; - u8 override_divm_shift; - u8 override_divp_shift; +struct bgmac_dma_desc { + __le32 ctl0; + __le32 ctl1; + __le32 addr_low; + __le32 addr_high; }; -struct utmi_clk_param { - u32 osc_frequency; - u8 enable_delay_count; - u8 stable_count; - u8 active_delay_count; - u8 xtal_freq_count; +struct bgmac_rx_header { + __le16 len; + __le16 flags; + __le16 pad[12]; }; -struct tegra_clk_pll_params; +typedef enum gro_result gro_result_t; -struct tegra_clk_pll { - struct clk_hw hw; - void *clk_base; - void *pmc; - spinlock_t *lock; - struct tegra_clk_pll_params *params; +struct xdp_mem_info { + u32 type; + u32 id; }; -struct pdiv_map; +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 tegra_clk_pll_freq_table; +struct xdp_rxq_info; -struct tegra_clk_pll_params { - unsigned long input_min; - unsigned long input_max; - unsigned long cf_min; - unsigned long cf_max; - unsigned long vco_min; - unsigned long vco_max; - u32 base_reg; - u32 misc_reg; - u32 lock_reg; - u32 lock_mask; - u32 lock_enable_bit_idx; - u32 iddq_reg; - u32 iddq_bit_idx; - u32 reset_reg; - u32 reset_bit_idx; - u32 sdm_din_reg; - u32 sdm_din_mask; - u32 sdm_ctrl_reg; - u32 sdm_ctrl_en_mask; - u32 ssc_ctrl_reg; - u32 ssc_ctrl_en_mask; - u32 aux_reg; - u32 dyn_ramp_reg; - u32 ext_misc_reg[6]; - u32 pmc_divnm_reg; - u32 pmc_divp_reg; +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; - int stepa_shift; - int stepb_shift; - int lock_delay; - int max_p; - bool defaults_set; - const struct pdiv_map *pdiv_tohw; - struct div_nmp *div_nmp; - struct tegra_clk_pll_freq_table *freq_table; - unsigned long fixed_rate; - u16 mdiv_default; - u32 (*round_p_to_pdiv)(u32, u32 *); - void (*set_gain)(struct tegra_clk_pll_freq_table *); - int (*calc_rate)(struct clk_hw *, struct tegra_clk_pll_freq_table *, unsigned long, unsigned long); - unsigned long (*adjust_vco)(struct tegra_clk_pll_params *, unsigned long); - void (*set_defaults)(struct tegra_clk_pll *); - int (*dyn_ramp)(struct tegra_clk_pll *, struct tegra_clk_pll_freq_table *); - int (*pre_rate_change)(); - void (*post_rate_change)(); }; -struct pdiv_map { - u8 pdiv; - u8 hw_val; +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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct tegra_clk_pll_freq_table { - unsigned long input_rate; - unsigned long output_rate; - u32 n; - u32 m; - u8 p; - u8 cpcon; - u16 sdm_data; +struct xdp_txq_info { + struct net_device *dev; }; -struct clk_sysctrl { - struct clk_hw hw; - struct device *dev; - u8 parent_index; - u16 reg_sel[4]; - u8 reg_mask[4]; - u8 reg_bits[4]; - unsigned long rate; - unsigned long enable_delay_us; +struct xdp_md { + __u32 data; + __u32 data_end; + __u32 data_meta; + __u32 ingress_ifindex; + __u32 rx_queue_index; + __u32 egress_ifindex; }; -enum stm32_mdma_inc_mode { - STM32_MDMA_FIXED = 0, - STM32_MDMA_INC = 2, - STM32_MDMA_DEC = 3, +enum igb_tx_buf_type { + IGB_TYPE_SKB = 0, + IGB_TYPE_XDP = 1, }; -enum stm32_mdma_trigger_mode { - STM32_MDMA_BUFFER = 0, - STM32_MDMA_BLOCK = 1, - STM32_MDMA_BLOCK_REP = 2, - STM32_MDMA_LINKED_LIST = 3, +enum e1000_mac_type { + e1000_undefined = 0, + e1000_82575 = 1, + e1000_82576 = 2, + e1000_82580 = 3, + e1000_i350 = 4, + e1000_i354 = 5, + e1000_i210 = 6, + e1000_i211 = 7, + e1000_num_macs = 8, }; -enum { - TASKLET_STATE_SCHED = 0, - TASKLET_STATE_RUN = 1, +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, }; -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; +enum e1000_phy_type { + e1000_phy_unknown = 0, + e1000_phy_none = 1, + e1000_phy_m88 = 2, + e1000_phy_igp = 3, + e1000_phy_igp_2 = 4, + e1000_phy_gg82563 = 5, + e1000_phy_igp_3 = 6, + e1000_phy_ife = 7, + e1000_phy_82580 = 8, + e1000_phy_i210 = 9, + e1000_phy_bcm54616 = 10, }; -struct virt_dma_desc; - -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; +enum e1000_1000t_rx_status { + e1000_1000t_rx_status_not_ok = 0, + e1000_1000t_rx_status_ok = 1, + e1000_1000t_rx_status_undefined = 255, }; -struct stm32_mdma_chan_config { - u32 request; - u32 priority_level; - u32 transfer_config; - u32 mask_addr; - u32 mask_data; - bool m2m_hw; +enum e1000_ms_type { + e1000_ms_hw_default = 0, + e1000_ms_force_master = 1, + e1000_ms_force_slave = 2, + e1000_ms_auto = 3, }; -struct dma_pool; - -struct stm32_mdma_desc; - -struct stm32_mdma_chan { - struct virt_dma_chan vchan; - struct dma_pool *desc_pool; - u32 id; - struct stm32_mdma_desc *desc; - u32 curr_hwdesc; - struct dma_slave_config dma_config; - struct stm32_mdma_chan_config chan_config; - bool busy; - u32 mem_burst; - u32 mem_width; +enum e1000_rev_polarity { + e1000_rev_polarity_normal = 0, + e1000_rev_polarity_reversed = 1, + e1000_rev_polarity_undefined = 255, }; -struct virt_dma_desc { - struct dma_async_tx_descriptor tx; - struct dmaengine_result tx_result; - struct list_head node; +enum e1000_smart_speed { + e1000_smart_speed_default = 0, + e1000_smart_speed_on = 1, + e1000_smart_speed_off = 2, }; -struct stm32_mdma_hwdesc; - -struct stm32_mdma_desc_node { - struct stm32_mdma_hwdesc *hwdesc; - dma_addr_t hwdesc_phys; +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, }; -struct stm32_mdma_desc { - struct virt_dma_desc vdesc; - u32 ccr; - bool cyclic; - u32 count; - struct stm32_mdma_desc_node node[0]; +enum e1000_nvm_type { + e1000_nvm_unknown = 0, + e1000_nvm_none = 1, + e1000_nvm_eeprom_spi = 2, + e1000_nvm_flash_hw = 3, + e1000_nvm_invm = 4, + e1000_nvm_flash_sw = 5, }; -struct stm32_mdma_hwdesc { - u32 ctcr; - u32 cbndtr; - u32 csar; - u32 cdar; - u32 cbrur; - u32 clar; - u32 ctbr; - u32 dummy; - u32 cmar; - u32 cmdr; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +enum e1000_nvm_override { + e1000_nvm_override_none = 0, + e1000_nvm_override_spi_small = 1, + e1000_nvm_override_spi_large = 2, }; -struct stm32_mdma_device { - struct dma_device ddev; - void *base; - struct clk *clk; - int irq; - u32 nr_channels; - u32 nr_requests; - u32 nr_ahb_addr_masks; - u32 chan_reserved; - struct stm32_mdma_chan chan[32]; - u32 ahb_addr_masks[0]; +enum e1000_bus_type { + e1000_bus_type_unknown = 0, + e1000_bus_type_pci = 1, + e1000_bus_type_pcix = 2, + e1000_bus_type_pci_express = 3, + e1000_bus_type_reserved = 4, }; -struct stm32_mdma_dma_config { - u32 request; - u32 cmar; - u32 cmdr; +enum e1000_bus_speed { + e1000_bus_speed_unknown = 0, + e1000_bus_speed_33 = 1, + e1000_bus_speed_66 = 2, + e1000_bus_speed_100 = 3, + e1000_bus_speed_120 = 4, + e1000_bus_speed_133 = 5, + e1000_bus_speed_2500 = 6, + e1000_bus_speed_5000 = 7, + e1000_bus_speed_reserved = 8, }; -struct of_dma { - struct list_head of_dma_controllers; - struct device_node *of_node; - struct dma_chan * (*of_dma_xlate)(struct of_phandle_args *, struct of_dma *); - void * (*of_dma_route_allocate)(struct of_phandle_args *, struct of_dma *); - struct dma_router *dma_router; - void *of_dma_data; +enum e1000_bus_width { + e1000_bus_width_unknown = 0, + e1000_bus_width_pcie_x1 = 1, + e1000_bus_width_pcie_x2 = 2, + e1000_bus_width_pcie_x4 = 4, + e1000_bus_width_pcie_x8 = 8, + e1000_bus_width_32 = 9, + e1000_bus_width_64 = 10, + e1000_bus_width_reserved = 11, }; -struct qcom_smem_state_ops { - int (*update_bits)(void *, u32, u32); +struct ptp_extts_request { + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; }; -struct qcom_smp2p; - -struct qcom_smem_state; - -struct smp2p_entry { - struct list_head node; - struct qcom_smp2p *smp2p; - const char *name; - u32 *value; - u32 last_value; - struct irq_domain *domain; - unsigned long irq_enabled[1]; - unsigned long irq_rising[1]; - unsigned long irq_falling[1]; - struct qcom_smem_state *state; - spinlock_t lock; +struct ptp_clock_time { + __s64 sec; + __u32 nsec; + __u32 reserved; }; -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 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 smp2p_smem_item; +struct ptp_clock_request { + enum { + PTP_CLK_REQ_EXTTS = 0, + PTP_CLK_REQ_PEROUT = 1, + PTP_CLK_REQ_PPS = 2, + } type; + long: 32; + union { + struct ptp_extts_request extts; + struct ptp_perout_request perout; + }; +}; -struct mbox_chan; +enum ptp_pin_function { + PTP_PF_NONE = 0, + PTP_PF_EXTTS = 1, + PTP_PF_PEROUT = 2, + PTP_PF_PHYSYNC = 3, +}; -struct qcom_smp2p { - struct device *dev; - struct smp2p_smem_item *in; - struct smp2p_smem_item *out; - unsigned int smem_items[2]; - unsigned int valid_entries; - bool ssr_ack_enabled; - bool ssr_ack; - bool negotiation_done; - unsigned int local_pid; - unsigned int remote_pid; - struct regmap *ipc_regmap; - int ipc_offset; - int ipc_bit; - struct mbox_client mbox_client; - struct mbox_chan *mbox_chan; - struct list_head inbound; - struct list_head outbound; +enum e1000_state_t { + __IGB_TESTING = 0, + __IGB_RESETTING = 1, + __IGB_DOWN = 2, + __IGB_PTP_TX_IN_PROGRESS = 3, }; -struct smp2p_smem_item { - u32 magic; - u8 version; - unsigned int features: 24; - u16 local_pid; - u16 remote_pid; - u16 total_entries; - u16 valid_entries; - u32 flags; - struct { - u8 name[16]; - u32 value; - } entries[16]; +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, }; -struct module_version_attribute { - struct module_attribute mattr; - const char *module_name; - const char *version; +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 { - VP_MSIX_CONFIG_VECTOR = 0, - VP_MSIX_VQ_VECTOR = 1, + IPPROTO_IP = 0, + IPPROTO_ICMP = 1, + IPPROTO_IGMP = 2, + IPPROTO_IPIP = 4, + IPPROTO_TCP = 6, + IPPROTO_EGP = 8, + IPPROTO_PUP = 12, + IPPROTO_UDP = 17, + IPPROTO_IDP = 22, + IPPROTO_TP = 29, + IPPROTO_DCCP = 33, + IPPROTO_IPV6 = 41, + IPPROTO_RSVP = 46, + IPPROTO_GRE = 47, + IPPROTO_ESP = 50, + IPPROTO_AH = 51, + IPPROTO_MTP = 92, + IPPROTO_BEETPH = 94, + IPPROTO_ENCAP = 98, + IPPROTO_PIM = 103, + IPPROTO_COMP = 108, + IPPROTO_L2TP = 115, + IPPROTO_SCTP = 132, + IPPROTO_UDPLITE = 136, + IPPROTO_MPLS = 137, + IPPROTO_ETHERNET = 143, + IPPROTO_RAW = 255, + IPPROTO_MPTCP = 262, + IPPROTO_MAX = 263, }; -struct virtio_device; - -struct virtqueue { - struct list_head list; - void (*callback)(struct virtqueue *); - const char *name; - struct virtio_device *vdev; - unsigned int index; - unsigned int num_free; - unsigned int num_max; - bool reset; - void *priv; +enum tk_offsets { + TK_OFFS_REAL = 0, + TK_OFFS_BOOT = 1, + TK_OFFS_TAI = 2, + TK_OFFS_MAX = 3, }; -struct virtio_device_id { - __u32 device; - __u32 vendor; +struct msix_entry { + u32 vector; + u16 entry; }; -struct vringh_config_ops; - -struct virtio_config_ops; +struct e1000_hw; -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; - long: 32; +struct e1000_mac_operations { + s32 (*check_for_link)(struct e1000_hw *); + s32 (*reset_hw)(struct e1000_hw *); + s32 (*init_hw)(struct e1000_hw *); + bool (*check_mng_mode)(struct e1000_hw *); + s32 (*setup_physical_interface)(struct e1000_hw *); + void (*rar_set)(struct e1000_hw *, u8 *, u32); + s32 (*read_mac_addr)(struct e1000_hw *); + s32 (*get_speed_and_duplex)(struct e1000_hw *, u16 *, u16 *); + s32 (*acquire_swfw_sync)(struct e1000_hw *, u16); + void (*release_swfw_sync)(struct e1000_hw *, u16); + s32 (*get_thermal_sensor_data)(struct e1000_hw *); + s32 (*init_thermal_sensor_thresh)(struct e1000_hw *); + void (*write_vfta)(struct e1000_hw *, u32, u32); }; -typedef void vq_callback_t(struct virtqueue *); - -struct irq_affinity; - -struct virtio_shm_region; - -struct virtio_config_ops { - void (*get)(struct virtio_device *, unsigned int, void *, unsigned int); - void (*set)(struct virtio_device *, unsigned int, const void *, unsigned int); - u32 (*generation)(struct virtio_device *); - u8 (*get_status)(struct virtio_device *); - void (*set_status)(struct virtio_device *, u8); - void (*reset)(struct virtio_device *); - int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, vq_callback_t **, const char * const *, const bool *, struct irq_affinity *); - void (*del_vqs)(struct virtio_device *); - void (*synchronize_cbs)(struct virtio_device *); - u64 (*get_features)(struct virtio_device *); - int (*finalize_features)(struct virtio_device *); - const char * (*bus_name)(struct virtio_device *); - int (*set_vq_affinity)(struct virtqueue *, const struct cpumask *); - const struct cpumask * (*get_vq_affinity)(struct virtio_device *, int); - bool (*get_shm_region)(struct virtio_device *, struct virtio_shm_region *, u8); - int (*disable_vq_and_reset)(struct virtqueue *); - int (*enable_vq_after_reset)(struct virtqueue *); +struct e1000_thermal_diode_data { + u8 location; + u8 temp; + u8 caution_thresh; + u8 max_op_thresh; }; -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 e1000_thermal_sensor_data { + struct e1000_thermal_diode_data sensor[3]; }; -struct virtio_shm_region { - u64 addr; - u64 len; +struct e1000_mac_info { + struct e1000_mac_operations ops; + u8 addr[6]; + u8 perm_addr[6]; + enum e1000_mac_type type; + u32 ledctl_default; + u32 ledctl_mode1; + u32 ledctl_mode2; + u32 mc_filter_type; + u32 txcw; + u16 mta_reg_count; + u16 uta_reg_count; + u32 mta_shadow[128]; + u16 rar_entry_count; + u8 forced_speed_duplex; + bool adaptive_ifs; + bool arc_subsystem_valid; + bool asf_firmware_present; + bool autoneg; + bool autoneg_failed; + bool disable_hw_init_bits; + bool get_link_status; + bool ifs_params_forced; + bool in_ifs_mode; + bool report_tx_early; + bool serdes_has_link; + bool tx_pkt_filtering; + struct e1000_thermal_sensor_data thermal_sensor_data; }; -struct virtio_pci_legacy_device { - struct pci_dev *pci_dev; - u8 *isr; - void *ioaddr; - struct virtio_device_id id; +struct e1000_fc_info { + u32 high_water; + u32 low_water; + u16 pause_time; + bool send_xon; + bool strict_ieee; + enum e1000_fc_mode current_mode; + enum e1000_fc_mode requested_mode; }; -struct 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; - int (*device_id_check)(struct pci_dev *); - u64 dma_mask; +struct e1000_phy_operations { + s32 (*acquire)(struct e1000_hw *); + s32 (*check_polarity)(struct e1000_hw *); + s32 (*check_reset_block)(struct e1000_hw *); + s32 (*force_speed_duplex)(struct e1000_hw *); + s32 (*get_cfg_done)(struct e1000_hw *); + s32 (*get_cable_length)(struct e1000_hw *); + s32 (*get_phy_info)(struct e1000_hw *); + s32 (*read_reg)(struct e1000_hw *, u32, u16 *); + void (*release)(struct e1000_hw *); + s32 (*reset)(struct e1000_hw *); + s32 (*set_d0_lplu_state)(struct e1000_hw *, bool); + s32 (*set_d3_lplu_state)(struct e1000_hw *, bool); + s32 (*write_reg)(struct e1000_hw *, u32, u16); + s32 (*read_i2c_byte)(struct e1000_hw *, u8, u8, u8 *); + s32 (*write_i2c_byte)(struct e1000_hw *, u8, u8, u8); }; -struct virtio_pci_vq_info; - -struct virtio_pci_device { - struct virtio_device vdev; - struct pci_dev *pci_dev; - long: 32; - union { - struct virtio_pci_legacy_device ldev; - struct virtio_pci_modern_device mdev; - }; - bool is_legacy; - u8 *isr; - spinlock_t lock; - struct list_head virtqueues; - struct virtio_pci_vq_info **vqs; - 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 e1000_phy_info { + struct e1000_phy_operations ops; + enum e1000_phy_type type; + enum e1000_1000t_rx_status local_rx; + enum e1000_1000t_rx_status remote_rx; + enum e1000_ms_type ms_type; + enum e1000_ms_type original_ms_type; + enum e1000_rev_polarity cable_polarity; + enum e1000_smart_speed smart_speed; + u32 addr; + u32 id; + u32 reset_delay_us; + u32 revision; + enum e1000_media_type media_type; + u16 autoneg_advertised; + u16 autoneg_mask; + u16 cable_length; + u16 max_cable_length; + u16 min_cable_length; + u16 pair_length[4]; + u8 mdix; + bool disable_polarity_correction; + bool is_mdix; + bool polarity_correction; + bool reset_disable; + bool speed_downgraded; + bool autoneg_wait_to_complete; }; -struct 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 e1000_nvm_operations { + s32 (*acquire)(struct e1000_hw *); + s32 (*read)(struct e1000_hw *, u16, u16, u16 *); + void (*release)(struct e1000_hw *); + s32 (*write)(struct e1000_hw *, u16, u16, u16 *); + s32 (*update)(struct e1000_hw *); + s32 (*validate)(struct e1000_hw *); + s32 (*valid_led_default)(struct e1000_hw *, u16 *); }; -struct virtio_pci_vq_info { - struct virtqueue *vq; - struct list_head node; - unsigned int msix_vector; +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; }; -enum regulator_type { - REGULATOR_VOLTAGE = 0, - REGULATOR_CURRENT = 1, +struct e1000_bus_info { + enum e1000_bus_type type; + enum e1000_bus_speed speed; + enum e1000_bus_width width; + u32 snoop; + u16 func; + u16 pci_cmd_word; }; -struct regulator_config; - -struct regulator_ops; - -struct linear_range; +struct e1000_mbx_operations { + s32 (*init_params)(struct e1000_hw *); + s32 (*read)(struct e1000_hw *, u32 *, u16, u16, bool); + s32 (*write)(struct e1000_hw *, u32 *, u16, u16); + s32 (*read_posted)(struct e1000_hw *, u32 *, u16, u16); + s32 (*write_posted)(struct e1000_hw *, u32 *, u16, u16); + s32 (*check_for_msg)(struct e1000_hw *, u16); + s32 (*check_for_ack)(struct e1000_hw *, u16); + s32 (*check_for_rst)(struct e1000_hw *, u16); + s32 (*unlock)(struct e1000_hw *, u16); +}; -struct regulator_desc { - const char *name; - const char *supply_name; - const char *of_match; - bool of_match_full_name; - const char *regulators_node; - int (*of_parse_cb)(struct device_node *, const struct regulator_desc *, struct regulator_config *); - int id; - unsigned int continuous_voltage_range: 1; - unsigned int n_voltages; - unsigned int n_current_limits; - const struct regulator_ops *ops; - int irq; - enum regulator_type type; - struct module *owner; - unsigned int min_uV; - unsigned int uV_step; - unsigned int linear_min_sel; - int fixed_uV; - unsigned int ramp_delay; - int min_dropout_uV; - const struct linear_range *linear_ranges; - const unsigned int *linear_range_selectors; - int n_linear_ranges; - const unsigned int *volt_table; - const unsigned int *curr_table; - unsigned int vsel_range_reg; - unsigned int vsel_range_mask; - unsigned int vsel_reg; - unsigned int vsel_mask; - unsigned int vsel_step; - unsigned int csel_reg; - unsigned int csel_mask; - unsigned int apply_reg; - unsigned int apply_bit; - unsigned int enable_reg; - unsigned int enable_mask; - unsigned int enable_val; - unsigned int disable_val; - bool enable_is_inverted; - unsigned int bypass_reg; - unsigned int bypass_mask; - unsigned int bypass_val_on; - unsigned int bypass_val_off; - unsigned int active_discharge_on; - unsigned int active_discharge_off; - unsigned int active_discharge_mask; - unsigned int active_discharge_reg; - unsigned int soft_start_reg; - unsigned int soft_start_mask; - unsigned int soft_start_val_on; - unsigned int pull_down_reg; - unsigned int pull_down_mask; - unsigned int pull_down_val_on; - unsigned int ramp_reg; - unsigned int ramp_mask; - const unsigned int *ramp_delay_table; - unsigned int n_ramp_values; - unsigned int enable_time; - unsigned int off_on_delay; - unsigned int poll_enabled_time; - unsigned int (*of_map_mode)(unsigned int); +struct e1000_mbx_stats { + u32 msgs_tx; + u32 msgs_rx; + u32 acks; + u32 reqs; + u32 rsts; }; -struct regulator_init_data; +struct e1000_mbx_info { + struct e1000_mbx_operations ops; + struct e1000_mbx_stats stats; + u32 timeout; + u32 usec_delay; + u16 size; +}; -struct regulator_config { - struct device *dev; - const struct regulator_init_data *init_data; - void *driver_data; - struct device_node *of_node; - struct regmap *regmap; - struct gpio_desc *ena_gpiod; +struct e1000_host_mng_dhcp_cookie { + u32 signature; + u8 status; + u8 reserved0; + u16 vlan_id; + u32 reserved1; + u16 reserved2; + u8 reserved3; + u8 checksum; }; -struct regulator_state { - int uV; - int min_uV; - int max_uV; - unsigned int mode; - int enabled; - bool changeable; +struct e1000_sfp_flags { + u8 e1000_base_sx: 1; + u8 e1000_base_lx: 1; + u8 e1000_base_cx: 1; + u8 e1000_base_t: 1; + u8 e100_base_lx: 1; + u8 e100_base_fx: 1; + u8 e10_base_bx10: 1; + u8 e10_base_px: 1; }; -struct notification_limit { - int prot; - int err; - int warn; +struct e1000_dev_spec_82575 { + bool sgmii_active; + bool global_device_reset; + bool eee_disable; + bool clear_semaphore_once; + struct e1000_sfp_flags eth_flags; + bool module_plugged; + u8 media_port; + bool media_changed; + bool mas_capable; }; -struct regulation_constraints { - const char *name; - int min_uV; - int max_uV; - int uV_offset; - int min_uA; - int max_uA; - int ilim_uA; - int system_load; - u32 *max_spread; - int max_uV_step; - unsigned int valid_modes_mask; - unsigned int valid_ops_mask; - int input_uV; - struct regulator_state state_disk; - struct regulator_state state_mem; - struct regulator_state state_standby; - struct notification_limit over_curr_limits; - struct notification_limit over_voltage_limits; - struct notification_limit under_voltage_limits; - struct notification_limit temp_limits; - suspend_state_t initial_state; - unsigned int initial_mode; - unsigned int ramp_delay; - unsigned int settling_time; - unsigned int settling_time_up; - unsigned int settling_time_down; - unsigned int enable_time; - unsigned int active_discharge; - unsigned int always_on: 1; - unsigned int boot_on: 1; - unsigned int apply_uV: 1; - unsigned int ramp_disable: 1; - unsigned int soft_start: 1; - unsigned int pull_down: 1; - unsigned int over_current_protection: 1; - unsigned int over_current_detection: 1; - unsigned int over_voltage_detection: 1; - unsigned int under_voltage_detection: 1; - unsigned int over_temp_detection: 1; +struct e1000_hw { + void *back; + u8 *hw_addr; + u8 *flash_address; + unsigned long io_base; + struct e1000_mac_info mac; + struct e1000_fc_info fc; + struct e1000_phy_info phy; + struct e1000_nvm_info nvm; + struct e1000_bus_info bus; + struct e1000_mbx_info mbx; + struct e1000_host_mng_dhcp_cookie mng_cookie; + union { + struct e1000_dev_spec_82575 _82575; + } dev_spec; + u16 device_id; + u16 subsystem_vendor_id; + u16 subsystem_device_id; + u16 vendor_id; + u8 revision_id; }; -struct regulator_consumer_supply; +struct e1000_hw_stats { + u64 crcerrs; + u64 algnerrc; + u64 symerrs; + u64 rxerrc; + u64 mpc; + u64 scc; + u64 ecol; + u64 mcc; + u64 latecol; + u64 colc; + u64 dc; + u64 tncrs; + u64 sec; + u64 cexterr; + u64 rlec; + u64 xonrxc; + u64 xontxc; + u64 xoffrxc; + u64 xofftxc; + u64 fcruc; + u64 prc64; + u64 prc127; + u64 prc255; + u64 prc511; + u64 prc1023; + u64 prc1522; + u64 gprc; + u64 bprc; + u64 mprc; + u64 gptc; + u64 gorc; + u64 gotc; + u64 rnbc; + u64 ruc; + u64 rfc; + u64 roc; + u64 rjc; + u64 mgprc; + u64 mgpdc; + u64 mgptc; + u64 tor; + u64 tot; + u64 tpr; + u64 tpt; + u64 ptc64; + u64 ptc127; + u64 ptc255; + u64 ptc511; + u64 ptc1023; + u64 ptc1522; + u64 mptc; + u64 bptc; + u64 tsctc; + u64 tsctfc; + u64 iac; + u64 icrxptc; + u64 icrxatc; + u64 ictxptc; + u64 ictxatc; + u64 ictxqec; + u64 ictxqmtc; + u64 icrxdmtc; + u64 icrxoc; + u64 cbtmpc; + u64 htdpmc; + u64 cbrdpc; + u64 cbrmpc; + u64 rpthc; + u64 hgptc; + u64 htcbdpc; + u64 hgorc; + u64 hgotc; + u64 lenerrs; + u64 scvpc; + u64 hrmpc; + u64 doosync; + u64 o2bgptc; + u64 o2bspc; + u64 b2ospc; + u64 b2ogprc; +}; -struct regulator_init_data { - const char *supply_regulator; - struct regulation_constraints constraints; - int num_consumer_supplies; - struct regulator_consumer_supply *consumer_supplies; - int (*regulator_init)(void *); - void *driver_data; +struct igb_tx_queue_stats { + u64 packets; + u64 bytes; + u64 restart_queue; + u64 restart_queue2; }; -struct regulator_consumer_supply { - const char *dev_name; - const char *supply; +struct igb_rx_queue_stats { + u64 packets; + u64 bytes; + u64 drops; + u64 csum_err; + u64 alloc_failed; }; -struct regulator_dev; +struct igb_q_vector; -struct regulator_ops { - int (*list_voltage)(struct regulator_dev *, unsigned int); - int (*set_voltage)(struct regulator_dev *, int, int, unsigned int *); - int (*map_voltage)(struct regulator_dev *, int, int); - int (*set_voltage_sel)(struct regulator_dev *, unsigned int); - int (*get_voltage)(struct regulator_dev *); - int (*get_voltage_sel)(struct regulator_dev *); - int (*set_current_limit)(struct regulator_dev *, int, int); - int (*get_current_limit)(struct regulator_dev *); - int (*set_input_current_limit)(struct regulator_dev *, int); - int (*set_over_current_protection)(struct regulator_dev *, int, int, bool); - int (*set_over_voltage_protection)(struct regulator_dev *, int, int, bool); - int (*set_under_voltage_protection)(struct regulator_dev *, int, int, bool); - int (*set_thermal_protection)(struct regulator_dev *, int, int, bool); - int (*set_active_discharge)(struct regulator_dev *, bool); - int (*enable)(struct regulator_dev *); - int (*disable)(struct regulator_dev *); - int (*is_enabled)(struct regulator_dev *); - int (*set_mode)(struct regulator_dev *, unsigned int); - unsigned int (*get_mode)(struct regulator_dev *); - int (*get_error_flags)(struct regulator_dev *, unsigned int *); - int (*enable_time)(struct regulator_dev *); - int (*set_ramp_delay)(struct regulator_dev *, int); - int (*set_voltage_time)(struct regulator_dev *, int, int); - int (*set_voltage_time_sel)(struct regulator_dev *, unsigned int, unsigned int); - int (*set_soft_start)(struct regulator_dev *); - int (*get_status)(struct regulator_dev *); - unsigned int (*get_optimum_mode)(struct regulator_dev *, int, int, int); - int (*set_load)(struct regulator_dev *, int); - int (*set_bypass)(struct regulator_dev *, bool); - int (*get_bypass)(struct regulator_dev *, bool *); - int (*set_suspend_voltage)(struct regulator_dev *, int); - int (*set_suspend_enable)(struct regulator_dev *); - int (*set_suspend_disable)(struct regulator_dev *); - int (*set_suspend_mode)(struct regulator_dev *, unsigned int); - int (*resume)(struct regulator_dev *); - int (*set_pull_down)(struct regulator_dev *); -}; +struct igb_tx_buffer; -struct regulator_coupler; +struct igb_rx_buffer; -struct coupling_desc { - struct regulator_dev **coupled_rdevs; - struct regulator_coupler *coupler; - int n_resolved; - int n_coupled; +struct igb_ring { + struct igb_q_vector *q_vector; + struct net_device *netdev; + struct bpf_prog *xdp_prog; + struct device *dev; + union { + struct igb_tx_buffer *tx_buffer_info; + struct igb_rx_buffer *rx_buffer_info; + }; + void *desc; + unsigned long flags; + void *tail; + dma_addr_t dma; + unsigned int size; + u16 count; + u8 queue_index; + u8 reg_idx; + bool launchtime_enable; + bool cbs_enable; + s32 idleslope; + s32 sendslope; + s32 hicredit; + s32 locredit; + u16 next_to_clean; + u16 next_to_use; + u16 next_to_alloc; + union { + struct { + struct igb_tx_queue_stats tx_stats; + struct u64_stats_sync tx_syncp; + struct u64_stats_sync tx_syncp2; + }; + struct { + struct sk_buff *skb; + long: 32; + struct igb_rx_queue_stats rx_stats; + struct u64_stats_sync rx_syncp; + long: 32; + }; + }; + struct xdp_rxq_info xdp_rxq; }; -struct ww_acquire_ctx; +struct ptp_pin_desc; -struct ww_mutex { - struct mutex base; - struct ww_acquire_ctx *ctx; +struct system_device_crosststamp; + +struct ptp_clock_info { + struct module *owner; + char name[32]; + s32 max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int n_pins; + int pps; + struct ptp_pin_desc *pin_config; + int (*adjfine)(struct ptp_clock_info *, long); + int (*adjphase)(struct ptp_clock_info *, s32); + s32 (*getmaxphase)(struct ptp_clock_info *); + int (*adjtime)(struct ptp_clock_info *, s64); + int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); + int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); + int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *); + int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); + int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); + long (*do_aux_work)(struct ptp_clock_info *); }; -struct regulator_enable_gpio; +struct hwtstamp_config { + int flags; + int tx_type; + int rx_filter; +}; -struct regulator_dev { - const struct regulator_desc *desc; - int exclusive; - u32 use_count; - u32 open_count; - u32 bypass_count; - struct list_head list; - struct list_head consumer_list; - struct coupling_desc coupling_desc; - struct blocking_notifier_head notifier; - struct ww_mutex mutex; - struct task_struct *mutex_owner; - int ref_cnt; - struct module *owner; - long: 32; - struct device dev; - struct regulation_constraints *constraints; - struct regulator *supply; - const char *supply_name; - struct regmap *regmap; - struct delayed_work disable_work; - void *reg_data; - struct dentry *debugfs; - struct regulator_enable_gpio *ena_pin; - unsigned int ena_gpio_state: 1; - unsigned int is_switch: 1; - long: 32; - ktime_t last_off; - int cached_err; - bool use_cached_err; - spinlock_t err_lock; +struct cyclecounter { + u64 (*read)(const struct cyclecounter *); long: 32; + u64 mask; + u32 mult; + u32 shift; }; -struct ww_acquire_ctx { - struct task_struct *task; - unsigned long stamp; - unsigned int acquired; - unsigned short wounded; - unsigned short is_wait_die; +struct timecounter { + const struct cyclecounter *cc; + long: 32; + u64 cycle_last; + u64 nsec; + u64 mask; + u64 frac; }; -struct linear_range { - unsigned int min; - unsigned int min_sel; - unsigned int max_sel; - unsigned int step; +struct ptp_pin_desc { + char name[64]; + unsigned int index; + unsigned int func; + unsigned int chan; + unsigned int rsv[5]; }; -enum pwm_polarity { - PWM_POLARITY_NORMAL = 0, - PWM_POLARITY_INVERSED = 1, +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; }; -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 e1000_info { + s32 (*get_invariants)(struct e1000_hw *); + struct e1000_mac_operations *mac_ops; + const struct e1000_phy_operations *phy_ops; + struct e1000_nvm_operations *nvm_ops; }; -struct pwm_continuous_reg_data { - unsigned int min_uV_dutycycle; - unsigned int max_uV_dutycycle; - unsigned int dutycycle_unit; +struct vf_mac_filter { + struct list_head l; + int vf; + bool free; + u8 vf_mac[6]; }; -struct pwm_device; +struct vf_data_storage; -struct pwm_voltages; +struct ptp_clock; -struct pwm_regulator_data { - struct pwm_device *pwm; - struct pwm_voltages *duty_cycle_table; - struct pwm_continuous_reg_data continuous; - struct regulator_desc desc; - int state; - struct gpio_desc *enb_gpio; -}; +struct hwmon_buff; -struct pwm_args { - u64 period; - enum pwm_polarity polarity; +struct igb_mac_addr; + +struct igb_adapter { + unsigned long active_vlans[128]; + struct net_device *netdev; + struct bpf_prog *xdp_prog; + unsigned long state; + unsigned int flags; + unsigned int num_q_vectors; + struct msix_entry msix_entries[10]; + u32 rx_itr_setting; + u32 tx_itr_setting; + u16 tx_itr; + u16 rx_itr; + u16 tx_work_limit; + u32 tx_timeout_count; + int num_tx_queues; + struct igb_ring *tx_ring[16]; + int num_rx_queues; + struct igb_ring *rx_ring[16]; + u32 max_frame_size; + u32 min_frame_size; + struct timer_list watchdog_timer; + struct timer_list phy_info_timer; + u16 mng_vlan_id; + u32 bd_number; + u32 wol; + u32 en_mng_pt; + u16 link_speed; + u16 link_duplex; + u8 *io_addr; + struct work_struct reset_task; + struct work_struct watchdog_task; + bool fc_autoneg; + u8 tx_timeout_factor; + struct timer_list blink_timer; + unsigned long led_status; + struct pci_dev *pdev; + spinlock_t stats64_lock; + long: 32; + struct rtnl_link_stats64 stats64; + struct e1000_hw hw; + struct e1000_hw_stats stats; + struct e1000_phy_info phy_info; + u32 test_icr; + long: 32; + struct igb_ring test_tx_ring; + struct igb_ring test_rx_ring; + int msg_enable; + struct igb_q_vector *q_vector[8]; + u32 eims_enable_mask; + u32 eims_other; + u16 tx_ring_count; + u16 rx_ring_count; + unsigned int vfs_allocated_count; + struct vf_data_storage *vf_data; + int vf_rate_link_speed; + u32 rss_queues; + u32 wvbr; + u32 *shadow_vfta; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_caps; + struct delayed_work ptp_overflow_work; + struct work_struct ptp_tx_work; + struct sk_buff *ptp_tx_skb; + struct hwtstamp_config tstamp_config; + unsigned long ptp_tx_start; + unsigned long last_rx_ptp_check; + unsigned long last_rx_timestamp; + unsigned int ptp_flags; + spinlock_t tmreg_lock; + long: 32; + struct cyclecounter cc; + struct timecounter tc; + u32 tx_hwtstamp_timeouts; + u32 tx_hwtstamp_skipped; + u32 rx_hwtstamp_cleared; + bool pps_sys_wrap_on; + struct ptp_pin_desc sdp_config[4]; + struct { + struct timespec64 start; + struct timespec64 period; + } perout[2]; + char fw_version[32]; + struct hwmon_buff *igb_hwmon_buff; + bool ets; + struct i2c_algo_bit_data i2c_algo; + struct i2c_adapter i2c_adap; + struct i2c_client *i2c_client; + u32 rss_indir_tbl_init; + u8 rss_indir_tbl[128]; + unsigned long link_check_timeout; + int copper_tries; + struct e1000_info ei; + u16 eee_advert; + struct hlist_head nfc_filter_list; + struct hlist_head cls_flower_list; + unsigned int nfc_filter_count; + spinlock_t nfc_lock; + bool etype_bitmap[3]; + struct igb_mac_addr *mac_table; + struct vf_mac_filter vf_macs; + struct vf_mac_filter *vf_mac_list; + spinlock_t vfs_lock; + long: 32; long: 32; }; -struct pwm_state { - u64 period; - u64 duty_cycle; - enum pwm_polarity polarity; - bool enabled; - bool usage_power; +struct igb_ring_container { + struct igb_ring *ring; + unsigned int total_bytes; + unsigned int total_packets; + u16 work_limit; + u8 count; + u8 itr; }; -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 igb_q_vector { + struct igb_adapter *adapter; + int cpu; + u32 eims_value; + u16 itr_val; + u8 set_itr; + void *itr_register; + struct igb_ring_container rx; + struct igb_ring_container tx; + long: 32; + struct napi_struct napi; + struct callback_head rcu; + char name[25]; + long: 32; + struct igb_ring ring[0]; }; -struct pwm_ops; +union e1000_adv_tx_desc; -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 igb_tx_buffer { + union e1000_adv_tx_desc *next_to_watch; + unsigned long time_stamp; + enum igb_tx_buf_type type; + union { + struct sk_buff *skb; + struct xdp_frame *xdpf; + }; + unsigned int bytecount; + u16 gso_segs; + __be16 protocol; + dma_addr_t dma; + __u32 len; + u32 tx_flags; }; -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; +union e1000_adv_tx_desc { + struct { + __le64 buffer_addr; + __le32 cmd_type_len; + __le32 olinfo_status; + } read; + struct { + __le64 rsvd; + __le32 nxtseq_seed; + __le32 status; + } wb; }; -struct pwm_capture { - unsigned int period; - unsigned int duty_cycle; +struct igb_rx_buffer { + dma_addr_t dma; + struct page *page; + __u16 page_offset; + __u16 pagecnt_bias; }; -struct pwm_voltages { - unsigned int uV; - unsigned int dutycycle; +struct vf_data_storage { + unsigned char vf_mac_addresses[6]; + u16 vf_mc_hashes[30]; + u16 num_vf_mc_hashes; + u32 flags; + unsigned long last_nack; + u16 pf_vlan; + u16 pf_qos; + u16 tx_rate; + bool spoofchk_enabled; + bool trusted; }; -struct gpio_desc { - struct gpio_device *gdev; - unsigned long flags; - const char *label; - const char *name; - struct device_node *hog; - unsigned int debounce_period_us; +struct ptp_system_timestamp { + struct timespec64 pre_ts; + struct timespec64 post_ts; }; -struct zynq_reset_data { - struct regmap *slcr; - struct reset_controller_dev rcdev; - u32 offset; +struct system_device_crosststamp { + ktime_t device; + ktime_t sys_realtime; + ktime_t sys_monoraw; }; -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 hwmon_attr { + struct device_attribute dev_attr; + struct e1000_hw *hw; + struct e1000_thermal_diode_data *sensor; + char name[12]; }; -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 hwmon_buff { + struct attribute_group group; + const struct attribute_group *groups[2]; + struct attribute *attrs[13]; + struct hwmon_attr hwmon_list[12]; + unsigned int n_hwmon; }; -struct uart_port; - -struct uart_ops { - unsigned int (*tx_empty)(struct uart_port *); - void (*set_mctrl)(struct uart_port *, unsigned int); - unsigned int (*get_mctrl)(struct uart_port *); - void (*stop_tx)(struct uart_port *); - void (*start_tx)(struct uart_port *); - void (*throttle)(struct uart_port *); - void (*unthrottle)(struct uart_port *); - void (*send_xchar)(struct uart_port *, char); - void (*stop_rx)(struct uart_port *); - void (*start_rx)(struct uart_port *); - void (*enable_ms)(struct uart_port *); - void (*break_ctl)(struct uart_port *, int); - int (*startup)(struct uart_port *); - void (*shutdown)(struct uart_port *); - void (*flush_buffer)(struct uart_port *); - void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - const char * (*type)(struct uart_port *); - void (*release_port)(struct uart_port *); - int (*request_port)(struct uart_port *); - void (*config_port)(struct uart_port *, int); - int (*verify_port)(struct uart_port *, struct serial_struct *); - int (*ioctl)(struct uart_port *, unsigned int, unsigned long); +struct igb_mac_addr { + u8 addr[6]; + u8 queue; + u8 state; }; -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; +enum pkt_hash_types { + PKT_HASH_TYPE_NONE = 0, + PKT_HASH_TYPE_L2 = 1, + PKT_HASH_TYPE_L3 = 2, + PKT_HASH_TYPE_L4 = 3, }; -typedef u64 upf_t; +struct dma_desc; -typedef unsigned int upstat_t; +struct stmmac_extra_stats; -struct serial_iso7816 { - __u32 flags; - __u32 tg; - __u32 sc_fi; - __u32 sc_di; - __u32 clk; - __u32 reserved[5]; -}; +struct dma_extended_desc; -struct uart_state; +struct dma_edesc; -struct console; +struct stmmac_desc_ops { + void (*init_rx_desc)(struct dma_desc *, int, int, int, int); + void (*init_tx_desc)(struct dma_desc *, int, int); + void (*prepare_tx_desc)(struct dma_desc *, int, int, bool, int, bool, bool, unsigned int); + void (*prepare_tso_tx_desc)(struct dma_desc *, int, int, int, bool, bool, unsigned int, unsigned int); + void (*set_tx_owner)(struct dma_desc *); + int (*get_tx_owner)(struct dma_desc *); + void (*release_tx_desc)(struct dma_desc *, int); + void (*set_tx_ic)(struct dma_desc *); + int (*get_tx_ls)(struct dma_desc *); + int (*tx_status)(struct stmmac_extra_stats *, struct dma_desc *, void *); + int (*get_tx_len)(struct dma_desc *); + void (*set_rx_owner)(struct dma_desc *, int); + int (*get_rx_frame_len)(struct dma_desc *, int); + int (*rx_status)(struct stmmac_extra_stats *, struct dma_desc *); + void (*rx_extended_status)(struct stmmac_extra_stats *, struct dma_extended_desc *); + void (*enable_tx_timestamp)(struct dma_desc *); + int (*get_tx_timestamp_status)(struct dma_desc *); + void (*get_timestamp)(void *, u32, u64 *); + int (*get_rx_timestamp_status)(void *, void *, u32); + void (*display_ring)(void *, unsigned int, bool, dma_addr_t, unsigned int); + void (*set_mss)(struct dma_desc *, unsigned int); + void (*set_addr)(struct dma_desc *, dma_addr_t); + void (*clear)(struct dma_desc *); + int (*get_rx_hash)(struct dma_desc *, u32 *, enum pkt_hash_types *); + void (*get_rx_header_len)(struct dma_desc *, unsigned int *); + void (*set_sec_addr)(struct dma_desc *, dma_addr_t, bool); + void (*set_sarc)(struct dma_desc *, u32); + void (*set_vlan_tag)(struct dma_desc *, u16, u16, u32); + void (*set_vlan)(struct dma_desc *, u32); + void (*set_tbs)(struct dma_edesc *, u32, u32); +}; -struct serial_port_device; +struct dma_desc { + __le32 des0; + __le32 des1; + __le32 des2; + __le32 des3; +}; -struct uart_port { - spinlock_t lock; - unsigned long iobase; - unsigned char *membase; - unsigned int (*serial_in)(struct uart_port *, int); - void (*serial_out)(struct uart_port *, int, int); - void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - unsigned int (*get_mctrl)(struct uart_port *); - void (*set_mctrl)(struct uart_port *, unsigned int); - unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *); - void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int); - int (*startup)(struct uart_port *); - void (*shutdown)(struct uart_port *); - void (*throttle)(struct uart_port *); - void (*unthrottle)(struct uart_port *); - int (*handle_irq)(struct uart_port *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - void (*handle_break)(struct uart_port *); - int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); - int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *); - unsigned int ctrl_id; - unsigned int port_id; - unsigned int irq; - unsigned long irqflags; - unsigned int uartclk; - unsigned int fifosize; - unsigned char x_char; - unsigned char regshift; - unsigned char iotype; - unsigned char quirks; - unsigned int read_status_mask; - unsigned int ignore_status_mask; - struct uart_state *state; - struct uart_icount icount; - struct console *cons; - upf_t flags; - upstat_t status; - bool hw_stopped; - unsigned int mctrl; - unsigned int frame_time; - unsigned int type; - const struct uart_ops *ops; - unsigned int custom_divisor; - unsigned int line; - unsigned int minor; - resource_size_t mapbase; - resource_size_t mapsize; - struct device *dev; - struct serial_port_device *port_dev; - unsigned long sysrq; - 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 stmmac_txq_stats { + u64 tx_bytes; + u64 tx_packets; + u64 tx_pkt_n; + u64 tx_normal_irq_n; + u64 napi_poll; + u64 tx_clean; + u64 tx_set_ic_bit; + u64 tx_tso_frames; + u64 tx_tso_nfrags; + struct u64_stats_sync syncp; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; }; -enum uart_pm_state { - UART_PM_STATE_ON = 0, - UART_PM_STATE_OFF = 3, - UART_PM_STATE_UNDEFINED = 4, +struct stmmac_rxq_stats { + u64 rx_bytes; + u64 rx_packets; + u64 rx_pkt_n; + u64 rx_normal_irq_n; + u64 napi_poll; + struct u64_stats_sync syncp; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct circ_buf { - char *buf; - int head; - int tail; +struct stmmac_extra_stats { + unsigned long tx_underflow; + unsigned long tx_carrier; + unsigned long tx_losscarrier; + unsigned long vlan_tag; + unsigned long tx_deferred; + unsigned long tx_vlan; + unsigned long tx_jabber; + unsigned long tx_frame_flushed; + unsigned long tx_payload_error; + unsigned long tx_ip_header_error; + unsigned long tx_collision; + unsigned long rx_desc; + unsigned long sa_filter_fail; + unsigned long overflow_error; + unsigned long ipc_csum_error; + unsigned long rx_collision; + unsigned long rx_crc_errors; + unsigned long dribbling_bit; + unsigned long rx_length; + unsigned long rx_mii; + unsigned long rx_multicast; + unsigned long rx_gmac_overflow; + unsigned long rx_watchdog; + unsigned long da_rx_filter_fail; + unsigned long sa_rx_filter_fail; + unsigned long rx_missed_cntr; + unsigned long rx_overflow_cntr; + unsigned long rx_vlan; + unsigned long rx_split_hdr_pkt_n; + unsigned long tx_undeflow_irq; + unsigned long tx_process_stopped_irq; + unsigned long tx_jabber_irq; + unsigned long rx_overflow_irq; + unsigned long rx_buf_unav_irq; + unsigned long rx_process_stopped_irq; + unsigned long rx_watchdog_irq; + unsigned long tx_early_irq; + unsigned long fatal_bus_error_irq; + unsigned long rx_early_irq; + unsigned long threshold; + unsigned long irq_receive_pmt_irq_n; + unsigned long mmc_tx_irq_n; + unsigned long mmc_rx_irq_n; + unsigned long mmc_rx_csum_offload_irq_n; + unsigned long irq_tx_path_in_lpi_mode_n; + unsigned long irq_tx_path_exit_lpi_mode_n; + unsigned long irq_rx_path_in_lpi_mode_n; + unsigned long irq_rx_path_exit_lpi_mode_n; + unsigned long phy_eee_wakeup_error_n; + unsigned long ip_hdr_err; + unsigned long ip_payload_err; + unsigned long ip_csum_bypassed; + unsigned long ipv4_pkt_rcvd; + unsigned long ipv6_pkt_rcvd; + unsigned long no_ptp_rx_msg_type_ext; + unsigned long ptp_rx_msg_type_sync; + unsigned long ptp_rx_msg_type_follow_up; + unsigned long ptp_rx_msg_type_delay_req; + unsigned long ptp_rx_msg_type_delay_resp; + unsigned long ptp_rx_msg_type_pdelay_req; + unsigned long ptp_rx_msg_type_pdelay_resp; + unsigned long ptp_rx_msg_type_pdelay_follow_up; + unsigned long ptp_rx_msg_type_announce; + unsigned long ptp_rx_msg_type_management; + unsigned long ptp_rx_msg_pkt_reserved_type; + unsigned long ptp_frame_type; + unsigned long ptp_ver; + unsigned long timestamp_dropped; + unsigned long av_pkt_rcvd; + unsigned long av_tagged_pkt_rcvd; + unsigned long vlan_tag_priority_val; + unsigned long l3_filter_match; + unsigned long l4_filter_match; + unsigned long l3_l4_filter_no_match; + unsigned long irq_pcs_ane_n; + unsigned long irq_pcs_link_n; + unsigned long irq_rgmii_n; + unsigned long pcs_link; + unsigned long pcs_duplex; + unsigned long pcs_speed; + unsigned long mtl_tx_status_fifo_full; + unsigned long mtl_tx_fifo_not_empty; + unsigned long mmtl_fifo_ctrl; + unsigned long mtl_tx_fifo_read_ctrl_write; + unsigned long mtl_tx_fifo_read_ctrl_wait; + unsigned long mtl_tx_fifo_read_ctrl_read; + unsigned long mtl_tx_fifo_read_ctrl_idle; + unsigned long mac_tx_in_pause; + unsigned long mac_tx_frame_ctrl_xfer; + unsigned long mac_tx_frame_ctrl_idle; + unsigned long mac_tx_frame_ctrl_wait; + unsigned long mac_tx_frame_ctrl_pause; + unsigned long mac_gmii_tx_proto_engine; + unsigned long mtl_rx_fifo_fill_level_full; + unsigned long mtl_rx_fifo_fill_above_thresh; + unsigned long mtl_rx_fifo_fill_below_thresh; + unsigned long mtl_rx_fifo_fill_level_empty; + unsigned long mtl_rx_fifo_read_ctrl_flush; + unsigned long mtl_rx_fifo_read_ctrl_read_data; + unsigned long mtl_rx_fifo_read_ctrl_status; + unsigned long mtl_rx_fifo_read_ctrl_idle; + unsigned long mtl_rx_fifo_ctrl_active; + unsigned long mac_rx_frame_ctrl_fifo; + unsigned long mac_gmii_rx_proto_engine; + unsigned long mtl_est_cgce; + unsigned long mtl_est_hlbs; + unsigned long mtl_est_hlbf; + unsigned long mtl_est_btre; + unsigned long mtl_est_btrlm; + long: 32; + long: 32; + long: 32; + struct stmmac_txq_stats txq_stats[8]; + struct stmmac_rxq_stats rxq_stats[8]; + unsigned long rx_dropped; + unsigned long rx_errors; + unsigned long tx_dropped; + unsigned long tx_errors; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct uart_state { - struct tty_port port; - enum uart_pm_state pm_state; - struct circ_buf xmit; - atomic_t refcount; - wait_queue_head_t remove_wait; - struct uart_port *uart_port; +struct dma_extended_desc { + struct dma_desc basic; + __le32 des4; + __le32 des5; + __le32 des6; + __le32 des7; }; -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 dma_edesc { + __le32 des4; + __le32 des5; + __le32 des6; + __le32 des7; + struct dma_desc basic; }; -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; +enum tx_frame_status { + tx_done = 0, + tx_not_ls = 1, + tx_err = 2, + tx_dma_own = 4, + tx_err_bump_tc = 8, }; -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; - long: 32; - u64 seq; - unsigned long dropped; - void *data; - struct hlist_node node; +enum rx_frame_status { + good_frame = 0, + discard_frame = 1, + csum_none = 2, + llc_snap = 4, + dma_own = 8, + rx_not_ls = 16, }; -struct mctrl_gpios; - -struct uart_8250_dma; - -struct uart_8250_ops; - -struct uart_8250_em485; - -struct uart_8250_port { - struct uart_port port; - struct timer_list timer; - struct list_head list; - u32 capabilities; - u16 bugs; - unsigned int tx_loadsz; - unsigned char acr; - unsigned char fcr; - unsigned char ier; - unsigned char lcr; - unsigned char mcr; - unsigned char cur_iotype; - unsigned int rpm_tx_active; - unsigned char canary; - unsigned char probe; - struct mctrl_gpios *gpios; - u16 lsr_saved_flags; - u16 lsr_save_mask; - unsigned char msr_saved_flags; - struct uart_8250_dma *dma; - const struct uart_8250_ops *ops; - u32 (*dl_read)(struct uart_8250_port *); - void (*dl_write)(struct uart_8250_port *, u32); - struct uart_8250_em485 *em485; - void (*rs485_start_tx)(struct uart_8250_port *); - void (*rs485_stop_tx)(struct uart_8250_port *); - struct delayed_work overrun_backoff; - u32 overrun_backoff_time_ms; +struct page_pool_params { + unsigned int flags; + unsigned int order; + unsigned int pool_size; + int nid; + struct device *dev; + struct napi_struct *napi; + enum dma_data_direction dma_dir; + unsigned int max_len; + unsigned int offset; + void (*init_callback)(struct page *, void *); + void *init_arg; }; -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 page_pool_alloc_stats { + u64 fast; + u64 slow; + u64 slow_high_order; + u64 empty; + u64 refill; + u64 waive; }; -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 pp_alloc_cache { + u32 count; + struct page *cache[128]; }; -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 ptr_ring { + int producer; + spinlock_t producer_lock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + int consumer_head; + int consumer_tail; + spinlock_t consumer_lock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + int size; + int batch; + void **queue; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; }; -struct timer_rand_state { - unsigned long last_time; - long last_delta; - long last_delta2; -}; +struct page_pool_recycle_stats; -struct static_key_false { - struct static_key key; +struct page_pool { + struct page_pool_params p; + long frag_users; + struct page *frag_page; + unsigned int frag_offset; + u32 pages_state_hold_cnt; + struct delayed_work release_dw; + void (*disconnect)(void *); + unsigned long defer_start; + unsigned long defer_warn; + long: 32; + struct page_pool_alloc_stats alloc_stats; + u32 xdp_mem_id; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct pp_alloc_cache alloc; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + 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; + long: 32; + u64 destroy_cnt; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum { - CRNG_EMPTY = 0, - CRNG_EARLY = 1, - CRNG_READY = 2, +struct page_pool_recycle_stats { + u64 cached; + u64 cache_full; + u64 ring; + u64 ring_full; + u64 released_refcnt; }; -typedef struct {} local_lock_t; - -struct batch_u8 { - u8 entropy[96]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +enum stmmac_fpe_state { + FPE_STATE_OFF = 0, + FPE_STATE_CAPABLE = 1, + FPE_STATE_ENTERING_ON = 2, + FPE_STATE_ON = 3, }; -struct batch_u16 { - u16 entropy[48]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +enum stmmac_mpacket_type { + MPACKET_VERIFY = 0, + MPACKET_RESPONSE = 1, }; -struct batch_u32 { - u32 entropy[24]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +enum stmmac_txbuf_type { + STMMAC_TXBUF_T_SKB = 0, + STMMAC_TXBUF_T_XDP_TX = 1, + STMMAC_TXBUF_T_XDP_NDO = 2, + STMMAC_TXBUF_T_XSK_TX = 3, }; -struct batch_u64 { - u64 entropy[12]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +enum dma_irq_dir { + DMA_DIR_RX = 1, + DMA_DIR_TX = 2, + DMA_DIR_RXTX = 3, }; -struct crng { - u8 key[32]; - unsigned long generation; - local_lock_t lock; +enum dma_irq_status { + tx_hard_error = 1, + tx_hard_error_bump_tc = 2, + handle_rx = 4, + handle_tx = 8, }; -struct execute_work { - struct work_struct work; +struct dwmac4_addrs { + u32 dma_chan; + u32 dma_chan_offset; + u32 mtl_chan; + u32 mtl_chan_offset; + u32 mtl_ets_ctrl; + u32 mtl_ets_ctrl_offset; + u32 mtl_txq_weight; + u32 mtl_txq_weight_offset; + u32 mtl_send_slp_cred; + u32 mtl_send_slp_cred_offset; + u32 mtl_high_cred; + u32 mtl_high_cred_offset; + u32 mtl_low_cred; + u32 mtl_low_cred_offset; }; -struct blake2s_state { - u32 h[8]; - u32 t[2]; - u32 f[2]; - u8 buf[64]; - unsigned int buflen; - unsigned int outlen; -}; +struct stmmac_rx_buffer; -struct fast_pool { - unsigned long pool[4]; - unsigned long last; - unsigned int count; - struct timer_list mix; -}; +struct stmmac_priv; -enum { - MIX_INFLIGHT = 2147483648, +struct stmmac_rx_queue { + u32 rx_count_frames; + u32 queue_index; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct xdp_rxq_info xdp_rxq; + struct xsk_buff_pool *xsk_pool; + struct page_pool *page_pool; + struct stmmac_rx_buffer *buf_pool; + struct stmmac_priv *priv_data; + struct dma_extended_desc *dma_erx; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct dma_desc *dma_rx; + unsigned int cur_rx; + unsigned int dirty_rx; + unsigned int buf_alloc_num; + u32 rx_zeroc_thresh; + dma_addr_t dma_rx_phy; + u32 rx_tail_addr; + unsigned int state_saved; + struct { + struct sk_buff *skb; + unsigned int len; + unsigned int error; + } state; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum blake2s_lengths { - BLAKE2S_BLOCK_SIZE = 64, - BLAKE2S_HASH_SIZE = 32, - BLAKE2S_KEY_SIZE = 32, - BLAKE2S_128_HASH_SIZE = 16, - BLAKE2S_160_HASH_SIZE = 20, - BLAKE2S_224_HASH_SIZE = 28, - BLAKE2S_256_HASH_SIZE = 32, -}; - -enum blake2s_iv { - BLAKE2S_IV0 = 1779033703, - BLAKE2S_IV1 = 3144134277, - BLAKE2S_IV2 = 1013904242, - BLAKE2S_IV3 = 2773480762, - BLAKE2S_IV4 = 1359893119, - BLAKE2S_IV5 = 2600822924, - BLAKE2S_IV6 = 528734635, - BLAKE2S_IV7 = 1541459225, -}; +struct stmmac_tx_info; -enum chacha_constants { - CHACHA_CONSTANT_EXPA = 1634760805, - CHACHA_CONSTANT_ND_3 = 857760878, - CHACHA_CONSTANT_2_BY = 2036477234, - CHACHA_CONSTANT_TE_K = 1797285236, +struct stmmac_tx_queue { + u32 tx_count_frames; + int tbs; + struct hrtimer txtimer; + u32 queue_index; + struct stmmac_priv *priv_data; + struct dma_extended_desc *dma_etx; + struct dma_edesc *dma_entx; + struct dma_desc *dma_tx; + union { + struct sk_buff **tx_skbuff; + struct xdp_frame **xdpf; + }; + struct stmmac_tx_info *tx_skbuff_dma; + struct xsk_buff_pool *xsk_pool; + u32 xsk_frames_done; + unsigned int cur_tx; + unsigned int dirty_tx; + dma_addr_t dma_tx_phy; + dma_addr_t tx_tail_addr; + u32 mss; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum { - WORK_STRUCT_PENDING_BIT = 0, - WORK_STRUCT_INACTIVE_BIT = 1, - WORK_STRUCT_PWQ_BIT = 2, - WORK_STRUCT_LINKED_BIT = 3, - WORK_STRUCT_COLOR_SHIFT = 4, - WORK_STRUCT_COLOR_BITS = 4, - WORK_STRUCT_PENDING = 1, - WORK_STRUCT_INACTIVE = 2, - WORK_STRUCT_PWQ = 4, - WORK_STRUCT_LINKED = 8, - WORK_STRUCT_STATIC = 0, - WORK_NR_COLORS = 16, - WORK_CPU_UNBOUND = 16, - WORK_STRUCT_FLAG_BITS = 8, - WORK_OFFQ_FLAG_BASE = 4, - __WORK_OFFQ_CANCELING = 4, - WORK_OFFQ_FLAG_BITS = 1, - WORK_OFFQ_POOL_SHIFT = 5, - WORK_OFFQ_LEFT = 27, - WORK_OFFQ_POOL_BITS = 27, - WORK_BUSY_PENDING = 1, - WORK_BUSY_RUNNING = 2, - WORKER_DESC_LEN = 24, +struct stmmac_dma_conf { + unsigned int dma_buf_sz; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct stmmac_rx_queue rx_queue[8]; + unsigned int dma_rx_size; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct stmmac_tx_queue tx_queue[8]; + unsigned int dma_tx_size; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum { - POOL_BITS = 256, - POOL_READY_BITS = 256, - POOL_EARLY_BITS = 128, +struct stmmac_channel { + struct napi_struct rx_napi; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct napi_struct tx_napi; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct napi_struct rxtx_napi; + struct stmmac_priv *priv_data; + spinlock_t lock; + u32 index; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum tk_offsets { - TK_OFFS_REAL = 0, - TK_OFFS_BOOT = 1, - TK_OFFS_TAI = 2, - TK_OFFS_MAX = 3, +struct stmmac_safety_stats { + unsigned long mac_errors[32]; + unsigned long mtl_errors[32]; + unsigned long dma_errors[32]; }; -enum { - CRNG_RESEED_START_INTERVAL = 100, - CRNG_RESEED_INTERVAL = 6000, +struct dma_features { + unsigned int mbps_10_100; + unsigned int mbps_1000; + unsigned int half_duplex; + unsigned int hash_filter; + unsigned int multi_addr; + unsigned int pcs; + unsigned int sma_mdio; + unsigned int pmt_remote_wake_up; + unsigned int pmt_magic_frame; + unsigned int rmon; + unsigned int time_stamp; + unsigned int atime_stamp; + unsigned int eee; + unsigned int av; + unsigned int hash_tb_sz; + unsigned int tsoen; + unsigned int tx_coe; + unsigned int rx_coe; + unsigned int rx_coe_type1; + unsigned int rx_coe_type2; + unsigned int rxfifo_over_2048; + unsigned int number_rx_channel; + unsigned int number_tx_channel; + unsigned int number_rx_queues; + unsigned int number_tx_queues; + unsigned int pps_out_num; + unsigned int numtc; + unsigned int dcben; + unsigned int advthword; + unsigned int ptoen; + unsigned int osten; + unsigned int pfcen; + unsigned int enh_desc; + unsigned int tx_fifo_size; + unsigned int rx_fifo_size; + unsigned int asp; + unsigned int frpsel; + unsigned int frpbs; + unsigned int frpes; + unsigned int addr64; + unsigned int host_dma_width; + unsigned int rssen; + unsigned int vlhash; + unsigned int sphen; + unsigned int vlins; + unsigned int dvlan; + unsigned int l3l4fnum; + unsigned int arpoffsel; + unsigned int pou_ost_en; + unsigned int ttsfd; + unsigned int cbtisel; + unsigned int frppipe_num; + unsigned int nrvf_num; + unsigned int estwid; + unsigned int estdep; + unsigned int estsel; + unsigned int fpesel; + unsigned int tbssel; + unsigned int tbs_ch_num; + unsigned int sgfsel; + unsigned int aux_snapshot_n; + unsigned int tssrc; + unsigned int edma; + unsigned int ediffc; + unsigned int vxn; + unsigned int dbgmem; + unsigned int pcsel; }; -enum { - NUM_TRIAL_SAMPLES = 8192, - MAX_SAMPLES_PER_BIT = 6, +struct stmmac_counters { + unsigned int mmc_tx_octetcount_gb; + unsigned int mmc_tx_framecount_gb; + unsigned int mmc_tx_broadcastframe_g; + unsigned int mmc_tx_multicastframe_g; + unsigned int mmc_tx_64_octets_gb; + unsigned int mmc_tx_65_to_127_octets_gb; + unsigned int mmc_tx_128_to_255_octets_gb; + unsigned int mmc_tx_256_to_511_octets_gb; + unsigned int mmc_tx_512_to_1023_octets_gb; + unsigned int mmc_tx_1024_to_max_octets_gb; + unsigned int mmc_tx_unicast_gb; + unsigned int mmc_tx_multicast_gb; + unsigned int mmc_tx_broadcast_gb; + unsigned int mmc_tx_underflow_error; + unsigned int mmc_tx_singlecol_g; + unsigned int mmc_tx_multicol_g; + unsigned int mmc_tx_deferred; + unsigned int mmc_tx_latecol; + unsigned int mmc_tx_exesscol; + unsigned int mmc_tx_carrier_error; + unsigned int mmc_tx_octetcount_g; + unsigned int mmc_tx_framecount_g; + unsigned int mmc_tx_excessdef; + unsigned int mmc_tx_pause_frame; + unsigned int mmc_tx_vlan_frame_g; + unsigned int mmc_rx_framecount_gb; + unsigned int mmc_rx_octetcount_gb; + unsigned int mmc_rx_octetcount_g; + unsigned int mmc_rx_broadcastframe_g; + unsigned int mmc_rx_multicastframe_g; + unsigned int mmc_rx_crc_error; + unsigned int mmc_rx_align_error; + unsigned int mmc_rx_run_error; + unsigned int mmc_rx_jabber_error; + unsigned int mmc_rx_undersize_g; + unsigned int mmc_rx_oversize_g; + unsigned int mmc_rx_64_octets_gb; + unsigned int mmc_rx_65_to_127_octets_gb; + unsigned int mmc_rx_128_to_255_octets_gb; + unsigned int mmc_rx_256_to_511_octets_gb; + unsigned int mmc_rx_512_to_1023_octets_gb; + unsigned int mmc_rx_1024_to_max_octets_gb; + unsigned int mmc_rx_unicast_g; + unsigned int mmc_rx_length_error; + unsigned int mmc_rx_autofrangetype; + unsigned int mmc_rx_pause_frames; + unsigned int mmc_rx_fifo_overflow; + unsigned int mmc_rx_vlan_frames_gb; + unsigned int mmc_rx_watchdog_error; + unsigned int mmc_rx_ipc_intr_mask; + unsigned int mmc_rx_ipc_intr; + unsigned int mmc_rx_ipv4_gd; + unsigned int mmc_rx_ipv4_hderr; + unsigned int mmc_rx_ipv4_nopay; + unsigned int mmc_rx_ipv4_frag; + unsigned int mmc_rx_ipv4_udsbl; + unsigned int mmc_rx_ipv4_gd_octets; + unsigned int mmc_rx_ipv4_hderr_octets; + unsigned int mmc_rx_ipv4_nopay_octets; + unsigned int mmc_rx_ipv4_frag_octets; + unsigned int mmc_rx_ipv4_udsbl_octets; + unsigned int mmc_rx_ipv6_gd_octets; + unsigned int mmc_rx_ipv6_hderr_octets; + unsigned int mmc_rx_ipv6_nopay_octets; + unsigned int mmc_rx_ipv6_gd; + unsigned int mmc_rx_ipv6_hderr; + unsigned int mmc_rx_ipv6_nopay; + unsigned int mmc_rx_udp_gd; + unsigned int mmc_rx_udp_err; + unsigned int mmc_rx_tcp_gd; + unsigned int mmc_rx_tcp_err; + unsigned int mmc_rx_icmp_gd; + unsigned int mmc_rx_icmp_err; + unsigned int mmc_rx_udp_gd_octets; + unsigned int mmc_rx_udp_err_octets; + unsigned int mmc_rx_tcp_gd_octets; + unsigned int mmc_rx_tcp_err_octets; + unsigned int mmc_rx_icmp_gd_octets; + unsigned int mmc_rx_icmp_err_octets; + unsigned int mmc_tx_fpe_fragment_cntr; + unsigned int mmc_tx_hold_req_cntr; + unsigned int mmc_rx_packet_assembly_err_cntr; + unsigned int mmc_rx_packet_smd_err_cntr; + unsigned int mmc_rx_packet_assembly_ok_cntr; + unsigned int mmc_rx_fpe_fragment_cntr; }; -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, +struct stmmac_pps_cfg { + bool available; + long: 32; + struct timespec64 start; + struct timespec64 period; }; -struct entropy_timer_state { - unsigned long entropy; - struct timer_list timer; - atomic_t samples; - unsigned int samples_per_bit; +struct stmmac_rss { + int enable; + u8 key[40]; + u32 table[256]; }; -typedef int __kernel_rwf_t; +struct mac_device_info; -typedef unsigned long cycles_t; +struct plat_stmmacenet_data; -struct drm_private_state; +struct stmmac_tc_entry; -struct drm_private_obj; +struct stmmac_flow_entry; -struct drm_printer; +struct stmmac_rfs_entry; -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 stmmac_priv { + u32 tx_coal_frames[8]; + u32 tx_coal_timer[8]; + u32 rx_coal_frames[8]; + int hwts_tx_en; + bool tx_path_in_lpi_mode; + bool tso; + int sph; + int sph_cap; + u32 sarc_type; + unsigned int rx_copybreak; + u32 rx_riwt[8]; + int hwts_rx_en; + void *ioaddr; + struct net_device *dev; + struct device *device; + struct mac_device_info *hw; + int (*hwif_quirks)(struct stmmac_priv *); + struct mutex lock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct stmmac_dma_conf dma_conf; + struct stmmac_channel channel[8]; + int speed; + unsigned int flow_ctrl; + unsigned int pause; + struct mii_bus *mii; + struct phylink_config phylink_config; + struct phylink *phylink; + long: 32; + long: 32; + long: 32; + long: 32; + struct stmmac_extra_stats xstats; + struct stmmac_safety_stats sstats; + struct plat_stmmacenet_data *plat; + struct dma_features dma_cap; + struct stmmac_counters mmc; + int hw_cap_support; + int synopsys_id; + u32 msg_enable; + int wolopts; + int wol_irq; + bool wol_irq_disabled; + int clk_csr; + struct timer_list eee_ctrl_timer; + int lpi_irq; + int eee_enabled; + int eee_active; + int tx_lpi_timer; + int tx_lpi_enabled; + int eee_tw_timer; + bool eee_sw_timer_en; + unsigned int mode; + unsigned int chain_mode; + int extend_desc; + struct hwtstamp_config tstamp_config; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_ops; + unsigned int default_addend; + u32 sub_second_inc; + u32 systime_flags; + u32 adv_ts; + int use_riwt; + int irq_wake; + rwlock_t ptp_lock; + struct mutex aux_ts_lock; + wait_queue_head_t tstamp_busy_wait; + void *mmcaddr; + void *ptpaddr; + unsigned long active_vlans[128]; + int sfty_ce_irq; + int sfty_ue_irq; + int rx_irq[8]; + int tx_irq[8]; + char int_name_mac[25]; + char int_name_wol[25]; + char int_name_lpi[25]; + char int_name_sfty_ce[26]; + char int_name_sfty_ue[26]; + char int_name_rx_irq[240]; + char int_name_tx_irq[272]; + struct dentry *dbgfs_dir; + unsigned long state; + struct workqueue_struct *wq; + struct work_struct service_task; + unsigned long fpe_task_state; + struct workqueue_struct *fpe_wq; + struct work_struct fpe_task; + char wq_name[20]; + unsigned int tc_entries_max; + unsigned int tc_off_max; + struct stmmac_tc_entry *tc_entries; + unsigned int flow_entries_max; + struct stmmac_flow_entry *flow_entries; + unsigned int rfs_entries_max[3]; + unsigned int rfs_entries_cnt[3]; + unsigned int rfs_entries_total; + struct stmmac_rfs_entry *rfs_entries; + long: 32; + struct stmmac_pps_cfg pps[4]; + struct stmmac_rss rss; + unsigned long *af_xdp_zc_qps; + struct bpf_prog *xdp_prog; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct drm_atomic_state; +struct mii_regs { + unsigned int addr; + unsigned int data; + unsigned int addr_shift; + unsigned int reg_shift; + unsigned int addr_mask; + unsigned int reg_mask; + unsigned int clk_csr_shift; + unsigned int clk_csr_mask; +}; -struct drm_private_state { - struct drm_atomic_state *state; - struct drm_private_obj *obj; +struct mac_link { + u32 speed_mask; + u32 speed10; + u32 speed100; + u32 speed1000; + u32 speed2500; + u32 duplex; + struct { + u32 speed2500; + u32 speed5000; + u32 speed10000; + } xgmii; + struct { + u32 speed25000; + u32 speed40000; + u32 speed50000; + u32 speed100000; + } xlgmii; }; -struct drm_device; +struct stmmac_ops; -struct __drm_planes_state; +struct stmmac_dma_ops; -struct __drm_crtcs_state; +struct stmmac_mode_ops; -struct __drm_connnectors_state; +struct stmmac_hwtimestamp; -struct __drm_private_objs_state; +struct stmmac_tc_ops; -struct drm_modeset_acquire_ctx; +struct stmmac_mmc_ops; -struct drm_crtc_commit; +struct dw_xpcs; -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 mac_device_info { + const struct stmmac_ops *mac; + const struct stmmac_desc_ops *desc; + const struct stmmac_dma_ops *dma; + const struct stmmac_mode_ops *mode; + const struct stmmac_hwtimestamp *ptp; + const struct stmmac_tc_ops *tc; + const struct stmmac_mmc_ops *mmc; + struct dw_xpcs *xpcs; + struct phylink_pcs *lynx_pcs; + struct mii_regs mii; + struct mac_link link; + void *pcsr; + unsigned int multicast_filter_bins; + unsigned int unicast_filter_entries; + unsigned int mcast_bits_log2; + unsigned int rx_csum; + unsigned int pcs; + unsigned int pmt; + unsigned int ps; + unsigned int xlgmac; + unsigned int num_vlan; + u32 vlan_filter[32]; + bool vlan_fail_q_en; + u8 vlan_fail_q; }; -struct drm_modeset_lock { - struct ww_mutex mutex; - struct list_head head; -}; +struct rgmii_adv; -struct drm_mode_config_funcs; +struct stmmac_safety_feature_cfg; -struct drm_property; +struct stmmac_est; -struct drm_mode_config_helper_funcs; +struct stmmac_fpe_cfg; -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 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 stmmac_ops { + void (*core_init)(struct mac_device_info *, struct net_device *); + void (*phylink_get_caps)(struct stmmac_priv *); + void (*set_mac)(void *, bool); + int (*rx_ipc)(struct mac_device_info *); + void (*rx_queue_enable)(struct mac_device_info *, u8, u32); + void (*rx_queue_prio)(struct mac_device_info *, u32, u32); + void (*tx_queue_prio)(struct mac_device_info *, u32, u32); + void (*rx_queue_routing)(struct mac_device_info *, u8, u32); + void (*prog_mtl_rx_algorithms)(struct mac_device_info *, u32); + void (*prog_mtl_tx_algorithms)(struct mac_device_info *, u32); + void (*set_mtl_tx_queue_weight)(struct stmmac_priv *, struct mac_device_info *, u32, u32); + void (*map_mtl_to_dma)(struct mac_device_info *, u32, u32); + void (*config_cbs)(struct stmmac_priv *, struct mac_device_info *, u32, u32, u32, u32, u32); + void (*dump_regs)(struct mac_device_info *, u32 *); + int (*host_irq_status)(struct mac_device_info *, struct stmmac_extra_stats *); + int (*host_mtl_irq_status)(struct stmmac_priv *, struct mac_device_info *, u32); + void (*set_filter)(struct mac_device_info *, struct net_device *); + void (*flow_ctrl)(struct mac_device_info *, unsigned int, unsigned int, unsigned int, u32); + void (*pmt)(struct mac_device_info *, unsigned long); + void (*set_umac_addr)(struct mac_device_info *, const unsigned char *, unsigned int); + void (*get_umac_addr)(struct mac_device_info *, unsigned char *, unsigned int); + void (*set_eee_mode)(struct mac_device_info *, bool); + void (*reset_eee_mode)(struct mac_device_info *); + void (*set_eee_lpi_entry_timer)(struct mac_device_info *, int); + void (*set_eee_timer)(struct mac_device_info *, int, int); + void (*set_eee_pls)(struct mac_device_info *, int); + void (*debug)(struct stmmac_priv *, void *, struct stmmac_extra_stats *, u32, u32); + void (*pcs_ctrl_ane)(void *, bool, bool, bool); + void (*pcs_rane)(void *, bool); + void (*pcs_get_adv_lp)(void *, struct rgmii_adv *); + int (*safety_feat_config)(void *, unsigned int, struct stmmac_safety_feature_cfg *); + int (*safety_feat_irq_status)(struct net_device *, void *, unsigned int, struct stmmac_safety_stats *); + int (*safety_feat_dump)(struct stmmac_safety_stats *, int, unsigned long *, const char **); + int (*rxp_config)(void *, struct stmmac_tc_entry *, unsigned int); + int (*flex_pps_config)(void *, int, struct stmmac_pps_cfg *, bool, u32, u32); + void (*set_mac_loopback)(void *, bool); + int (*rss_configure)(struct mac_device_info *, struct stmmac_rss *, u32); + void (*update_vlan_hash)(struct mac_device_info *, u32, __le16, bool); + void (*enable_vlan)(struct mac_device_info *, u32); + int (*add_hw_vlan_rx_fltr)(struct net_device *, struct mac_device_info *, __be16, u16); + int (*del_hw_vlan_rx_fltr)(struct net_device *, struct mac_device_info *, __be16, u16); + void (*restore_hw_vlan_rx_fltr)(struct net_device *, struct mac_device_info *); + int (*get_mac_tx_timestamp)(struct mac_device_info *, u64 *); + void (*sarc_configure)(void *, int); + int (*config_l3_filter)(struct mac_device_info *, u32, bool, bool, bool, bool, u32); + int (*config_l4_filter)(struct mac_device_info *, u32, bool, bool, bool, bool, u32); + void (*set_arp_offload)(struct mac_device_info *, bool, u32); + int (*est_configure)(void *, struct stmmac_est *, unsigned int); + void (*est_irq_status)(void *, struct net_device *, struct stmmac_extra_stats *, u32); + void (*fpe_configure)(void *, struct stmmac_fpe_cfg *, u32, u32, bool); + void (*fpe_send_mpacket)(void *, struct stmmac_fpe_cfg *, enum stmmac_mpacket_type); + int (*fpe_irq_status)(void *, struct net_device *); }; -struct drm_vram_mm; - -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, +struct rgmii_adv { + unsigned int pause; + unsigned int duplex; + unsigned int lp_pause; + unsigned int lp_duplex; }; -struct drm_driver; - -struct drm_minor; - -struct drm_master; - -struct drm_vblank_crtc; - -struct drm_vma_offset_manager; - -struct drm_fb_helper; +struct stmmac_safety_feature_cfg { + u32 tsoee; + u32 mrxpee; + u32 mestee; + u32 mrxee; + u32 mtxee; + u32 epsi; + u32 edpp; + u32 prtyen; + u32 tmouten; +}; -struct drm_device { - int if_version; - struct kref ref; - struct device *dev; +struct stmmac_tc_entry { + bool in_use; + bool in_hw; + bool is_last; + bool is_frag; + void *frag_ptr; + unsigned int table_pos; + u32 handle; + u32 prio; 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; + u32 match_data; + u32 match_en; + u8 af: 1; + u8 rf: 1; + u8 im: 1; + u8 nc: 1; + u8 res1: 4; + u8 frame_offset; + u8 ok_index; + u8 dma_ch_no; + u32 res2; + } val; }; -struct drm_file; +struct stmmac_est { + struct mutex lock; + int enable; + u32 btr_reserve[2]; + u32 btr_offset[2]; + u32 btr[2]; + u32 ctr[2]; + u32 ter; + u32 gcl_unaligned[1024]; + u32 gcl[1024]; + u32 gcl_size; +}; -struct drm_gem_object; +struct stmmac_fpe_cfg { + bool enable; + bool hs_enable; + enum stmmac_fpe_state lp_fpe_state; + enum stmmac_fpe_state lo_fpe_state; + u32 fpe_csr; +}; -struct dma_buf; +struct stmmac_dma_cfg; -struct dma_buf_attachment; +struct stmmac_axi; -struct drm_mode_create_dumb; +struct stmmac_dma_ops { + int (*reset)(void *); + void (*init)(void *, struct stmmac_dma_cfg *, int); + void (*init_chan)(struct stmmac_priv *, void *, struct stmmac_dma_cfg *, u32); + void (*init_rx_chan)(struct stmmac_priv *, void *, struct stmmac_dma_cfg *, dma_addr_t, u32); + void (*init_tx_chan)(struct stmmac_priv *, void *, struct stmmac_dma_cfg *, dma_addr_t, u32); + void (*axi)(void *, struct stmmac_axi *); + void (*dump_regs)(struct stmmac_priv *, void *, u32 *); + void (*dma_rx_mode)(struct stmmac_priv *, void *, int, u32, int, u8); + void (*dma_tx_mode)(struct stmmac_priv *, void *, int, u32, int, u8); + void (*dma_diagnostic_fr)(struct stmmac_extra_stats *, void *); + void (*enable_dma_transmission)(void *); + void (*enable_dma_irq)(struct stmmac_priv *, void *, u32, bool, bool); + void (*disable_dma_irq)(struct stmmac_priv *, void *, u32, bool, bool); + void (*start_tx)(struct stmmac_priv *, void *, u32); + void (*stop_tx)(struct stmmac_priv *, void *, u32); + void (*start_rx)(struct stmmac_priv *, void *, u32); + void (*stop_rx)(struct stmmac_priv *, void *, u32); + int (*dma_interrupt)(struct stmmac_priv *, void *, struct stmmac_extra_stats *, u32, u32); + int (*get_hw_feature)(void *, struct dma_features *); + void (*rx_watchdog)(struct stmmac_priv *, void *, u32, u32); + void (*set_tx_ring_len)(struct stmmac_priv *, void *, u32, u32); + void (*set_rx_ring_len)(struct stmmac_priv *, void *, u32, u32); + void (*set_rx_tail_ptr)(struct stmmac_priv *, void *, u32, u32); + void (*set_tx_tail_ptr)(struct stmmac_priv *, void *, u32, u32); + void (*enable_tso)(struct stmmac_priv *, void *, bool, u32); + void (*qmode)(struct stmmac_priv *, void *, u32, u8); + void (*set_bfsize)(struct stmmac_priv *, void *, int, u32); + void (*enable_sph)(struct stmmac_priv *, void *, bool, u32); + int (*enable_tbs)(struct stmmac_priv *, void *, bool, u32); +}; -struct drm_ioctl_desc; +struct stmmac_dma_cfg { + int pbl; + int txpbl; + int rxpbl; + bool pblx8; + int fixed_burst; + int mixed_burst; + bool aal; + bool eame; + bool multi_msi_en; + bool dche; +}; -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 *); - void (*show_fdinfo)(struct drm_printer *, struct drm_file *); - 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 stmmac_axi { + bool axi_lpi_en; + bool axi_xit_frm; + u32 axi_wr_osr_lmt; + u32 axi_rd_osr_lmt; + bool axi_kbbe; + u32 axi_blen[7]; + bool axi_fb; + bool axi_mb; + bool axi_rb; }; -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 stmmac_mode_ops { + void (*init)(void *, dma_addr_t, unsigned int, unsigned int); + unsigned int (*is_jumbo_frm)(int, int); + int (*jumbo_frm)(struct stmmac_tx_queue *, struct sk_buff *, int); + int (*set_16kib_bfsize)(int); + void (*init_desc3)(struct dma_desc *); + void (*refill_desc3)(struct stmmac_rx_queue *, struct dma_desc *); + void (*clean_desc3)(struct stmmac_tx_queue *, struct dma_desc *); }; -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 stmmac_tx_info { + dma_addr_t buf; + bool map_as_page; + unsigned int len; + bool last_segment; + bool is_jumbo; + enum stmmac_txbuf_type buf_type; }; -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, +struct stmmac_rx_buffer { + union { + struct { + struct page *page; + dma_addr_t addr; + __u32 page_offset; + }; + struct xdp_buff *xdp; + }; + struct page *sec_page; + dma_addr_t sec_addr; }; -struct drm_framebuffer; +struct stmmac_hwtimestamp { + void (*config_hw_tstamping)(void *, u32); + void (*config_sub_second_increment)(void *, u32, int, u32 *); + int (*init_systime)(void *, u32, u32); + int (*config_addend)(void *, u32); + int (*adjust_systime)(void *, u32, u32, int, int); + void (*get_systime)(void *, u64 *); + void (*get_ptptime)(void *, u64 *); + void (*timestamp_interrupt)(struct stmmac_priv *); + void (*hwtstamp_correct_latency)(struct stmmac_priv *); +}; -struct drm_mode_fb_cmd2; +struct tc_cls_u32_offload; -struct drm_format_info; +struct tc_cbs_qopt_offload; -struct drm_display_mode; +struct tc_taprio_qopt_offload; -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_mode_fb_cmd2 { - __u32 fb_id; - __u32 width; - __u32 height; - __u32 pixel_format; - __u32 flags; - __u32 handles[4]; - __u32 pitches[4]; - __u32 offsets[4]; - long: 32; - __u64 modifier[4]; -}; +struct tc_etf_qopt_offload; -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 tc_query_caps_base; -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, +struct stmmac_tc_ops { + int (*init)(struct stmmac_priv *); + int (*setup_cls_u32)(struct stmmac_priv *, struct tc_cls_u32_offload *); + int (*setup_cbs)(struct stmmac_priv *, struct tc_cbs_qopt_offload *); + int (*setup_cls)(struct stmmac_priv *, struct flow_cls_offload *); + int (*setup_taprio)(struct stmmac_priv *, struct tc_taprio_qopt_offload *); + int (*setup_etf)(struct stmmac_priv *, struct tc_etf_qopt_offload *); + int (*query_caps)(struct stmmac_priv *, struct tc_query_caps_base *); }; -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; +struct stmmac_mmc_ops { + void (*ctrl)(void *, unsigned int); + void (*intr_all_mask)(void *); + void (*read)(void *, struct stmmac_counters *); }; -struct drm_object_properties; +struct xpcs_id; -struct drm_mode_object { - uint32_t id; - uint32_t type; - struct drm_object_properties *properties; - struct kref refcount; - void (*free_cb)(struct kref *); +struct dw_xpcs { + struct mdio_device *mdiodev; + const struct xpcs_id *id; + struct phylink_pcs pcs; + phy_interface_t interface; + int dev_flag; }; -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 xpcs_compat; + +struct xpcs_id { + u32 id; + u32 mask; + const struct xpcs_compat *compat; }; -struct drm_object_properties { - int count; - struct drm_property *properties[24]; - long: 32; - uint64_t values[24]; +struct stmmac_rxq_cfg { + u8 mode_to_use; + u32 chan; + u8 pkt_route; + bool use_prio; + u32 prio; }; -struct drm_mode_config_helper_funcs { - void (*atomic_commit_tail)(struct drm_atomic_state *); - int (*atomic_commit_setup)(struct drm_atomic_state *); +struct stmmac_txq_cfg { + u32 weight; + bool coe_unsupported; + u8 mode_to_use; + u32 send_slope; + u32 idle_slope; + u32 high_credit; + u32 low_credit; + bool use_prio; + u32 prio; + int tbs_en; }; -struct drm_plane; +struct stmmac_mdio_bus_data; -struct drm_plane_state; +struct system_counterval_t; -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 plat_stmmacenet_data { + int bus_id; + int phy_addr; + phy_interface_t mac_interface; + phy_interface_t phy_interface; + struct stmmac_mdio_bus_data *mdio_bus_data; + struct device_node *phy_node; + struct fwnode_handle *port_node; + struct device_node *mdio_node; + struct stmmac_dma_cfg *dma_cfg; + struct stmmac_est *est; + struct stmmac_fpe_cfg *fpe_cfg; + struct stmmac_safety_feature_cfg *safety_feat_cfg; + int clk_csr; + int has_gmac; + int enh_desc; + int tx_coe; + int rx_coe; + int bugged_jumbo; + int pmt; + int force_sf_dma_mode; + int force_thresh_dma_mode; + int riwt_off; + int max_speed; + int maxmtu; + int multicast_filter_bins; + int unicast_filter_entries; + int tx_fifo_size; + int rx_fifo_size; + u32 host_dma_width; + u32 rx_queues_to_use; + u32 tx_queues_to_use; + u8 rx_sched_algorithm; + u8 tx_sched_algorithm; + struct stmmac_rxq_cfg rx_queues_cfg[8]; + struct stmmac_txq_cfg tx_queues_cfg[8]; + void (*fix_mac_speed)(void *, unsigned int, unsigned int); + int (*fix_soc_reset)(void *, void *); + int (*serdes_powerup)(struct net_device *, void *); + void (*serdes_powerdown)(struct net_device *, void *); + void (*speed_mode_2500)(struct net_device *, void *); + void (*ptp_clk_freq_config)(struct stmmac_priv *); + int (*init)(struct platform_device *, void *); + void (*exit)(struct platform_device *, void *); + struct mac_device_info * (*setup)(void *); + int (*clks_config)(void *, bool); + int (*crosststamp)(ktime_t *, struct system_counterval_t *, void *); + void (*dump_debug_regs)(void *); + void *bsp_priv; + struct clk *stmmac_clk; + struct clk *pclk; + struct clk *clk_ptp_ref; + unsigned int clk_ptp_rate; + unsigned int clk_ref_rate; + unsigned int mult_fact_100ns; + s32 ptp_max_adj; + u32 cdc_error_adj; + struct reset_control *stmmac_rst; + struct reset_control *stmmac_ahb_rst; + struct stmmac_axi *axi; + int has_gmac4; + int rss_en; + int mac_port_sel_speed; + int has_xgmac; + u8 vlan_fail_q; + unsigned int eee_usecs_rate; + struct pci_dev *pdev; + int int_snapshot_num; + int msi_mac_vec; + int msi_wol_vec; + int msi_lpi_vec; + int msi_sfty_ce_vec; + int msi_sfty_ue_vec; + int msi_rx_base_vec; + int msi_tx_base_vec; + const struct dwmac4_addrs *dwmac4_addrs; + unsigned int flags; }; -enum drm_plane_type { - DRM_PLANE_TYPE_OVERLAY = 0, - DRM_PLANE_TYPE_PRIMARY = 1, - DRM_PLANE_TYPE_CURSOR = 2, +struct stmmac_mdio_bus_data { + unsigned int phy_mask; + unsigned int has_xpcs; + unsigned int xpcs_an_inband; + int *irqs; + int probed_phy_irq; + bool needs_reset; }; -struct drm_crtc; - -struct drm_plane_funcs; - -struct drm_plane_helper_funcs; +struct clocksource; -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; - long: 32; - 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 system_counterval_t { + u64 cycles; + struct clocksource *cs; long: 32; }; -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 stmmac_flow_entry { + unsigned long cookie; + unsigned long action; + u8 ip_proto; + int in_use; + int idx; + int is_l4; }; -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 stmmac_rfs_entry { + unsigned long cookie; + u16 etype; + int in_use; + int type; + int tc; }; -struct drm_mode_set; - -struct drm_pending_vblank_event; +struct rhash_lock_head {}; -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 qdisc_walker { + int stop; + int skip; + int count; + int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *); }; -struct drm_connector; - -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; +struct tcf_walker { + int stop; + int skip; + int count; + bool nonempty; + unsigned long cookie; + int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); }; -enum drm_connector_registration_state { - DRM_CONNECTOR_INITIALIZING = 0, - DRM_CONNECTOR_REGISTERED = 1, - DRM_CONNECTOR_UNREGISTERED = 2, +struct tcf_exts { + int action; + int police; }; -enum drm_connector_status { - connector_status_connected = 1, - connector_status_disconnected = 2, - connector_status_unknown = 3, +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, }; -enum subpixel_order { - SubPixelUnknown = 0, - SubPixelHorizontalRGB = 1, - SubPixelHorizontalBGR = 2, - SubPixelVerticalRGB = 3, - SubPixelVerticalBGR = 4, - SubPixelNone = 5, +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, }; -struct drm_scrambling { - bool supported; - bool low_rates; +enum netdev_xdp_act { + NETDEV_XDP_ACT_BASIC = 1, + NETDEV_XDP_ACT_REDIRECT = 2, + NETDEV_XDP_ACT_NDO_XMIT = 4, + NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, + NETDEV_XDP_ACT_HW_OFFLOAD = 16, + NETDEV_XDP_ACT_RX_SG = 32, + NETDEV_XDP_ACT_NDO_XMIT_SG = 64, + NETDEV_XDP_ACT_MASK = 127, }; -struct drm_scdc { - bool supported; - bool read_request; - struct drm_scrambling scrambling; +enum cpsw_ale_control { + ALE_ENABLE = 0, + ALE_CLEAR = 1, + ALE_AGEOUT = 2, + ALE_P0_UNI_FLOOD = 3, + ALE_VLAN_NOLEARN = 4, + ALE_NO_PORT_VLAN = 5, + ALE_OUI_DENY = 6, + ALE_BYPASS = 7, + ALE_RATE_LIMIT_TX = 8, + ALE_VLAN_AWARE = 9, + ALE_AUTH_ENABLE = 10, + ALE_RATE_LIMIT = 11, + ALE_PORT_STATE = 12, + ALE_PORT_DROP_UNTAGGED = 13, + ALE_PORT_DROP_UNKNOWN_VLAN = 14, + ALE_PORT_NOLEARN = 15, + ALE_PORT_NO_SA_UPDATE = 16, + ALE_PORT_UNKNOWN_VLAN_MEMBER = 17, + ALE_PORT_UNKNOWN_MCAST_FLOOD = 18, + ALE_PORT_UNKNOWN_REG_MCAST_FLOOD = 19, + ALE_PORT_UNTAGGED_EGRESS = 20, + ALE_PORT_MACONLY = 21, + ALE_PORT_MACONLY_CAF = 22, + ALE_PORT_BCAST_LIMIT = 23, + ALE_PORT_MCAST_LIMIT = 24, + ALE_DEFAULT_THREAD_ID = 25, + ALE_DEFAULT_THREAD_ENABLE = 26, + ALE_NUM_CONTROLS = 27, }; -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; +enum cpsw_ale_port_state { + ALE_PORT_STATE_DISABLE = 0, + ALE_PORT_STATE_BLOCK = 1, + ALE_PORT_STATE_LEARN = 2, + ALE_PORT_STATE_FORWARD = 3, }; -struct drm_hdmi_info { - struct drm_scdc scdc; - unsigned long y420_vdb_modes[8]; - unsigned long y420_cmdb_modes[8]; - u8 y420_dc_modes; - u8 max_frl_rate_per_lane; - u8 max_lanes; - struct drm_hdmi_dsc_cap dsc_cap; +enum cpsw_sl_regs { + CPSW_SL_IDVER = 0, + CPSW_SL_MACCONTROL = 1, + CPSW_SL_MACSTATUS = 2, + CPSW_SL_SOFT_RESET = 3, + CPSW_SL_RX_MAXLEN = 4, + CPSW_SL_BOFFTEST = 5, + CPSW_SL_RX_PAUSE = 6, + CPSW_SL_TX_PAUSE = 7, + CPSW_SL_EMCONTROL = 8, + CPSW_SL_RX_PRI_MAP = 9, + CPSW_SL_TX_GAP = 10, }; -struct drm_monitor_range_info { - u16 min_vfreq; - u16 max_vfreq; +enum { + CPSW_SL_CTL_FULLDUPLEX = 1, + CPSW_SL_CTL_LOOPBACK = 2, + CPSW_SL_CTL_MTEST = 4, + CPSW_SL_CTL_RX_FLOW_EN = 8, + CPSW_SL_CTL_TX_FLOW_EN = 16, + CPSW_SL_CTL_GMII_EN = 32, + CPSW_SL_CTL_TX_PACE = 64, + CPSW_SL_CTL_GIG = 128, + CPSW_SL_CTL_XGIG = 256, + CPSW_SL_CTL_TX_SHORT_GAP_EN = 1024, + CPSW_SL_CTL_CMD_IDLE = 2048, + CPSW_SL_CTL_CRC_TYPE = 4096, + CPSW_SL_CTL_XGMII_EN = 8192, + CPSW_SL_CTL_IFCTL_A = 32768, + CPSW_SL_CTL_IFCTL_B = 65536, + CPSW_SL_CTL_GIG_FORCE = 131072, + CPSW_SL_CTL_EXT_EN = 262144, + CPSW_SL_CTL_EXT_EN_RX_FLO = 524288, + CPSW_SL_CTL_EXT_EN_TX_FLO = 1048576, + CPSW_SL_CTL_TX_SG_LIM_EN = 2097152, + CPSW_SL_CTL_RX_CEF_EN = 4194304, + CPSW_SL_CTL_RX_CSF_EN = 8388608, + CPSW_SL_CTL_RX_CMF_EN = 16777216, + CPSW_SL_CTL_EXT_EN_XGIG = 33554432, + CPSW_SL_CTL_FUNCS_COUNT = 33554433, }; -struct drm_luminance_range_info { - u32 min_luminance; - u32 max_luminance; +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, }; -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_audio; - 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; +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, }; -struct drm_privacy_screen; - -enum drm_connector_force { - DRM_FORCE_UNSPECIFIED = 0, - DRM_FORCE_OFF = 1, - DRM_FORCE_ON = 2, - DRM_FORCE_ON_DIGITAL = 3, +struct xdp_attachment_info { + struct bpf_prog *prog; + u32 flags; }; -enum drm_panel_orientation { - DRM_MODE_PANEL_ORIENTATION_UNKNOWN = -1, - DRM_MODE_PANEL_ORIENTATION_NORMAL = 0, - DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP = 1, - DRM_MODE_PANEL_ORIENTATION_LEFT_UP = 2, - DRM_MODE_PANEL_ORIENTATION_RIGHT_UP = 3, +struct cpsw_ale_ratelimit { + unsigned long cookie; + long: 32; + u64 rate_packet_ps; }; -struct drm_connector_tv_margins { - unsigned int bottom; - unsigned int left; - unsigned int right; - unsigned int top; -}; +struct cpsw_common; -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, +struct cpsw_priv { + struct net_device *ndev; + struct device *dev; + u32 msg_enable; + u8 mac_addr[6]; + bool rx_pause; + bool tx_pause; + bool mqprio_hw; + int fifo_bw[4]; + int shp_cfg_speed; + int tx_ts_enabled; + int rx_ts_enabled; + struct bpf_prog *xdp_prog; + long: 32; + long: 32; + struct xdp_rxq_info xdp_rxq[8]; + struct xdp_attachment_info xdpi; + u32 emac_port; + struct cpsw_common *cpsw; + int offload_fwd_mark; + u32 tx_packet_min; + struct cpsw_ale_ratelimit ale_bc_ratelimit; + struct cpsw_ale_ratelimit ale_mc_ratelimit; + long: 32; + long: 32; }; -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 cpsw_slave_data; -struct hdr_static_metadata { - __u8 eotf; - __u8 metadata_type; - __u16 max_cll; - __u16 max_fall; - __u16 min_cll; +struct cpsw_platform_data { + struct cpsw_slave_data *slave_data; + u32 ss_reg_ofs; + u32 channels; + u32 slaves; + u32 active_slave; + u32 bd_ram_size; + u32 mac_control; + u16 default_vlan; + bool dual_emac; }; -struct hdr_sink_metadata { - __u32 metadata_type; - union { - struct hdr_static_metadata hdmi_type1; - }; +struct cpdma_chan; + +struct cpsw_vector { + struct cpdma_chan *ch; + int budget; }; -struct drm_connector_funcs; +struct cpsw_ss_regs; -struct drm_property_blob; +struct cpsw_wr_regs; -struct drm_connector_helper_funcs; +struct cpsw_host_regs; -struct drm_edid; +struct cpsw_slave; -struct drm_encoder; +struct cpdma_ctlr; -struct drm_connector_state; +struct cpsw_ale; -struct drm_tile_group; +struct cpts; -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; - long: 32; - 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 cpsw_common { + struct device *dev; + struct cpsw_platform_data data; long: 32; + struct napi_struct napi_rx; + struct napi_struct napi_tx; + struct cpsw_ss_regs *regs; + struct cpsw_wr_regs *wr_regs; + u8 *hw_stats; + struct cpsw_host_regs *host_port_regs; + u32 version; + u32 coal_intvl; + u32 bus_freq_mhz; + int rx_packet_max; + int descs_pool_size; + struct cpsw_slave *slaves; + struct cpdma_ctlr *dma; + struct cpsw_vector txv[8]; + struct cpsw_vector rxv[8]; + struct cpsw_ale *ale; + bool quirk_irq; + bool rx_irq_disabled; + bool tx_irq_disabled; + u32 irqs_table[2]; + int misc_irq; + struct cpts *cpts; + struct devlink *devlink; + int rx_ch_num; + int tx_ch_num; + int speed; + int usage_count; + struct page_pool *page_pool[8]; + u8 br_members; + struct net_device *hw_bridge_dev; + bool ale_bypass; + u8 base_mac[6]; }; -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 cpsw_slave_data { + struct device_node *slave_node; + struct device_node *phy_node; + char phy_id[61]; + phy_interface_t phy_if; + u8 mac_addr[6]; + u16 dual_emac_res_vlan; + struct phy *ifphy; + bool disabled; }; -enum drm_link_status { - DRM_LINK_STATUS_GOOD = 0, - DRM_LINK_STATUS_BAD = 1, +struct cpsw_ss_regs { + u32 id_ver; + u32 control; + u32 soft_reset; + u32 stat_port_en; + u32 ptype; + u32 soft_idle; + u32 thru_rate; + u32 gap_thresh; + u32 tx_start_wds; + u32 flow_control; + u32 vlan_ltype; + u32 ts_ltype; + u32 dlr_ltype; }; -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, +struct cpsw_wr_regs { + u32 id_ver; + u32 soft_reset; + u32 control; + u32 int_control; + u32 rx_thresh_en; + u32 rx_en; + u32 tx_en; + u32 misc_en; + u32 mem_allign1[8]; + u32 rx_thresh_stat; + u32 rx_stat; + u32 tx_stat; + u32 misc_stat; + u32 mem_allign2[8]; + u32 rx_imax; + u32 tx_imax; }; -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 cpsw_host_regs { + u32 max_blks; + u32 blk_cnt; + u32 tx_in_ctl; + u32 port_vlan; + u32 tx_pri_map; + u32 cpdma_tx_pri_map; + u32 cpdma_rx_chan_map; }; -enum drm_colorspace { - DRM_MODE_COLORIMETRY_DEFAULT = 0, - DRM_MODE_COLORIMETRY_NO_DATA = 0, - DRM_MODE_COLORIMETRY_SMPTE_170M_YCC = 1, - DRM_MODE_COLORIMETRY_BT709_YCC = 2, - DRM_MODE_COLORIMETRY_XVYCC_601 = 3, - DRM_MODE_COLORIMETRY_XVYCC_709 = 4, - DRM_MODE_COLORIMETRY_SYCC_601 = 5, - DRM_MODE_COLORIMETRY_OPYCC_601 = 6, - DRM_MODE_COLORIMETRY_OPRGB = 7, - DRM_MODE_COLORIMETRY_BT2020_CYCC = 8, - DRM_MODE_COLORIMETRY_BT2020_RGB = 9, - DRM_MODE_COLORIMETRY_BT2020_YCC = 10, - DRM_MODE_COLORIMETRY_DCI_P3_RGB_D65 = 11, - DRM_MODE_COLORIMETRY_DCI_P3_RGB_THEATER = 12, - DRM_MODE_COLORIMETRY_RGB_WIDE_FIXED = 13, - DRM_MODE_COLORIMETRY_RGB_WIDE_FLOAT = 14, - DRM_MODE_COLORIMETRY_BT601_YCC = 15, - DRM_MODE_COLORIMETRY_COUNT = 16, -}; +struct cpsw_sl; -enum drm_privacy_screen_status { - PRIVACY_SCREEN_DISABLED = 0, - PRIVACY_SCREEN_ENABLED = 1, - PRIVACY_SCREEN_DISABLED_LOCKED = 2, - PRIVACY_SCREEN_ENABLED_LOCKED = 3, +struct cpsw_slave { + void *regs; + int slave_num; + u32 mac_control; + struct cpsw_slave_data *data; + struct phy_device *phy; + struct net_device *ndev; + u32 port_vlan; + struct cpsw_sl *mac_sl; }; -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; - enum drm_colorspace 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 cpsw_ale_params { + struct device *dev; + void *ale_regs; + unsigned long ale_ageout; + unsigned long ale_entries; + unsigned long ale_ports; + bool nu_switch_ale; + u32 major_ver_mask; + const char *dev_id; + unsigned long bus_freq; }; -struct drm_encoder_funcs; +struct ale_entry_fld; -struct drm_encoder_helper_funcs; +struct cpsw_ale { + struct cpsw_ale_params params; + struct timer_list timer; + unsigned long ageout; + u32 version; + u32 features; + u32 port_mask_bits; + u32 port_num_bits; + u32 vlan_field_bits; + unsigned long *p0_untag_vid_mask; + const struct ale_entry_fld *vlan_entry_tbl; +}; -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 ale_entry_fld { + u8 start_bit; + u8 num_bits; + u8 flags; }; -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 cpts_event { + struct list_head list; + unsigned long tmo; + u32 high; + u32 low; + long: 32; + u64 timestamp; }; -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 cpsw_cpts; + +struct cpts { + struct device *dev; + struct cpsw_cpts *reg; + int tx_enable; + int rx_enable; + struct ptp_clock_info info; + struct ptp_clock *clock; + spinlock_t lock; + u32 cc_mult; + long: 32; + struct cyclecounter cc; + struct timecounter tc; + int phc_index; + struct clk *refclk; + struct list_head events; + struct list_head pool; + struct cpts_event pool_data[32]; + unsigned long ov_check_period; + struct sk_buff_head txq; + long: 32; + u64 cur_timestamp; + u32 mult_new; + struct mutex ptp_clk_mutex; + bool irq_poll; + struct completion ts_push_complete; + u32 hw_ts_enable; }; -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 cpsw_cpts { + u32 idver; + u32 control; + u32 rftclk_sel; + u32 ts_push; + u32 ts_load_val; + u32 ts_load_en; + u32 res2[2]; + u32 intstat_raw; + u32 intstat_masked; + u32 int_enable; + u32 res3; + u32 event_pop; + u32 event_low; + u32 event_high; }; -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 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 va_format; +struct gpio_array; -struct drm_printer { - void (*printfn)(struct drm_printer *, struct va_format *); - void (*puts)(struct drm_printer *, const char *); - void *arg; - const char *prefix; +struct gpio_descs { + struct gpio_array *info; + unsigned int ndescs; + struct gpio_desc *desc[0]; }; -struct __va_list; - -typedef __builtin_va_list va_list; +typedef void (*cpdma_handler_fn)(void *, int, int); -struct va_format { - const char *fmt; - va_list *va; +struct cpsw_meta_xdp { + struct net_device *ndev; + int ch; }; -struct __va_list { - void *__ap; +struct addr_sync_ctx { + struct net_device *ndev; + const u8 *addr; + int consumed; + int flush; }; -struct drm_writeback_connector; - -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 *); +enum usb_interface_condition { + USB_INTERFACE_UNBOUND = 0, + USB_INTERFACE_BINDING = 1, + USB_INTERFACE_BOUND = 2, + USB_INTERFACE_UNBINDING = 3, }; -struct edid; +enum usb_wireless_status { + USB_WIRELESS_STATUS_NA = 0, + USB_WIRELESS_STATUS_DISCONNECTED = 1, + USB_WIRELESS_STATUS_CONNECTED = 2, +}; -struct drm_edid { - size_t size; - const struct edid *edid; +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, }; -struct drm_tile_group { - struct kref refcount; - struct drm_device *dev; - int id; - u8 group_data[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 drm_scaling_filter { - DRM_SCALING_FILTER_DEFAULT = 0, - DRM_SCALING_FILTER_NEAREST_NEIGHBOR = 1, +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 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; +enum usb3_link_state { + USB3_LPM_U0 = 0, + USB3_LPM_U1 = 1, + USB3_LPM_U2 = 2, + USB3_LPM_U3 = 3, }; -enum mode_set_atomic { - LEAVE_ATOMIC_MODE_SET = 0, - ENTER_ATOMIC_MODE_SET = 1, +enum usb_phy_type { + USB_PHY_TYPE_UNDEFINED = 0, + USB_PHY_TYPE_USB2 = 1, + USB_PHY_TYPE_USB3 = 2, }; -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 *); +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 drm_crtc_crc_entry { - bool has_frame_counter; - uint32_t frame; - uint32_t crcs[10]; +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 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); +enum usb_charger_type { + UNKNOWN_TYPE = 0, + SDP_TYPE = 1, + DCP_TYPE = 2, + CDP_TYPE = 3, + ACA_TYPE = 4, }; -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 usb_charger_state { + USB_CHARGER_DEFAULT = 0, + USB_CHARGER_PRESENT = 1, + USB_CHARGER_ABSENT = 2, }; -enum drm_color_range { - DRM_COLOR_YCBCR_LIMITED_RANGE = 0, - DRM_COLOR_YCBCR_FULL_RANGE = 1, - DRM_COLOR_RANGE_MAX = 2, +enum usb_dev_authorize_policy { + USB_DEVICE_AUTHORIZE_NONE = 0, + USB_DEVICE_AUTHORIZE_ALL = 1, + USB_DEVICE_AUTHORIZE_INTERNAL = 2, }; -struct drm_rect { - int x1; - int y1; - int x2; - int y2; +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, }; -struct dma_fence; +struct usb_host_interface; -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 usb_interface_assoc_descriptor; -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_enable)(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 usb_interface { + struct usb_host_interface *altsetting; + struct usb_host_interface *cur_altsetting; + unsigned int num_altsetting; + struct usb_interface_assoc_descriptor *intf_assoc; + int minor; + enum usb_interface_condition condition; + unsigned int sysfs_files_created: 1; + unsigned int ep_devs_created: 1; + unsigned int unregistering: 1; + unsigned int needs_remote_wakeup: 1; + unsigned int needs_altsetting0: 1; + unsigned int needs_binding: 1; + unsigned int resetting_device: 1; + unsigned int authorized: 1; + enum usb_wireless_status wireless_status; + struct work_struct wireless_status_work; + struct device dev; + struct device *usb_dev; + struct work_struct reset_ws; + long: 32; }; -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 usb_interface_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bInterfaceNumber; + __u8 bAlternateSetting; + __u8 bNumEndpoints; + __u8 bInterfaceClass; + __u8 bInterfaceSubClass; + __u8 bInterfaceProtocol; + __u8 iInterface; }; -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 usb_host_endpoint; -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 usb_host_interface { + struct usb_interface_descriptor desc; + int extralen; + unsigned char *extra; + struct usb_host_endpoint *endpoint; + char *string; }; -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 usb_endpoint_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bEndpointAddress; + __u8 bmAttributes; + __le16 wMaxPacketSize; + __u8 bInterval; + __u8 bRefresh; + __u8 bSynchAddress; +} __attribute__((packed)); -enum drm_bridge_attach_flags { - DRM_BRIDGE_ATTACH_NO_CONNECTOR = 1, +struct usb_ss_ep_comp_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bMaxBurst; + __u8 bmAttributes; + __le16 wBytesPerInterval; }; -enum drm_bridge_ops { - DRM_BRIDGE_OP_DETECT = 1, - DRM_BRIDGE_OP_EDID = 2, - DRM_BRIDGE_OP_HPD = 4, - DRM_BRIDGE_OP_MODES = 8, +struct usb_ssp_isoc_ep_comp_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wReseved; + __le32 dwBytesPerInterval; }; -struct drm_bridge_timings; +struct ep_device; -struct drm_bridge_funcs; +struct usb_host_endpoint { + struct usb_endpoint_descriptor desc; + struct usb_ss_ep_comp_descriptor ss_ep_comp; + struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp; + long: 0; + struct list_head urb_list; + void *hcpriv; + struct ep_device *ep_dev; + unsigned char *extra; + int extralen; + int enabled; + int streams; +} __attribute__((packed)); -struct drm_bridge { - struct drm_private_obj base; - struct drm_device *dev; - struct drm_encoder *encoder; - struct list_head chain_node; - struct device_node *of_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 usb_interface_assoc_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bFirstInterface; + __u8 bInterfaceCount; + __u8 bFunctionClass; + __u8 bFunctionSubClass; + __u8 bFunctionProtocol; + __u8 iFunction; }; -struct drm_bridge_timings { - u32 input_bus_flags; - u32 setup_time_ps; - u32 hold_time_ps; - bool dual_link; +struct usb_descriptor_header { + __u8 bLength; + __u8 bDescriptorType; }; -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 usb_device; -struct drm_bus_cfg { - u32 format; - u32 flags; +struct each_dev_arg { + void *data; + int (*fn)(struct usb_device *, void *); }; -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 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; }; -enum drm_ioctl_flags { - DRM_AUTH = 1, - DRM_MASTER = 2, - DRM_ROOT_ONLY = 4, - DRM_UNLOCKED = 16, - DRM_RENDER_ALLOW = 32, +struct usb2_lpm_parameters { + unsigned int besl; + int timeout; }; -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, +struct usb3_lpm_parameters { + unsigned int mel; + unsigned int pel; + unsigned int sel; + int timeout; }; -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 usb_tt; -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; - long: 32; -}; +struct usb_bus; -typedef unsigned int drm_magic_t; +struct usb_host_bos; -struct drm_prime_file_private { - struct mutex lock; - struct rb_root dmabufs; - struct rb_root handles; -}; +struct usb_host_config; -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; - long: 32; - u64 client_id; - 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 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; long: 32; + struct device dev; + struct usb_device_descriptor descriptor; + struct usb_host_bos *bos; + struct usb_host_config *config; + struct usb_host_config *actconfig; + struct usb_host_endpoint *ep_in[16]; + struct usb_host_endpoint *ep_out[16]; + char **rawdescriptors; + unsigned short bus_mA; + u8 portnum; + u8 level; + u8 devaddr; + unsigned int can_submit: 1; + unsigned int persist_enabled: 1; + unsigned int reset_in_progress: 1; + unsigned int have_langid: 1; + unsigned int authorized: 1; + unsigned int authenticated: 1; + unsigned int lpm_capable: 1; + unsigned int lpm_devinit_allow: 1; + unsigned int usb2_hw_lpm_capable: 1; + unsigned int usb2_hw_lpm_besl_capable: 1; + unsigned int usb2_hw_lpm_enabled: 1; + unsigned int usb2_hw_lpm_allowed: 1; + unsigned int usb3_lpm_u1_enabled: 1; + unsigned int usb3_lpm_u2_enabled: 1; + int string_langid; + char *product; + char *manufacturer; + char *serial; + struct list_head filelist; + int maxchild; + u32 quirks; + atomic_t urbnum; + unsigned long active_duration; + unsigned long connect_time; + unsigned int do_remote_wakeup: 1; + unsigned int reset_resume: 1; + unsigned int port_is_suspended: 1; + int slot_id; + struct usb2_lpm_parameters l1_params; + struct usb3_lpm_parameters u1_params; + struct usb3_lpm_parameters u2_params; + unsigned int lpm_disable_count; + u16 hub_delay; + unsigned int use_generic_driver: 1; }; -struct 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 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 drm_mode_create_dumb { - __u32 height; - __u32 width; - __u32 bpp; - __u32 flags; - __u32 handle; - __u32 pitch; - __u64 size; +struct usb_devmap { + unsigned long devicemap[4]; }; -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 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 kthread_worker; +struct usb_bos_descriptor; -struct drm_vblank_crtc { - struct drm_device *dev; - wait_queue_head_t queue; - struct timer_list disable_timer; - seqlock_t seqlock; - long: 32; - 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 usb_ext_cap_descriptor; -struct kthread_work; +struct usb_ss_cap_descriptor; -struct kthread_worker { - unsigned int flags; - raw_spinlock_t lock; - struct list_head work_list; - struct list_head delayed_work_list; - struct task_struct *task; - struct kthread_work *current_work; -}; +struct usb_ssp_cap_descriptor; -typedef void (*kthread_work_func_t)(struct kthread_work *); +struct usb_ss_container_id_descriptor; -struct kthread_work { - struct list_head node; - kthread_work_func_t func; - struct kthread_worker *worker; - int canceling; -}; +struct usb_ptm_cap_descriptor; -struct drm_event { - __u32 type; - __u32 length; +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 drm_event_vblank { - struct drm_event base; - __u64 user_data; - __u32 tv_sec; - __u32 tv_usec; - __u32 sequence; - __u32 crtc_id; -}; +struct usb_bos_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wTotalLength; + __u8 bNumDeviceCaps; +} __attribute__((packed)); -struct drm_event_crtc_sequence { - struct drm_event base; - __u64 user_data; - __s64 time_ns; - __u64 sequence; -}; +struct usb_ext_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __le32 bmAttributes; +} __attribute__((packed)); -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 usb_ss_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bmAttributes; + __le16 wSpeedSupported; + __u8 bFunctionalitySupport; + __u8 bU1devExitLat; + __le16 bU2DevExitLat; }; -struct drm_pending_vblank_event { - struct drm_pending_event base; - unsigned int pipe; - u64 sequence; +struct usb_ssp_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __le32 bmAttributes; + __le16 wFunctionalitySupport; + __le16 wReserved; union { - struct drm_event base; - struct drm_event_vblank vbl; - struct drm_event_crtc_sequence seq; - } event; -}; - -struct host1x_client; - -struct host1x_client_ops { - int (*early_init)(struct host1x_client *); - int (*init)(struct host1x_client *); - int (*exit)(struct host1x_client *); - int (*late_exit)(struct host1x_client *); - int (*suspend)(struct host1x_client *); - int (*resume)(struct host1x_client *); + __le32 legacy_padding; + struct { + struct {} __empty_bmSublinkSpeedAttr; + __le32 bmSublinkSpeedAttr[0]; + }; + }; }; -enum host1x_class { - HOST1X_CLASS_HOST1X = 1, - HOST1X_CLASS_GR2D = 81, - HOST1X_CLASS_GR2D_SB = 82, - HOST1X_CLASS_VIC = 93, - HOST1X_CLASS_GR3D = 96, - HOST1X_CLASS_NVDEC = 240, - HOST1X_CLASS_NVDEC1 = 245, +struct usb_ss_container_id_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __u8 ContainerID[16]; }; -struct host1x_bo_cache { - struct list_head mappings; - struct mutex lock; +struct usb_ptm_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; }; -struct host1x_channel; +struct usb_config_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wTotalLength; + __u8 bNumInterfaces; + __u8 bConfigurationValue; + __u8 iConfiguration; + __u8 bmAttributes; + __u8 bMaxPower; +} __attribute__((packed)); -struct host1x_syncpt; +struct usb_interface_cache; -struct host1x_client { - struct list_head list; - struct device *host; - struct device *dev; - struct iommu_group *group; - const struct host1x_client_ops *ops; - enum host1x_class class; - struct host1x_channel *channel; - struct host1x_syncpt **syncpts; - unsigned int num_syncpts; - struct host1x_client *parent; - unsigned int usecount; - struct mutex lock; - struct host1x_bo_cache 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 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]; - long: 32; +struct usb_interface_cache { + unsigned int num_altsetting; + struct kref ref; + struct usb_host_interface altsetting[0]; }; -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 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 drm_clip_rect { - unsigned short x1; - unsigned short y1; - unsigned short x2; - unsigned short y2; +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 drm_mm; - -struct drm_mm_node { - unsigned long color; - long: 32; - 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; - long: 32; -}; +struct urb; -struct drm_vma_offset_node { - rwlock_t vm_lock; - long: 32; - struct drm_mm_node vm_node; - struct rb_root vm_files; - void *driver_private; -}; +struct hc_driver; -struct dma_resv_list; +struct usb_phy; -struct dma_resv { - struct ww_mutex lock; - struct dma_resv_list __attribute__((btf_type_tag("rcu"))) *fences; -}; +struct usb_phy_roothub; -struct drm_gem_object_funcs; +struct dma_pool; -struct drm_gem_lru; +struct gen_pool; -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 *funcs; - struct list_head lru_node; - struct drm_gem_lru *lru; -}; - -struct drm_mm { - void (*color_adjust)(const struct drm_mm_node *, unsigned long, u64 *, u64 *); - struct list_head hole_stack; - long: 32; - 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 dma_resv_list { - struct callback_head rcu; - u32 num_fences; - u32 max_fences; - struct dma_fence __attribute__((btf_type_tag("rcu"))) *table[0]; -}; - -enum drm_gem_object_status { - DRM_GEM_OBJECT_RESIDENT = 1, - DRM_GEM_OBJECT_PURGEABLE = 2, -}; - -struct iosys_map; - -struct drm_gem_object_funcs { - 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 *); - int (*evict)(struct drm_gem_object *); - enum drm_gem_object_status (*status)(struct drm_gem_object *); - const struct vm_operations_struct *vm_ops; -}; - -struct drm_gem_lru { - struct mutex *lock; - long count; - struct list_head list; -}; - -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; +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; - struct kref refcount; - int error; - long: 32; -}; - -struct dma_fence_ops { - bool use_64bit_seqno; - const char * (*get_driver_name)(struct dma_fence *); - const char * (*get_timeline_name)(struct dma_fence *); - bool (*enable_signaling)(struct dma_fence *); - bool (*signaled)(struct dma_fence *); - long (*wait)(struct dma_fence *, bool, long); - void (*release)(struct dma_fence *); - void (*fence_value_str)(struct dma_fence *, char *, int); - void (*timeline_value_str)(struct dma_fence *, char *, int); - void (*set_deadline)(struct dma_fence *, ktime_t); -}; - -struct drm_vma_offset_manager { - rwlock_t vm_lock; - long: 32; - struct drm_mm vm_addr_space_mm; -}; - -struct drm_info_list { - const char *name; - int (*show)(struct seq_file *, void *); - u32 driver_features; - void *data; + enum usb_dev_authorize_policy dev_policy; + unsigned int rh_registered: 1; + unsigned int rh_pollable: 1; + unsigned int msix_enabled: 1; + unsigned int msi_enabled: 1; + unsigned int skip_phy_initialization: 1; + unsigned int uses_new_polling: 1; + unsigned int has_tt: 1; + unsigned int amd_resume_bug: 1; + unsigned int can_do_streams: 1; + unsigned int tpl_support: 1; + unsigned int cant_recv_wakeups: 1; + unsigned int irq; + void *regs; + resource_size_t rsrc_start; + resource_size_t rsrc_len; + unsigned int power_budget; + struct giveback_urb_bh high_prio_bh; + struct giveback_urb_bh low_prio_bh; + struct mutex *address0_mutex; + struct mutex *bandwidth_mutex; + struct usb_hcd *shared_hcd; + struct usb_hcd *primary_hcd; + struct dma_pool *pool[4]; + int state; + struct gen_pool *localmem_pool; + unsigned long hcd_priv[0]; }; -struct tegra_windowgroup_soc; +typedef void (*usb_complete_t)(struct urb *); -struct tegra_dc_soc_info { - bool supports_background_color; - bool supports_interlacing; - bool supports_cursor; - bool supports_block_linear; - bool supports_sector_layout; - bool has_legacy_blending; - unsigned int pitch_align; - bool has_powergate; - bool coupled_pm; - bool has_nvdisplay; - const struct tegra_windowgroup_soc *wgrps; - unsigned int num_wgrps; - const u32 *primary_formats; - unsigned int num_primary_formats; - const u32 *overlay_formats; - unsigned int num_overlay_formats; - const u64 *modifiers; - bool has_win_a_without_filters; - bool has_win_b_vfilter_mem_client; - bool has_win_c_without_vert_filter; - bool plane_tiled_memory_bandwidth_x2; - bool has_pll_d2_out0; +struct usb_iso_packet_descriptor { + unsigned int offset; + unsigned int length; + unsigned int actual_length; + int status; }; -struct tegra_windowgroup_soc { - unsigned int index; - unsigned int dc; - const unsigned int *windows; - unsigned int num_windows; -}; +struct usb_anchor; -enum tegra_bo_tiling_mode { - TEGRA_BO_TILING_MODE_PITCH = 0, - TEGRA_BO_TILING_MODE_TILED = 1, - TEGRA_BO_TILING_MODE_BLOCK = 2, +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]; }; -enum tegra_bo_sector_layout { - TEGRA_BO_SECTOR_LAYOUT_TEGRA = 0, - TEGRA_BO_SECTOR_LAYOUT_GPU = 1, +struct usb_anchor { + struct list_head urb_list; + wait_queue_head_t wait; + spinlock_t lock; + atomic_t suspend_wakeups; + unsigned int poisoned: 1; }; -struct tegra_dc_state { - struct drm_crtc_state base; - struct clk *clk; - unsigned long pclk; - unsigned int div; - u32 planes; +struct hc_driver { + const char *description; + const char *product_desc; + size_t hcd_priv_size; + irqreturn_t (*irq)(struct usb_hcd *); + int flags; + int (*reset)(struct usb_hcd *); + int (*start)(struct usb_hcd *); + int (*pci_suspend)(struct usb_hcd *, bool); + int (*pci_resume)(struct usb_hcd *, pm_message_t); + int (*pci_poweroff_late)(struct usb_hcd *, bool); + void (*stop)(struct usb_hcd *); + void (*shutdown)(struct usb_hcd *); + int (*get_frame_number)(struct usb_hcd *); + int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t); + int (*urb_dequeue)(struct usb_hcd *, struct urb *, int); + int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t); + void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *); + void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *); + void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *); + int (*hub_status_data)(struct usb_hcd *, char *); + int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); + int (*bus_suspend)(struct usb_hcd *); + int (*bus_resume)(struct usb_hcd *); + int (*start_port_reset)(struct usb_hcd *, unsigned int); + unsigned long (*get_resuming_ports)(struct usb_hcd *); + void (*relinquish_port)(struct usb_hcd *, int); + int (*port_handed_over)(struct usb_hcd *, int); + void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *); + int (*alloc_dev)(struct usb_hcd *, struct usb_device *); + void (*free_dev)(struct usb_hcd *, struct usb_device *); + int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t); + int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t); + int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); + void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); + int (*address_device)(struct usb_hcd *, struct usb_device *); + 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 tegra_dc_stats { - unsigned long frames; - unsigned long vblank; - unsigned long underflow; - unsigned long overflow; - unsigned long frames_total; - unsigned long vblank_total; - unsigned long underflow_total; - unsigned long overflow_total; +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 tegra_output; - -struct tegra_dc { - struct host1x_client client; - struct host1x_syncpt *syncpt; - struct device *dev; - struct drm_crtc base; - unsigned int powergate; - int pipe; - struct clk *clk; - struct reset_control *rst; - void *regs; - int irq; - struct tegra_output *rgb; - struct tegra_dc_stats stats; - struct list_head list; - struct drm_info_list *debugfs_files; - const struct tegra_dc_soc_info *soc; - bool has_opp_table; +struct atomic_notifier_head { + spinlock_t lock; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -struct drm_panel; +struct usb_otg; -struct cec_notifier; +struct usb_phy_io_ops; -struct tegra_output { - struct device_node *of_node; +struct usb_phy { struct device *dev; - struct drm_bridge *bridge; - struct drm_panel *panel; - struct i2c_adapter *ddc; - const struct edid *edid; - struct cec_notifier *cec; - unsigned int hpd_irq; - struct gpio_desc *hpd_gpio; - struct drm_encoder encoder; - long: 32; - struct drm_connector connector; + 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 est_timings { - u8 t1; - u8 t2; - u8 mfg_rsvd; -}; +struct usb_gadget; -struct std_timing { - u8 hsize; - u8 vfreq_aspect; +struct usb_otg { + u8 default_a; + struct phy *phy; + struct usb_phy *usb_phy; + struct usb_bus *host; + struct usb_gadget *gadget; + enum usb_otg_state state; + int (*set_host)(struct usb_otg *, struct usb_bus *); + int (*set_peripheral)(struct usb_otg *, struct usb_gadget *); + int (*set_vbus)(struct usb_otg *, bool); + int (*start_srp)(struct usb_otg *); + int (*start_hnp)(struct usb_otg *); }; -struct 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 usb_phy_io_ops { + int (*read)(struct usb_phy *, u32); + int (*write)(struct usb_phy *, u32, u32); }; -struct detailed_data_string { - u8 str[13]; +struct usb_hub_status { + __le16 wHubStatus; + __le16 wHubChange; }; -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; +struct usb_port_status { + __le16 wPortStatus; + __le16 wPortChange; + __le32 dwExtPortStatus; }; -struct detailed_data_wpindex { - u8 white_yx_lo; - u8 white_x_hi; - u8 white_y_hi; - u8 gamma; -}; +struct usb_hub_descriptor; -struct cvt_timing { - u8 code[3]; -}; +struct usb_port; -struct detailed_non_pixel { - u8 pad1; - u8 type; - u8 pad2; +struct usb_hub { + struct device *intfdev; + struct usb_device *hdev; + struct kref kref; + struct urb *urb; + u8 (*buffer)[8]; 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; + 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 detailed_timing { - __le16 pixel_clock; +struct usb_hub_descriptor { + __u8 bDescLength; + __u8 bDescriptorType; + __u8 bNbrPorts; + __le16 wHubCharacteristics; + __u8 bPwrOn2PwrGood; + __u8 bHubContrCurrent; union { - struct detailed_pixel_timing pixel_data; - struct detailed_non_pixel other_data; - } data; -}; + struct { + __u8 DeviceRemovable[4]; + __u8 PortPwrCtrlMask[4]; + } hs; + struct { + __u8 bHubHdrDecLat; + __le16 wHubDelay; + __le16 DeviceRemovable; + } __attribute__((packed)) ss; + } u; +} __attribute__((packed)); -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; -}; +typedef u32 usb_port_location_t; -struct icc_path; +struct usb_dev_state; -struct tegra_plane { - struct drm_plane base; - struct tegra_dc *dc; - unsigned int offset; - unsigned int index; - struct icc_path *icc_mem; - struct icc_path *icc_mem_vfilter; +struct typec_connector; + +struct usb_port { + struct usb_device *child; + long: 32; + struct device dev; + struct usb_dev_state *port_owner; + struct usb_port *peer; + struct typec_connector *connector; + struct dev_pm_qos_request *req; + enum usb_port_connect_type connect_type; + enum usb_device_state state; + struct kernfs_node *state_kn; + usb_port_location_t location; + struct mutex status_lock; + u32 over_current_count; + u8 portnum; + u32 quirks; + unsigned int early_stop: 1; + unsigned int ignore_event: 1; + unsigned int is_superspeed: 1; + unsigned int usb3_lpm_u1_permit: 1; + unsigned int usb3_lpm_u2_permit: 1; long: 32; }; -struct tegra_bo_tiling { - enum tegra_bo_tiling_mode mode; - unsigned long value; - enum tegra_bo_sector_layout sector_layout; +struct typec_connector { + void (*attach)(struct typec_connector *, struct device *); + void (*deattach)(struct typec_connector *, struct device *); }; -struct tegra_plane_legacy_blending_state { - bool alpha; - bool top; +struct usbdrv_wrap { + struct device_driver driver; + int for_devices; }; -struct host1x_bo_mapping; +struct usb_device_id; -struct tegra_plane_state { - struct drm_plane_state base; - struct host1x_bo_mapping *map[3]; - dma_addr_t iova[3]; - struct tegra_bo_tiling tiling; - u32 format; - u32 swap; - bool reflect_x; - bool reflect_y; - struct tegra_plane_legacy_blending_state blending[2]; - bool opaque; - u32 total_peak_memory_bandwidth; - u32 peak_memory_bandwidth; - u32 avg_memory_bandwidth; +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 host1x_bo; - -struct host1x_bo_mapping { - struct kref ref; - struct dma_buf_attachment *attach; - enum dma_data_direction direction; - struct list_head list; - struct host1x_bo *bo; - struct sg_table *sgt; - unsigned int chunks; - struct device *dev; - dma_addr_t phys; - size_t size; - struct host1x_bo_cache *cache; - struct list_head entry; +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 host1x_bo_ops; - -struct host1x_bo { - const struct host1x_bo_ops *ops; - struct list_head mappings; +struct usb_dynids { spinlock_t lock; + struct list_head list; }; -struct host1x_bo_ops { - struct host1x_bo * (*get)(struct host1x_bo *); - void (*put)(struct host1x_bo *); - struct host1x_bo_mapping * (*pin)(struct device *, struct host1x_bo *, enum dma_data_direction); - void (*unpin)(struct host1x_bo_mapping *); - void * (*mmap)(struct host1x_bo *); - void (*munmap)(struct host1x_bo *, void *); +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 of_phandle_iterator { - const char *cells_name; - int cell_count; - const struct device_node *parent; - const __be32 *list_end; - const __be32 *phandle_end; - const __be32 *cur; - uint32_t cur_count; - phandle phandle; - struct device_node *node; +struct find_interface_arg { + int minor; + struct device_driver *drv; }; -struct clk { - struct clk_core *core; +typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); + +struct dwc3_of_simple { struct device *dev; - const char *dev_id; - const char *con_id; - unsigned long min_rate; - unsigned long max_rate; - unsigned int exclusive_count; - struct hlist_node clks_node; + struct clk_bulk_data *clks; + int num_clocks; + struct reset_control *resets; + bool need_reset; }; -struct tegra_dc_window { - struct { - unsigned int x; - unsigned int y; - unsigned int w; - unsigned int h; - } src; - struct { - unsigned int x; - unsigned int y; - unsigned int w; - unsigned int h; - } dst; - unsigned int bits_per_pixel; - unsigned int stride[2]; - unsigned long base[3]; - unsigned int zpos; - bool reflect_x; - bool reflect_y; - struct tegra_bo_tiling tiling; - u32 format; - u32 swap; +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 tegra_core_opp_params { - bool init_state; +enum dwc2_hsotg_dmamode { + S3C_HSOTG_DMA_NONE = 0, + S3C_HSOTG_DMA_ONLY = 1, + S3C_HSOTG_DMA_DRV = 2, }; -union dfixed { - u32 full; +enum dwc2_lx_state { + DWC2_L0 = 0, + DWC2_L1 = 1, + DWC2_L2 = 2, + DWC2_L3 = 3, }; -typedef union dfixed fixed20_12; - -typedef unsigned long ulong; +enum dwc2_halt_status { + DWC2_HC_XFER_NO_HALT_STATUS = 0, + DWC2_HC_XFER_COMPLETE = 1, + DWC2_HC_XFER_URB_COMPLETE = 2, + DWC2_HC_XFER_ACK = 3, + DWC2_HC_XFER_NAK = 4, + DWC2_HC_XFER_NYET = 5, + DWC2_HC_XFER_STALL = 6, + DWC2_HC_XFER_XACT_ERR = 7, + DWC2_HC_XFER_FRAME_OVERRUN = 8, + DWC2_HC_XFER_BABBLE_ERR = 9, + DWC2_HC_XFER_DATA_TOGGLE_ERR = 10, + DWC2_HC_XFER_AHB_ERR = 11, + DWC2_HC_XFER_PERIODIC_INCOMPLETE = 12, + DWC2_HC_XFER_URB_DEQUEUE = 13, +}; -struct iova { - struct rb_node node; - unsigned long pfn_hi; - unsigned long pfn_lo; +enum dwc2_ep0_state { + DWC2_EP0_SETUP = 0, + DWC2_EP0_DATA_IN = 1, + DWC2_EP0_DATA_OUT = 2, + DWC2_EP0_STATUS_IN = 3, + DWC2_EP0_STATUS_OUT = 4, }; -struct iova_rcache; +struct usb_udc; -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; -}; +struct usb_gadget_ops; -struct tegra_display_hub; +struct usb_ep; -struct tegra_drm { - struct drm_device *drm; - struct iommu_domain *domain; - bool use_explicit_iommu; - struct mutex mm_lock; - struct drm_mm mm; - struct { - struct iova_domain domain; - unsigned long shift; - unsigned long limit; - } carveout; - struct mutex clients_lock; - struct list_head clients; - unsigned int hmask; - unsigned int vmask; - unsigned int pitch_align; - unsigned int num_crtcs; - struct tegra_display_hub *hub; +struct usb_otg_caps; + +struct usb_gadget { + struct work_struct work; + struct usb_udc *udc; + const struct usb_gadget_ops *ops; + struct usb_ep *ep0; + struct list_head ep_list; + enum usb_device_speed speed; + enum usb_device_speed max_speed; + enum usb_ssp_rate ssp_rate; + enum usb_ssp_rate max_ssp_rate; + enum usb_device_state state; + const char *name; + long: 32; + struct device dev; + unsigned int isoch_delay; + unsigned int out_epnum; + unsigned int in_epnum; + unsigned int mA; + struct usb_otg_caps *otg_caps; + unsigned int sg_supported: 1; + unsigned int is_otg: 1; + unsigned int is_a_peripheral: 1; + unsigned int b_hnp_enable: 1; + unsigned int a_hnp_support: 1; + unsigned int a_alt_hnp_support: 1; + unsigned int hnp_polling_support: 1; + unsigned int host_request_flag: 1; + unsigned int quirk_ep_out_aligned_size: 1; + unsigned int quirk_altset_not_supp: 1; + unsigned int quirk_stall_not_supp: 1; + unsigned int quirk_zlp_not_supp: 1; + unsigned int quirk_avoids_skb_reserve: 1; + unsigned int is_selfpowered: 1; + unsigned int deactivated: 1; + unsigned int connected: 1; + unsigned int lpm_capable: 1; + unsigned int wakeup_capable: 1; + unsigned int wakeup_armed: 1; + int irq; + int id_number; }; -struct tegra_display_hub_soc; +struct usb_dcd_config_params; -struct tegra_windowgroup; +struct usb_gadget_driver; -struct tegra_display_hub { - struct drm_private_obj base; - struct host1x_client client; - struct clk *clk_disp; - struct clk *clk_dsc; - struct clk *clk_hub; - struct reset_control *rst; - unsigned int num_heads; - struct clk **clk_heads; - const struct tegra_display_hub_soc *soc; - struct tegra_windowgroup *wgrps; +struct usb_gadget_ops { + int (*get_frame)(struct usb_gadget *); + int (*wakeup)(struct usb_gadget *); + int (*func_wakeup)(struct usb_gadget *, int); + int (*set_remote_wakeup)(struct usb_gadget *, int); + int (*set_selfpowered)(struct usb_gadget *, int); + int (*vbus_session)(struct usb_gadget *, int); + int (*vbus_draw)(struct usb_gadget *, unsigned int); + int (*pullup)(struct usb_gadget *, int); + int (*ioctl)(struct usb_gadget *, unsigned int, unsigned long); + void (*get_config_params)(struct usb_gadget *, struct usb_dcd_config_params *); + int (*udc_start)(struct usb_gadget *, struct usb_gadget_driver *); + int (*udc_stop)(struct usb_gadget *); + void (*udc_set_speed)(struct usb_gadget *, enum usb_device_speed); + void (*udc_set_ssp_rate)(struct usb_gadget *, enum usb_ssp_rate); + void (*udc_async_callbacks)(struct usb_gadget *, bool); + struct usb_ep * (*match_ep)(struct usb_gadget *, struct usb_endpoint_descriptor *, struct usb_ss_ep_comp_descriptor *); + int (*check_config)(struct usb_gadget *); }; -struct tegra_display_hub_soc { - unsigned int num_wgrps; - bool supports_dsc; +struct usb_dcd_config_params { + __u8 bU1devExitLat; + __le16 bU2DevExitLat; + __u8 besl_baseline; + __u8 besl_deep; }; -struct tegra_windowgroup { - unsigned int usecount; - struct mutex lock; - unsigned int index; - struct host1x_client *parent; - struct reset_control *rst; +struct usb_ctrlrequest; + +struct usb_gadget_driver { + char *function; + enum usb_device_speed max_speed; + int (*bind)(struct usb_gadget *, struct usb_gadget_driver *); + void (*unbind)(struct usb_gadget *); + int (*setup)(struct usb_gadget *, const struct usb_ctrlrequest *); + void (*disconnect)(struct usb_gadget *); + void (*suspend)(struct usb_gadget *); + void (*resume)(struct usb_gadget *); + void (*reset)(struct usb_gadget *); + struct device_driver driver; + char *udc_name; + unsigned int match_existing_only: 1; + bool is_bound: 1; }; -struct drm_info_node { - struct drm_minor *minor; - const struct drm_info_list *info_ent; - struct list_head list; - struct dentry *dent; +struct usb_ctrlrequest { + __u8 bRequestType; + __u8 bRequest; + __le16 wValue; + __le16 wIndex; + __le16 wLength; }; -struct ics932s401_data { - struct attribute_group attrs; - struct mutex lock; - char sensors_valid; - unsigned long sensors_last_updated; - u8 regs[21]; +struct usb_ep_caps { + unsigned int type_control: 1; + unsigned int type_iso: 1; + unsigned int type_bulk: 1; + unsigned int type_int: 1; + unsigned int dir_in: 1; + unsigned int dir_out: 1; }; -struct qcom_rpm_resource; +struct usb_ep_ops; -struct qcom_rpm_data { - u32 version; - const struct qcom_rpm_resource *resource_table; - unsigned int n_resources; - unsigned int req_ctx_off; - unsigned int req_sel_off; - unsigned int ack_ctx_off; - unsigned int ack_sel_off; - unsigned int req_sel_size; - unsigned int ack_sel_size; +struct usb_ep { + void *driver_data; + const char *name; + const struct usb_ep_ops *ops; + struct list_head ep_list; + struct usb_ep_caps caps; + bool claimed; + bool enabled; + unsigned int maxpacket: 16; + unsigned int maxpacket_limit: 16; + unsigned int max_streams: 16; + unsigned int mult: 2; + unsigned int maxburst: 5; + u8 address; + const struct usb_endpoint_descriptor *desc; + const struct usb_ss_ep_comp_descriptor *comp_desc; }; -struct qcom_rpm_resource { - unsigned int target_id; - unsigned int status_id; - unsigned int select_id; - unsigned int size; -}; +struct usb_request; -struct qcom_rpm { - struct device *dev; - struct regmap *ipc_regmap; - unsigned int ipc_offset; - unsigned int ipc_bit; - struct clk *ramclk; - struct completion ack; - struct mutex lock; - void *status_regs; - void *ctrl_regs; - void *req_regs; - u32 ack_status; - const struct qcom_rpm_data *data; +struct usb_ep_ops { + int (*enable)(struct usb_ep *, const struct usb_endpoint_descriptor *); + int (*disable)(struct usb_ep *); + void (*dispose)(struct usb_ep *); + struct usb_request * (*alloc_request)(struct usb_ep *, gfp_t); + void (*free_request)(struct usb_ep *, struct usb_request *); + int (*queue)(struct usb_ep *, struct usb_request *, gfp_t); + int (*dequeue)(struct usb_ep *, struct usb_request *); + int (*set_halt)(struct usb_ep *, int); + int (*set_wedge)(struct usb_ep *); + int (*fifo_status)(struct usb_ep *); + void (*fifo_flush)(struct usb_ep *); }; -struct syscon { - struct device_node *np; - struct regmap *regmap; - struct reset_control *reset; +struct usb_request { + void *buf; + unsigned int length; + dma_addr_t dma; + struct scatterlist *sg; + unsigned int num_sgs; + unsigned int num_mapped_sgs; + unsigned int stream_id: 16; + unsigned int is_last: 1; + unsigned int no_interrupt: 1; + unsigned int zero: 1; + unsigned int short_not_ok: 1; + unsigned int dma_mapped: 1; + void (*complete)(struct usb_ep *, struct usb_request *); + void *context; struct list_head list; + unsigned int frame_number; + int status; + unsigned int actual; }; -struct syscon_platform_data { - const char *label; +struct usb_otg_caps { + u16 otg_rev; + bool hnp_support; + bool srp_support; + bool adp_support; }; -enum scsi_target_state { - STARGET_CREATED = 1, - STARGET_RUNNING = 2, - STARGET_REMOVE = 3, - STARGET_CREATED_REMOVE = 4, - STARGET_DEL = 5, +struct regulator_bulk_data { + const char *supply; + int init_load_uA; + struct regulator *consumer; + int ret; }; -enum scsi_device_state { - SDEV_CREATED = 1, - SDEV_RUNNING = 2, - SDEV_CANCEL = 3, - SDEV_DEL = 4, - SDEV_QUIESCE = 5, - SDEV_OFFLINE = 6, - SDEV_TRANSPORT_OFFLINE = 7, - SDEV_BLOCK = 8, - SDEV_CREATED_BLOCK = 9, +struct dwc2_hw_params { + unsigned int op_mode: 3; + unsigned int arch: 2; + unsigned int dma_desc_enable: 1; + unsigned int enable_dynamic_fifo: 1; + unsigned int en_multiple_tx_fifo: 1; + unsigned int rx_fifo_size: 16; + long: 8; + unsigned int host_nperio_tx_fifo_size: 16; + unsigned int dev_nperio_tx_fifo_size: 16; + unsigned int host_perio_tx_fifo_size: 16; + unsigned int nperio_tx_q_depth: 3; + unsigned int host_perio_tx_q_depth: 3; + unsigned int dev_token_q_depth: 5; + long: 5; + unsigned int max_transfer_size: 26; + long: 6; + unsigned int max_packet_count: 11; + unsigned int host_channels: 5; + unsigned int hs_phy_type: 2; + unsigned int fs_phy_type: 2; + unsigned int i2c_enable: 1; + unsigned int acg_enable: 1; + unsigned int num_dev_ep: 4; + unsigned int num_dev_in_eps: 4; + long: 2; + unsigned int num_dev_perio_in_ep: 4; + unsigned int total_fifo_size: 16; + unsigned int power_optimized: 1; + unsigned int hibernation: 1; + unsigned int utmi_phy_data_width: 2; + unsigned int lpm_mode: 1; + unsigned int ipg_isoc_en: 1; + unsigned int service_interval_mode: 1; + u32 snpsid; + u32 dev_ep_dirs; + u32 g_tx_fifo_size[16]; }; -enum scsi_cmnd_submitter { - SUBMITTED_BY_BLOCK_LAYER = 0, - SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, - SUBMITTED_BY_SCSI_RESET_IOCTL = 2, -} __attribute__((mode(byte))); - -struct scsi_data_buffer { - struct sg_table table; - unsigned int length; +struct dwc2_core_params { + struct usb_otg_caps otg_caps; + u8 phy_type; + u8 speed; + u8 phy_utmi_width; + bool phy_ulpi_ddr; + bool phy_ulpi_ext_vbus; + bool enable_dynamic_fifo; + bool en_multiple_tx_fifo; + bool i2c_enable; + bool acg_enable; + bool ulpi_fs_ls; + bool ts_dline; + bool reload_ctl; + bool uframe_sched; + bool external_id_pin_ctl; + int power_down; + bool no_clock_gating; + bool lpm; + bool lpm_clock_gating; + bool besl; + bool hird_threshold_en; + bool service_interval; + u8 hird_threshold; + bool activate_stm_fs_transceiver; + bool activate_stm_id_vb_detection; + bool activate_ingenic_overcurrent_detection; + bool ipg_isoc_en; + u16 max_packet_count; + u32 max_transfer_size; + u32 ahbcfg; + u32 ref_clk_per; + u16 sof_cnt_wkup_alert; + bool host_dma; + bool dma_desc_enable; + bool dma_desc_fs_enable; + bool host_support_fs_ls_low_power; + bool host_ls_low_power_phy_clk; + bool oc_disable; + u8 host_channels; + u16 host_rx_fifo_size; + u16 host_nperio_tx_fifo_size; + u16 host_perio_tx_fifo_size; + bool g_dma; + bool g_dma_desc; + u32 g_rx_fifo_size; + u32 g_np_tx_fifo_size; + u32 g_tx_fifo_size[16]; + bool change_speed_quirk; }; -struct scsi_device; +struct dwc2_gregs_backup { + u32 gotgctl; + u32 gintmsk; + u32 gahbcfg; + u32 gusbcfg; + u32 grxfsiz; + u32 gnptxfsiz; + u32 gi2cctl; + u32 glpmcfg; + u32 pcgcctl; + u32 pcgcctl1; + u32 gdfifocfg; + u32 gpwrdn; + bool valid; +}; -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; +struct dwc2_dregs_backup { + u32 dcfg; + u32 dctl; + u32 daintmsk; + u32 diepmsk; + u32 doepmsk; + u32 diepctl[16]; + u32 dieptsiz[16]; + u32 diepdma[16]; + u32 doepctl[16]; + u32 doeptsiz[16]; + u32 doepdma[16]; + u32 dtxfsiz[16]; + bool valid; }; -typedef __u64 blist_flags_t; +struct dwc2_hregs_backup { + u32 hcfg; + u32 haintmsk; + u32 hcintmsk[16]; + u32 hprt0; + u32 hfir; + u32 hptxfsiz; + bool valid; +}; -struct Scsi_Host; +union dwc2_hcd_internal_flags { + u32 d32; + struct { + unsigned int port_connect_status_change: 1; + unsigned int port_connect_status: 1; + unsigned int port_reset_change: 1; + unsigned int port_enable_change: 1; + unsigned int port_suspend_change: 1; + unsigned int port_over_current_change: 1; + unsigned int port_l1_change: 1; + unsigned int reserved: 25; + } b; +}; -struct scsi_vpd; +struct usb_role_switch; -struct scsi_target; +struct dwc2_hsotg_plat; -struct scsi_device_handler; +struct debugfs_regset32; -struct bsg_device; +struct dwc2_host_chan; -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 no_start_on_resume: 1; - unsigned int start_stop_pwr_cond: 1; - unsigned int no_uld_attach: 1; - unsigned int select_no_atn: 1; - unsigned int fix_capacity: 1; - unsigned int guess_capacity: 1; - unsigned int retry_hwerror: 1; - unsigned int last_sector_bug: 1; - unsigned int no_read_disc_info: 1; - unsigned int no_read_capacity_16: 1; - unsigned int try_rc_10_first: 1; - unsigned int security_supported: 1; - unsigned int is_visible: 1; - unsigned int wce_default_on: 1; - unsigned int no_dif: 1; - unsigned int broken_fua: 1; - unsigned int lun_in_cdb: 1; - unsigned int unmap_limit_for_ws: 1; - unsigned int rpm_autosuspend: 1; - unsigned int ignore_media_change: 1; - unsigned int silence_suspend: 1; - unsigned int no_vpd_size: 1; - unsigned int cdl_supported: 1; - unsigned int cdl_enable: 1; - unsigned int queue_stopped; - bool offline_already; - atomic_t disk_events_disable_depth; - unsigned long supported_events[1]; - unsigned long pending_events[1]; - struct list_head event_list; - struct work_struct event_work; - unsigned int max_device_blocked; - atomic_t iorequest_cnt; - atomic_t iodone_cnt; - atomic_t ioerr_cnt; - atomic_t iotmo_cnt; - long: 32; - 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]; - long: 32; -}; +struct dwc2_dma_desc; -struct scsi_vpd { - struct callback_head rcu; - int len; - unsigned char data[0]; -}; +struct dwc2_hsotg_ep; -struct scsi_target { - struct scsi_device *starget_sdev_user; - struct list_head siblings; - struct list_head devices; +struct dwc2_hsotg { + struct device *dev; + void *regs; + struct dwc2_hw_params hw_params; + struct dwc2_core_params params; + enum usb_otg_state op_state; + enum usb_dr_mode dr_mode; + struct usb_role_switch *role_sw; + enum usb_dr_mode role_sw_default_mode; + unsigned int hcd_enabled: 1; + unsigned int gadget_enabled: 1; + unsigned int ll_hw_enabled: 1; + unsigned int hibernated: 1; + unsigned int in_ppd: 1; + bool bus_suspended; + unsigned int reset_phy_on_wake: 1; + unsigned int need_phy_for_wake: 1; + unsigned int phy_off_for_suspend: 1; + u16 frame_number; + struct phy *phy; + struct usb_phy *uphy; + struct dwc2_hsotg_plat *plat; + struct regulator_bulk_data supplies[2]; + struct regulator *vbus_supply; + struct regulator *usb33d; + spinlock_t lock; + void *priv; + int irq; + struct clk *clk; + struct clk *utmi_clk; + struct reset_control *reset; + struct reset_control *reset_ecc; + unsigned int queuing_high_bandwidth: 1; + unsigned int srp_success: 1; + struct workqueue_struct *wq_otg; + struct work_struct wf_otg; + struct timer_list wkp_timer; + enum dwc2_lx_state lx_state; + struct dwc2_gregs_backup gr_backup; + struct dwc2_dregs_backup dr_backup; + struct dwc2_hregs_backup hr_backup; + struct dentry *debug_root; + struct debugfs_regset32 *regset; + bool needs_byte_swap; + union dwc2_hcd_internal_flags flags; + struct list_head non_periodic_sched_inactive; + struct list_head non_periodic_sched_waiting; + struct list_head non_periodic_sched_active; + struct list_head *non_periodic_qh_ptr; + struct list_head periodic_sched_inactive; + struct list_head periodic_sched_ready; + struct list_head periodic_sched_assigned; + struct list_head periodic_sched_queued; + struct list_head split_order; + u16 periodic_usecs; + unsigned long hs_periodic_bitmap[25]; + u16 periodic_qh_count; + bool new_connection; + u16 last_frame_num; + struct list_head free_hc_list; + int periodic_channels; + int non_periodic_channels; + int available_host_channels; + struct dwc2_host_chan *hc_ptr_array[16]; + u8 *status_buf; + dma_addr_t status_buf_dma; + struct delayed_work start_work; + struct delayed_work reset_work; + struct work_struct phy_reset_work; + u8 otg_port; + u32 *frame_list; + dma_addr_t frame_list_dma; + u32 frame_list_sz; + struct kmem_cache *desc_gen_cache; + struct kmem_cache *desc_hsisoc_cache; + struct kmem_cache *unaligned_cache; + struct usb_gadget_driver *driver; + int fifo_mem; + unsigned int dedicated_fifos: 1; + unsigned char num_of_eps; + u32 fifo_map; + struct usb_request *ep0_reply; + struct usb_request *ctrl_req; + void *ep0_buff; + void *ctrl_buff; + enum dwc2_ep0_state ep0_state; + unsigned int delayed_status: 1; + u8 test_mode; + dma_addr_t setup_desc_dma[2]; + struct dwc2_dma_desc *setup_desc[2]; + dma_addr_t ctrl_in_desc_dma; + struct dwc2_dma_desc *ctrl_in_desc; + dma_addr_t ctrl_out_desc_dma; + struct dwc2_dma_desc *ctrl_out_desc; long: 32; - 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 usb_gadget gadget; + unsigned int enabled: 1; + unsigned int connected: 1; + unsigned int remote_wakeup_allowed: 1; + struct dwc2_hsotg_ep *eps_in[16]; + struct dwc2_hsotg_ep *eps_out[16]; long: 32; }; -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 (*exit)(struct cdrom_device_info *); - int mrw_mode_page; - bool opened_for_data; - long: 32; - __s64 last_media_change_ms; +struct dwc2_hsotg_plat { + enum dwc2_hsotg_dmamode dma; + unsigned int is_osc: 1; + int phy_type; + int (*phy_init)(struct platform_device *, int); + int (*phy_exit)(struct platform_device *, int); }; -struct cdrom_multisession; - -struct cdrom_mcn; - -struct packet_command; +struct dwc2_qh; -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 dwc2_host_chan { + u8 hc_num; + unsigned int dev_addr: 7; + unsigned int ep_num: 4; + unsigned int ep_is_in: 1; + unsigned int speed: 4; + unsigned int ep_type: 2; + long: 6; + unsigned int max_packet: 11; + unsigned int data_pid_start: 2; + unsigned int multi_count: 2; + u8 *xfer_buf; + dma_addr_t xfer_dma; + dma_addr_t align_buf; + u32 xfer_len; + u32 xfer_count; + u16 start_pkt_count; + u8 xfer_started; + u8 do_ping; + u8 error_state; + u8 halt_on_queue; + u8 halt_pending; + u8 do_split; + u8 complete_split; + u8 hub_addr; + u8 hub_port; + u8 xact_pos; + u8 requests; + u8 schinfo; + u16 ntd; + enum dwc2_halt_status halt_status; + u32 hcint; + struct dwc2_qh *qh; + struct list_head hc_list_entry; + dma_addr_t desc_list_addr; + u32 desc_list_sz; + struct list_head split_order_list_entry; }; -struct cdrom_msf0 { - __u8 minute; - __u8 second; - __u8 frame; +struct dwc2_hs_transfer_time { + u32 start_schedule_us; + u16 duration_us; }; -union cdrom_addr { - struct cdrom_msf0 msf; - int lba; +struct dwc2_tt; + +struct dwc2_qh { + struct dwc2_hsotg *hsotg; + u8 ep_type; + u8 ep_is_in; + u16 maxp; + u16 maxp_mult; + u8 dev_speed; + u8 data_toggle; + u8 ping_state; + u8 do_split; + u8 td_first; + u8 td_last; + u16 host_us; + u16 device_us; + u16 host_interval; + u16 device_interval; + u16 next_active_frame; + u16 start_active_frame; + s16 num_hs_transfers; + struct dwc2_hs_transfer_time hs_transfers[8]; + u32 ls_start_schedule_slice; + u16 ntd; + u8 *dw_align_buf; + dma_addr_t dw_align_buf_dma; + struct list_head qtd_list; + struct dwc2_host_chan *channel; + struct list_head qh_list_entry; + struct dwc2_dma_desc *desc_list; + dma_addr_t desc_list_dma; + u32 desc_list_sz; + u32 *n_bytes; + struct timer_list unreserve_timer; + struct hrtimer wait_timer; + struct dwc2_tt *dwc_tt; + int ttport; + unsigned int tt_buffer_dirty: 1; + unsigned int unreserve_pending: 1; + unsigned int schedule_low_speed: 1; + unsigned int want_wait: 1; + unsigned int wait_timer_cancel: 1; + long: 32; }; -struct cdrom_multisession { - union cdrom_addr addr; - __u8 xa_flag; - __u8 addr_format; +struct dwc2_dma_desc { + u32 status; + u32 buf; }; -struct cdrom_mcn { - __u8 medium_catalog_number[14]; +struct dwc2_tt { + int refcount; + struct usb_tt *usb_tt; + unsigned long periodic_bitmaps[0]; }; -struct scsi_sense_hdr; +struct dwc2_hsotg_req; -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 dwc2_hsotg_ep { + struct usb_ep ep; + struct list_head queue; + struct dwc2_hsotg *parent; + struct dwc2_hsotg_req *req; + struct dentry *debugfs; + unsigned long total_data; + unsigned int size_loaded; + unsigned int last_load; + unsigned int fifo_load; + unsigned short fifo_size; + unsigned short fifo_index; + unsigned char dir_in; + unsigned char map_dir; + unsigned char index; + unsigned char mc; + u16 interval; + unsigned int halted: 1; + unsigned int periodic: 1; + unsigned int isochronous: 1; + unsigned int send_zlp: 1; + unsigned int wedged: 1; + unsigned int target_frame; + bool frame_overrun; + dma_addr_t desc_list_dma; + struct dwc2_dma_desc *desc_list; + u8 desc_count; + unsigned int next_desc; + unsigned int compl_desc; + char name[10]; }; -struct scsi_sense_hdr { - u8 response_code; - u8 sense_key; - u8 asc; - u8 ascq; - u8 byte4; - u8 byte5; - u8 byte6; - u8 additional_length; +struct dwc2_hsotg_req { + struct usb_request req; + struct list_head queue; + void *saved_req_buf; }; -struct ata_port_operations; - -struct ata_port_info { - unsigned long flags; - unsigned long link_flags; - unsigned int pio_mask; - unsigned int mwdma_mask; - unsigned int udma_mask; - struct ata_port_operations *port_ops; - void *private_data; +struct ehci_driver_overrides { + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); + int (*port_power)(struct usb_hcd *, int, bool); }; -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, +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, }; -struct ata_link; - -typedef int (*ata_prereset_fn_t)(struct ata_link *, unsigned long); +enum ehci_rh_state { + EHCI_RH_HALTED = 0, + EHCI_RH_SUSPENDED = 1, + EHCI_RH_RUNNING = 2, + EHCI_RH_STOPPING = 3, +}; -typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, unsigned long); +struct spear_ehci { + struct clk *clk; +}; -typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); +struct ehci_caps; -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, -}; +struct ehci_regs; -enum sw_activity { - OFF = 0, - BLINK_ON = 1, - BLINK_OFF = 2, -}; +struct ehci_dbg_port; -struct ata_queued_cmd; +struct ehci_qh; -struct ata_port; +union ehci_shadow; -struct ata_device; +struct ehci_itd; -struct ata_taskfile; +struct ehci_sitd; -struct ata_host; +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; + long: 32; + ktime_t last_periodic_enable; + u32 command; + unsigned int no_selective_suspend: 1; + unsigned int has_fsl_port_bug: 1; + unsigned int has_fsl_hs_errata: 1; + unsigned int has_fsl_susp_errata: 1; + unsigned int has_ci_pec_bug: 1; + unsigned int big_endian_mmio: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_capbase: 1; + unsigned int has_amcc_usb23: 1; + unsigned int need_io_watchdog: 1; + unsigned int amd_pll_fix: 1; + unsigned int use_dummy_qh: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int frame_index_bug: 1; + unsigned int need_oc_pp_cycle: 1; + unsigned int imx28_write_fix: 1; + unsigned int spurious_oc: 1; + unsigned int is_aspeed: 1; + unsigned int zx_wakeup_clear_needed: 1; + __le32 *ohci_hcctrl_reg; + unsigned int has_hostpc: 1; + unsigned int has_tdi_phy_lpm: 1; + unsigned int has_ppcd: 1; + u8 sbrn; + u8 bandwidth[64]; + u8 tt_budget[64]; + struct list_head tt_list; + unsigned long priv[0]; +}; -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 ehci_caps { + u32 hc_capbase; + u32 hcs_params; + u32 hcc_params; + u8 portroute[8]; }; -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; +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 { - u8 error; - u8 feature; + u32 port_status[15]; + struct { + u32 reserved3[9]; + u32 usbmode; + }; }; - u8 nsect; - u8 lbal; - u8 lbam; - u8 lbah; - u8 device; union { - u8 status; - u8 command; + struct { + u32 reserved4; + u32 hostpc[15]; + }; + u32 brcm_insnreg[4]; }; - u32 auxiliary; + u32 reserved5[2]; + u32 usbmode_ex; }; -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 ehci_dbg_port { + u32 control; + u32 pids; + u32 data03; + u32 data47; + u32 address; }; -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 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 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 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 ata_ering { - int cursor; - long: 32; - struct ata_ering_entry ring[32]; -}; +struct ehci_qh_hw; -struct ata_cpr_log; +struct ehci_qtd; -struct ata_device { - struct ata_link *link; - unsigned int devno; - unsigned int horkage; - unsigned long flags; - struct scsi_device *sdev; - void *private_data; - 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: 32; - long: 32; - union { - u16 id[256]; - u32 gscr[128]; - }; - u8 devslp_timing[8]; - u8 ncq_send_recv_cmds[20]; - u8 ncq_non_data_cmds[64]; - u32 zac_zoned_cap; - u32 zac_zones_optimal_open; - u32 zac_zones_optimal_nonseq; - u32 zac_zones_max_open; - struct ata_cpr_log *cpr_log; - u8 cdl[512]; - int spdn_cnt; - long: 32; - struct ata_ering ering; +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 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: 32; - long: 32; - long: 32; +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: 32; long: 32; @@ -32000,20 +41889,89 @@ struct ata_link { long: 32; long: 32; long: 32; +}; + +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: 32; +}; + +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; long: 32; long: 32; - struct ata_device device[2]; - unsigned long last_lpm_change; long: 32; long: 32; long: 32; long: 32; long: 32; +}; + +struct ehci_fstn { + __le32 hw_next; + __le32 hw_prev; + dma_addr_t fstn_dma; + union ehci_shadow fstn_next; long: 32; long: 32; long: 32; long: 32; +}; + +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; long: 32; long: 32; long: 32; @@ -32022,4239 +41980,3127 @@ struct ata_link { long: 32; }; -struct ata_port_stats { - unsigned long unhandled_irq; - unsigned long idle_irq; - unsigned long rw_reqbuf; +struct xhci_file_map { + const char *name; + int (*show)(struct seq_file *, void *); }; -typedef u64 async_cookie_t; - -struct ata_bmdma_prd; +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 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - 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 debugfs_regset32 { + const struct debugfs_reg32 *regs; + int nregs; + void *base; struct device *dev; - long: 32; - struct device tdev; - struct mutex scsi_scan_mutex; - struct delayed_work hotplug_task; - struct delayed_work scsi_rescan_task; - unsigned int hsm_task_state; - struct list_head eh_done_q; - wait_queue_head_t eh_wait_q; - int eh_tries; - struct completion park_req_pending; - pm_message_t pm_mesg; - enum ata_lpm_policy target_lpm_policy; - struct timer_list fastdrain_timer; - unsigned int fastdrain_cnt; - async_cookie_t cookie; - int em_message_type; - void *private_data; - u8 *ncq_sense_buf; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - u8 sector_buf[512]; }; -enum scsi_host_state { - SHOST_CREATED = 1, - SHOST_RUNNING = 2, - SHOST_CANCEL = 3, - SHOST_DEL = 4, - SHOST_RECOVERY = 5, - SHOST_CANCEL_RECOVERY = 6, - SHOST_DEL_RECOVERY = 7, +struct xhci_regset { + char name[32]; + struct debugfs_regset32 regset; + size_t nregs; + struct list_head list; }; -struct scsi_host_template; +struct xhci_segment; -struct scsi_transport_template; +union xhci_trb; -struct Scsi_Host { - struct list_head __devices; - struct list_head __targets; - struct list_head starved_list; - spinlock_t default_lock; - spinlock_t *host_lock; - struct mutex scan_mutex; - struct list_head eh_abort_list; - struct list_head eh_cmd_q; - struct task_struct *ehandler; - struct completion *eh_action; - wait_queue_head_t host_wait; - const struct scsi_host_template *hostt; - struct scsi_transport_template *transportt; - struct kref tagset_refcnt; - struct completion tagset_freed; - struct blk_mq_tag_set tag_set; - atomic_t host_blocked; - unsigned int host_failed; - unsigned int host_eh_scheduled; - unsigned int host_no; - int eh_deadline; - unsigned long last_reset; - unsigned int max_channel; - unsigned int max_id; - u64 max_lun; - unsigned int unique_id; - unsigned short max_cmd_len; - int this_id; - int can_queue; - short cmd_per_lun; - unsigned short sg_tablesize; - unsigned short sg_prot_tablesize; - unsigned int max_sectors; - unsigned int opt_sectors; - unsigned int max_segment_size; - unsigned long dma_boundary; - unsigned long virt_boundary_mask; - unsigned int nr_hw_queues; - unsigned int nr_maps; - unsigned int active_mode: 2; - unsigned int host_self_blocked: 1; - unsigned int reverse_ordering: 1; - unsigned int tmf_in_progress: 1; - unsigned int async_scan: 1; - unsigned int eh_noresume: 1; - unsigned int no_write_same: 1; - unsigned int host_tagset: 1; - unsigned int queuecommand_may_block: 1; - unsigned int short_inquiry: 1; - unsigned int no_scsi2_lun_in_cdb: 1; - char work_q_name[20]; - struct workqueue_struct *work_q; - struct workqueue_struct *tmf_work_q; - unsigned int max_host_blocked; - unsigned int prot_capabilities; - unsigned char prot_guard_type; - unsigned long base; - unsigned long io_port; - unsigned char n_io_port; - unsigned char dma_channel; - unsigned int irq; - enum scsi_host_state shost_state; - long: 32; - struct device shost_gendev; - struct device shost_dev; - void *shost_data; - struct device *dma_dev; - unsigned long hostdata[0]; +struct xhci_ring { + struct xhci_segment *first_seg; + struct xhci_segment *last_seg; + union xhci_trb *enqueue; + struct xhci_segment *enq_seg; + union xhci_trb *dequeue; + struct xhci_segment *deq_seg; + struct list_head td_list; + u32 cycle_state; + unsigned int stream_id; + unsigned int num_segs; + unsigned int num_trbs_free; + unsigned int bounce_buf_len; + enum xhci_ring_type type; + bool last_td_was_short; + struct xarray *trb_address_map; }; -enum scsi_timeout_action { - SCSI_EH_DONE = 0, - SCSI_EH_RESET_TIMER = 1, - SCSI_EH_NOT_HANDLED = 2, +struct xhci_segment { + union xhci_trb *trbs; + struct xhci_segment *next; + unsigned int num; + dma_addr_t dma; + dma_addr_t bounce_dma; + void *bounce_buf; + unsigned int bounce_offs; + unsigned int bounce_len; }; -struct scsi_host_template { - unsigned int cmd_size; - int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *); - void (*commit_rqs)(struct Scsi_Host *, u16); - struct module *module; - const char *name; - const char * (*info)(struct Scsi_Host *); - int (*ioctl)(struct scsi_device *, unsigned int, void __attribute__((btf_type_tag("user"))) *); - int (*init_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *); - int (*exit_cmd_priv)(struct Scsi_Host *, struct scsi_cmnd *); - int (*eh_abort_handler)(struct scsi_cmnd *); - int (*eh_device_reset_handler)(struct scsi_cmnd *); - int (*eh_target_reset_handler)(struct scsi_cmnd *); - int (*eh_bus_reset_handler)(struct scsi_cmnd *); - int (*eh_host_reset_handler)(struct scsi_cmnd *); - int (*slave_alloc)(struct scsi_device *); - int (*slave_configure)(struct scsi_device *); - void (*slave_destroy)(struct scsi_device *); - int (*target_alloc)(struct scsi_target *); - void (*target_destroy)(struct scsi_target *); - int (*scan_finished)(struct Scsi_Host *, unsigned long); - void (*scan_start)(struct Scsi_Host *); - int (*change_queue_depth)(struct scsi_device *, int); - void (*map_queues)(struct Scsi_Host *); - int (*mq_poll)(struct Scsi_Host *, unsigned int); - bool (*dma_need_drain)(struct request *); - int (*bios_param)(struct scsi_device *, struct block_device *, sector_t, int *); - void (*unlock_native_capacity)(struct scsi_device *); - int (*show_info)(struct seq_file *, struct Scsi_Host *); - int (*write_info)(struct Scsi_Host *, char *, int); - enum scsi_timeout_action (*eh_timed_out)(struct scsi_cmnd *); - bool (*eh_should_retry_cmd)(struct scsi_cmnd *); - int (*host_reset)(struct Scsi_Host *, int); - const char *proc_name; - int can_queue; - int this_id; - unsigned short sg_tablesize; - unsigned short sg_prot_tablesize; - unsigned int max_sectors; - unsigned int max_segment_size; - unsigned long dma_boundary; - unsigned long virt_boundary_mask; - short cmd_per_lun; - int tag_alloc_policy; - unsigned int track_queue_depth: 1; - unsigned int supported_mode: 2; - unsigned int emulated: 1; - unsigned int skip_settle_delay: 1; - unsigned int no_write_same: 1; - unsigned int host_tagset: 1; - unsigned int queuecommand_may_block: 1; - unsigned int max_host_blocked; - const struct attribute_group **shost_groups; - const struct attribute_group **sdev_groups; - u64 vendor_id; - int rpm_autosuspend_delay; - long: 32; +struct xhci_link_trb { + __le64 segment_ptr; + __le32 intr_target; + __le32 control; }; -struct ata_cpr { - u8 num; - u8 num_storage_elements; - long: 32; - u64 start_lba; - u64 num_lbas; +struct xhci_transfer_event { + __le64 buffer; + __le32 transfer_len; + __le32 flags; }; -struct ata_cpr_log { - u8 nr_cpr; +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 s3_save { + u32 command; + u32 dev_nt; + u64 dcbaa_ptr; + u32 config_reg; long: 32; - struct ata_cpr cpr[0]; }; -struct ata_bmdma_prd { - __le32 addr; - __le32 flags_len; +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 ata_host { +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_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; - struct device *dev; - void * const *iomap; - unsigned int n_ports; - unsigned int n_tags; - void *private_data; - struct ata_port_operations *ops; + 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; + long: 32; +}; + +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; +}; + +struct xhci_erst_entry { + __le64 seg_addr; + __le32 seg_size; + __le32 rsvd; +}; + +struct xhci_container_ctx; + +struct xhci_command { + struct xhci_container_ctx *in_ctx; + u32 status; + int slot_id; + struct completion *completion; + union xhci_trb *command_trb; + struct list_head cmd_list; +}; + +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; - struct kref kref; - struct mutex eh_mutex; - struct task_struct *eh_owner; - struct ata_port *simplex_claimed; - struct ata_port *ports[0]; + u16 current_mel; + void *debugfs_private; }; -enum ahci_qoriq_type { - AHCI_LS1021A = 0, - AHCI_LS1028A = 1, - AHCI_LS1043A = 2, - AHCI_LS2080A = 3, - AHCI_LS1046A = 4, - AHCI_LS1088A = 5, - AHCI_LS2088A = 6, - AHCI_LX2160A = 7, +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; }; -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, +struct xhci_stream_ctx { + __le64 stream_ring; + __le32 reserved[2]; }; -enum { - ATA_MAX_DEVICES = 2, - ATA_MAX_PRD = 256, - ATA_SECT_SIZE = 512, - ATA_MAX_SECTORS_128 = 128, - ATA_MAX_SECTORS = 256, - ATA_MAX_SECTORS_1024 = 1024, - ATA_MAX_SECTORS_LBA48 = 65535, - ATA_MAX_SECTORS_TAPE = 65535, - ATA_MAX_TRIM_RNUM = 64, - ATA_ID_WORDS = 256, - ATA_ID_CONFIG = 0, - ATA_ID_CYLS = 1, - ATA_ID_HEADS = 3, - ATA_ID_SECTORS = 6, - ATA_ID_SERNO = 10, - ATA_ID_BUF_SIZE = 21, - ATA_ID_FW_REV = 23, - ATA_ID_PROD = 27, - ATA_ID_MAX_MULTSECT = 47, - ATA_ID_DWORD_IO = 48, - ATA_ID_TRUSTED = 48, - ATA_ID_CAPABILITY = 49, - ATA_ID_OLD_PIO_MODES = 51, - ATA_ID_OLD_DMA_MODES = 52, - ATA_ID_FIELD_VALID = 53, - ATA_ID_CUR_CYLS = 54, - ATA_ID_CUR_HEADS = 55, - ATA_ID_CUR_SECTORS = 56, - ATA_ID_MULTSECT = 59, - ATA_ID_LBA_CAPACITY = 60, - ATA_ID_SWDMA_MODES = 62, - ATA_ID_MWDMA_MODES = 63, - ATA_ID_PIO_MODES = 64, - ATA_ID_EIDE_DMA_MIN = 65, - ATA_ID_EIDE_DMA_TIME = 66, - ATA_ID_EIDE_PIO = 67, - ATA_ID_EIDE_PIO_IORDY = 68, - ATA_ID_ADDITIONAL_SUPP = 69, - ATA_ID_QUEUE_DEPTH = 75, - ATA_ID_SATA_CAPABILITY = 76, - ATA_ID_SATA_CAPABILITY_2 = 77, - ATA_ID_FEATURE_SUPP = 78, - ATA_ID_MAJOR_VER = 80, - ATA_ID_COMMAND_SET_1 = 82, - ATA_ID_COMMAND_SET_2 = 83, - ATA_ID_CFSSE = 84, - ATA_ID_CFS_ENABLE_1 = 85, - ATA_ID_CFS_ENABLE_2 = 86, - ATA_ID_CSF_DEFAULT = 87, - ATA_ID_UDMA_MODES = 88, - ATA_ID_HW_CONFIG = 93, - ATA_ID_SPG = 98, - ATA_ID_LBA_CAPACITY_2 = 100, - ATA_ID_SECTOR_SIZE = 106, - ATA_ID_WWN = 108, - ATA_ID_LOGICAL_SECTOR_SIZE = 117, - ATA_ID_COMMAND_SET_3 = 119, - ATA_ID_COMMAND_SET_4 = 120, - ATA_ID_LAST_LUN = 126, - ATA_ID_DLF = 128, - ATA_ID_CSFO = 129, - ATA_ID_CFA_POWER = 160, - ATA_ID_CFA_KEY_MGMT = 162, - ATA_ID_CFA_MODES = 163, - ATA_ID_DATA_SET_MGMT = 169, - ATA_ID_SCT_CMD_XPORT = 206, - ATA_ID_ROT_SPEED = 217, - ATA_ID_PIO4 = 2, - ATA_ID_SERNO_LEN = 20, - ATA_ID_FW_REV_LEN = 8, - ATA_ID_PROD_LEN = 40, - ATA_ID_WWN_LEN = 8, - ATA_PCI_CTL_OFS = 2, - ATA_PIO0 = 1, - ATA_PIO1 = 3, - ATA_PIO2 = 7, - ATA_PIO3 = 15, - ATA_PIO4 = 31, - ATA_PIO5 = 63, - ATA_PIO6 = 127, - ATA_PIO4_ONLY = 16, - ATA_SWDMA0 = 1, - ATA_SWDMA1 = 3, - ATA_SWDMA2 = 7, - ATA_SWDMA2_ONLY = 4, - ATA_MWDMA0 = 1, - ATA_MWDMA1 = 3, - ATA_MWDMA2 = 7, - ATA_MWDMA3 = 15, - ATA_MWDMA4 = 31, - ATA_MWDMA12_ONLY = 6, - ATA_MWDMA2_ONLY = 4, - ATA_UDMA0 = 1, - ATA_UDMA1 = 3, - ATA_UDMA2 = 7, - ATA_UDMA3 = 15, - ATA_UDMA4 = 31, - ATA_UDMA5 = 63, - ATA_UDMA6 = 127, - ATA_UDMA7 = 255, - ATA_UDMA24_ONLY = 20, - ATA_UDMA_MASK_40C = 7, - ATA_PRD_SZ = 8, - ATA_PRD_TBL_SZ = 2048, - ATA_PRD_EOT = -2147483648, - ATA_DMA_TABLE_OFS = 4, - ATA_DMA_STATUS = 2, - ATA_DMA_CMD = 0, - ATA_DMA_WR = 8, - ATA_DMA_START = 1, - ATA_DMA_INTR = 4, - ATA_DMA_ERR = 2, - ATA_DMA_ACTIVE = 1, - ATA_HOB = 128, - ATA_NIEN = 2, - ATA_LBA = 64, - ATA_DEV1 = 16, - ATA_DEVICE_OBS = 160, - ATA_DEVCTL_OBS = 8, - ATA_BUSY = 128, - ATA_DRDY = 64, - ATA_DF = 32, - ATA_DSC = 16, - ATA_DRQ = 8, - ATA_CORR = 4, - ATA_SENSE = 2, - ATA_ERR = 1, - ATA_SRST = 4, - ATA_ICRC = 128, - ATA_BBK = 128, - ATA_UNC = 64, - ATA_MC = 32, - ATA_IDNF = 16, - ATA_MCR = 8, - ATA_ABORTED = 4, - ATA_TRK0NF = 2, - ATA_AMNF = 1, - ATAPI_LFS = 240, - ATAPI_EOM = 2, - ATAPI_ILI = 1, - ATAPI_IO = 2, - ATAPI_COD = 1, - ATA_REG_DATA = 0, - ATA_REG_ERR = 1, - ATA_REG_NSECT = 2, - ATA_REG_LBAL = 3, - ATA_REG_LBAM = 4, - ATA_REG_LBAH = 5, - ATA_REG_DEVICE = 6, - ATA_REG_STATUS = 7, - ATA_REG_FEATURE = 1, - ATA_REG_CMD = 7, - ATA_REG_BYTEL = 4, - ATA_REG_BYTEH = 5, - ATA_REG_DEVSEL = 6, - ATA_REG_IRQ = 2, - ATA_CMD_DEV_RESET = 8, - ATA_CMD_CHK_POWER = 229, - ATA_CMD_STANDBY = 226, - ATA_CMD_IDLE = 227, - ATA_CMD_EDD = 144, - ATA_CMD_DOWNLOAD_MICRO = 146, - ATA_CMD_DOWNLOAD_MICRO_DMA = 147, - ATA_CMD_NOP = 0, - ATA_CMD_FLUSH = 231, - ATA_CMD_FLUSH_EXT = 234, - ATA_CMD_ID_ATA = 236, - ATA_CMD_ID_ATAPI = 161, - ATA_CMD_SERVICE = 162, - ATA_CMD_READ = 200, - ATA_CMD_READ_EXT = 37, - ATA_CMD_READ_QUEUED = 38, - ATA_CMD_READ_STREAM_EXT = 43, - ATA_CMD_READ_STREAM_DMA_EXT = 42, - ATA_CMD_WRITE = 202, - ATA_CMD_WRITE_EXT = 53, - ATA_CMD_WRITE_QUEUED = 54, - ATA_CMD_WRITE_STREAM_EXT = 59, - ATA_CMD_WRITE_STREAM_DMA_EXT = 58, - ATA_CMD_WRITE_FUA_EXT = 61, - ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, - ATA_CMD_FPDMA_READ = 96, - ATA_CMD_FPDMA_WRITE = 97, - ATA_CMD_NCQ_NON_DATA = 99, - ATA_CMD_FPDMA_SEND = 100, - ATA_CMD_FPDMA_RECV = 101, - ATA_CMD_PIO_READ = 32, - ATA_CMD_PIO_READ_EXT = 36, - ATA_CMD_PIO_WRITE = 48, - ATA_CMD_PIO_WRITE_EXT = 52, - ATA_CMD_READ_MULTI = 196, - ATA_CMD_READ_MULTI_EXT = 41, - ATA_CMD_WRITE_MULTI = 197, - ATA_CMD_WRITE_MULTI_EXT = 57, - ATA_CMD_WRITE_MULTI_FUA_EXT = 206, - ATA_CMD_SET_FEATURES = 239, - ATA_CMD_SET_MULTI = 198, - ATA_CMD_PACKET = 160, - ATA_CMD_VERIFY = 64, - ATA_CMD_VERIFY_EXT = 66, - ATA_CMD_WRITE_UNCORR_EXT = 69, - ATA_CMD_STANDBYNOW1 = 224, - ATA_CMD_IDLEIMMEDIATE = 225, - ATA_CMD_SLEEP = 230, - ATA_CMD_INIT_DEV_PARAMS = 145, - ATA_CMD_READ_NATIVE_MAX = 248, - ATA_CMD_READ_NATIVE_MAX_EXT = 39, - ATA_CMD_SET_MAX = 249, - ATA_CMD_SET_MAX_EXT = 55, - ATA_CMD_READ_LOG_EXT = 47, - ATA_CMD_WRITE_LOG_EXT = 63, - ATA_CMD_READ_LOG_DMA_EXT = 71, - ATA_CMD_WRITE_LOG_DMA_EXT = 87, - ATA_CMD_TRUSTED_NONDATA = 91, - ATA_CMD_TRUSTED_RCV = 92, - ATA_CMD_TRUSTED_RCV_DMA = 93, - ATA_CMD_TRUSTED_SND = 94, - ATA_CMD_TRUSTED_SND_DMA = 95, - ATA_CMD_PMP_READ = 228, - ATA_CMD_PMP_READ_DMA = 233, - ATA_CMD_PMP_WRITE = 232, - ATA_CMD_PMP_WRITE_DMA = 235, - ATA_CMD_CONF_OVERLAY = 177, - ATA_CMD_SEC_SET_PASS = 241, - ATA_CMD_SEC_UNLOCK = 242, - ATA_CMD_SEC_ERASE_PREP = 243, - ATA_CMD_SEC_ERASE_UNIT = 244, - ATA_CMD_SEC_FREEZE_LOCK = 245, - ATA_CMD_SEC_DISABLE_PASS = 246, - ATA_CMD_CONFIG_STREAM = 81, - ATA_CMD_SMART = 176, - ATA_CMD_MEDIA_LOCK = 222, - ATA_CMD_MEDIA_UNLOCK = 223, - ATA_CMD_DSM = 6, - ATA_CMD_CHK_MED_CRD_TYP = 209, - ATA_CMD_CFA_REQ_EXT_ERR = 3, - ATA_CMD_CFA_WRITE_NE = 56, - ATA_CMD_CFA_TRANS_SECT = 135, - ATA_CMD_CFA_ERASE = 192, - ATA_CMD_CFA_WRITE_MULT_NE = 205, - ATA_CMD_REQ_SENSE_DATA = 11, - ATA_CMD_SANITIZE_DEVICE = 180, - ATA_CMD_ZAC_MGMT_IN = 74, - ATA_CMD_ZAC_MGMT_OUT = 159, - ATA_CMD_RESTORE = 16, - ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, - ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, - ATA_SUBCMD_FPDMA_SEND_DSM = 0, - ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, - ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, - ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, - ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, - ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, - ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, - ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, - ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, - ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, - ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, - ATA_LOG_DIRECTORY = 0, - ATA_LOG_SATA_NCQ = 16, - ATA_LOG_NCQ_NON_DATA = 18, - ATA_LOG_NCQ_SEND_RECV = 19, - ATA_LOG_CDL = 24, - ATA_LOG_CDL_SIZE = 512, - ATA_LOG_IDENTIFY_DEVICE = 48, - ATA_LOG_SENSE_NCQ = 15, - ATA_LOG_SENSE_NCQ_SIZE = 1024, - ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, - ATA_LOG_SUPPORTED_CAPABILITIES = 3, - ATA_LOG_CURRENT_SETTINGS = 4, - ATA_LOG_SECURITY = 6, - ATA_LOG_SATA_SETTINGS = 8, - ATA_LOG_ZONED_INFORMATION = 9, - ATA_LOG_DEVSLP_OFFSET = 48, - ATA_LOG_DEVSLP_SIZE = 8, - ATA_LOG_DEVSLP_MDAT = 0, - ATA_LOG_DEVSLP_MDAT_MASK = 31, - ATA_LOG_DEVSLP_DETO = 1, - ATA_LOG_DEVSLP_VALID = 7, - ATA_LOG_DEVSLP_VALID_MASK = 128, - ATA_LOG_NCQ_PRIO_OFFSET = 9, - ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, - ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, - ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, - ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, - ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, - ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, - ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, - ATA_LOG_NCQ_SEND_RECV_SIZE = 20, - ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, - ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, - ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, - ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, - ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, - ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, - ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, - ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, - ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, - ATA_LOG_NCQ_NON_DATA_SIZE = 64, - ATA_CMD_READ_LONG = 34, - ATA_CMD_READ_LONG_ONCE = 35, - ATA_CMD_WRITE_LONG = 50, - ATA_CMD_WRITE_LONG_ONCE = 51, - SETFEATURES_XFER = 3, - XFER_UDMA_7 = 71, - XFER_UDMA_6 = 70, - XFER_UDMA_5 = 69, - XFER_UDMA_4 = 68, - XFER_UDMA_3 = 67, - XFER_UDMA_2 = 66, - XFER_UDMA_1 = 65, - XFER_UDMA_0 = 64, - XFER_MW_DMA_4 = 36, - XFER_MW_DMA_3 = 35, - XFER_MW_DMA_2 = 34, - XFER_MW_DMA_1 = 33, - XFER_MW_DMA_0 = 32, - XFER_SW_DMA_2 = 18, - XFER_SW_DMA_1 = 17, - XFER_SW_DMA_0 = 16, - XFER_PIO_6 = 14, - XFER_PIO_5 = 13, - XFER_PIO_4 = 12, - XFER_PIO_3 = 11, - XFER_PIO_2 = 10, - XFER_PIO_1 = 9, - XFER_PIO_0 = 8, - XFER_PIO_SLOW = 0, - SETFEATURES_WC_ON = 2, - SETFEATURES_WC_OFF = 130, - SETFEATURES_RA_ON = 170, - SETFEATURES_RA_OFF = 85, - SETFEATURES_AAM_ON = 66, - SETFEATURES_AAM_OFF = 194, - SETFEATURES_SPINUP = 7, - SETFEATURES_SPINUP_TIMEOUT = 30000, - SETFEATURES_SATA_ENABLE = 16, - SETFEATURES_SATA_DISABLE = 144, - SETFEATURES_CDL = 13, - SATA_FPDMA_OFFSET = 1, - SATA_FPDMA_AA = 2, - SATA_DIPM = 3, - SATA_FPDMA_IN_ORDER = 4, - SATA_AN = 5, - SATA_SSP = 6, - SATA_DEVSLP = 9, - SETFEATURE_SENSE_DATA = 195, - SETFEATURE_SENSE_DATA_SUCC_NCQ = 196, - ATA_SET_MAX_ADDR = 0, - ATA_SET_MAX_PASSWD = 1, - ATA_SET_MAX_LOCK = 2, - ATA_SET_MAX_UNLOCK = 3, - ATA_SET_MAX_FREEZE_LOCK = 4, - ATA_SET_MAX_PASSWD_DMA = 5, - ATA_SET_MAX_UNLOCK_DMA = 6, - ATA_DCO_RESTORE = 192, - ATA_DCO_FREEZE_LOCK = 193, - ATA_DCO_IDENTIFY = 194, - ATA_DCO_SET = 195, - ATA_SMART_ENABLE = 216, - ATA_SMART_READ_VALUES = 208, - ATA_SMART_READ_THRESHOLDS = 209, - ATA_DSM_TRIM = 1, - ATA_SMART_LBAM_PASS = 79, - ATA_SMART_LBAH_PASS = 194, - ATAPI_PKT_DMA = 1, - ATAPI_DMADIR = 4, - ATAPI_CDB_LEN = 16, - SATA_PMP_MAX_PORTS = 15, - SATA_PMP_CTRL_PORT = 15, - SATA_PMP_GSCR_DWORDS = 128, - SATA_PMP_GSCR_PROD_ID = 0, - SATA_PMP_GSCR_REV = 1, - SATA_PMP_GSCR_PORT_INFO = 2, - SATA_PMP_GSCR_ERROR = 32, - SATA_PMP_GSCR_ERROR_EN = 33, - SATA_PMP_GSCR_FEAT = 64, - SATA_PMP_GSCR_FEAT_EN = 96, - SATA_PMP_PSCR_STATUS = 0, - SATA_PMP_PSCR_ERROR = 1, - SATA_PMP_PSCR_CONTROL = 2, - SATA_PMP_FEAT_BIST = 1, - SATA_PMP_FEAT_PMREQ = 2, - SATA_PMP_FEAT_DYNSSC = 4, - SATA_PMP_FEAT_NOTIFY = 8, - ATA_CBL_NONE = 0, - ATA_CBL_PATA40 = 1, - ATA_CBL_PATA80 = 2, - ATA_CBL_PATA40_SHORT = 3, - ATA_CBL_PATA_UNK = 4, - ATA_CBL_PATA_IGN = 5, - ATA_CBL_SATA = 6, - SCR_STATUS = 0, - SCR_ERROR = 1, - SCR_CONTROL = 2, - SCR_ACTIVE = 3, - SCR_NOTIFICATION = 4, - SERR_DATA_RECOVERED = 1, - SERR_COMM_RECOVERED = 2, - SERR_DATA = 256, - SERR_PERSISTENT = 512, - SERR_PROTOCOL = 1024, - SERR_INTERNAL = 2048, - SERR_PHYRDY_CHG = 65536, - SERR_PHY_INT_ERR = 131072, - SERR_COMM_WAKE = 262144, - SERR_10B_8B_ERR = 524288, - SERR_DISPARITY = 1048576, - SERR_CRC = 2097152, - SERR_HANDSHAKE = 4194304, - SERR_LINK_SEQ_ERR = 8388608, - SERR_TRANS_ST_ERROR = 16777216, - SERR_UNRECOG_FIS = 33554432, - SERR_DEV_XCHG = 67108864, +struct xhci_interval_bw { + unsigned int num_packets; + struct list_head endpoints; + unsigned int overhead[3]; }; -enum { - LIBATA_MAX_PRD = 128, - LIBATA_DUMB_MAX_PRD = 64, - ATA_DEF_QUEUE = 1, - ATA_MAX_QUEUE = 32, - ATA_TAG_INTERNAL = 32, - ATA_SHORT_PAUSE = 16, - ATAPI_MAX_DRAIN = 16384, - ATA_ALL_DEVICES = 3, - ATA_SHT_EMULATED = 1, - ATA_SHT_THIS_ID = -1, - ATA_TFLAG_LBA48 = 1, - ATA_TFLAG_ISADDR = 2, - ATA_TFLAG_DEVICE = 4, - ATA_TFLAG_WRITE = 8, - ATA_TFLAG_LBA = 16, - ATA_TFLAG_FUA = 32, - ATA_TFLAG_POLLING = 64, - ATA_DFLAG_LBA = 1, - ATA_DFLAG_LBA48 = 2, - ATA_DFLAG_CDB_INTR = 4, - ATA_DFLAG_NCQ = 8, - ATA_DFLAG_FLUSH_EXT = 16, - ATA_DFLAG_ACPI_PENDING = 32, - ATA_DFLAG_ACPI_FAILED = 64, - ATA_DFLAG_AN = 128, - ATA_DFLAG_TRUSTED = 256, - ATA_DFLAG_FUA = 512, - ATA_DFLAG_DMADIR = 1024, - ATA_DFLAG_NCQ_SEND_RECV = 2048, - ATA_DFLAG_NCQ_PRIO = 4096, - ATA_DFLAG_CDL = 8192, - ATA_DFLAG_CFG_MASK = 16383, - ATA_DFLAG_PIO = 16384, - ATA_DFLAG_NCQ_OFF = 32768, - ATA_DFLAG_SLEEPING = 65536, - ATA_DFLAG_DUBIOUS_XFER = 131072, - ATA_DFLAG_NO_UNLOAD = 262144, - ATA_DFLAG_UNLOCK_HPA = 524288, - ATA_DFLAG_INIT_MASK = 1048575, - ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576, - ATA_DFLAG_CDL_ENABLED = 2097152, - ATA_DFLAG_DETACH = 16777216, - ATA_DFLAG_DETACHED = 33554432, - ATA_DFLAG_DA = 67108864, - ATA_DFLAG_DEVSLP = 134217728, - ATA_DFLAG_ACPI_DISABLED = 268435456, - ATA_DFLAG_D_SENSE = 536870912, - ATA_DFLAG_ZAC = 1073741824, - ATA_DFLAG_FEATURES_MASK = 201341696, - ATA_DEV_UNKNOWN = 0, - ATA_DEV_ATA = 1, - ATA_DEV_ATA_UNSUP = 2, - ATA_DEV_ATAPI = 3, - ATA_DEV_ATAPI_UNSUP = 4, - ATA_DEV_PMP = 5, - ATA_DEV_PMP_UNSUP = 6, - ATA_DEV_SEMB = 7, - ATA_DEV_SEMB_UNSUP = 8, - ATA_DEV_ZAC = 9, - ATA_DEV_ZAC_UNSUP = 10, - ATA_DEV_NONE = 11, - ATA_LFLAG_NO_HRST = 2, - ATA_LFLAG_NO_SRST = 4, - ATA_LFLAG_ASSUME_ATA = 8, - ATA_LFLAG_ASSUME_SEMB = 16, - ATA_LFLAG_ASSUME_CLASS = 24, - ATA_LFLAG_NO_RETRY = 32, - ATA_LFLAG_DISABLED = 64, - ATA_LFLAG_SW_ACTIVITY = 128, - ATA_LFLAG_NO_LPM = 256, - ATA_LFLAG_RST_ONCE = 512, - ATA_LFLAG_CHANGED = 1024, - ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, - ATA_FLAG_SLAVE_POSS = 1, - ATA_FLAG_SATA = 2, - ATA_FLAG_NO_LPM = 4, - ATA_FLAG_NO_LOG_PAGE = 32, - ATA_FLAG_NO_ATAPI = 64, - ATA_FLAG_PIO_DMA = 128, - ATA_FLAG_PIO_LBA48 = 256, - ATA_FLAG_PIO_POLLING = 512, - ATA_FLAG_NCQ = 1024, - ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, - ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, - ATA_FLAG_DEBUGMSG = 8192, - ATA_FLAG_FPDMA_AA = 16384, - ATA_FLAG_IGN_SIMPLEX = 32768, - ATA_FLAG_NO_IORDY = 65536, - ATA_FLAG_ACPI_SATA = 131072, - ATA_FLAG_AN = 262144, - ATA_FLAG_PMP = 524288, - ATA_FLAG_FPDMA_AUX = 1048576, - ATA_FLAG_EM = 2097152, - ATA_FLAG_SW_ACTIVITY = 4194304, - ATA_FLAG_NO_DIPM = 8388608, - ATA_FLAG_SAS_HOST = 16777216, - ATA_PFLAG_EH_PENDING = 1, - ATA_PFLAG_EH_IN_PROGRESS = 2, - ATA_PFLAG_FROZEN = 4, - ATA_PFLAG_RECOVERED = 8, - ATA_PFLAG_LOADING = 16, - ATA_PFLAG_SCSI_HOTPLUG = 64, - ATA_PFLAG_INITIALIZING = 128, - ATA_PFLAG_RESETTING = 256, - ATA_PFLAG_UNLOADING = 512, - ATA_PFLAG_UNLOADED = 1024, - ATA_PFLAG_SUSPENDED = 131072, - ATA_PFLAG_PM_PENDING = 262144, - ATA_PFLAG_INIT_GTM_VALID = 524288, - ATA_PFLAG_PIO32 = 1048576, - ATA_PFLAG_PIO32CHANGE = 2097152, - ATA_PFLAG_EXTERNAL = 4194304, - ATA_QCFLAG_ACTIVE = 1, - ATA_QCFLAG_DMAMAP = 2, - ATA_QCFLAG_RTF_FILLED = 4, - ATA_QCFLAG_IO = 8, - ATA_QCFLAG_RESULT_TF = 16, - ATA_QCFLAG_CLEAR_EXCL = 32, - ATA_QCFLAG_QUIET = 64, - ATA_QCFLAG_RETRY = 128, - ATA_QCFLAG_HAS_CDL = 256, - ATA_QCFLAG_EH = 65536, - ATA_QCFLAG_SENSE_VALID = 131072, - ATA_QCFLAG_EH_SCHEDULED = 262144, - ATA_QCFLAG_EH_SUCCESS_CMD = 524288, - ATA_HOST_SIMPLEX = 1, - ATA_HOST_STARTED = 2, - ATA_HOST_PARALLEL_SCAN = 4, - ATA_HOST_IGNORE_ATA = 8, - ATA_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_GET_SUCCESS_SENSE = 64, - ATA_EH_PERDEV_MASK = 97, - 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, +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 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 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 ccsr_ahci; - -struct ahci_qoriq_priv { - struct ccsr_ahci *reg_base; - enum ahci_qoriq_type type; - void *ecc_addr; - bool is_dmacoherent; +struct xhci_root_port_bw_info { + struct list_head tts; + unsigned int num_active_tts; + struct xhci_interval_bw_table bw_table; }; -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 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 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 xhci_port_cap { + u32 *psi; + u8 psi_count; + u8 psi_uid_count; + u8 maj_rev; + u8 min_rev; }; -struct ahci_cmd_hdr { - __le32 opts; - __le32 status; - __le32 tbl_addr; - __le32 tbl_addr_hi; +struct xhci_slot_ctx { + __le32 dev_info; + __le32 dev_info2; + __le32 tt_info; + __le32 dev_state; __le32 reserved[4]; }; -enum spi_nor_protocol { - SNOR_PROTO_1_1_1 = 65793, - SNOR_PROTO_1_1_2 = 65794, - SNOR_PROTO_1_1_4 = 65796, - SNOR_PROTO_1_1_8 = 65800, - SNOR_PROTO_1_2_2 = 66050, - SNOR_PROTO_1_4_4 = 66564, - SNOR_PROTO_1_8_8 = 67592, - SNOR_PROTO_2_2_2 = 131586, - SNOR_PROTO_4_4_4 = 263172, - SNOR_PROTO_8_8_8 = 526344, - SNOR_PROTO_1_1_1_DTR = 16843009, - SNOR_PROTO_1_2_2_DTR = 16843266, - SNOR_PROTO_1_4_4_DTR = 16843780, - SNOR_PROTO_1_8_8_DTR = 16844808, - SNOR_PROTO_8_8_8_DTR = 17303560, +struct xhci_ep_ctx { + __le32 ep_info; + __le32 ep_info2; + __le64 deq; + __le32 tx_info; + __le32 reserved[3]; }; -struct sfdp_bfpt_read { - u32 hwcaps; - u32 supported_dword; - u32 supported_bit; - u32 settings_dword; - u32 settings_shift; - enum spi_nor_protocol proto; -}; +struct xhci_ep_priv; -struct sfdp_bfpt_erase { - u32 dword; - u32 shift; +struct xhci_slot_priv { + char name[32]; + struct dentry *root; + struct xhci_ep_priv *eps[31]; + struct xhci_virt_device *dev; }; -struct sfdp_4bait { - u32 hwcaps; - u32 supported_bit; +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; }; -enum spi_mem_data_dir { - SPI_MEM_NO_DATA = 0, - SPI_MEM_DATA_IN = 1, - SPI_MEM_DATA_OUT = 2, +enum usb_phy_interface { + USBPHY_INTERFACE_MODE_UNKNOWN = 0, + USBPHY_INTERFACE_MODE_UTMI = 1, + USBPHY_INTERFACE_MODE_UTMIW = 2, + USBPHY_INTERFACE_MODE_ULPI = 3, + USBPHY_INTERFACE_MODE_SERIAL = 4, + USBPHY_INTERFACE_MODE_HSIC = 5, }; -enum spi_nor_cmd_ext { - SPI_NOR_EXT_NONE = 0, - SPI_NOR_EXT_REPEAT = 1, - SPI_NOR_EXT_INVERT = 2, - SPI_NOR_EXT_HEX = 3, +enum ci_role { + CI_ROLE_HOST = 0, + CI_ROLE_GADGET = 1, + CI_ROLE_END = 2, }; -enum spi_nor_option_flags { - SNOR_F_HAS_SR_TB = 1, - SNOR_F_NO_OP_CHIP_ERASE = 2, - SNOR_F_BROKEN_RESET = 4, - SNOR_F_4B_OPCODES = 8, - SNOR_F_HAS_4BAIT = 16, - SNOR_F_HAS_LOCK = 32, - SNOR_F_HAS_16BIT_SR = 64, - SNOR_F_NO_READ_CR = 128, - SNOR_F_HAS_SR_TB_BIT6 = 256, - SNOR_F_HAS_4BIT_BP = 512, - SNOR_F_HAS_SR_BP3_BIT6 = 1024, - SNOR_F_IO_MODE_EN_VOLATILE = 2048, - SNOR_F_SOFT_RESET = 4096, - SNOR_F_SWP_IS_VOLATILE = 8192, - SNOR_F_RWW = 16384, - SNOR_F_ECC = 32768, +enum otg_fsm_timer { + A_WAIT_VRISE = 0, + A_WAIT_VFALL = 1, + A_WAIT_BCON = 2, + A_AIDL_BDIS = 3, + B_ASE0_BRST = 4, + A_BIDL_ADIS = 5, + B_AIDL_BDIS = 6, + B_SE0_SRP = 7, + B_SRP_FAIL = 8, + A_WAIT_ENUM = 9, + B_DATA_PLS = 10, + B_SSEND_SRP = 11, + NUM_OTG_FSM_TIMERS = 12, }; -enum spi_nor_read_command_index { - SNOR_CMD_READ = 0, - SNOR_CMD_READ_FAST = 1, - SNOR_CMD_READ_1_1_1_DTR = 2, - SNOR_CMD_READ_1_1_2 = 3, - SNOR_CMD_READ_1_2_2 = 4, - SNOR_CMD_READ_2_2_2 = 5, - SNOR_CMD_READ_1_2_2_DTR = 6, - SNOR_CMD_READ_1_1_4 = 7, - SNOR_CMD_READ_1_4_4 = 8, - SNOR_CMD_READ_4_4_4 = 9, - SNOR_CMD_READ_1_4_4_DTR = 10, - SNOR_CMD_READ_1_1_8 = 11, - SNOR_CMD_READ_1_8_8 = 12, - SNOR_CMD_READ_8_8_8 = 13, - SNOR_CMD_READ_1_8_8_DTR = 14, - SNOR_CMD_READ_8_8_8_DTR = 15, - SNOR_CMD_READ_MAX = 16, +enum ci_revision { + CI_REVISION_1X = 10, + CI_REVISION_20 = 20, + CI_REVISION_21 = 21, + CI_REVISION_22 = 22, + CI_REVISION_23 = 23, + CI_REVISION_24 = 24, + CI_REVISION_25 = 25, + CI_REVISION_25_PLUS = 26, + CI_REVISION_UNKNOWN = 99, }; -enum spi_nor_pp_command_index { - SNOR_CMD_PP = 0, - SNOR_CMD_PP_1_1_4 = 1, - SNOR_CMD_PP_1_4_4 = 2, - SNOR_CMD_PP_4_4_4 = 3, - SNOR_CMD_PP_1_1_8 = 4, - SNOR_CMD_PP_1_8_8 = 5, - SNOR_CMD_PP_8_8_8 = 6, - SNOR_CMD_PP_8_8_8_DTR = 7, - SNOR_CMD_PP_MAX = 8, +enum ci_hw_regs { + CAP_CAPLENGTH = 0, + CAP_HCCPARAMS = 1, + CAP_DCCPARAMS = 2, + CAP_TESTMODE = 3, + CAP_LAST = 3, + OP_USBCMD = 4, + OP_USBSTS = 5, + OP_USBINTR = 6, + OP_FRINDEX = 7, + OP_DEVICEADDR = 8, + OP_ENDPTLISTADDR = 9, + OP_TTCTRL = 10, + OP_BURSTSIZE = 11, + OP_ULPI_VIEWPORT = 12, + OP_PORTSC = 13, + OP_DEVLC = 14, + OP_OTGSC = 15, + OP_USBMODE = 16, + OP_ENDPTSETUPSTAT = 17, + OP_ENDPTPRIME = 18, + OP_ENDPTFLUSH = 19, + OP_ENDPTSTAT = 20, + OP_ENDPTCOMPLETE = 21, + OP_ENDPTCTRL = 22, + OP_LAST = 38, }; -typedef unsigned char u_char; - -struct mtd_ecc_stats { - __u32 corrected; - __u32 failed; - __u32 badblocks; - __u32 bbtblocks; -}; +struct ci_hdrc; -struct mtd_debug_info { - struct dentry *dfs_dir; +struct ci_hdrc_cable { + bool connected; + bool changed; + bool enabled; + struct extcon_dev *edev; + struct ci_hdrc *ci; + struct notifier_block nb; }; -struct mtd_part { - struct list_head node; - u64 offset; - u64 size; - u32 flags; - long: 32; +struct ci_hdrc_platform_data { + const char *name; + uintptr_t capoffset; + unsigned int power_budget; + struct phy *phy; + struct usb_phy *usb_phy; + enum usb_phy_interface phy_mode; + unsigned long flags; + enum usb_dr_mode dr_mode; + int (*notify_event)(struct ci_hdrc *, unsigned int); + struct regulator *reg_vbus; + struct usb_otg_caps ci_otg_caps; + bool tpl_support; + u32 itc_setting; + u32 ahb_burst_config; + u32 tx_burst_size; + u32 rx_burst_size; + struct ci_hdrc_cable vbus_extcon; + struct ci_hdrc_cable id_extcon; + u32 phy_clkgate_delay_us; + struct pinctrl *pctl; + struct pinctrl_state *pins_default; + struct pinctrl_state *pins_host; + struct pinctrl_state *pins_device; + int (*hub_control)(struct ci_hdrc *, u16, u16, u16, char *, u16, bool *, unsigned long *); + void (*enter_lpm)(struct ci_hdrc *, bool); }; -struct mtd_master { - struct mutex partitions_lock; - struct mutex chrdev_lock; - unsigned int suspended: 1; +struct hw_bank { + unsigned int lpm; + resource_size_t phys; + void *abs; + void *cap; + void *op; + size_t size; + void *regmap[39]; }; -struct mtd_ooblayout_ops; - -struct mtd_pairing_scheme; - -struct mtd_erase_region_info; - -struct erase_info; +struct otg_fsm_ops; -struct mtd_oob_ops; +struct otg_fsm { + int id; + int adp_change; + int power_up; + int a_srp_det; + int a_vbus_vld; + int b_conn; + int a_bus_resume; + int a_bus_suspend; + int a_conn; + int b_se0_srp; + int b_ssend_srp; + int b_sess_vld; + int test_device; + int a_bus_drop; + int a_bus_req; + int b_bus_req; + int a_sess_vld; + int b_bus_resume; + int b_bus_suspend; + int drv_vbus; + int loc_conn; + int loc_sof; + int adp_prb; + int adp_sns; + int data_pulse; + int a_set_b_hnp_en; + int b_srp_done; + int b_hnp_enable; + int a_clr_err; + int a_bus_drop_inf; + int a_bus_req_inf; + int a_clr_err_inf; + int b_bus_req_inf; + int a_suspend_req_inf; + int a_wait_vrise_tmout; + int a_wait_vfall_tmout; + int a_wait_bcon_tmout; + int a_aidl_bdis_tmout; + int b_ase0_brst_tmout; + int a_bidl_adis_tmout; + struct otg_fsm_ops *ops; + struct usb_otg *otg; + int protocol; + struct mutex lock; + u8 *host_req_flag; + struct delayed_work hnp_polling_work; + bool hnp_work_inited; + bool state_changed; +}; -struct otp_info; +struct ci_hw_qh; -struct nvmem_device; +struct td_node; -struct mtd_info { - u_char type; - uint32_t flags; - uint64_t size; - uint32_t erasesize; - uint32_t writesize; - uint32_t writebufsize; - uint32_t oobsize; - uint32_t oobavail; - unsigned int erasesize_shift; - unsigned int writesize_shift; - unsigned int erasesize_mask; - unsigned int writesize_mask; - unsigned int bitflip_threshold; - const char *name; - int index; - const struct mtd_ooblayout_ops *ooblayout; - const struct mtd_pairing_scheme *pairing; - unsigned int ecc_step_size; - unsigned int ecc_strength; - int numeraseregions; - struct mtd_erase_region_info *eraseregions; - int (*_erase)(struct mtd_info *, struct erase_info *); - int (*_point)(struct mtd_info *, loff_t, size_t, size_t *, void **, resource_size_t *); - int (*_unpoint)(struct mtd_info *, loff_t, size_t); - int (*_read)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); - int (*_write)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); - int (*_panic_write)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); - int (*_read_oob)(struct mtd_info *, loff_t, struct mtd_oob_ops *); - int (*_write_oob)(struct mtd_info *, loff_t, struct mtd_oob_ops *); - int (*_get_fact_prot_info)(struct mtd_info *, size_t, size_t *, struct otp_info *); - int (*_read_fact_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); - int (*_get_user_prot_info)(struct mtd_info *, size_t, size_t *, struct otp_info *); - int (*_read_user_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); - int (*_write_user_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); - int (*_lock_user_prot_reg)(struct mtd_info *, loff_t, size_t); - int (*_erase_user_prot_reg)(struct mtd_info *, loff_t, size_t); - int (*_writev)(struct mtd_info *, const struct kvec *, unsigned long, loff_t, size_t *); - void (*_sync)(struct mtd_info *); - int (*_lock)(struct mtd_info *, loff_t, uint64_t); - int (*_unlock)(struct mtd_info *, loff_t, uint64_t); - int (*_is_locked)(struct mtd_info *, loff_t, uint64_t); - int (*_block_isreserved)(struct mtd_info *, loff_t); - int (*_block_isbad)(struct mtd_info *, loff_t); - int (*_block_markbad)(struct mtd_info *, loff_t); - int (*_max_bad_blocks)(struct mtd_info *, loff_t, size_t); - int (*_suspend)(struct mtd_info *); - void (*_resume)(struct mtd_info *); - void (*_reboot)(struct mtd_info *); - int (*_get_device)(struct mtd_info *); - void (*_put_device)(struct mtd_info *); - bool oops_panic_write; - struct notifier_block reboot_notifier; - struct mtd_ecc_stats ecc_stats; - int subpage_sft; - void *priv; - struct module *owner; - struct device dev; - int usecount; - struct mtd_debug_info dbg; - struct nvmem_device *nvmem; - struct nvmem_device *otp_user_nvmem; - struct nvmem_device *otp_factory_nvmem; - struct mtd_info *parent; - struct list_head partitions; - struct mtd_part part; - struct mtd_master master; - long: 32; +struct ci_hw_ep { + struct usb_ep ep; + u8 dir; + u8 num; + u8 type; + char name[16]; + struct { + struct list_head queue; + struct ci_hw_qh *ptr; + dma_addr_t dma; + } qh; + int wedge; + struct ci_hdrc *ci; + spinlock_t *lock; + struct dma_pool *td_pool; + struct td_node *pending_td; }; -struct spi_nor_rww { - wait_queue_head_t wait; - bool ongoing_io; - bool ongoing_rd; - bool ongoing_pe; - unsigned int used_banks; +struct ulpi_ops { + int (*read)(struct device *, u8); + int (*write)(struct device *, u8, u8); }; -struct spi_mem; +struct ci_role_driver; -struct flash_info; +struct ulpi; -struct spi_nor_manufacturer; +struct ci_hdrc { + struct device *dev; + spinlock_t lock; + struct hw_bank hw_bank; + int irq; + struct ci_role_driver *roles[2]; + enum ci_role role; + bool is_otg; + struct usb_otg otg; + struct otg_fsm fsm; + struct hrtimer otg_fsm_hrtimer; + ktime_t hr_timeouts[12]; + unsigned int enabled_otg_timer_bits; + enum otg_fsm_timer next_otg_timer; + struct usb_role_switch *role_switch; + struct work_struct work; + struct workqueue_struct *wq; + struct dma_pool *qh_pool; + struct dma_pool *td_pool; + struct usb_gadget gadget; + struct usb_gadget_driver *driver; + enum usb_device_state resume_state; + unsigned int hw_ep_max; + struct ci_hw_ep ci_hw_ep[32]; + u32 ep0_dir; + struct ci_hw_ep *ep0out; + struct ci_hw_ep *ep0in; + struct usb_request *status; + bool setaddr; + u8 address; + u8 remote_wakeup; + u8 suspended; + u8 test_mode; + struct ci_hdrc_platform_data *platdata; + int vbus_active; + struct ulpi *ulpi; + struct ulpi_ops ulpi_ops; + struct phy *phy; + struct usb_phy *usb_phy; + struct usb_hcd *hcd; + bool id_event; + bool b_sess_valid_event; + bool imx28_write_fix; + bool has_portsc_pec_bug; + bool supports_runtime_pm; + bool in_lpm; + bool wakeup_int; + enum ci_revision rev; + struct mutex mutex; + long: 32; +}; -struct sfdp; +struct ci_role_driver { + int (*start)(struct ci_hdrc *); + void (*stop)(struct ci_hdrc *); + void (*suspend)(struct ci_hdrc *); + void (*resume)(struct ci_hdrc *, bool); + irqreturn_t (*irq)(struct ci_hdrc *); + const char *name; +}; -struct spi_nor_controller_ops; +struct otg_fsm_ops { + void (*chrg_vbus)(struct otg_fsm *, int); + void (*drv_vbus)(struct otg_fsm *, int); + void (*loc_conn)(struct otg_fsm *, int); + void (*loc_sof)(struct otg_fsm *, int); + void (*start_pulse)(struct otg_fsm *); + void (*start_adp_prb)(struct otg_fsm *); + void (*start_adp_sns)(struct otg_fsm *); + void (*add_timer)(struct otg_fsm *, enum otg_fsm_timer); + void (*del_timer)(struct otg_fsm *, enum otg_fsm_timer); + int (*start_host)(struct otg_fsm *, int); + int (*start_gadget)(struct otg_fsm *, int); +}; -struct spi_nor_flash_parameter; +struct npcm_udc_data { + struct platform_device *ci; + struct clk *core_clk; + struct ci_hdrc_platform_data pdata; +}; -struct spi_mem_dirmap_desc; +struct udc_ep_regs; -struct spi_nor { - struct mtd_info mtd; - struct mutex lock; - struct spi_nor_rww rww; - struct device *dev; - struct spi_mem *spimem; - u8 *bouncebuf; - size_t bouncebuf_size; - u8 *id; - const struct flash_info *info; - const struct spi_nor_manufacturer *manufacturer; - u8 addr_nbytes; - u8 erase_opcode; - u8 read_opcode; - u8 read_dummy; - u8 program_opcode; - enum spi_nor_protocol read_proto; - enum spi_nor_protocol write_proto; - enum spi_nor_protocol reg_proto; - bool sst_write_second; - u32 flags; - enum spi_nor_cmd_ext cmd_ext_type; - struct sfdp *sfdp; - struct dentry *debugfs_root; - const struct spi_nor_controller_ops *controller_ops; - struct spi_nor_flash_parameter *params; - struct { - struct spi_mem_dirmap_desc *rdesc; - struct spi_mem_dirmap_desc *wdesc; - } dirmap; - void *priv; -}; +struct udc_stp_dma; -struct mtd_oob_region; +struct udc_data_dma; -struct mtd_ooblayout_ops { - int (*ecc)(struct mtd_info *, int, struct mtd_oob_region *); - int (*free)(struct mtd_info *, int, struct mtd_oob_region *); +struct udc_request; + +struct udc; + +struct udc_ep { + struct usb_ep ep; + struct udc_ep_regs *regs; + u32 *txfifo; + u32 *dma; + dma_addr_t td_phys; + dma_addr_t td_stp_dma; + struct udc_stp_dma *td_stp; + struct udc_data_dma *td; + struct udc_request *req; + unsigned int req_used; + unsigned int req_completed; + struct udc_request *bna_dummy_req; + unsigned int bna_occurred; + unsigned int naking; + struct udc *dev; + struct list_head queue; + unsigned int halted; + unsigned int cancel_transfer; + unsigned int num: 5; + unsigned int fifo_depth: 14; + unsigned int in: 1; }; -struct mtd_oob_region { - u32 offset; - u32 length; +struct extcon_specific_cable_nb { + struct notifier_block *user_nb; + int cable_index; + struct extcon_dev *edev; + unsigned long previous_value; }; -struct mtd_pairing_info; +struct udc_csrs; -struct mtd_pairing_scheme { - int ngroups; - int (*get_info)(struct mtd_info *, int, struct mtd_pairing_info *); - int (*get_wunit)(struct mtd_info *, const struct mtd_pairing_info *); -}; +struct udc_regs; -struct mtd_pairing_info { - int pair; - int group; +struct udc { + struct usb_gadget gadget; + spinlock_t lock; + struct udc_ep ep[32]; + struct usb_gadget_driver *driver; + unsigned int stall_ep0in: 1; + unsigned int waiting_zlp_ack_ep0in: 1; + unsigned int set_cfg_not_acked: 1; + unsigned int data_ep_enabled: 1; + unsigned int data_ep_queued: 1; + unsigned int sys_suspended: 1; + unsigned int connected; + u16 chiprev; + struct pci_dev *pdev; + struct udc_csrs *csr; + struct udc_regs *regs; + struct udc_ep_regs *ep_regs; + u32 *rxfifo; + u32 *txfifo; + struct dma_pool *data_requests; + struct dma_pool *stp_requests; + unsigned long phys_addr; + void *virt_addr; + unsigned int irq; + u16 cur_config; + u16 cur_intf; + u16 cur_alt; + struct device *dev; + struct phy *udc_phy; + struct extcon_dev *edev; + struct extcon_specific_cable_nb extcon_nb; + struct notifier_block nb; + struct delayed_work drd_work; + u32 conn_type; }; -struct mtd_erase_region_info { - uint64_t offset; - uint32_t erasesize; - uint32_t numblocks; - unsigned long *lockmap; - long: 32; +struct udc_ep_regs { + u32 ctl; + u32 sts; + u32 bufin_framenum; + u32 bufout_maxpkt; + u32 subptr; + u32 desptr; + u32 reserved; + u32 confirm; }; -struct erase_info { - uint64_t addr; - uint64_t len; - uint64_t fail_addr; +struct udc_stp_dma { + u32 status; + u32 _reserved; + u32 data12; + u32 data34; }; -struct mtd_req_stats; +struct udc_data_dma { + u32 status; + u32 _reserved; + u32 bufptr; + u32 next; +}; -struct mtd_oob_ops { - unsigned int mode; - size_t len; - size_t retlen; - size_t ooblen; - size_t oobretlen; - uint32_t ooboffs; - uint8_t *datbuf; - uint8_t *oobbuf; - struct mtd_req_stats *stats; +struct udc_request { + struct usb_request req; + unsigned int dma_going: 1; + unsigned int dma_done: 1; + dma_addr_t td_phys; + struct udc_data_dma *td_data; + struct udc_data_dma *td_data_last; + struct list_head queue; + unsigned int chain_len; }; -struct mtd_req_stats { - unsigned int uncorrectable_errors; - unsigned int corrected_bitflips; - unsigned int max_bitflips; +struct udc_csrs { + u32 sca; + u32 ne[9]; }; -struct otp_info { - __u32 start; - __u32 length; - __u32 locked; +struct udc_regs { + u32 cfg; + u32 ctl; + u32 sts; + u32 irqsts; + u32 irqmsk; + u32 ep_irqsts; + u32 ep_irqmsk; }; -struct spi_device; +enum ps2_disposition { + PS2_PROCESS = 0, + PS2_IGNORE = 1, + PS2_ERROR = 2, +}; -struct spi_mem { - struct spi_device *spi; - void *drvpriv; - const char *name; +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, }; -struct spi_delay { - u16 value; - u8 unit; +enum psmouse_state { + PSMOUSE_IGNORE = 0, + PSMOUSE_INITIALIZING = 1, + PSMOUSE_RESYNCING = 2, + PSMOUSE_CMD_MODE = 3, + PSMOUSE_ACTIVATED = 4, }; -struct spi_controller; +enum psmouse_scale { + PSMOUSE_SCALE11 = 0, + PSMOUSE_SCALE21 = 1, +}; -struct spi_statistics; +struct psmouse; -struct spi_device { - struct device dev; - struct spi_controller *controller; - struct spi_controller *master; - u32 max_speed_hz; - u8 chip_select; - u8 bits_per_word; - bool rt; - u32 mode; - int irq; - void *controller_state; - void *controller_data; - char modalias[32]; - const char *driver_override; - struct gpio_desc *cs_gpiod; - struct spi_delay word_delay; - struct spi_delay cs_setup; - struct spi_delay cs_hold; - struct spi_delay cs_inactive; - struct spi_statistics __attribute__((btf_type_tag("percpu"))) *pcpu_statistics; - long: 32; +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 spi_message; - -struct spi_transfer; +struct ps2dev; -struct spi_controller_mem_ops; +typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int); -struct spi_controller_mem_caps; +typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8); -struct spi_controller { - struct device dev; - struct list_head list; - s16 bus_num; - u16 num_chipselect; - u16 dma_alignment; - u32 mode_bits; - u32 buswidth_override_bits; - u32 bits_per_word_mask; - u32 min_speed_hz; - u32 max_speed_hz; - u16 flags; - bool devm_allocated; - union { - bool slave; - bool target; - }; - size_t (*max_transfer_size)(struct spi_device *); - size_t (*max_message_size)(struct spi_device *); - struct mutex io_mutex; - struct mutex add_lock; - spinlock_t bus_lock_spinlock; - struct mutex bus_lock_mutex; - bool bus_lock_flag; - int (*setup)(struct spi_device *); - int (*set_cs_timing)(struct spi_device *); - int (*transfer)(struct spi_device *, struct spi_message *); - void (*cleanup)(struct spi_device *); - bool (*can_dma)(struct spi_controller *, struct spi_device *, struct spi_transfer *); - struct device *dma_map_dev; - struct device *cur_rx_dma_dev; - struct device *cur_tx_dma_dev; - bool queued; - struct kthread_worker *kworker; - struct kthread_work pump_messages; - spinlock_t queue_lock; - struct list_head queue; - struct spi_message *cur_msg; - struct completion cur_msg_completion; - bool cur_msg_incomplete; - bool cur_msg_need_completion; - bool busy; - bool running; - bool rt; - bool auto_runtime_pm; - bool cur_msg_mapped; - char last_cs; - bool last_cs_mode_high; - bool fallback; - struct completion xfer_completion; - size_t max_dma_len; - int (*prepare_transfer_hardware)(struct spi_controller *); - int (*transfer_one_message)(struct spi_controller *, struct spi_message *); - int (*unprepare_transfer_hardware)(struct spi_controller *); - int (*prepare_message)(struct spi_controller *, struct spi_message *); - int (*unprepare_message)(struct spi_controller *, struct spi_message *); - union { - int (*slave_abort)(struct spi_controller *); - int (*target_abort)(struct spi_controller *); - }; - void (*set_cs)(struct spi_device *, bool); - int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *); - void (*handle_err)(struct spi_controller *, struct spi_message *); - const struct spi_controller_mem_ops *mem_ops; - const struct spi_controller_mem_caps *mem_caps; - struct gpio_desc **cs_gpiods; - bool use_gpio_descriptors; - s8 unused_native_cs; - s8 max_native_cs; - struct spi_statistics __attribute__((btf_type_tag("percpu"))) *pcpu_statistics; - struct dma_chan *dma_tx; - struct dma_chan *dma_rx; - void *dummy_rx; - void *dummy_tx; - int (*fw_translate_cs)(struct spi_controller *, unsigned int); - bool ptp_sts_supported; - unsigned long irq_flags; - bool queue_empty; - bool must_async; -}; +struct serio; -struct spi_message { - struct list_head transfers; - struct spi_device *spi; - unsigned int is_dma_mapped: 1; - bool prepared; - int status; - void (*complete)(void *); - void *context; - unsigned int frame_length; - unsigned int actual_length; - struct list_head queue; - void *state; - struct list_head resources; +struct ps2dev { + struct serio *serio; + struct mutex cmd_mutex; + wait_queue_head_t wait; + unsigned long flags; + u8 cmdbuf[8]; + u8 cmdcnt; + u8 nak; + ps2_pre_receive_handler_t pre_receive_handler; + ps2_receive_handler_t receive_handler; }; -struct ptp_system_timestamp; +typedef enum { + PSMOUSE_BAD_DATA = 0, + PSMOUSE_GOOD_DATA = 1, + PSMOUSE_FULL_PACKET = 2, +} psmouse_ret_t; -struct spi_transfer { - const void *tx_buf; - void *rx_buf; - unsigned int len; - u16 error; - dma_addr_t tx_dma; - dma_addr_t rx_dma; - struct sg_table tx_sg; - struct sg_table rx_sg; - unsigned int dummy_data: 1; - unsigned int cs_off: 1; - unsigned int cs_change: 1; - unsigned int tx_nbits: 3; - unsigned int rx_nbits: 3; - unsigned int timestamped: 1; - u8 bits_per_word; - struct spi_delay delay; - struct spi_delay cs_change_delay; - struct spi_delay word_delay; - u32 speed_hz; - u32 effective_speed_hz; - unsigned int ptp_sts_word_pre; - unsigned int ptp_sts_word_post; - struct ptp_system_timestamp *ptp_sts; - struct list_head transfer_list; -}; +struct input_dev; -struct spi_mem_op; +struct psmouse_protocol; -struct spi_controller_mem_ops { - int (*adjust_op_size)(struct spi_mem *, struct spi_mem_op *); - bool (*supports_op)(struct spi_mem *, const struct spi_mem_op *); - int (*exec_op)(struct spi_mem *, const struct spi_mem_op *); - const char * (*get_name)(struct spi_mem *); - int (*dirmap_create)(struct spi_mem_dirmap_desc *); - void (*dirmap_destroy)(struct spi_mem_dirmap_desc *); - ssize_t (*dirmap_read)(struct spi_mem_dirmap_desc *, u64, size_t, void *); - ssize_t (*dirmap_write)(struct spi_mem_dirmap_desc *, u64, size_t, const void *); - int (*poll_status)(struct spi_mem *, const struct spi_mem_op *, u16, u16, unsigned long, unsigned long, unsigned long); +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 spi_mem_op { - struct { - u8 nbytes; - u8 buswidth; - u8 dtr: 1; - u8 __pad: 7; - u16 opcode; - } cmd; - struct { - u8 nbytes; - u8 buswidth; - u8 dtr: 1; - u8 __pad: 7; - long: 32; - u64 val; - } addr; - struct { - u8 nbytes; - u8 buswidth; - u8 dtr: 1; - u8 __pad: 7; - } dummy; - struct { - u8 buswidth; - u8 dtr: 1; - u8 ecc: 1; - u8 __pad: 6; - enum spi_mem_data_dir dir; - unsigned int nbytes; - union { - void *in; - const void *out; - } buf; - } data; - long: 32; +struct input_id { + __u16 bustype; + __u16 vendor; + __u16 product; + __u16 version; }; -struct spi_mem_dirmap_info { - struct spi_mem_op op_tmpl; - u64 offset; - u64 length; -}; +struct input_keymap_entry; -struct spi_mem_dirmap_desc { - struct spi_mem *mem; - long: 32; - struct spi_mem_dirmap_info info; - unsigned int nodirmap; - void *priv; -}; +struct ff_device; -struct spi_controller_mem_caps { - bool dtr; - bool ecc; -}; +struct input_dev_poller; -struct spi_statistics { - struct u64_stats_sync syncp; - long: 32; - u64_stats_t messages; - u64_stats_t transfers; - u64_stats_t errors; - u64_stats_t timedout; - u64_stats_t spi_sync; - u64_stats_t spi_sync_immediate; - u64_stats_t spi_async; - u64_stats_t bytes; - u64_stats_t bytes_rx; - u64_stats_t bytes_tx; - u64_stats_t transfer_bytes_histo[17]; - u64_stats_t transfers_split_maxsize; -}; +struct input_mt; -struct spi_nor_otp_organization { - size_t len; - long: 32; - loff_t base; - loff_t offset; - unsigned int n_regions; - long: 32; -}; +struct input_absinfo; -struct spi_nor_fixups; +struct input_handle; -struct flash_info { - char *name; - u8 id[6]; - u8 id_len; - unsigned int sector_size; - u16 n_sectors; - u16 page_size; - u8 n_banks; - u8 addr_nbytes; - bool parse_sfdp; - u16 flags; - u8 no_sfdp_flags; - u8 fixup_flags; - u8 mfr_flags; - const struct spi_nor_otp_organization otp_org; - const struct spi_nor_fixups *fixups; +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[24]; + unsigned long relbit[1]; + unsigned long absbit[2]; + unsigned long mscbit[1]; + unsigned long ledbit[1]; + unsigned long sndbit[1]; + unsigned long ffbit[4]; + 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[24]; + 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; long: 32; }; -struct sfdp_parameter_header; - -struct sfdp_bfpt; - -struct spi_nor_fixups { - void (*default_init)(struct spi_nor *); - int (*post_bfpt)(struct spi_nor *, const struct sfdp_parameter_header *, const struct sfdp_bfpt *); - int (*post_sfdp)(struct spi_nor *); - void (*late_init)(struct spi_nor *); +struct input_keymap_entry { + __u8 flags; + __u8 len; + __u16 index; + __u32 keycode; + __u8 scancode[32]; }; -struct sfdp_parameter_header { - u8 id_lsb; - u8 minor; - u8 major; - u8 length; - u8 parameter_table_pointer[3]; - u8 id_msb; +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[4]; + struct mutex mutex; + int max_effects; + struct ff_effect *effects; + struct file *effect_owners[0]; }; -struct sfdp_bfpt { - u32 dwords[20]; +struct ff_envelope { + __u16 attack_length; + __u16 attack_level; + __u16 fade_length; + __u16 fade_level; }; -struct spi_nor_manufacturer { - const char *name; - const struct flash_info *parts; - unsigned int nparts; - const struct spi_nor_fixups *fixups; +struct ff_constant_effect { + __s16 level; + struct ff_envelope envelope; }; -struct sfdp { - size_t num_dwords; - u32 *dwords; +struct ff_ramp_effect { + __s16 start_level; + __s16 end_level; + struct ff_envelope envelope; }; -struct spi_nor_controller_ops { - int (*prepare)(struct spi_nor *); - void (*unprepare)(struct spi_nor *); - int (*read_reg)(struct spi_nor *, u8, u8 *, size_t); - int (*write_reg)(struct spi_nor *, u8, const u8 *, size_t); - ssize_t (*read)(struct spi_nor *, loff_t, size_t, u8 *); - ssize_t (*write)(struct spi_nor *, loff_t, size_t, const u8 *); - int (*erase)(struct spi_nor *, loff_t); +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 spi_nor_hwcaps { - u32 mask; +struct ff_condition_effect { + __u16 right_saturation; + __u16 left_saturation; + __s16 right_coeff; + __s16 left_coeff; + __u16 deadband; + __s16 center; }; -struct spi_nor_read_command { - u8 num_mode_clocks; - u8 num_wait_states; - u8 opcode; - enum spi_nor_protocol proto; +struct ff_rumble_effect { + __u16 strong_magnitude; + __u16 weak_magnitude; }; -struct spi_nor_pp_command { - u8 opcode; - enum spi_nor_protocol proto; +struct ff_trigger { + __u16 button; + __u16 interval; }; -struct spi_nor_erase_region { - u64 offset; - u64 size; +struct ff_replay { + __u16 length; + __u16 delay; }; -struct spi_nor_erase_type { - u32 size; - u32 size_shift; - u32 size_mask; - u8 opcode; - u8 idx; +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 spi_nor_erase_map { - struct spi_nor_erase_region *regions; - long: 32; - struct spi_nor_erase_region uniform_region; - struct spi_nor_erase_type erase_type[4]; - u8 uniform_erase_type; - long: 32; +struct input_absinfo { + __s32 value; + __s32 minimum; + __s32 maximum; + __s32 fuzz; + __s32 flat; + __s32 resolution; }; -struct spi_nor_otp_ops; +struct input_handler; -struct spi_nor_otp { - const struct spi_nor_otp_organization *org; - const struct spi_nor_otp_ops *ops; +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 spi_nor_locking_ops; +struct input_device_id; -struct spi_nor_flash_parameter { - u64 bank_size; - u64 size; - u32 writesize; - u32 page_size; - u8 addr_nbytes; - u8 addr_mode_nbytes; - u8 rdsr_dummy; - u8 rdsr_addr_nbytes; - u8 n_dice; - u32 *vreg_offset; - struct spi_nor_hwcaps hwcaps; - struct spi_nor_read_command reads[16]; - struct spi_nor_pp_command page_programs[8]; - struct spi_nor_erase_map erase_map; - struct spi_nor_otp otp; - int (*octal_dtr_enable)(struct spi_nor *, bool); - int (*quad_enable)(struct spi_nor *); - int (*set_4byte_addr_mode)(struct spi_nor *, bool); - u32 (*convert_addr)(struct spi_nor *, u32); - int (*setup)(struct spi_nor *, const struct spi_nor_hwcaps *); - int (*ready)(struct spi_nor *); - const struct spi_nor_locking_ops *locking_ops; - long: 32; +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 spi_nor_otp_ops { - int (*read)(struct spi_nor *, loff_t, size_t, u8 *); - int (*write)(struct spi_nor *, loff_t, size_t, const u8 *); - int (*lock)(struct spi_nor *, unsigned int); - int (*erase)(struct spi_nor *, loff_t); - int (*is_locked)(struct spi_nor *, unsigned int); +struct input_value { + __u16 type; + __u16 code; + __s32 value; }; -struct spi_nor_locking_ops { - int (*lock)(struct spi_nor *, loff_t, uint64_t); - int (*unlock)(struct spi_nor *, loff_t, uint64_t); - int (*is_locked)(struct spi_nor *, loff_t, uint64_t); +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[24]; + kernel_ulong_t relbit[1]; + kernel_ulong_t absbit[2]; + kernel_ulong_t mscbit[1]; + kernel_ulong_t ledbit[1]; + kernel_ulong_t sndbit[1]; + kernel_ulong_t ffbit[4]; + kernel_ulong_t swbit[1]; + kernel_ulong_t propbit[1]; + kernel_ulong_t driver_info; }; -struct sfdp_header { - u32 signature; - u8 minor; - u8 major; - u8 nph; - u8 unused; - struct sfdp_parameter_header bfpt_header; +struct serio_device_id { + __u8 type; + __u8 extra; + __u8 id; + __u8 proto; }; -struct spi_device_id; +struct serio_driver; -struct spi_driver { - const struct spi_device_id *id_table; - int (*probe)(struct spi_device *); - void (*remove)(struct spi_device *); - void (*shutdown)(struct spi_device *); - struct device_driver driver; -}; - -struct spi_device_id { +struct serio { + void *port_data; char name[32]; - kernel_ulong_t driver_data; + 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; + long: 32; + struct device dev; + struct list_head node; + struct mutex *ps2_cmd_mutex; + long: 32; }; -struct spi_ioc_transfer { - __u64 tx_buf; - __u64 rx_buf; - __u32 len; - __u32 speed_hz; - __u16 delay_usecs; - __u8 bits_per_word; - __u8 cs_change; - __u8 tx_nbits; - __u8 rx_nbits; - __u8 word_delay_usecs; - __u8 pad; +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 spidev_data { - dev_t devt; - struct mutex spi_lock; - struct spi_device *spi; - struct list_head device_entry; - struct mutex buf_lock; - unsigned int users; - u8 *tx_buffer; - u8 *rx_buffer; - u32 speed_hz; +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 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 rtc_time; -struct ethtool_regs { - __u32 cmd; - __u32 version; - __u32 len; - __u8 data[0]; -}; +struct rtc_wkalrm; -struct ethtool_wolinfo { - __u32 cmd; - __u32 supported; - __u32 wolopts; - __u8 sopass[6]; -}; +struct rtc_param; -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, +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 *); }; -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, +struct rtc_time { + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; }; -enum 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, +struct rtc_wkalrm { + unsigned char enabled; + unsigned char pending; + struct rtc_time time; }; -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, +struct rtc_param { + __u64 param; + union { + __u64 uvalue; + __s64 svalue; + __u64 ptr; + }; + __u32 index; + __u32 __pad; }; -enum ethtool_link_ext_substate_cable_issue { - ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1, - ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 2, +struct as3722 { + struct device *dev; + struct regmap *regmap; + int chip_irq; + unsigned long irq_flags; + bool en_intern_int_pullup; + bool en_intern_i2c_pullup; + bool en_ac_ok_pwr_on; + struct regmap_irq_chip_data *irq_data; }; -enum ethtool_link_ext_substate_module { - ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1, -}; +struct rtc_device; -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 rtc_timer { + struct timerqueue_node node; + ktime_t period; + void (*func)(struct rtc_device *); + struct rtc_device *rtc; + int enabled; + long: 32; }; -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; - }; -}; +typedef __u64 timeu64_t; -struct ethtool_link_ext_stats { - u64 link_down_events; +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]; + long: 32; + time64_t range_min; + timeu64_t range_max; + timeu64_t alarm_offset_max; + time64_t start_secs; + time64_t offset_secs; + bool set_start_time; + long: 32; }; -struct ethtool_eeprom { - __u32 cmd; - __u32 magic; - __u32 offset; - __u32 len; - __u8 data[0]; +struct as3722_rtc { + struct rtc_device *rtc; + struct device *dev; + struct as3722 *as3722; + int alarm_irq; + bool irq_enable; }; -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; -}; +typedef void (*btf_trace_i2c_slave)(void *, const struct i2c_client *, enum i2c_slave_event, __u8 *, int); -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 trace_event_raw_i2c_slave { + struct trace_entry ent; + int adapter_nr; + int ret; + __u16 addr; + __u16 len; + enum i2c_slave_event event; + __u8 buf[1]; + char __data[0]; }; -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 trace_event_data_offsets_i2c_slave {}; -struct kernel_ethtool_ringparam { - u32 rx_buf_len; - u8 tcp_data_split; - u8 tx_push; - u8 rx_push; - u32 cqe_size; - u32 tx_push_buf_len; - u32 tx_push_buf_max_len; -}; +struct sh_mobile_i2c_data; -enum ethtool_mac_stats_src { - ETHTOOL_MAC_STATS_SRC_AGGREGATE = 0, - ETHTOOL_MAC_STATS_SRC_EMAC = 1, - ETHTOOL_MAC_STATS_SRC_PMAC = 2, +struct sh_mobile_dt_config { + int clks_per_count; + int (*setup)(struct sh_mobile_i2c_data *); }; -struct ethtool_pause_stats { - enum ethtool_mac_stats_src src; +typedef u8 u_int8_t; + +typedef u16 u_int16_t; + +struct sh_mobile_i2c_data { + struct device *dev; + void *reg; + struct i2c_adapter adap; + unsigned long bus_speed; + unsigned int clks_per_count; + struct clk *clk; + u_int8_t icic; + u_int8_t flags; + u_int16_t iccl; + u_int16_t icch; + spinlock_t lock; + wait_queue_head_t wait; + struct i2c_msg *msg; + int pos; + int sr; + bool send_stop; + bool stop_after_dma; + bool atomic_xfer; + struct resource *res; + struct dma_chan *dma_tx; + struct dma_chan *dma_rx; + struct scatterlist sg; + enum dma_data_direction dma_direction; + u8 *dma_buf; long: 32; - 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; +enum sh_mobile_i2c_op { + OP_START = 0, + OP_TX_FIRST = 1, + OP_TX = 2, + OP_TX_STOP = 3, + OP_TX_TO_RX = 4, + OP_RX = 5, + OP_RX_STOP = 6, + OP_RX_STOP_DATA = 7, }; -struct ethtool_test { - __u32 cmd; - __u32 flags; - __u32 reserved; - __u32 len; - __u64 data[0]; +enum clocksource_ids { + CSID_GENERIC = 0, + CSID_ARM_ARCH_COUNTER = 1, + CSID_MAX = 2, }; -struct ethtool_stats { - __u32 cmd; - __u32 n_stats; - __u64 data[0]; +enum vdso_clock_mode { + VDSO_CLOCKMODE_NONE = 0, + VDSO_CLOCKMODE_ARCHTIMER = 1, + VDSO_CLOCKMODE_MAX = 2, + VDSO_CLOCKMODE_TIMENS = 2147483647, }; -struct ethtool_tcpip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be16 psrc; - __be16 pdst; - __u8 tos; +struct clocksource { + u64 (*read)(struct clocksource *); + long: 32; + 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 module *owner; }; -struct ethtool_ah_espip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be32 spi; - __u8 tos; +enum ptp_clock_events { + PTP_CLOCK_ALARM = 0, + PTP_CLOCK_EXTTS = 1, + PTP_CLOCK_PPS = 2, + PTP_CLOCK_PPSUSR = 3, }; -struct ethtool_usrip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be32 l4_4_bytes; - __u8 tos; - __u8 ip_ver; - __u8 proto; -}; +struct ctrl_regs; -struct ethtool_tcpip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be16 psrc; - __be16 pdst; - __u8 tclass; +struct alarm_regs; + +struct fiper_regs; + +struct etts_regs; + +struct ptp_qoriq_registers { + struct ctrl_regs *ctrl_regs; + struct alarm_regs *alarm_regs; + struct fiper_regs *fiper_regs; + struct etts_regs *etts_regs; }; -struct ethtool_ah_espip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be32 spi; - __u8 tclass; +struct ptp_qoriq { + void *base; + struct ptp_qoriq_registers regs; + spinlock_t lock; + struct ptp_clock *clock; + struct ptp_clock_info caps; + struct resource *rsrc; + struct dentry *debugfs_root; + struct device *dev; + bool extts_fifo_support; + bool fiper3_support; + bool etsec; + int irq; + int phc_index; + u32 tclk_period; + u32 tmr_prsc; + u32 tmr_add; + u32 cksel; + u32 tmr_fiper1; + u32 tmr_fiper2; + u32 tmr_fiper3; + u32 (*read)(unsigned int *); + void (*write)(unsigned int *, u32); }; -struct ethtool_usrip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be32 l4_4_bytes; - __u8 tclass; - __u8 l4_proto; +struct ctrl_regs { + u32 tmr_ctrl; + u32 tmr_tevent; + u32 tmr_temask; + u32 tmr_pevent; + u32 tmr_pemask; + u32 tmr_stat; + u32 tmr_cnt_h; + u32 tmr_cnt_l; + u32 tmr_add; + u32 tmr_acc; + u32 tmr_prsc; + u8 res1[4]; + u32 tmroff_h; + u32 tmroff_l; }; -struct ethhdr { - unsigned char h_dest[6]; - unsigned char h_source[6]; - __be16 h_proto; +struct alarm_regs { + u32 tmr_alarm1_h; + u32 tmr_alarm1_l; + u32 tmr_alarm2_h; + u32 tmr_alarm2_l; }; -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 fiper_regs { + u32 tmr_fiper1; + u32 tmr_fiper2; + u32 tmr_fiper3; }; -struct ethtool_flow_ext { - __u8 padding[2]; - unsigned char h_dest[6]; - __be16 vlan_etype; - __be16 vlan_tci; - __be32 data[2]; +struct etts_regs { + u32 tmr_etts1_h; + u32 tmr_etts1_l; + u32 tmr_etts2_h; + u32 tmr_etts2_l; }; -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; - long: 32; - __u64 ring_cookie; - __u32 location; - long: 32; +struct pps_event_time { + struct timespec64 ts_real; }; -struct ethtool_rxnfc { - __u32 cmd; - __u32 flow_type; - __u64 data; - struct ethtool_rx_flow_spec fs; +struct ptp_clock_event { + int type; + int index; union { - __u32 rule_cnt; - __u32 rss_context; + u64 timestamp; + struct pps_event_time pps_times; }; - __u32 rule_locs[0]; - long: 32; }; -struct ethtool_flash { - __u32 cmd; - __u32 region; - char data[128]; +enum thermal_trip_type { + THERMAL_TRIP_ACTIVE = 0, + THERMAL_TRIP_PASSIVE = 1, + THERMAL_TRIP_HOT = 2, + THERMAL_TRIP_CRITICAL = 3, }; -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 thermal_trip { + int temperature; + int hysteresis; + enum thermal_trip_type type; + void *priv; }; -struct ethtool_dump { - __u32 cmd; - __u32 version; - __u32 flag; - __u32 len; - __u8 data[0]; +enum thermal_device_mode { + THERMAL_DEVICE_DISABLED = 0, + THERMAL_DEVICE_ENABLED = 1, }; -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]; +enum thermal_trend { + THERMAL_TREND_STABLE = 0, + THERMAL_TREND_RAISING = 1, + THERMAL_TREND_DROPPING = 2, }; -struct ethtool_modinfo { - __u32 cmd; - __u32 type; - __u32 eeprom_len; - __u32 reserved[8]; -}; +struct thermal_zone_device; -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 thermal_cooling_device; -struct ethtool_tunable { - __u32 cmd; - __u32 id; - __u32 type_id; - __u32 len; - void *data[0]; +struct thermal_zone_device_ops { + int (*bind)(struct thermal_zone_device *, struct thermal_cooling_device *); + int (*unbind)(struct thermal_zone_device *, struct thermal_cooling_device *); + int (*get_temp)(struct thermal_zone_device *, int *); + int (*set_trips)(struct thermal_zone_device *, int, int); + int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode); + int (*set_trip_temp)(struct thermal_zone_device *, int, int); + int (*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 *, const struct thermal_trip *, enum thermal_trend *); + void (*hot)(struct thermal_zone_device *); + void (*critical)(struct thermal_zone_device *); }; -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]; +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 ethtool_link_ksettings { - struct ethtool_link_settings base; - struct { - unsigned long supported[4]; - unsigned long advertising[4]; - unsigned long lp_advertising[4]; - } link_modes; - u32 lanes; -}; +struct thermal_attr; -struct ethtool_fec_stat { - u64 total; - u64 lanes[8]; -}; +struct thermal_zone_params; -struct ethtool_fec_stats { - struct ethtool_fec_stat corrected_blocks; - struct ethtool_fec_stat uncorrectable_blocks; - struct ethtool_fec_stat corrected_bits; -}; +struct thermal_governor; -struct ethtool_fecparam { - __u32 cmd; - __u32 active_fec; - __u32 fec; - __u32 reserved; +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 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; + long: 32; }; -struct ethtool_module_eeprom { - u32 offset; - u32 length; - u8 page; - u8 bank; - u8 i2c_address; - u8 *data; +struct thermal_zone_params { + char governor_name[20]; + bool no_hwmon; + u32 sustainable_power; + s32 k_po; + s32 k_pu; + s32 k_i; + s32 k_d; + s32 integral_cutoff; + int slope; + int offset; }; -struct ethtool_eth_phy_stats { - enum ethtool_mac_stats_src src; - long: 32; - union { - struct { - u64 SymbolErrorDuringCarrier; - }; - struct { - u64 SymbolErrorDuringCarrier; - } stats; - }; +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 *, const struct thermal_trip *); + struct list_head governor_list; }; -struct ethtool_eth_mac_stats { - enum ethtool_mac_stats_src src; - long: 32; - 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 thermal_cooling_device_ops; -struct ethtool_eth_ctrl_stats { - enum ethtool_mac_stats_src src; +struct thermal_cooling_device { + int id; + char *type; + unsigned long max_state; long: 32; - union { - struct { - u64 MACControlFramesTransmitted; - u64 MACControlFramesReceived; - u64 UnsupportedOpcodesReceived; - }; - struct { - u64 MACControlFramesTransmitted; - u64 MACControlFramesReceived; - u64 UnsupportedOpcodesReceived; - } stats; - }; + 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 ethtool_rmon_stats { - enum ethtool_mac_stats_src src; - long: 32; - 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 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 ethtool_rmon_hist_range { - u16 low; - u16 high; +enum st_thermal_power_state { + POWER_OFF = 0, + POWER_ON = 1, }; -enum ethtool_module_power_mode_policy { - ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1, - ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2, +enum st_thermal_regfield_ids { + INT_THRESH_HI = 0, + TEMP_PWR = 0, + DCORRECT = 1, + OVERFLOW = 2, + DATA = 3, + INT_ENABLE = 4, + MAX_REGFIELDS = 5, }; -enum ethtool_module_power_mode { - ETHTOOL_MODULE_POWER_MODE_LOW = 1, - ETHTOOL_MODULE_POWER_MODE_HIGH = 2, -}; +struct st_thermal_sensor_ops; -struct ethtool_module_power_mode_params { - enum ethtool_module_power_mode_policy policy; - enum ethtool_module_power_mode mode; -}; +struct st_thermal_compat_data; -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 regmap_field; -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 st_thermal_sensor { + struct device *dev; + struct thermal_zone_device *thermal_dev; + const struct st_thermal_sensor_ops *ops; + const struct st_thermal_compat_data *cdata; + struct clk *clk; + struct regmap *regmap; + struct regmap_field *pwr; + struct regmap_field *dcorrect; + struct regmap_field *overflow; + struct regmap_field *temp_data; + struct regmap_field *int_thresh_hi; + struct regmap_field *int_enable; + int irq; + void *mmio_base; }; -struct ethtool_mm_cfg { - u32 verify_time; - bool verify_enabled; - bool tx_enabled; - bool pmac_enabled; - u32 tx_min_frag_size; +struct st_thermal_sensor_ops { + int (*power_ctrl)(struct st_thermal_sensor *, enum st_thermal_power_state); + int (*alloc_regfields)(struct st_thermal_sensor *); + int (*regmap_init)(struct st_thermal_sensor *); + int (*register_enable_irq)(struct st_thermal_sensor *); + int (*enable_irq)(struct st_thermal_sensor *); }; -struct ethtool_mm_stats { - u64 MACMergeFrameAssErrorCount; - u64 MACMergeFrameSmdErrorCount; - u64 MACMergeFrameAssOkCount; - u64 MACMergeFragCountRx; - u64 MACMergeFragCountTx; - u64 MACMergeHoldCount; -}; +struct reg_field; -struct mii_bus; +struct st_thermal_compat_data { + char *sys_compat; + const struct reg_field *reg_fields; + const struct st_thermal_sensor_ops *ops; + unsigned int calibration_val; + int temp_adjust_val; + int crit_temp; +}; -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 reg_field { + unsigned int reg; + unsigned int lsb; + unsigned int msb; + unsigned int id_size; + unsigned int id_offset; }; -struct phy_c45_device_ids { - u32 devices_in_package; - u32 mmds_present; - u32 device_ids[32]; +struct watchdog_info { + __u32 options; + __u32 firmware_version; + __u8 identity[32]; }; -enum phy_state { - PHY_DOWN = 0, - PHY_READY = 1, - PHY_HALTED = 2, - PHY_ERROR = 3, - PHY_UP = 4, - PHY_RUNNING = 5, - PHY_NOLINK = 6, - PHY_CABLETEST = 7, +struct watchdog_device; + +struct watchdog_ops { + struct module *owner; + int (*start)(struct watchdog_device *); + int (*stop)(struct watchdog_device *); + int (*ping)(struct watchdog_device *); + unsigned int (*status)(struct watchdog_device *); + int (*set_timeout)(struct watchdog_device *, unsigned int); + int (*set_pretimeout)(struct watchdog_device *, unsigned int); + unsigned int (*get_timeleft)(struct watchdog_device *); + int (*restart)(struct watchdog_device *, unsigned long, void *); + long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long); }; -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 pse_control; - -struct phy_driver; - -struct device_link; - -struct phy_package_shared; - -struct phylink; +struct watchdog_governor; -struct mii_timestamper; +struct watchdog_core_data; -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 wol_enabled: 1; - unsigned int autoneg: 1; - unsigned int link: 1; - unsigned int autoneg_complete: 1; - unsigned int interrupts: 1; - unsigned int irq_suspended: 1; - unsigned int irq_rerun: 1; - int rate_matching; - enum phy_state state; - u32 dev_flags; - phy_interface_t interface; - 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[4]; - unsigned long advertising[4]; - unsigned long lp_advertising[4]; - unsigned long adv_old[4]; - unsigned long supported_eee[4]; - unsigned long advertising_eee[4]; - bool eee_enabled; - unsigned long host_interfaces[1]; - u32 eee_broken_modes; - struct list_head leds; - int irq; - void *priv; - struct phy_package_shared *shared; - struct sk_buff *skb; - void *ehdr; - struct nlattr *nest; - struct delayed_work state_queue; - struct mutex lock; - bool sfp_bus_attached; - struct sfp_bus *sfp_bus; - struct phylink *phylink; - struct net_device *attached_dev; - struct mii_timestamper *mii_ts; - struct pse_control *psec; - u8 mdix; - u8 mdix_ctrl; - int pma_extable; - unsigned int link_down_events; - void (*phy_link_change)(struct phy_device *, bool); - void (*adjust_link)(struct net_device *); +struct watchdog_device { + int id; + struct device *parent; + const struct attribute_group **groups; + const struct watchdog_info *info; + const struct watchdog_ops *ops; + const struct watchdog_governor *gov; + unsigned int bootstatus; + unsigned int timeout; + unsigned int pretimeout; + unsigned int min_timeout; + unsigned int max_timeout; + unsigned int min_hw_heartbeat_ms; + unsigned int max_hw_heartbeat_ms; + struct notifier_block reboot_nb; + struct notifier_block restart_nb; + struct notifier_block pm_nb; + void *driver_data; + struct watchdog_core_data *wd_data; + unsigned long status; + struct list_head deferred; }; -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; - long: 32; +struct watchdog_governor { + const char name[20]; + void (*pretimeout)(struct watchdog_device *); }; -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; - long: 32; - 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]; +enum dw_wdt_rmod { + DW_WDT_RMOD_RESET = 1, + DW_WDT_RMOD_IRQ = 2, }; -struct phy_package_shared { - int addr; - refcount_t refcnt; - unsigned long flags; - size_t priv_size; - void *priv; +struct dw_wdt_timeout { + u32 top_val; + unsigned int sec; + unsigned int msec; }; -struct mdio_driver_common { - struct device_driver driver; - int flags; +struct dw_wdt { + void *regs; + struct clk *clk; + struct clk *pclk; + unsigned long rate; + enum dw_wdt_rmod rmod; + struct dw_wdt_timeout timeouts[16]; + struct watchdog_device wdd; + struct reset_control *rst; + u32 control; + u32 timeout; + struct dentry *dbgfs_dir; }; -enum led_brightness { - LED_OFF = 0, - LED_ON = 1, - LED_HALF = 127, - LED_FULL = 255, +struct cpuidle_exynos_data { + int (*cpu0_enter_aftr)(); + int (*cpu1_powerdown)(); + void (*pre_enter_aftr)(); + void (*post_enter_aftr)(); }; -struct phy_tdr_config; - -struct phy_plca_cfg; +struct sdhci_host; -struct phy_plca_status; +struct mmc_command; -struct phy_driver { - struct mdio_driver_common mdiodrv; - u32 phy_id; - char *name; - u32 phy_id_mask; - const unsigned long * const features; - u32 flags; - const void *driver_data; - int (*soft_reset)(struct phy_device *); - int (*config_init)(struct phy_device *); - int (*probe)(struct phy_device *); - int (*get_features)(struct phy_device *); - int (*get_rate_matching)(struct phy_device *, phy_interface_t); - int (*suspend)(struct phy_device *); - int (*resume)(struct phy_device *); - int (*config_aneg)(struct phy_device *); - int (*aneg_done)(struct phy_device *); - int (*read_status)(struct phy_device *); - int (*config_intr)(struct phy_device *); - irqreturn_t (*handle_interrupt)(struct phy_device *); - void (*remove)(struct phy_device *); - int (*match_phy_device)(struct phy_device *); - int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *); - void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *); - void (*link_change_notify)(struct phy_device *); - int (*read_mmd)(struct phy_device *, int, u16); - int (*write_mmd)(struct phy_device *, int, u16, u16); - int (*read_page)(struct phy_device *); - int (*write_page)(struct phy_device *, int); - int (*module_info)(struct phy_device *, struct ethtool_modinfo *); - int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *); - int (*cable_test_start)(struct phy_device *); - int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *); - int (*cable_test_get_status)(struct phy_device *, bool *); - int (*get_sset_count)(struct phy_device *); - void (*get_strings)(struct phy_device *, u8 *); - void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); - int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); - int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); - int (*set_loopback)(struct phy_device *, bool); - int (*get_sqi)(struct phy_device *); - int (*get_sqi_max)(struct phy_device *); - int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); - int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *); - int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); - int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness); - int (*led_blink_set)(struct phy_device *, u8, unsigned long *, unsigned long *); -}; +struct mmc_data; -struct phy_tdr_config { - u32 first; - u32 last; - u32 step; - s8 pair; -}; +struct mmc_request; -struct phy_plca_cfg { - int version; - int enabled; - int node_id; - int node_cnt; - int to_tmr; - int burst_cnt; - int burst_tmr; +struct sdhci_ops { + u32 (*read_l)(struct sdhci_host *, int); + u16 (*read_w)(struct sdhci_host *, int); + u8 (*read_b)(struct sdhci_host *, int); + void (*write_l)(struct sdhci_host *, u32, int); + void (*write_w)(struct sdhci_host *, u16, int); + void (*write_b)(struct sdhci_host *, u8, int); + void (*set_clock)(struct sdhci_host *, unsigned int); + void (*set_power)(struct sdhci_host *, unsigned char, unsigned short); + u32 (*irq)(struct sdhci_host *, u32); + int (*set_dma_mask)(struct sdhci_host *); + int (*enable_dma)(struct sdhci_host *); + unsigned int (*get_max_clock)(struct sdhci_host *); + unsigned int (*get_min_clock)(struct sdhci_host *); + unsigned int (*get_timeout_clock)(struct sdhci_host *); + unsigned int (*get_max_timeout_count)(struct sdhci_host *); + void (*set_timeout)(struct sdhci_host *, struct mmc_command *); + void (*set_bus_width)(struct sdhci_host *, int); + void (*platform_send_init_74_clocks)(struct sdhci_host *, u8); + unsigned int (*get_ro)(struct sdhci_host *); + void (*reset)(struct sdhci_host *, u8); + int (*platform_execute_tuning)(struct sdhci_host *, u32); + void (*set_uhs_signaling)(struct sdhci_host *, unsigned int); + void (*hw_reset)(struct sdhci_host *); + void (*adma_workaround)(struct sdhci_host *, u32); + void (*card_event)(struct sdhci_host *); + void (*voltage_switch)(struct sdhci_host *); + void (*adma_write_desc)(struct sdhci_host *, void **, dma_addr_t, int, unsigned int); + void (*copy_to_bounce_buffer)(struct sdhci_host *, struct mmc_data *, unsigned int); + void (*request_done)(struct sdhci_host *, struct mmc_request *); + void (*dump_vendor_regs)(struct sdhci_host *); }; -struct phy_plca_status { - bool pst; -}; +struct mmc_host; -enum device_link_state { - DL_STATE_NONE = -1, - DL_STATE_DORMANT = 0, - DL_STATE_AVAILABLE = 1, - DL_STATE_CONSUMER_PROBE = 2, - DL_STATE_ACTIVE = 3, - DL_STATE_SUPPLIER_UNBIND = 4, -}; +struct mmc_ios; -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; - long: 32; -}; +struct mmc_card; -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; +struct mmc_host_ops { + void (*post_req)(struct mmc_host *, struct mmc_request *, int); + void (*pre_req)(struct mmc_host *, struct mmc_request *); + void (*request)(struct mmc_host *, struct mmc_request *); + int (*request_atomic)(struct mmc_host *, struct mmc_request *); + void (*set_ios)(struct mmc_host *, struct mmc_ios *); + int (*get_ro)(struct mmc_host *); + int (*get_cd)(struct mmc_host *); + void (*enable_sdio_irq)(struct mmc_host *, int); + void (*ack_sdio_irq)(struct mmc_host *); + void (*init_card)(struct mmc_host *, struct mmc_card *); + int (*start_signal_voltage_switch)(struct mmc_host *, struct mmc_ios *); + int (*card_busy)(struct mmc_host *); + int (*execute_tuning)(struct mmc_host *, u32); + int (*prepare_hs400_tuning)(struct mmc_host *, struct mmc_ios *); + int (*execute_hs400_tuning)(struct mmc_host *, struct mmc_card *); + int (*prepare_sd_hs_tuning)(struct mmc_host *, struct mmc_card *); + int (*execute_sd_hs_tuning)(struct mmc_host *, struct mmc_card *); + int (*hs400_prepare_ddr)(struct mmc_host *); + void (*hs400_downgrade)(struct mmc_host *); + void (*hs400_complete)(struct mmc_host *); + void (*hs400_enhanced_strobe)(struct mmc_host *, struct mmc_ios *); + int (*select_drive_strength)(struct mmc_card *, unsigned int, int, int, int *); + void (*card_hw_reset)(struct mmc_host *); + void (*card_event)(struct mmc_host *); + int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); + int (*init_sd_express)(struct mmc_host *, struct mmc_ios *); }; -typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); +struct led_pattern; -struct dev_ext_attribute { - struct device_attribute attr; - void *var; -}; +struct led_trigger; -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 led_hw_trigger_type; -struct mdio_driver { - struct mdio_driver_common mdiodrv; - int (*probe)(struct mdio_device *); - void (*remove)(struct mdio_device *); - void (*shutdown)(struct mdio_device *); +struct led_classdev { + const char *name; + unsigned int brightness; + unsigned int max_brightness; + unsigned int color; + 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; + unsigned long delayed_delay_on; + unsigned long delayed_delay_off; + 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; + const char *hw_control_trigger; + int (*hw_control_is_supported)(struct led_classdev *, unsigned long); + int (*hw_control_set)(struct led_classdev *, unsigned long); + int (*hw_control_get)(struct led_classdev *, unsigned long *); + struct device * (*hw_control_get_device)(struct led_classdev *); + struct mutex led_access; }; -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 sg_page_iter { + struct scatterlist *sg; + unsigned int sg_pgoffset; + unsigned int __nents; + int __pg_advance; }; -struct ring_buffer_event { - u32 type_len: 5; - u32 time_delta: 27; - u32 array[0]; +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; }; -struct mdio_board_info { - const char *bus_id; - char modalias[32]; - int mdio_addr; - const void *platform_data; +struct sdhci_host { + const char *hw_name; + unsigned int quirks; + unsigned int quirks2; + int irq; + void *ioaddr; + phys_addr_t mapbase; + char *bounce_buffer; + dma_addr_t bounce_addr; + unsigned int bounce_buffer_size; + const struct sdhci_ops *ops; + struct mmc_host *mmc; + struct mmc_host_ops mmc_host_ops; + long: 32; + u64 dma_mask; + struct led_classdev led; + char led_name[32]; + spinlock_t lock; + int flags; + unsigned int version; + unsigned int max_clk; + unsigned int timeout_clk; + u8 max_timeout_count; + unsigned int clk_mul; + unsigned int clock; + u8 pwr; + u8 drv_type; + bool reinit_uhs; + bool runtime_suspended; + bool bus_on; + bool preset_enabled; + bool pending_reset; + bool irq_wake_enabled; + bool v4_mode; + bool use_external_dma; + bool always_defer_done; + struct mmc_request *mrqs_done[2]; + struct mmc_command *cmd; + struct mmc_command *data_cmd; + struct mmc_command *deferred_cmd; + struct mmc_data *data; + unsigned int data_early: 1; + struct sg_mapping_iter sg_miter; + unsigned int blocks; + int sg_count; + int max_adma; + void *adma_table; + void *align_buffer; + size_t adma_table_sz; + size_t align_buffer_sz; + dma_addr_t adma_addr; + dma_addr_t align_addr; + unsigned int desc_sz; + unsigned int alloc_desc_sz; + struct workqueue_struct *complete_wq; + struct work_struct complete_work; + struct timer_list timer; + struct timer_list data_timer; + struct dma_chan *rx_chan; + struct dma_chan *tx_chan; + u32 caps; + u32 caps1; + bool read_caps; + bool sdhci_core_to_disable_vqmmc; + unsigned int ocr_avail_sdio; + unsigned int ocr_avail_sd; + unsigned int ocr_avail_mmc; + u32 ocr_mask; + unsigned int timing; + u32 thread_isr; + u32 ier; + bool cqe_on; + u32 cqe_ier; + u32 cqe_err_ier; + wait_queue_head_t buf_ready_int; + unsigned int tuning_done; + unsigned int tuning_count; + unsigned int tuning_mode; + unsigned int tuning_err; + int tuning_delay; + int tuning_loop_count; + u32 sdma_boundary; + u32 adma_table_cnt; + long: 32; + u64 data_timeout; + long: 32; + long: 32; + long: 32; + long: 32; + unsigned long private[0]; }; -struct trace_event_data_offsets_mdio_access {}; +typedef unsigned int mmc_pm_flag_t; -struct mdio_bus_stat_attr { - int addr; - unsigned int field_offset; +struct mmc_ios { + unsigned int clock; + unsigned short vdd; + unsigned int power_delay_ms; + unsigned char bus_mode; + unsigned char chip_select; + unsigned char power_mode; + unsigned char bus_width; + unsigned char timing; + unsigned char signal_voltage; + unsigned char drv_type; + bool enhanced_strobe; }; -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, +struct mmc_ctx { + struct task_struct *task; }; -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, +struct mmc_slot { + int cd_irq; + bool cd_wake_enabled; + void *handler_priv; }; -enum e1000_1000t_rx_status { - e1000_1000t_rx_status_not_ok = 0, - e1000_1000t_rx_status_ok = 1, - e1000_1000t_rx_status_undefined = 255, +struct mmc_supply { + struct regulator *vmmc; + struct regulator *vqmmc; }; -enum e1000_ms_type { - e1000_ms_hw_default = 0, - e1000_ms_force_master = 1, - e1000_ms_force_slave = 2, - e1000_ms_auto = 3, -}; +struct mmc_pwrseq; -enum e1000_rev_polarity { - e1000_rev_polarity_normal = 0, - e1000_rev_polarity_reversed = 1, - e1000_rev_polarity_undefined = 255, +struct mmc_bus_ops; + +struct mmc_cqe_ops; + +struct mmc_host { + struct device *parent; + long: 32; + struct device class_dev; + int index; + const struct mmc_host_ops *ops; + struct mmc_pwrseq *pwrseq; + unsigned int f_min; + unsigned int f_max; + unsigned int f_init; + u32 ocr_avail; + u32 ocr_avail_sdio; + u32 ocr_avail_sd; + u32 ocr_avail_mmc; + struct wakeup_source *ws; + u32 max_current_330; + u32 max_current_300; + u32 max_current_180; + u32 caps; + u32 caps2; + int fixed_drv_type; + mmc_pm_flag_t pm_caps; + unsigned int max_seg_size; + unsigned short max_segs; + unsigned short unused; + unsigned int max_req_size; + unsigned int max_blk_size; + unsigned int max_blk_count; + unsigned int max_busy_timeout; + spinlock_t lock; + struct mmc_ios ios; + unsigned int use_spi_crc: 1; + unsigned int claimed: 1; + unsigned int doing_init_tune: 1; + unsigned int can_retune: 1; + unsigned int doing_retune: 1; + unsigned int retune_now: 1; + unsigned int retune_paused: 1; + unsigned int retune_crc_disable: 1; + unsigned int can_dma_map_merge: 1; + unsigned int vqmmc_enabled: 1; + int rescan_disable; + int rescan_entered; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct timer_list retune_timer; + bool trigger_card_event; + struct mmc_card *card; + wait_queue_head_t wq; + struct mmc_ctx *claimer; + int claim_cnt; + struct mmc_ctx default_ctx; + struct delayed_work detect; + int detect_change; + struct mmc_slot slot; + const struct mmc_bus_ops *bus_ops; + unsigned int sdio_irqs; + struct task_struct *sdio_irq_thread; + struct work_struct sdio_irq_work; + bool sdio_irq_pending; + atomic_t sdio_irq_thread_abort; + mmc_pm_flag_t pm_flags; + struct led_trigger *led; + bool regulator_enabled; + struct mmc_supply supply; + struct dentry *debugfs_root; + struct mmc_request *ongoing_mrq; + unsigned int actual_clock; + unsigned int slotno; + int dsr_req; + u32 dsr; + const struct mmc_cqe_ops *cqe_ops; + void *cqe_private; + int cqe_qdepth; + bool cqe_enabled; + bool cqe_on; + bool hsq_enabled; + int hsq_depth; + u32 err_stats[15]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + unsigned long private[0]; }; -enum e1000_smart_speed { - e1000_smart_speed_default = 0, - e1000_smart_speed_on = 1, - e1000_smart_speed_off = 2, +struct mmc_request { + struct mmc_command *sbc; + struct mmc_command *cmd; + struct mmc_data *data; + struct mmc_command *stop; + struct completion completion; + struct completion cmd_completion; + void (*done)(struct mmc_request *); + void (*recovery_notifier)(struct mmc_request *); + struct mmc_host *host; + bool cap_cmd_during_tfr; + int tag; }; -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, +struct mmc_command { + u32 opcode; + u32 arg; + u32 resp[4]; + unsigned int flags; + unsigned int retries; + int error; + unsigned int busy_timeout; + struct mmc_data *data; + struct mmc_request *mrq; }; -struct ptp_extts_request { - unsigned int index; +struct mmc_data { + unsigned int timeout_ns; + unsigned int timeout_clks; + unsigned int blksz; + unsigned int blocks; + unsigned int blk_addr; + int error; unsigned int flags; - unsigned int rsv[2]; + unsigned int bytes_xfered; + struct mmc_command *stop; + struct mmc_request *mrq; + unsigned int sg_len; + int sg_count; + struct scatterlist *sg; + s32 host_cookie; }; -struct ptp_clock_time { - __s64 sec; - __u32 nsec; - __u32 reserved; +struct mmc_cid { + unsigned int manfid; + char prod_name[8]; + unsigned char prv; + unsigned int serial; + unsigned short oemid; + unsigned short year; + unsigned char hwrev; + unsigned char fwrev; + unsigned char month; }; -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 mmc_csd { + unsigned char structure; + unsigned char mmca_vsn; + unsigned short cmdclass; + unsigned short taac_clks; + unsigned int taac_ns; + unsigned int c_size; + unsigned int r2w_factor; + unsigned int max_dtr; + unsigned int erase_size; + unsigned int read_blkbits; + unsigned int write_blkbits; + unsigned int capacity; + unsigned int read_partial: 1; + unsigned int read_misalign: 1; + unsigned int write_partial: 1; + unsigned int write_misalign: 1; + unsigned int dsr_imp: 1; }; -struct ptp_clock_request { - enum { - PTP_CLK_REQ_EXTTS = 0, - PTP_CLK_REQ_PEROUT = 1, - PTP_CLK_REQ_PPS = 2, - } type; +struct mmc_ext_csd { + u8 rev; + u8 erase_group_def; + u8 sec_feature_support; + u8 rel_sectors; + u8 rel_param; + bool enhanced_rpmb_supported; + u8 part_config; + u8 cache_ctrl; + u8 rst_n_function; + u8 max_packed_writes; + u8 max_packed_reads; + u8 packed_event_en; + unsigned int part_time; + unsigned int sa_timeout; + unsigned int generic_cmd6_time; + unsigned int power_off_longtime; + u8 power_off_notification; + unsigned int hs_max_dtr; + unsigned int hs200_max_dtr; + unsigned int sectors; + unsigned int hc_erase_size; + unsigned int hc_erase_timeout; + unsigned int sec_trim_mult; + unsigned int sec_erase_mult; + unsigned int trim_timeout; + bool partition_setting_completed; long: 32; - union { - struct ptp_extts_request extts; - struct ptp_perout_request perout; - }; + unsigned long long enhanced_area_offset; + unsigned int enhanced_area_size; + unsigned int cache_size; + bool hpi_en; + bool hpi; + unsigned int hpi_cmd; + bool bkops; + bool man_bkops_en; + bool auto_bkops_en; + unsigned int data_sector_size; + unsigned int data_tag_unit_size; + unsigned int boot_ro_lock; + bool boot_ro_lockable; + bool ffu_capable; + bool cmdq_en; + bool cmdq_support; + unsigned int cmdq_depth; + u8 fwrev[8]; + u8 raw_exception_status; + u8 raw_partition_support; + u8 raw_rpmb_size_mult; + u8 raw_erased_mem_count; + u8 strobe_support; + u8 raw_ext_csd_structure; + u8 raw_card_type; + u8 raw_driver_strength; + u8 out_of_int_time; + u8 raw_pwr_cl_52_195; + u8 raw_pwr_cl_26_195; + u8 raw_pwr_cl_52_360; + u8 raw_pwr_cl_26_360; + u8 raw_s_a_timeout; + u8 raw_hc_erase_gap_size; + u8 raw_erase_timeout_mult; + u8 raw_hc_erase_grp_size; + u8 raw_boot_mult; + u8 raw_sec_trim_mult; + u8 raw_sec_erase_mult; + u8 raw_sec_feature_support; + u8 raw_trim_mult; + u8 raw_pwr_cl_200_195; + u8 raw_pwr_cl_200_360; + u8 raw_pwr_cl_ddr_52_195; + u8 raw_pwr_cl_ddr_52_360; + u8 raw_pwr_cl_ddr_200_360; + u8 raw_bkops_status; + u8 raw_sectors[4]; + u8 pre_eol_info; + u8 device_life_time_est_typ_a; + u8 device_life_time_est_typ_b; + unsigned int feature_support; }; -enum ptp_pin_function { - PTP_PF_NONE = 0, - PTP_PF_EXTTS = 1, - PTP_PF_PEROUT = 2, - PTP_PF_PHYSYNC = 3, +struct sd_scr { + unsigned char sda_vsn; + unsigned char sda_spec3; + unsigned char sda_spec4; + unsigned char sda_specx; + unsigned char bus_widths; + unsigned char cmds; }; -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, +struct sd_ssr { + unsigned int au; + unsigned int erase_timeout; + unsigned int erase_offset; }; -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, +struct sd_switch_caps { + unsigned int hs_max_dtr; + unsigned int uhs_max_dtr; + unsigned int sd3_bus_mode; + unsigned int sd3_drv_type; + unsigned int sd3_curr_limit; }; -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, +struct sd_ext_reg { + u8 fno; + u8 page; + u16 offset; + u8 rev; + u8 feature_enabled; + u8 feature_support; }; -enum e1000_nvm_override { - e1000_nvm_override_none = 0, - e1000_nvm_override_spi_small = 1, - e1000_nvm_override_spi_large = 2, +struct sdio_cccr { + unsigned int sdio_vsn; + unsigned int sd_vsn; + unsigned int multi_block: 1; + unsigned int low_speed: 1; + unsigned int wide_bus: 1; + unsigned int high_power: 1; + unsigned int high_speed: 1; + unsigned int disable_cd: 1; + unsigned int enable_async_irq: 1; }; -enum e1000_bus_width { - e1000_bus_width_unknown = 0, - e1000_bus_width_pcie_x1 = 1, - e1000_bus_width_pcie_x2 = 2, - e1000_bus_width_pcie_x4 = 4, - e1000_bus_width_pcie_x8 = 8, - e1000_bus_width_32 = 9, - e1000_bus_width_64 = 10, - e1000_bus_width_reserved = 11, +struct sdio_cis { + unsigned short vendor; + unsigned short device; + unsigned short blksize; + unsigned int max_dtr; }; -enum e1000_ulp_state { - e1000_ulp_state_unknown = 0, - e1000_ulp_state_off = 1, - e1000_ulp_state_on = 2, +struct mmc_part { + u64 size; + unsigned int part_cfg; + char name[20]; + bool force_ro; + unsigned int area_type; }; -enum ethtool_link_mode_bit_indices { - ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0, - ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1, - ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2, - ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3, - ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4, - ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5, - ETHTOOL_LINK_MODE_Autoneg_BIT = 6, - ETHTOOL_LINK_MODE_TP_BIT = 7, - ETHTOOL_LINK_MODE_AUI_BIT = 8, - ETHTOOL_LINK_MODE_MII_BIT = 9, - ETHTOOL_LINK_MODE_FIBRE_BIT = 10, - ETHTOOL_LINK_MODE_BNC_BIT = 11, - ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12, - ETHTOOL_LINK_MODE_Pause_BIT = 13, - ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14, - ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15, - ETHTOOL_LINK_MODE_Backplane_BIT = 16, - ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17, - ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18, - ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19, - ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20, - ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21, - ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22, - ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23, - ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24, - ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25, - ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26, - ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27, - ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28, - ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29, - ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30, - ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31, - ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32, - ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33, - ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34, - ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35, - ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36, - ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37, - ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38, - ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39, - ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40, - ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41, - ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42, - ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43, - ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44, - ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45, - ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46, - ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, - ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, - ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49, - ETHTOOL_LINK_MODE_FEC_RS_BIT = 50, - ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51, - ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52, - ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53, - ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54, - ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55, - ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56, - ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57, - ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58, - ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59, - ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60, - ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61, - ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62, - ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63, - ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64, - ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65, - ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, - ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, - ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, - ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69, - ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70, - ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, - ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, - ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, - ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74, - ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75, - ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76, - ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77, - ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78, - ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79, - ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80, - ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81, - ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82, - ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83, - ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84, - ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85, - ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86, - ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87, - ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88, - ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89, - ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, - ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, - ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92, - ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93, - ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94, - ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95, - ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96, - ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97, - ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98, - ETHTOOL_LINK_MODE_10baseT1S_Full_BIT = 99, - ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100, - ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101, - __ETHTOOL_LINK_MODE_MASK_NBITS = 102, +struct sdio_func; + +struct sdio_func_tuple; + +struct mmc_card { + struct mmc_host *host; + long: 32; + struct device dev; + u32 ocr; + unsigned int rca; + unsigned int type; + unsigned int state; + unsigned int quirks; + unsigned int quirk_max_rate; + bool written_flag; + bool reenable_cmdq; + unsigned int erase_size; + unsigned int erase_shift; + unsigned int pref_erase; + unsigned int eg_boundary; + unsigned int erase_arg; + u8 erased_byte; + u32 raw_cid[4]; + u32 raw_csd[4]; + u32 raw_scr[2]; + u32 raw_ssr[16]; + struct mmc_cid cid; + struct mmc_csd csd; + long: 32; + struct mmc_ext_csd ext_csd; + struct sd_scr scr; + struct sd_ssr ssr; + struct sd_switch_caps sw_caps; + struct sd_ext_reg ext_power; + struct sd_ext_reg ext_perf; + unsigned int sdio_funcs; + atomic_t sdio_funcs_probed; + struct sdio_cccr cccr; + struct sdio_cis cis; + struct sdio_func *sdio_func[7]; + struct sdio_func *sdio_single_irq; + u8 major_rev; + u8 minor_rev; + unsigned int num_info; + const char **info; + struct sdio_func_tuple *tuples; + unsigned int sd_bus_speed; + unsigned int mmc_avail_type; + unsigned int drive_strength; + struct dentry *debugfs_root; + struct mmc_part part[7]; + unsigned int nr_parts; + struct workqueue_struct *complete_wq; }; -struct e1000_dev_spec_82571 { - bool laa_is_present; - u32 smb_counter; +struct mmc_bus_ops { + void (*remove)(struct mmc_host *); + void (*detect)(struct mmc_host *); + int (*pre_suspend)(struct mmc_host *); + int (*suspend)(struct mmc_host *); + int (*resume)(struct mmc_host *); + int (*runtime_suspend)(struct mmc_host *); + int (*runtime_resume)(struct mmc_host *); + int (*alive)(struct mmc_host *); + int (*shutdown)(struct mmc_host *); + int (*hw_reset)(struct mmc_host *); + int (*sw_reset)(struct mmc_host *); + bool (*cache_enabled)(struct mmc_host *); + int (*flush_cache)(struct mmc_host *); }; -struct e1000_dev_spec_80003es2lan { - bool mdic_wa_enable; +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 e1000_shadow_ram { - u16 value; - bool modified; +struct led_pattern { + u32 delta_t; + int brightness; }; -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 led_hw_trigger_type { + int dummy; }; -struct e1000_hw; +struct mmc_cqe_ops { + int (*cqe_enable)(struct mmc_host *, struct mmc_card *); + void (*cqe_disable)(struct mmc_host *); + int (*cqe_request)(struct mmc_host *, struct mmc_request *); + void (*cqe_post_req)(struct mmc_host *, struct mmc_request *); + void (*cqe_off)(struct mmc_host *); + int (*cqe_wait_for_idle)(struct mmc_host *); + bool (*cqe_timeout)(struct mmc_host *, struct mmc_request *, bool *); + void (*cqe_recovery_start)(struct mmc_host *); + void (*cqe_recovery_finish)(struct mmc_host *); +}; -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 spear_sdhci { + struct clk *clk; }; -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 sunxi_mmc_clk_delay; + +struct sunxi_mmc_cfg { + u32 idma_des_size_bits; + u32 idma_des_shift; + const struct sunxi_mmc_clk_delay *clk_delays; + bool can_calibrate; + bool mask_data0; + bool needs_new_timings; + bool ccu_has_timings_switch; }; -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 sunxi_mmc_clk_delay { + u32 output; + u32 sample; }; -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 sunxi_idma_des { + __le32 config; + __le32 buf_size; + __le32 buf_addr_ptr1; + __le32 buf_addr_ptr2; }; -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 sunxi_mmc_host { + struct device *dev; + struct mmc_host *mmc; + struct reset_control *reset; + const struct sunxi_mmc_cfg *cfg; + void *reg_base; + struct clk *clk_ahb; + struct clk *clk_mmc; + struct clk *clk_sample; + struct clk *clk_output; + spinlock_t lock; + int irq; + u32 int_sum; + u32 sdio_imask; + dma_addr_t sg_dma; + void *sg_cpu; + bool wait_dma; + struct mmc_request *mrq; + struct mmc_request *manual_stop_mrq; + int ferror; + bool vqmmc_enabled; + bool use_new_timings; }; -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 *); +enum ns2_led_modes { + NS_V2_LED_OFF = 0, + NS_V2_LED_ON = 1, + NS_V2_LED_SATA = 2, }; -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 ns2_led_modval; + +struct ns2_led { + struct led_classdev cdev; + struct gpio_desc *cmd; + struct gpio_desc *slow; + bool can_sleep; + unsigned char sata; + rwlock_t rw_lock; + int num_modes; + struct ns2_led_modval *modval; }; -struct e1000_bus_info { - enum e1000_bus_width width; - u16 func; +struct ns2_led_modval { + u32 mode; + u32 cmd_level; + u32 slow_level; }; -struct e1000_host_mng_dhcp_cookie { - u32 signature; - u8 status; - u8 reserved0; - u16 vlan_id; - u32 reserved1; - u16 reserved2; - u8 reserved3; - u8 checksum; +struct led_init_data { + struct fwnode_handle *fwnode; + const char *default_label; + const char *devicename; + bool devname_mandatory; }; -struct e1000_adapter; +struct gpio_desc { + struct gpio_device *gdev; + unsigned long flags; + const char *label; + const char *name; + struct device_node *hog; + unsigned int debounce_period_us; +}; -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 dmi_memdev_info { + const char *device; + const char *bank; + u64 size; + u16 handle; + u8 type; + long: 32; }; -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; +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 e1000_phy_stats { - u32 idle_errors; - u32 receive_errors; +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 e1000_phy_regs { - u16 bmcr; - u16 bmsr; - u16 advertise; - u16 lpa; - u16 expansion; - u16 ctrl1000; - u16 stat1000; - u16 estatus; +enum { + MEMREMAP_WB = 1, + MEMREMAP_WT = 2, + MEMREMAP_WC = 4, + MEMREMAP_ENC = 8, + MEMREMAP_DEC = 16, }; -struct e1000_buffer; +enum dmi_entry_type { + DMI_ENTRY_BIOS = 0, + DMI_ENTRY_SYSTEM = 1, + DMI_ENTRY_BASEBOARD = 2, + DMI_ENTRY_CHASSIS = 3, + DMI_ENTRY_PROCESSOR = 4, + DMI_ENTRY_MEM_CONTROLLER = 5, + DMI_ENTRY_MEM_MODULE = 6, + DMI_ENTRY_CACHE = 7, + DMI_ENTRY_PORT_CONNECTOR = 8, + DMI_ENTRY_SYSTEM_SLOT = 9, + DMI_ENTRY_ONBOARD_DEVICE = 10, + DMI_ENTRY_OEMSTRINGS = 11, + DMI_ENTRY_SYSCONF = 12, + DMI_ENTRY_BIOS_LANG = 13, + DMI_ENTRY_GROUP_ASSOC = 14, + DMI_ENTRY_SYSTEM_EVENT_LOG = 15, + DMI_ENTRY_PHYS_MEM_ARRAY = 16, + DMI_ENTRY_MEM_DEVICE = 17, + DMI_ENTRY_32_MEM_ERROR = 18, + DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19, + DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20, + DMI_ENTRY_BUILTIN_POINTING_DEV = 21, + DMI_ENTRY_PORTABLE_BATTERY = 22, + DMI_ENTRY_SYSTEM_RESET = 23, + DMI_ENTRY_HW_SECURITY = 24, + DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25, + DMI_ENTRY_VOLTAGE_PROBE = 26, + DMI_ENTRY_COOLING_DEV = 27, + DMI_ENTRY_TEMP_PROBE = 28, + DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29, + DMI_ENTRY_OOB_REMOTE_ACCESS = 30, + DMI_ENTRY_BIS_ENTRY = 31, + DMI_ENTRY_SYSTEM_BOOT = 32, + DMI_ENTRY_MGMT_DEV = 33, + DMI_ENTRY_MGMT_DEV_COMPONENT = 34, + DMI_ENTRY_MGMT_DEV_THRES = 35, + DMI_ENTRY_MEM_CHANNEL = 36, + DMI_ENTRY_IPMI_DEV = 37, + DMI_ENTRY_SYS_POWER_SUPPLY = 38, + DMI_ENTRY_ADDITIONAL = 39, + DMI_ENTRY_ONBOARD_DEV_EXT = 40, + DMI_ENTRY_MGMT_CONTROLLER_HOST = 41, + DMI_ENTRY_INACTIVE = 126, + DMI_ENTRY_END_OF_TABLE = 127, +}; -struct 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 dmi_device { + struct list_head list; + int type; + const char *name; + void *device_data; }; -struct hwtstamp_config { - int flags; - int tx_type; - int rx_filter; +struct dmi_header { + u8 type; + u8 length; + u16 handle; }; -struct cyclecounter { - u64 (*read)(const struct cyclecounter *); - long: 32; - u64 mask; - u32 mult; - u32 shift; +struct dmi_strmatch { + unsigned char slot: 7; + unsigned char exact_match: 1; + char substr[79]; }; -struct timecounter { - const struct cyclecounter *cc; - long: 32; - u64 cycle_last; - u64 nsec; - u64 mask; - u64 frac; +struct dmi_system_id { + int (*callback)(const struct dmi_system_id *); + const char *ident; + struct dmi_strmatch matches[4]; + void *driver_data; }; -struct ptp_pin_desc; +struct dmi_dev_onboard { + struct dmi_device dev; + int instance; + int segment; + int bus; + int devfn; +}; -struct system_device_crosststamp; +struct scmi_protocol_handle; -struct ptp_clock_info { +typedef int (*scmi_prot_init_ph_fn_t)(const struct scmi_protocol_handle *); + +struct scmi_protocol_events; + +struct scmi_protocol { + const u8 id; struct module *owner; - char name[32]; - s32 max_adj; - int n_alarm; - int n_ext_ts; - int n_per_out; - int n_pins; - int pps; - struct ptp_pin_desc *pin_config; - int (*adjfine)(struct ptp_clock_info *, long); - int (*adjphase)(struct ptp_clock_info *, s32); - s32 (*getmaxphase)(struct ptp_clock_info *); - int (*adjtime)(struct ptp_clock_info *, s64); - int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); - int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); - int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); - int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); - int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *); - int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); - int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *); - int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); - int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); - long (*do_aux_work)(struct ptp_clock_info *); + const scmi_prot_init_ph_fn_t instance_init; + const scmi_prot_init_ph_fn_t instance_deinit; + const void *ops; + const struct scmi_protocol_events *events; }; -struct pm_qos_request { - struct plist_node node; - struct pm_qos_constraints *qos; +struct scmi_xfer_ops; + +struct scmi_proto_helpers_ops; + +struct scmi_protocol_handle { + struct device *dev; + const struct scmi_xfer_ops *xops; + const struct scmi_proto_helpers_ops *hops; + int (*set_priv)(const struct scmi_protocol_handle *, void *); + void * (*get_priv)(const struct scmi_protocol_handle *); }; -struct e1000_info; +struct scmi_xfer; -struct msix_entry; +struct scmi_xfer_ops { + int (*version_get)(const struct scmi_protocol_handle *, u32 *); + int (*xfer_get_init)(const struct scmi_protocol_handle *, u8, size_t, size_t, struct scmi_xfer **); + void (*reset_rx_to_maxsz)(const struct scmi_protocol_handle *, struct scmi_xfer *); + int (*do_xfer)(const struct scmi_protocol_handle *, struct scmi_xfer *); + int (*do_xfer_with_response)(const struct scmi_protocol_handle *, struct scmi_xfer *); + void (*xfer_put)(const struct scmi_protocol_handle *, struct scmi_xfer *); +}; -struct ptp_clock; +struct scmi_msg_hdr { + u8 id; + u8 protocol_id; + u8 type; + u16 seq; + u32 status; + bool poll_completion; +}; -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[128]; - 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; - 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; - long: 32; - u64 tpt_old; - u64 colc_old; - u32 gotc; - long: 32; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - 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; - long: 32; - u64 hw_csum_err; - u64 hw_csum_good; - u64 rx_hdr_split; - u32 gorc; - long: 32; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct scmi_msg { + void *buf; + size_t len; }; -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 scmi_xfer { + int transfer_id; + struct scmi_msg_hdr hdr; + struct scmi_msg tx; + struct scmi_msg rx; + struct completion done; + struct completion *async_done; + bool pending; + struct hlist_node node; + refcount_t users; + atomic_t busy; + int state; + int flags; + spinlock_t lock; + void *priv; }; -struct e1000_ps_page; +struct scmi_iterator_ops; -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 scmi_fc_db_info; + +struct scmi_proto_helpers_ops { + int (*extended_name_get)(const struct scmi_protocol_handle *, u8, u32, char *, size_t); + void * (*iter_response_init)(const struct scmi_protocol_handle *, struct scmi_iterator_ops *, unsigned int, u8, size_t, void *); + int (*iter_response_run)(void *); + void (*fastchannel_init)(const struct scmi_protocol_handle *, u8, u32, u32, u32, void **, struct scmi_fc_db_info **); + void (*fastchannel_db_ring)(struct scmi_fc_db_info *); }; -struct e1000_ps_page { - struct page *page; - long: 32; - u64 dma; +struct scmi_iterator_state; + +struct scmi_iterator_ops { + void (*prepare_message)(void *, unsigned int, const void *); + int (*update_state)(struct scmi_iterator_state *, const void *, void *); + int (*process_response)(const struct scmi_protocol_handle *, const void *, struct scmi_iterator_state *, void *); }; -struct msix_entry { - u32 vector; - u16 entry; +struct scmi_iterator_state { + unsigned int desc_index; + unsigned int num_returned; + unsigned int num_remaining; + unsigned int max_resources; + unsigned int loop_idx; + size_t rx_len; + void *priv; }; -struct ptp_pin_desc { - char name[64]; - unsigned int index; - unsigned int func; - unsigned int chan; - unsigned int rsv[5]; +struct scmi_fc_db_info { + int width; + long: 32; + u64 set; + u64 mask; + void *addr; + long: 32; }; -struct ptp_system_timestamp { - struct timespec64 pre_ts; - struct timespec64 post_ts; +struct scmi_event_ops; + +struct scmi_event; + +struct scmi_protocol_events { + size_t queue_sz; + const struct scmi_event_ops *ops; + const struct scmi_event *evts; + unsigned int num_events; + unsigned int num_sources; }; -struct system_device_crosststamp { - ktime_t device; - ktime_t sys_realtime; - ktime_t sys_monoraw; +struct scmi_event_ops { + int (*get_num_sources)(const struct scmi_protocol_handle *); + int (*set_notify_enabled)(const struct scmi_protocol_handle *, u8, u32, bool); + void * (*fill_custom_report)(const struct scmi_protocol_handle *, u8, ktime_t, const void *, size_t, void *, u32 *); }; -enum pkt_hash_types { - PKT_HASH_TYPE_NONE = 0, - PKT_HASH_TYPE_L2 = 1, - PKT_HASH_TYPE_L3 = 2, - PKT_HASH_TYPE_L4 = 3, +struct scmi_event { + u8 id; + size_t max_payld_sz; + size_t max_report_sz; }; -struct dma_desc; +enum scmi_common_cmd { + PROTOCOL_VERSION = 0, + PROTOCOL_ATTRIBUTES = 1, + PROTOCOL_MESSAGE_ATTRIBUTES = 2, +}; -struct stmmac_extra_stats; +enum scmi_base_protocol_cmd { + BASE_DISCOVER_VENDOR = 3, + BASE_DISCOVER_SUB_VENDOR = 4, + BASE_DISCOVER_IMPLEMENT_VERSION = 5, + BASE_DISCOVER_LIST_PROTOCOLS = 6, + BASE_DISCOVER_AGENT = 7, + BASE_NOTIFY_ERRORS = 8, + BASE_SET_DEVICE_PERMISSIONS = 9, + BASE_SET_PROTOCOL_PERMISSIONS = 10, + BASE_RESET_AGENT_CONFIGURATION = 11, +}; -struct dma_extended_desc; +enum scmi_notification_events { + SCMI_EVENT_POWER_STATE_CHANGED = 0, + SCMI_EVENT_CLOCK_RATE_CHANGED = 0, + SCMI_EVENT_CLOCK_RATE_CHANGE_REQUESTED = 1, + SCMI_EVENT_PERFORMANCE_LIMITS_CHANGED = 0, + SCMI_EVENT_PERFORMANCE_LEVEL_CHANGED = 1, + SCMI_EVENT_SENSOR_TRIP_POINT_EVENT = 0, + SCMI_EVENT_SENSOR_UPDATE = 1, + SCMI_EVENT_RESET_ISSUED = 0, + SCMI_EVENT_BASE_ERROR_EVENT = 0, + SCMI_EVENT_SYSTEM_POWER_STATE_NOTIFIER = 0, + SCMI_EVENT_POWERCAP_CAP_CHANGED = 0, + SCMI_EVENT_POWERCAP_MEASUREMENTS_CHANGED = 1, +}; -struct dma_edesc; +struct scmi_revision_info { + u16 major_ver; + u16 minor_ver; + u8 num_protocols; + u8 num_agents; + u32 impl_ver; + char vendor_id[16]; + char sub_vendor_id[16]; +}; -struct stmmac_desc_ops { - void (*init_rx_desc)(struct dma_desc *, int, int, int, int); - void (*init_tx_desc)(struct dma_desc *, int, int); - void (*prepare_tx_desc)(struct dma_desc *, int, int, bool, int, bool, bool, unsigned int); - void (*prepare_tso_tx_desc)(struct dma_desc *, int, int, int, bool, bool, unsigned int, unsigned int); - void (*set_tx_owner)(struct dma_desc *); - int (*get_tx_owner)(struct dma_desc *); - void (*release_tx_desc)(struct dma_desc *, int); - void (*set_tx_ic)(struct dma_desc *); - int (*get_tx_ls)(struct dma_desc *); - int (*tx_status)(struct net_device_stats *, struct stmmac_extra_stats *, struct dma_desc *, void *); - int (*get_tx_len)(struct dma_desc *); - void (*set_rx_owner)(struct dma_desc *, int); - int (*get_rx_frame_len)(struct dma_desc *, int); - int (*rx_status)(struct net_device_stats *, struct stmmac_extra_stats *, struct dma_desc *); - void (*rx_extended_status)(struct net_device_stats *, struct stmmac_extra_stats *, struct dma_extended_desc *); - void (*enable_tx_timestamp)(struct dma_desc *); - int (*get_tx_timestamp_status)(struct dma_desc *); - void (*get_timestamp)(void *, u32, u64 *); - int (*get_rx_timestamp_status)(void *, void *, u32); - void (*display_ring)(void *, unsigned int, bool, dma_addr_t, unsigned int); - void (*set_mss)(struct dma_desc *, unsigned int); - void (*set_addr)(struct dma_desc *, dma_addr_t); - void (*clear)(struct dma_desc *); - int (*get_rx_hash)(struct dma_desc *, u32 *, enum pkt_hash_types *); - void (*get_rx_header_len)(struct dma_desc *, unsigned int *); - void (*set_sec_addr)(struct dma_desc *, dma_addr_t, bool); - void (*set_sarc)(struct dma_desc *, u32); - void (*set_vlan_tag)(struct dma_desc *, u16, u16, u32); - void (*set_vlan)(struct dma_desc *, u32); - void (*set_tbs)(struct dma_edesc *, u32, u32); +struct scmi_msg_resp_base_attributes { + u8 num_protocols; + u8 num_agents; + __le16 reserved; }; -struct dma_desc { - __le32 des0; - __le32 des1; - __le32 des2; - __le32 des3; +struct scmi_msg_resp_base_discover_agent { + __le32 agent_id; + u8 name[16]; }; -struct stmmac_txq_stats { - unsigned long tx_pkt_n; - unsigned long tx_normal_irq_n; +struct scmi_msg_base_error_notify { + __le32 event_control; }; -struct stmmac_rxq_stats { - unsigned long rx_pkt_n; - unsigned long rx_normal_irq_n; +struct scmi_base_error_notify_payld { + __le32 agent_id; + __le32 error_status; + __le64 msg_reports[1024]; }; -struct stmmac_extra_stats { - unsigned long tx_underflow; - unsigned long tx_carrier; - unsigned long tx_losscarrier; - unsigned long vlan_tag; - unsigned long tx_deferred; - unsigned long tx_vlan; - unsigned long tx_jabber; - unsigned long tx_frame_flushed; - unsigned long tx_payload_error; - unsigned long tx_ip_header_error; - unsigned long rx_desc; - unsigned long sa_filter_fail; - unsigned long overflow_error; - unsigned long ipc_csum_error; - unsigned long rx_collision; - unsigned long rx_crc_errors; - unsigned long dribbling_bit; - unsigned long rx_length; - unsigned long rx_mii; - unsigned long rx_multicast; - unsigned long rx_gmac_overflow; - unsigned long rx_watchdog; - unsigned long da_rx_filter_fail; - unsigned long sa_rx_filter_fail; - unsigned long rx_missed_cntr; - unsigned long rx_overflow_cntr; - unsigned long rx_vlan; - unsigned long rx_split_hdr_pkt_n; - unsigned long tx_undeflow_irq; - unsigned long tx_process_stopped_irq; - unsigned long tx_jabber_irq; - unsigned long rx_overflow_irq; - unsigned long rx_buf_unav_irq; - unsigned long rx_process_stopped_irq; - unsigned long rx_watchdog_irq; - unsigned long tx_early_irq; - unsigned long fatal_bus_error_irq; - unsigned long rx_early_irq; - unsigned long threshold; - unsigned long tx_pkt_n; - unsigned long rx_pkt_n; - unsigned long normal_irq_n; - unsigned long rx_normal_irq_n; - unsigned long napi_poll; - unsigned long tx_normal_irq_n; - unsigned long tx_clean; - unsigned long tx_set_ic_bit; - unsigned long irq_receive_pmt_irq_n; - unsigned long mmc_tx_irq_n; - unsigned long mmc_rx_irq_n; - unsigned long mmc_rx_csum_offload_irq_n; - unsigned long irq_tx_path_in_lpi_mode_n; - unsigned long irq_tx_path_exit_lpi_mode_n; - unsigned long irq_rx_path_in_lpi_mode_n; - unsigned long irq_rx_path_exit_lpi_mode_n; - unsigned long phy_eee_wakeup_error_n; - unsigned long ip_hdr_err; - unsigned long ip_payload_err; - unsigned long ip_csum_bypassed; - unsigned long ipv4_pkt_rcvd; - unsigned long ipv6_pkt_rcvd; - unsigned long no_ptp_rx_msg_type_ext; - unsigned long ptp_rx_msg_type_sync; - unsigned long ptp_rx_msg_type_follow_up; - unsigned long ptp_rx_msg_type_delay_req; - unsigned long ptp_rx_msg_type_delay_resp; - unsigned long ptp_rx_msg_type_pdelay_req; - unsigned long ptp_rx_msg_type_pdelay_resp; - unsigned long ptp_rx_msg_type_pdelay_follow_up; - unsigned long ptp_rx_msg_type_announce; - unsigned long ptp_rx_msg_type_management; - unsigned long ptp_rx_msg_pkt_reserved_type; - unsigned long ptp_frame_type; - unsigned long ptp_ver; - unsigned long timestamp_dropped; - unsigned long av_pkt_rcvd; - unsigned long av_tagged_pkt_rcvd; - unsigned long vlan_tag_priority_val; - unsigned long l3_filter_match; - unsigned long l4_filter_match; - unsigned long l3_l4_filter_no_match; - unsigned long irq_pcs_ane_n; - unsigned long irq_pcs_link_n; - unsigned long irq_rgmii_n; - unsigned long pcs_link; - unsigned long pcs_duplex; - unsigned long pcs_speed; - unsigned long mtl_tx_status_fifo_full; - unsigned long mtl_tx_fifo_not_empty; - unsigned long mmtl_fifo_ctrl; - unsigned long mtl_tx_fifo_read_ctrl_write; - unsigned long mtl_tx_fifo_read_ctrl_wait; - unsigned long mtl_tx_fifo_read_ctrl_read; - unsigned long mtl_tx_fifo_read_ctrl_idle; - unsigned long mac_tx_in_pause; - unsigned long mac_tx_frame_ctrl_xfer; - unsigned long mac_tx_frame_ctrl_idle; - unsigned long mac_tx_frame_ctrl_wait; - unsigned long mac_tx_frame_ctrl_pause; - unsigned long mac_gmii_tx_proto_engine; - unsigned long mtl_rx_fifo_fill_level_full; - unsigned long mtl_rx_fifo_fill_above_thresh; - unsigned long mtl_rx_fifo_fill_below_thresh; - unsigned long mtl_rx_fifo_fill_level_empty; - unsigned long mtl_rx_fifo_read_ctrl_flush; - unsigned long mtl_rx_fifo_read_ctrl_read_data; - unsigned long mtl_rx_fifo_read_ctrl_status; - unsigned long mtl_rx_fifo_read_ctrl_idle; - unsigned long mtl_rx_fifo_ctrl_active; - unsigned long mac_rx_frame_ctrl_fifo; - unsigned long mac_gmii_rx_proto_engine; - unsigned long tx_tso_frames; - unsigned long tx_tso_nfrags; - unsigned long mtl_est_cgce; - unsigned long mtl_est_hlbs; - unsigned long mtl_est_hlbf; - unsigned long mtl_est_btre; - unsigned long mtl_est_btrlm; - struct stmmac_txq_stats txq_stats[8]; - struct stmmac_rxq_stats rxq_stats[8]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct scmi_base_error_report { + ktime_t timestamp; + unsigned int agent_id; + bool fatal; + unsigned int cmd_count; long: 32; + unsigned long long reports[0]; }; -struct dma_extended_desc { - struct dma_desc basic; - __le32 des4; - __le32 des5; - __le32 des6; - __le32 des7; +struct scmi_power_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const char * (*name_get)(const struct scmi_protocol_handle *, u32); + int (*state_set)(const struct scmi_protocol_handle *, u32, u32); + int (*state_get)(const struct scmi_protocol_handle *, u32, u32 *); }; -struct dma_edesc { - __le32 des4; - __le32 des5; - __le32 des6; - __le32 des7; - struct dma_desc basic; +enum scmi_power_protocol_cmd { + POWER_DOMAIN_ATTRIBUTES = 3, + POWER_STATE_SET = 4, + POWER_STATE_GET = 5, + POWER_STATE_NOTIFY = 6, + POWER_DOMAIN_NAME_GET = 8, }; -enum tx_frame_status { - tx_done = 0, - tx_not_ls = 1, - tx_err = 2, - tx_dma_own = 4, - tx_err_bump_tc = 8, -}; +struct power_dom_info; -enum rx_frame_status { - good_frame = 0, - discard_frame = 1, - csum_none = 2, - llc_snap = 4, - dma_own = 8, - rx_not_ls = 16, +struct scmi_power_info { + u32 version; + int num_domains; + u64 stats_addr; + u32 stats_size; + struct power_dom_info *dom_info; }; -struct stmmac_dma_cfg; - -struct stmmac_priv; +struct power_dom_info { + bool state_set_sync; + bool state_set_async; + bool state_set_notify; + char name[64]; +}; -struct stmmac_axi; +struct scmi_msg_resp_power_attributes { + __le16 num_domains; + __le16 reserved; + __le32 stats_addr_low; + __le32 stats_addr_high; + __le32 stats_size; +}; -struct dma_features; +struct scmi_msg_resp_power_domain_attributes { + __le32 flags; + u8 name[16]; +}; -struct stmmac_dma_ops { - int (*reset)(void *); - void (*init)(void *, struct stmmac_dma_cfg *, int); - void (*init_chan)(struct stmmac_priv *, void *, struct stmmac_dma_cfg *, u32); - void (*init_rx_chan)(struct stmmac_priv *, void *, struct stmmac_dma_cfg *, dma_addr_t, u32); - void (*init_tx_chan)(struct stmmac_priv *, void *, struct stmmac_dma_cfg *, dma_addr_t, u32); - void (*axi)(void *, struct stmmac_axi *); - void (*dump_regs)(struct stmmac_priv *, void *, u32 *); - void (*dma_rx_mode)(struct stmmac_priv *, void *, int, u32, int, u8); - void (*dma_tx_mode)(struct stmmac_priv *, void *, int, u32, int, u8); - void (*dma_diagnostic_fr)(struct net_device_stats *, struct stmmac_extra_stats *, void *); - void (*enable_dma_transmission)(void *); - void (*enable_dma_irq)(struct stmmac_priv *, void *, u32, bool, bool); - void (*disable_dma_irq)(struct stmmac_priv *, void *, u32, bool, bool); - void (*start_tx)(struct stmmac_priv *, void *, u32); - void (*stop_tx)(struct stmmac_priv *, void *, u32); - void (*start_rx)(struct stmmac_priv *, void *, u32); - void (*stop_rx)(struct stmmac_priv *, void *, u32); - int (*dma_interrupt)(struct stmmac_priv *, void *, struct stmmac_extra_stats *, u32, u32); - int (*get_hw_feature)(void *, struct dma_features *); - void (*rx_watchdog)(struct stmmac_priv *, void *, u32, u32); - void (*set_tx_ring_len)(struct stmmac_priv *, void *, u32, u32); - void (*set_rx_ring_len)(struct stmmac_priv *, void *, u32, u32); - void (*set_rx_tail_ptr)(struct stmmac_priv *, void *, u32, u32); - void (*set_tx_tail_ptr)(struct stmmac_priv *, void *, u32, u32); - void (*enable_tso)(struct stmmac_priv *, void *, bool, u32); - void (*qmode)(struct stmmac_priv *, void *, u32, u8); - void (*set_bfsize)(struct stmmac_priv *, void *, int, u32); - void (*enable_sph)(struct stmmac_priv *, void *, bool, u32); - int (*enable_tbs)(struct stmmac_priv *, void *, bool, u32); +struct scmi_power_state_notify { + __le32 domain; + __le32 notify_enable; }; -struct stmmac_dma_cfg { - int pbl; - int txpbl; - int rxpbl; - bool pblx8; - int fixed_burst; - int mixed_burst; - bool aal; - bool eame; - bool multi_msi_en; - bool dche; +struct scmi_power_set_state { + __le32 flags; + __le32 domain; + __le32 state; }; -struct stmmac_rx_buffer; +struct scmi_power_state_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 power_state; +}; -struct stmmac_rx_queue { - u32 rx_count_frames; - u32 queue_index; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct xdp_rxq_info xdp_rxq; - struct xsk_buff_pool *xsk_pool; - struct page_pool *page_pool; - struct stmmac_rx_buffer *buf_pool; - struct stmmac_priv *priv_data; - struct dma_extended_desc *dma_erx; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct dma_desc *dma_rx; - unsigned int cur_rx; - unsigned int dirty_rx; - unsigned int buf_alloc_num; - u32 rx_zeroc_thresh; - dma_addr_t dma_rx_phy; - u32 rx_tail_addr; - unsigned int state_saved; - struct { - struct sk_buff *skb; - unsigned int len; - unsigned int error; - } state; - long: 32; - long: 32; - long: 32; - long: 32; +struct scmi_power_state_changed_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int power_state; long: 32; }; -struct stmmac_tx_info; - -struct stmmac_tx_queue { - u32 tx_count_frames; - int tbs; - struct hrtimer txtimer; - u32 queue_index; - struct stmmac_priv *priv_data; - struct dma_extended_desc *dma_etx; - struct dma_edesc *dma_entx; - struct dma_desc *dma_tx; - union { - struct sk_buff **tx_skbuff; - struct xdp_frame **xdpf; - }; - struct stmmac_tx_info *tx_skbuff_dma; - struct xsk_buff_pool *xsk_pool; - u32 xsk_frames_done; - unsigned int cur_tx; - unsigned int dirty_tx; - dma_addr_t dma_tx_phy; - dma_addr_t tx_tail_addr; - u32 mss; - long: 32; - long: 32; - long: 32; - long: 32; +struct rk_timer { + void *base; + void *ctrl; + struct clk *clk; + struct clk *pclk; + u32 freq; + int irq; }; -struct stmmac_dma_conf { - unsigned int dma_buf_sz; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct stmmac_rx_queue rx_queue[8]; - unsigned int dma_rx_size; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct stmmac_tx_queue tx_queue[8]; - unsigned int dma_tx_size; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct rk_clkevt { + struct clock_event_device ce; + struct rk_timer timer; long: 32; long: 32; long: 32; @@ -36267,3762 +45113,3661 @@ struct stmmac_dma_conf { long: 32; }; -struct stmmac_channel { - struct napi_struct rx_napi; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct napi_struct tx_napi; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct napi_struct rxtx_napi; - struct stmmac_priv *priv_data; - spinlock_t lock; - u32 index; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct delay_timer { + unsigned long (*read_current_timer)(); + unsigned long freq; }; -enum phylink_op_type { - PHYLINK_NETDEV = 0, - PHYLINK_DEV = 1, +enum memblock_flags { + MEMBLOCK_NONE = 0, + MEMBLOCK_HOTPLUG = 1, + MEMBLOCK_MIRROR = 2, + MEMBLOCK_NOMAP = 4, + MEMBLOCK_DRIVER_MANAGED = 8, + MEMBLOCK_RSRV_NOINIT = 16, }; -struct phylink_link_state; +typedef __be32 fdt32_t; -struct phylink_config { - struct device *dev; - enum phylink_op_type type; - bool legacy_pre_march2020; - bool poll_fixed_state; - bool mac_managed_pm; - bool ovr_an_inband; - void (*get_fixed_state)(struct phylink_config *, struct phylink_link_state *); - unsigned long supported_interfaces[1]; - unsigned long mac_capabilities; +struct fdt_header { + fdt32_t magic; + fdt32_t totalsize; + fdt32_t off_dt_struct; + fdt32_t off_dt_strings; + fdt32_t off_mem_rsvmap; + fdt32_t version; + fdt32_t last_comp_version; + fdt32_t boot_cpuid_phys; + fdt32_t size_dt_strings; + fdt32_t size_dt_struct; }; -struct stmmac_safety_stats { - unsigned long mac_errors[32]; - unsigned long mtl_errors[32]; - unsigned long dma_errors[32]; -}; +struct memblock_region; -struct dma_features { - unsigned int mbps_10_100; - unsigned int mbps_1000; - unsigned int half_duplex; - unsigned int hash_filter; - unsigned int multi_addr; - unsigned int pcs; - unsigned int sma_mdio; - unsigned int pmt_remote_wake_up; - unsigned int pmt_magic_frame; - unsigned int rmon; - unsigned int time_stamp; - unsigned int atime_stamp; - unsigned int eee; - unsigned int av; - unsigned int hash_tb_sz; - unsigned int tsoen; - unsigned int tx_coe; - unsigned int rx_coe; - unsigned int rx_coe_type1; - unsigned int rx_coe_type2; - unsigned int rxfifo_over_2048; - unsigned int number_rx_channel; - unsigned int number_tx_channel; - unsigned int number_rx_queues; - unsigned int number_tx_queues; - unsigned int pps_out_num; - unsigned int enh_desc; - unsigned int tx_fifo_size; - unsigned int rx_fifo_size; - unsigned int asp; - unsigned int frpsel; - unsigned int frpbs; - unsigned int frpes; - unsigned int addr64; - unsigned int host_dma_width; - unsigned int rssen; - unsigned int vlhash; - unsigned int sphen; - unsigned int vlins; - unsigned int dvlan; - unsigned int l3l4fnum; - unsigned int arpoffsel; - unsigned int estwid; - unsigned int estdep; - unsigned int estsel; - unsigned int fpesel; - unsigned int tbssel; - unsigned int aux_snapshot_n; +struct memblock_type { + unsigned long cnt; + unsigned long max; + phys_addr_t total_size; + struct memblock_region *regions; + char *name; }; -struct stmmac_counters { - unsigned int mmc_tx_octetcount_gb; - unsigned int mmc_tx_framecount_gb; - unsigned int mmc_tx_broadcastframe_g; - unsigned int mmc_tx_multicastframe_g; - unsigned int mmc_tx_64_octets_gb; - unsigned int mmc_tx_65_to_127_octets_gb; - unsigned int mmc_tx_128_to_255_octets_gb; - unsigned int mmc_tx_256_to_511_octets_gb; - unsigned int mmc_tx_512_to_1023_octets_gb; - unsigned int mmc_tx_1024_to_max_octets_gb; - unsigned int mmc_tx_unicast_gb; - unsigned int mmc_tx_multicast_gb; - unsigned int mmc_tx_broadcast_gb; - unsigned int mmc_tx_underflow_error; - unsigned int mmc_tx_singlecol_g; - unsigned int mmc_tx_multicol_g; - unsigned int mmc_tx_deferred; - unsigned int mmc_tx_latecol; - unsigned int mmc_tx_exesscol; - unsigned int mmc_tx_carrier_error; - unsigned int mmc_tx_octetcount_g; - unsigned int mmc_tx_framecount_g; - unsigned int mmc_tx_excessdef; - unsigned int mmc_tx_pause_frame; - unsigned int mmc_tx_vlan_frame_g; - unsigned int mmc_rx_framecount_gb; - unsigned int mmc_rx_octetcount_gb; - unsigned int mmc_rx_octetcount_g; - unsigned int mmc_rx_broadcastframe_g; - unsigned int mmc_rx_multicastframe_g; - unsigned int mmc_rx_crc_error; - unsigned int mmc_rx_align_error; - unsigned int mmc_rx_run_error; - unsigned int mmc_rx_jabber_error; - unsigned int mmc_rx_undersize_g; - unsigned int mmc_rx_oversize_g; - unsigned int mmc_rx_64_octets_gb; - unsigned int mmc_rx_65_to_127_octets_gb; - unsigned int mmc_rx_128_to_255_octets_gb; - unsigned int mmc_rx_256_to_511_octets_gb; - unsigned int mmc_rx_512_to_1023_octets_gb; - unsigned int mmc_rx_1024_to_max_octets_gb; - unsigned int mmc_rx_unicast_g; - unsigned int mmc_rx_length_error; - unsigned int mmc_rx_autofrangetype; - unsigned int mmc_rx_pause_frames; - unsigned int mmc_rx_fifo_overflow; - unsigned int mmc_rx_vlan_frames_gb; - unsigned int mmc_rx_watchdog_error; - unsigned int mmc_rx_ipc_intr_mask; - unsigned int mmc_rx_ipc_intr; - unsigned int mmc_rx_ipv4_gd; - unsigned int mmc_rx_ipv4_hderr; - unsigned int mmc_rx_ipv4_nopay; - unsigned int mmc_rx_ipv4_frag; - unsigned int mmc_rx_ipv4_udsbl; - unsigned int mmc_rx_ipv4_gd_octets; - unsigned int mmc_rx_ipv4_hderr_octets; - unsigned int mmc_rx_ipv4_nopay_octets; - unsigned int mmc_rx_ipv4_frag_octets; - unsigned int mmc_rx_ipv4_udsbl_octets; - unsigned int mmc_rx_ipv6_gd_octets; - unsigned int mmc_rx_ipv6_hderr_octets; - unsigned int mmc_rx_ipv6_nopay_octets; - unsigned int mmc_rx_ipv6_gd; - unsigned int mmc_rx_ipv6_hderr; - unsigned int mmc_rx_ipv6_nopay; - unsigned int mmc_rx_udp_gd; - unsigned int mmc_rx_udp_err; - unsigned int mmc_rx_tcp_gd; - unsigned int mmc_rx_tcp_err; - unsigned int mmc_rx_icmp_gd; - unsigned int mmc_rx_icmp_err; - unsigned int mmc_rx_udp_gd_octets; - unsigned int mmc_rx_udp_err_octets; - unsigned int mmc_rx_tcp_gd_octets; - unsigned int mmc_rx_tcp_err_octets; - unsigned int mmc_rx_icmp_gd_octets; - unsigned int mmc_rx_icmp_err_octets; - unsigned int mmc_tx_fpe_fragment_cntr; - unsigned int mmc_tx_hold_req_cntr; - unsigned int mmc_rx_packet_assembly_err_cntr; - unsigned int mmc_rx_packet_smd_err_cntr; - unsigned int mmc_rx_packet_assembly_ok_cntr; - unsigned int mmc_rx_fpe_fragment_cntr; +struct memblock_region { + phys_addr_t base; + phys_addr_t size; + enum memblock_flags flags; }; -struct stmmac_pps_cfg { - bool available; +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; + long: 32; + u64 dma_mask; + const struct property_entry *properties; long: 32; - struct timespec64 start; - struct timespec64 period; }; -struct stmmac_rss { - int enable; - u8 key[40]; - u32 table[256]; +enum rproc_dump_mechanism { + RPROC_COREDUMP_DISABLED = 0, + RPROC_COREDUMP_ENABLED = 1, + RPROC_COREDUMP_INLINE = 2, }; -struct mac_device_info; - -struct plat_stmmacenet_data; - -struct stmmac_tc_entry; +enum rproc_state { + RPROC_OFFLINE = 0, + RPROC_SUSPENDED = 1, + RPROC_RUNNING = 2, + RPROC_CRASHED = 3, + RPROC_DELETED = 4, + RPROC_ATTACHED = 5, + RPROC_DETACHED = 6, + RPROC_LAST = 7, +}; -struct stmmac_flow_entry; +struct rproc_ops; -struct stmmac_rfs_entry; +struct resource_table; -struct stmmac_priv { - u32 tx_coal_frames[8]; - u32 tx_coal_timer[8]; - u32 rx_coal_frames[8]; - int hwts_tx_en; - bool tx_path_in_lpi_mode; - bool tso; - int sph; - int sph_cap; - u32 sarc_type; - unsigned int rx_copybreak; - u32 rx_riwt[8]; - int hwts_rx_en; - void *ioaddr; - struct net_device *dev; - struct device *device; - struct mac_device_info *hw; - int (*hwif_quirks)(struct stmmac_priv *); - struct mutex lock; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct stmmac_dma_conf dma_conf; - struct stmmac_channel channel[8]; - int speed; - unsigned int flow_ctrl; - unsigned int pause; - struct mii_bus *mii; - struct phylink_config phylink_config; - struct phylink *phylink; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct stmmac_extra_stats xstats; - struct stmmac_safety_stats sstats; - struct plat_stmmacenet_data *plat; - struct dma_features dma_cap; - struct stmmac_counters mmc; - int hw_cap_support; - int synopsys_id; - u32 msg_enable; - int wolopts; - int wol_irq; - int clk_csr; - struct timer_list eee_ctrl_timer; - int lpi_irq; - int eee_enabled; - int eee_active; - int tx_lpi_timer; - int tx_lpi_enabled; - int eee_tw_timer; - bool eee_sw_timer_en; - unsigned int mode; - unsigned int chain_mode; - int extend_desc; - struct hwtstamp_config tstamp_config; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_clock_ops; - unsigned int default_addend; - u32 sub_second_inc; - u32 systime_flags; - u32 adv_ts; - int use_riwt; - int irq_wake; - rwlock_t ptp_lock; - struct mutex aux_ts_lock; - wait_queue_head_t tstamp_busy_wait; - void *mmcaddr; - void *ptpaddr; - unsigned long active_vlans[128]; - int sfty_ce_irq; - int sfty_ue_irq; - int rx_irq[8]; - int tx_irq[8]; - char int_name_mac[25]; - char int_name_wol[25]; - char int_name_lpi[25]; - char int_name_sfty_ce[26]; - char int_name_sfty_ue[26]; - char int_name_rx_irq[240]; - char int_name_tx_irq[272]; - struct dentry *dbgfs_dir; - unsigned long state; - struct workqueue_struct *wq; - struct work_struct service_task; - unsigned long fpe_task_state; - struct workqueue_struct *fpe_wq; - struct work_struct fpe_task; - char wq_name[20]; - unsigned int tc_entries_max; - unsigned int tc_off_max; - struct stmmac_tc_entry *tc_entries; - unsigned int flow_entries_max; - struct stmmac_flow_entry *flow_entries; - unsigned int rfs_entries_max[3]; - unsigned int rfs_entries_cnt[3]; - unsigned int rfs_entries_total; - struct stmmac_rfs_entry *rfs_entries; - long: 32; - struct stmmac_pps_cfg pps[4]; - struct stmmac_rss rss; - unsigned long *af_xdp_zc_qps; - struct bpf_prog *xdp_prog; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct rproc { + struct list_head node; + struct iommu_domain *domain; + const char *name; + const char *firmware; + void *priv; + struct rproc_ops *ops; long: 32; + struct device dev; + atomic_t power; + unsigned int state; + enum rproc_dump_mechanism dump_conf; + struct mutex lock; + struct dentry *dbg_dir; + struct list_head traces; + int num_traces; + struct list_head carveouts; + struct list_head mappings; + u64 bootaddr; + struct list_head rvdevs; + struct list_head subdevs; + struct idr notifyids; + int index; + struct work_struct crash_handler; + unsigned int crash_cnt; + bool recovery_disabled; + int max_notifyid; + struct resource_table *table_ptr; + struct resource_table *clean_table; + struct resource_table *cached_table; + size_t table_sz; + bool has_iommu; + bool auto_boot; + bool sysfs_read_only; + struct list_head dump_segments; + int nb_vdev; + u8 elf_class; + u16 elf_machine; + struct cdev cdev; + bool cdev_put_on_release; + unsigned long features[1]; long: 32; }; -struct mii_regs { - unsigned int addr; - unsigned int data; - unsigned int addr_shift; - unsigned int reg_shift; - unsigned int addr_mask; - unsigned int reg_mask; - unsigned int clk_csr_shift; - unsigned int clk_csr_mask; +struct firmware; + +struct rproc_ops { + int (*prepare)(struct rproc *); + int (*unprepare)(struct rproc *); + int (*start)(struct rproc *); + int (*stop)(struct rproc *); + int (*attach)(struct rproc *); + int (*detach)(struct rproc *); + void (*kick)(struct rproc *, int); + void * (*da_to_va)(struct rproc *, u64, size_t, bool *); + int (*parse_fw)(struct rproc *, const struct firmware *); + int (*handle_rsc)(struct rproc *, u32, void *, int, int); + struct resource_table * (*find_loaded_rsc_table)(struct rproc *, const struct firmware *); + struct resource_table * (*get_loaded_rsc_table)(struct rproc *, size_t *); + int (*load)(struct rproc *, const struct firmware *); + int (*sanity_check)(struct rproc *, const struct firmware *); + u64 (*get_boot_addr)(struct rproc *, const struct firmware *); + unsigned long (*panic)(struct rproc *); + void (*coredump)(struct rproc *); }; -struct mac_link { - u32 speed_mask; - u32 speed10; - u32 speed100; - u32 speed1000; - u32 speed2500; - u32 duplex; - struct { - u32 speed2500; - u32 speed5000; - u32 speed10000; - } xgmii; - struct { - u32 speed25000; - u32 speed40000; - u32 speed50000; - u32 speed100000; - } xlgmii; +struct firmware { + size_t size; + const u8 *data; + void *priv; }; -struct stmmac_ops; +struct resource_table { + u32 ver; + u32 num; + u32 reserved[2]; + u32 offset[0]; +}; -struct stmmac_mode_ops; +struct tegra_mc_client; -struct stmmac_hwtimestamp; +struct tegra_smmu_soc; -struct stmmac_tc_ops; +struct tegra_mc_reset_ops; -struct stmmac_mmc_ops; +struct tegra_mc_reset; -struct dw_xpcs; +struct tegra_mc_icc_ops; -struct phylink_pcs; +struct tegra_mc_ops; -struct mac_device_info { - const struct stmmac_ops *mac; - const struct stmmac_desc_ops *desc; - const struct stmmac_dma_ops *dma; - const struct stmmac_mode_ops *mode; - const struct stmmac_hwtimestamp *ptp; - const struct stmmac_tc_ops *tc; - const struct stmmac_mmc_ops *mmc; - struct dw_xpcs *xpcs; - struct phylink_pcs *lynx_pcs; - struct mii_regs mii; - struct mac_link link; - void *pcsr; - unsigned int multicast_filter_bins; - unsigned int unicast_filter_entries; - unsigned int mcast_bits_log2; - unsigned int rx_csum; - unsigned int pcs; - unsigned int pmt; - unsigned int ps; - unsigned int xlgmac; - unsigned int num_vlan; - u32 vlan_filter[32]; - bool vlan_fail_q_en; - u8 vlan_fail_q; +struct tegra_mc_soc { + const struct tegra_mc_client *clients; + unsigned int num_clients; + const unsigned long *emem_regs; + unsigned int num_emem_regs; + unsigned int num_address_bits; + unsigned int atom_size; + unsigned int num_carveouts; + u16 client_id_mask; + u8 num_channels; + const struct tegra_smmu_soc *smmu; + u32 intmask; + u32 ch_intmask; + u32 global_intstatus_channel_shift; + bool has_addr_hi_reg; + const struct tegra_mc_reset_ops *reset_ops; + const struct tegra_mc_reset *resets; + unsigned int num_resets; + const struct tegra_mc_icc_ops *icc_ops; + const struct tegra_mc_ops *ops; }; -enum stmmac_mpacket_type { - MPACKET_VERIFY = 0, - MPACKET_RESPONSE = 1, +enum tegra_icc_client_type { + TEGRA_ICC_NONE = 0, + TEGRA_ICC_NISO = 1, + TEGRA_ICC_ISO_DISPLAY = 2, + TEGRA_ICC_ISO_VI = 3, + TEGRA_ICC_ISO_AUDIO = 4, + TEGRA_ICC_ISO_VIFAL = 5, }; -struct rgmii_adv; +struct tegra_mc_client { + unsigned int id; + unsigned int bpmp_id; + enum tegra_icc_client_type type; + const char *name; + union { + unsigned int swgroup; + unsigned int sid; + }; + unsigned int fifo_size; + struct { + struct { + unsigned int reg; + unsigned int bit; + } smmu; + struct { + unsigned int reg; + unsigned int shift; + unsigned int mask; + unsigned int def; + } la; + struct { + unsigned int override; + unsigned int security; + } sid; + } regs; +}; -struct stmmac_safety_feature_cfg; +struct tegra_smmu_swgroup; -struct stmmac_est; +struct tegra_smmu_group_soc; -struct stmmac_ops { - void (*core_init)(struct mac_device_info *, struct net_device *); - void (*set_mac)(void *, bool); - int (*rx_ipc)(struct mac_device_info *); - void (*rx_queue_enable)(struct mac_device_info *, u8, u32); - void (*rx_queue_prio)(struct mac_device_info *, u32, u32); - void (*tx_queue_prio)(struct mac_device_info *, u32, u32); - void (*rx_queue_routing)(struct mac_device_info *, u8, u32); - void (*prog_mtl_rx_algorithms)(struct mac_device_info *, u32); - void (*prog_mtl_tx_algorithms)(struct mac_device_info *, u32); - void (*set_mtl_tx_queue_weight)(struct stmmac_priv *, struct mac_device_info *, u32, u32); - void (*map_mtl_to_dma)(struct mac_device_info *, u32, u32); - void (*config_cbs)(struct stmmac_priv *, struct mac_device_info *, u32, u32, u32, u32, u32); - void (*dump_regs)(struct mac_device_info *, u32 *); - int (*host_irq_status)(struct mac_device_info *, struct stmmac_extra_stats *); - int (*host_mtl_irq_status)(struct stmmac_priv *, struct mac_device_info *, u32); - void (*set_filter)(struct mac_device_info *, struct net_device *); - void (*flow_ctrl)(struct mac_device_info *, unsigned int, unsigned int, unsigned int, u32); - void (*pmt)(struct mac_device_info *, unsigned long); - void (*set_umac_addr)(struct mac_device_info *, const unsigned char *, unsigned int); - void (*get_umac_addr)(struct mac_device_info *, unsigned char *, unsigned int); - void (*set_eee_mode)(struct mac_device_info *, bool); - void (*reset_eee_mode)(struct mac_device_info *); - void (*set_eee_lpi_entry_timer)(struct mac_device_info *, int); - void (*set_eee_timer)(struct mac_device_info *, int, int); - void (*set_eee_pls)(struct mac_device_info *, int); - void (*debug)(struct stmmac_priv *, void *, struct stmmac_extra_stats *, u32, u32); - void (*pcs_ctrl_ane)(void *, bool, bool, bool); - void (*pcs_rane)(void *, bool); - void (*pcs_get_adv_lp)(void *, struct rgmii_adv *); - int (*safety_feat_config)(void *, unsigned int, struct stmmac_safety_feature_cfg *); - int (*safety_feat_irq_status)(struct net_device *, void *, unsigned int, struct stmmac_safety_stats *); - int (*safety_feat_dump)(struct stmmac_safety_stats *, int, unsigned long *, const char **); - int (*rxp_config)(void *, struct stmmac_tc_entry *, unsigned int); - int (*flex_pps_config)(void *, int, struct stmmac_pps_cfg *, bool, u32, u32); - void (*set_mac_loopback)(void *, bool); - int (*rss_configure)(struct mac_device_info *, struct stmmac_rss *, u32); - void (*update_vlan_hash)(struct mac_device_info *, u32, __le16, bool); - void (*enable_vlan)(struct mac_device_info *, u32); - int (*add_hw_vlan_rx_fltr)(struct net_device *, struct mac_device_info *, __be16, u16); - int (*del_hw_vlan_rx_fltr)(struct net_device *, struct mac_device_info *, __be16, u16); - void (*restore_hw_vlan_rx_fltr)(struct net_device *, struct mac_device_info *); - int (*get_mac_tx_timestamp)(struct mac_device_info *, u64 *); - void (*sarc_configure)(void *, int); - int (*config_l3_filter)(struct mac_device_info *, u32, bool, bool, bool, bool, u32); - int (*config_l4_filter)(struct mac_device_info *, u32, bool, bool, bool, bool, u32); - void (*set_arp_offload)(struct mac_device_info *, bool, u32); - int (*est_configure)(void *, struct stmmac_est *, unsigned int); - void (*est_irq_status)(void *, struct net_device *, struct stmmac_extra_stats *, u32); - void (*fpe_configure)(void *, u32, u32, bool); - void (*fpe_send_mpacket)(void *, enum stmmac_mpacket_type); - int (*fpe_irq_status)(void *, struct net_device *); +struct tegra_smmu_soc { + const struct tegra_mc_client *clients; + unsigned int num_clients; + const struct tegra_smmu_swgroup *swgroups; + unsigned int num_swgroups; + const struct tegra_smmu_group_soc *groups; + unsigned int num_groups; + bool supports_round_robin_arbitration; + bool supports_request_limit; + unsigned int num_tlb_lines; + unsigned int num_asids; }; -struct rgmii_adv { - unsigned int pause; - unsigned int duplex; - unsigned int lp_pause; - unsigned int lp_duplex; +struct tegra_smmu_swgroup { + const char *name; + unsigned int swgroup; + unsigned int reg; }; -struct stmmac_safety_feature_cfg { - u32 tsoee; - u32 mrxpee; - u32 mestee; - u32 mrxee; - u32 mtxee; - u32 epsi; - u32 edpp; - u32 prtyen; - u32 tmouten; +struct tegra_smmu_group_soc { + const char *name; + const unsigned int *swgroups; + unsigned int num_swgroups; }; -struct stmmac_tc_entry { - bool in_use; - bool in_hw; - bool is_last; - bool is_frag; - void *frag_ptr; - unsigned int table_pos; - u32 handle; - u32 prio; - struct { - u32 match_data; - u32 match_en; - u8 af: 1; - u8 rf: 1; - u8 im: 1; - u8 nc: 1; - u8 res1: 4; - u8 frame_offset; - u8 ok_index; - u8 dma_ch_no; - u32 res2; - } val; -}; +struct tegra_mc; -struct stmmac_est { - struct mutex lock; - int enable; - u32 btr_reserve[2]; - u32 btr_offset[2]; - u32 btr[2]; - u32 ctr[2]; - u32 ter; - u32 gcl_unaligned[1024]; - u32 gcl[1024]; - u32 gcl_size; +struct tegra_mc_reset_ops { + int (*hotreset_assert)(struct tegra_mc *, const struct tegra_mc_reset *); + int (*hotreset_deassert)(struct tegra_mc *, const struct tegra_mc_reset *); + int (*block_dma)(struct tegra_mc *, const struct tegra_mc_reset *); + bool (*dma_idling)(struct tegra_mc *, const struct tegra_mc_reset *); + int (*unblock_dma)(struct tegra_mc *, const struct tegra_mc_reset *); + int (*reset_status)(struct tegra_mc *, const struct tegra_mc_reset *); }; -struct stmmac_mode_ops { - void (*init)(void *, dma_addr_t, unsigned int, unsigned int); - unsigned int (*is_jumbo_frm)(int, int); - int (*jumbo_frm)(struct stmmac_tx_queue *, struct sk_buff *, int); - int (*set_16kib_bfsize)(int); - void (*init_desc3)(struct dma_desc *); - void (*refill_desc3)(struct stmmac_rx_queue *, struct dma_desc *); - void (*clean_desc3)(struct stmmac_tx_queue *, struct dma_desc *); -}; +struct tegra_bpmp; -enum stmmac_txbuf_type { - STMMAC_TXBUF_T_SKB = 0, - STMMAC_TXBUF_T_XDP_TX = 1, - STMMAC_TXBUF_T_XDP_NDO = 2, - STMMAC_TXBUF_T_XSK_TX = 3, -}; +struct icc_node; -struct stmmac_tx_info { - dma_addr_t buf; - bool map_as_page; - unsigned int len; - bool last_segment; - bool is_jumbo; - enum stmmac_txbuf_type buf_type; -}; +struct icc_node_data; -struct stmmac_rx_buffer { - union { - struct { - struct page *page; - dma_addr_t addr; - __u32 page_offset; - }; - struct xdp_buff *xdp; - }; - struct page *sec_page; - dma_addr_t sec_addr; +struct icc_provider { + struct list_head provider_list; + struct list_head nodes; + int (*set)(struct icc_node *, struct icc_node *); + int (*aggregate)(struct icc_node *, u32, u32, u32, u32 *, u32 *); + void (*pre_aggregate)(struct icc_node *); + int (*get_bw)(struct icc_node *, u32 *, u32 *); + struct icc_node * (*xlate)(struct of_phandle_args *, void *); + struct icc_node_data * (*xlate_extended)(struct of_phandle_args *, void *); + struct device *dev; + int users; + bool inter_set; + void *data; }; -struct stmmac_hwtimestamp { - void (*config_hw_tstamping)(void *, u32); - void (*config_sub_second_increment)(void *, u32, int, u32 *); - int (*init_systime)(void *, u32, u32); - int (*config_addend)(void *, u32); - int (*adjust_systime)(void *, u32, u32, int, int); - void (*get_systime)(void *, u64 *); - void (*get_ptptime)(void *, u64 *); - void (*timestamp_interrupt)(struct stmmac_priv *); -}; +struct tegra_smmu; -struct tc_cls_u32_offload; +struct tegra_mc_timing; -struct tc_cbs_qopt_offload; +struct tegra_mc { + struct tegra_bpmp *bpmp; + struct device *dev; + struct tegra_smmu *smmu; + void *regs; + void *bcast_ch_regs; + void **ch_regs; + struct clk *clk; + int irq; + const struct tegra_mc_soc *soc; + unsigned long tick; + struct tegra_mc_timing *timings; + unsigned int num_timings; + unsigned int num_channels; + bool bwmgr_mrq_supported; + struct reset_controller_dev reset; + struct icc_provider provider; + spinlock_t lock; + struct { + struct dentry *root; + } debugfs; +}; -struct flow_cls_offload; +struct tegra_mc_timing { + unsigned long rate; + u32 *emem_data; +}; -struct tc_taprio_qopt_offload; +struct icc_node { + int id; + const char *name; + struct icc_node **links; + size_t num_links; + struct icc_provider *provider; + struct list_head node_list; + struct list_head search_list; + struct icc_node *reverse; + u8 is_traversed: 1; + struct hlist_head req_list; + u32 avg_bw; + u32 peak_bw; + u32 init_avg; + u32 init_peak; + void *data; +}; -struct tc_etf_qopt_offload; +struct icc_node_data { + struct icc_node *node; + u32 tag; +}; -struct tc_query_caps_base; +struct tegra_mc_reset { + const char *name; + unsigned long id; + unsigned int control; + unsigned int status; + unsigned int reset; + unsigned int bit; +}; -struct stmmac_tc_ops { - int (*init)(struct stmmac_priv *); - int (*setup_cls_u32)(struct stmmac_priv *, struct tc_cls_u32_offload *); - int (*setup_cbs)(struct stmmac_priv *, struct tc_cbs_qopt_offload *); - int (*setup_cls)(struct stmmac_priv *, struct flow_cls_offload *); - int (*setup_taprio)(struct stmmac_priv *, struct tc_taprio_qopt_offload *); - int (*setup_etf)(struct stmmac_priv *, struct tc_etf_qopt_offload *); - int (*query_caps)(struct stmmac_priv *, struct tc_query_caps_base *); +struct tegra_mc_icc_ops { + int (*set)(struct icc_node *, struct icc_node *); + int (*aggregate)(struct icc_node *, u32, u32, u32, u32 *, u32 *); + struct icc_node * (*xlate)(struct of_phandle_args *, void *); + struct icc_node_data * (*xlate_extended)(struct of_phandle_args *, void *); + int (*get_bw)(struct icc_node *, u32 *, u32 *); }; -struct stmmac_mmc_ops { - void (*ctrl)(void *, unsigned int); - void (*intr_all_mask)(void *); - void (*read)(void *, struct stmmac_counters *); +struct tegra_mc_ops { + int (*probe)(struct tegra_mc *); + void (*remove)(struct tegra_mc *); + irqreturn_t (*handle_irq)(int, void *); + int (*probe_device)(struct tegra_mc *, struct device *); }; -struct phylink_pcs_ops; +struct tegra20_mc_client_stat { + unsigned int events; + unsigned int arb_high_prio; + unsigned int arb_timeout; + unsigned int arb_bandwidth; + unsigned int rd_wr_change; + unsigned int successive; + unsigned int page_miss; + unsigned int auto_precharge; + unsigned int arb_bank_aa; + unsigned int arb_bank_bb; +}; -struct phylink_pcs { - const struct phylink_pcs_ops *ops; - bool neg_mode; - bool poll; +struct tegra20_mc_stat_gather { + unsigned int pri_filter; + unsigned int pri_event; + unsigned int result; + unsigned int client; + unsigned int event; + bool client_enb; }; -struct xpcs_id; +struct tegra20_mc_stat { + struct tegra20_mc_stat_gather gather0; + struct tegra20_mc_stat_gather gather1; + unsigned int sample_time_usec; + const struct tegra_mc *mc; +}; -struct dw_xpcs { - struct mdio_device *mdiodev; - const struct xpcs_id *id; - struct phylink_pcs pcs; +struct rpm_clk_resource { + u32 resource_type; + u32 clock_id; + bool branch; }; -struct xpcs_compat; +struct nd_opt_hdr { + __u8 nd_opt_type; + __u8 nd_opt_len; +}; -struct xpcs_id { - u32 id; - u32 mask; - const struct xpcs_compat *compat; +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 phylink_pcs_ops { - int (*pcs_validate)(struct phylink_pcs *, unsigned long *, const struct phylink_link_state *); - void (*pcs_get_state)(struct phylink_pcs *, struct phylink_link_state *); - int (*pcs_config)(struct phylink_pcs *, unsigned int, phy_interface_t, const unsigned long *, bool); - void (*pcs_an_restart)(struct phylink_pcs *); - void (*pcs_link_up)(struct phylink_pcs *, unsigned int, phy_interface_t, int, int); +struct prefix_info { + __u8 type; + __u8 length; + __u8 prefix_len; + union { + __u8 flags; + struct { + __u8 reserved: 6; + __u8 autoconf: 1; + __u8 onlink: 1; + }; + }; + __be32 valid; + __be32 prefered; + __be32 reserved2; + struct in6_addr prefix; }; -struct phylink_link_state { - unsigned long advertising[4]; - unsigned long lp_advertising[4]; - phy_interface_t interface; - int speed; - int duplex; - int pause; - int rate_matching; - unsigned int link: 1; - unsigned int an_complete: 1; +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 stmmac_rxq_cfg { - u8 mode_to_use; - u32 chan; - u8 pkt_route; - bool use_prio; - u32 prio; +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 stmmac_txq_cfg { - u32 weight; - u8 mode_to_use; - u32 send_slope; - u32 idle_slope; - u32 high_credit; - u32 low_credit; - bool use_prio; - u32 prio; - int tbs_en; +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 *); }; -struct stmmac_mdio_bus_data; +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 stmmac_fpe_cfg; +struct net_proto_family { + int family; + int (*create)(struct net *, struct socket *, int, int); + struct module *owner; +}; -struct system_counterval_t; +struct net_bridge; -struct dwmac4_addrs; +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, +}; -struct plat_stmmacenet_data { - int bus_id; - int phy_addr; - int interface; - phy_interface_t phy_interface; - struct stmmac_mdio_bus_data *mdio_bus_data; - struct device_node *phy_node; - struct device_node *phylink_node; - struct device_node *mdio_node; - struct stmmac_dma_cfg *dma_cfg; - struct stmmac_est *est; - struct stmmac_fpe_cfg *fpe_cfg; - struct stmmac_safety_feature_cfg *safety_feat_cfg; - int clk_csr; - int has_gmac; - int enh_desc; - int tx_coe; - int rx_coe; - int bugged_jumbo; - int pmt; - int force_sf_dma_mode; - int force_thresh_dma_mode; - int riwt_off; - int max_speed; - int maxmtu; - int multicast_filter_bins; - int unicast_filter_entries; - int tx_fifo_size; - int rx_fifo_size; - u32 host_dma_width; - u32 rx_queues_to_use; - u32 tx_queues_to_use; - u8 rx_sched_algorithm; - u8 tx_sched_algorithm; - struct stmmac_rxq_cfg rx_queues_cfg[8]; - struct stmmac_txq_cfg tx_queues_cfg[8]; - void (*fix_mac_speed)(void *, unsigned int); - int (*fix_soc_reset)(void *, void *); - int (*serdes_powerup)(struct net_device *, void *); - void (*serdes_powerdown)(struct net_device *, void *); - void (*speed_mode_2500)(struct net_device *, void *); - void (*ptp_clk_freq_config)(void *); - int (*init)(struct platform_device *, void *); - void (*exit)(struct platform_device *, void *); - struct mac_device_info * (*setup)(void *); - int (*clks_config)(void *, bool); - int (*crosststamp)(ktime_t *, struct system_counterval_t *, void *); - void (*dump_debug_regs)(void *); - void *bsp_priv; - struct clk *stmmac_clk; - struct clk *pclk; - struct clk *clk_ptp_ref; - unsigned int clk_ptp_rate; - unsigned int clk_ref_rate; - unsigned int mult_fact_100ns; - s32 ptp_max_adj; - u32 cdc_error_adj; - struct reset_control *stmmac_rst; - struct reset_control *stmmac_ahb_rst; - struct stmmac_axi *axi; - int has_gmac4; - bool has_sun8i; - bool tso_en; - int rss_en; - int mac_port_sel_speed; - bool en_tx_lpi_clockgating; - bool rx_clk_runs_in_lpi; - int has_xgmac; - bool vlan_fail_q_en; - u8 vlan_fail_q; - unsigned int eee_usecs_rate; - struct pci_dev *pdev; - int int_snapshot_num; - int ext_snapshot_num; - bool int_snapshot_en; - bool ext_snapshot_en; - bool multi_msi_en; - int msi_mac_vec; - int msi_wol_vec; - int msi_lpi_vec; - int msi_sfty_ce_vec; - int msi_sfty_ue_vec; - int msi_rx_base_vec; - int msi_tx_base_vec; - bool use_phy_wol; - bool sph_disable; - bool serdes_up_after_phy_linkup; - const struct dwmac4_addrs *dwmac4_addrs; - bool has_integrated_pcs; +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, }; -struct stmmac_mdio_bus_data { - unsigned int phy_mask; - unsigned int has_xpcs; - unsigned int xpcs_an_inband; - int *irqs; - int probed_phy_irq; - bool needs_reset; +enum { + SOCK_WAKE_IO = 0, + SOCK_WAKE_WAITD = 1, + SOCK_WAKE_SPACE = 2, + SOCK_WAKE_URG = 3, }; -enum stmmac_fpe_state { - FPE_STATE_OFF = 0, - FPE_STATE_CAPABLE = 1, - FPE_STATE_ENTERING_ON = 2, - FPE_STATE_ON = 3, +enum sock_type { + SOCK_STREAM = 1, + SOCK_DGRAM = 2, + SOCK_RAW = 3, + SOCK_RDM = 4, + SOCK_SEQPACKET = 5, + SOCK_DCCP = 6, + SOCK_PACKET = 10, }; -struct stmmac_fpe_cfg { - bool enable; - bool hs_enable; - enum stmmac_fpe_state lp_fpe_state; - enum stmmac_fpe_state lo_fpe_state; +enum sock_shutdown_cmd { + SHUT_RD = 0, + SHUT_WR = 1, + SHUT_RDWR = 2, }; -struct clocksource; +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 system_counterval_t { - u64 cycles; - struct clocksource *cs; - long: 32; +struct inet_skb_parm { + int iif; + struct ip_options opt; + u16 flags; + u16 frag_max_size; }; -struct stmmac_axi { - bool axi_lpi_en; - bool axi_xit_frm; - u32 axi_wr_osr_lmt; - u32 axi_rd_osr_lmt; - bool axi_kbbe; - u32 axi_blen[7]; - bool axi_fb; - bool axi_mb; - bool axi_rb; +struct inet6_skb_parm { + int iif; + __be16 ra; + __u16 dst0; + __u16 srcrt; + __u16 dst1; + __u16 lastopt; + __u16 nhoff; + __u16 flags; + __u16 dsthao; + __u16 frag_max_size; + __u16 srhoff; }; -struct dwmac4_addrs { - u32 dma_chan; - u32 dma_chan_offset; - u32 mtl_chan; - u32 mtl_chan_offset; - u32 mtl_ets_ctrl; - u32 mtl_ets_ctrl_offset; - u32 mtl_txq_weight; - u32 mtl_txq_weight_offset; - u32 mtl_send_slp_cred; - u32 mtl_send_slp_cred_offset; - u32 mtl_high_cred; - u32 mtl_high_cred_offset; - u32 mtl_low_cred; - u32 mtl_low_cred_offset; +struct sock_ee_data_rfc4884 { + __u16 len; + __u8 flags; + __u8 reserved; }; -struct stmmac_flow_entry { - unsigned long cookie; - unsigned long action; - u8 ip_proto; - int in_use; - int idx; - int is_l4; +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 stmmac_rfs_entry { - unsigned long cookie; - u16 etype; - int in_use; - int type; - int tc; +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 cpsw_sl_dev_id { - const char *device_id; - const u16 *regs; - const u32 control_features; - const u32 regs_offset; - const u32 idle_mask; +typedef u32 compat_uptr_t; + +typedef s32 compat_int_t; + +typedef u32 compat_size_t; + +typedef u32 compat_uint_t; + +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; }; -enum cpsw_sl_regs { - CPSW_SL_IDVER = 0, - CPSW_SL_MACCONTROL = 1, - CPSW_SL_MACSTATUS = 2, - CPSW_SL_SOFT_RESET = 3, - CPSW_SL_RX_MAXLEN = 4, - CPSW_SL_BOFFTEST = 5, - CPSW_SL_RX_PAUSE = 6, - CPSW_SL_TX_PAUSE = 7, - CPSW_SL_EMCONTROL = 8, - CPSW_SL_RX_PRI_MAP = 9, - CPSW_SL_TX_GAP = 10, +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 cpsw_sl { - struct device *dev; - void *sl_base; - const u16 *regs; - u32 control_features; - u32 idle_mask; +struct compat_mmsghdr { + struct compat_msghdr msg_hdr; + compat_uint_t msg_len; }; -struct usb_dynids { - spinlock_t lock; - struct list_head list; +struct mmsghdr { + struct user_msghdr msg_hdr; + unsigned int msg_len; }; -struct usbdrv_wrap { - struct device_driver driver; - int for_devices; +typedef u32 compat_ulong_t; + +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 usb_interface; +typedef u32 compat_caddr_t; -struct usb_device_id; +struct compat_if_settings { + unsigned int type; + unsigned int size; + compat_uptr_t ifs_ifsu; +}; -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 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; }; -enum usb_interface_condition { - USB_INTERFACE_UNBOUND = 0, - USB_INTERFACE_BINDING = 1, - USB_INTERFACE_BOUND = 2, - USB_INTERFACE_UNBINDING = 3, +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; + long: 32; }; -enum usb_wireless_status { - USB_WIRELESS_STATUS_NA = 0, - USB_WIRELESS_STATUS_DISCONNECTED = 1, - USB_WIRELESS_STATUS_CONNECTED = 2, +struct inet_cork_full { + struct inet_cork base; + struct flowi fl; }; -struct usb_host_interface; +struct ipv6_pinfo; -struct usb_interface_assoc_descriptor; +struct ip_options_rcu; -struct usb_interface { - struct usb_host_interface *altsetting; - struct usb_host_interface *cur_altsetting; - unsigned int num_altsetting; - struct usb_interface_assoc_descriptor *intf_assoc; - int minor; - enum usb_interface_condition condition; - unsigned int sysfs_files_created: 1; - unsigned int ep_devs_created: 1; - unsigned int unregistering: 1; - unsigned int needs_remote_wakeup: 1; - unsigned int needs_altsetting0: 1; - unsigned int needs_binding: 1; - unsigned int resetting_device: 1; - unsigned int authorized: 1; - enum usb_wireless_status wireless_status; - struct work_struct wireless_status_work; - struct device dev; - struct device *usb_dev; - struct work_struct reset_ws; +struct ip_mc_socklist; + +struct inet_sock { + struct sock sk; + struct ipv6_pinfo *pinet6; + unsigned long inet_flags; + __be32 inet_saddr; + __s16 uc_ttl; + __be16 inet_sport; + struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *inet_opt; + atomic_t inet_id; + __u8 tos; + __u8 min_ttl; + __u8 mc_ttl; + __u8 pmtudisc; + __u8 rcv_tos; + __u8 convert_csum; + int uc_index; + int mc_index; + __be32 mc_addr; + struct { + __u16 lo; + __u16 hi; + } local_port_range; + struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *mc_list; long: 32; + struct inet_cork_full cork; }; -struct usb_interface_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bInterfaceNumber; - __u8 bAlternateSetting; - __u8 bNumEndpoints; - __u8 bInterfaceClass; - __u8 bInterfaceSubClass; - __u8 bInterfaceProtocol; - __u8 iInterface; +struct in6_pktinfo { + struct in6_addr ipi6_addr; + int ipi6_ifindex; }; -struct usb_host_endpoint; +struct ipv6_txoptions; -struct usb_host_interface { - struct usb_interface_descriptor desc; - int extralen; - unsigned char *extra; - struct usb_host_endpoint *endpoint; - char *string; +struct inet6_cork { + struct ipv6_txoptions *opt; + u8 hop_limit; + u8 tclass; }; -struct usb_endpoint_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bEndpointAddress; - __u8 bmAttributes; - __le16 wMaxPacketSize; - __u8 bInterval; - __u8 bRefresh; - __u8 bSynchAddress; -} __attribute__((packed)); +struct ipv6_mc_socklist; -struct usb_ss_ep_comp_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bMaxBurst; - __u8 bmAttributes; - __le16 wBytesPerInterval; -}; +struct ipv6_ac_socklist; -struct usb_ssp_isoc_ep_comp_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wReseved; - __le32 dwBytesPerInterval; +struct ipv6_fl_socklist; + +struct ipv6_pinfo { + struct in6_addr saddr; + struct in6_pktinfo sticky_pktinfo; + const struct in6_addr *daddr_cache; + const struct in6_addr *saddr_cache; + __be32 flow_label; + __u32 frag_size; + s16 hop_limit; + u8 mcast_hops; + int ucast_oif; + int mcast_oif; + union { + struct { + __u16 srcrt: 1; + __u16 osrcrt: 1; + __u16 rxinfo: 1; + __u16 rxoinfo: 1; + __u16 rxhlim: 1; + __u16 rxohlim: 1; + __u16 hopopts: 1; + __u16 ohopopts: 1; + __u16 dstopts: 1; + __u16 odstopts: 1; + __u16 rxflow: 1; + __u16 rxtclass: 1; + __u16 rxpmtu: 1; + __u16 rxorigdstaddr: 1; + __u16 recvfragsize: 1; + } bits; + __u16 all; + } rxopt; + __u8 srcprefs; + __u8 pmtudisc; + __u8 min_hopcount; + __u8 tclass; + __be32 rcv_flowinfo; + __u32 dst_cookie; + struct ipv6_mc_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_mc_list; + struct ipv6_ac_socklist *ipv6_ac_list; + struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_fl_list; + struct ipv6_txoptions __attribute__((btf_type_tag("rcu"))) *opt; + struct sk_buff *pktoptions; + struct sk_buff *rxpmtu; + struct inet6_cork cork; }; -struct ep_device; +struct ip6_sf_socklist; -struct usb_host_endpoint { - struct usb_endpoint_descriptor desc; - struct usb_ss_ep_comp_descriptor ss_ep_comp; - struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp; - long: 0; - struct list_head urb_list; - void *hcpriv; - struct ep_device *ep_dev; - unsigned char *extra; - int extralen; - int enabled; - int streams; -} __attribute__((packed)); +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 usb_interface_assoc_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bFirstInterface; - __u8 bInterfaceCount; - __u8 bFunctionClass; - __u8 bFunctionSubClass; - __u8 bFunctionProtocol; - __u8 iFunction; +struct ip6_sf_socklist { + unsigned int sl_max; + unsigned int sl_count; + struct callback_head rcu; + struct in6_addr sl_addr[0]; }; -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 ipv6_ac_socklist { + struct in6_addr acl_addr; + int acl_ifindex; + struct ipv6_ac_socklist *acl_next; }; -struct usbnet; +struct ip6_flowlabel; -struct urb; +struct ipv6_fl_socklist { + struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *next; + struct ip6_flowlabel *fl; + struct callback_head rcu; +}; -struct driver_info { - char *description; - int flags; - int (*bind)(struct usbnet *, struct usb_interface *); - void (*unbind)(struct usbnet *, struct usb_interface *); - int (*reset)(struct usbnet *); - int (*stop)(struct usbnet *); - int (*check_connect)(struct usbnet *); - int (*manage_power)(struct usbnet *, int); - void (*status)(struct usbnet *, struct urb *); - int (*link_reset)(struct usbnet *); - int (*rx_fixup)(struct usbnet *, struct sk_buff *); - struct sk_buff * (*tx_fixup)(struct usbnet *, struct sk_buff *, gfp_t); - void (*recover)(struct usbnet *); - int (*early_init)(struct usbnet *); - void (*indication)(struct usbnet *, void *, int); - void (*set_rx_mode)(struct usbnet *); - int in; - int out; - unsigned long data; +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 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 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 usb_anchor { - struct list_head urb_list; - wait_queue_head_t wait; - spinlock_t lock; - atomic_t suspend_wakeups; - unsigned int poisoned: 1; +struct ipv6_opt_hdr { + __u8 nexthdr; + __u8 hdrlen; }; -struct usb_device; +struct ipv6_rt_hdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 type; + __u8 segments_left; +}; -struct usbnet { - struct usb_device *udev; - struct usb_interface *intf; - const struct driver_info *driver_info; - const char *driver_name; - void *driver_priv; - wait_queue_head_t wait; - struct mutex phy_mutex; - unsigned char suspend_count; - unsigned char pkt_cnt; - unsigned char pkt_err; - unsigned short rx_qlen; - unsigned short tx_qlen; - unsigned int can_dma_sg: 1; - unsigned int in; - unsigned int out; - struct usb_host_endpoint *status; - unsigned int maxpacket; - struct timer_list delay; - const char *padding_pkt; - struct net_device *net; - int msg_enable; - unsigned long data[5]; - u32 xid; - u32 hard_mtu; - size_t rx_urb_size; - struct mii_if_info mii; - long rx_speed; - long tx_speed; - struct sk_buff_head rxq; - struct sk_buff_head txq; - struct sk_buff_head done; - struct sk_buff_head rxq_pause; - struct urb *interrupt; - unsigned int interrupt_count; - struct mutex interrupt_mutex; - struct usb_anchor deferred; - struct tasklet_struct bh; - struct work_struct kevent; - unsigned long flags; +struct ip_options_rcu { + struct callback_head rcu; + struct ip_options opt; }; -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, +struct in_addr { + __be32 s_addr; }; -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, +struct ip_mreqn { + struct in_addr imr_multiaddr; + struct in_addr imr_address; + int imr_ifindex; }; -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 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 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 socket_alloc { + struct socket socket; + struct inode vfs_inode; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct wusb_dev; +struct sock_skb_cb { + u32 dropcount; +}; -struct usb2_lpm_parameters { - unsigned int besl; - int timeout; +struct __kernel_old_timeval { + __kernel_long_t tv_sec; + __kernel_long_t tv_usec; }; -struct usb3_lpm_parameters { - unsigned int mel; - unsigned int pel; - unsigned int sel; - int timeout; +typedef __kernel_long_t __kernel_old_time_t; + +struct __kernel_old_timespec { + __kernel_old_time_t tv_sec; + long tv_nsec; }; -struct usb_tt; +struct __kernel_sock_timeval { + __s64 tv_sec; + __s64 tv_usec; +}; -struct usb_bus; +struct scm_ts_pktinfo { + __u32 if_index; + __u32 pkt_length; + __u32 reserved[2]; +}; -struct usb_host_bos; +struct scm_timestamping_internal { + struct timespec64 ts[3]; +}; -struct usb_host_config; +typedef struct poll_table_struct poll_table; -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; - long: 32; - 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; - long: 32; +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 usb_devmap { - unsigned long devicemap[4]; +struct pseudo_fs_context { + const struct super_operations *ops; + const struct xattr_handler * const *xattr; + const struct dentry_operations *dops; + unsigned long magic; }; -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 used_address { + struct __kernel_sockaddr_storage name; + unsigned int name_len; }; -struct usb_bos_descriptor; +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 usb_ext_cap_descriptor; +struct rt6key { + struct in6_addr addr; + int plen; +}; -struct usb_ss_cap_descriptor; +struct rtable; -struct usb_ssp_cap_descriptor; +struct fnhe_hash_bucket; -struct usb_ss_container_id_descriptor; +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 usb_ptm_cap_descriptor; +struct rt6_exception_bucket; -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 fib6_nh { + struct fib_nh_common nh_common; + unsigned long last_probe; + struct rt6_info * __attribute__((btf_type_tag("percpu"))) *rt6i_pcpu; + struct rt6_exception_bucket __attribute__((btf_type_tag("rcu"))) *rt6i_exception_bucket; }; -struct usb_bos_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wTotalLength; - __u8 bNumDeviceCaps; -} __attribute__((packed)); +struct fib6_node; -struct usb_ext_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __le32 bmAttributes; -} __attribute__((packed)); +struct dst_metrics; -struct usb_ss_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bmAttributes; - __le16 wSpeedSupported; - __u8 bFunctionalitySupport; - __u8 bU1devExitLat; - __le16 bU2DevExitLat; -}; +struct nexthop; -struct usb_ssp_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bReserved; - __le32 bmAttributes; - __le16 wFunctionalitySupport; - __le16 wReserved; +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 { - __le32 legacy_padding; - struct { - struct {} __empty_bmSublinkSpeedAttr; - __le32 bmSublinkSpeedAttr[0]; - }; + 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 usb_ss_container_id_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bReserved; - __u8 ContainerID[16]; +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_node __attribute__((btf_type_tag("rcu"))) *subtree; + 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 usb_ptm_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; +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 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 dst_metrics { + u32 metrics[17]; + refcount_t refcnt; }; -struct usb_interface_cache { - unsigned int num_altsetting; - struct kref ref; - struct usb_host_interface altsetting[0]; +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; }; -typedef void (*usb_complete_t)(struct urb *); +struct fib_nh_exception; -struct usb_iso_packet_descriptor { - unsigned int offset; - unsigned int length; - unsigned int actual_length; - int status; +struct fnhe_hash_bucket { + struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *chain; }; -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 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 phylink_mac_ops { - void (*validate)(struct phylink_config *, unsigned long *, struct phylink_link_state *); - struct phylink_pcs * (*mac_select_pcs)(struct phylink_config *, phy_interface_t); - void (*mac_pcs_get_state)(struct phylink_config *, struct phylink_link_state *); - int (*mac_prepare)(struct phylink_config *, unsigned int, phy_interface_t); - void (*mac_config)(struct phylink_config *, unsigned int, const struct phylink_link_state *); - int (*mac_finish)(struct phylink_config *, unsigned int, phy_interface_t); - void (*mac_an_restart)(struct phylink_config *); - void (*mac_link_down)(struct phylink_config *, unsigned int, phy_interface_t); - void (*mac_link_up)(struct phylink_config *, struct phy_device *, unsigned int, phy_interface_t, int, int, bool, bool); +struct rt6_info { + struct dst_entry dst; + struct fib6_info __attribute__((btf_type_tag("rcu"))) *from; + int sernum; + struct rt6key rt6i_dst; + struct rt6key rt6i_src; + struct in6_addr rt6i_gateway; + struct inet6_dev *rt6i_idev; + u32 rt6i_flags; + unsigned short rt6i_nfheader_len; }; -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, +struct rt6_exception_bucket { + struct hlist_head chain; + int depth; }; -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 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; }; -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 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 { - MLO_PAUSE_NONE = 0, - MLO_PAUSE_RX = 1, - MLO_PAUSE_TX = 2, - MLO_PAUSE_TXRX_MASK = 3, - MLO_PAUSE_AN = 4, - MLO_AN_PHY = 0, - MLO_AN_FIXED = 1, - MLO_AN_INBAND = 2, - PHYLINK_PCS_NEG_NONE = 0, - PHYLINK_PCS_NEG_ENABLED = 16, - PHYLINK_PCS_NEG_OUTBAND = 32, - PHYLINK_PCS_NEG_INBAND = 64, - PHYLINK_PCS_NEG_INBAND_DISABLED = 64, - PHYLINK_PCS_NEG_INBAND_ENABLED = 80, - MAC_SYM_PAUSE = 1, - MAC_ASYM_PAUSE = 2, - MAC_10HD = 4, - MAC_10FD = 8, - MAC_10 = 12, - MAC_100HD = 16, - MAC_100FD = 32, - MAC_100 = 48, - MAC_1000HD = 64, - MAC_1000FD = 128, - MAC_1000 = 192, - MAC_2500FD = 256, - MAC_5000FD = 512, - MAC_10000FD = 1024, - MAC_20000FD = 2048, - MAC_25000FD = 4096, - MAC_40000FD = 8192, - MAC_50000FD = 16384, - MAC_56000FD = 32768, - MAC_100000FD = 65536, - MAC_200000FD = 131072, - MAC_400000FD = 262144, +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 asix_data { - u8 multi_filter[8]; - u8 mac_addr[6]; - u8 phymode; - u8 ledmode; - u8 res; +struct rtnexthop { + unsigned short rtnh_len; + unsigned char rtnh_flags; + unsigned char rtnh_hops; + int rtnh_ifindex; }; -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; +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 *, const struct genl_info *); + int (*reply_size)(const struct ethnl_req_info *, const struct ethnl_reply_data *); + int (*fill_reply)(struct sk_buff *, const struct ethnl_req_info *, const struct ethnl_reply_data *); + void (*cleanup_data)(struct ethnl_reply_data *); + int (*set_validate)(struct ethnl_req_info *, struct genl_info *); + int (*set)(struct ethnl_req_info *, struct genl_info *); }; -struct mii_ioctl_data { - __u16 phy_id; - __u16 reg_num; - __u16 val_in; - __u16 val_out; +struct ethnl_req_info { + struct net_device *dev; + netdevice_tracker dev_tracker; + u32 flags; }; -struct ethtool_cmd { - __u32 cmd; - __u32 supported; - __u32 advertising; - __u16 speed; - __u8 duplex; - __u8 port; - __u8 phy_address; - __u8 transceiver; - __u8 autoneg; - __u8 mdio_support; - __u32 maxtxpkt; - __u32 maxrxpkt; - __u16 speed_hi; - __u8 eth_tp_mdix; - __u8 eth_tp_mdix_ctrl; - __u32 lp_advertising; - __u32 reserved[2]; +struct ethnl_reply_data { + struct net_device *dev; }; -struct asix_rx_fixup_info { - struct sk_buff *ax_skb; - u32 header; - u16 remaining; - bool split_head; +struct genl_family; + +struct genlmsghdr; + +struct genl_info { + u32 snd_seq; + u32 snd_portid; + const struct genl_family *family; + const struct nlmsghdr *nlhdr; + struct genlmsghdr *genlhdr; + struct nlattr **attrs; + possible_net_t _net; + void *user_ptr[2]; + struct netlink_ext_ack *extack; }; -struct asix_common_private { - void (*resume)(struct usbnet *); - void (*suspend)(struct usbnet *); - int (*reset)(struct usbnet *, int); - u16 presvd_phy_advertise; - u16 presvd_phy_bmcr; - struct asix_rx_fixup_info rx_fixup_info; - struct mii_bus *mdio; - struct phy_device *phydev; - struct phy_device *phydev_int; - struct phylink *phylink; - struct phylink_config phylink_config; - u16 phy_addr; - bool embd_phy; - u8 chipcode; +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 ax88172_int_data { - __le16 res1; - u8 link; - __le16 res2; - u8 status; - __le16 res3; -} __attribute__((packed)); +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 onboard_hub_pdata { - unsigned long reset_us; +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; }; -enum usb3_link_state { - USB3_LPM_U0 = 0, - USB3_LPM_U1 = 1, - USB3_LPM_U2 = 2, - USB3_LPM_U3 = 3, +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; }; -enum usb_phy_type { - USB_PHY_TYPE_UNDEFINED = 0, - USB_PHY_TYPE_USB2 = 1, - USB_PHY_TYPE_USB3 = 2, +struct genl_multicast_group { + char name[16]; + u8 flags; + u8 cap_sys_admin: 1; }; -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 genlmsghdr { + __u8 cmd; + __u8 version; + __u16 reserved; }; -enum usb_otg_state { - OTG_STATE_UNDEFINED = 0, - OTG_STATE_B_IDLE = 1, - OTG_STATE_B_SRP_INIT = 2, - OTG_STATE_B_PERIPHERAL = 3, - OTG_STATE_B_WAIT_ACON = 4, - OTG_STATE_B_HOST = 5, - OTG_STATE_A_IDLE = 6, - OTG_STATE_A_WAIT_VRISE = 7, - OTG_STATE_A_WAIT_BCON = 8, - OTG_STATE_A_HOST = 9, - OTG_STATE_A_SUSPEND = 10, - OTG_STATE_A_PERIPHERAL = 11, - OTG_STATE_A_WAIT_VFALL = 12, - OTG_STATE_A_VBUS_ERR = 13, +enum { + 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 usb_charger_type { - UNKNOWN_TYPE = 0, - SDP_TYPE = 1, - DCP_TYPE = 2, - CDP_TYPE = 3, - ACA_TYPE = 4, +enum ethtool_multicast_groups { + ETHNL_MCGRP_MONITOR = 0, }; -enum usb_charger_state { - USB_CHARGER_DEFAULT = 0, - USB_CHARGER_PRESENT = 1, - USB_CHARGER_ABSENT = 2, +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 usb_dev_authorize_policy { - USB_DEVICE_AUTHORIZE_NONE = 0, - USB_DEVICE_AUTHORIZE_ALL = 1, - USB_DEVICE_AUTHORIZE_INTERNAL = 2, +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, }; -struct pdev_list_entry { - struct platform_device *pdev; - struct list_head node; +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 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 scm_creds { + u32 pid; + kuid_t uid; + kgid_t gid; }; -struct hc_driver; +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 usb_phy; +struct ethnl_dump_ctx { + const struct ethnl_request_ops *ops; + struct ethnl_req_info *req_info; + struct ethnl_reply_data *reply_data; + unsigned long pos_ifindex; +}; -struct usb_phy_roothub; +struct genl_dumpit_info { + struct genl_split_ops op; + struct genl_info info; +}; -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 { + 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 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 eeprom_req_info { + struct ethnl_req_info base; + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; }; -struct hc_driver { - const char *description; - const char *product_desc; - size_t hcd_priv_size; - irqreturn_t (*irq)(struct usb_hcd *); - int flags; - int (*reset)(struct usb_hcd *); - int (*start)(struct usb_hcd *); - int (*pci_suspend)(struct usb_hcd *, bool); - int (*pci_resume)(struct usb_hcd *, pm_message_t); - int (*pci_poweroff_late)(struct usb_hcd *, bool); - void (*stop)(struct usb_hcd *); - void (*shutdown)(struct usb_hcd *); - int (*get_frame_number)(struct usb_hcd *); - int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t); - int (*urb_dequeue)(struct usb_hcd *, struct urb *, int); - int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t); - void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *); - void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *); - void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *); - int (*hub_status_data)(struct usb_hcd *, char *); - int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); - int (*bus_suspend)(struct usb_hcd *); - int (*bus_resume)(struct usb_hcd *); - int (*start_port_reset)(struct usb_hcd *, unsigned int); - unsigned long (*get_resuming_ports)(struct usb_hcd *); - void (*relinquish_port)(struct usb_hcd *, int); - int (*port_handed_over)(struct usb_hcd *, int); - void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *); - int (*alloc_dev)(struct usb_hcd *, struct usb_device *); - void (*free_dev)(struct usb_hcd *, struct usb_device *); - int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t); - int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t); - int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); - int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); - int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); - void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); - int (*address_device)(struct usb_hcd *, struct usb_device *); - 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 eeprom_reply_data { + struct ethnl_reply_data base; + u32 length; + u8 *data; }; -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; +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, }; -struct usb_otg; - -struct usb_phy_io_ops; +struct ipv4_addr_key { + __be32 addr; + int vif; +}; -struct extcon_dev; +struct inetpeer_addr { + union { + struct ipv4_addr_key a4; + struct in6_addr a6; + u32 key[4]; + }; + __u16 family; +}; -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 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 usb_gadget; +typedef void (*rcu_callback_t)(struct callback_head *); -struct usb_otg { - u8 default_a; - struct phy *phy; - struct usb_phy *usb_phy; - struct usb_bus *host; - struct usb_gadget *gadget; - enum usb_otg_state state; - int (*set_host)(struct usb_otg *, struct usb_bus *); - int (*set_peripheral)(struct usb_otg *, struct usb_gadget *); - int (*set_vbus)(struct usb_otg *, bool); - int (*start_srp)(struct usb_otg *); - int (*start_hnp)(struct usb_otg *); +struct 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 usb_phy_io_ops { - int (*read)(struct usb_phy *, u32); - int (*write)(struct usb_phy *, u32, u32); +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 reg_field { - unsigned int reg; - unsigned int lsb; - unsigned int msb; - unsigned int id_size; - unsigned int id_offset; +struct net_offload { + struct offload_callbacks callbacks; + unsigned int flags; }; -struct isp1760_memory_layout { - unsigned int blocks[3]; - unsigned int blocks_size[3]; - unsigned int slot_num; - unsigned int payload_blocks; - unsigned int payload_area_size; +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; }; -enum isp1760_ctrl_state { - ISP1760_CTRL_SETUP = 0, - ISP1760_CTRL_DATA_IN = 1, - ISP1760_CTRL_DATA_OUT = 2, - ISP1760_CTRL_STATUS = 3, +struct ip_sf_list; + +struct ip_mc_list { + struct in_device *interface; + __be32 multiaddr; + unsigned int sfmode; + struct ip_sf_list *sources; + struct ip_sf_list *tomb; + unsigned long sfcount[2]; + union { + struct ip_mc_list *next; + struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *next_rcu; + }; + struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *next_hash; + struct timer_list timer; + int users; + refcount_t refcnt; + spinlock_t lock; + char tm_running; + char reporter; + char unsolicit_count; + char loaded; + unsigned char gsquery; + unsigned char crcount; + struct callback_head rcu; }; -enum isp176x_host_controller_fields { - PORT_OWNER = 0, - PORT_POWER = 1, - PORT_LSTATUS = 2, - PORT_RESET = 3, - PORT_SUSPEND = 4, - PORT_RESUME = 5, - PORT_PE = 6, - PORT_CSC = 7, - PORT_CONNECT = 8, - HCS_PPC = 9, - HCS_N_PORTS = 10, - HCC_ISOC_CACHE = 11, - HCC_ISOC_THRES = 12, - CMD_LRESET = 13, - CMD_RESET = 14, - CMD_RUN = 15, - STS_PCD = 16, - HC_FRINDEX = 17, - FLAG_CF = 18, - HC_ISO_PTD_DONEMAP = 19, - HC_ISO_PTD_SKIPMAP = 20, - HC_ISO_PTD_LASTPTD = 21, - HC_INT_PTD_DONEMAP = 22, - HC_INT_PTD_SKIPMAP = 23, - HC_INT_PTD_LASTPTD = 24, - HC_ATL_PTD_DONEMAP = 25, - HC_ATL_PTD_SKIPMAP = 26, - HC_ATL_PTD_LASTPTD = 27, - ALL_ATX_RESET = 28, - HW_ANA_DIGI_OC = 29, - HW_DEV_DMA = 30, - HW_COMN_IRQ = 31, - HW_COMN_DMA = 32, - HW_DATA_BUS_WIDTH = 33, - HW_DACK_POL_HIGH = 34, - HW_DREQ_POL_HIGH = 35, - HW_INTR_HIGH_ACT = 36, - HW_INTF_LOCK = 37, - HW_INTR_EDGE_TRIG = 38, - HW_GLOBAL_INTR_EN = 39, - HC_CHIP_ID_HIGH = 40, - HC_CHIP_ID_LOW = 41, - HC_CHIP_REV = 42, - HC_SCRATCH = 43, - SW_RESET_RESET_ATX = 44, - SW_RESET_RESET_HC = 45, - SW_RESET_RESET_ALL = 46, - ISO_BUF_FILL = 47, - INT_BUF_FILL = 48, - ATL_BUF_FILL = 49, - MEM_BANK_SEL = 50, - MEM_START_ADDR = 51, - HC_DATA = 52, - HC_INTERRUPT = 53, - HC_INT_IRQ_ENABLE = 54, - HC_ATL_IRQ_ENABLE = 55, - HC_ISO_IRQ_MASK_OR = 56, - HC_INT_IRQ_MASK_OR = 57, - HC_ATL_IRQ_MASK_OR = 58, - HC_ISO_IRQ_MASK_AND = 59, - HC_INT_IRQ_MASK_AND = 60, - HC_ATL_IRQ_MASK_AND = 61, - HW_OTG_DISABLE = 62, - HW_SW_SEL_HC_DC = 63, - HW_VBUS_DRV = 64, - HW_SEL_CP_EXT = 65, - HW_DM_PULLDOWN = 66, - HW_DP_PULLDOWN = 67, - HW_DP_PULLUP = 68, - HW_HC_2_DIS = 69, - HW_OTG_DISABLE_CLEAR = 70, - HW_SW_SEL_HC_DC_CLEAR = 71, - HW_VBUS_DRV_CLEAR = 72, - HW_SEL_CP_EXT_CLEAR = 73, - HW_DM_PULLDOWN_CLEAR = 74, - HW_DP_PULLDOWN_CLEAR = 75, - HW_DP_PULLUP_CLEAR = 76, - HW_HC_2_DIS_CLEAR = 77, - HC_FIELD_MAX = 78, +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; }; -enum isp176x_device_controller_fields { - DC_DEVEN = 0, - DC_DEVADDR = 1, - DC_VBUSSTAT = 2, - DC_SFRESET = 3, - DC_GLINTENA = 4, - DC_CDBGMOD_ACK = 5, - DC_DDBGMODIN_ACK = 6, - DC_DDBGMODOUT_ACK = 7, - DC_INTPOL = 8, - DC_IEPRXTX_7 = 9, - DC_IEPRXTX_6 = 10, - DC_IEPRXTX_5 = 11, - DC_IEPRXTX_4 = 12, - DC_IEPRXTX_3 = 13, - DC_IEPRXTX_2 = 14, - DC_IEPRXTX_1 = 15, - DC_IEPRXTX_0 = 16, - DC_IEP0SETUP = 17, - DC_IEVBUS = 18, - DC_IEHS_STA = 19, - DC_IERESM = 20, - DC_IESUSP = 21, - DC_IEBRST = 22, - DC_EP0SETUP = 23, - DC_ENDPIDX = 24, - DC_EPDIR = 25, - DC_CLBUF = 26, - DC_VENDP = 27, - DC_DSEN = 28, - DC_STATUS = 29, - DC_STALL = 30, - DC_BUFLEN = 31, - DC_FFOSZ = 32, - DC_EPENABLE = 33, - DC_ENDPTYP = 34, - DC_FRAMENUM = 35, - DC_UFRAMENUM = 36, - DC_CHIP_ID_HIGH = 37, - DC_CHIP_ID_LOW = 38, - DC_SCRATCH = 39, - DC_FIELD_MAX = 40, +struct devinet_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table devinet_vars[34]; }; -struct isp1760_memory_chunk { - unsigned int start; - unsigned int size; - unsigned int free; +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 *); }; -struct regmap_field; +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 isp1760_slotinfo; +enum { + RTN_UNSPEC = 0, + RTN_UNICAST = 1, + RTN_LOCAL = 2, + RTN_BROADCAST = 3, + RTN_ANYCAST = 4, + RTN_MULTICAST = 5, + RTN_BLACKHOLE = 6, + RTN_UNREACHABLE = 7, + RTN_PROHIBIT = 8, + RTN_THROW = 9, + RTN_NAT = 10, + RTN_XRESOLVE = 11, + __RTN_MAX = 12, +}; -struct isp1760_hcd { - struct usb_hcd *hcd; - void *base; - struct regmap *regs; - struct regmap_field *fields[78]; - bool is_isp1763; - const struct isp1760_memory_layout *memory_layout; - spinlock_t lock; - struct isp1760_slotinfo *atl_slots; - int atl_done_map; - struct isp1760_slotinfo *int_slots; - int int_done_map; - struct isp1760_memory_chunk memory_pool[56]; - struct list_head qh_list[3]; - unsigned int periodic_size; - unsigned int i_thresh; - unsigned long reset_done; - unsigned long next_statechange; +enum rt_scope_t { + RT_SCOPE_UNIVERSE = 0, + RT_SCOPE_SITE = 200, + RT_SCOPE_LINK = 253, + RT_SCOPE_HOST = 254, + RT_SCOPE_NOWHERE = 255, }; -struct isp1760_qh; +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, +}; -struct isp1760_qtd; +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, +}; -struct isp1760_slotinfo { - struct isp1760_qh *qh; - struct isp1760_qtd *qtd; - unsigned long timestamp; +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, }; -struct usb_udc; +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, +}; -struct usb_gadget_ops; +enum { + NEIGH_VAR_MCAST_PROBES = 0, + NEIGH_VAR_UCAST_PROBES = 1, + NEIGH_VAR_APP_PROBES = 2, + NEIGH_VAR_MCAST_REPROBES = 3, + NEIGH_VAR_RETRANS_TIME = 4, + NEIGH_VAR_BASE_REACHABLE_TIME = 5, + NEIGH_VAR_DELAY_PROBE_TIME = 6, + NEIGH_VAR_INTERVAL_PROBE_TIME_MS = 7, + NEIGH_VAR_GC_STALETIME = 8, + NEIGH_VAR_QUEUE_LEN_BYTES = 9, + NEIGH_VAR_PROXY_QLEN = 10, + NEIGH_VAR_ANYCAST_DELAY = 11, + NEIGH_VAR_PROXY_DELAY = 12, + NEIGH_VAR_LOCKTIME = 13, + NEIGH_VAR_QUEUE_LEN = 14, + NEIGH_VAR_RETRANS_TIME_MS = 15, + NEIGH_VAR_BASE_REACHABLE_TIME_MS = 16, + NEIGH_VAR_GC_INTERVAL = 17, + NEIGH_VAR_GC_THRESH1 = 18, + NEIGH_VAR_GC_THRESH2 = 19, + NEIGH_VAR_GC_THRESH3 = 20, + NEIGH_VAR_MAX = 21, +}; -struct usb_ep; +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, +}; -struct usb_otg_caps; +enum { + IFLA_INET_UNSPEC = 0, + IFLA_INET_CONF = 1, + __IFLA_INET_MAX = 2, +}; -struct usb_gadget { - struct work_struct work; - struct usb_udc *udc; - const struct usb_gadget_ops *ops; - struct usb_ep *ep0; - struct list_head ep_list; - enum usb_device_speed speed; - enum usb_device_speed max_speed; - enum usb_ssp_rate ssp_rate; - enum usb_ssp_rate max_ssp_rate; - enum usb_device_state state; - const char *name; - long: 32; - struct device dev; - unsigned int isoch_delay; - unsigned int out_epnum; - unsigned int in_epnum; - unsigned int mA; - struct usb_otg_caps *otg_caps; - unsigned int sg_supported: 1; - unsigned int is_otg: 1; - unsigned int is_a_peripheral: 1; - unsigned int b_hnp_enable: 1; - unsigned int a_hnp_support: 1; - unsigned int a_alt_hnp_support: 1; - unsigned int hnp_polling_support: 1; - unsigned int host_request_flag: 1; - unsigned int quirk_ep_out_aligned_size: 1; - unsigned int quirk_altset_not_supp: 1; - unsigned int quirk_stall_not_supp: 1; - unsigned int quirk_zlp_not_supp: 1; - unsigned int quirk_avoids_skb_reserve: 1; - unsigned int is_selfpowered: 1; - unsigned int deactivated: 1; - unsigned int connected: 1; - unsigned int lpm_capable: 1; - unsigned int wakeup_capable: 1; - unsigned int wakeup_armed: 1; - int irq; - int id_number; +struct sockaddr_in { + __kernel_sa_family_t sin_family; + __be16 sin_port; + struct in_addr sin_addr; + unsigned char __pad[8]; }; -struct usb_ep_caps { - unsigned int type_control: 1; - unsigned int type_iso: 1; - unsigned int type_bulk: 1; - unsigned int type_int: 1; - unsigned int dir_in: 1; - unsigned int dir_out: 1; +struct fib_table { + struct hlist_node tb_hlist; + u32 tb_id; + int tb_num_default; + struct callback_head rcu; + unsigned long *tb_data; + unsigned long __data[0]; }; -struct usb_ep_ops; +struct fib_info; -struct usb_ep { - void *driver_data; - const char *name; - const struct usb_ep_ops *ops; - struct list_head ep_list; - struct usb_ep_caps caps; - bool claimed; - bool enabled; - unsigned int maxpacket: 16; - unsigned int maxpacket_limit: 16; - unsigned int max_streams: 16; - unsigned int mult: 2; - unsigned int maxburst: 5; - u8 address; - const struct usb_endpoint_descriptor *desc; - const struct usb_ss_ep_comp_descriptor *comp_desc; +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 isp1760_udc; +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 isp1760_ep { - struct isp1760_udc *udc; - struct usb_ep ep; - struct list_head queue; - unsigned int addr; - unsigned int maxpacket; - char name[7]; - const struct usb_endpoint_descriptor *desc; - bool rx_pending; - bool halted; - bool wedged; +struct fib_info { + struct hlist_node fib_hash; + struct hlist_node fib_lhash; + struct list_head nh_list; + struct net *fib_net; + refcount_t fib_treeref; + refcount_t fib_clntref; + unsigned int fib_flags; + unsigned char fib_dead; + unsigned char fib_protocol; + unsigned char fib_scope; + unsigned char fib_type; + __be32 fib_prefsrc; + u32 fib_tb_id; + u32 fib_priority; + struct dst_metrics *fib_metrics; + int fib_nhs; + bool fib_nh_is_v6; + bool nh_updated; + bool pfsrc_removed; + struct nexthop *nh; + struct callback_head rcu; + struct fib_nh fib_nh[0]; }; -struct isp1760_device; +typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, struct netlink_ext_ack *); -struct usb_gadget_driver; +typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *); -struct isp1760_udc { - struct isp1760_device *isp; - int irq; - char *irqname; - struct regmap *regs; - struct regmap_field *fields[40]; - struct usb_gadget_driver *driver; - long: 32; - struct usb_gadget gadget; - spinlock_t lock; - struct timer_list vbus_timer; - struct isp1760_ep ep[15]; - enum isp1760_ctrl_state ep0_state; - u8 ep0_dir; - u16 ep0_length; - bool connected; - bool is_isp1763; - unsigned int devstatus; +struct ifaddrmsg { + __u8 ifa_family; + __u8 ifa_prefixlen; + __u8 ifa_flags; + __u8 ifa_scope; + __u32 ifa_index; }; -struct isp1760_device { - struct device *dev; - unsigned int devflags; - struct gpio_desc *rst_gpio; - struct isp1760_hcd hcd; - long: 32; - struct isp1760_udc udc; +struct ifa_cacheinfo { + __u32 ifa_prefered; + __u32 ifa_valid; + __u32 cstamp; + __u32 tstamp; }; -struct usb_ctrlrequest; - -struct usb_gadget_driver { - char *function; - enum usb_device_speed max_speed; - int (*bind)(struct usb_gadget *, struct usb_gadget_driver *); - void (*unbind)(struct usb_gadget *); - int (*setup)(struct usb_gadget *, const struct usb_ctrlrequest *); - void (*disconnect)(struct usb_gadget *); - void (*suspend)(struct usb_gadget *); - void (*resume)(struct usb_gadget *); - void (*reset)(struct usb_gadget *); - struct device_driver driver; - char *udc_name; - unsigned int match_existing_only: 1; - bool is_bound: 1; +struct inet_fill_args { + u32 portid; + u32 seq; + int event; + unsigned int flags; + int netnsid; + int ifindex; }; -struct usb_dcd_config_params; +struct netconfmsg { + __u8 ncm_family; +}; -struct usb_gadget_ops { - int (*get_frame)(struct usb_gadget *); - int (*wakeup)(struct usb_gadget *); - int (*func_wakeup)(struct usb_gadget *, int); - int (*set_remote_wakeup)(struct usb_gadget *, int); - int (*set_selfpowered)(struct usb_gadget *, int); - int (*vbus_session)(struct usb_gadget *, int); - int (*vbus_draw)(struct usb_gadget *, unsigned int); - int (*pullup)(struct usb_gadget *, int); - int (*ioctl)(struct usb_gadget *, unsigned int, unsigned long); - void (*get_config_params)(struct usb_gadget *, struct usb_dcd_config_params *); - int (*udc_start)(struct usb_gadget *, struct usb_gadget_driver *); - int (*udc_stop)(struct usb_gadget *); - void (*udc_set_speed)(struct usb_gadget *, enum usb_device_speed); - void (*udc_set_ssp_rate)(struct usb_gadget *, enum usb_ssp_rate); - void (*udc_async_callbacks)(struct usb_gadget *, bool); - struct usb_ep * (*match_ep)(struct usb_gadget *, struct usb_endpoint_descriptor *, struct usb_ss_ep_comp_descriptor *); - int (*check_config)(struct usb_gadget *); +struct in_validator_info { + __be32 ivi_addr; + struct in_device *ivi_dev; + struct netlink_ext_ack *extack; }; -struct usb_dcd_config_params { - __u8 bU1devExitLat; - __le16 bU2DevExitLat; - __u8 besl_baseline; - __u8 besl_deep; +struct inet_ehash_bucket; + +struct inet_bind_hashbucket; + +struct inet_listen_hashbucket; + +struct inet_hashinfo { + struct inet_ehash_bucket *ehash; + spinlock_t *ehash_locks; + unsigned int ehash_mask; + unsigned int ehash_locks_mask; + struct kmem_cache *bind_bucket_cachep; + struct inet_bind_hashbucket *bhash; + struct kmem_cache *bind2_bucket_cachep; + struct inet_bind_hashbucket *bhash2; + unsigned int bhash_size; + unsigned int lhash2_mask; + struct inet_listen_hashbucket *lhash2; + bool pernet; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct usb_request; +struct hlist_nulls_head { + struct hlist_nulls_node *first; +}; -struct usb_ep_ops { - int (*enable)(struct usb_ep *, const struct usb_endpoint_descriptor *); - int (*disable)(struct usb_ep *); - void (*dispose)(struct usb_ep *); - struct usb_request * (*alloc_request)(struct usb_ep *, gfp_t); - void (*free_request)(struct usb_ep *, struct usb_request *); - int (*queue)(struct usb_ep *, struct usb_request *, gfp_t); - int (*dequeue)(struct usb_ep *, struct usb_request *); - int (*set_halt)(struct usb_ep *, int); - int (*set_wedge)(struct usb_ep *); - int (*fifo_status)(struct usb_ep *); - void (*fifo_flush)(struct usb_ep *); +struct inet_ehash_bucket { + struct hlist_nulls_head chain; }; -struct usb_request { - void *buf; - unsigned int length; - dma_addr_t dma; - struct scatterlist *sg; - unsigned int num_sgs; - unsigned int num_mapped_sgs; - unsigned int stream_id: 16; - unsigned int is_last: 1; - unsigned int no_interrupt: 1; - unsigned int zero: 1; - unsigned int short_not_ok: 1; - unsigned int dma_mapped: 1; - void (*complete)(struct usb_ep *, struct usb_request *); - void *context; - struct list_head list; - unsigned int frame_number; - int status; - unsigned int actual; +struct inet_bind_hashbucket { + spinlock_t lock; + struct hlist_head chain; }; -struct usb_ctrlrequest { - __u8 bRequestType; - __u8 bRequest; - __le16 wValue; - __le16 wIndex; - __le16 wLength; +struct inet_listen_hashbucket { + spinlock_t lock; + struct hlist_nulls_head nulls_head; }; -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 ack_sample { + u32 pkts_acked; + s32 rtt_us; + u32 in_flight; }; -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 s3_save { - u32 command; - u32 dev_nt; - u64 dcbaa_ptr; - u32 config_reg; +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; long: 32; }; -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 sk_psock_progs { + struct bpf_prog *msg_parser; + struct bpf_prog *stream_parser; + struct bpf_prog *stream_verdict; + struct bpf_prog *skb_verdict; }; -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 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; + long: 32; }; -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 strparser; -struct xhci_command; +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 xhci_scratchpad; +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 xhci_virt_device; +struct sk_psock_work_state { + u32 len; + u32 off; +}; -struct xhci_root_port_bw_info; +struct sk_msg; -struct xhci_port_cap; +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; + long: 32; + 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 delayed_work work; + struct sock *sk_pair; + struct rcu_work rwork; + long: 32; +}; -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 sk_msg_sg { + u32 start; + u32 curr; + u32 end; + u32 size; + u32 copybreak; + unsigned long copy[1]; + struct scatterlist data[19]; }; -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 sk_msg { + struct sk_msg_sg sg; + void *data; + void *data_end; + u32 apply_bytes; + u32 cork_bytes; + u32 flags; + struct sk_buff *skb; + struct sock *sk_redir; + struct sock *sk; + struct list_head list; }; -struct 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]; +enum { + TCP_BPF_IPV4 = 0, + TCP_BPF_IPV6 = 1, + TCP_BPF_NUM_PROTS = 2, }; -struct xhci_intr_reg { - __le32 irq_pending; - __le32 irq_control; - __le32 erst_size; - __le32 rsvd; - __le64 erst_base; - __le64 erst_dequeue; +enum { + TCP_BPF_BASE = 0, + TCP_BPF_TX = 1, + TCP_BPF_RX = 2, + TCP_BPF_TXRX = 3, + TCP_BPF_NUM_CFGS = 4, }; -struct xhci_run_regs { - __le32 microframe_index; - __le32 rsvd[7]; - struct xhci_intr_reg ir_set[128]; +enum sk_psock_state_bits { + SK_PSOCK_TX_ENABLED = 0, + SK_PSOCK_RX_STRP_ENABLED = 1, }; -struct xhci_doorbell_array { - __le32 doorbell[256]; +enum __sk_action { + __SK_DROP = 0, + __SK_PASS = 1, + __SK_REDIRECT = 2, + __SK_NONE = 3, }; -struct xhci_device_context_array { - __le64 dev_context_ptrs[256]; - dma_addr_t dma; - long: 32; +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 xhci_erst_entry; +enum { + INET_FLAGS_PKTINFO = 0, + INET_FLAGS_TTL = 1, + INET_FLAGS_TOS = 2, + INET_FLAGS_RECVOPTS = 3, + INET_FLAGS_RETOPTS = 4, + INET_FLAGS_PASSSEC = 5, + INET_FLAGS_ORIGDSTADDR = 6, + INET_FLAGS_CHECKSUM = 7, + INET_FLAGS_RECVFRAGSIZE = 8, + INET_FLAGS_RECVERR = 9, + INET_FLAGS_RECVERR_RFC4884 = 10, + INET_FLAGS_FREEBIND = 11, + INET_FLAGS_HDRINCL = 12, + INET_FLAGS_MC_LOOP = 13, + INET_FLAGS_MC_ALL = 14, + INET_FLAGS_TRANSPARENT = 15, + INET_FLAGS_IS_ICSK = 16, + INET_FLAGS_NODEFRAG = 17, + INET_FLAGS_BIND_ADDRESS_NO_PORT = 18, + INET_FLAGS_DEFER_CONNECT = 19, + INET_FLAGS_MC6_LOOP = 20, + INET_FLAGS_RECVERR6_RFC4884 = 21, + INET_FLAGS_MC6_ALL = 22, + INET_FLAGS_AUTOFLOWLABEL_SET = 23, + INET_FLAGS_AUTOFLOWLABEL = 24, + INET_FLAGS_DONTFRAG = 25, + INET_FLAGS_RECVERR6 = 26, + INET_FLAGS_REPFLOW = 27, + INET_FLAGS_RTALERT_ISOLATE = 28, + INET_FLAGS_SNDFLOW = 29, +}; -struct xhci_erst { - struct xhci_erst_entry *entries; - unsigned int num_entries; - dma_addr_t erst_dma_addr; - unsigned int erst_size; +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 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; +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 xhci_segment; +struct inet_bind_bucket; -union xhci_trb; +struct inet_bind2_bucket; -struct xhci_ring { - struct xhci_segment *first_seg; - struct xhci_segment *last_seg; - union xhci_trb *enqueue; - struct xhci_segment *enq_seg; - union xhci_trb *dequeue; - struct xhci_segment *deq_seg; - struct list_head td_list; - u32 cycle_state; - unsigned int stream_id; - unsigned int num_segs; - unsigned int num_trbs_free; - unsigned int bounce_buf_len; - enum xhci_ring_type type; - bool last_td_was_short; - struct xarray *trb_address_map; -}; +struct inet_connection_sock_af_ops; -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 tcp_ulp_ops; -struct xhci_link_trb { - __le64 segment_ptr; - __le32 intr_target; - __le32 control; +struct inet_connection_sock { + struct inet_sock icsk_inet; + struct request_sock_queue icsk_accept_queue; + struct inet_bind_bucket *icsk_bind_hash; + struct inet_bind2_bucket *icsk_bind2_hash; + unsigned long icsk_timeout; + struct timer_list icsk_retransmit_timer; + struct timer_list icsk_delack_timer; + __u32 icsk_rto; + __u32 icsk_rto_min; + __u32 icsk_delack_max; + __u32 icsk_pmtu_cookie; + const struct tcp_congestion_ops *icsk_ca_ops; + const struct inet_connection_sock_af_ops *icsk_af_ops; + const struct tcp_ulp_ops *icsk_ulp_ops; + void __attribute__((btf_type_tag("rcu"))) *icsk_ulp_data; + void (*icsk_clean_acked)(struct sock *, u32); + unsigned int (*icsk_sync_mss)(struct sock *, u32); + __u8 icsk_ca_state: 5; + __u8 icsk_ca_initialized: 1; + __u8 icsk_ca_setsockopt: 1; + __u8 icsk_ca_dst_locked: 1; + __u8 icsk_retransmits; + __u8 icsk_pending; + __u8 icsk_backoff; + __u8 icsk_syn_retries; + __u8 icsk_probes_out; + __u16 icsk_ext_hdr_len; + struct { + __u8 pending; + __u8 quick; + __u8 pingpong; + __u8 retry; + __u32 ato: 8; + __u32 lrcv_flowlabel: 20; + __u32 unused: 4; + unsigned long timeout; + __u32 lrcvtime; + __u16 last_seg_size; + __u16 rcv_mss; + } icsk_ack; + struct { + int search_high; + int search_low; + u32 probe_size: 31; + u32 enabled: 1; + u32 probe_timestamp; + } icsk_mtup; + u32 icsk_probes_tstamp; + u32 icsk_user_timeout; + long: 32; + u64 icsk_ca_priv[13]; }; -struct xhci_transfer_event { - __le64 buffer; - __le32 transfer_len; - __le32 flags; +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 xhci_event_cmd { - __le64 cmd_trb; - __le32 status; - __le32 flags; +struct minmax_sample { + u32 t; + u32 v; }; -struct xhci_generic_trb { - __le32 field[4]; +struct minmax { + struct minmax_sample s[3]; }; -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 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 xhci_erst_entry { - __le64 seg_addr; - __le32 seg_size; - __le32 rsvd; +struct tcp_sack_block { + u32 start_seq; + u32 end_seq; }; -struct xhci_container_ctx; +struct tcp_fastopen_request; -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 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; + u8 scaling_ratio; + long: 32; + struct tcp_rack rack; + u16 advmss; + u8 compressed_ack; + u8 dup_ack_counter: 2; + u8 tlp_retrans: 1; + u8 tcp_usec_ts: 1; + u8 unused: 4; + 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; + long: 32; + u64 bytes_retrans; + u32 total_retrans; + u32 rto_stamp; + u16 total_rto; + u16 total_rto_recoveries; + u32 total_rto_time; + u32 urg_seq; + unsigned int keepalive_time; + unsigned int keepalive_intvl; + int linger2; + u8 bpf_sock_ops_cb_flags; + u8 bpf_chg_cc_inprogress: 1; + u16 timeout_rehash; + u32 rcv_ooopack; + u32 rcv_rtt_last_tsecr; + long: 32; + 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; + struct tcp_fastopen_request *fastopen_req; + struct request_sock __attribute__((btf_type_tag("rcu"))) *fastopen_rsk; + struct saved_syn *saved_syn; + long: 32; }; -struct xhci_container_ctx { - unsigned int type; - int size; - u8 *bytes; - dma_addr_t dma; +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 xhci_scratchpad { - u64 *sp_array; - dma_addr_t sp_dma; - void **sp_buffers; +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 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 inet_connection_sock_af_ops { + int (*queue_xmit)(struct sock *, struct sk_buff *, struct flowi *); + void (*send_check)(struct sock *, struct sk_buff *); + int (*rebuild_header)(struct sock *); + void (*sk_rx_dst_set)(struct sock *, const struct sk_buff *); + int (*conn_request)(struct sock *, struct sk_buff *); + struct sock * (*syn_recv_sock)(const struct sock *, struct sk_buff *, struct request_sock *, struct dst_entry *, struct request_sock *, bool *); + u16 net_header_len; + u16 sockaddr_len; + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); + void (*addr2sockaddr)(struct sock *, struct sockaddr *); + void (*mtu_reduced)(struct sock *); }; -struct xhci_stream_info; +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 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 tcp_fastopen_cookie { + __le64 val[2]; + s8 len; + bool exp; + long: 32; }; -struct xhci_interval_bw_table; +struct tcp_fastopen_request { + struct tcp_fastopen_cookie cookie; + struct msghdr *data; + size_t size; + int copied; + struct ubuf_info *uarg; +}; -struct xhci_tt_bw_info; +struct crypto_wait { + struct completion completion; + int err; +}; -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 tx_work { + struct delayed_work work; + struct sock *sk; }; -struct xhci_stream_ctx; +struct tls_rec; -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 crypto_aead; + +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 xhci_stream_ctx { - __le64 stream_ring; - __le32 reserved[2]; +struct crypto_aead { + unsigned int authsize; + unsigned int reqsize; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct crypto_tfm base; }; -struct xhci_interval_bw { - unsigned int num_packets; - struct list_head endpoints; - unsigned int overhead[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; + long: 32; + union { + struct { + __u32 is_app_limited: 1; + __u32 delivered_ce: 20; + __u32 unused: 11; + __u32 delivered; + u64 first_tx_mstamp; + u64 delivered_mstamp; + } tx; + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + }; }; -struct 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 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 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 cipher_context { + char iv[20]; + char rec_seq[8]; }; -struct xhci_root_port_bw_info { - struct list_head tts; - unsigned int num_active_tts; - struct xhci_interval_bw_table bw_table; +struct tls_crypto_info { + __u16 version; + __u16 cipher_type; }; -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 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 xhci_port_cap { - u32 *psi; - u8 psi_count; - u8 psi_uid_count; - u8 maj_rev; - u8 min_rev; +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 xhci_ep_ctx { - __le32 ep_info; - __le32 ep_info2; - __le64 deq; - __le32 tx_info; - __le32 reserved[3]; +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 usb_otg_caps { - u16 otg_rev; - bool hnp_support; - bool srp_support; - bool adp_support; +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]; }; -enum bdc_ep0_state { - WAIT_FOR_SETUP = 0, - WAIT_FOR_DATA_START = 1, - WAIT_FOR_DATA_XMIT = 2, - WAIT_FOR_STATUS_START = 3, - WAIT_FOR_STATUS_XMIT = 4, - STATUS_PENDING = 5, +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]; }; -enum bdc_link_state { - BDC_LINK_STATE_U0 = 0, - BDC_LINK_STATE_U3 = 3, - BDC_LINK_STATE_RX_DET = 5, - BDC_LINK_STATE_RESUME = 15, +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 bdc_scratchpad { - dma_addr_t sp_dma; - void *buff; - u32 size; +struct tls_context { + struct tls_prot_info prot_info; + u8 tx_conf: 3; + u8 rx_conf: 3; + u8 zerocopy_sendfile: 1; + u8 rx_no_pad: 1; + int (*push_pending_record)(struct sock *, int); + void (*sk_write_space)(struct sock *); + void *priv_ctx_tx; + void *priv_ctx_rx; + struct net_device __attribute__((btf_type_tag("rcu"))) *netdev; + struct cipher_context tx; + struct cipher_context rx; + struct scatterlist *partially_sent_record; + u16 partially_sent_offset; + bool splicing_pages; + bool pending_open_record_frags; + struct mutex tx_lock; + unsigned long flags; + struct proto *sk_proto; + struct sock *sk; + void (*sk_destruct)(struct sock *); + union tls_crypto_context crypto_send; + union tls_crypto_context crypto_recv; + struct list_head list; + refcount_t refcount; + struct callback_head rcu; }; -struct bdc_sr; +struct nh_info; -struct srr { - struct bdc_sr *sr_bds; - u16 eqp_index; - u16 dqp_index; - dma_addr_t dma_addr; -}; +struct nh_group; -struct bdc_req; +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 bd_transfer { - struct bdc_req *req; - int start_bdi; - int next_hwd_bdi; - int num_bds; +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 bdc_ep; +struct xfrm_address_filter; -struct bdc_req { - struct usb_request usb_req; - struct list_head queue; - struct bdc_ep *ep; - struct bd_transfer bd_xfr; - int epnum; -}; - -struct bdc { - struct usb_gadget gadget; - struct usb_gadget_driver *gadget_driver; - struct device *dev; - spinlock_t lock; - struct phy **phys; - int num_phys; - unsigned int num_eps; - struct bdc_ep **bdc_ep_array; - void *regs; - struct bdc_scratchpad scratchpad; - u32 sp_buff_size; - struct srr srr; - struct usb_ctrlrequest setup_pkt; - struct bdc_req ep0_req; - struct bdc_req status_req; - enum bdc_ep0_state ep0_state; - bool delayed_status; - bool zlp_needed; - bool reinit; - bool pullup; - u32 devstatus; - int irq; - void *mem; - u32 dev_addr; - struct dma_pool *bd_table_pool; - u8 test_mode; - void (*sr_handler[2])(struct bdc *, struct bdc_sr *); - void (*sr_xsf_ep0[3])(struct bdc *, struct bdc_sr *); - unsigned char ep0_response_buff[6]; - struct delayed_work func_wake_notify; - struct clk *clk; -}; - -struct bd_table; - -struct bd_list { - struct bd_table **bd_table_array; - int num_tabs; - int max_bdi; - int eqp_bdi; - int hwd_bdi; - int num_bds_table; +struct xfrm_state_walk { + struct list_head all; + u8 state; + u8 dying; + u8 proto; + u32 seq; + struct xfrm_address_filter *filter; }; -struct bdc_ep { - struct usb_ep usb_ep; - struct list_head queue; - struct bdc *bdc; - u8 ep_type; - u8 dir; - u8 ep_num; - const struct usb_ss_ep_comp_descriptor *comp_desc; - const struct usb_endpoint_descriptor *desc; - unsigned int flags; - char name[20]; - struct bd_list bd_list; - bool ignore_next_sr; +struct xfrm_replay_state { + __u32 oseq; + __u32 seq; + __u32 bitmap; }; -struct bdc_bd; - -struct bd_table { - struct bdc_bd *start_bd; - dma_addr_t dma; +enum xfrm_replay_mode { + XFRM_REPLAY_MODE_LEGACY = 0, + XFRM_REPLAY_MODE_BMP = 1, + XFRM_REPLAY_MODE_ESN = 2, }; -struct bdc_bd { - __le32 offset[4]; +struct xfrm_stats { + __u32 replay_window; + __u32 replay; + __u32 integrity_failed; }; -struct bdc_sr { - __le32 offset[4]; +struct xfrm_mode { + u8 encap; + u8 family; + u8 flags; }; -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); +struct xfrm_algo_auth; -typedef void (*btf_trace_rtc_alarm_irq_enable)(void *, unsigned int, int); +struct xfrm_algo; -typedef void (*btf_trace_rtc_set_offset)(void *, long, int); +struct xfrm_algo_aead; -typedef void (*btf_trace_rtc_read_offset)(void *, long, int); +struct xfrm_encap_tmpl; -struct rtc_timer; +struct xfrm_replay_state_esn; -typedef void (*btf_trace_rtc_timer_enqueue)(void *, struct rtc_timer *); +struct xfrm_type; -struct rtc_device; +struct xfrm_type_offload; -struct rtc_timer { - struct timerqueue_node node; - ktime_t period; - void (*func)(struct rtc_device *); - struct rtc_device *rtc; - int enabled; +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; + long: 32; + struct xfrm_lifetime_cur curlft; + struct hrtimer mtimer; + struct xfrm_dev_offload xso; + long saved_tmo; + long: 32; + 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; long: 32; }; -typedef __u64 timeu64_t; +struct xfrm_address_filter { + xfrm_address_t saddr; + xfrm_address_t daddr; + __u16 family; + __u8 splen; + __u8 dplen; +}; -struct rtc_class_ops; +struct xfrm_algo_auth { + char alg_name[64]; + unsigned int alg_key_len; + unsigned int alg_trunc_len; + char alg_key[0]; +}; -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]; - long: 32; - time64_t range_min; - timeu64_t range_max; - time64_t start_secs; - time64_t offset_secs; - bool set_start_time; - long: 32; +struct xfrm_algo { + char alg_name[64]; + unsigned int alg_key_len; + char alg_key[0]; }; -struct rtc_time; +struct xfrm_algo_aead { + char alg_name[64]; + unsigned int alg_key_len; + unsigned int alg_icv_len; + char alg_key[0]; +}; -struct rtc_wkalrm; +struct xfrm_encap_tmpl { + __u16 encap_type; + __be16 encap_sport; + __be16 encap_dport; + xfrm_address_t encap_oa; +}; -struct rtc_param; +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 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 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 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 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 rtc_wkalrm { - unsigned char enabled; - unsigned char pending; - struct rtc_time time; +struct xfrm_sec_ctx { + __u8 ctx_doi; + __u8 ctx_alg; + __u16 ctx_len; + __u32 ctx_sid; + char ctx_str[0]; }; -struct rtc_param { - __u64 param; +struct nh_grp_entry { + struct nexthop *nh; + u8 weight; union { - __u64 uvalue; - __s64 svalue; - __u64 ptr; + struct { + atomic_t upper_bound; + } hthr; + struct { + struct list_head uw_nh_entry; + u16 count_buckets; + u16 wants_buckets; + } res; }; - __u32 index; - __u32 __pad; + struct list_head nh_list; + struct nexthop *nh_parent; }; -typedef void (*btf_trace_rtc_timer_dequeue)(void *, struct rtc_timer *); +struct nh_res_table; -typedef void (*btf_trace_rtc_timer_fired)(void *, struct rtc_timer *); +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]; +}; -enum { - none = 0, - day = 1, - month = 2, - year = 3, +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 trace_event_raw_rtc_time_alarm_class { - struct trace_entry ent; - time64_t secs; - int err; - char __data[0]; - long: 32; +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 trace_event_raw_rtc_irq_set_freq { - struct trace_entry ent; - int freq; - int err; - char __data[0]; +struct seg6_pernet_data { + struct mutex lock; + struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src; }; -struct trace_event_raw_rtc_irq_set_state { - struct trace_entry ent; - int enabled; - int err; - char __data[0]; +struct raw_hashinfo { + spinlock_t lock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct hlist_head ht[256]; }; -struct trace_event_raw_rtc_alarm_irq_enable { - struct trace_entry ent; - unsigned int enabled; - int err; - char __data[0]; +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 trace_event_raw_rtc_offset_class { - struct trace_entry ent; - long offset; +struct icmp6_err { int err; - char __data[0]; + int fatal; }; -struct trace_event_raw_rtc_timer_class { - struct trace_entry ent; - struct rtc_timer *timer; - long: 32; - ktime_t expires; - ktime_t period; - char __data[0]; +enum { + ICMP6_MIB_NUM = 0, + ICMP6_MIB_INMSGS = 1, + ICMP6_MIB_INERRORS = 2, + ICMP6_MIB_OUTMSGS = 3, + ICMP6_MIB_OUTERRORS = 4, + ICMP6_MIB_CSUMERRORS = 5, + ICMP6_MIB_RATELIMITHOST = 6, + __ICMP6_MIB_MAX = 7, }; -struct 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 omap_i2c_bus_platform_data { - u32 clkrate; - u32 rev; - u32 flags; - void (*set_mpu_wkup_lat)(struct device *, long); +enum netdev_priv_flags { + IFF_802_1Q_VLAN = 1ULL, + IFF_EBRIDGE = 2ULL, + IFF_BONDING = 4ULL, + IFF_ISATAP = 8ULL, + IFF_WAN_HDLC = 16ULL, + IFF_XMIT_DST_RELEASE = 32ULL, + IFF_DONT_BRIDGE = 64ULL, + IFF_DISABLE_NETPOLL = 128ULL, + IFF_MACVLAN_PORT = 256ULL, + IFF_BRIDGE_PORT = 512ULL, + IFF_OVS_DATAPATH = 1024ULL, + IFF_TX_SKB_SHARING = 2048ULL, + IFF_UNICAST_FLT = 4096ULL, + IFF_TEAM_PORT = 8192ULL, + IFF_SUPP_NOFCS = 16384ULL, + IFF_LIVE_ADDR_CHANGE = 32768ULL, + IFF_MACVLAN = 65536ULL, + IFF_XMIT_DST_RELEASE_PERM = 131072ULL, + IFF_L3MDEV_MASTER = 262144ULL, + IFF_NO_QUEUE = 524288ULL, + IFF_OPENVSWITCH = 1048576ULL, + IFF_L3MDEV_SLAVE = 2097152ULL, + IFF_TEAM = 4194304ULL, + IFF_RXFH_CONFIGURED = 8388608ULL, + IFF_PHONY_HEADROOM = 16777216ULL, + IFF_MACSEC = 33554432ULL, + IFF_NO_RX_HANDLER = 67108864ULL, + IFF_FAILOVER = 134217728ULL, + IFF_FAILOVER_SLAVE = 268435456ULL, + IFF_L3MDEV_RX_HANDLER = 536870912ULL, + IFF_NO_ADDRCONF = 1073741824ULL, + IFF_TX_SKB_NO_LINEAR = 2147483648ULL, + IFF_CHANGE_PROTO_DOWN = 4294967296ULL, + IFF_SEE_ALL_HWTSTAMP_REQUESTS = 8589934592ULL, }; enum { - OMAP_I2C_REV_REG = 0, - OMAP_I2C_IE_REG = 1, - OMAP_I2C_STAT_REG = 2, - OMAP_I2C_IV_REG = 3, - OMAP_I2C_WE_REG = 4, - OMAP_I2C_SYSS_REG = 5, - OMAP_I2C_BUF_REG = 6, - OMAP_I2C_CNT_REG = 7, - OMAP_I2C_DATA_REG = 8, - OMAP_I2C_SYSC_REG = 9, - OMAP_I2C_CON_REG = 10, - OMAP_I2C_OA_REG = 11, - OMAP_I2C_SA_REG = 12, - OMAP_I2C_PSC_REG = 13, - OMAP_I2C_SCLL_REG = 14, - OMAP_I2C_SCLH_REG = 15, - OMAP_I2C_SYSTEST_REG = 16, - OMAP_I2C_BUFSTAT_REG = 17, - OMAP_I2C_IP_V2_REVNB_LO = 18, - OMAP_I2C_IP_V2_REVNB_HI = 19, - OMAP_I2C_IP_V2_IRQSTATUS_RAW = 20, - OMAP_I2C_IP_V2_IRQENABLE_SET = 21, - OMAP_I2C_IP_V2_IRQENABLE_CLR = 22, + 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, }; -struct omap_i2c_dev { - struct device *dev; - void *base; - int irq; - int reg_shift; - struct completion cmd_complete; - struct resource *ioarea; - u32 latency; - void (*set_mpu_wkup_lat)(struct device *, long); - u32 speed; - u32 flags; - u16 scheme; - u16 cmd_err; - u8 *buf; - u8 *regs; - size_t buf_len; - long: 32; - struct i2c_adapter adapter; - u8 threshold; - u8 fifo_size; - u32 rev; - unsigned int b_hw: 1; - unsigned int bb_valid: 1; - unsigned int receiver: 1; - u16 iestate; - u16 pscstate; - u16 scllstate; - u16 sclhstate; - u16 syscstate; - u16 westate; - u16 errata; +enum { + IPSTATS_MIB_NUM = 0, + IPSTATS_MIB_INPKTS = 1, + IPSTATS_MIB_INOCTETS = 2, + IPSTATS_MIB_INDELIVERS = 3, + IPSTATS_MIB_OUTFORWDATAGRAMS = 4, + IPSTATS_MIB_OUTREQUESTS = 5, + IPSTATS_MIB_OUTOCTETS = 6, + IPSTATS_MIB_INHDRERRORS = 7, + IPSTATS_MIB_INTOOBIGERRORS = 8, + IPSTATS_MIB_INNOROUTES = 9, + IPSTATS_MIB_INADDRERRORS = 10, + IPSTATS_MIB_INUNKNOWNPROTOS = 11, + IPSTATS_MIB_INTRUNCATEDPKTS = 12, + IPSTATS_MIB_INDISCARDS = 13, + IPSTATS_MIB_OUTDISCARDS = 14, + IPSTATS_MIB_OUTNOROUTES = 15, + IPSTATS_MIB_REASMTIMEOUT = 16, + IPSTATS_MIB_REASMREQDS = 17, + IPSTATS_MIB_REASMOKS = 18, + IPSTATS_MIB_REASMFAILS = 19, + IPSTATS_MIB_FRAGOKS = 20, + IPSTATS_MIB_FRAGFAILS = 21, + IPSTATS_MIB_FRAGCREATES = 22, + IPSTATS_MIB_INMCASTPKTS = 23, + IPSTATS_MIB_OUTMCASTPKTS = 24, + IPSTATS_MIB_INBCASTPKTS = 25, + IPSTATS_MIB_OUTBCASTPKTS = 26, + IPSTATS_MIB_INMCASTOCTETS = 27, + IPSTATS_MIB_OUTMCASTOCTETS = 28, + IPSTATS_MIB_INBCASTOCTETS = 29, + IPSTATS_MIB_OUTBCASTOCTETS = 30, + IPSTATS_MIB_CSUMERRORS = 31, + IPSTATS_MIB_NOECTPKTS = 32, + IPSTATS_MIB_ECT1PKTS = 33, + IPSTATS_MIB_ECT0PKTS = 34, + IPSTATS_MIB_CEPKTS = 35, + IPSTATS_MIB_REASM_OVERLAPS = 36, + IPSTATS_MIB_OUTPKTS = 37, + __IPSTATS_MIB_MAX = 38, }; -struct shdwc { - struct clk *sclk; - void *shdwc_base; - void *mpddrc_base; +enum { + XFRM_LOOKUP_ICMP = 1, + XFRM_LOOKUP_QUEUE = 2, + XFRM_LOOKUP_KEEP_DST_REF = 4, }; -enum wakeup_type { - AT91_SHDW_WKMODE0_NONE = 0, - AT91_SHDW_WKMODE0_HIGH = 1, - AT91_SHDW_WKMODE0_LOW = 2, - AT91_SHDW_WKMODE0_ANYLEVEL = 3, +enum { + XFRM_POLICY_IN = 0, + XFRM_POLICY_OUT = 1, + XFRM_POLICY_FWD = 2, + XFRM_POLICY_MASK = 3, + XFRM_POLICY_MAX = 3, }; -enum thermal_device_mode { - THERMAL_DEVICE_DISABLED = 0, - THERMAL_DEVICE_ENABLED = 1, +enum { + XFRM_DEV_OFFLOAD_UNSPECIFIED = 0, + XFRM_DEV_OFFLOAD_CRYPTO = 1, + XFRM_DEV_OFFLOAD_PACKET = 2, }; -enum thermal_trip_type { - THERMAL_TRIP_ACTIVE = 0, - THERMAL_TRIP_PASSIVE = 1, - THERMAL_TRIP_HOT = 2, - THERMAL_TRIP_CRITICAL = 3, +enum skb_ext_id { + SKB_EXT_SEC_PATH = 0, + SKB_EXT_NUM = 1, }; -enum thermal_trend { - THERMAL_TREND_STABLE = 0, - THERMAL_TREND_RAISING = 1, - THERMAL_TREND_DROPPING = 2, +enum flowlabel_reflect { + FLOWLABEL_REFLECT_ESTABLISHED = 1, + FLOWLABEL_REFLECT_TCP_RESET = 2, + FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4, }; -struct thermal_zone_device; +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 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 icmpv6_echo { + __be16 identifier; + __be16 sequence; }; -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 icmpv6_nd_advt { + __u32 reserved: 5; + __u32 override: 1; + __u32 solicited: 1; + __u32 router: 1; + __u32 reserved2: 24; }; -struct thermal_attr; +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 thermal_trip; +typedef __u16 __sum16; -struct thermal_zone_params; +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 thermal_governor; +struct ipv6_destopt_hao { + __u8 type; + __u8 length; + struct in6_addr addr; +} __attribute__((packed)); -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 icmpv6_msg { + struct sk_buff *skb; + int offset; + uint8_t type; }; -struct thermal_trip { - int temperature; - int hysteresis; - enum thermal_trip_type type; +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 thermal_zone_params { - char governor_name[20]; - bool no_hwmon; - u32 sustainable_power; - s32 k_po; - s32 k_pu; - s32 k_i; - s32 k_d; - s32 integral_cutoff; - int slope; - int offset; +struct 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 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 sockcm_cookie { + u64 transmit_time; + u32 mark; + u32 tsflags; }; -struct thermal_cooling_device_ops; - -struct thermal_cooling_device { - int id; - char *type; - unsigned long max_state; +struct ipcm6_cookie { + struct sockcm_cookie sockc; + __s16 hlimit; + __s16 tclass; + __u16 gso_size; + __s8 dontfrag; + struct ipv6_txoptions *opt; long: 32; - 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 flow_dissector_key_control { + u16 thoff; + u16 addr_type; + u32 flags; }; -struct db8500_thermal_zone { - struct thermal_zone_device *tz; - struct device *dev; - unsigned long interpolated_temp; - unsigned int cur_index; +struct flow_dissector_key_basic { + __be16 n_proto; + u8 ip_proto; + u8 padding; }; -struct watchdog_info { - __u32 options; - __u32 firmware_version; - __u8 identity[32]; +struct flow_dissector_key_tags { + u32 flow_label; }; -struct watchdog_device; - -struct watchdog_ops { - struct module *owner; - int (*start)(struct watchdog_device *); - int (*stop)(struct watchdog_device *); - int (*ping)(struct watchdog_device *); - unsigned int (*status)(struct watchdog_device *); - int (*set_timeout)(struct watchdog_device *, unsigned int); - int (*set_pretimeout)(struct watchdog_device *, unsigned int); - unsigned int (*get_timeleft)(struct watchdog_device *); - int (*restart)(struct watchdog_device *, unsigned long, void *); - long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long); +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 watchdog_governor; - -struct watchdog_core_data; - -struct watchdog_device { - int id; - struct device *parent; - const struct attribute_group **groups; - const struct watchdog_info *info; - const struct watchdog_ops *ops; - const struct watchdog_governor *gov; - unsigned int bootstatus; - unsigned int timeout; - unsigned int pretimeout; - unsigned int min_timeout; - unsigned int max_timeout; - unsigned int min_hw_heartbeat_ms; - unsigned int max_hw_heartbeat_ms; - struct notifier_block reboot_nb; - struct notifier_block restart_nb; - struct notifier_block pm_nb; - void *driver_data; - struct watchdog_core_data *wd_data; - unsigned long status; - struct list_head deferred; +struct flow_dissector_key_keyid { + __be32 keyid; }; -struct watchdog_governor { - const char name[20]; - void (*pretimeout)(struct watchdog_device *); +struct flow_dissector_key_ports { + union { + __be32 ports; + struct { + __be16 src; + __be16 dst; + }; + }; }; -struct rn5t618; - -struct rn5t618_wdt { - struct watchdog_device wdt_dev; - struct rn5t618 *rn5t618; +struct flow_dissector_key_icmp { + struct { + u8 type; + u8 code; + }; + u16 id; }; -struct regmap_irq_chip_data; +struct flow_dissector_key_ipv4_addrs { + __be32 src; + __be32 dst; +}; -struct rn5t618 { - struct regmap *regmap; - struct device *dev; - long variant; - int irq; - struct regmap_irq_chip_data *irq_data; +struct flow_dissector_key_ipv6_addrs { + struct in6_addr src; + struct in6_addr dst; }; -struct edac_pci_counter { - atomic_t pe_count; - atomic_t npe_count; +struct flow_dissector_key_tipc { + __be32 key; }; -struct edac_pci_ctl_info { - struct list_head link; - int pci_idx; - struct bus_type *edac_subsys; - int op_state; - struct delayed_work work; - void (*edac_check)(struct edac_pci_ctl_info *); - struct device *dev; - const char *mod_name; - const char *ctl_name; - const char *dev_name; - void *pvt_info; - unsigned long start_time; - struct completion complete; - char name[32]; - struct edac_pci_counter counters; - struct kobject kobj; +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 edac_pci_gen_data { - int edac_idx; +struct flow_keys { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; + struct flow_dissector_key_tags tags; + struct flow_dissector_key_vlan vlan; + struct flow_dissector_key_vlan cvlan; + struct flow_dissector_key_keyid keyid; + struct flow_dissector_key_ports ports; + struct flow_dissector_key_icmp icmp; + struct flow_dissector_key_addrs addrs; + long: 32; }; -struct mmc_card; +struct xfrm_offload { + struct { + __u32 low; + __u32 hi; + } seq; + __u32 flags; + __u32 status; + __u8 proto; + __u8 inner_ipproto; +}; -struct sdio_func; +struct sec_path { + int len; + int olen; + int verified_cnt; + struct xfrm_state *xvec[6]; + struct xfrm_offload ovec[1]; +}; -typedef int tpl_parse_t(struct mmc_card *, struct sdio_func *, const unsigned char *, unsigned int); +struct udp_hslot; -struct cis_tpl { - unsigned char code; - unsigned char min_size; - tpl_parse_t *parse; -}; - -struct mmc_cid { - unsigned int manfid; - char prod_name[8]; - unsigned char prv; - unsigned int serial; - unsigned short oemid; - unsigned short year; - unsigned char hwrev; - unsigned char fwrev; - unsigned char month; -}; - -struct mmc_csd { - unsigned char structure; - unsigned char mmca_vsn; - unsigned short cmdclass; - unsigned short taac_clks; - unsigned int taac_ns; - unsigned int c_size; - unsigned int r2w_factor; - unsigned int max_dtr; - unsigned int erase_size; - unsigned int read_blkbits; - unsigned int write_blkbits; - unsigned int capacity; - unsigned int read_partial: 1; - unsigned int read_misalign: 1; - unsigned int write_partial: 1; - unsigned int write_misalign: 1; - unsigned int dsr_imp: 1; +struct udp_table { + struct udp_hslot *hash; + struct udp_hslot *hash2; + unsigned int mask; + unsigned int log; }; -struct mmc_ext_csd { - u8 rev; - u8 erase_group_def; - u8 sec_feature_support; - u8 rel_sectors; - u8 rel_param; - bool enhanced_rpmb_supported; - u8 part_config; - u8 cache_ctrl; - u8 rst_n_function; - u8 max_packed_writes; - u8 max_packed_reads; - u8 packed_event_en; - unsigned int part_time; - unsigned int sa_timeout; - unsigned int generic_cmd6_time; - unsigned int power_off_longtime; - u8 power_off_notification; - unsigned int hs_max_dtr; - unsigned int hs200_max_dtr; - unsigned int sectors; - unsigned int hc_erase_size; - unsigned int hc_erase_timeout; - unsigned int sec_trim_mult; - unsigned int sec_erase_mult; - unsigned int trim_timeout; - bool partition_setting_completed; +struct udp_hslot { + struct hlist_head head; + int count; + spinlock_t lock; long: 32; - unsigned long long enhanced_area_offset; - unsigned int enhanced_area_size; - unsigned int cache_size; - bool hpi_en; - bool hpi; - unsigned int hpi_cmd; - bool bkops; - bool man_bkops_en; - bool auto_bkops_en; - unsigned int data_sector_size; - unsigned int data_tag_unit_size; - unsigned int boot_ro_lock; - bool boot_ro_lockable; - bool ffu_capable; - bool cmdq_en; - bool cmdq_support; - unsigned int cmdq_depth; - u8 fwrev[8]; - u8 raw_exception_status; - u8 raw_partition_support; - u8 raw_rpmb_size_mult; - u8 raw_erased_mem_count; - u8 strobe_support; - u8 raw_ext_csd_structure; - u8 raw_card_type; - u8 raw_driver_strength; - u8 out_of_int_time; - u8 raw_pwr_cl_52_195; - u8 raw_pwr_cl_26_195; - u8 raw_pwr_cl_52_360; - u8 raw_pwr_cl_26_360; - u8 raw_s_a_timeout; - u8 raw_hc_erase_gap_size; - u8 raw_erase_timeout_mult; - u8 raw_hc_erase_grp_size; - u8 raw_boot_mult; - u8 raw_sec_trim_mult; - u8 raw_sec_erase_mult; - u8 raw_sec_feature_support; - u8 raw_trim_mult; - u8 raw_pwr_cl_200_195; - u8 raw_pwr_cl_200_360; - u8 raw_pwr_cl_ddr_52_195; - u8 raw_pwr_cl_ddr_52_360; - u8 raw_pwr_cl_ddr_200_360; - u8 raw_bkops_status; - u8 raw_sectors[4]; - u8 pre_eol_info; - u8 device_life_time_est_typ_a; - u8 device_life_time_est_typ_b; - unsigned int feature_support; }; -struct sd_scr { - unsigned char sda_vsn; - unsigned char sda_spec3; - unsigned char sda_spec4; - unsigned char sda_specx; - unsigned char bus_widths; - unsigned char cmds; +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, }; -struct sd_ssr { - unsigned int au; - unsigned int erase_timeout; - unsigned int erase_offset; +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, }; -struct sd_switch_caps { - unsigned int hs_max_dtr; - unsigned int uhs_max_dtr; - unsigned int sd3_bus_mode; - unsigned int sd3_drv_type; - unsigned int sd3_curr_limit; +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, }; -struct sd_ext_reg { - u8 fno; - u8 page; - u16 offset; - u8 rev; - u8 feature_enabled; - u8 feature_support; -}; +struct ip_tunnel; -struct sdio_cccr { - unsigned int sdio_vsn; - unsigned int sd_vsn; - unsigned int multi_block: 1; - unsigned int low_speed: 1; - unsigned int wide_bus: 1; - unsigned int high_power: 1; - unsigned int high_speed: 1; - unsigned int disable_cd: 1; - unsigned int enable_async_irq: 1; -}; +struct ip6_tnl; -struct sdio_cis { - unsigned short vendor; - unsigned short device; - unsigned short blksize; - unsigned int max_dtr; +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 mmc_part { - u64 size; - unsigned int part_cfg; - char name[20]; - bool force_ro; - unsigned int area_type; +struct xfrm_spi_skb_cb { + struct xfrm_tunnel_skb_cb header; + unsigned int daddroff; + unsigned int family; + __be32 seq; }; -struct mmc_host; - -struct sdio_func_tuple; +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 mmc_card { - struct mmc_host *host; +struct udp_sock { + struct inet_sock inet; + unsigned long udp_flags; + int pending; + __u8 encap_type; + __u16 len; + __u16 gso_size; + __u16 pcslen; + __u16 pcrlen; + int (*encap_rcv)(struct sock *, struct sk_buff *); + void (*encap_err_rcv)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *); + int (*encap_err_lookup)(struct sock *, struct sk_buff *); + void (*encap_destroy)(struct sock *); + struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *); + int (*gro_complete)(struct sock *, struct sk_buff *, int); long: 32; - struct device dev; - u32 ocr; - unsigned int rca; - unsigned int type; - unsigned int state; - unsigned int quirks; - unsigned int quirk_max_rate; - bool reenable_cmdq; - unsigned int erase_size; - unsigned int erase_shift; - unsigned int pref_erase; - unsigned int eg_boundary; - unsigned int erase_arg; - u8 erased_byte; - u32 raw_cid[4]; - u32 raw_csd[4]; - u32 raw_scr[2]; - u32 raw_ssr[16]; - struct mmc_cid cid; - struct mmc_csd csd; long: 32; - struct mmc_ext_csd ext_csd; - struct sd_scr scr; - struct sd_ssr ssr; - struct sd_switch_caps sw_caps; - struct sd_ext_reg ext_power; - struct sd_ext_reg ext_perf; - unsigned int sdio_funcs; - atomic_t sdio_funcs_probed; - struct sdio_cccr cccr; - struct sdio_cis cis; - struct sdio_func *sdio_func[7]; - struct sdio_func *sdio_single_irq; - u8 major_rev; - u8 minor_rev; - unsigned int num_info; - const char **info; - struct sdio_func_tuple *tuples; - unsigned int sd_bus_speed; - unsigned int mmc_avail_type; - unsigned int drive_strength; - struct dentry *debugfs_root; - struct mmc_part part[7]; - unsigned int nr_parts; - struct workqueue_struct *complete_wq; -}; - -typedef unsigned int mmc_pm_flag_t; - -struct mmc_ios { - unsigned int clock; - unsigned short vdd; - unsigned int power_delay_ms; - unsigned char bus_mode; - unsigned char chip_select; - unsigned char power_mode; - unsigned char bus_width; - unsigned char timing; - unsigned char signal_voltage; - unsigned char drv_type; - bool enhanced_strobe; -}; - -struct mmc_ctx { - struct task_struct *task; -}; - -struct mmc_slot { - int cd_irq; - bool cd_wake_enabled; - void *handler_priv; -}; - -struct mmc_supply { - struct regulator *vmmc; - struct regulator *vqmmc; -}; - -struct mmc_host_ops; - -struct mmc_pwrseq; - -struct mmc_bus_ops; - -struct led_trigger; - -struct mmc_request; - -struct mmc_cqe_ops; - -struct mmc_host { - struct device *parent; long: 32; - struct device class_dev; - int index; - const struct mmc_host_ops *ops; - struct mmc_pwrseq *pwrseq; - unsigned int f_min; - unsigned int f_max; - unsigned int f_init; - u32 ocr_avail; - u32 ocr_avail_sdio; - u32 ocr_avail_sd; - u32 ocr_avail_mmc; - struct wakeup_source *ws; - u32 max_current_330; - u32 max_current_300; - u32 max_current_180; - u32 caps; - u32 caps2; - int fixed_drv_type; - mmc_pm_flag_t pm_caps; - unsigned int max_seg_size; - unsigned short max_segs; - unsigned short unused; - unsigned int max_req_size; - unsigned int max_blk_size; - unsigned int max_blk_count; - unsigned int max_busy_timeout; - spinlock_t lock; - struct mmc_ios ios; - unsigned int use_spi_crc: 1; - unsigned int claimed: 1; - unsigned int doing_init_tune: 1; - unsigned int can_retune: 1; - unsigned int doing_retune: 1; - unsigned int retune_now: 1; - unsigned int retune_paused: 1; - unsigned int retune_crc_disable: 1; - unsigned int can_dma_map_merge: 1; - unsigned int vqmmc_enabled: 1; - int rescan_disable; - int rescan_entered; - int need_retune; - int hold_retune; - unsigned int retune_period; - struct timer_list retune_timer; - bool trigger_card_event; - struct mmc_card *card; - wait_queue_head_t wq; - struct mmc_ctx *claimer; - int claim_cnt; - struct mmc_ctx default_ctx; - struct delayed_work detect; - int detect_change; - struct mmc_slot slot; - const struct mmc_bus_ops *bus_ops; - unsigned int sdio_irqs; - struct task_struct *sdio_irq_thread; - struct work_struct sdio_irq_work; - bool sdio_irq_pending; - atomic_t sdio_irq_thread_abort; - mmc_pm_flag_t pm_flags; - struct led_trigger *led; - bool regulator_enabled; - struct mmc_supply supply; - struct dentry *debugfs_root; - struct mmc_request *ongoing_mrq; - unsigned int actual_clock; - unsigned int slotno; - int dsr_req; - u32 dsr; - const struct mmc_cqe_ops *cqe_ops; - void *cqe_private; - int cqe_qdepth; - bool cqe_enabled; - bool cqe_on; - bool hsq_enabled; - u32 err_stats[15]; long: 32; long: 32; long: 32; @@ -40033,4297 +48778,3421 @@ struct mmc_host { long: 32; long: 32; long: 32; + struct sk_buff_head reader_queue; + int forward_deficit; + int forward_threshold; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; long: 32; long: 32; long: 32; long: 32; - unsigned long private[0]; }; -struct mmc_host_ops { - void (*post_req)(struct mmc_host *, struct mmc_request *, int); - void (*pre_req)(struct mmc_host *, struct mmc_request *); - void (*request)(struct mmc_host *, struct mmc_request *); - int (*request_atomic)(struct mmc_host *, struct mmc_request *); - void (*set_ios)(struct mmc_host *, struct mmc_ios *); - int (*get_ro)(struct mmc_host *); - int (*get_cd)(struct mmc_host *); - void (*enable_sdio_irq)(struct mmc_host *, int); - void (*ack_sdio_irq)(struct mmc_host *); - void (*init_card)(struct mmc_host *, struct mmc_card *); - int (*start_signal_voltage_switch)(struct mmc_host *, struct mmc_ios *); - int (*card_busy)(struct mmc_host *); - int (*execute_tuning)(struct mmc_host *, u32); - int (*prepare_hs400_tuning)(struct mmc_host *, struct mmc_ios *); - int (*execute_hs400_tuning)(struct mmc_host *, struct mmc_card *); - int (*hs400_prepare_ddr)(struct mmc_host *); - void (*hs400_downgrade)(struct mmc_host *); - void (*hs400_complete)(struct mmc_host *); - void (*hs400_enhanced_strobe)(struct mmc_host *, struct mmc_ios *); - int (*select_drive_strength)(struct mmc_card *, unsigned int, int, int, int *); - void (*card_hw_reset)(struct mmc_host *); - void (*card_event)(struct mmc_host *); - int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); - int (*init_sd_express)(struct mmc_host *, struct mmc_ios *); +struct napi_gro_cb { + union { + struct { + void *frag0; + unsigned int frag0_len; + }; + struct { + struct sk_buff *last; + unsigned long age; + }; + }; + int data_offset; + u16 flush; + u16 flush_id; + u16 count; + u16 proto; + union { + struct { + u16 gro_remcsum_start; + u8 same_flow: 1; + u8 encap_mark: 1; + u8 csum_valid: 1; + u8 csum_cnt: 3; + u8 free: 2; + u8 is_ipv6: 1; + u8 is_fou: 1; + u8 is_atomic: 1; + u8 recursion_counter: 4; + u8 is_flist: 1; + }; + struct { + u16 gro_remcsum_start; + u8 same_flow: 1; + u8 encap_mark: 1; + u8 csum_valid: 1; + u8 csum_cnt: 3; + u8 free: 2; + u8 is_ipv6: 1; + u8 is_fou: 1; + u8 is_atomic: 1; + u8 recursion_counter: 4; + u8 is_flist: 1; + } zeroed; + }; + __wsum csum; }; -struct mmc_command; +struct udphdr { + __be16 source; + __be16 dest; + __be16 len; + __sum16 check; +}; -struct mmc_data; +typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); -struct mmc_request { - struct mmc_command *sbc; - struct mmc_command *cmd; - struct mmc_data *data; - struct mmc_command *stop; - struct completion completion; - struct completion cmd_completion; - void (*done)(struct mmc_request *); - void (*recovery_notifier)(struct mmc_request *); - struct mmc_host *host; - bool cap_cmd_during_tfr; - int tag; +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 mmc_command { - u32 opcode; - u32 arg; - u32 resp[4]; - unsigned int flags; - unsigned int retries; - int error; - unsigned int busy_timeout; - struct mmc_data *data; - struct mmc_request *mrq; +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 *); }; -struct mmc_data { - unsigned int timeout_ns; - unsigned int timeout_clks; - unsigned int blksz; - unsigned int blocks; - unsigned int blk_addr; - int error; - unsigned int flags; - unsigned int bytes_xfered; - struct mmc_command *stop; - struct mmc_request *mrq; - unsigned int sg_len; - int sg_count; - struct scatterlist *sg; - s32 host_cookie; +struct devlink_dev_stats { + u32 reload_stats[6]; + u32 remote_reload_stats[6]; }; -struct mmc_bus_ops { - void (*remove)(struct mmc_host *); - void (*detect)(struct mmc_host *); - int (*pre_suspend)(struct mmc_host *); - int (*suspend)(struct mmc_host *); - int (*resume)(struct mmc_host *); - int (*runtime_suspend)(struct mmc_host *); - int (*runtime_resume)(struct mmc_host *); - int (*alive)(struct mmc_host *); - int (*shutdown)(struct mmc_host *); - int (*hw_reset)(struct mmc_host *); - int (*sw_reset)(struct mmc_host *); - bool (*cache_enabled)(struct mmc_host *); - int (*flush_cache)(struct mmc_host *); -}; +struct devlink_dpipe_headers; -struct mmc_cqe_ops { - int (*cqe_enable)(struct mmc_host *, struct mmc_card *); - void (*cqe_disable)(struct mmc_host *); - int (*cqe_request)(struct mmc_host *, struct mmc_request *); - void (*cqe_post_req)(struct mmc_host *, struct mmc_request *); - void (*cqe_off)(struct mmc_host *); - int (*cqe_wait_for_idle)(struct mmc_host *); - bool (*cqe_timeout)(struct mmc_host *, struct mmc_request *, bool *); - void (*cqe_recovery_start)(struct mmc_host *); - void (*cqe_recovery_finish)(struct mmc_host *); -}; +struct devlink_ops; -typedef void sdio_irq_handler_t(struct sdio_func *); +struct devlink_rel; -struct sdio_func { - struct mmc_card *card; - long: 32; - struct device dev; - sdio_irq_handler_t *irq_handler; - unsigned int num; - unsigned char class; - unsigned short vendor; - unsigned short device; - unsigned int max_blksize; - unsigned int cur_blksize; - unsigned int enable_timeout; - unsigned int state; - u8 *tmpbuf; - u8 major_rev; - u8 minor_rev; - unsigned int num_info; - const char **info; - struct sdio_func_tuple *tuples; +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 devlink_rel *rel; + struct xarray nested_rels; long: 32; + char priv[0]; }; -struct sdio_func_tuple { - struct sdio_func_tuple *next; - unsigned char code; - unsigned char size; - unsigned char data[0]; -}; +struct devlink_dpipe_header; -struct dw_mci; +struct devlink_dpipe_headers { + struct devlink_dpipe_header **headers; + unsigned int headers_count; +}; -struct dw_mci_slot; +struct devlink_dpipe_field; -struct dw_mci_drv_data { - unsigned long *caps; - u32 num_caps; - u32 common_caps; - int (*init)(struct dw_mci *); - void (*set_ios)(struct dw_mci *, struct mmc_ios *); - int (*parse_dt)(struct dw_mci *); - int (*execute_tuning)(struct dw_mci_slot *, u32); - int (*prepare_hs400_tuning)(struct dw_mci *, struct mmc_ios *); - int (*switch_voltage)(struct mmc_host *, struct mmc_ios *); - void (*set_data_timeout)(struct dw_mci *, unsigned int); - u32 (*get_drto_clks)(struct dw_mci *); +struct devlink_dpipe_header { + const char *name; + unsigned int id; + struct devlink_dpipe_field *fields; + unsigned int fields_count; + bool global; }; -struct sg_page_iter { - struct scatterlist *sg; - unsigned int sg_pgoffset; - unsigned int __nents; - int __pg_advance; +enum devlink_dpipe_field_mapping_type { + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0, + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 1, }; -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; +struct devlink_dpipe_field { + const char *name; + unsigned int id; + unsigned int bitwidth; + enum devlink_dpipe_field_mapping_type mapping_type; }; -enum dw_mci_state { - STATE_IDLE = 0, - STATE_SENDING_CMD = 1, - STATE_SENDING_DATA = 2, - STATE_DATA_BUSY = 3, - STATE_SENDING_STOP = 4, - STATE_DATA_ERROR = 5, - STATE_SENDING_CMD11 = 6, - STATE_WAITING_CMD11_DONE = 7, +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, }; -struct dw_mci_dma_ops; - -struct dw_mci_dma_slave; - -struct dw_mci_board; +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, +}; -struct dw_mci { - spinlock_t lock; - spinlock_t irq_lock; - void *regs; - void *fifo_reg; - u32 data_addr_override; - bool wm_aligned; - struct scatterlist *sg; - struct sg_mapping_iter sg_miter; - struct mmc_request *mrq; - struct mmc_command *cmd; - struct mmc_data *data; - struct mmc_command stop_abort; - unsigned int prev_blksz; - unsigned char timing; - int use_dma; - int using_dma; - int dma_64bit_address; - dma_addr_t sg_dma; - void *sg_cpu; - const struct dw_mci_dma_ops *dma_ops; - unsigned int ring_size; - struct dw_mci_dma_slave *dms; - resource_size_t phy_regs; - u32 cmd_status; - u32 data_status; - u32 stop_cmdr; - u32 dir_status; - struct tasklet_struct tasklet; - unsigned long pending_events; - unsigned long completed_events; - enum dw_mci_state state; - struct list_head queue; - u32 bus_hz; - u32 current_speed; - u32 minimum_speed; - u32 fifoth_val; - u16 verid; - struct device *dev; - struct dw_mci_board *pdata; - const struct dw_mci_drv_data *drv_data; - void *priv; - struct clk *biu_clk; - struct clk *ciu_clk; - struct dw_mci_slot *slot; - int fifo_depth; - int data_shift; - u8 part_buf_start; - u8 part_buf_count; - union { - u16 part_buf16; - u32 part_buf32; - u64 part_buf; - }; - void (*push_data)(struct dw_mci *, void *, int); - void (*pull_data)(struct dw_mci *, void *, int); - u32 quirks; - bool vqmmc_enabled; - unsigned long irq_flags; - int irq; - int sdio_id0; - struct timer_list cmd11_timer; - struct timer_list cto_timer; - struct timer_list dto_timer; +enum devlink_eswitch_encap_mode { + DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0, + DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 1, }; -struct dw_mci_dma_ops { - int (*init)(struct dw_mci *); - int (*start)(struct dw_mci *, unsigned int); - void (*complete)(void *); - void (*stop)(struct dw_mci *); - void (*cleanup)(struct dw_mci *); - void (*exit)(struct dw_mci *); +enum devlink_trap_action { + DEVLINK_TRAP_ACTION_DROP = 0, + DEVLINK_TRAP_ACTION_TRAP = 1, + DEVLINK_TRAP_ACTION_MIRROR = 2, }; -struct dw_mci_dma_slave { - struct dma_chan *ch; - enum dma_transfer_direction direction; +enum devlink_selftest_status { + DEVLINK_SELFTEST_STATUS_SKIP = 0, + DEVLINK_SELFTEST_STATUS_PASS = 1, + DEVLINK_SELFTEST_STATUS_FAIL = 2, }; -struct dma_pdata; +struct devlink_flash_update_params; -struct dw_mci_board { - unsigned int bus_hz; - u32 caps; - u32 caps2; - u32 pm_caps; - unsigned int fifo_depth; - u32 detect_delay_ms; - struct reset_control *rstc; - struct dw_mci_dma_ops *dma_ops; - struct dma_pdata *data; -}; +struct devlink_trap; -struct dw_mci_slot { - struct mmc_host *mmc; - struct dw_mci *host; - u32 ctype; - struct mmc_request *mrq; - struct list_head queue_node; - unsigned int clock; - unsigned int __clk_old; - unsigned long flags; - int id; - int sdio_id; -}; +struct devlink_trap_group; -struct range_t { - int start; - int end; +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 (*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_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, struct devlink_port **); + 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 dw_mci_rockchip_priv_data { - struct clk *drv_clk; - struct clk *sample_clk; - int default_sample_phase; - int num_phases; +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; }; -struct led_trigger_cpu { - bool is_active; - char name[8]; - struct led_trigger *_trig; +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, }; -struct led_classdev; +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 led_hw_trigger_type; +struct ib_mad; -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; +enum rdma_link_layer { + IB_LINK_LAYER_UNSPECIFIED = 0, + IB_LINK_LAYER_INFINIBAND = 1, + IB_LINK_LAYER_ETHERNET = 2, }; -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; - unsigned long delayed_delay_on; - unsigned long delayed_delay_off; - 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; - const char *hw_control_trigger; - int (*hw_control_is_supported)(struct led_classdev *, unsigned long); - int (*hw_control_set)(struct led_classdev *, unsigned long); - int (*hw_control_get)(struct led_classdev *, unsigned long *); - struct device * (*hw_control_get_device)(struct led_classdev *); - struct mutex led_access; +enum rdma_netdev_t { + RDMA_NETDEV_OPA_VNIC = 0, + RDMA_NETDEV_IPOIB = 1, }; -struct led_pattern { - u32 delta_t; - int brightness; +enum ib_srq_attr_mask { + IB_SRQ_MAX_WR = 1, + IB_SRQ_LIMIT = 2, }; -struct led_hw_trigger_type { - int dummy; +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 cpu_led_event { - CPU_LED_IDLE_START = 0, - CPU_LED_IDLE_END = 1, - CPU_LED_START = 2, - CPU_LED_STOP = 3, - CPU_LED_HALTED = 4, +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 scmi_transport_ops; +struct uverbs_attr_bundle; -struct scmi_desc { - int (*transport_init)(); - void (*transport_exit)(); - const struct scmi_transport_ops *ops; - int max_rx_timeout_ms; - int max_msg; - int max_msg_size; - const bool force_polling; - const bool sync_cmds_completed_on_ret; - const bool atomic_enabled; -}; +struct rdma_cm_id; -struct scmi_chan_info; +struct iw_cm_id; -struct scmi_xfer; +struct iw_cm_conn_param; -struct scmi_transport_ops { - int (*link_supplier)(struct device *); - bool (*chan_available)(struct device_node *, int); - int (*chan_setup)(struct scmi_chan_info *, struct device *, bool); - int (*chan_free)(int, void *, void *); - unsigned int (*get_max_msg)(struct scmi_chan_info *); - int (*send_message)(struct scmi_chan_info *, struct scmi_xfer *); - void (*mark_txdone)(struct scmi_chan_info *, int, struct scmi_xfer *); - void (*fetch_response)(struct scmi_chan_info *, struct scmi_xfer *); - void (*fetch_notification)(struct scmi_chan_info *, size_t, struct scmi_xfer *); - void (*clear_channel)(struct scmi_chan_info *); - bool (*poll_done)(struct scmi_chan_info *, struct scmi_xfer *); -}; +struct ib_qp; -struct scmi_handle; +struct ib_send_wr; -struct scmi_chan_info { - int id; - struct device *dev; - unsigned int rx_timeout_ms; - struct scmi_handle *handle; - bool no_completion_irq; - void *transport_info; -}; +struct ib_recv_wr; -struct scmi_revision_info; +struct ib_cq; -struct scmi_device; +struct ib_wc; -struct scmi_protocol_handle; +struct ib_srq; -struct scmi_notify_ops; +struct ib_grh; -struct scmi_handle { - struct device *dev; - struct scmi_revision_info *version; - int (*devm_protocol_acquire)(struct scmi_device *, u8); - const void * (*devm_protocol_get)(struct scmi_device *, u8, struct scmi_protocol_handle **); - void (*devm_protocol_put)(struct scmi_device *, u8); - bool (*is_transport_atomic)(const struct scmi_handle *, unsigned int *); - const struct scmi_notify_ops *notify_ops; -}; +struct ib_device_attr; -struct scmi_revision_info { - u16 major_ver; - u16 minor_ver; - u8 num_protocols; - u8 num_agents; - u32 impl_ver; - char vendor_id[16]; - char sub_vendor_id[16]; -}; +struct ib_udata; -struct scmi_device { - u32 id; - u8 protocol_id; - const char *name; - long: 32; - struct device dev; - struct scmi_handle *handle; - long: 32; -}; +struct ib_device_modify; -struct scmi_xfer_ops; +struct ib_port_attr; -struct scmi_proto_helpers_ops; +struct ib_port_modify; -struct scmi_protocol_handle { - struct device *dev; - const struct scmi_xfer_ops *xops; - const struct scmi_proto_helpers_ops *hops; - int (*set_priv)(const struct scmi_protocol_handle *, void *); - void * (*get_priv)(const struct scmi_protocol_handle *); -}; +struct ib_port_immutable; -struct scmi_xfer_ops { - int (*version_get)(const struct scmi_protocol_handle *, u32 *); - int (*xfer_get_init)(const struct scmi_protocol_handle *, u8, size_t, size_t, struct scmi_xfer **); - void (*reset_rx_to_maxsz)(const struct scmi_protocol_handle *, struct scmi_xfer *); - int (*do_xfer)(const struct scmi_protocol_handle *, struct scmi_xfer *); - int (*do_xfer_with_response)(const struct scmi_protocol_handle *, struct scmi_xfer *); - void (*xfer_put)(const struct scmi_protocol_handle *, struct scmi_xfer *); -}; +struct rdma_netdev_alloc_params; -struct scmi_msg_hdr { - u8 id; - u8 protocol_id; - u8 type; - u16 seq; - u32 status; - bool poll_completion; -}; +union ib_gid; -struct scmi_msg { - void *buf; - size_t len; -}; +struct ib_gid_attr; -struct scmi_xfer { - int transfer_id; - struct scmi_msg_hdr hdr; - struct scmi_msg tx; - struct scmi_msg rx; - struct completion done; - struct completion *async_done; - bool pending; - struct hlist_node node; - refcount_t users; - atomic_t busy; - int state; - int flags; - spinlock_t lock; - void *priv; -}; +struct ib_ucontext; -struct scmi_iterator_ops; +struct rdma_user_mmap_entry; -struct scmi_fc_db_info; +struct ib_pd; -struct scmi_proto_helpers_ops { - int (*extended_name_get)(const struct scmi_protocol_handle *, u8, u32, char *, size_t); - void * (*iter_response_init)(const struct scmi_protocol_handle *, struct scmi_iterator_ops *, unsigned int, u8, size_t, void *); - int (*iter_response_run)(void *); - void (*fastchannel_init)(const struct scmi_protocol_handle *, u8, u32, u32, u32, void **, struct scmi_fc_db_info **); - void (*fastchannel_db_ring)(struct scmi_fc_db_info *); -}; +struct ib_ah; -struct scmi_iterator_state; +struct rdma_ah_init_attr; -struct scmi_iterator_ops { - void (*prepare_message)(void *, unsigned int, const void *); - int (*update_state)(struct scmi_iterator_state *, const void *, void *); - int (*process_response)(const struct scmi_protocol_handle *, const void *, struct scmi_iterator_state *, void *); -}; +struct rdma_ah_attr; -struct scmi_iterator_state { - unsigned int desc_index; - unsigned int num_returned; - unsigned int num_remaining; - unsigned int max_resources; - unsigned int loop_idx; - size_t rx_len; - void *priv; -}; +struct ib_srq_init_attr; -struct scmi_fc_db_info { - int width; - long: 32; - u64 set; - u64 mask; - void *addr; - long: 32; -}; +struct ib_srq_attr; -struct scmi_notify_ops { - int (*devm_event_notifier_register)(struct scmi_device *, u8, u8, const u32 *, struct notifier_block *); - int (*devm_event_notifier_unregister)(struct scmi_device *, u8, u8, const u32 *, struct notifier_block *); - int (*event_notifier_register)(const struct scmi_handle *, u8, u8, const u32 *, struct notifier_block *); - int (*event_notifier_unregister)(const struct scmi_handle *, u8, u8, const u32 *, struct notifier_block *); -}; +struct ib_qp_init_attr; -struct scmi_shared_mem; +struct ib_qp_attr; -struct scmi_mailbox { - struct mbox_client cl; - struct mbox_chan *chan; - struct mbox_chan *chan_receiver; - struct scmi_chan_info *cinfo; - struct scmi_shared_mem *shmem; -}; +struct ib_cq_init_attr; -enum clocksource_ids { - CSID_GENERIC = 0, - CSID_ARM_ARCH_COUNTER = 1, - CSID_MAX = 2, +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 (*fill_res_srq_entry)(struct sk_buff *, struct ib_srq *); + int (*fill_res_srq_entry_raw)(struct sk_buff *, struct ib_srq *); + 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 vdso_clock_mode { - VDSO_CLOCKMODE_NONE = 0, - VDSO_CLOCKMODE_ARCHTIMER = 1, - VDSO_CLOCKMODE_MAX = 2, - VDSO_CLOCKMODE_TIMENS = 2147483647, +enum ib_atomic_cap { + IB_ATOMIC_NONE = 0, + IB_ATOMIC_HCA = 1, + IB_ATOMIC_GLOB = 2, }; -struct clocksource { - u64 (*read)(struct clocksource *); - long: 32; - 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 module *owner; +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 clocksource_mmio { - void *reg; - long: 32; - struct clocksource clksrc; +struct ib_rss_caps { + u32 supported_qpts; + u32 max_rwq_indirection_tables; + u32 max_rwq_indirection_table_size; }; -struct dw_apb_timer { - void *base; - unsigned long freq; - int irq; +struct ib_tm_caps { + u32 max_rndv_hdr_size; + u32 max_num_tags; + u32 flags; + u32 max_ops; + u32 max_sge; }; -struct dw_apb_clocksource { - struct dw_apb_timer timer; - long: 32; - struct clocksource cs; +struct ib_cq_caps { + u16 max_cq_moderation_count; + u16 max_cq_moderation_period; }; -struct dw_apb_clock_event_device { - struct clock_event_device ced; - struct dw_apb_timer timer; - void (*eoi)(struct dw_apb_timer *); - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +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; long: 32; + 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; long: 32; + 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; long: 32; + u64 max_dm_size; + u32 max_sgl_rd; long: 32; }; -struct samsung_pwm_variant { - u8 bits; - u8 div_base; - u8 tclk_mask; - u8 output_mask; - bool has_tint_cstat; -}; +struct hw_stats_device_data; -struct samsung_pwm_clocksource { - void *base; - const void *source_reg; - unsigned int irq[5]; - struct samsung_pwm_variant variant; - struct clk *timerclk; - unsigned int event_id; - unsigned int source_id; - unsigned int tcnt_max; - unsigned int tscaler_div; - unsigned int tdiv; - unsigned long clock_count_per_tick; +struct rdmacg_device { + struct list_head dev_node; + struct list_head rpools; + char *name; }; -struct bcma_device; +struct rdma_restrack_root; -struct bcma_host_ops { - u8 (*read8)(struct bcma_device *, u16); - u16 (*read16)(struct bcma_device *, u16); - u32 (*read32)(struct bcma_device *, u16); - void (*write8)(struct bcma_device *, u16, u8); - void (*write16)(struct bcma_device *, u16, u16); - void (*write32)(struct bcma_device *, u16, u32); - u32 (*aread32)(struct bcma_device *, u16); - void (*awrite32)(struct bcma_device *, u16, u32); -}; +struct uapi_definition; -struct bcma_device_id { - __u16 manuf; - __u16 id; - __u8 rev; - __u8 class; -}; +struct ib_port_data; -struct bcma_bus; +struct rdma_link_ops; -struct bcma_device { - struct bcma_bus *bus; - struct bcma_device_id id; +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; long: 32; - struct device dev; - struct device *dma_dev; - unsigned int irq; - bool dev_registered; - u8 core_index; - u8 core_unit; - u32 addr; - u32 addr_s[8]; - u32 wrap; - void *io_addr; - void *io_wrap; - void *drvdata; - struct list_head list; + 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; }; -enum bcma_hosttype { - BCMA_HOSTTYPE_PCI = 0, - BCMA_HOSTTYPE_SDIO = 1, - BCMA_HOSTTYPE_SOC = 2, -}; +struct ib_uqp_object; -struct bcma_chipinfo { - u16 id; - u8 rev; - u8 pkg; +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, }; -struct bcma_boardinfo { - u16 vendor; - u16 type; +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 bcma_chipcommon_pmu { - struct bcma_device *core; - u8 rev; - u32 crystalfreq; +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 bcma_sflash { - bool present; - u32 blocksize; - u16 numblocks; - u32 size; -}; +struct ib_event; -struct bcma_drv_cc { - struct bcma_device *core; - u32 status; - u32 capabilities; - u32 capabilities_ext; - u8 setup_done: 1; - u8 early_setup_done: 1; - u16 fast_pwrup_delay; - struct bcma_chipcommon_pmu pmu; - struct bcma_sflash sflash; - u32 ticks_per_ms; - struct platform_device *watchdog; - spinlock_t gpio_lock; - struct gpio_chip gpio; -}; +struct ib_qp_security; -struct bcma_drv_cc_b { - struct bcma_device *core; - u8 setup_done: 1; - void *mii; +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 bcma_drv_pci { - struct bcma_device *core; - u8 early_setup_done: 1; - u8 setup_done: 1; - u8 hostmode: 1; -}; +struct ib_uobject; -struct bcma_drv_pcie2 { - struct bcma_device *core; - u16 reqsize; +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 bcma_drv_mips { - struct bcma_device *core; - u8 setup_done: 1; - u8 early_setup_done: 1; -}; +struct ib_uverbs_file; -struct bcma_drv_gmac_cmn { - struct bcma_device *core; - struct mutex phy_mutex; +struct rdma_cgroup; + +struct ib_rdmacg_object { + struct rdma_cgroup *cg; }; -struct ssb_sprom_core_pwr_info { - u8 itssi_2g; - u8 itssi_5g; - u8 maxpwr_2g; - u8 maxpwr_5gl; - u8 maxpwr_5g; - u8 maxpwr_5gh; - u16 pa_2g[4]; - u16 pa_5gl[4]; - u16 pa_5g[4]; - u16 pa_5gh[4]; +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 ssb_sprom { - u8 revision; - short: 0; - u8 il0mac[6]; - u8 et0mac[6]; - u8 et1mac[6]; - u8 et2mac[6]; - u8 et0phyaddr; - u8 et1phyaddr; - u8 et2phyaddr; - u8 et0mdcport; - u8 et1mdcport; - u8 et2mdcport; - u16 dev_id; - u16 board_rev; - u16 board_num; - u16 board_type; - u8 country_code; - char alpha2[2]; - u8 leddc_on_time; - u8 leddc_off_time; - u8 ant_available_a; - u8 ant_available_bg; - u16 pa0b0; - u16 pa0b1; - u16 pa0b2; - u16 pa1b0; - u16 pa1b1; - u16 pa1b2; - u16 pa1lob0; - u16 pa1lob1; - u16 pa1lob2; - u16 pa1hib0; - u16 pa1hib1; - u16 pa1hib2; - u8 gpio0; - u8 gpio1; - u8 gpio2; - u8 gpio3; - u8 maxpwr_bg; - u8 maxpwr_al; - u8 maxpwr_a; - u8 maxpwr_ah; - u8 itssi_a; - u8 itssi_bg; - u8 tri2g; - u8 tri5gl; - u8 tri5g; - u8 tri5gh; - u8 txpid2g[4]; - u8 txpid5gl[4]; - u8 txpid5g[4]; - u8 txpid5gh[4]; - s8 rxpo2g; - s8 rxpo5g; - u8 rssisav2g; - u8 rssismc2g; - u8 rssismf2g; - u8 bxa2g; - u8 rssisav5g; - u8 rssismc5g; - u8 rssismf5g; - u8 bxa5g; - u16 cck2gpo; - u32 ofdm2gpo; - u32 ofdm5glpo; - u32 ofdm5gpo; - u32 ofdm5ghpo; - u32 boardflags; - u32 boardflags2; - u32 boardflags3; - u16 boardflags_lo; - u16 boardflags_hi; - u16 boardflags2_lo; - u16 boardflags2_hi; - struct ssb_sprom_core_pwr_info core_pwr_info[4]; - struct { - s8 a0; - s8 a1; - s8 a2; - s8 a3; - } antenna_gain; - struct { - struct { - u8 tssipos; - u8 extpa_gain; - u8 pdet_range; - u8 tr_iso; - u8 antswlut; - } ghz2; - struct { - u8 tssipos; - u8 extpa_gain; - u8 pdet_range; - u8 tr_iso; - u8 antswlut; - } ghz5; - } fem; - u16 mcs2gpo[8]; - u16 mcs5gpo[8]; - u16 mcs5glpo[8]; - u16 mcs5ghpo[8]; - u8 opo; - u8 rxgainerr2ga[3]; - u8 rxgainerr5gla[3]; - u8 rxgainerr5gma[3]; - u8 rxgainerr5gha[3]; - u8 rxgainerr5gua[3]; - u8 noiselvl2ga[3]; - u8 noiselvl5gla[3]; - u8 noiselvl5gma[3]; - u8 noiselvl5gha[3]; - u8 noiselvl5gua[3]; - u8 regrev; - u8 txchain; - u8 rxchain; - u8 antswitch; - u16 cddpo; - u16 stbcpo; - u16 bw40po; - u16 bwduppo; - u8 tempthresh; - u8 tempoffset; - u16 rawtempsense; - u8 measpower; - u8 tempsense_slope; - u8 tempcorrx; - u8 tempsense_option; - u8 freqoffset_corr; - u8 iqcal_swp_dis; - u8 hw_iqcal_en; - u8 elna2g; - u8 elna5g; - u8 phycal_tempdelta; - u8 temps_period; - u8 temps_hysteresis; - u8 measpower1; - u8 measpower2; - u8 pcieingress_war; - u16 cckbw202gpo; - u16 cckbw20ul2gpo; - u32 legofdmbw202gpo; - u32 legofdmbw20ul2gpo; - u32 legofdmbw205glpo; - u32 legofdmbw20ul5glpo; - u32 legofdmbw205gmpo; - u32 legofdmbw20ul5gmpo; - u32 legofdmbw205ghpo; - u32 legofdmbw20ul5ghpo; - u32 mcsbw202gpo; - u32 mcsbw20ul2gpo; - u32 mcsbw402gpo; - u32 mcsbw205glpo; - u32 mcsbw20ul5glpo; - u32 mcsbw405glpo; - u32 mcsbw205gmpo; - u32 mcsbw20ul5gmpo; - u32 mcsbw405gmpo; - u32 mcsbw205ghpo; - u32 mcsbw20ul5ghpo; - u32 mcsbw405ghpo; - u16 mcs32po; - u16 legofdm40duppo; - u8 sar2g; - u8 sar5g; +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 bcma_bus { - struct device *dev; - void *mmio; - const struct bcma_host_ops *ops; - enum bcma_hosttype hosttype; - bool host_is_pcie2; - struct pci_dev *host_pci; - struct bcma_chipinfo chipinfo; - struct bcma_boardinfo boardinfo; - struct bcma_device *mapped_core; - struct list_head cores; - u8 nr_cores; - u8 num; - struct bcma_drv_cc drv_cc; - struct bcma_drv_cc_b drv_cc_b; - struct bcma_drv_pci drv_pci[2]; - struct bcma_drv_pcie2 drv_pcie2; - struct bcma_drv_mips drv_mips; - struct bcma_drv_gmac_cmn drv_gmac_cmn; - struct ssb_sprom sprom; +struct rdma_cgroup { + struct cgroup_subsys_state css; + struct list_head rpools; }; -struct bcma_soc { - struct bcma_bus bus; - struct device *dev; +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 gpmc_cs_data { - const char *name; +struct ib_dm { + struct ib_device *device; + u32 length; u32 flags; - struct resource mem; + struct ib_uobject *uobject; + atomic_t usecnt; }; -struct gpmc_nand_ops { - bool (*nand_writebuffer_empty)(); +enum ib_signature_type { + IB_SIG_TYPE_NONE = 0, + IB_SIG_TYPE_T10_DIF = 1, }; -enum gpmc_clk_domain { - GPMC_CD_FCLK = 0, - GPMC_CD_CLK = 1, +enum ib_t10_dif_bg_type { + IB_T10DIF_CRC = 0, + IB_T10DIF_CSUM = 1, }; -enum gpio_lookup_flags { - GPIO_ACTIVE_HIGH = 0, - GPIO_ACTIVE_LOW = 1, - GPIO_OPEN_DRAIN = 2, - GPIO_OPEN_SOURCE = 4, - GPIO_PERSISTENT = 0, - GPIO_TRANSITORY = 8, - GPIO_PULL_UP = 16, - GPIO_PULL_DOWN = 32, - GPIO_PULL_DISABLE = 64, - GPIO_LOOKUP_FLAGS_DEFAULT = 0, +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 gpmc_cs_config { - u32 config1; - u32 config2; - u32 config3; - u32 config4; - u32 config5; - u32 config6; - u32 config7; - int is_valid; +struct ib_sig_domain { + enum ib_signature_type sig_type; + union { + struct ib_t10_dif_domain dif; + } sig; }; -struct omap3_gpmc_regs { - u32 sysconfig; - u32 irqenable; - u32 timeout_ctrl; - u32 config; - u32 prefetch_config1; - u32 prefetch_config2; - u32 prefetch_control; - struct gpmc_cs_config cs_context[8]; +struct ib_sig_attrs { + u8 check_mask; + struct ib_sig_domain mem; + struct ib_sig_domain wire; + int meta_length; }; -struct gpmc_waitpin; +struct irq_poll; -struct gpmc_device { - struct device *dev; - int irq; - struct irq_chip irq_chip; - struct gpio_chip gpio_chip; - struct notifier_block nb; - struct omap3_gpmc_regs context; - struct gpmc_waitpin *waitpins; - int nirqs; - unsigned int is_suspended: 1; - struct resource *data; -}; +typedef int irq_poll_fn(struct irq_poll *, int); -struct gpmc_waitpin { - u32 pin; - u32 polarity; - struct gpio_desc *desc; +struct irq_poll { + struct list_head list; + unsigned long state; + int weight; + irq_poll_fn *poll; }; -struct gpmc_bool_timings { - bool cycle2cyclediffcsen; - bool cycle2cyclesamecsen; - bool we_extra_delay; - bool oe_extra_delay; - bool adv_extra_delay; - bool cs_extra_delay; - bool time_para_granularity; -}; +struct ib_ucq_object; -struct gpmc_timings { - u32 sync_clk; - u32 cs_on; - u32 cs_rd_off; - u32 cs_wr_off; - u32 adv_on; - u32 adv_rd_off; - u32 adv_wr_off; - u32 adv_aad_mux_on; - u32 adv_aad_mux_rd_off; - u32 adv_aad_mux_wr_off; - u32 we_on; - u32 we_off; - u32 oe_on; - u32 oe_off; - u32 oe_aad_mux_on; - u32 oe_aad_mux_off; - u32 page_burst_access; - u32 access; - u32 rd_cycle; - u32 wr_cycle; - u32 bus_turnaround; - u32 cycle2cycle_delay; - u32 wait_monitoring; - u32 clk_activation; - u32 wr_access; - u32 wr_data_mux_bus; - struct gpmc_bool_timings bool_timings; -}; +typedef void (*ib_comp_handler)(struct ib_cq *, void *); -struct gpmc_settings { - bool burst_wrap; - bool burst_read; - bool burst_write; - bool device_nand; - bool sync_read; - bool sync_write; - bool wait_on_read; - bool wait_on_write; - u32 burst_len; - u32 device_width; - u32 mux_add_data; - u32 wait_pin; - u32 wait_pin_polarity; +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 gpmc_device_timings { - u32 t_ceasu; - u32 t_avdasu; - u32 t_avdp_r; - u32 t_avdp_w; - u32 t_aavdh; - u32 t_oeasu; - u32 t_aa; - u32 t_iaa; - u32 t_oe; - u32 t_ce; - u32 t_rd_cycle; - u32 t_cez_r; - u32 t_cez_w; - u32 t_oez; - u32 t_weasu; - u32 t_wpl; - u32 t_wph; - u32 t_wr_cycle; - u32 clk; - u32 t_bacc; - u32 t_ces; - u32 t_avds; - u32 t_avdh; - u32 t_ach; - u32 t_rdyo; - u32 t_ce_rdyz; - u32 t_ce_avd; - u8 cyc_aavdh_oe; - u8 cyc_aavdh_we; - u8 cyc_oe; - u8 cyc_wpl; - u32 cyc_iaa; - bool ce_xdelay; - bool avd_xdelay; - bool oe_xdelay; - bool we_xdelay; -}; +struct dim; -struct irq_affinity_desc { - struct cpumask mask; - unsigned int is_managed: 1; +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; + long: 32; + ktime_t timestamp; + u8 interrupt: 1; + u8 shared: 1; + unsigned int comp_vector; + struct rdma_restrack_entry res; + long: 32; }; -struct gpmc_nand_regs { - void *gpmc_nand_command; - void *gpmc_nand_address; - void *gpmc_nand_data; - void *gpmc_prefetch_config1; - void *gpmc_prefetch_config2; - void *gpmc_prefetch_control; - void *gpmc_prefetch_status; - void *gpmc_ecc_config; - void *gpmc_ecc_control; - void *gpmc_ecc_size_config; - void *gpmc_ecc1_result; - void *gpmc_bch_result0[8]; - void *gpmc_bch_result1[8]; - void *gpmc_bch_result2[8]; - void *gpmc_bch_result3[8]; - void *gpmc_bch_result4[8]; - void *gpmc_bch_result5[8]; - void *gpmc_bch_result6[8]; +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 gpmc_onenand_info { - bool sync_read; - bool sync_write; - int burst_len; +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 tee_param; +struct ib_usrq_object; -struct optee_supp_req { - struct list_head link; - bool in_queue; - u32 func; - u32 ret; - size_t num_params; - struct tee_param *param; - struct completion c; +enum ib_srq_type { + IB_SRQT_BASIC = 0, + IB_SRQT_XRC = 1, + IB_SRQT_TM = 2, }; -struct tee_shm; - -struct tee_param_memref { - size_t shm_offs; - size_t size; - struct tee_shm *shm; +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 tee_param_value { - u64 a; - u64 b; - u64 c; +struct ib_xrcd { + struct ib_device *device; + atomic_t usecnt; + struct inode *inode; + struct rw_semaphore tgt_qps_rwsem; + struct xarray tgt_qps; }; -struct tee_param { - u64 attr; - union { - struct tee_param_memref memref; - struct tee_param_value value; - } u; -}; +struct ib_uwq_object; -struct tee_context; +enum ib_wq_state { + IB_WQS_RESET = 0, + IB_WQS_RDY = 1, + IB_WQS_ERR = 2, +}; -struct tee_shm { - struct tee_context *ctx; - phys_addr_t paddr; - void *kaddr; - size_t size; - unsigned int offset; - struct page **pages; - size_t num_pages; - refcount_t refcount; - u32 flags; - int id; - u64 sec_world_id; +enum ib_wq_type { + IB_WQT_RQ = 0, }; -struct tee_device; +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; +}; -struct tee_context { - struct tee_device *teedev; - void *data; - struct kref refcount; - bool releasing; - bool supp_nowait; - bool cap_memref_null; +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, }; -struct optee_supp { - struct mutex mutex; - struct tee_context *ctx; - int req_id; - struct list_head reqs; - struct idr idr; - struct completion reqs_c; +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, }; -typedef void optee_invoke_fn(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, struct arm_smccc_res *); +struct ib_cqe; -struct optee_pcpu; +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 optee_smc { - optee_invoke_fn *invoke_fn; - void *memremaped_shm; - u32 sec_caps; - unsigned int notif_irq; - struct optee_pcpu __attribute__((btf_type_tag("percpu"))) *optee_pcpu; - struct workqueue_struct *notif_pcpu_wq; - struct work_struct notif_pcpu_work; - unsigned int notif_cpuhp_state; +struct ib_cqe { + void (*done)(struct ib_cq *, struct ib_wc *); }; -struct ffa_device; +struct dim_stats { + int ppms; + int bpms; + int epms; + int cpms; + int cpe_ratio; +}; -struct optee_ffa { - struct ffa_device *ffa_dev; - struct mutex mutex; - struct rhashtable global_ids; +struct dim_sample { + ktime_t time; + u32 pkt_ctr; + u32 byte_ctr; + u16 event_ctr; + u32 comp_ctr; }; -struct optee_shm_arg_cache { - u32 flags; - struct mutex mutex; - struct list_head shm_args; +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; + long: 32; }; -struct optee_call_queue { - struct mutex mutex; - struct list_head waiters; +union ib_gid { + u8 raw[16]; + struct { + __be64 subnet_prefix; + __be64 interface_id; + } global; }; -typedef unsigned long u_long; +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 optee_notif { - u_int max_key; - spinlock_t lock; - struct list_head db; - u_long *bitmap; +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; + long: 32; }; -struct optee_ops; +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 tee_shm_pool; +struct ib_ports_pkeys; -struct optee { - struct tee_device *supp_teedev; - struct tee_device *teedev; - const struct optee_ops *ops; - struct tee_context *ctx; - union { - struct optee_smc smc; - struct optee_ffa ffa; - }; - struct optee_shm_arg_cache shm_arg_cache; - struct optee_call_queue call_queue; - struct optee_notif notif; - struct optee_supp supp; - struct tee_shm_pool *pool; - unsigned int rpc_param_count; - bool scan_bus_done; - struct workqueue_struct *scan_bus_wq; - struct work_struct scan_bus_work; +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; }; -struct optee_msg_param; - -struct optee_ops { - int (*do_call_with_arg)(struct tee_context *, struct tee_shm *, u_int); - int (*to_msg_param)(struct optee *, struct optee_msg_param *, size_t, const struct tee_param *); - int (*from_msg_param)(struct optee *, struct tee_param *, size_t, const struct optee_msg_param *); +enum port_pkey_state { + IB_PORT_PKEY_NOT_VALID = 0, + IB_PORT_PKEY_VALID = 1, + IB_PORT_PKEY_LISTED = 2, }; -struct optee_msg_param_tmem { - u64 buf_ptr; - u64 size; - u64 shm_ref; +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 optee_msg_param_rmem { - u64 offs; - u64 size; - u64 shm_ref; +struct ib_ports_pkeys { + struct ib_port_pkey main; + struct ib_port_pkey alt; }; -struct optee_msg_param_fmem { - u32 offs_low; - u16 offs_high; - u16 internal_offs; - u64 size; - u64 global_id; +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, }; -struct optee_msg_param_value { - u64 a; - u64 b; - u64 c; +enum rdma_nl_counter_mask { + RDMA_COUNTER_MASK_QP_TYPE = 1, + RDMA_COUNTER_MASK_PID = 2, }; -struct optee_msg_param { - u64 attr; - union { - struct optee_msg_param_tmem tmem; - struct optee_msg_param_rmem rmem; - struct optee_msg_param_fmem fmem; - struct optee_msg_param_value value; - u8 octets[24]; - } u; +struct auto_mode_param { + int qp_type; }; -struct optee_pcpu { - struct optee *optee; +struct rdma_counter_mode { + enum rdma_nl_counter_mode mode; + enum rdma_nl_counter_mask mask; + struct auto_mode_param param; }; -struct rhash_lock_head {}; +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 tee_shm_pool_ops; +struct rdma_stat_desc; -struct tee_shm_pool { - const struct tee_shm_pool_ops *ops; - void *private_data; +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 tee_shm_pool_ops { - int (*alloc)(struct tee_shm_pool *, struct tee_shm *, size_t, size_t); - void (*free)(struct tee_shm_pool *, struct tee_shm *); - void (*destroy_pool)(struct tee_shm_pool *); +struct rdma_stat_desc { + const char *name; + unsigned int flags; + const void *priv; }; -enum qcom_icc_type { - QCOM_ICC_NOC = 0, - QCOM_ICC_BIMC = 1, - QCOM_ICC_QNOC = 2, +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 qcom_icc_node; - -struct qcom_icc_desc { - struct qcom_icc_node * const *nodes; - size_t num_nodes; - const char * const *bus_clocks; - const char * const *intf_clocks; - size_t num_intf_clocks; - bool no_clk_scaling; - enum qcom_icc_type type; - const struct regmap_config *regmap_cfg; - unsigned int qos_offset; +struct ib_send_wr { + struct ib_send_wr *next; + long: 32; + 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; + long: 32; }; -struct qcom_icc_qos { - u32 areq_prio; - u32 prio_level; - bool limit_commands; - bool ap_owned; - int qos_mode; - int qos_port; - bool urg_fwd_en; +struct ib_sge { + u64 addr; + u32 length; + u32 lkey; }; -struct qcom_icc_node { - unsigned char *name; - u16 id; - const u16 *links; - u16 num_links; - u16 channels; - u16 buswidth; +struct ib_recv_wr { + struct ib_recv_wr *next; long: 32; - u64 sum_avg[3]; - u64 max_peak[3]; - int mas_rpm_id; - int slv_rpm_id; - struct qcom_icc_qos qos; + union { + u64 wr_id; + struct ib_cqe *wr_cqe; + }; + struct ib_sge *sg_list; + int num_sge; }; -struct netdev_name_node { - struct hlist_node hlist; - struct list_head list; - struct net_device *dev; - const char *name; +struct ib_grh { + __be32 version_tclass_flow; + __be16 paylen; + u8 next_hdr; + u8 hop_limit; + union ib_gid sgid; + union ib_gid dgid; }; -struct inet_ehash_bucket; +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 inet_bind_hashbucket; +struct ib_device_modify { + u64 sys_image_guid; + char node_desc[64]; +}; -struct inet_listen_hashbucket; +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, +}; -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; +enum ib_mtu { + IB_MTU_256 = 1, + IB_MTU_512 = 2, + IB_MTU_1024 = 3, + IB_MTU_2048 = 4, + IB_MTU_4096 = 5, }; -struct hlist_nulls_head { - struct hlist_nulls_node *first; +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 inet_ehash_bucket { - struct hlist_nulls_head chain; +struct ib_port_modify { + u32 set_port_cap_mask; + u32 clr_port_cap_mask; + u8 init_type; }; -struct inet_bind_hashbucket { - spinlock_t lock; - struct hlist_head chain; +struct ib_port_immutable { + int pkey_tbl_len; + int gid_tbl_len; + u32 core_cap_flags; + u32 max_mad_size; }; -struct inet_listen_hashbucket { - spinlock_t lock; - struct hlist_nulls_head nulls_head; +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 udp_hslot; +struct rdma_user_mmap_entry { + struct kref ref; + struct ib_ucontext *ucontext; + unsigned long start_pgoff; + size_t npages; + bool driver_removed; +}; -struct udp_table { - struct udp_hslot *hash; - struct udp_hslot *hash2; - unsigned int mask; - unsigned int log; +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 udp_hslot { - struct hlist_head head; - int count; - spinlock_t lock; - long: 32; +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 inet_peer_base { - struct rb_root rb_root; - seqlock_t lock; - int total; +struct rdma_ah_init_attr { + struct rdma_ah_attr *ah_attr; + u32 flags; + struct net_device *xmit_slave; }; -struct ack_sample { - u32 pkts_acked; - s32 rtt_us; - u32 in_flight; +struct ib_ah_attr { + u16 dlid; + u8 src_path_bits; }; -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; - long: 32; +struct roce_ah_attr { + u8 dmac[6]; }; -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 opa_ah_attr { + u32 dlid; + u8 src_path_bits; + bool make_grd; }; -struct bpf_cgroup_storage_key { - __u64 cgroup_inode_id; - __u32 attach_type; +struct ib_global_route { + const struct ib_gid_attr *sgid_attr; long: 32; + union ib_gid dgid; + u32 flow_label; + u8 sgid_index; + u8 hop_limit; + u8 traffic_class; }; -struct bpf_storage_buffer; - -struct bpf_cgroup_storage_map; - -struct bpf_cgroup_storage { +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 bpf_storage_buffer *buf; - void __attribute__((btf_type_tag("percpu"))) *percpu_buf; + struct ib_ah_attr ib; + struct roce_ah_attr roce; + struct opa_ah_attr opa; }; - 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; - long: 32; }; -struct bpf_storage_buffer { - struct callback_head rcu; - char data[0]; +struct ib_srq_attr { + u32 max_wr; + u32 max_sge; + u32 srq_limit; }; -struct nd_opt_hdr { - __u8 nd_opt_type; - __u8 nd_opt_len; +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 ndisc_options { - struct nd_opt_hdr *nd_opt_array[15]; - struct nd_opt_hdr *nd_useropts; - struct nd_opt_hdr *nd_useropts_end; +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; }; -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; +enum ib_sig_type { + IB_SIGNAL_ALL_WR = 0, + IB_SIGNAL_REQ_WR = 1, }; -struct qdisc_walker { - int stop; - int skip; - int count; - int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *); +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 devlink_port_type { - DEVLINK_PORT_TYPE_NOTSET = 0, - DEVLINK_PORT_TYPE_AUTO = 1, - DEVLINK_PORT_TYPE_ETH = 2, - DEVLINK_PORT_TYPE_IB = 3, +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 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, +enum ib_mig_state { + IB_MIG_MIGRATED = 0, + IB_MIG_REARM = 1, + IB_MIG_ARMED = 2, }; -struct devlink_port_phys_attrs { - u32 port_number; - u32 split_subport_number; +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; + long: 32; + 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; + long: 32; }; -struct devlink_port_pci_pf_attrs { - u32 controller; - u16 pf; - u8 external: 1; +struct ib_cq_init_attr { + unsigned int cqe; + u32 comp_vector; + u32 flags; }; -struct devlink_port_pci_vf_attrs { - u32 controller; - u16 pf; - u16 vf; - u8 external: 1; +enum ib_sig_err_type { + IB_SIG_BAD_GUARD = 0, + IB_SIG_BAD_REFTAG = 1, + IB_SIG_BAD_APPTAG = 2, }; -struct devlink_port_pci_sf_attrs { - u32 controller; - u32 sf; - u16 pf; - u8 external: 1; +struct ib_sig_err { + enum ib_sig_err_type err_type; + u32 expected; + u32 actual; + long: 32; + u64 sig_err_offset; + u32 key; + long: 32; }; -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 ib_mr_status { + u32 fail_status; + long: 32; + struct ib_sig_err sig_err; }; -struct devlink; - -struct devlink_port_ops; - -struct ib_device; - -struct devlink_rate; - -struct devlink_linecard; - -struct devlink_port { - struct list_head list; - struct list_head region_list; - struct devlink *devlink; - const struct devlink_port_ops *ops; - unsigned int index; - spinlock_t type_lock; - enum devlink_port_type type; - enum devlink_port_type desired_type; - union { - struct { - struct net_device *netdev; - int ifindex; - char ifname[16]; - } type_eth; - struct { - struct ib_device *ibdev; - } type_ib; - }; - struct devlink_port_attrs attrs; - u8 attrs_set: 1; - u8 switch_port: 1; - u8 registered: 1; - u8 initialized: 1; - struct delayed_work type_warn_dw; - struct list_head reporter_list; - struct devlink_rate *devlink_rate; - struct devlink_linecard *linecard; +enum ib_mw_type { + IB_MW_TYPE_1 = 1, + IB_MW_TYPE_2 = 2, }; -enum devlink_port_fn_state { - DEVLINK_PORT_FN_STATE_INACTIVE = 0, - DEVLINK_PORT_FN_STATE_ACTIVE = 1, +struct ib_mw { + struct ib_device *device; + struct ib_pd *pd; + struct ib_uobject *uobject; + u32 rkey; + enum ib_mw_type type; }; -enum devlink_port_fn_opstate { - DEVLINK_PORT_FN_OPSTATE_DETACHED = 0, - DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1, +struct ib_flow { + struct ib_qp *qp; + struct ib_device *device; + struct ib_uobject *uobject; }; -struct devlink_port_ops { - int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *); - int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); - int (*port_type_set)(struct devlink_port *, enum devlink_port_type); - int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); - int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); - int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); - int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); - int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *); - int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); - int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *); - int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); - int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); +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, }; -enum devlink_rate_type { - DEVLINK_RATE_TYPE_LEAF = 0, - DEVLINK_RATE_TYPE_NODE = 1, +struct ib_flow_eth_filter { + u8 dst_mac[6]; + u8 src_mac[6]; + __be16 ether_type; + __be16 vlan_tag; + u8 real_sz[0]; }; -struct devlink_rate { - struct list_head list; - enum devlink_rate_type type; - struct devlink *devlink; - void *priv; - long: 32; - 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; - long: 32; +struct ib_flow_spec_eth { + u32 type; + u16 size; + struct ib_flow_eth_filter val; + struct ib_flow_eth_filter mask; }; -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 rtnl_link { - rtnl_doit_func doit; - rtnl_dumpit_func dumpit; - struct module *owner; - unsigned int flags; - struct callback_head rcu; +struct ib_flow_ib_filter { + __be16 dlid; + __u8 sl; + u8 real_sz[0]; }; -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; +struct ib_flow_spec_ib { + u32 type; + u16 size; + struct ib_flow_ib_filter val; + struct ib_flow_ib_filter mask; }; -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, +struct ib_flow_ipv4_filter { + __be32 src_ip; + __be32 dst_ip; + u8 proto; + u8 tos; + u8 ttl; + u8 flags; + u8 real_sz[0]; }; -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 ib_flow_spec_ipv4 { + u32 type; + u16 size; + struct ib_flow_ipv4_filter val; + struct ib_flow_ipv4_filter mask; }; -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, +struct ib_flow_tcp_udp_filter { + __be16 dst_port; + __be16 src_port; + u8 real_sz[0]; }; -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, +struct ib_flow_spec_tcp_udp { + u32 type; + u16 size; + struct ib_flow_tcp_udp_filter val; + struct ib_flow_tcp_udp_filter mask; }; -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, +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]; }; -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, +struct ib_flow_spec_ipv6 { + u32 type; + u16 size; + struct ib_flow_ipv6_filter val; + struct ib_flow_ipv6_filter mask; }; -enum { - IF_OPER_UNKNOWN = 0, - IF_OPER_NOTPRESENT = 1, - IF_OPER_DOWN = 2, - IF_OPER_LOWERLAYERDOWN = 3, - IF_OPER_TESTING = 4, - IF_OPER_DORMANT = 5, - IF_OPER_UP = 6, +struct ib_flow_tunnel_filter { + __be32 tunnel_id; + u8 real_sz[0]; }; -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, +struct ib_flow_spec_tunnel { + u32 type; + u16 size; + struct ib_flow_tunnel_filter val; + struct ib_flow_tunnel_filter mask; }; -enum { - IFLA_BRPORT_UNSPEC = 0, - IFLA_BRPORT_STATE = 1, - IFLA_BRPORT_PRIORITY = 2, - IFLA_BRPORT_COST = 3, - IFLA_BRPORT_MODE = 4, - IFLA_BRPORT_GUARD = 5, - IFLA_BRPORT_PROTECT = 6, - IFLA_BRPORT_FAST_LEAVE = 7, - IFLA_BRPORT_LEARNING = 8, - IFLA_BRPORT_UNICAST_FLOOD = 9, - IFLA_BRPORT_PROXYARP = 10, - IFLA_BRPORT_LEARNING_SYNC = 11, - IFLA_BRPORT_PROXYARP_WIFI = 12, - IFLA_BRPORT_ROOT_ID = 13, - IFLA_BRPORT_BRIDGE_ID = 14, - IFLA_BRPORT_DESIGNATED_PORT = 15, - IFLA_BRPORT_DESIGNATED_COST = 16, - IFLA_BRPORT_ID = 17, - IFLA_BRPORT_NO = 18, - IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19, - IFLA_BRPORT_CONFIG_PENDING = 20, - IFLA_BRPORT_MESSAGE_AGE_TIMER = 21, - IFLA_BRPORT_FORWARD_DELAY_TIMER = 22, - IFLA_BRPORT_HOLD_TIMER = 23, - IFLA_BRPORT_FLUSH = 24, - IFLA_BRPORT_MULTICAST_ROUTER = 25, - IFLA_BRPORT_PAD = 26, - IFLA_BRPORT_MCAST_FLOOD = 27, - IFLA_BRPORT_MCAST_TO_UCAST = 28, - IFLA_BRPORT_VLAN_TUNNEL = 29, - IFLA_BRPORT_BCAST_FLOOD = 30, - IFLA_BRPORT_GROUP_FWD_MASK = 31, - IFLA_BRPORT_NEIGH_SUPPRESS = 32, - IFLA_BRPORT_ISOLATED = 33, - IFLA_BRPORT_BACKUP_PORT = 34, - IFLA_BRPORT_MRP_RING_OPEN = 35, - IFLA_BRPORT_MRP_IN_OPEN = 36, - IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37, - IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38, - IFLA_BRPORT_LOCKED = 39, - IFLA_BRPORT_MAB = 40, - IFLA_BRPORT_MCAST_N_GROUPS = 41, - IFLA_BRPORT_MCAST_MAX_GROUPS = 42, - IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 43, - __IFLA_BRPORT_MAX = 44, +struct ib_flow_esp_filter { + __be32 spi; + __be32 seq; + u8 real_sz[0]; }; -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, +struct ib_flow_spec_esp { + u32 type; + u16 size; + struct ib_flow_esp_filter val; + struct ib_flow_esp_filter mask; }; -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, +struct ib_flow_gre_filter { + __be16 c_ks_res0_ver; + __be16 protocol; + __be32 key; + u8 real_sz[0]; }; -enum rtnl_link_flags { - RTNL_FLAG_DOIT_UNLOCKED = 1, - RTNL_FLAG_BULK_DEL_SUPPORTED = 2, +struct ib_flow_spec_gre { + u32 type; + u16 size; + struct ib_flow_gre_filter val; + struct ib_flow_gre_filter mask; }; -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, - SKB_DROP_REASON_SUBSYS_MASK = 4294901760, +struct ib_flow_mpls_filter { + __be32 tag; + u8 real_sz[0]; }; -enum rtnl_kinds { - RTNL_KIND_NEW = 0, - RTNL_KIND_DEL = 1, - RTNL_KIND_GET = 2, - RTNL_KIND_SET = 3, +struct ib_flow_spec_mpls { + u32 type; + u16 size; + struct ib_flow_mpls_filter val; + struct ib_flow_mpls_filter mask; }; -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 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, }; -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, +struct ib_flow_spec_action_tag { + enum ib_flow_spec_type type; + u16 size; + u32 tag_id; }; -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, +struct ib_flow_spec_action_drop { + enum ib_flow_spec_type type; + u16 size; }; -enum { - IFLA_VF_INFO_UNSPEC = 0, - IFLA_VF_INFO = 1, - __IFLA_VF_INFO_MAX = 2, +struct ib_flow_spec_action_handle { + enum ib_flow_spec_type type; + u16 size; + struct ib_flow_action *act; }; -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, +struct ib_flow_spec_action_count { + enum ib_flow_spec_type type; + u16 size; + struct ib_counters *counters; }; -enum { - IFLA_VF_VLAN_INFO_UNSPEC = 0, - IFLA_VF_VLAN_INFO = 1, - __IFLA_VF_VLAN_INFO_MAX = 2, +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; }; -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, +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 { - IFLA_VF_PORT_UNSPEC = 0, - IFLA_VF_PORT = 1, - __IFLA_VF_PORT_MAX = 2, +enum ib_flow_action_type { + IB_FLOW_ACTION_UNSPECIFIED = 0, + IB_FLOW_ACTION_ESP = 1, }; -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, +struct ib_flow_action { + struct ib_device *device; + struct ib_uobject *uobject; + enum ib_flow_action_type type; + atomic_t usecnt; }; -enum { - XDP_ATTACHED_NONE = 0, - XDP_ATTACHED_DRV = 1, - XDP_ATTACHED_SKB = 2, - XDP_ATTACHED_HW = 3, - XDP_ATTACHED_MULTI = 4, +struct ib_counters { + struct ib_device *device; + struct ib_uobject *uobject; + atomic_t usecnt; }; -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, +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; }; -enum bpf_xdp_mode { - XDP_MODE_SKB = 0, - XDP_MODE_DRV = 1, - XDP_MODE_HW = 2, - __MAX_XDP_MODE = 3, +struct ib_wq_attr { + enum ib_wq_state wq_state; + enum ib_wq_state curr_wq_state; + u32 flags; + u32 flags_mask; }; -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, +struct ib_rwq_ind_table_init_attr { + u32 log_ind_tbl_size; + struct ib_wq **ind_tbl; }; -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 ib_dm_alloc_attr { + u64 length; + u32 alignment; + u32 flags; }; -enum netdev_offload_xstats_type { - NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, +struct ib_dm_mr_attr { + u64 length; + u64 offset; + u32 access_flags; + long: 32; }; -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, +struct ib_counters_read_attr { + u64 *counters_buff; + u32 ncounters; + u32 flags; }; -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 ib_pkey_cache; -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 ib_gid_table; -enum { - MDBA_SET_ENTRY_UNSPEC = 0, - MDBA_SET_ENTRY = 1, - MDBA_SET_ENTRY_ATTRS = 2, - __MDBA_SET_ENTRY_MAX = 3, +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 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 *); +struct rdma_port_counter { + struct rdma_counter_mode mode; + struct rdma_hw_stats *hstats; + unsigned int num_counters; + struct mutex lock; }; -struct scm_creds { - u32 pid; - kuid_t uid; - kgid_t gid; -}; +struct ib_port; -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 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; + long: 32; + 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 rtgenmsg { - unsigned char rtgen_family; +struct rdma_link_ops { + struct list_head list; + const char *type; + int (*newlink)(const char *, struct net_device *); }; -typedef __kernel_clock_t clock_t; +struct devlink_flash_update_params { + const struct firmware *fw; + const char *component; + u32 overwrite_mask; +}; -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; +enum devlink_trap_type { + DEVLINK_TRAP_TYPE_DROP = 0, + DEVLINK_TRAP_TYPE_EXCEPTION = 1, + DEVLINK_TRAP_TYPE_CONTROL = 2, }; -struct rtnl_offload_xstats_request_used { - bool request; - bool used; +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 rtnl_newlink_tbs { - struct nlattr *tb[65]; - struct nlattr *attr[51]; - struct nlattr *slave_attr[44]; +struct devlink_trap_group { + const char *name; + u16 id; + bool generic; + u32 init_policer_id; }; -struct if_stats_msg { - __u8 family; - __u8 pad1; - __u16 pad2; - __u32 ifindex; - __u32 filter_mask; +struct devlink_trap_policer { + u32 id; + long: 32; + u64 init_rate; + u64 init_burst; + u64 max_rate; + u64 min_rate; + u64 max_burst; + u64 min_burst; }; -struct br_port_msg { - __u8 family; - __u32 ifindex; +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 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; +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, }; -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); +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 netlink_dump_control { - int (*start)(struct netlink_callback *); - int (*dump)(struct sk_buff *, struct netlink_callback *); - int (*done)(struct netlink_callback *); - struct netlink_ext_ack *extack; - void *data; - struct module *module; - u32 min_dump_alloc; +enum { + NLA_UNSPEC = 0, + NLA_U8 = 1, + NLA_U16 = 2, + NLA_U32 = 3, + NLA_U64 = 4, + NLA_STRING = 5, + NLA_FLAG = 6, + NLA_MSECS = 7, + NLA_NESTED = 8, + NLA_NESTED_ARRAY = 9, + NLA_NUL_STRING = 10, + NLA_BINARY = 11, + NLA_S8 = 12, + NLA_S16 = 13, + NLA_S32 = 14, + NLA_S64 = 15, + NLA_BITFIELD32 = 16, + NLA_REJECT = 17, + NLA_BE16 = 18, + NLA_BE32 = 19, + NLA_SINT = 20, + NLA_UINT = 21, + __NLA_TYPE_MAX = 22, }; -struct ifla_vf_mac { - __u32 vf; - __u8 mac[32]; +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, }; -struct ifla_vf_vlan { - __u32 vf; - __u32 vlan; - __u32 qos; +enum devlink_multicast_groups { + DEVLINK_MCGRP_CONFIG = 0, }; -struct ifla_vf_vlan_info { - __u32 vf; - __u32 vlan; - __u32 qos; - __be16 vlan_proto; +struct devlink_nl_dump_state { + unsigned long instance; + int idx; + union { + struct { + u64 start_offset; + }; + struct { + u64 dump_ts; + }; + }; }; -struct ifla_vf_tx_rate { - __u32 vf; - __u32 rate; +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 ifla_vf_rate { - __u32 vf; - __u32 min_tx_rate; - __u32 max_tx_rate; -}; +typedef int devlink_nl_dump_one_func_t(struct sk_buff *, struct devlink *, struct netlink_callback *, int); -struct ifla_vf_spoofchk { - __u32 vf; - __u32 setting; -}; +struct svc_xprt_class; -struct ifla_vf_link_state { - __u32 vf; - __u32 link_state; -}; +struct svc_xprt_ops; -struct ifla_vf_rss_query_en { - __u32 vf; - __u32 setting; +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 lwq_node 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 ifla_vf_trust { - __u32 vf; - __u32 setting; +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 rtnl_stats_dump_filters { - u32 mask[6]; +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_ctxt)(struct svc_xprt *, void *); + void (*xpo_detach)(struct svc_xprt *); + void (*xpo_free)(struct svc_xprt *); + void (*xpo_kill_temp_xprt)(struct svc_xprt *); + void (*xpo_handshake)(struct svc_xprt *); }; -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 xdr_array2_desc; -struct rtnl_mdb_dump_ctx { - long idx; -}; +typedef int (*xdr_xcode_elem_t)(struct xdr_array2_desc *, void *); -struct rtnl_link_ifmap { - __u64 mem_start; - __u64 mem_end; - __u64 base_addr; - __u16 irq; - __u8 dma; - __u8 port; - long: 32; +struct xdr_array2_desc { + unsigned int elem_size; + unsigned int array_len; + unsigned int array_maxlen; + xdr_xcode_elem_t xcode; }; -struct ifla_vf_broadcast { - __u8 broadcast[32]; -}; +struct acpi_gpio_params; -struct br_mdb_entry { - __u32 ifindex; - __u8 state; - __u8 flags; - __u16 vid; - struct { - union { - __be32 ip4; - struct in6_addr ip6; - unsigned char mac_addr[6]; - } u; - __be16 proto; - } addr; +struct acpi_gpio_mapping { + const char *name; + const struct acpi_gpio_params *data; + unsigned int size; + unsigned int quirks; }; -struct ethnl_req_info; - -struct ethnl_reply_data; +struct acpi_gpio_params { + unsigned int crs_entry_index; + unsigned int line_index; + bool active_low; +}; -struct genl_info; +struct rfkill; -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 rfkill_ops { + void (*poll)(struct rfkill *, void *); + void (*query)(struct rfkill *, void *); + int (*set_block)(void *, bool); }; -struct ethnl_req_info { - struct net_device *dev; - netdevice_tracker dev_tracker; - u32 flags; +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 ethnl_reply_data { - struct net_device *dev; +struct rfkill_gpio_data { + const char *name; + enum rfkill_type type; + struct gpio_desc *reset_gpio; + struct gpio_desc *shutdown_gpio; + struct rfkill *rfkill_dev; + struct clk *clk; + bool clk_enabled; }; -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; +enum handshake_handler_class { + HANDSHAKE_HANDLER_CLASS_NONE = 0, + HANDSHAKE_HANDLER_CLASS_TLSHD = 1, + HANDSHAKE_HANDLER_CLASS_MAX = 2, }; -struct genlmsghdr { - __u8 cmd; - __u8 version; - __u16 reserved; +enum hn_flags_bits { + HANDSHAKE_F_NET_DRAINING = 0, }; -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, +enum hr_flags_bits { + HANDSHAKE_F_REQ_COMPLETED = 0, + HANDSHAKE_F_REQ_SESSION = 1, }; -struct eee_reply_data { - struct ethnl_reply_data base; - struct ethtool_eee eee; -}; +struct handshake_proto; -typedef const char (* const ethnl_string_array_t)[32]; +struct handshake_req { + struct list_head hr_list; + struct rhash_head hr_rhash; + unsigned long hr_flags; + const struct handshake_proto *hr_proto; + struct sock *hr_sk; + void (*hr_odestruct)(struct sock *); + char hr_priv[0]; +}; -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, +struct handshake_proto { + int hp_handler_class; + size_t hp_privsize; + unsigned long hp_flags; + int (*hp_accept)(struct handshake_req *, struct genl_info *, int); + void (*hp_done)(struct handshake_req *, unsigned int, struct genl_info *); + void (*hp_destroy)(struct handshake_req *); }; -enum tcp_fastopen_client_fail { - TFO_STATUS_UNSPEC = 0, - TFO_COOKIE_UNAVAILABLE = 1, - TFO_DATA_NOT_ACKED = 2, - TFO_SYN_RETRANSMITTED = 3, +struct __una_u32 { + u32 x; }; -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, +struct handshake_net { + spinlock_t hn_lock; + int hn_pending; + int hn_pending_max; + struct list_head hn_requests; + unsigned long hn_flags; }; -enum tcp_synack_type { - TCP_SYNACK_NORMAL = 0, - TCP_SYNACK_FASTOPEN = 1, - TCP_SYNACK_COOKIE = 2, +struct async_domain { + struct list_head pending; + unsigned int registered: 1; }; -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 = 22, - MAX_CGROUP_BPF_ATTACH_TYPE = 23, +enum state { + Start = 0, + Collect = 1, + GotHeader = 2, + SkipIt = 3, + GotName = 4, + CopyFile = 5, + GotSymlink = 6, + Reset = 7, }; -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, +struct hash { + int ino; + int minor; + int major; + umode_t mode; + struct hash *next; + char name[4098]; }; -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, +enum umh_disable_depth { + UMH_ENABLED = 0, + UMH_FREEZING = 1, + UMH_DISABLED = 2, }; -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, +struct dir_entry { + struct list_head list; + time64_t mtime; + char name[0]; }; -struct ip_options; +typedef void (*async_func_t)(void *, async_cookie_t); -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; - long: 32; -}; +typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *)); -struct inet_cork_full { - struct inet_cork base; - struct flowi fl; +struct voltagedomain; + +struct powerdomain { + const char *name; + union { + const char *name; + struct voltagedomain *ptr; + } voltdm; + const s16 prcm_offs; + const u8 pwrsts; + const u8 pwrsts_logic_ret; + const u8 flags; + const u8 banks; + const u8 pwrsts_mem_ret[5]; + const u8 pwrsts_mem_on[5]; + const u8 prcm_partition; + struct clockdomain *pwrdm_clkdms[11]; + struct list_head node; + struct list_head voltdm_node; + int state; + unsigned int state_counter[4]; + unsigned int ret_logic_off_counter; + unsigned int ret_mem_off_counter[5]; + spinlock_t _lock; + unsigned long _lock_flags; + const u8 pwrstctrl_offs; + const u8 pwrstst_offs; + const u32 logicretstate_mask; + const u32 mem_on_mask[5]; + const u32 mem_ret_mask[5]; + const u32 mem_pwrst_mask[5]; + const u32 mem_retst_mask[5]; + u32 context; }; -struct ipv6_pinfo; +struct clkdm_dep; -struct ip_options_rcu; +struct clockdomain { + const char *name; + union { + const char *name; + struct powerdomain *ptr; + } pwrdm; + const u16 clktrctrl_mask; + const u8 flags; + u8 _flags; + const u8 dep_bit; + const u8 prcm_partition; + const u16 cm_inst; + const u16 clkdm_offs; + struct clkdm_dep *wkdep_srcs; + struct clkdm_dep *sleepdep_srcs; + int usecount; + int forcewake_count; + struct list_head node; + u32 context; +}; -struct ip_mc_socklist; +struct clkdm_dep { + const char *clkdm_name; + struct clockdomain *clkdm; + s16 wkdep_usecount; + s16 sleepdep_usecount; +}; -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; - atomic_t inet_id; - __be16 inet_sport; - __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; - long: 32; +struct pwrdm_ops { + int (*pwrdm_set_next_pwrst)(struct powerdomain *, u8); + int (*pwrdm_read_next_pwrst)(struct powerdomain *); + int (*pwrdm_read_pwrst)(struct powerdomain *); + int (*pwrdm_read_prev_pwrst)(struct powerdomain *); + int (*pwrdm_set_logic_retst)(struct powerdomain *, u8); + int (*pwrdm_set_mem_onst)(struct powerdomain *, u8, u8); + int (*pwrdm_set_mem_retst)(struct powerdomain *, u8, u8); + int (*pwrdm_read_logic_pwrst)(struct powerdomain *); + int (*pwrdm_read_prev_logic_pwrst)(struct powerdomain *); + int (*pwrdm_read_logic_retst)(struct powerdomain *); + int (*pwrdm_read_mem_pwrst)(struct powerdomain *, u8); + int (*pwrdm_read_prev_mem_pwrst)(struct powerdomain *, u8); + int (*pwrdm_read_mem_retst)(struct powerdomain *, u8); + int (*pwrdm_clear_all_prev_pwrst)(struct powerdomain *); + int (*pwrdm_enable_hdwr_sar)(struct powerdomain *); + int (*pwrdm_disable_hdwr_sar)(struct powerdomain *); + int (*pwrdm_set_lowpwrstchange)(struct powerdomain *); + int (*pwrdm_wait_transition)(struct powerdomain *); + int (*pwrdm_has_voltdm)(); + void (*pwrdm_save_context)(struct powerdomain *); + void (*pwrdm_restore_context)(struct powerdomain *); }; -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 prm_ll_data { + u32 (*read_reset_sources)(); + bool (*was_any_context_lost_old)(u8, s16, u16); + void (*clear_context_loss_flags_old)(u8, s16, u16); + int (*late_init)(); + int (*assert_hardreset)(u8, u8, s16, u16); + int (*deassert_hardreset)(u8, u8, u8, s16, u16, u16); + int (*is_hardreset_asserted)(u8, u8, s16, u16); + void (*reset_system)(); + int (*clear_mod_irqs)(s16, u8, u32); + u32 (*vp_check_txdone)(u8); + void (*vp_clear_txdone)(u8); }; -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 prm_reset_src_map { + s8 reg_shift; + s8 std_shift; }; -struct inet_bind_bucket; +struct omap_prcm_irq; -struct inet_bind2_bucket; +struct omap_prcm_irq_setup { + u16 ack; + u16 mask; + u16 pm_ctrl; + u8 nr_regs; + u8 nr_irqs; + const struct omap_prcm_irq *irqs; + int irq; + void (*read_pending_irqs)(unsigned long *); + void (*ocp_barrier)(); + void (*save_and_clear_irqen)(u32 *); + void (*restore_irqen)(u32 *); + void (*reconfigure_io_chain)(); + u32 *saved_mask; + u32 *priority_mask; + int base_irq; + bool suspended; + bool suspend_save_flag; +}; -struct inet_connection_sock_af_ops; +struct omap_prcm_irq { + const char *name; + unsigned int offset; + bool priority; +}; -struct tcp_ulp_ops; +struct omap3_vp { + u32 tranxdone_status; +}; -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; - long: 32; - u64 icsk_ca_priv[13]; -}; - -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; +enum { + TI_CLKM_CM = 0, + TI_CLKM_CM2 = 1, + TI_CLKM_PRM = 2, + TI_CLKM_SCRM = 3, + TI_CLKM_CTRL = 4, + TI_CLKM_CTRL_AUX = 5, + TI_CLKM_PLLSS = 6, + CLK_MAX_MEMMAPS = 7, }; -struct minmax_sample { - u32 t; - u32 v; +struct omap_prcm_init_data { + int index; + void *mem; + u32 phys; + s16 offset; + u16 flags; + s32 device_inst_offset; + int (*init)(const struct omap_prcm_init_data *); + struct device_node *np; }; -struct minmax { - struct minmax_sample s[3]; +struct pwrdm_link { + struct device *dev; + struct powerdomain *pwrdm; + struct list_head node; }; -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 clk_omap_reg { + void *ptr; + u16 offset; + u8 index; + u8 flags; }; -struct tcp_sack_block { - u32 start_seq; - u32 end_seq; -}; +struct dpll_data; -struct tcp_fastopen_request; +struct clk_hw_omap_ops; -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; - long: 32; - 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; - struct tcp_fastopen_request *fastopen_req; - struct request_sock __attribute__((btf_type_tag("rcu"))) *fastopen_rsk; - struct saved_syn *saved_syn; - long: 32; +struct clk_hw_omap { + struct clk_hw hw; + struct list_head node; + unsigned long fixed_rate; + u8 fixed_div; + struct clk_omap_reg enable_reg; + u8 enable_bit; + unsigned long flags; + struct clk_omap_reg clksel_reg; + struct dpll_data *dpll_data; + const char *clkdm_name; + struct clockdomain *clkdm; + const struct clk_hw_omap_ops *ops; + u32 context; + int autoidle_count; }; -struct in6_pktinfo { - struct in6_addr ipi6_addr; - int ipi6_ifindex; +struct dpll_data { + struct clk_omap_reg mult_div1_reg; + u32 mult_mask; + u32 div1_mask; + struct clk_hw *clk_bypass; + struct clk_hw *clk_ref; + struct clk_omap_reg control_reg; + u32 enable_mask; + unsigned long last_rounded_rate; + u16 last_rounded_m; + u8 last_rounded_m4xen; + u8 last_rounded_lpmode; + u16 max_multiplier; + u8 last_rounded_n; + u8 min_divider; + u16 max_divider; + unsigned long max_rate; + u8 modes; + struct clk_omap_reg autoidle_reg; + struct clk_omap_reg idlest_reg; + u32 autoidle_mask; + u32 freqsel_mask; + u32 idlest_mask; + u32 dco_mask; + u32 sddiv_mask; + u32 dcc_mask; + unsigned long dcc_rate; + u32 lpmode_mask; + u32 m4xen_mask; + u8 auto_recal_bit; + u8 recal_en_bit; + u8 recal_st_bit; + struct clk_omap_reg ssc_deltam_reg; + struct clk_omap_reg ssc_modfreq_reg; + u32 ssc_deltam_int_mask; + u32 ssc_deltam_frac_mask; + u32 ssc_modfreq_mant_mask; + u32 ssc_modfreq_exp_mask; + u32 ssc_enable_mask; + u32 ssc_downspread_mask; + u32 ssc_modfreq; + u32 ssc_deltam; + bool ssc_downspread; + u8 flags; }; -struct ipv6_txoptions; - -struct inet6_cork { - struct ipv6_txoptions *opt; - u8 hop_limit; - u8 tclass; +struct clk_hw_omap_ops { + void (*find_idlest)(struct clk_hw_omap *, struct clk_omap_reg *, u8 *, u8 *); + void (*find_companion)(struct clk_hw_omap *, struct clk_omap_reg *, u8 *); + void (*allow_idle)(struct clk_hw_omap *); + void (*deny_idle)(struct clk_hw_omap *); }; -struct ipv6_mc_socklist; +typedef void (*btf_trace_notifier_register)(void *, void *); -struct ipv6_ac_socklist; +typedef void (*btf_trace_notifier_unregister)(void *, void *); -struct ipv6_fl_socklist; +typedef void (*btf_trace_notifier_run)(void *, void *); -struct ipv6_pinfo { - struct in6_addr saddr; - struct in6_pktinfo sticky_pktinfo; - const struct in6_addr *daddr_cache; - const struct in6_addr *saddr_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 trace_event_raw_notifier_info { + struct trace_entry ent; + void *cb; + char __data[0]; }; -struct ip6_sf_socklist; +struct trace_event_data_offsets_notifier_info {}; -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 die_args { + struct pt_regs *regs; + const char *str; + long err; + int trapnr; + int signr; }; -struct ip6_sf_socklist { - unsigned int sl_max; - unsigned int sl_count; - struct callback_head rcu; - struct in6_addr sl_addr[0]; +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 ipv6_ac_socklist { - struct in6_addr acl_addr; - int acl_ifindex; - struct ipv6_ac_socklist *acl_next; -}; +typedef void (*btf_trace_rcu_utilization)(void *, const char *); -struct ip6_flowlabel; +typedef void (*btf_trace_rcu_grace_period)(void *, const char *, unsigned long, const char *); -struct ipv6_fl_socklist { - struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *next; - struct ip6_flowlabel *fl; - struct callback_head rcu; -}; +typedef void (*btf_trace_rcu_future_grace_period)(void *, const char *, unsigned long, unsigned long, u8, int, int, const char *); -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; -}; +typedef void (*btf_trace_rcu_grace_period_init)(void *, const char *, unsigned long, u8, int, int, unsigned long); -struct ipv6_opt_hdr; +typedef void (*btf_trace_rcu_exp_grace_period)(void *, const char *, unsigned long, const char *); -struct ipv6_rt_hdr; +typedef void (*btf_trace_rcu_exp_funnel_lock)(void *, const char *, u8, int, int, const char *); -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; +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; + unsigned long lazy_jiffies; + rcu_tasks_gp_func_t gp_func; + pregp_func_t pregp_func; + pertask_func_t pertask_func; + postscan_func_t postscan_func; + holdouts_func_t holdouts_func; + postgp_func_t postgp_func; + call_rcu_func_t call_func; + struct rcu_tasks_percpu __attribute__((btf_type_tag("percpu"))) *rtpcpu; + int percpu_enqueue_shift; + int percpu_enqueue_lim; + int percpu_dequeue_lim; + unsigned long percpu_dequeue_gpseq; + struct mutex barrier_q_mutex; + atomic_t barrier_q_count; + struct completion barrier_q_completion; + unsigned long barrier_q_seq; + char *name; + char *kname; }; -struct ipv6_opt_hdr { - __u8 nexthdr; - __u8 hdrlen; +struct rcu_tasks_percpu { + struct rcu_segcblist cblist; + raw_spinlock_t lock; + unsigned long rtp_jiffies; + unsigned long rtp_n_lock_retries; + struct timer_list lazy_timer; + unsigned int urgent_gp; + struct work_struct rtp_work; + struct irq_work rtp_irq_work; + struct callback_head barrier_q_head; + struct list_head rtp_blkd_tasks; + int cpu; + struct rcu_tasks *rtpp; }; -struct ipv6_rt_hdr { - __u8 nexthdr; - __u8 hdrlen; - __u8 type; - __u8 segments_left; +struct rcu_synchronize { + struct callback_head head; + struct completion completion; }; -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 trace_event_raw_rcu_utilization { + struct trace_entry ent; + const char *s; + char __data[0]; }; -struct ip_options_rcu { - struct callback_head rcu; - struct ip_options opt; +struct trace_event_raw_rcu_grace_period { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + const char *gpevent; + char __data[0]; }; -struct ip_mreqn { - struct in_addr imr_multiaddr; - struct in_addr imr_address; - int imr_ifindex; +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 ip_sf_socklist; +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 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 trace_event_raw_rcu_exp_grace_period { + struct trace_entry ent; + const char *rcuname; + long gpseq; + const char *gpevent; + char __data[0]; }; -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 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 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 trace_event_raw_rcu_preempt_task { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + int pid; + char __data[0]; }; -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 trace_event_raw_rcu_unlock_preempted_task { + struct trace_entry ent; + const char *rcuname; + long gp_seq; + int pid; + char __data[0]; }; -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 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 tcp_fastopen_cookie { - __le64 val[2]; - s8 len; - bool exp; - long: 32; +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 tcp_fastopen_request { - struct tcp_fastopen_cookie cookie; - struct msghdr *data; - size_t size; - int copied; - struct ubuf_info *uarg; +struct trace_event_raw_rcu_stall_warning { + struct trace_entry ent; + const char *rcuname; + const char *msg; + char __data[0]; }; -struct inet_skb_parm { - int iif; - struct ip_options opt; - u16 flags; - u16 frag_max_size; +struct trace_event_raw_rcu_dyntick { + struct trace_entry ent; + const char *polarity; + long oldnesting; + long newnesting; + int dynticks; + char __data[0]; }; -struct inet6_skb_parm { - int iif; - __be16 ra; - __u16 dst0; - __u16 srcrt; - __u16 dst1; - __u16 lastopt; - __u16 nhoff; - __u16 flags; - __u16 dsthao; - __u16 frag_max_size; - __u16 srhoff; +struct trace_event_raw_rcu_callback { + struct trace_entry ent; + const char *rcuname; + void *rhp; + void *func; + long qlen; + char __data[0]; }; -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; - long: 32; - union { - struct { - __u32 is_app_limited: 1; - __u32 delivered_ce: 20; - __u32 unused: 11; - __u32 delivered; - u64 first_tx_mstamp; - u64 delivered_mstamp; - } tx; - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - } header; - }; +struct trace_event_raw_rcu_segcb_stats { + struct trace_entry ent; + const char *ctx; + unsigned long gp_seq[4]; + long seglen[4]; + char __data[0]; }; -typedef struct bio_vec skb_frag_t; +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 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; - long: 32; - 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 trace_event_raw_rcu_batch_start { + struct trace_entry ent; + const char *rcuname; + long qlen; + long blimit; + char __data[0]; }; -typedef __u16 __sum16; +struct trace_event_raw_rcu_invoke_callback { + struct trace_entry ent; + const char *rcuname; + void *rhp; + void *func; + char __data[0]; +}; -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 trace_event_raw_rcu_invoke_kvfree_callback { + struct trace_entry ent; + const char *rcuname; + void *rhp; + unsigned long offset; + char __data[0]; }; -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 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 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 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 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 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 tcp_request_sock_ops; +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 tcp_request_sock { - struct inet_request_sock req; - const struct tcp_request_sock_ops *af_specific; - long: 32; - u64 snt_synack; - bool tfo_listener; - bool is_mptcp; - u32 txhash; - u32 rcv_isn; - u32 snt_isn; - u32 ts_off; - u32 last_oow_ack_time; - u32 rcv_nxt; - u8 syn_tos; +struct rcu_cblist { + struct callback_head *head; + struct callback_head **tail; + long len; }; -struct tcp_request_sock_ops { - u16 mss_clamp; - struct dst_entry * (*route_req)(const struct sock *, struct sk_buff *, struct flowi *, struct request_sock *); - u32 (*init_seq)(const struct sk_buff *); - u32 (*init_ts_off)(const struct net *, const struct sk_buff *); - int (*send_synack)(const struct sock *, struct dst_entry *, struct flowi *, struct request_sock *, struct tcp_fastopen_cookie *, enum tcp_synack_type, struct sk_buff *); +struct trc_stall_chk_rdr { + int nesting; + int ipi_to_cpu; + u8 needqs; }; -typedef void (*rcu_callback_t)(struct callback_head *); +typedef int (*task_call_f)(struct task_struct *, void *); -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; - long: 32; - u64 temp; -}; +typedef void (*smp_call_func_t)(void *); -struct xfrm_dst; +struct trace_event_data_offsets_rcu_utilization {}; -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 *); -}; +struct trace_event_data_offsets_rcu_grace_period {}; -struct rt6key { - struct in6_addr addr; - int plen; -}; +struct trace_event_data_offsets_rcu_future_grace_period {}; -struct rtable; +struct trace_event_data_offsets_rcu_grace_period_init {}; -struct fnhe_hash_bucket; +struct trace_event_data_offsets_rcu_exp_grace_period {}; -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 trace_event_data_offsets_rcu_exp_funnel_lock {}; -struct rt6_exception_bucket; +struct trace_event_data_offsets_rcu_preempt_task {}; -struct fib6_nh { - struct fib_nh_common nh_common; - unsigned long last_probe; - struct rt6_info * __attribute__((btf_type_tag("percpu"))) *rt6i_pcpu; - struct rt6_exception_bucket __attribute__((btf_type_tag("rcu"))) *rt6i_exception_bucket; -}; +struct trace_event_data_offsets_rcu_unlock_preempted_task {}; -struct fib6_node; +struct trace_event_data_offsets_rcu_quiescent_state_report {}; -struct dst_metrics; +struct trace_event_data_offsets_rcu_fqs {}; -struct nexthop; +struct trace_event_data_offsets_rcu_stall_warning {}; -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 trace_event_data_offsets_rcu_dyntick {}; -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_node __attribute__((btf_type_tag("rcu"))) *subtree; - 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 trace_event_data_offsets_rcu_callback {}; -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 trace_event_data_offsets_rcu_segcb_stats {}; -struct dst_metrics { - u32 metrics[17]; - refcount_t refcnt; -}; +struct trace_event_data_offsets_rcu_kvfree_callback {}; -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 trace_event_data_offsets_rcu_batch_start {}; -struct fib_nh_exception; +struct trace_event_data_offsets_rcu_invoke_callback {}; -struct fnhe_hash_bucket { - struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *chain; -}; +struct trace_event_data_offsets_rcu_invoke_kvfree_callback {}; -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 trace_event_data_offsets_rcu_invoke_kfree_bulk_callback {}; -struct rt6_info { - struct dst_entry dst; - struct fib6_info __attribute__((btf_type_tag("rcu"))) *from; - int sernum; - struct rt6key rt6i_dst; - struct rt6key rt6i_src; - struct in6_addr rt6i_gateway; - struct inet6_dev *rt6i_idev; - u32 rt6i_flags; - unsigned short rt6i_nfheader_len; -}; +struct trace_event_data_offsets_rcu_batch_end {}; -struct rt6_exception_bucket { - struct hlist_head chain; - int depth; -}; +struct trace_event_data_offsets_rcu_torture_read {}; -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 trace_event_data_offsets_rcu_barrier {}; + +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; }; -struct xfrm_sec_ctx { - __u8 ctx_doi; - __u8 ctx_alg; - __u16 ctx_len; - __u32 ctx_sid; - char ctx_str[0]; +union bpf_iter_link_info { + struct { + __u32 map_fd; + } map; + struct { + enum bpf_cgroup_iter_order order; + __u32 cgroup_fd; + __u64 cgroup_id; + } cgroup; + struct { + __u32 tid; + __u32 pid; + __u32 pid_fd; + } task; }; -struct 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 kallsym_iter { + loff_t pos; + loff_t pos_mod_end; + loff_t pos_ftrace_mod_end; + loff_t pos_bpf_end; + unsigned long value; + unsigned int nameoff; + char type; + char name[512]; + char module_name[60]; + int exported; + int show_value; }; -struct ip_sf_list; +struct bpf_iter_meta; -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]; +struct bpf_iter__ksym { union { - struct ip_mc_list *next; - struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *next_rcu; + struct bpf_iter_meta *meta; + }; + union { + struct kallsym_iter *ksym; }; - 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 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; +struct bpf_iter_meta { + union { + struct seq_file *seq; + }; + u64 session_id; + u64 seq_num; }; -enum xfrm_replay_mode { - XFRM_REPLAY_MODE_LEGACY = 0, - XFRM_REPLAY_MODE_BMP = 1, - XFRM_REPLAY_MODE_ESN = 2, +enum cpu_pm_event { + CPU_PM_ENTER = 0, + CPU_PM_ENTER_FAILED = 1, + CPU_PM_EXIT = 2, + CPU_CLUSTER_PM_ENTER = 3, + CPU_CLUSTER_PM_ENTER_FAILED = 4, + CPU_CLUSTER_PM_EXIT = 5, }; -struct xfrm_stats { - __u32 replay_window; - __u32 replay; - __u32 integrity_failed; +struct bpf_empty_prog_array { + struct bpf_prog_array hdr; + struct bpf_prog *null_prog; + long: 32; }; -struct xfrm_mode { - u8 encap; - u8 family; - u8 flags; -}; +typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32); -struct xfrm_algo_auth; +typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int); -struct xfrm_algo; +typedef void (*btf_trace_xdp_redirect)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); -struct xfrm_algo_aead; +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); -struct xfrm_encap_tmpl; +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); -struct xfrm_replay_state_esn; +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); -struct xfrm_type; +struct xdp_cpumap_stats; -struct xfrm_type_offload; +typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); -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; - long: 32; - struct xfrm_lifetime_cur curlft; - struct hrtimer mtimer; - struct xfrm_dev_offload xso; - long saved_tmo; - long: 32; - 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; - long: 32; +struct xdp_cpumap_stats { + unsigned int redirect; + unsigned int pass; + unsigned int drop; }; -struct xfrm_address_filter { - xfrm_address_t saddr; - xfrm_address_t daddr; - __u16 family; - __u8 splen; - __u8 dplen; -}; +typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int); -struct xfrm_algo_auth { - char alg_name[64]; - unsigned int alg_key_len; - unsigned int alg_trunc_len; - char alg_key[0]; -}; +typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int); -struct xfrm_algo { - char alg_name[64]; - unsigned int alg_key_len; - char alg_key[0]; -}; +struct xdp_mem_allocator; -struct xfrm_algo_aead { - char alg_name[64]; - unsigned int alg_key_len; - unsigned int alg_icv_len; - char alg_key[0]; -}; +typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *); -struct xfrm_encap_tmpl { - __u16 encap_type; - __be16 encap_sport; - __be16 encap_dport; - xfrm_address_t encap_oa; +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 xfrm_replay_state_esn { - unsigned int bmp_len; - __u32 oseq; - __u32 seq; - __u32 oseq_hi; - __u32 seq_hi; - __u32 replay_window; - __u32 bmp[0]; -}; +typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *); -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 *); -}; +typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *); -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); -}; +typedef void (*btf_trace_bpf_xdp_link_attach_failed)(void *, const char *); -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 rnd_state { + __u32 s1; + __u32 s2; + __u32 s3; + __u32 s4; }; -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 bpf_prog_dummy { + struct bpf_prog prog; }; -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 bpf_text_poke_type { + BPF_MOD_CALL = 0, + BPF_MOD_JUMP = 1, }; -struct udp_seq_afinfo { - sa_family_t family; - struct udp_table *udp_table; +enum xdp_action { + XDP_ABORTED = 0, + XDP_DROP = 1, + XDP_PASS = 2, + XDP_TX = 3, + XDP_REDIRECT = 4, }; -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +typedef u64 (*btf_bpf_user_rnd_u32)(); + +typedef u64 (*btf_bpf_get_raw_cpu_id)(); + +struct bpf_array_aux; + +struct bpf_array { + struct bpf_map map; + u32 elem_size; + u32 index_mask; + struct bpf_array_aux *aux; long: 32; + 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: 32; long: 32; - struct sk_buff_head reader_queue; - int forward_deficit; - int forward_threshold; long: 32; long: 32; long: 32; @@ -44336,1899 +52205,2172 @@ struct udp_sock { long: 32; }; -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 bpf_array_aux { + struct list_head poke_progs; + struct bpf_map *map; + struct mutex poke_mutex; + struct work_struct work; }; -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 trace_event_raw_xdp_exception { + struct trace_entry ent; + int prog_id; + u32 act; + int ifindex; + char __data[0]; }; -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 trace_event_raw_xdp_bulk_tx { + struct trace_entry ent; + int ifindex; + u32 act; + int drops; + int sent; + int err; + char __data[0]; }; -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 _bpf_dtab_netdev { + struct net_device *dev; }; -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 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 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 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 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 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 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 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 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 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 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 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 tnl_ptk_info { - __be16 flags; - __be16 proto; - __be32 key; - __be32 seq; - int hdr_len; +struct trace_event_raw_mem_return_failed { + struct trace_entry ent; + const struct page *page; + u32 mem_id; + u32 mem_type; + char __data[0]; }; -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, +struct trace_event_raw_bpf_xdp_link_attach_failed { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -enum rt_scope_t { - RT_SCOPE_UNIVERSE = 0, - RT_SCOPE_SITE = 200, - RT_SCOPE_LINK = 253, - RT_SCOPE_HOST = 254, - RT_SCOPE_NOWHERE = 255, +struct trace_event_data_offsets_bpf_xdp_link_attach_failed { + u32 msg; }; -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, -}; +typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long); -enum { - RTN_UNSPEC = 0, - RTN_UNICAST = 1, - RTN_LOCAL = 2, - RTN_BROADCAST = 3, - RTN_ANYCAST = 4, - RTN_MULTICAST = 5, - RTN_BLACKHOLE = 6, - RTN_UNREACHABLE = 7, - RTN_PROHIBIT = 8, - RTN_THROW = 9, - RTN_NAT = 10, - RTN_XRESOLVE = 11, - __RTN_MAX = 12, -}; +struct trace_event_data_offsets_xdp_exception {}; -enum { - INET_ECN_NOT_ECT = 0, - INET_ECN_ECT_1 = 1, - INET_ECN_ECT_0 = 2, - INET_ECN_CE = 3, - INET_ECN_MASK = 3, -}; +struct trace_event_data_offsets_xdp_bulk_tx {}; -enum tunnel_encap_types { - TUNNEL_ENCAP_NONE = 0, - TUNNEL_ENCAP_FOU = 1, - TUNNEL_ENCAP_GUE = 2, - TUNNEL_ENCAP_MPLS = 3, -}; +struct trace_event_data_offsets_xdp_redirect_template {}; -enum { - IFLA_IPTUN_UNSPEC = 0, - IFLA_IPTUN_LINK = 1, - IFLA_IPTUN_LOCAL = 2, - IFLA_IPTUN_REMOTE = 3, - IFLA_IPTUN_TTL = 4, - IFLA_IPTUN_TOS = 5, - IFLA_IPTUN_ENCAP_LIMIT = 6, - IFLA_IPTUN_FLOWINFO = 7, - IFLA_IPTUN_FLAGS = 8, - IFLA_IPTUN_PROTO = 9, - IFLA_IPTUN_PMTUDISC = 10, - IFLA_IPTUN_6RD_PREFIX = 11, - IFLA_IPTUN_6RD_RELAY_PREFIX = 12, - IFLA_IPTUN_6RD_PREFIXLEN = 13, - IFLA_IPTUN_6RD_RELAY_PREFIXLEN = 14, - IFLA_IPTUN_ENCAP_TYPE = 15, - IFLA_IPTUN_ENCAP_FLAGS = 16, - IFLA_IPTUN_ENCAP_SPORT = 17, - IFLA_IPTUN_ENCAP_DPORT = 18, - IFLA_IPTUN_COLLECT_METADATA = 19, - IFLA_IPTUN_FWMARK = 20, - __IFLA_IPTUN_MAX = 21, -}; +struct trace_event_data_offsets_xdp_cpumap_kthread {}; -enum { - XFRM_POLICY_IN = 0, - XFRM_POLICY_OUT = 1, - XFRM_POLICY_FWD = 2, - XFRM_POLICY_MASK = 3, - XFRM_POLICY_MAX = 3, -}; +struct trace_event_data_offsets_xdp_cpumap_enqueue {}; -enum { - XFRM_DEV_OFFLOAD_UNSPECIFIED = 0, - XFRM_DEV_OFFLOAD_CRYPTO = 1, - XFRM_DEV_OFFLOAD_PACKET = 2, -}; +struct trace_event_data_offsets_xdp_devmap_xmit {}; -enum skb_ext_id { - SKB_EXT_SEC_PATH = 0, - SKB_EXT_NUM = 1, -}; +struct trace_event_data_offsets_mem_disconnect {}; -struct dst_cache_pcpu; +struct trace_event_data_offsets_mem_connect {}; -struct dst_cache { - struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache; - unsigned long reset_ts; -}; +struct trace_event_data_offsets_mem_return_failed {}; -struct ip_tunnel_encap { - u16 type; - u16 flags; - __be16 sport; - __be16 dport; +struct reciprocal_value { + u32 m; + u8 sh1; + u8 sh2; }; -struct gro_cell; - -struct gro_cells { - struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells; +struct kmem_cache_order_objects { + unsigned int x; }; -struct ip_tunnel_prl_entry; +struct kmem_cache_cpu; -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 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]; }; -struct dst_cache_pcpu { - unsigned long refresh_ts; - struct dst_entry *dst; - u32 cookie; +typedef u64 freelist_full_t; + +typedef union { + struct { + void *freelist; + unsigned long counter; + }; + freelist_full_t full; +} freelist_aba_t; + +struct slab; + +struct kmem_cache_cpu { union { - struct in_addr in_saddr; - struct in6_addr in6_saddr; + struct { + void **freelist; + unsigned long tid; + }; + freelist_aba_t freelist_tid; }; + struct slab *slab; + struct slab *partial; + local_lock_t lock; }; -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 slab { + unsigned long __page_flags; + struct kmem_cache *slab_cache; + union { + struct { + union { + struct list_head slab_list; + struct { + struct slab *next; + int slabs; + }; + }; + union { + struct { + void *freelist; + union { + unsigned long counters; + struct { + unsigned int inuse: 16; + unsigned int objects: 15; + unsigned int frozen: 1; + }; + }; + }; + }; + }; + struct callback_head callback_head; + }; + unsigned int __unused; + atomic_t __page_refcount; + unsigned long memcg_data; }; -struct gro_cell { - struct sk_buff_head napi_skbs; - struct napi_struct napi; +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; }; -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 { + FOLL_WRITE = 1, + FOLL_GET = 2, + FOLL_DUMP = 4, + FOLL_FORCE = 8, + FOLL_NOWAIT = 16, + FOLL_NOFAULT = 32, + FOLL_HWPOISON = 64, + FOLL_ANON = 128, + FOLL_LONGTERM = 256, + FOLL_SPLIT_PMD = 512, + FOLL_PCI_P2PDMA = 1024, + FOLL_INTERRUPTIBLE = 2048, + FOLL_HONOR_NUMA_FAULT = 4096, }; -struct 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; +enum { + FOLL_TOUCH = 65536, + FOLL_TRIED = 131072, + FOLL_REMOTE = 262144, + FOLL_PIN = 524288, + FOLL_FAST_ONLY = 1048576, + FOLL_UNLOCKABLE = 2097152, }; -struct sit_net { - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_r_l[16]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_r[16]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_l[16]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_wc[1]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) **tunnels[4]; - struct net_device *fb_tunnel_dev; +enum 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 ip_tunnel_prl { - __be32 addr; - __u16 flags; - __u16 __reserved; - __u32 datalen; - __u32 __reserved2; +enum migratetype { + MIGRATE_UNMOVABLE = 0, + MIGRATE_MOVABLE = 1, + MIGRATE_RECLAIMABLE = 2, + MIGRATE_PCPTYPES = 3, + MIGRATE_HIGHATOMIC = 3, + MIGRATE_CMA = 4, + MIGRATE_ISOLATE = 5, + MIGRATE_TYPES = 6, }; -struct vlan_hdr { - __be16 h_vlan_TCI; - __be16 h_vlan_encapsulated_proto; +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 xfrm_offload { - struct { - __u32 low; - __u32 hi; - } seq; - __u32 flags; - __u32 status; - __u8 proto; - __u8 inner_ipproto; -}; +struct compact_control; -struct sec_path { - int len; - int olen; - int verified_cnt; - struct xfrm_state *xvec[6]; - struct xfrm_offload ovec[1]; +struct capture_control { + struct compact_control *cc; + struct page *page; }; -struct rpc_sysfs_xprt_switch { - struct kobject kobject; - struct net *net; - struct rpc_xprt_switch *xprt_switch; - struct rpc_xprt *xprt; +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 rpc_sysfs_xprt { - struct kobject kobject; - struct rpc_xprt *xprt; - struct rpc_xprt_switch *xprt_switch; +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; }; -typedef struct rpc_xprt * (*xprt_switch_find_xprt_t)(struct rpc_xprt_switch *, const struct rpc_xprt *); - -struct arm_delay_ops { - void (*delay)(unsigned long); - void (*const_udelay)(unsigned long); - void (*udelay)(unsigned long); - unsigned long ticks_per_jiffy; +struct follow_page_context { + struct dev_pagemap *pgmap; + unsigned int page_mask; }; -typedef enum { - ZSTD_frame = 0, - ZSTD_skippableFrame = 1, -} ZSTD_frameType_e; +struct migration_target_control { + int nid; + nodemask_t *nmask; + gfp_t gfp_mask; +}; -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; - long: 32; -} ZSTD_frameHeader; +typedef struct folio *new_folio_t(struct folio *, unsigned long); -typedef ZSTD_frameHeader zstd_frame_header; +typedef void free_folio_t(struct folio *, unsigned long); -typedef uint16_t U16; +typedef void (*btf_trace_alloc_vmap_area)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int); -typedef uint8_t BYTE; +typedef void (*btf_trace_purge_vmap_area_lazy)(void *, unsigned long, unsigned long, unsigned int); -typedef uint32_t U32; +typedef void (*btf_trace_free_vmap_area_noflush)(void *, unsigned long, unsigned long, unsigned long); -typedef struct { - U16 nextState; - BYTE nbAdditionalBits; - BYTE nbBits; - U32 baseValue; -} ZSTD_seqSymbol; +struct vfree_deferred { + struct llist_head list; + struct work_struct wq; +}; -typedef U32 HUF_DTable; +struct vmap_block_queue { + spinlock_t lock; + struct list_head free; + struct xarray vmap_blocks; +}; -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; +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; +}; -typedef uint64_t U64; +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, +}; -typedef enum { - bt_raw = 0, - bt_rle = 1, - bt_compressed = 2, - bt_reserved = 3, -} blockType_e; +enum fit_type { + NOTHING_FIT = 0, + FL_FIT_TYPE = 1, + LE_FIT_TYPE = 2, + RE_FIT_TYPE = 3, + NE_FIT_TYPE = 4, +}; -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 unsigned int kasan_vmalloc_flags_t; -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; - long: 32; +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]; }; -typedef enum { - ZSTD_f_zstd1 = 0, - ZSTD_f_zstd1_magicless = 1, -} ZSTD_format_e; +struct trace_event_raw_purge_vmap_area_lazy { + struct trace_entry ent; + unsigned long start; + unsigned long end; + unsigned int npurged; + char __data[0]; +}; -typedef enum { - ZSTD_d_validateChecksum = 0, - ZSTD_d_ignoreChecksum = 1, -} ZSTD_forceIgnoreChecksum_e; +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]; +}; -typedef void * (*ZSTD_allocFunction)(void *, size_t); +struct vmap_block { + spinlock_t lock; + struct vmap_area *va; + unsigned long free; + unsigned long dirty; + unsigned long used_map[4]; + unsigned long dirty_min; + unsigned long dirty_max; + struct list_head free_list; + struct callback_head callback_head; + struct list_head purge; +}; -typedef void (*ZSTD_freeFunction)(void *, void *); +typedef unsigned int pgtbl_mod_mask; -typedef struct { - ZSTD_allocFunction customAlloc; - ZSTD_freeFunction customFree; - void *opaque; -} ZSTD_customMem; +struct trace_event_data_offsets_alloc_vmap_area {}; -typedef enum { - ZSTD_use_indefinitely = -1, - ZSTD_dont_use = 0, - ZSTD_use_once = 1, -} ZSTD_dictUses_e; +struct trace_event_data_offsets_purge_vmap_area_lazy {}; -struct ZSTD_DDict_s; +struct trace_event_data_offsets_free_vmap_area_noflush {}; -typedef struct ZSTD_DDict_s ZSTD_DDict; +struct nsset { + unsigned int flags; + struct nsproxy *nsproxy; + struct fs_struct *fs; + const struct cred *cred; +}; -typedef struct { - const ZSTD_DDict **ddictPtrTable; - size_t ddictPtrTableSize; - size_t ddictPtrCount; -} ZSTD_DDictHashSet; +struct mount; -typedef enum { - ZSTD_rmd_refSingleDDict = 0, - ZSTD_rmd_refMultipleDDicts = 1, -} ZSTD_refMultipleDDicts_e; +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; + long: 32; + u64 event; + unsigned int mounts; + unsigned int pending_mounts; +}; -typedef enum { - zdss_init = 0, - zdss_loadHeader = 1, - zdss_read = 2, - zdss_load = 3, - zdss_flush = 4, -} ZSTD_dStreamStage; +struct mnt_pcp; -typedef enum { - ZSTD_bm_buffered = 0, - ZSTD_bm_stable = 1, -} ZSTD_bufferMode_e; +struct mountpoint; -struct ZSTD_outBuffer_s { - void *dst; - size_t size; - size_t pos; +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; }; -typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; - -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; - 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; - long: 32; +struct mnt_pcp { + int mnt_count; + int mnt_writers; }; -typedef struct ZSTD_DCtx_s ZSTD_DCtx; +struct mountpoint { + struct hlist_node m_hash; + struct dentry *m_dentry; + struct hlist_head m_list; + int m_count; +}; -typedef ZSTD_DCtx ZSTD_DStream; +struct fs_struct { + int users; + spinlock_t lock; + seqcount_spinlock_t seq; + int umask; + int in_exec; + struct path root; + struct path pwd; +}; -typedef ZSTD_DStream zstd_dstream; +enum umount_tree_flags { + UMOUNT_SYNC = 1, + UMOUNT_PROPAGATE = 2, + UMOUNT_CONNECTED = 4, +}; -typedef ZSTD_outBuffer zstd_out_buffer; +enum mnt_tree_flags_t { + MNT_TREE_MOVE = 1, + MNT_TREE_BENEATH = 2, +}; -struct ZSTD_inBuffer_s { - const void *src; - size_t size; - size_t pos; +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, }; -typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; +struct mount_attr { + __u64 attr_set; + __u64 attr_clr; + __u64 propagation; + __u64 userns_fd; +}; -typedef ZSTD_inBuffer zstd_in_buffer; +typedef void (*task_work_func_t)(struct callback_head *); -typedef ZSTD_DCtx zstd_dctx; +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; +}; -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 mnt_idmap { + struct user_namespace *owner; + refcount_t count; +}; -typedef ZSTD_ErrorCode zstd_error_code; +struct proc_mounts { + struct mnt_namespace *ns; + struct path root; + int (*show)(struct seq_file *, struct vfsmount *); + struct mount cursor; +}; enum { - ASSUME_PERFECT = 255, - ASSUME_VALID_DTB = 1, - ASSUME_VALID_INPUT = 2, - ASSUME_LATEST = 4, - ASSUME_NO_ROLLBACK = 8, - ASSUME_LIBFDT_ORDER = 16, - ASSUME_LIBFDT_FLAWLESS = 32, + MBE_REFERENCED_B = 0, + MBE_REUSABLE_B = 1, }; -typedef __be32 fdt32_t; - -struct fdt_header { - fdt32_t magic; - fdt32_t totalsize; - fdt32_t off_dt_struct; - fdt32_t off_dt_strings; - fdt32_t off_mem_rsvmap; - fdt32_t version; - fdt32_t last_comp_version; - fdt32_t boot_cpuid_phys; - fdt32_t size_dt_strings; - fdt32_t size_dt_struct; +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; + long: 32; + u64 e_value; }; -typedef __be64 fdt64_t; +struct mb_cache { + struct hlist_bl_head *c_hash; + int c_bucket_bits; + unsigned long c_max_entries; + spinlock_t c_list_lock; + struct list_head c_list; + unsigned long c_entry_count; + struct shrinker *c_shrink; + struct work_struct c_shrink_work; +}; -struct fdt_reserve_entry { - fdt64_t address; - fdt64_t size; +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 fdt_node_header { - fdt32_t tag; - char name[0]; +struct posix_acl_xattr_header { + __le32 a_version; }; -struct fdt_property { - fdt32_t tag; - fdt32_t len; - fdt32_t nameoff; - char data[0]; +struct posix_acl_xattr_entry { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; }; -struct radix_tree_preload { - local_lock_t lock; - unsigned int nr; - struct xa_node *nodes; +enum { + BIAS = 2147483648, }; enum { - RADIX_TREE_ITER_TAG_MASK = 15, - RADIX_TREE_ITER_TAGGED = 16, - RADIX_TREE_ITER_CONTIG = 32, + PROC_ENTRY_PERMANENT = 1, }; -struct radix_tree_iter { - unsigned long index; - unsigned long next_index; - unsigned long tags; - struct xa_node *node; +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 linux_binprm; +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; + long: 32; + struct inode vfs_inode; +}; -struct coredump_params; +typedef int (*proc_write_t)(struct file *, char *, size_t); -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; +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; + long: 32; + 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]; + long: 32; }; -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 pde_opener { + struct list_head lh; 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]; + bool closing; + struct completion *c; }; -struct nsset { - unsigned int flags; - struct nsproxy *nsproxy; - struct fs_struct *fs; - const struct cred *cred; +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; }; -typedef void (*btf_trace_initcall_level)(void *, const char *); - -typedef void (*btf_trace_initcall_start)(void *, initcall_t); - -typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int); - -typedef initcall_t initcall_entry_t; +struct timens_offsets { + struct timespec64 monotonic; + struct timespec64 boottime; +}; -struct trace_event_raw_initcall_level { - struct trace_entry ent; - u32 __data_loc_level; - char __data[0]; +struct time_namespace { + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct ns_common ns; + struct timens_offsets offsets; + struct page *vvar_page; + bool frozen_offsets; }; -struct trace_event_raw_initcall_start { - struct trace_entry ent; - initcall_t func; - char __data[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, }; -struct trace_event_raw_initcall_finish { - struct trace_entry ent; - initcall_t func; - int ret; - char __data[0]; +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 blacklist_entry { - struct list_head next; - char *buf; +struct kernel_cpustat { + u64 cpustat[10]; }; -struct trace_event_data_offsets_initcall_level { - u32 level; +struct kernel_stat { + unsigned long irqs_sum; + unsigned int softirqs[10]; }; -struct trace_event_data_offsets_initcall_start {}; +struct config_group; -struct trace_event_data_offsets_initcall_finish {}; +struct config_item_type; -struct soc_device_attribute { - const char *machine; - const char *family; - const char *revision; - const char *serial_number; - const char *soc_id; - const void *data; - const struct attribute_group *custom_attr_group; +struct config_item { + char *ci_name; + char ci_namebuf[20]; + struct kref ci_kref; + struct list_head ci_entry; + struct config_item *ci_parent; + struct config_group *ci_group; + const struct config_item_type *ci_type; + struct dentry *ci_dentry; }; -struct imx5_suspend_io_state; +struct configfs_subsystem; -struct imx5_pm_data { - phys_addr_t ccm_addr; - phys_addr_t cortex_addr; - phys_addr_t gpc_addr; - phys_addr_t m4if_addr; - phys_addr_t iomuxc_addr; - void (*suspend_asm)(void *); - const u32 *suspend_asm_sz; - const struct imx5_suspend_io_state *suspend_io_config; - int suspend_io_count; +struct config_group { + struct config_item cg_item; + struct list_head cg_children; + struct configfs_subsystem *cg_subsys; + struct list_head default_groups; + struct list_head group_entry; }; -struct imx5_suspend_io_state { - u32 offset; - u32 clear; - u32 set; - u32 saved_value; +struct configfs_subsystem { + struct config_group su_group; + struct mutex su_mutex; }; -enum mxc_cpu_pwr_mode { - WAIT_CLOCKED = 0, - WAIT_UNCLOCKED = 1, - WAIT_UNCLOCKED_POWER_OFF = 2, - STOP_POWER_ON = 3, - STOP_POWER_OFF = 4, -}; +struct configfs_item_operations; -struct imx5_cpu_suspend_info { - void *m4if_base; - void *iomuxc_base; - u32 io_count; - struct imx5_suspend_io_state io_state[20]; - long: 32; -}; +struct configfs_group_operations; -struct omap_hwmod_class_sysconfig; +struct configfs_attribute; -struct omap_hwmod; +struct configfs_bin_attribute; -struct omap_hwmod_class { - const char *name; - struct omap_hwmod_class_sysconfig *sysc; - int (*pre_shutdown)(struct omap_hwmod *); - int (*reset)(struct omap_hwmod *); - void (*lock)(struct omap_hwmod *); - void (*unlock)(struct omap_hwmod *); +struct config_item_type { + struct module *ct_owner; + struct configfs_item_operations *ct_item_ops; + struct configfs_group_operations *ct_group_ops; + struct configfs_attribute **ct_attrs; + struct configfs_bin_attribute **ct_bin_attrs; }; -struct sysc_regbits; - -struct omap_hwmod_class_sysconfig { - s32 rev_offs; - s32 sysc_offs; - s32 syss_offs; - u16 sysc_flags; - struct sysc_regbits *sysc_fields; - u8 srst_udelay; - u8 idlemodes; +struct configfs_item_operations { + void (*release)(struct config_item *); + int (*allow_link)(struct config_item *, struct config_item *); + void (*drop_link)(struct config_item *, struct config_item *); }; -struct omap_hwmod_omap2_prcm { - s16 module_offs; - u8 idlest_reg_id; - u8 idlest_idle_bit; +struct configfs_group_operations { + struct config_item * (*make_item)(struct config_group *, const char *); + struct config_group * (*make_group)(struct config_group *, const char *); + void (*disconnect_notify)(struct config_group *, struct config_item *); + void (*drop_item)(struct config_group *, struct config_item *); }; -struct omap_hwmod_omap4_prcm { - u16 clkctrl_offs; - u16 rstctrl_offs; - u16 rstst_offs; - u16 context_offs; - u32 lostcontext_mask; - u8 submodule_wkdep_bit; - u8 modulemode; - u8 flags; - int context_lost_counter; +struct configfs_attribute { + const char *ca_name; + struct module *ca_owner; + umode_t ca_mode; + ssize_t (*show)(struct config_item *, char *); + ssize_t (*store)(struct config_item *, const char *, size_t); }; -struct omap_hwmod_rst_info; - -struct omap_hwmod_opt_clk; - -struct omap_hwmod_ocp_if; - -struct omap_hwmod { - const char *name; - struct omap_hwmod_class *class; - struct omap_device *od; - struct omap_hwmod_rst_info *rst_lines; - union { - struct omap_hwmod_omap2_prcm omap2; - struct omap_hwmod_omap4_prcm omap4; - } prcm; - const char *main_clk; - struct clk *_clk; - struct omap_hwmod_opt_clk *opt_clks; - const char *clkdm_name; - struct clockdomain *clkdm; - struct list_head slave_ports; - void *dev_attr; - u32 _sysc_cache; - void *_mpu_rt_va; - spinlock_t _lock; - struct lock_class_key hwmod_key; - struct list_head node; - struct omap_hwmod_ocp_if *_mpu_port; - u32 flags; - u8 mpu_rt_idx; - u8 response_lat; - u8 rst_lines_cnt; - u8 opt_clks_cnt; - u8 slaves_cnt; - u8 hwmods_cnt; - u8 _int_flags; - u8 _state; - u8 _postsetup_state; - struct omap_hwmod *parent_hwmod; +struct configfs_bin_attribute { + struct configfs_attribute cb_attr; + void *cb_private; + size_t cb_max_size; + ssize_t (*read)(struct config_item *, void *, size_t); + ssize_t (*write)(struct config_item *, const void *, size_t); }; -struct omap_hwmod_rst_info { - const char *name; - u8 rst_shift; - u8 st_shift; +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, }; -struct omap_hwmod_opt_clk { - const char *role; - const char *clk; - struct clk *_clk; +enum ext4_journal_trigger_type { + EXT4_JTR_ORPHAN_FILE = 0, + EXT4_JTR_NONE = 1, }; -struct omap_hwmod_omap2_firewall { - u8 l3_perm_bit; - u8 l4_fw_region; - u8 l4_prot_group; - u8 flags; +struct extent_status; + +struct ext4_es_tree { + struct rb_root root; + struct extent_status *cache_es; }; -struct omap_hwmod_addr_space; +struct ext4_pending_tree { + struct rb_root root; +}; -struct omap_hwmod_ocp_if { - struct omap_hwmod *master; - struct omap_hwmod *slave; - struct omap_hwmod_addr_space *addr; - const char *clk; - struct clk *_clk; - struct list_head node; +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_state_flags; + unsigned long i_flags; + struct rw_semaphore xattr_sem; union { - struct omap_hwmod_omap2_firewall omap2; - } fw; - u8 width; - u8 user; - u8 flags; - u8 _int_flags; + 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; + long: 32; + loff_t i_disksize; + struct rw_semaphore i_data_sem; + struct inode vfs_inode; + struct jbd2_inode *jinode; + spinlock_t i_raw_lock; + struct timespec64 i_crtime; + atomic_t i_prealloc_active; + struct rb_root i_prealloc_node; + rwlock_t i_prealloc_lock; + struct ext4_es_tree i_es_tree; + rwlock_t i_es_lock; + struct list_head i_es_list; + unsigned int i_es_all_nr; + unsigned int i_es_shk_nr; + ext4_lblk_t i_es_shrink_lblk; + ext4_group_t i_last_alloc_group; + unsigned int i_reserved_data_blocks; + struct ext4_pending_tree i_pending_tree; + __u16 i_extra_isize; + u16 i_inline_off; + u16 i_inline_size; + spinlock_t i_completed_io_lock; + struct list_head i_rsv_conversion_list; + struct work_struct i_rsv_conversion_work; + atomic_t i_unwritten; + spinlock_t i_block_reservation_lock; + tid_t i_sync_tid; + tid_t i_datasync_tid; + __u32 i_csum_seed; + kprojid_t i_projid; + long: 32; }; -struct omap_device { - struct platform_device *pdev; - struct omap_hwmod **hwmods; - unsigned long _driver_status; - u8 hwmods_cnt; - u8 _state; - u8 flags; +struct extent_status { + struct rb_node rb_node; + ext4_lblk_t es_lblk; + ext4_lblk_t es_len; + long: 32; + ext4_fsblk_t es_pblk; }; -struct omap_vc_channel; - -struct omap_vfsm_instance; - -struct omap_vp_instance; - -struct omap_voltdm_pmic; - -struct omap_vp_param; - -struct omap_vc_param; +struct jbd2_journal_handle; -struct omap_volt_data; +typedef struct jbd2_journal_handle handle_t; -struct voltagedomain { - char *name; - bool scalable; - struct list_head node; - struct omap_vc_channel *vc; - const struct omap_vfsm_instance *vfsm; - struct omap_vp_instance *vp; - struct omap_voltdm_pmic *pmic; - struct omap_vp_param *vp_param; - struct omap_vc_param *vc_param; - u32 (*read)(u8); - void (*write)(u32, u8); - u32 (*rmw)(u32, u32, u8); +struct jbd2_journal_handle { union { - const char *name; - u32 rate; - } sys_clk; - int (*scale)(struct voltagedomain *, unsigned long); - u32 nominal_volt; - struct omap_volt_data *volt_data; + transaction_t *h_transaction; + journal_t *h_journal; + }; + handle_t *h_rsv_handle; + int h_total_credits; + int h_revoke_credits; + int h_revoke_credits_requested; + int h_ref; + int h_err; + unsigned int h_sync: 1; + unsigned int h_jdata: 1; + unsigned int h_reserved: 1; + unsigned int h_aborted: 1; + unsigned int h_type: 8; + unsigned int h_line_no: 16; + unsigned long h_start_jiffies; + unsigned int h_requested_credits; + unsigned int saved_alloc_context; }; -struct omap_vc_common; - -struct omap_vc_channel { - u16 i2c_slave_addr; - u16 volt_reg_addr; - u16 cmd_reg_addr; - u8 cfg_channel; - bool i2c_high_speed; - const struct omap_vc_common *common; - u32 smps_sa_mask; - u32 smps_volra_mask; - u32 smps_cmdra_mask; - u8 cmdval_reg; - u8 smps_sa_reg; - u8 smps_volra_reg; - u8 smps_cmdra_reg; - u8 cfg_channel_reg; - u8 cfg_channel_sa_shift; - u8 flags; +enum { + EXT4_STATE_NEW = 0, + EXT4_STATE_XATTR = 1, + EXT4_STATE_NO_EXPAND = 2, + EXT4_STATE_DA_ALLOC_CLOSE = 3, + EXT4_STATE_EXT_MIGRATE = 4, + EXT4_STATE_NEWENTRY = 5, + EXT4_STATE_MAY_INLINE_DATA = 6, + EXT4_STATE_EXT_PRECACHED = 7, + EXT4_STATE_LUSTRE_EA_INODE = 8, + EXT4_STATE_VERITY_IN_PROGRESS = 9, + EXT4_STATE_FC_COMMITTING = 10, + EXT4_STATE_ORPHAN_FILE = 11, }; -struct omap_vc_common { - u32 cmd_on_mask; - u32 valid; - u8 bypass_val_reg; - u8 data_shift; - u8 slaveaddr_shift; - u8 regaddr_shift; - u8 cmd_on_shift; - u8 cmd_onlp_shift; - u8 cmd_ret_shift; - u8 cmd_off_shift; - u8 i2c_cfg_reg; - u8 i2c_cfg_clear_mask; - u8 i2c_cfg_hsen_mask; - u8 i2c_mcode_mask; +enum { + EXT4_MF_MNTDIR_SAMPLED = 0, + EXT4_MF_FC_INELIGIBLE = 1, }; -struct omap_vfsm_instance { - u32 voltsetup_mask; - u8 voltsetup_reg; - u8 voltsetup_off_reg; +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 omap_vp_common; +enum { + EXT4_FC_STATUS_OK = 0, + EXT4_FC_STATUS_INELIGIBLE = 1, + EXT4_FC_STATUS_SKIPPED = 2, + EXT4_FC_STATUS_FAILED = 3, +}; -struct omap_vp_instance { - const struct omap_vp_common *common; - u8 vpconfig; - u8 vstepmin; - u8 vstepmax; - u8 vlimitto; - u8 vstatus; - u8 voltage; - u8 id; - bool enabled; +struct ext4_fc_dentry_update { + int fcd_op; + int fcd_parent; + int fcd_ino; + long: 32; + struct qstr fcd_name; + unsigned char fcd_iname[36]; + struct list_head fcd_list; + struct list_head fcd_dilist; + long: 32; }; -struct omap_vp_ops; +struct __track_dentry_update_args { + struct dentry *dentry; + int op; +}; -struct omap_vp_common { - u32 vpconfig_erroroffset_mask; - u32 vpconfig_errorgain_mask; - u32 vpconfig_initvoltage_mask; - u8 vpconfig_timeouten; - u8 vpconfig_initvdd; - u8 vpconfig_forceupdate; - u8 vpconfig_vpenable; - u8 vstepmin_stepmin_shift; - u8 vstepmin_smpswaittimemin_shift; - u8 vstepmax_stepmax_shift; - u8 vstepmax_smpswaittimemax_shift; - u8 vlimitto_vddmin_shift; - u8 vlimitto_vddmax_shift; - u8 vlimitto_timeout_shift; - u8 vpvoltage_mask; - const struct omap_vp_ops *ops; +struct __track_range_args { + ext4_lblk_t start; + ext4_lblk_t end; }; -struct omap_vp_ops { - u32 (*check_txdone)(u8); - void (*clear_txdone)(u8); +struct ext4_extent { + __le32 ee_block; + __le16 ee_len; + __le16 ee_start_hi; + __le32 ee_start_lo; }; -struct omap_voltdm_pmic { - int slew_rate; - int step_size; - u16 i2c_slave_addr; - u16 volt_reg_addr; - u16 cmd_reg_addr; - u8 vp_erroroffset; - u8 vp_vstepmin; - u8 vp_vstepmax; - u32 vddmin; - u32 vddmax; - u8 vp_timeout_us; - bool i2c_high_speed; - u32 i2c_pad_load; - u8 i2c_mcode; - unsigned long (*vsel_to_uv)(const u8); - u8 (*uv_to_vsel)(unsigned long); +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 omap_vp_param { - u32 vddmax; - u32 vddmin; +struct ext4_fc_tl { + __le16 fc_tag; + __le16 fc_len; }; -struct omap_vc_param { - u32 on; - u32 onlp; - u32 ret; - u32 off; +struct ext4_extent_header { + __le16 eh_magic; + __le16 eh_entries; + __le16 eh_max; + __le16 eh_depth; + __le32 eh_generation; }; -struct omap_volt_data { - u32 volt_nominal; - u32 sr_efuse_offs; - u8 sr_errminlimit; - u8 vp_errgain; +struct ext4_fc_head { + __le32 fc_features; + __le32 fc_tid; }; -struct taint_flag { - char c_true; - char c_false; - bool module; +struct ext4_fc_dentry_info { + __le32 fc_parent_ino; + __le32 fc_ino; + __u8 fc_dname[0]; }; -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 ext4_fc_tail { + __le32 fc_tid; + __le32 fc_crc; }; -enum con_flush_mode { - CONSOLE_FLUSH_PENDING = 0, - CONSOLE_REPLAY_ALL = 1, +struct ext4_fc_tl_mem { + u16 fc_tag; + u16 fc_len; }; -enum error_detector { - ERROR_DETECTOR_KFENCE = 0, - ERROR_DETECTOR_KASAN = 1, - ERROR_DETECTOR_WARN = 2, +struct ext4_fc_add_range { + __le32 fc_ino; + __u8 fc_ex[12]; }; -enum ftrace_dump_mode { - DUMP_NONE = 0, - DUMP_ALL = 1, - DUMP_ORIG = 2, +struct ext4_iloc { + struct buffer_head *bh; + unsigned long offset; + ext4_group_t block_group; }; -enum ctx_state { - CONTEXT_DISABLED = -1, - CONTEXT_KERNEL = 0, - CONTEXT_IDLE = 1, - CONTEXT_USER = 2, - CONTEXT_GUEST = 3, - CONTEXT_MAX = 4, +struct ext4_fc_inode { + __le32 fc_ino; + __u8 fc_raw_inode[0]; }; -struct warn_args { - const char *fmt; - va_list args; +struct ext4_map_blocks { + ext4_fsblk_t m_pblk; + ext4_lblk_t m_lblk; + unsigned int m_len; + unsigned int m_flags; + long: 32; }; -struct miscdevice { - int minor; - const char *name; - const struct file_operations *fops; - struct list_head list; - struct device *parent; - struct device *this_device; - const struct attribute_group **groups; - const char *nodename; - umode_t mode; +struct ext4_extent_idx; + +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; + long: 32; }; -enum pm_qos_req_action { - PM_QOS_ADD_REQ = 0, - PM_QOS_UPDATE_REQ = 1, - PM_QOS_REMOVE_REQ = 2, +struct ext4_extent_idx { + __le32 ei_block; + __le32 ei_leaf_lo; + __le16 ei_leaf_hi; + __u16 ei_unused; }; -struct latch_tree_ops { - bool (*less)(struct latch_tree_node *, struct latch_tree_node *); - int (*comp)(void *, struct latch_tree_node *); +struct dentry_info_args { + int parent_ino; + int dname_len; + int ino; + int inode_len; + char *dname; }; -typedef struct { - seqcount_t seqcount; -} seqcount_latch_t; +struct ext4_fc_del_range { + __le32 fc_ino; + __le32 fc_lblk; + __le32 fc_len; +}; -struct latch_tree_root { - seqcount_latch_t seq; - struct rb_root tree[2]; +struct nfs_clone_mount { + struct super_block *sb; + struct dentry *dentry; + struct nfs_fattr *fattr; + unsigned int inherited_bsize; }; -struct mod_tree_root { - struct latch_tree_root root; - unsigned long addr_min; - unsigned long addr_max; +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; + struct xprtsec_parms xprtsec; + 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; }; -struct __kernel_old_timeval { - __kernel_long_t tv_sec; - __kernel_long_t tv_usec; +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 __kernel_old_itimerval { - struct __kernel_old_timeval it_interval; - struct __kernel_old_timeval it_value; +struct cb_process_state { + __be32 drc_status; + struct nfs_client *clp; + struct nfs4_slot *slot; + u32 minorversion; + struct net *net; }; -struct itimerspec64 { - struct timespec64 it_interval; - struct timespec64 it_value; +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, }; enum { - TRACE_NOP_OPT_ACCEPT = 1, - TRACE_NOP_OPT_REFUSE = 2, + FATTR4_SUPPORTED_ATTRS = 0, + FATTR4_TYPE = 1, + FATTR4_FH_EXPIRE_TYPE = 2, + FATTR4_CHANGE = 3, + FATTR4_SIZE = 4, + FATTR4_LINK_SUPPORT = 5, + FATTR4_SYMLINK_SUPPORT = 6, + FATTR4_NAMED_ATTR = 7, + FATTR4_FSID = 8, + FATTR4_UNIQUE_HANDLES = 9, + FATTR4_LEASE_TIME = 10, + FATTR4_RDATTR_ERROR = 11, + FATTR4_ACL = 12, + FATTR4_ACLSUPPORT = 13, + FATTR4_ARCHIVE = 14, + FATTR4_CANSETTIME = 15, + FATTR4_CASE_INSENSITIVE = 16, + FATTR4_CASE_PRESERVING = 17, + FATTR4_CHOWN_RESTRICTED = 18, + FATTR4_FILEHANDLE = 19, + FATTR4_FILEID = 20, + FATTR4_FILES_AVAIL = 21, + FATTR4_FILES_FREE = 22, + FATTR4_FILES_TOTAL = 23, + FATTR4_FS_LOCATIONS = 24, + FATTR4_HIDDEN = 25, + FATTR4_HOMOGENEOUS = 26, + FATTR4_MAXFILESIZE = 27, + FATTR4_MAXLINK = 28, + FATTR4_MAXNAME = 29, + FATTR4_MAXREAD = 30, + FATTR4_MAXWRITE = 31, + FATTR4_MIMETYPE = 32, + FATTR4_MODE = 33, + FATTR4_NO_TRUNC = 34, + FATTR4_NUMLINKS = 35, + FATTR4_OWNER = 36, + FATTR4_OWNER_GROUP = 37, + FATTR4_QUOTA_AVAIL_HARD = 38, + FATTR4_QUOTA_AVAIL_SOFT = 39, + FATTR4_QUOTA_USED = 40, + FATTR4_RAWDEV = 41, + FATTR4_SPACE_AVAIL = 42, + FATTR4_SPACE_FREE = 43, + FATTR4_SPACE_TOTAL = 44, + FATTR4_SPACE_USED = 45, + FATTR4_SYSTEM = 46, + FATTR4_TIME_ACCESS = 47, + FATTR4_TIME_ACCESS_SET = 48, + FATTR4_TIME_BACKUP = 49, + FATTR4_TIME_CREATE = 50, + FATTR4_TIME_DELTA = 51, + FATTR4_TIME_METADATA = 52, + FATTR4_TIME_MODIFY = 53, + FATTR4_TIME_MODIFY_SET = 54, + FATTR4_MOUNTED_ON_FILEID = 55, }; -struct bpf_hrtimer { - struct hrtimer timer; - struct bpf_map *map; - struct bpf_prog *prog; - void __attribute__((btf_type_tag("rcu"))) *callback_fn; - void *value; +enum pnfs_layoutreturn_type { + RETURN_FILE = 1, + RETURN_FSID = 2, + RETURN_ALL = 3, }; -struct bpf_bprintf_buffers { - char bin_args[512]; - char buf[1024]; +enum pnfs_notify_deviceid_type4 { + NOTIFY_DEVICEID4_CHANGE = 2, + NOTIFY_DEVICEID4_DELETE = 4, }; -typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32); - -struct btf_id_set8; - -struct btf_kfunc_id_set { - struct module *owner; - struct btf_id_set8 *set; - btf_kfunc_filter_t filter; +struct cb_compound_hdr_arg { + unsigned int taglen; + const char *tag; + unsigned int minorversion; + unsigned int cb_ident; + unsigned int nops; }; -struct btf_id_set8 { - u32 cnt; - u32 flags; - struct { - u32 id; - u32 flags; - } pairs[0]; +struct cb_compound_hdr_res { + __be32 *status; + unsigned int taglen; + const char *tag; + __be32 *nops; }; -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, +struct nfs_lowner { + __u64 clientid; + __u64 id; + dev_t s_dev; + long: 32; }; -enum { - BPF_F_INDEX_MASK = 4294967295ULL, - BPF_F_CURRENT_CPU = 4294967295ULL, - BPF_F_CTXLEN_MASK = 4503595332403200ULL, +struct cb_notify_lock_args { + struct nfs_fh cbnl_fh; + long: 32; + struct nfs_lowner cbnl_owner; + bool cbnl_valid; + long: 32; }; -enum { - BPF_F_TIMER_ABS = 1, +struct cb_offloadargs { + struct nfs_fh coa_fh; + nfs4_stateid coa_stateid; + uint32_t error; + long: 32; + uint64_t wr_count; + struct nfs_writeverf wr_writeverf; + long: 32; }; -enum { - CSS_NO_REF = 1, - CSS_ONLINE = 2, - CSS_RELEASED = 4, - CSS_VISIBLE = 8, - CSS_DYING = 16, +struct cb_getattrargs { + struct nfs_fh fh; + uint32_t bitmap[2]; }; -enum { - __PERCPU_REF_ATOMIC = 1, - __PERCPU_REF_DEAD = 2, - __PERCPU_REF_ATOMIC_DEAD = 3, - __PERCPU_REF_FLAG_BITS = 2, +struct cb_getattrres { + __be32 status; + uint32_t bitmap[2]; + long: 32; + uint64_t size; + uint64_t change_attr; + struct timespec64 ctime; + struct timespec64 mtime; }; -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); +struct cb_recallargs { + struct nfs_fh fh; + nfs4_stateid stateid; + uint32_t truncate; +}; -typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *); +struct cb_layoutrecallargs { + uint32_t cbl_recall_type; + uint32_t cbl_layout_type; + uint32_t cbl_layoutchanged; + long: 32; + union { + struct { + struct nfs_fh cbl_fh; + long: 32; + struct pnfs_layout_range cbl_range; + nfs4_stateid cbl_stateid; + long: 32; + }; + struct nfs_fsid cbl_fsid; + }; +}; -typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *); +struct cb_recallanyargs { + uint32_t craa_objs_to_keep; + uint32_t craa_type_mask; +}; -typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32); +struct cb_recallslotargs { + uint32_t crsa_target_highest_slotid; +}; -typedef u64 (*btf_bpf_get_smp_processor_id)(); +struct cb_devicenotifyitem { + uint32_t cbd_notify_type; + uint32_t cbd_layout_type; + struct nfs4_deviceid cbd_dev_id; + uint32_t cbd_immediate; +}; -typedef u64 (*btf_bpf_get_numa_node_id)(); +struct cb_devicenotifyargs { + uint32_t ndevs; + struct cb_devicenotifyitem *devs; +}; -typedef u64 (*btf_bpf_ktime_get_ns)(); +struct nlm_lockowner { + struct list_head list; + refcount_t count; + struct nlm_host *host; + fl_owner_t owner; + uint32_t pid; +}; -typedef u64 (*btf_bpf_ktime_get_boot_ns)(); +struct nsm_handle; -typedef u64 (*btf_bpf_ktime_get_coarse_ns)(); +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; +}; -typedef u64 (*btf_bpf_ktime_get_tai_ns)(); +struct nsm_private { + unsigned char data[16]; +}; -typedef u64 (*btf_bpf_get_current_pid_tgid)(); +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]; +}; -typedef u64 (*btf_bpf_get_current_uid_gid)(); +struct sockaddr_in6 { + unsigned short sin6_family; + __be16 sin6_port; + __be32 sin6_flowinfo; + struct in6_addr sin6_addr; + __u32 sin6_scope_id; +}; -typedef u64 (*btf_bpf_get_current_comm)(char *, u32); +struct nlm_cookie { + unsigned char data[32]; + unsigned int len; +}; -struct bpf_spin_lock; +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; +}; -typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *); +struct nlm_res { + struct nlm_cookie cookie; + __be32 status; + struct nlm_lock lock; +}; -struct bpf_spin_lock { - __u32 val; +struct nlm_args { + struct nlm_cookie cookie; + long: 32; + struct nlm_lock lock; + u32 block; + u32 reclaim; + u32 state; + u32 monitor; + u32 fsm_access; + u32 fsm_mode; }; -typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *); +struct nlm_reboot { + char *mon; + unsigned int len; + u32 state; + struct nsm_private priv; +}; -typedef u64 (*btf_bpf_jiffies64)(); +struct nlm_share; -typedef u64 (*btf_bpf_get_current_cgroup_id)(); +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; +}; -typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int); +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; +}; -typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, long *); +struct nlm_block; -typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, unsigned long *); +struct nlm_rqst { + refcount_t a_count; + unsigned int a_flags; + struct nlm_host *a_host; + long: 32; + 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; +}; -typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *); +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 bpf_pidns_info; +enum { + LCN_HOLE = -1, + LCN_RL_NOT_MAPPED = -2, + LCN_ENOENT = -3, + LCN_ENOMEM = -4, + LCN_EIO = -5, +}; -typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32); +enum { + AT_UNUSED = 0, + AT_STANDARD_INFORMATION = 16, + AT_ATTRIBUTE_LIST = 32, + AT_FILE_NAME = 48, + AT_OBJECT_ID = 64, + AT_SECURITY_DESCRIPTOR = 80, + AT_VOLUME_NAME = 96, + AT_VOLUME_INFORMATION = 112, + AT_DATA = 128, + AT_INDEX_ROOT = 144, + AT_INDEX_ALLOCATION = 160, + AT_BITMAP = 176, + AT_REPARSE_POINT = 192, + AT_EA_INFORMATION = 208, + AT_EA = 224, + AT_PROPERTY_SET = 240, + AT_LOGGED_UTILITY_STREAM = 256, + AT_FIRST_USER_DEFINED_ATTRIBUTE = 4096, + AT_END = 4294967295, +}; -struct bpf_pidns_info { - __u32 pid; - __u32 tgid; +enum { + NI_Dirty = 0, + NI_AttrList = 1, + NI_AttrListNonResident = 2, + NI_Attr = 3, + NI_MstProtected = 4, + NI_NonResident = 5, + NI_IndexAllocPresent = 5, + NI_Compressed = 6, + NI_Encrypted = 7, + NI_Sparse = 8, + NI_SparseDisabled = 9, + NI_TruncateFailed = 10, }; -typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64); +enum { + NV_Errors = 0, + NV_ShowSystemFiles = 1, + NV_CaseSensitive = 2, + NV_LogFileEmpty = 3, + NV_QuotaOutOfDate = 4, + NV_UsnJrnlStamped = 5, + NV_SparseEnabled = 6, +}; -typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); +typedef __le32 le32; -typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void __attribute__((btf_type_tag("user"))) *, struct task_struct *, u64); +typedef le32 ATTR_TYPE; -typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32); +typedef __le16 le16; -typedef u64 (*btf_bpf_this_cpu_ptr)(const void *); +typedef le16 ATTR_FLAGS; -typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32); +typedef u8 RESIDENT_ATTR_FLAGS; -struct bpf_timer_kern; +typedef __u64 sle64; -typedef u64 (*btf_bpf_timer_init)(struct bpf_timer_kern *, struct bpf_map *, u64); +typedef sle64 leVCN; -struct bpf_timer_kern { - struct bpf_hrtimer *timer; - struct bpf_spin_lock lock; -}; +typedef struct { + ATTR_TYPE type; + le32 length; + u8 non_resident; + u8 name_length; + le16 name_offset; + ATTR_FLAGS flags; + le16 instance; + union { + struct { + le32 value_length; + le16 value_offset; + RESIDENT_ATTR_FLAGS flags; + s8 reserved; + } resident; + struct { + leVCN lowest_vcn; + leVCN highest_vcn; + le16 mapping_pairs_offset; + u8 compression_unit; + u8 reserved[5]; + sle64 allocated_size; + sle64 data_size; + sle64 initialized_size; + sle64 compressed_size; + } non_resident; + } data; +} ATTR_RECORD; -typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *); +typedef __le64 le64; -typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64); +typedef le16 ntfschar; -typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *); +typedef le64 leMFT_REF; -typedef u64 (*btf_bpf_kptr_xchg)(void *, void *); +typedef struct { + ATTR_TYPE type; + le16 length; + u8 name_length; + u8 name_offset; + leVCN lowest_vcn; + leMFT_REF mft_reference; + le16 instance; + ntfschar name[0]; +} __attribute__((packed)) ATTR_LIST_ENTRY; -typedef u64 (*btf_bpf_dynptr_from_mem)(void *, u32, u64, struct bpf_dynptr_kern *); +typedef s64 LCN; -typedef u64 (*btf_bpf_dynptr_read)(void *, u32, const struct bpf_dynptr_kern *, u32, u64); +typedef le32 COLLATION_RULE; -typedef u64 (*btf_bpf_dynptr_write)(const struct bpf_dynptr_kern *, u32, void *, u32, u64); +typedef le32 ATTR_DEF_FLAGS; -typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32); +typedef struct { + ntfschar name[64]; + ATTR_TYPE type; + le32 display_rule; + COLLATION_RULE collation_rule; + ATTR_DEF_FLAGS flags; + sle64 min_size; + sle64 max_size; +} ATTR_DEF; -struct bpf_refcount { - long: 32; -}; +typedef le16 VOLUME_FLAGS; -struct bpf_rb_node { - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; +struct nls_table; -struct bpf_timer { - long: 32; +typedef struct { + struct super_block *sb; long: 32; + LCN nr_blocks; + unsigned long flags; + kuid_t uid; + kgid_t gid; + umode_t fmask; + umode_t dmask; + u8 mft_zone_multiplier; + u8 on_errors; + u16 sector_size; + u8 sector_size_bits; + u32 cluster_size; + u32 cluster_size_mask; + u8 cluster_size_bits; + u32 mft_record_size; + u32 mft_record_size_mask; + u8 mft_record_size_bits; + u32 index_record_size; + u32 index_record_size_mask; + u8 index_record_size_bits; long: 32; + LCN nr_clusters; + LCN mft_lcn; + LCN mftmirr_lcn; + u64 serial_no; + u32 upcase_len; + ntfschar *upcase; + s32 attrdef_size; + ATTR_DEF *attrdef; + struct inode *mft_ino; + struct inode *mftbmp_ino; + struct rw_semaphore mftbmp_lock; + struct inode *lcnbmp_ino; + struct rw_semaphore lcnbmp_lock; + struct inode *vol_ino; + VOLUME_FLAGS vol_flags; + u8 major_ver; + u8 minor_ver; + struct inode *root_ino; + struct inode *secure_ino; + struct inode *extend_ino; + struct nls_table *nls_map; long: 32; -}; +} ntfs_volume; -struct bpf_array_aux; +typedef s64 VCN; -struct bpf_array { - struct bpf_map map; - u32 elem_size; - u32 index_mask; - struct bpf_array_aux *aux; +typedef struct { + VCN vcn; + LCN lcn; + s64 length; +} runlist_element; + +typedef struct { + runlist_element *rl; + struct rw_semaphore lock; +} runlist; + +struct _ntfs_inode; + +typedef struct _ntfs_inode ntfs_inode; + +struct _ntfs_inode { + rwlock_t size_lock; + long: 32; + s64 initialized_size; + s64 allocated_size; + unsigned long state; + unsigned long mft_no; + u16 seq_no; + atomic_t count; + ntfs_volume *vol; + ATTR_TYPE type; + ntfschar *name; + u32 name_len; + runlist runlist; + struct mutex mrec_lock; + struct page *page; + int page_ofs; + u32 attr_list_size; + u8 *attr_list; + runlist attr_list_rl; long: 32; union { struct { - struct {} __empty_value; - char value[0]; - }; - struct { - struct {} __empty_ptrs; - void *ptrs[0]; - }; + u32 block_size; + u32 vcn_size; + COLLATION_RULE collation_rule; + u8 block_size_bits; + u8 vcn_size_bits; + } index; struct { - struct {} __empty_pptrs; - void __attribute__((btf_type_tag("percpu"))) *pptrs[0]; - }; - }; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; + s64 size; + u32 block_size; + u8 block_size_bits; + u8 block_clusters; + } compressed; + } itype; + struct mutex extent_lock; + s32 nr_extents; + union { + ntfs_inode **extent_ntfs_inos; + ntfs_inode *base_ntfs_ino; + } ext; long: 32; }; -struct bpf_array_aux { - struct list_head poke_progs; - struct bpf_map *map; - struct mutex poke_mutex; - struct work_struct work; -}; +typedef u16 wchar_t; -struct bpf_dynptr { - long: 32; - long: 32; - long: 32; - long: 32; +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 bpf_list_node { - long: 32; - long: 32; - long: 32; - long: 32; -}; +typedef le32 NTFS_RECORD_TYPE; -typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long); +typedef le16 MFT_RECORD_FLAGS; -struct bpf_bprintf_data { - u32 *bin_args; - char *buf; - bool get_bin_args; - bool get_buf; -}; +typedef struct { + NTFS_RECORD_TYPE magic; + le16 usa_ofs; + le16 usa_count; + le64 lsn; + le16 sequence_number; + le16 link_count; + le16 attrs_offset; + MFT_RECORD_FLAGS flags; + le32 bytes_in_use; + le32 bytes_allocated; + leMFT_REF base_mft_record; + le16 next_attr_instance; + le16 reserved; + le32 mft_record_number; +} MFT_RECORD; -struct bpf_mem_caches; +typedef struct { + MFT_RECORD *mrec; + ATTR_RECORD *attr; + bool is_first; + ntfs_inode *ntfs_ino; + ATTR_LIST_ENTRY *al_entry; + ntfs_inode *base_ntfs_ino; + MFT_RECORD *base_mrec; + ATTR_RECORD *base_attr; +} ntfs_attr_search_ctx; -struct bpf_mem_cache; +typedef enum { + CASE_SENSITIVE = 0, + IGNORE_CASE = 1, +} IGNORE_CASE_BOOL; -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; -}; +typedef u64 MFT_REF; -struct obj_cgroup; +struct crypto_comp; -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 ubifs_compressor { + int compr_type; + struct crypto_comp *cc; + struct mutex *comp_mutex; + struct mutex *decomp_mutex; + const char *name; + const char *capi_name; }; -struct bpf_mem_caches { - struct bpf_mem_cache cache[11]; +struct crypto_comp { + struct crypto_tfm base; }; -struct bpf_list_head { - long: 32; - long: 32; - long: 32; - long: 32; +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 bpf_rb_root { - long: 32; - long: 32; +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; long: 32; + 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 unsigned short __kernel_uid_t; + +typedef __kernel_uid_t __kernel_old_uid_t; + +typedef __kernel_old_uid_t old_uid_t; + +typedef unsigned short __kernel_gid_t; + +typedef __kernel_gid_t __kernel_old_gid_t; + +typedef __kernel_old_gid_t old_gid_t; + +typedef __kernel_key_t key_t; + +struct kern_ipc_perm { + spinlock_t lock; + bool deleted; + int id; + key_t key; + kuid_t uid; + kgid_t gid; + kuid_t cuid; + kgid_t cgid; + umode_t mode; + unsigned long seq; + void *security; + struct rhash_head khtnode; + struct callback_head rcu; + refcount_t refcount; long: 32; }; -struct btf_id_dtor_kfunc { - u32 btf_id; - u32 kfunc_btf_id; +struct ipc_params; + +struct ipc_ops { + int (*getnew)(struct ipc_namespace *, struct ipc_params *); + int (*associate)(struct kern_ipc_perm *, int); + int (*more_checks)(struct kern_ipc_perm *, struct ipc_params *); }; -struct btf_struct_meta { - u32 btf_id; - struct btf_record *record; +struct ipc_params { + key_t key; + int flg; + union { + size_t size; + int nsems; + } u; }; -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); +struct ipc_proc_iface { + const char *path; + const char *header; + int ids; + int (*show)(struct seq_file *, void *); +}; -typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void __attribute__((btf_type_tag("percpu"))) *); +typedef unsigned short __kernel_mode_t; -typedef void (*btf_trace_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_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[2]; + unsigned short seq; + unsigned short __pad2; + __kernel_ulong_t __unused1; + __kernel_ulong_t __unused2; +}; -typedef void (*btf_trace_percpu_create_chunk)(void *, void *); +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; +}; -typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *); +struct ipc_proc_iter { + struct ipc_namespace *ns; + struct pid_namespace *pid_ns; + struct ipc_proc_iface *iface; +}; -enum pcpu_fc { - PCPU_FC_AUTO = 0, - PCPU_FC_EMBED = 1, - PCPU_FC_PAGE = 2, - PCPU_FC_NR = 3, +enum { + CRYPTOA_UNSPEC = 0, + CRYPTOA_ALG = 1, + CRYPTOA_TYPE = 2, + __CRYPTOA_MAX = 3, }; -struct pcpu_block_md { - int scan_hint; - int scan_hint_start; - int contig_hint; - int contig_hint_start; - int left_free; - int right_free; - int first_free; - int nr_bits; +enum { + CRYPTO_MSG_ALG_REQUEST = 0, + CRYPTO_MSG_ALG_REGISTER = 1, + CRYPTO_MSG_ALG_LOADED = 2, }; -struct pcpu_chunk { +struct crypto_spawn { struct list_head list; - int free_bytes; - struct pcpu_block_md chunk_md; - unsigned long *bound_map; + struct crypto_alg *alg; + union { + struct crypto_instance *inst; + struct crypto_spawn *next; + }; + const struct crypto_type *frontend; + u32 mask; + bool dead; + bool registered; +}; + +struct crypto_template; + +struct crypto_instance { + struct crypto_alg alg; + struct crypto_template *tmpl; + union { + struct hlist_node list; + struct crypto_spawn *spawns; + }; + struct work_struct free_work; long: 32; long: 32; long: 32; long: 32; - void *base_addr; - unsigned long *alloc_map; - struct pcpu_block_md *md_blocks; - void *data; - bool immutable; - bool isolated; - int start_offset; - int end_offset; - int nr_pages; - int nr_populated; - int nr_empty_pop_pages; - unsigned long populated[0]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + void *__ctx[0]; +}; + +struct rtattr; + +struct crypto_template { + struct list_head list; + struct hlist_head instances; + struct module *module; + int (*create)(struct crypto_template *, struct rtattr **); + char name[128]; +}; + +struct rtattr { + unsigned short rta_len; + unsigned short rta_type; +}; + +struct crypto_larval { + struct crypto_alg alg; + struct crypto_alg *adult; + struct completion completion; + u32 mask; + bool test_started; + long: 32; + long: 32; + long: 32; long: 32; long: 32; long: 32; @@ -46237,3427 +54379,2818 @@ struct pcpu_chunk { long: 32; }; -struct trace_print_flags { - unsigned long mask; - const char *name; +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 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 crypto_attr_type { + u32 type; + u32 mask; }; -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 crypto_attr_alg { + char name[128]; }; -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 crypto_queue { + struct list_head list; + struct list_head *backlog; + unsigned int qlen; + unsigned int max_qlen; }; -struct trace_event_raw_percpu_create_chunk { - struct trace_entry ent; - void *base_addr; - char __data[0]; +enum elv_merge { + ELEVATOR_NO_MERGE = 0, + ELEVATOR_FRONT_MERGE = 1, + ELEVATOR_BACK_MERGE = 2, + ELEVATOR_DISCARD_MERGE = 3, }; -struct trace_event_raw_percpu_destroy_chunk { - struct trace_entry ent; - void *base_addr; - char __data[0]; +enum rq_qos_id { + RQ_QOS_WBT = 0, + RQ_QOS_LATENCY = 1, + RQ_QOS_COST = 2, }; -struct pcpu_group_info { - int nr_units; - unsigned long base_offset; - unsigned int *cpu_map; +enum bio_merge_status { + BIO_MERGE_OK = 0, + BIO_MERGE_NONE = 1, + BIO_MERGE_FAILED = 2, }; -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]; +enum stat_group { + STAT_READ = 0, + STAT_WRITE = 1, + STAT_DISCARD = 2, + STAT_FLUSH = 3, + NR_STAT_GROUPS = 4, }; -struct trace_event_data_offsets_percpu_alloc_percpu {}; +struct elevator_type; -struct trace_event_data_offsets_percpu_free_percpu {}; +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 trace_event_data_offsets_percpu_alloc_percpu_fail {}; +typedef unsigned int blk_insert_t; -struct trace_event_data_offsets_percpu_create_chunk {}; +struct blk_mq_alloc_data; -struct trace_event_data_offsets_percpu_destroy_chunk {}; +struct elevator_mq_ops { + int (*init_sched)(struct request_queue *, struct elevator_type *); + void (*exit_sched)(struct elevator_queue *); + int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int); + void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int); + void (*depth_updated)(struct blk_mq_hw_ctx *); + bool (*allow_merge)(struct request_queue *, struct request *, struct bio *); + bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int); + int (*request_merge)(struct request_queue *, struct request **, struct bio *); + void (*request_merged)(struct request_queue *, struct request *, enum elv_merge); + void (*requests_merged)(struct request_queue *, struct request *, struct request *); + void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *); + void (*prepare_request)(struct request *); + void (*finish_request)(struct request *); + void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, blk_insert_t); + struct request * (*dispatch_request)(struct blk_mq_hw_ctx *); + bool (*has_work)(struct blk_mq_hw_ctx *); + void (*completed_request)(struct request *, u64); + void (*requeue_request)(struct request *); + struct request * (*former_request)(struct request_queue *, struct request *); + struct request * (*next_request)(struct request_queue *, struct request *); + void (*init_icq)(struct io_cq *); + void (*exit_icq)(struct io_cq *); +}; -typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); +struct elv_fs_entry; -typedef int pcpu_fc_cpu_to_node_fn_t(int); +struct blk_mq_debugfs_attr; -struct core_vma_metadata; +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 coredump_params { - const kernel_siginfo_t *siginfo; - struct file *file; - unsigned long limit; - unsigned long mm_flags; - int cpu; - long: 32; - loff_t written; - loff_t pos; - loff_t to_skip; - int vma_count; - size_t vma_data_size; - struct core_vma_metadata *vma_meta; - long: 32; +struct blk_mq_ctxs { + struct kobject kobj; + struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx; }; -struct core_vma_metadata { - unsigned long start; - unsigned long end; - unsigned long flags; - unsigned long dump_size; - unsigned long pgoff; - struct file *file; +struct blkg_iostat { + u64 bytes[3]; + u64 ios[3]; }; -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 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 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: 32; - long: 32; - long: 32; - 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[32]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +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; long: 32; + struct blkg_iostat_set iostat; + struct blkg_policy_data *pd[6]; + union { + struct work_struct async_bio_work; + struct work_struct free_work; + }; + atomic_t use_delay; long: 32; + atomic64_t delay_nsec; + atomic64_t delay_start; + u64 last_delay; + int last_use; + struct callback_head callback_head; long: 32; }; -struct timens_offsets { - struct timespec64 monotonic; - struct timespec64 boottime; +struct blkcg_policy_data; + +struct blkcg { + struct cgroup_subsys_state css; + spinlock_t lock; + refcount_t online_pin; + struct xarray blkg_tree; + struct blkcg_gq __attribute__((btf_type_tag("rcu"))) *blkg_hint; + struct hlist_head blkg_list; + struct blkcg_policy_data *cpd[6]; + struct list_head all_blkcgs_node; + struct llist_head __attribute__((btf_type_tag("percpu"))) *lhead; + struct list_head cgwb_list; }; -struct time_namespace { - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct ns_common ns; - struct timens_offsets offsets; - struct page *vvar_page; - bool frozen_offsets; +struct blkcg_policy_data { + struct blkcg *blkcg; + int plid; }; -struct user_event_mm { - struct list_head mms_link; - struct list_head enablers; - struct mm_struct *mm; - struct user_event_mm *next; - refcount_t refcnt; - refcount_t tasks; - struct rcu_work put_rwork; +struct blkg_policy_data { + struct blkcg_gq *blkg; + int plid; + bool online; }; -struct io_uring_sqe; +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 io_uring_cmd { - struct file *file; - const struct io_uring_sqe *sqe; - union { - void (*task_work_cb)(struct io_uring_cmd *, unsigned int); - void *cookie; - }; - u32 cmd_op; - u32 flags; - u8 pdu[32]; +struct elv_fs_entry { + struct attribute attr; + ssize_t (*show)(struct elevator_queue *, char *); + ssize_t (*store)(struct elevator_queue *, const char *, size_t); }; -struct 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]; - }; -}; - -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 { - FOLL_WRITE = 1, - FOLL_GET = 2, - FOLL_DUMP = 4, - FOLL_FORCE = 8, - FOLL_NOWAIT = 16, - FOLL_NOFAULT = 32, - FOLL_HWPOISON = 64, - FOLL_ANON = 128, - FOLL_LONGTERM = 256, - FOLL_SPLIT_PMD = 512, - FOLL_PCI_P2PDMA = 1024, - FOLL_INTERRUPTIBLE = 2048, - FOLL_HONOR_NUMA_FAULT = 4096, +struct 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; }; -enum { - MM_FILEPAGES = 0, - MM_ANONPAGES = 1, - MM_SWAPENTS = 2, - MM_SHMEMPAGES = 3, - NR_MM_COUNTERS = 4, -}; +struct rq_qos_ops; -enum mm_cid_state { - MM_CID_UNSET = 4294967295, - MM_CID_LAZY_PUT = 2147483648, +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; }; -enum rlimit_type { - UCOUNT_RLIMIT_NPROC = 0, - UCOUNT_RLIMIT_MSGQUEUE = 1, - UCOUNT_RLIMIT_SIGPENDING = 2, - UCOUNT_RLIMIT_MEMLOCK = 3, - UCOUNT_RLIMIT_COUNTS = 4, +struct rq_qos_ops { + void (*throttle)(struct rq_qos *, struct bio *); + void (*track)(struct rq_qos *, struct request *, struct bio *); + void (*merge)(struct rq_qos *, struct request *, struct bio *); + void (*issue)(struct rq_qos *, struct request *); + void (*requeue)(struct rq_qos *, struct request *); + void (*done)(struct rq_qos *, struct request *); + void (*done_bio)(struct rq_qos *, struct bio *); + void (*cleanup)(struct rq_qos *, struct bio *); + void (*queue_depth_changed)(struct rq_qos *); + void (*exit)(struct rq_qos *); + const struct blk_mq_debugfs_attr *debugfs_attrs; }; -struct maple_enode; +struct rchan_callbacks; -typedef unsigned short ushort; +struct rchan_buf; -struct maple_alloc; +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 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 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 maple_alloc { - unsigned long total; - unsigned char node_count; - unsigned int request_count; - struct maple_alloc *slot[61]; +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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct vma_iterator { - struct ma_state mas; +struct req_iterator { + struct bvec_iter iter; + struct bio *bio; }; -struct encoded_page; +enum io_uring_op { + IORING_OP_NOP = 0, + IORING_OP_READV = 1, + IORING_OP_WRITEV = 2, + IORING_OP_FSYNC = 3, + IORING_OP_READ_FIXED = 4, + IORING_OP_WRITE_FIXED = 5, + IORING_OP_POLL_ADD = 6, + IORING_OP_POLL_REMOVE = 7, + IORING_OP_SYNC_FILE_RANGE = 8, + IORING_OP_SENDMSG = 9, + IORING_OP_RECVMSG = 10, + IORING_OP_TIMEOUT = 11, + IORING_OP_TIMEOUT_REMOVE = 12, + IORING_OP_ACCEPT = 13, + IORING_OP_ASYNC_CANCEL = 14, + IORING_OP_LINK_TIMEOUT = 15, + IORING_OP_CONNECT = 16, + IORING_OP_FALLOCATE = 17, + IORING_OP_OPENAT = 18, + IORING_OP_CLOSE = 19, + IORING_OP_FILES_UPDATE = 20, + IORING_OP_STATX = 21, + IORING_OP_READ = 22, + IORING_OP_WRITE = 23, + IORING_OP_FADVISE = 24, + IORING_OP_MADVISE = 25, + IORING_OP_SEND = 26, + IORING_OP_RECV = 27, + IORING_OP_OPENAT2 = 28, + IORING_OP_EPOLL_CTL = 29, + IORING_OP_SPLICE = 30, + IORING_OP_PROVIDE_BUFFERS = 31, + IORING_OP_REMOVE_BUFFERS = 32, + IORING_OP_TEE = 33, + IORING_OP_SHUTDOWN = 34, + IORING_OP_RENAMEAT = 35, + IORING_OP_UNLINKAT = 36, + IORING_OP_MKDIRAT = 37, + IORING_OP_SYMLINKAT = 38, + IORING_OP_LINKAT = 39, + IORING_OP_MSG_RING = 40, + IORING_OP_FSETXATTR = 41, + IORING_OP_SETXATTR = 42, + IORING_OP_FGETXATTR = 43, + IORING_OP_GETXATTR = 44, + IORING_OP_SOCKET = 45, + IORING_OP_URING_CMD = 46, + IORING_OP_SEND_ZC = 47, + IORING_OP_SENDMSG_ZC = 48, + IORING_OP_READ_MULTISHOT = 49, + IORING_OP_WAITID = 50, + IORING_OP_FUTEX_WAIT = 51, + IORING_OP_FUTEX_WAKE = 52, + IORING_OP_FUTEX_WAITV = 53, + IORING_OP_LAST = 54, +}; -struct mmu_gather_batch { - struct mmu_gather_batch *next; - unsigned int nr; - unsigned int max; - struct encoded_page *encoded_pages[0]; +struct io_timeout { + struct file *file; + u32 off; + u32 target_seq; + u32 repeats; + struct list_head list; + struct io_kiocb *head; + struct io_kiocb *prev; }; -struct mmu_gather { - struct mm_struct *mm; - unsigned long start; - unsigned long end; - unsigned int fullmm: 1; - unsigned int need_flush_all: 1; - unsigned int freed_tables: 1; - unsigned int delayed_rmap: 1; - unsigned int cleared_ptes: 1; - unsigned int cleared_pmds: 1; - unsigned int cleared_puds: 1; - unsigned int cleared_p4ds: 1; - unsigned int vma_exec: 1; - unsigned int vma_huge: 1; - unsigned int vma_pfn: 1; - unsigned int batch_count; - struct mmu_gather_batch *active; - struct mmu_gather_batch local; - struct page *__pages[8]; +struct io_timeout_rem { + struct file *file; + long: 32; + u64 addr; + struct timespec64 ts; + u32 flags; + bool ltimeout; }; -struct open_flags { - int open_flag; - umode_t mode; - int acc_mode; - int intent; - int lookup_flags; +struct io_timeout_data { + struct io_kiocb *req; + long: 32; + struct hrtimer timer; + struct timespec64 ts; + enum hrtimer_mode mode; + u32 flags; }; -struct user_arg_ptr { +struct io_cancel_data { + struct io_ring_ctx *ctx; + long: 32; union { - const char __attribute__((btf_type_tag("user"))) * const __attribute__((btf_type_tag("user"))) *native; - } ptr; + u64 data; + struct file *file; + }; + u8 opcode; + u32 flags; + int seq; + long: 32; }; -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, -}; +typedef s16 int16_t; -struct inotify_inode_mark { - struct fsnotify_mark fsn_mark; - int wd; -}; +typedef int16_t S16; -enum { - SB_UNFROZEN = 0, - SB_FREEZE_WRITE = 1, - SB_FREEZE_PAGEFAULT = 2, - SB_FREEZE_FS = 3, - SB_FREEZE_COMPLETE = 4, -}; +typedef size_t HUF_CElt; -struct pipe_buffer; +typedef enum { + ZSTD_llt_none = 0, + ZSTD_llt_literalLength = 1, + ZSTD_llt_matchLength = 2, +} ZSTD_longLengthType_e; -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 seqDef_s; -struct pipe_buf_operations; +typedef struct seqDef_s seqDef; -struct pipe_buffer { - struct page *page; - unsigned int offset; - unsigned int len; - const struct pipe_buf_operations *ops; - unsigned int flags; - unsigned long private; -}; +typedef struct { + seqDef *sequencesStart; + seqDef *sequences; + BYTE *litStart; + BYTE *lit; + BYTE *llCode; + BYTE *mlCode; + BYTE *ofCode; + size_t maxNbSeq; + size_t maxNbLit; + ZSTD_longLengthType_e longLengthType; + U32 longLengthPos; +} seqStore_t; -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 *); +struct seqDef_s { + U32 offBase; + U16 litLength; + U16 mlBase; }; -struct core_name { - char *corename; - int used; - int size; -}; +typedef enum { + HUF_repeat_none = 0, + HUF_repeat_check = 1, + HUF_repeat_valid = 2, +} HUF_repeat; -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; -}; +typedef struct { + HUF_CElt CTable[257]; + HUF_repeat repeatMode; +} ZSTD_hufCTables_t; -struct configfs_fragment; +typedef unsigned int FSE_CTable; -struct configfs_dirent { - atomic_t s_count; - int s_dependent_count; - struct list_head s_sibling; - struct list_head s_children; - int s_links; - void *s_element; - int s_type; - umode_t s_mode; - struct dentry *s_dentry; - struct iattr *s_iattr; - struct configfs_fragment *s_frag; -}; +typedef enum { + FSE_repeat_none = 0, + FSE_repeat_check = 1, + FSE_repeat_valid = 2, +} FSE_repeat; -struct configfs_fragment { - atomic_t frag_count; - struct rw_semaphore frag_sem; - bool frag_dead; -}; +typedef struct { + FSE_CTable offcodeCTable[193]; + FSE_CTable matchlengthCTable[363]; + FSE_CTable litlengthCTable[329]; + FSE_repeat offcode_repeatMode; + FSE_repeat matchlength_repeatMode; + FSE_repeat litlength_repeatMode; +} ZSTD_fseCTables_t; -struct config_item; +typedef struct { + ZSTD_hufCTables_t huf; + ZSTD_fseCTables_t fse; +} ZSTD_entropyCTables_t; -struct configfs_attribute { - const char *ca_name; - struct module *ca_owner; - umode_t ca_mode; - ssize_t (*show)(struct config_item *, char *); - ssize_t (*store)(struct config_item *, const char *, size_t); -}; +typedef struct { + ZSTD_entropyCTables_t entropy; + U32 rep[3]; +} ZSTD_compressedBlockState_t; -struct config_group; +typedef enum { + set_basic = 0, + set_rle = 1, + set_compressed = 2, + set_repeat = 3, +} symbolEncodingType_e; -struct config_item_type; +typedef struct { + symbolEncodingType_e hType; + BYTE hufDesBuffer[128]; + size_t hufDesSize; +} ZSTD_hufCTablesMetadata_t; -struct config_item { - char *ci_name; - char ci_namebuf[20]; - struct kref ci_kref; - struct list_head ci_entry; - struct config_item *ci_parent; - struct config_group *ci_group; - const struct config_item_type *ci_type; - struct dentry *ci_dentry; -}; +typedef struct { + symbolEncodingType_e llType; + symbolEncodingType_e ofType; + symbolEncodingType_e mlType; + BYTE fseTablesBuffer[133]; + size_t fseTablesSize; + size_t lastCountSize; +} ZSTD_fseCTablesMetadata_t; -struct configfs_subsystem; +typedef struct { + ZSTD_hufCTablesMetadata_t hufMetadata; + ZSTD_fseCTablesMetadata_t fseMetadata; +} ZSTD_entropyCTablesMetadata_t; -struct config_group { - struct config_item cg_item; - struct list_head cg_children; - struct configfs_subsystem *cg_subsys; - struct list_head default_groups; - struct list_head group_entry; -}; +typedef enum { + ZSTD_fast = 1, + ZSTD_dfast = 2, + ZSTD_greedy = 3, + ZSTD_lazy = 4, + ZSTD_lazy2 = 5, + ZSTD_btlazy2 = 6, + ZSTD_btopt = 7, + ZSTD_btultra = 8, + ZSTD_btultra2 = 9, +} ZSTD_strategy; -struct configfs_subsystem { - struct config_group su_group; - struct mutex su_mutex; -}; +typedef struct { + unsigned int windowLog; + unsigned int chainLog; + unsigned int hashLog; + unsigned int searchLog; + unsigned int minMatch; + unsigned int targetLength; + ZSTD_strategy strategy; +} ZSTD_compressionParameters; -struct configfs_item_operations; +typedef struct { + int contentSizeFlag; + int checksumFlag; + int noDictIDFlag; +} ZSTD_frameParameters; -struct configfs_group_operations; +typedef enum { + ZSTD_dictDefaultAttach = 0, + ZSTD_dictForceAttach = 1, + ZSTD_dictForceCopy = 2, + ZSTD_dictForceLoad = 3, +} ZSTD_dictAttachPref_e; -struct configfs_bin_attribute; +typedef enum { + ZSTD_ps_auto = 0, + ZSTD_ps_enable = 1, + ZSTD_ps_disable = 2, +} ZSTD_paramSwitch_e; -struct config_item_type { - struct module *ct_owner; - struct configfs_item_operations *ct_item_ops; - struct configfs_group_operations *ct_group_ops; - struct configfs_attribute **ct_attrs; - struct configfs_bin_attribute **ct_bin_attrs; -}; +typedef struct { + ZSTD_paramSwitch_e enableLdm; + U32 hashLog; + U32 bucketSizeLog; + U32 minMatchLength; + U32 hashRateLog; + U32 windowLog; +} ldmParams_t; -struct configfs_item_operations { - void (*release)(struct config_item *); - int (*allow_link)(struct config_item *, struct config_item *); - void (*drop_link)(struct config_item *, struct config_item *); -}; +typedef enum { + ZSTD_sf_noBlockDelimiters = 0, + ZSTD_sf_explicitBlockDelimiters = 1, +} ZSTD_sequenceFormat_e; -struct configfs_group_operations { - struct config_item * (*make_item)(struct config_group *, const char *); - struct config_group * (*make_group)(struct config_group *, const char *); - void (*disconnect_notify)(struct config_group *, struct config_item *); - void (*drop_item)(struct config_group *, struct config_item *); +struct ZSTD_CCtx_params_s { + ZSTD_format_e format; + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; + int compressionLevel; + int forceWindow; + size_t targetCBlockSize; + int srcSizeHint; + ZSTD_dictAttachPref_e attachDictPref; + ZSTD_paramSwitch_e literalCompressionMode; + int nbWorkers; + size_t jobSize; + int overlapLog; + int rsyncable; + ldmParams_t ldmParams; + int enableDedicatedDictSearch; + ZSTD_bufferMode_e inBufferMode; + ZSTD_bufferMode_e outBufferMode; + ZSTD_sequenceFormat_e blockDelimiters; + int validateSequences; + ZSTD_paramSwitch_e useBlockSplitter; + ZSTD_paramSwitch_e useRowMatchFinder; + int deterministicRefPrefix; + ZSTD_customMem customMem; }; -struct configfs_bin_attribute { - struct configfs_attribute cb_attr; - void *cb_private; - size_t cb_max_size; - ssize_t (*read)(struct config_item *, void *, size_t); - ssize_t (*write)(struct config_item *, const void *, size_t); -}; +typedef struct ZSTD_CCtx_params_s ZSTD_CCtx_params; -enum { - EXT4_STATE_NEW = 0, - EXT4_STATE_XATTR = 1, - EXT4_STATE_NO_EXPAND = 2, - EXT4_STATE_DA_ALLOC_CLOSE = 3, - EXT4_STATE_EXT_MIGRATE = 4, - EXT4_STATE_NEWENTRY = 5, - EXT4_STATE_MAY_INLINE_DATA = 6, - EXT4_STATE_EXT_PRECACHED = 7, - EXT4_STATE_LUSTRE_EA_INODE = 8, - EXT4_STATE_VERITY_IN_PROGRESS = 9, - EXT4_STATE_FC_COMMITTING = 10, - EXT4_STATE_ORPHAN_FILE = 11, +struct repcodes_s { + U32 rep[3]; }; -enum req_flag_bits { - __REQ_FAILFAST_DEV = 8, - __REQ_FAILFAST_TRANSPORT = 9, - __REQ_FAILFAST_DRIVER = 10, - __REQ_SYNC = 11, - __REQ_META = 12, - __REQ_PRIO = 13, - __REQ_NOMERGE = 14, - __REQ_IDLE = 15, - __REQ_INTEGRITY = 16, - __REQ_FUA = 17, - __REQ_PREFLUSH = 18, - __REQ_RAHEAD = 19, - __REQ_BACKGROUND = 20, - __REQ_NOWAIT = 21, - __REQ_POLLED = 22, - __REQ_ALLOC_CACHE = 23, - __REQ_SWAP = 24, - __REQ_DRV = 25, - __REQ_FS_PRIVATE = 26, - __REQ_NOUNMAP = 27, - __REQ_NR_BITS = 28, -}; +typedef struct repcodes_s repcodes_t; -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, -}; +typedef struct { + U32 litLength; + U32 matchLength; +} ZSTD_sequenceLength; -enum ext4_journal_trigger_type { - EXT4_JTR_ORPHAN_FILE = 0, - EXT4_JTR_NONE = 1, -}; +typedef enum { + ZSTDcs_created = 0, + ZSTDcs_init = 1, + ZSTDcs_ongoing = 2, + ZSTDcs_ending = 3, +} ZSTD_compressionStage_e; -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, -}; +typedef enum { + ZSTD_cwksp_alloc_objects = 0, + ZSTD_cwksp_alloc_buffers = 1, + ZSTD_cwksp_alloc_aligned = 2, +} ZSTD_cwksp_alloc_phase_e; -enum { - MBE_REFERENCED_B = 0, - MBE_REUSABLE_B = 1, -}; +typedef enum { + ZSTD_cwksp_dynamic_alloc = 0, + ZSTD_cwksp_static_alloc = 1, +} ZSTD_cwksp_static_alloc_e; -struct ext4_xattr_ibody_header { - __le32 h_magic; -}; +typedef struct { + void *workspace; + void *workspaceEnd; + void *objectEnd; + void *tableEnd; + void *tableValidEnd; + void *allocStart; + BYTE allocFailed; + int workspaceOversizedDuration; + ZSTD_cwksp_alloc_phase_e phase; + ZSTD_cwksp_static_alloc_e isStatic; +} ZSTD_cwksp; -struct 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 POOL_ctx_s; -struct ext4_xattr_header { - __le32 h_magic; - __le32 h_refcount; - __le32 h_blocks; - __le32 h_hash; - __le32 h_checksum; - __u32 h_reserved[3]; -}; +typedef struct POOL_ctx_s ZSTD_threadPool; -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; -}; +typedef struct { + unsigned int offset; + unsigned int litLength; + unsigned int matchLength; + unsigned int rep; +} ZSTD_Sequence; -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; - long: 32; - u64 e_value; -}; +typedef struct { + int collectSequences; + ZSTD_Sequence *seqStart; + size_t seqIndex; + size_t maxSequences; +} SeqCollector; -struct ext4_iloc { - struct buffer_head *bh; - unsigned long offset; - ext4_group_t block_group; -}; +typedef struct { + const BYTE *nextSrc; + const BYTE *base; + const BYTE *dictBase; + U32 dictLimit; + U32 lowLimit; + U32 nbOverflowCorrections; +} ZSTD_window_t; -struct ext4_map_blocks { - ext4_fsblk_t m_pblk; - ext4_lblk_t m_lblk; - unsigned int m_len; - unsigned int m_flags; - long: 32; -}; +typedef struct { + U32 offset; + U32 checksum; +} ldmEntry_t; -typedef enum { - EXT4_IGET_NORMAL = 0, - EXT4_IGET_SPECIAL = 1, - EXT4_IGET_HANDLE = 2, - EXT4_IGET_BAD = 4, - EXT4_IGET_EA_INODE = 8, -} ext4_iget_flags; +typedef struct { + const BYTE *split; + U32 hash; + U32 checksum; + ldmEntry_t *bucket; +} ldmMatchCandidate_t; -struct ext4_xattr_inode_array { - unsigned int count; - struct inode *inodes[0]; -}; +typedef struct { + ZSTD_window_t window; + ldmEntry_t *hashTable; + U32 loadedDictEnd; + BYTE *bucketOffsets; + size_t splitIndices[64]; + ldmMatchCandidate_t matchCandidates[64]; +} ldmState_t; -struct ext4_xattr_info { - const char *name; - const void *value; - size_t value_len; - int name_index; - int in_inode; -}; +typedef struct { + U32 offset; + U32 litLength; + U32 matchLength; +} rawSeq; -struct ext4_xattr_search { - struct ext4_xattr_entry *first; - void *base; - void *end; - struct ext4_xattr_entry *here; - int not_found; -}; +typedef struct { + rawSeq *seq; + size_t pos; + size_t posInSequence; + size_t size; + size_t capacity; +} rawSeqStore_t; -struct ext4_xattr_block_find { - struct ext4_xattr_search s; - struct buffer_head *bh; -}; +typedef struct { + U32 off; + U32 len; +} ZSTD_match_t; -struct ext4_xattr_ibody_find { - struct ext4_xattr_search s; - struct ext4_iloc iloc; -}; +typedef struct { + int price; + U32 off; + U32 mlen; + U32 litlen; + U32 rep[3]; +} ZSTD_optimal_t; -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, -}; +typedef enum { + zop_dynamic = 0, + zop_predef = 1, +} ZSTD_OptPrice_e; -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, -}; +typedef struct { + unsigned int *litFreq; + unsigned int *litLengthFreq; + unsigned int *matchLengthFreq; + unsigned int *offCodeFreq; + ZSTD_match_t *matchTable; + ZSTD_optimal_t *priceTable; + U32 litSum; + U32 litLengthSum; + U32 matchLengthSum; + U32 offCodeSum; + U32 litSumBasePrice; + U32 litLengthSumBasePrice; + U32 matchLengthSumBasePrice; + U32 offCodeSumBasePrice; + ZSTD_OptPrice_e priceType; + const ZSTD_entropyCTables_t *symbolCosts; + ZSTD_paramSwitch_e literalCompressionMode; +} optState_t; -struct wait_bit_key { - void *flags; - int bit_nr; - unsigned long timeout; -}; +struct ZSTD_matchState_t; -struct wait_bit_queue_entry { - struct wait_bit_key key; - struct wait_queue_entry wq_entry; +typedef struct ZSTD_matchState_t ZSTD_matchState_t; + +struct ZSTD_matchState_t { + ZSTD_window_t window; + U32 loadedDictEnd; + U32 nextToUpdate; + U32 hashLog3; + U32 rowHashLog; + U16 *tagTable; + U32 hashCache[8]; + U32 *hashTable; + U32 *hashTable3; + U32 *chainTable; + U32 forceNonContiguous; + int dedicatedDictSearch; + optState_t opt; + const ZSTD_matchState_t *dictMatchState; + ZSTD_compressionParameters cParams; + const rawSeqStore_t *ldmSeqStore; }; -typedef void (*rpc_action)(struct rpc_task *); +typedef struct { + ZSTD_compressedBlockState_t *prevCBlock; + ZSTD_compressedBlockState_t *nextCBlock; + ZSTD_matchState_t matchState; +} ZSTD_blockState_t; -typedef int wait_bit_action_f(struct wait_bit_key *, int); +typedef enum { + ZSTDb_not_buffered = 0, + ZSTDb_buffered = 1, +} ZSTD_buffered_policy_e; -struct nfs_page_iter_page { - const struct nfs_page *req; - size_t count; -}; +typedef enum { + zcss_init = 0, + zcss_load = 1, + zcss_flush = 2, +} ZSTD_cStreamStage; -enum stripetype4 { - STRIPE_SPARSE = 1, - STRIPE_DENSE = 2, -}; +struct ZSTD_CDict_s; -enum { - NFS_DEVICEID_INVALID = 0, - NFS_DEVICEID_UNAVAILABLE = 1, - NFS_DEVICEID_NOCACHE = 2, -}; +typedef struct ZSTD_CDict_s ZSTD_CDict; -struct nfs4_pnfs_ds_addr { - struct __kernel_sockaddr_storage da_addr; - size_t da_addrlen; - struct list_head da_node; - char *da_remotestr; - const char *da_netid; - int da_transport; -}; - -struct nfs4_file_layout_dsaddr; +typedef struct { + void *dictBuffer; + const void *dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; + ZSTD_CDict *cdict; +} ZSTD_localDict; -struct nfs4_filelayout_segment { - struct pnfs_layout_segment generic_hdr; - u32 stripe_type; - u32 commit_through_mds; - u32 stripe_unit; - u32 first_stripe_index; - u64 pattern_offset; - struct nfs4_deviceid deviceid; - struct nfs4_file_layout_dsaddr *dsaddr; - unsigned int num_fh; - struct nfs_fh **fh_array; - long: 32; +struct ZSTD_prefixDict_s { + const void *dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; }; -struct nfs4_pnfs_ds; +typedef struct ZSTD_prefixDict_s ZSTD_prefixDict; -struct nfs4_file_layout_dsaddr { - struct nfs4_deviceid_node id_node; - u32 stripe_count; - u8 *stripe_indices; - u32 ds_num; - struct nfs4_pnfs_ds *ds_list[0]; -}; +typedef struct { + seqStore_t fullSeqStoreChunk; + seqStore_t firstHalfSeqStore; + seqStore_t secondHalfSeqStore; + seqStore_t currSeqStore; + seqStore_t nextSeqStore; + U32 partitions[196]; + ZSTD_entropyCTablesMetadata_t entropyMetadata; +} ZSTD_blockSplitCtx; -struct nfs4_pnfs_ds { - struct list_head ds_node; - char *ds_remotestr; - struct list_head ds_addrs; - struct nfs_client *ds_clp; - refcount_t ds_count; - unsigned long ds_state; +struct ZSTD_CCtx_s { + ZSTD_compressionStage_e stage; + int cParamsChanged; + int bmi2; + ZSTD_CCtx_params requestedParams; + ZSTD_CCtx_params appliedParams; + ZSTD_CCtx_params simpleApiParams; + U32 dictID; + size_t dictContentSize; + ZSTD_cwksp workspace; + size_t blockSize; + unsigned long long pledgedSrcSizePlusOne; + unsigned long long consumedSrcSize; + unsigned long long producedCSize; + struct xxh64_state xxhState; + ZSTD_customMem customMem; + ZSTD_threadPool *pool; + size_t staticSize; + SeqCollector seqCollector; + int isFirstBlock; + int initialized; + seqStore_t seqStore; + ldmState_t ldmState; + rawSeq *ldmSequences; + size_t maxNbLdmSequences; + rawSeqStore_t externSeqStore; + ZSTD_blockState_t blockState; + U32 *entropyWorkspace; + ZSTD_buffered_policy_e bufferedPolicy; + char *inBuff; + size_t inBuffSize; + size_t inToCompress; + size_t inBuffPos; + size_t inBuffTarget; + char *outBuff; + size_t outBuffSize; + size_t outBuffContentSize; + size_t outBuffFlushedSize; + ZSTD_cStreamStage streamStage; + U32 frameEnded; + ZSTD_inBuffer expectedInBuffer; + size_t expectedOutBufferSize; + ZSTD_localDict localDict; + const ZSTD_CDict *cdict; + ZSTD_prefixDict prefixDict; + ZSTD_blockSplitCtx blockSplitCtx; }; -enum { - AT_UNUSED = 0, - AT_STANDARD_INFORMATION = 16, - AT_ATTRIBUTE_LIST = 32, - AT_FILE_NAME = 48, - AT_OBJECT_ID = 64, - AT_SECURITY_DESCRIPTOR = 80, - AT_VOLUME_NAME = 96, - AT_VOLUME_INFORMATION = 112, - AT_DATA = 128, - AT_INDEX_ROOT = 144, - AT_INDEX_ALLOCATION = 160, - AT_BITMAP = 176, - AT_REPARSE_POINT = 192, - AT_EA_INFORMATION = 208, - AT_EA = 224, - AT_PROPERTY_SET = 240, - AT_LOGGED_UTILITY_STREAM = 256, - AT_FIRST_USER_DEFINED_ATTRIBUTE = 4096, - AT_END = 4294967295, -}; +typedef struct ZSTD_CCtx_s ZSTD_CCtx; -enum { - INDEX_ENTRY_NODE = 1, - INDEX_ENTRY_END = 2, - INDEX_ENTRY_SPACE_FILLER = 65535, +struct ZSTD_CDict_s { + const void *dictContent; + size_t dictContentSize; + ZSTD_dictContentType_e dictContentType; + U32 *entropyWorkspace; + ZSTD_cwksp workspace; + ZSTD_matchState_t matchState; + ZSTD_compressedBlockState_t cBlockState; + ZSTD_customMem customMem; + U32 dictID; + int compressionLevel; + ZSTD_paramSwitch_e useRowMatchFinder; }; -enum { - magic_FILE = 1162627398, - magic_INDX = 1480871497, - magic_HOLE = 1162628936, - magic_RSTR = 1381258066, - magic_RCRD = 1146241874, - magic_CHKD = 1145784387, - magic_BAAD = 1145127234, - magic_empty = 4294967295, +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, }; -enum { - SMALL_INDEX = 0, - LARGE_INDEX = 1, - LEAF_NODE = 0, - INDEX_NODE = 1, - NODE_MASK = 1, -} __attribute__((mode(byte))); +typedef uint64_t vli_type; -enum { - NI_Dirty = 0, - NI_AttrList = 1, - NI_AttrListNonResident = 2, - NI_Attr = 3, - NI_MstProtected = 4, - NI_NonResident = 5, - NI_IndexAllocPresent = 5, - NI_Compressed = 6, - NI_Encrypted = 7, - NI_Sparse = 8, - NI_SparseDisabled = 9, - NI_TruncateFailed = 10, +struct xz_dec_hash { + vli_type unpadded; + vli_type uncompressed; + uint32_t crc32; + long: 32; }; -enum { - COLLATION_BINARY = 0, - COLLATION_FILE_NAME = 1, - COLLATION_UNICODE_STRING = 2, - COLLATION_NTOFS_ULONG = 16, - COLLATION_NTOFS_SID = 17, - COLLATION_NTOFS_SECURITY_HASH = 18, - COLLATION_NTOFS_ULONGS = 19, +enum xz_check { + XZ_CHECK_NONE = 0, + XZ_CHECK_CRC32 = 1, + XZ_CHECK_CRC64 = 4, + XZ_CHECK_SHA256 = 10, }; -typedef __le32 le32; - -typedef le32 ATTR_TYPE; - -typedef le32 COLLATION_RULE; - -typedef u8 INDEX_HEADER_FLAGS; - -typedef struct { - le32 entries_offset; - le32 index_length; - le32 allocated_size; - INDEX_HEADER_FLAGS flags; - u8 reserved[3]; -} INDEX_HEADER; - -typedef struct { - ATTR_TYPE type; - COLLATION_RULE collation_rule; - le32 index_block_size; - u8 clusters_per_index_block; - u8 reserved[3]; - INDEX_HEADER index; -} INDEX_ROOT; - -typedef __le64 le64; - -typedef le64 leMFT_REF; - -typedef __le16 le16; - -typedef le16 INDEX_ENTRY_FLAGS; - -typedef __u64 sle64; - -typedef le32 FILE_ATTR_FLAGS; - -typedef u8 FILE_NAME_TYPE_FLAGS; - -typedef le16 ntfschar; - -typedef struct { - leMFT_REF parent_directory; - sle64 creation_time; - sle64 last_data_change_time; - sle64 last_mft_change_time; - sle64 last_access_time; - sle64 allocated_size; - sle64 data_size; - FILE_ATTR_FLAGS file_attributes; - union { - struct { - le16 packed_ea_size; - le16 reserved; - } ea; - struct { - le32 reparse_point_tag; - } rp; - } type; - u8 file_name_length; - FILE_NAME_TYPE_FLAGS file_name_type; - ntfschar file_name[0]; -} __attribute__((packed)) FILE_NAME_ATTR; +enum xz_mode { + XZ_SINGLE = 0, + XZ_PREALLOC = 1, + XZ_DYNALLOC = 2, +}; -typedef struct { - le32 security_id; -} SII_INDEX_KEY; +struct xz_dec_lzma2; -typedef struct { - le32 hash; - le32 security_id; -} SDH_INDEX_KEY; +struct xz_dec_bcj; -typedef struct { - le32 data1; - le16 data2; - le16 data3; - u8 data4[8]; -} GUID; +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; + long: 32; + } 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; + long: 32; + 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; + long: 32; +}; -typedef struct { - le32 reparse_tag; - leMFT_REF file_id; -} REPARSE_INDEX_KEY; +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; +}; -typedef union { +struct cpu_rmap { + struct kref refcount; + u16 size; + void **obj; struct { - u16 high_part; - u32 low_part; - } __attribute__((packed)) parts; - u8 value[6]; -} SID_IDENTIFIER_AUTHORITY; - -typedef struct { - u8 revision; - u8 sub_authority_count; - SID_IDENTIFIER_AUTHORITY identifier_authority; - le32 sub_authority[1]; -} SID; + u16 index; + u16 dist; + } near[0]; +}; -typedef struct { - union { - struct { - leMFT_REF indexed_file; - } dir; - struct { - le16 data_offset; - le16 data_length; - le32 reservedV; - } vi; - } data; - le16 length; - le16 key_length; - INDEX_ENTRY_FLAGS flags; - le16 reserved; - union { - FILE_NAME_ATTR file_name; - SII_INDEX_KEY sii; - SDH_INDEX_KEY sdh; - GUID object_id; - REPARSE_INDEX_KEY reparse; - SID sid; - le32 owner_id; - } key; -} __attribute__((packed)) INDEX_ENTRY; +struct irq_glue { + struct irq_affinity_notify notify; + struct cpu_rmap *rmap; + u16 index; +}; -typedef le32 NTFS_RECORD_TYPE; +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, +}; -typedef sle64 leVCN; +enum asn1_method { + ASN1_PRIM = 0, + ASN1_CONS = 1, +}; -typedef struct { - NTFS_RECORD_TYPE magic; - le16 usa_ofs; - le16 usa_count; - sle64 lsn; - leVCN index_block_vcn; - INDEX_HEADER index; -} INDEX_BLOCK; +typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t); -typedef INDEX_BLOCK INDEX_ALLOCATION; +struct asn1_decoder { + const unsigned char *machine; + size_t machlen; + const asn1_action_t *actions; +}; -typedef s64 LCN; +struct sun4i_irq_chip_data { + void *irq_base; + struct irq_domain *irq_domain; + u32 enable_reg_offset; + u32 mask_reg_offset; +}; -typedef le32 ATTR_DEF_FLAGS; +struct mvebu_mbus_win_data { + u32 ctrl; + u32 base; + u32 remap_lo; + u32 remap_hi; +}; -typedef struct { - ntfschar name[64]; - ATTR_TYPE type; - le32 display_rule; - COLLATION_RULE collation_rule; - ATTR_DEF_FLAGS flags; - sle64 min_size; - sle64 max_size; -} ATTR_DEF; +struct mvebu_mbus_soc_data; -typedef le16 VOLUME_FLAGS; +struct mvebu_mbus_state { + void *mbuswins_base; + void *sdramwins_base; + void *mbusbridge_base; + phys_addr_t sdramwins_phys_base; + struct dentry *debugfs_root; + struct dentry *debugfs_sdram; + struct dentry *debugfs_devs; + struct resource pcie_mem_aperture; + struct resource pcie_io_aperture; + const struct mvebu_mbus_soc_data *soc; + int hw_io_coherency; + u32 mbus_bridge_ctrl; + u32 mbus_bridge_base; + struct mvebu_mbus_win_data wins[20]; +}; -struct nls_table; +struct mvebu_mbus_soc_data { + unsigned int num_wins; + bool has_mbus_bridge; + unsigned int (*win_cfg_offset)(const int); + unsigned int (*win_remap_offset)(const int); + void (*setup_cpu_target)(struct mvebu_mbus_state *); + int (*save_cpu_target)(struct mvebu_mbus_state *, u32 *); + int (*show_cpu_target)(struct mvebu_mbus_state *, struct seq_file *, void *); +}; -typedef struct { - struct super_block *sb; - long: 32; - LCN nr_blocks; - unsigned long flags; - kuid_t uid; - kgid_t gid; - umode_t fmask; - umode_t dmask; - u8 mft_zone_multiplier; - u8 on_errors; - u16 sector_size; - u8 sector_size_bits; - u32 cluster_size; - u32 cluster_size_mask; - u8 cluster_size_bits; - u32 mft_record_size; - u32 mft_record_size_mask; - u8 mft_record_size_bits; - u32 index_record_size; - u32 index_record_size_mask; - u8 index_record_size_bits; - long: 32; - LCN nr_clusters; - LCN mft_lcn; - LCN mftmirr_lcn; - u64 serial_no; - u32 upcase_len; - ntfschar *upcase; - s32 attrdef_size; - ATTR_DEF *attrdef; - struct inode *mft_ino; - struct inode *mftbmp_ino; - struct rw_semaphore mftbmp_lock; - struct inode *lcnbmp_ino; - struct rw_semaphore lcnbmp_lock; - struct inode *vol_ino; - VOLUME_FLAGS vol_flags; - u8 major_ver; - u8 minor_ver; - struct inode *root_ino; - struct inode *secure_ino; - struct inode *extend_ino; - struct nls_table *nls_map; +struct mbus_dram_window { + u8 cs_index; + u8 mbus_attr; long: 32; -} ntfs_volume; - -typedef s64 VCN; - -typedef struct { - VCN vcn; - LCN lcn; - s64 length; -} runlist_element; + u64 base; + u64 size; +}; -typedef struct { - runlist_element *rl; - struct rw_semaphore lock; -} runlist; +struct mbus_dram_target_info { + u8 mbus_dram_target_id; + int num_cs; + struct mbus_dram_window cs[4]; +}; -struct _ntfs_inode; +struct of_bus; -typedef struct _ntfs_inode ntfs_inode; +struct of_pci_range_parser { + struct device_node *node; + struct of_bus *bus; + const __be32 *range; + const __be32 *end; + int na; + int ns; + int pna; + bool dma; +}; -struct _ntfs_inode { - rwlock_t size_lock; - long: 32; - s64 initialized_size; - s64 allocated_size; - unsigned long state; - unsigned long mft_no; - u16 seq_no; - atomic_t count; - ntfs_volume *vol; - ATTR_TYPE type; - ntfschar *name; - u32 name_len; - runlist runlist; - struct mutex mrec_lock; - struct page *page; - int page_ofs; - u32 attr_list_size; - u8 *attr_list; - runlist attr_list_rl; - long: 32; - union { - struct { - u32 block_size; - u32 vcn_size; - COLLATION_RULE collation_rule; - u8 block_size_bits; - u8 vcn_size_bits; - } index; - struct { - s64 size; - u32 block_size; - u8 block_size_bits; - u8 block_clusters; - } compressed; - } itype; - struct mutex extent_lock; - s32 nr_extents; +struct of_pci_range { union { - ntfs_inode **extent_ntfs_inos; - ntfs_inode *base_ntfs_ino; - } ext; + u64 pci_addr; + u64 bus_addr; + }; + u64 cpu_addr; + u64 size; + u32 flags; long: 32; }; -typedef struct { - ntfs_inode ntfs_inode; - struct inode vfs_inode; -} big_ntfs_inode; - -typedef u16 wchar_t; +struct at91_pinctrl_mux_ops; -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 at91_gpio_chip { + struct gpio_chip chip; + struct pinctrl_gpio_range range; + struct at91_gpio_chip *next; + int pioc_hwirq; + int pioc_virq; + void *regbase; + struct clk *clock; + const struct at91_pinctrl_mux_ops *ops; + u32 wakeups; + u32 backups; + u32 id; }; -typedef le16 MFT_RECORD_FLAGS; - -typedef struct { - NTFS_RECORD_TYPE magic; - le16 usa_ofs; - le16 usa_count; - le64 lsn; - le16 sequence_number; - le16 link_count; - le16 attrs_offset; - MFT_RECORD_FLAGS flags; - le32 bytes_in_use; - le32 bytes_allocated; - leMFT_REF base_mft_record; - le16 next_attr_instance; - le16 reserved; - le32 mft_record_number; -} MFT_RECORD; - -typedef le16 ATTR_FLAGS; - -typedef u8 RESIDENT_ATTR_FLAGS; - -typedef struct { - ATTR_TYPE type; - le32 length; - u8 non_resident; - u8 name_length; - le16 name_offset; - ATTR_FLAGS flags; - le16 instance; - union { - struct { - le32 value_length; - le16 value_offset; - RESIDENT_ATTR_FLAGS flags; - s8 reserved; - } resident; - struct { - leVCN lowest_vcn; - leVCN highest_vcn; - le16 mapping_pairs_offset; - u8 compression_unit; - u8 reserved[5]; - sle64 allocated_size; - sle64 data_size; - sle64 initialized_size; - sle64 compressed_size; - } non_resident; - } data; -} ATTR_RECORD; +enum at91_mux { + AT91_MUX_GPIO = 0, + AT91_MUX_PERIPH_A = 1, + AT91_MUX_PERIPH_B = 2, + AT91_MUX_PERIPH_C = 3, + AT91_MUX_PERIPH_D = 4, +}; -typedef struct { - ATTR_TYPE type; - le16 length; - u8 name_length; - u8 name_offset; - leVCN lowest_vcn; - leMFT_REF mft_reference; - le16 instance; - ntfschar name[0]; -} __attribute__((packed)) ATTR_LIST_ENTRY; +struct at91_pinctrl_mux_ops { + enum at91_mux (*get_periph)(void *, unsigned int); + void (*mux_A_periph)(void *, unsigned int); + void (*mux_B_periph)(void *, unsigned int); + void (*mux_C_periph)(void *, unsigned int); + void (*mux_D_periph)(void *, unsigned int); + bool (*get_deglitch)(void *, unsigned int); + void (*set_deglitch)(void *, unsigned int, bool); + bool (*get_debounce)(void *, unsigned int, u32 *); + void (*set_debounce)(void *, unsigned int, bool, u32); + bool (*get_pulldown)(void *, unsigned int); + void (*set_pulldown)(void *, unsigned int, bool); + bool (*get_schmitt_trig)(void *, unsigned int); + void (*disable_schmitt_trig)(void *, unsigned int); + unsigned int (*get_drivestrength)(void *, unsigned int); + void (*set_drivestrength)(void *, unsigned int, u32); + unsigned int (*get_slewrate)(void *, unsigned int); + void (*set_slewrate)(void *, unsigned int, u32); + int (*irq_type)(struct irq_data *, unsigned int); +}; -typedef struct { - MFT_RECORD *mrec; - ATTR_RECORD *attr; - bool is_first; - ntfs_inode *ntfs_ino; - ATTR_LIST_ENTRY *al_entry; - ntfs_inode *base_ntfs_ino; - MFT_RECORD *base_mrec; - ATTR_RECORD *base_attr; -} ntfs_attr_search_ctx; +enum drive_strength_bit { + DRIVE_STRENGTH_BIT_DEF = 0, + DRIVE_STRENGTH_BIT_LOW = 1, + DRIVE_STRENGTH_BIT_MED = 2, + DRIVE_STRENGTH_BIT_HI = 3, +}; -typedef enum { - CASE_SENSITIVE = 0, - IGNORE_CASE = 1, -} IGNORE_CASE_BOOL; +enum slewrate_bit { + SLEWRATE_BIT_ENA = 0, + SLEWRATE_BIT_DIS = 1, +}; -typedef int filler_t(struct file *, struct folio *); +struct at91_pmx_func; -typedef struct { - ntfs_inode *idx_ni; - INDEX_ENTRY *entry; - void *data; - u16 data_len; - bool is_in_root; - INDEX_ROOT *ir; - ntfs_attr_search_ctx *actx; - ntfs_inode *base_ni; - INDEX_ALLOCATION *ia; - struct page *page; -} ntfs_index_context; +struct at91_pin_group; -enum { - UBIFS_LPT_PNODE = 0, - UBIFS_LPT_NNODE = 1, - UBIFS_LPT_LTAB = 2, - UBIFS_LPT_LSAVE = 3, - UBIFS_LPT_NODE_CNT = 4, - UBIFS_LPT_NOT_A_NODE = 15, +struct at91_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl; + int nactive_banks; + uint32_t *mux_mask; + int nmux; + struct at91_pmx_func *functions; + int nfunctions; + struct at91_pin_group *groups; + int ngroups; + const struct at91_pinctrl_mux_ops *ops; }; -enum { - LPROPS_UNCAT = 0, - LPROPS_DIRTY = 1, - LPROPS_DIRTY_IDX = 2, - LPROPS_FREE = 3, - LPROPS_HEAP_CNT = 3, - LPROPS_EMPTY = 4, - LPROPS_FREEABLE = 5, - LPROPS_FRDI_IDX = 6, - LPROPS_CAT_MASK = 15, - LPROPS_TAKEN = 16, - LPROPS_INDEX = 32, +struct at91_pmx_func { + const char *name; + const char **groups; + unsigned int ngroups; }; -enum { - LTAB_DIRTY = 1, - LSAVE_DIRTY = 2, -}; +struct at91_pmx_pin; -enum { - DIRTY_CNODE = 0, - OBSOLETE_CNODE = 1, - COW_CNODE = 2, +struct at91_pin_group { + const char *name; + struct at91_pmx_pin *pins_conf; + unsigned int *pins; + unsigned int npins; }; -enum { - LPT_SCAN_CONTINUE = 0, - LPT_SCAN_ADD = 1, - LPT_SCAN_STOP = 2, +struct at91_pmx_pin { + uint32_t bank; + uint32_t pin; + enum at91_mux mux; + unsigned long conf; }; -typedef int (*ubifs_lpt_scan_callback)(struct ubifs_info *, const struct ubifs_lprops *, int, void *); +struct berlin_desc_group; -struct lpt_scan_node { - union { - struct ubifs_nnode nnode; - struct ubifs_pnode pnode; - struct ubifs_cnode cnode; - }; - int in_tree; - union { - struct ubifs_nnode *nnode; - struct ubifs_pnode *pnode; - struct ubifs_cnode *cnode; - } ptr; +struct berlin_pinctrl_desc { + const struct berlin_desc_group *groups; + unsigned int ngroups; }; -struct crypto_comp { - struct crypto_tfm base; +struct berlin_desc_function; + +struct berlin_desc_group { + const char *name; + u8 offset; + u8 bit_width; + u8 lsb; + struct berlin_desc_function *functions; }; -struct asymmetric_key_id { - unsigned short len; - unsigned char data[0]; +struct berlin_desc_function { + const char *name; + u8 muxval; }; -enum kernel_pkey_operation { - kernel_pkey_encrypt = 0, - kernel_pkey_decrypt = 1, - kernel_pkey_sign = 2, - kernel_pkey_verify = 3, +struct imx_pinctrl; + +struct imx_pin; + +struct imx_pinctrl_soc_info { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + unsigned int flags; + const char *gpr_compatible; + unsigned int mux_mask; + u8 mux_shift; + int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); + int (*imx_pinconf_get)(struct pinctrl_dev *, unsigned int, unsigned long *); + int (*imx_pinconf_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); + void (*imx_pinctrl_parse_pin)(struct imx_pinctrl *, unsigned int *, struct imx_pin *, const __be32 **); }; -enum asymmetric_payload_bits { - asym_crypto = 0, - asym_subtype = 1, - asym_key_ids = 2, - asym_auth = 3, +struct imx_pin_reg; + +struct imx_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl; + void *base; + void *input_sel_base; + const struct imx_pinctrl_soc_info *info; + struct imx_pin_reg *pin_regs; + unsigned int group_index; + struct mutex mutex; }; -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, +struct imx_pin_reg { + s16 mux_reg; + s16 conf_reg; }; -struct key_preparsed_payload { - const char *orig_description; - char *description; - union key_payload payload; - const void *data; - size_t datalen; - size_t quotalen; - long: 32; - time64_t expiry; +struct imx_pin_mmio { + unsigned int mux_mode; + u16 input_reg; + unsigned int input_val; + unsigned long config; }; -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 imx_pin_scu { + unsigned int mux_mode; + unsigned long config; }; -struct kernel_pkey_params { - struct key *key; - const char *encoding; - const char *hash_algo; - char *info; - __u32 in_len; +struct imx_pin { + unsigned int pin; union { - __u32 out_len; - __u32 in2_len; - }; - enum kernel_pkey_operation op: 8; + struct imx_pin_mmio mmio; + struct imx_pin_scu scu; + } conf; }; -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 mtk_eint_xt { + int (*get_gpio_n)(void *, unsigned long, unsigned int *, struct gpio_chip **); + int (*get_gpio_state)(void *, unsigned long); + int (*set_gpio_as_eint)(void *, unsigned long); }; -struct public_key_signature { - struct asymmetric_key_id *auth_ids[3]; - u8 *s; - u8 *digest; - u32 s_size; - u32 digest_size; - const char *pkey_algo; - const char *hash_algo; - const char *encoding; +struct mtk_pinctrl_group; + +struct mtk_pinctrl_devdata; + +struct mtk_eint; + +struct mtk_pinctrl { + struct regmap *regmap1; + struct regmap *regmap2; + struct pinctrl_desc pctl_desc; + struct device *dev; + struct gpio_chip *chip; + struct mtk_pinctrl_group *groups; + unsigned int ngroups; + const char **grp_names; + struct pinctrl_dev *pctl_dev; + const struct mtk_pinctrl_devdata *devdata; + struct mtk_eint *eint; }; -struct asymmetric_key_ids { - void *id[3]; +struct mtk_pinctrl_group { + const char *name; + unsigned long config; + unsigned int pin; }; -struct public_key { - void *key; - u32 keylen; - enum OID algo; - void *params; - u32 paramlen; - bool key_is_private; - const char *id_type; - const char *pkey_algo; - unsigned long key_eflags; +struct mtk_eint_hw { + u8 port_mask; + u8 ports; + unsigned int ap_num; + unsigned int db_cnt; + const unsigned int *db_time; }; -struct x509_certificate; +struct mtk_desc_pin; -struct pkcs7_signed_info; +struct mtk_drv_group_desc; -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 mtk_pin_drv_grp; -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; - long: 32; -}; +struct mtk_pin_ies_smt_set; -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; - long: 32; - time64_t signing_time; - struct public_key_signature *sig; - long: 32; -}; +struct mtk_pin_spec_pupd_set_samereg; -struct elevator_type; +struct mtk_eint_regs; -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 mtk_pinctrl_devdata { + const struct mtk_desc_pin *pins; + unsigned int npins; + const struct mtk_drv_group_desc *grp_desc; + unsigned int n_grp_cls; + const struct mtk_pin_drv_grp *pin_drv_grp; + unsigned int n_pin_drv_grps; + const struct mtk_pin_ies_smt_set *spec_ies; + unsigned int n_spec_ies; + const struct mtk_pin_spec_pupd_set_samereg *spec_pupd; + unsigned int n_spec_pupd; + const struct mtk_pin_ies_smt_set *spec_smt; + unsigned int n_spec_smt; + int (*spec_pull_set)(struct regmap *, const struct mtk_pinctrl_devdata *, unsigned int, bool, unsigned int); + int (*spec_ies_smt_set)(struct regmap *, const struct mtk_pinctrl_devdata *, unsigned int, int, enum pin_config_param); + void (*spec_pinmux_set)(struct regmap *, unsigned int, unsigned int); + void (*spec_dir_set)(unsigned int *, unsigned int); + int (*mt8365_set_clr_mode)(struct regmap *, unsigned int, unsigned int, unsigned int, bool, bool); + unsigned int dir_offset; + unsigned int ies_offset; + unsigned int smt_offset; + unsigned int pullen_offset; + unsigned int pullsel_offset; + unsigned int drv_offset; + unsigned int dout_offset; + unsigned int din_offset; + unsigned int pinmux_offset; + unsigned short type1_start; + unsigned short type1_end; + unsigned char port_shf; + unsigned char port_mask; + unsigned char port_align; + struct mtk_eint_hw eint_hw; + struct mtk_eint_regs *eint_regs; + unsigned int mode_mask; + unsigned int mode_per_reg; + unsigned int mode_shf; }; -enum elv_merge { - ELEVATOR_NO_MERGE = 0, - ELEVATOR_FRONT_MERGE = 1, - ELEVATOR_BACK_MERGE = 2, - ELEVATOR_DISCARD_MERGE = 3, +struct mtk_desc_eint { + unsigned char eintmux; + unsigned char eintnum; }; -typedef unsigned int blk_insert_t; - -struct blk_mq_alloc_data; +struct mtk_desc_function; -struct elevator_mq_ops { - int (*init_sched)(struct request_queue *, struct elevator_type *); - void (*exit_sched)(struct elevator_queue *); - int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int); - void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int); - void (*depth_updated)(struct blk_mq_hw_ctx *); - bool (*allow_merge)(struct request_queue *, struct request *, struct bio *); - bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int); - int (*request_merge)(struct request_queue *, struct request **, struct bio *); - void (*request_merged)(struct request_queue *, struct request *, enum elv_merge); - void (*requests_merged)(struct request_queue *, struct request *, struct request *); - void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *); - void (*prepare_request)(struct request *); - void (*finish_request)(struct request *); - void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, blk_insert_t); - struct request * (*dispatch_request)(struct blk_mq_hw_ctx *); - bool (*has_work)(struct blk_mq_hw_ctx *); - void (*completed_request)(struct request *, u64); - void (*requeue_request)(struct request *); - struct request * (*former_request)(struct request_queue *, struct request *); - struct request * (*next_request)(struct request_queue *, struct request *); - void (*init_icq)(struct io_cq *); - void (*exit_icq)(struct io_cq *); +struct mtk_desc_pin { + struct pinctrl_pin_desc pin; + const struct mtk_desc_eint eint; + const struct mtk_desc_function *functions; }; -struct elv_fs_entry; - -struct blk_mq_debugfs_attr; - -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 mtk_desc_function { + const char *name; + unsigned char muxval; }; -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 mtk_drv_group_desc { + unsigned char min_drv; + unsigned char max_drv; + unsigned char low_bit; + unsigned char high_bit; + unsigned char step; }; -struct blk_mq_ctxs { - struct kobject kobj; - struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx; +struct mtk_pin_drv_grp { + unsigned short pin; + unsigned short offset; + unsigned char bit; + unsigned char grp; }; -typedef __u32 blk_mq_req_flags_t; - -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 mtk_pin_ies_smt_set { + unsigned short start; + unsigned short end; + unsigned short offset; + unsigned char bit; }; -struct elv_fs_entry { - struct attribute attr; - ssize_t (*show)(struct elevator_queue *, char *); - ssize_t (*store)(struct elevator_queue *, const char *, size_t); +struct mtk_pin_spec_pupd_set_samereg { + unsigned short pin; + unsigned short offset; + unsigned char pupd_bit; + unsigned char r1_bit; + unsigned char r0_bit; }; -struct blk_mq_debugfs_attr { - const char *name; - umode_t mode; - int (*show)(void *, struct seq_file *); - ssize_t (*write)(void *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - const struct seq_operations *seq_ops; +struct mtk_eint_regs { + unsigned int stat; + unsigned int ack; + unsigned int mask; + unsigned int mask_set; + unsigned int mask_clr; + unsigned int sens; + unsigned int sens_set; + unsigned int sens_clr; + unsigned int soft; + unsigned int soft_set; + unsigned int soft_clr; + unsigned int pol; + unsigned int pol_set; + unsigned int pol_clr; + unsigned int dom_en; + unsigned int dbnc_ctrl; + unsigned int dbnc_set; + unsigned int dbnc_clr; }; -enum rq_qos_id { - RQ_QOS_WBT = 0, - RQ_QOS_LATENCY = 1, - RQ_QOS_COST = 2, +struct mtk_eint { + struct device *dev; + void *base; + struct irq_domain *domain; + int irq; + int *dual_edge; + u32 *wake_mask; + u32 *cur_mask; + const struct mtk_eint_hw *hw; + const struct mtk_eint_regs *regs; + u16 num_db_time; + void *pctl; + const struct mtk_eint_xt *gpio_xlate; }; -struct rq_qos_ops; +struct meson_pmx_group; -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 meson_pmx_func; -struct rq_qos_ops { - void (*throttle)(struct rq_qos *, struct bio *); - void (*track)(struct rq_qos *, struct request *, struct bio *); - void (*merge)(struct rq_qos *, struct request *, struct bio *); - void (*issue)(struct rq_qos *, struct request *); - void (*requeue)(struct rq_qos *, struct request *); - void (*done)(struct rq_qos *, struct request *); - void (*done_bio)(struct rq_qos *, struct bio *); - void (*cleanup)(struct rq_qos *, struct bio *); - void (*queue_depth_changed)(struct rq_qos *); - void (*exit)(struct rq_qos *); - const struct blk_mq_debugfs_attr *debugfs_attrs; -}; +struct meson_bank; -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 meson_pinctrl; -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 meson_pinctrl_data { + const char *name; + const struct pinctrl_pin_desc *pins; + struct meson_pmx_group *groups; + struct meson_pmx_func *funcs; + unsigned int num_pins; + unsigned int num_groups; + unsigned int num_funcs; + struct meson_bank *banks; + unsigned int num_banks; + const struct pinmux_ops *pmx_ops; + void *pmx_data; + int (*parse_dt)(struct meson_pinctrl *); }; -enum task_work_notify_mode { - TWA_NONE = 0, - TWA_RESUME = 1, - TWA_SIGNAL = 2, - TWA_SIGNAL_NO_IPI = 3, +struct meson_pmx_group { + const char *name; + const unsigned int *pins; + unsigned int num_pins; + const void *data; }; -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, +struct meson_pmx_func { + const char *name; + const char * const *groups; + unsigned int num_groups; }; -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 meson_reg_desc { + unsigned int reg; + unsigned int bit; }; -enum { - IOU_OK = 0, - IOU_ISSUE_SKIP_COMPLETE = -529, - IOU_STOP_MULTISHOT = -125, +struct meson_bank { + const char *name; + unsigned int first; + unsigned int last; + int irq_first; + int irq_last; + struct meson_reg_desc regs[6]; }; -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 meson_pinctrl { + struct device *dev; + struct pinctrl_dev *pcdev; + struct pinctrl_desc desc; + struct meson_pinctrl_data *data; + struct regmap *reg_mux; + struct regmap *reg_pullen; + struct regmap *reg_pull; + struct regmap *reg_gpio; + struct regmap *reg_ds; + struct gpio_chip chip; + struct fwnode_handle *fwnode; }; -struct io_sync { - struct file *file; - long: 32; - loff_t len; - loff_t off; - int flags; - int mode; +enum pmic_gpio_func_index { + PMIC_GPIO_FUNC_INDEX_NORMAL = 0, + PMIC_GPIO_FUNC_INDEX_PAIRED = 1, + PMIC_GPIO_FUNC_INDEX_FUNC1 = 2, + PMIC_GPIO_FUNC_INDEX_FUNC2 = 3, + PMIC_GPIO_FUNC_INDEX_FUNC3 = 4, + PMIC_GPIO_FUNC_INDEX_FUNC4 = 5, + PMIC_GPIO_FUNC_INDEX_DTEST1 = 6, + PMIC_GPIO_FUNC_INDEX_DTEST2 = 7, + PMIC_GPIO_FUNC_INDEX_DTEST3 = 8, + PMIC_GPIO_FUNC_INDEX_DTEST4 = 9, }; -struct io_ring_ctx; - -struct io_wq; +struct spmi_controller; -struct io_uring_task { - int cached_refs; - const struct io_ring_ctx *last; - struct io_wq *io_wq; - struct file *registered_rings[16]; - struct xarray xa; - struct wait_queue_head wait; - atomic_t in_cancel; - atomic_t inflight_tracked; - long: 32; - struct percpu_counter inflight; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct { - struct llist_head task_list; - struct callback_head task_work; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - }; +struct spmi_device { + struct device dev; + struct spmi_controller *ctrl; + u8 usid; }; -struct io_fixed_file; - -struct io_file_table { - struct io_fixed_file *files; - unsigned long *bitmap; - unsigned int alloc_hint; +struct spmi_controller { + struct device dev; + unsigned int nr; + int (*cmd)(struct spmi_controller *, u8, u8); + int (*read_cmd)(struct spmi_controller *, u8, u8, u16, u8 *, size_t); + int (*write_cmd)(struct spmi_controller *, u8, u8, u16, const u8 *, size_t); }; -struct io_wq_work_node { - struct io_wq_work_node *next; +struct pmic_gpio_state { + struct device *dev; + struct regmap *map; + struct pinctrl_dev *ctrl; + struct gpio_chip chip; + u8 usid; + u8 pid_base; }; -struct io_wq_work_list { - struct io_wq_work_node *first; - struct io_wq_work_node *last; +struct pmic_gpio_pad { + u16 base; + bool is_enabled; + bool out_value; + bool have_buffer; + bool output_enabled; + bool input_enabled; + bool analog_pass; + bool lv_mv_type; + unsigned int num_sources; + unsigned int power_source; + unsigned int buffer_type; + unsigned int pullup; + unsigned int strength; + unsigned int function; + unsigned int atest; + unsigned int dtest_buffer; }; -struct io_kiocb; - -struct io_submit_link { - struct io_kiocb *head; - struct io_kiocb *last; -}; +struct tegra_pingroup; -struct io_uring_cqe { - __u64 user_data; - __s32 res; - __u32 flags; - __u64 big_cqe[0]; +struct tegra_pinctrl_soc_data { + unsigned int ngpios; + const char *gpio_compatible; + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const char * const *functions; + unsigned int nfunctions; + const struct tegra_pingroup *groups; + unsigned int ngroups; + bool hsm_in_mux; + bool schmitt_in_mux; + bool drvtype_in_mux; + bool sfsel_in_mux; }; -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; - long: 32; - struct io_uring_cqe cqes[16]; +struct tegra_pingroup { + const char *name; + const unsigned int *pins; + u8 npins; + u8 funcs[4]; + s32 mux_reg; + s32 pupd_reg; + s32 tri_reg; + s32 drv_reg; + u32 mux_bank: 2; + u32 pupd_bank: 2; + u32 tri_bank: 2; + u32 drv_bank: 2; + s32 mux_bit: 6; + s32 pupd_bit: 6; + s32 tri_bit: 6; + s32 einput_bit: 6; + s32 odrain_bit: 6; + s32 lock_bit: 6; + s32 ioreset_bit: 6; + s32 rcv_sel_bit: 6; + s32 hsm_bit: 6; + long: 2; + s32 sfsel_bit: 6; + s32 schmitt_bit: 6; + s32 lpmd_bit: 6; + s32 drvdn_bit: 6; + s32 drvup_bit: 6; + long: 2; + s32 slwr_bit: 6; + s32 slwf_bit: 6; + s32 lpdr_bit: 6; + s32 drvtype_bit: 6; + s32 drvdn_width: 6; + long: 2; + s32 drvup_width: 6; + s32 slwr_width: 6; + s32 slwf_width: 6; + u32 parked_bitmask; }; -struct io_hash_bucket; - -struct io_hash_table { - struct io_hash_bucket *hbs; - unsigned int hash_bits; +struct em_gio_priv { + void *base0; + void *base1; + spinlock_t sense_lock; + struct platform_device *pdev; + struct gpio_chip gpio_chip; + struct irq_chip irq_chip; + struct irq_domain *irq_domain; }; -struct io_alloc_cache { - struct io_wq_work_node list; - unsigned int nr_cached; - unsigned int max_cached; - size_t elem_size; +struct fsl_gpio_soc_data { + bool have_paddr; + bool have_dual_base; }; -struct io_restriction { - unsigned long register_op[1]; - unsigned long sqe_op[2]; - u8 sqe_flags_allowed; - u8 sqe_flags_required; - bool registered; +struct vf610_gpio_port { + struct gpio_chip gc; + void *base; + void *gpio_base; + const struct fsl_gpio_soc_data *sdata; + u8 irqc[32]; + struct clk *clk_port; + struct clk *clk_gpio; + int irq; }; -struct io_rings; - -struct io_rsrc_node; +struct pwm_chip; -struct io_mapped_ubuf; +struct pwm_device; -struct io_buffer_list; +struct pwm_capture; -struct io_sq_data; +struct pwm_state; -struct io_ev_fd; +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 io_rsrc_data; +struct pwm_chip { + struct device *dev; + const struct pwm_ops *ops; + struct module *owner; + 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 io_wq_hash; +enum pwm_polarity { + PWM_POLARITY_NORMAL = 0, + PWM_POLARITY_INVERSED = 1, +}; -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; - unsigned short n_ring_pages; - unsigned short n_sqe_pages; - struct page **ring_pages; - struct page **sqe_pages; - struct io_rings *rings; - struct task_struct *submitter_task; - struct percpu_ref refs; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - }; - struct { - struct mutex uring_lock; - u32 *sq_array; - struct io_uring_sqe *sq_sqes; - unsigned int cached_sq_head; - unsigned int sq_entries; - struct io_rsrc_node *rsrc_node; - atomic_t cancel_seq; - struct io_file_table file_table; - unsigned int nr_user_files; - unsigned int nr_user_bufs; - struct io_mapped_ubuf **user_bufs; - long: 32; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - }; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - 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; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - }; - struct { - spinlock_t completion_lock; - bool poll_multi_queue; - atomic_t cq_wait_nr; - struct io_wq_work_list iopoll_list; - struct io_hash_table cancel_table; - struct llist_head work_llist; - struct list_head io_buffers_comp; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - }; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - }; - struct wait_queue_head poll_wq; - struct io_restriction restrictions; - struct io_mapped_ubuf *dummy_ubuf; - struct io_rsrc_data *file_data; - struct io_rsrc_data *buf_data; - struct list_head rsrc_ref_list; - struct io_alloc_cache rsrc_node_cache; - struct wait_queue_head rsrc_quiesce_wq; - unsigned int rsrc_quiesce; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct pwm_args { + u64 period; + enum pwm_polarity polarity; long: 32; }; -struct io_uring { - u32 head; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - u32 tail; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct pwm_state { + u64 period; + u64 duty_cycle; + enum pwm_polarity polarity; + bool enabled; + bool usage_power; }; -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct pwm_device { + const char *label; + unsigned long flags; + unsigned int hwpwm; + unsigned int pwm; + struct pwm_chip *chip; long: 32; - struct io_uring_cqe cqes[0]; + struct pwm_args args; + struct pwm_state state; + struct pwm_state last; }; -struct io_fixed_file { - unsigned long file_ptr; +struct pwm_capture { + unsigned int period; + unsigned int duty_cycle; }; -struct io_cmd_data { - struct file *file; - __u8 data[56]; +enum tpu_pin_state { + TPU_PIN_INACTIVE = 0, + TPU_PIN_PWM = 1, + TPU_PIN_ACTIVE = 2, }; -struct io_cqe { - __u64 user_data; - __s32 res; - union { - __u32 flags; - int fd; - }; -}; +struct tpu_device; -struct io_tw_state; +struct tpu_pwm_device { + bool timer_on; + struct tpu_device *tpu; + unsigned int channel; + enum pwm_polarity polarity; + unsigned int prescaler; + u16 period; + u16 duty; +}; -typedef void (*io_req_tw_func_t)(struct io_kiocb *, struct io_tw_state *); +struct tpu_device { + struct platform_device *pdev; + struct pwm_chip chip; + spinlock_t lock; + void *base; + struct clk *clk; + struct tpu_pwm_device tpd[4]; +}; -struct io_task_work { - struct llist_node node; - io_req_tw_func_t func; +struct pci_fixup { + u16 vendor; + u16 device; + u32 class; + unsigned int class_shift; + void (*hook)(struct pci_dev *); }; -struct io_wq_work { - struct io_wq_work_node list; - unsigned int flags; - int cancel_seq; +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 io_buffer; +struct pci_config_window; -struct async_poll; +struct pci_ecam_ops { + unsigned int bus_shift; + struct pci_ops pci_ops; + int (*init)(struct pci_config_window *); +}; -struct io_kiocb { - union { - struct file *file; - struct io_cmd_data cmd; - }; - u8 opcode; - u8 iopoll_completed; - u16 buf_index; - unsigned int flags; - long: 32; - 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; - unsigned int nr_tw; +struct pci_config_window { + struct resource res; + struct resource busr; + unsigned int bus_shift; + void *priv; + const struct pci_ecam_ops *ops; union { - struct hlist_node hash_node; - struct { - u64 extra1; - u64 extra2; - }; + void *win; + void **winp; }; - struct async_poll *apoll; - void *async_data; - struct io_kiocb *link; - const struct cred *creds; - struct io_wq_work work; - long: 32; + struct device *parent; }; -struct io_tw_state { - bool locked; +enum pci_interrupt_pin { + PCI_INTERRUPT_UNKNOWN = 0, + PCI_INTERRUPT_INTA = 1, + PCI_INTERRUPT_INTB = 2, + PCI_INTERRUPT_INTC = 3, + PCI_INTERRUPT_INTD = 4, }; -struct io_hash_bucket { - spinlock_t lock; - struct hlist_head list; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +enum pci_barno { + NO_BAR = -1, + BAR_0 = 0, + BAR_1 = 1, + BAR_2 = 2, + BAR_3 = 3, + BAR_4 = 4, + BAR_5 = 5, }; -struct eventfd_ctx; +enum pci_epc_irq_type { + PCI_EPC_IRQ_UNKNOWN = 0, + PCI_EPC_IRQ_LEGACY = 1, + PCI_EPC_IRQ_MSI = 2, + PCI_EPC_IRQ_MSIX = 3, +}; -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; +enum pci_epc_interface_type { + UNKNOWN_INTERFACE = -1, + PRIMARY_INTERFACE = 0, + SECONDARY_INTERFACE = 1, }; -struct io_wq_hash { - refcount_t refs; - unsigned long map; - struct wait_queue_head wait; +struct pci_epf_bar { + dma_addr_t phys_addr; + void *addr; + size_t size; + enum pci_barno barno; + int flags; }; -enum string_size_units { - STRING_UNITS_10 = 0, - STRING_UNITS_2 = 1, -}; +struct pci_epf_header; -typedef void (*dr_release_t)(struct device *, void *); +struct pci_epc; -struct strarray { - char **array; - size_t n; -}; +struct pci_epf_driver; -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, -}; +struct pci_epf_device_id; -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 pci_epc_event_ops; + +struct pci_epf { + struct device dev; + const char *name; + struct pci_epf_header *header; + struct pci_epf_bar bar[6]; + u8 msi_interrupts; + u16 msix_interrupts; + u8 func_no; + u8 vfunc_no; + struct pci_epc *epc; + struct pci_epf *epf_pf; + struct pci_epf_driver *driver; + const struct pci_epf_device_id *id; + struct list_head list; + struct mutex lock; + struct pci_epc *sec_epc; + struct list_head sec_epc_list; + struct pci_epf_bar sec_epc_bar[6]; + u8 sec_epc_func_no; + struct config_group *group; + unsigned int is_bound; + unsigned int is_vf; + unsigned long vfunction_num_map; + struct list_head pci_vepf; + const struct pci_epc_event_ops *event_ops; }; -enum asn1_method { - ASN1_PRIM = 0, - ASN1_CONS = 1, +struct pci_epf_header { + u16 vendorid; + u16 deviceid; + u8 revid; + u8 progif_code; + u8 subclass_code; + u8 baseclass_code; + u8 cache_line_size; + u16 subsys_vendor_id; + u16 subsys_id; + enum pci_interrupt_pin interrupt_pin; }; -typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t); +struct pci_epc_ops; -struct asn1_decoder { - const unsigned char *machine; - size_t machlen; - const asn1_action_t *actions; -}; +struct pci_epc_mem; -enum { - IRQCHIP_SET_TYPE_MASKED = 1, - IRQCHIP_EOI_IF_HANDLED = 2, - IRQCHIP_MASK_ON_SUSPEND = 4, - IRQCHIP_ONOFFLINE_ENABLED = 8, - IRQCHIP_SKIP_SET_WAKE = 16, - IRQCHIP_ONESHOT_SAFE = 32, - IRQCHIP_EOI_THREADED = 64, - IRQCHIP_SUPPORTS_LEVEL_MSI = 128, - IRQCHIP_SUPPORTS_NMI = 256, - IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, - IRQCHIP_AFFINITY_PRE_STARTUP = 1024, - IRQCHIP_IMMUTABLE = 2048, +struct pci_epc { + struct device dev; + struct list_head pci_epf; + struct mutex list_lock; + const struct pci_epc_ops *ops; + struct pci_epc_mem **windows; + struct pci_epc_mem *mem; + unsigned int num_windows; + u8 max_functions; + u8 *max_vfs; + struct config_group *group; + struct mutex lock; + unsigned long function_num_map; }; -struct irqc_priv; +struct pci_epc_features; -struct irqc_irq { - int hw_irq; - int requested_irq; - struct irqc_priv *p; +struct pci_epc_ops { + int (*write_header)(struct pci_epc *, u8, u8, struct pci_epf_header *); + int (*set_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); + void (*clear_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); + int (*map_addr)(struct pci_epc *, u8, u8, phys_addr_t, u64, size_t); + void (*unmap_addr)(struct pci_epc *, u8, u8, phys_addr_t); + int (*set_msi)(struct pci_epc *, u8, u8, u8); + int (*get_msi)(struct pci_epc *, u8, u8); + int (*set_msix)(struct pci_epc *, u8, u8, u16, enum pci_barno, u32); + int (*get_msix)(struct pci_epc *, u8, u8); + int (*raise_irq)(struct pci_epc *, u8, u8, enum pci_epc_irq_type, u16); + int (*map_msi_irq)(struct pci_epc *, u8, u8, phys_addr_t, u8, u32, u32 *, u32 *); + int (*start)(struct pci_epc *); + void (*stop)(struct pci_epc *); + const struct pci_epc_features * (*get_features)(struct pci_epc *, u8, u8); + struct module *owner; }; -struct irqc_priv { - void *iomem; - void *cpu_int_base; - struct irqc_irq irq[32]; - unsigned int number_of_irqs; - struct device *dev; - struct irq_chip_generic *gc; - struct irq_domain *irq_domain; - atomic_t wakeup_path; +struct pci_epc_features { + unsigned int linkup_notifier: 1; + unsigned int core_init_notifier: 1; + unsigned int msi_capable: 1; + unsigned int msix_capable: 1; + u8 reserved_bar; + u8 bar_fixed_64bit; + long: 32; + u64 bar_fixed_size[6]; + size_t align; + long: 32; }; -struct mvebu_mbus_win_data { - u32 ctrl; - u32 base; - u32 remap_lo; - u32 remap_hi; +struct pci_epc_mem_window { + phys_addr_t phys_base; + size_t size; + size_t page_size; }; -struct mvebu_mbus_soc_data; +struct pci_epc_mem { + struct pci_epc_mem_window window; + unsigned long *bitmap; + int pages; + struct mutex lock; +}; -struct mvebu_mbus_state { - void *mbuswins_base; - void *sdramwins_base; - void *mbusbridge_base; - phys_addr_t sdramwins_phys_base; - struct dentry *debugfs_root; - struct dentry *debugfs_sdram; - struct dentry *debugfs_devs; - struct resource pcie_mem_aperture; - struct resource pcie_io_aperture; - const struct mvebu_mbus_soc_data *soc; - int hw_io_coherency; - u32 mbus_bridge_ctrl; - u32 mbus_bridge_base; - struct mvebu_mbus_win_data wins[20]; +struct pci_epf_ops; + +struct pci_epf_driver { + int (*probe)(struct pci_epf *, const struct pci_epf_device_id *); + void (*remove)(struct pci_epf *); + struct device_driver driver; + struct pci_epf_ops *ops; + struct module *owner; + struct list_head epf_group; + const struct pci_epf_device_id *id_table; }; -struct mvebu_mbus_soc_data { - unsigned int num_wins; - bool has_mbus_bridge; - unsigned int (*win_cfg_offset)(const int); - unsigned int (*win_remap_offset)(const int); - void (*setup_cpu_target)(struct mvebu_mbus_state *); - int (*save_cpu_target)(struct mvebu_mbus_state *, u32 *); - int (*show_cpu_target)(struct mvebu_mbus_state *, struct seq_file *, void *); +struct pci_epf_device_id { + char name[20]; + kernel_ulong_t driver_data; }; -struct mbus_dram_window { - u8 cs_index; - u8 mbus_attr; - long: 32; - u64 base; - u64 size; +struct pci_epf_ops { + int (*bind)(struct pci_epf *); + void (*unbind)(struct pci_epf *); + struct config_group * (*add_cfs)(struct pci_epf *, struct config_group *); }; -struct mbus_dram_target_info { - u8 mbus_dram_target_id; - int num_cs; - struct mbus_dram_window cs[4]; +struct pci_epc_event_ops { + int (*core_init)(struct pci_epf *); + int (*link_up)(struct pci_epf *); + int (*link_down)(struct pci_epf *); + int (*bme)(struct pci_epf *); }; -struct of_bus; +struct dw_edma_plat_ops { + int (*irq_vector)(struct device *, unsigned int); + u64 (*pci_address)(struct device *, phys_addr_t); +}; -struct of_pci_range_parser { - struct device_node *node; - struct of_bus *bus; - const __be32 *range; - const __be32 *end; - int na; - int ns; - int pna; - bool dma; +enum dw_pcie_ltssm { + DW_PCIE_LTSSM_DETECT_QUIET = 0, + DW_PCIE_LTSSM_DETECT_ACT = 1, + DW_PCIE_LTSSM_L0 = 17, + DW_PCIE_LTSSM_L2_IDLE = 21, + DW_PCIE_LTSSM_UNKNOWN = 4294967295, }; -struct of_pci_range { - union { - u64 pci_addr; - u64 bus_addr; - }; - u64 cpu_addr; - u64 size; - u32 flags; - long: 32; +enum dw_edma_map_format { + EDMA_MF_EDMA_LEGACY = 0, + EDMA_MF_EDMA_UNROLL = 1, + EDMA_MF_HDMA_COMPAT = 5, + EDMA_MF_HDMA_NATIVE = 7, }; -struct uniphier_ahciphy_priv; +enum dw_pcie_app_clk { + DW_PCIE_DBI_CLK = 0, + DW_PCIE_MSTR_CLK = 1, + DW_PCIE_SLV_CLK = 2, + DW_PCIE_NUM_APP_CLKS = 3, +}; -struct uniphier_ahciphy_soc_data { - int (*init)(struct uniphier_ahciphy_priv *); - int (*power_on)(struct uniphier_ahciphy_priv *); - int (*power_off)(struct uniphier_ahciphy_priv *); - bool is_legacy; - bool is_ready_high; - bool is_phy_clk; +enum dw_pcie_core_clk { + DW_PCIE_PIPE_CLK = 0, + DW_PCIE_CORE_CLK = 1, + DW_PCIE_AUX_CLK = 2, + DW_PCIE_REF_CLK = 3, + DW_PCIE_NUM_CORE_CLKS = 4, }; -struct uniphier_ahciphy_priv { - struct device *dev; - void *base; - struct clk *clk; - struct clk *clk_parent; - struct clk *clk_parent_gio; - struct reset_control *rst; - struct reset_control *rst_parent; - struct reset_control *rst_parent_gio; - struct reset_control *rst_pm; - struct reset_control *rst_tx; - struct reset_control *rst_rx; - const struct uniphier_ahciphy_soc_data *data; +enum dw_pcie_app_rst { + DW_PCIE_DBI_RST = 0, + DW_PCIE_MSTR_RST = 1, + DW_PCIE_SLV_RST = 2, + DW_PCIE_NUM_APP_RSTS = 3, }; -struct nsp_pin { - unsigned int pin; - char *name; - unsigned int gpio_select; +enum dw_pcie_core_rst { + DW_PCIE_NON_STICKY_RST = 0, + DW_PCIE_STICKY_RST = 1, + DW_PCIE_CORE_RST = 2, + DW_PCIE_PIPE_RST = 3, + DW_PCIE_PHY_RST = 4, + DW_PCIE_HOT_RST = 5, + DW_PCIE_PWR_RST = 6, + DW_PCIE_NUM_CORE_RSTS = 7, }; -struct nsp_mux { - unsigned int base; - unsigned int shift; - unsigned int mask; - unsigned int alt; +enum dw_edma_chip_flags { + DW_EDMA_CHIP_LOCAL = 1, }; -struct nsp_pin_group { - const char *name; - const unsigned int *pins; - const unsigned int num_pins; - const struct nsp_mux mux; +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, }; -struct nsp_pin_function { - const char *name; - const char * const *groups; - const unsigned int num_groups; +struct dw_pcie_host_ops; + +struct pci_host_bridge; + +struct dw_pcie_rp { + bool has_msi_ctrl: 1; + bool cfg0_io_shared: 1; + long: 32; + u64 cfg0_base; + void *va_cfg0_base; + u32 cfg0_size; + resource_size_t io_base; + phys_addr_t io_bus_addr; + u32 io_size; + int irq; + const struct dw_pcie_host_ops *ops; + int msi_irq[8]; + struct irq_domain *irq_domain; + struct irq_domain *msi_domain; + dma_addr_t msi_data; + struct irq_chip *msi_irq_chip; + u32 num_vectors; + u32 irq_mask[8]; + struct pci_host_bridge *bridge; + raw_spinlock_t lock; + unsigned long msi_irq_in_use[8]; }; -struct nsp_mux_log; +struct dw_pcie_ep_ops; -struct nsp_pinctrl { - struct pinctrl_dev *pctl; - struct device *dev; - void *base0; - void *base1; - void *base2; - const struct nsp_pin_group *groups; - unsigned int num_groups; - const struct nsp_pin_function *functions; - unsigned int num_functions; - struct nsp_mux_log *mux_log; - spinlock_t lock; +struct dw_pcie_ep { + struct pci_epc *epc; + struct list_head func_list; + const struct dw_pcie_ep_ops *ops; + phys_addr_t phys_base; + size_t addr_size; + size_t page_size; + u8 bar_to_atu[6]; + phys_addr_t *outbound_addr; + unsigned long *ib_window_map; + unsigned long *ob_window_map; + void *msi_mem; + phys_addr_t msi_mem_phys; + struct pci_epf_bar *epf_bar[6]; }; -struct nsp_mux_log { - struct nsp_mux mux; - bool is_configured; +struct dw_edma_region { + u64 paddr; + union { + void *mem; + void *io; + } vaddr; + size_t sz; }; -struct pinfunction; +struct dw_edma; -struct msm_pingroup; +struct dw_edma_chip { + struct device *dev; + int nr_irqs; + const struct dw_edma_plat_ops *ops; + u32 flags; + void *reg_base; + u16 ll_wr_cnt; + u16 ll_rd_cnt; + struct dw_edma_region ll_region_wr[8]; + struct dw_edma_region ll_region_rd[8]; + struct dw_edma_region dt_region_wr[8]; + struct dw_edma_region dt_region_rd[8]; + enum dw_edma_map_format mf; + struct dw_edma *dw; +}; -struct msm_gpio_wakeirq_map; +struct dw_pcie_ops; -struct msm_pinctrl_soc_data { - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const struct pinfunction *functions; - unsigned int nfunctions; - const struct msm_pingroup *groups; - unsigned int ngroups; - unsigned int ngpios; - bool pull_no_keeper; - const char * const *tiles; - unsigned int ntiles; - const int *reserved_gpios; - const struct msm_gpio_wakeirq_map *wakeirq_map; - unsigned int nwakeirq_map; - bool wakeirq_dual_edge_errata; - unsigned int gpio_func; - unsigned int egpio_func; +struct dw_pcie { + struct device *dev; + void *dbi_base; + void *dbi_base2; + void *atu_base; + size_t atu_size; + u32 num_ib_windows; + u32 num_ob_windows; + u32 region_align; + u64 region_limit; + struct dw_pcie_rp pp; + struct dw_pcie_ep ep; + const struct dw_pcie_ops *ops; + u32 version; + u32 type; + unsigned long caps; + int num_lanes; + int link_gen; + u8 n_fts[2]; + long: 32; + struct dw_edma_chip edma; + struct clk_bulk_data app_clks[3]; + struct clk_bulk_data core_clks[4]; + struct reset_control_bulk_data app_rsts[3]; + struct reset_control_bulk_data core_rsts[7]; + struct gpio_desc *pe_rst; + bool suspended; }; -struct pinfunction { - const char *name; - const char * const *groups; - size_t ngroups; +struct dw_pcie_host_ops { + int (*host_init)(struct dw_pcie_rp *); + void (*host_deinit)(struct dw_pcie_rp *); + void (*host_post_init)(struct dw_pcie_rp *); + int (*msi_host_init)(struct dw_pcie_rp *); + void (*pme_turn_off)(struct dw_pcie_rp *); }; -struct pingroup { - const char *name; - const unsigned int *pins; - size_t npins; +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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + unsigned long private[0]; }; -struct msm_pingroup { - struct pingroup grp; - unsigned int *funcs; - unsigned int nfuncs; - u32 ctl_reg; - u32 io_reg; - u32 intr_cfg_reg; - u32 intr_status_reg; - u32 intr_target_reg; - unsigned int tile: 2; - unsigned int mux_bit: 5; - unsigned int pull_bit: 5; - unsigned int drv_bit: 5; - unsigned int i2c_pull_bit: 5; - unsigned int od_bit: 5; - unsigned int egpio_enable: 5; - unsigned int egpio_present: 5; - unsigned int oe_bit: 5; - unsigned int in_bit: 5; - unsigned int out_bit: 5; - unsigned int intr_enable_bit: 5; - unsigned int intr_status_bit: 5; - unsigned int intr_ack_high: 1; - long: 1; - unsigned int intr_target_bit: 5; - unsigned int intr_target_width: 5; - unsigned int intr_target_kpss_val: 5; - unsigned int intr_raw_status_bit: 5; - unsigned int intr_polarity_bit: 5; - unsigned int intr_detection_bit: 5; - long: 2; - unsigned int intr_detection_width: 5; +struct dw_pcie_ep_ops { + void (*pre_init)(struct dw_pcie_ep *); + void (*ep_init)(struct dw_pcie_ep *); + void (*deinit)(struct dw_pcie_ep *); + int (*raise_irq)(struct dw_pcie_ep *, u8, enum pci_epc_irq_type, u16); + const struct pci_epc_features * (*get_features)(struct dw_pcie_ep *); + unsigned int (*func_conf_select)(struct dw_pcie_ep *, u8); + unsigned int (*get_dbi2_offset)(struct dw_pcie_ep *, u8); }; -struct msm_gpio_wakeirq_map { - unsigned int gpio; - unsigned int wakeirq; +struct dw_pcie_ops { + u64 (*cpu_addr_fixup)(struct dw_pcie *, u64); + u32 (*read_dbi)(struct dw_pcie *, void *, u32, size_t); + void (*write_dbi)(struct dw_pcie *, void *, u32, size_t, u32); + void (*write_dbi2)(struct dw_pcie *, void *, u32, size_t, u32); + int (*link_up)(struct dw_pcie *); + enum dw_pcie_ltssm (*get_ltssm)(struct dw_pcie *); + int (*start_link)(struct dw_pcie *); + void (*stop_link)(struct dw_pcie *); }; -enum sunxi_desc_bias_voltage { - BIAS_VOLTAGE_NONE = 0, - BIAS_VOLTAGE_GRP_CONFIG = 1, - BIAS_VOLTAGE_PIO_POW_MODE_SEL = 2, - BIAS_VOLTAGE_PIO_POW_MODE_CTL = 3, +enum vc_intensity { + VCI_HALF_BRIGHT = 0, + VCI_NORMAL = 1, + VCI_BOLD = 2, + VCI_MASK = 3, }; -struct sunxi_desc_pin; - -struct sunxi_pinctrl_desc { - const struct sunxi_desc_pin *pins; - int npins; - unsigned int pin_base; - unsigned int irq_banks; - const unsigned int *irq_bank_map; - bool irq_read_needs_mux; - bool disable_strict_mode; - enum sunxi_desc_bias_voltage io_bias_cfg_variant; +enum con_scroll { + SM_UP = 0, + SM_DOWN = 1, }; -struct sunxi_desc_function; +struct vc_data; -struct sunxi_desc_pin { - struct pinctrl_pin_desc pin; - unsigned long variant; - struct sunxi_desc_function *functions; -}; +struct fbcon_display; -struct sunxi_desc_function { - unsigned long variant; - const char *name; - u8 muxval; - u8 irqbank; - u8 irqnum; +struct fbcon_ops { + void (*bmove)(struct vc_data *, struct fb_info *, int, int, int, int, int, int); + void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int); + void (*putcs)(struct vc_data *, struct fb_info *, const unsigned short *, int, int, int, int, int); + void (*clear_margins)(struct vc_data *, struct fb_info *, int, int); + void (*cursor)(struct vc_data *, struct fb_info *, int, int, int); + int (*update_start)(struct fb_info *); + int (*rotate_font)(struct fb_info *, struct vc_data *); + struct fb_var_screeninfo var; + struct delayed_work cursor_work; + struct fb_cursor cursor_state; + struct fbcon_display *p; + struct fb_info *info; + int currcon; + int cur_blink_jiffies; + int cursor_flash; + int cursor_reset; + int blank_state; + int graphics; + int save_graphics; + bool initialized; + int rotate; + int cur_rotate; + char *cursor_data; + u8 *fontbuffer; + u8 *fontdata; + u8 *cursor_src; + u32 cursor_size; + u32 fd_size; }; -struct ti_iodelay_reg_data { - u32 signature_mask; - u32 signature_value; - u32 lock_mask; - u32 lock_val; - u32 unlock_val; - u32 binary_data_coarse_mask; - u32 binary_data_fine_mask; - u32 reg_refclk_offset; - u32 refclk_period_mask; - u32 reg_coarse_offset; - u32 coarse_delay_count_mask; - u32 coarse_ref_count_mask; - u32 reg_fine_offset; - u32 fine_delay_count_mask; - u32 fine_ref_count_mask; - u32 reg_global_lock_offset; - u32 global_lock_mask; - u32 global_unlock_val; - u32 global_lock_val; - u32 reg_start_offset; - u32 reg_nr_per_pin; - struct regmap_config *regmap_config; +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 ti_iodelay_reg_values { - u16 coarse_ref_count; - u16 coarse_delay_count; - u16 fine_ref_count; - u16 fine_delay_count; - u16 ref_clk_period; - u32 cdpe; - u32 fdpe; +struct console_font { + unsigned int width; + unsigned int height; + unsigned int charcount; + unsigned char *data; }; -struct ti_iodelay_device { - struct device *dev; - unsigned long phys_base; - void *reg_base; - struct regmap *regmap; - struct pinctrl_dev *pctl; - struct pinctrl_desc desc; - struct pinctrl_pin_desc *pa; - const struct ti_iodelay_reg_data *reg_data; - struct ti_iodelay_reg_values reg_init_conf_values; +struct vt_mode { + char mode; + char waitv; + short relsig; + short acqsig; + short frsig; }; -struct ti_iodelay_cfg { - u16 offset; - u16 a_delay; - u16 g_delay; -}; +struct consw; -struct ti_iodelay_pingroup { - struct ti_iodelay_cfg *cfg; - int ncfg; - unsigned long config; +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[8]; + 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; }; -struct bcm2835_pwm { - struct pwm_chip chip; - struct device *dev; - void *base; - struct clk *clk; +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 *); }; -typedef u32 pci_bus_addr_t; +typedef unsigned short u_short; -struct pci_bus_region { - pci_bus_addr_t start; - pci_bus_addr_t end; +struct fbcon_display { + const u_char *fontdata; + int userfont; + u_short inverse; + short yscroll; + int vrows; + int cursor_shape; + int con_rotate; + u32 xres_virtual; + u32 yres_virtual; + u32 height; + u32 width; + u32 bits_per_pixel; + u32 grayscale; + u32 nonstd; + u32 accel_flags; + u32 rotate; + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + const struct fb_videomode *mode; }; -struct msi_dev_domain { - struct xarray store; - struct irq_domain *domain; +struct screen_info { + __u8 orig_x; + __u8 orig_y; + __u16 ext_mem_k; + __u16 orig_video_page; + __u8 orig_video_mode; + __u8 orig_video_cols; + __u8 flags; + __u8 unused2; + __u16 orig_video_ega_bx; + __u16 unused3; + __u8 orig_video_lines; + __u8 orig_video_isVGA; + __u16 orig_video_points; + __u16 lfb_width; + __u16 lfb_height; + __u16 lfb_depth; + __u32 lfb_base; + __u32 lfb_size; + __u16 cl_magic; + __u16 cl_offset; + __u16 lfb_linelength; + __u8 red_size; + __u8 red_pos; + __u8 green_size; + __u8 green_pos; + __u8 blue_size; + __u8 blue_pos; + __u8 rsvd_size; + __u8 rsvd_pos; + __u16 vesapm_seg; + __u16 vesapm_off; + __u16 pages; + __u16 vesa_attributes; + __u32 capabilities; + __u32 ext_lfb_base; + __u8 _reserved[2]; +} __attribute__((packed)); + +typedef struct { + u32 type; + u32 pad; + u64 phys_addr; + u64 virt_addr; + u64 num_pages; + u64 attribute; +} efi_memory_desc_t; + +struct efifb_par { + u32 pseudo_palette[16]; + resource_size_t base; + resource_size_t size; }; -struct platform_msi_priv_data; +struct clockgen_muxinfo; -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 clockgen; + +struct clockgen_chipinfo { + const char *compat; + const char *guts_compat; + const struct clockgen_muxinfo *cmux_groups[2]; + const struct clockgen_muxinfo *hwaccel[5]; + void (*init_periph)(struct clockgen *); + int cmux_to_group[9]; + u32 pll_mask; + u32 flags; }; -struct iproc_pcie_ob_map { - resource_size_t window_sizes[4]; - unsigned int nr_sizes; +struct clockgen_pll_div { + struct clk *clk; + char name[32]; }; -enum iproc_pcie_ib_map_type { - IPROC_PCIE_IB_MAP_MEM = 0, - IPROC_PCIE_IB_MAP_IO = 1, - IPROC_PCIE_IB_MAP_INVALID = 2, +struct clockgen_pll { + struct clockgen_pll_div div[32]; }; -struct iproc_pcie_ib_map { - enum iproc_pcie_ib_map_type type; - unsigned int size_unit; - resource_size_t region_sizes[9]; - unsigned int nr_sizes; - unsigned int nr_windows; - u16 imap_addr_offset; - u16 imap_window_offset; +struct ccsr_guts; + +struct clockgen { + struct device_node *node; + void *regs; + struct clockgen_chipinfo info; + struct clk *sysclk; + struct clk *coreclk; + struct clockgen_pll pll[6]; + struct clk *cmux[8]; + struct clk *hwaccel[5]; + struct clk *fman[2]; + struct ccsr_guts *guts; }; -enum iproc_pcie_type { - IPROC_PCIE_PAXB_BCMA = 0, - IPROC_PCIE_PAXB = 1, - IPROC_PCIE_PAXB_V2 = 2, - IPROC_PCIE_PAXC = 3, - IPROC_PCIE_PAXC_V2 = 4, +struct clockgen_sourceinfo { + u32 flags; + int pll; + int div; }; -enum iproc_pcie_reg { - IPROC_PCIE_CLK_CTRL = 0, - IPROC_PCIE_MSI_GIC_MODE = 1, - IPROC_PCIE_MSI_BASE_ADDR = 2, - IPROC_PCIE_MSI_WINDOW_SIZE = 3, - IPROC_PCIE_MSI_ADDR_LO = 4, - IPROC_PCIE_MSI_ADDR_HI = 5, - IPROC_PCIE_MSI_EN_CFG = 6, - IPROC_PCIE_CFG_IND_ADDR = 7, - IPROC_PCIE_CFG_IND_DATA = 8, - IPROC_PCIE_CFG_ADDR = 9, - IPROC_PCIE_CFG_DATA = 10, - IPROC_PCIE_INTX_EN = 11, - IPROC_PCIE_OARR0 = 12, - IPROC_PCIE_OMAP0 = 13, - IPROC_PCIE_OARR1 = 14, - IPROC_PCIE_OMAP1 = 15, - IPROC_PCIE_OARR2 = 16, - IPROC_PCIE_OMAP2 = 17, - IPROC_PCIE_OARR3 = 18, - IPROC_PCIE_OMAP3 = 19, - IPROC_PCIE_IARR0 = 20, - IPROC_PCIE_IMAP0 = 21, - IPROC_PCIE_IARR1 = 22, - IPROC_PCIE_IMAP1 = 23, - IPROC_PCIE_IARR2 = 24, - IPROC_PCIE_IMAP2 = 25, - IPROC_PCIE_IARR3 = 26, - IPROC_PCIE_IMAP3 = 27, - IPROC_PCIE_IARR4 = 28, - IPROC_PCIE_IMAP4 = 29, - IPROC_PCIE_CFG_RD_STATUS = 30, - IPROC_PCIE_LINK_STATUS = 31, - IPROC_PCIE_APB_ERR_EN = 32, - IPROC_PCIE_MAX_NUM_REG = 33, -}; - -struct iproc_pcie_ob { - resource_size_t axi_offset; - unsigned int nr_windows; -}; - -struct iproc_pcie_ib { - unsigned int nr_regions; -}; - -struct iproc_msi; - -struct iproc_pcie { - struct device *dev; - enum iproc_pcie_type type; - u16 *reg_offsets; - void *base; - phys_addr_t base_addr; - struct resource mem; - struct phy *phy; - int (*map_irq)(const struct pci_dev *, u8, u8); - bool ep_is_internal; - bool iproc_cfg_read; - bool rej_unconfig_pf; - bool has_apb_err_disable; - bool fix_paxc_cap; - bool need_ob_cfg; - struct iproc_pcie_ob ob; - const struct iproc_pcie_ob_map *ob_map; - bool need_ib_cfg; - struct iproc_pcie_ib ib; - const struct iproc_pcie_ib_map *ib_map; - bool need_msi_steer; - struct iproc_msi *msi; -}; - -struct sh_mobile_lcdc_format_info { - u32 fourcc; - unsigned int bpp; - bool yuv; - u32 lddfr; -}; - -struct sh_mobile_lcdc_sys_bus_ops { - void (*write_index)(void *, unsigned long); - void (*write_data)(void *, unsigned long); - unsigned long (*read_data)(void *); -}; - -enum sh_mobile_lcdc_overlay_mode { - LCDC_OVERLAY_BLEND = 0, - LCDC_OVERLAY_ROP3 = 1, -}; - -enum { - LCDC_CHAN_DISABLED = 0, - LCDC_CHAN_MAINLCD = 1, - LCDC_CHAN_SUBLCD = 2, +struct clockgen_muxinfo { + struct clockgen_sourceinfo clksel[16]; }; -enum { - RGB8 = 0, - RGB9 = 4, - RGB12A = 5, - RGB12B = 6, - RGB16 = 7, - RGB18 = 10, - RGB24 = 11, - YUV422 = 15, - SYS8A = 4096, - SYS8B = 4097, - SYS8C = 4098, - SYS8D = 4099, - SYS9 = 4100, - SYS12 = 4101, - SYS16A = 4103, - SYS16B = 4104, - SYS16C = 4105, - SYS18 = 4106, - SYS24 = 4107, +struct ccsr_guts { + u32 porpllsr; + u32 porbmsr; + u32 porimpscr; + u32 pordevsr; + u32 pordbgmsr; + u32 pordevsr2; + u8 res018[8]; + u32 porcir; + u8 res024[12]; + u32 gpiocr; + u8 res034[12]; + u32 gpoutdr; + u8 res044[12]; + u32 gpindr; + u8 res054[12]; + u32 pmuxcr; + u32 pmuxcr2; + u32 dmuxcr; + u8 res06c[4]; + u32 devdisr; + u32 devdisr2; + u8 res078[4]; + u32 pmjcr; + u32 powmgtcsr; + u32 pmrccr; + u32 pmpdccr; + u32 pmcdr; + u32 mcpsumr; + u32 rstrscr; + u32 ectrstcr; + u32 autorstsr; + u32 pvr; + u32 svr; + u8 res0a8[8]; + u32 rstcr; + u8 res0b4[12]; + u32 iovselsr; + u8 res0c4[60]; + u32 rcwsr[16]; + u8 res140[228]; + u32 iodelay1; + u32 iodelay2; + u8 res22c[984]; + u32 pamubypenr; + u8 res608[504]; + u32 clkdvdr; + u8 res804[252]; + u32 ircr; + u8 res904[4]; + u32 dmacr; + u8 res90c[8]; + u32 elbccr; + u8 res918[520]; + u32 ddr1clkdr; + u32 ddr2clkdr; + u32 ddrclkdr; + u8 resb2c[724]; + u32 clkocr; + u8 rese04[12]; + u32 ddrdllcr; + u8 rese14[12]; + u32 lbcdllcr; + u32 cpfor; + u8 rese28[220]; + u32 srds1cr0; + u32 srds1cr1; + u8 resf0c[32]; + u32 itcr; + u8 resf30[16]; + u32 srds2cr0; + u32 srds2cr1; }; -enum { - LCDC_CLK_BUS = 0, - LCDC_CLK_PERIPHERAL = 1, - LCDC_CLK_EXTERNAL = 2, +struct mux_hwclock { + struct clk_hw hw; + struct clockgen *cg; + const struct clockgen_muxinfo *info; + u32 *reg; + u8 parent_to_clksel[16]; + s8 clksel_to_parent[16]; + int num_parents; }; -enum v4l2_colorspace { - V4L2_COLORSPACE_DEFAULT = 0, - V4L2_COLORSPACE_SMPTE170M = 1, - V4L2_COLORSPACE_SMPTE240M = 2, - V4L2_COLORSPACE_REC709 = 3, - V4L2_COLORSPACE_BT878 = 4, - V4L2_COLORSPACE_470_SYSTEM_M = 5, - V4L2_COLORSPACE_470_SYSTEM_BG = 6, - V4L2_COLORSPACE_JPEG = 7, - V4L2_COLORSPACE_SRGB = 8, - V4L2_COLORSPACE_OPRGB = 9, - V4L2_COLORSPACE_BT2020 = 10, - V4L2_COLORSPACE_RAW = 11, - V4L2_COLORSPACE_DCI_P3 = 12, - V4L2_COLORSPACE_LAST = 13, +struct clk_range { + unsigned long min; + unsigned long max; }; -enum { - LDDCKPAT1R = 0, - LDDCKPAT2R = 1, - LDMT1R = 2, - LDMT2R = 3, - LDMT3R = 4, - LDDFR = 5, - LDSM1R = 6, - LDSM2R = 7, - LDSA1R = 8, - LDSA2R = 9, - LDMLSR = 10, - LDHCNR = 11, - LDHSYNR = 12, - LDVLNR = 13, - LDVSYNR = 14, - LDPMR = 15, - LDHAJR = 16, - NR_CH_REGS = 17, +struct clk_pll_characteristics { + struct clk_range input; + int num_output; + const struct clk_range *output; + u16 *icpll; + u8 *out; + u8 upll: 1; }; -struct sh_mobile_lcdc_priv; - -struct sh_mobile_lcdc_entity; - -struct sh_mobile_lcdc_chan_cfg; - -struct sh_mobile_lcdc_chan { - struct sh_mobile_lcdc_priv *lcdc; - struct sh_mobile_lcdc_entity *tx_dev; - const struct sh_mobile_lcdc_chan_cfg *cfg; - unsigned long *reg_offs; - unsigned long ldmt1r_value; - unsigned long enabled; - struct mutex open_lock; - int use_count; - void *fb_mem; - unsigned long fb_size; - dma_addr_t dma_handle; - unsigned long pan_y_offset; - unsigned long frame_end; - wait_queue_head_t frame_end_wait; - struct completion vsync_completion; - const struct sh_mobile_lcdc_format_info *format; - u32 colorspace; - unsigned int xres; - unsigned int xres_virtual; - unsigned int yres; - unsigned int yres_virtual; - unsigned int pitch; - unsigned long base_addr_y; - unsigned long base_addr_c; - unsigned int line_size; - struct backlight_device *bl; - unsigned int bl_brightness; - struct fb_info *info; - u32 pseudo_palette[16]; - struct { - unsigned int width; - unsigned int height; - struct fb_videomode mode; - } display; - struct fb_deferred_io defio; - struct scatterlist *sglist; - int blank_status; +struct clk_master_characteristics { + struct clk_range output; + u32 divisors[5]; + u8 have_div3_pres; }; -struct sh_mobile_lcdc_overlay_cfg; - -struct sh_mobile_lcdc_overlay { - struct sh_mobile_lcdc_chan *channel; - const struct sh_mobile_lcdc_overlay_cfg *cfg; - struct fb_info *info; - unsigned int index; - unsigned long base; - bool enabled; - enum sh_mobile_lcdc_overlay_mode mode; - unsigned int alpha; - unsigned int rop3; - void *fb_mem; - unsigned long fb_size; - dma_addr_t dma_handle; - unsigned long base_addr_y; - unsigned long base_addr_c; - unsigned long pan_y_offset; - const struct sh_mobile_lcdc_format_info *format; - unsigned int xres; - unsigned int xres_virtual; - unsigned int yres; - unsigned int yres_virtual; - unsigned int pitch; - int pos_x; - int pos_y; +struct clk_pcr_layout { + u32 offset; + u32 cmd; + u32 div_mask; + u32 gckcss_mask; + u32 pid_mask; }; -struct sh_mobile_lcdc_priv { - void *base; - int irq; - atomic_t hw_usecnt; - struct device *dev; - struct clk *dot_clk; - unsigned long lddckr; - struct sh_mobile_lcdc_chan ch[2]; - struct sh_mobile_lcdc_overlay overlays[4]; - int started; - int forced_fourcc; +struct pmc_data { + unsigned int ncore; + struct clk_hw **chws; + unsigned int nsystem; + struct clk_hw **shws; + unsigned int nperiph; + struct clk_hw **phws; + unsigned int ngck; + struct clk_hw **ghws; + unsigned int npck; + struct clk_hw **pchws; + struct clk_hw *hwtable[0]; }; -struct sh_mobile_lcdc_overlay_cfg { - int fourcc; - unsigned int max_xres; - unsigned int max_yres; +struct clk_pll_layout { + u32 pllr_mask; + u32 mul_mask; + u32 frac_mask; + u32 div_mask; + u32 endiv_mask; + u8 mul_shift; + u8 frac_shift; + u8 div_shift; + u8 endiv_shift; }; -struct sh_mobile_lcdc_entity_ops; - -struct sh_mobile_lcdc_entity { - struct module *owner; - const struct sh_mobile_lcdc_entity_ops *ops; - struct sh_mobile_lcdc_chan *lcdc; - struct fb_videomode def_mode; +struct clk_master_layout { + u32 offset; + u32 mask; + u8 pres_shift; }; -struct sh_mobile_lcdc_entity_ops { - int (*display_on)(struct sh_mobile_lcdc_entity *); - void (*display_off)(struct sh_mobile_lcdc_entity *); +struct clk_programmable_layout { + u8 pres_mask; + u8 pres_shift; + u8 css_mask; + u8 have_slck_mck; + u8 is_pres_direct; }; -struct sh_mobile_lcdc_panel_cfg { - unsigned long width; - unsigned long height; - int (*setup_sys)(void *, struct sh_mobile_lcdc_sys_bus_ops *); - void (*start_transfer)(void *, struct sh_mobile_lcdc_sys_bus_ops *); - void (*display_on)(); - void (*display_off)(); +struct hisi_fixed_factor_clock { + unsigned int id; + char *name; + const char *parent_name; + unsigned long mult; + unsigned long div; + unsigned long flags; }; -struct sh_mobile_lcdc_bl_info { +struct hisi_divider_clock { + unsigned int id; const char *name; - int max_brightness; - int (*set_brightness)(int); -}; - -struct sh_mobile_lcdc_sys_bus_cfg { - unsigned long ldmt2r; - unsigned long ldmt3r; - unsigned long deferred_io_msec; -}; - -struct sh_mobile_lcdc_chan_cfg { - int chan; - int fourcc; - int colorspace; - int interface_type; - int clock_divider; + const char *parent_name; unsigned long flags; - const struct fb_videomode *lcd_modes; - int num_modes; - struct sh_mobile_lcdc_panel_cfg panel_cfg; - struct sh_mobile_lcdc_bl_info bl_info; - struct sh_mobile_lcdc_sys_bus_cfg sys_bus_cfg; - struct platform_device *tx_dev; + unsigned long offset; + u8 shift; + u8 width; + u8 div_flags; + struct clk_div_table *table; + const char *alias; }; -struct sh_mobile_lcdc_info { - int clock_source; - struct sh_mobile_lcdc_chan_cfg ch[2]; - struct sh_mobile_lcdc_overlay_cfg overlays[4]; +enum imx_pllv3_type { + IMX_PLLV3_GENERIC = 0, + IMX_PLLV3_SYS = 1, + IMX_PLLV3_USB = 2, + IMX_PLLV3_USB_VF610 = 3, + IMX_PLLV3_AV = 4, + IMX_PLLV3_ENET = 5, + IMX_PLLV3_ENET_IMX7 = 6, + IMX_PLLV3_SYS_VF610 = 7, + IMX_PLLV3_DDR_IMX7 = 8, + IMX_PLLV3_AV_IMX7 = 9, }; -struct clk_fixup_div { - struct clk_divider divider; +struct mtk_pll_div_table; + +struct mtk_pll_data { + int id; + const char *name; + u32 reg; + u32 pwr_reg; + u32 en_mask; + u32 pd_reg; + u32 tuner_reg; + u32 tuner_en_reg; + u8 tuner_en_bit; + int pd_shift; + unsigned int flags; const struct clk_ops *ops; - void (*fixup)(u32 *); + u32 rst_bar_mask; + unsigned long fmin; + unsigned long fmax; + int pcwbits; + int pcwibits; + u32 pcw_reg; + int pcw_shift; + u32 pcw_chg_reg; + const struct mtk_pll_div_table *div_table; + const char *parent_name; + u32 en_reg; + u8 pll_en_bit; }; -enum imx_pll14xx_type { - PLL_1416X = 0, - PLL_1443X = 1, +struct mtk_pll_div_table { + u32 div; + unsigned long freq; }; -struct imx_pll14xx_rate_table; - -struct imx_pll14xx_clk { - enum imx_pll14xx_type type; - const struct imx_pll14xx_rate_table *rate_table; - int rate_count; +struct div4_clk { + const char *name; + unsigned int reg; + unsigned int shift; int flags; }; -struct imx_pll14xx_rate_table { - unsigned int rate; - unsigned int pdiv; - unsigned int mdiv; - unsigned int sdiv; - unsigned int kdiv; -}; - -struct clk_pll14xx { - struct clk_hw hw; - void *base; - enum imx_pll14xx_type type; - const struct imx_pll14xx_rate_table *rate_table; - int rate_count; -}; - -enum fhctl_variant { - FHCTL_PLLFH_V1 = 0, - FHCTL_PLLFH_V2 = 1, -}; - -struct mtk_clk_pll { - struct clk_hw hw; - void *base_addr; - void *pd_addr; - void *pwr_addr; - void *tuner_addr; - void *tuner_en_addr; - void *pcw_addr; - void *pcw_chg_addr; - void *en_addr; - const struct mtk_pll_data *data; -}; - -struct fh_pll_regs { - void *reg_hp_en; - void *reg_clk_con; - void *reg_rst_con; - void *reg_slope0; - void *reg_slope1; - void *reg_cfg; - void *reg_updnlmt; - void *reg_dds; - void *reg_dvfs; - void *reg_mon; -}; - -struct mtk_pllfh_data; - -struct fh_operation; - -struct mtk_fh { - struct mtk_clk_pll clk_pll; - struct fh_pll_regs regs; - struct mtk_pllfh_data *pllfh_data; - const struct fh_operation *ops; - spinlock_t *lock; +struct r8a7740_cpg { + struct clk_onecell_data data; + spinlock_t lock; }; -struct fh_pll_state { +struct cpg_mssr_priv { + struct reset_controller_dev rcdev; + struct device *dev; void *base; - u32 fh_enable; - u32 ssc_rate; -}; - -struct fh_pll_data { - int pll_id; - int fh_id; - int fh_ver; - u32 fhx_offset; - u32 dds_mask; - u32 slope0_value; - u32 slope1_value; - u32 sfstrx_en; - u32 frddsx_en; - u32 fhctlx_en; - u32 tgl_org; - u32 dvfs_tri; - u32 pcwchg; - u32 dt_val; - u32 df_val; - u32 updnlmt_shft; - u32 msk_frddsx_dys; - u32 msk_frddsx_dts; -}; - -struct mtk_pllfh_data { - struct fh_pll_state state; - const struct fh_pll_data data; -}; - -struct fh_operation { - int (*hopping)(struct mtk_fh *, unsigned int, unsigned int); - int (*ssc_enable)(struct mtk_fh *, u32); -}; - -struct fhctl_offset { - u32 offset_hp_en; - u32 offset_clk_con; - u32 offset_rst_con; - u32 offset_slope0; - u32 offset_slope1; - u32 offset_cfg; - u32 offset_updnlmt; - u32 offset_dds; - u32 offset_dvfs; - u32 offset_mon; -}; - -struct clk_regmap___2 { - struct clk_hw hw; - struct regmap *map; - void *data; -}; - -struct clk_regmap_mux_div { - u32 reg_offset; - u32 hid_width; - u32 hid_shift; - u32 src_width; - u32 src_shift; - u32 div; - u32 src; - const u32 *parent_map; - struct clk_regmap clkr; - struct clk *pclk; - struct notifier_block clk_nb; -}; - -enum clk_reg_layout { - CLK_REG_LAYOUT_RCAR_GEN2_AND_GEN3 = 0, - CLK_REG_LAYOUT_RZ_A = 1, - CLK_REG_LAYOUT_RCAR_GEN4 = 2, -}; - -struct cpg_core_clk; - -struct mssr_mod_clk; - -struct cpg_mssr_info { - const struct cpg_core_clk *early_core_clks; - unsigned int num_early_core_clks; - const struct mssr_mod_clk *early_mod_clks; - unsigned int num_early_mod_clks; - const struct cpg_core_clk *core_clks; - unsigned int num_core_clks; - unsigned int last_dt_core_clk; - unsigned int num_total_core_clks; enum clk_reg_layout reg_layout; - const struct mssr_mod_clk *mod_clks; + spinlock_t rmw_lock; + struct device_node *np; + unsigned int num_core_clks; unsigned int num_mod_clks; - unsigned int num_hw_mod_clks; - const unsigned int *crit_mod_clks; - unsigned int num_crit_mod_clks; - const unsigned int *core_pm_clks; - unsigned int num_core_pm_clks; - int (*init)(struct device *); - struct clk * (*cpg_clk_register)(struct device *, const struct cpg_core_clk *, const struct cpg_mssr_info *, struct clk **, void *, struct raw_notifier_head *); -}; - -struct cpg_core_clk { - const char *name; - unsigned int id; - unsigned int type; - unsigned int parent; - unsigned int div; - unsigned int mult; - unsigned int offset; + unsigned int last_dt_core_clk; + struct raw_notifier_head notifiers; + const u16 *status_regs; + const u16 *control_regs; + const u16 *reset_regs; + const u16 *reset_clear_regs; + struct { + u32 mask; + u32 val; + } smstpcr_saved[30]; + struct clk *clks[0]; }; -struct mssr_mod_clk { - const char *name; - unsigned int id; - unsigned int parent; +struct cpg_mssr_clk_domain { + struct generic_pm_domain genpd; + unsigned int num_core_pm_clks; + unsigned int core_pm_clks[0]; + long: 32; }; -struct rcar_gen2_cpg_pll_config { - u8 extal_div; - u8 pll1_mult; - u8 pll3_mult; - u8 pll0_mult; +enum clk_types { + CLK_TYPE_IN = 0, + CLK_TYPE_FF = 1, + CLK_TYPE_DIV6P1 = 2, + CLK_TYPE_DIV6_RO = 3, + CLK_TYPE_FR = 4, + CLK_TYPE_CUSTOM = 5, }; -struct exynos_cpuclk_cfg_data; - -struct exynos_cpuclk { +struct mstp_clock { struct clk_hw hw; - const struct clk_hw *alt_parent; - void *ctrl_base; - spinlock_t *lock; - const struct exynos_cpuclk_cfg_data *cfg; - const unsigned long num_cfgs; - struct notifier_block clk_nb; - unsigned long flags; -}; - -struct exynos_cpuclk_cfg_data { - unsigned long prate; - unsigned long div0; - unsigned long div1; -}; - -struct samsung_clk_provider { - void *reg_base; - struct device *dev; - spinlock_t lock; - struct clk_hw_onecell_data clk_data; -}; - -struct samsung_cpu_clock { - unsigned int id; - const char *name; - unsigned int parent_id; - unsigned int alt_parent_id; - unsigned long flags; - int offset; - const struct exynos_cpuclk_cfg_data *cfg; -}; - -struct socfpga_pll { - struct clk_gate hw; -}; - -struct sun4i_a10_display_clk_data { - bool has_div; - u8 num_rst; - u8 parents; - u8 offset_en; - u8 offset_div; - u8 offset_mux; - u8 offset_rst; - u8 width_div; - u8 width_mux; - u32 flags; -}; - -struct reset_data { - void *reg; - spinlock_t *lock; - struct reset_controller_dev rcdev; - u8 offset; + u32 index; + struct cpg_mssr_priv *priv; }; struct ccu_mult_internal { @@ -49704,106 +57237,87 @@ struct ccu_sdm_setting { u32 n; }; -struct _ccu_nm { - unsigned long n; - unsigned long min_n; - unsigned long max_n; - unsigned long m; - unsigned long min_m; - unsigned long max_m; +struct ccu_nkm { + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_mult_internal k; + struct ccu_div_internal m; + struct ccu_mux_internal mux; + unsigned int fixed_post_div; + struct ccu_common common; }; -enum dfll_ctrl_mode { - DFLL_UNINITIALIZED = 0, - DFLL_DISABLED = 1, - DFLL_OPEN_LOOP = 2, - DFLL_CLOSED_LOOP = 3, +struct ccu_nk { + u16 reg; + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_mult_internal k; + unsigned int fixed_post_div; + struct ccu_common common; }; -enum dfll_tune_range { - DFLL_TUNE_UNINITIALIZED = 0, - DFLL_TUNE_LOW = 1, +struct ccu_mux { + u32 enable; + struct ccu_mux_internal mux; + struct ccu_common common; }; -enum tegra_dfll_pmu_if { - TEGRA_DFLL_PMU_I2C = 0, - TEGRA_DFLL_PMU_PWM = 1, +struct ccu_mp { + u32 enable; + struct ccu_div_internal m; + struct ccu_div_internal p; + struct ccu_mux_internal mux; + unsigned int fixed_post_div; + struct ccu_common common; }; -struct dfll_rate_req { - unsigned long rate; - unsigned long dvco_target_rate; - int lut_index; - u8 mult_bits; - u8 scale_bits; +struct ccu_phase { + u8 shift; + u8 width; + struct ccu_common common; }; -struct tegra_dfll_soc_data; +struct ccu_mux_nb { + struct notifier_block clk_nb; + struct ccu_common *common; + struct ccu_mux_internal *cm; + u32 delay_us; + u8 bypass_index; + u8 original_index; +}; -struct tegra_dfll { - struct device *dev; - struct tegra_dfll_soc_data *soc; - void *base; - void *i2c_base; - void *i2c_controller_base; - void *lut_base; - struct regulator *vdd_reg; - struct clk *soc_clk; - struct clk *ref_clk; - struct clk *i2c_clk; - struct clk *dfll_clk; - struct reset_control *dfll_rst; - struct reset_control *dvco_rst; - unsigned long ref_rate; - unsigned long i2c_clk_rate; - unsigned long dvco_rate_min; - enum dfll_ctrl_mode mode; - enum dfll_tune_range tune_range; - struct dentry *debugfs_dir; - struct clk_hw dfll_clk_hw; - const char *output_clock_name; - struct dfll_rate_req last_req; - unsigned long last_unrounded_rate; - u32 droop_ctrl; - u32 sample_rate; - u32 force_mode; - u32 cf; - u32 ci; - u32 cg; - bool cg_scale; - u32 i2c_fs_rate; - u32 i2c_reg; - u32 i2c_slave_addr; - unsigned int lut[33]; - unsigned long lut_uv[33]; - int lut_size; - u8 lut_bottom; - u8 lut_min; - u8 lut_max; - u8 lut_safe; - enum tegra_dfll_pmu_if pmu_if; - unsigned long pwm_rate; - struct pinctrl *pwm_pin; - struct pinctrl_state *pwm_enable_state; - struct pinctrl_state *pwm_disable_state; - u32 reg_init_uV; +struct tegra_clk_frac_div { + struct clk_hw hw; + void *reg; + u8 flags; + u8 shift; + u8 width; + u8 frac_width; + spinlock_t *lock; }; -struct rail_alignment { - int offset_uv; - int step_uv; +struct tegra_clk_super_mux { + struct clk_hw hw; + void *reg; + struct tegra_clk_frac_div frac_div; + const struct clk_ops *div_ops; + u8 width; + u8 flags; + u8 div2_index; + u8 pllx_index; + spinlock_t *lock; }; -struct cvb_table; +enum { + DOWN = 0, + UP = 1, +}; -struct tegra_dfll_soc_data { - struct device *dev; - unsigned long max_freq; - const struct cvb_table *cvb; - struct rail_alignment alignment; - void (*init_clock_trimmers)(); - void (*set_clock_trimmers_high)(); - void (*set_clock_trimmers_low)(); +struct rail_alignment { + int offset_uv; + int step_uv; }; struct cvb_coefficients { @@ -49835,2273 +57349,2754 @@ struct cvb_table { struct cvb_cpu_dfll_data cpu_dfll_data; }; -enum xdma_ip_type { - XDMA_TYPE_AXIDMA = 0, - XDMA_TYPE_CDMA = 1, - XDMA_TYPE_VDMA = 2, - XDMA_TYPE_AXIMCDMA = 3, +struct dev_pm_opp_data { + unsigned int level; + unsigned long freq; + unsigned long u_volt; }; -struct xilinx_dma_config { - enum xdma_ip_type dmatype; - int (*clk_init)(struct platform_device *, struct clk **, struct clk **, struct clk **, struct clk **, struct clk **); - irqreturn_t (*irq_handler)(int, void *); - const int max_channels; +struct uniphier_clk_cpugear { + struct clk_hw hw; + struct regmap *regmap; + unsigned int regbase; + unsigned int mask; }; -struct xilinx_vdma_config { - int frm_dly; - int gen_lock; - int master; - int frm_cnt_en; - int park; - int park_frm; - int coalesc; - int delay; - int reset; - int ext_fsync; - bool vflip_en; +struct uniphier_clk_cpugear_data { + const char *parent_names[16]; + unsigned int num_parents; + unsigned int regbase; + unsigned int mask; }; -struct xilinx_dma_device; - -struct xilinx_axidma_tx_segment; +struct zynq_pll { + struct clk_hw hw; + void *pll_ctrl; + void *pll_status; + spinlock_t *lock; + u8 lockbit; +}; -struct xilinx_aximcdma_tx_segment; +struct at_dma_platform_data { + unsigned int nr_channels; + dma_cap_mask_t cap_mask; +}; -struct xilinx_dma_chan { - struct xilinx_dma_device *xdev; - u32 ctrl_offset; - u32 desc_offset; - spinlock_t lock; - struct list_head pending_list; - struct list_head active_list; - struct list_head done_list; - struct list_head free_seg_list; - struct dma_chan common; - struct dma_pool *desc_pool; - struct device *dev; - int irq; - int id; - enum dma_transfer_direction direction; - int num_frms; - bool has_sg; - bool cyclic; - bool genlock; - bool err; - bool idle; - bool terminating; - struct tasklet_struct tasklet; - struct xilinx_vdma_config config; - bool flush_on_fsync; - u32 desc_pendingcount; - bool ext_addr; - u32 desc_submitcount; - struct xilinx_axidma_tx_segment *seg_v; - struct xilinx_aximcdma_tx_segment *seg_mv; - dma_addr_t seg_p; - struct xilinx_axidma_tx_segment *cyclic_seg_v; - dma_addr_t cyclic_seg_p; - void (*start_transfer)(struct xilinx_dma_chan *); - int (*stop_transfer)(struct xilinx_dma_chan *); - u16 tdest; - bool has_vflip; +enum atc_status { + ATC_IS_PAUSED = 1, + ATC_IS_CYCLIC = 24, }; -struct xilinx_dma_device { - void *regs; - struct device *dev; - struct dma_device common; - struct xilinx_dma_chan *chan[32]; - u32 flush_on_fsync; - bool ext_addr; - struct platform_device *pdev; - const struct xilinx_dma_config *dma_config; - struct clk *axi_clk; - struct clk *tx_clk; - struct clk *txs_clk; - struct clk *rx_clk; - struct clk *rxs_clk; - u32 s2mm_chan_id; - u32 mm2s_chan_id; - u32 max_buffer_len; +enum { + TASKLET_STATE_SCHED = 0, + TASKLET_STATE_RUN = 1, }; -struct xilinx_axidma_desc_hw { - u32 next_desc; - u32 next_desc_msb; - u32 buf_addr; - u32 buf_addr_msb; - u32 reserved1; - u32 reserved2; - u32 control; - u32 status; - u32 app[5]; - long: 32; - long: 32; - long: 32; +struct virt_dma_desc; + +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 xilinx_axidma_tx_segment { - struct xilinx_axidma_desc_hw hw; +struct virt_dma_desc { + struct dma_async_tx_descriptor tx; + struct dmaengine_result tx_result; struct list_head node; - dma_addr_t phys; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; }; -struct xilinx_aximcdma_desc_hw { - u32 next_desc; - u32 next_desc_msb; - u32 buf_addr; - u32 buf_addr_msb; - u32 rsvd; - u32 control; - u32 status; - u32 sideband_status; - u32 app[5]; - long: 32; - long: 32; - long: 32; -}; +struct at_dma; -struct xilinx_aximcdma_tx_segment { - struct xilinx_aximcdma_desc_hw hw; - struct list_head node; - dma_addr_t phys; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; +struct at_desc; -struct xilinx_dma_tx_descriptor { - struct dma_async_tx_descriptor async_tx; - struct list_head segments; - struct list_head node; +struct at_dma_chan { + struct virt_dma_chan vc; + struct at_dma *atdma; + void *ch_regs; + u8 mask; + u8 per_if; + u8 mem_if; + unsigned long status; + u32 save_cfg; + u32 save_dscr; + struct dma_slave_config dma_sconfig; bool cyclic; - bool err; - u32 residue; + struct at_desc *desc; }; -struct xilinx_vdma_desc_hw { - u32 next_desc; - u32 pad1; - u32 buf_addr; - u32 buf_addr_msb; - u32 vsize; - u32 hsize; - u32 stride; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct at_dma { + struct dma_device dma_device; + void *regs; + struct clk *clk; + u32 save_imr; + u8 all_chan_mask; + struct dma_pool *lli_pool; + struct dma_pool *memset_pool; + struct at_dma_chan chan[0]; }; -struct xilinx_vdma_tx_segment { - struct xilinx_vdma_desc_hw hw; - struct list_head node; - dma_addr_t phys; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct at_lli; + +struct atdma_sg { + unsigned int len; + struct at_lli *lli; + dma_addr_t lli_phys; }; -struct xilinx_cdma_desc_hw { - u32 next_desc; - u32 next_desc_msb; - u32 src_addr; - u32 src_addr_msb; - u32 dest_addr; - u32 dest_addr_msb; - u32 control; - u32 status; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct at_desc { + struct virt_dma_desc vd; + struct at_dma_chan *atchan; + size_t total_len; + unsigned int sglen; + size_t boundary; + size_t dst_hole; + size_t src_hole; + bool memset_buffer; + dma_addr_t memset_paddr; + int *memset_vaddr; + struct atdma_sg sg[0]; }; -struct xilinx_cdma_tx_segment { - struct xilinx_cdma_desc_hw hw; - struct list_head node; - dma_addr_t phys; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct at_lli { + u32 saddr; + u32 daddr; + u32 ctrla; + u32 ctrlb; + u32 dscr; }; -struct dmaengine_desc_callback { - dma_async_tx_callback callback; - dma_async_tx_callback_result callback_result; - void *callback_param; +struct at_dma_slave { + struct device *dma_dev; + u32 cfg; }; -struct gpio_regulator_state; +struct fsl_soc_data { + const char *sfp_compat; + u32 uid_offset; +}; -struct gpio_regulator_config { - const char *supply_name; - const char *input_supply; - unsigned int enabled_at_boot: 1; - unsigned int startup_delay; - enum gpiod_flags *gflags; - int ngpios; - struct gpio_regulator_state *states; - int nr_states; - enum regulator_type type; - struct regulator_init_data *init_data; +struct fsl_soc_die_attr { + char *die; + u32 svr; + u32 mask; }; -struct gpio_regulator_state { - int value; - int gpios; +struct qcom_smem_state_ops { + int (*update_bits)(void *, u32, u32); }; -struct gpio_regulator_data { - struct regulator_desc desc; - struct gpio_desc **gpiods; - int nr_gpios; - struct gpio_regulator_state *states; - int nr_states; - int state; +struct qcom_smem_state { + struct kref refcount; + bool orphan; + struct list_head list; + struct device_node *of_node; + void *priv; + struct qcom_smem_state_ops ops; }; -struct hi3660_reset_controller { - struct reset_controller_dev rst; - struct regmap *map; +typedef struct generic_pm_domain * (*genpd_xlate_t)(struct of_phandle_args *, void *); + +struct genpd_onecell_data { + struct generic_pm_domain **domains; + unsigned int num_domains; + genpd_xlate_t xlate; }; -struct uniphier_reset_data { - unsigned int id; - unsigned int reg; - unsigned int bit; - unsigned int flags; +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, }; -struct uniphier_reset_priv { - struct reset_controller_dev rcdev; - struct device *dev; - struct regmap *regmap; - const struct uniphier_reset_data *data; +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 asc_port { - struct uart_port port; - struct gpio_desc *rts; - struct clk *clk; - struct pinctrl *pinctrl; - struct pinctrl_state *states[2]; - unsigned int hw_flow_control: 1; - unsigned int force_m1: 1; +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, }; -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 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 io_pgtable; +struct power_supply_battery_info; -struct io_pgtable_cfg; +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; + long: 32; + struct device dev; + struct work_struct changed_work; + struct delayed_work deferred_register_work; + spinlock_t changed_lock; + bool changed; + bool initialized; + bool removing; + atomic_t use_cnt; + struct power_supply_battery_info *battery_info; + struct thermal_zone_device *tzd; + struct thermal_cooling_device *tcd; + 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; + long: 32; +}; -struct io_pgtable_init_fns { - struct io_pgtable * (*alloc)(struct io_pgtable_cfg *, void *); - void (*free)(struct io_pgtable *); +struct power_supply_maintenance_charge_table; + +struct power_supply_battery_ocv_table; + +struct power_supply_resistance_temp_table; + +struct power_supply_vbat_ri_table; + +struct power_supply_battery_info { + unsigned int technology; + int energy_full_design_uwh; + int charge_full_design_uah; + int voltage_min_design_uv; + int voltage_max_design_uv; + int tricklecharge_current_ua; + int precharge_current_ua; + int precharge_voltage_max_uv; + int charge_term_current_ua; + int charge_restart_voltage_uv; + int overvoltage_limit_uv; + int constant_charge_current_max_ua; + int constant_charge_voltage_max_uv; + struct power_supply_maintenance_charge_table *maintenance_charge; + int maintenance_charge_size; + int alert_low_temp_charge_current_ua; + int alert_low_temp_charge_voltage_uv; + int alert_high_temp_charge_current_ua; + int alert_high_temp_charge_voltage_uv; + int factory_internal_resistance_uohm; + int factory_internal_resistance_charging_uohm; + int ocv_temp[20]; + int temp_ambient_alert_min; + int temp_ambient_alert_max; + int temp_alert_min; + int temp_alert_max; + int temp_min; + int temp_max; + struct power_supply_battery_ocv_table *ocv_table[20]; + int ocv_table_size[20]; + struct power_supply_resistance_temp_table *resist_table; + int resist_table_size; + struct power_supply_vbat_ri_table *vbat2ri_discharging; + int vbat2ri_discharging_size; + struct power_supply_vbat_ri_table *vbat2ri_charging; + int vbat2ri_charging_size; + int bti_resistance_ohm; + int bti_resistance_tolerance; }; -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 power_supply_maintenance_charge_table { + int charge_current_max_ua; + int charge_voltage_max_uv; + int charge_safety_timer_minutes; }; -struct iommu_flush_ops; +struct power_supply_battery_ocv_table { + int ocv; + int capacity; +}; -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; - long: 32; - union { - struct { - u64 ttbr; - struct { - u32 ips: 3; - u32 tg: 2; - u32 sh: 2; - u32 orgn: 2; - u32 irgn: 2; - u32 tsz: 6; - } tcr; - long: 32; - 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; - long: 32; - } 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; - long: 32; - } apple_dart_cfg; - }; +struct power_supply_resistance_temp_table { + int temp; + int resistance; }; -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 power_supply_vbat_ri_table { + int vbat_uv; + int ri_uohm; }; -struct io_pgtable { - enum io_pgtable_fmt fmt; - void *cookie; - struct io_pgtable_cfg cfg; - struct io_pgtable_ops ops; - long: 32; +union power_supply_propval { + int intval; + const char *strval; }; -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 *); +enum { + ACT8600 = 0, + ACT8865 = 1, + ACT8846 = 2, }; -struct drm_client_funcs; +enum { + ACT8865_ID_DCDC1 = 0, + ACT8865_ID_DCDC2 = 1, + ACT8865_ID_DCDC3 = 2, + ACT8865_ID_LDO1 = 3, + ACT8865_ID_LDO2 = 4, + ACT8865_ID_LDO3 = 5, + ACT8865_ID_LDO4 = 6, + ACT8865_REG_NUM = 7, +}; -struct drm_client_dev { - struct drm_device *dev; +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, +}; + +struct act8865_regulator_data { + int id; 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 regulator_init_data *init_data; + struct device_node *of_node; }; -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 act8865_platform_data { + int num_regulators; + struct act8865_regulator_data *regulators; }; -struct drm_client_offset { - int x; - int y; +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 drm_connector_list_iter { - struct drm_device *dev; - struct drm_connector *conn; +struct act8865 { + struct regmap *regmap; + int off_reg; + int off_mask; }; -enum class_map_type { - DD_CLASS_TYPE_DISJOINT_BITS = 0, - DD_CLASS_TYPE_LEVEL_NUM = 1, - DD_CLASS_TYPE_DISJOINT_NAMES = 2, - DD_CLASS_TYPE_LEVEL_NAMES = 3, +struct rk8xx_register_bit { + u8 reg; + u8 bit; }; -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; +enum { + RK805_ID = 32848, + RK806_ID = 32864, + RK808_ID = 0, + RK809_ID = 32912, + RK817_ID = 33136, + RK818_ID = 33152, }; -struct tegra_sor; +enum rk809_reg_id { + RK809_ID_DCDC5 = 13, + RK809_ID_SW1 = 14, + RK809_ID_SW2 = 15, + RK809_NUM_REGULATORS = 16, +}; -struct tegra_sor_ops { - const char *name; - int (*probe)(struct tegra_sor *); - void (*audio_enable)(struct tegra_sor *); - void (*audio_disable)(struct tegra_sor *); +enum rk817_reg_id { + RK817_ID_DCDC1 = 0, + RK817_ID_DCDC2 = 1, + RK817_ID_DCDC3 = 2, + RK817_ID_DCDC4 = 3, + RK817_ID_LDO1 = 4, + RK817_ID_LDO2 = 5, + RK817_ID_LDO3 = 6, + RK817_ID_LDO4 = 7, + RK817_ID_LDO5 = 8, + RK817_ID_LDO6 = 9, + RK817_ID_LDO7 = 10, + RK817_ID_LDO8 = 11, + RK817_ID_LDO9 = 12, + RK817_ID_BOOST = 13, + RK817_ID_BOOST_OTG_SW = 14, + RK817_NUM_REGULATORS = 15, }; -struct drm_dp_link_caps { - bool enhanced_framing; - bool tps3_supported; - bool fast_training; - bool channel_coding; - bool alternate_scrambler_reset; +struct rk808_regulator_data { + struct gpio_desc *dvs_gpio[2]; }; -struct drm_dp_link_train_set { - unsigned int voltage_swing[4]; - unsigned int pre_emphasis[4]; - unsigned int post_cursor[4]; +struct rk808 { + struct device *dev; + struct regmap_irq_chip_data *irq_data; + struct regmap *regmap; + long variant; + const struct regmap_config *regmap_cfg; + const struct regmap_irq_chip *regmap_irq_chip; }; -struct drm_dp_link_train { - struct drm_dp_link_train_set request; - struct drm_dp_link_train_set adjust; - unsigned int pattern; - bool clock_recovered; - bool channel_equalized; +struct brcmstb_reset { + void *base; + struct reset_controller_dev rcdev; }; -struct drm_dp_link_ops; +struct digicolor_port { + struct uart_port port; + struct delayed_work rx_poll_work; + long: 32; +}; -struct drm_dp_aux; +enum mctrl_gpio_idx { + UART_GPIO_CTS = 0, + UART_GPIO_DSR = 1, + UART_GPIO_DCD = 2, + UART_GPIO_RNG = 3, + UART_GPIO_RI = 3, + UART_GPIO_RTS = 4, + UART_GPIO_DTR = 5, + UART_GPIO_MAX = 6, +}; -struct drm_dp_link { - unsigned char revision; - unsigned int max_rate; - unsigned int max_lanes; - struct drm_dp_link_caps caps; - struct { - unsigned int cr; - unsigned int ce; - } aux_rd_interval; - unsigned char edp; - unsigned int rate; - unsigned int lanes; - unsigned long rates[8]; - unsigned int num_rates; - const struct drm_dp_link_ops *ops; - struct drm_dp_aux *aux; - struct drm_dp_link_train train; +struct mctrl_gpios { + struct uart_port *port; + struct gpio_desc *gpio[6]; + int irq[6]; + unsigned int mctrl_prev; + bool mctrl_on; }; -enum tegra_io_pad { - TEGRA_IO_PAD_AUDIO = 0, - TEGRA_IO_PAD_AUDIO_HV = 1, - TEGRA_IO_PAD_BB = 2, - TEGRA_IO_PAD_CAM = 3, - TEGRA_IO_PAD_COMP = 4, - TEGRA_IO_PAD_CONN = 5, - TEGRA_IO_PAD_CSIA = 6, - TEGRA_IO_PAD_CSIB = 7, - TEGRA_IO_PAD_CSIC = 8, - TEGRA_IO_PAD_CSID = 9, - TEGRA_IO_PAD_CSIE = 10, - TEGRA_IO_PAD_CSIF = 11, - TEGRA_IO_PAD_CSIG = 12, - TEGRA_IO_PAD_CSIH = 13, - TEGRA_IO_PAD_DAP3 = 14, - TEGRA_IO_PAD_DAP5 = 15, - TEGRA_IO_PAD_DBG = 16, - TEGRA_IO_PAD_DEBUG_NONAO = 17, - TEGRA_IO_PAD_DMIC = 18, - TEGRA_IO_PAD_DMIC_HV = 19, - TEGRA_IO_PAD_DP = 20, - TEGRA_IO_PAD_DSI = 21, - TEGRA_IO_PAD_DSIB = 22, - TEGRA_IO_PAD_DSIC = 23, - TEGRA_IO_PAD_DSID = 24, - TEGRA_IO_PAD_EDP = 25, - TEGRA_IO_PAD_EMMC = 26, - TEGRA_IO_PAD_EMMC2 = 27, - TEGRA_IO_PAD_EQOS = 28, - TEGRA_IO_PAD_GPIO = 29, - TEGRA_IO_PAD_GP_PWM2 = 30, - TEGRA_IO_PAD_GP_PWM3 = 31, - TEGRA_IO_PAD_HDMI = 32, - TEGRA_IO_PAD_HDMI_DP0 = 33, - TEGRA_IO_PAD_HDMI_DP1 = 34, - TEGRA_IO_PAD_HDMI_DP2 = 35, - TEGRA_IO_PAD_HDMI_DP3 = 36, - TEGRA_IO_PAD_HSIC = 37, - TEGRA_IO_PAD_HV = 38, - TEGRA_IO_PAD_LVDS = 39, - TEGRA_IO_PAD_MIPI_BIAS = 40, - TEGRA_IO_PAD_NAND = 41, - TEGRA_IO_PAD_PEX_BIAS = 42, - TEGRA_IO_PAD_PEX_CLK_BIAS = 43, - TEGRA_IO_PAD_PEX_CLK1 = 44, - TEGRA_IO_PAD_PEX_CLK2 = 45, - TEGRA_IO_PAD_PEX_CLK3 = 46, - TEGRA_IO_PAD_PEX_CLK_2_BIAS = 47, - TEGRA_IO_PAD_PEX_CLK_2 = 48, - TEGRA_IO_PAD_PEX_CNTRL = 49, - TEGRA_IO_PAD_PEX_CTL2 = 50, - TEGRA_IO_PAD_PEX_L0_RST = 51, - TEGRA_IO_PAD_PEX_L1_RST = 52, - TEGRA_IO_PAD_PEX_L5_RST = 53, - TEGRA_IO_PAD_PWR_CTL = 54, - TEGRA_IO_PAD_SDMMC1 = 55, - TEGRA_IO_PAD_SDMMC1_HV = 56, - TEGRA_IO_PAD_SDMMC2 = 57, - TEGRA_IO_PAD_SDMMC2_HV = 58, - TEGRA_IO_PAD_SDMMC3 = 59, - TEGRA_IO_PAD_SDMMC3_HV = 60, - TEGRA_IO_PAD_SDMMC4 = 61, - TEGRA_IO_PAD_SOC_GPIO10 = 62, - TEGRA_IO_PAD_SOC_GPIO12 = 63, - TEGRA_IO_PAD_SOC_GPIO13 = 64, - TEGRA_IO_PAD_SOC_GPIO53 = 65, - TEGRA_IO_PAD_SPI = 66, - TEGRA_IO_PAD_SPI_HV = 67, - TEGRA_IO_PAD_SYS_DDC = 68, - TEGRA_IO_PAD_UART = 69, - TEGRA_IO_PAD_UART4 = 70, - TEGRA_IO_PAD_UART5 = 71, - TEGRA_IO_PAD_UFS = 72, - TEGRA_IO_PAD_USB0 = 73, - TEGRA_IO_PAD_USB1 = 74, - TEGRA_IO_PAD_USB2 = 75, - TEGRA_IO_PAD_USB3 = 76, - TEGRA_IO_PAD_USB_BIAS = 77, - TEGRA_IO_PAD_AO_HV = 78, +struct tee_client_device_id; + +struct tee_client_driver { + const struct tee_client_device_id *id_table; + struct device_driver driver; }; -struct tegra_hda_format { - unsigned int sample_rate; - unsigned int channels; - unsigned int bits; - bool pcm; +struct tee_client_device_id { + uuid_t uuid; }; -struct tegra_sor_soc; +struct tee_context; -struct tegra_sor_hdmi_settings; +struct tee_shm; -struct tegra_sor { - struct host1x_client client; - struct tegra_output output; +struct optee_rng_private { struct device *dev; - const struct tegra_sor_soc *soc; - void *regs; - unsigned int index; - unsigned int irq; - struct reset_control *rst; - struct clk *clk_parent; - struct clk *clk_safe; - struct clk *clk_out; - struct clk *clk_pad; - struct clk *clk_dp; - struct clk *clk; - u8 xbar_cfg[5]; - struct drm_dp_link link; - struct drm_dp_aux *aux; - struct drm_info_list *debugfs_files; - const struct tegra_sor_ops *ops; - enum tegra_io_pad pad; - struct tegra_sor_hdmi_settings *settings; - unsigned int num_settings; - struct regulator *avdd_io_supply; - struct regulator *vdd_pll_supply; - struct regulator *hdmi_supply; - struct delayed_work scdc; - bool scdc_enabled; - struct tegra_hda_format format; + struct tee_context *ctx; + u32 session_id; + u32 data_rate; + struct tee_shm *entropy_shm_pool; + struct hwrng optee_rng; }; -struct drm_panel_funcs; +struct tee_device; -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 tee_context { + struct tee_device *teedev; + void *data; + struct kref refcount; + bool releasing; + bool supp_nowait; + bool cap_memref_null; }; -struct display_timing; +struct tee_shm { + struct tee_context *ctx; + phys_addr_t paddr; + void *kaddr; + size_t size; + unsigned int offset; + struct page **pages; + size_t num_pages; + refcount_t refcount; + u32 flags; + int id; + u64 sec_world_id; +}; -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 tee_client_device { + struct tee_client_device_id id; + struct device dev; }; -struct tegra_sor_regs; +struct tee_ioctl_param { + __u64 attr; + __u64 a; + __u64 b; + __u64 c; +}; -struct tegra_sor_soc { - bool supports_lvds; - bool supports_hdmi; - bool supports_dp; - bool supports_audio; - bool supports_hdcp; - const struct tegra_sor_regs *regs; - bool has_nvdisplay; - const struct tegra_sor_hdmi_settings *settings; - unsigned int num_settings; - const u8 *xbar_cfg; - const u8 *lane_map; - const u8 (*voltage_swing)[16]; - const u8 (*pre_emphasis)[16]; - const u8 (*post_cursor)[16]; - const u8 (*tx_pu)[16]; +struct tee_ioctl_invoke_arg { + __u32 func; + __u32 session; + __u32 cancel_id; + __u32 ret; + __u32 ret_origin; + __u32 num_params; + struct tee_ioctl_param params[0]; }; -struct tegra_sor_regs { - unsigned int head_state0; - unsigned int head_state1; - unsigned int head_state2; - unsigned int head_state3; - unsigned int head_state4; - unsigned int head_state5; - unsigned int pll0; - unsigned int pll1; - unsigned int pll2; - unsigned int pll3; - unsigned int dp_padctl0; - unsigned int dp_padctl2; +struct tee_param_memref { + size_t shm_offs; + size_t size; + struct tee_shm *shm; }; -struct tegra_sor_hdmi_settings { - unsigned long frequency; - u8 vcocap; - u8 filter; - u8 ichpmp; - u8 loadadj; - u8 tmds_termadj; - u8 tx_pu_value; - u8 bg_temp_coef; - u8 bg_vref_level; - u8 avdd10_level; - u8 avdd14_level; - u8 sparepll; - u8 drive_current[4]; - u8 preemphasis[4]; +struct tee_param_value { + u64 a; + u64 b; + u64 c; }; -struct drm_dp_link_ops { - int (*apply_training)(struct drm_dp_link *); - int (*configure)(struct drm_dp_link *); +struct tee_param { + u64 attr; + union { + struct tee_param_memref memref; + struct tee_param_value value; + } u; }; -struct cec_adapter; +struct tee_ioctl_version_data { + __u32 impl_id; + __u32 impl_caps; + __u32 gen_caps; +}; -struct drm_dp_aux_cec { - struct mutex lock; - struct cec_adapter *adap; - struct drm_connector *connector; - struct delayed_work unregister_work; +struct tee_ioctl_open_session_arg { + __u8 uuid[16]; + __u8 clnt_uuid[16]; + __u32 clnt_login; + __u32 cancel_id; + __u32 session; + __u32 ret; + __u32 ret_origin; + __u32 num_params; + struct tee_ioctl_param params[0]; }; -struct drm_dp_aux_msg; +struct drm_mode_map_dumb { + __u32 handle; + __u32 pad; + __u64 offset; +}; -struct drm_dp_aux { +struct drm_mode_destroy_dumb { + __u32 handle; +}; + +struct drm_debugfs_info { const char *name; - long: 32; - 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; + int (*show)(struct seq_file *, void *); + u32 driver_features; + void *data; }; -struct drm_dp_aux_msg { - unsigned int address; - u8 request; - u8 reply; - void *buffer; - size_t size; +enum drm_gpuva_flags { + DRM_GPUVA_INVALIDATED = 1, + DRM_GPUVA_SPARSE = 2, + DRM_GPUVA_USERBITS = 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_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_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, -}; - -struct tegra_sor_state { - struct drm_connector_state base; - unsigned int link_speed; - unsigned long pclk; - unsigned int bpc; +enum drm_gpuva_op_type { + DRM_GPUVA_OP_MAP = 0, + DRM_GPUVA_OP_REMAP = 1, + DRM_GPUVA_OP_UNMAP = 2, + DRM_GPUVA_OP_PREFETCH = 3, }; -struct tegra_clk_sor_pad { - struct clk_hw hw; - struct tegra_sor *sor; -}; - -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 drm_gpuvm; -struct hdmi_avi_infoframe { - enum hdmi_infoframe_type type; - unsigned char version; - unsigned char length; - bool itc; - unsigned char pixel_repeat; - 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; - 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 short top_bar; - unsigned short bottom_bar; - unsigned short left_bar; - unsigned short right_bar; +struct drm_gpuva { + struct drm_gpuvm *vm; + enum drm_gpuva_flags flags; + struct { + u64 addr; + u64 range; + } va; + struct { + u64 offset; + struct drm_gem_object *obj; + struct list_head entry; + long: 32; + } gem; + struct { + struct rb_node node; + struct list_head entry; + long: 32; + u64 __subtree_last; + } rb; }; -struct tegra_sor_config { - u32 bits_per_pixel; - u32 active_polarity; - u32 active_count; - u32 tu_size; - u32 active_frac; - u32 watermark; - u32 hblank_symbols; - u32 vblank_symbols; -}; +struct drm_gpuvm_ops; -struct tegra_sor_params { - unsigned int num_clocks; +struct drm_gpuvm { + const char *name; long: 32; - u64 ratio; - u64 precision; - unsigned int active_polarity; - unsigned int active_count; - unsigned int active_frac; - unsigned int tu_size; - unsigned int error; + u64 mm_start; + u64 mm_range; + struct { + struct rb_root_cached tree; + struct list_head list; + } rb; + struct drm_gpuva kernel_alloc_node; + const struct drm_gpuvm_ops *ops; long: 32; }; -struct maxim_charger_current { - unsigned int min; - unsigned int high_start; - unsigned int high_step; - unsigned int max; -}; - -struct regmap_irq_sub_irq_map; - -struct regmap_irq; +struct drm_gpuva_op; -struct regmap_irq_chip { - const char *name; - unsigned int main_status; - unsigned int num_main_status_bits; - struct regmap_irq_sub_irq_map *sub_reg_offsets; - int num_main_regs; - unsigned int status_base; - unsigned int mask_base; - unsigned int unmask_base; - unsigned int ack_base; - unsigned int wake_base; - const unsigned int *config_base; - unsigned int irq_reg_stride; - unsigned int init_ack_masked: 1; - unsigned int mask_unmask_non_inverted: 1; - unsigned int use_ack: 1; - unsigned int ack_invert: 1; - unsigned int clear_ack: 1; - unsigned int status_invert: 1; - unsigned int wake_invert: 1; - unsigned int type_in_mask: 1; - unsigned int clear_on_unmask: 1; - unsigned int runtime_pm: 1; - unsigned int no_status: 1; - int num_regs; - const struct regmap_irq *irqs; - int num_irqs; - int num_config_bases; - int num_config_regs; - int (*handle_pre_irq)(void *); - int (*handle_post_irq)(void *); - int (*handle_mask_sync)(int, unsigned int, unsigned int, void *); - int (*set_type_config)(unsigned int **, unsigned int, const struct regmap_irq *, int, void *); - unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int); - void *irq_drv_data; +struct drm_gpuvm_ops { + struct drm_gpuva_op * (*op_alloc)(); + void (*op_free)(struct drm_gpuva_op *); + int (*sm_step_map)(struct drm_gpuva_op *, void *); + int (*sm_step_remap)(struct drm_gpuva_op *, void *); + int (*sm_step_unmap)(struct drm_gpuva_op *, void *); }; -struct regmap_irq_sub_irq_map { - unsigned int num_regs; - unsigned int *offset; +struct drm_gpuva_op_map { + struct { + u64 addr; + u64 range; + } va; + struct { + u64 offset; + struct drm_gem_object *obj; + long: 32; + } gem; }; -struct regmap_irq_type { - unsigned int type_reg_offset; - unsigned int type_reg_mask; - unsigned int type_rising_val; - unsigned int type_falling_val; - unsigned int type_level_low_val; - unsigned int type_level_high_val; - unsigned int types_supported; -}; +struct drm_gpuva_op_unmap; -struct regmap_irq { - unsigned int reg_offset; - unsigned int mask; - struct regmap_irq_type type; +struct drm_gpuva_op_remap { + struct drm_gpuva_op_map *prev; + struct drm_gpuva_op_map *next; + struct drm_gpuva_op_unmap *unmap; }; -struct mfd_cell_acpi_match; - -struct mfd_cell { - const char *name; - int id; - int level; - int (*suspend)(struct platform_device *); - int (*resume)(struct platform_device *); - void *platform_data; - size_t pdata_size; - const struct mfd_cell_acpi_match *acpi_match; - const struct software_node *swnode; - const char *of_compatible; - const u64 of_reg; - bool use_of_reg; - int num_resources; - const struct resource *resources; - bool ignore_resource_conflicts; - bool pm_runtime_no_callbacks; - int num_parent_supplies; - const char * const *parent_supplies; +struct drm_gpuva_op_unmap { + struct drm_gpuva *va; + bool keep; }; -struct mfd_cell_acpi_match { - const char *pnpid; - long: 32; - const unsigned long long adr; +struct drm_gpuva_op_prefetch { + struct drm_gpuva *va; }; -enum maxim_device_type { - MAXIM_DEVICE_TYPE_UNKNOWN = 0, - MAXIM_DEVICE_TYPE_MAX14577 = 1, - MAXIM_DEVICE_TYPE_MAX77836 = 2, - MAXIM_DEVICE_TYPE_NUM = 3, +struct drm_gpuva_op { + struct list_head entry; + enum drm_gpuva_op_type op; + long: 32; + union { + struct drm_gpuva_op_map map; + struct drm_gpuva_op_remap remap; + struct drm_gpuva_op_unmap unmap; + struct drm_gpuva_op_prefetch prefetch; + }; }; -enum max14577_reg { - MAX14577_REG_DEVICEID = 0, - MAX14577_REG_INT1 = 1, - MAX14577_REG_INT2 = 2, - MAX14577_REG_INT3 = 3, - MAX14577_REG_STATUS1 = 4, - MAX14577_REG_STATUS2 = 5, - MAX14577_REG_STATUS3 = 6, - MAX14577_REG_INTMASK1 = 7, - MAX14577_REG_INTMASK2 = 8, - MAX14577_REG_INTMASK3 = 9, - MAX14577_REG_CDETCTRL1 = 10, - MAX14577_REG_RFU = 11, - MAX14577_REG_CONTROL1 = 12, - MAX14577_REG_CONTROL2 = 13, - MAX14577_REG_CONTROL3 = 14, - MAX14577_REG_CHGCTRL1 = 15, - MAX14577_REG_CHGCTRL2 = 16, - MAX14577_REG_CHGCTRL3 = 17, - MAX14577_REG_CHGCTRL4 = 18, - MAX14577_REG_CHGCTRL5 = 19, - MAX14577_REG_CHGCTRL6 = 20, - MAX14577_REG_CHGCTRL7 = 21, - MAX14577_REG_END = 22, +struct iosys_map { + union { + void *vaddr_iomem; + void *vaddr; + }; + bool is_iomem; }; -enum max77836_pmic_reg { - MAX77836_PMIC_REG_PMIC_ID = 32, - MAX77836_PMIC_REG_PMIC_REV = 33, - MAX77836_PMIC_REG_INTSRC = 34, - MAX77836_PMIC_REG_INTSRC_MASK = 35, - MAX77836_PMIC_REG_TOPSYS_INT = 36, - MAX77836_PMIC_REG_TOPSYS_INT_MASK = 38, - MAX77836_PMIC_REG_TOPSYS_STAT = 40, - MAX77836_PMIC_REG_MRSTB_CNTL = 42, - MAX77836_PMIC_REG_LSCNFG = 43, - MAX77836_LDO_REG_CNFG1_LDO1 = 81, - MAX77836_LDO_REG_CNFG2_LDO1 = 82, - MAX77836_LDO_REG_CNFG1_LDO2 = 83, - MAX77836_LDO_REG_CNFG2_LDO2 = 84, - MAX77836_LDO_REG_CNFG_LDO_BIAS = 85, - MAX77836_COMP_REG_COMP1 = 96, - MAX77836_PMIC_REG_END = 97, +struct drm_debugfs_entry { + struct drm_device *dev; + struct drm_debugfs_info file; + struct list_head list; }; -struct max14577 { - struct device *dev; - struct i2c_client *i2c; - struct i2c_client *i2c_pmic; - enum maxim_device_type dev_type; - struct regmap *regmap; - struct regmap *regmap_pmic; - struct regmap_irq_chip_data *irq_data; - struct regmap_irq_chip_data *irq_data_pmic; - int irq; +struct tegra_drm_mapping { + struct kref ref; + struct host1x_bo_mapping *map; + struct host1x_bo *bo; + dma_addr_t iova; + dma_addr_t iova_end; }; -struct max14577_regulator_platform_data; - -struct max14577_platform_data { - int irq_base; - int gpio_pogo_vbatt_en; - int gpio_pogo_vbus_en; - int (*set_gpio_pogo_vbatt_en)(int); - int (*set_gpio_pogo_vbus_en)(int); - int (*set_gpio_pogo_cb)(int); - struct max14577_regulator_platform_data *regulators; -}; +struct tegra_drm_client_ops; -struct max14577_regulator_platform_data { - int id; - struct regulator_init_data *initdata; - struct device_node *of_node; +struct tegra_drm_client { + struct host1x_client base; + struct list_head list; + struct tegra_drm *drm; + struct host1x_channel *shared_channel; + unsigned int version; + const struct tegra_drm_client_ops *ops; }; -struct tegra_ahci_ops; +struct tegra_drm_context; -struct tegra_ahci_regs; +struct drm_tegra_submit; -struct tegra_ahci_soc { - const char * const *supply_names; - u32 num_supplies; - bool supports_devslp; - bool has_sata_oob_rst; - const struct tegra_ahci_ops *ops; - const struct tegra_ahci_regs *regs; +struct tegra_drm_client_ops { + int (*open_channel)(struct tegra_drm_client *, struct tegra_drm_context *); + void (*close_channel)(struct tegra_drm_context *); + int (*is_addr_reg)(struct device *, u32, u32); + int (*is_valid_class)(u32); + int (*submit)(struct tegra_drm_context *, struct drm_tegra_submit *, struct drm_device *, struct drm_file *); + int (*get_streamid_offset)(struct tegra_drm_client *, u32 *); + int (*can_use_memory_ctx)(struct tegra_drm_client *, bool *); }; -struct tegra_ahci_ops { - int (*init)(struct ahci_host_priv *); +struct tegra_drm_context { + struct tegra_drm_client *client; + struct host1x_channel *channel; + unsigned int id; + struct xarray mappings; + struct host1x_memory_context *memory_context; }; -struct tegra_ahci_regs { - unsigned int nvoob_comma_cnt_mask; - unsigned int nvoob_comma_cnt_val; +struct drm_tegra_submit { + __u64 context; + __u32 num_syncpts; + __u32 num_cmdbufs; + __u32 num_relocs; + __u32 num_waitchks; + __u32 waitchk_mask; + __u32 timeout; + __u64 syncpts; + __u64 cmdbufs; + __u64 relocs; + __u64 waitchks; + __u32 fence; + __u32 reserved[5]; }; -struct sata_pad_calibration { - u8 gen1_tx_amp; - u8 gen1_tx_peak; - u8 gen2_tx_amp; - u8 gen2_tx_peak; +struct tegra_bo { + struct drm_gem_object gem; + struct host1x_bo base; + unsigned long flags; + struct sg_table *sgt; + dma_addr_t iova; + void *vaddr; + struct drm_mm_node *mm; + unsigned long num_pages; + struct page **pages; + size_t size; + struct tegra_bo_tiling tiling; + long: 32; }; -struct regulator_bulk_data; - -struct tegra_ahci_priv { - struct platform_device *pdev; - void *sata_regs; - void *sata_aux_regs; - struct reset_control *sata_rst; - struct reset_control *sata_oob_rst; - struct reset_control *sata_cold_rst; - struct clk *sata_clk; - struct regulator_bulk_data *supplies; - const struct tegra_ahci_soc *soc; +struct xa_limit { + u32 max; + u32 min; }; -struct regulator_bulk_data { - const char *supply; - int init_load_uA; - struct regulator *consumer; - int ret; +struct tegra_drm_file { + struct idr legacy_contexts; + struct mutex lock; + struct xarray contexts; + struct xarray syncpoints; }; -struct nand_ecc_caps; - -struct denali_dt_data { - unsigned int revision; - unsigned int caps; - unsigned int oob_skip_bytes; - const struct nand_ecc_caps *ecc_caps; +struct drm_tegra_channel_open { + __u32 host1x_class; + __u32 flags; + __u32 context; + __u32 version; + __u32 capabilities; + __u32 padding; }; -struct nand_ecc_step_info; - -struct nand_ecc_caps { - const struct nand_ecc_step_info *stepinfos; - int nstepinfos; - int (*calc_ecc_bytes)(int, int); +struct drm_tegra_channel_close { + __u32 context; + __u32 padding; }; -struct nand_ecc_step_info { - int stepsize; - const int *strengths; - int nstrengths; +struct drm_tegra_channel_map { + __u32 context; + __u32 handle; + __u32 flags; + __u32 mapping; }; -enum nand_ecc_engine_type { - NAND_ECC_ENGINE_TYPE_INVALID = 0, - NAND_ECC_ENGINE_TYPE_NONE = 1, - NAND_ECC_ENGINE_TYPE_SOFT = 2, - NAND_ECC_ENGINE_TYPE_ON_HOST = 3, - NAND_ECC_ENGINE_TYPE_ON_DIE = 4, +struct drm_tegra_channel_unmap { + __u32 context; + __u32 mapping; }; -enum nand_ecc_placement { - NAND_ECC_PLACEMENT_UNKNOWN = 0, - NAND_ECC_PLACEMENT_OOB = 1, - NAND_ECC_PLACEMENT_INTERLEAVED = 2, +struct drm_tegra_syncpoint_allocate { + __u32 id; + __u32 padding; }; -enum nand_ecc_algo { - NAND_ECC_ALGO_UNKNOWN = 0, - NAND_ECC_ALGO_HAMMING = 1, - NAND_ECC_ALGO_BCH = 2, - NAND_ECC_ALGO_RS = 3, +struct drm_tegra_syncpoint_wait { + __s64 timeout_ns; + __u32 id; + __u32 threshold; + __u32 value; + __u32 padding; }; -enum nand_page_io_req_type { - NAND_PAGE_READ = 0, - NAND_PAGE_WRITE = 1, -}; +typedef void (*btf_trace_dc_writel)(void *, struct device *, unsigned int, u32); -enum nand_ecc_engine_integration { - NAND_ECC_ENGINE_INTEGRATION_INVALID = 0, - NAND_ECC_ENGINE_INTEGRATION_PIPELINED = 1, - NAND_ECC_ENGINE_INTEGRATION_EXTERNAL = 2, -}; +typedef void (*btf_trace_dc_readl)(void *, struct device *, unsigned int, u32); -enum nand_interface_type { - NAND_SDR_IFACE = 0, - NAND_NVDDR_IFACE = 1, -}; +typedef void (*btf_trace_hdmi_writel)(void *, struct device *, unsigned int, u32); -enum nand_op_instr_type { - NAND_OP_CMD_INSTR = 0, - NAND_OP_ADDR_INSTR = 1, - NAND_OP_DATA_IN_INSTR = 2, - NAND_OP_DATA_OUT_INSTR = 3, - NAND_OP_WAITRDY_INSTR = 4, -}; +typedef void (*btf_trace_hdmi_readl)(void *, struct device *, unsigned int, u32); -struct nand_controller_ops; +typedef void (*btf_trace_dsi_writel)(void *, struct device *, unsigned int, u32); -struct nand_controller { - struct mutex lock; - const struct nand_controller_ops *ops; - struct { - unsigned int data_only_read: 1; - unsigned int cont_read: 1; - } supported_op; -}; +typedef void (*btf_trace_dsi_readl)(void *, struct device *, unsigned int, u32); -struct denali_controller { - struct nand_controller controller; - struct device *dev; - struct list_head chips; - unsigned long clk_rate; - unsigned long clk_x_rate; - void *reg; - void *host; - struct completion complete; - int irq; - u32 irq_mask; - u32 irq_status; - spinlock_t irq_lock; - bool dma_avail; - int devs_per_cs; - int oob_skip_bytes; - int active_bank; - int nbanks; - unsigned int revision; - unsigned int caps; - const struct nand_ecc_caps *ecc_caps; - u32 (*host_read)(struct denali_controller *, u32); - void (*host_write)(struct denali_controller *, u32, u32); - void (*setup_dma)(struct denali_controller *, dma_addr_t, int, bool); -}; +typedef void (*btf_trace_dpaux_writel)(void *, struct device *, unsigned int, u32); -struct nand_chip; +typedef void (*btf_trace_dpaux_readl)(void *, struct device *, unsigned int, u32); -struct nand_operation; +typedef void (*btf_trace_sor_writel)(void *, struct device *, unsigned int, u32); -struct nand_interface_config; +typedef void (*btf_trace_sor_readl)(void *, struct device *, unsigned int, u32); -struct nand_controller_ops { - int (*attach_chip)(struct nand_chip *); - void (*detach_chip)(struct nand_chip *); - int (*exec_op)(struct nand_chip *, const struct nand_operation *, bool); - int (*setup_interface)(struct nand_chip *, int, const struct nand_interface_config *); +struct trace_event_raw_register_access { + struct trace_entry ent; + struct device *dev; + unsigned int offset; + u32 value; + char __data[0]; }; -struct nand_memory_organization { - unsigned int bits_per_cell; - unsigned int pagesize; - unsigned int oobsize; - unsigned int pages_per_eraseblock; - unsigned int eraseblocks_per_lun; - unsigned int max_bad_eraseblocks_per_lun; - unsigned int planes_per_lun; - unsigned int luns_per_target; - unsigned int ntargets; -}; +struct trace_event_data_offsets_register_access {}; -struct nand_ecc_props { - enum nand_ecc_engine_type engine_type; - enum nand_ecc_placement placement; - enum nand_ecc_algo algo; - unsigned int strength; - unsigned int step_size; - unsigned int flags; -}; +typedef void (*dr_release_t)(struct device *, void *); -struct nand_ecc_context { - struct nand_ecc_props conf; - unsigned int nsteps; - unsigned int total; - void *priv; +struct devres_node { + struct list_head entry; + dr_release_t release; + const char *name; + size_t size; }; -struct nand_ecc_engine; +struct klist_node; -struct nand_ecc { - struct nand_ecc_props defaults; - struct nand_ecc_props requirements; - struct nand_ecc_props user_conf; - struct nand_ecc_context ctx; - struct nand_ecc_engine *ondie_engine; - struct nand_ecc_engine *engine; +struct klist { + spinlock_t k_lock; + struct list_head k_list; + void (*get)(struct klist_node *); + void (*put)(struct klist_node *); }; -struct nand_row_converter { - unsigned int lun_addr_shift; - unsigned int eraseblock_addr_shift; +struct klist_node { + void *n_klist; + struct list_head n_node; + struct kref n_ref; }; -struct nand_bbt { - unsigned long *cache; +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 nand_ops; - -struct nand_device { - struct mtd_info mtd; - struct nand_memory_organization memorg; - struct nand_ecc ecc; - struct nand_row_converter rowconv; - struct nand_bbt bbt; - const struct nand_ops *ops; +struct driver_private { + struct kobject kobj; + struct klist klist_devices; + struct klist_node knode_bus; + struct module_kobject *mkobj; + struct device_driver *driver; }; -struct nand_id { - u8 data[8]; - int len; +struct devres { + struct devres_node node; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + u8 data[0]; }; -struct onfi_params; - -struct nand_parameters { - const char *model; - bool supports_set_get_features; - unsigned long set_feature_list[8]; - unsigned long get_feature_list[8]; - struct onfi_params *onfi; +struct devres_group { + struct devres_node node[2]; + void *id; + int color; }; -struct nand_manufacturer_desc; +typedef int (*dr_match_t)(struct device *, void *, void *); -struct nand_manufacturer { - const struct nand_manufacturer_desc *desc; - void *priv; +struct action_devres { + void *data; + void (*action)(void *); }; -struct nand_chip_ops { - int (*suspend)(struct nand_chip *); - void (*resume)(struct nand_chip *); - int (*lock_area)(struct nand_chip *, loff_t, uint64_t); - int (*unlock_area)(struct nand_chip *, loff_t, uint64_t); - int (*setup_read_retry)(struct nand_chip *, int); - int (*choose_interface_config)(struct nand_chip *, struct nand_interface_config *); +struct pages_devres { + unsigned long addr; + unsigned int order; }; -struct nand_legacy { - void *IO_ADDR_R; - void *IO_ADDR_W; - void (*select_chip)(struct nand_chip *, int); - u8 (*read_byte)(struct nand_chip *); - void (*write_byte)(struct nand_chip *, u8); - void (*write_buf)(struct nand_chip *, const u8 *, int); - void (*read_buf)(struct nand_chip *, u8 *, int); - void (*cmd_ctrl)(struct nand_chip *, int, unsigned int); - void (*cmdfunc)(struct nand_chip *, unsigned int, int, int); - int (*dev_ready)(struct nand_chip *); - int (*waitfunc)(struct nand_chip *); - int (*block_bad)(struct nand_chip *, loff_t); - int (*block_markbad)(struct nand_chip *, loff_t); - int (*set_features)(struct nand_chip *, int, u8 *); - int (*get_features)(struct nand_chip *, int, u8 *); - int chip_delay; - struct nand_controller dummy_controller; +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 nand_ecc_ctrl { - enum nand_ecc_engine_type engine_type; - enum nand_ecc_placement placement; - enum nand_ecc_algo algo; - int steps; - int size; - int bytes; - int total; - int strength; - int prepad; - int postpad; - unsigned int options; - u8 *calc_buf; - u8 *code_buf; - void (*hwctl)(struct nand_chip *, int); - int (*calculate)(struct nand_chip *, const uint8_t *, uint8_t *); - int (*correct)(struct nand_chip *, uint8_t *, uint8_t *, uint8_t *); - int (*read_page_raw)(struct nand_chip *, uint8_t *, int, int); - int (*write_page_raw)(struct nand_chip *, const uint8_t *, int, int); - int (*read_page)(struct nand_chip *, uint8_t *, int, int); - int (*read_subpage)(struct nand_chip *, uint32_t, uint32_t, uint8_t *, int); - int (*write_subpage)(struct nand_chip *, uint32_t, uint32_t, const uint8_t *, int, int); - int (*write_page)(struct nand_chip *, const uint8_t *, int, int); - int (*write_oob_raw)(struct nand_chip *, int); - int (*read_oob_raw)(struct nand_chip *, int); - int (*read_oob)(struct nand_chip *, int); - int (*write_oob)(struct nand_chip *, int); +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; + long: 32; + u64 last_hw_sleep; + u64 total_hw_sleep; + u64 max_hw_sleep; + enum suspend_stat_step failed_steps[2]; }; -struct nand_bbt_descr; - -struct nand_secure_region; +typedef int (*pm_callback_t)(struct device *); -struct nand_chip { - struct nand_device base; - struct nand_id id; - struct nand_parameters parameters; - struct nand_manufacturer manufacturer; - struct nand_chip_ops ops; - struct nand_legacy legacy; - unsigned int options; - const struct nand_interface_config *current_interface_config; - struct nand_interface_config *best_interface_config; - unsigned int bbt_erase_shift; - unsigned int bbt_options; - unsigned int badblockpos; - unsigned int badblockbits; - struct nand_bbt_descr *bbt_td; - struct nand_bbt_descr *bbt_md; - struct nand_bbt_descr *badblock_pattern; - u8 *bbt; - unsigned int page_shift; - unsigned int phys_erase_shift; - unsigned int chip_shift; - unsigned int pagemask; - unsigned int subpagesize; - u8 *data_buf; - u8 *oob_poi; - struct { - unsigned int bitflips; - int page; - } pagecache; - unsigned long buf_align; +struct sram_partition { + void *base; + struct gen_pool *pool; + struct bin_attribute battr; struct mutex lock; - unsigned int suspended: 1; - wait_queue_head_t resume_wq; - int cur_cs; - int read_retries; - struct nand_secure_region *secure_regions; - u8 nr_secure_regions; - struct { - bool ongoing; - unsigned int first_page; - unsigned int last_page; - } cont_read; - struct nand_controller *controller; - struct nand_ecc_ctrl ecc; - void *priv; -}; - -struct nand_ecc_engine_ops; - -struct nand_ecc_engine { - struct device *dev; - struct list_head node; - struct nand_ecc_engine_ops *ops; - enum nand_ecc_engine_integration integration; - void *priv; + struct list_head list; }; -struct nand_page_io_req; - -struct nand_ecc_engine_ops { - int (*init_ctx)(struct nand_device *); - void (*cleanup_ctx)(struct nand_device *); - int (*prepare_io_req)(struct nand_device *, struct nand_page_io_req *); - int (*finish_io_req)(struct nand_device *, struct nand_page_io_req *); -}; +typedef unsigned long (*genpool_algo_t)(unsigned long *, unsigned long, unsigned long, unsigned int, void *, struct gen_pool *, unsigned long); -struct nand_pos { - unsigned int target; - unsigned int lun; - unsigned int plane; - unsigned int eraseblock; - unsigned int page; +struct gen_pool { + spinlock_t lock; + struct list_head chunks; + int min_alloc_order; + genpool_algo_t algo; + void *data; + const char *name; }; -struct nand_page_io_req { - enum nand_page_io_req_type type; - struct nand_pos pos; - unsigned int dataoffs; - unsigned int datalen; - union { - const void *out; - void *in; - } databuf; - unsigned int ooboffs; - unsigned int ooblen; - union { - const void *out; - void *in; - } oobbuf; - int mode; -}; +struct sram_config; -struct nand_ops { - int (*erase)(struct nand_device *, const struct nand_pos *); - int (*markbad)(struct nand_device *, const struct nand_pos *); - bool (*isbad)(struct nand_device *, const struct nand_pos *); +struct sram_dev { + const struct sram_config *config; + struct device *dev; + void *virt_base; + bool no_memory_wc; + struct gen_pool *pool; + struct sram_partition *partition; + u32 partitions; }; -struct onfi_params { - int version; - u16 tPROG; - u16 tBERS; - u16 tR; - u16 tCCS; - bool fast_tCAD; - u16 sdr_timing_modes; - u16 nvddr_timing_modes; - u16 vendor_revision; - u8 vendor[88]; +struct sram_config { + int (*init)(); + bool map_only_reserved; }; -struct nand_manufacturer_ops; - -struct nand_manufacturer_desc { - int id; - char *name; - const struct nand_manufacturer_ops *ops; +struct sram_reserve { + struct list_head list; + u32 start; + u32 size; + struct resource res; + bool export; + bool pool; + bool protect_exec; + const char *label; }; -struct nand_sdr_timings { - u64 tBERS_max; - u32 tCCS_min; - long: 32; - u64 tPROG_max; - u64 tR_max; - u32 tALH_min; - u32 tADL_min; - u32 tALS_min; - u32 tAR_min; - u32 tCEA_max; - u32 tCEH_min; - u32 tCH_min; - u32 tCHZ_max; - u32 tCLH_min; - u32 tCLR_min; - u32 tCLS_min; - u32 tCOH_min; - u32 tCS_min; - u32 tDH_min; - u32 tDS_min; - u32 tFEAT_max; - u32 tIR_min; - u32 tITC_max; - u32 tRC_min; - u32 tREA_max; - u32 tREH_min; - u32 tRHOH_min; - u32 tRHW_min; - u32 tRHZ_max; - u32 tRLOH_min; - u32 tRP_min; - u32 tRR_min; - long: 32; - u64 tRST_max; - u32 tWB_max; - u32 tWC_min; - u32 tWH_min; - u32 tWHR_min; - u32 tWP_min; - u32 tWW_min; +struct rk8xx_i2c_platform_data { + const struct regmap_config *regmap_cfg; + int variant; }; -struct nand_nvddr_timings { - u64 tBERS_max; - u32 tCCS_min; - long: 32; - u64 tPROG_max; - u64 tR_max; - u32 tAC_min; - u32 tAC_max; - u32 tADL_min; - u32 tCAD_min; - u32 tCAH_min; - u32 tCALH_min; - u32 tCALS_min; - u32 tCAS_min; - u32 tCEH_min; - u32 tCH_min; - u32 tCK_min; - u32 tCS_min; - u32 tDH_min; - u32 tDQSCK_min; - u32 tDQSCK_max; - u32 tDQSD_min; - u32 tDQSD_max; - u32 tDQSHZ_max; - u32 tDQSQ_max; - u32 tDS_min; - u32 tDSC_min; - u32 tFEAT_max; - u32 tITC_max; - u32 tQHS_max; - u32 tRHW_min; - u32 tRR_min; - u32 tRST_max; - u32 tWB_max; - u32 tWHR_min; - u32 tWRCK_min; - u32 tWW_min; - long: 32; +enum { + ATA_MAX_DEVICES = 2, + ATA_MAX_PRD = 256, + ATA_SECT_SIZE = 512, + ATA_MAX_SECTORS_128 = 128, + ATA_MAX_SECTORS = 256, + ATA_MAX_SECTORS_1024 = 1024, + ATA_MAX_SECTORS_LBA48 = 65535, + ATA_MAX_SECTORS_TAPE = 65535, + ATA_MAX_TRIM_RNUM = 64, + ATA_ID_WORDS = 256, + ATA_ID_CONFIG = 0, + ATA_ID_CYLS = 1, + ATA_ID_HEADS = 3, + ATA_ID_SECTORS = 6, + ATA_ID_SERNO = 10, + ATA_ID_BUF_SIZE = 21, + ATA_ID_FW_REV = 23, + ATA_ID_PROD = 27, + ATA_ID_MAX_MULTSECT = 47, + ATA_ID_DWORD_IO = 48, + ATA_ID_TRUSTED = 48, + ATA_ID_CAPABILITY = 49, + ATA_ID_OLD_PIO_MODES = 51, + ATA_ID_OLD_DMA_MODES = 52, + ATA_ID_FIELD_VALID = 53, + ATA_ID_CUR_CYLS = 54, + ATA_ID_CUR_HEADS = 55, + ATA_ID_CUR_SECTORS = 56, + ATA_ID_MULTSECT = 59, + ATA_ID_LBA_CAPACITY = 60, + ATA_ID_SWDMA_MODES = 62, + ATA_ID_MWDMA_MODES = 63, + ATA_ID_PIO_MODES = 64, + ATA_ID_EIDE_DMA_MIN = 65, + ATA_ID_EIDE_DMA_TIME = 66, + ATA_ID_EIDE_PIO = 67, + ATA_ID_EIDE_PIO_IORDY = 68, + ATA_ID_ADDITIONAL_SUPP = 69, + ATA_ID_QUEUE_DEPTH = 75, + ATA_ID_SATA_CAPABILITY = 76, + ATA_ID_SATA_CAPABILITY_2 = 77, + ATA_ID_FEATURE_SUPP = 78, + ATA_ID_MAJOR_VER = 80, + ATA_ID_COMMAND_SET_1 = 82, + ATA_ID_COMMAND_SET_2 = 83, + ATA_ID_CFSSE = 84, + ATA_ID_CFS_ENABLE_1 = 85, + ATA_ID_CFS_ENABLE_2 = 86, + ATA_ID_CSF_DEFAULT = 87, + ATA_ID_UDMA_MODES = 88, + ATA_ID_HW_CONFIG = 93, + ATA_ID_SPG = 98, + ATA_ID_LBA_CAPACITY_2 = 100, + ATA_ID_SECTOR_SIZE = 106, + ATA_ID_WWN = 108, + ATA_ID_LOGICAL_SECTOR_SIZE = 117, + ATA_ID_COMMAND_SET_3 = 119, + ATA_ID_COMMAND_SET_4 = 120, + ATA_ID_LAST_LUN = 126, + ATA_ID_DLF = 128, + ATA_ID_CSFO = 129, + ATA_ID_CFA_POWER = 160, + ATA_ID_CFA_KEY_MGMT = 162, + ATA_ID_CFA_MODES = 163, + ATA_ID_DATA_SET_MGMT = 169, + ATA_ID_SCT_CMD_XPORT = 206, + ATA_ID_ROT_SPEED = 217, + ATA_ID_PIO4 = 2, + ATA_ID_SERNO_LEN = 20, + ATA_ID_FW_REV_LEN = 8, + ATA_ID_PROD_LEN = 40, + ATA_ID_WWN_LEN = 8, + ATA_PCI_CTL_OFS = 2, + ATA_PIO0 = 1, + ATA_PIO1 = 3, + ATA_PIO2 = 7, + ATA_PIO3 = 15, + ATA_PIO4 = 31, + ATA_PIO5 = 63, + ATA_PIO6 = 127, + ATA_PIO4_ONLY = 16, + ATA_SWDMA0 = 1, + ATA_SWDMA1 = 3, + ATA_SWDMA2 = 7, + ATA_SWDMA2_ONLY = 4, + ATA_MWDMA0 = 1, + ATA_MWDMA1 = 3, + ATA_MWDMA2 = 7, + ATA_MWDMA3 = 15, + ATA_MWDMA4 = 31, + ATA_MWDMA12_ONLY = 6, + ATA_MWDMA2_ONLY = 4, + ATA_UDMA0 = 1, + ATA_UDMA1 = 3, + ATA_UDMA2 = 7, + ATA_UDMA3 = 15, + ATA_UDMA4 = 31, + ATA_UDMA5 = 63, + ATA_UDMA6 = 127, + ATA_UDMA7 = 255, + ATA_UDMA24_ONLY = 20, + ATA_UDMA_MASK_40C = 7, + ATA_PRD_SZ = 8, + ATA_PRD_TBL_SZ = 2048, + ATA_PRD_EOT = -2147483648, + ATA_DMA_TABLE_OFS = 4, + ATA_DMA_STATUS = 2, + ATA_DMA_CMD = 0, + ATA_DMA_WR = 8, + ATA_DMA_START = 1, + ATA_DMA_INTR = 4, + ATA_DMA_ERR = 2, + ATA_DMA_ACTIVE = 1, + ATA_HOB = 128, + ATA_NIEN = 2, + ATA_LBA = 64, + ATA_DEV1 = 16, + ATA_DEVICE_OBS = 160, + ATA_DEVCTL_OBS = 8, + ATA_BUSY = 128, + ATA_DRDY = 64, + ATA_DF = 32, + ATA_DSC = 16, + ATA_DRQ = 8, + ATA_CORR = 4, + ATA_SENSE = 2, + ATA_ERR = 1, + ATA_SRST = 4, + ATA_ICRC = 128, + ATA_BBK = 128, + ATA_UNC = 64, + ATA_MC = 32, + ATA_IDNF = 16, + ATA_MCR = 8, + ATA_ABORTED = 4, + ATA_TRK0NF = 2, + ATA_AMNF = 1, + ATAPI_LFS = 240, + ATAPI_EOM = 2, + ATAPI_ILI = 1, + ATAPI_IO = 2, + ATAPI_COD = 1, + ATA_REG_DATA = 0, + ATA_REG_ERR = 1, + ATA_REG_NSECT = 2, + ATA_REG_LBAL = 3, + ATA_REG_LBAM = 4, + ATA_REG_LBAH = 5, + ATA_REG_DEVICE = 6, + ATA_REG_STATUS = 7, + ATA_REG_FEATURE = 1, + ATA_REG_CMD = 7, + ATA_REG_BYTEL = 4, + ATA_REG_BYTEH = 5, + ATA_REG_DEVSEL = 6, + ATA_REG_IRQ = 2, + ATA_CMD_DEV_RESET = 8, + ATA_CMD_CHK_POWER = 229, + ATA_CMD_STANDBY = 226, + ATA_CMD_IDLE = 227, + ATA_CMD_EDD = 144, + ATA_CMD_DOWNLOAD_MICRO = 146, + ATA_CMD_DOWNLOAD_MICRO_DMA = 147, + ATA_CMD_NOP = 0, + ATA_CMD_FLUSH = 231, + ATA_CMD_FLUSH_EXT = 234, + ATA_CMD_ID_ATA = 236, + ATA_CMD_ID_ATAPI = 161, + ATA_CMD_SERVICE = 162, + ATA_CMD_READ = 200, + ATA_CMD_READ_EXT = 37, + ATA_CMD_READ_QUEUED = 38, + ATA_CMD_READ_STREAM_EXT = 43, + ATA_CMD_READ_STREAM_DMA_EXT = 42, + ATA_CMD_WRITE = 202, + ATA_CMD_WRITE_EXT = 53, + ATA_CMD_WRITE_QUEUED = 54, + ATA_CMD_WRITE_STREAM_EXT = 59, + ATA_CMD_WRITE_STREAM_DMA_EXT = 58, + ATA_CMD_WRITE_FUA_EXT = 61, + ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, + ATA_CMD_FPDMA_READ = 96, + ATA_CMD_FPDMA_WRITE = 97, + ATA_CMD_NCQ_NON_DATA = 99, + ATA_CMD_FPDMA_SEND = 100, + ATA_CMD_FPDMA_RECV = 101, + ATA_CMD_PIO_READ = 32, + ATA_CMD_PIO_READ_EXT = 36, + ATA_CMD_PIO_WRITE = 48, + ATA_CMD_PIO_WRITE_EXT = 52, + ATA_CMD_READ_MULTI = 196, + ATA_CMD_READ_MULTI_EXT = 41, + ATA_CMD_WRITE_MULTI = 197, + ATA_CMD_WRITE_MULTI_EXT = 57, + ATA_CMD_WRITE_MULTI_FUA_EXT = 206, + ATA_CMD_SET_FEATURES = 239, + ATA_CMD_SET_MULTI = 198, + ATA_CMD_PACKET = 160, + ATA_CMD_VERIFY = 64, + ATA_CMD_VERIFY_EXT = 66, + ATA_CMD_WRITE_UNCORR_EXT = 69, + ATA_CMD_STANDBYNOW1 = 224, + ATA_CMD_IDLEIMMEDIATE = 225, + ATA_CMD_SLEEP = 230, + ATA_CMD_INIT_DEV_PARAMS = 145, + ATA_CMD_READ_NATIVE_MAX = 248, + ATA_CMD_READ_NATIVE_MAX_EXT = 39, + ATA_CMD_SET_MAX = 249, + ATA_CMD_SET_MAX_EXT = 55, + ATA_CMD_READ_LOG_EXT = 47, + ATA_CMD_WRITE_LOG_EXT = 63, + ATA_CMD_READ_LOG_DMA_EXT = 71, + ATA_CMD_WRITE_LOG_DMA_EXT = 87, + ATA_CMD_TRUSTED_NONDATA = 91, + ATA_CMD_TRUSTED_RCV = 92, + ATA_CMD_TRUSTED_RCV_DMA = 93, + ATA_CMD_TRUSTED_SND = 94, + ATA_CMD_TRUSTED_SND_DMA = 95, + ATA_CMD_PMP_READ = 228, + ATA_CMD_PMP_READ_DMA = 233, + ATA_CMD_PMP_WRITE = 232, + ATA_CMD_PMP_WRITE_DMA = 235, + ATA_CMD_CONF_OVERLAY = 177, + ATA_CMD_SEC_SET_PASS = 241, + ATA_CMD_SEC_UNLOCK = 242, + ATA_CMD_SEC_ERASE_PREP = 243, + ATA_CMD_SEC_ERASE_UNIT = 244, + ATA_CMD_SEC_FREEZE_LOCK = 245, + ATA_CMD_SEC_DISABLE_PASS = 246, + ATA_CMD_CONFIG_STREAM = 81, + ATA_CMD_SMART = 176, + ATA_CMD_MEDIA_LOCK = 222, + ATA_CMD_MEDIA_UNLOCK = 223, + ATA_CMD_DSM = 6, + ATA_CMD_CHK_MED_CRD_TYP = 209, + ATA_CMD_CFA_REQ_EXT_ERR = 3, + ATA_CMD_CFA_WRITE_NE = 56, + ATA_CMD_CFA_TRANS_SECT = 135, + ATA_CMD_CFA_ERASE = 192, + ATA_CMD_CFA_WRITE_MULT_NE = 205, + ATA_CMD_REQ_SENSE_DATA = 11, + ATA_CMD_SANITIZE_DEVICE = 180, + ATA_CMD_ZAC_MGMT_IN = 74, + ATA_CMD_ZAC_MGMT_OUT = 159, + ATA_CMD_RESTORE = 16, + ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, + ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, + ATA_SUBCMD_FPDMA_SEND_DSM = 0, + ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, + ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, + ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, + ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, + ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, + ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, + ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, + ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, + ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, + ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, + ATA_LOG_DIRECTORY = 0, + ATA_LOG_SATA_NCQ = 16, + ATA_LOG_NCQ_NON_DATA = 18, + ATA_LOG_NCQ_SEND_RECV = 19, + ATA_LOG_CDL = 24, + ATA_LOG_CDL_SIZE = 512, + ATA_LOG_IDENTIFY_DEVICE = 48, + ATA_LOG_SENSE_NCQ = 15, + ATA_LOG_SENSE_NCQ_SIZE = 1024, + ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, + ATA_LOG_SUPPORTED_CAPABILITIES = 3, + ATA_LOG_CURRENT_SETTINGS = 4, + ATA_LOG_SECURITY = 6, + ATA_LOG_SATA_SETTINGS = 8, + ATA_LOG_ZONED_INFORMATION = 9, + ATA_LOG_DEVSLP_OFFSET = 48, + ATA_LOG_DEVSLP_SIZE = 8, + ATA_LOG_DEVSLP_MDAT = 0, + ATA_LOG_DEVSLP_MDAT_MASK = 31, + ATA_LOG_DEVSLP_DETO = 1, + ATA_LOG_DEVSLP_VALID = 7, + ATA_LOG_DEVSLP_VALID_MASK = 128, + ATA_LOG_NCQ_PRIO_OFFSET = 9, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, + ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, + ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, + ATA_LOG_NCQ_SEND_RECV_SIZE = 20, + ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, + ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, + ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, + ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, + ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, + ATA_LOG_NCQ_NON_DATA_SIZE = 64, + ATA_CMD_READ_LONG = 34, + ATA_CMD_READ_LONG_ONCE = 35, + ATA_CMD_WRITE_LONG = 50, + ATA_CMD_WRITE_LONG_ONCE = 51, + SETFEATURES_XFER = 3, + XFER_UDMA_7 = 71, + XFER_UDMA_6 = 70, + XFER_UDMA_5 = 69, + XFER_UDMA_4 = 68, + XFER_UDMA_3 = 67, + XFER_UDMA_2 = 66, + XFER_UDMA_1 = 65, + XFER_UDMA_0 = 64, + XFER_MW_DMA_4 = 36, + XFER_MW_DMA_3 = 35, + XFER_MW_DMA_2 = 34, + XFER_MW_DMA_1 = 33, + XFER_MW_DMA_0 = 32, + XFER_SW_DMA_2 = 18, + XFER_SW_DMA_1 = 17, + XFER_SW_DMA_0 = 16, + XFER_PIO_6 = 14, + XFER_PIO_5 = 13, + XFER_PIO_4 = 12, + XFER_PIO_3 = 11, + XFER_PIO_2 = 10, + XFER_PIO_1 = 9, + XFER_PIO_0 = 8, + XFER_PIO_SLOW = 0, + SETFEATURES_WC_ON = 2, + SETFEATURES_WC_OFF = 130, + SETFEATURES_RA_ON = 170, + SETFEATURES_RA_OFF = 85, + SETFEATURES_AAM_ON = 66, + SETFEATURES_AAM_OFF = 194, + SETFEATURES_SPINUP = 7, + SETFEATURES_SPINUP_TIMEOUT = 30000, + SETFEATURES_SATA_ENABLE = 16, + SETFEATURES_SATA_DISABLE = 144, + SETFEATURES_CDL = 13, + SATA_FPDMA_OFFSET = 1, + SATA_FPDMA_AA = 2, + SATA_DIPM = 3, + SATA_FPDMA_IN_ORDER = 4, + SATA_AN = 5, + SATA_SSP = 6, + SATA_DEVSLP = 9, + SETFEATURE_SENSE_DATA = 195, + SETFEATURE_SENSE_DATA_SUCC_NCQ = 196, + ATA_SET_MAX_ADDR = 0, + ATA_SET_MAX_PASSWD = 1, + ATA_SET_MAX_LOCK = 2, + ATA_SET_MAX_UNLOCK = 3, + ATA_SET_MAX_FREEZE_LOCK = 4, + ATA_SET_MAX_PASSWD_DMA = 5, + ATA_SET_MAX_UNLOCK_DMA = 6, + ATA_DCO_RESTORE = 192, + ATA_DCO_FREEZE_LOCK = 193, + ATA_DCO_IDENTIFY = 194, + ATA_DCO_SET = 195, + ATA_SMART_ENABLE = 216, + ATA_SMART_READ_VALUES = 208, + ATA_SMART_READ_THRESHOLDS = 209, + ATA_DSM_TRIM = 1, + ATA_SMART_LBAM_PASS = 79, + ATA_SMART_LBAH_PASS = 194, + ATAPI_PKT_DMA = 1, + ATAPI_DMADIR = 4, + ATAPI_CDB_LEN = 16, + SATA_PMP_MAX_PORTS = 15, + SATA_PMP_CTRL_PORT = 15, + SATA_PMP_GSCR_DWORDS = 128, + SATA_PMP_GSCR_PROD_ID = 0, + SATA_PMP_GSCR_REV = 1, + SATA_PMP_GSCR_PORT_INFO = 2, + SATA_PMP_GSCR_ERROR = 32, + SATA_PMP_GSCR_ERROR_EN = 33, + SATA_PMP_GSCR_FEAT = 64, + SATA_PMP_GSCR_FEAT_EN = 96, + SATA_PMP_PSCR_STATUS = 0, + SATA_PMP_PSCR_ERROR = 1, + SATA_PMP_PSCR_CONTROL = 2, + SATA_PMP_FEAT_BIST = 1, + SATA_PMP_FEAT_PMREQ = 2, + SATA_PMP_FEAT_DYNSSC = 4, + SATA_PMP_FEAT_NOTIFY = 8, + ATA_CBL_NONE = 0, + ATA_CBL_PATA40 = 1, + ATA_CBL_PATA80 = 2, + ATA_CBL_PATA40_SHORT = 3, + ATA_CBL_PATA_UNK = 4, + ATA_CBL_PATA_IGN = 5, + ATA_CBL_SATA = 6, + SCR_STATUS = 0, + SCR_ERROR = 1, + SCR_CONTROL = 2, + SCR_ACTIVE = 3, + SCR_NOTIFICATION = 4, + SERR_DATA_RECOVERED = 1, + SERR_COMM_RECOVERED = 2, + SERR_DATA = 256, + SERR_PERSISTENT = 512, + SERR_PROTOCOL = 1024, + SERR_INTERNAL = 2048, + SERR_PHYRDY_CHG = 65536, + SERR_PHY_INT_ERR = 131072, + SERR_COMM_WAKE = 262144, + SERR_10B_8B_ERR = 524288, + SERR_DISPARITY = 1048576, + SERR_CRC = 2097152, + SERR_HANDSHAKE = 4194304, + SERR_LINK_SEQ_ERR = 8388608, + SERR_TRANS_ST_ERROR = 16777216, + SERR_UNRECOG_FIS = 33554432, + SERR_DEV_XCHG = 67108864, }; -struct nand_timings { - unsigned int mode; - long: 32; - union { - struct nand_sdr_timings sdr; - struct nand_nvddr_timings nvddr; - }; +enum { + LIBATA_MAX_PRD = 128, + LIBATA_DUMB_MAX_PRD = 64, + ATA_DEF_QUEUE = 1, + ATA_MAX_QUEUE = 32, + ATA_TAG_INTERNAL = 32, + ATA_SHORT_PAUSE = 16, + ATAPI_MAX_DRAIN = 16384, + ATA_ALL_DEVICES = 3, + ATA_SHT_EMULATED = 1, + ATA_SHT_THIS_ID = -1, + ATA_TFLAG_LBA48 = 1, + ATA_TFLAG_ISADDR = 2, + ATA_TFLAG_DEVICE = 4, + ATA_TFLAG_WRITE = 8, + ATA_TFLAG_LBA = 16, + ATA_TFLAG_FUA = 32, + ATA_TFLAG_POLLING = 64, + ATA_DFLAG_LBA = 1, + ATA_DFLAG_LBA48 = 2, + ATA_DFLAG_CDB_INTR = 4, + ATA_DFLAG_NCQ = 8, + ATA_DFLAG_FLUSH_EXT = 16, + ATA_DFLAG_ACPI_PENDING = 32, + ATA_DFLAG_ACPI_FAILED = 64, + ATA_DFLAG_AN = 128, + ATA_DFLAG_TRUSTED = 256, + ATA_DFLAG_FUA = 512, + ATA_DFLAG_DMADIR = 1024, + ATA_DFLAG_NCQ_SEND_RECV = 2048, + ATA_DFLAG_NCQ_PRIO = 4096, + ATA_DFLAG_CDL = 8192, + ATA_DFLAG_CFG_MASK = 16383, + ATA_DFLAG_PIO = 16384, + ATA_DFLAG_NCQ_OFF = 32768, + ATA_DFLAG_SLEEPING = 65536, + ATA_DFLAG_DUBIOUS_XFER = 131072, + ATA_DFLAG_NO_UNLOAD = 262144, + ATA_DFLAG_UNLOCK_HPA = 524288, + ATA_DFLAG_INIT_MASK = 1048575, + ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576, + ATA_DFLAG_CDL_ENABLED = 2097152, + ATA_DFLAG_DETACH = 16777216, + ATA_DFLAG_DETACHED = 33554432, + ATA_DFLAG_DA = 67108864, + ATA_DFLAG_DEVSLP = 134217728, + ATA_DFLAG_ACPI_DISABLED = 268435456, + ATA_DFLAG_D_SENSE = 536870912, + ATA_DFLAG_ZAC = 1073741824, + ATA_DFLAG_FEATURES_MASK = 201341696, + ATA_DEV_UNKNOWN = 0, + ATA_DEV_ATA = 1, + ATA_DEV_ATA_UNSUP = 2, + ATA_DEV_ATAPI = 3, + ATA_DEV_ATAPI_UNSUP = 4, + ATA_DEV_PMP = 5, + ATA_DEV_PMP_UNSUP = 6, + ATA_DEV_SEMB = 7, + ATA_DEV_SEMB_UNSUP = 8, + ATA_DEV_ZAC = 9, + ATA_DEV_ZAC_UNSUP = 10, + ATA_DEV_NONE = 11, + ATA_LFLAG_NO_HRST = 2, + ATA_LFLAG_NO_SRST = 4, + ATA_LFLAG_ASSUME_ATA = 8, + ATA_LFLAG_ASSUME_SEMB = 16, + ATA_LFLAG_ASSUME_CLASS = 24, + ATA_LFLAG_NO_RETRY = 32, + ATA_LFLAG_DISABLED = 64, + ATA_LFLAG_SW_ACTIVITY = 128, + ATA_LFLAG_NO_LPM = 256, + ATA_LFLAG_RST_ONCE = 512, + ATA_LFLAG_CHANGED = 1024, + ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, + ATA_FLAG_SLAVE_POSS = 1, + ATA_FLAG_SATA = 2, + ATA_FLAG_NO_LPM = 4, + ATA_FLAG_NO_LOG_PAGE = 32, + ATA_FLAG_NO_ATAPI = 64, + ATA_FLAG_PIO_DMA = 128, + ATA_FLAG_PIO_LBA48 = 256, + ATA_FLAG_PIO_POLLING = 512, + ATA_FLAG_NCQ = 1024, + ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, + ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, + ATA_FLAG_DEBUGMSG = 8192, + ATA_FLAG_FPDMA_AA = 16384, + ATA_FLAG_IGN_SIMPLEX = 32768, + ATA_FLAG_NO_IORDY = 65536, + ATA_FLAG_ACPI_SATA = 131072, + ATA_FLAG_AN = 262144, + ATA_FLAG_PMP = 524288, + ATA_FLAG_FPDMA_AUX = 1048576, + ATA_FLAG_EM = 2097152, + ATA_FLAG_SW_ACTIVITY = 4194304, + ATA_FLAG_NO_DIPM = 8388608, + ATA_FLAG_SAS_HOST = 16777216, + ATA_PFLAG_EH_PENDING = 1, + ATA_PFLAG_EH_IN_PROGRESS = 2, + ATA_PFLAG_FROZEN = 4, + ATA_PFLAG_RECOVERED = 8, + ATA_PFLAG_LOADING = 16, + ATA_PFLAG_SCSI_HOTPLUG = 64, + ATA_PFLAG_INITIALIZING = 128, + ATA_PFLAG_RESETTING = 256, + ATA_PFLAG_UNLOADING = 512, + ATA_PFLAG_UNLOADED = 1024, + ATA_PFLAG_RESUMING = 65536, + ATA_PFLAG_SUSPENDED = 131072, + ATA_PFLAG_PM_PENDING = 262144, + ATA_PFLAG_INIT_GTM_VALID = 524288, + ATA_PFLAG_PIO32 = 1048576, + ATA_PFLAG_PIO32CHANGE = 2097152, + ATA_PFLAG_EXTERNAL = 4194304, + ATA_QCFLAG_ACTIVE = 1, + ATA_QCFLAG_DMAMAP = 2, + ATA_QCFLAG_RTF_FILLED = 4, + ATA_QCFLAG_IO = 8, + ATA_QCFLAG_RESULT_TF = 16, + ATA_QCFLAG_CLEAR_EXCL = 32, + ATA_QCFLAG_QUIET = 64, + ATA_QCFLAG_RETRY = 128, + ATA_QCFLAG_HAS_CDL = 256, + ATA_QCFLAG_EH = 65536, + ATA_QCFLAG_SENSE_VALID = 131072, + ATA_QCFLAG_EH_SCHEDULED = 262144, + ATA_QCFLAG_EH_SUCCESS_CMD = 524288, + ATA_HOST_SIMPLEX = 1, + ATA_HOST_STARTED = 2, + ATA_HOST_PARALLEL_SCAN = 4, + ATA_HOST_IGNORE_ATA = 8, + ATA_HOST_NO_PART = 16, + ATA_HOST_NO_SSC = 32, + ATA_HOST_NO_DEVSLP = 64, + ATA_TMOUT_BOOT = 30000, + ATA_TMOUT_BOOT_QUICK = 7000, + ATA_TMOUT_INTERNAL_QUICK = 5000, + ATA_TMOUT_MAX_PARK = 30000, + ATA_TMOUT_FF_WAIT_LONG = 2000, + ATA_TMOUT_FF_WAIT = 800, + ATA_WAIT_AFTER_RESET = 150, + ATA_TMOUT_PMP_SRST_WAIT = 10000, + ATA_TMOUT_SPURIOUS_PHY = 10000, + BUS_UNKNOWN = 0, + BUS_DMA = 1, + BUS_IDLE = 2, + BUS_NOINTR = 3, + BUS_NODATA = 4, + BUS_TIMER = 5, + BUS_PIO = 6, + BUS_EDD = 7, + BUS_IDENTIFY = 8, + BUS_PACKET = 9, + PORT_UNKNOWN = 0, + PORT_ENABLED = 1, + PORT_DISABLED = 2, + ATA_NR_PIO_MODES = 7, + ATA_NR_MWDMA_MODES = 5, + ATA_NR_UDMA_MODES = 8, + ATA_SHIFT_PIO = 0, + ATA_SHIFT_MWDMA = 7, + ATA_SHIFT_UDMA = 12, + ATA_SHIFT_PRIO = 6, + ATA_PRIO_HIGH = 2, + ATA_DMA_PAD_SZ = 4, + ATA_ERING_SIZE = 32, + ATA_DEFER_LINK = 1, + ATA_DEFER_PORT = 2, + ATA_EH_DESC_LEN = 80, + ATA_EH_REVALIDATE = 1, + ATA_EH_SOFTRESET = 2, + ATA_EH_HARDRESET = 4, + ATA_EH_RESET = 6, + ATA_EH_ENABLE_LINK = 8, + ATA_EH_PARK = 32, + ATA_EH_GET_SUCCESS_SENSE = 64, + ATA_EH_SET_ACTIVE = 128, + ATA_EH_PERDEV_MASK = 225, + ATA_EH_ALL_ACTIONS = 15, + ATA_EHI_HOTPLUGGED = 1, + ATA_EHI_NO_AUTOPSY = 4, + ATA_EHI_QUIET = 8, + ATA_EHI_NO_RECOVERY = 16, + ATA_EHI_DID_SOFTRESET = 65536, + ATA_EHI_DID_HARDRESET = 131072, + ATA_EHI_PRINTINFO = 262144, + ATA_EHI_SETMODE = 524288, + ATA_EHI_POST_SETMODE = 1048576, + ATA_EHI_DID_RESET = 196608, + ATA_EHI_TO_SLAVE_MASK = 12, + ATA_EH_MAX_TRIES = 5, + ATA_LINK_RESUME_TRIES = 5, + ATA_EH_DEV_TRIES = 3, + ATA_EH_PMP_TRIES = 5, + ATA_EH_PMP_LINK_TRIES = 3, + SATA_PMP_RW_TIMEOUT = 3000, + ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 8, + ATA_HORKAGE_DIAGNOSTIC = 1, + ATA_HORKAGE_NODMA = 2, + ATA_HORKAGE_NONCQ = 4, + ATA_HORKAGE_MAX_SEC_128 = 8, + ATA_HORKAGE_BROKEN_HPA = 16, + ATA_HORKAGE_DISABLE = 32, + ATA_HORKAGE_HPA_SIZE = 64, + ATA_HORKAGE_IVB = 256, + ATA_HORKAGE_STUCK_ERR = 512, + ATA_HORKAGE_BRIDGE_OK = 1024, + ATA_HORKAGE_ATAPI_MOD16_DMA = 2048, + ATA_HORKAGE_FIRMWARE_WARN = 4096, + ATA_HORKAGE_1_5_GBPS = 8192, + ATA_HORKAGE_NOSETXFER = 16384, + ATA_HORKAGE_BROKEN_FPDMA_AA = 32768, + ATA_HORKAGE_DUMP_ID = 65536, + ATA_HORKAGE_MAX_SEC_LBA48 = 131072, + ATA_HORKAGE_ATAPI_DMADIR = 262144, + ATA_HORKAGE_NO_NCQ_TRIM = 524288, + ATA_HORKAGE_NOLPM = 1048576, + ATA_HORKAGE_WD_BROKEN_LPM = 2097152, + ATA_HORKAGE_ZERO_AFTER_TRIM = 4194304, + ATA_HORKAGE_NO_DMA_LOG = 8388608, + ATA_HORKAGE_NOTRIM = 16777216, + ATA_HORKAGE_MAX_SEC_1024 = 33554432, + ATA_HORKAGE_MAX_TRIM_128M = 67108864, + ATA_HORKAGE_NO_NCQ_ON_ATI = 134217728, + ATA_HORKAGE_NO_ID_DEV_LOG = 268435456, + ATA_HORKAGE_NO_LOG_DIR = 536870912, + ATA_HORKAGE_NO_FUA = 1073741824, + ATA_DMA_MASK_ATA = 1, + ATA_DMA_MASK_ATAPI = 2, + ATA_DMA_MASK_CFA = 4, + ATAPI_READ = 0, + ATAPI_WRITE = 1, + ATAPI_READ_CD = 2, + ATAPI_PASS_THRU = 3, + ATAPI_MISC = 4, + ATA_TIMING_SETUP = 1, + ATA_TIMING_ACT8B = 2, + ATA_TIMING_REC8B = 4, + ATA_TIMING_CYC8B = 8, + ATA_TIMING_8BIT = 14, + ATA_TIMING_ACTIVE = 16, + ATA_TIMING_RECOVER = 32, + ATA_TIMING_DMACK_HOLD = 64, + ATA_TIMING_CYCLE = 128, + ATA_TIMING_UDMA = 256, + ATA_TIMING_ALL = 511, + ATA_ACPI_FILTER_SETXFER = 1, + ATA_ACPI_FILTER_LOCK = 2, + ATA_ACPI_FILTER_DIPM = 4, + ATA_ACPI_FILTER_FPDMA_OFFSET = 8, + ATA_ACPI_FILTER_FPDMA_AA = 16, + ATA_ACPI_FILTER_DEFAULT = 7, }; -struct nand_interface_config { - enum nand_interface_type type; - long: 32; - struct nand_timings timings; +enum ata_link_iter_mode { + ATA_LITER_EDGE = 0, + ATA_LITER_HOST_FIRST = 1, + ATA_LITER_PMP_FIRST = 2, }; -struct nand_bbt_descr { - int options; - int pages[8]; - int offs; - int veroffs; - uint8_t version[8]; - int len; - int maxblocks; - int reserved_block_code; - uint8_t *pattern; +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 nand_secure_region { - u64 offset; - u64 size; +enum ata_dev_iter_mode { + ATA_DITER_ENABLED = 0, + ATA_DITER_ENABLED_REVERSE = 1, + ATA_DITER_ALL = 2, + ATA_DITER_ALL_REVERSE = 3, }; -struct nand_op_instr; - -struct nand_operation { - unsigned int cs; - const struct nand_op_instr *instrs; - unsigned int ninstrs; +enum nvmem_type { + NVMEM_TYPE_UNKNOWN = 0, + NVMEM_TYPE_EEPROM = 1, + NVMEM_TYPE_OTP = 2, + NVMEM_TYPE_BATTERY_BACKED = 3, + NVMEM_TYPE_FRAM = 4, }; -struct nand_op_cmd_instr { - u8 opcode; +enum { + MTD_OPS_PLACE_OOB = 0, + MTD_OPS_AUTO_OOB = 1, + MTD_OPS_RAW = 2, }; -struct nand_op_addr_instr { - unsigned int naddrs; - const u8 *addrs; +struct mtd_notifier { + void (*add)(struct mtd_info *); + void (*remove)(struct mtd_info *); + struct list_head list; }; -struct nand_op_data_instr { - unsigned int len; - union { - void *in; - const void *out; - } buf; - bool force_8bit; -}; +typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t); -struct nand_op_waitrdy_instr { - unsigned int timeout_ms; +typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t); + +struct nvmem_cell_info; + +struct nvmem_keepout; + +struct nvmem_layout; + +struct nvmem_config { + struct device *dev; + const char *name; + int id; + struct module *owner; + const struct nvmem_cell_info *cells; + int ncells; + bool add_legacy_fixed_of_cells; + const struct nvmem_keepout *keepout; + unsigned int nkeepout; + enum nvmem_type type; + bool read_only; + bool root_only; + bool ignore_wp; + struct nvmem_layout *layout; + struct device_node *of_node; + nvmem_reg_read_t reg_read; + nvmem_reg_write_t reg_write; + int size; + int word_size; + int stride; + void *priv; + bool compat; + struct device *base_dev; }; -struct nand_op_instr { - enum nand_op_instr_type type; - union { - struct nand_op_cmd_instr cmd; - struct nand_op_addr_instr addr; - struct nand_op_data_instr data; - struct nand_op_waitrdy_instr waitrdy; - } ctx; - unsigned int delay_ns; +typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); + +struct nvmem_cell_info { + const char *name; + unsigned int offset; + size_t raw_len; + unsigned int bytes; + unsigned int bit_offset; + unsigned int nbits; + struct device_node *np; + nvmem_cell_post_process_t read_post_process; + void *priv; }; -struct denali_chip_sel { - int bank; - u32 hwhr2_and_we_2_re; - u32 tcwaw_and_addr_2_data; - u32 re_2_we; - u32 acc_clks; - u32 rdwr_en_lo_cnt; - u32 rdwr_en_hi_cnt; - u32 cs_setup_cnt; - u32 re_2_re; +struct nvmem_keepout { + unsigned int start; + unsigned int end; + unsigned char value; }; -struct denali_chip { - struct nand_chip chip; +struct nvmem_layout { + const char *name; + const struct of_device_id *of_match_table; + int (*add_cells)(struct device *, struct nvmem_device *, struct nvmem_layout *); + void (*fixup_cell_info)(struct nvmem_device *, struct nvmem_layout *, struct nvmem_cell_info *); + struct module *owner; struct list_head node; - unsigned int nsels; - struct denali_chip_sel sels[0]; - long: 32; }; -struct denali_dt { - struct denali_controller controller; - struct clk *clk; - struct clk *clk_x; - struct clk *clk_ecc; - struct reset_control *rst; - struct reset_control *rst_reg; +struct hynix_read_retry_otp { + int nregs; + const u8 *regs; + const u8 *values; + int page; + int size; }; -struct omap2_mcspi_platform_config { - unsigned short num_cs; - unsigned int regs_offset; - unsigned int pin_dir: 1; - size_t max_xfer_len; +struct hynix_read_retry; + +struct hynix_nand { + const struct hynix_read_retry *read_retry; }; -struct omap2_mcspi_cs { - void *base; - unsigned long phys; - int word_len; - u16 mode; - struct list_head node; - u32 chconf0; - u32 chctrl0; +struct hynix_read_retry { + int nregs; + const u8 *regs; + u8 values[0]; }; -struct omap2_mcspi_regs { - u32 modulctrl; - u32 wakeupenable; - struct list_head cs; +enum { + MSPI_DONE = 1, + BSPI_DONE = 2, + BSPI_ERR = 4, + MSPI_BSPI_DONE = 7, }; -struct omap2_mcspi_dma; +struct bcm_qspi_soc_intc { + void (*bcm_qspi_int_ack)(struct bcm_qspi_soc_intc *, int); + void (*bcm_qspi_int_set)(struct bcm_qspi_soc_intc *, int, bool); + u32 (*bcm_qspi_get_int_status)(struct bcm_qspi_soc_intc *); +}; -struct omap2_mcspi { - struct completion txdone; +struct bcm_iproc_intc { + struct bcm_qspi_soc_intc soc_intc; + struct platform_device *pdev; + void *int_reg; + void *int_status_reg; + spinlock_t soclock; + bool big_endian; +}; + +struct spi_bitbang { + struct mutex lock; + u8 busy; + u8 use_dma; + u16 flags; struct spi_controller *master; - void *base; - unsigned long phys; - struct omap2_mcspi_dma *dma_channels; - struct device *dev; - struct omap2_mcspi_regs ctx; - int fifo_depth; - bool slave_aborted; - unsigned int pin_dir: 1; - size_t max_xfer_len; + int (*setup_transfer)(struct spi_device *, struct spi_transfer *); + void (*chipselect)(struct spi_device *, int); + int (*txrx_bufs)(struct spi_device *, struct spi_transfer *); + u32 (*txrx_word[4])(struct spi_device *, unsigned int, u32, u8, unsigned int); + int (*set_line_direction)(struct spi_device *, bool); }; -struct omap2_mcspi_dma { - struct dma_chan *dma_tx; - struct dma_chan *dma_rx; - struct completion dma_tx_completion; - struct completion dma_rx_completion; - char dma_rx_ch_name[14]; - char dma_tx_ch_name[14]; +struct xilinx_spi { + struct spi_bitbang bitbang; + struct completion done; + void *regs; + int irq; + bool force_irq; + u8 *rx_ptr; + const u8 *tx_ptr; + u8 bytes_per_word; + int buffer_size; + u32 cs_inactive; + unsigned int (*read_fn)(void *); + void (*write_fn)(u32, void *); }; -struct omap2_mcspi_device_config { - unsigned int turbo_mode: 1; - unsigned int cs_per_word: 1; +struct spi_board_info { + char modalias[32]; + const void *platform_data; + const struct software_node *swnode; + void *controller_data; + int irq; + u32 max_speed_hz; + u16 bus_num; + u16 chip_select; + u32 mode; }; -struct sun4i_mdio_data { - void *membase; - struct regulator *regulator; +struct xspi_platform_data { + u16 num_chipselect; + u8 bits_per_word; + struct spi_board_info *devices; + u8 num_devices; + bool force_irq; }; -struct macb_usrio_config; +typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); -struct macb_config { - u32 caps; - unsigned int dma_burst_length; - int (*clk_init)(struct platform_device *, struct clk **, struct clk **, struct clk **, struct clk **, struct clk **); - int (*init)(struct platform_device *); - unsigned int max_tx_length; - int jumbo_max_len; - const struct macb_usrio_config *usrio; +struct dev_ext_attribute { + struct device_attribute attr; + void *var; }; -struct macb_usrio_config { - u32 mii; - u32 rmii; - u32 rgmii; - u32 refclk; - u32 hdfctlen; +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 gem_statistic { - char stat_string[32]; - int offset; - u32 stat_bits; +struct mdio_driver { + struct mdio_driver_common mdiodrv; + int (*probe)(struct mdio_device *); + void (*remove)(struct mdio_device *); + void (*shutdown)(struct mdio_device *); }; -struct macb; +struct mdio_board_info { + const char *bus_id; + char modalias[32]; + int mdio_addr; + const void *platform_data; +}; -struct macb_ptp_info { - void (*ptp_init)(struct net_device *); - void (*ptp_remove)(struct net_device *); - s32 (*get_ptp_max_adj)(); - unsigned int (*get_tsu_rate)(struct macb *); - int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *); - int (*get_hwtst)(struct net_device *, struct ifreq *); - int (*set_hwtst)(struct net_device *, struct ifreq *, int); +struct trace_event_data_offsets_mdio_access {}; + +struct mdio_bus_stat_attr { + int addr; + unsigned int field_offset; }; -struct macb_stats { - u32 rx_pause_frames; - u32 tx_ok; - u32 tx_single_cols; - u32 tx_multiple_cols; - u32 rx_ok; - u32 rx_fcs_errors; - u32 rx_align_errors; - u32 tx_deferred; - u32 tx_late_cols; - u32 tx_excessive_cols; - u32 tx_underruns; - u32 tx_carrier_errors; - u32 rx_resource_errors; - u32 rx_overruns; - u32 rx_symbol_errors; - u32 rx_oversize_pkts; - u32 rx_jabbers; - u32 rx_undersize_pkts; - u32 sqe_test_errors; - u32 rx_length_mismatch; - u32 tx_pause_frames; +enum can_state { + CAN_STATE_ERROR_ACTIVE = 0, + CAN_STATE_ERROR_WARNING = 1, + CAN_STATE_ERROR_PASSIVE = 2, + CAN_STATE_BUS_OFF = 3, + CAN_STATE_STOPPED = 4, + CAN_STATE_SLEEPING = 5, + CAN_STATE_MAX = 6, }; -struct gem_stats { - u32 tx_octets_31_0; - u32 tx_octets_47_32; - u32 tx_frames; - u32 tx_broadcast_frames; - u32 tx_multicast_frames; - u32 tx_pause_frames; - u32 tx_64_byte_frames; - u32 tx_65_127_byte_frames; - u32 tx_128_255_byte_frames; - u32 tx_256_511_byte_frames; - u32 tx_512_1023_byte_frames; - u32 tx_1024_1518_byte_frames; - u32 tx_greater_than_1518_byte_frames; - u32 tx_underrun; - u32 tx_single_collision_frames; - u32 tx_multiple_collision_frames; - u32 tx_excessive_collisions; - u32 tx_late_collisions; - u32 tx_deferred_frames; - u32 tx_carrier_sense_errors; - u32 rx_octets_31_0; - u32 rx_octets_47_32; - u32 rx_frames; - u32 rx_broadcast_frames; - u32 rx_multicast_frames; - u32 rx_pause_frames; - u32 rx_64_byte_frames; - u32 rx_65_127_byte_frames; - u32 rx_128_255_byte_frames; - u32 rx_256_511_byte_frames; - u32 rx_512_1023_byte_frames; - u32 rx_1024_1518_byte_frames; - u32 rx_greater_than_1518_byte_frames; - u32 rx_undersized_frames; - u32 rx_oversize_frames; - u32 rx_jabbers; - u32 rx_frame_check_sequence_errors; - u32 rx_length_field_frame_errors; - u32 rx_symbol_errors; - u32 rx_alignment_errors; - u32 rx_resource_errors; - u32 rx_overruns; - u32 rx_ip_header_checksum_errors; - u32 rx_tcp_checksum_errors; - u32 rx_udp_checksum_errors; +enum can_mode { + CAN_MODE_STOP = 0, + CAN_MODE_START = 1, + CAN_MODE_SLEEP = 2, }; -struct queue_stats { - union { - unsigned long first; - unsigned long rx_packets; - }; - unsigned long rx_bytes; - unsigned long rx_dropped; - unsigned long tx_packets; - unsigned long tx_bytes; - unsigned long tx_dropped; +struct can_bittiming_const { + char name[16]; + __u32 tseg1_min; + __u32 tseg1_max; + __u32 tseg2_min; + __u32 tseg2_max; + __u32 sjw_max; + __u32 brp_min; + __u32 brp_max; + __u32 brp_inc; }; -struct macb_dma_desc; +struct can_bittiming { + __u32 bitrate; + __u32 sample_point; + __u32 tq; + __u32 prop_seg; + __u32 phase_seg1; + __u32 phase_seg2; + __u32 sjw; + __u32 brp; +}; -struct macb_tx_skb; +struct can_device_stats { + __u32 bus_error; + __u32 error_warning; + __u32 error_passive; + __u32 bus_off; + __u32 arbitration_lost; + __u32 restarts; +}; -struct macb_queue { - struct macb *bp; - int irq; - unsigned int ISR; - unsigned int IER; - unsigned int IDR; - unsigned int IMR; - unsigned int TBQP; - unsigned int TBQPH; - unsigned int RBQS; - unsigned int RBQP; - unsigned int RBQPH; - spinlock_t tx_ptr_lock; - unsigned int tx_head; - unsigned int tx_tail; - struct macb_dma_desc *tx_ring; - struct macb_tx_skb *tx_skb; - dma_addr_t tx_ring_dma; - struct work_struct tx_error_task; - bool txubr_pending; - struct napi_struct napi_tx; - dma_addr_t rx_ring_dma; - dma_addr_t rx_buffers_dma; - unsigned int rx_tail; - unsigned int rx_prepared_head; - struct macb_dma_desc *rx_ring; - struct sk_buff **rx_skbuff; - void *rx_buffers; - long: 32; - struct napi_struct napi_rx; - struct queue_stats stats; +struct can_tdc { + u32 tdcv; + u32 tdco; + u32 tdcf; }; -struct macb_or_gem_ops { - int (*mog_alloc_rx_buffers)(struct macb *); - void (*mog_free_rx_buffers)(struct macb *); - void (*mog_init_rings)(struct macb *); - int (*mog_rx)(struct macb_queue *, struct napi_struct *, int); +struct can_clock { + __u32 freq; }; -struct macb_tx_skb { - struct sk_buff *skb; - dma_addr_t mapping; - size_t size; - bool mapped_as_page; +struct can_tdc_const; + +struct can_berr_counter; + +struct can_priv { + struct net_device *dev; + struct can_device_stats can_stats; + const struct can_bittiming_const *bittiming_const; + const struct can_bittiming_const *data_bittiming_const; + struct can_bittiming bittiming; + struct can_bittiming data_bittiming; + const struct can_tdc_const *tdc_const; + struct can_tdc tdc; + unsigned int bitrate_const_cnt; + const u32 *bitrate_const; + const u32 *data_bitrate_const; + unsigned int data_bitrate_const_cnt; + u32 bitrate_max; + struct can_clock clock; + unsigned int termination_const_cnt; + const u16 *termination_const; + u16 termination; + struct gpio_desc *termination_gpio; + u16 termination_gpio_ohms[2]; + unsigned int echo_skb_max; + struct sk_buff **echo_skb; + enum can_state state; + u32 ctrlmode; + u32 ctrlmode_supported; + int restart_ms; + struct delayed_work restart_work; + int (*do_set_bittiming)(struct net_device *); + int (*do_set_data_bittiming)(struct net_device *); + int (*do_set_mode)(struct net_device *, enum can_mode); + int (*do_set_termination)(struct net_device *, u16); + int (*do_get_state)(const struct net_device *, enum can_state *); + int (*do_get_berr_counter)(const struct net_device *, struct can_berr_counter *); + int (*do_get_auto_tdcv)(const struct net_device *, u32 *); }; -struct tsu_incr { - u32 sub_ns; - u32 ns; +struct can_tdc_const { + u32 tdcv_min; + u32 tdcv_max; + u32 tdco_min; + u32 tdco_max; + u32 tdcf_min; + u32 tdcf_max; }; -struct ethtool_rx_fs_list { - struct list_head list; - unsigned int count; +struct can_berr_counter { + __u16 txerr; + __u16 rxerr; }; -struct macb_pm_data { - u32 scrt2; - u32 usrio; +enum gfar_errata { + GFAR_ERRATA_74 = 1, + GFAR_ERRATA_76 = 2, + GFAR_ERRATA_A002 = 4, + GFAR_ERRATA_12 = 8, }; -struct macb { - void *regs; - bool native_io; - u32 (*macb_reg_readl)(struct macb *, int); - void (*macb_reg_writel)(struct macb *, int, u32); - size_t rx_buffer_size; - unsigned int rx_ring_size; - unsigned int tx_ring_size; - unsigned int num_queues; - unsigned int queue_mask; +enum gfar_dev_state { + GFAR_DOWN = 1, + GFAR_RESETTING = 2, +}; + +enum { + SQ_SG_MODE = 0, + MQ_MG_MODE = 1, +}; + +enum gfar_irqinfo_id { + GFAR_TX = 0, + GFAR_RX = 1, + GFAR_ER = 2, + GFAR_NUM_IRQS = 3, +}; + +struct gfar; + +struct gfar_priv_tx_q; + +struct gfar_priv_rx_q; + +struct gfar_private; + +struct gfar_irqinfo; + +struct gfar_priv_grp { + spinlock_t grplock; long: 32; - struct macb_queue queues[8]; + struct napi_struct napi_rx; + struct napi_struct napi_tx; + struct gfar *regs; + struct gfar_priv_tx_q *tx_queue; + struct gfar_priv_rx_q *rx_queue; + unsigned int tstat; + unsigned int rstat; + struct gfar_private *priv; + unsigned long num_tx_queues; + unsigned long tx_bit_map; + unsigned long num_rx_queues; + unsigned long rx_bit_map; + struct gfar_irqinfo *irqinfo[3]; + long: 32; +}; + +struct gfar_extra_stats { + atomic64_t rx_alloc_err; + atomic64_t rx_large; + atomic64_t rx_short; + atomic64_t rx_nonoctet; + atomic64_t rx_crcerr; + atomic64_t rx_overrun; + atomic64_t rx_bsy; + atomic64_t rx_babr; + atomic64_t rx_trunc; + atomic64_t eberr; + atomic64_t tx_babt; + atomic64_t tx_underrun; + atomic64_t tx_timeout; +}; + +struct rmon_overflow { spinlock_t lock; - struct platform_device *pdev; - struct clk *pclk; - struct clk *hclk; - struct clk *tx_clk; - struct clk *rx_clk; - struct clk *tsu_clk; - struct net_device *dev; - union { - struct macb_stats macb; - struct gem_stats gem; - } hw_stats; - struct macb_or_gem_ops macbgem_ops; + u32 imask; + u64 rdrp; +}; + +struct ethtool_rx_list { + struct list_head list; + unsigned int count; +}; + +struct gfar_private { + struct device *dev; + struct net_device *ndev; + enum gfar_errata errata; + u16 uses_rxfcb; + u16 padding; + u32 device_flags; + int hwts_rx_en; + int hwts_tx_en; + struct gfar_priv_tx_q *tx_queue[8]; + struct gfar_priv_rx_q *rx_queue[8]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct gfar_priv_grp gfargrp[2]; + unsigned long state; + unsigned short mode; + unsigned int num_tx_queues; + unsigned int num_rx_queues; + unsigned int num_grps; + int tx_actual_en; + struct gfar_extra_stats extra_stats; + struct rmon_overflow rmon_overflow; + phy_interface_t interface; + struct device_node *phy_node; + struct device_node *tbi_node; struct mii_bus *mii_bus; - struct phylink *phylink; - struct phylink_config phylink_config; - struct phylink_pcs phylink_usx_pcs; - struct phylink_pcs phylink_sgmii_pcs; - u32 caps; - unsigned int dma_burst_length; - phy_interface_t phy_interface; - struct macb_tx_skb rm9200_txq[2]; - unsigned int max_tx_length; + int oldspeed; + int oldduplex; + int oldlink; + uint32_t msg_enable; + struct work_struct reset_task; + struct platform_device *ofdev; + unsigned char extended_hash: 1; + unsigned char bd_stash_en: 1; + unsigned char rx_filer_enable: 1; + unsigned char prio_sched_en: 1; + unsigned char pause_aneg_en: 1; + unsigned char tx_pause_en: 1; + unsigned char rx_pause_en: 1; + unsigned int total_tx_ring_size; + unsigned int total_rx_ring_size; + u32 rqueue; + u32 tqueue; + unsigned int rx_stash_size; + unsigned int rx_stash_index; + u32 cur_filer_idx; + struct ethtool_rx_list rx_list; + struct mutex rx_queue_access; + u32 *hash_regs[16]; + int hash_width; + u16 wol_opts; + u16 wol_supported; + unsigned int ftp_rqfpr[256]; + unsigned int ftp_rqfcr[256]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; - u64 ethtool_stats[91]; - unsigned int rx_frm_len_mask; - unsigned int jumbo_max_len; - u32 wol; - u32 rx_watermark; - struct macb_ptp_info *ptp_info; - struct phy *sgmii_phy; - uint8_t hw_dma_cap; - spinlock_t tsu_clk_lock; - unsigned int tsu_rate; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_clock_info; - struct tsu_incr tsu_incr; - struct hwtstamp_config tstamp_config; - struct ethtool_rx_fs_list rx_fs_list; - spinlock_t rx_fs_lock; - unsigned int max_tuples; - struct tasklet_struct hresp_err_tasklet; - int rx_bd_rd_prefetch; - int tx_bd_rd_prefetch; - u32 rx_intr_mask; - struct macb_pm_data pm_data; - const struct macb_usrio_config *usrio; }; -struct macb_dma_desc { - u32 addr; - u32 ctrl; +struct tx_q_stats { + u64 tx_packets; + u64 tx_bytes; }; -struct sifive_fu540_macb_mgmt { - void *reg; - unsigned long rate; - struct clk_hw hw; -}; +struct txbd8; -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, +struct gfar_priv_tx_q { + spinlock_t txlock; + struct txbd8 *tx_bd_base; + struct txbd8 *cur_tx; + unsigned int num_txbdfree; + unsigned short skb_curtx; + unsigned short tx_ring_size; + long: 32; + struct tx_q_stats stats; + struct gfar_priv_grp *grp; + struct net_device *dev; + struct sk_buff **tx_skbuff; + struct txbd8 *dirty_tx; + unsigned short skb_dirtytx; + unsigned short qindex; + unsigned int txcoalescing; + unsigned long txic; + dma_addr_t tx_bd_dma_base; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum macb_bd_control { - TSTAMP_DISABLED = 0, - TSTAMP_FRAME_PTP_EVENT_ONLY = 1, - TSTAMP_ALL_PTP_FRAMES = 2, - TSTAMP_ALL_FRAMES = 3, +struct txbd8 { + union { + struct { + __be16 status; + __be16 length; + }; + __be32 lstatus; + }; + __be32 bufPtr; }; -enum netdev_queue_state_t { - __QUEUE_STATE_DRV_XOFF = 0, - __QUEUE_STATE_STACK_XOFF = 1, - __QUEUE_STATE_FROZEN = 2, +struct rmon_mib { + u32 tr64; + u32 tr127; + u32 tr255; + u32 tr511; + u32 tr1k; + u32 trmax; + u32 trmgv; + u32 rbyt; + u32 rpkt; + u32 rfcs; + u32 rmca; + u32 rbca; + u32 rxcf; + u32 rxpf; + u32 rxuo; + u32 raln; + u32 rflr; + u32 rcde; + u32 rcse; + u32 rund; + u32 rovr; + u32 rfrg; + u32 rjbr; + u32 rdrp; + u32 tbyt; + u32 tpkt; + u32 tmca; + u32 tbca; + u32 txpf; + u32 tdfr; + u32 tedf; + u32 tscl; + u32 tmcl; + u32 tlcl; + u32 txcl; + u32 tncl; + u8 res1[4]; + u32 tdrp; + u32 tjbr; + u32 tfcs; + u32 txcf; + u32 tovr; + u32 tund; + u32 tfrg; + u32 car1; + u32 car2; + u32 cam1; + u32 cam2; }; -enum gro_result { - GRO_MERGED = 0, - GRO_MERGED_FREE = 1, - GRO_HELD = 2, - GRO_NORMAL = 3, - GRO_CONSUMED = 4, +struct gfar { + u32 tsec_id; + u32 tsec_id2; + u8 res1[8]; + u32 ievent; + u32 imask; + u32 edis; + u32 emapg; + u32 ecntrl; + u32 minflr; + u32 ptv; + u32 dmactrl; + u32 tbipa; + u8 res2[28]; + u32 fifo_rx_pause; + u32 fifo_rx_pause_shutoff; + u32 fifo_rx_alarm; + u32 fifo_rx_alarm_shutoff; + u8 res3[44]; + u32 fifo_tx_thr; + u8 res4[8]; + u32 fifo_tx_starve; + u32 fifo_tx_starve_shutoff; + u8 res5[96]; + u32 tctrl; + u32 tstat; + u32 dfvlan; + u32 tbdlen; + u32 txic; + u32 tqueue; + u8 res7[40]; + u32 tr03wt; + u32 tr47wt; + u8 res8[52]; + u32 tbdbph; + u8 res9a[4]; + u32 tbptr0; + u8 res9b[4]; + u32 tbptr1; + u8 res9c[4]; + u32 tbptr2; + u8 res9d[4]; + u32 tbptr3; + u8 res9e[4]; + u32 tbptr4; + u8 res9f[4]; + u32 tbptr5; + u8 res9g[4]; + u32 tbptr6; + u8 res9h[4]; + u32 tbptr7; + u8 res9[64]; + u32 tbaseh; + u32 tbase0; + u8 res10a[4]; + u32 tbase1; + u8 res10b[4]; + u32 tbase2; + u8 res10c[4]; + u32 tbase3; + u8 res10d[4]; + u32 tbase4; + u8 res10e[4]; + u32 tbase5; + u8 res10f[4]; + u32 tbase6; + u8 res10g[4]; + u32 tbase7; + u8 res10[192]; + u32 rctrl; + u32 rstat; + u8 res12[8]; + u32 rxic; + u32 rqueue; + u32 rir0; + u32 rir1; + u32 rir2; + u32 rir3; + u8 res13[8]; + u32 rbifx; + u32 rqfar; + u32 rqfcr; + u32 rqfpr; + u32 mrblr; + u8 res14[56]; + u32 rbdbph; + u8 res15a[4]; + u32 rbptr0; + u8 res15b[4]; + u32 rbptr1; + u8 res15c[4]; + u32 rbptr2; + u8 res15d[4]; + u32 rbptr3; + u8 res15e[4]; + u32 rbptr4; + u8 res15f[4]; + u32 rbptr5; + u8 res15g[4]; + u32 rbptr6; + u8 res15h[4]; + u32 rbptr7; + u8 res16[64]; + u32 rbaseh; + u32 rbase0; + u8 res17a[4]; + u32 rbase1; + u8 res17b[4]; + u32 rbase2; + u8 res17c[4]; + u32 rbase3; + u8 res17d[4]; + u32 rbase4; + u8 res17e[4]; + u32 rbase5; + u8 res17f[4]; + u32 rbase6; + u8 res17g[4]; + u32 rbase7; + u8 res17[192]; + u32 maccfg1; + u32 maccfg2; + u32 ipgifg; + u32 hafdup; + u32 maxfrm; + u8 res18[12]; + u8 gfar_mii_regs[24]; + u32 ifctrl; + u32 ifstat; + u32 macstnaddr1; + u32 macstnaddr2; + u32 mac01addr1; + u32 mac01addr2; + u32 mac02addr1; + u32 mac02addr2; + u32 mac03addr1; + u32 mac03addr2; + u32 mac04addr1; + u32 mac04addr2; + u32 mac05addr1; + u32 mac05addr2; + u32 mac06addr1; + u32 mac06addr2; + u32 mac07addr1; + u32 mac07addr2; + u32 mac08addr1; + u32 mac08addr2; + u32 mac09addr1; + u32 mac09addr2; + u32 mac10addr1; + u32 mac10addr2; + u32 mac11addr1; + u32 mac11addr2; + u32 mac12addr1; + u32 mac12addr2; + u32 mac13addr1; + u32 mac13addr2; + u32 mac14addr1; + u32 mac14addr2; + u32 mac15addr1; + u32 mac15addr2; + u8 res20[192]; + struct rmon_mib rmon; + u32 rrej; + u8 res21[188]; + u32 igaddr0; + u32 igaddr1; + u32 igaddr2; + u32 igaddr3; + u32 igaddr4; + u32 igaddr5; + u32 igaddr6; + u32 igaddr7; + u8 res22[96]; + u32 gaddr0; + u32 gaddr1; + u32 gaddr2; + u32 gaddr3; + u32 gaddr4; + u32 gaddr5; + u32 gaddr6; + u32 gaddr7; + u8 res23a[352]; + u32 fifocfg; + u8 res23b[252]; + u8 res23c[248]; + u32 attr; + u32 attreli; + u32 rqprm0; + u32 rqprm1; + u32 rqprm2; + u32 rqprm3; + u32 rqprm4; + u32 rqprm5; + u32 rqprm6; + u32 rqprm7; + u8 res24[36]; + u32 rfbptr0; + u8 res24a[4]; + u32 rfbptr1; + u8 res24b[4]; + u32 rfbptr2; + u8 res24c[4]; + u32 rfbptr3; + u8 res24d[4]; + u32 rfbptr4; + u8 res24e[4]; + u32 rfbptr5; + u8 res24f[4]; + u32 rfbptr6; + u8 res24g[4]; + u32 rfbptr7; + u8 res24h[4]; + u8 res24x[556]; + u32 isrg0; + u32 isrg1; + u32 isrg2; + u32 isrg3; + u8 res25[16]; + u32 rxic0; + u32 rxic1; + u32 rxic2; + u32 rxic3; + u32 rxic4; + u32 rxic5; + u32 rxic6; + u32 rxic7; + u8 res26[32]; + u32 txic0; + u32 txic1; + u32 txic2; + u32 txic3; + u32 txic4; + u32 txic5; + u32 txic6; + u32 txic7; + u8 res27[208]; }; -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, +struct rx_q_stats { + u64 rx_packets; + u64 rx_bytes; + u64 rx_dropped; }; -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, +struct gfar_rx_buff; + +struct rxbd8; + +struct gfar_priv_rx_q { + struct gfar_rx_buff *rx_buff; + struct rxbd8 *rx_bd_base; + struct net_device *ndev; + struct device *dev; + u16 rx_ring_size; + u16 qindex; + struct gfar_priv_grp *grp; + u16 next_to_clean; + u16 next_to_use; + u16 next_to_alloc; + struct sk_buff *skb; + long: 32; + struct rx_q_stats stats; + u32 *rfbptr; + unsigned char rxcoalescing; + unsigned long rxic; + dma_addr_t rx_bd_dma_base; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -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, +struct gfar_rx_buff { + dma_addr_t dma; + struct page *page; + unsigned int page_offset; }; -enum pm_api_id { - PM_GET_API_VERSION = 1, - PM_REGISTER_NOTIFIER = 5, - PM_FORCE_POWERDOWN = 8, - PM_REQUEST_WAKEUP = 10, - PM_SYSTEM_SHUTDOWN = 12, - PM_REQUEST_NODE = 13, - PM_RELEASE_NODE = 14, - PM_SET_REQUIREMENT = 15, - PM_RESET_ASSERT = 17, - PM_RESET_GET_STATUS = 18, - PM_MMIO_WRITE = 19, - PM_MMIO_READ = 20, - PM_PM_INIT_FINALIZE = 21, - PM_FPGA_LOAD = 22, - PM_FPGA_GET_STATUS = 23, - PM_GET_CHIPID = 24, - PM_SECURE_SHA = 26, - PM_PINCTRL_REQUEST = 28, - PM_PINCTRL_RELEASE = 29, - PM_PINCTRL_GET_FUNCTION = 30, - PM_PINCTRL_SET_FUNCTION = 31, - PM_PINCTRL_CONFIG_PARAM_GET = 32, - PM_PINCTRL_CONFIG_PARAM_SET = 33, - PM_IOCTL = 34, - PM_QUERY_DATA = 35, - PM_CLOCK_ENABLE = 36, - PM_CLOCK_DISABLE = 37, - PM_CLOCK_GETSTATE = 38, - PM_CLOCK_SETDIVIDER = 39, - PM_CLOCK_GETDIVIDER = 40, - PM_CLOCK_SETRATE = 41, - PM_CLOCK_GETRATE = 42, - PM_CLOCK_SETPARENT = 43, - PM_CLOCK_GETPARENT = 44, - PM_FPGA_READ = 46, - PM_SECURE_AES = 47, - PM_FEATURE_CHECK = 63, +struct rxbd8 { + union { + struct { + __be16 status; + __be16 length; + }; + __be32 lstatus; + }; + __be32 bufPtr; }; -enum pm_ioctl_id { - IOCTL_GET_RPU_OPER_MODE = 0, - IOCTL_SET_RPU_OPER_MODE = 1, - IOCTL_RPU_BOOT_ADDR_CONFIG = 2, - IOCTL_TCM_COMB_CONFIG = 3, - IOCTL_SET_TAPDELAY_BYPASS = 4, - IOCTL_SD_DLL_RESET = 6, - IOCTL_SET_SD_TAPDELAY = 7, - IOCTL_SET_PLL_FRAC_MODE = 8, - IOCTL_GET_PLL_FRAC_MODE = 9, - IOCTL_SET_PLL_FRAC_DATA = 10, - IOCTL_GET_PLL_FRAC_DATA = 11, - IOCTL_WRITE_GGS = 12, - IOCTL_READ_GGS = 13, - IOCTL_WRITE_PGGS = 14, - IOCTL_READ_PGGS = 15, - IOCTL_SET_BOOT_HEALTH_STATUS = 17, - IOCTL_OSPI_MUX_SELECT = 21, - IOCTL_REGISTER_SGI = 25, - IOCTL_SET_FEATURE_CONFIG = 26, - IOCTL_GET_FEATURE_CONFIG = 27, - IOCTL_SET_SD_CONFIG = 30, - IOCTL_SET_GEM_CONFIG = 31, +struct gfar_irqinfo { + unsigned int irq; + char name[22]; }; -enum pm_gem_config_type { - GEM_CONFIG_SGMII_MODE = 1, - GEM_CONFIG_FIXED = 2, +struct gianfar_skb_cb { + unsigned int bytes_sent; }; -struct ethtool_rx_fs_item { - struct ethtool_rx_flow_spec fs; - struct list_head list; +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 clock_identity { - u8 id[8]; +struct rxfcb { + __be16 flags; + u8 rq; + u8 pro; + u16 reserved; + __be16 vlctl; }; -struct port_identity { - struct clock_identity clock_identity; - __be16 port_number; +struct txfcb { + u8 flags; + u8 ptp; + u8 l4os; + u8 l3os; + __be16 phcs; + __be16 vlctl; }; -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 socfpga_dwmac; -typedef enum gro_result gro_result_t; +struct socfpga_dwmac_ops { + int (*set_phy_mode)(struct socfpga_dwmac *); +}; -struct macb_platform_data { - struct clk *pclk; - struct clk *hclk; +struct socfpga_dwmac { + u32 reg_offset; + u32 reg_shift; + struct device *dev; + struct regmap *sys_mgr_base_addr; + struct reset_control *stmmac_rst; + struct reset_control *stmmac_ocp_rst; + void *splitter_base; + void *tse_pcs_base; + void *sgmii_adapter_base; + bool f2h_ptp_ref_clk; + const struct socfpga_dwmac_ops *ops; + struct mdio_device *pcs_mdiodev; }; struct stmmac_resources { @@ -52116,121 +60111,148 @@ struct stmmac_resources { int tx_irq[8]; }; -enum usb_phy_interface { - USBPHY_INTERFACE_MODE_UNKNOWN = 0, - USBPHY_INTERFACE_MODE_UTMI = 1, - USBPHY_INTERFACE_MODE_UTMIW = 2, - USBPHY_INTERFACE_MODE_ULPI = 3, - USBPHY_INTERFACE_MODE_SERIAL = 4, - USBPHY_INTERFACE_MODE_HSIC = 5, +struct usbnet; + +struct driver_info { + char *description; + int flags; + int (*bind)(struct usbnet *, struct usb_interface *); + void (*unbind)(struct usbnet *, struct usb_interface *); + int (*reset)(struct usbnet *); + int (*stop)(struct usbnet *); + int (*check_connect)(struct usbnet *); + int (*manage_power)(struct usbnet *, int); + void (*status)(struct usbnet *, struct urb *); + int (*link_reset)(struct usbnet *); + int (*rx_fixup)(struct usbnet *, struct sk_buff *); + struct sk_buff * (*tx_fixup)(struct usbnet *, struct sk_buff *, gfp_t); + void (*recover)(struct usbnet *); + int (*early_init)(struct usbnet *); + void (*indication)(struct usbnet *, void *, int); + void (*set_rx_mode)(struct usbnet *); + int in; + int out; + unsigned long data; }; -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, +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); }; -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 usbnet { + struct usb_device *udev; + struct usb_interface *intf; + const struct driver_info *driver_info; + const char *driver_name; + void *driver_priv; + wait_queue_head_t wait; + struct mutex phy_mutex; + unsigned char suspend_count; + unsigned char pkt_cnt; + unsigned char pkt_err; + unsigned short rx_qlen; + unsigned short tx_qlen; + unsigned int can_dma_sg: 1; + unsigned int in; + unsigned int out; + struct usb_host_endpoint *status; + unsigned int maxpacket; + struct timer_list delay; + const char *padding_pkt; + struct net_device *net; + int msg_enable; + unsigned long data[5]; + u32 xid; + u32 hard_mtu; + size_t rx_urb_size; + struct mii_if_info mii; + long rx_speed; + long tx_speed; + struct sk_buff_head rxq; + struct sk_buff_head txq; + struct sk_buff_head done; + struct sk_buff_head rxq_pause; + struct urb *interrupt; + unsigned int interrupt_count; + struct mutex interrupt_mutex; + struct usb_anchor deferred; + struct tasklet_struct bh; + struct work_struct kevent; + unsigned long flags; }; -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 skb_state { + illegal = 0, + tx_start = 1, + tx_done___2 = 2, + rx_start = 3, + rx_done = 4, + rx_cleanup = 5, + unlink_start = 6, +}; + +struct mii_ioctl_data { + __u16 phy_id; + __u16 reg_num; + __u16 val_in; + __u16 val_out; +}; + +struct skb_data { + struct urb *urb; + struct usbnet *dev; + enum skb_state state; + long length; + unsigned long packets; +}; + +struct ax88179_data { + u8 eee_enabled; + u8 eee_active; + u16 rxctl; + u8 in_pm; + u32 wol_supported; + u32 wolopts; + u8 disconnecting; +}; + +struct ethtool_cmd { + __u32 cmd; + __u32 supported; + __u32 advertising; + __u16 speed; + __u8 duplex; + __u8 port; + __u8 phy_address; + __u8 transceiver; + __u8 autoneg; + __u8 mdio_support; + __u32 maxtxpkt; + __u32 maxrxpkt; + __u16 speed_hi; + __u8 eth_tp_mdix; + __u8 eth_tp_mdix_ctrl; + __u32 lp_advertising; + __u32 reserved[2]; +}; + +struct ax88179_int_data { + __le32 intdata1; + __le32 intdata2; +}; + +struct class_info { + int class; + char *class_name; }; enum dwc3_ep0_next { @@ -52288,40 +60310,6 @@ struct dwc3_request { unsigned int mapped: 1; }; -struct dwc3; - -struct dwc3_ep { - struct usb_ep endpoint; - struct list_head cancelled_list; - struct list_head pending_list; - struct list_head started_list; - void *regs; - struct dwc3_trb *trb_pool; - dma_addr_t trb_pool_dma; - struct dwc3 *dwc; - u32 saved_state; - unsigned int flags; - u8 trb_enqueue; - u8 trb_dequeue; - u8 number; - u8 type; - u8 resource_index; - u32 frame_number; - u32 interval; - char name[20]; - unsigned int direction: 1; - unsigned int stream_capable: 1; - u8 combo_num; - int start_cmd_status; -}; - -struct dwc3_trb { - u32 bpl; - u32 bph; - u32 size; - u32 ctrl; -}; - struct dwc3_hwparams { u32 hwparams0; u32 hwparams1; @@ -52337,12 +60325,6 @@ struct dwc3_hwparams { struct dwc3_event_buffer; -struct ulpi; - -struct usb_role_switch; - -struct power_supply; - struct dwc3 { struct work_struct drd_work; struct dwc3_trb *ep0_trb; @@ -52365,6 +60347,8 @@ struct dwc3 { struct clk *bus_clk; struct clk *ref_clk; struct clk *susp_clk; + struct clk *utmi_clk; + struct clk *pipe_clk; struct reset_control *reset; struct usb_phy *usb2_phy; struct usb_phy *usb3_phy; @@ -52415,6 +60399,10 @@ struct dwc3 { u8 test_mode_nr; u8 lpm_nyet_threshold; u8 hird_threshold; + u8 rx_thr_num_pkt; + u8 rx_max_burst; + u8 tx_thr_num_pkt; + u8 tx_max_burst; u8 rx_thr_num_pkt_prd; u8 rx_max_burst_prd; u8 tx_thr_num_pkt_prd; @@ -52476,6 +60464,38 @@ struct dwc3 { struct dentry *debug_root; }; +struct dwc3_trb { + u32 bpl; + u32 bph; + u32 size; + u32 ctrl; +}; + +struct dwc3_ep { + struct usb_ep endpoint; + struct list_head cancelled_list; + struct list_head pending_list; + struct list_head started_list; + void *regs; + struct dwc3_trb *trb_pool; + dma_addr_t trb_pool_dma; + struct dwc3 *dwc; + u32 saved_state; + unsigned int flags; + u8 trb_enqueue; + u8 trb_dequeue; + u8 number; + u8 type; + u8 resource_index; + u32 frame_number; + u32 interval; + char name[20]; + unsigned int direction: 1; + unsigned int stream_capable: 1; + u8 combo_num; + int start_cmd_status; +}; + struct dwc3_event_buffer { void *buf; void *cache; @@ -52487,1200 +60507,434 @@ struct dwc3_event_buffer { struct dwc3 *dwc; }; -struct power_supply_desc; - -struct power_supply_battery_info; +enum orion_ehci_phy_ver { + EHCI_PHY_ORION = 0, + EHCI_PHY_DD = 1, + EHCI_PHY_KW = 2, + EHCI_PHY_NA = 3, +}; -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; - long: 32; - struct device dev; - struct work_struct changed_work; - struct delayed_work deferred_register_work; - spinlock_t changed_lock; - bool changed; - bool initialized; - bool removing; - atomic_t use_cnt; - struct power_supply_battery_info *battery_info; - struct thermal_zone_device *tzd; - struct thermal_cooling_device *tcd; - 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; - long: 32; +struct orion_ehci_hcd { + struct clk *clk; + struct phy *phy; }; -union power_supply_propval; +struct orion_ehci_data { + enum orion_ehci_phy_ver phy_version; +}; -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; +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, }; -union power_supply_propval { - int intval; - const char *strval; +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, }; -struct power_supply_maintenance_charge_table; +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, +}; -struct power_supply_battery_ocv_table; +struct us_data; -struct power_supply_resistance_temp_table; +typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data *); -struct power_supply_vbat_ri_table; +typedef int (*trans_reset)(struct us_data *); -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; -}; +typedef void (*proto_cmnd)(struct scsi_cmnd *, struct us_data *); -struct power_supply_maintenance_charge_table { - int charge_current_max_ua; - int charge_voltage_max_uv; - int charge_safety_timer_minutes; +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; }; -struct power_supply_battery_ocv_table { - int ocv; - int capacity; -}; +typedef void (*extra_data_destructor)(void *); -struct power_supply_resistance_temp_table { - int temp; - int resistance; -}; +typedef void (*pm_hook)(struct us_data *, int); -struct power_supply_vbat_ri_table { - int vbat_uv; - int ri_uohm; -}; +struct us_unusual_dev; -struct dwc3_gadget_ep_cmd_params { - u32 param2; - u32 param1; - u32 param0; +struct us_data { + struct mutex dev_mutex; + struct usb_device *pusb_dev; + struct usb_interface *pusb_intf; + const struct us_unusual_dev *unusual_dev; + u64 fflags; + unsigned long dflags; + unsigned int send_bulk_pipe; + unsigned int recv_bulk_pipe; + unsigned int send_ctrl_pipe; + unsigned int recv_ctrl_pipe; + unsigned int recv_intr_pipe; + char *transport_name; + char *protocol_name; + __le32 bcs_signature; + u8 subclass; + u8 protocol; + u8 max_lun; + u8 ifnum; + u8 ep_bInterval; + trans_cmnd transport; + trans_reset transport_reset; + proto_cmnd proto_handler; + struct scsi_cmnd *srb; + unsigned int tag; + char scsi_name[32]; + struct urb *current_urb; + struct usb_ctrlrequest *cr; + struct usb_sg_request current_sg; + unsigned char *iobuf; + dma_addr_t iobuf_dma; + struct task_struct *ctl_thread; + struct completion cmnd_ready; + struct completion notify; + wait_queue_head_t delay_wait; + struct delayed_work scan_dwork; + void *extra; + extra_data_destructor extra_destructor; + pm_hook suspend_resume_hook; + int use_last_sector_hacks; + int last_sector_retries; }; -struct dwc3_event_depevt { - u32 one_bit: 1; - u32 endpoint_number: 5; - u32 endpoint_event: 4; - u32 reserved11_10: 2; - u32 status: 4; - u32 parameters: 16; +struct us_unusual_dev { + const char *vendorName; + const char *productName; + __u8 useProtocol; + __u8 useTransport; + int (*initFunction)(struct us_data *); }; -struct timing { - u8 u1sel; - u8 u1pel; - __le16 u2sel; - __le16 u2pel; +enum bdc_ep0_state { + WAIT_FOR_SETUP = 0, + WAIT_FOR_DATA_START = 1, + WAIT_FOR_DATA_XMIT = 2, + WAIT_FOR_STATUS_START = 3, + WAIT_FOR_STATUS_XMIT = 4, + STATUS_PENDING = 5, }; -struct ohci_driver_overrides { - const char *product_desc; - size_t extra_priv_size; - int (*reset)(struct usb_hcd *); +enum bdc_link_state { + BDC_LINK_STATE_U0 = 0, + BDC_LINK_STATE_U3 = 3, + BDC_LINK_STATE_RX_DET = 5, + BDC_LINK_STATE_RESUME = 15, }; -struct usb_ohci_pdata { - unsigned int big_endian_desc: 1; - unsigned int big_endian_mmio: 1; - unsigned int no_big_frame_no: 1; - unsigned int num_ports; - int (*power_on)(struct platform_device *); - void (*power_off)(struct platform_device *); - void (*power_suspend)(struct platform_device *); +struct bdc_scratchpad { + dma_addr_t sp_dma; + void *buff; + u32 size; }; -enum ohci_rh_state { - OHCI_RH_HALTED = 0, - OHCI_RH_SUSPENDED = 1, - OHCI_RH_RUNNING = 2, -}; +struct bdc_sr; -struct st_ohci_platform_priv { - struct clk *clks[3]; - struct clk *clk48; - struct reset_control *rst; - struct reset_control *pwr; - struct phy *phy; +struct srr { + struct bdc_sr *sr_bds; + u16 eqp_index; + u16 dqp_index; + dma_addr_t dma_addr; }; -struct ohci_regs; +struct bdc_req; -struct ohci_hcca; +struct bd_transfer { + struct bdc_req *req; + int start_bdi; + int next_hwd_bdi; + int num_bds; +}; -struct ed; +struct bdc_ep; -struct td; +struct bdc_req { + struct usb_request usb_req; + struct list_head queue; + struct bdc_ep *ep; + struct bd_transfer bd_xfr; + int epnum; +}; -struct ohci_hcd { +struct bdc { + struct usb_gadget gadget; + struct usb_gadget_driver *gadget_driver; + struct device *dev; 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; - long: 32; - unsigned long priv[0]; + struct phy **phys; + int num_phys; + unsigned int num_eps; + struct bdc_ep **bdc_ep_array; + void *regs; + struct bdc_scratchpad scratchpad; + u32 sp_buff_size; + struct srr srr; + struct usb_ctrlrequest setup_pkt; + struct bdc_req ep0_req; + struct bdc_req status_req; + enum bdc_ep0_state ep0_state; + bool delayed_status; + bool zlp_needed; + bool reinit; + bool pullup; + u32 devstatus; + int irq; + void *mem; + u32 dev_addr; + struct dma_pool *bd_table_pool; + u8 test_mode; + void (*sr_handler[2])(struct bdc *, struct bdc_sr *); + void (*sr_xsf_ep0[3])(struct bdc *, struct bdc_sr *); + unsigned char ep0_response_buff[6]; + struct delayed_work func_wake_notify; + struct clk *clk; }; -typedef __u32 __hc32; +struct bd_table; -struct ohci_roothub_regs { - __hc32 a; - __hc32 b; - __hc32 status; - __hc32 portstatus[15]; +struct bd_list { + struct bd_table **bd_table_array; + int num_tabs; + int max_bdi; + int eqp_bdi; + int hwd_bdi; + int num_bds_table; }; -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: 32; - long: 32; - long: 32; - long: 32; +struct bdc_ep { + struct usb_ep usb_ep; + struct list_head queue; + struct bdc *bdc; + u8 ep_type; + u8 dir; + u8 ep_num; + const struct usb_ss_ep_comp_descriptor *comp_desc; + const struct usb_endpoint_descriptor *desc; + unsigned int flags; + char name[20]; + struct bd_list bd_list; + bool ignore_next_sr; }; -struct ohci_hcca { - __hc32 int_table[32]; - __hc32 frame_no; - __hc32 done_head; - u8 reserved_for_hc[116]; - u8 what[4]; -}; +struct bdc_bd; -struct ed { - __hc32 hwINFO; - __hc32 hwTailP; - __hc32 hwHeadP; - __hc32 hwNextED; +struct bd_table { + struct bdc_bd *start_bd; 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: 32; - long: 32; - long: 32; }; -typedef __u16 __hc16; +struct bdc_bd { + __le32 offset[4]; +}; -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: 32; - long: 32; +struct bdc_sr { + __le32 offset[4]; }; -struct imx_usbmisc_data; +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 usbmisc_ops { - int (*init)(struct imx_usbmisc_data *); - int (*post)(struct imx_usbmisc_data *); - int (*set_wakeup)(struct imx_usbmisc_data *, bool); - int (*hsic_set_connect)(struct imx_usbmisc_data *); - int (*hsic_set_clk)(struct imx_usbmisc_data *, bool); - int (*charger_detection)(struct imx_usbmisc_data *); - int (*power_lost_check)(struct imx_usbmisc_data *); - void (*vbus_comparator_on)(struct imx_usbmisc_data *, bool); +struct psmouse_smbus_removal_work { + struct work_struct work; + struct i2c_client *client; }; -struct imx_usbmisc_data { - struct device *dev; - int index; - unsigned int disable_oc: 1; - unsigned int oc_pol_active_low: 1; - unsigned int oc_pol_configured: 1; - unsigned int pwr_pol: 1; - unsigned int evdo: 1; - unsigned int ulpi: 1; - unsigned int hsic: 1; - unsigned int ext_id: 1; - unsigned int ext_vbus: 1; - struct usb_phy *usb_phy; - enum usb_dr_mode available_role; - int emp_curr_control; - int dc_vol_level_adjust; +struct sunxi_rtc_data_year { + unsigned int min; + unsigned int max; + unsigned int mask; + unsigned char leap_shift; }; -struct imx_usbmisc { +struct sunxi_rtc_dev { + struct rtc_device *rtc; + struct device *dev; + const struct sunxi_rtc_data_year *data_year; void *base; - spinlock_t lock; - const struct usbmisc_ops *ops; + int irq; }; -struct dmi_strmatch { - unsigned char slot: 7; - unsigned char exact_match: 1; - char substr[79]; +enum i2c_type_exynos { + I2C_TYPE_EXYNOS5 = 0, + I2C_TYPE_EXYNOS7 = 1, + I2C_TYPE_EXYNOSAUTOV9 = 2, }; -struct dmi_system_id { - int (*callback)(const struct dmi_system_id *); - const char *ident; - struct dmi_strmatch matches[4]; - void *driver_data; +struct exynos_hsi2c_variant { + unsigned int fifo_depth; + enum i2c_type_exynos hw; }; -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; +struct exynos5_i2c { + struct i2c_adapter adap; + struct i2c_msg *msg; + struct completion msg_complete; + unsigned int msg_ptr; + unsigned int irq; + void *regs; + struct clk *clk; + struct clk *pclk; + struct device *dev; + int state; + spinlock_t lock; + int trans_done; + unsigned int atomic; + unsigned int op_clock; + const struct exynos_hsi2c_variant *variant; + long: 32; }; -struct psmouse; - -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; +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, }; -enum ps2_disposition { - PS2_PROCESS = 0, - PS2_IGNORE = 1, - PS2_ERROR = 2, +enum rc_driver_type { + RC_DRIVER_SCANCODE = 0, + RC_DRIVER_IR_RAW = 1, + RC_DRIVER_IR_RAW_TX = 2, }; -struct ps2dev; - -typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int); - -typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8); +struct 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; + long: 32; +}; -struct serio; +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 ps2dev { - struct serio *serio; - struct mutex cmd_mutex; - wait_queue_head_t wait; - unsigned long flags; - u8 cmdbuf[8]; - u8 cmdcnt; - u8 nak; - ps2_pre_receive_handler_t pre_receive_handler; - ps2_receive_handler_t receive_handler; +struct cec_drm_connector_info { + __u32 card_no; + __u32 connector_id; }; -enum psmouse_state { - PSMOUSE_IGNORE = 0, - PSMOUSE_INITIALIZING = 1, - PSMOUSE_RESYNCING = 2, - PSMOUSE_CMD_MODE = 3, - PSMOUSE_ACTIVATED = 4, +struct cec_connector_info { + __u32 type; + union { + struct cec_drm_connector_info drm; + __u32 raw[16]; + }; }; -typedef enum { - PSMOUSE_BAD_DATA = 0, - PSMOUSE_GOOD_DATA = 1, - PSMOUSE_FULL_PACKET = 2, -} psmouse_ret_t; +struct rc_dev; -enum psmouse_scale { - PSMOUSE_SCALE11 = 0, - PSMOUSE_SCALE21 = 1, -}; +struct cec_data; -struct input_dev; +struct cec_adap_ops; -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_id { - __u16 bustype; - __u16 vendor; - __u16 product; - __u16 version; -}; - -struct input_keymap_entry; - -struct ff_device; - -struct input_dev_poller; - -struct input_mt; - -struct input_absinfo; - -struct input_handle; - -struct input_value; - -struct input_dev { - const char *name; - const char *phys; - const char *uniq; - struct input_id id; - unsigned long propbit[1]; - unsigned long evbit[1]; - unsigned long keybit[24]; - unsigned long relbit[1]; - unsigned long absbit[2]; - unsigned long mscbit[1]; - unsigned long ledbit[1]; - unsigned long sndbit[1]; - unsigned long ffbit[4]; - 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[24]; - 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; - long: 32; -}; - -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[4]; - 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_mt_slot { - int abs[14]; - unsigned int frame; - unsigned int key; -}; - -struct input_mt { - int trkid; - int num_slots; - int slot; - unsigned int flags; - unsigned int frame; - int *red; - struct input_mt_slot slots[0]; -}; - -struct input_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[24]; - kernel_ulong_t relbit[1]; - kernel_ulong_t absbit[2]; - kernel_ulong_t mscbit[1]; - kernel_ulong_t ledbit[1]; - kernel_ulong_t sndbit[1]; - kernel_ulong_t ffbit[4]; - kernel_ulong_t swbit[1]; - kernel_ulong_t propbit[1]; - kernel_ulong_t driver_info; -}; - -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; - long: 32; - struct device dev; - struct list_head node; - struct mutex *ps2_cmd_mutex; - long: 32; -}; - -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; -}; - -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, -}; - -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 *); -}; - -enum synaptics_pkt_type { - SYN_NEWABS = 0, - SYN_NEWABS_STRICT = 1, - SYN_NEWABS_RELAXED = 2, - SYN_OLDABS = 3, -}; - -enum dmi_field { - DMI_NONE = 0, - DMI_BIOS_VENDOR = 1, - DMI_BIOS_VERSION = 2, - DMI_BIOS_DATE = 3, - DMI_BIOS_RELEASE = 4, - DMI_EC_FIRMWARE_RELEASE = 5, - DMI_SYS_VENDOR = 6, - DMI_PRODUCT_NAME = 7, - DMI_PRODUCT_VERSION = 8, - DMI_PRODUCT_SERIAL = 9, - DMI_PRODUCT_UUID = 10, - DMI_PRODUCT_SKU = 11, - DMI_PRODUCT_FAMILY = 12, - DMI_BOARD_VENDOR = 13, - DMI_BOARD_NAME = 14, - DMI_BOARD_VERSION = 15, - DMI_BOARD_SERIAL = 16, - DMI_BOARD_ASSET_TAG = 17, - DMI_CHASSIS_VENDOR = 18, - DMI_CHASSIS_TYPE = 19, - DMI_CHASSIS_VERSION = 20, - DMI_CHASSIS_SERIAL = 21, - DMI_CHASSIS_ASSET_TAG = 22, - DMI_STRING_MAX = 23, - DMI_OEM_STRING = 24, -}; - -enum 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; -}; - -struct input_mt_pos { - s16 x; - s16 y; -}; - -struct dw_i2c_dev; - -struct i2c_dw_semaphore_callbacks { - int (*probe)(struct dw_i2c_dev *); - void (*remove)(struct dw_i2c_dev *); -}; - -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 dw_i2c_dev { - struct device *dev; - struct regmap *map; - struct regmap *sysmap; - void *base; - void *ext; - struct completion cmd_complete; - struct clk *clk; - struct clk *pclk; - struct reset_control *rst; - struct i2c_client *slave; - u32 (*get_clk_rate_khz)(struct dw_i2c_dev *); - int cmd_err; - struct i2c_msg *msgs; - int msgs_num; - int msg_write_idx; - u32 tx_buf_len; - u8 *tx_buf; - int msg_read_idx; - u32 rx_buf_len; - u8 *rx_buf; - int msg_err; - unsigned int status; - unsigned int abort_source; - int irq; - u32 flags; - struct i2c_adapter adapter; - u32 functionality; - u32 master_cfg; - u32 slave_cfg; - unsigned int tx_fifo_depth; - unsigned int rx_fifo_depth; - int rx_outstanding; - struct i2c_timings timings; - u32 sda_hold_time; - u16 ss_hcnt; - u16 ss_lcnt; - u16 fs_hcnt; - u16 fs_lcnt; - u16 fp_hcnt; - u16 fp_lcnt; - u16 hs_hcnt; - u16 hs_lcnt; - int (*acquire_lock)(); - void (*release_lock)(); - int semaphore_idx; - bool shared_with_punit; - void (*disable)(struct dw_i2c_dev *); - int (*init)(struct dw_i2c_dev *); - int (*set_sda_hold_time)(struct dw_i2c_dev *); - int mode; - struct i2c_bus_recovery_info rinfo; -}; - -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)(); - -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; -}; - -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, -}; - -enum rc_driver_type { - RC_DRIVER_SCANCODE = 0, - RC_DRIVER_IR_RAW = 1, - RC_DRIVER_IR_RAW_TX = 2, -}; - -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 cec_notifier { - struct mutex lock; - struct list_head head; - struct kref kref; - struct device *hdmi_dev; - struct cec_connector_info conn_info; - const char *port_name; - struct cec_adapter *cec_adap; - u16 phys_addr; -}; - -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; - long: 32; -}; - -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 rc_dev; - -struct cec_data; - -struct cec_adap_ops; - -struct cec_fh; +struct cec_fh; struct cec_adapter { struct module *owner; @@ -53725,7 +60979,7 @@ struct cec_adapter { struct cec_notifier *notifier; struct dentry *cec_dir; u32 sequence; - char input_phys[32]; + char input_phys[40]; long: 32; }; @@ -53895,27 +61149,76 @@ struct cec_adap_ops { 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); + void (*adap_unconfigured)(struct cec_adapter *); int (*adap_transmit)(struct cec_adapter *, u8, u32, struct cec_msg *); + void (*adap_nb_transmit_canceled)(struct cec_adapter *, const 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 *); + void (*configured)(struct cec_adapter *); int (*received)(struct cec_adapter *, struct cec_msg *); }; -struct stm_thermal_sensor { - struct device *dev; - struct thermal_zone_device *th_dev; - enum thermal_device_mode mode; - struct clk *clk; - unsigned int low_temp_enabled; - unsigned int high_temp_enabled; - int irq; - void *base; - int t0; - int fmt0; - int ramp_coeff; +struct at91_reset_data { + u32 reset_args; + u32 n_device_reset; + u8 device_reset_min_id; + u8 device_reset_max_id; +}; + +enum reset_type { + RESET_TYPE_GENERAL = 0, + RESET_TYPE_WAKEUP = 1, + RESET_TYPE_WATCHDOG = 2, + RESET_TYPE_SOFTWARE = 3, + RESET_TYPE_USER = 4, + RESET_TYPE_CPU_FAIL = 6, + RESET_TYPE_XTAL_FAIL = 7, + RESET_TYPE_ULP2 = 8, +}; + +struct at91_reset { + void *rstc_base; + void *ramc_base[2]; + void *dev_base; + struct clk *sclk; + const struct at91_reset_data *data; + struct reset_controller_dev rcdev; + spinlock_t lock; + struct notifier_block nb; + u32 args; + u32 ramc_lpr; +}; + +struct reset_syscfg { + struct regmap *regmap; + unsigned int offset_rst; + unsigned int mask_rst; + unsigned int offset_rst_msk; + unsigned int mask_rst_msk; +}; + +enum hwmon_chip_attributes { + hwmon_chip_temp_reset_history = 0, + hwmon_chip_in_reset_history = 1, + hwmon_chip_curr_reset_history = 2, + hwmon_chip_power_reset_history = 3, + hwmon_chip_register_tz = 4, + hwmon_chip_update_interval = 5, + hwmon_chip_alarms = 6, + hwmon_chip_samples = 7, + hwmon_chip_curr_samples = 8, + hwmon_chip_in_samples = 9, + hwmon_chip_power_samples = 10, + hwmon_chip_temp_samples = 11, + hwmon_chip_beep_enable = 12, +}; + +struct lm95245_data { + struct regmap *regmap; + struct mutex update_lock; + int interval; }; struct stm32_iwdg_data { @@ -53932,706 +61235,342 @@ struct stm32_iwdg { unsigned int rate; }; -struct ti_cpufreq_data; - -struct ti_cpufreq_soc_data { - const char * const *reg_names; - unsigned long (*efuse_xlate)(struct ti_cpufreq_data *, unsigned long); - unsigned long efuse_fallback; - unsigned long efuse_offset; - unsigned long efuse_mask; - unsigned long efuse_shift; - unsigned long rev_offset; - bool multi_regulator; +enum opp_table_access { + OPP_TABLE_ACCESS_UNKNOWN = 0, + OPP_TABLE_ACCESS_EXCLUSIVE = 1, + OPP_TABLE_ACCESS_SHARED = 2, }; -struct ti_cpufreq_data { - struct device *cpu_dev; - struct device_node *opp_node; - struct regmap *syscon; - const struct ti_cpufreq_soc_data *soc_data; +enum dev_pm_opp_event { + OPP_EVENT_ADD = 0, + OPP_EVENT_REMOVE = 1, + OPP_EVENT_ENABLE = 2, + OPP_EVENT_DISABLE = 3, + OPP_EVENT_ADJUST_VOLTAGE = 4, }; -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; - long: 32; - u64 dma_mask; - const struct property_entry *properties; - long: 32; +struct opp_table { + struct list_head node; + struct list_head lazy; + struct blocking_notifier_head head; + struct list_head dev_list; + struct list_head opp_list; + struct kref kref; + struct mutex lock; + struct device_node *np; + unsigned long clock_latency_ns_max; + unsigned int voltage_tolerance_v1; + unsigned int parsed_static_opps; + enum opp_table_access shared_opp; + unsigned long rate_clk_single; + struct dev_pm_opp *current_opp; + struct dev_pm_opp *suspend_opp; + struct device **genpd_virt_devs; + struct opp_table **required_opp_tables; + unsigned int required_opp_count; + unsigned int *supported_hw; + unsigned int supported_hw_count; + const char *prop_name; + config_clks_t config_clks; + struct clk **clks; + struct clk *clk; + int clk_count; + config_regulators_t config_regulators; + struct regulator **regulators; + int regulator_count; + struct icc_path **paths; + unsigned int path_count; + bool enabled; + bool is_genpd; + int (*set_required_opps)(struct device *, struct opp_table *, struct dev_pm_opp *, bool); + struct dentry *dentry; + char dentry_name[255]; }; -typedef int (*config_clks_t)(struct device *, struct opp_table *, struct dev_pm_opp *, void *, bool); +struct dev_pm_opp_supply; -typedef int (*config_regulators_t)(struct device *, struct dev_pm_opp *, struct dev_pm_opp *, struct regulator **, unsigned int); +struct dev_pm_opp_icc_bw; -struct dev_pm_opp_config { - const char * const *clk_names; - config_clks_t config_clks; - const char *prop_name; - config_regulators_t config_regulators; - const unsigned int *supported_hw; - unsigned int supported_hw_count; - const char * const *regulator_names; - const char * const *genpd_names; - struct device ***virt_devs; +struct dev_pm_opp { + struct list_head node; + struct kref kref; + bool available; + bool dynamic; + bool turbo; + bool suspend; + bool removed; + unsigned long *rates; + unsigned int level; + struct dev_pm_opp_supply *supplies; + struct dev_pm_opp_icc_bw *bandwidth; + unsigned long clock_latency_ns; + struct dev_pm_opp **required_opps; + struct opp_table *opp_table; + struct device_node *np; + struct dentry *dentry; + const char *of_name; }; -struct renesas_sdhi_quirks { - bool hs400_disabled; - bool hs400_4taps; - bool fixed_addr_mode; - bool dma_one_rx_only; - bool manual_tap_correction; - bool old_info1_layout; - u32 hs400_bad_taps; - const u8 (*hs400_calib_table)[32]; +struct dev_pm_opp_supply { + unsigned long u_volt; + unsigned long u_volt_min; + unsigned long u_volt_max; + unsigned long u_amp; + unsigned long u_watt; }; -struct tmio_mmc_host; +struct dev_pm_opp_icc_bw { + u32 avg; + u32 peak; +}; -struct tmio_mmc_data; +struct em_data_callback {}; -struct tmio_mmc_dma_ops { - void (*start)(struct tmio_mmc_host *, struct mmc_data *); - void (*enable)(struct tmio_mmc_host *, bool); - void (*request)(struct tmio_mmc_host *, struct tmio_mmc_data *); - void (*release)(struct tmio_mmc_host *); - void (*abort)(struct tmio_mmc_host *); - void (*dataend)(struct tmio_mmc_host *); - void (*end)(struct tmio_mmc_host *); - bool (*dma_irq)(struct tmio_mmc_host *); -}; +struct mmc_omap_slot; -struct tmio_mmc_host { - void *ctl; - struct mmc_command *cmd; +struct omap_mmc_platform_data; + +struct mmc_omap_host { + int initialized; struct mmc_request *mrq; + struct mmc_command *cmd; struct mmc_data *data; struct mmc_host *mmc; - struct mmc_host_ops ops; - void (*set_pwr)(struct platform_device *, int); - struct scatterlist *sg_ptr; - struct scatterlist *sg_orig; + struct device *dev; + unsigned char id; + struct clk *iclk; + struct clk *fclk; + struct dma_chan *dma_rx; + u32 dma_rx_burst; + struct dma_chan *dma_tx; + u32 dma_tx_burst; + void *virt_base; + unsigned int phys_base; + int irq; + unsigned char bus_mode; + unsigned int reg_shift; + struct gpio_desc *slot_switch; + struct work_struct cmd_abort_work; + unsigned int abort: 1; + struct timer_list cmd_abort_timer; + struct work_struct slot_release_work; + struct mmc_omap_slot *next_slot; + struct work_struct send_stop_work; + struct mmc_data *stop_data; unsigned int sg_len; - unsigned int sg_off; - unsigned int bus_shift; - struct platform_device *pdev; - struct tmio_mmc_data *pdata; - bool dma_on; - struct dma_chan *chan_rx; - struct dma_chan *chan_tx; - struct tasklet_struct dma_issue; - struct scatterlist bounce_sg; - u8 *bounce_buf; - struct delayed_work delayed_reset_work; - struct work_struct done; - u32 sdcard_irq_mask; - u32 sdio_irq_mask; - unsigned int clk_cache; - u32 sdcard_irq_setbit_mask; - u32 sdcard_irq_mask_all; - spinlock_t lock; - unsigned long last_req_ts; - struct mutex ios_lock; - bool native_hotplug; - bool sdio_irq_enabled; - int (*clk_enable)(struct tmio_mmc_host *); - void (*set_clock)(struct tmio_mmc_host *, unsigned int); - void (*clk_disable)(struct tmio_mmc_host *); - int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); - int (*write16_hook)(struct tmio_mmc_host *, int); - void (*reset)(struct tmio_mmc_host *, bool); - bool (*check_retune)(struct tmio_mmc_host *, struct mmc_request *); - void (*fixup_request)(struct tmio_mmc_host *, struct mmc_request *); - unsigned int (*get_timeout_cycles)(struct tmio_mmc_host *); - const struct tmio_mmc_dma_ops *dma_ops; -}; - -struct tmio_mmc_data { - void *chan_priv_tx; - void *chan_priv_rx; - unsigned int hclk; - unsigned long capabilities; - unsigned long capabilities2; - unsigned long flags; - u32 ocr_mask; - dma_addr_t dma_rx_offset; - unsigned int max_blk_count; - unsigned short max_segs; - void (*set_pwr)(struct platform_device *, int); - void (*set_clk_div)(struct platform_device *, int); -}; - -struct renesas_sdhi_of_data; - -struct renesas_sdhi_of_data_with_quirks { - const struct renesas_sdhi_of_data *of_data; - const struct renesas_sdhi_quirks *quirks; + int sg_idx; + u16 *buffer; + u32 buffer_bytes_left; + u32 total_bytes_left; + unsigned int features; + unsigned int brs_received: 1; + unsigned int dma_done: 1; + unsigned int dma_in_use: 1; + spinlock_t dma_lock; + struct mmc_omap_slot *slots[2]; + struct mmc_omap_slot *current_slot; + spinlock_t slot_lock; + wait_queue_head_t slot_wq; + int nr_slots; + struct timer_list clk_timer; + spinlock_t clk_lock; + unsigned int fclk_enabled: 1; + struct workqueue_struct *mmc_omap_wq; + struct omap_mmc_platform_data *pdata; }; -struct renesas_sdhi_scc; - -struct renesas_sdhi_of_data { - unsigned long tmio_flags; - u32 tmio_ocr_mask; - unsigned long capabilities; - unsigned long capabilities2; - enum dma_slave_buswidth dma_buswidth; - dma_addr_t dma_rx_offset; - unsigned int bus_shift; - int scc_offset; - struct renesas_sdhi_scc *taps; - int taps_num; - unsigned int max_blk_count; - unsigned short max_segs; - unsigned long sdhi_flags; -}; +struct omap_mmc_slot_data; -struct renesas_sdhi_scc { - unsigned long clk_rate; - u32 tap; - u32 tap_hs400_4tap; +struct mmc_omap_slot { + int id; + unsigned int vdd; + u16 saved_con; + u16 bus_mode; + u16 power_mode; + unsigned int fclk_freq; + struct tasklet_struct cover_tasklet; + struct timer_list cover_timer; + unsigned int cover_open; + struct mmc_request *mrq; + struct mmc_omap_host *host; + struct mmc_host *mmc; + struct gpio_desc *vsd; + struct gpio_desc *vio; + struct gpio_desc *cover; + struct omap_mmc_slot_data *pdata; }; -enum renesas_sdhi_dma_cookie { - COOKIE_UNMAPPED = 0, - COOKIE_PRE_MAPPED = 1, - COOKIE_MAPPED = 2, +struct omap_mmc_slot_data { + u8 wires; + u32 caps; + u32 pm_caps; + unsigned int nomux: 1; + unsigned int cover: 1; + unsigned int internal_clock: 1; + unsigned int nonremovable: 1; + unsigned int power_saving: 1; + unsigned int no_off: 1; + unsigned int no_regulator_off_init: 1; + unsigned int vcc_aux_disable_is_sleep: 1; + unsigned int features; + int switch_pin; + int gpio_wp; + int (*set_bus_mode)(struct device *, int, int); + int (*set_power)(struct device *, int, int, int); + int (*get_ro)(struct device *, int); + void (*remux)(struct device *, int, int); + void (*before_set_reg)(struct device *, int, int, int); + void (*after_set_reg)(struct device *, int, int, int); + void (*init_card)(struct mmc_card *); + int (*get_cover_state)(struct device *, int); + const char *name; + u32 ocr_mask; + int (*card_detect)(struct device *, int); + unsigned int ban_openended: 1; }; -struct renesas_sdhi_dma { - unsigned long end_flags; - enum dma_slave_buswidth dma_buswidth; - bool (*filter)(struct dma_chan *, void *); - void (*enable)(struct tmio_mmc_host *, bool); - struct completion dma_dataend; - struct tasklet_struct dma_complete; +struct omap_mmc_platform_data { + struct device *dev; + unsigned int nr_slots: 2; + unsigned int max_freq; + int (*init)(struct device *); + void (*cleanup)(struct device *); + void (*shutdown)(struct device *); + int (*get_context_loss_count)(struct device *); + u8 controller_flags; + u16 reg_offset; + struct omap_mmc_slot_data slots[2]; }; -struct renesas_sdhi { - struct clk *clk; - struct clk *clkh; - struct clk *clk_cd; - struct tmio_mmc_data mmc_data; - struct renesas_sdhi_dma dma_priv; - const struct renesas_sdhi_quirks *quirks; - struct pinctrl *pinctrl; - struct pinctrl_state *pins_default; - struct pinctrl_state *pins_uhs; - void *scc_ctl; - u32 scc_tappos; - u32 scc_tappos_hs400; - const u8 *adjust_hs400_calib_table; - bool needs_adjust_hs400; - unsigned long taps[1]; - unsigned long smpcmp[1]; - unsigned int tap_num; - unsigned int tap_set; - struct reset_control *rstc; +struct meson_mx_sdhc_data { + void (*init_hw)(struct mmc_host *); + void (*set_pdma)(struct mmc_host *); + void (*wait_before_send)(struct mmc_host *); + bool hardware_flush_all_cmds; }; -enum rpi_firmware_property_status { - RPI_FIRMWARE_STATUS_REQUEST = 0, - RPI_FIRMWARE_STATUS_SUCCESS = 2147483648, - RPI_FIRMWARE_STATUS_ERROR = 2147483649, +struct meson_mx_sdhc_host { + struct mmc_host *mmc; + struct mmc_request *mrq; + struct mmc_command *cmd; + int error; + struct regmap *regmap; + struct clk *pclk; + struct clk *sd_clk; + struct clk_bulk_data bulk_clks[4]; + bool bulk_clks_enabled; + const struct meson_mx_sdhc_data *platform; }; -enum rpi_firmware_property_tag { - RPI_FIRMWARE_PROPERTY_END = 0, - RPI_FIRMWARE_GET_FIRMWARE_REVISION = 1, - RPI_FIRMWARE_SET_CURSOR_INFO = 32784, - RPI_FIRMWARE_SET_CURSOR_STATE = 32785, - RPI_FIRMWARE_GET_BOARD_MODEL = 65537, - RPI_FIRMWARE_GET_BOARD_REVISION = 65538, - RPI_FIRMWARE_GET_BOARD_MAC_ADDRESS = 65539, - RPI_FIRMWARE_GET_BOARD_SERIAL = 65540, - RPI_FIRMWARE_GET_ARM_MEMORY = 65541, - RPI_FIRMWARE_GET_VC_MEMORY = 65542, - RPI_FIRMWARE_GET_CLOCKS = 65543, - RPI_FIRMWARE_GET_POWER_STATE = 131073, - RPI_FIRMWARE_GET_TIMING = 131074, - RPI_FIRMWARE_SET_POWER_STATE = 163841, - RPI_FIRMWARE_GET_CLOCK_STATE = 196609, - RPI_FIRMWARE_GET_CLOCK_RATE = 196610, - RPI_FIRMWARE_GET_VOLTAGE = 196611, - RPI_FIRMWARE_GET_MAX_CLOCK_RATE = 196612, - RPI_FIRMWARE_GET_MAX_VOLTAGE = 196613, - RPI_FIRMWARE_GET_TEMPERATURE = 196614, - RPI_FIRMWARE_GET_MIN_CLOCK_RATE = 196615, - RPI_FIRMWARE_GET_MIN_VOLTAGE = 196616, - RPI_FIRMWARE_GET_TURBO = 196617, - RPI_FIRMWARE_GET_MAX_TEMPERATURE = 196618, - RPI_FIRMWARE_GET_STC = 196619, - RPI_FIRMWARE_ALLOCATE_MEMORY = 196620, - RPI_FIRMWARE_LOCK_MEMORY = 196621, - RPI_FIRMWARE_UNLOCK_MEMORY = 196622, - RPI_FIRMWARE_RELEASE_MEMORY = 196623, - RPI_FIRMWARE_EXECUTE_CODE = 196624, - RPI_FIRMWARE_EXECUTE_QPU = 196625, - RPI_FIRMWARE_SET_ENABLE_QPU = 196626, - RPI_FIRMWARE_GET_DISPMANX_RESOURCE_MEM_HANDLE = 196628, - RPI_FIRMWARE_GET_EDID_BLOCK = 196640, - RPI_FIRMWARE_GET_CUSTOMER_OTP = 196641, - RPI_FIRMWARE_GET_DOMAIN_STATE = 196656, - RPI_FIRMWARE_GET_THROTTLED = 196678, - RPI_FIRMWARE_GET_CLOCK_MEASURED = 196679, - RPI_FIRMWARE_NOTIFY_REBOOT = 196680, - RPI_FIRMWARE_SET_CLOCK_STATE = 229377, - RPI_FIRMWARE_SET_CLOCK_RATE = 229378, - RPI_FIRMWARE_SET_VOLTAGE = 229379, - RPI_FIRMWARE_SET_TURBO = 229385, - RPI_FIRMWARE_SET_CUSTOMER_OTP = 229409, - RPI_FIRMWARE_SET_DOMAIN_STATE = 229424, - RPI_FIRMWARE_GET_GPIO_STATE = 196673, - RPI_FIRMWARE_SET_GPIO_STATE = 229441, - RPI_FIRMWARE_SET_SDHOST_CLOCK = 229442, - RPI_FIRMWARE_GET_GPIO_CONFIG = 196675, - RPI_FIRMWARE_SET_GPIO_CONFIG = 229443, - RPI_FIRMWARE_GET_PERIPH_REG = 196677, - RPI_FIRMWARE_SET_PERIPH_REG = 229445, - RPI_FIRMWARE_GET_POE_HAT_VAL = 196681, - RPI_FIRMWARE_SET_POE_HAT_VAL = 196688, - RPI_FIRMWARE_NOTIFY_XHCI_RESET = 196696, - RPI_FIRMWARE_NOTIFY_DISPLAY_DONE = 196710, - RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 262145, - RPI_FIRMWARE_FRAMEBUFFER_BLANK = 262146, - RPI_FIRMWARE_FRAMEBUFFER_GET_PHYSICAL_WIDTH_HEIGHT = 262147, - RPI_FIRMWARE_FRAMEBUFFER_GET_VIRTUAL_WIDTH_HEIGHT = 262148, - RPI_FIRMWARE_FRAMEBUFFER_GET_DEPTH = 262149, - RPI_FIRMWARE_FRAMEBUFFER_GET_PIXEL_ORDER = 262150, - RPI_FIRMWARE_FRAMEBUFFER_GET_ALPHA_MODE = 262151, - RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH = 262152, - RPI_FIRMWARE_FRAMEBUFFER_GET_VIRTUAL_OFFSET = 262153, - RPI_FIRMWARE_FRAMEBUFFER_GET_OVERSCAN = 262154, - RPI_FIRMWARE_FRAMEBUFFER_GET_PALETTE = 262155, - RPI_FIRMWARE_FRAMEBUFFER_GET_TOUCHBUF = 262159, - RPI_FIRMWARE_FRAMEBUFFER_GET_GPIOVIRTBUF = 262160, - RPI_FIRMWARE_FRAMEBUFFER_RELEASE = 294913, - RPI_FIRMWARE_FRAMEBUFFER_TEST_PHYSICAL_WIDTH_HEIGHT = 278531, - RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_WIDTH_HEIGHT = 278532, - RPI_FIRMWARE_FRAMEBUFFER_TEST_DEPTH = 278533, - RPI_FIRMWARE_FRAMEBUFFER_TEST_PIXEL_ORDER = 278534, - RPI_FIRMWARE_FRAMEBUFFER_TEST_ALPHA_MODE = 278535, - RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_OFFSET = 278537, - RPI_FIRMWARE_FRAMEBUFFER_TEST_OVERSCAN = 278538, - RPI_FIRMWARE_FRAMEBUFFER_TEST_PALETTE = 278539, - RPI_FIRMWARE_FRAMEBUFFER_TEST_VSYNC = 278542, - RPI_FIRMWARE_FRAMEBUFFER_SET_PHYSICAL_WIDTH_HEIGHT = 294915, - RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_WIDTH_HEIGHT = 294916, - RPI_FIRMWARE_FRAMEBUFFER_SET_DEPTH = 294917, - RPI_FIRMWARE_FRAMEBUFFER_SET_PIXEL_ORDER = 294918, - RPI_FIRMWARE_FRAMEBUFFER_SET_ALPHA_MODE = 294919, - RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_OFFSET = 294921, - RPI_FIRMWARE_FRAMEBUFFER_SET_OVERSCAN = 294922, - RPI_FIRMWARE_FRAMEBUFFER_SET_PALETTE = 294923, - RPI_FIRMWARE_FRAMEBUFFER_SET_TOUCHBUF = 294943, - RPI_FIRMWARE_FRAMEBUFFER_SET_GPIOVIRTBUF = 294944, - RPI_FIRMWARE_FRAMEBUFFER_SET_VSYNC = 294926, - RPI_FIRMWARE_FRAMEBUFFER_SET_BACKLIGHT = 294927, - RPI_FIRMWARE_VCHIQ_INIT = 294928, - RPI_FIRMWARE_GET_COMMAND_LINE = 327681, - RPI_FIRMWARE_GET_DMA_CHANNELS = 393217, -}; +typedef guid_t efi_guid_t; -struct rpi_firmware { - struct mbox_client cl; - struct mbox_chan *chan; - struct completion c; - u32 enabled; - struct kref consumers; -}; +typedef u16 efi_char16_t; -struct rpi_firmware_property_tag_header { - u32 tag; - u32 buf_size; - u32 req_resp_size; -}; +typedef unsigned long efi_status_t; -struct rpi_firmware_clk_rate_request { - __le32 id; - __le32 rate; -}; +typedef u16 ucs2_char_t; -struct of_timer_base { +struct sp804_clkevt { void *base; - const char *name; - int index; + void *load; + void *load_h; + void *value; + void *value_h; + void *ctrl; + void *intclr; + void *ris; + void *mis; + void *bgload; + void *bgload_h; + unsigned long reload; + int width; }; -struct of_timer_irq { - int irq; - int index; - int percpu; - const char *name; - unsigned long flags; - irq_handler_t handler; +struct sp804_timer { + int load; + int load_h; + int value; + int value_h; + int ctrl; + int intclr; + int ris; + int mis; + int bgload; + int bgload_h; + int timer_base[2]; + int width; }; -struct of_timer_clk { - struct clk *clk; - const char *name; - int index; - unsigned long rate; - unsigned long period; +struct supplier_bindings { + struct device_node * (*parse_prop)(struct device_node *, const char *, int); + bool optional; + bool node_not_dev; }; -struct timer_of { - unsigned int flags; - struct device_node *np; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct clock_event_device clkevt; - struct of_timer_base of_base; - struct of_timer_irq of_irq; - struct of_timer_clk of_clk; - void *private_data; - long: 32; +struct of_endpoint { + unsigned int port; + unsigned int id; + const struct device_node *local_node; }; -struct hid_device; - -struct hid_report; +struct hwspinlock; -struct hid_ll_driver { - int (*start)(struct hid_device *); - void (*stop)(struct hid_device *); - int (*open)(struct hid_device *); - void (*close)(struct hid_device *); - int (*power)(struct hid_device *, int); - int (*parse)(struct hid_device *); - void (*request)(struct hid_device *, struct hid_report *, int); - int (*wait)(struct hid_device *); - int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int); - int (*output_report)(struct hid_device *, __u8 *, size_t); - int (*idle)(struct hid_device *, int, int, int); - bool (*may_wakeup)(struct hid_device *); - unsigned int max_buffer_size; +struct hwspinlock_ops { + int (*trylock)(struct hwspinlock *); + void (*unlock)(struct hwspinlock *); + void (*relax)(struct hwspinlock *); }; -enum hid_type { - HID_TYPE_OTHER = 0, - HID_TYPE_USBMOUSE = 1, - HID_TYPE_USBNONE = 2, -}; +struct hwspinlock_device; -struct hid_report_enum { - unsigned int numbered; - struct list_head report_list; - struct hid_report *report_id_hash[256]; +struct hwspinlock { + struct hwspinlock_device *bank; + spinlock_t lock; + void *priv; }; -struct semaphore { - raw_spinlock_t lock; - unsigned int count; - struct list_head wait_list; +struct hwspinlock_device { + struct device *dev; + const struct hwspinlock_ops *ops; + int base_id; + int num_locks; + struct hwspinlock lock[0]; }; -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 qcom_hwspinlock_of_data { + u32 offset; + u32 stride; + const struct regmap_config *regmap_config; }; -struct hid_collection; - -struct hid_driver; - -struct hid_field; - -struct hid_usage; +struct extcon_cable; -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 extcon_dev { + const char *name; + const unsigned int *supported_cable; + const u32 *mutually_exclusive; long: 32; struct device dev; - struct hid_driver *driver; - void *devres_group_id; - const struct hid_ll_driver *ll_driver; - struct mutex ll_open_lock; - unsigned int ll_open_count; - unsigned long status; - unsigned int claimed; - unsigned int quirks; - unsigned int initial_quirks; - bool io_started; - struct list_head inputs; - void *hiddev; - void *hidraw; - char name[128]; - char phys[64]; - char uniq[64]; - void *driver_data; - int (*ff_init)(struct hid_device *); - int (*hiddev_connect)(struct hid_device *, unsigned int); - void (*hiddev_disconnect)(struct hid_device *); - void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); - void (*hiddev_report_event)(struct hid_device *, struct hid_report *); - unsigned short debug; - struct dentry *debug_dir; - struct dentry *debug_rdesc; - struct dentry *debug_events; - struct list_head debug_list; - spinlock_t debug_list_lock; - wait_queue_head_t debug_wait; unsigned int id; - struct hid_bpf bpf; - long: 32; -}; - -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 raw_notifier_head nh_all; + struct raw_notifier_head *nh; + struct list_head entry; + int max_supported; + spinlock_t lock; + u32 state; + struct device_type extcon_dev_type; + struct extcon_cable *cables; + struct attribute_group attr_g_muex; + struct attribute **attrs_muex; + struct device_attribute *d_attrs_muex; }; -struct hid_field_entry; - -struct hid_report { - struct list_head list; - struct list_head hidinput_list; - struct list_head field_entry_list; +struct extcon_dev_notifier_devres { + struct extcon_dev *edev; unsigned int id; - enum hid_report_type type; - unsigned int application; - struct hid_field *field[256]; - struct hid_field_entry *field_entries; - unsigned int maxfield; - unsigned int size; - struct hid_device *device; - bool tool_active; - unsigned int tool; -}; - -struct hid_input; - -struct hid_field { - unsigned int physical; - unsigned int logical; - unsigned int application; - struct hid_usage *usage; - unsigned int maxusage; - unsigned int flags; - unsigned int report_offset; - unsigned int report_size; - unsigned int report_count; - unsigned int report_type; - __s32 *value; - __s32 *new_value; - __s32 *usages_priorities; - __s32 logical_minimum; - __s32 logical_maximum; - __s32 physical_minimum; - __s32 physical_maximum; - __s32 unit_exponent; - unsigned int unit; - bool ignored; - struct hid_report *report; - unsigned int index; - struct hid_input *hidinput; - __u16 dpad; - unsigned int slot_idx; -}; - -struct hid_usage { - unsigned int hid; - unsigned int collection_index; - unsigned int usage_index; - __s8 resolution_multiplier; - __s8 wheel_factor; - __u16 code; - __u8 type; - __s8 hat_min; - __s8 hat_max; - __s8 hat_dir; - __s16 wheel_accumulated; -}; - -struct 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_device_id; - -struct hid_report_id; - -struct hid_usage_id; - -struct hid_driver { - char *name; - const struct hid_device_id *id_table; - struct list_head dyn_list; - spinlock_t dyn_lock; - bool (*match)(struct hid_device *, bool); - int (*probe)(struct hid_device *, const struct hid_device_id *); - void (*remove)(struct hid_device *); - const struct hid_report_id *report_table; - int (*raw_event)(struct hid_device *, struct hid_report *, u8 *, int); - const struct hid_usage_id *usage_table; - int (*event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); - void (*report)(struct hid_device *, struct hid_report *); - __u8 * (*report_fixup)(struct hid_device *, __u8 *, unsigned int *); - int (*input_mapping)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *); - int (*input_mapped)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *); - int (*input_configured)(struct hid_device *, struct hid_input *); - void (*feature_mapping)(struct hid_device *, struct hid_field *, struct hid_usage *); - int (*suspend)(struct hid_device *, pm_message_t); - int (*resume)(struct hid_device *); - int (*reset_resume)(struct hid_device *); - struct device_driver driver; -}; - -struct hid_device_id { - __u16 bus; - __u16 group; - __u32 vendor; - __u32 product; - kernel_ulong_t driver_data; -}; - -struct hid_report_id { - __u32 report_type; -}; - -struct hid_usage_id { - __u32 usage_hid; - __u32 usage_type; - __u32 usage_code; -}; - -struct hid_bpf_prog_list { - u16 prog_idx[64]; - u8 prog_cnt; -}; - -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 hid_control_fifo { - unsigned char dir; - struct hid_report *report; - char *raw_report; -}; - -struct hid_output_fifo { - struct hid_report *report; - char *raw_report; -}; - -struct usbhid_device { - struct hid_device *hid; - struct usb_interface *intf; - int ifnum; - unsigned int bufsize; - struct urb *urbin; - char *inbuf; - dma_addr_t inbuf_dma; - struct urb *urbctrl; - struct usb_ctrlrequest *cr; - struct hid_control_fifo ctrl[256]; - unsigned char ctrlhead; - unsigned char ctrltail; - char *ctrlbuf; - dma_addr_t ctrlbuf_dma; - unsigned long last_ctrl; - struct urb *urbout; - struct hid_output_fifo out[256]; - unsigned char outhead; - unsigned char outtail; - char *outbuf; - dma_addr_t outbuf_dma; - unsigned long last_out; - struct mutex mutex; - spinlock_t lock; - unsigned long iofl; - struct timer_list io_retry; - unsigned long stop_retry; - unsigned int retry_delay; - struct work_struct reset_work; - wait_queue_head_t wait; + struct notifier_block *nb; }; -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 stm32_fmc2_ebi; struct stm32_fmc2_prop { @@ -54736,6 +61675,10 @@ enum iio_chan_type { IIO_POSITIONRELATIVE = 32, IIO_PHASE = 33, IIO_MASSCONCENTRATION = 34, + IIO_DELTA_ANGL = 35, + IIO_DELTA_VELOCITY = 36, + IIO_COLORTEMP = 37, + IIO_CHROMATICITY = 38, }; enum iio_endian { @@ -54744,43 +61687,6 @@ enum iio_endian { IIO_LE = 2, }; -struct iio_event_spec; - -struct iio_chan_spec_ext_info; - -struct iio_chan_spec { - enum iio_chan_type type; - int channel; - int channel2; - unsigned long address; - int scan_index; - struct { - char sign; - u8 realbits; - u8 storagebits; - u8 shift; - u8 repeat; - enum iio_endian endianness; - } scan_type; - long info_mask_separate; - long info_mask_separate_available; - long info_mask_shared_by_type; - long info_mask_shared_by_type_available; - long info_mask_shared_by_dir; - long info_mask_shared_by_dir_available; - long info_mask_shared_by_all; - long info_mask_shared_by_all_available; - const struct iio_event_spec *event_spec; - unsigned int num_event_specs; - const struct iio_chan_spec_ext_info *ext_info; - const char *extend_name; - const char *datasheet_name; - unsigned int modified: 1; - unsigned int indexed: 1; - unsigned int output: 1; - unsigned int differential: 1; -}; - enum iio_event_type { IIO_EV_TYPE_THRESH = 0, IIO_EV_TYPE_MAG = 1, @@ -54801,15 +61707,6 @@ enum iio_event_direction { IIO_EV_DIR_DOUBLETAP = 5, }; -struct iio_event_spec { - enum iio_event_type type; - enum iio_event_direction dir; - unsigned long mask_separate; - unsigned long mask_shared_by_type; - unsigned long mask_shared_by_dir; - unsigned long mask_shared_by_all; -}; - enum iio_shared_by { IIO_SEPARATE = 0, IIO_SHARED_BY_TYPE = 1, @@ -54817,14 +61714,18 @@ enum iio_shared_by { IIO_SHARED_BY_ALL = 3, }; -struct iio_dev; - -struct iio_chan_spec_ext_info { - const char *name; - enum iio_shared_by shared; - ssize_t (*read)(struct iio_dev *, uintptr_t, const struct iio_chan_spec *, char *); - ssize_t (*write)(struct iio_dev *, uintptr_t, const struct iio_chan_spec *, const char *, size_t); - uintptr_t private; +enum iio_event_info { + IIO_EV_INFO_ENABLE = 0, + IIO_EV_INFO_VALUE = 1, + IIO_EV_INFO_HYSTERESIS = 2, + IIO_EV_INFO_PERIOD = 3, + IIO_EV_INFO_HIGH_PASS_FILTER_3DB = 4, + IIO_EV_INFO_LOW_PASS_FILTER_3DB = 5, + IIO_EV_INFO_TIMEOUT = 6, + IIO_EV_INFO_RESET_TIMEOUT = 7, + IIO_EV_INFO_TAP2_MIN_DELAY = 8, + IIO_EV_INFO_RUNNING_PERIOD = 9, + IIO_EV_INFO_RUNNING_COUNT = 10, }; struct iio_buffer; @@ -54833,6 +61734,8 @@ struct iio_trigger; struct iio_poll_func; +struct iio_chan_spec; + struct iio_info; struct iio_buffer_setup_ops; @@ -54859,6 +61762,44 @@ struct iio_dev { void *priv; }; +struct iio_event_interface; + +struct iio_ioctl_handler; + +struct iio_dev_opaque { + struct iio_dev indio_dev; + int currentmode; + int id; + struct module *driver_module; + struct mutex mlock; + struct lock_class_key mlock_key; + struct mutex info_exist_lock; + bool trig_readonly; + struct iio_event_interface *event_interface; + struct iio_buffer **attached_buffers; + unsigned int attached_buffers_cnt; + struct iio_ioctl_handler *buffer_ioctl_handler; + struct list_head buffer_list; + struct list_head channel_attr_list; + struct attribute_group chan_attr_group; + struct list_head ioctl_handlers; + const struct attribute_group **groups; + int groupcounter; + struct attribute_group legacy_scan_el_group; + struct attribute_group legacy_buffer_group; + void *bounce_buffer; + size_t bounce_buffer_size; + unsigned int scan_index_timestamp; + clockid_t clock_id; + struct cdev chrdev; + unsigned long flags; + struct dentry *debugfs_dentry; + unsigned int cached_reg_addr; + char read_buf[20]; + unsigned int read_buf_len; + long: 32; +}; + struct iio_subirq { bool enabled; }; @@ -54900,16 +61841,58 @@ struct iio_poll_func { s64 timestamp; }; -enum iio_event_info { - IIO_EV_INFO_ENABLE = 0, - IIO_EV_INFO_VALUE = 1, - IIO_EV_INFO_HYSTERESIS = 2, - IIO_EV_INFO_PERIOD = 3, - IIO_EV_INFO_HIGH_PASS_FILTER_3DB = 4, - IIO_EV_INFO_LOW_PASS_FILTER_3DB = 5, - IIO_EV_INFO_TIMEOUT = 6, - IIO_EV_INFO_RESET_TIMEOUT = 7, - IIO_EV_INFO_TAP2_MIN_DELAY = 8, +struct iio_event_spec; + +struct iio_chan_spec_ext_info; + +struct iio_chan_spec { + enum iio_chan_type type; + int channel; + int channel2; + unsigned long address; + int scan_index; + struct { + char sign; + u8 realbits; + u8 storagebits; + u8 shift; + u8 repeat; + enum iio_endian endianness; + } scan_type; + long info_mask_separate; + long info_mask_separate_available; + long info_mask_shared_by_type; + long info_mask_shared_by_type_available; + long info_mask_shared_by_dir; + long info_mask_shared_by_dir_available; + long info_mask_shared_by_all; + long info_mask_shared_by_all_available; + const struct iio_event_spec *event_spec; + unsigned int num_event_specs; + const struct iio_chan_spec_ext_info *ext_info; + const char *extend_name; + const char *datasheet_name; + unsigned int modified: 1; + unsigned int indexed: 1; + unsigned int output: 1; + unsigned int differential: 1; +}; + +struct iio_event_spec { + enum iio_event_type type; + enum iio_event_direction dir; + unsigned long mask_separate; + unsigned long mask_shared_by_type; + unsigned long mask_shared_by_dir; + unsigned long mask_shared_by_all; +}; + +struct iio_chan_spec_ext_info { + const char *name; + enum iio_shared_by shared; + ssize_t (*read)(struct iio_dev *, uintptr_t, const struct iio_chan_spec *, char *); + ssize_t (*write)(struct iio_dev *, uintptr_t, const struct iio_chan_spec *, const char *, size_t); + uintptr_t private; }; struct iio_info { @@ -54925,6 +61908,7 @@ struct iio_info { int (*write_event_config)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, int); int (*read_event_value)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, enum iio_event_info, int *, int *); int (*write_event_value)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, enum iio_event_info, int, int); + int (*read_event_label)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, char *); int (*validate_trigger)(struct iio_dev *, struct iio_trigger *); int (*update_scan_mode)(struct iio_dev *, const unsigned long *); int (*debugfs_reg_access)(struct iio_dev *, unsigned int, unsigned int, unsigned int *); @@ -54941,240 +61925,303 @@ struct iio_buffer_setup_ops { bool (*validate_scan_mask)(struct iio_dev *, const unsigned long *); }; -struct iio_const_attr { - const char *string; - struct device_attribute dev_attr; +struct iio_ioctl_handler { + struct list_head entry; + long (*ioctl)(struct iio_dev *, struct file *, unsigned int, unsigned long); }; -enum mpu3050_fullscale { - FS_250_DPS = 0, - FS_500_DPS = 1, - FS_1000_DPS = 2, - FS_2000_DPS = 3, +struct pmu_hw_events; + +struct arm_pmu { + struct pmu pmu; + cpumask_t supported_cpus; + char *name; + int pmuver; + irqreturn_t (*handle_irq)(struct arm_pmu *); + void (*enable)(struct perf_event *); + void (*disable)(struct perf_event *); + int (*get_event_idx)(struct pmu_hw_events *, struct perf_event *); + void (*clear_event_idx)(struct pmu_hw_events *, struct perf_event *); + int (*set_event_filter)(struct hw_perf_event *, struct perf_event_attr *); + u64 (*read_counter)(struct perf_event *); + void (*write_counter)(struct perf_event *, u64); + void (*start)(struct arm_pmu *); + void (*stop)(struct arm_pmu *); + void (*reset)(void *); + int (*map_event)(struct perf_event *); + int num_events; + bool secure_access; + unsigned long pmceid_bitmap[2]; + unsigned long pmceid_ext_bitmap[2]; + struct platform_device *plat_device; + struct pmu_hw_events __attribute__((btf_type_tag("percpu"))) *hw_events; + struct hlist_node node; + struct notifier_block cpu_pm_nb; + const struct attribute_group *attr_groups[5]; + u64 reg_pmmir; + unsigned long acpi_cpuid; + long: 32; }; -enum mpu3050_lpf { - LPF_256_HZ_NOLPF = 0, - LPF_188_HZ = 1, - LPF_98_HZ = 2, - LPF_42_HZ = 3, - LPF_20_HZ = 4, - LPF_10_HZ = 5, - LPF_5_HZ = 6, - LPF_2100_HZ_NOLPF = 7, +struct pmu_hw_events { + struct perf_event *events[32]; + unsigned long used_mask[1]; + raw_spinlock_t pmu_lock; + struct arm_pmu *percpu_pmu; + int irq; }; -enum iio_buffer_direction { - IIO_BUFFER_DIRECTION_IN = 0, - IIO_BUFFER_DIRECTION_OUT = 1, +struct pmu_irq_ops { + void (*enable_pmuirq)(unsigned int); + void (*disable_pmuirq)(unsigned int); + void (*free_pmuirq)(unsigned int, int, void __attribute__((btf_type_tag("percpu"))) *); }; -enum iio_chan_info_enum { - IIO_CHAN_INFO_RAW = 0, - IIO_CHAN_INFO_PROCESSED = 1, - IIO_CHAN_INFO_SCALE = 2, - IIO_CHAN_INFO_OFFSET = 3, - IIO_CHAN_INFO_CALIBSCALE = 4, - IIO_CHAN_INFO_CALIBBIAS = 5, - IIO_CHAN_INFO_PEAK = 6, - IIO_CHAN_INFO_PEAK_SCALE = 7, - IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW = 8, - IIO_CHAN_INFO_AVERAGE_RAW = 9, - IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY = 10, - IIO_CHAN_INFO_HIGH_PASS_FILTER_3DB_FREQUENCY = 11, - IIO_CHAN_INFO_SAMP_FREQ = 12, - IIO_CHAN_INFO_FREQUENCY = 13, - IIO_CHAN_INFO_PHASE = 14, - IIO_CHAN_INFO_HARDWAREGAIN = 15, - IIO_CHAN_INFO_HYSTERESIS = 16, - IIO_CHAN_INFO_HYSTERESIS_RELATIVE = 17, - IIO_CHAN_INFO_INT_TIME = 18, - IIO_CHAN_INFO_ENABLE = 19, - IIO_CHAN_INFO_CALIBHEIGHT = 20, - IIO_CHAN_INFO_CALIBWEIGHT = 21, - IIO_CHAN_INFO_DEBOUNCE_COUNT = 22, - IIO_CHAN_INFO_DEBOUNCE_TIME = 23, - IIO_CHAN_INFO_CALIBEMISSIVITY = 24, - IIO_CHAN_INFO_OVERSAMPLING_RATIO = 25, - IIO_CHAN_INFO_THERMOCOUPLE_TYPE = 26, - IIO_CHAN_INFO_CALIBAMBIENT = 27, - IIO_CHAN_INFO_ZEROPOINT = 28, +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, }; -typedef s64 int64_t; +enum armpmu_attr_groups { + ARMPMU_ATTR_GROUP_COMMON = 0, + ARMPMU_ATTR_GROUP_EVENTS = 1, + ARMPMU_ATTR_GROUP_FORMATS = 2, + ARMPMU_ATTR_GROUP_CAPS = 3, + ARMPMU_NR_ATTR_GROUPS = 4, +}; -struct iio_mount_matrix { - const char *rotation[9]; +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, }; -struct iio_dev_attr { - struct device_attribute dev_attr; - u64 address; - struct list_head l; - const struct iio_chan_spec *c; - struct iio_buffer *buffer; +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, }; -struct i2c_mux_core; +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, +}; -struct mpu3050 { - struct device *dev; - struct iio_mount_matrix orientation; - struct regmap *map; - struct mutex lock; - int irq; - struct regulator_bulk_data regs[2]; - enum mpu3050_fullscale fullscale; - enum mpu3050_lpf lpf; - u8 divisor; - s16 calibration[3]; - struct iio_trigger *trig; - bool hw_irq_trigger; - bool irq_actl; - bool irq_latch; - bool irq_opendrain; - bool pending_fifo_footer; - s64 hw_timestamp; - struct i2c_mux_core *i2cmux; - long: 32; -}; - -struct lwtunnel_encap_ops { - int (*build_state)(struct net *, struct nlattr *, unsigned int, const void *, struct lwtunnel_state **, struct netlink_ext_ack *); - void (*destroy_state)(struct lwtunnel_state *); - int (*output)(struct net *, struct sock *, struct sk_buff *); - int (*input)(struct sk_buff *); - int (*fill_encap)(struct sk_buff *, struct lwtunnel_state *); - int (*get_encap_size)(struct lwtunnel_state *); - int (*cmp_encap)(struct lwtunnel_state *, struct lwtunnel_state *); - int (*xmit)(struct sk_buff *); - struct module *owner; +enum 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 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 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 { - 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, + INET_FRAG_FIRST_IN = 1, + INET_FRAG_LAST_IN = 2, + INET_FRAG_COMPLETE = 4, + INET_FRAG_HASH_DEAD = 8, + INET_FRAG_DROP = 16, }; 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, + INET_ECN_NOT_ECT = 0, + INET_ECN_ECT_1 = 1, + INET_ECN_ECT_0 = 2, + INET_ECN_CE = 3, + INET_ECN_MASK = 3, }; -enum { - LWTUNNEL_XMIT_DONE = 0, - LWTUNNEL_XMIT_CONTINUE = 1, +enum ip_defrag_users { + IP_DEFRAG_LOCAL_DELIVER = 0, + IP_DEFRAG_CALL_RA_CHAIN = 1, + IP_DEFRAG_CONNTRACK_IN = 2, + __IP_DEFRAG_CONNTRACK_IN_END = 65537, + IP_DEFRAG_CONNTRACK_OUT = 65538, + __IP_DEFRAG_CONNTRACK_OUT_END = 131073, + IP_DEFRAG_CONNTRACK_BRIDGE_IN = 131074, + __IP_DEFRAG_CONNTRACK_BRIDGE_IN = 196609, + IP_DEFRAG_VS_IN = 196610, + IP_DEFRAG_VS_OUT = 196611, + IP_DEFRAG_VS_FWD = 196612, + IP_DEFRAG_AF_PACKET = 196613, + IP_DEFRAG_MACVLAN = 196614, }; -struct qdisc_skb_cb { - struct { - unsigned int pkt_len; - u16 slave_dev_queue_mapping; - u16 tc_classid; - }; - unsigned char data[20]; +struct ipq { + struct inet_frag_queue q; + u8 ecn; + u16 max_df_size; + int iif; + unsigned int rid; + struct inet_peer *peer; }; -struct bpf_skb_data_end { - struct qdisc_skb_cb qdisc_cb; - void *data_meta; - void *data_end; +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 gre_base_hdr { - __be16 flags; - __be16 protocol; +struct packet_offload { + __be16 type; + u16 priority; + struct offload_callbacks callbacks; + struct list_head list; }; -struct udphdr { - __be16 source; - __be16 dest; - __be16 len; - __sum16 check; +struct inet_protosw { + struct list_head list; + unsigned short type; + unsigned short protocol; + struct proto *prot; + const struct proto_ops *ops; + unsigned char flags; }; -struct bpf_lwt_prog { - struct bpf_prog *prog; - char *name; +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 bpf_lwt { - struct bpf_lwt_prog in; - struct bpf_lwt_prog out; - struct bpf_lwt_prog xmit; - int family; +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, }; -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 *); - 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, + 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, }; -struct eeprom_req_info { - struct ethnl_req_info base; - u32 offset; - u32 length; - u8 page; - u8 bank; - u8 i2c_address; +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, }; -struct eeprom_reply_data { - struct ethnl_reply_data base; - u32 length; - u8 *data; +struct ip_sf_socklist { + unsigned int sl_max; + unsigned int sl_count; + struct callback_head rcu; + __be32 sl_addr[0]; }; -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 skb_gso_cb { + union { + int mac_offset; + int data_offset; + }; + int encap_level; + __wsum csum; + __u16 csum_start; }; -struct raw_hashinfo { - spinlock_t lock; +struct rps_sock_flow_table { + u32 mask; long: 32; long: 32; long: 32; @@ -55190,471 +62237,386 @@ struct raw_hashinfo { long: 32; long: 32; long: 32; - struct hlist_head ht[256]; + u32 ents[0]; }; -struct snmp_mib { - const char *name; - int entry; +struct rtentry { + unsigned long rt_pad1; + struct sockaddr rt_dst; + struct sockaddr rt_gateway; + struct sockaddr rt_genmask; + unsigned short rt_flags; + short rt_pad2; + unsigned long rt_pad3; + void *rt_pad4; + short rt_metric; + char __attribute__((btf_type_tag("user"))) *rt_dev; + unsigned long rt_mtu; + unsigned long rt_window; + unsigned short rt_irtt; }; enum { - 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, + UDP_BPF_IPV4 = 0, + UDP_BPF_IPV6 = 1, + UDP_BPF_NUM_PROTS = 2, }; -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, +struct ip6_ra_chain { + struct ip6_ra_chain *next; + struct sock *sk; + int sel; + void (*destructor)(struct sock *); }; -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, +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]; }; -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, +struct group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; }; -typedef int mh_filter_t(struct sock *, struct sk_buff *); - -enum sock_type { - SOCK_STREAM = 1, - SOCK_DGRAM = 2, - SOCK_RAW = 3, - SOCK_RDM = 4, - SOCK_SEQPACKET = 5, - SOCK_DCCP = 6, - SOCK_PACKET = 10, +struct compat_group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; }; -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, +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]; + }; + }; }; -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, +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; }; -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, +struct ipv6_mreq { + struct in6_addr ipv6mr_multiaddr; + int ipv6mr_ifindex; }; -struct icmp6_filter { - __u32 data[8]; +struct group_req { + __u32 gr_interface; + struct __kernel_sockaddr_storage gr_group; }; -struct raw6_sock { - struct inet_sock inet; - __u32 checksum; - __u32 offset; - struct icmp6_filter filter; - __u32 ip6mr_table; - struct ipv6_pinfo inet6; - long: 32; +struct ip6_mtuinfo { + struct sockaddr_in6 ip6m_addr; + __u32 ip6m_mtu; }; -struct icmpv6_echo { - __be16 identifier; - __be16 sequence; +enum { + IP6_FH_F_FRAG = 1, + IP6_FH_F_AUTH = 2, + IP6_FH_F_SKIP_RH = 4, }; -struct icmpv6_nd_advt { - __u32 reserved: 5; - __u32 override: 1; - __u32 solicited: 1; - __u32 router: 1; - __u32 reserved2: 24; +struct rpc_filelist { + const char *name; + const struct file_operations *i_fop; + umode_t mode; }; -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 rpc_pipe_msg; -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 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 sockcm_cookie { - u64 transmit_time; - u32 mark; - u32 tsflags; +struct rpc_pipe_msg { + struct list_head list; + void *data; + size_t len; + size_t copied; + int errno; }; -struct ipcm6_cookie { - struct sockcm_cookie sockc; - __s16 hlimit; - __s16 tclass; - __u16 gso_size; - __s8 dontfrag; - struct ipv6_txoptions *opt; - long: 32; +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, }; -struct seq_net_private {}; +enum { + RPCAUTH_info = 0, + RPCAUTH_EOF = 1, +}; -struct raw_iter_state { - struct seq_net_private p; - int bucket; +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 raw6_frag_vec { - struct msghdr *msg; - int hlen; - char c[4]; +enum { + RPC_PIPEFS_MOUNT = 0, + RPC_PIPEFS_UMOUNT = 1, }; -struct can_dev_rcv_lists { - struct hlist_head rx[4]; - struct hlist_head rx_sff[2048]; - struct hlist_head rx_eff[1024]; - int entries; +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 can_pkg_stats { - unsigned long jiffies_init; - unsigned long rx_frames; - unsigned long tx_frames; - unsigned long matches; - unsigned long total_rx_rate; - unsigned long total_tx_rate; - unsigned long total_rx_match_ratio; - unsigned long current_rx_rate; - unsigned long current_tx_rate; - unsigned long current_rx_match_ratio; - unsigned long max_rx_rate; - unsigned long max_tx_rate; - unsigned long max_rx_match_ratio; - unsigned long rx_frames_delta; - unsigned long tx_frames_delta; - unsigned long matches_delta; +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 can_rcv_lists_stats { - unsigned long stats_reset; - unsigned long user_reset; - unsigned long rcv_entries; - unsigned long rcv_entries_max; +struct rpc_pipe; + +struct rpc_inode { + struct inode vfs_inode; + void *private; + struct rpc_pipe *pipe; + wait_queue_head_t waitq; + long: 32; }; -struct can_proto { - int type; - int protocol; - const struct proto_ops *ops; - struct proto *prot; +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 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 cache_detail; + +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 net_proto_family { - int family; - int (*create)(struct net *, struct socket *, int, int); +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; }; -enum { - RX_ERR = 0, - RX_ALL = 1, - RX_FIL = 2, - RX_INV = 3, - RX_MAX = 4, +enum switchdev_attr_id { + SWITCHDEV_ATTR_ID_UNDEFINED = 0, + SWITCHDEV_ATTR_ID_PORT_STP_STATE = 1, + SWITCHDEV_ATTR_ID_PORT_MST_STATE = 2, + SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS = 3, + SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS = 4, + SWITCHDEV_ATTR_ID_PORT_MROUTER = 5, + SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME = 6, + SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING = 7, + SWITCHDEV_ATTR_ID_BRIDGE_VLAN_PROTOCOL = 8, + SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED = 9, + SWITCHDEV_ATTR_ID_BRIDGE_MROUTER = 10, + SWITCHDEV_ATTR_ID_BRIDGE_MST = 11, + SWITCHDEV_ATTR_ID_MRP_PORT_ROLE = 12, + SWITCHDEV_ATTR_ID_VLAN_MSTI = 13, }; -typedef __u32 canid_t; - -struct canfd_frame { - canid_t can_id; - __u8 len; - __u8 flags; - __u8 __res0; - __u8 __res1; - __u8 data[64]; +enum switchdev_notifier_type { + SWITCHDEV_FDB_ADD_TO_BRIDGE = 1, + SWITCHDEV_FDB_DEL_TO_BRIDGE = 2, + SWITCHDEV_FDB_ADD_TO_DEVICE = 3, + SWITCHDEV_FDB_DEL_TO_DEVICE = 4, + SWITCHDEV_FDB_OFFLOADED = 5, + SWITCHDEV_FDB_FLUSH_TO_BRIDGE = 6, + SWITCHDEV_PORT_OBJ_ADD = 7, + SWITCHDEV_PORT_OBJ_DEL = 8, + SWITCHDEV_PORT_ATTR_SET = 9, + SWITCHDEV_VXLAN_FDB_ADD_TO_BRIDGE = 10, + SWITCHDEV_VXLAN_FDB_DEL_TO_BRIDGE = 11, + SWITCHDEV_VXLAN_FDB_ADD_TO_DEVICE = 12, + SWITCHDEV_VXLAN_FDB_DEL_TO_DEVICE = 13, + SWITCHDEV_VXLAN_FDB_OFFLOADED = 14, + SWITCHDEV_BRPORT_OFFLOADED = 15, + SWITCHDEV_BRPORT_UNOFFLOADED = 16, + SWITCHDEV_BRPORT_REPLAY = 17, }; -struct receiver { - struct hlist_node list; - canid_t can_id; - canid_t mask; - unsigned long matches; - void (*func)(struct sk_buff *, void *); - void *data; - char *ident; - struct sock *sk; - struct callback_head rcu; +typedef void switchdev_deferred_func_t(struct net_device *, const void *); + +struct switchdev_deferred_item { + struct list_head list; + struct net_device *dev; + netdevice_tracker dev_tracker; + switchdev_deferred_func_t *func; + unsigned long data[0]; }; -struct canxl_frame { - canid_t prio; - __u8 flags; - __u8 sdt; - __u16 len; - __u32 af; - __u8 data[2048]; +struct switchdev_notifier_info { + struct net_device *dev; + struct netlink_ext_ack *extack; + const void *ctx; }; -struct can_frame { - canid_t can_id; +typedef __kernel_clock_t clock_t; + +struct switchdev_attr { + struct net_device *orig_dev; + enum switchdev_attr_id id; + u32 flags; + void *complete_priv; + void (*complete)(struct net_device *, int, void *); union { - __u8 len; - __u8 can_dlc; - }; - __u8 __pad; - __u8 __res0; - __u8 len8_dlc; - __u8 data[8]; + u8 stp_state; + struct switchdev_mst_state mst_state; + struct switchdev_brport_flags brport_flags; + bool mrouter; + clock_t ageing_time; + bool vlan_filtering; + u16 vlan_protocol; + bool mst; + bool mc_disabled; + u8 mrp_port_role; + struct switchdev_vlan_msti vlan_msti; + } u; }; -struct can_skb_priv { - int ifindex; - int skbcnt; - unsigned int frame_len; - long: 32; - struct can_frame cf[0]; +struct switchdev_notifier_port_attr_info { + struct switchdev_notifier_info info; + const struct switchdev_attr *attr; + bool handled; }; -struct j1939_priv; - -struct can_ml_priv { - struct can_dev_rcv_lists dev_rcv_lists; - struct j1939_priv *j1939_priv; +struct switchdev_notifier_port_obj_info { + struct switchdev_notifier_info info; + const struct switchdev_obj *obj; + bool handled; }; -struct svc_xprt_class; - -struct svc_xprt_ops; +struct switchdev_nested_priv { + bool (*check_cb)(const struct net_device *); + bool (*foreign_dev_check_cb)(const struct net_device *, const struct net_device *); + const struct net_device *dev; + struct net_device *lower_dev; +}; -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 netdev_nested_priv { + unsigned char flags; + void *data; }; -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 switchdev_notifier_fdb_info { + struct switchdev_notifier_info info; + const unsigned char *addr; + u16 vid; + u8 added_by_user: 1; + u8 is_local: 1; + u8 locked: 1; + u8 offloaded: 1; }; -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_ctxt)(struct svc_xprt *, void *); - void (*xpo_detach)(struct svc_xprt *); - void (*xpo_free)(struct svc_xprt *); - void (*xpo_kill_temp_xprt)(struct svc_xprt *); - void (*xpo_handshake)(struct svc_xprt *); +struct switchdev_brport { + struct net_device *dev; + const void *ctx; + struct notifier_block *atomic_nb; + struct notifier_block *blocking_nb; + bool tx_fwd_offload; }; -typedef unsigned int OM_uint32; +struct switchdev_notifier_brport_info { + struct switchdev_notifier_info info; + const struct switchdev_brport brport; +}; struct elf32_note { Elf32_Word n_namesz; @@ -55662,462 +62624,1075 @@ struct elf32_note { Elf32_Word n_type; }; -struct tegra_lp1_iram { - void *start_addr; - void *end_addr; +typedef void (*harden_branch_predictor_fn_t)(); + +enum arm_smccc_conduit { + SMCCC_CONDUIT_NONE = 0, + SMCCC_CONDUIT_SMC = 1, + SMCCC_CONDUIT_HVC = 2, }; -enum tegra_suspend_mode { - TEGRA_SUSPEND_NONE = 0, - TEGRA_SUSPEND_LP2 = 1, - TEGRA_SUSPEND_LP1 = 2, - TEGRA_SUSPEND_LP0 = 3, - TEGRA_MAX_SUSPEND_MODE = 4, - TEGRA_SUSPEND_NOT_READY = 5, +struct arm_smccc_res { + unsigned long a0; + unsigned long a1; + unsigned long a2; + unsigned long a3; }; -enum { - HP_THREAD_NONE = 0, - HP_THREAD_ACTIVE = 1, - HP_THREAD_PARKED = 2, +struct of_cpu_method { + const char *method; + const struct smp_operations *ops; }; -struct smpboot_thread_data { - unsigned int cpu; - unsigned int status; - struct smp_hotplug_thread *ht; +struct omap2_oscillator { + u32 startup_time; + u32 shutdown_time; }; -enum { - IRQTF_RUNTHREAD = 0, - IRQTF_WARNED = 1, - IRQTF_AFFINITY = 2, - IRQTF_FORCED_THREAD = 3, - IRQTF_READY = 4, +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)(); }; -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, +struct omap_vc_channel; + +struct omap_vfsm_instance; + +struct omap_vp_instance; + +struct omap_voltdm_pmic; + +struct omap_vp_param; + +struct omap_vc_param; + +struct omap_volt_data; + +struct voltagedomain { + char *name; + bool scalable; + struct list_head node; + struct omap_vc_channel *vc; + const struct omap_vfsm_instance *vfsm; + struct omap_vp_instance *vp; + struct omap_voltdm_pmic *pmic; + struct omap_vp_param *vp_param; + struct omap_vc_param *vc_param; + u32 (*read)(u8); + void (*write)(u32, u8); + u32 (*rmw)(u32, u32, u8); + union { + const char *name; + u32 rate; + } sys_clk; + int (*scale)(struct voltagedomain *, unsigned long); + u32 nominal_volt; + struct omap_volt_data *volt_data; }; -enum { - _IRQ_DEFAULT_INIT_FLAGS = 3072, - _IRQ_PER_CPU = 512, - _IRQ_LEVEL = 256, - _IRQ_NOPROBE = 1024, - _IRQ_NOREQUEST = 2048, - _IRQ_NOTHREAD = 65536, - _IRQ_NOAUTOEN = 4096, - _IRQ_MOVE_PCNTXT = 16384, - _IRQ_NO_BALANCING = 8192, - _IRQ_NESTED_THREAD = 32768, - _IRQ_PER_CPU_DEVID = 131072, - _IRQ_IS_POLLED = 262144, - _IRQ_DISABLE_UNLAZY = 524288, - _IRQ_HIDDEN = 1048576, - _IRQ_NO_DEBUG = 2097152, - _IRQF_MODIFY_MASK = 2096911, +struct omap_vc_common; + +struct omap_vc_channel { + u16 i2c_slave_addr; + u16 volt_reg_addr; + u16 cmd_reg_addr; + u8 cfg_channel; + bool i2c_high_speed; + const struct omap_vc_common *common; + u32 smps_sa_mask; + u32 smps_volra_mask; + u32 smps_cmdra_mask; + u8 cmdval_reg; + u8 smps_sa_reg; + u8 smps_volra_reg; + u8 smps_cmdra_reg; + u8 cfg_channel_reg; + u8 cfg_channel_sa_shift; + u8 flags; }; -typedef void (*btf_trace_rcu_utilization)(void *, const char *); +struct omap_vc_common { + u32 cmd_on_mask; + u32 valid; + u8 bypass_val_reg; + u8 data_shift; + u8 slaveaddr_shift; + u8 regaddr_shift; + u8 cmd_on_shift; + u8 cmd_onlp_shift; + u8 cmd_ret_shift; + u8 cmd_off_shift; + u8 i2c_cfg_reg; + u8 i2c_cfg_clear_mask; + u8 i2c_cfg_hsen_mask; + u8 i2c_mcode_mask; +}; -typedef void (*btf_trace_rcu_grace_period)(void *, const char *, unsigned long, const char *); +struct omap_vfsm_instance { + u32 voltsetup_mask; + u8 voltsetup_reg; + u8 voltsetup_off_reg; +}; -typedef void (*btf_trace_rcu_future_grace_period)(void *, const char *, unsigned long, unsigned long, u8, int, int, const char *); +struct omap_vp_common; -typedef void (*btf_trace_rcu_grace_period_init)(void *, const char *, unsigned long, u8, int, int, unsigned long); +struct omap_vp_instance { + const struct omap_vp_common *common; + u8 vpconfig; + u8 vstepmin; + u8 vstepmax; + u8 vlimitto; + u8 vstatus; + u8 voltage; + u8 id; + bool enabled; +}; -typedef void (*btf_trace_rcu_exp_grace_period)(void *, const char *, unsigned long, const char *); +struct omap_vp_ops; -typedef void (*btf_trace_rcu_exp_funnel_lock)(void *, const char *, u8, int, int, const char *); +struct omap_vp_common { + u32 vpconfig_erroroffset_mask; + u32 vpconfig_errorgain_mask; + u32 vpconfig_initvoltage_mask; + u8 vpconfig_timeouten; + u8 vpconfig_initvdd; + u8 vpconfig_forceupdate; + u8 vpconfig_vpenable; + u8 vstepmin_stepmin_shift; + u8 vstepmin_smpswaittimemin_shift; + u8 vstepmax_stepmax_shift; + u8 vstepmax_smpswaittimemax_shift; + u8 vlimitto_vddmin_shift; + u8 vlimitto_vddmax_shift; + u8 vlimitto_timeout_shift; + u8 vpvoltage_mask; + const struct omap_vp_ops *ops; +}; -typedef void (*btf_trace_rcu_preempt_task)(void *, const char *, int, unsigned long); +struct omap_vp_ops { + u32 (*check_txdone)(u8); + void (*clear_txdone)(u8); +}; -typedef void (*btf_trace_rcu_unlock_preempted_task)(void *, const char *, unsigned long, int); +struct omap_voltdm_pmic { + int slew_rate; + int step_size; + u16 i2c_slave_addr; + u16 volt_reg_addr; + u16 cmd_reg_addr; + u8 vp_erroroffset; + u8 vp_vstepmin; + u8 vp_vstepmax; + u32 vddmin; + u32 vddmax; + u8 vp_timeout_us; + bool i2c_high_speed; + u32 i2c_pad_load; + u8 i2c_mcode; + unsigned long (*vsel_to_uv)(const u8); + u8 (*uv_to_vsel)(unsigned long); +}; -typedef void (*btf_trace_rcu_quiescent_state_report)(void *, const char *, unsigned long, unsigned long, unsigned long, u8, int, int, int); +struct omap_vp_param { + u32 vddmax; + u32 vddmin; +}; -typedef void (*btf_trace_rcu_fqs)(void *, const char *, unsigned long, int, const char *); +struct omap_vc_param { + u32 on; + u32 onlp; + u32 ret; + u32 off; +}; -typedef void (*btf_trace_rcu_stall_warning)(void *, const char *, const char *); +struct omap_volt_data { + u32 volt_nominal; + u32 sr_efuse_offs; + u8 sr_errminlimit; + u8 vp_errgain; +}; -typedef void (*btf_trace_rcu_dyntick)(void *, const char *, long, long, int); +enum { + PWRDM_STATE_NOW = 0, + PWRDM_STATE_PREV = 1, +}; -typedef void (*btf_trace_rcu_callback)(void *, const char *, struct callback_head *, long); +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 void (*btf_trace_rcu_segcb_stats)(void *, struct rcu_segcblist *, const char *); +enum { + MAX_IORES_LEVEL = 5, +}; -typedef void (*btf_trace_rcu_kvfree_callback)(void *, const char *, struct callback_head *, unsigned long, long); +enum { + REGION_INTERSECTS = 0, + REGION_DISJOINT = 1, + REGION_MIXED = 2, +}; -typedef void (*btf_trace_rcu_batch_start)(void *, const char *, long, long); +struct resource_entry { + struct list_head node; + struct resource *res; + resource_size_t offset; + struct resource __res; +}; -typedef void (*btf_trace_rcu_invoke_callback)(void *, const char *, struct callback_head *); +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; +}; -typedef void (*btf_trace_rcu_invoke_kvfree_callback)(void *, const char *, struct callback_head *, unsigned long); +struct region_devres { + struct resource *parent; + resource_size_t start; + resource_size_t n; +}; -typedef void (*btf_trace_rcu_invoke_kfree_bulk_callback)(void *, const char *, unsigned long, void **); +struct __call_single_data { + struct __call_single_node node; + smp_call_func_t func; + void *info; +}; -typedef void (*btf_trace_rcu_batch_end)(void *, const char *, int, char, char, char, char); +typedef struct __call_single_data call_single_data_t; -typedef void (*btf_trace_rcu_torture_read)(void *, const char *, struct callback_head *, unsigned long, unsigned long, 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; + s64 avg_vruntime; + u64 avg_load; + u64 exec_clock; + u64 min_vruntime; + u64 min_vruntime_copy; + struct rb_root_cached tasks_timeline; + struct sched_entity *curr; + struct sched_entity *next; + unsigned int nr_spread_over; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct sched_avg avg; + u64 last_update_time_copy; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct { + raw_spinlock_t lock; + int nr; + unsigned long load_avg; + unsigned long util_avg; + unsigned long runnable_avg; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + } removed; + u64 last_update_tg_load_avg; + unsigned long tg_load_avg_contrib; + long propagate; + long prop_runnable_sum; + unsigned long h_load; + u64 last_h_load_update; + struct sched_entity *h_load_next; + struct rq *rq; + int on_list; + struct list_head leaf_cfs_rq_list; + struct task_group *tg; + int idle; + long: 32; +}; -typedef void (*btf_trace_rcu_barrier)(void *, const char *, const char *, int, int, unsigned long); +struct rt_prio_array { + unsigned long bitmap[4]; + struct list_head queue[100]; +}; -struct rcu_tasks; +struct rt_rq { + struct rt_prio_array active; + unsigned int rt_nr_running; + unsigned int rr_nr_running; + struct { + int curr; + int next; + } highest_prio; + int overloaded; + struct plist_head pushable_tasks; + int rt_queued; + int rt_throttled; + long: 32; + u64 rt_time; + u64 rt_runtime; + raw_spinlock_t rt_runtime_lock; + long: 32; +}; -typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *); +struct dl_rq { + struct rb_root_cached root; + unsigned int dl_nr_running; + long: 32; + struct { + u64 curr; + u64 next; + } earliest_dl; + int overloaded; + struct rb_root_cached pushable_dl_tasks_root; + long: 32; + u64 running_bw; + u64 this_bw; + u64 extra_bw; + u64 max_bw; + u64 bw_ratio; +}; -typedef void (*pregp_func_t)(struct list_head *); +typedef int (*cpu_stop_fn_t)(void *); -typedef void (*pertask_func_t)(struct task_struct *, struct list_head *); +struct cpu_stop_done; -typedef void (*postscan_func_t)(struct list_head *); +struct cpu_stop_work { + struct list_head list; + cpu_stop_fn_t fn; + unsigned long caller; + void *arg; + struct cpu_stop_done *done; +}; -typedef void (*holdouts_func_t)(struct list_head *, bool, bool *); +struct root_domain; -typedef void (*postgp_func_t)(struct rcu_tasks *); +struct sched_domain; -typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t); +struct balance_callback; -struct rcu_tasks_percpu; +struct rq { + raw_spinlock_t __lock; + unsigned int nr_running; + unsigned long last_blocked_load_update_tick; + unsigned int has_blocked_load; + call_single_data_t nohz_csd; + unsigned int nohz_tick_stopped; + atomic_t nohz_flags; + unsigned int ttwu_pending; + long: 32; + u64 nr_switches; + long: 32; + long: 32; + 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: 32; + long: 32; + u64 clock_task; + u64 clock_pelt; + unsigned long lost_idle_time; + long: 32; + u64 clock_pelt_idle; + u64 clock_idle; + u64 clock_pelt_idle_copy; + u64 clock_idle_copy; + atomic_t nr_iowait; + long: 32; + u64 last_seen_need_resched_ns; + int ticks_without_resched; + int membarrier_state; + struct root_domain *rd; + struct sched_domain __attribute__((btf_type_tag("rcu"))) *sd; + unsigned long cpu_capacity; + struct balance_callback *balance_callback; + unsigned char nohz_idle_balance; + unsigned char idle_balance; + unsigned long misfit_task_load; + int active_balance; + int push_cpu; + struct cpu_stop_work active_balance_work; + int cpu; + int online; + struct list_head cfs_tasks; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct sched_avg avg_rt; + struct sched_avg avg_dl; + struct sched_avg avg_thermal; + u64 idle_stamp; + u64 avg_idle; + u64 max_idle_balance_cost; + struct rcuwait hotplug_wait; + unsigned long calc_load_update; + long calc_load_active; + long: 32; + long: 32; + long: 32; + call_single_data_t hrtick_csd; + struct hrtimer hrtick_timer; + ktime_t hrtick_time; + struct cpuidle_state *idle_state; + unsigned int nr_pinned; + unsigned int push_busy; + struct cpu_stop_work push_work; + cpumask_var_t scratch_mask; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; -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 cfs_bandwidth {}; + +struct task_group { + struct cgroup_subsys_state css; + struct sched_entity **se; + struct cfs_rq **cfs_rq; + unsigned long shares; + int idle; + 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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct rcu_tasks_percpu { - struct rcu_segcblist cblist; +struct dl_bw { 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; + long: 32; + u64 bw; + u64 total_bw; }; -struct rcu_synchronize { - struct callback_head head; - struct completion completion; +struct cpudl_item; + +struct cpudl { + raw_spinlock_t lock; + int size; + cpumask_var_t free_cpus; + struct cpudl_item *elements; }; -struct trace_event_raw_rcu_utilization { - struct trace_entry ent; - const char *s; - char __data[0]; +struct cpupri_vec { + atomic_t count; + cpumask_var_t mask; }; -struct trace_event_raw_rcu_grace_period { - struct trace_entry ent; - const char *rcuname; - long gp_seq; - const char *gpevent; - char __data[0]; +struct cpupri { + struct cpupri_vec pri_to_cpu[101]; + int *cpu_to_pri; }; -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 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; + long: 32; }; -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 cpudl_item { + u64 dl; + int cpu; + int idx; }; -struct trace_event_raw_rcu_exp_grace_period { - struct trace_entry ent; - const char *rcuname; - long gpseq; - const char *gpevent; - char __data[0]; +struct em_perf_domain; + +struct perf_domain { + struct em_perf_domain *em_pd; + struct perf_domain *next; + struct callback_head rcu; }; -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 em_perf_state; + +struct em_perf_domain { + struct em_perf_state *table; + int nr_perf_states; + unsigned long flags; + unsigned long cpus[0]; }; -struct trace_event_raw_rcu_preempt_task { - struct trace_entry ent; - const char *rcuname; - long gp_seq; - int pid; - char __data[0]; +struct em_perf_state { + unsigned long frequency; + unsigned long power; + unsigned long cost; + unsigned long flags; }; -struct trace_event_raw_rcu_unlock_preempted_task { - struct trace_entry ent; - const char *rcuname; - long gp_seq; - int pid; - char __data[0]; +struct sched_group; + +struct sched_domain_shared; + +struct sched_domain { + struct sched_domain __attribute__((btf_type_tag("rcu"))) *parent; + struct sched_domain __attribute__((btf_type_tag("rcu"))) *child; + struct sched_group *groups; + unsigned long min_interval; + unsigned long max_interval; + unsigned int busy_factor; + unsigned int imbalance_pct; + unsigned int cache_nice_tries; + unsigned int imb_numa_nr; + int nohz_idle; + int flags; + int level; + unsigned long last_balance; + unsigned int balance_interval; + unsigned int nr_balance_failed; + long: 32; + u64 max_newidle_lb_cost; + unsigned long last_decay_max_lb_cost; + char *name; + union { + void *private; + struct callback_head rcu; + }; + struct sched_domain_shared *shared; + unsigned int span_weight; + unsigned long span[0]; }; -struct 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 sched_group_capacity; + +struct sched_group { + struct sched_group *next; + atomic_t ref; + unsigned int group_weight; + unsigned int cores; + struct sched_group_capacity *sgc; + int asym_prefer_cpu; + int flags; + unsigned long cpumask[0]; }; -struct trace_event_raw_rcu_fqs { - struct trace_entry ent; - const char *rcuname; - long gp_seq; - int cpu; - const char *qsevent; - char __data[0]; +struct sched_group_capacity { + atomic_t ref; + unsigned long capacity; + unsigned long min_capacity; + unsigned long max_capacity; + unsigned long next_update; + int imbalance; + int id; + unsigned long cpumask[0]; }; -struct trace_event_raw_rcu_stall_warning { - struct trace_entry ent; - const char *rcuname; - const char *msg; - char __data[0]; +struct sched_domain_shared { + atomic_t ref; + atomic_t nr_busy_cpus; + int has_idle_cores; + int nr_idle_scan; }; -struct trace_event_raw_rcu_dyntick { - struct trace_entry ent; - const char *polarity; - long oldnesting; - long newnesting; - int dynticks; - char __data[0]; +struct balance_callback { + struct balance_callback *next; + void (*func)(struct rq *); }; -struct trace_event_raw_rcu_callback { - struct trace_entry ent; - const char *rcuname; - void *rhp; - void *func; - long qlen; - char __data[0]; +struct pin_cookie {}; + +struct rq_flags { + unsigned long flags; + struct pin_cookie cookie; + unsigned int clock_update_flags; }; -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 affinity_context { + const struct cpumask *new_mask; + struct cpumask *user_mask; + unsigned int flags; }; -struct trace_event_raw_rcu_kvfree_callback { - struct trace_entry ent; - const char *rcuname; - void *rhp; - unsigned long offset; - long qlen; - char __data[0]; +enum { + __SCHED_FEAT_PLACE_LAG = 0, + __SCHED_FEAT_PLACE_DEADLINE_INITIAL = 1, + __SCHED_FEAT_RUN_TO_PARITY = 2, + __SCHED_FEAT_NEXT_BUDDY = 3, + __SCHED_FEAT_CACHE_HOT_BUDDY = 4, + __SCHED_FEAT_WAKEUP_PREEMPTION = 5, + __SCHED_FEAT_HRTICK = 6, + __SCHED_FEAT_HRTICK_DL = 7, + __SCHED_FEAT_DOUBLE_TICK = 8, + __SCHED_FEAT_NONTASK_CAPACITY = 9, + __SCHED_FEAT_TTWU_QUEUE = 10, + __SCHED_FEAT_SIS_UTIL = 11, + __SCHED_FEAT_WARN_DOUBLE_CLOCK = 12, + __SCHED_FEAT_RT_PUSH_IPI = 13, + __SCHED_FEAT_RT_RUNTIME_SHARE = 14, + __SCHED_FEAT_LB_MIN = 15, + __SCHED_FEAT_ATTACH_AGE_LOAD = 16, + __SCHED_FEAT_WA_IDLE = 17, + __SCHED_FEAT_WA_WEIGHT = 18, + __SCHED_FEAT_WA_BIAS = 19, + __SCHED_FEAT_UTIL_EST = 20, + __SCHED_FEAT_UTIL_EST_FASTUP = 21, + __SCHED_FEAT_LATENCY_WARN = 22, + __SCHED_FEAT_HZ_BW = 23, + __SCHED_FEAT_NR = 24, }; -struct trace_event_raw_rcu_batch_start { - struct trace_entry ent; - const char *rcuname; - long qlen; - long blimit; - char __data[0]; +enum { + SD_BALANCE_NEWIDLE = 1, + SD_BALANCE_EXEC = 2, + SD_BALANCE_FORK = 4, + SD_BALANCE_WAKE = 8, + SD_WAKE_AFFINE = 16, + SD_ASYM_CPUCAPACITY = 32, + SD_ASYM_CPUCAPACITY_FULL = 64, + SD_SHARE_CPUCAPACITY = 128, + SD_CLUSTER = 256, + SD_SHARE_PKG_RESOURCES = 512, + SD_SERIALIZE = 1024, + SD_ASYM_PACKING = 2048, + SD_PREFER_SIBLING = 4096, + SD_OVERLAP = 8192, + SD_NUMA = 16384, }; -struct trace_event_raw_rcu_invoke_callback { - struct trace_entry ent; - const char *rcuname; - void *rhp; - void *func; - char __data[0]; +enum sched_tunable_scaling { + SCHED_TUNABLESCALING_NONE = 0, + SCHED_TUNABLESCALING_LOG = 1, + SCHED_TUNABLESCALING_LINEAR = 2, + SCHED_TUNABLESCALING_END = 3, }; -struct trace_event_raw_rcu_invoke_kvfree_callback { - struct trace_entry ent; - const char *rcuname; - void *rhp; - unsigned long offset; - char __data[0]; +enum uclamp_id { + UCLAMP_MIN = 0, + UCLAMP_MAX = 1, + UCLAMP_CNT = 2, }; -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]; +enum cpu_idle_type { + CPU_IDLE = 0, + CPU_NOT_IDLE = 1, + CPU_NEWLY_IDLE = 2, + CPU_MAX_IDLE_TYPES = 3, }; -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]; +enum fbq_type { + regular = 0, + remote = 1, + all = 2, }; -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]; +enum migration_type { + migrate_load = 0, + migrate_util = 1, + migrate_task = 2, + migrate_misfit = 3, }; -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]; +enum group_type { + group_has_spare = 0, + group_fully_busy = 1, + group_misfit_task = 2, + group_smt_balance = 3, + group_asym_packing = 4, + group_imbalanced = 5, + group_overloaded = 6, }; -struct rcu_cblist { - struct callback_head *head; - struct callback_head **tail; - long len; +enum cpu_util_type { + FREQUENCY_UTIL = 0, + ENERGY_UTIL = 1, }; -struct trc_stall_chk_rdr { - int nesting; - int ipi_to_cpu; - u8 needqs; +struct update_util_data { + void (*func)(struct update_util_data *, u64, unsigned int); }; -typedef int (*task_call_f)(struct task_struct *, void *); +struct softirq_action { + void (*action)(struct softirq_action *); +}; -struct trace_event_data_offsets_rcu_utilization {}; +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 trace_event_data_offsets_rcu_grace_period {}; +struct sg_lb_stats { + unsigned long avg_load; + unsigned long group_load; + unsigned long group_capacity; + unsigned long group_util; + unsigned long group_runnable; + unsigned int sum_nr_running; + unsigned int sum_h_nr_running; + unsigned int idle_cpus; + unsigned int group_weight; + enum group_type group_type; + unsigned int group_asym_packing; + unsigned int group_smt_balance; + unsigned long group_misfit_task_load; +}; -struct trace_event_data_offsets_rcu_future_grace_period {}; +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 trace_event_data_offsets_rcu_grace_period_init {}; +enum mod_mem_type { + MOD_TEXT = 0, + MOD_DATA = 1, + MOD_RODATA = 2, + MOD_RO_AFTER_INIT = 3, + MOD_INIT_TEXT = 4, + MOD_INIT_DATA = 5, + MOD_INIT_RODATA = 6, + MOD_MEM_NUM_TYPES = 7, + MOD_INVALID = -1, +}; -struct trace_event_data_offsets_rcu_exp_grace_period {}; +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, +}; -struct trace_event_data_offsets_rcu_exp_funnel_lock {}; +struct hrtimer_sleeper { + struct hrtimer timer; + struct task_struct *task; + long: 32; +}; -struct trace_event_data_offsets_rcu_preempt_task {}; +enum freezer_state_flags { + CGROUP_FREEZER_ONLINE = 1, + CGROUP_FREEZING_SELF = 2, + CGROUP_FREEZING_PARENT = 4, + CGROUP_FROZEN = 8, + CGROUP_FREEZING = 6, +}; -struct trace_event_data_offsets_rcu_unlock_preempted_task {}; +struct freezer { + struct cgroup_subsys_state css; + unsigned int state; + long: 32; +}; -struct trace_event_data_offsets_rcu_quiescent_state_report {}; +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 trace_event_data_offsets_rcu_fqs {}; +typedef u32 kprobe_opcode_t; -struct trace_event_data_offsets_rcu_stall_warning {}; +struct kprobe; -struct trace_event_data_offsets_rcu_dyntick {}; +typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *); -struct trace_event_data_offsets_rcu_callback {}; +typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, unsigned long); -struct trace_event_data_offsets_rcu_segcb_stats {}; +typedef u32 probes_opcode_t; -struct trace_event_data_offsets_rcu_kvfree_callback {}; +struct arch_probes_insn; -struct trace_event_data_offsets_rcu_batch_start {}; +typedef void probes_insn_handler_t(probes_opcode_t, struct arch_probes_insn *, struct pt_regs *); -struct trace_event_data_offsets_rcu_invoke_callback {}; +typedef unsigned long probes_check_cc(unsigned long); -struct trace_event_data_offsets_rcu_invoke_kvfree_callback {}; +typedef void probes_insn_singlestep_t(probes_opcode_t, struct arch_probes_insn *, struct pt_regs *); -struct trace_event_data_offsets_rcu_invoke_kfree_bulk_callback {}; +typedef void probes_insn_fn_t(); -struct trace_event_data_offsets_rcu_batch_end {}; +struct arch_probes_insn { + probes_opcode_t *insn; + probes_insn_handler_t *insn_handler; + probes_check_cc *insn_check_cc; + probes_insn_singlestep_t *insn_singlestep; + probes_insn_fn_t *insn_fn; + int stack_space; + unsigned long register_usage_flags; + bool kprobe_direct_exec; +}; -struct trace_event_data_offsets_rcu_torture_read {}; +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_probes_insn ainsn; + u32 flags; +}; -struct trace_event_data_offsets_rcu_barrier {}; +enum kprobe_slot_state { + SLOT_CLEAN = 0, + SLOT_DIRTY = 1, + SLOT_USED = 2, +}; -enum { - Blktrace_setup = 1, - Blktrace_running = 2, - Blktrace_stopped = 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 blktrace_notify { - __BLK_TN_PROCESS = 0, - __BLK_TN_TIMESTAMP = 1, - __BLK_TN_MESSAGE = 2, - __BLK_TN_CGROUP = 256, +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]; }; -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, +struct arch_optimized_insn { + kprobe_opcode_t copied_insn[1]; + kprobe_opcode_t *insn; +}; + +struct optimized_kprobe { + struct kprobe kp; + struct list_head list; + struct arch_optimized_insn optinsn; +}; + +struct kretprobe_holder; + +struct kretprobe_instance { + struct callback_head rcu; + struct llist_node llist; + struct kretprobe_holder *rph; + kprobe_opcode_t *ret_addr; + void *fp; + char data[0]; +}; + +struct objpool_head; + +typedef int (*objpool_fini_cb)(struct objpool_head *, void *); + +struct objpool_slot; + +struct objpool_head { + int obj_size; + int nr_objs; + int nr_cpus; + int capacity; + gfp_t gfp; + refcount_t ref; + unsigned long flags; + struct objpool_slot **cpu_slots; + objpool_fini_cb release; + void *context; +}; + +struct kretprobe; + +struct kretprobe_holder { + struct kretprobe __attribute__((btf_type_tag("rcu"))) *rp; + struct objpool_head pool; +}; + +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 kretprobe_holder *rph; +}; + +struct objpool_slot { + uint32_t head; + uint32_t tail; + uint32_t last; + uint32_t mask; + void *entries[0]; +}; + +struct prev_kprobe { + struct kprobe *kp; + unsigned int status; +}; + +struct kprobe_ctlblk { + unsigned int kprobe_status; + struct prev_kprobe prev_kprobe; +}; + +struct kprobe_blacklist_entry { + struct list_head list; + unsigned long start_addr; + unsigned long end_addr; +}; + +typedef int (*objpool_init_obj_cb)(void *, void *); + +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, @@ -56132,91 +63707,6 @@ enum blktrace_act { __BLK_TA_CGROUP = 256, }; -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 trace_type { - __TRACE_FIRST_TYPE = 0, - TRACE_FN = 1, - TRACE_CTX = 2, - TRACE_WAKE = 3, - TRACE_STACK = 4, - TRACE_PRINT = 5, - TRACE_BPRINT = 6, - TRACE_MMIO_RW = 7, - TRACE_MMIO_MAP = 8, - TRACE_BRANCH = 9, - TRACE_GRAPH_RET = 10, - TRACE_GRAPH_ENT = 11, - TRACE_USER_STACK = 12, - TRACE_BLK = 13, - TRACE_BPUTS = 14, - TRACE_HWLAT = 15, - TRACE_OSNOISE = 16, - TRACE_TIMERLAT = 17, - TRACE_RAW_DATA = 18, - TRACE_FUNC_REPEATS = 19, - __TRACE_LAST_TYPE = 20, -}; - -enum trace_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_FIELDS = 256, - TRACE_ITER_PRINTK = 512, - TRACE_ITER_ANNOTATE = 1024, - TRACE_ITER_USERSTACKTRACE = 2048, - TRACE_ITER_SYM_USEROBJ = 4096, - TRACE_ITER_PRINTK_MSGONLY = 8192, - TRACE_ITER_CONTEXT_INFO = 16384, - TRACE_ITER_LATENCY_FMT = 32768, - TRACE_ITER_RECORD_CMD = 65536, - TRACE_ITER_RECORD_TGID = 131072, - TRACE_ITER_OVERWRITE = 262144, - TRACE_ITER_STOP_ON_FREE = 524288, - TRACE_ITER_IRQ_INFO = 1048576, - TRACE_ITER_MARKERS = 2097152, - TRACE_ITER_EVENT_FORK = 4194304, - TRACE_ITER_PAUSE_ON_TRACE = 8388608, - TRACE_ITER_HASH_PTR = 16777216, - TRACE_ITER_FUNCTION = 33554432, - TRACE_ITER_FUNC_FORK = 67108864, - TRACE_ITER_DISPLAY_GRAPH = 134217728, - TRACE_ITER_STACKTRACE = 268435456, -}; - struct blk_io_trace { __u32 magic; __u32 sequence; @@ -56251,85 +63741,63 @@ struct blk_io_trace_remap { typedef void blk_log_action_t(struct trace_iterator *, const char *, bool); -struct bpf_local_storage_data { - struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap; - long: 32; - u8 data[0]; -}; - -struct bpf_local_storage_map_bucket; +typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32); -struct bpf_local_storage_map { - struct bpf_map map; - struct bpf_local_storage_map_bucket *buckets; - u32 bucket_log; - u16 elem_size; - u16 cache_idx; - struct bpf_mem_alloc selem_ma; - struct bpf_mem_alloc storage_ma; - bool bpf_ma; -}; +struct btf_id_set8; -struct bpf_local_storage_map_bucket { - struct hlist_head list; - raw_spinlock_t lock; +struct btf_kfunc_id_set { + struct module *owner; + struct btf_id_set8 *set; + btf_kfunc_filter_t filter; }; -struct bpf_local_storage_cache { - spinlock_t idx_lock; - long: 32; - u64 idx_usage_counts[16]; +struct btf_id_set8 { + u32 cnt; + u32 flags; + struct { + u32 id; + u32 flags; + } pairs[0]; }; -enum { - BPF_LOCAL_STORAGE_GET_F_CREATE = 1, - BPF_SK_STORAGE_GET_F_CREATE = 1, +struct bpf_iter__bpf_map { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; }; -enum { - BPF_ANY = 0, - BPF_NOEXIST = 1, - BPF_EXIST = 2, - BPF_F_LOCK = 4, +struct bpf_iter_seq_map_info { + u32 map_id; }; -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 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct bpf_local_storage_data sdata; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct fid { + union { + struct { + u32 ino; + u32 gen; + u32 parent_ino; + u32 parent_gen; + } i32; + struct { + u64 ino; + u32 gen; + } i64; + struct { + u32 block; + u16 partref; + u16 parent_partref; + u32 generation; + u32 parent_block; + u32 parent_generation; + } udf; + struct { + struct {} __empty_raw; + __u32 raw[0]; + }; + }; }; struct fileattr { @@ -56356,6 +63824,18 @@ enum sgp_type { SGP_FALLOC = 4, }; +enum mapping_flags { + AS_EIO = 0, + AS_ENOSPC = 1, + AS_MM_ALL_LOCKS = 2, + AS_UNEVICTABLE = 3, + AS_EXITING = 4, + AS_NO_WRITEBACK_TAGS = 5, + AS_LARGE_FOLIO_SUPPORT = 6, + AS_RELEASE_ALWAYS = 7, + AS_STABLE_WRITES = 8, +}; + enum vm_event_item { PGPGIN = 0, PGPGOUT = 1, @@ -56451,6 +63931,68 @@ enum shmem_param { Opt_inode32 = 8, Opt_inode64 = 9, Opt_noswap = 10, + Opt_quota = 11, + Opt_usrquota = 12, + Opt_grpquota = 13, + Opt_usrquota_block_hardlimit = 14, + Opt_usrquota_inode_hardlimit = 15, + Opt_grpquota_block_hardlimit = 16, + Opt_grpquota_inode_hardlimit = 17, +}; + +enum fid_type { + FILEID_ROOT = 0, + FILEID_INO32_GEN = 1, + FILEID_INO32_GEN_PARENT = 2, + FILEID_BTRFS_WITHOUT_PARENT = 77, + FILEID_BTRFS_WITH_PARENT = 78, + FILEID_BTRFS_WITH_PARENT_ROOT = 79, + FILEID_UDF_WITHOUT_PARENT = 81, + FILEID_UDF_WITH_PARENT = 82, + FILEID_NILFS_WITHOUT_PARENT = 97, + FILEID_NILFS_WITH_PARENT = 98, + FILEID_FAT_WITHOUT_PARENT = 113, + FILEID_FAT_WITH_PARENT = 114, + FILEID_INO64_GEN = 129, + FILEID_INO64_GEN_PARENT = 130, + FILEID_LUSTRE = 151, + FILEID_BCACHEFS_WITHOUT_PARENT = 177, + FILEID_BCACHEFS_WITH_PARENT = 178, + FILEID_KERNFS = 254, + FILEID_INVALID = 255, +}; + +struct shared_policy {}; + +struct shmem_inode_info { + spinlock_t lock; + unsigned int seals; + unsigned long flags; + unsigned long alloced; + unsigned long swapped; + union { + struct offset_ctx dir_offsets; + struct { + struct list_head shrinklist; + struct list_head swaplist; + }; + }; + long: 32; + struct timespec64 i_crtime; + struct shared_policy policy; + struct simple_xattrs xattrs; + unsigned long fallocend; + unsigned int fsflags; + atomic_t stop_eviction; + long: 32; + struct inode vfs_inode; +}; + +struct shmem_quota_limits { + qsize_t usrquota_bhardlimit; + qsize_t usrquota_ihardlimit; + qsize_t grpquota_bhardlimit; + qsize_t grpquota_ihardlimit; }; struct mempolicy; @@ -56460,7 +64002,7 @@ struct shmem_sb_info { long: 32; struct percpu_counter used_blocks; unsigned long max_inodes; - unsigned long free_inodes; + unsigned long free_ispace; raw_spinlock_t stat_lock; umode_t mode; unsigned char huge; @@ -56474,13 +64016,17 @@ struct shmem_sb_info { spinlock_t shrinklist_lock; struct list_head shrinklist; unsigned long shrinklist_len; + struct shmem_quota_limits qlimits; }; struct mempolicy {}; -typedef struct { - unsigned long val; -} swp_entry_t; +struct simple_xattr { + struct rb_node rb_node; + char *name; + size_t size; + char value[0]; +}; struct shmem_falloc { wait_queue_head_t *waitq; @@ -56501,1558 +64047,1387 @@ struct shmem_options { int huge; int seen; bool noswap; + unsigned short quota_types; long: 32; + struct shmem_quota_limits qlimits; }; -struct dentry_stat_t { - long nr_dentry; - long nr_unused; - long age_limit; - long want_pages; - long nr_negative; - long dummy; +struct memcg_vmstats { + long state[48]; + unsigned long events[15]; + long state_local[48]; + unsigned long events_local[15]; + long state_pending[48]; + unsigned long events_pending[15]; }; -enum dentry_d_lock_class { - DENTRY_D_LOCK_NORMAL = 0, - DENTRY_D_LOCK_NESTED = 1, -}; +struct mem_cgroup_tree_per_node; -enum lru_status { - LRU_REMOVED = 0, - LRU_REMOVED_RETRY = 1, - LRU_ROTATE = 2, - LRU_SKIP = 3, - LRU_RETRY = 4, +struct mem_cgroup_tree { + struct mem_cgroup_tree_per_node *rb_tree_per_node[1]; }; -enum d_walk_ret { - D_WALK_CONTINUE = 0, - D_WALK_QUIT = 1, - D_WALK_NORETRY = 2, - D_WALK_SKIP = 3, +struct mem_cgroup_tree_per_node { + struct rb_root rb_root; + struct rb_node *rb_rightmost; + spinlock_t lock; }; -struct external_name { - union { - atomic_t count; - struct callback_head head; - } u; - unsigned char name[0]; +struct memory_stat { + const char *name; + unsigned int idx; }; -typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *); - -struct check_mount { - struct vfsmount *mnt; - unsigned int mounted; +struct move_charge_struct { + spinlock_t lock; + struct mm_struct *mm; + struct mem_cgroup *from; + struct mem_cgroup *to; + unsigned long flags; + unsigned long precharge; + unsigned long moved_charge; + unsigned long moved_swap; + struct task_struct *moving_task; + wait_queue_head_t waitq; }; -struct name_snapshot { - struct qstr name; - unsigned char inline_name[36]; - long: 32; +struct memcg_stock_pcp { + local_lock_t stock_lock; + struct mem_cgroup *cached; + unsigned int nr_pages; + struct obj_cgroup *cached_objcg; + struct pglist_data *cached_pgdat; + unsigned int nr_bytes; + int nr_slab_reclaimable_b; + int nr_slab_unreclaimable_b; + struct work_struct work; + unsigned long flags; }; -struct select_data { - struct dentry *start; - union { - long found; - struct dentry *victim; - }; - struct list_head dispose; +enum { + CSS_TASK_ITER_PROCS = 1, + CSS_TASK_ITER_THREADED = 2, + CSS_TASK_ITER_SKIPPED = 65536, }; -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 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, }; -struct inotify_event_info { - struct fsnotify_event fse; - u32 mask; - int wd; - u32 sync_cookie; - int name_len; - char name[0]; +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, }; -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[8]; +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, }; -struct inotify_event { - __s32 wd; - __u32 mask; - __u32 cookie; - __u32 len; - char name[0]; +enum writeback_stat_item { + NR_DIRTY_THRESHOLD = 0, + NR_DIRTY_BG_THRESHOLD = 1, + NR_VM_WRITEBACK_STAT_ITEMS = 2, }; -enum { - PROC_ENTRY_PERMANENT = 1, +enum mem_cgroup_events_target { + MEM_CGROUP_TARGET_THRESH = 0, + MEM_CGROUP_TARGET_SOFTLIMIT = 1, + MEM_CGROUP_NTARGETS = 2, }; -struct kernel_cpustat { - u64 cpustat[10]; +enum oom_constraint { + CONSTRAINT_NONE = 0, + CONSTRAINT_CPUSET = 1, + CONSTRAINT_MEMORY_POLICY = 2, + CONSTRAINT_MEMCG = 3, }; -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; - long: 32; - 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]; - long: 32; +enum mc_target_type { + MC_TARGET_NONE = 0, + MC_TARGET_PAGE = 1, + MC_TARGET_SWAP = 2, + MC_TARGET_DEVICE = 3, }; -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; +enum res_type { + _MEM = 0, + _MEMSWAP = 1, + _KMEM = 2, + _TCP = 3, }; -struct journal_block_tag3_s { - __be32 t_blocknr; - __be32 t_flags; - __be32 t_blocknr_high; - __be32 t_checksum; +enum { + RES_USAGE = 0, + RES_LIMIT = 1, + RES_MAX_USAGE = 2, + RES_FAILCNT = 3, + RES_SOFT_LIMIT = 4, }; -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; - long: 32; +struct oom_wait_info { + struct mem_cgroup *memcg; + wait_queue_entry_t wait; }; -struct jbd2_journal_block_tail { - __be32 t_checksum; +struct mem_cgroup_eventfd_list { + struct list_head list; + struct eventfd_ctx *eventfd; }; -struct jbd2_journal_revoke_header_s { - journal_header_t r_header; - __be32 r_count; +struct mem_cgroup_event { + struct mem_cgroup *memcg; + struct eventfd_ctx *eventfd; + struct list_head list; + int (*register_event)(struct mem_cgroup *, struct eventfd_ctx *, const char *); + void (*unregister_event)(struct mem_cgroup *, struct eventfd_ctx *); + poll_table pt; + wait_queue_head_t *wqh; + wait_queue_entry_t wait; + struct work_struct remove; }; -typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t; +typedef struct pglist_data pg_data_t; -struct recovery_info { - tid_t start_transaction; - tid_t end_transaction; - unsigned long head_block; - int nr_replays; - int nr_revokes; - int nr_revoke_hits; +struct mem_cgroup_reclaim_cookie { + pg_data_t *pgdat; + unsigned int generation; }; -struct journal_block_tag_s { - __be32 t_blocknr; - __be16 t_checksum; - __be16 t_flags; - __be32 t_blocknr_high; +struct uncharge_gather { + struct mem_cgroup *memcg; + unsigned long nr_memory; + unsigned long pgpgout; + unsigned long nr_kmem; + int nid; }; -typedef struct journal_block_tag_s journal_block_tag_t; - -enum layoutdriver_policy_flags { - PNFS_LAYOUTRET_ON_SETATTR = 1, - PNFS_LAYOUTRET_ON_ERROR = 2, - PNFS_READ_WHOLE_PAGE = 4, - PNFS_LAYOUTGET_ON_OPEN = 8, +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; }; -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, -}; +typedef unsigned int fgf_t; -struct nlm_lockowner { - struct list_head list; - refcount_t count; - struct nlm_host *host; - fl_owner_t owner; - uint32_t pid; -}; +typedef int (*cmp_func_t)(const void *, const void *); -struct nsm_handle; +typedef void (*swap_func_t)(void *, void *, int); -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; +union mc_target { + struct page *page; + swp_entry_t ent; }; -struct nsm_private { - unsigned char data[16]; +enum proc_param { + Opt_gid___2 = 0, + Opt_hidepid = 1, + Opt_subset = 2, }; -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 proc_fs_context { + struct pid_namespace *pid_ns; + unsigned int mask; + enum proc_hidepid hidepid; + int gid; + enum proc_pidonly pidonly; }; -struct nlm_cookie { - unsigned char data[32]; - unsigned int len; +struct ext4_orphan_block_tail { + __le32 ob_magic; + __le32 ob_checksum; }; -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 squashfs_sb_info; -struct nlm_res { - struct nlm_cookie cookie; - __be32 status; - struct nlm_lock lock; +struct squashfs_page_actor; + +struct squashfs_decompressor_thread_ops { + void * (*create)(struct squashfs_sb_info *, void *); + void (*destroy)(struct squashfs_sb_info *); + int (*decompress)(struct squashfs_sb_info *, struct bio *, int, int, struct squashfs_page_actor *); + int (*max_decompressors)(); }; -struct nlm_args { - struct nlm_cookie cookie; +struct squashfs_decompressor; + +struct squashfs_cache; + +struct meta_index; + +struct squashfs_sb_info { + const struct squashfs_decompressor *decompressor; + int devblksize; + int devblksize_log2; + struct squashfs_cache *block_cache; + struct squashfs_cache *fragment_cache; + struct squashfs_cache *read_page; + struct address_space *cache_mapping; + int next_meta_index; + __le64 *id_table; + __le64 *fragment_index; + __le64 *xattr_id_table; + struct mutex meta_index_mutex; + struct meta_index *meta_index; + void *stream; + __le64 *inode_lookup_table; + long: 32; + u64 inode_table; + u64 directory_table; + u64 xattr_table; + unsigned int block_size; + unsigned short block_log; + long long bytes_used; + unsigned int inodes; + unsigned int fragments; + unsigned int xattr_ids; + unsigned int ids; + bool panic_on_errors; + const struct squashfs_decompressor_thread_ops *thread_ops; + int max_thread_num; long: 32; - struct nlm_lock lock; - u32 block; - u32 reclaim; - u32 state; - u32 monitor; - u32 fsm_access; - u32 fsm_mode; }; -struct nlm_reboot { - char *mon; - unsigned int len; - u32 state; - struct nsm_private priv; +struct squashfs_decompressor { + void * (*init)(struct squashfs_sb_info *, void *); + void * (*comp_opts)(struct squashfs_sb_info *, void *, int); + void (*free)(void *); + int (*decompress)(struct squashfs_sb_info *, void *, struct bio *, int, int, struct squashfs_page_actor *); + int id; + char *name; + int alloc_buffer; + int supported; }; -enum { - UBIFS_COMPR_FL = 1, - UBIFS_SYNC_FL = 2, - UBIFS_IMMUTABLE_FL = 4, - UBIFS_APPEND_FL = 8, - UBIFS_DIRSYNC_FL = 16, - UBIFS_XATTR_FL = 32, - UBIFS_CRYPT_FL = 64, +struct squashfs_cache_entry; + +struct squashfs_cache { + char *name; + int entries; + int curr_blk; + int next_blk; + int num_waiters; + int unused; + int block_size; + int pages; + spinlock_t lock; + wait_queue_head_t wait_queue; + struct squashfs_cache_entry *entry; }; -struct ubifs_inode { - struct inode vfs_inode; - unsigned long long creat_sqnum; - unsigned long long del_cmtno; - unsigned int xattr_size; - unsigned int xattr_cnt; - unsigned int xattr_names; - unsigned int dirty: 1; - unsigned int xattr: 1; - unsigned int bulk_read: 1; - unsigned int compr_type: 2; - struct mutex ui_mutex; - struct rw_semaphore xattr_sem; - spinlock_t ui_lock; - loff_t synced_i_size; - loff_t ui_size; - int flags; - unsigned long last_page_read; - unsigned long read_in_a_row; - int data_len; - void *data; +struct squashfs_cache_entry { + u64 block; + int length; + int refcount; + u64 next_index; + int pending; + int error; + int num_waiters; + wait_queue_head_t wait_queue; + struct squashfs_cache *cache; + void **data; + struct squashfs_page_actor *actor; long: 32; }; -struct fscrypt_str { - unsigned char *name; - u32 len; +struct meta_entry { + u64 data_block; + unsigned int index_block; + unsigned short offset; + unsigned short pad; }; -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 meta_index { + unsigned int inode_number; + unsigned int offset; + unsigned short entries; + unsigned short skip; + unsigned short locked; + unsigned short pad; + struct meta_entry meta_entry[127]; }; -struct ubifs_budget_req { - unsigned int fast: 1; - unsigned int recalculate: 1; - unsigned int new_page: 1; - unsigned int dirtied_page: 1; - unsigned int new_dent: 1; - unsigned int mod_dent: 1; - unsigned int new_ino: 1; - unsigned int new_ino_d: 13; - unsigned int dirtied_ino: 4; - long: 8; - unsigned int dirtied_ino_d: 15; - int idx_growth; - int data_growth; - int dd_growth; +struct squashfs_stream { + void *stream; + struct mutex mutex; }; -struct ubifs_dent_node { - struct ubifs_ch ch; - __u8 key[16]; - __le64 inum; - __u8 padding1; - __u8 type; - __le16 nlen; - __le32 cookie; - __u8 name[0]; +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 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, +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, }; -struct crypto_akcipher { - unsigned int reqsize; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct crypto_tfm base; +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 akcipher_request; - -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 *); - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct crypto_alg base; +struct pnfs_commit_bucket { + struct list_head written; + struct list_head committing; + struct pnfs_layout_segment *lseg; + struct nfs_writeverf direct_verf; }; -typedef void (*crypto_completion_t)(void *, int); +struct pnfs_commit_array { + struct list_head cinfo_list; + struct list_head lseg_list; + struct pnfs_layout_segment *lseg; + struct callback_head rcu; + refcount_t refcount; + unsigned int nbuckets; + struct pnfs_commit_bucket buckets[0]; +}; -struct crypto_async_request { - struct list_head list; - crypto_completion_t complete; - void *data; - struct crypto_tfm *tfm; - u32 flags; +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, }; -struct akcipher_request { - struct crypto_async_request base; - struct scatterlist *src; - struct scatterlist *dst; - unsigned int src_len; - unsigned int dst_len; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - void *__ctx[0]; +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, }; -struct akcipher_instance { - void (*free)(struct akcipher_instance *); - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - union { - struct { - char head[64]; - struct crypto_instance base; - } s; - struct akcipher_alg alg; - }; +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 crypto_istat_akcipher { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t verify_cnt; - atomic64_t sign_cnt; - atomic64_t err_cnt; +enum { + NFS_OWNER_RECLAIM_REBOOT = 0, + NFS_OWNER_RECLAIM_NOGRACE = 1, }; -struct crypto_wait { - struct completion completion; - int err; +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 crypto_akcipher_sync_data { - struct crypto_akcipher *tfm; - const void *src; - void *dst; - unsigned int slen; - unsigned int dlen; - struct akcipher_request *req; - struct crypto_wait cwait; - struct scatterlist sg; - u8 *buf; +enum nfs4_slot_tbl_state { + NFS4_SLOT_TBL_DRAINING = 0, }; -struct crypto_akcipher_spawn { - struct crypto_spawn base; +struct nfs4_copy_state { + struct list_head copies; + struct list_head src_copies; + nfs4_stateid stateid; + struct completion completion; + long: 32; + uint64_t count; + struct nfs_writeverf verf; + int error; + int flags; + struct nfs4_state *parent_src_state; + struct nfs4_state *parent_dst_state; + long: 32; }; -struct crypto_report_akcipher { - char type[64]; +struct nfs4_setclientid_res { + u64 clientid; + nfs4_verifier confirm; }; -struct hd_geometry { - unsigned char heads; - unsigned char sectors; - unsigned short cylinders; - unsigned long start; +typedef void (*rpc_action)(struct rpc_task *); + +struct bl_dev_msg { + int32_t status; + uint32_t major; + uint32_t minor; }; -struct pr_keys { - u32 generation; - u32 num_keys; - u64 keys[0]; +struct nfs_netns_client; + +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[3]; + struct nfs_netns_client *nfs_client; + spinlock_t nfs_client_lock; + ktime_t boot_time; + struct proc_dir_entry *proc_nfsfs; + long: 32; }; -struct pr_held_reservation { - u64 key; - u32 generation; - enum pr_type type; +enum { + NSMPROC_NULL = 0, + NSMPROC_STAT = 1, + NSMPROC_MON = 2, + NSMPROC_UNMON = 3, + NSMPROC_UNMON_ALL = 4, + NSMPROC_SIMU_CRASH = 5, + NSMPROC_NOTIFY = 6, }; -struct pr_reservation { - __u64 key; - __u32 type; - __u32 flags; +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, + XPRT_TRANSPORT_TCP_TLS = 258, }; -struct pr_clear { - __u64 key; - __u32 flags; - __u32 __pad; +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 xprtsec_parms xprtsec; + unsigned long connect_timeout; + unsigned long reconnect_timeout; }; -struct pr_registration { - __u64 old_key; - __u64 new_key; - __u32 flags; - __u32 __pad; +struct nsm_args { + struct nsm_private *priv; + u32 prog; + u32 vers; + u32 proc; + char *mon_name; + const char *nodename; }; -struct blkpg_ioctl_arg { - int op; - int flags; - int datalen; - void __attribute__((btf_type_tag("user"))) *data; +struct nsm_res { + u32 status; + u32 state; }; -struct blkpg_partition { - long long start; - long long length; - int pno; - char devname[64]; - char volname[64]; - long: 32; +struct lock_manager { + struct list_head list; + bool block_opens; }; -struct pr_preempt { - __u64 old_key; - __u64 new_key; - __u32 type; - __u32 flags; +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 { - IO_SQ_THREAD_SHOULD_STOP = 0, - IO_SQ_THREAD_SHOULD_PARK = 1, + NTFS_BLOCK_SIZE = 512, + NTFS_BLOCK_SIZE_BITS = 9, + NTFS_SB_MAGIC = 1397118030, + NTFS_MAX_NAME_LEN = 255, + NTFS_MAX_ATTR_NAME_LEN = 255, + NTFS_MAX_CLUSTER_SIZE = 65536, + NTFS_MAX_PAGES_PER_CLUSTER = 16, }; -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; -}; +typedef le32 FILE_ATTR_FLAGS; -struct io_sqring_offsets { - __u32 head; - __u32 tail; - __u32 ring_mask; - __u32 ring_entries; - __u32 flags; - __u32 dropped; - __u32 array; - __u32 resv1; - __u64 user_addr; -}; +typedef u8 FILE_NAME_TYPE_FLAGS; -struct io_cqring_offsets { - __u32 head; - __u32 tail; - __u32 ring_mask; - __u32 ring_entries; - __u32 overflow; - __u32 cqes; - __u32 flags; - __u32 resv1; - __u64 user_addr; -}; +typedef struct { + leMFT_REF parent_directory; + sle64 creation_time; + sle64 last_data_change_time; + sle64 last_mft_change_time; + sle64 last_access_time; + sle64 allocated_size; + sle64 data_size; + FILE_ATTR_FLAGS file_attributes; + union { + struct { + le16 packed_ea_size; + le16 reserved; + } ea; + struct { + le32 reparse_point_tag; + } rp; + } type; + u8 file_name_length; + FILE_NAME_TYPE_FLAGS file_name_type; + ntfschar file_name[0]; +} __attribute__((packed)) FILE_NAME_ATTR; -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; +enum { + DIRTY_ZNODE = 0, + COW_ZNODE = 1, + OBSOLETE_ZNODE = 2, }; -struct ksignal { - struct k_sigaction ka; - kernel_siginfo_t info; - int sig; +struct ubifs_scan_node { + struct list_head list; + union ubifs_key key; + unsigned long long sqnum; + int type; + int offs; + int len; + void *node; }; -typedef size_t HUF_CElt; +struct ubifs_branch { + __le32 lnum; + __le32 offs; + __le32 len; + __u8 key[0]; +}; -typedef enum { - ZSTD_fast = 1, - ZSTD_dfast = 2, - ZSTD_greedy = 3, - ZSTD_lazy = 4, - ZSTD_lazy2 = 5, - ZSTD_btlazy2 = 6, - ZSTD_btopt = 7, - ZSTD_btultra = 8, - ZSTD_btultra2 = 9, -} ZSTD_strategy; +struct ubifs_old_idx { + struct rb_node rb; + int lnum; + int offs; +}; -typedef enum { - HUF_repeat_none = 0, - HUF_repeat_check = 1, - HUF_repeat_valid = 2, -} HUF_repeat; +struct ubifs_scan_leb { + int lnum; + int nodes_cnt; + struct list_head nodes; + int endpt; + void *buf; +}; -typedef struct { - HUF_CElt CTable[257]; - HUF_repeat repeatMode; -} ZSTD_hufCTables_t; +struct ubifs_idx_node { + struct ubifs_ch ch; + __le16 child_cnt; + __le16 level; + __u8 branches[0]; +}; -typedef enum { - set_basic = 0, - set_rle = 1, - set_compressed = 2, - set_repeat = 3, -} symbolEncodingType_e; +struct comp_alg_common { + struct crypto_alg base; +}; -typedef struct { - U32 tableTime; - U32 decode256Time; -} algo_time_t; +struct crypto_scomp; -typedef struct { - BYTE nbBits; - BYTE byte; -} HUF_DEltX1; +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 *); + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; +}; -typedef struct { - U32 rankVal[13]; - U32 rankStart[13]; - U32 statsWksp[218]; - BYTE symbols[256]; - BYTE huffWeight[256]; -} HUF_ReadDTableX1_Workspace; +struct crypto_scomp { + struct crypto_tfm base; +}; typedef struct { - U16 sequence; - BYTE nbBits; - BYTE length; -} HUF_DEltX2; - -typedef U32 rankValCol_t[13]; + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; +} ZSTD_parameters; -typedef struct { - BYTE symbol; -} sortedSymbol_t; +typedef ZSTD_parameters zstd_parameters; -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 ZSTD_CCtx zstd_cctx; -typedef struct { - BYTE maxTableLog; - BYTE tableType; - BYTE tableLog; - BYTE reserved; -} DTableDesc; +typedef ZSTD_DCtx zstd_dctx; -typedef struct { - size_t bitContainer; - unsigned int bitsConsumed; - const char *ptr; - const char *start; - const char *limitPtr; -} BIT_DStream_t; +struct zstd_ctx { + zstd_cctx *cctx; + zstd_dctx *dctx; + void *cwksp; + void *dwksp; +}; -typedef enum { - BIT_DStream_unfinished = 0, - BIT_DStream_endOfBuffer = 1, - BIT_DStream_completed = 2, - BIT_DStream_overflow = 3, -} BIT_DStream_status; +typedef ZSTD_compressionParameters zstd_compression_parameters; -struct sg_splitter { - struct scatterlist *in_sg0; - int nents; - off_t skip_sg0; - unsigned int length_last_sg; - struct scatterlist *out_sg; +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, }; -struct omap_intc_regs { - u32 sysconfig; - u32 protection; - u32 idle; - u32 threshold; - u32 ilr[128]; - u32 mir[4]; +enum hctx_type { + HCTX_TYPE_DEFAULT = 0, + HCTX_TYPE_READ = 1, + HCTX_TYPE_POLL = 2, + HCTX_MAX_TYPES = 3, }; -struct gpcv2_irqchip_data { - struct raw_spinlock rlock; - void *gpc_base; - u32 wakeup_sources[4]; - u32 saved_irq_mask[4]; - u32 cpu2wakeup; +enum { + BLK_MQ_NO_TAG = 4294967295, + BLK_MQ_TAG_MIN = 1, + BLK_MQ_TAG_MAX = 4294967294, }; -struct mst_intc_chip_data { - raw_spinlock_t lock; - unsigned int irq_start; - unsigned int nr_irqs; - void *base; - bool no_eoi; - struct list_head entry; - u16 saved_polarity_conf[4]; -}; +typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); -struct exynos_dp_video_phy_drvdata { - u32 phy_ctrl_offset; +enum { + IORING_MSG_DATA = 0, + IORING_MSG_SEND_FD = 1, }; -struct exynos_dp_video_phy { - struct regmap *regs; - const struct exynos_dp_video_phy_drvdata *drvdata; +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; + long: 32; }; -struct palmas_pingroup; - -struct palmas_pinctrl_data { - const struct palmas_pingroup *pin_groups; - int num_pin_groups; +struct region { + unsigned int start; + unsigned int off; + unsigned int group_len; + unsigned int end; + unsigned int nbits; }; -struct palmas_pin_info; +typedef int __kernel_ptrdiff_t; -struct palmas_pingroup { - const char *name; - const unsigned int pins[1]; - unsigned int npins; - unsigned int mux_reg_base; - unsigned int mux_reg_add; - unsigned int mux_reg_mask; - unsigned int mux_bit_shift; - const struct palmas_pin_info *opt[4]; -}; +typedef __kernel_ptrdiff_t ptrdiff_t; -enum palmas_pinmux { - PALMAS_PINMUX_OPTION0 = 0, - PALMAS_PINMUX_OPTION1 = 1, - PALMAS_PINMUX_OPTION2 = 2, - PALMAS_PINMUX_OPTION3 = 3, - PALMAS_PINMUX_GPIO = 4, - PALMAS_PINMUX_LED = 5, - PALMAS_PINMUX_PWM = 6, - PALMAS_PINMUX_REGEN = 7, - PALMAS_PINMUX_SYSEN = 8, - PALMAS_PINMUX_CLK32KGAUDIO = 9, - PALMAS_PINMUX_ID = 10, - PALMAS_PINMUX_VBUS_DET = 11, - PALMAS_PINMUX_CHRG_DET = 12, - PALMAS_PINMUX_VAC = 13, - PALMAS_PINMUX_VACOK = 14, - PALMAS_PINMUX_POWERGOOD = 15, - PALMAS_PINMUX_USB_PSEL = 16, - PALMAS_PINMUX_MSECURE = 17, - PALMAS_PINMUX_PWRHOLD = 18, - PALMAS_PINMUX_INT = 19, - PALMAS_PINMUX_NRESWARM = 20, - PALMAS_PINMUX_SIMRSTO = 21, - PALMAS_PINMUX_SIMRSTI = 22, - PALMAS_PINMUX_LOW_VBAT = 23, - PALMAS_PINMUX_WIRELESS_CHRG1 = 24, - PALMAS_PINMUX_RCM = 25, - PALMAS_PINMUX_PWRDOWN = 26, - PALMAS_PINMUX_GPADC_START = 27, - PALMAS_PINMUX_RESET_IN = 28, - PALMAS_PINMUX_NSLEEP = 29, - PALMAS_PINMUX_ENABLE = 30, - PALMAS_PINMUX_NA = 65535, +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, }; -struct palmas_pins_pullup_dn_info; - -struct palmas_pins_od_info; - -struct palmas_pin_info { - enum palmas_pinmux mux_opt; - const struct palmas_pins_pullup_dn_info *pud_info; - const struct palmas_pins_od_info *od_info; +enum blake2s_iv { + BLAKE2S_IV0 = 1779033703, + BLAKE2S_IV1 = 3144134277, + BLAKE2S_IV2 = 1013904242, + BLAKE2S_IV3 = 2773480762, + BLAKE2S_IV4 = 1359893119, + BLAKE2S_IV5 = 2600822924, + BLAKE2S_IV6 = 528734635, + BLAKE2S_IV7 = 1541459225, }; -struct palmas_pins_pullup_dn_info { - int pullup_dn_reg_base; - int pullup_dn_reg_add; - int pullup_dn_mask; - int normal_val; - int pull_up_val; - int pull_dn_val; +struct blake2s_state { + u32 h[8]; + u32 t[2]; + u32 f[2]; + u8 buf[64]; + unsigned int buflen; + unsigned int outlen; }; -struct palmas_pins_od_info { - int od_reg_base; - int od_reg_add; - int od_mask; - int od_enable; - int od_disable; +enum nla_policy_validation { + NLA_VALIDATE_NONE = 0, + NLA_VALIDATE_RANGE = 1, + NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2, + NLA_VALIDATE_MIN = 3, + NLA_VALIDATE_MAX = 4, + NLA_VALIDATE_MASK = 5, + NLA_VALIDATE_RANGE_PTR = 6, + NLA_VALIDATE_FUNCTION = 7, }; -struct palmas_pin_function { - const char *name; - const char * const *groups; - unsigned int ngroups; +struct nla_bitfield32 { + __u32 value; + __u32 selector; }; -enum palmas_usb_state { - PALMAS_USB_STATE_DISCONNECT = 0, - PALMAS_USB_STATE_VBUS = 1, - PALMAS_USB_STATE_ID = 2, +enum omap3_l3_code { + OMAP_L3_CODE_NOERROR = 0, + OMAP_L3_CODE_UNSUP_CMD = 1, + OMAP_L3_CODE_ADDR_HOLE = 2, + OMAP_L3_CODE_PROTECT_VIOLATION = 3, + OMAP_L3_CODE_IN_BAND_ERR = 4, + OMAP_L3_CODE_REQ_TOUT_NOT_ACCEPT = 7, + OMAP_L3_CODE_REQ_TOUT_NO_RESP = 8, }; -struct palmas; +enum omap3_l3_initiator_id { + OMAP_L3_LCD = 29, + OMAP_L3_SAD2D = 28, + OMAP_L3_IA_MPU_SS_1 = 27, + OMAP_L3_IA_MPU_SS_2 = 26, + OMAP_L3_IA_MPU_SS_3 = 25, + OMAP_L3_IA_MPU_SS_4 = 24, + OMAP_L3_IA_MPU_SS_5 = 23, + OMAP_L3_IA_IVA_SS_1 = 22, + OMAP_L3_IA_IVA_SS_2 = 21, + OMAP_L3_IA_IVA_SS_3 = 20, + OMAP_L3_IA_IVA_SS_DMA_1 = 19, + OMAP_L3_IA_IVA_SS_DMA_2 = 18, + OMAP_L3_IA_IVA_SS_DMA_3 = 17, + OMAP_L3_IA_IVA_SS_DMA_4 = 16, + OMAP_L3_IA_IVA_SS_DMA_5 = 15, + OMAP_L3_IA_IVA_SS_DMA_6 = 14, + OMAP_L3_IA_SGX = 13, + OMAP_L3_IA_CAM_1 = 12, + OMAP_L3_IA_CAM_2 = 11, + OMAP_L3_IA_CAM_3 = 10, + OMAP_L3_IA_DAP = 9, + OMAP_L3_SDMA_WR_1 = 8, + OMAP_L3_SDMA_WR_2 = 7, + OMAP_L3_SDMA_RD_1 = 6, + OMAP_L3_SDMA_RD_2 = 5, + OMAP_L3_SDMA_RD_3 = 4, + OMAP_L3_SDMA_RD_4 = 3, + OMAP_L3_USBOTG = 2, + OMAP_L3_USBHOST = 1, +}; -struct palmas_pctrl_chip_info { +struct omap3_l3 { struct device *dev; - struct pinctrl_dev *pctl; - struct palmas *palmas; - int pins_current_opt[26]; - const struct palmas_pin_function *functions; - unsigned int num_functions; - const struct palmas_pingroup *pin_groups; - int num_pin_groups; - const struct pinctrl_pin_desc *pins; - unsigned int num_pins; + struct clk *ick; + void *rt; + int debug_irq; + int app_irq; + unsigned int inband: 1; }; -struct palmas_gpadc; - -struct palmas_pmic_driver_data; - -struct palmas_pmic; +struct phy_axg_mipi_pcie_analog_priv { + struct phy *phy; + struct regmap *regmap; + bool dsi_configured; + bool dsi_enabled; + bool powered; + struct phy_configure_opts_mipi_dphy config; +}; -struct palmas_resource; +struct uniphier_u2phy_param { + u32 offset; + u32 value; +}; -struct palmas_usb; +struct uniphier_u2phy_soc_data { + struct uniphier_u2phy_param config0; + struct uniphier_u2phy_param config1; +}; -struct palmas { - struct device *dev; - struct i2c_client *i2c_clients[3]; - struct regmap *regmap[3]; - int id; - unsigned int features; - int irq; - u32 irq_mask; - struct mutex irq_lock; - struct regmap_irq_chip_data *irq_data; - struct palmas_pmic_driver_data *pmic_ddata; - struct palmas_pmic *pmic; - struct palmas_gpadc *gpadc; - struct palmas_resource *resource; - struct palmas_usb *usb; - u8 gpio_muxed; - u8 led_muxed; - u8 pwm_muxed; +struct uniphier_u2phy_priv { + struct regmap *regmap; + struct phy *phy; + struct regulator *vbus; + const struct uniphier_u2phy_soc_data *data; + struct uniphier_u2phy_priv *next; }; -struct palmas_regs_info; +struct mtk_pin_reg_calc; -struct of_regulator_match; +struct mtk_pin_desc; -struct palmas_sleep_requestor_info; +struct group_desc; -struct palmas_pmic_platform_data; +struct mtk_pin_rsel; -struct palmas_pmic_driver_data { - int smps_start; - int smps_end; - int ldo_begin; - int ldo_end; - int max_reg; - bool has_regen3; - struct palmas_regs_info *palmas_regs_info; - struct of_regulator_match *palmas_matches; - struct palmas_sleep_requestor_info *sleep_req_info; - int (*smps_register)(struct palmas_pmic *, struct palmas_pmic_driver_data *, struct palmas_pmic_platform_data *, const char *, struct regulator_config); - int (*ldo_register)(struct palmas_pmic *, struct palmas_pmic_driver_data *, struct palmas_pmic_platform_data *, const char *, struct regulator_config); +struct mtk_pinctrl___2; + +struct mtk_pin_soc { + const struct mtk_pin_reg_calc *reg_cal; + const struct mtk_pin_desc *pins; + unsigned int npins; + const struct group_desc *grps; + unsigned int ngrps; + const struct function_desc *funcs; + unsigned int nfuncs; + const struct mtk_eint_regs *eint_regs; + const struct mtk_eint_hw *eint_hw; + u8 gpio_m; + bool ies_present; + const char * const *base_names; + unsigned int nbase_names; + const unsigned int *pull_type; + const struct mtk_pin_rsel *pin_rsel; + unsigned int npin_rsel; + int (*bias_disable_set)(struct mtk_pinctrl___2 *, const struct mtk_pin_desc *); + int (*bias_disable_get)(struct mtk_pinctrl___2 *, const struct mtk_pin_desc *, int *); + int (*bias_set)(struct mtk_pinctrl___2 *, const struct mtk_pin_desc *, bool); + int (*bias_get)(struct mtk_pinctrl___2 *, const struct mtk_pin_desc *, bool, int *); + int (*bias_set_combo)(struct mtk_pinctrl___2 *, const struct mtk_pin_desc *, u32, u32); + int (*bias_get_combo)(struct mtk_pinctrl___2 *, const struct mtk_pin_desc *, u32 *, u32 *); + int (*drive_set)(struct mtk_pinctrl___2 *, const struct mtk_pin_desc *, u32); + int (*drive_get)(struct mtk_pinctrl___2 *, const struct mtk_pin_desc *, int *); + int (*adv_pull_set)(struct mtk_pinctrl___2 *, const struct mtk_pin_desc *, bool, u32); + int (*adv_pull_get)(struct mtk_pinctrl___2 *, const struct mtk_pin_desc *, bool, u32 *); + int (*adv_drive_set)(struct mtk_pinctrl___2 *, const struct mtk_pin_desc *, u32); + int (*adv_drive_get)(struct mtk_pinctrl___2 *, const struct mtk_pin_desc *, u32 *); + void *driver_data; }; -struct palmas_regs_info { - char *name; - char *sname; - u8 vsel_addr; - u8 ctrl_addr; - u8 tstep_addr; - int sleep_id; +struct mtk_pin_field_calc; + +struct mtk_pin_reg_calc { + const struct mtk_pin_field_calc *range; + unsigned int nranges; }; -struct palmas_sleep_requestor_info { - int id; - int reg_offset; - int bit_pos; +struct mtk_pin_field_calc { + u16 s_pin; + u16 e_pin; + u8 i_base; + u32 s_addr; + u8 x_addrs; + u8 s_bit; + u8 x_bits; + u8 sz_reg; + u8 fixed; }; -struct palmas_pmic { - struct palmas *palmas; - struct device *dev; - struct regulator_desc desc[27]; - struct mutex mutex; - int smps123; - int smps457; - int smps12; - int range[10]; - unsigned int ramp_delay[10]; - unsigned int current_reg_mode[10]; +struct mtk_eint_desc { + u16 eint_m; + u16 eint_n; }; -struct palmas_reg_init; +struct mtk_func_desc; -struct palmas_pmic_platform_data { - struct regulator_init_data *reg_data[27]; - struct palmas_reg_init *reg_init[27]; - int ldo6_vibrator; - bool enable_ldo8_tracking; +struct mtk_pin_desc { + unsigned int number; + const char *name; + struct mtk_eint_desc eint; + u8 drv_n; + struct mtk_func_desc *funcs; }; -struct palmas_reg_init { - int warm_reset; - int roof_floor; - int mode_sleep; - u8 vsel; +struct mtk_func_desc { + const char *name; + u8 muxval; }; -struct palmas_resource { - struct palmas *palmas; - struct device *dev; -}; - -struct palmas_usb { - struct palmas *palmas; - struct device *dev; - struct extcon_dev *edev; - int id_otg_irq; - int id_irq; - int vbus_otg_irq; - int vbus_irq; - int gpio_id_irq; - int gpio_vbus_irq; - struct gpio_desc *id_gpiod; - struct gpio_desc *vbus_gpiod; - unsigned long sw_debounce_jiffies; - struct delayed_work wq_detectid; - enum palmas_usb_state linkstat; - int wakeup; - bool enable_vbus_detection; - bool enable_id_detection; - bool enable_gpio_id_detection; - bool enable_gpio_vbus_detection; -}; - -struct mvebu_mpp_ctrl; - -struct mvebu_mpp_ctrl_data; - -struct mvebu_mpp_mode; - -struct mvebu_pinctrl_soc_info { - u8 variant; - const struct mvebu_mpp_ctrl *controls; - struct mvebu_mpp_ctrl_data *control_data; - int ncontrols; - struct mvebu_mpp_mode *modes; - int nmodes; - struct pinctrl_gpio_range *gpioranges; - int ngpioranges; -}; - -struct mvebu_mpp_ctrl { - const char *name; - u8 pid; - u8 npins; - unsigned int *pins; - int (*mpp_get)(struct mvebu_mpp_ctrl_data *, unsigned int, unsigned long *); - int (*mpp_set)(struct mvebu_mpp_ctrl_data *, unsigned int, unsigned long); - int (*mpp_gpio_req)(struct mvebu_mpp_ctrl_data *, unsigned int); - int (*mpp_gpio_dir)(struct mvebu_mpp_ctrl_data *, unsigned int, bool); -}; - -struct mvebu_mpp_ctrl_data { - union { - void *base; - struct { - struct regmap *map; - u32 offset; - } regmap; - }; -}; - -struct mvebu_mpp_ctrl_setting; - -struct mvebu_mpp_mode { - u8 pid; - struct mvebu_mpp_ctrl_setting *settings; -}; - -struct mvebu_mpp_ctrl_setting { - u8 val; +struct group_desc { const char *name; - const char *subname; - u8 variant; - u8 flags; -}; - -struct pinmux_range { - u16 begin; - u16 end; - u16 force; + int *pins; + int num_pins; + void *data; }; -struct sh_pfc_soc_operations; - -struct pinmux_irq; - -struct sh_pfc_pin; - -struct sh_pfc_pin_group; - -struct sh_pfc_function; - -struct pinmux_cfg_reg; - -struct pinmux_drive_reg; - -struct pinmux_bias_reg; - -struct pinmux_ioctrl_reg; - -struct pinmux_data_reg; - -struct sh_pfc_soc_info { - const char *name; - const struct sh_pfc_soc_operations *ops; - struct pinmux_range input; - struct pinmux_range output; - const struct pinmux_irq *gpio_irq; - unsigned int gpio_irq_size; - struct pinmux_range function; - const struct sh_pfc_pin *pins; - unsigned int nr_pins; - const struct sh_pfc_pin_group *groups; - unsigned int nr_groups; - const struct sh_pfc_function *functions; - unsigned int nr_functions; - const struct pinmux_cfg_reg *cfg_regs; - const struct pinmux_drive_reg *drive_regs; - const struct pinmux_bias_reg *bias_regs; - const struct pinmux_ioctrl_reg *ioctrl_regs; - const struct pinmux_data_reg *data_regs; - const u16 *pinmux_data; - unsigned int pinmux_data_size; - u32 unlock_reg; +struct mtk_pin_rsel { + u16 s_pin; + u16 e_pin; + u16 rsel_index; + u32 up_rsel; + u32 down_rsel; }; -struct sh_pfc; - -struct sh_pfc_soc_operations { - int (*init)(struct sh_pfc *); - unsigned int (*get_bias)(struct sh_pfc *, unsigned int); - void (*set_bias)(struct sh_pfc *, unsigned int, unsigned int); - int (*pin_to_pocctrl)(unsigned int, u32 *); - int (*pin_to_portcr)(unsigned int); +struct mtk_pinctrl___2 { + struct pinctrl_dev *pctrl; + void **base; + u8 nbase; + struct device *dev; + struct gpio_chip chip; + const struct mtk_pin_soc *soc; + struct mtk_eint *eint; + struct mtk_pinctrl_group *groups; + const char **grp_names; + spinlock_t lock; + bool rsel_si_unit; }; -struct sh_pfc_window; - -struct sh_pfc_pin_range; - -struct sh_pfc_chip; +struct msm_pinctrl_soc_data; -struct sh_pfc { +struct msm_pinctrl { struct device *dev; - const struct sh_pfc_soc_info *info; - spinlock_t lock; - unsigned int num_windows; - struct sh_pfc_window *windows; - unsigned int num_irqs; - unsigned int *irqs; - struct sh_pfc_pin_range *ranges; - unsigned int nr_ranges; - unsigned int nr_gpio_pins; - struct sh_pfc_chip *gpio; - u32 *saved_regs; + struct pinctrl_dev *pctrl; + struct gpio_chip chip; + struct pinctrl_desc desc; + struct notifier_block restart_nb; + int irq; + bool intr_target_use_scm; + raw_spinlock_t lock; + unsigned long dual_edge_irqs[10]; + unsigned long enabled_irqs[10]; + unsigned long skip_wake_irqs[10]; + unsigned long disabled_for_mux[10]; + unsigned long ever_gpio[10]; + const struct msm_pinctrl_soc_data *soc; + void *regs[4]; + u32 phys_base[4]; }; -struct sh_pfc_window { - phys_addr_t phys; - void *virt; - unsigned long size; -}; +struct pinfunction; -struct pinmux_irq { - const short *gpios; -}; +struct msm_pingroup; -struct sh_pfc_pin { - const char *name; - unsigned int configs; - u16 pin; - u16 enum_id; -}; +struct msm_gpio_wakeirq_map; -struct sh_pfc_pin_group { - const char *name; - const unsigned int *pins; - const unsigned int *mux; - unsigned int nr_pins; +struct msm_pinctrl_soc_data { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct pinfunction *functions; + unsigned int nfunctions; + const struct msm_pingroup *groups; + unsigned int ngroups; + unsigned int ngpios; + bool pull_no_keeper; + const char * const *tiles; + unsigned int ntiles; + const int *reserved_gpios; + const struct msm_gpio_wakeirq_map *wakeirq_map; + unsigned int nwakeirq_map; + bool wakeirq_dual_edge_errata; + unsigned int gpio_func; + unsigned int egpio_func; }; -struct sh_pfc_function { +struct pinfunction { const char *name; const char * const *groups; - unsigned int nr_groups; + size_t ngroups; }; -struct pinmux_cfg_reg { - u32 reg; - u8 reg_width; - u8 field_width; - const u16 *enum_ids; - const s8 *var_field_width; +struct pingroup { + const char *name; + const unsigned int *pins; + size_t npins; }; -struct pinmux_drive_reg_field { - u16 pin; - u8 offset; - u8 size; +struct msm_pingroup { + struct pingroup grp; + unsigned int *funcs; + unsigned int nfuncs; + u32 ctl_reg; + u32 io_reg; + u32 intr_cfg_reg; + u32 intr_status_reg; + u32 intr_target_reg; + unsigned int tile: 2; + unsigned int mux_bit: 5; + unsigned int pull_bit: 5; + unsigned int drv_bit: 5; + unsigned int i2c_pull_bit: 5; + unsigned int od_bit: 5; + unsigned int egpio_enable: 5; + unsigned int egpio_present: 5; + unsigned int oe_bit: 5; + unsigned int in_bit: 5; + unsigned int out_bit: 5; + unsigned int intr_enable_bit: 5; + unsigned int intr_status_bit: 5; + unsigned int intr_ack_high: 1; + long: 1; + unsigned int intr_target_bit: 5; + unsigned int intr_target_width: 5; + unsigned int intr_target_kpss_val: 5; + unsigned int intr_raw_status_bit: 5; + unsigned int intr_polarity_bit: 5; + unsigned int intr_detection_bit: 5; + long: 2; + unsigned int intr_detection_width: 5; }; -struct pinmux_drive_reg { - u32 reg; - const struct pinmux_drive_reg_field fields[10]; +struct msm_gpio_wakeirq_map { + unsigned int gpio; + unsigned int wakeirq; }; -struct pinmux_bias_reg { - u32 puen; - u32 pud; - const u16 pins[32]; +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 pinmux_ioctrl_reg { - u32 reg; -}; +struct stm32_desc_pin; -struct pinmux_data_reg { - u32 reg; - u8 reg_width; - const u16 *enum_ids; +struct stm32_pinctrl_match_data { + const struct stm32_desc_pin *pins; + const unsigned int npins; + bool secure_control; }; -struct r8a7740_portcr_group { - unsigned int end_pin; - unsigned int offset; +struct stm32_desc_function { + const char *name; + const unsigned char num; }; -enum pinmux_type { - pinmux_type_fpmx = 0, - pinmux_type_grp = 1, +struct stm32_desc_pin { + struct pinctrl_pin_desc pin; + const struct stm32_desc_function functions[18]; + const unsigned int pkg; }; -enum mux_first_reg { - mux_f_mux = 0, - mux_f_gpio = 1, - mux_f_keep = 2, +struct aspeed_sgpio_bank { + u16 val_regs; + u16 rdata_reg; + u16 irq_regs; + u16 tolerance_regs; + const char names[12]; }; -enum mux_master_reg { - mux_m_iop = 0, - mux_m_gpio = 1, - mux_m_keep = 2, +struct aspeed_sgpio_pdata { + const u32 pin_mask; }; -struct sppctl_gpio_chip; - -struct grp2fp_map; - -struct sppctl_pdata { - void *moon2_base; - void *gpioxt_base; - void *first_base; - void *moon1_base; - struct pinctrl_desc pctl_desc; - struct pinctrl_dev *pctl_dev; - struct pinctrl_gpio_range pctl_grange; - struct sppctl_gpio_chip *spp_gchip; - const char **unq_grps; - size_t unq_grps_sz; - struct grp2fp_map *g2fp_maps; +enum aspeed_sgpio_reg { + reg_val = 0, + reg_rdata = 1, + reg_irq_enable = 2, + reg_irq_type0 = 3, + reg_irq_type1 = 4, + reg_irq_type2 = 5, + reg_irq_status = 6, + reg_tolerance = 7, }; -struct sppctl_gpio_chip { - void *gpioxt_base; - void *first_base; +struct aspeed_sgpio { struct gpio_chip chip; - spinlock_t lock; -}; - -struct grp2fp_map { - u16 f_idx; - u16 g_idx; -}; - -struct sppctl_grp; - -struct sppctl_func { - const char * const name; - const enum pinmux_type type; - const u8 roff; - const u8 boff; - const u8 blen; - const struct sppctl_grp * const grps; - const unsigned int gnum; -}; - -struct sppctl_grp { - const char * const name; - const u8 gval; - const unsigned int * const pins; - const unsigned int pnum; -}; - -struct tegra_gpio_soc_config { - bool debounce_supported; - u32 bank_stride; - u32 upper_offset; -}; - -struct tegra_gpio_bank; - -struct tegra_gpio_info { struct device *dev; - void *regs; - struct tegra_gpio_bank *bank_info; - const struct tegra_gpio_soc_config *soc; - struct gpio_chip gc; - u32 bank_count; - unsigned int *irqs; + struct clk *pclk; + raw_spinlock_t lock; + void *base; + int irq; }; -struct tegra_gpio_bank { - unsigned int bank; - raw_spinlock_t lvl_lock[4]; - spinlock_t dbc_lock[4]; - u32 cnf[4]; - u32 out[4]; - u32 oe[4]; - u32 int_enb[4]; - u32 int_lvl[4]; - u32 wake_enb[4]; - u32 dbc_enb[4]; - u32 dbc_cnt[4]; -}; +typedef void (*btf_trace_pwm_apply)(void *, struct pwm_device *, const struct pwm_state *, int); -enum smbios_attr_enum { - SMBIOS_ATTR_NONE = 0, - SMBIOS_ATTR_LABEL_SHOW = 1, - SMBIOS_ATTR_INSTANCE_SHOW = 2, -}; +typedef void (*btf_trace_pwm_get)(void *, struct pwm_device *, const struct pwm_state *, int); -enum dmi_device_type { - DMI_DEV_TYPE_ANY = 0, - DMI_DEV_TYPE_OTHER = 1, - DMI_DEV_TYPE_UNKNOWN = 2, - DMI_DEV_TYPE_VIDEO = 3, - DMI_DEV_TYPE_SCSI = 4, - DMI_DEV_TYPE_ETHERNET = 5, - DMI_DEV_TYPE_TOKENRING = 6, - DMI_DEV_TYPE_SOUND = 7, - DMI_DEV_TYPE_PATA = 8, - DMI_DEV_TYPE_SATA = 9, - DMI_DEV_TYPE_SAS = 10, - DMI_DEV_TYPE_IPMI = -1, - DMI_DEV_TYPE_OEM_STRING = -2, - DMI_DEV_TYPE_DEV_ONBOARD = -3, - DMI_DEV_TYPE_DEV_SLOT = -4, +enum { + PWMF_REQUESTED = 0, + PWMF_EXPORTED = 1, }; -struct dmi_device { +struct pwm_lookup { 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; -}; - -struct broken_edid { - u8 manufacturer[4]; - u32 model; - u32 fix; -}; - -enum display_flags { - DISPLAY_FLAGS_HSYNC_LOW = 1, - DISPLAY_FLAGS_HSYNC_HIGH = 2, - DISPLAY_FLAGS_VSYNC_LOW = 4, - DISPLAY_FLAGS_VSYNC_HIGH = 8, - DISPLAY_FLAGS_DE_LOW = 16, - DISPLAY_FLAGS_DE_HIGH = 32, - DISPLAY_FLAGS_PIXDATA_POSEDGE = 64, - DISPLAY_FLAGS_PIXDATA_NEGEDGE = 128, - DISPLAY_FLAGS_INTERLACED = 256, - DISPLAY_FLAGS_DOUBLESCAN = 512, - DISPLAY_FLAGS_DOUBLECLK = 1024, - DISPLAY_FLAGS_SYNC_POSEDGE = 2048, - DISPLAY_FLAGS_SYNC_NEGEDGE = 4096, -}; - -struct __fb_timings { - u32 dclk; - u32 hfreq; - u32 vfreq; - u32 hactive; - u32 vactive; - u32 hblank; - u32 vblank; - u32 htotal; - u32 vtotal; + const char *provider; + unsigned int index; + const char *dev_id; + const char *con_id; + unsigned int period; + enum pwm_polarity polarity; + const char *module; }; -struct videomode { - unsigned long pixelclock; - u32 hactive; - u32 hfront_porch; - u32 hback_porch; - u32 hsync_len; - u32 vactive; - u32 vfront_porch; - u32 vback_porch; - u32 vsync_len; - enum display_flags flags; +struct trace_event_raw_pwm { + struct trace_entry ent; + struct pwm_device *pwm; + long: 32; + u64 period; + u64 duty_cycle; + enum pwm_polarity polarity; + bool enabled; + int err; + char __data[0]; + long: 32; }; -struct clk_composite { - struct clk_hw hw; - struct clk_ops ops; - struct clk_hw *mux_hw; - struct clk_hw *rate_hw; - struct clk_hw *gate_hw; - const struct clk_ops *mux_ops; - const struct clk_ops *rate_ops; - const struct clk_ops *gate_ops; -}; +struct trace_event_data_offsets_pwm {}; -struct clk_pll_layout { - u32 pllr_mask; - u32 mul_mask; - u32 frac_mask; - u32 div_mask; - u32 endiv_mask; - u8 mul_shift; - u8 frac_shift; - u8 div_shift; - u8 endiv_shift; +enum enable_type { + undefined = -1, + user_disabled = 0, + auto_disabled = 1, + user_enabled = 2, + auto_enabled = 3, }; -struct at91_clk_pms { - unsigned long rate; - unsigned long parent_rate; - unsigned int status; - unsigned int parent; +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, }; -struct clk_pll_characteristics; - -struct clk_pll___3 { - struct clk_hw hw; - struct regmap *regmap; - u8 id; - u8 div; - u8 range; - u16 mul; - const struct clk_pll_layout *layout; - const struct clk_pll_characteristics *characteristics; - struct at91_clk_pms pms; +enum release_type { + leaf_only = 0, + whole_subtree = 1, }; -struct clk_range { - unsigned long min; - unsigned long max; +struct pci_dev_resource { + struct list_head list; + struct resource *res; + struct pci_dev *dev; + resource_size_t start; + resource_size_t end; + resource_size_t add_size; + resource_size_t min_align; + unsigned long flags; }; -struct clk_pll_characteristics { - struct clk_range input; - int num_output; - const struct clk_range *output; - u16 *icpll; - u8 *out; - u8 upll: 1; -}; +typedef u32 pci_bus_addr_t; -struct sam9x60_pll_core { - struct regmap *regmap; - spinlock_t *lock; - const struct clk_pll_characteristics *characteristics; - const struct clk_pll_layout *layout; - struct clk_hw hw; - u8 id; +struct pci_bus_region { + pci_bus_addr_t start; + pci_bus_addr_t end; }; -struct sam9x60_div { - struct sam9x60_pll_core core; - struct at91_clk_pms pms; - u8 div; - u8 safe_div; +struct dw_pcie_ep_func { + struct list_head list; + u8 func_no; + u8 msi_cap; + u8 msix_cap; }; -struct sam9x60_frac { - struct sam9x60_pll_core core; - struct at91_clk_pms pms; - u32 frac; - u16 mul; +struct pci_epf_msix_tbl { + u64 msg_addr; + u32 msg_data; + u32 vector_ctrl; }; struct berlin2_avpll_vco { @@ -58068,196 +65443,181 @@ struct berlin2_avpll_channel { u8 index; }; -struct clkgate_separated { - struct clk_hw hw; - void *enable; - u8 bit_idx; - u8 flags; - spinlock_t *lock; -}; - -struct hisi_fixed_rate_clock { - unsigned int id; - char *name; - const char *parent_name; - unsigned long flags; - unsigned long fixed_rate; -}; - -struct hisi_mux_clock { +struct hisi_phase_clock { unsigned int id; const char *name; - const char * const *parent_names; - u8 num_parents; + const char *parent_names; unsigned long flags; unsigned long offset; u8 shift; u8 width; - u8 mux_flags; - const u32 *table; - const char *alias; + u32 *phase_degrees; + u32 *phase_regvals; + u8 phase_num; }; -struct hisi_gate_clock { +struct hi6220_divider_clock { unsigned int id; const char *name; const char *parent_name; unsigned long flags; unsigned long offset; - u8 bit_idx; - u8 gate_flags; + u8 shift; + u8 width; + u32 mask_bit; const char *alias; }; -struct clk_onecell_data { - struct clk **clks; - unsigned int clk_num; +struct imx93_clk_gate { + struct clk_hw hw; + void *reg; + u32 bit_idx; + u32 val; + u32 mask; + spinlock_t *lock; + unsigned int *share_count; }; -struct hisi_clock_data { - struct clk_onecell_data clk_data; - void *base; +struct clk_regmap___2 { + struct clk_hw hw; + struct regmap *map; + void *data; }; -struct hisi_reset_controller; - -struct hi3519_crg_data { - struct hisi_clock_data *clk_data; - struct hisi_reset_controller *rstc; +struct clk_regmap_gate_data { + unsigned int offset; + u8 bit_idx; + u8 flags; }; -struct mtk_gate; - -struct mtk_composite; - -struct mtk_clk_divider; - -struct mtk_fixed_clk; - -struct mtk_fixed_factor; - -struct mtk_mux; - -struct mtk_clk_rst_desc; - -struct mtk_clk_desc { - const struct mtk_gate *clks; - size_t num_clks; - const struct mtk_composite *composite_clks; - size_t num_composite_clks; - const struct mtk_clk_divider *divider_clks; - size_t num_divider_clks; - const struct mtk_fixed_clk *fixed_clks; - size_t num_fixed_clks; - const struct mtk_fixed_factor *factor_clks; - size_t num_factor_clks; - const struct mtk_mux *mux_clks; - size_t num_mux_clks; - const struct mtk_clk_rst_desc *rst_desc; - spinlock_t *clk_lock; - bool shared_io; - int (*clk_notifier_func)(struct device *, struct clk *); - unsigned int mfg_clk_idx; +struct clk_regmap_div_data { + unsigned int offset; + u8 shift; + u8 width; + u8 flags; + const struct clk_div_table *table; }; -struct mtk_gate_regs; - -struct mtk_gate { - int id; - const char *name; - const char *parent_name; - const struct mtk_gate_regs *regs; - int shift; - const struct clk_ops *ops; - unsigned long flags; +struct clk_regmap_mux_data { + unsigned int offset; + u32 *table; + u32 mask; + u8 shift; + u8 flags; }; -struct mtk_gate_regs { - u32 sta_ofs; - u32 clr_ofs; - u32 set_ofs; +struct coreclk_ratio; + +struct coreclk_soc_desc { + u32 (*get_tclk_freq)(void *); + u32 (*get_cpu_freq)(void *); + void (*get_clk_ratio)(void *, int, int *, int *); + u32 (*get_refclk_freq)(void *); + bool (*is_sscg_enabled)(void *); + u32 (*fix_sscg_deviation)(u32); + const struct coreclk_ratio *ratios; + int num_ratios; }; -struct mtk_composite { +struct coreclk_ratio { int id; const char *name; - const char * const *parent_names; - const char *parent; - unsigned int flags; - uint32_t mux_reg; - uint32_t divider_reg; - uint32_t gate_reg; - signed char mux_shift; - signed char mux_width; - signed char gate_shift; - signed char divider_shift; - signed char divider_width; - u8 mux_flags; - signed char num_parents; }; -struct mtk_clk_divider { - int id; +struct clk_gating_soc_desc { const char *name; - const char *parent_name; + const char *parent; + int bit_idx; unsigned long flags; - u32 div_reg; - unsigned char div_shift; - unsigned char div_width; - unsigned char clk_divider_flags; - const struct clk_div_table *clk_div_table; }; -struct mtk_fixed_clk { - int id; - const char *name; - const char *parent; - unsigned long rate; +enum { + AXP_CPU_TO_NBCLK = 0, + AXP_CPU_TO_HCLK = 1, + AXP_CPU_TO_DRAMCLK = 2, }; -struct mtk_fixed_factor { - int id; - const char *name; - const char *parent_name; - int mult; - int div; - unsigned long flags; +enum { + PLL_OFF_L_VAL = 0, + PLL_OFF_CAL_L_VAL = 1, + PLL_OFF_ALPHA_VAL = 2, + PLL_OFF_ALPHA_VAL_U = 3, + PLL_OFF_USER_CTL = 4, + PLL_OFF_USER_CTL_U = 5, + PLL_OFF_USER_CTL_U1 = 6, + PLL_OFF_CONFIG_CTL = 7, + PLL_OFF_CONFIG_CTL_U = 8, + PLL_OFF_CONFIG_CTL_U1 = 9, + PLL_OFF_TEST_CTL = 10, + PLL_OFF_TEST_CTL_U = 11, + PLL_OFF_TEST_CTL_U1 = 12, + PLL_OFF_TEST_CTL_U2 = 13, + PLL_OFF_STATE = 14, + PLL_OFF_STATUS = 15, + PLL_OFF_OPMODE = 16, + PLL_OFF_FRAC = 17, + PLL_OFF_CAL_VAL = 18, + PLL_OFF_MAX_REGS = 19, }; -struct mtk_mux { - int id; - const char *name; - const char * const *parent_names; - unsigned int flags; - u32 mux_ofs; - u32 set_ofs; - u32 clr_ofs; - u32 upd_ofs; - u8 mux_shift; - u8 mux_width; - u8 gate_shift; - s8 upd_shift; - const struct clk_ops *ops; - signed char num_parents; +struct pll_vco; + +struct clk_alpha_pll { + u32 offset; + const u8 *regs; + const struct pll_vco *vco_table; + size_t num_vco; + u8 flags; + struct clk_regmap clkr; }; -enum mtk_reset_version { - MTK_RST_SIMPLE = 0, - MTK_RST_SET_CLR = 1, - MTK_RST_MAX = 2, +struct pll_vco { + unsigned long min_freq; + unsigned long max_freq; + u32 val; }; -struct mtk_clk_rst_desc { - enum mtk_reset_version version; - u16 *rst_bank_ofs; - u32 rst_bank_nr; - u16 *rst_idx_map; - u32 rst_idx_map_nr; +struct clk_alpha_pll_postdiv { + u32 offset; + u8 width; + const u8 *regs; + struct clk_regmap clkr; + int post_div_shift; + const struct clk_div_table *post_div_table; + size_t num_post_div; }; -struct frac_entry { - int num; - int den; +struct alpha_pll_config { + u32 l; + u32 alpha; + u32 alpha_hi; + u32 config_ctl_val; + u32 config_ctl_hi_val; + u32 config_ctl_hi1_val; + u32 user_ctl_val; + u32 user_ctl_hi_val; + u32 user_ctl_hi1_val; + u32 test_ctl_val; + u32 test_ctl_mask; + u32 test_ctl_hi_val; + u32 test_ctl_hi_mask; + u32 test_ctl_hi1_val; + u32 test_ctl_hi2_val; + u32 main_output_mask; + u32 aux_output_mask; + u32 aux2_output_mask; + u32 early_output_mask; + u32 alpha_en_mask; + u32 alpha_mode_mask; + u32 pre_div_val; + u32 pre_div_mask; + u32 post_div_val; + u32 post_div_mask; + u32 vco_val; + u32 vco_mask; + u32 status_val; + u32 status_mask; + u32 lock_det; }; enum freq_policy { @@ -58276,472 +65636,342 @@ struct clk_rcg_dfs_data { struct clk_init_data *init; }; -enum rcar_gen2_clk_types { - CLK_TYPE_GEN2_MAIN = 5, - CLK_TYPE_GEN2_PLL0 = 6, - CLK_TYPE_GEN2_PLL1 = 7, - CLK_TYPE_GEN2_PLL3 = 8, - CLK_TYPE_GEN2_Z = 9, - CLK_TYPE_GEN2_LB = 10, - CLK_TYPE_GEN2_ADSP = 11, - CLK_TYPE_GEN2_SDH = 12, - CLK_TYPE_GEN2_SD0 = 13, - CLK_TYPE_GEN2_SD1 = 14, - CLK_TYPE_GEN2_QSPI = 15, - CLK_TYPE_GEN2_RCAN = 16, +struct clk_regmap_mux { + u32 reg; + u32 shift; + u32 width; + const struct parent_map *parent_map; + struct clk_regmap clkr; }; -struct cpg_z_clk { - struct clk_hw hw; - void *reg; - void *kick_reg; +struct clk_regmap_phy_mux { + u32 reg; + struct clk_regmap clkr; }; -struct clk_fixed_factor { - struct clk_hw hw; - unsigned int mult; - unsigned int div; +enum gdsc_status { + GDSC_OFF = 0, + GDSC_ON = 1, }; -struct clkgen_clk_out; - -struct clkgen_data { - unsigned long flags; - bool mode; - const struct clkgen_clk_out *outputs; - const unsigned int outputs_nb; -}; +struct tegra_clk_periph_regs; -struct clkgen_clk_out { - const char *name; - unsigned long flags; +struct tegra_clk_periph_gate { + u32 magic; + struct clk_hw hw; + void *clk_base; + u8 flags; + int clk_num; + int *enable_refcnt; + const struct tegra_clk_periph_regs *regs; }; -struct flexgen { +struct tegra_clk_periph { + u32 magic; struct clk_hw hw; struct clk_mux mux; - struct clk_gate pgate; - struct clk_divider pdiv; - struct clk_gate fgate; - struct clk_divider fdiv; - struct clk_gate sync; - bool control_mode; + struct tegra_clk_frac_div divider; + struct tegra_clk_periph_gate gate; + const struct clk_ops *mux_ops; + const struct clk_ops *div_ops; + const struct clk_ops *gate_ops; }; -struct ccu_mult { - u32 enable; - u32 lock; - struct ccu_frac_internal frac; - struct ccu_mult_internal mult; - struct ccu_mux_internal mux; - struct ccu_common common; +struct tegra_clk_periph_regs { + u32 enb_reg; + u32 enb_set_reg; + u32 enb_clr_reg; + u32 rst_reg; + u32 rst_set_reg; + u32 rst_clr_reg; }; -struct _ccu_mult { - unsigned long mult; - unsigned long min; - unsigned long max; +struct tegra_periph_init_data { + const char *name; + int clk_id; + union { + const char * const *parent_names; + const char *parent_name; + } p; + int num_parents; + struct tegra_clk_periph periph; + u32 offset; + const char *con_id; + const char *dev_id; + unsigned long flags; }; -struct ccu_reset_map; - -struct sunxi_ccu_desc { - struct ccu_common **ccu_clks; - unsigned long num_ccu_clks; - struct clk_hw_onecell_data *hw_clks; - struct ccu_reset_map *resets; - unsigned long num_resets; +struct utmi_clk_param { + u32 osc_frequency; + u8 enable_delay_count; + u8 stable_count; + u8 active_delay_count; + u8 xtal_freq_count; }; -struct ccu_reset_map { - u16 reg; - u32 bit; +struct ti_clk_features { + u32 flags; + long fint_min; + long fint_max; + long fint_band1_max; + long fint_band2_min; + u8 dpll_bypass_vals; + u8 cm_idlest_val; }; -struct ccu_div { - u32 enable; - struct ccu_div_internal div; - struct ccu_mux_internal mux; - struct ccu_common common; - unsigned int fixed_post_div; -}; +struct omap_clkctrl_reg_data; -struct ccu_gate { - u32 enable; - struct ccu_common common; +struct omap_clkctrl_data { + u32 addr; + const struct omap_clkctrl_reg_data *regs; }; -struct clk_hw_omap; - -struct clk_omap_reg; +struct omap_clkctrl_bit_data; -struct clk_hw_omap_ops { - void (*find_idlest)(struct clk_hw_omap *, struct clk_omap_reg *, u8 *, u8 *); - void (*find_companion)(struct clk_hw_omap *, struct clk_omap_reg *, u8 *); - void (*allow_idle)(struct clk_hw_omap *); - void (*deny_idle)(struct clk_hw_omap *); +struct omap_clkctrl_reg_data { + u16 offset; + const struct omap_clkctrl_bit_data *bit_data; + u16 flags; + const char *parent; + const char *clkdm_name; }; -struct clk_omap_reg { - void *ptr; - u16 offset; - u8 index; - u8 flags; +struct omap_clkctrl_bit_data { + u8 bit; + u8 type; + const char * const *parents; + const void *data; }; -struct dpll_data; +struct omap_clkctrl_div_data { + const int *dividers; + int max_div; + u32 flags; +}; -struct clk_hw_omap { - struct clk_hw hw; +struct clk_lookup { struct list_head node; - unsigned long fixed_rate; - u8 fixed_div; - struct clk_omap_reg enable_reg; - u8 enable_bit; - unsigned long flags; - struct clk_omap_reg clksel_reg; - struct dpll_data *dpll_data; - const char *clkdm_name; - struct clockdomain *clkdm; - const struct clk_hw_omap_ops *ops; - u32 context; - int autoidle_count; + const char *dev_id; + const char *con_id; + struct clk *clk; + struct clk_hw *clk_hw; }; -struct dpll_data { - struct clk_omap_reg mult_div1_reg; - u32 mult_mask; - u32 div1_mask; - struct clk_hw *clk_bypass; - struct clk_hw *clk_ref; - struct clk_omap_reg control_reg; - u32 enable_mask; - unsigned long last_rounded_rate; - u16 last_rounded_m; - u8 last_rounded_m4xen; - u8 last_rounded_lpmode; - u16 max_multiplier; - u8 last_rounded_n; - u8 min_divider; - u16 max_divider; - unsigned long max_rate; - u8 modes; - struct clk_omap_reg autoidle_reg; - struct clk_omap_reg idlest_reg; - u32 autoidle_mask; - u32 freqsel_mask; - u32 idlest_mask; - u32 dco_mask; - u32 sddiv_mask; - u32 dcc_mask; - unsigned long dcc_rate; - u32 lpmode_mask; - u32 m4xen_mask; - u8 auto_recal_bit; - u8 recal_en_bit; - u8 recal_st_bit; - struct clk_omap_reg ssc_deltam_reg; - struct clk_omap_reg ssc_modfreq_reg; - u32 ssc_deltam_int_mask; - u32 ssc_deltam_frac_mask; - u32 ssc_modfreq_mant_mask; - u32 ssc_modfreq_exp_mask; - u32 ssc_enable_mask; - u32 ssc_downspread_mask; - u32 ssc_modfreq; - u32 ssc_deltam; - bool ssc_downspread; - u8 flags; +struct ti_dt_clk { + struct clk_lookup lk; + char *node_name; }; -typedef void (*ti_of_clk_init_cb_t)(void *, struct device_node *); - -struct zynq_pll { +struct clk_prcc { struct clk_hw hw; - void *pll_ctrl; - void *pll_status; - spinlock_t *lock; - u8 lockbit; + void *base; + u32 cg_sel; + int is_enabled; }; -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 mxs_dma_id { + IMX23_DMA = 0, + IMX28_DMA = 1, }; -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, +enum mxs_dma_devtype { + MXS_DMA_APBH = 0, + MXS_DMA_APBX = 1, }; -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 mxs_dma_type { + enum mxs_dma_id id; + enum mxs_dma_devtype type; }; -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 mxs_dma_engine; -struct dw_dma_platform_data; +struct mxs_dma_ccw; -struct dw_dma { - struct dma_device dma; - char name[20]; - void *regs; - struct dma_pool *desc_pool; +struct mxs_dma_chan { + struct mxs_dma_engine *mxs_dma; + struct dma_chan chan; + struct dma_async_tx_descriptor desc; 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; + unsigned int chan_irq; + struct mxs_dma_ccw *ccw; + dma_addr_t ccw_phys; + int desc_count; + enum dma_status status; + unsigned int flags; + bool reset; }; -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 mxs_dma_engine { + enum mxs_dma_id dev_id; + enum mxs_dma_devtype type; + void *base; + struct clk *clk; + struct dma_device dma_device; + struct mxs_dma_chan mxs_chans[16]; + struct platform_device *pdev; + unsigned int nr_channels; }; -struct dw_lli { - __le32 sar; - __le32 dar; - __le32 llp; - __le32 ctllo; - __le32 ctlhi; - __le32 sstat; - __le32 dstat; +struct mxs_dma_ccw { + u32 next; + u16 bits; + u16 xfer_bytes; + u32 bufaddr; + u32 pio_words[16]; }; -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 mxs_dma_filter_param { + unsigned int chan_id; }; -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 ti_dra7_xbar_data { + void *iomem; + struct dma_router dmarouter; + struct mutex mutex; + unsigned long *dma_inuse; + u16 safe_val; + u32 xbar_requests; + u32 dma_requests; + u32 dma_offset; }; -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 ti_am335x_xbar_data { + void *iomem; + struct dma_router dmarouter; + u32 xbar_events; + u32 dma_requests; }; -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 ti_dra7_xbar_map { + u16 xbar_in; + int xbar_out; }; -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 ti_am335x_xbar_map { + u16 dma_line; + u8 mux_val; }; -struct meson_gx_pwrc_vpu { - struct generic_pm_domain genpd; - struct regmap *regmap_ao; - struct regmap *regmap_hhi; - struct reset_control *rstc; - struct clk *vpu_clk; - struct clk *vapb_clk; - long: 32; -}; +struct rockchip_grf_value; -struct asv_limit_entry { - unsigned int hpm; - unsigned int ids; +struct rockchip_grf_info { + const struct rockchip_grf_value *values; + int num_values; }; -enum { - EXYNOS_ASV_SUBSYS_ID_ARM = 0, - EXYNOS_ASV_SUBSYS_ID_KFC = 1, - EXYNOS_ASV_SUBSYS_ID_MAX = 2, +struct rockchip_grf_value { + const char *desc; + u32 reg; + u32 val; }; -struct exynos_asv_table { - unsigned int num_rows; - unsigned int num_cols; - u32 *buf; -}; +struct tegra_fuse; -struct exynos_asv; +struct tegra_fuse_info; -struct exynos_asv_subsys { - struct exynos_asv *asv; - const char *cpu_dt_compat; - int id; - struct exynos_asv_table table; - unsigned int base_volt; - unsigned int offset_volt_h; - unsigned int offset_volt_l; +struct nvmem_cell_lookup; + +struct tegra_fuse_soc { + void (*init)(struct tegra_fuse *); + void (*speedo_init)(struct tegra_sku_info *); + int (*probe)(struct tegra_fuse *); + const struct tegra_fuse_info *info; + const struct nvmem_cell_lookup *lookups; + unsigned int num_lookups; + const struct nvmem_cell_info *cells; + unsigned int num_cells; + const struct nvmem_keepout *keepouts; + unsigned int num_keepouts; + const struct attribute_group *soc_attr_group; + bool clk_suspend_on; }; -struct exynos_asv { +struct tegra_fuse { struct device *dev; - struct regmap *chipid_regmap; - struct exynos_asv_subsys subsys[2]; - int (*opp_get_voltage)(const struct exynos_asv_subsys *, int, unsigned int); - unsigned int group; - unsigned int table; - bool use_sg; - int of_bin; + void *base; + phys_addr_t phys; + struct clk *clk; + struct reset_control *rst; + u32 (*read_early)(struct tegra_fuse *, unsigned int); + u32 (*read)(struct tegra_fuse *, unsigned int); + const struct tegra_fuse_soc *soc; + struct { + struct mutex lock; + struct completion wait; + struct dma_chan *chan; + struct dma_slave_config config; + dma_addr_t phys; + u32 *virt; + } apbdma; + struct nvmem_device *nvmem; + struct nvmem_cell_lookup *lookups; }; -enum sys_powerdown { - SYS_AFTR = 0, - SYS_LPA = 1, - SYS_SLEEP = 2, - NUM_SYS_POWERDOWN = 3, +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 exynos_pmu_conf; +struct tegra_fuse_info { + u32 (*read)(struct tegra_fuse *, unsigned int); + unsigned int size; + unsigned int spare; +}; -struct exynos_pmu_data { - const struct exynos_pmu_conf *pmu_config; - const struct exynos_pmu_conf *pmu_config_extra; - void (*pmu_init)(); - void (*powerdown_conf)(enum sys_powerdown); - void (*powerdown_conf_extra)(enum sys_powerdown); +struct virtio_device_id { + __u32 device; + __u32 vendor; }; -struct exynos_pmu_conf { - unsigned int offset; - u8 val[3]; +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; + long: 32; }; -struct regulator_coupler { - struct list_head list; - int (*attach_regulator)(struct regulator_coupler *, struct regulator_dev *); - int (*detach_regulator)(struct regulator_coupler *, struct regulator_dev *); - int (*balance_voltage)(struct regulator_coupler *, struct regulator_dev *, suspend_state_t); +struct virtqueue; + +typedef void vq_callback_t(struct virtqueue *); + +struct virtio_shm_region; + +struct virtio_config_ops { + void (*get)(struct virtio_device *, unsigned int, void *, unsigned int); + void (*set)(struct virtio_device *, unsigned int, const void *, unsigned int); + u32 (*generation)(struct virtio_device *); + u8 (*get_status)(struct virtio_device *); + void (*set_status)(struct virtio_device *, u8); + void (*reset)(struct virtio_device *); + int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, vq_callback_t **, const char * const *, const bool *, struct irq_affinity *); + void (*del_vqs)(struct virtio_device *); + void (*synchronize_cbs)(struct virtio_device *); + u64 (*get_features)(struct virtio_device *); + int (*finalize_features)(struct virtio_device *); + const char * (*bus_name)(struct virtio_device *); + int (*set_vq_affinity)(struct virtqueue *, const struct cpumask *); + const struct cpumask * (*get_vq_affinity)(struct virtio_device *, int); + bool (*get_shm_region)(struct virtio_device *, struct virtio_shm_region *, u8); + int (*disable_vq_and_reset)(struct virtqueue *); + int (*enable_vq_after_reset)(struct virtqueue *); }; struct of_regulator_match { @@ -58752,84 +65982,25 @@ struct of_regulator_match { const struct regulator_desc *desc; }; -enum lp872x_id { - LP8720 = 0, - LP8725 = 1, -}; - -enum lp872x_regulator_id { - LP8720_ID_BASE = 0, - LP8720_ID_LDO1 = 0, - LP8720_ID_LDO2 = 1, - LP8720_ID_LDO3 = 2, - LP8720_ID_LDO4 = 3, - LP8720_ID_LDO5 = 4, - LP8720_ID_BUCK = 5, - LP8725_ID_BASE = 6, - LP8725_ID_LDO1 = 6, - LP8725_ID_LDO2 = 7, - LP8725_ID_LDO3 = 8, - LP8725_ID_LDO4 = 9, - LP8725_ID_LDO5 = 10, - LP8725_ID_LILO1 = 11, - LP8725_ID_LILO2 = 12, - LP8725_ID_BUCK1 = 13, - LP8725_ID_BUCK2 = 14, - LP872X_ID_MAX = 15, -}; - -enum lp872x_dvs_sel { - SEL_V1 = 0, - SEL_V2 = 1, -}; - -struct lp872x_regulator_data { - enum lp872x_regulator_id id; - struct regulator_init_data *init_data; -}; - -struct lp872x_dvs; - -struct lp872x_platform_data { - u8 general_config; - bool update_config; - struct lp872x_regulator_data regulator_data[9]; - struct lp872x_dvs *dvs; - struct gpio_desc *enable_gpio; +struct stpmic1_regulator_cfg { + struct regulator_desc desc; + u8 mask_reset_reg; + u8 mask_reset_mask; + u8 icc_reg; + u8 icc_mask; }; -struct lp872x_dvs { - struct gpio_desc *gpio; - enum lp872x_dvs_sel vsel; - enum gpiod_flags init_state; +enum regulator_detection_severity { + REGULATOR_SEVERITY_PROT = 0, + REGULATOR_SEVERITY_ERR = 1, + REGULATOR_SEVERITY_WARN = 2, }; -struct lp872x { - struct regmap *regmap; +struct stpmic1 { struct device *dev; - enum lp872x_id chipid; - struct lp872x_platform_data *pdata; - int num_regulators; - enum gpiod_flags dvs_pin; -}; - -struct imx7_src_signal; - -struct imx7_src_variant { - const struct imx7_src_signal *signals; - unsigned int signals_num; - struct reset_control_ops ops; -}; - -struct imx7_src_signal { - unsigned int offset; - unsigned int bit; -}; - -struct imx7_src { - struct reset_controller_dev rcdev; struct regmap *regmap; - const struct imx7_src_signal *signals; + int irq; + struct regmap_irq_chip_data *irq_data; }; struct vt_event { @@ -58892,6 +66063,8 @@ struct kbkeycode { unsigned int keycode; }; +typedef unsigned short ushort; + struct vt_stat { unsigned short v_active; unsigned short v_signal; @@ -58918,1927 +66091,1680 @@ struct vt_consize { unsigned short v_ccol; }; -struct earlycon_device; - -struct earlycon_id { - char name[15]; - char name_term; - char compatible[128]; - int (*setup)(struct earlycon_device *, const char *); +struct atmel_dma_buffer { + unsigned char *buf; + dma_addr_t dma_addr; + unsigned int dma_size; + unsigned int ofs; }; -struct earlycon_device { - struct console *con; - long: 32; - struct uart_port port; - char options[32]; - unsigned int baud; +struct atmel_uart_port { + struct uart_port uart; + struct clk *clk; + struct clk *gclk; + int may_wakeup; + u32 backup_imr; + int break_active; + bool use_dma_rx; + bool use_pdc_rx; + short pdc_rx_idx; + struct atmel_dma_buffer pdc_rx[2]; + bool use_dma_tx; + bool use_pdc_tx; + struct atmel_dma_buffer pdc_tx; + spinlock_t lock_tx; + spinlock_t lock_rx; + struct dma_chan *chan_tx; + struct dma_chan *chan_rx; + struct dma_async_tx_descriptor *desc_tx; + struct dma_async_tx_descriptor *desc_rx; + dma_cookie_t cookie_tx; + dma_cookie_t cookie_rx; + struct scatterlist sg_tx; + struct scatterlist sg_rx; + struct tasklet_struct tasklet_rx; + struct tasklet_struct tasklet_tx; + atomic_t tasklet_shutdown; + unsigned int irq_status_prev; + unsigned int tx_len; + struct circ_buf rx_ring; + struct mctrl_gpios *gpios; + u32 backup_mode; + u32 backup_brgr; + unsigned int tx_done_mask; + u32 fifo_size; + u32 rts_high; + u32 rts_low; + bool ms_irq_enabled; + u32 rtor; + bool is_usart; + bool has_frac_baudrate; + bool has_hw_timer; + struct timer_list uart_timer; + bool tx_stopped; + bool suspended; + unsigned int pending; + unsigned int pending_status; + spinlock_t lock_suspended; + bool hd_start_rx; + unsigned int fidi_min; + unsigned int fidi_max; + struct { + u32 cr; + u32 mr; + u32 imr; + u32 brgr; + u32 rtor; + u32 ttgr; + u32 fmr; + u32 fimr; + } cache; + int (*prepare_rx)(struct uart_port *); + int (*prepare_tx)(struct uart_port *); + void (*schedule_rx)(struct uart_port *); + void (*schedule_tx)(struct uart_port *); + void (*release_rx)(struct uart_port *); + void (*release_tx)(struct uart_port *); long: 32; }; -enum lpuart_type { - VF610_LPUART = 0, - LS1021A_LPUART = 1, - LS1028A_LPUART = 2, - IMX7ULP_LPUART = 3, - IMX8ULP_LPUART = 4, - IMX8QXP_LPUART = 5, - IMXRT1050_LPUART = 6, +struct atmel_uart_char { + u16 status; + u16 ch; }; -struct lpuart_port { - struct uart_port port; - enum lpuart_type devtype; - struct clk *ipg_clk; - struct clk *baud_clk; - unsigned int txfifo_size; - unsigned int rxfifo_size; - u8 rx_watermark; - bool lpuart_dma_tx_use; - bool lpuart_dma_rx_use; - struct dma_chan *dma_tx_chan; - struct dma_chan *dma_rx_chan; - struct dma_async_tx_descriptor *dma_tx_desc; - struct dma_async_tx_descriptor *dma_rx_desc; - dma_cookie_t dma_tx_cookie; - dma_cookie_t dma_rx_cookie; - unsigned int dma_tx_bytes; - unsigned int dma_rx_bytes; - bool dma_tx_in_progress; - unsigned int dma_rx_timeout; - struct timer_list lpuart_timer; - struct scatterlist rx_sgl; - struct scatterlist tx_sgl[2]; - struct circ_buf rx_ring; - int rx_dma_rng_buf_len; - int last_residue; - unsigned int dma_tx_nents; - wait_queue_head_t dma_wait; - bool is_cs7; -}; +typedef unsigned int u_int; -struct lpuart_soc_data { - enum lpuart_type devtype; - char iotype; - u8 reg_off; - u8 rx_watermark; +struct imx_rngc { + struct device *dev; + struct clk *clk; + void *base; + struct hwrng rng; + struct completion rng_op_done; + u32 err_reg; }; -struct drm_auth { - drm_magic_t magic; -}; +typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *); -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, -}; +typedef void (*btf_trace_remove_device_from_group)(void *, int, struct device *); -struct drm_vma_offset_file { - struct rb_node vm_rb; - struct drm_file *vm_tag; - unsigned long vm_count; -}; +typedef void (*btf_trace_attach_device_to_domain)(void *, struct device *); -struct iosys_map { - union { - void *vaddr_iomem; - void *vaddr; - }; - bool is_iomem; -}; +typedef void (*btf_trace_map)(void *, unsigned long, phys_addr_t, size_t); -struct dma_fence_cb; +typedef void (*btf_trace_unmap)(void *, unsigned long, size_t, size_t); -typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *); +typedef void (*btf_trace_io_page_fault)(void *, struct device *, unsigned long, int); -struct dma_fence_cb { - struct list_head node; - dma_fence_func_t func; +struct trace_event_raw_iommu_group_event { + struct trace_entry ent; + int gid; + u32 __data_loc_device; + char __data[0]; }; -struct dma_buf_poll_cb_t { - struct dma_fence_cb cb; - wait_queue_head_t *poll; - __poll_t active; +struct trace_event_raw_iommu_device_event { + struct trace_entry ent; + u32 __data_loc_device; + char __data[0]; }; -struct dma_buf_ops; +struct trace_event_raw_map { + struct trace_entry ent; + u64 iova; + u64 paddr; + size_t size; + char __data[0]; + long: 32; +}; -struct dma_buf { +struct trace_event_raw_unmap { + struct trace_entry ent; + u64 iova; 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; + size_t unmapped_size; + char __data[0]; }; -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 trace_event_raw_iommu_error { + struct trace_entry ent; + u32 __data_loc_device; + u32 __data_loc_driver; + u64 iova; + int flags; + char __data[0]; + long: 32; }; -struct dma_buf_attach_ops; +struct trace_event_data_offsets_iommu_group_event { + u32 device; +}; -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 trace_event_data_offsets_iommu_device_event { + u32 device; }; -struct dma_buf_attach_ops { - bool allow_peer2peer; - void (*move_notify)(struct dma_buf_attachment *); +struct trace_event_data_offsets_iommu_error { + u32 device; + u32 driver; }; -struct tegra_bo { - struct drm_gem_object gem; - struct host1x_bo base; - unsigned long flags; - struct sg_table *sgt; - dma_addr_t iova; - void *vaddr; - struct drm_mm_node *mm; - unsigned long num_pages; - struct page **pages; - size_t size; - struct tegra_bo_tiling tiling; - long: 32; +struct trace_event_data_offsets_map {}; + +struct trace_event_data_offsets_unmap {}; + +struct displayid_block { + u8 tag; + u8 rev; + u8 num_bytes; }; -struct klist_node; +struct displayid_header { + u8 rev; + u8 bytes; + u8 prod_id; + u8 ext_count; +}; -struct klist { - spinlock_t k_lock; - struct list_head k_list; - void (*get)(struct klist_node *); - void (*put)(struct klist_node *); +struct displayid_iter { + const struct drm_edid *drm_edid; + const u8 *section; + int length; + int idx; + int ext_index; + u8 version; + u8 primary_use; }; -struct klist_node { - void *n_klist; - struct list_head n_node; - struct kref n_ref; +struct edid_quirk { + u32 panel_id; + u32 quirks; }; -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 minimode { + short w; + short h; + short r; + short rb; }; -struct driver_private { - struct kobject kobj; - struct klist klist_devices; - struct klist_node knode_bus; - struct module_kobject *mkobj; - struct device_driver *driver; +struct stereo_mandatory_mode { + int width; + int height; + int vrefresh; + unsigned int flags; }; -struct cpu_attr { - struct device_attribute attr; - const struct cpumask * const map; +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, }; -typedef u32 note_buf_t[45]; +enum hdmi_quantization_range { + HDMI_QUANTIZATION_RANGE_DEFAULT = 0, + HDMI_QUANTIZATION_RANGE_LIMITED = 1, + HDMI_QUANTIZATION_RANGE_FULL = 2, + HDMI_QUANTIZATION_RANGE_RESERVED = 3, +}; -struct regmap_async { - struct list_head list; - struct regmap *map; - void *work_buf; +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, }; -struct regmap_format { - size_t buf_size; - size_t reg_bytes; - size_t pad_bytes; - size_t val_bytes; - s8 reg_shift; - 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 *); +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, }; -struct regcache_ops; +enum hdmi_scan_mode { + HDMI_SCAN_MODE_NONE = 0, + HDMI_SCAN_MODE_OVERSCAN = 1, + HDMI_SCAN_MODE_UNDERSCAN = 2, + HDMI_SCAN_MODE_RESERVED = 3, +}; -struct reg_sequence; +enum hdmi_colorimetry { + HDMI_COLORIMETRY_NONE = 0, + HDMI_COLORIMETRY_ITU_601 = 1, + HDMI_COLORIMETRY_ITU_709 = 2, + HDMI_COLORIMETRY_EXTENDED = 3, +}; -struct hwspinlock; +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, +}; -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; - bool force_write_field; - 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; +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, }; -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); +enum hdmi_nups { + HDMI_NUPS_UNKNOWN = 0, + HDMI_NUPS_HORIZONTAL = 1, + HDMI_NUPS_VERTICAL = 2, + HDMI_NUPS_BOTH = 3, }; -struct reg_sequence { - unsigned int reg; - unsigned int def; - unsigned int delay_us; +enum hdmi_ycc_quantization_range { + HDMI_YCC_QUANTIZATION_RANGE_LIMITED = 0, + HDMI_YCC_QUANTIZATION_RANGE_FULL = 1, }; -struct regmap_mmio_context { - void *regs; - unsigned int val_bytes; - bool big_endian; - bool attached_clk; - struct clk *clk; - void (*reg_write)(struct regmap_mmio_context *, unsigned int, unsigned int); - unsigned int (*reg_read)(struct regmap_mmio_context *, unsigned int); +enum hdmi_content_type { + HDMI_CONTENT_TYPE_GRAPHICS = 0, + HDMI_CONTENT_TYPE_PHOTO = 1, + HDMI_CONTENT_TYPE_CINEMA = 2, + HDMI_CONTENT_TYPE_GAME = 3, }; -struct mfd_of_node_entry { - struct list_head list; - struct device *dev; - struct device_node *np; +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, }; -struct dma_fence_array; - -struct dma_fence_array_cb { - struct dma_fence_cb cb; - struct dma_fence_array *array; +enum { + DUMP_PREFIX_NONE = 0, + DUMP_PREFIX_ADDRESS = 1, + DUMP_PREFIX_OFFSET = 2, }; -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 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 scsi_pr_type { - SCSI_PR_WRITE_EXCLUSIVE = 1, - SCSI_PR_EXCLUSIVE_ACCESS = 3, - SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5, - SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6, - SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7, - SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8, +enum hdmi_metadata_type { + HDMI_STATIC_METADATA_TYPE1 = 0, }; -struct scsi_lun { - __u8 scsi_lun[8]; +struct cea_db { + u8 tag_length; + u8 data[0]; }; -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, +struct displayid_vesa_vendor_specific_block { + struct displayid_block base; + u8 oui[3]; + u8 data_structure_type; + u8 mso; }; -struct scsi_exec_args { - unsigned char *sense; - unsigned int sense_len; - struct scsi_sense_hdr *sshdr; - blk_mq_req_flags_t req_flags; - int scmd_flags; - int *resid; +struct 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 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 displayid_detailed_timing_block { + struct displayid_block base; + struct displayid_detailed_timings_1 timings[0]; }; -struct cdrom_tochdr { - __u8 cdth_trk0; - __u8 cdth_trk1; +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 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; - long: 32; - struct cdrom_device_info cdi; - struct mutex lock; - struct gendisk *disk; +typedef void detailed_cb(const struct detailed_timing *, void *); + +struct drm_edid_iter { + const struct drm_edid *drm_edid; + int index; }; -struct cdrom_ti { - __u8 cdti_trk0; - __u8 cdti_ind0; - __u8 cdti_trk1; - __u8 cdti_ind1; +struct cea_db_iter { + struct drm_edid_iter edid_iter; + struct displayid_iter displayid_iter; + const u8 *collection; + int index; + int end; }; -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; +struct cea_sad { + u8 format; + u8 channels; + u8 freq; + u8 byte2; }; -typedef struct scsi_cd Scsi_CD; +struct detailed_mode_closure { + struct drm_connector *connector; + const struct drm_edid *drm_edid; + bool preferred; + int modes; +}; -struct mtd_partition { - const char *name; - const char * const *types; - uint64_t size; - uint64_t offset; - uint32_t mask_flags; - uint32_t add_flags; - struct device_node *of_node; - long: 32; +struct hdmi_avi_infoframe { + enum hdmi_infoframe_type type; + unsigned char version; + unsigned char length; + bool itc; + unsigned char pixel_repeat; + 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; + 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 short top_bar; + unsigned short bottom_bar; + unsigned short left_bar; + unsigned short right_bar; }; -struct map_info; +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; +}; -struct gpio_descs; +typedef int read_block_fn(void *, u8 *, unsigned int, size_t); -struct physmap_flash_info { - unsigned int nmaps; - struct mtd_info **mtds; - struct mtd_info *cmtd; - struct map_info *maps; - spinlock_t vpp_lock; - int vpp_refcnt; - const char *probe_type; - const char * const *part_types; - unsigned int nparts; - const struct mtd_partition *parts; - struct gpio_descs *gpios; - unsigned int gpio_values; - unsigned int win_order; +struct dma_buf_poll_cb_t { + struct dma_fence_cb cb; + wait_queue_head_t *poll; + __poll_t active; }; -struct mtd_chip_driver; +struct dma_buf_ops; -struct map_info { +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; - unsigned long size; - resource_size_t phys; - void *virt; - void *cached; - int swap; - int bankwidth; - void (*inval_cache)(struct map_info *, unsigned long, ssize_t); - void (*set_vpp)(struct map_info *, int); - unsigned long pfow_base; - unsigned long map_priv_1; - unsigned long map_priv_2; - struct device_node *device_node; - void *fldrv_priv; - struct mtd_chip_driver *fldrv; + 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 mtd_chip_driver { - struct mtd_info * (*probe)(struct map_info *); - void (*destroy)(struct mtd_info *); - struct module *module; - char *name; - struct list_head list; +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 gpio_array; +struct dma_buf_attach_ops; -struct gpio_descs { - struct gpio_array *info; - unsigned int ndescs; - struct gpio_desc *desc[0]; +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 physmap_flash_data { - unsigned int width; - int (*init)(struct platform_device *); - void (*exit)(struct platform_device *); - void (*set_vpp)(struct platform_device *, int); - unsigned int nr_parts; - unsigned int pfow_base; - char *probe_type; - struct mtd_partition *parts; - const char * const *part_probe_types; +struct dma_buf_attach_ops { + bool allow_peer2peer; + void (*move_notify)(struct dma_buf_attachment *); }; -struct mtd_part_parser_data { - unsigned long origin; +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; }; -struct nand_onfi_params; - -struct nand_manufacturer_ops { - void (*detect)(struct nand_chip *); - int (*init)(struct nand_chip *); - void (*cleanup)(struct nand_chip *); - void (*fixup_onfi_param_page)(struct nand_chip *, struct nand_onfi_params *); +struct cpu_attr { + struct device_attribute attr; + const struct cpumask * const map; }; -struct nand_onfi_params { - u8 sig[4]; - __le16 revision; - __le16 features; - __le16 opt_cmd; - u8 reserved0[2]; - __le16 ext_param_page_length; - u8 num_of_param_pages; - u8 reserved1[17]; - char manufacturer[12]; - char model[20]; - u8 jedec_id; - __le16 date_code; - u8 reserved2[13]; - __le32 byte_per_page; - __le16 spare_bytes_per_page; - __le32 data_bytes_per_ppage; - __le16 spare_bytes_per_ppage; - __le32 pages_per_block; - __le32 blocks_per_lun; - u8 lun_count; - u8 addr_cycles; - u8 bits_per_cell; - __le16 bb_per_lun; - __le16 block_endurance; - u8 guaranteed_good_blocks; - __le16 guaranteed_block_endurance; - u8 programs_per_page; - u8 ppage_attr; - u8 ecc_bits; - u8 interleaved_bits; - u8 interleaved_ops; - u8 reserved3[13]; - u8 io_pin_capacitance_max; - __le16 sdr_timing_modes; - __le16 program_cache_timing_mode; - __le16 t_prog; - __le16 t_bers; - __le16 t_r; - __le16 t_ccs; - u8 nvddr_timing_modes; - u8 nvddr2_timing_modes; - u8 nvddr_nvddr2_features; - __le16 clk_pin_capacitance_typ; - __le16 io_pin_capacitance_typ; - __le16 input_pin_capacitance_typ; - u8 input_pin_capacitance_max; - u8 driver_strength_support; - __le16 t_int_r; - __le16 t_adl; - u8 reserved4[8]; - __le16 vendor_revision; - u8 vendor[88]; - __le16 crc; -} __attribute__((packed)); - -struct bcm2835_spidev; - -struct bcm2835_spi { - void *regs; - struct clk *clk; - unsigned long clk_hz; - int irq; - struct spi_transfer *tfr; - struct spi_controller *ctlr; - const u8 *tx_buf; - u8 *rx_buf; - int tx_len; - int rx_len; - int tx_prologue; - int rx_prologue; - unsigned int tx_spillover; - struct dentry *debugfs_dir; - u64 count_transfer_polling; - u64 count_transfer_irq; - u64 count_transfer_irq_after_polling; - u64 count_transfer_dma; - struct bcm2835_spidev *slv; - unsigned int tx_dma_active; - unsigned int rx_dma_active; - struct dma_async_tx_descriptor *fill_tx_desc; - dma_addr_t fill_tx_addr; - long: 32; +struct cpu { + int node_id; + int hotpluggable; + struct device dev; }; -struct bcm2835_spidev { - u32 prepare_cs; - struct dma_async_tx_descriptor *clear_rx_desc; - dma_addr_t clear_rx_addr; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - u32 clear_rx_cs; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; +typedef u32 note_buf_t[45]; -struct rtl821x_priv { - u16 phycr1; - u16 phycr2; - bool has_phycr2; - struct clk *clk; +struct gpd_link { + struct generic_pm_domain *parent; + struct list_head parent_node; + struct generic_pm_domain *child; + struct list_head child_node; + unsigned int performance_state; + unsigned int prev_performance_state; }; -struct dsa_device_ops; - -struct dsa_switch_tree; - -struct dsa_switch; - -struct dsa_bridge; - -struct dsa_lag; +struct gpd_timing_data; -struct dsa_port { - union { - struct net_device *master; - struct net_device *slave; - }; - const struct dsa_device_ops *tag_ops; - struct dsa_switch_tree *dst; - struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); - struct dsa_switch *ds; - unsigned int index; - enum { - DSA_PORT_TYPE_UNUSED = 0, - DSA_PORT_TYPE_CPU = 1, - DSA_PORT_TYPE_DSA = 2, - DSA_PORT_TYPE_USER = 3, - } type; - const char *name; - struct dsa_port *cpu_dp; - u8 mac[6]; - u8 stp_state; - u8 vlan_filtering: 1; - u8 learning: 1; - u8 lag_tx_enabled: 1; - u8 master_admin_up: 1; - u8 master_oper_up: 1; - u8 cpu_port_in_lag: 1; - u8 setup: 1; - struct device_node *dn; - unsigned int ageing_time; - struct dsa_bridge *bridge; - struct devlink_port devlink_port; - struct phylink *pl; - struct phylink_config pl_config; - struct dsa_lag *lag; - struct net_device *hsr_dev; - struct list_head list; - const struct ethtool_ops *orig_ethtool_ops; - struct mutex addr_lists_lock; - struct list_head fdbs; - struct list_head mdbs; - struct mutex vlans_lock; - union { - struct list_head vlans; - struct list_head user_vlans; - }; +struct generic_pm_domain_data { + struct pm_domain_data base; + struct gpd_timing_data *td; + struct notifier_block nb; + struct notifier_block *power_nb; + int cpu; + unsigned int performance_state; + unsigned int default_pstate; + unsigned int rpm_pstate; + void *data; }; -enum dsa_tag_protocol { - DSA_TAG_PROTO_NONE = 0, - DSA_TAG_PROTO_BRCM = 1, - DSA_TAG_PROTO_BRCM_LEGACY = 22, - DSA_TAG_PROTO_BRCM_PREPEND = 2, - DSA_TAG_PROTO_DSA = 3, - DSA_TAG_PROTO_EDSA = 4, - DSA_TAG_PROTO_GSWIP = 5, - DSA_TAG_PROTO_KSZ9477 = 6, - DSA_TAG_PROTO_KSZ9893 = 7, - DSA_TAG_PROTO_LAN9303 = 8, - DSA_TAG_PROTO_MTK = 9, - DSA_TAG_PROTO_QCA = 10, - DSA_TAG_PROTO_TRAILER = 11, - DSA_TAG_PROTO_8021Q = 12, - DSA_TAG_PROTO_SJA1105 = 13, - DSA_TAG_PROTO_KSZ8795 = 14, - DSA_TAG_PROTO_OCELOT = 15, - DSA_TAG_PROTO_AR9331 = 16, - DSA_TAG_PROTO_RTL4_A = 17, - DSA_TAG_PROTO_HELLCREEK = 18, - DSA_TAG_PROTO_XRS700X = 19, - DSA_TAG_PROTO_OCELOT_8021Q = 20, - DSA_TAG_PROTO_SEVILLE = 21, - DSA_TAG_PROTO_SJA1110 = 23, - DSA_TAG_PROTO_RTL8_4 = 24, - DSA_TAG_PROTO_RTL8_4T = 25, - DSA_TAG_PROTO_RZN1_A5PSW = 26, - DSA_TAG_PROTO_LAN937X = 27, +struct gpd_timing_data { + s64 suspend_latency_ns; + s64 resume_latency_ns; + s64 effective_constraint_ns; + ktime_t next_wakeup; + bool constraint_changed; + bool cached_suspend_ok; + long: 32; }; -struct dsa_device_ops { - struct sk_buff * (*xmit)(struct sk_buff *, struct net_device *); - struct sk_buff * (*rcv)(struct sk_buff *, struct net_device *); - void (*flow_dissect)(const struct sk_buff *, __be16 *, int *); - int (*connect)(struct dsa_switch *); - void (*disconnect)(struct dsa_switch *); - unsigned int needed_headroom; - unsigned int needed_tailroom; - const char *name; - enum dsa_tag_protocol proto; - bool promisc_on_master; +struct soc_device { + struct device dev; + struct soc_device_attribute *attr; + int soc_dev_num; }; -struct dsa_8021q_context; - -struct dsa_chip_data; - -struct dsa_switch_ops; - -struct dsa_switch { - struct device *dev; - struct dsa_switch_tree *dst; - unsigned int index; - u32 setup: 1; - u32 vlan_filtering_is_global: 1; - u32 needs_standalone_vlan_filtering: 1; - u32 configure_vlan_while_not_filtering: 1; - u32 untag_bridge_pvid: 1; - u32 assisted_learning_on_cpu_port: 1; - u32 vlan_filtering: 1; - u32 mtu_enforcement_ingress: 1; - u32 fdb_isolation: 1; - struct notifier_block nb; - void *priv; - void *tagger_data; - struct dsa_chip_data *cd; - const struct dsa_switch_ops *ops; - u32 phys_mii_mask; - struct mii_bus *slave_mii_bus; - unsigned int ageing_time_min; - unsigned int ageing_time_max; - struct dsa_8021q_context *tag_8021q_ctx; - struct devlink *devlink; - unsigned int num_tx_queues; - unsigned int num_lag_ids; - unsigned int max_num_bridges; - unsigned int num_ports; +struct isl29003_data { + struct i2c_client *client; + struct mutex lock; + u8 reg_cache[4]; + u8 power_state_before_suspend; }; -struct dsa_platform_data; - -struct dsa_switch_tree { - struct list_head list; - struct list_head ports; - struct raw_notifier_head nh; - unsigned int index; - struct kref refcount; - struct dsa_lag **lags; - const struct dsa_device_ops *tag_ops; - enum dsa_tag_protocol default_proto; - bool setup; - struct dsa_platform_data *pd; - struct list_head rtable; - unsigned int lags_len; - unsigned int last_switch; +enum max8997_haptic_motor_type { + MAX8997_HAPTIC_ERM = 0, + MAX8997_HAPTIC_LRA = 1, }; -struct dsa_lag { - struct net_device *dev; - unsigned int id; - struct mutex fdb_lock; - struct list_head fdbs; - refcount_t refcount; +enum max8997_haptic_pulse_mode { + MAX8997_EXTERNAL_MODE = 0, + MAX8997_INTERNAL_MODE = 1, }; -struct dsa_platform_data { - struct device *netdev; - struct net_device *of_netdev; - int nr_chips; - struct dsa_chip_data *chip; +enum max8997_haptic_pwm_divisor { + MAX8997_PWM_DIVISOR_32 = 0, + MAX8997_PWM_DIVISOR_64 = 1, + MAX8997_PWM_DIVISOR_128 = 2, + MAX8997_PWM_DIVISOR_256 = 3, }; -struct dsa_chip_data { - struct device *host_dev; - int sw_addr; - struct device *netdev[12]; - int eeprom_len; - struct device_node *of_node; - char *port_names[12]; - struct device_node *port_dn[12]; - s8 rtable[4]; +enum max8997_led_mode { + MAX8997_NONE = 0, + MAX8997_FLASH_MODE = 1, + MAX8997_MOVIE_MODE = 2, + MAX8997_FLASH_PIN_CONTROL_MODE = 3, + MAX8997_MOVIE_PIN_CONTROL_MODE = 4, }; -typedef int dsa_fdb_dump_cb_t(const unsigned char *, u16, bool, void *); - -enum devlink_sb_threshold_type { - DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0, - DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 1, +enum max8997_pmic_reg { + MAX8997_REG_PMIC_ID0 = 0, + MAX8997_REG_PMIC_ID1 = 1, + MAX8997_REG_INTSRC = 2, + MAX8997_REG_INT1 = 3, + MAX8997_REG_INT2 = 4, + MAX8997_REG_INT3 = 5, + MAX8997_REG_INT4 = 6, + MAX8997_REG_INT1MSK = 8, + MAX8997_REG_INT2MSK = 9, + MAX8997_REG_INT3MSK = 10, + MAX8997_REG_INT4MSK = 11, + MAX8997_REG_STATUS1 = 13, + MAX8997_REG_STATUS2 = 14, + MAX8997_REG_STATUS3 = 15, + MAX8997_REG_STATUS4 = 16, + MAX8997_REG_MAINCON1 = 19, + MAX8997_REG_MAINCON2 = 20, + MAX8997_REG_BUCKRAMP = 21, + MAX8997_REG_BUCK1CTRL = 24, + MAX8997_REG_BUCK1DVS1 = 25, + MAX8997_REG_BUCK1DVS2 = 26, + MAX8997_REG_BUCK1DVS3 = 27, + MAX8997_REG_BUCK1DVS4 = 28, + MAX8997_REG_BUCK1DVS5 = 29, + MAX8997_REG_BUCK1DVS6 = 30, + MAX8997_REG_BUCK1DVS7 = 31, + MAX8997_REG_BUCK1DVS8 = 32, + MAX8997_REG_BUCK2CTRL = 33, + MAX8997_REG_BUCK2DVS1 = 34, + MAX8997_REG_BUCK2DVS2 = 35, + MAX8997_REG_BUCK2DVS3 = 36, + MAX8997_REG_BUCK2DVS4 = 37, + MAX8997_REG_BUCK2DVS5 = 38, + MAX8997_REG_BUCK2DVS6 = 39, + MAX8997_REG_BUCK2DVS7 = 40, + MAX8997_REG_BUCK2DVS8 = 41, + MAX8997_REG_BUCK3CTRL = 42, + MAX8997_REG_BUCK3DVS = 43, + MAX8997_REG_BUCK4CTRL = 44, + MAX8997_REG_BUCK4DVS = 45, + MAX8997_REG_BUCK5CTRL = 46, + MAX8997_REG_BUCK5DVS1 = 47, + MAX8997_REG_BUCK5DVS2 = 48, + MAX8997_REG_BUCK5DVS3 = 49, + MAX8997_REG_BUCK5DVS4 = 50, + MAX8997_REG_BUCK5DVS5 = 51, + MAX8997_REG_BUCK5DVS6 = 52, + MAX8997_REG_BUCK5DVS7 = 53, + MAX8997_REG_BUCK5DVS8 = 54, + MAX8997_REG_BUCK6CTRL = 55, + MAX8997_REG_BUCK6BPSKIPCTRL = 56, + MAX8997_REG_BUCK7CTRL = 57, + MAX8997_REG_BUCK7DVS = 58, + MAX8997_REG_LDO1CTRL = 59, + MAX8997_REG_LDO2CTRL = 60, + MAX8997_REG_LDO3CTRL = 61, + MAX8997_REG_LDO4CTRL = 62, + MAX8997_REG_LDO5CTRL = 63, + MAX8997_REG_LDO6CTRL = 64, + MAX8997_REG_LDO7CTRL = 65, + MAX8997_REG_LDO8CTRL = 66, + MAX8997_REG_LDO9CTRL = 67, + MAX8997_REG_LDO10CTRL = 68, + MAX8997_REG_LDO11CTRL = 69, + MAX8997_REG_LDO12CTRL = 70, + MAX8997_REG_LDO13CTRL = 71, + MAX8997_REG_LDO14CTRL = 72, + MAX8997_REG_LDO15CTRL = 73, + MAX8997_REG_LDO16CTRL = 74, + MAX8997_REG_LDO17CTRL = 75, + MAX8997_REG_LDO18CTRL = 76, + MAX8997_REG_LDO21CTRL = 77, + MAX8997_REG_MBCCTRL1 = 80, + MAX8997_REG_MBCCTRL2 = 81, + MAX8997_REG_MBCCTRL3 = 82, + MAX8997_REG_MBCCTRL4 = 83, + MAX8997_REG_MBCCTRL5 = 84, + MAX8997_REG_MBCCTRL6 = 85, + MAX8997_REG_OTPCGHCVS = 86, + MAX8997_REG_SAFEOUTCTRL = 90, + MAX8997_REG_LBCNFG1 = 94, + MAX8997_REG_LBCNFG2 = 95, + MAX8997_REG_BBCCTRL = 96, + MAX8997_REG_FLASH1_CUR = 99, + MAX8997_REG_FLASH2_CUR = 100, + MAX8997_REG_MOVIE_CUR = 101, + MAX8997_REG_GSMB_CUR = 102, + MAX8997_REG_BOOST_CNTL = 103, + MAX8997_REG_LEN_CNTL = 104, + MAX8997_REG_FLASH_CNTL = 105, + MAX8997_REG_WDT_CNTL = 106, + MAX8997_REG_MAXFLASH1 = 107, + MAX8997_REG_MAXFLASH2 = 108, + MAX8997_REG_FLASHSTATUS = 109, + MAX8997_REG_FLASHSTATUSMASK = 110, + MAX8997_REG_GPIOCNTL1 = 112, + MAX8997_REG_GPIOCNTL2 = 113, + MAX8997_REG_GPIOCNTL3 = 114, + MAX8997_REG_GPIOCNTL4 = 115, + MAX8997_REG_GPIOCNTL5 = 116, + MAX8997_REG_GPIOCNTL6 = 117, + MAX8997_REG_GPIOCNTL7 = 118, + MAX8997_REG_GPIOCNTL8 = 119, + MAX8997_REG_GPIOCNTL9 = 120, + MAX8997_REG_GPIOCNTL10 = 121, + MAX8997_REG_GPIOCNTL11 = 122, + MAX8997_REG_GPIOCNTL12 = 123, + MAX8997_REG_LDO1CONFIG = 128, + MAX8997_REG_LDO2CONFIG = 129, + MAX8997_REG_LDO3CONFIG = 130, + MAX8997_REG_LDO4CONFIG = 131, + MAX8997_REG_LDO5CONFIG = 132, + MAX8997_REG_LDO6CONFIG = 133, + MAX8997_REG_LDO7CONFIG = 134, + MAX8997_REG_LDO8CONFIG = 135, + MAX8997_REG_LDO9CONFIG = 136, + MAX8997_REG_LDO10CONFIG = 137, + MAX8997_REG_LDO11CONFIG = 138, + MAX8997_REG_LDO12CONFIG = 139, + MAX8997_REG_LDO13CONFIG = 140, + MAX8997_REG_LDO14CONFIG = 141, + MAX8997_REG_LDO15CONFIG = 142, + MAX8997_REG_LDO16CONFIG = 143, + MAX8997_REG_LDO17CONFIG = 144, + MAX8997_REG_LDO18CONFIG = 145, + MAX8997_REG_LDO21CONFIG = 146, + MAX8997_REG_DVSOKTIMER1 = 151, + MAX8997_REG_DVSOKTIMER2 = 152, + MAX8997_REG_DVSOKTIMER4 = 153, + MAX8997_REG_DVSOKTIMER5 = 154, + MAX8997_REG_PMIC_END = 155, }; -enum devlink_sb_pool_type { - DEVLINK_SB_POOL_TYPE_INGRESS = 0, - DEVLINK_SB_POOL_TYPE_EGRESS = 1, +enum max8997_muic_reg { + MAX8997_MUIC_REG_ID = 0, + MAX8997_MUIC_REG_INT1 = 1, + MAX8997_MUIC_REG_INT2 = 2, + MAX8997_MUIC_REG_INT3 = 3, + MAX8997_MUIC_REG_STATUS1 = 4, + MAX8997_MUIC_REG_STATUS2 = 5, + MAX8997_MUIC_REG_STATUS3 = 6, + MAX8997_MUIC_REG_INTMASK1 = 7, + MAX8997_MUIC_REG_INTMASK2 = 8, + MAX8997_MUIC_REG_INTMASK3 = 9, + MAX8997_MUIC_REG_CDETCTRL = 10, + MAX8997_MUIC_REG_CONTROL1 = 12, + MAX8997_MUIC_REG_CONTROL2 = 13, + MAX8997_MUIC_REG_CONTROL3 = 14, + MAX8997_MUIC_REG_END = 15, }; -struct fixed_phy_status; +struct max8997_regulator_data; -struct netdev_notifier_changeupper_info; +struct max8997_muic_platform_data; -struct switchdev_mst_state; +struct max8997_haptic_platform_data; -struct switchdev_brport_flags; +struct max8997_led_platform_data; -struct switchdev_obj_port_vlan; +struct max8997_platform_data { + int ono; + struct max8997_regulator_data *regulators; + int num_regulators; + bool ignore_gpiodvs_side_effect; + int buck125_gpios[3]; + int buck125_default_idx; + unsigned int buck1_voltage[8]; + bool buck1_gpiodvs; + unsigned int buck2_voltage[8]; + bool buck2_gpiodvs; + unsigned int buck5_voltage[8]; + bool buck5_gpiodvs; + int eoc_mA; + int timeout; + struct max8997_muic_platform_data *muic_pdata; + struct max8997_haptic_platform_data *haptic_pdata; + struct max8997_led_platform_data *led_pdata; +}; -struct switchdev_vlan_msti; +struct max8997_regulator_data { + int id; + struct regulator_init_data *initdata; + struct device_node *reg_node; +}; -struct dsa_db; +struct max8997_muic_reg_data; -struct switchdev_obj_port_mdb; +struct max8997_muic_platform_data { + struct max8997_muic_reg_data *init_data; + int num_init_data; + int detcable_delay_ms; + int path_usb; + int path_uart; +}; -struct dsa_mall_mirror_tc_entry; +struct max8997_muic_reg_data { + u8 addr; + u8 data; +}; -struct dsa_mall_policer_tc_entry; +struct max8997_haptic_platform_data { + unsigned int pwm_period; + enum max8997_haptic_motor_type type; + enum max8997_haptic_pulse_mode mode; + enum max8997_haptic_pwm_divisor pwm_divisor; + unsigned int internal_mode_pattern; + unsigned int pattern_cycle; + unsigned int pattern_signal_period; +}; -struct netdev_lag_upper_info; +struct max8997_led_platform_data { + enum max8997_led_mode mode[2]; + u8 brightness[2]; +}; -struct devlink_param_gset_ctx; +struct max8997_dev { + struct device *dev; + struct max8997_platform_data *pdata; + struct i2c_client *i2c; + struct i2c_client *rtc; + struct i2c_client *haptic; + struct i2c_client *muic; + struct mutex iolock; + unsigned long type; + struct platform_device *battery; + int irq; + int ono; + struct irq_domain *irq_domain; + struct mutex irqlock; + int irq_masks_cur[11]; + int irq_masks_cache[11]; + u8 reg_dump[187]; + bool gpio_status[12]; +}; -struct devlink_info_req; +typedef int filler_t(struct file *, struct folio *); -struct devlink_sb_pool_info; +struct msdos_partition { + u8 boot_ind; + u8 head; + u8 sector; + u8 cyl; + u8 sys_ind; + u8 end_head; + u8 end_sector; + u8 end_cyl; + __le32 start_sect; + __le32 nr_sects; +}; -struct switchdev_obj_mrp; - -struct switchdev_obj_ring_role_mrp; - -struct dsa_switch_ops { - enum dsa_tag_protocol (*get_tag_protocol)(struct dsa_switch *, int, enum dsa_tag_protocol); - int (*change_tag_protocol)(struct dsa_switch *, enum dsa_tag_protocol); - int (*connect_tag_protocol)(struct dsa_switch *, enum dsa_tag_protocol); - int (*port_change_master)(struct dsa_switch *, int, struct net_device *, struct netlink_ext_ack *); - int (*setup)(struct dsa_switch *); - void (*teardown)(struct dsa_switch *); - int (*port_setup)(struct dsa_switch *, int); - void (*port_teardown)(struct dsa_switch *, int); - u32 (*get_phy_flags)(struct dsa_switch *, int); - int (*phy_read)(struct dsa_switch *, int, int); - int (*phy_write)(struct dsa_switch *, int, int, u16); - void (*adjust_link)(struct dsa_switch *, int, struct phy_device *); - void (*fixed_link_update)(struct dsa_switch *, int, struct fixed_phy_status *); - void (*phylink_get_caps)(struct dsa_switch *, int, struct phylink_config *); - struct phylink_pcs * (*phylink_mac_select_pcs)(struct dsa_switch *, int, phy_interface_t); - int (*phylink_mac_link_state)(struct dsa_switch *, int, struct phylink_link_state *); - int (*phylink_mac_prepare)(struct dsa_switch *, int, unsigned int, phy_interface_t); - void (*phylink_mac_config)(struct dsa_switch *, int, unsigned int, const struct phylink_link_state *); - int (*phylink_mac_finish)(struct dsa_switch *, int, unsigned int, phy_interface_t); - void (*phylink_mac_an_restart)(struct dsa_switch *, int); - void (*phylink_mac_link_down)(struct dsa_switch *, int, unsigned int, phy_interface_t); - void (*phylink_mac_link_up)(struct dsa_switch *, int, unsigned int, phy_interface_t, struct phy_device *, int, int, bool, bool); - void (*phylink_fixed_state)(struct dsa_switch *, int, struct phylink_link_state *); - void (*get_strings)(struct dsa_switch *, int, u32, uint8_t *); - void (*get_ethtool_stats)(struct dsa_switch *, int, uint64_t *); - int (*get_sset_count)(struct dsa_switch *, int, int); - void (*get_ethtool_phy_stats)(struct dsa_switch *, int, uint64_t *); - void (*get_eth_phy_stats)(struct dsa_switch *, int, struct ethtool_eth_phy_stats *); - void (*get_eth_mac_stats)(struct dsa_switch *, int, struct ethtool_eth_mac_stats *); - void (*get_eth_ctrl_stats)(struct dsa_switch *, int, struct ethtool_eth_ctrl_stats *); - void (*get_rmon_stats)(struct dsa_switch *, int, struct ethtool_rmon_stats *, const struct ethtool_rmon_hist_range **); - void (*get_stats64)(struct dsa_switch *, int, struct rtnl_link_stats64 *); - void (*get_pause_stats)(struct dsa_switch *, int, struct ethtool_pause_stats *); - void (*self_test)(struct dsa_switch *, int, struct ethtool_test *, u64 *); - void (*get_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); - int (*set_wol)(struct dsa_switch *, int, struct ethtool_wolinfo *); - int (*get_ts_info)(struct dsa_switch *, int, struct ethtool_ts_info *); - int (*get_mm)(struct dsa_switch *, int, struct ethtool_mm_state *); - int (*set_mm)(struct dsa_switch *, int, struct ethtool_mm_cfg *, struct netlink_ext_ack *); - void (*get_mm_stats)(struct dsa_switch *, int, struct ethtool_mm_stats *); - int (*port_get_default_prio)(struct dsa_switch *, int); - int (*port_set_default_prio)(struct dsa_switch *, int, u8); - int (*port_get_dscp_prio)(struct dsa_switch *, int, u8); - int (*port_add_dscp_prio)(struct dsa_switch *, int, u8, u8); - int (*port_del_dscp_prio)(struct dsa_switch *, int, u8, u8); - int (*suspend)(struct dsa_switch *); - int (*resume)(struct dsa_switch *); - int (*port_enable)(struct dsa_switch *, int, struct phy_device *); - void (*port_disable)(struct dsa_switch *, int); - struct dsa_port * (*preferred_default_local_cpu_port)(struct dsa_switch *); - int (*set_mac_eee)(struct dsa_switch *, int, struct ethtool_eee *); - int (*get_mac_eee)(struct dsa_switch *, int, struct ethtool_eee *); - int (*get_eeprom_len)(struct dsa_switch *); - int (*get_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); - int (*set_eeprom)(struct dsa_switch *, struct ethtool_eeprom *, u8 *); - int (*get_regs_len)(struct dsa_switch *, int); - void (*get_regs)(struct dsa_switch *, int, struct ethtool_regs *, void *); - int (*port_prechangeupper)(struct dsa_switch *, int, struct netdev_notifier_changeupper_info *); - int (*set_ageing_time)(struct dsa_switch *, unsigned int); - int (*port_bridge_join)(struct dsa_switch *, int, struct dsa_bridge, bool *, struct netlink_ext_ack *); - void (*port_bridge_leave)(struct dsa_switch *, int, struct dsa_bridge); - void (*port_stp_state_set)(struct dsa_switch *, int, u8); - int (*port_mst_state_set)(struct dsa_switch *, int, const struct switchdev_mst_state *); - void (*port_fast_age)(struct dsa_switch *, int); - int (*port_vlan_fast_age)(struct dsa_switch *, int, u16); - int (*port_pre_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); - int (*port_bridge_flags)(struct dsa_switch *, int, struct switchdev_brport_flags, struct netlink_ext_ack *); - void (*port_set_host_flood)(struct dsa_switch *, int, bool, bool); - int (*port_vlan_filtering)(struct dsa_switch *, int, bool, struct netlink_ext_ack *); - int (*port_vlan_add)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *, struct netlink_ext_ack *); - int (*port_vlan_del)(struct dsa_switch *, int, const struct switchdev_obj_port_vlan *); - int (*vlan_msti_set)(struct dsa_switch *, struct dsa_bridge, const struct switchdev_vlan_msti *); - int (*port_fdb_add)(struct dsa_switch *, int, const unsigned char *, u16, struct dsa_db); - int (*port_fdb_del)(struct dsa_switch *, int, const unsigned char *, u16, struct dsa_db); - int (*port_fdb_dump)(struct dsa_switch *, int, dsa_fdb_dump_cb_t *, void *); - int (*lag_fdb_add)(struct dsa_switch *, struct dsa_lag, const unsigned char *, u16, struct dsa_db); - int (*lag_fdb_del)(struct dsa_switch *, struct dsa_lag, const unsigned char *, u16, struct dsa_db); - int (*port_mdb_add)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *, struct dsa_db); - int (*port_mdb_del)(struct dsa_switch *, int, const struct switchdev_obj_port_mdb *, struct dsa_db); - int (*get_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *, u32 *); - int (*set_rxnfc)(struct dsa_switch *, int, struct ethtool_rxnfc *); - int (*cls_flower_add)(struct dsa_switch *, int, struct flow_cls_offload *, bool); - int (*cls_flower_del)(struct dsa_switch *, int, struct flow_cls_offload *, bool); - int (*cls_flower_stats)(struct dsa_switch *, int, struct flow_cls_offload *, bool); - int (*port_mirror_add)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *, bool, struct netlink_ext_ack *); - void (*port_mirror_del)(struct dsa_switch *, int, struct dsa_mall_mirror_tc_entry *); - int (*port_policer_add)(struct dsa_switch *, int, struct dsa_mall_policer_tc_entry *); - void (*port_policer_del)(struct dsa_switch *, int); - int (*port_setup_tc)(struct dsa_switch *, int, enum tc_setup_type, void *); - int (*crosschip_bridge_join)(struct dsa_switch *, int, int, int, struct dsa_bridge, struct netlink_ext_ack *); - void (*crosschip_bridge_leave)(struct dsa_switch *, int, int, int, struct dsa_bridge); - int (*crosschip_lag_change)(struct dsa_switch *, int, int); - int (*crosschip_lag_join)(struct dsa_switch *, int, int, struct dsa_lag, struct netdev_lag_upper_info *, struct netlink_ext_ack *); - int (*crosschip_lag_leave)(struct dsa_switch *, int, int, struct dsa_lag); - int (*port_hwtstamp_get)(struct dsa_switch *, int, struct ifreq *); - int (*port_hwtstamp_set)(struct dsa_switch *, int, struct ifreq *); - void (*port_txtstamp)(struct dsa_switch *, int, struct sk_buff *); - bool (*port_rxtstamp)(struct dsa_switch *, int, struct sk_buff *, unsigned int); - int (*devlink_param_get)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); - int (*devlink_param_set)(struct dsa_switch *, u32, struct devlink_param_gset_ctx *); - int (*devlink_info_get)(struct dsa_switch *, struct devlink_info_req *, struct netlink_ext_ack *); - int (*devlink_sb_pool_get)(struct dsa_switch *, unsigned int, u16, struct devlink_sb_pool_info *); - int (*devlink_sb_pool_set)(struct dsa_switch *, unsigned int, u16, u32, enum devlink_sb_threshold_type, struct netlink_ext_ack *); - int (*devlink_sb_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *); - int (*devlink_sb_port_pool_set)(struct dsa_switch *, int, unsigned int, u16, u32, struct netlink_ext_ack *); - int (*devlink_sb_tc_pool_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16 *, u32 *); - int (*devlink_sb_tc_pool_bind_set)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u16, u32, struct netlink_ext_ack *); - int (*devlink_sb_occ_snapshot)(struct dsa_switch *, unsigned int); - int (*devlink_sb_occ_max_clear)(struct dsa_switch *, unsigned int); - int (*devlink_sb_occ_port_pool_get)(struct dsa_switch *, int, unsigned int, u16, u32 *, u32 *); - int (*devlink_sb_occ_tc_port_bind_get)(struct dsa_switch *, int, unsigned int, u16, enum devlink_sb_pool_type, u32 *, u32 *); - int (*port_change_mtu)(struct dsa_switch *, int, int); - int (*port_max_mtu)(struct dsa_switch *, int); - int (*port_lag_change)(struct dsa_switch *, int); - int (*port_lag_join)(struct dsa_switch *, int, struct dsa_lag, struct netdev_lag_upper_info *, struct netlink_ext_ack *); - int (*port_lag_leave)(struct dsa_switch *, int, struct dsa_lag); - int (*port_hsr_join)(struct dsa_switch *, int, struct net_device *); - int (*port_hsr_leave)(struct dsa_switch *, int, struct net_device *); - int (*port_mrp_add)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); - int (*port_mrp_del)(struct dsa_switch *, int, const struct switchdev_obj_mrp *); - int (*port_mrp_add_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); - int (*port_mrp_del_ring_role)(struct dsa_switch *, int, const struct switchdev_obj_ring_role_mrp *); - int (*tag_8021q_vlan_add)(struct dsa_switch *, int, u16, u16); - int (*tag_8021q_vlan_del)(struct dsa_switch *, int, u16); - void (*master_state_change)(struct dsa_switch *, const struct net_device *, bool); +struct ata_eh_cmd_timeout_ent { + const u8 *commands; + const unsigned int *timeouts; }; -struct fixed_phy_status { - int link; - int speed; - int duplex; - int pause; - int asym_pause; +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 netdev_notifier_info { - struct net_device *dev; - struct netlink_ext_ack *extack; +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 netdev_notifier_changeupper_info { - struct netdev_notifier_info info; - struct net_device *upper_dev; - bool master; - bool linking; - void *upper_info; +enum ata_lpm_hints { + ATA_LPM_EMPTY = 1, + ATA_LPM_HIPM = 2, + ATA_LPM_WAKE_ONLY = 4, }; -struct dsa_bridge { - struct net_device *dev; - unsigned int num; - bool tx_fwd_offload; - refcount_t refcount; +struct speed_down_verdict_arg { + u64 since; + int xfer_ok; + int nr_errors[8]; + long: 32; }; -struct switchdev_mst_state { - u16 msti; - u8 state; +enum mtd_file_modes { + MTD_FILE_MODE_NORMAL = 0, + MTD_FILE_MODE_OTP_FACTORY = 1, + MTD_FILE_MODE_OTP_USER = 2, + MTD_FILE_MODE_RAW = 3, }; -struct switchdev_brport_flags { - unsigned long val; - unsigned long mask; +struct mtd_write_req { + __u64 start; + __u64 len; + __u64 ooblen; + __u64 usr_data; + __u64 usr_oob; + __u8 mode; + __u8 padding[7]; }; -enum switchdev_obj_id { - SWITCHDEV_OBJ_ID_UNDEFINED = 0, - SWITCHDEV_OBJ_ID_PORT_VLAN = 1, - SWITCHDEV_OBJ_ID_PORT_MDB = 2, - SWITCHDEV_OBJ_ID_HOST_MDB = 3, - SWITCHDEV_OBJ_ID_MRP = 4, - SWITCHDEV_OBJ_ID_RING_TEST_MRP = 5, - SWITCHDEV_OBJ_ID_RING_ROLE_MRP = 6, - SWITCHDEV_OBJ_ID_RING_STATE_MRP = 7, - SWITCHDEV_OBJ_ID_IN_TEST_MRP = 8, - SWITCHDEV_OBJ_ID_IN_ROLE_MRP = 9, - SWITCHDEV_OBJ_ID_IN_STATE_MRP = 10, +struct mtd_read_req_ecc_stats { + __u32 uncorrectable_errors; + __u32 corrected_bitflips; + __u32 max_bitflips; }; -struct switchdev_obj { - struct list_head list; - struct net_device *orig_dev; - enum switchdev_obj_id id; - u32 flags; - void *complete_priv; - void (*complete)(struct net_device *, int, void *); +struct mtd_read_req { + __u64 start; + __u64 len; + __u64 ooblen; + __u64 usr_data; + __u64 usr_oob; + __u8 mode; + __u8 padding[7]; + struct mtd_read_req_ecc_stats ecc_stats; + long: 32; }; -struct switchdev_obj_port_vlan { - struct switchdev_obj obj; - u16 flags; - u16 vid; - bool changed; -}; +typedef unsigned long u_long; -struct switchdev_vlan_msti { - u16 vid; - u16 msti; +struct mtd_info_user { + __u8 type; + __u32 flags; + __u32 size; + __u32 erasesize; + __u32 writesize; + __u32 oobsize; + __u64 padding; }; -enum dsa_db_type { - DSA_DB_PORT = 0, - DSA_DB_LAG = 1, - DSA_DB_BRIDGE = 2, +struct mtd_file_info { + struct mtd_info *mtd; + enum mtd_file_modes mode; }; -struct dsa_db { - enum dsa_db_type type; - union { - const struct dsa_port *dp; - struct dsa_lag lag; - struct dsa_bridge bridge; - }; +struct region_info_user { + __u32 offset; + __u32 erasesize; + __u32 numblocks; + __u32 regionindex; }; -struct switchdev_obj_port_mdb { - struct switchdev_obj obj; - unsigned char addr[6]; - u16 vid; +struct erase_info_user { + __u32 start; + __u32 length; }; -struct flow_cls_common_offload { - u32 chain_index; - __be16 protocol; - u32 prio; - struct netlink_ext_ack *extack; +struct mtd_oob_buf { + __u32 start; + __u32 length; + unsigned char __attribute__((btf_type_tag("user"))) *ptr; }; -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, +struct erase_info_user64 { + __u64 start; + __u64 length; }; -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, +struct mtd_oob_buf64 { + __u64 start; + __u32 pad; + __u32 length; + __u64 usr_ptr; }; -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 blkpg_ioctl_arg { + int op; + int flags; + int datalen; + void __attribute__((btf_type_tag("user"))) *data; }; -struct flow_rule; - -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; - long: 32; +struct nand_oobinfo { + __u32 useecc; + __u32 eccbytes; + __u32 oobfree[16]; + __u32 eccpos[32]; }; -struct flow_dissector; - -struct flow_match { - struct flow_dissector *dissector; - void *mask; - void *key; +struct nand_oobfree { + __u32 offset; + __u32 length; }; -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, +struct nand_ecclayout_user { + __u32 eccbytes; + __u32 eccpos[64]; + __u32 oobavail; + struct nand_oobfree oobfree[8]; }; -typedef void (*action_destr)(void *); - -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, +struct blkpg_partition { + long long start; + long long length; + int pno; + char devname[64]; + char volname[64]; + long: 32; }; -struct psample_group; - -struct nf_flowtable; - -struct action_gate_entry; - -struct ip_tunnel_info; - -struct flow_action_cookie; +struct mtd_chip_driver; -struct flow_action_entry { - enum flow_action_id id; - u32 hw_index; - unsigned long cookie; - long: 32; - u64 miss_cookie; - enum flow_action_hw_stats hw_stats; - action_destr destructor; - void *destructor_priv; - long: 32; - 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; - long: 32; - 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; - long: 32; - } 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; - long: 32; - 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; - long: 32; +struct map_info { + const char *name; + unsigned long size; + resource_size_t phys; + void *virt; + void *cached; + int swap; + int bankwidth; + void (*inval_cache)(struct map_info *, unsigned long, ssize_t); + void (*set_vpp)(struct map_info *, int); + unsigned long pfow_base; + unsigned long map_priv_1; + unsigned long map_priv_2; + struct device_node *device_node; + void *fldrv_priv; + struct mtd_chip_driver *fldrv; }; -struct flow_action { - unsigned int num_entries; - long: 32; - struct flow_action_entry entries[0]; +struct mtd_chip_driver { + struct mtd_info * (*probe)(struct map_info *); + void (*destroy)(struct mtd_info *); + struct module *module; + char *name; + struct list_head list; }; -struct flow_rule { - struct flow_match match; - long: 32; - struct flow_action action; -}; +struct spi_device_id; -struct flow_dissector { - unsigned int used_keys; - unsigned short offset[32]; +struct spi_driver { + const struct spi_device_id *id_table; + int (*probe)(struct spi_device *); + void (*remove)(struct spi_device *); + void (*shutdown)(struct spi_device *); + struct device_driver driver; }; -struct flow_action_cookie { - u32 cookie_len; - u8 cookie[0]; +struct spi_mem_driver { + struct spi_driver spidrv; + int (*probe)(struct spi_mem *); + int (*remove)(struct spi_mem *); + void (*shutdown)(struct spi_mem *); }; -struct dsa_mall_mirror_tc_entry { - u8 to_local_port; - bool ingress; +struct spi_device_id { + char name[32]; + kernel_ulong_t driver_data; }; -struct dsa_mall_policer_tc_entry { - u32 burst; - long: 32; - u64 rate_bytes_per_sec; +enum spi_nor_read_command_index { + SNOR_CMD_READ = 0, + SNOR_CMD_READ_FAST = 1, + SNOR_CMD_READ_1_1_1_DTR = 2, + SNOR_CMD_READ_1_1_2 = 3, + SNOR_CMD_READ_1_2_2 = 4, + SNOR_CMD_READ_2_2_2 = 5, + SNOR_CMD_READ_1_2_2_DTR = 6, + SNOR_CMD_READ_1_1_4 = 7, + SNOR_CMD_READ_1_4_4 = 8, + SNOR_CMD_READ_4_4_4 = 9, + SNOR_CMD_READ_1_4_4_DTR = 10, + SNOR_CMD_READ_1_1_8 = 11, + SNOR_CMD_READ_1_8_8 = 12, + SNOR_CMD_READ_8_8_8 = 13, + SNOR_CMD_READ_1_8_8_DTR = 14, + SNOR_CMD_READ_8_8_8_DTR = 15, + SNOR_CMD_READ_MAX = 16, }; -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 spi_nor_pp_command_index { + SNOR_CMD_PP = 0, + SNOR_CMD_PP_1_1_4 = 1, + SNOR_CMD_PP_1_4_4 = 2, + SNOR_CMD_PP_4_4_4 = 3, + SNOR_CMD_PP_1_1_8 = 4, + SNOR_CMD_PP_1_8_8 = 5, + SNOR_CMD_PP_8_8_8 = 6, + SNOR_CMD_PP_8_8_8_DTR = 7, + SNOR_CMD_PP_MAX = 8, }; -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 spi_nor_erase_command { + struct list_head list; + u32 count; + u32 size; + u8 opcode; }; -struct netdev_lag_upper_info { - enum netdev_lag_tx_type tx_type; - enum netdev_lag_hash hash_type; +struct flash_platform_data { + char *name; + struct mtd_partition *parts; + unsigned int nr_parts; + char *type; }; -union devlink_param_value { - u8 vu8; - u16 vu16; - u32 vu32; - char vstr[32]; - bool vbool; +struct phy_setting { + u32 speed; + u8 duplex; + u8 bit; }; -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 mdio_mux_child_bus; -struct devlink_param_gset_ctx { - union devlink_param_value val; - enum devlink_param_cmode cmode; +struct mdio_mux_parent_bus { + struct mii_bus *mii_bus; + int current_child; + int parent_id; + void *switch_data; + int (*switch_fn)(int, int, void *); + struct mdio_mux_child_bus *children; }; -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 mdio_mux_child_bus { + struct mii_bus *mii_bus; + struct mdio_mux_parent_bus *parent; + struct mdio_mux_child_bus *next; + int bus_number; }; -struct switchdev_obj_mrp { - struct switchdev_obj obj; - struct net_device *p_port; - struct net_device *s_port; - u32 ring_id; - u16 prio; -}; +struct bcm4908_enet_dma_ring_bd; -struct switchdev_obj_ring_role_mrp { - struct switchdev_obj obj; - u8 ring_role; - u32 ring_id; - u8 sw_backup; -}; +struct bcm4908_enet_dma_ring_slot; -struct bgmac_stat { - u8 size; - u32 offset; - const char *name; +struct bcm4908_enet_dma_ring { + int is_tx; + int read_idx; + int write_idx; + int length; + u16 cfg_block; + u16 st_ram_block; + long: 32; + struct napi_struct napi; + union { + void *cpu_addr; + struct bcm4908_enet_dma_ring_bd *buf_desc; + }; + dma_addr_t dma_addr; + struct bcm4908_enet_dma_ring_slot *slots; + long: 32; }; -enum bgmac_dma_ring_type { - BGMAC_DMA_RING_TX = 0, - BGMAC_DMA_RING_RX = 1, +struct bcm4908_enet_dma_ring_bd { + __le32 ctl; + __le32 addr; }; -struct bgmac_slot_info { +struct bcm4908_enet_dma_ring_slot { union { - struct sk_buff *skb; void *buf; + struct sk_buff *skb; }; + unsigned int len; dma_addr_t dma_addr; }; -struct bgmac_dma_desc; - -struct bgmac_dma_ring { - u32 start; - u32 end; - struct bgmac_dma_desc *cpu_base; - dma_addr_t dma_base; - u32 index_base; - u16 mmio_base; - bool unaligned; - struct bgmac_slot_info slots[512]; +struct bcm4908_enet { + struct device *dev; + struct net_device *netdev; + void *base; + int irq_tx; + struct bcm4908_enet_dma_ring tx_ring; + struct bcm4908_enet_dma_ring rx_ring; }; -struct bgmac { - union { - struct { - void *base; - void *idm_base; - void *nicpm_base; - } plat; - struct { - struct bcma_device *core; - struct bcma_device *cmn; - } bcma; - }; - struct device *dev; - struct device *dma_dev; - u32 feature_flags; - struct net_device *net_dev; - long: 32; - struct napi_struct napi; - struct mii_bus *mii_bus; - struct bgmac_dma_ring tx_ring[4]; - struct bgmac_dma_ring rx_ring[1]; - bool stats_grabbed; - u32 mib_tx_regs[43]; - u32 mib_rx_regs[31]; - int irq; - u32 int_mask; - bool in_init; - int mac_speed; - int mac_duplex; - u8 phyaddr; - bool has_robosw; - bool loopback; - u32 (*read)(struct bgmac *, u16); - void (*write)(struct bgmac *, u16, u32); - u32 (*idm_read)(struct bgmac *, u16); - void (*idm_write)(struct bgmac *, u16, u32); - bool (*clk_enabled)(struct bgmac *); - void (*clk_enable)(struct bgmac *, u32); - void (*cco_ctl_maskset)(struct bgmac *, u32, u32, u32); - u32 (*get_bus_clock)(struct bgmac *); - void (*cmn_maskset32)(struct bgmac *, u16, u32, u32); - int (*phy_connect)(struct bgmac *); +enum e1000_mac_type___2 { + e1000_82571 = 0, + e1000_82572 = 1, + e1000_82573 = 2, + e1000_82574 = 3, + e1000_82583 = 4, + e1000_80003es2lan = 5, + e1000_ich8lan = 6, + e1000_ich9lan = 7, + e1000_ich10lan = 8, + e1000_pchlan = 9, + e1000_pch2lan = 10, + e1000_pch_lpt = 11, + e1000_pch_spt = 12, + e1000_pch_cnp = 13, + e1000_pch_tgp = 14, + e1000_pch_adp = 15, + e1000_pch_mtp = 16, + e1000_pch_lnp = 17, + e1000_pch_ptp = 18, + e1000_pch_nvp = 19, }; -struct bgmac_dma_desc { - __le32 ctl0; - __le32 ctl1; - __le32 addr_low; - __le32 addr_high; +enum e1000_phy_type___2 { + e1000_phy_unknown___2 = 0, + e1000_phy_none___2 = 1, + e1000_phy_m88___2 = 2, + e1000_phy_igp___2 = 3, + e1000_phy_igp_2___2 = 4, + e1000_phy_gg82563___2 = 5, + e1000_phy_igp_3___2 = 6, + e1000_phy_ife___2 = 7, + e1000_phy_bm = 8, + e1000_phy_82578 = 9, + e1000_phy_82577 = 10, + e1000_phy_82579 = 11, + e1000_phy_i217 = 12, }; -struct bgmac_rx_header { - __le16 len; - __le16 flags; - __le16 pad[12]; +enum e1000_serdes_link_state { + e1000_serdes_link_down = 0, + e1000_serdes_link_autoneg_progress = 1, + e1000_serdes_link_autoneg_complete = 2, + e1000_serdes_link_forced_up = 3, }; -struct imx_dwmac_ops { - u32 addr_width; - bool mac_rgmii_txclk_auto_adj; - int (*fix_soc_reset)(void *, void *); - int (*set_intf_mode)(struct plat_stmmacenet_data *); +enum e1000_nvm_type___2 { + e1000_nvm_unknown___2 = 0, + e1000_nvm_none___2 = 1, + e1000_nvm_eeprom_spi___2 = 2, + e1000_nvm_flash_hw___2 = 3, + e1000_nvm_flash_sw___2 = 4, }; -struct imx_priv_data { - struct device *dev; - struct clk *clk_tx; - struct clk *clk_mem; - struct regmap *intf_regmap; - u32 intf_reg_off; - bool rmii_refclk_ext; - const struct imx_dwmac_ops *ops; - struct plat_stmmacenet_data *plat_dat; +enum e1000_ulp_state { + e1000_ulp_state_unknown = 0, + e1000_ulp_state_off = 1, + e1000_ulp_state_on = 2, }; -struct mxs_phy_data { - unsigned int flags; +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 mxs_phy { - struct usb_phy phy; - struct clk *clk; - const struct mxs_phy_data *data; - struct regmap *regmap_anatop; - int port_id; - u32 tx_reg_set; - u32 tx_reg_mask; +struct e1000_dev_spec_82571 { + bool laa_is_present; + u32 smb_counter; }; -struct ehci_driver_overrides { - size_t extra_priv_size; - int (*reset)(struct usb_hcd *); - int (*port_power)(struct usb_hcd *, int, bool); +struct e1000_dev_spec_80003es2lan { + bool mdic_wa_enable; }; -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, +struct e1000_shadow_ram { + u16 value; + bool modified; }; -enum ehci_rh_state { - EHCI_RH_HALTED = 0, - EHCI_RH_SUSPENDED = 1, - EHCI_RH_RUNNING = 2, - EHCI_RH_STOPPING = 3, +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 ehci_caps; +struct e1000_hw___2; -struct ehci_regs; +struct e1000_mac_operations___2 { + s32 (*id_led_init)(struct e1000_hw___2 *); + s32 (*blink_led)(struct e1000_hw___2 *); + bool (*check_mng_mode)(struct e1000_hw___2 *); + s32 (*check_for_link)(struct e1000_hw___2 *); + s32 (*cleanup_led)(struct e1000_hw___2 *); + void (*clear_hw_cntrs)(struct e1000_hw___2 *); + void (*clear_vfta)(struct e1000_hw___2 *); + s32 (*get_bus_info)(struct e1000_hw___2 *); + void (*set_lan_id)(struct e1000_hw___2 *); + s32 (*get_link_up_info)(struct e1000_hw___2 *, u16 *, u16 *); + s32 (*led_on)(struct e1000_hw___2 *); + s32 (*led_off)(struct e1000_hw___2 *); + void (*update_mc_addr_list)(struct e1000_hw___2 *, u8 *, u32); + s32 (*reset_hw)(struct e1000_hw___2 *); + s32 (*init_hw)(struct e1000_hw___2 *); + s32 (*setup_link)(struct e1000_hw___2 *); + s32 (*setup_physical_interface)(struct e1000_hw___2 *); + s32 (*setup_led)(struct e1000_hw___2 *); + void (*write_vfta)(struct e1000_hw___2 *, u32, u32); + void (*config_collision_dist)(struct e1000_hw___2 *); + int (*rar_set)(struct e1000_hw___2 *, u8 *, u32); + s32 (*read_mac_addr)(struct e1000_hw___2 *); + u32 (*rar_get_count)(struct e1000_hw___2 *); +}; -struct ehci_dbg_port; +struct e1000_mac_info___2 { + struct e1000_mac_operations___2 ops; + u8 addr[6]; + u8 perm_addr[6]; + enum e1000_mac_type___2 type; + u32 collision_delta; + u32 ledctl_default; + u32 ledctl_mode1; + u32 ledctl_mode2; + u32 mc_filter_type; + u32 tx_packet_delta; + u32 txcw; + u16 current_ifs_val; + u16 ifs_max_val; + u16 ifs_min_val; + u16 ifs_ratio; + u16 ifs_step_size; + u16 mta_reg_count; + u32 mta_shadow[128]; + u16 rar_entry_count; + u8 forced_speed_duplex; + bool adaptive_ifs; + bool has_fwsm; + bool arc_subsystem_valid; + bool autoneg; + bool autoneg_failed; + bool get_link_status; + bool in_ifs_mode; + bool serdes_has_link; + bool tx_pkt_filtering; + enum e1000_serdes_link_state serdes_link_state; +}; -struct ehci_qh; +struct e1000_fc_info___2 { + u32 high_water; + u32 low_water; + u16 pause_time; + u16 refresh_time; + bool send_xon; + bool strict_ieee; + enum e1000_fc_mode current_mode; + enum e1000_fc_mode requested_mode; +}; -union ehci_shadow; +struct e1000_phy_operations___2 { + s32 (*acquire)(struct e1000_hw___2 *); + s32 (*cfg_on_link_up)(struct e1000_hw___2 *); + s32 (*check_polarity)(struct e1000_hw___2 *); + s32 (*check_reset_block)(struct e1000_hw___2 *); + s32 (*commit)(struct e1000_hw___2 *); + s32 (*force_speed_duplex)(struct e1000_hw___2 *); + s32 (*get_cfg_done)(struct e1000_hw___2 *); + s32 (*get_cable_length)(struct e1000_hw___2 *); + s32 (*get_info)(struct e1000_hw___2 *); + s32 (*set_page)(struct e1000_hw___2 *, u16); + s32 (*read_reg)(struct e1000_hw___2 *, u32, u16 *); + s32 (*read_reg_locked)(struct e1000_hw___2 *, u32, u16 *); + s32 (*read_reg_page)(struct e1000_hw___2 *, u32, u16 *); + void (*release)(struct e1000_hw___2 *); + s32 (*reset)(struct e1000_hw___2 *); + s32 (*set_d0_lplu_state)(struct e1000_hw___2 *, bool); + s32 (*set_d3_lplu_state)(struct e1000_hw___2 *, bool); + s32 (*write_reg)(struct e1000_hw___2 *, u32, u16); + s32 (*write_reg_locked)(struct e1000_hw___2 *, u32, u16); + s32 (*write_reg_page)(struct e1000_hw___2 *, u32, u16); + void (*power_up)(struct e1000_hw___2 *); + void (*power_down)(struct e1000_hw___2 *); +}; -struct ehci_itd; +struct e1000_phy_info___2 { + struct e1000_phy_operations___2 ops; + enum e1000_phy_type___2 type; + enum e1000_1000t_rx_status local_rx; + enum e1000_1000t_rx_status remote_rx; + enum e1000_ms_type ms_type; + enum e1000_ms_type original_ms_type; + enum e1000_rev_polarity cable_polarity; + enum e1000_smart_speed smart_speed; + u32 addr; + u32 id; + u32 reset_delay_us; + u32 revision; + enum e1000_media_type media_type; + u16 autoneg_advertised; + u16 autoneg_mask; + u16 cable_length; + u16 max_cable_length; + u16 min_cable_length; + u8 mdix; + bool disable_polarity_correction; + bool is_mdix; + bool polarity_correction; + bool speed_downgraded; + bool autoneg_wait_to_complete; +}; -struct ehci_sitd; +struct e1000_nvm_operations___2 { + s32 (*acquire)(struct e1000_hw___2 *); + s32 (*read)(struct e1000_hw___2 *, u16, u16, u16 *); + void (*release)(struct e1000_hw___2 *); + void (*reload)(struct e1000_hw___2 *); + s32 (*update)(struct e1000_hw___2 *); + s32 (*valid_led_default)(struct e1000_hw___2 *, u16 *); + s32 (*validate)(struct e1000_hw___2 *); + s32 (*write)(struct e1000_hw___2 *, u16, u16, u16 *); +}; -struct 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; - long: 32; - 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 e1000_nvm_info___2 { + struct e1000_nvm_operations___2 ops; + enum e1000_nvm_type___2 type; + enum e1000_nvm_override override; + u32 flash_bank_size; + u32 flash_base_addr; + u16 word_size; + u16 delay_usec; + u16 address_bits; + u16 opcode_bits; + u16 page_size; }; -struct ehci_caps { - u32 hc_capbase; - u32 hcs_params; - u32 hcc_params; - u8 portroute[8]; +struct e1000_bus_info___2 { + enum e1000_bus_width width; + u16 func; }; -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; - }; - }; +struct e1000_adapter; + +struct e1000_hw___2 { + struct e1000_adapter *adapter; + void *hw_addr; + void *flash_address; + struct e1000_mac_info___2 mac; + struct e1000_fc_info___2 fc; + struct e1000_phy_info___2 phy; + struct e1000_nvm_info___2 nvm; + struct e1000_bus_info___2 bus; + struct e1000_host_mng_dhcp_cookie mng_cookie; union { - struct { - u32 reserved4; - u32 hostpc[15]; - }; - u32 brcm_insnreg[4]; - }; - u32 reserved5[2]; - u32 usbmode_ex; + struct e1000_dev_spec_82571 e82571; + struct e1000_dev_spec_80003es2lan e80003es2lan; + struct e1000_dev_spec_ich8lan ich8lan; + } dev_spec; }; -struct ehci_dbg_port { - u32 control; - u32 pids; - u32 data03; - u32 data47; - u32 address; +struct e1000_hw_stats___2 { + u64 crcerrs; + u64 algnerrc; + u64 symerrs; + u64 rxerrc; + u64 mpc; + u64 scc; + u64 ecol; + u64 mcc; + u64 latecol; + u64 colc; + u64 dc; + u64 tncrs; + u64 sec; + u64 cexterr; + u64 rlec; + u64 xonrxc; + u64 xontxc; + u64 xoffrxc; + u64 xofftxc; + u64 fcruc; + u64 prc64; + u64 prc127; + u64 prc255; + u64 prc511; + u64 prc1023; + u64 prc1522; + u64 gprc; + u64 bprc; + u64 mprc; + u64 gptc; + u64 gorc; + u64 gotc; + u64 rnbc; + u64 ruc; + u64 rfc; + u64 roc; + u64 rjc; + u64 mgprc; + u64 mgpdc; + u64 mgptc; + u64 tor; + u64 tot; + u64 tpr; + u64 tpt; + u64 ptc64; + u64 ptc127; + u64 ptc255; + u64 ptc511; + u64 ptc1023; + u64 ptc1522; + u64 mptc; + u64 bptc; + u64 tsctc; + u64 tsctfc; + u64 iac; + u64 icrxptc; + u64 icrxatc; + u64 ictxptc; + u64 ictxatc; + u64 ictxqec; + u64 ictxqmtc; + u64 icrxdmtc; + u64 icrxoc; }; -struct 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 e1000_phy_stats { + u32 idle_errors; + u32 receive_errors; }; -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 e1000_phy_regs { + u16 bmcr; + u16 bmsr; + u16 advertise; + u16 lpa; + u16 expansion; + u16 ctrl1000; + u16 stat1000; + u16 estatus; }; -struct ehci_qh_hw; +struct e1000_buffer; -struct ehci_qtd; +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 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 pm_qos_request { + struct plist_node node; + struct pm_qos_constraints *qos; }; -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]; +struct e1000_info___2; + +struct e1000_adapter { + struct timer_list watchdog_timer; + struct timer_list phy_info_timer; + struct timer_list blink_timer; + struct work_struct reset_task; + struct work_struct watchdog_task; + const struct e1000_info___2 *ei; + unsigned long active_vlans[128]; + 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; + 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; long: 32; + u64 tpt_old; + u64 colc_old; + u32 gotc; long: 32; + 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: 32; long: 32; long: 32; long: 32; -}; - -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: 32; -}; - -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; long: 32; long: 32; long: 32; long: 32; long: 32; + 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; + long: 32; + u64 hw_csum_err; + u64 hw_csum_good; + u64 rx_hdr_split; + u32 gorc; + long: 32; + u64 gorc_old; + u32 alloc_rx_buff_failed; + u32 rx_dma_failed; + u32 rx_hwtstamp_cleared; + unsigned int rx_ps_pages; + u16 rx_ps_bsize0; + u32 max_frame_size; + u32 min_frame_size; + struct net_device *netdev; + struct pci_dev *pdev; + struct e1000_hw___2 hw; + spinlock_t stats64_lock; + struct e1000_hw_stats___2 stats; + struct e1000_phy_info___2 phy_info; + struct e1000_phy_stats phy_stats; + struct e1000_phy_regs phy_regs; + struct e1000_ring test_tx_ring; + struct e1000_ring test_rx_ring; + u32 test_icr; + u32 msg_enable; + unsigned int num_vectors; + struct msix_entry *msix_entries; + int int_mode; + u32 eiac_mask; + u32 eeprom_wol; + u32 wol; + u32 pba; + u32 max_hw_frame_size; + bool fc_autoneg; + unsigned int flags; + unsigned int flags2; + struct work_struct downshift_task; + struct work_struct update_phy_task; + struct work_struct print_hang_task; + int phy_hang_count; + u16 tx_ring_count; + u16 rx_ring_count; + struct hwtstamp_config hwtstamp_config; + struct delayed_work systim_overflow_work; + struct sk_buff *tx_hwtstamp_skb; + unsigned long tx_hwtstamp_start; + struct work_struct tx_hwtstamp_work; + spinlock_t systim_lock; + struct cyclecounter cc; + struct timecounter tc; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; + struct pm_qos_request pm_qos_req; + long ptp_delta; + u16 eee_advert; + long: 32; long: 32; long: 32; -}; - -struct ehci_fstn { - __le32 hw_next; - __le32 hw_prev; - dma_addr_t fstn_dma; - union ehci_shadow fstn_next; long: 32; long: 32; long: 32; long: 32; -}; - -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; long: 32; long: 32; long: 32; @@ -60847,214 +67773,190 @@ struct ehci_qtd { long: 32; }; -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 e1000_info___2 { + enum e1000_mac_type___2 mac; + unsigned int flags; + unsigned int flags2; + u32 pba; + u32 max_hw_frame_size; + s32 (*get_variants)(struct e1000_adapter *); + const struct e1000_mac_operations___2 *mac_ops; + const struct e1000_phy_operations___2 *phy_ops; + const struct e1000_nvm_operations___2 *nvm_ops; }; -struct 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 e1000_ps_page; -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; +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; + }; + }; }; -typedef void (*extra_data_destructor)(void *); +struct e1000_ps_page { + struct page *page; + long: 32; + u64 dma; +}; -typedef void (*pm_hook)(struct us_data *, int); +struct e1000_host_mng_command_header { + u8 command_id; + u8 checksum; + u16 reserved1; + u16 reserved2; + u16 command_length; +}; -struct us_unusual_dev; +struct ave_private; -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 ave_soc_data { + bool is_desc_64bit; + const char *clock_names[4]; + const char *reset_names[2]; + int (*get_pinmode)(struct ave_private *, phy_interface_t, u32); }; -struct us_unusual_dev { - const char *vendorName; - const char *productName; - __u8 useProtocol; - __u8 useTransport; - int (*initFunction)(struct us_data *); +struct ave_stats { + struct u64_stats_sync syncp; + long: 32; + u64 packets; + u64 bytes; + u64 errors; + u64 dropped; + u64 collisions; + u64 fifo_errors; }; -struct ac100_clkout { - struct clk_hw hw; - struct regmap *regmap; - u8 offset; -}; +struct ave_desc; -struct ac100_rtc_dev { - struct rtc_device *rtc; - struct device *dev; - struct regmap *regmap; - int irq; - unsigned long alarm; - struct clk_hw *rtc_32k_clk; - struct ac100_clkout clks[3]; - struct clk_hw_onecell_data *clk_data; +struct ave_desc_info { + u32 ndesc; + u32 daddr; + u32 proc_idx; + u32 done_idx; + struct ave_desc *desc; }; -struct ac100_dev { - struct device *dev; +struct ave_private { + void *base; + int irq; + int phy_id; + unsigned int desc_size; + u32 msg_enable; + int nclks; + struct clk *clk[4]; + int nrsts; + struct reset_control *rst[2]; + phy_interface_t phy_mode; + struct phy_device *phydev; + struct mii_bus *mdio; struct regmap *regmap; + unsigned int pinmode_mask; + unsigned int pinmode_val; + u32 wolopts; + struct ave_stats stats_rx; + struct ave_stats stats_tx; + struct net_device *ndev; + long: 32; + struct napi_struct napi_rx; + struct napi_struct napi_tx; + struct ave_desc_info rx; + struct ave_desc_info tx; + int pause_auto; + int pause_rx; + int pause_tx; + const struct ave_soc_data *data; }; -enum bcm_iproc_i2c_type { - IPROC_I2C = 0, - IPROC_I2C_NIC = 1, +struct ave_desc { + struct sk_buff *skbs; + dma_addr_t skbs_dma; + size_t skbs_dmalen; }; -enum i2c_slave_read_status { - I2C_SLAVE_RX_FIFO_EMPTY = 0, - I2C_SLAVE_RX_START = 1, - I2C_SLAVE_RX_DATA = 2, - I2C_SLAVE_RX_END = 3, +enum desc_id { + AVE_DESCID_RX = 0, + AVE_DESCID_TX = 1, }; -struct bcm_iproc_i2c_dev { - struct device *device; - enum bcm_iproc_i2c_type type; - int irq; - void *base; - void *idm_base; - u32 ape_addr_mask; - spinlock_t idm_lock; - long: 32; - struct i2c_adapter adapter; - unsigned int bus_speed; - struct completion done; - int xfer_is_done; - struct i2c_msg *msg; - struct i2c_client *slave; - unsigned int tx_bytes; - unsigned int rx_bytes; - unsigned int thld_bytes; - bool slave_rx_only; - bool rx_start_rcvd; - bool slave_read_complete; - u32 tx_underrun; - u32 slave_int_mask; - struct tasklet_struct slave_rx_tasklet; +enum desc_state___2 { + AVE_DESC_RX_PERMIT = 0, + AVE_DESC_RX_SUSPEND = 1, + AVE_DESC_START = 2, + AVE_DESC_STOP = 3, }; -struct posix_clock; - -struct __kernel_timex; +struct xdp_umem; -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 xsk_queue; -struct posix_clock { - struct posix_clock_operations ops; - struct cdev cdev; - struct device *dev; - struct rw_semaphore rwsem; - bool zombie; -}; +struct xdp_buff_xsk; -struct __kernel_timex_timeval { - __kernel_time64_t tv_sec; - long long tv_usec; -}; +struct xdp_desc; -struct __kernel_timex { - unsigned int modes; +struct xsk_buff_pool { + struct device *dev; + struct net_device *netdev; + struct list_head xsk_tx_list; + spinlock_t xsk_tx_list_lock; + refcount_t users; + struct xdp_umem *umem; + struct work_struct work; + struct list_head free_list; + struct list_head xskb_list; + u32 heads_cnt; + u16 queue_id; long: 32; - long long offset; - long long freq; - long long maxerror; - long long esterror; - int status; long: 32; - 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: 32; - long long stabil; - long long jitcnt; - long long calcnt; - long long errcnt; - long long stbcnt; - int tai; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct xsk_queue *fq; + struct xsk_queue *cq; + dma_addr_t *dma_pages; + struct xdp_buff_xsk *heads; + struct xdp_desc *tx_descs; + long: 32; + 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: 32; long: 32; long: 32; long: 32; @@ -61068,1278 +67970,1775 @@ struct __kernel_timex { long: 32; }; -enum ptp_clock_events { - PTP_CLOCK_ALARM = 0, - PTP_CLOCK_EXTTS = 1, - PTP_CLOCK_PPS = 2, - PTP_CLOCK_PPSUSR = 3, -}; - -struct ptp_extts_event { - struct ptp_clock_time t; - unsigned int index; - unsigned int flags; - unsigned int rsv[2]; +struct xdp_umem { + void *addrs; + long: 32; + 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; + long: 32; }; -struct timestamp_event_queue { - struct ptp_extts_event buf[128]; - int head; - int tail; - spinlock_t lock; +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; long: 32; + u64 orig_addr; + struct list_head free_list_node; + struct list_head xskb_list_node; }; -struct kthread_delayed_work { - struct kthread_work work; - struct timer_list timer; +struct xdp_desc { + __u64 addr; + __u32 len; + __u32 options; }; -struct pps_device; - -struct ptp_clock { - struct posix_clock clock; - long: 32; - struct device dev; - struct ptp_clock_info *info; - dev_t devid; - int index; - struct pps_device *pps_source; - long dialed_frequency; - long: 32; - 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; - long: 32; +struct cpsw_sl_dev_id { + const char *device_id; + const u16 *regs; + const u32 control_features; + const u32 regs_offset; + const u32 idle_mask; }; -struct pps_source_info { - char name[32]; - char path[32]; - int mode; - void (*echo)(struct pps_device *, int, void *); - struct module *owner; +struct cpsw_sl { struct device *dev; + void *sl_base; + const u16 *regs; + u32 control_features; + u32 idle_mask; }; -struct pps_ktime { - __s64 sec; - __s32 nsec; - __u32 flags; +struct asix_data { + u8 multi_filter[8]; + u8 mac_addr[6]; + u8 phymode; + u8 ledmode; + u8 res; }; -struct pps_kparams { - int api_version; - int mode; - struct pps_ktime assert_off_tu; - struct pps_ktime clear_off_tu; +struct asix_rx_fixup_info { + struct sk_buff *ax_skb; + u32 header; + u16 remaining; + bool split_head; }; -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; - long: 32; +struct asix_common_private { + void (*resume)(struct usbnet *); + void (*suspend)(struct usbnet *); + int (*reset)(struct usbnet *, int); + u16 presvd_phy_advertise; + u16 presvd_phy_bmcr; + struct asix_rx_fixup_info rx_fixup_info; + struct mii_bus *mdio; + struct phy_device *phydev; + struct phy_device *phydev_int; + struct phylink *phylink; + struct phylink_config phylink_config; + u16 phy_addr; + bool embd_phy; + u8 chipcode; }; -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; - long: 32; +struct usb_class_driver { + char *name; + char * (*devnode)(const struct device *, umode_t *); + const struct file_operations *fops; + int minor_base; }; -struct pps_event_time { - struct timespec64 ts_real; +struct phy_devm { + struct usb_phy *phy; + struct notifier_block *nb; }; -struct ptp_clock_event { - int type; - int index; - union { - u64 timestamp; - struct pps_event_time pps_times; - }; +struct dwc3_exynos_driverdata { + const char *clk_names[4]; + int num_clks; + int suspend_clk_idx; }; -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; - long: 32; +struct dwc3_exynos { + struct device *dev; + const char **clk_names; + struct clk *clks[4]; + int num_clks; + int suspend_clk_idx; + struct regulator *vdd33; + struct regulator *vdd10; }; -struct tsens_ops; - -struct tsens_features; +enum dwc2_transaction_type { + DWC2_TRANSACTION_NONE = 0, + DWC2_TRANSACTION_PERIODIC = 1, + DWC2_TRANSACTION_NON_PERIODIC = 2, + DWC2_TRANSACTION_ALL = 3, +}; -struct tsens_plat_data { - const u32 num_sensors; - const struct tsens_ops *ops; - unsigned int *hw_ids; - struct tsens_features *feat; - const struct reg_field *fields; +enum dwc2_control_phase { + DWC2_CONTROL_SETUP = 0, + DWC2_CONTROL_DATA = 1, + DWC2_CONTROL_STATUS = 2, }; -struct tsens_priv; +struct wrapper_priv_data { + struct dwc2_hsotg *hsotg; +}; -struct tsens_sensor; +struct dwc2_hcd_urb; -struct tsens_ops { - int (*init)(struct tsens_priv *); - int (*calibrate)(struct tsens_priv *); - int (*get_temp)(const struct tsens_sensor *, int *); - int (*enable)(struct tsens_priv *, int); - void (*disable)(struct tsens_priv *); - int (*suspend)(struct tsens_priv *); - int (*resume)(struct tsens_priv *); +struct dwc2_qtd { + enum dwc2_control_phase control_phase; + u8 in_process; + u8 data_toggle; + u8 complete_split; + u8 isoc_split_pos; + u16 isoc_frame_index; + u16 isoc_split_offset; + u16 isoc_td_last; + u16 isoc_td_first; + u32 ssplit_out_xfer_count; + u8 error_count; + u8 n_desc; + u16 isoc_frame_index_last; + u16 num_naks; + struct dwc2_hcd_urb *urb; + struct dwc2_qh *qh; + struct list_head qtd_list_entry; }; -struct tsens_context { - int threshold; - int control; +struct dwc2_hcd_pipe_info { + u8 dev_addr; + u8 ep_num; + u8 pipe_type; + u8 pipe_dir; + u16 maxp; + u16 maxp_mult; }; -struct tsens_sensor { - struct tsens_priv *priv; - struct thermal_zone_device *tzd; - int offset; - unsigned int hw_id; - int slope; +struct dwc2_hcd_iso_packet_desc { + u32 offset; + u32 length; + u32 actual_length; u32 status; - int p1_calib_offset; - int p2_calib_offset; -}; - -struct tsens_priv { - struct device *dev; - u32 num_sensors; - struct regmap *tm_map; - struct regmap *srot_map; - u32 tm_offset; - spinlock_t ul_lock; - struct regmap_field *rf[320]; - struct tsens_context ctx; - struct tsens_features *feat; - const struct reg_field *fields; - const struct tsens_ops *ops; - struct dentry *debug_root; - struct dentry *debug; - struct tsens_sensor sensor[0]; -}; - -struct tsens_features { - unsigned int ver_major; - unsigned int crit_int: 1; - unsigned int combo_int: 1; - unsigned int adc: 1; - unsigned int srot_split: 1; - unsigned int has_watchdog: 1; - unsigned int max_sensors; - int trip_min_temp; - int trip_max_temp; -}; - -struct meson_wdt_data { - unsigned int enable; - unsigned int terminal_count_mask; - unsigned int count_unit; }; -struct meson_wdt_dev { - struct watchdog_device wdt_dev; - void *wdt_base; - const struct meson_wdt_data *data; +struct dwc2_hcd_urb { + void *priv; + struct dwc2_qtd *qtd; + void *buf; + dma_addr_t dma; + void *setup_packet; + dma_addr_t setup_dma; + u32 length; + u32 actual_length; + u32 status; + u32 error_count; + u32 packet_count; + u32 flags; + u16 interval; + struct dwc2_hcd_pipe_info pipe_info; + struct dwc2_hcd_iso_packet_desc iso_descs[0]; }; -enum opp_table_access { - OPP_TABLE_ACCESS_UNKNOWN = 0, - OPP_TABLE_ACCESS_EXCLUSIVE = 1, - OPP_TABLE_ACCESS_SHARED = 2, +struct usb_ehci_pdata { + int caps_offset; + unsigned int has_tt: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_mmio: 1; + unsigned int no_io_watchdog: 1; + unsigned int reset_on_resume: 1; + unsigned int dma_mask_64: 1; + unsigned int spurious_oc: 1; + int (*power_on)(struct platform_device *); + void (*power_off)(struct platform_device *); + void (*power_suspend)(struct platform_device *); + int (*pre_setup)(struct usb_hcd *); }; -struct opp_device { - struct list_head node; - const struct device *dev; - struct dentry *dentry; +struct st_ehci_platform_priv { + struct clk *clks[3]; + struct clk *clk48; + struct reset_control *rst; + struct reset_control *pwr; + struct phy *phy; }; -struct dev_pm_opp_supply; - -struct dev_pm_opp_icc_bw; +struct swoc_info { + __u8 rev; + __u8 reserved[8]; + __u16 LinuxSKU; + __u16 LinuxVer; + __u8 reserved2[47]; +} __attribute__((packed)); -struct dev_pm_opp { - struct list_head node; - struct kref kref; - bool available; - bool dynamic; - bool turbo; - bool suspend; - bool removed; - unsigned long *rates; - unsigned int level; - struct dev_pm_opp_supply *supplies; - struct dev_pm_opp_icc_bw *bandwidth; - unsigned long clock_latency_ns; - struct dev_pm_opp **required_opps; - struct opp_table *opp_table; - struct device_node *np; - struct dentry *dentry; - const char *of_name; +enum usb_role { + USB_ROLE_NONE = 0, + USB_ROLE_HOST = 1, + USB_ROLE_DEVICE = 2, }; -struct dev_pm_opp_supply { - unsigned long u_volt; - unsigned long u_volt_min; - unsigned long u_volt_max; - unsigned long u_amp; - unsigned long u_watt; -}; +typedef int (*usb_role_switch_set_t)(struct usb_role_switch *, enum usb_role); -struct dev_pm_opp_icc_bw { - u32 avg; - u32 peak; -}; +typedef enum usb_role (*usb_role_switch_get_t)(struct usb_role_switch *); -struct opp_table { - struct list_head node; - struct list_head lazy; - struct blocking_notifier_head head; - struct list_head dev_list; - struct list_head opp_list; - struct kref kref; +struct usb_role_switch { + struct device dev; struct mutex lock; - struct device_node *np; - unsigned long clock_latency_ns_max; - unsigned int voltage_tolerance_v1; - unsigned int parsed_static_opps; - enum opp_table_access shared_opp; - unsigned long rate_clk_single; - struct dev_pm_opp *current_opp; - struct dev_pm_opp *suspend_opp; - struct mutex genpd_virt_dev_lock; - struct device **genpd_virt_devs; - struct opp_table **required_opp_tables; - unsigned int required_opp_count; - unsigned int *supported_hw; - unsigned int supported_hw_count; - const char *prop_name; - config_clks_t config_clks; - struct clk **clks; - struct clk *clk; - int clk_count; - config_regulators_t config_regulators; - struct regulator **regulators; - int regulator_count; - struct icc_path **paths; - unsigned int path_count; - bool enabled; - bool is_genpd; - int (*set_required_opps)(struct device *, struct opp_table *, struct dev_pm_opp *, bool); - struct dentry *dentry; - char dentry_name[255]; + enum usb_role role; + struct device *usb2_port; + struct device *usb3_port; + struct device *udc; + usb_role_switch_set_t set; + usb_role_switch_get_t get; + bool allow_userspace_control; }; -struct cpufreq_policy_data; - -struct freq_attr; +typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); -struct cpufreq_driver { - char name[16]; - u16 flags; +struct usb_role_switch_desc { + struct fwnode_handle *fwnode; + struct device *usb2_port; + struct device *usb3_port; + struct device *udc; + usb_role_switch_set_t set; + usb_role_switch_get_t get; + bool allow_userspace_control; 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_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); -}; - -struct mmc_pwrseq_ops; - -struct mmc_pwrseq { - const struct mmc_pwrseq_ops *ops; - struct device *dev; - struct list_head pwrseq_node; - struct module *owner; + const char *name; }; -struct mmc_pwrseq_ops { - void (*pre_power_on)(struct mmc_host *); - void (*post_power_on)(struct mmc_host *); - void (*power_off)(struct mmc_host *); - void (*reset)(struct mmc_host *); +struct vivaldi_data { + u32 function_row_physmap[24]; + unsigned int num_function_row_keys; }; -struct meson_mx_sdhc_clkc { - struct clk_mux src_sel; - struct clk_divider div; - struct clk_gate mod_clk_en; - struct clk_gate tx_clk_en; - struct clk_gate rx_clk_en; - struct clk_gate sd_clk_en; +struct input_led { + struct led_classdev cdev; + struct input_handle *handle; + unsigned int code; }; -struct sdhci_pltfm_data; - -struct sdhci_iproc_data { - const struct sdhci_pltfm_data *pdata; - u32 caps; - u32 caps1; - u32 mmc_caps; - bool missing_caps; +struct input_leds { + struct input_handle handle; + unsigned int num_leds; + struct input_led leds[0]; }; -struct sdhci_ops; - -struct sdhci_pltfm_data { - const struct sdhci_ops *ops; - unsigned int quirks; - unsigned int quirks2; +struct input_mt_slot { + int abs[14]; + unsigned int frame; + unsigned int key; }; -struct sdhci_host; - -struct sdhci_ops { - u32 (*read_l)(struct sdhci_host *, int); - u16 (*read_w)(struct sdhci_host *, int); - u8 (*read_b)(struct sdhci_host *, int); - void (*write_l)(struct sdhci_host *, u32, int); - void (*write_w)(struct sdhci_host *, u16, int); - void (*write_b)(struct sdhci_host *, u8, int); - void (*set_clock)(struct sdhci_host *, unsigned int); - void (*set_power)(struct sdhci_host *, unsigned char, unsigned short); - u32 (*irq)(struct sdhci_host *, u32); - int (*set_dma_mask)(struct sdhci_host *); - int (*enable_dma)(struct sdhci_host *); - unsigned int (*get_max_clock)(struct sdhci_host *); - unsigned int (*get_min_clock)(struct sdhci_host *); - unsigned int (*get_timeout_clock)(struct sdhci_host *); - unsigned int (*get_max_timeout_count)(struct sdhci_host *); - void (*set_timeout)(struct sdhci_host *, struct mmc_command *); - void (*set_bus_width)(struct sdhci_host *, int); - void (*platform_send_init_74_clocks)(struct sdhci_host *, u8); - unsigned int (*get_ro)(struct sdhci_host *); - void (*reset)(struct sdhci_host *, u8); - int (*platform_execute_tuning)(struct sdhci_host *, u32); - void (*set_uhs_signaling)(struct sdhci_host *, unsigned int); - void (*hw_reset)(struct sdhci_host *); - void (*adma_workaround)(struct sdhci_host *, u32); - void (*card_event)(struct sdhci_host *); - void (*voltage_switch)(struct sdhci_host *); - void (*adma_write_desc)(struct sdhci_host *, void **, dma_addr_t, int, unsigned int); - void (*copy_to_bounce_buffer)(struct sdhci_host *, struct mmc_data *, unsigned int); - void (*request_done)(struct sdhci_host *, struct mmc_request *); - void (*dump_vendor_regs)(struct sdhci_host *); +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 sdhci_host { - const char *hw_name; - unsigned int quirks; - unsigned int quirks2; - int irq; - void *ioaddr; - phys_addr_t mapbase; - char *bounce_buffer; - dma_addr_t bounce_addr; - unsigned int bounce_buffer_size; - const struct sdhci_ops *ops; - struct mmc_host *mmc; - struct mmc_host_ops mmc_host_ops; - long: 32; - u64 dma_mask; - struct led_classdev led; - char led_name[32]; - spinlock_t lock; - int flags; - unsigned int version; - unsigned int max_clk; - unsigned int timeout_clk; - u8 max_timeout_count; - unsigned int clk_mul; - unsigned int clock; - u8 pwr; - u8 drv_type; - bool reinit_uhs; - bool runtime_suspended; - bool bus_on; - bool preset_enabled; - bool pending_reset; - bool irq_wake_enabled; - bool v4_mode; - bool use_external_dma; - bool always_defer_done; - struct mmc_request *mrqs_done[2]; - struct mmc_command *cmd; - struct mmc_command *data_cmd; - struct mmc_command *deferred_cmd; - struct mmc_data *data; - unsigned int data_early: 1; - struct sg_mapping_iter sg_miter; - unsigned int blocks; - int sg_count; - int max_adma; - void *adma_table; - void *align_buffer; - size_t adma_table_sz; - size_t align_buffer_sz; - dma_addr_t adma_addr; - dma_addr_t align_addr; - unsigned int desc_sz; - unsigned int alloc_desc_sz; - struct workqueue_struct *complete_wq; - struct work_struct complete_work; - struct timer_list timer; - struct timer_list data_timer; - struct dma_chan *rx_chan; - struct dma_chan *tx_chan; - u32 caps; - u32 caps1; - bool read_caps; - bool sdhci_core_to_disable_vqmmc; - unsigned int ocr_avail_sdio; - unsigned int ocr_avail_sd; - unsigned int ocr_avail_mmc; - u32 ocr_mask; - unsigned int timing; - u32 thread_isr; - u32 ier; - bool cqe_on; - u32 cqe_ier; - u32 cqe_err_ier; - wait_queue_head_t buf_ready_int; - unsigned int tuning_done; - unsigned int tuning_count; - unsigned int tuning_mode; - unsigned int tuning_err; - int tuning_delay; - int tuning_loop_count; - u32 sdma_boundary; - u32 adma_table_cnt; - u64 data_timeout; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - unsigned long private[0]; +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 sdhci_pltfm_host { - struct clk *clk; - unsigned int clock; - u16 xfer_mode_shadow; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - unsigned long private[0]; +struct cytp_contact { + int x; + int y; + int z; }; -struct sdhci_iproc_host { - const struct sdhci_iproc_data *data; - u32 shadow_cmd; - u32 shadow_blk; - bool is_cmd_shadowed; - bool is_blk_shadowed; +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; }; -typedef void (*btf_trace_scmi_fc_call)(void *, u8, u8, u32, u32, u32); - -typedef void (*btf_trace_scmi_xfer_begin)(void *, int, u8, u8, u16, bool); - -typedef void (*btf_trace_scmi_xfer_response_wait)(void *, int, u8, u8, u16, u32, bool); - -typedef void (*btf_trace_scmi_xfer_end)(void *, int, u8, u8, u16, int); - -typedef void (*btf_trace_scmi_rx_done)(void *, int, u8, u8, u16, u8); - -typedef void (*btf_trace_scmi_msg_dump)(void *, int, u8, u8, u8, unsigned char *, u16, int, void *, size_t); - -enum scmi_std_protocol { - SCMI_PROTOCOL_BASE = 16, - SCMI_PROTOCOL_POWER = 17, - SCMI_PROTOCOL_SYSTEM = 18, - SCMI_PROTOCOL_PERF = 19, - SCMI_PROTOCOL_CLOCK = 20, - SCMI_PROTOCOL_SENSOR = 21, - SCMI_PROTOCOL_RESET = 22, - SCMI_PROTOCOL_VOLTAGE = 23, - SCMI_PROTOCOL_POWERCAP = 24, +struct input_mt_pos { + s16 x; + s16 y; }; -enum scmi_error_codes { - SCMI_SUCCESS = 0, - SCMI_ERR_SUPPORT = -1, - SCMI_ERR_PARAMS = -2, - SCMI_ERR_ACCESS = -3, - SCMI_ERR_ENTRY = -4, - SCMI_ERR_RANGE = -5, - SCMI_ERR_BUSY = -6, - SCMI_ERR_COMMS = -7, - SCMI_ERR_GENERIC = -8, - SCMI_ERR_HARDWARE = -9, - SCMI_ERR_PROTOCOL = -10, +enum { + MAX8907_IRQ_VCHG_DC_OVP = 0, + MAX8907_IRQ_VCHG_DC_F = 1, + MAX8907_IRQ_VCHG_DC_R = 2, + MAX8907_IRQ_VCHG_THM_OK_R = 3, + MAX8907_IRQ_VCHG_THM_OK_F = 4, + MAX8907_IRQ_VCHG_MBATTLOW_F = 5, + MAX8907_IRQ_VCHG_MBATTLOW_R = 6, + MAX8907_IRQ_VCHG_RST = 7, + MAX8907_IRQ_VCHG_DONE = 8, + MAX8907_IRQ_VCHG_TOPOFF = 9, + MAX8907_IRQ_VCHG_TMR_FAULT = 10, + MAX8907_IRQ_GPM_RSTIN = 0, + MAX8907_IRQ_GPM_MPL = 1, + MAX8907_IRQ_GPM_SW_3SEC = 2, + MAX8907_IRQ_GPM_EXTON_F = 3, + MAX8907_IRQ_GPM_EXTON_R = 4, + MAX8907_IRQ_GPM_SW_1SEC = 5, + MAX8907_IRQ_GPM_SW_F = 6, + MAX8907_IRQ_GPM_SW_R = 7, + MAX8907_IRQ_GPM_SYSCKEN_F = 8, + MAX8907_IRQ_GPM_SYSCKEN_R = 9, + MAX8907_IRQ_RTC_ALARM1 = 0, + MAX8907_IRQ_RTC_ALARM0 = 1, }; -enum scmi_common_cmd { - PROTOCOL_VERSION = 0, - PROTOCOL_ATTRIBUTES = 1, - PROTOCOL_MESSAGE_ATTRIBUTES = 2, +enum { + RTC_SEC = 0, + RTC_MIN = 1, + RTC_HOUR = 2, + RTC_WEEKDAY = 3, + RTC_DATE = 4, + RTC_MONTH = 5, + RTC_YEAR1 = 6, + RTC_YEAR2 = 7, }; -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 max8907; -struct scmi_xfers_info { - unsigned long *xfer_alloc_table; - spinlock_t xfer_lock; - int max_msg; - struct hlist_head free_xfers; - struct hlist_head pending_xfers[512]; +struct max8907_rtc { + struct max8907 *max8907; + struct regmap *regmap; + struct rtc_device *rtc_dev; + int irq; }; -struct scmi_debug_info; - -struct scmi_info { - int id; +struct max8907 { struct device *dev; - const struct scmi_desc *desc; - struct scmi_revision_info version; - struct scmi_handle handle; - struct scmi_xfers_info tx_minfo; - struct scmi_xfers_info rx_minfo; - struct idr tx_idr; - struct idr rx_idr; - struct idr protocols; - struct mutex protocols_mtx; - u8 *protocols_imp; - struct idr active_protocols; - unsigned int atomic_threshold; - void *notify_priv; - struct list_head node; - int users; - struct notifier_block bus_nb; - struct notifier_block dev_req_nb; - struct mutex devreq_mtx; - struct scmi_debug_info *dbg; - void *raw; -}; - -struct scmi_debug_info { - struct dentry *top_dentry; - const char *name; - const char *type; - bool is_atomic; -}; - -struct scmi_protocol; - -struct scmi_protocol_instance { - const struct scmi_handle *handle; - const struct scmi_protocol *proto; - void *gid; - refcount_t users; - void *priv; - struct scmi_protocol_handle ph; -}; - -typedef int (*scmi_prot_init_ph_fn_t)(const struct scmi_protocol_handle *); - -struct scmi_protocol_events; - -struct scmi_protocol { - const u8 id; - struct module *owner; - const scmi_prot_init_ph_fn_t instance_init; - const scmi_prot_init_ph_fn_t instance_deinit; - const void *ops; - const struct scmi_protocol_events *events; -}; - -struct scmi_event_ops; - -struct scmi_event; - -struct scmi_protocol_events { - size_t queue_sz; - const struct scmi_event_ops *ops; - const struct scmi_event *evts; - unsigned int num_events; - unsigned int num_sources; -}; - -struct scmi_event_ops { - int (*get_num_sources)(const struct scmi_protocol_handle *); - int (*set_notify_enabled)(const struct scmi_protocol_handle *, u8, u32, bool); - void * (*fill_custom_report)(const struct scmi_protocol_handle *, u8, ktime_t, const void *, size_t, void *, u32 *); -}; - -struct scmi_event { - u8 id; - size_t max_payld_sz; - size_t max_report_sz; -}; - -struct trace_event_raw_scmi_fc_call { - struct trace_entry ent; - u8 protocol_id; - u8 msg_id; - u32 res_id; - u32 val1; - u32 val2; - char __data[0]; -}; - -struct trace_event_raw_scmi_xfer_begin { - struct trace_entry ent; - int transfer_id; - u8 msg_id; - u8 protocol_id; - u16 seq; - bool poll; - char __data[0]; -}; - -struct trace_event_raw_scmi_xfer_response_wait { - struct trace_entry ent; - int transfer_id; - u8 msg_id; - u8 protocol_id; - u16 seq; - u32 timeout; - bool poll; - char __data[0]; -}; - -struct trace_event_raw_scmi_xfer_end { - struct trace_entry ent; - int transfer_id; - u8 msg_id; - u8 protocol_id; - u16 seq; - int status; - char __data[0]; -}; - -struct trace_event_raw_scmi_rx_done { - struct trace_entry ent; - int transfer_id; - u8 msg_id; - u8 protocol_id; - u16 seq; - u8 msg_type; - char __data[0]; -}; - -struct trace_event_raw_scmi_msg_dump { - struct trace_entry ent; - int id; - u8 channel_id; - u8 protocol_id; - u8 msg_id; - char tag[5]; - u16 seq; - int status; - size_t len; - u32 __data_loc_cmd; - char __data[0]; -}; - -struct trace_event_data_offsets_scmi_msg_dump { - u32 cmd; -}; - -struct scmi_protocol_devres { - const struct scmi_handle *handle; - u8 protocol_id; + struct mutex irq_lock; + struct i2c_client *i2c_gen; + struct i2c_client *i2c_rtc; + struct regmap *regmap_gen; + struct regmap *regmap_rtc; + struct regmap_irq_chip_data *irqc_chg; + struct regmap_irq_chip_data *irqc_on_off; + struct regmap_irq_chip_data *irqc_rtc; }; -typedef int (*dr_match_t)(struct device *, void *, void *); - -struct trace_event_data_offsets_scmi_fc_call {}; - -struct trace_event_data_offsets_scmi_xfer_begin {}; - -struct trace_event_data_offsets_scmi_xfer_response_wait {}; - -struct trace_event_data_offsets_scmi_xfer_end {}; - -struct trace_event_data_offsets_scmi_rx_done {}; - -struct scmi_msg_resp_domain_name_get { - __le32 flags; - u8 name[64]; +struct i2c_smbus_alert { + struct work_struct alert; + struct i2c_client *ara; }; -struct scmi_iterator { - void *msg; - void *resp; - struct scmi_xfer *t; - const struct scmi_protocol_handle *ph; - struct scmi_iterator_ops *ops; - struct scmi_iterator_state state; - void *priv; +struct alert_data { + unsigned short addr; + enum i2c_alert_protocol type; + unsigned int data; }; -struct scmi_msg_resp_desc_fc { - __le32 attr; - __le32 rate_limit; - __le32 chan_addr_low; - __le32 chan_addr_high; - __le32 chan_size; - __le32 db_addr_low; - __le32 db_addr_high; - __le32 db_set_lmask; - __le32 db_set_hmask; - __le32 db_preserve_lmask; - __le32 db_preserve_hmask; +struct i2c_slave_host_notify_status { + u8 index; + u8 addr; }; -struct scmi_msg_get_fc_info { - __le32 domain; - __le32 message_id; +struct i2c_smbus_alert_setup { + int irq; }; -struct scmi_device_id { - u8 protocol_id; - const char *name; +struct st_i2c_timings { + u32 rate; + u32 rep_start_hold; + u32 rep_start_setup; + u32 start_hold; + u32 data_setup_time; + u32 stop_setup_time; + u32 bus_free_time; + u32 sda_pulse_min_limit; }; -struct nvec_chip; - -struct nvec_keys { - struct input_dev *input; - struct notifier_block notifier; - struct nvec_chip *nvec; - bool caps_lock; +enum st_i2c_mode { + I2C_MODE_STANDARD = 0, + I2C_MODE_FAST = 1, + I2C_MODE_END = 2, }; -struct nvec_msg { - struct list_head node; - unsigned char data[34]; - unsigned short size; - unsigned short pos; - atomic_t used; +struct st_i2c_client { + u8 addr; + u32 count; + u32 xfered; + u8 *buf; + int result; + bool stop; }; -struct nvec_chip { +struct st_i2c_dev { + struct i2c_adapter adap; struct device *dev; - struct gpio_desc *gpiod; - int irq; - u32 i2c_addr; void *base; - struct clk *i2c_clk; - struct reset_control *rst; - struct atomic_notifier_head notifier_list; - struct list_head rx_data; - struct list_head tx_data; - struct notifier_block nvec_status_notifier; - struct work_struct rx_work; - struct work_struct tx_work; - struct workqueue_struct *wq; - struct nvec_msg msg_pool[64]; - struct nvec_msg *rx; - struct nvec_msg *tx; - struct nvec_msg tx_scratch; - struct completion ec_transfer; - spinlock_t tx_lock; - spinlock_t rx_lock; - struct mutex sync_write_mutex; - struct completion sync_write; - u16 sync_write_pending; - struct nvec_msg *last_sync_msg; - int state; -}; - -enum nvec_msg_type { - NVEC_SYS = 1, - NVEC_BAT = 2, - NVEC_GPIO = 3, - NVEC_SLEEP = 4, - NVEC_KBD = 5, - NVEC_PS2 = 6, - NVEC_CNTL = 7, - NVEC_OEM0 = 13, - NVEC_KB_EVT = 128, - NVEC_PS2_EVT = 129, -}; - -enum nvec_event_size { - NVEC_2BYTES = 0, - NVEC_3BYTES = 1, - NVEC_VAR_SIZE = 2, + struct completion complete; + int irq; + struct clk *clk; + int mode; + u32 scl_min_width_us; + u32 sda_min_width_us; + struct st_i2c_client client; + bool busy; }; -struct devbus { +struct ptp_dte { + void *regs; + struct ptp_clock *ptp_clk; + struct ptp_clock_info caps; struct device *dev; - void *base; - unsigned long tick_ps; -}; - -struct devbus_read_params { - u32 bus_width; - u32 badr_skew; - u32 turn_off; - u32 acc_first; - u32 acc_next; - u32 rd_setup; - u32 rd_hold; -}; - -struct devbus_write_params { - u32 sync_enable; - u32 wr_high; - u32 wr_low; - u32 ale_wr; + u32 ts_ovf_last; + u32 ts_wrap_cnt; + spinlock_t lock; + u32 reg_val[4]; }; -enum iio_available_type { - IIO_AVAIL_LIST = 0, - IIO_AVAIL_RANGE = 1, +struct mode_info { + const char *mode; + u32 magic; + struct list_head list; }; -struct iio_map; - -struct iio_map_internal { - struct iio_dev *indio_dev; - struct iio_map *map; - struct list_head l; +struct reboot_mode_driver { + struct device *dev; + struct list_head head; + int (*write)(struct reboot_mode_driver *, unsigned int); + struct notifier_block reboot_notifier; }; -struct iio_map { - const char *adc_channel_label; - const char *consumer_dev_name; - const char *consumer_channel; - void *consumer_data; +struct thermal_attr { + struct device_attribute attr; + char name[20]; }; -struct iio_event_interface; - -struct iio_ioctl_handler; - -struct iio_dev_opaque { - struct iio_dev indio_dev; - int currentmode; +struct thermal_instance { int id; - struct module *driver_module; - struct mutex mlock; - struct lock_class_key mlock_key; - struct mutex info_exist_lock; - bool trig_readonly; - struct iio_event_interface *event_interface; - struct iio_buffer **attached_buffers; - unsigned int attached_buffers_cnt; - struct iio_ioctl_handler *buffer_ioctl_handler; - struct list_head buffer_list; - struct list_head channel_attr_list; - struct attribute_group chan_attr_group; - struct list_head ioctl_handlers; - const struct attribute_group **groups; - int groupcounter; - struct attribute_group legacy_scan_el_group; - struct attribute_group legacy_buffer_group; - void *bounce_buffer; - size_t bounce_buffer_size; - unsigned int scan_index_timestamp; - clockid_t clock_id; - struct cdev chrdev; - unsigned long flags; - struct dentry *debugfs_dentry; - unsigned int cached_reg_addr; - char read_buf[20]; - unsigned int read_buf_len; - long: 32; -}; - -struct iio_ioctl_handler { - struct list_head entry; - long (*ioctl)(struct iio_dev *, struct file *, unsigned int, unsigned long); -}; - -struct iio_channel { - struct iio_dev *indio_dev; - const struct iio_chan_spec *channel; - void *data; -}; - -enum nvmem_type { - NVMEM_TYPE_UNKNOWN = 0, - NVMEM_TYPE_EEPROM = 1, - NVMEM_TYPE_OTP = 2, - NVMEM_TYPE_BATTERY_BACKED = 3, - NVMEM_TYPE_FRAM = 4, + char name[20]; + struct thermal_zone_device *tz; + struct thermal_cooling_device *cdev; + const struct thermal_trip *trip; + bool initialized; + unsigned long upper; + unsigned long lower; + unsigned long target; + char attr_name[20]; + struct device_attribute attr; + char weight_attr_name[20]; + struct device_attribute weight_attr; + struct list_head tz_node; + struct list_head cdev_node; + unsigned int weight; + bool upper_no_limit; }; -typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t); - -typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t); - -struct nvmem_cell_info; - -struct nvmem_keepout; - -struct nvmem_layout; - -struct nvmem_config { - struct device *dev; - const char *name; - int id; - struct module *owner; - const struct nvmem_cell_info *cells; - int ncells; - const struct nvmem_keepout *keepout; - unsigned int nkeepout; - enum nvmem_type type; - bool read_only; - bool root_only; - bool ignore_wp; - struct nvmem_layout *layout; - struct device_node *of_node; - bool no_of_node; - nvmem_reg_read_t reg_read; - nvmem_reg_write_t reg_write; - int size; - int word_size; - int stride; - void *priv; - bool compat; - struct device *base_dev; -}; - -typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); - -struct nvmem_cell_info { - const char *name; - unsigned int offset; - size_t raw_len; - unsigned int bytes; - unsigned int bit_offset; - unsigned int nbits; - struct device_node *np; - nvmem_cell_post_process_t read_post_process; - void *priv; +enum regfield_ids { + VER_MAJOR = 0, + VER_MINOR = 1, + VER_STEP = 2, + TSENS_EN = 3, + TSENS_SW_RST = 4, + SENSOR_EN = 5, + CODE_OR_TEMP = 6, + TRDY = 7, + INT_EN = 8, + LAST_TEMP_0 = 9, + LAST_TEMP_1 = 10, + LAST_TEMP_2 = 11, + LAST_TEMP_3 = 12, + LAST_TEMP_4 = 13, + LAST_TEMP_5 = 14, + LAST_TEMP_6 = 15, + LAST_TEMP_7 = 16, + LAST_TEMP_8 = 17, + LAST_TEMP_9 = 18, + LAST_TEMP_10 = 19, + LAST_TEMP_11 = 20, + LAST_TEMP_12 = 21, + LAST_TEMP_13 = 22, + LAST_TEMP_14 = 23, + LAST_TEMP_15 = 24, + VALID_0 = 25, + VALID_1 = 26, + VALID_2 = 27, + VALID_3 = 28, + VALID_4 = 29, + VALID_5 = 30, + VALID_6 = 31, + VALID_7 = 32, + VALID_8 = 33, + VALID_9 = 34, + VALID_10 = 35, + VALID_11 = 36, + VALID_12 = 37, + VALID_13 = 38, + VALID_14 = 39, + VALID_15 = 40, + LOWER_STATUS_0 = 41, + LOWER_STATUS_1 = 42, + LOWER_STATUS_2 = 43, + LOWER_STATUS_3 = 44, + LOWER_STATUS_4 = 45, + LOWER_STATUS_5 = 46, + LOWER_STATUS_6 = 47, + LOWER_STATUS_7 = 48, + LOWER_STATUS_8 = 49, + LOWER_STATUS_9 = 50, + LOWER_STATUS_10 = 51, + LOWER_STATUS_11 = 52, + LOWER_STATUS_12 = 53, + LOWER_STATUS_13 = 54, + LOWER_STATUS_14 = 55, + LOWER_STATUS_15 = 56, + LOW_INT_STATUS_0 = 57, + LOW_INT_STATUS_1 = 58, + LOW_INT_STATUS_2 = 59, + LOW_INT_STATUS_3 = 60, + LOW_INT_STATUS_4 = 61, + LOW_INT_STATUS_5 = 62, + LOW_INT_STATUS_6 = 63, + LOW_INT_STATUS_7 = 64, + LOW_INT_STATUS_8 = 65, + LOW_INT_STATUS_9 = 66, + LOW_INT_STATUS_10 = 67, + LOW_INT_STATUS_11 = 68, + LOW_INT_STATUS_12 = 69, + LOW_INT_STATUS_13 = 70, + LOW_INT_STATUS_14 = 71, + LOW_INT_STATUS_15 = 72, + LOW_INT_CLEAR_0 = 73, + LOW_INT_CLEAR_1 = 74, + LOW_INT_CLEAR_2 = 75, + LOW_INT_CLEAR_3 = 76, + LOW_INT_CLEAR_4 = 77, + LOW_INT_CLEAR_5 = 78, + LOW_INT_CLEAR_6 = 79, + LOW_INT_CLEAR_7 = 80, + LOW_INT_CLEAR_8 = 81, + LOW_INT_CLEAR_9 = 82, + LOW_INT_CLEAR_10 = 83, + LOW_INT_CLEAR_11 = 84, + LOW_INT_CLEAR_12 = 85, + LOW_INT_CLEAR_13 = 86, + LOW_INT_CLEAR_14 = 87, + LOW_INT_CLEAR_15 = 88, + LOW_INT_MASK_0 = 89, + LOW_INT_MASK_1 = 90, + LOW_INT_MASK_2 = 91, + LOW_INT_MASK_3 = 92, + LOW_INT_MASK_4 = 93, + LOW_INT_MASK_5 = 94, + LOW_INT_MASK_6 = 95, + LOW_INT_MASK_7 = 96, + LOW_INT_MASK_8 = 97, + LOW_INT_MASK_9 = 98, + LOW_INT_MASK_10 = 99, + LOW_INT_MASK_11 = 100, + LOW_INT_MASK_12 = 101, + LOW_INT_MASK_13 = 102, + LOW_INT_MASK_14 = 103, + LOW_INT_MASK_15 = 104, + LOW_THRESH_0 = 105, + LOW_THRESH_1 = 106, + LOW_THRESH_2 = 107, + LOW_THRESH_3 = 108, + LOW_THRESH_4 = 109, + LOW_THRESH_5 = 110, + LOW_THRESH_6 = 111, + LOW_THRESH_7 = 112, + LOW_THRESH_8 = 113, + LOW_THRESH_9 = 114, + LOW_THRESH_10 = 115, + LOW_THRESH_11 = 116, + LOW_THRESH_12 = 117, + LOW_THRESH_13 = 118, + LOW_THRESH_14 = 119, + LOW_THRESH_15 = 120, + UPPER_STATUS_0 = 121, + UPPER_STATUS_1 = 122, + UPPER_STATUS_2 = 123, + UPPER_STATUS_3 = 124, + UPPER_STATUS_4 = 125, + UPPER_STATUS_5 = 126, + UPPER_STATUS_6 = 127, + UPPER_STATUS_7 = 128, + UPPER_STATUS_8 = 129, + UPPER_STATUS_9 = 130, + UPPER_STATUS_10 = 131, + UPPER_STATUS_11 = 132, + UPPER_STATUS_12 = 133, + UPPER_STATUS_13 = 134, + UPPER_STATUS_14 = 135, + UPPER_STATUS_15 = 136, + UP_INT_STATUS_0 = 137, + UP_INT_STATUS_1 = 138, + UP_INT_STATUS_2 = 139, + UP_INT_STATUS_3 = 140, + UP_INT_STATUS_4 = 141, + UP_INT_STATUS_5 = 142, + UP_INT_STATUS_6 = 143, + UP_INT_STATUS_7 = 144, + UP_INT_STATUS_8 = 145, + UP_INT_STATUS_9 = 146, + UP_INT_STATUS_10 = 147, + UP_INT_STATUS_11 = 148, + UP_INT_STATUS_12 = 149, + UP_INT_STATUS_13 = 150, + UP_INT_STATUS_14 = 151, + UP_INT_STATUS_15 = 152, + UP_INT_CLEAR_0 = 153, + UP_INT_CLEAR_1 = 154, + UP_INT_CLEAR_2 = 155, + UP_INT_CLEAR_3 = 156, + UP_INT_CLEAR_4 = 157, + UP_INT_CLEAR_5 = 158, + UP_INT_CLEAR_6 = 159, + UP_INT_CLEAR_7 = 160, + UP_INT_CLEAR_8 = 161, + UP_INT_CLEAR_9 = 162, + UP_INT_CLEAR_10 = 163, + UP_INT_CLEAR_11 = 164, + UP_INT_CLEAR_12 = 165, + UP_INT_CLEAR_13 = 166, + UP_INT_CLEAR_14 = 167, + UP_INT_CLEAR_15 = 168, + UP_INT_MASK_0 = 169, + UP_INT_MASK_1 = 170, + UP_INT_MASK_2 = 171, + UP_INT_MASK_3 = 172, + UP_INT_MASK_4 = 173, + UP_INT_MASK_5 = 174, + UP_INT_MASK_6 = 175, + UP_INT_MASK_7 = 176, + UP_INT_MASK_8 = 177, + UP_INT_MASK_9 = 178, + UP_INT_MASK_10 = 179, + UP_INT_MASK_11 = 180, + UP_INT_MASK_12 = 181, + UP_INT_MASK_13 = 182, + UP_INT_MASK_14 = 183, + UP_INT_MASK_15 = 184, + UP_THRESH_0 = 185, + UP_THRESH_1 = 186, + UP_THRESH_2 = 187, + UP_THRESH_3 = 188, + UP_THRESH_4 = 189, + UP_THRESH_5 = 190, + UP_THRESH_6 = 191, + UP_THRESH_7 = 192, + UP_THRESH_8 = 193, + UP_THRESH_9 = 194, + UP_THRESH_10 = 195, + UP_THRESH_11 = 196, + UP_THRESH_12 = 197, + UP_THRESH_13 = 198, + UP_THRESH_14 = 199, + UP_THRESH_15 = 200, + CRITICAL_STATUS_0 = 201, + CRITICAL_STATUS_1 = 202, + CRITICAL_STATUS_2 = 203, + CRITICAL_STATUS_3 = 204, + CRITICAL_STATUS_4 = 205, + CRITICAL_STATUS_5 = 206, + CRITICAL_STATUS_6 = 207, + CRITICAL_STATUS_7 = 208, + CRITICAL_STATUS_8 = 209, + CRITICAL_STATUS_9 = 210, + CRITICAL_STATUS_10 = 211, + CRITICAL_STATUS_11 = 212, + CRITICAL_STATUS_12 = 213, + CRITICAL_STATUS_13 = 214, + CRITICAL_STATUS_14 = 215, + CRITICAL_STATUS_15 = 216, + CRIT_INT_STATUS_0 = 217, + CRIT_INT_STATUS_1 = 218, + CRIT_INT_STATUS_2 = 219, + CRIT_INT_STATUS_3 = 220, + CRIT_INT_STATUS_4 = 221, + CRIT_INT_STATUS_5 = 222, + CRIT_INT_STATUS_6 = 223, + CRIT_INT_STATUS_7 = 224, + CRIT_INT_STATUS_8 = 225, + CRIT_INT_STATUS_9 = 226, + CRIT_INT_STATUS_10 = 227, + CRIT_INT_STATUS_11 = 228, + CRIT_INT_STATUS_12 = 229, + CRIT_INT_STATUS_13 = 230, + CRIT_INT_STATUS_14 = 231, + CRIT_INT_STATUS_15 = 232, + CRIT_INT_CLEAR_0 = 233, + CRIT_INT_CLEAR_1 = 234, + CRIT_INT_CLEAR_2 = 235, + CRIT_INT_CLEAR_3 = 236, + CRIT_INT_CLEAR_4 = 237, + CRIT_INT_CLEAR_5 = 238, + CRIT_INT_CLEAR_6 = 239, + CRIT_INT_CLEAR_7 = 240, + CRIT_INT_CLEAR_8 = 241, + CRIT_INT_CLEAR_9 = 242, + CRIT_INT_CLEAR_10 = 243, + CRIT_INT_CLEAR_11 = 244, + CRIT_INT_CLEAR_12 = 245, + CRIT_INT_CLEAR_13 = 246, + CRIT_INT_CLEAR_14 = 247, + CRIT_INT_CLEAR_15 = 248, + CRIT_INT_MASK_0 = 249, + CRIT_INT_MASK_1 = 250, + CRIT_INT_MASK_2 = 251, + CRIT_INT_MASK_3 = 252, + CRIT_INT_MASK_4 = 253, + CRIT_INT_MASK_5 = 254, + CRIT_INT_MASK_6 = 255, + CRIT_INT_MASK_7 = 256, + CRIT_INT_MASK_8 = 257, + CRIT_INT_MASK_9 = 258, + CRIT_INT_MASK_10 = 259, + CRIT_INT_MASK_11 = 260, + CRIT_INT_MASK_12 = 261, + CRIT_INT_MASK_13 = 262, + CRIT_INT_MASK_14 = 263, + CRIT_INT_MASK_15 = 264, + CRIT_THRESH_0 = 265, + CRIT_THRESH_1 = 266, + CRIT_THRESH_2 = 267, + CRIT_THRESH_3 = 268, + CRIT_THRESH_4 = 269, + CRIT_THRESH_5 = 270, + CRIT_THRESH_6 = 271, + CRIT_THRESH_7 = 272, + CRIT_THRESH_8 = 273, + CRIT_THRESH_9 = 274, + CRIT_THRESH_10 = 275, + CRIT_THRESH_11 = 276, + CRIT_THRESH_12 = 277, + CRIT_THRESH_13 = 278, + CRIT_THRESH_14 = 279, + CRIT_THRESH_15 = 280, + WDOG_BARK_STATUS = 281, + WDOG_BARK_CLEAR = 282, + WDOG_BARK_MASK = 283, + WDOG_BARK_COUNT = 284, + CC_MON_STATUS = 285, + CC_MON_CLEAR = 286, + CC_MON_MASK = 287, + MIN_STATUS_0 = 288, + MIN_STATUS_1 = 289, + MIN_STATUS_2 = 290, + MIN_STATUS_3 = 291, + MIN_STATUS_4 = 292, + MIN_STATUS_5 = 293, + MIN_STATUS_6 = 294, + MIN_STATUS_7 = 295, + MIN_STATUS_8 = 296, + MIN_STATUS_9 = 297, + MIN_STATUS_10 = 298, + MIN_STATUS_11 = 299, + MIN_STATUS_12 = 300, + MIN_STATUS_13 = 301, + MIN_STATUS_14 = 302, + MIN_STATUS_15 = 303, + MAX_STATUS_0 = 304, + MAX_STATUS_1 = 305, + MAX_STATUS_2 = 306, + MAX_STATUS_3 = 307, + MAX_STATUS_4 = 308, + MAX_STATUS_5 = 309, + MAX_STATUS_6 = 310, + MAX_STATUS_7 = 311, + MAX_STATUS_8 = 312, + MAX_STATUS_9 = 313, + MAX_STATUS_10 = 314, + MAX_STATUS_11 = 315, + MAX_STATUS_12 = 316, + MAX_STATUS_13 = 317, + MAX_STATUS_14 = 318, + MAX_STATUS_15 = 319, + MAX_REGFIELDS___2 = 320, }; -struct nvmem_keepout { - unsigned int start; - unsigned int end; - unsigned char value; +enum tsens_ver { + VER_0 = 0, + VER_0_1 = 1, + VER_1_X = 2, + VER_2_X = 3, }; -struct nvmem_layout { - const char *name; - const struct of_device_id *of_match_table; - int (*add_cells)(struct device *, struct nvmem_device *, struct nvmem_layout *); - void (*fixup_cell_info)(struct nvmem_device *, struct nvmem_layout *, struct nvmem_cell_info *); - struct module *owner; - struct list_head node; +enum tsens_irq_type { + LOWER = 0, + UPPER = 1, + CRITICAL = 2, }; -struct vf610_ocotp { - void *base; - struct clk *clk; - struct device *dev; - struct nvmem_device *nvmem; - int timing; +struct tsens_context { + int threshold; + int control; }; -struct icc_provider; +struct tsens_priv; -struct icc_node { - int id; - const char *name; - struct icc_node **links; - size_t num_links; - struct icc_provider *provider; - struct list_head node_list; - struct list_head search_list; - struct icc_node *reverse; - u8 is_traversed: 1; - struct hlist_head req_list; - u32 avg_bw; - u32 peak_bw; - u32 init_avg; - u32 init_peak; - void *data; +struct tsens_sensor { + struct tsens_priv *priv; + struct thermal_zone_device *tzd; + int offset; + unsigned int hw_id; + int slope; + u32 status; + int p1_calib_offset; + int p2_calib_offset; }; -struct icc_node_data; +struct tsens_features; -struct icc_provider { - struct list_head provider_list; - struct list_head nodes; - int (*set)(struct icc_node *, struct icc_node *); - int (*aggregate)(struct icc_node *, u32, u32, u32, u32 *, u32 *); - void (*pre_aggregate)(struct icc_node *); - int (*get_bw)(struct icc_node *, u32 *, u32 *); - struct icc_node * (*xlate)(struct of_phandle_args *, void *); - struct icc_node_data * (*xlate_extended)(struct of_phandle_args *, void *); +struct tsens_ops; + +struct tsens_priv { struct device *dev; - int users; - bool inter_set; - void *data; + u32 num_sensors; + struct regmap *tm_map; + struct regmap *srot_map; + u32 tm_offset; + spinlock_t ul_lock; + struct regmap_field *rf[320]; + struct tsens_context ctx; + struct tsens_features *feat; + const struct reg_field *fields; + const struct tsens_ops *ops; + struct dentry *debug_root; + struct dentry *debug; + struct tsens_sensor sensor[0]; }; -struct icc_node_data { - struct icc_node *node; - u32 tag; +struct tsens_features { + unsigned int ver_major; + unsigned int crit_int: 1; + unsigned int combo_int: 1; + unsigned int adc: 1; + unsigned int srot_split: 1; + unsigned int has_watchdog: 1; + unsigned int max_sensors; + int trip_min_temp; + int trip_max_temp; }; -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 tsens_ops { + int (*init)(struct tsens_priv *); + int (*calibrate)(struct tsens_priv *); + int (*get_temp)(const struct tsens_sensor *, int *); + int (*enable)(struct tsens_priv *, int); + void (*disable)(struct tsens_priv *); + int (*suspend)(struct tsens_priv *); + int (*resume)(struct tsens_priv *); }; -struct gnet_stats_rate_est64 { - __u64 bps; - __u64 pps; +struct tsens_single_value { + u8 idx; + u8 shift; + u8 blob; }; -struct gnet_stats_basic { - __u64 bytes; - __u32 packets; - long: 32; +struct tsens_irq_data { + u32 up_viol; + int up_thresh; + u32 up_irq_mask; + u32 up_irq_clear; + u32 low_viol; + int low_thresh; + u32 low_irq_mask; + u32 low_irq_clear; + u32 crit_viol; + u32 crit_thresh; + u32 crit_irq_mask; + u32 crit_irq_clear; }; -struct gnet_stats_rate_est { - __u32 bps; - __u32 pps; +struct tsens_legacy_calibration_format { + unsigned int base_len; + unsigned int base_shift; + unsigned int sp_len; + struct tsens_single_value mode; + struct tsens_single_value invalid; + struct tsens_single_value base[2]; + struct tsens_single_value sp[0]; }; -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 *); +struct tsens_plat_data { + const u32 num_sensors; + const struct tsens_ops *ops; + unsigned int *hw_ids; + struct tsens_features *feat; + const struct reg_field *fields; +}; -typedef void (*btf_trace_netif_receive_skb_list_entry)(void *, const struct sk_buff *); +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); +}; -typedef void (*btf_trace_netif_rx_entry)(void *, const struct sk_buff *); +struct dw_mci; -typedef void (*btf_trace_napi_gro_frags_exit)(void *, int); +struct dw_mci_slot; -typedef void (*btf_trace_napi_gro_receive_exit)(void *, int); +struct dw_mci_drv_data { + unsigned long *caps; + u32 num_caps; + u32 common_caps; + int (*init)(struct dw_mci *); + void (*set_ios)(struct dw_mci *, struct mmc_ios *); + int (*parse_dt)(struct dw_mci *); + int (*execute_tuning)(struct dw_mci_slot *, u32); + int (*prepare_hs400_tuning)(struct dw_mci *, struct mmc_ios *); + int (*switch_voltage)(struct mmc_host *, struct mmc_ios *); + void (*set_data_timeout)(struct dw_mci *, unsigned int); + u32 (*get_drto_clks)(struct dw_mci *); +}; -typedef void (*btf_trace_netif_receive_skb_exit)(void *, int); +enum dw_mci_state { + STATE_IDLE = 0, + STATE_SENDING_CMD = 1, + STATE_SENDING_DATA = 2, + STATE_DATA_BUSY = 3, + STATE_SENDING_STOP = 4, + STATE_DATA_ERROR = 5, + STATE_SENDING_CMD11 = 6, + STATE_WAITING_CMD11_DONE = 7, +}; -typedef void (*btf_trace_netif_rx_exit)(void *, int); +struct dw_mci_dma_ops; -typedef void (*btf_trace_netif_receive_skb_list_exit)(void *, int); +struct dw_mci_dma_slave; -typedef void (*btf_trace_napi_poll)(void *, struct napi_struct *, int, int); +struct dw_mci_board; -typedef void (*btf_trace_sock_rcvqueue_full)(void *, struct sock *, struct sk_buff *); +struct dw_mci { + spinlock_t lock; + spinlock_t irq_lock; + void *regs; + void *fifo_reg; + u32 data_addr_override; + bool wm_aligned; + struct scatterlist *sg; + struct sg_mapping_iter sg_miter; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_data *data; + struct mmc_command stop_abort; + unsigned int prev_blksz; + unsigned char timing; + int use_dma; + int using_dma; + int dma_64bit_address; + dma_addr_t sg_dma; + void *sg_cpu; + const struct dw_mci_dma_ops *dma_ops; + unsigned int ring_size; + struct dw_mci_dma_slave *dms; + resource_size_t phy_regs; + u32 cmd_status; + u32 data_status; + u32 stop_cmdr; + u32 dir_status; + struct tasklet_struct tasklet; + unsigned long pending_events; + unsigned long completed_events; + enum dw_mci_state state; + struct list_head queue; + u32 bus_hz; + u32 current_speed; + u32 minimum_speed; + u32 fifoth_val; + u16 verid; + struct device *dev; + struct dw_mci_board *pdata; + const struct dw_mci_drv_data *drv_data; + void *priv; + struct clk *biu_clk; + struct clk *ciu_clk; + struct dw_mci_slot *slot; + int fifo_depth; + int data_shift; + u8 part_buf_start; + u8 part_buf_count; + union { + u16 part_buf16; + u32 part_buf32; + u64 part_buf; + }; + void (*push_data)(struct dw_mci *, void *, int); + void (*pull_data)(struct dw_mci *, void *, int); + u32 quirks; + bool vqmmc_enabled; + unsigned long irq_flags; + int irq; + int sdio_id0; + struct timer_list cmd11_timer; + struct timer_list cto_timer; + struct timer_list dto_timer; +}; -typedef void (*btf_trace_sock_exceed_buf_limit)(void *, struct sock *, struct proto *, long, int); +struct dw_mci_dma_ops { + int (*init)(struct dw_mci *); + int (*start)(struct dw_mci *, unsigned int); + void (*complete)(void *); + void (*stop)(struct dw_mci *); + void (*cleanup)(struct dw_mci *); + void (*exit)(struct dw_mci *); +}; -typedef void (*btf_trace_inet_sock_set_state)(void *, const struct sock *, const int, const int); +struct dw_mci_dma_slave { + struct dma_chan *ch; + enum dma_transfer_direction direction; +}; -typedef void (*btf_trace_inet_sk_error_report)(void *, const struct sock *); +struct dma_pdata; -typedef void (*btf_trace_sk_data_ready)(void *, const struct sock *); +struct dw_mci_board { + unsigned int bus_hz; + u32 caps; + u32 caps2; + u32 pm_caps; + unsigned int fifo_depth; + u32 detect_delay_ms; + struct reset_control *rstc; + struct dw_mci_dma_ops *dma_ops; + struct dma_pdata *data; +}; -typedef void (*btf_trace_sock_send_length)(void *, struct sock *, int, int); +struct dw_mci_slot { + struct mmc_host *mmc; + struct dw_mci *host; + u32 ctype; + struct mmc_request *mrq; + struct list_head queue_node; + unsigned int clock; + unsigned int __clk_old; + unsigned long flags; + int id; + int sdio_id; +}; -typedef void (*btf_trace_sock_recv_length)(void *, struct sock *, int, int); +enum dw_mci_exynos_type { + DW_MCI_TYPE_EXYNOS4210 = 0, + DW_MCI_TYPE_EXYNOS4412 = 1, + DW_MCI_TYPE_EXYNOS5250 = 2, + DW_MCI_TYPE_EXYNOS5420 = 3, + DW_MCI_TYPE_EXYNOS5420_SMU = 4, + DW_MCI_TYPE_EXYNOS7 = 5, + DW_MCI_TYPE_EXYNOS7_SMU = 6, + DW_MCI_TYPE_ARTPEC8 = 7, +}; -typedef void (*btf_trace_udp_fail_queue_rcv_skb)(void *, int, struct sock *); +struct dw_mci_exynos_compatible { + char *compatible; + enum dw_mci_exynos_type ctrl_type; +}; -typedef void (*btf_trace_tcp_retransmit_skb)(void *, const struct sock *, const struct sk_buff *); +struct dw_mci_exynos_priv_data { + enum dw_mci_exynos_type ctrl_type; + u8 ciu_div; + u32 sdr_timing; + u32 ddr_timing; + u32 hs400_timing; + u32 tuned_sample; + u32 cur_speed; + u32 dqs_delay; + u32 saved_dqs_en; + u32 saved_strobe_ctrl; +}; -typedef void (*btf_trace_tcp_send_reset)(void *, const struct sock *, const struct sk_buff *); +struct cqhci_host; -typedef void (*btf_trace_tcp_receive_reset)(void *, struct sock *); +struct cqhci_host_ops { + void (*dumpregs)(struct mmc_host *); + void (*write_l)(struct cqhci_host *, u32, int); + u32 (*read_l)(struct cqhci_host *, int); + void (*enable)(struct mmc_host *); + void (*disable)(struct mmc_host *, bool); + void (*update_dcmd_desc)(struct mmc_host *, struct mmc_request *, u64 *); + void (*pre_enable)(struct mmc_host *); + void (*post_disable)(struct mmc_host *); +}; -typedef void (*btf_trace_tcp_destroy_sock)(void *, struct sock *); +struct cqhci_slot; -typedef void (*btf_trace_tcp_rcv_space_adjust)(void *, struct sock *); +struct cqhci_host { + const struct cqhci_host_ops *ops; + void *mmio; + struct mmc_host *mmc; + spinlock_t lock; + unsigned int rca; + bool dma64; + int num_slots; + int qcnt; + u32 dcmd_slot; + u32 caps; + u32 quirks; + bool enabled; + bool halted; + bool init_done; + bool activated; + bool waiting_for_idle; + bool recovery_halt; + size_t desc_size; + size_t data_size; + u8 *desc_base; + u8 slot_sz; + u8 task_desc_len; + u8 link_desc_len; + u8 *trans_desc_base; + u8 trans_desc_len; + dma_addr_t desc_dma_base; + dma_addr_t trans_desc_dma_base; + struct completion halt_comp; + wait_queue_head_t wait_queue; + struct cqhci_slot *slot; +}; -typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, const struct request_sock *); +struct sdhci_arasan_soc_ctl_map; -typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *); +struct sdhci_pltfm_data; -typedef void (*btf_trace_tcp_bad_csum)(void *, const struct sk_buff *); +struct sdhci_arasan_clk_ops; -typedef void (*btf_trace_tcp_cong_state_set)(void *, struct sock *, const u8); +struct sdhci_arasan_of_data { + const struct sdhci_arasan_soc_ctl_map *soc_ctl_map; + const struct sdhci_pltfm_data *pdata; + const struct sdhci_arasan_clk_ops *clk_ops; +}; -typedef void (*btf_trace_fib_table_lookup)(void *, u32, const struct flowi4 *, const struct fib_nh_common *, int); +struct sdhci_arasan_soc_ctl_field { + u32 reg; + u16 width; + s16 shift; +}; -typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *); +struct sdhci_arasan_soc_ctl_map { + struct sdhci_arasan_soc_ctl_field baseclkfreq; + struct sdhci_arasan_soc_ctl_field clockmultiplier; + struct sdhci_arasan_soc_ctl_field support64b; + bool hiword_update; +}; -typedef void (*btf_trace_qdisc_enqueue)(void *, struct Qdisc *, const struct netdev_queue *, struct sk_buff *); +struct sdhci_pltfm_data { + const struct sdhci_ops *ops; + unsigned int quirks; + unsigned int quirks2; +}; -typedef void (*btf_trace_qdisc_reset)(void *, struct Qdisc *); +struct sdhci_arasan_clk_ops { + const struct clk_ops *sdcardclk_ops; + const struct clk_ops *sampleclk_ops; +}; -typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *); +enum pm_api_id { + PM_GET_API_VERSION = 1, + PM_REGISTER_NOTIFIER = 5, + PM_FORCE_POWERDOWN = 8, + PM_REQUEST_WAKEUP = 10, + PM_SYSTEM_SHUTDOWN = 12, + PM_REQUEST_NODE = 13, + PM_RELEASE_NODE = 14, + PM_SET_REQUIREMENT = 15, + PM_RESET_ASSERT = 17, + PM_RESET_GET_STATUS = 18, + PM_MMIO_WRITE = 19, + PM_MMIO_READ = 20, + PM_PM_INIT_FINALIZE = 21, + PM_FPGA_LOAD = 22, + PM_FPGA_GET_STATUS = 23, + PM_GET_CHIPID = 24, + PM_SECURE_SHA = 26, + PM_PINCTRL_REQUEST = 28, + PM_PINCTRL_RELEASE = 29, + PM_PINCTRL_GET_FUNCTION = 30, + PM_PINCTRL_SET_FUNCTION = 31, + PM_PINCTRL_CONFIG_PARAM_GET = 32, + PM_PINCTRL_CONFIG_PARAM_SET = 33, + PM_IOCTL = 34, + PM_QUERY_DATA = 35, + PM_CLOCK_ENABLE = 36, + PM_CLOCK_DISABLE = 37, + PM_CLOCK_GETSTATE = 38, + PM_CLOCK_SETDIVIDER = 39, + PM_CLOCK_GETDIVIDER = 40, + PM_CLOCK_SETRATE = 41, + PM_CLOCK_GETRATE = 42, + PM_CLOCK_SETPARENT = 43, + PM_CLOCK_GETPARENT = 44, + PM_FPGA_READ = 46, + PM_SECURE_AES = 47, + PM_FEATURE_CHECK = 63, +}; -typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32); +enum pm_ioctl_id { + IOCTL_GET_RPU_OPER_MODE = 0, + IOCTL_SET_RPU_OPER_MODE = 1, + IOCTL_RPU_BOOT_ADDR_CONFIG = 2, + IOCTL_TCM_COMB_CONFIG = 3, + IOCTL_SET_TAPDELAY_BYPASS = 4, + IOCTL_SD_DLL_RESET = 6, + IOCTL_SET_SD_TAPDELAY = 7, + IOCTL_SET_PLL_FRAC_MODE = 8, + IOCTL_GET_PLL_FRAC_MODE = 9, + IOCTL_SET_PLL_FRAC_DATA = 10, + IOCTL_GET_PLL_FRAC_DATA = 11, + IOCTL_WRITE_GGS = 12, + IOCTL_READ_GGS = 13, + IOCTL_WRITE_PGGS = 14, + IOCTL_READ_PGGS = 15, + IOCTL_SET_BOOT_HEALTH_STATUS = 17, + IOCTL_OSPI_MUX_SELECT = 21, + IOCTL_REGISTER_SGI = 25, + IOCTL_SET_FEATURE_CONFIG = 26, + IOCTL_GET_FEATURE_CONFIG = 27, + IOCTL_SET_SD_CONFIG = 30, + IOCTL_SET_GEM_CONFIG = 31, +}; -typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32); +enum pm_node_id { + NODE_SD_0 = 39, + NODE_SD_1 = 40, +}; -typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, const struct page *, u32); +enum dll_reset_type { + PM_DLL_RESET_ASSERT = 0, + PM_DLL_RESET_RELEASE = 1, + PM_DLL_RESET_PULSE = 2, +}; -typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, const struct page *, u32); +enum pm_sd_config_type { + SD_CONFIG_EMMC_SEL = 1, + SD_CONFIG_BASECLK = 2, + SD_CONFIG_8BIT = 3, + SD_CONFIG_FIXED = 4, +}; -typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int); +enum tap_delay_type { + PM_TAPDELAY_INPUT = 0, + PM_TAPDELAY_OUTPUT = 1, +}; -typedef void (*btf_trace_neigh_create)(void *, struct neigh_table *, struct net_device *, const void *, const struct neighbour *, bool); +struct sdhci_arasan_clk_data { + struct clk_hw sdcardclk_hw; + struct clk *sdcardclk; + struct clk_hw sampleclk_hw; + struct clk *sampleclk; + int clk_phase_in[11]; + int clk_phase_out[11]; + void (*set_clk_delays)(struct sdhci_host *); + void *clk_of_data; +}; -typedef void (*btf_trace_neigh_update)(void *, struct neighbour *, const u8 *, u8, u32, u32); +struct sdhci_arasan_data { + struct sdhci_host *host; + struct clk *clk_ahb; + struct phy *phy; + bool is_phy_on; + bool internal_phy_reg; + bool has_cqe; + struct sdhci_arasan_clk_data clk_data; + const struct sdhci_arasan_clk_ops *clk_ops; + struct regmap *soc_ctl_base; + const struct sdhci_arasan_soc_ctl_map *soc_ctl_map; + unsigned int quirks; +}; -typedef void (*btf_trace_neigh_update_done)(void *, struct neighbour *, int); +struct sdhci_pltfm_host { + struct clk *clk; + unsigned int clock; + u16 xfer_mode_shadow; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + unsigned long private[0]; +}; -typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int); +struct virtqueue { + struct list_head list; + void (*callback)(struct virtqueue *); + const char *name; + struct virtio_device *vdev; + unsigned int index; + unsigned int num_free; + unsigned int num_max; + bool reset; + void *priv; +}; -typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int); +struct virtio_shm_region { + u64 addr; + u64 len; +}; -typedef void (*btf_trace_neigh_event_send_dead)(void *, struct neighbour *, int); +struct rproc_subdev { + struct list_head node; + int (*prepare)(struct rproc_subdev *); + int (*start)(struct rproc_subdev *); + void (*stop)(struct rproc_subdev *, bool); + void (*unprepare)(struct rproc_subdev *); +}; -typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, int); +struct rproc_vdev; -enum tcp_ca_state { - TCP_CA_Open = 0, - TCP_CA_Disorder = 1, - TCP_CA_CWR = 2, - TCP_CA_Recovery = 3, - TCP_CA_Loss = 4, +struct rproc_vring { + void *va; + int num; + u32 da; + u32 align; + int notifyid; + struct rproc_vdev *rvdev; + struct virtqueue *vq; }; -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 rproc_vdev { + struct rproc_subdev subdev; + struct platform_device *pdev; + unsigned int id; + struct list_head node; + struct rproc *rproc; + struct rproc_vring vring[2]; + u32 rsc_offset; + u32 index; }; -struct trace_event_raw_consume_skb { - struct trace_entry ent; - void *skbaddr; - void *location; - char __data[0]; +struct fw_rsc_vdev_vring { + u32 da; + u32 align; + u32 num; + u32 notifyid; + u32 pa; }; -struct trace_event_raw_skb_copy_datagram_iovec { - struct trace_entry ent; - const void *skbaddr; - int len; - char __data[0]; +struct fw_rsc_vdev { + u32 id; + u32 notifyid; + u32 dfeatures; + u32 gfeatures; + u32 config_len; + u8 status; + u8 num_of_vrings; + u8 reserved[2]; + struct fw_rsc_vdev_vring vring[0]; }; -struct trace_event_raw_net_dev_start_xmit { - struct trace_entry ent; +struct rproc_mem_entry { + void *va; + bool is_iomem; + dma_addr_t dma; + size_t len; + u32 da; + void *priv; + char name[32]; + struct list_head node; + u32 rsc_offset; + u32 flags; + u32 of_resm_idx; + int (*alloc)(struct rproc *, struct rproc_mem_entry *); + int (*release)(struct rproc *, struct rproc_mem_entry *); +}; + +struct rproc_vdev_data { + u32 rsc_offset; + unsigned int id; + u32 index; + struct fw_rsc_vdev *rsc; +}; + +enum iio_chan_info_enum { + IIO_CHAN_INFO_RAW = 0, + IIO_CHAN_INFO_PROCESSED = 1, + IIO_CHAN_INFO_SCALE = 2, + IIO_CHAN_INFO_OFFSET = 3, + IIO_CHAN_INFO_CALIBSCALE = 4, + IIO_CHAN_INFO_CALIBBIAS = 5, + IIO_CHAN_INFO_PEAK = 6, + IIO_CHAN_INFO_PEAK_SCALE = 7, + IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW = 8, + IIO_CHAN_INFO_AVERAGE_RAW = 9, + IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY = 10, + IIO_CHAN_INFO_HIGH_PASS_FILTER_3DB_FREQUENCY = 11, + IIO_CHAN_INFO_SAMP_FREQ = 12, + IIO_CHAN_INFO_FREQUENCY = 13, + IIO_CHAN_INFO_PHASE = 14, + IIO_CHAN_INFO_HARDWAREGAIN = 15, + IIO_CHAN_INFO_HYSTERESIS = 16, + IIO_CHAN_INFO_HYSTERESIS_RELATIVE = 17, + IIO_CHAN_INFO_INT_TIME = 18, + IIO_CHAN_INFO_ENABLE = 19, + IIO_CHAN_INFO_CALIBHEIGHT = 20, + IIO_CHAN_INFO_CALIBWEIGHT = 21, + IIO_CHAN_INFO_DEBOUNCE_COUNT = 22, + IIO_CHAN_INFO_DEBOUNCE_TIME = 23, + IIO_CHAN_INFO_CALIBEMISSIVITY = 24, + IIO_CHAN_INFO_OVERSAMPLING_RATIO = 25, + IIO_CHAN_INFO_THERMOCOUPLE_TYPE = 26, + IIO_CHAN_INFO_CALIBAMBIENT = 27, + IIO_CHAN_INFO_ZEROPOINT = 28, +}; + +enum iio_available_type { + IIO_AVAIL_LIST = 0, + IIO_AVAIL_RANGE = 1, +}; + +struct iio_map; + +struct iio_map_internal { + struct iio_dev *indio_dev; + struct iio_map *map; + struct list_head l; +}; + +struct iio_map { + const char *adc_channel_label; + const char *consumer_dev_name; + const char *consumer_channel; + void *consumer_data; +}; + +struct iio_channel { + struct iio_dev *indio_dev; + const struct iio_chan_spec *channel; + void *data; +}; + +enum iio_buffer_direction { + IIO_BUFFER_DIRECTION_IN = 0, + IIO_BUFFER_DIRECTION_OUT = 1, +}; + +struct iio_buffer_access_funcs; + +struct iio_dev_attr; + +struct iio_buffer { + unsigned int length; + unsigned long flags; + size_t bytes_per_datum; + enum iio_buffer_direction direction; + const struct iio_buffer_access_funcs *access; + long *scan_mask; + struct list_head demux_list; + wait_queue_head_t pollq; + unsigned int watermark; + bool scan_timestamp; + struct list_head buffer_attr_list; + struct attribute_group buffer_group; + const struct iio_dev_attr **attrs; + void *demux_bounce; + struct list_head attached_entry; + struct list_head buffer_list; + struct kref ref; +}; + +struct iio_buffer_access_funcs { + int (*store_to)(struct iio_buffer *, const void *); + int (*read)(struct iio_buffer *, size_t, char __attribute__((btf_type_tag("user"))) *); + size_t (*data_available)(struct iio_buffer *); + int (*remove_from)(struct iio_buffer *, void *); + int (*write)(struct iio_buffer *, size_t, const char __attribute__((btf_type_tag("user"))) *); + size_t (*space_available)(struct iio_buffer *); + int (*request_update)(struct iio_buffer *); + int (*set_bytes_per_datum)(struct iio_buffer *, size_t); + int (*set_length)(struct iio_buffer *, unsigned int); + int (*enable)(struct iio_buffer *, struct iio_dev *); + int (*disable)(struct iio_buffer *, struct iio_dev *); + void (*release)(struct iio_buffer *); + unsigned int modes; + unsigned int flags; +}; + +struct iio_dev_attr { + struct device_attribute dev_attr; + u64 address; + struct list_head l; + const struct iio_chan_spec *c; + struct iio_buffer *buffer; +}; + +struct tee_desc; + +struct tee_shm_pool; + +struct tee_device { + char name[32]; + const struct tee_desc *desc; + int id; + unsigned int flags; + long: 32; + struct device dev; + struct cdev cdev; + size_t num_users; + struct completion c_no_users; + struct mutex mutex; + struct idr idr; + struct tee_shm_pool *pool; + long: 32; +}; + +struct tee_driver_ops; + +struct tee_desc { + const char *name; + const struct tee_driver_ops *ops; + struct module *owner; + u32 flags; +}; + +struct tee_driver_ops { + void (*get_version)(struct tee_device *, struct tee_ioctl_version_data *); + int (*open)(struct tee_context *); + void (*release)(struct tee_context *); + int (*open_session)(struct tee_context *, struct tee_ioctl_open_session_arg *, struct tee_param *); + int (*close_session)(struct tee_context *, u32); + int (*invoke_func)(struct tee_context *, struct tee_ioctl_invoke_arg *, struct tee_param *); + int (*cancel_req)(struct tee_context *, u32, u32); + int (*supp_recv)(struct tee_context *, u32 *, u32 *, struct tee_param *); + int (*supp_send)(struct tee_context *, u32, u32, struct tee_param *); + int (*shm_register)(struct tee_context *, struct tee_shm *, struct page **, size_t, unsigned long); + int (*shm_unregister)(struct tee_context *, struct tee_shm *); +}; + +struct tee_shm_pool_ops; + +struct tee_shm_pool { + const struct tee_shm_pool_ops *ops; + void *private_data; +}; + +struct tee_shm_pool_ops { + int (*alloc)(struct tee_shm_pool *, struct tee_shm *, size_t, size_t); + void (*free)(struct tee_shm_pool *, struct tee_shm *); + void (*destroy_pool)(struct tee_shm_pool *); +}; + +struct tee_ioctl_buf_data { + __u64 buf_ptr; + __u64 buf_len; +}; + +struct tee_ioctl_shm_register_data { + __u64 addr; + __u64 length; + __u32 flags; + __s32 id; +}; + +struct tee_iocl_supp_recv_arg { + __u32 func; + __u32 num_params; + struct tee_ioctl_param params[0]; +}; + +struct tee_iocl_supp_send_arg { + __u32 ret; + __u32 num_params; + struct tee_ioctl_param params[0]; +}; + +struct tee_ioctl_close_session_arg { + __u32 session; +}; + +struct tee_ioctl_cancel_arg { + __u32 cancel_id; + __u32 session; +}; + +struct tee_ioctl_shm_alloc_data { + __u64 size; + __u32 flags; + __s32 id; +}; + +struct match_dev_data { + struct tee_ioctl_version_data *vers; + const void *data; + int (*match)(struct tee_ioctl_version_data *, const void *); +}; + +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); + +enum tcp_ca_state { + TCP_CA_Open = 0, + TCP_CA_Disorder = 1, + TCP_CA_CWR = 2, + TCP_CA_Recovery = 3, + TCP_CA_Loss = 4, +}; + +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; @@ -62532,6 +69931,27 @@ struct trace_event_raw_tcp_event_sk { char __data[0]; }; +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 trace_event_raw_tcp_retransmit_synack { struct trace_entry ent; const void *skaddr; @@ -62850,347 +70270,457 @@ struct trace_event_data_offsets_page_pool_state_hold {}; struct trace_event_data_offsets_page_pool_update_nid {}; -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); +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, }; -struct net_offload { - struct offload_callbacks callbacks; - unsigned int flags; +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 { - 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, + ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0, + ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 1, + ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 2, }; -union tcp_word_hdr { - struct tcphdr hdr; - __be32 words[5]; +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, }; -struct napi_gro_cb { - union { - struct { - void *frag0; - unsigned int frag0_len; - }; - struct { - struct sk_buff *last; - unsigned long age; - }; - }; - int data_offset; - u16 flush; - u16 flush_id; - u16 count; - u16 proto; - union { - struct { - u16 gro_remcsum_start; - u8 same_flow: 1; - u8 encap_mark: 1; - u8 csum_valid: 1; - u8 csum_cnt: 3; - u8 free: 2; - u8 is_ipv6: 1; - u8 is_fou: 1; - u8 is_atomic: 1; - u8 recursion_counter: 4; - u8 is_flist: 1; - }; - struct { - u16 gro_remcsum_start; - u8 same_flow: 1; - u8 encap_mark: 1; - u8 csum_valid: 1; - u8 csum_cnt: 3; - u8 free: 2; - u8 is_ipv6: 1; - u8 is_fou: 1; - u8 is_atomic: 1; - u8 recursion_counter: 4; - u8 is_flist: 1; - } zeroed; - }; - __wsum csum; +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, }; -struct skb_gso_cb { - union { - int mac_offset; - int data_offset; - }; - int encap_level; - __wsum csum; - __u16 csum_start; +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, }; -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 *); +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, }; -struct udp_tunnel_info { - unsigned short type; - sa_family_t sa_family; - __be16 port; - u8 hw_priv; +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, }; -struct udp_tunnel_nic_shared { - struct udp_tunnel_nic *udp_tunnel_nic_info; - struct list_head devices; +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 { - 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, + 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 { - SKBFL_ZEROCOPY_ENABLE = 1, - SKBFL_SHARED_FRAG = 2, - SKBFL_PURE_ZEROCOPY = 4, - SKBFL_DONT_ORPHAN = 8, - SKBFL_MANAGED_FRAG_REFS = 16, + 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, }; -struct frag_hdr { - __u8 nexthdr; - __u8 reserved; - __be16 frag_off; - __be32 identification; +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, }; -struct mmpin { - struct user_struct *user; - unsigned int num_pg; +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 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; +enum { + LINUX_MIB_NUM = 0, + LINUX_MIB_SYNCOOKIESSENT = 1, + LINUX_MIB_SYNCOOKIESRECV = 2, + LINUX_MIB_SYNCOOKIESFAILED = 3, + LINUX_MIB_EMBRYONICRSTS = 4, + LINUX_MIB_PRUNECALLED = 5, + LINUX_MIB_RCVPRUNED = 6, + LINUX_MIB_OFOPRUNED = 7, + LINUX_MIB_OUTOFWINDOWICMPS = 8, + LINUX_MIB_LOCKDROPPEDICMPS = 9, + LINUX_MIB_ARPFILTER = 10, + LINUX_MIB_TIMEWAITED = 11, + LINUX_MIB_TIMEWAITRECYCLED = 12, + LINUX_MIB_TIMEWAITKILLED = 13, + LINUX_MIB_PAWSACTIVEREJECTED = 14, + LINUX_MIB_PAWSESTABREJECTED = 15, + LINUX_MIB_DELAYEDACKS = 16, + LINUX_MIB_DELAYEDACKLOCKED = 17, + LINUX_MIB_DELAYEDACKLOST = 18, + LINUX_MIB_LISTENOVERFLOWS = 19, + LINUX_MIB_LISTENDROPS = 20, + LINUX_MIB_TCPHPHITS = 21, + LINUX_MIB_TCPPUREACKS = 22, + LINUX_MIB_TCPHPACKS = 23, + LINUX_MIB_TCPRENORECOVERY = 24, + LINUX_MIB_TCPSACKRECOVERY = 25, + LINUX_MIB_TCPSACKRENEGING = 26, + LINUX_MIB_TCPSACKREORDER = 27, + LINUX_MIB_TCPRENOREORDER = 28, + LINUX_MIB_TCPTSREORDER = 29, + LINUX_MIB_TCPFULLUNDO = 30, + LINUX_MIB_TCPPARTIALUNDO = 31, + LINUX_MIB_TCPDSACKUNDO = 32, + LINUX_MIB_TCPLOSSUNDO = 33, + LINUX_MIB_TCPLOSTRETRANSMIT = 34, + LINUX_MIB_TCPRENOFAILURES = 35, + LINUX_MIB_TCPSACKFAILURES = 36, + LINUX_MIB_TCPLOSSFAILURES = 37, + LINUX_MIB_TCPFASTRETRANS = 38, + LINUX_MIB_TCPSLOWSTARTRETRANS = 39, + LINUX_MIB_TCPTIMEOUTS = 40, + LINUX_MIB_TCPLOSSPROBES = 41, + LINUX_MIB_TCPLOSSPROBERECOVERY = 42, + LINUX_MIB_TCPRENORECOVERYFAIL = 43, + LINUX_MIB_TCPSACKRECOVERYFAIL = 44, + LINUX_MIB_TCPRCVCOLLAPSED = 45, + LINUX_MIB_TCPDSACKOLDSENT = 46, + LINUX_MIB_TCPDSACKOFOSENT = 47, + LINUX_MIB_TCPDSACKRECV = 48, + LINUX_MIB_TCPDSACKOFORECV = 49, + LINUX_MIB_TCPABORTONDATA = 50, + LINUX_MIB_TCPABORTONCLOSE = 51, + LINUX_MIB_TCPABORTONMEMORY = 52, + LINUX_MIB_TCPABORTONTIMEOUT = 53, + LINUX_MIB_TCPABORTONLINGER = 54, + LINUX_MIB_TCPABORTFAILED = 55, + LINUX_MIB_TCPMEMORYPRESSURES = 56, + LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 57, + LINUX_MIB_TCPSACKDISCARD = 58, + LINUX_MIB_TCPDSACKIGNOREDOLD = 59, + LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 60, + LINUX_MIB_TCPSPURIOUSRTOS = 61, + LINUX_MIB_TCPMD5NOTFOUND = 62, + LINUX_MIB_TCPMD5UNEXPECTED = 63, + LINUX_MIB_TCPMD5FAILURE = 64, + LINUX_MIB_SACKSHIFTED = 65, + LINUX_MIB_SACKMERGED = 66, + LINUX_MIB_SACKSHIFTFALLBACK = 67, + LINUX_MIB_TCPBACKLOGDROP = 68, + LINUX_MIB_PFMEMALLOCDROP = 69, + LINUX_MIB_TCPMINTTLDROP = 70, + LINUX_MIB_TCPDEFERACCEPTDROP = 71, + LINUX_MIB_IPRPFILTER = 72, + LINUX_MIB_TCPTIMEWAITOVERFLOW = 73, + LINUX_MIB_TCPREQQFULLDOCOOKIES = 74, + LINUX_MIB_TCPREQQFULLDROP = 75, + LINUX_MIB_TCPRETRANSFAIL = 76, + LINUX_MIB_TCPRCVCOALESCE = 77, + LINUX_MIB_TCPBACKLOGCOALESCE = 78, + LINUX_MIB_TCPOFOQUEUE = 79, + LINUX_MIB_TCPOFODROP = 80, + LINUX_MIB_TCPOFOMERGE = 81, + LINUX_MIB_TCPCHALLENGEACK = 82, + LINUX_MIB_TCPSYNCHALLENGE = 83, + LINUX_MIB_TCPFASTOPENACTIVE = 84, + LINUX_MIB_TCPFASTOPENACTIVEFAIL = 85, + LINUX_MIB_TCPFASTOPENPASSIVE = 86, + LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 87, + LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 88, + LINUX_MIB_TCPFASTOPENCOOKIEREQD = 89, + LINUX_MIB_TCPFASTOPENBLACKHOLE = 90, + LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 91, + LINUX_MIB_BUSYPOLLRXPACKETS = 92, + LINUX_MIB_TCPAUTOCORKING = 93, + LINUX_MIB_TCPFROMZEROWINDOWADV = 94, + LINUX_MIB_TCPTOZEROWINDOWADV = 95, + LINUX_MIB_TCPWANTZEROWINDOWADV = 96, + LINUX_MIB_TCPSYNRETRANS = 97, + LINUX_MIB_TCPORIGDATASENT = 98, + LINUX_MIB_TCPHYSTARTTRAINDETECT = 99, + LINUX_MIB_TCPHYSTARTTRAINCWND = 100, + LINUX_MIB_TCPHYSTARTDELAYDETECT = 101, + LINUX_MIB_TCPHYSTARTDELAYCWND = 102, + LINUX_MIB_TCPACKSKIPPEDSYNRECV = 103, + LINUX_MIB_TCPACKSKIPPEDPAWS = 104, + LINUX_MIB_TCPACKSKIPPEDSEQ = 105, + LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 106, + LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 107, + LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 108, + LINUX_MIB_TCPWINPROBE = 109, + LINUX_MIB_TCPKEEPALIVE = 110, + LINUX_MIB_TCPMTUPFAIL = 111, + LINUX_MIB_TCPMTUPSUCCESS = 112, + LINUX_MIB_TCPDELIVERED = 113, + LINUX_MIB_TCPDELIVEREDCE = 114, + LINUX_MIB_TCPACKCOMPRESSED = 115, + LINUX_MIB_TCPZEROWINDOWDROP = 116, + LINUX_MIB_TCPRCVQDROP = 117, + LINUX_MIB_TCPWQUEUETOOBIG = 118, + LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 119, + LINUX_MIB_TCPTIMEOUTREHASH = 120, + LINUX_MIB_TCPDUPLICATEDATAREHASH = 121, + LINUX_MIB_TCPDSACKRECVSEGS = 122, + LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 123, + LINUX_MIB_TCPMIGRATEREQSUCCESS = 124, + LINUX_MIB_TCPMIGRATEREQFAILURE = 125, + LINUX_MIB_TCPPLBREHASH = 126, + LINUX_MIB_TCPAOREQUIRED = 127, + LINUX_MIB_TCPAOBAD = 128, + LINUX_MIB_TCPAOKEYNOTFOUND = 129, + LINUX_MIB_TCPAOGOOD = 130, + LINUX_MIB_TCPAODROPPEDICMPS = 131, + __LINUX_MIB_MAX = 132, }; -struct flow_dissector_key_control { - u16 thoff; - u16 addr_type; - u32 flags; +struct icmp_filter { + __u32 data; }; -struct flow_dissector_key_basic { - __be16 n_proto; - u8 ip_proto; - u8 padding; +struct raw_sock { + struct inet_sock inet; + struct icmp_filter filter; + u32 ipmr_table; }; -struct flow_dissector_key_tags { - u32 flow_label; +struct ipcm_cookie { + struct sockcm_cookie sockc; + __be32 addr; + int oif; + struct ip_options_rcu *opt; + __u8 protocol; + __u8 ttl; + __s16 tos; + char priority; + __u16 gso_size; + long: 32; }; -struct flow_dissector_key_vlan { +struct raw_frag_vec { + struct msghdr *msg; 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 icmphdr icmph; + char c[1]; + } hdr; + int hlen; }; -struct flow_dissector_key_keyid { - __be32 keyid; +struct seq_net_private {}; + +struct raw_iter_state { + struct seq_net_private p; + int bucket; }; -struct flow_dissector_key_ports { - union { - __be32 ports; - struct { - __be16 src; - __be16 dst; - }; - }; +struct ip_options_data { + struct ip_options_rcu opt; + char data[40]; }; -struct flow_dissector_key_icmp { - struct { - u8 type; - u8 code; - }; - u16 id; +enum metadata_type { + METADATA_IP_TUNNEL = 0, + METADATA_HW_PORT_MUX = 1, + METADATA_MACSEC = 2, + METADATA_XFRM = 3, }; -struct flow_dissector_key_ipv4_addrs { - __be32 src; - __be32 dst; +enum { + IFLA_UNSPEC = 0, + IFLA_ADDRESS = 1, + IFLA_BROADCAST = 2, + IFLA_IFNAME = 3, + IFLA_MTU = 4, + IFLA_LINK = 5, + IFLA_QDISC = 6, + IFLA_STATS = 7, + IFLA_COST = 8, + IFLA_PRIORITY = 9, + IFLA_MASTER = 10, + IFLA_WIRELESS = 11, + IFLA_PROTINFO = 12, + IFLA_TXQLEN = 13, + IFLA_MAP = 14, + IFLA_WEIGHT = 15, + IFLA_OPERSTATE = 16, + IFLA_LINKMODE = 17, + IFLA_LINKINFO = 18, + IFLA_NET_NS_PID = 19, + IFLA_IFALIAS = 20, + IFLA_NUM_VF = 21, + IFLA_VFINFO_LIST = 22, + IFLA_STATS64 = 23, + IFLA_VF_PORTS = 24, + IFLA_PORT_SELF = 25, + IFLA_AF_SPEC = 26, + IFLA_GROUP = 27, + IFLA_NET_NS_FD = 28, + IFLA_EXT_MASK = 29, + IFLA_PROMISCUITY = 30, + IFLA_NUM_TX_QUEUES = 31, + IFLA_NUM_RX_QUEUES = 32, + IFLA_CARRIER = 33, + IFLA_PHYS_PORT_ID = 34, + IFLA_CARRIER_CHANGES = 35, + IFLA_PHYS_SWITCH_ID = 36, + IFLA_LINK_NETNSID = 37, + IFLA_PHYS_PORT_NAME = 38, + IFLA_PROTO_DOWN = 39, + IFLA_GSO_MAX_SEGS = 40, + IFLA_GSO_MAX_SIZE = 41, + IFLA_PAD = 42, + IFLA_XDP = 43, + IFLA_EVENT = 44, + IFLA_NEW_NETNSID = 45, + IFLA_IF_NETNSID = 46, + IFLA_TARGET_NETNSID = 46, + IFLA_CARRIER_UP_COUNT = 47, + IFLA_CARRIER_DOWN_COUNT = 48, + IFLA_NEW_IFINDEX = 49, + IFLA_MIN_MTU = 50, + IFLA_MAX_MTU = 51, + IFLA_PROP_LIST = 52, + IFLA_ALT_IFNAME = 53, + IFLA_PERM_ADDRESS = 54, + IFLA_PROTO_DOWN_REASON = 55, + IFLA_PARENT_DEV_NAME = 56, + IFLA_PARENT_DEV_BUS_NAME = 57, + IFLA_GRO_MAX_SIZE = 58, + IFLA_TSO_MAX_SIZE = 59, + IFLA_TSO_MAX_SEGS = 60, + IFLA_ALLMULTI = 61, + IFLA_DEVLINK_PORT = 62, + IFLA_GSO_IPV4_MAX_SIZE = 63, + IFLA_GRO_IPV4_MAX_SIZE = 64, + IFLA_DPLL_PIN = 65, + __IFLA_MAX = 66, }; -struct flow_dissector_key_ipv6_addrs { - struct in6_addr src; - struct in6_addr dst; +enum tunnel_encap_types { + TUNNEL_ENCAP_NONE = 0, + TUNNEL_ENCAP_FOU = 1, + TUNNEL_ENCAP_GUE = 2, + TUNNEL_ENCAP_MPLS = 3, }; -struct flow_dissector_key_tipc { - __be32 key; +struct dst_cache_pcpu; + +struct dst_cache { + struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache; + unsigned long reset_ts; }; -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 ip_tunnel_encap { + u16 type; + u16 flags; + __be16 sport; + __be16 dport; }; -struct flow_keys { - struct flow_dissector_key_control control; - struct flow_dissector_key_basic basic; - struct flow_dissector_key_tags tags; - struct flow_dissector_key_vlan vlan; - struct flow_dissector_key_vlan cvlan; - struct flow_dissector_key_keyid keyid; - struct flow_dissector_key_ports ports; - struct flow_dissector_key_icmp icmp; - struct flow_dissector_key_addrs addrs; - long: 32; +struct gro_cell; + +struct gro_cells { + struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells; }; -struct ipv4_addr_key { - __be32 addr; - int vif; +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 inetpeer_addr { +struct dst_cache_pcpu { + unsigned long refresh_ts; + struct dst_entry *dst; + u32 cookie; union { - struct ipv4_addr_key a4; - struct in6_addr a6; - u32 key[4]; + struct in_addr in_saddr; + struct in6_addr in6_saddr; }; - __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 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_fraglist_iter { - struct ipv6hdr *tmp_hdr; - struct sk_buff *frag; - int offset; - unsigned int hlen; - __be32 frag_id; - u8 nexthdr; +struct gro_cell { + struct sk_buff_head napi_skbs; + struct napi_struct napi; }; -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 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; - long: 32; - __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 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 ip_tunnel_encap_ops { + size_t (*encap_hlen)(struct ip_tunnel_encap *); + int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *); + int (*err_handler)(struct sk_buff *, u32); }; struct ip_tunnel_key { @@ -63209,9 +70739,11 @@ struct ip_tunnel_key { u8 tos; u8 ttl; __be32 label; + u32 nhid; __be16 tp_src; __be16 tp_dst; __u8 flow_flags; + long: 32; }; struct ip_tunnel_info { @@ -63223,1073 +70755,1173 @@ struct ip_tunnel_info { long: 32; }; -struct kernel_hwtstamp_config; - -struct dsa_stubs { - int (*master_hwtstamp_validate)(struct net_device *, const struct kernel_hwtstamp_config *, struct netlink_ext_ack *); -}; - -struct kernel_hwtstamp_config { - int flags; - int tx_type; - int rx_filter; +struct hw_port_info { + struct net_device *lower_dev; + u32 port_id; }; -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 *); +typedef u64 sci_t; -enum rpc_gss_svc { - RPC_GSS_SVC_NONE = 1, - RPC_GSS_SVC_INTEGRITY = 2, - RPC_GSS_SVC_PRIVACY = 3, +struct macsec_info { + sci_t sci; }; -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; +struct xfrm_md_info { + u32 if_id; + int link; + struct dst_entry *dst_orig; }; -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 metadata_dst { + struct dst_entry dst; + enum metadata_type type; + long: 32; + 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 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; +struct vlan_hdr { + __be16 h_vlan_TCI; + __be16 h_vlan_encapsulated_proto; }; -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; +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; +}; -typedef void (*btf_trace_rpcgss_svc_authenticate)(void *, const struct svc_rqst *, const struct rpc_gss_wire_cred *); +struct tnl_ptk_info { + __be16 flags; + __be16 proto; + __be32 key; + __be32 seq; + int hdr_len; +}; -struct rpc_gss_wire_cred { - u32 gc_v; - u32 gc_proc; - u32 gc_seq; - u32 gc_svc; - struct xdr_netobj gc_ctx; +struct xfrm_input_afinfo { + u8 family; + bool is_ipip; + int (*callback)(struct sk_buff *, u8, int); }; -typedef void (*btf_trace_rpcgss_unwrap_failed)(void *, const struct rpc_task *); +struct xfrm_trans_tasklet { + struct work_struct work; + spinlock_t queue_lock; + struct sk_buff_head queue; +}; -typedef void (*btf_trace_rpcgss_bad_seqno)(void *, const struct rpc_task *, u32, u32); +enum { + XFRM_MODE_FLAG_TUNNEL = 1, +}; -typedef void (*btf_trace_rpcgss_seqno)(void *, const struct rpc_task *); +struct xfrm_skb_cb { + struct xfrm_tunnel_skb_cb header; + union { + struct { + __u32 low; + __u32 hi; + } output; + struct { + __be32 low; + __be32 hi; + } input; + } seq; +}; -typedef void (*btf_trace_rpcgss_need_reencode)(void *, const struct rpc_task *, u32, bool); +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; +}; -typedef void (*btf_trace_rpcgss_update_slack)(void *, const struct rpc_task *, const struct rpc_auth *); +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; + long: 32; + 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; + long: 32; +}; -typedef void (*btf_trace_rpcgss_svc_seqno_large)(void *, const struct svc_rqst *, u32); +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; +}; -typedef void (*btf_trace_rpcgss_svc_seqno_seen)(void *, const struct svc_rqst *, u32); +struct ip_beet_phdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 padlen; + __u8 reserved; +}; -typedef void (*btf_trace_rpcgss_svc_seqno_low)(void *, const struct svc_rqst *, u32, u32, u32); +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); +}; -typedef void (*btf_trace_rpcgss_upcall_msg)(void *, const char *); +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_rpcgss_upcall_result)(void *, u32, int); +struct frag_queue { + struct inet_frag_queue q; + int iif; + __u16 nhoffset; + u8 ecn; +}; -typedef void (*btf_trace_rpcgss_context)(void *, u32, unsigned long, unsigned long, unsigned int, unsigned int, const u8 *); +struct frag_hdr { + __u8 nexthdr; + __u8 reserved; + __be16 frag_off; + __be32 identification; +}; -typedef void (*btf_trace_rpcgss_createauth)(void *, unsigned int, int); +enum { + SEG6_IPTUNNEL_UNSPEC = 0, + SEG6_IPTUNNEL_SRH = 1, + __SEG6_IPTUNNEL_MAX = 2, +}; -typedef void (*btf_trace_rpcgss_oid_to_mech)(void *, const char *); +enum { + SEG6_IPTUN_MODE_INLINE = 0, + SEG6_IPTUN_MODE_ENCAP = 1, + SEG6_IPTUN_MODE_L2ENCAP = 2, + SEG6_IPTUN_MODE_ENCAP_RED = 3, + SEG6_IPTUN_MODE_L2ENCAP_RED = 4, +}; -struct trace_event_raw_rpcgss_import_ctx { - struct trace_entry ent; - int status; - char __data[0]; +struct seg6_iptunnel_encap { + int mode; + struct ipv6_sr_hdr srh[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 seg6_lwt { + struct dst_cache cache; + struct seg6_iptunnel_encap tuninfo[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 rpc_sysfs_xprt_switch { + struct kobject kobject; + struct net *net; + struct rpc_xprt_switch *xprt_switch; + struct rpc_xprt *xprt; }; -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 rpc_sysfs_xprt { + struct kobject kobject; + struct rpc_xprt *xprt; + struct rpc_xprt_switch *xprt_switch; }; -struct trace_event_raw_rpcgss_svc_wrap_failed { - struct trace_entry ent; - u32 xid; - u32 __data_loc_addr; - char __data[0]; +struct sockaddr_un { + __kernel_sa_family_t sun_family; + char sun_path[108]; }; -struct trace_event_raw_rpcgss_svc_unwrap_failed { - struct trace_entry ent; - u32 xid; - u32 __data_loc_addr; - char __data[0]; +struct rpc_cb_add_xprt_calldata { + struct rpc_xprt_switch *xps; + struct rpc_xprt *xprt; }; -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 rpc_add_xprt_test { + void (*add_xprt_test)(struct rpc_clnt *, struct rpc_xprt *, void *); + void *data; }; -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 connect_timeout_data { + unsigned long connect_timeout; + unsigned long reconnect_timeout; }; -struct trace_event_raw_rpcgss_svc_authenticate { - struct trace_entry ent; - u32 seqno; - u32 xid; - u32 __data_loc_addr; - char __data[0]; +enum handshake_msg_type { + HANDSHAKE_MSG_TYPE_UNSPEC = 0, + HANDSHAKE_MSG_TYPE_CLIENTHELLO = 1, + HANDSHAKE_MSG_TYPE_SERVERHELLO = 2, }; -struct trace_event_raw_rpcgss_unwrap_failed { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - char __data[0]; +enum handshake_auth { + HANDSHAKE_AUTH_UNSPEC = 0, + HANDSHAKE_AUTH_UNAUTH = 1, + HANDSHAKE_AUTH_PSK = 2, + HANDSHAKE_AUTH_X509 = 3, }; -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]; +enum { + TLS_ALERT_LEVEL_WARNING = 1, + TLS_ALERT_LEVEL_FATAL = 2, }; -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]; +enum { + TLS_ALERT_DESC_CLOSE_NOTIFY = 0, + TLS_ALERT_DESC_UNEXPECTED_MESSAGE = 10, + TLS_ALERT_DESC_BAD_RECORD_MAC = 20, + TLS_ALERT_DESC_RECORD_OVERFLOW = 22, + TLS_ALERT_DESC_HANDSHAKE_FAILURE = 40, + TLS_ALERT_DESC_BAD_CERTIFICATE = 42, + TLS_ALERT_DESC_UNSUPPORTED_CERTIFICATE = 43, + TLS_ALERT_DESC_CERTIFICATE_REVOKED = 44, + TLS_ALERT_DESC_CERTIFICATE_EXPIRED = 45, + TLS_ALERT_DESC_CERTIFICATE_UNKNOWN = 46, + TLS_ALERT_DESC_ILLEGAL_PARAMETER = 47, + TLS_ALERT_DESC_UNKNOWN_CA = 48, + TLS_ALERT_DESC_ACCESS_DENIED = 49, + TLS_ALERT_DESC_DECODE_ERROR = 50, + TLS_ALERT_DESC_DECRYPT_ERROR = 51, + TLS_ALERT_DESC_TOO_MANY_CIDS_REQUESTED = 52, + TLS_ALERT_DESC_PROTOCOL_VERSION = 70, + TLS_ALERT_DESC_INSUFFICIENT_SECURITY = 71, + TLS_ALERT_DESC_INTERNAL_ERROR = 80, + TLS_ALERT_DESC_INAPPROPRIATE_FALLBACK = 86, + TLS_ALERT_DESC_USER_CANCELED = 90, + TLS_ALERT_DESC_MISSING_EXTENSION = 109, + TLS_ALERT_DESC_UNSUPPORTED_EXTENSION = 110, + TLS_ALERT_DESC_UNRECOGNIZED_NAME = 112, + TLS_ALERT_DESC_BAD_CERTIFICATE_STATUS_RESPONSE = 113, + TLS_ALERT_DESC_UNKNOWN_PSK_IDENTITY = 115, + TLS_ALERT_DESC_CERTIFICATE_REQUIRED = 116, + TLS_ALERT_DESC_NO_APPLICATION_PROTOCOL = 120, }; -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]; +enum { + HANDSHAKE_A_ACCEPT_SOCKFD = 1, + HANDSHAKE_A_ACCEPT_HANDLER_CLASS = 2, + HANDSHAKE_A_ACCEPT_MESSAGE_TYPE = 3, + HANDSHAKE_A_ACCEPT_TIMEOUT = 4, + HANDSHAKE_A_ACCEPT_AUTH_MODE = 5, + HANDSHAKE_A_ACCEPT_PEER_IDENTITY = 6, + HANDSHAKE_A_ACCEPT_CERTIFICATE = 7, + HANDSHAKE_A_ACCEPT_PEERNAME = 8, + __HANDSHAKE_A_ACCEPT_MAX = 9, + HANDSHAKE_A_ACCEPT_MAX = 8, }; -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]; +enum { + TLS_NO_KEYRING = 0, + TLS_NO_PEERID = 0, + TLS_NO_CERT = 0, + TLS_NO_PRIVKEY = 0, }; -struct trace_event_raw_rpcgss_svc_seqno_class { - struct trace_entry ent; - u32 xid; - u32 seqno; - char __data[0]; +enum { + HANDSHAKE_A_X509_CERT = 1, + HANDSHAKE_A_X509_PRIVKEY = 2, + __HANDSHAKE_A_X509_MAX = 3, + HANDSHAKE_A_X509_MAX = 2, }; -struct trace_event_raw_rpcgss_svc_seqno_low { - struct trace_entry ent; - u32 xid; - u32 seqno; - u32 min; - u32 max; - char __data[0]; +enum { + HANDSHAKE_A_DONE_STATUS = 1, + HANDSHAKE_A_DONE_SOCKFD = 2, + HANDSHAKE_A_DONE_REMOTE_AUTH = 3, + __HANDSHAKE_A_DONE_MAX = 4, + HANDSHAKE_A_DONE_MAX = 3, }; -struct trace_event_raw_rpcgss_upcall_msg { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; +struct tls_handshake_req { + void (*th_consumer_done)(void *, int, key_serial_t); + void *th_consumer_data; + int th_type; + unsigned int th_timeout_ms; + int th_auth_mode; + const char *th_peername; + key_serial_t th_keyring; + key_serial_t th_certificate; + key_serial_t th_privkey; + unsigned int th_num_peerids; + key_serial_t th_peerid[5]; }; -struct trace_event_raw_rpcgss_upcall_result { - struct trace_entry ent; - u32 uid; - int result; - char __data[0]; +typedef void (*tls_done_func_t)(void *, int, key_serial_t); + +struct tls_handshake_args { + struct socket *ta_sock; + tls_done_func_t ta_done; + void *ta_data; + const char *ta_peername; + unsigned int ta_timeout_ms; + key_serial_t ta_keyring; + key_serial_t ta_my_cert; + key_serial_t ta_my_privkey; + unsigned int ta_num_peerids; + key_serial_t ta_my_peerids[5]; }; -struct trace_event_raw_rpcgss_context { +typedef void (*btf_trace_initcall_level)(void *, const char *); + +typedef void (*btf_trace_initcall_start)(void *, initcall_t); + +typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int); + +typedef initcall_t initcall_entry_t; + +struct trace_event_raw_initcall_level { struct trace_entry ent; - unsigned long expiry; - unsigned long now; - unsigned int timeout; - u32 window_size; - int len; - u32 __data_loc_acceptor; + u32 __data_loc_level; char __data[0]; }; -struct trace_event_raw_rpcgss_createauth { +struct trace_event_raw_initcall_start { struct trace_entry ent; - unsigned int flavor; - int error; + initcall_t func; char __data[0]; }; -struct trace_event_raw_rpcgss_oid_to_mech { +struct trace_event_raw_initcall_finish { struct trace_entry ent; - u32 __data_loc_oid; + initcall_t func; + int ret; char __data[0]; }; -struct trace_event_data_offsets_rpcgss_ctx_class { - u32 principal; +struct blacklist_entry { + struct list_head next; + char *buf; }; -struct trace_event_data_offsets_rpcgss_svc_gssapi_class { - u32 addr; +struct trace_event_data_offsets_initcall_level { + u32 level; }; -struct trace_event_data_offsets_rpcgss_svc_wrap_failed { - u32 addr; +struct trace_event_data_offsets_initcall_start {}; + +struct trace_event_data_offsets_initcall_finish {}; + +struct cm_ll_data { + int (*split_idlest_reg)(struct clk_omap_reg *, s16 *, u8 *); + int (*wait_module_ready)(u8, s16, u16, u8); + int (*wait_module_idle)(u8, s16, u16, u8); + void (*module_enable)(u8, u8, u16, u16); + void (*module_disable)(u8, u16, u16); + u32 (*xlate_clkctrl)(u8, u16, u16); }; -struct trace_event_data_offsets_rpcgss_svc_unwrap_failed { - u32 addr; +struct omap_domain_base { + u32 pa; + void *va; + s16 offset; }; -struct trace_event_data_offsets_rpcgss_svc_seqno_bad { - u32 addr; +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 trace_event_data_offsets_rpcgss_svc_accept_upcall { - u32 addr; +struct dyn_event { + struct list_head list; + struct dyn_event_operations *ops; }; -struct trace_event_data_offsets_rpcgss_svc_authenticate { - u32 addr; +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, }; -struct trace_event_data_offsets_rpcgss_upcall_msg { - u32 msg; +enum dynevent_type { + DYNEVENT_TYPE_SYNTH = 1, + DYNEVENT_TYPE_KPROBE = 2, + DYNEVENT_TYPE_NONE = 3, }; -struct trace_event_data_offsets_rpcgss_context { - u32 acceptor; +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, }; -struct trace_event_data_offsets_rpcgss_oid_to_mech { - u32 oid; +enum probe_print_type { + PROBE_PRINT_NORMAL = 0, + PROBE_PRINT_RETURN = 1, + PROBE_PRINT_EVENT = 2, }; -struct trace_event_data_offsets_rpcgss_gssapi_event {}; +enum { + TP_ERR_FILE_NOT_FOUND = 0, + TP_ERR_NO_REGULAR_FILE = 1, + TP_ERR_BAD_REFCNT = 2, + TP_ERR_REFCNT_OPEN_BRACE = 3, + TP_ERR_BAD_REFCNT_SUFFIX = 4, + TP_ERR_BAD_UPROBE_OFFS = 5, + TP_ERR_BAD_MAXACT_TYPE = 6, + TP_ERR_BAD_MAXACT = 7, + TP_ERR_MAXACT_TOO_BIG = 8, + TP_ERR_BAD_PROBE_ADDR = 9, + TP_ERR_NON_UNIQ_SYMBOL = 10, + TP_ERR_BAD_RETPROBE = 11, + TP_ERR_NO_TRACEPOINT = 12, + TP_ERR_BAD_ADDR_SUFFIX = 13, + TP_ERR_NO_GROUP_NAME = 14, + TP_ERR_GROUP_TOO_LONG = 15, + TP_ERR_BAD_GROUP_NAME = 16, + TP_ERR_NO_EVENT_NAME = 17, + TP_ERR_EVENT_TOO_LONG = 18, + TP_ERR_BAD_EVENT_NAME = 19, + TP_ERR_EVENT_EXIST = 20, + TP_ERR_RETVAL_ON_PROBE = 21, + TP_ERR_NO_RETVAL = 22, + TP_ERR_BAD_STACK_NUM = 23, + TP_ERR_BAD_ARG_NUM = 24, + TP_ERR_BAD_VAR = 25, + TP_ERR_BAD_REG_NAME = 26, + TP_ERR_BAD_MEM_ADDR = 27, + TP_ERR_BAD_IMM = 28, + TP_ERR_IMMSTR_NO_CLOSE = 29, + TP_ERR_FILE_ON_KPROBE = 30, + TP_ERR_BAD_FILE_OFFS = 31, + TP_ERR_SYM_ON_UPROBE = 32, + TP_ERR_TOO_MANY_OPS = 33, + TP_ERR_DEREF_NEED_BRACE = 34, + TP_ERR_BAD_DEREF_OFFS = 35, + TP_ERR_DEREF_OPEN_BRACE = 36, + TP_ERR_COMM_CANT_DEREF = 37, + TP_ERR_BAD_FETCH_ARG = 38, + TP_ERR_ARRAY_NO_CLOSE = 39, + TP_ERR_BAD_ARRAY_SUFFIX = 40, + TP_ERR_BAD_ARRAY_NUM = 41, + TP_ERR_ARRAY_TOO_BIG = 42, + TP_ERR_BAD_TYPE = 43, + TP_ERR_BAD_STRING = 44, + TP_ERR_BAD_SYMSTRING = 45, + TP_ERR_BAD_BITFIELD = 46, + TP_ERR_ARG_NAME_TOO_LONG = 47, + TP_ERR_NO_ARG_NAME = 48, + TP_ERR_BAD_ARG_NAME = 49, + TP_ERR_USED_ARG_NAME = 50, + TP_ERR_ARG_TOO_LONG = 51, + TP_ERR_NO_ARG_BODY = 52, + TP_ERR_BAD_INSN_BNDRY = 53, + TP_ERR_FAIL_REG_PROBE = 54, + TP_ERR_DIFF_PROBE_TYPE = 55, + TP_ERR_DIFF_ARG_TYPE = 56, + TP_ERR_SAME_PROBE = 57, + TP_ERR_NO_EVENT_INFO = 58, + TP_ERR_BAD_ATTACH_EVENT = 59, + TP_ERR_BAD_ATTACH_ARG = 60, + TP_ERR_NO_EP_FILTER = 61, + TP_ERR_NOSUP_BTFARG = 62, + TP_ERR_NO_BTFARG = 63, + TP_ERR_NO_BTF_ENTRY = 64, + TP_ERR_BAD_VAR_ARGS = 65, + TP_ERR_NOFENTRY_ARGS = 66, + TP_ERR_DOUBLE_ARGS = 67, + TP_ERR_ARGS_2LONG = 68, + TP_ERR_ARGIDX_2BIG = 69, + TP_ERR_NO_PTR_STRCT = 70, + TP_ERR_NOSUP_DAT_ARG = 71, + TP_ERR_BAD_HYPHEN = 72, + TP_ERR_NO_BTF_FIELD = 73, + TP_ERR_BAD_BTF_TID = 74, + TP_ERR_BAD_TYPE4STR = 75, +}; -struct trace_event_data_offsets_rpcgss_import_ctx {}; +enum { + TRACE_EVENT_FL_FILTERED = 1, + TRACE_EVENT_FL_CAP_ANY = 2, + TRACE_EVENT_FL_NO_SET_FILTER = 4, + TRACE_EVENT_FL_IGNORE_ENABLE = 8, + TRACE_EVENT_FL_TRACEPOINT = 16, + TRACE_EVENT_FL_DYNAMIC = 32, + TRACE_EVENT_FL_KPROBE = 64, + TRACE_EVENT_FL_UPROBE = 128, + TRACE_EVENT_FL_EPROBE = 256, + TRACE_EVENT_FL_FPROBE = 512, + TRACE_EVENT_FL_CUSTOM = 1024, +}; -struct trace_event_data_offsets_rpcgss_unwrap_failed {}; +enum { + FILTER_OTHER = 0, + FILTER_STATIC_STRING = 1, + FILTER_DYN_STRING = 2, + FILTER_RDYN_STRING = 3, + FILTER_PTR_STRING = 4, + FILTER_TRACE_FN = 5, + FILTER_CPUMASK = 6, + FILTER_COMM = 7, + FILTER_CPU = 8, + FILTER_STACKTRACE = 9, +}; -struct trace_event_data_offsets_rpcgss_bad_seqno {}; +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, +}; -struct trace_event_data_offsets_rpcgss_seqno {}; +enum { + TRACE_ARRAY_FL_GLOBAL = 1, +}; -struct trace_event_data_offsets_rpcgss_need_reencode {}; +struct fetch_insn; -struct trace_event_data_offsets_rpcgss_update_slack {}; +struct fetch_type; -struct trace_event_data_offsets_rpcgss_svc_seqno_class {}; +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_event_data_offsets_rpcgss_svc_seqno_low {}; +struct trace_probe_event; -struct trace_event_data_offsets_rpcgss_upcall_result {}; +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_event_data_offsets_rpcgss_createauth {}; +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 async_domain { - struct list_head pending; - unsigned int registered: 1; +struct trace_uprobe_filter { + rwlock_t rwlock; + int nr_systemwide; + struct list_head perf_events; }; -enum state { - Start = 0, - Collect = 1, - GotHeader = 2, - SkipIt = 3, - GotName = 4, - CopyFile = 5, - GotSymlink = 6, - Reset = 7, +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 hash { - int ino; - int minor; - int major; - umode_t mode; - struct hash *next; - char name[4098]; +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; + }; }; -enum umh_disable_depth { - UMH_ENABLED = 0, - UMH_FREEZING = 1, - UMH_DISABLED = 2, +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 dir_entry { +struct event_file_link { + struct trace_event_file *file; struct list_head list; - time64_t mtime; - char name[0]; }; -typedef void (*async_func_t)(void *, async_cookie_t); +struct kretprobe_trace_entry_head { + struct trace_entry ent; + unsigned long func; + unsigned long ret_ip; +}; -typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *)); +struct kprobe_trace_entry_head { + struct trace_entry ent; + unsigned long ip; +}; -struct cpuidle_device; +struct dynevent_cmd; -struct cpuidle_driver; +typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *); -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); - long: 32; +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 cpuidle_driver { - const char *name; - struct module *owner; - unsigned int bctimer: 1; - long: 32; - struct cpuidle_state states[10]; - int state_count; - int safe_state_index; - struct cpumask *cpumask; - const char *governor; +struct dynevent_arg { + const char *str; + char separator; }; -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; -}; +typedef int (*dynevent_check_arg_fn_t)(void *); -struct cpuidle_state_kobj; +struct sym_count_ctx { + unsigned int count; + const char *name; +}; -struct cpuidle_driver_kobj; +struct btf_param; -struct cpuidle_device_kobj; +struct traceprobe_parse_context { + struct trace_event_call *event; + const char *funcname; + const struct btf_type *proto; + const struct btf_param *params; + s32 nr_params; + struct btf *btf; + const struct btf_type *last_type; + u32 last_bitoffs; + u32 last_bitsize; + unsigned int flags; + int offset; +}; -struct cpuidle_coupled; +struct btf_param { + __u32 name_off; + __u32 type; +}; -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; +struct bpf_cgroup_storage_map { + struct bpf_map map; + spinlock_t lock; + struct rb_root root; + struct list_head list; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; - 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; - cpumask_t coupled_cpus; - struct cpuidle_coupled *coupled; }; -struct omap_id { - u16 hawkeye; - u8 dev; - u32 type; +enum { + BPF_ANY = 0, + BPF_NOEXIST = 1, + BPF_EXIST = 2, + BPF_F_LOCK = 4, }; -struct omap_die_id { - u32 id_0; - u32 id_1; - u32 id_2; - u32 id_3; +enum { + BPF_F_NO_PREALLOC = 1, + BPF_F_NO_COMMON_LRU = 2, + BPF_F_NUMA_NODE = 4, + BPF_F_RDONLY = 8, + BPF_F_WRONLY = 16, + BPF_F_STACK_BUILD_ID = 32, + BPF_F_ZERO_SEED = 64, + BPF_F_RDONLY_PROG = 128, + BPF_F_WRONLY_PROG = 256, + BPF_F_CLONE = 512, + BPF_F_MMAPABLE = 1024, + BPF_F_PRESERVE_ELEMS = 2048, + BPF_F_INNER_MAP = 4096, + BPF_F_LINK = 8192, + BPF_F_PATH_FD = 16384, }; -struct prm_ll_data { - u32 (*read_reset_sources)(); - bool (*was_any_context_lost_old)(u8, s16, u16); - void (*clear_context_loss_flags_old)(u8, s16, u16); - int (*late_init)(); - int (*assert_hardreset)(u8, u8, s16, u16); - int (*deassert_hardreset)(u8, u8, u8, s16, u16, u16); - int (*is_hardreset_asserted)(u8, u8, s16, u16); - void (*reset_system)(); - int (*clear_mod_irqs)(s16, u8, u32); - u32 (*vp_check_txdone)(u8); - void (*vp_clear_txdone)(u8); +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 omap_prcm_init_data { - int index; - void *mem; - u32 phys; - s16 offset; - u16 flags; - s32 device_inst_offset; - int (*init)(const struct omap_prcm_init_data *); - struct device_node *np; +struct btf_member { + __u32 name_off; + __u32 type; + __u32 offset; }; -typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int); +struct context_tracking { + atomic_t state; + long dynticks_nesting; + long dynticks_nmi_nesting; +}; -typedef void (*btf_trace_contention_end)(void *, void *, int); +enum ctx_state { + CONTEXT_DISABLED = -1, + CONTEXT_KERNEL = 0, + CONTEXT_IDLE = 1, + CONTEXT_USER = 2, + CONTEXT_GUEST = 3, + CONTEXT_MAX = 4, +}; -struct trace_event_raw_contention_begin { - struct trace_entry ent; - void *lock_addr; - unsigned int flags; - char __data[0]; +enum lru_status { + LRU_REMOVED = 0, + LRU_REMOVED_RETRY = 1, + LRU_ROTATE = 2, + LRU_SKIP = 3, + LRU_RETRY = 4, }; -struct trace_event_raw_contention_end { - struct trace_entry ent; - void *lock_addr; - int ret; - char __data[0]; +typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *); + +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 mutex_waiter { - struct list_head list; - struct task_struct *task; - struct ww_acquire_ctx *ww_ctx; +enum xa_lock_type { + XA_LOCK_IRQ = 1, + XA_LOCK_BH = 2, }; -struct trace_event_data_offsets_contention_begin {}; +struct encoded_page; -struct trace_event_data_offsets_contention_end {}; +typedef union { + struct page **pages; + struct folio **folios; + struct encoded_page **encoded_pages; +} release_pages_arg; -enum tick_device_mode { - TICKDEV_MODE_PERIODIC = 0, - TICKDEV_MODE_ONESHOT = 1, +struct vma_swap_readahead { + unsigned short win; + unsigned short offset; + unsigned short nr_pte; }; -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 tick_nohz_mode { - NOHZ_MODE_INACTIVE = 0, - NOHZ_MODE_LOWRES = 1, - NOHZ_MODE_HIGHRES = 2, -}; - -struct tick_device { - struct clock_event_device *evtdev; - enum tick_device_mode mode; -}; - -struct tick_sched { - 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; - unsigned int stalled_jiffies; - unsigned long last_tick_jiffies; - long: 32; - struct hrtimer sched_timer; - ktime_t last_tick; - ktime_t next_tick; - unsigned long idle_jiffies; - long: 32; - ktime_t idle_waketime; - seqcount_t idle_sleeptime_seq; - long: 32; - ktime_t idle_entrytime; - enum tick_nohz_mode nohz_mode; - unsigned long last_jiffies; - u64 timer_expires_base; - u64 timer_expires; - u64 next_timer; - ktime_t idle_expires; - unsigned long idle_calls; - unsigned long idle_sleeps; - ktime_t idle_exittime; - ktime_t idle_sleeptime; - ktime_t iowait_sleeptime; - atomic_t tick_dep_mask; - unsigned long check_clocks; -}; - -struct timer_list_iter { - int cpu; - bool second_pass; - u64 now; +struct dentry_stat_t { + long nr_dentry; + long nr_unused; + long age_limit; + long want_pages; + long nr_negative; + long dummy; }; -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; +enum dentry_d_lock_class { + DENTRY_D_LOCK_NORMAL = 0, + DENTRY_D_LOCK_NESTED = 1, }; -struct kernfs_syscall_ops { - int (*show_options)(struct seq_file *, struct kernfs_root *); - int (*mkdir)(struct kernfs_node *, const char *, umode_t); - int (*rmdir)(struct kernfs_node *); - int (*rename)(struct kernfs_node *, struct kernfs_node *, const char *); - int (*show_path)(struct seq_file *, struct kernfs_node *, struct kernfs_root *); +enum d_walk_ret { + D_WALK_CONTINUE = 0, + D_WALK_QUIT = 1, + D_WALK_NORETRY = 2, + D_WALK_SKIP = 3, }; -enum cgroup_filetype { - CGROUP_FILE_PROCS = 0, - CGROUP_FILE_TASKS = 1, +struct external_name { + union { + atomic_t count; + struct callback_head head; + } u; + unsigned char name[0]; }; -enum cgroup_subsys_id { - CGROUP_SUBSYS_COUNT = 0, +struct name_snapshot { + struct qstr name; + unsigned char inline_name[36]; + long: 32; }; -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 = 8, - Opt_nofavordynmods = 9, +struct check_mount { + struct vfsmount *mnt; + unsigned int mounted; }; -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, +struct select_data { + struct dentry *start; + union { + long found; + struct dentry *victim; + }; + struct list_head dispose; }; -enum { - CGRP_NOTIFY_ON_RELEASE = 0, - CGRP_CPUSET_CLONE_CHILDREN = 1, - CGRP_FREEZE = 2, - CGRP_FROZEN = 3, - CGRP_KILL = 4, +struct statfs { + __u32 f_type; + __u32 f_bsize; + __u32 f_blocks; + __u32 f_bfree; + __u32 f_bavail; + __u32 f_files; + __u32 f_ffree; + __kernel_fsid_t f_fsid; + __u32 f_namelen; + __u32 f_frsize; + __u32 f_flags; + __u32 f_spare[4]; }; -struct cgrp_cset_link { - struct cgroup *cgrp; - struct css_set *cset; - struct list_head cset_link; - struct list_head cgrp_link; +struct 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]; }; -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; -}; +typedef int __kernel_daddr_t; -struct kernfs_fs_context { - struct kernfs_root *root; - void *ns_tag; - unsigned long magic; - bool new_sb_created; +struct ustat { + __kernel_daddr_t f_tfree; + unsigned long f_tinode; + char f_fname[6]; + char f_fpack[6]; }; -struct cgroup_fs_context { - struct kernfs_fs_context kfc; - struct cgroup_root *root; - struct cgroup_namespace *ns; - unsigned int flags; - bool cpuset_clone_children; - bool none; - bool all_ss; - u16 subsys_mask; - char *name; - char *release_agent; +struct bh_lru { + struct buffer_head *bhs[16]; }; -struct cgroup_mgctx { - struct list_head preloaded_src_csets; - struct list_head preloaded_dst_csets; - struct cgroup_taskset tset; - u16 ss_mask; +struct bh_accounting { + int nr; + int ratelimit; }; -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 postprocess_bh_ctx { + struct work_struct work; + struct buffer_head *bh; }; -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 bool (*smp_cond_func_t)(int, void *); -struct cgroupstats { - __u64 nr_sleeping; - __u64 nr_running; - __u64 nr_stopped; - __u64 nr_uninterruptible; - __u64 nr_io_wait; -}; +struct iomap_folio_ops; -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 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 tnum { - u64 value; - u64 mask; -}; +struct iomap_iter; -struct mmap_unlock_irq_work { - struct irq_work irq_work; - struct mm_struct *mm; +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 *); }; -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 *); - -struct bpf_link_info; - -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; +struct iomap_iter { + struct inode *inode; + long: 32; + loff_t pos; + u64 len; + s64 processed; + unsigned int flags; + long: 32; + struct iomap iomap; + struct iomap srcmap; + void *private; + long: 32; }; -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; -}; +typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); -struct bpf_link_info { - __u32 type; - __u32 id; - __u32 prog_id; - long: 32; +struct ext4_attr { + struct attribute attr; + short attr_id; + short attr_ptr; + unsigned short attr_size; union { - struct { - __u64 tp_name; - __u32 tp_name_len; - long: 32; - } raw_tracepoint; - struct { - __u32 attach_type; - __u32 target_obj_id; - __u32 target_btf_id; - } tracing; - struct { - __u64 cgroup_id; - __u32 attach_type; - long: 32; - } cgroup; - struct { - __u64 target_name; - __u32 target_name_len; - union { - struct { - __u32 map_id; - } map; - }; - union { - struct { - __u64 cgroup_id; - __u32 order; - long: 32; - } cgroup; - struct { - __u32 tid; - __u32 pid; - } task; - }; - } iter; - struct { - __u32 netns_ino; - __u32 attach_type; - } netns; - struct { - __u32 ifindex; - } xdp; - struct { - __u32 map_id; - } struct_ops; - struct { - __u32 pf; - __u32 hooknum; - __s32 priority; - __u32 flags; - } netfilter; - }; + int offset; + void *explicit_ptr; + } u; }; enum { - BTF_TRACING_TYPE_TASK = 0, - BTF_TRACING_TYPE_FILE = 1, - BTF_TRACING_TYPE_VMA = 2, - MAX_BTF_TRACING_TYPE = 3, -}; - -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_meta { - union { - struct seq_file *seq; - }; - u64 session_id; - u64 seq_num; + 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, }; -struct bpf_iter__task { - union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; +enum { + ptr_explicit = 0, + ptr_ext4_sb_info_offset = 1, + ptr_ext4_super_block_offset = 2, }; -struct bpf_iter_seq_task_common { - struct pid_namespace *ns; - enum bpf_iter_task_type type; - u32 pid; - u32 pid_visiting; +enum { + FATTR4_MODE_UMASK = 81, }; -struct bpf_iter__task_file { - union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; - u32 fd; +struct nfs_open_dir_context { + struct list_head list; + atomic_t cache_hits; + atomic_t cache_misses; + unsigned long attr_gencount; + __be32 verf[2]; + long: 32; + __u64 dir_cookie; + __u64 last_cookie; + unsigned long page_index; + unsigned int dtsize; + bool force_clear; + bool eof; + struct callback_head callback_head; long: 32; - 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 reciprocal_value { - u32 m; - u8 sh1; - u8 sh2; +struct nfs_readdir_descriptor { + struct file *file; + struct folio *folio; + struct dir_context *ctx; + unsigned long folio_index; + unsigned long folio_index_max; + long: 32; + 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 kmem_cache_order_objects { - unsigned int x; +struct nfs_cache_array_entry { + u64 cookie; + u64 ino; + const char *name; + unsigned int name_len; + unsigned char d_type; + long: 32; }; -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; +struct nfs_cache_array { + u64 change_attr; + u64 last_cookie; 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]; + unsigned char folio_full: 1; + unsigned char folio_is_eof: 1; + unsigned char cookies_are_ordered: 1; + struct nfs_cache_array_entry array[0]; }; -typedef u64 freelist_full_t; - -typedef union { - struct { - void *freelist; - unsigned long counter; - }; - freelist_full_t full; -} freelist_aba_t; - -struct slab; - -struct kmem_cache_cpu { - union { - struct { - void **freelist; - unsigned long tid; - }; - freelist_aba_t freelist_tid; - }; - struct slab *slab; - struct slab *partial; - local_lock_t lock; +enum { + NFS_DEVICEID_INVALID = 0, + NFS_DEVICEID_UNAVAILABLE = 1, + NFS_DEVICEID_NOCACHE = 2, }; -struct slab { - unsigned long __page_flags; - struct kmem_cache *slab_cache; - union { - struct { - union { - struct list_head slab_list; - struct { - struct slab *next; - int slabs; - }; - }; - union { - struct { - void *freelist; - union { - unsigned long counters; - struct { - unsigned int inuse: 16; - unsigned int objects: 15; - unsigned int frozen: 1; - }; - }; - }; - }; - }; - struct callback_head callback_head; - }; - unsigned int __unused; - atomic_t __page_refcount; +enum { + UBIFS_NO_NODE_GROUP = 0, + UBIFS_IN_NODE_GROUP = 1, + UBIFS_LAST_OF_NODE_GROUP = 2, }; -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; +struct ubifs_pad_node { + struct ubifs_ch ch; + __le32 pad_len; }; -struct page_address_map { - struct page *page; - void *virtual; - struct list_head list; +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 page_address_slot { - struct list_head lh; - spinlock_t lock; +struct shash_instance { + void (*free)(struct shash_instance *); long: 32; long: 32; long: 32; @@ -64303,1775 +71935,1660 @@ struct page_address_slot { long: 32; long: 32; long: 32; + long: 32; + long: 32; + union { + struct { + char head[128]; + struct crypto_instance base; + } s; + struct shash_alg alg; + }; }; -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, +struct crypto_istat_hash { + atomic64_t hash_cnt; + atomic64_t hash_tlen; + atomic64_t err_cnt; }; -typedef void (*btf_trace_test_pages_isolated)(void *, unsigned long, unsigned long, unsigned long); - -enum migratetype { - MIGRATE_UNMOVABLE = 0, - MIGRATE_MOVABLE = 1, - MIGRATE_RECLAIMABLE = 2, - MIGRATE_PCPTYPES = 3, - MIGRATE_HIGHATOMIC = 3, - MIGRATE_CMA = 4, - MIGRATE_ISOLATE = 5, - MIGRATE_TYPES = 6, +struct crypto_report_hash { + char type[64]; + unsigned int blocksize; + unsigned int digestsize; }; -struct trace_event_raw_test_pages_isolated { - struct trace_entry ent; - unsigned long start_pfn; - unsigned long end_pfn; - unsigned long fin_pfn; - char __data[0]; +struct crypto_shash_spawn { + struct crypto_spawn base; }; -struct trace_event_data_offsets_test_pages_isolated {}; - -typedef union { - struct page **pages; - struct folio **folios; - struct encoded_page **encoded_pages; -} release_pages_arg; - -struct splice_desc { - size_t total_len; - unsigned int len; - unsigned int flags; - union { - void __attribute__((btf_type_tag("user"))) *userptr; - struct file *file; - void *data; - } u; - void (*splice_eof)(struct splice_desc *); - long: 32; - loff_t pos; - loff_t *opos; - size_t num_spliced; - bool need_wakeup; - long: 32; +struct asymmetric_key_parser { + struct list_head link; + struct module *owner; + const char *name; + int (*parse)(struct key_preparsed_payload *); }; -typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); - -typedef __kernel_rwf_t rwf_t; - -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); +enum blacklist_hash_type { + BLACKLIST_HASH_X509_TBS = 1, + BLACKLIST_HASH_BINARY = 2, }; -struct partial_page { - unsigned int offset; - unsigned int len; - unsigned long private; +enum asymmetric_payload_bits { + asym_crypto = 0, + asym_subtype = 1, + asym_key_ids = 2, + asym_auth = 3, }; -typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); - -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 asymmetric_key_ids { + void *id[3]; }; -struct iomap_iter { - struct inode *inode; - long: 32; - loff_t pos; - u64 len; - s64 processed; - unsigned int flags; - long: 32; - struct iomap iomap; - struct iomap srcmap; - void *private; - long: 32; +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; + long: 32; + } *parts; + int next; + int limit; + bool access_beyond_eod; + char *pp_buf; }; -struct iomap_folio_ops { - struct folio * (*get_folio)(struct iomap_iter *, loff_t, unsigned int); - void (*put_folio)(struct inode *, loff_t, unsigned int, struct folio *); - bool (*iomap_valid)(struct inode *, const struct iomap *); +enum { + GENHD_FL_REMOVABLE = 1, + GENHD_FL_HIDDEN = 2, + GENHD_FL_NO_PART = 4, }; -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 struct { + struct folio *v; +} Sector; -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 io_rename { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; }; -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; - long: 32; - struct inode vfs_inode; +struct io_unlink { + struct file *file; + int dfd; + int flags; + struct filename *filename; }; -struct squashfs_stream { - void *stream; - struct mutex mutex; +struct io_mkdir { + struct file *file; + int dfd; + umode_t mode; + struct filename *filename; }; -enum { - FILEID_HIGH_OFF = 0, - FILEID_LOW_OFF = 1, - FILE_I_TYPE_OFF = 2, - EMBED_FH_OFF = 3, +struct io_link { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; }; -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, -}; +typedef struct { + unsigned char op; + unsigned char bits; + unsigned short val; +} code; -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, - XPRT_TRANSPORT_TCP_TLS = 258, -}; +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 nfs4_ds_server { - struct list_head list; - struct rpc_clnt *rpc_clnt; +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 bl_dev_msg { - int32_t status; - uint32_t major; - uint32_t minor; +struct inflate_workspace { + struct inflate_state inflate_state; + unsigned char working_window[32768]; }; -struct cache_detail; +struct z_stream_s; -struct rpc_pipe; +typedef struct z_stream_s z_stream; -struct nfs_netns_client; +typedef z_stream *z_streamp; -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[3]; - struct nfs_netns_client *nfs_client; - spinlock_t nfs_client_lock; - ktime_t boot_time; - struct proc_dir_entry *proc_nfsfs; - long: 32; -}; +typedef unsigned char Byte; -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; -}; +typedef unsigned long uLong; -struct rpc_pipe_ops; +struct internal_state; -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 z_stream_s { + const Byte *next_in; + uLong avail_in; + uLong total_in; + Byte *next_out; + uLong avail_out; + uLong total_out; + char *msg; + struct internal_state *state; + void *workspace; + int data_type; + uLong adler; + uLong reserved; }; -struct rpc_pipe_msg; +typedef enum { + CODES = 0, + LENS = 1, + DISTS = 2, +} codetype; -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 *); +typedef unsigned int uInt; + +typedef enum { + ZSTD_c_compressionLevel = 100, + ZSTD_c_windowLog = 101, + ZSTD_c_hashLog = 102, + ZSTD_c_chainLog = 103, + ZSTD_c_searchLog = 104, + ZSTD_c_minMatch = 105, + ZSTD_c_targetLength = 106, + ZSTD_c_strategy = 107, + ZSTD_c_enableLongDistanceMatching = 160, + ZSTD_c_ldmHashLog = 161, + ZSTD_c_ldmMinMatch = 162, + ZSTD_c_ldmBucketSizeLog = 163, + ZSTD_c_ldmHashRateLog = 164, + ZSTD_c_contentSizeFlag = 200, + ZSTD_c_checksumFlag = 201, + ZSTD_c_dictIDFlag = 202, + ZSTD_c_nbWorkers = 400, + ZSTD_c_jobSize = 401, + ZSTD_c_overlapLog = 402, + ZSTD_c_experimentalParam1 = 500, + ZSTD_c_experimentalParam2 = 10, + ZSTD_c_experimentalParam3 = 1000, + ZSTD_c_experimentalParam4 = 1001, + ZSTD_c_experimentalParam5 = 1002, + ZSTD_c_experimentalParam6 = 1003, + ZSTD_c_experimentalParam7 = 1004, + ZSTD_c_experimentalParam8 = 1005, + ZSTD_c_experimentalParam9 = 1006, + ZSTD_c_experimentalParam10 = 1007, + ZSTD_c_experimentalParam11 = 1008, + ZSTD_c_experimentalParam12 = 1009, + ZSTD_c_experimentalParam13 = 1010, + ZSTD_c_experimentalParam14 = 1011, + ZSTD_c_experimentalParam15 = 1012, +} ZSTD_cParameter; + +typedef ZSTD_CCtx ZSTD_CStream; + +typedef ZSTD_CStream zstd_cstream; + +typedef ZSTD_outBuffer zstd_out_buffer; + +typedef ZSTD_inBuffer zstd_in_buffer; + +typedef struct { + S16 norm[53]; + U32 wksp[285]; +} ZSTD_BuildCTableWksp; + +typedef struct { + int deltaFindState; + U32 deltaNbBits; +} FSE_symbolCompressionTransform; + +typedef struct { + ptrdiff_t value; + const void *stateTable; + const void *symbolTT; + unsigned int stateLog; +} FSE_CState_t; + +typedef struct { + size_t bitContainer; + unsigned int bitPos; + char *startPtr; + char *ptr; + char *endPtr; +} BIT_CStream_t; + +typedef enum { + ZSTD_defaultDisallowed = 0, + ZSTD_defaultAllowed = 1, +} ZSTD_defaultPolicy_e; + +typedef ZSTD_ErrorCode ERR_enum; + +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 rpc_pipe_msg { - struct list_head list; - void *data; - size_t len; - size_t copied; - int errno; +struct dim_cq_moder { + u16 usec; + u16 pkts; + u16 comps; + u8 cq_period_mode; }; -struct nfs_netns_client { - struct kobject kobject; - struct kobject nfs_net_kobj; - struct net *net; - const char __attribute__((btf_type_tag("rcu"))) *identifier; +enum dim_cq_period_mode { + DIM_CQ_PERIOD_MODE_START_FROM_EQE = 0, + DIM_CQ_PERIOD_MODE_START_FROM_CQE = 1, + DIM_CQ_PERIOD_NUM_MODES = 2, }; -struct nfs4_setclientid_res { - u64 clientid; - nfs4_verifier confirm; +enum dim_state { + DIM_START_MEASURE = 0, + DIM_MEASURE_IN_PROGRESS = 1, + DIM_APPLY_NEW_PROFILE = 2, }; -struct nfs4_op_map { - union { - unsigned long longs[3]; - u32 words[3]; - } u; +enum dim_tune_state { + DIM_PARKING_ON_TOP = 0, + DIM_PARKING_TIRED = 1, + DIM_GOING_RIGHT = 2, + DIM_GOING_LEFT = 3, }; -struct nfs41_state_protection { - u32 how; - struct nfs4_op_map enforce; - struct nfs4_op_map allow; +enum dim_stats_state { + DIM_STATS_WORSE = 0, + DIM_STATS_SAME = 1, + DIM_STATS_BETTER = 2, }; -struct nfs41_exchange_id_res { - u64 clientid; - u32 seqid; - u32 flags; - struct nfs41_server_owner *server_owner; - struct nfs41_server_scope *server_scope; - struct nfs41_impl_id *impl_id; - struct nfs41_state_protection state_protect; +enum dim_step_result { + DIM_STEPPED = 0, + DIM_TOO_TIRED = 1, + DIM_ON_EDGE = 2, }; -enum { - NTFS_BLOCK_SIZE = 512, - NTFS_BLOCK_SIZE_BITS = 9, - NTFS_SB_MAGIC = 1397118030, - NTFS_MAX_NAME_LEN = 255, - NTFS_MAX_ATTR_NAME_LEN = 255, - NTFS_MAX_CLUSTER_SIZE = 65536, - NTFS_MAX_PAGES_PER_CLUSTER = 16, +union handle_parts { + depot_stack_handle_t handle; + struct { + u32 pool_index: 16; + u32 offset: 10; + u32 valid: 1; + u32 extra: 5; + }; }; -struct key_user { - struct rb_node node; - struct mutex cons_lock; - spinlock_t lock; - refcount_t usage; - atomic_t nkeys; - atomic_t nikeys; - kuid_t uid; - int qnkeys; - int qnbytes; +struct stack_record { + struct stack_record *next; + u32 hash; + u32 size; + union handle_parts handle; + unsigned long entries[0]; }; -enum key_state { - KEY_IS_UNINSTANTIATED = 0, - KEY_IS_POSITIVE = 1, +struct rdists { + struct { + raw_spinlock_t rd_lock; + void *rd_base; + struct page *pend_page; + phys_addr_t phys_base; + u64 flags; + cpumask_t *vpe_table_mask; + void *vpe_l1_base; + } *rdist; + phys_addr_t prop_table_pa; + void *prop_table_va; + long: 32; + u64 flags; + u32 gicd_typer; + u32 gicd_typer2; + int cpuhp_memreserve_state; + bool has_vlpis; + bool has_rvpeid; + bool has_direct_lpi; + bool has_vpend_valid_dirty; }; -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 gic_quirk { + const char *desc; + const char *compatible; + const char *property; + bool (*init)(void *); + u32 iidr; + u32 mask; }; -struct __key_reference_with_attributes; +struct its_vm; -typedef struct __key_reference_with_attributes *key_ref_t; +struct its_vlpi_map; -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; - long: 32; - time64_t now; +struct event_lpi_map { + unsigned long *lpi_map; + u16 *col_map; + irq_hw_number_t lpi_base; + int nr_lpis; + raw_spinlock_t vlpi_lock; + struct its_vm *vm; + struct its_vlpi_map *vlpi_maps; + int nr_vlpis; }; -struct comp_alg_common { - struct crypto_alg base; -}; +struct its_node; -struct crypto_scomp; +struct its_device { + struct list_head entry; + struct its_node *its; + struct event_lpi_map event_map; + void *itt; + u32 nr_ites; + u32 device_id; + bool shared; +}; -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 *); - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct its_baser { + void *base; long: 32; + u64 val; + u32 order; + u32 psz; +}; + +struct its_cmd_block; + +struct its_collection; + +struct its_node { + raw_spinlock_t lock; + struct mutex dev_alloc_lock; + struct list_head entry; + void *base; + void *sgir_base; + phys_addr_t phys_base; + struct its_cmd_block *cmd_base; + struct its_cmd_block *cmd_write; long: 32; + struct its_baser tables[8]; + struct its_collection *collections; + struct fwnode_handle *fwnode_handle; + u64 (*get_msi_base)(struct its_device *); long: 32; + u64 typer; + u64 cbaser_save; + u32 ctlr_save; + u32 mpidr; + struct list_head its_device_list; + u64 flags; + unsigned long list_nr; + int numa_node; + unsigned int msi_domain_flags; + u32 pre_its_base; + int vlpi_redist_offset; long: 32; +}; + +struct its_cmd_block { union { - struct { - struct crypto_alg base; - }; - struct comp_alg_common calg; + u64 raw_cmd[4]; + __le64 raw_cmd_le[4]; }; }; -struct crypto_scomp { - struct crypto_tfm base; +struct its_collection { + u64 target_address; + u16 col_id; + long: 32; }; -typedef unsigned char Byte; +struct its_vpe; -typedef unsigned long uLong; +struct its_vm { + struct fwnode_handle *fwnode; + struct irq_domain *domain; + struct page *vprop_page; + struct its_vpe **vpes; + int nr_vpes; + irq_hw_number_t db_lpi_base; + unsigned long *db_bitmap; + int nr_db_lpis; + u32 vlpi_count[16]; +}; -struct internal_state; +struct its_vpe { + struct page *vpt_page; + struct its_vm *its_vm; + atomic_t vlpi_count; + int irq; + irq_hw_number_t vpe_db_lpi; + bool resident; + bool ready; + union { + struct { + int vpe_proxy_event; + bool idai; + }; + struct { + struct fwnode_handle *fwnode; + struct irq_domain *sgi_domain; + struct { + u8 priority; + bool enabled; + bool group; + } sgi_config[16]; + atomic_t vmapp_count; + }; + }; + raw_spinlock_t vpe_lock; + u16 col_idx; + u16 vpe_id; + bool pending_last; +}; -struct z_stream_s { - const Byte *next_in; - uLong avail_in; - uLong total_in; - Byte *next_out; - uLong avail_out; - uLong total_out; - char *msg; - struct internal_state *state; - void *workspace; - int data_type; - uLong adler; - uLong reserved; +struct its_vlpi_map { + struct its_vm *vm; + struct its_vpe *vpe; + u32 vintid; + u8 properties; + bool db_enabled; }; -struct internal_state { - int dummy; +struct cpu_lpi_count { + atomic_t managed; + atomic_t unmanaged; }; -struct deflate_ctx { - struct z_stream_s comp_stream; - struct z_stream_s decomp_stream; +enum its_vcpu_info_cmd_type { + MAP_VLPI = 0, + GET_VLPI = 1, + PROP_UPDATE_VLPI = 2, + PROP_UPDATE_AND_INV_VLPI = 3, + SCHEDULE_VPE = 4, + DESCHEDULE_VPE = 5, + COMMIT_VPE = 6, + INVALL_VPE = 7, + PROP_UPDATE_VSGI = 8, }; -typedef struct z_stream_s z_stream; +struct lpi_range { + struct list_head entry; + u32 base_id; + u32 span; +}; -typedef z_stream *z_streamp; +struct its_cmd_desc { + union { + struct { + struct its_device *dev; + u32 event_id; + } its_inv_cmd; + struct { + struct its_device *dev; + u32 event_id; + } its_clear_cmd; + struct { + struct its_device *dev; + u32 event_id; + } its_int_cmd; + struct { + struct its_device *dev; + int valid; + } its_mapd_cmd; + struct { + struct its_collection *col; + int valid; + } its_mapc_cmd; + struct { + struct its_device *dev; + u32 phys_id; + u32 event_id; + } its_mapti_cmd; + struct { + struct its_device *dev; + struct its_collection *col; + u32 event_id; + } its_movi_cmd; + struct { + struct its_device *dev; + u32 event_id; + } its_discard_cmd; + struct { + struct its_collection *col; + } its_invall_cmd; + struct { + struct its_vpe *vpe; + } its_vinvall_cmd; + struct { + struct its_vpe *vpe; + struct its_collection *col; + bool valid; + } its_vmapp_cmd; + struct { + struct its_vpe *vpe; + struct its_device *dev; + u32 virt_id; + u32 event_id; + bool db_enabled; + } its_vmapti_cmd; + struct { + struct its_vpe *vpe; + struct its_device *dev; + u32 event_id; + bool db_enabled; + } its_vmovi_cmd; + struct { + struct its_vpe *vpe; + struct its_collection *col; + u16 seq_num; + u16 its_list; + } its_vmovp_cmd; + struct { + struct its_vpe *vpe; + } its_invdb_cmd; + struct { + struct its_vpe *vpe; + u8 sgi; + u8 priority; + bool enable; + bool group; + bool clear; + } its_vsgi_cmd; + }; +}; -struct rq_wait; +struct its_cmd_info { + enum its_vcpu_info_cmd_type cmd_type; + union { + struct its_vlpi_map *map; + u8 config; + bool req_db; + struct { + bool g0en; + bool g1en; + }; + struct { + u8 priority; + bool group; + }; + }; +}; -typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); +typedef struct its_collection * (*its_cmd_builder_t)(struct its_node *, struct its_cmd_block *, struct its_cmd_desc *); -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; -}; +typedef struct its_vpe * (*its_cmd_vbuilder_t)(struct its_node *, struct its_cmd_block *, struct its_cmd_desc *); -struct rq_wait { - wait_queue_head_t wait; - atomic_t inflight; +enum phy_speed_mode { + SPEED_MODE_GEN1 = 0, + SPEED_MODE_GEN2 = 1, + SPEED_MODE_GEN3 = 2, }; -struct rq_depth { - unsigned int max_depth; - int scale_step; - bool scaled_max; - unsigned int queue_depth; - unsigned int default_depth; +struct hix5hd2_priv { + void *base; + struct regmap *peri_ctrl; }; -typedef void cleanup_cb_t(struct rq_wait *, void *); +struct tegra_xusb_lane_soc; -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, -}; +struct tegra_xusb_pad; -struct io_timeout { - struct file *file; - u32 off; - u32 target_seq; - u32 repeats; +struct tegra_xusb_lane { + const struct tegra_xusb_lane_soc *soc; + struct tegra_xusb_pad *pad; + struct device_node *np; struct list_head list; - struct io_kiocb *head; - struct io_kiocb *prev; + unsigned int function; + unsigned int index; }; -struct io_timeout_rem { - struct file *file; - long: 32; - u64 addr; - struct timespec64 ts; - u32 flags; - bool ltimeout; +struct tegra_xusb_lane_soc { + const char *name; + unsigned int offset; + unsigned int shift; + unsigned int mask; + const char * const *funcs; + unsigned int num_funcs; + struct { + unsigned int misc_ctl2; + } regs; }; -struct io_timeout_data { - struct io_kiocb *req; +struct tegra_xusb_pad_soc; + +struct tegra_xusb_padctl; + +struct tegra_xusb_lane_ops; + +struct tegra_xusb_pad { + const struct tegra_xusb_pad_soc *soc; + struct tegra_xusb_padctl *padctl; + struct phy_provider *provider; + struct phy **lanes; + struct device dev; + const struct tegra_xusb_lane_ops *ops; + struct list_head list; long: 32; - struct hrtimer timer; - struct timespec64 ts; - enum hrtimer_mode mode; - u32 flags; }; -struct io_cancel_data { - struct io_ring_ctx *ctx; - long: 32; - union { - u64 data; - struct file *file; - }; - u32 flags; - int seq; +struct tegra_xusb_pad_ops; + +struct tegra_xusb_pad_soc { + const char *name; + const struct tegra_xusb_lane_soc *lanes; + unsigned int num_lanes; + const struct tegra_xusb_pad_ops *ops; }; -typedef enum { - ZSTD_llt_none = 0, - ZSTD_llt_literalLength = 1, - ZSTD_llt_matchLength = 2, -} ZSTD_longLengthType_e; +struct tegra_xusb_pad_ops { + struct tegra_xusb_pad * (*probe)(struct tegra_xusb_padctl *, const struct tegra_xusb_pad_soc *, struct device_node *); + void (*remove)(struct tegra_xusb_pad *); +}; -struct seqDef_s; +struct tegra_xusb_padctl_soc; -typedef struct seqDef_s seqDef; +struct tegra_xusb_padctl { + struct device *dev; + void *regs; + struct mutex lock; + struct reset_control *rst; + const struct tegra_xusb_padctl_soc *soc; + struct tegra_xusb_pad *pcie; + struct tegra_xusb_pad *sata; + struct tegra_xusb_pad *ulpi; + struct tegra_xusb_pad *usb2; + struct tegra_xusb_pad *hsic; + struct list_head ports; + struct list_head lanes; + struct list_head pads; + unsigned int enable; + struct clk *clk; + struct regulator_bulk_data *supplies; +}; -typedef struct { - seqDef *sequencesStart; - seqDef *sequences; - BYTE *litStart; - BYTE *lit; - BYTE *llCode; - BYTE *mlCode; - BYTE *ofCode; - size_t maxNbSeq; - size_t maxNbLit; - ZSTD_longLengthType_e longLengthType; - U32 longLengthPos; -} seqStore_t; +struct tegra_xusb_port_ops; -struct ZSTD_matchState_t; +struct tegra_xusb_padctl_ops; -typedef struct ZSTD_matchState_t ZSTD_matchState_t; +struct tegra_xusb_padctl_soc { + const struct tegra_xusb_pad_soc * const *pads; + unsigned int num_pads; + struct { + struct { + const struct tegra_xusb_port_ops *ops; + unsigned int count; + } usb2; + struct { + const struct tegra_xusb_port_ops *ops; + unsigned int count; + } ulpi; + struct { + const struct tegra_xusb_port_ops *ops; + unsigned int count; + } hsic; + struct { + const struct tegra_xusb_port_ops *ops; + unsigned int count; + } usb3; + } ports; + const struct tegra_xusb_padctl_ops *ops; + const char * const *supply_names; + unsigned int num_supplies; + bool supports_gen2; + bool need_fake_usb3_port; + bool poll_trk_completed; + bool trk_hw_mode; + bool supports_lp_cfg_en; +}; -typedef size_t (*ZSTD_blockCompressor)(ZSTD_matchState_t *, seqStore_t *, U32 *, const void *, size_t); +struct tegra_xusb_port; -typedef struct { - const BYTE *nextSrc; - const BYTE *base; - const BYTE *dictBase; - U32 dictLimit; - U32 lowLimit; - U32 nbOverflowCorrections; -} ZSTD_window_t; +struct tegra_xusb_port_ops { + void (*release)(struct tegra_xusb_port *); + void (*remove)(struct tegra_xusb_port *); + int (*enable)(struct tegra_xusb_port *); + void (*disable)(struct tegra_xusb_port *); + struct tegra_xusb_lane * (*map)(struct tegra_xusb_port *); +}; -typedef struct { - U32 off; - U32 len; -} ZSTD_match_t; +struct tegra_xusb_port { + struct tegra_xusb_padctl *padctl; + struct tegra_xusb_lane *lane; + unsigned int index; + struct list_head list; + long: 32; + struct device dev; + struct usb_role_switch *usb_role_sw; + struct work_struct usb_phy_work; + struct usb_phy usb_phy; + const struct tegra_xusb_port_ops *ops; +}; -typedef struct { - int price; - U32 off; - U32 mlen; - U32 litlen; - U32 rep[3]; -} ZSTD_optimal_t; +struct tegra_xusb_padctl_ops { + struct tegra_xusb_padctl * (*probe)(struct device *, const struct tegra_xusb_padctl_soc *); + void (*remove)(struct tegra_xusb_padctl *); + int (*suspend_noirq)(struct tegra_xusb_padctl *); + int (*resume_noirq)(struct tegra_xusb_padctl *); + int (*usb3_save_context)(struct tegra_xusb_padctl *, unsigned int); + int (*hsic_set_idle)(struct tegra_xusb_padctl *, unsigned int, bool); + int (*usb3_set_lfps_detect)(struct tegra_xusb_padctl *, unsigned int, bool); + int (*vbus_override)(struct tegra_xusb_padctl *, bool); + int (*utmi_port_reset)(struct phy *); + void (*utmi_pad_power_on)(struct phy *); + void (*utmi_pad_power_down)(struct phy *); +}; -typedef enum { - zop_dynamic = 0, - zop_predef = 1, -} ZSTD_OptPrice_e; +struct tegra_xusb_lane_ops { + struct tegra_xusb_lane * (*probe)(struct tegra_xusb_pad *, struct device_node *, unsigned int); + void (*remove)(struct tegra_xusb_lane *); + void (*iddq_enable)(struct tegra_xusb_lane *); + void (*iddq_disable)(struct tegra_xusb_lane *); + int (*enable_phy_sleepwalk)(struct tegra_xusb_lane *, enum usb_device_speed); + int (*disable_phy_sleepwalk)(struct tegra_xusb_lane *); + int (*enable_phy_wake)(struct tegra_xusb_lane *); + int (*disable_phy_wake)(struct tegra_xusb_lane *); + bool (*remote_wake_detected)(struct tegra_xusb_lane *); +}; -typedef unsigned int FSE_CTable; +struct tegra_xusb_usb2_port { + struct tegra_xusb_port base; + struct regulator *supply; + enum usb_dr_mode mode; + bool internal; + int usb3_port_fake; +}; -typedef enum { - FSE_repeat_none = 0, - FSE_repeat_check = 1, - FSE_repeat_valid = 2, -} FSE_repeat; +struct tegra_xusb_usb3_port { + struct tegra_xusb_port base; + bool context_saved; + unsigned int port; + bool internal; + bool disable_gen2; + u32 tap1; + u32 amp; + u32 ctle_z; + u32 ctle_g; + long: 32; +}; -typedef struct { - FSE_CTable offcodeCTable[193]; - FSE_CTable matchlengthCTable[363]; - FSE_CTable litlengthCTable[329]; - FSE_repeat offcode_repeatMode; - FSE_repeat matchlength_repeatMode; - FSE_repeat litlength_repeatMode; -} ZSTD_fseCTables_t; +struct tegra_xusb_ulpi_port { + struct tegra_xusb_port base; + struct regulator *supply; + bool internal; +}; -typedef struct { - ZSTD_hufCTables_t huf; - ZSTD_fseCTables_t fse; -} ZSTD_entropyCTables_t; +struct tegra_xusb_hsic_port { + struct tegra_xusb_port base; +}; -typedef enum { - ZSTD_ps_auto = 0, - ZSTD_ps_enable = 1, - ZSTD_ps_disable = 2, -} ZSTD_paramSwitch_e; +struct tegra_xusb_lane_map { + unsigned int port; + const char *type; + unsigned int index; + const char *func; +}; -typedef struct { - unsigned int *litFreq; - unsigned int *litLengthFreq; - unsigned int *matchLengthFreq; - unsigned int *offCodeFreq; - ZSTD_match_t *matchTable; - ZSTD_optimal_t *priceTable; - U32 litSum; - U32 litLengthSum; - U32 matchLengthSum; - U32 offCodeSum; - U32 litSumBasePrice; - U32 litLengthSumBasePrice; - U32 matchLengthSumBasePrice; - U32 offCodeSumBasePrice; - ZSTD_OptPrice_e priceType; - const ZSTD_entropyCTables_t *symbolCosts; - ZSTD_paramSwitch_e literalCompressionMode; -} optState_t; +struct mtk_spec_pinmux_set { + unsigned short pin; + unsigned short offset; + unsigned char bit; +}; -typedef struct { - unsigned int windowLog; - unsigned int chainLog; - unsigned int hashLog; - unsigned int searchLog; - unsigned int minMatch; - unsigned int targetLength; - ZSTD_strategy strategy; -} ZSTD_compressionParameters; +struct mvebu_mpp_ctrl; -typedef struct { - U32 offset; - U32 litLength; - U32 matchLength; -} rawSeq; +struct mvebu_mpp_ctrl_data; -typedef struct { - rawSeq *seq; - size_t pos; - size_t posInSequence; - size_t size; - size_t capacity; -} rawSeqStore_t; +struct mvebu_mpp_mode; -struct ZSTD_matchState_t { - ZSTD_window_t window; - U32 loadedDictEnd; - U32 nextToUpdate; - U32 hashLog3; - U32 rowHashLog; - U16 *tagTable; - U32 hashCache[8]; - U32 *hashTable; - U32 *hashTable3; - U32 *chainTable; - U32 forceNonContiguous; - int dedicatedDictSearch; - optState_t opt; - const ZSTD_matchState_t *dictMatchState; - ZSTD_compressionParameters cParams; - const rawSeqStore_t *ldmSeqStore; +struct mvebu_pinctrl_soc_info { + u8 variant; + const struct mvebu_mpp_ctrl *controls; + struct mvebu_mpp_ctrl_data *control_data; + int ncontrols; + struct mvebu_mpp_mode *modes; + int nmodes; + struct pinctrl_gpio_range *gpioranges; + int ngpioranges; }; -struct seqDef_s { - U32 offBase; - U16 litLength; - U16 mlBase; +struct mvebu_mpp_ctrl { + const char *name; + u8 pid; + u8 npins; + unsigned int *pins; + int (*mpp_get)(struct mvebu_mpp_ctrl_data *, unsigned int, unsigned long *); + int (*mpp_set)(struct mvebu_mpp_ctrl_data *, unsigned int, unsigned long); + int (*mpp_gpio_req)(struct mvebu_mpp_ctrl_data *, unsigned int); + int (*mpp_gpio_dir)(struct mvebu_mpp_ctrl_data *, unsigned int, bool); }; -typedef int16_t S16; - -typedef uint8_t U8; - -enum { - ZSTDbss_compress = 0, - ZSTDbss_noCompress = 1, +struct mvebu_mpp_ctrl_data { + union { + void *base; + struct { + struct regmap *map; + u32 offset; + } regmap; + }; }; -typedef enum { - ZSTDcs_created = 0, - ZSTDcs_init = 1, - ZSTDcs_ongoing = 2, - ZSTDcs_ending = 3, -} ZSTD_compressionStage_e; - -typedef struct { - int contentSizeFlag; - int checksumFlag; - int noDictIDFlag; -} ZSTD_frameParameters; - -typedef enum { - ZSTD_dictDefaultAttach = 0, - ZSTD_dictForceAttach = 1, - ZSTD_dictForceCopy = 2, - ZSTD_dictForceLoad = 3, -} ZSTD_dictAttachPref_e; - -typedef struct { - ZSTD_paramSwitch_e enableLdm; - U32 hashLog; - U32 bucketSizeLog; - U32 minMatchLength; - U32 hashRateLog; - U32 windowLog; -} ldmParams_t; - -typedef enum { - ZSTD_sf_noBlockDelimiters = 0, - ZSTD_sf_explicitBlockDelimiters = 1, -} ZSTD_sequenceFormat_e; +struct mvebu_mpp_ctrl_setting; -struct ZSTD_CCtx_params_s { - ZSTD_format_e format; - ZSTD_compressionParameters cParams; - ZSTD_frameParameters fParams; - int compressionLevel; - int forceWindow; - size_t targetCBlockSize; - int srcSizeHint; - ZSTD_dictAttachPref_e attachDictPref; - ZSTD_paramSwitch_e literalCompressionMode; - int nbWorkers; - size_t jobSize; - int overlapLog; - int rsyncable; - ldmParams_t ldmParams; - int enableDedicatedDictSearch; - ZSTD_bufferMode_e inBufferMode; - ZSTD_bufferMode_e outBufferMode; - ZSTD_sequenceFormat_e blockDelimiters; - int validateSequences; - ZSTD_paramSwitch_e useBlockSplitter; - ZSTD_paramSwitch_e useRowMatchFinder; - int deterministicRefPrefix; - ZSTD_customMem customMem; +struct mvebu_mpp_mode { + u8 pid; + struct mvebu_mpp_ctrl_setting *settings; }; -typedef struct ZSTD_CCtx_params_s ZSTD_CCtx_params; - -typedef enum { - ZSTD_cwksp_alloc_objects = 0, - ZSTD_cwksp_alloc_buffers = 1, - ZSTD_cwksp_alloc_aligned = 2, -} ZSTD_cwksp_alloc_phase_e; +struct mvebu_mpp_ctrl_setting { + u8 val; + const char *name; + const char *subname; + u8 variant; + u8 flags; +}; -typedef enum { - ZSTD_cwksp_dynamic_alloc = 0, - ZSTD_cwksp_static_alloc = 1, -} ZSTD_cwksp_static_alloc_e; +enum { + PINMUX_TYPE_NONE = 0, + PINMUX_TYPE_FUNCTION = 1, + PINMUX_TYPE_GPIO = 2, + PINMUX_TYPE_OUTPUT = 3, + PINMUX_TYPE_INPUT = 4, +}; -typedef struct { - void *workspace; - void *workspaceEnd; - void *objectEnd; - void *tableEnd; - void *tableValidEnd; - void *allocStart; - BYTE allocFailed; - int workspaceOversizedDuration; - ZSTD_cwksp_alloc_phase_e phase; - ZSTD_cwksp_static_alloc_e isStatic; -} ZSTD_cwksp; +struct sh_pfc_soc_info; -struct POOL_ctx_s; +struct sh_pfc_window; -typedef struct POOL_ctx_s ZSTD_threadPool; +struct sh_pfc_pin_range; -typedef struct { - unsigned int offset; - unsigned int litLength; - unsigned int matchLength; - unsigned int rep; -} ZSTD_Sequence; +struct sh_pfc_chip; -typedef struct { - int collectSequences; - ZSTD_Sequence *seqStart; - size_t seqIndex; - size_t maxSequences; -} SeqCollector; +struct sh_pfc { + struct device *dev; + const struct sh_pfc_soc_info *info; + spinlock_t lock; + unsigned int num_windows; + struct sh_pfc_window *windows; + unsigned int num_irqs; + unsigned int *irqs; + struct sh_pfc_pin_range *ranges; + unsigned int nr_ranges; + unsigned int nr_gpio_pins; + struct sh_pfc_chip *gpio; + u32 *saved_regs; +}; -typedef struct { - U32 offset; - U32 checksum; -} ldmEntry_t; +struct pinmux_range { + u16 begin; + u16 end; + u16 force; +}; -typedef struct { - const BYTE *split; - U32 hash; - U32 checksum; - ldmEntry_t *bucket; -} ldmMatchCandidate_t; +struct sh_pfc_soc_operations; -typedef struct { - ZSTD_window_t window; - ldmEntry_t *hashTable; - U32 loadedDictEnd; - BYTE *bucketOffsets; - size_t splitIndices[64]; - ldmMatchCandidate_t matchCandidates[64]; -} ldmState_t; +struct pinmux_irq; -typedef struct { - ZSTD_entropyCTables_t entropy; - U32 rep[3]; -} ZSTD_compressedBlockState_t; +struct sh_pfc_pin; -typedef struct { - ZSTD_compressedBlockState_t *prevCBlock; - ZSTD_compressedBlockState_t *nextCBlock; - ZSTD_matchState_t matchState; -} ZSTD_blockState_t; +struct sh_pfc_pin_group; -typedef enum { - ZSTDb_not_buffered = 0, - ZSTDb_buffered = 1, -} ZSTD_buffered_policy_e; +struct sh_pfc_function; -typedef enum { - zcss_init = 0, - zcss_load = 1, - zcss_flush = 2, -} ZSTD_cStreamStage; +struct pinmux_cfg_reg; -typedef enum { - ZSTD_dct_auto = 0, - ZSTD_dct_rawContent = 1, - ZSTD_dct_fullDict = 2, -} ZSTD_dictContentType_e; +struct pinmux_drive_reg; -struct ZSTD_CDict_s; +struct pinmux_bias_reg; -typedef struct ZSTD_CDict_s ZSTD_CDict; +struct pinmux_ioctrl_reg; -typedef struct { - void *dictBuffer; - const void *dict; - size_t dictSize; - ZSTD_dictContentType_e dictContentType; - ZSTD_CDict *cdict; -} ZSTD_localDict; +struct pinmux_data_reg; -struct ZSTD_prefixDict_s { - const void *dict; - size_t dictSize; - ZSTD_dictContentType_e dictContentType; +struct sh_pfc_soc_info { + const char *name; + const struct sh_pfc_soc_operations *ops; + struct pinmux_range input; + struct pinmux_range output; + const struct pinmux_irq *gpio_irq; + unsigned int gpio_irq_size; + struct pinmux_range function; + const struct sh_pfc_pin *pins; + unsigned int nr_pins; + const struct sh_pfc_pin_group *groups; + unsigned int nr_groups; + const struct sh_pfc_function *functions; + unsigned int nr_functions; + const struct pinmux_cfg_reg *cfg_regs; + const struct pinmux_drive_reg *drive_regs; + const struct pinmux_bias_reg *bias_regs; + const struct pinmux_ioctrl_reg *ioctrl_regs; + const struct pinmux_data_reg *data_regs; + const u16 *pinmux_data; + unsigned int pinmux_data_size; + u32 unlock_reg; }; -typedef struct ZSTD_prefixDict_s ZSTD_prefixDict; - -typedef struct { - symbolEncodingType_e hType; - BYTE hufDesBuffer[128]; - size_t hufDesSize; -} ZSTD_hufCTablesMetadata_t; - -typedef struct { - symbolEncodingType_e llType; - symbolEncodingType_e ofType; - symbolEncodingType_e mlType; - BYTE fseTablesBuffer[133]; - size_t fseTablesSize; - size_t lastCountSize; -} ZSTD_fseCTablesMetadata_t; - -typedef struct { - ZSTD_hufCTablesMetadata_t hufMetadata; - ZSTD_fseCTablesMetadata_t fseMetadata; -} ZSTD_entropyCTablesMetadata_t; - -typedef struct { - seqStore_t fullSeqStoreChunk; - seqStore_t firstHalfSeqStore; - seqStore_t secondHalfSeqStore; - seqStore_t currSeqStore; - seqStore_t nextSeqStore; - U32 partitions[196]; - ZSTD_entropyCTablesMetadata_t entropyMetadata; -} ZSTD_blockSplitCtx; - -struct ZSTD_CCtx_s { - ZSTD_compressionStage_e stage; - int cParamsChanged; - int bmi2; - ZSTD_CCtx_params requestedParams; - ZSTD_CCtx_params appliedParams; - ZSTD_CCtx_params simpleApiParams; - U32 dictID; - size_t dictContentSize; - ZSTD_cwksp workspace; - size_t blockSize; - unsigned long long pledgedSrcSizePlusOne; - unsigned long long consumedSrcSize; - unsigned long long producedCSize; - struct xxh64_state xxhState; - ZSTD_customMem customMem; - ZSTD_threadPool *pool; - size_t staticSize; - SeqCollector seqCollector; - int isFirstBlock; - int initialized; - seqStore_t seqStore; - ldmState_t ldmState; - rawSeq *ldmSequences; - size_t maxNbLdmSequences; - rawSeqStore_t externSeqStore; - ZSTD_blockState_t blockState; - U32 *entropyWorkspace; - ZSTD_buffered_policy_e bufferedPolicy; - char *inBuff; - size_t inBuffSize; - size_t inToCompress; - size_t inBuffPos; - size_t inBuffTarget; - char *outBuff; - size_t outBuffSize; - size_t outBuffContentSize; - size_t outBuffFlushedSize; - ZSTD_cStreamStage streamStage; - U32 frameEnded; - ZSTD_inBuffer expectedInBuffer; - size_t expectedOutBufferSize; - ZSTD_localDict localDict; - const ZSTD_CDict *cdict; - ZSTD_prefixDict prefixDict; - ZSTD_blockSplitCtx blockSplitCtx; +struct sh_pfc_soc_operations { + int (*init)(struct sh_pfc *); + unsigned int (*get_bias)(struct sh_pfc *, unsigned int); + void (*set_bias)(struct sh_pfc *, unsigned int, unsigned int); + int (*pin_to_pocctrl)(unsigned int, u32 *); + int (*pin_to_portcr)(unsigned int); }; -typedef struct ZSTD_CCtx_s ZSTD_CCtx; - -struct ZSTD_CDict_s { - const void *dictContent; - size_t dictContentSize; - ZSTD_dictContentType_e dictContentType; - U32 *entropyWorkspace; - ZSTD_cwksp workspace; - ZSTD_matchState_t matchState; - ZSTD_compressedBlockState_t cBlockState; - ZSTD_customMem customMem; - U32 dictID; - int compressionLevel; - ZSTD_paramSwitch_e useRowMatchFinder; +struct pinmux_irq { + const short *gpios; }; -typedef enum { - ZSTD_c_compressionLevel = 100, - ZSTD_c_windowLog = 101, - ZSTD_c_hashLog = 102, - ZSTD_c_chainLog = 103, - ZSTD_c_searchLog = 104, - ZSTD_c_minMatch = 105, - ZSTD_c_targetLength = 106, - ZSTD_c_strategy = 107, - ZSTD_c_enableLongDistanceMatching = 160, - ZSTD_c_ldmHashLog = 161, - ZSTD_c_ldmMinMatch = 162, - ZSTD_c_ldmBucketSizeLog = 163, - ZSTD_c_ldmHashRateLog = 164, - ZSTD_c_contentSizeFlag = 200, - ZSTD_c_checksumFlag = 201, - ZSTD_c_dictIDFlag = 202, - ZSTD_c_nbWorkers = 400, - ZSTD_c_jobSize = 401, - ZSTD_c_overlapLog = 402, - ZSTD_c_experimentalParam1 = 500, - ZSTD_c_experimentalParam2 = 10, - ZSTD_c_experimentalParam3 = 1000, - ZSTD_c_experimentalParam4 = 1001, - ZSTD_c_experimentalParam5 = 1002, - ZSTD_c_experimentalParam6 = 1003, - ZSTD_c_experimentalParam7 = 1004, - ZSTD_c_experimentalParam8 = 1005, - ZSTD_c_experimentalParam9 = 1006, - ZSTD_c_experimentalParam10 = 1007, - ZSTD_c_experimentalParam11 = 1008, - ZSTD_c_experimentalParam12 = 1009, - ZSTD_c_experimentalParam13 = 1010, - ZSTD_c_experimentalParam14 = 1011, - ZSTD_c_experimentalParam15 = 1012, -} ZSTD_cParameter; - -typedef struct { - size_t error; - int lowerBound; - int upperBound; -} ZSTD_bounds; - -typedef struct { - ZSTD_compressionParameters cParams; - ZSTD_frameParameters fParams; -} ZSTD_parameters; - -typedef enum { - ZSTD_cpm_noAttachDict = 0, - ZSTD_cpm_attachDict = 1, - ZSTD_cpm_createCDict = 2, - ZSTD_cpm_unknown = 3, -} ZSTD_cParamMode_e; - -typedef enum { - ZSTD_e_continue = 0, - ZSTD_e_flush = 1, - ZSTD_e_end = 2, -} ZSTD_EndDirective; - -typedef enum { - ZSTD_reset_session_only = 1, - ZSTD_reset_parameters = 2, - ZSTD_reset_session_and_parameters = 3, -} ZSTD_ResetDirective; - -typedef struct { - U32 LLtype; - U32 Offtype; - U32 MLtype; - size_t size; - size_t lastCountSize; -} ZSTD_symbolEncodingTypeStats_t; - -struct repcodes_s { - U32 rep[3]; +struct sh_pfc_pin { + const char *name; + unsigned int configs; + u16 pin; + u16 enum_id; }; -typedef struct repcodes_s repcodes_t; - -typedef struct { - U32 *splitLocations; - size_t idx; -} seqStoreSplits; - -typedef enum { - ZSTD_dtlm_fast = 0, - ZSTD_dtlm_full = 1, -} ZSTD_dictTableLoadMethod_e; +struct sh_pfc_pin_group { + const char *name; + const unsigned int *pins; + const unsigned int *mux; + unsigned int nr_pins; +}; -typedef enum { - ZSTD_dlm_byCopy = 0, - ZSTD_dlm_byRef = 1, -} ZSTD_dictLoadMethod_e; +struct sh_pfc_function { + const char *name; + const char * const *groups; + unsigned int nr_groups; +}; -typedef ZSTD_CCtx ZSTD_CStream; +struct pinmux_cfg_reg { + u32 reg; + u8 reg_width; + u8 field_width; + const u16 *enum_ids; + const s8 *var_field_width; +}; -typedef struct { - U32 idx; - U32 posInSequence; - size_t posInSrc; -} ZSTD_sequencePosition; +struct pinmux_drive_reg_field { + u16 pin; + u8 offset; + u8 size; +}; -typedef size_t (*ZSTD_sequenceCopier)(ZSTD_CCtx *, ZSTD_sequencePosition *, const ZSTD_Sequence * const, size_t, const void *, size_t); +struct pinmux_drive_reg { + u32 reg; + const struct pinmux_drive_reg_field fields[10]; +}; -typedef enum { - ZSTD_defaultDisallowed = 0, - ZSTD_defaultAllowed = 1, -} ZSTD_defaultPolicy_e; +struct pinmux_bias_reg { + u32 puen; + u32 pud; + const u16 pins[32]; +}; -typedef enum { - ZSTD_noDict = 0, - ZSTD_extDict = 1, - ZSTD_dictMatchState = 2, - ZSTD_dedicatedDictSearch = 3, -} ZSTD_dictMode_e; +struct pinmux_ioctrl_reg { + u32 reg; +}; -typedef enum { - ZSTD_no_overlap = 0, - ZSTD_overlap_src_before_dst = 1, -} ZSTD_overlap_e; +struct pinmux_data_reg { + u32 reg; + u8 reg_width; + const u16 *enum_ids; +}; -typedef struct { - unsigned long long ingested; - unsigned long long consumed; - unsigned long long produced; - unsigned long long flushed; - unsigned int currentJobID; - unsigned int nbActiveWorkers; -} ZSTD_frameProgression; +struct sh_pfc_window { + phys_addr_t phys; + void *virt; + unsigned long size; +}; -typedef enum { - ZSTDcrp_makeClean = 0, - ZSTDcrp_leaveDirty = 1, -} ZSTD_compResetPolicy_e; +struct sh_pfc_pin_range { + u16 start; + u16 end; +}; -typedef enum { - ZSTDirp_continue = 0, - ZSTDirp_reset = 1, -} ZSTD_indexResetPolicy_e; +struct sh_pfc_pin_config; -typedef enum { - ZSTD_resetTarget_CDict = 0, - ZSTD_resetTarget_CCtx = 1, -} ZSTD_resetTarget_e; +struct sh_pfc_pinctrl { + struct pinctrl_dev *pctl; + struct pinctrl_desc pctl_desc; + struct sh_pfc *pfc; + struct pinctrl_pin_desc *pins; + struct sh_pfc_pin_config *configs; +}; -struct brcmstb_intc_init_params { - irq_flow_handler_t handler; - int cpu_status; - int cpu_clear; - int cpu_mask_status; - int cpu_mask_set; - int cpu_mask_clear; +struct sh_pfc_pin_config { + u16 gpio_enabled: 1; + u16 mux_mark: 15; }; -struct brcmstb_l2_intc_data { - struct irq_domain *domain; - struct irq_chip_generic *gc; - int status_offset; - int mask_offset; - bool can_wake; - u32 saved_mask; +struct iproc_gpio_chip { + struct gpio_chip gc; + spinlock_t lock; + struct device *dev; + void *base; + void *intr; }; -struct sun9i_usb_phy { - struct phy *phy; - void *pmu; - struct reset_control *reset; +struct iproc_pwmc { + struct pwm_chip chip; + void *base; struct clk *clk; - struct clk *hsic_clk; - enum usb_phy_interface type; }; -struct pll_ratio { - int clk_ref; - int calset_1; - int calset_2; - int calset_3; - int calset_4; - int cal_ctrl; +struct tegra_pwm_soc { + unsigned int num_channels; + unsigned long max_frequency; }; -struct miphy28lp_pll_gen { - int bank; - int speed; - int bias_boost_1; - int bias_boost_2; - int tx_ctrl_1; - int tx_ctrl_2; - int tx_ctrl_3; - int rx_k_gain; - int rx_vga_gain; - int rx_equ_gain_1; - int rx_equ_gain_2; - int rx_equ_gain_3; - int rx_buff_ctrl; +struct tegra_pwm_chip { + struct pwm_chip chip; + struct device *dev; + struct clk *clk; + struct reset_control *rst; + unsigned long clk_rate; + unsigned long min_period_ns; + void *regs; + const struct tegra_pwm_soc *soc; +}; + +enum iproc_pcie_reg { + IPROC_PCIE_CLK_CTRL = 0, + IPROC_PCIE_MSI_GIC_MODE = 1, + IPROC_PCIE_MSI_BASE_ADDR = 2, + IPROC_PCIE_MSI_WINDOW_SIZE = 3, + IPROC_PCIE_MSI_ADDR_LO = 4, + IPROC_PCIE_MSI_ADDR_HI = 5, + IPROC_PCIE_MSI_EN_CFG = 6, + IPROC_PCIE_CFG_IND_ADDR = 7, + IPROC_PCIE_CFG_IND_DATA = 8, + IPROC_PCIE_CFG_ADDR = 9, + IPROC_PCIE_CFG_DATA = 10, + IPROC_PCIE_INTX_EN = 11, + IPROC_PCIE_OARR0 = 12, + IPROC_PCIE_OMAP0 = 13, + IPROC_PCIE_OARR1 = 14, + IPROC_PCIE_OMAP1 = 15, + IPROC_PCIE_OARR2 = 16, + IPROC_PCIE_OMAP2 = 17, + IPROC_PCIE_OARR3 = 18, + IPROC_PCIE_OMAP3 = 19, + IPROC_PCIE_IARR0 = 20, + IPROC_PCIE_IMAP0 = 21, + IPROC_PCIE_IARR1 = 22, + IPROC_PCIE_IMAP1 = 23, + IPROC_PCIE_IARR2 = 24, + IPROC_PCIE_IMAP2 = 25, + IPROC_PCIE_IARR3 = 26, + IPROC_PCIE_IMAP3 = 27, + IPROC_PCIE_IARR4 = 28, + IPROC_PCIE_IMAP4 = 29, + IPROC_PCIE_CFG_RD_STATUS = 30, + IPROC_PCIE_LINK_STATUS = 31, + IPROC_PCIE_APB_ERR_EN = 32, + IPROC_PCIE_MAX_NUM_REG = 33, }; enum { - SYSCFG_CTRL = 0, - SYSCFG_STATUS = 1, - SYSCFG_PCI = 2, - SYSCFG_SATA = 3, - SYSCFG_REG_MAX = 4, + FB_BLANK_UNBLANK = 0, + FB_BLANK_NORMAL = 1, + FB_BLANK_VSYNC_SUSPEND = 2, + FB_BLANK_HSYNC_SUSPEND = 3, + FB_BLANK_POWERDOWN = 4, }; -enum miphy_sata_gen { - SATA_GEN1 = 0, - SATA_GEN2 = 1, - SATA_GEN3 = 2, +struct wm8505fb_info { + struct fb_info fb; + void *regbase; + unsigned int contrast; }; -struct miphy28lp_dev; +struct sp_clk_gate_info { + u16 reg; + u16 ext_parent; +}; -struct miphy28lp_phy { - struct phy *phy; - struct miphy28lp_dev *phydev; - void *base; - void *pipebase; - bool osc_force_ext; - bool osc_rdy; - bool px_rx_pol_inv; - bool ssc; - bool tx_impedance; - struct reset_control *miphy_rst; - u32 sata_gen; - u32 syscfg_reg[4]; - u8 type; +enum { + SEL_FRA = 0, + SDM_MOD = 1, + PH_SEL = 2, + NFRA = 3, + DIVR = 4, + DIVN = 5, + DIVM = 6, + P_MAX = 7, }; -struct miphy28lp_dev { - struct device *dev; - struct regmap *regmap; - struct mutex miphy_mutex; - struct miphy28lp_phy **phys; - int nphys; +struct sp_pll { + struct clk_hw hw; + void *reg; + spinlock_t lock; + int div_shift; + int div_width; + int pd_bit; + int bp_bit; + unsigned long brate; + u32 p[7]; }; -struct mtk_pinctrl_devdata; +enum kp_band { + KP_BAND_MID = 0, + KP_BAND_HIGH = 1, + KP_BAND_HIGH_HIGH = 2, +}; -struct mtk_pinctrl___2 { - struct regmap *regmap1; - struct regmap *regmap2; - struct pinctrl_desc pctl_desc; - struct device *dev; - struct gpio_chip *chip; - struct mtk_pinctrl_group *groups; - unsigned int ngroups; - const char **grp_names; - struct pinctrl_dev *pctl_dev; - const struct mtk_pinctrl_devdata *devdata; - struct mtk_eint *eint; +enum vco_freq_range { + VCO_LOW = 700000000, + VCO_MID = 1200000000, + VCO_HIGH = 2200000000, + VCO_HIGH_HIGH = 3100000000, + VCO_MAX = 4000000000, }; -struct mtk_desc_pin; +struct iproc_pll; -struct mtk_drv_group_desc; +struct iproc_clk_ctrl; -struct mtk_pin_drv_grp; +struct iproc_clk { + struct clk_hw hw; + struct iproc_pll *pll; + const struct iproc_clk_ctrl *ctrl; +}; -struct mtk_pin_ies_smt_set; +struct iproc_pll_ctrl; -struct mtk_pin_spec_pupd_set_samereg; +struct iproc_pll_vco_param; -struct mtk_pinctrl_devdata { - const struct mtk_desc_pin *pins; - unsigned int npins; - const struct mtk_drv_group_desc *grp_desc; - unsigned int n_grp_cls; - const struct mtk_pin_drv_grp *pin_drv_grp; - unsigned int n_pin_drv_grps; - const struct mtk_pin_ies_smt_set *spec_ies; - unsigned int n_spec_ies; - const struct mtk_pin_spec_pupd_set_samereg *spec_pupd; - unsigned int n_spec_pupd; - const struct mtk_pin_ies_smt_set *spec_smt; - unsigned int n_spec_smt; - int (*spec_pull_set)(struct regmap *, const struct mtk_pinctrl_devdata *, unsigned int, bool, unsigned int); - int (*spec_ies_smt_set)(struct regmap *, const struct mtk_pinctrl_devdata *, unsigned int, int, enum pin_config_param); - void (*spec_pinmux_set)(struct regmap *, unsigned int, unsigned int); - void (*spec_dir_set)(unsigned int *, unsigned int); - int (*mt8365_set_clr_mode)(struct regmap *, unsigned int, unsigned int, unsigned int, bool, bool); - unsigned int dir_offset; - unsigned int ies_offset; - unsigned int smt_offset; - unsigned int pullen_offset; - unsigned int pullsel_offset; - unsigned int drv_offset; - unsigned int dout_offset; - unsigned int din_offset; - unsigned int pinmux_offset; - unsigned short type1_start; - unsigned short type1_end; - unsigned char port_shf; - unsigned char port_mask; - unsigned char port_align; - struct mtk_eint_hw eint_hw; - struct mtk_eint_regs *eint_regs; - unsigned int mode_mask; - unsigned int mode_per_reg; - unsigned int mode_shf; +struct iproc_pll { + void *status_base; + void *control_base; + void *pwr_base; + void *asiu_base; + const struct iproc_pll_ctrl *ctrl; + const struct iproc_pll_vco_param *vco_param; + unsigned int num_vco_entries; }; -struct mtk_desc_eint { - unsigned char eintmux; - unsigned char eintnum; +struct iproc_pll_aon_pwr_ctrl { + unsigned int offset; + unsigned int pwr_width; + unsigned int pwr_shift; + unsigned int iso_shift; }; -struct mtk_desc_function; - -struct mtk_desc_pin { - struct pinctrl_pin_desc pin; - const struct mtk_desc_eint eint; - const struct mtk_desc_function *functions; +struct iproc_asiu_gate { + unsigned int offset; + unsigned int en_shift; }; -struct mtk_desc_function { - const char *name; - unsigned char muxval; +struct iproc_pll_reset_ctrl { + unsigned int offset; + unsigned int reset_shift; + unsigned int p_reset_shift; }; -struct mtk_drv_group_desc { - unsigned char min_drv; - unsigned char max_drv; - unsigned char low_bit; - unsigned char high_bit; - unsigned char step; +struct iproc_pll_dig_filter_ctrl { + unsigned int offset; + unsigned int ki_shift; + unsigned int ki_width; + unsigned int kp_shift; + unsigned int kp_width; + unsigned int ka_shift; + unsigned int ka_width; }; -struct mtk_pin_drv_grp { - unsigned short pin; - unsigned short offset; - unsigned char bit; - unsigned char grp; +struct iproc_pll_sw_ctrl { + unsigned int offset; + unsigned int shift; }; -struct mtk_pin_ies_smt_set { - unsigned short start; - unsigned short end; - unsigned short offset; - unsigned char bit; +struct iproc_clk_reg_op { + unsigned int offset; + unsigned int shift; + unsigned int width; }; -struct mtk_pin_spec_pupd_set_samereg { - unsigned short pin; - unsigned short offset; - unsigned char pupd_bit; - unsigned char r1_bit; - unsigned char r0_bit; +struct iproc_pll_vco_ctrl { + unsigned int u_offset; + unsigned int l_offset; }; -struct syscon_gpio_data { - unsigned int flags; - unsigned int bit_count; - unsigned int dat_bit_offset; - unsigned int dir_bit_offset; - void (*set)(struct gpio_chip *, unsigned int, int); +struct iproc_pll_ctrl { + unsigned long flags; + struct iproc_pll_aon_pwr_ctrl aon; + struct iproc_asiu_gate asiu; + struct iproc_pll_reset_ctrl reset; + struct iproc_pll_dig_filter_ctrl dig_filter; + struct iproc_pll_sw_ctrl sw_ctrl; + struct iproc_clk_reg_op ndiv_int; + struct iproc_clk_reg_op ndiv_frac; + struct iproc_clk_reg_op pdiv; + struct iproc_pll_vco_ctrl vco_ctrl; + struct iproc_clk_reg_op status; + struct iproc_clk_reg_op macro_mode; }; -struct syscon_gpio_priv { - struct gpio_chip chip; - struct regmap *syscon; - const struct syscon_gpio_data *data; - u32 dreg_offset; - u32 dir_reg_offset; +struct iproc_pll_vco_param { + unsigned long rate; + unsigned int ndiv_int; + unsigned int ndiv_frac; + unsigned int pdiv; }; -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, +struct iproc_clk_enable_ctrl { + unsigned int offset; + unsigned int enable_shift; + unsigned int hold_shift; + unsigned int bypass_shift; }; -struct pci_bus_resource { - struct list_head list; - struct resource *res; - unsigned int flags; +struct iproc_clk_ctrl { + unsigned int channel; + unsigned long flags; + struct iproc_clk_enable_ctrl enable; + struct iproc_clk_reg_op mdiv; }; -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; - }; +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); }; -union msi_domain_cookie { - u64 value; - void *ptr; - void *iobase; -}; +struct mbox_chan; -union msi_instance_cookie { - u64 value; - void *ptr; +struct hi6220_stub_clk { + u32 id; + struct device *dev; + struct clk_hw hw; + struct regmap *dfs_map; + struct mbox_client cl; + struct mbox_chan *mbox; }; -struct msi_desc_data { - union msi_domain_cookie dcookie; - union msi_instance_cookie icookie; +struct hi6220_mbox_msg { + unsigned char type; + unsigned char cmd; + unsigned char obj; + unsigned char src; + unsigned char para[4]; }; -struct arch_msi_msg_addr_lo { - u32 address_lo; +union hi6220_mbox_data { + unsigned int data[8]; + struct hi6220_mbox_msg msg; }; -typedef struct arch_msi_msg_addr_lo arch_msi_msg_addr_lo_t; +struct clk_psc_data; -struct arch_msi_msg_addr_hi { - u32 address_hi; +struct clk_psc { + struct clk_hw hw; + struct clk_psc_data *psc_data; + spinlock_t *lock; }; -typedef struct arch_msi_msg_addr_hi arch_msi_msg_addr_hi_t; - -struct arch_msi_msg_data { - u32 data; +struct clk_psc_data { + void *control_base; + void *domain_base; + u32 domain_id; }; -typedef struct arch_msi_msg_data arch_msi_msg_data_t; +enum { + MV98DX3236_CPU_TO_DDR = 0, + MV98DX3236_CPU_TO_MPLL = 1, +}; -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 rockchip_inv_clock { + struct clk_hw hw; + void *reg; + int shift; + int flags; + spinlock_t *lock; }; -struct msi_desc { - unsigned int irq; - unsigned int nvec_used; - struct device *dev; - struct msi_msg msg; - struct irq_affinity_desc *affinity; - struct device_attribute *sysfs_attrs; - void (*write_msi_msg)(struct msi_desc *, void *); - void *write_msi_msg_data; - u16 msi_index; - long: 32; - union { - struct pci_msi_desc pci; - struct msi_desc_data data; - }; +enum rockchip_pll_type { + pll_rk3036 = 0, + pll_rk3066 = 1, + pll_rk3328 = 2, + pll_rk3399 = 3, + pll_rk3588 = 4, + pll_rk3588_core = 5, }; -struct msi_domain_ops; +struct rockchip_pll_rate_table; -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 rockchip_pll_clock { + unsigned int id; + const char *name; + const char * const *parent_names; + u8 num_parents; + unsigned long flags; + int con_offset; + int mode_offset; + int mode_shift; + int lock_shift; + enum rockchip_pll_type type; + u8 pll_flags; + struct rockchip_pll_rate_table *rate_table; }; -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 rockchip_pll_rate_table { + unsigned long rate; + union { + struct { + unsigned int nr; + unsigned int nf; + unsigned int no; + unsigned int nb; + }; + struct { + unsigned int fbdiv; + unsigned int postdiv1; + unsigned int refdiv; + unsigned int postdiv2; + unsigned int dsmpd; + unsigned int frac; + }; + struct { + unsigned int m; + unsigned int p; + unsigned int s; + unsigned int k; + }; + }; }; -struct tegra_pcie_port_soc; - -struct tegra_pcie_soc { - unsigned int num_ports; - const struct tegra_pcie_port_soc *ports; - unsigned int msi_base_shift; - unsigned long afi_pex2_ctrl; - u32 pads_pll_ctl; - u32 tx_ref_sel; - u32 pads_refclk_cfg0; - u32 pads_refclk_cfg1; - u32 update_fc_threshold; - bool has_pex_clkreq_en; - bool has_pex_bias_ctrl; - bool has_intr_prsnt_sense; - bool has_cml_clk; - bool has_gen2; - bool force_pca_enable; - bool program_uphy; - bool update_clamp_threshold; - bool program_deskew_time; - bool update_fc_timer; - bool has_cache_bars; - struct { - struct { - u32 rp_ectl_2_r1; - u32 rp_ectl_4_r1; - u32 rp_ectl_5_r1; - u32 rp_ectl_6_r1; - u32 rp_ectl_2_r2; - u32 rp_ectl_4_r2; - u32 rp_ectl_5_r2; - u32 rp_ectl_6_r2; - } regs; - bool enable; - } ectl; +enum rockchip_clk_branch_type { + branch_composite = 0, + branch_mux = 1, + branch_muxgrf = 2, + branch_divider = 3, + branch_fraction_divider = 4, + branch_gate = 5, + branch_mmc = 6, + branch_inverter = 7, + branch_factor = 8, + branch_ddrclk = 9, + branch_half_divider = 10, }; -struct tegra_pcie_port_soc { - struct { - u8 turnoff_bit; - u8 ack_bit; - } pme; +struct rockchip_clk_branch { + unsigned int id; + enum rockchip_clk_branch_type branch_type; + const char *name; + const char * const *parent_names; + u8 num_parents; + unsigned long flags; + int muxdiv_offset; + u8 mux_shift; + u8 mux_width; + u8 mux_flags; + u32 *mux_table; + int div_offset; + u8 div_shift; + u8 div_width; + u8 div_flags; + struct clk_div_table *div_table; + int gate_offset; + u8 gate_shift; + u8 gate_flags; + struct rockchip_clk_branch *child; }; -struct tegra_pcie; +struct rockchip_cpuclk_reg_data { + int core_reg[4]; + u8 div_core_shift[4]; + u32 div_core_mask[4]; + int num_cores; + int mux_core_reg; + u8 mux_core_alt; + u8 mux_core_main; + u8 mux_core_shift; + u32 mux_core_mask; +}; -struct tegra_pcie_port { - struct tegra_pcie *pcie; - struct device_node *np; - struct list_head list; - struct resource regs; - void *base; - unsigned int index; - unsigned int lanes; - struct phy **phys; - struct gpio_desc *reset_gpio; +struct rockchip_cpuclk_clksel { + int reg; + u32 val; }; -struct tegra_msi { - unsigned long used[8]; - struct irq_domain *domain; - struct mutex map_lock; - spinlock_t mask_lock; - void *virt; - dma_addr_t phys; - int irq; +struct rockchip_cpuclk_rate_table { + unsigned long prate; + struct rockchip_cpuclk_clksel divs[6]; + struct rockchip_cpuclk_clksel pre_muxs[6]; + struct rockchip_cpuclk_clksel post_muxs[6]; }; -struct tegra_pcie { - struct device *dev; - void *pads; - void *afi; - void *cfg; - int irq; - struct resource cs; - struct clk *pex_clk; - struct clk *afi_clk; - struct clk *pll_e; - struct clk *cml_clk; - struct reset_control *pex_rst; - struct reset_control *afi_rst; - struct reset_control *pcie_xrst; - bool legacy_phy; - struct phy *phy; - struct tegra_msi msi; - struct list_head ports; - u32 xbar_config; - struct regulator_bulk_data *supplies; - unsigned int num_supplies; - const struct tegra_pcie_soc *soc; - struct dentry *debugfs; +enum rk3288_variant { + RK3288_CRU = 0, + RK3288W_CRU = 1, }; -struct amba_device; +struct rockchip_clk_provider { + void *reg_base; + struct clk_onecell_data clk_data; + struct device_node *cru_node; + struct regmap *grf; + spinlock_t lock; +}; -struct amba_id; +struct pll_rate_tbl; -struct amba_driver { - struct device_driver drv; - int (*probe)(struct amba_device *, const struct amba_id *); - void (*remove)(struct amba_device *); - void (*shutdown)(struct amba_device *); - const struct amba_id *id_table; - bool driver_managed_dma; +struct clk_vco { + struct clk_hw hw; + void *mode_reg; + void *cfg_reg; + struct pll_rate_tbl *rtbl; + u8 rtbl_cnt; + spinlock_t *lock; }; -struct amba_cs_uci_id { - unsigned int devarch; - unsigned int devarch_mask; - unsigned int devtype; - void *data; +struct pll_rate_tbl { + u8 mode; + u16 m; + u8 n; + u8 p; }; -struct amba_device { - struct device dev; - struct resource res; - struct clk *pclk; - struct device_dma_parameters dma_parms; - unsigned int periphid; - struct mutex periphid_lock; - unsigned int cid; - struct amba_cs_uci_id uci; - unsigned int irq[9]; - const char *driver_override; - long: 32; +struct clk_pll___3 { + struct clk_hw hw; + struct clk_vco *vco; + const char *parent[1]; + spinlock_t *lock; }; -struct amba_id { - unsigned int id; - unsigned int mask; - void *data; -}; +typedef unsigned long (*clk_calc_rate)(struct clk_hw *, unsigned long, int); -struct hisi_fixed_factor_clock { - unsigned int id; - char *name; - const char *parent_name; - unsigned long mult; - unsigned long div; - unsigned long flags; -}; +struct clkgen_quadfs_data; -struct hisi_divider_clock { - unsigned int id; - const char *name; - const char *parent_name; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u8 div_flags; - struct clk_div_table *table; - const char *alias; -}; +struct clkgen_clk_out; -enum { - MV98DX3236_CPU_TO_DDR = 0, - MV98DX3236_CPU_TO_MPLL = 1, +struct clkgen_quadfs_data_clks { + struct clkgen_quadfs_data *data; + const struct clkgen_clk_out *outputs; }; -struct mn { - u8 mnctr_en_bit; - u8 mnctr_reset_bit; - u8 mnctr_mode_shift; - u8 n_val_shift; - u8 m_val_shift; - u8 width; - bool reset_in_cc; +struct clkgen_field { + unsigned int offset; + unsigned int mask; + unsigned int shift; }; -struct pre_div { - u8 pre_div_shift; - u8 pre_div_width; -}; +struct stm_fs; -struct src_sel { - u8 src_sel_shift; - const struct parent_map *parent_map; +struct clkgen_quadfs_data { + bool reset_present; + bool bwfilter_present; + bool lockstatus_present; + bool powerup_polarity; + bool standby_polarity; + bool nsdiv_present; + bool nrst_present; + struct clkgen_field ndiv; + struct clkgen_field ref_bw; + struct clkgen_field nreset; + struct clkgen_field npda; + struct clkgen_field lock_status; + struct clkgen_field nrst[4]; + struct clkgen_field nsb[4]; + struct clkgen_field en[4]; + struct clkgen_field mdiv[4]; + struct clkgen_field pe[4]; + struct clkgen_field sdiv[4]; + struct clkgen_field nsdiv[4]; + const struct clk_ops *pll_ops; + int (*get_params)(unsigned long, unsigned long, struct stm_fs *); + int (*get_rate)(unsigned long, const struct stm_fs *, unsigned long *); }; -struct clk_rcg { - u32 ns_reg; - u32 md_reg; - struct mn mn; - struct pre_div p; - struct src_sel s; - const struct freq_tbl *freq_tbl; - struct clk_regmap clkr; +struct stm_fs { + unsigned long ndiv; + unsigned long mdiv; + unsigned long pe; + unsigned long sdiv; + unsigned long nsdiv; }; -struct clk_factors_config; - -struct factors_request; - -struct factors_data { - int enable; - int mux; - int muxmask; - const struct clk_factors_config *table; - void (*getter)(struct factors_request *); - void (*recalc)(struct factors_request *); +struct clkgen_clk_out { const char *name; + unsigned long flags; }; -struct clk_factors_config { - u8 nshift; - u8 nwidth; - u8 kshift; - u8 kwidth; - u8 mshift; - u8 mwidth; - u8 pshift; - u8 pwidth; - u8 n_start; +struct st_clk_quadfs_fsynth { + struct clk_hw hw; + void *regs_base; + spinlock_t *lock; + struct clkgen_quadfs_data *data; + u32 chan; + u32 md; + u32 pe; + u32 sdiv; + u32 nsdiv; }; -struct factors_request { - unsigned long rate; - unsigned long parent_rate; - u8 parent_index; - u8 n; - u8 k; - u8 m; - u8 p; +struct st_clk_quadfs_pll { + struct clk_hw hw; + void *regs_base; + spinlock_t *lock; + struct clkgen_quadfs_data *data; + u32 ndiv; }; -struct ccu_nkm { - u32 enable; - u32 lock; - struct ccu_mult_internal n; - struct ccu_mult_internal k; - struct ccu_div_internal m; - struct ccu_mux_internal mux; - unsigned int fixed_post_div; - struct ccu_common common; +struct ccu_reset { + void *base; + struct ccu_reset_map *reset_map; + spinlock_t *lock; + struct reset_controller_dev rcdev; }; -struct ccu_nk { - u16 reg; +struct ccu_nkmp { u32 enable; u32 lock; struct ccu_mult_internal n; struct ccu_mult_internal k; + struct ccu_div_internal m; + struct ccu_div_internal p; unsigned int fixed_post_div; + unsigned int max_rate; struct ccu_common common; }; -struct ccu_mux { +struct ccu_mult { u32 enable; + u32 lock; + struct ccu_frac_internal frac; + struct ccu_mult_internal mult; struct ccu_mux_internal mux; struct ccu_common common; }; -struct ccu_phase { - u8 shift; - u8 width; - struct ccu_common common; -}; - -struct ccu_mux_nb { - struct notifier_block clk_nb; - struct ccu_common *common; - struct ccu_mux_internal *cm; - u32 delay_us; - u8 bypass_index; - u8 original_index; -}; +typedef void (*ti_of_clk_init_cb_t)(void *, struct device_node *); enum uniphier_clk_type { UNIPHIER_CLK_TYPE_CPUGEAR = 0, @@ -66081,13 +73598,6 @@ enum uniphier_clk_type { UNIPHIER_CLK_TYPE_MUX = 4, }; -struct uniphier_clk_cpugear_data { - const char *parent_names[16]; - unsigned int num_parents; - unsigned int regbase; - unsigned int mask; -}; - struct uniphier_clk_fixed_factor_data { const char *parent_name; unsigned int mult; @@ -66125,2605 +73635,2285 @@ struct uniphier_clk_data { } data; }; -struct icst_params { - unsigned long ref; - unsigned long vco_max; - unsigned long vco_min; - unsigned short vd_min; - unsigned short vd_max; - unsigned char rd_min; - unsigned char rd_max; - const unsigned char *s2div; - const unsigned char *idx2s; +struct dma_chan_tbl_ent { + struct dma_chan *chan; }; -enum icst_control_type { - ICST_VERSATILE = 0, - ICST_INTEGRATOR_AP_CM = 1, - ICST_INTEGRATOR_AP_SYS = 2, - ICST_INTEGRATOR_AP_PCI = 3, - ICST_INTEGRATOR_CP_CM_CORE = 4, - ICST_INTEGRATOR_CP_CM_MEM = 5, - ICST_INTEGRATOR_IM_PD1 = 6, +struct dmaengine_unmap_pool { + struct kmem_cache *cache; + const char *name; + mempool_t *pool; + size_t size; }; -struct clk_icst { - struct clk_hw hw; - struct regmap *map; - u32 vcoreg_off; - u32 lockreg_off; - struct icst_params *params; - unsigned long rate; - enum icst_control_type ctype; +struct reg_offset_data { + u32 base_offset; + unsigned int pipe_mult; + unsigned int evnt_mult; + unsigned int ee_mult; }; -struct icst_vco { - unsigned short v; - unsigned char r; - unsigned char s; +enum bam_reg { + BAM_CTRL = 0, + BAM_REVISION = 1, + BAM_NUM_PIPES = 2, + BAM_DESC_CNT_TRSHLD = 3, + BAM_IRQ_SRCS = 4, + BAM_IRQ_SRCS_MSK = 5, + BAM_IRQ_SRCS_UNMASKED = 6, + BAM_IRQ_STTS = 7, + BAM_IRQ_CLR = 8, + BAM_IRQ_EN = 9, + BAM_CNFG_BITS = 10, + BAM_IRQ_SRCS_EE = 11, + BAM_IRQ_SRCS_MSK_EE = 12, + BAM_P_CTRL = 13, + BAM_P_RST = 14, + BAM_P_HALT = 15, + BAM_P_IRQ_STTS = 16, + BAM_P_IRQ_CLR = 17, + BAM_P_IRQ_EN = 18, + BAM_P_EVNT_DEST_ADDR = 19, + BAM_P_EVNT_REG = 20, + BAM_P_SW_OFSTS = 21, + BAM_P_DATA_FIFO_ADDR = 22, + BAM_P_DESC_FIFO_ADDR = 23, + BAM_P_EVNT_GEN_TRSHLD = 24, + BAM_P_FIFO_SIZES = 25, }; -struct clk_icst_desc { - const struct icst_params *params; - u32 vco_offset; - u32 lock_offset; +struct bam_chan; + +struct bam_device { + void *regs; + struct device *dev; + struct dma_device common; + struct bam_chan *channels; + u32 num_channels; + u32 num_ees; + u32 ee; + bool controlled_remotely; + bool powered_remotely; + u32 active_channels; + const struct reg_offset_data *layout; + struct clk *bamclk; + int irq; + struct tasklet_struct task; }; -struct ipu_irq_bank; +struct bam_desc_hw; -struct ipu; +struct bam_chan { + struct virt_dma_chan vc; + struct bam_device *bdev; + u32 id; + struct dma_slave_config slave; + struct bam_desc_hw *fifo_virt; + dma_addr_t fifo_phys; + unsigned short head; + unsigned short tail; + unsigned int initialized; + unsigned int paused; + unsigned int reconfigure; + struct list_head desc_list; + struct list_head node; +}; -struct ipu_irq_map { - unsigned int irq; - int source; - struct ipu_irq_bank *bank; - struct ipu *ipu; +struct bam_desc_hw { + __le32 addr; + __le16 size; + __le16 flags; }; -struct ipu_irq_bank { - unsigned int control; - unsigned int status; - struct ipu *ipu; +struct bam_async_desc { + struct virt_dma_desc vd; + u32 num_desc; + u32 xfer_len; + u16 flags; + struct bam_desc_hw *curr_desc; + struct list_head desc_node; + enum dma_transfer_direction dir; + size_t length; + struct bam_desc_hw desc[0]; }; -struct idmac { - struct dma_device dma; +struct max8907_platform_data { + struct regulator_init_data *init_data[29]; + bool pm_off; }; -struct ipu { - void *reg_ipu; - void *reg_ic; - unsigned int irq_fn; - unsigned int irq_err; - unsigned int irq_base; - unsigned long channel_init_mask; - spinlock_t lock; - struct clk *ipu_clk; - struct device *dev; - struct idmac idmac; - struct idmac_channel channel[32]; - struct tasklet_struct tasklet; +struct max8907_regulator { + struct regulator_desc desc[29]; }; -struct imx_pgc_domain; +enum tps65217_bl_isel { + TPS65217_BL_ISET1 = 1, + TPS65217_BL_ISET2 = 2, +}; -struct imx_pgc_regs; +enum tps65217_bl_fdim { + TPS65217_BL_FDIM_100HZ = 0, + TPS65217_BL_FDIM_200HZ = 1, + TPS65217_BL_FDIM_500HZ = 2, + TPS65217_BL_FDIM_1000HZ = 3, +}; -struct imx_pgc_domain_data { - const struct imx_pgc_domain *domains; - size_t domains_num; - const struct regmap_access_table *reg_access_table; - const struct imx_pgc_regs *pgc_regs; +enum tps65217_regulator_id { + TPS65217_DCDC_1 = 0, + TPS65217_DCDC_2 = 1, + TPS65217_DCDC_3 = 2, + TPS65217_LDO_1 = 3, + TPS65217_LDO_2 = 4, + TPS65217_LDO_3 = 5, + TPS65217_LDO_4 = 6, }; -struct imx_pgc_domain { - struct generic_pm_domain genpd; - struct regmap *regmap; - const struct imx_pgc_regs *regs; - struct regulator *regulator; - struct reset_control *reset; - struct clk_bulk_data *clks; - int num_clks; - unsigned long pgc; - const struct { - u32 pxx; - u32 map; - u32 hskreq; - u32 hskack; - } bits; - const int voltage; - const bool keep_clocks; +struct tps65217_board; + +struct tps65217 { struct device *dev; - unsigned int pgc_sw_pup_reg; - unsigned int pgc_sw_pdn_reg; + struct tps65217_board *pdata; + struct regulator_desc desc[7]; + struct regmap *regmap; + u8 *strobes; + struct irq_domain *irq_domain; + struct mutex irq_lock; + u8 irq_mask; + int irq; }; -struct imx_pgc_regs { - u16 map; - u16 pup; - u16 pdn; - u16 hsk; +struct tps65217_bl_pdata; + +struct tps65217_board { + struct regulator_init_data *tps65217_init_data[7]; + struct device_node *of_node[7]; + struct tps65217_bl_pdata *bl_pdata; }; -struct fixed_dev_type { - bool has_enable_clock; - bool has_performance_state; +struct tps65217_bl_pdata { + enum tps65217_bl_isel isel; + enum tps65217_bl_fdim fdim; + int dft_brightness; }; -struct fixed_voltage_config { - const char *supply_name; - const char *input_supply; - int microvolts; - unsigned int startup_delay; - unsigned int off_on_delay; - unsigned int enabled_at_boot: 1; - struct regulator_init_data *init_data; +enum tty_flow_change { + TTY_FLOW_NO_CHANGE = 0, + TTY_THROTTLE_SAFE = 1, + TTY_UNTHROTTLE_SAFE = 2, }; -struct fixed_voltage_data { - struct regulator_desc desc; - struct regulator_dev *dev; - struct clk *enable_clock; - unsigned int enable_counter; - int performance_state; +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 ti_abb_reg { - u32 setup_off; - u32 control_off; - u32 sr2_wtcnt_value_mask; - u32 fbb_sel_mask; - u32 rbb_sel_mask; - u32 sr2_en_mask; - u32 opp_change_mask; - u32 opp_sel_mask; +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 ti_abb_info; +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 ti_abb { - struct regulator_desc rdesc; - struct clk *clk; - void *base; - void *setup_reg; - void *control_reg; - void *int_base; - void *efuse_base; - void *ldo_base; - const struct ti_abb_reg *regs; - u32 txdone_mask; - u32 ldovbb_override_mask; - u32 ldovbb_vset_mask; - struct ti_abb_info *info; - int current_info_idx; - u32 settling_time; +struct uart_8250_dma; + +struct uart_8250_ops; + +struct uart_8250_em485; + +struct uart_8250_port { + struct uart_port port; + struct timer_list timer; + struct list_head list; + u32 capabilities; + u16 bugs; + unsigned int tx_loadsz; + unsigned char acr; + unsigned char fcr; + unsigned char ier; + unsigned char lcr; + unsigned char mcr; + unsigned char cur_iotype; + unsigned int rpm_tx_active; + unsigned char canary; + unsigned char probe; + struct mctrl_gpios *gpios; + u16 lsr_saved_flags; + u16 lsr_save_mask; + unsigned char msr_saved_flags; + struct uart_8250_dma *dma; + const struct uart_8250_ops *ops; + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + struct uart_8250_em485 *em485; + void (*rs485_start_tx)(struct uart_8250_port *); + void (*rs485_stop_tx)(struct uart_8250_port *); + struct delayed_work overrun_backoff; + u32 overrun_backoff_time_ms; }; -struct ti_abb_info { - u32 opp_sel; - u32 vset; +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 vcs_poll_data { - struct notifier_block notifier; - unsigned int cons_num; - int event; - wait_queue_head_t waitq; - struct fasync_struct *fasync; +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 vt_notifier_param { - struct vc_data *vc; - unsigned int c; +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; + long: 32; }; -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 *); +struct of_serial_info { + struct clk *clk; + struct reset_control *rst; + int type; + int line; +}; + +struct vt8500_port { + struct uart_port uart; + char name[16]; + struct clk *clk; + unsigned int clk_predivisor; + unsigned int ier; + unsigned int vt8500_uart_flags; +}; + +struct meson_rng_priv { 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 st_rng_data { +struct meson_rng_data { void *base; - struct hwrng ops; + struct hwrng rng; + struct device *dev; }; -struct iova_magazine; - -struct iova_cpu_rcache { - spinlock_t lock; - struct iova_magazine *loaded; - struct iova_magazine *prev; +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 iova_magazine { - unsigned long size; - unsigned long pfns[127]; +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 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 drm_property_enum { + uint64_t value; + struct list_head head; + char name[32]; }; -struct host1x; +struct drm_prop_enum_list { + int type; + const char *name; +}; -struct host1x_job; +struct drm_mode_property_enum { + __u64 value; + char name[32]; +}; -struct host1x_channel_ops { - int (*init)(struct host1x_channel *, struct host1x *, unsigned int); - int (*submit)(struct host1x_job *); +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; }; -enum cdma_event { - CDMA_EVENT_NONE = 0, - CDMA_EVENT_SYNC_QUEUE_EMPTY = 1, - CDMA_EVENT_PUSH_BUFFER_SPACE = 2, +struct drm_mode_get_blob { + __u32 blob_id; + __u32 length; + __u64 data; }; -struct push_buffer { - void *mapped; - dma_addr_t dma; - dma_addr_t phys; - u32 fence; - u32 pos; - u32 size; - u32 alloc_size; +struct drm_mode_create_blob { + __u64 data; + __u32 length; + __u32 blob_id; }; -struct buffer_timeout { - struct delayed_work wq; - bool initialized; - struct host1x_syncpt *syncpt; - u32 syncpt_val; - ktime_t start_ktime; - struct host1x_client *client; - long: 32; +struct drm_mode_destroy_blob { + __u32 blob_id; }; -struct host1x_cdma { - struct mutex lock; - struct completion complete; - enum cdma_event event; - unsigned int slots_used; - unsigned int slots_free; - unsigned int first_get; - unsigned int last_pos; - struct push_buffer push_buffer; - struct list_head sync_queue; - long: 32; - struct buffer_timeout timeout; - bool running; - bool torndown; - struct work_struct update_work; - long: 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, }; -struct host1x_channel { - struct kref refcount; - unsigned int id; - struct mutex submitlock; - void *regs; - struct host1x_client *client; - struct device *dev; - struct host1x_cdma cdma; +struct drm_shadow_plane_state { + struct drm_plane_state base; + struct iosys_map map[4]; + struct iosys_map data[4]; }; -struct host1x_fence_list { +struct dma_fence_chain { + struct dma_fence base; + struct dma_fence __attribute__((btf_type_tag("rcu"))) *prev; + long: 32; + u64 prev_seqno; + struct dma_fence *fence; + union { + struct dma_fence_cb cb; + struct irq_work work; + }; spinlock_t lock; - struct list_head list; }; -struct host1x_syncpt_base; +struct drm_simple_display_pipe_funcs; -struct host1x_syncpt { - struct kref ref; - unsigned int id; - atomic_t min_val; - atomic_t max_val; - u32 base_val; - const char *name; - bool client_managed; - struct host1x *host; - struct host1x_syncpt_base *base; - struct host1x_fence_list fences; - bool locked; +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 reset_control_bulk_data { - const char *id; - struct reset_control *rstc; +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 host1x_channel_list { - struct host1x_channel *channels; - unsigned long *allocated_channels; -}; +struct mipi_dsi_device; -struct host1x_memory_context; +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 host1x_memory_context_list { - struct mutex lock; - struct host1x_memory_context *devs; - unsigned int len; +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, }; -struct host1x_info; +struct mipi_dsi_host; -struct host1x_syncpt_ops; +struct drm_dsc_config; -struct host1x_intr_ops; +struct mipi_dsi_device { + struct mipi_dsi_host *host; + long: 32; + 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 host1x_cdma_ops; +struct mipi_dsi_host_ops; -struct host1x_pushbuffer_ops; +struct mipi_dsi_host { + struct device *dev; + const struct mipi_dsi_host_ops *ops; + struct list_head list; +}; -struct host1x_debug_ops; +struct mipi_dsi_msg; -struct host1x { - const struct host1x_info *info; - void *regs; - void *hv_regs; - void *common_regs; - int syncpt_irq; - struct host1x_syncpt *syncpt; - struct host1x_syncpt_base *bases; - struct device *dev; - struct clk *clk; - struct reset_control_bulk_data resets[2]; - unsigned int nresets; - struct iommu_group *group; - struct iommu_domain *domain; - struct iova_domain iova; - dma_addr_t iova_end; - struct mutex intr_mutex; - const struct host1x_syncpt_ops *syncpt_op; - const struct host1x_intr_ops *intr_op; - const struct host1x_channel_ops *channel_op; - const struct host1x_cdma_ops *cdma_op; - const struct host1x_pushbuffer_ops *cdma_pb_op; - const struct host1x_debug_ops *debug_op; - struct host1x_syncpt *nop_sp; - struct mutex syncpt_mutex; - struct host1x_channel_list channel_list; - struct host1x_memory_context_list context_list; - struct dentry *debugfs; - struct mutex devices_lock; - struct list_head devices; - struct list_head list; - struct device_dma_parameters dma_parms; - struct host1x_bo_cache cache; +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 host1x_table_desc { - unsigned int base; - unsigned int count; +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 host1x_sid_entry; - -struct host1x_info { - unsigned int nb_channels; - unsigned int nb_pts; - unsigned int nb_bases; - unsigned int nb_mlocks; - int (*init)(struct host1x *); - unsigned int sync_offset; - u64 dma_mask; - bool has_wide_gather; - bool has_hypervisor; - bool has_common; - unsigned int num_sid_entries; - const struct host1x_sid_entry *sid_table; - struct host1x_table_desc streamid_vm_table; - struct host1x_table_desc classid_vm_table; - struct host1x_table_desc mmio_vm_table; - bool reserve_vblank_syncpts; -}; +struct display_timing; -struct host1x_sid_entry { - unsigned int base; - unsigned int offset; - unsigned int limit; +struct panel_desc { + const struct drm_display_mode *modes; + unsigned int num_modes; + const struct display_timing *timings; + unsigned int num_timings; + unsigned int bpc; + struct { + unsigned int width; + unsigned int height; + } size; + struct { + unsigned int prepare; + unsigned int enable; + unsigned int disable; + unsigned int unprepare; + } delay; + u32 bus_format; + u32 bus_flags; + int connector_type; }; -struct host1x_syncpt_base { - unsigned int id; - bool requested; +struct panel_desc_dsi { + struct panel_desc desc; + unsigned long flags; + enum mipi_dsi_pixel_format format; + unsigned int lanes; }; -struct host1x_syncpt_ops { - void (*restore)(struct host1x_syncpt *); - void (*restore_wait_base)(struct host1x_syncpt *); - void (*load_wait_base)(struct host1x_syncpt *); - u32 (*load)(struct host1x_syncpt *); - int (*cpu_incr)(struct host1x_syncpt *); - void (*assign_to_channel)(struct host1x_syncpt *, struct host1x_channel *); - void (*enable_protection)(struct host1x *); +struct timing_entry { + u32 min; + u32 typ; + u32 max; }; -struct host1x_intr_ops { - int (*init_host_sync)(struct host1x *, u32); - void (*set_syncpt_threshold)(struct host1x *, unsigned int, u32); - void (*enable_syncpt_intr)(struct host1x *, unsigned int); - void (*disable_syncpt_intr)(struct host1x *, unsigned int); - void (*disable_all_syncpt_intrs)(struct host1x *); - int (*free_syncpt_irq)(struct host1x *); +enum display_flags { + DISPLAY_FLAGS_HSYNC_LOW = 1, + DISPLAY_FLAGS_HSYNC_HIGH = 2, + DISPLAY_FLAGS_VSYNC_LOW = 4, + DISPLAY_FLAGS_VSYNC_HIGH = 8, + DISPLAY_FLAGS_DE_LOW = 16, + DISPLAY_FLAGS_DE_HIGH = 32, + DISPLAY_FLAGS_PIXDATA_POSEDGE = 64, + DISPLAY_FLAGS_PIXDATA_NEGEDGE = 128, + DISPLAY_FLAGS_INTERLACED = 256, + DISPLAY_FLAGS_DOUBLESCAN = 512, + DISPLAY_FLAGS_DOUBLECLK = 1024, + DISPLAY_FLAGS_SYNC_POSEDGE = 2048, + DISPLAY_FLAGS_SYNC_NEGEDGE = 4096, }; -struct host1x_cdma_ops { - void (*start)(struct host1x_cdma *); - void (*stop)(struct host1x_cdma *); - void (*flush)(struct host1x_cdma *); - int (*timeout_init)(struct host1x_cdma *); - void (*timeout_destroy)(struct host1x_cdma *); - void (*freeze)(struct host1x_cdma *); - void (*resume)(struct host1x_cdma *, u32); - void (*timeout_cpu_incr)(struct host1x_cdma *, u32, u32, u32, u32); +struct display_timing { + struct timing_entry pixelclock; + struct timing_entry hactive; + struct timing_entry hfront_porch; + struct timing_entry hback_porch; + struct timing_entry hsync_len; + struct timing_entry vactive; + struct timing_entry vfront_porch; + struct timing_entry vback_porch; + struct timing_entry vsync_len; + enum display_flags flags; }; -struct host1x_pushbuffer_ops { - void (*init)(struct push_buffer *); +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 output; - -struct host1x_debug_ops { - void (*debug_init)(struct dentry *); - void (*show_channel_cdma)(struct host1x *, struct host1x_channel *, struct output *); - void (*show_channel_fifo)(struct host1x *, struct host1x_channel *, struct output *); - void (*show_mlocks)(struct host1x *, struct output *); +struct drm_panel { + struct device *dev; + struct backlight_device *backlight; + const struct drm_panel_funcs *funcs; + int connector_type; + struct list_head list; + struct list_head followers; + struct mutex follower_lock; + bool prepare_prev_first; + bool prepared; + bool enabled; }; -struct output { - void (*fn)(void *, const char *, size_t, bool); - void *ctx; - char buf[256]; +enum drm_bus_flags { + DRM_BUS_FLAG_DE_LOW = 1, + DRM_BUS_FLAG_DE_HIGH = 2, + DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE = 4, + DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE = 8, + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE = 8, + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE = 4, + DRM_BUS_FLAG_DATA_MSB_TO_LSB = 16, + DRM_BUS_FLAG_DATA_LSB_TO_MSB = 32, + DRM_BUS_FLAG_SYNC_DRIVE_POSEDGE = 64, + DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE = 128, + DRM_BUS_FLAG_SYNC_SAMPLE_POSEDGE = 128, + DRM_BUS_FLAG_SYNC_SAMPLE_NEGEDGE = 64, + DRM_BUS_FLAG_SHARP_SIGNALS = 256, }; -struct host1x_memory_context { - struct host1x *host; - refcount_t ref; - struct pid *owner; - long: 32; - struct device dev; - u64 dma_mask; - u32 stream_id; +struct panel_simple { + struct drm_panel base; + bool enabled; + bool prepared; long: 32; + ktime_t unprepared_time; + const struct panel_desc *desc; + struct regulator *supply; + struct i2c_adapter *ddc; + struct gpio_desc *enable_gpio; + struct edid *edid; + struct drm_display_mode override_mode; + enum drm_panel_orientation orientation; }; -struct host1x_job_cmd; +struct videomode { + unsigned long pixelclock; + u32 hactive; + u32 hfront_porch; + u32 hback_porch; + u32 hsync_len; + u32 vactive; + u32 vfront_porch; + u32 vback_porch; + u32 vsync_len; + enum display_flags flags; +}; -struct host1x_reloc; +struct tps65218 { + struct device *dev; + unsigned int id; + u8 rev; + struct mutex tps_lock; + int irq; + u32 irq_mask; + struct regmap_irq_chip_data *irq_data; + struct regulator_desc desc[9]; + struct regmap *regmap; + u8 *strobes; +}; -struct host1x_job_unpin_data; +struct qcom_rpm_resource; -struct host1x_job { - struct kref ref; - struct list_head list; - struct host1x_channel *channel; - struct host1x_client *client; - struct host1x_job_cmd *cmds; - unsigned int num_cmds; - struct host1x_reloc *relocs; - unsigned int num_relocs; - struct host1x_job_unpin_data *unpins; - unsigned int num_unpins; - dma_addr_t *addr_phys; - dma_addr_t *gather_addr_phys; - dma_addr_t *reloc_addr_phys; - struct host1x_syncpt *syncpt; - u32 syncpt_incrs; - u32 syncpt_end; - struct dma_fence *fence; - struct dma_fence_cb fence_cb; - unsigned int timeout; - bool cancelled; - unsigned int first_get; - unsigned int num_slots; - size_t gather_copy_size; - dma_addr_t gather_copy; - u8 *gather_copy_mapped; - int (*is_addr_reg)(struct device *, u32, u32); - int (*is_valid_class)(u32); - u32 class; - bool serialize; - bool syncpt_recovery; - void (*release)(struct host1x_job *); - void *user_data; - bool enable_firewall; - struct host1x_memory_context *memory_context; - u32 engine_fallback_streamid; - u32 engine_streamid_offset; +struct qcom_rpm_data { + u32 version; + const struct qcom_rpm_resource *resource_table; + unsigned int n_resources; + unsigned int req_ctx_off; + unsigned int req_sel_off; + unsigned int ack_ctx_off; + unsigned int ack_sel_off; + unsigned int req_sel_size; + unsigned int ack_sel_size; }; -struct host1x_job_gather { - unsigned int words; - dma_addr_t base; - struct host1x_bo *bo; - unsigned int offset; - bool handled; +struct qcom_rpm_resource { + unsigned int target_id; + unsigned int status_id; + unsigned int select_id; + unsigned int size; }; -struct host1x_job_wait { - u32 id; - u32 threshold; - u32 next_class; - bool relative; +struct qcom_rpm { + struct device *dev; + struct regmap *ipc_regmap; + unsigned int ipc_offset; + unsigned int ipc_bit; + struct clk *ramclk; + struct completion ack; + struct mutex lock; + void *status_regs; + void *ctrl_regs; + void *req_regs; + u32 ack_status; + const struct qcom_rpm_data *data; }; -struct host1x_job_cmd { - bool is_wait; - union { - struct host1x_job_gather gather; - struct host1x_job_wait wait; - }; +enum scsi_devinfo_key { + SCSI_DEVINFO_GLOBAL = 0, + SCSI_DEVINFO_SPI = 1, }; -struct host1x_reloc { - struct { - struct host1x_bo *bo; - unsigned long offset; - } cmdbuf; - struct { - struct host1x_bo *bo; - unsigned long offset; - } target; - unsigned long shift; - unsigned long flags; +struct scsi_dev_info_list { + struct list_head dev_info_list; + char vendor[8]; + char model[16]; + blist_flags_t flags; + unsigned int compatible; + long: 32; }; -struct host1x_job_unpin_data { - struct host1x_bo_mapping *map; +struct scsi_dev_info_list_table { + struct list_head node; + struct list_head scsi_dev_info_list; + const char *name; + int key; }; -enum { - HOST1X_OPCODE_SETCLASS = 0, - HOST1X_OPCODE_INCR = 1, - HOST1X_OPCODE_NONINCR = 2, - HOST1X_OPCODE_MASK = 3, - HOST1X_OPCODE_IMM = 4, - HOST1X_OPCODE_RESTART = 5, - HOST1X_OPCODE_GATHER = 6, - HOST1X_OPCODE_SETSTRMID = 7, - HOST1X_OPCODE_SETAPPID = 8, - HOST1X_OPCODE_SETPYLD = 9, - HOST1X_OPCODE_INCR_W = 10, - HOST1X_OPCODE_NONINCR_W = 11, - HOST1X_OPCODE_GATHER_W = 12, - HOST1X_OPCODE_RESTART_W = 13, - HOST1X_OPCODE_EXTEND = 14, +struct double_list { + struct list_head *top; + struct list_head *bottom; }; -enum { - HOST1X_OPCODE_EXTEND_ACQUIRE_MLOCK = 0, - HOST1X_OPCODE_EXTEND_RELEASE_MLOCK = 1, +struct mtd_part_parser { + struct list_head list; + struct module *owner; + const char *name; + const struct of_device_id *of_match_table; + int (*parse_fn)(struct mtd_info *, const struct mtd_partition **, struct mtd_part_parser_data *); + void (*cleanup)(const struct mtd_partition *, int); }; -struct drm_prime_member { - struct dma_buf *dma_buf; - uint32_t handle; - struct rb_node dmabuf_rb; - struct rb_node handle_rb; +struct cmdline_mtd_partition { + struct cmdline_mtd_partition *next; + char *mtd_id; + int num_parts; + struct mtd_partition *parts; }; -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; +typedef union { + unsigned long x[1]; +} map_word; + +typedef enum { + FL_READY = 0, + FL_STATUS = 1, + FL_CFI_QUERY = 2, + FL_JEDEC_QUERY = 3, + FL_ERASING = 4, + FL_ERASE_SUSPENDING = 5, + FL_ERASE_SUSPENDED = 6, + FL_WRITING = 7, + FL_WRITING_TO_BUFFER = 8, + FL_OTP_WRITE = 9, + FL_WRITE_SUSPENDING = 10, + FL_WRITE_SUSPENDED = 11, + FL_PM_SUSPENDED = 12, + FL_SYNCING = 13, + FL_UNLOADING = 14, + FL_LOCKING = 15, + FL_UNLOCKING = 16, + FL_POINT = 17, + FL_XIP_WHILE_ERASING = 18, + FL_XIP_WHILE_WRITING = 19, + FL_SHUTDOWN = 20, + FL_READING = 21, + FL_CACHEDPRG = 22, + FL_RESETTING = 23, + FL_OTPING = 24, + FL_PREPARING_ERASE = 25, + FL_VERIFYING_ERASE = 26, + FL_UNKNOWN = 27, +} flstate_t; + +struct flchip { + unsigned long start; + int ref_point_counter; + flstate_t state; + flstate_t oldstate; + unsigned int write_suspended: 1; + unsigned int erase_suspended: 1; + unsigned long in_progress_block_addr; + unsigned long in_progress_block_mask; + struct mutex mutex; + wait_queue_head_t wq; + int word_write_time; + int buffer_write_time; + int erase_time; + int word_write_time_max; + int buffer_write_time_max; + int erase_time_max; void *priv; }; -struct sg_dma_page_iter { - struct sg_page_iter base; -}; +struct cfi_ident; -struct drm_prime_handle { - __u32 handle; - __u32 flags; - __s32 fd; +struct cfi_private { + uint16_t cmdset; + void *cmdset_priv; + int interleave; + int device_type; + int cfi_mode; + int addr_unlock1; + int addr_unlock2; + struct mtd_info * (*cmdset_setup)(struct map_info *); + struct cfi_ident *cfiq; + int mfr; + int id; + int numchips; + map_word sector_erase_cmd; + unsigned long chipshift; + const char *im_name; + unsigned long quirks; + struct flchip chips[0]; }; -struct dp_aux_ep_device { - struct device dev; - struct drm_dp_aux *aux; - long: 32; -}; +struct cfi_ident { + uint8_t qry[3]; + uint16_t P_ID; + uint16_t P_ADR; + uint16_t A_ID; + uint16_t A_ADR; + uint8_t VccMin; + uint8_t VccMax; + uint8_t VppMin; + uint8_t VppMax; + uint8_t WordWriteTimeoutTyp; + uint8_t BufWriteTimeoutTyp; + uint8_t BlockEraseTimeoutTyp; + uint8_t ChipEraseTimeoutTyp; + uint8_t WordWriteTimeoutMax; + uint8_t BufWriteTimeoutMax; + uint8_t BlockEraseTimeoutMax; + uint8_t ChipEraseTimeoutMax; + uint8_t DevSize; + uint16_t InterfaceDesc; + uint16_t MaxBufWriteSize; + uint8_t NumEraseRegions; + uint32_t EraseRegionInfo[0]; +} __attribute__((packed)); -struct dp_aux_ep_device_with_data { - struct dp_aux_ep_device aux_ep; - int (*done_probing)(struct drm_dp_aux *); - long: 32; +struct chip_probe { + char *name; + int (*probe_chip)(struct map_info *, __u32, unsigned long *, struct cfi_private *); }; -struct dp_aux_ep_driver { - int (*probe)(struct dp_aux_ep_device *); - void (*remove)(struct dp_aux_ep_device *); - void (*shutdown)(struct dp_aux_ep_device *); - struct device_driver driver; -}; +typedef struct mtd_info *cfi_cmdset_fn_t(struct map_info *, int); -struct wake_irq { - struct device *dev; - unsigned int status; - int irq; - const char *name; -}; +struct brcmnand_io_ops; -struct class_interface { - struct list_head node; - const struct class *class; - int (*add_dev)(struct device *); - void (*remove_dev)(struct device *); +struct brcmnand_soc { + bool (*ctlrdy_ack)(struct brcmnand_soc *); + void (*ctlrdy_set_enabled)(struct brcmnand_soc *, bool); + void (*prepare_data_bus)(struct brcmnand_soc *, bool, bool); + const struct brcmnand_io_ops *ops; }; -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 iproc_nand_soc { + struct brcmnand_soc soc; + void *idm_base; + void *ext_base; + spinlock_t idm_lock; }; -struct fwnode_link { - struct fwnode_handle *supplier; - struct list_head s_hook; - struct fwnode_handle *consumer; - struct list_head c_hook; - u8 flags; +struct brcmnand_io_ops { + u32 (*read_reg)(struct brcmnand_soc *, u32); + void (*write_reg)(struct brcmnand_soc *, u32, u32); }; -struct class_dir { - struct kobject kobj; - const struct class *class; +enum { + UBI_VOL_SKIP_CRC_CHECK_FLG = 1, }; -struct root_device { - struct device dev; - struct module *owner; - long: 32; +enum { + UBI_VID_DYNAMIC = 1, + UBI_VID_STATIC = 2, }; -struct klist_iter { - struct klist *i_klist; - struct klist_node *i_cur; +enum { + UBI_VTBL_AUTORESIZE_FLG = 1, + UBI_VTBL_SKIP_CRC_CHECK_FLG = 2, }; -struct subsys_private { - struct kset subsys; - struct kset *devices_kset; - struct list_head interfaces; - struct mutex mutex; - struct kset *drivers_kset; - struct klist klist_devices; - struct klist klist_drivers; - struct blocking_notifier_head bus_notifier; - unsigned int drivers_autoprobe: 1; - const struct bus_type *bus; - struct device *dev_root; - struct kset glue_dirs; - const struct class *class; - struct lock_class_key lock_key; +enum { + UBI_VOLUME_ADDED = 0, + UBI_VOLUME_REMOVED = 1, + UBI_VOLUME_RESIZED = 2, + UBI_VOLUME_RENAMED = 3, + UBI_VOLUME_UPDATED = 4, }; -struct dev_printk_info { - char subsystem[16]; - char device[48]; +struct ubi_rename_entry { + int new_name_len; + char new_name[128]; + int remove; + struct ubi_volume_desc *desc; + struct list_head list; }; -union device_attr_group_devres { - const struct attribute_group *group; - const struct attribute_group **groups; +struct ubi_volume; + +struct ubi_volume_desc { + struct ubi_volume *vol; + int mode; }; -struct tps65910_board; +struct ubi_device; -struct tps65910 { - struct device *dev; - struct i2c_client *i2c_client; - struct regmap *regmap; - unsigned long id; - struct tps65910_board *of_plat_data; - int chip_irq; - struct regmap_irq_chip_data *irq_data; -}; +struct ubi_eba_table; -struct tps65910_sleep_keepon_data { - unsigned int therm_keepon: 1; - unsigned int clkout32k_keepon: 1; - unsigned int i2chs_keepon: 1; +struct ubi_volume { + struct device dev; + struct cdev cdev; + struct ubi_device *ubi; + int vol_id; + int ref_count; + int readers; + int writers; + int exclusive; + int metaonly; + int reserved_pebs; + int vol_type; + int usable_leb_size; + int used_ebs; + int last_eb_bytes; + long: 32; + long long used_bytes; + int alignment; + int data_pad; + int name_len; + char name[128]; + int upd_ebs; + int ch_lnum; + long: 32; + long long upd_bytes; + long long upd_received; + void *upd_buf; + struct ubi_eba_table *eba_tbl; + unsigned int skip_check: 1; + unsigned int checked: 1; + unsigned int corrupted: 1; + unsigned int upd_marker: 1; + unsigned int updating: 1; + unsigned int changing_leb: 1; + unsigned int direct_writes: 1; + long: 32; }; -struct tps65910_board { - int gpio_base; - int irq; - int irq_base; - int vmbch_threshold; - int vmbch2_threshold; - bool en_ck32k_xtal; - bool en_dev_slp; - bool pm_off; - struct tps65910_sleep_keepon_data slp_keepon; - bool en_gpio_sleep[9]; - unsigned long regulator_ext_sleep_control[14]; - struct regulator_init_data *tps65910_pmic_init_data[14]; +struct ubi_fm_pool { + int pebs[256]; + int used; + int size; + int max_size; }; -struct tps65910_platform_data { - int irq; - int irq_base; +struct ubi_debug_info { + unsigned int chk_gen: 1; + unsigned int chk_io: 1; + unsigned int chk_fastmap: 1; + unsigned int disable_bgt: 1; + unsigned int emulate_bitflips: 1; + unsigned int emulate_io_failures: 1; + unsigned int emulate_power_cut: 2; + unsigned int power_cut_counter; + unsigned int power_cut_min; + unsigned int power_cut_max; + char dfs_dir_name[7]; + struct dentry *dfs_dir; + struct dentry *dfs_chk_gen; + struct dentry *dfs_chk_io; + struct dentry *dfs_chk_fastmap; + struct dentry *dfs_disable_bgt; + struct dentry *dfs_emulate_bitflips; + struct dentry *dfs_emulate_io_failures; + struct dentry *dfs_emulate_power_cut; + struct dentry *dfs_power_cut_min; + struct dentry *dfs_power_cut_max; }; -enum dma_fence_flag_bits { - DMA_FENCE_FLAG_SIGNALED_BIT = 0, - DMA_FENCE_FLAG_TIMESTAMP_BIT = 1, - DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2, - DMA_FENCE_FLAG_USER_BITS = 3, -}; +struct ubi_vtbl_record; -struct dma_fence_chain { - struct dma_fence base; - struct dma_fence __attribute__((btf_type_tag("rcu"))) *prev; +struct ubi_fastmap_layout; + +struct ubi_wl_entry; + +struct ubi_device { + struct cdev cdev; + long: 32; + struct device dev; + int ubi_num; + char ubi_name[9]; + int vol_count; + struct ubi_volume *volumes[129]; + spinlock_t volumes_lock; + int ref_count; + int image_seq; + int rsvd_pebs; + int avail_pebs; + int beb_rsvd_pebs; + int beb_rsvd_level; + int bad_peb_limit; + int autoresize_vol_id; + int vtbl_slots; + int vtbl_size; + struct ubi_vtbl_record *vtbl; + struct mutex device_mutex; + int max_ec; + int mean_ec; + long: 32; + unsigned long long global_sqnum; + spinlock_t ltree_lock; + struct rb_root ltree; + struct mutex alc_mutex; + int fm_disabled; + struct ubi_fastmap_layout *fm; + struct ubi_fm_pool fm_pool; + struct ubi_fm_pool fm_wl_pool; + struct rw_semaphore fm_eba_sem; + struct rw_semaphore fm_protect; + void *fm_buf; + size_t fm_size; + struct work_struct fm_work; + int fm_work_scheduled; + int fast_attach; + struct ubi_wl_entry *fm_anchor; + int fm_do_produce_anchor; + int fm_pool_rsv_cnt; + struct rb_root used; + struct rb_root erroneous; + struct rb_root free; + int free_count; + struct rb_root scrub; + struct list_head pq[10]; + int pq_head; + spinlock_t wl_lock; + struct mutex move_mutex; + struct rw_semaphore work_sem; + int wl_scheduled; + struct ubi_wl_entry **lookuptbl; + struct ubi_wl_entry *move_from; + struct ubi_wl_entry *move_to; + int move_to_put; + struct list_head works; + int works_count; + struct task_struct *bgt_thread; + int thread_enabled; + char bgt_name[13]; + long long flash_size; + int peb_count; + int peb_size; + int bad_peb_count; + int good_peb_count; + int corr_peb_count; + int erroneous_peb_count; + int max_erroneous; + int min_io_size; + int hdrs_min_io_size; + int ro_mode; + int leb_size; + int leb_start; + int ec_hdr_alsize; + int vid_hdr_alsize; + int vid_hdr_offset; + int vid_hdr_aloffset; + int vid_hdr_shift; + unsigned int bad_allowed: 1; + unsigned int nor_flash: 1; + int max_write_size; + struct mtd_info *mtd; + void *peb_buf; + struct mutex buf_mutex; + struct mutex ckvol_mutex; + struct ubi_debug_info dbg; long: 32; - u64 prev_seqno; - struct dma_fence *fence; - union { - struct dma_fence_cb cb; - struct irq_work work; - }; - spinlock_t lock; }; -struct scsi_driver { - struct device_driver gendrv; - void (*rescan)(struct device *); - blk_status_t (*init_command)(struct scsi_cmnd *); - void (*uninit_command)(struct scsi_cmnd *); - int (*done)(struct scsi_cmnd *); - int (*eh_action)(struct scsi_cmnd *, int); - void (*eh_reset)(struct scsi_cmnd *); +struct ubi_vtbl_record { + __be32 reserved_pebs; + __be32 alignment; + __be32 data_pad; + __u8 vol_type; + __u8 upd_marker; + __be16 name_len; + __u8 name[128]; + __u8 flags; + __u8 padding[23]; + __be32 crc; }; -enum { - GENHD_FL_REMOVABLE = 1, - GENHD_FL_HIDDEN = 2, - GENHD_FL_NO_PART = 4, +struct ubi_fastmap_layout { + struct ubi_wl_entry *e[32]; + int to_be_tortured[32]; + int used_blocks; + int max_pool_size; + int max_wl_pool_size; }; -enum { - DISK_EVENT_MEDIA_CHANGE = 1, - DISK_EVENT_EJECT_REQUEST = 2, +struct ubi_wl_entry { + union { + struct rb_node rb; + struct list_head list; + } u; + int ec; + int pnum; }; -enum { - DISK_EVENT_FLAG_POLL = 1, - DISK_EVENT_FLAG_UEVENT = 2, - DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, +struct ubi_mkvol_req { + __s32 vol_id; + __s32 alignment; + __s64 bytes; + __s8 vol_type; + __u8 flags; + __s16 name_len; + __s8 padding2[4]; + char name[128]; }; -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, +struct tegra_sflash_data { + struct device *dev; + struct spi_controller *master; + spinlock_t lock; + struct clk *clk; + struct reset_control *rst; + void *base; + unsigned int irq; + u32 cur_speed; + struct spi_device *cur_spi; + unsigned int cur_pos; + unsigned int cur_len; + unsigned int bytes_per_word; + unsigned int cur_direction; + unsigned int curr_xfer_words; + unsigned int cur_rx_pos; + unsigned int cur_tx_pos; + u32 tx_status; + u32 rx_status; + u32 status_reg; + u32 def_command_reg; + u32 command_reg; + u32 dma_control_reg; + struct completion xfer_completion; + struct spi_transfer *curr_xfer; }; -enum { - mechtype_caddy = 0, - mechtype_tray = 1, - mechtype_popup = 2, - mechtype_individual_changer = 4, - mechtype_cartridge_changer = 5, -}; +typedef __u32 canid_t; -struct scsi_mode_data { - __u32 length; - __u16 block_descriptor_length; - __u8 medium_type; - __u8 device_specific; - __u8 header_length; - __u8 longlba: 1; +struct can_frame { + canid_t can_id; + union { + __u8 len; + __u8 can_dlc; + }; + __u8 __pad; + __u8 __res0; + __u8 len8_dlc; + __u8 data[8]; }; -struct event_header { - __be16 data_len; - __u8 notification_class: 3; - __u8 reserved1: 4; - __u8 nea: 1; - __u8 supp_event_class; +struct can_skb_priv { + int ifindex; + int skbcnt; + unsigned int frame_len; + long: 32; + struct can_frame cf[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 canxl_frame { + canid_t prio; + __u8 flags; + __u8 sdt; + __u16 len; + __u32 af; + __u8 data[2048]; }; -enum nand_bbt_block_status { - NAND_BBT_BLOCK_STATUS_UNKNOWN = 0, - NAND_BBT_BLOCK_GOOD = 1, - NAND_BBT_BLOCK_WORN = 2, - NAND_BBT_BLOCK_RESERVED = 3, - NAND_BBT_BLOCK_FACTORY_BAD = 4, - NAND_BBT_BLOCK_NUM_STATUS = 5, +struct canfd_frame { + canid_t can_id; + __u8 len; + __u8 flags; + __u8 __res0; + __u8 __res1; + __u8 data[64]; }; -struct hynix_read_retry_otp { - int nregs; - const u8 *regs; - const u8 *values; - int page; - int size; +struct igb_reg_test { + u16 reg; + u16 reg_offset; + u16 array_len; + u16 test_type; + u32 mask; + u32 write; }; -struct hynix_read_retry; +struct igb_stats { + char stat_string[32]; + int sizeof_stat; + int stat_offset; +}; -struct hynix_nand { - const struct hynix_read_retry *read_retry; +enum igb_filter_match_flags { + IGB_FILTER_FLAG_ETHER_TYPE = 1, + IGB_FILTER_FLAG_VLAN_TCI = 2, + IGB_FILTER_FLAG_SRC_MAC_ADDR = 4, + IGB_FILTER_FLAG_DST_MAC_ADDR = 8, }; -struct hynix_read_retry { - int nregs; - const u8 *regs; - u8 values[0]; +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, }; -struct bcm2835aux_spi { - void *regs; - struct clk *clk; - int irq; - u32 cntl[2]; - const u8 *tx_buf; - u8 *rx_buf; - int tx_len; - int rx_len; - int pending; - u64 count_transfer_polling; - u64 count_transfer_irq; - u64 count_transfer_irq_after_poll; - struct dentry *debugfs_dir; - long: 32; +enum igb_diagnostics_results { + TEST_REG = 0, + TEST_EEP = 1, + TEST_IRQ = 2, + TEST_LOOP = 3, + TEST_LINK = 4, }; -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 *); +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 phy_fixup { - struct list_head list; - char bus_id[64]; - u32 phy_uid; - u32 phy_uid_mask; - int (*run)(struct phy_device *); +union e1000_adv_rx_desc { + struct { + __le64 pkt_addr; + __le64 hdr_addr; + } read; + struct { + struct { + struct { + __le16 pkt_info; + __le16 hdr_info; + } lo_dword; + union { + __le32 rss; + struct { + __le16 ip_id; + __le16 csum; + } csum_ip; + } hi_dword; + } lower; + struct { + __le32 status_error; + __le16 length; + __le16 vlan; + } upper; + } wb; }; -struct phy_led { - struct list_head list; - struct phy_device *phydev; - struct led_classdev led_cdev; - u8 index; +struct igb_nfc_input { + u8 match_flags; + __be16 etype; + __be16 vlan_tci; + u8 src_addr[6]; + u8 dst_addr[6]; }; -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 igb_nfc_filter { + struct hlist_node nfc_node; + struct igb_nfc_input filter; + unsigned long cookie; + u16 etype_reg_index; + u16 sw_idx; + u16 action; }; -struct 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 onboard_hub_pdata { + unsigned long reset_us; + unsigned int num_supplies; }; -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 pdev_list_entry { + struct platform_device *pdev; + struct list_head node; }; -struct sfp_eeprom_id { - struct sfp_eeprom_base base; - struct sfp_eeprom_ext ext; +enum isp176x_host_controller_fields { + PORT_OWNER = 0, + PORT_POWER = 1, + PORT_LSTATUS = 2, + PORT_RESET = 3, + PORT_SUSPEND = 4, + PORT_RESUME = 5, + PORT_PE = 6, + PORT_CSC = 7, + PORT_CONNECT = 8, + HCS_PPC = 9, + HCS_N_PORTS = 10, + HCC_ISOC_CACHE = 11, + HCC_ISOC_THRES = 12, + CMD_LRESET = 13, + CMD_RESET = 14, + CMD_RUN = 15, + STS_PCD = 16, + HC_FRINDEX = 17, + FLAG_CF = 18, + HC_ISO_PTD_DONEMAP = 19, + HC_ISO_PTD_SKIPMAP = 20, + HC_ISO_PTD_LASTPTD = 21, + HC_INT_PTD_DONEMAP = 22, + HC_INT_PTD_SKIPMAP = 23, + HC_INT_PTD_LASTPTD = 24, + HC_ATL_PTD_DONEMAP = 25, + HC_ATL_PTD_SKIPMAP = 26, + HC_ATL_PTD_LASTPTD = 27, + ALL_ATX_RESET = 28, + HW_ANA_DIGI_OC = 29, + HW_DEV_DMA = 30, + HW_COMN_IRQ = 31, + HW_COMN_DMA = 32, + HW_DATA_BUS_WIDTH = 33, + HW_DACK_POL_HIGH = 34, + HW_DREQ_POL_HIGH = 35, + HW_INTR_HIGH_ACT = 36, + HW_INTF_LOCK = 37, + HW_INTR_EDGE_TRIG = 38, + HW_GLOBAL_INTR_EN = 39, + HC_CHIP_ID_HIGH = 40, + HC_CHIP_ID_LOW = 41, + HC_CHIP_REV = 42, + HC_SCRATCH = 43, + SW_RESET_RESET_ATX = 44, + SW_RESET_RESET_HC = 45, + SW_RESET_RESET_ALL = 46, + ISO_BUF_FILL = 47, + INT_BUF_FILL = 48, + ATL_BUF_FILL = 49, + MEM_BANK_SEL = 50, + MEM_START_ADDR = 51, + HC_DATA = 52, + HC_INTERRUPT = 53, + HC_INT_IRQ_ENABLE = 54, + HC_ATL_IRQ_ENABLE = 55, + HC_ISO_IRQ_MASK_OR = 56, + HC_INT_IRQ_MASK_OR = 57, + HC_ATL_IRQ_MASK_OR = 58, + HC_ISO_IRQ_MASK_AND = 59, + HC_INT_IRQ_MASK_AND = 60, + HC_ATL_IRQ_MASK_AND = 61, + HW_OTG_DISABLE = 62, + HW_SW_SEL_HC_DC = 63, + HW_VBUS_DRV = 64, + HW_SEL_CP_EXT = 65, + HW_DM_PULLDOWN = 66, + HW_DP_PULLDOWN = 67, + HW_DP_PULLUP = 68, + HW_HC_2_DIS = 69, + HW_OTG_DISABLE_CLEAR = 70, + HW_SW_SEL_HC_DC_CLEAR = 71, + HW_VBUS_DRV_CLEAR = 72, + HW_SEL_CP_EXT_CLEAR = 73, + HW_DM_PULLDOWN_CLEAR = 74, + HW_DP_PULLDOWN_CLEAR = 75, + HW_DP_PULLUP_CLEAR = 76, + HW_HC_2_DIS_CLEAR = 77, + HC_FIELD_MAX = 78, }; -struct led_init_data { - struct fwnode_handle *fwnode; - const char *default_label; - const char *devicename; - bool devname_mandatory; +enum isp1760_queue_head_types { + QH_CONTROL = 0, + QH_BULK = 1, + QH_INTERRUPT = 2, + QH_END = 3, }; -struct ax88172a_private { - struct mii_bus *mdio; - struct phy_device *phydev; - char phy_name[20]; - u16 phy_addr; - u16 oldmode; - int use_embdphy; - struct asix_rx_fixup_info rx_fixup_info; +struct isp1760_memory_chunk { + unsigned int start; + unsigned int size; + unsigned int free; }; -struct usb_phy_roothub { - struct phy *phy; - struct list_head list; -}; +struct isp1760_memory_layout; -enum dwc2_lx_state { - DWC2_L0 = 0, - DWC2_L1 = 1, - DWC2_L2 = 2, - DWC2_L3 = 3, -}; +struct isp1760_slotinfo; -enum dwc2_halt_status { - DWC2_HC_XFER_NO_HALT_STATUS = 0, - DWC2_HC_XFER_COMPLETE = 1, - DWC2_HC_XFER_URB_COMPLETE = 2, - DWC2_HC_XFER_ACK = 3, - DWC2_HC_XFER_NAK = 4, - DWC2_HC_XFER_NYET = 5, - DWC2_HC_XFER_STALL = 6, - DWC2_HC_XFER_XACT_ERR = 7, - DWC2_HC_XFER_FRAME_OVERRUN = 8, - DWC2_HC_XFER_BABBLE_ERR = 9, - DWC2_HC_XFER_DATA_TOGGLE_ERR = 10, - DWC2_HC_XFER_AHB_ERR = 11, - DWC2_HC_XFER_PERIODIC_INCOMPLETE = 12, - DWC2_HC_XFER_URB_DEQUEUE = 13, +struct isp1760_hcd { + struct usb_hcd *hcd; + void *base; + struct regmap *regs; + struct regmap_field *fields[78]; + bool is_isp1763; + const struct isp1760_memory_layout *memory_layout; + spinlock_t lock; + struct isp1760_slotinfo *atl_slots; + int atl_done_map; + struct isp1760_slotinfo *int_slots; + int int_done_map; + struct isp1760_memory_chunk memory_pool[56]; + struct list_head qh_list[3]; + unsigned int periodic_size; + unsigned int i_thresh; + unsigned long reset_done; + unsigned long next_statechange; }; -enum dwc2_ep0_state { - DWC2_EP0_SETUP = 0, - DWC2_EP0_DATA_IN = 1, - DWC2_EP0_DATA_OUT = 2, - DWC2_EP0_STATUS_IN = 3, - DWC2_EP0_STATUS_OUT = 4, +struct isp1760_memory_layout { + unsigned int blocks[3]; + unsigned int blocks_size[3]; + unsigned int slot_num; + unsigned int payload_blocks; + unsigned int payload_area_size; }; -enum dwc2_transaction_type { - DWC2_TRANSACTION_NONE = 0, - DWC2_TRANSACTION_PERIODIC = 1, - DWC2_TRANSACTION_NON_PERIODIC = 2, - DWC2_TRANSACTION_ALL = 3, +struct isp1760_qh; + +struct isp1760_qtd; + +struct isp1760_slotinfo { + struct isp1760_qh *qh; + struct isp1760_qtd *qtd; + unsigned long timestamp; }; -enum dwc2_control_phase { - DWC2_CONTROL_SETUP = 0, - DWC2_CONTROL_DATA = 1, - DWC2_CONTROL_STATUS = 2, +struct isp1760_qh { + struct list_head qh_list; + struct list_head qtd_list; + u32 toggle; + u32 ping; + int slot; + int tt_buffer_dirty; }; -struct dwc2_hs_transfer_time { - u32 start_schedule_us; - u16 duration_us; +struct isp1760_qtd { + u8 packet_type; + void *data_buffer; + u32 payload_addr; + struct list_head qtd_list; + struct urb *urb; + size_t length; + size_t actual_length; + u32 status; }; -struct dwc2_hsotg; +typedef __u32 __dw; -struct dwc2_host_chan; +struct urb_listitem { + struct list_head urb_list; + struct urb *urb; +}; -struct dwc2_dma_desc; +struct ptd { + __dw dw0; + __dw dw1; + __dw dw2; + __dw dw3; + __dw dw4; + __dw dw5; + __dw dw6; + __dw dw7; +}; -struct dwc2_tt; +struct ptd_le32 { + __le32 dw0; + __le32 dw1; + __le32 dw2; + __le32 dw3; + __le32 dw4; + __le32 dw5; + __le32 dw6; + __le32 dw7; +}; -struct dwc2_qh { - struct dwc2_hsotg *hsotg; - u8 ep_type; - u8 ep_is_in; - u16 maxp; - u16 maxp_mult; - u8 dev_speed; - u8 data_toggle; - u8 ping_state; - u8 do_split; - u8 td_first; - u8 td_last; - u16 host_us; - u16 device_us; - u16 host_interval; - u16 device_interval; - u16 next_active_frame; - u16 start_active_frame; - s16 num_hs_transfers; - struct dwc2_hs_transfer_time hs_transfers[8]; - u32 ls_start_schedule_slice; - u16 ntd; - u8 *dw_align_buf; - dma_addr_t dw_align_buf_dma; - struct list_head qtd_list; - struct dwc2_host_chan *channel; - struct list_head qh_list_entry; - struct dwc2_dma_desc *desc_list; - dma_addr_t desc_list_dma; - u32 desc_list_sz; - u32 *n_bytes; - struct timer_list unreserve_timer; - struct hrtimer wait_timer; - struct dwc2_tt *dwc_tt; - int ttport; - unsigned int tt_buffer_dirty: 1; - unsigned int unreserve_pending: 1; - unsigned int schedule_low_speed: 1; - unsigned int want_wait: 1; - unsigned int wait_timer_cancel: 1; - long: 32; +enum xhci_cancelled_td_status { + TD_DIRTY = 0, + TD_HALTED = 1, + TD_CLEARING_CACHE = 2, + TD_CLEARED = 3, }; -struct dwc2_hw_params { - unsigned int op_mode: 3; - unsigned int arch: 2; - unsigned int dma_desc_enable: 1; - unsigned int enable_dynamic_fifo: 1; - unsigned int en_multiple_tx_fifo: 1; - unsigned int rx_fifo_size: 16; - long: 8; - unsigned int host_nperio_tx_fifo_size: 16; - unsigned int dev_nperio_tx_fifo_size: 16; - unsigned int host_perio_tx_fifo_size: 16; - unsigned int nperio_tx_q_depth: 3; - unsigned int host_perio_tx_q_depth: 3; - unsigned int dev_token_q_depth: 5; - long: 5; - unsigned int max_transfer_size: 26; - long: 6; - unsigned int max_packet_count: 11; - unsigned int host_channels: 5; - unsigned int hs_phy_type: 2; - unsigned int fs_phy_type: 2; - unsigned int i2c_enable: 1; - unsigned int acg_enable: 1; - unsigned int num_dev_ep: 4; - unsigned int num_dev_in_eps: 4; - long: 2; - unsigned int num_dev_perio_in_ep: 4; - unsigned int total_fifo_size: 16; - unsigned int power_optimized: 1; - unsigned int hibernation: 1; - unsigned int utmi_phy_data_width: 2; - unsigned int lpm_mode: 1; - unsigned int ipg_isoc_en: 1; - unsigned int service_interval_mode: 1; - u32 snpsid; - u32 dev_ep_dirs; - u32 g_tx_fifo_size[16]; +struct xhci_input_control_ctx { + __le32 drop_flags; + __le32 add_flags; + __le32 rsvd2[6]; }; -struct dwc2_core_params { - struct usb_otg_caps otg_caps; - u8 phy_type; - u8 speed; - u8 phy_utmi_width; - bool phy_ulpi_ddr; - bool phy_ulpi_ext_vbus; - bool enable_dynamic_fifo; - bool en_multiple_tx_fifo; - bool i2c_enable; - bool acg_enable; - bool ulpi_fs_ls; - bool ts_dline; - bool reload_ctl; - bool uframe_sched; - bool external_id_pin_ctl; - int power_down; - bool no_clock_gating; - bool lpm; - bool lpm_clock_gating; - bool besl; - bool hird_threshold_en; - bool service_interval; - u8 hird_threshold; - bool activate_stm_fs_transceiver; - bool activate_stm_id_vb_detection; - bool activate_ingenic_overcurrent_detection; - bool ipg_isoc_en; - u16 max_packet_count; - u32 max_transfer_size; - u32 ahbcfg; - u32 ref_clk_per; - u16 sof_cnt_wkup_alert; - bool host_dma; - bool dma_desc_enable; - bool dma_desc_fs_enable; - bool host_support_fs_ls_low_power; - bool host_ls_low_power_phy_clk; - bool oc_disable; - u8 host_channels; - u16 host_rx_fifo_size; - u16 host_nperio_tx_fifo_size; - u16 host_perio_tx_fifo_size; - bool g_dma; - bool g_dma_desc; - u32 g_rx_fifo_size; - u32 g_np_tx_fifo_size; - u32 g_tx_fifo_size[16]; - bool change_speed_quirk; +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 dwc2_gregs_backup { - u32 gotgctl; - u32 gintmsk; - u32 gahbcfg; - u32 gusbcfg; - u32 grxfsiz; - u32 gnptxfsiz; - u32 gi2cctl; - u32 glpmcfg; - u32 pcgcctl; - u32 pcgcctl1; - u32 gdfifocfg; - u32 gpwrdn; - bool valid; +struct urb_priv { + int num_tds; + int num_tds_done; + struct xhci_td td[0]; }; -struct dwc2_dregs_backup { - u32 dcfg; - u32 dctl; - u32 daintmsk; - u32 diepmsk; - u32 doepmsk; - u32 diepctl[16]; - u32 dieptsiz[16]; - u32 diepdma[16]; - u32 doepctl[16]; - u32 doeptsiz[16]; - u32 doepdma[16]; - u32 dtxfsiz[16]; - bool valid; +struct ehci_ci_priv { + struct regulator *reg_vbus; + bool enabled; }; -struct dwc2_hregs_backup { - u32 hcfg; - u32 haintmsk; - u32 hcintmsk[16]; - u32 hprt0; - u32 hfir; - u32 hptxfsiz; - bool valid; +struct ci_hdrc_dma_aligned_buffer { + void *original_buffer; + u8 data[0]; }; -union dwc2_hcd_internal_flags { - u32 d32; - struct { - unsigned int port_connect_status_change: 1; - unsigned int port_connect_status: 1; - unsigned int port_reset_change: 1; - unsigned int port_enable_change: 1; - unsigned int port_suspend_change: 1; - unsigned int port_over_current_change: 1; - unsigned int port_l1_change: 1; - unsigned int reserved: 25; - } b; +struct i2c_devinfo { + struct list_head list; + int busnum; + struct i2c_board_info board_info; }; -struct dwc2_hsotg_plat; +struct riic_irq_desc { + int res_num; + irq_handler_t isr; + char *name; +}; -struct dwc2_hsotg_ep; +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 dwc2_hsotg { - struct device *dev; - void *regs; - struct dwc2_hw_params hw_params; - struct dwc2_core_params params; - enum usb_otg_state op_state; - enum usb_dr_mode dr_mode; - struct usb_role_switch *role_sw; - enum usb_dr_mode role_sw_default_mode; - unsigned int hcd_enabled: 1; - unsigned int gadget_enabled: 1; - unsigned int ll_hw_enabled: 1; - unsigned int hibernated: 1; - unsigned int in_ppd: 1; - bool bus_suspended; - unsigned int reset_phy_on_wake: 1; - unsigned int need_phy_for_wake: 1; - unsigned int phy_off_for_suspend: 1; - u16 frame_number; - struct phy *phy; - struct usb_phy *uphy; - struct dwc2_hsotg_plat *plat; - struct regulator_bulk_data supplies[2]; - struct regulator *vbus_supply; - struct regulator *usb33d; - spinlock_t lock; - void *priv; - int irq; +struct riic_dev { + void *base; + u8 *buf; + struct i2c_msg *msg; + int bytes_left; + int err; + int is_last; + struct completion msg_done; + struct i2c_adapter adapter; struct clk *clk; - struct clk *utmi_clk; - struct reset_control *reset; - struct reset_control *reset_ecc; - unsigned int queuing_high_bandwidth: 1; - unsigned int srp_success: 1; - struct workqueue_struct *wq_otg; - struct work_struct wf_otg; - struct timer_list wkp_timer; - enum dwc2_lx_state lx_state; - struct dwc2_gregs_backup gr_backup; - struct dwc2_dregs_backup dr_backup; - struct dwc2_hregs_backup hr_backup; - struct dentry *debug_root; - struct debugfs_regset32 *regset; - bool needs_byte_swap; - union dwc2_hcd_internal_flags flags; - struct list_head non_periodic_sched_inactive; - struct list_head non_periodic_sched_waiting; - struct list_head non_periodic_sched_active; - struct list_head *non_periodic_qh_ptr; - struct list_head periodic_sched_inactive; - struct list_head periodic_sched_ready; - struct list_head periodic_sched_assigned; - struct list_head periodic_sched_queued; - struct list_head split_order; - u16 periodic_usecs; - unsigned long hs_periodic_bitmap[25]; - u16 periodic_qh_count; - bool new_connection; - u16 last_frame_num; - struct list_head free_hc_list; - int periodic_channels; - int non_periodic_channels; - int available_host_channels; - struct dwc2_host_chan *hc_ptr_array[16]; - u8 *status_buf; - dma_addr_t status_buf_dma; - struct delayed_work start_work; - struct delayed_work reset_work; - struct work_struct phy_reset_work; - u8 otg_port; - u32 *frame_list; - dma_addr_t frame_list_dma; - u32 frame_list_sz; - struct kmem_cache *desc_gen_cache; - struct kmem_cache *desc_hsisoc_cache; - struct kmem_cache *unaligned_cache; - struct usb_gadget_driver *driver; - int fifo_mem; - unsigned int dedicated_fifos: 1; - unsigned char num_of_eps; - u32 fifo_map; - struct usb_request *ep0_reply; - struct usb_request *ctrl_req; - void *ep0_buff; - void *ctrl_buff; - enum dwc2_ep0_state ep0_state; - unsigned int delayed_status: 1; - u8 test_mode; - dma_addr_t setup_desc_dma[2]; - struct dwc2_dma_desc *setup_desc[2]; - dma_addr_t ctrl_in_desc_dma; - struct dwc2_dma_desc *ctrl_in_desc; - dma_addr_t ctrl_out_desc_dma; - struct dwc2_dma_desc *ctrl_out_desc; - long: 32; - struct usb_gadget gadget; - unsigned int enabled: 1; - unsigned int connected: 1; - unsigned int remote_wakeup_allowed: 1; - struct dwc2_hsotg_ep *eps_in[16]; - struct dwc2_hsotg_ep *eps_out[16]; long: 32; }; -struct dwc2_host_chan { - u8 hc_num; - unsigned int dev_addr: 7; - unsigned int ep_num: 4; - unsigned int ep_is_in: 1; - unsigned int speed: 4; - unsigned int ep_type: 2; - long: 6; - unsigned int max_packet: 11; - unsigned int data_pid_start: 2; - unsigned int multi_count: 2; - u8 *xfer_buf; - dma_addr_t xfer_dma; - dma_addr_t align_buf; - u32 xfer_len; - u32 xfer_count; - u16 start_pkt_count; - u8 xfer_started; - u8 do_ping; - u8 error_state; - u8 halt_on_queue; - u8 halt_pending; - u8 do_split; - u8 complete_split; - u8 hub_addr; - u8 hub_port; - u8 xact_pos; - u8 requests; - u8 schinfo; - u16 ntd; - enum dwc2_halt_status halt_status; - u32 hcint; - struct dwc2_qh *qh; - struct list_head hc_list_entry; - dma_addr_t desc_list_addr; - u32 desc_list_sz; - struct list_head split_order_list_entry; -}; - -struct dwc2_dma_desc { - u32 status; - u32 buf; +struct eeprom_data { + struct bin_attribute bin; + spinlock_t buffer_lock; + u16 buffer_idx; + u16 address_mask; + u8 num_address_bytes; + u8 idx_write_cnt; + bool read_only; + u8 buffer[0]; }; -struct dwc2_hsotg_req; +struct sr_thermal; -struct dwc2_hsotg_ep { - struct usb_ep ep; - struct list_head queue; - struct dwc2_hsotg *parent; - struct dwc2_hsotg_req *req; - struct dentry *debugfs; - unsigned long total_data; - unsigned int size_loaded; - unsigned int last_load; - unsigned int fifo_load; - unsigned short fifo_size; - unsigned short fifo_index; - unsigned char dir_in; - unsigned char map_dir; - unsigned char index; - unsigned char mc; - u16 interval; - unsigned int halted: 1; - unsigned int periodic: 1; - unsigned int isochronous: 1; - unsigned int send_zlp: 1; - unsigned int wedged: 1; - unsigned int target_frame; - bool frame_overrun; - dma_addr_t desc_list_dma; - struct dwc2_dma_desc *desc_list; - u8 desc_count; - unsigned int next_desc; - unsigned int compl_desc; - char name[10]; +struct sr_tmon { + unsigned int crit_temp; + unsigned int tmon_id; + struct sr_thermal *priv; }; -struct dwc2_hsotg_req { - struct usb_request req; - struct list_head queue; - void *saved_req_buf; +struct sr_thermal { + void *regs; + unsigned int max_crit_temp; + struct sr_tmon tmon[6]; }; -struct dwc2_tt { - int refcount; - struct usb_tt *usb_tt; - unsigned long periodic_bitmaps[0]; +struct uniphier_tm_soc_data { + u32 map_base; + u32 block_base; + u32 tmod_setup_addr; }; -struct wrapper_priv_data { - struct dwc2_hsotg *hsotg; +struct uniphier_tm_dev { + struct regmap *regmap; + struct device *dev; + bool alert_en[3]; + struct thermal_zone_device *tz_dev; + const struct uniphier_tm_soc_data *data; }; -struct dwc2_hcd_urb; +struct sunxi_wdt_reg { + u8 wdt_ctrl; + u8 wdt_cfg; + u8 wdt_mode; + u8 wdt_timeout_shift; + u8 wdt_reset_mask; + u8 wdt_reset_val; + u32 wdt_key_val; +}; -struct dwc2_qtd { - enum dwc2_control_phase control_phase; - u8 in_process; - u8 data_toggle; - u8 complete_split; - u8 isoc_split_pos; - u16 isoc_frame_index; - u16 isoc_split_offset; - u16 isoc_td_last; - u16 isoc_td_first; - u32 ssplit_out_xfer_count; - u8 error_count; - u8 n_desc; - u16 isoc_frame_index_last; - u16 num_naks; - struct dwc2_hcd_urb *urb; - struct dwc2_qh *qh; - struct list_head qtd_list_entry; +struct sunxi_wdt_dev { + struct watchdog_device wdt_dev; + void *wdt_base; + const struct sunxi_wdt_reg *wdt_regs; }; -struct dwc2_hcd_pipe_info { - u8 dev_addr; - u8 ep_num; - u8 pipe_type; - u8 pipe_dir; - u16 maxp; - u16 maxp_mult; +struct st_wdog_syscfg { + unsigned int reset_type_reg; + unsigned int reset_type_mask; + unsigned int enable_reg; + unsigned int enable_mask; }; -struct dwc2_hcd_iso_packet_desc { - u32 offset; - u32 length; - u32 actual_length; - u32 status; +struct st_wdog { + void *base; + struct device *dev; + struct regmap *regmap; + const struct st_wdog_syscfg *syscfg; + struct clk *clk; + unsigned long clkrate; + bool warm_reset; }; -struct dwc2_hcd_urb { - void *priv; - struct dwc2_qtd *qtd; - void *buf; - dma_addr_t dma; - void *setup_packet; - dma_addr_t setup_dma; - u32 length; - u32 actual_length; - u32 status; - u32 error_count; - u32 packet_count; - u32 flags; - u16 interval; - struct dwc2_hcd_pipe_info pipe_info; - struct dwc2_hcd_iso_packet_desc iso_descs[0]; +struct edac_pci_dev_attribute { + struct attribute attr; + void *value; + ssize_t (*show)(void *, char *); + ssize_t (*store)(void *, const char *, size_t); }; -struct ci_hdrc; +struct edac_pci_ctl_info; -struct ci_hdrc_cable { - bool connected; - bool changed; - bool enabled; - struct extcon_dev *edev; - struct ci_hdrc *ci; - struct notifier_block nb; +struct instance_attribute { + struct attribute attr; + ssize_t (*show)(struct edac_pci_ctl_info *, char *); + ssize_t (*store)(struct edac_pci_ctl_info *, const char *, size_t); }; -struct ci_hdrc_platform_data { - const char *name; - uintptr_t capoffset; - unsigned int power_budget; - struct phy *phy; - struct usb_phy *usb_phy; - enum usb_phy_interface phy_mode; - unsigned long flags; - enum usb_dr_mode dr_mode; - int (*notify_event)(struct ci_hdrc *, unsigned int); - struct regulator *reg_vbus; - struct usb_otg_caps ci_otg_caps; - bool tpl_support; - u32 itc_setting; - u32 ahb_burst_config; - u32 tx_burst_size; - u32 rx_burst_size; - struct ci_hdrc_cable vbus_extcon; - struct ci_hdrc_cable id_extcon; - u32 phy_clkgate_delay_us; - struct pinctrl *pctl; - struct pinctrl_state *pins_default; - struct pinctrl_state *pins_host; - struct pinctrl_state *pins_device; - int (*hub_control)(struct ci_hdrc *, u16, u16, u16, char *, u16, bool *, unsigned long *); - void (*enter_lpm)(struct ci_hdrc *, bool); +struct edac_pci_counter { + atomic_t pe_count; + atomic_t npe_count; }; -struct hw_bank { - unsigned int lpm; - resource_size_t phys; - void *abs; - void *cap; - void *op; - size_t size; - void *regmap[39]; +struct edac_pci_ctl_info { + struct list_head link; + int pci_idx; + struct bus_type *edac_subsys; + int op_state; + struct delayed_work work; + void (*edac_check)(struct edac_pci_ctl_info *); + struct device *dev; + const char *mod_name; + const char *ctl_name; + const char *dev_name; + void *pvt_info; + unsigned long start_time; + struct completion complete; + char name[32]; + struct edac_pci_counter counters; + struct kobject kobj; }; -enum ci_role { - CI_ROLE_HOST = 0, - CI_ROLE_GADGET = 1, - CI_ROLE_END = 2, +typedef void (*pci_parity_check_fn_t)(struct pci_dev *); + +struct mmc_driver { + struct device_driver drv; + int (*probe)(struct mmc_card *); + void (*remove)(struct mmc_card *); + void (*shutdown)(struct mmc_card *); }; -struct otg_fsm_ops; +struct amba_device; -struct otg_fsm { - int id; - int adp_change; - int power_up; - int a_srp_det; - int a_vbus_vld; - int b_conn; - int a_bus_resume; - int a_bus_suspend; - int a_conn; - int b_se0_srp; - int b_ssend_srp; - int b_sess_vld; - int test_device; - int a_bus_drop; - int a_bus_req; - int b_bus_req; - int a_sess_vld; - int b_bus_resume; - int b_bus_suspend; - int drv_vbus; - int loc_conn; - int loc_sof; - int adp_prb; - int adp_sns; - int data_pulse; - int a_set_b_hnp_en; - int b_srp_done; - int b_hnp_enable; - int a_clr_err; - int a_bus_drop_inf; - int a_bus_req_inf; - int a_clr_err_inf; - int b_bus_req_inf; - int a_suspend_req_inf; - int a_wait_vrise_tmout; - int a_wait_vfall_tmout; - int a_wait_bcon_tmout; - int a_aidl_bdis_tmout; - int b_ase0_brst_tmout; - int a_bidl_adis_tmout; - struct otg_fsm_ops *ops; - struct usb_otg *otg; - int protocol; - struct mutex lock; - u8 *host_req_flag; - struct delayed_work hnp_polling_work; - bool hnp_work_inited; - bool state_changed; -}; +struct amba_id; -enum otg_fsm_timer { - A_WAIT_VRISE = 0, - A_WAIT_VFALL = 1, - A_WAIT_BCON = 2, - A_AIDL_BDIS = 3, - B_ASE0_BRST = 4, - A_BIDL_ADIS = 5, - B_AIDL_BDIS = 6, - B_SE0_SRP = 7, - B_SRP_FAIL = 8, - A_WAIT_ENUM = 9, - B_DATA_PLS = 10, - B_SSEND_SRP = 11, - NUM_OTG_FSM_TIMERS = 12, +struct amba_driver { + struct device_driver drv; + int (*probe)(struct amba_device *, const struct amba_id *); + void (*remove)(struct amba_device *); + void (*shutdown)(struct amba_device *); + const struct amba_id *id_table; + bool driver_managed_dma; }; -struct ci_hw_qh; +struct amba_cs_uci_id { + unsigned int devarch; + unsigned int devarch_mask; + unsigned int devtype; + void *data; +}; -struct td_node; +struct amba_device { + struct device dev; + struct resource res; + struct clk *pclk; + struct device_dma_parameters dma_parms; + unsigned int periphid; + struct mutex periphid_lock; + unsigned int cid; + struct amba_cs_uci_id uci; + unsigned int irq[9]; + const char *driver_override; + long: 32; +}; -struct ci_hw_ep { - struct usb_ep ep; - u8 dir; - u8 num; - u8 type; - char name[16]; - struct { - struct list_head queue; - struct ci_hw_qh *ptr; - dma_addr_t dma; - } qh; - int wedge; - struct ci_hdrc *ci; - spinlock_t *lock; - struct dma_pool *td_pool; - struct td_node *pending_td; +struct amba_id { + unsigned int id; + unsigned int mask; + void *data; }; -struct ulpi_ops { - int (*read)(struct device *, u8); - int (*write)(struct device *, u8, u8); +struct mmci_host; + +struct variant_data { + unsigned int clkreg; + unsigned int clkreg_enable; + unsigned int clkreg_8bit_bus_enable; + unsigned int clkreg_neg_edge_enable; + unsigned int cmdreg_cpsm_enable; + unsigned int cmdreg_lrsp_crc; + unsigned int cmdreg_srsp_crc; + unsigned int cmdreg_srsp; + unsigned int cmdreg_stop; + unsigned int datalength_bits; + unsigned int fifosize; + unsigned int fifohalfsize; + unsigned int data_cmd_enable; + unsigned int datactrl_mask_ddrmode; + unsigned int datactrl_mask_sdio; + unsigned int datactrl_blocksz; + u8 datactrl_any_blocksz: 1; + u8 dma_power_of_2: 1; + u8 datactrl_first: 1; + u8 datacnt_useless: 1; + u8 st_sdio: 1; + u8 st_clkdiv: 1; + u8 stm32_clkdiv: 1; + u32 pwrreg_powerup; + u32 f_max; + u8 signal_direction: 1; + u8 pwrreg_clkgate: 1; + u8 busy_detect: 1; + u8 busy_timeout: 1; + u32 busy_dpsm_flag; + u32 busy_detect_flag; + u32 busy_detect_mask; + u8 pwrreg_nopower: 1; + u8 explicit_mclk_control: 1; + u8 qcom_fifo: 1; + u8 qcom_dml: 1; + u8 reversed_irq_handling: 1; + u8 mmcimask1: 1; + unsigned int irq_pio_mask; + u32 start_err; + u32 opendrain; + u8 dma_lli: 1; + u32 stm32_idmabsize_mask; + u32 stm32_idmabsize_align; + bool dma_flow_controller; + void (*init)(struct mmci_host *); }; -enum ci_revision { - CI_REVISION_1X = 10, - CI_REVISION_20 = 20, - CI_REVISION_21 = 21, - CI_REVISION_22 = 22, - CI_REVISION_23 = 23, - CI_REVISION_24 = 24, - CI_REVISION_25 = 25, - CI_REVISION_25_PLUS = 26, - CI_REVISION_UNKNOWN = 99, +enum mmci_busy_state { + MMCI_BUSY_WAITING_FOR_START_IRQ = 0, + MMCI_BUSY_WAITING_FOR_END_IRQ = 1, + MMCI_BUSY_DONE = 2, }; -struct ci_role_driver; +struct mmci_platform_data; -struct ci_hdrc { - struct device *dev; +struct mmci_host_ops; + +struct mmci_host { + phys_addr_t phybase; + void *base; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_command stop_abort; + struct mmc_data *data; + struct mmc_host *mmc; + struct clk *clk; + u8 singleirq: 1; + struct reset_control *rst; spinlock_t lock; - struct hw_bank hw_bank; - int irq; - struct ci_role_driver *roles[2]; - enum ci_role role; - bool is_otg; - struct usb_otg otg; - struct otg_fsm fsm; - struct hrtimer otg_fsm_hrtimer; - ktime_t hr_timeouts[12]; - unsigned int enabled_otg_timer_bits; - enum otg_fsm_timer next_otg_timer; - struct usb_role_switch *role_switch; - struct work_struct work; - struct workqueue_struct *wq; - struct dma_pool *qh_pool; - struct dma_pool *td_pool; - struct usb_gadget gadget; - struct usb_gadget_driver *driver; - enum usb_device_state resume_state; - unsigned int hw_ep_max; - struct ci_hw_ep ci_hw_ep[32]; - u32 ep0_dir; - struct ci_hw_ep *ep0out; - struct ci_hw_ep *ep0in; - struct usb_request *status; - bool setaddr; - u8 address; - u8 remote_wakeup; - u8 suspended; - u8 test_mode; - struct ci_hdrc_platform_data *platdata; - int vbus_active; - struct ulpi *ulpi; - struct ulpi_ops ulpi_ops; - struct phy *phy; - struct usb_phy *usb_phy; - struct usb_hcd *hcd; - bool id_event; - bool b_sess_valid_event; - bool imx28_write_fix; - bool supports_runtime_pm; - bool in_lpm; - bool wakeup_int; - enum ci_revision rev; - struct mutex mutex; - long: 32; + unsigned int mclk; + unsigned int clock_cache; + unsigned int cclk; + u32 pwr_reg; + u32 pwr_reg_add; + u32 clk_reg; + u32 clk_reg_add; + u32 datactrl_reg; + enum mmci_busy_state busy_state; + u32 busy_status; + u32 mask1_reg; + u8 vqmmc_enabled: 1; + struct mmci_platform_data *plat; + struct mmc_host_ops *mmc_ops; + struct mmci_host_ops *ops; + struct variant_data *variant; + void *variant_priv; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_opendrain; + u8 hw_designer; + u8 hw_revision: 4; + struct timer_list timer; + unsigned int oldstat; + u32 irq_action; + struct sg_mapping_iter sg_miter; + unsigned int size; + int (*get_rx_fifocnt)(struct mmci_host *, u32, int); + u8 use_dma: 1; + u8 dma_in_progress: 1; + void *dma_priv; + s32 next_cookie; + struct delayed_work ux500_busy_timeout_work; }; -struct ci_role_driver { - int (*start)(struct ci_hdrc *); - void (*stop)(struct ci_hdrc *); - void (*suspend)(struct ci_hdrc *); - void (*resume)(struct ci_hdrc *, bool); - irqreturn_t (*irq)(struct ci_hdrc *); - const char *name; +struct mmci_platform_data { + unsigned int ocr_mask; + unsigned int (*status)(struct device *); }; -struct otg_fsm_ops { - void (*chrg_vbus)(struct otg_fsm *, int); - void (*drv_vbus)(struct otg_fsm *, int); - void (*loc_conn)(struct otg_fsm *, int); - void (*loc_sof)(struct otg_fsm *, int); - void (*start_pulse)(struct otg_fsm *); - void (*start_adp_prb)(struct otg_fsm *); - void (*start_adp_sns)(struct otg_fsm *); - void (*add_timer)(struct otg_fsm *, enum otg_fsm_timer); - void (*del_timer)(struct otg_fsm *, enum otg_fsm_timer); - int (*start_host)(struct otg_fsm *, int); - int (*start_gadget)(struct otg_fsm *, int); +struct mmci_host_ops { + int (*validate_data)(struct mmci_host *, struct mmc_data *); + int (*prep_data)(struct mmci_host *, struct mmc_data *, bool); + void (*unprep_data)(struct mmci_host *, struct mmc_data *, int); + u32 (*get_datactrl_cfg)(struct mmci_host *); + void (*get_next_data)(struct mmci_host *, struct mmc_data *); + int (*dma_setup)(struct mmci_host *); + void (*dma_release)(struct mmci_host *); + int (*dma_start)(struct mmci_host *, unsigned int *); + void (*dma_finalize)(struct mmci_host *, struct mmc_data *); + void (*dma_error)(struct mmci_host *); + void (*set_clkreg)(struct mmci_host *, unsigned int); + void (*set_pwrreg)(struct mmci_host *, unsigned int); + bool (*busy_complete)(struct mmci_host *, struct mmc_command *, u32, u32); + void (*pre_sig_volt_switch)(struct mmci_host *); + int (*post_sig_volt_switch)(struct mmci_host *, struct mmc_ios *); }; -struct ci_hdrc_usb2_priv { - struct platform_device *ci_pdev; - struct clk *clk; +struct mmci_dmae_next { + struct dma_async_tx_descriptor *desc; + struct dma_chan *chan; }; -struct bcm_kp { - void *base; - int irq; - struct clk *clk; - struct input_dev *input_dev; - unsigned long last_state[2]; - unsigned int n_rows; - unsigned int n_cols; - u32 kpcr; - u32 kpior; - u32 kpemr; - u32 imr0_val; - u32 imr1_val; +struct mmci_dmae_priv { + struct dma_chan *cur; + struct dma_chan *rx_channel; + struct dma_chan *tx_channel; + struct dma_async_tx_descriptor *desc_current; + struct mmci_dmae_next next_data; }; -struct matrix_keymap_data { - const uint32_t *keymap; - unsigned int keymap_size; +struct led_trigger_cpu { + bool is_active; + char name[8]; + struct led_trigger *_trig; }; -struct max77686_rtc_driver_data { - unsigned long delay; - u8 mask; - const unsigned int *map; - bool alarm_enable_reg; - int rtc_i2c_addr; - bool rtc_irq_from_platform; - int alarm_pending_status_reg; - const struct regmap_irq_chip *rtc_irq_chip; - const struct regmap_config *regmap_config; +enum cpu_led_event { + CPU_LED_IDLE_START = 0, + CPU_LED_IDLE_END = 1, + CPU_LED_START = 2, + CPU_LED_STOP = 3, + CPU_LED_HALTED = 4, }; -enum max77686_irq { - MAX77686_PMICIRQ_PWRONF = 0, - MAX77686_PMICIRQ_PWRONR = 1, - MAX77686_PMICIRQ_JIGONBF = 2, - MAX77686_PMICIRQ_JIGONBR = 3, - MAX77686_PMICIRQ_ACOKBF = 4, - MAX77686_PMICIRQ_ACOKBR = 5, - MAX77686_PMICIRQ_ONKEY1S = 6, - MAX77686_PMICIRQ_MRSTB = 7, - MAX77686_PMICIRQ_140C = 8, - MAX77686_PMICIRQ_120C = 9, - MAX77686_RTCIRQ_RTC60S = 0, - MAX77686_RTCIRQ_RTCA1 = 1, - MAX77686_RTCIRQ_RTCA2 = 2, - MAX77686_RTCIRQ_SMPL = 3, - MAX77686_RTCIRQ_RTC1S = 4, - MAX77686_RTCIRQ_WTSR = 5, +struct dw_apb_timer { + void *base; + unsigned long freq; + int irq; }; -enum max77686_rtc_reg_offset { - REG_RTC_CONTROLM = 0, - REG_RTC_CONTROL = 1, - REG_RTC_UPDATE0 = 2, - REG_WTSR_SMPL_CNTL = 3, - REG_RTC_SEC = 4, - REG_RTC_MIN = 5, - REG_RTC_HOUR = 6, - REG_RTC_WEEKDAY = 7, - REG_RTC_MONTH = 8, - REG_RTC_YEAR = 9, - REG_RTC_MONTHDAY = 10, - REG_ALARM1_SEC = 11, - REG_ALARM1_MIN = 12, - REG_ALARM1_HOUR = 13, - REG_ALARM1_WEEKDAY = 14, - REG_ALARM1_MONTH = 15, - REG_ALARM1_YEAR = 16, - REG_ALARM1_DATE = 17, - REG_ALARM2_SEC = 18, - REG_ALARM2_MIN = 19, - REG_ALARM2_HOUR = 20, - REG_ALARM2_WEEKDAY = 21, - REG_ALARM2_MONTH = 22, - REG_ALARM2_YEAR = 23, - REG_ALARM2_DATE = 24, - REG_RTC_AE1 = 25, - REG_RTC_END = 26, +struct dw_apb_clock_event_device { + struct clock_event_device ced; + struct dw_apb_timer timer; + void (*eoi)(struct dw_apb_timer *); + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum MAX77686_RTC_OP { - MAX77686_RTC_WRITE = 0, - MAX77686_RTC_READ = 1, +struct dw_apb_clocksource { + struct dw_apb_timer timer; + long: 32; + struct clocksource cs; }; -enum { - RTC_SEC = 0, - RTC_MIN = 1, - RTC_HOUR = 2, - RTC_WEEKDAY = 3, - RTC_MONTH = 4, - RTC_YEAR = 5, - RTC_MONTHDAY = 6, - RTC_NR_TIME = 7, +struct of_timer_base { + void *base; + const char *name; + int index; }; -struct max77686_rtc_info { - struct device *dev; - struct i2c_client *rtc; - struct rtc_device *rtc_dev; - struct mutex lock; - struct regmap *regmap; - struct regmap *rtc_regmap; - const struct max77686_rtc_driver_data *drv_data; - struct regmap_irq_chip_data *rtc_irq_data; - int rtc_irq; - int virq; +struct of_timer_irq { + int irq; + int index; + int percpu; + const char *name; + unsigned long flags; + irq_handler_t handler; }; -struct owl_i2c_dev { - struct i2c_adapter adap; - struct i2c_msg *msg; - struct completion msg_complete; +struct of_timer_clk { struct clk *clk; - spinlock_t lock; - void *base; - unsigned long clk_rate; - u32 bus_freq; - u32 msg_ptr; - int err; + const char *name; + int index; + unsigned long rate; + unsigned long period; }; -struct as3722; - -struct as3722_poweroff { - struct device *dev; - struct as3722 *as3722; +struct timer_of { + unsigned int flags; + struct device_node *np; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct clock_event_device clkevt; + struct of_timer_base of_base; + struct of_timer_irq of_irq; + struct of_timer_clk of_clk; + void *private_data; + long: 32; }; -struct as3722 { - struct device *dev; - struct regmap *regmap; - int chip_irq; - unsigned long irq_flags; - bool en_intern_int_pullup; - bool en_intern_i2c_pullup; - bool en_ac_ok_pwr_on; - struct regmap_irq_chip_data *irq_data; +struct of_bus___2 { + void (*count_cells)(const void *, int, int *, int *); + u64 (*map)(__be32 *, const __be32 *, int, int, int); + int (*translate)(__be32 *, u64, int); }; -enum vexpress_reset_func { - FUNC_RESET = 0, - FUNC_SHUTDOWN = 1, - FUNC_REBOOT = 2, -}; +struct reserved_mem_ops; -enum devfreq_timer { - DEVFREQ_TIMER_DEFERRABLE = 0, - DEVFREQ_TIMER_DELAYED = 1, - DEVFREQ_TIMER_NUM = 2, +struct reserved_mem { + const char *name; + unsigned long fdt_node; + unsigned long phandle; + const struct reserved_mem_ops *ops; + phys_addr_t base; + phys_addr_t size; + void *priv; }; -struct devfreq; +struct reserved_mem_ops { + int (*device_init)(struct reserved_mem *, struct device *); + void (*device_release)(struct reserved_mem *, struct device *); +}; -struct devfreq_cooling_power; +struct rmem_assigned_device { + struct device *dev; + struct reserved_mem *rmem; + struct list_head list; +}; -struct em_perf_domain; +typedef int (*reservedmem_of_init_fn)(struct reserved_mem *); -struct devfreq_cooling_device { - struct thermal_cooling_device *cdev; - struct thermal_cooling_device_ops cooling_ops; - struct devfreq *devfreq; - unsigned long cooling_state; - u32 *freq_table; - size_t max_state; - struct devfreq_cooling_power *power_ops; - u32 res_util; - int capped_state; - struct dev_pm_qos_request req_max_freq; - struct em_perf_domain *em_pd; +enum { + AC = 0, + BAT = 1, }; -struct devfreq_dev_status { - unsigned long total_time; - unsigned long busy_time; - unsigned long current_frequency; - void *private_data; +enum nvec_msg_type { + NVEC_SYS = 1, + NVEC_BAT = 2, + NVEC_GPIO = 3, + NVEC_SLEEP = 4, + NVEC_KBD = 5, + NVEC_PS2 = 6, + NVEC_CNTL = 7, + NVEC_OEM0 = 13, + NVEC_KB_EVT = 128, + NVEC_PS2_EVT = 129, }; -struct devfreq_stats { - unsigned int total_trans; - unsigned int *trans_table; - u64 *time_in_state; - long: 32; - u64 last_update; +enum { + SLOT_STATUS = 0, + VOLTAGE = 1, + TIME_REMAINING = 2, + CURRENT = 3, + AVERAGE_CURRENT = 4, + AVERAGING_TIME_INTERVAL = 5, + CAPACITY_REMAINING = 6, + LAST_FULL_CHARGE_CAPACITY = 7, + DESIGN_CAPACITY = 8, + CRITICAL_CAPACITY = 9, + TEMPERATURE = 10, + MANUFACTURER = 11, + MODEL = 12, + TYPE___2 = 13, }; -struct srcu_notifier_head { - struct mutex mutex; - struct srcu_usage srcuu; - struct srcu_struct srcu; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +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 devfreq_dev_profile; - -struct devfreq_governor; +struct nvec_chip; -struct devfreq { - struct list_head node; - struct mutex lock; - long: 32; - struct device dev; - struct devfreq_dev_profile *profile; - const struct devfreq_governor *governor; - struct opp_table *opp_table; - struct notifier_block nb; - struct delayed_work work; - unsigned long *freq_table; - unsigned int max_state; - unsigned long previous_freq; - struct devfreq_dev_status last_status; - void *data; - void *governor_data; - struct dev_pm_qos_request user_min_freq_req; - struct dev_pm_qos_request user_max_freq_req; - unsigned long scaling_min_freq; - unsigned long scaling_max_freq; - bool stop_polling; - unsigned long suspend_freq; - unsigned long resume_freq; - atomic_t suspend_count; - struct devfreq_stats stats; - struct srcu_notifier_head transition_notifier_list; - struct thermal_cooling_device *cdev; - struct notifier_block nb_min; - struct notifier_block nb_max; - long: 32; +struct nvec_power { + struct notifier_block notifier; + struct delayed_work poller; + struct nvec_chip *nvec; + int on; + int bat_present; + int bat_status; + int bat_voltage_now; + int bat_current_now; + int bat_current_avg; + int time_remain; + int charge_full_design; + int charge_last_full; + int critical_capacity; + int capacity_remain; + int bat_temperature; + int bat_cap; + int bat_type_enum; + char bat_manu[30]; + char bat_model[30]; + char bat_type[30]; }; -struct devfreq_dev_profile { - unsigned long initial_freq; - unsigned int polling_ms; - enum devfreq_timer timer; - int (*target)(struct device *, unsigned long *, u32); - int (*get_dev_status)(struct device *, struct devfreq_dev_status *); - int (*get_cur_freq)(struct device *, unsigned long *); - void (*exit)(struct device *); - unsigned long *freq_table; - unsigned int max_state; - bool is_cooling_device; +struct nvec_msg { + struct list_head node; + unsigned char data[34]; + unsigned short size; + unsigned short pos; + atomic_t used; }; -struct devfreq_governor { - struct list_head node; - const char name[16]; - const u64 attrs; - const u64 flags; - int (*get_target_freq)(struct devfreq *, unsigned long *); - int (*event_handler)(struct devfreq *, unsigned int, void *); +struct nvec_chip { + struct device *dev; + struct gpio_desc *gpiod; + int irq; + u32 i2c_addr; + void *base; + struct clk *i2c_clk; + struct reset_control *rst; + struct atomic_notifier_head notifier_list; + struct list_head rx_data; + struct list_head tx_data; + struct notifier_block nvec_status_notifier; + struct work_struct rx_work; + struct work_struct tx_work; + struct workqueue_struct *wq; + struct nvec_msg msg_pool[64]; + struct nvec_msg *rx; + struct nvec_msg *tx; + struct nvec_msg tx_scratch; + struct completion ec_transfer; + spinlock_t tx_lock; + spinlock_t rx_lock; + struct mutex sync_write_mutex; + struct completion sync_write; + u16 sync_write_pending; + struct nvec_msg *last_sync_msg; + int state; }; -struct devfreq_cooling_power { - int (*get_real_power)(struct devfreq *, u32 *, unsigned long, unsigned long); +struct bat_response { + u8 event_type; + u8 length; + u8 sub_type; + u8 status; + union { + char plc[30]; + u16 plu; + s16 pls; + }; }; -struct em_perf_state; +typedef int (*rproc_handle_resource_t)(struct rproc *, void *, int, int); -struct em_perf_domain { - struct em_perf_state *table; - int nr_perf_states; - unsigned long flags; - unsigned long cpus[0]; +enum rproc_features { + RPROC_FEAT_ATTACH_ON_RECOVERY = 0, + RPROC_MAX_FEATURES = 1, }; -struct em_perf_state { - unsigned long frequency; - unsigned long power; - unsigned long cost; - unsigned long flags; +enum rproc_crash_type { + RPROC_MMUFAULT = 0, + RPROC_WATCHDOG = 1, + RPROC_FATAL_ERROR = 2, }; -struct orion_watchdog; - -struct orion_watchdog_data { - int wdt_counter_offset; - int wdt_enable_bit; - int rstout_enable_bit; - int rstout_mask_bit; - int (*clock_init)(struct platform_device *, struct orion_watchdog *); - int (*enabled)(struct orion_watchdog *); - int (*start)(struct watchdog_device *); - int (*stop)(struct watchdog_device *); +enum fw_resource_type { + RSC_CARVEOUT = 0, + RSC_DEVMEM = 1, + RSC_TRACE = 2, + RSC_VDEV = 3, + RSC_LAST = 4, + RSC_VENDOR_START = 128, + RSC_VENDOR_END = 512, }; -struct orion_watchdog { - struct watchdog_device wdt; - void *reg; - void *rstout; - void *rstout_mask; - unsigned long clk_rate; - struct clk *clk; - const struct orion_watchdog_data *data; +enum rsc_handling_status { + RSC_HANDLED = 0, + RSC_IGNORED = 1, }; -typedef struct __call_single_data call_single_data_t; +struct rproc_debug_trace { + struct rproc *rproc; + struct dentry *tfile; + struct list_head node; + struct rproc_mem_entry trace_mem; +}; -struct cpuidle_coupled { - cpumask_t coupled_cpus; - int requested_state[16]; - atomic_t ready_waiting_counts; - atomic_t abort_barrier; - int online_count; - int refcnt; - int prevent; +struct fw_rsc_carveout { + u32 da; + u32 pa; + u32 len; + u32 flags; + u32 reserved; + u8 name[32]; }; -enum mmc_err_stat { - MMC_ERR_CMD_TIMEOUT = 0, - MMC_ERR_CMD_CRC = 1, - MMC_ERR_DAT_TIMEOUT = 2, - MMC_ERR_DAT_CRC = 3, - MMC_ERR_AUTO_CMD = 4, - MMC_ERR_ADMA = 5, - MMC_ERR_TUNING = 6, - MMC_ERR_CMDQ_RED = 7, - MMC_ERR_CMDQ_GCE = 8, - MMC_ERR_CMDQ_ICCE = 9, - MMC_ERR_REQ_TIMEOUT = 10, - MMC_ERR_CMDQ_REQ_TIMEOUT = 11, - MMC_ERR_ICE_CFG = 12, - MMC_ERR_CTRL_TIMEOUT = 13, - MMC_ERR_UNEXPECTED_IRQ = 14, - MMC_ERR_MAX = 15, +struct fw_rsc_hdr { + u32 type; + u8 data[0]; }; -enum sdhci_reset_reason { - SDHCI_RESET_FOR_INIT = 0, - SDHCI_RESET_FOR_REQUEST_ERROR = 1, - SDHCI_RESET_FOR_REQUEST_ERROR_DATA_ONLY = 2, - SDHCI_RESET_FOR_TUNING_ABORT = 3, - SDHCI_RESET_FOR_CARD_REMOVED = 4, - SDHCI_RESET_FOR_CQE_RECOVERY = 5, +struct fw_rsc_devmem { + u32 da; + u32 pa; + u32 len; + u32 flags; + u32 reserved; + u8 name[32]; }; -enum sdhci_cookie { - COOKIE_UNMAPPED___2 = 0, - COOKIE_PRE_MAPPED___2 = 1, - COOKIE_MAPPED___2 = 2, +struct fw_rsc_trace { + u32 da; + u32 len; + u32 reserved; + u8 name[32]; }; -struct sdhci_adma2_64_desc { - __le16 cmd; - __le16 len; - __le32 addr_lo; - __le32 addr_hi; +enum ab8500_version { + AB8500_VERSION_AB8500 = 0, + AB8500_VERSION_AB8505 = 1, + AB8500_VERSION_AB9540 = 2, + AB8500_VERSION_AB8540 = 4, + AB8500_VERSION_UNDEFINED = 5, }; -struct kfifo { - union { - struct __kfifo kfifo; - unsigned char *type; - const unsigned char *const_type; - char (*rectype)[0]; - void *ptr; - const void *ptr_const; - }; - unsigned char buf[0]; +enum ab8500_gpadc_channel { + AB8500_GPADC_CHAN_UNUSED = 0, + AB8500_GPADC_CHAN_BAT_CTRL = 1, + AB8500_GPADC_CHAN_BAT_TEMP = 2, + AB8500_GPADC_CHAN_MAIN_CHARGER = 3, + AB8500_GPADC_CHAN_ACC_DET_1 = 4, + AB8500_GPADC_CHAN_ACC_DET_2 = 5, + AB8500_GPADC_CHAN_ADC_AUX_1 = 6, + AB8500_GPADC_CHAN_ADC_AUX_2 = 7, + AB8500_GPADC_CHAN_VBAT_A = 8, + AB8500_GPADC_CHAN_VBUS = 9, + AB8500_GPADC_CHAN_MAIN_CHARGER_CURRENT = 10, + AB8500_GPADC_CHAN_USB_CHARGER_CURRENT = 11, + AB8500_GPADC_CHAN_BACKUP_BAT = 12, + AB8505_GPADC_CHAN_DIE_TEMP = 13, + AB8500_GPADC_CHAN_ID = 14, + AB8500_GPADC_CHAN_INTERNAL_TEST_1 = 15, + AB8500_GPADC_CHAN_INTERNAL_TEST_2 = 16, + AB8500_GPADC_CHAN_INTERNAL_TEST_3 = 17, + AB8500_GPADC_CHAN_XTAL_TEMP = 18, + AB8500_GPADC_CHAN_VBAT_TRUE_MEAS = 19, + AB8500_GPADC_CHAN_BAT_CTRL_AND_IBAT = 28, + AB8500_GPADC_CHAN_VBAT_MEAS_AND_IBAT = 29, + AB8500_GPADC_CHAN_VBAT_TRUE_MEAS_AND_IBAT = 30, + AB8500_GPADC_CHAN_BAT_TEMP_AND_IBAT = 31, + AB8500_GPADC_CHAN_IBAT_VIRTUAL = 255, }; -struct events_queue { - size_t sz; - struct kfifo kfifo; - struct work_struct notify_work; - struct workqueue_struct *wq; +enum ab8500_cal_channels { + AB8500_CAL_VMAIN = 0, + AB8500_CAL_BTEMP = 1, + AB8500_CAL_VBAT = 2, + AB8500_CAL_IBAT = 3, + AB8500_CAL_NR = 4, }; -struct scmi_notify_instance; +struct ab8500_adc_cal_data { + s64 gain; + s64 offset; + u16 otp_calib_hi; + u16 otp_calib_lo; + long: 32; +}; -struct scmi_event_header; +struct ab8500; -struct scmi_registered_event; +struct ab8500_gpadc_chan_info; -struct scmi_registered_events_desc { - u8 id; - const struct scmi_event_ops *ops; - struct events_queue equeue; - struct scmi_notify_instance *ni; - struct scmi_event_header *eh; - size_t eh_sz; - void *in_flight; - int num_events; - struct scmi_registered_event **registered_events; - struct mutex registered_mtx; - const struct scmi_protocol_handle *ph; - struct hlist_head registered_events_handlers[64]; +struct ab8500_gpadc { + struct device *dev; + struct ab8500 *ab8500; + struct ab8500_gpadc_chan_info *chans; + unsigned int nchans; + struct completion complete; + struct regulator *vddadc; + int irq_sw; + int irq_hw; + long: 32; + struct ab8500_adc_cal_data cal_data[4]; }; -struct scmi_notify_instance { - void *gid; - struct scmi_handle *handle; - struct work_struct init_work; - struct workqueue_struct *notify_wq; - struct mutex pending_mtx; - struct scmi_registered_events_desc **registered_protocols; - struct hlist_head pending_events_handlers[16]; +struct ab8500 { + struct device *dev; + struct mutex lock; + struct mutex irq_lock; + atomic_t transfer_ongoing; + int irq; + struct irq_domain *domain; + enum ab8500_version version; + u8 chip_id; + int (*write)(struct ab8500 *, u16, u8); + int (*write_masked)(struct ab8500 *, u16, u8, u8); + int (*read)(struct ab8500 *, u16); + unsigned long tx_buf[4]; + unsigned long rx_buf[4]; + u8 *mask; + u8 *oldmask; + int mask_size; + const int *irq_reg_offset; + int it_latchhier_num; }; -struct scmi_event_header { - ktime_t timestamp; - size_t payld_sz; - unsigned char evt_id; - unsigned char payld[0]; +struct ab8500_gpadc_chan_info { + const char *name; + u8 id; + bool hardware_control; + bool falling_edge; + u8 avg_sample; + u8 trig_timer; }; -struct scmi_registered_event { - struct scmi_registered_events_desc *proto; - const struct scmi_event *evt; - void *report; - u32 num_sources; - refcount_t *sources; - struct mutex sources_mtx; +struct gnet_estimator { + signed char interval; + unsigned char ewma_log; }; -struct scmi_event_handler { - u32 key; - refcount_t users; - struct scmi_registered_event *r_evt; - struct blocking_notifier_head chain; - struct hlist_node hash; - bool enabled; +struct gnet_stats_rate_est64 { + __u64 bps; + __u64 pps; }; -struct scmi_notifier_devres { - const struct scmi_handle *handle; - u8 proto_id; - u8 evt_id; - u32 __src_id; - u32 *src_id; - struct notifier_block *nb; +struct cgroup_cls_state { + struct cgroup_subsys_state css; + u32 classid; + long: 32; }; -struct ti_32k { - void *base; - void *counter; - struct clocksource cs; +struct update_classid_context { + u32 classid; + unsigned int batch; }; -struct quirks_list_struct { - struct hid_device_id hid_bl_item; - struct list_head node; +enum inet_csk_ack_state_t { + ICSK_ACK_SCHED = 1, + ICSK_ACK_TIMER = 2, + ICSK_ACK_PUSHED = 4, + ICSK_ACK_PUSHED2 = 8, + ICSK_ACK_NOW = 16, + ICSK_ACK_NOMEM = 32, }; -enum rproc_dump_mechanism { - RPROC_COREDUMP_DISABLED = 0, - RPROC_COREDUMP_ENABLED = 1, - RPROC_COREDUMP_INLINE = 2, +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, }; -struct rproc; - -struct rproc_dump_segment { - struct list_head node; - dma_addr_t da; - size_t size; - void *priv; - void (*dump)(struct rproc *, struct rproc_dump_segment *, void *, size_t, size_t); - loff_t offset; -}; - -struct rproc_ops; - -struct resource_table; - -struct rproc { - struct list_head node; - struct iommu_domain *domain; - const char *name; - const char *firmware; - void *priv; - struct rproc_ops *ops; - long: 32; - struct device dev; - atomic_t power; - unsigned int state; - enum rproc_dump_mechanism dump_conf; - struct mutex lock; - struct dentry *dbg_dir; - struct list_head traces; - int num_traces; - struct list_head carveouts; - struct list_head mappings; - u64 bootaddr; - struct list_head rvdevs; - struct list_head subdevs; - struct idr notifyids; - int index; - struct work_struct crash_handler; - unsigned int crash_cnt; - bool recovery_disabled; - int max_notifyid; - struct resource_table *table_ptr; - struct resource_table *clean_table; - struct resource_table *cached_table; - size_t table_sz; - bool has_iommu; - bool auto_boot; - bool sysfs_read_only; - struct list_head dump_segments; - int nb_vdev; - u8 elf_class; - u16 elf_machine; - struct cdev cdev; - bool cdev_put_on_release; - unsigned long features[1]; - long: 32; -}; - -struct firmware; - -struct rproc_ops { - int (*prepare)(struct rproc *); - int (*unprepare)(struct rproc *); - int (*start)(struct rproc *); - int (*stop)(struct rproc *); - int (*attach)(struct rproc *); - int (*detach)(struct rproc *); - void (*kick)(struct rproc *, int); - void * (*da_to_va)(struct rproc *, u64, size_t, bool *); - int (*parse_fw)(struct rproc *, const struct firmware *); - int (*handle_rsc)(struct rproc *, u32, void *, int, int); - struct resource_table * (*find_loaded_rsc_table)(struct rproc *, const struct firmware *); - struct resource_table * (*get_loaded_rsc_table)(struct rproc *, size_t *); - int (*load)(struct rproc *, const struct firmware *); - int (*sanity_check)(struct rproc *, const struct firmware *); - u64 (*get_boot_addr)(struct rproc *, const struct firmware *); - unsigned long (*panic)(struct rproc *); - void (*coredump)(struct rproc *); -}; - -struct firmware { - size_t size; - const u8 *data; - void *priv; -}; - -struct resource_table { - u32 ver; - u32 num; - u32 reserved[2]; - u32 offset[0]; -}; - -typedef __u16 Elf64_Half; - -typedef __u32 Elf64_Word; - -typedef __u64 Elf64_Addr; - -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; -}; - -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 __u64 Elf64_Xword; - -struct elf64_phdr { - Elf64_Word p_type; - Elf64_Word p_flags; - Elf64_Off p_offset; - Elf64_Addr p_vaddr; - Elf64_Addr p_paddr; - Elf64_Xword p_filesz; - Elf64_Xword p_memsz; - Elf64_Xword p_align; -}; - -struct 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 rproc_coredump_state { - struct rproc *rproc; - void *header; - struct completion dump_done; -}; - -struct neigh_sysctl_table { - struct ctl_table_header *sysctl_header; - struct ctl_table neigh_vars[22]; -}; - -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 { - NEIGH_ARP_TABLE = 0, - NEIGH_ND_TABLE = 1, - NEIGH_DN_TABLE = 2, - NEIGH_NR_TABLES = 3, - NEIGH_LINK_TABLE = 3, -}; - -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 { - 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 neighbour_cb { - unsigned long sched_next; - unsigned int flags; -}; - -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 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 { - 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 tsq_enum { + TSQ_THROTTLED = 0, + TSQ_QUEUED = 1, + TCP_TSQ_DEFERRED = 2, + TCP_WRITE_TIMER_DEFERRED = 3, + TCP_DELACK_TIMER_DEFERRED = 4, + TCP_MTU_REDUCED_DEFERRED = 5, + TCP_ACK_DEFERRED = 6, }; struct fib_prop { @@ -68731,15 +75921,6 @@ struct fib_prop { u8 scope; }; -enum rt_class_t { - RT_TABLE_UNSPEC = 0, - RT_TABLE_COMPAT = 252, - RT_TABLE_DEFAULT = 253, - RT_TABLE_MAIN = 254, - RT_TABLE_LOCAL = 255, - RT_TABLE_MAX = 4294967295, -}; - enum fib_event_type { FIB_EVENT_ENTRY_REPLACE = 0, FIB_EVENT_ENTRY_APPEND = 1, @@ -68753,15 +75934,6 @@ enum fib_event_type { FIB_EVENT_VIF_DEL = 9, }; -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 u8 dscp_t; struct fib_alias { @@ -68787,8 +75959,6 @@ struct nl_info { u8 skip_notify_kernel: 1; }; -struct rtnexthop; - struct fib_config { u8 fc_dst_len; dscp_t fc_dscp; @@ -68818,26 +75988,6 @@ struct fib_config { u16 fc_encap_type; }; -struct rtnexthop { - unsigned short rtnh_len; - unsigned char rtnh_flags; - unsigned char rtnh_hops; - int rtnh_ifindex; -}; - -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 fib6_config { u32 fc_table; u32 fc_metric; @@ -68906,12789 +76056,13470 @@ struct rtvia { __u8 rtvia_addr[0]; }; -struct scm_stat { - atomic_t nr_fds; -}; +struct inet_diag_req_v2; -struct unix_address; +struct inet_diag_msg; -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct socket_wq peer_wq; - wait_queue_entry_t peer_wake; - struct scm_stat scm_stat; - struct sk_buff *oob_skb; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct inet_diag_handler { + void (*dump)(struct sk_buff *, struct netlink_callback *, const struct inet_diag_req_v2 *); + int (*dump_one)(struct netlink_callback *, const struct inet_diag_req_v2 *); + void (*idiag_get_info)(struct sock *, struct inet_diag_msg *, void *); + int (*idiag_get_aux)(struct sock *, bool, struct sk_buff *); + size_t (*idiag_get_aux_size)(struct sock *, bool); + int (*destroy)(struct sk_buff *, const struct inet_diag_req_v2 *); + __u16 idiag_type; + __u16 idiag_info_size; }; -struct sockaddr_un { - __kernel_sa_family_t sun_family; - char sun_path[108]; +struct tcpvegas_info { + __u32 tcpv_enabled; + __u32 tcpv_rttcnt; + __u32 tcpv_rtt; + __u32 tcpv_minrtt; }; -struct unix_address { - refcount_t refcnt; - int len; - struct sockaddr_un name[0]; +struct tcp_dctcp_info { + __u16 dctcp_enabled; + __u16 dctcp_ce_state; + __u32 dctcp_alpha; + __u32 dctcp_ab_ecn; + __u32 dctcp_ab_tot; }; -struct scm_fp_list; - -struct unix_skb_parms { - struct pid *pid; - kuid_t uid; - kgid_t gid; - struct scm_fp_list *fp; - u32 consumed; +struct tcp_bbr_info { + __u32 bbr_bw_lo; + __u32 bbr_bw_hi; + __u32 bbr_min_rtt; + __u32 bbr_pacing_gain; + __u32 bbr_cwnd_gain; }; -struct scm_fp_list { - short count; - short max; - struct user_struct *user; - struct file *fp[253]; +union tcp_cc_info { + struct tcpvegas_info vegas; + struct tcp_dctcp_info dctcp; + struct tcp_bbr_info bbr; }; -struct socket_alloc { - struct socket socket; - struct inode vfs_inode; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct inet_diag_sockid { + __be16 idiag_sport; + __be16 idiag_dport; + __be32 idiag_src[4]; + __be32 idiag_dst[4]; + __u32 idiag_if; + __u32 idiag_cookie[2]; }; -struct scm_cookie { - struct pid *pid; - struct scm_fp_list *fp; - struct scm_creds creds; +struct inet_diag_req_v2 { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u8 idiag_ext; + __u8 pad; + __u32 idiag_states; + struct inet_diag_sockid id; }; -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 inet_diag_msg { + __u8 idiag_family; + __u8 idiag_state; + __u8 idiag_timer; + __u8 idiag_retrans; + struct inet_diag_sockid id; + __u32 idiag_expires; + __u32 idiag_rqueue; + __u32 idiag_wqueue; + __u32 idiag_uid; + __u32 idiag_inode; }; -struct cache_queue { - struct list_head list; - int reader; +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 cache_request { - struct cache_queue q; - struct cache_head *item; - char *buf; - int len; - int readers; +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 thread_deferred_req { - struct cache_deferred_req handle; - struct completion completion; +enum { + INET_DIAG_REQ_NONE = 0, + INET_DIAG_REQ_BYTECODE = 1, + INET_DIAG_REQ_SK_BPF_STORAGES = 2, + INET_DIAG_REQ_PROTOCOL = 3, + __INET_DIAG_REQ_MAX = 4, }; -struct rpc_inode { - struct inode vfs_inode; - void *private; - struct rpc_pipe *pipe; - wait_queue_head_t waitq; - long: 32; +enum { + SK_MEMINFO_RMEM_ALLOC = 0, + SK_MEMINFO_RCVBUF = 1, + SK_MEMINFO_WMEM_ALLOC = 2, + SK_MEMINFO_SNDBUF = 3, + SK_MEMINFO_FWD_ALLOC = 4, + SK_MEMINFO_WMEM_QUEUED = 5, + SK_MEMINFO_OPTMEM = 6, + SK_MEMINFO_BACKLOG = 7, + SK_MEMINFO_DROPS = 8, + SK_MEMINFO_VARS = 9, }; -struct 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; +enum { + INET_DIAG_BC_NOP = 0, + INET_DIAG_BC_JMP = 1, + INET_DIAG_BC_S_GE = 2, + INET_DIAG_BC_S_LE = 3, + INET_DIAG_BC_D_GE = 4, + INET_DIAG_BC_D_LE = 5, + INET_DIAG_BC_AUTO = 6, + INET_DIAG_BC_S_COND = 7, + INET_DIAG_BC_D_COND = 8, + INET_DIAG_BC_DEV_COND = 9, + INET_DIAG_BC_MARK_COND = 10, + INET_DIAG_BC_S_EQ = 11, + INET_DIAG_BC_D_EQ = 12, + INET_DIAG_BC_CGROUP_COND = 13, }; -struct cache_reader { - struct cache_queue q; - int offset; +struct inet_timewait_sock { + struct sock_common __tw_common; + __u32 tw_mark; + volatile unsigned char tw_substate; + unsigned char tw_rcv_wscale; + __be16 tw_sport; + unsigned int tw_transparent: 1; + unsigned int tw_flowlabel: 20; + unsigned int tw_usec_ts: 1; + unsigned int tw_pad: 2; + unsigned int tw_tos: 8; + u32 tw_txhash; + u32 tw_priority; + struct timer_list tw_timer; + struct inet_bind_bucket *tw_tb; + struct inet_bind2_bucket *tw_tb2; + struct hlist_node tw_bind2_node; }; -struct minix_super_block { - __u16 s_ninodes; - __u16 s_nzones; - __u16 s_imap_blocks; - __u16 s_zmap_blocks; - __u16 s_firstdatazone; - __u16 s_log_zone_size; - __u32 s_max_size; - __u16 s_magic; - __u16 s_state; - __u32 s_zones; +struct inet_diag_hostcond { + __u8 family; + __u8 prefix_len; + int port; + __be32 addr[0]; }; -struct romfs_super_block { - __be32 word0; - __be32 word1; - __be32 size; - __be32 checksum; - char name[0]; +struct inet_diag_markcond { + __u32 mark; + __u32 mask; }; -struct cramfs_info { - __u32 crc; - __u32 edition; - __u32 blocks; - __u32 files; -}; +struct bpf_sk_storage_diag; -struct cramfs_inode { - __u32 mode: 16; - __u32 uid: 16; - __u32 size: 24; - __u32 gid: 8; - __u32 namelen: 6; - __u32 offset: 26; +struct inet_diag_dump_data { + struct nlattr *req_nlas[4]; + struct bpf_sk_storage_diag *bpf_stg_diag; }; -struct cramfs_super { - __u32 magic; - __u32 size; - __u32 flags; - __u32 future; - __u8 signature[16]; - struct cramfs_info fsid; - __u8 name[16]; - struct cramfs_inode root; +struct inet_diag_entry { + const __be32 *saddr; + const __be32 *daddr; + u16 sport; + u16 dport; + u16 family; + u16 userlocks; + u32 ifindex; + u32 mark; + u64 cgroup_id; }; -struct squashfs_super_block { - __le32 s_magic; - __le32 inodes; - __le32 mkfs_time; - __le32 block_size; - __le32 fragments; - __le16 compression; - __le16 block_log; - __le16 flags; - __le16 no_ids; - __le16 s_major; - __le16 s_minor; - __le64 root_inode; - __le64 bytes_used; - __le64 id_table_start; - __le64 xattr_id_table_start; - __le64 inode_table_start; - __le64 directory_table_start; - __le64 fragment_table_start; - __le64 lookup_table_start; +struct inet_diag_bc_op { + unsigned char code; + unsigned char yes; + unsigned short no; }; -typedef void (*btf_trace_notifier_register)(void *, void *); - -typedef void (*btf_trace_notifier_unregister)(void *, void *); - -typedef void (*btf_trace_notifier_run)(void *, void *); - -enum die_val { - DIE_UNUSED = 0, - DIE_OOPS = 1, +struct netlink_dump_control { + int (*start)(struct netlink_callback *); + int (*dump)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + struct netlink_ext_ack *extack; + void *data; + struct module *module; + u32 min_dump_alloc; }; -struct trace_event_raw_notifier_info { - struct trace_entry ent; - void *cb; - char __data[0]; +struct inet_diag_req { + __u8 idiag_family; + __u8 idiag_src_len; + __u8 idiag_dst_len; + __u8 idiag_ext; + struct inet_diag_sockid id; + __u32 idiag_states; + __u32 idiag_dbs; }; -struct trace_event_data_offsets_notifier_info {}; - -struct die_args { - struct pt_regs *regs; - const char *str; - long err; - int trapnr; - int signr; +struct inet_diag_sockopt { + __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 unused: 5; }; -enum { - IRQCHIP_FWNODE_REAL = 0, - IRQCHIP_FWNODE_NAMED = 1, - IRQCHIP_FWNODE_NAMED_ID = 2, +struct inet_diag_meminfo { + __u32 idiag_rmem; + __u32 idiag_wmem; + __u32 idiag_fmem; + __u32 idiag_tmem; }; 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, + LWTUNNEL_XMIT_DONE = 0, + LWTUNNEL_XMIT_CONTINUE = 256, }; -struct irqchip_fwid { - struct fwnode_handle fwnode; - unsigned int type; - char *name; - phys_addr_t *pa; +enum { + SKBFL_ZEROCOPY_ENABLE = 1, + SKBFL_SHARED_FRAG = 2, + SKBFL_PURE_ZEROCOPY = 4, + SKBFL_DONT_ORPHAN = 8, + SKBFL_MANAGED_FRAG_REFS = 16, }; -enum tick_broadcast_state { - TICK_BROADCAST_EXIT = 0, - TICK_BROADCAST_ENTER = 1, +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 ftrace_func_command { - struct list_head list; - char *name; - int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); +struct mmpin { + struct user_struct *user; + unsigned int num_pg; }; -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 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; }; -enum { - TRACE_ARRAY_FL_GLOBAL = 1, +struct ip6_fraglist_iter { + struct ipv6hdr *tmp_hdr; + struct sk_buff *frag; + int offset; + unsigned int hlen; + __be32 frag_id; + u8 nexthdr; }; -enum { - FTRACE_OPS_FL_ENABLED = 1, - FTRACE_OPS_FL_DYNAMIC = 2, - FTRACE_OPS_FL_SAVE_REGS = 4, - FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8, - FTRACE_OPS_FL_RECURSION = 16, - FTRACE_OPS_FL_STUB = 32, - FTRACE_OPS_FL_INITIALIZED = 64, - FTRACE_OPS_FL_DELETED = 128, - FTRACE_OPS_FL_ADDING = 256, - FTRACE_OPS_FL_REMOVING = 512, - FTRACE_OPS_FL_MODIFYING = 1024, - FTRACE_OPS_FL_ALLOC_TRAMP = 2048, - FTRACE_OPS_FL_IPMODIFY = 4096, - FTRACE_OPS_FL_PID = 8192, - FTRACE_OPS_FL_RCU = 16384, - FTRACE_OPS_FL_TRACE_ARRAY = 32768, - FTRACE_OPS_FL_PERMANENT = 65536, - FTRACE_OPS_FL_DIRECT = 131072, +struct 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; }; -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, +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; + long: 32; + __u64 dad_nonce; + unsigned long cstamp; + unsigned long tstamp; + struct delayed_work dad_work; + struct inet6_dev *idev; + struct fib6_info *rt; + struct hlist_node addr_lst; + struct list_head if_list; + struct list_head if_list_aux; + struct list_head tmp_list; + struct inet6_ifaddr *ifpub; + int regen_count; + bool tokenized; + u8 ifa_proto; + struct callback_head rcu; + struct in6_addr peer_addr; }; -enum { - TRACE_CTX_NMI = 0, - TRACE_CTX_IRQ = 1, - TRACE_CTX_SOFTIRQ = 2, - TRACE_CTX_NORMAL = 3, - TRACE_CTX_TRANSITION = 4, +struct hop_jumbo_hdr { + u8 nexthdr; + u8 hdrlen; + u8 tlv_type; + u8 tlv_len; + __be32 jumbo_payload_len; }; -enum { - TRACE_FUNC_NO_OPTS = 0, - TRACE_FUNC_OPT_STACK = 1, - TRACE_FUNC_OPT_NO_REPEATS = 2, - TRACE_FUNC_OPT_HIGHEST_BIT = 4, +struct seg6_bpf_srh_state { + struct ipv6_sr_hdr *srh; + u16 hdrlen; + bool valid; }; -typedef int (*ftrace_mapper_func)(void *); +struct seg6_local_lwt; -struct bpf_iter__bpf_prog { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_prog *prog; - }; +struct seg6_local_lwtunnel_ops { + int (*build_state)(struct seg6_local_lwt *, const void *, struct netlink_ext_ack *); + void (*destroy_state)(struct seg6_local_lwt *); }; -struct bpf_iter_seq_prog_info { - u32 prog_id; +struct seg6_action_desc { + int action; + unsigned long attrs; + unsigned long optattrs; + int (*input)(struct sk_buff *, struct seg6_local_lwt *); + int static_headroom; + struct seg6_local_lwtunnel_ops slwt_ops; }; -typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *); +struct bpf_lwt_prog { + struct bpf_prog *prog; + char *name; +}; -typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, unsigned long, unsigned long, unsigned long, int, bool); +struct seg6_flavors_info { + __u32 flv_ops; + __u8 lcblock_bits; + __u8 lcnode_func_bits; +}; -typedef void (*btf_trace_mark_victim)(void *, int); +struct pcpu_seg6_local_counters; -typedef void (*btf_trace_wake_reaper)(void *, int); +struct seg6_local_lwt { + int action; + struct ipv6_sr_hdr *srh; + int table; + struct in_addr nh4; + struct in6_addr nh6; + int iif; + int oif; + struct bpf_lwt_prog bpf; + struct seg6_flavors_info flv_info; + struct pcpu_seg6_local_counters __attribute__((btf_type_tag("percpu"))) *pcpu_counters; + int headroom; + struct seg6_action_desc *desc; + unsigned long parsed_optattrs; +}; -typedef void (*btf_trace_start_task_reaping)(void *, int); +struct pcpu_seg6_local_counters { + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t errors; + struct u64_stats_sync syncp; + long: 32; +}; -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, +struct seg6_action_param { + int (*parse)(struct nlattr **, struct seg6_local_lwt *, struct netlink_ext_ack *); + int (*put)(struct sk_buff *, struct seg6_local_lwt *); + int (*cmp)(struct seg6_local_lwt *, struct seg6_local_lwt *); + void (*destroy)(struct seg6_local_lwt *); }; -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 { + SEG6_LOCAL_UNSPEC = 0, + SEG6_LOCAL_ACTION = 1, + SEG6_LOCAL_SRH = 2, + SEG6_LOCAL_TABLE = 3, + SEG6_LOCAL_NH4 = 4, + SEG6_LOCAL_NH6 = 5, + SEG6_LOCAL_IIF = 6, + SEG6_LOCAL_OIF = 7, + SEG6_LOCAL_BPF = 8, + SEG6_LOCAL_VRFTABLE = 9, + SEG6_LOCAL_COUNTERS = 10, + SEG6_LOCAL_FLAVORS = 11, + __SEG6_LOCAL_MAX = 12, }; -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, +enum { + SEG6_LOCAL_FLV_OP_UNSPEC = 0, + SEG6_LOCAL_FLV_OP_PSP = 1, + SEG6_LOCAL_FLV_OP_USP = 2, + SEG6_LOCAL_FLV_OP_USD = 3, + SEG6_LOCAL_FLV_OP_NEXT_CSID = 4, + __SEG6_LOCAL_FLV_OP_MAX = 5, }; -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 seg6_local_flv_action { + SEG6_LOCAL_FLV_ACT_UNSPEC = 0, + SEG6_LOCAL_FLV_ACT_END = 1, + SEG6_LOCAL_FLV_ACT_PSP = 2, + SEG6_LOCAL_FLV_ACT_USP = 3, + SEG6_LOCAL_FLV_ACT_USD = 4, + __SEG6_LOCAL_FLV_ACT_MAX = 5, }; -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]; +enum seg6_local_pktinfo { + SEG6_LOCAL_PKTINFO_NOHDR = 0, + SEG6_LOCAL_PKTINFO_SL_ZERO = 1, + SEG6_LOCAL_PKTINFO_SL_ONE = 2, + SEG6_LOCAL_PKTINFO_SL_MORE = 3, + __SEG6_LOCAL_PKTINFO_MAX = 4, }; -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]; +enum bpf_ret_code { + BPF_OK = 0, + BPF_DROP = 2, + BPF_REDIRECT = 7, + BPF_LWT_REROUTE = 128, + BPF_FLOW_DISSECTOR_CONTINUE = 129, }; -struct trace_event_raw_mark_victim { - struct trace_entry ent; - int pid; - char __data[0]; +enum { + SEG6_LOCAL_BPF_PROG_UNSPEC = 0, + SEG6_LOCAL_BPF_PROG = 1, + SEG6_LOCAL_BPF_PROG_NAME = 2, + __SEG6_LOCAL_BPF_PROG_MAX = 3, }; -struct trace_event_raw_wake_reaper { - struct trace_entry ent; - int pid; - char __data[0]; +enum seg6_end_dt_mode { + DT_INVALID_MODE = -22, + DT_LEGACY_MODE = 0, + DT_VRF_MODE = 1, }; -struct trace_event_raw_start_task_reaping { - struct trace_entry ent; - int pid; - char __data[0]; +enum { + SEG6_LOCAL_CNT_UNSPEC = 0, + SEG6_LOCAL_CNT_PAD = 1, + SEG6_LOCAL_CNT_PACKETS = 2, + SEG6_LOCAL_CNT_BYTES = 3, + SEG6_LOCAL_CNT_ERRORS = 4, + __SEG6_LOCAL_CNT_MAX = 5, }; -struct trace_event_raw_finish_task_reaping { - struct trace_entry ent; - int pid; - char __data[0]; +enum { + SEG6_LOCAL_FLV_UNSPEC = 0, + SEG6_LOCAL_FLV_OPERATION = 1, + SEG6_LOCAL_FLV_LCBLOCK_BITS = 2, + SEG6_LOCAL_FLV_LCNODE_FN_BITS = 3, + __SEG6_LOCAL_FLV_MAX = 4, }; -struct trace_event_raw_skip_task_reaping { - struct trace_entry ent; - int pid; - char __data[0]; +enum { + SEG6_LOCAL_ACTION_UNSPEC = 0, + SEG6_LOCAL_ACTION_END = 1, + SEG6_LOCAL_ACTION_END_X = 2, + SEG6_LOCAL_ACTION_END_T = 3, + SEG6_LOCAL_ACTION_END_DX2 = 4, + SEG6_LOCAL_ACTION_END_DX6 = 5, + SEG6_LOCAL_ACTION_END_DX4 = 6, + SEG6_LOCAL_ACTION_END_DT6 = 7, + SEG6_LOCAL_ACTION_END_DT4 = 8, + SEG6_LOCAL_ACTION_END_B6 = 9, + SEG6_LOCAL_ACTION_END_B6_ENCAP = 10, + SEG6_LOCAL_ACTION_END_BM = 11, + SEG6_LOCAL_ACTION_END_S = 12, + SEG6_LOCAL_ACTION_END_AS = 13, + SEG6_LOCAL_ACTION_END_AM = 14, + SEG6_LOCAL_ACTION_END_BPF = 15, + SEG6_LOCAL_ACTION_END_DT46 = 16, + __SEG6_LOCAL_ACTION_MAX = 17, }; -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 seg6_local_counters { + __u64 packets; + __u64 bytes; + __u64 errors; }; -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 seg6_end_dt_info { + enum seg6_end_dt_mode mode; + struct net *net; + int vrf_ifindex; + int vrf_table; + u16 family; }; -typedef unsigned int zap_flags_t; - -struct zap_details { - struct folio *single_folio; - bool even_cows; - zap_flags_t zap_flags; +enum rpc_msg_type { + RPC_CALL = 0, + RPC_REPLY = 1, }; -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 {}; +enum { + TLS_RECORD_TYPE_CHANGE_CIPHER_SPEC = 20, + TLS_RECORD_TYPE_ALERT = 21, + TLS_RECORD_TYPE_HANDSHAKE = 22, + TLS_RECORD_TYPE_DATA = 23, + TLS_RECORD_TYPE_HEARTBEAT = 24, + TLS_RECORD_TYPE_TLS12_CID = 25, + TLS_RECORD_TYPE_ACK = 26, +}; -struct trace_event_data_offsets_finish_task_reaping {}; +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 trace_event_data_offsets_skip_task_reaping {}; +enum { + XPT_BUSY = 0, + XPT_CONN = 1, + XPT_CLOSE = 2, + XPT_DATA = 3, + XPT_TEMP = 4, + XPT_DEAD = 5, + XPT_CHNGBUF = 6, + XPT_DEFERRED = 7, + XPT_OLD = 8, + XPT_LISTENER = 9, + XPT_CACHE_AUTH = 10, + XPT_LOCAL = 11, + XPT_KILL_TEMP = 12, + XPT_CONG_CTRL = 13, + XPT_HANDSHAKE = 14, + XPT_TLS_SESSION = 15, + XPT_PEER_AUTH = 16, +}; -struct trace_event_data_offsets_compact_retry {}; +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 completion handshake_done; + struct __kernel_sockaddr_storage srcaddr; + unsigned short srcport; + int xprt_err; + struct rpc_clnt *clnt; + 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 *); + long: 32; +}; -struct mmu_notifier_range { - unsigned long start; - unsigned long end; +struct page_frag_cache { + void *va; + __u16 offset; + __u16 size; + unsigned int pagecnt_bias; + bool pfmemalloc; }; -enum { - BIO_PAGE_PINNED = 0, - BIO_CLONED = 1, - BIO_BOUNCED = 2, - BIO_QUIET = 3, - BIO_CHAIN = 4, - BIO_REFFED = 5, - BIO_BPS_THROTTLED = 6, - BIO_TRACE_COMPLETION = 7, - BIO_CGROUP_ACCT = 8, - BIO_QOS_THROTTLED = 9, - BIO_QOS_MERGED = 10, - BIO_REMAPPED = 11, - BIO_ZONE_WRITE_LOCKED = 12, - BIO_FLAG_LAST = 13, +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; + struct page_frag_cache sk_frag_cache; + struct completion sk_handshake_done; + struct page *sk_pages[259]; }; -struct swap_iocb { - struct kiocb iocb; - struct bio_vec bvec[32]; - int pages; - int len; +struct rpc_buffer { + size_t len; + char data[0]; }; -enum iter_type { - ITER_IOVEC = 0, - ITER_KVEC = 1, - ITER_BVEC = 2, - ITER_XARRAY = 3, - ITER_DISCARD = 4, - ITER_UBUF = 5, +struct cmsghdr { + __kernel_size_t cmsg_len; + int cmsg_level; + int cmsg_type; }; -struct iomap_dio_ops; +typedef __be32 rpc_fraghdr; -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; - }; +typedef unsigned int OM_uint32; + +struct gss_krb5_enctype; + +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; long: 32; + atomic64_t seq_send64; + time64_t endtime; + struct xdr_netobj mech_used; }; -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 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 (*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 migrate_struct { - ext4_lblk_t first_block; - ext4_lblk_t last_block; - ext4_lblk_t curr_block; +struct crypto_skcipher { + unsigned int reqsize; long: 32; - ext4_fsblk_t first_pblock; - ext4_fsblk_t last_pblock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct crypto_tfm base; }; -struct squashfs_dir_index { - __le32 index; - __le32 start_block; - __le32 size; - unsigned char name[0]; +struct crypto_sync_skcipher { + struct crypto_skcipher base; }; -struct squashfs_dir_header { - __le32 count; - __le32 start_block; - __le32 inode_number; +struct minix_super_block { + __u16 s_ninodes; + __u16 s_nzones; + __u16 s_imap_blocks; + __u16 s_zmap_blocks; + __u16 s_firstdatazone; + __u16 s_log_zone_size; + __u32 s_max_size; + __u16 s_magic; + __u16 s_state; + __u32 s_zones; }; -struct squashfs_dir_entry { - __le16 offset; - __le16 inode_number; - __le16 type; - __le16 size; +struct romfs_super_block { + __be32 word0; + __be32 word1; + __be32 size; + __be32 checksum; char name[0]; }; -struct nfs_find_desc { - struct nfs_fh *fh; - struct nfs_fattr *fattr; +struct cramfs_info { + __u32 crc; + __u32 edition; + __u32 blocks; + __u32 files; }; -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 cramfs_inode { + __u32 mode: 16; + __u32 uid: 16; + __u32 size: 24; + __u32 gid: 8; + __u32 namelen: 6; + __u32 offset: 26; }; -struct nlm_block; - -struct nlm_rqst { - refcount_t a_count; - unsigned int a_flags; - struct nlm_host *a_host; - long: 32; - 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 cramfs_super { + __u32 magic; + __u32 size; + __u32 flags; + __u32 future; + __u8 signature[16]; + struct cramfs_info fsid; + __u8 name[16]; + struct cramfs_inode root; }; -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 squashfs_super_block { + __le32 s_magic; + __le32 inodes; + __le32 mkfs_time; + __le32 block_size; + __le32 fragments; + __le16 compression; + __le16 block_log; + __le16 flags; + __le16 no_ids; + __le16 s_major; + __le16 s_minor; + __le64 root_inode; + __le64 bytes_used; + __le64 id_table_start; + __le64 xattr_id_table_start; + __le64 inode_table_start; + __le64 directory_table_start; + __le64 fragment_table_start; + __le64 lookup_table_start; }; -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 map_desc { + unsigned long virtual; + unsigned long pfn; + unsigned long length; + unsigned int type; }; -struct nlm_wait { - struct list_head b_list; - wait_queue_head_t b_wait; - struct nlm_host *b_host; - struct file_lock *b_lock; - __be32 b_status; +enum ulp_cpu_pwr_mode { + ULP_PM_HSRUN = 0, + ULP_PM_RUN = 1, + ULP_PM_WAIT = 2, + ULP_PM_STOP = 3, + ULP_PM_VLPS = 4, + ULP_PM_VLLS = 5, }; -enum { - COMMIT_RESTING = 0, - COMMIT_BACKGROUND = 1, - COMMIT_REQUIRED = 2, - COMMIT_RUNNING_BACKGROUND = 3, - COMMIT_RUNNING_REQUIRED = 4, - COMMIT_BROKEN = 5, +struct mtk_smp_boot_info { + unsigned long smp_base; + unsigned int jump_reg; + unsigned int core_keys[7]; + unsigned int core_regs[7]; }; -enum { - DIRTY_ZNODE = 0, - COW_ZNODE = 1, - OBSOLETE_ZNODE = 2, +struct clkdm_ops { + int (*clkdm_add_wkdep)(struct clockdomain *, struct clockdomain *); + int (*clkdm_del_wkdep)(struct clockdomain *, struct clockdomain *); + int (*clkdm_read_wkdep)(struct clockdomain *, struct clockdomain *); + int (*clkdm_clear_all_wkdeps)(struct clockdomain *); + int (*clkdm_add_sleepdep)(struct clockdomain *, struct clockdomain *); + int (*clkdm_del_sleepdep)(struct clockdomain *, struct clockdomain *); + int (*clkdm_read_sleepdep)(struct clockdomain *, struct clockdomain *); + int (*clkdm_clear_all_sleepdeps)(struct clockdomain *); + int (*clkdm_sleep)(struct clockdomain *); + int (*clkdm_wakeup)(struct clockdomain *); + void (*clkdm_allow_idle)(struct clockdomain *); + void (*clkdm_deny_idle)(struct clockdomain *); + int (*clkdm_clk_enable)(struct clockdomain *); + int (*clkdm_clk_disable)(struct clockdomain *); + int (*clkdm_save_context)(struct clockdomain *); + int (*clkdm_restore_context)(struct clockdomain *); }; -typedef unsigned int autofs_wqt_t; +struct wq_flusher; -enum autofs_notify { - NFY_NONE = 0, - NFY_MOUNT = 1, - NFY_EXPIRE = 2, -}; +struct worker; -struct autofs_sb_info; +struct workqueue_attrs; -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 pool_workqueue; -struct autofs_wait_queue; +struct wq_device; -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 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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + unsigned int flags; + struct pool_workqueue __attribute__((btf_type_tag("percpu"))) __attribute__((btf_type_tag("rcu"))) **cpu_pwq; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct autofs_wait_queue { - wait_queue_head_t queue; - struct autofs_wait_queue *next; - autofs_wqt_t wait_queue_token; - long: 32; - 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 wq_flusher { + struct list_head list; + int flush_color; + struct completion done; }; -struct autofs_packet_hdr { - int proto_version; - int type; +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; + long: 32; + u64 current_at; + unsigned int current_color; + int sleeping; + work_func_t last_func; + struct list_head scheduled; + struct task_struct *task; + struct worker_pool *pool; + struct list_head node; + unsigned long last_active; + unsigned int flags; + int id; + char desc[24]; + struct workqueue_struct *rescue_wq; + long: 32; }; -struct autofs_packet_missing { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - int len; - char name[256]; +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; + long: 32; + u64 stats[8]; + struct kthread_work release_work; + struct callback_head rcu; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct autofs_packet_expire { - struct autofs_packet_hdr hdr; - int len; - char name[256]; +struct worker_pool { + raw_spinlock_t lock; + int cpu; + int node; + int id; + unsigned int flags; + unsigned long watchdog_ts; + bool cpu_stall; + int nr_running; + struct list_head worklist; + int nr_workers; + int nr_idle; + struct list_head idle_list; + struct timer_list idle_timer; + struct work_struct idle_cull_work; + struct timer_list mayday_timer; + struct hlist_head busy_hash[64]; + struct worker *manager; + struct list_head workers; + struct list_head dying_workers; + struct completion *detach_completion; + struct ida worker_ida; + struct workqueue_attrs *attrs; + struct hlist_node hash_node; + int refcnt; + struct callback_head rcu; }; -struct autofs_packet_expire_multi { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - int len; - char name[256]; +enum wq_affn_scope { + WQ_AFFN_DFL = 0, + WQ_AFFN_CPU = 1, + WQ_AFFN_SMT = 2, + WQ_AFFN_CACHE = 3, + WQ_AFFN_NUMA = 4, + WQ_AFFN_SYSTEM = 5, + WQ_AFFN_NR_TYPES = 6, }; -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 workqueue_attrs { + int nice; + cpumask_var_t cpumask; + cpumask_var_t __pod_cpumask; + bool affn_strict; + enum wq_affn_scope affn_scope; + bool ordered; }; -struct 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]; +struct wq_device { + struct workqueue_struct *wq; long: 32; + struct device dev; }; -typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; - -typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; +typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *); -typedef struct autofs_v5_packet autofs_packet_missing_direct_t; +typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *); -typedef struct autofs_v5_packet autofs_packet_expire_direct_t; +typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *); -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; -}; +typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t); -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, +struct wq_pod_type { + int nr_pods; + cpumask_var_t *pod_cpus; + int *pod_node; + int *cpu_pod; }; enum { - Opt_err = 0, - Opt_enc = 1, - Opt_hash = 2, + 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 = 30000, + MAYDAY_INITIAL_TIMEOUT = 2, + MAYDAY_INTERVAL = 10, + CREATE_COOLDOWN = 100, + RESCUER_NICE_LEVEL = -20, + HIGHPRI_NICE_LEVEL = -20, + WQ_NAME_LEN = 24, }; -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]; +enum pool_workqueue_stats { + PWQ_STAT_STARTED = 0, + PWQ_STAT_COMPLETED = 1, + PWQ_STAT_CPU_TIME = 2, + PWQ_STAT_CPU_INTENSIVE = 3, + PWQ_STAT_CM_WAKEUP = 4, + PWQ_STAT_REPATRIATED = 5, + PWQ_STAT_MAYDAY = 6, + PWQ_STAT_RESCUED = 7, + PWQ_NR_STATS = 8, }; -struct keyctl_pkey_params { - __s32 key_id; - __u32 in_len; - union { - __u32 out_len; - __u32 in2_len; - }; - __u32 __spare[7]; +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 lzorle_ctx { - void *lzorle_comp_mem; +struct trace_event_raw_workqueue_activate_work { + struct trace_entry ent; + void *work; + char __data[0]; }; -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; - long: 32; - } *parts; - int next; - int limit; - bool access_beyond_eod; - char *pp_buf; +struct trace_event_raw_workqueue_execute_start { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; }; -typedef struct { - struct folio *v; -} Sector; - -typedef void io_wq_work_fn(struct io_wq_work *); - -typedef struct io_wq_work *free_work_fn(struct io_wq_work *); - -struct io_wq_data { - struct io_wq_hash *hash; - struct task_struct *task; - io_wq_work_fn *do_work; - free_work_fn *free_work; +struct trace_event_raw_workqueue_execute_end { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; }; -typedef void (*task_work_func_t)(struct callback_head *); - -struct io_tctx_node { - struct list_head ctx_node; +struct wq_barrier { + struct work_struct work; + struct completion done; struct task_struct *task; - struct io_ring_ctx *ctx; }; -struct io_uring_rsrc_update { - __u32 offset; - __u32 resv; - __u64 data; +struct cwt_wait { + wait_queue_entry_t wait; + struct work_struct *work; }; -typedef unsigned short ush; - -struct ct_data_s { - union { - ush freq; - ush code; - } fc; - union { - ush dad; - ush len; - } dl; +struct work_for_cpu { + struct work_struct work; + long (*fn)(void *); + void *arg; + long ret; }; -typedef struct ct_data_s ct_data; +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]; +}; -typedef unsigned char uch; +struct trace_event_data_offsets_workqueue_queue_work { + u32 workqueue; +}; -struct static_tree_desc_s { - const ct_data *static_tree; - const int *extra_bits; - int extra_base; - int elems; - int max_length; +struct pr_cont_work_struct { + bool comma; + work_func_t func; + long ctr; }; -typedef struct static_tree_desc_s static_tree_desc; +struct trace_event_data_offsets_workqueue_activate_work {}; -typedef unsigned long ulg; +struct trace_event_data_offsets_workqueue_execute_start {}; -struct tree_desc_s { - ct_data *dyn_tree; - int max_code; - static_tree_desc *stat_desc; +struct trace_event_data_offsets_workqueue_execute_end {}; + +struct execute_work { + struct work_struct work; }; -typedef struct tree_desc_s tree_desc; +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, +}; -typedef unsigned int uInt; +struct __kernel_timex_timeval { + __kernel_time64_t tv_sec; + long long tv_usec; +}; -typedef ush Pos; - -typedef unsigned int IPos; - -struct deflate_state { - z_streamp strm; +struct __kernel_timex { + unsigned int modes; + long: 32; + long long offset; + long long freq; + long long maxerror; + long long esterror; 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; + long: 32; + 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: 32; + long long stabil; + long long jitcnt; + long long calcnt; + long long errcnt; + long long stbcnt; + int tai; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -typedef struct deflate_state deflate_state; - -typedef struct { - U64 rolling; - U64 stopMask; -} ldmRollingHashState_t; +struct audit_ntp_data {}; -enum { - EI_ETYPE_NULL = 0, - EI_ETYPE_ERRNO = 1, - EI_ETYPE_ERRNO_NULL = 2, - EI_ETYPE_TRUE = 3, +struct futex_hash_bucket { + atomic_t waiters; + spinlock_t lock; + struct plist_head chain; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct ei_entry { - struct list_head list; - unsigned long start_addr; - unsigned long end_addr; - int etype; - void *priv; +enum futex_access { + FUTEX_READ = 0, + FUTEX_WRITE = 1, }; enum { - IRQ_SET_MASK_OK = 0, - IRQ_SET_MASK_OK_NOCOPY = 1, - IRQ_SET_MASK_OK_DONE = 2, + FUTEX_STATE_OK = 0, + FUTEX_STATE_EXITING = 1, + FUTEX_STATE_DEAD = 2, }; -enum { - ARB_TIMER = 0, - ARB_BP_CAP_CLR = 1, - ARB_BP_CAP_HI_ADDR = 2, - ARB_BP_CAP_ADDR = 3, - ARB_BP_CAP_STATUS = 4, - ARB_BP_CAP_MASTER = 5, - ARB_ERR_CAP_CLR = 6, - ARB_ERR_CAP_HI_ADDR = 7, - ARB_ERR_CAP_ADDR = 8, - ARB_ERR_CAP_STATUS = 9, - ARB_ERR_CAP_MASTER = 10, +struct rt_waiter_node { + struct rb_node entry; + int prio; + u64 deadline; }; -struct brcmstb_gisb_arb_device { - void *base; - const int *gisb_offsets; - bool big_endian; - struct mutex lock; - struct list_head next; - u32 valid_mask; - const char *master_names[32]; - u32 saved_timeout; +struct rt_mutex_waiter { + struct rt_waiter_node tree; + struct rt_waiter_node pi_tree; + struct task_struct *task; + struct rt_mutex_base *lock; + unsigned int wake_state; + struct ww_acquire_ctx *ww_ctx; }; -struct sr_pcie_phy_core; - -struct sr_pcie_phy { - struct sr_pcie_phy_core *core; - unsigned int index; - struct phy *phy; +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 sr_pcie_phy_core { - struct device *dev; - void *base; - struct regmap *cdru; - struct regmap *mhb; - u32 pipemux; - struct sr_pcie_phy phys[9]; +struct futex_pi_state { + struct list_head list; + struct rt_mutex_base pi_mutex; + struct task_struct *owner; + refcount_t refcount; + union futex_key key; }; -struct pinctrl_setting_mux; +struct wake_q_head; -struct pin_desc { - struct pinctrl_dev *pctldev; - const char *name; - bool dynamic_name; - void *drv_data; - unsigned int mux_usecount; - const char *mux_owner; - const struct pinctrl_setting_mux *mux_setting; - const char *gpio_owner; -}; +struct futex_q; -struct pinctrl_setting_mux { - unsigned int group; - unsigned int func; -}; +typedef void futex_wake_fn(struct wake_q_head *, struct futex_q *); -struct pinctrl_setting_configs { - unsigned int group_or_pin; - unsigned long *configs; - unsigned int num_configs; +struct futex_q { + struct plist_node list; + struct task_struct *task; + spinlock_t *lock_ptr; + futex_wake_fn *wake; + void *wake_data; + long: 32; + 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; + long: 32; }; -struct pinctrl_setting { - struct list_head node; - enum pinctrl_map_type type; - struct pinctrl_dev *pctldev; - const char *dev_name; - union { - struct pinctrl_setting_mux mux; - struct pinctrl_setting_configs configs; - } data; +struct wake_q_head { + struct wake_q_node *first; + struct wake_q_node **lastp; }; -struct mtk_spec_pinmux_set { - unsigned short pin; - unsigned short offset; - unsigned char bit; +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 em_gio_priv { - void *base0; - void *base1; - spinlock_t sense_lock; - struct platform_device *pdev; - struct gpio_chip gpio_chip; - struct irq_chip irq_chip; - struct irq_domain *irq_domain; -}; +struct ftrace_page; -struct iproc_pwmc { - struct pwm_chip chip; - void *base; - struct clk *clk; +struct ftrace_rec_iter { + struct ftrace_page *pg; + int index; }; -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 dyn_ftrace; -struct rcar_pci { - struct device *dev; - void *reg; - struct resource mem_res; - struct resource *cfg_res; - int irq; +struct ftrace_page { + struct ftrace_page *next; + struct dyn_ftrace *records; + int index; + int order; }; -struct fbcon_display; +struct dyn_arch_ftrace { + struct module *mod; +}; -struct fbcon_ops { - void (*bmove)(struct vc_data *, struct fb_info *, int, int, int, int, int, int); - void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int); - void (*putcs)(struct vc_data *, struct fb_info *, const unsigned short *, int, int, int, int, int); - void (*clear_margins)(struct vc_data *, struct fb_info *, int, int); - void (*cursor)(struct vc_data *, struct fb_info *, int, int, int); - int (*update_start)(struct fb_info *); - int (*rotate_font)(struct fb_info *, struct vc_data *); - struct fb_var_screeninfo var; - struct delayed_work cursor_work; - struct fb_cursor cursor_state; - struct fbcon_display *p; - struct fb_info *info; - int currcon; - int cur_blink_jiffies; - int cursor_flash; - int cursor_reset; - int blank_state; - int graphics; - int save_graphics; - bool initialized; - int rotate; - int cur_rotate; - char *cursor_data; - u8 *fontbuffer; - u8 *fontdata; - u8 *cursor_src; - u32 cursor_size; - u32 fd_size; +struct dyn_ftrace { + unsigned long ip; + unsigned long flags; + struct dyn_arch_ftrace arch; }; -typedef unsigned short u_short; +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 fbcon_display { - const u_char *fontdata; - int userfont; - u_short inverse; - short yscroll; - int vrows; - int cursor_shape; - int con_rotate; - u32 xres_virtual; - u32 yres_virtual; - u32 height; - u32 width; - u32 bits_per_pixel; - u32 grayscale; - u32 nonstd; - u32 accel_flags; - u32 rotate; - struct fb_bitfield red; - struct fb_bitfield green; - struct fb_bitfield blue; - struct fb_bitfield transp; - const struct fb_videomode *mode; +struct ftrace_func_command { + struct list_head list; + char *name; + int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); }; -struct owl_clk_common; +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 owl_reset_map; +struct ftrace_profile_page; -struct owl_clk_desc { - struct owl_clk_common **clks; - unsigned long num_clks; - struct clk_hw_onecell_data *hw_clks; - const struct owl_reset_map *resets; - unsigned long num_resets; - struct regmap *regmap; +struct ftrace_profile_stat { + atomic_t disabled; + struct hlist_head *hash; + struct ftrace_profile_page *pages; + struct ftrace_profile_page *start; + struct tracer_stat stat; }; -struct owl_clk_common { - struct regmap *regmap; - struct clk_hw hw; +struct ftrace_profile { + struct hlist_node node; + unsigned long ip; + unsigned long counter; + unsigned long long time; + unsigned long long time_squared; }; -struct owl_reset_map { - u32 reg; - u32 bit; +struct ftrace_profile_page { + struct ftrace_profile_page *next; + unsigned long index; + struct ftrace_profile records[0]; }; -struct iproc_pll_aon_pwr_ctrl { - unsigned int offset; - unsigned int pwr_width; - unsigned int pwr_shift; - unsigned int iso_shift; +enum { + FTRACE_OPS_FL_ENABLED = 1, + FTRACE_OPS_FL_DYNAMIC = 2, + FTRACE_OPS_FL_SAVE_REGS = 4, + FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8, + FTRACE_OPS_FL_RECURSION = 16, + FTRACE_OPS_FL_STUB = 32, + FTRACE_OPS_FL_INITIALIZED = 64, + FTRACE_OPS_FL_DELETED = 128, + FTRACE_OPS_FL_ADDING = 256, + FTRACE_OPS_FL_REMOVING = 512, + FTRACE_OPS_FL_MODIFYING = 1024, + FTRACE_OPS_FL_ALLOC_TRAMP = 2048, + FTRACE_OPS_FL_IPMODIFY = 4096, + FTRACE_OPS_FL_PID = 8192, + FTRACE_OPS_FL_RCU = 16384, + FTRACE_OPS_FL_TRACE_ARRAY = 32768, + FTRACE_OPS_FL_PERMANENT = 65536, + FTRACE_OPS_FL_DIRECT = 131072, }; -struct iproc_asiu_gate { - unsigned int offset; - unsigned int en_shift; +enum { + FTRACE_FL_ENABLED = 2147483648, + FTRACE_FL_REGS = 1073741824, + FTRACE_FL_REGS_EN = 536870912, + FTRACE_FL_TRAMP = 268435456, + FTRACE_FL_TRAMP_EN = 134217728, + FTRACE_FL_IPMODIFY = 67108864, + FTRACE_FL_DISABLED = 33554432, + FTRACE_FL_DIRECT = 16777216, + FTRACE_FL_DIRECT_EN = 8388608, + FTRACE_FL_CALL_OPS = 4194304, + FTRACE_FL_CALL_OPS_EN = 2097152, + FTRACE_FL_TOUCHED = 1048576, + FTRACE_FL_MODIFIED = 524288, }; -struct iproc_pll_reset_ctrl { - unsigned int offset; - unsigned int reset_shift; - unsigned int p_reset_shift; +enum { + FTRACE_MODIFY_ENABLE_FL = 1, + FTRACE_MODIFY_MAY_SLEEP_FL = 2, }; -struct iproc_pll_dig_filter_ctrl { - unsigned int offset; - unsigned int ki_shift; - unsigned int ki_width; - unsigned int kp_shift; - unsigned int kp_width; - unsigned int ka_shift; - unsigned int ka_width; +enum { + FTRACE_UPDATE_CALLS = 1, + FTRACE_DISABLE_CALLS = 2, + FTRACE_UPDATE_TRACE_FUNC = 4, + FTRACE_START_FUNC_RET = 8, + FTRACE_STOP_FUNC_RET = 16, + FTRACE_MAY_SLEEP = 32, }; -struct iproc_pll_sw_ctrl { - unsigned int offset; - unsigned int shift; +enum { + FTRACE_ITER_FILTER = 1, + FTRACE_ITER_NOTRACE = 2, + FTRACE_ITER_PRINTALL = 4, + FTRACE_ITER_DO_PROBES = 8, + FTRACE_ITER_PROBE = 16, + FTRACE_ITER_MOD = 32, + FTRACE_ITER_ENABLED = 64, + FTRACE_ITER_TOUCHED = 128, + FTRACE_ITER_ADDRS = 256, }; -struct iproc_clk_reg_op { - unsigned int offset; - unsigned int shift; - unsigned int width; +enum regex_type { + MATCH_FULL = 0, + MATCH_FRONT_ONLY = 1, + MATCH_MIDDLE_ONLY = 2, + MATCH_END_ONLY = 3, + MATCH_GLOB = 4, + MATCH_INDEX = 5, }; -struct iproc_pll_vco_ctrl { - unsigned int u_offset; - unsigned int l_offset; +enum { + TRACE_PIDS = 1, + TRACE_NO_PIDS = 2, }; -struct iproc_pll_ctrl { - unsigned long flags; - struct iproc_pll_aon_pwr_ctrl aon; - struct iproc_asiu_gate asiu; - struct iproc_pll_reset_ctrl reset; - struct iproc_pll_dig_filter_ctrl dig_filter; - struct iproc_pll_sw_ctrl sw_ctrl; - struct iproc_clk_reg_op ndiv_int; - struct iproc_clk_reg_op ndiv_frac; - struct iproc_clk_reg_op pdiv; - struct iproc_pll_vco_ctrl vco_ctrl; - struct iproc_clk_reg_op status; - struct iproc_clk_reg_op macro_mode; +enum { + FTRACE_UPDATE_IGNORE = 0, + FTRACE_UPDATE_MAKE_CALL = 1, + FTRACE_UPDATE_MODIFY_CALL = 2, + FTRACE_UPDATE_MAKE_NOP = 3, }; -struct iproc_clk_enable_ctrl { - unsigned int offset; - unsigned int enable_shift; - unsigned int hold_shift; - unsigned int bypass_shift; +enum { + TRACE_CTX_NMI = 0, + TRACE_CTX_IRQ = 1, + TRACE_CTX_SOFTIRQ = 2, + TRACE_CTX_NORMAL = 3, + TRACE_CTX_TRANSITION = 4, }; -struct iproc_clk_ctrl { - unsigned int channel; - unsigned long flags; - struct iproc_clk_enable_ctrl enable; - struct iproc_clk_reg_op mdiv; +enum graph_filter_type { + GRAPH_FILTER_NOTRACE = 0, + GRAPH_FILTER_FUNCTION = 1, }; -struct iproc_pll_vco_param { - unsigned long rate; - unsigned int ndiv_int; - unsigned int ndiv_frac; - unsigned int pdiv; +struct ftrace_func_mapper { + struct ftrace_hash hash; }; -struct clk_fixup_mux { - struct clk_mux mux; - const struct clk_ops *ops; - void (*fixup)(u32 *); +struct ftrace_func_map { + struct ftrace_func_entry entry; + void *data; }; -enum imx_pfdv2_type { - IMX_PFDV2_IMX7ULP = 0, - IMX_PFDV2_IMX8ULP = 1, +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 clk_pfdv2 { - struct clk_hw hw; - void *reg; - u8 gate_bit; - u8 vld_bit; - u8 frac_off; +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 mtk_clk_gate { - struct clk_hw hw; - struct regmap *regmap; - int set_ofs; - int clr_ofs; - int sta_ofs; - u8 bit; +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; }; -enum { - A370_CPU_TO_NBCLK = 0, - A370_CPU_TO_HCLK = 1, - A370_CPU_TO_DRAMCLK = 2, +struct ftrace_mod_func { + struct list_head list; + char *name; + unsigned long ip; + unsigned int size; }; -struct hfpll_data; +struct ftrace_init_func { + struct list_head list; + unsigned long ip; +}; -struct clk_hfpll { - const struct hfpll_data *d; - int init_done; - struct clk_regmap clkr; - spinlock_t lock; +struct ftrace_mod_load { + struct list_head list; + char *func; + char *module; + int enable; }; -struct hfpll_data { - u32 mode_reg; - u32 l_reg; - u32 m_reg; - u32 n_reg; - u32 user_reg; - u32 droop_reg; - u32 config_reg; - u32 status_reg; - u8 lock_bit; - u32 droop_val; - u32 config_val; - u32 user_val; - u32 user_vco_mask; - unsigned long low_vco_max_rate; - unsigned long min_rate; - unsigned long max_rate; +struct trace_parser { + bool cont; + char *buffer; + unsigned int idx; + unsigned int size; }; -struct samsung_pll_clock; +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; + long: 32; +}; -struct samsung_mux_clock; +struct ftrace_glob { + char *search; + unsigned int len; + int type; +}; -struct samsung_div_clock; +struct ftrace_graph_data { + struct ftrace_hash *hash; + struct ftrace_func_entry *entry; + int idx; + enum graph_filter_type type; + struct ftrace_hash *new_hash; + const struct seq_operations *seq_ops; + struct trace_parser parser; +}; -struct samsung_gate_clock; +typedef int (*ftrace_mapper_func)(void *); -struct samsung_fixed_rate_clock; +struct kallsyms_data { + unsigned long *addrs; + const char **syms; + size_t cnt; + size_t found; +}; -struct samsung_fixed_factor_clock; +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 samsung_clk_reg_dump; +struct bpf_preload_info; -struct samsung_cmu_info { - const struct samsung_pll_clock *pll_clks; - unsigned int nr_pll_clks; - const struct samsung_mux_clock *mux_clks; - unsigned int nr_mux_clks; - const struct samsung_div_clock *div_clks; - unsigned int nr_div_clks; - const struct samsung_gate_clock *gate_clks; - unsigned int nr_gate_clks; - const struct samsung_fixed_rate_clock *fixed_clks; - unsigned int nr_fixed_clks; - const struct samsung_fixed_factor_clock *fixed_factor_clks; - unsigned int nr_fixed_factor_clks; - unsigned int nr_clk_ids; - const struct samsung_cpu_clock *cpu_clks; - unsigned int nr_cpu_clks; - const unsigned long *clk_regs; - unsigned int nr_clk_regs; - const struct samsung_clk_reg_dump *suspend_regs; - unsigned int nr_suspend_regs; - const char *clk_name; +struct bpf_preload_ops { + int (*preload)(struct bpf_preload_info *); + struct module *owner; }; -enum samsung_pll_type { - pll_2126 = 0, - pll_3000 = 1, - pll_35xx = 2, - pll_36xx = 3, - pll_2550 = 4, - pll_2650 = 5, - pll_4500 = 6, - pll_4502 = 7, - pll_4508 = 8, - pll_4600 = 9, - pll_4650 = 10, - pll_4650c = 11, - pll_6552 = 12, - pll_6552_s3c2416 = 13, - pll_6553 = 14, - pll_2550x = 15, - pll_2550xx = 16, - pll_2650x = 17, - pll_2650xx = 18, - pll_1417x = 19, - pll_1450x = 20, - pll_1451x = 21, - pll_1452x = 22, - pll_1460x = 23, - pll_0818x = 24, - pll_0822x = 25, - pll_0831x = 26, - pll_142xx = 27, +struct bpf_preload_info { + char link_name[16]; + struct bpf_link *link; }; -struct samsung_pll_rate_table; - -struct samsung_pll_clock { - unsigned int id; +struct tree_descr { const char *name; - const char *parent_name; - unsigned long flags; - int con_offset; - int lock_offset; - enum samsung_pll_type type; - const struct samsung_pll_rate_table *rate_table; + const struct file_operations *ops; + int mode; }; -struct samsung_pll_rate_table { - unsigned int rate; - unsigned int pdiv; - unsigned int mdiv; - unsigned int sdiv; - unsigned int kdiv; - unsigned int afc; - unsigned int mfr; - unsigned int mrr; - unsigned int vsel; +enum bpf_type { + BPF_TYPE_UNSPEC = 0, + BPF_TYPE_PROG = 1, + BPF_TYPE_MAP = 2, + BPF_TYPE_LINK = 3, }; -struct samsung_mux_clock { - unsigned int id; - const char *name; - const char * const *parent_names; - u8 num_parents; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u8 mux_flags; +enum { + OPT_MODE = 0, }; -struct samsung_div_clock { - unsigned int id; - const char *name; - const char *parent_name; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u8 div_flags; - struct clk_div_table *table; +struct map_iter { + void *key; + bool done; }; -struct samsung_gate_clock { - unsigned int id; - const char *name; - const char *parent_name; - unsigned long flags; - unsigned long offset; - u8 bit_idx; - u8 gate_flags; +struct bpf_mount_opts { + umode_t mode; }; -struct samsung_fixed_rate_clock { - unsigned int id; - char *name; - const char *parent_name; - unsigned long flags; - unsigned long fixed_rate; +struct cgroup_iter_priv { + struct cgroup_subsys_state *start_css; + bool visited_all; + bool terminate; + int order; }; -struct samsung_fixed_factor_clock { - unsigned int id; - char *name; - const char *parent_name; - unsigned long mult; - unsigned long div; - unsigned long flags; +struct bpf_iter__cgroup { + union { + struct bpf_iter_meta *meta; + }; + union { + struct cgroup *cgroup; + }; }; -struct samsung_clk_reg_dump { - u32 offset; - u32 value; +struct bpf_iter_css { + __u64 __opaque[3]; }; -struct ccu_nkmp { - u32 enable; - u32 lock; - struct ccu_mult_internal n; - struct ccu_mult_internal k; - struct ccu_div_internal m; - struct ccu_div_internal p; - unsigned int fixed_post_div; - unsigned int max_rate; - struct ccu_common common; +struct bpf_iter_css_kern { + struct cgroup_subsys_state *start; + struct cgroup_subsys_state *pos; + unsigned int flags; + long: 32; }; -struct omap_clkctrl_reg_data; +struct callchain_cpus_entries { + struct callback_head callback_head; + struct perf_callchain_entry *cpu_entries[0]; +}; -struct omap_clkctrl_data { - u32 addr; - const struct omap_clkctrl_reg_data *regs; +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 omap_clkctrl_bit_data; +struct perf_event_mmap_page; -struct omap_clkctrl_reg_data { - u16 offset; - const struct omap_clkctrl_bit_data *bit_data; - u16 flags; - const char *parent; - const char *clkdm_name; +struct perf_buffer { + refcount_t refcount; + struct callback_head callback_head; + struct work_struct work; + int page_order; + 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 omap_clkctrl_bit_data { - u8 bit; - u8 type; - const char * const *parents; - const void *data; +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; }; -enum { - TI_CLK_FIXED = 0, - TI_CLK_MUX = 1, - TI_CLK_DIVIDER = 2, - TI_CLK_COMPOSITE = 3, - TI_CLK_FIXED_FACTOR = 4, - TI_CLK_GATE = 5, - TI_CLK_DPLL = 6, +struct perf_callchain_entry_ctx { + struct perf_callchain_entry *entry; + u32 max_stack; + u32 nr; + short contexts; + bool contexts_maxed; }; -struct omap_clkctrl_clk { - struct clk_hw *clk; - u16 reg_offset; - int bit_offset; - struct list_head node; -}; +typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *); -struct ti_clk_features { - u32 flags; - long fint_min; - long fint_max; - long fint_band1_max; - long fint_band2_min; - u8 dpll_bypass_vals; - u8 cm_idlest_val; -}; +typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *); -struct clk_omap_divider { - struct clk_hw hw; - struct clk_omap_reg reg; - u8 shift; - u8 flags; - s8 latch; - u16 min; - u16 max; - u16 mask; - const struct clk_div_table *table; - u32 context; +struct lru_rotate { + local_lock_t lock; + struct folio_batch fbatch; }; -union omap4_timeout { - u32 cycles; - ktime_t start; +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 omap_clkctrl_provider { - void *base; - struct list_head clocks; - char *clkdm_name; +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 omap_clkctrl_div_data { - const int *dividers; - int max_div; - u32 flags; +struct trace_event_raw_mm_lru_activate { + struct trace_entry ent; + struct folio *folio; + unsigned long pfn; + char __data[0]; }; -struct clk_omap_mux { - struct clk_hw hw; - struct clk_omap_reg reg; - u32 *table; - u32 mask; - u8 shift; - s8 latch; - u8 flags; - u8 saved_parent; -}; +typedef void (*move_fn_t)(struct lruvec *, struct folio *); -enum edma_version { - v1 = 0, - v2 = 1, - v3 = 2, -}; +struct trace_event_data_offsets_mm_lru_insertion {}; -struct fsl_edma_engine; +struct trace_event_data_offsets_mm_lru_activate {}; -struct fsl_edma_drvdata { - enum edma_version version; - u32 dmamuxs; - bool has_dmaclk; - bool mux_swap; - int (*setup_irq)(struct platform_device *, struct fsl_edma_engine *); +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 fsl_edma_hw_tcd; +struct page_vma_mapped_walk { + unsigned long pfn; + unsigned long nr_pages; + unsigned long pgoff; + struct vm_area_struct *vma; + unsigned long address; + pmd_t *pmd; + pte_t *pte; + spinlock_t *ptl; + unsigned int flags; +}; -struct edma_regs { - void *cr; - void *es; - void *erqh; - void *erql; - void *eeih; - void *eeil; - void *seei; - void *ceei; - void *serq; - void *cerq; - void *cint; - void *cerr; - void *ssrt; - void *cdne; - void *inth; - void *intl; - void *errh; - void *errl; - struct fsl_edma_hw_tcd *tcd; +struct xattr_name { + char name[256]; }; -enum fsl_edma_pm_state { - RUNNING = 0, - SUSPENDED = 1, +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 fsl_edma_desc; +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, +}; -struct fsl_edma_chan { - struct virt_dma_chan vchan; - enum dma_status status; - enum fsl_edma_pm_state pm_state; - bool idle; - u32 slave_id; - struct fsl_edma_engine *edma; - struct fsl_edma_desc *edesc; - struct dma_slave_config cfg; - u32 attr; - bool is_sw; - struct dma_pool *tcd_pool; - dma_addr_t dma_dev_addr; - u32 dma_dev_size; - enum dma_data_direction dma_dir; - char chan_name[16]; +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; }; -struct fsl_edma_engine { - struct dma_device dma_dev; - void *membase; - void *muxbase[2]; - struct clk *muxclk[2]; - struct clk *dmaclk; - struct mutex fsl_edma_mutex; - const struct fsl_edma_drvdata *drvdata; - u32 n_chans; - int txirq; - int errirq; - bool big_endian; - struct edma_regs regs; - struct fsl_edma_chan chans[0]; +struct memelfnote { + const char *name; + int type; + unsigned int datasz; + void *data; }; -struct fsl_edma_hw_tcd { - __le32 saddr; - __le16 soff; - __le16 attr; - __le32 nbytes; - __le32 slast; - __le32 daddr; - __le16 doff; - __le16 citer; - __le32 dlast_sga; - __le16 csr; - __le16 biter; +struct elf_thread_core_info; + +struct elf_note_info { + struct elf_thread_core_info *thread; + struct memelfnote psinfo; + struct memelfnote signote; + struct memelfnote auxv; + struct memelfnote files; + siginfo_t csigdata; + size_t size; + int thread_notes; }; -struct fsl_edma_sw_tcd { - dma_addr_t ptcd; - struct fsl_edma_hw_tcd *vtcd; +struct elf_siginfo { + int si_signo; + int si_code; + int si_errno; }; -struct fsl_edma_desc { - struct virt_dma_desc vdesc; - struct fsl_edma_chan *echan; - bool iscyclic; - enum dma_transfer_direction dirn; - unsigned int n_tcds; - struct fsl_edma_sw_tcd tcd[0]; +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; }; -struct mediatek_regulator_coupler { - struct regulator_coupler coupler; - struct regulator_dev *vsram_rdev; +typedef unsigned long elf_greg_t; + +typedef elf_greg_t elf_gregset_t[18]; + +struct elf_prstatus { + struct elf_prstatus_common common; + elf_gregset_t pr_reg; + int pr_fpvalid; }; -struct cpcap_regulator { - struct regulator_desc rdesc; - const u16 assign_reg; - const u16 assign_mask; +struct elf_thread_core_info { + struct elf_thread_core_info *next; + struct task_struct *task; + struct elf_prstatus prstatus; + struct memelfnote notes[0]; }; -enum cpcap_regulator_id { - CPCAP_SW1 = 0, - CPCAP_SW2 = 1, - CPCAP_SW3 = 2, - CPCAP_SW4 = 3, - CPCAP_SW5 = 4, - CPCAP_SW6 = 5, - CPCAP_VCAM = 6, - CPCAP_VCSI = 7, - CPCAP_VDAC = 8, - CPCAP_VDIG = 9, - CPCAP_VFUSE = 10, - CPCAP_VHVIO = 11, - CPCAP_VSDIO = 12, - CPCAP_VPLL = 13, - CPCAP_VRF1 = 14, - CPCAP_VRF2 = 15, - CPCAP_VRFREF = 16, - CPCAP_VWLAN1 = 17, - CPCAP_VWLAN2 = 18, - CPCAP_VSIM = 19, - CPCAP_VSIMCARD = 20, - CPCAP_VVIB = 21, - CPCAP_VUSB = 22, - CPCAP_VAUDIO = 23, - CPCAP_NR_REGULATORS = 24, +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 cpcap_ddata { - struct regmap *reg; - struct device *dev; - const struct cpcap_regulator *soc; +struct user_regset; + +struct user_regset_view { + const char *name; + const struct user_regset *regsets; + unsigned int n; + u32 e_flags; + u16 e_machine; + u8 ei_osabi; }; -struct stpmic1_regulator_cfg { - struct regulator_desc desc; - u8 mask_reset_reg; - u8 mask_reset_mask; - u8 icc_reg; - u8 icc_mask; +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; }; -enum regulator_detection_severity { - REGULATOR_SEVERITY_PROT = 0, - REGULATOR_SEVERITY_ERR = 1, - REGULATOR_SEVERITY_WARN = 2, +struct membuf { + void *p; + size_t left; }; -struct stpmic1 { - struct device *dev; - struct regmap *regmap; - int irq; - struct regmap_irq_chip_data *irq_data; +struct arch_elf_state {}; + +struct iomap_ops { + int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap *, struct iomap *); + int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap *); }; -struct serial8250_em_priv { - int line; +struct squashfs_page_actor { + union { + void **buffer; + struct page **page; + }; + void *pageaddr; + void *tmp_buffer; + void * (*squashfs_first_page)(struct squashfs_page_actor *); + void * (*squashfs_next_page)(struct squashfs_page_actor *); + void (*squashfs_finish_page)(struct squashfs_page_actor *); + struct page *last_page; + int pages; + int length; + int next_page; + int alloc_buffer; + int returned_pages; + unsigned long next_index; }; -struct drm_debugfs_info { - const char *name; - int (*show)(struct seq_file *, void *); - u32 driver_features; - void *data; +struct squashfs_inode_info { + u64 start; + int offset; + long: 32; + u64 xattr; + unsigned int xattr_size; + int xattr_count; + union { + struct { + u64 fragment_block; + int fragment_size; + int fragment_offset; + u64 block_list_start; + }; + struct { + u64 dir_idx_start; + int dir_idx_offset; + int dir_idx_cnt; + int parent; + long: 32; + }; + }; + struct inode vfs_inode; }; -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 squashfs_dir_index { + __le32 index; + __le32 start_block; + __le32 size; + unsigned char name[0]; }; -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]; - long: 32; +struct squashfs_dir_header { + __le32 count; + __le32 start_block; + __le32 inode_number; }; -struct drm_mode_rect { - __s32 x1; - __s32 y1; - __s32 x2; - __s32 y2; +struct squashfs_dir_entry { + __le16 offset; + __le16 inode_number; + __le16 type; + __le16 size; + char name[0]; }; -struct drm_debugfs_entry { - struct drm_device *dev; - struct drm_debugfs_info file; - struct list_head list; +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 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 file_time_flags { + S_ATIME = 1, + S_MTIME = 2, + S_CTIME = 4, + S_VERSION = 8, }; -enum hdmi_metadata_type { - HDMI_STATIC_METADATA_TYPE1 = 0, +enum { + DIO_LOCKING = 1, + DIO_SKIP_HOLES = 2, }; -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; +enum { + Opt_check_n = 0, + Opt_check_r = 1, + Opt_check_s = 2, + Opt_uid___2 = 3, + Opt_gid___3 = 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___2 = 41, + Opt_dos1xfloppy = 42, }; -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 msdos_inode_info { + spinlock_t cache_lru_lock; + struct list_head cache_lru; + int nr_caches; + unsigned int cache_valid_id; + long: 32; + loff_t mmu_private; + int i_start; + int i_logstart; + int i_attrs; + long: 32; + 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 hdr_output_metadata { - __u32 metadata_type; +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 hdr_metadata_infoframe hdmi_metadata_type1; + struct { + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat16; + struct { + __le32 length; + __le16 flags; + __u8 version[2]; + __le32 root_cluster; + __le16 info_sector; + __le16 backup_boot; + __le16 reserved2[6]; + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat32; }; }; -struct dev_pin_info { - struct pinctrl *p; - struct pinctrl_state *default_state; - struct pinctrl_state *init_state; - struct pinctrl_state *sleep_state; - struct pinctrl_state *idle_state; +struct fat_boot_fsinfo { + __le32 signature1; + __le32 reserved1[120]; + __le32 signature2; + __le32 free_clusters; + __le32 next_cluster; + __le32 reserved2[4]; }; -struct device_attach_data { - struct device *dev; - bool check_async; - bool want_async; - bool have_async; +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; }; -enum pce_status { - PCE_STATUS_NONE = 0, - PCE_STATUS_ACQUIRED = 1, - PCE_STATUS_PREPARED = 2, - PCE_STATUS_ENABLED = 3, - PCE_STATUS_ERROR = 4, +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 pm_clock_entry { - struct list_head node; - char *con_id; - struct clk *clk; - enum pce_status status; - bool enabled_when_prepared; -}; +struct fatent_operations; -struct als_data { - struct mutex mutex; +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; }; -struct spmi_device; +struct fat_entry; -struct spmi_driver { - struct device_driver driver; - int (*probe)(struct spmi_device *); - void (*remove)(struct spmi_device *); - void (*shutdown)(struct spmi_device *); +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 *); }; -struct spmi_controller; - -struct spmi_device { - struct device dev; - struct spmi_controller *ctrl; - u8 usid; +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; }; -struct spmi_controller { - struct device dev; - unsigned int nr; - int (*cmd)(struct spmi_controller *, u8, u8); - int (*read_cmd)(struct spmi_controller *, u8, u8, u16, u8 *, size_t); - int (*write_cmd)(struct spmi_controller *, u8, u8, u16, const u8 *, size_t); +enum stripetype4 { + STRIPE_SPARSE = 1, + STRIPE_DENSE = 2, }; -struct qcom_spmi_pmic { - unsigned int type; - unsigned int subtype; - unsigned int major; - unsigned int minor; - unsigned int rev2; - unsigned int fab_id; - const char *name; +struct nfs4_pnfs_ds_addr { + struct __kernel_sockaddr_storage da_addr; + size_t da_addrlen; + struct list_head da_node; + char *da_remotestr; + const char *da_netid; + int da_transport; }; -struct qcom_spmi_dev { - int num_usids; - struct qcom_spmi_pmic pmic; +struct nfs4_file_layout_dsaddr; + +struct nfs4_filelayout_segment { + struct pnfs_layout_segment generic_hdr; + u32 stripe_type; + u32 commit_through_mds; + u32 stripe_unit; + u32 first_stripe_index; + u64 pattern_offset; + struct nfs4_deviceid deviceid; + struct nfs4_file_layout_dsaddr *dsaddr; + unsigned int num_fh; + struct nfs_fh **fh_array; + long: 32; }; -struct bgpio_pdata { - const char *label; - int base; - int ngpio; +struct nfs4_pnfs_ds; + +struct nfs4_file_layout_dsaddr { + struct nfs4_deviceid_node id_node; + u32 stripe_count; + u8 *stripe_indices; + u32 ds_num; + struct nfs4_pnfs_ds *ds_list[0]; }; -enum sata_rcar_type { - RCAR_GEN1_SATA = 0, - RCAR_GEN2_SATA = 1, - RCAR_GEN3_SATA = 2, - RCAR_R8A7790_ES1_SATA = 3, +struct nfs4_pnfs_ds { + struct list_head ds_node; + char *ds_remotestr; + struct list_head ds_addrs; + struct nfs_client *ds_clp; + refcount_t ds_count; + unsigned long ds_state; }; -struct sata_rcar_priv { - void *base; - u32 sataint_mask; - enum sata_rcar_type type; +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; }; -enum { - UBI_READONLY = 1, - UBI_READWRITE = 2, - UBI_EXCLUSIVE = 3, - UBI_METAONLY = 4, +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; + long: 32; + 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; }; -enum { - UBI_VOLUME_ADDED = 0, - UBI_VOLUME_REMOVED = 1, - UBI_VOLUME_RESIZED = 2, - UBI_VOLUME_RENAMED = 3, - UBI_VOLUME_UPDATED = 4, +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; }; enum { - UBI_DYNAMIC_VOLUME = 3, - UBI_STATIC_VOLUME = 4, + TRACEFS_EVENT_INODE = 2, + TRACEFS_EVENT_TOP_INODE = 4, }; enum { - UBI_VOL_PROP_DIRECT_WRITE = 1, + EVENTFS_SAVE_MODE = 65536, + EVENTFS_SAVE_UID = 131072, + EVENTFS_SAVE_GID = 262144, }; -enum { - UBI_VOL_SKIP_CRC_CHECK_FLG = 1, +struct eventfs_attr { + int mode; + kuid_t uid; + kgid_t gid; }; -struct ubi_rename_entry { - int new_name_len; - char new_name[128]; - int remove; - struct ubi_volume_desc *desc; +struct eventfs_entry; + +struct eventfs_inode { struct list_head list; + const struct eventfs_entry *entries; + const char *name; + struct list_head children; + struct dentry *dentry; + struct dentry *d_parent; + struct dentry **d_children; + struct eventfs_attr *entry_attrs; + struct eventfs_attr attr; + void *data; + union { + struct llist_node llist; + struct callback_head rcu; + }; + unsigned int is_freed: 1; + unsigned int is_events: 1; + unsigned int nr_entries: 30; }; -struct ubi_volume; +typedef int (*eventfs_callback)(const char *, umode_t *, void **, const struct file_operations **); -struct ubi_volume_desc { - struct ubi_volume *vol; - int mode; +struct eventfs_entry { + const char *name; + eventfs_callback callback; }; -struct ubi_device; +struct tracefs_inode { + unsigned long flags; + void *private; + struct inode vfs_inode; +}; -struct ubi_eba_table; +struct dentry_list { + void *cursor; + struct dentry **dentries; +}; -struct ubi_volume { - struct device dev; - struct cdev cdev; - struct ubi_device *ubi; - int vol_id; - int ref_count; - int readers; - int writers; - int exclusive; - int metaonly; - int reserved_pebs; - int vol_type; - int usable_leb_size; - int used_ebs; - int last_eb_bytes; - long: 32; - long long used_bytes; - int alignment; - int data_pad; - int name_len; - char name[128]; - int upd_ebs; - int ch_lnum; - long: 32; - long long upd_bytes; - long long upd_received; - void *upd_buf; - struct ubi_eba_table *eba_tbl; - unsigned int skip_check: 1; - unsigned int checked: 1; - unsigned int corrupted: 1; - unsigned int upd_marker: 1; - unsigned int updating: 1; - unsigned int changing_leb: 1; - unsigned int direct_writes: 1; +struct user_key_payload { + struct callback_head rcu; + unsigned short datalen; long: 32; + char data[0]; }; -struct ubi_fm_pool { - int pebs[256]; - int used; - int size; - int max_size; +enum { + SKCIPHER_WALK_PHYS = 1, + SKCIPHER_WALK_SLOW = 2, + SKCIPHER_WALK_COPY = 4, + SKCIPHER_WALK_DIFF = 8, + SKCIPHER_WALK_SLEEP = 16, }; -struct ubi_debug_info { - unsigned int chk_gen: 1; - unsigned int chk_io: 1; - unsigned int chk_fastmap: 1; - unsigned int disable_bgt: 1; - unsigned int emulate_bitflips: 1; - unsigned int emulate_io_failures: 1; - unsigned int emulate_power_cut: 2; - unsigned int power_cut_counter; - unsigned int power_cut_min; - unsigned int power_cut_max; - char dfs_dir_name[7]; - struct dentry *dfs_dir; - struct dentry *dfs_chk_gen; - struct dentry *dfs_chk_io; - struct dentry *dfs_chk_fastmap; - struct dentry *dfs_disable_bgt; - struct dentry *dfs_emulate_bitflips; - struct dentry *dfs_emulate_io_failures; - struct dentry *dfs_emulate_power_cut; - struct dentry *dfs_power_cut_min; - struct dentry *dfs_power_cut_max; +struct scatter_walk { + struct scatterlist *sg; + unsigned int offset; }; -struct ubi_vtbl_record; +struct skcipher_walk_buffer { + struct list_head entry; + struct scatter_walk dst; + unsigned int len; + u8 *data; + u8 buffer[0]; +}; -struct ubi_fastmap_layout; +struct skcipher_alg_common { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct crypto_alg base; +}; -struct ubi_wl_entry; +struct aead_request; -struct ubi_device { - struct cdev cdev; +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; + long: 32; + long: 32; long: 32; - struct device dev; - int ubi_num; - char ubi_name[9]; - int vol_count; - struct ubi_volume *volumes[129]; - spinlock_t volumes_lock; - int ref_count; - int image_seq; - int rsvd_pebs; - int avail_pebs; - int beb_rsvd_pebs; - int beb_rsvd_level; - int bad_peb_limit; - int autoresize_vol_id; - int vtbl_slots; - int vtbl_size; - struct ubi_vtbl_record *vtbl; - struct mutex device_mutex; - int max_ec; - int mean_ec; long: 32; - unsigned long long global_sqnum; - spinlock_t ltree_lock; - struct rb_root ltree; - struct mutex alc_mutex; - int fm_disabled; - struct ubi_fastmap_layout *fm; - struct ubi_fm_pool fm_pool; - struct ubi_fm_pool fm_wl_pool; - struct rw_semaphore fm_eba_sem; - struct rw_semaphore fm_protect; - void *fm_buf; - size_t fm_size; - struct work_struct fm_work; - int fm_work_scheduled; - int fast_attach; - struct ubi_wl_entry *fm_anchor; - int fm_do_produce_anchor; - struct rb_root used; - struct rb_root erroneous; - struct rb_root free; - int free_count; - struct rb_root scrub; - struct list_head pq[10]; - int pq_head; - spinlock_t wl_lock; - struct mutex move_mutex; - struct rw_semaphore work_sem; - int wl_scheduled; - struct ubi_wl_entry **lookuptbl; - struct ubi_wl_entry *move_from; - struct ubi_wl_entry *move_to; - int move_to_put; - struct list_head works; - int works_count; - struct task_struct *bgt_thread; - int thread_enabled; - char bgt_name[13]; long: 32; - long long flash_size; - int peb_count; - int peb_size; - int bad_peb_count; - int good_peb_count; - int corr_peb_count; - int erroneous_peb_count; - int max_erroneous; - int min_io_size; - int hdrs_min_io_size; - int ro_mode; - int leb_size; - int leb_start; - int ec_hdr_alsize; - int vid_hdr_alsize; - int vid_hdr_offset; - int vid_hdr_aloffset; - int vid_hdr_shift; - unsigned int bad_allowed: 1; - unsigned int nor_flash: 1; - int max_write_size; - struct mtd_info *mtd; - void *peb_buf; - struct mutex buf_mutex; - struct mutex ckvol_mutex; - struct ubi_debug_info dbg; long: 32; + long: 32; + struct crypto_alg base; }; -struct ubi_vtbl_record { - __be32 reserved_pebs; - __be32 alignment; - __be32 data_pad; - __u8 vol_type; - __u8 upd_marker; - __be16 name_len; - __u8 name[128]; - __u8 flags; - __u8 padding[23]; - __be32 crc; +struct aead_request { + struct crypto_async_request base; + unsigned int assoclen; + unsigned int cryptlen; + u8 *iv; + struct scatterlist *src; + struct scatterlist *dst; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + void *__ctx[0]; }; -struct ubi_fastmap_layout { - struct ubi_wl_entry *e[32]; - int to_be_tortured[32]; - int used_blocks; - int max_pool_size; - int max_wl_pool_size; -}; +struct skcipher_request; -struct ubi_wl_entry { +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 walksize; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; union { - struct rb_node rb; - struct list_head list; - } u; - int ec; - int pnum; + struct { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct crypto_alg base; + }; + struct skcipher_alg_common co; + }; }; -struct ubi_leb_change_req { - __s32 lnum; - __s32 bytes; - __s8 dtype; - __s8 padding[7]; +struct skcipher_request { + unsigned int cryptlen; + u8 *iv; + struct scatterlist *src; + struct scatterlist *dst; + struct crypto_async_request base; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + void *__ctx[0]; }; -struct ubi_rsvol_req { - __s64 bytes; - __s32 vol_id; +struct skcipher_instance { + void (*free)(struct skcipher_instance *); + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + union { + struct { + char head[128]; + struct crypto_instance base; + } s; + struct skcipher_alg alg; + }; }; -struct ubi_mkvol_req { - __s32 vol_id; - __s32 alignment; - __s64 bytes; - __s8 vol_type; - __u8 flags; - __s16 name_len; - __s8 padding2[4]; - char name[128]; +struct crypto_cipher { + struct crypto_tfm base; }; -struct ubi_map_req { - __s32 lnum; - __s8 dtype; - __s8 padding[3]; +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 ubi_set_vol_prop_req { - __u8 property; - __u8 padding[7]; - __u64 value; +struct crypto_lskcipher { + struct crypto_tfm base; }; -struct ubi_rnvol_req { - __s32 count; - __s8 padding1[12]; - struct { - __s32 vol_id; - __s16 name_len; - __s8 padding2[2]; - char name[128]; - } ents[32]; +struct crypto_istat_cipher { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t err_cnt; }; -struct ubi_attach_req { - __s32 ubi_num; - __s32 mtd_num; - __s32 vid_hdr_offset; - __s16 max_beb_per1024; - __s8 disable_fm; - __s8 padding[9]; +struct crypto_cipher_spawn { + struct crypto_spawn base; }; -struct phy_setting { - u32 speed; - u8 duplex; - u8 bit; +struct skcipher_ctx_simple { + struct crypto_cipher *cipher; }; -enum can_state { - CAN_STATE_ERROR_ACTIVE = 0, - CAN_STATE_ERROR_WARNING = 1, - CAN_STATE_ERROR_PASSIVE = 2, - CAN_STATE_BUS_OFF = 3, - CAN_STATE_STOPPED = 4, - CAN_STATE_SLEEPING = 5, - CAN_STATE_MAX = 6, +struct crypto_skcipher_spawn { + struct crypto_spawn base; }; -enum can_mode { - CAN_MODE_STOP = 0, - CAN_MODE_START = 1, - CAN_MODE_SLEEP = 2, +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 can_bittiming { - __u32 bitrate; - __u32 sample_point; - __u32 tq; - __u32 prop_seg; - __u32 phase_seg1; - __u32 phase_seg2; - __u32 sjw; - __u32 brp; +struct bdev_inode { + struct block_device bdev; + struct inode vfs_inode; }; -struct can_bittiming_const { - char name[16]; - __u32 tseg1_min; - __u32 tseg1_max; - __u32 tseg2_min; - __u32 tseg2_max; - __u32 sjw_max; - __u32 brp_min; - __u32 brp_max; - __u32 brp_inc; +struct klist_iter { + struct klist *i_klist; + struct klist_node *i_cur; }; -struct can_device_stats { - __u32 bus_error; - __u32 error_warning; - __u32 error_passive; - __u32 bus_off; - __u32 arbitration_lost; - __u32 restarts; -}; +struct subsys_private; -struct can_tdc { - u32 tdcv; - u32 tdco; - u32 tdcf; +struct class_dev_iter { + struct klist_iter ki; + const struct device_type *type; + struct subsys_private *sp; }; -struct can_clock { - __u32 freq; +struct uuidcmp { + const char *uuid; + int len; }; -struct can_tdc_const; - -struct can_berr_counter; - -struct can_priv { - struct net_device *dev; - struct can_device_stats can_stats; - const struct can_bittiming_const *bittiming_const; - const struct can_bittiming_const *data_bittiming_const; - struct can_bittiming bittiming; - struct can_bittiming data_bittiming; - const struct can_tdc_const *tdc_const; - struct can_tdc tdc; - unsigned int bitrate_const_cnt; - const u32 *bitrate_const; - const u32 *data_bitrate_const; - unsigned int data_bitrate_const_cnt; - u32 bitrate_max; - struct can_clock clock; - unsigned int termination_const_cnt; - const u16 *termination_const; - u16 termination; - struct gpio_desc *termination_gpio; - u16 termination_gpio_ohms[2]; - unsigned int echo_skb_max; - struct sk_buff **echo_skb; - enum can_state state; - u32 ctrlmode; - u32 ctrlmode_supported; - int restart_ms; - struct delayed_work restart_work; - int (*do_set_bittiming)(struct net_device *); - int (*do_set_data_bittiming)(struct net_device *); - int (*do_set_mode)(struct net_device *, enum can_mode); - int (*do_set_termination)(struct net_device *, u16); - int (*do_get_state)(const struct net_device *, enum can_state *); - int (*do_get_berr_counter)(const struct net_device *, struct can_berr_counter *); - int (*do_get_auto_tdcv)(const struct net_device *, u32 *); +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_APOLL_MULTISHOT_BIT = 26, + REQ_F_CLEAR_POLLIN_BIT = 27, + REQ_F_HASH_LOCKED_BIT = 28, + REQ_F_SUPPORT_NOWAIT_BIT = 29, + REQ_F_ISREG_BIT = 30, + REQ_F_POLL_NO_LAZY_BIT = 31, + __REQ_F_LAST_BIT = 32, }; -struct can_tdc_const { - u32 tdcv_min; - u32 tdcv_max; - u32 tdco_min; - u32 tdco_max; - u32 tdcf_min; - u32 tdcf_max; +struct io_uring_file_index_range { + __u32 off; + __u32 len; + __u64 resv; }; -struct can_berr_counter { - __u16 txerr; - __u16 rxerr; +struct strarray { + char **array; + size_t n; }; -struct igb_reg_test { - u16 reg; - u16 reg_offset; - u16 array_len; - u16 test_type; - u32 mask; - u32 write; +struct rza1_irqc_priv { + struct device *dev; + void *base; + struct irq_chip chip; + struct irq_domain *irq_domain; + struct of_phandle_args map[8]; }; -struct igb_stats { - char stat_string[32]; - int sizeof_stat; - int stat_offset; +struct ls_extirq_data { + void *intpcr; + raw_spinlock_t lock; + bool big_endian; + bool is_ls1021a_or_ls1043a; + u32 nirq; + struct irq_fwspec map[12]; }; -enum igb_tx_buf_type { - IGB_TYPE_SKB = 0, - IGB_TYPE_XDP = 1, -}; +typedef int (*regmap_hw_write)(void *, const void *, size_t); -enum e1000_mac_type___2 { - e1000_undefined = 0, - e1000_82575 = 1, - e1000_82576 = 2, - e1000_82580 = 3, - e1000_i350 = 4, - e1000_i354 = 5, - e1000_i210 = 6, - e1000_i211 = 7, - e1000_num_macs = 8, -}; +typedef int (*regmap_hw_gather_write)(void *, const void *, size_t, const void *, size_t); -enum e1000_phy_type___2 { - e1000_phy_unknown___2 = 0, - e1000_phy_none___2 = 1, - e1000_phy_m88___2 = 2, - e1000_phy_igp___2 = 3, - e1000_phy_igp_2___2 = 4, - e1000_phy_gg82563___2 = 5, - e1000_phy_igp_3___2 = 6, - e1000_phy_ife___2 = 7, - e1000_phy_82580 = 8, - e1000_phy_i210 = 9, - e1000_phy_bcm54616 = 10, -}; +struct regmap_async; -enum e1000_nvm_type___2 { - e1000_nvm_unknown___2 = 0, - e1000_nvm_none___2 = 1, - e1000_nvm_eeprom_spi___2 = 2, - e1000_nvm_flash_hw___2 = 3, - e1000_nvm_invm = 4, - e1000_nvm_flash_sw___2 = 5, -}; +typedef int (*regmap_hw_async_write)(void *, const void *, size_t, const void *, size_t, struct regmap_async *); -enum e1000_bus_type { - e1000_bus_type_unknown = 0, - e1000_bus_type_pci = 1, - e1000_bus_type_pcix = 2, - e1000_bus_type_pci_express = 3, - e1000_bus_type_reserved = 4, -}; +typedef int (*regmap_hw_reg_write)(void *, unsigned int, unsigned int); -enum e1000_bus_speed { - e1000_bus_speed_unknown = 0, - e1000_bus_speed_33 = 1, - e1000_bus_speed_66 = 2, - e1000_bus_speed_100 = 3, - e1000_bus_speed_120 = 4, - e1000_bus_speed_133 = 5, - e1000_bus_speed_2500 = 6, - e1000_bus_speed_5000 = 7, - e1000_bus_speed_reserved = 8, +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)(); + +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; }; -enum igb_filter_match_flags { - IGB_FILTER_FLAG_ETHER_TYPE = 1, - IGB_FILTER_FLAG_VLAN_TCI = 2, - IGB_FILTER_FLAG_SRC_MAC_ADDR = 4, - IGB_FILTER_FLAG_DST_MAC_ADDR = 8, +struct sunxi_rsb_addr_map { + u16 hwaddr; + u8 rtaddr; }; -enum e1000_state_t { - __IGB_TESTING = 0, - __IGB_RESETTING = 1, - __IGB_DOWN = 2, - __IGB_PTP_TX_IN_PROGRESS = 3, +struct sunxi_rsb_device; + +struct sunxi_rsb_driver { + struct device_driver driver; + int (*probe)(struct sunxi_rsb_device *); + void (*remove)(struct sunxi_rsb_device *); }; -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, +struct sunxi_rsb; + +struct sunxi_rsb_device { + struct device dev; + struct sunxi_rsb *rsb; + int irq; + u8 rtaddr; + u16 hwaddr; + long: 32; }; -enum igb_diagnostics_results { - TEST_REG = 0, - TEST_EEP = 1, - TEST_IRQ = 2, - TEST_LOOP = 3, - TEST_LINK = 4, +struct sunxi_rsb { + struct device *dev; + void *regs; + struct clk *clk; + struct reset_control *rstc; + struct completion complete; + struct mutex lock; + unsigned int status; + u32 clk_freq; }; -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 sunxi_rsb_ctx { + struct sunxi_rsb_device *rdev; + int size; }; -struct e1000_hw___2; +struct phy_berlin_desc; -struct e1000_mac_operations___2 { - s32 (*check_for_link)(struct e1000_hw___2 *); - s32 (*reset_hw)(struct e1000_hw___2 *); - s32 (*init_hw)(struct e1000_hw___2 *); - bool (*check_mng_mode)(struct e1000_hw___2 *); - s32 (*setup_physical_interface)(struct e1000_hw___2 *); - void (*rar_set)(struct e1000_hw___2 *, u8 *, u32); - s32 (*read_mac_addr)(struct e1000_hw___2 *); - s32 (*get_speed_and_duplex)(struct e1000_hw___2 *, u16 *, u16 *); - s32 (*acquire_swfw_sync)(struct e1000_hw___2 *, u16); - void (*release_swfw_sync)(struct e1000_hw___2 *, u16); - s32 (*get_thermal_sensor_data)(struct e1000_hw___2 *); - s32 (*init_thermal_sensor_thresh)(struct e1000_hw___2 *); - void (*write_vfta)(struct e1000_hw___2 *, u32, u32); +struct phy_berlin_priv { + void *base; + spinlock_t lock; + struct clk *clk; + struct phy_berlin_desc **phys; + unsigned int nphys; + u32 phy_base; }; -struct e1000_thermal_diode_data { - u8 location; - u8 temp; - u8 caution_thresh; - u8 max_op_thresh; +struct phy_berlin_desc { + struct phy *phy; + u32 power_bit; + unsigned int index; }; -struct e1000_thermal_sensor_data { - struct e1000_thermal_diode_data sensor[3]; +struct usb_phy_data { + const char *label; + u8 flags; + u32 mask; + u32 power_on; + u32 power_off; }; -struct e1000_mac_info___2 { - struct e1000_mac_operations___2 ops; - u8 addr[6]; - u8 perm_addr[6]; - enum e1000_mac_type___2 type; - u32 ledctl_default; - u32 ledctl_mode1; - u32 ledctl_mode2; - u32 mc_filter_type; - u32 txcw; - u16 mta_reg_count; - u16 uta_reg_count; - u32 mta_shadow[128]; - u16 rar_entry_count; - u8 forced_speed_duplex; - bool adaptive_ifs; - bool arc_subsystem_valid; - bool asf_firmware_present; - bool autoneg; - bool autoneg_failed; - bool disable_hw_init_bits; - bool get_link_status; - bool ifs_params_forced; - bool in_ifs_mode; - bool report_tx_early; - bool serdes_has_link; - bool tx_pkt_filtering; - struct e1000_thermal_sensor_data thermal_sensor_data; -}; +struct phy_companion; -struct e1000_fc_info___2 { - u32 high_water; - u32 low_water; - u16 pause_time; - bool send_xon; - bool strict_ieee; - enum e1000_fc_mode current_mode; - enum e1000_fc_mode requested_mode; +struct omap_usb { + struct usb_phy phy; + struct phy_companion *comparator; + void *pll_ctrl_base; + void *phy_base; + struct device *dev; + struct device *control_dev; + struct clk *wkupclk; + struct clk *optclk; + u8 flags; + struct regmap *syscon_phy_power; + unsigned int power_reg; + u32 mask; + u32 power_on; + u32 power_off; }; -struct e1000_phy_operations___2 { - s32 (*acquire)(struct e1000_hw___2 *); - s32 (*check_polarity)(struct e1000_hw___2 *); - s32 (*check_reset_block)(struct e1000_hw___2 *); - s32 (*force_speed_duplex)(struct e1000_hw___2 *); - s32 (*get_cfg_done)(struct e1000_hw___2 *); - s32 (*get_cable_length)(struct e1000_hw___2 *); - s32 (*get_phy_info)(struct e1000_hw___2 *); - s32 (*read_reg)(struct e1000_hw___2 *, u32, u16 *); - void (*release)(struct e1000_hw___2 *); - s32 (*reset)(struct e1000_hw___2 *); - s32 (*set_d0_lplu_state)(struct e1000_hw___2 *, bool); - s32 (*set_d3_lplu_state)(struct e1000_hw___2 *, bool); - s32 (*write_reg)(struct e1000_hw___2 *, u32, u16); - s32 (*read_i2c_byte)(struct e1000_hw___2 *, u8, u8, u8 *); - s32 (*write_i2c_byte)(struct e1000_hw___2 *, u8, u8, u8); +struct phy_companion { + int (*set_vbus)(struct phy_companion *, bool); + int (*start_srp)(struct phy_companion *); }; -struct e1000_phy_info___2 { - struct e1000_phy_operations___2 ops; - enum e1000_phy_type___2 type; - enum e1000_1000t_rx_status local_rx; - enum e1000_1000t_rx_status remote_rx; - enum e1000_ms_type ms_type; - enum e1000_ms_type original_ms_type; - enum e1000_rev_polarity cable_polarity; - enum e1000_smart_speed smart_speed; - u32 addr; - u32 id; - u32 reset_delay_us; - u32 revision; - enum e1000_media_type media_type; - u16 autoneg_advertised; - u16 autoneg_mask; - u16 cable_length; - u16 max_cable_length; - u16 min_cable_length; - u16 pair_length[4]; - u8 mdix; - bool disable_polarity_correction; - bool is_mdix; - bool polarity_correction; - bool reset_disable; - bool speed_downgraded; - bool autoneg_wait_to_complete; +struct aspeed_sig_desc { + unsigned int ip; + unsigned int reg; + u32 mask; + u32 enable; + u32 disable; }; -struct e1000_nvm_operations___2 { - s32 (*acquire)(struct e1000_hw___2 *); - s32 (*read)(struct e1000_hw___2 *, u16, u16, u16 *); - void (*release)(struct e1000_hw___2 *); - s32 (*write)(struct e1000_hw___2 *, u16, u16, u16 *); - s32 (*update)(struct e1000_hw___2 *); - s32 (*validate)(struct e1000_hw___2 *); - s32 (*valid_led_default)(struct e1000_hw___2 *, u16 *); -}; +struct aspeed_pinmux_ops; -struct e1000_nvm_info___2 { - struct e1000_nvm_operations___2 ops; - enum e1000_nvm_type___2 type; - enum e1000_nvm_override override; - u32 flash_bank_size; - u32 flash_base_addr; - u16 word_size; - u16 delay_usec; - u16 address_bits; - u16 opcode_bits; - u16 page_size; +struct aspeed_pin_group; + +struct aspeed_pin_function; + +struct aspeed_pinmux_data { + struct device *dev; + struct regmap *maps[3]; + const struct aspeed_pinmux_ops *ops; + const struct aspeed_pin_group *groups; + const unsigned int ngroups; + const struct aspeed_pin_function *functions; + const unsigned int nfunctions; }; -struct e1000_bus_info___2 { - enum e1000_bus_type type; - enum e1000_bus_speed speed; - enum e1000_bus_width width; - u32 snoop; - u16 func; - u16 pci_cmd_word; +struct aspeed_sig_expr; + +struct aspeed_pinmux_ops { + int (*eval)(struct aspeed_pinmux_data *, const struct aspeed_sig_expr *, bool); + int (*set)(struct aspeed_pinmux_data *, const struct aspeed_sig_expr *, bool); }; -struct e1000_mbx_operations { - s32 (*init_params)(struct e1000_hw___2 *); - s32 (*read)(struct e1000_hw___2 *, u32 *, u16, u16, bool); - s32 (*write)(struct e1000_hw___2 *, u32 *, u16, u16); - s32 (*read_posted)(struct e1000_hw___2 *, u32 *, u16, u16); - s32 (*write_posted)(struct e1000_hw___2 *, u32 *, u16, u16); - s32 (*check_for_msg)(struct e1000_hw___2 *, u16); - s32 (*check_for_ack)(struct e1000_hw___2 *, u16); - s32 (*check_for_rst)(struct e1000_hw___2 *, u16); - s32 (*unlock)(struct e1000_hw___2 *, u16); +struct aspeed_sig_expr { + const char *signal; + const char *function; + int ndescs; + const struct aspeed_sig_desc *descs; }; -struct e1000_mbx_stats { - u32 msgs_tx; - u32 msgs_rx; - u32 acks; - u32 reqs; - u32 rsts; +struct aspeed_pin_group { + const char *name; + const unsigned int *pins; + const unsigned int npins; }; -struct e1000_mbx_info { - struct e1000_mbx_operations ops; - struct e1000_mbx_stats stats; - u32 timeout; - u32 usec_delay; - u16 size; +struct aspeed_pin_function { + const char *name; + const char * const *groups; + unsigned int ngroups; }; -struct e1000_sfp_flags { - u8 e1000_base_sx: 1; - u8 e1000_base_lx: 1; - u8 e1000_base_cx: 1; - u8 e1000_base_t: 1; - u8 e100_base_lx: 1; - u8 e100_base_fx: 1; - u8 e10_base_bx10: 1; - u8 e10_base_px: 1; +struct aspeed_pin_desc { + const char *name; + const struct aspeed_sig_expr ***prios; }; -struct e1000_dev_spec_82575 { - bool sgmii_active; - bool global_device_reset; - bool eee_disable; - bool clear_semaphore_once; - struct e1000_sfp_flags eth_flags; - bool module_plugged; - u8 media_port; - bool media_changed; - bool mas_capable; +struct aspeed_pin_config; + +struct aspeed_pin_config_map; + +struct aspeed_pinctrl_data { + struct regmap *scu; + const struct pinctrl_pin_desc *pins; + const unsigned int npins; + const struct aspeed_pin_config *configs; + const unsigned int nconfigs; + struct aspeed_pinmux_data pinmux; + const struct aspeed_pin_config_map *confmaps; + const unsigned int nconfmaps; }; -struct e1000_hw___2 { - void *back; - u8 *hw_addr; - u8 *flash_address; - unsigned long io_base; - struct e1000_mac_info___2 mac; - struct e1000_fc_info___2 fc; - struct e1000_phy_info___2 phy; - struct e1000_nvm_info___2 nvm; - struct e1000_bus_info___2 bus; - struct e1000_mbx_info mbx; - struct e1000_host_mng_dhcp_cookie mng_cookie; - union { - struct e1000_dev_spec_82575 _82575; - } dev_spec; - u16 device_id; - u16 subsystem_vendor_id; - u16 subsystem_device_id; - u16 vendor_id; - u8 revision_id; +struct aspeed_pin_config { + enum pin_config_param param; + unsigned int pins[2]; + unsigned int reg; + u32 mask; }; -struct e1000_hw_stats___2 { - u64 crcerrs; - u64 algnerrc; - u64 symerrs; - u64 rxerrc; - u64 mpc; - u64 scc; - u64 ecol; - u64 mcc; - u64 latecol; - u64 colc; - u64 dc; - u64 tncrs; - u64 sec; - u64 cexterr; - u64 rlec; - u64 xonrxc; - u64 xontxc; - u64 xoffrxc; - u64 xofftxc; - u64 fcruc; - u64 prc64; - u64 prc127; - u64 prc255; - u64 prc511; - u64 prc1023; - u64 prc1522; - u64 gprc; - u64 bprc; - u64 mprc; - u64 gptc; - u64 gorc; - u64 gotc; - u64 rnbc; - u64 ruc; - u64 rfc; - u64 roc; - u64 rjc; - u64 mgprc; - u64 mgpdc; - u64 mgptc; - u64 tor; - u64 tot; - u64 tpr; - u64 tpt; - u64 ptc64; - u64 ptc127; - u64 ptc255; - u64 ptc511; - u64 ptc1023; - u64 ptc1522; - u64 mptc; - u64 bptc; - u64 tsctc; - u64 tsctfc; - u64 iac; - u64 icrxptc; - u64 icrxatc; - u64 ictxptc; - u64 ictxatc; - u64 ictxqec; - u64 ictxqmtc; - u64 icrxdmtc; - u64 icrxoc; - u64 cbtmpc; - u64 htdpmc; - u64 cbrdpc; - u64 cbrmpc; - u64 rpthc; - u64 hgptc; - u64 htcbdpc; - u64 hgorc; - u64 hgotc; - u64 lenerrs; - u64 scvpc; - u64 hrmpc; - u64 doosync; - u64 o2bgptc; - u64 o2bspc; - u64 b2ospc; - u64 b2ogprc; +struct aspeed_pin_config_map { + enum pin_config_param param; + s32 arg; + u32 val; + u32 mask; }; -struct igb_tx_queue_stats { - u64 packets; - u64 bytes; - u64 restart_queue; - u64 restart_queue2; +enum pinmux_type { + pinmux_type_fpmx = 0, + pinmux_type_grp = 1, }; -struct igb_rx_queue_stats { - u64 packets; - u64 bytes; - u64 drops; - u64 csum_err; - u64 alloc_failed; +enum mux_first_reg { + mux_f_mux = 0, + mux_f_gpio = 1, + mux_f_keep = 2, }; -struct igb_q_vector; +enum mux_master_reg { + mux_m_iop = 0, + mux_m_gpio = 1, + mux_m_keep = 2, +}; -struct igb_tx_buffer; +struct sppctl_gpio_chip; -struct igb_rx_buffer; +struct grp2fp_map; -struct igb_ring { - struct igb_q_vector *q_vector; - struct net_device *netdev; - struct bpf_prog *xdp_prog; - struct device *dev; - union { - struct igb_tx_buffer *tx_buffer_info; - struct igb_rx_buffer *rx_buffer_info; - }; - void *desc; - unsigned long flags; - void *tail; - dma_addr_t dma; - unsigned int size; - u16 count; - u8 queue_index; - u8 reg_idx; - bool launchtime_enable; - bool cbs_enable; - s32 idleslope; - s32 sendslope; - s32 hicredit; - s32 locredit; - u16 next_to_clean; - u16 next_to_use; - u16 next_to_alloc; - union { - struct { - struct igb_tx_queue_stats tx_stats; - struct u64_stats_sync tx_syncp; - struct u64_stats_sync tx_syncp2; - }; - struct { - struct sk_buff *skb; - long: 32; - struct igb_rx_queue_stats rx_stats; - struct u64_stats_sync rx_syncp; - long: 32; - }; - }; - struct xdp_rxq_info xdp_rxq; +struct sppctl_pdata { + void *moon2_base; + void *gpioxt_base; + void *first_base; + void *moon1_base; + struct pinctrl_desc pctl_desc; + struct pinctrl_dev *pctl_dev; + struct pinctrl_gpio_range pctl_grange; + struct sppctl_gpio_chip *spp_gchip; + const char **unq_grps; + size_t unq_grps_sz; + struct grp2fp_map *g2fp_maps; }; -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 sppctl_gpio_chip { + void *gpioxt_base; + void *first_base; + struct gpio_chip chip; + spinlock_t lock; }; -struct e1000_info___2 { - s32 (*get_invariants)(struct e1000_hw___2 *); - struct e1000_mac_operations___2 *mac_ops; - const struct e1000_phy_operations___2 *phy_ops; - struct e1000_nvm_operations___2 *nvm_ops; +struct grp2fp_map { + u16 f_idx; + u16 g_idx; }; -struct vf_mac_filter { - struct list_head l; - int vf; - bool free; - u8 vf_mac[6]; -}; +struct sppctl_grp; -struct vf_data_storage; +struct sppctl_func { + const char * const name; + const enum pinmux_type type; + const u8 roff; + const u8 boff; + const u8 blen; + const struct sppctl_grp * const grps; + const unsigned int gnum; +}; -struct hwmon_buff; +struct sppctl_grp { + const char * const name; + const u8 gval; + const unsigned int * const pins; + const unsigned int pnum; +}; -struct igb_mac_addr; +enum gio_reg_index { + GIO_REG_ODEN = 0, + GIO_REG_DATA = 1, + GIO_REG_IODIR = 2, + GIO_REG_EC = 3, + GIO_REG_EI = 4, + GIO_REG_MASK = 5, + GIO_REG_LEVEL = 6, + GIO_REG_STAT = 7, + NUMBER_OF_GIO_REGISTERS = 8, +}; -struct igb_adapter { - unsigned long active_vlans[128]; - struct net_device *netdev; - struct bpf_prog *xdp_prog; - unsigned long state; - unsigned int flags; - unsigned int num_q_vectors; - struct msix_entry msix_entries[10]; - u32 rx_itr_setting; - u32 tx_itr_setting; - u16 tx_itr; - u16 rx_itr; - u16 tx_work_limit; - u32 tx_timeout_count; - int num_tx_queues; - struct igb_ring *tx_ring[16]; - int num_rx_queues; - struct igb_ring *rx_ring[16]; - u32 max_frame_size; - u32 min_frame_size; - struct timer_list watchdog_timer; - struct timer_list phy_info_timer; - u16 mng_vlan_id; - u32 bd_number; - u32 wol; - u32 en_mng_pt; - u16 link_speed; - u16 link_duplex; - u8 *io_addr; - struct work_struct reset_task; - struct work_struct watchdog_task; - bool fc_autoneg; - u8 tx_timeout_factor; - struct timer_list blink_timer; - unsigned long led_status; - struct pci_dev *pdev; - spinlock_t stats64_lock; - long: 32; - struct rtnl_link_stats64 stats64; - struct e1000_hw___2 hw; - struct e1000_hw_stats___2 stats; - struct e1000_phy_info___2 phy_info; - u32 test_icr; - long: 32; - struct igb_ring test_tx_ring; - struct igb_ring test_rx_ring; - int msg_enable; - struct igb_q_vector *q_vector[8]; - u32 eims_enable_mask; - u32 eims_other; - u16 tx_ring_count; - u16 rx_ring_count; - unsigned int vfs_allocated_count; - struct vf_data_storage *vf_data; - int vf_rate_link_speed; - u32 rss_queues; - u32 wvbr; - u32 *shadow_vfta; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_caps; - struct delayed_work ptp_overflow_work; - struct work_struct ptp_tx_work; - struct sk_buff *ptp_tx_skb; - struct hwtstamp_config tstamp_config; - unsigned long ptp_tx_start; - unsigned long last_rx_ptp_check; - unsigned long last_rx_timestamp; - unsigned int ptp_flags; - spinlock_t tmreg_lock; - long: 32; - struct cyclecounter cc; - struct timecounter tc; - u32 tx_hwtstamp_timeouts; - u32 tx_hwtstamp_skipped; - u32 rx_hwtstamp_cleared; - bool pps_sys_wrap_on; - struct ptp_pin_desc sdp_config[4]; - struct { - struct timespec64 start; - struct timespec64 period; - } perout[2]; - char fw_version[32]; - struct hwmon_buff *igb_hwmon_buff; - bool ets; - struct i2c_algo_bit_data i2c_algo; - struct i2c_adapter i2c_adap; - struct i2c_client *i2c_client; - u32 rss_indir_tbl_init; - u8 rss_indir_tbl[128]; - unsigned long link_check_timeout; - int copper_tries; - struct e1000_info___2 ei; - u16 eee_advert; - struct hlist_head nfc_filter_list; - struct hlist_head cls_flower_list; - unsigned int nfc_filter_count; - spinlock_t nfc_lock; - bool etype_bitmap[3]; - struct igb_mac_addr *mac_table; - struct vf_mac_filter vf_macs; - struct vf_mac_filter *vf_mac_list; - spinlock_t vfs_lock; - long: 32; - long: 32; +struct brcmstb_gpio_priv; + +struct brcmstb_gpio_bank { + struct list_head node; + int id; + struct gpio_chip gc; + struct brcmstb_gpio_priv *parent_priv; + u32 width; + u32 wake_active; + u32 saved_regs[7]; }; -struct igb_ring_container { - struct igb_ring *ring; - unsigned int total_bytes; - unsigned int total_packets; - u16 work_limit; - u8 count; - u8 itr; +struct brcmstb_gpio_priv { + struct list_head bank_list; + void *reg_base; + struct platform_device *pdev; + struct irq_domain *irq_domain; + struct irq_chip irq_chip; + int parent_irq; + int gpio_base; + int num_gpios; + int parent_wake_irq; }; -struct igb_q_vector { - struct igb_adapter *adapter; - int cpu; - u32 eims_value; - u16 itr_val; - u8 set_itr; - void *itr_register; - struct igb_ring_container rx; - struct igb_ring_container tx; - long: 32; - struct napi_struct napi; - struct callback_head rcu; - char name[25]; - long: 32; - struct igb_ring ring[0]; +enum { + TPS6586X_INT_PLDO_0 = 0, + TPS6586X_INT_PLDO_1 = 1, + TPS6586X_INT_PLDO_2 = 2, + TPS6586X_INT_PLDO_3 = 3, + TPS6586X_INT_PLDO_4 = 4, + TPS6586X_INT_PLDO_5 = 5, + TPS6586X_INT_PLDO_6 = 6, + TPS6586X_INT_PLDO_7 = 7, + TPS6586X_INT_COMP_DET = 8, + TPS6586X_INT_ADC = 9, + TPS6586X_INT_PLDO_8 = 10, + TPS6586X_INT_PLDO_9 = 11, + TPS6586X_INT_PSM_0 = 12, + TPS6586X_INT_PSM_1 = 13, + TPS6586X_INT_PSM_2 = 14, + TPS6586X_INT_PSM_3 = 15, + TPS6586X_INT_RTC_ALM1 = 16, + TPS6586X_INT_ACUSB_OVP = 17, + TPS6586X_INT_USB_DET = 18, + TPS6586X_INT_AC_DET = 19, + TPS6586X_INT_BAT_DET = 20, + TPS6586X_INT_CHG_STAT = 21, + TPS6586X_INT_CHG_TEMP = 22, + TPS6586X_INT_PP = 23, + TPS6586X_INT_RESUME = 24, + TPS6586X_INT_LOW_SYS = 25, + TPS6586X_INT_RTC_ALM2 = 26, }; -union e1000_adv_tx_desc; +struct tps6586x_gpio { + struct gpio_chip gpio_chip; + struct device *parent; +}; -struct igb_tx_buffer { - union e1000_adv_tx_desc *next_to_watch; - unsigned long time_stamp; - enum igb_tx_buf_type type; - union { - struct sk_buff *skb; - struct xdp_frame *xdpf; - }; - unsigned int bytecount; - u16 gso_segs; - __be16 protocol; - dma_addr_t dma; - __u32 len; - u32 tx_flags; +struct tps6586x_subdev_info; + +struct tps6586x_platform_data { + int num_subdevs; + struct tps6586x_subdev_info *subdevs; + int gpio_base; + int irq_base; + bool pm_off; + struct regulator_init_data *reg_init_data[15]; }; -union e1000_adv_tx_desc { - struct { - __le64 buffer_addr; - __le32 cmd_type_len; - __le32 olinfo_status; - } read; - struct { - __le64 rsvd; - __le32 nxtseq_seed; - __le32 status; - } wb; +struct tps6586x_subdev_info { + int id; + const char *name; + void *platform_data; + struct device_node *of_node; }; -struct igb_rx_buffer { - dma_addr_t dma; - struct page *page; - __u16 page_offset; - __u16 pagecnt_bias; +struct msi_domain_template { + char name[48]; + struct irq_chip chip; + struct msi_domain_ops ops; + struct msi_domain_info info; }; -struct vf_data_storage { - unsigned char vf_mac_addresses[6]; - u16 vf_mc_hashes[30]; - u16 num_vf_mc_hashes; - u32 flags; - unsigned long last_nack; - u16 pf_vlan; - u16 pf_qos; - u16 tx_rate; - bool spoofchk_enabled; - bool trusted; +enum msi_domain_ids { + MSI_DEFAULT_DOMAIN = 0, + MSI_SECONDARY_DOMAIN = 1, + MSI_MAX_DEVICE_IRQDOMAINS = 2, }; -struct hwmon_attr { - struct device_attribute dev_attr; - struct e1000_hw___2 *hw; - struct e1000_thermal_diode_data *sensor; - char name[12]; +enum support_mode { + ALLOW_LEGACY = 0, + DENY_LEGACY = 1, }; -struct hwmon_buff { - struct attribute_group group; - const struct attribute_group *groups[2]; - struct attribute *attrs[13]; - struct hwmon_attr hwmon_list[12]; - unsigned int n_hwmon; +struct fb_event { + struct fb_info *info; + void *data; }; -struct igb_mac_addr { - u8 addr[6]; - u8 queue; - u8 state; +struct max77686_hw_clk_info { + const char *name; + u32 clk_reg; + u32 clk_enable_mask; + u32 flags; }; -union e1000_adv_rx_desc { - struct { - __le64 pkt_addr; - __le64 hdr_addr; - } read; - struct { - struct { - struct { - __le16 pkt_info; - __le16 hdr_info; - } lo_dword; - union { - __le32 rss; - struct { - __le16 ip_id; - __le16 csum; - } csum_ip; - } hi_dword; - } lower; - struct { - __le32 status_error; - __le16 length; - __le16 vlan; - } upper; - } wb; +enum max77686_chip_name { + CHIP_MAX77686 = 0, + CHIP_MAX77802 = 1, + CHIP_MAX77620 = 2, }; -struct igb_nfc_input { - u8 match_flags; - __be16 etype; - __be16 vlan_tci; - u8 src_addr[6]; - u8 dst_addr[6]; +enum max77802_pmic_reg { + MAX77802_REG_DEVICE_ID = 0, + MAX77802_REG_INTSRC = 1, + MAX77802_REG_INT1 = 2, + MAX77802_REG_INT2 = 3, + MAX77802_REG_INT1MSK = 4, + MAX77802_REG_INT2MSK = 5, + MAX77802_REG_STATUS1 = 6, + MAX77802_REG_STATUS2 = 7, + MAX77802_REG_PWRON = 8, + MAX77802_REG_MRSTB = 10, + MAX77802_REG_EPWRHOLD = 11, + MAX77802_REG_BOOSTCTRL = 14, + MAX77802_REG_BOOSTOUT = 15, + MAX77802_REG_BUCK1CTRL = 16, + MAX77802_REG_BUCK1DVS1 = 17, + MAX77802_REG_BUCK1DVS2 = 18, + MAX77802_REG_BUCK1DVS3 = 19, + MAX77802_REG_BUCK1DVS4 = 20, + MAX77802_REG_BUCK1DVS5 = 21, + MAX77802_REG_BUCK1DVS6 = 22, + MAX77802_REG_BUCK1DVS7 = 23, + MAX77802_REG_BUCK1DVS8 = 24, + MAX77802_REG_BUCK2CTRL1 = 26, + MAX77802_REG_BUCK2CTRL2 = 27, + MAX77802_REG_BUCK2PHTRAN = 28, + MAX77802_REG_BUCK2DVS1 = 29, + MAX77802_REG_BUCK2DVS2 = 30, + MAX77802_REG_BUCK2DVS3 = 31, + MAX77802_REG_BUCK2DVS4 = 32, + MAX77802_REG_BUCK2DVS5 = 33, + MAX77802_REG_BUCK2DVS6 = 34, + MAX77802_REG_BUCK2DVS7 = 35, + MAX77802_REG_BUCK2DVS8 = 36, + MAX77802_REG_BUCK3CTRL1 = 39, + MAX77802_REG_BUCK3DVS1 = 40, + MAX77802_REG_BUCK3DVS2 = 41, + MAX77802_REG_BUCK3DVS3 = 42, + MAX77802_REG_BUCK3DVS4 = 43, + MAX77802_REG_BUCK3DVS5 = 44, + MAX77802_REG_BUCK3DVS6 = 45, + MAX77802_REG_BUCK3DVS7 = 46, + MAX77802_REG_BUCK3DVS8 = 47, + MAX77802_REG_BUCK4CTRL1 = 55, + MAX77802_REG_BUCK4DVS1 = 56, + MAX77802_REG_BUCK4DVS2 = 57, + MAX77802_REG_BUCK4DVS3 = 58, + MAX77802_REG_BUCK4DVS4 = 59, + MAX77802_REG_BUCK4DVS5 = 60, + MAX77802_REG_BUCK4DVS6 = 61, + MAX77802_REG_BUCK4DVS7 = 62, + MAX77802_REG_BUCK4DVS8 = 63, + MAX77802_REG_BUCK5CTRL = 65, + MAX77802_REG_BUCK5OUT = 66, + MAX77802_REG_BUCK6CTRL = 68, + MAX77802_REG_BUCK6DVS1 = 69, + MAX77802_REG_BUCK6DVS2 = 70, + MAX77802_REG_BUCK6DVS3 = 71, + MAX77802_REG_BUCK6DVS4 = 72, + MAX77802_REG_BUCK6DVS5 = 73, + MAX77802_REG_BUCK6DVS6 = 74, + MAX77802_REG_BUCK6DVS7 = 75, + MAX77802_REG_BUCK6DVS8 = 76, + MAX77802_REG_BUCK7CTRL = 78, + MAX77802_REG_BUCK7OUT = 79, + MAX77802_REG_BUCK8CTRL = 81, + MAX77802_REG_BUCK8OUT = 82, + MAX77802_REG_BUCK9CTRL = 84, + MAX77802_REG_BUCK9OUT = 85, + MAX77802_REG_BUCK10CTRL = 87, + MAX77802_REG_BUCK10OUT = 88, + MAX77802_REG_LDO1CTRL1 = 96, + MAX77802_REG_LDO2CTRL1 = 97, + MAX77802_REG_LDO3CTRL1 = 98, + MAX77802_REG_LDO4CTRL1 = 99, + MAX77802_REG_LDO5CTRL1 = 100, + MAX77802_REG_LDO6CTRL1 = 101, + MAX77802_REG_LDO7CTRL1 = 102, + MAX77802_REG_LDO8CTRL1 = 103, + MAX77802_REG_LDO9CTRL1 = 104, + MAX77802_REG_LDO10CTRL1 = 105, + MAX77802_REG_LDO11CTRL1 = 106, + MAX77802_REG_LDO12CTRL1 = 107, + MAX77802_REG_LDO13CTRL1 = 108, + MAX77802_REG_LDO14CTRL1 = 109, + MAX77802_REG_LDO15CTRL1 = 110, + MAX77802_REG_LDO17CTRL1 = 112, + MAX77802_REG_LDO18CTRL1 = 113, + MAX77802_REG_LDO19CTRL1 = 114, + MAX77802_REG_LDO20CTRL1 = 115, + MAX77802_REG_LDO21CTRL1 = 116, + MAX77802_REG_LDO22CTRL1 = 117, + MAX77802_REG_LDO23CTRL1 = 118, + MAX77802_REG_LDO24CTRL1 = 119, + MAX77802_REG_LDO25CTRL1 = 120, + MAX77802_REG_LDO26CTRL1 = 121, + MAX77802_REG_LDO27CTRL1 = 122, + MAX77802_REG_LDO28CTRL1 = 123, + MAX77802_REG_LDO29CTRL1 = 124, + MAX77802_REG_LDO30CTRL1 = 125, + MAX77802_REG_LDO32CTRL1 = 127, + MAX77802_REG_LDO33CTRL1 = 128, + MAX77802_REG_LDO34CTRL1 = 129, + MAX77802_REG_LDO35CTRL1 = 130, + MAX77802_REG_LDO1CTRL2 = 144, + MAX77802_REG_LDO2CTRL2 = 145, + MAX77802_REG_LDO3CTRL2 = 146, + MAX77802_REG_LDO4CTRL2 = 147, + MAX77802_REG_LDO5CTRL2 = 148, + MAX77802_REG_LDO6CTRL2 = 149, + MAX77802_REG_LDO7CTRL2 = 150, + MAX77802_REG_LDO8CTRL2 = 151, + MAX77802_REG_LDO9CTRL2 = 152, + MAX77802_REG_LDO10CTRL2 = 153, + MAX77802_REG_LDO11CTRL2 = 154, + MAX77802_REG_LDO12CTRL2 = 155, + MAX77802_REG_LDO13CTRL2 = 156, + MAX77802_REG_LDO14CTRL2 = 157, + MAX77802_REG_LDO15CTRL2 = 158, + MAX77802_REG_LDO17CTRL2 = 160, + MAX77802_REG_LDO18CTRL2 = 161, + MAX77802_REG_LDO19CTRL2 = 162, + MAX77802_REG_LDO20CTRL2 = 163, + MAX77802_REG_LDO21CTRL2 = 164, + MAX77802_REG_LDO22CTRL2 = 165, + MAX77802_REG_LDO23CTRL2 = 166, + MAX77802_REG_LDO24CTRL2 = 167, + MAX77802_REG_LDO25CTRL2 = 168, + MAX77802_REG_LDO26CTRL2 = 169, + MAX77802_REG_LDO27CTRL2 = 170, + MAX77802_REG_LDO28CTRL2 = 171, + MAX77802_REG_LDO29CTRL2 = 172, + MAX77802_REG_LDO30CTRL2 = 173, + MAX77802_REG_LDO32CTRL2 = 175, + MAX77802_REG_LDO33CTRL2 = 176, + MAX77802_REG_LDO34CTRL2 = 177, + MAX77802_REG_LDO35CTRL2 = 178, + MAX77802_REG_BBAT_CHG = 180, + MAX77802_REG_32KHZ = 181, + MAX77802_REG_PMIC_END = 182, }; -struct igb_nfc_filter { - struct hlist_node nfc_node; - struct igb_nfc_input filter; - unsigned long cookie; - u16 etype_reg_index; - u16 sw_idx; - u16 action; +struct max77686_clk_init_data { + struct regmap *regmap; + struct clk_hw hw; + struct clk_init_data clk_idata; + const struct max77686_hw_clk_info *clk_info; }; -struct meson8b_dwmac; +struct max77686_clk_driver_data { + enum max77686_chip_name chip; + struct max77686_clk_init_data *max_clk_data; + size_t num_clks; +}; -struct meson8b_dwmac_data { - int (*set_phy_mode)(struct meson8b_dwmac *); - bool has_prg_eth1_rgmii_rx_delay; +struct hi3519_crg_data { + struct hisi_clock_data *clk_data; + struct hisi_reset_controller *rstc; }; -struct meson8b_dwmac { - struct device *dev; - void *regs; - const struct meson8b_dwmac_data *data; - phy_interface_t phy_mode; - struct clk *rgmii_tx_clk; - u32 tx_delay_ns; - u32 rx_delay_ps; - struct clk *timing_adj_clk; +enum { + A380_CPU_TO_DDR = 0, + A380_CPU_TO_L2 = 1, }; -struct meson8b_dwmac_clk_configs { - struct clk_mux m250_mux; - struct clk_divider m250_div; - struct clk_fixed_factor fixed_div2; - struct clk_gate rgmii_tx_en; +struct div4_clk___2 { + const char *name; + unsigned int reg; + unsigned int shift; }; -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, +struct r8a73a4_cpg { + struct clk_onecell_data data; + spinlock_t lock; }; -enum skb_state { - illegal = 0, - tx_start = 1, - tx_done___2 = 2, - rx_start = 3, - rx_done = 4, - rx_cleanup = 5, - unlink_start = 6, +struct div4_clk___3 { + const char *name; + const char *parent; + unsigned int reg; + unsigned int shift; }; -struct skb_data { - struct urb *urb; - struct usbnet *dev; - enum skb_state state; - long length; - unsigned long packets; +struct sh73a0_cpg { + struct clk_onecell_data data; + spinlock_t lock; }; -struct dwc3_meson_g12a; +enum exynos4_soc { + EXYNOS4210 = 0, + EXYNOS4212 = 1, + EXYNOS4412 = 2, +}; -struct dwc3_meson_g12a_drvdata { - bool otg_phy_host_port_disable; - struct clk_bulk_data *clks; - int num_clks; - const char * const *phy_names; - int num_phys; - int (*setup_regmaps)(struct dwc3_meson_g12a *, void *); - int (*usb2_init_phy)(struct dwc3_meson_g12a *, int, enum phy_mode); - int (*set_phy_mode)(struct dwc3_meson_g12a *, int, enum phy_mode); - int (*usb_init)(struct dwc3_meson_g12a *); - int (*usb_post_init)(struct dwc3_meson_g12a *); +struct samsung_fixed_rate_clock { + unsigned int id; + char *name; + const char *parent_name; + unsigned long flags; + unsigned long fixed_rate; }; -enum usb_role { - USB_ROLE_NONE = 0, - USB_ROLE_HOST = 1, - USB_ROLE_DEVICE = 2, +struct samsung_mux_clock { + unsigned int id; + const char *name; + const char * const *parent_names; + u8 num_parents; + unsigned long flags; + unsigned long offset; + u8 shift; + u8 width; + u8 mux_flags; }; -typedef int (*usb_role_switch_set_t)(struct usb_role_switch *, enum usb_role); +struct samsung_pll_rate_table { + unsigned int rate; + unsigned int pdiv; + unsigned int mdiv; + unsigned int sdiv; + unsigned int kdiv; + unsigned int afc; + unsigned int mfr; + unsigned int mrr; + unsigned int vsel; +}; -typedef enum usb_role (*usb_role_switch_get_t)(struct usb_role_switch *); +enum samsung_pll_type { + pll_2126 = 0, + pll_3000 = 1, + pll_35xx = 2, + pll_36xx = 3, + pll_2550 = 4, + pll_2650 = 5, + pll_4500 = 6, + pll_4502 = 7, + pll_4508 = 8, + pll_4600 = 9, + pll_4650 = 10, + pll_4650c = 11, + pll_6552 = 12, + pll_6552_s3c2416 = 13, + pll_6553 = 14, + pll_2550x = 15, + pll_2550xx = 16, + pll_2650x = 17, + pll_2650xx = 18, + pll_1417x = 19, + pll_1450x = 20, + pll_1451x = 21, + pll_1452x = 22, + pll_1460x = 23, + pll_0818x = 24, + pll_0822x = 25, + pll_0831x = 26, + pll_142xx = 27, +}; -struct usb_role_switch_desc { - struct fwnode_handle *fwnode; - struct device *usb2_port; - struct device *usb3_port; - struct device *udc; - usb_role_switch_set_t set; - usb_role_switch_get_t get; - bool allow_userspace_control; - void *driver_data; +struct samsung_pll_clock { + unsigned int id; const char *name; + const char *parent_name; + unsigned long flags; + int con_offset; + int lock_offset; + enum samsung_pll_type type; + const struct samsung_pll_rate_table *rate_table; }; -struct dwc3_meson_g12a { - struct device *dev; - struct regmap *u2p_regmap[3]; - struct regmap *usb_glue_regmap; - struct reset_control *reset; - struct phy *phys[3]; - enum usb_dr_mode otg_mode; - enum phy_mode otg_phy_mode; - unsigned int usb2_ports; - unsigned int usb3_ports; - struct regulator *vbus; - struct usb_role_switch_desc switch_desc; - struct usb_role_switch *role_switch; - const struct dwc3_meson_g12a_drvdata *drvdata; +struct samsung_div_clock { + unsigned int id; + const char *name; + const char *parent_name; + unsigned long flags; + unsigned long offset; + u8 shift; + u8 width; + u8 div_flags; + struct clk_div_table *table; }; -struct ohci_platform_priv { - struct clk *clks[4]; - struct reset_control *resets; +struct samsung_gate_clock { + unsigned int id; + const char *name; + const char *parent_name; + unsigned long flags; + unsigned long offset; + u8 bit_idx; + u8 gate_flags; }; -enum ci_hw_regs { - CAP_CAPLENGTH = 0, - CAP_HCCPARAMS = 1, - CAP_DCCPARAMS = 2, - CAP_TESTMODE = 3, - CAP_LAST = 3, - OP_USBCMD = 4, - OP_USBSTS = 5, - OP_USBINTR = 6, - OP_FRINDEX = 7, - OP_DEVICEADDR = 8, - OP_ENDPTLISTADDR = 9, - OP_TTCTRL = 10, - OP_BURSTSIZE = 11, - OP_ULPI_VIEWPORT = 12, - OP_PORTSC = 13, - OP_DEVLC = 14, - OP_OTGSC = 15, - OP_USBMODE = 16, - OP_ENDPTSETUPSTAT = 17, - OP_ENDPTPRIME = 18, - OP_ENDPTFLUSH = 19, - OP_ENDPTSTAT = 20, - OP_ENDPTCOMPLETE = 21, - OP_ENDPTCTRL = 22, - OP_LAST = 38, +struct samsung_fixed_factor_clock { + unsigned int id; + char *name; + const char *parent_name; + unsigned long mult; + unsigned long div; + unsigned long flags; }; -struct ci_hdrc_msm { - struct platform_device *ci; - struct clk *core_clk; - struct clk *iface_clk; - struct clk *fs_clk; - struct ci_hdrc_platform_data pdata; - struct reset_controller_dev rcdev; - bool secondary_phy; - bool hsic; - void *base; -}; +struct exynos_cpuclk_cfg_data; -enum tp_mode { - IAP_MODE = 1, - MAIN_MODE = 2, +struct samsung_cpu_clock { + unsigned int id; + const char *name; + unsigned int parent_id; + unsigned int alt_parent_id; + unsigned long flags; + int offset; + const struct exynos_cpuclk_cfg_data *cfg; }; -struct elan_transport_ops; +struct exynos_cpuclk_cfg_data { + unsigned long prate; + unsigned long div0; + unsigned long div1; +}; -struct elan_tp_data { - struct i2c_client *client; - struct input_dev *input; - struct input_dev *tp_input; - struct regulator *vcc; - const struct elan_transport_ops *ops; - struct completion fw_completion; - bool in_fw_update; - struct mutex sysfs_mutex; - unsigned int max_x; - unsigned int max_y; - unsigned int width_x; - unsigned int width_y; - unsigned int x_res; - unsigned int y_res; - u8 pattern; - u16 product_id; - u8 fw_version; - u8 sm_version; - u8 iap_version; - u16 fw_checksum; - unsigned int report_features; - unsigned int report_len; - int pressure_adjustment; - u8 mode; - u16 ic_type; - u16 fw_validpage_count; - u16 fw_page_size; - u32 fw_signature_address; - u8 min_baseline; - u8 max_baseline; - bool baseline_ready; - u8 clickpad; - bool middle_button; - u32 quirks; +struct samsung_clk_reg_dump { + u32 offset; + u32 value; }; -struct elan_transport_ops { - int (*initialize)(struct i2c_client *); - int (*sleep_control)(struct i2c_client *, bool); - int (*power_control)(struct i2c_client *, bool); - int (*set_mode)(struct i2c_client *, u8); - int (*calibrate)(struct i2c_client *); - int (*calibrate_result)(struct i2c_client *, u8 *); - int (*get_baseline_data)(struct i2c_client *, bool, u8 *); - int (*get_version)(struct i2c_client *, u8, bool, u8 *); - int (*get_sm_version)(struct i2c_client *, u8, u16 *, u8 *, u8 *); - int (*get_checksum)(struct i2c_client *, bool, u16 *); - int (*get_product_id)(struct i2c_client *, u16 *); - int (*get_max)(struct i2c_client *, unsigned int *, unsigned int *); - int (*get_resolution)(struct i2c_client *, u8 *, u8 *); - int (*get_num_traces)(struct i2c_client *, unsigned int *, unsigned int *); - int (*iap_get_mode)(struct i2c_client *, enum tp_mode *); - int (*iap_reset)(struct i2c_client *); - int (*prepare_fw_update)(struct i2c_client *, u16, u8, u16); - int (*write_fw_block)(struct i2c_client *, u16, const u8 *, u16, int); - int (*finish_fw_update)(struct i2c_client *, struct completion *); - int (*get_report_features)(struct i2c_client *, u8, unsigned int *, unsigned int *); - int (*get_report)(struct i2c_client *, u8 *, unsigned int); - int (*get_pressure_adjustment)(struct i2c_client *, int *); - int (*get_pattern)(struct i2c_client *, u8 *); +enum exynos4_plls { + apll = 0, + mpll = 1, + epll = 2, + vpll = 3, + nr_plls = 4, }; -struct i2c_dev { - struct list_head list; - struct i2c_adapter *adap; - long: 32; - struct device dev; - struct cdev cdev; - long: 32; +struct samsung_clk_provider { + void *reg_base; + struct device *dev; + spinlock_t lock; + struct clk_hw_onecell_data clk_data; }; -struct i2c_rdwr_ioctl_data { - struct i2c_msg __attribute__((btf_type_tag("user"))) *msgs; - __u32 nmsgs; +struct clk_factors_config; + +struct factors_request; + +struct factors_data { + int enable; + int mux; + int muxmask; + const struct clk_factors_config *table; + void (*getter)(struct factors_request *); + void (*recalc)(struct factors_request *); + const char *name; }; -struct i2c_smbus_ioctl_data { - __u8 read_write; - __u8 command; - __u32 size; - union i2c_smbus_data __attribute__((btf_type_tag("user"))) *data; +struct clk_factors_config { + u8 nshift; + u8 nwidth; + u8 kshift; + u8 kwidth; + u8 mshift; + u8 mwidth; + u8 pshift; + u8 pwidth; + u8 n_start; }; -struct i2c_mux_gpio_platform_data { - int parent; - int base_nr; - const unsigned int *values; - int n_values; - const unsigned int *classes; - unsigned int idle; +struct factors_request { + unsigned long rate; + unsigned long parent_rate; + u8 parent_index; + u8 n; + u8 k; + u8 m; + u8 p; }; -struct gpiomux { - struct i2c_mux_gpio_platform_data data; - int ngpios; - struct gpio_desc **gpios; +struct mux_data { + u8 shift; }; -struct gpio_device { - struct device dev; - struct cdev chrdev; - int id; - struct device *mockdev; - struct module *owner; - struct gpio_chip *chip; - struct gpio_desc *descs; - int base; - u16 ngpio; - const char *label; - void *data; - struct list_head list; - struct blocking_notifier_head notifier; - struct rw_semaphore sem; - struct list_head pin_ranges; - long: 32; +struct div_data { + u8 shift; + u8 pow; + u8 width; + const struct clk_div_table *table; }; -typedef void *acpi_handle; +struct divs_data { + const struct factors_data *factors; + int ndivs; + struct { + u8 self; + u8 fixed; + struct clk_div_table *table; + u8 shift; + u8 pow; + u8 gate; + bool critical; + } div[4]; +}; -struct i2c_mux_core { - struct i2c_adapter *parent; - struct device *dev; - unsigned int mux_locked: 1; - unsigned int arbitrator: 1; - unsigned int gate: 1; - void *priv; - int (*select)(struct i2c_mux_core *, u32); - int (*deselect)(struct i2c_mux_core *, u32); - int num_adapters; - int max_adapters; - struct i2c_adapter *adapter[0]; +struct _ccu_mult { + unsigned long mult; + unsigned long min; + unsigned long max; }; -struct gpio_array { - struct gpio_desc **desc; - unsigned int size; - struct gpio_chip *chip; - unsigned long *get_mask; - unsigned long *set_mask; - unsigned long invert_mask[0]; +struct tegra_audio_clk_info { + char *name; + struct tegra_clk_pll_params *pll_params; + int clk_id; + char *parent; }; -struct chip_data { - enum power_supply_property psp; - u8 addr; - int min_value; - int max_value; +struct tegra_devclk { + int dt_id; + char *dev_id; + char *con_id; }; -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, +struct tegra_clk_init_table { + unsigned int clk_id; + unsigned int parent_id; + unsigned long rate; + int state; }; -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 tegra_cpu_car_ops { + void (*wait_for_reset)(u32); + void (*put_in_reset)(u32); + void (*out_of_reset)(u32); + void (*enable_clock)(u32); + void (*disable_clock)(u32); + bool (*rail_off_ready)(); + void (*suspend)(); + void (*resume)(); }; -enum sbs_capacity_mode { - CAPACITY_MODE_AMPS = 0, - CAPACITY_MODE_WATTS = 32768, +struct cpu_clk_suspend_context { + u32 clk_csite_src; + u32 cclkg_burst; + u32 cclkg_divider; }; -enum { - REG_MANUFACTURER_DATA = 0, - REG_BATTERY_MODE = 1, - REG_TEMPERATURE = 2, - REG_VOLTAGE = 3, - REG_CURRENT_NOW = 4, - REG_CURRENT_AVG = 5, - REG_MAX_ERR = 6, - REG_CAPACITY = 7, - REG_TIME_TO_EMPTY_NOW = 8, - REG_TIME_TO_EMPTY_AVG = 9, - REG_TIME_TO_FULL_AVG = 10, - REG_STATUS = 11, - REG_CAPACITY_LEVEL = 12, - REG_CYCLE_COUNT = 13, - REG_SERIAL_NUMBER = 14, - REG_REMAINING_CAPACITY = 15, - REG_REMAINING_CAPACITY_CHARGE = 16, - REG_FULL_CHARGE_CAPACITY = 17, - REG_FULL_CHARGE_CAPACITY_CHARGE = 18, - REG_DESIGN_CAPACITY = 19, - REG_DESIGN_CAPACITY_CHARGE = 20, - REG_DESIGN_VOLTAGE_MIN = 21, - REG_DESIGN_VOLTAGE_MAX = 22, - REG_CHEMISTRY = 23, - REG_MANUFACTURER = 24, - REG_MODEL_NAME = 25, - REG_CHARGE_CURRENT = 26, - REG_CHARGE_VOLTAGE = 27, +struct omap3_dpll5_settings { + unsigned int rate; + unsigned int m; + unsigned int n; }; -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, +struct uniphier_clk_gate { + struct clk_hw hw; + struct regmap *regmap; + unsigned int reg; + unsigned int bit; }; -enum { - POWER_SUPPLY_HEALTH_UNKNOWN = 0, - POWER_SUPPLY_HEALTH_GOOD = 1, - POWER_SUPPLY_HEALTH_OVERHEAT = 2, - POWER_SUPPLY_HEALTH_DEAD = 3, - POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4, - POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5, - POWER_SUPPLY_HEALTH_COLD = 6, - POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7, - POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8, - POWER_SUPPLY_HEALTH_OVERCURRENT = 9, - POWER_SUPPLY_HEALTH_CALIBRATION_REQUIRED = 10, - POWER_SUPPLY_HEALTH_WARM = 11, - POWER_SUPPLY_HEALTH_COOL = 12, - POWER_SUPPLY_HEALTH_HOT = 13, - POWER_SUPPLY_HEALTH_NO_BATTERY = 14, -}; +struct fsl_edma_engine; -struct sbs_info { - struct i2c_client *client; - struct power_supply *power_supply; - bool is_present; - struct gpio_desc *gpio_detect; - bool charger_broadcasts; - int last_state; - int poll_time; - u32 i2c_retry_count; - u32 poll_retry_count; - struct delayed_work work; - struct mutex mode_lock; +struct fsl_edma_drvdata { + u32 dmamuxs; + u32 chreg_off; + u32 chreg_space_sz; u32 flags; - int technology; - char strings[99]; + int (*setup_irq)(struct platform_device *, struct fsl_edma_engine *); }; -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 edma_regs { + void *cr; + void *es; + void *erqh; + void *erql; + void *eeih; + void *eeil; + void *seei; + void *ceei; + void *serq; + void *cerq; + void *cint; + void *cerr; + void *ssrt; + void *cdne; + void *inth; + void *intl; + void *errh; + void *errl; }; -struct sbs_platform_data { - u32 i2c_retry_count; - u32 poll_retry_count; +enum fsl_edma_pm_state { + RUNNING = 0, + SUSPENDED = 1, }; -struct gov_attr_set; +struct fsl_edma_desc; -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); -}; +struct fsl_edma_hw_tcd; -struct gov_attr_set { - struct kobject kobj; - struct list_head policy_list; - struct mutex update_lock; - int usage_count; +struct fsl_edma_chan { + struct virt_dma_chan vchan; + enum dma_status status; + enum fsl_edma_pm_state pm_state; + bool idle; + u32 slave_id; + struct fsl_edma_engine *edma; + struct fsl_edma_desc *edesc; + struct dma_slave_config cfg; + u32 attr; + bool is_sw; + struct dma_pool *tcd_pool; + dma_addr_t dma_dev_addr; + u32 dma_dev_size; + enum dma_data_direction dma_dir; + char chan_name[32]; + struct fsl_edma_hw_tcd *tcd; + u32 real_count; + struct work_struct issue_worker; + struct platform_device *pdev; + struct device *pd_dev; + u32 srcid; + struct clk *clk; + int priority; + int hw_chanid; + int txirq; + bool is_rxchan; + bool is_remote; + bool is_multi_fifo; }; -struct pmap { - unsigned int mode; - unsigned int p1; - unsigned int p2; - unsigned int state; +struct fsl_edma_engine { + struct dma_device dma_dev; + void *membase; + void *muxbase[2]; + struct clk *muxclk[2]; + struct clk *dmaclk; + struct clk *chclk; + struct mutex fsl_edma_mutex; + const struct fsl_edma_drvdata *drvdata; + u32 n_chans; + int txirq; + int errirq; + bool big_endian; + struct edma_regs regs; + u64 chan_masked; + struct fsl_edma_chan chans[0]; }; -struct private_data { - void *base; - void *avs_intr_base; - struct device *dev; - struct completion done; - struct semaphore sem; - struct pmap pmap; - int host_irq; +struct fsl_edma_sw_tcd { + dma_addr_t ptcd; + struct fsl_edma_hw_tcd *vtcd; }; -enum qcom_scm_convention { - SMC_CONVENTION_UNKNOWN = 0, - SMC_CONVENTION_LEGACY = 1, - SMC_CONVENTION_ARM_32 = 2, - SMC_CONVENTION_ARM_64 = 3, +struct fsl_edma_desc { + struct virt_dma_desc vdesc; + struct fsl_edma_chan *echan; + bool iscyclic; + enum dma_transfer_direction dirn; + unsigned int n_tcds; + struct fsl_edma_sw_tcd tcd[0]; }; -struct arm_smccc_args { - unsigned long args[8]; +struct fsl_edma_hw_tcd { + __le32 saddr; + __le16 soff; + __le16 attr; + __le32 nbytes; + __le32 slast; + __le32 daddr; + __le16 doff; + __le16 citer; + __le32 dlast_sga; + __le16 csr; + __le16 biter; }; -struct qcom_scm_desc { - u32 svc; - u32 cmd; - u32 arginfo; - long: 32; - u64 args[10]; - u32 owner; - long: 32; +struct fsl_edma3_ch_reg { + __le32 ch_csr; + __le32 ch_es; + __le32 ch_int; + __le32 ch_sbr; + __le32 ch_pri; + __le32 ch_mux; + __le32 ch_mattr; + __le32 ch_reserved; + struct fsl_edma_hw_tcd tcd; }; -struct qcom_scm_res { - u64 result[3]; +struct exynos_asv_table { + unsigned int num_rows; + unsigned int num_cols; + u32 *buf; }; -enum bcma_clkmode { - BCMA_CLKMODE_FAST = 0, - BCMA_CLKMODE_DYNAMIC = 1, -}; +struct exynos_asv; -struct bcm47xx_wdt { - u32 (*timer_set)(struct bcm47xx_wdt *, u32); - u32 (*timer_set_ms)(struct bcm47xx_wdt *, u32); - u32 max_timer_ms; - void *driver_data; - struct watchdog_device wdd; - struct timer_list soft_timer; - atomic_t soft_ticks; +struct exynos_asv_subsys { + struct exynos_asv *asv; + const char *cpu_dt_compat; + int id; + struct exynos_asv_table table; + unsigned int base_volt; + unsigned int offset_volt_h; + unsigned int offset_volt_l; }; -struct usb_extcon_info { +struct exynos_asv { struct device *dev; - struct extcon_dev *edev; - struct gpio_desc *id_gpiod; - struct gpio_desc *vbus_gpiod; - int id_irq; - int vbus_irq; - unsigned long debounce_jiffies; - struct delayed_work wq_detcable; -}; - -enum tegra_icc_client_type { - TEGRA_ICC_NONE = 0, - TEGRA_ICC_NISO = 1, - TEGRA_ICC_ISO_DISPLAY = 2, - TEGRA_ICC_ISO_VI = 3, - TEGRA_ICC_ISO_AUDIO = 4, - TEGRA_ICC_ISO_VIFAL = 5, -}; - -enum emc_dram_type { - DRAM_TYPE_RESERVED = 0, - DRAM_TYPE_DDR1 = 1, - DRAM_TYPE_LPDDR2 = 2, - DRAM_TYPE_DDR2 = 3, + struct regmap *chipid_regmap; + struct exynos_asv_subsys subsys[2]; + int (*opp_get_voltage)(const struct exynos_asv_subsys *, int, unsigned int); + unsigned int group; + unsigned int table; + bool use_sg; + int of_bin; }; -enum emc_rate_request_type { - EMC_RATE_DEVFREQ = 0, - EMC_RATE_DEBUG = 1, - EMC_RATE_ICC = 2, - EMC_RATE_TYPE_MAX = 3, +struct regulator_coupler { + struct list_head list; + int (*attach_regulator)(struct regulator_coupler *, struct regulator_dev *); + int (*detach_regulator)(struct regulator_coupler *, struct regulator_dev *); + int (*balance_voltage)(struct regulator_coupler *, struct regulator_dev *, suspend_state_t); }; -struct emc_rate_request { - unsigned long min_rate; - unsigned long max_rate; +struct tegra_regulator_coupler { + struct regulator_coupler coupler; + struct regulator_dev *core_rdev; + struct regulator_dev *cpu_rdev; + struct regulator_dev *rtc_rdev; + struct notifier_block reboot_notifier; + struct notifier_block suspend_notifier; + int core_min_uV; + int cpu_min_uV; + bool sys_reboot_mode_req; + bool sys_reboot_mode; + bool sys_suspend_mode_req; + bool sys_suspend_mode; }; -struct devfreq_simple_ondemand_data { - unsigned int upthreshold; - unsigned int downdifferential; +struct cpcap_regulator { + struct regulator_desc rdesc; + const u16 assign_reg; + const u16 assign_mask; }; -union lpddr2_basic_config4 { - u32 value; - struct { - unsigned int arch_type: 2; - unsigned int density: 4; - unsigned int io_width: 2; - } __attribute__((packed)); +enum cpcap_regulator_id { + CPCAP_SW1 = 0, + CPCAP_SW2 = 1, + CPCAP_SW3 = 2, + CPCAP_SW4 = 3, + CPCAP_SW5 = 4, + CPCAP_SW6 = 5, + CPCAP_VCAM = 6, + CPCAP_VCSI = 7, + CPCAP_VDAC = 8, + CPCAP_VDIG = 9, + CPCAP_VFUSE = 10, + CPCAP_VHVIO = 11, + CPCAP_VSDIO = 12, + CPCAP_VPLL = 13, + CPCAP_VRF1 = 14, + CPCAP_VRF2 = 15, + CPCAP_VRFREF = 16, + CPCAP_VWLAN1 = 17, + CPCAP_VWLAN2 = 18, + CPCAP_VSIM = 19, + CPCAP_VSIMCARD = 20, + CPCAP_VVIB = 21, + CPCAP_VUSB = 22, + CPCAP_VAUDIO = 23, + CPCAP_NR_REGULATORS = 24, }; -struct tegra_mc; - -struct emc_timing; - -struct tegra_emc { +struct cpcap_ddata { + struct regmap *reg; struct device *dev; - struct tegra_mc *mc; - struct icc_provider provider; - struct notifier_block clk_nb; - struct clk *clk; - void *regs; - unsigned int dram_bus_width; - struct emc_timing *timings; - unsigned int num_timings; - struct { - struct dentry *root; - unsigned long min_rate; - unsigned long max_rate; - } debugfs; - struct emc_rate_request requested_rate[3]; - struct mutex rate_lock; - struct devfreq_simple_ondemand_data ondemand_data; - union lpddr2_basic_config4 basic_conf4; - unsigned int manufacturer_id; - unsigned int revision_id1; - unsigned int revision_id2; - bool mrr_error; + const struct cpcap_regulator *soc; }; -struct tegra_bpmp; - -struct tegra_smmu; - -struct gart_device; +struct qcom_rpm_reg; -struct tegra_mc_soc; +struct rpm_regulator_data { + const char *name; + int resource; + const struct qcom_rpm_reg *template; + const char *supply; +}; -struct tegra_mc_timing; +struct rpm_reg_parts; -struct tegra_mc { - struct tegra_bpmp *bpmp; +struct qcom_rpm_reg { + struct qcom_rpm *rpm; + struct mutex lock; struct device *dev; - struct tegra_smmu *smmu; - struct gart_device *gart; - void *regs; - void *bcast_ch_regs; - void **ch_regs; - struct clk *clk; - int irq; - const struct tegra_mc_soc *soc; - unsigned long tick; - struct tegra_mc_timing *timings; - unsigned int num_timings; - unsigned int num_channels; - bool bwmgr_mrq_supported; - struct reset_controller_dev reset; - struct icc_provider provider; - spinlock_t lock; - struct { - struct dentry *root; - } debugfs; + struct regulator_desc desc; + const struct rpm_reg_parts *parts; + int resource; + u32 val[2]; + int uV; + int is_enabled; + bool supports_force_mode_auto; + bool supports_force_mode_bypass; }; -struct tegra_mc_client; - -struct tegra_smmu_soc; - -struct tegra_mc_reset_ops; - -struct tegra_mc_reset; - -struct tegra_mc_icc_ops; - -struct tegra_mc_ops; +struct request_member { + int word; + unsigned int mask; + int shift; +}; -struct tegra_mc_soc { - const struct tegra_mc_client *clients; - unsigned int num_clients; - const unsigned long *emem_regs; - unsigned int num_emem_regs; - unsigned int num_address_bits; - unsigned int atom_size; - unsigned int num_carveouts; - u16 client_id_mask; - u8 num_channels; - const struct tegra_smmu_soc *smmu; - u32 intmask; - u32 ch_intmask; - u32 global_intstatus_channel_shift; - bool has_addr_hi_reg; - const struct tegra_mc_reset_ops *reset_ops; - const struct tegra_mc_reset *resets; - unsigned int num_resets; - const struct tegra_mc_icc_ops *icc_ops; - const struct tegra_mc_ops *ops; +struct rpm_reg_parts { + struct request_member mV; + struct request_member uV; + struct request_member ip; + struct request_member pd; + struct request_member ia; + struct request_member fm; + struct request_member pm; + struct request_member pc; + struct request_member pf; + struct request_member enable_state; + struct request_member comp_mode; + struct request_member freq; + struct request_member freq_clk_src; + struct request_member hpm; + int request_len; }; -struct tegra_mc_client { +struct reset_control { + struct reset_controller_dev *rcdev; + struct list_head list; unsigned int id; - unsigned int bpmp_id; - enum tegra_icc_client_type type; - const char *name; - union { - unsigned int swgroup; - unsigned int sid; - }; - unsigned int fifo_size; - struct { - struct { - unsigned int reg; - unsigned int bit; - } smmu; - struct { - unsigned int reg; - unsigned int shift; - unsigned int mask; - unsigned int def; - } la; - struct { - unsigned int override; - unsigned int security; - } sid; - } regs; + struct kref refcnt; + bool acquired; + bool shared; + bool array; + atomic_t deassert_count; + atomic_t triggered_count; }; -struct tegra_smmu_swgroup; - -struct tegra_smmu_group_soc; - -struct tegra_smmu_soc { - const struct tegra_mc_client *clients; - unsigned int num_clients; - const struct tegra_smmu_swgroup *swgroups; - unsigned int num_swgroups; - const struct tegra_smmu_group_soc *groups; - unsigned int num_groups; - bool supports_round_robin_arbitration; - bool supports_request_limit; - unsigned int num_tlb_lines; - unsigned int num_asids; +struct reset_control_array { + struct reset_control base; + unsigned int num_rstcs; + struct reset_control *rstc[0]; }; -struct tegra_smmu_swgroup { - const char *name; - unsigned int swgroup; - unsigned int reg; +struct reset_control_lookup { + struct list_head list; + const char *provider; + unsigned int index; + const char *dev_id; + const char *con_id; }; -struct tegra_smmu_group_soc { - const char *name; - const unsigned int *swgroups; - unsigned int num_swgroups; +struct reset_control_bulk_devres { + int num_rstcs; + struct reset_control_bulk_data *rstcs; }; -struct tegra_mc_reset_ops { - int (*hotreset_assert)(struct tegra_mc *, const struct tegra_mc_reset *); - int (*hotreset_deassert)(struct tegra_mc *, const struct tegra_mc_reset *); - int (*block_dma)(struct tegra_mc *, const struct tegra_mc_reset *); - bool (*dma_idling)(struct tegra_mc *, const struct tegra_mc_reset *); - int (*unblock_dma)(struct tegra_mc *, const struct tegra_mc_reset *); - int (*reset_status)(struct tegra_mc *, const struct tegra_mc_reset *); +struct reset_simple_devdata { + u32 reg_offset; + u32 nr_resets; + bool active_low; + bool status_active_low; }; -struct tegra_mc_reset { - const char *name; - unsigned long id; - unsigned int control; - unsigned int status; - unsigned int reset; - unsigned int bit; +struct reset_simple_data { + spinlock_t lock; + void *membase; + struct reset_controller_dev rcdev; + bool active_low; + bool status_active_low; + unsigned int reset_us; }; -struct tegra_mc_icc_ops { - int (*set)(struct icc_node *, struct icc_node *); - int (*aggregate)(struct icc_node *, u32, u32, u32, u32 *, u32 *); - struct icc_node * (*xlate)(struct of_phandle_args *, void *); - struct icc_node_data * (*xlate_extended)(struct of_phandle_args *, void *); - int (*get_bw)(struct icc_node *, u32 *, u32 *); +struct con_driver { + const struct consw *con; + const char *desc; + struct device *dev; + int node; + int first; + int last; + int flag; }; -struct tegra_mc_ops { - int (*probe)(struct tegra_mc *); - void (*remove)(struct tegra_mc *); - int (*suspend)(struct tegra_mc *); - int (*resume)(struct tegra_mc *); - irqreturn_t (*handle_irq)(int, void *); - int (*probe_device)(struct tegra_mc *, struct device *); +struct interval { + uint32_t first; + uint32_t last; }; -struct tegra_mc_timing { - unsigned long rate; - u32 *emem_data; +enum { + blank_off = 0, + blank_normal_wait = 1, + blank_vesa_wait = 2, }; -struct emc_timing { - unsigned long rate; - u32 data[46]; +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, }; -struct lpddr2_info { - int arch_type; - int density; - int io_width; - int manufacturer_id; - int revision_id1; - int revision_id2; +enum { + EPecma = 0, + EPdec = 1, + EPeq = 2, + EPgt = 3, + EPlt = 4, }; -typedef long tegra20_clk_emc_round_cb(unsigned long, unsigned long, unsigned long, void *); - -enum { - SOCK_WAKE_IO = 0, - SOCK_WAKE_WAITD = 1, - SOCK_WAKE_SPACE = 2, - SOCK_WAKE_URG = 3, +enum translation_map { + LAT1_MAP = 0, + GRAF_MAP = 1, + IBMPC_MAP = 2, + USER_MAP = 3, + FIRST_MAP = 0, + LAST_MAP = 3, }; -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 tiocl_selection { + unsigned short xs; + unsigned short ys; + unsigned short xe; + unsigned short ye; + unsigned short sel_mode; }; -struct coalesce_reply_data { - struct ethnl_reply_data base; - struct ethtool_coalesce coalesce; - struct kernel_ethtool_coalesce kernel_coalesce; - u32 supported_params; +struct vt_notifier_param { + struct vc_data *vc; + unsigned int c; }; -struct tcp_seq_afinfo { - sa_family_t family; +struct vc_draw_region { + unsigned long from; + unsigned long to; + int x; }; -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, +struct rgb { + u8 r; + u8 g; + u8 b; }; -enum tcp_tw_status { - TCP_TW_SUCCESS = 0, - TCP_TW_RST = 1, - TCP_TW_ACK = 2, - TCP_TW_SYN = 3, +enum serdev_parity { + SERDEV_PARITY_NONE = 0, + SERDEV_PARITY_EVEN = 1, + SERDEV_PARITY_ODD = 2, }; -enum tcp_seq_states { - TCP_SEQ_STATE_LISTENING = 0, - TCP_SEQ_STATE_ESTABLISHED = 1, +struct serdev_controller; + +struct serdev_controller_ops { + int (*write_buf)(struct serdev_controller *, const unsigned char *, size_t); + void (*write_flush)(struct serdev_controller *); + int (*write_room)(struct serdev_controller *); + int (*open)(struct serdev_controller *); + void (*close)(struct serdev_controller *); + void (*set_flow_control)(struct serdev_controller *, bool); + int (*set_parity)(struct serdev_controller *, enum serdev_parity); + unsigned int (*set_baudrate)(struct serdev_controller *, unsigned int); + void (*wait_until_sent)(struct serdev_controller *, long); + int (*get_tiocm)(struct serdev_controller *); + int (*set_tiocm)(struct serdev_controller *, unsigned int, unsigned int); + int (*break_ctl)(struct serdev_controller *, unsigned int); }; -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 serdev_device; + +struct serdev_controller { + struct device dev; + unsigned int nr; + struct serdev_device *serdev; + const struct serdev_controller_ops *ops; + long: 32; }; -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 serdev_device_ops; + +struct serdev_device { + struct device dev; + int nr; + struct serdev_controller *ctrl; + const struct serdev_device_ops *ops; + struct completion write_comp; + struct mutex write_lock; }; -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 serdev_device_ops { + int (*receive_buf)(struct serdev_device *, const unsigned char *, size_t); + void (*write_wakeup)(struct serdev_device *); }; -union tcp_md5_addr { - struct in_addr a4; - struct in6_addr a6; +struct serport { + struct tty_port *port; + struct tty_struct *tty; + struct tty_driver *tty_drv; + int tty_idx; + unsigned long flags; }; -typedef u8 u_int8_t; +struct drm_mode_create_lease { + __u64 object_ids; + __u32 object_count; + __u32 flags; + __u32 lessee_id; + __u32 fd; +}; -struct ip_reply_arg { - struct kvec iov[1]; - int flags; - __wsum csum; - int csumoffset; - int bound_dev_if; - u8 tos; - kuid_t uid; +struct drm_mode_list_lessees { + __u32 count_lessees; + __u32 pad; + __u64 lessees_ptr; }; -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 drm_mode_get_lease { + __u32 count_objects; + __u32 pad; + __u64 objects_ptr; }; -struct bpf_iter__tcp { - union { - struct bpf_iter_meta *meta; - }; - union { - struct sock_common *sk_common; - }; - uid_t uid; - long: 32; +struct drm_mode_revoke_lease { + __u32 lessee_id; }; -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 syncobj_wait_entry { + struct list_head node; + struct task_struct *task; + struct dma_fence *fence; + struct dma_fence_cb fence_cb; long: 32; + u64 point; }; -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 drm_syncobj; -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, +struct syncobj_eventfd_entry { + struct list_head node; + struct dma_fence *fence; + struct dma_fence_cb fence_cb; + struct drm_syncobj *syncobj; + struct eventfd_ctx *ev_fd_ctx; + u64 point; + u32 flags; + long: 32; }; -enum { - XFRM_MODE_FLAG_TUNNEL = 1, +struct drm_syncobj { + struct kref refcount; + struct dma_fence __attribute__((btf_type_tag("rcu"))) *fence; + struct list_head cb_list; + struct list_head ev_fd_list; + spinlock_t lock; + struct file *file; }; -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 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 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 drm_syncobj_transfer { + __u32 src_handle; + __u32 dst_handle; + __u64 src_point; + __u64 dst_point; + __u32 flags; + __u32 pad; }; -struct ip_beet_phdr { - __u8 nexthdr; - __u8 hdrlen; - __u8 padlen; - __u8 reserved; +struct dma_fence_unwrap { + struct dma_fence *chain; + struct dma_fence *array; + unsigned int index; }; -struct rpc_cred_cache { - struct hlist_head *hashtable; - unsigned int hashbits; - spinlock_t lock; +struct drm_syncobj_wait { + __u64 handles; + __s64 timeout_nsec; + __u32 count_handles; + __u32 flags; + __u32 first_signaled; + __u32 pad; }; -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; - long: 32; +struct drm_syncobj_timeline_wait { + __u64 handles; + __u64 points; + __s64 timeout_nsec; + __u32 count_handles; + __u32 flags; + __u32 first_signaled; + __u32 pad; }; -struct strparser; +struct drm_syncobj_create { + __u32 handle; + __u32 flags; +}; -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 drm_syncobj_destroy { + __u32 handle; + __u32 pad; }; -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 drm_syncobj_handle { + __u32 handle; + __u32 flags; + __s32 fd; + __u32 pad; }; -struct strp_msg { - int full_len; - int offset; +struct drm_syncobj_eventfd { + __u32 handle; + __u32 flags; + __u64 point; + __s32 fd; + __u32 pad; }; -struct _strp_msg { - struct strp_msg strp; - int accum_len; +struct drm_syncobj_array { + __u64 handles; + __u32 count_handles; + __u32 pad; }; -enum { - Root_NFS = 255, - Root_CIFS = 254, - Root_Generic = 253, - Root_RAM0 = 1048576, +struct drm_syncobj_timeline_array { + __u64 handles; + __u64 points; + __u32 count_handles; + __u32 flags; }; -struct omap_sdrc_params { - unsigned long rate; - u32 actim_ctrla; - u32 actim_ctrlb; - u32 rfr_ctrl; - u32 mr; +struct reg_entry { + unsigned long offset; + unsigned long value; }; -enum { - IORES_DESC_NONE = 0, - IORES_DESC_CRASH_KERNEL = 1, - IORES_DESC_ACPI_TABLES = 2, - IORES_DESC_ACPI_NV_STORAGE = 3, - IORES_DESC_PERSISTENT_MEMORY = 4, - IORES_DESC_PERSISTENT_MEMORY_LEGACY = 5, - IORES_DESC_DEVICE_PRIVATE_MEMORY = 6, - IORES_DESC_RESERVED = 7, - IORES_DESC_SOFT_RESERVED = 8, - IORES_DESC_CXL = 9, +struct tegra_rgb { + struct tegra_output output; + struct tegra_dc *dc; + struct clk *pll_d_out0; + struct clk *pll_d2_out0; + struct clk *clk_parent; + struct clk *clk; + long: 32; }; -typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, unsigned long); +struct attribute_container; -typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *); +struct internal_container { + struct klist_node node; + struct attribute_container *cont; + long: 32; + struct device classdev; +}; -enum proc_hidepid { - HIDEPID_OFF = 0, - HIDEPID_NO_ACCESS = 1, - HIDEPID_INVISIBLE = 2, - HIDEPID_NOT_PTRACEABLE = 4, +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; }; -enum proc_pidonly { - PROC_PIDONLY_OFF = 0, - PROC_PIDONLY_ON = 1, +struct dev_pin_info { + struct pinctrl *p; + struct pinctrl_state *default_state; + struct pinctrl_state *init_state; + struct pinctrl_state *sleep_state; + struct pinctrl_state *idle_state; }; -enum { - FUTEX_STATE_OK = 0, - FUTEX_STATE_EXITING = 1, - FUTEX_STATE_DEAD = 2, +struct ics932s401_data { + struct attribute_group attrs; + struct mutex lock; + char sensors_valid; + unsigned long sensors_last_updated; + u8 regs[21]; }; -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_raw_task_newtask { - struct trace_entry ent; - pid_t pid; - char comm[16]; - unsigned long clone_flags; - short oom_score_adj; - char __data[0]; +enum max77686_types { + TYPE_MAX77686 = 0, + TYPE_MAX77802 = 1, }; -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]; +enum max77686_pmic_reg { + MAX77686_REG_DEVICE_ID = 0, + MAX77686_REG_INTSRC = 1, + MAX77686_REG_INT1 = 2, + MAX77686_REG_INT2 = 3, + MAX77686_REG_INT1MSK = 4, + MAX77686_REG_INT2MSK = 5, + MAX77686_REG_STATUS1 = 6, + MAX77686_REG_STATUS2 = 7, + MAX77686_REG_PWRON = 8, + MAX77686_REG_ONOFF_DELAY = 9, + MAX77686_REG_MRSTB = 10, + MAX77686_REG_BUCK1CTRL = 16, + MAX77686_REG_BUCK1OUT = 17, + MAX77686_REG_BUCK2CTRL1 = 18, + MAX77686_REG_BUCK234FREQ = 19, + MAX77686_REG_BUCK2DVS1 = 20, + MAX77686_REG_BUCK2DVS2 = 21, + MAX77686_REG_BUCK2DVS3 = 22, + MAX77686_REG_BUCK2DVS4 = 23, + MAX77686_REG_BUCK2DVS5 = 24, + MAX77686_REG_BUCK2DVS6 = 25, + MAX77686_REG_BUCK2DVS7 = 26, + MAX77686_REG_BUCK2DVS8 = 27, + MAX77686_REG_BUCK3CTRL1 = 28, + MAX77686_REG_BUCK3DVS1 = 30, + MAX77686_REG_BUCK3DVS2 = 31, + MAX77686_REG_BUCK3DVS3 = 32, + MAX77686_REG_BUCK3DVS4 = 33, + MAX77686_REG_BUCK3DVS5 = 34, + MAX77686_REG_BUCK3DVS6 = 35, + MAX77686_REG_BUCK3DVS7 = 36, + MAX77686_REG_BUCK3DVS8 = 37, + MAX77686_REG_BUCK4CTRL1 = 38, + MAX77686_REG_BUCK4DVS1 = 40, + MAX77686_REG_BUCK4DVS2 = 41, + MAX77686_REG_BUCK4DVS3 = 42, + MAX77686_REG_BUCK4DVS4 = 43, + MAX77686_REG_BUCK4DVS5 = 44, + MAX77686_REG_BUCK4DVS6 = 45, + MAX77686_REG_BUCK4DVS7 = 46, + MAX77686_REG_BUCK4DVS8 = 47, + MAX77686_REG_BUCK5CTRL = 48, + MAX77686_REG_BUCK5OUT = 49, + MAX77686_REG_BUCK6CTRL = 50, + MAX77686_REG_BUCK6OUT = 51, + MAX77686_REG_BUCK7CTRL = 52, + MAX77686_REG_BUCK7OUT = 53, + MAX77686_REG_BUCK8CTRL = 54, + MAX77686_REG_BUCK8OUT = 55, + MAX77686_REG_BUCK9CTRL = 56, + MAX77686_REG_BUCK9OUT = 57, + MAX77686_REG_LDO1CTRL1 = 64, + MAX77686_REG_LDO2CTRL1 = 65, + MAX77686_REG_LDO3CTRL1 = 66, + MAX77686_REG_LDO4CTRL1 = 67, + MAX77686_REG_LDO5CTRL1 = 68, + MAX77686_REG_LDO6CTRL1 = 69, + MAX77686_REG_LDO7CTRL1 = 70, + MAX77686_REG_LDO8CTRL1 = 71, + MAX77686_REG_LDO9CTRL1 = 72, + MAX77686_REG_LDO10CTRL1 = 73, + MAX77686_REG_LDO11CTRL1 = 74, + MAX77686_REG_LDO12CTRL1 = 75, + MAX77686_REG_LDO13CTRL1 = 76, + MAX77686_REG_LDO14CTRL1 = 77, + MAX77686_REG_LDO15CTRL1 = 78, + MAX77686_REG_LDO16CTRL1 = 79, + MAX77686_REG_LDO17CTRL1 = 80, + MAX77686_REG_LDO18CTRL1 = 81, + MAX77686_REG_LDO19CTRL1 = 82, + MAX77686_REG_LDO20CTRL1 = 83, + MAX77686_REG_LDO21CTRL1 = 84, + MAX77686_REG_LDO22CTRL1 = 85, + MAX77686_REG_LDO23CTRL1 = 86, + MAX77686_REG_LDO24CTRL1 = 87, + MAX77686_REG_LDO25CTRL1 = 88, + MAX77686_REG_LDO26CTRL1 = 89, + MAX77686_REG_LDO1CTRL2 = 96, + MAX77686_REG_LDO2CTRL2 = 97, + MAX77686_REG_LDO3CTRL2 = 98, + MAX77686_REG_LDO4CTRL2 = 99, + MAX77686_REG_LDO5CTRL2 = 100, + MAX77686_REG_LDO6CTRL2 = 101, + MAX77686_REG_LDO7CTRL2 = 102, + MAX77686_REG_LDO8CTRL2 = 103, + MAX77686_REG_LDO9CTRL2 = 104, + MAX77686_REG_LDO10CTRL2 = 105, + MAX77686_REG_LDO11CTRL2 = 106, + MAX77686_REG_LDO12CTRL2 = 107, + MAX77686_REG_LDO13CTRL2 = 108, + MAX77686_REG_LDO14CTRL2 = 109, + MAX77686_REG_LDO15CTRL2 = 110, + MAX77686_REG_LDO16CTRL2 = 111, + MAX77686_REG_LDO17CTRL2 = 112, + MAX77686_REG_LDO18CTRL2 = 113, + MAX77686_REG_LDO19CTRL2 = 114, + MAX77686_REG_LDO20CTRL2 = 115, + MAX77686_REG_LDO21CTRL2 = 116, + MAX77686_REG_LDO22CTRL2 = 117, + MAX77686_REG_LDO23CTRL2 = 118, + MAX77686_REG_LDO24CTRL2 = 119, + MAX77686_REG_LDO25CTRL2 = 120, + MAX77686_REG_LDO26CTRL2 = 121, + MAX77686_REG_BBAT_CHG = 126, + MAX77686_REG_32KHZ = 127, + MAX77686_REG_PMIC_END = 128, }; -struct vm_stack { - struct callback_head rcu; - struct vm_struct *stack_vm_area; +enum max77802_rtc_reg { + MAX77802_RTC_INT = 192, + MAX77802_RTC_INTM = 193, + MAX77802_RTC_CONTROLM = 194, + MAX77802_RTC_CONTROL = 195, + MAX77802_RTC_UPDATE0 = 196, + MAX77802_RTC_UPDATE1 = 197, + MAX77802_WTSR_SMPL_CNTL = 198, + MAX77802_RTC_SEC = 199, + MAX77802_RTC_MIN = 200, + MAX77802_RTC_HOUR = 201, + MAX77802_RTC_WEEKDAY = 202, + MAX77802_RTC_MONTH = 203, + MAX77802_RTC_YEAR = 204, + MAX77802_RTC_MONTHDAY = 205, + MAX77802_RTC_AE1 = 206, + MAX77802_ALARM1_SEC = 207, + MAX77802_ALARM1_MIN = 208, + MAX77802_ALARM1_HOUR = 209, + MAX77802_ALARM1_WEEKDAY = 210, + MAX77802_ALARM1_MONTH = 211, + MAX77802_ALARM1_YEAR = 212, + MAX77802_ALARM1_DATE = 213, + MAX77802_RTC_AE2 = 214, + MAX77802_ALARM2_SEC = 215, + MAX77802_ALARM2_MIN = 216, + MAX77802_ALARM2_HOUR = 217, + MAX77802_ALARM2_WEEKDAY = 218, + MAX77802_ALARM2_MONTH = 219, + MAX77802_ALARM2_YEAR = 220, + MAX77802_ALARM2_DATE = 221, + MAX77802_RTC_END = 223, }; -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 max77686_dev { + struct device *dev; + struct i2c_client *i2c; + unsigned long type; + struct regmap *regmap; + struct regmap_irq_chip_data *irq_data; + int irq; + struct mutex irqlock; + int irq_masks_cur[3]; + int irq_masks_cache[3]; }; -struct kernel_clone_args { - u64 flags; - int __attribute__((btf_type_tag("user"))) *pidfd; - int __attribute__((btf_type_tag("user"))) *child_tid; - int __attribute__((btf_type_tag("user"))) *parent_tid; - const char *name; - int exit_signal; - u32 kthread: 1; - u32 io_thread: 1; - u32 user_worker: 1; - u32 no_files: 1; - unsigned long stack; - unsigned long stack_size; - unsigned long tls; - pid_t *set_tid; - size_t set_tid_size; - int cgroup; - int idle; - int (*fn)(void *); - void *fn_arg; - struct cgroup *cgrp; - struct css_set *cset; - long: 32; +struct syscon { + struct device_node *np; + struct regmap *regmap; + struct reset_control *reset; + struct list_head list; }; -struct trace_event_data_offsets_task_newtask {}; - -struct trace_event_data_offsets_task_rename {}; - -struct multiprocess_signals { - sigset_t signal; - struct hlist_node node; +struct syscon_platform_data { + const char *label; }; -typedef int (*proc_visitor)(struct task_struct *, void *); - -struct k_itimer; +struct mv_host_priv; -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 *); +struct mv_hw_ops { + void (*phy_errata)(struct mv_host_priv *, void *, unsigned int); + void (*enable_leds)(struct mv_host_priv *, void *); + void (*read_preamp)(struct mv_host_priv *, int, void *); + int (*reset_hc)(struct ata_host *, void *, unsigned int); + void (*reset_flash)(struct mv_host_priv *, void *); + void (*reset_bus)(struct ata_host *, void *); }; -enum alarmtimer_restart { - ALARMTIMER_NORESTART = 0, - ALARMTIMER_RESTART = 1, +struct mv_port_signal { + u32 amps; + u32 pre; }; -enum alarmtimer_type { - ALARM_REALTIME = 0, - ALARM_BOOTTIME = 1, - ALARM_NUMTYPE = 2, - ALARM_REALTIME_FREEZER = 3, - ALARM_BOOTTIME_FREEZER = 4, +struct mv_host_priv { + u32 hp_flags; + unsigned int board_idx; + u32 main_irq_mask; + struct mv_port_signal signal[8]; + const struct mv_hw_ops *ops; + int n_ports; + void *base; + void *main_irq_cause_addr; + void *main_irq_mask_addr; + u32 irq_cause_offset; + u32 irq_mask_offset; + u32 unmask_all_irqs; + struct clk *clk; + struct clk **port_clks; + struct phy **port_phys; + struct dma_pool *crqb_pool; + struct dma_pool *crpb_pool; + struct dma_pool *sg_tbl_pool; }; -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; +enum { + MV_PRIMARY_BAR = 0, + MV_IO_BAR = 2, + MV_MISC_BAR = 3, + MV_MAJOR_REG_AREA_SZ = 65536, + MV_MINOR_REG_AREA_SZ = 8192, + COAL_CLOCKS_PER_USEC = 150, + MAX_COAL_TIME_THRESHOLD = 16777215, + MAX_COAL_IO_COUNT = 255, + MV_PCI_REG_BASE = 0, + COAL_REG_BASE = 98304, + IRQ_COAL_CAUSE = 98312, + ALL_PORTS_COAL_IRQ = 16, + IRQ_COAL_IO_THRESHOLD = 98508, + IRQ_COAL_TIME_THRESHOLD = 98512, + TRAN_COAL_CAUSE_LO = 98440, + TRAN_COAL_CAUSE_HI = 98444, + SATAHC0_REG_BASE = 131072, + FLASH_CTL = 66668, + GPIO_PORT_CTL = 66800, + RESET_CFG = 98520, + MV_PCI_REG_SZ = 65536, + MV_SATAHC_REG_SZ = 65536, + MV_SATAHC_ARBTR_REG_SZ = 8192, + MV_PORT_REG_SZ = 8192, + MV_MAX_Q_DEPTH = 32, + MV_MAX_Q_DEPTH_MASK = 31, + MV_CRQB_Q_SZ = 1024, + MV_CRPB_Q_SZ = 256, + MV_MAX_SG_CT = 256, + MV_SG_TBL_SZ = 4096, + MV_PORT_HC_SHIFT = 2, + MV_PORTS_PER_HC = 4, + MV_PORT_MASK = 3, + MV_FLAG_DUAL_HC = 1073741824, + MV_COMMON_FLAGS = 514, + MV_GEN_I_FLAGS = 578, + MV_GEN_II_FLAGS = 656898, + MV_GEN_IIE_FLAGS = 919042, + CRQB_FLAG_READ = 1, + CRQB_TAG_SHIFT = 1, + CRQB_IOID_SHIFT = 6, + CRQB_PMP_SHIFT = 12, + CRQB_HOSTQ_SHIFT = 17, + CRQB_CMD_ADDR_SHIFT = 8, + CRQB_CMD_CS = 4096, + CRQB_CMD_LAST = 32768, + CRPB_FLAG_STATUS_SHIFT = 8, + CRPB_IOID_SHIFT_6 = 5, + CRPB_IOID_SHIFT_7 = 7, + EPRD_FLAG_END_OF_TBL = -2147483648, + MV_PCI_COMMAND = 3072, + MV_PCI_COMMAND_MWRCOM = 16, + MV_PCI_COMMAND_MRDTRIG = 128, + PCI_MAIN_CMD_STS = 3376, + STOP_PCI_MASTER = 4, + PCI_MASTER_EMPTY = 8, + GLOB_SFT_RST = 16, + MV_PCI_MODE = 3328, + MV_PCI_MODE_MASK = 48, + MV_PCI_EXP_ROM_BAR_CTL = 3372, + MV_PCI_DISC_TIMER = 3332, + MV_PCI_MSI_TRIGGER = 3128, + MV_PCI_SERR_MASK = 3112, + MV_PCI_XBAR_TMOUT = 7428, + MV_PCI_ERR_LOW_ADDRESS = 7488, + MV_PCI_ERR_HIGH_ADDRESS = 7492, + MV_PCI_ERR_ATTRIBUTE = 7496, + MV_PCI_ERR_COMMAND = 7504, + PCI_IRQ_CAUSE = 7512, + PCI_IRQ_MASK = 7516, + PCI_UNMASK_ALL_IRQS = 8388607, + PCIE_IRQ_CAUSE = 6400, + PCIE_IRQ_MASK = 6416, + PCIE_UNMASK_ALL_IRQS = 1034, + PCI_HC_MAIN_IRQ_CAUSE = 7520, + PCI_HC_MAIN_IRQ_MASK = 7524, + SOC_HC_MAIN_IRQ_CAUSE = 131104, + SOC_HC_MAIN_IRQ_MASK = 131108, + ERR_IRQ = 1, + DONE_IRQ = 2, + HC0_IRQ_PEND = 511, + HC_SHIFT = 9, + DONE_IRQ_0_3 = 170, + DONE_IRQ_4_7 = 87040, + PCI_ERR = 262144, + TRAN_COAL_LO_DONE = 524288, + TRAN_COAL_HI_DONE = 1048576, + PORTS_0_3_COAL_DONE = 256, + PORTS_4_7_COAL_DONE = 131072, + ALL_PORTS_COAL_DONE = 2097152, + GPIO_INT = 4194304, + SELF_INT = 8388608, + TWSI_INT = 16777216, + HC_MAIN_RSVD = -33554432, + HC_MAIN_RSVD_5 = -524288, + HC_MAIN_RSVD_SOC = -320, + HC_CFG = 0, + HC_IRQ_CAUSE = 20, + DMA_IRQ = 1, + HC_COAL_IRQ = 16, + DEV_IRQ = 256, + HC_IRQ_COAL_IO_THRESHOLD = 12, + HC_IRQ_COAL_TIME_THRESHOLD = 16, + SOC_LED_CTRL = 44, + SOC_LED_CTRL_BLINK = 1, + SOC_LED_CTRL_ACT_PRESENCE = 4, + SHD_BLK = 256, + SHD_CTL_AST = 32, + SATA_STATUS = 768, + SATA_ACTIVE = 848, + FIS_IRQ_CAUSE = 868, + FIS_IRQ_CAUSE_AN = 512, + LTMODE = 780, + LTMODE_BIT8 = 256, + PHY_MODE2 = 816, + PHY_MODE3 = 784, + PHY_MODE4 = 788, + PHY_MODE4_CFG_MASK = 3, + PHY_MODE4_CFG_VALUE = 1, + PHY_MODE4_RSVD_ZEROS = 1575223290, + PHY_MODE4_RSVD_ONES = 5, + SATA_IFCTL = 836, + SATA_TESTCTL = 840, + SATA_IFSTAT = 844, + VENDOR_UNIQUE_FIS = 860, + FISCFG = 864, + FISCFG_WAIT_DEV_ERR = 256, + FISCFG_SINGLE_SYNC = 65536, + PHY_MODE9_GEN2 = 920, + PHY_MODE9_GEN1 = 924, + PHYCFG_OFS = 928, + MV5_PHY_MODE = 116, + MV5_LTMODE = 48, + MV5_PHY_CTL = 12, + SATA_IFCFG = 80, + LP_PHY_CTL = 88, + LP_PHY_CTL_PIN_PU_PLL = 1, + LP_PHY_CTL_PIN_PU_RX = 2, + LP_PHY_CTL_PIN_PU_TX = 4, + LP_PHY_CTL_GEN_TX_3G = 32, + LP_PHY_CTL_GEN_RX_3G = 512, + MV_M2_PREAMP_MASK = 2016, + EDMA_CFG = 0, + EDMA_CFG_Q_DEPTH = 31, + EDMA_CFG_NCQ = 32, + EDMA_CFG_NCQ_GO_ON_ERR = 16384, + EDMA_CFG_RD_BRST_EXT = 2048, + EDMA_CFG_WR_BUFF_LEN = 8192, + EDMA_CFG_EDMA_FBS = 65536, + EDMA_CFG_FBS = 67108864, + EDMA_ERR_IRQ_CAUSE = 8, + EDMA_ERR_IRQ_MASK = 12, + EDMA_ERR_D_PAR = 1, + EDMA_ERR_PRD_PAR = 2, + EDMA_ERR_DEV = 4, + EDMA_ERR_DEV_DCON = 8, + EDMA_ERR_DEV_CON = 16, + EDMA_ERR_SERR = 32, + EDMA_ERR_SELF_DIS = 128, + EDMA_ERR_SELF_DIS_5 = 256, + EDMA_ERR_BIST_ASYNC = 256, + EDMA_ERR_TRANS_IRQ_7 = 256, + EDMA_ERR_CRQB_PAR = 512, + EDMA_ERR_CRPB_PAR = 1024, + EDMA_ERR_INTRL_PAR = 2048, + EDMA_ERR_IORDY = 4096, + EDMA_ERR_LNK_CTRL_RX = 122880, + EDMA_ERR_LNK_CTRL_RX_0 = 8192, + EDMA_ERR_LNK_CTRL_RX_1 = 16384, + EDMA_ERR_LNK_CTRL_RX_2 = 32768, + EDMA_ERR_LNK_CTRL_RX_3 = 65536, + EDMA_ERR_LNK_DATA_RX = 1966080, + EDMA_ERR_LNK_CTRL_TX = 65011712, + EDMA_ERR_LNK_CTRL_TX_0 = 2097152, + EDMA_ERR_LNK_CTRL_TX_1 = 4194304, + EDMA_ERR_LNK_CTRL_TX_2 = 8388608, + EDMA_ERR_LNK_CTRL_TX_3 = 16777216, + EDMA_ERR_LNK_CTRL_TX_4 = 33554432, + EDMA_ERR_LNK_DATA_TX = 2080374784, + EDMA_ERR_TRANS_PROTO = -2147483648, + EDMA_ERR_OVERRUN_5 = 32, + EDMA_ERR_UNDERRUN_5 = 64, + EDMA_ERR_IRQ_TRANSIENT = 65101824, + EDMA_EH_FREEZE = -65102149, + EDMA_EH_FREEZE_5 = 8059, + EDMA_REQ_Q_BASE_HI = 16, + EDMA_REQ_Q_IN_PTR = 20, + EDMA_REQ_Q_OUT_PTR = 24, + EDMA_REQ_Q_PTR_SHIFT = 5, + EDMA_RSP_Q_BASE_HI = 28, + EDMA_RSP_Q_IN_PTR = 32, + EDMA_RSP_Q_OUT_PTR = 36, + EDMA_RSP_Q_PTR_SHIFT = 3, + EDMA_CMD = 40, + EDMA_EN = 1, + EDMA_DS = 2, + EDMA_RESET = 4, + EDMA_STATUS = 48, + EDMA_STATUS_CACHE_EMPTY = 64, + EDMA_STATUS_IDLE = 128, + EDMA_IORDY_TMOUT = 52, + EDMA_ARB_CFG = 56, + EDMA_HALTCOND = 96, + EDMA_UNKNOWN_RSVD = 108, + BMDMA_CMD = 548, + BMDMA_STATUS = 552, + BMDMA_PRD_LOW = 556, + BMDMA_PRD_HIGH = 560, + MV_HP_FLAG_MSI = 1, + MV_HP_ERRATA_50XXB0 = 2, + MV_HP_ERRATA_50XXB2 = 4, + MV_HP_ERRATA_60X1B2 = 8, + MV_HP_ERRATA_60X1C0 = 16, + MV_HP_GEN_I = 64, + MV_HP_GEN_II = 128, + MV_HP_GEN_IIE = 256, + MV_HP_PCIE = 512, + MV_HP_CUT_THROUGH = 1024, + MV_HP_FLAG_SOC = 2048, + MV_HP_QUIRK_LED_BLINK_EN = 4096, + MV_HP_FIX_LP_PHY_CTL = 8192, + MV_PP_FLAG_EDMA_EN = 1, + MV_PP_FLAG_NCQ_EN = 2, + MV_PP_FLAG_FBS_EN = 4, + MV_PP_FLAG_DELAYED_EH = 8, + MV_PP_FLAG_FAKE_ATA_BUSY = 16, }; -struct cpu_timer { - struct timerqueue_node node; - struct timerqueue_head *head; - struct pid *pid; - struct list_head elist; - int firing; - struct task_struct __attribute__((btf_type_tag("rcu"))) *handling; +enum { + MV_DMA_BOUNDARY = 65535, + EDMA_REQ_Q_BASE_LO_MASK = 4294966272, + EDMA_RSP_Q_BASE_LO_MASK = 4294967040, }; -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; - long: 32; - 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; - long: 32; - union { - struct { - struct hrtimer timer; - } real; - struct cpu_timer cpu; - struct { - struct alarm alarmtimer; - } alarm; - } it; - struct callback_head rcu; +enum hsm_task_states { + HSM_ST_IDLE = 0, + HSM_ST_FIRST = 1, + HSM_ST = 2, + HSM_ST_LAST = 3, + HSM_ST_ERR = 4, }; -struct sigqueue { - struct list_head list; - int flags; - kernel_siginfo_t info; - struct ucounts *ucounts; +enum chip_type { + chip_504x = 0, + chip_508x = 1, + chip_5080 = 2, + chip_604x = 3, + chip_608x = 4, + chip_6042 = 5, + chip_7042 = 6, + chip_soc = 7, }; -struct posix_clock_desc { - struct file *fp; - struct posix_clock *clk; +struct mv_crqb_iie { + __le32 addr; + __le32 addr_hi; + __le32 flags; + __le32 len; + __le32 ata_cmd[4]; }; -enum bpf_access_type { - BPF_READ = 1, - BPF_WRITE = 2, +struct mv_cached_regs { + u32 fiscfg; + u32 ltmode; + u32 haltcond; + u32 unknown_rsvd; }; -struct bpf_insn_access_aux; - -struct bpf_verifier_log; +struct mv_crqb; -struct bpf_reg_state; +struct mv_crpb; -struct bpf_verifier_ops { - const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *); - bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *); - int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *); - int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *); - u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); - int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int); -}; +struct mv_sg; -struct bpf_id_pair { - u32 old; - u32 cur; +struct mv_port_priv { + struct mv_crqb *crqb; + dma_addr_t crqb_dma; + struct mv_crpb *crpb; + dma_addr_t crpb_dma; + struct mv_sg *sg_tbl[32]; + dma_addr_t sg_tbl_dma[32]; + unsigned int req_idx; + unsigned int resp_idx; + u32 pp_flags; + struct mv_cached_regs cached; + unsigned int delayed_eh_pmp_map; }; -struct bpf_idmap { - u32 tmp_id_gen; - struct bpf_id_pair map[600]; +struct mv_crqb { + __le32 sg_addr; + __le32 sg_addr_hi; + __le16 ctrl_flags; + __le16 ata_cmd[11]; }; -struct bpf_idset { - u32 count; - u32 ids[600]; +struct mv_crpb { + __le16 id; + __le16 flags; + __le32 tmstmp; }; -struct bpf_verifier_log { - u64 start_pos; - u64 end_pos; - char __attribute__((btf_type_tag("user"))) *ubuf; - u32 level; - u32 len_total; - u32 len_max; - char kbuf[1024]; +struct mv_sg { + __le32 addr; + __le32 flags_size; + __le32 addr_hi; + __le32 reserved; }; -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 mv_sata_platform_data { + int n_ports; }; -struct backtrack_state { - struct bpf_verifier_env *env; - u32 frame; - u32 reg_masks[8]; - u64 stack_masks[8]; +enum bch_ecc { + BCH4_ECC = 0, + BCH8_ECC = 1, + BCH16_ECC = 2, }; -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; - long: 32; - struct bpf_verifier_log log; - struct bpf_subprog_info subprog_info[257]; - union { - struct bpf_idmap idmap_scratch; - struct bpf_idset idset_scratch; - }; - struct { - int *insn_state; - int *insn_stack; - int cur_stack; - } cfg; - struct backtrack_state bt; - 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; - long: 32; - u64 scratched_stack_slots; - u64 prev_log_pos; - u64 prev_insn_print_pos; - char tmp_str_buf[320]; +struct elm_registers { + u32 elm_irqenable; + u32 elm_sysconfig; + u32 elm_location_config; + u32 elm_page_ctrl; + u32 elm_syndrome_fragment_6[8]; + u32 elm_syndrome_fragment_5[8]; + u32 elm_syndrome_fragment_4[8]; + u32 elm_syndrome_fragment_3[8]; + u32 elm_syndrome_fragment_2[8]; + u32 elm_syndrome_fragment_1[8]; + u32 elm_syndrome_fragment_0[8]; }; -struct bpf_active_lock { - void *ptr; - u32 id; +struct elm_info { + struct device *dev; + void *elm_base; + struct completion elm_completion; + struct list_head list; + enum bch_ecc bch_type; + struct elm_registers elm_regs; + int ecc_steps; + int ecc_syndrome_size; }; -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; +struct elm_errorvec { + bool error_reported; + bool error_uncorrectable; + int error_count; + int error_loc[16]; }; -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 hspi_priv { + void *addr; + struct spi_controller *ctlr; + struct device *dev; + struct clk *clk; }; -enum bpf_iter_state { - BPF_ITER_STATE_INVALID = 0, - BPF_ITER_STATE_ACTIVE = 1, - BPF_ITER_STATE_DRAINED = 2, +struct mdio_board_entry { + struct list_head list; + struct mdio_board_info board_info; }; -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 swmii_regs { + u16 bmsr; + u16 lpa; + u16 lpagb; + u16 estat; }; -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; - }; - long: 32; - 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; - long: 32; +enum { + SWMII_SPEED_10 = 0, + SWMII_SPEED_100 = 1, + SWMII_SPEED_1000 = 2, + SWMII_DUPLEX_HALF = 0, + SWMII_DUPLEX_FULL = 1, }; -struct bpf_reference_state; +struct sfp; -struct bpf_stack_state; +struct sfp_socket_ops; -struct bpf_func_state { - struct bpf_reg_state regs[11]; - int callsite; - u32 frameno; - u32 subprogno; - u32 async_entry_cnt; - bool in_callback_fn; - long: 32; - 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; - long: 32; -}; +struct sfp_quirk; -struct bpf_reference_state { - int id; - int insn_idx; - int callback_ref; +struct sfp_bus { + struct kref kref; + struct list_head node; + const struct fwnode_handle *fwnode; + const struct sfp_socket_ops *socket_ops; + struct device *sfp_dev; + struct sfp *sfp; + const struct sfp_quirk *sfp_quirk; + const struct sfp_upstream_ops *upstream_ops; + void *upstream; + struct phy_device *phydev; + bool registered; + bool started; }; -struct bpf_stack_state { - struct bpf_reg_state spilled_ptr; - u8 slot_type[8]; +struct sfp_socket_ops { + void (*attach)(struct sfp *); + void (*detach)(struct sfp *); + void (*start)(struct sfp *); + void (*stop)(struct sfp *); + void (*set_signal_rate)(struct sfp *, unsigned int); + int (*module_info)(struct sfp *, struct ethtool_modinfo *); + int (*module_eeprom)(struct sfp *, struct ethtool_eeprom *, u8 *); + int (*module_eeprom_by_page)(struct sfp *, const struct ethtool_module_eeprom *, struct netlink_ext_ack *); }; -struct bpf_idx_pair { - u32 prev_idx; - u32 idx; +struct sfp_quirk { + const char *vendor; + const char *part; + void (*modes)(const struct sfp_eeprom_id *, unsigned long *, unsigned long *); + void (*fixup)(struct sfp *); }; -struct bpf_verifier_state_list { - struct bpf_verifier_state state; - struct bpf_verifier_state_list *next; - int miss_cnt; - int hit_cnt; +enum { + SFF8024_ID_UNK = 0, + SFF8024_ID_SFF_8472 = 2, + SFF8024_ID_SFP = 3, + SFF8024_ID_DWDM_SFP = 11, + SFF8024_ID_QSFP_8438 = 12, + SFF8024_ID_QSFP_8436_8636 = 13, + SFF8024_ID_QSFP28_8636 = 17, + SFF8024_ENCODING_UNSPEC = 0, + SFF8024_ENCODING_8B10B = 1, + SFF8024_ENCODING_4B5B = 2, + SFF8024_ENCODING_NRZ = 3, + SFF8024_ENCODING_8472_MANCHESTER = 4, + SFF8024_ENCODING_8472_SONET = 5, + SFF8024_ENCODING_8472_64B66B = 6, + SFF8024_ENCODING_8436_MANCHESTER = 6, + SFF8024_ENCODING_8436_SONET = 4, + SFF8024_ENCODING_8436_64B66B = 5, + SFF8024_ENCODING_256B257B = 7, + SFF8024_ENCODING_PAM4 = 8, + SFF8024_CONNECTOR_UNSPEC = 0, + SFF8024_CONNECTOR_SC = 1, + SFF8024_CONNECTOR_FIBERJACK = 6, + SFF8024_CONNECTOR_LC = 7, + SFF8024_CONNECTOR_MT_RJ = 8, + SFF8024_CONNECTOR_MU = 9, + SFF8024_CONNECTOR_SG = 10, + SFF8024_CONNECTOR_OPTICAL_PIGTAIL = 11, + SFF8024_CONNECTOR_MPO_1X12 = 12, + SFF8024_CONNECTOR_MPO_2X16 = 13, + SFF8024_CONNECTOR_HSSDC_II = 32, + SFF8024_CONNECTOR_COPPER_PIGTAIL = 33, + SFF8024_CONNECTOR_RJ45 = 34, + SFF8024_CONNECTOR_NOSEPARATE = 35, + SFF8024_CONNECTOR_MXC_2X16 = 36, + SFF8024_ECC_UNSPEC = 0, + SFF8024_ECC_100G_25GAUI_C2M_AOC = 1, + SFF8024_ECC_100GBASE_SR4_25GBASE_SR = 2, + SFF8024_ECC_100GBASE_LR4_25GBASE_LR = 3, + SFF8024_ECC_100GBASE_ER4_25GBASE_ER = 4, + SFF8024_ECC_100GBASE_SR10 = 5, + SFF8024_ECC_100GBASE_CR4 = 11, + SFF8024_ECC_25GBASE_CR_S = 12, + SFF8024_ECC_25GBASE_CR_N = 13, + SFF8024_ECC_10GBASE_T_SFI = 22, + SFF8024_ECC_10GBASE_T_SR = 28, + SFF8024_ECC_5GBASE_T = 29, + SFF8024_ECC_2_5GBASE_T = 30, }; -struct bpf_loop_inline_state { - unsigned int initialized: 1; - unsigned int fit_for_inline: 1; - u32 callback_subprogno; +enum vcap_user { + VCAP_USER_PTP = 0, + VCAP_USER_MRP = 1, + VCAP_USER_CFM = 2, + VCAP_USER_VLAN = 3, + VCAP_USER_QOS = 4, + VCAP_USER_VCAP_UTIL = 5, + VCAP_USER_TC = 6, + VCAP_USER_TC_EXTRA = 7, + __VCAP_USER_AFTER_LAST = 8, + VCAP_USER_MAX = 7, }; -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; - }; - long: 32; - union { - u64 obj_new_size; - u64 insert_off; - }; - struct btf_struct_meta *kptr_struct_meta; - long: 32; - 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; +enum vcap_keyfield_set { + VCAP_KFS_NO_VALUE = 0, + VCAP_KFS_5TUPLE_IP4 = 1, + VCAP_KFS_5TUPLE_IP6 = 2, + VCAP_KFS_7TUPLE = 3, + VCAP_KFS_ARP = 4, + VCAP_KFS_DBL_VID = 5, + VCAP_KFS_DMAC_VID = 6, + VCAP_KFS_ETAG = 7, + VCAP_KFS_IP4_OTHER = 8, + VCAP_KFS_IP4_TCP_UDP = 9, + VCAP_KFS_IP4_VID = 10, + VCAP_KFS_IP6_OTHER = 11, + VCAP_KFS_IP6_STD = 12, + VCAP_KFS_IP6_TCP_UDP = 13, + VCAP_KFS_IP6_VID = 14, + VCAP_KFS_IP_7TUPLE = 15, + VCAP_KFS_ISDX = 16, + VCAP_KFS_LL_FULL = 17, + VCAP_KFS_MAC_ETYPE = 18, + VCAP_KFS_MAC_LLC = 19, + VCAP_KFS_MAC_SNAP = 20, + VCAP_KFS_NORMAL = 21, + VCAP_KFS_NORMAL_5TUPLE_IP4 = 22, + VCAP_KFS_NORMAL_7TUPLE = 23, + VCAP_KFS_NORMAL_IP6 = 24, + VCAP_KFS_OAM = 25, + VCAP_KFS_PURE_5TUPLE_IP4 = 26, + VCAP_KFS_RT = 27, + VCAP_KFS_SMAC_SIP4 = 28, + VCAP_KFS_SMAC_SIP6 = 29, + VCAP_KFS_VID = 30, }; -struct bpf_kfunc_desc { - struct btf_func_model func_model; - u32 func_id; - s32 imm; - u16 offset; - unsigned long addr; +enum vcap_actionfield_set { + VCAP_AFS_NO_VALUE = 0, + VCAP_AFS_BASE_TYPE = 1, + VCAP_AFS_CLASSIFICATION = 2, + VCAP_AFS_CLASS_REDUCED = 3, + VCAP_AFS_ES0 = 4, + VCAP_AFS_FULL = 5, + VCAP_AFS_S1 = 6, + VCAP_AFS_SMAC_SIP = 7, + VCAP_AFS_VID = 8, }; -struct bpf_kfunc_desc_tab { - struct bpf_kfunc_desc descs[256]; - u32 nr_descs; +enum vcap_rule_error { + VCAP_ERR_NONE = 0, + VCAP_ERR_NO_ADMIN = 1, + VCAP_ERR_NO_NETDEV = 2, + VCAP_ERR_NO_KEYSET_MATCH = 3, + VCAP_ERR_NO_ACTIONSET_MATCH = 4, + VCAP_ERR_NO_PORT_KEYSET_MATCH = 5, }; -struct bpf_kfunc_btf { - struct btf *btf; - struct module *module; - u16 offset; +enum vcap_type { + VCAP_TYPE_ES0 = 0, + VCAP_TYPE_ES2 = 1, + VCAP_TYPE_IS0 = 2, + VCAP_TYPE_IS1 = 3, + VCAP_TYPE_IS2 = 4, + VCAP_TYPE_MAX = 5, }; -struct bpf_kfunc_btf_tab { - struct bpf_kfunc_btf descs[256]; - u32 nr_descs; +enum vcap_key_field { + VCAP_KF_NO_VALUE = 0, + VCAP_KF_8021BR_ECID_BASE = 1, + VCAP_KF_8021BR_ECID_EXT = 2, + VCAP_KF_8021BR_E_TAGGED = 3, + VCAP_KF_8021BR_GRP = 4, + VCAP_KF_8021BR_IGR_ECID_BASE = 5, + VCAP_KF_8021BR_IGR_ECID_EXT = 6, + VCAP_KF_8021CB_R_TAGGED_IS = 7, + VCAP_KF_8021Q_DEI0 = 8, + VCAP_KF_8021Q_DEI1 = 9, + VCAP_KF_8021Q_DEI2 = 10, + VCAP_KF_8021Q_DEI_CLS = 11, + VCAP_KF_8021Q_PCP0 = 12, + VCAP_KF_8021Q_PCP1 = 13, + VCAP_KF_8021Q_PCP2 = 14, + VCAP_KF_8021Q_PCP_CLS = 15, + VCAP_KF_8021Q_TPID = 16, + VCAP_KF_8021Q_TPID0 = 17, + VCAP_KF_8021Q_TPID1 = 18, + VCAP_KF_8021Q_TPID2 = 19, + VCAP_KF_8021Q_VID0 = 20, + VCAP_KF_8021Q_VID1 = 21, + VCAP_KF_8021Q_VID2 = 22, + VCAP_KF_8021Q_VID_CLS = 23, + VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS = 24, + VCAP_KF_8021Q_VLAN_TAGGED_IS = 25, + VCAP_KF_8021Q_VLAN_TAGS = 26, + VCAP_KF_ACL_GRP_ID = 27, + VCAP_KF_ARP_ADDR_SPACE_OK_IS = 28, + VCAP_KF_ARP_LEN_OK_IS = 29, + VCAP_KF_ARP_OPCODE = 30, + VCAP_KF_ARP_OPCODE_UNKNOWN_IS = 31, + VCAP_KF_ARP_PROTO_SPACE_OK_IS = 32, + VCAP_KF_ARP_SENDER_MATCH_IS = 33, + VCAP_KF_ARP_TGT_MATCH_IS = 34, + VCAP_KF_COSID_CLS = 35, + VCAP_KF_ES0_ISDX_KEY_ENA = 36, + VCAP_KF_ETYPE = 37, + VCAP_KF_ETYPE_LEN_IS = 38, + VCAP_KF_HOST_MATCH = 39, + VCAP_KF_IF_EGR_PORT_MASK = 40, + VCAP_KF_IF_EGR_PORT_MASK_RNG = 41, + VCAP_KF_IF_EGR_PORT_NO = 42, + VCAP_KF_IF_IGR_PORT = 43, + VCAP_KF_IF_IGR_PORT_MASK = 44, + VCAP_KF_IF_IGR_PORT_MASK_L3 = 45, + VCAP_KF_IF_IGR_PORT_MASK_RNG = 46, + VCAP_KF_IF_IGR_PORT_MASK_SEL = 47, + VCAP_KF_IF_IGR_PORT_SEL = 48, + VCAP_KF_IP4_IS = 49, + VCAP_KF_IP_MC_IS = 50, + VCAP_KF_IP_PAYLOAD_5TUPLE = 51, + VCAP_KF_IP_PAYLOAD_S1_IP6 = 52, + VCAP_KF_IP_SNAP_IS = 53, + VCAP_KF_ISDX_CLS = 54, + VCAP_KF_ISDX_GT0_IS = 55, + VCAP_KF_L2_BC_IS = 56, + VCAP_KF_L2_DMAC = 57, + VCAP_KF_L2_FRM_TYPE = 58, + VCAP_KF_L2_FWD_IS = 59, + VCAP_KF_L2_LLC = 60, + VCAP_KF_L2_MAC = 61, + VCAP_KF_L2_MC_IS = 62, + VCAP_KF_L2_PAYLOAD0 = 63, + VCAP_KF_L2_PAYLOAD1 = 64, + VCAP_KF_L2_PAYLOAD2 = 65, + VCAP_KF_L2_PAYLOAD_ETYPE = 66, + VCAP_KF_L2_SMAC = 67, + VCAP_KF_L2_SNAP = 68, + VCAP_KF_L3_DIP_EQ_SIP_IS = 69, + VCAP_KF_L3_DPL_CLS = 70, + VCAP_KF_L3_DSCP = 71, + VCAP_KF_L3_DST_IS = 72, + VCAP_KF_L3_FRAGMENT = 73, + VCAP_KF_L3_FRAGMENT_TYPE = 74, + VCAP_KF_L3_FRAG_INVLD_L4_LEN = 75, + VCAP_KF_L3_FRAG_OFS_GT0 = 76, + VCAP_KF_L3_IP4_DIP = 77, + VCAP_KF_L3_IP4_SIP = 78, + VCAP_KF_L3_IP6_DIP = 79, + VCAP_KF_L3_IP6_DIP_MSB = 80, + VCAP_KF_L3_IP6_SIP = 81, + VCAP_KF_L3_IP6_SIP_MSB = 82, + VCAP_KF_L3_IP_PROTO = 83, + VCAP_KF_L3_OPTIONS_IS = 84, + VCAP_KF_L3_PAYLOAD = 85, + VCAP_KF_L3_RT_IS = 86, + VCAP_KF_L3_TOS = 87, + VCAP_KF_L3_TTL_GT0 = 88, + VCAP_KF_L4_1588_DOM = 89, + VCAP_KF_L4_1588_VER = 90, + VCAP_KF_L4_ACK = 91, + VCAP_KF_L4_DPORT = 92, + VCAP_KF_L4_FIN = 93, + VCAP_KF_L4_PAYLOAD = 94, + VCAP_KF_L4_PSH = 95, + VCAP_KF_L4_RNG = 96, + VCAP_KF_L4_RST = 97, + VCAP_KF_L4_SEQUENCE_EQ0_IS = 98, + VCAP_KF_L4_SPORT = 99, + VCAP_KF_L4_SPORT_EQ_DPORT_IS = 100, + VCAP_KF_L4_SYN = 101, + VCAP_KF_L4_URG = 102, + VCAP_KF_LOOKUP_FIRST_IS = 103, + VCAP_KF_LOOKUP_GEN_IDX = 104, + VCAP_KF_LOOKUP_GEN_IDX_SEL = 105, + VCAP_KF_LOOKUP_INDEX = 106, + VCAP_KF_LOOKUP_PAG = 107, + VCAP_KF_MIRROR_PROBE = 108, + VCAP_KF_OAM_CCM_CNTS_EQ0 = 109, + VCAP_KF_OAM_DETECTED = 110, + VCAP_KF_OAM_FLAGS = 111, + VCAP_KF_OAM_MEL_FLAGS = 112, + VCAP_KF_OAM_MEPID = 113, + VCAP_KF_OAM_OPCODE = 114, + VCAP_KF_OAM_VER = 115, + VCAP_KF_OAM_Y1731_IS = 116, + VCAP_KF_PDU_TYPE = 117, + VCAP_KF_PROT_ACTIVE = 118, + VCAP_KF_RTP_ID = 119, + VCAP_KF_RT_FRMID = 120, + VCAP_KF_RT_TYPE = 121, + VCAP_KF_RT_VLAN_IDX = 122, + VCAP_KF_TCP_IS = 123, + VCAP_KF_TCP_UDP_IS = 124, + VCAP_KF_TYPE = 125, }; -struct bpf_insn_access_aux { - enum bpf_reg_type reg_type; - union { - int ctx_field_size; - struct { - struct btf *btf; - u32 btf_id; - }; - }; - struct bpf_verifier_log *log; +enum flow_dissector_key_id { + FLOW_DISSECTOR_KEY_CONTROL = 0, + FLOW_DISSECTOR_KEY_BASIC = 1, + FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, + FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, + FLOW_DISSECTOR_KEY_PORTS = 4, + FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, + FLOW_DISSECTOR_KEY_ICMP = 6, + FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, + FLOW_DISSECTOR_KEY_TIPC = 8, + FLOW_DISSECTOR_KEY_ARP = 9, + FLOW_DISSECTOR_KEY_VLAN = 10, + FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, + FLOW_DISSECTOR_KEY_GRE_KEYID = 12, + FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, + FLOW_DISSECTOR_KEY_ENC_KEYID = 14, + FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, + FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, + FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, + FLOW_DISSECTOR_KEY_ENC_PORTS = 18, + FLOW_DISSECTOR_KEY_MPLS = 19, + FLOW_DISSECTOR_KEY_TCP = 20, + FLOW_DISSECTOR_KEY_IP = 21, + FLOW_DISSECTOR_KEY_CVLAN = 22, + FLOW_DISSECTOR_KEY_ENC_IP = 23, + FLOW_DISSECTOR_KEY_ENC_OPTS = 24, + FLOW_DISSECTOR_KEY_META = 25, + FLOW_DISSECTOR_KEY_CT = 26, + FLOW_DISSECTOR_KEY_HASH = 27, + FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28, + FLOW_DISSECTOR_KEY_PPPOE = 29, + FLOW_DISSECTOR_KEY_L2TPV3 = 30, + FLOW_DISSECTOR_KEY_CFM = 31, + FLOW_DISSECTOR_KEY_IPSEC = 32, + FLOW_DISSECTOR_KEY_MAX = 33, }; -struct bpf_reg_types { - const enum bpf_reg_type types[10]; - u32 *btf_id; +enum vcap_bit { + VCAP_BIT_ANY = 0, + VCAP_BIT_0 = 1, + VCAP_BIT_1 = 2, }; -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 vcap_arp_opcode { + VCAP_ARP_OP_RESERVED = 0, + VCAP_ARP_OP_REQUEST = 1, + VCAP_ARP_OP_REPLY = 2, }; -enum btf_func_linkage { - BTF_FUNC_STATIC = 0, - BTF_FUNC_GLOBAL = 1, - BTF_FUNC_EXTERN = 2, +enum vcap_is2_arp_opcode { + VCAP_IS2_ARP_REQUEST = 0, + VCAP_IS2_ARP_REPLY = 1, + VCAP_IS2_RARP_REQUEST = 2, + VCAP_IS2_RARP_REPLY = 3, }; -enum special_kfunc_type { - KF_bpf_obj_new_impl = 0, - KF_bpf_obj_drop_impl = 1, - KF_bpf_refcount_acquire_impl = 2, - KF_bpf_list_push_front_impl = 3, - KF_bpf_list_push_back_impl = 4, - KF_bpf_list_pop_front = 5, - KF_bpf_list_pop_back = 6, - KF_bpf_cast_to_kern_ctx = 7, - KF_bpf_rdonly_cast = 8, - KF_bpf_rcu_read_lock = 9, - KF_bpf_rcu_read_unlock = 10, - KF_bpf_rbtree_remove = 11, - KF_bpf_rbtree_add_impl = 12, - KF_bpf_rbtree_first = 13, - KF_bpf_dynptr_from_skb = 14, - KF_bpf_dynptr_from_xdp = 15, - KF_bpf_dynptr_slice = 16, - KF_bpf_dynptr_slice_rdwr = 17, - KF_bpf_dynptr_clone = 18, -}; +struct flow_dissector_key_eth_addrs; -enum bpf_stack_slot_type { - STACK_INVALID = 0, - STACK_SPILL = 1, - STACK_MISC = 2, - STACK_ZERO = 3, - STACK_DYNPTR = 4, - STACK_ITER = 5, +struct flow_match_eth_addrs { + struct flow_dissector_key_eth_addrs *key; + struct flow_dissector_key_eth_addrs *mask; }; -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 flow_dissector_key_eth_addrs { + unsigned char dst[6]; + unsigned char src[6]; }; -enum bpf_access_src { - ACCESS_DIRECT = 1, - ACCESS_HELPER = 2, +struct vcap_rule { + int vcap_chain_id; + enum vcap_user user; + u16 priority; + u32 id; + u64 cookie; + struct list_head keyfields; + struct list_head actionfields; + enum vcap_keyfield_set keyset; + enum vcap_actionfield_set actionset; + enum vcap_rule_error exterr; + long: 32; + u64 client; }; -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 vcap_u48_key { + u8 value[6]; + u8 mask[6]; }; -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 flow_match_ipv4_addrs { + struct flow_dissector_key_ipv4_addrs *key; + struct flow_dissector_key_ipv4_addrs *mask; }; -enum { - DISCOVERED = 16, - EXPLORED = 32, - FALLTHROUGH = 1, - BRANCH = 2, +struct flow_match_ipv6_addrs { + struct flow_dissector_key_ipv6_addrs *key; + struct flow_dissector_key_ipv6_addrs *mask; }; -enum { - DONE_EXPLORING = 0, - KEEP_EXPLORING = 1, +struct vcap_u128_key { + u8 value[16]; + u8 mask[16]; }; -enum reg_arg_type { - SRC_OP = 0, - DST_OP = 1, - DST_OP_NO_MARK = 2, +struct flow_match_ports { + struct flow_dissector_key_ports *key; + struct flow_dissector_key_ports *mask; }; -enum { - REASON_BOUNDS = -1, - REASON_TYPE = -2, - REASON_PATHS = -3, - REASON_LIMIT = -4, - REASON_STACK = -5, +struct flow_match_vlan { + struct flow_dissector_key_vlan *key; + struct flow_dissector_key_vlan *mask; }; -enum kfunc_ptr_arg_type { - KF_ARG_PTR_TO_CTX = 0, - KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, - KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2, - KF_ARG_PTR_TO_DYNPTR = 3, - KF_ARG_PTR_TO_ITER = 4, - KF_ARG_PTR_TO_LIST_HEAD = 5, - KF_ARG_PTR_TO_LIST_NODE = 6, - KF_ARG_PTR_TO_BTF_ID = 7, - KF_ARG_PTR_TO_MEM = 8, - KF_ARG_PTR_TO_MEM_SIZE = 9, - KF_ARG_PTR_TO_CALLBACK = 10, - KF_ARG_PTR_TO_RB_ROOT = 11, - KF_ARG_PTR_TO_RB_NODE = 12, +struct flow_dissector_key_tcp; + +struct flow_match_tcp { + struct flow_dissector_key_tcp *key; + struct flow_dissector_key_tcp *mask; }; -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, +struct flow_dissector_key_tcp { + __be16 flags; }; -enum sk_action { - SK_DROP = 0, - SK_PASS = 1, +struct flow_dissector_key_arp; + +struct flow_match_arp { + struct flow_dissector_key_arp *key; + struct flow_dissector_key_arp *mask; }; -enum { - AT_PKT_END = -1, - BEYOND_PKT_END = -2, +struct flow_dissector_key_arp { + __u32 sip; + __u32 tip; + __u8 op; + unsigned char sha[6]; + unsigned char tha[6]; }; -enum { - BPF_MAX_LOOPS = 8388608, +struct flow_dissector_key_ip; + +struct flow_match_ip { + struct flow_dissector_key_ip *key; + struct flow_dissector_key_ip *mask; }; -enum bpf_jit_poke_reason { - BPF_POKE_REASON_TAIL_CALL = 0, +struct flow_dissector_key_ip { + __u8 tos; + __u8 ttl; }; -struct bpf_iter_meta__safe_trusted { - struct seq_file *seq; +struct vcap_admin; + +struct vcap_tc_flower_parse_usage { + struct flow_cls_offload *fco; + struct flow_rule *frule; + struct vcap_rule *vrule; + struct vcap_admin *admin; + u16 l3_proto; + u8 l4_proto; + u16 tpid; + unsigned long long used_keys; }; -struct bpf_iter__task__safe_trusted { - struct bpf_iter_meta *meta; - struct task_struct *task; +struct vcap_cache_data { + u32 *keystream; + u32 *maskstream; + u32 *actionstream; + u32 counter; + bool sticky; }; -struct linux_binprm__safe_trusted { - struct file *file; +struct vcap_admin { + struct list_head list; + struct list_head rules; + struct list_head enabled; + struct mutex lock; + enum vcap_type vtype; + int vinst; + int first_cid; + int last_cid; + int tgt_inst; + int lookups; + int lookups_per_instance; + int last_valid_addr; + int first_valid_addr; + int last_used_addr; + bool w32be; + bool ingress; + struct vcap_cache_data cache; }; -struct file__safe_trusted { - struct inode *f_inode; +struct stmmac_regs_off { + u32 ptp_off; + u32 mmc_off; }; -struct dentry__safe_trusted { - struct inode *d_inode; +struct stmmac_hwif_entry { + bool gmac; + bool gmac4; + bool xgmac; + u32 min_id; + u32 dev_id; + const struct stmmac_regs_off regs; + const void *desc; + const void *dma; + const void *mac; + const void *hwtimestamp; + const void *mode; + const void *tc; + const void *mmc; + int (*setup)(struct stmmac_priv *); + int (*quirks)(struct stmmac_priv *); }; -struct socket__safe_trusted { - struct sock *sk; +struct cpdma_control_info { + u32 reg; + u32 shift; + u32 mask; + int access; }; -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; +enum cpdma_state { + CPDMA_STATE_IDLE = 0, + CPDMA_STATE_ACTIVE = 1, + CPDMA_STATE_TEARDOWN = 2, }; -struct cgroup__safe_rcu { - struct kernfs_node *kn; +enum cpdma_control { + CPDMA_TX_RLIM = 0, + CPDMA_CMD_IDLE = 1, + CPDMA_COPY_ERROR_FRAMES = 2, + CPDMA_RX_OFF_LEN_UPDATE = 3, + CPDMA_RX_OWNERSHIP_FLIP = 4, + CPDMA_TX_PRIO_FIXED = 5, + CPDMA_STAT_IDLE = 6, + CPDMA_STAT_TX_ERR_CHAN = 7, + CPDMA_STAT_TX_ERR_CODE = 8, + CPDMA_STAT_RX_ERR_CHAN = 9, + CPDMA_STAT_RX_ERR_CODE = 10, + CPDMA_RX_BUFFER_OFFSET = 11, }; -struct css_set__safe_rcu { - struct cgroup *dfl_cgrp; +struct cpdma_desc { + u32 hw_next; + u32 hw_buffer; + u32 hw_len; + u32 hw_mode; + void *sw_token; + u32 sw_buffer; + u32 sw_len; }; -struct mm_struct__safe_rcu_or_null { - struct file __attribute__((btf_type_tag("rcu"))) *exe_file; +struct cpdma_params { + struct device *dev; + void *dmaregs; + void *txhdp; + void *rxhdp; + void *txcp; + void *rxcp; + void *rxthresh; + void *rxfree; + int num_chan; + bool has_soft_reset; + int min_packet_size; + dma_addr_t desc_mem_phys; + dma_addr_t desc_hw_addr; + int desc_mem_size; + int desc_align; + u32 bus_freq_mhz; + u32 descs_pool_size; + bool has_ext_regs; }; -struct sk_buff__safe_rcu_or_null { - struct sock *sk; +struct cpdma_desc_pool; + +struct cpdma_ctlr { + enum cpdma_state state; + struct cpdma_params params; + struct device *dev; + struct cpdma_desc_pool *pool; + spinlock_t lock; + struct cpdma_chan *channels[64]; + int chan_num; + int num_rx_desc; + int num_tx_desc; }; -struct request_sock__safe_rcu_or_null { - struct sock *sk; +struct cpdma_desc_pool { + phys_addr_t phys; + dma_addr_t hw_addr; + void *iomap; + void *cpumap; + int desc_size; + int mem_size; + int num_desc; + struct device *dev; + struct gen_pool *gen_pool; }; -struct btf_member { - __u32 name_off; - __u32 type; - __u32 offset; +struct cpdma_chan_stats { + u32 head_enqueue; + u32 tail_enqueue; + u32 pad_enqueue; + u32 misqueued; + u32 desc_alloc_fail; + u32 pad_alloc_fail; + u32 runt_receive_buff; + u32 runt_transmit_buff; + u32 empty_dequeue; + u32 busy_dequeue; + u32 good_dequeue; + u32 requeue; + u32 teardown_dequeue; }; -struct btf_var_secinfo { - __u32 type; - __u32 offset; - __u32 size; +struct cpdma_chan { + struct cpdma_desc *head; + struct cpdma_desc *tail; + void *hdp; + void *cp; + void *rxfree; + enum cpdma_state state; + struct cpdma_ctlr *ctlr; + int chan_num; + spinlock_t lock; + int count; + u32 desc_num; + u32 mask; + cpdma_handler_fn handler; + enum dma_data_direction dir; + struct cpdma_chan_stats stats; + int int_set; + int int_clear; + int td; + int weight; + u32 rate_factor; + u32 rate; }; -struct btf_param { - __u32 name_off; - __u32 type; +struct submit_info { + struct cpdma_chan *chan; + int directed; + void *token; + void *data_virt; + dma_addr_t data_dma; + int len; }; -struct btf_array { - __u32 type; - __u32 index_type; - __u32 nelems; +struct ax88172a_private { + struct mii_bus *mdio; + struct phy_device *phydev; + char phy_name[20]; + u16 phy_addr; + u16 oldmode; + int use_embdphy; + struct asix_rx_fixup_info rx_fixup_info; }; -struct bpf_iter; +struct ehci_tt { + u16 bandwidth[8]; + struct list_head tt_list; + struct list_head ps_list; + struct usb_tt *usb_tt; + int tt_port; +}; -typedef void (*bpf_insn_print_t)(void *, const char *, ...); +struct ehci_iso_packet { + u64 bufp; + __le32 transaction; + u8 cross; + u32 buf1; + long: 32; +}; -typedef const char * (*bpf_insn_revmap_call_t)(void *, const struct bpf_insn *); +struct ehci_iso_sched { + struct list_head td_list; + unsigned int span; + unsigned int first_packet; + struct ehci_iso_packet packet[0]; +}; -typedef const char * (*bpf_insn_print_imm_t)(void *, const struct bpf_insn *, __u64); +struct ci_hdrc_pci { + struct platform_device *ci; + struct platform_device *phy; +}; -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 focaltech_finger_state { + bool active; + bool valid; + unsigned int x; + unsigned int y; }; -struct btf_id_set { - u32 cnt; - u32 ids[0]; +struct focaltech_hw_state { + struct focaltech_finger_state fingers[5]; + unsigned int width; + bool pressed; }; -typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); +struct focaltech_data { + unsigned int x_max; + unsigned int y_max; + struct focaltech_hw_state state; +}; -struct bpf_core_relo { - __u32 insn_off; - __u32 type_id; - __u32 access_str_off; - enum bpf_core_relo_kind kind; +struct ac100_clkout { + struct clk_hw hw; + struct regmap *regmap; + u8 offset; }; -struct bpf_core_ctx { - struct bpf_verifier_log *log; - const struct btf *btf; +struct ac100_rtc_dev { + struct rtc_device *rtc; + struct device *dev; + struct regmap *regmap; + int irq; + unsigned long alarm; + struct clk_hw *rtc_32k_clk; + struct ac100_clkout clks[3]; + struct clk_hw_onecell_data *clk_data; }; -struct bpf_struct_ops { - const struct bpf_verifier_ops *verifier_ops; - int (*init)(struct btf *); - int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *); - int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); - int (*reg)(void *); - void (*unreg)(void *); - int (*update)(void *, void *); - int (*validate)(void *); - 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; +struct ac100_dev { + struct device *dev; + struct regmap *regmap; }; -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; - long: 32; - struct { - u64 value; - bool found; - long: 32; - } arg_constant; - struct btf *arg_btf; - u32 arg_btf_id; - bool arg_owning_ref; - struct { - struct btf_field *field; - } arg_list_head; - struct { - struct btf_field *field; - } arg_rbtree_root; - struct { - enum bpf_dynptr_type type; - u32 id; - u32 ref_obj_id; - } initialized_dynptr; - struct { - u8 spi; - u8 frameno; - } iter; - long: 32; - u64 mem_size; +enum of_reconfig_change { + OF_RECONFIG_NO_CHANGE = 0, + OF_RECONFIG_CHANGE_ADD = 1, + OF_RECONFIG_CHANGE_REMOVE = 2, }; -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; - long: 32; - 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 of_reconfig_data { + struct device_node *dn; + struct property *prop; + struct property *old_prop; }; -struct bpf_attach_target_info { - struct btf_func_model fmodel; - long tgt_addr; - struct module *tgt_mod; - const char *tgt_name; - const struct btf_type *tgt_type; +enum s3c24xx_i2c_state { + STATE_IDLE___2 = 0, + STATE_START = 1, + STATE_READ = 2, + STATE_WRITE = 3, + STATE_STOP = 4, }; -struct bpf_sanitize_info { - struct bpf_insn_aux_data aux; - bool mask_to_left; +struct s3c2410_platform_i2c; + +struct s3c24xx_i2c { + wait_queue_head_t wait; + kernel_ulong_t quirks; + struct i2c_msg *msg; + unsigned int msg_num; + unsigned int msg_idx; + unsigned int msg_ptr; + unsigned int tx_setup; + unsigned int irq; + enum s3c24xx_i2c_state state; + unsigned long clkrate; + void *regs; + struct clk *clk; + struct device *dev; long: 32; + struct i2c_adapter adap; + struct s3c2410_platform_i2c *pdata; + struct gpio_desc *gpios[2]; + struct pinctrl *pctrl; + struct regmap *sysreg; + unsigned int sys_i2c_cfg; }; -typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); - -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 s3c2410_platform_i2c { + int bus_num; + unsigned int flags; + unsigned int slave_addr; + unsigned long frequency; + unsigned int sda_delay; + void (*cfg_gpio)(struct platform_device *); }; -typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *); +struct posix_clock; -typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int); +struct posix_clock_context; -typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int); +struct posix_clock_operations { + struct module *owner; + int (*clock_adjtime)(struct posix_clock *, struct __kernel_timex *); + int (*clock_gettime)(struct posix_clock *, struct timespec64 *); + int (*clock_getres)(struct posix_clock *, struct timespec64 *); + int (*clock_settime)(struct posix_clock *, const struct timespec64 *); + long (*ioctl)(struct posix_clock_context *, unsigned int, unsigned long); + int (*open)(struct posix_clock_context *, fmode_t); + __poll_t (*poll)(struct posix_clock_context *, struct file *, poll_table *); + int (*release)(struct posix_clock_context *); + ssize_t (*read)(struct posix_clock_context *, uint, char __attribute__((btf_type_tag("user"))) *, size_t); +}; -typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int); +struct posix_clock { + struct posix_clock_operations ops; + struct cdev cdev; + struct device *dev; + struct rw_semaphore rwsem; + bool zombie; +}; -typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int); +struct posix_clock_context { + struct posix_clock *clk; + void *private_clkdata; +}; -typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lock *); +struct ptp_extts_event { + struct ptp_clock_time t; + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; +}; -typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lock *); +struct debugfs_u32_array { + u32 *array; + u32 n_elements; +}; -typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lock *); +struct timestamp_event_queue { + struct ptp_extts_event buf[128]; + int head; + int tail; + spinlock_t lock; + struct list_head qlist; + unsigned long *mask; + struct dentry *debugfs_instance; + struct debugfs_u32_array dfs_bitmap; + long: 32; +}; -typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lock *); +struct kthread_delayed_work { + struct kthread_work work; + struct timer_list timer; +}; -typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lock *); +struct pps_device; -typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lock *); +struct ptp_clock { + struct posix_clock clock; + long: 32; + struct device dev; + struct ptp_clock_info *info; + dev_t devid; + int index; + struct pps_device *pps_source; + long dialed_frequency; + struct list_head tsevqs; + spinlock_t tsevqs_lock; + struct mutex pincfg_mux; + wait_queue_head_t tsev_wq; + int defunct; + struct device_attribute *pin_dev_attr; + struct attribute **pin_attr; + struct attribute_group pin_attr_group; + const struct attribute_group *pin_attr_groups[2]; + struct kthread_worker *kworker; + struct kthread_delayed_work aux_work; + unsigned int max_vclocks; + unsigned int n_vclocks; + int *vclock_index; + struct mutex n_vclocks_mux; + bool is_virtual_clock; + bool has_cycles; + struct dentry *debugfs_root; + long: 32; +}; -typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lock *, struct file_lock *); +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 file_lock_list_struct { - spinlock_t lock; - struct hlist_head hlist; +struct pps_ktime { + __s64 sec; + __s32 nsec; + __u32 flags; }; -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 pps_kparams { + int api_version; + int mode; + struct pps_ktime assert_off_tu; + struct pps_ktime clear_off_tu; }; -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 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; long: 32; }; -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 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; + long: 32; }; -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 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; + long: 32; }; -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 hwmon_type_attr_list { + const u32 *attrs; + size_t n_attrs; }; -struct flock { - short l_type; - short l_whence; - __kernel_off_t l_start; - __kernel_off_t l_len; - __kernel_pid_t l_pid; +enum hwmon_in_attributes { + hwmon_in_enable = 0, + hwmon_in_input = 1, + hwmon_in_min = 2, + hwmon_in_max = 3, + hwmon_in_lcrit = 4, + hwmon_in_crit = 5, + hwmon_in_average = 6, + hwmon_in_lowest = 7, + hwmon_in_highest = 8, + hwmon_in_reset_history = 9, + hwmon_in_label = 10, + hwmon_in_alarm = 11, + hwmon_in_min_alarm = 12, + hwmon_in_max_alarm = 13, + hwmon_in_lcrit_alarm = 14, + hwmon_in_crit_alarm = 15, + hwmon_in_rated_min = 16, + hwmon_in_rated_max = 17, + hwmon_in_beep = 18, }; -struct flock64 { - short l_type; - short l_whence; - long: 32; - __kernel_loff_t l_start; - __kernel_loff_t l_len; - __kernel_pid_t l_pid; - long: 32; +enum hwmon_curr_attributes { + hwmon_curr_enable = 0, + hwmon_curr_input = 1, + hwmon_curr_min = 2, + hwmon_curr_max = 3, + hwmon_curr_lcrit = 4, + hwmon_curr_crit = 5, + hwmon_curr_average = 6, + hwmon_curr_lowest = 7, + hwmon_curr_highest = 8, + hwmon_curr_reset_history = 9, + hwmon_curr_label = 10, + hwmon_curr_alarm = 11, + hwmon_curr_min_alarm = 12, + hwmon_curr_max_alarm = 13, + hwmon_curr_lcrit_alarm = 14, + hwmon_curr_crit_alarm = 15, + hwmon_curr_rated_min = 16, + hwmon_curr_rated_max = 17, + hwmon_curr_beep = 18, }; -struct trace_event_data_offsets_locks_get_lock_context {}; - -struct trace_event_data_offsets_filelock_lock {}; +struct power_supply_hwmon { + struct power_supply *psy; + unsigned long *props; +}; -struct trace_event_data_offsets_filelock_lease {}; +typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long); -struct trace_event_data_offsets_generic_add_lease {}; +typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long); -struct trace_event_data_offsets_leases_conflict {}; +typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *); -struct locks_iterator { - int li_cpu; - long: 32; - loff_t li_pos; +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, }; -struct orlov_stats { - __u64 free_clusters; - __u32 free_inodes; - __u32 used_dirs; +enum hwmon_energy_attributes { + hwmon_energy_enable = 0, + hwmon_energy_input = 1, + hwmon_energy_label = 2, }; -struct dx_hash_info { - u32 hash; - u32 minor_hash; - int hash_version; - u32 *seed; +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, }; -struct squashfs_page_actor { - union { - void **buffer; - struct page **page; - }; - void *pageaddr; - void *tmp_buffer; - void * (*squashfs_first_page)(struct squashfs_page_actor *); - void * (*squashfs_next_page)(struct squashfs_page_actor *); - void (*squashfs_finish_page)(struct squashfs_page_actor *); - struct page *last_page; - int pages; - int length; - int next_page; - int alloc_buffer; - int returned_pages; - unsigned long next_index; +enum hwmon_fan_attributes { + hwmon_fan_enable = 0, + hwmon_fan_input = 1, + hwmon_fan_label = 2, + hwmon_fan_min = 3, + hwmon_fan_max = 4, + hwmon_fan_div = 5, + hwmon_fan_pulses = 6, + hwmon_fan_target = 7, + hwmon_fan_alarm = 8, + hwmon_fan_min_alarm = 9, + hwmon_fan_max_alarm = 10, + hwmon_fan_fault = 11, + hwmon_fan_beep = 12, }; -typedef void (*btf_trace_nfs_set_inode_stale)(void *, const struct inode *); - -typedef void (*btf_trace_nfs_refresh_inode_enter)(void *, const struct inode *); +struct trace_event_raw_hwmon_attr_class { + struct trace_entry ent; + int index; + u32 __data_loc_attr_name; + long val; + char __data[0]; +}; -typedef void (*btf_trace_nfs_refresh_inode_exit)(void *, const struct inode *, int); +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]; +}; -typedef void (*btf_trace_nfs_revalidate_inode_enter)(void *, const struct inode *); +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; + long: 32; +}; -typedef void (*btf_trace_nfs_revalidate_inode_exit)(void *, const struct inode *, int); +struct hwmon_thermal_data { + struct list_head node; + struct device *dev; + int index; + struct thermal_zone_device *tzd; +}; -typedef void (*btf_trace_nfs_invalidate_mapping_enter)(void *, const struct inode *); +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]; +}; -typedef void (*btf_trace_nfs_invalidate_mapping_exit)(void *, const struct inode *, int); +struct trace_event_data_offsets_hwmon_attr_class { + u32 attr_name; +}; -typedef void (*btf_trace_nfs_getattr_enter)(void *, const struct inode *); +struct trace_event_data_offsets_hwmon_attr_show_string { + u32 attr_name; + u32 label; +}; -typedef void (*btf_trace_nfs_getattr_exit)(void *, const struct inode *, int); +struct cpufreq_policy; -typedef void (*btf_trace_nfs_setattr_enter)(void *, const struct inode *); +struct od_ops { + unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int); +}; -typedef void (*btf_trace_nfs_setattr_exit)(void *, const struct inode *, int); +struct cpufreq_cpuinfo { + unsigned int max_freq; + unsigned int min_freq; + unsigned int transition_latency; +}; -typedef void (*btf_trace_nfs_writeback_inode_enter)(void *, const struct inode *); +enum cpufreq_table_sorting { + CPUFREQ_TABLE_UNSORTED = 0, + CPUFREQ_TABLE_SORTED_ASCENDING = 1, + CPUFREQ_TABLE_SORTED_DESCENDING = 2, +}; -typedef void (*btf_trace_nfs_writeback_inode_exit)(void *, const struct inode *, int); +struct cpufreq_governor; -typedef void (*btf_trace_nfs_fsync_enter)(void *, const struct inode *); +struct cpufreq_frequency_table; -typedef void (*btf_trace_nfs_fsync_exit)(void *, const struct inode *, int); +struct cpufreq_stats; -typedef void (*btf_trace_nfs_access_enter)(void *, const struct inode *); +struct cpufreq_policy { + cpumask_var_t cpus; + cpumask_var_t related_cpus; + cpumask_var_t real_cpus; + unsigned int shared_type; + unsigned int cpu; + struct clk *clk; + struct cpufreq_cpuinfo cpuinfo; + unsigned int min; + unsigned int max; + unsigned int cur; + unsigned int suspend_freq; + unsigned int policy; + unsigned int last_policy; + struct cpufreq_governor *governor; + void *governor_data; + char last_governor[16]; + struct work_struct update; + struct freq_constraints constraints; + struct freq_qos_request *min_freq_req; + struct freq_qos_request *max_freq_req; + struct cpufreq_frequency_table *freq_table; + enum cpufreq_table_sorting freq_table_sorted; + struct list_head policy_list; + struct kobject kobj; + struct completion kobj_unregister; + struct rw_semaphore rwsem; + bool fast_switch_possible; + bool fast_switch_enabled; + bool strict_target; + bool efficiencies_available; + unsigned int transition_delay_us; + bool dvfs_possible_from_any_cpu; + bool boost_enabled; + unsigned int cached_target_freq; + unsigned int cached_resolved_idx; + bool transition_ongoing; + spinlock_t transition_lock; + wait_queue_head_t transition_wait; + struct task_struct *transition_task; + struct cpufreq_stats *stats; + void *driver_data; + struct thermal_cooling_device *cdev; + struct notifier_block nb_min; + struct notifier_block nb_max; +}; -typedef void (*btf_trace_nfs_set_cache_invalid)(void *, const struct inode *, int); +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; +}; -typedef void (*btf_trace_nfs_readdir_force_readdirplus)(void *, const struct inode *); +struct cpufreq_frequency_table { + unsigned int flags; + unsigned int driver_data; + unsigned int frequency; +}; -typedef void (*btf_trace_nfs_readdir_cache_fill_done)(void *, const struct inode *, int); +struct dbs_data; -typedef void (*btf_trace_nfs_readdir_uncached_done)(void *, const struct inode *, int); +struct policy_dbs_info; -typedef void (*btf_trace_nfs_access_exit)(void *, const struct inode *, unsigned int, unsigned int, int); +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 *); +}; -typedef void (*btf_trace_nfs_size_truncate)(void *, const struct inode *, loff_t); +struct gov_attr_set { + struct kobject kobj; + struct list_head policy_list; + struct mutex update_lock; + int usage_count; +}; -typedef void (*btf_trace_nfs_size_wcc)(void *, const struct inode *, loff_t); +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; +}; -typedef void (*btf_trace_nfs_size_update)(void *, const struct inode *, loff_t); +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; + long: 32; +}; -typedef void (*btf_trace_nfs_size_grow)(void *, const struct inode *, loff_t); +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); +}; -typedef void (*btf_trace_nfs_readdir_invalidate_cache_range)(void *, const struct inode *, loff_t, loff_t); +enum { + OD_NORMAL_SAMPLE = 0, + OD_SUB_SAMPLE = 1, +}; -typedef void (*btf_trace_nfs_readdir_cache_fill)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); +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; +}; -typedef void (*btf_trace_nfs_readdir_uncached)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); +struct od_dbs_tuners { + unsigned int powersave_bias; +}; -typedef void (*btf_trace_nfs_lookup_enter)(void *, const struct inode *, const struct dentry *, unsigned int); +struct ti_cpufreq_data; -typedef void (*btf_trace_nfs_lookup_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); +struct ti_cpufreq_soc_data { + const char * const *reg_names; + unsigned long (*efuse_xlate)(struct ti_cpufreq_data *, unsigned long); + unsigned long efuse_fallback; + unsigned long efuse_offset; + unsigned long efuse_mask; + unsigned long efuse_shift; + unsigned long rev_offset; + bool multi_regulator; +}; -typedef void (*btf_trace_nfs_lookup_revalidate_enter)(void *, const struct inode *, const struct dentry *, unsigned int); +struct ti_cpufreq_data { + struct device *cpu_dev; + struct device_node *opp_node; + struct regmap *syscon; + const struct ti_cpufreq_soc_data *soc_data; +}; -typedef void (*btf_trace_nfs_lookup_revalidate_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); +struct mmc_pwrseq_ops { + void (*pre_power_on)(struct mmc_host *); + void (*post_power_on)(struct mmc_host *); + void (*power_off)(struct mmc_host *); + void (*reset)(struct mmc_host *); +}; -typedef void (*btf_trace_nfs_readdir_lookup)(void *, const struct inode *, const struct dentry *, unsigned int); +struct mmc_pwrseq { + const struct mmc_pwrseq_ops *ops; + struct device *dev; + struct list_head pwrseq_node; + struct module *owner; +}; -typedef void (*btf_trace_nfs_readdir_lookup_revalidate_failed)(void *, const struct inode *, const struct dentry *, unsigned int); +struct mmc_pwrseq_emmc { + struct mmc_pwrseq pwrseq; + struct notifier_block reset_nb; + struct gpio_desc *reset_gpio; +}; -typedef void (*btf_trace_nfs_readdir_lookup_revalidate)(void *, const struct inode *, const struct dentry *, unsigned int, int); +struct renesas_sdhi_quirks { + bool hs400_disabled; + bool hs400_4taps; + bool fixed_addr_mode; + bool dma_one_rx_only; + bool manual_tap_correction; + bool old_info1_layout; + u32 hs400_bad_taps; + const u8 (*hs400_calib_table)[32]; +}; -typedef void (*btf_trace_nfs_atomic_open_enter)(void *, const struct inode *, const struct nfs_open_context *, unsigned int); +struct tmio_mmc_host; -typedef void (*btf_trace_nfs_atomic_open_exit)(void *, const struct inode *, const struct nfs_open_context *, unsigned int, int); +struct tmio_mmc_data; -typedef void (*btf_trace_nfs_create_enter)(void *, const struct inode *, const struct dentry *, unsigned int); +struct tmio_mmc_dma_ops { + void (*start)(struct tmio_mmc_host *, struct mmc_data *); + void (*enable)(struct tmio_mmc_host *, bool); + void (*request)(struct tmio_mmc_host *, struct tmio_mmc_data *); + void (*release)(struct tmio_mmc_host *); + void (*abort)(struct tmio_mmc_host *); + void (*dataend)(struct tmio_mmc_host *); + void (*end)(struct tmio_mmc_host *); + bool (*dma_irq)(struct tmio_mmc_host *); +}; -typedef void (*btf_trace_nfs_create_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); +struct tmio_mmc_host { + void *ctl; + struct mmc_command *cmd; + struct mmc_request *mrq; + struct mmc_data *data; + struct mmc_host *mmc; + struct mmc_host_ops ops; + void (*set_pwr)(struct platform_device *, int); + struct scatterlist *sg_ptr; + struct scatterlist *sg_orig; + unsigned int sg_len; + unsigned int sg_off; + unsigned int bus_shift; + struct platform_device *pdev; + struct tmio_mmc_data *pdata; + bool dma_on; + struct dma_chan *chan_rx; + struct dma_chan *chan_tx; + struct tasklet_struct dma_issue; + struct scatterlist bounce_sg; + u8 *bounce_buf; + struct delayed_work delayed_reset_work; + struct work_struct done; + u32 sdcard_irq_mask; + u32 sdio_irq_mask; + unsigned int clk_cache; + u32 sdcard_irq_setbit_mask; + u32 sdcard_irq_mask_all; + spinlock_t lock; + unsigned long last_req_ts; + struct mutex ios_lock; + bool native_hotplug; + bool sdio_irq_enabled; + int (*clk_enable)(struct tmio_mmc_host *); + void (*set_clock)(struct tmio_mmc_host *, unsigned int); + void (*clk_disable)(struct tmio_mmc_host *); + int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); + int (*write16_hook)(struct tmio_mmc_host *, int); + void (*reset)(struct tmio_mmc_host *, bool); + bool (*check_retune)(struct tmio_mmc_host *, struct mmc_request *); + void (*fixup_request)(struct tmio_mmc_host *, struct mmc_request *); + unsigned int (*get_timeout_cycles)(struct tmio_mmc_host *); + const struct tmio_mmc_dma_ops *dma_ops; +}; -typedef void (*btf_trace_nfs_mknod_enter)(void *, const struct inode *, const struct dentry *); +struct tmio_mmc_data { + void *chan_priv_tx; + void *chan_priv_rx; + unsigned int hclk; + unsigned long capabilities; + unsigned long capabilities2; + unsigned long flags; + u32 ocr_mask; + dma_addr_t dma_rx_offset; + unsigned int max_blk_count; + unsigned short max_segs; + void (*set_pwr)(struct platform_device *, int); + void (*set_clk_div)(struct platform_device *, int); +}; -typedef void (*btf_trace_nfs_mknod_exit)(void *, const struct inode *, const struct dentry *, int); +struct renesas_sdhi_of_data; -typedef void (*btf_trace_nfs_mkdir_enter)(void *, const struct inode *, const struct dentry *); +struct renesas_sdhi_of_data_with_quirks { + const struct renesas_sdhi_of_data *of_data; + const struct renesas_sdhi_quirks *quirks; +}; -typedef void (*btf_trace_nfs_mkdir_exit)(void *, const struct inode *, const struct dentry *, int); +struct renesas_sdhi_scc; -typedef void (*btf_trace_nfs_rmdir_enter)(void *, const struct inode *, const struct dentry *); +struct renesas_sdhi_of_data { + unsigned long tmio_flags; + u32 tmio_ocr_mask; + unsigned long capabilities; + unsigned long capabilities2; + enum dma_slave_buswidth dma_buswidth; + dma_addr_t dma_rx_offset; + unsigned int bus_shift; + int scc_offset; + struct renesas_sdhi_scc *taps; + int taps_num; + unsigned int max_blk_count; + unsigned short max_segs; + unsigned long sdhi_flags; +}; -typedef void (*btf_trace_nfs_rmdir_exit)(void *, const struct inode *, const struct dentry *, int); +struct renesas_sdhi_scc { + unsigned long clk_rate; + u32 tap; + u32 tap_hs400_4tap; +}; -typedef void (*btf_trace_nfs_remove_enter)(void *, const struct inode *, const struct dentry *); +enum renesas_sdhi_dma_cookie { + COOKIE_UNMAPPED = 0, + COOKIE_PRE_MAPPED = 1, + COOKIE_MAPPED = 2, +}; -typedef void (*btf_trace_nfs_remove_exit)(void *, const struct inode *, const struct dentry *, int); +struct renesas_sdhi_dma { + unsigned long end_flags; + enum dma_slave_buswidth dma_buswidth; + bool (*filter)(struct dma_chan *, void *); + void (*enable)(struct tmio_mmc_host *, bool); + struct completion dma_dataend; + struct tasklet_struct dma_complete; +}; -typedef void (*btf_trace_nfs_unlink_enter)(void *, const struct inode *, const struct dentry *); +struct renesas_sdhi { + struct clk *clk; + struct clk *clkh; + struct clk *clk_cd; + struct tmio_mmc_data mmc_data; + struct renesas_sdhi_dma dma_priv; + const struct renesas_sdhi_quirks *quirks; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_default; + struct pinctrl_state *pins_uhs; + void *scc_ctl; + u32 scc_tappos; + u32 scc_tappos_hs400; + const u8 *adjust_hs400_calib_table; + bool needs_adjust_hs400; + unsigned long taps[1]; + unsigned long smpcmp[1]; + unsigned int tap_num; + unsigned int tap_set; + struct reset_control *rstc; +}; -typedef void (*btf_trace_nfs_unlink_exit)(void *, const struct inode *, const struct dentry *, int); +struct sdhci_iproc_data { + const struct sdhci_pltfm_data *pdata; + u32 caps; + u32 caps1; + u32 mmc_caps; + bool missing_caps; +}; -typedef void (*btf_trace_nfs_symlink_enter)(void *, const struct inode *, const struct dentry *); +struct sdhci_iproc_host { + const struct sdhci_iproc_data *data; + u32 shadow_cmd; + u32 shadow_blk; + bool is_cmd_shadowed; + bool is_blk_shadowed; +}; -typedef void (*btf_trace_nfs_symlink_exit)(void *, const struct inode *, const struct dentry *, int); +enum rpi_firmware_property_status { + RPI_FIRMWARE_STATUS_REQUEST = 0, + RPI_FIRMWARE_STATUS_SUCCESS = 2147483648, + RPI_FIRMWARE_STATUS_ERROR = 2147483649, +}; -typedef void (*btf_trace_nfs_link_enter)(void *, const struct inode *, const struct inode *, const struct dentry *); +enum rpi_firmware_property_tag { + RPI_FIRMWARE_PROPERTY_END = 0, + RPI_FIRMWARE_GET_FIRMWARE_REVISION = 1, + RPI_FIRMWARE_SET_CURSOR_INFO = 32784, + RPI_FIRMWARE_SET_CURSOR_STATE = 32785, + RPI_FIRMWARE_GET_BOARD_MODEL = 65537, + RPI_FIRMWARE_GET_BOARD_REVISION = 65538, + RPI_FIRMWARE_GET_BOARD_MAC_ADDRESS = 65539, + RPI_FIRMWARE_GET_BOARD_SERIAL = 65540, + RPI_FIRMWARE_GET_ARM_MEMORY = 65541, + RPI_FIRMWARE_GET_VC_MEMORY = 65542, + RPI_FIRMWARE_GET_CLOCKS = 65543, + RPI_FIRMWARE_GET_POWER_STATE = 131073, + RPI_FIRMWARE_GET_TIMING = 131074, + RPI_FIRMWARE_SET_POWER_STATE = 163841, + RPI_FIRMWARE_GET_CLOCK_STATE = 196609, + RPI_FIRMWARE_GET_CLOCK_RATE = 196610, + RPI_FIRMWARE_GET_VOLTAGE = 196611, + RPI_FIRMWARE_GET_MAX_CLOCK_RATE = 196612, + RPI_FIRMWARE_GET_MAX_VOLTAGE = 196613, + RPI_FIRMWARE_GET_TEMPERATURE = 196614, + RPI_FIRMWARE_GET_MIN_CLOCK_RATE = 196615, + RPI_FIRMWARE_GET_MIN_VOLTAGE = 196616, + RPI_FIRMWARE_GET_TURBO = 196617, + RPI_FIRMWARE_GET_MAX_TEMPERATURE = 196618, + RPI_FIRMWARE_GET_STC = 196619, + RPI_FIRMWARE_ALLOCATE_MEMORY = 196620, + RPI_FIRMWARE_LOCK_MEMORY = 196621, + RPI_FIRMWARE_UNLOCK_MEMORY = 196622, + RPI_FIRMWARE_RELEASE_MEMORY = 196623, + RPI_FIRMWARE_EXECUTE_CODE = 196624, + RPI_FIRMWARE_EXECUTE_QPU = 196625, + RPI_FIRMWARE_SET_ENABLE_QPU = 196626, + RPI_FIRMWARE_GET_DISPMANX_RESOURCE_MEM_HANDLE = 196628, + RPI_FIRMWARE_GET_EDID_BLOCK = 196640, + RPI_FIRMWARE_GET_CUSTOMER_OTP = 196641, + RPI_FIRMWARE_GET_DOMAIN_STATE = 196656, + RPI_FIRMWARE_GET_THROTTLED = 196678, + RPI_FIRMWARE_GET_CLOCK_MEASURED = 196679, + RPI_FIRMWARE_NOTIFY_REBOOT = 196680, + RPI_FIRMWARE_SET_CLOCK_STATE = 229377, + RPI_FIRMWARE_SET_CLOCK_RATE = 229378, + RPI_FIRMWARE_SET_VOLTAGE = 229379, + RPI_FIRMWARE_SET_TURBO = 229385, + RPI_FIRMWARE_SET_CUSTOMER_OTP = 229409, + RPI_FIRMWARE_SET_DOMAIN_STATE = 229424, + RPI_FIRMWARE_GET_GPIO_STATE = 196673, + RPI_FIRMWARE_SET_GPIO_STATE = 229441, + RPI_FIRMWARE_SET_SDHOST_CLOCK = 229442, + RPI_FIRMWARE_GET_GPIO_CONFIG = 196675, + RPI_FIRMWARE_SET_GPIO_CONFIG = 229443, + RPI_FIRMWARE_GET_PERIPH_REG = 196677, + RPI_FIRMWARE_SET_PERIPH_REG = 229445, + RPI_FIRMWARE_GET_POE_HAT_VAL = 196681, + RPI_FIRMWARE_SET_POE_HAT_VAL = 196688, + RPI_FIRMWARE_NOTIFY_XHCI_RESET = 196696, + RPI_FIRMWARE_NOTIFY_DISPLAY_DONE = 196710, + RPI_FIRMWARE_FRAMEBUFFER_ALLOCATE = 262145, + RPI_FIRMWARE_FRAMEBUFFER_BLANK = 262146, + RPI_FIRMWARE_FRAMEBUFFER_GET_PHYSICAL_WIDTH_HEIGHT = 262147, + RPI_FIRMWARE_FRAMEBUFFER_GET_VIRTUAL_WIDTH_HEIGHT = 262148, + RPI_FIRMWARE_FRAMEBUFFER_GET_DEPTH = 262149, + RPI_FIRMWARE_FRAMEBUFFER_GET_PIXEL_ORDER = 262150, + RPI_FIRMWARE_FRAMEBUFFER_GET_ALPHA_MODE = 262151, + RPI_FIRMWARE_FRAMEBUFFER_GET_PITCH = 262152, + RPI_FIRMWARE_FRAMEBUFFER_GET_VIRTUAL_OFFSET = 262153, + RPI_FIRMWARE_FRAMEBUFFER_GET_OVERSCAN = 262154, + RPI_FIRMWARE_FRAMEBUFFER_GET_PALETTE = 262155, + RPI_FIRMWARE_FRAMEBUFFER_GET_TOUCHBUF = 262159, + RPI_FIRMWARE_FRAMEBUFFER_GET_GPIOVIRTBUF = 262160, + RPI_FIRMWARE_FRAMEBUFFER_RELEASE = 294913, + RPI_FIRMWARE_FRAMEBUFFER_TEST_PHYSICAL_WIDTH_HEIGHT = 278531, + RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_WIDTH_HEIGHT = 278532, + RPI_FIRMWARE_FRAMEBUFFER_TEST_DEPTH = 278533, + RPI_FIRMWARE_FRAMEBUFFER_TEST_PIXEL_ORDER = 278534, + RPI_FIRMWARE_FRAMEBUFFER_TEST_ALPHA_MODE = 278535, + RPI_FIRMWARE_FRAMEBUFFER_TEST_VIRTUAL_OFFSET = 278537, + RPI_FIRMWARE_FRAMEBUFFER_TEST_OVERSCAN = 278538, + RPI_FIRMWARE_FRAMEBUFFER_TEST_PALETTE = 278539, + RPI_FIRMWARE_FRAMEBUFFER_TEST_VSYNC = 278542, + RPI_FIRMWARE_FRAMEBUFFER_SET_PHYSICAL_WIDTH_HEIGHT = 294915, + RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_WIDTH_HEIGHT = 294916, + RPI_FIRMWARE_FRAMEBUFFER_SET_DEPTH = 294917, + RPI_FIRMWARE_FRAMEBUFFER_SET_PIXEL_ORDER = 294918, + RPI_FIRMWARE_FRAMEBUFFER_SET_ALPHA_MODE = 294919, + RPI_FIRMWARE_FRAMEBUFFER_SET_VIRTUAL_OFFSET = 294921, + RPI_FIRMWARE_FRAMEBUFFER_SET_OVERSCAN = 294922, + RPI_FIRMWARE_FRAMEBUFFER_SET_PALETTE = 294923, + RPI_FIRMWARE_FRAMEBUFFER_SET_TOUCHBUF = 294943, + RPI_FIRMWARE_FRAMEBUFFER_SET_GPIOVIRTBUF = 294944, + RPI_FIRMWARE_FRAMEBUFFER_SET_VSYNC = 294926, + RPI_FIRMWARE_FRAMEBUFFER_SET_BACKLIGHT = 294927, + RPI_FIRMWARE_VCHIQ_INIT = 294928, + RPI_FIRMWARE_GET_COMMAND_LINE = 327681, + RPI_FIRMWARE_GET_DMA_CHANNELS = 393217, +}; -typedef void (*btf_trace_nfs_link_exit)(void *, const struct inode *, const struct inode *, const struct dentry *, int); +struct rpi_firmware { + struct mbox_client cl; + struct mbox_chan *chan; + struct completion c; + u32 enabled; + struct kref consumers; +}; -typedef void (*btf_trace_nfs_rename_enter)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *); +struct rpi_firmware_property_tag_header { + u32 tag; + u32 buf_size; + u32 req_resp_size; +}; -typedef void (*btf_trace_nfs_rename_exit)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); +struct rpi_firmware_clk_rate_request { + __le32 id; + __le32 rate; +}; -typedef void (*btf_trace_nfs_sillyrename_rename)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); +enum scmi_system_protocol_cmd { + SYSTEM_POWER_STATE_NOTIFY = 5, +}; -typedef void (*btf_trace_nfs_sillyrename_unlink)(void *, const struct nfs_unlinkdata *, int); +enum scmi_system_events { + SCMI_SYSTEM_SHUTDOWN = 0, + SCMI_SYSTEM_COLDRESET = 1, + SCMI_SYSTEM_WARMRESET = 2, + SCMI_SYSTEM_POWERUP = 3, + SCMI_SYSTEM_SUSPEND = 4, + SCMI_SYSTEM_MAX = 5, +}; -typedef void (*btf_trace_nfs_aop_readpage)(void *, const struct inode *, struct folio *); +struct scmi_system_power_state_notify { + __le32 notify_enable; +}; -typedef void (*btf_trace_nfs_aop_readpage_done)(void *, const struct inode *, struct folio *, int); +struct scmi_system_info { + u32 version; + bool graceful_timeout_supported; +}; -typedef void (*btf_trace_nfs_writeback_folio)(void *, const struct inode *, struct folio *); +struct scmi_system_power_state_notifier_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int flags; + unsigned int system_state; + unsigned int timeout; +}; -typedef void (*btf_trace_nfs_writeback_folio_done)(void *, const struct inode *, struct folio *, int); +struct scmi_system_power_state_notifier_payld { + __le32 agent_id; + __le32 flags; + __le32 system_state; + __le32 timeout; +}; -typedef void (*btf_trace_nfs_invalidate_folio)(void *, const struct inode *, struct folio *); +struct efi_memory_map_data { + phys_addr_t phys_map; + unsigned long size; + unsigned long desc_version; + unsigned long desc_size; + unsigned long flags; +}; -typedef void (*btf_trace_nfs_launder_folio_done)(void *, const struct inode *, struct folio *, int); +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; +}; -typedef void (*btf_trace_nfs_aop_readahead)(void *, const struct inode *, loff_t, unsigned int); +struct efi_system_resource_table { + u32 fw_resource_count; + u32 fw_resource_count_max; + u64 fw_resource_version; + u8 entries[0]; +}; -typedef void (*btf_trace_nfs_aop_readahead_done)(void *, const struct inode *, unsigned int, int); +struct esre_entry; -typedef void (*btf_trace_nfs_initiate_read)(void *, const struct nfs_pgio_header *); +struct esre_attribute { + struct attribute attr; + ssize_t (*show)(struct esre_entry *, char *); + ssize_t (*store)(struct esre_entry *, const char *, size_t); +}; -typedef void (*btf_trace_nfs_readpage_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); +struct efi_system_resource_entry_v1; -typedef void (*btf_trace_nfs_readpage_short)(void *, const struct rpc_task *, const struct nfs_pgio_header *); +struct esre_entry { + union { + struct efi_system_resource_entry_v1 *esre1; + } esre; + struct kobject kobj; + struct list_head list; +}; -typedef void (*btf_trace_nfs_pgio_error)(void *, const struct nfs_pgio_header *, int, loff_t); +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; +}; -typedef void (*btf_trace_nfs_initiate_write)(void *, const struct nfs_pgio_header *); +struct nvec_led { + struct led_classdev cdev; + struct nvec_chip *nvec; +}; -typedef void (*btf_trace_nfs_writeback_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); +struct rpmsg_device; -typedef void (*btf_trace_nfs_write_error)(void *, const struct inode *, const struct nfs_page *, int); +typedef int (*rpmsg_rx_cb_t)(struct rpmsg_device *, void *, int, void *, u32); -typedef void (*btf_trace_nfs_comp_error)(void *, const struct inode *, const struct nfs_page *, int); +struct rpmsg_channel_info; -typedef void (*btf_trace_nfs_commit_error)(void *, const struct inode *, const struct nfs_page *, int); +struct rpmsg_endpoint; -typedef void (*btf_trace_nfs_initiate_commit)(void *, const struct nfs_commit_data *); +struct rpmsg_device_ops { + struct rpmsg_device * (*create_channel)(struct rpmsg_device *, struct rpmsg_channel_info *); + int (*release_channel)(struct rpmsg_device *, struct rpmsg_channel_info *); + struct rpmsg_endpoint * (*create_ept)(struct rpmsg_device *, rpmsg_rx_cb_t, void *, struct rpmsg_channel_info); + int (*announce_create)(struct rpmsg_device *); + int (*announce_destroy)(struct rpmsg_device *); +}; -typedef void (*btf_trace_nfs_commit_done)(void *, const struct rpc_task *, const struct nfs_commit_data *); +struct rpmsg_device_id { + char name[32]; + kernel_ulong_t driver_data; +}; -typedef void (*btf_trace_nfs_direct_commit_complete)(void *, const struct nfs_direct_req *); +struct rpmsg_device { + struct device dev; + struct rpmsg_device_id id; + const char *driver_override; + u32 src; + u32 dst; + struct rpmsg_endpoint *ept; + bool announce; + bool little_endian; + const struct rpmsg_device_ops *ops; + long: 32; +}; -typedef void (*btf_trace_nfs_direct_resched_write)(void *, const struct nfs_direct_req *); +typedef int (*rpmsg_flowcontrol_cb_t)(struct rpmsg_device *, void *, bool); -typedef void (*btf_trace_nfs_direct_write_complete)(void *, const struct nfs_direct_req *); +struct rpmsg_endpoint_ops; -typedef void (*btf_trace_nfs_direct_write_completion)(void *, const struct nfs_direct_req *); +struct rpmsg_endpoint { + struct rpmsg_device *rpdev; + struct kref refcount; + rpmsg_rx_cb_t cb; + rpmsg_flowcontrol_cb_t flow_cb; + struct mutex cb_lock; + u32 addr; + void *priv; + const struct rpmsg_endpoint_ops *ops; +}; -typedef void (*btf_trace_nfs_direct_write_schedule_iovec)(void *, const struct nfs_direct_req *); +struct rpmsg_endpoint_ops { + void (*destroy_ept)(struct rpmsg_endpoint *); + int (*send)(struct rpmsg_endpoint *, void *, int); + int (*sendto)(struct rpmsg_endpoint *, void *, int, u32); + int (*send_offchannel)(struct rpmsg_endpoint *, u32, u32, void *, int); + int (*trysend)(struct rpmsg_endpoint *, void *, int); + int (*trysendto)(struct rpmsg_endpoint *, void *, int, u32); + int (*trysend_offchannel)(struct rpmsg_endpoint *, u32, u32, void *, int); + __poll_t (*poll)(struct rpmsg_endpoint *, struct file *, poll_table *); + int (*set_flow_control)(struct rpmsg_endpoint *, bool, u32); + ssize_t (*get_mtu)(struct rpmsg_endpoint *); +}; -typedef void (*btf_trace_nfs_direct_write_reschedule_io)(void *, const struct nfs_direct_req *); +struct rpmsg_channel_info { + char name[32]; + u32 src; + u32 dst; +}; -typedef void (*btf_trace_nfs_fh_to_dentry)(void *, const struct super_block *, const struct nfs_fh *, u64, int); +enum smd_channel_state { + SMD_CHANNEL_CLOSED = 0, + SMD_CHANNEL_OPENING = 1, + SMD_CHANNEL_OPENED = 2, + SMD_CHANNEL_FLUSHING = 3, + SMD_CHANNEL_CLOSING = 4, + SMD_CHANNEL_RESET = 5, + SMD_CHANNEL_RESET_OPENING = 6, +}; -typedef void (*btf_trace_nfs_mount_assign)(void *, const char *, const char *); +struct qcom_smd_edge { + struct device dev; + const char *name; + struct device_node *of_node; + unsigned int edge_id; + unsigned int remote_pid; + int irq; + struct regmap *ipc_regmap; + int ipc_offset; + int ipc_bit; + struct mbox_client mbox_client; + struct mbox_chan *mbox_chan; + struct list_head channels; + spinlock_t channels_lock; + unsigned long allocated[4]; + unsigned int smem_available; + wait_queue_head_t new_channel_event; + struct work_struct scan_work; + struct work_struct state_work; + long: 32; +}; -typedef void (*btf_trace_nfs_mount_option)(void *, const struct fs_parameter *); +struct qcom_smd_endpoint; -typedef void (*btf_trace_nfs_mount_path)(void *, const char *); +struct smd_channel_info_pair; -typedef void (*btf_trace_nfs_xdr_status)(void *, const struct xdr_stream *, int); +struct smd_channel_info_word_pair; -typedef void (*btf_trace_nfs_xdr_bad_filehandle)(void *, const struct xdr_stream *, int); +struct qcom_smd_channel { + struct qcom_smd_edge *edge; + struct qcom_smd_endpoint *qsept; + bool registered; + char *name; + enum smd_channel_state state; + enum smd_channel_state remote_state; + wait_queue_head_t state_change_event; + struct smd_channel_info_pair *info; + struct smd_channel_info_word_pair *info_word; + spinlock_t tx_lock; + wait_queue_head_t fblockread_event; + void *tx_fifo; + void *rx_fifo; + int fifo_size; + void *bounce_buffer; + spinlock_t recv_lock; + int pkt_size; + void *drvdata; + struct list_head list; +}; -struct trace_event_raw_nfs_inode_event { - struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - u64 version; - char __data[0]; +struct qcom_smd_endpoint { + struct rpmsg_endpoint ept; + struct qcom_smd_channel *qsch; }; -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 smd_channel_info { + __le32 state; + u8 fDSR; + u8 fCTS; + u8 fCD; + u8 fRI; + u8 fHEAD; + u8 fTAIL; + u8 fSTATE; + u8 fBLOCKREADINTR; + __le32 tail; + __le32 head; }; -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 smd_channel_info_pair { + struct smd_channel_info tx; + struct smd_channel_info rx; }; -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 smd_channel_info_word { + __le32 state; + __le32 fDSR; + __le32 fCTS; + __le32 fCD; + __le32 fRI; + __le32 fHEAD; + __le32 fTAIL; + __le32 fSTATE; + __le32 fBLOCKREADINTR; + __le32 tail; + __le32 head; }; -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 smd_channel_info_word_pair { + struct smd_channel_info_word tx; + struct smd_channel_info_word rx; }; -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 qcom_smd_device { + struct rpmsg_device rpdev; + struct qcom_smd_edge *edge; long: 32; }; -struct trace_event_raw_nfs_lookup_event_done { - struct trace_entry ent; - unsigned long error; - unsigned long flags; - dev_t dev; - long: 32; - u64 dir; - u32 __data_loc_name; - char __data[0]; - long: 32; +struct qcom_smd_alloc_entry { + u8 name[20]; + __le32 cid; + __le32 flags; + __le32 ref_count; }; -struct trace_event_raw_nfs_atomic_open_enter { - struct trace_entry ent; - unsigned long flags; - unsigned long fmode; - dev_t dev; - long: 32; - u64 dir; - u32 __data_loc_name; - char __data[0]; - long: 32; +struct notif_entry { + struct list_head link; + struct completion c; + u_int key; }; -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]; - long: 32; -}; +typedef void optee_invoke_fn(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, struct arm_smccc_res *); -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]; - long: 32; -}; +struct optee_pcpu; -struct trace_event_raw_nfs_create_exit { - struct trace_entry ent; - unsigned long error; - unsigned long flags; - dev_t dev; - long: 32; - u64 dir; - u32 __data_loc_name; - char __data[0]; - long: 32; +struct optee_smc { + optee_invoke_fn *invoke_fn; + void *memremaped_shm; + u32 sec_caps; + unsigned int notif_irq; + struct optee_pcpu __attribute__((btf_type_tag("percpu"))) *optee_pcpu; + struct workqueue_struct *notif_pcpu_wq; + struct work_struct notif_pcpu_work; + unsigned int notif_cpuhp_state; }; -struct trace_event_raw_nfs_directory_event { - struct trace_entry ent; - dev_t dev; - long: 32; - u64 dir; - u32 __data_loc_name; - char __data[0]; - long: 32; -}; +struct ffa_device; -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]; - long: 32; +struct optee_ffa { + struct ffa_device *ffa_dev; + struct mutex mutex; + struct rhashtable global_ids; }; -struct trace_event_raw_nfs_link_enter { - struct trace_entry ent; - dev_t dev; - long: 32; - u64 fileid; - u64 dir; - u32 __data_loc_name; - char __data[0]; - long: 32; +struct optee_shm_arg_cache { + u32 flags; + struct mutex mutex; + struct list_head shm_args; }; -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]; - long: 32; +struct optee_call_queue { + struct mutex mutex; + struct list_head waiters; }; -struct trace_event_raw_nfs_rename_event { - struct trace_entry ent; - dev_t dev; - long: 32; - u64 old_dir; - u64 new_dir; - u32 __data_loc_old_name; - u32 __data_loc_new_name; - char __data[0]; +struct optee_notif { + u_int max_key; + spinlock_t lock; + struct list_head db; + u_long *bitmap; }; -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; - long: 32; - u64 new_dir; - u32 __data_loc_new_name; - char __data[0]; - long: 32; +struct optee_supp { + struct mutex mutex; + struct tee_context *ctx; + int req_id; + struct list_head reqs; + struct idr idr; + struct completion reqs_c; }; -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]; - long: 32; -}; +struct optee_ops; -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]; - long: 32; +struct optee { + struct tee_device *supp_teedev; + struct tee_device *teedev; + const struct optee_ops *ops; + struct tee_context *ctx; + union { + struct optee_smc smc; + struct optee_ffa ffa; + }; + struct optee_shm_arg_cache shm_arg_cache; + struct optee_call_queue call_queue; + struct optee_notif notif; + struct optee_supp supp; + struct tee_shm_pool *pool; + unsigned int rpc_param_count; + bool scan_bus_done; + struct workqueue_struct *scan_bus_wq; + struct work_struct scan_bus_work; }; -struct trace_event_raw_nfs_folio_event_done { - struct trace_entry ent; - dev_t dev; - u32 fhandle; - int ret; - long: 32; - u64 fileid; - u64 version; - loff_t offset; - u32 count; - char __data[0]; - long: 32; -}; +struct optee_msg_param; -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]; - long: 32; +struct optee_ops { + int (*do_call_with_arg)(struct tee_context *, struct tee_shm *, u_int); + int (*to_msg_param)(struct optee *, struct optee_msg_param *, size_t, const struct tee_param *); + int (*from_msg_param)(struct optee *, struct tee_param *, size_t, const struct optee_msg_param *); }; -struct trace_event_raw_nfs_aop_readahead_done { - struct trace_entry ent; - dev_t dev; - u32 fhandle; - int ret; - long: 32; - u64 fileid; - u64 version; - loff_t offset; - unsigned int nr_pages; - char __data[0]; - long: 32; +struct optee_msg_param_tmem { + u64 buf_ptr; + u64 size; + u64 shm_ref; }; -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]; - long: 32; +struct optee_msg_param_rmem { + u64 offs; + u64 size; + u64 shm_ref; }; -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 optee_msg_param_fmem { + u32 offs_low; + u16 offs_high; + u16 internal_offs; + u64 size; + u64 global_id; }; -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 optee_msg_param_value { + u64 a; + u64 b; + u64 c; }; -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]; - long: 32; +struct optee_msg_param { + u64 attr; + union { + struct optee_msg_param_tmem tmem; + struct optee_msg_param_rmem rmem; + struct optee_msg_param_fmem fmem; + struct optee_msg_param_value value; + u8 octets[24]; + } u; }; -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 optee_pcpu { + struct optee *optee; }; -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 optee_supp_req { + struct list_head link; + bool in_queue; + u32 func; + u32 ret; + size_t num_params; + struct tee_param *param; + struct completion c; }; -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 neigh_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table neigh_vars[22]; }; -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]; - long: 32; +enum { + NEIGH_ARP_TABLE = 0, + NEIGH_ND_TABLE = 1, + NEIGH_DN_TABLE = 2, + NEIGH_NR_TABLES = 3, + NEIGH_LINK_TABLE = 3, }; -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]; +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, }; -struct trace_event_raw_nfs_direct_req_class { - struct trace_entry ent; - dev_t dev; - long: 32; - u64 fileid; - u32 fhandle; - long: 32; - loff_t offset; - ssize_t count; - ssize_t bytes_left; - ssize_t error; - int flags; - char __data[0]; +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, }; -struct trace_event_raw_nfs_fh_to_dentry { - struct trace_entry ent; - int error; - dev_t dev; - u32 fhandle; - long: 32; - u64 fileid; - char __data[0]; +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, }; -struct trace_event_raw_nfs_mount_assign { - struct trace_entry ent; - u32 __data_loc_option; - u32 __data_loc_value; - char __data[0]; +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 trace_event_raw_nfs_mount_option { - struct trace_entry ent; - u32 __data_loc_option; - char __data[0]; +struct neighbour_cb { + unsigned long sched_next; + unsigned int flags; }; -struct trace_event_raw_nfs_mount_path { - struct trace_entry ent; - u32 __data_loc_path; - char __data[0]; +struct rtgenmsg { + unsigned char rtgen_family; }; -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 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 trace_event_data_offsets_nfs_lookup_event { - u32 name; +struct neigh_dump_filter { + int master_idx; + int dev_idx; }; -struct trace_event_data_offsets_nfs_lookup_event_done { - u32 name; +struct ndtmsg { + __u8 ndtm_family; + __u8 ndtm_pad1; + __u16 ndtm_pad2; }; -struct trace_event_data_offsets_nfs_atomic_open_enter { - u32 name; +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 trace_event_data_offsets_nfs_atomic_open_exit { - u32 name; +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 trace_event_data_offsets_nfs_create_enter { - u32 name; +struct nda_cacheinfo { + __u32 ndm_confirmed; + __u32 ndm_used; + __u32 ndm_updated; + __u32 ndm_refcnt; }; -struct trace_event_data_offsets_nfs_create_exit { - u32 name; +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 trace_event_data_offsets_nfs_directory_event { - u32 name; +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; }; -struct trace_event_data_offsets_nfs_directory_event_done { - u32 name; +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 trace_event_data_offsets_nfs_link_enter { - u32 name; +struct wol_reply_data { + struct ethnl_reply_data base; + struct ethtool_wolinfo wol; + bool show_sopass; }; -struct trace_event_data_offsets_nfs_link_exit { - u32 name; -}; +typedef const char (* const ethnl_string_array_t)[32]; -struct trace_event_data_offsets_nfs_rename_event { - u32 old_name; - u32 new_name; +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 trace_event_data_offsets_nfs_rename_event_done { - u32 old_name; - u32 new_name; +struct plca_reply_data { + struct ethnl_reply_data base; + struct phy_plca_cfg plca_cfg; + struct phy_plca_status plca_st; }; -struct trace_event_data_offsets_nfs_sillyrename_unlink { - u32 name; +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 trace_event_data_offsets_nfs_mount_assign { - u32 option; - u32 value; +struct netlink_kernel_cfg { + unsigned int groups; + unsigned int flags; + void (*input)(struct sk_buff *); + struct mutex *cb_mutex; + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, unsigned long *); }; -struct trace_event_data_offsets_nfs_mount_option { - u32 option; +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; }; -struct trace_event_data_offsets_nfs_mount_path { - u32 path; +struct netdev_notifier_info_ext { + struct netdev_notifier_info info; + union { + u32 mtu; + } ext; }; -struct trace_event_data_offsets_nfs_xdr_event { - u32 program; - u32 procedure; +struct ic_device { + struct ic_device *next; + struct net_device *dev; + unsigned short flags; + short able; + __be32 xid; }; -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_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 {}; - enum { - LCN_HOLE = -1, - LCN_RL_NOT_MAPPED = -2, - LCN_ENOENT = -3, - LCN_ENOMEM = -4, - LCN_EIO = -5, + Root_NFS = 255, + Root_CIFS = 254, + Root_Generic = 253, + Root_RAM0 = 1048576, }; -enum { - NV_Errors = 0, - NV_ShowSystemFiles = 1, - NV_CaseSensitive = 2, - NV_LogFileEmpty = 3, - NV_QuotaOutOfDate = 4, - NV_UsnJrnlStamped = 5, - NV_SparseEnabled = 6, +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]; }; -typedef u64 MFT_REF; - -struct ubifs_compressor { - int compr_type; - struct crypto_comp *cc; - struct mutex *comp_mutex; - struct mutex *decomp_mutex; - const char *name; - const char *capi_name; +struct arphdr { + __be16 ar_hrd; + __be16 ar_pro; + unsigned char ar_hln; + unsigned char ar_pln; + __be16 ar_op; }; -enum { - UBIFS_COMPR_NONE = 0, - UBIFS_COMPR_LZO = 1, - UBIFS_COMPR_ZLIB = 2, - UBIFS_COMPR_ZSTD = 3, - UBIFS_COMPR_TYPES_CNT = 4, +struct scm_stat { + atomic_t nr_fds; }; -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 unix_address; -struct asymmetric_key_parser { +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; - struct module *owner; - const char *name; - int (*parse)(struct key_preparsed_payload *); + atomic_long_t inflight; + spinlock_t lock; + unsigned long gc_flags; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct socket_wq peer_wq; + wait_queue_entry_t peer_wake; + struct scm_stat scm_stat; + struct sk_buff *oob_skb; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct asymmetric_key_subtype { - struct module *owner; - const char *name; - unsigned short name_len; - void (*describe)(const struct key *, struct seq_file *); - void (*destroy)(void *, void *); - int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *); - int (*eds_op)(struct kernel_pkey_params *, const void *, void *); - int (*verify_signature)(const struct key *, const struct public_key_signature *); +struct unix_address { + refcount_t refcnt; + int len; + struct sockaddr_un name[0]; }; -struct class_dev_iter { - struct klist_iter ki; - const struct device_type *type; - struct subsys_private *sp; +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, }; -struct uuidcmp { - const char *uuid; - int len; +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 epoll_event { - __poll_t events; +struct fib6_rule { + struct fib_rule common; + struct rt6key src; + struct rt6key dst; + dscp_t dscp; long: 32; - __u64 data; }; -struct io_epoll { - struct file *file; - int epfd; - int op; - int fd; - struct epoll_event event; +struct fib6_result { + struct fib6_nh *nh; + struct fib6_info *f6i; + u32 fib6_flags; + u8 fib6_type; + struct rt6_info *rt6; }; -struct partition_affinity; +typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); -struct partition_desc { - int nr_parts; - struct partition_affinity *parts; - struct irq_domain *domain; - struct irq_desc *chained_desc; - unsigned long *bitmap; - struct irq_domain_ops ops; +enum devlink_resource_unit { + DEVLINK_RESOURCE_UNIT_ENTRY = 0, }; -struct partition_affinity { - cpumask_t mask; - void *partition_id; +struct devlink_resource_size_params { + u64 size_min; + u64 size_max; + u64 size_granularity; + enum devlink_resource_unit unit; + long: 32; }; -struct uniphier_system_bus_bank { - u32 base; - u32 end; -}; +typedef u64 devlink_resource_occ_get_t(void *); -struct uniphier_system_bus_priv { - struct device *dev; - void *membase; - struct uniphier_system_bus_bank bank[8]; +struct devlink_resource { + const char *name; + long: 32; + 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 phy_berlin_usb_priv { - void *base; - struct reset_control *rst_ctrl; - u32 pll_divider; +struct xprt_addr { + const char *addr; + struct callback_head rcu; }; -struct dc_pinmap { - void *regs; - struct device *dev; - struct pinctrl_dev *pctl; - struct pinctrl_desc *desc; - const char *pin_names[144]; - struct gpio_chip chip; - spinlock_t lock; +enum dns_payload_content_type { + DNS_PAYLOAD_IS_SERVER_LIST = 0, }; -struct cygnus_gpio_mux { - int is_supported; - unsigned int offset; - unsigned int shift; +enum dns_lookup_status { + DNS_LOOKUP_NOT_DONE = 0, + DNS_LOOKUP_GOOD = 1, + DNS_LOOKUP_GOOD_WITH_BAD = 2, + DNS_LOOKUP_BAD = 3, + DNS_LOOKUP_GOT_NOT_FOUND = 4, + DNS_LOOKUP_GOT_LOCAL_FAILURE = 5, + DNS_LOOKUP_GOT_TEMP_FAILURE = 6, + DNS_LOOKUP_GOT_NS_FAILURE = 7, + NR__dns_lookup_status = 8, }; -struct cygnus_pin { - unsigned int pin; - char *name; - struct cygnus_gpio_mux gpio_mux; +enum { + dns_key_data = 0, + dns_key_error = 1, }; -struct cygnus_mux { - unsigned int offset; - unsigned int shift; - unsigned int alt; -}; - -struct cygnus_pin_group { - const char *name; - const unsigned int *pins; - unsigned int num_pins; - struct cygnus_mux mux; +struct dns_payload_header { + __u8 zero; + __u8 content; + __u8 version; }; -struct cygnus_pin_function { - const char *name; - const char * const *groups; - unsigned int num_groups; +struct dns_server_list_v1_header { + struct dns_payload_header hdr; + __u8 source; + __u8 status; + __u8 nr_servers; }; -struct cygnus_mux_log; +typedef struct elf32_phdr Elf32_Phdr; -struct cygnus_pinctrl { - struct pinctrl_dev *pctl; - struct device *dev; - void *base0; - void *base1; - const struct cygnus_pin_group *groups; - unsigned int num_groups; - const struct cygnus_pin_function *functions; - unsigned int num_functions; - struct cygnus_mux_log *mux_log; - spinlock_t lock; -}; +typedef __u16 Elf64_Half; -struct cygnus_mux_log { - struct cygnus_mux mux; - bool is_configured; -}; +typedef __u32 Elf64_Word; -enum { - PINMUX_TYPE_NONE = 0, - PINMUX_TYPE_FUNCTION = 1, - PINMUX_TYPE_GPIO = 2, - PINMUX_TYPE_OUTPUT = 3, - PINMUX_TYPE_INPUT = 4, -}; +typedef __u64 Elf64_Addr; -struct sh_pfc_pin_range { - u16 start; - u16 end; -}; +typedef __u64 Elf64_Off; -struct sunxi_pinctrl_regulator { - struct regulator *regulator; - refcount_t refcount; +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; }; -struct sunxi_pinctrl_function; +typedef struct elf64_hdr Elf64_Ehdr; -struct sunxi_pinctrl_group; +typedef __u64 Elf64_Xword; -struct sunxi_pinctrl { - void *membase; - struct gpio_chip *chip; - const struct sunxi_pinctrl_desc *desc; - struct device *dev; - struct sunxi_pinctrl_regulator regulators[9]; - struct irq_domain *domain; - struct sunxi_pinctrl_function *functions; - unsigned int nfunctions; - struct sunxi_pinctrl_group *groups; - unsigned int ngroups; - int *irq; - unsigned int *irq_array; - raw_spinlock_t lock; - struct pinctrl_dev *pctl_dev; - unsigned long variant; - u32 bank_mem_size; - u32 pull_regs_offset; - u32 dlevel_field_width; +struct elf64_phdr { + Elf64_Word p_type; + Elf64_Word p_flags; + Elf64_Off p_offset; + Elf64_Addr p_vaddr; + Elf64_Addr p_paddr; + Elf64_Xword p_filesz; + Elf64_Xword p_memsz; + Elf64_Xword p_align; }; -struct sunxi_pinctrl_function { - const char *name; - const char **groups; - unsigned int ngroups; +typedef struct elf64_phdr Elf64_Phdr; + +typedef struct elf32_note Elf32_Nhdr; + +struct radix_tree_preload { + local_lock_t lock; + unsigned int nr; + struct xa_node *nodes; }; -struct sunxi_pinctrl_group { - const char *name; - unsigned int pin; +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; }; -typedef void (*btf_trace_pwm_apply)(void *, struct pwm_device *, const struct pwm_state *, int); +struct imx5_suspend_io_state; -typedef void (*btf_trace_pwm_get)(void *, struct pwm_device *, const struct pwm_state *, int); +struct imx5_pm_data { + phys_addr_t ccm_addr; + phys_addr_t cortex_addr; + phys_addr_t gpc_addr; + phys_addr_t m4if_addr; + phys_addr_t iomuxc_addr; + void (*suspend_asm)(void *); + const u32 *suspend_asm_sz; + const struct imx5_suspend_io_state *suspend_io_config; + int suspend_io_count; +}; -enum { - PWMF_REQUESTED = 1, - PWMF_EXPORTED = 2, +struct imx5_suspend_io_state { + u32 offset; + u32 clear; + u32 set; + u32 saved_value; }; -struct pwm_lookup { - struct list_head list; - const char *provider; - unsigned int index; - const char *dev_id; - const char *con_id; - unsigned int period; - enum pwm_polarity polarity; - const char *module; +enum mxc_cpu_pwr_mode { + WAIT_CLOCKED = 0, + WAIT_UNCLOCKED = 1, + WAIT_UNCLOCKED_POWER_OFF = 2, + STOP_POWER_ON = 3, + STOP_POWER_OFF = 4, }; -struct trace_event_raw_pwm { - struct trace_entry ent; - struct pwm_device *pwm; - long: 32; - u64 period; - u64 duty_cycle; - enum pwm_polarity polarity; - bool enabled; - int err; - char __data[0]; +struct imx5_cpu_suspend_info { + void *m4if_base; + void *iomuxc_base; + u32 io_count; + struct imx5_suspend_io_state io_state[20]; long: 32; }; -struct trace_event_data_offsets_pwm {}; +struct mcpm_platform_ops { + int (*cpu_powerup)(unsigned int, unsigned int); + int (*cluster_powerup)(unsigned int); + void (*cpu_suspend_prepare)(unsigned int, unsigned int); + void (*cpu_powerdown_prepare)(unsigned int, unsigned int); + void (*cluster_powerdown_prepare)(unsigned int); + void (*cpu_cache_disable)(); + void (*cluster_cache_disable)(); + void (*cpu_is_up)(unsigned int, unsigned int); + void (*cluster_is_up)(unsigned int); + int (*wait_for_powerdown)(unsigned int, unsigned int); +}; -typedef enum { - PCI_BRIDGE_EMUL_HANDLED = 0, - PCI_BRIDGE_EMUL_NOT_HANDLED = 1, -} pci_bridge_emul_read_status_t; +struct sd_flag_debug { + unsigned int meta_flags; + char *name; +}; -struct pci_bridge_emul; +typedef const struct cpumask * (*sched_domain_mask_f)(int); -struct pci_bridge_emul_ops { - pci_bridge_emul_read_status_t (*read_base)(struct pci_bridge_emul *, int, u32 *); - pci_bridge_emul_read_status_t (*read_pcie)(struct pci_bridge_emul *, int, u32 *); - pci_bridge_emul_read_status_t (*read_ext)(struct pci_bridge_emul *, int, u32 *); - void (*write_base)(struct pci_bridge_emul *, int, u32, u32, u32); - void (*write_pcie)(struct pci_bridge_emul *, int, u32, u32, u32); - void (*write_ext)(struct pci_bridge_emul *, int, u32, u32, u32); -}; +typedef int (*sched_domain_flags_f)(); -struct pci_bridge_emul_conf { - __le16 vendor; - __le16 device; - __le16 command; - __le16 status; - __le32 class_revision; - u8 cache_line_size; - u8 latency_timer; - u8 header_type; - u8 bist; - __le32 bar[2]; - u8 primary_bus; - u8 secondary_bus; - u8 subordinate_bus; - u8 secondary_latency_timer; - u8 iobase; - u8 iolimit; - __le16 secondary_status; - __le16 membase; - __le16 memlimit; - __le16 pref_mem_base; - __le16 pref_mem_limit; - __le32 prefbaseupper; - __le32 preflimitupper; - __le16 iobaseupper; - __le16 iolimitupper; - u8 capabilities_pointer; - u8 reserve[3]; - __le32 romaddr; - u8 intline; - u8 intpin; - __le16 bridgectrl; +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 pci_bridge_emul_pcie_conf { - u8 cap_id; - u8 next; - __le16 cap; - __le32 devcap; - __le16 devctl; - __le16 devsta; - __le32 lnkcap; - __le16 lnkctl; - __le16 lnksta; - __le32 slotcap; - __le16 slotctl; - __le16 slotsta; - __le16 rootctl; - __le16 rootcap; - __le32 rootsta; - __le32 devcap2; - __le16 devctl2; - __le16 devsta2; - __le32 lnkcap2; - __le16 lnkctl2; - __le16 lnksta2; - __le32 slotcap2; - __le16 slotctl2; - __le16 slotsta2; +struct sched_domain_topology_level { + sched_domain_mask_f mask; + sched_domain_flags_f sd_flags; + int flags; + int numa_level; + struct sd_data data; + char *name; }; -struct pci_bridge_reg_behavior; +struct housekeeping { + cpumask_var_t cpumasks[9]; + unsigned long flags; +}; -struct pci_bridge_emul { - struct pci_bridge_emul_conf conf; - struct pci_bridge_emul_pcie_conf pcie_conf; - const struct pci_bridge_emul_ops *ops; - struct pci_bridge_reg_behavior *pci_regs_behavior; - struct pci_bridge_reg_behavior *pcie_cap_regs_behavior; - void *data; - u8 pcie_start; - u8 ssid_start; - bool has_pcie; - u16 subsystem_vendor_id; - u16 subsystem_id; +struct cpuacct { + struct cgroup_subsys_state css; + u64 __attribute__((btf_type_tag("percpu"))) *cpuusage; + struct kernel_cpustat __attribute__((btf_type_tag("percpu"))) *cpustat; }; -enum { - PCI_BRIDGE_EMUL_NO_PREFMEM_FORWARD = 1, - PCI_BRIDGE_EMUL_NO_IO_FORWARD = 2, +struct sugov_tunables { + struct gov_attr_set attr_set; + unsigned int rate_limit_us; }; -struct mvebu_pcie_port; +struct sugov_policy; -struct mvebu_pcie { - struct platform_device *pdev; - struct mvebu_pcie_port *ports; - struct resource io; - struct resource realio; - struct resource mem; - struct resource busn; - int nports; +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; + long: 32; + u64 last_update; + unsigned long util; + unsigned long bw_dl; + unsigned long saved_idle_calls; + long: 32; }; -struct mvebu_pcie_window { - phys_addr_t base; - phys_addr_t remap; - size_t size; +struct sugov_policy { + struct cpufreq_policy *policy; + struct sugov_tunables *tunables; + struct list_head tunables_hook; + raw_spinlock_t update_lock; + long: 32; + 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; }; -struct mvebu_pcie_port { - char *name; - void *base; - u32 port; - u32 lane; - bool is_x4; - int devfn; - unsigned int mem_target; - unsigned int mem_attr; - unsigned int io_target; - unsigned int io_attr; - struct clk *clk; - struct gpio_desc *reset_gpio; - char *reset_name; - struct pci_bridge_emul bridge; - struct device_node *dn; - struct mvebu_pcie *pcie; - struct mvebu_pcie_window memwin; - struct mvebu_pcie_window iowin; - u32 saved_pcie_stat; - struct resource regs; - u8 slot_power_limit_value; - u8 slot_power_limit_scale; - struct irq_domain *intx_irq_domain; - raw_spinlock_t irq_lock; - int intx_irq; +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, }; -struct clk_peripheral { - struct clk_hw hw; - struct regmap *regmap; - u32 id; +enum cpuacct_stat_index { + CPUACCT_STAT_USER = 0, + CPUACCT_STAT_SYSTEM = 1, + CPUACCT_STAT_NSTATS = 2, }; -struct clk_pcr_layout; - -struct clk_sam9x5_peripheral { - struct clk_hw hw; - struct regmap *regmap; - struct clk_range range; - spinlock_t *lock; - u32 id; - u32 div; - const struct clk_pcr_layout *layout; - struct at91_clk_pms pms; - bool auto_div; - int chg_pid; +enum { + __SD_BALANCE_NEWIDLE = 0, + __SD_BALANCE_EXEC = 1, + __SD_BALANCE_FORK = 2, + __SD_BALANCE_WAKE = 3, + __SD_WAKE_AFFINE = 4, + __SD_ASYM_CPUCAPACITY = 5, + __SD_ASYM_CPUCAPACITY_FULL = 6, + __SD_SHARE_CPUCAPACITY = 7, + __SD_CLUSTER = 8, + __SD_SHARE_PKG_RESOURCES = 9, + __SD_SERIALIZE = 10, + __SD_ASYM_PACKING = 11, + __SD_PREFER_SIBLING = 12, + __SD_OVERLAP = 13, + __SD_NUMA = 14, + __SD_FLAG_CNT = 15, }; -struct clk_pcr_layout { - u32 offset; - u32 cmd; - u32 div_mask; - u32 gckcss_mask; - u32 pid_mask; +enum s_alloc { + sa_rootdomain = 0, + sa_sd = 1, + sa_sd_storage = 2, + sa_none = 3, }; -enum hix5hd2_clk_type { - TYPE_COMPLEX = 0, - TYPE_ETHER = 1, +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, }; -struct hix5hd2_complex_clock { - const char *name; - const char *parent_name; - u32 id; - u32 ctrl_reg; - u32 ctrl_clk_mask; - u32 ctrl_rst_mask; - u32 phy_reg; - u32 phy_clk_mask; - u32 phy_rst_mask; - enum hix5hd2_clk_type type; +enum membarrier_cmd_flag { + MEMBARRIER_CMD_FLAG_CPU = 1, }; -struct hix5hd2_clk_complex { - struct clk_hw hw; - u32 id; - void *ctrl_reg; - u32 ctrl_clk_mask; - u32 ctrl_rst_mask; - void *phy_reg; - u32 phy_clk_mask; - u32 phy_rst_mask; +enum { + MEMBARRIER_FLAG_SYNC_CORE = 1, + MEMBARRIER_FLAG_RSEQ = 2, }; -enum imx_pllv3_type { - IMX_PLLV3_GENERIC = 0, - IMX_PLLV3_SYS = 1, - IMX_PLLV3_USB = 2, - IMX_PLLV3_USB_VF610 = 3, - IMX_PLLV3_AV = 4, - IMX_PLLV3_ENET = 5, - IMX_PLLV3_ENET_IMX7 = 6, - IMX_PLLV3_SYS_VF610 = 7, - IMX_PLLV3_DDR_IMX7 = 8, - IMX_PLLV3_AV_IMX7 = 9, +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, }; -struct parm { - u16 reg_off; - u8 shift; - u8 width; +enum rseq_event_mask_bits { + RSEQ_EVENT_PREEMPT_BIT = 0, + RSEQ_EVENT_SIGNAL_BIT = 1, + RSEQ_EVENT_MIGRATE_BIT = 2, }; -struct meson_clk_mpll_data { - struct parm sdm; - struct parm sdm_en; - struct parm n2; - struct parm ssen; - struct parm misc; - const struct reg_sequence *init_regs; - unsigned int init_count; - spinlock_t *lock; - u8 flags; +struct swait_queue { + struct task_struct *task; + struct list_head task_list; }; -struct mmp_param_fixed_rate_clk { - unsigned int id; - char *name; - const char *parent_name; - unsigned long flags; - unsigned long fixed_rate; +struct asym_cap_data { + struct list_head link; + unsigned long capacity; + unsigned long cpus[0]; }; -struct mmp_param_pll_clk { - unsigned int id; - char *name; - unsigned long default_rate; - unsigned long enable_offset; - u32 enable; - unsigned long offset; - u8 shift; - unsigned long input_rate; - unsigned long postdiv_offset; - unsigned long postdiv_shift; +struct sched_attr { + __u32 size; + __u32 sched_policy; + __u64 sched_flags; + __s32 sched_nice; + __u32 sched_priority; + __u64 sched_runtime; + __u64 sched_deadline; + __u64 sched_period; + __u32 sched_util_min; + __u32 sched_util_max; }; -struct mmp_param_fixed_factor_clk { - unsigned int id; - char *name; - const char *parent_name; - unsigned long mult; - unsigned long div; - unsigned long flags; +struct s_data { + struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; + struct root_domain *rd; }; -struct mmp_clk_factor_masks { - unsigned int factor; - unsigned int num_mask; - unsigned int den_mask; - unsigned int num_shift; - unsigned int den_shift; - unsigned int enable_mask; +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 mmp_clk_factor_tbl { - unsigned int num; - unsigned int den; +struct stat_node { + struct rb_node node; + void *stat; }; -struct mmp_param_gate_clk { - unsigned int id; - char *name; - const char *parent_name; - unsigned long flags; - unsigned long offset; - u32 mask; - u32 val_enable; - u32 val_disable; - unsigned int gate_flags; - spinlock_t *lock; +struct user_event_group { + char *system_name; + struct hlist_node node; + struct mutex reg_mutex; + struct hlist_head register_table[256]; }; -struct mmp_param_mux_clk { - unsigned int id; - char *name; - const char * const *parent_name; - u8 num_parents; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u8 mux_flags; - spinlock_t *lock; +struct user_event_mm { + struct list_head mms_link; + struct list_head enablers; + struct mm_struct *mm; + struct user_event_mm *next; + refcount_t refcnt; + refcount_t tasks; + struct rcu_work put_rwork; }; -struct mmp_clk_mix_reg_info { - void *reg_clk_ctrl; - void *reg_clk_sel; - u8 width_div; - u8 shift_div; - u8 width_mux; - u8 shift_mux; - u8 bit_fc; +enum user_reg_flag { + USER_EVENT_REG_PERSIST = 1, + USER_EVENT_REG_MAX = 2, }; -struct mmp_clk_mix_clk_table; +struct user_event; -struct mmp_clk_mix_config { - struct mmp_clk_mix_reg_info reg_info; - struct mmp_clk_mix_clk_table *table; - unsigned int table_size; - u32 *mux_table; - struct clk_div_table *div_table; - u8 div_flags; - u8 mux_flags; +struct user_event_enabler { + struct list_head mm_enablers_link; + struct user_event *event; + unsigned long addr; + unsigned long values; }; -struct mmp_clk_mix_clk_table { - unsigned long rate; - u8 parent_index; - unsigned int divisor; - unsigned int valid; +struct user_event { + struct user_event_group *group; + struct tracepoint tracepoint; + struct trace_event_call call; + struct trace_event_class class; + struct dyn_event devent; + struct hlist_node node; + struct list_head fields; + struct list_head validators; + struct work_struct put_work; + refcount_t refcnt; + int min_size; + int reg_flags; + char status; }; -struct mmp_param_div_clk { - unsigned int id; - char *name; - const char *parent_name; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u8 div_flags; - spinlock_t *lock; +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; }; -enum mmp2_clk_model { - CLK_MODEL_MMP2 = 0, - CLK_MODEL_MMP3 = 1, +struct user_event_validator { + struct list_head user_event_link; + int offset; + int flags; }; -struct mmp_clk_unit { - unsigned int nr_clks; - struct clk **clk_table; - struct clk_onecell_data clk_data; +struct user_event_refs { + struct callback_head rcu; + int count; + struct user_event *events[0]; }; -typedef struct generic_pm_domain * (*genpd_xlate_t)(struct of_phandle_args *, void *); - -struct genpd_onecell_data { - struct generic_pm_domain **domains; - unsigned int num_domains; - genpd_xlate_t xlate; +struct user_reg { + __u32 size; + __u8 enable_bit; + __u8 enable_size; + __u16 flags; + __u64 enable_addr; + __u64 name_args; + __u32 write_index; }; -struct mmp2_clk_unit { - struct mmp_clk_unit unit; - enum mmp2_clk_model model; - struct genpd_onecell_data pd_data; - struct generic_pm_domain *pm_domains[3]; - void *mpmu_base; - void *apmu_base; - void *apbc_base; +struct user_event_enabler_fault { + struct work_struct work; + struct user_event_mm *mm; + struct user_event_enabler *enabler; + int attempt; }; -struct mmp_clk_reset_cell { - unsigned int clk_id; - void *reg; - u32 bits; - unsigned int flags; - spinlock_t *lock; +struct user_unreg { + __u32 size; + __u8 disable_bit; + __u8 __reserved; + __u16 __reserved2; + __u64 disable_addr; }; -struct div4_clk { - const char *name; - const char *parent; - unsigned int reg; - unsigned int shift; +struct user_event_file_info { + struct user_event_group *group; + struct user_event_refs *refs; }; -struct sh73a0_cpg { - struct clk_onecell_data data; - spinlock_t lock; -}; +typedef void (*user_event_func_t)(struct user_event *, struct iov_iter *, void *, bool *); -enum rockchip_pll_type { - pll_rk3036 = 0, - pll_rk3066 = 1, - pll_rk3328 = 2, - pll_rk3399 = 3, - pll_rk3588 = 4, - pll_rk3588_core = 5, +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, }; -struct rockchip_pll_rate_table; - -struct rockchip_pll_clock { - unsigned int id; - const char *name; - const char * const *parent_names; - u8 num_parents; - unsigned long flags; - int con_offset; - int mode_offset; - int mode_shift; - int lock_shift; - enum rockchip_pll_type type; - u8 pll_flags; - struct rockchip_pll_rate_table *rate_table; +enum bpf_stack_build_id_status { + BPF_STACK_BUILD_ID_EMPTY = 0, + BPF_STACK_BUILD_ID_VALID = 1, + BPF_STACK_BUILD_ID_IP = 2, }; -struct rockchip_pll_rate_table { - unsigned long rate; - union { - struct { - unsigned int nr; - unsigned int nf; - unsigned int no; - unsigned int nb; - }; - struct { - unsigned int fbdiv; - unsigned int postdiv1; - unsigned int refdiv; - unsigned int postdiv2; - unsigned int dsmpd; - unsigned int frac; - }; - struct { - unsigned int m; - unsigned int p; - unsigned int s; - unsigned int k; - }; - }; -}; +typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64); -enum rockchip_clk_branch_type { - branch_composite = 0, - branch_mux = 1, - branch_muxgrf = 2, - branch_divider = 3, - branch_fraction_divider = 4, - branch_gate = 5, - branch_mmc = 6, - branch_inverter = 7, - branch_factor = 8, - branch_ddrclk = 9, - branch_half_divider = 10, -}; +struct bpf_perf_event_data_kern; -struct rockchip_clk_branch { - unsigned int id; - enum rockchip_clk_branch_type branch_type; - const char *name; - const char * const *parent_names; - u8 num_parents; - unsigned long flags; - int muxdiv_offset; - u8 mux_shift; - u8 mux_width; - u8 mux_flags; - u32 *mux_table; - int div_offset; - u8 div_shift; - u8 div_width; - u8 div_flags; - struct clk_div_table *div_table; - int gate_offset; - u8 gate_shift; - u8 gate_flags; - struct rockchip_clk_branch *child; -}; +typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); -struct rockchip_cpuclk_reg_data { - int core_reg[4]; - u8 div_core_shift[4]; - u32 div_core_mask[4]; - int num_cores; - int mux_core_reg; - u8 mux_core_alt; - u8 mux_core_main; - u8 mux_core_shift; - u32 mux_core_mask; -}; +typedef struct pt_regs bpf_user_pt_regs_t; -struct rockchip_cpuclk_clksel { - int reg; - u32 val; +struct bpf_perf_event_data_kern { + bpf_user_pt_regs_t *regs; + struct perf_sample_data *data; + struct perf_event *event; }; -struct rockchip_cpuclk_rate_table { - unsigned long prate; - struct rockchip_cpuclk_clksel divs[6]; - struct rockchip_cpuclk_clksel pre_muxs[6]; - struct rockchip_cpuclk_clksel post_muxs[6]; -}; +typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64); -struct rockchip_clk_provider { - void *reg_base; - struct clk_onecell_data clk_data; - struct device_node *cru_node; - struct regmap *grf; - spinlock_t lock; -}; +typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64); -struct aux_clk_masks { - u32 eq_sel_mask; - u32 eq_sel_shift; - u32 eq1_mask; - u32 eq2_mask; - u32 xscale_sel_mask; - u32 xscale_sel_shift; - u32 yscale_sel_mask; - u32 yscale_sel_shift; - u32 enable_bit; -}; +typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64); -struct aux_rate_tbl; +struct pcpu_freelist_node; -struct clk_aux { - struct clk_hw hw; - void *reg; - const struct aux_clk_masks *masks; - struct aux_rate_tbl *rtbl; - u8 rtbl_cnt; - spinlock_t *lock; +struct pcpu_freelist_head { + struct pcpu_freelist_node *first; + raw_spinlock_t lock; }; -struct aux_rate_tbl { - u16 xscale; - u16 yscale; - u8 eq; +struct pcpu_freelist { + struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist; + struct pcpu_freelist_head extralist; }; -struct ccu_reset { - void *base; - struct ccu_reset_map *reset_map; - spinlock_t *lock; - struct reset_controller_dev rcdev; -}; +struct stack_map_bucket; -struct ti_adpll_platform_data { - const bool is_type_s; - const int nr_max_inputs; - const int nr_max_outputs; - const int output_index; +struct bpf_stack_map { + struct bpf_map map; + void *elems; + struct pcpu_freelist freelist; + u32 n_buckets; + struct stack_map_bucket *buckets[0]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum ti_adpll_clocks { - TI_ADPLL_DCO = 0, - TI_ADPLL_DCO_GATE = 1, - TI_ADPLL_N2 = 2, - TI_ADPLL_M2 = 3, - TI_ADPLL_M2_GATE = 4, - TI_ADPLL_BYPASS = 5, - TI_ADPLL_HIF = 6, - TI_ADPLL_DIV2 = 7, - TI_ADPLL_CLKOUT = 8, - TI_ADPLL_CLKOUT2 = 9, - TI_ADPLL_M3 = 10, +struct pcpu_freelist_node { + struct pcpu_freelist_node *next; }; -enum ti_adpll_inputs { - TI_ADPLL_CLKINP = 0, - TI_ADPLL_CLKINPULOW = 1, - TI_ADPLL_CLKINPHIF = 2, +struct stack_map_bucket { + struct pcpu_freelist_node fnode; + u32 hash; + u32 nr; + long: 32; + u64 data[0]; }; -enum ti_adpll_s_outputs { - TI_ADPLL_S_DCOCLKLDO = 0, - TI_ADPLL_S_CLKOUT = 1, - TI_ADPLL_S_CLKOUTX2 = 2, - TI_ADPLL_S_CLKOUTHIF = 3, +struct bpf_stack_build_id { + __s32 status; + unsigned char build_id[20]; + union { + __u64 offset; + __u64 ip; + }; }; -enum ti_adpll_lj_outputs { - TI_ADPLL_LJ_CLKDCOLDO = 0, - TI_ADPLL_LJ_CLKOUT = 1, - TI_ADPLL_LJ_CLKOUTLDO = 2, +struct mmap_unlock_irq_work { + struct irq_work irq_work; + struct mm_struct *mm; }; -struct ti_adpll_dco_data { - struct clk_hw hw; -}; +struct vm_unmapped_area_info; -struct ti_adpll_clock; +typedef void (*btf_trace_vm_unmapped_area)(void *, unsigned long, struct vm_unmapped_area_info *); -struct ti_adpll_data { - struct device *dev; - const struct ti_adpll_platform_data *c; - struct device_node *np; - unsigned long pa; - void *iobase; - void *regs; - spinlock_t lock; - const char *parent_names[3]; - struct clk *parent_clocks[3]; - struct ti_adpll_clock *clocks; - struct clk_onecell_data outputs; - struct ti_adpll_dco_data dco; +struct vm_unmapped_area_info { + unsigned long flags; + unsigned long length; + unsigned long low_limit; + unsigned long high_limit; + unsigned long align_mask; + unsigned long align_offset; }; -struct clk_lookup; +typedef void (*btf_trace_vma_mas_szero)(void *, struct maple_tree *, unsigned long, unsigned long); -struct ti_adpll_clock { - struct clk *clk; - struct clk_lookup *cl; - void (*unregister)(struct clk *); -}; +typedef void (*btf_trace_vma_store)(void *, struct maple_tree *, struct vm_area_struct *); -struct clk_lookup { - struct list_head node; - const char *dev_id; - const char *con_id; - struct clk *clk; - struct clk_hw *clk_hw; +typedef void (*btf_trace_exit_mmap)(void *, struct mm_struct *); + +enum { + HUGETLB_SHMFS_INODE = 1, + HUGETLB_ANONHUGE_INODE = 2, }; -struct ti_adpll_clkout_data { - struct ti_adpll_data *adpll; - struct clk_gate gate; - struct clk_hw hw; +enum { + MM_FILEPAGES = 0, + MM_ANONPAGES = 1, + MM_SWAPENTS = 2, + MM_SHMEMPAGES = 3, + NR_MM_COUNTERS = 4, }; -struct reg_offset_data { - u32 base_offset; - unsigned int pipe_mult; - unsigned int evnt_mult; - unsigned int ee_mult; +struct maple_enode; + +struct mmap_arg_struct { + unsigned long addr; + unsigned long len; + unsigned long prot; + unsigned long flags; + unsigned long fd; + unsigned long offset; }; -enum bam_reg { - BAM_CTRL = 0, - BAM_REVISION = 1, - BAM_NUM_PIPES = 2, - BAM_DESC_CNT_TRSHLD = 3, - BAM_IRQ_SRCS = 4, - BAM_IRQ_SRCS_MSK = 5, - BAM_IRQ_SRCS_UNMASKED = 6, - BAM_IRQ_STTS = 7, - BAM_IRQ_CLR = 8, - BAM_IRQ_EN = 9, - BAM_CNFG_BITS = 10, - BAM_IRQ_SRCS_EE = 11, - BAM_IRQ_SRCS_MSK_EE = 12, - BAM_P_CTRL = 13, - BAM_P_RST = 14, - BAM_P_HALT = 15, - BAM_P_IRQ_STTS = 16, - BAM_P_IRQ_CLR = 17, - BAM_P_IRQ_EN = 18, - BAM_P_EVNT_DEST_ADDR = 19, - BAM_P_EVNT_REG = 20, - BAM_P_SW_OFSTS = 21, - BAM_P_DATA_FIFO_ADDR = 22, - BAM_P_DESC_FIFO_ADDR = 23, - BAM_P_EVNT_GEN_TRSHLD = 24, - BAM_P_FIFO_SIZES = 25, +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 bam_chan; +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 bam_device { - void *regs; - struct device *dev; - struct dma_device common; - struct bam_chan *channels; - u32 num_channels; - u32 num_ees; - u32 ee; - bool controlled_remotely; - bool powered_remotely; - u32 active_channels; - const struct reg_offset_data *layout; - struct clk *bamclk; - int irq; - struct tasklet_struct task; +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 bam_desc_hw; +struct trace_event_raw_exit_mmap { + struct trace_entry ent; + struct mm_struct *mm; + struct maple_tree *mt; + char __data[0]; +}; -struct bam_chan { - struct virt_dma_chan vc; - struct bam_device *bdev; - u32 id; - struct dma_slave_config slave; - struct bam_desc_hw *fifo_virt; - dma_addr_t fifo_phys; - unsigned short head; - unsigned short tail; - unsigned int initialized; - unsigned int paused; - unsigned int reconfigure; - struct list_head desc_list; - struct list_head node; +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 bam_desc_hw { - __le32 addr; - __le16 size; - __le16 flags; +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 bam_async_desc { - struct virt_dma_desc vd; - u32 num_desc; - u32 xfer_len; - u16 flags; - struct bam_desc_hw *curr_desc; - struct list_head desc_node; - enum dma_transfer_direction dir; - size_t length; - struct bam_desc_hw desc[0]; +struct vma_iterator { + struct ma_state mas; }; -struct exynos_pmu_context { - struct device *dev; - const struct exynos_pmu_data *pmu_data; +struct maple_alloc { + unsigned long total; + unsigned char node_count; + unsigned int request_count; + struct maple_alloc *slot[61]; }; -struct tps51632_regulator_platform_data { - struct regulator_init_data *reg_init_data; - bool enable_pwm_dvfs; - bool dvfs_step_20mV; - int max_voltage_uV; - int base_voltage_uV; +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 tps51632_chip { - struct device *dev; - struct regulator_desc desc; - struct regulator_dev *rdev; - struct regmap *regmap; +struct anon_vma_name { + struct kref kref; + char name[0]; }; -struct reset_simple_data { - spinlock_t lock; - void *membase; - struct reset_controller_dev rcdev; - bool active_low; - bool status_active_low; - unsigned int reset_us; +struct hstate {}; + +struct mmu_gather_batch { + struct mmu_gather_batch *next; + unsigned int nr; + unsigned int max; + struct encoded_page *encoded_pages[0]; }; -struct hvc_struct; +struct mmu_gather { + struct mm_struct *mm; + unsigned long start; + unsigned long end; + unsigned int fullmm: 1; + unsigned int need_flush_all: 1; + unsigned int freed_tables: 1; + unsigned int delayed_rmap: 1; + unsigned int cleared_ptes: 1; + unsigned int cleared_pmds: 1; + unsigned int cleared_puds: 1; + unsigned int cleared_p4ds: 1; + unsigned int vma_exec: 1; + unsigned int vma_huge: 1; + unsigned int vma_pfn: 1; + unsigned int batch_count; + struct mmu_gather_batch *active; + struct mmu_gather_batch local; + struct page *__pages[8]; +}; -struct 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 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 char_device_struct { + struct char_device_struct *next; + unsigned int major; + unsigned int baseminor; + int minorct; + char name[64]; + struct cdev *cdev; }; -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; +typedef struct kobject *kobj_probe_t(dev_t, int *, void *); + +enum mm_cid_state { + MM_CID_UNSET = 4294967295, + MM_CID_LAZY_PUT = 2147483648, }; -struct vt8500_port { - struct uart_port uart; - char name[16]; - struct clk *clk; - unsigned int clk_predivisor; - unsigned int ier; - unsigned int vt8500_uart_flags; +struct open_flags { + int open_flag; + umode_t mode; + int acc_mode; + int intent; + int lookup_flags; }; -struct mtk_rng { - void *base; - struct clk *clk; - struct hwrng rng; +struct user_arg_ptr { + union { + const char __attribute__((btf_type_tag("user"))) * const __attribute__((btf_type_tag("user"))) *native; + } ptr; }; -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 *); +enum fsconfig_command { + FSCONFIG_SET_FLAG = 0, + FSCONFIG_SET_STRING = 1, + FSCONFIG_SET_BINARY = 2, + FSCONFIG_SET_PATH = 3, + FSCONFIG_SET_PATH_EMPTY = 4, + FSCONFIG_SET_FD = 5, + FSCONFIG_CMD_CREATE = 6, + FSCONFIG_CMD_RECONFIGURE = 7, + FSCONFIG_CMD_CREATE_EXCL = 8, }; -struct drm_mm_scan { - struct drm_mm *mm; +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; + } submit; + struct { + struct work_struct work; + } aio; + }; long: 32; - 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; }; -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 *, int, unsigned int); +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; +}; -typedef void (*btf_trace_drm_vblank_event_delivered)(void *, struct drm_file *, int, unsigned int); +struct fname; -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 dir_private_info { + struct rb_root root; + struct rb_node *curr_node; + struct fname *extra_fname; + long: 32; + loff_t last_pos; + __u32 curr_hash; + __u32 curr_minor_hash; + __u32 next_hash; long: 32; }; -struct trace_event_raw_drm_vblank_event_queued { - struct trace_entry ent; - struct drm_file *file; - int crtc; - unsigned int seq; - char __data[0]; +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 trace_event_raw_drm_vblank_event_delivered { - struct trace_entry ent; - struct drm_file *file; - int crtc; - unsigned int seq; - char __data[0]; +struct ext4_dir_entry_2 { + __le32 inode; + __le16 rec_len; + __u8 name_len; + __u8 file_type; + char name[255]; }; -struct trace_event_data_offsets_drm_vblank_event {}; - -struct trace_event_data_offsets_drm_vblank_event_queued {}; +struct ext4_dir_entry_hash { + __le32 hash; + __le32 minor_hash; +}; -struct trace_event_data_offsets_drm_vblank_event_delivered {}; +struct dx_entry; -struct dpcd_quirk { - u8 oui[3]; - u8 device_id[6]; - bool is_branch; - u32 quirks; +struct dx_frame { + struct buffer_head *bh; + struct dx_entry *entries; + struct dx_entry *at; }; -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, +struct dx_entry { + __le32 hash; + __le32 block; }; -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, +struct fake_dirent { + __le32 inode; + __le16 rec_len; + u8 name_len; + u8 file_type; }; -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, +struct dx_root_info { + __le32 reserved_zero; + u8 hash_version; + u8 info_length; + u8 indirect_levels; + u8 unused_flags; }; -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, +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]; }; -enum dp_dynamic_range { - DP_DYNAMIC_RANGE_VESA = 0, - DP_DYNAMIC_RANGE_CTA = 1, +struct dx_node { + struct fake_dirent fake; + struct dx_entry entries[0]; }; -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, +struct dx_countlimit { + __le16 limit; + __le16 count; }; -struct drm_dp_dpcd_ident { - u8 oui[3]; - u8 device_id[6]; - u8 hw_rev; - u8 sw_major_rev; - u8 sw_minor_rev; +struct ext4_dir_entry { + __le32 inode; + __le16 rec_len; + __le16 name_len; + char name[255]; }; -struct drm_dp_desc { - struct drm_dp_dpcd_ident ident; - u32 quirks; +struct dx_tail { + u32 dt_reserved; + __le32 dt_checksum; }; -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; +struct dx_map_entry { + u32 hash; + u16 offs; + u16 size; }; -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 dx_hash_info { + u32 hash; + u32 minor_hash; + int hash_version; + u32 *seed; }; -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 fscrypt_str { + unsigned char *name; + u32 len; }; -struct dp_aux_backlight { - struct backlight_device *base; - struct drm_dp_aux *aux; - struct drm_edp_backlight_info info; - bool enabled; +struct ext4_filename { + const struct qstr *usr_fname; + struct fscrypt_str disk_name; + struct dx_hash_info hinfo; }; -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 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; }; -enum tps65217_bl_isel { - TPS65217_BL_ISET1 = 1, - TPS65217_BL_ISET2 = 2, +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; }; -enum tps65217_bl_fdim { - TPS65217_BL_FDIM_100HZ = 0, - TPS65217_BL_FDIM_200HZ = 1, - TPS65217_BL_FDIM_500HZ = 2, - TPS65217_BL_FDIM_1000HZ = 3, -}; +typedef enum { + EITHER = 0, + INDEX = 1, + DIRENT = 2, + DIRENT_HTREE = 3, +} dirblock_type_t; -struct tps65217_board; +enum { + PARSE_INVALID = 1, + PARSE_NOT_LONGNAME = 2, + PARSE_EOF = 3, +}; -struct tps65217 { - struct device *dev; - struct tps65217_board *pdata; - struct regulator_desc desc[7]; - struct regmap *regmap; - u8 *strobes; - struct irq_domain *irq_domain; - struct mutex irq_lock; - u8 irq_mask; - int irq; +enum utf16_endian { + UTF16_HOST_ENDIAN = 0, + UTF16_LITTLE_ENDIAN = 1, + UTF16_BIG_ENDIAN = 2, }; -struct tps65217_bl_pdata; +typedef unsigned long long llu; -struct tps65217_board { - struct regulator_init_data *tps65217_init_data[7]; - struct device_node *of_node[7]; - struct tps65217_bl_pdata *bl_pdata; +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 tps65217_bl_pdata { - enum tps65217_bl_isel isel; - enum tps65217_bl_fdim fdim; - int dft_brightness; +struct __fat_dirent { + long d_ino; + __kernel_off_t d_off; + unsigned short d_reclen; + char d_name[256]; }; -struct dma_buf_list { - struct list_head head; - struct mutex lock; +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; }; -enum dma_resv_usage { - DMA_RESV_USAGE_KERNEL = 0, - DMA_RESV_USAGE_WRITE = 1, - DMA_RESV_USAGE_READ = 2, - DMA_RESV_USAGE_BOOKKEEP = 3, +struct fat_slot_info { + loff_t i_pos; + loff_t slot_off; + int nr_slots; + struct msdos_dir_entry *de; + struct buffer_head *bh; + long: 32; }; -struct dma_buf_import_sync_file { - __u32 flags; - __s32 fd; +enum nfs_param { + Opt_ac = 0, + Opt_acdirmax = 1, + Opt_acdirmin = 2, + Opt_acl = 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 = 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, + Opt_xprtsec = 54, }; -struct dma_fence_unwrap { - struct dma_fence *chain; - struct dma_fence *array; - unsigned int index; +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, }; -struct dma_buf_export_sync_file { - __u32 flags; - __s32 fd; +enum { + Opt_lookupcache_all = 0, + Opt_lookupcache_none = 1, + Opt_lookupcache_positive = 2, }; -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; +enum { + Opt_local_lock_all = 0, + Opt_local_lock_flock = 1, + Opt_local_lock_none = 2, + Opt_local_lock_posix = 3, }; -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; +enum { + Opt_write_lazy = 0, + Opt_write_eager = 1, + Opt_write_wait = 2, }; -struct pseudo_fs_context { - const struct super_operations *ops; - const struct xattr_handler **xattr; - const struct dentry_operations *dops; - unsigned long magic; +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, }; -struct dma_buf_sync { - __u64 flags; +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 nand_onfi_vendor_macronix { - u8 reserved; - u8 reliability_func; +enum { + Opt_xprtsec_none = 0, + Opt_xprtsec_tls = 1, + Opt_xprtsec_mtls = 2, + nr__Opt_xprtsec = 3, }; -struct rspi_data; - -struct spi_ops { - int (*set_config_register)(struct rspi_data *, int); - int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *); - u16 extra_mode_bits; - u16 min_div; - u16 max_div; - u16 flags; - u16 fifo_size; - u8 num_hw_ss; +struct compat_nfs_string { + compat_uint_t len; + compat_uptr_t data; }; -struct rspi_data { - void *addr; - u32 speed_hz; - struct spi_controller *ctlr; - struct platform_device *pdev; - wait_queue_head_t wait; - spinlock_t lock; - struct clk *clk; - u16 spcmd; - u8 spsr; - u8 sppcr; - int rx_irq; - int tx_irq; - const struct spi_ops *ops; - unsigned int dma_callbacked: 1; - unsigned int byte_access: 1; +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 rspi_plat_data { - unsigned int dma_tx_id; - unsigned int dma_rx_id; - u16 num_chipselect; +struct nfs2_fh { + char data[32]; }; -struct mdio_mux_child_bus; +struct nfs3_fh { + unsigned short size; + unsigned char data[64]; +}; -struct mdio_mux_parent_bus { - struct mii_bus *mii_bus; - int current_child; - int parent_id; - void *switch_data; - int (*switch_fn)(int, int, void *); - struct mdio_mux_child_bus *children; +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 mdio_mux_child_bus { - struct mii_bus *mii_bus; - struct mdio_mux_parent_bus *parent; - struct mdio_mux_child_bus *next; - int bus_number; +struct nfs_string { + unsigned int len; + const char __attribute__((btf_type_tag("user"))) *data; }; -struct emac_board_info { - struct clk *clk; - struct device *dev; - struct platform_device *pdev; - spinlock_t lock; - void *membase; - u32 msg_enable; - struct net_device *ndev; - u16 tx_fifo_stat; - int emacrx_completed_flag; - struct device_node *phy_node; - unsigned int link; - unsigned int speed; - unsigned int duplex; - phy_interface_t phy_interface; - struct dma_chan *rx_chan; - phys_addr_t emac_rx_fifo; +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; }; -struct emac_dma_req { - struct emac_board_info *db; - struct dma_async_tx_descriptor *desc; - struct sk_buff *skb; - dma_addr_t rxbuf; - int count; +struct nfs4_ds_server { + struct list_head list; + struct rpc_clnt *rpc_clnt; }; -struct mv643xx_eth_stats { - char stat_string[32]; - int sizeof_stat; - int netdev_off; - int mp_off; +struct nfs_netns_client { + struct kobject kobject; + struct kobject nfs_net_kobj; + struct net *net; + const char __attribute__((btf_type_tag("rcu"))) *identifier; }; -struct mib_counters { - u64 good_octets_received; - u32 bad_octets_received; - u32 internal_mac_transmit_err; - u32 good_frames_received; - u32 bad_frames_received; - u32 broadcast_frames_received; - u32 multicast_frames_received; - u32 frames_64_octets; - u32 frames_65_to_127_octets; - u32 frames_128_to_255_octets; - u32 frames_256_to_511_octets; - u32 frames_512_to_1023_octets; - u32 frames_1024_to_max_octets; - u64 good_octets_sent; - u32 good_frames_sent; - u32 excessive_collision; - u32 multicast_frames_sent; - u32 broadcast_frames_sent; - u32 unrec_mac_control_received; - u32 fc_sent; - u32 good_fc_received; - u32 bad_fc_received; - u32 undersize_received; - u32 fragments_received; - u32 oversize_received; - u32 jabber_received; - u32 mac_receive_error; - u32 bad_crc_event; - u32 collision; - u32 late_collision; - u32 rx_discard; - u32 rx_overrun; +struct nfs4_op_map { + union { + unsigned long longs[3]; + u32 words[3]; + } u; }; -struct rx_desc; +struct nfs41_state_protection { + u32 how; + struct nfs4_op_map enforce; + struct nfs4_op_map allow; +}; -struct rx_queue { - int index; - int rx_ring_size; - int rx_desc_count; - int rx_curr_desc; - int rx_used_desc; - struct rx_desc *rx_desc_area; - dma_addr_t rx_desc_dma; - int rx_desc_area_size; - struct sk_buff **rx_skb; +struct nfs41_exchange_id_res { + u64 clientid; + u32 seqid; + u32 flags; + struct nfs41_server_owner *server_owner; + struct nfs41_server_scope *server_scope; + struct nfs41_impl_id *impl_id; + struct nfs41_state_protection state_protect; }; -struct tx_desc; +typedef void (*btf_trace_nlmclnt_test)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); -struct tx_queue { - int index; - int tx_ring_size; - int tx_desc_count; - int tx_curr_desc; - int tx_used_desc; - int tx_stop_threshold; - int tx_wake_threshold; - char *tso_hdrs; - dma_addr_t tso_hdrs_dma; - struct tx_desc *tx_desc_area; - char *tx_desc_mapping; - dma_addr_t tx_desc_dma; - int tx_desc_area_size; - struct sk_buff_head tx_skb; - unsigned long tx_packets; - unsigned long tx_bytes; - unsigned long tx_dropped; -}; +typedef void (*btf_trace_nlmclnt_lock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); -struct mv643xx_eth_shared_private; +typedef void (*btf_trace_nlmclnt_unlock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); -struct mv643xx_eth_private { - struct mv643xx_eth_shared_private *shared; - void *base; - int port_num; - struct net_device *dev; - struct timer_list mib_counters_timer; - spinlock_t mib_counters_lock; - struct mib_counters mib_counters; - struct work_struct tx_timeout_task; - struct napi_struct napi; - u32 int_mask; - u8 oom; - u8 work_link; - u8 work_tx; - u8 work_tx_end; - u8 work_rx; - u8 work_rx_refill; - int skb_size; - int rx_ring_size; - unsigned long rx_desc_sram_addr; - int rx_desc_sram_size; - int rxq_count; - struct timer_list rx_oom; - struct rx_queue rxq[8]; - int tx_ring_size; - unsigned long tx_desc_sram_addr; - int tx_desc_sram_size; - int txq_count; - struct tx_queue txq[8]; - struct clk *clk; - unsigned int t_clk; +typedef void (*btf_trace_nlmclnt_grant)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); + +struct trace_event_raw_nlmclnt_lock_event { + struct trace_entry ent; + u32 oh; + u32 svid; + u32 fh; + unsigned long status; + u64 start; + u64 len; + u32 __data_loc_addr; + char __data[0]; long: 32; }; -struct mv643xx_eth_shared_private { - void *base; - u32 win_protect; - int extended_rx_coal_limit; - int tx_bw_control; - int tx_csum_limit; - struct clk *clk; +struct trace_event_data_offsets_nlmclnt_lock_event { + u32 addr; }; -struct rx_desc { - u32 cmd_sts; - u16 buf_size; - u16 byte_cnt; - u32 buf_ptr; - u32 next_desc_ptr; +struct ubifs_budget_req { + unsigned int fast: 1; + unsigned int recalculate: 1; + unsigned int new_page: 1; + unsigned int dirtied_page: 1; + unsigned int new_dent: 1; + unsigned int mod_dent: 1; + unsigned int new_ino: 1; + unsigned int new_ino_d: 13; + unsigned int dirtied_ino: 4; + long: 8; + unsigned int dirtied_ino_d: 15; + int idx_growth; + int data_growth; + int dd_growth; }; -struct tx_desc { - u32 cmd_sts; - u16 l4i_chk; - u16 byte_cnt; - u32 buf_ptr; - u32 next_desc_ptr; +struct ubifs_data_node { + struct ubifs_ch ch; + __u8 key[16]; + __le32 size; + __le16 compr_type; + __le16 compr_size; + __u8 data[0]; }; -struct mv643xx_eth_shared_platform_data { - struct mbus_dram_target_info *dram; - int tx_csum_limit; -}; +struct ahash_request; -struct mv643xx_eth_platform_data { - struct platform_device *shared; - int port_number; - int phy_addr; - struct device_node *phy_node; - u8 mac_addr[6]; - int speed; - int duplex; - phy_interface_t interface; - int rx_queue_count; - int tx_queue_count; - int rx_queue_size; - int tx_queue_size; - unsigned long rx_sram_addr; - int rx_sram_size; - unsigned long tx_sram_addr; - int tx_sram_size; +struct ahash_alg { + int (*init)(struct ahash_request *); + int (*update)(struct ahash_request *); + int (*final)(struct ahash_request *); + int (*finup)(struct ahash_request *); + int (*digest)(struct ahash_request *); + int (*export)(struct ahash_request *, void *); + int (*import)(struct ahash_request *, const void *); + int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_ahash *); + void (*exit_tfm)(struct crypto_ahash *); + int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *); + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct hash_alg_common halg; }; -struct tso_t { - int next_frag_idx; - int size; - void *data; - u16 ip_id; - u8 tlen; - bool ipv6; - u32 tcp_seq; +struct ahash_request { + struct crypto_async_request base; + unsigned int nbytes; + struct scatterlist *src; + u8 *result; + void *priv; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + void *__ctx[0]; }; -struct emac_variant { - u32 default_syscon_value; - const struct reg_field *syscon_field; - bool soc_has_internal_phy; - bool support_mii; - bool support_rmii; - bool support_rgmii; - u8 rx_delay_max; - u8 tx_delay_max; +struct crypto_ahash { + bool using_shash; + unsigned int statesize; + unsigned int reqsize; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct crypto_tfm base; }; -enum dma_irq_dir { - DMA_DIR_RX = 1, - DMA_DIR_TX = 2, - DMA_DIR_RXTX = 3, +struct ahash_instance { + void (*free)(struct ahash_instance *); + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + union { + struct { + char head[128]; + struct crypto_instance base; + } s; + struct ahash_alg alg; + }; }; -enum dma_irq_status { - tx_hard_error = 1, - tx_hard_error_bump_tc = 2, - handle_rx = 4, - handle_tx = 8, +struct crypto_hash_walk { + char *data; + unsigned int offset; + unsigned int flags; + struct page *pg; + unsigned int entrylen; + unsigned int total; + struct scatterlist *sg; }; -struct sunxi_priv_data { - struct clk *ephy_clk; - struct regulator *regulator; - struct reset_control *rst_ephy; - const struct emac_variant *variant; - struct regmap_field *regmap_field; - bool internal_phy_powered; - bool use_internal_phy; - void *mux_handle; +struct crypto_ahash_spawn { + struct crypto_spawn base; }; -struct dwc3_of_simple { - struct device *dev; - struct clk_bulk_data *clks; - int num_clocks; - struct reset_control *resets; - bool need_reset; +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; }; -enum usbhs_omap_port_mode { - OMAP_USBHS_PORT_MODE_UNUSED = 0, - OMAP_EHCI_PORT_MODE_PHY = 1, - OMAP_EHCI_PORT_MODE_TLL = 2, - OMAP_EHCI_PORT_MODE_HSIC = 3, - OMAP_OHCI_PORT_MODE_PHY_6PIN_DATSE0 = 4, - OMAP_OHCI_PORT_MODE_PHY_6PIN_DPDM = 5, - OMAP_OHCI_PORT_MODE_PHY_3PIN_DATSE0 = 6, - OMAP_OHCI_PORT_MODE_PHY_4PIN_DPDM = 7, - OMAP_OHCI_PORT_MODE_TLL_6PIN_DATSE0 = 8, - OMAP_OHCI_PORT_MODE_TLL_6PIN_DPDM = 9, - OMAP_OHCI_PORT_MODE_TLL_3PIN_DATSE0 = 10, - OMAP_OHCI_PORT_MODE_TLL_4PIN_DPDM = 11, - OMAP_OHCI_PORT_MODE_TLL_2PIN_DATSE0 = 12, - OMAP_OHCI_PORT_MODE_TLL_2PIN_DPDM = 13, -}; +typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *); -struct omap_hcd { - struct usb_phy *phy[3]; - int nports; -}; +typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *); -struct ehci_hcd_omap_platform_data; +typedef void (*btf_trace_block_rq_requeue)(void *, struct request *); -struct ohci_hcd_omap_platform_data; +typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int); -struct usbhs_omap_platform_data { - int nports; - enum usbhs_omap_port_mode port_mode[3]; - int reset_gpio_port[3]; - struct regulator *regulator[3]; - struct ehci_hcd_omap_platform_data *ehci_data; - struct ohci_hcd_omap_platform_data *ohci_data; - unsigned int single_ulpi_bypass: 1; - unsigned int es2_compatibility: 1; - unsigned int phy_reset: 1; -}; +typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int); -struct ehci_hcd_omap_platform_data { - enum usbhs_omap_port_mode port_mode[3]; - int reset_gpio_port[3]; - struct regulator *regulator[3]; - unsigned int phy_reset: 1; -}; +typedef void (*btf_trace_block_rq_insert)(void *, struct request *); -struct ohci_hcd_omap_platform_data { - enum usbhs_omap_port_mode port_mode[3]; - unsigned int es2_compatibility: 1; -}; +typedef void (*btf_trace_block_rq_issue)(void *, struct request *); -enum usb3503_mode { - USB3503_MODE_UNKNOWN = 0, - USB3503_MODE_HUB = 1, - USB3503_MODE_STANDBY = 2, - USB3503_MODE_BYPASS = 3, -}; +typedef void (*btf_trace_block_rq_merge)(void *, struct request *); -struct usb3503 { - enum usb3503_mode mode; - struct regmap *regmap; - struct device *dev; - struct clk *clk; - u8 port_off_mask; - struct gpio_desc *bypass; - struct gpio_desc *intn; - struct gpio_desc *reset; - struct gpio_desc *connect; - bool secondary_ref_clk; -}; +typedef void (*btf_trace_block_io_start)(void *, struct request *); -struct usb3503_platform_data { - enum usb3503_mode initial_mode; - u8 port_off_mask; -}; +typedef void (*btf_trace_block_io_done)(void *, struct request *); -enum stmpe_partnum { - STMPE610 = 0, - STMPE801 = 1, - STMPE811 = 2, - STMPE1600 = 3, - STMPE1601 = 4, - STMPE1801 = 5, - STMPE2401 = 6, - STMPE2403 = 7, - STMPE_NBR_PARTS = 8, -}; +typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *); -enum stmpe_block { - STMPE_BLOCK_GPIO = 1, - STMPE_BLOCK_KEYPAD = 2, - STMPE_BLOCK_TOUCHSCREEN = 4, - STMPE_BLOCK_ADC = 8, - STMPE_BLOCK_PWM = 16, - STMPE_BLOCK_ROTATOR = 32, -}; +typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); -struct touchscreen_properties { - unsigned int max_x; - unsigned int max_y; - bool invert_x; - bool invert_y; - bool swap_x_y; -}; +typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); -struct stmpe; +typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *); -struct stmpe_touch { - struct stmpe *stmpe; - struct input_dev *idev; - struct delayed_work work; - struct device *dev; - struct touchscreen_properties prop; - u8 ave_ctrl; - u8 touch_det_delay; - u8 settling; - u8 fraction_z; - u8 i_drive; -}; +typedef void (*btf_trace_block_bio_queue)(void *, struct bio *); -struct stmpe_client_info; +typedef void (*btf_trace_block_getrq)(void *, struct bio *); -struct stmpe_variant_info; +typedef void (*btf_trace_block_plug)(void *, struct request_queue *); -struct stmpe_platform_data; +typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); -struct stmpe { - struct regulator *vcc; - struct regulator *vio; - struct mutex lock; - struct mutex irq_lock; - struct device *dev; - struct irq_domain *domain; - void *client; - struct stmpe_client_info *ci; - enum stmpe_partnum partnum; - struct stmpe_variant_info *variant; - const u8 *regs; - int irq; - int num_gpios; - u8 ier[2]; - u8 oldier[2]; - struct stmpe_platform_data *pdata; - u8 sample_time; - u8 mod_12b; - u8 ref_sel; - u8 adc_freq; +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, }; -struct cec_msg_entry { - struct list_head list; - struct cec_msg msg; +enum { + PERCPU_REF_INIT_ATOMIC = 1, + PERCPU_REF_INIT_DEAD = 2, + PERCPU_REF_ALLOW_REINIT = 4, }; -struct cec_caps { - char driver[32]; - char name[32]; - __u32 available_log_addrs; - __u32 capabilities; - __u32 version; +enum { + sysctl_hung_task_timeout_secs = 0, }; -struct hwmon_ops; +struct blk_plug_cb; -struct hwmon_channel_info; +typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool); -struct hwmon_chip_info { - const struct hwmon_ops *ops; - const struct hwmon_channel_info * const *info; +struct blk_plug_cb { + struct list_head list; + blk_plug_cb_fn callback; + void *data; }; -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 trace_event_raw_block_buffer { + struct trace_entry ent; + dev_t dev; + long: 32; + sector_t sector; + size_t size; + char __data[0]; + long: 32; }; -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 trace_event_raw_block_rq_requeue { + struct trace_entry ent; + dev_t dev; + long: 32; + sector_t sector; + unsigned int nr_sector; + char rwbs[8]; + u32 __data_loc_cmd; + char __data[0]; }; -struct hwmon_channel_info { - enum hwmon_sensor_types type; - const u32 *config; +struct trace_event_raw_block_rq_completion { + struct trace_entry ent; + dev_t dev; + long: 32; + sector_t sector; + unsigned int nr_sector; + int error; + char rwbs[8]; + u32 __data_loc_cmd; + char __data[0]; + long: 32; }; -enum hwmon_chip_attributes { - hwmon_chip_temp_reset_history = 0, - hwmon_chip_in_reset_history = 1, - hwmon_chip_curr_reset_history = 2, - hwmon_chip_power_reset_history = 3, - hwmon_chip_register_tz = 4, - hwmon_chip_update_interval = 5, - hwmon_chip_alarms = 6, - hwmon_chip_samples = 7, - hwmon_chip_curr_samples = 8, - hwmon_chip_in_samples = 9, - hwmon_chip_power_samples = 10, - hwmon_chip_temp_samples = 11, - hwmon_chip_beep_enable = 12, +struct trace_event_raw_block_rq { + struct trace_entry ent; + dev_t dev; + long: 32; + sector_t sector; + unsigned int nr_sector; + unsigned int bytes; + char rwbs[8]; + char comm[16]; + u32 __data_loc_cmd; + char __data[0]; + long: 32; }; -enum hwmon_temp_attributes { - hwmon_temp_enable = 0, - hwmon_temp_input = 1, - hwmon_temp_type = 2, - hwmon_temp_lcrit = 3, - hwmon_temp_lcrit_hyst = 4, - hwmon_temp_min = 5, - hwmon_temp_min_hyst = 6, - hwmon_temp_max = 7, - hwmon_temp_max_hyst = 8, - hwmon_temp_crit = 9, - hwmon_temp_crit_hyst = 10, - hwmon_temp_emergency = 11, - hwmon_temp_emergency_hyst = 12, - hwmon_temp_alarm = 13, - hwmon_temp_lcrit_alarm = 14, - hwmon_temp_min_alarm = 15, - hwmon_temp_max_alarm = 16, - hwmon_temp_crit_alarm = 17, - hwmon_temp_emergency_alarm = 18, - hwmon_temp_fault = 19, - hwmon_temp_offset = 20, - hwmon_temp_label = 21, - hwmon_temp_lowest = 22, - hwmon_temp_highest = 23, - hwmon_temp_reset_history = 24, - hwmon_temp_rated_min = 25, - hwmon_temp_rated_max = 26, - hwmon_temp_beep = 27, +struct trace_event_raw_block_bio_complete { + struct trace_entry ent; + dev_t dev; + long: 32; + sector_t sector; + unsigned int nr_sector; + int error; + char rwbs[8]; + char __data[0]; }; -struct lm95245_data { - struct regmap *regmap; - struct mutex update_lock; - int interval; +struct trace_event_raw_block_bio { + struct trace_entry ent; + dev_t dev; + long: 32; + sector_t sector; + unsigned int nr_sector; + char rwbs[8]; + char comm[16]; + char __data[0]; + long: 32; }; -enum dev_pm_opp_event { - OPP_EVENT_ADD = 0, - OPP_EVENT_REMOVE = 1, - OPP_EVENT_ENABLE = 2, - OPP_EVENT_DISABLE = 3, - OPP_EVENT_ADJUST_VOLTAGE = 4, +struct trace_event_raw_block_plug { + struct trace_entry ent; + char comm[16]; + char __data[0]; }; -struct em_data_callback {}; - -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 trace_event_raw_block_unplug { + struct trace_entry ent; + int nr_rq; + char comm[16]; + char __data[0]; }; -struct menu_device { - int needs_update; - int tick_wakeup; - u64 next_timer_ns; - unsigned int bucket; - unsigned int correction_factor[12]; - unsigned int intervals[8]; - int interval_ptr; +struct trace_event_raw_block_split { + struct trace_entry ent; + dev_t dev; + long: 32; + sector_t sector; + sector_t new_sector; + char rwbs[8]; + char comm[16]; + char __data[0]; }; -struct mmci_host; - -struct variant_data { - unsigned int clkreg; - unsigned int clkreg_enable; - unsigned int clkreg_8bit_bus_enable; - unsigned int clkreg_neg_edge_enable; - unsigned int cmdreg_cpsm_enable; - unsigned int cmdreg_lrsp_crc; - unsigned int cmdreg_srsp_crc; - unsigned int cmdreg_srsp; - unsigned int cmdreg_stop; - unsigned int datalength_bits; - unsigned int fifosize; - unsigned int fifohalfsize; - unsigned int data_cmd_enable; - unsigned int datactrl_mask_ddrmode; - unsigned int datactrl_mask_sdio; - unsigned int datactrl_blocksz; - u8 datactrl_any_blocksz: 1; - u8 dma_power_of_2: 1; - u8 datactrl_first: 1; - u8 datacnt_useless: 1; - u8 st_sdio: 1; - u8 st_clkdiv: 1; - u8 stm32_clkdiv: 1; - u32 pwrreg_powerup; - u32 f_max; - u8 signal_direction: 1; - u8 pwrreg_clkgate: 1; - u8 busy_detect: 1; - u8 busy_timeout: 1; - u32 busy_dpsm_flag; - u32 busy_detect_flag; - u32 busy_detect_mask; - u8 pwrreg_nopower: 1; - u8 explicit_mclk_control: 1; - u8 qcom_fifo: 1; - u8 qcom_dml: 1; - u8 reversed_irq_handling: 1; - u8 mmcimask1: 1; - unsigned int irq_pio_mask; - u32 start_err; - u32 opendrain; - u8 dma_lli: 1; - u32 stm32_idmabsize_mask; - u32 stm32_idmabsize_align; - void (*init)(struct mmci_host *); +struct trace_event_raw_block_bio_remap { + struct trace_entry ent; + dev_t dev; + long: 32; + sector_t sector; + unsigned int nr_sector; + dev_t old_dev; + sector_t old_sector; + char rwbs[8]; + char __data[0]; }; -enum mmci_busy_state { - MMCI_BUSY_WAITING_FOR_START_IRQ = 0, - MMCI_BUSY_WAITING_FOR_END_IRQ = 1, - MMCI_BUSY_DONE = 2, +struct trace_event_raw_block_rq_remap { + struct trace_entry ent; + dev_t dev; + long: 32; + 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]; + long: 32; }; -struct mmci_platform_data; - -struct mmci_host_ops; +struct trace_event_data_offsets_block_buffer {}; -struct mmci_host { - phys_addr_t phybase; - void *base; - struct mmc_request *mrq; - struct mmc_command *cmd; - struct mmc_command stop_abort; - struct mmc_data *data; - struct mmc_host *mmc; - struct clk *clk; - u8 singleirq: 1; - struct reset_control *rst; - spinlock_t lock; - unsigned int mclk; - unsigned int clock_cache; - unsigned int cclk; - u32 pwr_reg; - u32 pwr_reg_add; - u32 clk_reg; - u32 clk_reg_add; - u32 datactrl_reg; - enum mmci_busy_state busy_state; - u32 busy_status; - u32 mask1_reg; - u8 vqmmc_enabled: 1; - struct mmci_platform_data *plat; - struct mmc_host_ops *mmc_ops; - struct mmci_host_ops *ops; - struct variant_data *variant; - void *variant_priv; - struct pinctrl *pinctrl; - struct pinctrl_state *pins_opendrain; - u8 hw_designer; - u8 hw_revision: 4; - struct timer_list timer; - unsigned int oldstat; - u32 irq_action; - struct sg_mapping_iter sg_miter; - unsigned int size; - int (*get_rx_fifocnt)(struct mmci_host *, u32, int); - u8 use_dma: 1; - u8 dma_in_progress: 1; - void *dma_priv; - s32 next_cookie; - struct delayed_work ux500_busy_timeout_work; +struct trace_event_data_offsets_block_rq_requeue { + u32 cmd; }; -struct mmci_platform_data { - unsigned int ocr_mask; - unsigned int (*status)(struct device *); +struct trace_event_data_offsets_block_rq_completion { + u32 cmd; }; -struct mmci_host_ops { - int (*validate_data)(struct mmci_host *, struct mmc_data *); - int (*prep_data)(struct mmci_host *, struct mmc_data *, bool); - void (*unprep_data)(struct mmci_host *, struct mmc_data *, int); - u32 (*get_datactrl_cfg)(struct mmci_host *); - void (*get_next_data)(struct mmci_host *, struct mmc_data *); - int (*dma_setup)(struct mmci_host *); - void (*dma_release)(struct mmci_host *); - int (*dma_start)(struct mmci_host *, unsigned int *); - void (*dma_finalize)(struct mmci_host *, struct mmc_data *); - void (*dma_error)(struct mmci_host *); - void (*set_clkreg)(struct mmci_host *, unsigned int); - void (*set_pwrreg)(struct mmci_host *, unsigned int); - bool (*busy_complete)(struct mmci_host *, struct mmc_command *, u32, u32); - void (*pre_sig_volt_switch)(struct mmci_host *); - int (*post_sig_volt_switch)(struct mmci_host *, struct mmc_ios *); +struct trace_event_data_offsets_block_rq { + u32 cmd; }; -struct mmci_dmae_next { - struct dma_async_tx_descriptor *desc; - struct dma_chan *chan; -}; +struct trace_event_data_offsets_block_bio_complete {}; -struct mmci_dmae_priv { - struct dma_chan *cur; - struct dma_chan *rx_channel; - struct dma_chan *tx_channel; - struct dma_async_tx_descriptor *desc_current; - struct mmci_dmae_next next_data; -}; +struct trace_event_data_offsets_block_bio {}; -struct led_lookup_data { - struct list_head list; - const char *provider; - const char *dev_id; - const char *con_id; -}; +struct trace_event_data_offsets_block_plug {}; -struct transient_trig_data { - int activate; - int state; - int restore_state; - unsigned long duration; - struct timer_list timer; - struct led_classdev *led_cdev; -}; +struct trace_event_data_offsets_block_unplug {}; -struct scmi_msg_payld { - __le32 msg_header; - __le32 msg_payload[0]; -}; +struct trace_event_data_offsets_block_split {}; -struct scmi_driver { - const char *name; - int (*probe)(struct scmi_device *); - void (*remove)(struct scmi_device *); - const struct scmi_device_id *id_table; - struct device_driver driver; -}; +struct trace_event_data_offsets_block_bio_remap {}; -struct scmi_power_proto_ops { - int (*num_domains_get)(const struct scmi_protocol_handle *); - const char * (*name_get)(const struct scmi_protocol_handle *, u32); - int (*state_set)(const struct scmi_protocol_handle *, u32, u32); - int (*state_get)(const struct scmi_protocol_handle *, u32, u32 *); -}; +struct trace_event_data_offsets_block_rq_remap {}; -struct scmi_pm_domain { - struct generic_pm_domain genpd; - const struct scmi_protocol_handle *ph; - const char *name; - u32 domain; +struct io_madvise { + struct file *file; long: 32; + u64 addr; + u32 len; + u32 advice; }; -struct digicolor_timer { - struct clock_event_device ce; - void *base; - u32 ticks_per_jiffy; - int timer_id; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct io_fadvise { + struct file *file; long: 32; + u64 offset; + u32 len; + u32 advice; }; -enum { - TIMER_A = 0, - TIMER_B = 1, - TIMER_C = 2, - TIMER_D = 3, - TIMER_E = 4, - TIMER_F = 5, - TIMER_G = 6, - TIMER_H = 7, +struct compat_iovec { + compat_uptr_t iov_base; + compat_size_t iov_len; }; -struct kona_bcm_timers { - int tmr_irq; - void *tmr_regs; -}; +typedef size_t (*iov_ustep_f)(void __attribute__((btf_type_tag("user"))) *, size_t, size_t, void *, void *); -enum nvec_msg_category { - NVEC_MSG_RX = 0, - NVEC_MSG_TX = 1, -}; +typedef size_t (*iov_step_f)(void *, size_t, size_t, void *, void *); -enum nvec_sleep_subcmds { - GLOBAL_EVENTS = 0, - AP_PWR_DOWN = 1, - AP_SUSPEND = 2, -}; +typedef s32 compat_ssize_t; -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 iov_iter_state { + size_t iov_offset; + size_t count; + unsigned long nr_segs; }; -struct mbox_controller; +union gic_base { + void *common_base; + void __attribute__((btf_type_tag("percpu"))) **percpu_base; +}; -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 gic_chip_data { + union gic_base dist_base; + union gic_base cpu_base; + void *raw_dist_base; + void *raw_cpu_base; + u32 percpu_offset; + u32 saved_spi_enable[32]; + u32 saved_spi_active[32]; + u32 saved_spi_conf[64]; + u32 saved_spi_target[255]; + u32 __attribute__((btf_type_tag("percpu"))) *saved_ppi_enable; + u32 __attribute__((btf_type_tag("percpu"))) *saved_ppi_active; + u32 __attribute__((btf_type_tag("percpu"))) *saved_ppi_conf; + struct irq_domain *domain; + unsigned int gic_irqs; }; -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 *); - long: 32; - struct hrtimer poll_hrt; - spinlock_t poll_hrt_lock; - struct list_head node; - long: 32; +enum gic_type { + GIC_V2 = 0, + GIC_V3 = 1, }; -struct hi3660_chan_info { - unsigned int dst_irq; - unsigned int ack_irq; +struct gic_kvm_info { + enum gic_type type; + struct resource vcpu; + unsigned int maint_irq; + bool no_maint_irq_mask; + struct resource vctrl; + bool has_v4; + bool has_v4_1; + bool no_hw_deactivation; }; -struct hi3660_mbox { - struct device *dev; +struct mst_intc_chip_data { + raw_spinlock_t lock; + unsigned int irq_start; + unsigned int nr_irqs; void *base; - struct mbox_chan chan[32]; - struct hi3660_chan_info mchan[32]; - struct mbox_controller controller; + bool no_eoi; + struct list_head entry; + u16 saved_polarity_conf[4]; }; -struct aemif_cs_data { - u8 cs; - u16 wstrobe; - u16 rstrobe; - u8 wsetup; - u8 whold; - u8 rsetup; - u8 rhold; - u8 ta; - u8 enable_ss; - u8 enable_ew; - u8 asize; +enum meson_soc_id { + MESON_SOC_G12A = 0, + MESON_SOC_A1 = 1, }; -struct aemif_device { - void *base; +struct phy_meson_g12a_usb2_priv { + struct device *dev; + struct regmap *regmap; struct clk *clk; - unsigned long clk_rate; - u8 num_cs; - int cs_offset; - struct aemif_cs_data cs_data[4]; + struct reset_control *reset; + int soc_id; }; -struct aemif_abus_data; +struct ulpi_device_id; -struct aemif_platform_data { - struct of_dev_auxdata *dev_lookup; - u32 cs_offset; - struct aemif_abus_data *abus_data; - size_t num_abus_data; - struct platform_device *sub_devices; - size_t num_sub_devices; +struct ulpi_driver { + const struct ulpi_device_id *id_table; + int (*probe)(struct ulpi *); + void (*remove)(struct ulpi *); + struct device_driver driver; }; -struct aemif_abus_data { - u32 cs; +struct ulpi_device_id { + __u16 vendor; + __u16 product; + kernel_ulong_t driver_data; }; -struct iio_buffer_access_funcs; - -struct iio_buffer { - unsigned int length; - unsigned long flags; - size_t bytes_per_datum; - enum iio_buffer_direction direction; - const struct iio_buffer_access_funcs *access; - long *scan_mask; - struct list_head demux_list; - wait_queue_head_t pollq; - unsigned int watermark; - bool scan_timestamp; - struct list_head buffer_attr_list; - struct attribute_group buffer_group; - const struct iio_dev_attr **attrs; - void *demux_bounce; - struct list_head attached_entry; - struct list_head buffer_list; - struct kref ref; +struct ulpi { + struct device dev; + struct ulpi_device_id id; + const struct ulpi_ops *ops; + long: 32; }; -struct iio_buffer_access_funcs { - int (*store_to)(struct iio_buffer *, const void *); - int (*read)(struct iio_buffer *, size_t, char __attribute__((btf_type_tag("user"))) *); - size_t (*data_available)(struct iio_buffer *); - int (*remove_from)(struct iio_buffer *, void *); - int (*write)(struct iio_buffer *, size_t, const char __attribute__((btf_type_tag("user"))) *); - size_t (*space_available)(struct iio_buffer *); - int (*request_update)(struct iio_buffer *); - int (*set_bytes_per_datum)(struct iio_buffer *, size_t); - int (*set_length)(struct iio_buffer *, unsigned int); - int (*enable)(struct iio_buffer *, struct iio_dev *); - int (*disable)(struct iio_buffer *, struct iio_dev *); - void (*release)(struct iio_buffer *); - unsigned int modes; - unsigned int flags; -}; +struct ulpi_seq; -struct iio_demux_table { - unsigned int from; - unsigned int to; - unsigned int length; - struct list_head l; +struct qcom_usb_hs_phy { + struct ulpi *ulpi; + struct phy *phy; + struct clk *ref_clk; + struct clk *sleep_clk; + struct regulator *v1p8; + struct regulator *v3p3; + struct reset_control *reset; + struct ulpi_seq *init_seq; + struct extcon_dev *vbus_edev; + struct notifier_block vbus_notify; }; -struct iio_dev_buffer_pair { - struct iio_dev *indio_dev; - struct iio_buffer *buffer; +struct ulpi_seq { + u8 addr; + u8 val; }; -struct iio_device_config { - unsigned int mode; - unsigned int watermark; - const unsigned long *scan_mask; - unsigned int scan_bytes; - bool scan_timestamp; +struct bcm281xx_pin_function; + +struct bcm281xx_pinctrl_data { + void *reg_base; + const struct pinctrl_pin_desc *pins; + const unsigned int npins; + const struct bcm281xx_pin_function *functions; + const unsigned int nfunctions; + struct regmap *regmap; }; -struct pcpu_gen_cookie; +struct bcm281xx_pin_function { + const char *name; + const char * const *groups; + const unsigned int ngroups; +}; -struct gen_cookie { - struct pcpu_gen_cookie __attribute__((btf_type_tag("percpu"))) *local; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - atomic64_t forward_last; - atomic64_t reverse_last; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +enum bcm281xx_pin_type { + BCM281XX_PIN_TYPE_UNKNOWN = 0, + BCM281XX_PIN_TYPE_STD = 1, + BCM281XX_PIN_TYPE_I2C = 2, + BCM281XX_PIN_TYPE_HDMI = 3, }; -struct pcpu_gen_cookie { - local_t nesting; - long: 32; - u64 last; +struct r8a7740_portcr_group { + unsigned int end_pin; + unsigned int offset; }; -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 gpio_device { + struct device dev; + struct cdev chrdev; + int id; + struct device *mockdev; + struct module *owner; + struct gpio_chip *chip; + struct gpio_desc *descs; + int base; + u16 ngpio; + const char *label; + void *data; + struct list_head list; + struct blocking_notifier_head line_state_notifier; + struct blocking_notifier_head device_notifier; + struct rw_semaphore sem; + struct list_head pin_ranges; }; -struct net_fill_args { - u32 portid; - u32 seq; - int flags; - int cmd; - int nsid; - bool add_ref; - int ref_nsid; +struct gpio_get_config { + u32 gpio; + u32 direction; + u32 polarity; + u32 term_en; + u32 term_pull_up; }; -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; +struct rpi_exp_gpio { + struct gpio_chip gc; + struct rpi_firmware *fw; }; -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 gpio_set_config { + u32 gpio; + u32 direction; + u32 polarity; + u32 term_en; + u32 term_pull_up; + u32 state; }; -struct sk_psock_work_state { - u32 len; - u32 off; +struct gpio_get_set_state { + u32 gpio; + u32 state; }; -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; - long: 32; - 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 delayed_work work; - struct rcu_work rwork; -}; +struct pcie_device; -struct sk_msg_sg { - u32 start; - u32 curr; - u32 end; - u32 size; - u32 copybreak; - unsigned long copy[1]; - struct scatterlist data[19]; +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 sk_msg { - struct sk_msg_sg sg; - void *data; - void *data_end; - u32 apply_bytes; - u32 cork_bytes; - u32 flags; - struct sk_buff *skb; - struct sock *sk_redir; - struct sock *sk; - struct list_head list; +struct pcie_device { + int irq; + struct pci_dev *port; + u32 service; + void *priv_data; + struct device device; }; -enum __sk_action { - __SK_DROP = 0, - __SK_PASS = 1, - __SK_REDIRECT = 2, - __SK_NONE = 3, +struct pcie_pme_service_data { + spinlock_t lock; + struct pcie_device *srv; + struct work_struct work; + bool noirq; }; -enum sk_psock_state_bits { - SK_PSOCK_TX_ENABLED = 0, - SK_PSOCK_RX_STRP_ENABLED = 1, +struct fb_cmap_user { + __u32 start; + __u32 len; + __u16 __attribute__((btf_type_tag("user"))) *red; + __u16 __attribute__((btf_type_tag("user"))) *green; + __u16 __attribute__((btf_type_tag("user"))) *blue; + __u16 __attribute__((btf_type_tag("user"))) *transp; }; -enum { - BPF_F_INGRESS = 1, +struct owl_mux_hw { + u32 reg; + u8 shift; + u8 width; }; -struct sk_psock_link { - struct list_head list; - struct bpf_map *map; - void *link_raw; +struct owl_gate_hw { + u32 reg; + u8 bit_idx; + u8 gate_flags; }; -struct tls_strparser { - struct sock *sk; - u32 mark: 8; - u32 stopped: 1; - u32 copy_mode: 1; - u32 mixed_decrypted: 1; - u32 msg_ready: 1; - struct strp_msg stm; - struct sk_buff *anchor; - struct work_struct work; +struct owl_divider_hw { + u32 reg; + u8 shift; + u8 width; + u8 div_flags; + struct clk_div_table *table; }; -struct crypto_aead; +struct clk_factor_table; -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 owl_factor_hw { + u32 reg; + u8 shift; + u8 width; + u8 fct_flags; + struct clk_factor_table *table; }; -struct crypto_aead { - unsigned int authsize; - unsigned int reqsize; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct crypto_tfm base; +union owl_rate { + struct owl_divider_hw div_hw; + struct owl_factor_hw factor_hw; + struct clk_fixed_factor fix_fact_hw; }; -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 owl_clk_common { + struct regmap *regmap; + struct clk_hw hw; }; -struct cipher_context { - char *iv; - char *rec_seq; +struct owl_composite { + struct owl_mux_hw mux_hw; + struct owl_gate_hw gate_hw; + union owl_rate rate; + const struct clk_ops *fix_fact_ops; + struct owl_clk_common common; }; -struct tls_crypto_info { - __u16 version; - __u16 cipher_type; +struct clk_factor_table { + unsigned int val; + unsigned int mul; + unsigned int div; }; -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 at91_clk_pms { + unsigned long rate; + unsigned long parent_rate; + unsigned int status; + unsigned int parent; }; -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 clk_pll___4 { + struct clk_hw hw; + struct regmap *regmap; + u8 id; + u8 div; + u8 range; + u16 mul; + const struct clk_pll_layout *layout; + const struct clk_pll_characteristics *characteristics; + struct at91_clk_pms pms; }; -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 clk_utmi { + struct clk_hw hw; + struct regmap *regmap_pmc; + struct regmap *regmap_sfr; + struct at91_clk_pms pms; }; -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]; +enum sama7g5_pck_parent_hw_id { + PCK_PARENT_HW_MCK0 = 0, + PCK_PARENT_HW_MCK1 = 1, + PCK_PARENT_HW_MCK2 = 2, + PCK_PARENT_HW_MCK3 = 3, + PCK_PARENT_HW_MCK4 = 4, + PCK_PARENT_HW_MAX = 5, }; -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]; +enum sama7g5_pll_parent { + SAMA7G5_PLL_PARENT_MAINCK = 0, + SAMA7G5_PLL_PARENT_MAIN_XTAL = 1, + SAMA7G5_PLL_PARENT_FRACCK = 2, }; -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 sama7g5_pll { + const char *n; + const struct clk_pll_layout *l; + const struct clk_pll_characteristics *c; + struct clk_hw *hw; + unsigned long f; + enum sama7g5_pll_parent p; + u8 t; + u8 eid; + u8 safe_div; }; -struct tls_context { - struct tls_prot_info prot_info; - u8 tx_conf: 3; - u8 rx_conf: 3; - u8 zerocopy_sendfile: 1; - u8 rx_no_pad: 1; - int (*push_pending_record)(struct sock *, int); - void (*sk_write_space)(struct sock *); - void *priv_ctx_tx; - void *priv_ctx_rx; - struct net_device __attribute__((btf_type_tag("rcu"))) *netdev; - struct cipher_context tx; - struct cipher_context rx; - struct scatterlist *partially_sent_record; - u16 partially_sent_offset; - bool splicing_pages; - bool pending_open_record_frags; - struct mutex tx_lock; - unsigned long flags; - struct proto *sk_proto; - struct sock *sk; - void (*sk_destruct)(struct sock *); - union tls_crypto_context crypto_send; - union tls_crypto_context crypto_recv; - struct list_head list; - refcount_t refcount; - struct callback_head rcu; +enum pll_ids { + PLL_ID_CPU = 0, + PLL_ID_SYS = 1, + PLL_ID_DDR = 2, + PLL_ID_IMG = 3, + PLL_ID_BAUD = 4, + PLL_ID_AUDIO = 5, + PLL_ID_ETH = 6, + PLL_ID_MAX = 7, }; -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 pll_type { + PLL_TYPE_FRAC = 0, + PLL_TYPE_DIV = 1, }; -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 pll_component_id { + PLL_COMPID_FRAC = 0, + PLL_COMPID_DIV0 = 1, + PLL_COMPID_DIV1 = 2, }; -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 berlin2_pll_map { + const u8 vcodiv[16]; + u8 mult; + u8 fbdiv_shift; + u8 rfdiv_shift; + u8 divsel_shift; }; -struct pse_control_status { - enum ethtool_podl_pse_admin_state podl_admin_state; - enum ethtool_podl_pse_pw_d_status podl_pw_status; +struct berlin2_pll { + struct clk_hw hw; + void *base; + struct berlin2_pll_map map; }; -struct pse_reply_data { - struct ethnl_reply_data base; - struct pse_control_status status; +struct clkgate_separated { + struct clk_hw hw; + void *enable; + u8 bit_idx; + u8 flags; + spinlock_t *lock; }; -struct pse_control_config { - enum ethtool_podl_pse_admin_state admin_cotrol; +struct hi3559av100_pll_clock { + u32 id; + const char *name; + const char *parent_name; + const u32 ctrl_reg1; + const u8 frac_shift; + const u8 frac_width; + const u8 postdiv1_shift; + const u8 postdiv1_width; + const u8 postdiv2_shift; + const u8 postdiv2_width; + const u32 ctrl_reg2; + const u8 fbdiv_shift; + const u8 fbdiv_width; + const u8 refdiv_shift; + const u8 refdiv_width; }; -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 hi3559av100_clk_pll { + struct clk_hw hw; + u32 id; + void *ctrl_reg1; + u8 frac_shift; + u8 frac_width; + u8 postdiv1_shift; + u8 postdiv1_width; + u8 postdiv2_shift; + u8 postdiv2_width; + void *ctrl_reg2; + u8 fbdiv_shift; + u8 fbdiv_width; + u8 refdiv_shift; + u8 refdiv_width; }; -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 mtk_clk_cpumux { + struct clk_hw hw; + struct regmap *regmap; + u32 reg; + u32 mask; + u8 shift; }; -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; +struct fhctl_offset { + u32 offset_hp_en; + u32 offset_clk_con; + u32 offset_rst_con; + u32 offset_slope0; + u32 offset_slope1; + u32 offset_cfg; + u32 offset_updnlmt; + u32 offset_dds; + u32 offset_dvfs; + u32 offset_mon; }; -struct netdev_notifier_info_ext { - struct netdev_notifier_info info; - union { - u32 mtu; - } ext; -}; +struct mtk_fh; -struct hash_alg_common { - unsigned int digestsize; - unsigned int statesize; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct crypto_alg base; +struct fh_operation { + int (*hopping)(struct mtk_fh *, unsigned int, unsigned int); + int (*ssc_enable)(struct mtk_fh *, u32); }; -struct shash_alg { - int (*init)(struct shash_desc *); - int (*update)(struct shash_desc *, const u8 *, unsigned int); - int (*final)(struct shash_desc *, u8 *); - int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); - int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); - int (*export)(struct shash_desc *, void *); - int (*import)(struct shash_desc *, const void *); - int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); - int (*init_tfm)(struct crypto_shash *); - void (*exit_tfm)(struct crypto_shash *); - int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *); - unsigned int descsize; - long: 32; - long: 32; - long: 32; - long: 32; - union { - struct { - unsigned int digestsize; - unsigned int statesize; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct crypto_alg base; - }; - struct hash_alg_common halg; - }; +struct mtk_clk_pll { + struct clk_hw hw; + void *base_addr; + void *pd_addr; + void *pwr_addr; + void *tuner_addr; + void *tuner_en_addr; + void *pcw_addr; + void *pcw_chg_addr; + void *en_addr; + const struct mtk_pll_data *data; }; -struct krb5_ctx; - -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 fh_pll_regs { + void *reg_hp_en; + void *reg_clk_con; + void *reg_rst_con; + void *reg_slope0; + void *reg_slope1; + void *reg_cfg; + void *reg_updnlmt; + void *reg_dds; + void *reg_dvfs; + void *reg_mon; }; -struct crypto_sync_skcipher; +struct mtk_pllfh_data; -struct crypto_ahash; +struct mtk_fh { + struct mtk_clk_pll clk_pll; + struct fh_pll_regs regs; + struct mtk_pllfh_data *pllfh_data; + const struct fh_operation *ops; + spinlock_t *lock; +}; -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; - long: 32; - atomic64_t seq_send64; - time64_t endtime; - struct xdr_netobj mech_used; +struct fh_pll_state { + void *base; + u32 fh_enable; + u32 ssc_rate; }; -struct crypto_skcipher { - unsigned int reqsize; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct crypto_tfm base; +struct fh_pll_data { + int pll_id; + int fh_id; + int fh_ver; + u32 fhx_offset; + u32 dds_mask; + u32 slope0_value; + u32 slope1_value; + u32 sfstrx_en; + u32 frddsx_en; + u32 fhctlx_en; + u32 tgl_org; + u32 dvfs_tri; + u32 pcwchg; + u32 dt_val; + u32 df_val; + u32 updnlmt_shft; + u32 msk_frddsx_dys; + u32 msk_frddsx_dts; }; -struct crypto_sync_skcipher { - struct crypto_skcipher base; +struct mtk_pllfh_data { + struct fh_pll_state state; + const struct fh_pll_data data; }; -struct ahash_request; +enum fhctl_variant { + FHCTL_PLLFH_V1 = 0, + FHCTL_PLLFH_V2 = 1, +}; -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 statesize; - unsigned int reqsize; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct crypto_tfm base; +struct meson8b_clk_reset_line { + u32 reg; + u8 bit_idx; + bool active_low; }; -struct ahash_request { - struct crypto_async_request base; - unsigned int nbytes; - struct scatterlist *src; - u8 *result; - void *priv; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - void *__ctx[0]; +struct reg_sequence { + unsigned int reg; + unsigned int def; + unsigned int delay_us; }; -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 pll_params_table { + unsigned int m; + unsigned int n; }; -enum xz_mode { - XZ_SINGLE = 0, - XZ_PREALLOC = 1, - XZ_DYNALLOC = 2, +struct meson8b_nb_data { + struct notifier_block nb; + struct clk_hw *cpu_clk; }; -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 meson_clk_hw_data { + struct clk_hw **hws; + unsigned int num; }; -enum { - LOGIC_PIO_INDIRECT = 0, - LOGIC_PIO_CPU_MMIO = 1, +struct meson8b_clk_reset { + struct reset_controller_dev reset; + struct regmap *regmap; }; -struct logic_pio_host_ops; +struct hfpll_data; -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 clk_hfpll { + const struct hfpll_data *d; + int init_done; + struct clk_regmap clkr; + spinlock_t lock; }; -struct logic_pio_host_ops { - u32 (*in)(void *, unsigned long, size_t); - void (*out)(void *, unsigned long, u32, size_t); - u32 (*ins)(void *, unsigned long, void *, size_t, unsigned int); - void (*outs)(void *, unsigned long, const void *, size_t, unsigned int); +struct hfpll_data { + u32 mode_reg; + u32 l_reg; + u32 m_reg; + u32 n_reg; + u32 user_reg; + u32 droop_reg; + u32 config_reg; + u32 status_reg; + u8 lock_bit; + u32 l_val; + u32 droop_val; + u32 config_val; + u32 user_val; + u32 user_vco_mask; + unsigned long low_vco_max_rate; + unsigned long min_rate; + unsigned long max_rate; }; -enum xa_lock_type { - XA_LOCK_IRQ = 1, - XA_LOCK_BH = 2, +struct rockchip_clk_pll { + struct clk_hw hw; + struct clk_mux pll_mux; + const struct clk_ops *pll_mux_ops; + struct notifier_block clk_nb; + void *reg_base; + int lock_offset; + unsigned int lock_shift; + enum rockchip_pll_type type; + u8 flags; + const struct rockchip_pll_rate_table *rate_table; + unsigned int rate_count; + spinlock_t *lock; + struct rockchip_clk_provider *ctx; }; -struct xa_limit { - u32 max; - u32 min; +struct aux_rate_tbl { + u16 xscale; + u16 yscale; + u8 eq; }; -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, +struct frac_rate_tbl { + u32 div; }; -typedef void (*btf_trace_error_report_end)(void *, enum error_detector, unsigned long); +struct aux_clk_masks { + u32 eq_sel_mask; + u32 eq_sel_shift; + u32 eq1_mask; + u32 eq2_mask; + u32 xscale_sel_mask; + u32 xscale_sel_shift; + u32 yscale_sel_mask; + u32 yscale_sel_shift; + u32 enable_bit; +}; -struct trace_event_raw_error_report_template { - struct trace_entry ent; - enum error_detector error_detector; +struct clock_config; + +struct clk_stm32_clock_data; + +struct stm32_rcc_match_data { + struct clk_hw_onecell_data *hw_clks; + unsigned int num_clocks; + const struct clock_config *tab_clocks; + unsigned int maxbinding; + struct clk_stm32_clock_data *clock_data; + u32 clear_offset; + int (*check_security)(void *, const struct clock_config *); + int (*multi_mux)(void *, const struct clock_config *); +}; + +struct clock_config { unsigned long id; - char __data[0]; + int sec_id; + void *clock_cfg; + struct clk_hw * (*func)(struct device *, const struct stm32_rcc_match_data *, void *, spinlock_t *, const struct clock_config *); }; -struct trace_event_data_offsets_error_report_template {}; +struct stm32_gate_cfg; -struct bpf_link; +struct stm32_mux_cfg; -struct bpf_link_ops { - void (*release)(struct bpf_link *); - void (*dealloc)(struct bpf_link *); - int (*detach)(struct bpf_link *); - int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *); - void (*show_fdinfo)(const struct bpf_link *, struct seq_file *); - int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *); - int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *); -}; +struct stm32_div_cfg; -enum bpf_link_type { - BPF_LINK_TYPE_UNSPEC = 0, - BPF_LINK_TYPE_RAW_TRACEPOINT = 1, - BPF_LINK_TYPE_TRACING = 2, - BPF_LINK_TYPE_CGROUP = 3, - BPF_LINK_TYPE_ITER = 4, - BPF_LINK_TYPE_NETNS = 5, - BPF_LINK_TYPE_XDP = 6, - BPF_LINK_TYPE_PERF_EVENT = 7, - BPF_LINK_TYPE_KPROBE_MULTI = 8, - BPF_LINK_TYPE_STRUCT_OPS = 9, - BPF_LINK_TYPE_NETFILTER = 10, - MAX_BPF_LINK_TYPE = 11, +struct clk_stm32_clock_data { + u16 *gate_cpt; + const struct stm32_gate_cfg *gates; + const struct stm32_mux_cfg *muxes; + const struct stm32_div_cfg *dividers; + struct clk_hw * (*is_multi_mux)(struct clk_hw *); }; -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 stm32_gate_cfg { + u16 offset; + u8 bit_idx; + u8 set_clr; }; -enum bpf_cgroup_storage_type { - BPF_CGROUP_STORAGE_SHARED = 0, - BPF_CGROUP_STORAGE_PERCPU = 1, - __BPF_CGROUP_STORAGE_MAX = 2, +struct stm32_mux_cfg { + u16 offset; + u8 shift; + u8 width; + u8 flags; + u32 *table; + u8 ready; }; -enum { - BPF_F_SYSCTL_BASE_NAME = 1, +struct stm32_div_cfg { + u16 offset; + u8 shift; + u8 width; + u8 flags; + u8 ready; + const struct clk_div_table *table; }; -typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64); +struct clk_stm32_gate { + u16 gate_id; + struct clk_hw hw; + void *base; + struct clk_stm32_clock_data *clock_data; + spinlock_t *lock; +}; -typedef u64 (*btf_bpf_get_retval)(); +struct clk_stm32_composite { + u16 gate_id; + u16 mux_id; + u16 div_id; + struct clk_hw hw; + void *base; + struct clk_stm32_clock_data *clock_data; + spinlock_t *lock; +}; -typedef u64 (*btf_bpf_set_retval)(int); +struct clk_stm32_mux { + u16 mux_id; + struct clk_hw hw; + void *base; + struct clk_stm32_clock_data *clock_data; + spinlock_t *lock; +}; -struct bpf_sysctl_kern; +struct clk_stm32_div { + u16 div_id; + struct clk_hw hw; + void *base; + struct clk_stm32_clock_data *clock_data; + spinlock_t *lock; +}; -typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64); +struct multi_mux { + struct clk_hw *hw1; + struct clk_hw *hw2; +}; -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; - long: 32; - u64 tmp_reg; +struct clk_stm32_securiy { + u32 offset; + u8 bit_idx; + unsigned long scmi_id; }; -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); +enum security_clk { + SECF_NONE = 0, + SECF_LPTIM2 = 1, + SECF_LPTIM3 = 2, + SECF_VREF = 3, + SECF_DCMIPP = 4, + SECF_USBPHY = 5, + SECF_TZC = 6, + SECF_ETZPC = 7, + SECF_IWDG1 = 8, + SECF_BSEC = 9, + SECF_STGENC = 10, + SECF_STGENRO = 11, + SECF_USART1 = 12, + SECF_USART2 = 13, + SECF_SPI4 = 14, + SECF_SPI5 = 15, + SECF_I2C3 = 16, + SECF_I2C4 = 17, + SECF_I2C5 = 18, + SECF_TIM12 = 19, + SECF_TIM13 = 20, + SECF_TIM14 = 21, + SECF_TIM15 = 22, + SECF_TIM16 = 23, + SECF_TIM17 = 24, + SECF_DMA3 = 25, + SECF_DMAMUX2 = 26, + SECF_ADC1 = 27, + SECF_ADC2 = 28, + SECF_USBO = 29, + SECF_TSC = 30, + SECF_PKA = 31, + SECF_SAES = 32, + SECF_CRYP1 = 33, + SECF_HASH1 = 34, + SECF_RNG1 = 35, + SECF_BKPSRAM = 36, + SECF_MCE = 37, + SECF_FMC = 38, + SECF_QSPI = 39, + SECF_SDMMC1 = 40, + SECF_SDMMC2 = 41, + SECF_ETH1CK = 42, + SECF_ETH1TX = 43, + SECF_ETH1RX = 44, + SECF_ETH1MAC = 45, + SECF_ETH1STP = 46, + SECF_ETH2CK = 47, + SECF_ETH2TX = 48, + SECF_ETH2RX = 49, + SECF_ETH2MAC = 50, + SECF_ETH2STP = 51, + SECF_MCO1 = 52, + SECF_MCO2 = 53, +}; -struct bpf_sockopt_kern; +enum { + CLK_COMPONENT_TYPE_GATE = 0, + CLK_COMPONENT_TYPE_DIVIDER = 1, + CLK_COMPONENT_TYPE_MUX = 2, + CLK_COMPONENT_TYPE_MAX = 3, +}; -typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *); +struct clk_omap_mux { + struct clk_hw hw; + struct clk_omap_reg reg; + u32 *table; + u32 mask; + u8 shift; + s8 latch; + u8 flags; + u8 saved_parent; +}; -struct bpf_sockopt_kern { - struct sock *sk; - u8 *optval; - u8 *optval_end; - s32 level; - s32 optname; - s32 optlen; - struct task_struct *current_task; - long: 32; - u64 tmp_reg; +struct ti_clk_mux { + u8 bit_shift; + int num_parents; + u16 reg; + u8 module; + const char * const *parents; + u16 flags; }; -struct bpf_cgroup_link; +struct dra7_atl_clock_info; -struct bpf_prog_list { - struct hlist_node node; - struct bpf_prog *prog; - struct bpf_cgroup_link *link; - struct bpf_cgroup_storage *storage[2]; +struct dra7_atl_desc { + struct clk *clk; + struct clk_hw hw; + struct dra7_atl_clock_info *cinfo; + int id; + bool probed; + bool valid; + bool enabled; + u32 bws; + u32 aws; + u32 divider; }; -struct bpf_cgroup_link { - struct bpf_link link; - struct cgroup *cgroup; - enum bpf_attach_type type; +struct dra7_atl_clock_info { + struct device *dev; + void *iobase; + struct dra7_atl_desc *cdesc; }; -struct bpf_cg_run_ctx { - struct bpf_run_ctx run_ctx; - const struct bpf_prog_array_item *prog_item; - int retval; -}; +struct dw_dma_chan; -typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); +struct dw_dma_platform_data; -struct bpf_link_primer { - struct bpf_link *link; - struct file *file; - int fd; - u32 id; +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 bpf_sockopt_buf { - u8 data[32]; +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 bpf_sock_addr_kern { - struct sock *sk; - struct sockaddr *uaddr; - u64 tmp_reg; - void *t_ctx; - long: 32; +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 bpf_cgroup_dev_ctx { - __u32 access_type; - __u32 major; - __u32 minor; +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 memblock { - bool bottom_up; - phys_addr_t current_limit; - struct memblock_type memory; - struct memblock_type reserved; +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; }; -typedef struct pglist_data pg_data_t; - -enum { - DIO_LOCKING = 1, - DIO_SKIP_HOLES = 2, +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; }; -typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); +typedef void (*btf_trace_tegra_dma_tx_status)(void *, struct dma_chan *, dma_cookie_t, struct dma_tx_state *); -struct dio { - int flags; - blk_opf_t opf; - struct gendisk *bio_disk; - struct inode *inode; - loff_t i_size; - dio_iodone_t *end_io; - bool is_pinned; - void *private; - spinlock_t bio_lock; - int page_errors; - int is_async; - bool defer_completion; - bool should_dirty; - int io_error; - unsigned long refcount; - struct bio *bio_list; - struct task_struct *waiter; - struct kiocb *iocb; - ssize_t result; - union { - struct page *pages[64]; - struct work_struct complete_work; - }; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; +typedef void (*btf_trace_tegra_dma_complete_cb)(void *, struct dma_chan *, int, void *); -typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); +typedef void (*btf_trace_tegra_dma_isr)(void *, struct dma_chan *, int); -struct dio_submit { - struct bio *bio; - unsigned int blkbits; - unsigned int blkfactor; - unsigned int start_zero_done; - int pages_in_io; - long: 32; - sector_t block_in_file; - unsigned int blocks_available; - int reap_counter; - sector_t final_block_in_request; - int boundary; - get_block_t *get_block; - loff_t logical_offset_in_bio; - sector_t final_block_in_bio; - sector_t next_block_for_io; - struct page *cur_page; - unsigned int cur_page_offset; - unsigned int cur_page_len; - long: 32; - 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; - long: 32; +struct tegra_dma_chip_data { + unsigned int nr_channels; + unsigned int channel_reg_size; + unsigned int max_dma_count; + bool support_channel_pause; + bool support_separate_wcount_reg; }; -typedef unsigned int iov_iter_extraction_t; - -enum proc_param { - Opt_gid___2 = 0, - Opt_hidepid = 1, - Opt_subset = 2, +struct trace_event_raw_tegra_dma_tx_status { + struct trace_entry ent; + u32 __data_loc_chan; + dma_cookie_t cookie; + __u32 residue; + char __data[0]; }; -struct proc_fs_context { - struct pid_namespace *pid_ns; - unsigned int mask; - enum proc_hidepid hidepid; - int gid; - enum proc_pidonly pidonly; +struct trace_event_raw_tegra_dma_complete_cb { + struct trace_entry ent; + u32 __data_loc_chan; + int count; + void *ptr; + char __data[0]; }; -struct kernfs_root { - struct kernfs_node *kn; - unsigned int flags; - struct idr ino_idr; - u32 last_id_lowbits; - u32 id_highbits; - struct kernfs_syscall_ops *syscall_ops; - struct list_head supers; - wait_queue_head_t deactivate_waitq; - struct rw_semaphore kernfs_rwsem; - struct rw_semaphore kernfs_iattr_rwsem; - struct rw_semaphore kernfs_supers_rwsem; +struct trace_event_raw_tegra_dma_isr { + struct trace_entry ent; + u32 __data_loc_chan; + int irq; + char __data[0]; }; -struct kernfs_iattrs { - kuid_t ia_uid; - kgid_t ia_gid; - struct timespec64 ia_atime; - struct timespec64 ia_mtime; - struct timespec64 ia_ctime; - struct simple_xattrs xattrs; - atomic_t nr_user_xattrs; - atomic_t user_xattr_size; -}; +struct tegra_dma_channel; -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, -}; +typedef void (*dma_isr_handler)(struct tegra_dma_channel *, bool); -enum { - BLOCK_BITMAP = 0, - INODE_BITMAP = 1, - INODE_TABLE = 2, - GROUP_TABLE_COUNT = 3, +struct tegra_dma_channel_regs { + u32 csr; + u32 ahb_ptr; + u32 apb_ptr; + u32 ahb_seq; + u32 apb_seq; + u32 wcount; }; -struct ext4_rcu_ptr { - struct callback_head rcu; - void *ptr; -}; +struct tegra_dma; -struct ext4_new_group_data { - __u32 group; - long: 32; - __u64 block_bitmap; - __u64 inode_bitmap; - __u64 inode_table; - __u32 blocks_count; - __u16 reserved_blocks; - __u16 mdata_blocks; - __u32 free_clusters_count; - long: 32; +struct tegra_dma_channel { + struct dma_chan dma_chan; + char name[12]; + bool config_init; + unsigned int id; + void *chan_addr; + spinlock_t lock; + bool busy; + struct tegra_dma *tdma; + bool cyclic; + struct list_head free_sg_req; + struct list_head pending_sg_req; + struct list_head free_dma_desc; + struct list_head cb_desc; + dma_isr_handler isr_handler; + struct tasklet_struct tasklet; + unsigned int slave_id; + struct dma_slave_config dma_sconfig; + struct tegra_dma_channel_regs channel_reg; + struct wait_queue_head wq; }; -struct ext4_new_flex_group_data { - struct ext4_new_group_data *groups; - __u16 *bg_flags; - ext4_group_t count; +struct tegra_dma { + struct dma_device dma_dev; + struct device *dev; + struct clk *dma_clk; + struct reset_control *rst; + spinlock_t global_lock; + void *base_addr; + const struct tegra_dma_chip_data *chip_data; + u32 global_pause_count; + struct tegra_dma_channel channels[0]; }; -struct fat_cache { - struct list_head cache_list; - int nr_contig; - int fcluster; - int dcluster; +struct tegra_dma_desc { + struct dma_async_tx_descriptor txd; + unsigned int bytes_requested; + unsigned int bytes_transferred; + enum dma_status dma_status; + struct list_head node; + struct list_head tx_list; + struct list_head cb_node; + unsigned int cb_count; }; -struct msdos_inode_info { - spinlock_t cache_lru_lock; - struct list_head cache_lru; - int nr_caches; - unsigned int cache_valid_id; - long: 32; - loff_t mmu_private; - int i_start; - int i_logstart; - int i_attrs; - long: 32; - 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 tegra_dma_sg_req { + struct tegra_dma_channel_regs ch_regs; + unsigned int req_len; + bool configured; + bool last_sg; + struct list_head node; + struct tegra_dma_desc *dma_desc; + unsigned int words_xferred; }; -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 trace_event_data_offsets_tegra_dma_tx_status { + u32 chan; }; -struct fatent_operations; - -struct msdos_sb_info { - unsigned short sec_per_clus; - unsigned short cluster_bits; - unsigned int cluster_size; - unsigned char fats; - unsigned char fat_bits; - unsigned short fat_start; - unsigned long fat_length; - unsigned long dir_start; - unsigned short dir_entries; - unsigned long data_start; - unsigned long max_cluster; - unsigned long root_cluster; - unsigned long fsinfo_sector; - struct mutex fat_lock; - struct mutex nfs_build_inode_lock; - struct mutex s_lock; - unsigned int prev_free; - unsigned int free_clusters; - unsigned int free_clus_valid; - struct fat_mount_options options; - struct nls_table *nls_disk; - struct nls_table *nls_io; - const void *dir_ops; - int dir_per_block; - int dir_per_block_bits; - unsigned int vol_id; - int fatent_shift; - const struct fatent_operations *fatent_ops; - struct inode *fat_inode; - struct inode *fsinfo_inode; - struct ratelimit_state ratelimit; - spinlock_t inode_hash_lock; - struct hlist_head inode_hashtable[256]; - spinlock_t dir_hash_lock; - struct hlist_head dir_hashtable[256]; - unsigned int dirty; - struct callback_head rcu; +struct trace_event_data_offsets_tegra_dma_complete_cb { + u32 chan; }; -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 *); +struct trace_event_data_offsets_tegra_dma_isr { + u32 chan; }; -struct fat_cache_id { - unsigned int id; - int nr_contig; - int fcluster; - int dcluster; +enum sys_powerdown { + SYS_AFTR = 0, + SYS_LPA = 1, + SYS_SLEEP = 2, + NUM_SYS_POWERDOWN = 3, }; -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; -}; +struct exynos_pmu_conf; -enum { - NFS_LSEG_VALID = 0, - NFS_LSEG_ROC = 1, - NFS_LSEG_LAYOUTCOMMIT = 2, - NFS_LSEG_LAYOUTRETURN = 3, - NFS_LSEG_UNAVAILABLE = 4, +struct exynos_pmu_data { + const struct exynos_pmu_conf *pmu_config; + const struct exynos_pmu_conf *pmu_config_extra; + void (*pmu_init)(); + void (*powerdown_conf)(enum sys_powerdown); + void (*powerdown_conf_extra)(enum sys_powerdown); }; -enum wb_stat_item { - WB_RECLAIMABLE = 0, - WB_WRITEBACK = 1, - WB_DIRTIED = 2, - WB_WRITTEN = 3, - NR_WB_STAT_ITEMS = 4, +struct exynos_pmu_conf { + unsigned int offset; + u8 val[3]; }; -struct pnfs_commit_bucket { - struct list_head written; - struct list_head committing; - struct pnfs_layout_segment *lseg; - struct nfs_writeverf direct_verf; +enum { + VP_MSIX_CONFIG_VECTOR = 0, + VP_MSIX_VQ_VECTOR = 1, }; -struct pnfs_commit_array { - struct list_head cinfo_list; - struct list_head lseg_list; - struct pnfs_layout_segment *lseg; - struct callback_head rcu; - refcount_t refcount; - unsigned int nbuckets; - struct pnfs_commit_bucket buckets[0]; +struct virtio_pci_legacy_device { + struct pci_dev *pci_dev; + u8 *isr; + void *ioaddr; + struct virtio_device_id id; }; -struct nfs4_add_xprt_data { - struct nfs_client *clp; - const struct cred *cred; -}; +struct virtio_pci_common_cfg; -struct rpc_add_xprt_test { - void (*add_xprt_test)(struct rpc_clnt *, struct rpc_xprt *, void *); - void *data; +struct virtio_pci_modern_device { + struct pci_dev *pci_dev; + struct virtio_pci_common_cfg *common; + void *device; + void *notify_base; + resource_size_t notify_pa; + u8 *isr; + size_t notify_len; + size_t device_len; + size_t common_len; + int notify_map_cap; + u32 notify_offset_multiplier; + int modern_bars; + struct virtio_device_id id; + int (*device_id_check)(struct pci_dev *); + long: 32; + u64 dma_mask; }; -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 virtio_pci_vq_info; -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 virtio_pci_device { + struct virtio_device vdev; + struct pci_dev *pci_dev; long: 32; - struct percpu_counter percpu_msg_bytes; - struct percpu_counter percpu_msg_hdrs; - size_t shm_ctlmax; - size_t shm_ctlall; - unsigned long shm_tot; - int shm_ctlmni; - int shm_rmid_forced; - struct notifier_block ipcns_nb; - struct vfsmount *mq_mnt; - unsigned int mq_queues_count; - unsigned int mq_queues_max; - unsigned int mq_msg_max; - unsigned int mq_msgsize_max; - unsigned int mq_msg_default; - unsigned int mq_msgsize_default; - struct ctl_table_set mq_set; - struct ctl_table_header *mq_sysctls; - struct ctl_table_set ipc_set; - struct ctl_table_header *ipc_sysctls; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct llist_node mnt_llist; - struct ns_common ns; -}; - -struct crypto_queue { - struct list_head list; - struct list_head *backlog; - unsigned int qlen; - unsigned int max_qlen; + union { + struct virtio_pci_legacy_device ldev; + struct virtio_pci_modern_device mdev; + }; + bool is_legacy; + u8 *isr; + spinlock_t lock; + struct list_head virtqueues; + struct virtio_pci_vq_info **vqs; + 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 sg_io_v4; - -typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, unsigned int); - -struct bsg_device { - struct request_queue *queue; - long: 32; - struct device device; - struct cdev cdev; - int max_queue; - unsigned int timeout; - unsigned int reserved_size; - bsg_sg_io_fn *sg_io_fn; - long: 32; +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 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 virtio_pci_vq_info { + struct virtqueue *vq; + struct list_head node; + unsigned int msix_vector; }; -enum { - IOU_POLL_DONE = 0, - IOU_POLL_NO_ACTION = 1, - IOU_POLL_REMOVE_POLL_USE_RES = 2, - IOU_POLL_REISSUE = 3, +struct fixed_voltage_config { + const char *supply_name; + const char *input_supply; + int microvolts; + unsigned int startup_delay; + unsigned int off_on_delay; + unsigned int enabled_at_boot: 1; + struct regulator_init_data *init_data; }; -enum { - IO_APOLL_OK = 0, - IO_APOLL_ABORTED = 1, - IO_APOLL_READY = 2, +struct fixed_regulator_data { + struct fixed_voltage_config cfg; + struct regulator_init_data init_data; + struct platform_device pdev; }; -struct io_poll { - struct file *file; - struct wait_queue_head *head; - __poll_t events; - int retries; - struct wait_queue_entry wait; +struct anatop_regulator { + u32 delay_reg; + int delay_bit_shift; + int delay_bit_width; + struct regulator_desc rdesc; + bool bypass; + int sel; }; -struct io_buffer { - struct list_head list; - __u64 addr; - __u32 len; - __u16 bid; - __u16 bgid; +struct pwm_continuous_reg_data { + unsigned int min_uV_dutycycle; + unsigned int max_uV_dutycycle; + unsigned int dutycycle_unit; }; -struct io_uring_buf_ring; +struct pwm_voltages; -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; - __u8 is_mapped; - __u8 is_mmap; +struct pwm_regulator_data { + struct pwm_device *pwm; + struct pwm_voltages *duty_cycle_table; + struct pwm_continuous_reg_data continuous; + struct regulator_desc desc; + int state; + struct gpio_desc *enb_gpio; }; -struct io_uring_buf { - __u64 addr; - __u32 len; - __u16 bid; - __u16 resv; +struct pwm_voltages { + unsigned int uV; + unsigned int dutycycle; }; -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]; - }; - }; +enum hi6220_reset_ctrl_type { + PERIPHERAL = 0, + MEDIA = 1, + AO = 2, }; -struct io_cache_entry { - struct io_wq_work_node node; +struct hi6220_reset_data { + struct reset_controller_dev rc_dev; + struct regmap *regmap; }; -struct async_poll { - union { - struct io_poll poll; - struct io_cache_entry cache; - }; - struct io_poll *double_poll; +struct rpi_reset { + struct reset_controller_dev rcdev; + struct rpi_firmware *fw; }; -struct io_poll_update { - struct file *file; - long: 32; - u64 old_user_data; - u64 new_user_data; - __poll_t events; - bool update_events; - bool update_user_data; +struct dw8250_platform_data { + u8 usr_reg; + u32 cpr_val; + unsigned int quirks; }; -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 dw8250_port_data { + int line; + struct uart_8250_dma dma; + u8 dlf_size; + bool hw_rs485_support; }; -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 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; }; -typedef struct { - int deltaFindState; - U32 deltaNbBits; -} FSE_symbolCompressionTransform; +struct s3c24xx_uart_info; -typedef struct { - rawSeqStore_t seqStore; - U32 startPosInBlock; - U32 endPosInBlock; - U32 offset; -} ZSTD_optLdm_t; +struct s3c24xx_serial_drv_data; -typedef U32 (*ZSTD_getAllMatchesFn)(ZSTD_match_t *, ZSTD_matchState_t *, U32 *, const BYTE *, const BYTE *, const U32 *, const U32, const U32); +struct s3c2410_uartcfg; -typedef struct { - ptrdiff_t value; - const void *stateTable; - const void *symbolTT; - unsigned int stateLog; -} FSE_CState_t; +struct s3c24xx_uart_dma; -struct ls_scfg_msi_cfg { - u32 ibs_shift; - u32 msir_irqs; - u32 msir_base; +struct s3c24xx_uart_port { + unsigned char rx_enabled; + unsigned char tx_enabled; + unsigned int pm_level; + unsigned long baudclk_rate; + unsigned int min_dma_size; + unsigned int rx_irq; + unsigned int tx_irq; + unsigned int tx_in_progress; + unsigned int tx_mode; + unsigned int rx_mode; + const struct s3c24xx_uart_info *info; + struct clk *clk; + struct clk *baudclk; + struct uart_port port; + const struct s3c24xx_serial_drv_data *drv_data; + const struct s3c2410_uartcfg *cfg; + struct s3c24xx_uart_dma *dma; + long: 32; }; -struct ls_scfg_msir; - -struct ls_scfg_msi { - spinlock_t lock; - struct platform_device *pdev; - struct irq_domain *parent; - struct irq_domain *msi_domain; - void *regs; - phys_addr_t msiir_addr; - struct ls_scfg_msi_cfg *cfg; - u32 msir_num; - struct ls_scfg_msir *msir; - u32 irqs_num; - unsigned long *used; +enum s3c24xx_port_type { + TYPE_S3C6400 = 0, + TYPE_APPLE_S5L = 1, }; -struct ls_scfg_msir { - struct ls_scfg_msi *msi_data; - unsigned int index; - unsigned int gic_irq; - unsigned int bit_start; - unsigned int bit_end; - unsigned int srs; - void *reg; +struct s3c24xx_uart_info { + const char *name; + enum s3c24xx_port_type type; + unsigned int port_type; + unsigned int fifosize; + unsigned long rx_fifomask; + unsigned long rx_fifoshift; + unsigned long rx_fifofull; + unsigned long tx_fifomask; + unsigned long tx_fifoshift; + unsigned long tx_fifofull; + unsigned int def_clk_sel; + unsigned long num_clks; + unsigned long clksel_mask; + unsigned long clksel_shift; + unsigned long ucon_mask; + unsigned int has_divslot: 1; }; -enum exynos_mipi_phy_id { - EXYNOS_MIPI_PHY_ID_NONE = -1, - EXYNOS_MIPI_PHY_ID_CSIS0 = 0, - EXYNOS_MIPI_PHY_ID_DSIM0 = 1, - EXYNOS_MIPI_PHY_ID_CSIS1 = 2, - EXYNOS_MIPI_PHY_ID_DSIM1 = 3, - EXYNOS_MIPI_PHY_ID_CSIS2 = 4, - EXYNOS_MIPI_PHYS_NUM = 5, +struct s3c2410_uartcfg { + unsigned char hwport; + unsigned char unused; + unsigned short flags; + long: 32; + upf_t uart_flags; + unsigned int clk_sel; + unsigned int has_fracval; + unsigned long ucon; + unsigned long ulcon; + unsigned long ufcon; + long: 32; }; -enum exynos_mipi_phy_regmap_id { - EXYNOS_MIPI_REGMAP_PMU = 0, - EXYNOS_MIPI_REGMAP_DISP = 1, - EXYNOS_MIPI_REGMAP_CAM0 = 2, - EXYNOS_MIPI_REGMAP_CAM1 = 3, - EXYNOS_MIPI_REGMAPS_NUM = 4, +struct s3c24xx_serial_drv_data { + const struct s3c24xx_uart_info info; + const struct s3c2410_uartcfg def_cfg; + const unsigned int fifosize[4]; }; -struct exynos_mipi_phy_desc { - enum exynos_mipi_phy_id coupled_phy_id; - u32 enable_val; - unsigned int enable_reg; - enum exynos_mipi_phy_regmap_id enable_map; - u32 resetn_val; - unsigned int resetn_reg; - enum exynos_mipi_phy_regmap_id resetn_map; +struct s3c24xx_uart_dma { + unsigned int rx_chan_id; + unsigned int tx_chan_id; + struct dma_slave_config rx_conf; + struct dma_slave_config tx_conf; + struct dma_chan *rx_chan; + struct dma_chan *tx_chan; + dma_addr_t rx_addr; + dma_addr_t tx_addr; + dma_cookie_t rx_cookie; + dma_cookie_t tx_cookie; + char *rx_buf; + dma_addr_t tx_transfer_addr; + size_t rx_size; + size_t tx_size; + struct dma_async_tx_descriptor *tx_desc; + struct dma_async_tx_descriptor *rx_desc; + int tx_bytes_requested; + int rx_bytes_requested; }; -struct mipi_phy_device_desc { - int num_phys; - int num_regmaps; - const char *regmap_names[4]; - struct exynos_mipi_phy_desc phys[5]; +struct samsung_early_console_data { + u32 txfull_mask; + u32 rxfifo_mask; }; -struct video_phy_desc { - struct phy *phy; - unsigned int index; - const struct exynos_mipi_phy_desc *data; +enum qcom_iommu_clk { + CLK_IFACE = 0, + CLK_BUS = 1, + CLK_TBU = 2, + CLK_NUM = 3, }; -struct exynos_mipi_video_phy { - struct regmap *regmaps[4]; - int num_phys; - struct video_phy_desc phys[5]; - spinlock_t slock; -}; +struct qcom_iommu_dev; -struct zynq_pctrl_group { - const char *name; - const unsigned int *pins; - const unsigned int npins; +struct qcom_iommu_domain { + struct io_pgtable_ops *pgtbl_ops; + spinlock_t pgtbl_lock; + struct mutex init_mutex; + struct iommu_domain domain; + struct qcom_iommu_dev *iommu; + struct iommu_fwspec *fwspec; }; -struct zynq_pinmux_function { - const char *name; - const char * const *groups; - unsigned int ngroups; - unsigned int mux_val; - u32 mux; - u32 mux_mask; - u8 mux_shift; -}; +struct qcom_iommu_ctx; -enum zynq_pinmux_functions { - ZYNQ_PMUX_can0 = 0, - ZYNQ_PMUX_can1 = 1, - ZYNQ_PMUX_ethernet0 = 2, - ZYNQ_PMUX_ethernet1 = 3, - ZYNQ_PMUX_gpio0 = 4, - ZYNQ_PMUX_i2c0 = 5, - ZYNQ_PMUX_i2c1 = 6, - ZYNQ_PMUX_mdio0 = 7, - ZYNQ_PMUX_mdio1 = 8, - ZYNQ_PMUX_qspi0 = 9, - ZYNQ_PMUX_qspi1 = 10, - ZYNQ_PMUX_qspi_fbclk = 11, - ZYNQ_PMUX_qspi_cs1 = 12, - ZYNQ_PMUX_spi0 = 13, - ZYNQ_PMUX_spi1 = 14, - ZYNQ_PMUX_spi0_ss = 15, - ZYNQ_PMUX_spi1_ss = 16, - ZYNQ_PMUX_sdio0 = 17, - ZYNQ_PMUX_sdio0_pc = 18, - ZYNQ_PMUX_sdio0_cd = 19, - ZYNQ_PMUX_sdio0_wp = 20, - ZYNQ_PMUX_sdio1 = 21, - ZYNQ_PMUX_sdio1_pc = 22, - ZYNQ_PMUX_sdio1_cd = 23, - ZYNQ_PMUX_sdio1_wp = 24, - ZYNQ_PMUX_smc0_nor = 25, - ZYNQ_PMUX_smc0_nor_cs1 = 26, - ZYNQ_PMUX_smc0_nor_addr25 = 27, - ZYNQ_PMUX_smc0_nand = 28, - ZYNQ_PMUX_ttc0 = 29, - ZYNQ_PMUX_ttc1 = 30, - ZYNQ_PMUX_uart0 = 31, - ZYNQ_PMUX_uart1 = 32, - ZYNQ_PMUX_usb0 = 33, - ZYNQ_PMUX_usb1 = 34, - ZYNQ_PMUX_swdt0 = 35, - ZYNQ_PMUX_MAX_FUNC = 36, +struct qcom_iommu_dev { + struct iommu_device iommu; + struct device *dev; + struct clk_bulk_data clks[3]; + void *local_base; + u32 sec_id; + u8 max_asid; + struct qcom_iommu_ctx *ctxs[0]; }; -enum zynq_io_standards { - zynq_iostd_min = 0, - zynq_iostd_lvcmos18 = 1, - zynq_iostd_lvcmos25 = 2, - zynq_iostd_lvcmos33 = 3, - zynq_iostd_hstl = 4, - zynq_iostd_max = 5, +struct qcom_iommu_ctx { + struct device *dev; + void *base; + bool secure_init; + bool secured_ctx; + u8 asid; + struct iommu_domain *domain; }; -struct zynq_pinctrl { - struct pinctrl_dev *pctrl; - struct regmap *syscon; - u32 pctrl_offset; - const struct zynq_pctrl_group *groups; - unsigned int ngroups; - const struct zynq_pinmux_function *funcs; - unsigned int nfuncs; +enum drm_minor_type { + DRM_MINOR_PRIMARY = 0, + DRM_MINOR_CONTROL = 1, + DRM_MINOR_RENDER = 2, + DRM_MINOR_ACCEL = 32, }; -struct imx_pinctrl; - -struct imx_pin; - -struct imx_pinctrl_soc_info { - const struct pinctrl_pin_desc *pins; - unsigned int npins; - unsigned int flags; - const char *gpr_compatible; - unsigned int mux_mask; - u8 mux_shift; - int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); - int (*imx_pinconf_get)(struct pinctrl_dev *, unsigned int, unsigned long *); - int (*imx_pinconf_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); - void (*imx_pinctrl_parse_pin)(struct imx_pinctrl *, unsigned int *, struct imx_pin *, const __be32 **); +struct drm_memory_stats { + u64 shared; + u64 private; + u64 resident; + u64 purgeable; + u64 active; }; -struct imx_pin_reg; +struct drm_client_funcs; -struct imx_pinctrl { - struct device *dev; - struct pinctrl_dev *pctl; - void *base; - void *input_sel_base; - const struct imx_pinctrl_soc_info *info; - struct imx_pin_reg *pin_regs; - unsigned int group_index; - struct mutex mutex; +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 imx_pin_reg { - s16 mux_reg; - s16 conf_reg; -}; +struct drm_client_buffer; -struct imx_pin_mmio { - unsigned int mux_mode; - u16 input_reg; - unsigned int input_val; - unsigned long config; -}; +struct drm_fb_helper_funcs; -struct imx_pin_scu { - unsigned int mux_mode; - unsigned long config; +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; + struct fb_deferred_io fbdefio; }; -struct imx_pin { - unsigned int pin; - union { - struct imx_pin_mmio mmio; - struct imx_pin_scu scu; - } conf; +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 meson_pmx_group; - -struct meson_pmx_func; +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 meson_bank; +struct drm_fb_helper_surface_size; -struct meson_pinctrl; +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 meson_pinctrl_data { - const char *name; - const struct pinctrl_pin_desc *pins; - struct meson_pmx_group *groups; - struct meson_pmx_func *funcs; - unsigned int num_pins; - unsigned int num_groups; - unsigned int num_funcs; - struct meson_bank *banks; - unsigned int num_banks; - const struct pinmux_ops *pmx_ops; - void *pmx_data; - int (*parse_dt)(struct meson_pinctrl *); +struct drm_fb_helper_surface_size { + u32 fb_width; + u32 fb_height; + u32 surface_width; + u32 surface_height; + u32 surface_bpp; + u32 surface_depth; }; -struct meson_pmx_group { - const char *name; - const unsigned int *pins; - unsigned int num_pins; - const void *data; +struct tegra_dpaux_soc { + unsigned int cmh; + unsigned int drvz; + unsigned int drvi; }; -struct meson_pmx_func { - const char *name; - const char * const *groups; - unsigned int num_groups; +enum tegra_dpaux_functions { + DPAUX_PADCTL_FUNC_AUX = 0, + DPAUX_PADCTL_FUNC_I2C = 1, + DPAUX_PADCTL_FUNC_OFF = 2, }; -struct meson_reg_desc { - unsigned int reg; - unsigned int bit; +struct drm_dp_aux_cec { + struct mutex lock; + struct cec_adapter *adap; + struct drm_connector *connector; + struct delayed_work unregister_work; }; -struct meson_bank { +struct drm_dp_aux_msg; + +struct drm_dp_aux { const char *name; - unsigned int first; - unsigned int last; - int irq_first; - int irq_last; - struct meson_reg_desc regs[6]; + long: 32; + 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 meson_pinctrl { +struct tegra_dpaux { + struct drm_dp_aux aux; struct device *dev; - struct pinctrl_dev *pcdev; + const struct tegra_dpaux_soc *soc; + void *regs; + int irq; + struct tegra_output *output; + struct reset_control *rst; + struct clk *clk_parent; + struct clk *clk; + struct regulator *vdd; + struct completion complete; + struct work_struct work; + struct list_head list; + struct pinctrl_dev *pinctrl; struct pinctrl_desc desc; - struct meson_pinctrl_data *data; - struct regmap *reg_mux; - struct regmap *reg_pullen; - struct regmap *reg_pull; - struct regmap *reg_gpio; - struct regmap *reg_ds; - struct gpio_chip chip; - struct fwnode_handle *fwnode; + long: 32; }; -struct samsung_pin_ctrl; - -struct samsung_pinctrl_of_match_data { - const struct samsung_pin_ctrl *ctrl; - unsigned int num_ctrl; +struct drm_dp_aux_msg { + unsigned int address; + u8 request; + u8 reply; + void *buffer; + size_t size; }; -struct samsung_pin_bank_data; +struct miscdevice { + int minor; + const char *name; + const struct file_operations *fops; + struct list_head list; + struct device *parent; + struct device *this_device; + const struct attribute_group **groups; + const char *nodename; + umode_t mode; +}; -struct samsung_retention_data; +enum { + Lo_unbound = 0, + Lo_bound = 1, + Lo_rundown = 2, + Lo_deleting = 3, +}; -struct samsung_pinctrl_drv_data; +enum { + LO_FLAGS_READ_ONLY = 1, + LO_FLAGS_AUTOCLEAR = 4, + LO_FLAGS_PARTSCAN = 8, + LO_FLAGS_DIRECT_IO = 16, +}; -struct samsung_pin_ctrl { - const struct samsung_pin_bank_data *pin_banks; - unsigned int nr_banks; - unsigned int nr_ext_resources; - const struct samsung_retention_data *retention_data; - int (*eint_gpio_init)(struct samsung_pinctrl_drv_data *); - int (*eint_wkup_init)(struct samsung_pinctrl_drv_data *); - void (*suspend)(struct samsung_pinctrl_drv_data *); - void (*resume)(struct samsung_pinctrl_drv_data *); +enum { + IOPRIO_CLASS_NONE = 0, + IOPRIO_CLASS_RT = 1, + IOPRIO_CLASS_BE = 2, + IOPRIO_CLASS_IDLE = 3, + IOPRIO_CLASS_INVALID = 7, }; -enum eint_type { - EINT_TYPE_NONE = 0, - EINT_TYPE_GPIO = 1, - EINT_TYPE_WKUP = 2, - EINT_TYPE_WKUP_MUX = 3, +enum { + IOPRIO_HINT_NONE = 0, + IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1, + IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2, + IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3, + IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4, + IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5, + IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6, + IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7, }; -struct samsung_pin_bank_type; +struct loop_device { + int lo_number; + long: 32; + 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 samsung_pin_bank_data { - const struct samsung_pin_bank_type *type; - u32 pctl_offset; - u8 pctl_res_idx; - u8 nr_pins; - u8 eint_func; - enum eint_type eint_type; - u32 eint_mask; - u32 eint_offset; - const char *name; +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 samsung_pin_bank_type { - u8 fld_width[6]; - u8 reg_offset[6]; +struct loop_cmd { + struct list_head list_entry; + bool use_aio; + atomic_t ref; + long ret; + long: 32; + struct kiocb iocb; + struct bio_vec *bvec; + struct cgroup_subsys_state *blkcg_css; + struct cgroup_subsys_state *memcg_css; + long: 32; }; -struct samsung_retention_ctrl; +typedef __kernel_rwf_t rwf_t; -struct samsung_retention_data { - const u32 *regs; - int nr_regs; - u32 value; - atomic_t *refcnt; - struct samsung_retention_ctrl * (*init)(struct samsung_pinctrl_drv_data *, const struct samsung_retention_data *); +typedef unsigned short __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 samsung_retention_ctrl { - const u32 *regs; - int nr_regs; - u32 value; - atomic_t *refcnt; - void *priv; - void (*enable)(struct samsung_pinctrl_drv_data *); - void (*disable)(struct samsung_pinctrl_drv_data *); +struct loop_info64 { + __u64 lo_device; + __u64 lo_inode; + __u64 lo_rdevice; + __u64 lo_offset; + __u64 lo_sizelimit; + __u32 lo_number; + __u32 lo_encrypt_type; + __u32 lo_encrypt_key_size; + __u32 lo_flags; + __u8 lo_file_name[64]; + __u8 lo_crypt_name[64]; + __u8 lo_encrypt_key[32]; + __u64 lo_init[2]; }; -struct samsung_pin_group; +struct loop_config { + __u32 fd; + __u32 block_size; + struct loop_info64 info; + __u64 __reserved[8]; +}; -struct samsung_pmx_func; +struct prcmu_fw_version { + u32 project; + u8 api_version; + u8 func_version; + u8 errata; + char project_name[20]; +}; -struct samsung_pin_bank; +struct clk_mgt { + u32 offset; + u32 pllsw; + int branch; + bool clk38div; +}; -struct samsung_pinctrl_drv_data { - struct list_head node; - void *virt_base; - struct device *dev; - int irq; - struct pinctrl_desc pctl; - struct pinctrl_dev *pctl_dev; - const struct samsung_pin_group *pin_groups; - unsigned int nr_groups; - const struct samsung_pmx_func *pmx_functions; - unsigned int nr_functions; - struct samsung_pin_bank *pin_banks; - unsigned int nr_banks; - unsigned int pin_base; - unsigned int nr_pins; - struct samsung_retention_ctrl *retention_ctrl; - void (*suspend)(struct samsung_pinctrl_drv_data *); - void (*resume)(struct samsung_pinctrl_drv_data *); +struct dsiclk { + u32 divsel_mask; + u32 divsel_shift; + u32 divsel; }; -struct samsung_pin_group { - const char *name; - const unsigned int *pins; - u8 num_pins; - u8 func; +struct dsiescclk { + u32 en; + u32 div_mask; + u32 div_shift; }; -struct samsung_pmx_func { - const char *name; - const char **groups; - u8 num_groups; - u32 val; +enum romcode_write { + RDY_2_DS = 9, + RDY_2_XP70_RST = 16, }; -struct exynos_irq_chip; +enum romcode_read { + INIT = 0, + FS_2_DS = 10, + END_DS = 11, + DS_TO_FS = 12, + END_FS = 13, + SWR = 14, + END_SWR = 15, +}; -struct samsung_pin_bank { - const struct samsung_pin_bank_type *type; - void *pctl_base; - u32 pctl_offset; - u8 nr_pins; - void *eint_base; - u8 eint_func; - enum eint_type eint_type; - u32 eint_mask; - u32 eint_offset; - const char *name; - u32 pin_base; - void *soc_priv; - struct fwnode_handle *fwnode; - struct samsung_pinctrl_drv_data *drvdata; - struct irq_domain *irq_domain; - struct gpio_chip gpio_chip; - struct pinctrl_gpio_range grange; - struct exynos_irq_chip *irq_chip; - raw_spinlock_t slock; - u32 pm_save[7]; +enum ap_pwrst { + NO_PWRST = 0, + AP_BOOT = 1, + AP_EXECUTE = 2, + AP_DEEP_SLEEP = 3, + AP_SLEEP = 4, + AP_IDLE = 5, + AP_RESET = 6, }; -enum gio_reg_index { - GIO_REG_ODEN = 0, - GIO_REG_DATA = 1, - GIO_REG_IODIR = 2, - GIO_REG_EC = 3, - GIO_REG_EI = 4, - GIO_REG_MASK = 5, - GIO_REG_LEVEL = 6, - GIO_REG_STAT = 7, - NUMBER_OF_GIO_REGISTERS = 8, +enum ap_pwrst_trans { + PRCMU_AP_NO_CHANGE = 0, + APEXECUTE_TO_APSLEEP = 1, + APIDLE_TO_APSLEEP = 2, + PRCMU_AP_SLEEP = 1, + APBOOT_TO_APEXECUTE = 3, + APEXECUTE_TO_APDEEPSLEEP = 4, + PRCMU_AP_DEEP_SLEEP = 4, + APEXECUTE_TO_APIDLE = 5, + PRCMU_AP_IDLE = 5, + PRCMU_AP_DEEP_IDLE = 7, }; -struct brcmstb_gpio_priv; +enum prcmu_wakeup_index { + PRCMU_WAKEUP_INDEX_RTC = 0, + PRCMU_WAKEUP_INDEX_RTT0 = 1, + PRCMU_WAKEUP_INDEX_RTT1 = 2, + PRCMU_WAKEUP_INDEX_HSI0 = 3, + PRCMU_WAKEUP_INDEX_HSI1 = 4, + PRCMU_WAKEUP_INDEX_USB = 5, + PRCMU_WAKEUP_INDEX_ABB = 6, + PRCMU_WAKEUP_INDEX_ABB_FIFO = 7, + PRCMU_WAKEUP_INDEX_ARM = 8, + PRCMU_WAKEUP_INDEX_CD_IRQ = 9, + NUM_PRCMU_WAKEUP_INDICES = 10, +}; -struct brcmstb_gpio_bank { - struct list_head node; - int id; - struct gpio_chip gc; - struct brcmstb_gpio_priv *parent_priv; - u32 width; - u32 wake_active; - u32 saved_regs[7]; +enum arm_opp { + ARM_OPP_INIT = 0, + ARM_NO_CHANGE = 1, + ARM_100_OPP = 2, + ARM_50_OPP = 3, + ARM_MAX_OPP = 4, + ARM_MAX_FREQ100OPP = 5, + ARM_EXTCLK = 7, }; -struct brcmstb_gpio_priv { - struct list_head bank_list; - void *reg_base; - struct platform_device *pdev; - struct irq_domain *irq_domain; - struct irq_chip irq_chip; - int parent_irq; - int gpio_base; - int num_gpios; - int parent_wake_irq; +enum ape_opp { + APE_OPP_INIT = 0, + APE_NO_CHANGE = 1, + APE_100_OPP = 2, + APE_50_OPP = 3, + APE_50_PARTLY_25_OPP = 255, }; -struct sun4i_pwm_data { - bool has_prescaler_bypass; - bool has_direct_mod_clk_output; - unsigned int npwm; +enum { + PLL_RAW = 0, + PLL_FIX = 1, + PLL_DIV = 2, }; -struct sun4i_pwm_chip { - struct pwm_chip chip; - struct clk *bus_clk; - struct clk *clk; - struct reset_control *rst; - void *base; - spinlock_t ctrl_lock; - const struct sun4i_pwm_data *data; +enum ddr_pwrst { + DDR_PWR_STATE_UNCHANGED = 0, + DDR_PWR_STATE_ON = 1, + DDR_PWR_STATE_OFFLOWLAT = 2, + DDR_PWR_STATE_OFFHIGHLAT = 3, }; -struct pci_config_window; +enum state___2 { + OFF___2 = 0, + ON = 1, +}; -struct pci_ecam_ops { - unsigned int bus_shift; - struct pci_ops pci_ops; - int (*init)(struct pci_config_window *); +struct prcmu_auto_pm_config { + u8 sia_auto_pm_enable; + u8 sia_power_on; + u8 sia_policy; + u8 sva_auto_pm_enable; + u8 sva_power_on; + u8 sva_policy; }; -struct pci_config_window { - struct resource res; - struct resource busr; - unsigned int bus_shift; - void *priv; - const struct pci_ecam_ops *ops; - union { - void *win; - void **winp; - }; - struct device *parent; +enum stmfx_functions { + STMFX_FUNC_GPIO = 1, + STMFX_FUNC_ALTGPIO_LOW = 2, + STMFX_FUNC_ALTGPIO_HIGH = 4, + STMFX_FUNC_TS = 8, + STMFX_FUNC_IDD = 16, }; -struct clk_device { - struct clk_hw hw; - void *div_reg; - unsigned int div_mask; - void *en_reg; - int en_bit; - spinlock_t *lock; +enum stmfx_irqs { + STMFX_REG_IRQ_SRC_EN_GPIO = 0, + STMFX_REG_IRQ_SRC_EN_IDD = 1, + STMFX_REG_IRQ_SRC_EN_ERROR = 2, + STMFX_REG_IRQ_SRC_EN_TS_DET = 3, + STMFX_REG_IRQ_SRC_EN_TS_NE = 4, + STMFX_REG_IRQ_SRC_EN_TS_TH = 5, + STMFX_REG_IRQ_SRC_EN_TS_FULL = 6, + STMFX_REG_IRQ_SRC_EN_TS_OVF = 7, + STMFX_REG_IRQ_SRC_MAX = 8, }; -struct clk_pll___4 { - struct clk_hw hw; - void *reg; - spinlock_t *lock; - int type; +struct stmfx { + struct device *dev; + struct regmap *map; + struct regulator *vdd; + int irq; + struct irq_domain *irq_domain; + struct mutex lock; + u8 irq_src; + u8 bkp_sysctrl; + u8 bkp_irqoutpin; }; -enum kp_band { - KP_BAND_MID = 0, - KP_BAND_HIGH = 1, - KP_BAND_HIGH_HIGH = 2, +enum scsi_scan_mode { + SCSI_SCAN_INITIAL = 0, + SCSI_SCAN_RESCAN = 1, + SCSI_SCAN_MANUAL = 2, }; -enum vco_freq_range { - VCO_LOW = 700000000, - VCO_MID = 1200000000, - VCO_HIGH = 2200000000, - VCO_HIGH_HIGH = 3100000000, - VCO_MAX = 4000000000, +struct scsi_proc_entry { + struct list_head entry; + const struct scsi_host_template *sht; + struct proc_dir_entry *proc_dir; + unsigned int present; }; -struct iproc_pll; +struct transport_container { + struct attribute_container ac; + const struct attribute_group *statistics; +}; -struct iproc_clk { - struct clk_hw hw; - struct iproc_pll *pll; - const struct iproc_clk_ctrl *ctrl; +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 iproc_pll { - void *status_base; - void *control_base; - void *pwr_base; - void *asiu_base; - const struct iproc_pll_ctrl *ctrl; - const struct iproc_pll_vco_param *vco_param; - unsigned int num_vco_entries; +struct fixed_partitions_quirks { + int (*post_parse)(struct mtd_info *, struct mtd_partition *, int); }; -struct pxa1928_clk_unit { - struct mmp_clk_unit unit; - void *mpmu_base; - void *apmu_base; - void *apbc_base; - void *apbcp_base; +struct physmap_flash_info { + unsigned int nmaps; + struct mtd_info **mtds; + struct mtd_info *cmtd; + struct map_info *maps; + spinlock_t vpp_lock; + int vpp_refcnt; + const char *probe_type; + const char * const *part_types; + unsigned int nparts; + const struct mtd_partition *parts; + struct gpio_descs *gpios; + unsigned int gpio_values; + unsigned int win_order; }; -enum exynos5x_soc { - EXYNOS5420 = 0, - EXYNOS5800 = 1, +struct physmap_flash_data { + unsigned int width; + int (*init)(struct platform_device *); + void (*exit)(struct platform_device *); + void (*set_vpp)(struct platform_device *, int); + unsigned int nr_parts; + unsigned int pfow_base; + char *probe_type; + struct mtd_partition *parts; + const char * const *part_probe_types; }; -struct exynos5_subcmu_reg_dump; +struct nand_onfi_vendor_macronix { + u8 reserved; + u8 reliability_func; +}; -struct exynos5_subcmu_info { - const struct samsung_div_clock *div_clks; - unsigned int nr_div_clks; - const struct samsung_gate_clock *gate_clks; - unsigned int nr_gate_clks; - struct exynos5_subcmu_reg_dump *suspend_regs; - unsigned int nr_suspend_regs; - const char *pd_name; +struct pl35x_nandc { + struct device *dev; + void *conf_regs; + void *io_regs; + struct nand_controller controller; + struct list_head chips; + struct nand_chip *selected_chip; + unsigned long assigned_cs; + u8 *ecc_buf; }; -struct exynos5_subcmu_reg_dump { - u32 offset; - u32 value; - u32 mask; - u32 save; +struct pl35x_nand { + struct list_head node; + struct nand_chip chip; + unsigned int cs; + unsigned int addr_cycles; + u32 ecc_cfg; + u32 timings; }; -enum exynos5x_plls { - apll = 0, - cpll = 1, - dpll = 2, - epll = 3, - rpll = 4, - ipll = 5, - spll = 6, - vpll = 7, - mpll = 8, - bpll = 9, - kpll = 10, - nr_plls = 11, +struct pl35x_nand_timings { + unsigned int t_rc: 4; + unsigned int t_wc: 4; + unsigned int t_rea: 3; + unsigned int t_wp: 3; + unsigned int t_clr: 3; + unsigned int t_ar: 3; + unsigned int t_rr: 4; + unsigned int rsvd: 8; }; -struct tegra_clk_frac_div { - struct clk_hw hw; - void *reg; - u8 flags; - u8 shift; - u8 width; - u8 frac_width; - spinlock_t *lock; +enum { + UBI_IO_FF = 1, + UBI_IO_FF_BITFLIPS = 2, + UBI_IO_BAD_HDR = 3, + UBI_IO_BAD_HDR_EBADMSG = 4, + UBI_IO_BITFLIPS = 5, }; -struct tegra_clk_emc { - struct clk_hw hw; - void *reg; - bool mc_same_freq; - bool want_low_jitter; - tegra20_clk_emc_round_cb *round_cb; - void *cb_arg; +enum { + MOVE_CANCEL_RACE = 1, + MOVE_SOURCE_RD_ERR = 2, + MOVE_TARGET_RD_ERR = 3, + MOVE_TARGET_WR_ERR = 4, + MOVE_TARGET_BITFLIPS = 5, + MOVE_RETRY = 6, }; -struct ti_dt_clk { - struct clk_lookup lk; - char *node_name; +enum { + UBI_COMPAT_DELETE = 1, + UBI_COMPAT_RO = 2, + UBI_COMPAT_PRESERVE = 4, + UBI_COMPAT_REJECT = 5, }; -struct pmu_data { - spinlock_t lock; - struct device_node *of_node; - void *pmc_base; - void *pmu_base; - struct irq_chip_generic *irq_gc; - struct irq_domain *irq_domain; - struct reset_controller_dev reset; +struct ubi_ainf_peb { + int ec; + int pnum; + int vol_id; + int lnum; + unsigned int scrub: 1; + unsigned int copy_flag: 1; + long: 32; + unsigned long long sqnum; + union { + struct rb_node rb; + struct list_head list; + } u; + long: 32; }; -struct pmu_domain { - struct pmu_data *pmu; - u32 pwr_mask; - u32 rst_mask; - u32 iso_mask; - struct generic_pm_domain base; +struct ubi_ltree_entry { + struct rb_node rb; + int vol_id; + int lnum; + int users; + struct rw_semaphore mutex; }; -struct dove_pmu_domain_initdata; +struct ubi_eba_entry; -struct dove_pmu_initdata { - void *pmc_base; - void *pmu_base; - int irq; - int irq_domain_start; - const struct dove_pmu_domain_initdata *domains; +struct ubi_eba_table { + struct ubi_eba_entry *entries; }; -struct dove_pmu_domain_initdata { - u32 pwr_mask; - u32 rst_mask; - u32 iso_mask; - const char *name; +struct ubi_eba_entry { + int pnum; }; -struct rockchip_pmu_info; +struct ubi_vid_hdr; -struct rockchip_pmu { - struct device *dev; - struct regmap *regmap; - const struct rockchip_pmu_info *info; - struct mutex mutex; - struct genpd_onecell_data genpd_data; - struct generic_pm_domain *domains[0]; +struct ubi_vid_io_buf { + struct ubi_vid_hdr *hdr; + void *buffer; }; -struct rockchip_domain_info; - -struct rockchip_pmu_info { - u32 pwr_offset; - u32 status_offset; - u32 req_offset; - u32 idle_offset; - u32 ack_offset; - u32 mem_pwr_offset; - u32 chain_status_offset; - u32 mem_status_offset; - u32 repair_status_offset; - u32 core_pwrcnt_offset; - u32 gpu_pwrcnt_offset; - unsigned int core_power_transition_time; - unsigned int gpu_power_transition_time; - int num_domains; - const struct rockchip_domain_info *domain_info; +struct ubi_vid_hdr { + __be32 magic; + __u8 version; + __u8 vol_type; + __u8 copy_flag; + __u8 compat; + __be32 vol_id; + __be32 lnum; + __u8 padding1[4]; + __be32 data_size; + __be32 used_ebs; + __be32 data_pad; + __be32 data_crc; + __u8 padding2[4]; + __be64 sqnum; + __u8 padding3[12]; + __be32 hdr_crc; }; -struct rockchip_domain_info { - const char *name; - int pwr_mask; - int status_mask; - int req_mask; - int idle_mask; - int ack_mask; - bool active_wakeup; - int pwr_w_mask; - int req_w_mask; - int mem_status_mask; - int repair_status_mask; - u32 pwr_offset; - u32 mem_offset; - u32 req_offset; +struct ubi_ainf_volume { + int vol_id; + int highest_lnum; + int leb_count; + int vol_type; + int used_ebs; + int last_data_size; + int data_pad; + int compat; + struct rb_node rb; + struct rb_root root; }; -struct rockchip_pm_domain { - struct generic_pm_domain genpd; - const struct rockchip_domain_info *info; - struct rockchip_pmu *pmu; - int num_qos; - struct regmap **qos_regmap; - u32 *qos_save_regs[5]; - int num_clks; - struct clk_bulk_data *clks; +struct ubi_ec_hdr; + +struct ubi_attach_info { + struct rb_root volumes; + struct list_head corr; + struct list_head free; + struct list_head erase; + struct list_head alien; + struct list_head fastmap; + int corr_peb_count; + int empty_peb_count; + int alien_peb_count; + int bad_peb_count; + int maybe_bad_peb_count; + int vols_found; + int highest_vol_id; + int is_empty; + int force_full_scan; + int min_ec; + int max_ec; + unsigned long long max_sqnum; + int mean_ec; long: 32; + uint64_t ec_sum; + int ec_count; + struct kmem_cache *aeb_slab_cache; + struct ubi_ec_hdr *ech; + struct ubi_vid_io_buf *vidb; }; -enum regulator_get_type { - NORMAL_GET = 0, - EXCLUSIVE_GET = 1, - OPTIONAL_GET = 2, - MAX_GET_TYPE = 3, +struct ubi_ec_hdr { + __be32 magic; + __u8 version; + __u8 padding1[3]; + __be64 ec; + __be32 vid_hdr_offset; + __be32 data_offset; + __be32 image_seq; + __u8 padding2[32]; + __be32 hdr_crc; }; -struct regulator_voltage { - int min_uV; - int max_uV; +struct ubi_eba_leb_desc { + int lnum; + int pnum; }; -struct regulator { - struct device *dev; - struct list_head list; - unsigned int always_on: 1; - unsigned int bypass: 1; - unsigned int device_link: 1; - int uA_load; - unsigned int enable_count; - unsigned int deferred_disables; - struct regulator_voltage voltage[5]; - const char *supply_name; - struct device_attribute dev_attr; - struct regulator_dev *rdev; - struct dentry *debugfs; +struct ubi_sgl { + int list_pos; + int page_pos; + struct scatterlist sg[64]; }; -struct regulator_bulk_devres { - struct regulator_bulk_data *consumers; - int num_consumers; +struct bcm_qspi_data { + bool has_mspi_rev; + bool has_spcr3_sysclk; }; -struct regulator_supply_alias_match { - struct device *dev; - const char *id; +struct bcm_qspi_irq { + const char *irq_name; + const irq_handler_t irq_handler; + int irq_source; + u32 mask; }; -struct regulator_irq_data; +enum base_type { + MSPI = 0, + BSPI = 1, + CHIP_SELECT = 2, + BASEMAX = 3, +}; -struct regulator_irq_desc { - const char *name; - int fatal_cnt; - int reread_ms; - int irq_off_ms; - bool skip_off; - bool high_prio; - void *data; - int (*die)(struct regulator_irq_data *); - int (*map_event)(int, struct regulator_irq_data *, unsigned long *); - int (*renable)(struct regulator_irq_data *); +enum irq_source { + SINGLE_L2 = 0, + MUXED_L1 = 1, }; -struct regulator_err_state; +struct bcm_qspi_parms { + u32 speed_hz; + u8 mode; + u8 bits_per_word; +}; -struct regulator_irq_data { - struct regulator_err_state *states; - int num_states; - void *data; - long opaque; +struct qspi_trans { + struct spi_transfer *trans; + int byte; + bool mspi_last_trans; }; -struct regulator_err_state { - struct regulator_dev *rdev; - unsigned long notifs; - unsigned long errors; - int possible_errs; +struct bcm_xfer_mode { + bool flex_mode; + unsigned int width; + unsigned int addrlen; + unsigned int hp; }; -struct regulator_notifier_match { - struct regulator *regulator; - struct notifier_block *nb; +struct bcm_qspi_dev_id; + +struct bcm_qspi { + struct platform_device *pdev; + struct spi_controller *host; + struct clk *clk; + u32 base_clk; + u32 max_speed_hz; + void *base[3]; + struct bcm_qspi_soc_intc *soc_intc; + struct bcm_qspi_parms last_parms; + struct qspi_trans trans_pos; + int curr_cs; + int bspi_maj_rev; + int bspi_min_rev; + int bspi_enabled; + const struct spi_mem_op *bspi_rf_op; + u32 bspi_rf_op_idx; + u32 bspi_rf_op_len; + u32 bspi_rf_op_status; + struct bcm_xfer_mode xfer_mode; + u32 s3_strap_override_ctrl; + bool bspi_mode; + bool big_endian; + int num_irqs; + struct bcm_qspi_dev_id *dev_ids; + struct completion mspi_done; + struct completion bspi_done; + u8 mspi_maj_rev; + u8 mspi_min_rev; + bool mspi_spcr3_sysclk; }; -enum { - PWR_REG11 = 0, - PWR_REG18 = 1, - PWR_USB33 = 2, - STM32PWR_REG_NUM_REGS = 3, +struct bcm_qspi_dev_id { + const struct bcm_qspi_irq *irqp; + void *dev; }; -struct stm32_pwr_reg { - void *base; - u32 ready_mask; +struct rtl821x_priv { + u16 phycr1; + u16 phycr2; + bool has_phycr2; + struct clk *clk; }; -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 xpcs_compat { + const int *supported; + const phy_interface_t *interface; + int num_interfaces; + int an_mode; + int (*pma_config)(struct dw_xpcs *); }; -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; +enum { + DW_XPCS_USXGMII = 0, + DW_XPCS_10GKR = 1, + DW_XPCS_XLGMII = 2, + DW_XPCS_10GBASER = 3, + DW_XPCS_SGMII = 4, + DW_XPCS_1000BASEX = 5, + DW_XPCS_2500BASEX = 6, + DW_XPCS_INTERFACE_MAX = 7, }; -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]; +enum { + MLO_PAUSE_NONE = 0, + MLO_PAUSE_RX = 1, + MLO_PAUSE_TX = 2, + MLO_PAUSE_TXRX_MASK = 3, + MLO_PAUSE_AN = 4, + MLO_AN_PHY = 0, + MLO_AN_FIXED = 1, + MLO_AN_INBAND = 2, + PHYLINK_PCS_NEG_NONE = 0, + PHYLINK_PCS_NEG_ENABLED = 16, + PHYLINK_PCS_NEG_OUTBAND = 32, + PHYLINK_PCS_NEG_INBAND = 64, + PHYLINK_PCS_NEG_INBAND_DISABLED = 64, + PHYLINK_PCS_NEG_INBAND_ENABLED = 80, + MAC_SYM_PAUSE = 1, + MAC_ASYM_PAUSE = 2, + MAC_10HD = 4, + MAC_10FD = 8, + MAC_10 = 12, + MAC_100HD = 16, + MAC_100FD = 32, + MAC_100 = 48, + MAC_1000HD = 64, + MAC_1000FD = 128, + MAC_1000 = 192, + MAC_2500FD = 256, + MAC_5000FD = 512, + MAC_10000FD = 1024, + MAC_20000FD = 2048, + MAC_25000FD = 4096, + MAC_40000FD = 8192, + MAC_50000FD = 16384, + MAC_56000FD = 32768, + MAC_100000FD = 65536, + MAC_200000FD = 131072, + MAC_400000FD = 262144, }; -enum dma_rx_status { - DMA_RX_START = 0, - DMA_RX_RUNNING = 1, - DMA_RX_SHUTDOWN = 2, +struct bcmasp_priv; + +struct bcmasp_intf; + +struct bcmasp_hw_info; + +struct bcmasp_plat_data { + void (*init_wol)(struct bcmasp_priv *); + void (*enable_wol)(struct bcmasp_intf *, bool); + void (*destroy_wol)(struct bcmasp_priv *); + struct bcmasp_hw_info *hw_info; }; -enum { - MTK_UART_FC_NONE = 0, - MTK_UART_FC_SW = 1, - MTK_UART_FC_HW = 2, +struct bcmasp_mda_filter { + int port; + bool en; + u8 addr[6]; + u8 mask[6]; }; -struct mtk8250_data { - int line; - unsigned int rx_pos; - unsigned int clk_count; - struct clk *uart_clk; - struct clk *bus_clk; - struct uart_8250_dma *dma; - enum dma_rx_status rx_status; - int rx_wakeup_irq; +struct bcmasp_net_filter { + struct ethtool_rx_flow_spec fs; + bool claimed; + bool wake_filter; + int port; + unsigned int hw_index; + long: 32; }; -struct histb_rng_priv { - struct hwrng rng; +struct bcmasp_priv { + struct platform_device *pdev; + struct clk *clk; + int irq; + u32 irq_mask; + struct mutex wol_lock; + int wol_irq; + unsigned long wol_irq_enabled_mask; + void (*init_wol)(struct bcmasp_priv *); + void (*enable_wol)(struct bcmasp_intf *, bool); + void (*destroy_wol)(struct bcmasp_priv *); void *base; + struct bcmasp_hw_info *hw_info; + struct list_head intfs; + struct bcmasp_mda_filter mda_filters[32]; + spinlock_t mda_lock; + spinlock_t clk_lock; + struct bcmasp_net_filter net_filters[32]; + struct mutex net_lock; + long: 32; }; -struct edid_quirk { - u32 panel_id; - u32 quirks; +struct bcmasp_res { + void *umac; + void *umac2fb; + void *rgmii; + void *tx_spb_ctrl; + void *tx_spb_top; + void *tx_epkt_core; + void *tx_pause_ctrl; }; -struct minimode { - short w; - short h; - short r; - short rb; +struct bcmasp_intf_stats64 { + u64_stats_t rx_packets; + u64_stats_t rx_bytes; + u64_stats_t rx_errors; + u64_stats_t rx_dropped; + u64_stats_t rx_crc_errs; + u64_stats_t rx_sym_errs; + u64_stats_t tx_packets; + u64_stats_t tx_bytes; + struct u64_stats_sync syncp; + long: 32; }; -struct stereo_mandatory_mode { - int width; - int height; - int vrefresh; - unsigned int flags; +struct bcmasp_mib_counters { + u32 edpkt_ts; + u32 edpkt_rx_pkt_cnt; + u32 edpkt_hdr_ext_cnt; + u32 edpkt_hdr_out_cnt; + u32 umac_frm_cnt; + u32 fb_frm_cnt; + u32 fb_rx_fifo_depth; + u32 fb_out_frm_cnt; + u32 fb_filt_out_frm_cnt; + u32 alloc_rx_skb_failed; + u32 tx_dma_failed; + u32 mc_filters_full_cnt; + u32 uc_filters_full_cnt; + u32 filters_combine_cnt; + u32 promisc_filters_cnt; + u32 tx_realloc_offload_failed; + u32 tx_timeout_cnt; }; -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 bcmasp_intf_ops; -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, +struct bcmasp_desc; + +struct bcmasp_tx_cb; + +struct bcmasp_intf { + struct list_head list; + struct net_device *ndev; + struct bcmasp_priv *parent; + int channel; + int port; + const struct bcmasp_intf_ops *ops; + int index; + struct napi_struct tx_napi; + void *tx_spb_dma; + int tx_spb_index; + int tx_spb_clean_index; + struct bcmasp_desc *tx_spb_cpu; + dma_addr_t tx_spb_dma_addr; + dma_addr_t tx_spb_dma_valid; + dma_addr_t tx_spb_dma_read; + struct bcmasp_tx_cb *tx_cbs; + void *rx_edpkt_cfg; + void *rx_edpkt_dma; + int rx_edpkt_index; + int rx_buf_order; + struct bcmasp_desc *rx_edpkt_cpu; + dma_addr_t rx_edpkt_dma_addr; + dma_addr_t rx_edpkt_dma_read; + void *rx_ring_cpu; + dma_addr_t rx_ring_dma; + dma_addr_t rx_ring_dma_valid; + struct napi_struct rx_napi; + struct bcmasp_res res; + unsigned int crc_fwd; + struct device_node *phy_dn; + struct device_node *ndev_dn; + phy_interface_t phy_interface; + bool internal_phy; + int old_pause; + int old_link; + int old_duplex; + u32 msg_enable; + struct bcmasp_intf_stats64 stats64; + struct bcmasp_mib_counters mib; + u32 wolopts; + u8 sopass[6]; + int wol_irq; + unsigned int wol_irq_enabled: 1; + struct ethtool_eee eee; }; -struct cea_db { - u8 tag_length; - u8 data[0]; +struct bcmasp_intf_ops { + unsigned long (*rx_desc_read)(struct bcmasp_intf *); + void (*rx_buffer_write)(struct bcmasp_intf *, dma_addr_t); + void (*rx_desc_write)(struct bcmasp_intf *, dma_addr_t); + unsigned long (*tx_read)(struct bcmasp_intf *); + void (*tx_write)(struct bcmasp_intf *, dma_addr_t); }; -struct displayid_block { - u8 tag; - u8 rev; - u8 num_bytes; +struct bcmasp_desc { + u64 buf; + u32 size; + u32 flags; }; -struct displayid_vesa_vendor_specific_block { - struct displayid_block base; - u8 oui[3]; - u8 data_structure_type; - u8 mso; +struct bcmasp_tx_cb { + struct sk_buff *skb; + unsigned int bytes_sent; + bool last; + dma_addr_t dma_addr; + __u32 dma_len; }; -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 bcmasp_hw_info { + u32 rx_ctrl_flush; + u32 umac2fb; + u32 rx_ctrl_fb_out_frame_count; + u32 rx_ctrl_fb_filt_out_frame_count; + u32 rx_ctrl_fb_rx_fifo_depth; }; -struct displayid_detailed_timing_block { - struct displayid_block base; - struct displayid_detailed_timings_1 timings[0]; +enum asp_rx_filter_id { + ASP_RX_FILTER_MDA_PROMISC = 0, + ASP_RX_FILTER_MDA_ALLMULTI = 1, + ASP_RX_FILTER_MDA_BROADCAST = 2, + ASP_RX_FILTER_MDA_OWN_ADDR = 3, + ASP_RX_FILTER_MDA_RES_MAX = 4, }; -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]; +enum asp_netfilt_reg_type { + ASP_NETFILT_MATCH = 0, + ASP_NETFILT_MASK = 1, + ASP_NETFILT_MAX = 2, }; -struct displayid_iter { - const struct drm_edid *drm_edid; - const u8 *section; - int length; - int idx; - int ext_index; - u8 version; - u8 primary_use; +enum asp_rx_net_filter_block { + ASP_RX_FILTER_NET_L2 = 0, + ASP_RX_FILTER_NET_L3_0 = 1, + ASP_RX_FILTER_NET_L3_1 = 2, + ASP_RX_FILTER_NET_L4 = 3, + ASP_RX_FILTER_NET_BLOCK_MAX = 4, }; -typedef void detailed_cb(const struct detailed_timing *, void *); +struct e1000_stats { + char stat_string[32]; + int type; + int sizeof_stat; + int stat_offset; +}; -struct drm_edid_iter { - const struct drm_edid *drm_edid; - int index; +enum e1000_state_t___2 { + __E1000_TESTING = 0, + __E1000_RESETTING = 1, + __E1000_ACCESS_SHARED_RESOURCE = 2, + __E1000_DOWN = 3, }; -struct cea_db_iter { - struct drm_edid_iter edid_iter; - struct displayid_iter displayid_iter; - const u8 *collection; - int index; - int end; +enum { + NETDEV_STATS = 0, + E1000_STATS = 1, }; -struct cea_sad { - u8 format; - u8 channels; - u8 freq; - u8 byte2; +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 detailed_mode_closure { - struct drm_connector *connector; - const struct drm_edid *drm_edid; - bool preferred; - int modes; +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; }; -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; +struct smsc75xx_priv { + struct usbnet *dev; + u32 rfe_ctl; + u32 wolopts; + u32 multicast_hash_table[16]; + struct mutex dataport_mutex; + spinlock_t rfe_ctl_lock; + struct work_struct set_multicast; + u8 suspend_flags; }; -typedef int read_block_fn(void *, u8 *, unsigned int, size_t); +struct tegra_xtal_freq { + unsigned int freq; + u8 enable_delay; + u8 stable_count; + u8 active_delay; + u8 xtal_freq_count; + u16 debounce; +}; -struct tegra_dpaux_soc { - unsigned int cmh; - unsigned int drvz; - unsigned int drvi; +struct tegra_phy_soc_config { + bool utmi_pll_config_in_car_module; + bool has_hostpc; + bool requires_usbmode_setup; + bool requires_extra_tuning_parameters; + bool requires_pmc_ao_power_up; }; -enum tegra_dpaux_functions { - DPAUX_PADCTL_FUNC_AUX = 0, - DPAUX_PADCTL_FUNC_I2C = 1, - DPAUX_PADCTL_FUNC_OFF = 2, +enum tegra_usb_phy_port_speed { + TEGRA_USB_PHY_PORT_SPEED_FULL = 0, + TEGRA_USB_PHY_PORT_SPEED_LOW = 1, + TEGRA_USB_PHY_PORT_SPEED_HIGH = 2, }; -struct tegra_dpaux { - struct drm_dp_aux aux; - struct device *dev; - const struct tegra_dpaux_soc *soc; - void *regs; +struct tegra_usb_phy { int irq; - struct tegra_output *output; - struct reset_control *rst; - struct clk *clk_parent; + int instance; + const struct tegra_xtal_freq *freq; + void *regs; + void *pad_regs; struct clk *clk; - struct regulator *vdd; - struct completion complete; - struct work_struct work; - struct list_head list; - struct pinctrl_dev *pinctrl; - struct pinctrl_desc desc; - long: 32; + struct clk *pll_u; + struct clk *pad_clk; + struct regulator *vbus; + struct regmap *pmc_regmap; + enum usb_dr_mode mode; + void *config; + const struct tegra_phy_soc_config *soc_config; + struct usb_phy *ulpi; + struct usb_phy u_phy; + bool is_legacy_phy; + bool is_ulpi_phy; + struct gpio_desc *reset_gpio; + struct reset_control *pad_rst; + bool wakeup_enabled; + bool pad_wakeup; + bool powered_on; }; -struct at24_chip_data { - u32 byte_len; - u8 flags; - u8 bank_addr_shift; - void (*read_post)(unsigned int, char *, size_t); +struct tegra_utmip_config { + u8 hssync_start_delay; + u8 elastic_limit; + u8 idle_wait_delay; + u8 term_range_adj; + bool xcvr_setup_use_fuses; + u8 xcvr_setup; + u8 xcvr_lsfslew; + u8 xcvr_lsrslew; + u8 xcvr_hsslew; + u8 hssquelch_level; + u8 hsdiscon_level; }; -struct at24_data { - struct mutex lock; - unsigned int write_max; - unsigned int num_addresses; - unsigned int offset_adj; - u32 byte_len; - u16 page_size; - u8 flags; - struct nvmem_device *nvmem; - struct regulator *vcc_reg; - void (*read_post)(unsigned int, char *, size_t); - u8 bank_addr_shift; - struct regmap *client_regmaps[0]; +enum usbhs_omap_port_mode { + OMAP_USBHS_PORT_MODE_UNUSED = 0, + OMAP_EHCI_PORT_MODE_PHY = 1, + OMAP_EHCI_PORT_MODE_TLL = 2, + OMAP_EHCI_PORT_MODE_HSIC = 3, + OMAP_OHCI_PORT_MODE_PHY_6PIN_DATSE0 = 4, + OMAP_OHCI_PORT_MODE_PHY_6PIN_DPDM = 5, + OMAP_OHCI_PORT_MODE_PHY_3PIN_DATSE0 = 6, + OMAP_OHCI_PORT_MODE_PHY_4PIN_DPDM = 7, + OMAP_OHCI_PORT_MODE_TLL_6PIN_DATSE0 = 8, + OMAP_OHCI_PORT_MODE_TLL_6PIN_DPDM = 9, + OMAP_OHCI_PORT_MODE_TLL_3PIN_DATSE0 = 10, + OMAP_OHCI_PORT_MODE_TLL_4PIN_DPDM = 11, + OMAP_OHCI_PORT_MODE_TLL_2PIN_DATSE0 = 12, + OMAP_OHCI_PORT_MODE_TLL_2PIN_DPDM = 13, }; -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 omap_hcd { + struct usb_phy *phy[3]; + int nports; }; -enum hsm_task_states { - HSM_ST_IDLE = 0, - HSM_ST_FIRST = 1, - HSM_ST = 2, - HSM_ST_LAST = 3, - HSM_ST_ERR = 4, +struct ehci_hcd_omap_platform_data; + +struct ohci_hcd_omap_platform_data; + +struct usbhs_omap_platform_data { + int nports; + enum usbhs_omap_port_mode port_mode[3]; + int reset_gpio_port[3]; + struct regulator *regulator[3]; + struct ehci_hcd_omap_platform_data *ehci_data; + struct ohci_hcd_omap_platform_data *ohci_data; + unsigned int single_ulpi_bypass: 1; + unsigned int es2_compatibility: 1; + unsigned int phy_reset: 1; }; -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 ehci_hcd_omap_platform_data { + enum usbhs_omap_port_mode port_mode[3]; + int reset_gpio_port[3]; + struct regulator *regulator[3]; + unsigned int phy_reset: 1; }; -struct brcmnand_io_ops; +struct ohci_hcd_omap_platform_data { + enum usbhs_omap_port_mode port_mode[3]; + unsigned int es2_compatibility: 1; +}; -struct brcmnand_soc { - bool (*ctlrdy_ack)(struct brcmnand_soc *); - void (*ctlrdy_set_enabled)(struct brcmnand_soc *, bool); - void (*prepare_data_bus)(struct brcmnand_soc *, bool, bool); - const struct brcmnand_io_ops *ops; +struct ci_hdrc_msm { + struct platform_device *ci; + struct clk *core_clk; + struct clk *iface_clk; + struct clk *fs_clk; + struct ci_hdrc_platform_data pdata; + struct reset_controller_dev rcdev; + bool secondary_phy; + bool hsic; + void *base; }; -struct iproc_nand_soc { - struct brcmnand_soc soc; - void *idm_base; - void *ext_base; - spinlock_t idm_lock; +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 brcmnand_io_ops { - u32 (*read_reg)(struct brcmnand_soc *, u32); - void (*write_reg)(struct brcmnand_soc *, u32, u32); +struct rtc_plat_data { + struct rtc_device *rtc; + void *ioaddr; + int irq; + struct clk *clk; }; -struct spi_bitbang_cs { - unsigned int nsecs; - u32 (*txrx_word)(struct spi_device *, unsigned int, u32, u8, unsigned int); - unsigned int (*txrx_bufs)(struct spi_device *, u32 (*)(struct spi_device *, unsigned int, u32, u8, unsigned int), unsigned int, struct spi_transfer *, unsigned int); +struct i2c_dev { + struct list_head list; + struct i2c_adapter *adap; + long: 32; + struct device dev; + struct cdev cdev; + long: 32; }; -struct spi_bitbang { - struct mutex lock; - u8 busy; - u8 use_dma; - u16 flags; - struct spi_controller *master; - int (*setup_transfer)(struct spi_device *, struct spi_transfer *); - void (*chipselect)(struct spi_device *, int); - int (*txrx_bufs)(struct spi_device *, struct spi_transfer *); - u32 (*txrx_word[4])(struct spi_device *, unsigned int, u32, u8, unsigned int); - int (*set_line_direction)(struct spi_device *, bool); +struct i2c_rdwr_ioctl_data { + struct i2c_msg __attribute__((btf_type_tag("user"))) *msgs; + __u32 nmsgs; }; -enum stat_access_type { - PHY = 0, - MMD = 1, +struct i2c_smbus_ioctl_data { + __u8 read_write; + __u8 command; + __u32 size; + union i2c_smbus_data __attribute__((btf_type_tag("user"))) *data; }; -struct at803x_hw_stat { - const char *string; - u8 reg; - u32 mask; - enum stat_access_type access_type; +struct p2wi { + struct i2c_adapter adapter; + struct completion complete; + unsigned int status; + void *regs; + struct clk *clk; + struct reset_control *rstc; + int slave_addr; + long: 32; }; -enum { - ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC = 0, - ETHTOOL_A_CABLE_RESULT_CODE_OK = 1, - ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 2, - ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 3, - ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 4, +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]; }; -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 ptp_clock_caps { + int max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int pps; + int n_pins; + int cross_timestamping; + int adjust_phase; + int max_phase_adj; + int rsv[11]; }; -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, +struct ptp_sys_offset_extended { + unsigned int n_samples; + unsigned int rsv[3]; + struct ptp_clock_time ts[75]; }; -struct at803x_priv { - int flags; - u16 clk_25m_reg; - u16 clk_25m_mask; - u8 smarteee_lpi_tw_1g; - u8 smarteee_lpi_tw_100m; - bool is_fiber; - bool is_1000basex; - struct regulator_dev *vddio_rdev; - struct regulator_dev *vddh_rdev; - long: 32; - u64 stats[3]; +struct ptp_sys_offset { + unsigned int n_samples; + unsigned int rsv[3]; + struct ptp_clock_time ts[51]; }; -struct at803x_context { - u16 bmcr; - u16 advertise; - u16 control1000; - u16 int_enable; - u16 smart_speed; - u16 led_control; +enum vexpress_reset_func { + FUNC_RESET = 0, + FUNC_SHUTDOWN = 1, + FUNC_REBOOT = 2, }; -enum ttc_control { - DMA_CONTROL_TTC_DEFAULT = 0, - DMA_CONTROL_TTC_64 = 16384, - DMA_CONTROL_TTC_128 = 32768, - DMA_CONTROL_TTC_256 = 49152, - DMA_CONTROL_TTC_18 = 4194304, - DMA_CONTROL_TTC_24 = 4210688, - DMA_CONTROL_TTC_32 = 4227072, - DMA_CONTROL_TTC_40 = 4243456, - DMA_CONTROL_SE = 8, - DMA_CONTROL_OSF = 4, +struct stm_thermal_sensor { + struct device *dev; + struct thermal_zone_device *th_dev; + enum thermal_device_mode mode; + struct clk *clk; + unsigned int low_temp_enabled; + unsigned int high_temp_enabled; + int irq; + void *base; + int t0; + int fmt0; + int ramp_coeff; }; -struct cpdma_control_info { - u32 reg; - u32 shift; - u32 mask; - int access; +struct stpmic1_wdt { + struct stpmic1 *pmic; + struct watchdog_device wdtdev; }; -enum cpdma_state { - CPDMA_STATE_IDLE = 0, - CPDMA_STATE_ACTIVE = 1, - CPDMA_STATE_TEARDOWN = 2, +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 *); }; -enum cpdma_control { - CPDMA_TX_RLIM = 0, - CPDMA_CMD_IDLE = 1, - CPDMA_COPY_ERROR_FRAMES = 2, - CPDMA_RX_OFF_LEN_UPDATE = 3, - CPDMA_RX_OWNERSHIP_FLIP = 4, - CPDMA_TX_PRIO_FIXED = 5, - CPDMA_STAT_IDLE = 6, - CPDMA_STAT_TX_ERR_CHAN = 7, - CPDMA_STAT_TX_ERR_CODE = 8, - CPDMA_STAT_RX_ERR_CHAN = 9, - CPDMA_STAT_RX_ERR_CODE = 10, - CPDMA_RX_BUFFER_OFFSET = 11, +struct cpufreq_policy_data { + struct cpufreq_cpuinfo cpuinfo; + struct cpufreq_frequency_table *freq_table; + unsigned int cpu; + unsigned int min; + unsigned int max; }; -struct cpdma_desc { - u32 hw_next; - u32 hw_buffer; - u32 hw_len; - u32 hw_mode; - void *sw_token; - u32 sw_buffer; - u32 sw_len; +struct freq_attr { + struct attribute attr; + ssize_t (*show)(struct cpufreq_policy *, char *); + ssize_t (*store)(struct cpufreq_policy *, const char *, size_t); }; -struct cpdma_params { - struct device *dev; - void *dmaregs; - void *txhdp; - void *rxhdp; - void *txcp; - void *rxcp; - void *rxthresh; - void *rxfree; - int num_chan; - bool has_soft_reset; - int min_packet_size; - dma_addr_t desc_mem_phys; - dma_addr_t desc_hw_addr; - int desc_mem_size; - int desc_align; - u32 bus_freq_mhz; - u32 descs_pool_size; - bool has_ext_regs; +enum IMX6_CPUFREQ_CLKS { + ARM = 0, + PLL1_SYS = 1, + STEP = 2, + PLL1_SW = 3, + PLL2_PFD2_396M = 4, + PLL2_BUS = 5, + SECONDARY_SEL = 6, }; -struct cpdma_desc_pool; +enum { + EVENT_CMD_COMPLETE = 0, + EVENT_XFER_COMPLETE = 1, + EVENT_DATA_COMPLETE = 2, + EVENT_DATA_ERROR = 3, +}; -struct cpdma_chan; +enum { + TRANS_MODE_PIO = 0, + TRANS_MODE_IDMAC = 1, + TRANS_MODE_EDMAC = 2, +}; -struct cpdma_ctlr { - enum cpdma_state state; - struct cpdma_params params; - struct device *dev; - struct cpdma_desc_pool *pool; - spinlock_t lock; - struct cpdma_chan *channels[64]; - int chan_num; - int num_rx_desc; - int num_tx_desc; +enum dw_mci_cookie { + COOKIE_UNMAPPED___2 = 0, + COOKIE_PRE_MAPPED___2 = 1, + COOKIE_MAPPED___2 = 2, }; -struct cpdma_desc_pool { - phys_addr_t phys; - dma_addr_t hw_addr; - void *iomap; - void *cpumap; - int desc_size; - int mem_size; - int num_desc; - struct device *dev; - struct gen_pool *gen_pool; +struct idmac_desc_64addr { + u32 des0; + u32 des1; + u32 des2; + u32 des3; + u32 des4; + u32 des5; + u32 des6; + u32 des7; }; -typedef void (*cpdma_handler_fn)(void *, int, int); +struct idmac_desc { + __le32 des0; + __le32 des1; + __le32 des2; + __le32 des3; +}; -struct cpdma_chan_stats { - u32 head_enqueue; - u32 tail_enqueue; - u32 pad_enqueue; - u32 misqueued; - u32 desc_alloc_fail; - u32 pad_alloc_fail; - u32 runt_receive_buff; - u32 runt_transmit_buff; - u32 empty_dequeue; - u32 busy_dequeue; - u32 good_dequeue; - u32 requeue; - u32 teardown_dequeue; -}; +struct sdhci_msm_variant_ops; -struct cpdma_chan { - struct cpdma_desc *head; - struct cpdma_desc *tail; - void *hdp; - void *cp; - void *rxfree; - enum cpdma_state state; - struct cpdma_ctlr *ctlr; - int chan_num; - spinlock_t lock; - int count; - u32 desc_num; - u32 mask; - cpdma_handler_fn handler; - enum dma_data_direction dir; - struct cpdma_chan_stats stats; - int int_set; - int int_clear; - int td; - int weight; - u32 rate_factor; - u32 rate; -}; +struct sdhci_msm_offset; -struct submit_info { - struct cpdma_chan *chan; - int directed; - void *token; - void *data_virt; - dma_addr_t data_dma; - int len; +struct sdhci_msm_variant_info { + bool mci_removed; + bool restore_dll_config; + const struct sdhci_msm_variant_ops *var_ops; + const struct sdhci_msm_offset *offset; }; -struct cdrom_sysctl_settings { - char info[1000]; - int autoclose; - int autoeject; - int debug; - int lock; - int check; +struct sdhci_msm_variant_ops { + u32 (*msm_readl_relaxed)(struct sdhci_host *, u32); + void (*msm_writel_relaxed)(u32, struct sdhci_host *, u32); }; -enum cdrom_print_option { - CTL_NAME = 0, - CTL_SPEED = 1, - CTL_SLOTS = 2, - CTL_CAPABILITY = 3, +struct sdhci_msm_offset { + u32 core_hc_mode; + u32 core_mci_data_cnt; + u32 core_mci_status; + u32 core_mci_fifo_cnt; + u32 core_mci_version; + u32 core_generics; + u32 core_testbus_config; + u32 core_testbus_sel2_bit; + u32 core_testbus_ena; + u32 core_testbus_sel2; + u32 core_pwrctl_status; + u32 core_pwrctl_mask; + u32 core_pwrctl_clear; + u32 core_pwrctl_ctl; + u32 core_sdcc_debug_reg; + u32 core_dll_config; + u32 core_dll_status; + u32 core_vendor_spec; + u32 core_vendor_spec_adma_err_addr0; + u32 core_vendor_spec_adma_err_addr1; + u32 core_vendor_spec_func2; + u32 core_vendor_spec_capabilities0; + u32 core_ddr_200_cfg; + u32 core_vendor_spec3; + u32 core_dll_config_2; + u32 core_dll_config_3; + u32 core_ddr_config_old; + u32 core_ddr_config; + u32 core_dll_usr_ctl; }; -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 sdhci_msm_host { + struct platform_device *pdev; + void *core_mem; + int pwr_irq; + struct clk *bus_clk; + struct clk *xo_clk; + struct clk_bulk_data bulk_clks[4]; + unsigned long clk_rate; + struct mmc_host *mmc; + bool use_14lpp_dll_reset; + bool tuning_done; + bool calibration_done; + u8 saved_tuning_phase; + bool use_cdclp533; + u32 curr_pwr_state; + u32 curr_io_level; + wait_queue_head_t pwr_irq_wait; + bool pwr_irq_flag; + u32 caps_0; + bool mci_removed; + bool restore_dll_config; + const struct sdhci_msm_variant_ops *var_ops; + const struct sdhci_msm_offset *offset; + bool use_cdr; + u32 transfer_mode; + bool updated_ddr_cfg; + bool uses_tassadar_dll; + u32 dll_config; + u32 ddr_config; + bool vqmmc_enabled; }; -struct mode_page_header { - __be16 mode_data_length; - __u8 medium_type; - __u8 reserved1; - __u8 reserved2; - __u8 reserved3; - __be16 desc_length; +struct firmware_ops { + int (*prepare_idle)(unsigned long); + int (*do_idle)(unsigned long); + int (*set_cpu_boot_addr)(int, unsigned long); + int (*get_cpu_boot_addr)(int, unsigned long *); + int (*cpu_boot)(int); + int (*l2x0_init)(); + int (*suspend)(); + int (*resume)(); }; -struct cdrom_timed_media_change_info { - __s64 last_media_change; - __u64 media_flags; +struct trusted_foundations_platform_data { + unsigned int version_major; + unsigned int version_minor; }; -struct cdrom_msf { - __u8 cdmsf_min0; - __u8 cdmsf_sec0; - __u8 cdmsf_frame0; - __u8 cdmsf_min1; - __u8 cdmsf_sec1; - __u8 cdmsf_frame1; +struct scmi_clock_info; + +struct scmi_clk_proto_ops { + int (*count_get)(const struct scmi_protocol_handle *); + const struct scmi_clock_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*rate_get)(const struct scmi_protocol_handle *, u32, u64 *); + int (*rate_set)(const struct scmi_protocol_handle *, u32, u64); + int (*enable)(const struct scmi_protocol_handle *, u32, bool); + int (*disable)(const struct scmi_protocol_handle *, u32, bool); + int (*state_get)(const struct scmi_protocol_handle *, u32, bool *, bool); + int (*config_oem_get)(const struct scmi_protocol_handle *, u32, u8, u32 *, u32 *, bool); + int (*config_oem_set)(const struct scmi_protocol_handle *, u32, u8, u32, bool); + int (*parent_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*parent_set)(const struct scmi_protocol_handle *, u32, u32); }; -struct cdrom_read_audio { - union cdrom_addr addr; - __u8 addr_format; - int nframes; - __u8 __attribute__((btf_type_tag("user"))) *buf; +struct scmi_clock_info { + char name[64]; + unsigned int enable_latency; + bool rate_discrete; + bool rate_changed_notifications; + bool rate_change_requested_notifications; + union { + struct { + int num_rates; + long: 32; + u64 rates[16]; + } list; + struct { + u64 min_rate; + u64 max_rate; + u64 step_size; + } range; + }; + int num_parents; + u32 *parents; }; -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; +enum scmi_clock_protocol_cmd { + CLOCK_ATTRIBUTES = 3, + CLOCK_DESCRIBE_RATES = 4, + CLOCK_RATE_SET = 5, + CLOCK_RATE_GET = 6, + CLOCK_CONFIG_SET = 7, + CLOCK_NAME_GET = 8, + CLOCK_RATE_NOTIFY = 9, + CLOCK_RATE_CHANGE_REQUESTED_NOTIFY = 10, + CLOCK_CONFIG_GET = 11, + CLOCK_POSSIBLE_PARENTS_GET = 12, + CLOCK_PARENT_SET = 13, + CLOCK_PARENT_GET = 14, }; -struct cdrom_blk { - unsigned int from; - unsigned short len; +enum clk_state { + CLK_STATE_DISABLE = 0, + CLK_STATE_ENABLE = 1, + CLK_STATE_RESERVED = 2, + CLK_STATE_UNCHANGED = 3, }; -struct cdrom_volctrl { - __u8 channel0; - __u8 channel1; - __u8 channel2; - __u8 channel3; +struct scmi_clk_ipriv { + struct device *dev; + u32 clk_id; + struct scmi_clock_info *clk; }; -struct dvd_lu_send_agid { - __u8 type; - unsigned int agid: 2; +struct clock_info { + u32 version; + int num_clocks; + int max_async_req; + atomic_t cur_async_req; + struct scmi_clock_info *clk; + int (*clock_config_set)(const struct scmi_protocol_handle *, u32, enum clk_state, u8, u32, bool); + int (*clock_config_get)(const struct scmi_protocol_handle *, u32, u8, u32 *, bool *, u32 *, bool); }; -typedef __u8 dvd_challenge[10]; +struct scmi_msg_resp_clock_protocol_attributes { + __le16 num_clocks; + u8 max_async_req; + u8 reserved; +}; -struct dvd_host_send_challenge { - __u8 type; - unsigned int agid: 2; - dvd_challenge chal; +struct scmi_msg_resp_clock_attributes { + __le32 attributes; + u8 name[16]; + __le32 clock_enable_latency; }; -typedef __u8 dvd_key[5]; +struct scmi_msg_clock_rate_notify { + __le32 clk_id; + __le32 notify_enable; +}; -struct dvd_send_key { - __u8 type; - unsigned int agid: 2; - dvd_key key; +struct scmi_msg_clock_config_set_v2 { + __le32 id; + __le32 attributes; + __le32 oem_config_val; }; -struct dvd_lu_send_challenge { - __u8 type; - unsigned int agid: 2; - dvd_challenge chal; +struct scmi_msg_clock_config_get { + __le32 id; + __le32 flags; }; -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 scmi_msg_resp_clock_config_get { + __le32 attributes; + __le32 config; + __le32 oem_config_val; }; -struct dvd_lu_send_asf { - __u8 type; - unsigned int agid: 2; - unsigned int asf: 1; +struct scmi_msg_clock_config_set { + __le32 id; + __le32 attributes; }; -struct dvd_host_send_rpcstate { - __u8 type; - __u8 pdrc; +struct scmi_msg_clock_possible_parents { + __le32 id; + __le32 skip_parents; }; -struct dvd_lu_send_rpcstate { - __u8 type: 2; - __u8 vra: 3; - __u8 ucca: 3; - __u8 region_mask; - __u8 rpc_scheme; +struct scmi_msg_resp_clock_possible_parents { + __le32 num_parent_flags; + __le32 possible_parents[0]; }; -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; +struct scmi_msg_clock_describe_rates { + __le32 id; + __le32 rate_index; +}; -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; +struct scmi_msg_resp_clock_describe_rates { + __le32 num_rates_flags; + struct { + __le32 value_low; + __le32 value_high; + } rate[0]; +}; -typedef struct { - int data; - int audio; - int cdi; - int xa; - long error; -} tracktype; +struct scmi_clock_set_rate { + __le32 flags; + __le32 id; + __le32 value_low; + __le32 value_high; +}; -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 scmi_msg_resp_set_rate_complete { + __le32 id; + __le32 rate_low; + __le32 rate_high; }; -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 scmi_msg_clock_set_parent { + __le32 id; + __le32 parent_id; }; -struct cdrom_slot { - __u8 change: 1; - __u8 reserved1: 6; - __u8 disc_present: 1; - __u8 reserved2[3]; +struct scmi_clock_rate_notify_payld { + __le32 agent_id; + __le32 clock_id; + __le32 rate_low; + __le32 rate_high; }; -struct cdrom_changer_info { - struct cdrom_mechstat_header hdr; - struct cdrom_slot slots[256]; +struct scmi_clock_rate_notif_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int clock_id; + unsigned long long rate; }; -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 scmi_powercap_info; -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 scmi_powercap_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const struct scmi_powercap_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*cap_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*cap_set)(const struct scmi_protocol_handle *, u32, u32, bool); + int (*cap_enable_set)(const struct scmi_protocol_handle *, u32, bool); + int (*cap_enable_get)(const struct scmi_protocol_handle *, u32, bool *); + int (*pai_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*pai_set)(const struct scmi_protocol_handle *, u32, u32); + int (*measurements_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); + int (*measurements_threshold_set)(const struct scmi_protocol_handle *, u32, u32, u32); + int (*measurements_threshold_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); }; -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 scmi_fc_info; -struct dvd_physical { - __u8 type; - __u8 layer_num; - struct dvd_layer layer[4]; +struct scmi_powercap_info { + unsigned int id; + bool notify_powercap_cap_change; + bool notify_powercap_measurement_change; + bool async_powercap_cap_set; + bool powercap_cap_config; + bool powercap_monitoring; + bool powercap_pai_config; + bool powercap_scale_mw; + bool powercap_scale_uw; + bool fastchannels; + char name[64]; + unsigned int min_pai; + unsigned int max_pai; + unsigned int pai_step; + unsigned int min_power_cap; + unsigned int max_power_cap; + unsigned int power_cap_step; + unsigned int sustainable_power; + unsigned int accuracy; + unsigned int parent_id; + struct scmi_fc_info *fc_info; }; -struct dvd_copyright { - __u8 type; - __u8 layer_num; - __u8 cpst; - __u8 rmi; +struct scmi_fc_info { + void *set_addr; + void *get_addr; + struct scmi_fc_db_info *set_db; }; -struct dvd_disckey { - __u8 type; - unsigned int agid: 2; - __u8 value[2048]; +enum scmi_powercap_protocol_cmd { + POWERCAP_DOMAIN_ATTRIBUTES = 3, + POWERCAP_CAP_GET = 4, + POWERCAP_CAP_SET = 5, + POWERCAP_PAI_GET = 6, + POWERCAP_PAI_SET = 7, + POWERCAP_DOMAIN_NAME_GET = 8, + POWERCAP_MEASUREMENTS_GET = 9, + POWERCAP_CAP_NOTIFY = 10, + POWERCAP_MEASUREMENTS_NOTIFY = 11, + POWERCAP_DESCRIBE_FASTCHANNEL = 12, }; -struct dvd_bca { - __u8 type; - int len; - __u8 value[188]; +enum { + POWERCAP_FC_CAP = 0, + POWERCAP_FC_PAI = 1, + POWERCAP_FC_MAX = 2, }; -struct dvd_manufact { - __u8 type; - __u8 layer_num; - int len; - __u8 value[2048]; +enum scmi_std_protocol { + SCMI_PROTOCOL_BASE = 16, + SCMI_PROTOCOL_POWER = 17, + SCMI_PROTOCOL_SYSTEM = 18, + SCMI_PROTOCOL_PERF = 19, + SCMI_PROTOCOL_CLOCK = 20, + SCMI_PROTOCOL_SENSOR = 21, + SCMI_PROTOCOL_RESET = 22, + SCMI_PROTOCOL_VOLTAGE = 23, + SCMI_PROTOCOL_POWERCAP = 24, }; -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; +struct scmi_powercap_state; -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 powercap_info { + u32 version; + int num_domains; + struct scmi_powercap_state *states; + struct scmi_powercap_info *powercaps; +}; -enum ab8500_version { - AB8500_VERSION_AB8500 = 0, - AB8500_VERSION_AB8505 = 1, - AB8500_VERSION_AB9540 = 2, - AB8500_VERSION_AB8540 = 4, - AB8500_VERSION_UNDEFINED = 5, +struct scmi_powercap_state { + bool enabled; + u32 last_pcap; + bool meas_notif_enabled; + long: 32; + u64 thresholds; }; -enum ab8500_usb_mode { - USB_IDLE = 0, - USB_PERIPHERAL = 1, - USB_HOST = 2, - USB_DEDICATED_CHG = 3, - USB_UART = 4, +struct scmi_msg_resp_powercap_domain_attributes { + __le32 attributes; + u8 name[16]; + __le32 min_pai; + __le32 max_pai; + __le32 pai_step; + __le32 min_power_cap; + __le32 max_power_cap; + __le32 power_cap_step; + __le32 sustainable_power; + __le32 accuracy; + __le32 parent_id; }; -enum ux500_musb_vbus_id_status { - UX500_MUSB_NONE = 0, - UX500_MUSB_VBUS = 1, - UX500_MUSB_ID = 2, - UX500_MUSB_CHARGER = 3, - UX500_MUSB_ENUMERATED = 4, - UX500_MUSB_RIDA = 5, - UX500_MUSB_RIDB = 6, - UX500_MUSB_RIDC = 7, - UX500_MUSB_PREPARE = 8, - UX500_MUSB_CLEAN = 9, +struct scmi_msg_powercap_set_cap_or_pai { + __le32 domain; + __le32 flags; + __le32 value; }; -enum ab8500_usb_link_status { - USB_LINK_NOT_CONFIGURED_8500 = 0, - USB_LINK_STD_HOST_NC_8500 = 1, - USB_LINK_STD_HOST_C_NS_8500 = 2, - USB_LINK_STD_HOST_C_S_8500 = 3, - USB_LINK_HOST_CHG_NM_8500 = 4, - USB_LINK_HOST_CHG_HS_8500 = 5, - USB_LINK_HOST_CHG_HS_CHIRP_8500 = 6, - USB_LINK_DEDICATED_CHG_8500 = 7, - USB_LINK_ACA_RID_A_8500 = 8, - USB_LINK_ACA_RID_B_8500 = 9, - USB_LINK_ACA_RID_C_NM_8500 = 10, - USB_LINK_ACA_RID_C_HS_8500 = 11, - USB_LINK_ACA_RID_C_HS_CHIRP_8500 = 12, - USB_LINK_HM_IDGND_8500 = 13, - USB_LINK_RESERVED_8500 = 14, - USB_LINK_NOT_VALID_LINK_8500 = 15, +struct scmi_msg_resp_powercap_cap_set_complete { + __le32 domain; + __le32 power_cap; }; -enum ab8505_usb_link_status { - USB_LINK_NOT_CONFIGURED_8505 = 0, - USB_LINK_STD_HOST_NC_8505 = 1, - USB_LINK_STD_HOST_C_NS_8505 = 2, - USB_LINK_STD_HOST_C_S_8505 = 3, - USB_LINK_CDP_8505 = 4, - USB_LINK_RESERVED0_8505 = 5, - USB_LINK_RESERVED1_8505 = 6, - USB_LINK_DEDICATED_CHG_8505 = 7, - USB_LINK_ACA_RID_A_8505 = 8, - USB_LINK_ACA_RID_B_8505 = 9, - USB_LINK_ACA_RID_C_NM_8505 = 10, - USB_LINK_RESERVED2_8505 = 11, - USB_LINK_RESERVED3_8505 = 12, - USB_LINK_HM_IDGND_8505 = 13, - USB_LINK_CHARGERPORT_NOT_OK_8505 = 14, - USB_LINK_CHARGER_DM_HIGH_8505 = 15, - USB_LINK_PHYEN_NO_VBUS_NO_IDGND_8505 = 16, - USB_LINK_STD_UPSTREAM_NO_IDGNG_NO_VBUS_8505 = 17, - USB_LINK_STD_UPSTREAM_8505 = 18, - USB_LINK_CHARGER_SE1_8505 = 19, - USB_LINK_CARKIT_CHGR_1_8505 = 20, - USB_LINK_CARKIT_CHGR_2_8505 = 21, - USB_LINK_ACA_DOCK_CHGR_8505 = 22, - USB_LINK_SAMSUNG_BOOT_CBL_PHY_EN_8505 = 23, - USB_LINK_SAMSUNG_BOOT_CBL_PHY_DISB_8505 = 24, - USB_LINK_SAMSUNG_UART_CBL_PHY_EN_8505 = 25, - USB_LINK_SAMSUNG_UART_CBL_PHY_DISB_8505 = 26, - USB_LINK_MOTOROLA_FACTORY_CBL_PHY_EN_8505 = 27, +struct scmi_msg_resp_powercap_meas_get { + __le32 power; + __le32 pai; }; -struct ab8500; +struct scmi_msg_powercap_notify_cap { + __le32 domain; + __le32 notify_enable; +}; -struct ab8500_usb { - struct usb_phy phy; - struct device *dev; - struct ab8500 *ab8500; - unsigned int vbus_draw; - struct work_struct phy_dis_work; - enum ab8500_usb_mode mode; - struct clk *sysclk; - struct regulator *v_ape; - struct regulator *v_musb; - struct regulator *v_ulpi; - int saved_v_ulpi; - int previous_link_status_state; - struct pinctrl *pinctrl; - struct pinctrl_state *pins_sleep; - bool enabled_charging_detection; - unsigned int flags; +struct scmi_msg_powercap_notify_thresh { + __le32 domain; + __le32 notify_enable; + __le32 power_thresh_low; + __le32 power_thresh_high; }; -struct ab8500 { - struct device *dev; - struct mutex lock; - struct mutex irq_lock; - atomic_t transfer_ongoing; - int irq; - struct irq_domain *domain; - enum ab8500_version version; - u8 chip_id; - int (*write)(struct ab8500 *, u16, u8); - int (*write_masked)(struct ab8500 *, u16, u8, u8); - int (*read)(struct ab8500 *, u16); - unsigned long tx_buf[4]; - unsigned long rx_buf[4]; - u8 *mask; - u8 *oldmask; - int mask_size; - const int *irq_reg_offset; - int it_latchhier_num; +struct scmi_powercap_cap_changed_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 power_cap; + __le32 pai; }; -enum orion_ehci_phy_ver { - EHCI_PHY_ORION = 0, - EHCI_PHY_DD = 1, - EHCI_PHY_KW = 2, - EHCI_PHY_NA = 3, +struct scmi_powercap_cap_changed_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int power_cap; + unsigned int pai; }; -struct orion_ehci_hcd { - struct clk *clk; - struct phy *phy; +struct scmi_powercap_meas_changed_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 power; }; -struct orion_ehci_data { - enum orion_ehci_phy_ver phy_version; +struct scmi_powercap_meas_changed_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int power; + long: 32; }; -struct input_led { - struct led_classdev cdev; - struct input_handle *handle; - unsigned int code; +enum qcom_scm_convention { + SMC_CONVENTION_UNKNOWN = 0, + SMC_CONVENTION_LEGACY = 1, + SMC_CONVENTION_ARM_32 = 2, + SMC_CONVENTION_ARM_64 = 3, }; -struct input_leds { - struct input_handle handle; - unsigned int num_leds; - struct input_led leds[0]; +struct arm_smccc_args { + unsigned long args[8]; }; -struct brcmstb_waketmr { - struct rtc_device *rtc; - struct device *dev; - void *base; - unsigned int wake_irq; - unsigned int alarm_irq; - struct notifier_block reboot_notifier; - struct clk *clk; - u32 rate; - unsigned long rtc_alarm; - bool alarm_en; +struct arm_smccc_quirk { + int id; + union { + unsigned long a6; + } state; }; -struct wktmr_time { - u32 sec; - u32 pre; +struct qcom_scm_desc { + u32 svc; + u32 cmd; + u32 arginfo; + long: 32; + u64 args[10]; + u32 owner; + long: 32; }; -enum i2c_type_exynos { - I2C_TYPE_EXYNOS5 = 0, - I2C_TYPE_EXYNOS7 = 1, - I2C_TYPE_EXYNOSAUTOV9 = 2, +struct qcom_scm_res { + u64 result[3]; }; -struct exynos_hsi2c_variant { - unsigned int fifo_depth; - enum i2c_type_exynos hw; +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 exynos5_i2c { - struct i2c_adapter adap; - struct i2c_msg *msg; - struct completion msg_complete; - unsigned int msg_ptr; - unsigned int irq; - void *regs; - struct clk *clk; - struct clk *pclk; - struct device *dev; - int state; +struct mbox_controller; + +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; - int trans_done; - unsigned int op_clock; - const struct exynos_hsi2c_variant *variant; + void *con_priv; }; -struct pps_kinfo { - __u32 assert_sequence; - __u32 clear_sequence; - struct pps_ktime assert_tu; - struct pps_ktime clear_tu; - int current_mode; +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 *); + long: 32; + struct hrtimer poll_hrt; + spinlock_t poll_hrt_lock; + struct list_head node; long: 32; }; -struct pps_fdata { - struct pps_kinfo info; - struct pps_ktime timeout; +struct sun6i_msgbox { + struct mbox_controller controller; + struct clk *clk; + spinlock_t lock; + void *regs; + long: 32; }; -struct pps_bind_args { - int tsformat; - int edge; - int consumer; +struct atmel_ebi_dev; + +struct atmel_ebi_dev_config; + +struct atmel_ebi_caps { + unsigned int available_cs; + unsigned int ebi_csa_offs; + const char *regmap_name; + void (*get_config)(struct atmel_ebi_dev *, struct atmel_ebi_dev_config *); + int (*xlate_config)(struct atmel_ebi_dev *, struct device_node *, struct atmel_ebi_dev_config *); + void (*apply_config)(struct atmel_ebi_dev *, struct atmel_ebi_dev_config *); }; -struct rcar_thermal_chip { - unsigned int use_of_thermal: 1; - unsigned int has_filonoff: 1; - unsigned int irq_per_ch: 1; - unsigned int needs_suspend_resume: 1; - unsigned int nirqs; - unsigned int ctemp_bands; +struct atmel_smc_cs_conf { + u32 setup; + u32 pulse; + u32 cycle; + u32 timings; + u32 mode; }; -struct rcar_thermal_common; +struct atmel_ebi_dev_config { + int cs; + struct atmel_smc_cs_conf smcconf; +}; -struct rcar_thermal_priv { - void *base; - struct rcar_thermal_common *common; - struct thermal_zone_device *zone; - const struct rcar_thermal_chip *chip; - struct delayed_work work; - struct mutex lock; - struct list_head list; - int id; +struct atmel_ebi; + +struct atmel_ebi_dev { + struct list_head node; + struct atmel_ebi *ebi; + u32 mode; + int numcs; + struct atmel_ebi_dev_config configs[0]; }; -struct rcar_thermal_common { - void *base; +struct atmel_hsmc_reg_layout; + +struct atmel_ebi { + struct clk *clk; + struct regmap *regmap; + struct { + struct regmap *regmap; + struct clk *clk; + const struct atmel_hsmc_reg_layout *layout; + } smc; struct device *dev; - struct list_head head; - spinlock_t lock; + const struct atmel_ebi_caps *caps; + struct list_head devs; }; -struct dc_wdt { - void *base; - struct clk *clk; - spinlock_t lock; +struct atmel_hsmc_reg_layout { + unsigned int timing_regs_offset; }; -struct opp_config_data { - struct opp_table *opp_table; - unsigned int flags; +struct atmel_smc_timing_xlate { + const char *name; + int (*converter)(struct atmel_smc_cs_conf *, unsigned int, unsigned int); + unsigned int shift; }; -enum atmel_mci_state { - STATE_IDLE___2 = 0, - STATE_SENDING_CMD___2 = 1, - STATE_DATA_XFER = 2, - STATE_WAITING_NOTBUSY = 3, - STATE_SENDING_STOP___2 = 4, - STATE_END_REQUEST = 5, +enum devfreq_timer { + DEVFREQ_TIMER_DEFERRABLE = 0, + DEVFREQ_TIMER_DELAYED = 1, + DEVFREQ_TIMER_NUM = 2, }; -enum { - EVENT_CMD_RDY = 0, - EVENT_XFER_COMPLETE = 1, - EVENT_NOTBUSY = 2, - EVENT_DATA_ERROR = 3, +struct devfreq_dev_status; + +struct devfreq_dev_profile { + unsigned long initial_freq; + unsigned int polling_ms; + enum devfreq_timer timer; + int (*target)(struct device *, unsigned long *, u32); + int (*get_dev_status)(struct device *, struct devfreq_dev_status *); + int (*get_cur_freq)(struct device *, unsigned long *); + void (*exit)(struct device *); + unsigned long *freq_table; + unsigned int max_state; + bool is_cooling_device; }; -enum atmci_xfer_dir { - XFER_RECEIVE = 0, - XFER_TRANSMIT = 1, +struct devfreq_dev_status { + unsigned long total_time; + unsigned long busy_time; + unsigned long current_frequency; + void *private_data; }; -enum atmci_pdc_buf { - PDC_FIRST_BUF = 0, - PDC_SECOND_BUF = 1, +enum emc_dram_type { + DRAM_TYPE_RESERVED = 0, + DRAM_TYPE_DDR1 = 1, + DRAM_TYPE_LPDDR2 = 2, + DRAM_TYPE_DDR2 = 3, }; -struct atmel_mci_dma { - struct dma_chan *chan; - struct dma_async_tx_descriptor *data_desc; +enum emc_rate_request_type { + EMC_RATE_DEVFREQ = 0, + EMC_RATE_DEBUG = 1, + EMC_RATE_ICC = 2, + EMC_RATE_TYPE_MAX = 3, }; -struct atmel_mci_caps { - bool has_dma_conf_reg; - bool has_pdc; - bool has_cfg_reg; - bool has_cstor_reg; - bool has_highspeed; - bool has_rwproof; - bool has_odd_clk_div; - bool has_bad_data_ordering; - bool need_reset_after_xfer; - bool need_blksz_mul_4; - bool need_notbusy_for_read_ops; +struct emc_rate_request { + unsigned long min_rate; + unsigned long max_rate; }; -struct atmel_mci_slot; +struct devfreq_simple_ondemand_data { + unsigned int upthreshold; + unsigned int downdifferential; +}; -struct atmel_mci { - spinlock_t lock; +union lpddr2_basic_config4 { + u32 value; + struct { + unsigned int arch_type: 2; + unsigned int density: 4; + unsigned int io_width: 2; + } __attribute__((packed)); +}; + +struct emc_timing; + +struct tegra_emc { + struct device *dev; + struct tegra_mc *mc; + struct icc_provider provider; + struct notifier_block clk_nb; + struct clk *clk; void *regs; - struct scatterlist *sg; - unsigned int sg_len; - unsigned int pio_offset; - unsigned int *buffer; - unsigned int buf_size; - dma_addr_t buf_phys_addr; - struct atmel_mci_slot *cur_slot; - struct mmc_request *mrq; - struct mmc_command *cmd; - struct mmc_data *data; - unsigned int data_size; - struct atmel_mci_dma dma; - struct dma_chan *data_chan; - struct dma_slave_config dma_conf; - u32 cmd_status; - u32 data_status; - u32 stop_cmdr; - struct tasklet_struct tasklet; - unsigned long pending_events; - unsigned long completed_events; - enum atmel_mci_state state; - struct list_head queue; - bool need_clock_update; - bool need_reset; - struct timer_list timer; - u32 mode_reg; - u32 cfg_reg; - unsigned long bus_hz; - unsigned long mapbase; - struct clk *mck; - struct platform_device *pdev; - struct atmel_mci_slot *slot[2]; - struct atmel_mci_caps caps; - u32 (*prepare_data)(struct atmel_mci *, struct mmc_data *); - void (*submit_data)(struct atmel_mci *, struct mmc_data *); - void (*stop_transfer)(struct atmel_mci *); + unsigned int dram_bus_width; + struct emc_timing *timings; + unsigned int num_timings; + struct { + struct dentry *root; + unsigned long min_rate; + unsigned long max_rate; + } debugfs; + struct emc_rate_request requested_rate[3]; + struct mutex rate_lock; + struct devfreq_simple_ondemand_data ondemand_data; + union lpddr2_basic_config4 basic_conf4; + unsigned int manufacturer_id; + unsigned int revision_id1; + unsigned int revision_id2; + bool mrr_error; }; -struct atmel_mci_slot { - struct mmc_host *mmc; - struct atmel_mci *host; - u32 sdc_reg; - u32 sdio_irq; - struct mmc_request *mrq; - struct list_head queue_node; - unsigned int clock; - unsigned long flags; - int detect_pin; - int wp_pin; - bool detect_is_active_high; - struct timer_list detect_timer; +struct emc_timing { + unsigned long rate; + u32 data[46]; }; -struct mci_slot_pdata { - unsigned int bus_width; - int detect_pin; - int wp_pin; - bool detect_is_active_high; - bool non_removable; +struct lpddr2_info { + int arch_type; + int density; + int io_width; + int manufacturer_id; + int revision_id1; + int revision_id2; }; -struct mci_platform_data { - void *dma_slave; - dma_filter_fn dma_filter; - struct mci_slot_pdata slot[2]; -}; +typedef long tegra20_clk_emc_round_cb(unsigned long, unsigned long, unsigned long, void *); -struct efi_system_resource_table { - u32 fw_resource_count; - u32 fw_resource_count_max; - u64 fw_resource_version; - u8 entries[0]; +struct devfreq_stats { + unsigned int total_trans; + unsigned int *trans_table; + u64 *time_in_state; + long: 32; + u64 last_update; }; -struct esre_entry; +struct devfreq_governor; -struct esre_attribute { - struct attribute attr; - ssize_t (*show)(struct esre_entry *, char *); - ssize_t (*store)(struct esre_entry *, const char *, size_t); +struct devfreq { + struct list_head node; + struct mutex lock; + long: 32; + struct device dev; + struct devfreq_dev_profile *profile; + const struct devfreq_governor *governor; + struct opp_table *opp_table; + struct notifier_block nb; + struct delayed_work work; + unsigned long *freq_table; + unsigned int max_state; + unsigned long previous_freq; + struct devfreq_dev_status last_status; + void *data; + void *governor_data; + struct dev_pm_qos_request user_min_freq_req; + struct dev_pm_qos_request user_max_freq_req; + unsigned long scaling_min_freq; + unsigned long scaling_max_freq; + bool stop_polling; + unsigned long suspend_freq; + unsigned long resume_freq; + atomic_t suspend_count; + struct devfreq_stats stats; + struct srcu_notifier_head transition_notifier_list; + struct thermal_cooling_device *cdev; + struct notifier_block nb_min; + struct notifier_block nb_max; + long: 32; }; -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 devfreq_governor { + struct list_head node; + const char name[16]; + const u64 attrs; + const u64 flags; + int (*get_target_freq)(struct devfreq *, unsigned long *); + int (*event_handler)(struct devfreq *, unsigned int, void *); }; -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 clk_notifier_data { + struct clk *clk; + unsigned long old_rate; + unsigned long new_rate; }; -enum { - MEMREMAP_WB = 1, - MEMREMAP_WT = 2, - MEMREMAP_WC = 4, - MEMREMAP_ENC = 8, - MEMREMAP_DEC = 16, -}; +typedef int (*armpmu_init_fn)(struct arm_pmu *); -struct rpmsg_device_id { - char name[32]; - kernel_ulong_t driver_data; +struct pmu_probe_info { + unsigned int cpuid; + unsigned int mask; + armpmu_init_fn init; }; -struct rpmsg_endpoint; - -struct rpmsg_device_ops; - -struct rpmsg_device { - struct device dev; - struct rpmsg_device_id id; - const char *driver_override; - u32 src; - u32 dst; - struct rpmsg_endpoint *ept; - bool announce; - bool little_endian; - const struct rpmsg_device_ops *ops; - long: 32; +struct net_device_devres { + struct net_device *ndev; }; -typedef int (*rpmsg_rx_cb_t)(struct rpmsg_device *, void *, int, void *, u32); - -struct rpmsg_endpoint_ops; - -struct rpmsg_endpoint { - struct rpmsg_device *rpdev; - struct kref refcount; - rpmsg_rx_cb_t cb; - struct mutex cb_lock; - u32 addr; - void *priv; - const struct rpmsg_endpoint_ops *ops; +struct netdev_name_node { + struct hlist_node hlist; + struct list_head list; + struct net_device *dev; + const char *name; }; -struct rpmsg_endpoint_ops { - void (*destroy_ept)(struct rpmsg_endpoint *); - int (*send)(struct rpmsg_endpoint *, void *, int); - int (*sendto)(struct rpmsg_endpoint *, void *, int, u32); - int (*send_offchannel)(struct rpmsg_endpoint *, u32, u32, void *, int); - int (*trysend)(struct rpmsg_endpoint *, void *, int); - int (*trysendto)(struct rpmsg_endpoint *, void *, int, u32); - int (*trysend_offchannel)(struct rpmsg_endpoint *, u32, u32, void *, int); - __poll_t (*poll)(struct rpmsg_endpoint *, struct file *, poll_table *); - ssize_t (*get_mtu)(struct rpmsg_endpoint *); +enum { + IF_LINK_MODE_DEFAULT = 0, + IF_LINK_MODE_DORMANT = 1, + IF_LINK_MODE_TESTING = 2, }; -struct rpmsg_channel_info; - -struct rpmsg_device_ops { - struct rpmsg_device * (*create_channel)(struct rpmsg_device *, struct rpmsg_channel_info *); - int (*release_channel)(struct rpmsg_device *, struct rpmsg_channel_info *); - struct rpmsg_endpoint * (*create_ept)(struct rpmsg_device *, rpmsg_rx_cb_t, void *, struct rpmsg_channel_info); - int (*announce_create)(struct rpmsg_device *); - int (*announce_destroy)(struct rpmsg_device *); +enum { + IF_OPER_UNKNOWN = 0, + IF_OPER_NOTPRESENT = 1, + IF_OPER_DOWN = 2, + IF_OPER_LOWERLAYERDOWN = 3, + IF_OPER_TESTING = 4, + IF_OPER_DORMANT = 5, + IF_OPER_UP = 6, }; -struct rpmsg_channel_info { - char name[32]; - u32 src; - u32 dst; +enum lw_bits { + LW_URGENT = 0, }; -struct rpmsg_driver { - struct device_driver drv; - const struct rpmsg_device_id *id_table; - int (*probe)(struct rpmsg_device *); - void (*remove)(struct rpmsg_device *); - int (*callback)(struct rpmsg_device *, void *, int, void *, u32); +struct net_test { + char name[32]; + int (*fn)(struct net_device *); }; -typedef void (*btf_trace_mc_event)(void *, const unsigned int, const char *, const char *, const int, const u8, const s8, const s8, const s8, unsigned long, const u8, unsigned long, const char *); - -struct cper_sec_proc_arm; - -typedef void (*btf_trace_arm_event)(void *, const struct cper_sec_proc_arm *); +struct netsfhdr { + __be32 version; + __be64 magic; + u8 id; +} __attribute__((packed)); -struct cper_sec_proc_arm { - u32 validation_bits; - u16 err_info_num; - u16 context_info_num; - u32 section_length; - u8 affinity_level; - u8 reserved[3]; - u64 mpidr; - u64 midr; - u32 running_state; - u32 psci_state; +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; }; -typedef void (*btf_trace_non_standard_event)(void *, const guid_t *, const guid_t *, const char *, const u8, const u8 *, const u32); - -struct aer_header_log_regs; - -typedef void (*btf_trace_aer_event)(void *, const char *, const u32, const u8, const u8, struct aer_header_log_regs *); - -struct aer_header_log_regs { - unsigned int dw0; - unsigned int dw1; - unsigned int dw2; - unsigned int dw3; +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 hw_event_mc_err_type { - HW_EVENT_ERR_CORRECTED = 0, - HW_EVENT_ERR_UNCORRECTED = 1, - HW_EVENT_ERR_DEFERRED = 2, - HW_EVENT_ERR_FATAL = 3, - HW_EVENT_ERR_INFO = 4, +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 trace_event_raw_mc_event { - struct trace_entry ent; - unsigned int error_type; - u32 __data_loc_msg; - u32 __data_loc_label; - u16 error_count; - u8 mc_index; - s8 top_layer; - s8 middle_layer; - s8 lower_layer; - long address; - u8 grain_bits; - long syndrome; - u32 __data_loc_driver_detail; - char __data[0]; +struct linkmodes_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; + bool peer_empty; }; -struct trace_event_raw_arm_event { - struct trace_entry ent; - u64 mpidr; - u64 midr; - u32 running_state; - u32 psci_state; - u8 affinity; - char __data[0]; - long: 32; +struct link_mode_info { + int speed; + u8 lanes; + u8 duplex; }; -struct trace_event_raw_non_standard_event { - struct trace_entry ent; - char sec_type[16]; - char fru_id[16]; - u32 __data_loc_fru_text; - u8 sev; - u32 len; - u32 __data_loc_buf; - char __data[0]; +enum tcp_tw_status { + TCP_TW_SUCCESS = 0, + TCP_TW_RST = 1, + TCP_TW_ACK = 2, + TCP_TW_SYN = 3, }; -struct trace_event_raw_aer_event { - struct trace_entry ent; - u32 __data_loc_dev_name; - u32 status; - u8 severity; - u8 tlp_header_valid; - u32 tlp_header[4]; - char __data[0]; +enum tcp_synack_type { + TCP_SYNACK_NORMAL = 0, + TCP_SYNACK_FASTOPEN = 1, + TCP_SYNACK_COOKIE = 2, }; -struct trace_event_data_offsets_mc_event { - u32 msg; - u32 label; - u32 driver_detail; +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, }; -struct trace_event_data_offsets_non_standard_event { - u32 fru_text; - u32 buf; +union tcp_word_hdr { + struct tcphdr hdr; + __be32 words[5]; }; -struct trace_event_data_offsets_aer_event { - u32 dev_name; +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 trace_event_data_offsets_arm_event {}; - -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, -}; +struct tcp_request_sock_ops; -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, +struct tcp_request_sock { + struct inet_request_sock req; + const struct tcp_request_sock_ops *af_specific; + long: 32; + u64 snt_synack; + bool tfo_listener; + bool is_mptcp; + bool req_usec_ts; + u32 txhash; + u32 rcv_isn; + u32 snt_isn; + u32 ts_off; + u32 last_oow_ack_time; + u32 rcv_nxt; + u8 syn_tos; }; -enum { - NETDEV_NLGRP_MGMT = 0, +struct tcp_request_sock_ops { + u16 mss_clamp; + struct dst_entry * (*route_req)(const struct sock *, struct sk_buff *, struct flowi *, struct request_sock *); + u32 (*init_seq)(const struct sk_buff *); + u32 (*init_ts_off)(const struct net *, const struct sk_buff *); + int (*send_synack)(const struct sock *, struct dst_entry *, struct flowi *, struct request_sock *, struct tcp_fastopen_cookie *, enum tcp_synack_type, struct sk_buff *); }; -struct 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; -}; +typedef unsigned int t_key; -struct genl_split_ops { +struct key_vector { + t_key key; + unsigned char pos; + unsigned char bits; + unsigned char slen; union { + struct hlist_head leaf; 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 *); + struct {} __empty_tnode; + struct key_vector __attribute__((btf_type_tag("rcu"))) *tnode[0]; }; }; - 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 trie { + struct key_vector kv[1]; }; -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 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 genl_multicast_group { - char name[16]; - u8 flags; +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; }; -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); - int registered; +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 listeners { - struct callback_head rcu; - unsigned long masks[0]; +struct fib_trie_iter { + struct seq_net_private p; + struct fib_table *tb; + struct key_vector *tnode; + unsigned int index; + unsigned int depth; }; -enum netlink_skb_flags { - NETLINK_SKB_DST = 8, +struct fib_route_iter { + struct seq_net_private p; + struct fib_table *main_tb; + struct key_vector *tnode; + loff_t pos; + t_key key; + long: 32; }; -enum { - NETLINK_UNCONNECTED = 0, - NETLINK_CONNECTED = 1, +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; }; -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, +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, }; -struct trace_event_raw_netlink_extack { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; +enum rtnl_link_flags { + RTNL_FLAG_DOIT_UNLOCKED = 1, + RTNL_FLAG_BULK_DEL_SUPPORTED = 2, }; -struct netlink_tap { - struct net_device *dev; - struct module *module; - struct list_head list; +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_NOT_OPTIMISTIC = 9, + IPV6_SADDR_RULE_MAX = 10, }; -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; - long: 32; +enum { + DAD_PROCESS = 0, + DAD_BEGIN = 1, + DAD_ABORT = 2, }; -struct __una_u32 { - u32 x; +enum cleanup_prefix_rt_t { + CLEANUP_PREFIX_RT_NOP = 0, + CLEANUP_PREFIX_RT_DEL = 1, + CLEANUP_PREFIX_RT_EXPIRE = 2, }; -struct sockaddr_nl { - __kernel_sa_family_t nl_family; - unsigned short nl_pad; - __u32 nl_pid; - __u32 nl_groups; +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, }; -struct trace_event_data_offsets_netlink_extack { - u32 msg; +enum { + DEVCONF_FORWARDING = 0, + DEVCONF_HOPLIMIT = 1, + DEVCONF_MTU6 = 2, + DEVCONF_ACCEPT_RA = 3, + DEVCONF_ACCEPT_REDIRECTS = 4, + DEVCONF_AUTOCONF = 5, + DEVCONF_DAD_TRANSMITS = 6, + DEVCONF_RTR_SOLICITS = 7, + DEVCONF_RTR_SOLICIT_INTERVAL = 8, + DEVCONF_RTR_SOLICIT_DELAY = 9, + DEVCONF_USE_TEMPADDR = 10, + DEVCONF_TEMP_VALID_LFT = 11, + DEVCONF_TEMP_PREFERED_LFT = 12, + DEVCONF_REGEN_MAX_RETRY = 13, + DEVCONF_MAX_DESYNC_FACTOR = 14, + DEVCONF_MAX_ADDRESSES = 15, + DEVCONF_FORCE_MLD_VERSION = 16, + DEVCONF_ACCEPT_RA_DEFRTR = 17, + DEVCONF_ACCEPT_RA_PINFO = 18, + DEVCONF_ACCEPT_RA_RTR_PREF = 19, + DEVCONF_RTR_PROBE_INTERVAL = 20, + DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN = 21, + DEVCONF_PROXY_NDP = 22, + DEVCONF_OPTIMISTIC_DAD = 23, + DEVCONF_ACCEPT_SOURCE_ROUTE = 24, + DEVCONF_MC_FORWARDING = 25, + DEVCONF_DISABLE_IPV6 = 26, + DEVCONF_ACCEPT_DAD = 27, + DEVCONF_FORCE_TLLAO = 28, + DEVCONF_NDISC_NOTIFY = 29, + DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL = 30, + DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL = 31, + DEVCONF_SUPPRESS_FRAG_NDISC = 32, + DEVCONF_ACCEPT_RA_FROM_LOCAL = 33, + DEVCONF_USE_OPTIMISTIC = 34, + DEVCONF_ACCEPT_RA_MTU = 35, + DEVCONF_STABLE_SECRET = 36, + DEVCONF_USE_OIF_ADDRS_ONLY = 37, + DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT = 38, + DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 39, + DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 40, + DEVCONF_DROP_UNSOLICITED_NA = 41, + DEVCONF_KEEP_ADDR_ON_DOWN = 42, + DEVCONF_RTR_SOLICIT_MAX_INTERVAL = 43, + DEVCONF_SEG6_ENABLED = 44, + DEVCONF_SEG6_REQUIRE_HMAC = 45, + DEVCONF_ENHANCED_DAD = 46, + DEVCONF_ADDR_GEN_MODE = 47, + DEVCONF_DISABLE_POLICY = 48, + DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49, + DEVCONF_NDISC_TCLASS = 50, + DEVCONF_RPL_SEG_ENABLED = 51, + DEVCONF_RA_DEFRTR_METRIC = 52, + DEVCONF_IOAM6_ENABLED = 53, + DEVCONF_IOAM6_ID = 54, + DEVCONF_IOAM6_ID_WIDE = 55, + DEVCONF_NDISC_EVICT_NOCARRIER = 56, + DEVCONF_ACCEPT_UNTRACKED_NA = 57, + DEVCONF_ACCEPT_RA_MIN_LFT = 58, + DEVCONF_MAX = 59, }; -struct netlink_tap_net { - struct list_head netlink_tap_all; - struct mutex netlink_tap_lock; +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, }; -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; +enum { + PREFIX_UNSPEC = 0, + PREFIX_ADDRESS = 1, + PREFIX_CACHEINFO = 2, + __PREFIX_MAX = 3, }; -struct netlink_set_err_data { - struct sock *exclude_sk; - u32 portid; - u32 group; - int code; +enum addr_type_t { + UNICAST_ADDR = 0, + MULTICAST_ADDR = 1, + ANYCAST_ADDR = 2, }; -struct netlink_compare_arg { - possible_net_t pnet; - u32 portid; +union fwnet_hwaddr { + u8 u[16]; + struct { + __be64 uniq_id; + u8 max_rec; + u8 sspd; + u8 fifo[6]; + } uc; }; -struct nl_pktinfo { - __u32 group; +struct prefix_cacheinfo { + __u32 preferred_time; + __u32 valid_time; }; -struct ucred { - __u32 pid; - __u32 uid; - __u32 gid; +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 rhashtable_walker { - struct list_head list; - struct bucket_table *tbl; +struct in6_ifreq { + struct in6_addr ifr6_addr; + __u32 ifr6_prefixlen; + int ifr6_ifindex; }; -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 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 nl_seq_iter { +struct if6_iter_state { struct seq_net_private p; - struct rhashtable_iter hti; - int link; + int bucket; + int offset; }; -struct bpf_iter__netlink { - union { - struct bpf_iter_meta *meta; - }; - union { - struct netlink_sock *sk; - }; +struct inet6_fill_args { + u32 portid; + u32 seq; + int event; + unsigned int flags; + int netnsid; + int ifindex; + enum addr_type_t type; }; -struct nlmsgerr { - int error; - struct nlmsghdr msg; +struct netdev_notifier_change_info { + struct netdev_notifier_info info; + unsigned int flags_changed; }; -struct netlink_notify { - struct net *net; - u32 portid; - int protocol; +struct ipv6_saddr_score { + int rule; + int addr_type; + struct inet6_ifaddr *ifa; + unsigned long scorebits[1]; + int scopedist; + int matchlen; }; -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, +struct ipv6_saddr_dst { + const struct in6_addr *addr; + int ifindex; + int scope; + int label; + unsigned int prefs; }; -struct inet_diag_req_v2; - -struct inet_diag_msg; +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 inet_diag_handler { - void (*dump)(struct sk_buff *, struct netlink_callback *, const struct inet_diag_req_v2 *); - int (*dump_one)(struct netlink_callback *, const struct inet_diag_req_v2 *); - void (*idiag_get_info)(struct sock *, struct inet_diag_msg *, void *); - int (*idiag_get_aux)(struct sock *, bool, struct sk_buff *); - size_t (*idiag_get_aux_size)(struct sock *, bool); - int (*destroy)(struct sk_buff *, const struct inet_diag_req_v2 *); - __u16 idiag_type; - __u16 idiag_info_size; +struct in6_validator_info { + struct in6_addr i6vi_addr; + struct inet6_dev *i6vi_dev; + struct netlink_ext_ack *extack; }; -struct tcpvegas_info { - __u32 tcpv_enabled; - __u32 tcpv_rttcnt; - __u32 tcpv_rtt; - __u32 tcpv_minrtt; +struct ifla_cacheinfo { + __u32 max_reasm_len; + __u32 tstamp; + __u32 reachable_time; + __u32 retrans_time; }; -struct tcp_dctcp_info { - __u16 dctcp_enabled; - __u16 dctcp_ce_state; - __u32 dctcp_alpha; - __u32 dctcp_ab_ecn; - __u32 dctcp_ab_tot; +struct devlink_reload_combination { + enum devlink_reload_action action; + enum devlink_reload_limit limit; }; -struct tcp_bbr_info { - __u32 bbr_bw_lo; - __u32 bbr_bw_hi; - __u32 bbr_min_rtt; - __u32 bbr_pacing_gain; - __u32 bbr_cwnd_gain; +enum devlink_info_version_type { + DEVLINK_INFO_VERSION_TYPE_NONE = 0, + DEVLINK_INFO_VERSION_TYPE_COMPONENT = 1, }; -union tcp_cc_info { - struct tcpvegas_info vegas; - struct tcp_dctcp_info dctcp; - struct tcp_bbr_info bbr; +struct devlink_info_req { + struct sk_buff *msg; + void (*version_cb)(const char *, enum devlink_info_version_type, void *); + void *version_cb_priv; }; -struct inet_diag_sockid { - __be16 idiag_sport; - __be16 idiag_dport; - __be32 idiag_src[4]; - __be32 idiag_dst[4]; - __u32 idiag_if; - __u32 idiag_cookie[2]; +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, }; -struct inet_diag_req_v2 { - __u8 sdiag_family; - __u8 sdiag_protocol; - __u8 idiag_ext; - __u8 pad; - __u32 idiag_states; - struct inet_diag_sockid id; +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 inet_diag_msg { - __u8 idiag_family; - __u8 idiag_state; - __u8 idiag_timer; - __u8 idiag_retrans; - struct inet_diag_sockid id; - __u32 idiag_expires; - __u32 idiag_rqueue; - __u32 idiag_wqueue; - __u32 idiag_uid; - __u32 idiag_inode; +typedef void devlink_rel_notify_cb_t(struct devlink *, u32); + +typedef void devlink_rel_cleanup_cb_t(struct devlink *, u32, u32); + +struct devlink_flash_notify { + const char *status_msg; + const char *component; + unsigned long done; + unsigned long total; + unsigned long timeout; }; -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 devlink_flash_component_lookup_ctx { + const char *lookup_name; + bool lookup_name_found; }; 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, + RQ_SECURE = 0, + RQ_LOCAL = 1, + RQ_USEDEFERRAL = 2, + RQ_DROPME = 3, + RQ_SPLICE_OK = 4, + RQ_VICTIM = 5, + RQ_DATA = 6, }; enum { - INET_DIAG_REQ_NONE = 0, - INET_DIAG_REQ_BYTECODE = 1, - INET_DIAG_REQ_SK_BPF_STORAGES = 2, - INET_DIAG_REQ_PROTOCOL = 3, - __INET_DIAG_REQ_MAX = 4, + SVC_HANDSHAKE_TO = 500, }; -enum { - SK_MEMINFO_RMEM_ALLOC = 0, - SK_MEMINFO_RCVBUF = 1, - SK_MEMINFO_WMEM_ALLOC = 2, - SK_MEMINFO_SNDBUF = 3, - SK_MEMINFO_FWD_ALLOC = 4, - SK_MEMINFO_WMEM_QUEUED = 5, - SK_MEMINFO_OPTMEM = 6, - SK_MEMINFO_BACKLOG = 7, - SK_MEMINFO_DROPS = 8, - SK_MEMINFO_VARS = 9, +struct in_pktinfo { + int ipi_ifindex; + struct in_addr ipi_spec_dst; + struct in_addr ipi_addr; }; -enum { - INET_DIAG_BC_NOP = 0, - INET_DIAG_BC_JMP = 1, - INET_DIAG_BC_S_GE = 2, - INET_DIAG_BC_S_LE = 3, - INET_DIAG_BC_D_GE = 4, - INET_DIAG_BC_D_LE = 5, - INET_DIAG_BC_AUTO = 6, - INET_DIAG_BC_S_COND = 7, - INET_DIAG_BC_D_COND = 8, - INET_DIAG_BC_DEV_COND = 9, - INET_DIAG_BC_MARK_COND = 10, - INET_DIAG_BC_S_EQ = 11, - INET_DIAG_BC_D_EQ = 12, - INET_DIAG_BC_CGROUP_COND = 13, +struct xdp_sock { + struct sock sk; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct xsk_queue *rx; + struct net_device *dev; + struct xdp_umem *umem; + struct list_head flush_node; + struct xsk_buff_pool *pool; + u16 queue_id; + bool zc; + bool sg; + enum { + XSK_READY = 0, + XSK_BOUND = 1, + XSK_UNBOUND = 2, + } state; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct xsk_queue *tx; + struct list_head tx_list; + u32 tx_budget_spent; + spinlock_t rx_lock; + long: 32; + u64 rx_dropped; + u64 rx_queue_full; + struct sk_buff *skb; + struct list_head map_list; + spinlock_t map_list_lock; + struct mutex mutex; + struct xsk_queue *fq_tmp; + struct xsk_queue *cq_tmp; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct inet_diag_hostcond { - __u8 family; - __u8 prefix_len; - int port; - __be32 addr[0]; +enum { + BPF_F_BROADCAST = 8, + BPF_F_EXCLUDE_INGRESS = 16, }; -struct inet_diag_markcond { - __u32 mark; - __u32 mask; -}; +struct xsk_map; -struct bpf_sk_storage_diag; +struct xsk_map_node { + struct list_head node; + struct xsk_map *map; + struct xdp_sock __attribute__((btf_type_tag("rcu"))) **map_entry; +}; -struct inet_diag_dump_data { - struct nlattr *req_nlas[4]; - struct bpf_sk_storage_diag *bpf_stg_diag; +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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct inet_diag_entry { - const __be32 *saddr; - const __be32 *daddr; - u16 sport; - u16 dport; - u16 family; - u16 userlocks; - u32 ifindex; - u32 mark; - u64 cgroup_id; +struct bpf_nh_params { + u32 nh_family; + union { + u32 ipv4_nh; + struct in6_addr ipv6_nh; + }; }; -struct inet_diag_bc_op { - unsigned char code; - unsigned char yes; - unsigned short no; +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; + long: 32; }; -struct inet_diag_req { - __u8 idiag_family; - __u8 idiag_src_len; - __u8 idiag_dst_len; - __u8 idiag_ext; - struct inet_diag_sockid id; - __u32 idiag_states; - __u32 idiag_dbs; +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); + +typedef struct { + seqcount_t seqcount; +} seqcount_latch_t; + +struct latch_tree_root { + seqcount_latch_t seq; + struct rb_root tree[2]; }; -struct inet_diag_sockopt { - __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 unused: 5; +struct mod_tree_root { + struct latch_tree_root root; + unsigned long addr_min; + unsigned long addr_max; }; -struct inet_diag_meminfo { - __u32 idiag_rmem; - __u32 idiag_wmem; - __u32 idiag_fmem; - __u32 idiag_tmem; +enum mod_license { + NOT_GPL_ONLY = 0, + GPL_ONLY = 1, }; -typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); +struct symsearch { + const struct kernel_symbol *start; + const struct kernel_symbol *stop; + const s32 *crcs; + enum mod_license license; +}; -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 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 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, +enum fail_dup_mod_reason { + FAIL_DUP_MOD_BECOMING = 0, + FAIL_DUP_MOD_LOAD = 1, }; -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, +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, }; -enum bug_trap_type { - BUG_TRAP_TYPE_NONE = 0, - BUG_TRAP_TYPE_WARN = 1, - BUG_TRAP_TYPE_BUG = 2, +struct trace_event_raw_module_load { + struct trace_entry ent; + unsigned int taints; + u32 __data_loc_name; + char __data[0]; }; -struct cpuidle_ops; +struct trace_event_raw_module_free { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; -struct of_cpuidle_method { - const char *method; - const struct cpuidle_ops *ops; +struct trace_event_raw_module_refcnt { + struct trace_entry ent; + unsigned long ip; + int refcnt; + u32 __data_loc_name; + char __data[0]; }; -struct cpuidle_ops { - int (*suspend)(unsigned long); - int (*init)(struct device_node *, int); +struct trace_event_raw_module_request { + struct trace_entry ent; + unsigned long ip; + bool wait; + u32 __data_loc_name; + char __data[0]; }; -struct am33xx_pm_sram_addr; +struct module_use { + struct list_head source_list; + struct list_head target_list; + struct module *source; + struct module *target; +}; -struct am33xx_pm_platform_data { - int (*init)(int (*)(u32)); - int (*deinit)(); - int (*soc_suspend)(unsigned int, int (*)(unsigned long), unsigned long); - int (*cpu_suspend)(int (*)(unsigned long), unsigned long); - void (*begin_suspend)(); - void (*finish_suspend)(); - struct am33xx_pm_sram_addr * (*get_sram_addrs)(); - void (*save_context)(); - void (*restore_context)(); - int (*check_off_mode_enable)(); +struct mod_initfree { + struct llist_node node; + void *init_text; + void *init_data; + void *init_rodata; }; -struct am33xx_pm_sram_addr { - void (*do_wfi)(); - unsigned long *do_wfi_sz; - unsigned long *resume_offset; - unsigned long *emif_sram_table; - unsigned long *ro_sram_data; - unsigned long resume_address; +struct idempotent { + const void *cookie; + struct hlist_node entry; + struct completion complete; + int ret; }; -struct amx3_idle_state { - int wfi_flags; +struct trace_event_data_offsets_module_load { + u32 name; }; -struct tk_read_base { - struct clocksource *clock; - long: 32; - u64 mask; - u64 cycle_last; - u32 mult; - u32 shift; - u64 xtime_nsec; - ktime_t base; - u64 base_real; +struct trace_event_data_offsets_module_free { + u32 name; }; -struct tk_fast { - seqcount_latch_t seq; - long: 32; - struct tk_read_base base[2]; +struct trace_event_data_offsets_module_refcnt { + u32 name; }; -struct timekeeper { - struct tk_read_base tkr_mono; - struct tk_read_base tkr_raw; - u64 xtime_sec; - unsigned long ktime_sec; - long: 32; - 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; - long: 32; - 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; - long: 32; +struct trace_event_data_offsets_module_request { + u32 name; }; -enum timekeeping_adv_mode { - TK_ADV_TICK = 0, - TK_ADV_FREQ = 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 audit_ntp_data {}; +struct load_info { + const char *name; + struct module *mod; + Elf32_Ehdr *hdr; + unsigned long len; + Elf32_Shdr *sechdrs; + char *secstrings; + char *strtab; + unsigned long symoffs; + unsigned long stroffs; + unsigned long init_typeoffs; + unsigned long core_typeoffs; + bool sig_ok; + unsigned long mod_kallsyms_init_off; + struct { + unsigned int sym; + unsigned int str; + unsigned int mod; + unsigned int vers; + unsigned int info; + unsigned int pcpu; + } index; +}; -struct ktime_timestamps { - u64 mono; - u64 boot; - u64 real; +struct kexec_segment { + union { + void __attribute__((btf_type_tag("user"))) *buf; + void *kbuf; + }; + size_t bufsz; + unsigned long mem; + size_t memsz; }; -typedef void (*btf_trace_rpm_suspend)(void *, struct device *, int); +typedef unsigned long kimage_entry_t; -typedef void (*btf_trace_rpm_resume)(void *, struct device *, int); +struct kimage_arch { + u32 kernel_r2; +}; -typedef void (*btf_trace_rpm_idle)(void *, struct device *, int); +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; +}; -typedef void (*btf_trace_rpm_usage)(void *, struct device *, int); +struct fgraph_ret_regs; -typedef void (*btf_trace_rpm_return_int)(void *, struct device *, unsigned long, int); +enum bpf_jit_poke_reason { + BPF_POKE_REASON_TAIL_CALL = 0, +}; -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 prog_poke_elem { + struct list_head list; + struct bpf_prog_aux *aux; }; -struct trace_event_raw_rpm_return_int { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long ip; - int ret; - char __data[0]; +struct bpf_event_entry { + struct perf_event *event; + struct file *perf_file; + struct file *map_file; + struct callback_head rcu; }; -struct trace_event_data_offsets_rpm_internal { - u32 name; +struct bpf_iter__bpf_map_elem { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + void *value; + }; }; -struct trace_event_data_offsets_rpm_return_int { - u32 name; +struct bpf_iter_seq_array_map_info { + struct bpf_map *map; + void *percpu_value_buf; + u32 index; }; -struct bpf_cgroup_storage_map { - struct bpf_map map; - spinlock_t lock; - struct rb_root root; - struct list_head list; +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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct bpf_local_storage_data sdata; + long: 32; + long: 32; long: 32; long: 32; long: 32; @@ -81703,5266 +89534,6528 @@ struct bpf_cgroup_storage_map { long: 32; }; -struct fprop_global { - struct percpu_counter events; - unsigned int period; - seqcount_t sequence; -}; - -struct wb_domain { - spinlock_t lock; +struct bpf_local_storage_cache { + spinlock_t idx_lock; long: 32; - struct fprop_global completions; - struct timer_list period_timer; - unsigned long period_time; - unsigned long dirty_limit_tstamp; - unsigned long dirty_limit; + u64 idx_usage_counts[16]; }; -enum vmscan_throttle_state { - VMSCAN_THROTTLE_WRITEBACK = 0, - VMSCAN_THROTTLE_ISOLATED = 1, - VMSCAN_THROTTLE_NOPROGRESS = 2, - VMSCAN_THROTTLE_CONGESTED = 3, - NR_VMSCAN_THROTTLE = 4, -}; +typedef void (*btf_trace_rseq_update)(void *, struct task_struct *); -enum zone_watermarks { - WMARK_MIN = 0, - WMARK_LOW = 1, - WMARK_HIGH = 2, - WMARK_PROMO = 3, - NR_WMARK = 4, -}; +typedef void (*btf_trace_rseq_ip_fixup)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -enum wb_state { - WB_registered = 0, - WB_writeback_running = 1, - WB_has_dirty_io = 2, - WB_start_all = 3, +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, }; -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; +enum rseq_flags { + RSEQ_FLAG_UNREGISTER = 1, }; -struct wb_lock_cookie { - bool locked; - unsigned long flags; +enum rseq_cpu_id_state { + RSEQ_CPU_ID_UNINITIALIZED = -1, + RSEQ_CPU_ID_REGISTRATION_FAILED = -2, }; -typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); - -enum ttu_flags { - TTU_SPLIT_HUGE_PMD = 4, - TTU_IGNORE_MLOCK = 8, - TTU_SYNC = 16, - TTU_HWPOISON = 32, - TTU_BATCH_FLUSH = 64, - TTU_RMAP_LOCKED = 128, +struct trace_event_raw_rseq_update { + struct trace_entry ent; + s32 cpu_id; + s32 node_id; + s32 mm_cid; + char __data[0]; }; -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 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 migration_target_control { - int nid; - nodemask_t *nmask; - gfp_t gfp_mask; +struct rseq_cs { + __u32 version; + __u32 flags; + __u64 start_ip; + __u64 post_commit_offset; + __u64 abort_ip; }; -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 *); -}; +struct trace_event_data_offsets_rseq_update {}; -typedef int rmap_t; +struct trace_event_data_offsets_rseq_ip_fixup {}; -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 page_address_map { + struct page *page; + void *virtual; + struct list_head list; }; -struct page_vma_mapped_walk { - unsigned long pfn; - unsigned long nr_pages; - unsigned long pgoff; - struct vm_area_struct *vma; - unsigned long address; - pmd_t *pmd; - pte_t *pte; - spinlock_t *ptl; - unsigned int flags; +struct page_address_slot { + struct list_head lh; + spinlock_t lock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -typedef struct folio *new_folio_t(struct folio *, unsigned long); - -typedef void free_folio_t(struct folio *, 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; +enum fixed_addresses { + FIX_EARLYCON_MEM_BASE = 0, + __end_of_permanent_fixed_addresses = 1, + FIX_KMAP_BEGIN = 1, + FIX_KMAP_END = 256, + FIX_TEXT_POKE0 = 257, + FIX_TEXT_POKE1 = 258, + __end_of_fixmap_region = 259, + FIX_BTMAP_END = 1, + FIX_BTMAP_BEGIN = 224, + __end_of_early_ioremap_region = 225, }; -union migration_ptr { - struct anon_vma *anon_vma; - struct address_space *mapping; +enum fsnotify_obj_type { + FSNOTIFY_OBJ_TYPE_ANY = -1, + FSNOTIFY_OBJ_TYPE_INODE = 0, + FSNOTIFY_OBJ_TYPE_VFSMOUNT = 1, + FSNOTIFY_OBJ_TYPE_SB = 2, + FSNOTIFY_OBJ_TYPE_COUNT = 3, + FSNOTIFY_OBJ_TYPE_DETACHED = 3, }; -struct fs_pin { - wait_queue_head_t wait; - int done; - struct hlist_node s_list; - struct hlist_node m_list; - void (*kill)(struct fs_pin *); +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, }; -struct epitem; +struct fsnotify_group; -struct eventpoll { - struct mutex mtx; - wait_queue_head_t wq; - wait_queue_head_t poll_wait; - struct list_head rdllist; - rwlock_t lock; - struct rb_root_cached rbr; - struct epitem *ovflist; - struct wakeup_source *ws; - struct user_struct *user; - struct file *file; - u64 gen; - struct hlist_head refs; - refcount_t refcount; - unsigned int napi_id; - long: 32; +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 epoll_filefd { - struct file *file; - int fd; +struct inotify_group_private_data { + spinlock_t idr_lock; + struct idr idr; + struct ucounts *ucounts; }; -struct eppoll_entry; +struct fsnotify_ops; -struct epitem { +struct fsnotify_event; + +struct fsnotify_group { + const struct fsnotify_ops *ops; + refcount_t refcnt; + spinlock_t notification_lock; + struct list_head notification_list; + wait_queue_head_t notification_waitq; + unsigned int q_len; + unsigned int max_events; + unsigned int priority; + bool shutdown; + int flags; + unsigned int owner_flags; + struct mutex mark_mutex; + atomic_t user_waits; + struct list_head marks_list; + struct fasync_struct *fsn_fa; + struct fsnotify_event *overflow_event; + struct mem_cgroup *memcg; union { - struct rb_node rbn; - struct callback_head rcu; + void *private; + struct inotify_group_private_data inotify_data; }; - struct list_head rdllink; - struct epitem *next; - struct epoll_filefd ffd; - bool dying; - struct eppoll_entry *pwqlist; - struct eventpoll *ep; - struct hlist_node fllink; - struct wakeup_source __attribute__((btf_type_tag("rcu"))) *ws; - struct epoll_event event; }; -struct eppoll_entry { - struct eppoll_entry *next; - struct epitem *base; - wait_queue_entry_t wait; - wait_queue_head_t *whead; -}; +struct fsnotify_iter_info; -struct epitems_head { - struct hlist_head epitems; - struct epitems_head *next; +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 ep_pqueue { - poll_table pt; - struct epitem *epi; +struct fsnotify_iter_info { + struct fsnotify_mark *marks[5]; + struct fsnotify_group *current_group; + unsigned int report_mask; + int srcu_idx; }; -struct move_extent { - __u32 reserved; - __u32 donor_fd; - __u64 orig_start; - __u64 donor_start; - __u64 len; - __u64 moved_len; +struct fsnotify_event { + struct list_head list; }; -struct ext4_new_group_input { - __u32 group; - long: 32; - __u64 block_bitmap; - __u64 inode_bitmap; - __u64 inode_table; - __u32 blocks_count; - __u16 reserved_blocks; - __u16 unused; +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, }; -struct fstrim_range { - __u64 start; - __u64 len; - __u64 minlen; +enum nfs_ftype { + NFNON = 0, + NFREG = 1, + NFDIR = 2, + NFBLK = 3, + NFCHR = 4, + NFLNK = 5, + NFSOCK = 6, + NFBAD = 7, + NFFIFO = 8, }; -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]; +enum nfs2_ftype { + NF2NON = 0, + NF2REG = 1, + NF2DIR = 2, + NF2BLK = 3, + NF2CHR = 4, + NF2LNK = 5, + NF2SOCK = 6, + NF2BAD = 7, + NF2FIFO = 8, }; -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 nfs_diropok { + struct nfs_fh *fh; + struct nfs_fattr *fattr; }; -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 nfs_readdirargs { + struct nfs_fh *fh; + __u32 cookie; + unsigned int count; + struct page **pages; }; -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 nfs2_fsstat { + __u32 tsize; + __u32 bsize; + __u32 blocks; + __u32 bfree; + __u32 bavail; }; -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 nfs_sattrargs { + struct nfs_fh *fh; + struct iattr *sattr; }; -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 nfs_diropargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; }; -struct fsuuid { - __u32 fsu_len; - __u32 fsu_flags; - __u8 fsu_uuid[0]; +struct nfs_readlinkargs { + struct nfs_fh *fh; + unsigned int pgbase; + unsigned int pglen; + struct page **pages; }; -typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *); - -typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *); +struct nfs_createargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + struct iattr *sattr; +}; -struct bvec_iter_all { - struct bio_vec bv; - int idx; - unsigned int done; +struct nfs_linkargs { + struct nfs_fh *fromfh; + struct nfs_fh *tofh; + const char *toname; + unsigned int tolen; }; -enum pnfs_update_layout_reason { - PNFS_UPDATE_LAYOUT_UNKNOWN = 0, - PNFS_UPDATE_LAYOUT_NO_PNFS = 1, - PNFS_UPDATE_LAYOUT_RD_ZEROLEN = 2, - PNFS_UPDATE_LAYOUT_MDSTHRESH = 3, - PNFS_UPDATE_LAYOUT_NOMEM = 4, - PNFS_UPDATE_LAYOUT_BULK_RECALL = 5, - PNFS_UPDATE_LAYOUT_IO_TEST_FAIL = 6, - PNFS_UPDATE_LAYOUT_FOUND_CACHED = 7, - PNFS_UPDATE_LAYOUT_RETURN = 8, - PNFS_UPDATE_LAYOUT_RETRY = 9, - PNFS_UPDATE_LAYOUT_BLOCKED = 10, - PNFS_UPDATE_LAYOUT_INVALID_OPEN = 11, - PNFS_UPDATE_LAYOUT_SEND_LAYOUTGET = 12, - PNFS_UPDATE_LAYOUT_EXIT = 13, +struct nfs_symlinkargs { + struct nfs_fh *fromfh; + const char *fromname; + unsigned int fromlen; + struct page **pages; + unsigned int pathlen; + struct iattr *sattr; }; -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, +struct nlm_wait { + struct list_head b_list; + wait_queue_head_t b_wait; + struct nlm_host *b_host; + struct file_lock *b_lock; + __be32 b_status; }; -enum createmode4 { - NFS4_CREATE_UNCHECKED = 0, - NFS4_CREATE_GUARDED = 1, - NFS4_CREATE_EXCLUSIVE = 2, - NFS4_CREATE_EXCLUSIVE4_1 = 3, +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 nfs4_layoutreturn_res { - struct nfs4_sequence_res seq_res; - u32 lrs_present; - nfs4_stateid stateid; -}; +typedef struct { + ntfs_inode ntfs_inode; + struct inode vfs_inode; +} big_ntfs_inode; -struct nfs4_layoutreturn { - struct nfs4_layoutreturn_args args; - struct nfs4_layoutreturn_res res; - const struct cred *cred; - struct nfs_client *clp; - struct inode *inode; - int rpc_status; - struct nfs4_xdr_opaque_data ld_private; -}; +typedef struct { + NTFS_RECORD_TYPE magic; + le16 usa_ofs; + le16 usa_count; +} NTFS_RECORD; -struct nfs4_layoutget_args { - struct nfs4_sequence_args seq_args; - __u32 type; - long: 32; - 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; - long: 32; +struct persistent_ram_ecc_info { + int block_size; + int ecc_size; + int symsize; + int poly; + uint16_t *par; }; -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; - long: 32; -}; +struct persistent_ram_zone; -struct stateowner_id { - __u64 create_time; - __u32 uniquifier; - long: 32; +struct ramoops_context { + struct persistent_ram_zone **dprzs; + struct persistent_ram_zone *cprz; + struct persistent_ram_zone **fprzs; + struct persistent_ram_zone *mprz; + phys_addr_t phys_addr; + unsigned long size; + unsigned int memtype; + size_t record_size; + size_t console_size; + size_t ftrace_size; + size_t pmsg_size; + u32 flags; + struct persistent_ram_ecc_info ecc_info; + unsigned int max_dump_cnt; + unsigned int dump_write_cnt; + unsigned int dump_read_cnt; + unsigned int console_read_cnt; + unsigned int max_ftrace_cnt; + unsigned int ftrace_read_cnt; + unsigned int pmsg_read_cnt; + struct pstore_info pstore; }; -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 persistent_ram_buffer; -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; - long: 32; +struct rs_control; + +struct persistent_ram_zone { + phys_addr_t paddr; + size_t size; + void *vaddr; + char *label; + enum pstore_type_id type; + u32 flags; + raw_spinlock_t buffer_lock; + struct persistent_ram_buffer *buffer; + size_t buffer_size; + char *par_buffer; + char *par_header; + struct rs_control *rs_decoder; + int corrected_bytes; + int bad_blocks; + struct persistent_ram_ecc_info ecc_info; + char *old_log; + size_t old_log_size; }; -struct nfs_open_confirmargs { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - nfs4_stateid *stateid; - struct nfs_seqid *seqid; +struct ramoops_platform_data { + unsigned long mem_size; + phys_addr_t mem_address; + unsigned int mem_type; + unsigned long record_size; + unsigned long console_size; + unsigned long ftrace_size; + unsigned long pmsg_size; + int max_reason; + u32 flags; + struct persistent_ram_ecc_info ecc_info; }; -struct nfs_open_confirmres { - struct nfs4_sequence_res seq_res; - nfs4_stateid stateid; - struct nfs_seqid *seqid; +struct rsa_asn1_template { + const char *name; + const u8 *data; + size_t size; }; -struct nfs4_opendata { - struct kref kref; +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 *); long: 32; - 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; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct crypto_alg base; }; -enum key_lookup_flag { - KEY_LOOKUP_CREATE = 1, - KEY_LOOKUP_PARTIAL = 2, - KEY_LOOKUP_ALL = 3, +struct akcipher_request { + struct crypto_async_request base; + struct scatterlist *src; + struct scatterlist *dst; + unsigned int src_len; + unsigned int dst_len; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + void *__ctx[0]; }; -enum { - REQ_FSEQ_PREFLUSH = 1, - REQ_FSEQ_DATA = 2, - REQ_FSEQ_POSTFLUSH = 4, - REQ_FSEQ_DONE = 8, - REQ_FSEQ_ACTIONS = 7, - FLUSH_PENDING_TIMEOUT = 500, +struct crypto_akcipher { + unsigned int reqsize; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct crypto_tfm base; }; -enum { - BLK_MQ_NO_TAG = 4294967295, - BLK_MQ_TAG_MIN = 1, - BLK_MQ_TAG_MAX = 4294967294, +struct akcipher_instance { + void (*free)(struct akcipher_instance *); + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct akcipher_alg alg; + }; }; -enum stat_group { - STAT_READ = 0, - STAT_WRITE = 1, - STAT_DISCARD = 2, - STAT_FLUSH = 3, - NR_STAT_GROUPS = 4, +struct crypto_akcipher_spawn { + struct crypto_spawn base; }; -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, +struct pkcs1pad_inst_ctx { + struct crypto_akcipher_spawn spawn; + const struct rsa_asn1_template *digest_info; }; -enum hctx_type { - HCTX_TYPE_DEFAULT = 0, - HCTX_TYPE_READ = 1, - HCTX_TYPE_POLL = 2, - HCTX_MAX_TYPES = 3, +struct pkcs1pad_ctx { + struct crypto_akcipher *child; + unsigned int key_size; }; -struct io_rsrc_put { - u64 tag; - union { - void *rsrc; - struct file *file; - struct io_mapped_ubuf *buf; - }; +struct pkcs1pad_request { + struct scatterlist in_sg[2]; + struct scatterlist out_sg[1]; + uint8_t *in_buf; + uint8_t *out_buf; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; + long: 32; + long: 32; + long: 32; + struct akcipher_request child_req; }; -struct io_rsrc_node { - union { - struct io_cache_entry cache; - struct io_ring_ctx *ctx; - }; - int refs; - bool empty; - u16 type; - struct list_head node; - long: 32; - struct io_rsrc_put item; +struct biovec_slab { + int nr_vecs; + char *name; + struct kmem_cache *slab; }; -struct io_mapped_ubuf { - u64 ubuf; - u64 ubuf_end; - unsigned int nr_bvecs; - unsigned long acct_pages; - struct bio_vec bvec[0]; +enum { + BIOSET_NEED_BVECS = 1, + BIOSET_NEED_RESCUER = 2, + BIOSET_PERCPU_CACHE = 4, }; -struct io_rsrc_data { - struct io_ring_ctx *ctx; - u64 **tags; - unsigned int nr; - u16 rsrc_type; - bool quiesce; +struct folio_iter { + struct folio *folio; + size_t offset; + size_t length; + struct folio *_next; + size_t _seg_count; + int _i; }; -typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); +struct bio_slab { + struct kmem_cache *slab; + unsigned int slab_ref; + unsigned int slab_size; + char name[8]; +}; -typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long); +enum { + MAX_OPT_ARGS = 3, +}; -typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int); +struct gcry_mpi; -typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int); +typedef struct gcry_mpi *MPI; -typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *); +typedef unsigned long mpi_limb_t; -typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *); +struct gcry_mpi { + int alloced; + int nlimbs; + int nbits; + int sign; + unsigned int flags; + mpi_limb_t *d; +}; -typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); +typedef mpi_limb_t *mpi_ptr_t; -typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *); +typedef int mpi_size_t; -typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64); +typedef long mpi_limb_signed_t; -typedef void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *); +struct karatsuba_ctx { + struct karatsuba_ctx *next; + mpi_ptr_t tspace; + mpi_size_t tspace_size; + mpi_ptr_t tp; + mpi_size_t tp_size; +}; -typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int); +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; +}; -typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int); +typedef enum { + trustInput = 0, + checkMaxSymbolValue = 1, +} HIST_checkInput_e; -typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int); +typedef enum { + ZSTD_noDict = 0, + ZSTD_extDict = 1, + ZSTD_dictMatchState = 2, + ZSTD_dedicatedDictSearch = 3, +} ZSTD_dictMode_e; -typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, unsigned long long, s32, u32, void *); +typedef U32 (*ZSTD_getAllMatchesFn)(ZSTD_match_t *, ZSTD_matchState_t *, U32 *, const BYTE *, const BYTE *, const U32 *, const U32, const U32); -typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int, unsigned int); +typedef struct { + rawSeqStore_t seqStore; + U32 startPosInBlock; + U32 endPosInBlock; + U32 offset; +} ZSTD_optLdm_t; -typedef void (*btf_trace_io_uring_short_write)(void *, void *, u64, u64, u64); +typedef enum { + ZSTD_no_overlap = 0, + ZSTD_overlap_src_before_dst = 1, +} ZSTD_overlap_e; -typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int); +struct partition_affinity; -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, +struct partition_desc { + int nr_parts; + struct partition_affinity *parts; + struct irq_domain *domain; + struct irq_desc *chained_desc; + unsigned long *bitmap; + struct irq_domain_ops ops; }; -enum { - IO_CHECK_CQ_OVERFLOW_BIT = 0, - IO_CHECK_CQ_DROPPED_BIT = 1, +struct partition_affinity { + cpumask_t mask; + void *partition_id; }; -enum { - IO_EVENTFD_OP_SIGNAL_BIT = 0, - IO_EVENTFD_OP_FREE_BIT = 1, +enum bcm_usb_phy_version { + BCM_SR_USB_COMBO_PHY = 0, + BCM_SR_USB_HS_PHY = 1, }; -enum { - IORING_CQE_BUFFER_SHIFT = 16, +enum bcm_usb_phy_type { + USB_HS_PHY = 0, + USB_SS_PHY = 1, }; -enum { - IOU_F_TWQ_LAZY_WAKE = 1, +enum bcm_usb_phy_reg { + PLL_CTRL = 0, + PHY_CTRL = 1, + PHY_PLL_CTRL = 2, }; -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, +enum bcm_usb_phy_ctrl_bits { + CORERDY = 0, + PHY_RESETB = 1, + PHY_PCTL = 2, }; -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 pll_ctrl_bits { + PLL_RESETB = 0, + SSPLL_SUSPEND_EN = 1, + PLL_SEQ_START = 2, + PLL_LOCK = 3, }; -enum io_wq_cancel { - IO_WQ_CANCEL_OK = 0, - IO_WQ_CANCEL_RUNNING = 1, - IO_WQ_CANCEL_NOTFOUND = 2, +struct bcm_usb_phy_cfg { + uint32_t type; + uint32_t version; + void *regs; + struct phy *phy; + const u8 *offset; }; -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, +struct pm8xxx_mpp { + struct device *dev; + struct regmap *regmap; + struct pinctrl_dev *pctrl; + struct gpio_chip chip; + struct pinctrl_desc desc; + unsigned int npins; }; -enum { - IORING_RSRC_FILE = 0, - IORING_RSRC_BUFFER = 1, +struct pm8xxx_pin_data { + unsigned int reg; + u8 mode; + bool input; + bool output; + bool high_z; + bool paired; + bool output_value; + u8 power_source; + u8 dtest; + u8 amux; + u8 aout_level; + u8 drive_strength; + unsigned int pullup; }; -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 tegra_xusb_padctl_function; -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 tegra_xusb_padctl_lane; -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 tegra_xusb_padctl_soc___2 { + const struct pinctrl_pin_desc *pins; + unsigned int num_pins; + const struct tegra_xusb_padctl_function *functions; + unsigned int num_functions; + const struct tegra_xusb_padctl_lane *lanes; + unsigned int num_lanes; }; -struct trace_event_raw_io_uring_file_get { - struct trace_entry ent; - void *ctx; - void *req; - u64 user_data; - int fd; - char __data[0]; - long: 32; +struct tegra_xusb_padctl_function { + const char *name; + const char * const *groups; + unsigned int num_groups; }; -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]; - long: 32; +struct tegra_xusb_padctl_lane { + const char *name; + unsigned int offset; + unsigned int shift; + unsigned int mask; + unsigned int iddq; + const unsigned int *funcs; + unsigned int num_funcs; }; -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]; +enum tegra_xusb_padctl_param { + TEGRA_XUSB_PADCTL_IDDQ = 0, }; -struct trace_event_raw_io_uring_link { - struct trace_entry ent; - void *ctx; - void *req; - void *target_req; - char __data[0]; +struct tegra_xusb_padctl_property { + const char *name; + enum tegra_xusb_padctl_param param; }; -struct trace_event_raw_io_uring_cqring_wait { - struct trace_entry ent; - void *ctx; - int min_events; - char __data[0]; +struct tegra_xusb_padctl___2 { + struct device *dev; + void *regs; + struct mutex lock; + struct reset_control *rst; + const struct tegra_xusb_padctl_soc___2 *soc; + struct pinctrl_dev *pinctrl; + struct pinctrl_desc desc; + struct phy_provider *provider; + struct phy *phys[2]; + unsigned int enable; }; -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]; - long: 32; +struct tegra_gpio_soc_config { + bool debounce_supported; + u32 bank_stride; + u32 upper_offset; }; -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 tegra_gpio_bank; -struct trace_event_raw_io_uring_submit_req { - struct trace_entry ent; - void *ctx; - void *req; - unsigned long long user_data; - u8 opcode; - u32 flags; - bool sq_thread; - u32 __data_loc_op_str; - char __data[0]; +struct tegra_gpio_info { + struct device *dev; + void *regs; + struct tegra_gpio_bank *bank_info; + const struct tegra_gpio_soc_config *soc; + struct gpio_chip gc; + u32 bank_count; + unsigned int *irqs; }; -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 tegra_gpio_bank { + unsigned int bank; + raw_spinlock_t lvl_lock[4]; + spinlock_t dbc_lock[4]; + u32 cnf[4]; + u32 out[4]; + u32 oe[4]; + u32 int_enb[4]; + u32 int_lvl[4]; + u32 wake_enb[4]; + u32 dbc_enb[4]; + u32 dbc_cnt[4]; }; -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]; - long: 32; +enum pci_mmap_state { + pci_mmap_io = 0, + pci_mmap_mem = 1, }; -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; - long: 32; - 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]; +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 trace_event_raw_io_uring_cqe_overflow { - struct trace_entry ent; - void *ctx; - long: 32; - unsigned long long user_data; - s32 res; - u32 cflags; - void *ocqe; - char __data[0]; - long: 32; +struct gpio_backlight_platform_data { + struct device *dev; }; -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 gpio_backlight { + struct device *dev; + struct gpio_desc *gpiod; }; -struct trace_event_raw_io_uring_short_write { - struct trace_entry ent; - void *ctx; - long: 32; - u64 fpos; - u64 wanted; - u64 got; - char __data[0]; +struct owl_gate { + struct owl_gate_hw gate_hw; + struct owl_clk_common common; }; -struct trace_event_raw_io_uring_local_work_run { - struct trace_entry ent; - void *ctx; - int count; - unsigned int loops; - char __data[0]; -}; +struct clk_pll_table; -struct io_defer_entry { - struct list_head list; - struct io_kiocb *req; - u32 seq; +struct owl_pll_hw { + u32 reg; + u32 bfreq; + u8 bit_idx; + u8 shift; + u8 width; + u8 min_mul; + u8 max_mul; + u8 delay; + const struct clk_pll_table *table; }; -struct io_overflow_cqe { - struct list_head list; - struct io_uring_cqe cqe; +struct owl_pll { + struct owl_pll_hw pll_hw; + struct owl_clk_common common; }; -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 clk_pll_table { + unsigned int val; + unsigned long rate; }; -struct io_tctx_exit { - struct callback_head task_work; - struct completion completion; - struct io_ring_ctx *ctx; +struct clk_sam9260_slow { + struct clk_hw hw; + struct regmap *regmap; }; -typedef u32 compat_ulong_t; +struct clk_peripheral { + struct clk_hw hw; + struct regmap *regmap; + u32 id; +}; -struct trace_event_data_offsets_io_uring_queue_async_work { - u32 op_str; +struct clk_sam9x5_peripheral { + struct clk_hw hw; + struct regmap *regmap; + struct clk_range range; + spinlock_t *lock; + u32 id; + u32 div; + const struct clk_pcr_layout *layout; + struct at91_clk_pms pms; + bool auto_div; + int chg_pid; }; -struct trace_event_data_offsets_io_uring_defer { - u32 op_str; +struct sam9x60_pll_core { + struct regmap *regmap; + spinlock_t *lock; + const struct clk_pll_characteristics *characteristics; + const struct clk_pll_layout *layout; + struct clk_hw hw; + u8 id; }; -struct trace_event_data_offsets_io_uring_fail_link { - u32 op_str; +struct sam9x60_div { + struct sam9x60_pll_core core; + struct at91_clk_pms pms; + u8 div; + u8 safe_div; }; -struct trace_event_data_offsets_io_uring_submit_req { - u32 op_str; +struct sam9x60_frac { + struct sam9x60_pll_core core; + struct at91_clk_pms pms; + u32 frac; + u16 mul; }; -struct trace_event_data_offsets_io_uring_poll_arm { - u32 op_str; +struct raspberrypi_clk_variant { + bool export; + char *clkdev; + unsigned long min_rate; + bool minimize; }; -struct trace_event_data_offsets_io_uring_task_add { - u32 op_str; +enum rpi_firmware_clk_id { + RPI_FIRMWARE_EMMC_CLK_ID = 1, + RPI_FIRMWARE_UART_CLK_ID = 2, + RPI_FIRMWARE_ARM_CLK_ID = 3, + RPI_FIRMWARE_CORE_CLK_ID = 4, + RPI_FIRMWARE_V3D_CLK_ID = 5, + RPI_FIRMWARE_H264_CLK_ID = 6, + RPI_FIRMWARE_ISP_CLK_ID = 7, + RPI_FIRMWARE_SDRAM_CLK_ID = 8, + RPI_FIRMWARE_PIXEL_CLK_ID = 9, + RPI_FIRMWARE_PWM_CLK_ID = 10, + RPI_FIRMWARE_HEVC_CLK_ID = 11, + RPI_FIRMWARE_EMMC2_CLK_ID = 12, + RPI_FIRMWARE_M2MC_CLK_ID = 13, + RPI_FIRMWARE_PIXEL_BVB_CLK_ID = 14, + RPI_FIRMWARE_VEC_CLK_ID = 15, + RPI_FIRMWARE_NUM_CLK_ID = 16, }; -struct trace_event_data_offsets_io_uring_req_failed { - u32 op_str; +struct raspberrypi_clk; + +struct raspberrypi_clk_data { + struct clk_hw hw; + unsigned int id; + struct raspberrypi_clk_variant *variant; + struct raspberrypi_clk *rpi; }; -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 *); +struct raspberrypi_clk { + struct device *dev; + struct rpi_firmware *firmware; + struct platform_device *cpufreq; }; -typedef bool work_cancel_fn(struct io_wq_work *, void *); +struct rpi_firmware_get_clocks_response { + u32 parent; + u32 id; +}; -struct io_uring_getevents_arg { - __u64 sigmask; - __u32 sigmask_sz; - __u32 pad; - __u64 ts; +struct raspberrypi_firmware_prop { + __le32 id; + __le32 val; + __le32 disable_turbo; }; -struct io_uring_file_index_range { - __u32 off; - __u32 len; - __u64 resv; +struct clk_fractional_divider { + struct clk_hw hw; + void *reg; + u8 mshift; + u8 mwidth; + u8 nshift; + u8 nwidth; + u8 flags; + void (*approximation)(struct clk_hw *, unsigned long, unsigned long *, unsigned long *, unsigned long *); + spinlock_t *lock; }; -struct creds; +struct imx_fracn_gppll_rate_table; -struct trace_event_data_offsets_io_uring_create {}; +struct imx_fracn_gppll_clk { + const struct imx_fracn_gppll_rate_table *rate_table; + int rate_count; + int flags; +}; -struct trace_event_data_offsets_io_uring_register {}; +struct imx_fracn_gppll_rate_table { + unsigned int rate; + unsigned int mfi; + unsigned int mfn; + unsigned int mfd; + unsigned int rdiv; + unsigned int odiv; +}; -struct trace_event_data_offsets_io_uring_file_get {}; +struct clk_fracn_gppll { + struct clk_hw hw; + void *base; + const struct imx_fracn_gppll_rate_table *rate_table; + int rate_count; + u32 flags; +}; -struct trace_event_data_offsets_io_uring_link {}; +struct clk_pfd { + struct clk_hw hw; + void *reg; + u8 idx; +}; -struct trace_event_data_offsets_io_uring_cqring_wait {}; +struct cpu_clk { + struct clk_hw hw; + int cpu; + const char *clk_name; + const char *parent_name; + void *reg_base; + void *pmu_dfs; +}; -struct trace_event_data_offsets_io_uring_complete {}; +struct exynos_audss_clk_drvdata { + unsigned int has_adma_clk: 1; + unsigned int has_mst_clk: 1; + unsigned int enable_epll: 1; + unsigned int num_clks; +}; -struct trace_event_data_offsets_io_uring_cqe_overflow {}; +struct tcon_ch1_clk { + struct clk_hw hw; + spinlock_t lock; + void *reg; +}; -struct trace_event_data_offsets_io_uring_task_work_run {}; +struct dfll_fcpu_data { + const unsigned long *cpu_max_freq_table; + unsigned int cpu_max_freq_table_size; + const struct cvb_table *cpu_cvb_tables; + unsigned int cpu_cvb_tables_size; +}; -struct trace_event_data_offsets_io_uring_short_write {}; +struct tegra_dfll_soc_data { + struct device *dev; + unsigned long max_freq; + const struct cvb_table *cvb; + struct rail_alignment alignment; + void (*init_clock_trimmers)(); + void (*set_clock_trimmers_high)(); + void (*set_clock_trimmers_low)(); +}; -struct trace_event_data_offsets_io_uring_local_work_run {}; +struct uniphier_mdmac_device; -struct io_task_cancel { - struct task_struct *task; - bool all; -}; +struct uniphier_mdmac_desc; -struct io_uring_probe_op { - __u8 op; - __u8 resv; - __u16 flags; - __u32 resv2; +struct uniphier_mdmac_chan { + struct virt_dma_chan vc; + struct uniphier_mdmac_device *mdev; + struct uniphier_mdmac_desc *md; + void *reg_ch_base; + unsigned int chan_id; }; -struct io_uring_probe { - __u8 last_op; - __u8 ops_len; - __u16 resv; - __u32 resv2[3]; - struct io_uring_probe_op ops[0]; +struct uniphier_mdmac_device { + struct dma_device ddev; + struct clk *clk; + void *reg_base; + struct uniphier_mdmac_chan channels[0]; }; -struct io_uring_restriction { - __u16 opcode; - union { - __u8 register_op; - __u8 sqe_op; - __u8 sqe_flags; - }; - __u8 resv; - __u32 resv2[3]; +struct uniphier_mdmac_desc { + struct virt_dma_desc vd; + struct scatterlist *sgl; + unsigned int sg_len; + unsigned int sg_cur; + enum dma_transfer_direction dir; }; -struct ulpi_device_id; +struct scpsys_domain_data; -struct ulpi_driver { - const struct ulpi_device_id *id_table; - int (*probe)(struct ulpi *); - void (*remove)(struct ulpi *); - struct device_driver driver; +struct scpsys_soc_data { + const struct scpsys_domain_data *domains_data; + int num_domains; }; -struct ulpi_device_id { - __u16 vendor; - __u16 product; - kernel_ulong_t driver_data; +struct scpsys_bus_prot_data { + u32 bus_prot_set_clr_mask; + u32 bus_prot_set; + u32 bus_prot_clr; + u32 bus_prot_sta_mask; + u32 bus_prot_sta; + u8 flags; }; -struct ulpi { - struct device dev; - struct ulpi_device_id id; - const struct ulpi_ops *ops; - long: 32; +struct scpsys_domain_data { + const char *name; + u32 sta_mask; + int ctl_offs; + u32 sram_pdn_bits; + u32 sram_pdn_ack_bits; + int ext_buck_iso_offs; + u32 ext_buck_iso_mask; + u16 caps; + const struct scpsys_bus_prot_data bp_cfg[6]; + int pwr_sta_offs; + int pwr_sta2nd_offs; }; -struct ulpi_seq; - -struct qcom_usb_hs_phy { - struct ulpi *ulpi; - struct phy *phy; - struct clk *ref_clk; - struct clk *sleep_clk; - struct regulator *v1p8; - struct regulator *v3p3; - struct reset_control *reset; - struct ulpi_seq *init_seq; - struct extcon_dev *vbus_edev; - struct notifier_block vbus_notify; +enum scpsys_bus_prot_flags { + BUS_PROT_REG_UPDATE = 2, + BUS_PROT_IGNORE_CLR_ACK = 4, + BUS_PROT_INVERTED = 8, + BUS_PROT_COMPONENT_INFRA = 16, + BUS_PROT_COMPONENT_SMI = 32, + BUS_PROT_STA_COMPONENT_INFRA_NAO = 64, }; -struct ulpi_seq { - u8 addr; - u8 val; -}; +struct scpsys; -enum rockchip_pinctrl_type { - PX30 = 0, - RV1108 = 1, - RV1126 = 2, - RK2928 = 3, - RK3066B = 4, - RK3128 = 5, - RK3188 = 6, - RK3288 = 7, - RK3308 = 8, - RK3368 = 9, - RK3399 = 10, - RK3568 = 11, - RK3588 = 12, +struct scpsys_domain { + struct generic_pm_domain genpd; + const struct scpsys_domain_data *data; + struct scpsys *scpsys; + int num_clks; + struct clk_bulk_data *clks; + int num_subsys_clks; + struct clk_bulk_data *subsys_clks; + struct regmap *infracfg_nao; + struct regmap *infracfg; + struct regmap *smi; + struct regulator *supply; }; -struct rockchip_pin_bank; - -struct rockchip_mux_recalced_data; +struct scpsys { + struct device *dev; + struct regmap *base; + const struct scpsys_soc_data *soc_data; + struct genpd_onecell_data pd_data; + struct generic_pm_domain *domains[0]; +}; -struct rockchip_mux_route_data; +struct ab8500_shared_mode; -struct rockchip_pin_ctrl { - struct rockchip_pin_bank *pin_banks; - u32 nr_banks; - u32 nr_pins; - char *label; - enum rockchip_pinctrl_type type; - int grf_mux_offset; - int pmu_mux_offset; - int grf_drv_offset; - int pmu_drv_offset; - struct rockchip_mux_recalced_data *iomux_recalced; - u32 niomux_recalced; - struct rockchip_mux_route_data *iomux_routes; - u32 niomux_routes; - int (*pull_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); - int (*drv_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); - int (*schmitt_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); +struct ab8500_regulator_info { + struct device *dev; + struct regulator_desc desc; + struct ab8500_shared_mode *shared_mode; + int load_lp_uA; + u8 update_bank; + u8 update_reg; + u8 update_mask; + u8 update_val; + u8 update_val_idle; + u8 update_val_normal; + u8 mode_bank; + u8 mode_reg; + u8 mode_mask; + u8 mode_val_idle; + u8 mode_val_normal; + u8 voltage_bank; + u8 voltage_reg; + u8 voltage_mask; }; -struct rockchip_iomux { - int type; - int offset; +struct ab8500_shared_mode { + struct ab8500_regulator_info *shared_regulator; + bool lp_mode_req; }; -enum rockchip_pin_drv_type { - DRV_TYPE_IO_DEFAULT = 0, - DRV_TYPE_IO_1V8_OR_3V0 = 1, - DRV_TYPE_IO_1V8_ONLY = 2, - DRV_TYPE_IO_1V8_3V0_AUTO = 3, - DRV_TYPE_IO_3V3_ONLY = 4, - DRV_TYPE_MAX = 5, +struct ab8500_reg_init { + u8 bank; + u8 addr; + u8 mask; }; -struct rockchip_drv { - enum rockchip_pin_drv_type drv_type; - int offset; +enum ab8505_regulator_reg { + AB8505_REGUREQUESTCTRL1 = 0, + AB8505_REGUREQUESTCTRL2 = 1, + AB8505_REGUREQUESTCTRL3 = 2, + AB8505_REGUREQUESTCTRL4 = 3, + AB8505_REGUSYSCLKREQ1HPVALID1 = 4, + AB8505_REGUSYSCLKREQ1HPVALID2 = 5, + AB8505_REGUHWHPREQ1VALID1 = 6, + AB8505_REGUHWHPREQ1VALID2 = 7, + AB8505_REGUHWHPREQ2VALID1 = 8, + AB8505_REGUHWHPREQ2VALID2 = 9, + AB8505_REGUSWHPREQVALID1 = 10, + AB8505_REGUSWHPREQVALID2 = 11, + AB8505_REGUSYSCLKREQVALID1 = 12, + AB8505_REGUSYSCLKREQVALID2 = 13, + AB8505_REGUVAUX4REQVALID = 14, + AB8505_REGUMISC1 = 15, + AB8505_VAUDIOSUPPLY = 16, + AB8505_REGUCTRL1VAMIC = 17, + AB8505_VSMPSAREGU = 18, + AB8505_VSMPSBREGU = 19, + AB8505_VSAFEREGU = 20, + AB8505_VPLLVANAREGU = 21, + AB8505_EXTSUPPLYREGU = 22, + AB8505_VAUX12REGU = 23, + AB8505_VRF1VAUX3REGU = 24, + AB8505_VSMPSASEL1 = 25, + AB8505_VSMPSASEL2 = 26, + AB8505_VSMPSASEL3 = 27, + AB8505_VSMPSBSEL1 = 28, + AB8505_VSMPSBSEL2 = 29, + AB8505_VSMPSBSEL3 = 30, + AB8505_VSAFESEL1 = 31, + AB8505_VSAFESEL2 = 32, + AB8505_VSAFESEL3 = 33, + AB8505_VAUX1SEL = 34, + AB8505_VAUX2SEL = 35, + AB8505_VRF1VAUX3SEL = 36, + AB8505_VAUX4REQCTRL = 37, + AB8505_VAUX4REGU = 38, + AB8505_VAUX4SEL = 39, + AB8505_REGUCTRLDISCH = 40, + AB8505_REGUCTRLDISCH2 = 41, + AB8505_REGUCTRLDISCH3 = 42, + AB8505_CTRLVAUX5 = 43, + AB8505_CTRLVAUX6 = 44, + AB8505_NUM_REGULATOR_REGISTERS = 45, }; -enum rockchip_pin_pull_type { - PULL_TYPE_IO_DEFAULT = 0, - PULL_TYPE_IO_1V8_ONLY = 1, - PULL_TYPE_MAX = 2, +enum ab8500_regulator_reg { + AB8500_REGUREQUESTCTRL2 = 0, + AB8500_REGUREQUESTCTRL3 = 1, + AB8500_REGUREQUESTCTRL4 = 2, + AB8500_REGUSYSCLKREQ1HPVALID1 = 3, + AB8500_REGUSYSCLKREQ1HPVALID2 = 4, + AB8500_REGUHWHPREQ1VALID1 = 5, + AB8500_REGUHWHPREQ1VALID2 = 6, + AB8500_REGUHWHPREQ2VALID1 = 7, + AB8500_REGUHWHPREQ2VALID2 = 8, + AB8500_REGUSWHPREQVALID1 = 9, + AB8500_REGUSWHPREQVALID2 = 10, + AB8500_REGUSYSCLKREQVALID1 = 11, + AB8500_REGUSYSCLKREQVALID2 = 12, + AB8500_REGUMISC1 = 13, + AB8500_VAUDIOSUPPLY = 14, + AB8500_REGUCTRL1VAMIC = 15, + AB8500_VPLLVANAREGU = 16, + AB8500_VREFDDR = 17, + AB8500_EXTSUPPLYREGU = 18, + AB8500_VAUX12REGU = 19, + AB8500_VRF1VAUX3REGU = 20, + AB8500_VAUX1SEL = 21, + AB8500_VAUX2SEL = 22, + AB8500_VRF1VAUX3SEL = 23, + AB8500_REGUCTRL2SPARE = 24, + AB8500_REGUCTRLDISCH = 25, + AB8500_REGUCTRLDISCH2 = 26, + AB8500_NUM_REGULATOR_REGISTERS = 27, }; -struct rockchip_pinctrl; +enum ab8500_regulator_id { + AB8500_LDO_AUX1 = 0, + AB8500_LDO_AUX2 = 1, + AB8500_LDO_AUX3 = 2, + AB8500_LDO_INTCORE = 3, + AB8500_LDO_TVOUT = 4, + AB8500_LDO_AUDIO = 5, + AB8500_LDO_ANAMIC1 = 6, + AB8500_LDO_ANAMIC2 = 7, + AB8500_LDO_DMIC = 8, + AB8500_LDO_ANA = 9, + AB8500_NUM_REGULATORS = 10, +}; -struct rockchip_gpio_regs; +enum spmi_regulator_type { + SPMI_REGULATOR_TYPE_BUCK = 3, + SPMI_REGULATOR_TYPE_LDO = 4, + SPMI_REGULATOR_TYPE_VS = 5, + SPMI_REGULATOR_TYPE_BOOST = 27, + SPMI_REGULATOR_TYPE_FTS = 28, + SPMI_REGULATOR_TYPE_BOOST_BYP = 31, + SPMI_REGULATOR_TYPE_ULT_LDO = 33, + SPMI_REGULATOR_TYPE_ULT_BUCK = 34, +}; -struct rockchip_pin_bank { - struct device *dev; - void *reg_base; - struct regmap *regmap_pull; - struct clk *clk; - struct clk *db_clk; - int irq; - u32 saved_masks; - u32 pin_base; - u8 nr_pins; - char *name; - u8 bank_num; - struct rockchip_iomux iomux[4]; - struct rockchip_drv drv[4]; - enum rockchip_pin_pull_type pull_type[4]; - bool valid; - struct device_node *of_node; - struct rockchip_pinctrl *drvdata; - struct irq_domain *domain; - struct gpio_chip gpio_chip; - struct pinctrl_gpio_range grange; - raw_spinlock_t slock; - const struct rockchip_gpio_regs *gpio_regs; - u32 gpio_type; - u32 toggle_edge_mode; - u32 recalced_mask; - u32 route_mask; - struct list_head deferred_pins; - struct mutex deferred_lock; +enum spmi_regulator_subtype { + SPMI_REGULATOR_SUBTYPE_GP_CTL = 8, + SPMI_REGULATOR_SUBTYPE_RF_CTL = 9, + SPMI_REGULATOR_SUBTYPE_N50 = 1, + SPMI_REGULATOR_SUBTYPE_N150 = 2, + SPMI_REGULATOR_SUBTYPE_N300 = 3, + SPMI_REGULATOR_SUBTYPE_N600 = 4, + SPMI_REGULATOR_SUBTYPE_N1200 = 5, + SPMI_REGULATOR_SUBTYPE_N600_ST = 6, + SPMI_REGULATOR_SUBTYPE_N1200_ST = 7, + SPMI_REGULATOR_SUBTYPE_N900_ST = 20, + SPMI_REGULATOR_SUBTYPE_N300_ST = 21, + SPMI_REGULATOR_SUBTYPE_P50 = 8, + SPMI_REGULATOR_SUBTYPE_P150 = 9, + SPMI_REGULATOR_SUBTYPE_P300 = 10, + SPMI_REGULATOR_SUBTYPE_P600 = 11, + SPMI_REGULATOR_SUBTYPE_P1200 = 12, + SPMI_REGULATOR_SUBTYPE_LN = 16, + SPMI_REGULATOR_SUBTYPE_LV_P50 = 40, + SPMI_REGULATOR_SUBTYPE_LV_P150 = 41, + SPMI_REGULATOR_SUBTYPE_LV_P300 = 42, + SPMI_REGULATOR_SUBTYPE_LV_P600 = 43, + SPMI_REGULATOR_SUBTYPE_LV_P1200 = 44, + SPMI_REGULATOR_SUBTYPE_LV_P450 = 45, + SPMI_REGULATOR_SUBTYPE_HT_N300_ST = 48, + SPMI_REGULATOR_SUBTYPE_HT_N600_ST = 49, + SPMI_REGULATOR_SUBTYPE_HT_N1200_ST = 50, + SPMI_REGULATOR_SUBTYPE_HT_LVP150 = 59, + SPMI_REGULATOR_SUBTYPE_HT_LVP300 = 60, + SPMI_REGULATOR_SUBTYPE_L660_N300_ST = 66, + SPMI_REGULATOR_SUBTYPE_L660_N600_ST = 67, + SPMI_REGULATOR_SUBTYPE_L660_P50 = 70, + SPMI_REGULATOR_SUBTYPE_L660_P150 = 71, + SPMI_REGULATOR_SUBTYPE_L660_P600 = 73, + SPMI_REGULATOR_SUBTYPE_L660_LVP150 = 77, + SPMI_REGULATOR_SUBTYPE_L660_LVP600 = 79, + SPMI_REGULATOR_SUBTYPE_LV100 = 1, + SPMI_REGULATOR_SUBTYPE_LV300 = 2, + SPMI_REGULATOR_SUBTYPE_MV300 = 8, + SPMI_REGULATOR_SUBTYPE_MV500 = 9, + SPMI_REGULATOR_SUBTYPE_HDMI = 16, + SPMI_REGULATOR_SUBTYPE_OTG = 17, + SPMI_REGULATOR_SUBTYPE_5V_BOOST = 1, + SPMI_REGULATOR_SUBTYPE_FTS_CTL = 8, + SPMI_REGULATOR_SUBTYPE_FTS2p5_CTL = 9, + SPMI_REGULATOR_SUBTYPE_FTS426_CTL = 10, + SPMI_REGULATOR_SUBTYPE_BB_2A = 1, + SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL1 = 13, + SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL2 = 14, + SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL3 = 15, + SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL4 = 16, + SPMI_REGULATOR_SUBTYPE_HFS430 = 10, + SPMI_REGULATOR_SUBTYPE_HT_P150 = 53, + SPMI_REGULATOR_SUBTYPE_HT_P600 = 61, + SPMI_REGULATOR_SUBTYPE_HFSMPS_510 = 10, + SPMI_REGULATOR_SUBTYPE_FTSMPS_510 = 11, + SPMI_REGULATOR_SUBTYPE_LV_P150_510 = 113, + SPMI_REGULATOR_SUBTYPE_LV_P300_510 = 114, + SPMI_REGULATOR_SUBTYPE_LV_P600_510 = 115, + SPMI_REGULATOR_SUBTYPE_N300_510 = 106, + SPMI_REGULATOR_SUBTYPE_N600_510 = 107, + SPMI_REGULATOR_SUBTYPE_N1200_510 = 108, + SPMI_REGULATOR_SUBTYPE_MV_P50_510 = 122, + SPMI_REGULATOR_SUBTYPE_MV_P150_510 = 123, + SPMI_REGULATOR_SUBTYPE_MV_P600_510 = 125, }; -struct rockchip_pin_group; +enum spmi_regulator_logical_type { + SPMI_REGULATOR_LOGICAL_TYPE_SMPS = 0, + SPMI_REGULATOR_LOGICAL_TYPE_LDO = 1, + SPMI_REGULATOR_LOGICAL_TYPE_VS = 2, + SPMI_REGULATOR_LOGICAL_TYPE_BOOST = 3, + SPMI_REGULATOR_LOGICAL_TYPE_FTSMPS = 4, + SPMI_REGULATOR_LOGICAL_TYPE_BOOST_BYP = 5, + SPMI_REGULATOR_LOGICAL_TYPE_LN_LDO = 6, + SPMI_REGULATOR_LOGICAL_TYPE_ULT_LO_SMPS = 7, + SPMI_REGULATOR_LOGICAL_TYPE_ULT_HO_SMPS = 8, + SPMI_REGULATOR_LOGICAL_TYPE_ULT_LDO = 9, + SPMI_REGULATOR_LOGICAL_TYPE_FTSMPS426 = 10, + SPMI_REGULATOR_LOGICAL_TYPE_HFS430 = 11, + SPMI_REGULATOR_LOGICAL_TYPE_FTSMPS3 = 12, + SPMI_REGULATOR_LOGICAL_TYPE_LDO_510 = 13, + SPMI_REGULATOR_LOGICAL_TYPE_HFSMPS = 14, +}; -struct rockchip_pmx_func; +struct spmi_voltage_set_points; -struct rockchip_pinctrl { - struct regmap *regmap_base; - int reg_size; - struct regmap *regmap_pull; - struct regmap *regmap_pmu; - struct device *dev; - struct rockchip_pin_ctrl *ctrl; - struct pinctrl_desc pctl; - struct pinctrl_dev *pctl_dev; - struct rockchip_pin_group *groups; - unsigned int ngroups; - struct rockchip_pmx_func *functions; - unsigned int nfunctions; +struct spmi_regulator_mapping { + enum spmi_regulator_type type; + enum spmi_regulator_subtype subtype; + enum spmi_regulator_logical_type logical_type; + u32 revision_min; + u32 revision_max; + const struct regulator_ops *ops; + struct spmi_voltage_set_points *set_points; + int hpm_min_load; }; -struct rockchip_pin_config; +struct spmi_voltage_range; -struct rockchip_pin_group { - const char *name; - unsigned int npins; - unsigned int *pins; - struct rockchip_pin_config *data; +struct spmi_voltage_set_points { + struct spmi_voltage_range *range; + int count; + unsigned int n_voltages; }; -struct rockchip_pin_config { - unsigned int func; - unsigned long *configs; - unsigned int nconfigs; +struct spmi_voltage_range { + int min_uV; + int max_uV; + int step_uV; + int set_point_min_uV; + int set_point_max_uV; + unsigned int n_voltages; + u8 range_sel; }; -struct rockchip_pmx_func { +struct spmi_regulator_data { const char *name; - const char **groups; - u8 ngroups; + u16 base; + const char *supply; + const char *ocp; + u16 force_type; }; -struct rockchip_gpio_regs { - u32 port_dr; - u32 port_ddr; - u32 int_en; - u32 int_mask; - u32 int_type; - u32 int_polarity; - u32 int_bothedge; - u32 int_status; - u32 int_rawstatus; - u32 debounce; - u32 dbclk_div_en; - u32 dbclk_div_con; - u32 port_eoi; - u32 ext_port; - u32 version_id; +enum spmi_common_regulator_registers { + SPMI_COMMON_REG_DIG_MAJOR_REV = 1, + SPMI_COMMON_REG_TYPE = 4, + SPMI_COMMON_REG_SUBTYPE = 5, + SPMI_COMMON_REG_VOLTAGE_RANGE = 64, + SPMI_COMMON_REG_VOLTAGE_SET = 65, + SPMI_COMMON_REG_MODE = 69, + SPMI_COMMON_REG_ENABLE = 70, + SPMI_COMMON_REG_PULL_DOWN = 72, + SPMI_COMMON_REG_SOFT_START = 76, + SPMI_COMMON_REG_STEP_CTRL = 97, }; -struct rockchip_mux_recalced_data { - u8 num; - u8 pin; - u32 reg; - u8 bit; - u8 mask; +enum spmi_vs_soft_start_str { + SPMI_VS_SOFT_START_STR_0P05_UA = 0, + SPMI_VS_SOFT_START_STR_0P25_UA = 1, + SPMI_VS_SOFT_START_STR_0P55_UA = 2, + SPMI_VS_SOFT_START_STR_0P75_UA = 3, + SPMI_VS_SOFT_START_STR_HW_DEFAULT = 4, }; -enum rockchip_mux_route_location { - ROCKCHIP_ROUTE_SAME = 0, - ROCKCHIP_ROUTE_PMU = 1, - ROCKCHIP_ROUTE_GRF = 2, +enum spmi_common_control_register_index { + SPMI_COMMON_IDX_VOLTAGE_RANGE = 0, + SPMI_COMMON_IDX_VOLTAGE_SET = 1, + SPMI_COMMON_IDX_MODE = 5, + SPMI_COMMON_IDX_ENABLE = 6, }; -struct rockchip_mux_route_data { - u8 bank_num; - u8 pin; - u8 func; - enum rockchip_mux_route_location route_location; - u32 route_offset; - u32 route_val; +enum spmi_vs_registers { + SPMI_VS_REG_OCP = 74, + SPMI_VS_REG_SOFT_START = 76, }; -struct rockchip_pin_deferred { - struct list_head head; - unsigned int pin; - enum pin_config_param param; - u32 arg; +enum spmi_hfsmps_regulator_registers { + SPMI_HFSMPS_REG_STEP_CTRL = 60, + SPMI_HFSMPS_REG_PULL_DOWN = 160, }; -enum armada_xp_variant { - V_MV78230 = 1, - V_MV78260 = 2, - V_MV78460 = 4, - V_MV78230_PLUS = 7, - V_MV78260_PLUS = 6, - V_98DX3236 = 8, - V_98DX3336 = 16, - V_98DX4251 = 32, - V_98DX3236_PLUS = 56, +enum spmi_ftsmps426_regulator_registers { + SPMI_FTSMPS426_REG_VOLTAGE_LSB = 64, + SPMI_FTSMPS426_REG_VOLTAGE_MSB = 65, + SPMI_FTSMPS426_REG_VOLTAGE_ULS_LSB = 104, + SPMI_FTSMPS426_REG_VOLTAGE_ULS_MSB = 105, }; -struct stm32_desc_function { - const char *name; - const unsigned char num; +enum spmi_boost_registers { + SPMI_BOOST_REG_CURRENT_LIMIT = 74, }; -struct stm32_desc_pin { - struct pinctrl_pin_desc pin; - const struct stm32_desc_function functions[18]; - const unsigned int pkg; +enum spmi_boost_byp_registers { + SPMI_BOOST_BYP_REG_CURRENT_LIMIT = 75, }; -struct stm32_pinctrl_group; - -struct stm32_gpio_bank; - -struct stm32_pinctrl_match_data; +enum spmi_saw3_registers { + SAW3_SECURE = 0, + SAW3_ID = 4, + SAW3_SPM_STS = 12, + SAW3_AVS_STS = 16, + SAW3_PMIC_STS = 20, + SAW3_RST = 24, + SAW3_VCTL = 28, + SAW3_AVS_CTL = 32, + SAW3_AVS_LIMIT = 36, + SAW3_AVS_DLY = 40, + SAW3_AVS_HYSTERESIS = 44, + SAW3_SPM_STS2 = 56, + SAW3_SPM_PMIC_DATA_3 = 76, + SAW3_VERSION = 4048, +}; -struct stm32_pinctrl { +struct spmi_regulator { + struct regulator_desc desc; struct device *dev; - struct pinctrl_dev *pctl_dev; - struct pinctrl_desc pctl_desc; - struct stm32_pinctrl_group *groups; - unsigned int ngroups; - const char **grp_names; - struct stm32_gpio_bank *banks; - unsigned int nbanks; - const struct stm32_pinctrl_match_data *match_data; - struct irq_domain *domain; + struct delayed_work ocp_work; struct regmap *regmap; - struct regmap_field *irqmux[16]; - struct hwspinlock *hwlock; - struct stm32_desc_pin *pins; - u32 npins; - u32 pkg; - u16 irqmux_map; - spinlock_t irqmux_lock; + struct spmi_voltage_set_points *set_points; + enum spmi_regulator_logical_type logical_type; + int ocp_irq; + int ocp_count; + int ocp_max_retries; + int ocp_retry_delay_ms; + int hpm_min_load; + int slew_rate; + ktime_t vs_enable_time; + u16 base; + struct list_head node; + long: 32; }; -struct stm32_pinctrl_group { - const char *name; - unsigned long config; - unsigned int pin; +struct spmi_regulator_init_data { + unsigned int pin_ctrl_enable; + unsigned int pin_ctrl_hpm; + enum spmi_vs_soft_start_str vs_soft_start_strength; }; -struct stm32_gpio_bank { - void *base; - struct clk *clk; - struct reset_control *rstc; - spinlock_t lock; - struct gpio_chip gpio_chip; - struct pinctrl_gpio_range range; - struct fwnode_handle *fwnode; - struct irq_domain *domain; - u32 bank_nr; - u32 bank_ioport_nr; - u32 pin_backup[16]; - u8 irq_type[16]; - bool secure_control; +struct imx7_src_signal; + +struct imx7_src_variant { + const struct imx7_src_signal *signals; + unsigned int signals_num; + struct reset_control_ops ops; }; -struct stm32_pinctrl_match_data { - const struct stm32_desc_pin *pins; - const unsigned int npins; - bool secure_control; +struct imx7_src_signal { + unsigned int offset; + unsigned int bit; }; -enum { - TPS6586X_INT_PLDO_0 = 0, - TPS6586X_INT_PLDO_1 = 1, - TPS6586X_INT_PLDO_2 = 2, - TPS6586X_INT_PLDO_3 = 3, - TPS6586X_INT_PLDO_4 = 4, - TPS6586X_INT_PLDO_5 = 5, - TPS6586X_INT_PLDO_6 = 6, - TPS6586X_INT_PLDO_7 = 7, - TPS6586X_INT_COMP_DET = 8, - TPS6586X_INT_ADC = 9, - TPS6586X_INT_PLDO_8 = 10, - TPS6586X_INT_PLDO_9 = 11, - TPS6586X_INT_PSM_0 = 12, - TPS6586X_INT_PSM_1 = 13, - TPS6586X_INT_PSM_2 = 14, - TPS6586X_INT_PSM_3 = 15, - TPS6586X_INT_RTC_ALM1 = 16, - TPS6586X_INT_ACUSB_OVP = 17, - TPS6586X_INT_USB_DET = 18, - TPS6586X_INT_AC_DET = 19, - TPS6586X_INT_BAT_DET = 20, - TPS6586X_INT_CHG_STAT = 21, - TPS6586X_INT_CHG_TEMP = 22, - TPS6586X_INT_PP = 23, - TPS6586X_INT_RESUME = 24, - TPS6586X_INT_LOW_SYS = 25, - TPS6586X_INT_RTC_ALM2 = 26, +struct imx7_src { + struct reset_controller_dev rcdev; + struct regmap *regmap; + const struct imx7_src_signal *signals; }; -struct tps6586x_gpio { - struct gpio_chip gpio_chip; - struct device *parent; +struct serial8250_em_priv { + int line; }; -struct tps6586x_subdev_info; +struct omap_iommu_device; -struct tps6586x_platform_data { - int num_subdevs; - struct tps6586x_subdev_info *subdevs; - int gpio_base; - int irq_base; - bool pm_off; - struct regulator_init_data *reg_init_data[15]; +struct omap_iommu_domain { + u32 num_iommus; + struct omap_iommu_device *iommus; + struct device *dev; + spinlock_t lock; + struct iommu_domain domain; }; -struct tps6586x_subdev_info { - int id; - const char *name; - void *platform_data; - struct device_node *of_node; -}; +struct omap_iommu; -enum { - pci_channel_io_normal = 1, - pci_channel_io_frozen = 2, - pci_channel_io_perm_failure = 3, +struct omap_iommu_device { + u32 *pgtable; + struct omap_iommu *iommu_dev; }; -enum pci_interrupt_pin { - PCI_INTERRUPT_UNKNOWN = 0, - PCI_INTERRUPT_INTA = 1, - PCI_INTERRUPT_INTB = 2, - PCI_INTERRUPT_INTC = 3, - PCI_INTERRUPT_INTD = 4, -}; +struct cr_regs; -enum pci_barno { - NO_BAR = -1, - BAR_0 = 0, - BAR_1 = 1, - BAR_2 = 2, - BAR_3 = 3, - BAR_4 = 4, - BAR_5 = 5, +struct omap_iommu { + const char *name; + void *regbase; + struct regmap *syscfg; + struct device *dev; + struct iommu_domain *domain; + struct dentry *debug_dir; + spinlock_t iommu_lock; + u32 *iopgd; + spinlock_t page_table_lock; + dma_addr_t pd_dma; + int nr_tlb_entries; + void *ctx; + struct cr_regs *cr_ctx; + u32 num_cr_ctx; + int has_bus_err_back; + u32 id; + struct iommu_device iommu; + bool has_iommu_driver; + u8 pwrst; }; -enum pci_epc_irq_type { - PCI_EPC_IRQ_UNKNOWN = 0, - PCI_EPC_IRQ_LEGACY = 1, - PCI_EPC_IRQ_MSI = 2, - PCI_EPC_IRQ_MSIX = 3, +struct cr_regs { + u32 cam; + u32 ram; }; -struct pci_epc_mem_window { - phys_addr_t phys_base; - size_t size; - size_t page_size; +struct iotlb_lock { + short base; + short vict; }; -struct pci_epc_mem { - struct pci_epc_mem_window window; - unsigned long *bitmap; - int pages; - struct mutex lock; +struct omap_iommu_arch_data { + struct omap_iommu *iommu_dev; + struct device *dev; }; -struct pci_epc_ops; - -struct pci_epc { - struct device dev; - struct list_head pci_epf; - struct mutex list_lock; - const struct pci_epc_ops *ops; - struct pci_epc_mem **windows; - struct pci_epc_mem *mem; - unsigned int num_windows; - u8 max_functions; - u8 *max_vfs; - struct config_group *group; - struct mutex lock; - unsigned long function_num_map; +struct iotlb_entry { + u32 da; + u32 pa; + u32 pgsz; + u32 prsvd; + u32 valid; + u32 endian; + u32 elsz; + u32 mixed; }; -struct pci_epf_header; +struct iommu_platform_data { + const char *reset_name; + int (*assert_reset)(struct platform_device *, const char *); + int (*deassert_reset)(struct platform_device *, const char *); + int (*device_enable)(struct platform_device *); + int (*device_idle)(struct platform_device *); + int (*set_pwrdm_constraint)(struct platform_device *, bool, u8 *); +}; -struct pci_epf_bar; +typedef void (*drmres_release_t)(struct drm_device *, void *); -struct pci_epc_features; +struct drmres_node { + struct list_head entry; + drmres_release_t release; + const char *name; + size_t size; +}; -struct pci_epc_ops { - int (*write_header)(struct pci_epc *, u8, u8, struct pci_epf_header *); - int (*set_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); - void (*clear_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); - int (*map_addr)(struct pci_epc *, u8, u8, phys_addr_t, u64, size_t); - void (*unmap_addr)(struct pci_epc *, u8, u8, phys_addr_t); - int (*set_msi)(struct pci_epc *, u8, u8, u8); - int (*get_msi)(struct pci_epc *, u8, u8); - int (*set_msix)(struct pci_epc *, u8, u8, u16, enum pci_barno, u32); - int (*get_msix)(struct pci_epc *, u8, u8); - int (*raise_irq)(struct pci_epc *, u8, u8, enum pci_epc_irq_type, u16); - int (*map_msi_irq)(struct pci_epc *, u8, u8, phys_addr_t, u8, u32, u32 *, u32 *); - int (*start)(struct pci_epc *); - void (*stop)(struct pci_epc *); - const struct pci_epc_features * (*get_features)(struct pci_epc *, u8, u8); - struct module *owner; +struct drmres { + struct drmres_node node; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + u8 data[0]; }; -struct pci_epf_header { - u16 vendorid; - u16 deviceid; - u8 revid; - u8 progif_code; - u8 subclass_code; - u8 baseclass_code; - u8 cache_line_size; - u16 subsys_vendor_id; - u16 subsys_id; - enum pci_interrupt_pin interrupt_pin; +struct drm_prime_member { + struct dma_buf *dma_buf; + uint32_t handle; + struct rb_node dmabuf_rb; + struct rb_node handle_rb; }; -struct pci_epf_bar { - dma_addr_t phys_addr; - void *addr; +struct dma_buf_export_info { + const char *exp_name; + struct module *owner; + const struct dma_buf_ops *ops; size_t size; - enum pci_barno barno; int flags; + struct dma_resv *resv; + void *priv; }; -struct pci_epc_features { - unsigned int linkup_notifier: 1; - unsigned int core_init_notifier: 1; - unsigned int msi_capable: 1; - unsigned int msix_capable: 1; - u8 reserved_bar; - u8 bar_fixed_64bit; - long: 32; - u64 bar_fixed_size[6]; - size_t align; - long: 32; +struct sg_dma_page_iter { + struct sg_page_iter base; }; -struct fb_cvt_data { - u32 xres; - u32 yres; - u32 refresh; - u32 f_refresh; - u32 pixclock; - u32 hperiod; - u32 hblank; - u32 hfreq; - u32 htotal; - u32 vtotal; - u32 vsync; - u32 hsync; - u32 h_front_porch; - u32 h_back_porch; - u32 v_front_porch; - u32 v_back_porch; - u32 h_margin; - u32 v_margin; - u32 interlace; - u32 aspect_ratio; - u32 active_pixels; - u32 flags; - u32 status; +struct drm_prime_handle { + __u32 handle; + __u32 flags; + __s32 fd; }; -enum { - FBCON_LOGO_CANSHOW = -1, - FBCON_LOGO_DRAW = -2, - FBCON_LOGO_DONTSHOW = -3, -}; +struct drm_flip_work; -struct font_desc { - int idx; +typedef void (*drm_flip_func_t)(struct drm_flip_work *, void *); + +struct drm_flip_work { const char *name; - unsigned int width; - unsigned int height; - unsigned int charcount; - const void *data; - int pref; + drm_flip_func_t func; + struct work_struct worker; + struct list_head queued; + struct list_head commited; + spinlock_t lock; }; -struct fb_con2fbmap { - __u32 console; - __u32 framebuffer; +struct drm_flip_task { + struct list_head node; + void *data; }; -struct clk_dvp { - struct clk_hw_onecell_data *data; - struct reset_simple_data reset; +struct sysrq_key_op { + void (* const handler)(u8); + const char * const help_msg; + const char * const action_msg; + const int enable_mask; }; -struct hi3660_stub_clk_chan { - struct mbox_client cl; - struct mbox_chan *mbox; +struct drm_color_lut { + __u16 red; + __u16 green; + __u16 blue; + __u16 reserved; }; -struct hi3660_stub_clk { - unsigned int id; - struct clk_hw hw; - unsigned int cmd; - unsigned int msg[8]; - unsigned int rate; +struct ad_dpot_bus_ops { + int (*read_d8)(void *); + int (*read_r8d8)(void *, u8); + int (*read_r8d16)(void *, u8); + int (*write_d8)(void *, u8); + int (*write_r8d8)(void *, u8, u8); + int (*write_r8d16)(void *, u8, u16); }; -struct clk_apbc { - struct clk_hw hw; - void *base; - unsigned int delay; - unsigned int flags; - spinlock_t *lock; -}; - -struct gpt_rate_tbl; +struct ad_dpot_bus_data { + void *client; + const struct ad_dpot_bus_ops *bops; +}; -struct clk_gpt { - struct clk_hw hw; - void *reg; - struct gpt_rate_tbl *rtbl; - u8 rtbl_cnt; - spinlock_t *lock; +struct usbtll_omap { + void *base; + int nch; + struct clk *ch_clk[0]; }; -struct gpt_rate_tbl { - u16 mscale; - u16 nscale; +struct rk808_reg_data { + int addr; + int mask; + int value; }; -struct clk_fixed_rate { - struct clk_hw hw; - unsigned long fixed_rate; - unsigned long fixed_accuracy; - unsigned long flags; +enum ahci_qoriq_type { + AHCI_LS1021A = 0, + AHCI_LS1028A = 1, + AHCI_LS1043A = 2, + AHCI_LS2080A = 3, + AHCI_LS1046A = 4, + AHCI_LS1088A = 5, + AHCI_LS2088A = 6, + AHCI_LX2160A = 7, }; -struct ccu_pll_nb { - struct notifier_block clk_nb; - struct ccu_common *common; - u32 enable; - u32 lock; +struct ccsr_ahci; + +struct ahci_qoriq_priv { + struct ccsr_ahci *reg_base; + enum ahci_qoriq_type type; + void *ecc_addr; + bool is_dmacoherent; }; -struct sunxi_ccu { - const struct sunxi_ccu_desc *desc; - spinlock_t lock; - struct ccu_reset reset; +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 clk_ti_autoidle { - struct clk_omap_reg reg; - u8 shift; - u8 flags; - const char *name; - struct list_head node; +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 fapll_data { - struct clk_hw hw; - void *base; - const char *name; - struct clk *clk_ref; - struct clk *clk_bypass; - struct clk_onecell_data outputs; - bool bypass_bit_inverted; +struct ahci_cmd_hdr { + __le32 opts; + __le32 status; + __le32 tbl_addr; + __le32 tbl_addr_hi; + __le32 reserved[4]; }; -struct fapll_synth { - struct clk_hw hw; - struct fapll_data *fd; - int index; - void *freq; - void *div; - const char *name; - struct clk *clk_pll; +struct nand_ecc_req_tweak_ctx { + struct nand_page_io_req orig_req; + struct nand_device *nand; + unsigned int page_buffer_size; + unsigned int oob_buffer_size; + void *spare_databuf; + void *spare_oobbuf; + bool bounce_data; + bool bounce_oob; }; -struct dw_dma_chip_pdata { - const struct dw_dma_platform_data *pdata; - int (*probe)(struct dw_dma_chip *); - int (*remove)(struct dw_dma_chip *); - struct dw_dma_chip *chip; +struct nand_ecc_sw_hamming_conf { + struct nand_ecc_req_tweak_ctx req_ctx; + unsigned int code_size; + u8 *calc_buf; + u8 *code_buf; + unsigned int sm_order; }; -struct bcm2835_power; +struct davinci_aemif_timing; -struct bcm2835_power_domain { - struct generic_pm_domain base; - struct bcm2835_power *power; - u32 domain; - struct clk *clk; +struct davinci_nand_info { + struct nand_controller controller; long: 32; + struct nand_chip chip; + struct platform_device *pdev; + bool is_readmode; + void *base; + void *vaddr; + void *current_cs; + uint32_t mask_chipsel; + uint32_t mask_ale; + uint32_t mask_cle; + uint32_t core_chipsel; + struct davinci_aemif_timing *timing; }; -struct bcm2835_power { - struct device *dev; - void *base; - void *asb; - void *rpivid_asb; - struct genpd_onecell_data pd_xlate; - long: 32; - struct bcm2835_power_domain domains[13]; - struct reset_controller_dev reset; - long: 32; +struct davinci_aemif_timing { + u8 wsetup; + u8 wstrobe; + u8 whold; + u8 rsetup; + u8 rstrobe; + u8 rhold; + u8 ta; }; -struct bcm2835_pm { - struct device *dev; - void *base; - void *asb; - void *rpivid_asb; +struct davinci_nand_pdata { + uint32_t mask_ale; + uint32_t mask_cle; + uint32_t core_chipsel; + uint32_t mask_chipsel; + struct mtd_partition *parts; + unsigned int nr_parts; + enum nand_ecc_engine_type engine_type; + enum nand_ecc_placement ecc_placement; + u8 ecc_bits; + unsigned int options; + unsigned int bbt_options; + struct nand_bbt_descr *bbt_td; + struct nand_bbt_descr *bbt_md; + struct davinci_aemif_timing *timing; }; -struct rcar_sysc_area; +struct phylib_stubs { + int (*hwtstamp_get)(struct phy_device *, struct kernel_hwtstamp_config *); + int (*hwtstamp_set)(struct phy_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); +}; -struct rcar_sysc_info { - int (*init)(); - const struct rcar_sysc_area *areas; - unsigned int num_areas; - u32 extmask_offs; - u32 extmask_val; +struct phy_fixup { + struct list_head list; + char bus_id[64]; + u32 phy_uid; + u32 phy_uid_mask; + int (*run)(struct phy_device *); }; -struct rcar_sysc_area { - const char *name; - u16 chan_offs; - u8 chan_bit; - u8 isr_bit; - s8 parent; - u8 flags; +struct phy_led { + struct list_head list; + struct phy_device *phydev; + struct led_classdev led_cdev; + u8 index; }; -struct rockchip_iodomain; +enum sgmii_speed { + SGMII_SPEED_10 = 0, + SGMII_SPEED_100 = 1, + SGMII_SPEED_1000 = 2, + SGMII_SPEED_2500 = 2, +}; -struct rockchip_iodomain_supply; +struct lynx_pcs { + struct phylink_pcs pcs; + struct mdio_device *mdio; +}; -struct rockchip_iodomain_soc_data { - int grf_offset; - const char *supply_names[16]; - void (*init)(struct rockchip_iodomain *); - int (*write)(struct rockchip_iodomain_supply *, int); +struct bcmasp_pkt_offload { + __be32 nop; + __be32 header; + __be32 header2; + __be32 epkt; + __be32 end; }; -struct rockchip_iodomain_supply { - struct rockchip_iodomain *iod; - struct regulator *reg; - struct notifier_block nb; - int idx; +enum power_event { + pointer_reset = 2147483648, + global_unicast = 512, + wake_up_rx_frame = 64, + magic_frame = 32, + wake_up_frame_en = 4, + magic_pkt_en = 2, + power_down = 1, }; -struct rockchip_iodomain { +struct stm32_dwmac; + +struct stm32_ops { + int (*set_mode)(struct plat_stmmacenet_data *); + int (*suspend)(struct stm32_dwmac *); + void (*resume)(struct stm32_dwmac *); + int (*parse_data)(struct stm32_dwmac *, struct device *); + u32 syscfg_eth_mask; + bool clk_rx_enable_in_suspend; +}; + +struct stm32_dwmac { + struct clk *clk_tx; + struct clk *clk_rx; + struct clk *clk_eth_ck; + struct clk *clk_ethstp; + struct clk *syscfg_clk; + int ext_phyclk; + int enable_eth_ck; + int eth_clk_sel_reg; + int eth_ref_clk_sel_reg; + int irq_pwr_wakeup; + u32 mode_reg; + struct regmap *regmap; + u32 speed; + const struct stm32_ops *ops; struct device *dev; - struct regmap *grf; - const struct rockchip_iodomain_soc_data *soc_data; - struct rockchip_iodomain_supply supplies[16]; - int (*write)(struct rockchip_iodomain_supply *, int); }; -struct pre_voltage_change_data { - unsigned long old_uV; - unsigned long min_uV; - unsigned long max_uV; +struct nc_header { + __le16 hdr_len; + __le16 packet_len; + __le16 packet_id; }; -struct anatop_regulator { - u32 delay_reg; - int delay_bit_shift; - int delay_bit_width; - struct regulator_desc rdesc; - bool bypass; - int sel; +struct nc_trailer { + __le16 packet_id; }; -struct tps_info { - const char *name; - const char *vin_name; - u8 n_voltages; - const unsigned int *voltage_table; - int enable_time_us; +struct ep_device { + struct usb_endpoint_descriptor *desc; + struct usb_device *udev; + struct device dev; }; -struct tps65910_reg { - struct regulator_desc *desc; - struct tps65910 *mfd; - struct regulator_dev **rdev; - struct tps_info **info; - int num_regulators; - int mode; - int (*get_ctrl_reg)(int); - unsigned int *ext_sleep_control; - unsigned int board_ext_control[14]; +struct isp1301 { + struct usb_phy phy; + struct mutex mutex; + struct i2c_client *client; }; -struct bcm2835_aux_serial_driver_data { - resource_size_t offset; +enum ohci_rh_state { + OHCI_RH_HALTED = 0, + OHCI_RH_SUSPENDED = 1, + OHCI_RH_RUNNING = 2, }; -struct bcm2835aux_data { - struct clk *clk; - int line; - u32 cntl; +struct ed; + +struct td; + +struct urb_priv___2 { + struct ed *ed; + u16 length; + u16 td_cnt; + struct list_head pending; + struct td *td[0]; }; -struct owl_uart_port { - struct uart_port port; - struct clk *clk; +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: 32; + long: 32; long: 32; }; -struct owl_uart_info { - unsigned int tx_fifosize; -}; +typedef __u16 __hc16; -struct arm_lpae_io_pgtable { - struct io_pgtable iop; - int pgd_bits; - int start_level; - int bits_per_level; - void *pgd; +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: 32; + long: 32; }; -typedef u64 arm_lpae_iopte; +struct ohci_regs; -typedef void (*drmres_release_t)(struct drm_device *, void *); +struct ohci_hcca; -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 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; + long: 32; + unsigned long priv[0]; }; -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 ohci_roothub_regs { + __hc32 a; + __hc32 b; + __hc32 status; + __hc32 portstatus[15]; }; -typedef void (*hdmi_codec_plugged_cb)(struct device *, bool); +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: 32; + long: 32; + long: 32; + long: 32; +}; -struct hdmi_codec_daifmt; +struct ohci_hcca { + __hc32 int_table[32]; + __hc32 frame_no; + __hc32 done_head; + u8 reserved_for_hc[116]; + u8 what[4]; +}; -struct hdmi_codec_params; +typedef struct urb_priv___2 urb_priv_t; -struct snd_soc_component; +struct debug_buffer { + ssize_t (*fill_func)(struct debug_buffer *); + struct ohci_hcd *ohci; + struct mutex mutex; + size_t count; + char *page; +}; -struct hdmi_codec_ops { - int (*audio_startup)(struct device *, void *); - int (*hw_params)(struct device *, void *, struct hdmi_codec_daifmt *, struct hdmi_codec_params *); - int (*prepare)(struct device *, void *, struct hdmi_codec_daifmt *, struct hdmi_codec_params *); - void (*audio_shutdown)(struct device *, void *); - int (*mute_stream)(struct device *, void *, bool, int); - int (*get_eld)(struct device *, void *, uint8_t *, size_t); - int (*get_dai_id)(struct snd_soc_component *, struct device_node *); - int (*hook_plugged_cb)(struct device *, void *, hdmi_codec_plugged_cb, struct device *); - unsigned int no_capture_mute: 1; +struct ohci_driver_overrides { + const char *product_desc; + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); }; -typedef int snd_pcm_format_t; +struct touchscreen_properties { + unsigned int max_x; + unsigned int max_y; + bool invert_x; + bool invert_y; + bool swap_x_y; +}; -struct hdmi_codec_daifmt { - enum { - HDMI_I2S = 0, - HDMI_RIGHT_J = 1, - HDMI_LEFT_J = 2, - HDMI_DSP_A = 3, - HDMI_DSP_B = 4, - HDMI_AC97 = 5, - HDMI_SPDIF = 6, - } fmt; - unsigned int bit_clk_inv: 1; - unsigned int frame_clk_inv: 1; - unsigned int bit_clk_provider: 1; - unsigned int frame_clk_provider: 1; - snd_pcm_format_t bit_fmt; +struct trackpoint_attr_data { + size_t field_offset; + u8 command; + u8 mask; + bool inverted; + u8 power_on_default; }; -struct snd_aes_iec958 { - unsigned char status[24]; - unsigned char subcode[147]; - unsigned char pad; - unsigned char dig_subframe[4]; +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 hdmi_codec_params { - struct hdmi_audio_infoframe cea; - struct snd_aes_iec958 iec; - int sample_rate; - int sample_width; - int channels; +struct max77686_rtc_driver_data { + unsigned long delay; + u8 mask; + const unsigned int *map; + bool alarm_enable_reg; + int rtc_i2c_addr; + bool rtc_irq_from_platform; + int alarm_pending_status_reg; + const struct regmap_irq_chip *rtc_irq_chip; + const struct regmap_config *regmap_config; }; -enum snd_soc_bias_level { - SND_SOC_BIAS_OFF = 0, - SND_SOC_BIAS_STANDBY = 1, - SND_SOC_BIAS_PREPARE = 2, - SND_SOC_BIAS_ON = 3, +enum max77686_irq { + MAX77686_PMICIRQ_PWRONF = 0, + MAX77686_PMICIRQ_PWRONR = 1, + MAX77686_PMICIRQ_JIGONBF = 2, + MAX77686_PMICIRQ_JIGONBR = 3, + MAX77686_PMICIRQ_ACOKBF = 4, + MAX77686_PMICIRQ_ACOKBR = 5, + MAX77686_PMICIRQ_ONKEY1S = 6, + MAX77686_PMICIRQ_MRSTB = 7, + MAX77686_PMICIRQ_140C = 8, + MAX77686_PMICIRQ_120C = 9, + MAX77686_RTCIRQ_RTC60S = 0, + MAX77686_RTCIRQ_RTCA1 = 1, + MAX77686_RTCIRQ_RTCA2 = 2, + MAX77686_RTCIRQ_SMPL = 3, + MAX77686_RTCIRQ_RTC1S = 4, + MAX77686_RTCIRQ_WTSR = 5, }; -struct snd_soc_card; +enum max77686_rtc_reg_offset { + REG_RTC_CONTROLM = 0, + REG_RTC_CONTROL = 1, + REG_RTC_UPDATE0 = 2, + REG_WTSR_SMPL_CNTL = 3, + REG_RTC_SEC = 4, + REG_RTC_MIN = 5, + REG_RTC_HOUR = 6, + REG_RTC_WEEKDAY = 7, + REG_RTC_MONTH = 8, + REG_RTC_YEAR = 9, + REG_RTC_MONTHDAY = 10, + REG_ALARM1_SEC = 11, + REG_ALARM1_MIN = 12, + REG_ALARM1_HOUR = 13, + REG_ALARM1_WEEKDAY = 14, + REG_ALARM1_MONTH = 15, + REG_ALARM1_YEAR = 16, + REG_ALARM1_DATE = 17, + REG_ALARM2_SEC = 18, + REG_ALARM2_MIN = 19, + REG_ALARM2_HOUR = 20, + REG_ALARM2_WEEKDAY = 21, + REG_ALARM2_MONTH = 22, + REG_ALARM2_YEAR = 23, + REG_ALARM2_DATE = 24, + REG_RTC_AE1 = 25, + REG_RTC_END = 26, +}; -struct snd_soc_dapm_widget; +enum MAX77686_RTC_OP { + MAX77686_RTC_WRITE = 0, + MAX77686_RTC_READ = 1, +}; -struct snd_soc_dapm_context { - enum snd_soc_bias_level bias_level; - unsigned int idle_bias_off: 1; - unsigned int suspend_bias_off: 1; - struct device *dev; - struct snd_soc_component *component; - struct snd_soc_card *card; - enum snd_soc_bias_level target_bias_level; - struct list_head list; - struct snd_soc_dapm_widget *wcache_sink; - struct snd_soc_dapm_widget *wcache_source; - struct dentry *debugfs_dapm; +enum { + RTC_SEC___2 = 0, + RTC_MIN___2 = 1, + RTC_HOUR___2 = 2, + RTC_WEEKDAY___2 = 3, + RTC_MONTH___2 = 4, + RTC_YEAR = 5, + RTC_MONTHDAY = 6, + RTC_NR_TIME = 7, }; -struct snd_soc_component_driver; +struct max77686_rtc_info { + struct device *dev; + struct i2c_client *rtc; + struct rtc_device *rtc_dev; + struct mutex lock; + struct regmap *regmap; + struct regmap *rtc_regmap; + const struct max77686_rtc_driver_data *drv_data; + struct regmap_irq_chip_data *rtc_irq_data; + int rtc_irq; + int virq; +}; -struct snd_pcm_substream; +struct meson_i2c; -struct snd_compr_stream; +struct meson_i2c_data { + void (*set_clk_div)(struct meson_i2c *, unsigned int); +}; -struct snd_soc_component { - const char *name; - int id; - const char *name_prefix; +struct meson_i2c { + struct i2c_adapter adap; struct device *dev; - struct snd_soc_card *card; - unsigned int active; - unsigned int suspended: 1; - struct list_head list; - struct list_head card_aux_list; - struct list_head card_list; - const struct snd_soc_component_driver *driver; - struct list_head dai_list; - int num_dai; - struct regmap *regmap; - int val_bytes; - struct mutex io_mutex; - struct list_head dobj_list; - struct snd_soc_dapm_context dapm; - int (*init)(struct snd_soc_component *); - void *mark_module; - struct snd_pcm_substream *mark_open; - struct snd_pcm_substream *mark_hw_params; - struct snd_pcm_substream *mark_trigger; - struct snd_compr_stream *mark_compr_open; - void *mark_pm; - struct dentry *debugfs_root; - const char *debugfs_prefix; + void *regs; + struct clk *clk; + struct i2c_msg *msg; + int state; + bool last; + int count; + int pos; + int error; + spinlock_t lock; + struct completion done; + u32 tokens[2]; + int num_tokens; + const struct meson_i2c_data *data; }; -enum snd_soc_pcm_subclass { - SND_SOC_PCM_CLASS_PCM = 0, - SND_SOC_PCM_CLASS_BE = 1, +enum { + STATE_IDLE___3 = 0, + STATE_READ___2 = 1, + STATE_WRITE___2 = 2, }; -struct snd_soc_dapm_stats { - int power_checks; - int path_checks; - int neighbour_checks; +enum { + TOKEN_END = 0, + TOKEN_START = 1, + TOKEN_SLAVE_ADDR_WRITE = 2, + TOKEN_SLAVE_ADDR_READ = 3, + TOKEN_DATA = 4, + TOKEN_DATA_LAST = 5, + TOKEN_STOP = 6, }; -struct snd_card; - -struct snd_soc_dai_link; +enum rcar_i2c_type { + I2C_RCAR_GEN1 = 0, + I2C_RCAR_GEN2 = 1, + I2C_RCAR_GEN3 = 2, +}; -struct snd_soc_codec_conf; +struct rcar_i2c_priv { + u32 flags; + void *io; + struct i2c_adapter adap; + struct i2c_msg *msg; + int msgs_left; + struct clk *clk; + wait_queue_head_t wait; + int pos; + u32 icccr; + u16 schd; + u16 scld; + u8 recovery_icmcr; + enum rcar_i2c_type devtype; + struct i2c_client *slave; + struct resource *res; + struct dma_chan *dma_tx; + struct dma_chan *dma_rx; + struct scatterlist sg; + enum dma_data_direction dma_direction; + struct reset_control *rstc; + int irq; + struct i2c_client *host_notify_client; +}; -struct snd_soc_aux_dev; +enum { + POWER_SUPPLY_SCOPE_UNKNOWN = 0, + POWER_SUPPLY_SCOPE_SYSTEM = 1, + POWER_SUPPLY_SCOPE_DEVICE = 2, +}; -struct snd_kcontrol_new; +enum power_supply_notifier_events { + PSY_EVENT_PROP_CHANGED = 0, +}; -struct snd_soc_dapm_route; +struct psy_am_i_supplied_data { + struct power_supply *psy; + unsigned int count; +}; -struct snd_soc_dapm_update; +struct psy_get_supplier_prop_data { + struct power_supply *psy; + enum power_supply_property psp; + union power_supply_propval *val; +}; -struct snd_soc_card { - const char *name; - const char *long_name; - const char *driver_name; - const char *components; - char dmi_longname[80]; - char topology_shortname[32]; +struct db8500_thermal_zone { + struct thermal_zone_device *tz; struct device *dev; - struct snd_card *snd_card; - struct module *owner; - struct mutex mutex; - struct mutex dapm_mutex; - struct mutex pcm_mutex; - enum snd_soc_pcm_subclass pcm_subclass; - int (*probe)(struct snd_soc_card *); - int (*late_probe)(struct snd_soc_card *); - void (*fixup_controls)(struct snd_soc_card *); - int (*remove)(struct snd_soc_card *); - int (*suspend_pre)(struct snd_soc_card *); - int (*suspend_post)(struct snd_soc_card *); - int (*resume_pre)(struct snd_soc_card *); - int (*resume_post)(struct snd_soc_card *); - int (*set_bias_level)(struct snd_soc_card *, struct snd_soc_dapm_context *, enum snd_soc_bias_level); - int (*set_bias_level_post)(struct snd_soc_card *, struct snd_soc_dapm_context *, enum snd_soc_bias_level); - int (*add_dai_link)(struct snd_soc_card *, struct snd_soc_dai_link *); - void (*remove_dai_link)(struct snd_soc_card *, struct snd_soc_dai_link *); - long pmdown_time; - struct snd_soc_dai_link *dai_link; - int num_links; - struct list_head rtd_list; - int num_rtd; - struct snd_soc_codec_conf *codec_conf; - int num_configs; - struct snd_soc_aux_dev *aux_dev; - int num_aux_devs; - struct list_head aux_comp_list; - const struct snd_kcontrol_new *controls; - int num_controls; - const struct snd_soc_dapm_widget *dapm_widgets; - int num_dapm_widgets; - const struct snd_soc_dapm_route *dapm_routes; - int num_dapm_routes; - const struct snd_soc_dapm_widget *of_dapm_widgets; - int num_of_dapm_widgets; - const struct snd_soc_dapm_route *of_dapm_routes; - int num_of_dapm_routes; - struct list_head component_dev_list; - struct list_head list; - struct list_head widgets; - struct list_head paths; - struct list_head dapm_list; - struct list_head dapm_dirty; - struct list_head dobj_list; - struct snd_soc_dapm_context dapm; - struct snd_soc_dapm_stats dapm_stats; - struct snd_soc_dapm_update *update; - struct dentry *debugfs_card_root; - struct work_struct deferred_resume_work; - u32 pop_time; - unsigned int instantiated: 1; - unsigned int topology_shortname_created: 1; - unsigned int fully_routed: 1; - unsigned int disable_route_checks: 1; - unsigned int probed: 1; - unsigned int component_chaining: 1; - void *drvdata; + unsigned long interpolated_temp; + unsigned int cur_index; }; -struct snd_shutdown_f_ops; +struct mtk_wdt_data { + int toprgu_sw_rst_num; +}; -struct snd_info_entry; +struct mtk_wdt_dev { + struct watchdog_device wdt_dev; + void *wdt_base; + spinlock_t lock; + struct reset_controller_dev rcdev; + bool disable_wdt_extrst; + bool reset_by_toprgu; +}; -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; +enum pm_sleep_mode { + PM_SLEEP_MODE_STBY = 0, + PM_SLEEP_MODE_RET = 1, + PM_SLEEP_MODE_SPC = 2, + PM_SLEEP_MODE_PC = 3, + PM_SLEEP_MODE_NR = 4, +}; + +struct spm_driver_data; + +struct cpuidle_qcom_spm_data { + struct cpuidle_driver cpuidle_driver; + struct spm_driver_data *spm; long: 32; }; -struct snd_info_buffer; +struct spm_reg_data; -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 spm_driver_data { + void *reg_base; + const struct spm_reg_data *reg_data; }; -struct snd_info_entry_ops; +struct spm_reg_data { + const u16 *reg_offset; + u32 spm_cfg; + u32 spm_dly; + u32 pmic_dly; + u32 pmic_data[2]; + u32 avs_ctl; + u32 avs_limit; + u8 seq[64]; + u8 start_index[4]; +}; -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 mmc_pwrseq_simple { + struct mmc_pwrseq pwrseq; + bool clk_enabled; + u32 post_power_on_delay_ms; + u32 power_off_delay_us; + struct clk *ext_clk; + struct gpio_descs *reset_gpios; }; -struct snd_info_buffer { - char *buffer; - unsigned int curr; - unsigned int size; - unsigned int len; - int stop; - int error; +struct sdhci_omap_data { + int omap_offset; + u32 offset; + u8 flags; }; -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 *); +struct sdhci_omap_host { + char *version; + void *base; + struct device *dev; + struct regulator *pbias; + bool pbias_enabled; + struct sdhci_host *host; + u8 bus_mode; + u8 power_mode; + u8 timing; + u8 flags; + struct pinctrl *pinctrl; + struct pinctrl_state **pinctrl_state; + int wakeirq; + bool is_tuning; + int omap_offset; + u32 con; + u32 hctl; + u32 sysctl; + u32 capa; + u32 ie; + u32 ise; }; -enum snd_soc_dapm_type { - snd_soc_dapm_input = 0, - snd_soc_dapm_output = 1, - snd_soc_dapm_mux = 2, - snd_soc_dapm_demux = 3, - snd_soc_dapm_mixer = 4, - snd_soc_dapm_mixer_named_ctl = 5, - snd_soc_dapm_pga = 6, - snd_soc_dapm_out_drv = 7, - snd_soc_dapm_adc = 8, - snd_soc_dapm_dac = 9, - snd_soc_dapm_micbias = 10, - snd_soc_dapm_mic = 11, - snd_soc_dapm_hp = 12, - snd_soc_dapm_spk = 13, - snd_soc_dapm_line = 14, - snd_soc_dapm_switch = 15, - snd_soc_dapm_vmid = 16, - snd_soc_dapm_pre = 17, - snd_soc_dapm_post = 18, - snd_soc_dapm_supply = 19, - snd_soc_dapm_pinctrl = 20, - snd_soc_dapm_regulator_supply = 21, - snd_soc_dapm_clock_supply = 22, - snd_soc_dapm_aif_in = 23, - snd_soc_dapm_aif_out = 24, - snd_soc_dapm_siggen = 25, - snd_soc_dapm_sink = 26, - snd_soc_dapm_dai_in = 27, - snd_soc_dapm_dai_out = 28, - snd_soc_dapm_dai_link = 29, - snd_soc_dapm_kcontrol = 30, - snd_soc_dapm_buffer = 31, - snd_soc_dapm_scheduler = 32, - snd_soc_dapm_effect = 33, - snd_soc_dapm_src = 34, - snd_soc_dapm_asrc = 35, - snd_soc_dapm_encoder = 36, - snd_soc_dapm_decoder = 37, - SND_SOC_DAPM_TYPE_COUNT = 38, +struct psci_operations { + u32 (*get_version)(); + int (*cpu_suspend)(u32, unsigned long); + int (*cpu_off)(u32); + int (*cpu_on)(unsigned long, unsigned long); + int (*migrate)(unsigned long); + int (*affinity_info)(unsigned long, unsigned long); + int (*migrate_info_type)(); }; -enum snd_soc_dobj_type { - SND_SOC_DOBJ_NONE = 0, - SND_SOC_DOBJ_MIXER = 1, - SND_SOC_DOBJ_BYTES = 2, - SND_SOC_DOBJ_ENUM = 3, - SND_SOC_DOBJ_GRAPH = 4, - SND_SOC_DOBJ_WIDGET = 5, - SND_SOC_DOBJ_DAI_LINK = 6, - SND_SOC_DOBJ_PCM = 7, - SND_SOC_DOBJ_CODEC_LINK = 8, - SND_SOC_DOBJ_BACKEND_LINK = 9, +typedef unsigned long psci_fn(unsigned long, unsigned long, unsigned long, unsigned long); + +struct psci_0_1_function_ids { + u32 cpu_suspend; + u32 cpu_on; + u32 cpu_off; + u32 migrate; }; -struct snd_kcontrol; +typedef int (*psci_initcall_t)(const struct device_node *); -struct snd_soc_dobj_control { - struct snd_kcontrol *kcontrol; - char **dtexts; - unsigned long *dvalues; +struct arm_cpuidle_irq_context {}; + +struct st_clksrc_ddata { + struct clk *clk; + void *base; }; -struct snd_soc_dobj_widget { - unsigned int *kcontrol_type; +struct of_bus { + const char *name; + const char *addresses; + int (*match)(struct device_node *); + void (*count_cells)(struct device_node *, int *, int *); + u64 (*map)(__be32 *, const __be32 *, int, int, int, int); + int (*translate)(__be32 *, u64, int); + int flag_cells; + unsigned int (*get_flags)(const __be32 *); }; -struct snd_soc_dobj { - enum snd_soc_dobj_type type; - unsigned int index; - struct list_head list; - int (*unload)(struct snd_soc_component *, struct snd_soc_dobj *); - union { - struct snd_soc_dobj_control control; - struct snd_soc_dobj_widget widget; - }; - void *private; +enum { + LOGIC_PIO_INDIRECT = 0, + LOGIC_PIO_CPU_MMIO = 1, }; -struct snd_soc_dapm_widget { - enum snd_soc_dapm_type id; - const char *name; - const char *sname; +struct logic_pio_host_ops; + +struct logic_pio_hwaddr { struct list_head list; - struct snd_soc_dapm_context *dapm; - void *priv; - struct regulator *regulator; - struct pinctrl *pinctrl; - int reg; - unsigned char shift; - unsigned int mask; - unsigned int on_val; - unsigned int off_val; - unsigned char power: 1; - unsigned char active: 1; - unsigned char connected: 1; - unsigned char new: 1; - unsigned char force: 1; - unsigned char ignore_suspend: 1; - unsigned char new_power: 1; - unsigned char power_checked: 1; - unsigned char is_supply: 1; - unsigned char is_ep: 2; - int subseq; - int (*power_check)(struct snd_soc_dapm_widget *); - unsigned short event_flags; - int (*event)(struct snd_soc_dapm_widget *, struct snd_kcontrol *, int); - int num_kcontrols; - const struct snd_kcontrol_new *kcontrol_news; - struct snd_kcontrol **kcontrols; - struct snd_soc_dobj dobj; - struct list_head edges[2]; - struct list_head work_list; - struct list_head power_list; - struct list_head dirty; - int endpoints[2]; - struct clk *clk; - int channel; + 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; }; -typedef int snd_kcontrol_tlv_rw_t(struct snd_kcontrol *, int, unsigned int, unsigned int __attribute__((btf_type_tag("user"))) *); +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); +}; -typedef int snd_ctl_elem_iface_t; +struct board_staging_clk; -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 board_staging_dev { + struct platform_device *pdev; + const struct board_staging_clk *clocks; + unsigned int nclocks; + const char *domain; }; -struct snd_ctl_elem_info; +struct board_staging_clk { + const char *clk; + const char *con_id; + const char *dev_id; +}; -typedef int snd_kcontrol_info_t(struct snd_kcontrol *, struct snd_ctl_elem_info *); +struct sh_mobile_lcdc_sys_bus_ops; -struct snd_ctl_elem_value; +struct sh_mobile_lcdc_panel_cfg { + unsigned long width; + unsigned long height; + int (*setup_sys)(void *, struct sh_mobile_lcdc_sys_bus_ops *); + void (*start_transfer)(void *, struct sh_mobile_lcdc_sys_bus_ops *); + void (*display_on)(); + void (*display_off)(); +}; -typedef int snd_kcontrol_get_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); +struct sh_mobile_lcdc_bl_info { + const char *name; + int max_brightness; + int (*set_brightness)(int); +}; -typedef int snd_kcontrol_put_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); +struct sh_mobile_lcdc_sys_bus_cfg { + unsigned long ldmt2r; + unsigned long ldmt3r; + unsigned long deferred_io_msec; +}; -struct snd_ctl_file; +struct sh_mobile_lcdc_chan_cfg { + int chan; + int fourcc; + int colorspace; + int interface_type; + int clock_divider; + unsigned long flags; + const struct fb_videomode *lcd_modes; + int num_modes; + struct sh_mobile_lcdc_panel_cfg panel_cfg; + struct sh_mobile_lcdc_bl_info bl_info; + struct sh_mobile_lcdc_sys_bus_cfg sys_bus_cfg; + struct platform_device *tx_dev; +}; -struct snd_kcontrol_volatile { - struct snd_ctl_file *owner; - unsigned int access; +struct sh_mobile_lcdc_overlay_cfg { + int fourcc; + unsigned int max_xres; + unsigned int max_yres; }; -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]; +struct sh_mobile_lcdc_info { + int clock_source; + struct sh_mobile_lcdc_chan_cfg ch[2]; + struct sh_mobile_lcdc_overlay_cfg overlays[4]; }; -typedef int snd_ctl_elem_type_t; +struct sh_mobile_lcdc_sys_bus_ops { + void (*write_index)(void *, unsigned long); + void (*write_data)(void *, unsigned long); + unsigned long (*read_data)(void *); +}; -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; - long: 32; - } enumerated; - unsigned char reserved[128]; - } value; - unsigned char reserved[64]; +struct devbus { + struct device *dev; + void *base; + unsigned long tick_ps; }; -struct snd_ctl_elem_value { - struct snd_ctl_elem_id id; - unsigned int indirect: 1; - long: 32; - 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 devbus_read_params { + u32 bus_width; + u32 badr_skew; + u32 turn_off; + u32 acc_first; + u32 acc_next; + u32 rd_setup; + u32 rd_hold; }; -struct snd_fasync; +struct devbus_write_params { + u32 sync_enable; + u32 wr_high; + u32 wr_low; + u32 ale_wr; +}; -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 genpool_data_align { + int align; }; -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 csum_state { + __wsum csum; + size_t off; }; -enum snd_soc_dpcm_trigger { - SND_SOC_DPCM_TRIGGER_PRE = 0, - SND_SOC_DPCM_TRIGGER_POST = 1, - SND_SOC_DPCM_TRIGGER_BESPOKE = 2, +struct page_pool_stats { + struct page_pool_alloc_stats alloc_stats; + struct page_pool_recycle_stats recycle_stats; }; -enum snd_soc_trigger_order { - SND_SOC_TRIGGER_ORDER_DEFAULT = 0, - SND_SOC_TRIGGER_ORDER_LDC = 1, - SND_SOC_TRIGGER_ORDER_MAX = 2, +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, }; -struct snd_soc_dai_link_component; +enum genl_validate_flags { + GENL_DONT_VALIDATE_STRICT = 1, + GENL_DONT_VALIDATE_DUMP = 2, + GENL_DONT_VALIDATE_DUMP_STRICT = 4, +}; -struct snd_soc_dai_link_codec_ch_map; +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, +}; -struct snd_soc_pcm_stream; +enum { + CTRL_ATTR_OP_UNSPEC = 0, + CTRL_ATTR_OP_ID = 1, + CTRL_ATTR_OP_FLAGS = 2, + __CTRL_ATTR_OP_MAX = 3, +}; -struct snd_soc_pcm_runtime; +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, +}; -struct snd_pcm_hw_params; +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 snd_soc_ops; +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 snd_soc_compr_ops; +struct netlink_policy_dump_state; -struct snd_soc_dai_link { - const char *name; - const char *stream_name; - struct snd_soc_dai_link_component *cpus; - unsigned int num_cpus; - struct snd_soc_dai_link_component *codecs; - unsigned int num_codecs; - struct snd_soc_dai_link_codec_ch_map *codec_ch_maps; - struct snd_soc_dai_link_component *platforms; - unsigned int num_platforms; - int id; - const struct snd_soc_pcm_stream *c2c_params; - unsigned int num_c2c_params; - unsigned int dai_fmt; - enum snd_soc_dpcm_trigger trigger[2]; - int (*init)(struct snd_soc_pcm_runtime *); - void (*exit)(struct snd_soc_pcm_runtime *); - int (*be_hw_params_fixup)(struct snd_soc_pcm_runtime *, struct snd_pcm_hw_params *); - const struct snd_soc_ops *ops; - const struct snd_soc_compr_ops *compr_ops; - enum snd_soc_trigger_order trigger_start; - enum snd_soc_trigger_order trigger_stop; - unsigned int nonatomic: 1; - unsigned int playback_only: 1; - unsigned int capture_only: 1; - unsigned int ignore_suspend: 1; - unsigned int symmetric_rate: 1; - unsigned int symmetric_channels: 1; - unsigned int symmetric_sample_bits: 1; - unsigned int no_pcm: 1; - unsigned int dynamic: 1; - unsigned int dpcm_capture: 1; - unsigned int dpcm_playback: 1; - unsigned int dpcm_merged_format: 1; - unsigned int dpcm_merged_chan: 1; - unsigned int dpcm_merged_rate: 1; - unsigned int ignore_pmdown_time: 1; - unsigned int ignore: 1; +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 snd_soc_dai_link_component { - const char *name; - struct device_node *of_node; - const char *dai_name; +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; }; -struct snd_soc_dai_link_codec_ch_map { - unsigned int connected_cpu_id; - unsigned int ch_mask; +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 snd_soc_pcm_stream { - const char *stream_name; - long: 32; - u64 formats; - unsigned int rates; - unsigned int rate_min; - unsigned int rate_max; - unsigned int channels_min; - unsigned int channels_max; - unsigned int sig_bits; +struct channels_reply_data { + struct ethnl_reply_data base; + struct ethtool_channels channels; }; -typedef unsigned long snd_pcm_uframes_t; - -struct snd_pcm_audio_tstamp_config; +struct static_key_false_deferred { + struct static_key_false key; +}; -struct snd_pcm_audio_tstamp_report; +struct ip6fl_iter_state { + struct seq_net_private p; + struct pid_namespace *pid_ns; + int bucket; +}; -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 *); +enum tpacket_versions { + TPACKET_V1 = 0, + TPACKET_V2 = 1, + TPACKET_V3 = 2, }; -struct snd_mask { - __u32 bits[8]; +enum packet_sock_flags { + PACKET_SOCK_ORIGDEV = 0, + PACKET_SOCK_AUXDATA = 1, + PACKET_SOCK_TX_HAS_OFF = 2, + PACKET_SOCK_TP_LOSS = 3, + PACKET_SOCK_RUNNING = 4, + PACKET_SOCK_PRESSURE = 5, + PACKET_SOCK_QDISC_BYPASS = 6, }; -struct 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 tpacket_stats { + unsigned int tp_packets; + unsigned int tp_drops; }; -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 tpacket_stats_v3 { + unsigned int tp_packets; + unsigned int tp_drops; + unsigned int tp_freeze_q_cnt; }; -enum snd_soc_dpcm_update { - SND_SOC_DPCM_UPDATE_NO = 0, - SND_SOC_DPCM_UPDATE_BE = 1, - SND_SOC_DPCM_UPDATE_FE = 2, +union tpacket_stats_u { + struct tpacket_stats stats1; + struct tpacket_stats_v3 stats3; }; -enum snd_soc_dpcm_state { - SND_SOC_DPCM_STATE_NEW = 0, - SND_SOC_DPCM_STATE_OPEN = 1, - SND_SOC_DPCM_STATE_HW_PARAMS = 2, - SND_SOC_DPCM_STATE_PREPARE = 3, - SND_SOC_DPCM_STATE_START = 4, - SND_SOC_DPCM_STATE_STOP = 5, - SND_SOC_DPCM_STATE_PAUSED = 6, - SND_SOC_DPCM_STATE_SUSPEND = 7, - SND_SOC_DPCM_STATE_HW_FREE = 8, - SND_SOC_DPCM_STATE_CLOSE = 9, +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; + long: 32; }; -struct snd_soc_dpcm_runtime { - struct list_head be_clients; - struct list_head fe_clients; - int users; - struct snd_pcm_hw_params hw_params; - enum snd_soc_dpcm_update runtime_update; - enum snd_soc_dpcm_state state; - int trigger_pending; - int be_start; - int be_pause; - bool fe_pause; +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; + long: 32; + union { + unsigned long *rx_owner_map; + struct tpacket_kbdq_core prb_bdqc; + }; }; -struct snd_pcm; +struct packet_fanout; -struct snd_compr; +struct packet_rollover; -struct snd_soc_dai; +struct packet_mclist; -struct snd_soc_pcm_runtime { - struct device *dev; - struct snd_soc_card *card; - struct snd_soc_dai_link *dai_link; - struct snd_pcm_ops ops; - unsigned int c2c_params_select; - struct snd_soc_dpcm_runtime dpcm[2]; - struct snd_soc_dapm_widget *c2c_widget[2]; - long pmdown_time; - struct snd_pcm *pcm; - struct snd_compr *compr; - struct snd_soc_dai **dais; - struct delayed_work delayed_work; - void (*close_delayed_work_func)(struct snd_soc_pcm_runtime *); - struct dentry *debugfs_dpcm_root; - unsigned int num; +struct packet_sock { + struct sock sk; + struct packet_fanout *fanout; + union tpacket_stats_u stats; + struct packet_ring_buffer rx_ring; + struct packet_ring_buffer tx_ring; + int copy_thresh; + spinlock_t bind_lock; + struct mutex pg_vec_lock; + unsigned long flags; + int ifindex; + u8 vnet_hdr_sz; + __be16 num; + struct packet_rollover *rollover; + struct packet_mclist *mclist; + atomic_long_t mapped; + enum tpacket_versions tp_version; + unsigned int tp_hdrlen; + unsigned int tp_reserve; + unsigned int tp_tstamp; + struct completion skb_completion; + struct net_device __attribute__((btf_type_tag("rcu"))) *cached_dev; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct packet_type prot_hook; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + atomic_t tp_drops; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; + +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; - struct snd_pcm_substream *mark_startup; - struct snd_pcm_substream *mark_hw_params; - struct snd_pcm_substream *mark_trigger; - struct snd_compr_stream *mark_compr_startup; - unsigned int pop_wait: 1; - unsigned int fe_compr: 1; - int num_components; - struct snd_soc_component *components[0]; + spinlock_t lock; + refcount_t sk_ref; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct packet_type prot_hook; + struct sock __attribute__((btf_type_tag("rcu"))) *arr[0]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct snd_dma_device { - int type; - enum dma_data_direction dir; - bool need_sync; - struct device *dev; +struct pgv { + char *buffer; }; -struct snd_dma_buffer { - struct snd_dma_device dev; - unsigned char *area; - dma_addr_t addr; - size_t bytes; - void *private_data; +struct packet_rollover { + int sock; + atomic_long_t num; + atomic_long_t num_huge; + atomic_long_t num_failed; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + u32 history[16]; }; -struct snd_timer; +struct packet_mclist { + struct packet_mclist *next; + int ifindex; + int count; + unsigned short type; + unsigned short alen; + unsigned char addr[32]; +}; -struct snd_pcm_group { - spinlock_t lock; - struct mutex mutex; - struct list_head substreams; - refcount_t refs; +struct tpacket_bd_ts { + unsigned int ts_sec; + union { + unsigned int ts_usec; + unsigned int ts_nsec; + }; }; -struct snd_pcm_str; +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; +}; -struct snd_pcm_runtime; +union tpacket_bd_header_u { + struct tpacket_hdr_v1 bh1; +}; -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 tpacket_block_desc { + __u32 version; + __u32 offset_to_priv; + union tpacket_bd_header_u hdr; }; -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; - long: 32; - struct device dev; +struct tpacket_hdr_variant1 { + __u32 tp_rxhash; + __u32 tp_vlan_tci; + __u16 tp_vlan_tpid; + __u16 tp_padding; }; -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; - long: 32; +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]; }; -typedef int snd_pcm_state_t; +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]; +}; -typedef long snd_pcm_sframes_t; +struct sockaddr_pkt { + unsigned short spkt_family; + unsigned char spkt_device[14]; + __be16 spkt_protocol; +}; -typedef int snd_pcm_access_t; +struct packet_skb_cb { + union { + struct sockaddr_pkt pkt; + union { + unsigned int origlen; + struct sockaddr_ll ll; + }; + } sa; +}; -typedef int snd_pcm_subformat_t; +typedef __u16 __virtio16; -union snd_pcm_sync_id { - unsigned char id[16]; - unsigned short id16[8]; - unsigned int id32[4]; +struct virtio_net_hdr { + __u8 flags; + __u8 gso_type; + __virtio16 hdr_len; + __virtio16 gso_size; + __virtio16 csum_start; + __virtio16 csum_offset; }; -struct snd_pcm_hardware { - unsigned int info; - long: 32; - 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; - long: 32; +struct tpacket_hdr; + +struct tpacket2_hdr; + +union tpacket_uhdr { + struct tpacket_hdr *h1; + struct tpacket2_hdr *h2; + struct tpacket3_hdr *h3; + void *raw; }; -struct snd_pcm_hw_rule; +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 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 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 snd_pcm_audio_tstamp_config { - u32 type_requested: 4; - u32 report_delay: 1; +struct virtio_net_hdr_mrg_rxbuf { + struct virtio_net_hdr hdr; + __virtio16 num_buffers; }; -struct snd_pcm_audio_tstamp_report { - u32 valid: 1; - u32 actual_type: 4; - u32 accuracy_report: 1; - u32 accuracy; +struct tpacket_req { + unsigned int tp_block_size; + unsigned int tp_block_nr; + unsigned int tp_frame_size; + unsigned int tp_frame_nr; }; -struct snd_pcm_mmap_status; +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; +}; -struct snd_pcm_mmap_control; +union tpacket_req_u { + struct tpacket_req req; + struct tpacket_req3 req3; +}; -struct snd_pcm_runtime { - snd_pcm_state_t state; - snd_pcm_state_t suspended_state; - struct snd_pcm_substream *trigger_master; - long: 32; - 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; - long: 32; - struct timespec64 driver_tstamp; +struct sock_fprog { + unsigned short len; + struct sock_filter __attribute__((btf_type_tag("user"))) *filter; }; -typedef char __pad_before_uframe[0]; - -typedef char __pad_after_uframe[4]; +typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); -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 flow_keys_basic { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; }; -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; +struct packet_mreq_max { + int mr_ifindex; + unsigned short mr_type; + unsigned short mr_alen; + unsigned char mr_address[32]; }; -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 fanout_args { + __u16 id; + __u16 type_flags; + __u32 max_num_members; }; -struct snd_compr_ops; - -struct snd_compr { - const char *name; - long: 32; - 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; - long: 32; +struct tpacket_rollover_stats { + __u64 tp_all; + __u64 tp_huge; + __u64 tp_failed; }; -struct snd_compr_params; - -struct snd_codec; +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 snd_compr_metadata; +struct strp_msg { + int full_len; + int offset; +}; -struct snd_compr_tstamp; +struct _strp_msg { + struct strp_msg strp; + int accum_len; +}; -struct snd_compr_caps; +enum { + ASSUME_PERFECT = 255, + ASSUME_VALID_DTB = 1, + ASSUME_VALID_INPUT = 2, + ASSUME_LATEST = 4, + ASSUME_NO_ROLLBACK = 8, + ASSUME_LIBFDT_ORDER = 16, + ASSUME_LIBFDT_FLAWLESS = 32, +}; -struct snd_compr_codec_caps; +typedef __be64 fdt64_t; -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 fdt_reserve_entry { + fdt64_t address; + fdt64_t size; }; -enum snd_compr_direction { - SND_COMPRESS_PLAYBACK = 0, - SND_COMPRESS_CAPTURE = 1, +struct fdt_property { + fdt32_t tag; + fdt32_t len; + fdt32_t nameoff; + char data[0]; }; -struct snd_compr_runtime; +struct fdt_node_header { + fdt32_t tag; + char name[0]; +}; -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 klist_waiter { + struct list_head list; + struct klist_node *node; + struct task_struct *process; + int woken; }; -struct snd_compr_runtime { - snd_pcm_state_t state; - struct snd_compr_ops *ops; - void *buffer; +struct pci_sys_data { + struct list_head node; + int busnr; long: 32; - u64 buffer_size; - u32 fragment_size; - u32 fragments; - u64 total_bytes_available; - u64 total_bytes_transferred; - wait_queue_head_t sleep; + u64 mem_offset; + unsigned long io_offset; + struct pci_bus *bus; + struct list_head resources; + struct resource io_res; + char io_res_name[12]; + u8 (*swizzle)(struct pci_dev *, u8 *); + int (*map_irq)(const struct pci_dev *, u8, u8); 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_compressed_buffer { - __u32 fragment_size; - __u32 fragments; +struct hw_pci { + struct pci_ops *ops; + int nr_controllers; + void **private_data; + int (*setup)(int, struct pci_sys_data *); + int (*scan)(int, struct pci_host_bridge *); + void (*preinit)(); + void (*postinit)(); + u8 (*swizzle)(struct pci_dev *, u8 *); + int (*map_irq)(const struct pci_dev *, u8, u8); }; -struct snd_enc_wma { - __u32 super_block_align; -}; +struct mpu_rgn_info; -struct snd_enc_vorbis { - __s32 quality; - __u32 managed; - __u32 max_bit_rate; - __u32 min_bit_rate; - __u32 downmix; +struct secondary_data { + union { + struct mpu_rgn_info *mpu_rgn_info; + u64 pgdir; + }; + unsigned long swapper_pg_dir; + void *stack; + struct task_struct *task; + long: 32; }; -struct snd_enc_real { - __u32 quant_bits; - __u32 start_region; - __u32 num_regions; +struct mpu_rgn { + union { + u32 drbar; + u32 prbar; + }; + union { + u32 drsr; + u32 prlar; + }; + union { + u32 dracr; + u32 unused; + }; }; -struct snd_enc_flac { - __u32 num; - __u32 gain; +struct mpu_rgn_info { + unsigned int used; + struct mpu_rgn rgns[16]; }; -struct snd_enc_generic { - __u32 bw; - __s32 reserved[15]; +enum ipi_msg_type { + IPI_WAKEUP = 0, + IPI_TIMER = 1, + IPI_RESCHEDULE = 2, + IPI_CALL_FUNC = 3, + IPI_CPU_STOP = 4, + IPI_IRQ_WORK = 5, + IPI_COMPLETION = 6, + NR_IPI = 7, + IPI_CPU_BACKTRACE = 7, + MAX_IPI = 8, }; -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 cpuinfo_arm { + struct cpu cpu; + u32 cpuid; + unsigned int loops_per_jiffy; }; -struct snd_dec_wma { - __u32 encoder_option; - __u32 adv_encoder_option; - __u32 adv_encoder_option2; - __u32 reserved; +struct cpufreq_freqs { + struct cpufreq_policy *policy; + unsigned int old; + unsigned int new; + u8 flags; }; -struct snd_dec_alac { - __u32 frame_length; - __u8 compatible_version; - __u8 pb; - __u8 mb; - __u8 kb; - __u32 max_run; - __u32 max_frame_bytes; +struct stackframe { + unsigned long fp; + unsigned long sp; + unsigned long lr; + unsigned long pc; + unsigned long *lr_addr; + struct llist_node *kr_cur; + struct task_struct *tsk; }; -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; +struct perf_pmu_events_attr { + struct device_attribute attr; + u64 id; + const char *event_str; + long: 32; }; -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 static_vm { + struct vm_struct vm; + struct list_head list; }; -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 mem_type { + pteval_t prot_pte; + pteval_t prot_pte_s2; + pmdval_t prot_l1; + pmdval_t prot_sect; + unsigned int domain; }; -struct snd_compr_params { - struct snd_compressed_buffer buffer; - struct snd_codec codec; - __u8 no_wake_mode; +enum probes_insn { + INSN_REJECTED = 0, + INSN_GOOD = 1, + INSN_GOOD_NO_SLOT = 2, }; -struct snd_compr_metadata { - __u32 key; - __u32 value[8]; +struct patch { + void *addr; + unsigned int insn; }; -struct snd_compr_tstamp { - __u32 byte_offset; - __u32 copied_total; - __u32 pcm_frames; - __u32 pcm_io_frames; - __u32 sampling_rate; -}; +struct decode_header; -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]; -}; +typedef enum probes_insn probes_check_t(probes_opcode_t, struct arch_probes_insn *, const struct decode_header *); -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 decode_checker { + probes_check_t *checker; }; -struct snd_compr_codec_caps { - __u32 codec; - __u32 num_descriptors; - struct snd_codec_desc descriptor[32]; +union decode_item { + u32 bits; + const union decode_item *table; + int action; }; -struct snd_soc_dai_stream { - struct snd_soc_dapm_widget *widget; - unsigned int active; - unsigned int tdm_mask; - void *dma_data; +struct decode_header { + union decode_item type_regs; + union decode_item mask; + union decode_item value; }; -struct snd_soc_dai_driver; +typedef enum probes_insn probes_custom_decode_t(probes_opcode_t, struct arch_probes_insn *, const struct decode_header *); -struct snd_soc_dai { - const char *name; - int id; - struct device *dev; - struct snd_soc_dai_driver *driver; - struct snd_soc_dai_stream stream[2]; - unsigned int rate; - unsigned int channels; - unsigned int sample_bits; - struct snd_soc_component *component; - struct list_head list; - struct snd_pcm_substream *mark_startup; - struct snd_pcm_substream *mark_hw_params; - struct snd_pcm_substream *mark_trigger; - struct snd_compr_stream *mark_compr_startup; - unsigned int probed: 1; +union decode_action { + probes_insn_handler_t *handler; + probes_custom_decode_t *decoder; }; -struct snd_soc_dai_ops; - -struct snd_soc_cdai_ops; +typedef enum probes_insn kprobe_decode_insn_t(probes_opcode_t, struct arch_probes_insn *, bool, const union decode_action *, const struct decode_checker **); -struct snd_soc_dai_driver { - const char *name; - unsigned int id; - unsigned int base; - struct snd_soc_dobj dobj; - int (*probe)(struct snd_soc_dai *); - int (*remove)(struct snd_soc_dai *); - int (*compress_new)(struct snd_soc_pcm_runtime *, int); - int (*pcm_new)(struct snd_soc_pcm_runtime *, struct snd_soc_dai *); - const struct snd_soc_dai_ops *ops; - const struct snd_soc_cdai_ops *cops; - struct snd_soc_pcm_stream capture; - struct snd_soc_pcm_stream playback; - unsigned int symmetric_rate: 1; - unsigned int symmetric_channels: 1; - unsigned int symmetric_sample_bits: 1; - int probe_order; - int remove_order; - long: 32; +struct al_cpu_resume_regs_per_cpu { + uint32_t flags; + uint32_t resume_addr; }; -struct snd_soc_dai_ops { - int (*set_sysclk)(struct snd_soc_dai *, int, unsigned int, int); - int (*set_pll)(struct snd_soc_dai *, int, int, unsigned int, unsigned int); - int (*set_clkdiv)(struct snd_soc_dai *, int, int); - int (*set_bclk_ratio)(struct snd_soc_dai *, unsigned int); - int (*set_fmt)(struct snd_soc_dai *, unsigned int); - int (*xlate_tdm_slot_mask)(unsigned int, unsigned int *, unsigned int *); - int (*set_tdm_slot)(struct snd_soc_dai *, unsigned int, unsigned int, int, int); - int (*set_channel_map)(struct snd_soc_dai *, unsigned int, unsigned int *, unsigned int, unsigned int *); - int (*get_channel_map)(struct snd_soc_dai *, unsigned int *, unsigned int *, unsigned int *, unsigned int *); - int (*set_tristate)(struct snd_soc_dai *, int); - int (*set_stream)(struct snd_soc_dai *, void *, int); - void * (*get_stream)(struct snd_soc_dai *, int); - int (*mute_stream)(struct snd_soc_dai *, int, int); - int (*startup)(struct snd_pcm_substream *, struct snd_soc_dai *); - void (*shutdown)(struct snd_pcm_substream *, struct snd_soc_dai *); - int (*hw_params)(struct snd_pcm_substream *, struct snd_pcm_hw_params *, struct snd_soc_dai *); - int (*hw_free)(struct snd_pcm_substream *, struct snd_soc_dai *); - int (*prepare)(struct snd_pcm_substream *, struct snd_soc_dai *); - int (*trigger)(struct snd_pcm_substream *, int, struct snd_soc_dai *); - int (*bespoke_trigger)(struct snd_pcm_substream *, int, struct snd_soc_dai *); - snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *, struct snd_soc_dai *); - u64 *auto_selectable_formats; - int num_auto_selectable_formats; - unsigned int no_capture_mute: 1; +struct al_cpu_resume_regs { + uint32_t watermark; + uint32_t flags; + struct al_cpu_resume_regs_per_cpu per_cpu[0]; }; -struct snd_soc_cdai_ops { - int (*startup)(struct snd_compr_stream *, struct snd_soc_dai *); - int (*shutdown)(struct snd_compr_stream *, struct snd_soc_dai *); - int (*set_params)(struct snd_compr_stream *, struct snd_compr_params *, struct snd_soc_dai *); - int (*get_params)(struct snd_compr_stream *, struct snd_codec *, struct snd_soc_dai *); - int (*set_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *, struct snd_soc_dai *); - int (*get_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *, struct snd_soc_dai *); - int (*trigger)(struct snd_compr_stream *, int, struct snd_soc_dai *); - int (*pointer)(struct snd_compr_stream *, struct snd_compr_tstamp *, struct snd_soc_dai *); - int (*ack)(struct snd_compr_stream *, size_t, struct snd_soc_dai *); +struct imx6_pm_socdata { + u32 ddr_type; + const char *mmdc_compat; + const char *src_compat; + const char *iomuxc_compat; + const char *gpc_compat; + const char *pl310_compat; + const u32 mmdc_io_num; + const u32 *mmdc_io_offset; }; -struct snd_soc_ops { - int (*startup)(struct snd_pcm_substream *); - void (*shutdown)(struct snd_pcm_substream *); - 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); +struct imx6_pm_base { + phys_addr_t pbase; + void *vbase; }; -struct snd_soc_compr_ops { - int (*startup)(struct snd_compr_stream *); - void (*shutdown)(struct snd_compr_stream *); - int (*set_params)(struct snd_compr_stream *); +struct imx6_cpu_pm_info { + phys_addr_t pbase; + phys_addr_t resume_addr; + u32 ddr_type; + u32 pm_info_size; + struct imx6_pm_base mmdc_base; + struct imx6_pm_base src_base; + struct imx6_pm_base iomuxc_base; + struct imx6_pm_base ccm_base; + struct imx6_pm_base gpc_base; + struct imx6_pm_base l2_base; + u32 mmdc_io_num; + u32 mmdc_io_val[66]; + long: 32; }; -struct snd_soc_codec_conf { - struct snd_soc_dai_link_component dlc; - const char *name_prefix; +struct ti_clk_ll_ops { + u32 (*clk_readl)(const struct clk_omap_reg *); + void (*clk_writel)(u32, const struct clk_omap_reg *); + void (*clk_rmw)(u32, u32, const struct clk_omap_reg *); + int (*clkdm_clk_enable)(struct clockdomain *, struct clk *); + int (*clkdm_clk_disable)(struct clockdomain *, struct clk *); + struct clockdomain * (*clkdm_lookup)(const char *); + int (*cm_wait_module_ready)(u8, s16, u16, u8); + int (*cm_split_idlest_reg)(struct clk_omap_reg *, s16 *, u8 *); }; -struct snd_soc_aux_dev { - struct snd_soc_dai_link_component dlc; - int (*init)(struct snd_soc_component *); +struct param_attribute { + struct module_attribute mattr; + const struct kernel_param *param; }; -struct snd_soc_dapm_route { - const char *sink; - const char *control; - const char *source; - int (*connected)(struct snd_soc_dapm_widget *, struct snd_soc_dapm_widget *); - struct snd_soc_dobj dobj; +struct module_param_attrs { + unsigned int num; + struct attribute_group grp; + struct param_attribute attrs[0]; }; -struct snd_soc_dapm_update { - struct snd_kcontrol *kcontrol; - int reg; - int mask; - int val; - int reg2; - int mask2; - int val2; - bool has_second_set; +enum { + KERNEL_PARAM_OPS_FL_NOARG = 1, }; -struct snd_soc_jack; +enum { + KERNEL_PARAM_FL_UNSAFE = 1, + KERNEL_PARAM_FL_HWPARAM = 2, +}; -struct snd_compress_ops; +struct kmalloced_param { + struct list_head list; + char val[0]; +}; -struct snd_soc_component_driver { - const char *name; - const struct snd_kcontrol_new *controls; - unsigned int num_controls; - const struct snd_soc_dapm_widget *dapm_widgets; - unsigned int num_dapm_widgets; - const struct snd_soc_dapm_route *dapm_routes; - unsigned int num_dapm_routes; - int (*probe)(struct snd_soc_component *); - void (*remove)(struct snd_soc_component *); - int (*suspend)(struct snd_soc_component *); - int (*resume)(struct snd_soc_component *); - unsigned int (*read)(struct snd_soc_component *, unsigned int); - int (*write)(struct snd_soc_component *, unsigned int, unsigned int); - int (*pcm_construct)(struct snd_soc_component *, struct snd_soc_pcm_runtime *); - void (*pcm_destruct)(struct snd_soc_component *, struct snd_pcm *); - int (*set_sysclk)(struct snd_soc_component *, int, int, unsigned int, int); - int (*set_pll)(struct snd_soc_component *, int, int, unsigned int, unsigned int); - int (*set_jack)(struct snd_soc_component *, struct snd_soc_jack *, void *); - int (*get_jack_type)(struct snd_soc_component *); - int (*of_xlate_dai_name)(struct snd_soc_component *, const struct of_phandle_args *, const char **); - int (*of_xlate_dai_id)(struct snd_soc_component *, struct device_node *); - void (*seq_notifier)(struct snd_soc_component *, enum snd_soc_dapm_type, int); - int (*stream_event)(struct snd_soc_component *, int); - int (*set_bias_level)(struct snd_soc_component *, enum snd_soc_bias_level); - int (*open)(struct snd_soc_component *, struct snd_pcm_substream *); - int (*close)(struct snd_soc_component *, struct snd_pcm_substream *); - int (*ioctl)(struct snd_soc_component *, struct snd_pcm_substream *, unsigned int, void *); - int (*hw_params)(struct snd_soc_component *, struct snd_pcm_substream *, struct snd_pcm_hw_params *); - int (*hw_free)(struct snd_soc_component *, struct snd_pcm_substream *); - int (*prepare)(struct snd_soc_component *, struct snd_pcm_substream *); - int (*trigger)(struct snd_soc_component *, struct snd_pcm_substream *, int); - int (*sync_stop)(struct snd_soc_component *, struct snd_pcm_substream *); - snd_pcm_uframes_t (*pointer)(struct snd_soc_component *, struct snd_pcm_substream *); - int (*get_time_info)(struct snd_soc_component *, struct snd_pcm_substream *, struct timespec64 *, struct timespec64 *, struct snd_pcm_audio_tstamp_config *, struct snd_pcm_audio_tstamp_report *); - int (*copy_user)(struct snd_soc_component *, struct snd_pcm_substream *, int, unsigned long, void __attribute__((btf_type_tag("user"))) *, unsigned long); - struct page * (*page)(struct snd_soc_component *, struct snd_pcm_substream *, unsigned long); - int (*mmap)(struct snd_soc_component *, struct snd_pcm_substream *, struct vm_area_struct *); - int (*ack)(struct snd_soc_component *, struct snd_pcm_substream *); - snd_pcm_sframes_t (*delay)(struct snd_soc_component *, struct snd_pcm_substream *); - const struct snd_compress_ops *compress_ops; - int probe_order; - int remove_order; - enum snd_soc_trigger_order trigger_start; - enum snd_soc_trigger_order trigger_stop; - unsigned int module_get_upon_open: 1; - unsigned int idle_bias_on: 1; - unsigned int suspend_bias_off: 1; - unsigned int use_pmdown_time: 1; - unsigned int endianness: 1; - unsigned int legacy_dai_naming: 1; - const char *ignore_machine; - const char *topology_name_prefix; - int (*be_hw_params_fixup)(struct snd_soc_pcm_runtime *, struct snd_pcm_hw_params *); - bool use_dai_pcm_id; - int be_pcm_base; - const char *debugfs_prefix; +struct rt_bandwidth { + raw_spinlock_t rt_runtime_lock; + long: 32; + ktime_t rt_period; + u64 rt_runtime; + struct hrtimer rt_period_timer; + unsigned int rt_period_active; + long: 32; }; -struct snd_jack; +enum dl_bw_request { + dl_bw_req_check_overflow = 0, + dl_bw_req_alloc = 1, + dl_bw_req_free = 2, +}; -struct snd_soc_jack { - struct mutex mutex; - struct snd_jack *jack; - struct snd_soc_card *card; - struct list_head pins; - int status; - struct blocking_notifier_head notifier; - struct list_head jack_zones; +enum s2idle_states { + S2IDLE_STATE_NONE = 0, + S2IDLE_STATE_ENTER = 1, + S2IDLE_STATE_WAKE = 2, }; -struct snd_compress_ops { - int (*open)(struct snd_soc_component *, struct snd_compr_stream *); - int (*free)(struct snd_soc_component *, struct snd_compr_stream *); - int (*set_params)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_params *); - int (*get_params)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_codec *); - int (*set_metadata)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_metadata *); - int (*get_metadata)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_metadata *); - int (*trigger)(struct snd_soc_component *, struct snd_compr_stream *, int); - int (*pointer)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_tstamp *); - int (*copy)(struct snd_soc_component *, struct snd_compr_stream *, char __attribute__((btf_type_tag("user"))) *, size_t); - int (*mmap)(struct snd_soc_component *, struct snd_compr_stream *, struct vm_area_struct *); - int (*ack)(struct snd_soc_component *, struct snd_compr_stream *, size_t); - int (*get_caps)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_caps *); - int (*get_codec_caps)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_codec_caps *); +struct idle_timer { + struct hrtimer timer; + int done; + long: 32; }; -struct tmds_config; +typedef struct rt_rq *rt_rq_iter_t; -struct tegra_hdmi_config { - const struct tmds_config *tmds; - unsigned int num_tmds; - unsigned long fuse_override_offset; - u32 fuse_override_value; - bool has_sor_io_peak_current; - bool has_hda; - bool has_hbr; -}; +struct k_itimer; -struct tmds_config { - unsigned int pclk; - u32 pll0; - u32 pll1; - u32 pe_current; - u32 drive_current; - u32 peak_current; -}; +struct itimerspec64; -enum { - AUTO = 0, - SPDIF = 1, - HDA = 2, +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 *); }; -struct tegra_hdmi { - struct host1x_client client; - struct tegra_output output; - struct device *dev; - struct regulator *hdmi; - struct regulator *pll; - struct regulator *vdd; - void *regs; - unsigned int irq; - struct clk *clk_parent; - struct clk *clk; - struct reset_control *rst; - const struct tegra_hdmi_config *config; - unsigned int audio_source; - struct tegra_hda_format format; - unsigned int pixel_clock; - bool stereo; - bool dvi; - struct drm_info_list *debugfs_files; - struct platform_device *audio_pdev; - struct mutex audio_lock; +enum alarmtimer_restart { + ALARMTIMER_NORESTART = 0, + ALARMTIMER_RESTART = 1, }; -struct tegra_hdmi_audio_config { - unsigned int n; - unsigned int cts; - unsigned int aval; +enum alarmtimer_type { + ALARM_REALTIME = 0, + ALARM_BOOTTIME = 1, + ALARM_NUMTYPE = 2, + ALARM_REALTIME_FREEZER = 3, + ALARM_BOOTTIME_FREEZER = 4, }; -struct hdmi_codec_pdata { - const struct hdmi_codec_ops *ops; - uint i2s: 1; - uint no_i2s_playback: 1; - uint no_i2s_capture: 1; - uint spdif: 1; - uint no_spdif_playback: 1; - uint no_spdif_capture: 1; - int max_i2s_channels; +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 stmpe_variant_block; - -struct stmpe_variant_info { - const char *name; - u16 id_val; - u16 id_mask; - int num_gpios; - int af_bits; - const u8 *regs; - struct stmpe_variant_block *blocks; - int num_blocks; - int num_irqs; - int (*enable)(struct stmpe *, unsigned int, bool); - int (*get_altfunc)(struct stmpe *, enum stmpe_block); - int (*enable_autosleep)(struct stmpe *, int); +struct cpu_timer { + struct timerqueue_node node; + struct timerqueue_head *head; + struct pid *pid; + struct list_head elist; + int firing; + struct task_struct __attribute__((btf_type_tag("rcu"))) *handling; }; -struct stmpe_variant_block { - const struct mfd_cell *cell; - int irq; - enum stmpe_block block; -}; +typedef __kernel_timer_t timer_t; -struct stmpe_client_info { - void *data; - int irq; - void *client; - struct device *dev; - int (*read_byte)(struct stmpe *, u8); - int (*write_byte)(struct stmpe *, u8, u8); - int (*read_block)(struct stmpe *, u8, u8, u8 *); - int (*write_block)(struct stmpe *, u8, u8, const u8 *); - void (*init)(struct stmpe *); +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; + long: 32; + 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; + long: 32; + union { + struct { + struct hrtimer timer; + } real; + struct cpu_timer cpu; + struct { + struct alarm alarmtimer; + } alarm; + } it; + struct callback_head rcu; }; -struct stmpe_platform_data { - int id; - unsigned int blocks; - unsigned int irq_trigger; - bool autosleep; - int autosleep_timeout; +struct itimerspec64 { + struct timespec64 it_interval; + struct timespec64 it_value; }; -enum { - STMPE_IDX_CHIP_ID = 0, - STMPE_IDX_SYS_CTRL = 1, - STMPE_IDX_SYS_CTRL2 = 2, - STMPE_IDX_ICR_LSB = 3, - STMPE_IDX_IER_LSB = 4, - STMPE_IDX_IER_MSB = 5, - STMPE_IDX_ISR_LSB = 6, - STMPE_IDX_ISR_MSB = 7, - STMPE_IDX_GPMR_LSB = 8, - STMPE_IDX_GPMR_CSB = 9, - STMPE_IDX_GPMR_MSB = 10, - STMPE_IDX_GPSR_LSB = 11, - STMPE_IDX_GPSR_CSB = 12, - STMPE_IDX_GPSR_MSB = 13, - STMPE_IDX_GPCR_LSB = 14, - STMPE_IDX_GPCR_CSB = 15, - STMPE_IDX_GPCR_MSB = 16, - STMPE_IDX_GPDR_LSB = 17, - STMPE_IDX_GPDR_CSB = 18, - STMPE_IDX_GPDR_MSB = 19, - STMPE_IDX_GPEDR_LSB = 20, - STMPE_IDX_GPEDR_CSB = 21, - STMPE_IDX_GPEDR_MSB = 22, - STMPE_IDX_GPRER_LSB = 23, - STMPE_IDX_GPRER_CSB = 24, - STMPE_IDX_GPRER_MSB = 25, - STMPE_IDX_GPFER_LSB = 26, - STMPE_IDX_GPFER_CSB = 27, - STMPE_IDX_GPFER_MSB = 28, - STMPE_IDX_GPPUR_LSB = 29, - STMPE_IDX_GPPDR_LSB = 30, - STMPE_IDX_GPAFR_U_MSB = 31, - STMPE_IDX_IEGPIOR_LSB = 32, - STMPE_IDX_IEGPIOR_CSB = 33, - STMPE_IDX_IEGPIOR_MSB = 34, - STMPE_IDX_ISGPIOR_LSB = 35, - STMPE_IDX_ISGPIOR_CSB = 36, - STMPE_IDX_ISGPIOR_MSB = 37, - STMPE_IDX_MAX = 38, +struct sigevent { + sigval_t sigev_value; + int sigev_signo; + int sigev_notify; + union { + int _pad[13]; + int _tid; + struct { + void (*_function)(sigval_t); + void *_attribute; + } _sigev_thread; + } _sigev_un; }; -enum as3711_su2_feedback { - AS3711_SU2_VOLTAGE = 0, - AS3711_SU2_CURR1 = 1, - AS3711_SU2_CURR2 = 2, - AS3711_SU2_CURR3 = 3, - AS3711_SU2_CURR_AUTO = 4, +struct __kernel_itimerspec { + struct __kernel_timespec it_interval; + struct __kernel_timespec it_value; }; -enum as3711_su2_fbprot { - AS3711_SU2_LX_SD4 = 0, - AS3711_SU2_GPIO2 = 1, - AS3711_SU2_GPIO3 = 2, - AS3711_SU2_GPIO4 = 3, +struct old_itimerspec32 { + struct old_timespec32 it_interval; + struct old_timespec32 it_value; }; -enum { - AS3711_REGULATOR = 0, - AS3711_BACKLIGHT = 1, +struct old_timeval32 { + old_time32_t tv_sec; + s32 tv_usec; }; -struct as3711_regulator_pdata { - struct regulator_init_data *init_data[12]; +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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct as3711_bl_pdata { - bool su1_fb; - int su1_max_uA; - bool su2_fb; - int su2_max_uA; - enum as3711_su2_feedback su2_feedback; - enum as3711_su2_fbprot su2_fbprot; - bool su2_auto_curr1; - bool su2_auto_curr2; - bool su2_auto_curr3; -}; +typedef struct sigevent sigevent_t; -struct as3711_platform_data { - struct as3711_regulator_pdata regulator; - struct as3711_bl_pdata backlight; +struct timezone { + int tz_minuteswest; + int tz_dsttime; }; -struct as3711 { - struct device *dev; - struct regmap *regmap; -}; +typedef void (*btf_trace_rpm_suspend)(void *, struct device *, int); -enum { - MTD_OPS_PLACE_OOB = 0, - MTD_OPS_AUTO_OOB = 1, - MTD_OPS_RAW = 2, -}; +typedef void (*btf_trace_rpm_resume)(void *, struct device *, int); -typedef s8 int8_t; +typedef void (*btf_trace_rpm_idle)(void *, struct device *, int); -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 e1000_mng_mode { - e1000_mng_mode_none = 0, - e1000_mng_mode_asf = 1, - e1000_mng_mode_pt = 2, - e1000_mng_mode_ipmi = 3, - e1000_mng_mode_host_if_only = 4, -}; - -struct e1000_host_mng_command_header { - u8 command_id; - u8 checksum; - u16 reserved1; - u16 reserved2; - u16 command_length; -}; - -struct mdiobb_ctrl; - -struct mdiobb_ops { - struct module *owner; - void (*set_mdc)(struct mdiobb_ctrl *, int); - void (*set_mdio_dir)(struct mdiobb_ctrl *, int); - void (*set_mdio_data)(struct mdiobb_ctrl *, int); - int (*get_mdio_data)(struct mdiobb_ctrl *); -}; - -struct mdiobb_ctrl { - const struct mdiobb_ops *ops; - unsigned int override_op_c22; - u8 op_c22_read; - u8 op_c22_write; -}; - -struct k3_mdio_soc_data { - bool manual_mode; -}; - -struct mdio_platform_data { - unsigned long bus_freq; -}; - -struct davinci_mdio_of_param { - int autosuspend_delay_ms; - bool manual_mode; -}; - -struct davinci_mdio_regs; - -struct davinci_mdio_data { - struct mdio_platform_data pdata; - struct mdiobb_ctrl bb_ctrl; - struct davinci_mdio_regs *regs; - struct clk *clk; - struct device *dev; - struct mii_bus *bus; - bool active_in_suspend; - unsigned long access_time; - bool skip_scan; - u32 clk_div; - bool manual_mode; -}; +typedef void (*btf_trace_rpm_usage)(void *, struct device *, int); -struct davinci_mdio_regs { - u32 version; - u32 control; - u32 alive; - u32 link; - u32 linkintraw; - u32 linkintmasked; - u32 __reserved_0[2]; - u32 userintraw; - u32 userintmasked; - u32 userintmaskset; - u32 userintmaskclr; - u32 manualif; - u32 poll; - u32 __reserved_1[18]; - struct { - u32 access; - u32 physel; - } user[0]; -}; +typedef void (*btf_trace_rpm_return_int)(void *, struct device *, unsigned long, int); -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 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 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 trace_event_raw_rpm_return_int { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long ip; + int ret; + char __data[0]; }; -struct netdev_lag_lower_state_info { - u8 link_up: 1; - u8 tx_enabled: 1; +struct trace_event_data_offsets_rpm_internal { + u32 name; }; -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; - long: 32; +struct trace_event_data_offsets_rpm_return_int { + u32 name; }; -struct dwc3_haps { - struct platform_device *dwc3; - struct pci_dev *pci; +enum { + BPF_RINGBUF_BUSY_BIT = 2147483648, + BPF_RINGBUF_DISCARD_BIT = 1073741824, + BPF_RINGBUF_HDR_SZ = 8, }; -struct usb_ehci_pdata { - int caps_offset; - unsigned int has_tt: 1; - unsigned int has_synopsys_hc_bug: 1; - unsigned int big_endian_desc: 1; - unsigned int big_endian_mmio: 1; - unsigned int no_io_watchdog: 1; - unsigned int reset_on_resume: 1; - unsigned int dma_mask_64: 1; - unsigned int spurious_oc: 1; - int (*power_on)(struct platform_device *); - void (*power_off)(struct platform_device *); - void (*power_suspend)(struct platform_device *); - int (*pre_setup)(struct usb_hcd *); +enum { + BPF_RB_NO_WAKEUP = 1, + BPF_RB_FORCE_WAKEUP = 2, }; -struct ehci_platform_priv { - struct clk *clks[4]; - struct reset_control *rsts; - bool reset_on_resume; - bool quirk_poll; - struct timer_list poll_timer; - struct delayed_work poll_work; +enum { + BPF_RB_AVAIL_DATA = 0, + BPF_RB_RING_SIZE = 1, + BPF_RB_CONS_POS = 2, + BPF_RB_PROD_POS = 3, }; -struct ci_hw_td { - __le32 next; - __le32 token; - __le32 page[5]; -}; +typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64); -struct ci_hw_qh { - __le32 cap; - __le32 curr; - struct ci_hw_td td; - __le32 RESERVED; - struct usb_ctrlrequest setup; -}; +typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64); -struct td_node { - struct list_head td; - dma_addr_t dma; - struct ci_hw_td *ptr; - int td_remaining_size; -}; +typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64); -struct tegra_rtc_info { - struct platform_device *pdev; - struct rtc_device *rtc; - void *base; - struct clk *clk; - int irq; - spinlock_t lock; -}; +typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); -struct sh_mobile_i2c_data; +typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); -struct sh_mobile_dt_config { - int clks_per_count; - int (*setup)(struct sh_mobile_i2c_data *); -}; +struct bpf_dynptr_kern; -typedef u16 u_int16_t; +typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); -struct sh_mobile_i2c_data { - struct device *dev; - void *reg; - struct i2c_adapter adap; - unsigned long bus_speed; - unsigned int clks_per_count; - struct clk *clk; - u_int8_t icic; - u_int8_t flags; - u_int16_t iccl; - u_int16_t icch; - spinlock_t lock; - wait_queue_head_t wait; - struct i2c_msg *msg; - int pos; - int sr; - bool send_stop; - bool stop_after_dma; - bool atomic_xfer; - struct resource *res; - struct dma_chan *dma_tx; - struct dma_chan *dma_rx; - struct scatterlist sg; - enum dma_data_direction dma_direction; - u8 *dma_buf; +struct bpf_dynptr_kern { + void *data; + u32 size; + u32 offset; long: 32; }; -enum sh_mobile_i2c_op { - OP_START = 0, - OP_TX_FIRST = 1, - OP_TX = 2, - OP_TX_STOP = 3, - OP_TX_TO_RX = 4, - OP_RX = 5, - OP_RX_STOP = 6, - OP_RX_STOP_DATA = 7, -}; - -struct sensor_device_attribute { - struct device_attribute dev_attr; - int index; -}; - -struct iio_hwmon_state { - struct iio_channel *channels; - int num_channels; - struct attribute_group attr_group; - const struct attribute_group *groups[2]; - struct attribute **attrs; -}; - -struct tsens_single_value { - u8 idx; - u8 shift; - u8 blob; -}; - -struct tsens_legacy_calibration_format { - unsigned int base_len; - unsigned int base_shift; - unsigned int sp_len; - struct tsens_single_value mode; - struct tsens_single_value invalid; - struct tsens_single_value base[2]; - struct tsens_single_value sp[0]; -}; - -struct aspeed_wdt_config { - u32 ext_pulse_width_mask; - u32 irq_shift; - u32 irq_mask; -}; - -struct aspeed_wdt { - struct watchdog_device wdd; - void *base; - u32 ctrl; - const struct aspeed_wdt_config *cfg; -}; - -struct mvsd_host { - void *base; - struct mmc_request *mrq; - spinlock_t lock; - unsigned int xfer_mode; - unsigned int intr_en; - unsigned int ctrl; - unsigned int pio_size; - void *pio_ptr; - unsigned int sg_frags; - unsigned int ns_per_clk; - unsigned int clock; - unsigned int base_clock; - struct timer_list timer; - struct mmc_host *mmc; - struct device *dev; - struct clk *clk; -}; - -struct cqhci_host_ops; - -struct cqhci_slot; - -struct cqhci_host { - const struct cqhci_host_ops *ops; - void *mmio; - struct mmc_host *mmc; - spinlock_t lock; - unsigned int rca; - bool dma64; - int num_slots; - int qcnt; - u32 dcmd_slot; - u32 caps; - u32 quirks; - bool enabled; - bool halted; - bool init_done; - bool activated; - bool waiting_for_idle; - bool recovery_halt; - size_t desc_size; - size_t data_size; - u8 *desc_base; - u8 slot_sz; - u8 task_desc_len; - u8 link_desc_len; - u8 *trans_desc_base; - u8 trans_desc_len; - dma_addr_t desc_dma_base; - dma_addr_t trans_desc_dma_base; - struct completion halt_comp; - wait_queue_head_t wait_queue; - struct cqhci_slot *slot; -}; - -struct cqhci_host_ops { - void (*dumpregs)(struct mmc_host *); - void (*write_l)(struct cqhci_host *, u32, int); - u32 (*read_l)(struct cqhci_host *, int); - void (*enable)(struct mmc_host *); - void (*disable)(struct mmc_host *, bool); - void (*update_dcmd_desc)(struct mmc_host *, struct mmc_request *, u64 *); - void (*pre_enable)(struct mmc_host *); - void (*post_disable)(struct mmc_host *); -}; - -struct cqhci_slot { - struct mmc_request *mrq; - unsigned int flags; -}; - -typedef unsigned long efi_status_t; - -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; -}; - -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 u16 efi_char16_t; - -typedef struct { - efi_guid_t guid; - u32 headersize; - u32 flags; - u32 imagesize; -} efi_capsule_header_t; - -struct omap_dm_timer_ops; - -struct dmtimer_platform_data { - int (*set_timer_src)(struct platform_device *, int); - u32 timer_capability; - u32 timer_errata; - int (*get_context_loss_count)(struct device *); - const struct omap_dm_timer_ops *timer_ops; -}; - -struct omap_dm_timer; - -struct omap_dm_timer_ops { - struct omap_dm_timer * (*request_by_node)(struct device_node *); - struct omap_dm_timer * (*request_specific)(int); - struct omap_dm_timer * (*request)(); - int (*free)(struct omap_dm_timer *); - void (*enable)(struct omap_dm_timer *); - void (*disable)(struct omap_dm_timer *); - int (*get_irq)(struct omap_dm_timer *); - int (*set_int_enable)(struct omap_dm_timer *, unsigned int); - int (*set_int_disable)(struct omap_dm_timer *, u32); - struct clk * (*get_fclk)(struct omap_dm_timer *); - int (*start)(struct omap_dm_timer *); - int (*stop)(struct omap_dm_timer *); - int (*set_source)(struct omap_dm_timer *, int); - int (*set_load)(struct omap_dm_timer *, unsigned int); - int (*set_match)(struct omap_dm_timer *, int, unsigned int); - int (*set_pwm)(struct omap_dm_timer *, int, int, int, int); - int (*get_pwm_status)(struct omap_dm_timer *); - int (*set_prescaler)(struct omap_dm_timer *, int); - unsigned int (*read_counter)(struct omap_dm_timer *); - int (*write_counter)(struct omap_dm_timer *, unsigned int); - unsigned int (*read_status)(struct omap_dm_timer *); - int (*write_status)(struct omap_dm_timer *, unsigned int); -}; - -struct omap_dm_timer {}; - -enum { - REQUEST_ANY = 0, - REQUEST_BY_ID = 1, - REQUEST_BY_CAP = 2, - REQUEST_BY_NODE = 3, -}; - -struct timer_regs { - u32 ocp_cfg; - u32 tidr; - u32 tier; - u32 twer; - u32 tclr; - u32 tcrr; - u32 tldr; - u32 ttrg; - u32 twps; - u32 tmar; - u32 tcar1; - u32 tsicr; - u32 tcar2; - u32 tpir; - u32 tnir; - u32 tcvr; - u32 tocr; - u32 towr; -}; +typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64); -struct dmtimer { - struct omap_dm_timer cookie; - int id; - int irq; - struct clk *fclk; - void *io_base; - int irq_stat; - int irq_ena; - int irq_dis; - void *pend; - void *func_base; - atomic_t enabled; - unsigned long rate; - unsigned int reserved: 1; - unsigned int posted: 1; - unsigned int omap1: 1; - struct timer_regs context; - int revision; - u32 capability; - u32 errata; - struct platform_device *pdev; - struct list_head node; - struct notifier_block nb; -}; +typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64); -struct of_bus { - const char *name; - const char *addresses; - int (*match)(struct device_node *); - void (*count_cells)(struct device_node *, int *, int *); - u64 (*map)(__be32 *, const __be32 *, int, int, int); - int (*translate)(__be32 *, u64, int); - bool has_flags; - unsigned int (*get_flags)(const __be32 *); -}; +typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64); -struct sun6i_msgbox { - struct mbox_controller controller; - struct clk *clk; - spinlock_t lock; - void *regs; +struct bpf_ringbuf { + wait_queue_head_t waitq; + struct irq_work work; + long: 32; + u64 mask; + struct page **pages; + int nr_pages; + long: 32; + long: 32; + long: 32; + long: 32; + spinlock_t spinlock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + atomic_t busy; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + unsigned long consumer_pos; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + unsigned long producer_pos; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; -}; - -struct iio_enum { - const char * const *items; - unsigned int num_items; - int (*set)(struct iio_dev *, const struct iio_chan_spec *, unsigned int); - int (*get)(struct iio_dev *, const struct iio_chan_spec *); -}; - -typedef const struct iio_mount_matrix *iio_get_mount_matrix_t(const struct iio_dev *, const struct iio_chan_spec *); - -struct iio_event_data { - __u64 id; - __s64 timestamp; -}; - -struct iio_event_interface { - wait_queue_head_t wait; long: 32; - struct { - union { - struct __kfifo kfifo; - struct iio_event_data *type; - const struct iio_event_data *const_type; - char (*rectype)[0]; - struct iio_event_data *ptr; - const struct iio_event_data *ptr_const; - }; - long: 32; - struct iio_event_data buf[16]; - } det_events; - struct list_head dev_attr_list; - unsigned long flags; - struct attribute_group group; - struct mutex read_lock; - struct iio_ioctl_handler ioctl_handler; -}; - -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 static_key_true { - struct static_key key; -}; - -enum flow_dissector_key_id { - FLOW_DISSECTOR_KEY_CONTROL = 0, - FLOW_DISSECTOR_KEY_BASIC = 1, - FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, - FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, - FLOW_DISSECTOR_KEY_PORTS = 4, - FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, - FLOW_DISSECTOR_KEY_ICMP = 6, - FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, - FLOW_DISSECTOR_KEY_TIPC = 8, - FLOW_DISSECTOR_KEY_ARP = 9, - FLOW_DISSECTOR_KEY_VLAN = 10, - FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, - FLOW_DISSECTOR_KEY_GRE_KEYID = 12, - FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, - FLOW_DISSECTOR_KEY_ENC_KEYID = 14, - FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, - FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, - FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, - FLOW_DISSECTOR_KEY_ENC_PORTS = 18, - FLOW_DISSECTOR_KEY_MPLS = 19, - FLOW_DISSECTOR_KEY_TCP = 20, - FLOW_DISSECTOR_KEY_IP = 21, - FLOW_DISSECTOR_KEY_CVLAN = 22, - FLOW_DISSECTOR_KEY_ENC_IP = 23, - FLOW_DISSECTOR_KEY_ENC_OPTS = 24, - FLOW_DISSECTOR_KEY_META = 25, - FLOW_DISSECTOR_KEY_CT = 26, - FLOW_DISSECTOR_KEY_HASH = 27, - FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28, - FLOW_DISSECTOR_KEY_PPPOE = 29, - FLOW_DISSECTOR_KEY_L2TPV3 = 30, - FLOW_DISSECTOR_KEY_CFM = 31, - FLOW_DISSECTOR_KEY_MAX = 32, -}; - -struct flow_dissector_key { - enum flow_dissector_key_id key_id; - size_t offset; -}; - -struct tcf_walker { - int stop; - int skip; - int count; - bool nonempty; - unsigned long cookie; - int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); -}; - -struct tcf_exts { - int action; - int police; -}; - -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, -}; - -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 metadata_type { - METADATA_IP_TUNNEL = 0, - METADATA_HW_PORT_MUX = 1, - METADATA_MACSEC = 2, - METADATA_XFRM = 3, -}; - -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 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; long: 32; - 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 mpls_label { - __be32 entry; -}; - -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_ip { - __u8 tos; - __u8 ttl; -}; - -struct batadv_unicast_packet { - __u8 packet_type; - __u8 version; - __u8 ttl; - __u8 ttvn; - __u8 dest[6]; -}; - -struct arphdr { - __be16 ar_hrd; - __be16 ar_pro; - unsigned char ar_hln; - unsigned char ar_pln; - __be16 ar_op; -}; - -struct flow_dissector_key_arp { - __u32 sip; - __u32 tip; - __u8 op; - unsigned char sha[6]; - unsigned char tha[6]; -}; - -struct tipc_basic_hdr { - __be32 w[4]; -}; - -struct flow_dissector_key_cfm { - u8 mdl_ver; - u8 opcode; -}; - -struct flow_dissector_key_tcp { - __be16 flags; -}; - -struct flow_dissector_key_l2tpv3 { - __be32 session_id; -}; - -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 flow_keys_basic { - struct flow_dissector_key_control control; - struct flow_dissector_key_basic basic; -}; - -struct flow_dissector_key_meta { - int ingress_ifindex; - u16 ingress_iftype; - u8 l2_miss; -}; - -struct flow_dissector_key_enc_opts { - u8 data[255]; - u8 len; - __be16 dst_opt_type; -}; - -struct flow_dissector_key_hash { - u32 hash; -}; - -struct bpf_flow_dissector { - struct bpf_flow_keys *flow_keys; - const struct sk_buff *skb; - const void *data; - const void *data_end; -}; - -struct hsr_tag { - __be16 path_and_LSDU_size; - __be16 sequence_nr; - __be16 encap_proto; -}; - -struct flow_dissector_key_eth_addrs { - unsigned char dst[6]; - unsigned char src[6]; -}; - -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_keys_digest { - u8 data[16]; -}; - -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; long: 32; -}; - -struct bpf_sk_lookup_kern { - u16 family; - u16 protocol; - __be16 sport; - u16 dport; - struct { - __be32 saddr; - __be32 daddr; - } v4; - struct { - const struct in6_addr *saddr; - const struct in6_addr *daddr; - } v6; - struct sock *selected_sk; - u32 ingress_ifindex; - bool no_reuseport; -}; - -struct 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 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; -}; - -enum { - INET_FRAG_FIRST_IN = 1, - INET_FRAG_LAST_IN = 2, - INET_FRAG_COMPLETE = 4, - INET_FRAG_HASH_DEAD = 8, - INET_FRAG_DROP = 16, -}; - -enum ip6_defrag_users { - IP6_DEFRAG_LOCAL_DELIVER = 0, - IP6_DEFRAG_CONNTRACK_IN = 1, - __IP6_DEFRAG_CONNTRACK_IN = 65536, - IP6_DEFRAG_CONNTRACK_OUT = 65537, - __IP6_DEFRAG_CONNTRACK_OUT = 131072, - IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 131073, - __IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 196608, -}; - -struct frag_queue { - struct inet_frag_queue q; - int iif; - __u16 nhoffset; - u8 ecn; -}; - -enum { - dns_key_data = 0, - dns_key_error = 1, -}; - -struct user_key_payload { - struct callback_head rcu; - unsigned short datalen; long: 32; - char data[0]; -}; - -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, -}; - -enum { - AFFINITY = 0, - AFFINITY_LIST = 1, - EFFECTIVE = 2, - EFFECTIVE_LIST = 3, -}; - -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 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; -}; - -enum kprobe_slot_state { - SLOT_CLEAN = 0, - SLOT_DIRTY = 1, - SLOT_USED = 2, -}; - -enum perf_record_ksymbol_type { - PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0, - PERF_RECORD_KSYMBOL_TYPE_BPF = 1, - PERF_RECORD_KSYMBOL_TYPE_OOL = 2, - PERF_RECORD_KSYMBOL_TYPE_MAX = 3, -}; - -struct kprobe_insn_page { - struct list_head list; - kprobe_opcode_t *insns; - struct kprobe_insn_cache *cache; - int nused; - int ngarbage; - char slot_used[0]; -}; - -struct arch_optimized_insn { - kprobe_opcode_t copied_insn[1]; - kprobe_opcode_t *insn; -}; - -struct optimized_kprobe { - struct kprobe kp; - struct list_head list; - struct arch_optimized_insn optinsn; -}; - -struct freelist_node { - atomic_t refs; - struct freelist_node *next; -}; - -struct kretprobe_holder; - -struct kretprobe_instance { - union { - struct freelist_node freelist; - struct callback_head rcu; - }; - struct llist_node llist; - struct kretprobe_holder *rph; - kprobe_opcode_t *ret_addr; - void *fp; - char data[0]; -}; - -struct kretprobe; - -struct kretprobe_holder { - struct kretprobe *rp; - refcount_t ref; -}; - -typedef int (*kretprobe_handler_t)(struct kretprobe_instance *, struct pt_regs *); - -struct freelist_head { - struct freelist_node *head; -}; - -struct kretprobe { - struct kprobe kp; - kretprobe_handler_t handler; - kretprobe_handler_t entry_handler; - int maxactive; - int nmissed; - size_t data_size; - struct freelist_head freelist; - struct kretprobe_holder *rph; -}; - -struct prev_kprobe { - struct kprobe *kp; - unsigned int status; -}; - -struct kprobe_ctlblk { - unsigned int kprobe_status; - struct prev_kprobe prev_kprobe; -}; - -struct kprobe_blacklist_entry { - struct list_head list; - unsigned long start_addr; - unsigned long end_addr; -}; - -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; -}; - -struct tree_descr { - const char *name; - const struct file_operations *ops; - int mode; -}; - -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 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; -}; - -typedef u32 uprobe_opcode_t; - -struct arch_uprobe { - u8 insn[4]; - unsigned long ixol[2]; - uprobe_opcode_t bpinsn; - bool simulate; - u32 pcreg; - void (*prehandler)(struct arch_uprobe *, struct arch_uprobe_task *, struct pt_regs *); - void (*posthandler)(struct arch_uprobe *, struct arch_uprobe_task *, struct pt_regs *); - struct arch_probes_insn asi; -}; - -struct uprobe_consumer; - -struct uprobe { - struct rb_node rb_node; - refcount_t ref; - struct rw_semaphore register_rwsem; - struct rw_semaphore consumer_rwsem; - struct list_head pending_list; - struct uprobe_consumer *consumers; - struct inode *inode; - loff_t offset; - loff_t ref_ctr_offset; - unsigned long flags; - struct arch_uprobe arch; long: 32; -}; - -enum uprobe_filter_ctx { - UPROBE_FILTER_REGISTER = 0, - UPROBE_FILTER_UNREGISTER = 1, - UPROBE_FILTER_MMAP = 2, -}; - -struct uprobe_consumer { - int (*handler)(struct uprobe_consumer *, struct pt_regs *); - int (*ret_handler)(struct uprobe_consumer *, unsigned long, struct pt_regs *); - bool (*filter)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); - struct uprobe_consumer *next; -}; - -enum rp_check { - RP_CHECK_CALL = 0, - RP_CHECK_CHAIN_CALL = 1, - RP_CHECK_RET = 2, -}; - -struct delayed_uprobe { - struct list_head list; - struct uprobe *uprobe; - struct mm_struct *mm; -}; - -struct __uprobe_key { - struct inode *inode; long: 32; - loff_t offset; -}; - -struct map_info___2 { - struct map_info___2 *next; - struct mm_struct *mm; - unsigned long vaddr; -}; - -struct anon_vma_name { - struct kref kref; - char name[0]; -}; - -struct char_device_struct { - struct char_device_struct *next; - unsigned int major; - unsigned int baseminor; - int minorct; - char name[64]; - struct cdev *cdev; -}; - -typedef struct kobject *kobj_probe_t(dev_t, int *, void *); - -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 seccomp_data { - int nr; - __u32 arch; - __u64 instruction_pointer; - __u64 args[6]; -}; - -struct syscall_info { - __u64 sp; - struct seccomp_data data; -}; - -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 criteria { - CR_POWER2_ALIGNED = 0, - CR_GOAL_LEN_FAST = 1, - CR_BEST_AVAIL_LEN = 2, - CR_GOAL_LEN_SLOW = 3, - CR_ANY_FREE = 4, - EXT4_MB_NUM_CRS = 5, -}; - -enum { - MB_INODE_PA = 0, - MB_GROUP_PA = 1, -}; - -enum blk_default_limits { - BLK_MAX_SEGMENTS = 128, - BLK_SAFE_MAX_SECTORS = 255, - BLK_MAX_SEGMENT_SIZE = 65536, - BLK_SEG_BOUNDARY_MASK = 4294967295, -}; - -struct ext4_free_data { - struct list_head efd_list; - struct rb_node efd_node; - ext4_group_t efd_group; - ext4_grpblk_t efd_start_cluster; - ext4_grpblk_t efd_count; - tid_t efd_tid; -}; - -struct ext4_prealloc_space { - union { - struct rb_node inode_node; - struct list_head lg_list; - } pa_node; - struct list_head pa_group_list; - union { - struct list_head pa_tmp_list; - struct callback_head pa_rcu; - } u; - spinlock_t pa_lock; - atomic_t pa_count; - unsigned int pa_deleted; - ext4_fsblk_t pa_pstart; - ext4_lblk_t pa_lstart; - ext4_grpblk_t pa_len; - ext4_grpblk_t pa_free; - unsigned short pa_type; - union { - rwlock_t *inode_lock; - spinlock_t *lg_lock; - } pa_node_lock; - struct inode *pa_inode; -}; - -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_allocation_request { - struct inode *inode; - unsigned int len; - ext4_lblk_t logical; - ext4_lblk_t lleft; - ext4_lblk_t lright; long: 32; - ext4_fsblk_t goal; - ext4_fsblk_t pleft; - ext4_fsblk_t pright; - unsigned int flags; long: 32; -}; - -struct ext4_free_extent { - ext4_lblk_t fe_logical; - ext4_grpblk_t fe_start; - ext4_group_t fe_group; - ext4_grpblk_t fe_len; -}; - -struct ext4_allocation_context { - struct inode *ac_inode; - struct super_block *ac_sb; - struct ext4_free_extent ac_o_ex; - struct ext4_free_extent ac_g_ex; - struct ext4_free_extent ac_b_ex; - struct ext4_free_extent ac_f_ex; - ext4_grpblk_t ac_orig_goal_len; - __u32 ac_groups_considered; - __u32 ac_flags; - __u16 ac_groups_scanned; - __u16 ac_groups_linear_remaining; - __u16 ac_found; - __u16 ac_cX_found[5]; - __u16 ac_tail; - __u16 ac_buddy; - __u8 ac_status; - __u8 ac_criteria; - __u8 ac_2order; - __u8 ac_op; - struct page *ac_bitmap_page; - struct page *ac_buddy_page; - struct ext4_prealloc_space *ac_pa; - struct ext4_locality_group *ac_lg; -}; - -typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); - -enum nfs3_ftype { - NF3NON = 0, - NF3REG = 1, - NF3DIR = 2, - NF3BLK = 3, - NF3CHR = 4, - NF3LNK = 5, - NF3SOCK = 6, - NF3FIFO = 7, - NF3BAD = 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 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; long: 32; - 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; long: 32; - __u64 cookie; - __be32 verf[2]; - bool plus; - unsigned int count; - struct page **pages; long: 32; -}; - -struct nfs3_readdirres { - struct nfs_fattr *dir_attr; - __be32 *verf; - bool plus; -}; - -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_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 nfs3_getaclargs { - struct nfs_fh *fh; - int mask; - struct page **pages; -}; - -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_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 ubifs_data_node { - struct ubifs_ch ch; - __u8 key[16]; - __le32 size; - __le16 compr_type; - __le16 compr_size; - __u8 data[0]; -}; - -enum pstore_type_id { - PSTORE_TYPE_DMESG = 0, - PSTORE_TYPE_MCE = 1, - PSTORE_TYPE_CONSOLE = 2, - PSTORE_TYPE_FTRACE = 3, - PSTORE_TYPE_PPC_RTAS = 4, - PSTORE_TYPE_PPC_OF = 5, - PSTORE_TYPE_PPC_COMMON = 6, - PSTORE_TYPE_PMSG = 7, - PSTORE_TYPE_PPC_OPAL = 8, - PSTORE_TYPE_MAX = 9, -}; - -struct persistent_ram_ecc_info { - int block_size; - int ecc_size; - int symsize; - int poly; - uint16_t *par; -}; - -struct persistent_ram_buffer; - -struct rs_control; - -struct persistent_ram_zone { - phys_addr_t paddr; - size_t size; - void *vaddr; - char *label; - enum pstore_type_id type; - u32 flags; - raw_spinlock_t buffer_lock; - struct persistent_ram_buffer *buffer; - size_t buffer_size; - char *par_buffer; - char *par_header; - struct rs_control *rs_decoder; - int corrected_bytes; - int bad_blocks; - struct persistent_ram_ecc_info ecc_info; - char *old_log; - size_t old_log_size; -}; - -struct persistent_ram_buffer { - uint32_t sig; - atomic_t start; - atomic_t size; - uint8_t data[0]; -}; - -struct rs_codec; - -struct rs_control { - struct rs_codec *codec; - uint16_t buffers[0]; -}; - -struct rs_codec { - int mm; - int nn; - uint16_t *alpha_to; - uint16_t *index_of; - uint16_t *genpoly; - int nroots; - int fcr; - int prim; - int iprim; - int gfpoly; - int (*gffunc)(int); - int users; - struct list_head list; -}; - -struct rsa_asn1_template { - const char *name; - const u8 *data; - size_t size; -}; - -struct pkcs1pad_inst_ctx { - struct crypto_akcipher_spawn spawn; - const struct rsa_asn1_template *digest_info; -}; - -struct pkcs1pad_ctx { - struct crypto_akcipher *child; - unsigned int key_size; -}; - -struct pkcs1pad_request { - struct scatterlist in_sg[2]; - struct scatterlist out_sg[1]; - uint8_t *in_buf; - uint8_t *out_buf; long: 32; long: 32; long: 32; @@ -86978,1827 +96071,18 @@ struct pkcs1pad_request { long: 32; long: 32; long: 32; - struct akcipher_request child_req; -}; - -enum { - BLK_MQ_REQ_NOWAIT = 1, - BLK_MQ_REQ_RESERVED = 2, - BLK_MQ_REQ_PM = 4, -}; - -enum { - sysctl_hung_task_timeout_secs = 0, -}; - -enum prep_dispatch { - PREP_DISPATCH_OK = 0, - PREP_DISPATCH_NO_TAG = 1, - PREP_DISPATCH_NO_BUDGET = 2, -}; - -enum { - HI_SOFTIRQ = 0, - TIMER_SOFTIRQ = 1, - NET_TX_SOFTIRQ = 2, - NET_RX_SOFTIRQ = 3, - BLOCK_SOFTIRQ = 4, - IRQ_POLL_SOFTIRQ = 5, - TASKLET_SOFTIRQ = 6, - SCHED_SOFTIRQ = 7, - HRTIMER_SOFTIRQ = 8, - RCU_SOFTIRQ = 9, - NR_SOFTIRQS = 10, -}; - -struct blk_mq_qe_pair { - struct list_head node; - struct request_queue *q; - struct elevator_type *type; -}; - -typedef bool busy_tag_iter_fn(struct request *, void *); - -typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); - -struct flush_busy_ctx_data { - struct blk_mq_hw_ctx *hctx; - struct list_head *list; -}; - -struct dispatch_rq_data { - struct blk_mq_hw_ctx *hctx; - struct request *rq; -}; - -struct softirq_action { - void (*action)(struct softirq_action *); -}; - -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 enum { - need_more = 0, - block_done = 1, - finish_started = 2, - finish_done = 3, -} block_state; - -typedef block_state (*compress_func)(deflate_state *, int); - -struct config_s { - ush good_length; - ush max_lazy; - ush nice_length; - ush max_chain; - compress_func func; -}; - -typedef struct config_s config; - -struct deflate_workspace { - deflate_state deflate_memory; - Byte *window_memory; - Pos *prev_memory; - Pos *head_memory; - char *overlay_memory; -}; - -typedef struct deflate_workspace deflate_workspace; - -typedef struct { - S16 norm[53]; - U32 wksp[285]; -} ZSTD_BuildCTableWksp; - -typedef struct { - size_t bitContainer; - unsigned int bitPos; - char *startPtr; - char *ptr; - char *endPtr; -} BIT_CStream_t; - -typedef ZSTD_ErrorCode ERR_enum; - -typedef uint64_t vli_type; - -struct xz_dec_hash { - vli_type unpadded; - vli_type uncompressed; - uint32_t crc32; long: 32; -}; - -enum xz_check { - XZ_CHECK_NONE = 0, - XZ_CHECK_CRC32 = 1, - XZ_CHECK_CRC64 = 4, - XZ_CHECK_SHA256 = 10, -}; - -struct xz_dec_lzma2; - -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; - long: 32; - } 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; - long: 32; - 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; long: 32; -}; - -typedef unsigned int USItype; - -enum dim_state { - DIM_START_MEASURE = 0, - DIM_MEASURE_IN_PROGRESS = 1, - DIM_APPLY_NEW_PROFILE = 2, -}; - -enum dim_tune_state { - DIM_PARKING_ON_TOP = 0, - DIM_PARKING_TIRED = 1, - DIM_GOING_RIGHT = 2, - DIM_GOING_LEFT = 3, -}; - -enum dim_stats_state { - DIM_STATS_WORSE = 0, - DIM_STATS_SAME = 1, - DIM_STATS_BETTER = 2, -}; - -enum dim_step_result { - DIM_STEPPED = 0, - DIM_TOO_TIRED = 1, - DIM_ON_EDGE = 2, -}; - -struct dim_sample { - ktime_t time; - u32 pkt_ctr; - u32 byte_ctr; - u16 event_ctr; - u32 comp_ctr; -}; - -struct dim_stats { - int ppms; - int bpms; - int epms; - int cpms; - int cpe_ratio; -}; - -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; long: 32; -}; - -struct font_data { - unsigned int extra[4]; - const unsigned char data[0]; -}; - -struct alpine_msix_data { - spinlock_t msi_map_lock; - phys_addr_t addr; - u32 spi_first; - u32 num_spis; - unsigned long *msi_map; -}; - -struct meson_gpio_irq_controller; - -struct irq_ctl_ops { - void (*gpio_irq_sel_pin)(struct meson_gpio_irq_controller *, unsigned int, unsigned long); - void (*gpio_irq_init)(struct meson_gpio_irq_controller *); - int (*gpio_irq_set_type)(struct meson_gpio_irq_controller *, unsigned int, u32 *); -}; - -struct meson_gpio_irq_params { - unsigned int nr_hwirq; - unsigned int nr_channels; - bool support_edge_both; - unsigned int edge_both_offset; - unsigned int edge_single_offset; - unsigned int pol_low_offset; - unsigned int pin_sel_mask; - struct irq_ctl_ops ops; -}; - -struct meson_gpio_irq_controller { - const struct meson_gpio_irq_params *params; - void *base; - u32 channel_irqs[64]; - unsigned long channel_map[2]; - spinlock_t lock; -}; - -struct sun4i_usb_phy_cfg { - int num_phys; - int hsic_index; - u32 disc_thresh; - u32 hci_phy_ctl_clear; - u8 phyctl_offset; - bool dedicated_clocks; - bool phy0_dual_route; - bool needs_phy2_siddq; - bool siddq_in_base; - bool poll_vbusen; - int missing_phys; -}; - -enum power_supply_notifier_events { - PSY_EVENT_PROP_CHANGED = 0, -}; - -struct sun4i_usb_phy { - struct phy *phy; - void *pmu; - struct regulator *vbus; - struct reset_control *reset; - struct clk *clk; - struct clk *clk2; - bool regulator_on; - int index; -}; - -struct sun4i_usb_phy_data { - void *base; - const struct sun4i_usb_phy_cfg *cfg; - enum usb_dr_mode dr_mode; - spinlock_t reg_lock; - struct sun4i_usb_phy phys[4]; - struct extcon_dev *extcon; - bool phy0_init; - struct gpio_desc *id_det_gpio; - struct gpio_desc *vbus_det_gpio; - struct power_supply *vbus_power_supply; - struct notifier_block vbus_power_nb; - bool vbus_power_nb_registered; - bool force_session_end; - int id_det_irq; - int vbus_det_irq; - int id_det; - int vbus_det; - struct delayed_work detect; -}; - -struct as3722_pin_function { - const char *name; - const char * const *groups; - unsigned int ngroups; - int mux_option; -}; - -struct as3722_pingroup { - const char *name; - const unsigned int pins[1]; - unsigned int npins; -}; - -struct as3722_gpio_pin_control { - unsigned int mode_prop; - int io_function; -}; - -struct as3722_pctrl_info { - struct device *dev; - struct pinctrl_dev *pctl; - struct as3722 *as3722; - struct gpio_chip gpio_chip; - int pins_current_opt[8]; - const struct as3722_pin_function *functions; - unsigned int num_functions; - const struct as3722_pingroup *pin_groups; - int num_pin_groups; - const struct pinctrl_pin_desc *pins; - unsigned int num_pins; - struct as3722_gpio_pin_control gpio_control[8]; -}; - -struct bcm4908_pinctrl_pin_setup; - -struct bcm4908_pinctrl_grp { - const char *name; - const struct bcm4908_pinctrl_pin_setup *pins; - const unsigned int num_pins; -}; - -struct bcm4908_pinctrl_pin_setup { - unsigned int number; - unsigned int function; -}; - -struct bcm4908_pinctrl_function { - const char *name; - const char * const *groups; - const unsigned int num_groups; -}; - -struct bcm4908_pinctrl { - struct device *dev; - void *base; - struct mutex mutex; - struct pinctrl_dev *pctldev; - struct pinctrl_desc pctldesc; -}; - -struct pm8xxx_mpp { - struct device *dev; - struct regmap *regmap; - struct pinctrl_dev *pctrl; - struct gpio_chip chip; - struct pinctrl_desc desc; - unsigned int npins; -}; - -struct pm8xxx_pin_data { - unsigned int reg; - u8 mode; - bool input; - bool output; - bool high_z; - bool paired; - bool output_value; - u8 power_source; - u8 dtest; - u8 amux; - u8 aout_level; - u8 drive_strength; - unsigned int pullup; -}; - -struct omap_gpio_reg_offs; - -struct omap_gpio_platform_data { - int bank_type; - int bank_width; - int bank_stride; - bool dbck_flag; - bool loses_context; - bool is_mpuio; - u32 non_wakeup_gpios; - const struct omap_gpio_reg_offs *regs; - int (*get_context_loss_count)(struct device *); -}; - -struct omap_gpio_reg_offs { - u16 revision; - u16 sysconfig; - u16 direction; - u16 datain; - u16 dataout; - u16 set_dataout; - u16 clr_dataout; - u16 irqstatus; - u16 irqstatus2; - u16 irqstatus_raw0; - u16 irqstatus_raw1; - u16 irqenable; - u16 irqenable2; - u16 set_irqenable; - u16 clr_irqenable; - u16 debounce; - u16 debounce_en; - u16 ctrl; - u16 wkup_en; - u16 leveldetect0; - u16 leveldetect1; - u16 risingdetect; - u16 fallingdetect; - u16 irqctrl; - u16 edgectrl1; - u16 edgectrl2; - u16 pinctrl; - bool irqenable_inv; -}; - -struct gpio_regs { - u32 sysconfig; - u32 irqenable1; - u32 irqenable2; - u32 wake_en; - u32 ctrl; - u32 oe; - u32 leveldetect0; - u32 leveldetect1; - u32 risingdetect; - u32 fallingdetect; - u32 dataout; - u32 debounce; - u32 debounce_en; -}; - -struct gpio_bank { - void *base; - const struct omap_gpio_reg_offs *regs; - struct device *dev; - int irq; - u32 non_wakeup_gpios; - u32 enabled_non_wakeup_gpios; - struct gpio_regs context; - u32 saved_datain; - u32 level_mask; - u32 toggle_mask; - raw_spinlock_t lock; - raw_spinlock_t wa_lock; - struct gpio_chip chip; - struct clk *dbck; - struct notifier_block nb; - unsigned int is_suspended: 1; - unsigned int needs_resume: 1; - u32 mod_usage; - u32 irq_usage; - u32 dbck_enable_mask; - bool dbck_enabled; - bool is_mpuio; - bool dbck_flag; - bool loses_context; - bool context_valid; - int stride; - u32 width; - int context_loss_count; - void (*set_dataout)(struct gpio_bank *, unsigned int, int); - int (*get_context_loss_count)(struct device *); -}; - -struct pci_bridge_reg_behavior { - u32 ro; - u32 rw; - u32 w1c; -}; - -struct dmt_videomode { - u32 dmt_id; - u32 std_2byte_code; - u32 cvt_3byte_code; - const struct fb_videomode *mode; -}; - -struct fb_modelist { - struct list_head list; - struct fb_videomode mode; -}; - -struct clk_fractional_divider { - struct clk_hw hw; - void *reg; - u8 mshift; - u8 mwidth; - u8 nshift; - u8 nwidth; - u8 flags; - void (*approximation)(struct clk_hw *, unsigned long, unsigned long *, unsigned long *, unsigned long *); - spinlock_t *lock; -}; - -struct u32_fract { - __u32 numerator; - __u32 denominator; -}; - -struct berlin2_pll_map { - const u8 vcodiv[16]; - u8 mult; - u8 fbdiv_shift; - u8 rfdiv_shift; - u8 divsel_shift; -}; - -struct berlin2_div_map { - u16 pll_select_offs; - u16 pll_switch_offs; - u16 div_select_offs; - u16 div_switch_offs; - u16 div3_switch_offs; - u16 gate_offs; - u8 pll_select_shift; - u8 pll_switch_shift; - u8 div_select_shift; - u8 div_switch_shift; - u8 div3_switch_shift; - u8 gate_shift; -}; - -struct berlin2_div_data { - const char *name; - const u8 *parent_ids; - int num_parents; - unsigned long flags; - struct berlin2_div_map map; - u8 div_flags; -}; - -struct berlin2_gate_data { - const char *name; - const char *parent_name; - u8 bit_idx; - unsigned long flags; -}; - -enum { - REFCLK = 0, - VIDEO_EXT0 = 1, - SYSPLL = 2, - MEMPLL = 3, - CPUPLL = 4, - AVPLL_A1 = 5, - AVPLL_A2 = 6, - AVPLL_A3 = 7, - AVPLL_A4 = 8, - AVPLL_A5 = 9, - AVPLL_A6 = 10, - AVPLL_A7 = 11, - AVPLL_A8 = 12, - AVPLL_B1 = 13, - AVPLL_B2 = 14, - AVPLL_B3 = 15, - AVPLL_B4 = 16, - AVPLL_B5 = 17, - AVPLL_B6 = 18, - AVPLL_B7 = 19, - AVPLL_B8 = 20, - AUDIO1_PLL = 21, - AUDIO_FAST_PLL = 22, - VIDEO0_PLL = 23, - VIDEO0_IN = 24, - VIDEO1_PLL = 25, - VIDEO1_IN = 26, - VIDEO2_PLL = 27, - VIDEO2_IN = 28, -}; - -struct clk_regmap_gate_data { - unsigned int offset; - u8 bit_idx; - u8 flags; -}; - -struct clk_regmap_div_data { - unsigned int offset; - u8 shift; - u8 width; - u8 flags; - const struct clk_div_table *table; -}; - -struct clk_regmap_mux_data { - unsigned int offset; - u32 *table; - u32 mask; - u8 shift; - u8 flags; -}; - -struct mmp_clk_reset_unit { - struct reset_controller_dev rcdev; - struct mmp_clk_reset_cell *cells; -}; - -struct clk_dyn_rcg { - u32 ns_reg[2]; - u32 md_reg[2]; - u32 bank_reg; - u8 mux_sel_bit; - struct mn mn[2]; - struct pre_div p[2]; - struct src_sel s[2]; - const struct freq_tbl *freq_tbl; - struct clk_regmap clkr; -}; - -struct _ccu_nkm { - unsigned long n; - unsigned long min_n; - unsigned long max_n; - unsigned long k; - unsigned long min_k; - unsigned long max_k; - unsigned long m; - unsigned long min_m; - unsigned long max_m; -}; - -struct tegra_clk_sync_source { - struct clk_hw hw; - unsigned long rate; - unsigned long max_rate; -}; - -struct tegra_clk_periph_regs; - -struct tegra_clk_periph_gate { - u32 magic; - struct clk_hw hw; - void *clk_base; - u8 flags; - int clk_num; - int *enable_refcnt; - const struct tegra_clk_periph_regs *regs; -}; - -struct tegra_sdmmc_mux { - struct clk_hw hw; - void *reg; - spinlock_t *lock; - const struct clk_ops *gate_ops; - struct tegra_clk_periph_gate gate; - u8 div_flags; -}; - -struct tegra_clk_periph_regs { - u32 enb_reg; - u32 enb_set_reg; - u32 enb_clr_reg; - u32 rst_reg; - u32 rst_set_reg; - u32 rst_clr_reg; -}; - -enum { - DOWN = 0, - UP = 1, -}; - -struct uniphier_clk_cpugear { - struct clk_hw hw; - struct regmap *regmap; - unsigned int regbase; - unsigned int mask; -}; - -enum mv_xor_type { - XOR_ORION = 0, - XOR_ARMADA_38X = 1, - XOR_ARMADA_37XX = 2, -}; - -enum mv_xor_mode { - XOR_MODE_IN_REG = 0, - XOR_MODE_IN_DESC = 1, -}; - -struct mv_xor_device; - -struct mv_xor_chan { - int pending; - spinlock_t lock; - void *mmr_base; - void *mmr_high_base; - unsigned int idx; - int irq; - struct list_head chain; - struct list_head free_slots; - struct list_head allocated_slots; - struct list_head completed_slots; - dma_addr_t dma_desc_pool; - void *dma_desc_pool_virt; - size_t pool_size; - struct dma_device dmadev; - struct dma_chan dmachan; - int slots_allocated; - struct tasklet_struct irq_tasklet; - int op_in_desc; - char dummy_src[128]; - char dummy_dst[128]; - dma_addr_t dummy_src_addr; - dma_addr_t dummy_dst_addr; - u32 saved_config_reg; - u32 saved_int_mask_reg; - struct mv_xor_device *xordev; -}; - -struct mv_xor_device { - void *xor_base; - void *xor_high_base; - struct clk *clk; - struct mv_xor_chan *channels[2]; - int xor_type; - u32 win_start[8]; - u32 win_end[8]; -}; - -struct mv_xor_desc_slot { - struct list_head node; - struct list_head sg_tx_list; - enum dma_transaction_type type; - void *hw_desc; - u16 idx; - struct dma_async_tx_descriptor async_tx; -}; - -struct mv_xor_desc { - u32 status; - u32 crc32_result; - u32 desc_command; - u32 phy_next_desc; - u32 byte_count; - u32 phy_dest_addr; - u32 phy_src_addr[8]; - u32 reserved0; - u32 reserved1; -}; - -struct mv_xor_channel_data; - -struct mv_xor_platform_data { - struct mv_xor_channel_data *channels; -}; - -struct mv_xor_channel_data { - dma_cap_mask_t cap_mask; -}; - -struct cpr_desc; - -struct acc_desc; - -struct cpr_acc_desc { - const struct cpr_desc *cpr_desc; - const struct acc_desc *acc_desc; -}; - -struct fuse_corner_data; - -struct cpr_fuses { - int init_voltage_step; - int init_voltage_width; - struct fuse_corner_data *fuse_corner_data; -}; - -struct cpr_desc { - unsigned int num_fuse_corners; - int min_diff_quot; - int *step_quot; - unsigned int timer_delay_us; - unsigned int timer_cons_up; - unsigned int timer_cons_down; - unsigned int up_threshold; - unsigned int down_threshold; - unsigned int idle_clocks; - unsigned int gcnt_us; - unsigned int vdd_apc_step_up_limit; - unsigned int vdd_apc_step_down_limit; - unsigned int clamp_timer_interval; - struct cpr_fuses cpr_fuses; - bool reduce_to_fuse_uV; - bool reduce_to_corner_uV; -}; - -struct fuse_corner_data { - int ref_uV; - int max_uV; - int min_uV; - int max_volt_scale; - int max_quot_scale; - int quot_offset; - int quot_scale; - int quot_adjust; - int quot_offset_scale; - int quot_offset_adjust; -}; - -struct acc_desc { - unsigned int enable_reg; - u32 enable_mask; - struct reg_sequence *config; - struct reg_sequence *settings; - int num_regs_per_fuse; -}; - -enum voltage_change_dir { - NO_CHANGE = 0, - DOWN___2 = 1, - UP___2 = 2, -}; - -struct corner; - -struct fuse_corner; - -struct cpr_fuse; - -struct cpr_drv { - unsigned int num_corners; - unsigned int ref_clk_khz; - struct generic_pm_domain pd; - struct device *dev; - struct device *attached_cpu_dev; - struct mutex lock; - void *base; - struct corner *corner; - struct regulator *vdd_apc; - struct clk *cpu_clk; - struct regmap *tcsr; - bool loop_disabled; - u32 gcnt; - unsigned long flags; - struct fuse_corner *fuse_corners; - struct corner *corners; - const struct cpr_desc *desc; - const struct acc_desc *acc_desc; - const struct cpr_fuse *cpr_fuses; - struct dentry *debugfs; long: 32; -}; - -struct corner { - int min_uV; - int max_uV; - int uV; - int last_uV; - int quot_adjust; - u32 save_ctl; - u32 save_irq; - unsigned long freq; - struct fuse_corner *fuse_corner; -}; - -struct fuse_corner { - int min_uV; - int max_uV; - int uV; - int quot; - int step_quot; - const struct reg_sequence *accs; - int num_accs; - unsigned long max_freq; - u8 ring_osc_idx; -}; - -struct cpr_fuse { - char *ring_osc; - char *init_voltage; - char *quotient; - char *quotient_offset; -}; - -struct corner_data { - unsigned int fuse_corner; - unsigned long freq; -}; - -struct as3722_register_mapping { - u8 regulator_id; - const char *name; - const char *sname; - u8 vsel_reg; - u8 vsel_mask; - int n_voltages; - u32 enable_reg; - u8 enable_mask; - u32 control_reg; - u8 mode_mask; - u32 sleep_ctrl_reg; - u8 sleep_ctrl_mask; -}; - -enum as3722_regulators_id { - AS3722_REGULATOR_ID_SD0 = 0, - AS3722_REGULATOR_ID_SD1 = 1, - AS3722_REGULATOR_ID_SD2 = 2, - AS3722_REGULATOR_ID_SD3 = 3, - AS3722_REGULATOR_ID_SD4 = 4, - AS3722_REGULATOR_ID_SD5 = 5, - AS3722_REGULATOR_ID_SD6 = 6, - AS3722_REGULATOR_ID_LDO0 = 7, - AS3722_REGULATOR_ID_LDO1 = 8, - AS3722_REGULATOR_ID_LDO2 = 9, - AS3722_REGULATOR_ID_LDO3 = 10, - AS3722_REGULATOR_ID_LDO4 = 11, - AS3722_REGULATOR_ID_LDO5 = 12, - AS3722_REGULATOR_ID_LDO6 = 13, - AS3722_REGULATOR_ID_LDO7 = 14, - AS3722_REGULATOR_ID_LDO9 = 15, - AS3722_REGULATOR_ID_LDO10 = 16, - AS3722_REGULATOR_ID_LDO11 = 17, - AS3722_REGULATOR_ID_MAX = 18, -}; - -struct as3722_regulator_config_data { - struct regulator_init_data *reg_init; - bool enable_tracking; - int ext_control; -}; - -struct as3722_regulators { - struct device *dev; - struct as3722 *as3722; - struct regulator_desc desc[18]; - struct as3722_regulator_config_data reg_config_data[18]; -}; - -struct reset_control { - struct reset_controller_dev *rcdev; - struct list_head list; - unsigned int id; - struct kref refcnt; - bool acquired; - bool shared; - bool array; - atomic_t deassert_count; - atomic_t triggered_count; -}; - -struct reset_control_array { - struct reset_control base; - unsigned int num_rstcs; - struct reset_control *rstc[0]; -}; - -struct reset_control_lookup { - struct list_head list; - const char *provider; - unsigned int index; - const char *dev_id; - const char *con_id; -}; - -struct reset_control_bulk_devres { - int num_rstcs; - struct reset_control_bulk_data *rstcs; -}; - -struct dw8250_platform_data { - u8 usr_reg; - u32 cpr_val; - unsigned int quirks; -}; - -struct dw8250_port_data { - int line; - struct uart_8250_dma dma; - u8 dlf_size; - bool hw_rs485_support; -}; - -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 omap_rom_rng { - struct clk *clk; - struct device *dev; - struct hwrng ops; - u32 (*rom_rng_call)(u32, u32, u32); -}; - -enum qcom_iommu_clk { - CLK_IFACE = 0, - CLK_BUS = 1, - CLK_TBU = 2, - CLK_NUM = 3, -}; - -struct qcom_iommu_dev; - -struct qcom_iommu_domain { - struct io_pgtable_ops *pgtbl_ops; - spinlock_t pgtbl_lock; - struct mutex init_mutex; - struct iommu_domain domain; - struct qcom_iommu_dev *iommu; - struct iommu_fwspec *fwspec; -}; - -struct qcom_iommu_ctx; - -struct qcom_iommu_dev { - struct iommu_device iommu; - struct device *dev; - struct clk_bulk_data clks[3]; - void *local_base; - u32 sec_id; - u8 num_ctxs; - struct qcom_iommu_ctx *ctxs[0]; -}; - -struct qcom_iommu_ctx { - struct device *dev; - void *base; - bool secure_init; - u8 asid; - struct iommu_domain *domain; -}; - -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_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 mipi_dphy_timing { - unsigned int clkmiss; - unsigned int clkpost; - unsigned int clkpre; - unsigned int clkprepare; - unsigned int clksettle; - unsigned int clktermen; - unsigned int clktrail; - unsigned int clkzero; - unsigned int dtermen; - unsigned int eot; - unsigned int hsexit; - unsigned int hsprepare; - unsigned int hszero; - unsigned int hssettle; - unsigned int hsskip; - unsigned int hstrail; - unsigned int init; - unsigned int lpx; - unsigned int taget; - unsigned int tago; - unsigned int tasure; - unsigned int wakeup; -}; - -struct mipi_dsi_host; - -struct mipi_dsi_device; - -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_host { - struct device *dev; - const struct mipi_dsi_host_ops *ops; - struct list_head list; -}; - -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, -}; - -struct drm_dsc_config; - -struct mipi_dsi_device { - struct mipi_dsi_host *host; long: 32; - 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_msg { - u8 channel; - u8 type; - u16 flags; - size_t tx_len; - const void *tx_buf; - size_t rx_len; - void *rx_buf; -}; - -enum { - MIPI_DSI_RX_ACKNOWLEDGE_AND_ERROR_REPORT = 2, - MIPI_DSI_RX_END_OF_TRANSMISSION = 8, - MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_1BYTE = 17, - MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_2BYTE = 18, - MIPI_DSI_RX_GENERIC_LONG_READ_RESPONSE = 26, - MIPI_DSI_RX_DCS_LONG_READ_RESPONSE = 28, - MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_1BYTE = 33, - MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_2BYTE = 34, -}; - -enum tegra_dsi_format { - TEGRA_DSI_FORMAT_16P = 0, - TEGRA_DSI_FORMAT_18NP = 1, - TEGRA_DSI_FORMAT_18P = 2, - TEGRA_DSI_FORMAT_24P = 3, -}; - -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, -}; - -struct tegra_mipi_device; - -struct tegra_dsi { - struct host1x_client client; - struct tegra_output output; - struct device *dev; - void *regs; - struct reset_control *rst; - struct clk *clk_parent; - struct clk *clk_lp; - struct clk *clk; - struct drm_info_list *debugfs_files; - unsigned long flags; - enum mipi_dsi_pixel_format format; - unsigned int lanes; - struct tegra_mipi_device *mipi; - struct mipi_dsi_host host; - struct regulator *vdd; - unsigned int video_fifo_depth; - unsigned int host_fifo_depth; - struct tegra_dsi *master; - struct tegra_dsi *slave; -}; - -struct tegra_dsi_state { - struct drm_connector_state base; - struct mipi_dphy_timing timing; - unsigned long period; - unsigned int vrefresh; - unsigned int lanes; - unsigned long pclk; - unsigned long bclk; - enum tegra_dsi_format format; - unsigned int mul; - unsigned int div; -}; - -struct mipi_dsi_packet { - size_t size; - u8 header[4]; - size_t payload_length; - const u8 *payload; -}; - -struct class_attribute { - struct attribute attr; - ssize_t (*show)(const struct class *, const struct class_attribute *, char *); - ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t); -}; - -struct devcd_entry { - struct device devcd_dev; - void *data; - size_t datalen; - struct mutex mutex; - bool delete_work; - struct module *owner; - ssize_t (*read)(char *, loff_t, size_t, void *, size_t); - void (*free)(void *); - struct delayed_work del_wk; - struct device *failing_dev; long: 32; -}; - -struct sunxi_rsb_device; - -struct sunxi_rsb_driver { - struct device_driver driver; - int (*probe)(struct sunxi_rsb_device *); - void (*remove)(struct sunxi_rsb_device *); -}; - -struct sunxi_rsb; - -struct sunxi_rsb_device { - struct device dev; - struct sunxi_rsb *rsb; - int irq; - u8 rtaddr; - u16 hwaddr; long: 32; -}; - -struct usbtll_omap { - void *base; - int nch; - struct clk *ch_clk[0]; -}; - -struct rk8xx_i2c_platform_data { - const struct regmap_config *regmap_cfg; - int variant; -}; - -enum ata_link_iter_mode { - ATA_LITER_EDGE = 0, - ATA_LITER_HOST_FIRST = 1, - ATA_LITER_PMP_FIRST = 2, -}; - -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 ata_dev_iter_mode { - ATA_DITER_ENABLED = 0, - ATA_DITER_ENABLED_REVERSE = 1, - ATA_DITER_ALL = 2, - ATA_DITER_ALL_REVERSE = 3, -}; - -enum stm32_fmc2_ecc { - FMC2_ECC_HAM = 1, - FMC2_ECC_BCH4 = 4, - FMC2_ECC_BCH8 = 8, -}; - -enum stm32_fmc2_irq_state { - FMC2_IRQ_UNKNOWN = 0, - FMC2_IRQ_BCH = 1, - FMC2_IRQ_SEQ = 2, -}; - -struct stm32_fmc2_timings { - u8 tclr; - u8 tar; - u8 thiz; - u8 twait; - u8 thold_mem; - u8 tset_mem; - u8 thold_att; - u8 tset_att; -}; - -struct stm32_fmc2_nand { - struct nand_chip chip; - struct gpio_desc *wp_gpio; - struct stm32_fmc2_timings timings; - int ncs; - int cs_used[2]; -}; - -struct stm32_fmc2_nfc { - struct nand_controller base; long: 32; - struct stm32_fmc2_nand nand; - struct device *dev; - struct device *cdev; - struct regmap *regmap; - void *data_base[2]; - void *cmd_base[2]; - void *addr_base[2]; - phys_addr_t io_phys_addr; - phys_addr_t data_phys_addr[2]; - struct clk *clk; - u8 irq_state; - struct dma_chan *dma_tx_ch; - struct dma_chan *dma_rx_ch; - struct dma_chan *dma_ecc_ch; - struct sg_table dma_data_sg; - struct sg_table dma_ecc_sg; - u8 *ecc_buf; - int dma_ecc_len; - struct completion complete; - struct completion dma_data_complete; - struct completion dma_ecc_complete; - u8 cs_assigned; - int cs_sel; long: 32; -}; - -struct nand_flash_dev { - char *name; - union { - struct { - uint8_t mfr_id; - uint8_t dev_id; - }; - uint8_t id[8]; - }; - unsigned int pagesize; - unsigned int chipsize; - unsigned int erasesize; - unsigned int options; - uint16_t id_len; - uint16_t oobsize; - struct { - uint16_t strength_ds; - uint16_t step_ds; - } ecc; -}; - -struct stm32_qspi_flash { - u32 cs; - u32 presc; -}; - -struct stm32_qspi { - struct device *dev; - struct spi_controller *ctrl; - phys_addr_t phys_base; - void *io_base; - void *mm_base; - resource_size_t mm_size; - struct clk *clk; - u32 clk_rate; - struct stm32_qspi_flash flash[2]; - struct completion data_completion; - struct completion match_completion; - u32 fmode; - struct dma_chan *dma_chtx; - struct dma_chan *dma_chrx; - struct completion dma_completion; - u32 cr_reg; - u32 dcr_reg; - unsigned long status_timeout; - struct mutex lock; -}; - -struct mdio_regmap_config { - struct device *parent; - struct regmap *regmap; - char name[61]; - u8 valid_addr; - bool autoscan; -}; - -struct mdio_regmap_priv { - struct regmap *regmap; - u8 valid_addr; -}; - -enum can_termination_gpio { - CAN_TERMINATION_GPIO_DISABLED = 0, - CAN_TERMINATION_GPIO_ENABLED = 1, - CAN_TERMINATION_GPIO_MAX = 2, -}; - -struct smsc75xx_priv { - struct usbnet *dev; - u32 rfe_ctl; - u32 wolopts; - u32 multicast_hash_table[16]; - struct mutex dataport_mutex; - spinlock_t rfe_ctl_lock; - struct work_struct set_multicast; - u8 suspend_flags; -}; - -struct ohci_at91_priv { - struct clk *iclk; - struct clk *fclk; - struct clk *hclk; - bool clocked; - bool wakeup; - struct regmap *sfr_regmap; - u32 suspend_smc_id; -}; - -struct at91_usbh_data { - struct gpio_desc *vbus_pin[3]; - struct gpio_desc *overcurrent_pin[3]; - u8 ports; - u8 overcurrent_supported; - u8 overcurrent_status[3]; - u8 overcurrent_changed[3]; -}; - -struct ci_hdrc_pci { - struct platform_device *ci; - struct platform_device *phy; -}; - -struct spear_kbd { - struct input_dev *input; - void *io_base; - struct clk *clk; - unsigned int irq; - unsigned int mode; - unsigned int suspended_rate; - unsigned short last_key; - unsigned short keycodes[256]; - bool rep; - bool irq_wake_enabled; - u32 mode_ctl_reg; -}; - -struct kbd_platform_data { - const struct matrix_keymap_data *keymap; - bool rep; - unsigned int mode; - unsigned int suspended_rate; -}; - -struct rtc_plat_data { - struct rtc_device *rtc; - void *ioaddr; - int irq; - struct clk *clk; -}; - -enum imx_i2c_type { - IMX1_I2C = 0, - IMX21_I2C = 1, - VF610_I2C = 2, -}; - -struct imx_i2c_clk_pair; - -struct imx_i2c_hwdata { - enum imx_i2c_type devtype; - unsigned int regshift; - struct imx_i2c_clk_pair *clk_div; - unsigned int ndivs; - unsigned int i2sr_clr_opcode; - unsigned int i2cr_ien_opcode; - bool has_err007805; -}; - -struct imx_i2c_clk_pair { - u16 div; - u16 val; -}; - -struct imx_i2c_dma; - -struct imx_i2c_struct { - struct i2c_adapter adapter; - struct clk *clk; - struct notifier_block clk_change_nb; - void *base; - wait_queue_head_t queue; - unsigned long i2csr; - unsigned int disable_delay; - int stopped; - unsigned int ifdr; - unsigned int cur_clk; - unsigned int bitrate; - const struct imx_i2c_hwdata *hwdata; - struct i2c_bus_recovery_info rinfo; - struct pinctrl *pinctrl; - struct pinctrl_state *pinctrl_pins_default; - struct pinctrl_state *pinctrl_pins_gpio; - struct imx_i2c_dma *dma; - struct i2c_client *slave; - enum i2c_slave_event last_slave_event; - spinlock_t slave_lock; long: 32; - struct hrtimer slave_timer; -}; - -struct imx_i2c_dma { - struct dma_chan *chan_tx; - struct dma_chan *chan_rx; - struct dma_chan *chan_using; - struct completion cmd_complete; - dma_addr_t dma_buf; - unsigned int dma_len; - enum dma_transfer_direction dma_transfer_dir; - enum dma_data_direction dma_data_dir; -}; - -struct imxi2c_platform_data { - u32 bitrate; -}; - -struct ptp_dte { - void *regs; - struct ptp_clock *ptp_clk; - struct ptp_clock_info caps; - struct device *dev; - u32 ts_ovf_last; - u32 ts_wrap_cnt; - spinlock_t lock; - u32 reg_val[4]; -}; - -enum soc_type { - SOC_ARCH_EXYNOS3250 = 1, - SOC_ARCH_EXYNOS4210 = 2, - SOC_ARCH_EXYNOS4412 = 3, - SOC_ARCH_EXYNOS5250 = 4, - SOC_ARCH_EXYNOS5260 = 5, - SOC_ARCH_EXYNOS5420 = 6, - SOC_ARCH_EXYNOS5420_TRIMINFO = 7, - SOC_ARCH_EXYNOS5433 = 8, - SOC_ARCH_EXYNOS7 = 9, -}; - -struct exynos_tmu_data { - int id; - void *base; - void *base_second; - int irq; - enum soc_type soc; - struct work_struct irq_work; - struct mutex lock; - struct clk *clk; - struct clk *clk_sec; - struct clk *sclk; - u32 cal_type; - u32 efuse_value; - u32 min_efuse_value; - u32 max_efuse_value; - u16 temp_error1; - u16 temp_error2; - u8 gain; - u8 reference_voltage; - struct regulator *regulator; - struct thermal_zone_device *tzd; - unsigned int ntrip; - bool enabled; - void (*tmu_set_trip_temp)(struct exynos_tmu_data *, int, u8); - void (*tmu_set_trip_hyst)(struct exynos_tmu_data *, int, u8, u8); - void (*tmu_initialize)(struct platform_device *); - void (*tmu_control)(struct platform_device *, bool); - int (*tmu_read)(struct exynos_tmu_data *); - void (*tmu_set_emulation)(struct exynos_tmu_data *, int); - void (*tmu_clear_irqs)(struct exynos_tmu_data *); -}; - -enum IMX6_CPUFREQ_CLKS { - ARM = 0, - PLL1_SYS = 1, - STEP = 2, - PLL1_SW = 3, - PLL2_PFD2_396M = 4, - PLL2_BUS = 5, - SECONDARY_SEL = 6, -}; - -enum led_default_state { - LEDS_DEFSTATE_OFF = 0, - LEDS_DEFSTATE_ON = 1, - LEDS_DEFSTATE_KEEP = 2, -}; - -struct led_pwm_data { - struct led_classdev cdev; - struct pwm_device *pwm; - struct pwm_state pwmstate; - unsigned int active_low; long: 32; -}; - -struct led_pwm_priv { - int num_leds; long: 32; - struct led_pwm_data leds[0]; -}; - -struct led_pwm { - const char *name; - u8 active_low; - u8 default_state; - unsigned int max_brightness; -}; - -enum scmi_system_protocol_cmd { - SYSTEM_POWER_STATE_NOTIFY = 5, -}; - -enum scmi_notification_events { - SCMI_EVENT_POWER_STATE_CHANGED = 0, - SCMI_EVENT_CLOCK_RATE_CHANGED = 0, - SCMI_EVENT_CLOCK_RATE_CHANGE_REQUESTED = 1, - SCMI_EVENT_PERFORMANCE_LIMITS_CHANGED = 0, - SCMI_EVENT_PERFORMANCE_LEVEL_CHANGED = 1, - SCMI_EVENT_SENSOR_TRIP_POINT_EVENT = 0, - SCMI_EVENT_SENSOR_UPDATE = 1, - SCMI_EVENT_RESET_ISSUED = 0, - SCMI_EVENT_BASE_ERROR_EVENT = 0, - SCMI_EVENT_SYSTEM_POWER_STATE_NOTIFIER = 0, - SCMI_EVENT_POWERCAP_CAP_CHANGED = 0, - SCMI_EVENT_POWERCAP_MEASUREMENTS_CHANGED = 1, -}; - -enum scmi_system_events { - SCMI_SYSTEM_SHUTDOWN = 0, - SCMI_SYSTEM_COLDRESET = 1, - SCMI_SYSTEM_WARMRESET = 2, - SCMI_SYSTEM_POWERUP = 3, - SCMI_SYSTEM_SUSPEND = 4, - SCMI_SYSTEM_MAX = 5, -}; - -struct scmi_system_power_state_notify { - __le32 notify_enable; -}; - -struct scmi_system_info { - u32 version; - bool graceful_timeout_supported; -}; - -struct scmi_system_power_state_notifier_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int flags; - unsigned int system_state; - unsigned int timeout; -}; - -struct scmi_system_power_state_notifier_payld { - __le32 agent_id; - __le32 flags; - __le32 system_state; - __le32 timeout; -}; - -struct efi_memory_map_data { - phys_addr_t phys_map; - unsigned long size; - unsigned long desc_version; - unsigned long desc_size; - unsigned long flags; -}; - -typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool); - -struct mchp_pit64b_timer { - void *base; - struct clk *pclk; - struct clk *gclk; - u32 mode; -}; - -struct mchp_pit64b_clkevt { - struct mchp_pit64b_timer timer; long: 32; long: 32; long: 32; @@ -88811,907 +96095,10 @@ struct mchp_pit64b_clkevt { long: 32; long: 32; long: 32; - struct clock_event_device clkevt; -}; - -struct mchp_pit64b_clksrc { - struct mchp_pit64b_timer timer; - struct clocksource clksrc; -}; - -struct reserved_mem_ops; - -struct reserved_mem { - const char *name; - unsigned long fdt_node; - unsigned long phandle; - const struct reserved_mem_ops *ops; - phys_addr_t base; - phys_addr_t size; - void *priv; -}; - -struct reserved_mem_ops { - int (*device_init)(struct reserved_mem *, struct device *); - void (*device_release)(struct reserved_mem *, struct device *); -}; - -struct rmem_assigned_device { - struct device *dev; - struct reserved_mem *rmem; - struct list_head list; -}; - -typedef int (*reservedmem_of_init_fn)(struct reserved_mem *); - -enum xadc_type { - XADC_TYPE_S7 = 0, - XADC_TYPE_US = 1, -}; - -enum xadc_external_mux_mode { - XADC_EXTERNAL_MUX_NONE = 0, - XADC_EXTERNAL_MUX_SINGLE = 1, - XADC_EXTERNAL_MUX_DUAL = 2, -}; - -struct xadc_ops; - -struct xadc { - void *base; - struct clk *clk; - const struct xadc_ops *ops; - uint16_t threshold[16]; - uint16_t temp_hysteresis; - unsigned int alarm_mask; - uint16_t *data; - struct iio_trigger *trigger; - struct iio_trigger *convst_trigger; - struct iio_trigger *samplerate_trigger; - enum xadc_external_mux_mode external_mux_mode; - unsigned int zynq_masked_alarm; - unsigned int zynq_intmask; - struct delayed_work zynq_unmask_work; - struct mutex mutex; - spinlock_t lock; - struct completion completion; -}; - -struct xadc_ops { - int (*read)(struct xadc *, unsigned int, uint16_t *); - int (*write)(struct xadc *, unsigned int, uint16_t); - int (*setup)(struct platform_device *, struct iio_dev *, int); - void (*update_alarm)(struct xadc *, unsigned int); - unsigned long (*get_dclk_rate)(struct xadc *); - irqreturn_t (*interrupt_handler)(int, void *); - unsigned int flags; - enum xadc_type type; -}; - -struct otpc_map { - u32 otpc_row_size; - u16 data_r_offset[4]; - u16 data_w_offset[4]; -}; - -struct otpc_priv { - struct device *dev; - void *base; - const struct otpc_map *map; - struct nvmem_config *config; -}; - -struct net_bridge; - -enum sock_shutdown_cmd { - SHUT_RD = 0, - SHUT_WR = 1, - SHUT_RDWR = 2, -}; - -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; -}; - -typedef u32 compat_uptr_t; - -typedef s32 compat_int_t; - -typedef u32 compat_size_t; - -typedef u32 compat_uint_t; - -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 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_mmsghdr { - struct compat_msghdr msg_hdr; - compat_uint_t msg_len; -}; - -struct mmsghdr { - struct user_msghdr msg_hdr; - unsigned int msg_len; -}; - -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; -}; - -typedef u32 compat_caddr_t; - -struct compat_if_settings { - unsigned int type; - unsigned int size; - compat_uptr_t ifs_ifsu; -}; - -struct compat_ifreq { - union { - char ifrn_name[16]; - } ifr_ifrn; - union { - struct sockaddr ifru_addr; - struct sockaddr ifru_dstaddr; - struct sockaddr ifru_broadaddr; - struct sockaddr ifru_netmask; - struct sockaddr ifru_hwaddr; - short ifru_flags; - compat_int_t ifru_ivalue; - compat_int_t ifru_mtu; - struct compat_ifmap ifru_map; - char ifru_slave[16]; - char ifru_newname[16]; - compat_caddr_t ifru_data; - struct compat_if_settings ifru_settings; - } ifr_ifru; -}; - -struct sock_skb_cb { - u32 dropcount; -}; - -typedef __kernel_long_t __kernel_old_time_t; - -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 { - 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 ip_sf_socklist { - unsigned int sl_max; - unsigned int sl_count; - struct callback_head rcu; - __be32 sl_addr[0]; -}; - -struct cmsghdr { - __kernel_size_t cmsg_len; - int cmsg_level; - int cmsg_type; -}; - -struct in_pktinfo { - int ipi_ifindex; - struct in_addr ipi_spec_dst; - struct in_addr ipi_addr; -}; - -struct group_source_req { - __u32 gsr_interface; - struct __kernel_sockaddr_storage gsr_group; - struct __kernel_sockaddr_storage gsr_source; -}; - -struct ip_mreq_source { - __be32 imr_multiaddr; - __be32 imr_interface; - __be32 imr_sourceaddr; -}; - -struct compat_group_source_req { - __u32 gsr_interface; - struct __kernel_sockaddr_storage gsr_group; - struct __kernel_sockaddr_storage gsr_source; -}; - -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 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 ipcm_cookie { - struct sockcm_cookie sockc; - __be32 addr; - int oif; - struct ip_options_rcu *opt; - __u8 protocol; - __u8 ttl; - __s16 tos; - char priority; - __u16 gso_size; long: 32; -}; - -struct group_req { - __u32 gr_interface; - struct __kernel_sockaddr_storage gr_group; -}; - -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); -}; - -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 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 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 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 seg6_pernet_data { - struct mutex lock; - struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src; -}; - -enum { - SEG6_IPTUNNEL_UNSPEC = 0, - SEG6_IPTUNNEL_SRH = 1, - __SEG6_IPTUNNEL_MAX = 2, -}; - -enum { - SEG6_IPTUN_MODE_INLINE = 0, - SEG6_IPTUN_MODE_ENCAP = 1, - SEG6_IPTUN_MODE_L2ENCAP = 2, - SEG6_IPTUN_MODE_ENCAP_RED = 3, - SEG6_IPTUN_MODE_L2ENCAP_RED = 4, -}; - -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 seg6_iptunnel_encap { - int mode; - struct ipv6_sr_hdr srh[0]; -}; - -struct seg6_lwt { - struct dst_cache cache; - struct seg6_iptunnel_encap tuninfo[0]; -}; - -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 dns_payload_content_type { - DNS_PAYLOAD_IS_SERVER_LIST = 0, -}; - -struct dns_payload_header { - __u8 zero; - __u8 content; - __u8 version; -}; - -struct ida_bitmap { - unsigned long bitmap[32]; -}; - -struct user_vfp { - unsigned long long fpregs[32]; - unsigned long fpscr; long: 32; -}; - -struct user_vfp_exc { - unsigned long fpexc; - unsigned long fpinst; - unsigned long fpinst2; -}; - -struct omap_domain_base { - u32 pa; - void *va; - s16 offset; -}; - -struct cm_ll_data { - int (*split_idlest_reg)(struct clk_omap_reg *, s16 *, u8 *); - int (*wait_module_ready)(u8, s16, u16, u8); - int (*wait_module_idle)(u8, s16, u16, u8); - void (*module_enable)(u8, u8, u16, u16); - void (*module_disable)(u8, u16, u16); - u32 (*xlate_clkctrl)(u8, u16, u16); -}; - -struct omap_hsmmc_dev_attr { - u8 flags; -}; - -struct memory_reserve_config { - u64 reserved; - u64 base; - u64 size; -}; - -enum { - GP_IDLE = 0, - GP_ENTER = 1, - GP_PASSED = 2, - GP_EXIT = 3, - GP_REPLAY = 4, -}; - -struct dma_sgt_handle { - struct sg_table sgt; - struct page **pages; -}; - -struct dma_devres { - size_t size; - void *vaddr; - dma_addr_t dma_handle; - unsigned long attrs; -}; - -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; -}; - -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, -}; - -struct statfs { - __u32 f_type; - __u32 f_bsize; - __u32 f_blocks; - __u32 f_bfree; - __u32 f_bavail; - __u32 f_files; - __u32 f_ffree; - __kernel_fsid_t f_fsid; - __u32 f_namelen; - __u32 f_frsize; - __u32 f_flags; - __u32 f_spare[4]; -}; - -struct 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]; -}; - -typedef int __kernel_daddr_t; - -struct ustat { - __kernel_daddr_t f_tfree; - unsigned long f_tinode; - char f_fname[6]; - char f_fpack[6]; -}; - -enum { - EXT4_MF_MNTDIR_SAMPLED = 0, - EXT4_MF_FS_ABORTED = 1, - EXT4_MF_FC_INELIGIBLE = 2, -}; - -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; long: 32; - struct qstr fcd_name; - unsigned char fcd_iname[36]; - struct list_head fcd_list; - struct list_head fcd_dilist; long: 32; -}; - -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_tl_mem { - u16 fc_tag; - u16 fc_len; -}; - -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 dentry_info_args { - int parent_ino; - int dname_len; - int ino; - int inode_len; - char *dname; -}; - -struct ext4_fc_del_range { - __le32 fc_ino; - __le32 fc_lblk; - __le32 fc_len; -}; - -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, -}; - -struct utf8_table { - int cmask; - int cval; - int shift; - long lmask; - long lval; -}; - -enum utf16_endian { - UTF16_HOST_ENDIAN = 0, - UTF16_LITTLE_ENDIAN = 1, - UTF16_BIG_ENDIAN = 2, -}; - -typedef u32 unicode_t; - -enum { - UBIFS_NO_NODE_GROUP = 0, - UBIFS_IN_NODE_GROUP = 1, - UBIFS_LAST_OF_NODE_GROUP = 2, -}; - -enum { - Opt_kmsg_bytes = 0, - Opt_err___2 = 1, -}; - -struct pstore_record; - -struct pstore_private { - struct list_head list; - struct dentry *dentry; - struct pstore_record *record; - size_t total_size; -}; - -struct pstore_info; - -struct pstore_record { - struct pstore_info *psi; - enum pstore_type_id type; - u64 id; - struct timespec64 time; - char *buf; - ssize_t size; - ssize_t ecc_notice_size; - void *priv; - int count; - enum kmsg_dump_reason reason; - unsigned int part; - bool compressed; -}; - -struct pstore_info { - struct module *owner; - const char *name; - spinlock_t buf_lock; - char *buf; - size_t bufsize; - struct mutex read_mutex; - int flags; - int max_reason; - void *data; - int (*open)(struct pstore_info *); - int (*close)(struct pstore_info *); - ssize_t (*read)(struct pstore_record *); - int (*write)(struct pstore_record *); - int (*write_user)(struct pstore_record *, const char __attribute__((btf_type_tag("user"))) *); - int (*erase)(struct pstore_record *); -}; - -struct pstore_ftrace_record { - unsigned long ip; - unsigned long parent_ip; - u64 ts; -}; - -struct pstore_ftrace_seq_data { - const void *ptr; - size_t off; - size_t size; -}; - -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 acomp_req; - -struct crypto_acomp { - int (*compress)(struct acomp_req *); - int (*decompress)(struct acomp_req *); - void (*dst_free)(struct scatterlist *); - unsigned int reqsize; long: 32; long: 32; long: 32; @@ -89724,31 +96111,11 @@ struct crypto_acomp { long: 32; long: 32; long: 32; - 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; long: 32; long: 32; long: 32; long: 32; long: 32; - void *__ctx[0]; -}; - -struct acomp_alg { - int (*compress)(struct acomp_req *); - int (*decompress)(struct acomp_req *); - void (*dst_free)(struct scatterlist *); - int (*init)(struct crypto_acomp *); - void (*exit)(struct crypto_acomp *); - unsigned int reqsize; long: 32; long: 32; long: 32; @@ -89759,2708 +96126,19 @@ struct acomp_alg { long: 32; long: 32; long: 32; - union { - struct { - struct crypto_alg base; - }; - struct comp_alg_common calg; - }; -}; - -struct crypto_istat_compress { - atomic64_t compress_cnt; - atomic64_t compress_tlen; - atomic64_t decompress_cnt; - atomic64_t decompress_tlen; - atomic64_t err_cnt; -}; - -struct crypto_report_acomp { - char type[64]; -}; - -enum msdos_sys_ind { - DOS_EXTENDED_PARTITION = 5, - LINUX_EXTENDED_PARTITION = 133, - WIN98_EXTENDED_PARTITION = 15, - LINUX_DATA_PARTITION = 131, - LINUX_LVM_PARTITION = 142, - LINUX_RAID_PARTITION = 253, - SOLARIS_X86_PARTITION = 130, - NEW_SOLARIS_X86_PARTITION = 191, - DM6_AUX1PARTITION = 81, - DM6_AUX3PARTITION = 83, - DM6_PARTITION = 84, - EZD_PARTITION = 85, - FREEBSD_PARTITION = 165, - OPENBSD_PARTITION = 166, - NETBSD_PARTITION = 169, - BSDI_PARTITION = 183, - MINIX_PARTITION = 129, - UNIXWARE_PARTITION = 99, -}; - -struct msdos_partition { - u8 boot_ind; - u8 head; - u8 sector; - u8 cyl; - u8 sys_ind; - u8 end_head; - u8 end_sector; - u8 end_cyl; - __le32 start_sect; - __le32 nr_sects; -}; - -struct fat_boot_sector { - __u8 ignored[3]; - __u8 system_id[8]; - __u8 sector_size[2]; - __u8 sec_per_clus; - __le16 reserved; - __u8 fats; - __u8 dir_entries[2]; - __u8 sectors[2]; - __u8 media; - __le16 fat_length; - __le16 secs_track; - __le16 heads; - __le32 hidden; - __le32 total_sect; - union { - struct { - __u8 drive_number; - __u8 state; - __u8 signature; - __u8 vol_id[4]; - __u8 vol_label[11]; - __u8 fs_type[8]; - } fat16; - struct { - __le32 length; - __le16 flags; - __u8 version[2]; - __le32 root_cluster; - __le16 info_sector; - __le16 backup_boot; - __le16 reserved2[6]; - __u8 drive_number; - __u8 state; - __u8 signature; - __u8 vol_id[4]; - __u8 vol_label[11]; - __u8 fs_type[8]; - } fat32; - }; -}; - -struct statx; - -struct io_statx { - struct file *file; - int dfd; - unsigned int mask; - unsigned int flags; - struct filename *filename; - struct statx __attribute__((btf_type_tag("user"))) *buffer; -}; - -struct 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 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; - -typedef struct { - unsigned char op; - unsigned char bits; - unsigned short val; -} code; - -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]; -}; - -enum { - RS_DECODE_LAMBDA = 0, - RS_DECODE_SYN = 1, - RS_DECODE_B = 2, - RS_DECODE_T = 3, - RS_DECODE_OMEGA = 4, - RS_DECODE_ROOT = 5, - RS_DECODE_REG = 6, - RS_DECODE_LOC = 7, - RS_DECODE_NUM_BUFFERS = 8, -}; - -struct intc_irqpin_config { - int irlm_bit; -}; - -struct intc_irqpin_iomem { - void *iomem; - unsigned long (*read)(void *); - void (*write)(void *, unsigned long); - int width; -}; - -struct intc_irqpin_priv; - -struct intc_irqpin_irq { - int hw_irq; - int requested_irq; - int domain_irq; - struct intc_irqpin_priv *p; -}; - -struct intc_irqpin_priv { - struct intc_irqpin_iomem iomem[6]; - struct intc_irqpin_irq irq[8]; - unsigned int sense_bitfield_width; - struct platform_device *pdev; - struct irq_chip irq_chip; - struct irq_domain *irq_domain; - atomic_t wakeup_path; - unsigned int shared_irqs: 1; - u8 shared_irq_mask; -}; - -enum sysc_soc { - SOC_UNKNOWN = 0, - SOC_2420 = 1, - SOC_2430 = 2, - SOC_3430 = 3, - SOC_3630 = 4, - SOC_4430 = 5, - SOC_4460 = 6, - SOC_4470 = 7, - SOC_5430 = 8, - SOC_AM3 = 9, - SOC_AM4 = 10, - SOC_DRA7 = 11, -}; - -struct sysc_soc_info { - unsigned long general_purpose: 1; - enum sysc_soc soc; - struct mutex list_lock; - struct list_head disabled_modules; - struct list_head restored_modules; - struct notifier_block nb; -}; - -struct sysc_dts_quirk { - const char *name; - u32 mask; -}; - -struct sysc_revision_quirk { - const char *name; - u32 base; - int rev_offset; - int sysc_offset; - int syss_offset; - u32 revision; - u32 revision_mask; - u32 quirks; -}; - -enum ti_sysc_module_type { - TI_SYSC_OMAP2 = 0, - TI_SYSC_OMAP2_TIMER = 1, - TI_SYSC_OMAP3_SHAM = 2, - TI_SYSC_OMAP3_AES = 3, - TI_SYSC_OMAP4 = 4, - TI_SYSC_OMAP4_TIMER = 5, - TI_SYSC_OMAP4_SIMPLE = 6, - TI_SYSC_OMAP34XX_SR = 7, - TI_SYSC_OMAP36XX_SR = 8, - TI_SYSC_OMAP4_SR = 9, - TI_SYSC_OMAP4_MCASP = 10, - TI_SYSC_OMAP4_USB_HOST_FS = 11, - TI_SYSC_DRA7_MCAN = 12, - TI_SYSC_PRUSS = 13, -}; - -struct sysc_capabilities { - const enum ti_sysc_module_type type; - const u32 sysc_mask; - const struct sysc_regbits *regbits; - const u32 mod_quirks; -}; - -struct sysc_regbits { - s8 midle_shift; - s8 clkact_shift; - s8 sidle_shift; - s8 enwkup_shift; - s8 srst_shift; - s8 autoidle_shift; - s8 dmadisable_shift; - s8 emufree_shift; -}; - -enum sysc_registers { - SYSC_REVISION = 0, - SYSC_SYSCONFIG = 1, - SYSC_SYSSTATUS = 2, - SYSC_MAX_REGS = 3, -}; - -enum sysc_clocks { - SYSC_FCK = 0, - SYSC_ICK = 1, - SYSC_OPTFCK0 = 2, - SYSC_OPTFCK1 = 3, - SYSC_OPTFCK2 = 4, - SYSC_OPTFCK3 = 5, - SYSC_OPTFCK4 = 6, - SYSC_OPTFCK5 = 7, - SYSC_OPTFCK6 = 8, - SYSC_OPTFCK7 = 9, - SYSC_MAX_CLOCKS = 10, -}; - -struct sysc_address { - unsigned long base; - struct list_head node; -}; - -struct sysc_config { - u32 sysc_val; - u32 syss_mask; - u8 midlemodes; - u8 sidlemodes; - u8 srst_udelay; - u32 quirks; -}; - -struct ti_sysc_cookie { - void *data; - void *clkdm; -}; - -struct ti_sysc_module_data; - -struct sysc { - struct device *dev; long: 32; - u64 module_pa; - u32 module_size; - void *module_va; - int offsets[3]; - struct ti_sysc_module_data *mdata; - struct clk **clocks; - const char **clock_roles; - int nr_clocks; - struct reset_control *rsts; - const char *legacy_mode; - const struct sysc_capabilities *cap; - struct sysc_config cfg; - struct ti_sysc_cookie cookie; - const char *name; - u32 revision; - u32 sysconfig; - unsigned int reserved: 1; - unsigned int enabled: 1; - unsigned int needs_resume: 1; - unsigned int child_needs_resume: 1; - struct delayed_work idle_work; - void (*pre_reset_quirk)(struct sysc *); - void (*post_reset_quirk)(struct sysc *); - void (*reset_done_quirk)(struct sysc *); - void (*module_enable_quirk)(struct sysc *); - void (*module_disable_quirk)(struct sysc *); - void (*module_unlock_quirk)(struct sysc *); - void (*module_lock_quirk)(struct sysc *); -}; - -struct ti_sysc_module_data { - const char *name; long: 32; - u64 module_pa; - u32 module_size; - int *offsets; - int nr_offsets; - const struct sysc_capabilities *cap; - struct sysc_config *cfg; long: 32; -}; - -struct sysc_module { - struct sysc *ddata; - struct list_head node; -}; - -struct ti_sysc_platform_data { - struct of_dev_auxdata *auxdata; - bool (*soc_type_gp)(); - int (*init_clockdomain)(struct device *, struct clk *, struct clk *, struct ti_sysc_cookie *); - void (*clkdm_deny_idle)(struct device *, const struct ti_sysc_cookie *); - void (*clkdm_allow_idle)(struct device *, const struct ti_sysc_cookie *); - int (*init_module)(struct device *, const struct ti_sysc_module_data *, struct ti_sysc_cookie *); - int (*enable_module)(struct device *, const struct ti_sysc_cookie *); - int (*idle_module)(struct device *, const struct ti_sysc_cookie *); - int (*shutdown_module)(struct device *, const struct ti_sysc_cookie *); -}; - -struct uniphier_u3ssphy_param { - struct { - int reg_no; - int msb; - int lsb; - } field; - u8 value; -}; - -struct uniphier_u3ssphy_soc_data { - bool is_legacy; - int nparams; - const struct uniphier_u3ssphy_param param[7]; -}; - -struct uniphier_u3ssphy_priv { - struct device *dev; - void *base; - struct clk *clk; - struct clk *clk_ext; - struct clk *clk_parent; - struct clk *clk_parent_gio; - struct reset_control *rst; - struct reset_control *rst_parent; - struct reset_control *rst_parent_gio; - struct regulator *vbus; - const struct uniphier_u3ssphy_soc_data *data; -}; - -enum iproc_pinconf_ctrl_type { - IOCTRL_TYPE_AON = 1, - IOCTRL_TYPE_CDRU = 2, - IOCTRL_TYPE_INVALID = 3, -}; - -enum iproc_pinconf_param { - IPROC_PINCONF_DRIVE_STRENGTH = 0, - IPROC_PINCONF_BIAS_DISABLE = 1, - IPROC_PINCONF_BIAS_PULL_UP = 2, - IPROC_PINCONF_BIAS_PULL_DOWN = 3, - IPROC_PINCON_MAX = 4, -}; - -struct iproc_gpio { - struct device *dev; - void *base; - void *io_ctrl; - enum iproc_pinconf_ctrl_type io_ctrl_type; - raw_spinlock_t lock; - struct gpio_chip gc; - unsigned int num_banks; - bool pinmux_is_supported; - enum pin_config_param *pinconf_disable; - unsigned int nr_pinconf_disable; - struct pinctrl_dev *pctl; - struct pinctrl_desc pctldesc; -}; - -struct tegra_xusb_padctl_function; - -struct tegra_xusb_padctl_lane; - -struct tegra_xusb_padctl_soc { - const struct pinctrl_pin_desc *pins; - unsigned int num_pins; - const struct tegra_xusb_padctl_function *functions; - unsigned int num_functions; - const struct tegra_xusb_padctl_lane *lanes; - unsigned int num_lanes; -}; - -struct tegra_xusb_padctl_function { - const char *name; - const char * const *groups; - unsigned int num_groups; -}; - -struct tegra_xusb_padctl_lane { - const char *name; - unsigned int offset; - unsigned int shift; - unsigned int mask; - unsigned int iddq; - const unsigned int *funcs; - unsigned int num_funcs; -}; - -enum tegra_xusb_padctl_param { - TEGRA_XUSB_PADCTL_IDDQ = 0, -}; - -struct tegra_xusb_padctl_property { - const char *name; - enum tegra_xusb_padctl_param param; -}; - -struct tegra_xusb_padctl { - struct device *dev; - void *regs; - struct mutex lock; - struct reset_control *rst; - const struct tegra_xusb_padctl_soc *soc; - struct pinctrl_dev *pinctrl; - struct pinctrl_desc desc; - struct phy_provider *provider; - struct phy *phys[2]; - unsigned int enable; -}; - -struct vt8500_chip { - struct pwm_chip chip; - void *base; - struct clk *clk; -}; - -struct walk_rcec_data { - struct pci_dev *rcec; - int (*user_callback)(struct pci_dev *, void *); - void *user_data; -}; - -enum pcie_type { - GENERIC = 0, - BCM7425 = 1, - BCM7435 = 2, - BCM4908 = 3, - BCM7278 = 4, - BCM2711 = 5, -}; - -struct brcm_pcie; - -struct pcie_cfg_data { - const int *offsets; - const enum pcie_type type; - void (*perst_set)(struct brcm_pcie *, u32); - void (*bridge_sw_init_set)(struct brcm_pcie *, u32); -}; - -struct brcm_msi; - -struct subdev_regulators; - -struct brcm_pcie { - struct device *dev; - void *base; - struct clk *clk; - struct device_node *np; - bool ssc; - int gen; - u64 msi_target_addr; - struct brcm_msi *msi; - const int *reg_offsets; - enum pcie_type type; - struct reset_control *rescal; - struct reset_control *perst_reset; - int num_memc; - u64 memc_size[3]; - u32 hw_rev; - void (*perst_set)(struct brcm_pcie *, u32); - void (*bridge_sw_init_set)(struct brcm_pcie *, u32); - struct subdev_regulators *sr; - bool ep_wakeup_capable; long: 32; -}; - -struct brcm_msi { - struct device *dev; - void *base; - struct device_node *np; - struct irq_domain *msi_domain; - struct irq_domain *inner_domain; - struct mutex lock; - u64 target_addr; - int irq; - unsigned long used[1]; - bool legacy; - int legacy_shift; - int nr; - void *intr_base; -}; - -struct subdev_regulators { - unsigned int num_supplies; - struct regulator_bulk_data supplies[0]; -}; - -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 { - RGR1_SW_INIT_1 = 0, - EXT_CFG_INDEX = 1, - EXT_CFG_DATA = 2, -}; - -typedef void (*btf_trace_clk_enable)(void *, struct clk_core *); - -struct clk_parent_map; - -struct clk_core { - const char *name; - const struct clk_ops *ops; - struct clk_hw *hw; - struct module *owner; - struct device *dev; - struct device_node *of_node; - struct clk_core *parent; - struct clk_parent_map *parents; - u8 num_parents; - u8 new_parent_index; - unsigned long rate; - unsigned long req_rate; - unsigned long new_rate; - struct clk_core *new_parent; - struct clk_core *new_child; - unsigned long flags; - bool orphan; - bool rpm_enabled; - unsigned int enable_count; - unsigned int prepare_count; - unsigned int protect_count; - unsigned long min_rate; - unsigned long max_rate; - unsigned long accuracy; - int phase; - struct clk_duty duty; - struct hlist_head children; - struct hlist_node child_node; - struct hlist_head clks; - unsigned int notifier_count; - struct dentry *dentry; - struct hlist_node debug_node; - struct kref ref; -}; - -struct clk_parent_map { - const struct clk_hw *hw; - struct clk_core *core; - const char *fw_name; - const char *name; - int index; -}; - -typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_disable)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, unsigned long); - -typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, unsigned long); - -typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, unsigned long); - -typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, unsigned long); - -typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, unsigned long, unsigned long); - -typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *); - -typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *); - -typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int); - -typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int); - -typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *); - -typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *); - -typedef void (*btf_trace_clk_rate_request_start)(void *, struct clk_rate_request *); - -typedef void (*btf_trace_clk_rate_request_done)(void *, struct clk_rate_request *); - -struct clk_notifier { - struct clk *clk; - struct srcu_notifier_head notifier_head; - struct list_head node; -}; - -struct of_clk_provider { - struct list_head link; - struct device_node *node; - struct clk * (*get)(struct of_phandle_args *, void *); - struct clk_hw * (*get_hw)(struct of_phandle_args *, void *); - void *data; -}; - -struct clock_provider { - void (*clk_init_cb)(struct device_node *); - struct device_node *np; - struct list_head node; -}; - -struct trace_event_raw_clk { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; -}; - -struct trace_event_raw_clk_rate { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long rate; - char __data[0]; -}; - -struct trace_event_raw_clk_rate_range { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long min; - unsigned long max; - char __data[0]; -}; - -struct trace_event_raw_clk_parent { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_pname; - char __data[0]; -}; - -struct trace_event_raw_clk_phase { - struct trace_entry ent; - u32 __data_loc_name; - int phase; - char __data[0]; -}; - -struct trace_event_raw_clk_duty_cycle { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int num; - unsigned int den; - char __data[0]; -}; - -struct trace_event_raw_clk_rate_request { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_pname; - unsigned long min; - unsigned long max; - unsigned long prate; - char __data[0]; -}; - -struct trace_event_data_offsets_clk { - u32 name; -}; - -struct trace_event_data_offsets_clk_rate { - u32 name; -}; - -struct trace_event_data_offsets_clk_rate_range { - u32 name; -}; - -struct trace_event_data_offsets_clk_parent { - u32 name; - u32 pname; -}; - -struct trace_event_data_offsets_clk_phase { - u32 name; -}; - -struct trace_event_data_offsets_clk_duty_cycle { - u32 name; -}; - -struct trace_event_data_offsets_clk_rate_request { - u32 name; - u32 pname; -}; - -struct clk_notifier_devres { - struct clk *clk; - struct notifier_block *nb; -}; - -struct rockchip_cpuclk { - struct clk_hw hw; - struct clk *alt_parent; - void *reg_base; - struct notifier_block clk_nb; - unsigned int rate_count; - struct rockchip_cpuclk_rate_table *rate_table; - const struct rockchip_cpuclk_reg_data *reg_data; - spinlock_t *lock; -}; - -struct tegra_sync_source_initdata { - char *name; - unsigned long rate; - unsigned long max_rate; - int clk_id; -}; - -struct tegra_audio_clk_initdata { - char *gate_name; - char *mux_name; - u32 offset; - int gate_clk_id; - int mux_clk_id; -}; - -struct tegra_audio2x_clk_initdata { - char *parent; - char *gate_name; - char *name_2x; - char *div_name; - int clk_id; - int clk_num; - u8 div_offset; -}; - -enum clk_id { - tegra_clk_actmon = 0, - tegra_clk_adx = 1, - tegra_clk_adx1 = 2, - tegra_clk_afi = 3, - tegra_clk_amx = 4, - tegra_clk_amx1 = 5, - tegra_clk_apb2ape = 6, - tegra_clk_ahbdma = 7, - tegra_clk_apbdma = 8, - tegra_clk_apbif = 9, - tegra_clk_ape = 10, - tegra_clk_audio0 = 11, - tegra_clk_audio0_2x = 12, - tegra_clk_audio0_mux = 13, - tegra_clk_audio1 = 14, - tegra_clk_audio1_2x = 15, - tegra_clk_audio1_mux = 16, - tegra_clk_audio2 = 17, - tegra_clk_audio2_2x = 18, - tegra_clk_audio2_mux = 19, - tegra_clk_audio3 = 20, - tegra_clk_audio3_2x = 21, - tegra_clk_audio3_mux = 22, - tegra_clk_audio4 = 23, - tegra_clk_audio4_2x = 24, - tegra_clk_audio4_mux = 25, - tegra_clk_bsea = 26, - tegra_clk_bsev = 27, - tegra_clk_cclk_g = 28, - tegra_clk_cclk_lp = 29, - tegra_clk_cilab = 30, - tegra_clk_cilcd = 31, - tegra_clk_cile = 32, - tegra_clk_clk_32k = 33, - tegra_clk_clk72Mhz = 34, - tegra_clk_clk72Mhz_8 = 35, - tegra_clk_clk_m = 36, - tegra_clk_osc = 37, - tegra_clk_osc_div2 = 38, - tegra_clk_osc_div4 = 39, - tegra_clk_cml0 = 40, - tegra_clk_cml1 = 41, - tegra_clk_csi = 42, - tegra_clk_csite = 43, - tegra_clk_csite_8 = 44, - tegra_clk_csus = 45, - tegra_clk_cve = 46, - tegra_clk_dam0 = 47, - tegra_clk_dam1 = 48, - tegra_clk_dam2 = 49, - tegra_clk_d_audio = 50, - tegra_clk_dbgapb = 51, - tegra_clk_dds = 52, - tegra_clk_dfll_ref = 53, - tegra_clk_dfll_soc = 54, - tegra_clk_disp1 = 55, - tegra_clk_disp1_8 = 56, - tegra_clk_disp2 = 57, - tegra_clk_disp2_8 = 58, - tegra_clk_dp2 = 59, - tegra_clk_dpaux = 60, - tegra_clk_dpaux1 = 61, - tegra_clk_dsialp = 62, - tegra_clk_dsia_mux = 63, - tegra_clk_dsiblp = 64, - tegra_clk_dsib_mux = 65, - tegra_clk_dtv = 66, - tegra_clk_emc = 67, - tegra_clk_entropy = 68, - tegra_clk_entropy_8 = 69, - tegra_clk_epp = 70, - tegra_clk_epp_8 = 71, - tegra_clk_extern1 = 72, - tegra_clk_extern2 = 73, - tegra_clk_extern3 = 74, - tegra_clk_fuse = 75, - tegra_clk_fuse_burn = 76, - tegra_clk_gpu = 77, - tegra_clk_gr2d = 78, - tegra_clk_gr2d_8 = 79, - tegra_clk_gr3d = 80, - tegra_clk_gr3d_8 = 81, - tegra_clk_hclk = 82, - tegra_clk_hda = 83, - tegra_clk_hda_8 = 84, - tegra_clk_hda2codec_2x = 85, - tegra_clk_hda2codec_2x_8 = 86, - tegra_clk_hda2hdmi = 87, - tegra_clk_hdmi = 88, - tegra_clk_hdmi_audio = 89, - tegra_clk_host1x = 90, - tegra_clk_host1x_8 = 91, - tegra_clk_host1x_9 = 92, - tegra_clk_hsic_trk = 93, - tegra_clk_i2c1 = 94, - tegra_clk_i2c2 = 95, - tegra_clk_i2c3 = 96, - tegra_clk_i2c4 = 97, - tegra_clk_i2c5 = 98, - tegra_clk_i2c6 = 99, - tegra_clk_i2cslow = 100, - tegra_clk_i2s0 = 101, - tegra_clk_i2s0_sync = 102, - tegra_clk_i2s1 = 103, - tegra_clk_i2s1_sync = 104, - tegra_clk_i2s2 = 105, - tegra_clk_i2s2_sync = 106, - tegra_clk_i2s3 = 107, - tegra_clk_i2s3_sync = 108, - tegra_clk_i2s4 = 109, - tegra_clk_i2s4_sync = 110, - tegra_clk_isp = 111, - tegra_clk_isp_8 = 112, - tegra_clk_isp_9 = 113, - tegra_clk_ispb = 114, - tegra_clk_kbc = 115, - tegra_clk_kfuse = 116, - tegra_clk_la = 117, - tegra_clk_maud = 118, - tegra_clk_mipi = 119, - tegra_clk_mipibif = 120, - tegra_clk_mipi_cal = 121, - tegra_clk_mpe = 122, - tegra_clk_mselect = 123, - tegra_clk_msenc = 124, - tegra_clk_ndflash = 125, - tegra_clk_ndflash_8 = 126, - tegra_clk_ndspeed = 127, - tegra_clk_ndspeed_8 = 128, - tegra_clk_nor = 129, - tegra_clk_nvdec = 130, - tegra_clk_nvenc = 131, - tegra_clk_nvjpg = 132, - tegra_clk_owr = 133, - tegra_clk_owr_8 = 134, - tegra_clk_pcie = 135, - tegra_clk_pclk = 136, - tegra_clk_pll_a = 137, - tegra_clk_pll_a_out0 = 138, - tegra_clk_pll_a1 = 139, - tegra_clk_pll_c = 140, - tegra_clk_pll_c2 = 141, - tegra_clk_pll_c3 = 142, - tegra_clk_pll_c4 = 143, - tegra_clk_pll_c4_out0 = 144, - tegra_clk_pll_c4_out1 = 145, - tegra_clk_pll_c4_out2 = 146, - tegra_clk_pll_c4_out3 = 147, - tegra_clk_pll_c_out1 = 148, - tegra_clk_pll_d = 149, - tegra_clk_pll_d2 = 150, - tegra_clk_pll_d2_out0 = 151, - tegra_clk_pll_d_out0 = 152, - tegra_clk_pll_dp = 153, - tegra_clk_pll_e_out0 = 154, - tegra_clk_pll_g_ref = 155, - tegra_clk_pll_m = 156, - tegra_clk_pll_m_out1 = 157, - tegra_clk_pll_mb = 158, - tegra_clk_pll_p = 159, - tegra_clk_pll_p_out1 = 160, - tegra_clk_pll_p_out2 = 161, - tegra_clk_pll_p_out2_int = 162, - tegra_clk_pll_p_out3 = 163, - tegra_clk_pll_p_out4 = 164, - tegra_clk_pll_p_out4_cpu = 165, - tegra_clk_pll_p_out5 = 166, - tegra_clk_pll_p_out_hsio = 167, - tegra_clk_pll_p_out_xusb = 168, - tegra_clk_pll_p_out_cpu = 169, - tegra_clk_pll_p_out_adsp = 170, - tegra_clk_pll_ref = 171, - tegra_clk_pll_re_out = 172, - tegra_clk_pll_re_vco = 173, - tegra_clk_pll_u = 174, - tegra_clk_pll_u_out = 175, - tegra_clk_pll_u_out1 = 176, - tegra_clk_pll_u_out2 = 177, - tegra_clk_pll_u_12m = 178, - tegra_clk_pll_u_480m = 179, - tegra_clk_pll_u_48m = 180, - tegra_clk_pll_u_60m = 181, - tegra_clk_pll_x = 182, - tegra_clk_pll_x_out0 = 183, - tegra_clk_pwm = 184, - tegra_clk_qspi = 185, - tegra_clk_rtc = 186, - tegra_clk_sata = 187, - tegra_clk_sata_8 = 188, - tegra_clk_sata_cold = 189, - tegra_clk_sata_oob = 190, - tegra_clk_sata_oob_8 = 191, - tegra_clk_sbc1 = 192, - tegra_clk_sbc1_8 = 193, - tegra_clk_sbc1_9 = 194, - tegra_clk_sbc2 = 195, - tegra_clk_sbc2_8 = 196, - tegra_clk_sbc2_9 = 197, - tegra_clk_sbc3 = 198, - tegra_clk_sbc3_8 = 199, - tegra_clk_sbc3_9 = 200, - tegra_clk_sbc4 = 201, - tegra_clk_sbc4_8 = 202, - tegra_clk_sbc4_9 = 203, - tegra_clk_sbc5 = 204, - tegra_clk_sbc5_8 = 205, - tegra_clk_sbc6 = 206, - tegra_clk_sbc6_8 = 207, - tegra_clk_sclk = 208, - tegra_clk_sdmmc_legacy = 209, - tegra_clk_sdmmc1 = 210, - tegra_clk_sdmmc1_8 = 211, - tegra_clk_sdmmc1_9 = 212, - tegra_clk_sdmmc2 = 213, - tegra_clk_sdmmc2_8 = 214, - tegra_clk_sdmmc3 = 215, - tegra_clk_sdmmc3_8 = 216, - tegra_clk_sdmmc3_9 = 217, - tegra_clk_sdmmc4 = 218, - tegra_clk_sdmmc4_8 = 219, - tegra_clk_se = 220, - tegra_clk_se_10 = 221, - tegra_clk_soc_therm = 222, - tegra_clk_soc_therm_8 = 223, - tegra_clk_sor0 = 224, - tegra_clk_sor0_out = 225, - tegra_clk_sor1 = 226, - tegra_clk_sor1_out = 227, - tegra_clk_spdif = 228, - tegra_clk_spdif_2x = 229, - tegra_clk_spdif_in = 230, - tegra_clk_spdif_in_8 = 231, - tegra_clk_spdif_in_sync = 232, - tegra_clk_spdif_mux = 233, - tegra_clk_spdif_out = 234, - tegra_clk_timer = 235, - tegra_clk_trace = 236, - tegra_clk_tsec = 237, - tegra_clk_tsec_8 = 238, - tegra_clk_tsecb = 239, - tegra_clk_tsensor = 240, - tegra_clk_tvdac = 241, - tegra_clk_tvo = 242, - tegra_clk_uarta = 243, - tegra_clk_uarta_8 = 244, - tegra_clk_uartb = 245, - tegra_clk_uartb_8 = 246, - tegra_clk_uartc = 247, - tegra_clk_uartc_8 = 248, - tegra_clk_uartd = 249, - tegra_clk_uartd_8 = 250, - tegra_clk_uarte = 251, - tegra_clk_uarte_8 = 252, - tegra_clk_uartape = 253, - tegra_clk_usb2 = 254, - tegra_clk_usb2_hsic_trk = 255, - tegra_clk_usb2_trk = 256, - tegra_clk_usb3 = 257, - tegra_clk_usbd = 258, - tegra_clk_vcp = 259, - tegra_clk_vde = 260, - tegra_clk_vde_8 = 261, - tegra_clk_vfir = 262, - tegra_clk_vi = 263, - tegra_clk_vi_8 = 264, - tegra_clk_vi_9 = 265, - tegra_clk_vi_10 = 266, - tegra_clk_vi_i2c = 267, - tegra_clk_vic03 = 268, - tegra_clk_vic03_8 = 269, - tegra_clk_vim2_clk = 270, - tegra_clk_vimclk_sync = 271, - tegra_clk_vi_sensor = 272, - tegra_clk_vi_sensor_8 = 273, - tegra_clk_vi_sensor_9 = 274, - tegra_clk_vi_sensor2 = 275, - tegra_clk_vi_sensor2_8 = 276, - tegra_clk_xusb_dev = 277, - tegra_clk_xusb_dev_src = 278, - tegra_clk_xusb_dev_src_8 = 279, - tegra_clk_xusb_falcon_src = 280, - tegra_clk_xusb_falcon_src_8 = 281, - tegra_clk_xusb_fs_src = 282, - tegra_clk_xusb_gate = 283, - tegra_clk_xusb_host = 284, - tegra_clk_xusb_host_src = 285, - tegra_clk_xusb_host_src_8 = 286, - tegra_clk_xusb_hs_src = 287, - tegra_clk_xusb_hs_src_4 = 288, - tegra_clk_xusb_ss = 289, - tegra_clk_xusb_ss_src = 290, - tegra_clk_xusb_ss_src_8 = 291, - tegra_clk_xusb_ss_div2 = 292, - tegra_clk_xusb_ssp_src = 293, - tegra_clk_sclk_mux = 294, - tegra_clk_sor_safe = 295, - tegra_clk_cec = 296, - tegra_clk_ispa = 297, - tegra_clk_dmic1 = 298, - tegra_clk_dmic2 = 299, - tegra_clk_dmic3 = 300, - tegra_clk_dmic1_sync_clk = 301, - tegra_clk_dmic2_sync_clk = 302, - tegra_clk_dmic3_sync_clk = 303, - tegra_clk_dmic1_sync_clk_mux = 304, - tegra_clk_dmic2_sync_clk_mux = 305, - tegra_clk_dmic3_sync_clk_mux = 306, - tegra_clk_iqc1 = 307, - tegra_clk_iqc2 = 308, - tegra_clk_pll_a_out_adsp = 309, - tegra_clk_pll_a_out0_out_adsp = 310, - tegra_clk_adsp = 311, - tegra_clk_adsp_neon = 312, - tegra_clk_max = 313, -}; - -struct tegra_clk { - int dt_id; - bool present; -}; - -struct tegra_audio_clk_info { - char *name; - struct tegra_clk_pll_params *pll_params; - int clk_id; - char *parent; -}; - -enum { - CLK_COMPONENT_TYPE_GATE = 0, - CLK_COMPONENT_TYPE_DIVIDER = 1, - CLK_COMPONENT_TYPE_MUX = 2, - CLK_COMPONENT_TYPE_MAX = 3, -}; - -struct ti_clk_mux { - u8 bit_shift; - int num_parents; - u16 reg; - u8 module; - const char * const *parents; - u16 flags; -}; - -typedef void (*btf_trace_tegra_dma_tx_status)(void *, struct dma_chan *, dma_cookie_t, struct dma_tx_state *); - -typedef void (*btf_trace_tegra_dma_complete_cb)(void *, struct dma_chan *, int, void *); - -typedef void (*btf_trace_tegra_dma_isr)(void *, struct dma_chan *, int); - -struct tegra_dma_chip_data { - unsigned int nr_channels; - unsigned int channel_reg_size; - unsigned int max_dma_count; - bool support_channel_pause; - bool support_separate_wcount_reg; -}; - -struct trace_event_raw_tegra_dma_tx_status { - struct trace_entry ent; - u32 __data_loc_chan; - dma_cookie_t cookie; - __u32 residue; - char __data[0]; -}; - -struct trace_event_raw_tegra_dma_complete_cb { - struct trace_entry ent; - u32 __data_loc_chan; - int count; - void *ptr; - char __data[0]; -}; - -struct trace_event_raw_tegra_dma_isr { - struct trace_entry ent; - u32 __data_loc_chan; - int irq; - char __data[0]; -}; - -struct tegra_dma_channel; - -typedef void (*dma_isr_handler)(struct tegra_dma_channel *, bool); - -struct tegra_dma_channel_regs { - u32 csr; - u32 ahb_ptr; - u32 apb_ptr; - u32 ahb_seq; - u32 apb_seq; - u32 wcount; -}; - -struct tegra_dma; - -struct tegra_dma_channel { - struct dma_chan dma_chan; - char name[12]; - bool config_init; - unsigned int id; - void *chan_addr; - spinlock_t lock; - bool busy; - struct tegra_dma *tdma; - bool cyclic; - struct list_head free_sg_req; - struct list_head pending_sg_req; - struct list_head free_dma_desc; - struct list_head cb_desc; - dma_isr_handler isr_handler; - struct tasklet_struct tasklet; - unsigned int slave_id; - struct dma_slave_config dma_sconfig; - struct tegra_dma_channel_regs channel_reg; - struct wait_queue_head wq; -}; - -struct tegra_dma { - struct dma_device dma_dev; - struct device *dev; - struct clk *dma_clk; - struct reset_control *rst; - spinlock_t global_lock; - void *base_addr; - const struct tegra_dma_chip_data *chip_data; - u32 global_pause_count; - struct tegra_dma_channel channels[0]; -}; - -struct tegra_dma_desc { - struct dma_async_tx_descriptor txd; - unsigned int bytes_requested; - unsigned int bytes_transferred; - enum dma_status dma_status; - struct list_head node; - struct list_head tx_list; - struct list_head cb_node; - unsigned int cb_count; -}; - -struct tegra_dma_sg_req { - struct tegra_dma_channel_regs ch_regs; - unsigned int req_len; - bool configured; - bool last_sg; - struct list_head node; - struct tegra_dma_desc *dma_desc; - unsigned int words_xferred; -}; - -struct trace_event_data_offsets_tegra_dma_tx_status { - u32 chan; -}; - -struct trace_event_data_offsets_tegra_dma_complete_cb { - u32 chan; -}; - -struct trace_event_data_offsets_tegra_dma_isr { - u32 chan; -}; - -enum sec_device_type { - S5M8767X = 0, - S2MPA01 = 1, - S2MPS11X = 2, - S2MPS13X = 3, - S2MPS14X = 4, - S2MPS15X = 5, - S2MPU02 = 6, -}; - -enum s2mps11_regulators { - S2MPS11_LDO1 = 0, - S2MPS11_LDO2 = 1, - S2MPS11_LDO3 = 2, - S2MPS11_LDO4 = 3, - S2MPS11_LDO5 = 4, - S2MPS11_LDO6 = 5, - S2MPS11_LDO7 = 6, - S2MPS11_LDO8 = 7, - S2MPS11_LDO9 = 8, - S2MPS11_LDO10 = 9, - S2MPS11_LDO11 = 10, - S2MPS11_LDO12 = 11, - S2MPS11_LDO13 = 12, - S2MPS11_LDO14 = 13, - S2MPS11_LDO15 = 14, - S2MPS11_LDO16 = 15, - S2MPS11_LDO17 = 16, - S2MPS11_LDO18 = 17, - S2MPS11_LDO19 = 18, - S2MPS11_LDO20 = 19, - S2MPS11_LDO21 = 20, - S2MPS11_LDO22 = 21, - S2MPS11_LDO23 = 22, - S2MPS11_LDO24 = 23, - S2MPS11_LDO25 = 24, - S2MPS11_LDO26 = 25, - S2MPS11_LDO27 = 26, - S2MPS11_LDO28 = 27, - S2MPS11_LDO29 = 28, - S2MPS11_LDO30 = 29, - S2MPS11_LDO31 = 30, - S2MPS11_LDO32 = 31, - S2MPS11_LDO33 = 32, - S2MPS11_LDO34 = 33, - S2MPS11_LDO35 = 34, - S2MPS11_LDO36 = 35, - S2MPS11_LDO37 = 36, - S2MPS11_LDO38 = 37, - S2MPS11_BUCK1 = 38, - S2MPS11_BUCK2 = 39, - S2MPS11_BUCK3 = 40, - S2MPS11_BUCK4 = 41, - S2MPS11_BUCK5 = 42, - S2MPS11_BUCK6 = 43, - S2MPS11_BUCK7 = 44, - S2MPS11_BUCK8 = 45, - S2MPS11_BUCK9 = 46, - S2MPS11_BUCK10 = 47, - S2MPS11_REGULATOR_MAX = 48, -}; - -enum s2mps14_regulators { - S2MPS14_LDO1 = 0, - S2MPS14_LDO2 = 1, - S2MPS14_LDO3 = 2, - S2MPS14_LDO4 = 3, - S2MPS14_LDO5 = 4, - S2MPS14_LDO6 = 5, - S2MPS14_LDO7 = 6, - S2MPS14_LDO8 = 7, - S2MPS14_LDO9 = 8, - S2MPS14_LDO10 = 9, - S2MPS14_LDO11 = 10, - S2MPS14_LDO12 = 11, - S2MPS14_LDO13 = 12, - S2MPS14_LDO14 = 13, - S2MPS14_LDO15 = 14, - S2MPS14_LDO16 = 15, - S2MPS14_LDO17 = 16, - S2MPS14_LDO18 = 17, - S2MPS14_LDO19 = 18, - S2MPS14_LDO20 = 19, - S2MPS14_LDO21 = 20, - S2MPS14_LDO22 = 21, - S2MPS14_LDO23 = 22, - S2MPS14_LDO24 = 23, - S2MPS14_LDO25 = 24, - S2MPS14_BUCK1 = 25, - S2MPS14_BUCK2 = 26, - S2MPS14_BUCK3 = 27, - S2MPS14_BUCK4 = 28, - S2MPS14_BUCK5 = 29, - S2MPS14_REGULATOR_MAX = 30, -}; - -enum S2MPU02_regulators { - S2MPU02_LDO1 = 0, - S2MPU02_LDO2 = 1, - S2MPU02_LDO3 = 2, - S2MPU02_LDO4 = 3, - S2MPU02_LDO5 = 4, - S2MPU02_LDO6 = 5, - S2MPU02_LDO7 = 6, - S2MPU02_LDO8 = 7, - S2MPU02_LDO9 = 8, - S2MPU02_LDO10 = 9, - S2MPU02_LDO11 = 10, - S2MPU02_LDO12 = 11, - S2MPU02_LDO13 = 12, - S2MPU02_LDO14 = 13, - S2MPU02_LDO15 = 14, - S2MPU02_LDO16 = 15, - S2MPU02_LDO17 = 16, - S2MPU02_LDO18 = 17, - S2MPU02_LDO19 = 18, - S2MPU02_LDO20 = 19, - S2MPU02_LDO21 = 20, - S2MPU02_LDO22 = 21, - S2MPU02_LDO23 = 22, - S2MPU02_LDO24 = 23, - S2MPU02_LDO25 = 24, - S2MPU02_LDO26 = 25, - S2MPU02_LDO27 = 26, - S2MPU02_LDO28 = 27, - S2MPU02_BUCK1 = 28, - S2MPU02_BUCK2 = 29, - S2MPU02_BUCK3 = 30, - S2MPU02_BUCK4 = 31, - S2MPU02_BUCK5 = 32, - S2MPU02_BUCK6 = 33, - S2MPU02_BUCK7 = 34, - S2MPU02_REGULATOR_MAX = 35, -}; - -enum s2mps11_reg { - S2MPS11_REG_ID = 0, - S2MPS11_REG_INT1 = 1, - S2MPS11_REG_INT2 = 2, - S2MPS11_REG_INT3 = 3, - S2MPS11_REG_INT1M = 4, - S2MPS11_REG_INT2M = 5, - S2MPS11_REG_INT3M = 6, - S2MPS11_REG_ST1 = 7, - S2MPS11_REG_ST2 = 8, - S2MPS11_REG_OFFSRC = 9, - S2MPS11_REG_PWRONSRC = 10, - S2MPS11_REG_RTC_CTRL = 11, - S2MPS11_REG_CTRL1 = 12, - S2MPS11_REG_ETC_TEST = 13, - S2MPS11_REG_RSVD3 = 14, - S2MPS11_REG_BU_CHG = 15, - S2MPS11_REG_RAMP = 16, - S2MPS11_REG_RAMP_BUCK = 17, - S2MPS11_REG_LDO1_8 = 18, - S2MPS11_REG_LDO9_16 = 19, - S2MPS11_REG_LDO17_24 = 20, - S2MPS11_REG_LDO25_32 = 21, - S2MPS11_REG_LDO33_38 = 22, - S2MPS11_REG_LDO1_8_1 = 23, - S2MPS11_REG_LDO9_16_1 = 24, - S2MPS11_REG_LDO17_24_1 = 25, - S2MPS11_REG_LDO25_32_1 = 26, - S2MPS11_REG_LDO33_38_1 = 27, - S2MPS11_REG_OTP_ADRL = 28, - S2MPS11_REG_OTP_ADRH = 29, - S2MPS11_REG_OTP_DATA = 30, - S2MPS11_REG_MON1SEL = 31, - S2MPS11_REG_MON2SEL = 32, - S2MPS11_REG_LEE = 33, - S2MPS11_REG_RSVD_NO = 34, - S2MPS11_REG_UVLO = 35, - S2MPS11_REG_LEE_NO = 36, - S2MPS11_REG_B1CTRL1 = 37, - S2MPS11_REG_B1CTRL2 = 38, - S2MPS11_REG_B2CTRL1 = 39, - S2MPS11_REG_B2CTRL2 = 40, - S2MPS11_REG_B3CTRL1 = 41, - S2MPS11_REG_B3CTRL2 = 42, - S2MPS11_REG_B4CTRL1 = 43, - S2MPS11_REG_B4CTRL2 = 44, - S2MPS11_REG_B5CTRL1 = 45, - S2MPS11_REG_BUCK5_SW = 46, - S2MPS11_REG_B5CTRL2 = 47, - S2MPS11_REG_B5CTRL3 = 48, - S2MPS11_REG_B5CTRL4 = 49, - S2MPS11_REG_B5CTRL5 = 50, - S2MPS11_REG_B6CTRL1 = 51, - S2MPS11_REG_B6CTRL2 = 52, - S2MPS11_REG_B7CTRL1 = 53, - S2MPS11_REG_B7CTRL2 = 54, - S2MPS11_REG_B8CTRL1 = 55, - S2MPS11_REG_B8CTRL2 = 56, - S2MPS11_REG_B9CTRL1 = 57, - S2MPS11_REG_B9CTRL2 = 58, - S2MPS11_REG_B10CTRL1 = 59, - S2MPS11_REG_B10CTRL2 = 60, - S2MPS11_REG_L1CTRL = 61, - S2MPS11_REG_L2CTRL = 62, - S2MPS11_REG_L3CTRL = 63, - S2MPS11_REG_L4CTRL = 64, - S2MPS11_REG_L5CTRL = 65, - S2MPS11_REG_L6CTRL = 66, - S2MPS11_REG_L7CTRL = 67, - S2MPS11_REG_L8CTRL = 68, - S2MPS11_REG_L9CTRL = 69, - S2MPS11_REG_L10CTRL = 70, - S2MPS11_REG_L11CTRL = 71, - S2MPS11_REG_L12CTRL = 72, - S2MPS11_REG_L13CTRL = 73, - S2MPS11_REG_L14CTRL = 74, - S2MPS11_REG_L15CTRL = 75, - S2MPS11_REG_L16CTRL = 76, - S2MPS11_REG_L17CTRL = 77, - S2MPS11_REG_L18CTRL = 78, - S2MPS11_REG_L19CTRL = 79, - S2MPS11_REG_L20CTRL = 80, - S2MPS11_REG_L21CTRL = 81, - S2MPS11_REG_L22CTRL = 82, - S2MPS11_REG_L23CTRL = 83, - S2MPS11_REG_L24CTRL = 84, - S2MPS11_REG_L25CTRL = 85, - S2MPS11_REG_L26CTRL = 86, - S2MPS11_REG_L27CTRL = 87, - S2MPS11_REG_L28CTRL = 88, - S2MPS11_REG_L29CTRL = 89, - S2MPS11_REG_L30CTRL = 90, - S2MPS11_REG_L31CTRL = 91, - S2MPS11_REG_L32CTRL = 92, - S2MPS11_REG_L33CTRL = 93, - S2MPS11_REG_L34CTRL = 94, - S2MPS11_REG_L35CTRL = 95, - S2MPS11_REG_L36CTRL = 96, - S2MPS11_REG_L37CTRL = 97, - S2MPS11_REG_L38CTRL = 98, -}; - -enum S2MPU02_reg { - S2MPU02_REG_ID = 0, - S2MPU02_REG_INT1 = 1, - S2MPU02_REG_INT2 = 2, - S2MPU02_REG_INT3 = 3, - S2MPU02_REG_INT1M = 4, - S2MPU02_REG_INT2M = 5, - S2MPU02_REG_INT3M = 6, - S2MPU02_REG_ST1 = 7, - S2MPU02_REG_ST2 = 8, - S2MPU02_REG_PWRONSRC = 9, - S2MPU02_REG_OFFSRC = 10, - S2MPU02_REG_BU_CHG = 11, - S2MPU02_REG_RTCCTRL = 12, - S2MPU02_REG_PMCTRL1 = 13, - S2MPU02_REG_RSVD1 = 14, - S2MPU02_REG_RSVD2 = 15, - S2MPU02_REG_RSVD3 = 16, - S2MPU02_REG_RSVD4 = 17, - S2MPU02_REG_RSVD5 = 18, - S2MPU02_REG_RSVD6 = 19, - S2MPU02_REG_RSVD7 = 20, - S2MPU02_REG_WRSTEN = 21, - S2MPU02_REG_RSVD8 = 22, - S2MPU02_REG_RSVD9 = 23, - S2MPU02_REG_RSVD10 = 24, - S2MPU02_REG_B1CTRL1 = 25, - S2MPU02_REG_B1CTRL2 = 26, - S2MPU02_REG_B2CTRL1 = 27, - S2MPU02_REG_B2CTRL2 = 28, - S2MPU02_REG_B3CTRL1 = 29, - S2MPU02_REG_B3CTRL2 = 30, - S2MPU02_REG_B4CTRL1 = 31, - S2MPU02_REG_B4CTRL2 = 32, - S2MPU02_REG_B5CTRL1 = 33, - S2MPU02_REG_B5CTRL2 = 34, - S2MPU02_REG_B5CTRL3 = 35, - S2MPU02_REG_B5CTRL4 = 36, - S2MPU02_REG_B5CTRL5 = 37, - S2MPU02_REG_B6CTRL1 = 38, - S2MPU02_REG_B6CTRL2 = 39, - S2MPU02_REG_B7CTRL1 = 40, - S2MPU02_REG_B7CTRL2 = 41, - S2MPU02_REG_RAMP1 = 42, - S2MPU02_REG_RAMP2 = 43, - S2MPU02_REG_L1CTRL = 44, - S2MPU02_REG_L2CTRL1 = 45, - S2MPU02_REG_L2CTRL2 = 46, - S2MPU02_REG_L2CTRL3 = 47, - S2MPU02_REG_L2CTRL4 = 48, - S2MPU02_REG_L3CTRL = 49, - S2MPU02_REG_L4CTRL = 50, - S2MPU02_REG_L5CTRL = 51, - S2MPU02_REG_L6CTRL = 52, - S2MPU02_REG_L7CTRL = 53, - S2MPU02_REG_L8CTRL = 54, - S2MPU02_REG_L9CTRL = 55, - S2MPU02_REG_L10CTRL = 56, - S2MPU02_REG_L11CTRL = 57, - S2MPU02_REG_L12CTRL = 58, - S2MPU02_REG_L13CTRL = 59, - S2MPU02_REG_L14CTRL = 60, - S2MPU02_REG_L15CTRL = 61, - S2MPU02_REG_L16CTRL = 62, - S2MPU02_REG_L17CTRL = 63, - S2MPU02_REG_L18CTRL = 64, - S2MPU02_REG_L19CTRL = 65, - S2MPU02_REG_L20CTRL = 66, - S2MPU02_REG_L21CTRL = 67, - S2MPU02_REG_L22CTRL = 68, - S2MPU02_REG_L23CTRL = 69, - S2MPU02_REG_L24CTRL = 70, - S2MPU02_REG_L25CTRL = 71, - S2MPU02_REG_L26CTRL = 72, - S2MPU02_REG_L27CTRL = 73, - S2MPU02_REG_L28CTRL = 74, - S2MPU02_REG_LDODSCH1 = 75, - S2MPU02_REG_LDODSCH2 = 76, - S2MPU02_REG_LDODSCH3 = 77, - S2MPU02_REG_LDODSCH4 = 78, - S2MPU02_REG_SELMIF = 79, - S2MPU02_REG_RSVD11 = 80, - S2MPU02_REG_RSVD12 = 81, - S2MPU02_REG_RSVD13 = 82, - S2MPU02_REG_DVSSEL = 83, - S2MPU02_REG_DVSPTR = 84, - S2MPU02_REG_DVSDATA = 85, -}; - -struct s2mps11_info { - int ramp_delay2; - int ramp_delay34; - int ramp_delay5; - int ramp_delay16; - int ramp_delay7810; - int ramp_delay9; - enum sec_device_type dev_type; - unsigned long suspend_state[2]; - struct gpio_desc **ext_control_gpiod; -}; - -struct sec_platform_data; - -struct sec_pmic_dev { - struct device *dev; - struct sec_platform_data *pdata; - struct regmap *regmap_pmic; - struct i2c_client *i2c; - unsigned long device_type; - int irq; - struct regmap_irq_chip_data *irq_data; -}; - -struct sec_regulator_data; - -struct sec_opmode_data; - -struct sec_platform_data { - struct sec_regulator_data *regulators; - struct sec_opmode_data *opmode; - int num_regulators; - int buck_gpios[3]; - int buck_ds[3]; - unsigned int buck2_voltage[8]; - bool buck2_gpiodvs; - unsigned int buck3_voltage[8]; - bool buck3_gpiodvs; - unsigned int buck4_voltage[8]; - bool buck4_gpiodvs; - int buck_default_idx; - int buck_ramp_delay; - bool buck2_ramp_enable; - bool buck3_ramp_enable; - bool buck4_ramp_enable; - int buck2_init; - int buck3_init; - int buck4_init; - bool manual_poweroff; - bool disable_wrstbi; -}; - -struct sec_regulator_data { - int id; - struct regulator_init_data *initdata; - struct device_node *reg_node; - struct gpio_desc *ext_control_gpiod; -}; - -struct sec_opmode_data { - int id; - unsigned int mode; -}; - -struct ldsem_waiter { - struct list_head list; - struct task_struct *task; -}; - -struct brcmuart_priv { - int line; - struct clk *baud_mux_clk; - unsigned long default_mux_rate; - u32 real_rates[4]; - const u32 *rate_table; - ktime_t char_wait; - struct uart_port *up; long: 32; - struct hrtimer hrt; - bool shutdown; - bool dma_enabled; - struct uart_8250_dma dma; - void *regs[5]; - dma_addr_t rx_addr; - void *rx_bufs; - size_t rx_size; - int rx_next_buf; - dma_addr_t tx_addr; - void *tx_buf; - size_t tx_size; - bool tx_running; - bool rx_running; - struct dentry *debugfs_dir; - u64 dma_rx_partial_buf; - u64 dma_rx_full_buf; - u32 rx_bad_timeout_late_char; - u32 rx_bad_timeout_no_char; - u32 rx_missing_close_timeout; - u32 rx_err; - u32 rx_timeout; - u32 rx_abort; - u32 saved_mctrl; long: 32; -}; - -struct bcm2835_rng_of_data { - bool mask_interrupts; -}; - -struct bcm2835_rng_priv { - struct hwrng rng; - void *base; - bool mask_interrupts; - struct clk *clk; - struct reset_control *reset; -}; - -typedef void (*btf_trace_host1x_channel_open)(void *, const char *); - -typedef void (*btf_trace_host1x_channel_release)(void *, const char *); - -typedef void (*btf_trace_host1x_cdma_begin)(void *, const char *); - -typedef void (*btf_trace_host1x_cdma_end)(void *, const char *); - -typedef void (*btf_trace_host1x_cdma_push)(void *, const char *, u32, u32); - -typedef void (*btf_trace_host1x_cdma_push_wide)(void *, const char *, u32, u32, u32, u32); - -typedef void (*btf_trace_host1x_cdma_push_gather)(void *, const char *, struct host1x_bo *, u32, u32, void *); - -typedef void (*btf_trace_host1x_channel_submit)(void *, const char *, u32, u32, u32, u32); - -typedef void (*btf_trace_host1x_channel_submitted)(void *, const char *, u32, u32); - -typedef void (*btf_trace_host1x_channel_submit_complete)(void *, const char *, int, u32); - -typedef void (*btf_trace_host1x_wait_cdma)(void *, const char *, u32); - -typedef void (*btf_trace_host1x_syncpt_load_min)(void *, u32, u32); - -typedef void (*btf_trace_host1x_syncpt_wait_check)(void *, struct host1x_bo *, u32, u32, u32, u32); - -struct trace_event_raw_host1x { - struct trace_entry ent; - const char *name; - char __data[0]; -}; - -struct trace_event_raw_host1x_cdma_push { - struct trace_entry ent; - const char *name; - u32 op1; - u32 op2; - char __data[0]; -}; - -struct trace_event_raw_host1x_cdma_push_wide { - struct trace_entry ent; - const char *name; - u32 op1; - u32 op2; - u32 op3; - u32 op4; - char __data[0]; -}; - -struct trace_event_raw_host1x_cdma_push_gather { - struct trace_entry ent; - const char *name; - struct host1x_bo *bo; - u32 words; - u32 offset; - bool cmdbuf; - u32 __data_loc_cmdbuf; - char __data[0]; -}; - -struct trace_event_raw_host1x_channel_submit { - struct trace_entry ent; - const char *name; - u32 cmdbufs; - u32 relocs; - u32 syncpt_id; - u32 syncpt_incrs; - char __data[0]; -}; - -struct trace_event_raw_host1x_channel_submitted { - struct trace_entry ent; - const char *name; - u32 syncpt_base; - u32 syncpt_max; - char __data[0]; -}; - -struct trace_event_raw_host1x_channel_submit_complete { - struct trace_entry ent; - const char *name; - int count; - u32 thresh; - char __data[0]; -}; - -struct trace_event_raw_host1x_wait_cdma { - struct trace_entry ent; - const char *name; - u32 eventid; - char __data[0]; -}; - -struct trace_event_raw_host1x_syncpt_load_min { - struct trace_entry ent; - u32 id; - u32 val; - char __data[0]; -}; - -struct trace_event_raw_host1x_syncpt_wait_check { - struct trace_entry ent; - struct host1x_bo *bo; - u32 offset; - u32 syncpt_id; - u32 thresh; - u32 min; - char __data[0]; -}; - -struct trace_event_data_offsets_host1x_cdma_push_gather { - u32 cmdbuf; -}; - -struct trace_event_data_offsets_host1x {}; - -struct trace_event_data_offsets_host1x_cdma_push {}; - -struct trace_event_data_offsets_host1x_cdma_push_wide {}; - -struct trace_event_data_offsets_host1x_channel_submit {}; - -struct trace_event_data_offsets_host1x_channel_submitted {}; - -struct trace_event_data_offsets_host1x_channel_submit_complete {}; - -struct trace_event_data_offsets_host1x_wait_cdma {}; - -struct trace_event_data_offsets_host1x_syncpt_load_min {}; - -struct trace_event_data_offsets_host1x_syncpt_wait_check {}; - -enum drm_of_lvds_pixels { - DRM_OF_LVDS_EVEN = 1, - DRM_OF_LVDS_ODD = 2, -}; - -enum drm_lvds_dual_link_pixels { - DRM_LVDS_DUAL_LINK_EVEN_ODD_PIXELS = 0, - DRM_LVDS_DUAL_LINK_ODD_EVEN_PIXELS = 1, -}; - -struct component_master_ops { - int (*bind)(struct device *); - void (*unbind)(struct device *); -}; - -struct of_endpoint { - unsigned int port; - unsigned int id; - const struct device_node *local_node; -}; - -struct tegra_drm_submit_data; - -struct tegra_drm_client; - -struct tegra_drm_firewall { - struct tegra_drm_submit_data *submit; - struct tegra_drm_client *client; - u32 *data; - u32 pos; - u32 end; - u32 class; -}; - -struct tegra_drm_used_mapping; - -struct tegra_drm_submit_data { - struct tegra_drm_used_mapping *used_mappings; - u32 num_used_mappings; -}; - -struct tegra_drm_mapping; - -struct tegra_drm_used_mapping { - struct tegra_drm_mapping *mapping; - u32 flags; -}; - -struct tegra_drm_mapping { - struct kref ref; - struct host1x_bo_mapping *map; - struct host1x_bo *bo; - dma_addr_t iova; - dma_addr_t iova_end; -}; - -struct tegra_drm_client_ops; - -struct tegra_drm_client { - struct host1x_client base; - struct list_head list; - struct tegra_drm *drm; - struct host1x_channel *shared_channel; - unsigned int version; - const struct tegra_drm_client_ops *ops; -}; - -struct tegra_drm_context; - -struct drm_tegra_submit; - -struct tegra_drm_client_ops { - int (*open_channel)(struct tegra_drm_client *, struct tegra_drm_context *); - void (*close_channel)(struct tegra_drm_context *); - int (*is_addr_reg)(struct device *, u32, u32); - int (*is_valid_class)(u32); - int (*submit)(struct tegra_drm_context *, struct drm_tegra_submit *, struct drm_device *, struct drm_file *); - int (*get_streamid_offset)(struct tegra_drm_client *, u32 *); - int (*can_use_memory_ctx)(struct tegra_drm_client *, bool *); -}; - -struct tegra_drm_context { - struct tegra_drm_client *client; - struct host1x_channel *channel; - unsigned int id; - struct xarray mappings; - struct host1x_memory_context *memory_context; -}; - -struct drm_tegra_submit { - __u64 context; - __u32 num_syncpts; - __u32 num_cmdbufs; - __u32 num_relocs; - __u32 num_waitchks; - __u32 waitchk_mask; - __u32 timeout; - __u64 syncpts; - __u64 cmdbufs; - __u64 relocs; - __u64 waitchks; - __u32 fence; - __u32 reserved[5]; -}; - -struct class_attribute_string { - struct class_attribute attr; - char *str; -}; - -struct class_compat { - struct kobject *kobj; -}; - -struct brd_device { - int brd_number; - struct gendisk *brd_disk; - struct list_head brd_list; - struct xarray brd_pages; long: 32; - u64 brd_nr_pages; -}; - -enum max8997_haptic_motor_type { - MAX8997_HAPTIC_ERM = 0, - MAX8997_HAPTIC_LRA = 1, -}; - -enum max8997_haptic_pulse_mode { - MAX8997_EXTERNAL_MODE = 0, - MAX8997_INTERNAL_MODE = 1, -}; - -enum max8997_haptic_pwm_divisor { - MAX8997_PWM_DIVISOR_32 = 0, - MAX8997_PWM_DIVISOR_64 = 1, - MAX8997_PWM_DIVISOR_128 = 2, - MAX8997_PWM_DIVISOR_256 = 3, -}; - -enum max8997_led_mode { - MAX8997_NONE = 0, - MAX8997_FLASH_MODE = 1, - MAX8997_MOVIE_MODE = 2, - MAX8997_FLASH_PIN_CONTROL_MODE = 3, - MAX8997_MOVIE_PIN_CONTROL_MODE = 4, -}; - -enum max8997_pmic_reg { - MAX8997_REG_PMIC_ID0 = 0, - MAX8997_REG_PMIC_ID1 = 1, - MAX8997_REG_INTSRC = 2, - MAX8997_REG_INT1 = 3, - MAX8997_REG_INT2 = 4, - MAX8997_REG_INT3 = 5, - MAX8997_REG_INT4 = 6, - MAX8997_REG_INT1MSK = 8, - MAX8997_REG_INT2MSK = 9, - MAX8997_REG_INT3MSK = 10, - MAX8997_REG_INT4MSK = 11, - MAX8997_REG_STATUS1 = 13, - MAX8997_REG_STATUS2 = 14, - MAX8997_REG_STATUS3 = 15, - MAX8997_REG_STATUS4 = 16, - MAX8997_REG_MAINCON1 = 19, - MAX8997_REG_MAINCON2 = 20, - MAX8997_REG_BUCKRAMP = 21, - MAX8997_REG_BUCK1CTRL = 24, - MAX8997_REG_BUCK1DVS1 = 25, - MAX8997_REG_BUCK1DVS2 = 26, - MAX8997_REG_BUCK1DVS3 = 27, - MAX8997_REG_BUCK1DVS4 = 28, - MAX8997_REG_BUCK1DVS5 = 29, - MAX8997_REG_BUCK1DVS6 = 30, - MAX8997_REG_BUCK1DVS7 = 31, - MAX8997_REG_BUCK1DVS8 = 32, - MAX8997_REG_BUCK2CTRL = 33, - MAX8997_REG_BUCK2DVS1 = 34, - MAX8997_REG_BUCK2DVS2 = 35, - MAX8997_REG_BUCK2DVS3 = 36, - MAX8997_REG_BUCK2DVS4 = 37, - MAX8997_REG_BUCK2DVS5 = 38, - MAX8997_REG_BUCK2DVS6 = 39, - MAX8997_REG_BUCK2DVS7 = 40, - MAX8997_REG_BUCK2DVS8 = 41, - MAX8997_REG_BUCK3CTRL = 42, - MAX8997_REG_BUCK3DVS = 43, - MAX8997_REG_BUCK4CTRL = 44, - MAX8997_REG_BUCK4DVS = 45, - MAX8997_REG_BUCK5CTRL = 46, - MAX8997_REG_BUCK5DVS1 = 47, - MAX8997_REG_BUCK5DVS2 = 48, - MAX8997_REG_BUCK5DVS3 = 49, - MAX8997_REG_BUCK5DVS4 = 50, - MAX8997_REG_BUCK5DVS5 = 51, - MAX8997_REG_BUCK5DVS6 = 52, - MAX8997_REG_BUCK5DVS7 = 53, - MAX8997_REG_BUCK5DVS8 = 54, - MAX8997_REG_BUCK6CTRL = 55, - MAX8997_REG_BUCK6BPSKIPCTRL = 56, - MAX8997_REG_BUCK7CTRL = 57, - MAX8997_REG_BUCK7DVS = 58, - MAX8997_REG_LDO1CTRL = 59, - MAX8997_REG_LDO2CTRL = 60, - MAX8997_REG_LDO3CTRL = 61, - MAX8997_REG_LDO4CTRL = 62, - MAX8997_REG_LDO5CTRL = 63, - MAX8997_REG_LDO6CTRL = 64, - MAX8997_REG_LDO7CTRL = 65, - MAX8997_REG_LDO8CTRL = 66, - MAX8997_REG_LDO9CTRL = 67, - MAX8997_REG_LDO10CTRL = 68, - MAX8997_REG_LDO11CTRL = 69, - MAX8997_REG_LDO12CTRL = 70, - MAX8997_REG_LDO13CTRL = 71, - MAX8997_REG_LDO14CTRL = 72, - MAX8997_REG_LDO15CTRL = 73, - MAX8997_REG_LDO16CTRL = 74, - MAX8997_REG_LDO17CTRL = 75, - MAX8997_REG_LDO18CTRL = 76, - MAX8997_REG_LDO21CTRL = 77, - MAX8997_REG_MBCCTRL1 = 80, - MAX8997_REG_MBCCTRL2 = 81, - MAX8997_REG_MBCCTRL3 = 82, - MAX8997_REG_MBCCTRL4 = 83, - MAX8997_REG_MBCCTRL5 = 84, - MAX8997_REG_MBCCTRL6 = 85, - MAX8997_REG_OTPCGHCVS = 86, - MAX8997_REG_SAFEOUTCTRL = 90, - MAX8997_REG_LBCNFG1 = 94, - MAX8997_REG_LBCNFG2 = 95, - MAX8997_REG_BBCCTRL = 96, - MAX8997_REG_FLASH1_CUR = 99, - MAX8997_REG_FLASH2_CUR = 100, - MAX8997_REG_MOVIE_CUR = 101, - MAX8997_REG_GSMB_CUR = 102, - MAX8997_REG_BOOST_CNTL = 103, - MAX8997_REG_LEN_CNTL = 104, - MAX8997_REG_FLASH_CNTL = 105, - MAX8997_REG_WDT_CNTL = 106, - MAX8997_REG_MAXFLASH1 = 107, - MAX8997_REG_MAXFLASH2 = 108, - MAX8997_REG_FLASHSTATUS = 109, - MAX8997_REG_FLASHSTATUSMASK = 110, - MAX8997_REG_GPIOCNTL1 = 112, - MAX8997_REG_GPIOCNTL2 = 113, - MAX8997_REG_GPIOCNTL3 = 114, - MAX8997_REG_GPIOCNTL4 = 115, - MAX8997_REG_GPIOCNTL5 = 116, - MAX8997_REG_GPIOCNTL6 = 117, - MAX8997_REG_GPIOCNTL7 = 118, - MAX8997_REG_GPIOCNTL8 = 119, - MAX8997_REG_GPIOCNTL9 = 120, - MAX8997_REG_GPIOCNTL10 = 121, - MAX8997_REG_GPIOCNTL11 = 122, - MAX8997_REG_GPIOCNTL12 = 123, - MAX8997_REG_LDO1CONFIG = 128, - MAX8997_REG_LDO2CONFIG = 129, - MAX8997_REG_LDO3CONFIG = 130, - MAX8997_REG_LDO4CONFIG = 131, - MAX8997_REG_LDO5CONFIG = 132, - MAX8997_REG_LDO6CONFIG = 133, - MAX8997_REG_LDO7CONFIG = 134, - MAX8997_REG_LDO8CONFIG = 135, - MAX8997_REG_LDO9CONFIG = 136, - MAX8997_REG_LDO10CONFIG = 137, - MAX8997_REG_LDO11CONFIG = 138, - MAX8997_REG_LDO12CONFIG = 139, - MAX8997_REG_LDO13CONFIG = 140, - MAX8997_REG_LDO14CONFIG = 141, - MAX8997_REG_LDO15CONFIG = 142, - MAX8997_REG_LDO16CONFIG = 143, - MAX8997_REG_LDO17CONFIG = 144, - MAX8997_REG_LDO18CONFIG = 145, - MAX8997_REG_LDO21CONFIG = 146, - MAX8997_REG_DVSOKTIMER1 = 151, - MAX8997_REG_DVSOKTIMER2 = 152, - MAX8997_REG_DVSOKTIMER4 = 153, - MAX8997_REG_DVSOKTIMER5 = 154, - MAX8997_REG_PMIC_END = 155, -}; - -enum max8997_muic_reg { - MAX8997_MUIC_REG_ID = 0, - MAX8997_MUIC_REG_INT1 = 1, - MAX8997_MUIC_REG_INT2 = 2, - MAX8997_MUIC_REG_INT3 = 3, - MAX8997_MUIC_REG_STATUS1 = 4, - MAX8997_MUIC_REG_STATUS2 = 5, - MAX8997_MUIC_REG_STATUS3 = 6, - MAX8997_MUIC_REG_INTMASK1 = 7, - MAX8997_MUIC_REG_INTMASK2 = 8, - MAX8997_MUIC_REG_INTMASK3 = 9, - MAX8997_MUIC_REG_CDETCTRL = 10, - MAX8997_MUIC_REG_CONTROL1 = 12, - MAX8997_MUIC_REG_CONTROL2 = 13, - MAX8997_MUIC_REG_CONTROL3 = 14, - MAX8997_MUIC_REG_END = 15, -}; - -struct max8997_regulator_data; - -struct max8997_muic_platform_data; - -struct max8997_haptic_platform_data; - -struct max8997_led_platform_data; - -struct max8997_platform_data { - int ono; - struct max8997_regulator_data *regulators; - int num_regulators; - bool ignore_gpiodvs_side_effect; - int buck125_gpios[3]; - int buck125_default_idx; - unsigned int buck1_voltage[8]; - bool buck1_gpiodvs; - unsigned int buck2_voltage[8]; - bool buck2_gpiodvs; - unsigned int buck5_voltage[8]; - bool buck5_gpiodvs; - int eoc_mA; - int timeout; - struct max8997_muic_platform_data *muic_pdata; - struct max8997_haptic_platform_data *haptic_pdata; - struct max8997_led_platform_data *led_pdata; -}; - -struct max8997_regulator_data { - int id; - struct regulator_init_data *initdata; - struct device_node *reg_node; -}; - -struct max8997_muic_reg_data; - -struct max8997_muic_platform_data { - struct max8997_muic_reg_data *init_data; - int num_init_data; - int detcable_delay_ms; - int path_usb; - int path_uart; -}; - -struct max8997_muic_reg_data { - u8 addr; - u8 data; -}; - -struct max8997_haptic_platform_data { - unsigned int pwm_period; - enum max8997_haptic_motor_type type; - enum max8997_haptic_pulse_mode mode; - enum max8997_haptic_pwm_divisor pwm_divisor; - unsigned int internal_mode_pattern; - unsigned int pattern_cycle; - unsigned int pattern_signal_period; -}; - -struct max8997_led_platform_data { - enum max8997_led_mode mode[2]; - u8 brightness[2]; -}; - -struct max8997_dev { - struct device *dev; - struct max8997_platform_data *pdata; - struct i2c_client *i2c; - struct i2c_client *rtc; - struct i2c_client *haptic; - struct i2c_client *muic; - struct mutex iolock; - unsigned long type; - struct platform_device *battery; - int irq; - int ono; - struct irq_domain *irq_domain; - struct mutex irqlock; - int irq_masks_cur[11]; - int irq_masks_cache[11]; - u8 reg_dump[187]; - bool gpio_status[12]; -}; - -enum scsi_scan_mode { - SCSI_SCAN_INITIAL = 0, - SCSI_SCAN_RESCAN = 1, - SCSI_SCAN_MANUAL = 2, -}; - -struct scsi_proc_entry { - struct list_head entry; - const struct scsi_host_template *sht; - struct proc_dir_entry *proc_dir; - unsigned int present; -}; - -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 mtd_notifier { - void (*add)(struct mtd_info *); - void (*remove)(struct mtd_info *); - struct list_head list; -}; - -struct nand_op_parser_pattern; - -struct nand_op_parser { - const struct nand_op_parser_pattern *patterns; - unsigned int npatterns; -}; - -struct nand_op_parser_pattern_elem; - -struct nand_subop; - -struct nand_op_parser_pattern { - const struct nand_op_parser_pattern_elem *elems; - unsigned int nelems; - int (*exec)(struct nand_chip *, const struct nand_subop *); -}; - -struct nand_op_parser_addr_constraints { - unsigned int maxcycles; -}; - -struct nand_op_parser_data_constraints { - unsigned int maxlen; -}; - -struct nand_op_parser_pattern_elem { - enum nand_op_instr_type type; - bool optional; - union { - struct nand_op_parser_addr_constraints addr; - struct nand_op_parser_data_constraints data; - } ctx; -}; - -struct nand_subop { - unsigned int cs; - const struct nand_op_instr *instrs; - unsigned int ninstrs; - unsigned int first_instr_start_off; - unsigned int last_instr_end_off; -}; - -enum vf610_nfc_variant { - NFC_VFC610 = 1, -}; - -struct vf610_nfc { - struct nand_controller base; long: 32; - struct nand_chip chip; - struct device *dev; - void *regs; - struct completion cmd_done; - enum vf610_nfc_variant variant; - struct clk *clk; - bool data_access; - u32 ecc_mode; -}; - -enum { - UBI_VID_DYNAMIC = 1, - UBI_VID_STATIC = 2, -}; - -enum { - UBI_VTBL_AUTORESIZE_FLG = 1, - UBI_VTBL_SKIP_CRC_CHECK_FLG = 2, -}; - -struct xilinx_spi { - struct spi_bitbang bitbang; - struct completion done; - void *regs; - int irq; - bool force_irq; - u8 *rx_ptr; - const u8 *tx_ptr; - u8 bytes_per_word; - int buffer_size; - u32 cs_inactive; - unsigned int (*read_fn)(void *); - void (*write_fn)(u32, void *); -}; - -struct spi_board_info { - char modalias[32]; - const void *platform_data; - const struct software_node *swnode; - void *controller_data; - int irq; - u32 max_speed_hz; - u16 bus_num; - u16 chip_select; - u32 mode; -}; - -struct xspi_platform_data { - u16 num_chipselect; - u8 bits_per_word; - struct spi_board_info *devices; - u8 num_devices; - bool force_irq; -}; - -struct iproc_mdio_priv { - struct mii_bus *mii_bus; - void *base; -}; - -struct sun4ican_quirks { - bool has_reset; -}; - -struct sun4ican_priv { - struct can_priv can; - void *base; - struct clk *clk; - struct reset_control *reset; - spinlock_t cmdreg_lock; -}; - -enum E1000_INVM_STRUCTURE_TYPE { - E1000_INVM_UNINITIALIZED_STRUCTURE = 0, - E1000_INVM_WORD_AUTOLOAD_STRUCTURE = 1, - E1000_INVM_CSR_AUTOLOAD_STRUCTURE = 2, - E1000_INVM_PHY_REGISTER_AUTOLOAD_STRUCTURE = 3, - E1000_INVM_RSA_KEY_SHA256_STRUCTURE = 4, - E1000_INVM_INVALIDATED_STRUCTURE = 15, -}; - -struct e1000_fw_version { - u32 etrack_id; - u16 eep_major; - u16 eep_minor; - u16 eep_build; - u8 invm_major; - u8 invm_minor; - u8 invm_img_type; - bool or_valid; - u16 or_major; - u16 or_build; - u16 or_patch; -}; - -struct mvneta_statistic { - unsigned short offset; - unsigned short type; - const char name[32]; -}; - -enum mvneta_tx_buf_type { - MVNETA_TYPE_TSO = 0, - MVNETA_TYPE_SKB = 1, - MVNETA_TYPE_XDP_TX = 2, - MVNETA_TYPE_XDP_NDO = 3, -}; - -enum mvneta_bm_type { - MVNETA_BM_FREE = 0, - MVNETA_BM_LONG = 1, - MVNETA_BM_SHORT = 2, -}; - -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 netdev_xdp_act { - NETDEV_XDP_ACT_BASIC = 1, - NETDEV_XDP_ACT_REDIRECT = 2, - NETDEV_XDP_ACT_NDO_XMIT = 4, - NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, - NETDEV_XDP_ACT_HW_OFFLOAD = 16, - NETDEV_XDP_ACT_RX_SG = 32, - NETDEV_XDP_ACT_NDO_XMIT_SG = 64, - NETDEV_XDP_ACT_MASK = 127, -}; - -enum 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 { - __MVNETA_DOWN = 0, -}; - -enum { - TC_MQPRIO_HW_OFFLOAD_NONE = 0, - TC_MQPRIO_HW_OFFLOAD_TCS = 1, - __TC_MQPRIO_HW_OFFLOAD_MAX = 2, -}; - -enum { - TC_MQPRIO_SHAPER_DCB = 0, - TC_MQPRIO_SHAPER_BW_RATE = 1, - __TC_MQPRIO_SHAPER_MAX = 2, -}; - -enum xdp_buff_flags { - XDP_FLAGS_HAS_FRAGS = 1, - XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, -}; - -enum { - ETHTOOL_STAT_EEE_WAKEUP = 0, - ETHTOOL_STAT_SKB_ALLOC_ERR = 1, - ETHTOOL_STAT_REFILL_ERR = 2, - ETHTOOL_XDP_REDIRECT = 3, - ETHTOOL_XDP_PASS = 4, - ETHTOOL_XDP_DROP = 5, - ETHTOOL_XDP_TX = 6, - ETHTOOL_XDP_TX_ERR = 7, - ETHTOOL_XDP_XMIT = 8, - ETHTOOL_XDP_XMIT_ERR = 9, - ETHTOOL_MAX_STATS = 10, -}; - -enum xdp_action { - XDP_ABORTED = 0, - XDP_DROP = 1, - XDP_PASS = 2, - XDP_TX = 3, - XDP_REDIRECT = 4, -}; - -struct mvneta_pcpu_port; - -struct mvneta_pcpu_stats; - -struct mvneta_rx_queue; - -struct mvneta_tx_queue; - -struct mvneta_bm; - -struct mvneta_bm_pool; - -struct mvneta_port { - u8 id; - struct mvneta_pcpu_port __attribute__((btf_type_tag("percpu"))) *ports; - struct mvneta_pcpu_stats __attribute__((btf_type_tag("percpu"))) *stats; - unsigned long state; - int pkt_size; - void *base; - struct mvneta_rx_queue *rxqs; - struct mvneta_tx_queue *txqs; - struct net_device *dev; - struct hlist_node node_online; - struct hlist_node node_dead; - int rxq_def; - spinlock_t lock; - bool is_stopped; - u32 cause_rx_tx; long: 32; - struct napi_struct napi; - struct bpf_prog *xdp_prog; - struct clk *clk; - struct clk *clk_bus; - u8 mcast_count[256]; - u16 tx_ring_size; - u16 rx_ring_size; - phy_interface_t phy_interface; - struct device_node *dn; - unsigned int tx_csum_limit; - struct phylink *phylink; - struct phylink_config phylink_config; - struct phylink_pcs phylink_pcs; - struct phy *comphy; - struct mvneta_bm *bm_priv; - struct mvneta_bm_pool *pool_long; - struct mvneta_bm_pool *pool_short; - int bm_win_id; - bool eee_enabled; - bool eee_active; - bool tx_lpi_enabled; - u64 ethtool_stats[42]; - u32 indir[1]; - bool neta_armada3700; - bool neta_ac5; - u16 rx_offset_correction; - const struct mbus_dram_target_info *dram_target_info; long: 32; -}; - -struct mvneta_pcpu_port { - struct mvneta_port *pp; long: 32; - struct napi_struct napi; - u32 cause_rx_tx; long: 32; -}; - -struct mvneta_stats { - u64 rx_packets; - u64 rx_bytes; - u64 tx_packets; - u64 tx_bytes; - u64 xdp_redirect; - u64 xdp_pass; - u64 xdp_drop; - u64 xdp_xmit; - u64 xdp_xmit_err; - u64 xdp_tx; - u64 xdp_tx_err; -}; - -struct mvneta_ethtool_stats { - struct mvneta_stats ps; - u64 skb_alloc_error; - u64 refill_error; -}; - -struct mvneta_pcpu_stats { - struct u64_stats_sync syncp; long: 32; - struct mvneta_ethtool_stats es; - u64 rx_dropped; - u64 rx_errors; -}; - -struct mvneta_rx_desc; - -struct mvneta_rx_queue { - u8 id; - int size; - u32 pkts_coal; - u32 time_coal; - struct page_pool *page_pool; long: 32; long: 32; long: 32; @@ -92472,14 +96150,6 @@ struct mvneta_rx_queue { long: 32; long: 32; long: 32; - struct xdp_rxq_info xdp_rxq; - void **buf_virt_addr; - struct mvneta_rx_desc *descs; - dma_addr_t descs_phys; - int last_desc; - int next_desc_to_proc; - int first_to_refill; - u32 refill_num; long: 32; long: 32; long: 32; @@ -92489,766 +96159,11 @@ struct mvneta_rx_queue { long: 32; long: 32; long: 32; -}; - -struct mvneta_rx_desc { - u32 status; - u16 reserved1; - u16 data_size; - u32 buf_phys_addr; - u32 reserved2; - u32 buf_cookie; - u16 reserved3; - u16 reserved4; - u32 reserved5; - u32 reserved6; -}; - -struct mvneta_tx_buf; - -struct mvneta_tx_desc; - -struct mvneta_tx_queue { - u8 id; - int size; - int count; - int pending; - int tx_stop_threshold; - int tx_wake_threshold; - struct mvneta_tx_buf *buf; - int txq_put_index; - int txq_get_index; - u32 done_pkts_coal; - struct mvneta_tx_desc *descs; - dma_addr_t descs_phys; - int last_desc; - int next_desc_to_proc; - char *tso_hdrs[32]; - dma_addr_t tso_hdrs_phys[32]; - cpumask_t affinity_mask; -}; - -struct mvneta_tx_buf { - enum mvneta_tx_buf_type type; - union { - struct xdp_frame *xdpf; - struct sk_buff *skb; - }; -}; - -struct mvneta_tx_desc { - u32 command; - u16 reserved1; - u16 data_size; - u32 buf_phys_addr; - u32 reserved2; - u32 reserved3[4]; -}; - -struct mvneta_bm { - void *reg_base; - struct clk *clk; - struct platform_device *pdev; - struct gen_pool *bppi_pool; - void *bppi_virt_addr; - dma_addr_t bppi_phys_addr; - struct mvneta_bm_pool *bm_pools; -}; - -struct hwbm_pool { - int size; - int frag_size; - int buf_num; - int (*construct)(struct hwbm_pool *, void *); - struct mutex buf_lock; - void *priv; -}; - -struct mvneta_bm_pool { - struct hwbm_pool hwbm_pool; - u8 id; - enum mvneta_bm_type type; - int pkt_size; - u32 buf_size; - u32 *virt_addr; - dma_addr_t phys_addr; - u8 port_map; - struct mvneta_bm *priv; -}; - -struct tc_mqprio_qopt { - __u8 num_tc; - __u8 prio_tc_map[16]; - __u8 hw; - __u16 count[16]; - __u16 offset[16]; -}; - -struct tc_mqprio_qopt_offload { - struct tc_mqprio_qopt qopt; - struct netlink_ext_ack *extack; - u16 mode; - u16 shaper; - u32 flags; - u64 min_rate[16]; - u64 max_rate[16]; - unsigned long preemptible_tcs; long: 32; -}; - -struct xdp_frame_bulk { - int count; - void *xa; - void *q[16]; -}; - -struct page_pool_stats { - struct page_pool_alloc_stats alloc_stats; - struct page_pool_recycle_stats recycle_stats; -}; - -struct usb_phy_generic { - struct usb_phy phy; - struct device *dev; - struct clk *clk; - struct regulator *vcc; - struct gpio_desc *gpiod_reset; - struct gpio_desc *gpiod_vbus; - struct regulator *vbus_draw; - bool vbus_draw_enabled; - unsigned long mA; - unsigned int vbus; -}; - -enum isp1760_queue_head_types { - QH_CONTROL = 0, - QH_BULK = 1, - QH_INTERRUPT = 2, - QH_END = 3, -}; - -struct isp1760_qh { - struct list_head qh_list; - struct list_head qtd_list; - u32 toggle; - u32 ping; - int slot; - int tt_buffer_dirty; -}; - -struct isp1760_qtd { - u8 packet_type; - void *data_buffer; - u32 payload_addr; - struct list_head qtd_list; - struct urb *urb; - size_t length; - size_t actual_length; - u32 status; -}; - -typedef __u32 __dw; - -struct urb_listitem { - struct list_head urb_list; - struct urb *urb; -}; - -struct ptd { - __dw dw0; - __dw dw1; - __dw dw2; - __dw dw3; - __dw dw4; - __dw dw5; - __dw dw6; - __dw dw7; -}; - -struct ptd_le32 { - __le32 dw0; - __le32 dw1; - __le32 dw2; - __le32 dw3; - __le32 dw4; - __le32 dw5; - __le32 dw6; - __le32 dw7; -}; - -struct ds1307; - -struct chip_desc { - unsigned int alarm: 1; - u16 nvram_offset; - u16 nvram_size; - u8 offset; - u8 century_reg; - u8 century_enable_bit; - u8 century_bit; - u8 bbsqi_bit; - irq_handler_t irq_handler; - const struct rtc_class_ops *rtc_ops; - u16 trickle_charger_reg; - u8 (*do_trickle_setup)(struct ds1307 *, u32, bool); - bool requires_trickle_resistor; - bool charge_default; -}; - -enum ds_type { - unknown_ds_type = 0, - ds_1307 = 1, - ds_1308 = 2, - ds_1337 = 3, - ds_1338 = 4, - ds_1339 = 5, - ds_1340 = 6, - ds_1341 = 7, - ds_1388 = 8, - ds_3231 = 9, - m41t0 = 10, - m41t00 = 11, - m41t11 = 12, - mcp794xx = 13, - rx_8025 = 14, - rx_8130 = 15, - last_ds_type = 16, -}; - -struct ds1307 { - enum ds_type type; - struct device *dev; - struct regmap *regmap; - const char *name; - struct rtc_device *rtc; - struct clk_hw clks[2]; -}; - -enum { - DS3231_CLK_SQW = 0, - DS3231_CLK_32KHZ = 1, -}; - -struct ds1307_platform_data { - u8 trickle_charger_setup; -}; - -struct qup_i2c_block { - int count; - int pos; - int tx_tag_len; - int rx_tag_len; - int data_len; - int cur_blk_len; - int total_tx_len; - int total_rx_len; - int tx_fifo_data_pos; - int tx_fifo_free; - int rx_fifo_data_pos; - int fifo_available; - u32 tx_fifo_data; - u32 rx_fifo_data; - u8 *cur_data; - u8 *cur_tx_tags; - bool tx_tags_sent; - bool send_last_word; - bool rx_tags_fetched; - bool rx_bytes_read; - bool is_tx_blk_mode; - bool is_rx_blk_mode; - u8 tags[6]; -}; - -struct qup_i2c_tag { - u8 *start; - dma_addr_t addr; -}; - -struct qup_i2c_bam { - struct qup_i2c_tag tag; - struct dma_chan *dma; - struct scatterlist *sg; - unsigned int sg_cnt; -}; - -struct qup_i2c_dev { - struct device *dev; - void *base; - int irq; - struct clk *clk; - struct clk *pclk; long: 32; - struct i2c_adapter adap; - int clk_ctl; - int out_fifo_sz; - int in_fifo_sz; - int out_blk_sz; - int in_blk_sz; - int blk_xfer_limit; - unsigned long one_byte_t; - unsigned long xfer_timeout; - struct qup_i2c_block blk; - struct i2c_msg *msg; - int pos; - u32 bus_err; - u32 qup_err; - bool is_last; - bool is_smbus_read; - u32 config_run; - bool is_dma; - bool use_dma; - unsigned int max_xfer_sg_len; - unsigned int tag_buf_pos; - unsigned int blk_mode_threshold; - struct dma_pool *dpool; - struct qup_i2c_tag start_tag; - struct qup_i2c_bam brx; - struct qup_i2c_bam btx; - struct completion xfer; - void (*write_tx_fifo)(struct qup_i2c_dev *); - void (*read_rx_fifo)(struct qup_i2c_dev *); - void (*write_rx_tags)(struct qup_i2c_dev *); long: 32; -}; - -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 thermal_attr { - struct device_attribute attr; - char name[20]; -}; - -typedef void (*btf_trace_watchdog_start)(void *, struct watchdog_device *, int); - -struct watchdog_core_data { - struct device dev; - struct cdev cdev; - struct watchdog_device *wdd; - struct mutex lock; long: 32; - ktime_t last_keepalive; - ktime_t last_hw_keepalive; - ktime_t open_deadline; - struct hrtimer timer; - struct kthread_work work; - unsigned long status; -}; - -typedef void (*btf_trace_watchdog_ping)(void *, struct watchdog_device *, int); - -typedef void (*btf_trace_watchdog_stop)(void *, struct watchdog_device *, int); - -typedef void (*btf_trace_watchdog_set_timeout)(void *, struct watchdog_device *, unsigned int, int); - -struct trace_event_raw_watchdog_template { - struct trace_entry ent; - int id; - int err; - char __data[0]; -}; - -struct trace_event_raw_watchdog_set_timeout { - struct trace_entry ent; - int id; - unsigned int timeout; - int err; - char __data[0]; -}; - -struct trace_event_data_offsets_watchdog_template {}; - -struct trace_event_data_offsets_watchdog_set_timeout {}; - -struct cpu_data { - struct clk **pclk; - struct cpufreq_frequency_table *table; -}; - -struct sdmmc_dlyb; - -struct sdmmc_tuning_ops { - int (*dlyb_enable)(struct sdmmc_dlyb *); - void (*set_input_ck)(struct sdmmc_dlyb *); - int (*tuning_prepare)(struct mmci_host *); - int (*set_cfg)(struct sdmmc_dlyb *, int, int, bool); -}; - -struct sdmmc_dlyb { - void *base; - u32 unit; - u32 max; - struct sdmmc_tuning_ops *ops; -}; - -struct sdmmc_lli_desc { - u32 idmalar; - u32 idmabase; - u32 idmasize; -}; - -struct sdmmc_idma { - dma_addr_t sg_dma; - void *sg_cpu; - dma_addr_t bounce_dma_addr; - void *bounce_buf; - bool use_bounce_buffer; -}; - -struct esdhc_clk_fixup { - const unsigned int sd_dflt_max_clk; - const unsigned int max_clk[11]; -}; - -struct sdhci_esdhc { - u8 vendor_ver; - u8 spec_ver; - bool quirk_incorrect_hostver; - bool quirk_limited_clk_division; - bool quirk_unreliable_pulse_detection; - bool quirk_tuning_erratum_type1; - bool quirk_tuning_erratum_type2; - bool quirk_ignore_data_inhibit; - bool quirk_delay_before_data_reset; - bool quirk_trans_complete_erratum; - bool in_sw_tuning; - unsigned int peripheral_clock; - const struct esdhc_clk_fixup *clk_fixup; - u32 div_ratio; -}; - -struct scmi_optee_agent { - struct device *dev; - struct tee_context *tee_ctx; - u32 caps; - struct mutex mu; - struct list_head channel_list; -}; - -struct tee_client_device_id; - -struct tee_client_driver { - const struct tee_client_device_id *id_table; - struct device_driver driver; -}; - -struct tee_client_device_id { - uuid_t uuid; -}; - -enum scmi_optee_pta_cmd { - PTA_SCMI_CMD_CAPABILITIES = 0, - PTA_SCMI_CMD_PROCESS_SMT_CHANNEL = 1, - PTA_SCMI_CMD_PROCESS_SMT_CHANNEL_MESSAGE = 2, - PTA_SCMI_CMD_GET_CHANNEL = 3, - PTA_SCMI_CMD_PROCESS_MSG_CHANNEL = 4, -}; - -struct tee_client_device { - struct tee_client_device_id id; - struct device dev; -}; - -struct tee_ioctl_param { - __u64 attr; - __u64 a; - __u64 b; - __u64 c; -}; - -struct tee_ioctl_invoke_arg { - __u32 func; - __u32 session; - __u32 cancel_id; - __u32 ret; - __u32 ret_origin; - __u32 num_params; - struct tee_ioctl_param params[0]; -}; - -struct tee_ioctl_open_session_arg { - __u8 uuid[16]; - __u8 clnt_uuid[16]; - __u32 clnt_login; - __u32 cancel_id; - __u32 session; - __u32 ret; - __u32 ret_origin; - __u32 num_params; - struct tee_ioctl_param params[0]; -}; - -struct tee_ioctl_version_data { - __u32 impl_id; - __u32 impl_caps; - __u32 gen_caps; -}; - -struct scmi_optee_channel { - u32 channel_id; - u32 tee_session; - u32 caps; - u32 rx_len; - struct mutex mu; - struct scmi_chan_info *cinfo; - union { - struct scmi_shared_mem *shmem; - struct scmi_msg_payld *msg; - } req; - struct tee_shm *tee_shm; - struct list_head link; -}; - -enum rproc_crash_type { - RPROC_MMUFAULT = 0, - RPROC_WATCHDOG = 1, - RPROC_FATAL_ERROR = 2, -}; - -enum fw_resource_type { - RSC_CARVEOUT = 0, - RSC_DEVMEM = 1, - RSC_TRACE = 2, - RSC_VDEV = 3, - RSC_LAST = 4, - RSC_VENDOR_START = 128, - RSC_VENDOR_END = 512, -}; - -enum rproc_state { - RPROC_OFFLINE = 0, - RPROC_SUSPENDED = 1, - RPROC_RUNNING = 2, - RPROC_CRASHED = 3, - RPROC_DELETED = 4, - RPROC_ATTACHED = 5, - RPROC_DETACHED = 6, - RPROC_LAST = 7, -}; - -struct rproc_mem_entry { - void *va; - bool is_iomem; - dma_addr_t dma; - size_t len; - u32 da; - void *priv; - char name[32]; - struct list_head node; - u32 rsc_offset; - u32 flags; - u32 of_resm_idx; - int (*alloc)(struct rproc *, struct rproc_mem_entry *); - int (*release)(struct rproc *, struct rproc_mem_entry *); -}; - -struct rproc_debug_trace { - struct rproc *rproc; - struct dentry *tfile; - struct list_head node; - struct rproc_mem_entry trace_mem; -}; - -struct fw_rsc_vdev_vring { - u32 da; - u32 align; - u32 num; - u32 notifyid; - u32 pa; -}; - -struct fw_rsc_vdev { - u32 id; - u32 notifyid; - u32 dfeatures; - u32 gfeatures; - u32 config_len; - u8 status; - u8 num_of_vrings; - u8 reserved[2]; - struct fw_rsc_vdev_vring vring[0]; -}; - -struct fw_rsc_trace { - u32 da; - u32 len; - u32 reserved; - u8 name[32]; -}; - -struct fw_rsc_devmem { - u32 da; - u32 pa; - u32 len; - u32 flags; - u32 reserved; - u8 name[32]; -}; - -struct fw_rsc_carveout { - u32 da; - u32 pa; - u32 len; - u32 flags; - u32 reserved; - u8 name[32]; -}; - -struct fw_rsc_hdr { - u32 type; - u8 data[0]; -}; - -struct isl29018_scale { - unsigned int scale; - unsigned int uscale; -}; - -struct isl29018_chip_info { - const struct iio_chan_spec *channels; - int num_channels; - const struct iio_info *indio_info; - const struct regmap_config *regmap_cfg; -}; - -enum isl29018_int_time { - ISL29018_INT_TIME_16 = 0, - ISL29018_INT_TIME_12 = 1, - ISL29018_INT_TIME_8 = 2, - ISL29018_INT_TIME_4 = 3, -}; - -enum { - isl29018 = 0, - isl29023 = 1, - isl29035 = 2, -}; - -struct isl29018_chip { - struct regmap *regmap; - struct mutex lock; - int type; - unsigned int calibscale; - unsigned int ucalibscale; - unsigned int int_time; - struct isl29018_scale scale; - int prox_scheme; - bool suspended; - struct regulator *vcc_reg; -}; - -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; long: 32; -}; - -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); -}; - -struct bpf_scratchpad { - union { - __be32 diff[128]; - u8 buff[512]; - }; -}; - -enum { - BPF_F_NEIGH = 2, - BPF_F_PEER = 4, - BPF_F_NEXTHOP = 8, -}; - -enum { - BPF_F_RECOMPUTE_CSUM = 1, - BPF_F_INVALIDATE_HASH = 2, -}; - -enum bpf_hdr_start_off { - BPF_HDR_START_MAC = 0, - BPF_HDR_START_NET = 1, -}; - -enum { - BPF_F_HDR_FIELD_MASK = 15, -}; - -enum { - BPF_F_PSEUDO_HDR = 16, - BPF_F_MARK_MANGLED_0 = 32, - BPF_F_MARK_ENFORCE = 64, -}; - -enum { - BPF_CSUM_LEVEL_QUERY = 0, - BPF_CSUM_LEVEL_INC = 1, - BPF_CSUM_LEVEL_DEC = 2, - BPF_CSUM_LEVEL_RESET = 3, -}; - -enum { - BPF_F_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 xsk_queue; - -struct xdp_umem; - -struct xdp_sock { - struct sock sk; long: 32; long: 32; long: 32; @@ -93259,18 +96174,6 @@ struct xdp_sock { long: 32; long: 32; long: 32; - 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: 32; long: 32; long: 32; @@ -93279,16 +96182,6 @@ struct xdp_sock { long: 32; long: 32; long: 32; - 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: 32; long: 32; long: 32; @@ -93303,9017 +96196,9430 @@ struct xdp_sock { long: 32; long: 32; long: 32; -}; - -struct xdp_umem { - void *addrs; long: 32; - 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; long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + char data[0]; }; -enum { - BPF_F_BROADCAST = 8, - BPF_F_EXCLUDE_INGRESS = 16, -}; - -enum { - BPF_F_TUNINFO_IPV6 = 1, -}; - -enum { - BPF_F_TUNINFO_FLAGS = 16, -}; - -enum { - BPF_F_ZERO_CSUM_TX = 2, - BPF_F_DONT_FRAGMENT = 4, - BPF_F_SEQ_NUMBER = 8, - BPF_F_NO_TUNNEL_KEY = 16, -}; - -enum { - TCP_BPF_IW = 1001, - TCP_BPF_SNDCWND_CLAMP = 1002, - TCP_BPF_DELACK_MAX = 1003, - TCP_BPF_RTO_MIN = 1004, - TCP_BPF_SYN = 1005, - TCP_BPF_SYN_IP = 1006, - TCP_BPF_SYN_MAC = 1007, -}; - -enum { - BPF_FIB_LOOKUP_DIRECT = 1, - BPF_FIB_LOOKUP_OUTPUT = 2, - BPF_FIB_LOOKUP_SKIP_NEIGH = 4, - BPF_FIB_LOOKUP_TBID = 8, -}; - -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 { - SEG6_LOCAL_ACTION_UNSPEC = 0, - SEG6_LOCAL_ACTION_END = 1, - SEG6_LOCAL_ACTION_END_X = 2, - SEG6_LOCAL_ACTION_END_T = 3, - SEG6_LOCAL_ACTION_END_DX2 = 4, - SEG6_LOCAL_ACTION_END_DX6 = 5, - SEG6_LOCAL_ACTION_END_DX4 = 6, - SEG6_LOCAL_ACTION_END_DT6 = 7, - SEG6_LOCAL_ACTION_END_DT4 = 8, - SEG6_LOCAL_ACTION_END_B6 = 9, - SEG6_LOCAL_ACTION_END_B6_ENCAP = 10, - SEG6_LOCAL_ACTION_END_BM = 11, - SEG6_LOCAL_ACTION_END_S = 12, - SEG6_LOCAL_ACTION_END_AS = 13, - SEG6_LOCAL_ACTION_END_AM = 14, - SEG6_LOCAL_ACTION_END_BPF = 15, - SEG6_LOCAL_ACTION_END_DT46 = 16, - __SEG6_LOCAL_ACTION_MAX = 17, -}; - -enum { - BPF_LOAD_HDR_OPT_TCP_SYN = 1, -}; - -enum { - BPF_SKB_TSTAMP_UNSPEC = 0, - BPF_SKB_TSTAMP_DELIVERY_MONO = 1, -}; - -enum { - BPF_SK_LOOKUP_F_REPLACE = 1, - BPF_SK_LOOKUP_F_NO_REUSEPORT = 2, -}; - -typedef u64 (*btf_bpf_skb_get_pay_offset)(struct sk_buff *); - -typedef u64 (*btf_bpf_skb_get_nlattr)(struct sk_buff *, u32, u32); - -typedef u64 (*btf_bpf_skb_get_nlattr_nest)(struct sk_buff *, u32, u32); - -typedef u64 (*btf_bpf_skb_load_helper_8)(const struct sk_buff *, const void *, int, int); - -typedef u64 (*btf_bpf_skb_load_helper_8_no_cache)(const struct sk_buff *, int); - -typedef u64 (*btf_bpf_skb_load_helper_16)(const struct sk_buff *, const void *, int, int); - -typedef u64 (*btf_bpf_skb_load_helper_16_no_cache)(const struct sk_buff *, int); - -typedef u64 (*btf_bpf_skb_load_helper_32)(const struct sk_buff *, const void *, int, int); - -typedef u64 (*btf_bpf_skb_load_helper_32_no_cache)(const struct sk_buff *, int); - -typedef u64 (*btf_bpf_skb_store_bytes)(struct sk_buff *, u32, const void *, u32, u64); - -typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32); - -typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32); - -typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32); - -typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32); - -typedef u64 (*btf_bpf_sk_fullsock)(struct sock *); - -typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32); - -typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64); - -typedef u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64); - -typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum); - -typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum); - -typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64); - -typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64); - -typedef u64 (*btf_bpf_redirect)(u32, u64); - -typedef u64 (*btf_bpf_redirect_peer)(u32, u64); - -struct bpf_redir_neigh; - -typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64); - -struct bpf_redir_neigh { - __u32 nh_family; - union { - __be32 ipv4_nh; - __u32 ipv6_nh[4]; - }; -}; - -typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32); - -typedef u64 (*btf_bpf_msg_cork_bytes)(struct sk_msg *, u32); - -typedef u64 (*btf_bpf_msg_pull_data)(struct sk_msg *, u32, u32, u64); - -typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64); - -typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64); - -typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *); - -typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *); - -typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *); - -typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *); - -typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32); - -typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16); - -typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *); - -typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64); - -typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32); - -typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64); - -typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64); - -typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64); - -typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64); - -typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64); - -typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64); - -typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *); - -typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int); - -typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32); - -typedef u64 (*btf_bpf_xdp_store_bytes)(struct xdp_buff *, u32, void *, u32); - -typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int); - -typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int); - -typedef u64 (*btf_bpf_xdp_redirect)(u32, u64); - -typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64); - -typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64); - -struct bpf_tunnel_key; - -typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64); - -struct bpf_tunnel_key { - __u32 tunnel_id; - union { - __u32 remote_ipv4; - __u32 remote_ipv6[4]; - }; - __u8 tunnel_tos; - __u8 tunnel_ttl; - union { - __u16 tunnel_ext; - __be16 tunnel_flags; - }; - __u32 tunnel_label; - union { - __u32 local_ipv4; - __u32 local_ipv6[4]; - }; -}; - -typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32); - -typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64); - -typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32); - -typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32); - -typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *); - -typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int); - -typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *); - -typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int); - -typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64); - -typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *); - -typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); - -typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *); - -typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *); - -typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *); - -typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *); - -typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *); - -typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *); - -typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); - -typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); - -typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); - -typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); - -typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int); - -typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int); - -typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int); - -struct bpf_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]; - }; - union { - struct { - __be16 h_vlan_proto; - __be16 h_vlan_TCI; - }; - __u32 tbid; - }; - __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_lwt_seg6_store_bytes)(struct sk_buff *, u32, const void *, u32); - -typedef u64 (*btf_bpf_lwt_seg6_action)(struct sk_buff *, u32, void *, u32); - -typedef u64 (*btf_bpf_lwt_seg6_adjust_srh)(struct sk_buff *, u32, s32); - -struct bpf_sock_tuple; - -typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); - -struct bpf_sock_tuple { - union { - struct { - __be32 saddr; - __be32 daddr; - __be16 sport; - __be16 dport; - } ipv4; - struct { - __be32 saddr[4]; - __be32 daddr[4]; - __be16 sport; - __be16 dport; - } ipv6; - }; -}; - -typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_sk_release)(struct sock *); - -typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); - -typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); - -typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); - -typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); - -typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); - -struct bpf_tcp_sock { - __u32 snd_cwnd; - __u32 srtt_us; - __u32 rtt_min; - __u32 snd_ssthresh; - __u32 rcv_nxt; - __u32 snd_nxt; - __u32 snd_una; - __u32 mss_cache; - __u32 ecn_flags; - __u32 rate_delivered; - __u32 rate_interval_us; - __u32 packets_out; - __u32 retrans_out; - __u32 total_retrans; - __u32 segs_in; - __u32 data_segs_in; - __u32 segs_out; - __u32 data_segs_out; - __u32 lost_out; - __u32 sacked_out; - __u64 bytes_received; - __u64 bytes_acked; - __u32 dsack_dups; - __u32 delivered; - __u32 delivered_ce; - __u32 icsk_retransmits; -}; - -typedef u64 (*btf_bpf_tcp_sock)(struct sock *); - -typedef u64 (*btf_bpf_get_listener_sock)(struct sock *); - -typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *); - -typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); - -typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); - -typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64); - -typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64); - -typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64); - -typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64); - -typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32); - -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 seg6_bpf_srh_state { - struct ipv6_sr_hdr *srh; - u16 hdrlen; - bool valid; -}; - -struct tcp6_sock { - struct tcp_sock tcp; - struct ipv6_pinfo inet6; -}; - -struct udp6_sock { - struct udp_sock udp; - struct ipv6_pinfo inet6; +struct bpf_ringbuf_map { + struct bpf_map map; + struct bpf_ringbuf *rb; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; long: 32; long: 32; long: 32; }; -struct mptcp_sock {}; - -struct sock_fprog { - unsigned short len; - struct sock_filter __attribute__((btf_type_tag("user"))) *filter; +struct bpf_ringbuf_hdr { + u32 len; + u32 pg_off; }; -typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); - -struct fib6_result { - struct fib6_nh *nh; - struct fib6_info *f6i; - u32 fib6_flags; - u8 fib6_type; - struct rt6_info *rt6; +struct bp_slots_histogram { + atomic_t *count; }; -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, +struct rhltable { + struct rhashtable ht; }; -enum tcp_ca_ack_event_flags { - CA_ACK_SLOWPATH = 1, - CA_ACK_WIN_UPDATE = 2, - CA_ACK_ECE = 4, +struct bp_cpuinfo { + unsigned int cpu_pinned; + struct bp_slots_histogram tsk_pinned; }; -enum tcp_queue { - TCP_FRAG_IN_WRITE_QUEUE = 0, - TCP_FRAG_IN_RTX_QUEUE = 1, +enum bp_type_idx { + TYPE_INST = 0, + TYPE_DATA = 1, + TYPE_MAX = 2, }; enum { - SCM_TSTAMP_SND = 0, - SCM_TSTAMP_SCHED = 1, - SCM_TSTAMP_ACK = 2, -}; - -struct tcp_sack_block_wire { - __be32 start_seq; - __be32 end_seq; + HW_BREAKPOINT_EMPTY = 0, + HW_BREAKPOINT_R = 1, + HW_BREAKPOINT_W = 2, + HW_BREAKPOINT_RW = 3, + HW_BREAKPOINT_X = 4, + HW_BREAKPOINT_INVALID = 7, }; -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; - long: 32; +struct madvise_walk_private { + struct mmu_gather *tlb; + bool pageout; }; -struct devlink_dev_stats { - u32 reload_stats[6]; - u32 remote_reload_stats[6]; +struct mmu_notifier_range { + unsigned long start; + unsigned long end; }; -struct devlink_dpipe_headers; - -struct devlink_ops; +typedef unsigned int zap_flags_t; -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; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - char priv[0]; +struct zap_details { + struct folio *single_folio; + bool even_cows; + zap_flags_t zap_flags; }; -struct devlink_dpipe_header; - -struct devlink_dpipe_headers { - struct devlink_dpipe_header **headers; - unsigned int headers_count; +enum { + Opt_uid___3 = 0, + Opt_gid___4 = 1, + Opt_mode___2 = 2, + Opt_ptmxmode = 3, + Opt_newinstance = 4, + Opt_max = 5, + Opt_err___3 = 6, }; -struct devlink_dpipe_field; - -struct devlink_dpipe_header { - const char *name; - unsigned int id; - struct devlink_dpipe_field *fields; - unsigned int fields_count; - bool global; +struct pts_mount_opts { + int setuid; + int setgid; + kuid_t uid; + kgid_t gid; + umode_t mode; + umode_t ptmxmode; + int reserve; + int max; }; -enum devlink_dpipe_field_mapping_type { - DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0, - DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 1, +struct pts_fs_info { + struct ida allocated_ptys; + struct pts_mount_opts mount_opts; + struct super_block *sb; + struct dentry *ptmx_dentry; }; -struct devlink_dpipe_field { - const char *name; - unsigned int id; - unsigned int bitwidth; - enum devlink_dpipe_field_mapping_type mapping_type; +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 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, -}; +typedef unsigned short __kernel_uid16_t; -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, -}; +typedef __kernel_uid16_t uid16_t; -enum devlink_eswitch_encap_mode { - DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0, - DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 1, -}; +typedef unsigned short __kernel_gid16_t; -enum devlink_trap_action { - DEVLINK_TRAP_ACTION_DROP = 0, - DEVLINK_TRAP_ACTION_TRAP = 1, - DEVLINK_TRAP_ACTION_MIRROR = 2, -}; +typedef __kernel_gid16_t gid16_t; -enum devlink_selftest_status { - DEVLINK_SELFTEST_STATUS_SKIP = 0, - DEVLINK_SELFTEST_STATUS_PASS = 1, - DEVLINK_SELFTEST_STATUS_FAIL = 2, +struct ext4_xattr_ibody_header { + __le32 h_magic; }; -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 (*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_new)(struct devlink *, const struct devlink_port_new_attrs *, struct netlink_ext_ack *, struct devlink_port **); - 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 ext4_xattr_inode_array { + unsigned int count; + struct inode *inodes[0]; }; -struct devlink_flash_update_params { - const struct firmware *fw; - const char *component; - u32 overwrite_mask; -}; +struct ext4_io_end; -enum devlink_trap_type { - DEVLINK_TRAP_TYPE_DROP = 0, - DEVLINK_TRAP_TYPE_EXCEPTION = 1, - DEVLINK_TRAP_TYPE_CONTROL = 2, +typedef struct ext4_io_end ext4_io_end_t; + +struct ext4_io_submit { + struct writeback_control *io_wbc; + struct bio *io_bio; + ext4_io_end_t *io_end; + long: 32; + sector_t io_next_block; }; -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 mpage_da_data { + struct inode *inode; + struct writeback_control *wbc; + unsigned int can_map: 1; + unsigned long first_page; + unsigned long next_page; + unsigned long last_page; + struct ext4_map_blocks map; + struct ext4_io_submit io_submit; + unsigned int do_map: 1; + unsigned int scanned_until_end: 1; + unsigned int journalled_more_data: 1; + long: 32; }; -struct devlink_trap_group { - const char *name; - u16 id; - bool generic; - u32 init_policer_id; +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; }; -struct devlink_trap_policer { - u32 id; +struct ext4_io_end_vec { + struct list_head list; + loff_t offset; + ssize_t size; long: 32; - 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 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 devlink_cmd { - int (*dump_one)(struct sk_buff *, struct devlink *, struct netlink_callback *); -}; +typedef enum { + EXT4_IGET_NORMAL = 0, + EXT4_IGET_SPECIAL = 1, + EXT4_IGET_HANDLE = 2, + EXT4_IGET_BAD = 4, + EXT4_IGET_EA_INODE = 8, +} ext4_iget_flags; -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, +enum { + MOUNTPROC3_NULL = 0, + MOUNTPROC3_MNT = 1, + MOUNTPROC3_DUMP = 2, + MOUNTPROC3_UMNT = 3, + MOUNTPROC3_UMNTALL = 4, + MOUNTPROC3_EXPORT = 5, }; -struct devlink_nl_dump_state { - unsigned long instance; - int idx; - union { - struct { - u64 start_offset; - }; - struct { - u64 dump_ts; - }; - }; +enum { + MOUNTPROC_NULL = 0, + MOUNTPROC_MNT = 1, + MOUNTPROC_DUMP = 2, + MOUNTPROC_UMNT = 3, + MOUNTPROC_UMNTALL = 4, + MOUNTPROC_EXPORT = 5, }; -struct genl_dumpit_info { - const struct genl_family *family; - struct genl_split_ops op; - struct nlattr **attrs; +struct mountres { + int errno; + struct nfs_fh *fh; + unsigned int *auth_count; + rpc_authflavor_t *auth_flavors; }; -struct svc_xpt_user { - struct list_head list; - void (*callback)(struct svc_xpt_user *); +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; }; -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 nfs_callback_data { + unsigned int users; + struct svc_serv *serv; }; -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]; +enum { + SP_TASK_PENDING = 0, + SP_NEED_VICTIM = 1, + SP_VICTIM_REMAINS = 2, }; -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]; +enum nfs4_callback_procnum { + CB_NULL = 0, + CB_COMPOUND = 1, }; -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]; +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 maple_pnode; - -struct maple_metadata { - unsigned char end; - unsigned char gap; +enum { + NTFS_SYMBOL_TOKEN = 0, + NTFS_PHRASE_TOKEN = 1, + NTFS_TOKEN_MASK = 1, + NTFS_SB_SIZE_MASK = 4095, + NTFS_SB_SIZE = 4096, + NTFS_SB_IS_COMPRESSED = 32768, + NTFS_MAX_CB_SIZE = 65536, }; -struct maple_range_64 { - struct maple_pnode *parent; - unsigned long pivot[31]; - union { - void __attribute__((btf_type_tag("rcu"))) *slot[32]; - struct { - void __attribute__((btf_type_tag("rcu"))) *pad[31]; - struct maple_metadata meta; - }; - }; +enum { + SCANNED_GARBAGE = 0, + SCANNED_EMPTY_SPACE = -1, + SCANNED_A_NODE = -2, + SCANNED_A_CORRUPT_NODE = -3, + SCANNED_A_BAD_PAD_NODE = -4, }; -struct maple_arange_64 { - struct maple_pnode *parent; - unsigned long pivot[20]; - void __attribute__((btf_type_tag("rcu"))) *slot[21]; - unsigned long gap[21]; - struct maple_metadata meta; +enum { + LEB_FREED = 0, + LEB_FREED_IDX = 1, + LEB_RETAINED = 2, }; -struct maple_node { - union { - struct { - struct maple_pnode *parent; - void __attribute__((btf_type_tag("rcu"))) *slot[63]; - }; - 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 size_entry { + struct rb_node rb; + ino_t inum; + loff_t i_size; + loff_t d_size; + int exists; + struct inode *inode; }; -struct maple_topiary { - struct maple_pnode *parent; - struct maple_enode *next; +struct ubifs_cs_node { + struct ubifs_ch ch; + __le64 cmt_no; }; -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; +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 maple_big_node { - struct maple_pnode *parent; - unsigned long pivot[65]; +struct keyctl_dh_params { union { - struct maple_enode *slot[66]; - struct { - unsigned long padding[43]; - unsigned long gap[43]; - }; + __s32 private; + __s32 priv; }; - 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; + __s32 prime; + __s32 base; }; -struct ma_topiary { - struct maple_enode *head; - struct maple_enode *tail; - struct maple_tree *mtree; +struct keyctl_kdf_params { + char __attribute__((btf_type_tag("user"))) *hashname; + char __attribute__((btf_type_tag("user"))) *otherinfo; + __u32 otherinfolen; + __u32 __spare[8]; }; -struct trace_event_data_offsets_ma_op {}; - -struct trace_event_data_offsets_ma_read {}; - -struct trace_event_data_offsets_ma_write {}; - -typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int)); - -typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *); - -typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int); - -struct cpuhp_cpu_state { - enum cpuhp_state state; - enum cpuhp_state target; - enum cpuhp_state fail; - struct task_struct *thread; - bool should_run; - bool rollback; - bool single; - bool bringup; - struct hlist_node *node; - struct hlist_node *last; - enum cpuhp_state cb_state; - int result; - atomic_t ap_sync_state; - struct completion done_up; - struct completion done_down; +struct 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 cpuhp_step { - const char *name; - union { - int (*single)(unsigned int); - int (*multi)(unsigned int, struct hlist_node *); - } startup; +struct keyctl_pkey_params { + __s32 key_id; + __u32 in_len; union { - int (*single)(unsigned int); - int (*multi)(unsigned int, struct hlist_node *); - } teardown; - struct hlist_head list; - bool cant_stop; - bool multi_instance; -}; - -enum cpu_mitigations { - CPU_MITIGATIONS_OFF = 0, - CPU_MITIGATIONS_AUTO = 1, - CPU_MITIGATIONS_AUTO_NOSMT = 2, -}; - -enum cpuhp_sync_state { - SYNC_STATE_DEAD = 0, - SYNC_STATE_KICKED = 1, - SYNC_STATE_SHOULD_DIE = 2, - SYNC_STATE_ALIVE = 3, - SYNC_STATE_SHOULD_ONLINE = 4, - SYNC_STATE_ONLINE = 5, -}; - -enum cc_attr { - CC_ATTR_MEM_ENCRYPT = 0, - CC_ATTR_HOST_MEM_ENCRYPT = 1, - CC_ATTR_GUEST_MEM_ENCRYPT = 2, - CC_ATTR_GUEST_STATE_ENCRYPT = 3, - CC_ATTR_GUEST_UNROLL_STRING_IO = 4, - CC_ATTR_GUEST_SEV_SNP = 5, - CC_ATTR_HOTPLUG_DISABLED = 6, -}; - -enum 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 trace_event_raw_cpuhp_enter { - struct trace_entry ent; - unsigned int cpu; - int target; - int idx; - void *fun; - char __data[0]; + __u32 out_len; + __u32 in2_len; + }; + __u32 __spare[7]; }; -struct trace_event_raw_cpuhp_multi_enter { - struct trace_entry ent; - unsigned int cpu; - int target; - int idx; - void *fun; - char __data[0]; +struct blk_ia_range_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_independent_access_range *, char *); }; -struct trace_event_raw_cpuhp_exit { - struct trace_entry ent; - unsigned int cpu; - int state; - int idx; - int ret; - char __data[0]; +struct open_how { + __u64 flags; + __u64 mode; + __u64 resolve; }; -struct trace_event_data_offsets_cpuhp_enter {}; - -struct trace_event_data_offsets_cpuhp_multi_enter {}; - -struct trace_event_data_offsets_cpuhp_exit {}; - -struct kallsym_iter { - loff_t pos; - loff_t pos_mod_end; - loff_t pos_ftrace_mod_end; - loff_t pos_bpf_end; - unsigned long value; - unsigned int nameoff; - char type; - char name[512]; - char module_name[60]; - int exported; - int show_value; +struct io_open { + struct file *file; + int dfd; + u32 file_slot; + struct filename *filename; + struct open_how how; + unsigned long nofile; + long: 32; }; -struct bpf_iter__ksym { - union { - struct bpf_iter_meta *meta; - }; - union { - struct kallsym_iter *ksym; - }; +struct io_close { + struct file *file; + int fd; + u32 file_slot; }; -enum bpf_iter_feature { - BPF_ITER_RESCHED = 1, +union nested_table { + union nested_table __attribute__((btf_type_tag("rcu"))) *table; + struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket; }; -struct bpf_iter_target_info { +struct rhashtable_walker { struct list_head list; - const struct bpf_iter_reg *reg_info; - u32 btf_id; + struct bucket_table *tbl; }; -struct bpf_iter_link { - struct bpf_link link; - struct bpf_iter_aux_info aux; - struct bpf_iter_target_info *tinfo; +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 bpf_iter_priv_data { - struct bpf_iter_target_info *tinfo; - const struct bpf_iter_seq_info *seq_info; - struct bpf_prog *prog; - long: 32; - u64 session_id; - u64 seq_num; - bool done_stop; - long: 32; - u8 target_private[0]; -}; +typedef struct { + U64 rolling; + U64 stopMask; +} ldmRollingHashState_t; -typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64); +typedef size_t (*ZSTD_blockCompressor)(ZSTD_matchState_t *, seqStore_t *, U32 *, const void *, size_t); -typedef u64 (*btf_bpf_loop)(u32, void *, void *, u64); +typedef enum { + ZSTD_dtlm_fast = 0, + ZSTD_dtlm_full = 1, +} ZSTD_dictTableLoadMethod_e; -struct btf_iter_num; +struct word_at_a_time { + const unsigned long one_bits; + const unsigned long high_bits; +}; -struct bpf_iter_num { - __u64 __opaque[1]; +struct st_irq_syscfg { + struct regmap *regmap; + unsigned int syscfg; + unsigned int config; + bool ext_inverted; }; -struct bpf_iter_num_kern { - int cur; - int end; +struct phy_meson_axg_mipi_dphy_priv { + struct device *dev; + struct regmap *regmap; + struct clk *clk; + struct reset_control *reset; + struct phy *analog; + struct phy_configure_opts_mipi_dphy config; }; -struct bp_slots_histogram { - atomic_t *count; +struct ocelot_pincfg_data { + u8 pd_bit; + u8 pu_bit; + u8 drive_bits; + u8 schmitt_bit; }; -struct rhltable { - struct rhashtable ht; +struct ocelot_match_data { + struct pinctrl_desc desc; + struct ocelot_pincfg_data pincfg_data; }; -struct bp_cpuinfo { - unsigned int cpu_pinned; - struct bp_slots_histogram tsk_pinned; +struct ocelot_pin_caps { + unsigned int pin; + unsigned char functions[4]; + unsigned char a_functions[4]; }; -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 { + FUNC_CAN0_a = 0, + FUNC_CAN0_b = 1, + FUNC_CAN1 = 2, + FUNC_CLKMON = 3, + FUNC_NONE = 4, + FUNC_FC0_a = 5, + FUNC_FC0_b = 6, + FUNC_FC0_c = 7, + FUNC_FC1_a = 8, + FUNC_FC1_b = 9, + FUNC_FC1_c = 10, + FUNC_FC2_a = 11, + FUNC_FC2_b = 12, + FUNC_FC3_a = 13, + FUNC_FC3_b = 14, + FUNC_FC3_c = 15, + FUNC_FC4_a = 16, + FUNC_FC4_b = 17, + FUNC_FC4_c = 18, + FUNC_FC_SHRD0 = 19, + FUNC_FC_SHRD1 = 20, + FUNC_FC_SHRD2 = 21, + FUNC_FC_SHRD3 = 22, + FUNC_FC_SHRD4 = 23, + FUNC_FC_SHRD5 = 24, + FUNC_FC_SHRD6 = 25, + FUNC_FC_SHRD7 = 26, + FUNC_FC_SHRD8 = 27, + FUNC_FC_SHRD9 = 28, + FUNC_FC_SHRD10 = 29, + FUNC_FC_SHRD11 = 30, + FUNC_FC_SHRD12 = 31, + FUNC_FC_SHRD13 = 32, + FUNC_FC_SHRD14 = 33, + FUNC_FC_SHRD15 = 34, + FUNC_FC_SHRD16 = 35, + FUNC_FC_SHRD17 = 36, + FUNC_FC_SHRD18 = 37, + FUNC_FC_SHRD19 = 38, + FUNC_FC_SHRD20 = 39, + FUNC_GPIO = 40, + FUNC_IB_TRG_a = 41, + FUNC_IB_TRG_b = 42, + FUNC_IB_TRG_c = 43, + FUNC_IRQ0 = 44, + FUNC_IRQ_IN_a = 45, + FUNC_IRQ_IN_b = 46, + FUNC_IRQ_IN_c = 47, + FUNC_IRQ0_IN = 48, + FUNC_IRQ_OUT_a = 49, + FUNC_IRQ_OUT_b = 50, + FUNC_IRQ_OUT_c = 51, + FUNC_IRQ0_OUT = 52, + FUNC_IRQ1 = 53, + FUNC_IRQ1_IN = 54, + FUNC_IRQ1_OUT = 55, + FUNC_EXT_IRQ = 56, + FUNC_MIIM = 57, + FUNC_MIIM_a = 58, + FUNC_MIIM_b = 59, + FUNC_MIIM_c = 60, + FUNC_MIIM_Sa = 61, + FUNC_MIIM_Sb = 62, + FUNC_OB_TRG = 63, + FUNC_OB_TRG_a = 64, + FUNC_OB_TRG_b = 65, + FUNC_PHY_LED = 66, + FUNC_PCI_WAKE = 67, + FUNC_MD = 68, + FUNC_PTP0 = 69, + FUNC_PTP1 = 70, + FUNC_PTP2 = 71, + FUNC_PTP3 = 72, + FUNC_PTPSYNC_0 = 73, + FUNC_PTPSYNC_1 = 74, + FUNC_PTPSYNC_2 = 75, + FUNC_PTPSYNC_3 = 76, + FUNC_PTPSYNC_4 = 77, + FUNC_PTPSYNC_5 = 78, + FUNC_PTPSYNC_6 = 79, + FUNC_PTPSYNC_7 = 80, + FUNC_PWM = 81, + FUNC_PWM_a = 82, + FUNC_PWM_b = 83, + FUNC_QSPI1 = 84, + FUNC_QSPI2 = 85, + FUNC_R = 86, + FUNC_RECO_a = 87, + FUNC_RECO_b = 88, + FUNC_RECO_CLK = 89, + FUNC_SD = 90, + FUNC_SFP = 91, + FUNC_SFP_SD = 92, + FUNC_SG0 = 93, + FUNC_SG1 = 94, + FUNC_SG2 = 95, + FUNC_SGPIO_a = 96, + FUNC_SGPIO_b = 97, + FUNC_SI = 98, + FUNC_SI2 = 99, + FUNC_TACHO = 100, + FUNC_TACHO_a = 101, + FUNC_TACHO_b = 102, + FUNC_TWI = 103, + FUNC_TWI2 = 104, + FUNC_TWI3 = 105, + FUNC_TWI_SCL_M = 106, + FUNC_TWI_SLC_GATE = 107, + FUNC_TWI_SLC_GATE_AD = 108, + FUNC_UART = 109, + FUNC_UART2 = 110, + FUNC_UART3 = 111, + FUNC_USB_H_a = 112, + FUNC_USB_H_b = 113, + FUNC_USB_H_c = 114, + FUNC_USB_S_a = 115, + FUNC_USB_S_b = 116, + FUNC_USB_S_c = 117, + FUNC_PLL_STAT = 118, + FUNC_EMMC = 119, + FUNC_EMMC_SD = 120, + FUNC_REF_CLK = 121, + FUNC_RCVRD_CLK = 122, + FUNC_MAX = 123, }; enum { - FOLL_TOUCH = 65536, - FOLL_TRIED = 131072, - FOLL_REMOTE = 262144, - FOLL_PIN = 524288, - FOLL_FAST_ONLY = 1048576, - FOLL_UNLOCKABLE = 2097152, + PINCONF_BIAS = 0, + PINCONF_SCHMITT = 1, + PINCONF_DRIVE_STRENGTH = 2, }; -struct follow_page_context { - struct dev_pagemap *pgmap; - unsigned int page_mask; +struct ocelot_irq_work { + struct work_struct irq_work; + struct irq_desc *irq_desc; }; -struct open_how { - __u64 flags; - __u64 mode; - __u64 resolve; +struct ocelot_pmx_func { + const char **groups; + unsigned int ngroups; }; -struct folio_iter { - struct folio *folio; - size_t offset; - size_t length; - struct folio *_next; - size_t _seg_count; - int _i; +struct ocelot_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl; + struct gpio_chip gpio_chip; + struct regmap *map; + struct regmap *pincfg; + struct pinctrl_desc *desc; + const struct ocelot_pincfg_data *pincfg_data; + struct ocelot_pmx_func func[123]; + u8 stride; + struct workqueue_struct *wq; }; -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 berlin_pinctrl_function; + +struct berlin_pinctrl { + struct regmap *regmap; + struct device *dev; + const struct berlin_pinctrl_desc *desc; + struct berlin_pinctrl_function *functions; + unsigned int nfunctions; + struct pinctrl_dev *pctrl_dev; }; -struct mpage_data { - struct bio *bio; - long: 32; - sector_t last_block_in_bio; - get_block_t *get_block; - long: 32; +struct berlin_pinctrl_function { + const char *name; + const char **groups; + unsigned int ngroups; }; -struct partial_cluster { - ext4_fsblk_t pclu; - ext4_lblk_t lblk; - enum { - initial = 0, - tofree = 1, - nofree = 2, - } state; +struct mtk_drive_desc { + u8 min; + u8 max; + u8 step; + u8 scal; }; enum { - ES_WRITTEN_B = 0, - ES_UNWRITTEN_B = 1, - ES_DELAYED_B = 2, - ES_HOLE_B = 3, - ES_REFERENCED_B = 4, - ES_FLAGS = 5, + PINCTRL_PIN_REG_MODE = 0, + PINCTRL_PIN_REG_DIR = 1, + PINCTRL_PIN_REG_DI = 2, + PINCTRL_PIN_REG_DO = 3, + PINCTRL_PIN_REG_SR = 4, + PINCTRL_PIN_REG_SMT = 5, + PINCTRL_PIN_REG_PD = 6, + PINCTRL_PIN_REG_PU = 7, + PINCTRL_PIN_REG_E4 = 8, + PINCTRL_PIN_REG_E8 = 9, + PINCTRL_PIN_REG_TDSEL = 10, + PINCTRL_PIN_REG_RDSEL = 11, + PINCTRL_PIN_REG_DRV = 12, + PINCTRL_PIN_REG_PUPD = 13, + PINCTRL_PIN_REG_R0 = 14, + PINCTRL_PIN_REG_R1 = 15, + PINCTRL_PIN_REG_IES = 16, + PINCTRL_PIN_REG_PULLEN = 17, + PINCTRL_PIN_REG_PULLSEL = 18, + PINCTRL_PIN_REG_DRV_EN = 19, + PINCTRL_PIN_REG_DRV_E0 = 20, + PINCTRL_PIN_REG_DRV_E1 = 21, + PINCTRL_PIN_REG_DRV_ADV = 22, + PINCTRL_PIN_REG_RSEL = 23, + PINCTRL_PIN_REG_MAX = 24, }; -enum SHIFT_DIRECTION { - SHIFT_LEFT = 0, - SHIFT_RIGHT = 1, +struct mtk_pin_field { + u8 index; + u32 offset; + u32 mask; + u8 bitpos; + u8 next; }; -struct ext4_io_end_vec { - struct list_head list; - loff_t offset; - ssize_t size; - long: 32; +struct mvebu_pinctrl_group { + const char *name; + const struct mvebu_mpp_ctrl *ctrl; + struct mvebu_mpp_ctrl_data *data; + struct mvebu_mpp_ctrl_setting *settings; + unsigned int num_settings; + unsigned int gid; + unsigned int *pins; + unsigned int npins; }; -struct ext4_extent_tail { - __le32 et_checksum; +struct mvebu_pinctrl_function; + +struct mvebu_pinctrl { + struct device *dev; + struct pinctrl_dev *pctldev; + struct pinctrl_desc desc; + struct mvebu_pinctrl_group *groups; + unsigned int num_groups; + struct mvebu_pinctrl_function *functions; + unsigned int num_functions; + u8 variant; }; -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; +struct mvebu_pinctrl_function { + const char *name; + const char **groups; + unsigned int num_groups; }; -typedef struct ext4_io_end ext4_io_end_t; +typedef struct irq_chip * (*gpio_get_irq_chip_cb_t)(unsigned int); -enum { - PARSE_INVALID = 1, - PARSE_NOT_LONGNAME = 2, - PARSE_EOF = 3, +struct davinci_gpio_regs { + u32 dir; + u32 out_data; + u32 set_data; + u32 clr_data; + u32 in_data; + u32 set_rising; + u32 clr_rising; + u32 set_falling; + u32 clr_falling; + u32 intstat; }; -enum file_time_flags { - S_ATIME = 1, - S_MTIME = 2, - S_CTIME = 4, - S_VERSION = 8, +struct davinci_gpio_controller { + struct gpio_chip chip; + struct irq_domain *irq_domain; + spinlock_t lock; + void *regs[5]; + int gpio_unbanked; + int irqs[32]; + struct davinci_gpio_regs context[5]; + u32 binten_context; }; -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 davinci_gpio_irq_data { + void *regs; + struct davinci_gpio_controller *chip; + int bank_num; }; -typedef unsigned long long llu; - -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 davinci_gpio_platform_data { + bool no_auto_base; + u32 base; + u32 ngpio; + u32 gpio_unbanked; }; -struct __fat_dirent { - long d_ino; - __kernel_off_t d_off; - unsigned short d_reclen; - char d_name[256]; +enum twl4030_module_ids { + TWL4030_MODULE_AUDIO_VOICE = 9, + TWL4030_MODULE_GPIO = 10, + TWL4030_MODULE_INTBR = 11, + TWL4030_MODULE_TEST = 12, + TWL4030_MODULE_KEYPAD = 13, + TWL4030_MODULE_MADC = 14, + TWL4030_MODULE_INTERRUPTS = 15, + TWL4030_MODULE_PRECHARGE = 16, + TWL4030_MODULE_BACKUP = 17, + TWL4030_MODULE_INT = 18, + TWL5031_MODULE_ACCESSORY = 19, + TWL5031_MODULE_INTERRUPTS = 20, + TWL4030_MODULE_LAST = 21, }; -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; +enum gpio_lookup_flags { + GPIO_ACTIVE_HIGH = 0, + GPIO_ACTIVE_LOW = 1, + GPIO_OPEN_DRAIN = 2, + GPIO_OPEN_SOURCE = 4, + GPIO_PERSISTENT = 0, + GPIO_TRANSITORY = 8, + GPIO_PULL_UP = 16, + GPIO_PULL_DOWN = 32, + GPIO_PULL_DISABLE = 64, + GPIO_LOOKUP_FLAGS_DEFAULT = 0, }; -struct fat_slot_info { - loff_t i_pos; - loff_t slot_off; - int nr_slots; - struct msdos_dir_entry *de; - struct buffer_head *bh; - long: 32; +enum twl_module_ids { + TWL_MODULE_USB = 0, + TWL_MODULE_PIH = 1, + TWL_MODULE_MAIN_CHARGE = 2, + TWL_MODULE_PM_MASTER = 3, + TWL_MODULE_PM_RECEIVER = 4, + TWL_MODULE_RTC = 5, + TWL_MODULE_PWM = 6, + TWL_MODULE_LED = 7, + TWL_MODULE_SECURED_REG = 8, + TWL_MODULE_LAST = 9, }; -struct ubifs_global_debug_info { - unsigned int chk_gen: 1; - unsigned int chk_index: 1; - unsigned int chk_orph: 1; - unsigned int chk_lprops: 1; - unsigned int chk_fs: 1; - unsigned int tst_rcvry: 1; +struct twl4030_gpio_platform_data { + bool use_leds; + u8 mmc_cd; + u32 debounce; + u32 pullups; + u32 pulldowns; }; -enum { - UBIFS_SIMPLE_KEY_FMT = 0, +struct gpio_twl4030_priv { + struct gpio_chip gpio_chip; + struct mutex mutex; + int irq_base; + unsigned int usage_count; + unsigned int direction; + unsigned int out_state; }; -enum { - UBIFS_FLG_BIGLPT = 2, - UBIFS_FLG_SPACE_FIXUP = 4, - UBIFS_FLG_DOUBLE_HASH = 8, - UBIFS_FLG_ENCRYPTION = 16, - UBIFS_FLG_AUTHENTICATION = 32, +enum sti_cpt_edge { + CPT_EDGE_DISABLED = 0, + CPT_EDGE_RISING = 1, + CPT_EDGE_FALLING = 2, + CPT_EDGE_BOTH = 3, }; enum { - UBIFS_ITYPE_REG = 0, - UBIFS_ITYPE_DIR = 1, - UBIFS_ITYPE_LNK = 2, - UBIFS_ITYPE_BLK = 3, - UBIFS_ITYPE_CHR = 4, - UBIFS_ITYPE_FIFO = 5, - UBIFS_ITYPE_SOCK = 6, - UBIFS_ITYPES_CNT = 7, + PWMCLK_PRESCALE_LOW = 0, + PWMCLK_PRESCALE_HIGH = 1, + CPTCLK_PRESCALE = 2, + PWM_OUT_EN = 3, + PWM_CPT_EN = 4, + PWM_CPT_INT_EN = 5, + PWM_CPT_INT_STAT = 6, + MAX_REGFIELDS___3 = 7, }; -enum { - ASSACT_REPORT = 0, - ASSACT_RO = 1, - ASSACT_PANIC = 2, -}; +struct sti_pwm_compat_data; -enum { - UBIFS_KEY_HASH_R5 = 0, - UBIFS_KEY_HASH_TEST = 1, +struct sti_pwm_chip { + struct device *dev; + struct clk *pwm_clk; + struct clk *cpt_clk; + struct regmap *regmap; + struct sti_pwm_compat_data *cdata; + struct regmap_field *prescale_low; + struct regmap_field *prescale_high; + struct regmap_field *pwm_out_en; + struct regmap_field *pwm_cpt_en; + struct regmap_field *pwm_cpt_int_en; + struct regmap_field *pwm_cpt_int_stat; + struct pwm_chip chip; + struct pwm_device *cur; + unsigned long configured; + unsigned int en_count; + struct mutex sti_pwm_lock; + void *mmio; }; -struct ubifs_bud { - int lnum; - int start; - int jhead; - struct list_head list; - struct rb_node rb; - struct shash_desc *log_hash; -}; +struct sti_cpt_ddata; -struct ubifs_gced_idx_leb { - struct list_head list; - int lnum; - int unmap; +struct sti_pwm_compat_data { + const struct reg_field *reg_fields; + unsigned int pwm_num_devs; + unsigned int cpt_num_devs; + unsigned int max_pwm_cnt; + unsigned int max_prescale; + struct sti_cpt_ddata *ddata; }; -struct ubifs_branch { - __le32 lnum; - __le32 offs; - __le32 len; - __u8 key[0]; +struct sti_cpt_ddata { + u32 snapshot[3]; + unsigned int index; + struct mutex lock; + wait_queue_head_t wait; }; -struct fsck_inode { - struct rb_node rb; - ino_t inum; - umode_t mode; - unsigned int nlink; - unsigned int xattr_cnt; - int references; - int calc_cnt; - long: 32; - long long size; - unsigned int xattr_sz; - long: 32; - long long calc_sz; - long long calc_xcnt; - long long calc_xsz; - unsigned int xattr_nms; - long: 32; - long long calc_xnms; +struct msi_map { + int index; + int virq; }; -struct ubifs_idx_node { - struct ubifs_ch ch; - __le16 child_cnt; - __le16 level; - __u8 branches[0]; +enum { + RCAR_PCI_ACCESS_READ = 0, + RCAR_PCI_ACCESS_WRITE = 1, }; -struct fsck_data { - struct rb_root inodes; +struct rcar_pcie { + struct device *dev; + void *base; }; -struct ubifs_trun_node { - struct ubifs_ch ch; - __le32 inum; - __u8 padding[12]; - __le64 old_size; - __le64 new_size; +struct rcar_msi { + unsigned long used[1]; + struct irq_domain *domain; + struct mutex map_lock; + spinlock_t mask_lock; + int irq1; + int irq2; }; -struct ubifs_ref_node { - struct ubifs_ch ch; - __le32 lnum; - __le32 offs; - __le32 jhead; - __u8 padding[28]; +struct rcar_pcie_host { + struct rcar_pcie pcie; + struct phy *phy; + struct clk *bus_clk; + struct rcar_msi msi; + int (*phy_init_fn)(struct rcar_pcie_host *); }; -struct ubifs_orph_node { - struct ubifs_ch ch; - __le64 cmt_no; - __le64 inos[0]; +struct clk_dvp { + struct clk_hw_onecell_data *data; + struct reset_simple_data reset; }; -typedef int (*dbg_leaf_callback)(struct ubifs_info *, struct ubifs_zbranch *, void *); - -typedef int (*dbg_znode_callback)(struct ubifs_info *, struct ubifs_znode *, void *); +struct clk_hisi_phase { + struct clk_hw hw; + void *reg; + u32 *phase_degrees; + u32 *phase_regvals; + u8 phase_num; + u32 mask; + u8 shift; + u8 flags; + spinlock_t *lock; +}; -struct sha1_state; +struct clk_frac_pll { + struct clk_hw hw; + void *base; +}; -typedef void sha1_block_fn(struct sha1_state *, const u8 *, int); +struct imx_clk_gpr { + struct clk_hw hw; + struct regmap *regmap; + u32 mask; + u32 reg; + const u32 *mux_table; +}; -struct sha1_state { - u32 state[5]; - long: 32; - u64 count; - u8 buffer[64]; +enum imx_pllv4_type { + IMX_PLLV4_IMX7ULP = 0, + IMX_PLLV4_IMX8ULP = 1, + IMX_PLLV4_IMX8ULP_1GHZ = 2, }; -enum { - IOPRIO_HINT_NONE = 0, - IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1, - IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2, - IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3, - IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4, - IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5, - IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6, - IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7, +enum imx_pfdv2_type { + IMX_PFDV2_IMX7ULP = 0, + IMX_PFDV2_IMX8ULP = 1, }; -enum { - IOPRIO_WHO_PROCESS = 1, - IOPRIO_WHO_PGRP = 2, - IOPRIO_WHO_USER = 3, +struct mmp_clk_pll { + struct clk_hw hw; + unsigned long default_rate; + void *enable_reg; + u32 enable; + void *reg; + u8 shift; + unsigned long input_rate; + void *postdiv_reg; + u8 postdiv_shift; }; -struct io_cancel { - struct file *file; - long: 32; - u64 addr; - u32 flags; - s32 fd; +struct mmp_clk_unit { + unsigned int nr_clks; + struct clk **clk_table; + struct clk_onecell_data clk_data; }; -struct io_uring_sync_cancel_reg { - __u64 addr; - __s32 fd; - __u32 flags; - struct __kernel_timespec timeout; - __u64 pad[4]; +struct mmp_param_pll_clk { + unsigned int id; + char *name; + unsigned long default_rate; + unsigned long enable_offset; + u32 enable; + unsigned long offset; + u8 shift; + unsigned long input_rate; + unsigned long postdiv_offset; + unsigned long postdiv_shift; }; -typedef ZSTD_parameters zstd_parameters; +struct rockchip_muxgrf_clock { + struct clk_hw hw; + struct regmap *regmap; + u32 reg; + u32 shift; + u32 width; + int flags; +}; -typedef ZSTD_CCtx zstd_cctx; +struct samsung_clk_pll { + struct clk_hw hw; + void *lock_reg; + void *con_reg; + unsigned short enable_offs; + unsigned short lock_offs; + enum samsung_pll_type type; + unsigned int rate_count; + const struct samsung_pll_rate_table *rate_table; +}; -typedef ZSTD_CStream zstd_cstream; +enum exynos5x_soc { + EXYNOS5420 = 0, + EXYNOS5800 = 1, +}; -typedef ZSTD_compressionParameters zstd_compression_parameters; +struct exynos5_subcmu_reg_dump; -typedef enum { - ZSTD_lo_isRegularOffset = 0, - ZSTD_lo_isLongOffset = 1, -} ZSTD_longOffset_e; +struct exynos5_subcmu_info { + const struct samsung_div_clock *div_clks; + unsigned int nr_div_clks; + const struct samsung_gate_clock *gate_clks; + unsigned int nr_gate_clks; + struct exynos5_subcmu_reg_dump *suspend_regs; + unsigned int nr_suspend_regs; + const char *pd_name; +}; -typedef struct { - U32 fastMode; - U32 tableLog; -} ZSTD_seqSymbol_header; +struct exynos5_subcmu_reg_dump { + u32 offset; + u32 value; + u32 mask; + u32 save; +}; -struct ZSTD_DDict_s { - void *dictBuffer; - const void *dictContent; - size_t dictSize; - ZSTD_entropyDTables_t entropy; - U32 dictID; - U32 entropyPresent; - ZSTD_customMem cMem; +enum exynos5x_plls { + apll___2 = 0, + cpll = 1, + dpll = 2, + epll___2 = 3, + rpll = 4, + ipll = 5, + spll = 6, + vpll___2 = 7, + mpll___2 = 8, + bpll = 9, + kpll = 10, + nr_plls___2 = 11, }; -typedef enum { - not_streaming = 0, - is_streaming = 1, -} streaming_operation; +struct ccu_pll_nb { + struct notifier_block clk_nb; + struct ccu_common *common; + u32 enable; + u32 lock; +}; -typedef struct { - size_t litLength; - size_t matchLength; - size_t offset; -} seq_t; +struct sunxi_ccu { + const struct sunxi_ccu_desc *desc; + spinlock_t lock; + struct ccu_reset reset; +}; -typedef struct { - size_t state; - const ZSTD_seqSymbol *table; -} ZSTD_fseState; +typedef void (*tegra_clk_apply_init_table_func)(); -typedef struct { - BIT_DStream_t DStream; - ZSTD_fseState stateLL; - ZSTD_fseState stateOffb; - ZSTD_fseState stateML; - size_t prevOffset[3]; -} seqState_t; +struct tegra_clk_duplicate { + int clk_id; + struct clk_lookup lookup; +}; -typedef struct { - blockType_e blockType; - U32 lastBlock; - U32 origSize; -} blockProperties_t; +struct component_clk; -struct gic_quirk { - const char *desc; - const char *compatible; - const char *property; - bool (*init)(void *); - u32 iidr; - u32 mask; +struct clk_hw_omap_comp { + struct clk_hw hw; + struct device_node *comp_nodes[3]; + struct component_clk *comp_clks[3]; }; -enum its_vcpu_info_cmd_type { - MAP_VLPI = 0, - GET_VLPI = 1, - PROP_UPDATE_VLPI = 2, - PROP_UPDATE_AND_INV_VLPI = 3, - SCHEDULE_VPE = 4, - DESCHEDULE_VPE = 5, - COMMIT_VPE = 6, - INVALL_VPE = 7, - PROP_UPDATE_VSGI = 8, +struct component_clk { + int num_parents; + const char **parent_names; + struct device_node *node; + int type; + struct clk_hw *hw; + struct list_head link; }; -struct its_vm; - -struct its_vpe { - struct page *vpt_page; - struct its_vm *its_vm; - atomic_t vlpi_count; - int irq; - irq_hw_number_t vpe_db_lpi; - bool resident; - bool ready; - union { - struct { - int vpe_proxy_event; - bool idai; - }; - struct { - struct fwnode_handle *fwnode; - struct irq_domain *sgi_domain; - struct { - u8 priority; - bool enabled; - bool group; - } sgi_config[16]; - atomic_t vmapp_count; - }; - }; - raw_spinlock_t vpe_lock; - u16 col_idx; - u16 vpe_id; - bool pending_last; +enum zynq_clk { + armpll = 0, + ddrpll = 1, + iopll = 2, + cpu_6or4x = 3, + cpu_3or2x = 4, + cpu_2x = 5, + cpu_1x = 6, + ddr2x = 7, + ddr3x = 8, + dci = 9, + lqspi = 10, + smc = 11, + pcap = 12, + gem0 = 13, + gem1 = 14, + fclk0 = 15, + fclk1 = 16, + fclk2 = 17, + fclk3 = 18, + can0 = 19, + can1 = 20, + sdio0 = 21, + sdio1 = 22, + uart0 = 23, + uart1 = 24, + spi0 = 25, + spi1 = 26, + dma = 27, + usb0_aper = 28, + usb1_aper = 29, + gem0_aper = 30, + gem1_aper = 31, + sdio0_aper = 32, + sdio1_aper = 33, + spi0_aper = 34, + spi1_aper = 35, + can0_aper = 36, + can1_aper = 37, + i2c0_aper = 38, + i2c1_aper = 39, + uart0_aper = 40, + uart1_aper = 41, + gpio_aper = 42, + lqspi_aper = 43, + smc_aper = 44, + swdt = 45, + dbg_trc = 46, + dbg_apb = 47, + clk_max = 48, }; -struct its_vm { - struct fwnode_handle *fwnode; - struct irq_domain *domain; - struct page *vprop_page; - struct its_vpe **vpes; - int nr_vpes; - irq_hw_number_t db_lpi_base; - unsigned long *db_bitmap; - int nr_db_lpis; - u32 vlpi_count[16]; +enum mv_xor_type { + XOR_ORION = 0, + XOR_ARMADA_38X = 1, + XOR_ARMADA_37XX = 2, }; -struct its_vlpi_map; - -struct its_cmd_info { - enum its_vcpu_info_cmd_type cmd_type; - union { - struct its_vlpi_map *map; - u8 config; - bool req_db; - struct { - bool g0en; - bool g1en; - }; - struct { - u8 priority; - bool group; - }; - }; +enum mv_xor_mode { + XOR_MODE_IN_REG = 0, + XOR_MODE_IN_DESC = 1, }; -struct its_vlpi_map { - struct its_vm *vm; - struct its_vpe *vpe; - u32 vintid; - u8 properties; - bool db_enabled; +struct mv_xor_device; + +struct mv_xor_chan { + int pending; + spinlock_t lock; + void *mmr_base; + void *mmr_high_base; + unsigned int idx; + int irq; + struct list_head chain; + struct list_head free_slots; + struct list_head allocated_slots; + struct list_head completed_slots; + dma_addr_t dma_desc_pool; + void *dma_desc_pool_virt; + size_t pool_size; + struct dma_device dmadev; + struct dma_chan dmachan; + int slots_allocated; + struct tasklet_struct irq_tasklet; + int op_in_desc; + char dummy_src[128]; + char dummy_dst[128]; + dma_addr_t dummy_src_addr; + dma_addr_t dummy_dst_addr; + u32 saved_config_reg; + u32 saved_int_mask_reg; + struct mv_xor_device *xordev; }; -struct stm32_exti_chip_data; +struct mv_xor_device { + void *xor_base; + void *xor_high_base; + struct clk *clk; + struct mv_xor_chan *channels[2]; + int xor_type; + u32 win_start[8]; + u32 win_end[8]; +}; -struct stm32_exti_drv_data; +struct mv_xor_desc_slot { + struct list_head node; + struct list_head sg_tx_list; + enum dma_transaction_type type; + void *hw_desc; + u16 idx; + struct dma_async_tx_descriptor async_tx; +}; -struct stm32_exti_host_data { - void *base; - struct stm32_exti_chip_data *chips_data; - const struct stm32_exti_drv_data *drv_data; - struct hwspinlock *hwlock; +struct mv_xor_desc { + u32 status; + u32 crc32_result; + u32 desc_command; + u32 phy_next_desc; + u32 byte_count; + u32 phy_dest_addr; + u32 phy_src_addr[8]; + u32 reserved0; + u32 reserved1; }; -struct stm32_exti_bank; +struct mv_xor_channel_data; -struct stm32_exti_chip_data { - struct stm32_exti_host_data *host_data; - const struct stm32_exti_bank *reg_bank; - struct raw_spinlock rlock; - u32 wake_active; - u32 mask_cache; - u32 rtsr_cache; - u32 ftsr_cache; +struct mv_xor_platform_data { + struct mv_xor_channel_data *channels; }; -struct stm32_exti_bank { - u32 imr_ofst; - u32 emr_ofst; - u32 rtsr_ofst; - u32 ftsr_ofst; - u32 swier_ofst; - u32 rpr_ofst; - u32 fpr_ofst; - u32 trg_ofst; +struct mv_xor_channel_data { + dma_cap_mask_t cap_mask; }; -struct stm32_exti_drv_data { - const struct stm32_exti_bank **exti_banks; - const u8 *desc_irqs; - u32 bank_nr; -}; +struct bcm2835_power; -enum bcm_usb_phy_version { - BCM_SR_USB_COMBO_PHY = 0, - BCM_SR_USB_HS_PHY = 1, +struct bcm2835_power_domain { + struct generic_pm_domain base; + struct bcm2835_power *power; + u32 domain; + struct clk *clk; + long: 32; }; -enum bcm_usb_phy_type { - USB_HS_PHY = 0, - USB_SS_PHY = 1, +struct bcm2835_power { + struct device *dev; + void *base; + void *asb; + void *rpivid_asb; + struct genpd_onecell_data pd_xlate; + long: 32; + struct bcm2835_power_domain domains[13]; + struct reset_controller_dev reset; + long: 32; }; -enum bcm_usb_phy_reg { - PLL_CTRL = 0, - PHY_CTRL = 1, - PHY_PLL_CTRL = 2, +struct bcm2835_pm { + struct device *dev; + void *base; + void *asb; + void *rpivid_asb; }; -enum bcm_usb_phy_ctrl_bits { - CORERDY = 0, - PHY_RESETB = 1, - PHY_PCTL = 2, +enum { + REGULATOR_ERROR_CLEARED = 0, + REGULATOR_FAILED_RETRY = 1, + REGULATOR_ERROR_ON = 2, }; -enum pll_ctrl_bits { - PLL_RESETB = 0, - SSPLL_SUSPEND_EN = 1, - PLL_SEQ_START = 2, - PLL_LOCK = 3, -}; +struct regulator_err_state; -struct bcm_usb_phy_cfg { - uint32_t type; - uint32_t version; - void *regs; - struct phy *phy; - const u8 *offset; +struct regulator_irq_data { + struct regulator_err_state *states; + int num_states; + void *data; + long opaque; }; -struct ocelot_pincfg_data { - u8 pd_bit; - u8 pu_bit; - u8 drive_bits; - u8 schmitt_bit; +struct regulator_irq_desc { + const char *name; + int fatal_cnt; + int reread_ms; + int irq_off_ms; + bool skip_off; + bool high_prio; + void *data; + int (*die)(struct regulator_irq_data *); + int (*map_event)(int, struct regulator_irq_data *, unsigned long *); + int (*renable)(struct regulator_irq_data *); }; -struct ocelot_match_data { - struct pinctrl_desc desc; - struct ocelot_pincfg_data pincfg_data; +struct regulator_irq { + struct regulator_irq_data rdata; + struct regulator_irq_desc desc; + int irq; + int retry_cnt; + struct delayed_work isr_work; }; -struct ocelot_pin_caps { - unsigned int pin; - unsigned char functions[4]; - unsigned char a_functions[4]; +struct regulator_err_state { + struct regulator_dev *rdev; + unsigned long notifs; + unsigned long errors; + int possible_errs; }; -enum { - FUNC_CAN0_a = 0, - FUNC_CAN0_b = 1, - FUNC_CAN1 = 2, - FUNC_CLKMON = 3, - FUNC_NONE = 4, - FUNC_FC0_a = 5, - FUNC_FC0_b = 6, - FUNC_FC0_c = 7, - FUNC_FC1_a = 8, - FUNC_FC1_b = 9, - FUNC_FC1_c = 10, - FUNC_FC2_a = 11, - FUNC_FC2_b = 12, - FUNC_FC3_a = 13, - FUNC_FC3_b = 14, - FUNC_FC3_c = 15, - FUNC_FC4_a = 16, - FUNC_FC4_b = 17, - FUNC_FC4_c = 18, - FUNC_FC_SHRD0 = 19, - FUNC_FC_SHRD1 = 20, - FUNC_FC_SHRD2 = 21, - FUNC_FC_SHRD3 = 22, - FUNC_FC_SHRD4 = 23, - FUNC_FC_SHRD5 = 24, - FUNC_FC_SHRD6 = 25, - FUNC_FC_SHRD7 = 26, - FUNC_FC_SHRD8 = 27, - FUNC_FC_SHRD9 = 28, - FUNC_FC_SHRD10 = 29, - FUNC_FC_SHRD11 = 30, - FUNC_FC_SHRD12 = 31, - FUNC_FC_SHRD13 = 32, - FUNC_FC_SHRD14 = 33, - FUNC_FC_SHRD15 = 34, - FUNC_FC_SHRD16 = 35, - FUNC_FC_SHRD17 = 36, - FUNC_FC_SHRD18 = 37, - FUNC_FC_SHRD19 = 38, - FUNC_FC_SHRD20 = 39, - FUNC_GPIO = 40, - FUNC_IB_TRG_a = 41, - FUNC_IB_TRG_b = 42, - FUNC_IB_TRG_c = 43, - FUNC_IRQ0 = 44, - FUNC_IRQ_IN_a = 45, - FUNC_IRQ_IN_b = 46, - FUNC_IRQ_IN_c = 47, - FUNC_IRQ0_IN = 48, - FUNC_IRQ_OUT_a = 49, - FUNC_IRQ_OUT_b = 50, - FUNC_IRQ_OUT_c = 51, - FUNC_IRQ0_OUT = 52, - FUNC_IRQ1 = 53, - FUNC_IRQ1_IN = 54, - FUNC_IRQ1_OUT = 55, - FUNC_EXT_IRQ = 56, - FUNC_MIIM = 57, - FUNC_MIIM_a = 58, - FUNC_MIIM_b = 59, - FUNC_MIIM_c = 60, - FUNC_MIIM_Sa = 61, - FUNC_MIIM_Sb = 62, - FUNC_OB_TRG = 63, - FUNC_OB_TRG_a = 64, - FUNC_OB_TRG_b = 65, - FUNC_PHY_LED = 66, - FUNC_PCI_WAKE = 67, - FUNC_MD = 68, - FUNC_PTP0 = 69, - FUNC_PTP1 = 70, - FUNC_PTP2 = 71, - FUNC_PTP3 = 72, - FUNC_PTPSYNC_0 = 73, - FUNC_PTPSYNC_1 = 74, - FUNC_PTPSYNC_2 = 75, - FUNC_PTPSYNC_3 = 76, - FUNC_PTPSYNC_4 = 77, - FUNC_PTPSYNC_5 = 78, - FUNC_PTPSYNC_6 = 79, - FUNC_PTPSYNC_7 = 80, - FUNC_PWM = 81, - FUNC_PWM_a = 82, - FUNC_PWM_b = 83, - FUNC_QSPI1 = 84, - FUNC_QSPI2 = 85, - FUNC_R = 86, - FUNC_RECO_a = 87, - FUNC_RECO_b = 88, - FUNC_RECO_CLK = 89, - FUNC_SD = 90, - FUNC_SFP = 91, - FUNC_SFP_SD = 92, - FUNC_SG0 = 93, - FUNC_SG1 = 94, - FUNC_SG2 = 95, - FUNC_SGPIO_a = 96, - FUNC_SGPIO_b = 97, - FUNC_SI = 98, - FUNC_SI2 = 99, - FUNC_TACHO = 100, - FUNC_TACHO_a = 101, - FUNC_TACHO_b = 102, - FUNC_TWI = 103, - FUNC_TWI2 = 104, - FUNC_TWI3 = 105, - FUNC_TWI_SCL_M = 106, - FUNC_TWI_SLC_GATE = 107, - FUNC_TWI_SLC_GATE_AD = 108, - FUNC_UART = 109, - FUNC_UART2 = 110, - FUNC_UART3 = 111, - FUNC_USB_H_a = 112, - FUNC_USB_H_b = 113, - FUNC_USB_H_c = 114, - FUNC_USB_S_a = 115, - FUNC_USB_S_b = 116, - FUNC_USB_S_c = 117, - FUNC_PLL_STAT = 118, - FUNC_EMMC = 119, - FUNC_EMMC_SD = 120, - FUNC_REF_CLK = 121, - FUNC_RCVRD_CLK = 122, - FUNC_MAX = 123, +struct regulator_voltage { + int min_uV; + int max_uV; }; -enum { - PINCONF_BIAS = 0, - PINCONF_SCHMITT = 1, - PINCONF_DRIVE_STRENGTH = 2, +struct regulator { + struct device *dev; + struct list_head list; + unsigned int always_on: 1; + unsigned int bypass: 1; + unsigned int device_link: 1; + int uA_load; + unsigned int enable_count; + unsigned int deferred_disables; + struct regulator_voltage voltage[5]; + const char *supply_name; + struct device_attribute dev_attr; + struct regulator_dev *rdev; + struct dentry *debugfs; }; -struct ocelot_irq_work { - struct work_struct irq_work; - struct irq_desc *irq_desc; +enum device_id { + MAX8973 = 0, + MAX77621 = 1, }; -struct ocelot_pmx_func { - const char **groups; - unsigned int ngroups; +struct max8973_regulator_platform_data { + struct regulator_init_data *reg_init_data; + unsigned long control_flags; + unsigned long junction_temp_warning; + bool enable_ext_control; + int enable_gpio; + int dvs_gpio; + unsigned int dvs_def_state: 1; }; -struct ocelot_pinctrl { +struct max8973_chip { struct device *dev; - struct pinctrl_dev *pctl; - struct gpio_chip gpio_chip; - struct regmap *map; - struct regmap *pincfg; - struct pinctrl_desc *desc; - const struct ocelot_pincfg_data *pincfg_data; - struct ocelot_pmx_func func[123]; - u8 stride; - struct workqueue_struct *wq; + struct regulator_desc desc; + struct regmap *regmap; + bool enable_external_control; + int dvs_gpio; + int lru_index[2]; + int curr_vout_val[2]; + int curr_vout_reg; + int curr_gpio_val; + struct regulator_ops ops; + enum device_id id; + int junction_temp_warning; + int irq; + struct thermal_zone_device *tz_device; }; -struct spear_function; - -struct spear_pingroup; - -struct spear_gpio_pingroup; - -struct spear_pmx; - -struct spear_pmx_mode; - -struct spear_pinctrl_machdata { - const struct pinctrl_pin_desc *pins; - unsigned int npins; - struct spear_function **functions; - unsigned int nfunctions; - struct spear_pingroup **groups; - unsigned int ngroups; - struct spear_gpio_pingroup *gpio_pingroups; - void (*gpio_request_endisable)(struct spear_pmx *, int, bool); - unsigned int ngpio_pingroups; - bool modes_supported; - u16 mode; - struct spear_pmx_mode **pmx_modes; - unsigned int npmx_modes; +struct twlreg_info { + u8 base; + u8 id; + u8 flags; + struct regulator_desc desc; + unsigned long features; + void *data; }; -struct spear_function { - const char *name; - const char * const *groups; - unsigned int ngroups; +enum regulator_status { + REGULATOR_STATUS_OFF = 0, + REGULATOR_STATUS_ON = 1, + REGULATOR_STATUS_ERROR = 2, + REGULATOR_STATUS_FAST = 3, + REGULATOR_STATUS_NORMAL = 4, + REGULATOR_STATUS_IDLE = 5, + REGULATOR_STATUS_STANDBY = 6, + REGULATOR_STATUS_BYPASS = 7, + REGULATOR_STATUS_UNDEFINED = 8, }; -struct spear_modemux; - -struct spear_pingroup { - const char *name; - const unsigned int *pins; - unsigned int npins; - struct spear_modemux *modemuxs; - unsigned int nmodemuxs; +struct uni_pagedict { + u16 **uni_pgdir[32]; + unsigned long refcount; + unsigned long sum; + unsigned char *inverse_translations[4]; + u16 *inverse_trans_unicode; }; -struct spear_muxreg; - -struct spear_modemux { - u16 modes; - u8 nmuxregs; - struct spear_muxreg *muxregs; +struct msm_dma { + struct dma_chan *chan; + enum dma_data_direction dir; + dma_addr_t phys; + unsigned char *virt; + dma_cookie_t cookie; + u32 enable_bit; + unsigned int count; + struct dma_async_tx_descriptor *desc; }; -struct spear_muxreg { - u16 reg; - u32 mask; - u32 val; +struct msm_port { + struct uart_port uart; + char name[16]; + struct clk *clk; + struct clk *pclk; + unsigned int imr; + int is_uartdm; + unsigned int old_snap_state; + bool break_detected; + struct msm_dma tx_dma; + struct msm_dma rx_dma; }; -struct spear_gpio_pingroup { - const unsigned int *pins; - unsigned int npins; - struct spear_muxreg *muxregs; - u8 nmuxregs; +struct msm_baud_map { + u16 divisor; + u8 code; + u8 rxstale; }; -struct spear_pmx { - struct device *dev; - struct pinctrl_dev *pctl; - struct spear_pinctrl_machdata *machdata; - struct regmap *regmap; +enum { + UARTDM_1P1 = 1, + UARTDM_1P2 = 2, + UARTDM_1P3 = 3, + UARTDM_1P4 = 4, }; -struct spear_pmx_mode { - const char * const name; - u16 mode; - u16 reg; - u16 mask; - u32 val; +struct qcom_adm_peripheral_config { + u32 crci; + u32 mux; }; -struct bcm_kona_gpio_bank; - -struct bcm_kona_gpio { - void *reg_base; - int num_bank; - raw_spinlock_t lock; - struct gpio_chip gpio_chip; - struct irq_domain *irq_domain; - struct bcm_kona_gpio_bank *banks; - struct platform_device *pdev; +struct omap_rom_rng { + struct clk *clk; + struct device *dev; + struct hwrng ops; + u32 (*rom_rng_call)(u32, u32, u32); }; -struct bcm_kona_gpio_bank { +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; - int irq; - struct bcm_kona_gpio *kona_gpio; -}; - -struct uniphier_gpio_priv { - struct gpio_chip chip; - struct irq_chip irq_chip; - struct irq_domain *domain; - void *regs; - spinlock_t lock; - u32 saved_vals[0]; + 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 bus_attribute { +struct iommu_group_attribute { struct attribute attr; - ssize_t (*show)(const struct bus_type *, char *); - ssize_t (*store)(const struct bus_type *, const char *, size_t); + ssize_t (*show)(struct iommu_group *, char *); + ssize_t (*store)(struct iommu_group *, const char *, size_t); }; -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 iommu_fault_type { + IOMMU_FAULT_DMA_UNRECOV = 1, + IOMMU_FAULT_PAGE_REQ = 2, }; -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, +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 dw_pcie; - -struct dw_pcie_ops { - u64 (*cpu_addr_fixup)(struct dw_pcie *, u64); - u32 (*read_dbi)(struct dw_pcie *, void *, u32, size_t); - void (*write_dbi)(struct dw_pcie *, void *, u32, size_t, u32); - void (*write_dbi2)(struct dw_pcie *, void *, u32, size_t, u32); - int (*link_up)(struct dw_pcie *); - int (*start_link)(struct dw_pcie *); - void (*stop_link)(struct dw_pcie *); +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 dw_pcie_host_ops; - -struct dw_pcie_rp { - bool has_msi_ctrl: 1; - bool cfg0_io_shared: 1; - long: 32; - u64 cfg0_base; - void *va_cfg0_base; - u32 cfg0_size; - resource_size_t io_base; - phys_addr_t io_bus_addr; - u32 io_size; - int irq; - const struct dw_pcie_host_ops *ops; - int msi_irq[8]; - struct irq_domain *irq_domain; - struct irq_domain *msi_domain; - dma_addr_t msi_data; - struct irq_chip *msi_irq_chip; - u32 num_vectors; - u32 irq_mask[8]; - struct pci_host_bridge *bridge; - raw_spinlock_t lock; - unsigned long msi_irq_in_use[8]; +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 dw_pcie_ep_ops; - -struct dw_pcie_ep { - struct pci_epc *epc; - struct list_head func_list; - const struct dw_pcie_ep_ops *ops; - phys_addr_t phys_base; - size_t addr_size; - size_t page_size; - u8 bar_to_atu[6]; - phys_addr_t *outbound_addr; - unsigned long *ib_window_map; - unsigned long *ob_window_map; - void *msi_mem; - phys_addr_t msi_mem_phys; - struct pci_epf_bar *epf_bar[6]; +enum { + IOMMU_SET_DOMAIN_MUST_SUCCEED = 1, }; -struct dw_edma_region { - u64 paddr; - union { - void *mem; - void *io; - } vaddr; - size_t sz; +struct group_device { + struct list_head list; + struct device *dev; + char *name; }; -enum dw_edma_map_format { - EDMA_MF_EDMA_LEGACY = 0, - EDMA_MF_EDMA_UNROLL = 1, - EDMA_MF_HDMA_COMPAT = 5, - EDMA_MF_HDMA_NATIVE = 7, +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 dw_edma; +struct fsl_mc_io; -struct dw_edma_plat_ops; +struct fsl_mc_device_irq; -struct dw_edma_chip { - struct device *dev; - int nr_irqs; - const struct dw_edma_plat_ops *ops; - u32 flags; - void *reg_base; - u16 ll_wr_cnt; - u16 ll_rd_cnt; - struct dw_edma_region ll_region_wr[8]; - struct dw_edma_region ll_region_rd[8]; - struct dw_edma_region dt_region_wr[8]; - struct dw_edma_region dt_region_rd[8]; - enum dw_edma_map_format mf; - struct dw_edma *dw; +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 dw_pcie { +struct fsl_mc_io { struct device *dev; - void *dbi_base; - void *dbi_base2; - void *atu_base; - size_t atu_size; - u32 num_ib_windows; - u32 num_ob_windows; - u32 region_align; - u64 region_limit; - struct dw_pcie_rp pp; - struct dw_pcie_ep ep; - const struct dw_pcie_ops *ops; - u32 version; - u32 type; - unsigned long caps; - int num_lanes; - int link_gen; - u8 n_fts[2]; - long: 32; - struct dw_edma_chip edma; - struct clk_bulk_data app_clks[3]; - struct clk_bulk_data core_clks[4]; - struct reset_control_bulk_data app_rsts[3]; - struct reset_control_bulk_data core_rsts[7]; - struct gpio_desc *pe_rst; - long: 32; + 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 dw_pcie_host_ops { - int (*host_init)(struct dw_pcie_rp *); - void (*host_deinit)(struct dw_pcie_rp *); - int (*msi_host_init)(struct dw_pcie_rp *); +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 dw_pcie_ep_ops { - void (*ep_init)(struct dw_pcie_ep *); - int (*raise_irq)(struct dw_pcie_ep *, u8, enum pci_epc_irq_type, u16); - const struct pci_epc_features * (*get_features)(struct dw_pcie_ep *); - unsigned int (*func_conf_select)(struct dw_pcie_ep *, u8); +struct fsl_mc_device_irq { + unsigned int virq; + struct fsl_mc_device *mc_dev; + u8 dev_irq_index; + struct fsl_mc_resource resource; }; -struct dw_edma_plat_ops { - int (*irq_vector)(struct device *, unsigned int); - u64 (*pci_address)(struct device *, phys_addr_t); +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 *); }; -enum dw_pcie_device_mode { - DW_PCIE_UNKNOWN_TYPE = 0, - DW_PCIE_EP_TYPE = 1, - DW_PCIE_LEG_EP_TYPE = 2, - DW_PCIE_RC_TYPE = 3, +struct group_for_pci_data { + struct pci_dev *pdev; + struct iommu_group *group; }; -struct dra7xx_pcie_of_data { - enum dw_pcie_device_mode mode; - u32 b1co_mode_sel_mask; +struct drm_mode_rect { + __s32 x1; + __s32 y1; + __s32 x2; + __s32 y2; }; -struct dra7xx_pcie { - struct dw_pcie *pci; - void *base; - int phy_count; - struct phy **phy; - struct irq_domain *irq_domain; - struct clk *clk; - enum dw_pcie_device_mode mode; +struct drm_format_modifier { + __u64 formats; + __u32 offset; + __u32 pad; + __u64 modifier; }; -struct owl_gate_hw { - u32 reg; - u8 bit_idx; - u8 gate_flags; +struct drm_format_modifier_blob { + __u32 version; + __u32 flags; + __u32 count_formats; + __u32 formats_offset; + __u32 count_modifiers; + __u32 modifiers_offset; }; -struct owl_gate { - struct owl_gate_hw gate_hw; - struct owl_clk_common common; +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 clk_pll_table; +struct drm_mode_get_plane_res { + __u64 plane_id_ptr; + __u32 count_planes; + long: 32; +}; -struct owl_pll_hw { - u32 reg; - u32 bfreq; - u8 bit_idx; - u8 shift; - u8 width; - u8 min_mul; - u8 max_mul; - u8 delay; - const struct clk_pll_table *table; +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 owl_pll { - struct owl_pll_hw pll_hw; - struct owl_clk_common common; +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 clk_pll_table { - unsigned int val; - unsigned long rate; +struct drm_mode_cursor { + __u32 flags; + __u32 crtc_id; + __s32 x; + __s32 y; + __u32 width; + __u32 height; + __u32 handle; }; -struct owl_mux_hw { - u32 reg; - u8 shift; - u8 width; +struct drm_mode_crtc_page_flip_target { + __u32 crtc_id; + __u32 fb_id; + __u32 flags; + __u32 sequence; + __u64 user_data; }; -struct owl_mux { - struct owl_mux_hw mux_hw; - struct owl_clk_common common; +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; }; -struct owl_divider_hw { - u32 reg; - u8 shift; - u8 width; - u8 div_flags; - struct clk_div_table *table; +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 clk_factor_table; +struct hdr_output_metadata { + __u32 metadata_type; + union { + struct hdr_metadata_infoframe hdmi_metadata_type1; + }; +}; -struct owl_factor_hw { - u32 reg; - u8 shift; - u8 width; - u8 fct_flags; - struct clk_factor_table *table; +struct gr3d_soc { + unsigned int version; + unsigned int num_clocks; + unsigned int num_resets; }; -union owl_rate { - struct owl_divider_hw div_hw; - struct owl_factor_hw factor_hw; - struct clk_fixed_factor fix_fact_hw; +enum { + RST_MC = 0, + RST_GR3D = 1, + RST_MC2 = 2, + RST_GR3D2 = 3, + RST_GR3D_MAX = 4, }; -struct owl_composite { - struct owl_mux_hw mux_hw; - struct owl_gate_hw gate_hw; - union owl_rate rate; - const struct clk_ops *fix_fact_ops; - struct owl_clk_common common; +struct gr3d { + struct tegra_drm_client client; + struct host1x_channel *channel; + const struct gr3d_soc *soc; + struct clk_bulk_data *clocks; + unsigned int nclocks; + struct reset_control_bulk_data resets[4]; + unsigned int nresets; + unsigned long addr_regs[117]; }; -struct clk_factor_table { - unsigned int val; - unsigned int mul; - unsigned int div; +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 owl_divider { - struct owl_divider_hw div_hw; - struct owl_clk_common common; +struct anon_transport_class { + struct transport_class tclass; + struct attribute_container container; }; -struct owl_factor { - struct owl_factor_hw factor_hw; - struct owl_clk_common common; +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); }; -struct owl_reset { - struct reset_controller_dev rcdev; - const struct owl_reset_map *reset_map; - struct regmap *regmap; +struct regmap_format { + size_t buf_size; + size_t reg_bytes; + size_t pad_bytes; + size_t val_bytes; + s8 reg_shift; + 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 *); }; -enum { - REFCLK___2 = 0, - SYSPLL___2 = 1, - CPUPLL___2 = 2, - AVPLL_B1___2 = 3, - AVPLL_B2___2 = 4, - AVPLL_B3___2 = 5, - AVPLL_B4___2 = 6, - AVPLL_B5___2 = 7, - AVPLL_B6___2 = 8, - AVPLL_B7___2 = 9, - AVPLL_B8___2 = 10, +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; + bool force_write_field; + 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; }; -struct clk_sscg_pll_setup { - int divr1; - int divf1; - int divr2; - int divf2; - int divq; - int bypass; - uint64_t vco1; - uint64_t vco2; - uint64_t fout; - uint64_t ref; - uint64_t ref_div1; - uint64_t ref_div2; - uint64_t fout_request; - int fout_error; - long: 32; +struct regmap_async { + struct list_head list; + struct regmap *map; + void *work_buf; }; -struct clk_sscg_pll { - struct clk_hw hw; - const struct clk_ops ops; - void *base; - long: 32; - struct clk_sscg_pll_setup setup; - u8 parent; - u8 bypass1; - u8 bypass2; - long: 32; +struct als_data { + struct mutex mutex; }; -enum { - MMP_CLK_MIX_TYPE_V1 = 0, - MMP_CLK_MIX_TYPE_V2 = 1, - MMP_CLK_MIX_TYPE_V3 = 2, +struct maxim_charger_current { + unsigned int min; + unsigned int high_start; + unsigned int high_step; + unsigned int max; }; -struct mmp_clk_mix { - struct clk_hw hw; - struct mmp_clk_mix_reg_info reg_info; - struct mmp_clk_mix_clk_table *table; - u32 *mux_table; - struct clk_div_table *div_table; - unsigned int table_size; - u8 div_flags; - u8 mux_flags; - unsigned int type; - spinlock_t *lock; +enum maxim_device_type { + MAXIM_DEVICE_TYPE_UNKNOWN = 0, + MAXIM_DEVICE_TYPE_MAX14577 = 1, + MAXIM_DEVICE_TYPE_MAX77836 = 2, + MAXIM_DEVICE_TYPE_NUM = 3, }; -enum exynos5250_plls { - apll___2 = 0, - mpll___2 = 1, - cpll___2 = 2, - epll___2 = 3, - vpll___2 = 4, - gpll = 5, - bpll___2 = 6, - nr_plls___2 = 7, +enum max14577_reg { + MAX14577_REG_DEVICEID = 0, + MAX14577_REG_INT1 = 1, + MAX14577_REG_INT2 = 2, + MAX14577_REG_INT3 = 3, + MAX14577_REG_STATUS1 = 4, + MAX14577_REG_STATUS2 = 5, + MAX14577_REG_STATUS3 = 6, + MAX14577_REG_INTMASK1 = 7, + MAX14577_REG_INTMASK2 = 8, + MAX14577_REG_INTMASK3 = 9, + MAX14577_REG_CDETCTRL1 = 10, + MAX14577_REG_RFU = 11, + MAX14577_REG_CONTROL1 = 12, + MAX14577_REG_CONTROL2 = 13, + MAX14577_REG_CONTROL3 = 14, + MAX14577_REG_CHGCTRL1 = 15, + MAX14577_REG_CHGCTRL2 = 16, + MAX14577_REG_CHGCTRL3 = 17, + MAX14577_REG_CHGCTRL4 = 18, + MAX14577_REG_CHGCTRL5 = 19, + MAX14577_REG_CHGCTRL6 = 20, + MAX14577_REG_CHGCTRL7 = 21, + MAX14577_REG_END = 22, }; -struct sun9i_a80_cpus_clk { - struct clk_hw hw; - void *reg; +enum max77836_pmic_reg { + MAX77836_PMIC_REG_PMIC_ID = 32, + MAX77836_PMIC_REG_PMIC_REV = 33, + MAX77836_PMIC_REG_INTSRC = 34, + MAX77836_PMIC_REG_INTSRC_MASK = 35, + MAX77836_PMIC_REG_TOPSYS_INT = 36, + MAX77836_PMIC_REG_TOPSYS_INT_MASK = 38, + MAX77836_PMIC_REG_TOPSYS_STAT = 40, + MAX77836_PMIC_REG_MRSTB_CNTL = 42, + MAX77836_PMIC_REG_LSCNFG = 43, + MAX77836_LDO_REG_CNFG1_LDO1 = 81, + MAX77836_LDO_REG_CNFG2_LDO1 = 82, + MAX77836_LDO_REG_CNFG1_LDO2 = 83, + MAX77836_LDO_REG_CNFG2_LDO2 = 84, + MAX77836_LDO_REG_CNFG_LDO_BIAS = 85, + MAX77836_COMP_REG_COMP1 = 96, + MAX77836_PMIC_REG_END = 97, }; -struct tegra_clk_device { - struct notifier_block clk_nb; +struct max14577 { struct device *dev; - struct clk_hw *hw; - struct mutex lock; + struct i2c_client *i2c; + struct i2c_client *i2c_pmic; + enum maxim_device_type dev_type; + struct regmap *regmap; + struct regmap *regmap_pmic; + struct regmap_irq_chip_data *irq_data; + struct regmap_irq_chip_data *irq_data_pmic; + int irq; }; -struct clk_prcc { - struct clk_hw hw; - void *base; - u32 cg_sel; - int is_enabled; -}; +struct max14577_regulator_platform_data; -struct d40_interrupt_lookup { - u32 src; - u32 clr; - bool is_error; - int offset; +struct max14577_platform_data { + int irq_base; + int gpio_pogo_vbatt_en; + int gpio_pogo_vbus_en; + int (*set_gpio_pogo_vbatt_en)(int); + int (*set_gpio_pogo_vbus_en)(int); + int (*set_gpio_pogo_cb)(int); + struct max14577_regulator_platform_data *regulators; }; -struct d40_reg_val { - unsigned int reg; - unsigned int val; +struct max14577_regulator_platform_data { + int id; + struct regulator_init_data *initdata; + struct device_node *of_node; }; -enum stedma40_mode { - STEDMA40_MODE_LOGICAL = 0, - STEDMA40_MODE_PHYSICAL = 1, - STEDMA40_MODE_OPERATION = 2, +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 stedma40_mode_opt { - STEDMA40_PCHAN_BASIC_MODE = 0, - STEDMA40_LCHAN_SRC_LOG_DST_LOG = 0, - STEDMA40_PCHAN_MODULO_MODE = 1, - STEDMA40_PCHAN_DOUBLE_DST_MODE = 2, - STEDMA40_LCHAN_SRC_PHY_DST_LOG = 3, - STEDMA40_LCHAN_SRC_LOG_DST_PHY = 4, +enum scsi_timeouts { + SCSI_DEFAULT_EH_TIMEOUT = 1000, }; -enum stedma40_flow_ctrl { - STEDMA40_NO_FLOW_CTRL = 0, - STEDMA40_FLOW_CTRL = 1, +struct async_scan_data { + struct list_head list; + struct Scsi_Host *shost; + struct completion prev_finished; }; -struct stedma40_half_channel_info { - bool big_endian; - enum dma_slave_buswidth data_width; - int psize; - enum stedma40_flow_ctrl flow_ctrl; -}; +typedef void (*activate_complete)(void *, int); -struct stedma40_chan_cfg { - enum dma_transfer_direction dir; - bool high_priority; - bool realtime; - enum stedma40_mode mode; - enum stedma40_mode_opt mode_opt; - int dev_type; - struct stedma40_half_channel_info src_info; - struct stedma40_half_channel_info dst_info; - bool use_fixed_channel; - int phy_channel; +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 *); }; -enum amba_vendor { - AMBA_VENDOR_ARM = 65, - AMBA_VENDOR_ST = 128, - AMBA_VENDOR_QCOM = 81, - AMBA_VENDOR_LSI = 182, +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 *); }; -enum d40_lli_flags { - LLI_ADDR_INC = 1, - LLI_TERM_INT = 2, - LLI_CYCLIC = 4, - LLI_LAST_LINK = 8, +struct scsi_lun { + __u8 scsi_lun[8]; }; -enum d40_command { - D40_DMA_STOP = 0, - D40_DMA_RUN = 1, - D40_DMA_SUSPEND_REQ = 2, - D40_DMA_SUSPENDED = 3, -}; +struct nand_ecc_caps; -enum d40_events { - D40_DEACTIVATE_EVENTLINE = 0, - D40_ACTIVATE_EVENTLINE = 1, - D40_SUSPEND_REQ_EVENTLINE = 2, - D40_ROUND_EVENTLINE = 3, +struct denali_dt_data { + unsigned int revision; + unsigned int caps; + unsigned int oob_skip_bytes; + const struct nand_ecc_caps *ecc_caps; }; -struct d40_phy_lli; +struct nand_ecc_step_info; -struct d40_phy_lli_bidir { - struct d40_phy_lli *src; - struct d40_phy_lli *dst; +struct nand_ecc_caps { + const struct nand_ecc_step_info *stepinfos; + int nstepinfos; + int (*calc_ecc_bytes)(int, int); }; -struct d40_log_lli; +struct nand_ecc_step_info { + int stepsize; + const int *strengths; + int nstrengths; +}; -struct d40_log_lli_bidir { - struct d40_log_lli *src; - struct d40_log_lli *dst; +struct denali_controller { + struct nand_controller controller; + struct device *dev; + struct list_head chips; + unsigned long clk_rate; + unsigned long clk_x_rate; + void *reg; + void *host; + struct completion complete; + int irq; + u32 irq_mask; + u32 irq_status; + spinlock_t irq_lock; + bool dma_avail; + int devs_per_cs; + int oob_skip_bytes; + int active_bank; + int nbanks; + unsigned int revision; + unsigned int caps; + const struct nand_ecc_caps *ecc_caps; + u32 (*host_read)(struct denali_controller *, u32); + void (*host_write)(struct denali_controller *, u32, u32); + void (*setup_dma)(struct denali_controller *, dma_addr_t, int, bool); }; -struct d40_lli_pool { - void *base; - int size; - dma_addr_t dma_addr; - u8 pre_alloc_lli[48]; +struct denali_chip_sel { + int bank; + u32 hwhr2_and_we_2_re; + u32 tcwaw_and_addr_2_data; + u32 re_2_we; + u32 acc_clks; + u32 rdwr_en_lo_cnt; + u32 rdwr_en_hi_cnt; + u32 cs_setup_cnt; + u32 re_2_re; }; -struct d40_desc { - struct d40_phy_lli_bidir lli_phy; - struct d40_log_lli_bidir lli_log; - struct d40_lli_pool lli_pool; - int lli_len; - int lli_current; - int lcla_alloc; - struct dma_async_tx_descriptor txd; +struct denali_chip { + struct nand_chip chip; struct list_head node; - bool is_in_client_list; - bool cyclic; + unsigned int nsels; + struct denali_chip_sel sels[0]; + long: 32; }; -struct d40_phy_lli { - u32 reg_cfg; - u32 reg_elt; - u32 reg_ptr; - u32 reg_lnk; +struct denali_dt { + struct denali_controller controller; + struct clk *clk; + struct clk *clk_x; + struct clk *clk_ecc; + struct reset_control *rst; + struct reset_control *rst_reg; }; -struct d40_log_lli { - u32 lcsp02; - u32 lcsp13; +enum { + POWER_CUT_EC_WRITE = 1, + POWER_CUT_VID_WRITE = 2, }; -struct d40_def_lcsp { - u32 lcsp3; - u32 lcsp1; +struct spi_ioc_transfer { + __u64 tx_buf; + __u64 rx_buf; + __u32 len; + __u32 speed_hz; + __u16 delay_usecs; + __u8 bits_per_word; + __u8 cs_change; + __u8 tx_nbits; + __u8 rx_nbits; + __u8 word_delay_usecs; + __u8 pad; }; -struct d40_phy_res; - -struct d40_base; - -struct d40_log_lli_full; - -struct d40_chan { - spinlock_t lock; - int log_num; - int pending_tx; - bool busy; - struct d40_phy_res *phy_chan; - struct dma_chan chan; - struct tasklet_struct tasklet; - struct list_head client; - struct list_head pending_queue; - struct list_head active; - struct list_head done; - struct list_head queue; - struct list_head prepare_queue; - struct stedma40_chan_cfg dma_cfg; - struct dma_slave_config slave_config; - bool configured; - struct d40_base *base; - u32 src_def_cfg; - u32 dst_def_cfg; - struct d40_def_lcsp log_def; - struct d40_log_lli_full *lcpa; - dma_addr_t runtime_addr; - enum dma_transfer_direction runtime_direction; +struct spidev_data { + dev_t devt; + struct mutex spi_lock; + struct spi_device *spi; + struct list_head device_entry; + struct mutex buf_lock; + unsigned int users; + u8 *tx_buffer; + u8 *rx_buffer; + u32 speed_hz; }; -struct d40_phy_res { - spinlock_t lock; - bool reserved; - int num; - u32 allocated_src; - u32 allocated_dst; - bool use_soft_lli; +struct sun4i_spi { + struct spi_controller *master; + void *base_addr; + struct clk *hclk; + struct clk *mclk; + struct completion done; + const u8 *tx_buf; + u8 *rx_buf; + int len; }; -struct d40_lcla_pool { - void *base; - dma_addr_t dma_addr; - void *base_unaligned; - int pages; - spinlock_t lock; - struct d40_desc **alloc_map; +enum pmic_arb_channel { + PMIC_ARB_CHANNEL_RW = 0, + PMIC_ARB_CHANNEL_OBS = 1, }; -struct d40_gen_dmac { - u32 *backup; - u32 backup_size; - u32 realtime_en; - u32 realtime_clear; - u32 high_prio_en; - u32 high_prio_clear; - u32 interrupt_en; - u32 interrupt_clear; - struct d40_interrupt_lookup *il; - u32 il_size; - struct d40_reg_val *init_reg; - u32 init_reg_size; +struct spmi_pmic_arb; + +struct pmic_arb_ver_ops { + const char *ver_str; + int (*ppid_to_apid)(struct spmi_pmic_arb *, u16); + int (*offset)(struct spmi_pmic_arb *, u8, u16, enum pmic_arb_channel); + u32 (*fmt_cmd)(u8, u8, u16, u8); + int (*non_data_cmd)(struct spmi_controller *, u8, u8); + void * (*owner_acc_status)(struct spmi_pmic_arb *, u8, u16); + void * (*acc_enable)(struct spmi_pmic_arb *, u16); + void * (*irq_status)(struct spmi_pmic_arb *, u16); + void * (*irq_clear)(struct spmi_pmic_arb *, u16); + u32 (*apid_map_offset)(u16); + void * (*apid_owner)(struct spmi_pmic_arb *, u16); }; -struct stedma40_platform_data; +struct apid_data; -struct d40_base { - spinlock_t interrupt_lock; - spinlock_t execmd_lock; - struct device *dev; - void *virtbase; - u8 rev: 4; - struct clk *clk; +struct spmi_pmic_arb { + void *rd_base; + void *wr_base; + void *intr; + void *cnfg; + void *core; + resource_size_t core_size; + raw_spinlock_t lock; + u8 channel; int irq; - int num_memcpy_chans; - int num_phy_chans; - int num_log_chans; - struct dma_device dma_both; - struct dma_device dma_slave; - struct dma_device dma_memcpy; - struct d40_chan *phy_chans; - struct d40_chan *log_chans; - struct d40_chan **lookup_log_chans; - struct d40_chan **lookup_phy_chans; - struct stedma40_platform_data *plat_data; - struct regulator *lcpa_regulator; - struct d40_phy_res *phy_res; - struct d40_lcla_pool lcla_pool; - void *lcpa_base; - dma_addr_t phy_lcpa; - resource_size_t lcpa_size; - struct kmem_cache *desc_slab; - u32 reg_val_backup[6]; - u32 reg_val_backup_v4[20]; - u32 *reg_val_backup_chan; - u32 *regs_interrupt; - u16 gcc_pwr_off_mask; - struct d40_gen_dmac gen_dmac; -}; - -struct stedma40_platform_data { - int disabled_channels[32]; - int *soft_lli_chans; - int num_of_soft_lli_chans; - bool use_esram_lcla; - int num_of_memcpy_chans; - int num_of_phy_chans; + u8 ee; + u32 bus_instance; + u16 min_apid; + u16 max_apid; + u16 base_apid; + int apid_count; + u32 *mapping_table; + unsigned long mapping_table_valid[16]; + struct irq_domain *domain; + struct spmi_controller *spmic; + const struct pmic_arb_ver_ops *ver_ops; + u16 *ppid_to_apid; + u16 last_apid; + struct apid_data *apid_data; + int max_periphs; }; -struct d40_log_lli_full { - u32 lcsp0; - u32 lcsp1; - u32 lcsp2; - u32 lcsp3; +struct apid_data { + u16 ppid; + u8 write_ee; + u8 irq_ee; }; -struct tegra_regulator_coupler { - struct regulator_coupler coupler; - struct regulator_dev *core_rdev; - struct regulator_dev *cpu_rdev; - struct notifier_block reboot_notifier; - struct notifier_block suspend_notifier; - int core_min_uV; - int cpu_min_uV; - bool sys_reboot_mode_req; - bool sys_reboot_mode; - bool sys_suspend_mode_req; - bool sys_suspend_mode; +enum pmic_arb_chnl_status { + PMIC_ARB_STATUS_DONE = 1, + PMIC_ARB_STATUS_FAILURE = 2, + PMIC_ARB_STATUS_DENIED = 4, + PMIC_ARB_STATUS_DROPPED = 8, }; -struct qcom_rpm_reg; - -struct rpm_regulator_data { - const char *name; - int resource; - const struct qcom_rpm_reg *template; - const char *supply; +enum pmic_arb_cmd_op_code { + PMIC_ARB_OP_EXT_WRITEL = 0, + PMIC_ARB_OP_EXT_READL = 1, + PMIC_ARB_OP_EXT_WRITE = 2, + PMIC_ARB_OP_RESET = 3, + PMIC_ARB_OP_SLEEP = 4, + PMIC_ARB_OP_SHUTDOWN = 5, + PMIC_ARB_OP_WAKEUP = 6, + PMIC_ARB_OP_AUTHENTICATE = 7, + PMIC_ARB_OP_MSTR_READ = 8, + PMIC_ARB_OP_MSTR_WRITE = 9, + PMIC_ARB_OP_EXT_READ = 13, + PMIC_ARB_OP_WRITE = 14, + PMIC_ARB_OP_READ = 15, + PMIC_ARB_OP_ZERO_WRITE = 16, }; -struct rpm_reg_parts; - -struct qcom_rpm_reg { - struct qcom_rpm *rpm; - struct mutex lock; - struct device *dev; - struct regulator_desc desc; - const struct rpm_reg_parts *parts; - int resource; - u32 val[2]; - int uV; - int is_enabled; - bool supports_force_mode_auto; - bool supports_force_mode_bypass; +enum qpnpint_regs { + QPNPINT_REG_RT_STS = 16, + QPNPINT_REG_SET_TYPE = 17, + QPNPINT_REG_POLARITY_HIGH = 18, + QPNPINT_REG_POLARITY_LOW = 19, + QPNPINT_REG_LATCHED_CLR = 20, + QPNPINT_REG_EN_SET = 21, + QPNPINT_REG_EN_CLR = 22, + QPNPINT_REG_LATCHED_STS = 24, }; -struct request_member { - int word; - unsigned int mask; - int shift; +struct spmi_pmic_arb_qpnpint_type { + u8 type; + u8 polarity_high; + u8 polarity_low; }; -struct rpm_reg_parts { - struct request_member mV; - struct request_member uV; - struct request_member ip; - struct request_member pd; - struct request_member ia; - struct request_member fm; - struct request_member pm; - struct request_member pc; - struct request_member pf; - struct request_member enable_state; - struct request_member comp_mode; - struct request_member freq; - struct request_member freq_clk_src; - struct request_member hpm; - int request_len; +struct sun4ican_quirks { + bool has_reset; + int acp_offset; }; -struct brcm_rescal_reset { +struct sun4ican_priv { + struct can_priv can; void *base; - struct device *dev; - struct reset_controller_dev rcdev; + struct clk *clk; + struct reset_control *reset; + spinlock_t cmdreg_lock; + int acp_offset; }; -struct omap8250_dma_params; - -struct omap8250_platdata { - struct omap8250_dma_params *dma_params; - u8 habit; -}; +struct rtl8169_private; -struct omap8250_dma_params { - u32 rx_size; - u8 rx_trigger; - u8 tx_trigger; -}; +typedef void (*rtl_phy_cfg_fct)(struct rtl8169_private *, struct phy_device *); -enum mctrl_gpio_idx { - UART_GPIO_CTS = 0, - UART_GPIO_DSR = 1, - UART_GPIO_DCD = 2, - UART_GPIO_RNG = 3, - UART_GPIO_RI = 3, - UART_GPIO_RTS = 4, - UART_GPIO_DTR = 5, - UART_GPIO_MAX = 6, +struct phy_reg { + u16 reg; + u16 val; }; -struct omap8250_priv { - void *membase; - int line; - u8 habit; - u8 mdr1; - u8 mdr3; - u8 efr; - u8 scr; - u8 wer; - u8 xon; - u8 xoff; - u8 delayed_restore; - u16 quot; - u8 tx_trigger; - u8 rx_trigger; - bool is_suspending; - int wakeirq; - int wakeups_enabled; - u32 latency; - u32 calc_latency; - struct pm_qos_request pm_qos_request; - struct work_struct qos_work; - struct uart_8250_dma omap8250_dma; - spinlock_t rx_dma_lock; - bool rx_dma_broken; - bool throttled; +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, }; -struct meson_rng_data { - void *base; - struct hwrng rng; +enum rtc_control { + DMA_CONTROL_RTC_64 = 0, + DMA_CONTROL_RTC_32 = 8, + DMA_CONTROL_RTC_96 = 16, + DMA_CONTROL_RTC_128 = 24, }; -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; +enum ttc_control { + DMA_CONTROL_TTC_64 = 0, + DMA_CONTROL_TTC_128 = 16384, + DMA_CONTROL_TTC_192 = 32768, + DMA_CONTROL_TTC_256 = 49152, + DMA_CONTROL_TTC_40 = 65536, + DMA_CONTROL_TTC_32 = 81920, + DMA_CONTROL_TTC_24 = 98304, + DMA_CONTROL_TTC_16 = 114688, }; -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, +struct dwmac5_error_desc { + bool valid; + const char *desc; + const char *detailed_desc; }; -enum mipi_dsi_dcs_tear_mode { - MIPI_DSI_DCS_TEAR_MODE_VBLANK = 0, - MIPI_DSI_DCS_TEAR_MODE_VHBLANK = 1, +struct dwmac5_error { + const struct dwmac5_error_desc *desc; }; -struct drm_dsc_rc_range_parameters { - u8 range_min_qp; - u8 range_max_qp; - u8 range_bpg_offset; +enum { + CPTS_EV_PUSH = 0, + CPTS_EV_ROLL = 1, + CPTS_EV_HALF = 2, + CPTS_EV_HW = 3, + CPTS_EV_RX = 4, + CPTS_EV_TX = 5, }; -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 cpts_skb_cb_data { + u32 skb_mtype_seqid; + unsigned long tmo; }; -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 clock_identity { + u8 id[8]; }; -struct mipi_dsi_device_info { - char type[20]; - u32 channel; - struct device_node *node; +struct port_identity { + struct clock_identity clock_identity; + __be16 port_number; }; -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; +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 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_client_buffer; - -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; - struct fb_deferred_io fbdefio; +struct quirk_entry { + u16 vid; + u16 pid; + u32 flags; }; -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 ohci_at91_priv { + struct clk *iclk; + struct clk *fclk; + struct clk *hclk; + bool clocked; + bool wakeup; + struct regmap *sfr_regmap; + u32 suspend_smc_id; }; -struct drm_fb_helper_surface_size { - u32 fb_width; - u32 fb_height; - u32 surface_width; - u32 surface_height; - u32 surface_bpp; - u32 surface_depth; +struct at91_usbh_data { + struct gpio_desc *vbus_pin[3]; + struct gpio_desc *overcurrent_pin[3]; + u8 ports; + u8 overcurrent_supported; + u8 overcurrent_status[3]; + u8 overcurrent_changed[3]; }; -typedef void (*btf_trace_thermal_pressure_update)(void *, int, unsigned long); - -enum scale_freq_source { - SCALE_FREQ_SOURCE_CPUFREQ = 0, - SCALE_FREQ_SOURCE_ARCH = 1, - SCALE_FREQ_SOURCE_CPPC = 2, +struct tegra_usb_soc_info { + unsigned long flags; + unsigned int txfifothresh; + enum usb_dr_mode dr_mode; }; -struct scale_freq_data { - enum scale_freq_source source; - void (*set_freq_scale)(); +struct tegra_usb { + struct ci_hdrc_platform_data data; + struct platform_device *dev; + const struct tegra_usb_soc_info *soc; + struct usb_phy *phy; + struct clk *clk; + bool needs_double_reset; }; -struct trace_event_raw_thermal_pressure_update { - struct trace_entry ent; - unsigned long thermal_pressure; - int cpu; - char __data[0]; +enum input_clock_type { + INPUT_CLK_REAL = 0, + INPUT_CLK_MONO = 1, + INPUT_CLK_BOOT = 2, + INPUT_CLK_MAX = 3, }; -struct sched_domain_attr { - int relax_domain_level; +struct input_event { + __kernel_ulong_t __sec; + __kernel_ulong_t __usec; + __u16 type; + __u16 code; + __s32 value; }; -struct trace_event_data_offsets_thermal_pressure_update {}; +struct evdev; -struct tps6586x_irq_data { - u8 mask_reg; - u8 mask_mask; +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 tps6586x { - struct device *dev; - struct i2c_client *client; - struct regmap *regmap; - int version; - int irq; - struct irq_chip irq_chip; - struct mutex irq_lock; - int irq_base; - u32 irq_en; - u8 mask_reg[5]; - struct irq_domain *irq_domain; +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; + long: 32; + struct device dev; + struct cdev cdev; + bool exist; }; -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 input_mask { + __u32 type; + __u32 codes_size; + __u64 codes_ptr; }; -struct mtd_blktrans_ops; - -struct mtd_blktrans_dev { - struct mtd_blktrans_ops *tr; - struct list_head list; - struct mtd_info *mtd; - struct mutex lock; - int devnum; - bool bg_stop; - unsigned long size; - int readonly; - int open; - struct kref ref; - struct gendisk *disk; - struct attribute_group *disk_attributes; - struct request_queue *rq; - struct list_head rq_list; - struct blk_mq_tag_set *tag_set; - spinlock_t queue_lock; +struct i2c_mux_core { + struct i2c_adapter *parent; + struct device *dev; + unsigned int mux_locked: 1; + unsigned int arbitrator: 1; + unsigned int gate: 1; void *priv; - bool writable; + int (*select)(struct i2c_mux_core *, u32); + int (*deselect)(struct i2c_mux_core *, u32); + int num_adapters; + int max_adapters; + struct i2c_adapter *adapter[0]; }; -struct mtd_blktrans_ops { - char *name; - int major; - int part_bits; - int blksize; - int blkshift; - int (*readsect)(struct mtd_blktrans_dev *, unsigned long, char *); - int (*writesect)(struct mtd_blktrans_dev *, unsigned long, char *); - int (*discard)(struct mtd_blktrans_dev *, unsigned long, unsigned int); - void (*background)(struct mtd_blktrans_dev *); - int (*getgeo)(struct mtd_blktrans_dev *, struct hd_geometry *); - int (*flush)(struct mtd_blktrans_dev *); - int (*open)(struct mtd_blktrans_dev *); - void (*release)(struct mtd_blktrans_dev *); - void (*add_mtd)(struct mtd_blktrans_ops *, struct mtd_info *); - void (*remove_dev)(struct mtd_blktrans_dev *); - struct list_head devs; - struct list_head list; - struct module *owner; +struct i2c_mux_priv { + struct i2c_adapter adap; + struct i2c_algorithm algo; + struct i2c_mux_core *muxc; + u32 chan_id; + long: 32; }; -struct req_iterator { - struct bvec_iter iter; - struct bio *bio; +struct tegra_i2c_hw_feature { + bool has_continue_xfer_support; + bool has_per_pkt_xfer_complete_irq; + bool has_config_load_reg; + u32 clk_divisor_hs_mode; + u32 clk_divisor_std_mode; + u32 clk_divisor_fast_mode; + u32 clk_divisor_fast_plus_mode; + bool has_multi_master_mode; + bool has_slcg_override_reg; + bool has_mst_fifo; + const struct i2c_adapter_quirks *quirks; + bool supports_bus_clear; + bool has_apb_dma; + u32 tlow_std_mode; + u32 thigh_std_mode; + u32 tlow_fast_fastplus_mode; + u32 thigh_fast_fastplus_mode; + u32 setup_hold_time_std_mode; + u32 setup_hold_time_fast_fast_plus_mode; + u32 setup_hold_time_hs_mode; + bool has_interface_timing_reg; }; -enum brcmnand_reg { - BRCMNAND_CMD_START = 0, - BRCMNAND_CMD_EXT_ADDRESS = 1, - BRCMNAND_CMD_ADDRESS = 2, - BRCMNAND_INTFC_STATUS = 3, - BRCMNAND_CS_SELECT = 4, - BRCMNAND_CS_XOR = 5, - BRCMNAND_LL_OP = 6, - BRCMNAND_CS0_BASE = 7, - BRCMNAND_CS1_BASE = 8, - BRCMNAND_CORR_THRESHOLD = 9, - BRCMNAND_CORR_THRESHOLD_EXT = 10, - BRCMNAND_UNCORR_COUNT = 11, - BRCMNAND_CORR_COUNT = 12, - BRCMNAND_CORR_EXT_ADDR = 13, - BRCMNAND_CORR_ADDR = 14, - BRCMNAND_UNCORR_EXT_ADDR = 15, - BRCMNAND_UNCORR_ADDR = 16, - BRCMNAND_SEMAPHORE = 17, - BRCMNAND_ID = 18, - BRCMNAND_ID_EXT = 19, - BRCMNAND_LL_RDATA = 20, - BRCMNAND_OOB_READ_BASE = 21, - BRCMNAND_OOB_READ_10_BASE = 22, - BRCMNAND_OOB_WRITE_BASE = 23, - BRCMNAND_OOB_WRITE_10_BASE = 24, - BRCMNAND_FC_BASE = 25, +enum msg_end_type { + MSG_END_STOP = 0, + MSG_END_REPEAT_START = 1, + MSG_END_CONTINUE = 2, }; -enum flash_dma_reg { - FLASH_DMA_REVISION = 0, - FLASH_DMA_FIRST_DESC = 1, - FLASH_DMA_FIRST_DESC_EXT = 2, - FLASH_DMA_CTRL = 3, - FLASH_DMA_MODE = 4, - FLASH_DMA_STATUS = 5, - FLASH_DMA_INTERRUPT_DESC = 6, - FLASH_DMA_INTERRUPT_DESC_EXT = 7, - FLASH_DMA_ERROR_STATUS = 8, - FLASH_DMA_CURRENT_DESC = 9, - FLASH_DMA_CURRENT_DESC_EXT = 10, +typedef u32 acpi_status; + +struct tegra_i2c_dev { + struct device *dev; + long: 32; + struct i2c_adapter adapter; + const struct tegra_i2c_hw_feature *hw; + struct reset_control *rst; + unsigned int cont_id; + unsigned int irq; + phys_addr_t base_phys; + void *base; + struct clk_bulk_data clocks[2]; + unsigned int nclocks; + struct clk *div_clk; + struct i2c_timings timings; + struct completion msg_complete; + size_t msg_buf_remaining; + unsigned int msg_len; + int msg_err; + u8 *msg_buf; + struct completion dma_complete; + struct dma_chan *dma_chan; + unsigned int dma_buf_size; + struct device *dma_dev; + dma_addr_t dma_phys; + void *dma_buf; + bool multimaster_mode; + bool atomic_mode; + bool dma_mode; + bool msg_read; + bool is_dvc; + bool is_vi; + long: 32; }; +typedef void *acpi_handle; + enum { - CS_SELECT_NAND_WP = 536870912, - CS_SELECT_AUTO_DEVICE_ID_CFG = 1073741824, + POWER_SUPPLY_CHARGE_TYPE_UNKNOWN = 0, + POWER_SUPPLY_CHARGE_TYPE_NONE = 1, + POWER_SUPPLY_CHARGE_TYPE_TRICKLE = 2, + POWER_SUPPLY_CHARGE_TYPE_FAST = 3, + POWER_SUPPLY_CHARGE_TYPE_STANDARD = 4, + POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE = 5, + POWER_SUPPLY_CHARGE_TYPE_CUSTOM = 6, + POWER_SUPPLY_CHARGE_TYPE_LONGLIFE = 7, + POWER_SUPPLY_CHARGE_TYPE_BYPASS = 8, }; enum { - BRCMNAND_HAS_1K_SECTORS = 1, - BRCMNAND_HAS_PREFETCH = 2, - BRCMNAND_HAS_CACHE_MODE = 4, - BRCMNAND_HAS_WP = 8, + POWER_SUPPLY_HEALTH_UNKNOWN = 0, + POWER_SUPPLY_HEALTH_GOOD = 1, + POWER_SUPPLY_HEALTH_OVERHEAT = 2, + POWER_SUPPLY_HEALTH_DEAD = 3, + POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4, + POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5, + POWER_SUPPLY_HEALTH_COLD = 6, + POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7, + POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8, + POWER_SUPPLY_HEALTH_OVERCURRENT = 9, + POWER_SUPPLY_HEALTH_CALIBRATION_REQUIRED = 10, + POWER_SUPPLY_HEALTH_WARM = 11, + POWER_SUPPLY_HEALTH_COOL = 12, + POWER_SUPPLY_HEALTH_HOT = 13, + POWER_SUPPLY_HEALTH_NO_BATTERY = 14, }; -enum edu_reg { - EDU_CONFIG = 0, - EDU_DRAM_ADDR = 1, - EDU_EXT_ADDR = 2, - EDU_LENGTH = 3, - EDU_CMD = 4, - EDU_STOP = 5, - EDU_STATUS = 6, - EDU_DONE = 7, - EDU_ERR_STATUS = 8, +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 brcmnand_cs_reg { - BRCMNAND_CS_CFG_EXT = 0, - BRCMNAND_CS_CFG = 1, - BRCMNAND_CS_ACC_CONTROL = 2, - BRCMNAND_CS_TIMING1 = 3, - BRCMNAND_CS_TIMING2 = 4, +struct act8945a_charger { + struct power_supply *psy; + struct power_supply_desc desc; + struct regmap *regmap; + struct work_struct work; + bool init_done; + struct gpio_desc *lbo_gpio; + struct gpio_desc *chglev_gpio; }; -enum { - ACC_CONTROL_CACHE_MODE = 4194304, - ACC_CONTROL_PREFETCH = 8388608, - ACC_CONTROL_PAGE_HIT = 16777216, - ACC_CONTROL_WR_PREEMPT = 33554432, - ACC_CONTROL_PARTIAL_PAGE = 67108864, - ACC_CONTROL_RD_ERASED = 134217728, - ACC_CONTROL_FAST_PGM_RDIN = 268435456, - ACC_CONTROL_WR_ECC = 1073741824, - ACC_CONTROL_RD_ECC = 2147483648, +enum soc_type { + SOC_ARCH_EXYNOS3250 = 1, + SOC_ARCH_EXYNOS4210 = 2, + SOC_ARCH_EXYNOS4412 = 3, + SOC_ARCH_EXYNOS5250 = 4, + SOC_ARCH_EXYNOS5260 = 5, + SOC_ARCH_EXYNOS5420 = 6, + SOC_ARCH_EXYNOS5420_TRIMINFO = 7, + SOC_ARCH_EXYNOS5433 = 8, + SOC_ARCH_EXYNOS7 = 9, }; -enum { - CFG_BLK_ADR_BYTES_SHIFT = 8, - CFG_COL_ADR_BYTES_SHIFT = 12, - CFG_FUL_ADR_BYTES_SHIFT = 16, - CFG_BUS_WIDTH_SHIFT = 23, - CFG_BUS_WIDTH = 8388608, - CFG_DEVICE_SIZE_SHIFT = 24, - CFG_PAGE_SIZE_SHIFT_v2_1 = 30, - CFG_PAGE_SIZE_SHIFT = 20, - CFG_BLK_SIZE_SHIFT = 28, - CFG_EXT_PAGE_SIZE_SHIFT = 0, - CFG_EXT_BLK_SIZE_SHIFT = 4, +struct exynos_tmu_data { + int id; + void *base; + void *base_second; + int irq; + enum soc_type soc; + struct work_struct irq_work; + struct mutex lock; + struct clk *clk; + struct clk *clk_sec; + struct clk *sclk; + u32 cal_type; + u32 efuse_value; + u32 min_efuse_value; + u32 max_efuse_value; + u16 temp_error1; + u16 temp_error2; + u8 gain; + u8 reference_voltage; + struct regulator *regulator; + struct thermal_zone_device *tzd; + unsigned int ntrip; + bool enabled; + void (*tmu_set_trip_temp)(struct exynos_tmu_data *, int, u8); + void (*tmu_set_trip_hyst)(struct exynos_tmu_data *, int, u8, u8); + void (*tmu_initialize)(struct platform_device *); + void (*tmu_control)(struct platform_device *, bool); + int (*tmu_read)(struct exynos_tmu_data *); + void (*tmu_set_emulation)(struct exynos_tmu_data *, int); + void (*tmu_clear_irqs)(struct exynos_tmu_data *); }; -enum { - INTFC_FLASH_STATUS = 255, - INTFC_ERASED = 134217728, - INTFC_OOB_VALID = 268435456, - INTFC_CACHE_VALID = 536870912, - INTFC_FLASH_READY = 1073741824, - INTFC_CTLR_READY = 2147483648, +struct cpufreq_stats { + unsigned int total_trans; + long: 32; + unsigned long long last_time; + unsigned int max_state; + unsigned int state_num; + unsigned int last_index; + u64 *time_in_state; + unsigned int *freq_table; + unsigned int *trans_table; + unsigned int reset_pending; + long: 32; + unsigned long long reset_time; }; -enum brcmnand_llop_type { - LL_OP_CMD = 0, - LL_OP_ADDR = 1, - LL_OP_WR = 2, - LL_OP_RD = 3, +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 { - LLOP_RE = 65536, - LLOP_WE = 131072, - LLOP_ALE = 262144, - LLOP_CLE = 524288, - LLOP_RETURN_IDLE = 2147483648, - LLOP_DATA_MASK = 65535, -}; +typedef int tpl_parse_t(struct mmc_card *, struct sdio_func *, const unsigned char *, unsigned int); -struct brcmnand_cfg { - u64 device_size; - unsigned int block_size; - unsigned int page_size; - unsigned int spare_area_size; - unsigned int device_width; - unsigned int col_adr_bytes; - unsigned int blk_adr_bytes; - unsigned int ful_adr_bytes; - unsigned int sector_size_1k; - unsigned int ecc_level; - u32 acc_control; - u32 config; - u32 config_ext; - u32 timing_1; - u32 timing_2; +struct cis_tpl { + unsigned char code; + unsigned char min_size; + tpl_parse_t *parse; }; -struct brcmnand_controller; +typedef void sdio_irq_handler_t(struct sdio_func *); -struct brcmnand_host { - struct list_head node; - struct nand_chip chip; - struct platform_device *pdev; - int cs; - unsigned int last_cmd; - unsigned int last_byte; - u64 last_addr; - struct brcmnand_cfg hwcfg; - struct brcmnand_controller *ctrl; +struct sdio_func { + struct mmc_card *card; + long: 32; + struct device dev; + sdio_irq_handler_t *irq_handler; + unsigned int num; + unsigned char class; + unsigned short vendor; + unsigned short device; + unsigned int max_blksize; + unsigned int cur_blksize; + unsigned int enable_timeout; + unsigned int state; + u8 *tmpbuf; + u8 major_rev; + u8 minor_rev; + unsigned int num_info; + const char **info; + struct sdio_func_tuple *tuples; long: 32; }; -struct brcm_nand_dma_desc; - -struct brcmnand_controller { - struct device *dev; - struct nand_controller controller; - void *nand_base; - void *nand_fc; - void *flash_dma_base; - int irq; - unsigned int dma_irq; - int nand_version; - struct brcmnand_soc *soc; - struct clk *clk; - int cmd_pending; - bool dma_pending; - bool edu_pending; - struct completion done; - struct completion dma_done; - struct completion edu_done; - struct list_head host_list; - const u16 *edu_offsets; - void *edu_base; - int edu_irq; - int edu_count; - u64 edu_dram_addr; - u32 edu_ext_addr; - u32 edu_cmd; - u32 edu_config; - int sas; - int sector_size_1k; - u8 *oob; - const u16 *flash_dma_offsets; - struct brcm_nand_dma_desc *dma_desc; - dma_addr_t dma_pa; - int (*dma_trans)(struct brcmnand_host *, u64, u32 *, u8 *, u32, u8); - u8 flash_cache[512]; - const u16 *reg_offsets; - unsigned int reg_spacing; - const u8 *cs_offsets; - const u8 *cs0_offsets; - unsigned int max_block_size; - const unsigned int *block_sizes; - unsigned int max_page_size; - const unsigned int *page_sizes; - unsigned int page_size_shift; - unsigned int max_oob; - u32 features; - u32 nand_cs_nand_select; - u32 nand_cs_nand_xor; - u32 corr_stat_threshold; - u32 flash_dma_mode; - u32 flash_edu_mode; - bool pio_poll_mode; - long: 32; +struct sdio_func_tuple { + struct sdio_func_tuple *next; + unsigned char code; + unsigned char size; + unsigned char data[0]; }; -struct brcm_nand_dma_desc { - u32 next_desc; - u32 next_desc_ext; - u32 cmd_irq; - u32 dram_addr; - u32 dram_addr_ext; - u32 tfr_len; - u32 total_len; - u32 flash_addr; - u32 flash_addr_ext; - u32 cs; - u32 pad2[5]; - u32 status_valid; +struct omap_mmc_of_data { + u32 reg_offset; + u8 controller_flags; }; -struct brcmnand_platform_data { - int chip_select; - const char * const *part_probe_types; - unsigned int ecc_stepsize; - unsigned int ecc_strength; +struct omap_hsmmc_platform_data { + struct device *dev; + unsigned int max_freq; + u8 controller_flags; + u16 reg_offset; + u32 caps; + u32 pm_caps; + unsigned int nonremovable: 1; + unsigned int no_regulator_off_init: 1; + unsigned int features; + char *version; + const char *name; + u32 ocr_mask; }; -enum xcan_ip_type { - XAXI_CAN = 0, - XZYNQ_CANPS = 1, - XAXI_CANFD = 2, - XAXI_CANFD_2_0 = 3, +struct omap_hsmmc_next { + unsigned int dma_len; + s32 cookie; }; -struct xcan_devtype_data { - enum xcan_ip_type cantype; +struct omap_hsmmc_host { + struct device *dev; + struct mmc_host *mmc; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_data *data; + struct clk *fclk; + struct clk *dbclk; + struct regulator *pbias; + bool pbias_enabled; + void *base; + bool vqmmc_enabled; + resource_size_t mapbase; + spinlock_t irq_lock; + unsigned int dma_len; + unsigned int dma_sg_idx; + unsigned char bus_mode; + unsigned char power_mode; + int suspended; + u32 con; + u32 hctl; + u32 sysctl; + u32 capa; + int irq; + int wake_irq; + int use_dma; + int dma_ch; + struct dma_chan *tx_chan; + struct dma_chan *rx_chan; + int response_busy; + int context_loss; + int reqs_blocked; + int req_in_progress; + unsigned long clk_rate; unsigned int flags; - const struct can_bittiming_const *bittiming_const; - const char *bus_clk_name; - unsigned int btr_ts2_shift; - unsigned int btr_sjw_shift; + struct omap_hsmmc_next next_data; + struct omap_hsmmc_platform_data *pdata; }; -enum xcan_reg { - XCAN_SRR_OFFSET = 0, - XCAN_MSR_OFFSET = 4, - XCAN_BRPR_OFFSET = 8, - XCAN_BTR_OFFSET = 12, - XCAN_ECR_OFFSET = 16, - XCAN_ESR_OFFSET = 20, - XCAN_SR_OFFSET = 24, - XCAN_ISR_OFFSET = 28, - XCAN_IER_OFFSET = 32, - XCAN_ICR_OFFSET = 36, - XCAN_TXFIFO_OFFSET = 48, - XCAN_RXFIFO_OFFSET = 80, - XCAN_AFR_OFFSET = 96, - XCAN_F_BRPR_OFFSET = 136, - XCAN_F_BTR_OFFSET = 140, - XCAN_TRR_OFFSET = 144, - XCAN_AFR_EXT_OFFSET = 224, - XCAN_FSR_OFFSET = 232, - XCAN_TXMSG_BASE_OFFSET = 256, - XCAN_RXMSG_BASE_OFFSET = 4352, - XCAN_RXMSG_2_BASE_OFFSET = 8448, - XCAN_AFR_2_MASK_OFFSET = 2560, - XCAN_AFR_2_ID_OFFSET = 2564, +struct esdhc_clk_fixup { + const unsigned int sd_dflt_max_clk; + const unsigned int max_clk[11]; }; -struct xcan_priv { - struct can_priv can; - spinlock_t tx_lock; - unsigned int tx_head; - unsigned int tx_tail; - unsigned int tx_max; - struct napi_struct napi; - u32 (*read_reg)(const struct xcan_priv *, enum xcan_reg); - void (*write_reg)(const struct xcan_priv *, enum xcan_reg, u32); - struct device *dev; - void *reg_base; - unsigned long irq_flags; - struct clk *bus_clk; - struct clk *can_clk; - struct xcan_devtype_data devtype; - struct phy *transceiver; +struct sdhci_esdhc { + u8 vendor_ver; + u8 spec_ver; + bool quirk_incorrect_hostver; + bool quirk_limited_clk_division; + bool quirk_unreliable_pulse_detection; + bool quirk_tuning_erratum_type1; + bool quirk_tuning_erratum_type2; + bool quirk_ignore_data_inhibit; + bool quirk_delay_before_data_reset; + bool quirk_trans_complete_erratum; + bool in_sw_tuning; + unsigned int peripheral_clock; + const struct esdhc_clk_fixup *clk_fixup; + u32 div_ratio; }; -struct orion_mdio_dev; - -struct orion_mdio_ops { - int (*is_done)(struct orion_mdio_dev *); - unsigned int poll_interval_min; - unsigned int poll_interval_max; +struct dmi_device_attribute { + struct device_attribute dev_attr; + int field; }; -struct orion_mdio_dev { - void *regs; - struct clk *clk[4]; - int err_interrupt; - wait_queue_head_t smi_busy_wait; +struct mafield { + const char *prefix; + int field; }; -enum orion_mdio_bus_type { - BUS_TYPE_SMI = 0, - BUS_TYPE_XSMI = 1, -}; +typedef void (*btf_trace_scmi_fc_call)(void *, u8, u8, u32, u32, u32); -enum rtc_control { - DMA_CONTROL_RTC_64 = 0, - DMA_CONTROL_RTC_32 = 8, - DMA_CONTROL_RTC_96 = 16, - DMA_CONTROL_RTC_128 = 24, -}; +typedef void (*btf_trace_scmi_xfer_begin)(void *, int, u8, u8, u16, bool); -enum ttc_control___2 { - DMA_CONTROL_TTC_64___2 = 0, - DMA_CONTROL_TTC_128___2 = 16384, - DMA_CONTROL_TTC_192 = 32768, - DMA_CONTROL_TTC_256___2 = 49152, - DMA_CONTROL_TTC_40___2 = 65536, - DMA_CONTROL_TTC_32___2 = 81920, - DMA_CONTROL_TTC_24___2 = 98304, - DMA_CONTROL_TTC_16 = 114688, -}; +typedef void (*btf_trace_scmi_xfer_response_wait)(void *, int, u8, u8, u16, u32, bool); -struct stmmac_rx_routing { - u32 reg_mask; - u32 reg_shift; -}; +typedef void (*btf_trace_scmi_xfer_end)(void *, int, u8, u8, u16, int); -enum packets_types { - PACKET_AVCPQ = 1, - PACKET_PTPQ = 2, - PACKET_DCBCPQ = 3, - PACKET_UPQ = 4, - PACKET_MCBCQ = 5, -}; +typedef void (*btf_trace_scmi_rx_done)(void *, int, u8, u8, u16, u8); -enum dwmac4_irq_status { - time_stamp_irq = 4096, - mmc_rx_csum_offload_irq = 2048, - mmc_tx_irq = 1024, - mmc_rx_irq = 512, - mmc_irq = 256, - lpi_irq = 32, - pmt_irq = 16, -}; +typedef void (*btf_trace_scmi_msg_dump)(void *, int, u8, u8, u8, unsigned char *, u16, int, void *, size_t); -enum power_event { - pointer_reset = 2147483648, - global_unicast = 512, - wake_up_rx_frame = 64, - magic_frame = 32, - wake_up_frame_en = 4, - magic_pkt_en = 2, - power_down = 1, +enum scmi_error_codes { + SCMI_SUCCESS = 0, + SCMI_ERR_SUPPORT = -1, + SCMI_ERR_PARAMS = -2, + SCMI_ERR_ACCESS = -3, + SCMI_ERR_ENTRY = -4, + SCMI_ERR_RANGE = -5, + SCMI_ERR_BUSY = -6, + SCMI_ERR_COMMS = -7, + SCMI_ERR_GENERIC = -8, + SCMI_ERR_HARDWARE = -9, + SCMI_ERR_PROTOCOL = -10, }; -struct usb_eth_dev { - char *name; - __u16 vendor; - __u16 device; - __u32 private; -}; +struct scmi_device; -enum pegasus_registers { - EthCtrl0 = 0, - EthCtrl1 = 1, - EthCtrl2 = 2, - EthID = 16, - Reg1d = 29, - EpromOffset = 32, - EpromData = 33, - EpromCtrl = 35, - PhyAddr = 37, - PhyData = 38, - PhyCtrl = 40, - UsbStst = 42, - EthTxStat0 = 43, - EthTxStat1 = 44, - EthRxStat = 45, - WakeupControl = 120, - Reg7b = 123, - Gpio0 = 126, - Gpio1 = 127, - Reg81 = 129, +struct scmi_notify_ops; + +struct scmi_handle { + struct device *dev; + struct scmi_revision_info *version; + int (*devm_protocol_acquire)(struct scmi_device *, u8); + const void * (*devm_protocol_get)(struct scmi_device *, u8, struct scmi_protocol_handle **); + void (*devm_protocol_put)(struct scmi_device *, u8); + bool (*is_transport_atomic)(const struct scmi_handle *, unsigned int *); + const struct scmi_notify_ops *notify_ops; }; -struct pegasus { - struct usb_device *usb; - struct usb_interface *intf; - struct net_device *net; - struct mii_if_info mii; - unsigned int flags; - unsigned int features; - u32 msg_enable; - u32 wolopts; - int dev_index; - int intr_interval; - struct tasklet_struct rx_tl; - struct delayed_work carrier_check; - struct urb *rx_urb; - struct urb *tx_urb; - struct urb *intr_urb; - struct sk_buff *rx_skb; - int chip; - unsigned char intr_buff[8]; - __u8 tx_buff[1536]; - __u8 eth_regs[4]; - __u8 phy; - __u8 gpio_res; +struct scmi_xfers_info { + unsigned long *xfer_alloc_table; + spinlock_t xfer_lock; + int max_msg; + struct hlist_head free_xfers; + struct hlist_head pending_xfers[512]; }; -typedef struct pegasus pegasus_t; +struct scmi_desc; -struct component_ops { - int (*bind)(struct device *, struct device *, void *); - void (*unbind)(struct device *, struct device *, void *); +struct scmi_debug_info; + +struct scmi_info { + int id; + struct device *dev; + const struct scmi_desc *desc; + struct scmi_revision_info version; + struct scmi_handle handle; + struct scmi_xfers_info tx_minfo; + struct scmi_xfers_info rx_minfo; + struct idr tx_idr; + struct idr rx_idr; + struct idr protocols; + struct mutex protocols_mtx; + u8 *protocols_imp; + struct idr active_protocols; + unsigned int atomic_threshold; + void *notify_priv; + struct list_head node; + int users; + struct notifier_block bus_nb; + struct notifier_block dev_req_nb; + struct mutex devreq_mtx; + struct scmi_debug_info *dbg; + void *raw; }; -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, +struct scmi_transport_ops; + +struct scmi_desc { + int (*transport_init)(); + void (*transport_exit)(); + const struct scmi_transport_ops *ops; + int max_rx_timeout_ms; + int max_msg; + int max_msg_size; + const bool force_polling; + const bool sync_cmds_completed_on_ret; + const bool atomic_enabled; }; -typedef u32 usb_port_location_t; +struct scmi_chan_info; -struct usb_dev_state; +struct scmi_transport_ops { + int (*link_supplier)(struct device *); + bool (*chan_available)(struct device_node *, int); + int (*chan_setup)(struct scmi_chan_info *, struct device *, bool); + int (*chan_free)(int, void *, void *); + unsigned int (*get_max_msg)(struct scmi_chan_info *); + int (*send_message)(struct scmi_chan_info *, struct scmi_xfer *); + void (*mark_txdone)(struct scmi_chan_info *, int, struct scmi_xfer *); + void (*fetch_response)(struct scmi_chan_info *, struct scmi_xfer *); + void (*fetch_notification)(struct scmi_chan_info *, size_t, struct scmi_xfer *); + void (*clear_channel)(struct scmi_chan_info *); + bool (*poll_done)(struct scmi_chan_info *, struct scmi_xfer *); +}; -struct usb_port { - struct usb_device *child; +struct scmi_chan_info { + int id; + struct device *dev; + unsigned int rx_timeout_ms; + struct scmi_handle *handle; + bool no_completion_irq; + void *transport_info; +}; + +struct scmi_device { + u32 id; + u8 protocol_id; + const char *name; long: 32; 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; - enum usb_device_state state; - struct kernfs_node *state_kn; - usb_port_location_t location; - struct mutex status_lock; - u32 over_current_count; - u8 portnum; - u32 quirks; - unsigned int early_stop: 1; - unsigned int ignore_event: 1; - unsigned int is_superspeed: 1; - unsigned int usb3_lpm_u1_permit: 1; - unsigned int usb3_lpm_u2_permit: 1; + struct scmi_handle *handle; + long: 32; }; -struct usb_hub_status { - __le16 wHubStatus; - __le16 wHubChange; +struct scmi_notify_ops { + int (*devm_event_notifier_register)(struct scmi_device *, u8, u8, const u32 *, struct notifier_block *); + int (*devm_event_notifier_unregister)(struct scmi_device *, u8, u8, const u32 *, struct notifier_block *); + int (*event_notifier_register)(const struct scmi_handle *, u8, u8, const u32 *, struct notifier_block *); + int (*event_notifier_unregister)(const struct scmi_handle *, u8, u8, const u32 *, struct notifier_block *); }; -struct usb_port_status { - __le16 wPortStatus; - __le16 wPortChange; - __le32 dwExtPortStatus; +struct scmi_debug_info { + struct dentry *top_dentry; + const char *name; + const char *type; + bool is_atomic; }; -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 scmi_protocol_instance { + const struct scmi_handle *handle; + const struct scmi_protocol *proto; + void *gid; + refcount_t users; + void *priv; + struct scmi_protocol_handle ph; }; -struct ci_hdrc_imx_platform_flag { - unsigned int flags; +struct trace_event_raw_scmi_fc_call { + struct trace_entry ent; + u8 protocol_id; + u8 msg_id; + u32 res_id; + u32 val1; + u32 val2; + char __data[0]; }; -struct ci_hdrc_imx_data { - struct usb_phy *phy; - struct platform_device *ci_pdev; - struct clk *clk; - struct imx_usbmisc_data *usbmisc_data; - bool supports_runtime_pm; - bool override_phy_control; - bool in_lpm; - struct pinctrl *pinctrl; - struct pinctrl_state *pinctrl_hsic_active; - struct regulator *hsic_pad_regulator; - bool need_three_clks; - struct clk *clk_ipg; - struct clk *clk_ahb; - struct clk *clk_per; - struct pm_qos_request pm_qos_req; - const struct ci_hdrc_imx_platform_flag *plat_data; +struct trace_event_raw_scmi_xfer_begin { + struct trace_entry ent; + int transfer_id; + u8 msg_id; + u8 protocol_id; + u16 seq; + bool poll; + char __data[0]; +}; + +struct trace_event_raw_scmi_xfer_response_wait { + struct trace_entry ent; + int transfer_id; + u8 msg_id; + u8 protocol_id; + u16 seq; + u32 timeout; + bool poll; + char __data[0]; +}; + +struct trace_event_raw_scmi_xfer_end { + struct trace_entry ent; + int transfer_id; + u8 msg_id; + u8 protocol_id; + u16 seq; + int status; + char __data[0]; +}; + +struct trace_event_raw_scmi_rx_done { + struct trace_entry ent; + int transfer_id; + u8 msg_id; + u8 protocol_id; + u16 seq; + u8 msg_type; + char __data[0]; }; -struct alps_protocol_info { - u16 version; - u8 byte0; - u8 mask0; - unsigned int flags; +struct trace_event_raw_scmi_msg_dump { + struct trace_entry ent; + int id; + u8 channel_id; + u8 protocol_id; + u8 msg_id; + char tag[5]; + u16 seq; + int status; + size_t len; + u32 __data_loc_cmd; + char __data[0]; }; -struct alps_model_info { - u8 signature[3]; - struct alps_protocol_info protocol_info; +struct trace_event_data_offsets_scmi_msg_dump { + u32 cmd; }; -struct alps_nibble_commands { - int command; - unsigned char data; +struct scmi_protocol_devres { + const struct scmi_handle *handle; + u8 protocol_id; }; -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, +struct trace_event_data_offsets_scmi_fc_call {}; + +struct trace_event_data_offsets_scmi_xfer_begin {}; + +struct trace_event_data_offsets_scmi_xfer_response_wait {}; + +struct trace_event_data_offsets_scmi_xfer_end {}; + +struct trace_event_data_offsets_scmi_rx_done {}; + +struct scmi_msg_resp_domain_name_get { + __le32 flags; + u8 name[64]; }; -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 scmi_iterator { + void *msg; + void *resp; + struct scmi_xfer *t; + const struct scmi_protocol_handle *ph; + struct scmi_iterator_ops *ops; + struct scmi_iterator_state state; + void *priv; }; -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 scmi_msg_resp_desc_fc { + __le32 attr; + __le32 rate_limit; + __le32 chan_addr_low; + __le32 chan_addr_high; + __le32 chan_size; + __le32 db_addr_low; + __le32 db_addr_high; + __le32 db_set_lmask; + __le32 db_set_hmask; + __le32 db_preserve_lmask; + __le32 db_preserve_hmask; }; -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 scmi_msg_get_fc_info { + __le32 domain; + __le32 message_id; }; -struct alps_bitmap_point { - int start_bit; - int num_bits; +struct scmi_device_id { + u8 protocol_id; + const char *name; }; -enum rcar_i2c_type { - I2C_RCAR_GEN1 = 0, - I2C_RCAR_GEN2 = 1, - I2C_RCAR_GEN3 = 2, +struct sh_mtu2_device; + +struct sh_mtu2_channel { + struct sh_mtu2_device *mtu; + unsigned int index; + void *base; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct clock_event_device ced; }; -struct rcar_i2c_priv { - u32 flags; - void *io; - struct i2c_adapter adap; - struct i2c_msg *msg; - int msgs_left; +struct sh_mtu2_device { + struct platform_device *pdev; + void *mapbase; struct clk *clk; - wait_queue_head_t wait; - int pos; - u32 icccr; - u8 recovery_icmcr; - enum rcar_i2c_type devtype; - struct i2c_client *slave; - struct resource *res; - struct dma_chan *dma_tx; - struct dma_chan *dma_rx; - struct scatterlist sg; - enum dma_data_direction dma_direction; - struct reset_control *rstc; - int irq; - struct i2c_client *host_notify_client; - long: 32; + raw_spinlock_t lock; + struct sh_mtu2_channel *channels; + unsigned int num_channels; + bool has_clockevent; }; -typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *); +struct stm32_timer_private { + int bits; +}; -typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, unsigned long); +struct imx_timer; -typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type); +struct imx_gpt_data { + int reg_tstat; + int reg_tcn; + int reg_tcmp; + void (*gpt_setup_tctl)(struct imx_timer *); + void (*gpt_irq_enable)(struct imx_timer *); + void (*gpt_irq_disable)(struct imx_timer *); + void (*gpt_irq_acknowledge)(struct imx_timer *); + int (*set_next_event)(unsigned long, struct clock_event_device *); +}; -typedef void (*btf_trace_thermal_power_cpu_get_power_simple)(void *, int, u32); +enum imx_gpt_type { + GPT_TYPE_IMX1 = 0, + GPT_TYPE_IMX21 = 1, + GPT_TYPE_IMX31 = 2, + GPT_TYPE_IMX6DL = 3, +}; -typedef void (*btf_trace_thermal_power_cpu_limit)(void *, const struct cpumask *, unsigned int, unsigned long, u32); +struct imx_timer { + enum imx_gpt_type type; + void *base; + int irq; + struct clk *clk_per; + struct clk *clk_ipg; + const struct imx_gpt_data *gpt; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct clock_event_device ced; +}; -typedef void (*btf_trace_thermal_power_devfreq_get_power)(void *, struct thermal_cooling_device *, struct devfreq_dev_status *, unsigned long, u32); +struct bcma_sflash_tbl_e { + char *name; + u32 id; + u32 blocksize; + u16 numblocks; +}; -typedef void (*btf_trace_thermal_power_devfreq_limit)(void *, struct thermal_cooling_device *, unsigned long, unsigned long, u32); +struct lpddr2_addressing { + u32 num_banks; + u32 tREFI_ns; + u32 tRFCab_ps; +}; -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; - bool upper_no_limit; +struct lpddr2_timings { + u32 max_freq; + u32 min_freq; + u32 tRPab; + u32 tRCD; + u32 tWR; + u32 tRAS_min; + u32 tRRD; + u32 tWTR; + u32 tXP; + u32 tRTP; + u32 tCKESR; + u32 tDQSCK_max; + u32 tDQSCK_max_derated; + u32 tFAW; + u32 tZQCS; + u32 tZQCL; + u32 tZQinit; + u32 tRAS_max_ns; }; -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 lpddr2_min_tck { + u32 tRPab; + u32 tRCD; + u32 tWR; + u32 tRASmin; + u32 tRRD; + u32 tWTR; + u32 tXP; + u32 tRTP; + u32 tCKE; + u32 tCKESR; + u32 tFAW; }; -struct trace_event_raw_cdev_update { - struct trace_entry ent; - u32 __data_loc_type; - unsigned long target; - char __data[0]; +struct dpfe_api { + int version; + const char *fw_name; + const struct attribute_group **sysfs_attrs; + u32 command[48]; }; -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]; +enum dpfe_commands { + DPFE_CMD_GET_INFO = 0, + DPFE_CMD_GET_REFRESH = 1, + DPFE_CMD_GET_VENDOR = 2, + DPFE_CMD_MAX = 3, }; -struct trace_event_raw_thermal_power_cpu_get_power_simple { - struct trace_entry ent; - int cpu; - u32 power; - char __data[0]; +enum dpfe_msg_fields { + MSG_HEADER = 0, + MSG_COMMAND = 1, + MSG_ARG_COUNT = 2, + MSG_ARG0 = 3, + MSG_FIELD_MAX = 16, }; -struct trace_event_raw_thermal_power_cpu_limit { - struct trace_entry ent; - u32 __data_loc_cpumask; - unsigned int freq; - unsigned long cdev_state; - u32 power; - char __data[0]; +struct dpfe_firmware_header { + u32 magic; + u32 sequence; + u32 version; + u32 imem_size; + u32 dmem_size; }; -struct trace_event_raw_thermal_power_devfreq_get_power { - struct trace_entry ent; - u32 __data_loc_type; - unsigned long freq; - u32 busy_time; - u32 total_time; - u32 power; - char __data[0]; +struct brcmstb_dpfe_priv { + void *regs; + void *dmem; + void *imem; + struct device *dev; + const struct dpfe_api *dpfe_api; + struct mutex lock; }; -struct trace_event_raw_thermal_power_devfreq_limit { - struct trace_entry ent; - u32 __data_loc_type; - unsigned int freq; - unsigned long cdev_state; - u32 power; - char __data[0]; +struct init_data { + unsigned int dmem_len; + unsigned int imem_len; + unsigned int chksum; + bool is_big_endian; }; -struct trace_event_data_offsets_thermal_temperature { - u32 thermal_zone; +struct iio_mount_matrix { + const char *rotation[9]; }; -struct trace_event_data_offsets_cdev_update { - u32 type; +struct iio_const_attr { + const char *string; + struct device_attribute dev_attr; }; -struct trace_event_data_offsets_thermal_zone_trip { - u32 thermal_zone; +struct iio_enum { + const char * const *items; + unsigned int num_items; + int (*set)(struct iio_dev *, const struct iio_chan_spec *, unsigned int); + int (*get)(struct iio_dev *, const struct iio_chan_spec *); }; -struct trace_event_data_offsets_thermal_power_cpu_limit { - u32 cpumask; +typedef const struct iio_mount_matrix *iio_get_mount_matrix_t(const struct iio_dev *, const struct iio_chan_spec *); + +struct iio_event_data { + __u64 id; + __s64 timestamp; }; -struct trace_event_data_offsets_thermal_power_devfreq_get_power { - u32 type; +struct iio_event_interface { + wait_queue_head_t wait; + long: 32; + struct { + union { + struct __kfifo kfifo; + struct iio_event_data *type; + const struct iio_event_data *const_type; + char (*rectype)[0]; + struct iio_event_data *ptr; + const struct iio_event_data *ptr_const; + }; + long: 32; + struct iio_event_data buf[16]; + } det_events; + struct list_head dev_attr_list; + unsigned long flags; + struct attribute_group group; + struct mutex read_lock; + struct iio_ioctl_handler ioctl_handler; }; -struct trace_event_data_offsets_thermal_power_devfreq_limit { - u32 type; +struct iio_dev_buffer_pair { + struct iio_dev *indio_dev; + struct iio_buffer *buffer; }; -struct trace_event_data_offsets_thermal_power_cpu_get_power_simple {}; +struct iio_sw_trigger_ops; -struct heartbeat_trig_data { - struct led_classdev *led_cdev; - unsigned int phase; - unsigned int period; - struct timer_list timer; - unsigned int invert; +struct iio_sw_trigger_type { + const char *name; + struct module *owner; + const struct iio_sw_trigger_ops *ops; + struct list_head list; + struct config_group *group; }; -struct scmi_sensor_info; - -struct scmi_sensor_reading; +struct iio_sw_trigger; -struct scmi_sensor_proto_ops { - int (*count_get)(const struct scmi_protocol_handle *); - const struct scmi_sensor_info * (*info_get)(const struct scmi_protocol_handle *, u32); - int (*trip_point_config)(const struct scmi_protocol_handle *, u32, u8, u64); - int (*reading_get)(const struct scmi_protocol_handle *, u32, u64 *); - int (*reading_get_timestamped)(const struct scmi_protocol_handle *, u32, u8, struct scmi_sensor_reading *); - int (*config_get)(const struct scmi_protocol_handle *, u32, u32 *); - int (*config_set)(const struct scmi_protocol_handle *, u32, u32); +struct iio_sw_trigger_ops { + struct iio_sw_trigger * (*probe)(const char *); + int (*remove)(struct iio_sw_trigger *); }; -struct scmi_sensor_intervals_info { - bool segmented; - unsigned int count; - unsigned int *desc; - unsigned int prealloc_pool[16]; +struct iio_sw_trigger { + struct iio_trigger *trigger; + struct iio_sw_trigger_type *trigger_type; + struct config_group group; }; -struct scmi_range_attrs { - long long min_range; - long long max_range; +struct iio_hrtimer_info { + struct iio_sw_trigger swt; + struct hrtimer timer; + int sampling_frequency[2]; + ktime_t period; }; -struct scmi_sensor_axis_info; +struct optee_session { + struct list_head list_node; + u32 session_id; +}; -struct scmi_sensor_info { - unsigned int id; - unsigned int type; - int scale; - unsigned int num_trip_points; - bool async; - bool update; - bool timestamped; - int tstamp_scale; - unsigned int num_axis; - struct scmi_sensor_axis_info *axis; - struct scmi_sensor_intervals_info intervals; - unsigned int sensor_config; - char name[64]; - bool extended_scalar_attrs; - unsigned int sensor_power; - unsigned int resolution; - int exponent; - struct scmi_range_attrs scalar_attrs; +struct optee_context_data { + struct mutex mutex; + struct list_head sess_list; }; -struct scmi_sensor_axis_info { - unsigned int id; - unsigned int type; - int scale; - char name[64]; - bool extended_attrs; - unsigned int resolution; - int exponent; - struct scmi_range_attrs attrs; +enum sk_pacing { + SK_PACING_NONE = 0, + SK_PACING_NEEDED = 1, + SK_PACING_FQ = 2, }; -struct scmi_sensor_reading { - long long value; - unsigned long long timestamp; +enum txtime_flags { + SOF_TXTIME_DEADLINE_MODE = 1, + SOF_TXTIME_REPORT_ERRORS = 2, + SOF_TXTIME_FLAGS_LAST = 2, + SOF_TXTIME_FLAGS_MASK = 3, }; -enum scmi_sensor_protocol_cmd { - SENSOR_DESCRIPTION_GET = 3, - SENSOR_TRIP_POINT_NOTIFY = 4, - SENSOR_TRIP_POINT_CONFIG = 5, - SENSOR_READING_GET = 6, - SENSOR_AXIS_DESCRIPTION_GET = 7, - SENSOR_LIST_UPDATE_INTERVALS = 8, - SENSOR_CONFIG_GET = 9, - SENSOR_CONFIG_SET = 10, - SENSOR_CONTINUOUS_UPDATE_NOTIFY = 11, - SENSOR_NAME_GET = 12, - SENSOR_AXIS_NAME_GET = 13, +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 scmi_sens_ipriv { - void *priv; - struct device *dev; +struct ucred { + __u32 pid; + __u32 uid; + __u32 gid; }; -struct sensors_info { - u32 version; - int num_sensors; - int max_requests; - long: 32; - u64 reg_addr; - u32 reg_size; - struct scmi_sensor_info *sensors; +struct linger { + int l_onoff; + int l_linger; }; -struct scmi_msg_resp_sensor_attributes { - __le16 num_sensors; - u8 max_requests; - u8 reserved; - __le32 reg_addr_low; - __le32 reg_addr_high; - __le32 reg_size; +struct sock_txtime { + __kernel_clockid_t clockid; + __u32 flags; }; -struct scmi_msg_resp_attrs { - __le32 min_range_low; - __le32 min_range_high; - __le32 max_range_low; - __le32 max_range_high; +struct so_timestamping { + int flags; + int bind_phc; }; -struct scmi_apriv { - bool any_axes_support_extended_names; - struct scmi_sensor_info *s; +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, }; -struct scmi_sensor_reading_resp { - __le32 sensor_value_low; - __le32 sensor_value_high; - __le32 timestamp_low; - __le32 timestamp_high; +enum { + LWT_BPF_PROG_UNSPEC = 0, + LWT_BPF_PROG_FD = 1, + LWT_BPF_PROG_NAME = 2, + __LWT_BPF_PROG_MAX = 3, }; -struct scmi_msg_sensor_request_notify { - __le32 id; - __le32 event_control; +struct gre_base_hdr { + __be16 flags; + __be16 protocol; }; -struct scmi_msg_sensor_description { - __le32 desc_index; +struct bpf_lwt { + struct bpf_lwt_prog in; + struct bpf_lwt_prog out; + struct bpf_lwt_prog xmit; + int family; }; -struct scmi_sensor_descriptor { - __le32 id; - __le32 attributes_low; - __le32 attributes_high; - u8 name[16]; - __le32 power; - __le32 resolution; - struct scmi_msg_resp_attrs scalar_attrs; +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 scmi_msg_resp_sensor_description { - __le16 num_returned; - __le16 num_remaining; - struct scmi_sensor_descriptor desc[0]; +struct debug_reply_data { + struct ethnl_reply_data base; + u32 msg_mask; }; -struct scmi_msg_sensor_list_update_intervals { - __le32 id; - __le32 index; +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, }; -struct scmi_msg_resp_sensor_list_update_intervals { - __le32 num_intervals_flags; - __le32 intervals[0]; +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 scmi_msg_sensor_axis_description_get { - __le32 id; - __le32 axis_desc_index; +struct mm_reply_data { + struct ethnl_reply_data base; + struct ethtool_mm_state state; + long: 32; + struct ethtool_mm_stats stats; }; -struct scmi_axis_descriptor { - __le32 id; - __le32 attributes_low; - __le32 attributes_high; - u8 name[16]; - __le32 resolution; - struct scmi_msg_resp_attrs attrs; +struct igmphdr { + __u8 type; + __u8 code; + __sum16 csum; + __be32 group; }; -struct scmi_msg_resp_sensor_axis_description { - __le32 num_axis_flags; - struct scmi_axis_descriptor desc[0]; +struct igmp_mc_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *in_dev; }; -struct scmi_sensor_axis_name_descriptor { - __le32 axis_id; - u8 name[64]; +struct igmp_mcf_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *idev; + struct ip_mc_list *im; }; -struct scmi_msg_resp_sensor_axis_names_description { - __le32 num_axis_flags; - struct scmi_sensor_axis_name_descriptor desc[0]; +struct ip_mreq_source { + __be32 imr_multiaddr; + __be32 imr_interface; + __be32 imr_sourceaddr; }; -struct scmi_msg_set_sensor_trip_point { - __le32 id; - __le32 event_control; - __le32 value_low; - __le32 value_high; +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 scmi_msg_sensor_reading_get { - __le32 id; - __le32 flags; +struct udp_seq_afinfo { + sa_family_t family; + struct udp_table *udp_table; }; -struct scmi_resp_sensor_reading_complete { - __le32 id; - __le32 readings_low; - __le32 readings_high; +enum { + DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0, + DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 1, }; -struct scmi_resp_sensor_reading_complete_v3 { - __le32 id; - struct scmi_sensor_reading_resp readings[0]; +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, }; -struct scmi_msg_sensor_config_set { - __le32 id; - __le32 sensor_config; +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, }; -struct scmi_sensor_trip_point_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int sensor_id; - unsigned int trip_point_desc; - long: 32; +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 scmi_sensor_trip_notify_payld { - __le32 agent_id; - __le32 sensor_id; - __le32 trip_point_desc; +struct devlink_trap_policer_item; + +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 scmi_sensor_update_notify_payld { - __le32 agent_id; - __le32 sensor_id; - struct scmi_sensor_reading_resp readings[0]; +struct devlink_trap_policer_item { + const struct devlink_trap_policer *policer; + long: 32; + u64 rate; + u64 burst; + struct list_head list; }; -struct scmi_sensor_update_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int sensor_id; - unsigned int readings_count; +struct devlink_stats { + u64_stats_t rx_bytes; + u64_stats_t rx_packets; + struct u64_stats_sync syncp; long: 32; - struct scmi_sensor_reading readings[0]; }; -enum sh_cmt_model { - SH_CMT_16BIT = 0, - SH_CMT_32BIT = 1, - SH_CMT_48BIT = 2, - SH_CMT0_RCAR_GEN2 = 3, - SH_CMT1_RCAR_GEN2 = 4, +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 sh_cmt_info { - enum sh_cmt_model model; - unsigned int channels_mask; - unsigned long width; - u32 overflow_bit; - u32 clear_bits; - u32 (*read_control)(void *, unsigned long); - void (*write_control)(void *, unsigned long, u32); - u32 (*read_count)(void *, unsigned long); - void (*write_count)(void *, unsigned long, u32); +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; }; -struct sh_cmt_device; +typedef struct rpc_xprt * (*xprt_switch_find_xprt_t)(struct rpc_xprt_switch *, const struct rpc_xprt *); -struct sh_cmt_channel { - struct sh_cmt_device *cmt; - unsigned int index; - unsigned int hwidx; - void *iostart; - void *ioctrl; - unsigned int timer_bit; - unsigned long flags; - u32 match_value; - u32 next_match_value; - u32 max_match_value; - raw_spinlock_t lock; +struct xdp_ring; + +struct xsk_queue { + u32 ring_mask; + u32 nentries; + u32 cached_prod; + u32 cached_cons; + struct xdp_ring *ring; + long: 32; + u64 invalid_descs; + u64 queue_empty_descs; + size_t ring_vmalloc_size; + long: 32; +}; + +struct xdp_ring { + u32 producer; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + u32 pad1; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + u32 consumer; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + u32 pad2; + u32 flags; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + u32 pad3; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; long: 32; long: 32; long: 32; long: 32; - struct clock_event_device ced; - struct clocksource cs; - u64 total_cycles; - bool cs_enabled; long: 32; long: 32; long: 32; }; -struct sh_cmt_device { - struct platform_device *pdev; - const struct sh_cmt_info *info; - void *mapbase; - struct clk *clk; - unsigned long rate; - unsigned int reg_delay; - raw_spinlock_t lock; - struct sh_cmt_channel *channels; - unsigned int num_channels; - unsigned int hw_channels; - bool has_clockevent; - bool has_clocksource; -}; - -struct sh_timer_config { - unsigned int channels_mask; -}; - -struct st_clksrc_ddata { - struct clk *clk; - void *base; -}; - -struct hwspinlock_device; - -struct hwspinlock { - struct hwspinlock_device *bank; - spinlock_t lock; - void *priv; -}; +struct rps_map; -struct hwspinlock_ops; +struct rps_dev_flow_table; -struct hwspinlock_device { - struct device *dev; - const struct hwspinlock_ops *ops; - int base_id; - int num_locks; - struct hwspinlock lock[0]; +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: 32; + long: 32; + long: 32; }; -struct hwspinlock_ops { - int (*trylock)(struct hwspinlock *); - void (*unlock)(struct hwspinlock *); - void (*relax)(struct hwspinlock *); +struct rps_map { + unsigned int len; + struct callback_head rcu; + u16 cpus[0]; }; -struct tegra20_mc_client_stat { - unsigned int events; - unsigned int arb_high_prio; - unsigned int arb_timeout; - unsigned int arb_bandwidth; - unsigned int rd_wr_change; - unsigned int successive; - unsigned int page_miss; - unsigned int auto_precharge; - unsigned int arb_bank_aa; - unsigned int arb_bank_bb; +struct rps_dev_flow { + u16 cpu; + u16 filter; + unsigned int last_qtail; }; -struct tegra20_mc_stat_gather { - unsigned int pri_filter; - unsigned int pri_event; - unsigned int result; - unsigned int client; - unsigned int event; - bool client_enb; +struct rps_dev_flow_table { + unsigned int mask; + struct callback_head rcu; + struct rps_dev_flow flows[0]; }; -struct tegra20_mc_stat { - struct tegra20_mc_stat_gather gather0; - struct tegra20_mc_stat_gather gather1; - unsigned int sample_time_usec; - const struct tegra_mc *mc; +enum xdp_buff_flags { + XDP_FLAGS_HAS_FRAGS = 1, + XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, }; -struct optee_session { - struct list_head list_node; - u32 session_id; +enum xdp_mem_type { + MEM_TYPE_PAGE_SHARED = 0, + MEM_TYPE_PAGE_ORDER0 = 1, + MEM_TYPE_PAGE_POOL = 2, + MEM_TYPE_XSK_BUFF_POOL = 3, + MEM_TYPE_MAX = 4, }; -struct optee_context_data { - struct mutex mutex; - struct list_head sess_list; +struct xdp_rxtx_ring { + struct xdp_ring ptrs; + struct xdp_desc desc[0]; }; -enum hwtstamp_flags { - HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1, - HWTSTAMP_FLAG_LAST = 1, - HWTSTAMP_FLAG_MASK = 1, +struct xdp_umem_ring { + struct xdp_ring ptrs; + u64 desc[0]; }; -struct strset_info { - bool per_dev; - bool free_strings; - unsigned int count; - const char (*strings)[32]; +struct sockaddr_xdp { + __u16 sxdp_family; + __u16 sxdp_flags; + __u32 sxdp_ifindex; + __u32 sxdp_queue_id; + __u32 sxdp_shared_umem_fd; }; -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, +struct xdp_ring_offset_v1 { + __u64 producer; + __u64 consumer; + __u64 desc; }; -enum { - ETHTOOL_A_STRINGSETS_UNSPEC = 0, - ETHTOOL_A_STRINGSETS_STRINGSET = 1, - __ETHTOOL_A_STRINGSETS_CNT = 2, - ETHTOOL_A_STRINGSETS_MAX = 1, +struct parsed_desc { + u32 mb; + u32 valid; }; -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, +struct xdp_umem_reg { + __u64 addr; + __u64 len; + __u32 chunk_size; + __u32 headroom; + __u32 flags; + long: 32; }; -enum { - ETHTOOL_A_STRINGS_UNSPEC = 0, - ETHTOOL_A_STRINGS_STRING = 1, - __ETHTOOL_A_STRINGS_CNT = 2, - ETHTOOL_A_STRINGS_MAX = 1, +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; }; -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 xdp_ring_offset { + __u64 producer; + __u64 consumer; + __u64 desc; + __u64 flags; }; -struct strset_req_info { - struct ethnl_req_info base; - u32 req_ids; - bool counts_only; +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 strset_reply_data { - struct ethnl_reply_data base; - struct strset_info sets[21]; +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 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 xdp_options { + __u32 flags; }; -struct ip_fraglist_iter { - struct sk_buff *frag; - struct iphdr *iph; - int offset; - unsigned int hlen; +enum unwind_reason_code { + URC_OK = 0, + URC_CONTINUE_UNWIND = 8, + URC_FAILURE = 9, }; -struct ip_options_data { - struct ip_options_rcu opt; - char data[40]; +enum regs { + FP = 11, + SP = 13, + LR = 14, + PC = 15, }; -typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); - -struct packet_offload { - __be16 type; - u16 priority; - struct offload_callbacks callbacks; - struct list_head list; +struct unwind_ctrl_block { + unsigned long vrs[16]; + const unsigned long *insn; + unsigned long sp_high; + unsigned long *lr_addr; + int check_each_pop; + int entries; + int byte; }; 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, + 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, }; -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, +struct cachepolicy { + const char policy[16]; + unsigned int cr_mask; + pmdval_t pmd; + pteval_t pte; }; -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_NOT_OPTIMISTIC = 9, - IPV6_SADDR_RULE_MAX = 10, +struct ptdesc { + unsigned long __page_flags; + union { + struct callback_head pt_rcu_head; + struct list_head pt_list; + struct { + unsigned long _pt_pad_1; + pgtable_t pmd_huge_pte; + }; + }; + unsigned long __page_mapping; + union { + struct mm_struct *pt_mm; + atomic_t pt_frag_refcount; + }; + union { + unsigned long _pt_pad_2; + spinlock_t ptl; + }; + unsigned int __page_type; + atomic_t _refcount; + unsigned long pt_memcg_data; }; -enum { - DAD_PROCESS = 0, - DAD_BEGIN = 1, - DAD_ABORT = 2, +struct bcm_kona_smc_data { + unsigned int service_id; + unsigned int arg0; + unsigned int arg1; + unsigned int arg2; + unsigned int arg3; + unsigned int result; }; -enum cleanup_prefix_rt_t { - CLEANUP_PREFIX_RT_NOP = 0, - CLEANUP_PREFIX_RT_DEL = 1, - CLEANUP_PREFIX_RT_EXPIRE = 2, +struct pm_clk_notifier_block { + struct notifier_block nb; + struct dev_pm_domain *pm_domain; + char *con_ids[0]; }; -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, +struct omap_prm_irq_context { + unsigned long irq_enable; + unsigned long pm_ctrl; }; -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, +struct omap4_vp { + u32 irqstatus_mpu; + u32 tranxdone_status; }; 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, + HP_THREAD_NONE = 0, + HP_THREAD_ACTIVE = 1, + HP_THREAD_PARKED = 2, }; -enum { - PREFIX_UNSPEC = 0, - PREFIX_ADDRESS = 1, - PREFIX_CACHEINFO = 2, - __PREFIX_MAX = 3, +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 addr_type_t { - UNICAST_ADDR = 0, - MULTICAST_ADDR = 1, - ANYCAST_ADDR = 2, +struct smpboot_thread_data { + unsigned int cpu; + unsigned int status; + struct smp_hotplug_thread *ht; }; -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, +struct partial_page { + unsigned int offset; + unsigned int len; + unsigned long private; }; -union fwnet_hwaddr { - u8 u[16]; - struct { - __be64 uniq_id; - u8 max_rec; - u8 sspd; - u8 fifo[6]; - } uc; +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 prefix_cacheinfo { - __u32 preferred_time; - __u32 valid_time; +struct rchan_percpu_buf_dispatcher { + struct rchan_buf *buf; + struct dentry *dentry; }; -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 dynevent_arg_pair { + const char *lhs; + const char *rhs; + char operator; + char separator; }; -struct in6_ifreq { - struct in6_addr ifr6_addr; - __u32 ifr6_prefixlen; - int ifr6_ifindex; +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 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 btf_array { + __u32 type; + __u32 index_type; + __u32 nelems; }; -struct ifaddrmsg { - __u8 ifa_family; - __u8 ifa_prefixlen; - __u8 ifa_flags; - __u8 ifa_scope; - __u32 ifa_index; +struct btf_enum { + __u32 name_off; + __s32 val; }; -struct if6_iter_state { - struct seq_net_private p; - int bucket; - int offset; +struct btf_enum64 { + __u32 name_off; + __u32 val_lo32; + __u32 val_hi32; }; -struct inet6_fill_args { - u32 portid; - u32 seq; - int event; - unsigned int flags; - int netnsid; - int ifindex; - enum addr_type_t type; +struct bpf_core_accessor { + __u32 type_id; + __u32 idx; + const char *name; }; -struct ifa_cacheinfo { - __u32 ifa_prefered; - __u32 ifa_valid; - __u32 cstamp; - __u32 tstamp; +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 netdev_notifier_change_info { - struct netdev_notifier_info info; - unsigned int flags_changed; +struct bpf_core_relo { + __u32 insn_off; + __u32 type_id; + __u32 access_str_off; + enum bpf_core_relo_kind kind; }; -struct netconfmsg { - __u8 ncm_family; +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; + long: 32; }; -struct ipv6_saddr_score { - int rule; - int addr_type; - struct inet6_ifaddr *ifa; - unsigned long scorebits[1]; - int scopedist; - int matchlen; -}; +struct bpf_core_cand; -struct ipv6_saddr_dst { - const struct in6_addr *addr; - int ifindex; - int scope; - int label; - unsigned int prefs; +struct bpf_core_cand_list { + struct bpf_core_cand *cands; + int len; }; -struct in6_validator_info { - struct in6_addr i6vi_addr; - struct inet6_dev *i6vi_dev; - struct netlink_ext_ack *extack; +struct bpf_core_cand { + const struct btf *btf; + __u32 id; }; -struct ifla_cacheinfo { - __u32 max_reasm_len; - __u32 tstamp; - __u32 reachable_time; - __u32 retrans_time; +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]; + long: 32; }; -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 *); - -struct rpc_create_args; - -typedef void (*btf_trace_rpc_clnt_new)(void *, const struct rpc_clnt *, const struct rpc_xprt *, const struct rpc_create_args *); +struct swevent_hlist; -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 xprtsec_parms xprtsec; +struct swevent_htable { + struct swevent_hlist *swevent_hlist; + struct mutex hlist_mutex; + int hlist_refcount; + int recursion[4]; }; -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 *); +struct swevent_hlist { + struct hlist_head heads[256]; + struct callback_head callback_head; +}; -typedef void (*btf_trace_rpc_bad_callhdr)(void *, const struct rpc_task *); +struct min_heap_callbacks { + int elem_size; + bool (*less)(const void *, const void *); + void (*swp)(void *, void *); +}; -typedef void (*btf_trace_rpc_bad_verifier)(void *, const struct rpc_task *); +struct pmu_event_list { + raw_spinlock_t lock; + struct list_head list; +}; -typedef void (*btf_trace_rpc__prog_unavail)(void *, const struct rpc_task *); +enum perf_addr_filter_action_t { + PERF_ADDR_FILTER_ACTION_STOP = 0, + PERF_ADDR_FILTER_ACTION_START = 1, + PERF_ADDR_FILTER_ACTION_FILTER = 2, +}; -typedef void (*btf_trace_rpc__prog_mismatch)(void *, const struct rpc_task *); +enum event_type_t { + EVENT_FLEXIBLE = 1, + EVENT_PINNED = 2, + EVENT_TIME = 4, + EVENT_CPU = 8, + EVENT_CGROUP = 16, + EVENT_ALL = 3, +}; -typedef void (*btf_trace_rpc__proc_unavail)(void *, const struct rpc_task *); +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, +}; -typedef void (*btf_trace_rpc__garbage_args)(void *, const struct rpc_task *); +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, +}; -typedef void (*btf_trace_rpc__unparsable)(void *, const struct rpc_task *); +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, +}; -typedef void (*btf_trace_rpc__mismatch)(void *, const struct rpc_task *); +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, +}; -typedef void (*btf_trace_rpc__stale_creds)(void *, const struct rpc_task *); +enum perf_event_task_context { + perf_invalid_context = -1, + perf_hw_context = 0, + perf_sw_context = 1, + perf_nr_task_contexts = 2, +}; -typedef void (*btf_trace_rpc__bad_creds)(void *, const struct rpc_task *); +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, +}; -typedef void (*btf_trace_rpc__auth_tooweak)(void *, const struct rpc_task *); +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, +}; -typedef void (*btf_trace_rpcb_prog_unavail_err)(void *, const struct rpc_task *); +enum perf_sample_regs_abi { + PERF_SAMPLE_REGS_ABI_NONE = 0, + PERF_SAMPLE_REGS_ABI_32 = 1, + PERF_SAMPLE_REGS_ABI_64 = 2, +}; -typedef void (*btf_trace_rpcb_timeout_err)(void *, const struct rpc_task *); +enum perf_probe_config { + PERF_PROBE_CONFIG_IS_RETPROBE = 1, + PERF_UPROBE_REF_CTR_OFFSET_BITS = 32, + PERF_UPROBE_REF_CTR_OFFSET_SHIFT = 32, +}; -typedef void (*btf_trace_rpcb_bind_version_err)(void *, const struct rpc_task *); +enum perf_event_ioc_flags { + PERF_IOC_FLAG_GROUP = 1, +}; -typedef void (*btf_trace_rpcb_unreachable_err)(void *, const struct rpc_task *); +enum { + IF_STATE_ACTION = 0, + IF_STATE_SOURCE = 1, + IF_STATE_END = 2, +}; -typedef void (*btf_trace_rpcb_unrecognized_err)(void *, const struct rpc_task *); +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 (*btf_trace_rpc_buf_alloc)(void *, const struct rpc_task *, int); +struct perf_addr_filter { + struct list_head entry; + struct path path; + unsigned long offset; + unsigned long size; + enum perf_addr_filter_action_t action; +}; -typedef void (*btf_trace_rpc_call_rpcerror)(void *, const struct rpc_task *, int, int); +typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *); -typedef void (*btf_trace_rpc_stats_latency)(void *, const struct rpc_task *, ktime_t, ktime_t, ktime_t); +struct perf_event_header { + __u32 type; + __u16 misc; + __u16 size; +}; -typedef void (*btf_trace_rpc_xdr_overflow)(void *, const struct xdr_stream *, size_t); +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 (*btf_trace_rpc_xdr_alignment)(void *, const struct xdr_stream *, size_t, unsigned int); +typedef void perf_iterate_f(struct perf_event *, void *); -typedef void (*btf_trace_rpc_socket_state_change)(void *, struct rpc_xprt *, struct socket *); +struct stop_event_data { + struct perf_event *event; + unsigned int restart; +}; -typedef void (*btf_trace_rpc_socket_connect)(void *, struct rpc_xprt *, struct socket *, int); +typedef int (*remote_function_f)(void *); -typedef void (*btf_trace_rpc_socket_error)(void *, struct rpc_xprt *, struct socket *, int); +struct remote_function_call { + struct task_struct *p; + remote_function_f func; + void *info; + int ret; +}; -typedef void (*btf_trace_rpc_socket_reset_connection)(void *, struct rpc_xprt *, struct socket *, int); +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; +}; -typedef void (*btf_trace_rpc_socket_close)(void *, struct rpc_xprt *, struct socket *); +struct perf_ns_link_info { + __u64 dev; + __u64 ino; +}; -typedef void (*btf_trace_rpc_socket_shutdown)(void *, struct rpc_xprt *, struct socket *); +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 sock_xprt; +struct perf_mmap_event { + struct vm_area_struct *vma; + const char *file_name; + int file_size; + int maj; + int min; + long: 32; + 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; +}; -typedef void (*btf_trace_rpc_socket_nospace)(void *, const struct rpc_rqst *, const struct sock_xprt *); +struct perf_aux_event { + struct perf_event_header header; + u64 offset; + u64 size; + u64 flags; +}; -struct sock_xprt { - struct rpc_xprt xprt; - struct socket *sock; - struct sock *inet; - struct file *file; +struct perf_ksymbol_event { + const char *name; + int name_len; struct { - struct { - __be32 fraghdr; - __be32 xid; - __be32 calldir; - }; - u32 offset; + struct perf_event_header header; + u64 addr; 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 completion handshake_done; - struct __kernel_sockaddr_storage srcaddr; - unsigned short srcport; - int xprt_err; - struct rpc_clnt *clnt; - 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 *); - long: 32; + u16 ksym_type; + u16 flags; + } event_id; }; -typedef void (*btf_trace_xprt_create)(void *, const struct rpc_xprt *); - -typedef void (*btf_trace_xprt_connect)(void *, const struct rpc_xprt *); +struct perf_aux_event___2 { + struct perf_event_header header; + u64 hw_id; +}; -typedef void (*btf_trace_xprt_disconnect_auto)(void *, const struct rpc_xprt *); +struct __group_key { + int cpu; + struct pmu *pmu; + struct cgroup *cgroup; +}; -typedef void (*btf_trace_xprt_disconnect_done)(void *, const struct rpc_xprt *); +struct perf_cgroup_event { + char *path; + int path_size; + struct { + struct perf_event_header header; + u64 id; + char path[0]; + } event_id; +}; -typedef void (*btf_trace_xprt_disconnect_force)(void *, const struct rpc_xprt *); +struct min_heap { + void *data; + int nr; + int size; +}; -typedef void (*btf_trace_xprt_destroy)(void *, const struct rpc_xprt *); +struct perf_aux_event___3 { + struct perf_event_header header; + u32 pid; + u32 tid; +}; -typedef void (*btf_trace_xprt_timer)(void *, const struct rpc_xprt *, __be32, int); +struct perf_read_event { + struct perf_event_header header; + u32 pid; + u32 tid; +}; -typedef void (*btf_trace_xprt_lookup_rqst)(void *, const struct rpc_xprt *, __be32, int); +struct remote_output { + struct perf_buffer *rb; + int err; +}; -typedef void (*btf_trace_xprt_transmit)(void *, const struct rpc_rqst *, int); +struct perf_namespaces_event { + struct task_struct *task; + long: 32; + struct { + struct perf_event_header header; + u32 pid; + u32 tid; + u64 nr_namespaces; + struct perf_ns_link_info link_info[7]; + } event_id; +}; -typedef void (*btf_trace_xprt_retransmit)(void *, const struct rpc_rqst *); +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; +}; -typedef void (*btf_trace_xprt_ping)(void *, const struct rpc_xprt *, int); +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; +}; -typedef void (*btf_trace_xprt_reserve_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct event_function_struct { + struct perf_event *event; + event_f func; + void *data; +}; -typedef void (*btf_trace_xprt_release_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct perf_read_data { + struct perf_event *event; + bool group; + int ret; +}; -typedef void (*btf_trace_xprt_reserve_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +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 *); +}; -typedef void (*btf_trace_xprt_release_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct nfs4_ssc_client_ops; -typedef void (*btf_trace_xprt_get_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct nfs_ssc_client_ops; -typedef void (*btf_trace_xprt_put_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct nfs_ssc_client_ops_tbl { + const struct nfs4_ssc_client_ops *ssc_nfs4_ops; + const struct nfs_ssc_client_ops *ssc_nfs_ops; +}; -typedef void (*btf_trace_xprt_reserve)(void *, const struct rpc_rqst *); +struct nfs4_ssc_client_ops { + struct file * (*sco_open)(struct vfsmount *, struct nfs_fh *, nfs4_stateid *); + void (*sco_close)(struct file *); +}; -typedef void (*btf_trace_xs_data_ready)(void *, const struct rpc_xprt *); +struct nfs_ssc_client_ops { + void (*sco_sb_deactive)(struct super_block *); +}; -typedef void (*btf_trace_xs_stream_read_data)(void *, struct rpc_xprt *, ssize_t, size_t); +enum criteria { + CR_POWER2_ALIGNED = 0, + CR_GOAL_LEN_FAST = 1, + CR_BEST_AVAIL_LEN = 2, + CR_GOAL_LEN_SLOW = 3, + CR_ANY_FREE = 4, + EXT4_MB_NUM_CRS = 5, +}; -typedef void (*btf_trace_xs_stream_read_request)(void *, struct sock_xprt *); +enum { + MB_INODE_PA = 0, + MB_GROUP_PA = 1, +}; -typedef void (*btf_trace_rpcb_getport)(void *, const struct rpc_clnt *, const struct rpc_task *, unsigned int); +enum blk_default_limits { + BLK_MAX_SEGMENTS = 128, + BLK_SAFE_MAX_SECTORS = 255, + BLK_MAX_SEGMENT_SIZE = 65536, + BLK_SEG_BOUNDARY_MASK = 4294967295, +}; -typedef void (*btf_trace_rpcb_setport)(void *, const struct rpc_task *, int, unsigned short); +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; +}; -typedef void (*btf_trace_pmap_register)(void *, u32, u32, int, unsigned short); +struct ext4_prealloc_space { + union { + struct rb_node inode_node; + struct list_head lg_list; + } pa_node; + struct list_head pa_group_list; + union { + struct list_head pa_tmp_list; + struct callback_head pa_rcu; + } u; + spinlock_t pa_lock; + atomic_t pa_count; + unsigned int pa_deleted; + ext4_fsblk_t pa_pstart; + ext4_lblk_t pa_lstart; + ext4_grpblk_t pa_len; + ext4_grpblk_t pa_free; + unsigned short pa_type; + union { + rwlock_t *inode_lock; + spinlock_t *lg_lock; + } pa_node_lock; + struct inode *pa_inode; +}; -typedef void (*btf_trace_rpcb_register)(void *, u32, u32, const char *, const char *); +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; +}; -typedef void (*btf_trace_rpcb_unregister)(void *, u32, u32, const char *); +struct sg { + struct ext4_group_info info; + ext4_grpblk_t counters[18]; +}; -typedef void (*btf_trace_rpc_tls_unavailable)(void *, const struct rpc_clnt *, const struct rpc_xprt *); +struct ext4_allocation_request { + struct inode *inode; + unsigned int len; + ext4_lblk_t logical; + ext4_lblk_t lleft; + ext4_lblk_t lright; + long: 32; + ext4_fsblk_t goal; + ext4_fsblk_t pleft; + ext4_fsblk_t pright; + unsigned int flags; + long: 32; +}; -typedef void (*btf_trace_rpc_tls_not_started)(void *, const struct rpc_clnt *, const struct rpc_xprt *); +struct ext4_free_extent { + ext4_lblk_t fe_logical; + ext4_grpblk_t fe_start; + ext4_group_t fe_group; + ext4_grpblk_t fe_len; +}; -typedef void (*btf_trace_svc_xdr_recvfrom)(void *, const struct xdr_buf *); +struct ext4_allocation_context { + struct inode *ac_inode; + struct super_block *ac_sb; + struct ext4_free_extent ac_o_ex; + struct ext4_free_extent ac_g_ex; + struct ext4_free_extent ac_b_ex; + struct ext4_free_extent ac_f_ex; + ext4_grpblk_t ac_orig_goal_len; + __u32 ac_groups_considered; + __u32 ac_flags; + __u16 ac_groups_scanned; + __u16 ac_groups_linear_remaining; + __u16 ac_found; + __u16 ac_cX_found[5]; + __u16 ac_tail; + __u16 ac_buddy; + __u8 ac_status; + __u8 ac_criteria; + __u8 ac_2order; + __u8 ac_op; + struct page *ac_bitmap_page; + struct page *ac_buddy_page; + struct ext4_prealloc_space *ac_pa; + struct ext4_locality_group *ac_lg; +}; -typedef void (*btf_trace_svc_xdr_sendto)(void *, __be32, const struct xdr_buf *); +struct fstrim_range { + __u64 start; + __u64 len; + __u64 minlen; +}; -typedef void (*btf_trace_svc_authenticate)(void *, const struct svc_rqst *, int); +typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); -typedef void (*btf_trace_svc_process)(void *, const struct svc_rqst *, const char *); +typedef unsigned long cycles_t; -typedef void (*btf_trace_svc_defer)(void *, const struct svc_rqst *); +enum layoutdriver_policy_flags { + PNFS_LAYOUTRET_ON_SETATTR = 1, + PNFS_LAYOUTRET_ON_ERROR = 2, + PNFS_READ_WHOLE_PAGE = 4, + PNFS_LAYOUTGET_ON_OPEN = 8, +}; -typedef void (*btf_trace_svc_drop)(void *, const struct svc_rqst *); +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, +}; -typedef void (*btf_trace_svc_send)(void *, const struct svc_rqst *, int); +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, +}; -typedef void (*btf_trace_svc_replace_page_err)(void *, const struct svc_rqst *); +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, +}; -typedef void (*btf_trace_svc_stats_latency)(void *, const struct svc_rqst *); +enum createmode4 { + NFS4_CREATE_UNCHECKED = 0, + NFS4_CREATE_GUARDED = 1, + NFS4_CREATE_EXCLUSIVE = 2, + NFS4_CREATE_EXCLUSIVE4_1 = 3, +}; -typedef void (*btf_trace_svc_xprt_create_err)(void *, const char *, const char *, struct sockaddr *, size_t, const struct svc_xprt *); +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, +}; -typedef void (*btf_trace_svc_xprt_enqueue)(void *, const struct svc_xprt *, const struct svc_rqst *); +enum nfs4_acl_type { + NFS4ACL_NONE = 0, + NFS4ACL_ACL = 1, + NFS4ACL_DACL = 2, + NFS4ACL_SACL = 3, +}; -typedef void (*btf_trace_svc_xprt_dequeue)(void *, const struct svc_rqst *); +enum state_protect_how4 { + SP4_NONE = 0, + SP4_MACH_CRED = 1, + SP4_SSV = 2, +}; -typedef void (*btf_trace_svc_xprt_no_write_space)(void *, const struct svc_xprt *); +enum nfs4_session_state { + NFS4_SESSION_INITING = 0, + NFS4_SESSION_ESTABLISHED = 1, +}; -typedef void (*btf_trace_svc_xprt_close)(void *, const struct svc_xprt *); +enum { + FATTR4_DIR_NOTIF_DELAY = 56, + FATTR4_DIRENT_NOTIF_DELAY = 57, + FATTR4_DACL = 58, + FATTR4_SACL = 59, + FATTR4_CHANGE_POLICY = 60, + FATTR4_FS_STATUS = 61, + FATTR4_FS_LAYOUT_TYPES = 62, + FATTR4_LAYOUT_HINT = 63, + FATTR4_LAYOUT_TYPES = 64, + FATTR4_LAYOUT_BLKSIZE = 65, + FATTR4_LAYOUT_ALIGNMENT = 66, + FATTR4_FS_LOCATIONS_INFO = 67, + FATTR4_MDSTHRESHOLD = 68, + FATTR4_RETENTION_GET = 69, + FATTR4_RETENTION_SET = 70, + FATTR4_RETENTEVT_GET = 71, + FATTR4_RETENTEVT_SET = 72, + FATTR4_RETENTION_HOLD = 73, + FATTR4_MODE_SET_MASKED = 74, + FATTR4_SUPPATTR_EXCLCREAT = 75, + FATTR4_FS_CHARSET_CAP = 76, +}; -typedef void (*btf_trace_svc_xprt_detach)(void *, const struct svc_xprt *); +enum { + FATTR4_XATTR_SUPPORT = 82, +}; -typedef void (*btf_trace_svc_xprt_free)(void *, const struct svc_xprt *); +enum { + FATTR4_CLONE_BLKSIZE = 77, + FATTR4_SPACE_FREED = 78, + FATTR4_CHANGE_ATTR_TYPE = 79, + FATTR4_SEC_LABEL = 80, +}; -typedef void (*btf_trace_svc_tls_start)(void *, const struct svc_xprt *); +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, +}; -typedef void (*btf_trace_svc_tls_upcall)(void *, const struct svc_xprt *); +enum nfs_ftype4 { + NF4BAD = 0, + NF4REG = 1, + NF4DIR = 2, + NF4BLK = 3, + NF4CHR = 4, + NF4LNK = 5, + NF4SOCK = 6, + NF4FIFO = 7, + NF4ATTRDIR = 8, + NF4NAMEDATTR = 9, +}; -typedef void (*btf_trace_svc_tls_unavailable)(void *, const struct svc_xprt *); +struct nfs4_cached_acl { + enum nfs4_acl_type type; + int cached; + size_t len; + char data[0]; +}; -typedef void (*btf_trace_svc_tls_not_started)(void *, const struct svc_xprt *); +struct stateowner_id { + __u64 create_time; + __u32 uniquifier; + long: 32; +}; -typedef void (*btf_trace_svc_tls_timed_out)(void *, const struct svc_xprt *); +struct nfs4_layoutget_args; -typedef void (*btf_trace_svc_xprt_accept)(void *, const struct svc_xprt *, const char *); +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; +}; -typedef void (*btf_trace_svc_wake_up)(void *, int); +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; + long: 32; +}; -typedef void (*btf_trace_svc_alloc_arg_err)(void *, unsigned int, unsigned int); +struct nfs_open_confirmargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + nfs4_stateid *stateid; + struct nfs_seqid *seqid; +}; -typedef void (*btf_trace_svc_defer_drop)(void *, const struct svc_deferred_req *); +struct nfs_open_confirmres { + struct nfs4_sequence_res seq_res; + nfs4_stateid stateid; + struct nfs_seqid *seqid; +}; -typedef void (*btf_trace_svc_defer_queue)(void *, const struct svc_deferred_req *); +struct nfs4_layoutget; -typedef void (*btf_trace_svc_defer_recv)(void *, const struct svc_deferred_req *); +struct nfs4_opendata { + struct kref kref; + long: 32; + 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; +}; -typedef void (*btf_trace_svcsock_new)(void *, const void *, const struct socket *); +struct nfs4_layoutget_args { + struct nfs4_sequence_args seq_args; + __u32 type; + long: 32; + 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; + long: 32; +}; -typedef void (*btf_trace_svcsock_free)(void *, const void *, const struct socket *); +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; + long: 32; +}; -typedef void (*btf_trace_svcsock_marker)(void *, const struct svc_xprt *, __be32); +struct nfs41_exchange_id_args { + struct nfs_client *client; + nfs4_verifier verifier; + u32 flags; + struct nfs41_state_protection state_protect; +}; -typedef void (*btf_trace_svcsock_udp_send)(void *, const struct svc_xprt *, ssize_t); +struct nfs41_exchange_id_data { + struct nfs41_exchange_id_res res; + struct nfs41_exchange_id_args args; + long: 32; +}; -typedef void (*btf_trace_svcsock_udp_recv)(void *, const struct svc_xprt *, ssize_t); +struct nfs4_get_lease_time_args; -typedef void (*btf_trace_svcsock_udp_recv_err)(void *, const struct svc_xprt *, ssize_t); +struct nfs4_get_lease_time_res; -typedef void (*btf_trace_svcsock_tcp_send)(void *, const struct svc_xprt *, ssize_t); +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 (*btf_trace_svcsock_tcp_recv)(void *, const struct svc_xprt *, ssize_t); +struct nfs4_get_lease_time_args { + struct nfs4_sequence_args la_seq_args; +}; -typedef void (*btf_trace_svcsock_tcp_recv_eagain)(void *, const struct svc_xprt *, ssize_t); +struct nfs4_get_lease_time_res { + struct nfs4_sequence_res lr_seq_res; + struct nfs_fsinfo *lr_fsinfo; +}; -typedef void (*btf_trace_svcsock_tcp_recv_err)(void *, const struct svc_xprt *, ssize_t); +struct nfs4_lock_waiter { + struct inode *inode; + long: 32; + struct nfs_lowner owner; + wait_queue_entry_t wait; + long: 32; +}; -typedef void (*btf_trace_svcsock_data_ready)(void *, const struct svc_xprt *, ssize_t); +struct nfs4_exception { + struct nfs4_state *state; + struct inode *inode; + nfs4_stateid *stateid; + long timeout; + unsigned short retrans; + unsigned char task_is_privileged: 1; + unsigned char delay: 1; + unsigned char recovering: 1; + unsigned char retry: 1; + bool interruptible; +}; -typedef void (*btf_trace_svcsock_write_space)(void *, const struct svc_xprt *, ssize_t); +struct nfs4_call_sync_data { + const struct nfs_server *seq_server; + struct nfs4_sequence_args *seq_args; + struct nfs4_sequence_res *seq_res; +}; -typedef void (*btf_trace_svcsock_tcp_recv_short)(void *, const struct svc_xprt *, u32, u32); +struct nfs4_server_caps_arg { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fhandle; + const u32 *bitmask; +}; -typedef void (*btf_trace_svcsock_tcp_state)(void *, const struct svc_xprt *, const struct socket *); +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; +}; -typedef void (*btf_trace_svcsock_accept_err)(void *, const struct svc_xprt *, const char *, long); +struct nfs4_lookup_root_arg { + struct nfs4_sequence_args seq_args; + const u32 *bitmask; +}; -typedef void (*btf_trace_svcsock_getpeername_err)(void *, const struct svc_xprt *, const char *, long); +struct nfs4_lookup_res { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; + struct nfs_fh *fh; +}; -typedef void (*btf_trace_cache_entry_expired)(void *, const struct cache_detail *, const struct cache_head *); +struct nfs4_fsinfo_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; +}; -typedef void (*btf_trace_cache_entry_upcall)(void *, const struct cache_detail *, const struct cache_head *); +struct nfs4_fsinfo_res { + struct nfs4_sequence_res seq_res; + struct nfs_fsinfo *fsinfo; +}; -typedef void (*btf_trace_cache_entry_update)(void *, const struct cache_detail *, const struct cache_head *); +struct nfs4_getattr_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; +}; -typedef void (*btf_trace_cache_entry_make_negative)(void *, const struct cache_detail *, const struct cache_head *); +struct nfs4_getattr_res { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; +}; -typedef void (*btf_trace_cache_entry_no_listener)(void *, const struct cache_detail *, const struct cache_head *); +struct nfs4_lookup_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *dir_fh; + const struct qstr *name; + const u32 *bitmask; +}; -typedef void (*btf_trace_svc_register)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); +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; +}; -typedef void (*btf_trace_svc_noregister)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); +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; + long: 32; +}; -typedef void (*btf_trace_svc_unregister)(void *, const char *, const u32, int); +struct nfs_lock_res { + struct nfs4_sequence_res seq_res; + nfs4_stateid stateid; + struct nfs_seqid *lock_seqid; + struct nfs_seqid *open_seqid; +}; -struct rpc_buffer { - size_t len; - char data[0]; +struct nfs4_lockdata { + struct nfs_lock_args arg; + struct nfs_lock_res res; + struct nfs4_lock_state *lsp; + struct nfs_open_context *ctx; + long: 32; + struct file_lock fl; + unsigned long timestamp; + int rpc_status; + int cancelled; + struct nfs_server *server; }; -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]; +typedef u64 clientid4; + +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; + long: 32; + clientid4 clientid; + unsigned char migration: 1; + unsigned char renew: 1; + long: 32; }; -struct trace_event_raw_rpc_clnt_class { - struct trace_entry ent; - unsigned int client_id; - char __data[0]; +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 trace_event_raw_rpc_clnt_new { - struct trace_entry ent; - unsigned int client_id; - unsigned long xprtsec; - unsigned long flags; - u32 __data_loc_program; - u32 __data_loc_server; - u32 __data_loc_addr; - u32 __data_loc_port; - char __data[0]; +struct nfs41_bind_conn_to_session_args { + struct nfs_client *client; + struct nfs4_sessionid sessionid; + u32 dir; + bool use_conn_in_rdma_mode; + int retries; }; -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 nfs41_bind_conn_to_session_res { + struct nfs4_sessionid sessionid; + u32 dir; + bool use_conn_in_rdma_mode; }; -struct trace_event_raw_rpc_clnt_clone_err { - struct trace_entry ent; - unsigned int client_id; - int error; - char __data[0]; +struct nfs41_create_session_args { + struct nfs_client *client; + long: 32; + u64 clientid; + uint32_t seqid; + uint32_t flags; + uint32_t cb_program; + struct nfs4_channel_attrs fc_attrs; + struct nfs4_channel_attrs bc_attrs; + long: 32; }; -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 nfs41_create_session_res { + struct nfs4_sessionid sessionid; + uint32_t seqid; + uint32_t flags; + struct nfs4_channel_attrs fc_attrs; + struct nfs4_channel_attrs bc_attrs; }; -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 nfs4_getdeviceinfo_args { + struct nfs4_sequence_args seq_args; + struct pnfs_device *pdev; + __u32 notify_types; }; -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 nfs4_getdeviceinfo_res { + struct nfs4_sequence_res seq_res; + struct pnfs_device *pdev; + __u32 notification; }; -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 nfs4_lookupp_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; }; -struct trace_event_raw_rpc_failure { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - char __data[0]; +struct nfs4_lookupp_res { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; + struct nfs_fh *fh; }; -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 nfs4_accessargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; + u32 access; }; -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 nfs4_accessres { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; + u32 supported; + u32 access; }; -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 nfs4_readlink { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + unsigned int pgbase; + unsigned int pglen; + struct page **pages; }; -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 nfs4_readlink_res { + struct nfs4_sequence_res seq_res; }; -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 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 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 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; + long: 32; }; -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 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 trace_event_raw_xs_socket_event_done { - struct trace_entry ent; - int error; - unsigned int socket_state; - unsigned int sock_state; +struct nfs4_create_res { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fh *fh; + struct nfs_fattr *fattr; long: 32; - unsigned long long ino; - __u8 saddr[28]; - __u8 daddr[28]; - char __data[0]; + struct nfs4_change_info dir_cinfo; }; -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 nfs4_createdata { + struct rpc_message msg; + struct nfs4_create_arg arg; + struct nfs4_create_res res; + struct nfs_fh fh; + long: 32; + struct nfs_fattr fattr; }; -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 nfs4_readdir_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + long: 32; + u64 cookie; + nfs4_verifier verifier; + u32 count; + struct page **pages; + unsigned int pgbase; + const u32 *bitmask; + bool plus; + long: 32; }; -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 nfs4_readdir_res { + struct nfs4_sequence_res seq_res; + nfs4_verifier verifier; + unsigned int pgbase; }; -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 nfs4_statfs_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; }; -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 nfs4_statfs_res { + struct nfs4_sequence_res seq_res; + struct nfs_fsstat *fsstat; }; -struct trace_event_raw_xprt_ping { - struct trace_entry ent; - int status; - u32 __data_loc_addr; - u32 __data_loc_port; - char __data[0]; +struct nfs4_pathconf_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; }; -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 nfs4_pathconf_res { + struct nfs4_sequence_res seq_res; + struct nfs_pathconf *pathconf; }; -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 nfs_lockt_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + struct file_lock *fl; + struct nfs_lowner lock_owner; }; -struct trace_event_raw_xprt_reserve { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - u32 xid; - char __data[0]; +struct nfs_lockt_res { + struct nfs4_sequence_res seq_res; + struct file_lock *denied; }; -struct trace_event_raw_xs_data_ready { - struct trace_entry ent; - u32 __data_loc_addr; - u32 __data_loc_port; - char __data[0]; +struct nfs4_add_xprt_data { + struct nfs_client *clp; + const struct cred *cred; }; -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 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 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 nfs_locku_res { + struct nfs4_sequence_res seq_res; + nfs4_stateid stateid; + struct nfs_seqid *seqid; }; -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 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; + long: 32; + struct file_lock fl; + struct nfs_server *server; + unsigned long timestamp; }; -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 nfs4_secinfo4 { + u32 flavor; + struct rpcsec_gss_info flavor_info; }; -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 nfs4_secinfo_flavors { + unsigned int num_flavors; + struct nfs4_secinfo4 flavors[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 nfs41_secinfo_no_name_args { + struct nfs4_sequence_args seq_args; + int style; }; -struct trace_event_raw_rpcb_unregister { - struct trace_entry ent; - unsigned int program; - unsigned int version; - u32 __data_loc_netid; - char __data[0]; +struct nfs4_secinfo_res { + struct nfs4_sequence_res seq_res; + struct nfs4_secinfo_flavors *flavors; }; -struct trace_event_raw_rpc_tls_class { - struct trace_entry ent; - unsigned long requested_policy; - u32 version; - u32 __data_loc_servername; - u32 __data_loc_progname; - char __data[0]; +struct nfs41_test_stateid_args { + struct nfs4_sequence_args seq_args; + nfs4_stateid *stateid; }; -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 nfs41_test_stateid_res { + struct nfs4_sequence_res seq_res; + unsigned int status; }; -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 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; }; -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 nfs_setattrres { + struct nfs4_sequence_res seq_res; + struct nfs_fattr *fattr; + const struct nfs_server *server; }; -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 nfs4_open_createattrs { + struct nfs4_label *label; + struct iattr *sattr; + const __u32 verf[2]; }; -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 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 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 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 trace_event_raw_svc_replace_page_err { - struct trace_entry ent; - u32 __data_loc_server; - u32 __data_loc_client; - unsigned int netns_ino; - u32 xid; - const void *begin; - const void *respages; - const void *nextpage; - char __data[0]; +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 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 nfs_setaclres { + struct nfs4_sequence_res seq_res; }; -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 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; + long: 32; }; -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 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 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 nfs4_secinfo_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *dir_fh; + const struct qstr *name; }; -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 rpc_bind_conn_calldata { + struct nfs_client *clp; + const struct cred *cred; }; -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 nfs4_layoutreturn { + struct nfs4_layoutreturn_args args; + struct nfs4_layoutreturn_res res; + const struct cred *cred; + struct nfs_client *clp; + struct inode *inode; + int rpc_status; + struct nfs4_xdr_opaque_data ld_private; }; -struct trace_event_raw_svc_wake_up { - struct trace_entry ent; - int pid; - char __data[0]; +struct nfs4_sequence_data { + struct nfs_client *clp; + struct nfs4_sequence_args args; + struct nfs4_sequence_res res; }; -struct trace_event_raw_svc_alloc_arg_err { - struct trace_entry ent; - unsigned int requested; - unsigned int allocated; - char __data[0]; +struct nfs_release_lockowner_args { + struct nfs4_sequence_args seq_args; + struct nfs_lowner lock_owner; }; -struct trace_event_raw_svc_deferred_event { - struct trace_entry ent; - const void *dr; - u32 xid; - u32 __data_loc_addr; - char __data[0]; +struct nfs_release_lockowner_res { + struct nfs4_sequence_res seq_res; }; -struct trace_event_raw_svcsock_lifetime_class { - struct trace_entry ent; - unsigned int netns_ino; - const void *svsk; - const void *sk; - unsigned long type; - unsigned long family; - unsigned long state; - char __data[0]; +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; + long: 32; }; -struct trace_event_raw_svcsock_marker { - struct trace_entry ent; - unsigned int length; - bool last; - u32 __data_loc_addr; - char __data[0]; +struct nfs4_renewdata { + struct nfs_client *client; + unsigned long timestamp; }; -struct trace_event_raw_svcsock_class { - struct trace_entry ent; - ssize_t result; - unsigned long flags; - u32 __data_loc_addr; - char __data[0]; +struct nfs4_fsid_present_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + long: 32; + clientid4 clientid; + unsigned char renew: 1; + long: 32; }; -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 nfs4_fsid_present_res { + struct nfs4_sequence_res seq_res; + struct nfs_fh *fh; + unsigned char renew: 1; }; -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 nfs41_free_stateid_args { + struct nfs4_sequence_args seq_args; + nfs4_stateid stateid; }; -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 nfs41_free_stateid_res { + struct nfs4_sequence_res seq_res; + unsigned int status; }; -struct trace_event_raw_cache_event { - struct trace_entry ent; - const struct cache_head *h; - u32 __data_loc_name; - char __data[0]; +struct nfs_free_stateid_data { + struct nfs_server *server; + struct nfs41_free_stateid_args args; + struct nfs41_free_stateid_res res; }; -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 nfs41_reclaim_complete_args { + struct nfs4_sequence_args seq_args; + unsigned char one_fs: 1; }; -struct trace_event_raw_svc_unregister { - struct trace_entry ent; - u32 version; - int error; - u32 __data_loc_program; - char __data[0]; +struct nfs41_reclaim_complete_res { + struct nfs4_sequence_res seq_res; }; -struct trace_event_data_offsets_rpc_clnt_new { - u32 program; - u32 server; - u32 addr; - u32 port; +struct nfs4_reclaim_complete_data { + struct nfs_client *clp; + struct nfs41_reclaim_complete_args arg; + struct nfs41_reclaim_complete_res res; }; -struct trace_event_data_offsets_rpc_clnt_new_err { - u32 program; - u32 server; +enum { + INDEX_ENTRY_NODE = 1, + INDEX_ENTRY_END = 2, + INDEX_ENTRY_SPACE_FILLER = 65535, }; -struct trace_event_data_offsets_rpc_request { - u32 progname; - u32 procname; +enum { + magic_FILE = 1162627398, + magic_INDX = 1480871497, + magic_HOLE = 1162628936, + magic_RSTR = 1381258066, + magic_RCRD = 1146241874, + magic_CHKD = 1145784387, + magic_BAAD = 1145127234, + magic_empty = 4294967295, }; -struct trace_event_data_offsets_rpc_task_queued { - u32 q_name; -}; +enum { + SMALL_INDEX = 0, + LARGE_INDEX = 1, + LEAF_NODE = 0, + INDEX_NODE = 1, + NODE_MASK = 1, +} __attribute__((mode(byte))); -struct trace_event_data_offsets_rpc_reply_event { - u32 progname; - u32 procname; - u32 servername; +enum { + COLLATION_BINARY = 0, + COLLATION_FILE_NAME = 1, + COLLATION_UNICODE_STRING = 2, + COLLATION_NTOFS_ULONG = 16, + COLLATION_NTOFS_SID = 17, + COLLATION_NTOFS_SECURITY_HASH = 18, + COLLATION_NTOFS_ULONGS = 19, }; -struct trace_event_data_offsets_rpc_stats_latency { - u32 progname; - u32 procname; -}; +typedef u8 INDEX_HEADER_FLAGS; -struct trace_event_data_offsets_rpc_xdr_overflow { - u32 progname; - u32 procedure; -}; +typedef struct { + le32 entries_offset; + le32 index_length; + le32 allocated_size; + INDEX_HEADER_FLAGS flags; + u8 reserved[3]; +} INDEX_HEADER; -struct trace_event_data_offsets_rpc_xdr_alignment { - u32 progname; - u32 procedure; -}; +typedef struct { + ATTR_TYPE type; + COLLATION_RULE collation_rule; + le32 index_block_size; + u8 clusters_per_index_block; + u8 reserved[3]; + INDEX_HEADER index; +} INDEX_ROOT; -struct trace_event_data_offsets_rpc_xprt_lifetime_class { - u32 addr; - u32 port; -}; +typedef le16 INDEX_ENTRY_FLAGS; -struct trace_event_data_offsets_rpc_xprt_event { - u32 addr; - u32 port; -}; +typedef struct { + le32 security_id; +} SII_INDEX_KEY; -struct trace_event_data_offsets_xprt_retransmit { - u32 progname; - u32 procname; -}; +typedef struct { + le32 hash; + le32 security_id; +} SDH_INDEX_KEY; -struct trace_event_data_offsets_xprt_ping { - u32 addr; - u32 port; +typedef struct { + le32 data1; + le16 data2; + le16 data3; + u8 data4[8]; +} GUID; + +typedef struct { + le32 reparse_tag; + leMFT_REF file_id; +} REPARSE_INDEX_KEY; + +typedef union { + struct { + u16 high_part; + u32 low_part; + } __attribute__((packed)) parts; + u8 value[6]; +} SID_IDENTIFIER_AUTHORITY; + +typedef struct { + u8 revision; + u8 sub_authority_count; + SID_IDENTIFIER_AUTHORITY identifier_authority; + le32 sub_authority[1]; +} SID; + +typedef struct { + union { + struct { + leMFT_REF indexed_file; + } dir; + struct { + le16 data_offset; + le16 data_length; + le32 reservedV; + } vi; + } data; + le16 length; + le16 key_length; + INDEX_ENTRY_FLAGS flags; + le16 reserved; + union { + FILE_NAME_ATTR file_name; + SII_INDEX_KEY sii; + SDH_INDEX_KEY sdh; + GUID object_id; + REPARSE_INDEX_KEY reparse; + SID sid; + le32 owner_id; + } key; +} __attribute__((packed)) INDEX_ENTRY; + +typedef struct { + NTFS_RECORD_TYPE magic; + le16 usa_ofs; + le16 usa_count; + sle64 lsn; + leVCN index_block_vcn; + INDEX_HEADER index; +} INDEX_BLOCK; + +typedef INDEX_BLOCK INDEX_ALLOCATION; + +typedef struct { + ntfs_inode *idx_ni; + INDEX_ENTRY *entry; + void *data; + u16 data_len; + bool is_in_root; + INDEX_ROOT *ir; + ntfs_attr_search_ctx *actx; + ntfs_inode *base_ni; + INDEX_ALLOCATION *ia; + struct page *page; +} ntfs_index_context; + +struct check_orphan { + struct rb_node rb; + ino_t inum; }; -struct trace_event_data_offsets_xs_data_ready { - u32 addr; - u32 port; +struct ubifs_dent_node { + struct ubifs_ch ch; + __u8 key[16]; + __le64 inum; + __u8 padding1; + __u8 type; + __le16 nlen; + __le32 cookie; + __u8 name[0]; }; -struct trace_event_data_offsets_xs_stream_read_data { - u32 addr; - u32 port; +struct ubifs_orph_node { + struct ubifs_ch ch; + __le64 cmt_no; + __le64 inos[0]; }; -struct trace_event_data_offsets_xs_stream_read_request { - u32 addr; - u32 port; +struct check_info { + unsigned long last_ino; + unsigned long tot_inos; + unsigned long missing; + long: 32; + unsigned long long leaf_cnt; + struct ubifs_ino_node *node; + struct rb_root root; }; -struct trace_event_data_offsets_rpcb_getport { - u32 servername; +typedef int (*dbg_leaf_callback)(struct ubifs_info *, struct ubifs_zbranch *, void *); + +typedef int (*dbg_znode_callback)(struct ubifs_info *, struct ubifs_znode *, void *); + +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 trace_event_data_offsets_rpcb_register { - u32 addr; - u32 netid; +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 trace_event_data_offsets_rpcb_unregister { - u32 netid; +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 trace_event_data_offsets_rpc_tls_class { - u32 servername; - u32 progname; +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 trace_event_data_offsets_svc_authenticate { - u32 server; - u32 client; +struct keyring_read_iterator_context { + size_t buflen; + size_t count; + key_serial_t *buffer; }; -struct trace_event_data_offsets_svc_process { - u32 service; - u32 procedure; - u32 addr; +struct internal_state { + int dummy; }; -struct trace_event_data_offsets_svc_rqst_event { - u32 server; - u32 client; +struct deflate_ctx { + struct z_stream_s comp_stream; + struct z_stream_s decomp_stream; }; -struct trace_event_data_offsets_svc_rqst_status { - u32 server; - u32 client; +struct blk_mq_hw_ctx_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_mq_hw_ctx *, char *); }; -struct trace_event_data_offsets_svc_replace_page_err { - u32 server; - u32 client; +struct bfq_sched_data; + +struct bfq_queue; + +struct bfq_entity { + struct rb_node rb_node; + bool on_st_or_in_serv; + u64 start; + u64 finish; + struct rb_root *tree; + long: 32; + u64 min_start; + int service; + int budget; + int allocated; + int dev_weight; + int weight; + int new_weight; + int orig_weight; + struct bfq_entity *parent; + struct bfq_sched_data *my_sched_data; + struct bfq_sched_data *sched_data; + int prio_changed; + bool in_groups_with_pending_reqs; + struct bfq_queue *last_bfqq_created; + long: 32; }; -struct trace_event_data_offsets_svc_stats_latency { - u32 server; - u32 client; - u32 procedure; +struct bfq_ttime { + u64 last_end_request; + u64 ttime_total; + unsigned long ttime_samples; + long: 32; + u64 ttime_mean; }; -struct trace_event_data_offsets_svc_xprt_create_err { - u32 program; - u32 protocol; - u32 addr; +struct bfq_data; + +struct bfq_weight_counter; + +struct bfq_io_cq; + +struct bfq_queue { + int ref; + int stable_ref; + struct bfq_data *bfqd; + unsigned short ioprio; + unsigned short ioprio_class; + unsigned short new_ioprio; + unsigned short new_ioprio_class; + long: 32; + u64 last_serv_time_ns; + unsigned int inject_limit; + unsigned long decrease_time_jif; + struct bfq_queue *new_bfqq; + struct rb_node pos_node; + struct rb_root *pos_root; + struct rb_root sort_list; + struct request *next_rq; + int queued[2]; + int meta_pending; + struct list_head fifo; + struct bfq_entity entity; + struct bfq_weight_counter *weight_counter; + int max_budget; + unsigned long budget_timeout; + int dispatched; + unsigned long flags; + struct list_head bfqq_list; + long: 32; + struct bfq_ttime ttime; + u64 io_start_time; + u64 tot_idle_time; + u32 seek_history; + struct hlist_node burst_list_node; + long: 32; + sector_t last_request_pos; + unsigned int requests_within_timer; + pid_t pid; + struct bfq_io_cq *bic; + unsigned long wr_cur_max_time; + unsigned long soft_rt_next_start; + unsigned long last_wr_start_finish; + unsigned int wr_coeff; + unsigned long last_idle_bklogged; + unsigned long service_from_backlogged; + unsigned long service_from_wr; + unsigned long wr_start_at_switch_to_srt; + unsigned long split_time; + unsigned long first_IO_time; + unsigned long creation_time; + struct bfq_queue *waker_bfqq; + struct bfq_queue *tentative_waker_bfqq; + unsigned int num_waker_detections; + long: 32; + u64 waker_detection_started; + struct hlist_node woken_list_node; + struct hlist_head woken_list; + unsigned int actuator_idx; }; -struct trace_event_data_offsets_svc_xprt_enqueue { - u32 server; - u32 client; +struct bfq_group; + +struct bfq_data { + struct request_queue *queue; + struct list_head dispatch; + struct bfq_group *root_group; + struct rb_root_cached queue_weights_tree; + unsigned int num_groups_with_pending_reqs; + unsigned int busy_queues[3]; + int wr_busy_queues; + int queued; + int tot_rq_in_driver; + int rq_in_driver[8]; + bool nonrot_with_queueing; + int max_rq_in_driver; + int hw_tag_samples; + int hw_tag; + int budgets_assigned; + struct hrtimer idle_slice_timer; + struct bfq_queue *in_service_queue; + long: 32; + sector_t last_position; + sector_t in_serv_last_pos; + u64 last_completion; + struct bfq_queue *last_completed_rq_bfqq; + struct bfq_queue *last_bfqq_created; + u64 last_empty_occupied_ns; + bool wait_dispatch; + struct request *waited_rq; + bool rqs_injected; + long: 32; + u64 first_dispatch; + u64 last_dispatch; + ktime_t last_budget_start; + ktime_t last_idling_start; + unsigned long last_idling_start_jiffies; + int peak_rate_samples; + u32 sequential_samples; + long: 32; + u64 tot_sectors_dispatched; + u32 last_rq_max_size; + long: 32; + u64 delta_from_first; + u32 peak_rate; + int bfq_max_budget; + struct list_head active_list[8]; + struct list_head idle_list; + u64 bfq_fifo_expire[2]; + unsigned int bfq_back_penalty; + unsigned int bfq_back_max; + u32 bfq_slice_idle; + int bfq_user_max_budget; + unsigned int bfq_timeout; + bool strict_guarantees; + unsigned long last_ins_in_burst; + unsigned long bfq_burst_interval; + int burst_size; + struct bfq_entity *burst_parent_entity; + unsigned long bfq_large_burst_thresh; + bool large_burst; + struct hlist_head burst_list; + bool low_latency; + unsigned int bfq_wr_coeff; + unsigned int bfq_wr_rt_max_time; + unsigned int bfq_wr_min_idle_time; + unsigned long bfq_wr_min_inter_arr_async; + unsigned int bfq_wr_max_softrt_rate; + long: 32; + u64 rate_dur_prod; + struct bfq_queue oom_bfqq; + spinlock_t lock; + struct bfq_io_cq *bio_bic; + struct bfq_queue *bio_bfqq; + unsigned int word_depths[4]; + unsigned int full_depth_shift; + unsigned int num_actuators; + long: 32; + sector_t sector[8]; + sector_t nr_sectors[8]; + struct blk_independent_access_range ia_ranges[8]; + unsigned int actuator_load_threshold; + long: 32; }; -struct trace_event_data_offsets_svc_xprt_dequeue { - u32 server; - u32 client; +struct bfq_service_tree { + struct rb_root active; + struct rb_root idle; + struct bfq_entity *first_idle; + struct bfq_entity *last_idle; + u64 vtime; + unsigned long wsum; + long: 32; }; -struct trace_event_data_offsets_svc_xprt_event { - u32 server; - u32 client; +struct bfq_sched_data { + struct bfq_entity *in_service_entity; + struct bfq_entity *next_in_service; + struct bfq_service_tree service_tree[3]; + unsigned long bfq_class_idle_last_service; + long: 32; }; -struct trace_event_data_offsets_svc_xprt_accept { - u32 server; - u32 client; - u32 protocol; - u32 service; +struct blkg_rwstat { + struct percpu_counter cpu_cnt[5]; + atomic64_t aux_cnt[5]; }; -struct trace_event_data_offsets_svc_deferred_event { - u32 addr; +struct bfqg_stats { + struct blkg_rwstat bytes; + struct blkg_rwstat ios; }; -struct trace_event_data_offsets_svcsock_marker { - u32 addr; +struct bfq_group { + struct blkg_policy_data pd; + char blkg_path[128]; + refcount_t ref; + struct bfq_entity entity; + struct bfq_sched_data sched_data; + struct bfq_data *bfqd; + struct bfq_queue *async_bfqq[128]; + struct bfq_queue *async_idle_bfqq[8]; + struct bfq_entity *my_entity; + int active_entities; + int num_queues_with_pending_reqs; + struct rb_root rq_pos_tree; + long: 32; + struct bfqg_stats stats; }; -struct trace_event_data_offsets_svcsock_class { - u32 addr; +struct bfq_iocq_bfqq_data { + bool saved_has_short_ttime; + bool saved_IO_bound; + long: 32; + u64 saved_io_start_time; + u64 saved_tot_idle_time; + bool saved_in_large_burst; + bool was_in_burst_list; + unsigned int saved_weight; + unsigned long saved_wr_coeff; + unsigned long saved_last_wr_start_finish; + unsigned long saved_service_from_wr; + unsigned long saved_wr_start_at_switch_to_srt; + unsigned int saved_wr_cur_max_time; + long: 32; + struct bfq_ttime saved_ttime; + u64 saved_last_serv_time_ns; + unsigned int saved_inject_limit; + unsigned long saved_decrease_time_jif; + struct bfq_queue *stable_merge_bfqq; + bool stably_merged; }; -struct trace_event_data_offsets_svcsock_tcp_recv_short { - u32 addr; +struct bfq_io_cq { + struct io_cq icq; + struct bfq_queue *bfqq[16]; + int ioprio; + uint64_t blkcg_serial_nr; + struct bfq_iocq_bfqq_data bfqq_data[8]; + unsigned int requests; + long: 32; }; -struct trace_event_data_offsets_svcsock_tcp_state { - u32 addr; +struct bfq_weight_counter { + unsigned int weight; + unsigned int num_active; + struct rb_node weights_node; }; -struct trace_event_data_offsets_svcsock_accept_class { - u32 service; +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 trace_event_data_offsets_cache_event { - u32 name; +struct io_overflow_cqe { + struct list_head list; + struct io_uring_cqe cqe; }; -struct trace_event_data_offsets_register_class { - u32 program; -}; +struct mpi_ec_ctx; -struct trace_event_data_offsets_svc_unregister { - u32 program; +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 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 barrett_ctx_s; -struct trace_event_data_offsets_rpc_buf_alloc {}; +typedef struct barrett_ctx_s *mpi_barrett_t; -struct trace_event_data_offsets_rpc_call_rpcerror {}; +enum gcry_mpi_ec_models { + MPI_EC_WEIERSTRASS = 0, + MPI_EC_MONTGOMERY = 1, + MPI_EC_EDWARDS = 2, +}; -struct trace_event_data_offsets_xs_socket_event {}; +enum ecc_dialects { + ECC_DIALECT_STANDARD = 0, + ECC_DIALECT_ED25519 = 1, + ECC_DIALECT_SAFECURVE = 2, +}; -struct trace_event_data_offsets_xs_socket_event_done {}; +struct gcry_mpi_point; -struct trace_event_data_offsets_rpc_socket_nospace {}; +typedef struct gcry_mpi_point *MPI_POINT; -struct trace_event_data_offsets_xprt_transmit {}; +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 trace_event_data_offsets_xprt_writelock_event {}; +struct gcry_mpi_point { + MPI x; + MPI y; + MPI z; +}; -struct trace_event_data_offsets_xprt_cong_event {}; +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, +}; -struct trace_event_data_offsets_xprt_reserve {}; +enum devm_ioremap_type { + DEVM_IOREMAP = 0, + DEVM_IOREMAP_UC = 1, + DEVM_IOREMAP_WC = 2, + DEVM_IOREMAP_NP = 3, +}; -struct trace_event_data_offsets_rpcb_setport {}; +struct pcim_iomap_devres { + void *table[6]; +}; -struct trace_event_data_offsets_pmap_register {}; +struct arch_io_reserve_memtype_wc_devres { + resource_size_t start; + resource_size_t size; +}; -struct trace_event_data_offsets_svc_xdr_msg_class {}; +struct bcm2836_arm_irqchip_intc { + struct irq_domain *domain; + void *base; +}; -struct trace_event_data_offsets_svc_xdr_buf_class {}; +struct l3_flagmux_data; -struct trace_event_data_offsets_svc_wake_up {}; +struct l3_masters_data; -struct trace_event_data_offsets_svc_alloc_arg_err {}; +struct omap_l3 { + struct device *dev; + void *l3_base[3]; + struct l3_flagmux_data **l3_flagmux; + int num_modules; + struct l3_masters_data *l3_masters; + int num_masters; + u32 mst_addr_mask; + int debug_irq; + int app_irq; +}; -struct trace_event_data_offsets_svcsock_lifetime_class {}; +struct l3_target_data; -enum probes_insn { - INSN_REJECTED = 0, - INSN_GOOD = 1, - INSN_GOOD_NO_SLOT = 2, +struct l3_flagmux_data { + u32 offset; + struct l3_target_data *l3_targ; + u8 num_targ_data; + u32 mask_app_bits; + u32 mask_dbg_bits; }; -enum decode_type { - DECODE_TYPE_END = 0, - DECODE_TYPE_TABLE = 1, - DECODE_TYPE_CUSTOM = 2, - DECODE_TYPE_SIMULATE = 3, - DECODE_TYPE_EMULATE = 4, - DECODE_TYPE_OR = 5, - DECODE_TYPE_REJECT = 6, - NUM_DECODE_TYPES = 7, +struct l3_target_data { + u32 offset; + char *name; }; -enum decode_reg_type { - REG_TYPE_NONE = 0, - REG_TYPE_ANY = 1, - REG_TYPE_SAMEAS16 = 2, - REG_TYPE_SP = 3, - REG_TYPE_PC = 4, - REG_TYPE_NOSP = 5, - REG_TYPE_NOSPPC = 6, - REG_TYPE_NOPC = 7, - REG_TYPE_NOPCWB = 8, - REG_TYPE_NOPCX = 9, - REG_TYPE_NOSPPCX = 10, - REG_TYPE_0 = 0, +struct l3_masters_data { + u32 id; + char *name; }; -union decode_item { - u32 bits; - const union decode_item *table; - int action; +enum cygnus_pcie_phy_id { + CYGNUS_PHY_PCIE0 = 0, + CYGNUS_PHY_PCIE1 = 1, + MAX_NUM_PHYS = 2, }; -struct decode_header { - union decode_item type_regs; - union decode_item mask; - union decode_item value; -}; +struct cygnus_pcie_phy_core; -struct decode_table { - struct decode_header header; - union decode_item table; +struct cygnus_pcie_phy { + struct cygnus_pcie_phy_core *core; + enum cygnus_pcie_phy_id id; + struct phy *phy; }; -struct decode_custom { - struct decode_header header; - union decode_item decoder; +struct cygnus_pcie_phy_core { + struct device *dev; + void *base; + struct mutex lock; + struct cygnus_pcie_phy phys[2]; }; -struct decode_simulate { - struct decode_header header; - union decode_item handler; +struct pll_ratio { + int clk_ref; + int calset_1; + int calset_2; + int calset_3; + int calset_4; + int cal_ctrl; }; -struct decode_emulate { - struct decode_header header; - union decode_item handler; +struct miphy28lp_pll_gen { + int bank; + int speed; + int bias_boost_1; + int bias_boost_2; + int tx_ctrl_1; + int tx_ctrl_2; + int tx_ctrl_3; + int rx_k_gain; + int rx_vga_gain; + int rx_equ_gain_1; + int rx_equ_gain_2; + int rx_equ_gain_3; + int rx_buff_ctrl; }; -typedef enum probes_insn probes_check_t(probes_opcode_t, struct arch_probes_insn *, const struct decode_header *); - -struct decode_checker { - probes_check_t *checker; +enum { + SYSCFG_CTRL = 0, + SYSCFG_STATUS = 1, + SYSCFG_PCI = 2, + SYSCFG_SATA = 3, + SYSCFG_REG_MAX = 4, }; -typedef enum probes_insn probes_custom_decode_t(probes_opcode_t, struct arch_probes_insn *, const struct decode_header *); - -union decode_action { - probes_insn_handler_t *handler; - probes_custom_decode_t *decoder; +enum miphy_sata_gen { + SATA_GEN1 = 0, + SATA_GEN2 = 1, + SATA_GEN3 = 2, }; -struct imx6_pm_socdata { - u32 ddr_type; - const char *mmdc_compat; - const char *src_compat; - const char *iomuxc_compat; - const char *gpc_compat; - const char *pl310_compat; - const u32 mmdc_io_num; - const u32 *mmdc_io_offset; +struct miphy28lp_dev; + +struct miphy28lp_phy { + struct phy *phy; + struct miphy28lp_dev *phydev; + void *base; + void *pipebase; + bool osc_force_ext; + bool osc_rdy; + bool px_rx_pol_inv; + bool ssc; + bool tx_impedance; + struct reset_control *miphy_rst; + u32 sata_gen; + u32 syscfg_reg[4]; + u8 type; }; -struct imx6_pm_base { - phys_addr_t pbase; - void *vbase; +struct miphy28lp_dev { + struct device *dev; + struct regmap *regmap; + struct mutex miphy_mutex; + struct miphy28lp_phy **phys; + int nphys; }; -struct imx6_cpu_pm_info { - phys_addr_t pbase; - phys_addr_t resume_addr; - u32 ddr_type; - u32 pm_info_size; - struct imx6_pm_base mmdc_base; - struct imx6_pm_base src_base; - struct imx6_pm_base iomuxc_base; - struct imx6_pm_base ccm_base; - struct imx6_pm_base gpc_base; - struct imx6_pm_base l2_base; - u32 mmdc_io_num; - u32 mmdc_io_val[66]; - long: 32; +enum owl_pinconf_drv { + OWL_PINCONF_DRV_2MA = 0, + OWL_PINCONF_DRV_4MA = 1, + OWL_PINCONF_DRV_8MA = 2, + OWL_PINCONF_DRV_12MA = 3, }; -struct ve_spc_opp; +struct owl_pinctrl_soc_data; -struct ve_spc_drvdata { - void *baseaddr; - u32 a15_clusid; - uint32_t cur_rsp_mask; - uint32_t cur_rsp_stat; - struct semaphore sem; - struct completion done; - struct ve_spc_opp *opps[2]; - int num_opps[2]; +struct owl_pinctrl { + struct device *dev; + struct pinctrl_dev *pctrldev; + struct gpio_chip chip; + raw_spinlock_t lock; + struct clk *clk; + const struct owl_pinctrl_soc_data *soc; + void *base; + unsigned int num_irq; + unsigned int *irq; }; -struct ve_spc_opp { - unsigned long freq; - unsigned long u_volt; -}; +struct owl_pinmux_func; -struct clk_spc { - struct clk_hw hw; - int cluster; -}; +struct owl_pingroup; -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; - u64 min_vruntime_copy; - struct rb_root_cached tasks_timeline; - struct sched_entity *curr; - struct sched_entity *next; - struct sched_entity *last; - struct sched_entity *skip; - unsigned int nr_spread_over; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct sched_avg avg; - u64 last_update_time_copy; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct { - raw_spinlock_t lock; - int nr; - unsigned long load_avg; - unsigned long util_avg; - unsigned long runnable_avg; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - } removed; -}; +struct owl_padinfo; -struct rt_prio_array { - unsigned long bitmap[4]; - struct list_head queue[100]; -}; +struct owl_gpio_port; -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; - long: 32; - u64 rt_time; - u64 rt_runtime; - raw_spinlock_t rt_runtime_lock; - long: 32; +struct owl_pinctrl_soc_data { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct owl_pinmux_func *functions; + unsigned int nfunctions; + const struct owl_pingroup *groups; + unsigned int ngroups; + const struct owl_padinfo *padinfo; + unsigned int ngpios; + const struct owl_gpio_port *ports; + unsigned int nports; + int (*padctl_val2arg)(const struct owl_padinfo *, unsigned int, u32 *); + int (*padctl_arg2val)(const struct owl_padinfo *, unsigned int, u32 *); }; -struct dl_rq { - struct rb_root_cached root; - unsigned int dl_nr_running; - long: 32; - 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 max_bw; - u64 bw_ratio; +struct owl_pinmux_func { + const char *name; + const char * const *groups; + unsigned int ngroups; }; -struct root_domain; +struct owl_pingroup { + const char *name; + unsigned int *pads; + unsigned int npads; + unsigned int *funcs; + unsigned int nfuncs; + int mfpctl_reg; + unsigned int mfpctl_shift; + unsigned int mfpctl_width; + int drv_reg; + unsigned int drv_shift; + unsigned int drv_width; + int sr_reg; + unsigned int sr_shift; + unsigned int sr_width; +}; -struct sched_domain; +struct owl_pullctl; -struct balance_callback; +struct owl_st; -struct rq { - raw_spinlock_t __lock; - unsigned int nr_running; - unsigned long last_blocked_load_update_tick; - unsigned int has_blocked_load; - call_single_data_t nohz_csd; - unsigned int nohz_tick_stopped; - atomic_t nohz_flags; - unsigned int ttwu_pending; - long: 32; - u64 nr_switches; - long: 32; - long: 32; - struct cfs_rq cfs; - struct rt_rq rt; - struct dl_rq dl; - 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; - long: 32; - u64 clock; - long: 32; - long: 32; - u64 clock_task; - u64 clock_pelt; - unsigned long lost_idle_time; - long: 32; - u64 clock_pelt_idle; - u64 clock_idle; - u64 clock_pelt_idle_copy; - u64 clock_idle_copy; - atomic_t nr_iowait; - long: 32; - u64 last_seen_need_resched_ns; - int ticks_without_resched; - int membarrier_state; - struct root_domain *rd; - struct sched_domain __attribute__((btf_type_tag("rcu"))) *sd; - unsigned long cpu_capacity; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct sched_avg avg_rt; - struct sched_avg avg_dl; - struct sched_avg avg_thermal; - u64 idle_stamp; - u64 avg_idle; - unsigned long wake_stamp; - long: 32; - u64 wake_avg_idle; - u64 max_idle_balance_cost; - struct rcuwait hotplug_wait; - unsigned long calc_load_update; - long calc_load_active; - long: 32; - long: 32; - long: 32; - call_single_data_t hrtick_csd; - struct hrtimer hrtick_timer; - ktime_t hrtick_time; - struct cpuidle_state *idle_state; - unsigned int nr_pinned; - unsigned int push_busy; - struct cpu_stop_work push_work; - cpumask_var_t scratch_mask; - long: 32; - long: 32; - long: 32; - long: 32; +struct owl_padinfo { + int pad; + struct owl_pullctl *pullctl; + struct owl_st *st; }; -struct dl_bw { - raw_spinlock_t lock; - long: 32; - u64 bw; - u64 total_bw; +struct owl_pullctl { + int reg; + unsigned int shift; + unsigned int width; }; -struct cpudl_item; +struct owl_st { + int reg; + unsigned int shift; + unsigned int width; +}; -struct cpudl { - raw_spinlock_t lock; - int size; - cpumask_var_t free_cpus; - struct cpudl_item *elements; +struct owl_gpio_port { + unsigned int offset; + unsigned int pins; + unsigned int outen; + unsigned int inen; + unsigned int dat; + unsigned int intc_ctl; + unsigned int intc_pd; + unsigned int intc_msk; + unsigned int intc_type; + u8 shared_ctl_offset; }; -struct cpupri_vec { - atomic_t count; - cpumask_var_t mask; +struct nmk_gpio_chip { + struct gpio_chip chip; + void *addr; + struct clk *clk; + unsigned int bank; + void (*set_ioforce)(bool); + spinlock_t lock; + bool sleepmode; + u32 edge_rising; + u32 edge_falling; + u32 real_wake; + u32 rwimsc; + u32 fwimsc; + u32 rimsc; + u32 fimsc; + u32 pull_up; + u32 lowemi; }; -struct cpupri { - struct cpupri_vec pri_to_cpu[101]; - int *cpu_to_pri; +struct nmk_cfg_param { + const char *property; + unsigned long config; + const unsigned long *choice; + int size; }; -struct perf_domain; +enum prcm_gpiocr_altcx_index { + PRCM_IDX_GPIOCR_ALTC1 = 0, + PRCM_IDX_GPIOCR_ALTC2 = 1, + PRCM_IDX_GPIOCR_ALTC3 = 2, + PRCM_IDX_GPIOCR_ALTC4 = 3, + PRCM_IDX_GPIOCR_ALTC_MAX = 4, +}; -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; - long: 32; +enum nmk_gpio_irq_type { + NORMAL = 0, + WAKE = 1, }; -struct cpudl_item { - u64 dl; - int cpu; - int idx; +enum nmk_gpio_slpm { + NMK_GPIO_SLPM_INPUT = 0, + NMK_GPIO_SLPM_WAKEUP_ENABLE = 0, + NMK_GPIO_SLPM_NOCHANGE = 1, + NMK_GPIO_SLPM_WAKEUP_DISABLE = 1, }; -struct perf_domain { - struct em_perf_domain *em_pd; - struct perf_domain *next; - struct callback_head rcu; +enum nmk_gpio_pull { + NMK_GPIO_PULL_NONE = 0, + NMK_GPIO_PULL_UP = 1, + NMK_GPIO_PULL_DOWN = 2, }; -struct sched_group; +typedef unsigned long pin_cfg_t; -struct sched_domain_shared; +struct nmk_pinctrl_soc_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; - long: 32; - u64 max_newidle_lb_cost; - unsigned long last_decay_max_lb_cost; - long: 32; - u64 avg_scan_cost; - char *name; - union { - void *private; - struct callback_head rcu; - }; - struct sched_domain_shared *shared; - unsigned int span_weight; - unsigned long span[0]; - long: 32; +struct nmk_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl; + const struct nmk_pinctrl_soc_data *soc; + void *prcm_base; }; -struct sched_group_capacity; +struct nmk_function; -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 nmk_pingroup; -struct sched_group_capacity { - atomic_t ref; - unsigned long capacity; - unsigned long min_capacity; - unsigned long max_capacity; - unsigned long next_update; - int imbalance; - int id; - unsigned long cpumask[0]; -}; +struct prcm_gpiocr_altcx_pin_desc; -struct sched_domain_shared { - atomic_t ref; - atomic_t nr_busy_cpus; - int has_idle_cores; - int nr_idle_scan; +struct nmk_pinctrl_soc_data { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct nmk_function *functions; + unsigned int nfunctions; + const struct nmk_pingroup *groups; + unsigned int ngroups; + const struct prcm_gpiocr_altcx_pin_desc *altcx_pins; + unsigned int npins_altcx; + const u16 *prcm_gpiocr_registers; }; -struct balance_callback { - struct balance_callback *next; - void (*func)(struct rq *); +struct nmk_function { + const char *name; + const char * const *groups; + unsigned int ngroups; }; -struct pin_cookie {}; +struct nmk_pingroup { + struct pingroup grp; + int altsetting; +}; -struct rq_flags { - unsigned long flags; - struct pin_cookie cookie; - unsigned int clock_update_flags; +struct prcm_gpiocr_altcx { + bool used: 1; + u8 reg_index: 2; + u8 control_bit: 5; }; -struct affinity_context { - const struct cpumask *new_mask; - struct cpumask *user_mask; - unsigned int flags; +struct prcm_gpiocr_altcx_pin_desc { + unsigned short pin; + struct prcm_gpiocr_altcx altcx[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, +struct sunxi_pinctrl_regulator { + struct regulator *regulator; + refcount_t refcount; }; -enum sched_tunable_scaling { - SCHED_TUNABLESCALING_NONE = 0, - SCHED_TUNABLESCALING_LOG = 1, - SCHED_TUNABLESCALING_LINEAR = 2, - SCHED_TUNABLESCALING_END = 3, +struct sunxi_pinctrl_function; + +struct sunxi_pinctrl_group; + +struct sunxi_pinctrl { + void *membase; + struct gpio_chip *chip; + const struct sunxi_pinctrl_desc *desc; + struct device *dev; + struct sunxi_pinctrl_regulator regulators[9]; + struct irq_domain *domain; + struct sunxi_pinctrl_function *functions; + unsigned int nfunctions; + struct sunxi_pinctrl_group *groups; + unsigned int ngroups; + int *irq; + unsigned int *irq_array; + raw_spinlock_t lock; + struct pinctrl_dev *pctl_dev; + unsigned long variant; + u32 bank_mem_size; + u32 pull_regs_offset; + u32 dlevel_field_width; }; -enum { - __SCHED_FEAT_GENTLE_FAIR_SLEEPERS = 0, - __SCHED_FEAT_START_DEBIT = 1, - __SCHED_FEAT_NEXT_BUDDY = 2, - __SCHED_FEAT_LAST_BUDDY = 3, - __SCHED_FEAT_CACHE_HOT_BUDDY = 4, - __SCHED_FEAT_WAKEUP_PREEMPTION = 5, - __SCHED_FEAT_HRTICK = 6, - __SCHED_FEAT_HRTICK_DL = 7, - __SCHED_FEAT_DOUBLE_TICK = 8, - __SCHED_FEAT_NONTASK_CAPACITY = 9, - __SCHED_FEAT_TTWU_QUEUE = 10, - __SCHED_FEAT_SIS_PROP = 11, - __SCHED_FEAT_SIS_UTIL = 12, - __SCHED_FEAT_WARN_DOUBLE_CLOCK = 13, - __SCHED_FEAT_RT_PUSH_IPI = 14, - __SCHED_FEAT_RT_RUNTIME_SHARE = 15, - __SCHED_FEAT_LB_MIN = 16, - __SCHED_FEAT_ATTACH_AGE_LOAD = 17, - __SCHED_FEAT_WA_IDLE = 18, - __SCHED_FEAT_WA_WEIGHT = 19, - __SCHED_FEAT_WA_BIAS = 20, - __SCHED_FEAT_UTIL_EST = 21, - __SCHED_FEAT_UTIL_EST_FASTUP = 22, - __SCHED_FEAT_LATENCY_WARN = 23, - __SCHED_FEAT_ALT_PERIOD = 24, - __SCHED_FEAT_BASE_SLICE = 25, - __SCHED_FEAT_NR = 26, +struct sunxi_pinctrl_function { + const char *name; + const char **groups; + unsigned int ngroups; }; -enum uclamp_id { - UCLAMP_MIN = 0, - UCLAMP_MAX = 1, - UCLAMP_CNT = 2, +struct sunxi_pinctrl_group { + const char *name; + unsigned int pin; }; -enum cpu_idle_type { - CPU_IDLE = 0, - CPU_NOT_IDLE = 1, - CPU_NEWLY_IDLE = 2, - CPU_MAX_IDLE_TYPES = 3, +struct omap_gpio_reg_offs; + +struct omap_gpio_platform_data { + int bank_type; + int bank_width; + int bank_stride; + bool dbck_flag; + bool loses_context; + bool is_mpuio; + u32 non_wakeup_gpios; + const struct omap_gpio_reg_offs *regs; + int (*get_context_loss_count)(struct device *); }; -enum fbq_type { - regular = 0, - remote = 1, - all = 2, +struct omap_gpio_reg_offs { + u16 revision; + u16 sysconfig; + u16 direction; + u16 datain; + u16 dataout; + u16 set_dataout; + u16 clr_dataout; + u16 irqstatus; + u16 irqstatus2; + u16 irqstatus_raw0; + u16 irqstatus_raw1; + u16 irqenable; + u16 irqenable2; + u16 set_irqenable; + u16 clr_irqenable; + u16 debounce; + u16 debounce_en; + u16 ctrl; + u16 wkup_en; + u16 leveldetect0; + u16 leveldetect1; + u16 risingdetect; + u16 fallingdetect; + u16 irqctrl; + u16 edgectrl1; + u16 edgectrl2; + u16 pinctrl; + bool irqenable_inv; }; -enum migration_type { - migrate_load = 0, - migrate_util = 1, - migrate_task = 2, - migrate_misfit = 3, +struct gpio_regs { + u32 sysconfig; + u32 irqenable1; + u32 irqenable2; + u32 wake_en; + u32 ctrl; + u32 oe; + u32 leveldetect0; + u32 leveldetect1; + u32 risingdetect; + u32 fallingdetect; + u32 dataout; + u32 debounce; + u32 debounce_en; }; -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, +struct gpio_bank { + void *base; + const struct omap_gpio_reg_offs *regs; + struct device *dev; + int irq; + u32 non_wakeup_gpios; + u32 enabled_non_wakeup_gpios; + struct gpio_regs context; + u32 saved_datain; + u32 level_mask; + u32 toggle_mask; + raw_spinlock_t lock; + raw_spinlock_t wa_lock; + struct gpio_chip chip; + struct clk *dbck; + struct notifier_block nb; + unsigned int is_suspended: 1; + unsigned int needs_resume: 1; + u32 mod_usage; + u32 irq_usage; + u32 dbck_enable_mask; + bool dbck_enabled; + bool is_mpuio; + bool dbck_flag; + bool loses_context; + bool context_valid; + int stride; + u32 width; + int context_loss_count; + void (*set_dataout)(struct gpio_bank *, unsigned int, int); + int (*get_context_loss_count)(struct device *); }; -enum cpu_util_type { - FREQUENCY_UTIL = 0, - ENERGY_UTIL = 1, +struct kona_pwmc { + struct pwm_chip chip; + void *base; + struct clk *clk; }; -struct update_util_data { - void (*func)(struct update_util_data *, u64, unsigned int); +struct pci_cap_saved_data { + u16 cap_nr; + bool cap_extended; + unsigned int size; + u32 data[0]; }; -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 pci_cap_saved_state { + struct hlist_node next; + struct pci_cap_saved_data cap; }; -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; +enum smbios_attr_enum { + SMBIOS_ATTR_NONE = 0, + SMBIOS_ATTR_LABEL_SHOW = 1, + SMBIOS_ATTR_INSTANCE_SHOW = 2, }; -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; +enum pcie_type { + GENERIC = 0, + BCM7425 = 1, + BCM7435 = 2, + BCM4908 = 3, + BCM7278 = 4, + BCM2711 = 5, }; -struct cfs_bandwidth {}; - -struct task_group; +struct brcm_pcie; -typedef void (*btf_trace_csd_queue_cpu)(void *, const unsigned int, unsigned long, smp_call_func_t, struct __call_single_data *); +struct pcie_cfg_data { + const int *offsets; + const enum pcie_type type; + void (*perst_set)(struct brcm_pcie *, u32); + void (*bridge_sw_init_set)(struct brcm_pcie *, u32); +}; -typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, struct __call_single_data *); +struct brcm_msi; -typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, struct __call_single_data *); +struct subdev_regulators; -struct call_function_data { - call_single_data_t __attribute__((btf_type_tag("percpu"))) *csd; - cpumask_var_t cpumask; - cpumask_var_t cpumask_ipi; +struct brcm_pcie { + struct device *dev; + void *base; + struct clk *clk; + struct device_node *np; + bool ssc; + int gen; + u64 msi_target_addr; + struct brcm_msi *msi; + const int *reg_offsets; + enum pcie_type type; + struct reset_control *rescal; + struct reset_control *perst_reset; + int num_memc; + u64 memc_size[3]; + u32 hw_rev; + void (*perst_set)(struct brcm_pcie *, u32); + void (*bridge_sw_init_set)(struct brcm_pcie *, u32); + struct subdev_regulators *sr; + bool ep_wakeup_capable; + long: 32; }; -struct trace_event_raw_csd_queue_cpu { - struct trace_entry ent; - unsigned int cpu; - void *callsite; - void *func; - void *csd; - char __data[0]; +struct brcm_msi { + struct device *dev; + void *base; + struct device_node *np; + struct irq_domain *msi_domain; + struct irq_domain *inner_domain; + struct mutex lock; + u64 target_addr; + int irq; + unsigned long used[1]; + bool legacy; + int legacy_shift; + int nr; + void *intr_base; }; -struct trace_event_raw_csd_function { - struct trace_entry ent; - void *func; - void *csd; - char __data[0]; +struct subdev_regulators { + unsigned int num_supplies; + struct regulator_bulk_data supplies[0]; }; -struct smp_call_on_cpu_struct { - struct work_struct work; - struct completion done; - int (*func)(void *); - void *data; - int ret; - int cpu; +enum { + RGR1_SW_INIT_1 = 0, + EXT_CFG_INDEX = 1, + EXT_CFG_DATA = 2, }; -struct trace_event_data_offsets_csd_queue_cpu {}; - -struct trace_event_data_offsets_csd_function {}; - -enum event_trigger_type { - ETT_NONE = 0, - ETT_TRACE_ONOFF = 1, - ETT_SNAPSHOT = 2, - ETT_STACKTRACE = 4, - ETT_EVENT_ENABLE = 8, - ETT_EVENT_HIST = 16, - ETT_HIST_ENABLE = 32, - ETT_EVENT_EPROBE = 64, +struct clk_sama5d4_h32mx { + struct clk_hw hw; + struct regmap *regmap; }; -struct event_trigger_data; - -struct event_trigger_ops; - -struct event_command { - struct list_head list; +struct mmp_param_fixed_rate_clk { + unsigned int id; 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 *); + const char *parent_name; + unsigned long flags; + unsigned long fixed_rate; }; -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; +struct mmp_param_fixed_factor_clk { + unsigned int id; char *name; - struct list_head named_list; - struct event_trigger_data *named_data; + const char *parent_name; + unsigned long mult; + unsigned long div; + unsigned long flags; }; -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 *); +struct mmp_param_general_gate_clk { + unsigned int id; + const char *name; + const char *parent_name; + unsigned long flags; + unsigned long offset; + u8 bit_idx; + u8 gate_flags; + spinlock_t *lock; }; -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, +struct mmp_param_gate_clk { + unsigned int id; + char *name; + const char *parent_name; + unsigned long flags; + unsigned long offset; + u32 mask; + u32 val_enable; + u32 val_disable; + unsigned int gate_flags; + spinlock_t *lock; }; -enum event_command_flags { - EVENT_CMD_FL_POST_TRIGGER = 1, - EVENT_CMD_FL_NEEDS_REC = 2, +struct mmp_param_mux_clk { + unsigned int id; + char *name; + const char * const *parent_name; + u8 num_parents; + unsigned long flags; + unsigned long offset; + u8 shift; + u8 width; + u8 mux_flags; + spinlock_t *lock; }; -enum { - EVENT_TRIGGER_FL_PROBE = 1, +struct mmp_param_div_clk { + unsigned int id; + char *name; + const char *parent_name; + unsigned long flags; + unsigned long offset; + u8 shift; + u8 width; + u8 div_flags; + spinlock_t *lock; }; -enum { - TRACE_EVENT_FL_FILTERED = 1, - TRACE_EVENT_FL_CAP_ANY = 2, - TRACE_EVENT_FL_NO_SET_FILTER = 4, - TRACE_EVENT_FL_IGNORE_ENABLE = 8, - TRACE_EVENT_FL_TRACEPOINT = 16, - TRACE_EVENT_FL_DYNAMIC = 32, - TRACE_EVENT_FL_KPROBE = 64, - TRACE_EVENT_FL_UPROBE = 128, - TRACE_EVENT_FL_EPROBE = 256, - TRACE_EVENT_FL_FPROBE = 512, - TRACE_EVENT_FL_CUSTOM = 1024, +struct rockchip_mmc_clock { + struct clk_hw hw; + void *reg; + int id; + int shift; + int cached_phase; + struct notifier_block clk_rate_change_nb; }; -struct enable_trigger_data { - struct trace_event_file *file; - bool enable; - bool hist; +struct rockchip_ddrclk { + struct clk_hw hw; + void *reg_base; + int mux_offset; + int mux_shift; + int mux_width; + int div_shift; + int div_width; + int ddr_flag; + spinlock_t *lock; }; -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 socfpga_periph_clk { + struct clk_gate hw; + char *parent_name; + u32 fixed_div; + void *div_reg; + void *bypass_reg; + u32 width; + u32 shift; + u32 bypass_shift; }; -struct trace_event_raw_tlb_flush { - struct trace_entry ent; - int reason; - unsigned long pages; - char __data[0]; +struct _ccu_nk { + unsigned long n; + unsigned long min_n; + unsigned long max_n; + unsigned long k; + unsigned long min_k; + unsigned long max_k; }; -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 pl330_of_quirks { + char *quirk; + int id; }; -struct trace_event_raw_mm_migrate_pages_start { - struct trace_entry ent; - enum migrate_mode mode; - int reason; - char __data[0]; +enum pl330_cachectrl { + CCTRL0 = 0, + CCTRL1 = 1, + CCTRL2 = 2, + CCTRL3 = 3, + INVALID1 = 4, + INVALID2 = 5, + CCTRL6 = 6, + CCTRL7 = 7, }; -struct trace_event_raw_migration_pte { - struct trace_entry ent; - unsigned long addr; - unsigned long pte; - int order; - char __data[0]; +enum pl330_byteswap { + SWAP_NO = 0, + SWAP_2 = 1, + SWAP_4 = 2, + SWAP_8 = 3, + SWAP_16 = 4, }; -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; +enum desc_status { + FREE = 0, + PREP = 1, + BUSY = 2, + PAUSED = 3, + DONE___2 = 4, }; -struct simple_transaction_argresp { - ssize_t size; - char data[0]; +enum pl330_dmac_state { + UNINIT = 0, + INIT___2 = 1, + DYING = 2, }; -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 pl330_op_err { + PL330_ERR_NONE = 0, + PL330_ERR_ABORT = 1, + PL330_ERR_FAIL = 2, }; -typedef unsigned short __kernel_uid_t; - -typedef __kernel_uid_t __kernel_old_uid_t; +enum dmamov_dst { + SAR = 0, + CCR = 1, + DAR = 2, +}; -typedef __kernel_old_uid_t old_uid_t; +enum pl330_cond { + SINGLE = 0, + BURST = 1, + ALWAYS = 2, +}; -typedef unsigned short __kernel_gid_t; +struct pl330_dmac; -typedef __kernel_gid_t __kernel_old_gid_t; +struct pl330_thread; -typedef __kernel_old_gid_t old_gid_t; +struct dma_pl330_chan { + struct tasklet_struct task; + struct dma_chan chan; + struct list_head submitted_list; + struct list_head work_list; + struct list_head completed_list; + struct pl330_dmac *dmac; + spinlock_t lock; + struct pl330_thread *thread; + int burst_sz; + int burst_len; + phys_addr_t fifo_addr; + dma_addr_t fifo_dma; + enum dma_data_direction dir; + struct dma_slave_config slave_config; + bool cyclic; + bool active; +}; -struct memelfnote { - const char *name; - int type; - unsigned int datasz; - void *data; +struct pl330_config { + u32 periph_id; + unsigned int mode; + unsigned int data_bus_width: 10; + unsigned int data_buf_dep: 11; + unsigned int num_chan: 4; + unsigned int num_peri: 6; + u32 peri_ns; + unsigned int num_events: 6; + u32 irq_ns; }; -struct siginfo { - union { - struct { - int si_signo; - int si_errno; - int si_code; - union __sifields _sifields; - }; - int _si_pad[32]; - }; +struct _pl330_tbd { + bool reset_dmac; + bool reset_mngr; + u8 reset_chan; }; -typedef struct siginfo siginfo_t; +struct pl330_dmac { + struct dma_device ddma; + struct list_head desc_pool; + spinlock_t pool_lock; + unsigned int mcbufsz; + void *base; + struct pl330_config pcfg; + spinlock_t lock; + int events[32]; + dma_addr_t mcode_bus; + void *mcode_cpu; + struct pl330_thread *channels; + struct pl330_thread *manager; + struct tasklet_struct tasks; + struct _pl330_tbd dmac_tbd; + enum pl330_dmac_state state; + struct list_head req_done; + unsigned int num_peripherals; + struct dma_pl330_chan *peripherals; + int quirks; + struct reset_control *rstc; + struct reset_control *rstc_ocp; +}; -struct elf_thread_core_info; +struct dma_pl330_desc; -struct elf_note_info { - struct elf_thread_core_info *thread; - struct memelfnote psinfo; - struct memelfnote signote; - struct memelfnote auxv; - struct memelfnote files; - siginfo_t csigdata; - size_t size; - int thread_notes; +struct _pl330_req { + u32 mc_bus; + void *mc_cpu; + struct dma_pl330_desc *desc; }; -struct elf_siginfo { - int si_signo; - int si_code; - int si_errno; +struct pl330_thread { + u8 id; + int ev; + bool free; + struct pl330_dmac *dmac; + struct _pl330_req req[2]; + unsigned int lstenq; + int req_running; }; -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; +struct pl330_xfer { + u32 src_addr; + u32 dst_addr; + u32 bytes; }; -typedef unsigned long elf_greg_t; - -typedef elf_greg_t elf_gregset_t[18]; - -struct elf_prstatus { - struct elf_prstatus_common common; - elf_gregset_t pr_reg; - int pr_fpvalid; +struct pl330_reqcfg { + unsigned int dst_inc: 1; + unsigned int src_inc: 1; + bool nonsecure; + bool privileged; + bool insnaccess; + unsigned int brst_len: 5; + unsigned int brst_size: 3; + enum pl330_cachectrl dcctl; + enum pl330_cachectrl scctl; + enum pl330_byteswap swap; + struct pl330_config *pcfg; }; -struct elf_thread_core_info { - struct elf_thread_core_info *next; - struct task_struct *task; - struct elf_prstatus prstatus; - struct memelfnote notes[0]; +struct dma_pl330_desc { + struct list_head node; + struct dma_async_tx_descriptor txd; + struct pl330_xfer px; + struct pl330_reqcfg rqcfg; + enum desc_status status; + int bytes_requested; + bool last; + struct dma_pl330_chan *pchan; + enum dma_transfer_direction rqtype; + unsigned int peri: 5; + struct list_head rqd; }; -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 _arg_GO { + u8 chan; + u32 addr; + unsigned int ns; }; -struct user_regset; - -struct user_regset_view { - const char *name; - const struct user_regset *regsets; - unsigned int n; - u32 e_flags; - u16 e_machine; - u8 ei_osabi; +struct _xfer_spec { + u32 ccr; + struct dma_pl330_desc *desc; }; -struct membuf; +struct _arg_LPEND { + enum pl330_cond cond; + bool forever; + unsigned int loop; + u8 bjump; +}; -typedef int user_regset_get2_fn(struct task_struct *, const struct user_regset *, struct membuf); +enum spm_reg { + SPM_REG_CFG = 0, + SPM_REG_SPM_CTL = 1, + SPM_REG_DLY = 2, + SPM_REG_PMIC_DLY = 3, + SPM_REG_PMIC_DATA_0 = 4, + SPM_REG_PMIC_DATA_1 = 5, + SPM_REG_VCTL = 6, + SPM_REG_SEQ_ENTRY = 7, + SPM_REG_SPM_STS = 8, + SPM_REG_PMIC_STS = 9, + SPM_REG_AVS_CTL = 10, + SPM_REG_AVS_LIMIT = 11, + SPM_REG_NR = 12, +}; -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"))) *); +struct sunxi_sram_func; -typedef int user_regset_active_fn(struct task_struct *, const struct user_regset *); +struct sunxi_sram_data { + char *name; + u8 reg; + u8 offset; + u8 width; + struct sunxi_sram_func *func; + struct list_head list; +}; -typedef int user_regset_writeback_fn(struct task_struct *, const struct user_regset *, int); +struct sunxi_sram_desc { + struct sunxi_sram_data data; + bool claimed; +}; -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 sunxi_sram_func { + char *func; + u8 val; + u32 reg_val; }; -struct membuf { - void *p; - size_t left; +struct sunxi_sramc_variant { + int num_emac_clocks; + bool has_ldo_ctrl; }; -struct arch_elf_state {}; +struct cpr_desc; -struct sysctl_alias { - const char *kernel_param; - const char *sysctl_param; -}; +struct acc_desc; -struct fat_fid { - u32 i_gen; - u32 i_pos_low; - u16 i_pos_hi; - u16 parent_i_pos_hi; - u32 parent_i_pos_low; - u32 parent_i_gen; +struct cpr_acc_desc { + const struct cpr_desc *cpr_desc; + const struct acc_desc *acc_desc; }; -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; - long: 32; - struct nfs_fattr fattr; - struct nfs_fattr dir_attr; -}; +struct fuse_corner_data; -struct nlmsvc_binding { - __be32 (*fopen)(struct svc_rqst *, struct nfs_fh *, struct file **, int); - void (*fclose)(struct file *); +struct cpr_fuses { + int init_voltage_step; + int init_voltage_width; + struct fuse_corner_data *fuse_corner_data; }; -struct lock_manager { - struct list_head list; - bool block_opens; +struct cpr_desc { + unsigned int num_fuse_corners; + int min_diff_quot; + int *step_quot; + unsigned int timer_delay_us; + unsigned int timer_cons_up; + unsigned int timer_cons_down; + unsigned int up_threshold; + unsigned int down_threshold; + unsigned int idle_clocks; + unsigned int gcnt_us; + unsigned int vdd_apc_step_up_limit; + unsigned int vdd_apc_step_down_limit; + unsigned int clamp_timer_interval; + struct cpr_fuses cpr_fuses; + bool reduce_to_fuse_uV; + bool reduce_to_corner_uV; }; -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; +struct fuse_corner_data { + int ref_uV; + int max_uV; + int min_uV; + int max_volt_scale; + int max_quot_scale; + int quot_offset; + int quot_scale; + int quot_adjust; + int quot_offset_scale; + int quot_offset_adjust; }; -struct ubifs_cs_node { - struct ubifs_ch ch; - __le64 cmt_no; +struct acc_desc { + unsigned int enable_reg; + u32 enable_mask; + struct reg_sequence *config; + struct reg_sequence *settings; + int num_regs_per_fuse; }; -enum { - Opt_uid___2 = 0, - Opt_gid___3 = 1, - Opt_mode___2 = 2, - Opt_err___3 = 3, +enum voltage_change_dir { + NO_CHANGE = 0, + DOWN___2 = 1, + UP___2 = 2, }; -typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *); - -struct debugfs_mount_opts { - kuid_t uid; - kgid_t gid; - umode_t mode; - unsigned int opts; -}; +struct corner; -struct debugfs_fs_info { - struct debugfs_mount_opts mount_opts; -}; +struct fuse_corner; -struct rsa_mpi_key { - MPI n; - MPI e; - MPI d; - MPI p; - MPI q; - MPI dp; - MPI dq; - MPI qinv; -}; +struct cpr_fuse; -struct armctrl_ic { +struct cpr_drv { + unsigned int num_corners; + unsigned int ref_clk_khz; + struct generic_pm_domain pd; + struct device *dev; + struct device *attached_cpu_dev; + struct mutex lock; void *base; - void *pending[3]; - void *enable[3]; - void *disable[3]; - struct irq_domain *domain; + struct corner *corner; + struct regulator *vdd_apc; + struct clk *cpu_clk; + struct regmap *tcsr; + bool loop_disabled; + u32 gcnt; + unsigned long flags; + struct fuse_corner *fuse_corners; + struct corner *corners; + const struct cpr_desc *desc; + const struct acc_desc *acc_desc; + const struct cpr_fuse *cpr_fuses; + struct dentry *debugfs; + long: 32; }; -struct vt8500_irq_data { - void *base; - struct irq_domain *domain; +struct corner { + int min_uV; + int max_uV; + int uV; + int last_uV; + int quot_adjust; + u32 save_ctl; + u32 save_irq; + unsigned long freq; + struct fuse_corner *fuse_corner; }; -struct simple_pm_bus { - struct clk_bulk_data *clks; - int num_clks; +struct fuse_corner { + int min_uV; + int max_uV; + int uV; + int quot; + int step_quot; + const struct reg_sequence *accs; + int num_accs; + unsigned long max_freq; + u8 ring_osc_idx; }; -struct mvebu_a3700_comphy_conf { - unsigned int lane; - enum phy_mode mode; - int submode; +struct cpr_fuse { + char *ring_osc; + char *init_voltage; + char *quotient; + char *quotient_offset; }; -struct gbe_phy_init_data_fix { - u16 addr; - u16 value; +struct corner_data { + unsigned int fuse_corner; + unsigned long freq; }; -struct mvebu_a3700_comphy_priv; - -struct mvebu_a3700_comphy_lane { - struct mvebu_a3700_comphy_priv *priv; - struct device *dev; - unsigned int id; - enum phy_mode mode; - int submode; - bool invert_tx; - bool invert_rx; +enum lp872x_id { + LP8720 = 0, + LP8725 = 1, }; -struct mvebu_a3700_comphy_priv { - void *comphy_regs; - void *lane0_phy_regs; - void *lane1_phy_regs; - void *lane2_phy_indirect; - spinlock_t lock; - bool xtal_is_40m; +enum lp872x_regulator_id { + LP8720_ID_BASE = 0, + LP8720_ID_LDO1 = 0, + LP8720_ID_LDO2 = 1, + LP8720_ID_LDO3 = 2, + LP8720_ID_LDO4 = 3, + LP8720_ID_LDO5 = 4, + LP8720_ID_BUCK = 5, + LP8725_ID_BASE = 6, + LP8725_ID_LDO1 = 6, + LP8725_ID_LDO2 = 7, + LP8725_ID_LDO3 = 8, + LP8725_ID_LDO4 = 9, + LP8725_ID_LDO5 = 10, + LP8725_ID_LILO1 = 11, + LP8725_ID_LILO2 = 12, + LP8725_ID_BUCK1 = 13, + LP8725_ID_BUCK2 = 14, + LP872X_ID_MAX = 15, }; -struct owl_pinmux_func; - -struct owl_pingroup; +enum lp872x_dvs_sel { + SEL_V1 = 0, + SEL_V2 = 1, +}; -struct owl_padinfo; +struct lp872x_regulator_data { + enum lp872x_regulator_id id; + struct regulator_init_data *init_data; +}; -struct owl_gpio_port; +struct lp872x_dvs; -struct owl_pinctrl_soc_data { - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const struct owl_pinmux_func *functions; - unsigned int nfunctions; - const struct owl_pingroup *groups; - unsigned int ngroups; - const struct owl_padinfo *padinfo; - unsigned int ngpios; - const struct owl_gpio_port *ports; - unsigned int nports; - int (*padctl_val2arg)(const struct owl_padinfo *, unsigned int, u32 *); - int (*padctl_arg2val)(const struct owl_padinfo *, unsigned int, u32 *); +struct lp872x_platform_data { + u8 general_config; + bool update_config; + struct lp872x_regulator_data regulator_data[9]; + struct lp872x_dvs *dvs; + struct gpio_desc *enable_gpio; }; -struct owl_pinmux_func { - const char *name; - const char * const *groups; - unsigned int ngroups; +struct lp872x_dvs { + struct gpio_desc *gpio; + enum lp872x_dvs_sel vsel; + enum gpiod_flags init_state; }; -struct owl_pingroup { - const char *name; - unsigned int *pads; - unsigned int npads; - unsigned int *funcs; - unsigned int nfuncs; - int mfpctl_reg; - unsigned int mfpctl_shift; - unsigned int mfpctl_width; - int drv_reg; - unsigned int drv_shift; - unsigned int drv_width; - int sr_reg; - unsigned int sr_shift; - unsigned int sr_width; +struct lp872x { + struct regmap *regmap; + struct device *dev; + enum lp872x_id chipid; + struct lp872x_platform_data *pdata; + int num_regulators; + enum gpiod_flags dvs_pin; }; -struct owl_pullctl; - -struct owl_st; - -struct owl_padinfo { - int pad; - struct owl_pullctl *pullctl; - struct owl_st *st; +enum tps65218_regulator_id { + TPS65218_DCDC_1 = 0, + TPS65218_DCDC_2 = 1, + TPS65218_DCDC_3 = 2, + TPS65218_DCDC_4 = 3, + TPS65218_DCDC_5 = 4, + TPS65218_DCDC_6 = 5, + TPS65218_LDO_1 = 6, + TPS65218_LS_2 = 7, + TPS65218_LS_3 = 8, }; -struct owl_pullctl { - int reg; - unsigned int shift; - unsigned int width; +struct omap8250_dma_params; + +struct omap8250_platdata { + struct omap8250_dma_params *dma_params; + u8 habit; }; -struct owl_st { - int reg; - unsigned int shift; - unsigned int width; +struct omap8250_dma_params { + u32 rx_size; + u8 rx_trigger; + u8 tx_trigger; }; -struct owl_gpio_port { - unsigned int offset; - unsigned int pins; - unsigned int outen; - unsigned int inen; - unsigned int dat; - unsigned int intc_ctl; - unsigned int intc_pd; - unsigned int intc_msk; - unsigned int intc_type; - u8 shared_ctl_offset; +struct omap8250_priv { + void *membase; + int line; + u8 habit; + u8 mdr1; + u8 mdr3; + u8 efr; + u8 scr; + u8 wer; + u8 xon; + u8 xoff; + u8 delayed_restore; + u16 quot; + u8 tx_trigger; + u8 rx_trigger; + atomic_t active; + bool is_suspending; + int wakeirq; + int wakeups_enabled; + u32 latency; + u32 calc_latency; + struct pm_qos_request pm_qos_request; + struct work_struct qos_work; + struct uart_8250_dma omap8250_dma; + spinlock_t rx_dma_lock; + bool rx_dma_broken; + bool throttled; }; -enum s500_pinconf_pull { - OWL_PINCONF_PULL_DOWN = 0, - OWL_PINCONF_PULL_UP = 1, +struct memdev { + const char *name; + const struct file_operations *fops; + fmode_t fmode; + umode_t mode; }; -struct mpc8xxx_gpio_devtype { - int (*gpio_dir_out)(struct gpio_chip *, unsigned int, int); - int (*gpio_get)(struct gpio_chip *, unsigned int); - int (*irq_set_type)(struct irq_data *, unsigned int); -}; +struct splice_desc; -struct mpc8xxx_gpio_chip { - struct gpio_chip gc; - void *regs; - raw_spinlock_t lock; - int (*direction_output)(struct gpio_chip *, unsigned int, int); - struct irq_domain *irq; - int irqn; -}; +typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); -enum tpu_pin_state { - TPU_PIN_INACTIVE = 0, - TPU_PIN_PWM = 1, - TPU_PIN_ACTIVE = 2, +struct splice_desc { + size_t total_len; + unsigned int len; + unsigned int flags; + union { + void __attribute__((btf_type_tag("user"))) *userptr; + struct file *file; + void *data; + } u; + void (*splice_eof)(struct splice_desc *); + long: 32; + loff_t pos; + loff_t *opos; + size_t num_spliced; + bool need_wakeup; + long: 32; }; -struct tpu_device { - struct platform_device *pdev; - struct pwm_chip chip; - spinlock_t lock; - void *base; - struct clk *clk; -}; +struct host1x_device; -struct tpu_pwm_device { - bool timer_on; - struct tpu_device *tpu; - unsigned int channel; - enum pwm_polarity polarity; - unsigned int prescaler; - u16 period; - u16 duty; +struct host1x_driver { + struct device_driver driver; + const struct of_device_id *subdevs; + struct list_head list; + int (*probe)(struct host1x_device *); + int (*remove)(struct host1x_device *); + void (*shutdown)(struct host1x_device *); }; -struct m10v_clk_div_factors { - const char *name; - const char *parent_name; - u32 offset; - u8 shift; - u8 width; - const struct clk_div_table *table; - unsigned long div_flags; - int onecell_idx; +struct host1x_device { + struct host1x_driver *driver; + struct list_head list; + long: 32; + struct device dev; + struct mutex subdevs_lock; + struct list_head subdevs; + struct list_head active; + struct mutex clients_lock; + struct list_head clients; + bool registered; + struct device_dma_parameters dma_parms; }; -struct m10v_clk_div_fixed_data { - const char *name; - const char *parent_name; - u8 div; - u8 mult; - int onecell_idx; +struct host1x_subdev { + struct host1x_client *client; + struct device_node *np; + struct list_head list; }; -struct m10v_clk_mux_factors { - const char *name; - const char * const *parent_names; - u8 num_parents; - u32 offset; - u8 shift; - u8 mask; - u32 *table; - unsigned long mux_flags; - int onecell_idx; +struct drm_mode_obj_get_properties { + __u64 props_ptr; + __u64 prop_values_ptr; + __u32 count_props; + __u32 obj_id; + __u32 obj_type; + long: 32; }; -struct m10v_clk_divider { - struct clk_hw hw; - void *reg; - u8 shift; - u8 width; - u8 flags; - const struct clk_div_table *table; - spinlock_t *lock; - void *write_valid_reg; +struct drm_mode_obj_set_property { + __u64 value; + __u32 prop_id; + __u32 obj_id; + __u32 obj_type; + long: 32; }; -struct iproc_asiu_div { - unsigned int offset; - unsigned int en_shift; - unsigned int high_shift; - unsigned int high_width; - unsigned int low_shift; - unsigned int low_width; +struct drm_vma_offset_file { + struct rb_node vm_rb; + struct drm_file *vm_tag; + unsigned long vm_count; }; -struct clk_pfd { - struct clk_hw hw; - void *reg; - u8 idx; -}; +struct drm_panel_follower_funcs; -struct ti_syscon_gate_clk_data { - char *name; - u32 offset; - u32 bit_idx; +struct drm_panel_follower { + const struct drm_panel_follower_funcs *funcs; + struct list_head list; + struct drm_panel *panel; }; -struct ti_syscon_gate_clk_priv { - struct clk_hw hw; - struct regmap *regmap; - u32 reg; - u32 idx; +struct drm_panel_follower_funcs { + int (*panel_prepared)(struct drm_panel_follower *); + int (*panel_unpreparing)(struct drm_panel_follower *); }; -struct clk_regmap_div { - u32 reg; - u32 shift; - u32 width; - struct clk_regmap clkr; +enum drm_dp_mst_payload_allocation { + DRM_DP_MST_PAYLOAD_ALLOCATION_NONE = 0, + DRM_DP_MST_PAYLOAD_ALLOCATION_LOCAL = 1, + DRM_DP_MST_PAYLOAD_ALLOCATION_DFP = 2, + DRM_DP_MST_PAYLOAD_ALLOCATION_REMOTE = 3, }; -struct frac_rate_tbl; - -struct clk_frac { - struct clk_hw hw; - void *reg; - struct frac_rate_tbl *rtbl; - u8 rtbl_cnt; - spinlock_t *lock; +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, }; -struct frac_rate_tbl { - u32 div; -}; +struct drm_dp_mst_port; -struct mux_data { - u8 shift; +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; + enum drm_dp_mst_payload_allocation payload_allocation_status; + struct list_head next; }; -struct div_data { - u8 shift; - u8 pow; - u8 width; - const struct clk_div_table *table; -}; +struct drm_dp_mst_branch; -struct divs_data { - const struct factors_data *factors; - int ndivs; - struct { - u8 self; - u8 fixed; - struct clk_div_table *table; - u8 shift; - u8 pow; - u8 gate; - bool critical; - } div[4]; +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; + const struct drm_edid *cached_edid; + bool fec_capable; }; -struct rpi_power_domain { - u32 domain; - bool enabled; - bool old_interface; - struct generic_pm_domain base; - struct rpi_firmware *fw; - long: 32; +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 rpi_power_domains { - bool has_new_interface; - struct genpd_onecell_data xlate; - struct rpi_firmware *fw; - long: 32; - struct rpi_power_domain domains[23]; +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 rpi_power_domain_packet { - u32 domain; - u32 on; +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 rockchip_grf_value; +struct drm_dp_mst_topology_cbs; -struct rockchip_grf_info { - const struct rockchip_grf_value *values; - int num_values; +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 rockchip_grf_value { - const char *desc; - u32 reg; - u32 val; +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 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 drm_dp_nak_reply { + u8 guid[16]; + u8 reason; + u8 nak_data; }; -struct max8907_platform_data { - struct regulator_init_data *init_data[29]; - bool pm_off; +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 max8907 { - struct device *dev; - struct mutex irq_lock; - struct i2c_client *i2c_gen; - struct i2c_client *i2c_rtc; - struct regmap *regmap_gen; - struct regmap *regmap_rtc; - struct regmap_irq_chip_data *irqc_chg; - struct regmap_irq_chip_data *irqc_on_off; - struct regmap_irq_chip_data *irqc_rtc; +struct drm_dp_link_address_ack_reply { + u8 guid[16]; + u8 nports; + struct drm_dp_link_addr_reply_port ports[16]; }; -struct max8907_regulator { - struct regulator_desc desc[29]; +struct drm_dp_port_number_rep { + u8 port_number; }; -struct syscfg_reset_channel; - -struct syscfg_reset_controller { - struct reset_controller_dev rst; - bool active_low; - struct syscfg_reset_channel *channels; +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 syscfg_reset_channel { - struct regmap_field *reset; - struct regmap_field *ack; +struct drm_dp_allocate_payload_ack_reply { + u8 port_number; + u8 vcpi; + u16 allocated_pbn; }; -struct syscfg_reset_channel_data; - -struct syscfg_reset_controller_data { - bool wait_for_ack; - bool active_low; - int nr_channels; - const struct syscfg_reset_channel_data *channels; +struct drm_dp_query_payload_ack_reply { + u8 port_number; + u16 allocated_pbn; }; -struct syscfg_reset_channel_data { - const char *compatible; - struct reg_field reset; - struct reg_field ack; +struct drm_dp_remote_dpcd_read_ack_reply { + u8 port_number; + u8 num_bytes; + u8 bytes[255]; }; -struct pericom8250 { - void *virt; - unsigned int nr; - int line[0]; +struct drm_dp_remote_dpcd_write_ack_reply { + u8 port_number; }; -struct hisi_rng { - void *base; - struct hwrng rng; +struct drm_dp_remote_dpcd_write_nak_reply { + u8 port_number; + u8 reason; + u8 bytes_written_before_failure; }; -struct optee_rng_private { - struct device *dev; - struct tee_context *ctx; - u32 session_id; - u32 data_rate; - struct tee_shm *entropy_shm_pool; - struct hwrng optee_rng; +struct drm_dp_remote_i2c_read_ack_reply { + u8 port_number; + u8 num_bytes; + u8 bytes[255]; }; -struct drm_gem_close { - __u32 handle; - __u32 pad; +struct drm_dp_remote_i2c_read_nak_reply { + u8 port_number; + u8 nak_reason; + u8 i2c_nak_transaction; }; -struct drm_gem_flink { - __u32 handle; - __u32 name; +struct drm_dp_remote_i2c_write_ack_reply { + u8 port_number; }; -struct drm_gem_open { - __u32 name; - __u32 handle; - __u64 size; +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; }; -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, +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; }; -enum drm_lspcon_mode { - DRM_LSPCON_MODE_INVALID = 0, - DRM_LSPCON_MODE_LS = 1, - DRM_LSPCON_MODE_PCON = 2, +struct drm_dp_sideband_msg_reply_body { + u8 reply_type; + u8 req_type; + union ack_replies u; }; -struct driver_attribute { - struct attribute attr; - ssize_t (*show)(struct device_driver *, char *); - ssize_t (*store)(struct device_driver *, const char *, size_t); +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 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 *); +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 subsys_dev_iter { - struct klist_iter ki; - const struct device_type *type; +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 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 drm_dp_port_number_req { + u8 port_number; }; -struct anon_transport_class { - struct transport_class tclass; - struct attribute_container container; +struct drm_dp_resource_status_notify { + u8 port_number; + u8 guid[16]; + u16 available_pbn; }; -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; - long: 32; - u64 last_hw_sleep; - u64 total_hw_sleep; - u64 max_hw_sleep; - enum suspend_stat_step failed_steps[2]; +struct drm_dp_query_payload { + u8 port_number; + u8 vcpi; }; -typedef int (*pm_callback_t)(struct device *); - -enum max8997_irq_source { - PMIC_INT1 = 0, - PMIC_INT2 = 1, - PMIC_INT3 = 2, - PMIC_INT4 = 3, - FUEL_GAUGE = 4, - MUIC_INT1 = 5, - MUIC_INT2 = 6, - MUIC_INT3 = 7, - GPIO_LOW = 8, - GPIO_HI = 9, - FLASH_STATUS = 10, - MAX8997_IRQ_GROUP_NR = 11, +struct drm_dp_allocate_payload { + u8 port_number; + u8 number_sdp_streams; + u8 vcpi; + u16 pbn; + u8 sdp_stream_sink[16]; }; -struct max8997_irq_data { - int mask; - enum max8997_irq_source group; +struct drm_dp_remote_dpcd_read { + u8 port_number; + u32 dpcd_address; + u8 num_bytes; }; -enum max8997_irq { - MAX8997_PMICIRQ_PWRONR = 0, - MAX8997_PMICIRQ_PWRONF = 1, - MAX8997_PMICIRQ_PWRON1SEC = 2, - MAX8997_PMICIRQ_JIGONR = 3, - MAX8997_PMICIRQ_JIGONF = 4, - MAX8997_PMICIRQ_LOWBAT2 = 5, - MAX8997_PMICIRQ_LOWBAT1 = 6, - MAX8997_PMICIRQ_JIGR = 7, - MAX8997_PMICIRQ_JIGF = 8, - MAX8997_PMICIRQ_MR = 9, - MAX8997_PMICIRQ_DVS1OK = 10, - MAX8997_PMICIRQ_DVS2OK = 11, - MAX8997_PMICIRQ_DVS3OK = 12, - MAX8997_PMICIRQ_DVS4OK = 13, - MAX8997_PMICIRQ_CHGINS = 14, - MAX8997_PMICIRQ_CHGRM = 15, - MAX8997_PMICIRQ_DCINOVP = 16, - MAX8997_PMICIRQ_TOPOFFR = 17, - MAX8997_PMICIRQ_CHGRSTF = 18, - MAX8997_PMICIRQ_MBCHGTMEXPD = 19, - MAX8997_PMICIRQ_RTC60S = 20, - MAX8997_PMICIRQ_RTCA1 = 21, - MAX8997_PMICIRQ_RTCA2 = 22, - MAX8997_PMICIRQ_SMPL_INT = 23, - MAX8997_PMICIRQ_RTC1S = 24, - MAX8997_PMICIRQ_WTSR = 25, - MAX8997_MUICIRQ_ADCError = 26, - MAX8997_MUICIRQ_ADCLow = 27, - MAX8997_MUICIRQ_ADC = 28, - MAX8997_MUICIRQ_VBVolt = 29, - MAX8997_MUICIRQ_DBChg = 30, - MAX8997_MUICIRQ_DCDTmr = 31, - MAX8997_MUICIRQ_ChgDetRun = 32, - MAX8997_MUICIRQ_ChgTyp = 33, - MAX8997_MUICIRQ_OVP = 34, - MAX8997_IRQ_NR = 35, +struct drm_dp_remote_dpcd_write { + u8 port_number; + u32 dpcd_address; + u8 num_bytes; + u8 *bytes; }; -enum scsi_ml_status { - SCSIML_STAT_OK = 0, - SCSIML_STAT_RESV_CONFLICT = 1, - SCSIML_STAT_NOSPC = 2, - SCSIML_STAT_MED_ERROR = 3, - SCSIML_STAT_TGT_FAILURE = 4, - SCSIML_STAT_DL_TIMEOUT = 5, +struct drm_dp_remote_i2c_read_tx { + u8 i2c_dev_id; + u8 num_bytes; + u8 *bytes; + u8 no_stop_bit; + u8 i2c_transaction_delay; }; -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, +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; }; -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 drm_dp_remote_i2c_write { + u8 port_number; + u8 write_i2c_device_id; + u8 num_bytes; + u8 *bytes; }; -typedef void (*activate_complete)(void *, int); - -struct scsi_device_handler { - struct list_head list; - struct module *module; - const char *name; - enum scsi_disposition (*check_sense)(struct scsi_device *, struct scsi_sense_hdr *); - int (*attach)(struct scsi_device *); - void (*detach)(struct scsi_device *); - int (*activate)(struct scsi_device *, activate_complete, void *); - blk_status_t (*prep_fn)(struct scsi_device *, struct request *); - int (*set_params)(struct scsi_device *, const char *); - void (*rescan)(struct scsi_device *); +struct 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; }; -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; +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 mtd_part_parser { - struct list_head list; - struct module *owner; - const char *name; - const struct of_device_id *of_match_table; - int (*parse_fn)(struct mtd_info *, const struct mtd_partition **, struct mtd_part_parser_data *); - void (*cleanup)(const struct mtd_partition *, int); +struct drm_dp_sideband_msg_req_body { + u8 req_type; + union ack_req u; }; -struct cmdline_mtd_partition { - struct cmdline_mtd_partition *next; - char *mtd_id; - int num_parts; - struct mtd_partition *parts; +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; }; -typedef union { - unsigned long x[1]; -} map_word; +struct drm_dp_dpcd_ident { + u8 oui[3]; + u8 device_id[6]; + u8 hw_rev; + u8 sw_major_rev; + u8 sw_minor_rev; +}; -typedef enum { - FL_READY = 0, - FL_STATUS = 1, - FL_CFI_QUERY = 2, - FL_JEDEC_QUERY = 3, - FL_ERASING = 4, - FL_ERASE_SUSPENDING = 5, - FL_ERASE_SUSPENDED = 6, - FL_WRITING = 7, - FL_WRITING_TO_BUFFER = 8, - FL_OTP_WRITE = 9, - FL_WRITE_SUSPENDING = 10, - FL_WRITE_SUSPENDED = 11, - FL_PM_SUSPENDED = 12, - FL_SYNCING = 13, - FL_UNLOADING = 14, - FL_LOCKING = 15, - FL_UNLOCKING = 16, - FL_POINT = 17, - FL_XIP_WHILE_ERASING = 18, - FL_XIP_WHILE_WRITING = 19, - FL_SHUTDOWN = 20, - FL_READING = 21, - FL_CACHEDPRG = 22, - FL_RESETTING = 23, - FL_OTPING = 24, - FL_PREPARING_ERASE = 25, - FL_VERIFYING_ERASE = 26, - FL_UNKNOWN = 27, -} flstate_t; +struct drm_dp_desc { + struct drm_dp_dpcd_ident ident; + u32 quirks; +}; -struct flchip { +struct hd_geometry { + unsigned char heads; + unsigned char sectors; + unsigned short cylinders; unsigned long start; - int ref_point_counter; - flstate_t state; - flstate_t oldstate; - unsigned int write_suspended: 1; - unsigned int erase_suspended: 1; - unsigned long in_progress_block_addr; - unsigned long in_progress_block_mask; - struct mutex mutex; - wait_queue_head_t wq; - int word_write_time; - int buffer_write_time; - int erase_time; - int word_write_time_max; - int buffer_write_time_max; - int erase_time_max; - void *priv; }; -struct cfi_ident; - -struct cfi_private { - uint16_t cmdset; - void *cmdset_priv; - int interleave; - int device_type; - int cfi_mode; - int addr_unlock1; - int addr_unlock2; - struct mtd_info * (*cmdset_setup)(struct map_info *); - struct cfi_ident *cfiq; - int mfr; - int id; - int numchips; - map_word sector_erase_cmd; - unsigned long chipshift; - const char *im_name; - unsigned long quirks; - struct flchip chips[0]; +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 cfi_ident { - uint8_t qry[3]; - uint16_t P_ID; - uint16_t P_ADR; - uint16_t A_ID; - uint16_t A_ADR; - uint8_t VccMin; - uint8_t VccMax; - uint8_t VppMin; - uint8_t VppMax; - uint8_t WordWriteTimeoutTyp; - uint8_t BufWriteTimeoutTyp; - uint8_t BlockEraseTimeoutTyp; - uint8_t ChipEraseTimeoutTyp; - uint8_t WordWriteTimeoutMax; - uint8_t BufWriteTimeoutMax; - uint8_t BlockEraseTimeoutMax; - uint8_t ChipEraseTimeoutMax; - uint8_t DevSize; - uint16_t InterfaceDesc; - uint16_t MaxBufWriteSize; - uint8_t NumEraseRegions; - uint32_t EraseRegionInfo[0]; -} __attribute__((packed)); +struct virtio_blk_vq; -struct cfi_extquery { - uint8_t pri[3]; - uint8_t MajorVersion; - uint8_t MinorVersion; +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 cfi_fixup { - uint16_t mfr; - uint16_t id; - void (*fixup)(struct mtd_info *); +struct virtio_blk_vq { + struct virtqueue *vq; + spinlock_t lock; + char name[16]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -typedef int (*varsize_frob_t)(struct map_info *, struct flchip *, unsigned long, int, void *); +typedef __u32 __virtio32; -struct jedec_ecc_info { - u8 ecc_bits; - u8 codeword_size; - __le16 bb_per_lun; - __le16 block_endurance; - u8 reserved[2]; +typedef __u64 __virtio64; + +struct virtio_blk_outhdr { + __virtio32 type; + __virtio32 ioprio; + __virtio64 sector; }; -struct nand_jedec_params { - u8 sig[4]; - __le16 revision; - __le16 features; - u8 opt_cmd[3]; - __le16 sec_cmd; - u8 num_of_param_pages; - u8 reserved0[18]; - char manufacturer[12]; - char model[20]; - u8 jedec_id[6]; - u8 reserved1[10]; - __le32 byte_per_page; - __le16 spare_bytes_per_page; - u8 reserved2[6]; - __le32 pages_per_block; - __le32 blocks_per_lun; - u8 lun_count; - u8 addr_cycles; - u8 bits_per_cell; - u8 programs_per_page; - u8 multi_plane_addr; - u8 multi_plane_op_attr; - u8 reserved3[38]; - __le16 async_sdr_speed_grade; - __le16 toggle_ddr_speed_grade; - __le16 sync_ddr_speed_grade; - u8 async_sdr_features; - u8 toggle_ddr_features; - u8 sync_ddr_features; - __le16 t_prog; - __le16 t_bers; - __le16 t_r; - __le16 t_r_multi_plane; - __le16 t_ccs; - __le16 io_pin_capacitance_typ; - __le16 input_pin_capacitance_typ; - __le16 clk_pin_capacitance_typ; - u8 driver_strength_support; - __le16 t_adl; - u8 reserved4[36]; - u8 guaranteed_good_blocks; - __le16 guaranteed_block_endurance; - struct jedec_ecc_info ecc_info[4]; - u8 reserved5[29]; - u8 reserved6[148]; - __le16 vendor_rev_num; - u8 reserved7[88]; - __le16 crc; -} __attribute__((packed)); +struct virtblk_req { + struct virtio_blk_outhdr out_hdr; + union { + u8 status; + struct { + __virtio64 sector; + u8 status; + long: 32; + } zone_append; + } in_hdr; + size_t in_hdr_len; + struct sg_table sg_table; + struct scatterlist sg[0]; +}; -struct ubi_sgl { - int list_pos; - int page_pos; - struct scatterlist sg[64]; +struct virtio_blk_discard_write_zeroes { + __le64 sector; + __le32 num_sectors; + __le32 flags; }; -struct phylink { - struct net_device *netdev; - const struct phylink_mac_ops *mac_ops; - struct phylink_config *config; - struct phylink_pcs *pcs; - struct device *dev; - unsigned int old_link_state: 1; - unsigned long phylink_disable_state; - struct phy_device *phydev; - phy_interface_t link_interface; - u8 cfg_link_an_mode; - u8 cur_link_an_mode; - u8 link_port; - unsigned long supported[4]; - struct phylink_link_state link_config; - phy_interface_t cur_interface; - struct gpio_desc *link_gpio; - unsigned int link_irq; - struct timer_list link_poll; - void (*get_fixed_state)(struct net_device *, struct phylink_link_state *); - struct mutex state_mutex; - struct phylink_link_state phy_state; - struct work_struct resolve; - unsigned int pcs_neg_mode; - bool mac_link_dropped; - bool using_mac_select_pcs; - struct sfp_bus *sfp_bus; - bool sfp_may_have_phy; - unsigned long sfp_interfaces[1]; - unsigned long sfp_support[4]; - u8 sfp_port; +enum scsi_pr_type { + SCSI_PR_WRITE_EXCLUSIVE = 1, + SCSI_PR_EXCLUSIVE_ACCESS = 3, + SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5, + SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6, + SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7, + SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8, }; -enum { - PHYLINK_DISABLE_STOPPED = 0, - PHYLINK_DISABLE_LINK = 1, - PHYLINK_DISABLE_MAC_WOL = 2, +struct pr_keys { + u32 generation; + u32 num_keys; + u64 keys[0]; }; -enum e1000_state_t___2 { - __E1000_TESTING = 0, - __E1000_RESETTING = 1, - __E1000_ACCESS_SHARED_RESOURCE = 2, - __E1000_DOWN = 3, +struct pr_held_reservation { + u64 key; + u32 generation; + enum pr_type type; }; -struct ich8_hsflctl { - u16 flcgo: 1; - u16 flcycle: 2; - u16 reserved: 5; - u16 fldbcount: 2; - u16 flockdn: 6; +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, }; -union ich8_hws_flash_ctrl { - struct ich8_hsflctl hsf_ctrl; - u16 regval; +enum { + SD_DEF_XFER_BLOCKS = 65535, + SD_MAX_XFER_BLOCKS = 4294967295, + SD_MAX_WS10_BLOCKS = 65535, + SD_MAX_WS16_BLOCKS = 8388607, }; -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; +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, }; -union ich8_hws_flash_status { - struct ich8_hsfsts hsf_status; - u16 regval; +enum t10_dif_type { + T10_PI_TYPE0_PROTECTION = 0, + T10_PI_TYPE1_PROTECTION = 1, + T10_PI_TYPE2_PROTECTION = 2, + T10_PI_TYPE3_PROTECTION = 3, }; -struct ich8_pr { - u32 base: 13; - u32 reserved1: 2; - u32 rpe: 1; - u32 limit: 13; - u32 reserved2: 2; - u32 wpe: 1; +enum { + SD_ZERO_WRITE = 0, + SD_ZERO_WS = 1, + SD_ZERO_WS16_UNMAP = 2, + SD_ZERO_WS10_UNMAP = 3, }; -union ich8_flash_protected_range { - struct ich8_pr range; - u32 regval; +enum bip_flags { + BIP_BLOCK_INTEGRITY = 1, + BIP_MAPPED_INTEGRITY = 2, + BIP_CTRL_NOCHECK = 4, + BIP_DISK_NOCHECK = 8, + BIP_IP_CHECKSUM = 16, }; -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 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 switchdev_attr_id { - SWITCHDEV_ATTR_ID_UNDEFINED = 0, - SWITCHDEV_ATTR_ID_PORT_STP_STATE = 1, - SWITCHDEV_ATTR_ID_PORT_MST_STATE = 2, - SWITCHDEV_ATTR_ID_PORT_BRIDGE_FLAGS = 3, - SWITCHDEV_ATTR_ID_PORT_PRE_BRIDGE_FLAGS = 4, - SWITCHDEV_ATTR_ID_PORT_MROUTER = 5, - SWITCHDEV_ATTR_ID_BRIDGE_AGEING_TIME = 6, - SWITCHDEV_ATTR_ID_BRIDGE_VLAN_FILTERING = 7, - SWITCHDEV_ATTR_ID_BRIDGE_VLAN_PROTOCOL = 8, - SWITCHDEV_ATTR_ID_BRIDGE_MC_DISABLED = 9, - SWITCHDEV_ATTR_ID_BRIDGE_MROUTER = 10, - SWITCHDEV_ATTR_ID_BRIDGE_MST = 11, - SWITCHDEV_ATTR_ID_MRP_PORT_ROLE = 12, - SWITCHDEV_ATTR_ID_VLAN_MSTI = 13, +enum { + SD_EXT_CDB_SIZE = 32, + SD_MEMPOOL_SIZE = 2, }; -enum cpsw_ale_port_state { - ALE_PORT_STATE_DISABLE = 0, - ALE_PORT_STATE_BLOCK = 1, - ALE_PORT_STATE_LEARN = 2, - ALE_PORT_STATE_FORWARD = 3, +struct opal_dev; + +struct scsi_disk { + struct scsi_device *device; + long: 32; + struct device disk_dev; + struct gendisk *disk; + struct opal_dev *opal_dev; + atomic_t openers; + long: 32; + 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; + bool suspended; + unsigned int ATO: 1; + unsigned int cache_override: 1; + unsigned int WCE: 1; + unsigned int RCD: 1; + unsigned int DPOFUA: 1; + unsigned int first_scan: 1; + unsigned int lbpme: 1; + unsigned int lbprz: 1; + unsigned int lbpu: 1; + unsigned int lbpws: 1; + unsigned int lbpws10: 1; + unsigned int lbpvpd: 1; + unsigned int ws10: 1; + unsigned int ws16: 1; + unsigned int rc_basis: 2; + unsigned int zoned: 2; + unsigned int urswrz: 1; + unsigned int security: 1; + unsigned int ignore_medium_access_errors: 1; + long: 32; }; -enum cpsw_ale_control { - ALE_ENABLE = 0, - ALE_CLEAR = 1, - ALE_AGEOUT = 2, - ALE_P0_UNI_FLOOD = 3, - ALE_VLAN_NOLEARN = 4, - ALE_NO_PORT_VLAN = 5, - ALE_OUI_DENY = 6, - ALE_BYPASS = 7, - ALE_RATE_LIMIT_TX = 8, - ALE_VLAN_AWARE = 9, - ALE_AUTH_ENABLE = 10, - ALE_RATE_LIMIT = 11, - ALE_PORT_STATE = 12, - ALE_PORT_DROP_UNTAGGED = 13, - ALE_PORT_DROP_UNKNOWN_VLAN = 14, - ALE_PORT_NOLEARN = 15, - ALE_PORT_NO_SA_UPDATE = 16, - ALE_PORT_UNKNOWN_VLAN_MEMBER = 17, - ALE_PORT_UNKNOWN_MCAST_FLOOD = 18, - ALE_PORT_UNKNOWN_REG_MCAST_FLOOD = 19, - ALE_PORT_UNTAGGED_EGRESS = 20, - ALE_PORT_MACONLY = 21, - ALE_PORT_MACONLY_CAF = 22, - ALE_PORT_BCAST_LIMIT = 23, - ALE_PORT_MCAST_LIMIT = 24, - ALE_DEFAULT_THREAD_ID = 25, - ALE_DEFAULT_THREAD_ENABLE = 26, - ALE_NUM_CONTROLS = 27, +struct scsi_mode_data { + __u32 length; + __u16 block_descriptor_length; + __u8 medium_type; + __u8 device_specific; + __u8 header_length; + __u8 longlba: 1; }; -struct switchdev_notifier_info { - struct net_device *dev; - struct netlink_ext_ack *extack; - const void *ctx; +struct st_ahci_drv_data { + struct platform_device *ahci; + struct reset_control *pwr; + struct reset_control *sw_rst; + struct reset_control *pwr_rst; }; -struct switchdev_notifier_fdb_info { - struct switchdev_notifier_info info; - const unsigned char *addr; - u16 vid; - u8 added_by_user: 1; - u8 is_local: 1; - u8 locked: 1; - u8 offloaded: 1; +enum { + DP83867_PORT_MIRROING_KEEP = 0, + DP83867_PORT_MIRROING_EN = 1, + DP83867_PORT_MIRROING_DIS = 2, }; -struct cpsw_priv; +enum led_trigger_netdev_modes { + TRIGGER_NETDEV_LINK = 0, + TRIGGER_NETDEV_LINK_10 = 1, + TRIGGER_NETDEV_LINK_100 = 2, + TRIGGER_NETDEV_LINK_1000 = 3, + TRIGGER_NETDEV_HALF_DUPLEX = 4, + TRIGGER_NETDEV_FULL_DUPLEX = 5, + TRIGGER_NETDEV_TX = 6, + TRIGGER_NETDEV_RX = 7, + __TRIGGER_NETDEV_MAX = 8, +}; -struct cpsw_switchdev_event_work { - struct work_struct work; - struct switchdev_notifier_fdb_info fdb_info; - struct cpsw_priv *priv; - unsigned long event; +struct dp83867_private { + u32 rx_id_delay; + u32 tx_id_delay; + u32 tx_fifo_depth; + u32 rx_fifo_depth; + int io_impedance; + int port_mirroring; + bool rxctrl_strap_quirk; + bool set_clk_output; + u32 clk_output_sel; + bool sgmii_ref_clk_en; }; -struct xdp_attachment_info { - struct bpf_prog *prog; - u32 flags; +enum xcan_ip_type { + XAXI_CAN = 0, + XZYNQ_CANPS = 1, + XAXI_CANFD = 2, + XAXI_CANFD_2_0 = 3, }; -struct cpsw_ale_ratelimit { - unsigned long cookie; - long: 32; - u64 rate_packet_ps; +struct xcan_devtype_data { + enum xcan_ip_type cantype; + unsigned int flags; + const struct can_bittiming_const *bittiming_const; + const char *bus_clk_name; + unsigned int btr_ts2_shift; + unsigned int btr_sjw_shift; }; -struct cpsw_common; +enum xcan_reg { + XCAN_SRR_OFFSET = 0, + XCAN_MSR_OFFSET = 4, + XCAN_BRPR_OFFSET = 8, + XCAN_BTR_OFFSET = 12, + XCAN_ECR_OFFSET = 16, + XCAN_ESR_OFFSET = 20, + XCAN_SR_OFFSET = 24, + XCAN_ISR_OFFSET = 28, + XCAN_IER_OFFSET = 32, + XCAN_ICR_OFFSET = 36, + XCAN_TXFIFO_OFFSET = 48, + XCAN_RXFIFO_OFFSET = 80, + XCAN_AFR_OFFSET = 96, + XCAN_F_BRPR_OFFSET = 136, + XCAN_F_BTR_OFFSET = 140, + XCAN_TRR_OFFSET = 144, + XCAN_AFR_EXT_OFFSET = 224, + XCAN_FSR_OFFSET = 232, + XCAN_TXMSG_BASE_OFFSET = 256, + XCAN_RXMSG_BASE_OFFSET = 4352, + XCAN_RXMSG_2_BASE_OFFSET = 8448, + XCAN_AFR_2_MASK_OFFSET = 2560, + XCAN_AFR_2_ID_OFFSET = 2564, +}; -struct cpsw_priv { - struct net_device *ndev; +struct xcan_priv { + struct can_priv can; + spinlock_t tx_lock; + unsigned int tx_head; + unsigned int tx_tail; + unsigned int tx_max; + struct napi_struct napi; + u32 (*read_reg)(const struct xcan_priv *, enum xcan_reg); + void (*write_reg)(const struct xcan_priv *, enum xcan_reg, u32); struct device *dev; - u32 msg_enable; - u8 mac_addr[6]; - bool rx_pause; - bool tx_pause; - bool mqprio_hw; - int fifo_bw[4]; - int shp_cfg_speed; - int tx_ts_enabled; - int rx_ts_enabled; - struct bpf_prog *xdp_prog; - long: 32; - long: 32; - struct xdp_rxq_info xdp_rxq[8]; - struct xdp_attachment_info xdpi; - u32 emac_port; - struct cpsw_common *cpsw; - int offload_fwd_mark; - u32 tx_packet_min; - struct cpsw_ale_ratelimit ale_bc_ratelimit; - struct cpsw_ale_ratelimit ale_mc_ratelimit; - long: 32; + void *reg_base; + unsigned long irq_flags; + struct clk *bus_clk; + struct clk *can_clk; + struct xcan_devtype_data devtype; + struct phy *transceiver; + struct reset_control *rstc; long: 32; }; -struct cpsw_slave_data; +enum ttc_control___2 { + DMA_CONTROL_TTC_DEFAULT = 0, + DMA_CONTROL_TTC_64___2 = 16384, + DMA_CONTROL_TTC_128___2 = 32768, + DMA_CONTROL_TTC_256___2 = 49152, + DMA_CONTROL_TTC_18 = 4194304, + DMA_CONTROL_TTC_24___2 = 4210688, + DMA_CONTROL_TTC_32___2 = 4227072, + DMA_CONTROL_TTC_40___2 = 4243456, + DMA_CONTROL_SE = 8, + DMA_CONTROL_OSF = 4, +}; -struct cpsw_platform_data { - struct cpsw_slave_data *slave_data; - u32 ss_reg_ofs; - u32 channels; - u32 slaves; - u32 active_slave; - u32 bd_ram_size; - u32 mac_control; - u16 default_vlan; - bool dual_emac; +struct cdrom_sysctl_settings { + char info[1000]; + int autoclose; + int autoeject; + int debug; + int lock; + int check; }; -struct cpsw_vector { - struct cpdma_chan *ch; - int budget; +enum cdrom_print_option { + CTL_NAME = 0, + CTL_SPEED = 1, + CTL_SLOTS = 2, + CTL_CAPABILITY = 3, }; -struct cpsw_ss_regs; +struct event_header { + __be16 data_len; + __u8 notification_class: 3; + __u8 reserved1: 4; + __u8 nea: 1; + __u8 supp_event_class; +}; -struct cpsw_wr_regs; +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 cpsw_host_regs; +struct mode_page_header { + __be16 mode_data_length; + __u8 medium_type; + __u8 reserved1; + __u8 reserved2; + __u8 reserved3; + __be16 desc_length; +}; -struct cpsw_slave; +struct cdrom_timed_media_change_info { + __s64 last_media_change; + __u64 media_flags; +}; -struct cpsw_ale; +struct cdrom_msf { + __u8 cdmsf_min0; + __u8 cdmsf_sec0; + __u8 cdmsf_frame0; + __u8 cdmsf_min1; + __u8 cdmsf_sec1; + __u8 cdmsf_frame1; +}; -struct cpts; +struct cdrom_read_audio { + union cdrom_addr addr; + __u8 addr_format; + int nframes; + __u8 __attribute__((btf_type_tag("user"))) *buf; +}; -struct cpsw_common { - struct device *dev; - struct cpsw_platform_data data; - long: 32; - struct napi_struct napi_rx; - struct napi_struct napi_tx; - struct cpsw_ss_regs *regs; - struct cpsw_wr_regs *wr_regs; - u8 *hw_stats; - struct cpsw_host_regs *host_port_regs; - u32 version; - u32 coal_intvl; - u32 bus_freq_mhz; - int rx_packet_max; - int descs_pool_size; - struct cpsw_slave *slaves; - struct cpdma_ctlr *dma; - struct cpsw_vector txv[8]; - struct cpsw_vector rxv[8]; - struct cpsw_ale *ale; - bool quirk_irq; - bool rx_irq_disabled; - bool tx_irq_disabled; - u32 irqs_table[2]; - int misc_irq; - struct cpts *cpts; - struct devlink *devlink; - int rx_ch_num; - int tx_ch_num; - int speed; - int usage_count; - struct page_pool *page_pool[8]; - u8 br_members; - struct net_device *hw_bridge_dev; - bool ale_bypass; - u8 base_mac[6]; +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 cpsw_slave_data { - struct device_node *slave_node; - struct device_node *phy_node; - char phy_id[61]; - phy_interface_t phy_if; - u8 mac_addr[6]; - u16 dual_emac_res_vlan; - struct phy *ifphy; - bool disabled; +struct cdrom_blk { + unsigned int from; + unsigned short len; }; -struct cpsw_ss_regs { - u32 id_ver; - u32 control; - u32 soft_reset; - u32 stat_port_en; - u32 ptype; - u32 soft_idle; - u32 thru_rate; - u32 gap_thresh; - u32 tx_start_wds; - u32 flow_control; - u32 vlan_ltype; - u32 ts_ltype; - u32 dlr_ltype; +struct cdrom_volctrl { + __u8 channel0; + __u8 channel1; + __u8 channel2; + __u8 channel3; }; -struct cpsw_wr_regs { - u32 id_ver; - u32 soft_reset; - u32 control; - u32 int_control; - u32 rx_thresh_en; - u32 rx_en; - u32 tx_en; - u32 misc_en; - u32 mem_allign1[8]; - u32 rx_thresh_stat; - u32 rx_stat; - u32 tx_stat; - u32 misc_stat; - u32 mem_allign2[8]; - u32 rx_imax; - u32 tx_imax; +struct dvd_lu_send_agid { + __u8 type; + unsigned int agid: 2; }; -struct cpsw_host_regs { - u32 max_blks; - u32 blk_cnt; - u32 tx_in_ctl; - u32 port_vlan; - u32 tx_pri_map; - u32 cpdma_tx_pri_map; - u32 cpdma_rx_chan_map; +typedef __u8 dvd_challenge[10]; + +struct dvd_host_send_challenge { + __u8 type; + unsigned int agid: 2; + dvd_challenge chal; }; -struct cpsw_slave { - void *regs; - int slave_num; - u32 mac_control; - struct cpsw_slave_data *data; - struct phy_device *phy; - struct net_device *ndev; - u32 port_vlan; - struct cpsw_sl *mac_sl; +typedef __u8 dvd_key[5]; + +struct dvd_send_key { + __u8 type; + unsigned int agid: 2; + dvd_key key; }; -struct cpsw_ale_params { - struct device *dev; - void *ale_regs; - unsigned long ale_ageout; - unsigned long ale_entries; - unsigned long ale_ports; - bool nu_switch_ale; - u32 major_ver_mask; - const char *dev_id; - unsigned long bus_freq; +struct dvd_lu_send_challenge { + __u8 type; + unsigned int agid: 2; + dvd_challenge chal; }; -struct ale_entry_fld; +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 cpsw_ale { - struct cpsw_ale_params params; - struct timer_list timer; - unsigned long ageout; - u32 version; - u32 features; - u32 port_mask_bits; - u32 port_num_bits; - u32 vlan_field_bits; - unsigned long *p0_untag_vid_mask; - const struct ale_entry_fld *vlan_entry_tbl; +struct dvd_lu_send_asf { + __u8 type; + unsigned int agid: 2; + unsigned int asf: 1; }; -struct ale_entry_fld { - u8 start_bit; - u8 num_bits; - u8 flags; +struct dvd_host_send_rpcstate { + __u8 type; + __u8 pdrc; }; -struct switchdev_attr; +struct dvd_lu_send_rpcstate { + __u8 type: 2; + __u8 vra: 3; + __u8 ucca: 3; + __u8 region_mask; + __u8 rpc_scheme; +}; -struct switchdev_notifier_port_attr_info { - struct switchdev_notifier_info info; - const struct switchdev_attr *attr; - bool handled; +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 switchdev_attr { - struct net_device *orig_dev; - enum switchdev_attr_id id; - u32 flags; - void *complete_priv; - void (*complete)(struct net_device *, int, void *); - union { - u8 stp_state; - struct switchdev_mst_state mst_state; - struct switchdev_brport_flags brport_flags; - bool mrouter; - clock_t ageing_time; - bool vlan_filtering; - u16 vlan_protocol; - bool mst; - bool mc_disabled; - u8 mrp_port_role; - struct switchdev_vlan_msti vlan_msti; - } u; +struct 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 switchdev_notifier_port_obj_info { - struct switchdev_notifier_info info; - const struct switchdev_obj *obj; - bool handled; +struct cdrom_slot { + __u8 change: 1; + __u8 reserved1: 6; + __u8 disc_present: 1; + __u8 reserved2[3]; }; -struct class_info { - int class; - char *class_name; +struct cdrom_changer_info { + struct cdrom_mechstat_header hdr; + struct cdrom_slot slots[256]; }; -struct xhci_slot_ctx { - __le32 dev_info; - __le32 dev_info2; - __le32 tt_info; - __le32 dev_state; - __le32 reserved[4]; +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 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 tegra_usb_soc_info { - unsigned long flags; - unsigned int txfifothresh; - enum usb_dr_mode dr_mode; +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 tegra_usb { - struct ci_hdrc_platform_data data; - struct platform_device *dev; - const struct tegra_usb_soc_info *soc; - struct usb_phy *phy; - struct clk *clk; - bool needs_double_reset; +struct dvd_physical { + __u8 type; + __u8 layer_num; + struct dvd_layer layer[4]; }; -struct stpmic1_onkey { - struct input_dev *input_dev; - int irq_falling; - int irq_rising; +struct dvd_copyright { + __u8 type; + __u8 layer_num; + __u8 cpst; + __u8 rmi; }; -typedef void (*btf_trace_smbus_write)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, const union i2c_smbus_data *); +struct dvd_disckey { + __u8 type; + unsigned int agid: 2; + __u8 value[2048]; +}; -typedef void (*btf_trace_smbus_read)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int); +struct dvd_bca { + __u8 type; + int len; + __u8 value[188]; +}; -typedef void (*btf_trace_smbus_reply)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, const union i2c_smbus_data *, int); +struct dvd_manufact { + __u8 type; + __u8 layer_num; + int len; + __u8 value[2048]; +}; -typedef void (*btf_trace_smbus_result)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, int); +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; -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]; +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 usb_phy_roothub { + struct phy *phy; + struct list_head list; }; -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 matrix_keymap_data { + const uint32_t *keymap; + unsigned int keymap_size; }; -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]; +enum twl_class { + TWL_4030 = 0, + TWL_6030 = 1, }; -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]; +enum { + REG_SECONDS_REG = 0, + REG_MINUTES_REG = 1, + REG_HOURS_REG = 2, + REG_DAYS_REG = 3, + REG_MONTHS_REG = 4, + REG_YEARS_REG = 5, + REG_WEEKS_REG = 6, + REG_ALARM_SECONDS_REG = 7, + REG_ALARM_MINUTES_REG = 8, + REG_ALARM_HOURS_REG = 9, + REG_ALARM_DAYS_REG = 10, + REG_ALARM_MONTHS_REG = 11, + REG_ALARM_YEARS_REG = 12, + REG_RTC_CTRL_REG = 13, + REG_RTC_STATUS_REG = 14, + REG_RTC_INTERRUPTS_REG = 15, + REG_RTC_COMP_LSB_REG = 16, + REG_RTC_COMP_MSB_REG = 17, }; -struct i2c_smbus_alert_setup { - int irq; +struct twl_rtc { + struct device *dev; + struct rtc_device *rtc; + u8 *reg_map; + unsigned char rtc_irq_bits; + bool wake_enabled; + unsigned char irqstat; + enum twl_class class; }; -struct trace_event_data_offsets_smbus_write {}; +struct qup_i2c_block { + int count; + int pos; + int tx_tag_len; + int rx_tag_len; + int data_len; + int cur_blk_len; + int total_tx_len; + int total_rx_len; + int tx_fifo_data_pos; + int tx_fifo_free; + int rx_fifo_data_pos; + int fifo_available; + u32 tx_fifo_data; + u32 rx_fifo_data; + u8 *cur_data; + u8 *cur_tx_tags; + bool tx_tags_sent; + bool send_last_word; + bool rx_tags_fetched; + bool rx_bytes_read; + bool is_tx_blk_mode; + bool is_rx_blk_mode; + u8 tags[6]; +}; -struct trace_event_data_offsets_smbus_read {}; +struct qup_i2c_tag { + u8 *start; + dma_addr_t addr; +}; -struct trace_event_data_offsets_smbus_reply {}; +struct qup_i2c_bam { + struct qup_i2c_tag tag; + struct dma_chan *dma; + struct scatterlist *sg; + unsigned int sg_cnt; +}; -struct trace_event_data_offsets_smbus_result {}; +struct qup_i2c_dev { + struct device *dev; + void *base; + int irq; + struct clk *clk; + struct clk *pclk; + long: 32; + struct i2c_adapter adap; + int clk_ctl; + int out_fifo_sz; + int in_fifo_sz; + int out_blk_sz; + int in_blk_sz; + int blk_xfer_limit; + unsigned long one_byte_t; + unsigned long xfer_timeout; + struct qup_i2c_block blk; + struct i2c_msg *msg; + int pos; + u32 bus_err; + u32 qup_err; + bool is_last; + bool is_smbus_read; + u32 config_run; + bool is_dma; + bool use_dma; + unsigned int max_xfer_sg_len; + unsigned int tag_buf_pos; + unsigned int blk_mode_threshold; + struct dma_pool *dpool; + struct qup_i2c_tag start_tag; + struct qup_i2c_bam brx; + struct qup_i2c_bam btx; + struct completion xfer; + void (*write_tx_fifo)(struct qup_i2c_dev *); + void (*read_rx_fifo)(struct qup_i2c_dev *); + void (*write_rx_tags)(struct qup_i2c_dev *); + long: 32; +}; -enum { - POWER_SUPPLY_SCOPE_UNKNOWN = 0, - POWER_SUPPLY_SCOPE_SYSTEM = 1, - POWER_SUPPLY_SCOPE_DEVICE = 2, +struct cec_msg_entry { + struct list_head list; + struct cec_msg msg; }; -struct psy_am_i_supplied_data { - struct power_supply *psy; - unsigned int count; +struct cec_caps { + char driver[32]; + char name[32]; + __u32 available_log_addrs; + __u32 capabilities; + __u32 version; }; -struct psy_get_supplier_prop_data { - struct power_supply *psy; - enum power_supply_property psp; - union power_supply_propval *val; +struct gpio_poweroff { + struct gpio_desc *reset_gpio; + u32 timeout_ms; + u32 active_delay_ms; + u32 inactive_delay_ms; +}; + +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 prcmu_wdog_id { - PRCMU_WDOG_ALL = 0, - PRCMU_WDOG_CPU1 = 1, - PRCMU_WDOG_CPU2 = 2, +enum power_supply_charge_behaviour { + POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0, + POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1, + POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2, }; -struct hb_mc_settings { - int err_offset; - int int_offset; -}; +struct devfreq_cooling_power; -enum edac_mc_layer_type { - EDAC_MC_LAYER_BRANCH = 0, - EDAC_MC_LAYER_CHANNEL = 1, - EDAC_MC_LAYER_SLOT = 2, - EDAC_MC_LAYER_CHIP_SELECT = 3, - EDAC_MC_LAYER_ALL_MEM = 4, +struct devfreq_cooling_device { + struct thermal_cooling_device *cdev; + struct thermal_cooling_device_ops cooling_ops; + struct devfreq *devfreq; + unsigned long cooling_state; + u32 *freq_table; + size_t max_state; + struct devfreq_cooling_power *power_ops; + u32 res_util; + int capped_state; + struct dev_pm_qos_request req_max_freq; + struct em_perf_domain *em_pd; }; -enum scrub_type { - SCRUB_UNKNOWN = 0, - SCRUB_NONE = 1, - SCRUB_SW_PROG = 2, - SCRUB_SW_SRC = 3, - SCRUB_SW_PROG_SRC = 4, - SCRUB_SW_TUNABLE = 5, - SCRUB_HW_PROG = 6, - SCRUB_HW_SRC = 7, - SCRUB_HW_PROG_SRC = 8, - SCRUB_HW_TUNABLE = 9, +struct devfreq_cooling_power { + int (*get_real_power)(struct devfreq *, u32 *, unsigned long, unsigned long); }; -enum dev_type { - DEV_UNKNOWN = 0, - DEV_X1 = 1, - DEV_X2 = 2, - DEV_X4 = 3, - DEV_X8 = 4, - DEV_X16 = 5, - DEV_X32 = 6, - DEV_X64 = 7, +struct sama5d4_wdt { + struct watchdog_device wdd; + void *reg_base; + u32 mr; + u32 ir; + unsigned long last_ping; + bool need_irq; + bool sam9x60_support; }; -enum mem_type___2 { - MEM_EMPTY = 0, - MEM_RESERVED = 1, - MEM_UNKNOWN = 2, - MEM_FPM = 3, - MEM_EDO = 4, - MEM_BEDO = 5, - MEM_SDR = 6, - MEM_RDR = 7, - MEM_DDR = 8, - MEM_RDDR = 9, - MEM_RMBS = 10, - MEM_DDR2 = 11, - MEM_FB_DDR2 = 12, - MEM_RDDR2 = 13, - MEM_XDR = 14, - MEM_DDR3 = 15, - MEM_RDDR3 = 16, - MEM_LRDDR3 = 17, - MEM_LPDDR3 = 18, - MEM_DDR4 = 19, - MEM_RDDR4 = 20, - MEM_LRDDR4 = 21, - MEM_LPDDR4 = 22, - MEM_DDR5 = 23, - MEM_RDDR5 = 24, - MEM_LRDDR5 = 25, - MEM_NVDIMM = 26, - MEM_WIO2 = 27, - MEM_HBM2 = 28, +struct bcm2835_wdt { + void *base; + spinlock_t lock; }; -enum edac_type { - EDAC_UNKNOWN = 0, - EDAC_NONE = 1, - EDAC_RESERVED = 2, - EDAC_PARITY = 3, - EDAC_EC = 4, - EDAC_SECDED = 5, - EDAC_S2ECD2ED = 6, - EDAC_S4ECD4ED = 7, - EDAC_S8ECD8ED = 8, - EDAC_S16ECD16ED = 9, -}; +struct edac_device_ctl_info; -struct mcidev_sysfs_attribute; +struct ctl_info_attribute { + struct attribute attr; + ssize_t (*show)(struct edac_device_ctl_info *, char *); + ssize_t (*store)(struct edac_device_ctl_info *, const char *, size_t); +}; -struct edac_raw_error_desc { - char location[256]; - char label[296]; - long grain; - u16 error_count; - enum hw_event_mc_err_type type; - int top_layer; - int mid_layer; - int low_layer; - unsigned long page_frame_number; - unsigned long offset_in_page; - unsigned long syndrome; - const char *msg; - const char *other_detail; +struct edac_device_counter { + u32 ue_count; + u32 ce_count; }; -struct csrow_info; +struct edac_dev_sysfs_attribute; -struct edac_mc_layer; +struct edac_device_instance; -struct dimm_info; +struct edac_device_block; -struct mem_ctl_info { - struct device dev; - struct bus_type *bus; +struct edac_dev_sysfs_block_attribute; + +struct edac_device_ctl_info { struct list_head link; struct module *owner; - unsigned long mtype_cap; - unsigned long edac_ctl_cap; - unsigned long edac_cap; - unsigned long scrub_cap; - enum scrub_type scrub_mode; - int (*set_sdram_scrub_rate)(struct mem_ctl_info *, u32); - int (*get_sdram_scrub_rate)(struct mem_ctl_info *); - void (*edac_check)(struct mem_ctl_info *); - unsigned long (*ctl_page_to_phys)(struct mem_ctl_info *, unsigned long); - int mc_idx; - struct csrow_info **csrows; - unsigned int nr_csrows; - unsigned int num_cschannel; - unsigned int n_layers; - struct edac_mc_layer *layers; - bool csbased; - unsigned int tot_dimms; - struct dimm_info **dimms; - struct device *pdev; + int dev_idx; + int log_ue; + int log_ce; + int panic_on_ue; + unsigned int poll_msec; + unsigned long delay; + struct edac_dev_sysfs_attribute *sysfs_attributes; + struct bus_type *edac_subsys; + int op_state; + struct delayed_work work; + void (*edac_check)(struct edac_device_ctl_info *); + struct device *dev; const char *mod_name; const char *ctl_name; const char *dev_name; void *pvt_info; unsigned long start_time; - u32 ce_noinfo_count; - u32 ue_noinfo_count; - u32 ue_mc; - u32 ce_mc; - struct completion complete; - const struct mcidev_sysfs_attribute *mc_driver_sysfs_attributes; - struct delayed_work work; - struct edac_raw_error_desc error_desc; - int op_state; - struct dentry *debugfs; - u8 fake_inject_layer[3]; - bool fake_inject_ue; - u16 fake_inject_count; - long: 32; + struct completion removal_complete; + char name[32]; + u32 nr_instances; + struct edac_device_instance *instances; + struct edac_device_block *blocks; + struct edac_dev_sysfs_block_attribute *attribs; + struct edac_device_counter counters; + struct kobject kobj; }; -struct rank_info; - -struct csrow_info { - struct device dev; - unsigned long first_page; - unsigned long last_page; - unsigned long page_mask; - int csrow_idx; - u32 ue_count; - u32 ce_count; - struct mem_ctl_info *mci; - u32 nr_channels; - struct rank_info **channels; - long: 32; +struct edac_dev_sysfs_attribute { + struct attribute attr; + ssize_t (*show)(struct edac_device_ctl_info *, char *); + ssize_t (*store)(struct edac_device_ctl_info *, const char *, size_t); }; -struct rank_info { - int chan_idx; - struct csrow_info *csrow; - struct dimm_info *dimm; - u32 ce_count; +struct edac_device_instance { + struct edac_device_ctl_info *ctl; + char name[35]; + struct edac_device_counter counters; + u32 nr_blocks; + struct edac_device_block *blocks; + struct kobject kobj; }; -struct dimm_info { - struct device dev; - char label[32]; - unsigned int location[3]; - struct mem_ctl_info *mci; - unsigned int idx; - u32 grain; - enum dev_type dtype; - enum mem_type___2 mtype; - enum edac_type edac_mode; - u32 nr_pages; - unsigned int csrow; - unsigned int cschannel; - u16 smbios_handle; - u32 ce_count; - u32 ue_count; - long: 32; +struct edac_device_block { + struct edac_device_instance *instance; + char name[32]; + struct edac_device_counter counters; + int nr_attribs; + struct edac_dev_sysfs_block_attribute *block_attributes; + struct kobject kobj; }; -struct edac_mc_layer { - enum edac_mc_layer_type type; - unsigned int size; - bool is_virt_csrow; +struct edac_dev_sysfs_block_attribute { + struct attribute attr; + ssize_t (*show)(struct kobject *, struct attribute *, char *); + ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); + struct edac_device_block *block; + unsigned int value; }; -struct hb_mc_drvdata { - void *mc_err_base; - void *mc_int_base; +struct instance_attribute___2 { + struct attribute attr; + ssize_t (*show)(struct edac_device_instance *, char *); + ssize_t (*store)(struct edac_device_instance *, const char *, size_t); }; -enum mmc_busy_cmd { - MMC_BUSY_CMD6 = 0, - MMC_BUSY_ERASE = 1, - MMC_BUSY_HPI = 2, - MMC_BUSY_EXTR_SINGLE = 3, - MMC_BUSY_IO = 4, +struct private_data { + struct list_head node; + cpumask_var_t cpus; + struct device *cpu_dev; + struct cpufreq_frequency_table *freq_table; + bool have_static_opps; + int opp_token; }; -struct mmc_op_cond_busy_data { - struct mmc_host *host; - u32 ocr; - struct mmc_command *cmd; +struct cpufreq_dt_platform_data { + bool have_governor_per_policy; + unsigned int (*get_intermediate)(struct cpufreq_policy *, unsigned int); + int (*target_intermediate)(struct cpufreq_policy *, unsigned int); + int (*suspend)(struct cpufreq_policy *); + int (*resume)(struct cpufreq_policy *); }; -struct mmc_busy_data { - struct mmc_card *card; - bool retry_crc_err; - enum mmc_busy_cmd busy_cmd; +enum sh_mmcif_state { + STATE_IDLE___4 = 0, + STATE_REQUEST = 1, + STATE_IOS = 2, + STATE_TIMEOUT = 3, }; -enum ns2_led_modes { - NS_V2_LED_OFF = 0, - NS_V2_LED_ON = 1, - NS_V2_LED_SATA = 2, +enum sh_mmcif_wait_for { + MMCIF_WAIT_FOR_REQUEST = 0, + MMCIF_WAIT_FOR_CMD = 1, + MMCIF_WAIT_FOR_MREAD = 2, + MMCIF_WAIT_FOR_MWRITE = 3, + MMCIF_WAIT_FOR_READ = 4, + MMCIF_WAIT_FOR_WRITE = 5, + MMCIF_WAIT_FOR_READ_END = 6, + MMCIF_WAIT_FOR_WRITE_END = 7, + MMCIF_WAIT_FOR_STOP = 8, }; -struct ns2_led_modval; - -struct ns2_led { - struct led_classdev cdev; - struct gpio_desc *cmd; - struct gpio_desc *slow; - bool can_sleep; - unsigned char sata; - rwlock_t rw_lock; - int num_modes; - struct ns2_led_modval *modval; +struct sh_mmcif_host { + struct mmc_host *mmc; + struct mmc_request *mrq; + struct platform_device *pd; + struct clk *clk; + int bus_width; + unsigned char timing; + bool sd_error; + bool dying; + long timeout; + void *addr; + u32 *pio_ptr; + spinlock_t lock; + enum sh_mmcif_state state; + enum sh_mmcif_wait_for wait_for; + struct delayed_work timeout_work; + size_t blocksize; + int sg_idx; + int sg_blkidx; + bool power; + bool ccs_enable; + bool clk_ctrl2_enable; + struct mutex thread_lock; + u32 clkdiv_map; + struct dma_chan *chan_rx; + struct dma_chan *chan_tx; + struct completion dma_complete; + bool dma_active; }; -struct ns2_led_modval { - u32 mode; - u32 cmd_level; - u32 slow_level; +struct sh_mmcif_plat_data { + unsigned int slave_id_tx; + unsigned int slave_id_rx; + u8 sup_pclk; + unsigned long caps; + u32 ocr; }; -enum scmi_base_protocol_cmd { - BASE_DISCOVER_VENDOR = 3, - BASE_DISCOVER_SUB_VENDOR = 4, - BASE_DISCOVER_IMPLEMENT_VERSION = 5, - BASE_DISCOVER_LIST_PROTOCOLS = 6, - BASE_DISCOVER_AGENT = 7, - BASE_NOTIFY_ERRORS = 8, - BASE_SET_DEVICE_PERMISSIONS = 9, - BASE_SET_PROTOCOL_PERMISSIONS = 10, - BASE_RESET_AGENT_CONFIGURATION = 11, +struct brcmstb_match_priv { + void (*hs400es)(struct mmc_host *, struct mmc_ios *); + struct sdhci_ops *ops; + const unsigned int flags; }; -struct scmi_msg_resp_base_attributes { - u8 num_protocols; - u8 num_agents; - __le16 reserved; +struct sdhci_brcmstb_priv { + void *cfg_regs; + unsigned int flags; + struct clk *base_clk; + u32 base_freq_hz; }; -struct scmi_msg_resp_base_discover_agent { - __le32 agent_id; - u8 name[16]; +struct tee_bnxt_fw_private { + struct device *dev; + struct tee_context *ctx; + u32 session_id; + struct tee_shm *fw_shm_pool; }; -struct scmi_msg_base_error_notify { - __le32 event_control; +enum ta_cmd { + TA_CMD_BNXT_FASTBOOT = 0, + TA_CMD_BNXT_COPY_COREDUMP = 3, }; -struct scmi_base_error_notify_payld { - __le32 agent_id; - __le32 error_status; - __le64 msg_reports[1024]; +enum { + USER_CLOCKSOURCE = 0, + USER_CLOCKEVENT = 1, + USER_NR = 2, }; -struct scmi_base_error_report { - ktime_t timestamp; - unsigned int agent_id; - bool fatal; - unsigned int cmd_count; +struct em_sti_priv { + void *base; + struct clk *clk; + struct platform_device *pdev; + unsigned int active[2]; + unsigned long rate; + raw_spinlock_t lock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct clock_event_device ced; + struct clocksource cs; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; - unsigned long long reports[0]; }; -enum tcpa_event_types { - PREBOOT = 0, - POST_CODE = 1, - UNUSED = 2, - NO_ACTION = 3, - SEPARATOR = 4, - ACTION = 5, - EVENT_TAG = 6, - SCRTM_CONTENTS = 7, - SCRTM_VERSION = 8, - CPU_MICROCODE = 9, - PLATFORM_CONFIG_FLAGS = 10, - TABLE_OF_DEVICES = 11, - COMPACT_HASH = 12, - IPL = 13, - IPL_PARTITION_DATA = 14, - NONHOST_CODE = 15, - NONHOST_CONFIG = 16, - NONHOST_INFO = 17, +struct hid_device_id { + __u16 bus; + __u16 group; + __u32 vendor; + __u32 product; + kernel_ulong_t driver_data; }; -struct tpm_digest { - u16 alg_id; - u8 digest[64]; +enum hid_type { + HID_TYPE_OTHER = 0, + HID_TYPE_USBMOUSE = 1, + HID_TYPE_USBNONE = 2, }; -struct tcg_pcr_event2_head { - u32 pcr_idx; - u32 event_type; - u32 count; - struct tpm_digest digests[0]; +enum hid_report_type { + HID_INPUT_REPORT = 0, + HID_OUTPUT_REPORT = 1, + HID_FEATURE_REPORT = 2, + HID_REPORT_TYPES = 3, }; -struct tcg_efi_specid_event_algs { - u16 alg_id; - u16 digest_size; +struct quirks_list_struct { + struct hid_device_id hid_bl_item; + struct list_head node; }; -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 hid_report; -struct tcg_event_field { - u32 event_size; - u8 event[0]; +struct hid_report_enum { + unsigned int numbered; + struct list_head report_list; + struct hid_report *report_id_hash[256]; }; -struct tcg_pcr_event { - u32 pcr_idx; - u32 event_type; - u8 digest[20]; - u32 event_size; - u8 event[0]; +struct semaphore { + raw_spinlock_t lock; + unsigned int count; + struct list_head wait_list; }; -struct efi_tcg2_final_events_table { - u64 version; - u64 nr_events; - u8 events[0]; -}; +struct hid_bpf_prog_list; -struct linux_efi_tpm_eventlog { - u32 size; - u32 final_events_preboot_size; - u8 version; - u8 log[0]; +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; }; -typedef struct { - u64 signature; - u32 revision; - u32 headersize; - u32 crc32; - u32 reserved; -} efi_table_hdr_t; - -typedef struct { - efi_guid_t guid; - u32 table; -} efi_config_table_32_t; +struct hid_collection; -typedef union { - struct { - efi_guid_t guid; - void *table; - }; - efi_config_table_32_t mixed_mode; -} efi_config_table_t; +struct hid_driver; -union efi_simple_text_input_protocol; +struct hid_ll_driver; -typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t; +struct hid_field; -union efi_simple_text_output_protocol; +struct hid_usage; -typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t; +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; + long: 32; + struct device dev; + struct hid_driver *driver; + void *devres_group_id; + const struct hid_ll_driver *ll_driver; + struct mutex ll_open_lock; + unsigned int ll_open_count; + unsigned long status; + unsigned int claimed; + unsigned int quirks; + unsigned int initial_quirks; + bool io_started; + struct list_head inputs; + void *hiddev; + void *hidraw; + char name[128]; + char phys[64]; + char uniq[64]; + void *driver_data; + int (*ff_init)(struct hid_device *); + int (*hiddev_connect)(struct hid_device *, unsigned int); + void (*hiddev_disconnect)(struct hid_device *); + void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); + void (*hiddev_report_event)(struct hid_device *, struct hid_report *); + unsigned short debug; + struct dentry *debug_dir; + struct dentry *debug_rdesc; + struct dentry *debug_events; + struct list_head debug_list; + spinlock_t debug_list_lock; + wait_queue_head_t debug_wait; + struct kref ref; + unsigned int id; + struct hid_bpf bpf; +}; -typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *); +struct hid_collection { + int parent_idx; + unsigned int type; + unsigned int usage; + unsigned int level; +}; -typedef efi_status_t efi_set_time_t(efi_time_t *); +struct hid_field_entry; -typedef efi_status_t efi_get_wakeup_time_t(efi_bool_t *, efi_bool_t *, efi_time_t *); +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; +}; -typedef efi_status_t efi_set_wakeup_time_t(efi_bool_t, efi_time_t *); +struct hid_input; -typedef efi_status_t efi_set_virtual_address_map_t(unsigned long, unsigned long, u32, efi_memory_desc_t *); +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; +}; -typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *); +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; +}; -typedef efi_status_t efi_get_next_variable_t(unsigned long *, efi_char16_t *, efi_guid_t *); +struct hid_input { + struct list_head list; + struct hid_report *report; + struct input_dev *input; + const char *name; + struct list_head reports; + unsigned int application; + bool registered; +}; -typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *); +struct hid_field_entry { + struct list_head list; + struct hid_field *field; + unsigned int index; + __s32 priority; +}; -typedef efi_status_t efi_get_next_high_mono_count_t(u32 *); +struct hid_report_id; -typedef void efi_reset_system_t(int, efi_status_t, unsigned long, efi_char16_t *); +struct hid_usage_id; -typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, unsigned long, unsigned long); +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; +}; -typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, unsigned long, u64 *, int *); +struct hid_report_id { + __u32 report_type; +}; -typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *); +struct hid_usage_id { + __u32 usage_hid; + __u32 usage_type; + __u32 usage_code; +}; -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; +struct hid_ll_driver { + int (*start)(struct hid_device *); + void (*stop)(struct hid_device *); + int (*open)(struct hid_device *); + void (*close)(struct hid_device *); + int (*power)(struct hid_device *, int); + int (*parse)(struct hid_device *); + void (*request)(struct hid_device *, struct hid_report *, int); + int (*wait)(struct hid_device *); + int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int); + int (*output_report)(struct hid_device *, __u8 *, size_t); + int (*idle)(struct hid_device *, int, int, int); + bool (*may_wakeup)(struct hid_device *); + unsigned int max_buffer_size; +}; -typedef union { - struct { - efi_table_hdr_t hdr; - 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_set_virtual_address_map_t *set_virtual_address_map; - void *convert_pointer; - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_get_next_high_mono_count_t *get_next_high_mono_count; - efi_reset_system_t *reset_system; - efi_update_capsule_t *update_capsule; - efi_query_capsule_caps_t *query_capsule_caps; - efi_query_variable_info_t *query_variable_info; - }; - efi_runtime_services_32_t mixed_mode; -} efi_runtime_services_t; +struct hid_bpf_prog_list { + u16 prog_idx[64]; + u8 prog_cnt; +}; -union efi_boot_services; +struct cros_ec_command; -typedef union efi_boot_services efi_boot_services_t; +typedef void (*btf_trace_cros_ec_request_start)(void *, struct cros_ec_command *); -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; +struct cros_ec_command { + uint32_t version; + uint32_t command; + uint32_t outsize; + uint32_t insize; + uint32_t result; + uint8_t data[0]; +}; -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; +typedef void (*btf_trace_cros_ec_request_done)(void *, struct cros_ec_command *, int); -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 trace_event_raw_cros_ec_request_start { + struct trace_entry ent; + uint32_t version; + uint32_t offset; + uint32_t command; + uint32_t outsize; + uint32_t insize; + char __data[0]; +}; -enum sh_tmu_model { - SH_TMU = 0, - SH_TMU_SH3 = 1, +struct trace_event_raw_cros_ec_request_done { + struct trace_entry ent; + uint32_t version; + uint32_t offset; + uint32_t command; + uint32_t outsize; + uint32_t insize; + uint32_t result; + int retval; + char __data[0]; }; -struct sh_tmu_device; +struct trace_event_data_offsets_cros_ec_request_start {}; -struct sh_tmu_channel { - struct sh_tmu_device *tmu; - unsigned int index; +struct trace_event_data_offsets_cros_ec_request_done {}; + +struct vf610_ocotp { void *base; - int irq; - unsigned long periodic; + struct clk *clk; + struct device *dev; + struct nvmem_device *nvmem; + int timing; +}; + +struct optee_msg_arg { + u32 cmd; + u32 func; + u32 session; + u32 cancel_id; + u32 pad; + u32 ret; + u32 ret_origin; + u32 num_params; + struct optee_msg_param params[0]; +}; + +struct sd_flow_limit; + +struct softnet_data { + struct list_head poll_list; + struct sk_buff_head process_queue; + unsigned int processed; + unsigned int time_squeeze; + struct softnet_data *rps_ipi_list; + bool in_net_rx_action; + bool in_napi_threaded_poll; + struct sd_flow_limit __attribute__((btf_type_tag("rcu"))) *flow_limit; + struct Qdisc *output_queue; + struct Qdisc **output_queue_tailp; + struct sk_buff *completion_queue; + struct { + u16 recursion; + u8 more; + u8 skip_txqueue; + } xmit; long: 32; + unsigned int input_queue_head; long: 32; long: 32; long: 32; @@ -102324,85 +105630,20 @@ struct sh_tmu_channel { long: 32; long: 32; long: 32; - struct clock_event_device ced; - struct clocksource cs; - bool cs_enabled; - unsigned int enable_count; long: 32; long: 32; long: 32; long: 32; -}; - -struct sh_tmu_device { - struct platform_device *pdev; - void *mapbase; - struct clk *clk; - unsigned long rate; - enum sh_tmu_model model; - raw_spinlock_t lock; - struct sh_tmu_channel *channels; - unsigned int num_channels; - bool has_clockevent; - bool has_clocksource; -}; - -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 qfprom_soc_data { - u32 accel_value; - u32 qfprom_blow_timer_value; - u32 qfprom_blow_set_freq; - int qfprom_blow_uV; -}; - -struct qfprom_soc_compatible_data { - const struct nvmem_keepout *keepout; - unsigned int nkeepout; -}; - -struct qfprom_priv { - void *qfpraw; - void *qfpconf; - void *qfpcorrected; - void *qfpsecurity; - struct device *dev; - struct clk *secclk; - struct regulator *vcc; - const struct qfprom_soc_data *soc_data; -}; - -struct qfprom_touched_values { - unsigned long clk_rate; - u32 accel_val; - u32 timer_val; -}; - -struct rps_sock_flow_table { - u32 mask; long: 32; + 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; + long: 32; + struct napi_struct backlog; long: 32; long: 32; long: 32; @@ -102413,3943 +105654,4570 @@ struct rps_sock_flow_table { long: 32; long: 32; long: 32; + spinlock_t defer_lock; + int defer_count; + int defer_ipi_scheduled; + struct sk_buff *defer_list; + call_single_data_t defer_csd; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; long: 32; long: 32; long: 32; - u32 ents[0]; -}; - -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 connect_timeout_data { - unsigned long connect_timeout; - unsigned long reconnect_timeout; -}; - -struct mxc_extra_irq { - int (*set_irq_fiq)(unsigned int, unsigned int); }; -enum ulp_cpu_pwr_mode { - ULP_PM_HSRUN = 0, - ULP_PM_RUN = 1, - ULP_PM_WAIT = 2, - ULP_PM_STOP = 3, - ULP_PM_VLPS = 4, - ULP_PM_VLLS = 5, +struct sd_flow_limit { + u64 count; + unsigned int num_buckets; + unsigned int history_head; + u16 history[128]; + u8 buckets[0]; }; -struct omap_prcm_irq; - -struct omap_prcm_irq_setup { - u16 ack; - u16 mask; - u16 pm_ctrl; - u8 nr_regs; - u8 nr_irqs; - const struct omap_prcm_irq *irqs; - int irq; - void (*read_pending_irqs)(unsigned long *); - void (*ocp_barrier)(); - void (*save_and_clear_irqen)(u32 *); - void (*restore_irqen)(u32 *); - void (*reconfigure_io_chain)(); - u32 *saved_mask; - u32 *priority_mask; - int base_irq; - bool suspended; - bool suspend_save_flag; +enum { + BPF_F_INGRESS = 1, }; -struct omap_prcm_irq { - const char *name; - unsigned int offset; - bool priority; +enum sk_action { + SK_DROP = 0, + SK_PASS = 1, }; enum { - TI_CLKM_CM = 0, - TI_CLKM_CM2 = 1, - TI_CLKM_PRM = 2, - TI_CLKM_SCRM = 3, - TI_CLKM_CTRL = 4, - TI_CLKM_CTRL_AUX = 5, - TI_CLKM_PLLSS = 6, - CLK_MAX_MEMMAPS = 7, + 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, }; -typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int); - -typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); - -typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *); - -typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t); - -typedef void (*btf_trace_sched_waking)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int); - -typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int); - -typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *); - -typedef void (*btf_trace_sched_process_wait)(void *, struct pid *); - -typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *); - -typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *); - -typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64, 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 u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); -typedef void (*btf_trace_sched_stick_numa)(void *, struct task_struct *, int, struct task_struct *, int); +typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64); -typedef void (*btf_trace_sched_swap_numa)(void *, struct task_struct *, int, struct task_struct *, int); +typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64); -typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int); +typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); -typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *); +typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64); -typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *); +typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); -typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *); +struct bpf_stab { + struct bpf_map map; + struct sock **sks; + struct sk_psock_progs progs; + spinlock_t lock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; -typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *); +struct bpf_shtab_bucket; -typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *); +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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; -typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *); +struct bpf_shtab_bucket { + struct hlist_head head; + spinlock_t lock; +}; -typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *); +struct sk_psock_link { + struct list_head list; + struct bpf_map *map; + void *link_raw; +}; -typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool); +struct bpf_shtab_elem { + struct callback_head rcu; + u32 hash; + struct sock *sk; + struct hlist_node node; + u8 key[0]; +}; -typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *); +struct sock_map_seq_info { + struct bpf_map *map; + struct sock *sk; + u32 index; +}; -typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *); +struct bpf_iter__sockmap { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + struct sock *sk; + }; +}; -typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int); +struct sock_hash_seq_info { + struct bpf_map *map; + struct bpf_shtab *htab; + u32 bucket_id; +}; -typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *); +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, +}; -typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, unsigned long, void *); +struct tsinfo_reply_data { + struct ethnl_reply_data base; + struct ethtool_ts_info ts_info; +}; -typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, unsigned long, void *); +struct tcp_seq_afinfo { + sa_family_t family; +}; -typedef void (*btf_trace_ipi_entry)(void *, const char *); +enum tcp_seq_states { + TCP_SEQ_STATE_LISTENING = 0, + TCP_SEQ_STATE_ESTABLISHED = 1, +}; -typedef void (*btf_trace_ipi_exit)(void *, const char *); +struct tcp_ao_key; -struct kernel_stat { - unsigned long irqs_sum; - unsigned int softirqs[10]; -}; +struct tcp_md5sig_key; -enum rseq_event_mask_bits { - RSEQ_EVENT_PREEMPT_BIT = 0, - RSEQ_EVENT_SIGNAL_BIT = 1, - RSEQ_EVENT_MIGRATE_BIT = 2, +struct tcp_key { + union { + struct { + struct tcp_ao_key *ao_key; + char *traffic_key; + u32 sne; + u8 rcv_next; + }; + struct tcp_md5sig_key *md5_key; + }; + enum { + TCP_KEY_NONE = 0, + TCP_KEY_MD5 = 1, + TCP_KEY_AO = 2, + } type; }; -enum { - cpuset = 0, - possible = 1, - fail = 2, +union tcp_ao_addr { + struct in_addr a4; + struct in6_addr a6; }; -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, +struct tcp_ao_key { + struct hlist_node node; + union tcp_ao_addr addr; + u8 key[80]; + unsigned int tcp_sigpool_id; + unsigned int digest_size; + int l3index; + u8 prefixlen; + u8 family; + u8 keylen; + u8 keyflags; + u8 sndid; + u8 rcvid; + u8 maclen; + struct callback_head rcu; + long: 32; + atomic64_t pkt_good; + atomic64_t pkt_bad; + u8 traffic_keys[0]; }; -union cpumask_rcuhead { - cpumask_t cpumask; +struct tcp_md5sig_key { + struct hlist_node node; + u8 keylen; + u8 family; + u8 prefixlen; + u8 flags; + union tcp_ao_addr addr; + int l3index; + u8 key[80]; struct callback_head rcu; }; -struct sched_param { - int sched_priority; +struct tcp_ao_hdr { + u8 kind; + u8 length; + u8 keyid; + u8 rnext_keyid; }; -struct sched_attr { - __u32 size; - __u32 sched_policy; - __u64 sched_flags; - __s32 sched_nice; - __u32 sched_priority; - __u64 sched_runtime; - __u64 sched_deadline; - __u64 sched_period; - __u32 sched_util_min; - __u32 sched_util_max; +struct ip_reply_arg { + struct kvec iov[1]; + int flags; + __wsum csum; + int csumoffset; + int bound_dev_if; + u8 tos; + kuid_t uid; }; -struct trace_event_raw_sched_kthread_stop { - struct trace_entry ent; - char comm[16]; - pid_t pid; - char __data[0]; -}; +typedef u32 inet_ehashfn_t(const struct net *, const __be32, const __u16, const __be32, const __be16); -struct trace_event_raw_sched_kthread_stop_ret { - struct trace_entry ent; - int ret; - char __data[0]; +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 trace_event_raw_sched_kthread_work_queue_work { - struct trace_entry ent; - void *work; - void *function; - void *worker; - char __data[0]; +struct bpf_iter__tcp { + union { + struct bpf_iter_meta *meta; + }; + union { + struct sock_common *sk_common; + }; + uid_t uid; + long: 32; }; -struct trace_event_raw_sched_kthread_work_execute_start { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; +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; + long: 32; }; -struct trace_event_raw_sched_kthread_work_execute_end { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; +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 *); }; -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 devlink_rel { + u32 index; + refcount_t refcount; + u32 devlink_index; + struct { + u32 devlink_index; + u32 obj_index; + devlink_rel_notify_cb_t *notify_cb; + devlink_rel_cleanup_cb_t *cleanup_cb; + struct work_struct notify_work; + } nested_in; }; -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]; -}; +typedef void (*btf_trace_devlink_hwmsg)(void *, const struct devlink *, bool, unsigned long, const u8 *, size_t); -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]; -}; +typedef void (*btf_trace_devlink_hwerr)(void *, const struct devlink *, int, const char *); -struct trace_event_raw_sched_process_template { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int prio; - char __data[0]; -}; +typedef void (*btf_trace_devlink_health_report)(void *, const struct devlink *, const char *, const char *); -struct trace_event_raw_sched_process_wait { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int prio; - char __data[0]; -}; +typedef void (*btf_trace_devlink_health_recover_aborted)(void *, const struct devlink *, const char *, bool, u64); -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]; -}; +typedef void (*btf_trace_devlink_health_reporter_state_update)(void *, const struct devlink *, const char *, bool); -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]; -}; +typedef void (*btf_trace_devlink_trap_report)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *); -struct trace_event_raw_sched_stat_runtime { +struct trace_event_raw_devlink_hwmsg { struct trace_entry ent; - char comm[16]; - pid_t pid; - long: 32; - u64 runtime; - u64 vruntime; + 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_sched_pi_setprio { +struct trace_event_raw_devlink_hwerr { struct trace_entry ent; - char comm[16]; - pid_t pid; - int oldprio; - int newprio; + 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_sched_move_numa { +struct trace_event_raw_devlink_health_report { 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; + 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_sched_numa_pair_template { +struct trace_event_raw_devlink_health_recover_aborted { 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; + u32 __data_loc_bus_name; + u32 __data_loc_dev_name; + u32 __data_loc_driver_name; + u32 __data_loc_reporter_name; + bool health_state; + long: 32; + u64 time_since_last_recover; char __data[0]; }; -struct trace_event_raw_sched_wake_idle_without_ipi { +struct trace_event_raw_devlink_health_reporter_state_update { struct trace_entry ent; - int cpu; + 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_ipi_raise { +struct trace_event_raw_devlink_trap_report { struct trace_entry ent; - u32 __data_loc_target_cpus; - const char *reason; + 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 trace_event_raw_ipi_send_cpu { - struct trace_entry ent; - unsigned int cpu; - void *callsite; - void *callback; - char __data[0]; +struct trace_event_data_offsets_devlink_hwmsg { + u32 bus_name; + u32 dev_name; + u32 driver_name; + u32 buf; }; -struct trace_event_raw_ipi_send_cpumask { - struct trace_entry ent; - u32 __data_loc_cpumask; - void *callsite; - void *callback; - char __data[0]; +struct trace_event_data_offsets_devlink_hwerr { + u32 bus_name; + u32 dev_name; + u32 driver_name; + u32 msg; }; -struct trace_event_raw_ipi_handler { - struct trace_entry ent; - const char *reason; - char __data[0]; +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_sched_process_exec { - u32 filename; +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_ipi_raise { - u32 target_cpus; +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_ipi_send_cpumask { - u32 cpumask; +struct trace_event_data_offsets_devlink_trap_report { + u32 bus_name; + u32 dev_name; + u32 driver_name; + u32 trap_name; + u32 trap_group_name; }; -struct rt_bandwidth { - raw_spinlock_t rt_runtime_lock; - long: 32; - ktime_t rt_period; - u64 rt_runtime; - struct hrtimer rt_period_timer; - unsigned int rt_period_active; - long: 32; +struct compress_format { + unsigned char magic[2]; + const char *name; + decompress_fn decompressor; }; -struct set_affinity_pending; - -struct migration_arg { - struct task_struct *task; - int dest_cpu; - struct set_affinity_pending *pending; +struct group_data { + int limit[21]; + int base[20]; + int permute[258]; + int minLen; + int maxLen; }; -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 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 trace_event_data_offsets_sched_kthread_stop {}; - -struct trace_event_data_offsets_sched_kthread_stop_ret {}; - -struct trace_event_data_offsets_sched_kthread_work_queue_work {}; - -struct trace_event_data_offsets_sched_kthread_work_execute_start {}; - -struct trace_event_data_offsets_sched_kthread_work_execute_end {}; - -struct trace_event_data_offsets_sched_wakeup_template {}; - -struct trace_event_data_offsets_sched_switch {}; - -struct trace_event_data_offsets_sched_migrate_task {}; - -struct trace_event_data_offsets_sched_process_template {}; - -struct trace_event_data_offsets_sched_process_wait {}; - -struct trace_event_data_offsets_sched_process_fork {}; - -struct trace_event_data_offsets_sched_stat_runtime {}; - -struct trace_event_data_offsets_sched_pi_setprio {}; - -struct trace_event_data_offsets_sched_move_numa {}; - -struct trace_event_data_offsets_sched_numa_pair_template {}; - -struct trace_event_data_offsets_sched_wake_idle_without_ipi {}; +typedef ZSTD_frameHeader zstd_frame_header; -struct trace_event_data_offsets_ipi_send_cpu {}; +typedef ZSTD_DStream zstd_dstream; -struct trace_event_data_offsets_ipi_handler {}; +typedef ZSTD_ErrorCode zstd_error_code; -struct bpf_empty_prog_array { - struct bpf_prog_array hdr; - struct bpf_prog *null_prog; +struct user_vfp { + unsigned long long fpregs[32]; + unsigned long fpscr; long: 32; }; -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); +struct user_vfp_exc { + unsigned long fpexc; + unsigned long fpinst; + unsigned long fpinst2; +}; -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); +struct frame_tail { + struct frame_tail __attribute__((btf_type_tag("user"))) *fp; + unsigned long sp; + unsigned long lr; +}; -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); +enum decode_type { + DECODE_TYPE_END = 0, + DECODE_TYPE_TABLE = 1, + DECODE_TYPE_CUSTOM = 2, + DECODE_TYPE_SIMULATE = 3, + DECODE_TYPE_EMULATE = 4, + DECODE_TYPE_OR = 5, + DECODE_TYPE_REJECT = 6, + NUM_DECODE_TYPES = 7, +}; -struct xdp_cpumap_stats; +enum decode_reg_type { + REG_TYPE_NONE = 0, + REG_TYPE_ANY = 1, + REG_TYPE_SAMEAS16 = 2, + REG_TYPE_SP = 3, + REG_TYPE_PC = 4, + REG_TYPE_NOSP = 5, + REG_TYPE_NOSPPC = 6, + REG_TYPE_NOPC = 7, + REG_TYPE_NOPCWB = 8, + REG_TYPE_NOPCX = 9, + REG_TYPE_NOSPPCX = 10, + REG_TYPE_0 = 0, +}; -typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); +struct decode_table { + struct decode_header header; + union decode_item table; +}; -struct xdp_cpumap_stats { - unsigned int redirect; - unsigned int pass; - unsigned int drop; +struct decode_custom { + struct decode_header header; + union decode_item decoder; }; -typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int); +struct decode_simulate { + struct decode_header header; + union decode_item handler; +}; -typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int); +struct decode_emulate { + struct decode_header header; + union decode_item handler; +}; -struct xdp_mem_allocator; +enum { + FW_DO_IDLE_SLEEP = 0, + FW_DO_IDLE_AFTR = 1, +}; -typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *); +struct l2x0_regs { + unsigned long phy_base; + unsigned long aux_ctrl; + unsigned long tag_latency; + unsigned long data_latency; + unsigned long filter_start; + unsigned long filter_end; + unsigned long prefetch_ctrl; + unsigned long pwr_ctrl; + unsigned long ctrl; + unsigned long aux2_ctrl; +}; -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 pcs_pdata { + int irq; + void (*rearm)(); }; -typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *); +struct omap_sr_nvalue_table; -typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *); +struct omap_sr_data { + const char *name; + int ip_type; + u32 senp_mod; + u32 senn_mod; + u32 err_weight; + u32 err_maxlimit; + u32 accum_data; + u32 senn_avgweight; + u32 senp_avgweight; + int nvalue_count; + struct omap_sr_nvalue_table *nvalue_table; + struct voltagedomain *voltdm; +}; -struct rnd_state { - __u32 s1; - __u32 s2; - __u32 s3; - __u32 s4; +struct omap_sr_nvalue_table { + u32 efuse_offs; + u32 nvalue; + u32 errminlimit; + unsigned long volt_nominal; }; -struct bpf_prog_dummy { - struct bpf_prog prog; +struct pdata_init { + const char *compatible; + void (*fn)(); }; -enum bpf_text_poke_type { - BPF_MOD_CALL = 0, - BPF_MOD_JUMP = 1, +struct emac_platform_data { + char mac_addr[6]; + u32 ctrl_reg_offset; + u32 ctrl_mod_reg_offset; + u32 ctrl_ram_offset; + u32 hw_ram_addr; + u32 ctrl_ram_size; + const char *phy_id; + u8 rmii_en; + u8 version; + bool no_bd_ram; + void (*interrupt_enable)(); + void (*interrupt_disable)(); }; -typedef u64 (*btf_bpf_user_rnd_u32)(); +struct ti_sysc_cookie; -typedef u64 (*btf_bpf_get_raw_cpu_id)(); +struct ti_sysc_module_data; -struct trace_event_raw_xdp_exception { - struct trace_entry ent; - int prog_id; - u32 act; - int ifindex; - char __data[0]; +struct ti_sysc_platform_data { + struct of_dev_auxdata *auxdata; + bool (*soc_type_gp)(); + int (*init_clockdomain)(struct device *, struct clk *, struct clk *, struct ti_sysc_cookie *); + void (*clkdm_deny_idle)(struct device *, const struct ti_sysc_cookie *); + void (*clkdm_allow_idle)(struct device *, const struct ti_sysc_cookie *); + int (*init_module)(struct device *, const struct ti_sysc_module_data *, struct ti_sysc_cookie *); + int (*enable_module)(struct device *, const struct ti_sysc_cookie *); + int (*idle_module)(struct device *, const struct ti_sysc_cookie *); + int (*shutdown_module)(struct device *, const struct ti_sysc_cookie *); }; -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 ti_sysc_cookie { + void *data; + void *clkdm; }; -struct _bpf_dtab_netdev { - struct net_device *dev; +struct sysc_capabilities; + +struct sysc_config; + +struct ti_sysc_module_data { + const char *name; + long: 32; + u64 module_pa; + u32 module_size; + int *offsets; + int nr_offsets; + const struct sysc_capabilities *cap; + struct sysc_config *cfg; + long: 32; }; -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]; +enum ti_sysc_module_type { + TI_SYSC_OMAP2 = 0, + TI_SYSC_OMAP2_TIMER = 1, + TI_SYSC_OMAP3_SHAM = 2, + TI_SYSC_OMAP3_AES = 3, + TI_SYSC_OMAP4 = 4, + TI_SYSC_OMAP4_TIMER = 5, + TI_SYSC_OMAP4_SIMPLE = 6, + TI_SYSC_OMAP34XX_SR = 7, + TI_SYSC_OMAP36XX_SR = 8, + TI_SYSC_OMAP4_SR = 9, + TI_SYSC_OMAP4_MCASP = 10, + TI_SYSC_OMAP4_USB_HOST_FS = 11, + TI_SYSC_DRA7_MCAN = 12, + TI_SYSC_PRUSS = 13, }; -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 sysc_capabilities { + const enum ti_sysc_module_type type; + const u32 sysc_mask; + const struct sysc_regbits *regbits; + const u32 mod_quirks; }; -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 sysc_config { + u32 sysc_val; + u32 syss_mask; + u8 midlemodes; + u8 sidlemodes; + u8 srst_udelay; + u32 quirks; }; -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 ti_prm_platform_data { + void (*clkdm_deny_idle)(struct clockdomain *); + void (*clkdm_allow_idle)(struct clockdomain *); + struct clockdomain * (*clkdm_lookup)(const char *); }; -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 gpiod_lookup { + const char *key; + u16 chip_hwnum; + const char *con_id; + unsigned int idx; + unsigned long flags; }; -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 gpiod_lookup_table { + struct list_head list; + const char *dev_id; + struct gpiod_lookup table[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 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; + long: 32; }; -struct trace_event_data_offsets_xdp_exception {}; +typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *); -struct trace_event_data_offsets_xdp_bulk_tx {}; +typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int); -struct trace_event_data_offsets_xdp_redirect_template {}; +typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); -struct trace_event_data_offsets_xdp_cpumap_kthread {}; +typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *); -struct trace_event_data_offsets_xdp_cpumap_enqueue {}; +typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t); -struct trace_event_data_offsets_xdp_devmap_xmit {}; +typedef void (*btf_trace_sched_waking)(void *, struct task_struct *); -struct trace_event_data_offsets_mem_disconnect {}; +typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *); -struct trace_event_data_offsets_mem_connect {}; +typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *); -struct trace_event_data_offsets_mem_return_failed {}; +typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int); -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, -}; +typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int); -typedef struct { - u64 val; -} pfn_t; +typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *); -typedef unsigned int pgtbl_mod_mask; +typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *); -typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *); +typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *); -typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *); +typedef void (*btf_trace_sched_process_wait)(void *, struct pid *); -typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int); +typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *); -typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int); +typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *); -typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int); +typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64, u64); -typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *); +typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, struct task_struct *); -typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *); +typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int); -struct wb_writeback_work; +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_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *); +typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *); -struct wb_completion; +typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *); -struct wb_writeback_work { - long nr_pages; - struct super_block *sb; - enum writeback_sync_modes sync_mode; - unsigned int tagged_writepages: 1; - unsigned int for_kupdate: 1; - unsigned int range_cyclic: 1; - unsigned int for_background: 1; - unsigned int for_sync: 1; - unsigned int auto_free: 1; - enum wb_reason reason; - struct list_head list; - struct wb_completion *done; -}; +typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *); -struct wb_completion { - atomic_t cnt; - wait_queue_head_t *waitq; -}; +typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *); -typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *); +typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *); -typedef void (*btf_trace_writeback_start)(void *, struct bdi_writeback *, struct wb_writeback_work *); +typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *); -typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *); +typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *); -typedef void (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *); +typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool); -typedef void (*btf_trace_writeback_pages_written)(void *, long); +typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *); -typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *); +typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *); -typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *); +typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int); -typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *); +typedef void (*btf_trace_sched_compute_energy_tp)(void *, struct task_struct *, int, unsigned long, unsigned long, unsigned long); -typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, unsigned long, int); +typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *); -typedef void (*btf_trace_global_dirty_state)(void *, unsigned long, unsigned long); +typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, unsigned long, void *); -typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, unsigned long, unsigned long); +typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, unsigned long, void *); -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_ipi_entry)(void *, const char *); -typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *); +typedef void (*btf_trace_ipi_exit)(void *, const char *); -typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, unsigned long); +enum { + cpuset = 0, + possible = 1, + fail = 2, +}; -typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, unsigned long); +union cpumask_rcuhead { + cpumask_t cpumask; + struct callback_head rcu; +}; -typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *); +struct sched_param { + int sched_priority; +}; -typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *); +struct trace_event_raw_sched_kthread_stop { + struct trace_entry ent; + char comm[16]; + pid_t pid; + char __data[0]; +}; -typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *); +struct trace_event_raw_sched_kthread_stop_ret { + struct trace_entry ent; + int ret; + char __data[0]; +}; -typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *); +struct trace_event_raw_sched_kthread_work_queue_work { + struct trace_entry ent; + void *work; + void *function; + void *worker; + char __data[0]; +}; -typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *); +struct trace_event_raw_sched_kthread_work_execute_start { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; +}; -struct trace_event_raw_writeback_folio_template { +struct trace_event_raw_sched_kthread_work_execute_end { struct trace_entry ent; - char name[32]; - ino_t ino; - unsigned long index; + void *work; + void *function; char __data[0]; }; -struct trace_event_raw_writeback_dirty_inode_template { +struct trace_event_raw_sched_wakeup_template { struct trace_entry ent; - char name[32]; - ino_t ino; - unsigned long state; - unsigned long flags; + char comm[16]; + pid_t pid; + int prio; + int target_cpu; char __data[0]; }; -struct trace_event_raw_writeback_write_inode_template { +struct trace_event_raw_sched_switch { struct trace_entry ent; - char name[32]; - ino_t ino; - int sync_mode; - ino_t cgroup_ino; + 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_writeback_work_class { +struct trace_event_raw_sched_migrate_task { 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 comm[16]; + pid_t pid; + int prio; + int orig_cpu; + int dest_cpu; char __data[0]; }; -struct trace_event_raw_writeback_pages_written { +struct trace_event_raw_sched_process_template { struct trace_entry ent; - long pages; + char comm[16]; + pid_t pid; + int prio; char __data[0]; }; -struct trace_event_raw_writeback_class { +struct trace_event_raw_sched_process_wait { struct trace_entry ent; - char name[32]; - ino_t cgroup_ino; + char comm[16]; + pid_t pid; + int prio; char __data[0]; }; -struct trace_event_raw_writeback_bdi_register { +struct trace_event_raw_sched_process_fork { struct trace_entry ent; - char name[32]; + char parent_comm[16]; + pid_t parent_pid; + char child_comm[16]; + pid_t child_pid; char __data[0]; }; -struct trace_event_raw_wbc_class { +struct trace_event_raw_sched_process_exec { 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; + u32 __data_loc_filename; + pid_t pid; + pid_t old_pid; char __data[0]; }; -struct trace_event_raw_writeback_queue_io { +struct trace_event_raw_sched_stat_runtime { struct trace_entry ent; - char name[32]; - unsigned long older; - long age; - int moved; - int reason; - ino_t cgroup_ino; + char comm[16]; + pid_t pid; + long: 32; + u64 runtime; + u64 vruntime; char __data[0]; }; -struct trace_event_raw_global_dirty_state { +struct trace_event_raw_sched_pi_setprio { 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 comm[16]; + pid_t pid; + int oldprio; + int newprio; char __data[0]; }; -struct trace_event_raw_bdi_dirty_ratelimit { +struct trace_event_raw_sched_move_numa { 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; + 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_balance_dirty_pages { +struct trace_event_raw_sched_numa_pair_template { 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; + 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_writeback_sb_inodes_requeue { +struct trace_event_raw_sched_wake_idle_without_ipi { struct trace_entry ent; - char name[32]; - ino_t ino; - unsigned long state; - unsigned long dirtied_when; - ino_t cgroup_ino; + int cpu; char __data[0]; }; -struct trace_event_raw_writeback_single_inode_template { +struct trace_event_raw_ipi_raise { 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; + u32 __data_loc_target_cpus; + const char *reason; char __data[0]; }; -struct trace_event_raw_writeback_inode_template { +struct trace_event_raw_ipi_send_cpu { struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long state; - __u16 mode; - unsigned long dirtied_when; + unsigned int cpu; + void *callsite; + void *callback; char __data[0]; }; -struct trace_event_data_offsets_writeback_folio_template {}; +struct trace_event_raw_ipi_send_cpumask { + struct trace_entry ent; + u32 __data_loc_cpumask; + void *callsite; + void *callback; + char __data[0]; +}; -struct trace_event_data_offsets_writeback_dirty_inode_template {}; +struct trace_event_raw_ipi_handler { + struct trace_entry ent; + const char *reason; + char __data[0]; +}; -struct trace_event_data_offsets_writeback_write_inode_template {}; +struct trace_event_data_offsets_sched_process_exec { + u32 filename; +}; -struct trace_event_data_offsets_writeback_work_class {}; +struct trace_event_data_offsets_ipi_raise { + u32 target_cpus; +}; -struct trace_event_data_offsets_writeback_pages_written {}; +struct trace_event_data_offsets_ipi_send_cpumask { + u32 cpumask; +}; -struct trace_event_data_offsets_writeback_class {}; +typedef struct { + void *lock; +} class_rcu_t; -struct trace_event_data_offsets_writeback_bdi_register {}; +typedef struct { + raw_spinlock_t *lock; +} class_raw_spinlock_irq_t; -struct trace_event_data_offsets_wbc_class {}; +typedef struct { + void *lock; +} class_preempt_t; -struct trace_event_data_offsets_writeback_queue_io {}; +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irqsave_t; -struct trace_event_data_offsets_global_dirty_state {}; +typedef struct { + raw_spinlock_t *lock; + unsigned long flags; +} class_raw_spinlock_irqsave_t; -struct trace_event_data_offsets_bdi_dirty_ratelimit {}; +typedef struct { + struct task_struct *lock; + struct rq *rq; + struct rq_flags rf; +} class_task_rq_lock_t; -struct trace_event_data_offsets_balance_dirty_pages {}; +typedef struct task_struct *class_find_get_task_t; -struct trace_event_data_offsets_writeback_sb_inodes_requeue {}; +typedef struct { + void *lock; + unsigned long flags; +} class_irqsave_t; -struct trace_event_data_offsets_writeback_single_inode_template {}; +typedef struct { + struct rq *lock; + struct rq *lock2; +} class_double_rq_lock_t; -struct trace_event_data_offsets_writeback_inode_template {}; +struct set_affinity_pending; -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, +struct migration_arg { + struct task_struct *task; + int dest_cpu; + struct set_affinity_pending *pending; }; -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, +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 configfs_buffer { - size_t count; - long: 32; - loff_t pos; - char *page; - struct configfs_item_operations *ops; - struct mutex mutex; - int needs_read_fill; - bool read_in_progress; - bool write_in_progress; - char *bin_buffer; - int bin_buffer_size; - int cb_max_size; - struct config_item *item; - struct module *owner; - union { - struct configfs_attribute *attr; - struct configfs_bin_attribute *bin_attr; - }; +struct trace_event_data_offsets_sched_kthread_stop {}; + +struct trace_event_data_offsets_sched_kthread_stop_ret {}; + +struct trace_event_data_offsets_sched_kthread_work_queue_work {}; + +struct trace_event_data_offsets_sched_kthread_work_execute_start {}; + +struct trace_event_data_offsets_sched_kthread_work_execute_end {}; + +struct trace_event_data_offsets_sched_wakeup_template {}; + +struct trace_event_data_offsets_sched_switch {}; + +struct trace_event_data_offsets_sched_migrate_task {}; + +struct trace_event_data_offsets_sched_process_template {}; + +struct trace_event_data_offsets_sched_process_wait {}; + +struct trace_event_data_offsets_sched_process_fork {}; + +struct trace_event_data_offsets_sched_stat_runtime {}; + +struct trace_event_data_offsets_sched_pi_setprio {}; + +struct trace_event_data_offsets_sched_move_numa {}; + +struct trace_event_data_offsets_sched_numa_pair_template {}; + +struct trace_event_data_offsets_sched_wake_idle_without_ipi {}; + +struct trace_event_data_offsets_ipi_send_cpu {}; + +struct trace_event_data_offsets_ipi_handler {}; + +typedef int (*tg_visitor)(struct task_group *, void *); + +struct kernel_clone_args { + u64 flags; + int __attribute__((btf_type_tag("user"))) *pidfd; + int __attribute__((btf_type_tag("user"))) *child_tid; + int __attribute__((btf_type_tag("user"))) *parent_tid; + const char *name; + int exit_signal; + u32 kthread: 1; + u32 io_thread: 1; + u32 user_worker: 1; + u32 no_files: 1; + unsigned long stack; + unsigned long stack_size; + unsigned long tls; + pid_t *set_tid; + size_t set_tid_size; + int cgroup; + int idle; + int (*fn)(void *); + void *fn_arg; + struct cgroup *cgrp; + struct css_set *cset; long: 32; }; -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_csd_queue_cpu)(void *, const unsigned int, unsigned long, smp_call_func_t, call_single_data_t *); -typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int); +typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, call_single_data_t *); -typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int); +typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, call_single_data_t *); -typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *); +struct call_function_data { + call_single_data_t __attribute__((btf_type_tag("percpu"))) *csd; + cpumask_var_t cpumask; + cpumask_var_t cpumask_ipi; +}; -typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int); +struct trace_event_raw_csd_queue_cpu { + struct trace_entry ent; + unsigned int cpu; + void *callsite; + void *func; + void *csd; + char __data[0]; +}; -typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); +struct trace_event_raw_csd_function { + struct trace_entry ent; + void *func; + void *csd; + char __data[0]; +}; -typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, unsigned long); +struct smp_call_on_cpu_struct { + struct work_struct work; + struct completion done; + int (*func)(void *); + void *data; + int ret; + int cpu; +}; -typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); +struct trace_event_data_offsets_csd_queue_cpu {}; -typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int); +struct trace_event_data_offsets_csd_function {}; -typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int); +enum { + BPF_MAX_LOOPS = 8388608, +}; -typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); +enum bpf_iter_feature { + BPF_ITER_RESCHED = 1, +}; -typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); +struct bpf_iter_target_info { + struct list_head list; + const struct bpf_iter_reg *reg_info; + u32 btf_id; +}; -typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); +struct bpf_iter_link { + struct bpf_link link; + struct bpf_iter_aux_info aux; + struct bpf_iter_target_info *tinfo; +}; -typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *); +struct bpf_iter_priv_data { + struct bpf_iter_target_info *tinfo; + const struct bpf_iter_seq_info *seq_info; + struct bpf_prog *prog; + long: 32; + u64 session_id; + u64 seq_num; + bool done_stop; + long: 32; + u8 target_private[0]; +}; -typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, unsigned long, struct writeback_control *); +typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64); -typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); +typedef u64 (*btf_bpf_loop)(u32, void *, void *, u64); -typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); +struct bpf_iter_num { + __u64 __opaque[1]; +}; -typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *); +struct bpf_iter_num_kern { + int cur; + int end; +}; -typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *); +struct saved { + struct path link; + struct delayed_call done; + const char *name; + unsigned int seq; +}; -typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t); +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; + long: 32; +}; -typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t); +enum { + LAST_NORM = 0, + LAST_ROOT = 1, + LAST_DOT = 2, + LAST_DOTDOT = 3, +}; -typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, unsigned long long, unsigned long long); +enum { + WALK_TRAILING = 1, + WALK_MORE = 2, + WALK_NOFOLLOW = 4, +}; -typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); +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; +}; -typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); +typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); -typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, unsigned long long, unsigned int); +struct dio { + int flags; + blk_opf_t opf; + struct gendisk *bio_disk; + struct inode *inode; + loff_t i_size; + dio_iodone_t *end_io; + bool is_pinned; + void *private; + spinlock_t bio_lock; + int page_errors; + int is_async; + bool defer_completion; + bool should_dirty; + int io_error; + unsigned long refcount; + struct bio *bio_list; + struct task_struct *waiter; + struct kiocb *iocb; + ssize_t result; + union { + struct page *pages[64]; + struct work_struct complete_work; + }; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; -typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *); +struct dio_submit { + struct bio *bio; + unsigned int blkbits; + unsigned int blkfactor; + unsigned int start_zero_done; + int pages_in_io; + long: 32; + sector_t block_in_file; + unsigned int blocks_available; + int reap_counter; + sector_t final_block_in_request; + int boundary; + get_block_t *get_block; + loff_t logical_offset_in_bio; + sector_t final_block_in_bio; + sector_t next_block_for_io; + struct page *cur_page; + unsigned int cur_page_offset; + unsigned int cur_page_len; + long: 32; + 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; + long: 32; +}; -typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int, unsigned int); +struct kernfs_fs_context { + struct kernfs_root *root; + void *ns_tag; + unsigned long magic; + bool new_sb_created; +}; -typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int); +struct squashfs_base_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; +}; -typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *); +struct squashfs_dev_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 rdev; +}; -typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, unsigned long long); +struct squashfs_ldev_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 rdev; + __le32 xattr; +}; -typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, unsigned long, int); +struct squashfs_symlink_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 symlink_size; + char symlink[0]; +}; -typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int); +struct squashfs_reg_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 start_block; + __le32 fragment; + __le32 offset; + __le32 file_size; + __le16 block_list[0]; +}; -typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int); +struct squashfs_lreg_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le64 start_block; + __le64 file_size; + __le64 sparse; + __le32 nlink; + __le32 fragment; + __le32 offset; + __le32 xattr; + __le16 block_list[0]; +}; -typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int); +struct squashfs_dir_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 start_block; + __le32 nlink; + __le16 file_size; + __le16 offset; + __le32 parent_inode; +}; -typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *); +struct squashfs_ldir_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 file_size; + __le32 start_block; + __le32 parent_inode; + __le16 i_count; + __le16 offset; + __le32 xattr; + struct squashfs_dir_index index[0]; +}; -typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *); +struct squashfs_ipc_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; +}; -typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *); +struct squashfs_lipc_inode { + __le16 inode_type; + __le16 mode; + __le16 uid; + __le16 guid; + __le32 mtime; + __le32 inode_number; + __le32 nlink; + __le32 xattr; +}; -typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); +union squashfs_inode { + struct squashfs_base_inode base; + struct squashfs_dev_inode dev; + struct squashfs_ldev_inode ldev; + struct squashfs_symlink_inode symlink; + struct squashfs_reg_inode reg; + struct squashfs_lreg_inode lreg; + struct squashfs_dir_inode dir; + struct squashfs_ldir_inode ldir; + struct squashfs_ipc_inode ipc; + struct squashfs_lipc_inode lipc; +}; -typedef void (*btf_trace_ext4_mballoc_free)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); +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 void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64); +struct fatent_ra { + sector_t cur; + sector_t limit; + unsigned int ra_blocks; + long: 32; + sector_t ra_advance; + sector_t ra_next; + sector_t ra_limit; +}; -typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); +enum { + NFS_LSEG_VALID = 0, + NFS_LSEG_ROC = 1, + NFS_LSEG_LAYOUTCOMMIT = 2, + NFS_LSEG_LAYOUTRETURN = 3, + NFS_LSEG_UNAVAILABLE = 4, +}; -typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *); +struct nfs42_layoutstat_res { + struct nfs4_sequence_res seq_res; + int num_dev; + int rpc_status; +}; -typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); +struct nfs42_layoutstat_data { + struct inode *inode; + struct nfs42_layoutstat_args args; + struct nfs42_layoutstat_res res; +}; -typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, unsigned long); +struct tracefs_dir_ops { + int (*mkdir)(const char *); + int (*rmdir)(const char *); +}; -typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, unsigned long); +enum { + Opt_uid___4 = 0, + Opt_gid___5 = 1, + Opt_mode___3 = 2, + Opt_err___4 = 3, +}; -typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, unsigned long); +struct tracefs_mount_opts { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; +}; -typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, unsigned long, bool); +struct tracefs_fs_info { + struct tracefs_mount_opts mount_opts; +}; -typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int); +struct sha1_state; -typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int); +typedef void sha1_block_fn(struct sha1_state *, const u8 *, int); -typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int); +struct sha1_state { + u32 state[5]; + long: 32; + u64 count; + u8 buffer[64]; +}; -typedef void (*btf_trace_ext4_fallocate_exit)(void *, struct inode *, loff_t, unsigned int, int); +struct queue_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct request_queue *, char *); + ssize_t (*store)(struct request_queue *, const char *, size_t); +}; -typedef void (*btf_trace_ext4_unlink_enter)(void *, struct inode *, struct dentry *); +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_ext4_unlink_exit)(void *, struct dentry *, int); +typedef void (*btf_trace_kyber_adjust)(void *, dev_t, const char *, unsigned int); -typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *); +typedef void (*btf_trace_kyber_throttled)(void *, dev_t, const char *); -typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *); +enum { + KYBER_READ = 0, + KYBER_WRITE = 1, + KYBER_DISCARD = 2, + KYBER_OTHER = 3, + KYBER_NUM_DOMAINS = 4, +}; -typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *); +enum { + KYBER_TOTAL_LATENCY = 0, + KYBER_IO_LATENCY = 1, +}; -typedef void (*btf_trace_ext4_ext_convert_to_initialized_fastpath)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *, struct ext4_extent *); +enum { + KYBER_LATENCY_SHIFT = 2, + KYBER_GOOD_BUCKETS = 4, + KYBER_LATENCY_BUCKETS = 8, +}; -typedef void (*btf_trace_ext4_ext_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); +enum { + KYBER_ASYNC_PERCENT = 75, +}; -typedef void (*btf_trace_ext4_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); +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]; +}; -typedef void (*btf_trace_ext4_ext_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); +struct trace_event_raw_kyber_adjust { + struct trace_entry ent; + dev_t dev; + char domain[16]; + unsigned int depth; + char __data[0]; +}; -typedef void (*btf_trace_ext4_ind_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); +struct trace_event_raw_kyber_throttled { + struct trace_entry ent; + dev_t dev; + char domain[16]; + char __data[0]; +}; -typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t); +struct kyber_cpu_latency { + atomic_t buckets[48]; +}; -typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, unsigned long); +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]; + long: 32; + u64 latency_targets[3]; +}; -typedef void (*btf_trace_ext4_journal_start_sb)(void *, struct super_block *, int, int, int, int, unsigned long); +struct sbq_wait { + struct sbitmap_queue *sbq; + struct wait_queue_entry wait; +}; -typedef void (*btf_trace_ext4_journal_start_inode)(void *, struct inode *, int, int, int, int, unsigned long); +struct kyber_ctx_queue { + spinlock_t lock; + struct list_head rq_list[4]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; -typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, unsigned long); +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]; +}; -typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); +struct flush_kcq_data { + struct kyber_hctx_data *khd; + unsigned int sched_domain; + struct list_head *list; +}; -typedef void (*btf_trace_ext4_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); +typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); -typedef void (*btf_trace_ext4_ext_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t); +struct trace_event_data_offsets_kyber_latency {}; -typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int); +struct trace_event_data_offsets_kyber_adjust {}; -typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, unsigned short); +struct trace_event_data_offsets_kyber_throttled {}; -typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); +enum io_wq_cancel { + IO_WQ_CANCEL_OK = 0, + IO_WQ_CANCEL_RUNNING = 1, + IO_WQ_CANCEL_NOTFOUND = 2, +}; -typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *); +struct io_cancel { + struct file *file; + long: 32; + u64 addr; + u32 flags; + s32 fd; + u8 opcode; + long: 32; +}; -typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); +struct io_poll { + struct file *file; + struct wait_queue_head *head; + __poll_t events; + int retries; + struct wait_queue_entry wait; +}; -typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int); +struct async_poll { + union { + struct io_poll poll; + struct io_cache_entry cache; + }; + struct io_poll *double_poll; +}; -typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16); +struct io_tctx_node { + struct list_head ctx_node; + struct task_struct *task; + struct io_ring_ctx *ctx; +}; -typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *); +typedef bool work_cancel_fn(struct io_wq_work *, void *); -typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *); +struct io_uring_sync_cancel_reg { + __u64 addr; + __s32 fd; + __u32 flags; + struct __kernel_timespec timeout; + __u8 opcode; + __u8 pad[7]; + __u64 pad2[3]; +}; -typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t); +typedef enum { + search_hashChain = 0, + search_binaryTree = 1, + search_rowHash = 2, +} searchMethod_e; -typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t); +typedef U64 ZSTD_VecMask; -typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *); +struct stmfx_pinctrl { + struct device *dev; + struct stmfx *stmfx; + struct pinctrl_dev *pctl_dev; + struct pinctrl_desc pctl_desc; + struct gpio_chip gpio_chip; + struct mutex lock; + unsigned long gpio_valid_mask; + u8 irq_gpi_src[3]; + u8 irq_gpi_type[3]; + u8 irq_gpi_evt[3]; + u8 irq_toggle_edge[3]; + u8 bkp_gpio_state[3]; + u8 bkp_gpio_dir[3]; + u8 bkp_gpio_type[3]; + u8 bkp_gpio_pupd[3]; +}; -typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t); +enum armada_xp_variant { + V_MV78230 = 1, + V_MV78260 = 2, + V_MV78460 = 4, + V_MV78230_PLUS = 7, + V_MV78260_PLUS = 6, + V_98DX3236 = 8, + V_98DX3336 = 16, + V_98DX4251 = 32, + V_98DX3236_PLUS = 56, +}; -typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int); +struct samsung_pinctrl_drv_data; -typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int); +struct exynos_irq_chip { + struct irq_chip chip; + u32 eint_con; + u32 eint_mask; + u32 eint_pend; + u32 *eint_wake_mask_value; + u32 eint_wake_mask_reg; + void (*set_eint_wakeup_mask)(struct samsung_pinctrl_drv_data *, struct exynos_irq_chip *); +}; -typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int); +struct samsung_pin_group; -typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int); +struct samsung_pmx_func; -typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); +struct samsung_pin_bank; -typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t); +struct samsung_retention_ctrl; -typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int); +struct samsung_pinctrl_drv_data { + struct list_head node; + void *virt_base; + struct device *dev; + int irq; + struct pinctrl_desc pctl; + struct pinctrl_dev *pctl_dev; + const struct samsung_pin_group *pin_groups; + unsigned int nr_groups; + const struct samsung_pmx_func *pmx_functions; + unsigned int nr_functions; + struct samsung_pin_bank *pin_banks; + unsigned int nr_banks; + unsigned int nr_pins; + struct samsung_retention_ctrl *retention_ctrl; + void (*suspend)(struct samsung_pinctrl_drv_data *); + void (*resume)(struct samsung_pinctrl_drv_data *); +}; -typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool); +struct samsung_pin_group { + const char *name; + const unsigned int *pins; + u8 num_pins; + u8 func; +}; -typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64); +struct samsung_pmx_func { + const char *name; + const char **groups; + u8 num_groups; + u32 val; +}; -typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); +enum eint_type { + EINT_TYPE_NONE = 0, + EINT_TYPE_GPIO = 1, + EINT_TYPE_WKUP = 2, + EINT_TYPE_WKUP_MUX = 3, +}; -typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64); +struct samsung_pin_bank_type; -typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *); +struct samsung_pin_bank { + const struct samsung_pin_bank_type *type; + void *pctl_base; + u32 pctl_offset; + u8 nr_pins; + void *eint_base; + u8 eint_func; + enum eint_type eint_type; + u32 eint_mask; + u32 eint_offset; + const char *name; + u32 id; + u32 pin_base; + void *soc_priv; + struct fwnode_handle *fwnode; + struct samsung_pinctrl_drv_data *drvdata; + struct irq_domain *irq_domain; + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range grange; + struct exynos_irq_chip *irq_chip; + raw_spinlock_t slock; + u32 pm_save[7]; +}; -typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); +struct samsung_pin_bank_type { + u8 fld_width[6]; + u8 reg_offset[6]; +}; -typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *); +struct samsung_retention_ctrl { + const u32 *regs; + int nr_regs; + u32 value; + atomic_t *refcnt; + void *priv; + void (*enable)(struct samsung_pinctrl_drv_data *); + void (*disable)(struct samsung_pinctrl_drv_data *); +}; -typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, unsigned long); +enum pincfg_type { + PINCFG_TYPE_FUNC = 0, + PINCFG_TYPE_DAT = 1, + PINCFG_TYPE_PUD = 2, + PINCFG_TYPE_DRV = 3, + PINCFG_TYPE_CON_PDN = 4, + PINCFG_TYPE_PUD_PDN = 5, + PINCFG_TYPE_NUM = 6, +}; -typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); +struct exynos_eint_gpio_save { + u32 eint_con; + u32 eint_fltcon0; + u32 eint_fltcon1; + u32 eint_mask; +}; -typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); +struct exynos_muxed_weint_data { + unsigned int nr_banks; + struct samsung_pin_bank *banks[0]; +}; -typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t); +struct exynos_weint_data { + unsigned int irq; + struct samsung_pin_bank *bank; +}; -typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); +struct samsung_retention_data { + const u32 *regs; + int nr_regs; + u32 value; + atomic_t *refcnt; + struct samsung_retention_ctrl * (*init)(struct samsung_pinctrl_drv_data *, const struct samsung_retention_data *); +}; -typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int); +enum of_gpio_flags { + OF_GPIO_ACTIVE_LOW = 1, + OF_GPIO_SINGLE_ENDED = 2, + OF_GPIO_OPEN_DRAIN = 4, + OF_GPIO_TRANSITORY = 8, + OF_GPIO_PULL_UP = 16, + OF_GPIO_PULL_DOWN = 32, + OF_GPIO_PULL_DISABLE = 64, +}; -typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *, tid_t); +typedef struct gpio_desc * (*of_find_gpio_quirk)(struct device_node *, const char *, unsigned int, enum of_gpio_flags *); -typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int, tid_t); +struct of_rename_gpio { + const char *con_id; + const char *legacy_id; + const char *compatible; +}; -typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *); +enum stmpe_partnum { + STMPE610 = 0, + STMPE801 = 1, + STMPE811 = 2, + STMPE1600 = 3, + STMPE1601 = 4, + STMPE1801 = 5, + STMPE2401 = 6, + STMPE2403 = 7, + STMPE_NBR_PARTS = 8, +}; -typedef void (*btf_trace_ext4_fc_track_create)(void *, handle_t *, struct inode *, struct dentry *, int); +enum stmpe_block { + STMPE_BLOCK_GPIO = 1, + STMPE_BLOCK_KEYPAD = 2, + STMPE_BLOCK_TOUCHSCREEN = 4, + STMPE_BLOCK_ADC = 8, + STMPE_BLOCK_PWM = 16, + STMPE_BLOCK_ROTATOR = 32, +}; -typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int); +enum { + STMPE_IDX_CHIP_ID = 0, + STMPE_IDX_SYS_CTRL = 1, + STMPE_IDX_SYS_CTRL2 = 2, + STMPE_IDX_ICR_LSB = 3, + STMPE_IDX_IER_LSB = 4, + STMPE_IDX_IER_MSB = 5, + STMPE_IDX_ISR_LSB = 6, + STMPE_IDX_ISR_MSB = 7, + STMPE_IDX_GPMR_LSB = 8, + STMPE_IDX_GPMR_CSB = 9, + STMPE_IDX_GPMR_MSB = 10, + STMPE_IDX_GPSR_LSB = 11, + STMPE_IDX_GPSR_CSB = 12, + STMPE_IDX_GPSR_MSB = 13, + STMPE_IDX_GPCR_LSB = 14, + STMPE_IDX_GPCR_CSB = 15, + STMPE_IDX_GPCR_MSB = 16, + STMPE_IDX_GPDR_LSB = 17, + STMPE_IDX_GPDR_CSB = 18, + STMPE_IDX_GPDR_MSB = 19, + STMPE_IDX_GPEDR_LSB = 20, + STMPE_IDX_GPEDR_CSB = 21, + STMPE_IDX_GPEDR_MSB = 22, + STMPE_IDX_GPRER_LSB = 23, + STMPE_IDX_GPRER_CSB = 24, + STMPE_IDX_GPRER_MSB = 25, + STMPE_IDX_GPFER_LSB = 26, + STMPE_IDX_GPFER_CSB = 27, + STMPE_IDX_GPFER_MSB = 28, + STMPE_IDX_GPPUR_LSB = 29, + STMPE_IDX_GPPDR_LSB = 30, + STMPE_IDX_GPAFR_U_MSB = 31, + STMPE_IDX_IEGPIOR_LSB = 32, + STMPE_IDX_IEGPIOR_CSB = 33, + STMPE_IDX_IEGPIOR_MSB = 34, + STMPE_IDX_ISGPIOR_LSB = 35, + STMPE_IDX_ISGPIOR_CSB = 36, + STMPE_IDX_ISGPIOR_MSB = 37, + STMPE_IDX_MAX = 38, +}; -typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int); +enum { + REG_RE = 0, + REG_FE = 1, + REG_IE = 2, +}; -typedef void (*btf_trace_ext4_fc_track_inode)(void *, handle_t *, struct inode *, int); +struct stmpe_client_info; -typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long, long, int); +struct stmpe_variant_info; -typedef void (*btf_trace_ext4_fc_cleanup)(void *, journal_t *, int, tid_t); +struct stmpe_platform_data; -typedef void (*btf_trace_ext4_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int); +struct stmpe { + struct regulator *vcc; + struct regulator *vio; + struct mutex lock; + struct mutex irq_lock; + struct device *dev; + struct irq_domain *domain; + void *client; + struct stmpe_client_info *ci; + enum stmpe_partnum partnum; + struct stmpe_variant_info *variant; + const u8 *regs; + int irq; + int num_gpios; + u8 ier[2]; + u8 oldier[2]; + struct stmpe_platform_data *pdata; + u8 sample_time; + u8 mod_12b; + u8 ref_sel; + u8 adc_freq; +}; -struct ext4_lazy_init { - unsigned long li_state; - struct list_head li_request_list; - struct mutex li_list_mtx; +struct stmpe_gpio { + struct gpio_chip chip; + struct stmpe *stmpe; + struct device *dev; + struct mutex irq_lock; + u32 norequest_mask; + u8 regs[9]; + u8 oldregs[9]; }; -struct ext4_err_translation { - int code; - int errno; +enum { + pci_channel_io_normal = 1, + pci_channel_io_frozen = 2, + pci_channel_io_perm_failure = 3, }; -struct mount_opts { - int token; - int mount_opt; - int flags; +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, }; -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 = 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___4 = 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 = 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, +struct portdrv_service_data { + struct pcie_port_service_driver *drv; + struct device *dev; + u32 service; }; -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]; +typedef int (*pcie_callback_t)(struct pcie_device *); + +enum dw_pcie_device_mode { + DW_PCIE_UNKNOWN_TYPE = 0, + DW_PCIE_EP_TYPE = 1, + DW_PCIE_LEG_EP_TYPE = 2, + DW_PCIE_RC_TYPE = 3, }; -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]; - long: 32; +struct dra7xx_pcie_of_data { + enum dw_pcie_device_mode mode; + u32 b1co_mode_sel_mask; }; -struct trace_event_raw_ext4_request_inode { - struct trace_entry ent; - dev_t dev; - ino_t dir; - __u16 mode; - char __data[0]; +struct dra7xx_pcie { + struct dw_pcie *pci; + void *base; + int phy_count; + struct phy **phy; + struct irq_domain *irq_domain; + struct clk *clk; + enum dw_pcie_device_mode mode; }; -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 clk_main_osc { + struct clk_hw hw; + struct regmap *regmap; + struct at91_clk_pms pms; }; -struct trace_event_raw_ext4_evict_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int nlink; - char __data[0]; +struct clk_main_rc_osc { + struct clk_hw hw; + struct regmap *regmap; + unsigned long frequency; + unsigned long accuracy; + struct at91_clk_pms pms; }; -struct trace_event_raw_ext4_drop_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int drop; - char __data[0]; +struct clk_rm9200_main { + struct clk_hw hw; + struct regmap *regmap; }; -struct trace_event_raw_ext4_nfs_commit_metadata { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; +struct clk_sam9x5_main { + struct clk_hw hw; + struct regmap *regmap; + struct at91_clk_pms pms; + u8 parent; }; -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 at91sam9x5_clk_usb { + struct clk_hw hw; + struct regmap *regmap; + struct at91_clk_pms pms; + u32 usbs_mask; + u8 num_parents; }; -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 at91rm9200_clk_usb { + struct clk_hw hw; + struct regmap *regmap; + u32 divisors[4]; }; -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]; - long: 32; +enum iproc_arm_pll_fid { + ARM_PLL_FID_CRYSTAL_CLK = 0, + ARM_PLL_FID_SYS_CLK = 2, + ARM_PLL_FID_CH0_SLOW_CLK = 6, + ARM_PLL_FID_CH1_FAST_CLK = 7, }; -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 iproc_arm_pll { + struct clk_hw hw; + void *base; + unsigned long rate; }; -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]; - long: 32; +struct berlin2_div_map { + u16 pll_select_offs; + u16 pll_switch_offs; + u16 div_select_offs; + u16 div_switch_offs; + u16 div3_switch_offs; + u16 gate_offs; + u8 pll_select_shift; + u8 pll_switch_shift; + u8 div_select_shift; + u8 div_switch_shift; + u8 div3_switch_shift; + u8 gate_shift; }; -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 berlin2_div_data { + const char *name; + const u8 *parent_ids; + int num_parents; + unsigned long flags; + struct berlin2_div_map map; + u8 div_flags; }; -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 berlin2_gate_data { + const char *name; + const char *parent_name; + u8 bit_idx; + unsigned long flags; }; -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]; +enum { + REFCLK = 0, + VIDEO_EXT0 = 1, + SYSPLL = 2, + MEMPLL = 3, + CPUPLL = 4, + AVPLL_A1 = 5, + AVPLL_A2 = 6, + AVPLL_A3 = 7, + AVPLL_A4 = 8, + AVPLL_A5 = 9, + AVPLL_A6 = 10, + AVPLL_A7 = 11, + AVPLL_A8 = 12, + AVPLL_B1 = 13, + AVPLL_B2 = 14, + AVPLL_B3 = 15, + AVPLL_B4 = 16, + AVPLL_B5 = 17, + AVPLL_B6 = 18, + AVPLL_B7 = 19, + AVPLL_B8 = 20, + AUDIO1_PLL = 21, + AUDIO_FAST_PLL = 22, + VIDEO0_PLL = 23, + VIDEO0_IN = 24, + VIDEO1_PLL = 25, + VIDEO1_IN = 26, + VIDEO2_PLL = 27, + VIDEO2_IN = 28, }; -struct trace_event_raw_ext4__folio_op { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long index; - char __data[0]; +struct clk_cpu { + struct clk_hw hw; + struct clk *div; + struct clk *mux; + struct clk *pll; + struct clk *step; }; -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 clk_gate2 { + struct clk_hw hw; + void *reg; + u8 bit_idx; + u8 cgr_val; + u8 cgr_mask; + u8 flags; + spinlock_t *lock; + unsigned int *share_count; }; -struct trace_event_raw_ext4_discard_blocks { - struct trace_entry ent; - dev_t dev; +struct clk_sscg_pll_setup { + int divr1; + int divf1; + int divr2; + int divf2; + int divq; + int bypass; + uint64_t vco1; + uint64_t vco2; + uint64_t fout; + uint64_t ref; + uint64_t ref_div1; + uint64_t ref_div2; + uint64_t fout_request; + int fout_error; long: 32; - __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 clk_sscg_pll { + struct clk_hw hw; + const struct clk_ops ops; + void *base; + long: 32; + struct clk_sscg_pll_setup setup; + u8 parent; + u8 bypass1; + u8 bypass2; long: 32; }; -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]; - long: 32; +struct clk_composite { + struct clk_hw hw; + struct clk_ops ops; + struct clk_hw *mux_hw; + struct clk_hw *rate_hw; + struct clk_hw *gate_hw; + const struct clk_ops *mux_ops; + const struct clk_ops *rate_ops; + const struct clk_ops *gate_ops; }; -struct trace_event_raw_ext4_mb_release_group_pa { - struct trace_entry ent; - dev_t dev; - long: 32; - __u64 pa_pstart; - __u32 pa_len; - char __data[0]; - long: 32; +struct clk_gating_ctrl { + spinlock_t *lock; + struct clk **gates; + int num_gates; + void *base; + u32 saved_reg; }; -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 rockchip_softrst { + struct reset_controller_dev rcdev; + const int *lut; + void *reg_base; + int num_regs; + int num_per_reg; + u8 flags; + spinlock_t lock; }; -struct trace_event_raw_ext4_mb_discard_preallocations { - struct trace_entry ent; - dev_t dev; - int needed; - char __data[0]; +struct clk_factors { + struct clk_hw hw; + void *reg; + const struct clk_factors_config *config; + void (*get_factors)(struct factors_request *); + void (*recalc)(struct factors_request *); + spinlock_t *lock; + struct clk_mux *mux; + struct clk_gate *gate; }; -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]; - long: 32; +struct pll_out_data { + char *div_name; + char *pll_out_name; + u32 offset; + int clk_id; + u8 div_shift; + u8 div_flags; + u8 rst_shift; + spinlock_t *lock; }; -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]; - long: 32; +struct fapll_data { + struct clk_hw hw; + void *base; + const char *name; + struct clk *clk_ref; + struct clk *clk_bypass; + struct clk_onecell_data outputs; + bool bypass_bit_inverted; }; -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]; - long: 32; +struct fapll_synth { + struct clk_hw hw; + struct fapll_data *fd; + int index; + void *freq; + void *div; + const char *name; + struct clk *clk_pll; }; -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 clk_sp810; + +struct clk_sp810_timerclken { + struct clk_hw hw; + struct clk *clk; + struct clk_sp810 *sp810; + int channel; }; -struct trace_event_raw_ext4_sync_file_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int ret; - char __data[0]; +struct clk_sp810 { + struct device_node *node; + void *base; + spinlock_t lock; + struct clk_sp810_timerclken timerclken[4]; }; -struct trace_event_raw_ext4_sync_fs { - struct trace_entry ent; - dev_t dev; - int wait; - char __data[0]; +struct dw_dma_chip_pdata { + const struct dw_dma_platform_data *pdata; + int (*probe)(struct dw_dma_chip *); + int (*remove)(struct dw_dma_chip *); + struct dw_dma_chip *chip; }; -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 qcom_smp2p; + +struct smp2p_entry { + struct list_head node; + struct qcom_smp2p *smp2p; + const char *name; + u32 *value; + u32 last_value; + struct irq_domain *domain; + unsigned long irq_enabled[1]; + unsigned long irq_rising[1]; + unsigned long irq_falling[1]; + struct qcom_smem_state *state; + spinlock_t lock; }; -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 smp2p_smem_item; + +struct qcom_smp2p { + struct device *dev; + struct smp2p_smem_item *in; + struct smp2p_smem_item *out; + unsigned int smem_items[2]; + unsigned int valid_entries; + bool ssr_ack_enabled; + bool ssr_ack; + bool negotiation_done; + unsigned int local_pid; + unsigned int remote_pid; + struct regmap *ipc_regmap; + int ipc_offset; + int ipc_bit; + struct mbox_client mbox_client; + struct mbox_chan *mbox_chan; + struct list_head inbound; + struct list_head outbound; }; -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 smp2p_smem_item { + u32 magic; + u8 version; + unsigned int features: 24; + u16 local_pid; + u16 remote_pid; + u16 total_entries; + u16 valid_entries; + u32 flags; + struct { + u8 name[16]; + u32 value; + } entries[16]; }; -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 meson_gx_pwrc_vpu { + struct generic_pm_domain genpd; + struct regmap *regmap_ao; + struct regmap *regmap_hhi; + struct reset_control *rstc; + struct clk *vpu_clk; + struct clk *vapb_clk; + long: 32; }; -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 rcar_sysc_area; + +struct rcar_sysc_info { + int (*init)(); + const struct rcar_sysc_area *areas; + unsigned int num_areas; + u32 extmask_offs; + u32 extmask_val; }; -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 rcar_sysc_area { + const char *name; + u16 chan_offs; + u8 chan_bit; + u8 isr_bit; + s8 parent; + u8 flags; }; -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 rockchip_pmu_info; + +struct rockchip_pmu { + struct device *dev; + struct regmap *regmap; + const struct rockchip_pmu_info *info; + struct mutex mutex; + struct genpd_onecell_data genpd_data; + struct generic_pm_domain *domains[0]; +}; + +struct rockchip_domain_info; + +struct rockchip_pmu_info { + u32 pwr_offset; + u32 status_offset; + u32 req_offset; + u32 idle_offset; + u32 ack_offset; + u32 mem_pwr_offset; + u32 chain_status_offset; + u32 mem_status_offset; + u32 repair_status_offset; + u32 core_pwrcnt_offset; + u32 gpu_pwrcnt_offset; + unsigned int core_power_transition_time; + unsigned int gpu_power_transition_time; + int num_domains; + const struct rockchip_domain_info *domain_info; +}; + +struct rockchip_domain_info { + const char *name; + int pwr_mask; + int status_mask; + int req_mask; + int idle_mask; + int ack_mask; + bool active_wakeup; + int pwr_w_mask; + int req_w_mask; + int mem_status_mask; + int repair_status_mask; + u32 pwr_offset; + u32 mem_offset; + u32 req_offset; }; -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 rockchip_pm_domain { + struct generic_pm_domain genpd; + const struct rockchip_domain_info *info; + struct rockchip_pmu *pmu; + int num_qos; + struct regmap **qos_regmap; + u32 *qos_save_regs[5]; + int num_clks; + struct clk_bulk_data *clks; long: 32; }; -struct trace_event_raw_ext4__bitmap_load { - struct trace_entry ent; - dev_t dev; - __u32 group; - char __data[0]; +enum { + ACT8945A_ID_DCDC1 = 0, + ACT8945A_ID_DCDC2 = 1, + ACT8945A_ID_DCDC3 = 2, + ACT8945A_ID_LDO1 = 3, + ACT8945A_ID_LDO2 = 4, + ACT8945A_ID_LDO3 = 5, + ACT8945A_ID_LDO4 = 6, + ACT8945A_ID_MAX = 7, }; -struct trace_event_raw_ext4_read_block_bitmap_load { - struct trace_entry ent; - dev_t dev; - __u32 group; - bool prefetch; - char __data[0]; +struct act8945a_pmic { + struct regmap *regmap; + u32 op_mode[7]; }; -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]; - long: 32; +enum palmas_regulators { + PALMAS_REG_SMPS12 = 0, + PALMAS_REG_SMPS123 = 1, + PALMAS_REG_SMPS3 = 2, + PALMAS_REG_SMPS45 = 3, + PALMAS_REG_SMPS457 = 4, + PALMAS_REG_SMPS6 = 5, + PALMAS_REG_SMPS7 = 6, + PALMAS_REG_SMPS8 = 7, + PALMAS_REG_SMPS9 = 8, + PALMAS_REG_SMPS10_OUT2 = 9, + PALMAS_REG_SMPS10_OUT1 = 10, + PALMAS_REG_LDO1 = 11, + PALMAS_REG_LDO2 = 12, + PALMAS_REG_LDO3 = 13, + PALMAS_REG_LDO4 = 14, + PALMAS_REG_LDO5 = 15, + PALMAS_REG_LDO6 = 16, + PALMAS_REG_LDO7 = 17, + PALMAS_REG_LDO8 = 18, + PALMAS_REG_LDO9 = 19, + PALMAS_REG_LDOLN = 20, + PALMAS_REG_LDOUSB = 21, + PALMAS_REG_REGEN1 = 22, + PALMAS_REG_REGEN2 = 23, + PALMAS_REG_REGEN3 = 24, + PALMAS_REG_SYSEN1 = 25, + PALMAS_REG_SYSEN2 = 26, + PALMAS_NUM_REGS = 27, }; -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]; +enum tps65917_regulators { + TPS65917_REG_SMPS1 = 0, + TPS65917_REG_SMPS2 = 1, + TPS65917_REG_SMPS3 = 2, + TPS65917_REG_SMPS4 = 3, + TPS65917_REG_SMPS5 = 4, + TPS65917_REG_SMPS12 = 5, + TPS65917_REG_LDO1 = 6, + TPS65917_REG_LDO2 = 7, + TPS65917_REG_LDO3 = 8, + TPS65917_REG_LDO4 = 9, + TPS65917_REG_LDO5 = 10, + TPS65917_REG_REGEN1 = 11, + TPS65917_REG_REGEN2 = 12, + TPS65917_REG_REGEN3 = 13, + TPS65917_NUM_REGS = 14, }; -struct trace_event_raw_ext4_unlink_enter { - struct trace_entry ent; - dev_t dev; - ino_t ino; - ino_t parent; - long: 32; - loff_t size; - char __data[0]; -}; +struct syscfg_reset_channel; -struct trace_event_raw_ext4_unlink_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int ret; - char __data[0]; +struct syscfg_reset_controller { + struct reset_controller_dev rst; + bool active_low; + struct syscfg_reset_channel *channels; }; -struct trace_event_raw_ext4__truncate { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 blocks; - char __data[0]; +struct syscfg_reset_channel { + struct regmap_field *reset; + struct regmap_field *ack; }; -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 syscfg_reset_channel_data; + +struct syscfg_reset_controller_data { + bool wait_for_ack; + bool active_low; + int nr_channels; + const struct syscfg_reset_channel_data *channels; }; -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 syscfg_reset_channel_data { + const char *compatible; + struct reg_field reset; + struct reg_field ack; }; -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 kbdiacruc { + unsigned int diacr; + unsigned int base; + unsigned int result; }; -struct trace_event_raw_ext4__map_blocks_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned int flags; +struct serial_port_device { + struct device dev; + struct uart_port *port; long: 32; - 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 serial_ctrl_device { + struct device dev; + struct ida port_ida; long: 32; }; -struct trace_event_raw_ext4_load_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; +struct uart_match { + struct uart_port *port; + struct uart_driver *driver; }; -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 host1x_syncpt_fence { + struct dma_fence base; + atomic_t signaling; + struct host1x_syncpt *sp; + u32 threshold; + bool timeout; + struct delayed_work timeout_work; + struct list_head list; + long: 32; }; -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 drm_client_offset { + int x; + int y; }; -struct trace_event_raw_ext4_journal_start_reserved { - struct trace_entry ent; - dev_t dev; - unsigned long ip; - int blocks; - char __data[0]; +struct gather_bo { + struct host1x_bo base; + struct kref ref; + struct device *dev; + u32 *gather_data; + dma_addr_t gather_data_dma; + size_t gather_data_words; }; -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 drm_tegra_submit_syncpt { + __u32 id; + __u32 flags; + __u32 increments; + __u32 value; }; -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 drm_tegra_channel_submit { + __u32 context; + __u32 num_bufs; + __u32 num_cmds; + __u32 gather_data_words; + __u64 bufs_ptr; + __u64 cmds_ptr; + __u64 gather_data_ptr; + __u32 syncobj_in; + __u32 syncobj_out; + struct drm_tegra_submit_syncpt syncpt; }; -struct trace_event_raw_ext4_get_implied_cluster_alloc_exit { - struct trace_entry ent; - dev_t dev; - unsigned int flags; - ext4_lblk_t lblk; - long: 32; - ext4_fsblk_t pblk; - unsigned int len; - int ret; - char __data[0]; +struct tegra_drm_used_mapping; + +struct tegra_drm_submit_data { + struct tegra_drm_used_mapping *used_mappings; + u32 num_used_mappings; }; -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 tegra_drm_used_mapping { + struct tegra_drm_mapping *mapping; + u32 flags; }; -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 drm_tegra_submit_buf { + __u32 mapping; + __u32 flags; + struct { + __u64 target_offset; + __u32 gather_offset_words; + __u32 shift; + } reloc; }; -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; - long: 32; - ext4_fsblk_t pc_pclu; - ext4_lblk_t pc_lblk; - int pc_state; - char __data[0]; +struct drm_tegra_submit_cmd_gather_uptr { + __u32 words; + __u32 reserved[3]; }; -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 drm_tegra_submit_cmd_wait_syncpt { + __u32 id; + __u32 value; + __u32 reserved[2]; }; -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 drm_tegra_submit_cmd { + __u32 type; + __u32 flags; + union { + struct drm_tegra_submit_cmd_gather_uptr gather_uptr; + struct drm_tegra_submit_cmd_wait_syncpt wait_syncpt; + __u32 reserved[4]; + }; }; -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; - long: 32; - ext4_fsblk_t pc_pclu; - ext4_lblk_t pc_lblk; - int pc_state; - unsigned short eh_entries; - char __data[0]; - long: 32; +struct class_interface { + struct list_head node; + const struct class *class; + int (*add_dev)(struct device *); + void (*remove_dev)(struct device *); }; -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]; - long: 32; +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 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 fwnode_link { + struct fwnode_handle *supplier; + struct list_head s_hook; + struct fwnode_handle *consumer; + struct list_head c_hook; + u8 flags; }; -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 class_dir { + struct kobject kobj; + const struct class *class; }; -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 root_device { + struct device dev; + struct module *owner; long: 32; }; -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 subsys_private { + struct kset subsys; + struct kset *devices_kset; + struct list_head interfaces; + struct mutex mutex; + struct kset *drivers_kset; + struct klist klist_devices; + struct klist klist_drivers; + struct blocking_notifier_head bus_notifier; + unsigned int drivers_autoprobe: 1; + const struct bus_type *bus; + struct device *dev_root; + struct kset glue_dirs; + const struct class *class; + struct lock_class_key lock_key; }; -struct 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]; +union device_attr_group_devres { + const struct attribute_group *group; + const struct attribute_group **groups; }; -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]; -}; +typedef void (*btf_trace_thermal_pressure_update)(void *, int, unsigned long); -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]; +enum scale_freq_source { + SCALE_FREQ_SOURCE_CPUFREQ = 0, + SCALE_FREQ_SOURCE_ARCH = 1, + SCALE_FREQ_SOURCE_CPPC = 2, }; -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 scale_freq_data { + enum scale_freq_source source; + void (*set_freq_scale)(); }; -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 cpu_topology { + int thread_id; + int core_id; + int cluster_id; + int package_id; + cpumask_t thread_sibling; + cpumask_t core_sibling; + cpumask_t cluster_sibling; + cpumask_t llc_sibling; }; -struct trace_event_raw_ext4_es_shrink { +struct trace_event_raw_thermal_pressure_update { struct trace_entry ent; - dev_t dev; - int nr_shrunk; - unsigned long long scan_time; - int nr_skipped; - int retried; + unsigned long thermal_pressure; + int cpu; 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]; - long: 32; -}; +struct trace_event_data_offsets_thermal_pressure_update {}; -struct trace_event_raw_ext4_fsmap_class { - struct trace_entry ent; - dev_t dev; - dev_t keydev; - u32 agno; - long: 32; - u64 bno; - u64 len; - u64 owner; - char __data[0]; +struct tps65910_platform_data { + int irq; + int irq_base; }; -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]; +enum ssbi_controller_type { + MSM_SBI_CTRL_SSBI = 0, + MSM_SBI_CTRL_SSBI2 = 1, + MSM_SBI_CTRL_PMIC_ARBITER = 2, }; -struct trace_event_raw_ext4_shutdown { - struct trace_entry ent; - dev_t dev; - unsigned int flags; - char __data[0]; +struct ssbi { + struct device *slave; + void *base; + spinlock_t lock; + enum ssbi_controller_type controller_type; + int (*read)(struct ssbi *, u16, u8 *, int); + int (*write)(struct ssbi *, u16, const u8 *, int); }; -struct trace_event_raw_ext4_error { - struct trace_entry ent; - dev_t dev; - const char *function; - unsigned int line; - char __data[0]; +struct dma_fence_array_cb { + struct dma_fence_cb cb; + struct dma_fence_array *array; }; -struct trace_event_raw_ext4_prefetch_bitmaps { - struct trace_entry ent; - dev_t dev; - __u32 group; - __u32 next; - __u32 ios; - char __data[0]; -}; +typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *); -struct trace_event_raw_ext4_lazy_itable_init { - struct trace_entry ent; - dev_t dev; - __u32 group; - char __data[0]; -}; +typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int); -struct trace_event_raw_ext4_fc_replay_scan { - struct trace_entry ent; - dev_t dev; - int error; - int off; - char __data[0]; -}; +typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *); -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]; -}; +typedef void (*btf_trace_scsi_dispatch_cmd_timeout)(void *, struct scsi_cmnd *); -struct trace_event_raw_ext4_fc_commit_start { - struct trace_entry ent; - dev_t dev; - tid_t tid; - char __data[0]; -}; +typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *); -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]; +enum scsi_vpd_parameters { + SCSI_VPD_HEADER_SIZE = 4, }; -struct trace_event_raw_ext4_fc_stats { +struct trace_event_raw_scsi_dispatch_cmd_start { 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; + 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_ext4_fc_track_dentry { +struct trace_event_raw_scsi_dispatch_cmd_error { struct trace_entry ent; - dev_t dev; - tid_t t_tid; - ino_t i_ino; - tid_t i_sync_tid; - int error; + 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_ext4_fc_track_inode { +struct trace_event_raw_scsi_cmd_done_timeout_template { struct trace_entry ent; - dev_t dev; - tid_t t_tid; - ino_t i_ino; - tid_t i_sync_tid; - int error; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + int result; + unsigned int opcode; + unsigned int cmd_len; + int driver_tag; + int scheduler_tag; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + u8 sense_key; + u8 asc; + u8 ascq; char __data[0]; }; -struct trace_event_raw_ext4_fc_track_range { +struct trace_event_raw_scsi_eh_wakeup { 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; + unsigned int host_no; 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_data_offsets_scsi_dispatch_cmd_start { + u32 cmnd; }; -struct trace_event_raw_ext4_update_sb { - struct trace_entry ent; - dev_t dev; - long: 32; - ext4_fsblk_t fsblk; - unsigned int flags; - char __data[0]; - long: 32; +struct trace_event_data_offsets_scsi_dispatch_cmd_error { + u32 cmnd; }; -struct ext4_journal_cb_entry { - struct list_head jce_list; - void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); +struct trace_event_data_offsets_scsi_cmd_done_timeout_template { + u32 cmnd; }; -struct fs_error_report { - int error; - struct inode *inode; - struct super_block *sb; -}; +struct trace_event_data_offsets_scsi_eh_wakeup {}; -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; - long: 32; - ext4_fsblk_t s_sb_block; +struct atmel_pmecc_gf_tables { + u16 *alpha_to; + u16 *index_of; }; -struct ext4_mount_options { - unsigned long s_mount_opt; - unsigned long s_mount_opt2; - kuid_t s_resuid; - kgid_t s_resgid; - unsigned long s_commit_interval; - u32 s_min_batch_time; - u32 s_max_batch_time; +struct atmel_pmecc_caps { + const int *strengths; + int nstrengths; + int el_offset; + bool correct_erased_chunks; }; -struct trace_event_data_offsets_ext4_other_inode_update_time {}; - -struct trace_event_data_offsets_ext4_free_inode {}; - -struct trace_event_data_offsets_ext4_request_inode {}; - -struct trace_event_data_offsets_ext4_allocate_inode {}; - -struct trace_event_data_offsets_ext4_evict_inode {}; - -struct trace_event_data_offsets_ext4_drop_inode {}; - -struct trace_event_data_offsets_ext4_nfs_commit_metadata {}; - -struct trace_event_data_offsets_ext4_mark_inode_dirty {}; - -struct trace_event_data_offsets_ext4_begin_ordered_truncate {}; - -struct trace_event_data_offsets_ext4__write_begin {}; - -struct trace_event_data_offsets_ext4__write_end {}; - -struct trace_event_data_offsets_ext4_writepages {}; - -struct trace_event_data_offsets_ext4_da_write_pages {}; - -struct trace_event_data_offsets_ext4_da_write_pages_extent {}; - -struct trace_event_data_offsets_ext4_writepages_result {}; - -struct trace_event_data_offsets_ext4__folio_op {}; - -struct trace_event_data_offsets_ext4_invalidate_folio_op {}; - -struct trace_event_data_offsets_ext4_discard_blocks {}; - -struct trace_event_data_offsets_ext4__mb_new_pa {}; - -struct trace_event_data_offsets_ext4_mb_release_inode_pa {}; - -struct trace_event_data_offsets_ext4_mb_release_group_pa {}; - -struct trace_event_data_offsets_ext4_discard_preallocations {}; - -struct trace_event_data_offsets_ext4_mb_discard_preallocations {}; - -struct trace_event_data_offsets_ext4_request_blocks {}; - -struct trace_event_data_offsets_ext4_allocate_blocks {}; - -struct trace_event_data_offsets_ext4_free_blocks {}; - -struct trace_event_data_offsets_ext4_sync_file_enter {}; - -struct trace_event_data_offsets_ext4_sync_file_exit {}; - -struct trace_event_data_offsets_ext4_sync_fs {}; - -struct trace_event_data_offsets_ext4_alloc_da_blocks {}; - -struct trace_event_data_offsets_ext4_mballoc_alloc {}; - -struct trace_event_data_offsets_ext4_mballoc_prealloc {}; - -struct trace_event_data_offsets_ext4__mballoc {}; - -struct trace_event_data_offsets_ext4_forget {}; - -struct trace_event_data_offsets_ext4_da_update_reserve_space {}; - -struct trace_event_data_offsets_ext4_da_reserve_space {}; - -struct trace_event_data_offsets_ext4_da_release_space {}; - -struct trace_event_data_offsets_ext4__bitmap_load {}; - -struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; - -struct trace_event_data_offsets_ext4__fallocate_mode {}; - -struct trace_event_data_offsets_ext4_fallocate_exit {}; - -struct trace_event_data_offsets_ext4_unlink_enter {}; - -struct trace_event_data_offsets_ext4_unlink_exit {}; - -struct trace_event_data_offsets_ext4__truncate {}; - -struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {}; - -struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {}; - -struct trace_event_data_offsets_ext4__map_blocks_enter {}; - -struct trace_event_data_offsets_ext4__map_blocks_exit {}; - -struct trace_event_data_offsets_ext4_ext_load_extent {}; - -struct trace_event_data_offsets_ext4_load_inode {}; - -struct trace_event_data_offsets_ext4_journal_start_sb {}; - -struct trace_event_data_offsets_ext4_journal_start_inode {}; - -struct trace_event_data_offsets_ext4_journal_start_reserved {}; - -struct trace_event_data_offsets_ext4__trim {}; - -struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {}; - -struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; - -struct trace_event_data_offsets_ext4_ext_show_extent {}; - -struct trace_event_data_offsets_ext4_remove_blocks {}; - -struct trace_event_data_offsets_ext4_ext_rm_leaf {}; - -struct trace_event_data_offsets_ext4_ext_rm_idx {}; - -struct trace_event_data_offsets_ext4_ext_remove_space {}; - -struct trace_event_data_offsets_ext4_ext_remove_space_done {}; - -struct trace_event_data_offsets_ext4__es_extent {}; - -struct trace_event_data_offsets_ext4_es_remove_extent {}; - -struct trace_event_data_offsets_ext4_es_find_extent_range_enter {}; - -struct trace_event_data_offsets_ext4_es_find_extent_range_exit {}; - -struct trace_event_data_offsets_ext4_es_lookup_extent_enter {}; - -struct trace_event_data_offsets_ext4_es_lookup_extent_exit {}; - -struct trace_event_data_offsets_ext4__es_shrink_enter {}; - -struct trace_event_data_offsets_ext4_es_shrink_scan_exit {}; - -struct trace_event_data_offsets_ext4_collapse_range {}; +struct atmel_pmecc_user_conf_cache { + u32 cfg; + u32 sarea; + u32 saddr; + u32 eaddr; +}; -struct trace_event_data_offsets_ext4_insert_range {}; +struct atmel_pmecc; -struct trace_event_data_offsets_ext4_es_shrink {}; +struct atmel_pmecc_user { + struct atmel_pmecc_user_conf_cache cache; + struct atmel_pmecc *pmecc; + const struct atmel_pmecc_gf_tables *gf_tables; + int eccbytes; + s16 *partial_syn; + s16 *si; + s16 *lmu; + s16 *smu; + s32 *mu; + s32 *dmu; + s32 *delta; + u32 isr; +}; -struct trace_event_data_offsets_ext4_es_insert_delayed_block {}; +struct atmel_pmecc { + struct device *dev; + const struct atmel_pmecc_caps *caps; + struct { + void *base; + void *errloc; + } regs; + struct mutex lock; +}; -struct trace_event_data_offsets_ext4_fsmap_class {}; +struct atmel_pmecc_user_req { + int pagesize; + int oobsize; + struct { + int strength; + int bytes; + int sectorsize; + int nsectors; + int ooboffset; + } ecc; +}; -struct trace_event_data_offsets_ext4_getfsmap_class {}; +struct mdiobus_devres { + struct mii_bus *mii; +}; -struct trace_event_data_offsets_ext4_shutdown {}; +enum stat_access_type { + PHY = 0, + MMD = 1, +}; -struct trace_event_data_offsets_ext4_error {}; +struct at803x_hw_stat { + const char *string; + u8 reg; + u32 mask; + enum stat_access_type access_type; +}; -struct trace_event_data_offsets_ext4_prefetch_bitmaps {}; +struct at803x_priv { + int flags; + u16 clk_25m_reg; + u16 clk_25m_mask; + u8 smarteee_lpi_tw_1g; + u8 smarteee_lpi_tw_100m; + bool is_fiber; + bool is_1000basex; + struct regulator_dev *vddio_rdev; + struct regulator_dev *vddh_rdev; + long: 32; + u64 stats[3]; +}; -struct trace_event_data_offsets_ext4_lazy_itable_init {}; +struct at803x_context { + u16 bmcr; + u16 advertise; + u16 control1000; + u16 int_enable; + u16 smart_speed; + u16 led_control; +}; -struct trace_event_data_offsets_ext4_fc_replay_scan {}; +struct ethtool_flow_spec_container { + struct ethtool_rx_flow_spec fs; + struct list_head list; +}; -struct trace_event_data_offsets_ext4_fc_replay {}; +struct gfar_filer_entry { + u32 ctrl; + u32 prop; +}; -struct trace_event_data_offsets_ext4_fc_commit_start {}; +struct filer_table { + u32 index; + struct gfar_filer_entry fe[530]; +}; -struct trace_event_data_offsets_ext4_fc_commit_stop {}; +enum { + IF_PORT_UNKNOWN = 0, + IF_PORT_10BASE2 = 1, + IF_PORT_10BASET = 2, + IF_PORT_AUI = 3, + IF_PORT_100BASET = 4, + IF_PORT_100BASETX = 5, + IF_PORT_100BASEFX = 6, +}; -struct trace_event_data_offsets_ext4_fc_stats {}; +union ks8851_tx_hdr { + u8 txb[6]; + __le16 txw[3]; +}; -struct trace_event_data_offsets_ext4_fc_track_dentry {}; +struct ks8851_rxctrl { + u16 mchash[4]; + u16 rxcr1; + u16 rxcr2; +}; -struct trace_event_data_offsets_ext4_fc_track_inode {}; +struct eeprom_93cx6 { + void *data; + void (*register_read)(struct eeprom_93cx6 *); + void (*register_write)(struct eeprom_93cx6 *); + int width; + char drive_data; + char reg_data_in; + char reg_data_out; + char reg_data_clock; + char reg_chip_select; +}; -struct trace_event_data_offsets_ext4_fc_track_range {}; +struct ks8851_net { + struct net_device *netdev; + spinlock_t statelock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + union ks8851_tx_hdr txh; + u8 rxd[8]; + u8 txd[8]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + u32 msg_enable; + u16 tx_space; + u8 fid; + u16 rc_ier; + u16 rc_rxqcr; + u16 rc_ccr; + struct mii_if_info mii; + struct ks8851_rxctrl rxctrl; + struct work_struct rxctrl_work; + struct sk_buff_head txq; + unsigned int queued_len; + struct eeprom_93cx6 eeprom; + struct regulator *vdd_reg; + struct regulator *vdd_io; + struct gpio_desc *gpio; + struct mii_bus *mii_bus; + void (*lock)(struct ks8851_net *, unsigned long *); + void (*unlock)(struct ks8851_net *, unsigned long *); + unsigned int (*rdreg16)(struct ks8851_net *, unsigned int); + void (*wrreg16)(struct ks8851_net *, unsigned int, unsigned int); + void (*rdfifo)(struct ks8851_net *, u8 *, unsigned int); + void (*wrfifo)(struct ks8851_net *, struct sk_buff *, bool); + netdev_tx_t (*start_xmit)(struct sk_buff *, struct net_device *); + void (*rx_skb)(struct ks8851_net *, struct sk_buff *); + void (*flush_tx_work)(struct ks8851_net *); + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; -struct trace_event_data_offsets_ext4_fc_cleanup {}; +struct sti_dwmac_of_data { + void (*fix_retime_src)(void *, unsigned int, unsigned int); +}; -struct trace_event_data_offsets_ext4_update_sb {}; +enum { + TX_RETIME_SRC_NA = 0, + TX_RETIME_SRC_TXCLK = 1, + TX_RETIME_SRC_CLK_125 = 2, + TX_RETIME_SRC_PHYCLK = 3, + TX_RETIME_SRC_CLKGEN = 4, +}; -typedef void (*btf_trace_nlmclnt_test)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); +struct sti_dwmac { + phy_interface_t interface; + bool ext_phyclk; + u32 tx_retime_src; + struct clk *clk; + u32 ctrl_reg; + int clk_sel_reg; + struct regmap *regmap; + bool gmac_en; + u32 speed; + void (*fix_retime_src)(void *, unsigned int, unsigned int); +}; -typedef void (*btf_trace_nlmclnt_lock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); +struct phylink_mac_ops { + unsigned long (*mac_get_caps)(struct phylink_config *, phy_interface_t); + struct phylink_pcs * (*mac_select_pcs)(struct phylink_config *, phy_interface_t); + int (*mac_prepare)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_config)(struct phylink_config *, unsigned int, const struct phylink_link_state *); + int (*mac_finish)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_link_down)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_link_up)(struct phylink_config *, struct phy_device *, unsigned int, phy_interface_t, int, int, bool, bool); +}; -typedef void (*btf_trace_nlmclnt_unlock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); +struct ax88172_int_data { + __le16 res1; + u8 link; + __le16 res2; + u8 status; + __le16 res3; +} __attribute__((packed)); -typedef void (*btf_trace_nlmclnt_grant)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); +struct alps_protocol_info { + u16 version; + u8 byte0; + u8 mask0; + unsigned int flags; +}; -struct trace_event_raw_nlmclnt_lock_event { - struct trace_entry ent; - u32 oh; - u32 svid; - u32 fh; - unsigned long status; - u64 start; - u64 len; - u32 __data_loc_addr; - char __data[0]; - long: 32; +struct alps_model_info { + u8 signature[3]; + struct alps_protocol_info protocol_info; }; -struct trace_event_data_offsets_nlmclnt_lock_event { - u32 addr; +struct alps_nibble_commands { + int command; + unsigned char data; }; -enum attr_id_t { - attr_errors_magic = 0, - attr_errors_node = 1, - attr_errors_crc = 2, +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, }; -struct ubifs_attr { - struct attribute attr; - enum attr_id_t attr_id; +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 scatter_walk { - struct scatterlist *sg; - unsigned int offset; +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 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 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 bdev_inode { - struct block_device bdev; - struct inode vfs_inode; +struct alps_bitmap_point { + int start_bit; + int num_bits; }; -struct io_splice { - struct file *file_out; +struct pl031_vendor_data { + struct rtc_class_ops ops; + bool clockwatch; + bool st_weekday; + unsigned long irqflags; long: 32; - loff_t off_out; - loff_t off_in; - u64 len; - int splice_fd_in; - unsigned int flags; + time64_t range_min; + timeu64_t range_max; }; -struct once_work { - struct work_struct work; - struct static_key_true *key; - struct module *module; +struct pl031_local { + struct pl031_vendor_data *vendor; + struct rtc_device *rtc; + void *base; }; -typedef enum { - CODES = 0, - LENS = 1, - DISTS = 2, -} codetype; - -struct gf_poly { - unsigned int deg; - unsigned int c[0]; +struct davinci_i2c_platform_data { + unsigned int bus_freq; + unsigned int bus_delay; + bool gpio_recovery; + bool has_pfunc; }; -struct gf_poly_deg1 { - struct gf_poly poly; - unsigned int c[2]; +struct davinci_i2c_dev { + struct device *dev; + void *base; + struct completion cmd_complete; + struct clk *clk; + int cmd_err; + u8 *buf; + size_t buf_len; + int irq; + int stop; + u8 terminate; + long: 32; + struct i2c_adapter adapter; + struct notifier_block freq_transition; + struct davinci_i2c_platform_data *pdata; }; -struct bch_control { - unsigned int m; - unsigned int n; - unsigned int t; - unsigned int ecc_bits; - unsigned int ecc_bytes; - uint16_t *a_pow_tab; - uint16_t *a_log_tab; - uint32_t *mod8_tab; - uint32_t *ecc_buf; - uint32_t *ecc_buf2; - unsigned int *xi_tab; - unsigned int *syn; - int *cache; - struct gf_poly *elp; - struct gf_poly *poly_2t[4]; - bool swap_bits; +struct i2c_mux_pinctrl { + struct pinctrl *pinctrl; + struct pinctrl_state *states[0]; }; -typedef mpi_limb_t UWtype; +struct reg_config; -typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); +struct shdwc { + const struct reg_config *rcfg; + struct clk *sclk; + void *shdwc_base; + void *mpddrc_base; + void *pmc_base; +}; -struct uniphier_aidet_priv { - struct irq_domain *domain; - void *reg_base; - spinlock_t lock; - u32 saved_vals[8]; +struct shdwc_reg_config { + u8 wkup_pin_input; + u8 mr_rtcwk_shift; + u8 mr_rttwk_shift; + u8 sr_rtcwk_shift; + u8 sr_rttwk_shift; }; -enum meson_soc_id { - MESON_SOC_G12A = 0, - MESON_SOC_A1 = 1, +struct pmc_reg_config { + u8 mckr; }; -struct phy_meson_g12a_usb2_priv { - struct device *dev; - struct regmap *regmap; - struct clk *clk; - struct reset_control *reset; - int soc_id; +struct ddrc_reg_config { + u32 type_offset; + u32 type_mask; }; -enum boosting_vals { - BOOST_1000_UA = 1000, - BOOST_2000_UA = 2000, +struct reg_config { + struct shdwc_reg_config shdwc; + struct pmc_reg_config pmc; + struct ddrc_reg_config ddrc; }; -enum dc_level_vals { - DC_NOMINAL = 0, - DC_PLUS_5_TO_7_MV = 1, - DC_PLUS_10_TO_14_MV = 2, - DC_MINUS_5_TO_7_MV = 3, - DC_MAX = 4, +struct thermal_hwmon_device { + char type[20]; + struct device *device; + int count; + struct list_head tz_list; + struct list_head node; }; -enum current_trim { - CUR_NOMINAL = 0, - CUR_PLUS_1_56_PCT = 1, - CUR_PLUS_3_12_PCT = 2, - CUR_PLUS_4_68_PCT = 3, - CUR_PLUS_6_24_PCT = 4, - CUR_PLUS_7_8_PCT = 5, - CUR_PLUS_9_36_PCT = 6, - CUR_PLUS_10_92_PCT = 7, - CUR_PLUS_12_48_PCT = 8, - CUR_PLUS_14_04_PCT = 9, - CUR_PLUS_15_6_PCT = 10, - CUR_PLUS_17_16_PCT = 11, - CUR_PLUS_19_01_PCT = 12, - CUR_PLUS_20_58_PCT = 13, - CUR_PLUS_22_16_PCT = 14, - CUR_PLUS_23_73_PCT = 15, - CUR_MAX = 16, +struct thermal_hwmon_attr { + struct device_attribute attr; + char name[16]; }; -enum impedance_trim { - IMP_NOMINAL = 0, - IMP_MINUS_2_OHMS = 1, - IMP_MINUS_4_OMHS = 2, - IMP_MINUS_6_OHMS = 3, - IMP_MAX = 4, +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; }; -enum squelch_level { - SQLCH_NOMINAL = 0, - SQLCH_PLUS_7_MV = 1, - SQLCH_MINUS_5_MV = 2, - SQLCH_PLUS_14_MV = 3, - SQLCH_MAX = 4, +enum scrub_type { + SCRUB_UNKNOWN = 0, + SCRUB_NONE = 1, + SCRUB_SW_PROG = 2, + SCRUB_SW_SRC = 3, + SCRUB_SW_PROG_SRC = 4, + SCRUB_SW_TUNABLE = 5, + SCRUB_HW_PROG = 6, + SCRUB_HW_SRC = 7, + SCRUB_HW_PROG_SRC = 8, + SCRUB_HW_TUNABLE = 9, }; -enum rx_offset { - NO_RX_OFFSET = 0, - RX_OFFSET_PLUS_5_MV = 1, - RX_OFFSET_PLUS_10_MV = 2, - RX_OFFSET_MINUS_5_MV = 3, - RX_OFFSET_MAX = 4, +enum dev_type { + DEV_UNKNOWN = 0, + DEV_X1 = 1, + DEV_X2 = 2, + DEV_X4 = 3, + DEV_X8 = 4, + DEV_X16 = 5, + DEV_X32 = 6, + DEV_X64 = 7, }; -struct stm32_usbphyc_phy; +enum mem_type___2 { + MEM_EMPTY = 0, + MEM_RESERVED = 1, + MEM_UNKNOWN = 2, + MEM_FPM = 3, + MEM_EDO = 4, + MEM_BEDO = 5, + MEM_SDR = 6, + MEM_RDR = 7, + MEM_DDR = 8, + MEM_RDDR = 9, + MEM_RMBS = 10, + MEM_DDR2 = 11, + MEM_FB_DDR2 = 12, + MEM_RDDR2 = 13, + MEM_XDR = 14, + MEM_DDR3 = 15, + MEM_RDDR3 = 16, + MEM_LRDDR3 = 17, + MEM_LPDDR3 = 18, + MEM_DDR4 = 19, + MEM_RDDR4 = 20, + MEM_LRDDR4 = 21, + MEM_LPDDR4 = 22, + MEM_DDR5 = 23, + MEM_RDDR5 = 24, + MEM_LRDDR5 = 25, + MEM_NVDIMM = 26, + MEM_WIO2 = 27, + MEM_HBM2 = 28, +}; -struct stm32_usbphyc { - struct device *dev; - void *base; - struct clk *clk; - struct reset_control *rst; - struct stm32_usbphyc_phy **phys; - int nphys; - struct regulator *vdda1v1; - struct regulator *vdda1v8; - atomic_t n_pll_cons; - struct clk_hw clk48_hw; - int switch_setup; +enum edac_type { + EDAC_UNKNOWN = 0, + EDAC_NONE = 1, + EDAC_RESERVED = 2, + EDAC_PARITY = 3, + EDAC_EC = 4, + EDAC_SECDED = 5, + EDAC_S2ECD2ED = 6, + EDAC_S4ECD4ED = 7, + EDAC_S8ECD8ED = 8, + EDAC_S16ECD16ED = 9, }; -struct stm32_usbphyc_phy { - struct phy *phy; - struct stm32_usbphyc *usbphyc; - struct regulator *vbus; - u32 index; - bool active; - u32 tune; +enum edac_mc_layer_type { + EDAC_MC_LAYER_BRANCH = 0, + EDAC_MC_LAYER_CHANNEL = 1, + EDAC_MC_LAYER_SLOT = 2, + EDAC_MC_LAYER_CHIP_SELECT = 3, + EDAC_MC_LAYER_ALL_MEM = 4, }; -struct pll_params { - u8 ndiv; - u16 frac; +enum hw_event_mc_err_type { + HW_EVENT_ERR_CORRECTED = 0, + HW_EVENT_ERR_UNCORRECTED = 1, + HW_EVENT_ERR_DEFERRED = 2, + HW_EVENT_ERR_FATAL = 3, + HW_EVENT_ERR_INFO = 4, }; -struct abx500_pinrange; +struct mcidev_sysfs_attribute; -struct abx500_function; +struct edac_raw_error_desc { + char location[256]; + char label[296]; + long grain; + u16 error_count; + enum hw_event_mc_err_type type; + int top_layer; + int mid_layer; + int low_layer; + unsigned long page_frame_number; + unsigned long offset_in_page; + unsigned long syndrome; + const char *msg; + const char *other_detail; +}; -struct abx500_pingroup; +struct csrow_info; -struct alternate_functions; +struct edac_mc_layer; -struct abx500_gpio_irq_cluster; +struct dimm_info; -struct abx500_pinctrl_soc_data { - const struct abx500_pinrange *gpio_ranges; - unsigned int gpio_num_ranges; - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const struct abx500_function *functions; - unsigned int nfunctions; - const struct abx500_pingroup *groups; - unsigned int ngroups; - struct alternate_functions *alternate_functions; - struct abx500_gpio_irq_cluster *gpio_irq_cluster; - unsigned int ngpio_irq_cluster; - int irq_gpio_rising_offset; - int irq_gpio_falling_offset; - int irq_gpio_factor; +struct mem_ctl_info { + struct device dev; + struct bus_type *bus; + struct list_head link; + struct module *owner; + unsigned long mtype_cap; + unsigned long edac_ctl_cap; + unsigned long edac_cap; + unsigned long scrub_cap; + enum scrub_type scrub_mode; + int (*set_sdram_scrub_rate)(struct mem_ctl_info *, u32); + int (*get_sdram_scrub_rate)(struct mem_ctl_info *); + void (*edac_check)(struct mem_ctl_info *); + unsigned long (*ctl_page_to_phys)(struct mem_ctl_info *, unsigned long); + int mc_idx; + struct csrow_info **csrows; + unsigned int nr_csrows; + unsigned int num_cschannel; + unsigned int n_layers; + struct edac_mc_layer *layers; + bool csbased; + unsigned int tot_dimms; + struct dimm_info **dimms; + struct device *pdev; + const char *mod_name; + const char *ctl_name; + const char *dev_name; + void *pvt_info; + unsigned long start_time; + u32 ce_noinfo_count; + u32 ue_noinfo_count; + u32 ue_mc; + u32 ce_mc; + struct completion complete; + const struct mcidev_sysfs_attribute *mc_driver_sysfs_attributes; + struct delayed_work work; + struct edac_raw_error_desc error_desc; + int op_state; + struct dentry *debugfs; + u8 fake_inject_layer[3]; + bool fake_inject_ue; + u16 fake_inject_count; + long: 32; }; -struct abx500_pinrange { - unsigned int offset; - unsigned int npins; - int altfunc; -}; +struct rank_info; -struct abx500_function { - const char *name; - const char * const *groups; - unsigned int ngroups; +struct csrow_info { + struct device dev; + unsigned long first_page; + unsigned long last_page; + unsigned long page_mask; + int csrow_idx; + u32 ue_count; + u32 ce_count; + struct mem_ctl_info *mci; + u32 nr_channels; + struct rank_info **channels; + long: 32; }; -struct abx500_pingroup { - const char *name; - const unsigned int *pins; - const unsigned int npins; - int altsetting; +struct rank_info { + int chan_idx; + struct csrow_info *csrow; + struct dimm_info *dimm; + u32 ce_count; }; -struct alternate_functions { - unsigned int pin_number; - s8 gpiosel_bit; - s8 alt_bit1; - s8 alt_bit2; - u8 alta_val; - u8 altb_val; - u8 altc_val; +struct dimm_info { + struct device dev; + char label[32]; + unsigned int location[3]; + struct mem_ctl_info *mci; + unsigned int idx; + u32 grain; + enum dev_type dtype; + enum mem_type___2 mtype; + enum edac_type edac_mode; + u32 nr_pages; + unsigned int csrow; + unsigned int cschannel; + u16 smbios_handle; + u32 ce_count; + u32 ue_count; + long: 32; }; -struct abx500_gpio_irq_cluster { - int start; - int end; - int to_irq; +struct edac_mc_layer { + enum edac_mc_layer_type type; + unsigned int size; + bool is_virt_csrow; }; -struct tps65910_gpio { - struct gpio_chip gpio_chip; - struct tps65910 *tps65910; +struct fsl_mc_pdata { + char *name; + int edac_idx; + void *mc_vbase; + int irq; }; -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 esdhc_soc_data { + u32 flags; }; -struct vga_arb_user_card { - struct pci_dev *pdev; - unsigned int mem_cnt; - unsigned int io_cnt; +enum wp_types { + ESDHC_WP_NONE = 0, + ESDHC_WP_CONTROLLER = 1, + ESDHC_WP_GPIO = 2, }; -struct vga_arb_private { - struct list_head list; - struct pci_dev *target; - struct vga_arb_user_card cards[16]; - spinlock_t lock; +enum cd_types { + ESDHC_CD_NONE = 0, + ESDHC_CD_CONTROLLER = 1, + ESDHC_CD_GPIO = 2, + ESDHC_CD_PERMANENT = 3, }; -struct clock_config; - -struct stm32_rcc_match_data { - const struct clock_config *cfg; - unsigned int num; - unsigned int maxbinding; - u32 clear_offset; - bool (*check_security)(const struct clock_config *); +struct esdhc_platform_data { + enum wp_types wp_type; + enum cd_types cd_type; + int max_bus_width; + unsigned int delay_line; + unsigned int tuning_step; + unsigned int tuning_start_tap; + unsigned int strobe_dll_delay_target; }; -struct clock_config { - u32 id; - const char *name; - const char *parent_name; - const char * const *parent_names; - const struct clk_parent_data *parent_data; - int num_parents; - unsigned long flags; - void *cfg; - struct clk_hw * (*func)(struct device *, struct clk_hw_onecell_data *, void *, spinlock_t *, const struct clock_config *); +struct pltfm_imx_data { + u32 scratchpad; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_100mhz; + struct pinctrl_state *pins_200mhz; + const struct esdhc_soc_data *socdata; + struct esdhc_platform_data boarddata; + struct clk *clk_ipg; + struct clk *clk_ahb; + struct clk *clk_per; + unsigned int actual_clock; + unsigned int init_card_type; + enum { + NO_CMD_PENDING = 0, + MULTIBLK_IN_PROCESS = 1, + WAIT_FOR_INT = 2, + } multiblock_status; + u32 is_ddr; + struct pm_qos_request pm_qos_req; }; -struct gate_cfg; +struct oneshot_trig_data { + unsigned int invert; +}; -struct stm32_mgate; +struct scmi_shared_mem; -struct stm32_gate_cfg { - struct gate_cfg *gate; - struct stm32_mgate *mgate; - const struct clk_ops *ops; +struct scmi_mailbox { + struct mbox_client cl; + struct mbox_chan *chan; + struct mbox_chan *chan_receiver; + struct scmi_chan_info *cinfo; + struct scmi_shared_mem *shmem; }; -struct gate_cfg { - u32 reg_off; - u8 bit_idx; - u8 gate_flags; -}; +struct omap_dm_timer_ops; -struct stm32_mgate { - u8 nbr_clk; - u32 flag; +struct dmtimer_platform_data { + int (*set_timer_src)(struct platform_device *, int); + u32 timer_capability; + u32 timer_errata; + int (*get_context_loss_count)(struct device *); + const struct omap_dm_timer_ops *timer_ops; }; -struct mux_cfg; - -struct stm32_mmux; +struct omap_dm_timer; -struct stm32_mux_cfg { - struct mux_cfg *mux; - struct stm32_mmux *mmux; - const struct clk_ops *ops; +struct omap_dm_timer_ops { + struct omap_dm_timer * (*request_by_node)(struct device_node *); + struct omap_dm_timer * (*request_specific)(int); + struct omap_dm_timer * (*request)(); + int (*free)(struct omap_dm_timer *); + void (*enable)(struct omap_dm_timer *); + void (*disable)(struct omap_dm_timer *); + int (*get_irq)(struct omap_dm_timer *); + int (*set_int_enable)(struct omap_dm_timer *, unsigned int); + int (*set_int_disable)(struct omap_dm_timer *, u32); + struct clk * (*get_fclk)(struct omap_dm_timer *); + int (*start)(struct omap_dm_timer *); + int (*stop)(struct omap_dm_timer *); + int (*set_source)(struct omap_dm_timer *, int); + int (*set_load)(struct omap_dm_timer *, unsigned int); + int (*set_match)(struct omap_dm_timer *, int, unsigned int); + int (*set_pwm)(struct omap_dm_timer *, int, int, int, int); + int (*get_pwm_status)(struct omap_dm_timer *); + int (*set_prescaler)(struct omap_dm_timer *, int); + unsigned int (*read_counter)(struct omap_dm_timer *); + int (*write_counter)(struct omap_dm_timer *, unsigned int); + unsigned int (*read_status)(struct omap_dm_timer *); + int (*write_status)(struct omap_dm_timer *, unsigned int); }; -struct mux_cfg { - u32 reg_off; - u8 shift; - u8 width; - u8 mux_flags; - u32 *table; -}; +struct omap_dm_timer {}; -struct stm32_mmux { - u8 nbr_clk; - struct clk_hw *hws[2]; +enum { + REQUEST_ANY = 0, + REQUEST_BY_ID = 1, + REQUEST_BY_CAP = 2, + REQUEST_BY_NODE = 3, }; -struct stm32_reset_data { - spinlock_t lock; - struct reset_controller_dev rcdev; - void *membase; - u32 clear_offset; +struct timer_regs { + u32 ocp_cfg; + u32 tidr; + u32 tier; + u32 twer; + u32 tclr; + u32 tcrr; + u32 tldr; + u32 ttrg; + u32 twps; + u32 tmar; + u32 tcar1; + u32 tsicr; + u32 tcar2; + u32 tpir; + u32 tnir; + u32 tcvr; + u32 tocr; + u32 towr; }; -struct stm32_pll_obj { - spinlock_t *lock; - void *reg; - struct clk_hw hw; - struct clk_mux mux; +struct dmtimer { + struct omap_dm_timer cookie; + int id; + int irq; + struct clk *fclk; + void *io_base; + int irq_stat; + int irq_ena; + int irq_dis; + void *pend; + void *func_base; + atomic_t enabled; + unsigned long rate; + unsigned int reserved: 1; + unsigned int posted: 1; + unsigned int omap1: 1; + struct timer_regs context; + int revision; + u32 capability; + u32 errata; + struct platform_device *pdev; + struct list_head node; + struct notifier_block nb; + struct notifier_block fclk_nb; + unsigned long fclk_rate; }; -struct timer_cker { - spinlock_t *lock; - void *apbdiv; - void *timpre; - struct clk_hw hw; +struct of_changeset_entry { + struct list_head node; + unsigned long action; + struct device_node *np; + struct property *prop; + struct property *old_prop; }; -struct stm32_clk_mgate { - struct clk_gate gate; - struct stm32_mgate *mgate; - u32 mask; +struct of_changeset { + struct list_head entries; }; -struct stm32_clk_mmux { - struct clk_mux mux; - struct stm32_mmux *mmux; +struct omap_mbox_match_data { + u32 intr_type; }; -struct stm32_div_cfg; +struct omap_mbox; -struct stm32_composite_cfg { - const struct stm32_gate_cfg *gate; - const struct stm32_div_cfg *div; - const struct stm32_mux_cfg *mux; +struct omap_mbox_device { + struct device *dev; + struct mutex cfg_lock; + void *mbox_base; + u32 *irq_ctx; + u32 num_users; + u32 num_fifos; + u32 intr_type; + struct omap_mbox **mboxes; + struct mbox_controller controller; + struct list_head elem; }; -struct div_cfg; - -struct stm32_div_cfg { - struct div_cfg *div; - const struct clk_ops *ops; +struct omap_mbox_fifo { + unsigned long msg; + unsigned long fifo_stat; + unsigned long msg_stat; + unsigned long irqenable; + unsigned long irqstatus; + unsigned long irqdisable; + u32 intr_bit; }; -struct div_cfg { - u32 reg_off; - u8 shift; - u8 width; - u8 div_flags; - const struct clk_div_table *table; +struct omap_mbox_queue; + +struct omap_mbox { + const char *name; + int irq; + struct omap_mbox_queue *rxq; + struct device *dev; + struct omap_mbox_device *parent; + struct omap_mbox_fifo tx_fifo; + struct omap_mbox_fifo rx_fifo; + u32 intr_type; + struct mbox_chan *chan; + bool send_no_irq; }; -struct fixed_factor_cfg { - unsigned int mult; - unsigned int div; +struct kfifo { + union { + struct __kfifo kfifo; + unsigned char *type; + const unsigned char *const_type; + char (*rectype)[0]; + void *ptr; + const void *ptr_const; + }; + unsigned char buf[0]; }; -struct stm32_pll_cfg { - u32 offset; - u32 muxoff; +struct omap_mbox_queue { + spinlock_t lock; + struct kfifo fifo; + struct work_struct work; + struct omap_mbox *mbox; + bool full; }; -struct stm32_cktim_cfg { - u32 offset_apbdiv; - u32 offset_timpre; +typedef int omap_mbox_irq_t; + +typedef uintptr_t mbox_msg_t; + +struct omap_mbox_fifo_info { + int tx_id; + int tx_usr; + int tx_irq; + int rx_id; + int rx_usr; + int rx_irq; + const char *name; + bool send_no_irq; }; -struct mtk_clk_mux { - struct clk_hw hw; - struct regmap *regmap; - const struct mtk_mux *data; - spinlock_t *lock; - bool reparent; +enum { + SKB_FCLONE_UNAVAILABLE = 0, + SKB_FCLONE_ORIG = 1, + SKB_FCLONE_CLONE = 2, }; -struct mtk_mux_nb { - struct notifier_block nb; - const struct clk_ops *ops; - u8 bypass_index; - u8 original_index; +enum qdisc_state_t { + __QDISC_STATE_SCHED = 0, + __QDISC_STATE_DEACTIVATED = 1, + __QDISC_STATE_MISSED = 2, + __QDISC_STATE_DRAINING = 3, }; -struct cpg_mssr_priv { - struct reset_controller_dev rcdev; - struct device *dev; - void *base; - enum clk_reg_layout reg_layout; - spinlock_t rmw_lock; - struct device_node *np; - unsigned int num_core_clks; - unsigned int num_mod_clks; - unsigned int last_dt_core_clk; - struct raw_notifier_head notifiers; - const u16 *status_regs; - const u16 *control_regs; - const u16 *reset_regs; - const u16 *reset_clear_regs; - struct { - u32 mask; - u32 val; - } smstpcr_saved[30]; - struct clk *clks[0]; +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 cpg_mssr_clk_domain { - struct generic_pm_domain genpd; - unsigned int num_core_pm_clks; - unsigned int core_pm_clks[0]; - long: 32; +enum qdisc_state2_t { + __QDISC_STATE2_RUNNING = 0, }; -enum clk_types { - CLK_TYPE_IN = 0, - CLK_TYPE_FF = 1, - CLK_TYPE_DIV6P1 = 2, - CLK_TYPE_DIV6_RO = 3, - CLK_TYPE_FR = 4, - CLK_TYPE_CUSTOM = 5, +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 mstp_clock { - struct clk_hw hw; - u32 index; - struct cpg_mssr_priv *priv; +struct skb_array { + struct ptr_ring ring; }; -struct clk_stm32_clock_data; - -struct clk_stm32_mux { - u16 mux_id; - struct clk_hw hw; - void *base; - struct clk_stm32_clock_data *clock_data; - spinlock_t *lock; +struct pfifo_fast_priv { + struct skb_array q[3]; }; -struct stm32_gate_cfg___2; - -struct stm32_mux_cfg___2; - -struct stm32_div_cfg___2; - -struct clk_stm32_clock_data { - u16 *gate_cpt; - const struct stm32_gate_cfg___2 *gates; - const struct stm32_mux_cfg___2 *muxes; - const struct stm32_div_cfg___2 *dividers; - struct clk_hw * (*is_multi_mux)(struct clk_hw *); +struct tc_prio_qopt { + int bands; + __u8 priomap[16]; }; -struct stm32_gate_cfg___2 { - u16 offset; - u8 bit_idx; - u8 set_clr; +struct psched_ratecfg { + u64 rate_bytes_ps; + u32 mult; + u16 overhead; + u16 mpu; + u8 linklayer; + u8 shift; + long: 32; }; -struct stm32_mux_cfg___2 { - u16 offset; - u8 shift; - u8 width; - u8 flags; - u32 *table; - u8 ready; +struct tc_ratespec { + unsigned char cell_log; + __u8 linklayer; + unsigned short overhead; + short cell_align; + unsigned short mpu; + __u32 rate; }; -struct stm32_div_cfg___2 { - u16 offset; +struct psched_pktrate { + u64 rate_pkts_ps; + u32 mult; u8 shift; - u8 width; - u8 flags; - u8 ready; - const struct clk_div_table *table; }; -struct clk_stm32_gate { - u16 gate_id; - struct clk_hw hw; - void *base; - struct clk_stm32_clock_data *clock_data; - spinlock_t *lock; +struct mini_Qdisc_pair { + struct mini_Qdisc miniq1; + struct mini_Qdisc miniq2; + struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq; }; -struct clk_stm32_div { - u16 div_id; - struct clk_hw hw; - void *base; - struct clk_stm32_clock_data *clock_data; - spinlock_t *lock; +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, }; -struct clk_stm32_composite { - u16 gate_id; - u16 mux_id; - u16 div_id; - struct clk_hw hw; - void *base; - struct clk_stm32_clock_data *clock_data; - spinlock_t *lock; +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 clock_config___2; +struct pause_req_info { + struct ethnl_req_info base; + enum ethtool_mac_stats_src src; +}; -struct stm32_rcc_match_data___2 { - struct clk_hw_onecell_data *hw_clks; - unsigned int num_clocks; - const struct clock_config___2 *tab_clocks; - unsigned int maxbinding; - struct clk_stm32_clock_data *clock_data; - u32 clear_offset; - int (*check_security)(void *, const struct clock_config___2 *); - int (*multi_mux)(void *, const struct clock_config___2 *); +struct pause_reply_data { + struct ethnl_reply_data base; + struct ethtool_pauseparam pauseparam; + long: 32; + struct ethtool_pause_stats pausestat; }; -struct clock_config___2 { - unsigned long id; - int sec_id; - void *clock_cfg; - struct clk_hw * (*func)(struct device *, const struct stm32_rcc_match_data___2 *, void *, spinlock_t *, const struct clock_config___2 *); +struct uncached_list { + spinlock_t lock; + struct list_head head; + struct list_head quarantine; }; -struct tegra_clk_pll_out { - struct clk_hw hw; - void *reg; - u8 enb_bit_idx; - u8 rst_bit_idx; - spinlock_t *lock; - u8 flags; +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 dfll_fcpu_data { - const unsigned long *cpu_max_freq_table; - unsigned int cpu_max_freq_table_size; - const struct cvb_table *cpu_cvb_tables; - unsigned int cpu_cvb_tables_size; +enum { + UDP_FLAGS_CORK = 0, + UDP_FLAGS_NO_CHECK6_TX = 1, + UDP_FLAGS_NO_CHECK6_RX = 2, + UDP_FLAGS_GRO_ENABLED = 3, + UDP_FLAGS_ACCEPT_FRAGLIST = 4, + UDP_FLAGS_ACCEPT_L4 = 5, + UDP_FLAGS_ENCAP_ENABLED = 6, + UDP_FLAGS_UDPLITE_SEND_CC = 7, + UDP_FLAGS_UDPLITE_RECV_CC = 8, }; -struct uniphier_mdmac_device; +typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); -struct uniphier_mdmac_desc; +typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); -struct uniphier_mdmac_chan { - struct virt_dma_chan vc; - struct uniphier_mdmac_device *mdev; - struct uniphier_mdmac_desc *md; - void *reg_ch_base; - unsigned int chan_id; -}; +typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *); -struct uniphier_mdmac_device { - struct dma_device ddev; - struct clk *clk; - void *reg_base; - struct uniphier_mdmac_chan channels[0]; +enum rt6_nud_state { + RT6_NUD_FAIL_HARD = -3, + RT6_NUD_FAIL_PROBE = -2, + RT6_NUD_FAIL_DO_RR = -1, + RT6_NUD_SUCCEED = 1, }; -struct uniphier_mdmac_desc { - struct virt_dma_desc vd; - struct scatterlist *sgl; - unsigned int sg_len; - unsigned int sg_cur; - enum dma_transfer_direction dir; +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, }; -struct rpmpd; - -struct rpmpd_desc { - struct rpmpd **rpmpds; - size_t num_pds; - unsigned int max_state; +struct rd_msg { + struct icmp6hdr icmph; + struct in6_addr target; + struct in6_addr dest; + __u8 opt[0]; }; -struct qcom_smd_rpm; - -struct rpmpd { - struct generic_pm_domain pd; - struct generic_pm_domain *parent; - struct rpmpd *peer; - const bool active_only; - unsigned int corner; - bool enabled; - const int res_type; - const int res_id; - struct qcom_smd_rpm *rpm; - unsigned int max_state; - __le32 key; +struct rt6_rtnl_dump_arg { + struct sk_buff *skb; + struct netlink_callback *cb; + struct net *net; + struct fib_dump_filter filter; }; -struct rpmpd_req { - __le32 key; - __le32 nbytes; - __le32 value; +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 vring_desc; - -typedef struct vring_desc vring_desc_t; - -struct vring_avail; - -typedef struct vring_avail vring_avail_t; +struct rt6_exception { + struct hlist_node hlist; + struct rt6_info *rt6i; + unsigned long stamp; + struct callback_head rcu; +}; -struct vring_used; +struct __rt6_probe_work { + struct work_struct work; + struct in6_addr target; + struct net_device *dev; + netdevice_tracker dev_tracker; +}; -typedef struct vring_used vring_used_t; +struct ip6rd_flowi { + struct flowi6 fl6; + struct in6_addr gateway; +}; -struct vring { - unsigned int num; - vring_desc_t *desc; - vring_avail_t *avail; - vring_used_t *used; +struct arg_dev_net_ip { + struct net *net; + struct in6_addr *addr; }; -struct vring_desc_state_split; +struct rt6_mtu_change_arg { + struct net_device *dev; + unsigned int mtu; + struct fib6_info *f6i; +}; -struct vring_desc_extra; +struct rt6_nh { + struct fib6_info *fib6_info; + struct fib6_config r_cfg; + struct list_head next; +}; -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 fib6_nh_dm_arg { + struct net *net; + const struct in6_addr *saddr; + int oif; + int flags; + struct fib6_nh *nh; }; -struct vring_packed_desc; +struct fib6_gc_args { + int timeout; + int more; +}; -struct vring_packed_desc_event; +struct fib6_nh_match_arg { + const struct net_device *dev; + const struct in6_addr *gw; + struct fib6_nh *match; +}; -struct vring_desc_state_packed; +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 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 fib6_nh_del_cached_rt_arg { + struct fib6_config *cfg; + struct fib6_info *f6i; }; -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; +struct arg_netdev_event { + const struct net_device *dev; union { - struct vring_virtqueue_split split; - struct vring_virtqueue_packed packed; + unsigned char nh_flags; + unsigned long event; }; - bool (*notify)(struct virtqueue *); - bool we_own_ring; - struct device *dma_dev; }; -typedef __u64 __virtio64; - -typedef __u32 __virtio32; - -typedef __u16 __virtio16; +struct trace_event_data_offsets_fib6_table_lookup {}; -struct vring_desc { - __virtio64 addr; - __virtio32 len; - __virtio16 flags; - __virtio16 next; +struct fib6_nh_age_excptn_arg { + struct fib6_gc_args *gc_args; + unsigned long now; }; -struct vring_avail { - __virtio16 flags; - __virtio16 idx; - __virtio16 ring[0]; +struct netevent_redirect { + struct dst_entry *old; + struct dst_entry *new; + struct neighbour *neigh; + const void *daddr; }; -struct vring_used_elem { - __virtio32 id; - __virtio32 len; +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; }; -typedef struct vring_used_elem vring_used_elem_t; - -struct vring_used { - __virtio16 flags; - __virtio16 idx; - vring_used_elem_t ring[0]; +struct fib6_nh_frl_arg { + u32 flags; + int oif; + int strict; + int *mpri; + bool *do_rr; + struct fib6_nh *nh; }; -struct vring_desc_state_split { - void *data; - struct vring_desc *indir_desc; +struct fib6_nh_rd_arg { + struct fib6_result *res; + struct flowi6 *fl6; + const struct in6_addr *gw; + struct rt6_info **ret; }; -struct vring_desc_extra { - dma_addr_t addr; - u32 len; - u16 flags; - u16 next; +struct fib6_nh_excptn_arg { + struct rt6_info *rt; + int plen; }; -struct vring_packed_desc { - __le64 addr; - __le32 len; - __le16 id; - __le16 flags; +enum rpc_gss_svc { + RPC_GSS_SVC_NONE = 1, + RPC_GSS_SVC_INTEGRITY = 2, + RPC_GSS_SVC_PRIVACY = 3, }; -struct vring_packed_desc_event { - __le16 off_wrap; - __le16 flags; +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 vring_desc_state_packed { - void *data; - struct vring_packed_desc *indir_desc; - u16 num; - u16 last; -}; +struct gss_pipe; -struct pbias_reg_info { - u32 enable; - u32 enable_mask; - u32 disable_val; - u32 vmode; - unsigned int enable_time; - char *name; - const unsigned int *pbias_volt_table; - int n_voltages; +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 pbias_of_data { - unsigned int offset; +struct gss_pipe { + struct rpc_pipe_dir_object pdo; + struct rpc_pipe *pipe; + struct rpc_clnt *clnt; + const char *name; + struct kref kref; }; -struct rpi_reset { - struct reset_controller_dev rcdev; - struct rpi_firmware *fw; -}; +struct gss_cl_ctx; -enum translation_map { - LAT1_MAP = 0, - GRAF_MAP = 1, - IBMPC_MAP = 2, - USER_MAP = 3, - FIRST_MAP = 0, - LAST_MAP = 3, +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 uni_pagedict { - u16 **uni_pgdir[32]; - unsigned long refcount; - unsigned long sum; - unsigned char *inverse_translations[4]; - u16 *inverse_trans_unicode; +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; }; -struct atmel_dma_buffer { - unsigned char *buf; - dma_addr_t dma_addr; - unsigned int dma_size; - unsigned int ofs; +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; }; -struct atmel_uart_port { - struct uart_port uart; - struct clk *clk; - struct clk *gclk; - int may_wakeup; - u32 backup_imr; - int break_active; - bool use_dma_rx; - bool use_pdc_rx; - short pdc_rx_idx; - struct atmel_dma_buffer pdc_rx[2]; - bool use_dma_tx; - bool use_pdc_tx; - struct atmel_dma_buffer pdc_tx; - spinlock_t lock_tx; - spinlock_t lock_rx; - struct dma_chan *chan_tx; - struct dma_chan *chan_rx; - struct dma_async_tx_descriptor *desc_tx; - struct dma_async_tx_descriptor *desc_rx; - dma_cookie_t cookie_tx; - dma_cookie_t cookie_rx; - struct scatterlist sg_tx; - struct scatterlist sg_rx; - struct tasklet_struct tasklet_rx; - struct tasklet_struct tasklet_tx; - atomic_t tasklet_shutdown; - unsigned int irq_status_prev; - unsigned int tx_len; - struct circ_buf rx_ring; - struct mctrl_gpios *gpios; - u32 backup_mode; - u32 backup_brgr; - unsigned int tx_done_mask; - u32 fifo_size; - u32 rts_high; - u32 rts_low; - bool ms_irq_enabled; - u32 rtor; - bool is_usart; - bool has_frac_baudrate; - bool has_hw_timer; - struct timer_list uart_timer; - bool tx_stopped; - bool suspended; - unsigned int pending; - unsigned int pending_status; - spinlock_t lock_suspended; - bool hd_start_rx; - unsigned int fidi_min; - unsigned int fidi_max; - struct { - u32 cr; - u32 mr; - u32 imr; - u32 brgr; - u32 rtor; - u32 ttgr; - u32 fmr; - u32 fimr; - } cache; - int (*prepare_rx)(struct uart_port *); - int (*prepare_tx)(struct uart_port *); - void (*schedule_rx)(struct uart_port *); - void (*schedule_tx)(struct uart_port *); - void (*release_rx)(struct uart_port *); - void (*release_tx)(struct uart_port *); - long: 32; +struct gss_alloc_pdo { + struct rpc_clnt *clnt; + const char *name; + const struct rpc_pipe_ops *upcall_ops; }; -struct atmel_uart_char { - u16 status; - u16 ch; +typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long); + +typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long); + +struct pt_regs_offset { + const char *name; + int offset; }; -struct drm_vblank_work { - struct kthread_work base; - struct drm_vblank_crtc *vblank; - u64 count; - int cancelling; - struct list_head node; - long: 32; +enum arm_regset { + REGSET_GPR = 0, + REGSET_FPR = 1, + REGSET_VFP = 2, }; -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 ptrace_syscall_dir { + PTRACE_SYSCALL_ENTER = 0, + PTRACE_SYSCALL_EXIT = 1, }; -struct rc_parameters_data { - u8 bpp; - u8 bpc; - struct rc_parameters params; +struct trace_event_raw_sys_enter { + struct trace_entry ent; + long id; + unsigned long args[6]; + char __data[0]; }; -enum drm_dsc_params_type { - DRM_DSC_1_2_444 = 0, - DRM_DSC_1_1_PRE_SCR = 1, - DRM_DSC_1_2_422 = 2, - DRM_DSC_1_2_420 = 3, +struct trace_event_raw_sys_exit { + struct trace_entry ent; + long id; + long ret; + char __data[0]; }; -struct dp_sdp_header { - u8 HB0; - u8 HB1; - u8 HB2; - u8 HB3; +struct trace_event_data_offsets_sys_enter {}; + +struct trace_event_data_offsets_sys_exit {}; + +enum { + HI3620_CTRL = 0, + ERROR_CTRL = 1, }; -struct internal_container { - struct klist_node node; - struct attribute_container *cont; - long: 32; - struct device classdev; +enum rwsem_waiter_type { + RWSEM_WAITING_FOR_WRITE = 0, + RWSEM_WAITING_FOR_READ = 1, }; -struct eeprom_93cx6 { - void *data; - void (*register_read)(struct eeprom_93cx6 *); - void (*register_write)(struct eeprom_93cx6 *); - int width; - char drive_data; - char reg_data_in; - char reg_data_out; - char reg_data_clock; - char reg_chip_select; +enum rwsem_wake_type { + RWSEM_WAKE_ANY = 0, + RWSEM_WAKE_READERS = 1, + RWSEM_WAKE_READ_OWNED = 2, }; -struct axp20x_dev { - struct device *dev; - int irq; - unsigned long irq_flags; - struct regmap *regmap; - struct regmap_irq_chip_data *regmap_irqc; - long variant; - int nr_cells; - const struct mfd_cell *cells; - const struct regmap_config *regmap_cfg; - const struct regmap_irq_chip *regmap_irq_chip; +enum owner_state { + OWNER_NULL = 1, + OWNER_WRITER = 2, + OWNER_READER = 4, + OWNER_NONSPINNABLE = 8, }; -struct usbhs_hcd_omap { - int nports; - struct clk **utmi_clk; - struct clk **hsic60m_clk; - struct clk **hsic480m_clk; - struct clk *xclk60mhsp1_ck; - struct clk *xclk60mhsp2_ck; - struct clk *utmi_p1_gfclk; - struct clk *utmi_p2_gfclk; - struct clk *init_60m_fclk; - struct clk *ehci_logic_fck; - void *uhh_base; - struct usbhs_omap_platform_data *pdata; - u32 usbhs_rev; +struct rwsem_waiter { + struct list_head list; + struct task_struct *task; + enum rwsem_waiter_type type; + unsigned long timeout; + bool handoff_set; }; -enum scsi_devinfo_key { - SCSI_DEVINFO_GLOBAL = 0, - SCSI_DEVINFO_SPI = 1, +typedef void (*btf_trace_console)(void *, const char *, size_t); + +struct printk_buffers { + char outbuf[2048]; + char scratchbuf[1024]; }; -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 latched_seq { + seqcount_latch_t latch; long: 32; + u64 val[2]; }; -struct scsi_dev_info_list_table { - struct list_head node; - struct list_head scsi_dev_info_list; - const char *name; - int key; +struct console_cmdline { + char name[16]; + int index; + bool user_specified; + char *options; }; -struct double_list { - struct list_head *top; - struct list_head *bottom; +enum devkmsg_log_masks { + DEVKMSG_LOG_MASK_ON = 1, + DEVKMSG_LOG_MASK_OFF = 2, + DEVKMSG_LOG_MASK_LOCK = 4, }; -enum mtd_file_modes { - MTD_FILE_MODE_NORMAL = 0, - MTD_FILE_MODE_OTP_FACTORY = 1, - MTD_FILE_MODE_OTP_USER = 2, - MTD_FILE_MODE_RAW = 3, +enum printk_info_flags { + LOG_NEWLINE = 2, + LOG_CONT = 8, }; -struct mtd_write_req { - __u64 start; - __u64 len; - __u64 ooblen; - __u64 usr_data; - __u64 usr_oob; - __u8 mode; - __u8 padding[7]; +enum cons_flags { + CON_PRINTBUFFER = 1, + CON_CONSDEV = 2, + CON_ENABLED = 4, + CON_BOOT = 8, + CON_ANYTIME = 16, + CON_BRL = 32, + CON_EXTENDED = 64, + CON_SUSPENDED = 128, + CON_NBCON = 256, }; -struct mtd_read_req_ecc_stats { - __u32 uncorrectable_errors; - __u32 corrected_bitflips; - __u32 max_bitflips; +enum con_msg_format_flags { + MSG_FORMAT_DEFAULT = 0, + MSG_FORMAT_SYSLOG = 1, }; -struct mtd_read_req { - __u64 start; - __u64 len; - __u64 ooblen; - __u64 usr_data; - __u64 usr_oob; - __u8 mode; - __u8 padding[7]; - struct mtd_read_req_ecc_stats ecc_stats; - long: 32; +enum con_flush_mode { + CONSOLE_FLUSH_PENDING = 0, + CONSOLE_REPLAY_ALL = 1, }; -struct mtd_info_user { - __u8 type; - __u32 flags; - __u32 size; - __u32 erasesize; - __u32 writesize; - __u32 oobsize; - __u64 padding; +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 mtd_file_info { - struct mtd_info *mtd; - enum mtd_file_modes mode; +struct trace_event_raw_console { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -struct region_info_user { - __u32 offset; - __u32 erasesize; - __u32 numblocks; - __u32 regionindex; +struct trace_event_data_offsets_console { + u32 msg; }; -struct erase_info_user { - __u32 start; - __u32 length; +struct printk_message { + struct printk_buffers *pbufs; + unsigned int outbuf_len; + u64 seq; + unsigned long dropped; + long: 32; }; -struct mtd_oob_buf { - __u32 start; - __u32 length; - unsigned char __attribute__((btf_type_tag("user"))) *ptr; +struct devkmsg_user { + atomic64_t seq; + struct ratelimit_state rs; + struct mutex lock; + struct printk_buffers pbufs; }; -struct erase_info_user64 { - __u64 start; - __u64 length; +struct kmsg_dump_iter { + u64 cur_seq; + u64 next_seq; }; -struct mtd_oob_buf64 { - __u64 start; - __u32 pad; - __u32 length; - __u64 usr_ptr; -}; +typedef void (*btf_trace_timer_init)(void *, struct timer_list *); -struct nand_oobinfo { - __u32 useecc; - __u32 eccbytes; - __u32 oobfree[16]; - __u32 eccpos[32]; -}; +typedef void (*btf_trace_timer_start)(void *, struct timer_list *, unsigned long, unsigned int); -struct nand_oobfree { - __u32 offset; - __u32 length; -}; +typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, unsigned long); -struct nand_ecclayout_user { - __u32 eccbytes; - __u32 eccpos[64]; - __u32 oobavail; - struct nand_oobfree oobfree[8]; -}; +typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *); -struct atmel_nand_controller_ops; +typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *); -struct atmel_nand_controller_caps { - bool has_dma; - bool legacy_of_bindings; - u32 ale_offs; - u32 cle_offs; - const char *ebi_csa_regmap_name; - const struct atmel_nand_controller_ops *ops; -}; +typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode); -struct atmel_nand_controller; +typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode); -struct atmel_nand; +typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *); -struct atmel_nand_controller_ops { - int (*probe)(struct platform_device *, const struct atmel_nand_controller_caps *); - int (*remove)(struct atmel_nand_controller *); - void (*nand_init)(struct atmel_nand_controller *, struct atmel_nand *); - int (*ecc_init)(struct nand_chip *); - int (*setup_interface)(struct atmel_nand *, int, const struct nand_interface_config *); - int (*exec_op)(struct atmel_nand *, const struct nand_operation *, bool); -}; +typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *); -struct atmel_pmecc; +typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *); -struct atmel_nand_controller { - struct nand_controller base; - const struct atmel_nand_controller_caps *caps; - struct device *dev; - struct regmap *smc; - struct dma_chan *dmac; - struct atmel_pmecc *pmecc; - struct list_head chips; - struct clk *mck; -}; +typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, unsigned long long); -enum atmel_nand_rb_type { - ATMEL_NAND_NO_RB = 0, - ATMEL_NAND_NATIVE_RB = 1, - ATMEL_NAND_GPIO_RB = 2, -}; +typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, unsigned long long); -struct atmel_nand_rb { - enum atmel_nand_rb_type type; - union { - struct gpio_desc *gpio; - int id; - }; -}; +typedef void (*btf_trace_tick_stop)(void *, int, int); -struct atmel_smc_cs_conf { - u32 setup; - u32 pulse; - u32 cycle; - u32 timings; - u32 mode; +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[16]; + struct hlist_head vectors[512]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct atmel_nand_cs { - int id; - struct atmel_nand_rb rb; - struct gpio_desc *csgpio; - struct { - void *virt; - dma_addr_t dma; - } io; - struct atmel_smc_cs_conf smcconf; +struct trace_event_raw_timer_class { + struct trace_entry ent; + void *timer; + char __data[0]; }; -struct atmel_pmecc_user; - -struct atmel_nand { - struct list_head node; - struct device *dev; - long: 32; - struct nand_chip base; - struct atmel_nand_cs *activecs; - struct atmel_pmecc_user *pmecc; - struct gpio_desc *cdgpio; - int numcs; - struct atmel_nand_cs cs[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 atmel_smc_nand_ebi_csa_cfg { - u32 offs; - u32 nfd0_on_d16; +struct trace_event_raw_timer_expire_entry { + struct trace_entry ent; + void *timer; + unsigned long now; + void *function; + unsigned long baseclk; + char __data[0]; }; -enum atmel_nfc_data_xfer { - ATMEL_NFC_NO_DATA = 0, - ATMEL_NFC_READ_DATA = 1, - ATMEL_NFC_WRITE_DATA = 2, +struct trace_event_raw_hrtimer_init { + struct trace_entry ent; + void *hrtimer; + clockid_t clockid; + enum hrtimer_mode mode; + char __data[0]; }; -struct atmel_nfc_op { - u8 cs; - u8 ncmds; - u8 cmds[2]; - u8 naddrs; - u8 addrs[5]; - enum atmel_nfc_data_xfer data; - u32 wait; - u32 errors; +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]; + long: 32; }; -struct atmel_hsmc_reg_layout; - -struct atmel_hsmc_nand_controller { - struct atmel_nand_controller base; - struct { - struct gen_pool *pool; - void *virt; - dma_addr_t dma; - } sram; - const struct atmel_hsmc_reg_layout *hsmc_layout; - struct regmap *io; - struct atmel_nfc_op op; - struct completion complete; - u32 cfg; - int irq; - struct clk *clk; +struct trace_event_raw_hrtimer_expire_entry { + struct trace_entry ent; + void *hrtimer; + long: 32; + s64 now; + void *function; + char __data[0]; + long: 32; }; -struct atmel_hsmc_reg_layout { - unsigned int timing_regs_offset; +struct trace_event_raw_hrtimer_class { + struct trace_entry ent; + void *hrtimer; + char __data[0]; }; -struct atmel_smc_nand_controller { - struct atmel_nand_controller base; - struct regmap *ebi_csa_regmap; - struct atmel_smc_nand_ebi_csa_cfg *ebi_csa; +struct trace_event_raw_itimer_state { + struct trace_entry ent; + int which; + long: 32; + unsigned long long expires; + long value_sec; + long value_nsec; + long interval_sec; + long interval_nsec; + char __data[0]; }; -struct atmel_pmecc_user_req { - int pagesize; - int oobsize; - struct { - int strength; - int bytes; - int sectorsize; - int nsectors; - int ooboffset; - } ecc; +struct trace_event_raw_itimer_expire { + struct trace_entry ent; + int which; + pid_t pid; + unsigned long long now; + char __data[0]; }; -struct sun4i_spi { - struct spi_controller *master; - void *base_addr; - struct clk *hclk; - struct clk *mclk; - struct completion done; - const u8 *tx_buf; - u8 *rx_buf; - int len; +struct trace_event_raw_tick_stop { + struct trace_entry ent; + int success; + int dependency; + char __data[0]; }; -struct ip101g_hw_stat { - const char *name; - int page; +struct process_timer { + struct timer_list timer; + struct task_struct *task; }; -enum ip101gr_sel_intr32 { - IP101GR_SEL_INTR32_KEEP = 0, - IP101GR_SEL_INTR32_INTR = 1, - IP101GR_SEL_INTR32_RXER = 2, -}; +struct trace_event_data_offsets_timer_class {}; -struct ip101a_g_phy_priv { - enum ip101gr_sel_intr32 sel_intr32; - long: 32; - u64 stats[2]; -}; +struct trace_event_data_offsets_timer_start {}; -enum fec_txbuf_type { - FEC_TXBUF_T_SKB = 0, - FEC_TXBUF_T_XDP_NDO = 1, -}; +struct trace_event_data_offsets_timer_expire_entry {}; -struct fec_stop_mode_gpr { - struct regmap *gpr; - u8 reg; - u8 bit; -}; +struct trace_event_data_offsets_hrtimer_init {}; -struct imx_sc_ipc; +struct trace_event_data_offsets_hrtimer_start {}; -struct fec_enet_priv_tx_q; +struct trace_event_data_offsets_hrtimer_expire_entry {}; -struct fec_enet_priv_rx_q; +struct trace_event_data_offsets_hrtimer_class {}; -struct fec_enet_private { - void *hwp; - struct net_device *netdev; - struct clk *clk_ipg; - struct clk *clk_ahb; - struct clk *clk_ref; - struct clk *clk_enet_out; - struct clk *clk_ptp; - struct clk *clk_2x_txclk; - bool ptp_clk_on; - struct mutex ptp_clk_mutex; - unsigned int num_tx_queues; - unsigned int num_rx_queues; - struct fec_enet_priv_tx_q *tx_queue[3]; - struct fec_enet_priv_rx_q *rx_queue[3]; - unsigned int total_tx_ring_size; - unsigned int total_rx_ring_size; - struct platform_device *pdev; - int dev_id; - struct mii_bus *mii_bus; - uint phy_speed; - phy_interface_t phy_interface; - struct device_node *phy_node; - bool rgmii_txc_dly; - bool rgmii_rxc_dly; - bool rpm_active; - int link; - int full_duplex; - int speed; - int irq[3]; - bool bufdesc_ex; - int pause_flag; - int wol_flag; - int wake_irq; - u32 quirks; - struct napi_struct napi; - int csum_flags; - struct work_struct tx_timeout_work; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_caps; - unsigned long last_overflow_check; - spinlock_t tmreg_lock; - struct cyclecounter cc; - struct timecounter tc; - int rx_hwtstamp_filter; - u32 base_incval; - u32 cycle_speed; - int hwts_rx_en; - int hwts_tx_en; - struct delayed_work time_keep; - struct regulator *reg_phy; - struct fec_stop_mode_gpr stop_gpr; - struct pm_qos_request pm_qos_req; - unsigned int tx_align; - unsigned int rx_align; - unsigned int rx_pkts_itr; - unsigned int rx_time_itr; - unsigned int tx_pkts_itr; - unsigned int tx_time_itr; - unsigned int itr_clk_rate; - struct ethtool_eee eee; - unsigned int clk_ref_rate; - u32 rx_copybreak; - unsigned int ptp_inc; - int pps_channel; - unsigned int reload_period; - int pps_enable; - unsigned int next_counter; - long: 32; - struct hrtimer perout_timer; - u64 perout_stime; - struct imx_sc_ipc *ipc_handle; - struct bpf_prog *xdp_prog; - u64 ethtool_stats[0]; +struct trace_event_data_offsets_itimer_state {}; + +struct trace_event_data_offsets_itimer_expire {}; + +struct trace_event_data_offsets_tick_stop {}; + +enum error_detector { + ERROR_DETECTOR_KFENCE = 0, + ERROR_DETECTOR_KASAN = 1, + ERROR_DETECTOR_WARN = 2, }; -struct bufdesc; +typedef void (*btf_trace_error_report_end)(void *, enum error_detector, unsigned long); -struct bufdesc_prop { - int qid; - struct bufdesc *base; - struct bufdesc *last; - struct bufdesc *cur; - void *reg_desc_active; - dma_addr_t dma; - unsigned short ring_size; - unsigned char dsize; - unsigned char dsize_log2; +struct trace_event_raw_error_report_template { + struct trace_entry ent; + enum error_detector error_detector; + unsigned long id; + char __data[0]; }; -struct fec_tx_buffer { +struct trace_event_data_offsets_error_report_template {}; + +struct bpf_iter__bpf_link { union { - struct sk_buff *skb; - struct xdp_frame *xdp; + struct bpf_iter_meta *meta; + }; + union { + struct bpf_link *link; }; - enum fec_txbuf_type type; }; -struct fec_enet_priv_tx_q { - struct bufdesc_prop bd; - unsigned char *tx_bounce[1024]; - struct fec_tx_buffer tx_buf[1024]; - unsigned short tx_stop_threshold; - unsigned short tx_wake_threshold; - struct bufdesc *dirty_tx; - char *tso_hdrs; - dma_addr_t tso_hdrs_dma; +struct bpf_iter_seq_link_info { + u32 link_id; }; -struct bufdesc { - __le16 cbd_datlen; - __le16 cbd_sc; - __le32 cbd_bufaddr; +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 fec_enet_priv_txrx_info { - int offset; - struct page *page; - struct sk_buff *skb; +struct bpf_cpumap_val { + __u32 qsize; + union { + int fd; + __u32 id; + } bpf_prog; }; -struct fec_enet_priv_rx_q { - struct bufdesc_prop bd; - struct fec_enet_priv_txrx_info rx_skb_info[256]; - struct page_pool *page_pool; - long: 32; +struct bpf_cpu_map_entry { + u32 cpu; + int map_id; + struct xdp_bulk_queue __attribute__((btf_type_tag("percpu"))) *bulkq; + struct ptr_ring *queue; + struct task_struct *kthread; + struct bpf_cpumap_val value; + struct bpf_prog *prog; + struct completion kthread_running; + struct rcu_work free_work; +}; + +struct bpf_cpu_map { + struct bpf_map map; + struct bpf_cpu_map_entry __attribute__((btf_type_tag("rcu"))) **cpu_map; long: 32; long: 32; long: 32; @@ -106357,9 +110225,6 @@ struct fec_enet_priv_rx_q { long: 32; long: 32; long: 32; - struct xdp_rxq_info xdp_rxq; - u32 stats[7]; - u8 id; long: 32; long: 32; long: 32; @@ -106370,3418 +110235,3332 @@ struct fec_enet_priv_rx_q { long: 32; }; -struct smsc911x_data; - -struct smsc911x_ops { - u32 (*reg_read)(struct smsc911x_data *, u32); - void (*reg_write)(struct smsc911x_data *, u32, u32); - void (*rx_readfifo)(struct smsc911x_data *, unsigned int *, unsigned int); - void (*tx_writefifo)(struct smsc911x_data *, unsigned int *, unsigned int); +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 smsc911x_platform_config { - unsigned int irq_polarity; - unsigned int irq_type; - unsigned int flags; - unsigned int shift; - phy_interface_t phy_interface; - unsigned char mac[6]; -}; +typedef u32 uprobe_opcode_t; -struct smsc911x_data { - void *ioaddr; - unsigned int idrev; - unsigned int generation; - struct smsc911x_platform_config config; - spinlock_t mac_lock; - spinlock_t dev_lock; - struct mii_bus *mii_bus; - unsigned int using_extphy; - int last_duplex; - int last_carrier; - u32 msg_enable; - unsigned int gpio_setting; - unsigned int gpio_orig_setting; - struct net_device *dev; - struct napi_struct napi; - unsigned int software_irq_signal; - char loopback_tx_pkt[64]; - char loopback_rx_pkt[64]; - unsigned int resetcount; - unsigned int multicast_update_pending; - unsigned int set_bits_mask; - unsigned int clear_bits_mask; - unsigned int hashhi; - unsigned int hashlo; - const struct smsc911x_ops *ops; - struct regulator_bulk_data supplies[2]; - struct gpio_desc *reset_gpiod; - struct clk *clk; +struct arch_uprobe { + u8 insn[4]; + unsigned long ixol[2]; + uprobe_opcode_t bpinsn; + bool simulate; + u32 pcreg; + void (*prehandler)(struct arch_uprobe *, struct arch_uprobe_task *, struct pt_regs *); + void (*posthandler)(struct arch_uprobe *, struct arch_uprobe_task *, struct pt_regs *); + struct arch_probes_insn asi; }; -struct stm32_dwmac; +struct uprobe_consumer; -struct stm32_ops { - int (*set_mode)(struct plat_stmmacenet_data *); - int (*clk_prepare)(struct stm32_dwmac *, bool); - int (*suspend)(struct stm32_dwmac *); - void (*resume)(struct stm32_dwmac *); - int (*parse_data)(struct stm32_dwmac *, struct device *); - u32 syscfg_eth_mask; +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; + long: 32; }; -struct stm32_dwmac { - struct clk *clk_tx; - struct clk *clk_rx; - struct clk *clk_eth_ck; - struct clk *clk_ethstp; - struct clk *syscfg_clk; - int ext_phyclk; - int enable_eth_ck; - int eth_clk_sel_reg; - int eth_ref_clk_sel_reg; - int irq_pwr_wakeup; - u32 mode_reg; - struct regmap *regmap; - u32 speed; - const struct stm32_ops *ops; - struct device *dev; +enum uprobe_filter_ctx { + UPROBE_FILTER_REGISTER = 0, + UPROBE_FILTER_UNREGISTER = 1, + UPROBE_FILTER_MMAP = 2, }; -struct usb_dev_cap_header { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; +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 usb_descriptor_header { - __u8 bLength; - __u8 bDescriptorType; +enum rp_check { + RP_CHECK_CALL = 0, + RP_CHECK_CHAIN_CALL = 1, + RP_CHECK_RET = 2, }; -typedef void (*btf_trace_dwc3_readl)(void *, void *, u32, u32); +struct delayed_uprobe { + struct list_head list; + struct uprobe *uprobe; + struct mm_struct *mm; +}; -typedef void (*btf_trace_dwc3_writel)(void *, void *, u32, u32); +struct __uprobe_key { + struct inode *inode; + long: 32; + loff_t offset; +}; -typedef void (*btf_trace_dwc3_event)(void *, u32, struct dwc3 *); +struct map_info___2 { + struct map_info___2 *next; + struct mm_struct *mm; + unsigned long vaddr; +}; -typedef void (*btf_trace_dwc3_ctrl_req)(void *, struct usb_ctrlrequest *); +typedef void (*btf_trace_kmem_cache_alloc)(void *, unsigned long, const void *, struct kmem_cache *, gfp_t, int); -typedef void (*btf_trace_dwc3_alloc_request)(void *, struct dwc3_request *); +typedef void (*btf_trace_kmalloc)(void *, unsigned long, const void *, size_t, size_t, gfp_t, int); -typedef void (*btf_trace_dwc3_free_request)(void *, struct dwc3_request *); +typedef void (*btf_trace_kfree)(void *, unsigned long, const void *); -typedef void (*btf_trace_dwc3_ep_queue)(void *, struct dwc3_request *); +typedef void (*btf_trace_kmem_cache_free)(void *, unsigned long, const void *, const struct kmem_cache *); -typedef void (*btf_trace_dwc3_ep_dequeue)(void *, struct dwc3_request *); +typedef void (*btf_trace_mm_page_free)(void *, struct page *, unsigned int); -typedef void (*btf_trace_dwc3_gadget_giveback)(void *, struct dwc3_request *); +typedef void (*btf_trace_mm_page_free_batched)(void *, struct page *); -typedef void (*btf_trace_dwc3_gadget_generic_cmd)(void *, unsigned int, u32, int); +typedef void (*btf_trace_mm_page_alloc)(void *, struct page *, unsigned int, gfp_t, int); -typedef void (*btf_trace_dwc3_gadget_ep_cmd)(void *, struct dwc3_ep *, unsigned int, struct dwc3_gadget_ep_cmd_params *, int); +typedef void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int, int); -typedef void (*btf_trace_dwc3_prepare_trb)(void *, struct dwc3_ep *, struct dwc3_trb *); +typedef void (*btf_trace_mm_page_pcpu_drain)(void *, struct page *, unsigned int, int); -typedef void (*btf_trace_dwc3_complete_trb)(void *, struct dwc3_ep *, struct dwc3_trb *); +typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int); -typedef void (*btf_trace_dwc3_gadget_ep_enable)(void *, struct dwc3_ep *); +typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int); -typedef void (*btf_trace_dwc3_gadget_ep_disable)(void *, struct dwc3_ep *); +struct kmalloc_info_struct { + const char *name[4]; + unsigned int size; +}; -struct trace_event_raw_dwc3_log_io { +enum slab_state { + DOWN___3 = 0, + PARTIAL = 1, + PARTIAL_NODE = 2, + UP___3 = 3, + FULL = 4, +}; + +struct trace_event_raw_kmem_cache_alloc { struct trace_entry ent; - void *base; - u32 offset; - u32 value; + 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_dwc3_log_event { +struct trace_event_raw_kmalloc { struct trace_entry ent; - u32 event; - u32 ep0state; + 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_dwc3_log_ctrl { +struct trace_event_raw_kfree { struct trace_entry ent; - __u8 bRequestType; - __u8 bRequest; - __u16 wValue; - __u16 wIndex; - __u16 wLength; + unsigned long call_site; + const void *ptr; char __data[0]; }; -struct trace_event_raw_dwc3_log_request { +struct trace_event_raw_kmem_cache_free { struct trace_entry ent; + unsigned long call_site; + const void *ptr; u32 __data_loc_name; - struct dwc3_request *req; - unsigned int actual; - unsigned int length; - int status; - int zero; - int short_not_ok; - int no_interrupt; char __data[0]; }; -struct trace_event_raw_dwc3_log_generic_cmd { +struct trace_event_raw_mm_page_free { struct trace_entry ent; - unsigned int cmd; - u32 param; - int status; + unsigned long pfn; + unsigned int order; char __data[0]; }; -struct trace_event_raw_dwc3_log_gadget_ep_cmd { +struct trace_event_raw_mm_page_free_batched { struct trace_entry ent; - u32 __data_loc_name; - unsigned int cmd; - u32 param0; - u32 param1; - u32 param2; - int cmd_status; + unsigned long pfn; char __data[0]; }; -struct trace_event_raw_dwc3_log_trb { +struct trace_event_raw_mm_page_alloc { struct trace_entry ent; - u32 __data_loc_name; - struct dwc3_trb *trb; - u32 bpl; - u32 bph; - u32 size; - u32 ctrl; - u32 type; - u32 enqueue; - u32 dequeue; + unsigned long pfn; + unsigned int order; + unsigned long gfp_flags; + int migratetype; char __data[0]; }; -struct trace_event_raw_dwc3_log_ep { +struct trace_event_raw_mm_page { struct trace_entry ent; - u32 __data_loc_name; - unsigned int maxpacket; - unsigned int maxpacket_limit; - unsigned int max_streams; - unsigned int maxburst; - unsigned int flags; - unsigned int direction; - u8 trb_enqueue; - u8 trb_dequeue; + unsigned long pfn; + unsigned int order; + int migratetype; + int percpu_refill; char __data[0]; }; -struct trace_event_data_offsets_dwc3_log_request { - u32 name; +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_data_offsets_dwc3_log_gadget_ep_cmd { - u32 name; +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_data_offsets_dwc3_log_trb { - u32 name; +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_dwc3_log_ep { +struct trace_event_data_offsets_kmem_cache_free { u32 name; }; -struct dwc3_event_type { - u32 is_devspec: 1; - u32 type: 7; - u32 reserved8_31: 24; -}; - -struct dwc3_event_devt { - u32 one_bit: 1; - u32 device_event: 7; - u32 type: 4; - u32 reserved15_12: 4; - u32 event_info: 9; - u32 reserved31_25: 7; -}; - -struct dwc3_event_gevt { - u32 one_bit: 1; - u32 device_event: 7; - u32 phy_port_number: 4; - u32 reserved31_12: 20; +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]; }; -union dwc3_event { - u32 raw; - struct dwc3_event_type type; - struct dwc3_event_depevt depevt; - struct dwc3_event_devt devt; - struct dwc3_event_gevt gevt; +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_dwc3_log_io {}; - -struct trace_event_data_offsets_dwc3_log_event {}; - -struct trace_event_data_offsets_dwc3_log_ctrl {}; - -struct trace_event_data_offsets_dwc3_log_generic_cmd {}; +struct trace_event_data_offsets_kmem_cache_alloc {}; -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 trace_event_data_offsets_kmalloc {}; -struct xhci_driver_data { - u64 quirks; - const char *firmware; - long: 32; -}; +struct trace_event_data_offsets_kfree {}; -typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); +struct trace_event_data_offsets_mm_page_free {}; -struct input_event { - __kernel_ulong_t __sec; - __kernel_ulong_t __usec; - __u16 type; - __u16 code; - __s32 value; -}; +struct trace_event_data_offsets_mm_page_free_batched {}; -struct ps2pp_info { - u8 model; - u8 kind; - u16 features; -}; +struct trace_event_data_offsets_mm_page_alloc {}; -struct tps6586x_rtc { - struct device *dev; - struct rtc_device *rtc; - int irq; - bool irq_en; -}; +struct trace_event_data_offsets_mm_page {}; -struct tegra_i2c_hw_feature { - bool has_continue_xfer_support; - bool has_per_pkt_xfer_complete_irq; - bool has_config_load_reg; - u32 clk_divisor_hs_mode; - u32 clk_divisor_std_mode; - u32 clk_divisor_fast_mode; - u32 clk_divisor_fast_plus_mode; - bool has_multi_master_mode; - bool has_slcg_override_reg; - bool has_mst_fifo; - const struct i2c_adapter_quirks *quirks; - bool supports_bus_clear; - bool has_apb_dma; - u32 tlow_std_mode; - u32 thigh_std_mode; - u32 tlow_fast_fastplus_mode; - u32 thigh_fast_fastplus_mode; - u32 setup_hold_time_std_mode; - u32 setup_hold_time_fast_fast_plus_mode; - u32 setup_hold_time_hs_mode; - bool has_interface_timing_reg; -}; +struct trace_event_data_offsets_mm_page_pcpu_drain {}; -enum msg_end_type { - MSG_END_STOP = 0, - MSG_END_REPEAT_START = 1, - MSG_END_CONTINUE = 2, -}; +struct trace_event_data_offsets_mm_page_alloc_extfrag {}; -typedef u32 acpi_status; +struct trace_event_data_offsets_rss_stat {}; -struct tegra_i2c_dev { - struct device *dev; - long: 32; - struct i2c_adapter adapter; - const struct tegra_i2c_hw_feature *hw; - struct reset_control *rst; - unsigned int cont_id; - unsigned int irq; - phys_addr_t base_phys; - void *base; - struct clk_bulk_data clocks[2]; - unsigned int nclocks; - struct clk *div_clk; - struct i2c_timings timings; - struct completion msg_complete; - size_t msg_buf_remaining; - unsigned int msg_len; - int msg_err; - u8 *msg_buf; - struct completion dma_complete; - struct dma_chan *dma_chan; - unsigned int dma_buf_size; - struct device *dma_dev; - dma_addr_t dma_phys; - void *dma_buf; - bool multimaster_mode; - bool atomic_mode; - bool dma_mode; - bool msg_read; - bool is_dvc; - bool is_vi; - long: 32; +struct file_dedupe_range_info { + __s64 dest_fd; + __u64 dest_offset; + __u64 bytes_deduped; + __s32 status; + __u32 reserved; }; -struct reboot_mode_driver { - struct device *dev; - struct list_head head; - int (*write)(struct reboot_mode_driver *, unsigned int); - struct notifier_block reboot_notifier; +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 pm8916_pon { - struct device *dev; - struct regmap *regmap; - u32 baseaddr; - struct reboot_mode_driver reboot_mode; - long reason_shift; +struct file_handle { + __u32 handle_bytes; + int handle_type; + unsigned char f_handle[0]; }; -struct sama5d4_wdt { - struct watchdog_device wdd; - void *reg_base; - u32 mr; - u32 ir; - unsigned long last_ping; - bool need_irq; - bool sam9x60_support; +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[8]; }; -struct cpufreq_stats { - unsigned int total_trans; - long: 32; - unsigned long long last_time; - unsigned int max_state; - unsigned int state_num; - unsigned int last_index; - u64 *time_in_state; - unsigned int *freq_table; - unsigned int *trans_table; - unsigned int reset_pending; +struct ext4_system_zone { + struct rb_node node; long: 32; - unsigned long long reset_time; + ext4_fsblk_t start_blk; + unsigned int count; + u32 ino; }; -enum tick_broadcast_mode { - TICK_BROADCAST_OFF = 0, - TICK_BROADCAST_ON = 1, - TICK_BROADCAST_FORCE = 2, +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 mmc_gpio { - struct gpio_desc *ro_gpio; - struct gpio_desc *cd_gpio; - irqreturn_t (*cd_gpio_isr)(int, void *); - char *ro_label; - char *cd_label; - u32 cd_debounce_delay_ms; - int cd_irq; +struct ext4_xattr_info { + const char *name; + const void *value; + size_t value_len; + int name_index; + int in_inode; }; -struct meson_mx_sdhc_data { - void (*init_hw)(struct mmc_host *); - void (*set_pdma)(struct mmc_host *); - void (*wait_before_send)(struct mmc_host *); - bool hardware_flush_all_cmds; +struct ext4_xattr_search { + struct ext4_xattr_entry *first; + void *base; + void *end; + struct ext4_xattr_entry *here; + int not_found; }; -struct meson_mx_sdhc_host { - struct mmc_host *mmc; - struct mmc_request *mrq; - struct mmc_command *cmd; - int error; - struct regmap *regmap; - struct clk *pclk; - struct clk *sd_clk; - struct clk_bulk_data bulk_clks[4]; - bool bulk_clks_enabled; - const struct meson_mx_sdhc_data *platform; +struct ext4_xattr_ibody_find { + struct ext4_xattr_search s; + struct ext4_iloc iloc; }; -struct simplefb_platform_data { - u32 width; - u32 height; - u32 stride; - const char *format; +struct ext4_xattr_header { + __le32 h_magic; + __le32 h_refcount; + __le32 h_blocks; + __le32 h_hash; + __le32 h_checksum; + __u32 h_reserved[3]; }; -struct mct_clock_event_device { - struct clock_event_device evt; - unsigned long base; - char name[11]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct ext4_xattr_block_find { + struct ext4_xattr_search s; + struct buffer_head *bh; }; enum { - MCT_INT_SPI = 0, - MCT_INT_PPI = 1, -}; - -struct nvec_ps2 { - struct serio *ser_dev; - struct notifier_block notifier; - struct nvec_chip *nvec; -}; - -typedef int (*rproc_handle_resource_t)(struct rproc *, void *, int, int); - -enum rproc_features { - RPROC_FEAT_ATTACH_ON_RECOVERY = 0, - RPROC_MAX_FEATURES = 1, -}; - -enum rsc_handling_status { - RSC_HANDLED = 0, - RSC_IGNORED = 1, -}; - -struct rproc_subdev { - struct list_head node; - int (*prepare)(struct rproc_subdev *); - int (*start)(struct rproc_subdev *); - void (*stop)(struct rproc_subdev *, bool); - void (*unprepare)(struct rproc_subdev *); + FILEID_HIGH_OFF = 0, + FILEID_LOW_OFF = 1, + FILE_I_TYPE_OFF = 2, + EMBED_FH_OFF = 3, }; -struct rproc_vdev; - -struct rproc_vring { - void *va; - int num; - u32 da; - u32 align; - int notifyid; - struct rproc_vdev *rvdev; - struct virtqueue *vq; +enum { + COMMIT_RESTING = 0, + COMMIT_BACKGROUND = 1, + COMMIT_REQUIRED = 2, + COMMIT_RUNNING_BACKGROUND = 3, + COMMIT_RUNNING_REQUIRED = 4, + COMMIT_BROKEN = 5, }; -struct rproc_vdev { - struct rproc_subdev subdev; - struct platform_device *pdev; - unsigned int id; - struct list_head node; - struct rproc *rproc; - struct rproc_vring vring[2]; - u32 rsc_offset; - u32 index; +struct done_ref { + struct rb_node rb; + int lnum; }; -struct rproc_vdev_data { - u32 rsc_offset; - unsigned int id; - u32 index; - struct fw_rsc_vdev *rsc; +struct ubifs_ref_node { + struct ubifs_ch ch; + __le32 lnum; + __le32 offs; + __le32 jhead; + __u8 padding[28]; }; -struct gnet_estimator { - signed char interval; - unsigned char ewma_log; +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 net_test { - char name[32]; - int (*fn)(struct net_device *); +enum dd_prio { + DD_RT_PRIO = 0, + DD_BE_PRIO = 1, + DD_IDLE_PRIO = 2, + DD_PRIO_MAX = 2, }; -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; +enum dd_data_dir { + DD_READ = 0, + DD_WRITE = 1, }; -struct net_test_priv { - struct net_packet_attrs *packet; - struct packet_type pt; - struct completion comp; - int double_vlan; - int vlan_id; - int ok; +struct io_stats_per_prio { + uint32_t inserted; + uint32_t merged; + uint32_t dispatched; + atomic_t completed; }; -enum ethtool_fec_config_bits { - ETHTOOL_FEC_NONE_BIT = 0, - ETHTOOL_FEC_AUTO_BIT = 1, - ETHTOOL_FEC_OFF_BIT = 2, - ETHTOOL_FEC_RS_BIT = 3, - ETHTOOL_FEC_BASER_BIT = 4, - ETHTOOL_FEC_LLRS_BIT = 5, +struct dd_per_prio { + struct list_head dispatch; + struct rb_root sort_list[2]; + struct list_head fifo_list[2]; + sector_t latest_pos[2]; + struct io_stats_per_prio stats; }; -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, +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 { - 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, + IORING_RSRC_FILE = 0, + IORING_RSRC_BUFFER = 1, }; -struct fec_stat_grp { - u64 stats[9]; - u8 cnt; +struct io_rsrc_update { + struct file *file; long: 32; + u64 arg; + u32 nr_args; + u32 offset; }; -struct fec_reply_data { - struct ethnl_reply_data base; - unsigned long fec_link_modes[4]; - u32 active_fec; - u8 fec_auto; - long: 32; - struct fec_stat_grp corr; - struct fec_stat_grp uncorr; - struct fec_stat_grp corr_bits; -}; +struct scm_fp_list; -struct tcp_plb_state { - u8 consec_cong_rounds: 5; - u8 unused: 3; - u32 pause_until; +struct unix_skb_parms { + struct pid *pid; + kuid_t uid; + kgid_t gid; + struct scm_fp_list *fp; + u32 consumed; }; -struct icmp6_err { - int err; - int fatal; +struct scm_fp_list { + short count; + short max; + struct user_struct *user; + struct file *fp[253]; }; -enum { - XFRM_LOOKUP_ICMP = 1, - XFRM_LOOKUP_QUEUE = 2, - XFRM_LOOKUP_KEEP_DST_REF = 4, +struct io_uring_rsrc_update2 { + __u32 offset; + __u32 resv; + __u64 data; + __u64 tags; + __u32 nr; + __u32 resv2; }; -enum flowlabel_reflect { - FLOWLABEL_REFLECT_ESTABLISHED = 1, - FLOWLABEL_REFLECT_TCP_RESET = 2, - FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4, +struct io_uring_rsrc_register { + __u32 nr; + __u32 flags; + __u64 resv2; + __u64 data; + __u64 tags; }; -struct ipv6_destopt_hao { - __u8 type; - __u8 length; - struct in6_addr addr; -} __attribute__((packed)); +struct icu_chip_data { + int nr_irqs; + unsigned int virq_base; + unsigned int cascade_irq; + void *reg_status; + void *reg_mask; + unsigned int conf_enable; + unsigned int conf_disable; + unsigned int conf_mask; + unsigned int conf2_mask; + unsigned int clr_mfp_irq_base; + unsigned int clr_mfp_hwirq; + struct irq_domain *domain; +}; -struct icmpv6_msg { - struct sk_buff *skb; - int offset; - uint8_t type; +struct mmp_intc_conf { + unsigned int conf_enable; + unsigned int conf_disable; + unsigned int conf_mask; + unsigned int conf2_mask; }; -struct printf_spec { - unsigned int type: 8; - int field_width: 24; - unsigned int flags: 8; - unsigned int base: 8; - int precision: 16; +struct intc_irqpin_config { + int irlm_bit; }; -struct page_flags_fields { +struct intc_irqpin_iomem { + void *iomem; + unsigned long (*read)(void *); + void (*write)(void *, unsigned long); 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 intc_irqpin_priv; -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 intc_irqpin_irq { + int hw_irq; + int requested_irq; + int domain_irq; + struct intc_irqpin_priv *p; }; -struct op { - u32 (* const fn)(int, int, int, u32); - u32 flags; +struct intc_irqpin_priv { + struct intc_irqpin_iomem iomem[6]; + struct intc_irqpin_irq irq[8]; + unsigned int sense_bitfield_width; + struct platform_device *pdev; + struct irq_chip irq_chip; + struct irq_domain *irq_domain; + atomic_t wakeup_path; + unsigned int shared_irqs: 1; + u8 shared_irq_mask; }; -struct vfp_double { - s16 exponent; - u16 sign; - long: 32; - u64 significand; +struct aspeed_i2c_ic { + void *base; + int parent_irq; + struct irq_domain *irq_domain; }; -struct vfp_single { - s16 exponent; - u16 sign; - u32 significand; +enum sysc_soc { + SOC_UNKNOWN = 0, + SOC_2420 = 1, + SOC_2430 = 2, + SOC_3430 = 3, + SOC_AM35 = 4, + SOC_3630 = 5, + SOC_4430 = 6, + SOC_4460 = 7, + SOC_4470 = 8, + SOC_5430 = 9, + SOC_AM3 = 10, + SOC_AM4 = 11, + SOC_DRA7 = 12, }; -struct param_attribute { - struct module_attribute mattr; - const struct kernel_param *param; +struct sysc_soc_info { + unsigned long general_purpose: 1; + enum sysc_soc soc; + struct mutex list_lock; + struct list_head disabled_modules; + struct list_head restored_modules; + struct notifier_block nb; }; -struct module_param_attrs { - unsigned int num; - struct attribute_group grp; - struct param_attribute attrs[0]; +struct sysc_dts_quirk { + const char *name; + u32 mask; }; -enum { - KERNEL_PARAM_OPS_FL_NOARG = 1, +struct sysc_revision_quirk { + const char *name; + u32 base; + int rev_offset; + int sysc_offset; + int syss_offset; + u32 revision; + u32 revision_mask; + u32 quirks; }; -enum { - KERNEL_PARAM_FL_UNSAFE = 1, - KERNEL_PARAM_FL_HWPARAM = 2, +enum sysc_registers { + SYSC_REVISION = 0, + SYSC_SYSCONFIG = 1, + SYSC_SYSSTATUS = 2, + SYSC_MAX_REGS = 3, }; -struct kmalloced_param { - struct list_head list; - char val[0]; +enum sysc_clocks { + SYSC_FCK = 0, + SYSC_ICK = 1, + SYSC_OPTFCK0 = 2, + SYSC_OPTFCK1 = 3, + SYSC_OPTFCK2 = 4, + SYSC_OPTFCK3 = 5, + SYSC_OPTFCK4 = 6, + SYSC_OPTFCK5 = 7, + SYSC_OPTFCK6 = 8, + SYSC_OPTFCK7 = 9, + SYSC_MAX_CLOCKS = 10, }; -struct platform_s2idle_ops { - int (*begin)(); - int (*prepare)(); - int (*prepare_late)(); - void (*check)(); - bool (*wake)(); - void (*restore_early)(); - void (*restore)(); - void (*end)(); +struct sysc_address { + unsigned long base; + struct list_head node; }; -enum s2idle_states { - S2IDLE_STATE_NONE = 0, - S2IDLE_STATE_ENTER = 1, - S2IDLE_STATE_WAKE = 2, +struct sysc { + struct device *dev; + long: 32; + u64 module_pa; + u32 module_size; + void *module_va; + int offsets[3]; + struct ti_sysc_module_data *mdata; + struct clk **clocks; + const char **clock_roles; + int nr_clocks; + struct reset_control *rsts; + const char *legacy_mode; + const struct sysc_capabilities *cap; + struct sysc_config cfg; + struct ti_sysc_cookie cookie; + const char *name; + u32 revision; + u32 sysconfig; + unsigned int reserved: 1; + unsigned int enabled: 1; + unsigned int needs_resume: 1; + unsigned int child_needs_resume: 1; + struct delayed_work idle_work; + void (*pre_reset_quirk)(struct sysc *); + void (*post_reset_quirk)(struct sysc *); + void (*reset_done_quirk)(struct sysc *); + void (*module_enable_quirk)(struct sysc *); + void (*module_disable_quirk)(struct sysc *); + void (*module_unlock_quirk)(struct sysc *); + void (*module_lock_quirk)(struct sysc *); }; -enum { - TEST_NONE = 0, - TEST_CORE = 1, - TEST_CPUS = 2, - TEST_PLATFORM = 3, - TEST_DEVICES = 4, - TEST_FREEZER = 5, - __TEST_AFTER_LAST = 6, +struct sysc_module { + struct sysc *ddata; + struct list_head node; }; -struct swait_queue { - struct task_struct *task; - struct list_head task_list; +struct priv { + struct clk *clk; + void *base; }; -struct timezone { - int tz_minuteswest; - int tz_dsttime; +struct zynq_pctrl_group { + const char *name; + const unsigned int *pins; + const unsigned int npins; }; -struct old_timeval32 { - old_time32_t tv_sec; - s32 tv_usec; +struct zynq_pinmux_function { + const char *name; + const char * const *groups; + unsigned int ngroups; + unsigned int mux_val; + u32 mux; + u32 mux_mask; + u8 mux_shift; }; -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +enum zynq_pinmux_functions { + ZYNQ_PMUX_can0 = 0, + ZYNQ_PMUX_can1 = 1, + ZYNQ_PMUX_ethernet0 = 2, + ZYNQ_PMUX_ethernet1 = 3, + ZYNQ_PMUX_gpio0 = 4, + ZYNQ_PMUX_i2c0 = 5, + ZYNQ_PMUX_i2c1 = 6, + ZYNQ_PMUX_mdio0 = 7, + ZYNQ_PMUX_mdio1 = 8, + ZYNQ_PMUX_qspi0 = 9, + ZYNQ_PMUX_qspi1 = 10, + ZYNQ_PMUX_qspi_fbclk = 11, + ZYNQ_PMUX_qspi_cs1 = 12, + ZYNQ_PMUX_spi0 = 13, + ZYNQ_PMUX_spi1 = 14, + ZYNQ_PMUX_spi0_ss = 15, + ZYNQ_PMUX_spi1_ss = 16, + ZYNQ_PMUX_sdio0 = 17, + ZYNQ_PMUX_sdio0_pc = 18, + ZYNQ_PMUX_sdio0_cd = 19, + ZYNQ_PMUX_sdio0_wp = 20, + ZYNQ_PMUX_sdio1 = 21, + ZYNQ_PMUX_sdio1_pc = 22, + ZYNQ_PMUX_sdio1_cd = 23, + ZYNQ_PMUX_sdio1_wp = 24, + ZYNQ_PMUX_smc0_nor = 25, + ZYNQ_PMUX_smc0_nor_cs1 = 26, + ZYNQ_PMUX_smc0_nor_addr25 = 27, + ZYNQ_PMUX_smc0_nand = 28, + ZYNQ_PMUX_ttc0 = 29, + ZYNQ_PMUX_ttc1 = 30, + ZYNQ_PMUX_uart0 = 31, + ZYNQ_PMUX_uart1 = 32, + ZYNQ_PMUX_usb0 = 33, + ZYNQ_PMUX_usb1 = 34, + ZYNQ_PMUX_swdt0 = 35, + ZYNQ_PMUX_MAX_FUNC = 36, }; -typedef __kernel_long_t __kernel_suseconds_t; - -typedef __kernel_suseconds_t suseconds_t; - -struct __kernel_itimerspec { - struct __kernel_timespec it_interval; - struct __kernel_timespec it_value; +enum zynq_io_standards { + zynq_iostd_min = 0, + zynq_iostd_lvcmos18 = 1, + zynq_iostd_lvcmos25 = 2, + zynq_iostd_lvcmos33 = 3, + zynq_iostd_hstl = 4, + zynq_iostd_max = 5, }; -struct old_itimerspec32 { - struct old_timespec32 it_interval; - struct old_timespec32 it_value; +struct zynq_pinctrl { + struct pinctrl_dev *pctrl; + struct regmap *syscon; + u32 pctrl_offset; + const struct zynq_pctrl_group *groups; + unsigned int ngroups; + const struct zynq_pinmux_function *funcs; + unsigned int nfuncs; }; -struct ftrace_page; - -struct ftrace_rec_iter { - struct ftrace_page *pg; - int index; -}; +struct bcm4908_pinctrl_pin_setup; -struct ftrace_page { - struct ftrace_page *next; - struct dyn_ftrace *records; - int index; - int order; +struct bcm4908_pinctrl_grp { + const char *name; + const struct bcm4908_pinctrl_pin_setup *pins; + const unsigned int num_pins; }; -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 bcm4908_pinctrl_pin_setup { + unsigned int number; + unsigned int function; }; -struct ftrace_profile_page; - -struct ftrace_profile_stat { - atomic_t disabled; - struct hlist_head *hash; - struct ftrace_profile_page *pages; - struct ftrace_profile_page *start; - struct tracer_stat stat; +struct bcm4908_pinctrl_function { + const char *name; + const char * const *groups; + const unsigned int num_groups; }; -struct ftrace_profile { - struct hlist_node node; - unsigned long ip; - unsigned long counter; - unsigned long long time; - unsigned long long time_squared; +struct bcm4908_pinctrl { + struct device *dev; + void *base; + struct mutex mutex; + struct pinctrl_dev *pctldev; + struct pinctrl_desc pctldesc; }; -struct ftrace_profile_page { - struct ftrace_profile_page *next; - unsigned long index; - struct ftrace_profile records[0]; +enum { + LOCK_LEVEL1 = 1, + LOCK_LEVEL2 = 2, + LOCK_ALL = 3, }; -struct ftrace_graph_ent; +struct rzn1_pinctrl_regs; -typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); +struct rzn1_pin_group; -struct ftrace_graph_ret; +struct rzn1_pmx_func; -typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); +struct rzn1_pinctrl { + struct device *dev; + struct clk *clk; + struct pinctrl_dev *pctl; + struct rzn1_pinctrl_regs *lev1; + struct rzn1_pinctrl_regs *lev2; + u32 lev1_protect_phys; + u32 lev2_protect_phys; + int mdio_func[2]; + struct rzn1_pin_group *groups; + unsigned int ngroups; + struct rzn1_pmx_func *functions; + unsigned int nfunctions; +}; -struct fgraph_ops { - trace_func_graph_ent_t entryfunc; - trace_func_graph_ret_t retfunc; +struct rzn1_pinctrl_regs { + u32 conf[170]; + u32 pad0[86]; + u32 status_protect; + u32 l2_mdio[2]; }; -struct ftrace_graph_ent { - unsigned long func; - int depth; +struct rzn1_pin_group { + const char *name; + const char *func; + unsigned int npins; + unsigned int *pins; + u8 *pin_ids; }; -struct ftrace_graph_ret { - unsigned long func; - int depth; - unsigned int overrun; - unsigned long long calltime; - unsigned long long rettime; +struct rzn1_pmx_func { + const char *name; + const char **groups; + unsigned int num_groups; }; -enum { - FTRACE_FL_ENABLED = 2147483648, - FTRACE_FL_REGS = 1073741824, - FTRACE_FL_REGS_EN = 536870912, - FTRACE_FL_TRAMP = 268435456, - FTRACE_FL_TRAMP_EN = 134217728, - FTRACE_FL_IPMODIFY = 67108864, - FTRACE_FL_DISABLED = 33554432, - FTRACE_FL_DIRECT = 16777216, - FTRACE_FL_DIRECT_EN = 8388608, - FTRACE_FL_CALL_OPS = 4194304, - FTRACE_FL_CALL_OPS_EN = 2097152, - FTRACE_FL_TOUCHED = 1048576, - FTRACE_FL_MODIFIED = 524288, +struct pca953x_reg_config { + int direction; + int output; + int input; + int invert; }; -enum { - FTRACE_MODIFY_ENABLE_FL = 1, - FTRACE_MODIFY_MAY_SLEEP_FL = 2, +struct pca953x_chip { + unsigned int gpio_start; + struct mutex i2c_lock; + struct regmap *regmap; + struct mutex irq_lock; + unsigned long irq_mask[2]; + unsigned long irq_stat[2]; + unsigned long irq_trig_raise[2]; + unsigned long irq_trig_fall[2]; + atomic_t wakeup_path; + struct i2c_client *client; + struct gpio_chip gpio_chip; + unsigned long driver_data; + struct regulator *regulator; + const struct pca953x_reg_config *regs; + u8 (*recalc_addr)(struct pca953x_chip *, int, int); + bool (*check_reg)(struct pca953x_chip *, unsigned int, u32); }; -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, +typedef struct mutex *class_mutex_t; + +struct pca953x_platform_data { + unsigned int gpio_base; + int irq_base; }; -enum { - FTRACE_ITER_FILTER = 1, - FTRACE_ITER_NOTRACE = 2, - FTRACE_ITER_PRINTALL = 4, - FTRACE_ITER_DO_PROBES = 8, - FTRACE_ITER_PROBE = 16, - FTRACE_ITER_MOD = 32, - FTRACE_ITER_ENABLED = 64, - FTRACE_ITER_TOUCHED = 128, - FTRACE_ITER_ADDRS = 256, +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); }; -enum { - FTRACE_HASH_FL_MOD = 1, +struct vga_arb_user_card { + struct pci_dev *pdev; + unsigned int mem_cnt; + unsigned int io_cnt; }; -enum { - TRACE_PIDS = 1, - TRACE_NO_PIDS = 2, +struct vga_arb_private { + struct list_head list; + struct pci_dev *target; + struct vga_arb_user_card cards[16]; + spinlock_t lock; }; -enum { - FTRACE_UPDATE_IGNORE = 0, - FTRACE_UPDATE_MAKE_CALL = 1, - FTRACE_UPDATE_MODIFY_CALL = 2, - FTRACE_UPDATE_MAKE_NOP = 3, +struct rcar_pci { + struct device *dev; + void *reg; + struct resource mem_res; + struct resource *cfg_res; + int irq; }; -enum graph_filter_type { - GRAPH_FILTER_NOTRACE = 0, - GRAPH_FILTER_FUNCTION = 1, +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, }; -struct ftrace_func_mapper { - struct ftrace_hash hash; +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, }; -struct ftrace_func_entry { - struct hlist_node hlist; - unsigned long ip; - unsigned long direct; +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, }; -struct ftrace_func_map { - struct ftrace_func_entry entry; - void *data; +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, }; -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; +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, }; -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 hdmi_any_infoframe { + enum hdmi_infoframe_type type; + unsigned char version; + unsigned char length; }; -struct ftrace_mod_func { - struct list_head list; - char *name; - unsigned long ip; - unsigned int size; +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 ftrace_init_func { - struct list_head list; - unsigned long ip; +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 ftrace_mod_load { - struct list_head list; - char *func; - char *module; - int enable; +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 trace_parser { - bool cont; - char *buffer; - unsigned int idx; - unsigned int size; +struct dp_sdp_header { + u8 HB0; + u8 HB1; + u8 HB2; + u8 HB3; }; -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; - long: 32; +struct dp_sdp { + struct dp_sdp_header sdp_header; + u8 db[32]; }; -struct ftrace_glob { - char *search; - unsigned int len; - int type; +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 ftrace_graph_data { - struct ftrace_hash *hash; - struct ftrace_func_entry *entry; - int idx; - enum graph_filter_type type; - struct ftrace_hash *new_hash; - const struct seq_operations *seq_ops; - struct trace_parser parser; +struct sh_mobile_lcdc_format_info { + u32 fourcc; + unsigned int bpp; + bool yuv; + u32 lddfr; }; -struct kallsyms_data { - unsigned long *addrs; - const char **syms; - size_t cnt; - size_t found; +enum sh_mobile_lcdc_overlay_mode { + LCDC_OVERLAY_BLEND = 0, + LCDC_OVERLAY_ROP3 = 1, }; -struct bpf_cpu_map_entry; +enum { + LCDC_CHAN_DISABLED = 0, + LCDC_CHAN_MAINLCD = 1, + LCDC_CHAN_SUBLCD = 2, +}; -struct xdp_bulk_queue { - void *q[8]; - struct list_head flush_node; - struct bpf_cpu_map_entry *obj; - unsigned int count; +enum { + RGB8 = 0, + RGB9 = 4, + RGB12A = 5, + RGB12B = 6, + RGB16 = 7, + RGB18 = 10, + RGB24 = 11, + YUV422 = 15, + SYS8A = 4096, + SYS8B = 4097, + SYS8C = 4098, + SYS8D = 4099, + SYS9 = 4100, + SYS12 = 4101, + SYS16A = 4103, + SYS16B = 4104, + SYS16C = 4105, + SYS18 = 4106, + SYS24 = 4107, }; -struct bpf_cpumap_val { - __u32 qsize; - union { - int fd; - __u32 id; - } bpf_prog; +enum { + LCDC_CLK_BUS = 0, + LCDC_CLK_PERIPHERAL = 1, + LCDC_CLK_EXTERNAL = 2, }; -struct bpf_cpu_map; +enum v4l2_colorspace { + V4L2_COLORSPACE_DEFAULT = 0, + V4L2_COLORSPACE_SMPTE170M = 1, + V4L2_COLORSPACE_SMPTE240M = 2, + V4L2_COLORSPACE_REC709 = 3, + V4L2_COLORSPACE_BT878 = 4, + V4L2_COLORSPACE_470_SYSTEM_M = 5, + V4L2_COLORSPACE_470_SYSTEM_BG = 6, + V4L2_COLORSPACE_JPEG = 7, + V4L2_COLORSPACE_SRGB = 8, + V4L2_COLORSPACE_OPRGB = 9, + V4L2_COLORSPACE_BT2020 = 10, + V4L2_COLORSPACE_RAW = 11, + V4L2_COLORSPACE_DCI_P3 = 12, + V4L2_COLORSPACE_LAST = 13, +}; -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 completion kthread_running; +enum { + LDDCKPAT1R = 0, + LDDCKPAT2R = 1, + LDMT1R = 2, + LDMT2R = 3, + LDMT3R = 4, + LDDFR = 5, + LDSM1R = 6, + LDSM2R = 7, + LDSA1R = 8, + LDSA2R = 9, + LDMLSR = 10, + LDHCNR = 11, + LDHSYNR = 12, + LDVLNR = 13, + LDVSYNR = 14, + LDPMR = 15, + LDHAJR = 16, + NR_CH_REGS = 17, }; -struct bpf_cpu_map { - struct bpf_map map; - struct bpf_cpu_map_entry __attribute__((btf_type_tag("rcu"))) **cpu_map; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct sh_mobile_lcdc_priv; + +struct sh_mobile_lcdc_entity; + +struct sh_mobile_lcdc_chan { + struct sh_mobile_lcdc_priv *lcdc; + struct sh_mobile_lcdc_entity *tx_dev; + const struct sh_mobile_lcdc_chan_cfg *cfg; + unsigned long *reg_offs; + unsigned long ldmt1r_value; + unsigned long enabled; + struct mutex open_lock; + int use_count; + void *fb_mem; + unsigned long fb_size; + dma_addr_t dma_handle; + unsigned long pan_y_offset; + unsigned long frame_end; + wait_queue_head_t frame_end_wait; + struct completion vsync_completion; + const struct sh_mobile_lcdc_format_info *format; + u32 colorspace; + unsigned int xres; + unsigned int xres_virtual; + unsigned int yres; + unsigned int yres_virtual; + unsigned int pitch; + unsigned long base_addr_y; + unsigned long base_addr_c; + unsigned int line_size; + struct backlight_device *bl; + unsigned int bl_brightness; + struct fb_info *info; + u32 pseudo_palette[16]; + struct { + unsigned int width; + unsigned int height; + struct fb_videomode mode; + } display; + struct fb_deferred_io defio; + struct scatterlist *sglist; + int blank_status; }; -struct fsxattr { - __u32 fsx_xflags; - __u32 fsx_extsize; - __u32 fsx_nextents; - __u32 fsx_projid; - __u32 fsx_cowextsize; - unsigned char fsx_pad[8]; +struct sh_mobile_lcdc_overlay { + struct sh_mobile_lcdc_chan *channel; + const struct sh_mobile_lcdc_overlay_cfg *cfg; + struct fb_info *info; + unsigned int index; + unsigned long base; + bool enabled; + enum sh_mobile_lcdc_overlay_mode mode; + unsigned int alpha; + unsigned int rop3; + void *fb_mem; + unsigned long fb_size; + dma_addr_t dma_handle; + unsigned long base_addr_y; + unsigned long base_addr_c; + unsigned long pan_y_offset; + const struct sh_mobile_lcdc_format_info *format; + unsigned int xres; + unsigned int xres_virtual; + unsigned int yres; + unsigned int yres_virtual; + unsigned int pitch; + int pos_x; + int pos_y; }; -struct file_clone_range { - __s64 src_fd; - __u64 src_offset; - __u64 src_length; - __u64 dest_offset; +struct sh_mobile_lcdc_priv { + void *base; + int irq; + atomic_t hw_usecnt; + struct device *dev; + struct clk *dot_clk; + unsigned long lddckr; + struct sh_mobile_lcdc_chan ch[2]; + struct sh_mobile_lcdc_overlay overlays[4]; + int started; + int forced_fourcc; }; -struct file_dedupe_range_info { - __s64 dest_fd; - __u64 dest_offset; - __u64 bytes_deduped; - __s32 status; - __u32 reserved; +struct sh_mobile_lcdc_entity_ops; + +struct sh_mobile_lcdc_entity { + struct module *owner; + const struct sh_mobile_lcdc_entity_ops *ops; + struct sh_mobile_lcdc_chan *lcdc; + struct fb_videomode def_mode; }; -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 sh_mobile_lcdc_entity_ops { + int (*display_on)(struct sh_mobile_lcdc_entity *); + void (*display_off)(struct sh_mobile_lcdc_entity *); }; -struct space_resv { - __s16 l_type; - __s16 l_whence; - long: 32; - __s64 l_start; - __s64 l_len; - __s32 l_sysid; - __u32 l_pid; - __s32 l_pad[4]; +struct clock_config___2; + +struct stm32_rcc_match_data___2 { + const struct clock_config___2 *cfg; + unsigned int num; + unsigned int maxbinding; + u32 clear_offset; + bool (*check_security)(const struct clock_config___2 *); }; -struct mnt_idmap { - struct user_namespace *owner; - refcount_t count; +struct clock_config___2 { + u32 id; + const char *name; + const char *parent_name; + const char * const *parent_names; + const struct clk_parent_data *parent_data; + int num_parents; + unsigned long flags; + void *cfg; + struct clk_hw * (*func)(struct device *, struct clk_hw_onecell_data *, void *, spinlock_t *, const struct clock_config___2 *); }; -struct kioctx_cpu; +struct gate_cfg; -struct ctx_rq_wait; +struct stm32_mgate; -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct { - atomic_t reqs_available; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - }; - struct { - spinlock_t ctx_lock; - struct list_head active_reqs; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - }; - struct { - struct mutex ring_lock; - wait_queue_head_t wait; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - }; - struct { - unsigned int tail; - unsigned int completed_events; - spinlock_t completion_lock; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - }; - struct page *internal_pages[8]; - struct file *aio_ring_file; - unsigned int id; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct stm32_gate_cfg___2 { + struct gate_cfg *gate; + struct stm32_mgate *mgate; + const struct clk_ops *ops; }; -struct kioctx_cpu { - unsigned int reqs_available; +struct gate_cfg { + u32 reg_off; + u8 bit_idx; + u8 gate_flags; }; -struct ctx_rq_wait { - struct completion comp; - atomic_t count; +struct stm32_mgate { + u8 nbr_clk; + u32 flag; }; -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 mux_cfg; -struct fsync_iocb { - struct file *file; - struct work_struct work; - bool datasync; - struct cred *creds; -}; +struct stm32_mmux; -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; +struct stm32_mux_cfg___2 { + struct mux_cfg *mux; + struct stm32_mmux *mmux; + const struct clk_ops *ops; }; -typedef int kiocb_cancel_fn(struct kiocb *); +struct mux_cfg { + u32 reg_off; + u8 shift; + u8 width; + u8 mux_flags; + u32 *table; +}; -struct io_event { - __u64 data; - __u64 obj; - __s64 res; - __s64 res2; +struct stm32_mmux { + u8 nbr_clk; + struct clk_hw *hws[2]; }; -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; +struct stm32_reset_data { + spinlock_t lock; + struct reset_controller_dev rcdev; + void *membase; + u32 clear_offset; }; -typedef __kernel_ulong_t aio_context_t; +struct stm32_pll_obj { + spinlock_t *lock; + void *reg; + struct clk_hw hw; + struct clk_mux mux; +}; -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 timer_cker { + spinlock_t *lock; + void *apbdiv; + void *timpre; + struct clk_hw hw; }; -struct __aio_sigset { - const sigset_t __attribute__((btf_type_tag("user"))) *sigmask; - size_t sigsetsize; +struct stm32_clk_mgate { + struct clk_gate gate; + struct stm32_mgate *mgate; + u32 mask; }; -struct aio_poll_table { - struct poll_table_struct pt; - struct aio_kiocb *iocb; - bool queued; - int error; +struct stm32_clk_mmux { + struct clk_mux mux; + struct stm32_mmux *mmux; }; -struct aio_ring { - unsigned int id; - unsigned int nr; - unsigned int head; - unsigned int tail; - unsigned int magic; - unsigned int compat_features; - unsigned int incompat_features; - unsigned int header_length; - struct io_event io_events[0]; +struct stm32_div_cfg___2; + +struct stm32_composite_cfg { + const struct stm32_gate_cfg___2 *gate; + const struct stm32_div_cfg___2 *div; + const struct stm32_mux_cfg___2 *mux; }; -struct fname; +struct div_cfg; -struct dir_private_info { - struct rb_root root; - struct rb_node *curr_node; - struct fname *extra_fname; - long: 32; - loff_t last_pos; - __u32 curr_hash; - __u32 curr_minor_hash; - __u32 next_hash; - long: 32; +struct stm32_div_cfg___2 { + struct div_cfg *div; + const struct clk_ops *ops; }; -struct squashfs_fragment_entry { - __le64 start_block; - __le32 size; - unsigned int unused; +struct div_cfg { + u32 reg_off; + u8 shift; + u8 width; + u8 div_flags; + const struct clk_div_table *table; }; -enum nfs4_acl_type { - NFS4ACL_NONE = 0, - NFS4ACL_ACL = 1, - NFS4ACL_DACL = 2, - NFS4ACL_SACL = 3, +struct fixed_factor_cfg { + unsigned int mult; + unsigned int div; }; -enum state_protect_how4 { - SP4_NONE = 0, - SP4_MACH_CRED = 1, - SP4_SSV = 2, +struct stm32_pll_cfg { + u32 offset; + u32 muxoff; }; -enum nfs4_session_state { - NFS4_SESSION_INITING = 0, - NFS4_SESSION_ESTABLISHED = 1, +struct stm32_cktim_cfg { + u32 offset_apbdiv; + u32 offset_timpre; }; -enum nfs4_slot_tbl_state { - NFS4_SLOT_TBL_DRAINING = 0, +struct clk_divider_gate { + struct clk_divider divider; + u32 cached_val; }; -enum pnfs_notify_deviceid_type4 { - NOTIFY_DEVICEID4_CHANGE = 2, - NOTIFY_DEVICEID4_DELETE = 4, +enum imx_pllv1_type { + IMX_PLLV1_IMX1 = 0, + IMX_PLLV1_IMX21 = 1, + IMX_PLLV1_IMX25 = 2, + IMX_PLLV1_IMX27 = 3, + IMX_PLLV1_IMX31 = 4, + IMX_PLLV1_IMX35 = 5, }; -enum nfs_ftype4 { - NF4BAD = 0, - NF4REG = 1, - NF4DIR = 2, - NF4BLK = 3, - NF4CHR = 4, - NF4LNK = 5, - NF4SOCK = 6, - NF4FIFO = 7, - NF4ATTRDIR = 8, - NF4NAMEDATTR = 9, +struct clk_pllv1 { + struct clk_hw hw; + void *base; + enum imx_pllv1_type type; }; -struct nfs4_cached_acl { - enum nfs4_acl_type type; - int cached; - size_t len; - char data[0]; +struct clk_corediv_desc; + +struct clk_corediv_soc_desc { + const struct clk_corediv_desc *descs; + unsigned int ndescs; + const struct clk_ops ops; + u32 ratio_reload; + u32 enable_bit_offset; + u32 ratio_offset; }; -struct nfs41_exchange_id_args { - struct nfs_client *client; - nfs4_verifier verifier; - u32 flags; - struct nfs41_state_protection state_protect; +struct clk_corediv_desc { + unsigned int mask; + unsigned int offset; + unsigned int fieldbit; }; -struct nfs41_exchange_id_data { - struct nfs41_exchange_id_res res; - struct nfs41_exchange_id_args args; - long: 32; +struct clk_corediv { + struct clk_hw hw; + void *reg; + const struct clk_corediv_desc *desc; + const struct clk_corediv_soc_desc *soc_desc; + spinlock_t lock; }; -struct nfs4_get_lease_time_args; +struct clk_smd_rpm; -struct nfs4_get_lease_time_res; +struct rpm_smd_clk_desc { + struct clk_smd_rpm **clks; + size_t num_clks; + const struct clk_smd_rpm ** const icc_clks; + size_t num_icc_clks; + bool scaling_before_handover; +}; -struct nfs4_get_lease_time_data { - struct nfs4_get_lease_time_args *args; - struct nfs4_get_lease_time_res *res; - struct nfs_client *clp; +struct clk_smd_rpm { + const int rpm_res_type; + const int rpm_key; + const int rpm_clk_id; + const bool active_only; + bool enabled; + bool branch; + struct clk_smd_rpm *peer; + struct clk_hw hw; + unsigned long rate; }; -struct nfs4_get_lease_time_args { - struct nfs4_sequence_args la_seq_args; +struct clk_smd_rpm_req { + __le32 key; + __le32 nbytes; + __le32 value; }; -struct nfs4_get_lease_time_res { - struct nfs4_sequence_res lr_seq_res; - struct nfs_fsinfo *lr_fsinfo; +struct clk_rv1126_inits { + void (*inits)(struct device_node *); }; -struct nfs_lowner { - __u64 clientid; - __u64 id; - dev_t s_dev; - long: 32; +struct clkgen_data { + unsigned long flags; + bool mode; + const struct clkgen_clk_out *outputs; + const unsigned int outputs_nb; }; -struct nfs4_lock_waiter { - struct inode *inode; - long: 32; - struct nfs_lowner owner; - wait_queue_entry_t wait; - long: 32; +struct flexgen { + struct clk_hw hw; + struct clk_mux mux; + struct clk_gate pgate; + struct clk_divider pdiv; + struct clk_gate fgate; + struct clk_divider fdiv; + struct clk_gate sync; + bool control_mode; }; -struct nfs4_call_sync_data { - const struct nfs_server *seq_server; - struct nfs4_sequence_args *seq_args; - struct nfs4_sequence_res *seq_res; +struct usb_clk_data { + u32 clk_mask; + u32 reset_mask; + bool reset_needs_clk; }; -struct nfs4_server_caps_arg { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fhandle; - const u32 *bitmask; +struct usb_reset_data { + void *reg; + spinlock_t *lock; + struct clk *clk; + struct reset_controller_dev rcdev; }; -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 tegra_sdmmc_mux { + struct clk_hw hw; + void *reg; + spinlock_t *lock; + const struct clk_ops *gate_ops; + struct tegra_clk_periph_gate gate; + u8 div_flags; }; -struct nfs4_lookup_root_arg { - struct nfs4_sequence_args seq_args; - const u32 *bitmask; +struct cpu_clk_suspend_context___2 { + u32 pllx_misc; + u32 pllx_base; + u32 cpu_burst; + u32 clk_csite_src; + u32 cclk_divider; }; -struct nfs4_lookup_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; - struct nfs_fh *fh; +enum clkrst_index { + CLKRST1_INDEX = 0, + CLKRST2_INDEX = 1, + CLKRST3_INDEX = 2, + CLKRST5_INDEX = 3, + CLKRST6_INDEX = 4, + CLKRST_MAX = 5, }; -struct nfs4_fsinfo_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +struct u8500_prcc_reset { + struct reset_controller_dev rcdev; + u32 phy_base[5]; + void *base[5]; }; -struct nfs4_fsinfo_res { - struct nfs4_sequence_res seq_res; - struct nfs_fsinfo *fsinfo; +struct d40_interrupt_lookup { + u32 src; + u32 clr; + bool is_error; + int offset; }; -struct nfs4_getattr_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +struct d40_reg_val { + unsigned int reg; + unsigned int val; }; -struct nfs4_getattr_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; +enum stedma40_mode { + STEDMA40_MODE_LOGICAL = 0, + STEDMA40_MODE_PHYSICAL = 1, + STEDMA40_MODE_OPERATION = 2, }; -struct nfs4_lookup_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *dir_fh; - const struct qstr *name; - const u32 *bitmask; +enum stedma40_mode_opt { + STEDMA40_PCHAN_BASIC_MODE = 0, + STEDMA40_LCHAN_SRC_LOG_DST_LOG = 0, + STEDMA40_PCHAN_MODULO_MODE = 1, + STEDMA40_PCHAN_DOUBLE_DST_MODE = 2, + STEDMA40_LCHAN_SRC_PHY_DST_LOG = 3, + STEDMA40_LCHAN_SRC_LOG_DST_PHY = 4, }; -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; +enum stedma40_flow_ctrl { + STEDMA40_NO_FLOW_CTRL = 0, + STEDMA40_FLOW_CTRL = 1, }; -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 stedma40_half_channel_info { + bool big_endian; + enum dma_slave_buswidth data_width; + int psize; + enum stedma40_flow_ctrl flow_ctrl; }; -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 stedma40_chan_cfg { + enum dma_transfer_direction dir; + bool high_priority; + bool realtime; + enum stedma40_mode mode; + enum stedma40_mode_opt mode_opt; + int dev_type; + struct stedma40_half_channel_info src_info; + struct stedma40_half_channel_info dst_info; + bool use_fixed_channel; + int phy_channel; }; -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; - long: 32; +enum amba_vendor { + AMBA_VENDOR_ARM = 65, + AMBA_VENDOR_ST = 128, + AMBA_VENDOR_QCOM = 81, + AMBA_VENDOR_LSI = 182, }; -struct nfs_lock_res { - struct nfs4_sequence_res seq_res; - nfs4_stateid stateid; - struct nfs_seqid *lock_seqid; - struct nfs_seqid *open_seqid; +enum d40_lli_flags { + LLI_ADDR_INC = 1, + LLI_TERM_INT = 2, + LLI_CYCLIC = 4, + LLI_LAST_LINK = 8, }; -struct nfs4_lockdata { - struct nfs_lock_args arg; - struct nfs_lock_res res; - struct nfs4_lock_state *lsp; - struct nfs_open_context *ctx; - long: 32; - struct file_lock fl; - unsigned long timestamp; - int rpc_status; - int cancelled; - struct nfs_server *server; +enum d40_command { + D40_DMA_STOP = 0, + D40_DMA_RUN = 1, + D40_DMA_SUSPEND_REQ = 2, + D40_DMA_SUSPENDED = 3, }; -typedef u64 clientid4; +enum d40_events { + D40_DEACTIVATE_EVENTLINE = 0, + D40_ACTIVATE_EVENTLINE = 1, + D40_SUSPEND_REQ_EVENTLINE = 2, + D40_ROUND_EVENTLINE = 3, +}; -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; - long: 32; - clientid4 clientid; - unsigned char migration: 1; - unsigned char renew: 1; - long: 32; +struct d40_phy_lli; + +struct d40_phy_lli_bidir { + struct d40_phy_lli *src; + struct d40_phy_lli *dst; }; -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 d40_log_lli; + +struct d40_log_lli_bidir { + struct d40_log_lli *src; + struct d40_log_lli *dst; }; -struct nfs41_bind_conn_to_session_args { - struct nfs_client *client; - struct nfs4_sessionid sessionid; - u32 dir; - bool use_conn_in_rdma_mode; - int retries; +struct d40_lli_pool { + void *base; + int size; + dma_addr_t dma_addr; + u8 pre_alloc_lli[48]; }; -struct nfs41_bind_conn_to_session_res { - struct nfs4_sessionid sessionid; - u32 dir; - bool use_conn_in_rdma_mode; +struct d40_desc { + struct d40_phy_lli_bidir lli_phy; + struct d40_log_lli_bidir lli_log; + struct d40_lli_pool lli_pool; + int lli_len; + int lli_current; + int lcla_alloc; + struct dma_async_tx_descriptor txd; + struct list_head node; + bool is_in_client_list; + bool cyclic; }; -struct nfs41_create_session_args { - struct nfs_client *client; - long: 32; - u64 clientid; - uint32_t seqid; - uint32_t flags; - uint32_t cb_program; - struct nfs4_channel_attrs fc_attrs; - struct nfs4_channel_attrs bc_attrs; - long: 32; +struct d40_phy_lli { + u32 reg_cfg; + u32 reg_elt; + u32 reg_ptr; + u32 reg_lnk; }; -struct nfs41_create_session_res { - struct nfs4_sessionid sessionid; - uint32_t seqid; - uint32_t flags; - struct nfs4_channel_attrs fc_attrs; - struct nfs4_channel_attrs bc_attrs; +struct d40_log_lli { + u32 lcsp02; + u32 lcsp13; }; -struct nfs4_getdeviceinfo_args { - struct nfs4_sequence_args seq_args; - struct pnfs_device *pdev; - __u32 notify_types; +struct d40_def_lcsp { + u32 lcsp3; + u32 lcsp1; }; -struct nfs4_getdeviceinfo_res { - struct nfs4_sequence_res seq_res; - struct pnfs_device *pdev; - __u32 notification; +struct d40_phy_res; + +struct d40_base; + +struct d40_log_lli_full; + +struct d40_chan { + spinlock_t lock; + int log_num; + int pending_tx; + bool busy; + struct d40_phy_res *phy_chan; + struct dma_chan chan; + struct tasklet_struct tasklet; + struct list_head client; + struct list_head pending_queue; + struct list_head active; + struct list_head done; + struct list_head queue; + struct list_head prepare_queue; + struct stedma40_chan_cfg dma_cfg; + struct dma_slave_config slave_config; + bool configured; + struct d40_base *base; + u32 src_def_cfg; + u32 dst_def_cfg; + struct d40_def_lcsp log_def; + struct d40_log_lli_full *lcpa; + dma_addr_t runtime_addr; + enum dma_transfer_direction runtime_direction; }; -struct nfs4_lookupp_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +struct d40_phy_res { + spinlock_t lock; + bool reserved; + int num; + u32 allocated_src; + u32 allocated_dst; + bool use_soft_lli; }; -struct nfs4_lookupp_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; - struct nfs_fh *fh; +struct d40_lcla_pool { + void *base; + dma_addr_t dma_addr; + void *base_unaligned; + int pages; + spinlock_t lock; + struct d40_desc **alloc_map; }; -struct nfs4_accessargs { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; - u32 access; +struct d40_gen_dmac { + u32 *backup; + u32 backup_size; + u32 realtime_en; + u32 realtime_clear; + u32 high_prio_en; + u32 high_prio_clear; + u32 interrupt_en; + u32 interrupt_clear; + struct d40_interrupt_lookup *il; + u32 il_size; + struct d40_reg_val *init_reg; + u32 init_reg_size; }; -struct nfs4_accessres { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; - u32 supported; - u32 access; +struct stedma40_platform_data; + +struct d40_base { + spinlock_t interrupt_lock; + spinlock_t execmd_lock; + struct device *dev; + void *virtbase; + u8 rev: 4; + struct clk *clk; + int irq; + int num_memcpy_chans; + int num_phy_chans; + int num_log_chans; + struct dma_device dma_both; + struct dma_device dma_slave; + struct dma_device dma_memcpy; + struct d40_chan *phy_chans; + struct d40_chan *log_chans; + struct d40_chan **lookup_log_chans; + struct d40_chan **lookup_phy_chans; + struct stedma40_platform_data *plat_data; + struct regulator *lcpa_regulator; + struct d40_phy_res *phy_res; + struct d40_lcla_pool lcla_pool; + void *lcpa_base; + dma_addr_t phy_lcpa; + resource_size_t lcpa_size; + struct kmem_cache *desc_slab; + u32 reg_val_backup[6]; + u32 reg_val_backup_v4[20]; + u32 *reg_val_backup_chan; + u32 *regs_interrupt; + u16 gcc_pwr_off_mask; + struct d40_gen_dmac gen_dmac; }; -struct nfs4_readlink { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - unsigned int pgbase; - unsigned int pglen; - struct page **pages; +struct stedma40_platform_data { + int disabled_channels[32]; + int *soft_lli_chans; + int num_of_soft_lli_chans; + bool use_esram_lcla; + int num_of_memcpy_chans; + int num_of_phy_chans; }; -struct nfs4_readlink_res { - struct nfs4_sequence_res seq_res; +struct d40_log_lli_full { + u32 lcsp0; + u32 lcsp1; + u32 lcsp2; + u32 lcsp3; +}; + +struct mfp_pin { + unsigned long config; + unsigned long mfpr_off; + unsigned long mfpr_run; + unsigned long mfpr_lpm; +}; + +enum { + MFP_PIN_INVALID = -1, + MFP_PIN_GPIO0 = 0, + MFP_PIN_GPIO1 = 1, + MFP_PIN_GPIO2 = 2, + MFP_PIN_GPIO3 = 3, + MFP_PIN_GPIO4 = 4, + MFP_PIN_GPIO5 = 5, + MFP_PIN_GPIO6 = 6, + MFP_PIN_GPIO7 = 7, + MFP_PIN_GPIO8 = 8, + MFP_PIN_GPIO9 = 9, + MFP_PIN_GPIO10 = 10, + MFP_PIN_GPIO11 = 11, + MFP_PIN_GPIO12 = 12, + MFP_PIN_GPIO13 = 13, + MFP_PIN_GPIO14 = 14, + MFP_PIN_GPIO15 = 15, + MFP_PIN_GPIO16 = 16, + MFP_PIN_GPIO17 = 17, + MFP_PIN_GPIO18 = 18, + MFP_PIN_GPIO19 = 19, + MFP_PIN_GPIO20 = 20, + MFP_PIN_GPIO21 = 21, + MFP_PIN_GPIO22 = 22, + MFP_PIN_GPIO23 = 23, + MFP_PIN_GPIO24 = 24, + MFP_PIN_GPIO25 = 25, + MFP_PIN_GPIO26 = 26, + MFP_PIN_GPIO27 = 27, + MFP_PIN_GPIO28 = 28, + MFP_PIN_GPIO29 = 29, + MFP_PIN_GPIO30 = 30, + MFP_PIN_GPIO31 = 31, + MFP_PIN_GPIO32 = 32, + MFP_PIN_GPIO33 = 33, + MFP_PIN_GPIO34 = 34, + MFP_PIN_GPIO35 = 35, + MFP_PIN_GPIO36 = 36, + MFP_PIN_GPIO37 = 37, + MFP_PIN_GPIO38 = 38, + MFP_PIN_GPIO39 = 39, + MFP_PIN_GPIO40 = 40, + MFP_PIN_GPIO41 = 41, + MFP_PIN_GPIO42 = 42, + MFP_PIN_GPIO43 = 43, + MFP_PIN_GPIO44 = 44, + MFP_PIN_GPIO45 = 45, + MFP_PIN_GPIO46 = 46, + MFP_PIN_GPIO47 = 47, + MFP_PIN_GPIO48 = 48, + MFP_PIN_GPIO49 = 49, + MFP_PIN_GPIO50 = 50, + MFP_PIN_GPIO51 = 51, + MFP_PIN_GPIO52 = 52, + MFP_PIN_GPIO53 = 53, + MFP_PIN_GPIO54 = 54, + MFP_PIN_GPIO55 = 55, + MFP_PIN_GPIO56 = 56, + MFP_PIN_GPIO57 = 57, + MFP_PIN_GPIO58 = 58, + MFP_PIN_GPIO59 = 59, + MFP_PIN_GPIO60 = 60, + MFP_PIN_GPIO61 = 61, + MFP_PIN_GPIO62 = 62, + MFP_PIN_GPIO63 = 63, + MFP_PIN_GPIO64 = 64, + MFP_PIN_GPIO65 = 65, + MFP_PIN_GPIO66 = 66, + MFP_PIN_GPIO67 = 67, + MFP_PIN_GPIO68 = 68, + MFP_PIN_GPIO69 = 69, + MFP_PIN_GPIO70 = 70, + MFP_PIN_GPIO71 = 71, + MFP_PIN_GPIO72 = 72, + MFP_PIN_GPIO73 = 73, + MFP_PIN_GPIO74 = 74, + MFP_PIN_GPIO75 = 75, + MFP_PIN_GPIO76 = 76, + MFP_PIN_GPIO77 = 77, + MFP_PIN_GPIO78 = 78, + MFP_PIN_GPIO79 = 79, + MFP_PIN_GPIO80 = 80, + MFP_PIN_GPIO81 = 81, + MFP_PIN_GPIO82 = 82, + MFP_PIN_GPIO83 = 83, + MFP_PIN_GPIO84 = 84, + MFP_PIN_GPIO85 = 85, + MFP_PIN_GPIO86 = 86, + MFP_PIN_GPIO87 = 87, + MFP_PIN_GPIO88 = 88, + MFP_PIN_GPIO89 = 89, + MFP_PIN_GPIO90 = 90, + MFP_PIN_GPIO91 = 91, + MFP_PIN_GPIO92 = 92, + MFP_PIN_GPIO93 = 93, + MFP_PIN_GPIO94 = 94, + MFP_PIN_GPIO95 = 95, + MFP_PIN_GPIO96 = 96, + MFP_PIN_GPIO97 = 97, + MFP_PIN_GPIO98 = 98, + MFP_PIN_GPIO99 = 99, + MFP_PIN_GPIO100 = 100, + MFP_PIN_GPIO101 = 101, + MFP_PIN_GPIO102 = 102, + MFP_PIN_GPIO103 = 103, + MFP_PIN_GPIO104 = 104, + MFP_PIN_GPIO105 = 105, + MFP_PIN_GPIO106 = 106, + MFP_PIN_GPIO107 = 107, + MFP_PIN_GPIO108 = 108, + MFP_PIN_GPIO109 = 109, + MFP_PIN_GPIO110 = 110, + MFP_PIN_GPIO111 = 111, + MFP_PIN_GPIO112 = 112, + MFP_PIN_GPIO113 = 113, + MFP_PIN_GPIO114 = 114, + MFP_PIN_GPIO115 = 115, + MFP_PIN_GPIO116 = 116, + MFP_PIN_GPIO117 = 117, + MFP_PIN_GPIO118 = 118, + MFP_PIN_GPIO119 = 119, + MFP_PIN_GPIO120 = 120, + MFP_PIN_GPIO121 = 121, + MFP_PIN_GPIO122 = 122, + MFP_PIN_GPIO123 = 123, + MFP_PIN_GPIO124 = 124, + MFP_PIN_GPIO125 = 125, + MFP_PIN_GPIO126 = 126, + MFP_PIN_GPIO127 = 127, + MFP_PIN_GPIO128 = 128, + MFP_PIN_GPIO129 = 129, + MFP_PIN_GPIO130 = 130, + MFP_PIN_GPIO131 = 131, + MFP_PIN_GPIO132 = 132, + MFP_PIN_GPIO133 = 133, + MFP_PIN_GPIO134 = 134, + MFP_PIN_GPIO135 = 135, + MFP_PIN_GPIO136 = 136, + MFP_PIN_GPIO137 = 137, + MFP_PIN_GPIO138 = 138, + MFP_PIN_GPIO139 = 139, + MFP_PIN_GPIO140 = 140, + MFP_PIN_GPIO141 = 141, + MFP_PIN_GPIO142 = 142, + MFP_PIN_GPIO143 = 143, + MFP_PIN_GPIO144 = 144, + MFP_PIN_GPIO145 = 145, + MFP_PIN_GPIO146 = 146, + MFP_PIN_GPIO147 = 147, + MFP_PIN_GPIO148 = 148, + MFP_PIN_GPIO149 = 149, + MFP_PIN_GPIO150 = 150, + MFP_PIN_GPIO151 = 151, + MFP_PIN_GPIO152 = 152, + MFP_PIN_GPIO153 = 153, + MFP_PIN_GPIO154 = 154, + MFP_PIN_GPIO155 = 155, + MFP_PIN_GPIO156 = 156, + MFP_PIN_GPIO157 = 157, + MFP_PIN_GPIO158 = 158, + MFP_PIN_GPIO159 = 159, + MFP_PIN_GPIO160 = 160, + MFP_PIN_GPIO161 = 161, + MFP_PIN_GPIO162 = 162, + MFP_PIN_GPIO163 = 163, + MFP_PIN_GPIO164 = 164, + MFP_PIN_GPIO165 = 165, + MFP_PIN_GPIO166 = 166, + MFP_PIN_GPIO167 = 167, + MFP_PIN_GPIO168 = 168, + MFP_PIN_GPIO169 = 169, + MFP_PIN_GPIO170 = 170, + MFP_PIN_GPIO171 = 171, + MFP_PIN_GPIO172 = 172, + MFP_PIN_GPIO173 = 173, + MFP_PIN_GPIO174 = 174, + MFP_PIN_GPIO175 = 175, + MFP_PIN_GPIO176 = 176, + MFP_PIN_GPIO177 = 177, + MFP_PIN_GPIO178 = 178, + MFP_PIN_GPIO179 = 179, + MFP_PIN_GPIO180 = 180, + MFP_PIN_GPIO181 = 181, + MFP_PIN_GPIO182 = 182, + MFP_PIN_GPIO183 = 183, + MFP_PIN_GPIO184 = 184, + MFP_PIN_GPIO185 = 185, + MFP_PIN_GPIO186 = 186, + MFP_PIN_GPIO187 = 187, + MFP_PIN_GPIO188 = 188, + MFP_PIN_GPIO189 = 189, + MFP_PIN_GPIO190 = 190, + MFP_PIN_GPIO191 = 191, + MFP_PIN_GPIO255 = 255, + MFP_PIN_GPIO0_2 = 256, + MFP_PIN_GPIO1_2 = 257, + MFP_PIN_GPIO2_2 = 258, + MFP_PIN_GPIO3_2 = 259, + MFP_PIN_GPIO4_2 = 260, + MFP_PIN_GPIO5_2 = 261, + MFP_PIN_GPIO6_2 = 262, + MFP_PIN_GPIO7_2 = 263, + MFP_PIN_GPIO8_2 = 264, + MFP_PIN_GPIO9_2 = 265, + MFP_PIN_GPIO10_2 = 266, + MFP_PIN_GPIO11_2 = 267, + MFP_PIN_GPIO12_2 = 268, + MFP_PIN_GPIO13_2 = 269, + MFP_PIN_GPIO14_2 = 270, + MFP_PIN_GPIO15_2 = 271, + MFP_PIN_GPIO16_2 = 272, + MFP_PIN_GPIO17_2 = 273, + MFP_PIN_ULPI_STP = 274, + MFP_PIN_ULPI_NXT = 275, + MFP_PIN_ULPI_DIR = 276, + MFP_PIN_nXCVREN = 277, + MFP_PIN_DF_CLE_nOE = 278, + MFP_PIN_DF_nADV1_ALE = 279, + MFP_PIN_DF_SCLK_E = 280, + MFP_PIN_DF_SCLK_S = 281, + MFP_PIN_nBE0 = 282, + MFP_PIN_nBE1 = 283, + MFP_PIN_DF_nADV2_ALE = 284, + MFP_PIN_DF_INT_RnB = 285, + MFP_PIN_DF_nCS0 = 286, + MFP_PIN_DF_nCS1 = 287, + MFP_PIN_nLUA = 288, + MFP_PIN_nLLA = 289, + MFP_PIN_DF_nWE = 290, + MFP_PIN_DF_ALE_nWE = 291, + MFP_PIN_DF_nRE_nOE = 292, + MFP_PIN_DF_ADDR0 = 293, + MFP_PIN_DF_ADDR1 = 294, + MFP_PIN_DF_ADDR2 = 295, + MFP_PIN_DF_ADDR3 = 296, + MFP_PIN_DF_IO0 = 297, + MFP_PIN_DF_IO1 = 298, + MFP_PIN_DF_IO2 = 299, + MFP_PIN_DF_IO3 = 300, + MFP_PIN_DF_IO4 = 301, + MFP_PIN_DF_IO5 = 302, + MFP_PIN_DF_IO6 = 303, + MFP_PIN_DF_IO7 = 304, + MFP_PIN_DF_IO8 = 305, + MFP_PIN_DF_IO9 = 306, + MFP_PIN_DF_IO10 = 307, + MFP_PIN_DF_IO11 = 308, + MFP_PIN_DF_IO12 = 309, + MFP_PIN_DF_IO13 = 310, + MFP_PIN_DF_IO14 = 311, + MFP_PIN_DF_IO15 = 312, + MFP_PIN_DF_nCS0_SM_nCS2 = 313, + MFP_PIN_DF_nCS1_SM_nCS3 = 314, + MFP_PIN_SM_nCS0 = 315, + MFP_PIN_SM_nCS1 = 316, + MFP_PIN_DF_WEn = 317, + MFP_PIN_DF_REn = 318, + MFP_PIN_DF_CLE_SM_OEn = 319, + MFP_PIN_DF_ALE_SM_WEn = 320, + MFP_PIN_DF_RDY0 = 321, + MFP_PIN_DF_RDY1 = 322, + MFP_PIN_SM_SCLK = 323, + MFP_PIN_SM_BE0 = 324, + MFP_PIN_SM_BE1 = 325, + MFP_PIN_SM_ADV = 326, + MFP_PIN_SM_ADVMUX = 327, + MFP_PIN_SM_RDY = 328, + MFP_PIN_MMC1_DAT7 = 329, + MFP_PIN_MMC1_DAT6 = 330, + MFP_PIN_MMC1_DAT5 = 331, + MFP_PIN_MMC1_DAT4 = 332, + MFP_PIN_MMC1_DAT3 = 333, + MFP_PIN_MMC1_DAT2 = 334, + MFP_PIN_MMC1_DAT1 = 335, + MFP_PIN_MMC1_DAT0 = 336, + MFP_PIN_MMC1_CMD = 337, + MFP_PIN_MMC1_CLK = 338, + MFP_PIN_MMC1_CD = 339, + MFP_PIN_MMC1_WP = 340, + MFP_PIN_GSIM_UIO = 341, + MFP_PIN_GSIM_UCLK = 342, + MFP_PIN_GSIM_UDET = 343, + MFP_PIN_GSIM_nURST = 344, + MFP_PIN_PMIC_INT = 345, + MFP_PIN_RDY = 346, + MFP_PIN_TWSI1_SCL = 347, + MFP_PIN_TWSI1_SDA = 348, + MFP_PIN_TWSI4_SCL = 349, + MFP_PIN_TWSI4_SDA = 350, + MFP_PIN_CLK_REQ = 351, + MFP_PIN_MAX = 352, }; -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 mfp_addr_map { + unsigned int start; + unsigned int end; + unsigned long offset; }; -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; - long: 32; +struct rst_config { + unsigned int modemr; + int (*configure)(void *); + int (*set_rproc_boot_addr)(u64); }; -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; +enum pd_types { + PD_NORMAL = 0, + PD_CPU = 1, + PD_CONSOLE = 2, + PD_DEBUG = 3, + PD_MEMCTL = 4, }; -struct nfs4_create_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fh *fh; - struct nfs_fattr *fattr; - long: 32; - struct nfs4_change_info dir_cinfo; +struct special_pd { + struct device_node *pd; + enum pd_types type; }; -struct nfs4_createdata { - struct rpc_message msg; - struct nfs4_create_arg arg; - struct nfs4_create_res res; - struct nfs_fh fh; - long: 32; - struct nfs_fattr fattr; +struct rmobile_pm_domain { + struct generic_pm_domain genpd; + struct dev_power_governor *gov; + int (*suspend)(); + void *base; + unsigned int bit_shift; }; -struct nfs4_readdir_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - long: 32; - u64 cookie; - nfs4_verifier verifier; - u32 count; - struct page **pages; - unsigned int pgbase; - const u32 *bitmask; - bool plus; - long: 32; -}; +typedef void (*btf_trace_regulator_enable)(void *, const char *); -struct nfs4_readdir_res { - struct nfs4_sequence_res seq_res; - nfs4_verifier verifier; - unsigned int pgbase; -}; +typedef void (*btf_trace_regulator_enable_delay)(void *, const char *); -struct nfs4_statfs_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; -}; +typedef void (*btf_trace_regulator_enable_complete)(void *, const char *); -struct nfs4_statfs_res { - struct nfs4_sequence_res seq_res; - struct nfs_fsstat *fsstat; -}; +typedef void (*btf_trace_regulator_disable)(void *, const char *); -struct nfs4_pathconf_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; -}; +typedef void (*btf_trace_regulator_disable_complete)(void *, const char *); -struct nfs4_pathconf_res { - struct nfs4_sequence_res seq_res; - struct nfs_pathconf *pathconf; -}; +typedef void (*btf_trace_regulator_bypass_enable)(void *, const char *); -struct nfs_lockt_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - struct file_lock *fl; - struct nfs_lowner lock_owner; -}; +typedef void (*btf_trace_regulator_bypass_enable_complete)(void *, const char *); -struct nfs_lockt_res { - struct nfs4_sequence_res seq_res; - struct file_lock *denied; -}; +typedef void (*btf_trace_regulator_bypass_disable)(void *, const char *); -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; -}; +typedef void (*btf_trace_regulator_bypass_disable_complete)(void *, const char *); -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; -}; +typedef void (*btf_trace_regulator_set_voltage)(void *, const char *, int, int); -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; -}; +typedef void (*btf_trace_regulator_set_voltage_complete)(void *, const char *, unsigned int); -struct nfs_locku_res { - struct nfs4_sequence_res seq_res; - nfs4_stateid stateid; - struct nfs_seqid *seqid; +struct regulator_enable_gpio { + struct list_head list; + struct gpio_desc *gpiod; + u32 enable_count; + u32 request_count; }; -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; - long: 32; - struct file_lock fl; - struct nfs_server *server; - unsigned long timestamp; +enum regulator_get_type { + NORMAL_GET = 0, + EXCLUSIVE_GET = 1, + OPTIONAL_GET = 2, + MAX_GET_TYPE = 3, }; -struct nfs4_secinfo4 { - u32 flavor; - struct rpcsec_gss_info flavor_info; +enum regulator_active_discharge { + REGULATOR_ACTIVE_DISCHARGE_DEFAULT = 0, + REGULATOR_ACTIVE_DISCHARGE_DISABLE = 1, + REGULATOR_ACTIVE_DISCHARGE_ENABLE = 2, }; -struct nfs4_secinfo_flavors { - unsigned int num_flavors; - struct nfs4_secinfo4 flavors[0]; +struct trace_event_raw_regulator_basic { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; }; -struct nfs41_secinfo_no_name_args { - struct nfs4_sequence_args seq_args; - int style; +struct trace_event_raw_regulator_range { + struct trace_entry ent; + u32 __data_loc_name; + int min; + int max; + char __data[0]; }; -struct nfs4_secinfo_res { - struct nfs4_sequence_res seq_res; - struct nfs4_secinfo_flavors *flavors; +struct trace_event_raw_regulator_value { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int val; + char __data[0]; }; -struct nfs41_test_stateid_args { - struct nfs4_sequence_args seq_args; - nfs4_stateid *stateid; +struct regulator_map { + struct list_head list; + const char *dev_name; + const char *supply; + struct regulator_dev *regulator; }; -struct nfs41_test_stateid_res { - struct nfs4_sequence_res seq_res; - unsigned int status; +struct regulator_supply_alias { + struct list_head list; + struct device *src_dev; + const char *src_supply; + struct device *alias_dev; + const char *alias_supply; }; -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; +struct trace_event_data_offsets_regulator_basic { + u32 name; }; -struct nfs_setattrres { - struct nfs4_sequence_res seq_res; - struct nfs_fattr *fattr; - const struct nfs_server *server; +struct trace_event_data_offsets_regulator_range { + u32 name; }; -struct nfs4_open_createattrs { - struct nfs4_label *label; - struct iattr *sattr; - const __u32 verf[2]; +struct trace_event_data_offsets_regulator_value { + u32 name; }; -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 pre_voltage_change_data { + unsigned long old_uV; + unsigned long min_uV; + unsigned long max_uV; }; -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 summary_lock_data { + struct ww_acquire_ctx *ww_ctx; + struct regulator_dev **new_contended_rdev; + struct regulator_dev **old_contended_rdev; }; -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 summary_data { + struct seq_file *s; + struct regulator_dev *parent; + int level; }; -struct nfs_setaclres { - struct nfs4_sequence_res seq_res; +struct as3711_regulator_pdata { + struct regulator_init_data *init_data[12]; }; -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; - long: 32; +struct as3711 { + struct device *dev; + struct regmap *regmap; }; -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 tps51632_regulator_platform_data { + struct regulator_init_data *reg_init_data; + bool enable_pwm_dvfs; + bool dvfs_step_20mV; + int max_voltage_uV; + int base_voltage_uV; }; -struct nfs4_secinfo_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *dir_fh; - const struct qstr *name; +struct tps51632_chip { + struct device *dev; + struct regulator_desc desc; + struct regulator_dev *rdev; + struct regmap *regmap; }; -struct rpc_bind_conn_calldata { - struct nfs_client *clp; - const struct cred *cred; +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 nfs4_sequence_data { - struct nfs_client *clp; - struct nfs4_sequence_args args; - struct nfs4_sequence_res res; +enum dma_rx_status { + DMA_RX_START = 0, + DMA_RX_RUNNING = 1, + DMA_RX_SHUTDOWN = 2, }; -struct nfs_release_lockowner_args { - struct nfs4_sequence_args seq_args; - struct nfs_lowner lock_owner; +enum { + MTK_UART_FC_NONE = 0, + MTK_UART_FC_SW = 1, + MTK_UART_FC_HW = 2, }; -struct nfs_release_lockowner_res { - struct nfs4_sequence_res seq_res; +struct mtk8250_data { + int line; + unsigned int rx_pos; + unsigned int clk_count; + struct clk *uart_clk; + struct clk *bus_clk; + struct uart_8250_dma *dma; + enum dma_rx_status rx_status; + int rx_wakeup_irq; }; -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; - long: 32; +struct tegra_uart_chip_data { + bool tx_fifo_full_status; + bool allow_txfifo_reset_fifo_mode; + bool support_clk_src_div; + bool fifo_mode_enable_status; + int uart_max_port; + int max_dma_burst_bytes; + int error_tolerance_low_range; + int error_tolerance_high_range; }; -struct nfs4_renewdata { - struct nfs_client *client; - unsigned long timestamp; -}; +struct tegra_baud_tolerance; -struct nfs4_fsid_present_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - long: 32; - clientid4 clientid; - unsigned char renew: 1; +struct tegra_uart_port { + struct uart_port uport; + const struct tegra_uart_chip_data *cdata; + struct clk *uart_clk; + struct reset_control *rst; + unsigned int current_baud; + unsigned long fcr_shadow; + unsigned long mcr_shadow; + unsigned long lcr_shadow; + unsigned long ier_shadow; + bool rts_active; + int tx_in_progress; + unsigned int tx_bytes; + bool enable_modem_interrupt; + bool rx_timeout; + int rx_in_progress; + int symb_bit; + struct dma_chan *rx_dma_chan; + struct dma_chan *tx_dma_chan; + dma_addr_t rx_dma_buf_phys; + dma_addr_t tx_dma_buf_phys; + unsigned char *rx_dma_buf_virt; + unsigned char *tx_dma_buf_virt; + struct dma_async_tx_descriptor *tx_dma_desc; + struct dma_async_tx_descriptor *rx_dma_desc; + dma_cookie_t tx_cookie; + dma_cookie_t rx_cookie; + unsigned int tx_bytes_requested; + unsigned int rx_bytes_requested; + struct tegra_baud_tolerance *baud_tolerance; + int n_adjustable_baud_rates; + int required_rate; + int configured_rate; + bool use_rx_pio; + bool use_tx_pio; + bool rx_dma_active; long: 32; }; -struct nfs4_fsid_present_res { - struct nfs4_sequence_res seq_res; - struct nfs_fh *fh; - unsigned char renew: 1; -}; - -struct nfs41_free_stateid_args { - struct nfs4_sequence_args seq_args; - nfs4_stateid stateid; -}; - -struct nfs41_free_stateid_res { - struct nfs4_sequence_res seq_res; - unsigned int status; -}; - -struct nfs_free_stateid_data { - struct nfs_server *server; - struct nfs41_free_stateid_args args; - struct nfs41_free_stateid_res res; -}; - -struct nfs41_reclaim_complete_args { - struct nfs4_sequence_args seq_args; - unsigned char one_fs: 1; +struct tegra_baud_tolerance { + u32 lower_range_baud; + u32 upper_range_baud; + s32 tolerance; }; -struct nfs41_reclaim_complete_res { - struct nfs4_sequence_res seq_res; +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 nfs4_reclaim_complete_data { - struct nfs_client *clp; - struct nfs41_reclaim_complete_args arg; - struct nfs41_reclaim_complete_res res; -}; +struct aggregate_device; -struct cb_notify_lock_args { - struct nfs_fh cbnl_fh; - long: 32; - struct nfs_lowner cbnl_owner; - bool cbnl_valid; - long: 32; -}; +struct component_ops; -struct scan_data { - int min_space; - int pick_free; - int lnum; - int exclude_index; +struct component { + struct list_head node; + struct aggregate_device *adev; + bool bound; + const struct component_ops *ops; + int subcomponent; + struct device *dev; }; -struct scomp_scratch { - spinlock_t lock; - void *src; - void *dst; -}; +struct component_master_ops; -struct crypto_report_comp { - char type[64]; -}; +struct component_match; -struct disk_events { +struct aggregate_device { 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 { - IOU_PBUF_RING_MMAP = 1, -}; - -struct io_provide_buf { - struct file *file; - long: 32; - __u64 addr; - __u32 len; - __u32 bgid; - __u16 nbufs; - __u16 bid; - long: 32; + bool bound; + const struct component_master_ops *ops; + struct device *parent; + struct component_match *match; }; -struct io_uring_buf_reg { - __u64 ring_addr; - __u32 ring_entries; - __u16 bgid; - __u16 flags; - __u64 resv[3]; +struct component_master_ops { + int (*bind)(struct device *); + void (*unbind)(struct device *); }; -typedef uintptr_t uptrval; - -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; +struct component_match_array; -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, +struct component_match { + size_t alloc; + size_t num; + struct component_match_array *compare; }; -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 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 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 component_ops { + int (*bind)(struct device *, struct device *, void *); + void (*unbind)(struct device *, struct device *, void *); }; -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 cacheinfo; -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 cpu_cacheinfo { + struct cacheinfo *info_list; + unsigned int per_cpu_data_slice_size; + unsigned int num_levels; + unsigned int num_leaves; + bool cpu_map_populated; + bool early_ci_levels; }; -struct lzma_len_dec { - uint16_t choice; - uint16_t choice2; - uint16_t low[128]; - uint16_t mid[128]; - uint16_t high[256]; +enum cache_type { + CACHE_TYPE_NOCACHE = 0, + CACHE_TYPE_INST = 1, + CACHE_TYPE_DATA = 2, + CACHE_TYPE_SEPARATE = 3, + CACHE_TYPE_UNIFIED = 4, }; -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 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 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 cache_type_info { + const char *size_prop; + const char *line_size_props[2]; + const char *nr_sets_prop; }; -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 regcache_rbtree_node { + void *block; + unsigned long *cache_present; + unsigned int base_reg; + unsigned int blklen; + struct rb_node node; }; -struct st_irq_syscfg { - struct regmap *regmap; - unsigned int syscfg; - unsigned int config; - bool ext_inverted; +struct regcache_rbtree_ctx { + struct rb_root root; + struct regcache_rbtree_node *cached_rbnode; }; -struct irqsteer_data { - void *regs; - struct clk *ipg_clk; - int irq[8]; - int irq_count; - raw_spinlock_t lock; - int reg_num; - int channel; - struct irq_domain *domain; - u32 *saved_reg; +enum dpot_devid { + AD5258_ID = 6817152, + AD5259_ID = 6817281, + AD5251_ID = 7088514, + AD5252_ID = 7088643, + AD5253_ID = 7093636, + AD5254_ID = 7093765, + AD5255_ID = 7085638, + AD5160_ID = 58721799, + AD5161_ID = 58721800, + AD5162_ID = 92278281, + AD5165_ID = 58721802, + AD5200_ID = 58721803, + AD5201_ID = 58721612, + AD5203_ID = 58736013, + AD5204_ID = 92290574, + AD5206_ID = 92339727, + AD5207_ID = 92278288, + AD5231_ID = 139200145, + AD5232_ID = 72093202, + AD5233_ID = 72105363, + AD5235_ID = 139202196, + AD5260_ID = 58721813, + AD5262_ID = 92278294, + AD5263_ID = 92290583, + AD5290_ID = 58721816, + AD5291_ID = 72353305, + AD5292_ID = 72353434, + AD5293_ID = 71304859, + AD7376_ID = 58721756, + AD8400_ID = 92276253, + AD8402_ID = 92278302, + AD8403_ID = 92282399, + ADN2850_ID = 139202208, + AD5241_ID = 4195873, + AD5242_ID = 4197922, + AD5243_ID = 4197923, + AD5245_ID = 4195876, + AD5246_ID = 4195813, + AD5247_ID = 4195814, + AD5248_ID = 4197927, + AD5280_ID = 4195880, + AD5282_ID = 4197929, + ADN2860_ID = 7085674, + AD5273_ID = 5244331, + AD5171_ID = 5244332, + AD5170_ID = 5244461, + AD5172_ID = 5246510, + AD5173_ID = 5246511, + AD5270_ID = 72353456, + AD5271_ID = 72353329, + AD5272_ID = 5244594, + AD5274_ID = 5244467, }; -struct phy_berlin_desc; - -struct phy_berlin_priv { - void *base; - spinlock_t lock; - struct clk *clk; - struct phy_berlin_desc **phys; - unsigned int nphys; - u32 phy_base; +struct dpot_data { + struct ad_dpot_bus_data bdata; + struct mutex update_lock; + unsigned int rdac_mask; + unsigned int max_pos; + unsigned long devid; + unsigned int uid; + unsigned int feat; + unsigned int wipers; + u16 rdac_cache[6]; + unsigned long otp_en_mask[1]; }; -struct phy_berlin_desc { - struct phy *phy; - u32 power_bit; - unsigned int index; -}; +struct twl_mapping; -struct pinctrl_dt_map { - struct list_head node; - struct pinctrl_dev *pctldev; - struct pinctrl_map *map; - unsigned int num_maps; -}; +struct twl_client; -struct bcm_plat_data { - const struct gpio_chip *gpio_chip; - const struct pinctrl_desc *pctl_desc; - const struct pinctrl_gpio_range *gpio_range; +struct twl_private { + bool ready; + u32 twl_idcode; + unsigned int twl_id; + struct twl_mapping *twl_map; + struct twl_client *twl_modules; }; -enum bcm2835_fsel { - BCM2835_FSEL_COUNT = 8, - BCM2835_FSEL_MASK = 7, +struct twl_mapping { + unsigned char sid; + unsigned char base; }; -struct bcm2835_pinctrl { - struct device *dev; - void *base; - int *wake_irq; - unsigned long enabled_irq_map[2]; - unsigned int irq_type[58]; - struct pinctrl_dev *pctl_dev; - struct gpio_chip gpio_chip; - struct pinctrl_desc pctl_desc; - struct pinctrl_gpio_range gpio_range; - raw_spinlock_t irq_lock[2]; - spinlock_t fsel_lock; +struct twl_client { + struct i2c_client *client; + struct regmap *regmap; }; -struct mxc_gpio_hwdata { - unsigned int dr_reg; - unsigned int gdir_reg; - unsigned int psr_reg; - unsigned int icr1_reg; - unsigned int icr2_reg; - unsigned int imr_reg; - unsigned int isr_reg; - int edge_sel_reg; - unsigned int low_level; - unsigned int high_level; - unsigned int rise_edge; - unsigned int fall_edge; +enum twl6030_module_ids { + TWL6030_MODULE_ID0 = 9, + TWL6030_MODULE_ID1 = 10, + TWL6030_MODULE_ID2 = 11, + TWL6030_MODULE_GPADC = 12, + TWL6030_MODULE_GASGAUGE = 13, + TWL6032_MODULE_CHARGE = 14, + TWL6030_MODULE_LAST = 15, }; -struct mxc_gpio_reg_saved { - u32 icr1; - u32 icr2; - u32 imr; - u32 gdir; - u32 edge_sel; - u32 dr; +struct spmi_driver { + struct device_driver driver; + int (*probe)(struct spmi_device *); + void (*remove)(struct spmi_device *); + void (*shutdown)(struct spmi_device *); }; -struct mxc_gpio_port { - struct list_head node; - void *base; - struct clk *clk; - int irq; - int irq_high; - struct irq_domain *domain; - struct gpio_chip gc; - struct device *dev; - u32 both_edges; - struct mxc_gpio_reg_saved gpio_saved_reg; - bool power_off; - u32 wakeup_pads; - bool is_pad_wakeup; - u32 pad_type[32]; - const struct mxc_gpio_hwdata *hwdata; +struct qcom_spmi_pmic { + unsigned int type; + unsigned int subtype; + unsigned int major; + unsigned int minor; + unsigned int rev2; + unsigned int fab_id; + const char *name; }; -enum pci_epc_interface_type { - UNKNOWN_INTERFACE = -1, - PRIMARY_INTERFACE = 0, - SECONDARY_INTERFACE = 1, +struct qcom_spmi_dev { + int num_usids; + struct qcom_spmi_pmic pmic; }; -struct pci_epc_group { - struct config_group group; - struct pci_epc *epc; - bool start; -}; +typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); -struct pci_epf; +typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *); -struct pci_epf_group { - struct config_group group; - struct config_group primary_epc_group; - struct config_group secondary_epc_group; - struct config_group *type_group; - struct delayed_work cfs_work; - struct pci_epf *epf; - int index; -}; +typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *); -struct pci_epf_driver; +typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *); -struct pci_epf_device_id; +typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *); -struct pci_epc_event_ops; +typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *); -struct pci_epf { - struct device dev; - const char *name; - struct pci_epf_header *header; - struct pci_epf_bar bar[6]; - u8 msi_interrupts; - u16 msix_interrupts; - u8 func_no; - u8 vfunc_no; - struct pci_epc *epc; - struct pci_epf *epf_pf; - struct pci_epf_driver *driver; - const struct pci_epf_device_id *id; - struct list_head list; - struct mutex lock; - struct pci_epc *sec_epc; - struct list_head sec_epc_list; - struct pci_epf_bar sec_epc_bar[6]; - u8 sec_epc_func_no; - struct config_group *group; - unsigned int is_bound; - unsigned int is_vf; - unsigned long vfunction_num_map; - struct list_head pci_vepf; - const struct pci_epc_event_ops *event_ops; +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 pci_epf_ops; +struct default_wait_cb { + struct dma_fence_cb base; + struct task_struct *task; +}; -struct pci_epf_driver { - int (*probe)(struct pci_epf *, const struct pci_epf_device_id *); - void (*remove)(struct pci_epf *); - struct device_driver driver; - struct pci_epf_ops *ops; - struct module *owner; - struct list_head epf_group; - const struct pci_epf_device_id *id_table; +struct trace_event_data_offsets_dma_fence { + u32 driver; + u32 timeline; }; -struct pci_epf_device_id { - char name[20]; - kernel_ulong_t driver_data; +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 pci_epf_ops { - int (*bind)(struct pci_epf *); - void (*unbind)(struct pci_epf *); - struct config_group * (*add_cfs)(struct pci_epf *, struct config_group *); +struct phy_lane_info { + void *phy_base; + u8 lane_mapping; + u8 phy_devs; + u8 tx_atten; }; -struct pci_epc_event_ops { - int (*core_init)(struct pci_epf *); - int (*link_up)(struct pci_epf *); - int (*link_down)(struct pci_epf *); - int (*bme)(struct pci_epf *); +struct ecx_plat_data { + u32 n_ports; + u32 pre_clocks; + u32 post_clocks; + struct gpio_desc *sgpio_gpiod[3]; + u32 sgpio_pattern; + u32 port_to_sgpio[8]; }; -struct en_clk_desc { - int id; - const char *name; - u32 base_reg; - u8 base_bits; - u8 base_shift; - union { - const unsigned int *base_values; - unsigned int base_value; - }; - size_t n_base_values; - u16 div_reg; - u8 div_bits; - u8 div_shift; - u16 div_val0; - u8 div_step; +struct mtd_partitions { + const struct mtd_partition *parts; + int nr_parts; + const struct mtd_part_parser *parser; }; -struct en_clk_gate { - void *base; - struct clk_hw hw; +struct cfi_fixup { + uint16_t mfr; + uint16_t id; + void (*fixup)(struct mtd_info *); }; -struct clk_slow_bits { - u32 cr_rcen; - u32 cr_osc32en; - u32 cr_osc32byp; - u32 cr_oscsel; +enum fwh_lock_state { + FWH_UNLOCKED = 0, + FWH_DENY_WRITE = 1, + FWH_IMMUTABLE = 2, + FWH_DENY_READ = 4, }; -struct clk_slow_rc_osc { - struct clk_hw hw; - void *sckcr; - const struct clk_slow_bits *bits; - unsigned long frequency; - unsigned long accuracy; - unsigned long startup_usec; +struct cfi_pri_intelext { + uint8_t pri[3]; + uint8_t MajorVersion; + uint8_t MinorVersion; + uint32_t FeatureSupport; + uint8_t SuspendCmdSupport; + uint16_t BlkStatusRegMask; + uint8_t VccOptimal; + uint8_t VppOptimal; + uint8_t NumProtectionFields; + uint16_t ProtRegAddr; + uint8_t FactProtRegSize; + uint8_t UserProtRegSize; + uint8_t extra[0]; +} __attribute__((packed)); + +struct cfi_intelext_otpinfo { + uint32_t ProtRegAddr; + uint16_t FactGroups; + uint8_t FactProtRegSize; + uint16_t UserGroups; + uint8_t UserProtRegSize; +} __attribute__((packed)); + +struct cfi_intelext_blockinfo { + uint16_t NumIdentBlocks; + uint16_t BlockSize; + uint16_t MinBlockEraseCycles; + uint8_t BitsPerCell; + uint8_t BlockCap; }; -struct clk_slow_osc { - struct clk_hw hw; - void *sckcr; - const struct clk_slow_bits *bits; - unsigned long startup_usec; +struct cfi_intelext_regioninfo { + uint16_t NumIdentPartitions; + uint8_t NumOpAllowed; + uint8_t NumOpAllowedSimProgMode; + uint8_t NumOpAllowedSimEraMode; + uint8_t NumBlockTypes; + struct cfi_intelext_blockinfo BlockTypes[1]; }; -struct clk_sam9x5_slow { - struct clk_hw hw; - void *sckcr; - const struct clk_slow_bits *bits; - u8 parent; +struct fwh_xxlock_thunk { + enum fwh_lock_state val; + flstate_t state; }; -struct clk_sama5d4_slow_osc { - struct clk_hw hw; - void *sckcr; - const struct clk_slow_bits *bits; - unsigned long startup_usec; - bool prepared; +struct cfi_intelext_programming_regioninfo { + uint8_t ProgRegShift; + uint8_t Reserved1; + uint8_t ControlValid; + uint8_t Reserved2; + uint8_t ControlInvalid; + uint8_t Reserved3; }; -struct bcm53573_ilp { - struct clk_hw hw; - struct regmap *regmap; +struct flchip_shared { + struct mutex lock; + struct flchip *writing; + struct flchip *erasing; }; -struct hisi_phase_clock { - unsigned int id; - const char *name; - const char *parent_names; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u32 *phase_degrees; - u32 *phase_regvals; - u8 phase_num; +struct cfi_extquery { + uint8_t pri[3]; + uint8_t MajorVersion; + uint8_t MinorVersion; }; -struct hi6220_divider_clock { - unsigned int id; - const char *name; - const char *parent_name; - unsigned long flags; - unsigned long offset; - u8 shift; - u8 width; - u32 mask_bit; - const char *alias; +typedef int (*varsize_frob_t)(struct map_info *, struct flchip *, unsigned long, int, void *); + +struct cfi_pri_atmel { + uint8_t pri[3]; + uint8_t MajorVersion; + uint8_t MinorVersion; + uint8_t Features; + uint8_t BottomBoot; + uint8_t BurstMode; + uint8_t PageMode; }; -enum { - A390_CPU_TO_NBCLK = 0, - A390_CPU_TO_HCLK = 1, - A390_CPU_TO_DCLK = 2, +enum ssp_interface { + SSP_INTERFACE_MOTOROLA_SPI = 0, + SSP_INTERFACE_TI_SYNC_SERIAL = 1, + SSP_INTERFACE_NATIONAL_MICROWIRE = 2, + SSP_INTERFACE_UNIDIRECTIONAL = 3, }; -struct ve_reset_data { - void *reg; - spinlock_t *lock; - struct reset_controller_dev rcdev; +enum ssp_hierarchy { + SSP_MASTER = 0, + SSP_SLAVE = 1, }; -struct _ccu_nk { - unsigned long n; - unsigned long min_n; - unsigned long max_n; - unsigned long k; - unsigned long min_k; - unsigned long max_k; +struct ssp_clock_params { + u8 cpsdvsr; + u8 scr; }; -enum clkrst_index { - CLKRST1_INDEX = 0, - CLKRST2_INDEX = 1, - CLKRST3_INDEX = 2, - CLKRST5_INDEX = 3, - CLKRST6_INDEX = 4, - CLKRST_MAX = 5, +enum ssp_mode { + INTERRUPT_TRANSFER = 0, + POLLING_TRANSFER = 1, + DMA_TRANSFER = 2, }; -struct u8500_prcc_reset { - struct reset_controller_dev rcdev; - u32 phy_base[5]; - void *base[5]; +enum ssp_rx_level_trig { + SSP_RX_1_OR_MORE_ELEM = 0, + SSP_RX_4_OR_MORE_ELEM = 1, + SSP_RX_8_OR_MORE_ELEM = 2, + SSP_RX_16_OR_MORE_ELEM = 3, + SSP_RX_32_OR_MORE_ELEM = 4, }; -struct at91_soc { - u32 cidr_match; - u32 cidr_mask; - u32 version_mask; - u32 exid_match; - const char *name; - const char *family; +enum ssp_tx_level_trig { + SSP_TX_1_OR_MORE_EMPTY_LOC = 0, + SSP_TX_4_OR_MORE_EMPTY_LOC = 1, + SSP_TX_8_OR_MORE_EMPTY_LOC = 2, + SSP_TX_16_OR_MORE_EMPTY_LOC = 3, + SSP_TX_32_OR_MORE_EMPTY_LOC = 4, }; -struct crci_config { - u32 num_rows; - const u32 (*array)[12]; +enum ssp_microwire_ctrl_len { + SSP_BITS_4 = 3, + SSP_BITS_5 = 4, + SSP_BITS_6 = 5, + SSP_BITS_7 = 6, + SSP_BITS_8 = 7, + SSP_BITS_9 = 8, + SSP_BITS_10 = 9, + SSP_BITS_11 = 10, + SSP_BITS_12 = 11, + SSP_BITS_13 = 12, + SSP_BITS_14 = 13, + SSP_BITS_15 = 14, + SSP_BITS_16 = 15, + SSP_BITS_17 = 16, + SSP_BITS_18 = 17, + SSP_BITS_19 = 18, + SSP_BITS_20 = 19, + SSP_BITS_21 = 20, + SSP_BITS_22 = 21, + SSP_BITS_23 = 22, + SSP_BITS_24 = 23, + SSP_BITS_25 = 24, + SSP_BITS_26 = 25, + SSP_BITS_27 = 26, + SSP_BITS_28 = 27, + SSP_BITS_29 = 28, + SSP_BITS_30 = 29, + SSP_BITS_31 = 30, + SSP_BITS_32 = 31, }; -struct gsbi_info { - struct clk *hclk; - u32 mode; - u32 crci; - struct regmap *tcsr; +enum ssp_microwire_wait_state { + SSP_MWIRE_WAIT_ZERO = 0, + SSP_MWIRE_WAIT_ONE = 1, }; -enum { - AXP22X_DCDC1 = 0, - AXP22X_DCDC2 = 1, - AXP22X_DCDC3 = 2, - AXP22X_DCDC4 = 3, - AXP22X_DCDC5 = 4, - AXP22X_DC1SW = 5, - AXP22X_DC5LDO = 6, - AXP22X_ALDO1 = 7, - AXP22X_ALDO2 = 8, - AXP22X_ALDO3 = 9, - AXP22X_ELDO1 = 10, - AXP22X_ELDO2 = 11, - AXP22X_ELDO3 = 12, - AXP22X_DLDO1 = 13, - AXP22X_DLDO2 = 14, - AXP22X_DLDO3 = 15, - AXP22X_DLDO4 = 16, - AXP22X_RTC_LDO = 17, - AXP22X_LDO_IO0 = 18, - AXP22X_LDO_IO1 = 19, - AXP22X_REG_ID_MAX = 20, +enum ssp_duplex { + SSP_MICROWIRE_CHANNEL_FULL_DUPLEX = 0, + SSP_MICROWIRE_CHANNEL_HALF_DUPLEX = 1, }; -enum { - AXP15060_DCDC1 = 0, - AXP15060_DCDC2 = 1, - AXP15060_DCDC3 = 2, - AXP15060_DCDC4 = 3, - AXP15060_DCDC5 = 4, - AXP15060_DCDC6 = 5, - AXP15060_ALDO1 = 6, - AXP15060_ALDO2 = 7, - AXP15060_ALDO3 = 8, - AXP15060_ALDO4 = 9, - AXP15060_ALDO5 = 10, - AXP15060_BLDO1 = 11, - AXP15060_BLDO2 = 12, - AXP15060_BLDO3 = 13, - AXP15060_BLDO4 = 14, - AXP15060_BLDO5 = 15, - AXP15060_CLDO1 = 16, - AXP15060_CLDO2 = 17, - AXP15060_CLDO3 = 18, - AXP15060_CLDO4 = 19, - AXP15060_CPUSLDO = 20, - AXP15060_SW = 21, - AXP15060_RTC_LDO = 22, - AXP15060_REG_ID_MAX = 23, +enum ssp_clkdelay { + SSP_FEEDBACK_CLK_DELAY_NONE = 0, + SSP_FEEDBACK_CLK_DELAY_1T = 1, + SSP_FEEDBACK_CLK_DELAY_2T = 2, + SSP_FEEDBACK_CLK_DELAY_3T = 3, + SSP_FEEDBACK_CLK_DELAY_4T = 4, + SSP_FEEDBACK_CLK_DELAY_5T = 5, + SSP_FEEDBACK_CLK_DELAY_6T = 6, + SSP_FEEDBACK_CLK_DELAY_7T = 7, }; -enum axp20x_variants { - AXP152_ID = 0, - AXP192_ID = 1, - AXP202_ID = 2, - AXP209_ID = 3, - AXP221_ID = 4, - AXP223_ID = 5, - AXP288_ID = 6, - AXP313A_ID = 7, - AXP803_ID = 8, - AXP806_ID = 9, - AXP809_ID = 10, - AXP813_ID = 11, - AXP15060_ID = 12, - NR_AXP20X_VARIANTS = 13, +struct pl022_config_chip { + enum ssp_interface iface; + enum ssp_hierarchy hierarchy; + bool slave_tx_disable; + struct ssp_clock_params clk_freq; + enum ssp_mode com_mode; + enum ssp_rx_level_trig rx_lev_trig; + enum ssp_tx_level_trig tx_lev_trig; + enum ssp_microwire_ctrl_len ctrl_len; + enum ssp_microwire_wait_state wait_state; + enum ssp_duplex duplex; + enum ssp_clkdelay clkdelay; }; -enum { - AXP20X_LDO1 = 0, - AXP20X_LDO2 = 1, - AXP20X_LDO3 = 2, - AXP20X_LDO4 = 3, - AXP20X_LDO5 = 4, - AXP20X_DCDC2 = 5, - AXP20X_DCDC3 = 6, - AXP20X_REG_ID_MAX = 7, +struct vendor_data { + int fifodepth; + int max_bpw; + bool unidir; + bool extended_cr; + bool pl023; + bool loopback; + bool internal_cs_ctrl; }; -enum { - AXP313A_DCDC1 = 0, - AXP313A_DCDC2 = 1, - AXP313A_DCDC3 = 2, - AXP313A_ALDO1 = 3, - AXP313A_DLDO1 = 4, - AXP313A_RTC_LDO = 5, - AXP313A_REG_ID_MAX = 6, +enum ssp_reading { + READING_NULL = 0, + READING_U8 = 1, + READING_U16 = 2, + READING_U32 = 3, }; -enum { - AXP803_DCDC1 = 0, - AXP803_DCDC2 = 1, - AXP803_DCDC3 = 2, - AXP803_DCDC4 = 3, - AXP803_DCDC5 = 4, - AXP803_DCDC6 = 5, - AXP803_DC1SW = 6, - AXP803_ALDO1 = 7, - AXP803_ALDO2 = 8, - AXP803_ALDO3 = 9, - AXP803_DLDO1 = 10, - AXP803_DLDO2 = 11, - AXP803_DLDO3 = 12, - AXP803_DLDO4 = 13, - AXP803_ELDO1 = 14, - AXP803_ELDO2 = 15, - AXP803_ELDO3 = 16, - AXP803_FLDO1 = 17, - AXP803_FLDO2 = 18, - AXP803_RTC_LDO = 19, - AXP803_LDO_IO0 = 20, - AXP803_LDO_IO1 = 21, - AXP803_REG_ID_MAX = 22, +enum ssp_writing { + WRITING_NULL = 0, + WRITING_U8 = 1, + WRITING_U16 = 2, + WRITING_U32 = 3, }; -enum { - AXP806_DCDCA = 0, - AXP806_DCDCB = 1, - AXP806_DCDCC = 2, - AXP806_DCDCD = 3, - AXP806_DCDCE = 4, - AXP806_ALDO1 = 5, - AXP806_ALDO2 = 6, - AXP806_ALDO3 = 7, - AXP806_BLDO1 = 8, - AXP806_BLDO2 = 9, - AXP806_BLDO3 = 10, - AXP806_BLDO4 = 11, - AXP806_CLDO1 = 12, - AXP806_CLDO2 = 13, - AXP806_CLDO3 = 14, - AXP806_SW = 15, - AXP806_REG_ID_MAX = 16, +enum ssp_rx_endian { + SSP_RX_MSB = 0, + SSP_RX_LSB = 1, }; -enum { - AXP809_DCDC1 = 0, - AXP809_DCDC2 = 1, - AXP809_DCDC3 = 2, - AXP809_DCDC4 = 3, - AXP809_DCDC5 = 4, - AXP809_DC1SW = 5, - AXP809_DC5LDO = 6, - AXP809_ALDO1 = 7, - AXP809_ALDO2 = 8, - AXP809_ALDO3 = 9, - AXP809_ELDO1 = 10, - AXP809_ELDO2 = 11, - AXP809_ELDO3 = 12, - AXP809_DLDO1 = 13, - AXP809_DLDO2 = 14, - AXP809_RTC_LDO = 15, - AXP809_LDO_IO0 = 16, - AXP809_LDO_IO1 = 17, - AXP809_SW = 18, - AXP809_REG_ID_MAX = 19, +enum ssp_tx_endian { + SSP_TX_MSB = 0, + SSP_TX_LSB = 1, }; -enum { - AXP813_DCDC1 = 0, - AXP813_DCDC2 = 1, - AXP813_DCDC3 = 2, - AXP813_DCDC4 = 3, - AXP813_DCDC5 = 4, - AXP813_DCDC6 = 5, - AXP813_DCDC7 = 6, - AXP813_ALDO1 = 7, - AXP813_ALDO2 = 8, - AXP813_ALDO3 = 9, - AXP813_DLDO1 = 10, - AXP813_DLDO2 = 11, - AXP813_DLDO3 = 12, - AXP813_DLDO4 = 13, - AXP813_ELDO1 = 14, - AXP813_ELDO2 = 15, - AXP813_ELDO3 = 16, - AXP813_FLDO1 = 17, - AXP813_FLDO2 = 18, - AXP813_FLDO3 = 19, - AXP813_RTC_LDO = 20, - AXP813_LDO_IO0 = 21, - AXP813_LDO_IO1 = 22, - AXP813_SW = 23, - AXP813_REG_ID_MAX = 24, +enum ssp_spi_clk_pol { + SSP_CLK_POL_IDLE_LOW = 0, + SSP_CLK_POL_IDLE_HIGH = 1, }; -struct twlreg_info { - u8 base; - u8 id; - u8 flags; - struct regulator_desc desc; - unsigned long features; - void *data; +enum ssp_spi_clk_phase { + SSP_CLK_FIRST_EDGE = 0, + SSP_CLK_SECOND_EDGE = 1, }; -enum twl_module_ids { - TWL_MODULE_USB = 0, - TWL_MODULE_PIH = 1, - TWL_MODULE_MAIN_CHARGE = 2, - TWL_MODULE_PM_MASTER = 3, - TWL_MODULE_PM_RECEIVER = 4, - TWL_MODULE_RTC = 5, - TWL_MODULE_PWM = 6, - TWL_MODULE_LED = 7, - TWL_MODULE_SECURED_REG = 8, - TWL_MODULE_LAST = 9, +enum ssp_loopback { + LOOPBACK_DISABLED = 0, + LOOPBACK_ENABLED = 1, }; -enum regulator_status { - REGULATOR_STATUS_OFF = 0, - REGULATOR_STATUS_ON = 1, - REGULATOR_STATUS_ERROR = 2, - REGULATOR_STATUS_FAST = 3, - REGULATOR_STATUS_NORMAL = 4, - REGULATOR_STATUS_IDLE = 5, - REGULATOR_STATUS_STANDBY = 6, - REGULATOR_STATUS_BYPASS = 7, - REGULATOR_STATUS_UNDEFINED = 8, +enum ssp_chip_select { + SSP_CHIP_SELECT = 0, + SSP_CHIP_DESELECT = 1, }; -struct tegra_uart_chip_data { - bool tx_fifo_full_status; - bool allow_txfifo_reset_fifo_mode; - bool support_clk_src_div; - bool fifo_mode_enable_status; - int uart_max_port; - int max_dma_burst_bytes; - int error_tolerance_low_range; - int error_tolerance_high_range; +enum ssp_data_size { + SSP_DATA_BITS_4 = 3, + SSP_DATA_BITS_5 = 4, + SSP_DATA_BITS_6 = 5, + SSP_DATA_BITS_7 = 6, + SSP_DATA_BITS_8 = 7, + SSP_DATA_BITS_9 = 8, + SSP_DATA_BITS_10 = 9, + SSP_DATA_BITS_11 = 10, + SSP_DATA_BITS_12 = 11, + SSP_DATA_BITS_13 = 12, + SSP_DATA_BITS_14 = 13, + SSP_DATA_BITS_15 = 14, + SSP_DATA_BITS_16 = 15, + SSP_DATA_BITS_17 = 16, + SSP_DATA_BITS_18 = 17, + SSP_DATA_BITS_19 = 18, + SSP_DATA_BITS_20 = 19, + SSP_DATA_BITS_21 = 20, + SSP_DATA_BITS_22 = 21, + SSP_DATA_BITS_23 = 22, + SSP_DATA_BITS_24 = 23, + SSP_DATA_BITS_25 = 24, + SSP_DATA_BITS_26 = 25, + SSP_DATA_BITS_27 = 26, + SSP_DATA_BITS_28 = 27, + SSP_DATA_BITS_29 = 28, + SSP_DATA_BITS_30 = 29, + SSP_DATA_BITS_31 = 30, + SSP_DATA_BITS_32 = 31, }; -struct tegra_baud_tolerance; +struct pl022_ssp_controller; -struct tegra_uart_port { - struct uart_port uport; - const struct tegra_uart_chip_data *cdata; - struct clk *uart_clk; - struct reset_control *rst; - unsigned int current_baud; - unsigned long fcr_shadow; - unsigned long mcr_shadow; - unsigned long lcr_shadow; - unsigned long ier_shadow; - bool rts_active; - int tx_in_progress; - unsigned int tx_bytes; - bool enable_modem_interrupt; - bool rx_timeout; - int rx_in_progress; - int symb_bit; - struct dma_chan *rx_dma_chan; - struct dma_chan *tx_dma_chan; - dma_addr_t rx_dma_buf_phys; - dma_addr_t tx_dma_buf_phys; - unsigned char *rx_dma_buf_virt; - unsigned char *tx_dma_buf_virt; - struct dma_async_tx_descriptor *tx_dma_desc; - struct dma_async_tx_descriptor *rx_dma_desc; - dma_cookie_t tx_cookie; - dma_cookie_t rx_cookie; - unsigned int tx_bytes_requested; - unsigned int rx_bytes_requested; - struct tegra_baud_tolerance *baud_tolerance; - int n_adjustable_baud_rates; - int required_rate; - int configured_rate; - bool use_rx_pio; - bool use_tx_pio; - bool rx_dma_active; - long: 32; -}; +struct chip_data; -struct tegra_baud_tolerance { - u32 lower_range_baud; - u32 upper_range_baud; - s32 tolerance; +struct pl022 { + struct amba_device *adev; + struct vendor_data *vendor; + resource_size_t phybase; + void *virtbase; + struct clk *clk; + struct spi_controller *host; + struct pl022_ssp_controller *host_info; + struct tasklet_struct pump_transfers; + struct spi_message *cur_msg; + struct spi_transfer *cur_transfer; + struct chip_data *cur_chip; + bool next_msg_cs_active; + void *tx; + void *tx_end; + void *rx; + void *rx_end; + enum ssp_reading read; + enum ssp_writing write; + u32 exp_fifo_level; + enum ssp_rx_level_trig rx_lev_trig; + enum ssp_tx_level_trig tx_lev_trig; + struct dma_chan *dma_rx_channel; + struct dma_chan *dma_tx_channel; + struct sg_table sgt_rx; + struct sg_table sgt_tx; + char *dummypage; + bool dma_running; + int cur_cs; + struct gpio_desc *cur_gpiod; }; -struct syncobj_wait_entry { - struct list_head node; - struct task_struct *task; - struct dma_fence *fence; - struct dma_fence_cb fence_cb; - long: 32; - u64 point; +struct pl022_ssp_controller { + u16 bus_id; + u8 enable_dma: 1; + bool (*dma_filter)(struct dma_chan *, void *); + void *dma_rx_param; + void *dma_tx_param; + int autosuspend_delay; + bool rt; }; -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; +struct chip_data { + u32 cr0; + u16 cr1; + u16 dmacr; + u16 cpsr; + u8 n_bytes; + bool enable_dma; + enum ssp_reading read; + enum ssp_writing write; + int xfer_type; }; -struct drm_syncobj_transfer { - __u32 src_handle; - __u32 dst_handle; - __u64 src_point; - __u64 dst_point; - __u32 flags; - __u32 pad; +struct ip101g_hw_stat { + const char *name; + int page; }; -struct drm_syncobj_wait { - __u64 handles; - __s64 timeout_nsec; - __u32 count_handles; - __u32 flags; - __u32 first_signaled; - __u32 pad; +enum ip101gr_sel_intr32 { + IP101GR_SEL_INTR32_KEEP = 0, + IP101GR_SEL_INTR32_INTR = 1, + IP101GR_SEL_INTR32_RXER = 2, }; -struct drm_syncobj_timeline_wait { - __u64 handles; - __u64 points; - __s64 timeout_nsec; - __u32 count_handles; - __u32 flags; - __u32 first_signaled; - __u32 pad; +struct ip101a_g_phy_priv { + enum ip101gr_sel_intr32 sel_intr32; + long: 32; + u64 stats[2]; }; -struct drm_syncobj_create { - __u32 handle; - __u32 flags; +struct virtnet_stat_desc { + char desc[32]; + size_t offset; }; -struct drm_syncobj_destroy { - __u32 handle; - __u32 pad; +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 drm_syncobj_handle { - __u32 handle; - __u32 flags; - __s32 fd; - __u32 pad; +enum xps_map_type { + XPS_CPUS = 0, + XPS_RXQS = 1, + XPS_MAPS_MAX = 2, }; -struct drm_syncobj_array { - __u64 handles; - __u32 count_handles; - __u32 pad; +struct virtnet_interrupt_coalesce { + u32 max_packets; + u32 max_usecs; }; -struct drm_syncobj_timeline_array { - __u64 handles; - __u64 points; - __u32 count_handles; - __u32 flags; -}; +struct send_queue; -struct gather_bo { - struct host1x_bo base; - struct kref ref; - struct device *dev; - u32 *gather_data; - dma_addr_t gather_data_dma; - size_t gather_data_words; -}; +struct receive_queue; -struct drm_tegra_submit_syncpt { - __u32 id; - __u32 flags; - __u32 increments; - __u32 value; -}; +struct control_buf; -struct drm_tegra_channel_submit { - __u32 context; - __u32 num_bufs; - __u32 num_cmds; - __u32 gather_data_words; - __u64 bufs_ptr; - __u64 cmds_ptr; - __u64 gather_data_ptr; - __u32 syncobj_in; - __u32 syncobj_out; - struct drm_tegra_submit_syncpt syncpt; -}; +struct failover; -struct drm_tegra_submit_buf { - __u32 mapping; - __u32 flags; - struct { - __u64 target_offset; - __u32 gather_offset_words; - __u32 shift; - } reloc; +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; + struct virtnet_interrupt_coalesce intr_coal_tx; + struct virtnet_interrupt_coalesce intr_coal_rx; + unsigned long guest_offloads; + unsigned long guest_offloads_capable; + struct failover *failover; }; -struct drm_tegra_submit_cmd_gather_uptr { - __u32 words; - __u32 reserved[3]; +struct virtnet_sq_stats { + struct u64_stats_sync syncp; + long: 32; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t xdp_tx; + u64_stats_t xdp_tx_drops; + u64_stats_t kicks; + u64_stats_t tx_timeouts; }; -struct drm_tegra_submit_cmd_wait_syncpt { - __u32 id; - __u32 value; - __u32 reserved[2]; +struct send_queue { + struct virtqueue *vq; + struct scatterlist sg[19]; + char name[16]; + struct virtnet_sq_stats stats; + struct virtnet_interrupt_coalesce intr_coal; + struct napi_struct napi; + bool reset; + long: 32; }; -struct drm_tegra_submit_cmd { - __u32 type; - __u32 flags; - union { - struct drm_tegra_submit_cmd_gather_uptr gather_uptr; - struct drm_tegra_submit_cmd_wait_syncpt wait_syncpt; - __u32 reserved[4]; - }; +struct virtnet_rq_stats { + struct u64_stats_sync syncp; + long: 32; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t drops; + u64_stats_t xdp_packets; + u64_stats_t xdp_tx; + u64_stats_t xdp_redirects; + u64_stats_t xdp_drops; + u64_stats_t kicks; }; -struct tegra_drm_file { - struct idr legacy_contexts; - struct mutex lock; - struct xarray contexts; - struct xarray syncpoints; +struct ewma_pkt_len { + unsigned long internal; }; -struct cacheinfo; +struct virtnet_rq_dma; -struct cpu_cacheinfo { - struct cacheinfo *info_list; - unsigned int num_levels; - unsigned int num_leaves; - bool cpu_map_populated; - bool early_ci_levels; +struct receive_queue { + struct virtqueue *vq; + long: 32; + struct napi_struct napi; + struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; + long: 32; + struct virtnet_rq_stats stats; + struct virtnet_interrupt_coalesce intr_coal; + struct page *pages; + struct ewma_pkt_len mrg_avg_pkt_len; + struct page_frag alloc_frag; + struct scatterlist sg[19]; + unsigned int min_buf_len; + char name[16]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct xdp_rxq_info xdp_rxq; + struct virtnet_rq_dma *last_dma; + bool do_dma; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; + +struct virtnet_rq_dma { + dma_addr_t addr; + u32 ref; + u16 len; + u16 need_sync; }; -enum cache_type { - CACHE_TYPE_NOCACHE = 0, - CACHE_TYPE_INST = 1, - CACHE_TYPE_DATA = 2, - CACHE_TYPE_SEPARATE = 3, - CACHE_TYPE_UNIFIED = 4, +struct virtio_net_ctrl_hdr { + __u8 class; + __u8 cmd; }; -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; +typedef __u8 virtio_net_ctrl_ack; + +struct virtio_net_ctrl_mq { + __virtio16 virtqueue_pairs; }; -struct cache_type_info { - const char *size_prop; - const char *line_size_props[2]; - const char *nr_sets_prop; +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 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 virtio_net_ctrl_coal_tx { + __le32 tx_max_packets; + __le32 tx_usecs; }; -struct regmap_debugfs_node { - struct regmap *map; - struct list_head link; +struct virtio_net_ctrl_coal_rx { + __le32 rx_max_packets; + __le32 rx_usecs; }; -struct regmap_debugfs_off_cache { - struct list_head list; - off_t min; - off_t max; - unsigned int base_reg; - unsigned int max_reg; +struct virtio_net_ctrl_coal { + __le32 max_packets; + __le32 max_usecs; }; -struct twl6030_irq { - unsigned int irq_base; - int twl_irq; - bool irq_wake_enabled; - atomic_t wakeirqs; - struct notifier_block pm_nb; - struct irq_chip irq_chip; - struct irq_domain *irq_domain; - const int *irq_mapping_tbl; +struct virtio_net_ctrl_coal_vq { + __le16 vqn; + __le16 reserved; + struct virtio_net_ctrl_coal coal; }; -enum twl6030_module_ids { - TWL6030_MODULE_ID0 = 9, - TWL6030_MODULE_ID1 = 10, - TWL6030_MODULE_ID2 = 11, - TWL6030_MODULE_GPADC = 12, - TWL6030_MODULE_GASGAUGE = 13, - TWL6032_MODULE_CHARGE = 14, - TWL6030_MODULE_LAST = 15, +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; + long: 32; + __virtio64 offloads; + struct virtio_net_ctrl_rss rss; + struct virtio_net_ctrl_coal_tx coal_tx; + struct virtio_net_ctrl_coal_rx coal_rx; + struct virtio_net_ctrl_coal_vq coal_vq; }; -struct reg_value; +struct failover_ops; -struct reg_property { - const char *name; - const struct reg_value *values; - size_t num_values; - u32 def_value; - u32 set_value; +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 reg_value { - u32 of_value; - u32 reg_value; +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 **); }; -enum ahci_imx_type { - AHCI_IMX53 = 0, - AHCI_IMX6Q = 1, - AHCI_IMX6QP = 2, - AHCI_IMX8QM = 3, +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; }; -enum { - IMX_TIMER1MS = 224, - IMX_P0PHYCR = 376, - IMX_P0PHYCR_TEST_PDDQ = 1048576, - IMX_P0PHYCR_CR_READ = 524288, - IMX_P0PHYCR_CR_WRITE = 262144, - IMX_P0PHYCR_CR_CAP_DATA = 131072, - IMX_P0PHYCR_CR_CAP_ADDR = 65536, - IMX_P0PHYSR = 380, - IMX_P0PHYSR_CR_ACK = 262144, - IMX_P0PHYSR_CR_DATA_OUT = 65535, - IMX_LANE0_OUT_STAT = 8195, - IMX_LANE0_OUT_STAT_RX_PLL_STATE = 2, - IMX_CLOCK_RESET = 32575, - IMX_CLOCK_RESET_RESET = 1, - IMX8QM_SATA_PHY_RX_IMPED_RATIO_OFFSET = 3, - IMX8QM_SATA_PHY_TX_IMPED_RATIO_OFFSET = 9, - IMX8QM_SATA_PHY_IMPED_RATIO_85OHM = 108, - IMX8QM_LPCG_PHYX2_OFFSET = 0, - IMX8QM_CSR_PHYX2_OFFSET = 589824, - IMX8QM_CSR_PHYX1_OFFSET = 655360, - IMX8QM_CSR_PHYX_STTS0_OFFSET = 4, - IMX8QM_CSR_PCIEA_OFFSET = 720896, - IMX8QM_CSR_PCIEB_OFFSET = 786432, - IMX8QM_CSR_SATA_OFFSET = 851968, - IMX8QM_CSR_PCIE_CTRL2_OFFSET = 8, - IMX8QM_CSR_MISC_OFFSET = 917504, - IMX8QM_LPCG_PHYX2_PCLK0_MASK = 196608, - IMX8QM_LPCG_PHYX2_PCLK1_MASK = 3145728, - IMX8QM_PHY_APB_RSTN_0 = 1, - IMX8QM_PHY_MODE_SATA = 524288, - IMX8QM_PHY_MODE_MASK = 1966080, - IMX8QM_PHY_PIPE_RSTN_0 = 16777216, - IMX8QM_PHY_PIPE_RSTN_OVERRIDE_0 = 33554432, - IMX8QM_PHY_PIPE_RSTN_1 = 67108864, - IMX8QM_PHY_PIPE_RSTN_OVERRIDE_1 = 134217728, - IMX8QM_STTS0_LANE0_TX_PLL_LOCK = 16, - IMX8QM_MISC_IOB_RXENA = 1, - IMX8QM_MISC_IOB_TXENA = 2, - IMX8QM_MISC_PHYX1_EPCS_SEL = 4096, - IMX8QM_MISC_CLKREQN_OUT_OVERRIDE_1 = 16777216, - IMX8QM_MISC_CLKREQN_OUT_OVERRIDE_0 = 33554432, - IMX8QM_MISC_CLKREQN_IN_OVERRIDE_1 = 268435456, - IMX8QM_MISC_CLKREQN_IN_OVERRIDE_0 = 536870912, - IMX8QM_SATA_CTRL_RESET_N = 4096, - IMX8QM_SATA_CTRL_EPCS_PHYRESET_N = 128, - IMX8QM_CTRL_BUTTON_RST_N = 2097152, - IMX8QM_CTRL_POWER_UP_RST_N = 8388608, - IMX8QM_CTRL_LTSSM_ENABLE = 16, +struct virtio_net_hdr_v1_hash { + struct virtio_net_hdr_v1 hdr; + __le32 hash_value; + __le16 hash_report; + __le16 padding; }; -enum { - SATA_PHY_CR_CLOCK_CRCMP_LT_LIMIT = 1, - SATA_PHY_CR_CLOCK_DAC_CTL = 8, - SATA_PHY_CR_CLOCK_RTUNE_CTL = 9, - SATA_PHY_CR_CLOCK_ADC_OUT = 10, - SATA_PHY_CR_CLOCK_MPLL_TST = 23, +struct virtio_net_common_hdr { + union { + struct virtio_net_hdr hdr; + struct virtio_net_hdr_mrg_rxbuf mrg_hdr; + struct virtio_net_hdr_v1_hash hash_v1_hdr; + }; }; -struct imx_ahci_priv { - struct platform_device *ahci_pdev; - enum ahci_imx_type type; - struct clk *sata_clk; - struct clk *sata_ref_clk; - struct clk *ahb_clk; - struct clk *epcs_tx_clk; - struct clk *epcs_rx_clk; - struct clk *phy_apbclk; - struct clk *phy_pclk0; - struct clk *phy_pclk1; - void *phy_base; - struct gpio_desc *clkreq_gpiod; - struct regmap *gpr; - bool no_device; - bool first_time; - u32 phy_params; - u32 imped_ratio; +struct virtio_net_ctrl_mac { + __virtio32 entries; + __u8 macs[0]; }; -struct tegra_spi_soc_data { - bool has_intr_mask_reg; +struct orion_mdio_dev; + +struct orion_mdio_ops { + int (*is_done)(struct orion_mdio_dev *); + unsigned int poll_interval_min; + unsigned int poll_interval_max; }; -struct tegra_spi_data { - struct device *dev; - struct spi_controller *master; - spinlock_t lock; - struct clk *clk; - struct reset_control *rst; - void *base; - phys_addr_t phys; - unsigned int irq; - u32 cur_speed; - struct spi_device *cur_spi; - struct spi_device *cs_control; - unsigned int cur_pos; - unsigned int words_per_32bit; - unsigned int bytes_per_word; - unsigned int curr_dma_words; - unsigned int cur_direction; - unsigned int cur_rx_pos; - unsigned int cur_tx_pos; - unsigned int dma_buf_size; - unsigned int max_buf_size; - bool is_curr_dma_xfer; - bool use_hw_based_cs; - struct completion rx_dma_complete; - struct completion tx_dma_complete; - u32 tx_status; - u32 rx_status; - u32 status_reg; - bool is_packed; - u32 command1_reg; - u32 dma_control_reg; - u32 def_command1_reg; - u32 def_command2_reg; - u32 spi_cs_timing1; - u32 spi_cs_timing2; - u8 last_used_cs; - struct completion xfer_completion; - struct spi_transfer *curr_xfer; - struct dma_chan *rx_dma_chan; - u32 *rx_dma_buf; - dma_addr_t rx_dma_phys; - struct dma_async_tx_descriptor *rx_dma_desc; - struct dma_chan *tx_dma_chan; - u32 *tx_dma_buf; - dma_addr_t tx_dma_phys; - struct dma_async_tx_descriptor *tx_dma_desc; - const struct tegra_spi_soc_data *soc_data; +struct orion_mdio_dev { + void *regs; + struct clk *clk[4]; + int err_interrupt; + wait_queue_head_t smi_busy_wait; }; -struct tegra_spi_client_data { - int tx_clk_tap_delay; - int rx_clk_tap_delay; +enum orion_mdio_bus_type { + BUS_TYPE_SMI = 0, + BUS_TYPE_XSMI = 1, }; -struct xpcs_compat { - const int *supported; - const phy_interface_t *interface; - int num_interfaces; - int an_mode; - int (*pma_config)(struct dw_xpcs *); +struct rtl_cond { + bool (*check)(struct rtl8169_private *); + const char *msg; }; -enum { - DW_XPCS_USXGMII = 0, - DW_XPCS_10GKR = 1, - DW_XPCS_XLGMII = 2, - DW_XPCS_10GBASER = 3, - DW_XPCS_SGMII = 4, - DW_XPCS_1000BASEX = 5, - DW_XPCS_2500BASEX = 6, - DW_XPCS_INTERFACE_MAX = 7, +enum rtl_dash_type { + RTL_DASH_NONE = 0, + RTL_DASH_DP = 1, + RTL_DASH_EP = 2, }; -struct xgmac_stats { - char stat_string[32]; - int stat_offset; - bool is_reg; +struct ring_info { + struct sk_buff *skb; + u32 len; }; -struct xgmac_extra_stats { - unsigned long tx_jabber; - unsigned long tx_frame_flushed; - unsigned long tx_payload_error; - unsigned long tx_ip_header_error; - unsigned long tx_local_fault; - unsigned long tx_remote_fault; - unsigned long rx_watchdog; - unsigned long rx_da_filter_fail; - unsigned long rx_payload_error; - unsigned long rx_ip_header_error; - unsigned long tx_process_stopped; - unsigned long rx_buf_unav; - unsigned long rx_process_stopped; - unsigned long tx_early; - unsigned long fatal_bus_error; +struct rtl8169_tc_offsets { + bool inited; + long: 32; + __le64 tx_errors; + __le32 tx_multi_collision; + __le16 tx_aborted; + __le16 rx_missed; }; -struct xgmac_dma_desc; +struct TxDesc; -struct xgmac_priv { - struct xgmac_dma_desc *dma_rx; - struct sk_buff **rx_skbuff; - unsigned int rx_tail; - unsigned int rx_head; - struct xgmac_dma_desc *dma_tx; - struct sk_buff **tx_skbuff; - unsigned int tx_head; - unsigned int tx_tail; - int tx_irq_cnt; - void *base; - unsigned int dma_buf_sz; - dma_addr_t dma_rx_phy; - dma_addr_t dma_tx_phy; +struct RxDesc; + +struct rtl8169_counters; + +struct rtl_fw; + +struct rtl8169_private { + void *mmio_addr; + struct pci_dev *pci_dev; struct net_device *dev; - struct device *device; - long: 32; + struct phy_device *phydev; struct napi_struct napi; - int max_macs; - struct xgmac_extra_stats xstats; - spinlock_t stats_lock; - int pmt_irq; - char rx_pause; - char tx_pause; - int wolopts; - struct work_struct tx_timeout_work; + 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; + raw_spinlock_t config25_lock; + raw_spinlock_t mac_ocp_lock; + raw_spinlock_t cfg9346_usage_lock; + int cfg9346_usage_count; + unsigned int supports_gmii: 1; + unsigned int aspm_manageable: 1; + unsigned int dash_enabled: 1; + dma_addr_t counters_phys_addr; + struct rtl8169_counters *counters; + long: 32; + struct rtl8169_tc_offsets tc_offset; + u32 saved_wolopts; + int eee_adv; + const char *fw_name; + struct rtl_fw *rtl_fw; + u32 ocp_base; + long: 32; }; -struct xgmac_dma_desc { - __le32 flags; - __le32 buf_size; - __le32 buf1_addr; - __le32 buf2_addr; - __le32 ext_status; - __le32 res[3]; +struct TxDesc { + __le32 opts1; + __le32 opts2; + __le64 addr; }; -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 RxDesc { + __le32 opts1; + __le32 opts2; + __le64 addr; }; -struct fw_info { - u32 magic; - char version[32]; - __le32 fw_start; - __le32 fw_len; - u8 chksum; -} __attribute__((packed)); - -struct rtl8169_private; +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); @@ -109804,1248 +113583,1105 @@ struct rtl_fw { struct rtl_fw_phy_action phy_action; }; -struct xdp_buff_xsk; - -struct xdp_desc; +typedef void (*rtl_generic_fct)(struct rtl8169_private *); -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: 32; - struct xsk_queue *fq; - struct xsk_queue *cq; - dma_addr_t *dma_pages; - struct xdp_buff_xsk *heads; - struct xdp_desc *tx_descs; - long: 32; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct ephy_info { + unsigned int offset; + u16 mask; + u16 bits; }; -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; - long: 32; - u64 orig_addr; - struct list_head free_list_node; +struct rtl_mac_info { + u16 mask; + u16 val; + enum mac_version ver; }; -struct xdp_desc { - __u64 addr; - __u32 len; - __u32 options; +struct rtl_coalesce_info { + u32 speed; + u32 scale_nsecs[4]; }; -enum tc_clsu32_command { - TC_CLSU32_NEW_KNODE = 0, - TC_CLSU32_REPLACE_KNODE = 1, - TC_CLSU32_DELETE_KNODE = 2, - TC_CLSU32_NEW_HNODE = 3, - TC_CLSU32_REPLACE_HNODE = 4, - TC_CLSU32_DELETE_HNODE = 5, +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 tc_taprio_qopt_cmd { - TAPRIO_CMD_REPLACE = 0, - TAPRIO_CMD_DESTROY = 1, - TAPRIO_CMD_STATS = 2, - TAPRIO_CMD_QUEUE_STATS = 3, +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 request_irq_err { - REQ_IRQ_ERR_ALL = 0, - REQ_IRQ_ERR_TX = 1, - REQ_IRQ_ERR_RX = 2, - REQ_IRQ_ERR_SFTY_UE = 3, - REQ_IRQ_ERR_SFTY_CE = 4, - REQ_IRQ_ERR_LPI = 5, - REQ_IRQ_ERR_WOL = 6, - REQ_IRQ_ERR_MAC = 7, - REQ_IRQ_ERR_NO = 8, +enum rtl_registers { + MAC0 = 0, + MAC4 = 4, + MAR0 = 8, + CounterAddrLow = 16, + CounterAddrHigh = 20, + TxDescStartAddrLow = 32, + TxDescStartAddrHigh = 36, + TxHDescStartAddrLow = 40, + TxHDescStartAddrHigh = 44, + FLASH = 48, + ERSR = 54, + ChipCmd = 55, + TxPoll = 56, + IntrMask = 60, + IntrStatus = 62, + TxConfig = 64, + RxConfig = 68, + Cfg9346 = 80, + Config0 = 81, + Config1 = 82, + Config2 = 83, + Config3 = 84, + Config4 = 85, + Config5 = 86, + PHYAR = 96, + PHYstatus = 108, + RxMaxSize = 218, + CPlusCmd = 224, + IntrMitigate = 226, + RxDescAddrLow = 228, + RxDescAddrHigh = 232, + EarlyTxThres = 236, + MaxTxPacketSize = 236, + FuncEvent = 240, + FuncEventMask = 244, + FuncPresetState = 248, + IBCR0 = 248, + IBCR2 = 249, + IBIMR0 = 250, + IBISR0 = 251, + FuncForceEvent = 252, }; -enum stmmac_state { - STMMAC_DOWN = 0, - STMMAC_RESET_REQUESTED = 1, - STMMAC_RESETING = 2, - STMMAC_SERVICE_SCHED = 3, +enum rtl_register_content { + SYSErr = 32768, + PCSTimeout = 16384, + SWInt = 256, + TxDescUnavail = 128, + RxFIFOOver = 64, + LinkChg = 32, + RxOverflow = 16, + TxErr = 8, + TxOK = 4, + RxErr = 2, + RxOK = 1, + RxRWT = 4194304, + RxRES = 2097152, + RxRUNT = 1048576, + RxCRC = 524288, + StopReq = 128, + CmdReset = 16, + CmdRxEnb = 8, + CmdTxEnb = 4, + RxBufEmpty = 1, + HPQ = 128, + NPQ = 64, + FSWInt = 1, + Cfg9346_Lock = 0, + Cfg9346_Unlock = 192, + AcceptErr = 32, + AcceptRunt = 16, + AcceptBroadcast = 8, + AcceptMulticast = 4, + AcceptMyPhys = 2, + AcceptAllPhys = 1, + TxInterFrameGapShift = 24, + TxDMAShift = 8, + LEDS1 = 128, + LEDS0 = 64, + Speed_down = 16, + MEMMAP = 8, + IOMAP = 4, + VPD = 2, + PMEnable = 1, + ClkReqEn = 128, + MSIEnable = 32, + PCI_Clock_66MHz = 1, + PCI_Clock_33MHz = 0, + MagicPacket = 32, + LinkUp = 16, + Jumbo_En0 = 4, + Rdy_to_L23 = 2, + Beacon_en = 1, + Jumbo_En1 = 2, + BWF = 64, + MWF = 32, + UWF = 16, + Spi_en = 8, + LanWake = 2, + PMEStatus = 1, + ASPM_en = 1, + EnableBist = 32768, + Mac_dbgo_oe = 16384, + EnAnaPLL = 16384, + Normal_mode = 8192, + Force_half_dup = 4096, + Force_rxflow_en = 2048, + Force_txflow_en = 1024, + Cxpl_dbg_sel = 512, + ASF = 256, + PktCntrDisable = 128, + Mac_dbgo_sel = 28, + RxVlan = 64, + RxChkSum = 32, + PCIDAC = 16, + PCIMulRW = 8, + TBI_Enable = 128, + TxFlowCtrl = 64, + RxFlowCtrl = 32, + _1000bpsF = 16, + _100bps = 8, + _10bps = 4, + LinkStatus = 2, + FullDup = 1, + CounterReset = 1, + CounterDump = 8, + MagicPacket_v2 = 65536, }; -enum stmmac_fpe_task_state_t { - __FPE_REMOVING = 0, - __FPE_TASK_SCHED = 1, +enum rtl_desc_bit { + DescOwn = -2147483648, + RingEnd = 1073741824, + FirstFrag = 536870912, + LastFrag = 268435456, }; -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 rtl_flag { + RTL_FLAG_TASK_ENABLED = 0, + RTL_FLAG_TASK_RESET_PENDING = 1, + RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE = 2, + RTL_FLAG_TASK_TX_TIMEOUT = 3, + RTL_FLAG_MAX = 4, }; -enum flow_block_command { - FLOW_BLOCK_BIND = 0, - FLOW_BLOCK_UNBIND = 1, +enum rtl8125_registers { + IntrMask_8125 = 56, + IntrStatus_8125 = 60, + TxPoll_8125 = 144, + MAC0_BKP = 6624, + EEE_TXIDLE_TIMER_8125 = 24648, }; -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, +enum rtl_tx_desc_bit { + TD_LSO = 134217728, + TxVlanTag = 131072, }; -struct tc_u32_sel; +enum rtl_tx_desc_bit_0 { + TD0_TCP_CS = 65536, + TD0_UDP_CS = 131072, + TD0_IP_CS = 262144, +}; -struct tc_cls_u32_knode { - struct tcf_exts *exts; - struct tcf_result *res; - struct tc_u32_sel *sel; - u32 handle; - u32 val; - u32 mask; - u32 link_handle; - u8 fshift; +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, }; -struct tc_cls_u32_hnode { - u32 handle; - u32 prio; - unsigned int divisor; +enum rtl_rx_desc_bit { + PID1 = 262144, + PID0 = 131072, + IPFail = 65536, + UDPFail = 32768, + TCPFail = 16384, + RxVlanTag = 65536, }; -struct tc_cls_u32_offload { - struct flow_cls_common_offload common; - enum tc_clsu32_command command; +struct vlan_ethhdr { union { - struct tc_cls_u32_knode knode; - struct tc_cls_u32_hnode hnode; + 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 tc_u32_key { - __be32 mask; - __be32 val; - int off; - int offmask; +struct emac_variant { + u32 default_syscon_value; + const struct reg_field *syscon_field; + bool soc_has_internal_phy; + bool support_mii; + bool support_rmii; + bool support_rgmii; + u8 rx_delay_max; + u8 tx_delay_max; }; -struct tc_u32_sel { - unsigned char flags; - unsigned char offshift; - unsigned char nkeys; - __be16 offmask; - __u16 off; - short offoff; - short hoff; - __be32 hmask; - struct tc_u32_key keys[0]; +struct sunxi_priv_data { + struct clk *ephy_clk; + struct regulator *regulator; + struct reset_control *rst_ephy; + const struct emac_variant *variant; + struct regmap_field *regmap_field; + bool internal_phy_powered; + bool use_internal_phy; + void *mux_handle; }; -struct tc_cbs_qopt_offload { - u8 enable; - s32 queue; - s32 hicredit; - s32 locredit; - s32 idleslope; - s32 sendslope; +enum hub_led_mode { + INDICATOR_AUTO = 0, + INDICATOR_CYCLE = 1, + INDICATOR_GREEN_BLINK = 2, + INDICATOR_GREEN_BLINK_OFF = 3, + INDICATOR_AMBER_BLINK = 4, + INDICATOR_AMBER_BLINK_OFF = 5, + INDICATOR_ALT_BLINK = 6, + INDICATOR_ALT_BLINK_OFF = 7, +} __attribute__((mode(byte))); + +enum hub_quiescing_type { + HUB_DISCONNECT = 0, + HUB_PRE_RESET = 1, + HUB_SUSPEND = 2, }; -struct tc_taprio_sched_entry { - u8 command; - u32 gate_mask; - u32 interval; +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 tc_taprio_qopt_stats { - u64 window_drops; - u64 tx_overruns; +struct usb_tt_clear { + struct list_head clear_list; + unsigned int tt; + u16 devinfo; + struct usb_hcd *hcd; + struct usb_host_endpoint *ep; }; -struct tc_taprio_qopt_queue_stats { - int queue; - long: 32; - struct tc_taprio_qopt_stats stats; +struct usb_otg_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bmAttributes; }; -struct tc_taprio_qopt_offload { - enum tc_taprio_qopt_cmd cmd; - long: 32; - union { - struct tc_taprio_qopt_stats stats; - struct tc_taprio_qopt_queue_stats queue_stats; - struct { - struct tc_mqprio_qopt_offload mqprio; - struct netlink_ext_ack *extack; - long: 32; - ktime_t base_time; - u64 cycle_time; - u64 cycle_time_extension; - u32 max_sdu[16]; - size_t num_entries; - struct tc_taprio_sched_entry entries[0]; - long: 32; - }; - }; +struct usb_qualifier_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __u8 bNumConfigurations; + __u8 bRESERVED; }; -struct tc_etf_qopt_offload { - u8 enable; - s32 queue; +struct usbdevfs_hub_portinfo { + char nports; + char port[127]; }; -struct tc_query_caps_base { - enum tc_setup_type type; - void *caps; +struct usb_set_sel_req { + __u8 u1_sel; + __u8 u1_pel; + __le16 u2_sel; + __le16 u2_pel; }; -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 dwc3_gadget_ep_cmd_params { + u32 param2; + u32 param1; + u32 param0; +}; + +struct dwc3_event_depevt { + u32 one_bit: 1; + u32 endpoint_number: 5; + u32 endpoint_event: 4; + u32 reserved11_10: 2; + u32 status: 4; + u32 parameters: 16; +}; + +struct timing { + u8 u1sel; + u8 u1pel; + __le16 u2sel; + __le16 u2pel; }; -struct stmmac_xdp_buff { - struct xdp_buff xdp; - struct stmmac_priv *priv; - struct dma_desc *desc; - struct dma_desc *ndesc; -}; +typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_quirks)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_reset_ep)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); + +typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); + +typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); + +typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); + +typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); -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; -}; +typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *); -enum usb_led_event { - USB_LED_EVENT_HOST = 0, - USB_LED_EVENT_GADGET = 1, -}; +typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); -enum xhci_overhead_type { - LS_OVERHEAD_TYPE = 0, - FS_OVERHEAD_TYPE = 1, - HS_OVERHEAD_TYPE = 2, -}; +typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *); -enum xhci_cancelled_td_status { - TD_DIRTY = 0, - TD_HALTED = 1, - TD_CLEARING_CACHE = 2, - TD_CLEARED = 3, -}; +typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); -enum xhci_setup_dev { - SETUP_CONTEXT_ONLY = 0, - SETUP_CONTEXT_ADDRESS = 1, -}; +typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *); -struct xhci_input_control_ctx { - __le32 drop_flags; - __le32 add_flags; - __le32 rsvd2[6]; -}; +typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); -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; -}; +typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); -struct urb_priv { - int num_tds; - int num_tds_done; - struct xhci_td td[0]; -}; +typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); -struct tegra_kbc_hw_support { - int max_rows; - int max_columns; -}; +typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); -enum tegra_pin_type { - PIN_CFG_IGNORE = 0, - PIN_CFG_COL = 1, - PIN_CFG_ROW = 2, -}; +typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); -struct tegra_kbc_pin_cfg { - enum tegra_pin_type type; - unsigned char num; -}; +typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); -struct tegra_kbc { - struct device *dev; - unsigned int debounce_cnt; - unsigned int repeat_cnt; - struct tegra_kbc_pin_cfg pin_cfg[24]; - const struct matrix_keymap_data *keymap_data; - bool wakeup; - void *mmio; - struct input_dev *idev; - int irq; - spinlock_t lock; - unsigned int repoll_dly; - unsigned long cp_dly_jiffies; - unsigned int cp_to_wkup_dly; - bool use_fn_map; - bool use_ghost_filter; - bool keypress_caused_wake; - unsigned short keycode[256]; - unsigned short current_keys[8]; - unsigned int num_pressed_keys; - u32 wakeup_key; - struct timer_list timer; - struct clk *clk; - struct reset_control *rst; - const struct tegra_kbc_hw_support *hw_support; - int max_keys; - int num_rows_and_columns; -}; +typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); -struct spear_rtc_config { - struct rtc_device *rtc; - struct clk *clk; - spinlock_t lock; - void *ioaddr; - unsigned int irq_wake; -}; +typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); -struct mv64xxx_i2c_regs { - u8 addr; - u8 ext_addr; - u8 data; - u8 control; - u8 status; - u8 clock; - u8 soft_reset; -}; +typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); -enum { - MV64XXX_I2C_STATE_INVALID = 0, - MV64XXX_I2C_STATE_IDLE = 1, - MV64XXX_I2C_STATE_WAITING_FOR_START_COND = 2, - MV64XXX_I2C_STATE_WAITING_FOR_RESTART = 3, - MV64XXX_I2C_STATE_WAITING_FOR_ADDR_1_ACK = 4, - MV64XXX_I2C_STATE_WAITING_FOR_ADDR_2_ACK = 5, - MV64XXX_I2C_STATE_WAITING_FOR_SLAVE_ACK = 6, - MV64XXX_I2C_STATE_WAITING_FOR_SLAVE_DATA = 7, -}; +typedef void (*btf_trace_xhci_handle_port_status)(void *, struct xhci_port *, u32); -enum { - MV64XXX_I2C_ACTION_INVALID = 0, - MV64XXX_I2C_ACTION_CONTINUE = 1, - MV64XXX_I2C_ACTION_SEND_RESTART = 2, - MV64XXX_I2C_ACTION_SEND_ADDR_1 = 3, - MV64XXX_I2C_ACTION_SEND_ADDR_2 = 4, - MV64XXX_I2C_ACTION_SEND_DATA = 5, - MV64XXX_I2C_ACTION_RCV_DATA = 6, - MV64XXX_I2C_ACTION_RCV_DATA_STOP = 7, - MV64XXX_I2C_ACTION_SEND_STOP = 8, -}; +typedef void (*btf_trace_xhci_get_port_status)(void *, struct xhci_port *, u32); -struct mv64xxx_i2c_data { - struct i2c_msg *msgs; - int num_msgs; - int irq; - u32 state; - u32 action; - u32 aborting; - u32 cntl_bits; - void *reg_base; - struct mv64xxx_i2c_regs reg_offsets; - u32 addr1; - u32 addr2; - u32 bytes_left; - u32 byte_posn; - u32 send_stop; - u32 block; - int rc; - u32 freq_m; - u32 freq_n; - struct clk *clk; - struct clk *reg_clk; - wait_queue_head_t waitq; - spinlock_t lock; - struct i2c_msg *msg; - struct i2c_adapter adapter; - bool offload_enabled; - bool errata_delay; - struct reset_control *rstc; - bool irq_clear_inverted; - bool clk_n_base_0; - struct i2c_bus_recovery_info rinfo; - bool atomic; - long: 32; -}; +typedef void (*btf_trace_xhci_hub_status_data)(void *, struct xhci_port *, u32); -struct mv64xxx_i2c_pdata { - u32 freq_m; - u32 freq_n; - u32 timeout; -}; +typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32); -enum tshut_mode { - TSHUT_MODE_CRU = 0, - TSHUT_MODE_GPIO = 1, -}; +typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); -enum tshut_polarity { - TSHUT_LOW_ACTIVE = 0, - TSHUT_HIGH_ACTIVE = 1, -}; +struct dbc_request; -enum adc_sort_mode { - ADC_DECREMENT = 0, - ADC_INCREMENT = 1, -}; +typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); -struct tsadc_table; +struct xhci_dbc; -struct chip_tsadc_table { - const struct tsadc_table *id; +struct dbc_request { + void *buf; unsigned int length; - u32 data_mask; - enum adc_sort_mode mode; + 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; }; -struct rockchip_tsadc_chip { - int chn_offset; - int chn_num; - int tshut_temp; - enum tshut_mode tshut_mode; - enum tshut_polarity tshut_polarity; - void (*initialize)(struct regmap *, void *, enum tshut_polarity); - void (*irq_ack)(void *); - void (*control)(void *, bool); - int (*get_temp)(const struct chip_tsadc_table *, int, void *, int *); - int (*set_alarm_temp)(const struct chip_tsadc_table *, int, void *, int); - int (*set_tshut_temp)(const struct chip_tsadc_table *, int, void *, int); - void (*set_tshut_mode)(int, void *, enum tshut_mode); - struct chip_tsadc_table table; +enum dbc_state { + DS_DISABLED = 0, + DS_INITIALIZED = 1, + DS_ENABLED = 2, + DS_CONNECTED = 3, + DS_CONFIGURED = 4, + DS_STALLED = 5, }; -struct tsadc_table { - u32 code; - int temp; +struct dbc_ep { + struct xhci_dbc *dbc; + struct list_head list_pending; + struct xhci_ring *ring; + unsigned int direction: 1; }; -struct rockchip_thermal_sensor; +struct dbc_regs; -struct rockchip_thermal_data { - const struct rockchip_tsadc_chip *chip; - struct platform_device *pdev; - struct reset_control *reset; - struct rockchip_thermal_sensor *sensors; - struct clk *clk; - struct clk *pclk; - struct regmap *grf; - void *regs; - int tshut_temp; - enum tshut_mode tshut_mode; - enum tshut_polarity tshut_polarity; -}; +struct dbc_str_descs; -struct rockchip_thermal_sensor { - struct rockchip_thermal_data *thermal; - struct thermal_zone_device *tzd; - int id; +struct dbc_driver; + +struct xhci_dbc { + spinlock_t lock; + struct device *dev; + struct xhci_hcd *xhci; + struct dbc_regs *regs; + struct xhci_ring *ring_evt; + struct xhci_ring *ring_in; + struct xhci_ring *ring_out; + struct xhci_erst erst; + struct xhci_container_ctx *ctx; + struct dbc_str_descs *string; + dma_addr_t string_dma; + size_t string_size; + u16 idVendor; + u16 idProduct; + u16 bcdDevice; + u8 bInterfaceProtocol; + enum dbc_state state; + struct delayed_work event_work; + unsigned int resume_required: 1; + struct dbc_ep eps[2]; + const struct dbc_driver *driver; + void *priv; }; -struct dev_ch_attribute { - struct device_attribute attr; - unsigned int channel; +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 mmc_clk_phase { - bool valid; - u16 in_deg; - u16 out_deg; +struct dbc_str_descs { + char string0[64]; + char manufacturer[64]; + char product[64]; + char serial[64]; }; -struct mmc_clk_phase_map { - struct mmc_clk_phase phase[11]; +struct dbc_driver { + int (*configure)(struct xhci_dbc *); + void (*disconnect)(struct xhci_dbc *); }; -struct sunxi_mmc_clk_delay; +typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *); -struct sunxi_mmc_cfg { - u32 idma_des_size_bits; - u32 idma_des_shift; - const struct sunxi_mmc_clk_delay *clk_delays; - bool can_calibrate; - bool mask_data0; - bool needs_new_timings; - bool ccu_has_timings_switch; -}; +typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *); -struct sunxi_mmc_clk_delay { - u32 output; - u32 sample; -}; +typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *); -struct sunxi_idma_des { - __le32 config; - __le32 buf_size; - __le32 buf_addr_ptr1; - __le32 buf_addr_ptr2; +struct trace_event_raw_xhci_log_msg { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -struct sunxi_mmc_host { - struct device *dev; - struct mmc_host *mmc; - struct reset_control *reset; - const struct sunxi_mmc_cfg *cfg; - void *reg_base; - struct clk *clk_ahb; - struct clk *clk_mmc; - struct clk *clk_sample; - struct clk *clk_output; - spinlock_t lock; - int irq; - u32 int_sum; - u32 sdio_imask; - dma_addr_t sg_dma; - void *sg_cpu; - bool wait_dma; - struct mmc_request *mrq; - struct mmc_request *manual_stop_mrq; - int ferror; - bool vqmmc_enabled; - bool use_new_timings; +struct trace_event_raw_xhci_log_ctx { + struct trace_entry ent; + int ctx_64; + unsigned int ctx_type; + dma_addr_t ctx_dma; + u8 *ctx_va; + unsigned int ctx_ep_num; + u32 __data_loc_ctx_data; + char __data[0]; }; -struct scmi_clock_info; - -struct scmi_clk_proto_ops { - int (*count_get)(const struct scmi_protocol_handle *); - const struct scmi_clock_info * (*info_get)(const struct scmi_protocol_handle *, u32); - int (*rate_get)(const struct scmi_protocol_handle *, u32, u64 *); - int (*rate_set)(const struct scmi_protocol_handle *, u32, u64); - int (*enable)(const struct scmi_protocol_handle *, u32); - int (*disable)(const struct scmi_protocol_handle *, u32); - int (*enable_atomic)(const struct scmi_protocol_handle *, u32); - int (*disable_atomic)(const struct scmi_protocol_handle *, u32); +struct trace_event_raw_xhci_log_trb { + struct trace_entry ent; + u32 type; + u32 field0; + u32 field1; + u32 field2; + u32 field3; + char __data[0]; }; -struct scmi_clock_info { - char name[64]; - unsigned int enable_latency; - bool rate_discrete; - bool rate_changed_notifications; - bool rate_change_requested_notifications; - union { - struct { - int num_rates; - long: 32; - u64 rates[16]; - } list; - struct { - u64 min_rate; - u64 max_rate; - u64 step_size; - } range; - }; +struct trace_event_raw_xhci_log_free_virt_dev { + struct trace_entry ent; + void *vdev; + long: 32; + unsigned long long out_ctx; + unsigned long long in_ctx; + u8 fake_port; + u8 real_port; + u16 current_mel; + char __data[0]; + long: 32; }; -enum scmi_clock_protocol_cmd { - CLOCK_ATTRIBUTES = 3, - CLOCK_DESCRIBE_RATES = 4, - CLOCK_RATE_SET = 5, - CLOCK_RATE_GET = 6, - CLOCK_CONFIG_SET = 7, - CLOCK_NAME_GET = 8, - CLOCK_RATE_NOTIFY = 9, - CLOCK_RATE_CHANGE_REQUESTED_NOTIFY = 10, +struct trace_event_raw_xhci_log_virt_dev { + struct trace_entry ent; + void *vdev; + long: 32; + 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]; + long: 32; }; -struct clock_info { - u32 version; - int num_clocks; - int max_async_req; - atomic_t cur_async_req; - struct scmi_clock_info *clk; +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 scmi_msg_resp_clock_protocol_attributes { - __le16 num_clocks; - u8 max_async_req; - u8 reserved; +struct trace_event_raw_xhci_log_ep_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u64 deq; + u32 tx_info; + char __data[0]; + long: 32; }; -struct scmi_msg_resp_clock_attributes { - __le32 attributes; - u8 name[16]; - __le32 clock_enable_latency; +struct trace_event_raw_xhci_log_slot_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u32 tt_info; + u32 state; + char __data[0]; }; -struct scmi_clk_ipriv { - struct device *dev; - u32 clk_id; - struct scmi_clock_info *clk; +struct trace_event_raw_xhci_log_ctrl_ctx { + struct trace_entry ent; + u32 drop; + u32 add; + char __data[0]; }; -struct scmi_clock_set_config { - __le32 id; - __le32 attributes; +struct trace_event_raw_xhci_log_ring { + struct trace_entry ent; + u32 type; + void *ring; + dma_addr_t enq; + dma_addr_t deq; + dma_addr_t enq_seg; + dma_addr_t deq_seg; + unsigned int num_segs; + unsigned int stream_id; + unsigned int cycle_state; + unsigned int bounce_buf_len; + char __data[0]; }; -struct scmi_msg_clock_rate_notify { - __le32 clk_id; - __le32 notify_enable; +struct trace_event_raw_xhci_log_portsc { + struct trace_entry ent; + u32 busnum; + u32 portnum; + u32 portsc; + char __data[0]; }; -struct scmi_msg_clock_describe_rates { - __le32 id; - __le32 rate_index; +struct trace_event_raw_xhci_log_doorbell { + struct trace_entry ent; + u32 slot; + u32 doorbell; + char __data[0]; }; -struct scmi_msg_resp_clock_describe_rates { - __le32 num_rates_flags; - struct { - __le32 value_low; - __le32 value_high; - } rate[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 scmi_clock_set_rate { - __le32 flags; - __le32 id; - __le32 value_low; - __le32 value_high; +struct trace_event_data_offsets_xhci_log_msg { + u32 msg; }; -struct scmi_msg_resp_set_rate_complete { - __le32 id; - __le32 rate_low; - __le32 rate_high; +struct trace_event_data_offsets_xhci_log_ctx { + u32 ctx_data; }; -struct scmi_clock_rate_notify_payld { - __le32 agent_id; - __le32 clock_id; - __le32 rate_low; - __le32 rate_high; -}; +struct trace_event_data_offsets_xhci_log_trb {}; -struct scmi_clock_rate_notif_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int clock_id; - unsigned long long rate; -}; +struct trace_event_data_offsets_xhci_log_free_virt_dev {}; -typedef u64 efi_physical_addr_t; +struct trace_event_data_offsets_xhci_log_virt_dev {}; -typedef struct { - u64 length; - u64 data; -} efi_capsule_block_desc_t; +struct trace_event_data_offsets_xhci_log_urb {}; -struct gxp_timer { - void *counter; - void *control; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct clock_event_device evt; -}; +struct trace_event_data_offsets_xhci_log_ep_ctx {}; -enum { - AC = 0, - BAT = 1, -}; +struct trace_event_data_offsets_xhci_log_slot_ctx {}; -enum { - SLOT_STATUS = 0, - VOLTAGE = 1, - TIME_REMAINING = 2, - CURRENT = 3, - AVERAGE_CURRENT = 4, - AVERAGING_TIME_INTERVAL = 5, - CAPACITY_REMAINING = 6, - LAST_FULL_CHARGE_CAPACITY = 7, - DESIGN_CAPACITY = 8, - CRITICAL_CAPACITY = 9, - TEMPERATURE = 10, - MANUFACTURER = 11, - MODEL = 12, - TYPE___2 = 13, -}; +struct trace_event_data_offsets_xhci_log_ctrl_ctx {}; -struct nvec_power { - struct notifier_block notifier; - struct delayed_work poller; - struct nvec_chip *nvec; - int on; - int bat_present; - int bat_status; - int bat_voltage_now; - int bat_current_now; - int bat_current_avg; - int time_remain; - int charge_full_design; - int charge_last_full; - int critical_capacity; - int capacity_remain; - int bat_temperature; - int bat_cap; - int bat_type_enum; - char bat_manu[30]; - char bat_model[30]; - char bat_type[30]; -}; +struct trace_event_data_offsets_xhci_log_ring {}; -struct bat_response { - u8 event_type; - u8 length; - u8 sub_type; - u8 status; - union { - char plc[30]; - u16 plu; - s16 pls; - }; -}; +struct trace_event_data_offsets_xhci_log_portsc {}; -struct extcon_cable; +struct trace_event_data_offsets_xhci_log_doorbell {}; -struct extcon_dev { - const char *name; - const unsigned int *supported_cable; - const u32 *mutually_exclusive; - long: 32; - struct device dev; - unsigned int id; - struct raw_notifier_head nh_all; - struct raw_notifier_head *nh; - struct list_head entry; - int max_supported; - spinlock_t lock; - u32 state; - struct device_type extcon_dev_type; - struct extcon_cable *cables; - struct attribute_group attr_g_muex; - struct attribute **attrs_muex; - struct device_attribute *d_attrs_muex; -}; +struct trace_event_data_offsets_xhci_dbc_log_request {}; -struct extcon_dev_notifier_devres { - struct extcon_dev *edev; - unsigned int id; - struct notifier_block *nb; +struct elantech_attr_data { + size_t field_offset; + unsigned char reg; }; -struct optee_shm_arg_entry { - struct list_head list_node; - struct tee_shm *shm; - unsigned long map[1]; +enum { + ELANTECH_SMBUS_NOT_SET = -1, + ELANTECH_SMBUS_OFF = 0, + ELANTECH_SMBUS_ON = 1, }; -struct optee_call_waiter { - struct list_head list_node; - struct completion c; +struct elantech_device_info { + unsigned char capabilities[3]; + unsigned char samples[3]; + unsigned char debug; + unsigned char hw_version; + unsigned char pattern; + unsigned int fw_version; + unsigned int ic_version; + unsigned int product_id; + unsigned int x_min; + unsigned int y_min; + unsigned int x_max; + unsigned int y_max; + unsigned int x_res; + unsigned int y_res; + unsigned int x_traces; + unsigned int y_traces; + unsigned int width; + unsigned int bus; + bool paritycheck; + bool jumpy_cursor; + bool reports_pressure; + bool crc_enabled; + bool set_hw_resolution; + bool has_trackpoint; + bool has_middle_button; + int (*send_cmd)(struct psmouse *, unsigned char, unsigned char *); }; -struct optee_msg_arg { - u32 cmd; - u32 func; - u32 session; - u32 cancel_id; - u32 pad; - u32 ret; - u32 ret_origin; - u32 num_params; - struct optee_msg_param params[0]; +struct finger_pos { + unsigned int x; + unsigned int y; }; -enum { - SKB_FCLONE_UNAVAILABLE = 0, - SKB_FCLONE_ORIG = 1, - SKB_FCLONE_CLONE = 2, +struct elantech_data { + struct input_dev *tp_dev; + char tp_phys[32]; + unsigned char reg_07; + unsigned char reg_10; + unsigned char reg_11; + unsigned char reg_20; + unsigned char reg_21; + unsigned char reg_22; + unsigned char reg_23; + unsigned char reg_24; + unsigned char reg_25; + unsigned char reg_26; + unsigned int single_finger_reports; + unsigned int y_max; + unsigned int width; + struct finger_pos mt[5]; + unsigned char parity[256]; + struct elantech_device_info info; + void (*original_set_rate)(struct psmouse *, unsigned int); }; -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 sun6i_rtc_clk_data; -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, +struct sun6i_rtc_dev { + struct rtc_device *rtc; + const struct sun6i_rtc_clk_data *data; + void *base; + int irq; + time64_t alarm; + unsigned long flags; + struct clk_hw hw; + struct clk_hw *int_osc; + struct clk *losc; + struct clk *ext_losc; + spinlock_t lock; }; -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 sun6i_rtc_clk_data { + unsigned long rc_osc_rate; + unsigned int fixed_prescaler: 16; + unsigned int has_prescaler: 1; + unsigned int has_out_clk: 1; + unsigned int has_losc_en: 1; + unsigned int has_auto_swt: 1; }; -enum nla_policy_validation { - NLA_VALIDATE_NONE = 0, - NLA_VALIDATE_RANGE = 1, - NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2, - NLA_VALIDATE_MIN = 3, - NLA_VALIDATE_MAX = 4, - NLA_VALIDATE_MASK = 5, - NLA_VALIDATE_RANGE_PTR = 6, - NLA_VALIDATE_FUNCTION = 7, +struct imx2_wdt_data { + bool wdw_supported; }; -struct netlink_policy_dump_state { - unsigned int policy_idx; - unsigned int attr_idx; - unsigned int n_alloc; - struct { - const struct nla_policy *policy; - unsigned int maxtype; - } policies[0]; +struct imx2_wdt_device { + struct clk *clk; + struct regmap *regmap; + struct watchdog_device wdog; + const struct imx2_wdt_data *data; + bool ext_reset; + bool clk_is_on; + bool no_ping; + bool sleep_wait; }; -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, +struct xwdt_device { + void *base; + u32 wdt_interval; + spinlock_t spinlock; + struct watchdog_device xilinx_wdt_wdd; + struct clk *clk; }; -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, +struct tegra124_cpufreq_priv { + struct clk *cpu_clk; + struct clk *pllp_clk; + struct clk *pllx_clk; + struct clk *dfll_clk; + struct platform_device *cpufreq_dt_pdev; }; -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, -}; +typedef void (*btf_trace_mmc_request_start)(void *, struct mmc_host *, struct mmc_request *); -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, -}; +typedef void (*btf_trace_mmc_request_done)(void *, struct mmc_host *, struct mmc_request *); -struct ipq { - struct inet_frag_queue q; - u8 ecn; - u16 max_df_size; - int iif; - unsigned int rid; - struct inet_peer *peer; +enum mmc_busy_cmd { + MMC_BUSY_CMD6 = 0, + MMC_BUSY_ERASE = 1, + MMC_BUSY_HPI = 2, + MMC_BUSY_EXTR_SINGLE = 3, + MMC_BUSY_IO = 4, }; -typedef unsigned int t_key; +enum mmc_err_stat { + MMC_ERR_CMD_TIMEOUT = 0, + MMC_ERR_CMD_CRC = 1, + MMC_ERR_DAT_TIMEOUT = 2, + MMC_ERR_DAT_CRC = 3, + MMC_ERR_AUTO_CMD = 4, + MMC_ERR_ADMA = 5, + MMC_ERR_TUNING = 6, + MMC_ERR_CMDQ_RED = 7, + MMC_ERR_CMDQ_GCE = 8, + MMC_ERR_CMDQ_ICCE = 9, + MMC_ERR_REQ_TIMEOUT = 10, + MMC_ERR_CMDQ_REQ_TIMEOUT = 11, + MMC_ERR_ICE_CFG = 12, + MMC_ERR_CTRL_TIMEOUT = 13, + MMC_ERR_UNEXPECTED_IRQ = 14, + MMC_ERR_MAX = 15, +}; -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 trace_event_raw_mmc_request_start { + struct trace_entry ent; + u32 cmd_opcode; + u32 cmd_arg; + unsigned int cmd_flags; + unsigned int cmd_retries; + u32 stop_opcode; + u32 stop_arg; + unsigned int stop_flags; + unsigned int stop_retries; + u32 sbc_opcode; + u32 sbc_arg; + unsigned int sbc_flags; + unsigned int sbc_retries; + unsigned int blocks; + unsigned int blk_addr; + unsigned int blksz; + unsigned int data_flags; + int tag; + unsigned int can_retune; + unsigned int doing_retune; + unsigned int retune_now; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct mmc_request *mrq; + u32 __data_loc_name; + char __data[0]; }; -struct trie { - struct key_vector kv[1]; +struct trace_event_raw_mmc_request_done { + struct trace_entry ent; + u32 cmd_opcode; + int cmd_err; + u32 cmd_resp[4]; + unsigned int cmd_retries; + u32 stop_opcode; + int stop_err; + u32 stop_resp[4]; + unsigned int stop_retries; + u32 sbc_opcode; + int sbc_err; + u32 sbc_resp[4]; + unsigned int sbc_retries; + unsigned int bytes_xfered; + int data_err; + int tag; + unsigned int can_retune; + unsigned int doing_retune; + unsigned int retune_now; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct mmc_request *mrq; + u32 __data_loc_name; + char __data[0]; }; -struct tnode { - struct callback_head rcu; - t_key empty_children; - t_key full_children; - struct key_vector __attribute__((btf_type_tag("rcu"))) *parent; - struct key_vector kv[1]; +struct trace_event_data_offsets_mmc_request_start { + u32 name; }; -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 trace_event_data_offsets_mmc_request_done { + u32 name; }; -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 sdhci_tegra_soc_data { + const struct sdhci_pltfm_data *pdata; + long: 32; + u64 dma_mask; + u32 nvquirks; + u8 min_tap_delay; + u8 max_tap_delay; }; -struct fib_trie_iter { - struct seq_net_private p; - struct fib_table *tb; - struct key_vector *tnode; - unsigned int index; - unsigned int depth; +struct sdhci_tegra_autocal_offsets { + u32 pull_up_3v3; + u32 pull_down_3v3; + u32 pull_up_3v3_timeout; + u32 pull_down_3v3_timeout; + u32 pull_up_1v8; + u32 pull_down_1v8; + u32 pull_up_1v8_timeout; + u32 pull_down_1v8_timeout; + u32 pull_up_sdr104; + u32 pull_down_sdr104; + u32 pull_up_hs400; + u32 pull_down_hs400; }; -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 sdhci_tegra { + const struct sdhci_tegra_soc_data *soc_data; + struct gpio_desc *power_gpio; + struct clk *tmclk; + bool ddr_signaling; + bool pad_calib_required; + bool pad_control_available; + struct reset_control *rst; + struct pinctrl *pinctrl_sdmmc; + struct pinctrl_state *pinctrl_state_3v3; + struct pinctrl_state *pinctrl_state_1v8; + struct pinctrl_state *pinctrl_state_3v3_drv; + struct pinctrl_state *pinctrl_state_1v8_drv; + struct sdhci_tegra_autocal_offsets autocal_offsets; + ktime_t last_calib; + u32 default_tap; + u32 default_trim; + u32 dqs_trim; + bool enable_hwcq; + unsigned long curr_clk_rate; + u8 tuned_tap_delay; + u32 stream_id; long: 32; }; -struct ipv6_params { - __s32 disable_ipv6; - __s32 autoconf; -}; - -struct ioam6_pernet_data { - struct mutex lock; - struct rhashtable namespaces; - struct rhashtable schemas; +struct simplefb_platform_data { + u32 width; + u32 height; + u32 stride; + const char *format; }; -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 scmi_reset_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const char * (*name_get)(const struct scmi_protocol_handle *, u32); + int (*latency_get)(const struct scmi_protocol_handle *, u32); + int (*reset)(const struct scmi_protocol_handle *, u32); + int (*assert)(const struct scmi_protocol_handle *, u32); + int (*deassert)(const struct scmi_protocol_handle *, u32); }; -struct in6_rtmsg { - struct in6_addr rtmsg_dst; - struct in6_addr rtmsg_src; - struct in6_addr rtmsg_gateway; - __u32 rtmsg_type; - __u16 rtmsg_dst_len; - __u16 rtmsg_src_len; - __u32 rtmsg_metric; - unsigned long rtmsg_info; - __u32 rtmsg_flags; - int rtmsg_ifindex; +enum scmi_reset_protocol_cmd { + RESET_DOMAIN_ATTRIBUTES = 3, + RESET = 4, + RESET_NOTIFY = 5, + RESET_DOMAIN_NAME_GET = 6, }; -struct unix_domain { - struct auth_domain h; -}; +struct reset_dom_info; -struct unix_gid { - struct cache_head h; - kuid_t uid; - struct group_info *gi; - struct callback_head rcu; +struct scmi_reset_info { + u32 version; + int num_domains; + struct reset_dom_info *dom_info; }; -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; - long: 32; +struct reset_dom_info { + bool async_reset; + bool reset_notify; + u32 latency_us; + char name[64]; }; -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, +struct scmi_msg_resp_reset_domain_attributes { + __le32 attributes; + __le32 latency; + u8 name[16]; }; -struct omap_dma_reg; - -struct omap_dma_dev_attr; - -struct omap_system_dma_plat_info { - const struct omap_dma_reg *reg_map; - unsigned int channel_stride; - struct omap_dma_dev_attr *dma_attr; - u32 errata; - void (*show_dma_caps)(); - void (*clear_lch_regs)(int); - void (*clear_dma)(int); - void (*dma_write)(u32, int, int); - u32 (*dma_read)(int, int); - const struct dma_slave_map *slave_map; - int slavecnt; +struct scmi_msg_reset_domain_reset { + __le32 domain_id; + __le32 flags; + __le32 reset_state; }; -struct omap_dma_reg { - u16 offset; - u8 stride; - u8 type; +struct scmi_msg_reset_notify { + __le32 id; + __le32 event_control; }; -struct omap_dma_dev_attr { - u32 dev_caps; - u16 lch_count; - u16 chan_count; +struct scmi_reset_issued_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 reset_state; }; -struct omap_dss_dispc_dev_attr { - u8 manager_count; - bool has_framedonetv_irq; +struct scmi_reset_issued_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int reset_state; + long: 32; }; -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 efivar_operations; -struct alarm_base { - spinlock_t lock; - struct timerqueue_head timerqueue; - ktime_t (*get_ktime)(); - void (*get_timespec)(struct timespec64 *); - clockid_t base_clockid; +struct efivars { + struct kset *kset; + const struct efivar_operations *ops; }; -struct trace_event_raw_alarmtimer_suspend { - struct trace_entry ent; - s64 expires; - unsigned char alarm_type; - char __data[0]; - long: 32; -}; +typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *); -struct trace_event_raw_alarm_class { - struct trace_entry ent; - void *alarm; - unsigned char alarm_type; - s64 expires; - s64 now; - char __data[0]; -}; +typedef efi_status_t efi_get_next_variable_t(unsigned long *, efi_char16_t *, efi_guid_t *); -struct trace_event_data_offsets_alarmtimer_suspend {}; +typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *); -struct trace_event_data_offsets_alarm_class {}; +typedef efi_status_t efi_query_variable_store_t(u32, unsigned long, bool); -struct syscall_trace_enter { - struct trace_entry ent; - int nr; - unsigned long args[0]; -}; +typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *); -struct syscall_trace_exit { - struct trace_entry ent; - int nr; - long ret; +struct efivar_operations { + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_store_t *query_variable_store; + efi_query_variable_info_t *query_variable_info; }; -struct syscall_tp_t { - unsigned long long regs; - unsigned long syscall_nr; - unsigned long args[6]; - long: 32; +enum sh_tmu_model { + SH_TMU = 0, + SH_TMU_SH3 = 1, }; -struct syscall_tp_t___2 { - unsigned long long regs; - unsigned long syscall_nr; - unsigned long ret; -}; +struct sh_tmu_device; -struct bpf_bloom_filter { - struct bpf_map map; - u32 bitset_mask; - u32 hash_seed; - u32 nr_hash_funcs; - unsigned long bitset[0]; +struct sh_tmu_channel { + struct sh_tmu_device *tmu; + unsigned int index; + void *base; + int irq; + unsigned long periodic; + long: 32; long: 32; long: 32; long: 32; @@ -111056,4325 +114692,3688 @@ struct bpf_bloom_filter { long: 32; long: 32; long: 32; + struct clock_event_device ced; + struct clocksource cs; + bool cs_enabled; + unsigned int enable_count; + long: 32; long: 32; long: 32; long: 32; }; -struct reuseport_array { - struct bpf_map map; - struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0]; +struct sh_tmu_device { + struct platform_device *pdev; + void *mapbase; + struct clk *clk; + unsigned long rate; + enum sh_tmu_model model; + raw_spinlock_t lock; + struct sh_tmu_channel *channels; + unsigned int num_channels; + bool has_clockevent; + bool has_clocksource; }; -struct files_stat_struct { - unsigned long nr_files; - unsigned long nr_free_files; - unsigned long max_files; +struct sh_timer_config { + unsigned int channels_mask; }; -struct backing_file { - struct file file; - struct path real_path; +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 fd_data { - fmode_t mode; - unsigned int fd; +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 kernfs_global_locks { - struct mutex open_file_mutex[256]; +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 kernfs_super_info { - struct super_block *sb; - struct kernfs_root *root; - const void *ns; - struct list_head node; +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; }; -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_io_submit { - struct writeback_control *io_wbc; - struct bio *io_bio; - ext4_io_end_t *io_end; - long: 32; - sector_t io_next_block; +struct driver_attribute { + struct attribute attr; + ssize_t (*show)(struct device_driver *, char *); + ssize_t (*store)(struct device_driver *, const char *, size_t); }; -struct mpage_da_data { - struct inode *inode; - struct writeback_control *wbc; - unsigned int can_map: 1; - unsigned long first_page; - unsigned long next_page; - unsigned long last_page; - struct ext4_map_blocks map; - struct ext4_io_submit io_submit; - unsigned int do_map: 1; - unsigned int scanned_until_end: 1; - unsigned int journalled_more_data: 1; - long: 32; +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, }; -enum nfs_ftype { - NFNON = 0, - NFREG = 1, - NFDIR = 2, - NFBLK = 3, - NFCHR = 4, - NFLNK = 5, - NFSOCK = 6, - NFBAD = 7, - NFFIFO = 8, +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; }; -enum nfs2_ftype { - NF2NON = 0, - NF2REG = 1, - NF2DIR = 2, - NF2BLK = 3, - NF2CHR = 4, - NF2LNK = 5, - NF2SOCK = 6, - NF2BAD = 7, - NF2FIFO = 8, +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 nfs_diropok { - struct nfs_fh *fh; - struct nfs_fattr *fattr; +struct hid_dynid { + struct list_head list; + struct hid_device_id id; }; -struct nfs_readdirargs { - struct nfs_fh *fh; - __u32 cookie; - unsigned int count; - struct page **pages; +struct bcm2835_mbox { + void *regs; + spinlock_t lock; + struct mbox_controller controller; }; -struct nfs2_fsstat { - __u32 tsize; - __u32 bsize; - __u32 blocks; - __u32 bfree; - __u32 bavail; +struct pl353_smc_data { + struct clk *memclk; + struct clk *aclk; }; -struct nfs_sattrargs { - struct nfs_fh *fh; - struct iattr *sattr; +struct otpc_map { + u32 otpc_row_size; + u16 data_r_offset[4]; + u16 data_w_offset[4]; }; -struct nfs_diropargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; +struct otpc_priv { + struct device *dev; + void *base; + const struct otpc_map *map; + struct nvmem_config *config; }; -struct nfs_readlinkargs { - struct nfs_fh *fh; - unsigned int pgbase; - unsigned int pglen; - struct page **pages; +struct optee_shm_arg_entry { + struct list_head list_node; + struct tee_shm *shm; + unsigned long map[1]; }; -struct nfs_createargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; - struct iattr *sattr; +struct optee_call_waiter { + struct list_head list_node; + struct completion c; }; -struct nfs_linkargs { - struct nfs_fh *fromfh; - struct nfs_fh *tofh; - const char *toname; - unsigned int tolen; +struct tls_strparser { + struct sock *sk; + u32 mark: 8; + u32 stopped: 1; + u32 copy_mode: 1; + u32 mixed_decrypted: 1; + u32 msg_ready: 1; + struct strp_msg stm; + struct sk_buff *anchor; + struct work_struct work; }; -struct nfs_symlinkargs { - struct nfs_fh *fromfh; - const char *fromname; - unsigned int fromlen; - struct page **pages; - unsigned int pathlen; - struct iattr *sattr; +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 nfs4_ff_layout_ds_err { - struct list_head list; - u64 offset; - u64 length; - int status; - enum nfs_opnum4 opnum; - nfs4_stateid stateid; - struct nfs4_deviceid deviceid; - long: 32; +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 nfs4_ff_ds_version; +struct eee_reply_data { + struct ethnl_reply_data base; + struct ethtool_eee eee; +}; -struct nfs4_ff_layout_ds { - struct nfs4_deviceid_node id_node; - u32 ds_versions_cnt; - struct nfs4_ff_ds_version *ds_versions; - struct nfs4_pnfs_ds *ds; +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, }; -struct nfs4_ff_ds_version { - u32 version; - u32 minor_version; - u32 rsize; - u32 wsize; - bool tightly_coupled; +enum tcp_ca_ack_event_flags { + CA_ACK_SLOWPATH = 1, + CA_ACK_WIN_UPDATE = 2, + CA_ACK_ECE = 4, }; -struct nfs4_flexfile_layout { - struct pnfs_layout_hdr generic_hdr; - struct pnfs_ds_commit_info commit_info; - struct list_head mirrors; - struct list_head error_list; - long: 32; - ktime_t last_report_time; +enum tcp_queue { + TCP_FRAG_IN_WRITE_QUEUE = 0, + TCP_FRAG_IN_RTX_QUEUE = 1, }; -struct nfs4_ff_layout_mirror; +enum { + SCM_TSTAMP_SND = 0, + SCM_TSTAMP_SCHED = 1, + SCM_TSTAMP_ACK = 2, +}; -struct nfs4_ff_layout_segment { - struct pnfs_layout_segment generic_hdr; - u64 stripe_unit; - u32 flags; - u32 mirror_array_cnt; - struct nfs4_ff_layout_mirror *mirror_array[0]; +enum tcp_fastopen_client_fail { + TFO_STATUS_UNSPEC = 0, + TFO_COOKIE_UNAVAILABLE = 1, + TFO_DATA_NOT_ACKED = 2, + TFO_SYN_RETRANSMITTED = 3, }; -struct nfs4_ff_io_stat { - __u64 ops_requested; - __u64 bytes_requested; - __u64 ops_completed; - __u64 bytes_completed; - __u64 bytes_not_delivered; - ktime_t total_busy_time; - ktime_t aggregate_completion_time; +struct tcp_sack_block_wire { + __be32 start_seq; + __be32 end_seq; }; -struct nfs4_ff_busy_timer { - ktime_t start_time; - atomic_t n_ops; +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; long: 32; }; -struct nfs4_ff_layoutstat { - struct nfs4_ff_io_stat io_stat; - struct nfs4_ff_busy_timer busy_timer; +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, }; -struct nfs4_ff_layout_mirror { - struct pnfs_layout_hdr *layout; - struct list_head mirrors; - u32 ds_count; - u32 efficiency; - struct nfs4_deviceid devid; - struct nfs4_ff_layout_ds *mirror_ds; - u32 fh_versions_cnt; - struct nfs_fh *fh_versions; - nfs4_stateid stateid; - const struct cred __attribute__((btf_type_tag("rcu"))) *ro_cred; - const struct cred __attribute__((btf_type_tag("rcu"))) *rw_cred; - refcount_t ref; - spinlock_t lock; - unsigned long flags; - struct nfs4_ff_layoutstat read_stat; - struct nfs4_ff_layoutstat write_stat; - ktime_t start_time; - u32 report_interval; - long: 32; +struct tcp_info { + __u8 tcpi_state; + __u8 tcpi_ca_state; + __u8 tcpi_retransmits; + __u8 tcpi_probes; + __u8 tcpi_backoff; + __u8 tcpi_options; + __u8 tcpi_snd_wscale: 4; + __u8 tcpi_rcv_wscale: 4; + __u8 tcpi_delivery_rate_app_limited: 1; + __u8 tcpi_fastopen_client_fail: 2; + __u32 tcpi_rto; + __u32 tcpi_ato; + __u32 tcpi_snd_mss; + __u32 tcpi_rcv_mss; + __u32 tcpi_unacked; + __u32 tcpi_sacked; + __u32 tcpi_lost; + __u32 tcpi_retrans; + __u32 tcpi_fackets; + __u32 tcpi_last_data_sent; + __u32 tcpi_last_ack_sent; + __u32 tcpi_last_data_recv; + __u32 tcpi_last_ack_recv; + __u32 tcpi_pmtu; + __u32 tcpi_rcv_ssthresh; + __u32 tcpi_rtt; + __u32 tcpi_rttvar; + __u32 tcpi_snd_ssthresh; + __u32 tcpi_snd_cwnd; + __u32 tcpi_advmss; + __u32 tcpi_reordering; + __u32 tcpi_rcv_rtt; + __u32 tcpi_rcv_space; + __u32 tcpi_total_retrans; + __u64 tcpi_pacing_rate; + __u64 tcpi_max_pacing_rate; + __u64 tcpi_bytes_acked; + __u64 tcpi_bytes_received; + __u32 tcpi_segs_out; + __u32 tcpi_segs_in; + __u32 tcpi_notsent_bytes; + __u32 tcpi_min_rtt; + __u32 tcpi_data_segs_in; + __u32 tcpi_data_segs_out; + __u64 tcpi_delivery_rate; + __u64 tcpi_busy_time; + __u64 tcpi_rwnd_limited; + __u64 tcpi_sndbuf_limited; + __u32 tcpi_delivered; + __u32 tcpi_delivered_ce; + __u64 tcpi_bytes_sent; + __u64 tcpi_bytes_retrans; + __u32 tcpi_dsack_dups; + __u32 tcpi_reord_seen; + __u32 tcpi_rcv_ooopack; + __u32 tcpi_snd_wnd; + __u32 tcpi_rcv_wnd; + __u32 tcpi_rehash; + __u16 tcpi_total_rto; + __u16 tcpi_total_rto_recoveries; + __u32 tcpi_total_rto_time; }; -typedef struct { - NTFS_RECORD_TYPE magic; - le16 usa_ofs; - le16 usa_count; -} NTFS_RECORD; +struct scm_cookie { + struct pid *pid; + struct scm_fp_list *fp; + struct scm_creds creds; +}; -enum { - FILE_MFT = 0, - FILE_MFTMirr = 1, - FILE_LogFile = 2, - FILE_Volume = 3, - FILE_AttrDef = 4, - FILE_root = 5, - FILE_Bitmap = 6, - FILE_Boot = 7, - FILE_BadClus = 8, - FILE_Secure = 9, - FILE_UpCase = 10, - FILE_Extend = 11, - FILE_reserved12 = 12, - FILE_reserved13 = 13, - FILE_reserved14 = 14, - FILE_reserved15 = 15, - FILE_first_user = 16, +struct udp_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + __u16 cscov; + __u8 partial_cov; }; -enum { - FILE_NAME_POSIX = 0, - FILE_NAME_WIN32 = 1, - FILE_NAME_DOS = 2, - FILE_NAME_WIN32_AND_DOS = 3, -} __attribute__((mode(byte))); +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, +}; -typedef struct { - MFT_REF mref; - FILE_NAME_TYPE_FLAGS type; - u8 len; - ntfschar name[0]; -} __attribute__((packed)) ntfs_name; +struct devlink_linecard_ops; -typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *); +struct devlink_linecard_type; -typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *); +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; + u32 rel_index; +}; -typedef void (*btf_trace_block_rq_requeue)(void *, struct request *); +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 **); +}; -typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int); +struct devlink_linecard_type { + const char *type; + const void *priv; +}; -typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int); +enum { + CACHE_VALID = 0, + CACHE_NEGATIVE = 1, + CACHE_PENDING = 2, + CACHE_CLEANED = 3, +}; -typedef void (*btf_trace_block_rq_insert)(void *, struct request *); +struct cache_queue { + struct list_head list; + int reader; +}; -typedef void (*btf_trace_block_rq_issue)(void *, struct request *); +struct cache_request { + struct cache_queue q; + struct cache_head *item; + char *buf; + int len; + int readers; +}; -typedef void (*btf_trace_block_rq_merge)(void *, struct request *); +struct thread_deferred_req { + struct cache_deferred_req handle; + struct completion completion; +}; -typedef void (*btf_trace_block_io_start)(void *, struct request *); +struct cache_reader { + struct cache_queue q; + int offset; +}; -typedef void (*btf_trace_block_io_done)(void *, struct request *); +enum hp_flags_bits { + HANDSHAKE_F_PROTO_NOTIFY = 0, +}; -typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *); +enum { + HANDSHAKE_CMD_READY = 1, + HANDSHAKE_CMD_ACCEPT = 2, + HANDSHAKE_CMD_DONE = 3, + __HANDSHAKE_CMD_MAX = 4, + HANDSHAKE_CMD_MAX = 3, +}; -typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); +struct op { + u32 (* const fn)(int, int, int, u32); + u32 flags; +}; -typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); +struct vfp_single { + s16 exponent; + u16 sign; + u32 significand; +}; -typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *); +struct vfp_double { + s16 exponent; + u16 sign; + long: 32; + u64 significand; +}; -typedef void (*btf_trace_block_bio_queue)(void *, struct bio *); +struct page_change_data { + pgprot_t set_mask; + pgprot_t clear_mask; +}; -typedef void (*btf_trace_block_getrq)(void *, struct bio *); +typedef int (*pte_fn_t)(pte_t *, unsigned long, void *); -typedef void (*btf_trace_block_plug)(void *, struct request_queue *); +struct outer_cache_fns { + void (*inv_range)(unsigned long, unsigned long); + void (*clean_range)(unsigned long, unsigned long); + void (*flush_range)(unsigned long, unsigned long); + void (*flush_all)(); + void (*disable)(); + void (*sync)(); + void (*resume)(); + void (*write_sec)(unsigned long, unsigned int); + void (*configure)(const struct l2x0_regs *); +}; -typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); +struct l2c_init_data { + const char *type; + unsigned int way_size_0; + unsigned int num_lock; + void (*of_parse)(const struct device_node *, u32 *, u32 *); + void (*enable)(void *, unsigned int); + void (*fixup)(void *, u32, struct outer_cache_fns *); + void (*save)(void *); + void (*configure)(void *); + void (*unlock)(void *, unsigned int); + struct outer_cache_fns outer_cache; +}; -typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int); +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, +}; -typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t); +struct pci_p2pdma_map_state { + struct dev_pagemap *pgmap; + int map; + u64 bus_off; +}; -typedef void (*btf_trace_block_rq_remap)(void *, struct request *, dev_t, sector_t); +typedef bool (*stack_trace_consume_fn)(void *, unsigned long); -enum { - PERCPU_REF_INIT_ATOMIC = 1, - PERCPU_REF_INIT_DEAD = 2, - PERCPU_REF_ALLOW_REINIT = 4, +struct stacktrace_cookie { + unsigned long *store; + unsigned int size; + unsigned int skip; + unsigned int len; }; -struct blk_plug_cb; +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, +}; -typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool); +struct bpf_lru_list { + struct list_head lists[3]; + unsigned int counts[2]; + struct list_head *next_inactive_rotation; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + raw_spinlock_t lock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; -struct blk_plug_cb { +struct bpf_lru_locallist { + struct list_head lists[2]; + u16 next_steal; + raw_spinlock_t lock; +}; + +struct bpf_lru_node { struct list_head list; - blk_plug_cb_fn callback; - void *data; + u16 cpu; + u8 type; + u8 ref; }; -struct trace_event_raw_block_buffer { - struct trace_entry ent; - dev_t dev; +struct bpf_common_lru { + struct bpf_lru_list lru_list; + struct bpf_lru_locallist __attribute__((btf_type_tag("percpu"))) *local_list; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; - sector_t sector; - size_t size; - char __data[0]; long: 32; -}; - -struct trace_event_raw_block_rq_requeue { - struct trace_entry ent; - dev_t dev; long: 32; - 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; +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: 32; + long: 32; + long: 32; + long: 32; long: 32; - sector_t sector; - unsigned int nr_sector; - int error; - char rwbs[8]; - u32 __data_loc_cmd; - char __data[0]; long: 32; -}; - -struct trace_event_raw_block_rq { - struct trace_entry ent; - dev_t dev; long: 32; - sector_t sector; - unsigned int nr_sector; - unsigned int bytes; - char rwbs[8]; - char comm[16]; - u32 __data_loc_cmd; - char __data[0]; long: 32; -}; - -struct trace_event_raw_block_bio_complete { - struct trace_entry ent; - dev_t dev; long: 32; - 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; long: 32; - sector_t sector; - unsigned int nr_sector; - char rwbs[8]; - char comm[16]; - char __data[0]; long: 32; }; -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 lpm_trie_node; -struct trace_event_raw_block_split { - struct trace_entry ent; - dev_t dev; +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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; - 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; - long: 32; - sector_t sector; - unsigned int nr_sector; - dev_t old_dev; - sector_t old_sector; - char rwbs[8]; - char __data[0]; +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 trace_event_raw_block_rq_remap { - struct trace_entry ent; - dev_t dev; - long: 32; - 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]; - long: 32; +struct bpf_lpm_trie_key { + __u32 prefixlen; + __u8 data[0]; }; -struct trace_event_data_offsets_block_buffer {}; +struct bpf_prog_offload_ops; -struct trace_event_data_offsets_block_rq_requeue { - u32 cmd; +struct bpf_offload_dev { + const struct bpf_prog_offload_ops *ops; + struct list_head netdevs; + void *priv; }; -struct trace_event_data_offsets_block_rq_completion { - u32 cmd; +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 *); }; -struct trace_event_data_offsets_block_rq { - u32 cmd; +enum xdp_rx_metadata { + XDP_METADATA_KFUNC_RX_TIMESTAMP = 0, + XDP_METADATA_KFUNC_RX_HASH = 1, + MAX_XDP_METADATA_KFUNC = 2, }; -struct trace_event_data_offsets_block_bio_complete {}; +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; +}; -struct trace_event_data_offsets_block_bio {}; +typedef struct ns_common *ns_get_path_helper_t(void *); -struct trace_event_data_offsets_block_plug {}; +struct bpf_prog_info; -struct trace_event_data_offsets_block_unplug {}; +struct ns_get_path_bpf_prog_args { + struct bpf_prog *prog; + struct bpf_prog_info *info; +}; -struct trace_event_data_offsets_block_split {}; +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; + long: 32; +}; -struct trace_event_data_offsets_block_bio_remap {}; +struct bpf_map_info; -struct trace_event_data_offsets_block_rq_remap {}; +struct ns_get_path_bpf_map_args { + struct bpf_offloaded_map *offmap; + struct bpf_map_info *info; +}; -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 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; + long: 32; + __u64 map_extra; }; -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]; +enum meminit_context { + MEMINIT_EARLY = 0, + MEMINIT_HOTPLUG = 1, }; -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; +enum mminit_level { + MMINIT_WARNING = 0, + MMINIT_VERIFY = 1, + MMINIT_TRACE = 2, }; -struct assoc_array_ops; +enum vmscan_throttle_state { + VMSCAN_THROTTLE_WRITEBACK = 0, + VMSCAN_THROTTLE_ISOLATED = 1, + VMSCAN_THROTTLE_NOPROGRESS = 2, + VMSCAN_THROTTLE_CONGESTED = 3, + NR_VMSCAN_THROTTLE = 4, +}; -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]; +enum pageblock_bits { + PB_migrate = 0, + PB_migrate_end = 2, + PB_migrate_skip = 3, + NR_PAGEBLOCK_BITS = 4, }; -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 swap_extent { + struct rb_node rb_node; + unsigned long start_page; + unsigned long nr_pages; + long: 32; + sector_t start_block; }; -struct assoc_array_walk_result { +typedef int rmap_t; + +union swap_header { struct { - struct assoc_array_node *node; - int level; - int slot; - } terminal_node; + char reserved[4086]; + char magic[10]; + } magic; 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; + 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; }; -typedef enum { - trustInput = 0, - checkMaxSymbolValue = 1, -} HIST_checkInput_e; +typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int); -typedef enum { - search_hashChain = 0, - search_binaryTree = 1, - search_rowHash = 2, -} searchMethod_e; +typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int); -typedef U64 ZSTD_VecMask; +typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64); -struct exynos_irq_chip { - struct irq_chip chip; - u32 eint_con; - u32 eint_mask; - u32 eint_pend; - u32 *eint_wake_mask_value; - u32 eint_wake_mask_reg; - void (*set_eint_wakeup_mask)(struct samsung_pinctrl_drv_data *, struct exynos_irq_chip *); -}; +typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64); -enum pincfg_type { - PINCFG_TYPE_FUNC = 0, - PINCFG_TYPE_DAT = 1, - PINCFG_TYPE_PUD = 2, - PINCFG_TYPE_DRV = 3, - PINCFG_TYPE_CON_PDN = 4, - PINCFG_TYPE_PUD_PDN = 5, - PINCFG_TYPE_NUM = 6, -}; +typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64); -struct exynos_eint_gpio_save { - u32 eint_con; - u32 eint_fltcon0; - u32 eint_fltcon1; - u32 eint_mask; -}; +typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); -struct exynos_muxed_weint_data { - unsigned int nr_banks; - struct samsung_pin_bank *banks[0]; -}; +typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64); -struct exynos_weint_data { - unsigned int irq; - struct samsung_pin_bank *bank; -}; +typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *); -enum gpio_v2_line_flag { - GPIO_V2_LINE_FLAG_USED = 1, - GPIO_V2_LINE_FLAG_ACTIVE_LOW = 2, - GPIO_V2_LINE_FLAG_INPUT = 4, - GPIO_V2_LINE_FLAG_OUTPUT = 8, - GPIO_V2_LINE_FLAG_EDGE_RISING = 16, - GPIO_V2_LINE_FLAG_EDGE_FALLING = 32, - GPIO_V2_LINE_FLAG_OPEN_DRAIN = 64, - GPIO_V2_LINE_FLAG_OPEN_SOURCE = 128, - GPIO_V2_LINE_FLAG_BIAS_PULL_UP = 256, - GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN = 512, - GPIO_V2_LINE_FLAG_BIAS_DISABLED = 1024, - GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME = 2048, - GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE = 4096, -}; +typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *); -enum gpio_v2_line_changed_type { - GPIO_V2_LINE_CHANGED_REQUESTED = 1, - GPIO_V2_LINE_CHANGED_RELEASED = 2, - GPIO_V2_LINE_CHANGED_CONFIG = 3, -}; +typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, struct iomap *); -enum gpio_v2_line_attr_id { - GPIO_V2_LINE_ATTR_ID_FLAGS = 1, - GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 2, - GPIO_V2_LINE_ATTR_ID_DEBOUNCE = 3, -}; +typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long); -enum gpio_v2_line_event_id { - GPIO_V2_LINE_EVENT_RISING_EDGE = 1, - GPIO_V2_LINE_EVENT_FALLING_EDGE = 2, -}; +typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t); -struct linereq; +typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t); -struct line { - struct gpio_desc *desc; - struct linereq *req; - unsigned int irq; +struct trace_event_raw_iomap_readpage_class { + struct trace_entry ent; + dev_t dev; long: 32; - u64 edflags; - u64 timestamp_ns; - u32 req_seqno; - u32 line_seqno; - struct delayed_work work; - unsigned int sw_debounced; - unsigned int level; + u64 ino; + int nr_pages; + char __data[0]; long: 32; }; -struct gpio_v2_line_event { - __u64 timestamp_ns; - __u32 id; - __u32 offset; - __u32 seqno; - __u32 line_seqno; - __u32 padding[6]; +struct trace_event_raw_iomap_range_class { + struct trace_entry ent; + dev_t dev; + long: 32; + u64 ino; + loff_t size; + loff_t offset; + u64 length; + char __data[0]; }; -struct linereq { - struct gpio_device *gdev; - const char *label; - u32 num_lines; - wait_queue_head_t wait; - u32 event_buffer_size; +struct trace_event_raw_iomap_class { + struct trace_entry ent; + dev_t dev; long: 32; - struct { - union { - struct __kfifo kfifo; - struct gpio_v2_line_event *type; - const struct gpio_v2_line_event *const_type; - char (*rectype)[0]; - struct gpio_v2_line_event *ptr; - const struct gpio_v2_line_event *ptr_const; - }; - long: 32; - struct gpio_v2_line_event buf[0]; - } events; - atomic_t seqno; - struct mutex config_mutex; - struct line lines[0]; + u64 ino; + u64 addr; + loff_t offset; + u64 length; + u16 type; + u16 flags; + dev_t bdev; + char __data[0]; }; -struct gpio_v2_line_attribute { - __u32 id; - __u32 padding; - union { - __u64 flags; - __u64 values; - __u32 debounce_period_us; - }; +struct trace_event_raw_iomap_iter { + struct trace_entry ent; + dev_t dev; + long: 32; + u64 ino; + loff_t pos; + u64 length; + unsigned int flags; + const void *ops; + unsigned long caller; + char __data[0]; + long: 32; }; -struct gpio_v2_line_info { - char name[32]; - char consumer[32]; - __u32 offset; - __u32 num_attrs; - __u64 flags; - struct gpio_v2_line_attribute attrs[10]; - __u32 padding[4]; +struct trace_event_raw_iomap_dio_rw_begin { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + size_t count; + size_t done_before; + int ki_flags; + unsigned int dio_flags; + bool aio; + char __data[0]; + long: 32; }; -struct gpio_v2_line_info_changed { - struct gpio_v2_line_info info; - __u64 timestamp_ns; - __u32 event_type; - __u32 padding[5]; +struct trace_event_raw_iomap_dio_complete { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + int ki_flags; + bool aio; + int error; + ssize_t ret; + char __data[0]; }; -struct gpio_chardev_data { - struct gpio_device *gdev; - wait_queue_head_t wait; - struct { - union { - struct __kfifo kfifo; - struct gpio_v2_line_info_changed *type; - const struct gpio_v2_line_info_changed *const_type; - char (*rectype)[0]; - struct gpio_v2_line_info_changed *ptr; - const struct gpio_v2_line_info_changed *ptr_const; - }; - long: 32; - struct gpio_v2_line_info_changed buf[32]; - } events; - struct notifier_block lineinfo_changed_nb; - unsigned long *watched_lines; - atomic_t watch_abi_version; - long: 32; -}; +struct trace_event_data_offsets_iomap_readpage_class {}; -typedef ssize_t (*read_fn)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); +struct trace_event_data_offsets_iomap_range_class {}; -struct gpioline_info { - __u32 line_offset; - __u32 flags; - char name[32]; - char consumer[32]; -}; +struct trace_event_data_offsets_iomap_class {}; -struct gpioline_info_changed { - struct gpioline_info info; - __u64 timestamp; - __u32 event_type; - __u32 padding[5]; -}; +struct trace_event_data_offsets_iomap_iter {}; -typedef __poll_t (*poll_fn)(struct file *, struct poll_table_struct *); +struct trace_event_data_offsets_iomap_dio_rw_begin {}; -struct gpio_v2_line_config_attribute { - struct gpio_v2_line_attribute attr; - __u64 mask; -}; +struct trace_event_data_offsets_iomap_dio_complete {}; -struct gpio_v2_line_config { - __u64 flags; - __u32 num_attrs; - __u32 padding[5]; - struct gpio_v2_line_config_attribute attrs[10]; -}; +typedef struct { + __le32 *p; + __le32 key; + struct buffer_head *bh; +} Indirect; -struct gpio_v2_line_request { - __u32 offsets[64]; - char consumer[32]; - struct gpio_v2_line_config config; - __u32 num_lines; - __u32 event_buffer_size; - __u32 padding[5]; - __s32 fd; -}; +typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t); -struct gpiohandle_request { - __u32 lineoffsets[64]; - __u32 flags; - __u8 default_values[64]; - char consumer_label[32]; - __u32 lines; - int fd; -}; +typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *); -struct linehandle_state { - struct gpio_device *gdev; - const char *label; - struct gpio_desc *descs[64]; - u32 num_descs; -}; +typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int); -struct gpiochip_info { - char name[32]; - char label[32]; - __u32 lines; -}; +typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int); -struct gpioevent_request { - __u32 lineoffset; - __u32 handleflags; - __u32 eventflags; - char consumer_label[32]; - int fd; -}; +typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *); -struct gpioevent_data { - __u64 timestamp; - __u32 id; - long: 32; -}; +typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int); -struct lineevent_state { - struct gpio_device *gdev; - const char *label; - struct gpio_desc *desc; - u32 eflags; - int irq; - wait_queue_head_t wait; - struct { - union { - struct __kfifo kfifo; - struct gpioevent_data *type; - const struct gpioevent_data *const_type; - char (*rectype)[0]; - struct gpioevent_data *ptr; - const struct gpioevent_data *ptr_const; - }; - long: 32; - struct gpioevent_data buf[16]; - } events; - u64 timestamp; -}; +typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); -typedef long (*ioctl_fn)(struct file *, unsigned int, unsigned long); +typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, unsigned long); -struct gpiohandle_data { - __u8 values[64]; -}; +typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); -struct gpiohandle_config { - __u32 flags; - __u8 default_values[64]; - __u32 padding[4]; -}; +typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int); -struct gpio_v2_line_values { - __u64 bits; - __u64 mask; -}; +typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int); -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, -}; +typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); -struct pcie_port_service_driver; +typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); -struct portdrv_service_data { - struct pcie_port_service_driver *drv; - struct device *dev; - u32 service; -}; +typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); -struct pcie_device; +typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *); -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; -}; +typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, unsigned long, struct writeback_control *); -struct pcie_device { - int irq; - struct pci_dev *port; - u32 service; - void *priv_data; - struct device device; -}; +typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); -typedef int (*pcie_callback_t)(struct pcie_device *); +typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); -struct timing_entry { - u32 min; - u32 typ; - u32 max; -}; +typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *); -struct display_timing { - struct timing_entry pixelclock; - struct timing_entry hactive; - struct timing_entry hfront_porch; - struct timing_entry hback_porch; - struct timing_entry hsync_len; - struct timing_entry vactive; - struct timing_entry vfront_porch; - struct timing_entry vback_porch; - struct timing_entry vsync_len; - enum display_flags flags; -}; +typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *); -struct display_timings { - unsigned int num_timings; - unsigned int native_mode; - struct display_timing **timings; -}; +typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t); -struct scmi_clk { - u32 id; - struct clk_hw hw; - const struct scmi_clock_info *info; - const struct scmi_protocol_handle *ph; -}; +typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t); -struct clk_busy_divider { - struct clk_divider div; - const struct clk_ops *div_ops; - void *reg; - u8 shift; -}; +typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, unsigned long long, unsigned long long); -struct clk_busy_mux { - struct clk_mux mux; - const struct clk_ops *mux_ops; - void *reg; - u8 shift; -}; +typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); -struct clk_frac_pll { - struct clk_hw hw; - void *base; -}; +typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); -enum imx_pllv4_type { - IMX_PLLV4_IMX7ULP = 0, - IMX_PLLV4_IMX8ULP = 1, -}; +typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, unsigned long long, unsigned int); -enum clk_ids { - LAST_DT_CORE_CLK = 5, - CLK_EXTAL = 6, - CLK_MAIN = 7, - CLK_PLL = 8, - MOD_CLK_BASE = 9, -}; +typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *); -struct rockchip_clk_frac { - struct notifier_block clk_nb; - struct clk_fractional_divider div; - struct clk_gate gate; - struct clk_mux mux; - const struct clk_ops *mux_ops; - int mux_frac_idx; - bool rate_change_remuxed; - int rate_change_idx; -}; +typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int, unsigned int); -struct exynos_clkout_variant { - u32 mux_mask; -}; +typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int); -struct exynos_clkout { - struct clk_gate gate; - struct clk_mux mux; - spinlock_t slock; - void *reg; - struct device_node *np; - u32 pmu_debug_save; - struct clk_hw_onecell_data data; -}; +typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *); -struct component_clk; +typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, unsigned long long); -struct clk_hw_omap_comp { - struct clk_hw hw; - struct device_node *comp_nodes[3]; - struct component_clk *comp_clks[3]; -}; +typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, unsigned long, int); -struct component_clk { - int num_parents; - const char **parent_names; - struct device_node *node; - int type; - struct clk_hw *hw; - struct list_head link; -}; +typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int); -struct sun6i_dma_dev; +typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int); -struct sun6i_dma_config { - u32 nr_max_channels; - u32 nr_max_requests; - u32 nr_max_vchans; - void (*clock_autogate_enable)(struct sun6i_dma_dev *); - void (*set_burst_length)(u32 *, s8, s8); - void (*set_drq)(u32 *, s8, s8); - void (*set_mode)(u32 *, s8, s8); - u32 src_burst_lengths; - u32 dst_burst_lengths; - u32 src_addr_widths; - u32 dst_addr_widths; - bool has_high_addr; - bool has_mbus_clk; -}; +typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int); -struct sun6i_pchan; +typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *); -struct sun6i_vchan; +typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *); -struct sun6i_dma_dev { - struct dma_device slave; - void *base; - struct clk *clk; - struct clk *clk_mbus; - int irq; - spinlock_t lock; - struct reset_control *rstc; - struct tasklet_struct task; - atomic_t tasklet_shutdown; - struct list_head pending; - struct dma_pool *pool; - struct sun6i_pchan *pchans; - struct sun6i_vchan *vchans; - const struct sun6i_dma_config *cfg; - u32 num_pchans; - u32 num_vchans; - u32 max_request; -}; +typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *); -struct sun6i_desc; +typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -struct sun6i_pchan { - u32 idx; - void *base; - struct sun6i_vchan *vchan; - struct sun6i_desc *desc; - struct sun6i_desc *done; -}; +typedef void (*btf_trace_ext4_mballoc_free)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -struct sun6i_vchan { - struct virt_dma_chan vc; - struct list_head node; - struct dma_slave_config cfg; - struct sun6i_pchan *phy; - u8 port; - u8 irq_type; - bool cyclic; -}; +typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64); -struct sun6i_dma_lli; +typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); -struct sun6i_desc { - struct virt_dma_desc vd; - dma_addr_t p_lli; - struct sun6i_dma_lli *v_lli; -}; +typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *); -struct sun6i_dma_lli { - u32 cfg; - u32 src; - u32 dst; - u32 len; - u32 para; - u32 p_lli_next; - struct sun6i_dma_lli *v_lli_next; -}; +typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); -struct fsl_soc_data { - const char *sfp_compat; - u32 uid_offset; -}; +typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, unsigned long); -struct fsl_soc_die_attr { - char *die; - u32 svr; - u32 mask; -}; +typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, unsigned long); -struct ccsr_guts { - u32 porpllsr; - u32 porbmsr; - u32 porimpscr; - u32 pordevsr; - u32 pordbgmsr; - u32 pordevsr2; - u8 res018[8]; - u32 porcir; - u8 res024[12]; - u32 gpiocr; - u8 res034[12]; - u32 gpoutdr; - u8 res044[12]; - u32 gpindr; - u8 res054[12]; - u32 pmuxcr; - u32 pmuxcr2; - u32 dmuxcr; - u8 res06c[4]; - u32 devdisr; - u32 devdisr2; - u8 res078[4]; - u32 pmjcr; - u32 powmgtcsr; - u32 pmrccr; - u32 pmpdccr; - u32 pmcdr; - u32 mcpsumr; - u32 rstrscr; - u32 ectrstcr; - u32 autorstsr; - u32 pvr; - u32 svr; - u8 res0a8[8]; - u32 rstcr; - u8 res0b4[12]; - u32 iovselsr; - u8 res0c4[60]; - u32 rcwsr[16]; - u8 res140[228]; - u32 iodelay1; - u32 iodelay2; - u8 res22c[984]; - u32 pamubypenr; - u8 res608[504]; - u32 clkdvdr; - u8 res804[252]; - u32 ircr; - u8 res904[4]; - u32 dmacr; - u8 res90c[8]; - u32 elbccr; - u8 res918[520]; - u32 ddr1clkdr; - u32 ddr2clkdr; - u32 ddrclkdr; - u8 resb2c[724]; - u32 clkocr; - u8 rese04[12]; - u32 ddrdllcr; - u8 rese14[12]; - u32 lbcdllcr; - u32 cpfor; - u8 rese28[220]; - u32 srds1cr0; - u32 srds1cr1; - u8 resf0c[32]; - u32 itcr; - u8 resf30[16]; - u32 srds2cr0; - u32 srds2cr1; -}; +typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, unsigned long); -struct rcar_sysc_ch { - u16 chan_offs; - u8 chan_bit; - u8 isr_bit; -}; +typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, unsigned long, bool); -struct rcar_sysc_pd { - struct generic_pm_domain genpd; - struct rcar_sysc_ch ch; - unsigned int flags; - char name[0]; -}; +typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int); -struct rcar_pm_domains { - struct genpd_onecell_data onecell_data; - struct generic_pm_domain *domains[33]; -}; +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 *); -enum { - ACT8600 = 0, - ACT8865 = 1, - ACT8846 = 2, -}; +typedef void (*btf_trace_ext4_unlink_exit)(void *, struct dentry *, int); -enum { - ACT8865_ID_DCDC1 = 0, - ACT8865_ID_DCDC2 = 1, - ACT8865_ID_DCDC3 = 2, - ACT8865_ID_LDO1 = 3, - ACT8865_ID_LDO2 = 4, - ACT8865_ID_LDO3 = 5, - ACT8865_ID_LDO4 = 6, - ACT8865_REG_NUM = 7, -}; +typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *); -struct act8865_regulator_data { - int id; - const char *name; - struct regulator_init_data *init_data; - struct device_node *of_node; -}; +typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *); -struct act8865_platform_data { - int num_regulators; - struct act8865_regulator_data *regulators; -}; +typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *); -struct act8865 { - struct regmap *regmap; - int off_reg; - int off_mask; -}; +typedef void (*btf_trace_ext4_ext_convert_to_initialized_fastpath)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *, struct ext4_extent *); -struct cdns_platform_data { - u32 quirks; -}; +typedef void (*btf_trace_ext4_ext_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); -struct cdns_uart { - struct uart_port *port; - struct clk *uartclk; - struct clk *pclk; - struct uart_driver *cdns_uart_driver; - unsigned int baud; - struct notifier_block clk_rate_change_nb; - u32 quirks; - bool cts_override; -}; +typedef void (*btf_trace_ext4_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); -struct gart_device { - void *regs; - u32 *savedata; - unsigned long iovmm_base; - unsigned long iovmm_end; - spinlock_t pte_lock; - spinlock_t dom_lock; - unsigned int active_devices; - struct iommu_domain *active_domain; - struct iommu_device iommu; - struct device *dev; -}; +typedef void (*btf_trace_ext4_ext_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); -struct displayid_header { - u8 rev; - u8 bytes; - u8 prod_id; - u8 ext_count; -}; +typedef void (*btf_trace_ext4_ind_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); -struct drm_mode_map_dumb { - __u32 handle; - __u32 pad; - __u64 offset; -}; +typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t); -struct drm_mode_destroy_dumb { - __u32 handle; -}; +typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, unsigned long); -struct reg_entry { - unsigned long offset; - unsigned long value; -}; +typedef void (*btf_trace_ext4_journal_start_sb)(void *, struct super_block *, int, int, int, int, unsigned long); -struct tegra_rgb { - struct tegra_output output; - struct tegra_dc *dc; - struct clk *pll_d_out0; - struct clk *pll_d2_out0; - struct clk *clk_parent; - struct clk *clk; - long: 32; -}; +typedef void (*btf_trace_ext4_journal_start_inode)(void *, struct inode *, int, int, int, int, unsigned long); -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; -}; +typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, unsigned long); -struct software_node_ref_args { - const struct software_node *node; - unsigned int nargs; - u64 args[8]; -}; +typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -struct regmap_async_spi { - struct regmap_async core; - struct spi_message m; - struct spi_transfer t[2]; -}; +typedef void (*btf_trace_ext4_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -enum sys_off_mode { - SYS_OFF_MODE_POWER_OFF_PREPARE = 0, - SYS_OFF_MODE_POWER_OFF = 1, - SYS_OFF_MODE_RESTART_PREPARE = 2, - SYS_OFF_MODE_RESTART = 3, -}; +typedef void (*btf_trace_ext4_ext_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t); -struct sys_off_data { - int mode; - void *cb_data; - const char *cmd; -}; +typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int); -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, -}; +typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, unsigned short); -struct request_sense; +struct partial_cluster; -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; - }; -}; +typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); -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 partial_cluster { + ext4_fsblk_t pclu; + ext4_lblk_t lblk; + enum { + initial = 0, + tofree = 1, + nofree = 2, + } state; }; -struct scsi_ioctl_command { - unsigned int inlen; - unsigned int outlen; - unsigned char data[0]; -}; +typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *); -struct scsi_idlun { - __u32 dev_id; - __u32 host_unique_id; -}; +typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); -struct sg_io_hdr { - int interface_id; - int dxfer_direction; - unsigned char cmd_len; - unsigned char mx_sb_len; - unsigned short iovec_count; - unsigned int dxfer_len; - void __attribute__((btf_type_tag("user"))) *dxferp; - unsigned char __attribute__((btf_type_tag("user"))) *cmdp; - void __attribute__((btf_type_tag("user"))) *sbp; - unsigned int timeout; - unsigned int flags; - int pack_id; - void __attribute__((btf_type_tag("user"))) *usr_ptr; - unsigned char status; - unsigned char masked_status; - unsigned char msg_status; - unsigned char sb_len_wr; - unsigned short host_status; - unsigned short driver_status; - int resid; - unsigned int duration; - unsigned int info; -}; +typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int); -enum { - UBI_IO_FF = 1, - UBI_IO_FF_BITFLIPS = 2, - UBI_IO_BAD_HDR = 3, - UBI_IO_BAD_HDR_EBADMSG = 4, - UBI_IO_BITFLIPS = 5, -}; +typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16); -enum { - UBI_COMPAT_DELETE = 1, - UBI_COMPAT_RO = 2, - UBI_COMPAT_PRESERVE = 4, - UBI_COMPAT_REJECT = 5, -}; +typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *); -struct ubi_ainf_peb { - int ec; - int pnum; - int vol_id; - int lnum; - unsigned int scrub: 1; - unsigned int copy_flag: 1; - long: 32; - unsigned long long sqnum; - union { - struct rb_node rb; - struct list_head list; - } u; - long: 32; -}; +typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *); -struct ubi_ec_hdr; +typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t); -struct ubi_vid_io_buf; +typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t); -struct ubi_attach_info { - struct rb_root volumes; - struct list_head corr; - struct list_head free; - struct list_head erase; - struct list_head alien; - struct list_head fastmap; - int corr_peb_count; - int empty_peb_count; - int alien_peb_count; - int bad_peb_count; - int maybe_bad_peb_count; - int vols_found; - int highest_vol_id; - int is_empty; - int force_full_scan; - int min_ec; - int max_ec; - unsigned long long max_sqnum; - int mean_ec; - long: 32; - uint64_t ec_sum; - int ec_count; - struct kmem_cache *aeb_slab_cache; - struct ubi_ec_hdr *ech; - struct ubi_vid_io_buf *vidb; -}; +typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *); -struct ubi_ec_hdr { - __be32 magic; - __u8 version; - __u8 padding1[3]; - __be64 ec; - __be32 vid_hdr_offset; - __be32 data_offset; - __be32 image_seq; - __u8 padding2[32]; - __be32 hdr_crc; -}; +typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t); -struct ubi_vid_hdr; +typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int); -struct ubi_vid_io_buf { - struct ubi_vid_hdr *hdr; - void *buffer; -}; +typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int); -struct ubi_vid_hdr { - __be32 magic; - __u8 version; - __u8 vol_type; - __u8 copy_flag; - __u8 compat; - __be32 vol_id; - __be32 lnum; - __u8 padding1[4]; - __be32 data_size; - __be32 used_ebs; - __be32 data_pad; - __be32 data_crc; - __u8 padding2[4]; - __be64 sqnum; - __u8 padding3[12]; - __be32 hdr_crc; -}; +typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int); -struct ubi_ainf_volume { - int vol_id; - int highest_lnum; - int leb_count; - int vol_type; - int used_ebs; - int last_data_size; - int data_pad; - int compat; - struct rb_node rb; - struct rb_root root; -}; +typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int); -struct dwmac5_error_desc { - bool valid; - const char *desc; - const char *detailed_desc; -}; +typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); -struct dwmac5_error { - const struct dwmac5_error_desc *desc; -}; +typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t); -struct cpsw_stats { - char stat_string[32]; - int type; - int sizeof_stat; - int stat_offset; -}; +typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int); -struct cpts_event { - struct list_head list; - unsigned long tmo; - u32 high; - u32 low; - long: 32; - u64 timestamp; -}; +typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool); -struct cpsw_cpts; +typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64); -struct cpts { - struct device *dev; - struct cpsw_cpts *reg; - int tx_enable; - int rx_enable; - struct ptp_clock_info info; - struct ptp_clock *clock; - spinlock_t lock; - u32 cc_mult; - long: 32; - struct cyclecounter cc; - struct timecounter tc; - int phc_index; - struct clk *refclk; - struct list_head events; - struct list_head pool; - struct cpts_event pool_data[32]; - unsigned long ov_check_period; - struct sk_buff_head txq; - long: 32; - u64 cur_timestamp; - u32 mult_new; - struct mutex ptp_clk_mutex; - bool irq_poll; - struct completion ts_push_complete; - u32 hw_ts_enable; -}; +typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); -struct cpsw_cpts { - u32 idver; - u32 control; - u32 rftclk_sel; - u32 ts_push; - u32 ts_load_val; - u32 ts_load_en; - u32 res2[2]; - u32 intstat_raw; - u32 intstat_masked; - u32 int_enable; - u32 res3; - u32 event_pop; - u32 event_low; - u32 event_high; -}; +typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64); -struct dwc3_exynos_driverdata { - const char *clk_names[4]; - int num_clks; - int suspend_clk_idx; -}; +struct ext4_fsmap; -struct dwc3_exynos { - struct device *dev; - const char **clk_names; - struct clk *clks[4]; - int num_clks; - int suspend_clk_idx; - struct regulator *vdd33; - struct regulator *vdd10; -}; +typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *); -struct st_ehci_platform_priv { - struct clk *clks[3]; - struct clk *clk48; - struct reset_control *rst; - struct reset_control *pwr; - struct phy *phy; +struct ext4_fsmap { + struct list_head fmr_list; + dev_t fmr_device; + uint32_t fmr_flags; + uint64_t fmr_physical; + uint64_t fmr_owner; + uint64_t fmr_length; }; -typedef void (*btf_trace_ci_log)(void *, struct ci_hdrc *, struct va_format *); +typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); -struct ci_hw_req; +typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *); -typedef void (*btf_trace_ci_prepare_td)(void *, struct ci_hw_ep *, struct ci_hw_req *, struct td_node *); +typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, unsigned long); -struct ci_hw_req { - struct usb_request req; - struct list_head queue; - struct list_head tds; -}; +typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); -typedef void (*btf_trace_ci_complete_td)(void *, struct ci_hw_ep *, struct ci_hw_req *, struct td_node *); +typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); -struct trace_event_raw_ci_log { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_msg; - char __data[0]; -}; +typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t); -struct trace_event_raw_ci_log_trb { - struct trace_entry ent; - u32 __data_loc_name; - struct td_node *td; - struct usb_request *req; - dma_addr_t dma; - s32 td_remaining_size; - u32 next; - u32 token; - u32 type; - char __data[0]; -}; +typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); -struct trace_event_data_offsets_ci_log { - u32 name; - u32 msg; -}; +typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int); -struct trace_event_data_offsets_ci_log_trb { - u32 name; -}; +typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *, tid_t); -struct st_keyscan { - void *base; - int irq; - struct clk *clk; - struct input_dev *input_dev; - unsigned long last_state; - unsigned int n_rows; - unsigned int n_cols; - unsigned int debounce_us; -}; +typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int, tid_t); -struct palmas_rtc { - struct rtc_device *rtc; - struct device *dev; - unsigned int irq; -}; +typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *); -struct riic_irq_desc { - int res_num; - irq_handler_t isr; - char *name; -}; +typedef void (*btf_trace_ext4_fc_track_create)(void *, handle_t *, struct inode *, struct dentry *, int); -struct riic_dev { - void *base; - u8 *buf; - struct i2c_msg *msg; - int bytes_left; - int err; - int is_last; - struct completion msg_done; - struct i2c_adapter adapter; - struct clk *clk; - long: 32; -}; +typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int); -struct ctrl_regs; +typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int); -struct alarm_regs; +typedef void (*btf_trace_ext4_fc_track_inode)(void *, handle_t *, struct inode *, int); -struct fiper_regs; +typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long, long, int); -struct etts_regs; +typedef void (*btf_trace_ext4_fc_cleanup)(void *, journal_t *, int, tid_t); -struct ptp_qoriq_registers { - struct ctrl_regs *ctrl_regs; - struct alarm_regs *alarm_regs; - struct fiper_regs *fiper_regs; - struct etts_regs *etts_regs; -}; +typedef void (*btf_trace_ext4_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int); -struct ptp_qoriq { - void *base; - struct ptp_qoriq_registers regs; - spinlock_t lock; - struct ptp_clock *clock; - struct ptp_clock_info caps; - struct resource *rsrc; - struct dentry *debugfs_root; - struct device *dev; - bool extts_fifo_support; - bool fiper3_support; - bool etsec; - int irq; - int phc_index; - u32 tclk_period; - u32 tmr_prsc; - u32 tmr_add; - u32 cksel; - u32 tmr_fiper1; - u32 tmr_fiper2; - u32 tmr_fiper3; - u32 (*read)(unsigned int *); - void (*write)(unsigned int *, u32); +struct ext4_lazy_init { + unsigned long li_state; + struct list_head li_request_list; + struct mutex li_list_mtx; }; -struct ctrl_regs { - u32 tmr_ctrl; - u32 tmr_tevent; - u32 tmr_temask; - u32 tmr_pevent; - u32 tmr_pemask; - u32 tmr_stat; - u32 tmr_cnt_h; - u32 tmr_cnt_l; - u32 tmr_add; - u32 tmr_acc; - u32 tmr_prsc; - u8 res1[4]; - u32 tmroff_h; - u32 tmroff_l; +struct ext4_err_translation { + int code; + int errno; }; -struct alarm_regs { - u32 tmr_alarm1_h; - u32 tmr_alarm1_l; - u32 tmr_alarm2_h; - u32 tmr_alarm2_l; +struct mount_opts { + int token; + int mount_opt; + int flags; }; -struct fiper_regs { - u32 tmr_fiper1; - u32 tmr_fiper2; - u32 tmr_fiper3; +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___2 = 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___2 = 32, + Opt_noquota = 33, + Opt_barrier = 34, + Opt_nobarrier = 35, + Opt_err___5 = 36, + Opt_usrquota___2 = 37, + Opt_grpquota___2 = 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, }; -struct etts_regs { - u32 tmr_etts1_h; - u32 tmr_etts1_l; - u32 tmr_etts2_h; - u32 tmr_etts2_l; +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 st_thermal_sensor_ops; - -struct st_thermal_compat_data { - char *sys_compat; - const struct reg_field *reg_fields; - const struct st_thermal_sensor_ops *ops; - unsigned int calibration_val; - int temp_adjust_val; - int crit_temp; +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]; + long: 32; }; -enum st_thermal_power_state { - POWER_OFF = 0, - POWER_ON = 1, +struct trace_event_raw_ext4_request_inode { + struct trace_entry ent; + dev_t dev; + ino_t dir; + __u16 mode; + char __data[0]; }; -struct st_thermal_sensor; - -struct st_thermal_sensor_ops { - int (*power_ctrl)(struct st_thermal_sensor *, enum st_thermal_power_state); - int (*alloc_regfields)(struct st_thermal_sensor *); - int (*regmap_init)(struct st_thermal_sensor *); - int (*register_enable_irq)(struct st_thermal_sensor *); - int (*enable_irq)(struct st_thermal_sensor *); +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 st_thermal_sensor { - struct device *dev; - struct thermal_zone_device *thermal_dev; - const struct st_thermal_sensor_ops *ops; - const struct st_thermal_compat_data *cdata; - struct clk *clk; - struct regmap *regmap; - struct regmap_field *pwr; - struct regmap_field *dcorrect; - struct regmap_field *overflow; - struct regmap_field *temp_data; - struct regmap_field *int_thresh_hi; - struct regmap_field *int_enable; - int irq; - void *mmio_base; +struct trace_event_raw_ext4_evict_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int nlink; + char __data[0]; }; -enum st_thermal_regfield_ids { - INT_THRESH_HI = 0, - TEMP_PWR = 0, - DCORRECT = 1, - OVERFLOW = 2, - DATA = 3, - INT_ENABLE = 4, - MAX_REGFIELDS = 5, +struct trace_event_raw_ext4_drop_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int drop; + char __data[0]; }; -struct mtk_wdt_data { - int toprgu_sw_rst_num; +struct trace_event_raw_ext4_nfs_commit_metadata { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; }; -struct mtk_wdt_dev { - struct watchdog_device wdt_dev; - void *wdt_base; - spinlock_t lock; - struct reset_controller_dev rcdev; - bool disable_wdt_extrst; - bool reset_by_toprgu; +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 policy_dbs_info; +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 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 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]; long: 32; }; -struct dbs_data; +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 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 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]; long: 32; }; -struct dbs_governor; - -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 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 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 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 uniphier_sd_priv { - struct tmio_mmc_data tmio_data; - struct pinctrl *pinctrl; - struct pinctrl_state *pinstate_uhs; - struct clk *clk; - struct reset_control *rst; - struct reset_control *rst_br; - struct reset_control *rst_hw; - struct dma_chan *chan; - enum dma_data_direction dma_dir; - struct regmap *sdctrl_regmap; - u32 sdctrl_ch; - unsigned long clk_rate; - unsigned long caps; +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 scm_legacy_response { - __le32 len; - __le32 buf_offset; - __le32 is_complete; +struct trace_event_raw_ext4__folio_op { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long index; + char __data[0]; }; -struct scm_legacy_command { - __le32 len; - __le32 buf_offset; - __le32 resp_hdr_offset; - __le32 id; - __le32 buf[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 dmtimer_systimer { - void *base; - u8 sysc; - u8 irq_stat; - u8 irq_ena; - u8 pend; - u8 load; - u8 counter; - u8 ctrl; - u8 wakeup; - u8 ifctrl; - struct clk *fck; - struct clk *ick; - unsigned long rate; +struct trace_event_raw_ext4_discard_blocks { + struct trace_entry ent; + dev_t dev; + long: 32; + __u64 blk; + __u64 count; + char __data[0]; }; -struct dmtimer_clockevent { - struct clock_event_device dev; - struct dmtimer_systimer t; - u32 period; - long: 32; - long: 32; - long: 32; - long: 32; +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]; long: 32; +}; + +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]; long: 32; +}; + +struct trace_event_raw_ext4_mb_release_group_pa { + struct trace_entry ent; + dev_t dev; long: 32; + __u64 pa_pstart; + __u32 pa_len; + char __data[0]; long: 32; }; -struct dmtimer_clocksource { - struct clocksource dev; - struct dmtimer_systimer t; - unsigned int loadval; +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 lpddr2_addressing { - u32 num_banks; - u32 tREFI_ns; - u32 tRFCab_ps; +struct trace_event_raw_ext4_mb_discard_preallocations { + struct trace_entry ent; + dev_t dev; + int needed; + char __data[0]; }; -struct lpddr2_timings { - u32 max_freq; - u32 min_freq; - u32 tRPab; - u32 tRCD; - u32 tWR; - u32 tRAS_min; - u32 tRRD; - u32 tWTR; - u32 tXP; - u32 tRTP; - u32 tCKESR; - u32 tDQSCK_max; - u32 tDQSCK_max_derated; - u32 tFAW; - u32 tZQCS; - u32 tZQCL; - u32 tZQinit; - u32 tRAS_max_ns; +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]; + long: 32; }; -struct lpddr2_min_tck { - u32 tRPab; - u32 tRCD; - u32 tWR; - u32 tRASmin; - u32 tRRD; - u32 tWTR; - u32 tXP; - u32 tRTP; - u32 tCKE; - u32 tCKESR; - u32 tFAW; +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]; + long: 32; }; -struct atmel_ebi_dev; - -struct atmel_ebi_dev_config; +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]; + long: 32; +}; -struct atmel_ebi_caps { - unsigned int available_cs; - unsigned int ebi_csa_offs; - const char *regmap_name; - void (*get_config)(struct atmel_ebi_dev *, struct atmel_ebi_dev_config *); - int (*xlate_config)(struct atmel_ebi_dev *, struct device_node *, struct atmel_ebi_dev_config *); - void (*apply_config)(struct atmel_ebi_dev *, struct atmel_ebi_dev_config *); +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 atmel_ebi_dev_config { - int cs; - struct atmel_smc_cs_conf smcconf; +struct trace_event_raw_ext4_sync_file_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + char __data[0]; }; -struct atmel_ebi; +struct trace_event_raw_ext4_sync_fs { + struct trace_entry ent; + dev_t dev; + int wait; + char __data[0]; +}; -struct atmel_ebi_dev { - struct list_head node; - struct atmel_ebi *ebi; - u32 mode; - int numcs; - struct atmel_ebi_dev_config configs[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 atmel_ebi { - struct clk *clk; - struct regmap *regmap; - struct { - struct regmap *regmap; - struct clk *clk; - const struct atmel_hsmc_reg_layout *layout; - } smc; - struct device *dev; - const struct atmel_ebi_caps *caps; - struct list_head devs; +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 atmel_smc_timing_xlate { - const char *name; - int (*converter)(struct atmel_smc_cs_conf *, unsigned int, unsigned int); - unsigned int shift; +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]; }; -enum ab8500_gpadc_channel { - AB8500_GPADC_CHAN_UNUSED = 0, - AB8500_GPADC_CHAN_BAT_CTRL = 1, - AB8500_GPADC_CHAN_BAT_TEMP = 2, - AB8500_GPADC_CHAN_MAIN_CHARGER = 3, - AB8500_GPADC_CHAN_ACC_DET_1 = 4, - AB8500_GPADC_CHAN_ACC_DET_2 = 5, - AB8500_GPADC_CHAN_ADC_AUX_1 = 6, - AB8500_GPADC_CHAN_ADC_AUX_2 = 7, - AB8500_GPADC_CHAN_VBAT_A = 8, - AB8500_GPADC_CHAN_VBUS = 9, - AB8500_GPADC_CHAN_MAIN_CHARGER_CURRENT = 10, - AB8500_GPADC_CHAN_USB_CHARGER_CURRENT = 11, - AB8500_GPADC_CHAN_BACKUP_BAT = 12, - AB8505_GPADC_CHAN_DIE_TEMP = 13, - AB8500_GPADC_CHAN_ID = 14, - AB8500_GPADC_CHAN_INTERNAL_TEST_1 = 15, - AB8500_GPADC_CHAN_INTERNAL_TEST_2 = 16, - AB8500_GPADC_CHAN_INTERNAL_TEST_3 = 17, - AB8500_GPADC_CHAN_XTAL_TEMP = 18, - AB8500_GPADC_CHAN_VBAT_TRUE_MEAS = 19, - AB8500_GPADC_CHAN_BAT_CTRL_AND_IBAT = 28, - AB8500_GPADC_CHAN_VBAT_MEAS_AND_IBAT = 29, - AB8500_GPADC_CHAN_VBAT_TRUE_MEAS_AND_IBAT = 30, - AB8500_GPADC_CHAN_BAT_TEMP_AND_IBAT = 31, - AB8500_GPADC_CHAN_IBAT_VIRTUAL = 255, +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]; }; -enum ab8500_cal_channels { - AB8500_CAL_VMAIN = 0, - AB8500_CAL_BTEMP = 1, - AB8500_CAL_VBAT = 2, - AB8500_CAL_IBAT = 3, - AB8500_CAL_NR = 4, +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 ab8500_adc_cal_data { - s64 gain; - s64 offset; - u16 otp_calib_hi; - u16 otp_calib_lo; - long: 32; +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 ab8500_gpadc_chan_info; +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 ab8500_gpadc { - struct device *dev; - struct ab8500 *ab8500; - struct ab8500_gpadc_chan_info *chans; - unsigned int nchans; - struct completion complete; - struct regulator *vddadc; - int irq_sw; - int irq_hw; +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]; long: 32; - struct ab8500_adc_cal_data cal_data[4]; }; -struct ab8500_gpadc_chan_info { - const char *name; - u8 id; - bool hardware_control; - bool falling_edge; - u8 avg_sample; - u8 trig_timer; +struct trace_event_raw_ext4__bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + char __data[0]; }; -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 trace_event_raw_ext4_read_block_bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + bool prefetch; + char __data[0]; }; -struct tsinfo_reply_data { - struct ethnl_reply_data base; - struct ethtool_ts_info ts_info; +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]; + long: 32; }; -struct uncached_list { - spinlock_t lock; - struct list_head head; - struct list_head quarantine; +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]; }; -typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *); +struct trace_event_raw_ext4_unlink_enter { + struct trace_entry ent; + dev_t dev; + ino_t ino; + ino_t parent; + long: 32; + loff_t size; + char __data[0]; +}; -enum rt6_nud_state { - RT6_NUD_FAIL_HARD = -3, - RT6_NUD_FAIL_PROBE = -2, - RT6_NUD_FAIL_DO_RR = -1, - RT6_NUD_SUCCEED = 1, +struct trace_event_raw_ext4_unlink_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + char __data[0]; }; -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, +struct trace_event_raw_ext4__truncate { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 blocks; + char __data[0]; }; -struct rd_msg { - struct icmp6hdr icmph; - struct in6_addr target; - struct in6_addr dest; - __u8 opt[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 rt6_rtnl_dump_arg { - struct sk_buff *skb; - struct netlink_callback *cb; - struct net *net; - struct fib_dump_filter filter; +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_fib6_table_lookup { +struct trace_event_raw_ext4__map_blocks_enter { 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]; + dev_t dev; + ino_t ino; + ext4_lblk_t lblk; + unsigned int len; + unsigned int flags; char __data[0]; }; -struct rt6_exception { - struct hlist_node hlist; - struct rt6_info *rt6i; - unsigned long stamp; - struct callback_head rcu; +struct trace_event_raw_ext4__map_blocks_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned int flags; + long: 32; + ext4_fsblk_t pblk; + ext4_lblk_t lblk; + unsigned int len; + unsigned int mflags; + int ret; + char __data[0]; }; -struct __rt6_probe_work { - struct work_struct work; - struct in6_addr target; - struct net_device *dev; - netdevice_tracker dev_tracker; +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]; + long: 32; }; -struct ip6rd_flowi { - struct flowi6 fl6; - struct in6_addr gateway; +struct trace_event_raw_ext4_load_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; }; -struct arg_dev_net_ip { - struct net_device *dev; - struct net *net; - struct in6_addr *addr; +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 rt6_mtu_change_arg { - struct net_device *dev; - unsigned int mtu; - struct fib6_info *f6i; +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 rt6_nh { - struct fib6_info *fib6_info; - struct fib6_config r_cfg; - struct list_head next; +struct trace_event_raw_ext4_journal_start_reserved { + struct trace_entry ent; + dev_t dev; + unsigned long ip; + int blocks; + char __data[0]; }; -typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); +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 fib6_nh_dm_arg { - struct net *net; - const struct in6_addr *saddr; - int oif; +struct trace_event_raw_ext4_ext_handle_unwritten_extents { + struct trace_entry ent; + dev_t dev; + ino_t ino; int flags; - struct fib6_nh *nh; + ext4_lblk_t lblk; + ext4_fsblk_t pblk; + unsigned int len; + unsigned int allocated; + ext4_fsblk_t newblk; + char __data[0]; }; -struct fib6_gc_args { - int timeout; - int more; +struct trace_event_raw_ext4_get_implied_cluster_alloc_exit { + struct trace_entry ent; + dev_t dev; + unsigned int flags; + ext4_lblk_t lblk; + long: 32; + ext4_fsblk_t pblk; + unsigned int len; + int ret; + char __data[0]; }; -struct fib6_nh_match_arg { - const struct net_device *dev; - const struct in6_addr *gw; - struct fib6_nh *match; +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 fib6_nh_del_cached_rt_arg { - struct fib6_config *cfg; - struct fib6_info *f6i; +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 arg_netdev_event { - const struct net_device *dev; - union { - unsigned char nh_flags; - unsigned long event; - }; +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; + long: 32; + ext4_fsblk_t pc_pclu; + ext4_lblk_t pc_lblk; + int pc_state; + char __data[0]; }; -struct trace_event_data_offsets_fib6_table_lookup {}; - -struct fib6_nh_age_excptn_arg { - struct fib6_gc_args *gc_args; - unsigned long now; +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 netevent_redirect { - struct dst_entry *old; - struct dst_entry *new; - struct neighbour *neigh; - const void *daddr; +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 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 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; + long: 32; + ext4_fsblk_t pc_pclu; + ext4_lblk_t pc_lblk; + int pc_state; + unsigned short eh_entries; + char __data[0]; + long: 32; }; -struct fib6_nh_frl_arg { - u32 flags; - int oif; - int strict; - int *mpri; - bool *do_rr; - struct fib6_nh *nh; +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]; + long: 32; }; -struct fib6_nh_rd_arg { - struct fib6_result *res; - struct flowi6 *fl6; - const struct in6_addr *gw; - struct rt6_info **ret; +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 fib6_nh_excptn_arg { - struct rt6_info *rt; - int plen; +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 rpc_filelist { - const char *name; - const struct file_operations *i_fop; - umode_t mode; +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]; + long: 32; }; -enum { - RPCAUTH_info = 0, - RPCAUTH_EOF = 1, +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]; }; -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 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 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 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 rpc_pipe_dir_object_ops { - int (*create)(struct dentry *, struct rpc_pipe_dir_object *); - void (*destroy)(struct dentry *, struct rpc_pipe_dir_object *); +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 inflate_workspace { - struct inflate_state inflate_state; - unsigned char working_window[32768]; +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 al_cpu_resume_regs_per_cpu { - uint32_t flags; - uint32_t resume_addr; +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 al_cpu_resume_regs { - uint32_t watermark; - uint32_t flags; - struct al_cpu_resume_regs_per_cpu per_cpu[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]; }; -enum { - FW_DO_IDLE_SLEEP = 0, - FW_DO_IDLE_AFTR = 1, +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]; + long: 32; }; -struct fsl_mmdc_devtype_data { - unsigned int flags; +struct trace_event_raw_ext4_fsmap_class { + struct trace_entry ent; + dev_t dev; + dev_t keydev; + u32 agno; + long: 32; + u64 bno; + u64 len; + u64 owner; + char __data[0]; }; -enum perf_event_task_context { - perf_invalid_context = -1, - perf_hw_context = 0, - perf_sw_context = 1, - perf_nr_task_contexts = 2, +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 mmdc_pmu { - struct pmu pmu; - void *mmdc_base; - cpumask_t cpu; - long: 32; - struct hrtimer hrtimer; - unsigned int active_events; - int id; - struct device *dev; - struct perf_event *mmdc_events[6]; - struct hlist_node node; - struct fsl_mmdc_devtype_data *devtype_data; - struct clk *mmdc_ipg_clk; - long: 32; +struct trace_event_raw_ext4_shutdown { + struct trace_entry ent; + dev_t dev; + unsigned int flags; + char __data[0]; }; -struct omap_prm_irq_context { - unsigned long irq_enable; - unsigned long pm_ctrl; +struct trace_event_raw_ext4_error { + struct trace_entry ent; + dev_t dev; + const char *function; + unsigned int line; + char __data[0]; }; -struct prm_reset_src_map { - s8 reg_shift; - s8 std_shift; +struct trace_event_raw_ext4_prefetch_bitmaps { + struct trace_entry ent; + dev_t dev; + __u32 group; + __u32 next; + __u32 ios; + char __data[0]; }; -struct omap4_vp { - u32 irqstatus_mpu; - u32 tranxdone_status; +struct trace_event_raw_ext4_lazy_itable_init { + struct trace_entry ent; + dev_t dev; + __u32 group; + char __data[0]; }; -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 trace_event_raw_ext4_fc_replay_scan { + struct trace_entry ent; + dev_t dev; + int error; + int off; + char __data[0]; }; -struct waitid_info; +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 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 trace_event_raw_ext4_fc_commit_start { + struct trace_entry ent; + dev_t dev; + tid_t tid; + char __data[0]; }; -struct waitid_info { - pid_t pid; - uid_t uid; - int status; - int cause; +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]; }; -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 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 pci_p2pdma_map_state { - struct dev_pagemap *pgmap; - int map; - u64 bus_off; +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]; }; -enum { - FLAGS_FILL_FULL = 268435456, - FLAGS_FILL_START = 536870912, - FLAGS_FILL_END = 805306368, +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 fgraph_cpu_data { - pid_t last_pid; - int depth; - int depth_irq; - int ignore; - unsigned long enter_funcs[50]; +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 ftrace_graph_ent_entry { +struct trace_event_raw_ext4_fc_cleanup { struct trace_entry ent; - struct ftrace_graph_ent graph_ent; + dev_t dev; + int j_fc_off; + int full; + tid_t tid; + char __data[0]; }; -struct ftrace_graph_ret_entry { +struct trace_event_raw_ext4_update_sb { struct trace_entry ent; - struct ftrace_graph_ret ret; + dev_t dev; + long: 32; + ext4_fsblk_t fsblk; + unsigned int flags; + char __data[0]; + long: 32; }; -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; +struct ext4_journal_cb_entry { + struct list_head jce_list; + void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); }; -struct prog_poke_elem { - struct list_head list; - struct bpf_prog_aux *aux; +struct fs_error_report { + int error; + struct inode *inode; + struct super_block *sb; }; -struct bpf_event_entry { - struct perf_event *event; - struct file *perf_file; - struct file *map_file; - struct callback_head rcu; +struct ext4_fs_context { + char *s_qf_names[3]; + struct fscrypt_dummy_policy dummy_enc_policy; + int s_jquota_fmt; + unsigned short qname_spec; + unsigned long vals_s_flags; + unsigned long mask_s_flags; + unsigned long journal_devnum; + unsigned long s_commit_interval; + unsigned long s_stripe; + unsigned int s_inode_readahead_blks; + unsigned int s_want_extra_isize; + unsigned int s_li_wait_mult; + unsigned int s_max_dir_size_kb; + unsigned int journal_ioprio; + unsigned int vals_s_mount_opt; + unsigned int mask_s_mount_opt; + unsigned int vals_s_mount_opt2; + unsigned int mask_s_mount_opt2; + unsigned int opt_flags; + unsigned int spec; + u32 s_max_batch_time; + u32 s_min_batch_time; + kuid_t s_resuid; + kgid_t s_resgid; + long: 32; + ext4_fsblk_t s_sb_block; }; -struct bpf_iter__bpf_map_elem { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; - union { - void *key; - }; - union { - void *value; - }; +struct ext4_mount_options { + unsigned long s_mount_opt; + unsigned long s_mount_opt2; + kuid_t s_resuid; + kgid_t s_resgid; + unsigned long s_commit_interval; + u32 s_min_batch_time; + u32 s_max_batch_time; }; -struct bpf_iter_seq_array_map_info { - struct bpf_map *map; - void *percpu_value_buf; - u32 index; -}; +typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); + +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 dma_page { - struct list_head page_list; - void *vaddr; - dma_addr_t dma; -}; +struct trace_event_data_offsets_ext4_writepages {}; -struct dma_block; +struct trace_event_data_offsets_ext4_da_write_pages {}; -struct dma_pool { - struct list_head page_list; - spinlock_t lock; - struct dma_block *next_block; - size_t nr_blocks; - size_t nr_active; - size_t nr_pages; - struct device *dev; - unsigned int size; - unsigned int allocation; - unsigned int boundary; - char name[32]; - struct list_head pools; -}; +struct trace_event_data_offsets_ext4_da_write_pages_extent {}; -struct dma_block { - struct dma_block *next_block; - dma_addr_t dma; -}; +struct trace_event_data_offsets_ext4_writepages_result {}; -struct pending_reservation { - struct rb_node rb_node; - ext4_lblk_t lclu; -}; +struct trace_event_data_offsets_ext4__folio_op {}; -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 trace_event_data_offsets_ext4_invalidate_folio_op {}; -struct cb_process_state; +struct trace_event_data_offsets_ext4_discard_blocks {}; -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 trace_event_data_offsets_ext4__mb_new_pa {}; -struct cb_process_state { - __be32 drc_status; - struct nfs_client *clp; - struct nfs4_slot *slot; - u32 minorversion; - struct net *net; -}; +struct trace_event_data_offsets_ext4_mb_release_inode_pa {}; -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 trace_event_data_offsets_ext4_mb_release_group_pa {}; -enum pnfs_layoutreturn_type { - RETURN_FILE = 1, - RETURN_FSID = 2, - RETURN_ALL = 3, -}; +struct trace_event_data_offsets_ext4_discard_preallocations {}; -struct cb_compound_hdr_arg { - unsigned int taglen; - const char *tag; - unsigned int minorversion; - unsigned int cb_ident; - unsigned int nops; -}; +struct trace_event_data_offsets_ext4_mb_discard_preallocations {}; -struct cb_compound_hdr_res { - __be32 *status; - unsigned int taglen; - const char *tag; - __be32 *nops; -}; +struct trace_event_data_offsets_ext4_request_blocks {}; -struct referring_call; +struct trace_event_data_offsets_ext4_allocate_blocks {}; -struct referring_call_list { - struct nfs4_sessionid rcl_sessionid; - uint32_t rcl_nrefcalls; - struct referring_call *rcl_refcalls; -}; +struct trace_event_data_offsets_ext4_free_blocks {}; -struct referring_call { - uint32_t rc_sequenceid; - uint32_t rc_slotid; -}; +struct trace_event_data_offsets_ext4_sync_file_enter {}; -struct cb_offloadargs { - struct nfs_fh coa_fh; - nfs4_stateid coa_stateid; - uint32_t error; - long: 32; - uint64_t wr_count; - struct nfs_writeverf wr_writeverf; - long: 32; -}; +struct trace_event_data_offsets_ext4_sync_file_exit {}; -struct cb_getattrargs { - struct nfs_fh fh; - uint32_t bitmap[2]; -}; +struct trace_event_data_offsets_ext4_sync_fs {}; -struct cb_getattrres { - __be32 status; - uint32_t bitmap[2]; - long: 32; - uint64_t size; - uint64_t change_attr; - struct timespec64 ctime; - struct timespec64 mtime; -}; +struct trace_event_data_offsets_ext4_alloc_da_blocks {}; -struct cb_recallargs { - struct nfs_fh fh; - nfs4_stateid stateid; - uint32_t truncate; -}; +struct trace_event_data_offsets_ext4_mballoc_alloc {}; -struct cb_layoutrecallargs { - uint32_t cbl_recall_type; - uint32_t cbl_layout_type; - uint32_t cbl_layoutchanged; - long: 32; - union { - struct { - struct nfs_fh cbl_fh; - long: 32; - struct pnfs_layout_range cbl_range; - nfs4_stateid cbl_stateid; - long: 32; - }; - struct nfs_fsid cbl_fsid; - }; -}; +struct trace_event_data_offsets_ext4_mballoc_prealloc {}; -struct cb_recallanyargs { - uint32_t craa_objs_to_keep; - uint32_t craa_type_mask; -}; +struct trace_event_data_offsets_ext4__mballoc {}; -struct cb_recallslotargs { - uint32_t crsa_target_highest_slotid; -}; +struct trace_event_data_offsets_ext4_forget {}; -struct cb_sequenceargs { - struct sockaddr *csa_addr; - struct nfs4_sessionid csa_sessionid; - uint32_t csa_sequenceid; - uint32_t csa_slotid; - uint32_t csa_highestslotid; - uint32_t csa_cachethis; - uint32_t csa_nrclists; - struct referring_call_list *csa_rclists; -}; +struct trace_event_data_offsets_ext4_da_update_reserve_space {}; -struct cb_sequenceres { - __be32 csr_status; - struct nfs4_sessionid csr_sessionid; - uint32_t csr_sequenceid; - uint32_t csr_slotid; - uint32_t csr_highestslotid; - uint32_t csr_target_highestslotid; -}; +struct trace_event_data_offsets_ext4_da_reserve_space {}; -struct cb_devicenotifyitem { - uint32_t cbd_notify_type; - uint32_t cbd_layout_type; - struct nfs4_deviceid cbd_dev_id; - uint32_t cbd_immediate; -}; +struct trace_event_data_offsets_ext4_da_release_space {}; -struct cb_devicenotifyargs { - uint32_t ndevs; - struct cb_devicenotifyitem *devs; -}; +struct trace_event_data_offsets_ext4__bitmap_load {}; -typedef int (*ntfs_collate_func_t)(ntfs_volume *, const void *, const int, const void *, const int); +struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; -struct bud_entry { - struct list_head list; - struct ubifs_bud *bud; - long: 32; - unsigned long long sqnum; - int free; - int dirty; -}; +struct trace_event_data_offsets_ext4__fallocate_mode {}; -struct replay_entry { - int lnum; - int offs; - int len; - u8 hash[0]; - unsigned int deletion: 1; - unsigned long long sqnum; - struct list_head list; - union ubifs_key key; - union { - struct fscrypt_name nm; - struct { - loff_t old_size; - loff_t new_size; - }; - }; -}; +struct trace_event_data_offsets_ext4_fallocate_exit {}; -struct ubifs_auth_node { - struct ubifs_ch ch; - __u8 hmac[0]; -}; +struct trace_event_data_offsets_ext4_unlink_enter {}; -typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); +struct trace_event_data_offsets_ext4_unlink_exit {}; -typedef int __kernel_key_t; +struct trace_event_data_offsets_ext4__truncate {}; -typedef __kernel_key_t key_t; +struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {}; -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; -}; +struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {}; -struct ipc_params; +struct trace_event_data_offsets_ext4__map_blocks_enter {}; -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 trace_event_data_offsets_ext4__map_blocks_exit {}; -struct ipc_params { - key_t key; - int flg; - union { - size_t size; - int nsems; - } u; -}; +struct trace_event_data_offsets_ext4_ext_load_extent {}; -struct ipc_proc_iface { - const char *path; - const char *header; - int ids; - int (*show)(struct seq_file *, void *); -}; +struct trace_event_data_offsets_ext4_load_inode {}; -typedef unsigned short __kernel_mode_t; +struct trace_event_data_offsets_ext4_journal_start_sb {}; -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[2]; - unsigned short seq; - unsigned short __pad2; - __kernel_ulong_t __unused1; - __kernel_ulong_t __unused2; -}; +struct trace_event_data_offsets_ext4_journal_start_inode {}; -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 trace_event_data_offsets_ext4_journal_start_reserved {}; -struct ipc_proc_iter { - struct ipc_namespace *ns; - struct pid_namespace *pid_ns; - struct ipc_proc_iface *iface; -}; +struct trace_event_data_offsets_ext4__trim {}; -struct chksum_ctx { - u32 key; -}; +struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {}; -struct chksum_desc_ctx { - u32 crc; -}; +struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; -enum blacklist_hash_type { - BLACKLIST_HASH_X509_TBS = 1, - BLACKLIST_HASH_BINARY = 2, -}; +struct trace_event_data_offsets_ext4_ext_show_extent {}; -enum bfqq_state_flags { - BFQQF_just_created = 0, - BFQQF_busy = 1, - BFQQF_wait_request = 2, - BFQQF_non_blocking_wait_rq = 3, - BFQQF_fifo_expire = 4, - BFQQF_has_short_ttime = 5, - BFQQF_sync = 6, - BFQQF_IO_bound = 7, - BFQQF_in_large_burst = 8, - BFQQF_softrt_update = 9, - BFQQF_coop = 10, - BFQQF_split_coop = 11, -}; +struct trace_event_data_offsets_ext4_remove_blocks {}; -enum bfqq_expiration { - BFQQE_TOO_IDLE = 0, - BFQQE_BUDGET_TIMEOUT = 1, - BFQQE_BUDGET_EXHAUSTED = 2, - BFQQE_NO_MORE_REQUESTS = 3, - BFQQE_PREEMPTED = 4, -}; +struct trace_event_data_offsets_ext4_ext_rm_leaf {}; -typedef unsigned int FSE_DTable; +struct trace_event_data_offsets_ext4_ext_rm_idx {}; -typedef struct { - U16 tableLog; - U16 fastMode; -} FSE_DTableHeader; +struct trace_event_data_offsets_ext4_ext_remove_space {}; -typedef struct { - unsigned short newState; - unsigned char symbol; - unsigned char nbBits; -} FSE_decode_t; +struct trace_event_data_offsets_ext4_ext_remove_space_done {}; -typedef struct { - short ncount[256]; - FSE_DTable dtable[1]; -} FSE_DecompressWksp; +struct trace_event_data_offsets_ext4__es_extent {}; -typedef struct { - size_t state; - const void *table; -} FSE_DState_t; +struct trace_event_data_offsets_ext4_es_remove_extent {}; -struct word_at_a_time { - const unsigned long one_bits; - const unsigned long high_bits; -}; +struct trace_event_data_offsets_ext4_es_find_extent_range_enter {}; -enum pipe3_mode { - PIPE3_MODE_PCIE = 1, - PIPE3_MODE_SATA = 2, - PIPE3_MODE_USBSS = 3, -}; +struct trace_event_data_offsets_ext4_es_find_extent_range_exit {}; -struct pipe3_settings { - u8 ana_interface; - u8 ana_losd; - u8 dig_fastlock; - u8 dig_lbw; - u8 dig_stepcnt; - u8 dig_stl; - u8 dig_thr; - u8 dig_thr_mode; - u8 dig_2ndo_sdm_mode; - u8 dig_hs_rate; - u8 dig_ovrd_hs_rate; - u8 dll_trim_sel; - u8 dll_phint_rate; - u8 eq_lev; - u8 eq_ftc; - u8 eq_ctl; - u8 eq_ovrd_lev; - u8 eq_ovrd_ftc; -}; +struct trace_event_data_offsets_ext4_es_lookup_extent_enter {}; -struct pipe3_dpll_map; +struct trace_event_data_offsets_ext4_es_lookup_extent_exit {}; -struct pipe3_data { - enum pipe3_mode mode; - struct pipe3_dpll_map *dpll_map; - struct pipe3_settings settings; -}; +struct trace_event_data_offsets_ext4__es_shrink_enter {}; -struct pipe3_dpll_params { - u16 m; - u8 n; - u8 freq: 3; - u8 sd; - u32 mf; -}; +struct trace_event_data_offsets_ext4_es_shrink_scan_exit {}; -struct pipe3_dpll_map { - unsigned long rate; - struct pipe3_dpll_params params; -}; +struct trace_event_data_offsets_ext4_collapse_range {}; -struct ti_pipe3 { - void *pll_ctrl_base; - void *phy_rx; - void *phy_tx; - struct device *dev; - struct device *control_dev; - struct clk *wkupclk; - struct clk *sys_clk; - struct clk *refclk; - struct clk *div_clk; - struct pipe3_dpll_map *dpll_map; - struct regmap *phy_power_syscon; - struct regmap *pcs_syscon; - struct regmap *dpll_reset_syscon; - unsigned int dpll_reset_reg; - unsigned int power_reg; - unsigned int pcie_pcs_reg; - bool sata_refclk_enabled; - enum pipe3_mode mode; - struct pipe3_settings settings; -}; +struct trace_event_data_offsets_ext4_insert_range {}; -struct mvebu_pinctrl_group { - const char *name; - const struct mvebu_mpp_ctrl *ctrl; - struct mvebu_mpp_ctrl_data *data; - struct mvebu_mpp_ctrl_setting *settings; - unsigned int num_settings; - unsigned int gid; - unsigned int *pins; - unsigned int npins; -}; +struct trace_event_data_offsets_ext4_es_shrink {}; -struct mvebu_pinctrl_function; +struct trace_event_data_offsets_ext4_es_insert_delayed_block {}; -struct mvebu_pinctrl { - struct device *dev; - struct pinctrl_dev *pctldev; - struct pinctrl_desc desc; - struct mvebu_pinctrl_group *groups; - unsigned int num_groups; - struct mvebu_pinctrl_function *functions; - unsigned int num_functions; - u8 variant; -}; +struct trace_event_data_offsets_ext4_fsmap_class {}; -struct mvebu_pinctrl_function { - const char *name; - const char **groups; - unsigned int num_groups; -}; +struct trace_event_data_offsets_ext4_getfsmap_class {}; -struct gpio { - unsigned int gpio; - unsigned long flags; - const char *label; -}; +struct trace_event_data_offsets_ext4_shutdown {}; -struct pxa_gpio_bank; +struct trace_event_data_offsets_ext4_error {}; -struct pxa_gpio_chip { - struct device *dev; - struct gpio_chip chip; - struct pxa_gpio_bank *banks; - struct irq_domain *irqdomain; - int irq0; - int irq1; - int (*set_wake)(unsigned int, unsigned int); -}; +struct trace_event_data_offsets_ext4_prefetch_bitmaps {}; -struct pxa_gpio_bank { - void *regbase; - unsigned long irq_mask; - unsigned long irq_edge_rise; - unsigned long irq_edge_fall; - unsigned long saved_gplr; - unsigned long saved_gpdr; - unsigned long saved_grer; - unsigned long saved_gfer; -}; +struct trace_event_data_offsets_ext4_lazy_itable_init {}; -enum pxa_gpio_type { - PXA25X_GPIO = 0, - PXA26X_GPIO = 1, - PXA27X_GPIO = 2, - PXA3XX_GPIO = 3, - PXA93X_GPIO = 4, - MMP_GPIO = 16, - MMP2_GPIO = 17, - PXA1928_GPIO = 18, -}; +struct trace_event_data_offsets_ext4_fc_replay_scan {}; -struct pxa_gpio_id { - enum pxa_gpio_type type; - int gpio_nums; -}; +struct trace_event_data_offsets_ext4_fc_replay {}; -struct pxa_gpio_platform_data { - int irq_base; - int (*gpio_set_wake)(unsigned int, unsigned int); -}; +struct trace_event_data_offsets_ext4_fc_commit_start {}; -struct pci_dynid { - struct list_head node; - struct pci_device_id id; -}; +struct trace_event_data_offsets_ext4_fc_commit_stop {}; -struct drv_dev_and_id { - struct pci_driver *drv; - struct pci_dev *dev; - const struct pci_device_id *id; -}; +struct trace_event_data_offsets_ext4_fc_stats {}; -enum backlight_update_reason { - BACKLIGHT_UPDATE_HOTKEY = 0, - BACKLIGHT_UPDATE_SYSFS = 1, -}; +struct trace_event_data_offsets_ext4_fc_track_dentry {}; -enum backlight_notification { - BACKLIGHT_REGISTERED = 0, - BACKLIGHT_UNREGISTERED = 1, -}; +struct trace_event_data_offsets_ext4_fc_track_inode {}; -struct fb_event { - struct fb_info *info; - void *data; -}; +struct trace_event_data_offsets_ext4_fc_track_range {}; -struct aspeed_gate_data { - u8 clock_idx; - s8 reset_idx; - const char *name; - const char *parent_name; - unsigned long flags; -}; +struct trace_event_data_offsets_ext4_fc_cleanup {}; -struct aspeed_reset { - struct regmap *map; - struct reset_controller_dev rcdev; -}; +struct trace_event_data_offsets_ext4_update_sb {}; -struct aspeed_clk_gate { - struct clk_hw hw; - struct regmap *map; - u8 clock_idx; - s8 reset_idx; - u8 flags; - spinlock_t *lock; +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 iproc_asiu; +enum { + FILE_NAME_POSIX = 0, + FILE_NAME_WIN32 = 1, + FILE_NAME_DOS = 2, + FILE_NAME_WIN32_AND_DOS = 3, +} __attribute__((mode(byte))); -struct iproc_asiu_clk { - struct clk_hw hw; - const char *name; - struct iproc_asiu *asiu; - unsigned long rate; - struct iproc_asiu_div div; - struct iproc_asiu_gate gate; +enum { + FILE_MFT = 0, + FILE_MFTMirr = 1, + FILE_LogFile = 2, + FILE_Volume = 3, + FILE_AttrDef = 4, + FILE_root = 5, + FILE_Bitmap = 6, + FILE_Boot = 7, + FILE_BadClus = 8, + FILE_Secure = 9, + FILE_UpCase = 10, + FILE_Extend = 11, + FILE_reserved12 = 12, + FILE_reserved13 = 13, + FILE_reserved14 = 14, + FILE_reserved15 = 15, + FILE_first_user = 16, }; -struct iproc_asiu { - void *div_base; - void *gate_base; - struct clk_hw_onecell_data *clk_data; - struct iproc_asiu_clk *clks; +enum { + FILE_ATTR_READONLY = 1, + FILE_ATTR_HIDDEN = 2, + FILE_ATTR_SYSTEM = 4, + FILE_ATTR_DIRECTORY = 16, + FILE_ATTR_ARCHIVE = 32, + FILE_ATTR_DEVICE = 64, + FILE_ATTR_NORMAL = 128, + FILE_ATTR_TEMPORARY = 256, + FILE_ATTR_SPARSE_FILE = 512, + FILE_ATTR_REPARSE_POINT = 1024, + FILE_ATTR_COMPRESSED = 2048, + FILE_ATTR_OFFLINE = 4096, + FILE_ATTR_NOT_CONTENT_INDEXED = 8192, + FILE_ATTR_ENCRYPTED = 16384, + FILE_ATTR_VALID_FLAGS = 32695, + FILE_ATTR_VALID_SET_FLAGS = 12711, + FILE_ATTR_DUP_FILE_NAME_INDEX_PRESENT = 268435456, + FILE_ATTR_DUP_VIEW_INDEX_PRESENT = 536870912, }; -struct clk_cpu { - struct clk_hw hw; - struct clk *div; - struct clk *mux; - struct clk *pll; - struct clk *step; -}; +typedef struct { + MFT_REF mref; + FILE_NAME_TYPE_FLAGS type; + u8 len; + ntfschar name[0]; +} __attribute__((packed)) ntfs_name; -struct clk_gate2 { - struct clk_hw hw; - void *reg; - u8 bit_idx; - u8 cgr_val; - u8 cgr_mask; - u8 flags; - spinlock_t *lock; - unsigned int *share_count; +enum { + DIRTY_CNODE = 0, + OBSOLETE_CNODE = 1, + COW_CNODE = 2, }; -struct clk_regmap_phy_mux { - u32 reg; - struct clk_regmap clkr; +enum { + LPT_SCAN_CONTINUE = 0, + LPT_SCAN_ADD = 1, + LPT_SCAN_STOP = 2, }; -struct div6_clock { - struct clk_hw hw; - void *reg; - unsigned int div; - u32 src_mask; - struct notifier_block nb; - u8 parents[0]; -}; +typedef int (*ubifs_lpt_scan_callback)(struct ubifs_info *, const struct ubifs_lprops *, int, void *); -struct sun9i_mmc_clk_data { - spinlock_t lock; - void *membase; - struct clk *clk; - struct reset_control *reset; - struct clk_onecell_data clk_data; - struct reset_controller_dev rcdev; +enum autofs_notify { + NFY_NONE = 0, + NFY_MOUNT = 1, + NFY_EXPIRE = 2, }; -struct tegra_clk_super_mux { - struct clk_hw hw; - void *reg; - struct tegra_clk_frac_div frac_div; - const struct clk_ops *div_ops; - u8 width; - u8 flags; - u8 div2_index; - u8 pllx_index; - spinlock_t *lock; +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 ti_clk_ll_ops { - u32 (*clk_readl)(const struct clk_omap_reg *); - void (*clk_writel)(u32, const struct clk_omap_reg *); - void (*clk_rmw)(u32, u32, const struct clk_omap_reg *); - int (*clkdm_clk_enable)(struct clockdomain *, struct clk *); - int (*clkdm_clk_disable)(struct clockdomain *, struct clk *); - struct clockdomain * (*clkdm_lookup)(const char *); - int (*cm_wait_module_ready)(u8, s16, u16, u8); - int (*cm_split_idlest_reg)(struct clk_omap_reg *, s16 *, u8 *); +struct autofs_packet_hdr { + int proto_version; + int type; }; -struct clk_iomap { - struct regmap *regmap; - void *mem; +struct autofs_packet_expire { + struct autofs_packet_hdr hdr; + int len; + char name[256]; }; -struct clk_init_item { - struct device_node *node; - void *user; - ti_of_clk_init_cb_t func; - struct list_head link; -}; +struct msg_msgseg; -struct ti_dra7_xbar_data { - void *iomem; - struct dma_router dmarouter; - struct mutex mutex; - unsigned long *dma_inuse; - u16 safe_val; - u32 xbar_requests; - u32 dma_requests; - u32 dma_offset; +struct msg_msg { + struct list_head m_list; + long m_type; + size_t m_ts; + struct msg_msgseg *next; + void *security; }; -struct ti_am335x_xbar_data { - void *iomem; - struct dma_router dmarouter; - u32 xbar_events; - u32 dma_requests; +struct msg_msgseg { + struct msg_msgseg *next; }; -struct ti_dra7_xbar_map { - u16 xbar_in; - int xbar_out; +struct rsa_mpi_key { + MPI n; + MPI e; + MPI d; + MPI p; + MPI q; + MPI dp; + MPI dq; + MPI qinv; }; -struct ti_am335x_xbar_map { - u16 dma_line; - u8 mux_val; +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 spm_reg_data { - const u16 *reg_offset; - u32 spm_cfg; - u32 spm_dly; - u32 pmic_dly; - u32 pmic_data[2]; - u32 avs_ctl; - u32 avs_limit; - u8 seq[64]; - u8 start_index[4]; +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 pm_sleep_mode { - PM_SLEEP_MODE_STBY = 0, - PM_SLEEP_MODE_RET = 1, - PM_SLEEP_MODE_SPC = 2, - PM_SLEEP_MODE_PC = 3, - PM_SLEEP_MODE_NR = 4, +enum prep_dispatch { + PREP_DISPATCH_OK = 0, + PREP_DISPATCH_NO_TAG = 1, + PREP_DISPATCH_NO_BUDGET = 2, }; -enum spm_reg { - SPM_REG_CFG = 0, - SPM_REG_SPM_CTL = 1, - SPM_REG_DLY = 2, - SPM_REG_PMIC_DLY = 3, - SPM_REG_PMIC_DATA_0 = 4, - SPM_REG_PMIC_DATA_1 = 5, - SPM_REG_VCTL = 6, - SPM_REG_SEQ_ENTRY = 7, - SPM_REG_SPM_STS = 8, - SPM_REG_PMIC_STS = 9, - SPM_REG_AVS_CTL = 10, - SPM_REG_AVS_LIMIT = 11, - SPM_REG_NR = 12, +struct blk_mq_qe_pair { + struct list_head node; + struct request_queue *q; + struct elevator_type *type; }; -struct spm_driver_data { - void *reg_base; - const struct spm_reg_data *reg_data; +typedef bool busy_tag_iter_fn(struct request *, void *); + +struct flush_busy_ctx_data { + struct blk_mq_hw_ctx *hctx; + struct list_head *list; }; -struct tegra_fuse; +struct dispatch_rq_data { + struct blk_mq_hw_ctx *hctx; + struct request *rq; +}; -struct tegra_sku_info; +struct blk_expired_data { + bool has_timedout_rq; + unsigned long next; + unsigned long timeout_start; +}; -struct tegra_fuse_info; +struct rq_iter_data { + struct blk_mq_hw_ctx *hctx; + bool has_rq; +}; -struct nvmem_cell_lookup; +struct mq_inflight { + struct block_device *part; + unsigned int inflight[2]; +}; -struct tegra_fuse_soc { - void (*init)(struct tegra_fuse *); - void (*speedo_init)(struct tegra_sku_info *); - int (*probe)(struct tegra_fuse *); - const struct tegra_fuse_info *info; - const struct nvmem_cell_lookup *lookups; - unsigned int num_lookups; - const struct nvmem_cell_info *cells; - unsigned int num_cells; - const struct nvmem_keepout *keepouts; - unsigned int num_keepouts; - const struct attribute_group *soc_attr_group; - bool clk_suspend_on; +struct blk_rq_wait { + struct completion done; + blk_status_t ret; }; -struct tegra_fuse { - struct device *dev; - void *base; - phys_addr_t phys; - struct clk *clk; - struct reset_control *rst; - u32 (*read_early)(struct tegra_fuse *, unsigned int); - u32 (*read)(struct tegra_fuse *, unsigned int); - const struct tegra_fuse_soc *soc; - struct { - struct mutex lock; - struct completion wait; - struct dma_chan *chan; - struct dma_slave_config config; - dma_addr_t phys; - u32 *virt; - } apbdma; - struct nvmem_device *nvmem; - struct nvmem_cell_lookup *lookups; +struct io_buffer { + struct list_head list; + __u64 addr; + __u32 len; + __u16 bid; + __u16 bgid; }; -enum tegra_revision { - TEGRA_REVISION_UNKNOWN = 0, - TEGRA_REVISION_A01 = 1, - TEGRA_REVISION_A02 = 2, - TEGRA_REVISION_A03 = 3, - TEGRA_REVISION_A03p = 4, - TEGRA_REVISION_A04 = 5, - TEGRA_REVISION_MAX = 6, +struct io_uring_buf_ring; + +struct io_buffer_list { + union { + struct list_head buf_list; + struct { + struct page **buf_pages; + struct io_uring_buf_ring *buf_ring; + }; + struct callback_head rcu; + }; + __u16 bgid; + __u16 buf_nr_pages; + __u16 nr_entries; + __u16 head; + __u16 mask; + __u8 is_mapped; + __u8 is_mmap; + __u8 is_ready; }; -enum tegra_platform { - TEGRA_PLATFORM_SILICON = 0, - TEGRA_PLATFORM_QT = 1, - TEGRA_PLATFORM_SYSTEM_FPGA = 2, - TEGRA_PLATFORM_UNIT_FPGA = 3, - TEGRA_PLATFORM_ASIM_QT = 4, - TEGRA_PLATFORM_ASIM_LINSIM = 5, - TEGRA_PLATFORM_DSIM_ASIM_LINSIM = 6, - TEGRA_PLATFORM_VERIFICATION_SIMULATION = 7, - TEGRA_PLATFORM_VDK = 8, - TEGRA_PLATFORM_VSP = 9, - TEGRA_PLATFORM_MAX = 10, +struct io_uring_buf { + __u64 addr; + __u32 len; + __u16 bid; + __u16 resv; }; -struct tegra_sku_info { - int sku_id; - int cpu_process_id; - int cpu_speedo_id; - int cpu_speedo_value; - int cpu_iddq_value; - int soc_process_id; - int soc_speedo_id; - int soc_speedo_value; - int gpu_process_id; - int gpu_speedo_id; - int gpu_speedo_value; - enum tegra_revision revision; - enum tegra_platform platform; +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 tegra_fuse_info { - u32 (*read)(struct tegra_fuse *, unsigned int); - unsigned int size; - unsigned int spare; +struct io_rw { + struct kiocb kiocb; + u64 addr; + u32 len; + rwf_t flags; }; -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 io_rw_state { + struct iov_iter iter; + struct iov_iter_state iter_state; + struct iovec fast_iov[8]; + long: 32; }; -struct dbx500_regulator_info { - struct regulator_desc desc; - bool is_enabled; - u16 epod_id; - bool is_ramret; - bool exclude_from_power_state; +struct io_async_rw { + struct io_rw_state s; + const struct iovec *free_iovec; + size_t bytes_done; + struct wait_page_queue wpq; + long: 32; }; -struct uniphier_regulator_soc_data { - int nclks; - const char * const *clock_names; - int nrsts; - const char * const *reset_names; - const struct regulator_desc *desc; - const struct regmap_config *regconf; +struct wait_page_key { + struct folio *folio; + int bit_nr; + int page_match; }; -struct uniphier_regulator_priv { - struct clk_bulk_data clk[2]; - struct reset_control *rst[2]; - const struct uniphier_regulator_soc_data *data; +struct owl_sirq_params { + bool reg_shared; + u16 reg_offset[3]; }; -struct sunplus_uart_port { - struct uart_port port; - struct clk *clk; - struct reset_control *rstc; +struct owl_sirq_chip_data { + const struct owl_sirq_params *params; + void *base; + raw_spinlock_t lock; + u32 ext_irqs[3]; }; -struct host1x_firewall { - struct host1x_job *job; - struct device *dev; - unsigned int num_relocs; - struct host1x_reloc *reloc; - struct host1x_bo *cmdbuf; - unsigned int offset; - u32 words; - u32 class; - u32 reg; - u32 mask; - u32 count; +struct aic_chip_data { + u32 ext_irqs; }; -struct drm_mode_rmfb_work { - struct work_struct work; - struct list_head fbs; +struct mtk_sysirq_chip_data { + raw_spinlock_t lock; + u32 nr_intpol_bases; + void **intpol_bases; + u32 *intpol_words; + u8 *intpol_idx; + u16 *which_word; }; -struct drm_mode_fb_cmd { - __u32 fb_id; - __u32 width; - __u32 height; - __u32 pitch; - __u32 bpp; - __u32 depth; - __u32 handle; +struct sp_intctl { + void *g0; + void *g1; + struct irq_domain *domain; + raw_spinlock_t lock; + unsigned long states[1]; }; -struct drm_mode_fb_dirty_cmd { - __u32 fb_id; - __u32 flags; - __u32 color; - __u32 num_clips; - __u64 clips_ptr; +enum { + _IS_EDGE = 0, + _IS_LOW = 1, + _IS_ACTIVE = 2, }; -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 phy_meson_gxl_usb2_priv { + struct regmap *regmap; + enum phy_mode mode; + int is_enabled; + struct clk *clk; + struct reset_control *reset; }; -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 uniphier_u3hsphy_param { + struct { + int reg_no; + int msb; + int lsb; + } field; + u8 value; }; -struct aggregate_device; +struct uniphier_u3hsphy_priv; -struct component { - struct list_head node; - struct aggregate_device *adev; - bool bound; - const struct component_ops *ops; - int subcomponent; - struct device *dev; +struct uniphier_u3hsphy_trim_param; + +struct uniphier_u3hsphy_soc_data { + bool is_legacy; + int nparams; + const struct uniphier_u3hsphy_param param[4]; + u32 config0; + u32 config1; + void (*trim_func)(struct uniphier_u3hsphy_priv *, u32 *, struct uniphier_u3hsphy_trim_param *); }; -struct component_match; +struct uniphier_u3hsphy_priv { + struct device *dev; + void *base; + struct clk *clk; + struct clk *clk_parent; + struct clk *clk_ext; + struct clk *clk_parent_gio; + struct reset_control *rst; + struct reset_control *rst_parent; + struct reset_control *rst_parent_gio; + struct regulator *vbus; + const struct uniphier_u3hsphy_soc_data *data; +}; -struct aggregate_device { - struct list_head node; - bool bound; - const struct component_master_ops *ops; - struct device *parent; - struct component_match *match; +struct uniphier_u3hsphy_trim_param { + unsigned int rterm; + unsigned int sel_t; + unsigned int hs_i; }; -struct component_match_array; +enum meson_reg_type { + MESON_REG_PULLEN = 0, + MESON_REG_PULL = 1, + MESON_REG_DIR = 2, + MESON_REG_OUT = 3, + MESON_REG_IN = 4, + MESON_REG_DS = 5, + MESON_NUM_REG = 6, +}; -struct component_match { - size_t alloc; - size_t num; - struct component_match_array *compare; +enum meson_pinconf_drv { + MESON_PINCONF_DRV_500UA = 0, + MESON_PINCONF_DRV_2500UA = 1, + MESON_PINCONF_DRV_3000UA = 2, + MESON_PINCONF_DRV_4000UA = 3, }; -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 pm8xxx_gpio { + struct device *dev; + struct regmap *regmap; + struct pinctrl_dev *pctrl; + struct gpio_chip chip; + struct pinctrl_desc desc; + unsigned int npins; }; -struct twl_mapping; +struct pm8xxx_pin_data___2 { + unsigned int reg; + u8 power_source; + u8 mode; + bool open_drain; + bool output_value; + u8 bias; + u8 pull_up_strength; + u8 output_strength; + bool disable; + u8 function; + bool inverted; +}; -struct twl_client; +struct mvebu_gpio_chip; -struct twl_private { - bool ready; - u32 twl_idcode; - unsigned int twl_id; - struct twl_mapping *twl_map; - struct twl_client *twl_modules; +struct mvebu_pwm { + struct regmap *regs; + u32 offset; + unsigned long clk_rate; + struct gpio_desc *gpiod; + struct pwm_chip chip; + spinlock_t lock; + struct mvebu_gpio_chip *mvchip; + u32 blink_select; + u32 blink_on_duration; + u32 blink_off_duration; }; -struct twl_mapping { - unsigned char sid; - unsigned char base; +struct mvebu_gpio_chip { + struct gpio_chip chip; + struct regmap *regs; + u32 offset; + struct regmap *percpu_regs; + int irqbase; + struct irq_domain *domain; + int soc_variant; + struct clk *clk; + struct mvebu_pwm *mvpwm; + u32 out_reg; + u32 io_conf_reg; + u32 blink_en_reg; + u32 in_pol_reg; + u32 edge_mask_regs[4]; + u32 level_mask_regs[4]; }; -struct twl_client { - struct i2c_client *client; - struct regmap *regmap; +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 twl4030_module_ids { - TWL4030_MODULE_AUDIO_VOICE = 9, - TWL4030_MODULE_GPIO = 10, - TWL4030_MODULE_INTBR = 11, - TWL4030_MODULE_TEST = 12, - TWL4030_MODULE_KEYPAD = 13, - TWL4030_MODULE_MADC = 14, - TWL4030_MODULE_INTERRUPTS = 15, - TWL4030_MODULE_PRECHARGE = 16, - TWL4030_MODULE_BACKUP = 17, - TWL4030_MODULE_INT = 18, - TWL5031_MODULE_ACCESSORY = 19, - TWL5031_MODULE_INTERRUPTS = 20, - TWL4030_MODULE_LAST = 21, +struct pci_bus_resource { + struct list_head list; + struct resource *res; + unsigned int flags; }; -enum stmfx_functions { - STMFX_FUNC_GPIO = 1, - STMFX_FUNC_ALTGPIO_LOW = 2, - STMFX_FUNC_ALTGPIO_HIGH = 4, - STMFX_FUNC_TS = 8, - STMFX_FUNC_IDD = 16, +struct walk_rcec_data { + struct pci_dev *rcec; + int (*user_callback)(struct pci_dev *, void *); + void *user_data; }; -enum stmfx_irqs { - STMFX_REG_IRQ_SRC_EN_GPIO = 0, - STMFX_REG_IRQ_SRC_EN_IDD = 1, - STMFX_REG_IRQ_SRC_EN_ERROR = 2, - STMFX_REG_IRQ_SRC_EN_TS_DET = 3, - STMFX_REG_IRQ_SRC_EN_TS_NE = 4, - STMFX_REG_IRQ_SRC_EN_TS_TH = 5, - STMFX_REG_IRQ_SRC_EN_TS_FULL = 6, - STMFX_REG_IRQ_SRC_EN_TS_OVF = 7, - STMFX_REG_IRQ_SRC_MAX = 8, +struct simplefb_format { + const char *name; + u32 bits_per_pixel; + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + u32 fourcc; }; -struct stmfx { - struct device *dev; - struct regmap *map; - struct regulator *vdd; - int irq; - struct irq_domain *irq_domain; - struct mutex lock; - u8 irq_src; - u8 bkp_sysctrl; - u8 bkp_irqoutpin; +struct simplefb_params { + u32 width; + u32 height; + u32 stride; + struct simplefb_format *format; }; -struct igb_reg_info { - u32 ofs; - char *name; +struct simplefb_par { + u32 palette[16]; + resource_size_t base; + resource_size_t size; + struct resource *mem; + bool clks_enabled; + unsigned int clk_count; + struct clk **clks; + bool regulators_enabled; + u32 regulator_count; + struct regulator **regulators; }; -enum e1000_ring_flags_t { - IGB_RING_FLAG_RX_3K_BUFFER = 0, - IGB_RING_FLAG_RX_BUILD_SKB_ENABLED = 1, - IGB_RING_FLAG_RX_SCTP_CSUM = 2, - IGB_RING_FLAG_RX_LB_VLAN_BSWAP = 3, - IGB_RING_FLAG_TX_CTX_IDX = 4, - IGB_RING_FLAG_TX_DETECT_HANG = 5, +struct scmi_driver { + const char *name; + int (*probe)(struct scmi_device *); + void (*remove)(struct scmi_device *); + const struct scmi_device_id *id_table; + struct device_driver driver; }; -enum igb_tx_flags { - IGB_TX_FLAGS_VLAN = 1, - IGB_TX_FLAGS_TSO = 2, - IGB_TX_FLAGS_TSTAMP = 4, - IGB_TX_FLAGS_IPV4 = 16, - IGB_TX_FLAGS_CSUM = 32, +struct scmi_clk { + u32 id; + struct device *dev; + struct clk_hw hw; + const struct scmi_clock_info *info; + const struct scmi_protocol_handle *ph; + struct clk_parent_data *parent_data; }; -enum tx_queue_prio { - TX_QUEUE_PRIO_HIGH = 0, - TX_QUEUE_PRIO_LOW = 1, +enum { + REFCLK___2 = 0, + SYSPLL___2 = 1, + CPUPLL___2 = 2, + AVPLL_B1___2 = 3, + AVPLL_B2___2 = 4, + AVPLL_B3___2 = 5, + AVPLL_B4___2 = 6, + AVPLL_B5___2 = 7, + AVPLL_B6___2 = 8, + AVPLL_B7___2 = 9, + AVPLL_B8___2 = 10, }; -enum queue_mode { - QUEUE_MODE_STRICT_PRIORITY = 0, - QUEUE_MODE_STREAM_RESERVATION = 1, +struct clk_busy_divider { + struct clk_divider div; + const struct clk_ops *div_ops; + void *reg; + u8 shift; }; -enum latency_range { - lowest_latency = 0, - low_latency = 1, - bulk_latency = 2, - latency_invalid = 255, +struct clk_busy_mux { + struct clk_mux mux; + const struct clk_ops *mux_ops; + void *reg; + u8 shift; }; -struct my_u0 { - __le64 a; - __le64 b; +struct clk_gate_exclusive { + struct clk_gate gate; + u32 exclusive_mask; }; -struct e1000_adv_tx_context_desc { - __le32 vlan_macip_lens; - __le32 seqnum_seed; - __le32 type_tucmd_mlhl; - __le32 mss_l4len_idx; +enum imx_pll14xx_type { + PLL_1416X = 0, + PLL_1443X = 1, }; -struct tc_taprio_caps { - bool supports_queue_max_sdu: 1; - bool gate_mask_per_txq: 1; - bool broken_mqprio: 1; +struct imx_pll14xx_rate_table; + +struct imx_pll14xx_clk { + enum imx_pll14xx_type type; + const struct imx_pll14xx_rate_table *rate_table; + int rate_count; + int flags; }; -struct flow_match_eth_addrs { - struct flow_dissector_key_eth_addrs *key; - struct flow_dissector_key_eth_addrs *mask; +struct imx_pll14xx_rate_table { + unsigned int rate; + unsigned int pdiv; + unsigned int mdiv; + unsigned int sdiv; + unsigned int kdiv; }; -struct flow_match_basic { - struct flow_dissector_key_basic *key; - struct flow_dissector_key_basic *mask; +struct clk_pll14xx { + struct clk_hw hw; + void *base; + enum imx_pll14xx_type type; + const struct imx_pll14xx_rate_table *rate_table; + int rate_count; }; -struct flow_match_vlan { - struct flow_dissector_key_vlan *key; - struct flow_dissector_key_vlan *mask; +struct ti_syscon_gate_clk_data { + char *name; + u32 offset; + u32 bit_idx; }; -struct usb_conn_info { - struct device *dev; - struct usb_role_switch *role_sw; - enum usb_role last_role; - struct regulator *vbus; - struct delayed_work dw_det; - unsigned long debounce_jiffies; - struct gpio_desc *id_gpiod; - struct gpio_desc *vbus_gpiod; - int id_irq; - int vbus_irq; - struct power_supply_desc desc; - struct power_supply *charger; - bool initial_detection; +struct ti_syscon_gate_clk_priv { + struct clk_hw hw; + struct regmap *regmap; + u32 reg; + u32 idx; }; -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; +enum { + A375_CPU_TO_DDR = 0, + A375_CPU_TO_L2 = 1, }; -struct tps65910_rtc { - struct rtc_device *rtc; - int irq; +struct div6_clock { + struct clk_hw hw; + void *reg; + unsigned int div; + u32 src_mask; + struct notifier_block nb; + u8 parents[0]; }; -struct p2wi { - struct i2c_adapter adapter; - struct completion complete; - unsigned int status; - void *regs; - struct clk *clk; - struct reset_control *rstc; - int slave_addr; - long: 32; +struct exynos_clkout_variant { + u32 mux_mask; }; -struct at91_reset_data { - u32 reset_args; - u32 n_device_reset; - u8 device_reset_min_id; - u8 device_reset_max_id; +struct exynos_clkout { + struct clk_gate gate; + struct clk_mux mux; + spinlock_t slock; + void *reg; + struct device_node *np; + u32 pmu_debug_save; + struct clk_hw_onecell_data data; }; -enum reset_type { - RESET_TYPE_GENERAL = 0, - RESET_TYPE_WAKEUP = 1, - RESET_TYPE_WATCHDOG = 2, - RESET_TYPE_SOFTWARE = 3, - RESET_TYPE_USER = 4, - RESET_TYPE_CPU_FAIL = 6, - RESET_TYPE_XTAL_FAIL = 7, - RESET_TYPE_ULP2 = 8, +struct sun4i_a10_display_clk_data { + bool has_div; + u8 num_rst; + u8 parents; + u8 offset_en; + u8 offset_div; + u8 offset_mux; + u8 offset_rst; + u8 width_div; + u8 width_mux; + u32 flags; }; -struct at91_reset { - void *rstc_base; - void *ramc_base[2]; - void *dev_base; - struct clk *sclk; - const struct at91_reset_data *data; +struct reset_data { + void *reg; + spinlock_t *lock; struct reset_controller_dev rcdev; - spinlock_t lock; - struct notifier_block nb; - u32 args; - u32 ramc_lpr; + u8 offset; }; -struct mode_info { - const char *mode; - u32 magic; - struct list_head list; +struct _ccu_nkm { + unsigned long n; + unsigned long min_n; + unsigned long max_n; + unsigned long k; + unsigned long min_k; + unsigned long max_k; + unsigned long m; + unsigned long min_m; + unsigned long max_m; }; -struct armada_thermal_priv; +struct sun4i_dma_pchan; -struct armada_thermal_data { - void (*init)(struct platform_device *, struct armada_thermal_priv *); - long: 32; - s64 coef_b; - s64 coef_m; - u32 coef_div; - bool inverted; - bool signed_sample; - unsigned int temp_shift; - unsigned int temp_mask; - unsigned int thresh_shift; - unsigned int hyst_shift; - unsigned int hyst_mask; - u32 is_valid_bit; - unsigned int syscon_control0_off; - unsigned int syscon_control1_off; - unsigned int syscon_status_off; - unsigned int dfx_irq_cause_off; - unsigned int dfx_irq_mask_off; - unsigned int dfx_overheat_irq; - unsigned int dfx_server_irq_mask_off; - unsigned int dfx_server_irq_en; - unsigned int cpu_nr; - long: 32; -}; +struct sun4i_dma_promise; -struct armada_thermal_priv { - struct device *dev; - struct regmap *syscon; - char zone_name[20]; - struct mutex update_lock; - struct armada_thermal_data *data; - struct thermal_zone_device *overheat_sensor; - int interrupt_source; - int current_channel; - long current_threshold; - long current_hysteresis; +struct sun4i_dma_contract; + +struct sun4i_dma_vchan { + struct virt_dma_chan vc; + struct dma_slave_config cfg; + struct sun4i_dma_pchan *pchan; + struct sun4i_dma_promise *processing; + struct sun4i_dma_contract *contract; + u8 endpoint; + int is_dedicated; }; -enum drvtype { - LEGACY = 0, - SYSCON = 1, +struct sun4i_dma_pchan { + void *base; + struct sun4i_dma_vchan *vchan; + int is_dedicated; }; -struct armada_drvdata { - enum drvtype type; - union { - struct armada_thermal_priv *priv; - struct thermal_zone_device *tz; - } data; +struct sun4i_dma_promise { + u32 cfg; + u32 para; + dma_addr_t src; + dma_addr_t dst; + size_t len; + struct list_head list; }; -struct armada_thermal_sensor { - struct armada_thermal_priv *priv; - int id; +struct sun4i_dma_contract { + struct virt_dma_desc vd; + struct list_head demands; + struct list_head completed_demands; + bool is_cyclic: 1; + bool use_half_int: 1; }; -struct stpmic1_wdt { - struct stpmic1 *pmic; - struct watchdog_device wdtdev; +struct sun4i_dma_dev { + unsigned long pchans_used[1]; + struct dma_device slave; + struct sun4i_dma_pchan *pchans; + struct sun4i_dma_vchan *vchans; + void *base; + struct clk *clk; + int irq; + spinlock_t lock; }; -struct private_data___2 { - struct list_head node; - cpumask_var_t cpus; - struct device *cpu_dev; - struct cpufreq_frequency_table *freq_table; - bool have_static_opps; - int opp_token; +struct aspeed_uart_routing_selector { + struct device_attribute dev_attr; + uint8_t reg; + uint8_t mask; + uint8_t shift; + const char * const options[0]; }; -struct cpufreq_dt_platform_data { - bool have_governor_per_policy; - unsigned int (*get_intermediate)(struct cpufreq_policy *, unsigned int); - int (*target_intermediate)(struct cpufreq_policy *, unsigned int); - int (*suspend)(struct cpufreq_policy *); - int (*resume)(struct cpufreq_policy *); +struct aspeed_uart_routing { + struct regmap *map; + const struct attribute_group *attr_grp; }; -struct spear_sdhci { - struct clk *clk; +enum fan53555_vendor { + FAN53526_VENDOR_FAIRCHILD = 0, + FAN53555_VENDOR_FAIRCHILD = 1, + FAN53555_VENDOR_ROCKCHIP = 2, + RK8602_VENDOR_ROCKCHIP = 3, + FAN53555_VENDOR_SILERGY = 4, + FAN53526_VENDOR_TCS = 5, }; -struct sdhci_bcm_kona_dev { - struct mutex write_lock; +enum { + FAN53555_VSEL_ID_0 = 0, + FAN53555_VSEL_ID_1 = 1, }; -struct scmi_shared_mem { - __le32 reserved; - __le32 channel_status; - __le32 reserved1[2]; - __le32 flags; - __le32 length; - __le32 msg_header; - u8 msg_payload[0]; +enum { + FAN53526_CHIP_ID_01 = 1, }; -typedef int (*of_init_fn_1_ret)(struct device_node *); +enum { + FAN53526_CHIP_REV_08 = 8, +}; -struct devfreq_event_desc; +enum { + FAN53555_CHIP_ID_00 = 0, + FAN53555_CHIP_ID_01 = 1, + FAN53555_CHIP_ID_02 = 2, + FAN53555_CHIP_ID_03 = 3, + FAN53555_CHIP_ID_04 = 4, + FAN53555_CHIP_ID_05 = 5, + FAN53555_CHIP_ID_08 = 8, +}; -struct devfreq_event_dev { - struct list_head node; - struct device dev; - struct mutex lock; - u32 enable_count; - const struct devfreq_event_desc *desc; - long: 32; +enum { + FAN53555_CHIP_REV_00 = 3, + FAN53555_CHIP_REV_13 = 15, }; -struct devfreq_event_ops; +enum { + RK8600_CHIP_ID_08 = 8, +}; -struct devfreq_event_desc { - const char *name; - u32 event_type; - void *driver_data; - const struct devfreq_event_ops *ops; +enum { + RK8602_CHIP_ID_10 = 10, }; -struct devfreq_event_data; +enum { + SILERGY_SYR82X = 8, + SILERGY_SYR83X = 9, +}; -struct devfreq_event_ops { - int (*enable)(struct devfreq_event_dev *); - int (*disable)(struct devfreq_event_dev *); - int (*reset)(struct devfreq_event_dev *); - int (*set_event)(struct devfreq_event_dev *); - int (*get_event)(struct devfreq_event_dev *, struct devfreq_event_data *); +enum { + TCS4525_CHIP_ID_12 = 12, }; -struct devfreq_event_data { - unsigned long load_count; - unsigned long total_count; +struct fan53555_platform_data { + struct regulator_init_data *regulator; + unsigned int slew_rate; + unsigned int sleep_vsel_id; }; -enum emc_dram_type___2 { - DRAM_TYPE_DDR3 = 0, - DRAM_TYPE_DDR1___2 = 1, - DRAM_TYPE_LPDDR3 = 2, - DRAM_TYPE_DDR2___2 = 3, +struct fan53555_device_info { + enum fan53555_vendor vendor; + struct device *dev; + struct regulator_desc desc; + struct regulator_init_data *regulator; + int chip_id; + int chip_rev; + unsigned int vol_reg; + unsigned int sleep_reg; + unsigned int en_reg; + unsigned int sleep_en_reg; + unsigned int vsel_min; + unsigned int vsel_step; + unsigned int vsel_count; + unsigned int mode_reg; + unsigned int mode_mask; + unsigned int sleep_vol_cache; + unsigned int slew_reg; + unsigned int slew_mask; + const unsigned int *ramp_delay_table; + unsigned int n_ramp_values; + unsigned int slew_rate; }; -enum emc_dll_change { - DLL_CHANGE_NONE = 0, - DLL_CHANGE_ON = 1, - DLL_CHANGE_OFF = 2, +enum { + TPS65090_REGULATOR_DCDC1 = 0, + TPS65090_REGULATOR_DCDC2 = 1, + TPS65090_REGULATOR_DCDC3 = 2, + TPS65090_REGULATOR_FET1 = 3, + TPS65090_REGULATOR_FET2 = 4, + TPS65090_REGULATOR_FET3 = 5, + TPS65090_REGULATOR_FET4 = 6, + TPS65090_REGULATOR_FET5 = 7, + TPS65090_REGULATOR_FET6 = 8, + TPS65090_REGULATOR_FET7 = 9, + TPS65090_REGULATOR_LDO1 = 10, + TPS65090_REGULATOR_LDO2 = 11, + TPS65090_REGULATOR_MAX = 12, }; -enum emc_rate_request_type___2 { - EMC_RATE_DEBUG___2 = 0, - EMC_RATE_ICC___2 = 1, - EMC_RATE_TYPE_MAX___2 = 2, +struct tps65090_regulator_plat_data; + +struct tps65090_platform_data { + int irq_base; + char **supplied_to; + size_t num_supplicants; + int enable_low_current_chrg; + struct tps65090_regulator_plat_data *reg_pdata[12]; }; -struct emc_timing___2 { - unsigned long rate; - u32 emc_burst_data[143]; - u32 emc_auto_cal_config; - u32 emc_auto_cal_config2; - u32 emc_auto_cal_config3; - u32 emc_auto_cal_interval; - u32 emc_bgbias_ctl0; - u32 emc_cfg; - u32 emc_cfg_2; - u32 emc_ctt_term_ctrl; - u32 emc_mode_1; - u32 emc_mode_2; - u32 emc_mode_4; - u32 emc_mode_reset; - u32 emc_mrs_wait_cnt; - u32 emc_sel_dpd_ctrl; - u32 emc_xm2dqspadctrl2; - u32 emc_zcal_cnt_long; - u32 emc_zcal_interval; +struct tps65090_regulator_plat_data { + struct regulator_init_data *reg_init_data; + bool enable_ext_control; + struct gpio_desc *gpiod; + bool overcurrent_wait_valid; + int overcurrent_wait; }; -struct tegra_emc___2 { +struct tps65090_regulator { struct device *dev; - struct tegra_mc *mc; - void *regs; - struct clk *clk; - enum emc_dram_type___2 dram_type; - unsigned int dram_bus_width; - unsigned int dram_num; - struct emc_timing___2 last_timing; - struct emc_timing___2 *timings; - unsigned int num_timings; - struct { - struct dentry *root; - unsigned long min_rate; - unsigned long max_rate; - } debugfs; - struct icc_provider provider; - struct emc_rate_request requested_rate[2]; - struct mutex rate_lock; + struct regulator_desc *desc; + struct regulator_dev *rdev; + bool overcurrent_wait_valid; + int overcurrent_wait; }; -typedef int tegra124_emc_prepare_timing_change_cb(struct tegra_emc___2 *, unsigned long); +struct tps65090 { + struct device *dev; + struct regmap *rmap; + struct regmap_irq_chip_data *irq_data; +}; -typedef void tegra124_emc_complete_timing_change_cb(struct tegra_emc___2 *, unsigned long); +struct zynq_reset_data { + struct regmap *slcr; + struct reset_controller_dev rcdev; + u32 offset; +}; -struct csum_state { - __wsum csum; - size_t off; +struct tegra_uart { + struct clk *clk; + struct reset_control *rst; + int line; }; -struct percpu_free_defer { - struct callback_head rcu; - void __attribute__((btf_type_tag("percpu"))) *ptr; +struct cdns_platform_data { + u32 quirks; }; -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 cdns_uart { + struct uart_port *port; + struct clk *uartclk; + struct clk *pclk; + struct uart_driver *cdns_uart_driver; + unsigned int baud; + struct notifier_block clk_rate_change_nb; + u32 quirks; + bool cts_override; }; -struct debug_reply_data { - struct ethnl_reply_data base; - u32 msg_mask; +struct st_rng_data { + void *base; + struct hwrng ops; }; -struct ipfrag_skb_cb { - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - }; - struct sk_buff *next_frag; - int frag_run_len; +struct drm_print_iterator { + void *data; + ssize_t start; + ssize_t remain; + ssize_t offset; }; -struct bpf_iter__unix { - union { - struct bpf_iter_meta *meta; - }; - union { - struct unix_sock *unix_sk; - }; - uid_t uid; +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; long: 32; }; -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 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; + long: 32; }; -struct unix_stream_read_state { - int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *); - struct socket *socket; - struct msghdr *msg; - struct pipe_inode_info *pipe; - size_t size; - int flags; - unsigned int splice_flags; +struct tegra_shared_plane { + struct tegra_plane base; + struct tegra_windowgroup *wgrp; + long: 32; }; -enum { - IP6_FH_F_FRAG = 1, - IP6_FH_F_AUTH = 2, - IP6_FH_F_SKIP_RH = 4, +struct tegra_display_hub_state { + struct drm_private_state base; + struct tegra_dc *dc; + unsigned long rate; + struct clk *clk; }; -enum { - SVC_HANDSHAKE_TO = 500, +struct max8998_irq_data { + int reg; + int mask; }; enum { - TLS_NO_KEYRING = 0, - TLS_NO_PEERID = 0, - TLS_NO_CERT = 0, - TLS_NO_PRIVKEY = 0, + MAX8998_REG_IRQ1 = 0, + MAX8998_REG_IRQ2 = 1, + MAX8998_REG_IRQ3 = 2, + MAX8998_REG_IRQ4 = 3, + MAX8998_REG_IRQM1 = 4, + MAX8998_REG_IRQM2 = 5, + MAX8998_REG_IRQM3 = 6, + MAX8998_REG_IRQM4 = 7, + MAX8998_REG_STATUS1 = 8, + MAX8998_REG_STATUS2 = 9, + MAX8998_REG_STATUSM1 = 10, + MAX8998_REG_STATUSM2 = 11, + MAX8998_REG_CHGR1 = 12, + MAX8998_REG_CHGR2 = 13, + MAX8998_REG_LDO_ACTIVE_DISCHARGE1 = 14, + MAX8998_REG_LDO_ACTIVE_DISCHARGE2 = 15, + MAX8998_REG_BUCK_ACTIVE_DISCHARGE3 = 16, + MAX8998_REG_ONOFF1 = 17, + MAX8998_REG_ONOFF2 = 18, + MAX8998_REG_ONOFF3 = 19, + MAX8998_REG_ONOFF4 = 20, + MAX8998_REG_BUCK1_VOLTAGE1 = 21, + MAX8998_REG_BUCK1_VOLTAGE2 = 22, + MAX8998_REG_BUCK1_VOLTAGE3 = 23, + MAX8998_REG_BUCK1_VOLTAGE4 = 24, + MAX8998_REG_BUCK2_VOLTAGE1 = 25, + MAX8998_REG_BUCK2_VOLTAGE2 = 26, + MAX8998_REG_BUCK3 = 27, + MAX8998_REG_BUCK4 = 28, + MAX8998_REG_LDO2_LDO3 = 29, + MAX8998_REG_LDO4 = 30, + MAX8998_REG_LDO5 = 31, + MAX8998_REG_LDO6 = 32, + MAX8998_REG_LDO7 = 33, + MAX8998_REG_LDO8_LDO9 = 34, + MAX8998_REG_LDO10_LDO11 = 35, + MAX8998_REG_LDO12 = 36, + MAX8998_REG_LDO13 = 37, + MAX8998_REG_LDO14 = 38, + MAX8998_REG_LDO15 = 39, + MAX8998_REG_LDO16 = 40, + MAX8998_REG_LDO17 = 41, + MAX8998_REG_BKCHR = 42, + MAX8998_REG_LBCNFG1 = 43, + MAX8998_REG_LBCNFG2 = 44, }; -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 completion sk_handshake_done; - struct page *sk_pages[259]; +enum { + MAX8998_IRQ_DCINF = 0, + MAX8998_IRQ_DCINR = 1, + MAX8998_IRQ_JIGF = 2, + MAX8998_IRQ_JIGR = 3, + MAX8998_IRQ_PWRONF = 4, + MAX8998_IRQ_PWRONR = 5, + MAX8998_IRQ_WTSREVNT = 6, + MAX8998_IRQ_SMPLEVNT = 7, + MAX8998_IRQ_ALARM1 = 8, + MAX8998_IRQ_ALARM0 = 9, + MAX8998_IRQ_ONKEY1S = 10, + MAX8998_IRQ_TOPOFFR = 11, + MAX8998_IRQ_DCINOVPR = 12, + MAX8998_IRQ_CHGRSTF = 13, + MAX8998_IRQ_DONER = 14, + MAX8998_IRQ_CHGFAULT = 15, + MAX8998_IRQ_LOBAT1 = 16, + MAX8998_IRQ_LOBAT2 = 17, + MAX8998_IRQ_NR = 18, }; -typedef __be32 rpc_fraghdr; - -typedef void (*tls_done_func_t)(void *, int, key_serial_t); - -struct tls_handshake_args { - struct socket *ta_sock; - tls_done_func_t ta_done; - void *ta_data; - const char *ta_peername; - unsigned int ta_timeout_ms; - key_serial_t ta_keyring; - key_serial_t ta_my_cert; - key_serial_t ta_my_privkey; - unsigned int ta_num_peerids; - key_serial_t ta_my_peerids[5]; -}; +struct max8998_platform_data; -struct group_data { - int limit[21]; - int base[20]; - int permute[258]; - int minLen; - int maxLen; +struct max8998_dev { + struct device *dev; + struct max8998_platform_data *pdata; + struct i2c_client *i2c; + struct i2c_client *rtc; + struct mutex iolock; + struct mutex irqlock; + unsigned int irq_base; + struct irq_domain *irq_domain; + int irq; + int ono; + u8 irq_masks_cur[4]; + u8 irq_masks_cache[4]; + unsigned long type; + bool wakeup; }; -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 bgpio_pdata { + const char *label; + int base; + int ngpio; }; -enum cpio_fields { - C_MAGIC = 0, - C_INO = 1, - C_MODE = 2, - C_UID = 3, - C_GID = 4, - C_NLINK = 5, - C_MTIME = 6, - C_FILESIZE = 7, - C_MAJ = 8, - C_MIN = 9, - C_RMAJ = 10, - C_RMIN = 11, - C_NAMESIZE = 12, - C_CHKSUM = 13, - C_NFIELDS = 14, +enum nand_bbt_block_status { + NAND_BBT_BLOCK_STATUS_UNKNOWN = 0, + NAND_BBT_BLOCK_GOOD = 1, + NAND_BBT_BLOCK_WORN = 2, + NAND_BBT_BLOCK_RESERVED = 3, + NAND_BBT_BLOCK_FACTORY_BAD = 4, + NAND_BBT_BLOCK_NUM_STATUS = 5, }; -struct cpio_data { - void *data; - size_t size; - char name[18]; +enum { + MICRON_ON_DIE_UNSUPPORTED = 0, + MICRON_ON_DIE_SUPPORTED = 1, + MICRON_ON_DIE_MANDATORY = 2, }; -struct fdt_errtabent { - const char *str; +struct nand_onfi_vendor_micron { + u8 two_plane_read; + u8 read_cache; + u8 read_unique_id; + u8 dq_imped; + u8 dq_imped_num_settings; + u8 dq_imped_feat_addr; + u8 rb_pulldown_strength; + u8 rb_pulldown_strength_feat_addr; + u8 rb_pulldown_strength_num_settings; + u8 otp_mode; + u8 otp_page_start; + u8 otp_data_prot_addr; + u8 otp_num_pages; + u8 otp_feat_addr; + u8 read_retry_options; + u8 reserved[72]; + u8 param_revision; }; -struct klist_waiter { - struct list_head list; - struct klist_node *node; - struct task_struct *process; - int woken; +struct micron_on_die_ecc { + bool forced; + bool enabled; + void *rawbuf; }; -struct static_dep_map { - const char *from; - const char *to; +struct micron_nand { + struct micron_on_die_ecc ecc; }; -struct power_state { - struct powerdomain *pwrdm; - u32 next_state; - u32 next_logic_state; - u32 saved_state; - u32 saved_logic_state; - struct list_head node; +struct bcm2835aux_spi { + void *regs; + struct clk *clk; + int irq; + u32 cntl[2]; + const u8 *tx_buf; + u8 *rx_buf; + int tx_len; + int rx_len; + int pending; + u64 count_transfer_polling; + u64 count_transfer_irq; + u64 count_transfer_irq_after_poll; + struct dentry *debugfs_dir; + long: 32; }; -struct regulator_quirk { - struct list_head list; - const struct of_device_id *id; - struct device_node *np; - struct of_phandle_args irq_args; - struct i2c_msg i2c_msg; - bool shared; +struct sun6i_spi_cfg { + unsigned long fifo_depth; + bool has_clk_ctl; + u32 mode_bits; }; -enum KTHREAD_BITS { - KTHREAD_IS_PER_CPU = 0, - KTHREAD_SHOULD_STOP = 1, - KTHREAD_SHOULD_PARK = 2, +struct sun6i_spi { + struct spi_controller *master; + void *base_addr; + dma_addr_t dma_addr_rx; + dma_addr_t dma_addr_tx; + struct clk *hclk; + struct clk *mclk; + struct reset_control *rstc; + struct completion done; + struct completion dma_rx_done; + const u8 *tx_buf; + u8 *rx_buf; + int len; + const struct sun6i_spi_cfg *cfg; }; -enum { - KTW_FREEZABLE = 1, +struct fixed_mdio_bus { + struct mii_bus *mii_bus; + struct list_head phys; }; -struct kthread_create_info { - char *full_name; - int (*threadfn)(void *); - void *data; - int node; - struct task_struct *result; - struct completion *done; - struct list_head list; +struct fixed_phy { + int addr; + struct phy_device *phydev; + struct fixed_phy_status status; + bool no_carrier; + int (*link_update)(struct net_device *, struct fixed_phy_status *); + struct list_head node; + struct gpio_desc *link_gpiod; }; -struct kthread_flush_work { - struct kthread_work work; - struct completion done; +enum fec_txbuf_type { + FEC_TXBUF_T_SKB = 0, + FEC_TXBUF_T_XDP_NDO = 1, + FEC_TXBUF_T_XDP_TX = 2, }; -struct kthread { - unsigned long flags; - unsigned int cpu; - int result; - int (*threadfn)(void *); - void *data; - struct completion parked; - struct completion exited; - char *full_name; +struct fec_stop_mode_gpr { + struct regmap *gpr; + u8 reg; + u8 bit; }; -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 imx_sc_ipc; -struct fgraph_ret_regs; +struct fec_enet_priv_tx_q; -struct pcpu_freelist_node; +struct fec_enet_priv_rx_q; -struct pcpu_freelist_head { - struct pcpu_freelist_node *first; - raw_spinlock_t lock; +struct fec_enet_private { + void *hwp; + struct net_device *netdev; + struct clk *clk_ipg; + struct clk *clk_ahb; + struct clk *clk_ref; + struct clk *clk_enet_out; + struct clk *clk_ptp; + struct clk *clk_2x_txclk; + bool ptp_clk_on; + struct mutex ptp_clk_mutex; + unsigned int num_tx_queues; + unsigned int num_rx_queues; + struct fec_enet_priv_tx_q *tx_queue[3]; + struct fec_enet_priv_rx_q *rx_queue[3]; + unsigned int total_tx_ring_size; + unsigned int total_rx_ring_size; + struct platform_device *pdev; + int dev_id; + struct mii_bus *mii_bus; + uint phy_speed; + phy_interface_t phy_interface; + struct device_node *phy_node; + bool rgmii_txc_dly; + bool rgmii_rxc_dly; + bool rpm_active; + int link; + int full_duplex; + int speed; + int irq[3]; + bool bufdesc_ex; + int pause_flag; + int wol_flag; + int wake_irq; + u32 quirks; + struct napi_struct napi; + int csum_flags; + struct work_struct tx_timeout_work; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_caps; + spinlock_t tmreg_lock; + long: 32; + struct cyclecounter cc; + struct timecounter tc; + u32 cycle_speed; + int hwts_rx_en; + int hwts_tx_en; + struct delayed_work time_keep; + struct regulator *reg_phy; + struct fec_stop_mode_gpr stop_gpr; + struct pm_qos_request pm_qos_req; + unsigned int tx_align; + unsigned int rx_align; + unsigned int rx_pkts_itr; + unsigned int rx_time_itr; + unsigned int tx_pkts_itr; + unsigned int tx_time_itr; + unsigned int itr_clk_rate; + struct ethtool_eee eee; + unsigned int clk_ref_rate; + unsigned int ptp_inc; + int pps_channel; + unsigned int reload_period; + int pps_enable; + unsigned int next_counter; + struct hrtimer perout_timer; + u64 perout_stime; + struct imx_sc_ipc *ipc_handle; + struct bpf_prog *xdp_prog; + u64 ethtool_stats[0]; }; -struct pcpu_freelist { - struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist; - struct pcpu_freelist_head extralist; -}; +struct bufdesc; -struct bpf_lru_list { - struct list_head lists[3]; - unsigned int counts[2]; - struct list_head *next_inactive_rotation; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - raw_spinlock_t lock; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct bufdesc_prop { + int qid; + struct bufdesc *base; + struct bufdesc *last; + struct bufdesc *cur; + void *reg_desc_active; + dma_addr_t dma; + unsigned short ring_size; + unsigned char dsize; + unsigned char dsize_log2; }; -struct bpf_lru_locallist; +struct fec_tx_buffer { + void *buf_p; + enum fec_txbuf_type type; +}; -struct bpf_common_lru { - struct bpf_lru_list lru_list; - struct bpf_lru_locallist __attribute__((btf_type_tag("percpu"))) *local_list; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct fec_enet_priv_tx_q { + struct bufdesc_prop bd; + unsigned char *tx_bounce[1024]; + struct fec_tx_buffer tx_buf[1024]; + unsigned short tx_stop_threshold; + unsigned short tx_wake_threshold; + struct bufdesc *dirty_tx; + char *tso_hdrs; + dma_addr_t tso_hdrs_dma; }; -struct bpf_lru_node; +struct bufdesc { + __le16 cbd_datlen; + __le16 cbd_sc; + __le32 cbd_bufaddr; +}; -typedef bool (*del_from_htab_func)(void *, struct bpf_lru_node *); +struct fec_enet_priv_txrx_info { + int offset; + struct page *page; + struct sk_buff *skb; +}; -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct fec_enet_priv_rx_q { + struct bufdesc_prop bd; + struct fec_enet_priv_txrx_info rx_skb_info[256]; + struct page_pool *page_pool; long: 32; long: 32; long: 32; long: 32; -}; - -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: 32; long: 32; - union { - struct pcpu_freelist freelist; - struct bpf_lru lru; - }; - struct htab_elem * __attribute__((btf_type_tag("percpu"))) *extra_elems; long: 32; - 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: 32; + struct xdp_rxq_info xdp_rxq; + u32 stats[7]; + u8 id; long: 32; long: 32; long: 32; @@ -115385,1242 +118384,1165 @@ struct bpf_htab { long: 32; }; -struct bucket { - struct hlist_nulls_head head; - raw_spinlock_t raw_lock; -}; - -struct pcpu_freelist_node { - struct pcpu_freelist_node *next; -}; - -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; - 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; -}; - -typedef void compound_page_dtor(struct page *); - -enum compound_dtor_id { - NULL_COMPOUND_DTOR = 0, - COMPOUND_PAGE_DTOR = 1, - NR_COMPOUND_DTORS = 2, -}; - -enum pageblock_bits { - PB_migrate = 0, - PB_migrate_end = 2, - PB_migrate_skip = 3, - NR_PAGEBLOCK_BITS = 4, +struct stmmac_stats { + char stat_string[32]; + int sizeof_stat; + int stat_offset; }; -enum zone_flags { - ZONE_BOOSTED_WATERMARK = 0, - ZONE_RECLAIM_ACTIVE = 1, +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 { - ZONELIST_FALLBACK = 0, - MAX_ZONELISTS = 1, +struct stmmac_rx_routing { + u32 reg_mask; + u32 reg_shift; }; -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; +enum packets_types { + PACKET_AVCPQ = 1, + PACKET_PTPQ = 2, + PACKET_DCBCPQ = 3, + PACKET_UPQ = 4, + PACKET_MCBCQ = 5, }; -struct page_frag_cache { - void *va; - __u16 offset; - __u16 size; - unsigned int pagecnt_bias; - bool pfmemalloc; +enum dwmac4_irq_status { + time_stamp_irq = 4096, + mmc_rx_csum_offload_irq = 2048, + mmc_tx_irq = 1024, + mmc_rx_irq = 512, + mmc_irq = 256, + lpi_irq = 32, + pmt_irq = 16, }; -struct fatent_ra { - sector_t cur; - sector_t limit; - unsigned int ra_blocks; - long: 32; - sector_t ra_advance; - sector_t ra_next; - sector_t ra_limit; +struct net_local { + struct net_device *ndev; + bool tx_ping_pong; + bool rx_ping_pong; + u32 next_tx_buf_to_use; + u32 next_rx_buf_to_use; + void *base_addr; + spinlock_t reset_lock; + struct sk_buff *deferred_skb; + struct phy_device *phy_dev; + struct device_node *phy_node; + struct mii_bus *mii_bus; + int last_link; }; -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 usb_led_event { + USB_LED_EVENT_HOST = 0, + USB_LED_EVENT_GADGET = 1, }; -enum limit_by4 { - NFS4_LIMIT_SIZE = 1, - NFS4_LIMIT_BLOCKS = 2, +struct spear_ohci { + struct clk *clk; }; -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, +struct bulk_cb_wrap { + __le32 Signature; + __u32 Tag; + __le32 DataTransferLength; + __u8 Flags; + __u8 Lun; + __u8 Length; + __u8 CDB[16]; }; -enum lock_type4 { - NFS4_UNLOCK_LT = 0, - NFS4_READ_LT = 1, - NFS4_WRITE_LT = 2, - NFS4_READW_LT = 3, - NFS4_WRITEW_LT = 4, +struct bulk_cs_wrap { + __le32 Signature; + __u32 Tag; + __le32 Residue; + __u8 Status; }; -struct compound_hdr { - int32_t status; - uint32_t nops; - __be32 *nops_p; - uint32_t taglen; - char *tag; - uint32_t replen; - u32 minorversion; +struct gpio_keys_button { + unsigned int code; + int gpio; + int active_low; + const char *desc; + unsigned int type; + int wakeup; + int wakeup_event_action; + int debounce_interval; + bool can_disable; + int value; + unsigned int irq; }; -struct read_plus_segment { - enum data_content4 type; +struct gpio_button_data { + const struct gpio_keys_button *button; + struct input_dev *input; + struct gpio_desc *gpiod; + unsigned short *code; + struct hrtimer release_timer; + unsigned int release_delay; + struct delayed_work work; + struct hrtimer debounce_timer; + unsigned int software_debounce; + unsigned int irq; + unsigned int wakeup_trigger_type; + spinlock_t lock; + bool disabled; + bool key_pressed; + bool suspended; + bool debounce_use_hrtimer; long: 32; - uint64_t offset; - union { - struct { - uint64_t length; - } hole; - struct { - uint32_t length; - unsigned int from; - } data; - }; -}; - -union ubifs_dev_desc { - __le32 new; - __le64 huge; }; -struct autofs_dev_ioctl; - -typedef int (*ioctl_fn___2)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *); +struct gpio_keys_platform_data; -struct args_protover { - __u32 version; +struct gpio_keys_drvdata { + const struct gpio_keys_platform_data *pdata; + struct input_dev *input; + struct mutex disable_lock; + unsigned short *keymap; + struct gpio_button_data data[0]; }; -struct args_protosubver { - __u32 sub_version; +struct gpio_keys_platform_data { + const struct gpio_keys_button *buttons; + int nbuttons; + unsigned int poll_interval; + unsigned int rep: 1; + int (*enable)(struct device *); + void (*disable)(struct device *); + const char *name; }; -struct args_openmount { - __u32 devid; +struct tps6586x_rtc { + struct device *dev; + struct rtc_device *rtc; + int irq; + bool irq_en; }; -struct args_ready { - __u32 token; +struct owl_i2c_dev { + struct i2c_adapter adap; + struct i2c_msg *msg; + struct completion msg_complete; + struct clk *clk; + spinlock_t lock; + void *base; + unsigned long clk_rate; + u32 bus_freq; + u32 msg_ptr; + int err; }; -struct args_fail { - __u32 token; - __s32 status; +enum muxtype { + pca954x_ismux = 0, + pca954x_isswi = 1, }; -struct args_setpipefd { - __s32 pipefd; +struct i2c_device_identity { + u16 manufacturer_id; + u16 part_id; + u8 die_revision; }; -struct args_timeout { - __u64 timeout; +struct chip_desc { + u8 nchans; + u8 enable; + u8 has_irq; + enum muxtype muxtype; + struct i2c_device_identity id; }; -struct args_requester { - __u32 uid; - __u32 gid; +struct pca954x { + const struct chip_desc *chip; + u8 last_chan; + s32 idle_state; + struct i2c_client *client; + struct irq_domain *irq; + unsigned int irq_mask; + raw_spinlock_t lock; + struct regulator *supply; }; -struct args_expire { - __u32 how; +struct cpufreq_cooling_device { + u32 last_load; + unsigned int cpufreq_state; + unsigned int max_level; + struct em_perf_domain *em; + struct cpufreq_policy *policy; + struct thermal_cooling_device_ops cooling_ops; + struct freq_qos_request qos_req; }; -struct args_askumount { - __u32 may_umount; +enum tick_broadcast_mode { + TICK_BROADCAST_OFF = 0, + TICK_BROADCAST_ON = 1, + TICK_BROADCAST_FORCE = 2, }; -struct args_in { - __u32 type; +struct mmc_op_cond_busy_data { + struct mmc_host *host; + u32 ocr; + struct mmc_command *cmd; }; -struct args_out { - __u32 devid; - __u32 magic; +struct mmc_busy_data { + struct mmc_card *card; + bool retry_crc_err; + enum mmc_busy_cmd busy_cmd; }; -struct args_ismountpoint { - union { - struct args_in in; - struct args_out out; - }; +enum sdhci_reset_reason { + SDHCI_RESET_FOR_INIT = 0, + SDHCI_RESET_FOR_REQUEST_ERROR = 1, + SDHCI_RESET_FOR_REQUEST_ERROR_DATA_ONLY = 2, + SDHCI_RESET_FOR_TUNING_ABORT = 3, + SDHCI_RESET_FOR_CARD_REMOVED = 4, + SDHCI_RESET_FOR_CQE_RECOVERY = 5, }; -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 sdhci_cookie { + COOKIE_UNMAPPED___3 = 0, + COOKIE_PRE_MAPPED___3 = 1, + COOKIE_MAPPED___3 = 2, }; -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 sdhci_adma2_64_desc { + __le16 cmd; + __le16 len; + __le32 addr_lo; + __le32 addr_hi; }; -struct crypto_sig { - struct crypto_tfm base; +struct clocksource_mmio { + void *reg; + long: 32; + struct clocksource clksrc; }; -enum bio_merge_status { - BIO_MERGE_OK = 0, - BIO_MERGE_NONE = 1, - BIO_MERGE_FAILED = 2, +struct digicolor_timer { + struct clock_event_device ce; + void *base; + u32 ticks_per_jiffy; + int timer_id; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; enum { - IORING_MSG_DATA = 0, - IORING_MSG_SEND_FD = 1, + TIMER_A = 0, + TIMER_B = 1, + TIMER_C = 2, + TIMER_D = 3, + TIMER_E = 4, + TIMER_F = 5, + TIMER_G = 6, + TIMER_H = 7, }; -struct io_msg { - struct file *file; - struct file *src_file; - struct callback_head tw; - u64 user_data; - u32 len; - u32 cmd; - u32 src_fd; - union { - u32 dst_fd; - u32 cqe_flags; - }; - u32 flags; +struct mct_clock_event_device { + struct clock_event_device evt; + unsigned long base; + char name[11]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; }; -struct barrett_ctx_s; - -typedef struct barrett_ctx_s *mpi_barrett_t; - -struct barrett_ctx_s { - MPI m; - int m_copied; - int k; - MPI y; - MPI r1; - MPI r2; - MPI r3; +enum { + MCT_INT_SPI = 0, + MCT_INT_PPI = 1, }; -struct node_groups { - unsigned int id; - union { - unsigned int ngroups; - unsigned int ncpus; - }; +enum bcma_clkmode { + BCMA_CLKMODE_FAST = 0, + BCMA_CLKMODE_DYNAMIC = 1, }; -struct sun6i_r_intc_variant { - u32 first_mux_irq; - u32 nr_mux_irqs; - u32 mux_valid[4]; +struct brcmstb_memc_data { + u32 srpd_offset; }; -struct keystone_irq_device { +struct brcmstb_memc { struct device *dev; - struct irq_chip chip; - u32 mask; - int irq; - struct irq_domain *irqd; - struct regmap *devctrl_regs; - u32 devctrl_offset; - raw_spinlock_t wa_lock; -}; - -struct phy_g12a_mipi_dphy_analog_priv { - struct phy *phy; - struct regmap *regmap; - struct phy_configure_opts_mipi_dphy config; -}; - -enum spear1340_miphy_mode { - SATA = 0, - PCIE = 1, -}; - -struct spear1340_miphy_priv { - enum spear1340_miphy_mode mode; - struct regmap *misc; - struct phy *phy; + void *ddr_ctrl; + unsigned int timeout_cycles; + u32 frequency; + u32 srpd_offset; }; -struct ns_pinctrl_group { - const char *name; - unsigned int *pins; - const unsigned int num_pins; - unsigned int chipsets; +struct iio_demux_table { + unsigned int from; + unsigned int to; + unsigned int length; + struct list_head l; }; -struct ns_pinctrl_function { - const char *name; - const char * const *groups; - const unsigned int num_groups; - unsigned int chipsets; +struct iio_device_config { + unsigned int mode; + unsigned int watermark; + const unsigned long *scan_mask; + unsigned int scan_bytes; + bool scan_timestamp; }; -struct ns_pinctrl { - struct device *dev; - unsigned int chipset_flag; - struct pinctrl_dev *pctldev; - void *base; - struct pinctrl_desc pctldesc; +enum { + NVMEM_ADD = 1, + NVMEM_REMOVE = 2, + NVMEM_CELL_ADD = 3, + NVMEM_CELL_REMOVE = 4, + NVMEM_LAYOUT_ADD = 5, + NVMEM_LAYOUT_REMOVE = 6, }; -struct nmk_function; - -struct nmk_pingroup; - -struct prcm_gpiocr_altcx_pin_desc; - -struct nmk_pinctrl_soc_data { - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const struct nmk_function *functions; - unsigned int nfunctions; - const struct nmk_pingroup *groups; - unsigned int ngroups; - const struct prcm_gpiocr_altcx_pin_desc *altcx_pins; - unsigned int npins_altcx; - const u16 *prcm_gpiocr_registers; +struct nvmem_device { + struct module *owner; + long: 32; + 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; + struct gpio_desc *wp_gpio; + struct nvmem_layout *layout; + void *priv; + long: 32; }; -struct nmk_function { - const char *name; - const char * const *groups; - unsigned int ngroups; +struct nvmem_cell_table { + const char *nvmem_name; + const struct nvmem_cell_info *cells; + size_t ncells; + struct list_head node; }; -struct nmk_pingroup { - struct pingroup grp; - int altsetting; +struct nvmem_cell_entry { + const char *name; + int offset; + size_t raw_len; + int bytes; + int bit_offset; + int nbits; + nvmem_cell_post_process_t read_post_process; + void *priv; + struct device_node *np; + struct nvmem_device *nvmem; + struct list_head node; }; -struct prcm_gpiocr_altcx { - bool used: 1; - u8 reg_index: 2; - u8 control_bit: 5; +struct nvmem_cell { + struct nvmem_cell_entry *entry; + const char *id; + int index; }; -struct prcm_gpiocr_altcx_pin_desc { - unsigned short pin; - struct prcm_gpiocr_altcx altcx[4]; +enum qcom_icc_type { + QCOM_ICC_NOC = 0, + QCOM_ICC_BIMC = 1, + QCOM_ICC_QNOC = 2, }; -struct sh_pfc_gpio_data_reg; - -struct sh_pfc_gpio_pin; - -struct sh_pfc_chip { - struct sh_pfc *pfc; - struct gpio_chip gpio_chip; - struct sh_pfc_window *mem; - struct sh_pfc_gpio_data_reg *regs; - struct sh_pfc_gpio_pin *pins; -}; +struct qcom_icc_node; -struct sh_pfc_gpio_data_reg { - const struct pinmux_data_reg *info; - u32 shadow; +struct qcom_icc_desc { + struct qcom_icc_node * const *nodes; + size_t num_nodes; + const struct rpm_clk_resource *bus_clk_desc; + const char * const *intf_clocks; + size_t num_intf_clocks; + bool keep_alive; + enum qcom_icc_type type; + const struct regmap_config *regmap_cfg; + unsigned int qos_offset; + u16 ab_coeff; + u16 ib_coeff; }; -struct sh_pfc_gpio_pin { - u8 dbit; - u8 dreg; +struct qcom_icc_qos { + u32 areq_prio; + u32 prio_level; + bool limit_commands; + bool ap_owned; + int qos_mode; + int qos_port; + bool urg_fwd_en; }; -enum of_gpio_flags { - OF_GPIO_ACTIVE_LOW = 1, - OF_GPIO_SINGLE_ENDED = 2, - OF_GPIO_OPEN_DRAIN = 4, - OF_GPIO_TRANSITORY = 8, - OF_GPIO_PULL_UP = 16, - OF_GPIO_PULL_DOWN = 32, - OF_GPIO_PULL_DISABLE = 64, +struct qcom_icc_node { + unsigned char *name; + u16 id; + const u16 *links; + u16 num_links; + u16 channels; + u16 buswidth; + const struct rpm_clk_resource *bus_clk_desc; + u64 sum_avg[2]; + u64 max_peak[2]; + int mas_rpm_id; + int slv_rpm_id; + struct qcom_icc_qos qos; + u16 ab_coeff; + u16 ib_coeff; + u32 bus_clk_rate[2]; + long: 32; }; -typedef struct gpio_desc * (*of_find_gpio_quirk)(struct device_node *, const char *, unsigned int, enum of_gpio_flags *); +struct pcpu_gen_cookie; -struct of_rename_gpio { - const char *con_id; - const char *legacy_id; - const char *compatible; +struct gen_cookie { + struct pcpu_gen_cookie __attribute__((btf_type_tag("percpu"))) *local; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + atomic64_t forward_last; + atomic64_t reverse_last; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum of_reconfig_change { - OF_RECONFIG_NO_CHANGE = 0, - OF_RECONFIG_CHANGE_ADD = 1, - OF_RECONFIG_CHANGE_REMOVE = 2, +struct pcpu_gen_cookie { + local_t nesting; + long: 32; + u64 last; }; -struct of_reconfig_data { - struct device_node *dn; - struct property *prop; - struct property *old_prop; +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 twl4030_gpio_platform_data { - bool use_leds; - u8 mmc_cd; - u32 debounce; - u32 pullups; - u32 pulldowns; +struct net_fill_args { + u32 portid; + u32 seq; + int flags; + int cmd; + int nsid; + bool add_ref; + int ref_nsid; }; -struct gpio_twl4030_priv { - struct gpio_chip gpio_chip; - struct mutex mutex; - int irq_base; - unsigned int usage_count; - unsigned int direction; - unsigned int out_state; +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; }; -struct pci_cap_saved_data { - u16 cap_nr; - bool cap_extended; - unsigned int size; - u32 data[0]; +struct netdev_queue_attribute { + struct attribute attr; + ssize_t (*show)(struct netdev_queue *, char *); + ssize_t (*store)(struct netdev_queue *, const char *, size_t); }; -struct pci_cap_saved_state { - struct hlist_node next; - struct pci_cap_saved_data cap; +struct class_attribute { + struct attribute attr; + ssize_t (*show)(const struct class *, const struct class_attribute *, char *); + ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t); }; -struct bcma_driver { - const char *name; - const struct bcma_device_id *id_table; - int (*probe)(struct bcma_device *); - void (*remove)(struct bcma_device *); - int (*suspend)(struct bcma_device *); - int (*resume)(struct bcma_device *); - void (*shutdown)(struct bcma_device *); - struct device_driver drv; +enum ethtool_flags { + ETH_FLAG_TXVLAN = 128, + ETH_FLAG_RXVLAN = 256, + ETH_FLAG_LRO = 32768, + ETH_FLAG_NTUPLE = 134217728, + ETH_FLAG_RXHASH = 268435456, }; -struct clk_sam9260_slow { - struct clk_hw hw; - struct regmap *regmap; +enum ethtool_sfeatures_retval_bits { + ETHTOOL_F_UNSUPPORTED__BIT = 0, + ETHTOOL_F_WISH__BIT = 1, + ETHTOOL_F_COMPAT__BIT = 2, }; -struct at91sam9x5_clk_smd { - struct clk_hw hw; - struct regmap *regmap; +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, }; -struct clk_master_layout { - u32 offset; - u32 mask; - u8 pres_shift; +enum ethtool_fec_config_bits { + ETHTOOL_FEC_NONE_BIT = 0, + ETHTOOL_FEC_AUTO_BIT = 1, + ETHTOOL_FEC_OFF_BIT = 2, + ETHTOOL_FEC_RS_BIT = 3, + ETHTOOL_FEC_BASER_BIT = 4, + ETHTOOL_FEC_LLRS_BIT = 5, }; -struct clk_master_characteristics { - struct clk_range output; - u32 divisors[5]; - u8 have_div3_pres; +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 clk_programmable_layout { - u8 pres_mask; - u8 pres_shift; - u8 css_mask; - u8 have_slck_mck; - u8 is_pres_direct; +struct ethtool_rx_flow_match { + struct flow_dissector dissector; + struct ethtool_rx_flow_key key; + struct ethtool_rx_flow_key mask; }; -struct clk_gating_ctrl { - spinlock_t *lock; - struct clk **gates; - int num_gates; - void *base; - u32 saved_reg; +struct ethtool_devlink_compat { + struct devlink *devlink; + union { + struct ethtool_flash efl; + struct ethtool_drvinfo info; + }; }; -struct qcom_reset_controller { - const struct qcom_reset_map *reset_map; - struct regmap *regmap; - struct reset_controller_dev rcdev; +struct ethtool_value { + __u32 cmd; + __u32 data; }; -struct clk_rpm; - -struct rpm_clk_desc { - struct clk_rpm **clks; - size_t num_clks; +struct ethtool_rx_flow_rule { + struct flow_rule *rule; + unsigned long priv[0]; }; -struct rpm_cc; - -struct clk_rpm { - const int rpm_clk_id; - const int xo_offset; - const bool active_only; - unsigned long rate; - bool enabled; - bool branch; - struct clk_rpm *peer; - struct clk_hw hw; - struct qcom_rpm *rpm; - struct rpm_cc *rpm_cc; +struct ethtool_link_usettings { + struct ethtool_link_settings base; + struct { + __u32 supported[4]; + __u32 advertising[4]; + __u32 lp_advertising[4]; + } link_modes; }; -struct rpm_cc { - struct qcom_rpm *rpm; - struct clk_rpm **clks; - size_t num_clks; - u32 xo_buffer_value; - struct mutex xo_lock; +struct ethtool_rx_flow_spec_input { + const struct ethtool_rx_flow_spec *fs; + u32 rss_ctx; }; -struct samsung_clk_pll { - struct clk_hw hw; - void *lock_reg; - void *con_reg; - unsigned short enable_offs; - unsigned short lock_offs; - enum samsung_pll_type type; - unsigned int rate_count; - const struct samsung_pll_rate_table *rate_table; +struct ethtool_gstrings { + __u32 cmd; + __u32 string_set; + __u32 len; + __u8 data[0]; }; -struct clkgen_mux_data { - u32 offset; - u8 shift; - u8 width; - spinlock_t *lock; - unsigned long clk_flags; - u8 mux_flags; +struct ethtool_perm_addr { + __u32 cmd; + __u32 size; + __u8 data[0]; }; -enum tegra_super_gen { - gen4 = 4, - gen5 = 5, +struct ethtool_sset_info { + __u32 cmd; + __u32 reserved; + __u64 sset_mask; + __u32 data[0]; }; -struct tegra_super_gen_info { - enum tegra_super_gen gen; - const char **sclk_parents; - const char **cclk_g_parents; - const char **cclk_lp_parents; - int num_sclk_parents; - int num_cclk_g_parents; - int num_cclk_lp_parents; +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 uniphier_clk_mux { - struct clk_hw hw; - struct regmap *regmap; - unsigned int reg; - const unsigned int *masks; - const unsigned int *vals; +struct ethtool_get_features_block { + __u32 available; + __u32 requested; + __u32 active; + __u32 never_changed; }; -enum owl_dma_id { - S900_DMA = 0, - S700_DMA = 1, +struct ethtool_gfeatures { + __u32 cmd; + __u32 size; + struct ethtool_get_features_block features[0]; }; -enum owl_dmadesc_offsets { - OWL_DMADESC_NEXT_LLI = 0, - OWL_DMADESC_SADDR = 1, - OWL_DMADESC_DADDR = 2, - OWL_DMADESC_FLEN = 3, - OWL_DMADESC_SRC_STRIDE = 4, - OWL_DMADESC_DST_STRIDE = 5, - OWL_DMADESC_CTRLA = 6, - OWL_DMADESC_CTRLB = 7, - OWL_DMADESC_CONST_NUM = 8, - OWL_DMADESC_SIZE = 9, +struct ethtool_set_features_block { + __u32 valid; + __u32 requested; }; -struct owl_dma_pchan; - -struct owl_dma_txd; - -struct owl_dma_vchan { - struct virt_dma_chan vc; - struct owl_dma_pchan *pchan; - struct owl_dma_txd *txd; - struct dma_slave_config cfg; - u8 drq; +struct ethtool_sfeatures { + __u32 cmd; + __u32 size; + struct ethtool_set_features_block features[0]; }; -struct owl_dma_pchan { - u32 id; - void *base; - struct owl_dma_vchan *vchan; +struct ethtool_per_queue_op { + __u32 cmd; + __u32 sub_command; + __u32 queue_mask[128]; + char data[0]; }; -struct owl_dma_txd { - struct virt_dma_desc vd; - struct list_head lli_list; - bool cyclic; +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 owl_dma_lli { - u32 hw[9]; - dma_addr_t phys; - struct list_head node; +struct udp_tunnel_info { + unsigned short type; + sa_family_t sa_family; + __be16 port; + u8 hw_priv; }; -struct owl_dma { - struct dma_device dma; - void *base; - struct clk *clk; - spinlock_t lock; - struct dma_pool *lli_pool; - int irq; - unsigned int nr_pchans; - struct owl_dma_pchan *pchans; - unsigned int nr_vchans; - struct owl_dma_vchan *vchans; - enum owl_dma_id devid; +struct udp_tunnel_nic_shared { + struct udp_tunnel_nic *udp_tunnel_nic_info; + struct list_head devices; }; -struct meson_ee_pwrc_domain_desc; - -struct meson_ee_pwrc_domain_data { - unsigned int count; - struct meson_ee_pwrc_domain_desc *domains; +struct ip6addrlbl_init_table { + const struct in6_addr *prefix; + int prefixlen; + u32 label; }; -struct meson_ee_pwrc_top_domain; - -struct meson_ee_pwrc_mem_domain; - -struct meson_ee_pwrc_domain; - -struct meson_ee_pwrc_domain_desc { - char *name; - unsigned int reset_names_count; - unsigned int clk_names_count; - struct meson_ee_pwrc_top_domain *top_pd; - unsigned int mem_pd_count; - struct meson_ee_pwrc_mem_domain *mem_pd; - bool (*is_powered_off)(struct meson_ee_pwrc_domain *); +enum { + IFAL_ADDRESS = 1, + IFAL_LABEL = 2, + __IFAL_MAX = 3, }; -struct meson_ee_pwrc_top_domain { - unsigned int sleep_reg; - unsigned int sleep_mask; - unsigned int iso_reg; - unsigned int iso_mask; +struct ip6addrlbl_entry { + struct in6_addr prefix; + int prefixlen; + int ifindex; + int addrtype; + u32 label; + struct hlist_node list; + struct callback_head rcu; }; -struct meson_ee_pwrc_mem_domain { - unsigned int reg; - unsigned int mask; +struct ifaddrlblmsg { + __u8 ifal_family; + __u8 __ifal_reserved; + __u8 ifal_prefixlen; + __u8 ifal_flags; + __u32 ifal_index; + __u32 ifal_seq; }; -struct meson_ee_pwrc; - -struct meson_ee_pwrc_domain { - struct generic_pm_domain base; - bool enabled; - struct meson_ee_pwrc *pwrc; - struct meson_ee_pwrc_domain_desc desc; - struct clk_bulk_data *clks; - int num_clks; - struct reset_control *rstc; - int num_rstc; - long: 32; +struct can_dev_rcv_lists { + struct hlist_head rx[4]; + struct hlist_head rx_sff[2048]; + struct hlist_head rx_eff[1024]; + int entries; }; -struct meson_ee_pwrc { - struct regmap *regmap_ao; - struct regmap *regmap_hhi; - struct meson_ee_pwrc_domain *domains; - struct genpd_onecell_data xlate; +struct can_pkg_stats { + unsigned long jiffies_init; + unsigned long rx_frames; + unsigned long tx_frames; + unsigned long matches; + unsigned long total_rx_rate; + unsigned long total_tx_rate; + unsigned long total_rx_match_ratio; + unsigned long current_rx_rate; + unsigned long current_tx_rate; + unsigned long current_rx_match_ratio; + unsigned long max_rx_rate; + unsigned long max_tx_rate; + unsigned long max_rx_match_ratio; + unsigned long rx_frames_delta; + unsigned long tx_frames_delta; + unsigned long matches_delta; }; -enum device_id { - MAX8973 = 0, - MAX77621 = 1, +struct can_rcv_lists_stats { + unsigned long stats_reset; + unsigned long user_reset; + unsigned long rcv_entries; + unsigned long rcv_entries_max; }; -struct max8973_regulator_platform_data { - struct regulator_init_data *reg_init_data; - unsigned long control_flags; - unsigned long junction_temp_warning; - bool enable_ext_control; - int enable_gpio; - int dvs_gpio; - unsigned int dvs_def_state: 1; +struct can_proto { + int type; + int protocol; + const struct proto_ops *ops; + struct proto *prot; }; -struct max8973_chip { - struct device *dev; - struct regulator_desc desc; - struct regmap *regmap; - bool enable_external_control; - int dvs_gpio; - int lru_index[2]; - int curr_vout_val[2]; - int curr_vout_reg; - int curr_gpio_val; - struct regulator_ops ops; - enum device_id id; - int junction_temp_warning; - int irq; - struct thermal_zone_device *tz_device; +enum { + RX_ERR = 0, + RX_ALL = 1, + RX_FIL = 2, + RX_INV = 3, + RX_MAX = 4, }; -struct meson_reset_param { - int reg_count; - int level_offset; +struct receiver { + struct hlist_node list; + canid_t can_id; + canid_t mask; + unsigned long matches; + void (*func)(struct sk_buff *, void *); + void *data; + char *ident; + struct sock *sk; + struct callback_head rcu; }; -struct meson_reset { - void *reg_base; - const struct meson_reset_param *param; - struct reset_controller_dev rcdev; - spinlock_t lock; -}; +struct j1939_priv; -struct serial_port_device { - struct device dev; - struct uart_port *port; - long: 32; +struct can_ml_priv { + struct can_dev_rcv_lists dev_rcv_lists; + struct j1939_priv *j1939_priv; }; -struct atmel_trng_data { - bool has_half_rate; +struct unix_domain { + struct auth_domain h; }; -struct atmel_trng { - struct clk *clk; - void *base; - struct hwrng rng; - bool has_half_rate; +struct unix_gid { + struct cache_head h; + kuid_t uid; + struct group_info *gi; + struct callback_head rcu; }; -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; +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; long: 32; }; -enum { - RN5T567 = 0, - RN5T618 = 1, - RC5T619 = 2, -}; - -struct sun6i_spi_cfg { - unsigned long fifo_depth; - bool has_clk_ctl; +struct cpu_efficiency { + const char *compatible; + unsigned long efficiency; }; -struct sun6i_spi { - struct spi_controller *master; - void *base_addr; - dma_addr_t dma_addr_rx; - dma_addr_t dma_addr_tx; - struct clk *hclk; - struct clk *mclk; - struct reset_control *rstc; - struct completion done; - const u8 *tx_buf; - u8 *rx_buf; - int len; - const struct sun6i_spi_cfg *cfg; -}; +typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, unsigned long); -struct smsc_hw_stat { - const char *string; - u8 reg; - u8 bits; -}; +typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *); -struct smsc_phy_priv { - unsigned int edpd_enable: 1; - unsigned int edpd_mode_set_by_user: 1; - unsigned int edpd_max_wait_ms; +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 stmmac_stats { - char stat_string[32]; - int sizeof_stat; - int stat_offset; +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]; }; -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, +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 dwc_eth_dwmac_data { - int (*probe)(struct platform_device *, struct plat_stmmacenet_data *, struct stmmac_resources *); - void (*remove)(struct platform_device *); +struct vm_stack { + struct callback_head rcu; + struct vm_struct *stack_vm_area; }; -struct tegra_eqos { - struct device *dev; - void *regs; - struct reset_control *rst; - struct clk *clk_master; - struct clk *clk_slave; - struct clk *clk_tx; - struct clk *clk_rx; - struct gpio_desc *reset; -}; +struct trace_event_data_offsets_task_newtask {}; -struct usb_class { - struct kref kref; - struct class *class; -}; +struct trace_event_data_offsets_task_rename {}; -struct usb_class_driver { - char *name; - char * (*devnode)(const struct device *, umode_t *); - const struct file_operations *fops; - int minor_base; -}; +typedef int (*proc_visitor)(struct task_struct *, void *); -struct tegra_xtal_freq { - unsigned int freq; - u8 enable_delay; - u8 stable_count; - u8 active_delay; - u8 xtal_freq_count; - u16 debounce; +struct clock_read_data { + u64 epoch_ns; + u64 epoch_cyc; + u64 sched_clock_mask; + u64 (*read_sched_clock)(); + u32 mult; + u32 shift; + long: 32; }; -struct tegra_phy_soc_config { - bool utmi_pll_config_in_car_module; - bool has_hostpc; - bool requires_usbmode_setup; - bool requires_extra_tuning_parameters; - bool requires_pmc_ao_power_up; +struct clock_data { + seqcount_latch_t seq; + long: 32; + struct clock_read_data read_data[2]; + ktime_t wrap_kt; + unsigned long rate; + u64 (*actual_read_sched_clock)(); }; -enum tegra_usb_phy_port_speed { - TEGRA_USB_PHY_PORT_SPEED_FULL = 0, - TEGRA_USB_PHY_PORT_SPEED_LOW = 1, - TEGRA_USB_PHY_PORT_SPEED_HIGH = 2, +struct rt_wake_q_head { + struct wake_q_head head; + struct task_struct *rtlock_task; }; -struct tegra_usb_phy { - int irq; - int instance; - const struct tegra_xtal_freq *freq; - void *regs; - void *pad_regs; - struct clk *clk; - struct clk *pll_u; - struct clk *pad_clk; - struct regulator *vbus; - struct regmap *pmc_regmap; - enum usb_dr_mode mode; - void *config; - const struct tegra_phy_soc_config *soc_config; - struct usb_phy *ulpi; - struct usb_phy u_phy; - bool is_legacy_phy; - bool is_ulpi_phy; - struct gpio_desc *reset_gpio; - struct reset_control *pad_rst; - bool wakeup_enabled; - bool pad_wakeup; - bool powered_on; -}; +struct event_trigger_data; -struct tegra_utmip_config { - u8 hssync_start_delay; - u8 elastic_limit; - u8 idle_wait_delay; - u8 term_range_adj; - bool xcvr_setup_use_fuses; - u8 xcvr_setup; - u8 xcvr_lsfslew; - u8 xcvr_lsrslew; - u8 xcvr_hsslew; - u8 hssquelch_level; - u8 hsdiscon_level; +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 *); }; -struct atmel_ehci_priv { - struct clk *iclk; - struct clk *uclk; - bool clocked; -}; +struct event_command; -struct ehci_ci_priv { - struct regulator *reg_vbus; - bool enabled; +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 ci_hdrc_dma_aligned_buffer { - void *kmalloc_ptr; - void *old_xfer_buffer; - u8 data[0]; +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 twl_class { - TWL_4030 = 0, - TWL_6030 = 1, +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 *); }; enum { - REG_SECONDS_REG = 0, - REG_MINUTES_REG = 1, - REG_HOURS_REG = 2, - REG_DAYS_REG = 3, - REG_MONTHS_REG = 4, - REG_YEARS_REG = 5, - REG_WEEKS_REG = 6, - REG_ALARM_SECONDS_REG = 7, - REG_ALARM_MINUTES_REG = 8, - REG_ALARM_HOURS_REG = 9, - REG_ALARM_DAYS_REG = 10, - REG_ALARM_MONTHS_REG = 11, - REG_ALARM_YEARS_REG = 12, - REG_RTC_CTRL_REG = 13, - REG_RTC_STATUS_REG = 14, - REG_RTC_INTERRUPTS_REG = 15, - REG_RTC_COMP_LSB_REG = 16, - REG_RTC_COMP_MSB_REG = 17, + EVENT_TRIGGER_FL_PROBE = 1, }; -struct twl_rtc { - struct device *dev; - struct rtc_device *rtc; - u8 *reg_map; - unsigned char rtc_irq_bits; - bool wake_enabled; - unsigned char irqstat; - enum twl_class class; +struct eprobe_trace_entry_head { + struct trace_entry ent; }; -struct uniphier_fi2c_priv { - struct completion comp; - struct i2c_adapter adap; - void *membase; - struct clk *clk; - unsigned int len; - u8 *buf; - u32 enabled_irqs; - int error; - unsigned int flags; - unsigned int busy_cnt; - unsigned int clk_cycle; - spinlock_t lock; +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 gpio_restart { - struct gpio_desc *reset_gpio; - struct notifier_block restart_handler; - u32 active_delay_ms; - u32 inactive_delay_ms; - u32 wait_delay_ms; +struct eprobe_data { + struct trace_event_file *file; + struct trace_eprobe *ep; }; -enum scmi_sensor_class { - NONE = 0, - UNSPEC = 1, - TEMPERATURE_C = 2, - TEMPERATURE_F = 3, - TEMPERATURE_K = 4, - VOLTAGE___2 = 5, - CURRENT___2 = 6, - POWER = 7, - ENERGY = 8, - CHARGE = 9, - VOLTAMPERE = 10, - NITS = 11, - LUMENS = 12, - LUX = 13, - CANDELAS = 14, - KPA = 15, - PSI = 16, - NEWTON = 17, - CFM = 18, - RPM = 19, - HERTZ = 20, - SECS = 21, - MINS = 22, - HOURS = 23, - DAYS = 24, - WEEKS = 25, - MILS = 26, - INCHES = 27, - FEET = 28, - CUBIC_INCHES = 29, - CUBIC_FEET = 30, - METERS = 31, - CUBIC_CM = 32, - CUBIC_METERS = 33, - LITERS = 34, - FLUID_OUNCES = 35, - RADIANS = 36, - STERADIANS = 37, - REVOLUTIONS = 38, - CYCLES = 39, - GRAVITIES = 40, - OUNCES = 41, - POUNDS = 42, - FOOT_POUNDS = 43, - OUNCE_INCHES = 44, - GAUSS = 45, - GILBERTS = 46, - HENRIES = 47, - FARADS = 48, - OHMS = 49, - SIEMENS = 50, - MOLES = 51, - BECQUERELS = 52, - PPM = 53, - DECIBELS = 54, - DBA = 55, - DBC = 56, - GRAYS = 57, - SIEVERTS = 58, - COLOR_TEMP_K = 59, - BITS = 60, - BYTES = 61, - WORDS = 62, - DWORDS = 63, - QWORDS = 64, - PERCENTAGE = 65, - PASCALS = 66, - COUNTS = 67, - GRAMS = 68, - NEWTON_METERS = 69, - HITS = 70, - MISSES = 71, - RETRIES = 72, - OVERRUNS = 73, - UNDERRUNS = 74, - COLLISIONS = 75, - PACKETS = 76, - MESSAGES = 77, - CHARS = 78, - ERRORS = 79, - CORRECTED_ERRS = 80, - UNCORRECTABLE_ERRS = 81, - SQ_MILS = 82, - SQ_INCHES = 83, - SQ_FEET = 84, - SQ_CM = 85, - SQ_METERS = 86, - RADIANS_SEC = 87, - BPM = 88, - METERS_SEC_SQUARED = 89, - METERS_SEC = 90, - CUBIC_METERS_SEC = 91, - MM_MERCURY = 92, - RADIANS_SEC_SQUARED = 93, - OEM_UNIT = 255, +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 scmi_thermal_sensor { - const struct scmi_protocol_handle *ph; - const struct scmi_sensor_info *info; +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; + long: 32; }; -struct scmi_sensors { - const struct scmi_protocol_handle *ph; - const struct scmi_sensor_info **info[10]; +struct list_lru_memcg { + struct callback_head rcu; + struct list_lru_one node[0]; }; -struct amlogic_thermal_soc_calib_data; +struct list_lru_memcg_table { + struct list_lru_memcg *mlru; + struct mem_cgroup *memcg; +}; -struct amlogic_thermal_data { - int u_efuse_off; - const struct amlogic_thermal_soc_calib_data *calibration_parameters; - const struct regmap_config *regmap_config; +typedef void (*btf_trace_test_pages_isolated)(void *, unsigned long, unsigned long, unsigned long); + +struct trace_event_raw_test_pages_isolated { + struct trace_entry ent; + unsigned long start_pfn; + unsigned long end_pfn; + unsigned long fin_pfn; + char __data[0]; }; -struct amlogic_thermal_soc_calib_data { - int A; - int B; - int m; - int n; +struct trace_event_data_offsets_test_pages_isolated {}; + +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 amlogic_thermal { - struct platform_device *pdev; - const struct amlogic_thermal_data *data; - struct regmap *regmap; - struct regmap *sec_ao_map; - struct clk *clk; - struct thermal_zone_device *tzd; - u32 trim_info; +struct signalfd_ctx { + sigset_t sigmask; }; -enum tegra_state { - TEGRA_C1 = 0, - TEGRA_C7 = 1, - TEGRA_CC6 = 2, - TEGRA_STATE_COUNT = 3, +struct journal_block_tag3_s { + __be32 t_blocknr; + __be32 t_flags; + __be32 t_blocknr_high; + __be32 t_checksum; }; -struct sdhci_s3c_drv_data { - unsigned int sdhci_quirks; - bool no_divider; +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; + long: 32; }; -enum cd_types { - S3C_SDHCI_CD_INTERNAL = 0, - S3C_SDHCI_CD_EXTERNAL = 1, - S3C_SDHCI_CD_GPIO = 2, - S3C_SDHCI_CD_NONE = 3, - S3C_SDHCI_CD_PERMANENT = 4, +struct jbd2_journal_block_tail { + __be32 t_checksum; }; -struct s3c_sdhci_platdata { - unsigned int max_width; - unsigned int host_caps; - unsigned int host_caps2; - unsigned int pm_caps; - enum cd_types cd_type; - int ext_cd_gpio; - bool ext_cd_gpio_invert; - int (*ext_cd_init)(void (*)(struct platform_device *, int)); - int (*ext_cd_cleanup)(void (*)(struct platform_device *, int)); - void (*cfg_gpio)(struct platform_device *, int); +struct jbd2_journal_revoke_header_s { + journal_header_t r_header; + __be32 r_count; }; -struct sdhci_s3c { - struct sdhci_host *host; - struct platform_device *pdev; - struct resource *ioarea; - struct s3c_sdhci_platdata *pdata; - int cur_clk; - int ext_cd_irq; - struct clk *clk_io; - struct clk *clk_bus[4]; - unsigned long clk_rates[4]; - bool no_divider; +typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t; + +struct journal_block_tag_s { + __be32 t_blocknr; + __be16 t_checksum; + __be16 t_flags; + __be32 t_blocknr_high; }; -struct st_mmc_platform_data { - struct reset_control *rstc; - struct clk *icnclk; - void *top_ioaddr; +typedef struct journal_block_tag_s journal_block_tag_t; + +struct recovery_info { + tid_t start_transaction; + tid_t end_transaction; + unsigned long head_block; + int nr_replays; + int nr_revokes; + int nr_revoke_hits; }; -struct nvram_header { - u32 magic; - u32 len; - u32 crc_ver_init; - u32 config_refresh; - u32 config_ncdl; +enum ramfs_param { + Opt_mode___4 = 0, }; -struct atmel_tcb_config { - size_t counter_width; - bool has_gclk; - bool has_qdec; +struct ramfs_mount_opts { + umode_t mode; }; -struct tc_clkevt_device { - struct clock_event_device clkevt; - struct clk *clk; - u32 rate; - void *regs; +struct ramfs_fs_info { + struct ramfs_mount_opts mount_opts; +}; + +struct nfs4_xattr_bucket { + spinlock_t lock; + struct hlist_head hlist; + struct nfs4_xattr_cache *cache; + bool draining; +}; + +struct nfs4_xattr_entry; + +struct nfs4_xattr_cache { + struct kref ref; + struct nfs4_xattr_bucket buckets[64]; + struct list_head lru; + struct list_head dispose; + atomic_long_t nent; + spinlock_t listxattr_lock; + struct inode *inode; + struct nfs4_xattr_entry *listxattr; +}; + +struct nfs4_xattr_entry { + struct kref ref; + struct hlist_node hnode; + struct list_head lru; + struct list_head dispose; + char *xattr_name; + void *xattr_value; + size_t xattr_size; + struct nfs4_xattr_bucket *bucket; + uint32_t flags; +}; + +typedef unsigned long (*count_objects_cb)(struct shrinker *, struct shrink_control *); + +typedef unsigned long (*scan_objects_cb)(struct shrinker *, struct shrink_control *); + +struct idx_node { + struct list_head list; + int iip; + long: 32; + union ubifs_key upper_key; + struct ubifs_idx_node idx; long: 32; +}; + +enum { + Opt_kmsg_bytes = 0, + Opt_err___6 = 1, +}; + +struct pstore_private { + struct list_head list; + struct dentry *dentry; + struct pstore_record *record; + size_t total_size; +}; + +struct pstore_ftrace_record { + unsigned long ip; + unsigned long parent_ip; + u64 ts; +}; + +struct pstore_ftrace_seq_data { + const void *ptr; + size_t off; + size_t size; +}; + +struct crypto_kpp { + unsigned int reqsize; long: 32; long: 32; long: 32; @@ -116633,34 +119555,21 @@ struct tc_clkevt_device { long: 32; long: 32; long: 32; + long: 32; + long: 32; + long: 32; + struct crypto_tfm base; }; -struct atmel_tc { - struct platform_device *pdev; - void *regs; - int id; - const struct atmel_tcb_config *tcb_config; - int irq[3]; - struct clk *clk[3]; - struct clk *slow_clk; - struct list_head node; - bool allocated; -}; - -struct sun5i_timer { - void *base; - struct clk *clk; - struct notifier_block clk_rate_cb; - u32 ticks_per_jiffy; -}; - -struct sun5i_timer_clksrc { - struct sun5i_timer timer; - struct clocksource clksrc; -}; +struct kpp_request; -struct sun5i_timer_clkevt { - struct sun5i_timer timer; +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 *); long: 32; long: 32; long: 32; @@ -116671,36 +119580,26 @@ struct sun5i_timer_clkevt { long: 32; long: 32; long: 32; - struct clock_event_device clkevt; -}; - -struct imx_timer; - -struct imx_gpt_data { - int reg_tstat; - int reg_tcn; - int reg_tcmp; - void (*gpt_setup_tctl)(struct imx_timer *); - void (*gpt_irq_enable)(struct imx_timer *); - void (*gpt_irq_disable)(struct imx_timer *); - void (*gpt_irq_acknowledge)(struct imx_timer *); - int (*set_next_event)(unsigned long, struct clock_event_device *); + struct crypto_alg base; }; -enum imx_gpt_type { - GPT_TYPE_IMX1 = 0, - GPT_TYPE_IMX21 = 1, - GPT_TYPE_IMX31 = 2, - GPT_TYPE_IMX6DL = 3, +struct kpp_request { + struct crypto_async_request base; + struct scatterlist *src; + struct scatterlist *dst; + unsigned int src_len; + unsigned int dst_len; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + void *__ctx[0]; }; -struct imx_timer { - enum imx_gpt_type type; - void *base; - int irq; - struct clk *clk_per; - struct clk *clk_ipg; - const struct imx_gpt_data *gpt; +struct kpp_instance { + void (*free)(struct kpp_instance *); long: 32; long: 32; long: 32; @@ -116711,2513 +119610,2363 @@ struct imx_timer { long: 32; long: 32; long: 32; - struct clock_event_device ced; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct kpp_alg alg; + }; }; -struct bcma_device_id_name { - u16 id; - const char *name; +struct crypto_istat_kpp { + atomic64_t setsecret_cnt; + atomic64_t generate_public_key_cnt; + atomic64_t compute_shared_secret_cnt; + atomic64_t err_cnt; }; -typedef void (*btf_trace_devfreq_frequency)(void *, struct devfreq *, unsigned long, unsigned long); - -typedef void (*btf_trace_devfreq_monitor)(void *, struct devfreq *); - -enum devfreq_parent_dev_type { - DEVFREQ_PARENT_DEV = 0, - CPUFREQ_PARENT_DEV = 1, +struct crypto_kpp_spawn { + struct crypto_spawn base; }; -struct trace_event_raw_devfreq_frequency { - struct trace_entry ent; - u32 __data_loc_dev_name; - unsigned long freq; - unsigned long prev_freq; - unsigned long busy_time; - unsigned long total_time; - char __data[0]; +struct crypto_report_kpp { + char type[64]; }; -struct trace_event_raw_devfreq_monitor { - struct trace_entry ent; - unsigned long freq; - unsigned long busy_time; - unsigned long total_time; - unsigned int polling_ms; - u32 __data_loc_dev_name; - char __data[0]; +enum asn1_class { + ASN1_UNIV = 0, + ASN1_APPL = 1, + ASN1_CONT = 2, + ASN1_PRIV = 3, }; -struct trace_event_data_offsets_devfreq_frequency { - u32 dev_name; +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 trace_event_data_offsets_devfreq_monitor { - u32 dev_name; +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 devfreq_freqs { - unsigned long old; - unsigned long new; +struct io_sync { + struct file *file; + long: 32; + loff_t len; + loff_t off; + int flags; + int mode; }; -struct devfreq_notifier_devres { - struct devfreq *devfreq; - struct notifier_block *nb; - unsigned int list; +enum { + IO_WQ_BIT_EXIT = 0, }; -struct devfreq_passive_data { - struct devfreq *parent; - int (*get_target_freq)(struct devfreq *, unsigned long *); - enum devfreq_parent_dev_type parent_type; - struct devfreq *this; - struct notifier_block nb; - struct list_head cpu_data_list; +enum { + IO_WORKER_F_UP = 1, + IO_WORKER_F_RUNNING = 2, + IO_WORKER_F_FREE = 4, + IO_WORKER_F_BOUND = 8, }; -struct net_device_devres { - struct net_device *ndev; +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 { - 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, + IO_ACCT_STALLED_BIT = 0, }; -struct linkinfo_reply_data { - struct ethnl_reply_data base; - struct ethtool_link_ksettings ksettings; - struct ethtool_link_settings *lsettings; +enum { + IO_WQ_ACCT_BOUND = 0, + IO_WQ_ACCT_UNBOUND = 1, + IO_WQ_ACCT_NR = 2, }; -struct ping_table { - struct hlist_head hash[64]; - spinlock_t lock; +struct io_worker { + refcount_t ref; + unsigned int flags; + struct hlist_nulls_node nulls_node; + struct list_head all_list; + struct task_struct *task; + struct io_wq *wq; + struct io_wq_work *cur_work; + struct io_wq_work *next_work; + raw_spinlock_t lock; + struct completion ref_done; + unsigned long create_state; + struct callback_head create_work; + int create_index; + union { + struct callback_head rcu; + struct work_struct work; + }; }; -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); +typedef struct io_wq_work *free_work_fn(struct io_wq_work *); + +typedef void io_wq_work_fn(struct io_wq_work *); + +struct io_wq_acct { + unsigned int nr_workers; + unsigned int max_workers; + int index; + atomic_t nr_running; + raw_spinlock_t lock; + struct io_wq_work_list work_list; + unsigned long flags; }; -struct ping_iter_state { - struct seq_net_private p; - int bucket; - sa_family_t family; +struct io_wq { + unsigned long state; + free_work_fn *free_work; + io_wq_work_fn *do_work; + struct io_wq_hash *hash; + atomic_t worker_refs; + struct completion worker_done; + struct hlist_node cpuhp_node; + struct task_struct *task; + struct io_wq_acct acct[2]; + raw_spinlock_t lock; + struct hlist_nulls_head free_list; + struct list_head all_list; + struct wait_queue_entry wait; + struct io_wq_work *hash_tail[32]; + cpumask_var_t cpu_mask; }; -struct pingfakehdr { - struct icmphdr icmph; - struct msghdr *msg; - sa_family_t family; - __wsum wcheck; +struct io_cb_cancel_data { + work_cancel_fn *fn; + void *data; + int nr_running; + int nr_pending; + bool cancel_all; }; -struct udp_skb_cb { - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - } header; - __u16 cscov; - __u8 partial_cov; +struct online_data { + unsigned int cpu; + bool online; }; -struct rpcb_info { - u32 rpc_vers; - const struct rpc_procinfo *rpc_proc; +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 { - 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, +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, }; -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; +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, }; -typedef void switchdev_deferred_func_t(struct net_device *, const void *); +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 switchdev_deferred_item { - struct list_head list; - struct net_device *dev; - netdevice_tracker dev_tracker; - switchdev_deferred_func_t *func; - unsigned long data[0]; +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 switchdev_nested_priv { - bool (*check_cb)(const struct net_device *); - bool (*foreign_dev_check_cb)(const struct net_device *, const struct net_device *); - const struct net_device *dev; - struct net_device *lower_dev; +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 netdev_nested_priv { - unsigned char flags; - void *data; +struct lzma_len_dec { + uint16_t choice; + uint16_t choice2; + uint16_t low[128]; + uint16_t mid[128]; + uint16_t high[256]; }; -struct switchdev_brport { - struct net_device *dev; - const void *ctx; - struct notifier_block *atomic_nb; - struct notifier_block *blocking_nb; - bool tx_fwd_offload; +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 switchdev_notifier_brport_info { - struct switchdev_notifier_info info; - const struct switchdev_brport brport; +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 idle_statedata { - u32 cpu_state; - u32 mpu_logic_state; - u32 mpu_state; - u32 mpu_state_vote; +struct mtk_cirq_chip_data { + void *base; + unsigned int ext_irq_start; + unsigned int ext_irq_end; + const u32 *offsets; + struct irq_domain *domain; }; -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 mtk_cirq_regoffs_index { + CIRQ_STA = 0, + CIRQ_ACK = 1, + CIRQ_MASK_SET = 2, + CIRQ_MASK_CLR = 3, + CIRQ_SENS_SET = 4, + CIRQ_SENS_CLR = 5, + CIRQ_POL_SET = 6, + CIRQ_POL_CLR = 7, + CIRQ_CONTROL = 8, }; -struct sys_off_handler { - struct notifier_block nb; - int (*sys_off_cb)(struct sys_off_data *); - void *cb_data; - enum sys_off_mode mode; - bool blocking; - void *list; +struct phy_axg_pcie_priv { + struct phy *phy; + struct phy *analog; + struct regmap *regmap; + struct reset_control *reset; }; -enum msi_domain_ids { - MSI_DEFAULT_DOMAIN = 0, - MSI_SECONDARY_DOMAIN = 1, - MSI_MAX_DEVICE_IRQDOMAINS = 2, +enum pipe3_mode { + PIPE3_MODE_PCIE = 1, + PIPE3_MODE_SATA = 2, + PIPE3_MODE_USBSS = 3, }; -enum msi_desc_filter { - MSI_DESC_ALL = 0, - MSI_DESC_NOTASSOCIATED = 1, - MSI_DESC_ASSOCIATED = 2, +struct pipe3_settings { + u8 ana_interface; + u8 ana_losd; + u8 dig_fastlock; + u8 dig_lbw; + u8 dig_stepcnt; + u8 dig_stl; + u8 dig_thr; + u8 dig_thr_mode; + u8 dig_2ndo_sdm_mode; + u8 dig_hs_rate; + u8 dig_ovrd_hs_rate; + u8 dll_trim_sel; + u8 dll_phint_rate; + u8 eq_lev; + u8 eq_ftc; + u8 eq_ctl; + u8 eq_ovrd_lev; + u8 eq_ovrd_ftc; }; -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, +struct pipe3_dpll_map; + +struct pipe3_data { + enum pipe3_mode mode; + struct pipe3_dpll_map *dpll_map; + struct pipe3_settings settings; }; -struct msi_domain_template { - char name[48]; - struct irq_chip chip; - struct msi_domain_ops ops; - struct msi_domain_info info; +struct pipe3_dpll_params { + u16 m; + u8 n; + u8 freq: 3; + u8 sd; + u32 mf; }; -struct msi_ctrl { - unsigned int domid; - unsigned int first; - unsigned int last; - unsigned int nirqs; +struct pipe3_dpll_map { + unsigned long rate; + struct pipe3_dpll_params params; }; -struct msi_map { - int index; - int virq; +struct ti_pipe3 { + void *pll_ctrl_base; + void *phy_rx; + void *phy_tx; + struct device *dev; + struct device *control_dev; + struct clk *wkupclk; + struct clk *sys_clk; + struct clk *refclk; + struct clk *div_clk; + struct pipe3_dpll_map *dpll_map; + struct regmap *phy_power_syscon; + struct regmap *pcs_syscon; + struct regmap *dpll_reset_syscon; + unsigned int dpll_reset_reg; + unsigned int power_reg; + unsigned int pcie_pcs_reg; + bool sata_refclk_enabled; + enum pipe3_mode mode; + struct pipe3_settings settings; }; -struct rt_waiter_node { - struct rb_node entry; - int prio; - u64 deadline; +enum base_type___2 { + REG = 0, + IO_CTRL = 1, }; -struct rt_mutex_waiter { - struct rt_waiter_node tree; - struct rt_waiter_node pi_tree; - struct task_struct *task; - struct rt_mutex_base *lock; - unsigned int wake_state; - struct ww_acquire_ctx *ww_ctx; +struct nsp_gpio { + struct device *dev; + void *base; + void *io_ctrl; + struct gpio_chip gc; + struct pinctrl_dev *pctl; + struct pinctrl_desc pctldesc; + raw_spinlock_t lock; }; -struct bpf_iter__bpf_map { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; +typedef void (*btf_trace_gpio_direction)(void *, unsigned int, int, int); + +typedef void (*btf_trace_gpio_value)(void *, unsigned int, int, int); + +enum { + GPIOLINE_CHANGED_REQUESTED = 1, + GPIOLINE_CHANGED_RELEASED = 2, + GPIOLINE_CHANGED_CONFIG = 3, }; -struct bpf_iter_seq_map_info { - u32 map_id; +struct gpio_pin_range { + struct list_head node; + struct pinctrl_dev *pctldev; + struct pinctrl_gpio_range range; }; -struct context_tracking { - atomic_t state; - long dynticks_nesting; - long dynticks_nmi_nesting; +struct trace_event_raw_gpio_direction { + struct trace_entry ent; + unsigned int gpio; + int in; + int err; + char __data[0]; }; -typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int); +struct trace_event_raw_gpio_value { + struct trace_entry ent; + unsigned int gpio; + int get; + int value; + char __data[0]; +}; -typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int); +struct gpiod_hog { + struct list_head list; + const char *chip_label; + u16 chip_hwnum; + const char *line_name; + unsigned long lflags; + int dflags; +}; -typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t); +typedef struct { + spinlock_t *lock; + unsigned long flags; +} class_spinlock_irqsave_t; -typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t); +struct gpio_array { + struct gpio_desc **desc; + unsigned int size; + struct gpio_chip *chip; + unsigned long *get_mask; + unsigned long *set_mask; + unsigned long invert_mask[0]; +}; -typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, unsigned long); +struct trace_event_data_offsets_gpio_direction {}; -typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long, unsigned long, unsigned long long, unsigned long, int); +struct trace_event_data_offsets_gpio_value {}; -typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long, long, long); +enum as3711_su2_feedback { + AS3711_SU2_VOLTAGE = 0, + AS3711_SU2_CURR1 = 1, + AS3711_SU2_CURR2 = 2, + AS3711_SU2_CURR3 = 3, + AS3711_SU2_CURR_AUTO = 4, +}; -typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, unsigned long, unsigned long, unsigned long, unsigned long, isolate_mode_t, int); +enum as3711_su2_fbprot { + AS3711_SU2_LX_SD4 = 0, + AS3711_SU2_GPIO2 = 1, + AS3711_SU2_GPIO3 = 2, + AS3711_SU2_GPIO4 = 3, +}; -typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *); +enum as3711_bl_type { + AS3711_BL_SU1 = 0, + AS3711_BL_SU2 = 1, +}; -struct reclaim_stat; +struct as3711_bl_data { + bool powered; + enum as3711_bl_type type; + int brightness; + struct backlight_device *bl; +}; -typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, unsigned long, unsigned long, struct reclaim_stat *, int, int); +struct as3711_bl_pdata; -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; +struct as3711_bl_supply { + struct as3711_bl_data su1; + struct as3711_bl_data su2; + const struct as3711_bl_pdata *pdata; + struct as3711 *as3711; }; -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); +struct as3711_bl_pdata { + bool su1_fb; + int su1_max_uA; + bool su2_fb; + int su2_max_uA; + enum as3711_su2_feedback su2_feedback; + enum as3711_su2_fbprot su2_fbprot; + bool su2_auto_curr1; + bool su2_auto_curr2; + bool su2_auto_curr3; +}; -typedef void (*btf_trace_mm_vmscan_node_reclaim_end)(void *, unsigned long); +struct tegra_ahb { + void *regs; + struct device *dev; + u32 ctx[0]; +}; -typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int); +struct clk_device { + struct clk_hw hw; + void *div_reg; + unsigned int div_mask; + void *en_reg; + int en_bit; + spinlock_t *lock; +}; -enum folio_references { - FOLIOREF_RECLAIM = 0, - FOLIOREF_RECLAIM_CLEAN = 1, - FOLIOREF_KEEP = 2, - FOLIOREF_ACTIVATE = 3, +struct clk_pll___5 { + struct clk_hw hw; + void *reg; + spinlock_t *lock; + int type; }; -enum pgdat_flags { - PGDAT_DIRTY = 0, - PGDAT_WRITEBACK = 1, - PGDAT_RECLAIM_LOCKED = 2, +struct hisi_reset_controller { + spinlock_t lock; + void *membase; + struct reset_controller_dev rcdev; }; -enum lruvec_flags { - LRUVEC_CGROUP_CONGESTED = 0, - LRUVEC_NODE_CONGESTED = 1, +struct parm { + u16 reg_off; + u8 shift; + u8 width; }; -enum scan_balance { - SCAN_EQUAL = 0, - SCAN_FRACT = 1, - SCAN_ANON = 2, - SCAN_FILE = 3, +struct pll_mult_range; + +struct meson_clk_pll_data { + struct parm en; + struct parm m; + struct parm n; + struct parm frac; + struct parm l; + struct parm rst; + struct parm current_en; + struct parm l_detect; + const struct reg_sequence *init_regs; + unsigned int init_count; + const struct pll_params_table *table; + const struct pll_mult_range *range; + u8 flags; }; -struct trace_event_raw_mm_vmscan_kswapd_sleep { - struct trace_entry ent; - int nid; - char __data[0]; +struct pll_mult_range { + unsigned int min; + unsigned int max; }; -struct trace_event_raw_mm_vmscan_kswapd_wake { - struct trace_entry ent; - int nid; - int zid; - int order; - char __data[0]; +struct rockchip_clk_frac { + struct notifier_block clk_nb; + struct clk_fractional_divider div; + struct clk_gate gate; + struct clk_mux mux; + const struct clk_ops *mux_ops; + int mux_frac_idx; + bool rate_change_remuxed; + int rate_change_idx; }; -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 socfpga_pll { + struct clk_gate hw; }; -struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template { - struct trace_entry ent; - int order; - unsigned long gfp_flags; - char __data[0]; +struct ve_reset_data { + void *reg; + spinlock_t *lock; + struct reset_controller_dev rcdev; }; -struct trace_event_raw_mm_vmscan_direct_reclaim_end_template { - struct trace_entry ent; - unsigned long nr_reclaimed; - char __data[0]; +struct gates_data { + unsigned long mask[1]; }; -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 clk_ti_autoidle { + struct clk_omap_reg reg; + u8 shift; + u8 flags; + const char *name; + struct list_head node; }; -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 icst_vco { + unsigned short v; + unsigned char r; + unsigned char s; }; -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 icst_params { + unsigned long ref; + unsigned long vco_max; + unsigned long vco_min; + unsigned short vd_min; + unsigned short vd_max; + unsigned char rd_min; + unsigned char rd_max; + const unsigned char *s2div; + const unsigned char *idx2s; }; -struct trace_event_raw_mm_vmscan_write_folio { - struct trace_entry ent; - unsigned long pfn; - int reclaim_flags; - char __data[0]; +enum icst_control_type { + ICST_VERSATILE = 0, + ICST_INTEGRATOR_AP_CM = 1, + ICST_INTEGRATOR_AP_SYS = 2, + ICST_INTEGRATOR_AP_PCI = 3, + ICST_INTEGRATOR_CP_CM_CORE = 4, + ICST_INTEGRATOR_CP_CM_MEM = 5, + ICST_INTEGRATOR_IM_PD1 = 6, }; -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 clk_icst { + struct clk_hw hw; + struct regmap *map; + u32 vcoreg_off; + u32 lockreg_off; + struct icst_params *params; + unsigned long rate; + enum icst_control_type ctype; }; -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 clk_icst_desc { + const struct icst_params *params; + u32 vco_offset; + u32 lock_offset; }; -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 meson_msr; + +struct meson_msr_id { + struct meson_msr *priv; + unsigned int id; + const char *name; }; -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 meson_msr { + struct regmap *regmap; + struct meson_msr_id msr_table[128]; }; -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; +struct bcm_pmb_pd_data { + const char * const name; + int id; + u8 bus; + u8 device; }; -typedef enum { - PAGE_KEEP = 0, - PAGE_ACTIVATE = 1, - PAGE_SUCCESS = 2, - PAGE_CLEAN = 3, -} pageout_t; +struct bcm_pmb; -struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {}; +struct bcm_pmb_pm_domain { + struct bcm_pmb *pmb; + const struct bcm_pmb_pd_data *data; + struct generic_pm_domain genpd; +}; -struct trace_event_data_offsets_mm_vmscan_kswapd_wake {}; +struct bcm_pmb { + struct device *dev; + void *base; + spinlock_t lock; + bool little_endian; + struct genpd_onecell_data genpd_onecell_data; +}; -struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {}; +struct vring_desc; -struct trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {}; +typedef struct vring_desc vring_desc_t; -struct trace_event_data_offsets_mm_vmscan_direct_reclaim_end_template {}; +struct vring_avail; -struct trace_event_data_offsets_mm_shrink_slab_start {}; +typedef struct vring_avail vring_avail_t; -struct trace_event_data_offsets_mm_shrink_slab_end {}; +struct vring_used; -struct trace_event_data_offsets_mm_vmscan_lru_isolate {}; +typedef struct vring_used vring_used_t; -struct trace_event_data_offsets_mm_vmscan_write_folio {}; +struct vring { + unsigned int num; + vring_desc_t *desc; + vring_avail_t *avail; + vring_used_t *used; +}; -struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {}; +struct vring_desc_state_split; -struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {}; +struct vring_desc_extra; -struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {}; +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 trace_event_data_offsets_mm_vmscan_throttled {}; +struct vring_packed_desc; -struct simple_xattr { - struct rb_node rb_node; - char *name; - size_t size; - char value[0]; -}; +struct vring_packed_desc_event; -struct xattr_name { - char name[256]; +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 xattr_ctx { +struct vring_virtqueue { + struct virtqueue vq; + bool packed_ring; + bool use_dma_api; + bool weak_barriers; + bool broken; + bool indirect; + bool event; + bool premapped; + bool do_unmap; + unsigned int free_head; + unsigned int num_added; + u16 last_used_idx; + bool event_triggered; union { - const void __attribute__((btf_type_tag("user"))) *cvalue; - void __attribute__((btf_type_tag("user"))) *value; + struct vring_virtqueue_split split; + struct vring_virtqueue_packed packed; }; - void *kvalue; - size_t size; - struct xattr_name *kname; - unsigned int flags; + bool (*notify)(struct virtqueue *); + bool we_own_ring; + struct device *dma_dev; }; -struct posix_acl_xattr_header { - __le32 a_version; +struct vring_desc { + __virtio64 addr; + __virtio32 len; + __virtio16 flags; + __virtio16 next; }; -struct posix_acl_xattr_entry { - __le16 e_tag; - __le16 e_perm; - __le32 e_id; +struct vring_avail { + __virtio16 flags; + __virtio16 idx; + __virtio16 ring[0]; }; -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 vring_used_elem { + __virtio32 id; + __virtio32 len; }; -struct idmap_msg { - __u8 im_type; - __u8 im_conv; - char im_name[128]; - __u32 im_id; - __u8 im_status; -}; +typedef struct vring_used_elem vring_used_elem_t; -struct idmap_legacy_upcalldata { - struct rpc_pipe_msg pipe_msg; - struct idmap_msg idmap_msg; - struct key *authkey; - struct idmap *idmap; +struct vring_used { + __virtio16 flags; + __virtio16 idx; + vring_used_elem_t ring[0]; }; -enum { - Opt_find_uid = 0, - Opt_find_gid = 1, - Opt_find_user = 2, - Opt_find_group = 3, - Opt_find_err = 4, +struct vring_desc_state_split { + void *data; + struct vring_desc *indir_desc; }; -struct shmid_kernel { - struct kern_ipc_perm shm_perm; - struct file *shm_file; - unsigned long shm_nattch; - unsigned long shm_segsz; - long: 32; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct vring_desc_extra { + dma_addr_t addr; + u32 len; + u16 flags; + u16 next; }; -typedef unsigned short __kernel_ipc_pid_t; - -struct shmid_ds { - struct ipc_perm shm_perm; - int shm_segsz; - __kernel_old_time_t shm_atime; - __kernel_old_time_t shm_dtime; - __kernel_old_time_t shm_ctime; - __kernel_ipc_pid_t shm_cpid; - __kernel_ipc_pid_t shm_lpid; - unsigned short shm_nattch; - unsigned short shm_unused; - void *shm_unused2; - void *shm_unused3; +struct vring_packed_desc { + __le64 addr; + __le32 len; + __le16 id; + __le16 flags; }; -struct shm_file_data { - int id; - struct ipc_namespace *ns; - struct file *file; - const struct vm_operations_struct *vm_ops; +struct vring_packed_desc_event { + __le16 off_wrap; + __le16 flags; }; -struct shmid64_ds { - struct ipc64_perm shm_perm; - __kernel_size_t shm_segsz; - unsigned long shm_atime; - unsigned long shm_atime_high; - unsigned long shm_dtime; - unsigned long shm_dtime_high; - unsigned long shm_ctime; - unsigned long shm_ctime_high; - __kernel_pid_t shm_cpid; - __kernel_pid_t shm_lpid; - unsigned long shm_nattch; - unsigned long __unused4; - unsigned long __unused5; +struct vring_desc_state_packed { + void *data; + struct vring_packed_desc *indir_desc; + u16 num; + u16 last; }; -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; +enum { + RN5T567 = 0, + RN5T618 = 1, + RC5T619 = 2, }; -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 rn5t618 { + struct regmap *regmap; + struct device *dev; + long variant; + int irq; + struct regmap_irq_chip_data *irq_data; }; -struct shminfo { - int shmmax; - int shmmin; - int shmmni; - int shmseg; - int shmall; +struct sp_reset { + struct reset_controller_dev rcdev; + struct notifier_block notifier; + void *base; }; -enum { - BLK_MQ_UNIQUE_TAG_BITS = 16, - BLK_MQ_UNIQUE_TAG_MASK = 65535, +struct uniphier8250_priv { + int line; + struct clk *clk; + spinlock_t atomic_write_lock; }; -struct sbq_wait { - struct sbitmap_queue *sbq; - struct wait_queue_entry wait; +struct sunplus_uart_port { + struct uart_port port; + struct clk *clk; + struct reset_control *rstc; }; -struct bt_iter_data { - struct blk_mq_hw_ctx *hctx; - struct request_queue *q; - busy_tag_iter_fn *fn; - void *data; - bool reserved; +struct stm32_rng_data { + uint max_clock_rate; + u32 cr; + u32 nscr; + u32 htcr; + bool has_cond_reset; }; -struct bt_tags_iter_data { - struct blk_mq_tags *tags; - busy_tag_iter_fn *fn; - void *data; - unsigned int flags; +struct stm32_rng_config { + u32 cr; + u32 nscr; + u32 htcr; }; -struct io_rename { - struct file *file; - int old_dfd; - int new_dfd; - struct filename *oldpath; - struct filename *newpath; - int flags; +struct stm32_rng_private { + struct hwrng rng; + void *base; + struct clk *clk; + struct reset_control *rst; + struct stm32_rng_config pm_conf; + const struct stm32_rng_data *data; + bool ced; + bool lock_conf; }; -struct io_unlink { - struct file *file; - int dfd; - int flags; - struct filename *filename; +struct drm_gem_close { + __u32 handle; + __u32 pad; }; -struct io_mkdir { - struct file *file; - int dfd; - umode_t mode; - struct filename *filename; +struct drm_gem_flink { + __u32 handle; + __u32 name; }; -struct io_link { - struct file *file; - int old_dfd; - int new_dfd; - struct filename *oldpath; - struct filename *newpath; - int flags; +struct drm_gem_open { + __u32 name; + __u32 handle; + __u64 size; }; -struct icu_chip_data { - int nr_irqs; - unsigned int virq_base; - unsigned int cascade_irq; - void *reg_status; - void *reg_mask; - unsigned int conf_enable; - unsigned int conf_disable; - unsigned int conf_mask; - unsigned int conf2_mask; - unsigned int clr_mfp_irq_base; - unsigned int clr_mfp_hwirq; - struct irq_domain *domain; +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 mmp_intc_conf { - unsigned int conf_enable; - unsigned int conf_disable; - unsigned int conf_mask; - unsigned int conf2_mask; +enum drm_lspcon_mode { + DRM_LSPCON_MODE_INVALID = 0, + DRM_LSPCON_MODE_LS = 1, + DRM_LSPCON_MODE_PCON = 2, }; -struct vf610_mscm_ir_chip_data { - void *mscm_ir_base; - u16 cpu_mask; - u16 saved_irsprc[112]; - bool is_nvic; +struct vic_config { + const char *firmware; + unsigned int version; + bool supports_sid; }; -struct sp_intctl { - void *g0; - void *g1; - struct irq_domain *domain; - raw_spinlock_t lock; - unsigned long states[1]; +struct falcon_firmware_section { + unsigned long offset; + size_t size; }; -enum { - _IS_EDGE = 0, - _IS_LOW = 1, - _IS_ACTIVE = 2, +struct falcon_firmware { + const struct firmware *firmware; + dma_addr_t iova; + dma_addr_t phys; + void *virt; + size_t size; + struct falcon_firmware_section bin_data; + struct falcon_firmware_section data; + struct falcon_firmware_section code; }; -struct armada375_cluster_phy { - struct phy *phy; - void *reg; - bool use_usb3; - int phy_provided; +struct falcon { + struct device *dev; + void *regs; + struct falcon_firmware firmware; }; -enum abx500_gpio_pull_updown { - ABX500_GPIO_PULL_DOWN = 0, - ABX500_GPIO_PULL_NONE = 1, - ABX500_GPIO_PULL_UP = 3, +struct vic { + struct falcon falcon; + void *regs; + struct tegra_drm_client client; + struct host1x_channel *channel; + struct device *dev; + struct clk *clk; + struct reset_control *rst; + bool can_use_context; + const struct vic_config *config; }; -enum abx500_pin_func { - ABX500_DEFAULT = 0, - ABX500_ALT_A = 1, - ABX500_ALT_B = 2, - ABX500_ALT_C = 3, +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 abx500_pinctrl { - struct device *dev; - struct pinctrl_dev *pctldev; - struct abx500_pinctrl_soc_data *soc; - struct gpio_chip chip; - struct ab8500 *parent; - struct abx500_gpio_irq_cluster *irq_cluster; - int irq_cluster_size; +struct software_node_ref_args { + const struct software_node *node; + unsigned int nargs; + u64 args[8]; }; -typedef struct irq_chip * (*gpio_get_irq_chip_cb_t)(unsigned int); - -struct davinci_gpio_regs { - u32 dir; - u32 out_data; - u32 set_data; - u32 clr_data; - u32 in_data; - u32 set_rising; - u32 clr_rising; - u32 set_falling; - u32 clr_falling; - u32 intstat; +struct regmap_irq_chip_data { + struct mutex lock; + struct irq_chip irq_chip; + struct regmap *map; + const struct regmap_irq_chip *chip; + int irq_base; + struct irq_domain *domain; + int irq; + int wake_count; + void *status_reg_buf; + unsigned int *main_status_buf; + unsigned int *status_buf; + unsigned int *mask_buf; + unsigned int *mask_buf_def; + unsigned int *wake_buf; + unsigned int *type_buf; + unsigned int *type_buf_def; + unsigned int **config_buf; + unsigned int irq_reg_stride; + unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int); + unsigned int clear_status: 1; }; -struct davinci_gpio_controller { - struct gpio_chip chip; - struct irq_domain *irq_domain; - spinlock_t lock; - void *regs[5]; - int gpio_unbanked; - int irqs[32]; - struct davinci_gpio_regs context[5]; - u32 binten_context; +struct prcm_data { + int nsubdevs; + const struct mfd_cell *subdevs; }; -struct davinci_gpio_irq_data { - void *regs; - struct davinci_gpio_controller *chip; - int bank_num; +struct abx500_ops { + int (*get_chip_id)(struct device *); + int (*get_register)(struct device *, u8, u8, u8 *); + int (*set_register)(struct device *, u8, u8, u8); + int (*get_register_page)(struct device *, u8, u8, u8 *, u8); + int (*set_register_page)(struct device *, u8, u8, u8 *, u8); + int (*mask_and_set_register)(struct device *, u8, u8, u8, u8); + int (*event_registers_startup_state_get)(struct device *, u8 *); + int (*startup_irq_enabled)(struct device *, unsigned int); + void (*dump_all_banks)(struct device *); }; -struct davinci_gpio_platform_data { - bool no_auto_base; - u32 base; - u32 ngpio; - u32 gpio_unbanked; +struct reg_value; + +struct reg_property { + const char *name; + const struct reg_value *values; + size_t num_values; + u32 def_value; + u32 set_value; }; -struct zynq_platform_data { - const char *label; - u32 quirks; - u16 ngpio; - int max_bank; - int bank_min[6]; - int bank_max[6]; +struct reg_value { + u32 of_value; + u32 reg_value; }; -struct gpio_regs___2 { - u32 datamsw[6]; - u32 datalsw[6]; - u32 dirm[6]; - u32 outen[6]; - u32 int_en[6]; - u32 int_dis[6]; - u32 int_type[6]; - u32 int_polarity[6]; - u32 int_any[6]; +struct sensor_device_attribute { + struct device_attribute dev_attr; + int index; }; -struct zynq_gpio { - struct gpio_chip chip; - void *base_addr; - struct clk *clk; - int irq; - const struct zynq_platform_data *p_data; - struct gpio_regs___2 context; - spinlock_t dirlock; +enum ahci_imx_type { + AHCI_IMX53 = 0, + AHCI_IMX6Q = 1, + AHCI_IMX6QP = 2, + AHCI_IMX8QM = 3, }; -struct pcie_pme_service_data { - spinlock_t lock; - struct pcie_device *srv; - struct work_struct work; - bool noirq; +enum { + IMX_TIMER1MS = 224, + IMX_P0PHYCR = 376, + IMX_P0PHYCR_TEST_PDDQ = 1048576, + IMX_P0PHYCR_CR_READ = 524288, + IMX_P0PHYCR_CR_WRITE = 262144, + IMX_P0PHYCR_CR_CAP_DATA = 131072, + IMX_P0PHYCR_CR_CAP_ADDR = 65536, + IMX_P0PHYSR = 380, + IMX_P0PHYSR_CR_ACK = 262144, + IMX_P0PHYSR_CR_DATA_OUT = 65535, + IMX_LANE0_OUT_STAT = 8195, + IMX_LANE0_OUT_STAT_RX_PLL_STATE = 2, + IMX_CLOCK_RESET = 32575, + IMX_CLOCK_RESET_RESET = 1, + IMX8QM_SATA_PHY_RX_IMPED_RATIO_OFFSET = 3, + IMX8QM_SATA_PHY_TX_IMPED_RATIO_OFFSET = 9, + IMX8QM_SATA_PHY_IMPED_RATIO_85OHM = 108, + IMX8QM_LPCG_PHYX2_OFFSET = 0, + IMX8QM_CSR_PHYX2_OFFSET = 589824, + IMX8QM_CSR_PHYX1_OFFSET = 655360, + IMX8QM_CSR_PHYX_STTS0_OFFSET = 4, + IMX8QM_CSR_PCIEA_OFFSET = 720896, + IMX8QM_CSR_PCIEB_OFFSET = 786432, + IMX8QM_CSR_SATA_OFFSET = 851968, + IMX8QM_CSR_PCIE_CTRL2_OFFSET = 8, + IMX8QM_CSR_MISC_OFFSET = 917504, + IMX8QM_LPCG_PHYX2_PCLK0_MASK = 196608, + IMX8QM_LPCG_PHYX2_PCLK1_MASK = 3145728, + IMX8QM_PHY_APB_RSTN_0 = 1, + IMX8QM_PHY_MODE_SATA = 524288, + IMX8QM_PHY_MODE_MASK = 1966080, + IMX8QM_PHY_PIPE_RSTN_0 = 16777216, + IMX8QM_PHY_PIPE_RSTN_OVERRIDE_0 = 33554432, + IMX8QM_PHY_PIPE_RSTN_1 = 67108864, + IMX8QM_PHY_PIPE_RSTN_OVERRIDE_1 = 134217728, + IMX8QM_STTS0_LANE0_TX_PLL_LOCK = 16, + IMX8QM_MISC_IOB_RXENA = 1, + IMX8QM_MISC_IOB_TXENA = 2, + IMX8QM_MISC_PHYX1_EPCS_SEL = 4096, + IMX8QM_MISC_CLKREQN_OUT_OVERRIDE_1 = 16777216, + IMX8QM_MISC_CLKREQN_OUT_OVERRIDE_0 = 33554432, + IMX8QM_MISC_CLKREQN_IN_OVERRIDE_1 = 268435456, + IMX8QM_MISC_CLKREQN_IN_OVERRIDE_0 = 536870912, + IMX8QM_SATA_CTRL_RESET_N = 4096, + IMX8QM_SATA_CTRL_EPCS_PHYRESET_N = 128, + IMX8QM_CTRL_BUTTON_RST_N = 2097152, + IMX8QM_CTRL_POWER_UP_RST_N = 8388608, + IMX8QM_CTRL_LTSSM_ENABLE = 16, }; -struct dw_pcie_ep_func { - struct list_head list; - u8 func_no; - u8 msi_cap; - u8 msix_cap; +enum { + SATA_PHY_CR_CLOCK_CRCMP_LT_LIMIT = 1, + SATA_PHY_CR_CLOCK_DAC_CTL = 8, + SATA_PHY_CR_CLOCK_RTUNE_CTL = 9, + SATA_PHY_CR_CLOCK_ADC_OUT = 10, + SATA_PHY_CR_CLOCK_MPLL_TST = 23, }; -struct pci_epf_msix_tbl { - u64 msg_addr; - u32 msg_data; - u32 vector_ctrl; +struct imx_ahci_priv { + struct platform_device *ahci_pdev; + enum ahci_imx_type type; + struct clk *sata_clk; + struct clk *sata_ref_clk; + struct clk *ahb_clk; + struct clk *epcs_tx_clk; + struct clk *epcs_rx_clk; + struct clk *phy_apbclk; + struct clk *phy_pclk0; + struct clk *phy_pclk1; + void *phy_base; + struct gpio_desc *clkreq_gpiod; + struct regmap *gpr; + bool no_device; + bool first_time; + u32 phy_params; + u32 imped_ratio; }; -struct simplefb_format { - const char *name; - u32 bits_per_pixel; - struct fb_bitfield red; - struct fb_bitfield green; - struct fb_bitfield blue; - struct fb_bitfield transp; - u32 fourcc; +struct sfdp_bfpt_read { + u32 hwcaps; + u32 supported_dword; + u32 supported_bit; + u32 settings_dword; + u32 settings_shift; + enum spi_nor_protocol proto; }; -struct simplefb_params { - u32 width; - u32 height; - u32 stride; - struct simplefb_format *format; +struct sfdp_bfpt_erase { + u32 dword; + u32 shift; }; -struct simplefb_par { - u32 palette[16]; - resource_size_t base; - resource_size_t size; - struct resource *mem; - bool clks_enabled; - unsigned int clk_count; - struct clk **clks; - bool regulators_enabled; - u32 regulator_count; - struct regulator **regulators; +struct sfdp_4bait { + u32 hwcaps; + u32 supported_bit; }; -struct clk_gate_exclusive { - struct clk_gate gate; - u32 exclusive_mask; +struct sfdp_header { + u32 signature; + u8 minor; + u8 major; + u8 nph; + u8 unused; + struct sfdp_parameter_header bfpt_header; }; -struct multi_mux { - struct clk_hw *hw1; - struct clk_hw *hw2; +struct xgmac_stats { + char stat_string[32]; + int stat_offset; + bool is_reg; }; -struct clk_stm32_securiy { - u32 offset; - u8 bit_idx; - unsigned long scmi_id; +struct xgmac_extra_stats { + unsigned long tx_jabber; + unsigned long tx_frame_flushed; + unsigned long tx_payload_error; + unsigned long tx_ip_header_error; + unsigned long tx_local_fault; + unsigned long tx_remote_fault; + unsigned long rx_watchdog; + unsigned long rx_da_filter_fail; + unsigned long rx_payload_error; + unsigned long rx_ip_header_error; + unsigned long tx_process_stopped; + unsigned long rx_buf_unav; + unsigned long rx_process_stopped; + unsigned long tx_early; + unsigned long fatal_bus_error; }; -enum security_clk { - SECF_NONE = 0, - SECF_LPTIM2 = 1, - SECF_LPTIM3 = 2, - SECF_VREF = 3, - SECF_DCMIPP = 4, - SECF_USBPHY = 5, - SECF_TZC = 6, - SECF_ETZPC = 7, - SECF_IWDG1 = 8, - SECF_BSEC = 9, - SECF_STGENC = 10, - SECF_STGENRO = 11, - SECF_USART1 = 12, - SECF_USART2 = 13, - SECF_SPI4 = 14, - SECF_SPI5 = 15, - SECF_I2C3 = 16, - SECF_I2C4 = 17, - SECF_I2C5 = 18, - SECF_TIM12 = 19, - SECF_TIM13 = 20, - SECF_TIM14 = 21, - SECF_TIM15 = 22, - SECF_TIM16 = 23, - SECF_TIM17 = 24, - SECF_DMA3 = 25, - SECF_DMAMUX2 = 26, - SECF_ADC1 = 27, - SECF_ADC2 = 28, - SECF_USBO = 29, - SECF_TSC = 30, - SECF_PKA = 31, - SECF_SAES = 32, - SECF_CRYP1 = 33, - SECF_HASH1 = 34, - SECF_RNG1 = 35, - SECF_BKPSRAM = 36, - SECF_MCE = 37, - SECF_FMC = 38, - SECF_QSPI = 39, - SECF_SDMMC1 = 40, - SECF_SDMMC2 = 41, - SECF_ETH1CK = 42, - SECF_ETH1TX = 43, - SECF_ETH1RX = 44, - SECF_ETH1MAC = 45, - SECF_ETH1STP = 46, - SECF_ETH2CK = 47, - SECF_ETH2TX = 48, - SECF_ETH2RX = 49, - SECF_ETH2MAC = 50, - SECF_ETH2STP = 51, - SECF_MCO1 = 52, - SECF_MCO2 = 53, +struct xgmac_dma_desc; + +struct xgmac_priv { + struct xgmac_dma_desc *dma_rx; + struct sk_buff **rx_skbuff; + unsigned int rx_tail; + unsigned int rx_head; + struct xgmac_dma_desc *dma_tx; + struct sk_buff **tx_skbuff; + unsigned int tx_head; + unsigned int tx_tail; + int tx_irq_cnt; + void *base; + unsigned int dma_buf_sz; + dma_addr_t dma_rx_phy; + dma_addr_t dma_tx_phy; + struct net_device *dev; + struct device *device; + long: 32; + struct napi_struct napi; + int max_macs; + struct xgmac_extra_stats xstats; + spinlock_t stats_lock; + int pmt_irq; + char rx_pause; + char tx_pause; + int wolopts; + struct work_struct tx_timeout_work; }; -struct tegra_emc; - -typedef int tegra124_emc_prepare_timing_change_cb___2(struct tegra_emc *, unsigned long); - -typedef void tegra124_emc_complete_timing_change_cb___2(struct tegra_emc *, unsigned long); - -struct emc_timing___3; - -struct tegra_clk_emc___2 { - struct clk_hw hw; - void *clk_regs; - struct clk *prev_parent; - bool changing_timing; - struct device_node *emc_node; - struct tegra_emc *emc; - int num_timings; - struct emc_timing___3 *timings; - spinlock_t *lock; - tegra124_emc_prepare_timing_change_cb___2 *prepare_timing_change; - tegra124_emc_complete_timing_change_cb___2 *complete_timing_change; +struct xgmac_dma_desc { + __le32 flags; + __le32 buf_size; + __le32 buf1_addr; + __le32 buf2_addr; + __le32 ext_status; + __le32 res[3]; }; -struct emc_timing___3 { - unsigned long rate; - unsigned long parent_rate; - u8 parent_index; - struct clk *parent; - u32 ram_code; +enum vcap_selection { + VCAP_SEL_ENTRY = 1, + VCAP_SEL_ACTION = 2, + VCAP_SEL_COUNTER = 4, + VCAP_SEL_ALL = 255, }; -enum zynq_clk { - armpll = 0, - ddrpll = 1, - iopll = 2, - cpu_6or4x = 3, - cpu_3or2x = 4, - cpu_2x = 5, - cpu_1x = 6, - ddr2x = 7, - ddr3x = 8, - dci = 9, - lqspi = 10, - smc = 11, - pcap = 12, - gem0 = 13, - gem1 = 14, - fclk0 = 15, - fclk1 = 16, - fclk2 = 17, - fclk3 = 18, - can0 = 19, - can1 = 20, - sdio0 = 21, - sdio1 = 22, - uart0 = 23, - uart1 = 24, - spi0 = 25, - spi1 = 26, - dma = 27, - usb0_aper = 28, - usb1_aper = 29, - gem0_aper = 30, - gem1_aper = 31, - sdio0_aper = 32, - sdio1_aper = 33, - spi0_aper = 34, - spi1_aper = 35, - can0_aper = 36, - can1_aper = 37, - i2c0_aper = 38, - i2c1_aper = 39, - uart0_aper = 40, - uart1_aper = 41, - gpio_aper = 42, - lqspi_aper = 43, - smc_aper = 44, - swdt = 45, - dbg_trc = 46, - dbg_apb = 47, - clk_max = 48, +enum vcap_command { + VCAP_CMD_WRITE = 0, + VCAP_CMD_READ = 1, + VCAP_CMD_MOVE_DOWN = 2, + VCAP_CMD_MOVE_UP = 3, + VCAP_CMD_INITIALIZE = 4, }; -enum stm32_dma_width { - STM32_DMA_BYTE = 0, - STM32_DMA_HALF_WORD = 1, - STM32_DMA_WORD = 2, +enum vcap_rule_state { + VCAP_RS_PERMANENT = 0, + VCAP_RS_ENABLED = 1, + VCAP_RS_DISABLED = 2, }; -enum stm32_dma_burst_size { - STM32_DMA_BURST_SINGLE = 0, - STM32_DMA_BURST_INCR4 = 1, - STM32_DMA_BURST_INCR8 = 2, - STM32_DMA_BURST_INCR16 = 3, +enum vcap_field_type { + VCAP_FIELD_BIT = 0, + VCAP_FIELD_U32 = 1, + VCAP_FIELD_U48 = 2, + VCAP_FIELD_U56 = 3, + VCAP_FIELD_U64 = 4, + VCAP_FIELD_U72 = 5, + VCAP_FIELD_U112 = 6, + VCAP_FIELD_U128 = 7, }; -struct stm32_dma_chan_reg { - u32 dma_lisr; - u32 dma_hisr; - u32 dma_lifcr; - u32 dma_hifcr; - u32 dma_scr; - u32 dma_sndtr; - u32 dma_spar; - u32 dma_sm0ar; - u32 dma_sm1ar; - u32 dma_sfcr; +enum vcap_action_field { + VCAP_AF_NO_VALUE = 0, + VCAP_AF_ACL_ID = 1, + VCAP_AF_CLS_VID_SEL = 2, + VCAP_AF_CNT_ID = 3, + VCAP_AF_COPY_PORT_NUM = 4, + VCAP_AF_COPY_QUEUE_NUM = 5, + VCAP_AF_CPU_COPY_ENA = 6, + VCAP_AF_CPU_QU = 7, + VCAP_AF_CPU_QUEUE_NUM = 8, + VCAP_AF_CUSTOM_ACE_TYPE_ENA = 9, + VCAP_AF_DEI_A_VAL = 10, + VCAP_AF_DEI_B_VAL = 11, + VCAP_AF_DEI_C_VAL = 12, + VCAP_AF_DEI_ENA = 13, + VCAP_AF_DEI_VAL = 14, + VCAP_AF_DLR_SEL = 15, + VCAP_AF_DP_ENA = 16, + VCAP_AF_DP_VAL = 17, + VCAP_AF_DSCP_ENA = 18, + VCAP_AF_DSCP_SEL = 19, + VCAP_AF_DSCP_VAL = 20, + VCAP_AF_ES2_REW_CMD = 21, + VCAP_AF_ESDX = 22, + VCAP_AF_FWD_KILL_ENA = 23, + VCAP_AF_FWD_MODE = 24, + VCAP_AF_FWD_SEL = 25, + VCAP_AF_HIT_ME_ONCE = 26, + VCAP_AF_HOST_MATCH = 27, + VCAP_AF_IGNORE_PIPELINE_CTRL = 28, + VCAP_AF_INTR_ENA = 29, + VCAP_AF_ISDX_ADD_REPLACE_SEL = 30, + VCAP_AF_ISDX_ADD_VAL = 31, + VCAP_AF_ISDX_ENA = 32, + VCAP_AF_ISDX_REPLACE_ENA = 33, + VCAP_AF_ISDX_VAL = 34, + VCAP_AF_LOOP_ENA = 35, + VCAP_AF_LRN_DIS = 36, + VCAP_AF_MAP_IDX = 37, + VCAP_AF_MAP_KEY = 38, + VCAP_AF_MAP_LOOKUP_SEL = 39, + VCAP_AF_MASK_MODE = 40, + VCAP_AF_MATCH_ID = 41, + VCAP_AF_MATCH_ID_MASK = 42, + VCAP_AF_MIRROR_ENA = 43, + VCAP_AF_MIRROR_PROBE = 44, + VCAP_AF_MIRROR_PROBE_ID = 45, + VCAP_AF_MRP_SEL = 46, + VCAP_AF_NXT_IDX = 47, + VCAP_AF_NXT_IDX_CTRL = 48, + VCAP_AF_OAM_SEL = 49, + VCAP_AF_PAG_OVERRIDE_MASK = 50, + VCAP_AF_PAG_VAL = 51, + VCAP_AF_PCP_A_VAL = 52, + VCAP_AF_PCP_B_VAL = 53, + VCAP_AF_PCP_C_VAL = 54, + VCAP_AF_PCP_ENA = 55, + VCAP_AF_PCP_VAL = 56, + VCAP_AF_PIPELINE_ACT = 57, + VCAP_AF_PIPELINE_FORCE_ENA = 58, + VCAP_AF_PIPELINE_PT = 59, + VCAP_AF_POLICE_ENA = 60, + VCAP_AF_POLICE_IDX = 61, + VCAP_AF_POLICE_REMARK = 62, + VCAP_AF_POLICE_VCAP_ONLY = 63, + VCAP_AF_POP_VAL = 64, + VCAP_AF_PORT_MASK = 65, + VCAP_AF_PUSH_CUSTOMER_TAG = 66, + VCAP_AF_PUSH_INNER_TAG = 67, + VCAP_AF_PUSH_OUTER_TAG = 68, + VCAP_AF_QOS_ENA = 69, + VCAP_AF_QOS_VAL = 70, + VCAP_AF_REW_OP = 71, + VCAP_AF_RT_DIS = 72, + VCAP_AF_SFID_ENA = 73, + VCAP_AF_SFID_VAL = 74, + VCAP_AF_SGID_ENA = 75, + VCAP_AF_SGID_VAL = 76, + VCAP_AF_SWAP_MACS_ENA = 77, + VCAP_AF_TAG_A_DEI_SEL = 78, + VCAP_AF_TAG_A_PCP_SEL = 79, + VCAP_AF_TAG_A_TPID_SEL = 80, + VCAP_AF_TAG_A_VID_SEL = 81, + VCAP_AF_TAG_B_DEI_SEL = 82, + VCAP_AF_TAG_B_PCP_SEL = 83, + VCAP_AF_TAG_B_TPID_SEL = 84, + VCAP_AF_TAG_B_VID_SEL = 85, + VCAP_AF_TAG_C_DEI_SEL = 86, + VCAP_AF_TAG_C_PCP_SEL = 87, + VCAP_AF_TAG_C_TPID_SEL = 88, + VCAP_AF_TAG_C_VID_SEL = 89, + VCAP_AF_TYPE = 90, + VCAP_AF_UNTAG_VID_ENA = 91, + VCAP_AF_VID_A_VAL = 92, + VCAP_AF_VID_B_VAL = 93, + VCAP_AF_VID_C_VAL = 94, + VCAP_AF_VID_REPLACE_ENA = 95, + VCAP_AF_VID_VAL = 96, + VCAP_AF_VLAN_POP_CNT = 97, + VCAP_AF_VLAN_POP_CNT_ENA = 98, }; -struct stm32_dma_mdma_config { - u32 stream_id; - u32 ifcr; - u32 tcf; +struct vcap_counter { + u32 value; + bool sticky; }; -struct stm32_dma_desc; +struct vcap_control; -struct stm32_dma_chan { - struct virt_dma_chan vchan; - bool config_init; - bool busy; - u32 id; - u32 irq; - struct stm32_dma_desc *desc; - u32 next_sg; - struct dma_slave_config dma_sconfig; - struct stm32_dma_chan_reg chan_reg; - u32 threshold; - u32 mem_burst; - u32 mem_width; - enum dma_status status; - bool trig_mdma; - struct stm32_dma_mdma_config mdma_config; +struct vcap_rule_internal { + struct vcap_rule data; + struct list_head list; + struct vcap_admin *admin; + struct net_device *ndev; + struct vcap_control *vctrl; + u32 sort_key; + int keyset_sw; + int actionset_sw; + int keyset_sw_regs; + int actionset_sw_regs; + int size; + u32 addr; + u32 counter_id; + struct vcap_counter counter; + enum vcap_rule_state state; }; -struct stm32_dma_sg_req { - u32 len; - struct stm32_dma_chan_reg chan_reg; -}; +struct vcap_operations; -struct stm32_dma_desc { - struct virt_dma_desc vdesc; - bool cyclic; - u32 num_sgs; - struct stm32_dma_sg_req sg_req[0]; -}; +struct vcap_info; -struct stm32_dma_device { - struct dma_device ddev; - void *base; - struct clk *clk; - bool mem2mem; - struct stm32_dma_chan chan[8]; -}; +struct vcap_statistics; -struct stm32_dma_cfg { - u32 channel_id; - u32 request_line; - u32 stream_config; - u32 features; +struct vcap_control { + struct vcap_operations *ops; + const struct vcap_info *vcaps; + const struct vcap_statistics *stats; + struct list_head list; }; -struct dbx500_asic_id { - u16 partnumber; - u8 revision; - u8 process; -}; +struct vcap_keyset_list; -enum fan53555_vendor { - FAN53526_VENDOR_FAIRCHILD = 0, - FAN53555_VENDOR_FAIRCHILD = 1, - FAN53555_VENDOR_ROCKCHIP = 2, - RK8602_VENDOR_ROCKCHIP = 3, - FAN53555_VENDOR_SILERGY = 4, - FAN53526_VENDOR_TCS = 5, -}; +struct vcap_output_print; -enum { - FAN53555_VSEL_ID_0 = 0, - FAN53555_VSEL_ID_1 = 1, +struct vcap_operations { + enum vcap_keyfield_set (*validate_keyset)(struct net_device *, struct vcap_admin *, struct vcap_rule *, struct vcap_keyset_list *, u16); + void (*add_default_fields)(struct net_device *, struct vcap_admin *, struct vcap_rule *); + void (*cache_erase)(struct vcap_admin *); + void (*cache_write)(struct net_device *, struct vcap_admin *, enum vcap_selection, u32, u32); + void (*cache_read)(struct net_device *, struct vcap_admin *, enum vcap_selection, u32, u32); + void (*init)(struct net_device *, struct vcap_admin *, u32, u32); + void (*update)(struct net_device *, struct vcap_admin *, enum vcap_command, enum vcap_selection, u32); + void (*move)(struct net_device *, struct vcap_admin *, u32, int, int); + int (*port_info)(struct net_device *, struct vcap_admin *, struct vcap_output_print *); }; -enum { - FAN53526_CHIP_ID_01 = 1, +struct vcap_keyset_list { + int max; + int cnt; + enum vcap_keyfield_set *keysets; }; -enum { - FAN53526_CHIP_REV_08 = 8, +struct vcap_output_print { + void (*prf)(void *, const char *, ...); + void *dst; }; -enum { - FAN53555_CHIP_ID_00 = 0, - FAN53555_CHIP_ID_01 = 1, - FAN53555_CHIP_ID_02 = 2, - FAN53555_CHIP_ID_03 = 3, - FAN53555_CHIP_ID_04 = 4, - FAN53555_CHIP_ID_05 = 5, - FAN53555_CHIP_ID_08 = 8, +struct vcap_set; + +struct vcap_field; + +struct vcap_typegroup; + +struct vcap_info { + char *name; + u16 rows; + u16 sw_count; + u16 sw_width; + u16 sticky_width; + u16 act_width; + u16 default_cnt; + u16 require_cnt_dis; + u16 version; + const struct vcap_set *keyfield_set; + int keyfield_set_size; + const struct vcap_set *actionfield_set; + int actionfield_set_size; + const struct vcap_field **keyfield_set_map; + int *keyfield_set_map_size; + const struct vcap_field **actionfield_set_map; + int *actionfield_set_map_size; + const struct vcap_typegroup **keyfield_set_typegroups; + const struct vcap_typegroup **actionfield_set_typegroups; }; -enum { - FAN53555_CHIP_REV_00 = 3, - FAN53555_CHIP_REV_13 = 15, +struct vcap_set { + u8 type_id; + u8 sw_per_item; + u8 sw_cnt; }; -enum { - RK8600_CHIP_ID_08 = 8, +struct vcap_field { + u16 type; + u16 width; + u16 offset; }; -enum { - RK8602_CHIP_ID_10 = 10, +struct vcap_typegroup { + u16 offset; + u16 width; + u16 value; }; -enum { - SILERGY_SYR82X = 8, - SILERGY_SYR83X = 9, +struct vcap_statistics { + char *name; + int count; + const char * const *keyfield_set_names; + const char * const *actionfield_set_names; + const char * const *keyfield_names; + const char * const *actionfield_names; }; -enum { - TCS4525_CHIP_ID_12 = 12, +struct vcap_client_keyfield_ctrl { + struct list_head list; + enum vcap_key_field key; + enum vcap_field_type type; }; -struct fan53555_platform_data { - struct regulator_init_data *regulator; - unsigned int slew_rate; - unsigned int sleep_vsel_id; +struct vcap_u1_key { + u8 value; + u8 mask; }; -struct fan53555_device_info { - enum fan53555_vendor vendor; - struct device *dev; - struct regulator_desc desc; - struct regulator_init_data *regulator; - int chip_id; - int chip_rev; - unsigned int vol_reg; - unsigned int sleep_reg; - unsigned int en_reg; - unsigned int sleep_en_reg; - unsigned int vsel_min; - unsigned int vsel_step; - unsigned int vsel_count; - unsigned int mode_reg; - unsigned int mode_mask; - unsigned int sleep_vol_cache; - unsigned int slew_reg; - unsigned int slew_mask; - const unsigned int *ramp_delay_table; - unsigned int n_ramp_values; - unsigned int slew_rate; +struct vcap_u32_key { + u32 value; + u32 mask; }; -struct brcmstb_reset { - void *base; - struct reset_controller_dev rcdev; +struct vcap_u56_key { + u8 value[7]; + u8 mask[7]; }; -enum { - ERASE = 0, - WERASE = 1, - KILL = 2, +struct vcap_u64_key { + u8 value[8]; + u8 mask[8]; }; -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[8]; - 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[128]; - 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 vcap_u72_key { + u8 value[9]; + u8 mask[9]; }; -struct of_serial_info { - struct clk *clk; - struct reset_control *rst; - int type; - int line; +struct vcap_u112_key { + u8 value[14]; + u8 mask[14]; }; -struct iproc_rng200_dev { - struct hwrng rng; - void *base; +struct vcap_client_keyfield_data { + union { + struct vcap_u1_key u1; + struct vcap_u32_key u32; + struct vcap_u48_key u48; + struct vcap_u56_key u56; + struct vcap_u64_key u64; + struct vcap_u72_key u72; + struct vcap_u112_key u112; + struct vcap_u128_key u128; + }; }; -struct rk_iommu_ops { - phys_addr_t (*pt_address)(u32); - u32 (*mk_dtentries)(dma_addr_t); - u32 (*mk_ptentries)(phys_addr_t, int); - phys_addr_t (*dte_addr_phys)(u32); - u32 (*dma_addr_dte)(dma_addr_t); - long: 32; - u64 dma_bit_mask; +struct vcap_client_keyfield { + struct vcap_client_keyfield_ctrl ctrl; + struct vcap_client_keyfield_data data; }; -struct rk_iommu_domain { - struct list_head iommus; - u32 *dt; - dma_addr_t dt_dma; - spinlock_t iommus_lock; - spinlock_t dt_lock; - struct iommu_domain domain; +struct vcap_client_actionfield_ctrl { + struct list_head list; + enum vcap_action_field action; + enum vcap_field_type type; }; -struct rk_iommu { - struct device *dev; - void **bases; - int num_mmu; - int num_irq; - struct clk_bulk_data *clocks; - int num_clocks; - bool reset_disabled; - struct iommu_device iommu; - struct list_head node; - struct iommu_domain *domain; - struct iommu_group *group; +struct vcap_u1_action { + u8 value; }; -struct rk_iommudata { - struct device_link *link; - struct rk_iommu *iommu; +struct vcap_u32_action { + u32 value; }; -struct drmres_node { - struct list_head entry; - drmres_release_t release; - const char *name; - size_t size; +struct vcap_u48_action { + u8 value[6]; }; -struct drmres { - struct drmres_node node; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - u8 data[0]; +struct vcap_u56_action { + u8 value[7]; }; -struct drm_flip_work; +struct vcap_u64_action { + u8 value[8]; +}; -typedef void (*drm_flip_func_t)(struct drm_flip_work *, void *); +struct vcap_u72_action { + u8 value[9]; +}; -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 vcap_u112_action { + u8 value[14]; }; -struct drm_flip_task { - struct list_head node; - void *data; +struct vcap_u128_action { + u8 value[16]; }; -enum dpot_devid { - AD5258_ID = 6817152, - AD5259_ID = 6817281, - AD5251_ID = 7088514, - AD5252_ID = 7088643, - AD5253_ID = 7093636, - AD5254_ID = 7093765, - AD5255_ID = 7085638, - AD5160_ID = 58721799, - AD5161_ID = 58721800, - AD5162_ID = 92278281, - AD5165_ID = 58721802, - AD5200_ID = 58721803, - AD5201_ID = 58721612, - AD5203_ID = 58736013, - AD5204_ID = 92290574, - AD5206_ID = 92339727, - AD5207_ID = 92278288, - AD5231_ID = 139200145, - AD5232_ID = 72093202, - AD5233_ID = 72105363, - AD5235_ID = 139202196, - AD5260_ID = 58721813, - AD5262_ID = 92278294, - AD5263_ID = 92290583, - AD5290_ID = 58721816, - AD5291_ID = 72353305, - AD5292_ID = 72353434, - AD5293_ID = 71304859, - AD7376_ID = 58721756, - AD8400_ID = 92276253, - AD8402_ID = 92278302, - AD8403_ID = 92282399, - ADN2850_ID = 139202208, - AD5241_ID = 4195873, - AD5242_ID = 4197922, - AD5243_ID = 4197923, - AD5245_ID = 4195876, - AD5246_ID = 4195813, - AD5247_ID = 4195814, - AD5248_ID = 4197927, - AD5280_ID = 4195880, - AD5282_ID = 4197929, - ADN2860_ID = 7085674, - AD5273_ID = 5244331, - AD5171_ID = 5244332, - AD5170_ID = 5244461, - AD5172_ID = 5246510, - AD5173_ID = 5246511, - AD5270_ID = 72353456, - AD5271_ID = 72353329, - AD5272_ID = 5244594, - AD5274_ID = 5244467, +struct vcap_client_actionfield_data { + union { + struct vcap_u1_action u1; + struct vcap_u32_action u32; + struct vcap_u48_action u48; + struct vcap_u56_action u56; + struct vcap_u64_action u64; + struct vcap_u72_action u72; + struct vcap_u112_action u112; + struct vcap_u128_action u128; + }; }; -struct ad_dpot_bus_ops; +struct vcap_client_actionfield { + struct vcap_client_actionfield_ctrl ctrl; + struct vcap_client_actionfield_data data; +}; -struct ad_dpot_bus_data { - void *client; - const struct ad_dpot_bus_ops *bops; +struct vcap_port_debugfs_info { + struct vcap_control *vctrl; + struct net_device *ndev; }; -struct dpot_data { - struct ad_dpot_bus_data bdata; - struct mutex update_lock; - unsigned int rdac_mask; - unsigned int max_pos; - unsigned long devid; - unsigned int uid; - unsigned int feat; - unsigned int wipers; - u16 rdac_cache[6]; - unsigned long otp_en_mask[1]; +struct vcap_admin_debugfs_info { + struct vcap_control *vctrl; + struct vcap_admin *admin; }; -struct ad_dpot_bus_ops { - int (*read_d8)(void *); - int (*read_r8d8)(void *, u8); - int (*read_r8d16)(void *, u8); - int (*write_d8)(void *, u8); - int (*write_r8d8)(void *, u8, u8); - int (*write_r8d16)(void *, u8, u16); +struct dwc_eth_dwmac_data { + int (*probe)(struct platform_device *, struct plat_stmmacenet_data *, struct stmmac_resources *); + void (*remove)(struct platform_device *); }; -struct prcm_data { - int nsubdevs; - const struct mfd_cell *subdevs; +struct tegra_eqos { + struct device *dev; + void *regs; + struct reset_control *rst; + struct clk *clk_master; + struct clk *clk_slave; + struct clk *clk_tx; + struct clk *clk_rx; + struct gpio_desc *reset; }; -enum max77686_types { - TYPE_MAX77686 = 0, - TYPE_MAX77802 = 1, +struct usb_conn_info { + struct device *dev; + struct usb_role_switch *role_sw; + enum usb_role last_role; + struct regulator *vbus; + struct delayed_work dw_det; + unsigned long debounce_jiffies; + struct gpio_desc *id_gpiod; + struct gpio_desc *vbus_gpiod; + int id_irq; + int vbus_irq; + struct power_supply_desc desc; + struct power_supply *charger; + bool initial_detection; }; -enum max77686_pmic_reg { - MAX77686_REG_DEVICE_ID = 0, - MAX77686_REG_INTSRC = 1, - MAX77686_REG_INT1 = 2, - MAX77686_REG_INT2 = 3, - MAX77686_REG_INT1MSK = 4, - MAX77686_REG_INT2MSK = 5, - MAX77686_REG_STATUS1 = 6, - MAX77686_REG_STATUS2 = 7, - MAX77686_REG_PWRON = 8, - MAX77686_REG_ONOFF_DELAY = 9, - MAX77686_REG_MRSTB = 10, - MAX77686_REG_BUCK1CTRL = 16, - MAX77686_REG_BUCK1OUT = 17, - MAX77686_REG_BUCK2CTRL1 = 18, - MAX77686_REG_BUCK234FREQ = 19, - MAX77686_REG_BUCK2DVS1 = 20, - MAX77686_REG_BUCK2DVS2 = 21, - MAX77686_REG_BUCK2DVS3 = 22, - MAX77686_REG_BUCK2DVS4 = 23, - MAX77686_REG_BUCK2DVS5 = 24, - MAX77686_REG_BUCK2DVS6 = 25, - MAX77686_REG_BUCK2DVS7 = 26, - MAX77686_REG_BUCK2DVS8 = 27, - MAX77686_REG_BUCK3CTRL1 = 28, - MAX77686_REG_BUCK3DVS1 = 30, - MAX77686_REG_BUCK3DVS2 = 31, - MAX77686_REG_BUCK3DVS3 = 32, - MAX77686_REG_BUCK3DVS4 = 33, - MAX77686_REG_BUCK3DVS5 = 34, - MAX77686_REG_BUCK3DVS6 = 35, - MAX77686_REG_BUCK3DVS7 = 36, - MAX77686_REG_BUCK3DVS8 = 37, - MAX77686_REG_BUCK4CTRL1 = 38, - MAX77686_REG_BUCK4DVS1 = 40, - MAX77686_REG_BUCK4DVS2 = 41, - MAX77686_REG_BUCK4DVS3 = 42, - MAX77686_REG_BUCK4DVS4 = 43, - MAX77686_REG_BUCK4DVS5 = 44, - MAX77686_REG_BUCK4DVS6 = 45, - MAX77686_REG_BUCK4DVS7 = 46, - MAX77686_REG_BUCK4DVS8 = 47, - MAX77686_REG_BUCK5CTRL = 48, - MAX77686_REG_BUCK5OUT = 49, - MAX77686_REG_BUCK6CTRL = 50, - MAX77686_REG_BUCK6OUT = 51, - MAX77686_REG_BUCK7CTRL = 52, - MAX77686_REG_BUCK7OUT = 53, - MAX77686_REG_BUCK8CTRL = 54, - MAX77686_REG_BUCK8OUT = 55, - MAX77686_REG_BUCK9CTRL = 56, - MAX77686_REG_BUCK9OUT = 57, - MAX77686_REG_LDO1CTRL1 = 64, - MAX77686_REG_LDO2CTRL1 = 65, - MAX77686_REG_LDO3CTRL1 = 66, - MAX77686_REG_LDO4CTRL1 = 67, - MAX77686_REG_LDO5CTRL1 = 68, - MAX77686_REG_LDO6CTRL1 = 69, - MAX77686_REG_LDO7CTRL1 = 70, - MAX77686_REG_LDO8CTRL1 = 71, - MAX77686_REG_LDO9CTRL1 = 72, - MAX77686_REG_LDO10CTRL1 = 73, - MAX77686_REG_LDO11CTRL1 = 74, - MAX77686_REG_LDO12CTRL1 = 75, - MAX77686_REG_LDO13CTRL1 = 76, - MAX77686_REG_LDO14CTRL1 = 77, - MAX77686_REG_LDO15CTRL1 = 78, - MAX77686_REG_LDO16CTRL1 = 79, - MAX77686_REG_LDO17CTRL1 = 80, - MAX77686_REG_LDO18CTRL1 = 81, - MAX77686_REG_LDO19CTRL1 = 82, - MAX77686_REG_LDO20CTRL1 = 83, - MAX77686_REG_LDO21CTRL1 = 84, - MAX77686_REG_LDO22CTRL1 = 85, - MAX77686_REG_LDO23CTRL1 = 86, - MAX77686_REG_LDO24CTRL1 = 87, - MAX77686_REG_LDO25CTRL1 = 88, - MAX77686_REG_LDO26CTRL1 = 89, - MAX77686_REG_LDO1CTRL2 = 96, - MAX77686_REG_LDO2CTRL2 = 97, - MAX77686_REG_LDO3CTRL2 = 98, - MAX77686_REG_LDO4CTRL2 = 99, - MAX77686_REG_LDO5CTRL2 = 100, - MAX77686_REG_LDO6CTRL2 = 101, - MAX77686_REG_LDO7CTRL2 = 102, - MAX77686_REG_LDO8CTRL2 = 103, - MAX77686_REG_LDO9CTRL2 = 104, - MAX77686_REG_LDO10CTRL2 = 105, - MAX77686_REG_LDO11CTRL2 = 106, - MAX77686_REG_LDO12CTRL2 = 107, - MAX77686_REG_LDO13CTRL2 = 108, - MAX77686_REG_LDO14CTRL2 = 109, - MAX77686_REG_LDO15CTRL2 = 110, - MAX77686_REG_LDO16CTRL2 = 111, - MAX77686_REG_LDO17CTRL2 = 112, - MAX77686_REG_LDO18CTRL2 = 113, - MAX77686_REG_LDO19CTRL2 = 114, - MAX77686_REG_LDO20CTRL2 = 115, - MAX77686_REG_LDO21CTRL2 = 116, - MAX77686_REG_LDO22CTRL2 = 117, - MAX77686_REG_LDO23CTRL2 = 118, - MAX77686_REG_LDO24CTRL2 = 119, - MAX77686_REG_LDO25CTRL2 = 120, - MAX77686_REG_LDO26CTRL2 = 121, - MAX77686_REG_BBAT_CHG = 126, - MAX77686_REG_32KHZ = 127, - MAX77686_REG_PMIC_END = 128, +enum snoop_when { + SUBMIT = 0, + COMPLETE = 1, }; -enum max77802_pmic_reg { - MAX77802_REG_DEVICE_ID = 0, - MAX77802_REG_INTSRC = 1, - MAX77802_REG_INT1 = 2, - MAX77802_REG_INT2 = 3, - MAX77802_REG_INT1MSK = 4, - MAX77802_REG_INT2MSK = 5, - MAX77802_REG_STATUS1 = 6, - MAX77802_REG_STATUS2 = 7, - MAX77802_REG_PWRON = 8, - MAX77802_REG_MRSTB = 10, - MAX77802_REG_EPWRHOLD = 11, - MAX77802_REG_BOOSTCTRL = 14, - MAX77802_REG_BOOSTOUT = 15, - MAX77802_REG_BUCK1CTRL = 16, - MAX77802_REG_BUCK1DVS1 = 17, - MAX77802_REG_BUCK1DVS2 = 18, - MAX77802_REG_BUCK1DVS3 = 19, - MAX77802_REG_BUCK1DVS4 = 20, - MAX77802_REG_BUCK1DVS5 = 21, - MAX77802_REG_BUCK1DVS6 = 22, - MAX77802_REG_BUCK1DVS7 = 23, - MAX77802_REG_BUCK1DVS8 = 24, - MAX77802_REG_BUCK2CTRL1 = 26, - MAX77802_REG_BUCK2CTRL2 = 27, - MAX77802_REG_BUCK2PHTRAN = 28, - MAX77802_REG_BUCK2DVS1 = 29, - MAX77802_REG_BUCK2DVS2 = 30, - MAX77802_REG_BUCK2DVS3 = 31, - MAX77802_REG_BUCK2DVS4 = 32, - MAX77802_REG_BUCK2DVS5 = 33, - MAX77802_REG_BUCK2DVS6 = 34, - MAX77802_REG_BUCK2DVS7 = 35, - MAX77802_REG_BUCK2DVS8 = 36, - MAX77802_REG_BUCK3CTRL1 = 39, - MAX77802_REG_BUCK3DVS1 = 40, - MAX77802_REG_BUCK3DVS2 = 41, - MAX77802_REG_BUCK3DVS3 = 42, - MAX77802_REG_BUCK3DVS4 = 43, - MAX77802_REG_BUCK3DVS5 = 44, - MAX77802_REG_BUCK3DVS6 = 45, - MAX77802_REG_BUCK3DVS7 = 46, - MAX77802_REG_BUCK3DVS8 = 47, - MAX77802_REG_BUCK4CTRL1 = 55, - MAX77802_REG_BUCK4DVS1 = 56, - MAX77802_REG_BUCK4DVS2 = 57, - MAX77802_REG_BUCK4DVS3 = 58, - MAX77802_REG_BUCK4DVS4 = 59, - MAX77802_REG_BUCK4DVS5 = 60, - MAX77802_REG_BUCK4DVS6 = 61, - MAX77802_REG_BUCK4DVS7 = 62, - MAX77802_REG_BUCK4DVS8 = 63, - MAX77802_REG_BUCK5CTRL = 65, - MAX77802_REG_BUCK5OUT = 66, - MAX77802_REG_BUCK6CTRL = 68, - MAX77802_REG_BUCK6DVS1 = 69, - MAX77802_REG_BUCK6DVS2 = 70, - MAX77802_REG_BUCK6DVS3 = 71, - MAX77802_REG_BUCK6DVS4 = 72, - MAX77802_REG_BUCK6DVS5 = 73, - MAX77802_REG_BUCK6DVS6 = 74, - MAX77802_REG_BUCK6DVS7 = 75, - MAX77802_REG_BUCK6DVS8 = 76, - MAX77802_REG_BUCK7CTRL = 78, - MAX77802_REG_BUCK7OUT = 79, - MAX77802_REG_BUCK8CTRL = 81, - MAX77802_REG_BUCK8OUT = 82, - MAX77802_REG_BUCK9CTRL = 84, - MAX77802_REG_BUCK9OUT = 85, - MAX77802_REG_BUCK10CTRL = 87, - MAX77802_REG_BUCK10OUT = 88, - MAX77802_REG_LDO1CTRL1 = 96, - MAX77802_REG_LDO2CTRL1 = 97, - MAX77802_REG_LDO3CTRL1 = 98, - MAX77802_REG_LDO4CTRL1 = 99, - MAX77802_REG_LDO5CTRL1 = 100, - MAX77802_REG_LDO6CTRL1 = 101, - MAX77802_REG_LDO7CTRL1 = 102, - MAX77802_REG_LDO8CTRL1 = 103, - MAX77802_REG_LDO9CTRL1 = 104, - MAX77802_REG_LDO10CTRL1 = 105, - MAX77802_REG_LDO11CTRL1 = 106, - MAX77802_REG_LDO12CTRL1 = 107, - MAX77802_REG_LDO13CTRL1 = 108, - MAX77802_REG_LDO14CTRL1 = 109, - MAX77802_REG_LDO15CTRL1 = 110, - MAX77802_REG_LDO17CTRL1 = 112, - MAX77802_REG_LDO18CTRL1 = 113, - MAX77802_REG_LDO19CTRL1 = 114, - MAX77802_REG_LDO20CTRL1 = 115, - MAX77802_REG_LDO21CTRL1 = 116, - MAX77802_REG_LDO22CTRL1 = 117, - MAX77802_REG_LDO23CTRL1 = 118, - MAX77802_REG_LDO24CTRL1 = 119, - MAX77802_REG_LDO25CTRL1 = 120, - MAX77802_REG_LDO26CTRL1 = 121, - MAX77802_REG_LDO27CTRL1 = 122, - MAX77802_REG_LDO28CTRL1 = 123, - MAX77802_REG_LDO29CTRL1 = 124, - MAX77802_REG_LDO30CTRL1 = 125, - MAX77802_REG_LDO32CTRL1 = 127, - MAX77802_REG_LDO33CTRL1 = 128, - MAX77802_REG_LDO34CTRL1 = 129, - MAX77802_REG_LDO35CTRL1 = 130, - MAX77802_REG_LDO1CTRL2 = 144, - MAX77802_REG_LDO2CTRL2 = 145, - MAX77802_REG_LDO3CTRL2 = 146, - MAX77802_REG_LDO4CTRL2 = 147, - MAX77802_REG_LDO5CTRL2 = 148, - MAX77802_REG_LDO6CTRL2 = 149, - MAX77802_REG_LDO7CTRL2 = 150, - MAX77802_REG_LDO8CTRL2 = 151, - MAX77802_REG_LDO9CTRL2 = 152, - MAX77802_REG_LDO10CTRL2 = 153, - MAX77802_REG_LDO11CTRL2 = 154, - MAX77802_REG_LDO12CTRL2 = 155, - MAX77802_REG_LDO13CTRL2 = 156, - MAX77802_REG_LDO14CTRL2 = 157, - MAX77802_REG_LDO15CTRL2 = 158, - MAX77802_REG_LDO17CTRL2 = 160, - MAX77802_REG_LDO18CTRL2 = 161, - MAX77802_REG_LDO19CTRL2 = 162, - MAX77802_REG_LDO20CTRL2 = 163, - MAX77802_REG_LDO21CTRL2 = 164, - MAX77802_REG_LDO22CTRL2 = 165, - MAX77802_REG_LDO23CTRL2 = 166, - MAX77802_REG_LDO24CTRL2 = 167, - MAX77802_REG_LDO25CTRL2 = 168, - MAX77802_REG_LDO26CTRL2 = 169, - MAX77802_REG_LDO27CTRL2 = 170, - MAX77802_REG_LDO28CTRL2 = 171, - MAX77802_REG_LDO29CTRL2 = 172, - MAX77802_REG_LDO30CTRL2 = 173, - MAX77802_REG_LDO32CTRL2 = 175, - MAX77802_REG_LDO33CTRL2 = 176, - MAX77802_REG_LDO34CTRL2 = 177, - MAX77802_REG_LDO35CTRL2 = 178, - MAX77802_REG_BBAT_CHG = 180, - MAX77802_REG_32KHZ = 181, - MAX77802_REG_PMIC_END = 182, +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; }; -enum max77802_rtc_reg { - MAX77802_RTC_INT = 192, - MAX77802_RTC_INTM = 193, - MAX77802_RTC_CONTROLM = 194, - MAX77802_RTC_CONTROL = 195, - MAX77802_RTC_UPDATE0 = 196, - MAX77802_RTC_UPDATE1 = 197, - MAX77802_WTSR_SMPL_CNTL = 198, - MAX77802_RTC_SEC = 199, - MAX77802_RTC_MIN = 200, - MAX77802_RTC_HOUR = 201, - MAX77802_RTC_WEEKDAY = 202, - MAX77802_RTC_MONTH = 203, - MAX77802_RTC_YEAR = 204, - MAX77802_RTC_MONTHDAY = 205, - MAX77802_RTC_AE1 = 206, - MAX77802_ALARM1_SEC = 207, - MAX77802_ALARM1_MIN = 208, - MAX77802_ALARM1_HOUR = 209, - MAX77802_ALARM1_WEEKDAY = 210, - MAX77802_ALARM1_MONTH = 211, - MAX77802_ALARM1_YEAR = 212, - MAX77802_ALARM1_DATE = 213, - MAX77802_RTC_AE2 = 214, - MAX77802_ALARM2_SEC = 215, - MAX77802_ALARM2_MIN = 216, - MAX77802_ALARM2_HOUR = 217, - MAX77802_ALARM2_WEEKDAY = 218, - MAX77802_ALARM2_MONTH = 219, - MAX77802_ALARM2_YEAR = 220, - MAX77802_ALARM2_DATE = 221, - MAX77802_RTC_END = 223, +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 max77686_dev { - struct device *dev; - struct i2c_client *i2c; - unsigned long type; - struct regmap *regmap; - struct regmap_irq_chip_data *irq_data; - int irq; - struct mutex irqlock; - int irq_masks_cur[3]; - int irq_masks_cache[3]; +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 scsi_varlen_cdb_hdr { - __u8 opcode; - __u8 control; - __u8 misc[5]; - __u8 additional_cdb_length; - __be16 service_action; +struct usbdevfs_iso_packet_desc { + unsigned int length; + unsigned int actual_length; + unsigned int status; }; -struct mtd_partitions { - const struct mtd_partition *parts; - int nr_parts; - const struct mtd_part_parser *parser; +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]; }; -enum fwh_lock_state { - FWH_UNLOCKED = 0, - FWH_DENY_WRITE = 1, - FWH_IMMUTABLE = 2, - FWH_DENY_READ = 4, +struct usbdevfs_setinterface { + unsigned int interface; + unsigned int altsetting; }; -struct cfi_pri_intelext { - uint8_t pri[3]; - uint8_t MajorVersion; - uint8_t MinorVersion; - uint32_t FeatureSupport; - uint8_t SuspendCmdSupport; - uint16_t BlkStatusRegMask; - uint8_t VccOptimal; - uint8_t VppOptimal; - uint8_t NumProtectionFields; - uint16_t ProtRegAddr; - uint8_t FactProtRegSize; - uint8_t UserProtRegSize; - uint8_t extra[0]; -} __attribute__((packed)); +struct usbdevfs_ioctl { + int ifno; + int ioctl_code; + void __attribute__((btf_type_tag("user"))) *data; +}; -struct cfi_intelext_blockinfo { - uint16_t NumIdentBlocks; - uint16_t BlockSize; - uint16_t MinBlockEraseCycles; - uint8_t BitsPerCell; - uint8_t BlockCap; +struct usbdevfs_getdriver { + unsigned int interface; + char driver[256]; }; -struct cfi_intelext_regioninfo { - uint16_t NumIdentPartitions; - uint8_t NumOpAllowed; - uint8_t NumOpAllowedSimProgMode; - uint8_t NumOpAllowedSimEraMode; - uint8_t NumBlockTypes; - struct cfi_intelext_blockinfo BlockTypes[1]; +struct usbdevfs_bulktransfer { + unsigned int ep; + unsigned int len; + unsigned int timeout; + void __attribute__((btf_type_tag("user"))) *data; }; -struct fwh_xxlock_thunk { - enum fwh_lock_state val; - flstate_t state; +struct usbdevfs_disconnectsignal { + unsigned int signr; + void __attribute__((btf_type_tag("user"))) *context; }; -struct cfi_intelext_programming_regioninfo { - uint8_t ProgRegShift; - uint8_t Reserved1; - uint8_t ControlValid; - uint8_t Reserved2; - uint8_t ControlInvalid; - uint8_t Reserved3; +struct usbdevfs_disconnect_claim { + unsigned int interface; + unsigned int flags; + char driver[256]; }; -struct flchip_shared { - struct mutex lock; - struct flchip *writing; - struct flchip *erasing; +struct usbdevfs_ctrltransfer { + __u8 bRequestType; + __u8 bRequest; + __u16 wValue; + __u16 wIndex; + __u16 wLength; + __u32 timeout; + void __attribute__((btf_type_tag("user"))) *data; }; -struct cfi_pri_atmel { - uint8_t pri[3]; - uint8_t MajorVersion; - uint8_t MinorVersion; - uint8_t Features; - uint8_t BottomBoot; - uint8_t BurstMode; - uint8_t PageMode; +struct usbdevfs_connectinfo { + unsigned int devnum; + unsigned char slow; }; -enum { - BCM63138_CTLRDY = 16, +struct usbdevfs_conninfo_ex { + __u32 size; + __u32 busnum; + __u32 devnum; + __u32 speed; + __u8 num_ports; + __u8 ports[7]; }; -struct bcm63138_nand_soc { - struct brcmnand_soc soc; - void *base; +struct usbdevfs_streams { + unsigned int num_streams; + unsigned int num_eps; + unsigned char eps[0]; }; -struct davinci_spi_config { - u8 wdelay; - u8 odd_parity; - u8 parity_enable; - u8 io_type; - u8 timer_disable; - u8 c2tdelay; - u8 t2cdelay; - u8 t2edelay; - u8 c2edelay; +struct dwc3_meson_g12a; + +struct dwc3_meson_g12a_drvdata { + bool otg_phy_host_port_disable; + struct clk_bulk_data *clks; + int num_clks; + const char * const *phy_names; + int num_phys; + int (*setup_regmaps)(struct dwc3_meson_g12a *, void *); + int (*usb2_init_phy)(struct dwc3_meson_g12a *, int, enum phy_mode); + int (*set_phy_mode)(struct dwc3_meson_g12a *, int, enum phy_mode); + int (*usb_init)(struct dwc3_meson_g12a *); + int (*usb_post_init)(struct dwc3_meson_g12a *); }; -struct davinci_spi_of_data { - u8 version; - u8 prescaler_limit; +struct dwc3_meson_g12a { + struct device *dev; + struct regmap *u2p_regmap[3]; + struct regmap *usb_glue_regmap; + struct reset_control *reset; + struct phy *phys[3]; + enum usb_dr_mode otg_mode; + enum phy_mode otg_phy_mode; + unsigned int usb2_ports; + unsigned int usb3_ports; + struct regulator *vbus; + struct usb_role_switch_desc switch_desc; + struct usb_role_switch *role_switch; + const struct dwc3_meson_g12a_drvdata *drvdata; }; -enum dma_event_q { - EVENTQ_0 = 0, - EVENTQ_1 = 1, - EVENTQ_2 = 2, - EVENTQ_3 = 3, - EVENTQ_DEFAULT = -1, +typedef void (*set_params_cb)(struct dwc2_hsotg *); + +enum isp1760_ctrl_state { + ISP1760_CTRL_SETUP = 0, + ISP1760_CTRL_DATA_IN = 1, + ISP1760_CTRL_DATA_OUT = 2, + ISP1760_CTRL_STATUS = 3, }; -enum { - SPI_VERSION_1 = 0, - SPI_VERSION_2 = 1, +enum isp176x_device_controller_fields { + DC_DEVEN = 0, + DC_DEVADDR = 1, + DC_VBUSSTAT = 2, + DC_SFRESET = 3, + DC_GLINTENA = 4, + DC_CDBGMOD_ACK = 5, + DC_DDBGMODIN_ACK = 6, + DC_DDBGMODOUT_ACK = 7, + DC_INTPOL = 8, + DC_IEPRXTX_7 = 9, + DC_IEPRXTX_6 = 10, + DC_IEPRXTX_5 = 11, + DC_IEPRXTX_4 = 12, + DC_IEPRXTX_3 = 13, + DC_IEPRXTX_2 = 14, + DC_IEPRXTX_1 = 15, + DC_IEPRXTX_0 = 16, + DC_IEP0SETUP = 17, + DC_IEVBUS = 18, + DC_IEHS_STA = 19, + DC_IERESM = 20, + DC_IESUSP = 21, + DC_IEBRST = 22, + DC_EP0SETUP = 23, + DC_ENDPIDX = 24, + DC_EPDIR = 25, + DC_CLBUF = 26, + DC_VENDP = 27, + DC_DSEN = 28, + DC_STATUS = 29, + DC_STALL = 30, + DC_BUFLEN = 31, + DC_FFOSZ = 32, + DC_EPENABLE = 33, + DC_ENDPTYP = 34, + DC_FRAMENUM = 35, + DC_UFRAMENUM = 36, + DC_CHIP_ID_HIGH = 37, + DC_CHIP_ID_LOW = 38, + DC_SCRATCH = 39, + DC_FIELD_MAX = 40, }; -struct davinci_spi_platform_data { - u8 version; - u8 num_chipselect; - u8 intr_line; - u8 prescaler_limit; - bool cshold_bug; - enum dma_event_q dma_event_q; +struct isp1760_udc; + +struct isp1760_ep { + struct isp1760_udc *udc; + struct usb_ep ep; + struct list_head queue; + unsigned int addr; + unsigned int maxpacket; + char name[7]; + const struct usb_endpoint_descriptor *desc; + bool rx_pending; + bool halted; + bool wedged; }; -struct davinci_spi { - struct spi_bitbang bitbang; - struct clk *clk; - u8 version; - resource_size_t pbase; - void *base; - u32 irq; - struct completion done; - const void *tx; - void *rx; - int rcount; - int wcount; - struct dma_chan *dma_rx; - struct dma_chan *dma_tx; - struct davinci_spi_platform_data pdata; - void (*get_rx)(u32, struct davinci_spi *); - u32 (*get_tx)(struct davinci_spi *); - u8 *bytes_per_word; - u8 prescaler_limit; +struct isp1760_device; + +struct isp1760_udc { + struct isp1760_device *isp; + int irq; + char *irqname; + struct regmap *regs; + struct regmap_field *fields[40]; + struct usb_gadget_driver *driver; + long: 32; + struct usb_gadget gadget; + spinlock_t lock; + struct timer_list vbus_timer; + struct isp1760_ep ep[15]; + enum isp1760_ctrl_state ep0_state; + u8 ep0_dir; + u16 ep0_length; + bool connected; + bool is_isp1763; + unsigned int devstatus; }; -enum gfar_errata { - GFAR_ERRATA_74 = 1, - GFAR_ERRATA_76 = 2, - GFAR_ERRATA_A002 = 4, - GFAR_ERRATA_12 = 8, +struct isp1760_device { + struct device *dev; + unsigned int devflags; + struct gpio_desc *rst_gpio; + struct isp1760_hcd hcd; + long: 32; + struct isp1760_udc udc; }; -enum gfar_dev_state { - GFAR_DOWN = 1, - GFAR_RESETTING = 2, +struct isp1760_request { + struct usb_request req; + struct list_head queue; + struct isp1760_ep *ep; + unsigned int packet_size; }; -struct ethtool_flow_spec_container { - struct ethtool_rx_flow_spec fs; - struct list_head list; +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 gfar; +struct xhci_driver_data { + u64 quirks; + const char *firmware; + long: 32; +}; -struct gfar_priv_tx_q; +typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); -struct gfar_priv_rx_q; +struct serport___2 { + struct tty_struct *tty; + wait_queue_head_t wait; + struct serio *serio; + struct serio_device_id id; + spinlock_t lock; + unsigned long flags; +}; -struct gfar_private; +enum tp_mode { + IAP_MODE = 1, + MAIN_MODE = 2, +}; -struct gfar_irqinfo; +struct elan_transport_ops; -struct gfar_priv_grp { - spinlock_t grplock; - long: 32; - struct napi_struct napi_rx; - struct napi_struct napi_tx; - struct gfar *regs; - struct gfar_priv_tx_q *tx_queue; - struct gfar_priv_rx_q *rx_queue; - unsigned int tstat; - unsigned int rstat; - struct gfar_private *priv; - unsigned long num_tx_queues; - unsigned long tx_bit_map; - unsigned long num_rx_queues; - unsigned long rx_bit_map; - struct gfar_irqinfo *irqinfo[3]; - long: 32; +struct elan_tp_data { + struct i2c_client *client; + struct input_dev *input; + struct input_dev *tp_input; + struct regulator *vcc; + const struct elan_transport_ops *ops; + struct completion fw_completion; + bool in_fw_update; + struct mutex sysfs_mutex; + unsigned int max_x; + unsigned int max_y; + unsigned int width_x; + unsigned int width_y; + unsigned int x_res; + unsigned int y_res; + u8 pattern; + u16 product_id; + u8 fw_version; + u8 sm_version; + u8 iap_version; + u16 fw_checksum; + unsigned int report_features; + unsigned int report_len; + int pressure_adjustment; + u8 mode; + u16 ic_type; + u16 fw_validpage_count; + u16 fw_page_size; + u32 fw_signature_address; + u8 min_baseline; + u8 max_baseline; + bool baseline_ready; + u8 clickpad; + bool middle_button; + u32 quirks; }; -struct gfar_extra_stats { - atomic64_t rx_alloc_err; - atomic64_t rx_large; - atomic64_t rx_short; - atomic64_t rx_nonoctet; - atomic64_t rx_crcerr; - atomic64_t rx_overrun; - atomic64_t rx_bsy; - atomic64_t rx_babr; - atomic64_t rx_trunc; - atomic64_t eberr; - atomic64_t tx_babt; - atomic64_t tx_underrun; - atomic64_t tx_timeout; +struct elan_transport_ops { + int (*initialize)(struct i2c_client *); + int (*sleep_control)(struct i2c_client *, bool); + int (*power_control)(struct i2c_client *, bool); + int (*set_mode)(struct i2c_client *, u8); + int (*calibrate)(struct i2c_client *); + int (*calibrate_result)(struct i2c_client *, u8 *); + int (*get_baseline_data)(struct i2c_client *, bool, u8 *); + int (*get_version)(struct i2c_client *, u8, bool, u8 *); + int (*get_sm_version)(struct i2c_client *, u8, u16 *, u8 *, u8 *); + int (*get_checksum)(struct i2c_client *, bool, u16 *); + int (*get_product_id)(struct i2c_client *, u16 *); + int (*get_max)(struct i2c_client *, unsigned int *, unsigned int *); + int (*get_resolution)(struct i2c_client *, u8 *, u8 *); + int (*get_num_traces)(struct i2c_client *, unsigned int *, unsigned int *); + int (*iap_get_mode)(struct i2c_client *, enum tp_mode *); + int (*iap_reset)(struct i2c_client *); + int (*prepare_fw_update)(struct i2c_client *, u16, u8, u16); + int (*write_fw_block)(struct i2c_client *, u16, const u8 *, u16, int); + int (*finish_fw_update)(struct i2c_client *, struct completion *); + int (*get_report_features)(struct i2c_client *, u8, unsigned int *, unsigned int *); + int (*get_report)(struct i2c_client *, u8 *, unsigned int); + int (*get_pressure_adjustment)(struct i2c_client *, int *); + int (*get_pattern)(struct i2c_client *, u8 *); }; -struct rmon_overflow { +struct spear_rtc_config { + struct rtc_device *rtc; + struct clk *clk; spinlock_t lock; - u32 imask; - u64 rdrp; + void *ioaddr; + unsigned int irq_wake; }; -struct ethtool_rx_list { - struct list_head list; - unsigned int count; +struct i2c_spec_values { + unsigned long min_hold_start_ns; + unsigned long min_low_ns; + unsigned long min_high_ns; + unsigned long min_setup_start_ns; + unsigned long max_data_hold_ns; + unsigned long min_data_setup_ns; + unsigned long min_setup_stop_ns; + unsigned long min_hold_buffer_ns; }; -struct gfar_private { +struct rk3x_i2c_calced_timings; + +struct rk3x_i2c_soc_data { + int grf_offset; + int (*calc_timings)(unsigned long, struct i2c_timings *, struct rk3x_i2c_calced_timings *); +}; + +struct rk3x_i2c_calced_timings { + unsigned long div_low; + unsigned long div_high; + unsigned int tuning; +}; + +enum rk3x_i2c_state { + STATE_IDLE___5 = 0, + STATE_START___2 = 1, + STATE_READ___3 = 2, + STATE_WRITE___3 = 3, + STATE_STOP___2 = 4, +}; + +enum { + REG_CON_MOD_TX = 0, + REG_CON_MOD_REGISTER_TX = 1, + REG_CON_MOD_RX = 2, + REG_CON_MOD_REGISTER_RX = 3, +}; + +struct rk3x_i2c { + struct i2c_adapter adap; struct device *dev; - struct net_device *ndev; - enum gfar_errata errata; - u16 uses_rxfcb; - u16 padding; - u32 device_flags; - int hwts_rx_en; - int hwts_tx_en; - struct gfar_priv_tx_q *tx_queue[8]; - struct gfar_priv_rx_q *rx_queue[8]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct gfar_priv_grp gfargrp[2]; - unsigned long state; - unsigned short mode; - unsigned int num_tx_queues; - unsigned int num_rx_queues; - unsigned int num_grps; - int tx_actual_en; - struct gfar_extra_stats extra_stats; - struct rmon_overflow rmon_overflow; - phy_interface_t interface; - struct device_node *phy_node; - struct device_node *tbi_node; - struct mii_bus *mii_bus; - int oldspeed; - int oldduplex; - int oldlink; - uint32_t msg_enable; - struct work_struct reset_task; - struct platform_device *ofdev; - unsigned char extended_hash: 1; - unsigned char bd_stash_en: 1; - unsigned char rx_filer_enable: 1; - unsigned char prio_sched_en: 1; - unsigned char pause_aneg_en: 1; - unsigned char tx_pause_en: 1; - unsigned char rx_pause_en: 1; - unsigned int total_tx_ring_size; - unsigned int total_rx_ring_size; - u32 rqueue; - u32 tqueue; - unsigned int rx_stash_size; - unsigned int rx_stash_index; - u32 cur_filer_idx; - struct ethtool_rx_list rx_list; - struct mutex rx_queue_access; - u32 *hash_regs[16]; - int hash_width; - u16 wol_opts; - u16 wol_supported; - unsigned int ftp_rqfpr[256]; - unsigned int ftp_rqfcr[256]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; + const struct rk3x_i2c_soc_data *soc_data; + void *regs; + struct clk *clk; + struct clk *pclk; + struct notifier_block clk_rate_nb; + int irq; + struct i2c_timings t; + spinlock_t lock; + wait_queue_head_t wait; + bool busy; + struct i2c_msg *msg; + u8 addr; + unsigned int mode; + bool is_last_msg; + enum rk3x_i2c_state state; + unsigned int processed; + int error; long: 32; }; -struct tx_q_stats { - u64 tx_packets; - u64 tx_bytes; +struct kvm_ptp_clock { + struct ptp_clock *ptp_clock; + struct ptp_clock_info caps; }; -struct txbd8; +typedef void (*btf_trace_watchdog_start)(void *, struct watchdog_device *, int); -struct gfar_priv_tx_q { - spinlock_t txlock; - struct txbd8 *tx_bd_base; - struct txbd8 *cur_tx; - unsigned int num_txbdfree; - unsigned short skb_curtx; - unsigned short tx_ring_size; - long: 32; - struct tx_q_stats stats; - struct gfar_priv_grp *grp; - struct net_device *dev; - struct sk_buff **tx_skbuff; - struct txbd8 *dirty_tx; - unsigned short skb_dirtytx; - unsigned short qindex; - unsigned int txcoalescing; - unsigned long txic; - dma_addr_t tx_bd_dma_base; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct watchdog_core_data { + struct device dev; + struct cdev cdev; + struct watchdog_device *wdd; + struct mutex lock; long: 32; + ktime_t last_keepalive; + ktime_t last_hw_keepalive; + ktime_t open_deadline; + struct hrtimer timer; + struct kthread_work work; + unsigned long status; }; -struct txbd8 { - union { - struct { - __be16 status; - __be16 length; - }; - __be32 lstatus; - }; - __be32 bufPtr; +typedef void (*btf_trace_watchdog_ping)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_watchdog_stop)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_watchdog_set_timeout)(void *, struct watchdog_device *, unsigned int, int); + +struct trace_event_raw_watchdog_template { + struct trace_entry ent; + int id; + int err; + char __data[0]; }; -struct rmon_mib { - u32 tr64; - u32 tr127; - u32 tr255; - u32 tr511; - u32 tr1k; - u32 trmax; - u32 trmgv; - u32 rbyt; - u32 rpkt; - u32 rfcs; - u32 rmca; - u32 rbca; - u32 rxcf; - u32 rxpf; - u32 rxuo; - u32 raln; - u32 rflr; - u32 rcde; - u32 rcse; - u32 rund; - u32 rovr; - u32 rfrg; - u32 rjbr; - u32 rdrp; - u32 tbyt; - u32 tpkt; - u32 tmca; - u32 tbca; - u32 txpf; - u32 tdfr; - u32 tedf; - u32 tscl; - u32 tmcl; - u32 tlcl; - u32 txcl; - u32 tncl; - u8 res1[4]; - u32 tdrp; - u32 tjbr; - u32 tfcs; - u32 txcf; - u32 tovr; - u32 tund; - u32 tfrg; - u32 car1; - u32 car2; - u32 cam1; - u32 cam2; +struct trace_event_raw_watchdog_set_timeout { + struct trace_entry ent; + int id; + unsigned int timeout; + int err; + char __data[0]; }; -struct gfar { - u32 tsec_id; - u32 tsec_id2; - u8 res1[8]; - u32 ievent; - u32 imask; - u32 edis; - u32 emapg; - u32 ecntrl; - u32 minflr; - u32 ptv; - u32 dmactrl; - u32 tbipa; - u8 res2[28]; - u32 fifo_rx_pause; - u32 fifo_rx_pause_shutoff; - u32 fifo_rx_alarm; - u32 fifo_rx_alarm_shutoff; - u8 res3[44]; - u32 fifo_tx_thr; - u8 res4[8]; - u32 fifo_tx_starve; - u32 fifo_tx_starve_shutoff; - u8 res5[96]; - u32 tctrl; - u32 tstat; - u32 dfvlan; - u32 tbdlen; - u32 txic; - u32 tqueue; - u8 res7[40]; - u32 tr03wt; - u32 tr47wt; - u8 res8[52]; - u32 tbdbph; - u8 res9a[4]; - u32 tbptr0; - u8 res9b[4]; - u32 tbptr1; - u8 res9c[4]; - u32 tbptr2; - u8 res9d[4]; - u32 tbptr3; - u8 res9e[4]; - u32 tbptr4; - u8 res9f[4]; - u32 tbptr5; - u8 res9g[4]; - u32 tbptr6; - u8 res9h[4]; - u32 tbptr7; - u8 res9[64]; - u32 tbaseh; - u32 tbase0; - u8 res10a[4]; - u32 tbase1; - u8 res10b[4]; - u32 tbase2; - u8 res10c[4]; - u32 tbase3; - u8 res10d[4]; - u32 tbase4; - u8 res10e[4]; - u32 tbase5; - u8 res10f[4]; - u32 tbase6; - u8 res10g[4]; - u32 tbase7; - u8 res10[192]; - u32 rctrl; - u32 rstat; - u8 res12[8]; - u32 rxic; - u32 rqueue; - u32 rir0; - u32 rir1; - u32 rir2; - u32 rir3; - u8 res13[8]; - u32 rbifx; - u32 rqfar; - u32 rqfcr; - u32 rqfpr; - u32 mrblr; - u8 res14[56]; - u32 rbdbph; - u8 res15a[4]; - u32 rbptr0; - u8 res15b[4]; - u32 rbptr1; - u8 res15c[4]; - u32 rbptr2; - u8 res15d[4]; - u32 rbptr3; - u8 res15e[4]; - u32 rbptr4; - u8 res15f[4]; - u32 rbptr5; - u8 res15g[4]; - u32 rbptr6; - u8 res15h[4]; - u32 rbptr7; - u8 res16[64]; - u32 rbaseh; - u32 rbase0; - u8 res17a[4]; - u32 rbase1; - u8 res17b[4]; - u32 rbase2; - u8 res17c[4]; - u32 rbase3; - u8 res17d[4]; - u32 rbase4; - u8 res17e[4]; - u32 rbase5; - u8 res17f[4]; - u32 rbase6; - u8 res17g[4]; - u32 rbase7; - u8 res17[192]; - u32 maccfg1; - u32 maccfg2; - u32 ipgifg; - u32 hafdup; - u32 maxfrm; - u8 res18[12]; - u8 gfar_mii_regs[24]; - u32 ifctrl; - u32 ifstat; - u32 macstnaddr1; - u32 macstnaddr2; - u32 mac01addr1; - u32 mac01addr2; - u32 mac02addr1; - u32 mac02addr2; - u32 mac03addr1; - u32 mac03addr2; - u32 mac04addr1; - u32 mac04addr2; - u32 mac05addr1; - u32 mac05addr2; - u32 mac06addr1; - u32 mac06addr2; - u32 mac07addr1; - u32 mac07addr2; - u32 mac08addr1; - u32 mac08addr2; - u32 mac09addr1; - u32 mac09addr2; - u32 mac10addr1; - u32 mac10addr2; - u32 mac11addr1; - u32 mac11addr2; - u32 mac12addr1; - u32 mac12addr2; - u32 mac13addr1; - u32 mac13addr2; - u32 mac14addr1; - u32 mac14addr2; - u32 mac15addr1; - u32 mac15addr2; - u8 res20[192]; - struct rmon_mib rmon; - u32 rrej; - u8 res21[188]; - u32 igaddr0; - u32 igaddr1; - u32 igaddr2; - u32 igaddr3; - u32 igaddr4; - u32 igaddr5; - u32 igaddr6; - u32 igaddr7; - u8 res22[96]; - u32 gaddr0; - u32 gaddr1; - u32 gaddr2; - u32 gaddr3; - u32 gaddr4; - u32 gaddr5; - u32 gaddr6; - u32 gaddr7; - u8 res23a[352]; - u32 fifocfg; - u8 res23b[252]; - u8 res23c[248]; - u32 attr; - u32 attreli; - u32 rqprm0; - u32 rqprm1; - u32 rqprm2; - u32 rqprm3; - u32 rqprm4; - u32 rqprm5; - u32 rqprm6; - u32 rqprm7; - u8 res24[36]; - u32 rfbptr0; - u8 res24a[4]; - u32 rfbptr1; - u8 res24b[4]; - u32 rfbptr2; - u8 res24c[4]; - u32 rfbptr3; - u8 res24d[4]; - u32 rfbptr4; - u8 res24e[4]; - u32 rfbptr5; - u8 res24f[4]; - u32 rfbptr6; - u8 res24g[4]; - u32 rfbptr7; - u8 res24h[4]; - u8 res24x[556]; - u32 isrg0; - u32 isrg1; - u32 isrg2; - u32 isrg3; - u8 res25[16]; - u32 rxic0; - u32 rxic1; - u32 rxic2; - u32 rxic3; - u32 rxic4; - u32 rxic5; - u32 rxic6; - u32 rxic7; - u8 res26[32]; - u32 txic0; - u32 txic1; - u32 txic2; - u32 txic3; - u32 txic4; - u32 txic5; - u32 txic6; - u32 txic7; - u8 res27[208]; +struct trace_event_data_offsets_watchdog_template {}; + +struct trace_event_data_offsets_watchdog_set_timeout {}; + +struct dev_ch_attribute { + struct device_attribute attr; + unsigned int channel; +}; + +struct sdmmc_dlyb; + +struct sdmmc_tuning_ops { + int (*dlyb_enable)(struct sdmmc_dlyb *); + void (*set_input_ck)(struct sdmmc_dlyb *); + int (*tuning_prepare)(struct mmci_host *); + int (*set_cfg)(struct sdmmc_dlyb *, int, int, bool); +}; + +struct sdmmc_dlyb { + void *base; + u32 unit; + u32 max; + struct sdmmc_tuning_ops *ops; +}; + +struct sdmmc_lli_desc { + u32 idmalar; + u32 idmabase; + u32 idmasize; +}; + +struct sdmmc_idma { + dma_addr_t sg_dma; + void *sg_cpu; + dma_addr_t bounce_dma_addr; + void *bounce_buf; + bool use_bounce_buffer; +}; + +struct meson_mx_sdhc_clkc { + struct clk_mux src_sel; + struct clk_divider div; + struct clk_gate mod_clk_en; + struct clk_gate tx_clk_en; + struct clk_gate rx_clk_en; + struct clk_gate sd_clk_en; +}; + +struct st_mmc_platform_data { + struct reset_control *rstc; + struct clk *icnclk; + void *top_ioaddr; +}; + +struct scmi_shared_mem { + __le32 reserved; + __le32 channel_status; + __le32 reserved1[2]; + __le32 flags; + __le32 length; + __le32 msg_header; + u8 msg_payload[0]; +}; + +typedef struct { + u64 signature; + u32 revision; + u32 headersize; + u32 crc32; + u32 reserved; +} efi_table_hdr_t; + +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 { + efi_guid_t guid; + unsigned long *ptr; + const char name[16]; +} efi_config_table_type_t; + +union efi_simple_text_input_protocol; + +typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t; + +union efi_simple_text_output_protocol; + +typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t; + +typedef struct { + 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 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 u8 efi_bool_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_set_virtual_address_map_t(unsigned long, unsigned long, u32, efi_memory_desc_t *); + +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 *); + +typedef struct { + efi_guid_t guid; + u32 headersize; + u32 flags; + u32 imagesize; +} efi_capsule_header_t; + +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 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_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_set_virtual_address_map_t *set_virtual_address_map; + void *convert_pointer; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; + efi_update_capsule_t *update_capsule; + efi_query_capsule_caps_t *query_capsule_caps; + efi_query_variable_info_t *query_variable_info; + }; + efi_runtime_services_32_t mixed_mode; +} efi_runtime_services_t; + +union efi_boot_services; + +typedef union efi_boot_services efi_boot_services_t; + +typedef struct { + efi_table_hdr_t hdr; + u32 fw_vendor; + u32 fw_revision; + u32 con_in_handle; + u32 con_in; + u32 con_out_handle; + u32 con_out; + u32 stderr_handle; + u32 stderr; + u32 runtime; + u32 boottime; + u32 nr_tables; + u32 tables; +} efi_system_table_32_t; + +typedef union { + struct { + efi_table_hdr_t hdr; + unsigned long fw_vendor; + u32 fw_revision; + unsigned long con_in_handle; + efi_simple_text_input_protocol_t *con_in; + unsigned long con_out_handle; + efi_simple_text_output_protocol_t *con_out; + unsigned long stderr_handle; + unsigned long stderr; + efi_runtime_services_t *runtime; + efi_boot_services_t *boottime; + unsigned long nr_tables; + unsigned long tables; + }; + efi_system_table_32_t mixed_mode; +} efi_system_table_t; + +struct scm_legacy_response { + __le32 len; + __le32 buf_offset; + __le32 is_complete; }; -struct rx_q_stats { - u64 rx_packets; - u64 rx_bytes; - u64 rx_dropped; +struct scm_legacy_command { + __le32 len; + __le32 buf_offset; + __le32 resp_hdr_offset; + __le32 id; + __le32 buf[0]; }; -struct gfar_rx_buff; +struct ttc_timer { + void *base_addr; + unsigned long freq; + struct clk *clk; + struct notifier_block clk_rate_change_nb; +}; -struct rxbd8; +struct ttc_timer_clocksource { + u32 scale_clk_ctrl_reg_old; + u32 scale_clk_ctrl_reg_new; + struct ttc_timer ttc; + struct clocksource cs; +}; -struct gfar_priv_rx_q { - struct gfar_rx_buff *rx_buff; - struct rxbd8 *rx_bd_base; - struct net_device *ndev; - struct device *dev; - u16 rx_ring_size; - u16 qindex; - struct gfar_priv_grp *grp; - u16 next_to_clean; - u16 next_to_use; - u16 next_to_alloc; - struct sk_buff *skb; - long: 32; - struct rx_q_stats stats; - u32 *rfbptr; - unsigned char rxcoalescing; - unsigned long rxic; - dma_addr_t rx_bd_dma_base; - long: 32; - long: 32; +struct ttc_timer_clockevent { + struct ttc_timer ttc; long: 32; long: 32; long: 32; @@ -119228,7246 +121977,6613 @@ struct gfar_priv_rx_q { long: 32; long: 32; long: 32; + struct clock_event_device ce; }; -struct gfar_rx_buff { - dma_addr_t dma; - struct page *page; - unsigned int page_offset; -}; - -struct rxbd8 { - union { - struct { - __be16 status; - __be16 length; - }; - __be32 lstatus; - }; - __be32 bufPtr; +struct bcma_soc { + struct bcma_bus bus; + struct device *dev; }; -struct gfar_irqinfo { - unsigned int irq; - char name[22]; +struct exynos_srom_reg_dump { + u32 offset; + u32 value; }; -struct gfar_filer_entry { - u32 ctrl; - u32 prop; +struct exynos_srom { + struct device *dev; + void *reg_base; + struct exynos_srom_reg_dump *reg_offset; }; -struct filer_table { - u32 index; - struct gfar_filer_entry fe[530]; +enum mpu3050_fullscale { + FS_250_DPS = 0, + FS_500_DPS = 1, + FS_1000_DPS = 2, + FS_2000_DPS = 3, }; -struct ave_private; - -struct ave_soc_data { - bool is_desc_64bit; - const char *clock_names[4]; - const char *reset_names[2]; - int (*get_pinmode)(struct ave_private *, phy_interface_t, u32); +enum mpu3050_lpf { + LPF_256_HZ_NOLPF = 0, + LPF_188_HZ = 1, + LPF_98_HZ = 2, + LPF_42_HZ = 3, + LPF_20_HZ = 4, + LPF_10_HZ = 5, + LPF_5_HZ = 6, + LPF_2100_HZ_NOLPF = 7, }; -struct ave_stats { - struct u64_stats_sync syncp; +struct mpu3050 { + struct device *dev; + struct iio_mount_matrix orientation; + struct regmap *map; + struct mutex lock; + int irq; + struct regulator_bulk_data regs[2]; + enum mpu3050_fullscale fullscale; + enum mpu3050_lpf lpf; + u8 divisor; + s16 calibration[3]; + struct iio_trigger *trig; + bool hw_irq_trigger; + bool irq_actl; + bool irq_latch; + bool irq_opendrain; + bool pending_fifo_footer; + s64 hw_timestamp; + struct i2c_mux_core *i2cmux; long: 32; - u64 packets; - u64 bytes; - u64 errors; - u64 dropped; - u64 collisions; - u64 fifo_errors; }; -struct ave_desc; +struct icc_rpm_smd_req { + __le32 key; + __le32 nbytes; + __le32 value; +}; -struct ave_desc_info { - u32 ndesc; - u32 daddr; - u32 proc_idx; - u32 done_idx; - struct ave_desc *desc; +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 ave_private { - void *base; - int irq; - int phy_id; - unsigned int desc_size; - u32 msg_enable; - int nclks; - struct clk *clk[4]; - int nrsts; - struct reset_control *rst[2]; - phy_interface_t phy_mode; - struct phy_device *phydev; - struct mii_bus *mdio; - struct regmap *regmap; - unsigned int pinmode_mask; - unsigned int pinmode_val; - u32 wolopts; - struct ave_stats stats_rx; - struct ave_stats stats_tx; - struct net_device *ndev; +struct gnet_stats_basic { + __u64 bytes; + __u32 packets; long: 32; - struct napi_struct napi_rx; - struct napi_struct napi_tx; - struct ave_desc_info rx; - struct ave_desc_info tx; - int pause_auto; - int pause_rx; - int pause_tx; - const struct ave_soc_data *data; }; -struct ave_desc { - struct sk_buff *skbs; - dma_addr_t skbs_dma; - size_t skbs_dmalen; +struct gnet_stats_rate_est { + __u32 bps; + __u32 pps; }; -enum desc_id { - AVE_DESCID_RX = 0, - AVE_DESCID_TX = 1, +struct tso_t { + int next_frag_idx; + int size; + void *data; + u16 ip_id; + u8 tlen; + bool ipv6; + u32 tcp_seq; }; -enum desc_state { - AVE_DESC_RX_PERMIT = 0, - AVE_DESC_RX_SUSPEND = 1, - AVE_DESC_START = 2, - AVE_DESC_STOP = 3, +struct strset_info { + bool per_dev; + bool free_strings; + unsigned int count; + const char (*strings)[32]; }; -struct sunxi_priv_data___2 { - phy_interface_t interface; - int clk_enabled; - struct clk *tx_clk; - struct regulator *regulator; +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, }; -struct usb_cdc_union_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bMasterInterface0; - __u8 bSlaveInterface0; +enum { + ETHTOOL_A_STRINGSETS_UNSPEC = 0, + ETHTOOL_A_STRINGSETS_STRINGSET = 1, + __ETHTOOL_A_STRINGSETS_CNT = 2, + ETHTOOL_A_STRINGSETS_MAX = 1, }; -struct usb_cdc_country_functional_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 iCountryCodeRelDate; - __le16 wCountyCode0; +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, }; -struct usb_cdc_header_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdCDC; -} __attribute__((packed)); +enum { + ETHTOOL_A_STRINGS_UNSPEC = 0, + ETHTOOL_A_STRINGS_STRING = 1, + __ETHTOOL_A_STRINGS_CNT = 2, + ETHTOOL_A_STRINGS_MAX = 1, +}; -struct usb_cdc_acm_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bmCapabilities; +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 usb_cdc_ether_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 iMACAddress; - __le32 bmEthernetStatistics; - __le16 wMaxSegmentSize; - __le16 wNumberMCFilters; - __u8 bNumberPowerFilters; -} __attribute__((packed)); +struct strset_req_info { + struct ethnl_req_info base; + u32 req_ids; + bool counts_only; +}; -struct usb_cdc_call_mgmt_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bmCapabilities; - __u8 bDataInterface; +struct strset_reply_data { + struct ethnl_reply_data base; + struct strset_info sets[21]; }; -struct usb_cdc_dmm_desc { - __u8 bFunctionLength; - __u8 bDescriptorType; - __u8 bDescriptorSubtype; - __u16 bcdVersion; - __le16 wMaxCommand; -} __attribute__((packed)); +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, +}; -struct usb_cdc_mdlm_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdVersion; - __u8 bGUID[16]; -} __attribute__((packed)); +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, +}; -struct usb_cdc_mdlm_detail_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bGuidDescriptorType; - __u8 bDetailData[0]; +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 usb_cdc_ncm_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdNcmVersion; - __u8 bmNetworkCapabilities; -} __attribute__((packed)); +struct pse_control_status { + enum ethtool_podl_pse_admin_state podl_admin_state; + enum ethtool_podl_pse_pw_d_status podl_pw_status; +}; -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 pse_reply_data { + struct ethnl_reply_data base; + struct pse_control_status status; +}; -struct usb_cdc_mbim_extended_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdMBIMExtendedVersion; - __u8 bMaxOutstandingCommandMessages; - __le16 wMTU; -} __attribute__((packed)); +struct pse_control_config { + enum ethtool_podl_pse_admin_state admin_cotrol; +}; -struct set_config_request { - struct usb_device *udev; - int config; - struct work_struct work; - struct list_head node; +struct ping_table { + struct hlist_head hash[64]; + spinlock_t lock; }; -struct api_context { - struct completion done; - int status; +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 usb_cdc_network_terminal_desc; +struct ping_iter_state { + struct seq_net_private p; + int bucket; + sa_family_t family; +}; -struct usb_cdc_obex_desc; +struct pingfakehdr { + struct icmphdr icmph; + struct msghdr *msg; + sa_family_t family; + __wsum wcheck; +}; -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; +enum { + NDUSEROPT_UNSPEC = 0, + NDUSEROPT_SRCADDR = 1, + __NDUSEROPT_MAX = 2, }; -struct usb_cdc_network_terminal_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bEntityId; - __u8 iName; - __u8 bChannelIndex; - __u8 bPhysicalInterface; +struct nd_msg { + struct icmp6hdr icmph; + struct in6_addr target; + __u8 opt[0]; }; -struct usb_cdc_obex_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdVersion; -} __attribute__((packed)); +struct rs_msg { + struct icmp6hdr icmph; + __u8 opt[0]; +}; -enum dwc2_hsotg_dmamode { - S3C_HSOTG_DMA_NONE = 0, - S3C_HSOTG_DMA_ONLY = 1, - S3C_HSOTG_DMA_DRV = 2, +struct ra_msg { + struct icmp6hdr icmph; + __be32 reachable_time; + __be32 retrans_timer; }; -struct dwc2_hsotg_plat { - enum dwc2_hsotg_dmamode dma; - unsigned int is_osc: 1; - int phy_type; - int (*phy_init)(struct platform_device *, int); - int (*phy_exit)(struct platform_device *, int); +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 xhci_file_map { - const char *name; - int (*show)(struct seq_file *, void *); +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 *); + struct sk_buff * (*xfrm6_gro_udp_encap_rcv)(struct sock *, struct list_head *, 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 xhci_regset { - char name[32]; - struct debugfs_regset32 regset; - size_t nregs; - struct list_head list; +struct dsa_stubs { + int (*conduit_hwtstamp_validate)(struct net_device *, const struct kernel_hwtstamp_config *, struct netlink_ext_ack *); }; -struct xhci_ep_priv; +typedef void (*btf_trace_handshake_submit)(void *, const struct net *, const struct handshake_req *, const struct sock *); -struct xhci_slot_priv { - char name[32]; - struct dentry *root; - struct xhci_ep_priv *eps[31]; - struct xhci_virt_device *dev; -}; +typedef void (*btf_trace_handshake_submit_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -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; -}; +typedef void (*btf_trace_handshake_cancel)(void *, const struct net *, const struct handshake_req *, const struct sock *); -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; -}; +typedef void (*btf_trace_handshake_cancel_none)(void *, const struct net *, const struct handshake_req *, const struct sock *); -struct trackpoint_attr_data { - size_t field_offset; - u8 command; - u8 mask; - bool inverted; - u8 power_on_default; -}; +typedef void (*btf_trace_handshake_cancel_busy)(void *, const struct net *, const struct handshake_req *, const struct sock *); -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; -}; +typedef void (*btf_trace_handshake_destruct)(void *, const struct net *, const struct handshake_req *, const struct sock *); -struct i2c_smbus_alert { - struct work_struct alert; - struct i2c_client *ara; -}; +typedef void (*btf_trace_handshake_complete)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -struct alert_data { - unsigned short addr; - enum i2c_alert_protocol type; - unsigned int data; +typedef void (*btf_trace_handshake_notify_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_cmd_accept)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_cmd_accept_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_cmd_done)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_handshake_cmd_done_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); + +typedef void (*btf_trace_tls_contenttype)(void *, const struct sock *, unsigned char); + +typedef void (*btf_trace_tls_alert_send)(void *, const struct sock *, unsigned char, unsigned char); + +typedef void (*btf_trace_tls_alert_recv)(void *, const struct sock *, unsigned char, unsigned char); + +struct trace_event_raw_handshake_event_class { + struct trace_entry ent; + const void *req; + const void *sk; + unsigned int netns_ino; + char __data[0]; }; -struct i2c_slave_host_notify_status { - u8 index; - u8 addr; +struct trace_event_raw_handshake_error_class { + struct trace_entry ent; + const void *req; + const void *sk; + int err; + unsigned int netns_ino; + char __data[0]; }; -enum muxtype { - pca954x_ismux = 0, - pca954x_isswi = 1, +struct trace_event_raw_handshake_complete { + struct trace_entry ent; + const void *req; + const void *sk; + int status; + unsigned int netns_ino; + char __data[0]; }; -struct i2c_device_identity { - u16 manufacturer_id; - u16 part_id; - u8 die_revision; +struct trace_event_raw_handshake_fd_class { + struct trace_entry ent; + const void *req; + const void *sk; + int fd; + unsigned int netns_ino; + char __data[0]; }; -struct chip_desc___2 { - u8 nchans; - u8 enable; - u8 has_irq; - enum muxtype muxtype; - struct i2c_device_identity id; +struct trace_event_raw_tls_contenttype { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + unsigned int netns_ino; + unsigned long type; + char __data[0]; }; -struct pca954x { - const struct chip_desc___2 *chip; - u8 last_chan; - s32 idle_state; - struct i2c_client *client; - struct irq_domain *irq; - unsigned int irq_mask; - raw_spinlock_t lock; +struct trace_event_raw_handshake_alert_class { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + unsigned int netns_ino; + unsigned long level; + unsigned long description; + char __data[0]; }; -typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long); +struct trace_event_data_offsets_handshake_event_class {}; -typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long); +struct trace_event_data_offsets_handshake_fd_class {}; -typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *); +struct trace_event_data_offsets_handshake_error_class {}; -enum hwmon_in_attributes { - hwmon_in_enable = 0, - hwmon_in_input = 1, - hwmon_in_min = 2, - hwmon_in_max = 3, - hwmon_in_lcrit = 4, - hwmon_in_crit = 5, - hwmon_in_average = 6, - hwmon_in_lowest = 7, - hwmon_in_highest = 8, - hwmon_in_reset_history = 9, - hwmon_in_label = 10, - hwmon_in_alarm = 11, - hwmon_in_min_alarm = 12, - hwmon_in_max_alarm = 13, - hwmon_in_lcrit_alarm = 14, - hwmon_in_crit_alarm = 15, - hwmon_in_rated_min = 16, - hwmon_in_rated_max = 17, - hwmon_in_beep = 18, +struct trace_event_data_offsets_handshake_alert_class {}; + +struct trace_event_data_offsets_handshake_complete {}; + +struct trace_event_data_offsets_tls_contenttype {}; + +struct omap_sdrc_params { + unsigned long rate; + u32 actim_ctrla; + u32 actim_ctrlb; + u32 rfr_ctrl; + u32 mr; }; -enum hwmon_curr_attributes { - hwmon_curr_enable = 0, - hwmon_curr_input = 1, - hwmon_curr_min = 2, - hwmon_curr_max = 3, - hwmon_curr_lcrit = 4, - hwmon_curr_crit = 5, - hwmon_curr_average = 6, - hwmon_curr_lowest = 7, - hwmon_curr_highest = 8, - hwmon_curr_reset_history = 9, - hwmon_curr_label = 10, - hwmon_curr_alarm = 11, - hwmon_curr_min_alarm = 12, - hwmon_curr_max_alarm = 13, - hwmon_curr_lcrit_alarm = 14, - hwmon_curr_crit_alarm = 15, - hwmon_curr_rated_min = 16, - hwmon_curr_rated_max = 17, - hwmon_curr_beep = 18, +struct omap2_sms_regs { + u32 sms_sysconfig; }; -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, +struct omap3_idle_statedata { + u8 mpu_state; + u8 core_state; + u8 per_min_state; + u8 flags; }; -enum hwmon_energy_attributes { - hwmon_energy_enable = 0, - hwmon_energy_input = 1, - hwmon_energy_label = 2, +struct regulator_quirk { + struct list_head list; + const struct of_device_id *id; + struct device_node *np; + struct of_phandle_args irq_args; + struct i2c_msg i2c_msg; + bool shared; }; -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, +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; }; -enum hwmon_fan_attributes { - hwmon_fan_enable = 0, - hwmon_fan_input = 1, - hwmon_fan_label = 2, - hwmon_fan_min = 3, - hwmon_fan_max = 4, - hwmon_fan_div = 5, - hwmon_fan_pulses = 6, - hwmon_fan_target = 7, - hwmon_fan_alarm = 8, - hwmon_fan_min_alarm = 9, - hwmon_fan_max_alarm = 10, - hwmon_fan_fault = 11, - hwmon_fan_beep = 12, +struct 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 trace_event_raw_hwmon_attr_class { - struct trace_entry ent; - int index; - u32 __data_loc_attr_name; - long val; - char __data[0]; +struct waitid_info { + pid_t pid; + uid_t uid; + int status; + int cause; }; -struct trace_event_raw_hwmon_attr_show_string { +struct latch_tree_ops { + bool (*less)(struct latch_tree_node *, struct latch_tree_node *); + int (*comp)(void *, struct latch_tree_node *); +}; + +struct futex_waitv { + __u64 val; + __u64 uaddr; + __u32 flags; + __u32 __reserved; +}; + +struct futex_vector { + struct futex_waitv w; + struct futex_q q; +}; + +typedef unsigned long perf_trace_t[2048]; + +struct ftrace_entry { struct trace_entry ent; - int index; - u32 __data_loc_attr_name; - u32 __data_loc_label; - char __data[0]; + unsigned long ip; + unsigned long parent_ip; }; -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; - long: 32; +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 hwmon_thermal_data { - struct list_head node; - struct device *dev; - int index; - struct thermal_zone_device *tzd; +struct bpf_bprintf_buffers { + char bin_args[512]; + char buf[1024]; }; -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]; +enum { + BPF_F_INDEX_MASK = 4294967295ULL, + BPF_F_CURRENT_CPU = 4294967295ULL, + BPF_F_CTXLEN_MASK = 4503595332403200ULL, }; -struct trace_event_data_offsets_hwmon_attr_class { - u32 attr_name; +enum { + BPF_F_TIMER_ABS = 1, + BPF_F_TIMER_CPU_PIN = 2, }; -struct trace_event_data_offsets_hwmon_attr_show_string { - u32 attr_name; - u32 label; -}; +typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *); -struct nvmem_cell; +typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64); -struct qcom_cpufreq_drv; +typedef u64 (*btf_bpf_map_delete_elem)(struct bpf_map *, void *); -struct qcom_cpufreq_match_data { - int (*get_version)(struct device *, struct nvmem_cell *, char **, struct qcom_cpufreq_drv *); - const char **genpd_names; -}; +typedef u64 (*btf_bpf_map_push_elem)(struct bpf_map *, void *, u64); -struct qcom_cpufreq_drv { - int *opp_tokens; - u32 versions; - const struct qcom_cpufreq_match_data *data; -}; +typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *); -enum dw_mci_exynos_type { - DW_MCI_TYPE_EXYNOS4210 = 0, - DW_MCI_TYPE_EXYNOS4412 = 1, - DW_MCI_TYPE_EXYNOS5250 = 2, - DW_MCI_TYPE_EXYNOS5420 = 3, - DW_MCI_TYPE_EXYNOS5420_SMU = 4, - DW_MCI_TYPE_EXYNOS7 = 5, - DW_MCI_TYPE_EXYNOS7_SMU = 6, - DW_MCI_TYPE_ARTPEC8 = 7, -}; +typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *); -struct dw_mci_exynos_compatible { - char *compatible; - enum dw_mci_exynos_type ctrl_type; -}; +typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32); -struct dw_mci_exynos_priv_data { - enum dw_mci_exynos_type ctrl_type; - u8 ciu_div; - u32 sdr_timing; - u32 ddr_timing; - u32 hs400_timing; - u32 tuned_sample; - u32 cur_speed; - u32 dqs_delay; - u32 saved_dqs_en; - u32 saved_strobe_ctrl; -}; +typedef u64 (*btf_bpf_get_smp_processor_id)(); -struct scmi_powercap_info; +typedef u64 (*btf_bpf_get_numa_node_id)(); -struct scmi_powercap_proto_ops { - int (*num_domains_get)(const struct scmi_protocol_handle *); - const struct scmi_powercap_info * (*info_get)(const struct scmi_protocol_handle *, u32); - int (*cap_get)(const struct scmi_protocol_handle *, u32, u32 *); - int (*cap_set)(const struct scmi_protocol_handle *, u32, u32, bool); - int (*cap_enable_set)(const struct scmi_protocol_handle *, u32, bool); - int (*cap_enable_get)(const struct scmi_protocol_handle *, u32, bool *); - int (*pai_get)(const struct scmi_protocol_handle *, u32, u32 *); - int (*pai_set)(const struct scmi_protocol_handle *, u32, u32); - int (*measurements_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); - int (*measurements_threshold_set)(const struct scmi_protocol_handle *, u32, u32, u32); - int (*measurements_threshold_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); -}; +typedef u64 (*btf_bpf_ktime_get_ns)(); -struct scmi_fc_info; +typedef u64 (*btf_bpf_ktime_get_boot_ns)(); -struct scmi_powercap_info { - unsigned int id; - bool notify_powercap_cap_change; - bool notify_powercap_measurement_change; - bool async_powercap_cap_set; - bool powercap_cap_config; - bool powercap_monitoring; - bool powercap_pai_config; - bool powercap_scale_mw; - bool powercap_scale_uw; - bool fastchannels; - char name[64]; - unsigned int min_pai; - unsigned int max_pai; - unsigned int pai_step; - unsigned int min_power_cap; - unsigned int max_power_cap; - unsigned int power_cap_step; - unsigned int sustainable_power; - unsigned int accuracy; - unsigned int parent_id; - struct scmi_fc_info *fc_info; -}; +typedef u64 (*btf_bpf_ktime_get_coarse_ns)(); -struct scmi_fc_info { - void *set_addr; - void *get_addr; - struct scmi_fc_db_info *set_db; -}; +typedef u64 (*btf_bpf_ktime_get_tai_ns)(); -enum scmi_powercap_protocol_cmd { - POWERCAP_DOMAIN_ATTRIBUTES = 3, - POWERCAP_CAP_GET = 4, - POWERCAP_CAP_SET = 5, - POWERCAP_PAI_GET = 6, - POWERCAP_PAI_SET = 7, - POWERCAP_DOMAIN_NAME_GET = 8, - POWERCAP_MEASUREMENTS_GET = 9, - POWERCAP_CAP_NOTIFY = 10, - POWERCAP_MEASUREMENTS_NOTIFY = 11, - POWERCAP_DESCRIBE_FASTCHANNEL = 12, -}; +typedef u64 (*btf_bpf_get_current_pid_tgid)(); -enum { - POWERCAP_FC_CAP = 0, - POWERCAP_FC_PAI = 1, - POWERCAP_FC_MAX = 2, -}; +typedef u64 (*btf_bpf_get_current_uid_gid)(); -struct scmi_powercap_state; +typedef u64 (*btf_bpf_get_current_comm)(char *, u32); -struct powercap_info { - u32 version; - int num_domains; - struct scmi_powercap_state *states; - struct scmi_powercap_info *powercaps; -}; +struct bpf_spin_lock; -struct scmi_powercap_state { - bool enabled; - u32 last_pcap; - bool meas_notif_enabled; - long: 32; - u64 thresholds; -}; +typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *); -struct scmi_msg_resp_powercap_domain_attributes { - __le32 attributes; - u8 name[16]; - __le32 min_pai; - __le32 max_pai; - __le32 pai_step; - __le32 min_power_cap; - __le32 max_power_cap; - __le32 power_cap_step; - __le32 sustainable_power; - __le32 accuracy; - __le32 parent_id; +struct bpf_spin_lock { + __u32 val; }; -struct scmi_msg_powercap_set_cap_or_pai { - __le32 domain; - __le32 flags; - __le32 value; -}; +typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *); -struct scmi_msg_resp_powercap_cap_set_complete { - __le32 domain; - __le32 power_cap; -}; +typedef u64 (*btf_bpf_jiffies64)(); -struct scmi_msg_resp_powercap_meas_get { - __le32 power; - __le32 pai; -}; +typedef u64 (*btf_bpf_get_current_cgroup_id)(); -struct scmi_msg_powercap_notify_cap { - __le32 domain; - __le32 notify_enable; -}; +typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int); -struct scmi_msg_powercap_notify_thresh { - __le32 domain; - __le32 notify_enable; - __le32 power_thresh_low; - __le32 power_thresh_high; -}; +typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, long *); -struct scmi_powercap_cap_changed_notify_payld { - __le32 agent_id; - __le32 domain_id; - __le32 power_cap; - __le32 pai; -}; +typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, unsigned long *); -struct scmi_powercap_cap_changed_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int domain_id; - unsigned int power_cap; - unsigned int pai; -}; +typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *); -struct scmi_powercap_meas_changed_notify_payld { - __le32 agent_id; - __le32 domain_id; - __le32 power; -}; +struct bpf_pidns_info; -struct scmi_powercap_meas_changed_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int domain_id; - unsigned int power; - long: 32; -}; +typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32); -struct pmu_irq_ops { - void (*enable_pmuirq)(unsigned int); - void (*disable_pmuirq)(unsigned int); - void (*free_pmuirq)(unsigned int, int, void __attribute__((btf_type_tag("percpu"))) *); +struct bpf_pidns_info { + __u32 pid; + __u32 tgid; }; -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, -}; +typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64); -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, -}; +typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); -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, -}; +typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void __attribute__((btf_type_tag("user"))) *, struct task_struct *, u64); -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, -}; +typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32); -typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *); +typedef u64 (*btf_bpf_this_cpu_ptr)(const void *); -enum { - ETHTOOL_A_HEADER_UNSPEC = 0, - ETHTOOL_A_HEADER_DEV_INDEX = 1, - ETHTOOL_A_HEADER_DEV_NAME = 2, - ETHTOOL_A_HEADER_FLAGS = 3, - __ETHTOOL_A_HEADER_CNT = 4, - ETHTOOL_A_HEADER_MAX = 3, -}; +typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32); -enum ethtool_multicast_groups { - ETHNL_MCGRP_MONITOR = 0, -}; +struct bpf_timer_kern; -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; -}; +typedef u64 (*btf_bpf_timer_init)(struct bpf_timer_kern *, struct bpf_map *, u64); -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, +struct bpf_timer_kern { + struct bpf_hrtimer *timer; + struct bpf_spin_lock lock; }; -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, -}; +typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *); -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, -}; +typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64); -struct km_event; +typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *); -struct xfrm_migrate; +typedef u64 (*btf_bpf_kptr_xchg)(void *, void *); -struct xfrm_kmaddress; +typedef u64 (*btf_bpf_dynptr_from_mem)(void *, u32, u64, struct bpf_dynptr_kern *); -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 *); -}; +typedef u64 (*btf_bpf_dynptr_read)(void *, u32, const struct bpf_dynptr_kern *, u32, u64); -struct km_event { - union { - u32 hard; - u32 proto; - u32 byid; - u32 aevent; - u32 type; - } data; - u32 seq; - u32 portid; - u32 event; - struct net *net; +typedef u64 (*btf_bpf_dynptr_write)(const struct bpf_dynptr_kern *, u32, void *, u32, u64); + +typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32); + +struct bpf_refcount { + long: 32; }; -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 bpf_rb_node_kern { + struct rb_node rb_node; + void *owner; }; -struct xfrm_kmaddress { - xfrm_address_t local; - xfrm_address_t remote; - u32 reserved; - u16 family; +struct bpf_rb_node { + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct xfrmk_sadinfo { - u32 sadhcnt; - u32 sadhmcnt; - u32 sadcnt; +struct bpf_timer { + long: 32; + long: 32; + long: 32; + long: 32; }; -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 bpf_dynptr { + long: 32; + long: 32; + long: 32; + long: 32; }; -struct xfrm_input_afinfo { - u8 family; - bool is_ipip; - int (*callback)(struct sk_buff *, u8, int); +struct bpf_list_node_kern { + struct list_head list_head; + void *owner; + long: 32; }; -struct xfrm_spi_skb_cb { - struct xfrm_tunnel_skb_cb header; - unsigned int daddroff; - unsigned int family; - __be32 seq; +struct bpf_list_node { + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum rpc_msg_type { - RPC_CALL = 0, - RPC_REPLY = 1, +struct bpf_bprintf_data { + u32 *bin_args; + char *buf; + bool get_bin_args; + bool get_buf; }; -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 bpf_list_head { + long: 32; + long: 32; + long: 32; + long: 32; }; -enum handshake_handler_class { - HANDSHAKE_HANDLER_CLASS_NONE = 0, - HANDSHAKE_HANDLER_CLASS_TLSHD = 1, - HANDSHAKE_HANDLER_CLASS_MAX = 2, +struct bpf_rb_root { + long: 32; + long: 32; + long: 32; + long: 32; }; -enum hn_flags_bits { - HANDSHAKE_F_NET_DRAINING = 0, +struct btf_id_dtor_kfunc { + u32 btf_id; + u32 kfunc_btf_id; }; -enum hr_flags_bits { - HANDSHAKE_F_REQ_COMPLETED = 0, +struct bpf_throw_ctx { + struct bpf_prog_aux *aux; + long: 32; + u64 sp; + u64 bp; + int cnt; + long: 32; }; -struct handshake_proto; +typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int); -struct handshake_req { - struct list_head hr_list; - struct rhash_head hr_rhash; - unsigned long hr_flags; - const struct handshake_proto *hr_proto; - struct sock *hr_sk; - void (*hr_odestruct)(struct sock *); - char hr_priv[0]; -}; +typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int); -struct handshake_proto { - int hp_handler_class; - size_t hp_privsize; - unsigned long hp_flags; - int (*hp_accept)(struct handshake_req *, struct genl_info *, int); - void (*hp_done)(struct handshake_req *, unsigned int, struct genl_info *); - void (*hp_destroy)(struct handshake_req *); -}; +typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t); -struct handshake_net { - spinlock_t hn_lock; - int hn_pending; - int hn_pending_max; - struct list_head hn_requests; - unsigned long hn_flags; -}; +typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t); -struct svc_pt_regs { - struct pt_regs regs; - u32 dacr; -}; +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t); -struct mtk_smp_boot_info { - unsigned long smp_base; - unsigned int jump_reg; - unsigned int core_keys[7]; - unsigned int core_regs[7]; -}; +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t); -struct omap3_cm_regs { - u32 iva2_cm_clksel1; - u32 iva2_cm_clksel2; - u32 cm_sysconfig; - u32 sgx_cm_clksel; - u32 dss_cm_clksel; - u32 cam_cm_clksel; - u32 per_cm_clksel; - u32 emu_cm_clksel; - u32 emu_cm_clkstctrl; - u32 pll_cm_autoidle; - u32 pll_cm_autoidle2; - u32 pll_cm_clksel4; - u32 pll_cm_clksel5; - u32 pll_cm_clken2; - u32 cm_polctrl; - u32 iva2_cm_fclken; - u32 iva2_cm_clken_pll; - u32 core_cm_fclken1; - u32 core_cm_fclken3; - u32 sgx_cm_fclken; - u32 wkup_cm_fclken; - u32 dss_cm_fclken; - u32 cam_cm_fclken; - u32 per_cm_fclken; - u32 usbhost_cm_fclken; - u32 core_cm_iclken1; - u32 core_cm_iclken2; - u32 core_cm_iclken3; - u32 sgx_cm_iclken; - u32 wkup_cm_iclken; - u32 dss_cm_iclken; - u32 cam_cm_iclken; - u32 per_cm_iclken; - u32 usbhost_cm_iclken; - u32 iva2_cm_autoidle2; - u32 mpu_cm_autoidle2; - u32 iva2_cm_clkstctrl; - u32 mpu_cm_clkstctrl; - u32 core_cm_clkstctrl; - u32 sgx_cm_clkstctrl; - u32 dss_cm_clkstctrl; - u32 cam_cm_clkstctrl; - u32 per_cm_clkstctrl; - u32 neon_cm_clkstctrl; - u32 usbhost_cm_clkstctrl; - u32 core_cm_autoidle1; - u32 core_cm_autoidle2; - u32 core_cm_autoidle3; - u32 wkup_cm_autoidle; - u32 dss_cm_autoidle; - u32 cam_cm_autoidle; - u32 per_cm_autoidle; - u32 usbhost_cm_autoidle; - u32 sgx_cm_sleepdep; - u32 dss_cm_sleepdep; - u32 cam_cm_sleepdep; - u32 per_cm_sleepdep; - u32 usbhost_cm_sleepdep; - u32 cm_clkout_ctrl; -}; +typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, unsigned long); -enum { - PWRDM_STATE_NOW = 0, - PWRDM_STATE_PREV = 1, -}; +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, unsigned long); -enum sysctl_writes_mode { - SYSCTL_WRITES_LEGACY = -1, - SYSCTL_WRITES_WARN = 0, - SYSCTL_WRITES_STRICT = 1, -}; +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, unsigned long); -struct do_proc_dointvec_minmax_conv_param { - int *min; - int *max; -}; +typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long, unsigned long, unsigned long long, unsigned long, int); -struct do_proc_douintvec_minmax_conv_param { - unsigned int *min; - unsigned int *max; -}; +typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long, long, long); -typedef void (*btf_trace_cgroup_setup_root)(void *, struct cgroup_root *); +typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, unsigned long, unsigned long, unsigned long, unsigned long, int); -typedef void (*btf_trace_cgroup_destroy_root)(void *, struct cgroup_root *); +typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *); -typedef void (*btf_trace_cgroup_remount)(void *, struct cgroup_root *); +struct reclaim_stat; -typedef void (*btf_trace_cgroup_mkdir)(void *, struct cgroup *, const char *); +typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, unsigned long, unsigned long, struct reclaim_stat *, int, int); -typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *); +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_cgroup_release)(void *, struct cgroup *, const char *); +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_cgroup_rename)(void *, struct cgroup *, const char *); +typedef void (*btf_trace_mm_vmscan_node_reclaim_begin)(void *, int, int, gfp_t); -typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *); +typedef void (*btf_trace_mm_vmscan_node_reclaim_end)(void *, unsigned long); -typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *); +typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int); -typedef void (*btf_trace_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool); +enum folio_references { + FOLIOREF_RECLAIM = 0, + FOLIOREF_RECLAIM_CLEAN = 1, + FOLIOREF_KEEP = 2, + FOLIOREF_ACTIVATE = 3, +}; -typedef void (*btf_trace_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool); +enum pgdat_flags { + PGDAT_DIRTY = 0, + PGDAT_WRITEBACK = 1, + PGDAT_RECLAIM_LOCKED = 2, +}; -typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const char *, int); +enum ttu_flags { + TTU_SPLIT_HUGE_PMD = 4, + TTU_IGNORE_MLOCK = 8, + TTU_SYNC = 16, + TTU_HWPOISON = 32, + TTU_BATCH_FLUSH = 64, + TTU_RMAP_LOCKED = 128, +}; -typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int); +enum zone_watermarks { + WMARK_MIN = 0, + WMARK_LOW = 1, + WMARK_HIGH = 2, + WMARK_PROMO = 3, + NR_WMARK = 4, +}; -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, +enum lruvec_flags { + LRUVEC_CGROUP_CONGESTED = 0, + LRUVEC_NODE_CONGESTED = 1, }; -enum cgroup2_param { - Opt_nsdelegate = 0, - Opt_favordynmods___2 = 1, - Opt_memory_localevents = 2, - Opt_memory_recursiveprot = 3, - nr__cgroup2_params = 4, +enum scan_balance { + SCAN_EQUAL = 0, + SCAN_FRACT = 1, + SCAN_ANON = 2, + SCAN_FILE = 3, }; -enum cgroup_opt_features { - OPT_FEATURE_COUNT = 0, +enum zone_flags { + ZONE_BOOSTED_WATERMARK = 0, + ZONE_RECLAIM_ACTIVE = 1, + ZONE_BELOW_HIGH = 2, }; -struct trace_event_raw_cgroup_root { +struct trace_event_raw_mm_vmscan_kswapd_sleep { struct trace_entry ent; - int root; - u16 ss_mask; - u32 __data_loc_name; + int nid; char __data[0]; }; -struct trace_event_raw_cgroup { +struct trace_event_raw_mm_vmscan_kswapd_wake { struct trace_entry ent; - int root; - int level; - u64 id; - u32 __data_loc_path; + int nid; + int zid; + int order; char __data[0]; - long: 32; }; -struct trace_event_raw_cgroup_migrate { +struct trace_event_raw_mm_vmscan_wakeup_kswapd { struct trace_entry ent; - int dst_root; - int dst_level; - u64 dst_id; - int pid; - u32 __data_loc_dst_path; - u32 __data_loc_comm; + int nid; + int zid; + int order; + unsigned long gfp_flags; char __data[0]; - long: 32; }; -struct trace_event_raw_cgroup_event { +struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template { struct trace_entry ent; - int root; - int level; - u64 id; - u32 __data_loc_path; - int val; + int order; + unsigned long gfp_flags; char __data[0]; }; -struct trace_event_data_offsets_cgroup_root { - u32 name; +struct trace_event_raw_mm_vmscan_direct_reclaim_end_template { + struct trace_entry ent; + unsigned long nr_reclaimed; + char __data[0]; }; -struct trace_event_data_offsets_cgroup { - u32 path; +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_data_offsets_cgroup_migrate { - u32 dst_path; - u32 comm; +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_data_offsets_cgroup_event { - u32 path; +struct trace_event_raw_mm_vmscan_lru_isolate { + struct trace_entry ent; + int highest_zoneidx; + int order; + unsigned long nr_requested; + unsigned long nr_scanned; + unsigned long nr_skipped; + unsigned long nr_taken; + int lru; + char __data[0]; }; -struct callchain_cpus_entries { - struct callback_head callback_head; - struct perf_callchain_entry *cpu_entries[0]; +struct trace_event_raw_mm_vmscan_write_folio { + struct trace_entry ent; + unsigned long pfn; + int reclaim_flags; + char __data[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 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 perf_event_mmap_page; +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 perf_buffer { - refcount_t refcount; - struct callback_head callback_head; - struct work_struct work; - int page_order; - 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 trace_event_raw_mm_vmscan_node_reclaim_begin { + struct trace_entry ent; + int nid; + int order; + unsigned long gfp_flags; + char __data[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 trace_event_raw_mm_vmscan_throttled { + struct trace_entry ent; + int nid; + int usec_timeout; + int usec_delayed; + int reason; + char __data[0]; }; -typedef void (*btf_trace_kmem_cache_alloc)(void *, unsigned long, const void *, struct kmem_cache *, gfp_t, int); +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 void (*btf_trace_kmalloc)(void *, unsigned long, const void *, size_t, size_t, gfp_t, int); +typedef enum { + PAGE_KEEP = 0, + PAGE_ACTIVATE = 1, + PAGE_SUCCESS = 2, + PAGE_CLEAN = 3, +} pageout_t; -typedef void (*btf_trace_kfree)(void *, unsigned long, const void *); +struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {}; -typedef void (*btf_trace_kmem_cache_free)(void *, unsigned long, const void *, const struct kmem_cache *); +struct trace_event_data_offsets_mm_vmscan_kswapd_wake {}; -typedef void (*btf_trace_mm_page_free)(void *, struct page *, unsigned int); +struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {}; -typedef void (*btf_trace_mm_page_free_batched)(void *, struct page *); +struct trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {}; -typedef void (*btf_trace_mm_page_alloc)(void *, struct page *, unsigned int, gfp_t, int); +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 proc_fs_opts { + int flag; + const char *str; +}; + +enum clear_refs_types { + CLEAR_REFS_ALL = 1, + CLEAR_REFS_ANON = 2, + CLEAR_REFS_MAPPED = 3, + CLEAR_REFS_SOFT_DIRTY = 4, + CLEAR_REFS_MM_HIWATER_RSS = 5, + CLEAR_REFS_LAST = 6, +}; + +struct page_region { + __u64 start; + __u64 end; + __u64 categories; +}; + +struct proc_maps_private { + struct inode *inode; + struct task_struct *task; + struct mm_struct *mm; + struct vma_iterator iter; +}; + +struct pm_scan_arg { + __u64 size; + __u64 flags; + __u64 start; + __u64 end; + __u64 walk_end; + __u64 vec; + __u64 vec_len; + __u64 max_pages; + __u64 category_inverted; + __u64 category_mask; + __u64 category_anyof_mask; + __u64 return_mask; +}; + +struct pagemap_scan_private { + struct pm_scan_arg arg; + unsigned long masks_of_interest; + unsigned long cur_vma_category; + struct page_region *vec_buf; + unsigned long vec_buf_len; + unsigned long vec_buf_index; + unsigned long found_pages; + struct page_region __attribute__((btf_type_tag("user"))) *vec_out; + long: 32; +}; + +struct mem_size_stats { + unsigned long resident; + unsigned long shared_clean; + unsigned long shared_dirty; + unsigned long private_clean; + unsigned long private_dirty; + unsigned long referenced; + unsigned long anonymous; + unsigned long lazyfree; + unsigned long anonymous_thp; + unsigned long shmem_thp; + unsigned long file_thp; + unsigned long swap; + unsigned long shared_hugetlb; + unsigned long private_hugetlb; + unsigned long ksm; + long: 32; + u64 pss; + u64 pss_anon; + u64 pss_file; + u64 pss_shmem; + u64 pss_dirty; + u64 pss_locked; + u64 swap_pss; +}; -typedef void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int, int); +typedef struct { + u64 pme; +} pagemap_entry_t; -typedef void (*btf_trace_mm_page_pcpu_drain)(void *, struct page *, unsigned int, int); +struct pagemapread { + int pos; + int len; + pagemap_entry_t *buffer; + bool show_pfn; +}; -typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int); +struct clear_refs_private { + enum clear_refs_types type; +}; -typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int); +struct configfs_fragment { + atomic_t frag_count; + struct rw_semaphore frag_sem; + bool frag_dead; +}; -struct kmalloc_info_struct { - const char *name[3]; - unsigned int size; +struct configfs_dirent { + atomic_t s_count; + int s_dependent_count; + struct list_head s_sibling; + struct list_head s_children; + int s_links; + void *s_element; + int s_type; + umode_t s_mode; + struct dentry *s_dentry; + struct iattr *s_iattr; + struct configfs_fragment *s_frag; }; -enum slab_state { - DOWN___3 = 0, - PARTIAL = 1, - PARTIAL_NODE = 2, - UP___3 = 3, - FULL = 4, +struct configfs_buffer { + size_t count; + long: 32; + loff_t pos; + char *page; + struct configfs_item_operations *ops; + struct mutex mutex; + int needs_read_fill; + bool read_in_progress; + bool write_in_progress; + char *bin_buffer; + int bin_buffer_size; + int cb_max_size; + struct config_item *item; + struct module *owner; + union { + struct configfs_attribute *attr; + struct configfs_bin_attribute *bin_attr; + }; + long: 32; }; -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]; +enum bio_post_read_step { + STEP_INITIAL = 0, + STEP_DECRYPT = 1, + STEP_VERITY = 2, + STEP_MAX = 3, }; -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 bio_post_read_ctx { + struct bio *bio; + struct work_struct work; + unsigned int cur_step; + unsigned int enabled_steps; }; -struct trace_event_raw_kfree { - struct trace_entry ent; - unsigned long call_site; - const void *ptr; - char __data[0]; +struct jbd2_revoke_table_s { + int hash_size; + int hash_shift; + struct list_head *hash_table; }; -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 jbd2_revoke_record_s { + struct list_head hash; + tid_t sequence; + long: 32; + unsigned long long blocknr; }; -struct trace_event_raw_mm_page_free { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - char __data[0]; +struct nfs_createdata { + struct nfs_createargs arg; + struct nfs_diropok res; + struct nfs_fh fhandle; + long: 32; + struct nfs_fattr fattr; }; -struct trace_event_raw_mm_page_free_batched { - struct trace_entry ent; - unsigned long pfn; - char __data[0]; +struct getdents_callback { + struct dir_context ctx; + char *name; + long: 32; + u64 ino; + int found; + int sequence; }; -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]; +enum { + UBIFS_ITYPE_REG = 0, + UBIFS_ITYPE_DIR = 1, + UBIFS_ITYPE_LNK = 2, + UBIFS_ITYPE_BLK = 3, + UBIFS_ITYPE_CHR = 4, + UBIFS_ITYPE_FIFO = 5, + UBIFS_ITYPE_SOCK = 6, + UBIFS_ITYPES_CNT = 7, }; -struct trace_event_raw_mm_page { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - int migratetype; - int percpu_refill; - char __data[0]; +typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *); + +struct debugfs_fsdata { + const struct file_operations *real_fops; + union { + debugfs_automount_t automount; + struct { + refcount_t active_users; + struct completion active_users_drained; + struct mutex cancellations_mtx; + struct list_head cancellations; + }; + }; }; -struct trace_event_raw_mm_page_pcpu_drain { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - int migratetype; - char __data[0]; +struct debugfs_cancellation { + struct list_head list; + void (*cancel)(struct dentry *, void *); + void *cancel_data; }; -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 debugfs_blob_wrapper { + void *data; + unsigned long size; }; -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 debugfs_devm_entry { + int (*read)(struct seq_file *, void *); + struct device *dev; }; -struct trace_event_data_offsets_kmem_cache_free { - u32 name; +struct chksum_ctx { + u32 key; }; -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 chksum_desc_ctx { + u32 crc; }; -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; +enum { + ICQ_EXITED = 4, + ICQ_DESTROYED = 8, }; -struct trace_event_data_offsets_kmem_cache_alloc {}; +struct rq_wait; -struct trace_event_data_offsets_kmalloc {}; +typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); -struct trace_event_data_offsets_kfree {}; +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 trace_event_data_offsets_mm_page_free {}; +struct rq_wait { + wait_queue_head_t wait; + atomic_t inflight; +}; -struct trace_event_data_offsets_mm_page_free_batched {}; +struct rq_depth { + unsigned int max_depth; + int scale_step; + bool scaled_max; + unsigned int queue_depth; + unsigned int default_depth; +}; -struct trace_event_data_offsets_mm_page_alloc {}; +typedef void cleanup_cb_t(struct rq_wait *, void *); -struct trace_event_data_offsets_mm_page {}; +struct io_splice { + struct file *file_out; + long: 32; + loff_t off_out; + loff_t off_in; + u64 len; + int splice_fd_in; + unsigned int flags; +}; -struct trace_event_data_offsets_mm_page_pcpu_drain {}; +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 trace_event_data_offsets_mm_page_alloc_extfrag {}; +enum { + IRQCHIP_FWNODE_REAL = 0, + IRQCHIP_FWNODE_NAMED = 1, + IRQCHIP_FWNODE_NAMED_ID = 2, +}; -struct trace_event_data_offsets_rss_stat {}; +struct brcmstb_intc_init_params { + irq_flow_handler_t handler; + int cpu_status; + int cpu_clear; + int cpu_mask_status; + int cpu_mask_set; + int cpu_mask_clear; +}; -struct linux_dirent { - unsigned long d_ino; - unsigned long d_off; - unsigned short d_reclen; - char d_name[0]; +struct brcmstb_l2_intc_data { + struct irq_domain *domain; + struct irq_chip_generic *gc; + int status_offset; + int mask_offset; + bool can_wake; + u32 saved_mask; }; -struct linux_dirent64 { - u64 d_ino; - s64 d_off; - unsigned short d_reclen; - unsigned char d_type; - char d_name[0]; - long: 32; +struct irqsteer_data { + void *regs; + struct clk *ipg_clk; + int irq[8]; + int irq_count; + raw_spinlock_t lock; + int reg_num; + int channel; + struct irq_domain *domain; + u32 *saved_reg; }; -struct getdents_callback { - struct dir_context ctx; - struct linux_dirent __attribute__((btf_type_tag("user"))) *current_dir; - int prev_reclen; - int count; - int error; +struct phy_lookup { + struct list_head node; + const char *dev_id; + const char *con_id; + struct phy *phy; }; -struct getdents_callback64 { - struct dir_context ctx; - struct linux_dirent64 __attribute__((btf_type_tag("user"))) *current_dir; - int prev_reclen; - int count; - int error; +enum omap_control_phy_type { + OMAP_CTRL_TYPE_OTGHS = 1, + OMAP_CTRL_TYPE_USB2 = 2, + OMAP_CTRL_TYPE_PIPE3 = 3, + OMAP_CTRL_TYPE_PCIE = 4, + OMAP_CTRL_TYPE_DRA7USB2 = 5, + OMAP_CTRL_TYPE_AM437USB2 = 6, }; -struct ext4_attr { - struct attribute attr; - short attr_id; - short attr_ptr; - unsigned short attr_size; - union { - int offset; - void *explicit_ptr; - } u; +enum omap_control_usb_mode { + USB_MODE_UNDEFINED = 0, + USB_MODE_HOST = 1, + USB_MODE_DEVICE = 2, + USB_MODE_DISCONNECT = 3, }; -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, +struct omap_control_phy { + struct device *dev; + u32 *otghs_control; + u32 *power; + u32 *power_aux; + u32 *pcie_pcs; + struct clk *sys_clk; + enum omap_control_phy_type type; }; -enum { - ptr_explicit = 0, - ptr_ext4_sb_info_offset = 1, - ptr_ext4_super_block_offset = 2, +struct as3722_pin_function { + const char *name; + const char * const *groups; + unsigned int ngroups; + int mux_option; }; -struct squashfs_xz { - struct xz_dec *state; - struct xz_buf buf; +struct as3722_pingroup { + const char *name; + const unsigned int pins[1]; + unsigned int npins; }; -struct comp_opts { - int dict_size; +struct as3722_gpio_pin_control { + unsigned int mode_prop; + int io_function; }; -struct disk_comp_opts { - __le32 dictionary_size; - __le32 flags; +struct as3722_pctrl_info { + struct device *dev; + struct pinctrl_dev *pctl; + struct as3722 *as3722; + struct gpio_chip gpio_chip; + int pins_current_opt[8]; + const struct as3722_pin_function *functions; + unsigned int num_functions; + const struct as3722_pingroup *pin_groups; + int num_pin_groups; + const struct pinctrl_pin_desc *pins; + unsigned int num_pins; + struct as3722_gpio_pin_control gpio_control[8]; }; -enum { - UBIFS_MST_DIRTY = 1, - UBIFS_MST_NO_ORPHS = 2, - UBIFS_MST_RCVRY = 4, +enum aspeed_pin_config_map_type { + MAP_TYPE_ARG = 0, + MAP_TYPE_VAL = 1, }; -enum { - LEB_FREED = 0, - LEB_FREED_IDX = 1, - LEB_RETAINED = 2, +struct meson8_pmx_data { + bool is_gpio; + unsigned int reg; + unsigned int bit; }; -struct ubifs_unclean_leb { - struct list_head list; - int lnum; - int endpt; +enum abx500_gpio_pull_updown { + ABX500_GPIO_PULL_DOWN = 0, + ABX500_GPIO_PULL_NONE = 1, + ABX500_GPIO_PULL_UP = 3, }; -struct size_entry { - struct rb_node rb; - ino_t inum; - loff_t i_size; - loff_t d_size; - int exists; - struct inode *inode; +enum abx500_pin_func { + ABX500_DEFAULT = 0, + ABX500_ALT_A = 1, + ABX500_ALT_B = 2, + ABX500_ALT_C = 3, }; -struct aead_request; +struct abx500_pinrange; -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; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct crypto_alg base; +struct abx500_function; + +struct abx500_pingroup; + +struct alternate_functions; + +struct abx500_gpio_irq_cluster; + +struct abx500_pinctrl_soc_data { + const struct abx500_pinrange *gpio_ranges; + unsigned int gpio_num_ranges; + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct abx500_function *functions; + unsigned int nfunctions; + const struct abx500_pingroup *groups; + unsigned int ngroups; + struct alternate_functions *alternate_functions; + struct abx500_gpio_irq_cluster *gpio_irq_cluster; + unsigned int ngpio_irq_cluster; + int irq_gpio_rising_offset; + int irq_gpio_falling_offset; + int irq_gpio_factor; }; -struct aead_request { - struct crypto_async_request base; - unsigned int assoclen; - unsigned int cryptlen; - u8 *iv; - struct scatterlist *src; - struct scatterlist *dst; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - void *__ctx[0]; +struct abx500_pinrange { + unsigned int offset; + unsigned int npins; + int altfunc; }; -struct aead_instance { - void (*free)(struct aead_instance *); - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - union { - struct { - char head[64]; - struct crypto_instance base; - } s; - struct aead_alg alg; - }; +struct abx500_function { + const char *name; + const char * const *groups; + unsigned int ngroups; }; -struct crypto_istat_aead { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t err_cnt; +struct abx500_pingroup { + const char *name; + const unsigned int *pins; + const unsigned int npins; + int altsetting; }; -struct crypto_aead_spawn { - struct crypto_spawn base; +struct alternate_functions { + unsigned int pin_number; + s8 gpiosel_bit; + s8 alt_bit1; + s8 alt_bit2; + u8 alta_val; + u8 altb_val; + u8 altc_val; }; -struct crypto_report_aead { - char type[64]; - char geniv[64]; - unsigned int blocksize; - unsigned int maxauthsize; - unsigned int ivsize; +struct abx500_gpio_irq_cluster { + int start; + int end; + int to_irq; }; -struct biovec_slab { - int nr_vecs; - char *name; - struct kmem_cache *slab; +struct abx500_pinctrl { + struct device *dev; + struct pinctrl_dev *pctldev; + struct abx500_pinctrl_soc_data *soc; + struct gpio_chip chip; + struct ab8500 *parent; + struct abx500_gpio_irq_cluster *irq_cluster; + int irq_cluster_size; }; -enum { - BIOSET_NEED_BVECS = 1, - BIOSET_NEED_RESCUER = 2, - BIOSET_PERCPU_CACHE = 4, +struct tegra_function; + +struct tegra_pmx { + struct device *dev; + struct pinctrl_dev *pctl; + const struct tegra_pinctrl_soc_data *soc; + struct tegra_function *functions; + const char **group_pins; + struct pinctrl_gpio_range gpio_range; + struct pinctrl_desc desc; + int nbanks; + void **regs; + u32 *backup_regs; }; -struct bio_slab { - struct kmem_cache *slab; - unsigned int slab_ref; - unsigned int slab_size; - char name[8]; +struct tegra_function { + const char *name; + const char **groups; + unsigned int ngroups; }; -struct io_rsrc_update { - struct file *file; - long: 32; - u64 arg; - u32 nr_args; - u32 offset; +struct zynq_platform_data { + const char *label; + u32 quirks; + u16 ngpio; + int max_bank; + int bank_min[6]; + int bank_max[6]; }; -struct io_uring_rsrc_update2 { - __u32 offset; - __u32 resv; - __u64 data; - __u64 tags; - __u32 nr; - __u32 resv2; +struct gpio_regs___2 { + u32 datamsw[6]; + u32 datalsw[6]; + u32 dirm[6]; + u32 outen[6]; + u32 int_en[6]; + u32 int_dis[6]; + u32 int_type[6]; + u32 int_polarity[6]; + u32 int_any[6]; }; -struct io_uring_rsrc_register { - __u32 nr; - __u32 flags; - __u64 resv2; - __u64 data; - __u64 tags; +struct zynq_gpio { + struct gpio_chip chip; + void *base_addr; + struct clk *clk; + int irq; + const struct zynq_platform_data *p_data; + struct gpio_regs___2 context; + spinlock_t dirlock; }; -struct vic_device { +struct vt8500_chip { + struct pwm_chip chip; void *base; - int irq; - u32 valid_sources; - u32 resume_sources; - u32 resume_irqs; - u32 int_select; - u32 int_enable; - u32 soft_int; - u32 protect; - struct irq_domain *domain; + struct clk *clk; }; -enum cygnus_pcie_phy_id { - CYGNUS_PHY_PCIE0 = 0, - CYGNUS_PHY_PCIE1 = 1, - MAX_NUM_PHYS = 2, +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; + long: 4; + u32 aspm_disable: 7; + u32 clkpm_capable: 1; + u32 clkpm_enabled: 1; + u32 clkpm_default: 1; + u32 clkpm_disable: 1; }; -struct cygnus_pcie_phy_core; +enum backlight_update_reason { + BACKLIGHT_UPDATE_HOTKEY = 0, + BACKLIGHT_UPDATE_SYSFS = 1, +}; -struct cygnus_pcie_phy { - struct cygnus_pcie_phy_core *core; - enum cygnus_pcie_phy_id id; - struct phy *phy; +enum backlight_notification { + BACKLIGHT_REGISTERED = 0, + BACKLIGHT_UNREGISTERED = 1, }; -struct cygnus_pcie_phy_core { - struct device *dev; +struct en_clk_desc { + int id; + const char *name; + u32 base_reg; + u8 base_bits; + u8 base_shift; + union { + const unsigned int *base_values; + unsigned int base_value; + }; + size_t n_base_values; + u16 div_reg; + u8 div_bits; + u8 div_shift; + u16 div_val0; + u8 div_step; +}; + +struct en_clk_gate { void *base; - struct mutex lock; - struct cygnus_pcie_phy phys[2]; + struct clk_hw hw; }; -struct tegra_xusb_lane_soc; +struct owl_mux { + struct owl_mux_hw mux_hw; + struct owl_clk_common common; +}; -struct tegra_xusb_pad; +struct owl_reset_map; -struct tegra_xusb_lane { - const struct tegra_xusb_lane_soc *soc; - struct tegra_xusb_pad *pad; - struct device_node *np; - struct list_head list; - unsigned int function; - unsigned int index; +struct owl_reset { + struct reset_controller_dev rcdev; + const struct owl_reset_map *reset_map; + struct regmap *regmap; }; -struct tegra_xusb_lane_soc { - const char *name; - unsigned int offset; - unsigned int shift; - unsigned int mask; - const char * const *funcs; - unsigned int num_funcs; - struct { - unsigned int misc_ctl2; - } regs; +struct owl_reset_map { + u32 reg; + u32 bit; }; -struct tegra_xusb_pad_soc; +struct clk_slow_bits { + u32 cr_rcen; + u32 cr_osc32en; + u32 cr_osc32byp; + u32 cr_oscsel; +}; + +struct clk_slow_rc_osc { + struct clk_hw hw; + void *sckcr; + const struct clk_slow_bits *bits; + unsigned long frequency; + unsigned long accuracy; + unsigned long startup_usec; +}; -struct tegra_xusb_padctl___2; +struct clk_slow_osc { + struct clk_hw hw; + void *sckcr; + const struct clk_slow_bits *bits; + unsigned long startup_usec; +}; -struct tegra_xusb_lane_ops; +struct clk_sam9x5_slow { + struct clk_hw hw; + void *sckcr; + const struct clk_slow_bits *bits; + u8 parent; +}; -struct tegra_xusb_pad { - const struct tegra_xusb_pad_soc *soc; - struct tegra_xusb_padctl___2 *padctl; - struct phy_provider *provider; - struct phy **lanes; - struct device dev; - const struct tegra_xusb_lane_ops *ops; - struct list_head list; - long: 32; +struct clk_sama5d4_slow_osc { + struct clk_hw hw; + void *sckcr; + const struct clk_slow_bits *bits; + unsigned long startup_usec; + bool prepared; }; -struct tegra_xusb_pad_ops; +struct iproc_asiu_div { + unsigned int offset; + unsigned int en_shift; + unsigned int high_shift; + unsigned int high_width; + unsigned int low_shift; + unsigned int low_width; +}; -struct tegra_xusb_pad_soc { - const char *name; - const struct tegra_xusb_lane_soc *lanes; - unsigned int num_lanes; - const struct tegra_xusb_pad_ops *ops; +struct hi3660_stub_clk_chan { + struct mbox_client cl; + struct mbox_chan *mbox; }; -struct tegra_xusb_pad_ops { - struct tegra_xusb_pad * (*probe)(struct tegra_xusb_padctl___2 *, const struct tegra_xusb_pad_soc *, struct device_node *); - void (*remove)(struct tegra_xusb_pad *); +struct hi3660_stub_clk { + unsigned int id; + struct clk_hw hw; + unsigned int cmd; + unsigned int msg[8]; + unsigned int rate; }; -struct tegra_xusb_padctl_soc___2; +struct mtk_clk_gate { + struct clk_hw hw; + struct regmap *regmap; + int set_ofs; + int clr_ofs; + int sta_ofs; + u8 bit; +}; -struct tegra_xusb_padctl___2 { - struct device *dev; - void *regs; - struct mutex lock; - struct reset_control *rst; - const struct tegra_xusb_padctl_soc___2 *soc; - struct tegra_xusb_pad *pcie; - struct tegra_xusb_pad *sata; - struct tegra_xusb_pad *ulpi; - struct tegra_xusb_pad *usb2; - struct tegra_xusb_pad *hsic; - struct list_head ports; - struct list_head lanes; - struct list_head pads; - unsigned int enable; - struct clk *clk; - struct regulator_bulk_data *supplies; +enum { + MMP_CLK_MIX_TYPE_V1 = 0, + MMP_CLK_MIX_TYPE_V2 = 1, + MMP_CLK_MIX_TYPE_V3 = 2, }; -struct tegra_xusb_port_ops; +struct mmp_clk_mix_reg_info { + void *reg_clk_ctrl; + void *reg_clk_sel; + u8 width_div; + u8 shift_div; + u8 width_mux; + u8 shift_mux; + u8 bit_fc; +}; -struct tegra_xusb_padctl_ops; +struct mmp_clk_mix_clk_table; -struct tegra_xusb_padctl_soc___2 { - const struct tegra_xusb_pad_soc * const *pads; - unsigned int num_pads; - struct { - struct { - const struct tegra_xusb_port_ops *ops; - unsigned int count; - } usb2; - struct { - const struct tegra_xusb_port_ops *ops; - unsigned int count; - } ulpi; - struct { - const struct tegra_xusb_port_ops *ops; - unsigned int count; - } hsic; - struct { - const struct tegra_xusb_port_ops *ops; - unsigned int count; - } usb3; - } ports; - const struct tegra_xusb_padctl_ops *ops; - const char * const *supply_names; - unsigned int num_supplies; - bool supports_gen2; - bool need_fake_usb3_port; - bool poll_trk_completed; - bool trk_hw_mode; - bool supports_lp_cfg_en; +struct mmp_clk_mix { + struct clk_hw hw; + struct mmp_clk_mix_reg_info reg_info; + struct mmp_clk_mix_clk_table *table; + u32 *mux_table; + struct clk_div_table *div_table; + unsigned int table_size; + u8 div_flags; + u8 mux_flags; + unsigned int type; + spinlock_t *lock; }; -struct tegra_xusb_port; +struct mmp_clk_mix_clk_table { + unsigned long rate; + u8 parent_index; + unsigned int divisor; + unsigned int valid; +}; -struct tegra_xusb_port_ops { - void (*release)(struct tegra_xusb_port *); - void (*remove)(struct tegra_xusb_port *); - int (*enable)(struct tegra_xusb_port *); - void (*disable)(struct tegra_xusb_port *); - struct tegra_xusb_lane * (*map)(struct tegra_xusb_port *); +struct mmp_clk_mix_config { + struct mmp_clk_mix_reg_info reg_info; + struct mmp_clk_mix_clk_table *table; + unsigned int table_size; + u32 *mux_table; + struct clk_div_table *div_table; + u8 div_flags; + u8 mux_flags; }; -struct tegra_xusb_port { - struct tegra_xusb_padctl___2 *padctl; - struct tegra_xusb_lane *lane; - unsigned int index; - struct list_head list; - long: 32; - struct device dev; - struct usb_role_switch *usb_role_sw; - struct work_struct usb_phy_work; - struct usb_phy usb_phy; - const struct tegra_xusb_port_ops *ops; +struct clk_multiplier { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u8 flags; + spinlock_t *lock; }; -struct tegra_xusb_padctl_ops { - struct tegra_xusb_padctl___2 * (*probe)(struct device *, const struct tegra_xusb_padctl_soc___2 *); - void (*remove)(struct tegra_xusb_padctl___2 *); - int (*suspend_noirq)(struct tegra_xusb_padctl___2 *); - int (*resume_noirq)(struct tegra_xusb_padctl___2 *); - int (*usb3_save_context)(struct tegra_xusb_padctl___2 *, unsigned int); - int (*hsic_set_idle)(struct tegra_xusb_padctl___2 *, unsigned int, bool); - int (*usb3_set_lfps_detect)(struct tegra_xusb_padctl___2 *, unsigned int, bool); - int (*vbus_override)(struct tegra_xusb_padctl___2 *, bool); - int (*utmi_port_reset)(struct phy *); - void (*utmi_pad_power_on)(struct phy *); - void (*utmi_pad_power_down)(struct phy *); +struct _ccu_nkmp { + unsigned long n; + unsigned long min_n; + unsigned long max_n; + unsigned long k; + unsigned long min_k; + unsigned long max_k; + unsigned long m; + unsigned long min_m; + unsigned long max_m; + unsigned long p; + unsigned long min_p; + unsigned long max_p; }; -struct tegra_xusb_lane_ops { - struct tegra_xusb_lane * (*probe)(struct tegra_xusb_pad *, struct device_node *, unsigned int); - void (*remove)(struct tegra_xusb_lane *); - void (*iddq_enable)(struct tegra_xusb_lane *); - void (*iddq_disable)(struct tegra_xusb_lane *); - int (*enable_phy_sleepwalk)(struct tegra_xusb_lane *, enum usb_device_speed); - int (*disable_phy_sleepwalk)(struct tegra_xusb_lane *); - int (*enable_phy_wake)(struct tegra_xusb_lane *); - int (*disable_phy_wake)(struct tegra_xusb_lane *); - bool (*remote_wake_detected)(struct tegra_xusb_lane *); +struct tegra_sync_source_initdata { + char *name; + unsigned long rate; + unsigned long max_rate; + int clk_id; }; -struct tegra_xusb_usb2_port { - struct tegra_xusb_port base; - struct regulator *supply; - enum usb_dr_mode mode; - bool internal; - int usb3_port_fake; +struct tegra_audio_clk_initdata { + char *gate_name; + char *mux_name; + u32 offset; + int gate_clk_id; + int mux_clk_id; }; -struct tegra_xusb_usb3_port { - struct tegra_xusb_port base; - bool context_saved; - unsigned int port; - bool internal; - bool disable_gen2; - u32 tap1; - u32 amp; - u32 ctle_z; - u32 ctle_g; - long: 32; +struct tegra_audio2x_clk_initdata { + char *parent; + char *gate_name; + char *name_2x; + char *div_name; + int clk_id; + int clk_num; + u8 div_offset; }; -struct tegra_xusb_ulpi_port { - struct tegra_xusb_port base; - struct regulator *supply; - bool internal; +struct clk_omap_divider { + struct clk_hw hw; + struct clk_omap_reg reg; + u8 shift; + u8 flags; + s8 latch; + u16 min; + u16 max; + u16 mask; + const struct clk_div_table *table; + u32 context; }; -struct tegra_xusb_hsic_port { - struct tegra_xusb_port base; -}; +struct bcm2835_desc; -struct tegra_xusb_lane_map { - unsigned int port; - const char *type; - unsigned int index; - const char *func; +struct bcm2835_chan { + struct virt_dma_chan vc; + struct dma_slave_config cfg; + unsigned int dreq; + int ch; + struct bcm2835_desc *desc; + struct dma_pool *cb_pool; + void *chan_base; + int irq_number; + unsigned int irq_flags; + bool is_lite_channel; }; -enum { - REG_RE = 0, - REG_FE = 1, - REG_IE = 2, -}; +struct bcm2835_dma_cb; -struct stmpe_gpio { - struct gpio_chip chip; - struct stmpe *stmpe; - struct device *dev; - struct mutex irq_lock; - u32 norequest_mask; - u8 regs[9]; - u8 oldregs[9]; +struct bcm2835_cb_entry { + struct bcm2835_dma_cb *cb; + dma_addr_t paddr; }; -struct pci_dev_reset_methods { - u16 vendor; - u16 device; - int (*reset)(struct pci_dev *, bool); +struct bcm2835_desc { + struct bcm2835_chan *c; + struct virt_dma_desc vd; + enum dma_transfer_direction dir; + unsigned int frames; + size_t size; + bool cyclic; + struct bcm2835_cb_entry cb_list[0]; }; -struct pci_dev_acs_enabled { - u16 vendor; - u16 device; - int (*acs_enabled)(struct pci_dev *, u16); +struct bcm2835_dma_cb { + uint32_t info; + uint32_t src; + uint32_t dst; + uint32_t length; + uint32_t stride; + uint32_t next; + uint32_t pad[2]; }; -struct pci_dev_acs_ops { - u16 vendor; - u16 device; - int (*enable_acs)(struct pci_dev *); - int (*disable_acs_redir)(struct pci_dev *); +struct bcm2835_dmadev { + struct dma_device ddev; + void *base; + dma_addr_t zero_page; }; -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 at91_soc { + u32 cidr_match; + u32 cidr_mask; + u32 version_mask; + u32 exid_match; + const char *name; + const char *family; }; -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, +struct smsm_entry; + +struct smsm_host; + +struct qcom_smsm { + struct device *dev; + u32 local_host; + u32 num_hosts; + u32 num_entries; + u32 *local_state; + u32 *subscription; + struct qcom_smem_state *state; + spinlock_t lock; + struct smsm_entry *entries; + struct smsm_host *hosts; }; -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, +struct smsm_entry { + struct qcom_smsm *smsm; + struct irq_domain *domain; + unsigned long irq_enabled[1]; + unsigned long irq_rising[1]; + unsigned long irq_falling[1]; + unsigned long last_value; + u32 *remote_state; + u32 *subscription; }; -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, +struct smsm_host { + struct regmap *ipc_regmap; + int ipc_offset; + int ipc_bit; }; 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, + SPEEDO_ID_0 = 0, + SPEEDO_ID_1 = 1, + SPEEDO_ID_2 = 2, + SPEEDO_ID_COUNT = 3, }; enum { - SWITCHTEC_NTB_REG_INFO_OFFSET = 0, - SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384, - SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600, + THRESHOLD_INDEX_0___2 = 0, + THRESHOLD_INDEX_1___2 = 1, + THRESHOLD_INDEX_COUNT___2 = 2, }; -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]; +enum tegra_suspend_mode { + TEGRA_SUSPEND_NONE = 0, + TEGRA_SUSPEND_LP2 = 1, + TEGRA_SUSPEND_LP1 = 2, + TEGRA_SUSPEND_LP0 = 3, + TEGRA_MAX_SUSPEND_MODE = 4, + TEGRA_SUSPEND_NOT_READY = 5, }; -struct nt_partition_info { - u32 xlink_enabled; - u32 target_part_low; - u32 target_part_high; - u32 reserved; -}; +struct tegra_pmc_soc; -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]; +struct tegra_pmc { + struct device *dev; + void *base; + void *wake; + void *aotag; + void *scratch; + struct clk *clk; + const struct tegra_pmc_soc *soc; + bool tz_only; + unsigned long rate; + enum tegra_suspend_mode suspend_mode; + u32 cpu_good_time; + u32 cpu_off_time; + u32 core_osc_time; + u32 core_pmu_time; + u32 core_off_time; + bool corereq_high; + bool sysclkreq_high; + bool combined_req; + bool cpu_pwr_good_en; + u32 lp0_vec_phys; + u32 lp0_vec_size; + unsigned long powergates_available[1]; + struct mutex powergates_lock; + struct pinctrl_dev *pctl_dev; + struct irq_domain *domain; + struct irq_chip irq; + struct notifier_block clk_nb; + bool core_domain_state_synced; + bool core_domain_registered; + unsigned long *wake_type_level_map; + unsigned long *wake_type_dual_edge_map; + unsigned long *wake_sw_status_map; + unsigned long *wake_cntrl_level_map; + struct syscore_ops syscore; }; -struct clk_sama5d4_h32mx { - struct clk_hw hw; - struct regmap *regmap; -}; +struct tegra_io_pad_soc; -enum sama7g5_pck_parent_hw_id { - PCK_PARENT_HW_MCK0 = 0, - PCK_PARENT_HW_MCK1 = 1, - PCK_PARENT_HW_MCK2 = 2, - PCK_PARENT_HW_MCK3 = 3, - PCK_PARENT_HW_MCK4 = 4, - PCK_PARENT_HW_MAX = 5, -}; +struct tegra_pmc_regs; -enum sama7g5_pll_parent { - SAMA7G5_PLL_PARENT_MAINCK = 0, - SAMA7G5_PLL_PARENT_MAIN_XTAL = 1, - SAMA7G5_PLL_PARENT_FRACCK = 2, +struct tegra_wake_event; + +struct pmc_clk_init_data; + +struct tegra_pmc_soc { + unsigned int num_powergates; + const char * const *powergates; + unsigned int num_cpu_powergates; + const u8 *cpu_powergates; + bool has_tsense_reset; + bool has_gpu_clamps; + bool needs_mbist_war; + bool has_impl_33v_pwr; + bool maybe_tz_only; + const struct tegra_io_pad_soc *io_pads; + unsigned int num_io_pads; + const struct pinctrl_pin_desc *pin_descs; + unsigned int num_pin_descs; + const struct tegra_pmc_regs *regs; + void (*init)(struct tegra_pmc *); + void (*setup_irq_polarity)(struct tegra_pmc *, struct device_node *, bool); + void (*set_wake_filters)(struct tegra_pmc *); + int (*irq_set_wake)(struct irq_data *, unsigned int); + int (*irq_set_type)(struct irq_data *, unsigned int); + int (*powergate_set)(struct tegra_pmc *, unsigned int, bool); + const char * const *reset_sources; + unsigned int num_reset_sources; + const char * const *reset_levels; + unsigned int num_reset_levels; + const struct tegra_wake_event *wake_events; + unsigned int num_wake_events; + unsigned int max_wake_events; + unsigned int max_wake_vectors; + const struct pmc_clk_init_data *pmc_clks_data; + unsigned int num_pmc_clks; + bool has_blink_output; + bool has_usb_sleepwalk; + bool supports_core_domain; }; -struct sama7g5_pll { - const char *n; - const struct clk_pll_layout *l; - const struct clk_pll_characteristics *c; - struct clk_hw *hw; - unsigned long f; - enum sama7g5_pll_parent p; - u8 t; - u8 eid; - u8 safe_div; +enum tegra_io_pad { + TEGRA_IO_PAD_AUDIO = 0, + TEGRA_IO_PAD_AUDIO_HV = 1, + TEGRA_IO_PAD_BB = 2, + TEGRA_IO_PAD_CAM = 3, + TEGRA_IO_PAD_COMP = 4, + TEGRA_IO_PAD_CONN = 5, + TEGRA_IO_PAD_CSIA = 6, + TEGRA_IO_PAD_CSIB = 7, + TEGRA_IO_PAD_CSIC = 8, + TEGRA_IO_PAD_CSID = 9, + TEGRA_IO_PAD_CSIE = 10, + TEGRA_IO_PAD_CSIF = 11, + TEGRA_IO_PAD_CSIG = 12, + TEGRA_IO_PAD_CSIH = 13, + TEGRA_IO_PAD_DAP3 = 14, + TEGRA_IO_PAD_DAP5 = 15, + TEGRA_IO_PAD_DBG = 16, + TEGRA_IO_PAD_DEBUG_NONAO = 17, + TEGRA_IO_PAD_DMIC = 18, + TEGRA_IO_PAD_DMIC_HV = 19, + TEGRA_IO_PAD_DP = 20, + TEGRA_IO_PAD_DSI = 21, + TEGRA_IO_PAD_DSIB = 22, + TEGRA_IO_PAD_DSIC = 23, + TEGRA_IO_PAD_DSID = 24, + TEGRA_IO_PAD_EDP = 25, + TEGRA_IO_PAD_EMMC = 26, + TEGRA_IO_PAD_EMMC2 = 27, + TEGRA_IO_PAD_EQOS = 28, + TEGRA_IO_PAD_GPIO = 29, + TEGRA_IO_PAD_GP_PWM2 = 30, + TEGRA_IO_PAD_GP_PWM3 = 31, + TEGRA_IO_PAD_HDMI = 32, + TEGRA_IO_PAD_HDMI_DP0 = 33, + TEGRA_IO_PAD_HDMI_DP1 = 34, + TEGRA_IO_PAD_HDMI_DP2 = 35, + TEGRA_IO_PAD_HDMI_DP3 = 36, + TEGRA_IO_PAD_HSIC = 37, + TEGRA_IO_PAD_HV = 38, + TEGRA_IO_PAD_LVDS = 39, + TEGRA_IO_PAD_MIPI_BIAS = 40, + TEGRA_IO_PAD_NAND = 41, + TEGRA_IO_PAD_PEX_BIAS = 42, + TEGRA_IO_PAD_PEX_CLK_BIAS = 43, + TEGRA_IO_PAD_PEX_CLK1 = 44, + TEGRA_IO_PAD_PEX_CLK2 = 45, + TEGRA_IO_PAD_PEX_CLK3 = 46, + TEGRA_IO_PAD_PEX_CLK_2_BIAS = 47, + TEGRA_IO_PAD_PEX_CLK_2 = 48, + TEGRA_IO_PAD_PEX_CNTRL = 49, + TEGRA_IO_PAD_PEX_CTL2 = 50, + TEGRA_IO_PAD_PEX_L0_RST = 51, + TEGRA_IO_PAD_PEX_L1_RST = 52, + TEGRA_IO_PAD_PEX_L5_RST = 53, + TEGRA_IO_PAD_PWR_CTL = 54, + TEGRA_IO_PAD_SDMMC1 = 55, + TEGRA_IO_PAD_SDMMC1_HV = 56, + TEGRA_IO_PAD_SDMMC2 = 57, + TEGRA_IO_PAD_SDMMC2_HV = 58, + TEGRA_IO_PAD_SDMMC3 = 59, + TEGRA_IO_PAD_SDMMC3_HV = 60, + TEGRA_IO_PAD_SDMMC4 = 61, + TEGRA_IO_PAD_SOC_GPIO10 = 62, + TEGRA_IO_PAD_SOC_GPIO12 = 63, + TEGRA_IO_PAD_SOC_GPIO13 = 64, + TEGRA_IO_PAD_SOC_GPIO53 = 65, + TEGRA_IO_PAD_SPI = 66, + TEGRA_IO_PAD_SPI_HV = 67, + TEGRA_IO_PAD_SYS_DDC = 68, + TEGRA_IO_PAD_UART = 69, + TEGRA_IO_PAD_UART4 = 70, + TEGRA_IO_PAD_UART5 = 71, + TEGRA_IO_PAD_UFS = 72, + TEGRA_IO_PAD_USB0 = 73, + TEGRA_IO_PAD_USB1 = 74, + TEGRA_IO_PAD_USB2 = 75, + TEGRA_IO_PAD_USB3 = 76, + TEGRA_IO_PAD_USB_BIAS = 77, + TEGRA_IO_PAD_AO_HV = 78, }; -enum pll_ids { - PLL_ID_CPU = 0, - PLL_ID_SYS = 1, - PLL_ID_DDR = 2, - PLL_ID_IMG = 3, - PLL_ID_BAUD = 4, - PLL_ID_AUDIO = 5, - PLL_ID_ETH = 6, - PLL_ID_MAX = 7, +struct tegra_io_pad_soc { + enum tegra_io_pad id; + unsigned int dpd; + unsigned int request; + unsigned int status; + unsigned int voltage; + const char *name; }; -enum pll_type { - PLL_TYPE_FRAC = 0, - PLL_TYPE_DIV = 1, +struct tegra_pmc_regs { + unsigned int scratch0; + unsigned int rst_status; + unsigned int rst_source_shift; + unsigned int rst_source_mask; + unsigned int rst_level_shift; + unsigned int rst_level_mask; }; -enum pll_component_id { - PLL_COMPID_FRAC = 0, - PLL_COMPID_DIV0 = 1, - PLL_COMPID_DIV1 = 2, +struct tegra_wake_event { + const char *name; + unsigned int id; + unsigned int irq; + struct { + unsigned int instance; + unsigned int pin; + } gpio; }; -struct pmc_data { - unsigned int ncore; - struct clk_hw **chws; - unsigned int nsystem; - struct clk_hw **shws; - unsigned int nperiph; - struct clk_hw **phws; - unsigned int ngck; - struct clk_hw **ghws; - unsigned int npck; - struct clk_hw **pchws; - struct clk_hw *hwtable[0]; +struct pmc_clk_init_data { + char *name; + const char * const *parents; + int num_parents; + int clk_id; + u8 mux_shift; + u8 force_en_shift; }; -struct hisi_crg_funcs { - struct hisi_clock_data * (*register_clks)(struct platform_device *); - void (*unregister_clks)(struct platform_device *); +struct tegra_powergate { + struct generic_pm_domain genpd; + struct tegra_pmc *pmc; + unsigned int id; + struct clk **clks; + unsigned int num_clks; + unsigned long *clk_rates; + struct reset_control *reset; }; -struct hisi_crg_dev { - struct hisi_clock_data *clk_data; - struct hisi_reset_controller *rstc; - const struct hisi_crg_funcs *funcs; +struct pmc_clk { + struct clk_hw hw; + unsigned long offs; + u32 mux_shift; + u32 force_en_shift; }; -struct mmp_clk_gate { +struct pmc_clk_gate { struct clk_hw hw; - void *reg; - u32 mask; - u32 val_enable; - u32 val_disable; - unsigned int flags; - spinlock_t *lock; + unsigned long offs; + u32 shift; }; -struct cpg_clk_config { - unsigned int z_mult; - unsigned int z_div; - unsigned int zs_and_s_div; - unsigned int s1_div; - unsigned int p_div; - unsigned int b_and_out_div; +enum { + AXP22X_DCDC1 = 0, + AXP22X_DCDC2 = 1, + AXP22X_DCDC3 = 2, + AXP22X_DCDC4 = 3, + AXP22X_DCDC5 = 4, + AXP22X_DC1SW = 5, + AXP22X_DC5LDO = 6, + AXP22X_ALDO1 = 7, + AXP22X_ALDO2 = 8, + AXP22X_ALDO3 = 9, + AXP22X_ELDO1 = 10, + AXP22X_ELDO2 = 11, + AXP22X_ELDO3 = 12, + AXP22X_DLDO1 = 13, + AXP22X_DLDO2 = 14, + AXP22X_DLDO3 = 15, + AXP22X_DLDO4 = 16, + AXP22X_RTC_LDO = 17, + AXP22X_LDO_IO0 = 18, + AXP22X_LDO_IO1 = 19, + AXP22X_REG_ID_MAX = 20, }; -struct rockchip_muxgrf_clock { - struct clk_hw hw; - struct regmap *regmap; - u32 reg; - u32 shift; - u32 width; - int flags; +enum { + AXP15060_DCDC1 = 0, + AXP15060_DCDC2 = 1, + AXP15060_DCDC3 = 2, + AXP15060_DCDC4 = 3, + AXP15060_DCDC5 = 4, + AXP15060_DCDC6 = 5, + AXP15060_ALDO1 = 6, + AXP15060_ALDO2 = 7, + AXP15060_ALDO3 = 8, + AXP15060_ALDO4 = 9, + AXP15060_ALDO5 = 10, + AXP15060_BLDO1 = 11, + AXP15060_BLDO2 = 12, + AXP15060_BLDO3 = 13, + AXP15060_BLDO4 = 14, + AXP15060_BLDO5 = 15, + AXP15060_CLDO1 = 16, + AXP15060_CLDO2 = 17, + AXP15060_CLDO3 = 18, + AXP15060_CLDO4 = 19, + AXP15060_CPUSLDO = 20, + AXP15060_SW = 21, + AXP15060_RTC_LDO = 22, + AXP15060_REG_ID_MAX = 23, }; -struct rockchip_softrst { - struct reset_controller_dev rcdev; - const int *lut; - void *reg_base; - int num_regs; - int num_per_reg; - u8 flags; - spinlock_t lock; +enum { + AXP20X_LDO1 = 0, + AXP20X_LDO2 = 1, + AXP20X_LDO3 = 2, + AXP20X_LDO4 = 3, + AXP20X_LDO5 = 4, + AXP20X_DCDC2 = 5, + AXP20X_DCDC3 = 6, + AXP20X_REG_ID_MAX = 7, }; -enum exynos5410_plls { - apll___3 = 0, - cpll___3 = 1, - epll___3 = 2, - mpll___3 = 3, - bpll___3 = 4, - kpll___2 = 5, - nr_plls___3 = 6, +enum { + AXP313A_DCDC1 = 0, + AXP313A_DCDC2 = 1, + AXP313A_DCDC3 = 2, + AXP313A_ALDO1 = 3, + AXP313A_DLDO1 = 4, + AXP313A_RTC_LDO = 5, + AXP313A_REG_ID_MAX = 6, }; -struct omap3_dpll5_settings { - unsigned int rate; - unsigned int m; - unsigned int n; +enum { + AXP803_DCDC1 = 0, + AXP803_DCDC2 = 1, + AXP803_DCDC3 = 2, + AXP803_DCDC4 = 3, + AXP803_DCDC5 = 4, + AXP803_DCDC6 = 5, + AXP803_DC1SW = 6, + AXP803_ALDO1 = 7, + AXP803_ALDO2 = 8, + AXP803_ALDO3 = 9, + AXP803_DLDO1 = 10, + AXP803_DLDO2 = 11, + AXP803_DLDO3 = 12, + AXP803_DLDO4 = 13, + AXP803_ELDO1 = 14, + AXP803_ELDO2 = 15, + AXP803_ELDO3 = 16, + AXP803_FLDO1 = 17, + AXP803_FLDO2 = 18, + AXP803_RTC_LDO = 19, + AXP803_LDO_IO0 = 20, + AXP803_LDO_IO1 = 21, + AXP803_REG_ID_MAX = 22, }; -struct of_dma_filter_info { - dma_cap_mask_t dma_cap; - dma_filter_fn filter_fn; +enum { + AXP806_DCDCA = 0, + AXP806_DCDCB = 1, + AXP806_DCDCC = 2, + AXP806_DCDCD = 3, + AXP806_DCDCE = 4, + AXP806_ALDO1 = 5, + AXP806_ALDO2 = 6, + AXP806_ALDO3 = 7, + AXP806_BLDO1 = 8, + AXP806_BLDO2 = 9, + AXP806_BLDO3 = 10, + AXP806_BLDO4 = 11, + AXP806_CLDO1 = 12, + AXP806_CLDO2 = 13, + AXP806_CLDO3 = 14, + AXP806_SW = 15, + AXP806_REG_ID_MAX = 16, }; -struct mfp_pin { - unsigned long config; - unsigned long mfpr_off; - unsigned long mfpr_run; - unsigned long mfpr_lpm; +enum { + AXP809_DCDC1 = 0, + AXP809_DCDC2 = 1, + AXP809_DCDC3 = 2, + AXP809_DCDC4 = 3, + AXP809_DCDC5 = 4, + AXP809_DC1SW = 5, + AXP809_DC5LDO = 6, + AXP809_ALDO1 = 7, + AXP809_ALDO2 = 8, + AXP809_ALDO3 = 9, + AXP809_ELDO1 = 10, + AXP809_ELDO2 = 11, + AXP809_ELDO3 = 12, + AXP809_DLDO1 = 13, + AXP809_DLDO2 = 14, + AXP809_RTC_LDO = 15, + AXP809_LDO_IO0 = 16, + AXP809_LDO_IO1 = 17, + AXP809_SW = 18, + AXP809_REG_ID_MAX = 19, }; enum { - MFP_PIN_INVALID = -1, - MFP_PIN_GPIO0 = 0, - MFP_PIN_GPIO1 = 1, - MFP_PIN_GPIO2 = 2, - MFP_PIN_GPIO3 = 3, - MFP_PIN_GPIO4 = 4, - MFP_PIN_GPIO5 = 5, - MFP_PIN_GPIO6 = 6, - MFP_PIN_GPIO7 = 7, - MFP_PIN_GPIO8 = 8, - MFP_PIN_GPIO9 = 9, - MFP_PIN_GPIO10 = 10, - MFP_PIN_GPIO11 = 11, - MFP_PIN_GPIO12 = 12, - MFP_PIN_GPIO13 = 13, - MFP_PIN_GPIO14 = 14, - MFP_PIN_GPIO15 = 15, - MFP_PIN_GPIO16 = 16, - MFP_PIN_GPIO17 = 17, - MFP_PIN_GPIO18 = 18, - MFP_PIN_GPIO19 = 19, - MFP_PIN_GPIO20 = 20, - MFP_PIN_GPIO21 = 21, - MFP_PIN_GPIO22 = 22, - MFP_PIN_GPIO23 = 23, - MFP_PIN_GPIO24 = 24, - MFP_PIN_GPIO25 = 25, - MFP_PIN_GPIO26 = 26, - MFP_PIN_GPIO27 = 27, - MFP_PIN_GPIO28 = 28, - MFP_PIN_GPIO29 = 29, - MFP_PIN_GPIO30 = 30, - MFP_PIN_GPIO31 = 31, - MFP_PIN_GPIO32 = 32, - MFP_PIN_GPIO33 = 33, - MFP_PIN_GPIO34 = 34, - MFP_PIN_GPIO35 = 35, - MFP_PIN_GPIO36 = 36, - MFP_PIN_GPIO37 = 37, - MFP_PIN_GPIO38 = 38, - MFP_PIN_GPIO39 = 39, - MFP_PIN_GPIO40 = 40, - MFP_PIN_GPIO41 = 41, - MFP_PIN_GPIO42 = 42, - MFP_PIN_GPIO43 = 43, - MFP_PIN_GPIO44 = 44, - MFP_PIN_GPIO45 = 45, - MFP_PIN_GPIO46 = 46, - MFP_PIN_GPIO47 = 47, - MFP_PIN_GPIO48 = 48, - MFP_PIN_GPIO49 = 49, - MFP_PIN_GPIO50 = 50, - MFP_PIN_GPIO51 = 51, - MFP_PIN_GPIO52 = 52, - MFP_PIN_GPIO53 = 53, - MFP_PIN_GPIO54 = 54, - MFP_PIN_GPIO55 = 55, - MFP_PIN_GPIO56 = 56, - MFP_PIN_GPIO57 = 57, - MFP_PIN_GPIO58 = 58, - MFP_PIN_GPIO59 = 59, - MFP_PIN_GPIO60 = 60, - MFP_PIN_GPIO61 = 61, - MFP_PIN_GPIO62 = 62, - MFP_PIN_GPIO63 = 63, - MFP_PIN_GPIO64 = 64, - MFP_PIN_GPIO65 = 65, - MFP_PIN_GPIO66 = 66, - MFP_PIN_GPIO67 = 67, - MFP_PIN_GPIO68 = 68, - MFP_PIN_GPIO69 = 69, - MFP_PIN_GPIO70 = 70, - MFP_PIN_GPIO71 = 71, - MFP_PIN_GPIO72 = 72, - MFP_PIN_GPIO73 = 73, - MFP_PIN_GPIO74 = 74, - MFP_PIN_GPIO75 = 75, - MFP_PIN_GPIO76 = 76, - MFP_PIN_GPIO77 = 77, - MFP_PIN_GPIO78 = 78, - MFP_PIN_GPIO79 = 79, - MFP_PIN_GPIO80 = 80, - MFP_PIN_GPIO81 = 81, - MFP_PIN_GPIO82 = 82, - MFP_PIN_GPIO83 = 83, - MFP_PIN_GPIO84 = 84, - MFP_PIN_GPIO85 = 85, - MFP_PIN_GPIO86 = 86, - MFP_PIN_GPIO87 = 87, - MFP_PIN_GPIO88 = 88, - MFP_PIN_GPIO89 = 89, - MFP_PIN_GPIO90 = 90, - MFP_PIN_GPIO91 = 91, - MFP_PIN_GPIO92 = 92, - MFP_PIN_GPIO93 = 93, - MFP_PIN_GPIO94 = 94, - MFP_PIN_GPIO95 = 95, - MFP_PIN_GPIO96 = 96, - MFP_PIN_GPIO97 = 97, - MFP_PIN_GPIO98 = 98, - MFP_PIN_GPIO99 = 99, - MFP_PIN_GPIO100 = 100, - MFP_PIN_GPIO101 = 101, - MFP_PIN_GPIO102 = 102, - MFP_PIN_GPIO103 = 103, - MFP_PIN_GPIO104 = 104, - MFP_PIN_GPIO105 = 105, - MFP_PIN_GPIO106 = 106, - MFP_PIN_GPIO107 = 107, - MFP_PIN_GPIO108 = 108, - MFP_PIN_GPIO109 = 109, - MFP_PIN_GPIO110 = 110, - MFP_PIN_GPIO111 = 111, - MFP_PIN_GPIO112 = 112, - MFP_PIN_GPIO113 = 113, - MFP_PIN_GPIO114 = 114, - MFP_PIN_GPIO115 = 115, - MFP_PIN_GPIO116 = 116, - MFP_PIN_GPIO117 = 117, - MFP_PIN_GPIO118 = 118, - MFP_PIN_GPIO119 = 119, - MFP_PIN_GPIO120 = 120, - MFP_PIN_GPIO121 = 121, - MFP_PIN_GPIO122 = 122, - MFP_PIN_GPIO123 = 123, - MFP_PIN_GPIO124 = 124, - MFP_PIN_GPIO125 = 125, - MFP_PIN_GPIO126 = 126, - MFP_PIN_GPIO127 = 127, - MFP_PIN_GPIO128 = 128, - MFP_PIN_GPIO129 = 129, - MFP_PIN_GPIO130 = 130, - MFP_PIN_GPIO131 = 131, - MFP_PIN_GPIO132 = 132, - MFP_PIN_GPIO133 = 133, - MFP_PIN_GPIO134 = 134, - MFP_PIN_GPIO135 = 135, - MFP_PIN_GPIO136 = 136, - MFP_PIN_GPIO137 = 137, - MFP_PIN_GPIO138 = 138, - MFP_PIN_GPIO139 = 139, - MFP_PIN_GPIO140 = 140, - MFP_PIN_GPIO141 = 141, - MFP_PIN_GPIO142 = 142, - MFP_PIN_GPIO143 = 143, - MFP_PIN_GPIO144 = 144, - MFP_PIN_GPIO145 = 145, - MFP_PIN_GPIO146 = 146, - MFP_PIN_GPIO147 = 147, - MFP_PIN_GPIO148 = 148, - MFP_PIN_GPIO149 = 149, - MFP_PIN_GPIO150 = 150, - MFP_PIN_GPIO151 = 151, - MFP_PIN_GPIO152 = 152, - MFP_PIN_GPIO153 = 153, - MFP_PIN_GPIO154 = 154, - MFP_PIN_GPIO155 = 155, - MFP_PIN_GPIO156 = 156, - MFP_PIN_GPIO157 = 157, - MFP_PIN_GPIO158 = 158, - MFP_PIN_GPIO159 = 159, - MFP_PIN_GPIO160 = 160, - MFP_PIN_GPIO161 = 161, - MFP_PIN_GPIO162 = 162, - MFP_PIN_GPIO163 = 163, - MFP_PIN_GPIO164 = 164, - MFP_PIN_GPIO165 = 165, - MFP_PIN_GPIO166 = 166, - MFP_PIN_GPIO167 = 167, - MFP_PIN_GPIO168 = 168, - MFP_PIN_GPIO169 = 169, - MFP_PIN_GPIO170 = 170, - MFP_PIN_GPIO171 = 171, - MFP_PIN_GPIO172 = 172, - MFP_PIN_GPIO173 = 173, - MFP_PIN_GPIO174 = 174, - MFP_PIN_GPIO175 = 175, - MFP_PIN_GPIO176 = 176, - MFP_PIN_GPIO177 = 177, - MFP_PIN_GPIO178 = 178, - MFP_PIN_GPIO179 = 179, - MFP_PIN_GPIO180 = 180, - MFP_PIN_GPIO181 = 181, - MFP_PIN_GPIO182 = 182, - MFP_PIN_GPIO183 = 183, - MFP_PIN_GPIO184 = 184, - MFP_PIN_GPIO185 = 185, - MFP_PIN_GPIO186 = 186, - MFP_PIN_GPIO187 = 187, - MFP_PIN_GPIO188 = 188, - MFP_PIN_GPIO189 = 189, - MFP_PIN_GPIO190 = 190, - MFP_PIN_GPIO191 = 191, - MFP_PIN_GPIO255 = 255, - MFP_PIN_GPIO0_2 = 256, - MFP_PIN_GPIO1_2 = 257, - MFP_PIN_GPIO2_2 = 258, - MFP_PIN_GPIO3_2 = 259, - MFP_PIN_GPIO4_2 = 260, - MFP_PIN_GPIO5_2 = 261, - MFP_PIN_GPIO6_2 = 262, - MFP_PIN_GPIO7_2 = 263, - MFP_PIN_GPIO8_2 = 264, - MFP_PIN_GPIO9_2 = 265, - MFP_PIN_GPIO10_2 = 266, - MFP_PIN_GPIO11_2 = 267, - MFP_PIN_GPIO12_2 = 268, - MFP_PIN_GPIO13_2 = 269, - MFP_PIN_GPIO14_2 = 270, - MFP_PIN_GPIO15_2 = 271, - MFP_PIN_GPIO16_2 = 272, - MFP_PIN_GPIO17_2 = 273, - MFP_PIN_ULPI_STP = 274, - MFP_PIN_ULPI_NXT = 275, - MFP_PIN_ULPI_DIR = 276, - MFP_PIN_nXCVREN = 277, - MFP_PIN_DF_CLE_nOE = 278, - MFP_PIN_DF_nADV1_ALE = 279, - MFP_PIN_DF_SCLK_E = 280, - MFP_PIN_DF_SCLK_S = 281, - MFP_PIN_nBE0 = 282, - MFP_PIN_nBE1 = 283, - MFP_PIN_DF_nADV2_ALE = 284, - MFP_PIN_DF_INT_RnB = 285, - MFP_PIN_DF_nCS0 = 286, - MFP_PIN_DF_nCS1 = 287, - MFP_PIN_nLUA = 288, - MFP_PIN_nLLA = 289, - MFP_PIN_DF_nWE = 290, - MFP_PIN_DF_ALE_nWE = 291, - MFP_PIN_DF_nRE_nOE = 292, - MFP_PIN_DF_ADDR0 = 293, - MFP_PIN_DF_ADDR1 = 294, - MFP_PIN_DF_ADDR2 = 295, - MFP_PIN_DF_ADDR3 = 296, - MFP_PIN_DF_IO0 = 297, - MFP_PIN_DF_IO1 = 298, - MFP_PIN_DF_IO2 = 299, - MFP_PIN_DF_IO3 = 300, - MFP_PIN_DF_IO4 = 301, - MFP_PIN_DF_IO5 = 302, - MFP_PIN_DF_IO6 = 303, - MFP_PIN_DF_IO7 = 304, - MFP_PIN_DF_IO8 = 305, - MFP_PIN_DF_IO9 = 306, - MFP_PIN_DF_IO10 = 307, - MFP_PIN_DF_IO11 = 308, - MFP_PIN_DF_IO12 = 309, - MFP_PIN_DF_IO13 = 310, - MFP_PIN_DF_IO14 = 311, - MFP_PIN_DF_IO15 = 312, - MFP_PIN_DF_nCS0_SM_nCS2 = 313, - MFP_PIN_DF_nCS1_SM_nCS3 = 314, - MFP_PIN_SM_nCS0 = 315, - MFP_PIN_SM_nCS1 = 316, - MFP_PIN_DF_WEn = 317, - MFP_PIN_DF_REn = 318, - MFP_PIN_DF_CLE_SM_OEn = 319, - MFP_PIN_DF_ALE_SM_WEn = 320, - MFP_PIN_DF_RDY0 = 321, - MFP_PIN_DF_RDY1 = 322, - MFP_PIN_SM_SCLK = 323, - MFP_PIN_SM_BE0 = 324, - MFP_PIN_SM_BE1 = 325, - MFP_PIN_SM_ADV = 326, - MFP_PIN_SM_ADVMUX = 327, - MFP_PIN_SM_RDY = 328, - MFP_PIN_MMC1_DAT7 = 329, - MFP_PIN_MMC1_DAT6 = 330, - MFP_PIN_MMC1_DAT5 = 331, - MFP_PIN_MMC1_DAT4 = 332, - MFP_PIN_MMC1_DAT3 = 333, - MFP_PIN_MMC1_DAT2 = 334, - MFP_PIN_MMC1_DAT1 = 335, - MFP_PIN_MMC1_DAT0 = 336, - MFP_PIN_MMC1_CMD = 337, - MFP_PIN_MMC1_CLK = 338, - MFP_PIN_MMC1_CD = 339, - MFP_PIN_MMC1_WP = 340, - MFP_PIN_GSIM_UIO = 341, - MFP_PIN_GSIM_UCLK = 342, - MFP_PIN_GSIM_UDET = 343, - MFP_PIN_GSIM_nURST = 344, - MFP_PIN_PMIC_INT = 345, - MFP_PIN_RDY = 346, - MFP_PIN_TWSI1_SCL = 347, - MFP_PIN_TWSI1_SDA = 348, - MFP_PIN_TWSI4_SCL = 349, - MFP_PIN_TWSI4_SDA = 350, - MFP_PIN_CLK_REQ = 351, - MFP_PIN_MAX = 352, + AXP813_DCDC1 = 0, + AXP813_DCDC2 = 1, + AXP813_DCDC3 = 2, + AXP813_DCDC4 = 3, + AXP813_DCDC5 = 4, + AXP813_DCDC6 = 5, + AXP813_DCDC7 = 6, + AXP813_ALDO1 = 7, + AXP813_ALDO2 = 8, + AXP813_ALDO3 = 9, + AXP813_DLDO1 = 10, + AXP813_DLDO2 = 11, + AXP813_DLDO3 = 12, + AXP813_DLDO4 = 13, + AXP813_ELDO1 = 14, + AXP813_ELDO2 = 15, + AXP813_ELDO3 = 16, + AXP813_FLDO1 = 17, + AXP813_FLDO2 = 18, + AXP813_FLDO3 = 19, + AXP813_RTC_LDO = 20, + AXP813_LDO_IO0 = 21, + AXP813_LDO_IO1 = 22, + AXP813_SW = 23, + AXP813_REG_ID_MAX = 24, }; -struct mfp_addr_map { - unsigned int start; - unsigned int end; - unsigned long offset; +struct sec_voltage_desc { + int max; + int min; + int step; }; -struct qcom_smem_state { - struct kref refcount; - bool orphan; - struct list_head list; - struct device_node *of_node; - void *priv; - struct qcom_smem_state_ops ops; +enum s5m8767_reg { + S5M8767_REG_ID = 0, + S5M8767_REG_INT1 = 1, + S5M8767_REG_INT2 = 2, + S5M8767_REG_INT3 = 3, + S5M8767_REG_INT1M = 4, + S5M8767_REG_INT2M = 5, + S5M8767_REG_INT3M = 6, + S5M8767_REG_STATUS1 = 7, + S5M8767_REG_STATUS2 = 8, + S5M8767_REG_STATUS3 = 9, + S5M8767_REG_CTRL1 = 10, + S5M8767_REG_CTRL2 = 11, + S5M8767_REG_LOWBAT1 = 12, + S5M8767_REG_LOWBAT2 = 13, + S5M8767_REG_BUCHG = 14, + S5M8767_REG_DVSRAMP = 15, + S5M8767_REG_DVSTIMER2 = 16, + S5M8767_REG_DVSTIMER3 = 17, + S5M8767_REG_DVSTIMER4 = 18, + S5M8767_REG_LDO1 = 19, + S5M8767_REG_LDO2 = 20, + S5M8767_REG_LDO3 = 21, + S5M8767_REG_LDO4 = 22, + S5M8767_REG_LDO5 = 23, + S5M8767_REG_LDO6 = 24, + S5M8767_REG_LDO7 = 25, + S5M8767_REG_LDO8 = 26, + S5M8767_REG_LDO9 = 27, + S5M8767_REG_LDO10 = 28, + S5M8767_REG_LDO11 = 29, + S5M8767_REG_LDO12 = 30, + S5M8767_REG_LDO13 = 31, + S5M8767_REG_LDO14 = 32, + S5M8767_REG_LDO15 = 33, + S5M8767_REG_LDO16 = 34, + S5M8767_REG_LDO17 = 35, + S5M8767_REG_LDO18 = 36, + S5M8767_REG_LDO19 = 37, + S5M8767_REG_LDO20 = 38, + S5M8767_REG_LDO21 = 39, + S5M8767_REG_LDO22 = 40, + S5M8767_REG_LDO23 = 41, + S5M8767_REG_LDO24 = 42, + S5M8767_REG_LDO25 = 43, + S5M8767_REG_LDO26 = 44, + S5M8767_REG_LDO27 = 45, + S5M8767_REG_LDO28 = 46, + S5M8767_REG_UVLO = 49, + S5M8767_REG_BUCK1CTRL1 = 50, + S5M8767_REG_BUCK1CTRL2 = 51, + S5M8767_REG_BUCK2CTRL = 52, + S5M8767_REG_BUCK2DVS1 = 53, + S5M8767_REG_BUCK2DVS2 = 54, + S5M8767_REG_BUCK2DVS3 = 55, + S5M8767_REG_BUCK2DVS4 = 56, + S5M8767_REG_BUCK2DVS5 = 57, + S5M8767_REG_BUCK2DVS6 = 58, + S5M8767_REG_BUCK2DVS7 = 59, + S5M8767_REG_BUCK2DVS8 = 60, + S5M8767_REG_BUCK3CTRL = 61, + S5M8767_REG_BUCK3DVS1 = 62, + S5M8767_REG_BUCK3DVS2 = 63, + S5M8767_REG_BUCK3DVS3 = 64, + S5M8767_REG_BUCK3DVS4 = 65, + S5M8767_REG_BUCK3DVS5 = 66, + S5M8767_REG_BUCK3DVS6 = 67, + S5M8767_REG_BUCK3DVS7 = 68, + S5M8767_REG_BUCK3DVS8 = 69, + S5M8767_REG_BUCK4CTRL = 70, + S5M8767_REG_BUCK4DVS1 = 71, + S5M8767_REG_BUCK4DVS2 = 72, + S5M8767_REG_BUCK4DVS3 = 73, + S5M8767_REG_BUCK4DVS4 = 74, + S5M8767_REG_BUCK4DVS5 = 75, + S5M8767_REG_BUCK4DVS6 = 76, + S5M8767_REG_BUCK4DVS7 = 77, + S5M8767_REG_BUCK4DVS8 = 78, + S5M8767_REG_BUCK5CTRL1 = 79, + S5M8767_REG_BUCK5CTRL2 = 80, + S5M8767_REG_BUCK5CTRL3 = 81, + S5M8767_REG_BUCK5CTRL4 = 82, + S5M8767_REG_BUCK5CTRL5 = 83, + S5M8767_REG_BUCK6CTRL1 = 84, + S5M8767_REG_BUCK6CTRL2 = 85, + S5M8767_REG_BUCK7CTRL1 = 86, + S5M8767_REG_BUCK7CTRL2 = 87, + S5M8767_REG_BUCK8CTRL1 = 88, + S5M8767_REG_BUCK8CTRL2 = 89, + S5M8767_REG_BUCK9CTRL1 = 90, + S5M8767_REG_BUCK9CTRL2 = 91, + S5M8767_REG_LDO1CTRL = 92, + S5M8767_REG_LDO2_1CTRL = 93, + S5M8767_REG_LDO2_2CTRL = 94, + S5M8767_REG_LDO2_3CTRL = 95, + S5M8767_REG_LDO2_4CTRL = 96, + S5M8767_REG_LDO3CTRL = 97, + S5M8767_REG_LDO4CTRL = 98, + S5M8767_REG_LDO5CTRL = 99, + S5M8767_REG_LDO6CTRL = 100, + S5M8767_REG_LDO7CTRL = 101, + S5M8767_REG_LDO8CTRL = 102, + S5M8767_REG_LDO9CTRL = 103, + S5M8767_REG_LDO10CTRL = 104, + S5M8767_REG_LDO11CTRL = 105, + S5M8767_REG_LDO12CTRL = 106, + S5M8767_REG_LDO13CTRL = 107, + S5M8767_REG_LDO14CTRL = 108, + S5M8767_REG_LDO15CTRL = 109, + S5M8767_REG_LDO16CTRL = 110, + S5M8767_REG_LDO17CTRL = 111, + S5M8767_REG_LDO18CTRL = 112, + S5M8767_REG_LDO19CTRL = 113, + S5M8767_REG_LDO20CTRL = 114, + S5M8767_REG_LDO21CTRL = 115, + S5M8767_REG_LDO22CTRL = 116, + S5M8767_REG_LDO23CTRL = 117, + S5M8767_REG_LDO24CTRL = 118, + S5M8767_REG_LDO25CTRL = 119, + S5M8767_REG_LDO26CTRL = 120, + S5M8767_REG_LDO27CTRL = 121, + S5M8767_REG_LDO28CTRL = 122, }; -struct exynos_pm_domain_config { - u32 local_pwr_cfg; +enum s5m8767_dvs_buck_ramp_values { + S5M8767_DVS_BUCK_RAMP_5 = 4, + S5M8767_DVS_BUCK_RAMP_10 = 9, + S5M8767_DVS_BUCK_RAMP_12_5 = 11, + S5M8767_DVS_BUCK_RAMP_25 = 13, + S5M8767_DVS_BUCK_RAMP_50 = 14, + S5M8767_DVS_BUCK_RAMP_100 = 15, }; -struct exynos_pm_domain { - void *base; - long: 32; - struct generic_pm_domain pd; - u32 local_pwr_cfg; - long: 32; +enum s5m8767_regulators { + S5M8767_LDO1 = 0, + S5M8767_LDO2 = 1, + S5M8767_LDO3 = 2, + S5M8767_LDO4 = 3, + S5M8767_LDO5 = 4, + S5M8767_LDO6 = 5, + S5M8767_LDO7 = 6, + S5M8767_LDO8 = 7, + S5M8767_LDO9 = 8, + S5M8767_LDO10 = 9, + S5M8767_LDO11 = 10, + S5M8767_LDO12 = 11, + S5M8767_LDO13 = 12, + S5M8767_LDO14 = 13, + S5M8767_LDO15 = 14, + S5M8767_LDO16 = 15, + S5M8767_LDO17 = 16, + S5M8767_LDO18 = 17, + S5M8767_LDO19 = 18, + S5M8767_LDO20 = 19, + S5M8767_LDO21 = 20, + S5M8767_LDO22 = 21, + S5M8767_LDO23 = 22, + S5M8767_LDO24 = 23, + S5M8767_LDO25 = 24, + S5M8767_LDO26 = 25, + S5M8767_LDO27 = 26, + S5M8767_LDO28 = 27, + S5M8767_BUCK1 = 28, + S5M8767_BUCK2 = 29, + S5M8767_BUCK3 = 30, + S5M8767_BUCK4 = 31, + S5M8767_BUCK5 = 32, + S5M8767_BUCK6 = 33, + S5M8767_BUCK7 = 34, + S5M8767_BUCK8 = 35, + S5M8767_BUCK9 = 36, + S5M8767_AP_EN32KHZ = 37, + S5M8767_CP_EN32KHZ = 38, + S5M8767_REG_MAX = 39, }; -typedef void (*btf_trace_regulator_enable)(void *, const char *); - -typedef void (*btf_trace_regulator_enable_delay)(void *, const char *); - -typedef void (*btf_trace_regulator_enable_complete)(void *, const char *); - -typedef void (*btf_trace_regulator_disable)(void *, const char *); - -typedef void (*btf_trace_regulator_disable_complete)(void *, const char *); - -typedef void (*btf_trace_regulator_bypass_enable)(void *, const char *); - -typedef void (*btf_trace_regulator_bypass_enable_complete)(void *, const char *); - -typedef void (*btf_trace_regulator_bypass_disable)(void *, const char *); - -typedef void (*btf_trace_regulator_bypass_disable_complete)(void *, const char *); - -typedef void (*btf_trace_regulator_set_voltage)(void *, const char *, int, int); +struct sec_regulator_data; -typedef void (*btf_trace_regulator_set_voltage_complete)(void *, const char *, unsigned int); +struct sec_opmode_data; -struct regulator_enable_gpio { - struct list_head list; - struct gpio_desc *gpiod; - u32 enable_count; - u32 request_count; +struct sec_platform_data { + struct sec_regulator_data *regulators; + struct sec_opmode_data *opmode; + int num_regulators; + int buck_gpios[3]; + int buck_ds[3]; + unsigned int buck2_voltage[8]; + bool buck2_gpiodvs; + unsigned int buck3_voltage[8]; + bool buck3_gpiodvs; + unsigned int buck4_voltage[8]; + bool buck4_gpiodvs; + int buck_default_idx; + int buck_ramp_delay; + bool buck2_ramp_enable; + bool buck3_ramp_enable; + bool buck4_ramp_enable; + int buck2_init; + int buck3_init; + int buck4_init; + bool manual_poweroff; + bool disable_wrstbi; }; -enum regulator_active_discharge { - REGULATOR_ACTIVE_DISCHARGE_DEFAULT = 0, - REGULATOR_ACTIVE_DISCHARGE_DISABLE = 1, - REGULATOR_ACTIVE_DISCHARGE_ENABLE = 2, +struct sec_regulator_data { + int id; + struct regulator_init_data *initdata; + struct device_node *reg_node; + struct gpio_desc *ext_control_gpiod; }; -struct trace_event_raw_regulator_basic { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; +struct sec_opmode_data { + int id; + unsigned int mode; }; -struct trace_event_raw_regulator_range { - struct trace_entry ent; - u32 __data_loc_name; - int min; - int max; - char __data[0]; +struct sec_pmic_dev { + struct device *dev; + struct sec_platform_data *pdata; + struct regmap *regmap_pmic; + struct i2c_client *i2c; + unsigned long device_type; + int irq; + struct regmap_irq_chip_data *irq_data; }; -struct trace_event_raw_regulator_value { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int val; - char __data[0]; +struct s5m8767_info { + struct device *dev; + struct sec_pmic_dev *iodev; + int num_regulators; + struct sec_opmode_data *opmode; + int ramp_delay; + bool buck2_ramp; + bool buck3_ramp; + bool buck4_ramp; + bool buck2_gpiodvs; + bool buck3_gpiodvs; + bool buck4_gpiodvs; + u8 buck2_vol[8]; + u8 buck3_vol[8]; + u8 buck4_vol[8]; + int buck_gpios[3]; + int buck_ds[3]; + int buck_gpioindex; }; -struct regulator_map { - struct list_head list; - const char *dev_name; - const char *supply; - struct regulator_dev *regulator; +struct meson_reset_param { + int reg_count; + int level_offset; }; -struct regulator_supply_alias { - struct list_head list; - struct device *src_dev; - const char *src_supply; - struct device *alias_dev; - const char *alias_supply; +struct meson_reset { + void *reg_base; + const struct meson_reset_param *param; + struct reset_controller_dev rcdev; + spinlock_t lock; }; -struct trace_event_data_offsets_regulator_basic { - u32 name; +struct atmel_trng_data { + bool has_half_rate; }; -struct trace_event_data_offsets_regulator_range { - u32 name; +struct atmel_trng { + struct clk *clk; + void *base; + struct hwrng rng; + bool has_half_rate; }; -struct trace_event_data_offsets_regulator_value { - u32 name; +struct dma_iommu_mapping { + struct iommu_domain *domain; + unsigned long **bitmaps; + unsigned int nr_bitmaps; + unsigned int extensions; + size_t bitmap_size; + size_t bits; + dma_addr_t base; + spinlock_t lock; + struct kref kref; }; -struct summary_lock_data { - struct ww_acquire_ctx *ww_ctx; - struct regulator_dev **new_contended_rdev; - struct regulator_dev **old_contended_rdev; -}; +typedef void (*btf_trace_host1x_channel_open)(void *, const char *); -struct summary_data { - struct seq_file *s; - struct regulator_dev *parent; - int level; -}; +typedef void (*btf_trace_host1x_channel_release)(void *, const char *); -struct uniphier8250_priv { - int line; - struct clk *clk; - spinlock_t atomic_write_lock; -}; +typedef void (*btf_trace_host1x_cdma_begin)(void *, const char *); -struct imx_rngc { - struct device *dev; - struct clk *clk; - void *base; - struct hwrng rng; - struct completion rng_op_done; - u32 err_reg; -}; +typedef void (*btf_trace_host1x_cdma_end)(void *, const char *); -typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *); +typedef void (*btf_trace_host1x_cdma_push)(void *, const char *, u32, u32); -typedef void (*btf_trace_remove_device_from_group)(void *, int, struct device *); +typedef void (*btf_trace_host1x_cdma_push_wide)(void *, const char *, u32, u32, u32, u32); -typedef void (*btf_trace_attach_device_to_domain)(void *, struct device *); +typedef void (*btf_trace_host1x_cdma_push_gather)(void *, const char *, struct host1x_bo *, u32, u32, void *); -typedef void (*btf_trace_map)(void *, unsigned long, phys_addr_t, size_t); +typedef void (*btf_trace_host1x_channel_submit)(void *, const char *, u32, u32, u32, u32); -typedef void (*btf_trace_unmap)(void *, unsigned long, size_t, size_t); +typedef void (*btf_trace_host1x_channel_submitted)(void *, const char *, u32, u32); -typedef void (*btf_trace_io_page_fault)(void *, struct device *, unsigned long, int); +typedef void (*btf_trace_host1x_channel_submit_complete)(void *, const char *, int, u32); -struct trace_event_raw_iommu_group_event { +typedef void (*btf_trace_host1x_wait_cdma)(void *, const char *, u32); + +typedef void (*btf_trace_host1x_syncpt_load_min)(void *, u32, u32); + +typedef void (*btf_trace_host1x_syncpt_wait_check)(void *, struct host1x_bo *, u32, u32, u32, u32); + +struct trace_event_raw_host1x { struct trace_entry ent; - int gid; - u32 __data_loc_device; + const char *name; char __data[0]; }; -struct trace_event_raw_iommu_device_event { +struct trace_event_raw_host1x_cdma_push { struct trace_entry ent; - u32 __data_loc_device; + const char *name; + u32 op1; + u32 op2; char __data[0]; }; -struct trace_event_raw_map { +struct trace_event_raw_host1x_cdma_push_wide { struct trace_entry ent; - u64 iova; - u64 paddr; - size_t size; + const char *name; + u32 op1; + u32 op2; + u32 op3; + u32 op4; char __data[0]; - long: 32; }; -struct trace_event_raw_unmap { +struct trace_event_raw_host1x_cdma_push_gather { struct trace_entry ent; - u64 iova; - size_t size; - size_t unmapped_size; + const char *name; + struct host1x_bo *bo; + u32 words; + u32 offset; + bool cmdbuf; + u32 __data_loc_cmdbuf; char __data[0]; }; -struct trace_event_raw_iommu_error { +struct trace_event_raw_host1x_channel_submit { struct trace_entry ent; - u32 __data_loc_device; - u32 __data_loc_driver; - u64 iova; - int flags; + const char *name; + u32 cmdbufs; + u32 relocs; + u32 syncpt_id; + u32 syncpt_incrs; char __data[0]; - long: 32; }; -struct trace_event_data_offsets_iommu_group_event { - u32 device; +struct trace_event_raw_host1x_channel_submitted { + struct trace_entry ent; + const char *name; + u32 syncpt_base; + u32 syncpt_max; + char __data[0]; }; -struct trace_event_data_offsets_iommu_device_event { - u32 device; +struct trace_event_raw_host1x_channel_submit_complete { + struct trace_entry ent; + const char *name; + int count; + u32 thresh; + char __data[0]; }; -struct trace_event_data_offsets_iommu_error { - u32 device; - u32 driver; +struct trace_event_raw_host1x_wait_cdma { + struct trace_entry ent; + const char *name; + u32 eventid; + char __data[0]; }; -struct trace_event_data_offsets_map {}; - -struct trace_event_data_offsets_unmap {}; - -enum drm_minor_type { - DRM_MINOR_PRIMARY = 0, - DRM_MINOR_CONTROL = 1, - DRM_MINOR_RENDER = 2, - DRM_MINOR_ACCEL = 32, +struct trace_event_raw_host1x_syncpt_load_min { + struct trace_entry ent; + u32 id; + u32 val; + char __data[0]; }; -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, +struct trace_event_raw_host1x_syncpt_wait_check { + struct trace_entry ent; + struct host1x_bo *bo; + u32 offset; + u32 syncpt_id; + u32 thresh; + u32 min; + char __data[0]; }; -struct drm_unique { - __kernel_size_t unique_len; - char __attribute__((btf_type_tag("user"))) *unique; +struct trace_event_data_offsets_host1x_cdma_push_gather { + u32 cmdbuf; }; -struct drm_client { - int idx; - int auth; - unsigned long pid; - unsigned long uid; - unsigned long magic; - unsigned long iocs; -}; +struct trace_event_data_offsets_host1x {}; -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 trace_event_data_offsets_host1x_cdma_push {}; -struct drm_stats { - unsigned long count; - struct { - unsigned long value; - enum drm_stat_type type; - } data[15]; -}; +struct trace_event_data_offsets_host1x_cdma_push_wide {}; -struct drm_set_version { - int drm_di_major; - int drm_di_minor; - int drm_dd_major; - int drm_dd_minor; +struct trace_event_data_offsets_host1x_channel_submit {}; + +struct trace_event_data_offsets_host1x_channel_submitted {}; + +struct trace_event_data_offsets_host1x_channel_submit_complete {}; + +struct trace_event_data_offsets_host1x_wait_cdma {}; + +struct trace_event_data_offsets_host1x_syncpt_load_min {}; + +struct trace_event_data_offsets_host1x_syncpt_wait_check {}; + +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_get_cap { - __u64 capability; - __u64 value; +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_set_client_cap { - __u64 capability; - __u64 value; +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); }; -struct vic_config { +struct nvdec_config { const char *firmware; unsigned int version; bool supports_sid; + bool has_riscv; + bool has_extra_clocks; }; -struct falcon_firmware_section { - unsigned long offset; - size_t size; -}; - -struct falcon_firmware { - const struct firmware *firmware; - dma_addr_t iova; - dma_addr_t phys; - void *virt; - size_t size; - struct falcon_firmware_section bin_data; - struct falcon_firmware_section data; - struct falcon_firmware_section code; +struct tegra_drm_riscv_descriptor { + u32 manifest_offset; + u32 code_offset; + u32 code_size; + u32 data_offset; + u32 data_size; }; -struct falcon { +struct tegra_drm_riscv { struct device *dev; void *regs; - struct falcon_firmware firmware; + struct tegra_drm_riscv_descriptor bl_desc; + struct tegra_drm_riscv_descriptor os_desc; }; -struct vic { +struct nvdec { struct falcon falcon; void *regs; struct tegra_drm_client client; struct host1x_channel *channel; struct device *dev; - struct clk *clk; - struct reset_control *rst; - bool can_use_context; - const struct vic_config *config; -}; - -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 cpcap_ddata___2 { - struct spi_device *spi; - struct regmap_irq *irqs; - struct regmap_irq_chip_data *irqdata[3]; - const struct regmap_config *regmap_conf; - struct regmap *regmap; -}; - -struct sync_merge_data { - char name[32]; - __s32 fd2; - __s32 fence; - __u32 flags; - __u32 pad; + struct clk_bulk_data clks[3]; + unsigned int num_clks; + struct reset_control *reset; + const struct nvdec_config *config; + struct tegra_drm_riscv riscv; + phys_addr_t carveout_base; }; -struct sync_file_info { - char name[32]; - __s32 status; - __u32 flags; - __u32 num_fences; - __u32 pad; - __u64 sync_fence_info; +struct sih_irq_data { + u8 isr_offset; + u8 imr_offset; }; -struct sync_fence_info { - char obj_name[32]; - char driver_name[32]; - __s32 status; - __u32 flags; - __u64 timestamp_ns; +struct sih { + char name[8]; + u8 module; + u8 control_offset; + bool set_cor; + u8 bits; + u8 bytes_ixr; + u8 edr_offset; + u8 bytes_edr; + u8 irq_lines; + struct sih_irq_data mask[2]; }; -struct ata_eh_cmd_timeout_ent { - const u8 *commands; - const unsigned int *timeouts; +struct sih_agent { + int irq_base; + const struct sih *sih; + u32 imr; + bool imr_change_pending; + u32 edge_change; + struct mutex irq_lock; + char *irq_name; }; -enum { - ATA_EH_SPDN_NCQ_OFF = 1, - ATA_EH_SPDN_SPEED_DOWN = 2, - ATA_EH_SPDN_FALLBACK_TO_PIO = 4, - ATA_EH_SPDN_KEEP_ERRORS = 8, - ATA_EFLAG_IS_IO = 1, - ATA_EFLAG_DUBIOUS_XFER = 2, - ATA_EFLAG_OLD_ER = -2147483648, - ATA_ECAT_NONE = 0, - ATA_ECAT_ATA_BUS = 1, - ATA_ECAT_TOUT_HSM = 2, - ATA_ECAT_UNK_DEV = 3, - ATA_ECAT_DUBIOUS_NONE = 4, - ATA_ECAT_DUBIOUS_ATA_BUS = 5, - ATA_ECAT_DUBIOUS_TOUT_HSM = 6, - ATA_ECAT_DUBIOUS_UNK_DEV = 7, - ATA_ECAT_NR = 8, - ATA_EH_CMD_DFL_TIMEOUT = 5000, - ATA_EH_RESET_COOL_DOWN = 5000, - ATA_EH_PRERESET_TIMEOUT = 10000, - ATA_EH_FASTDRAIN_INTERVAL = 3000, - ATA_EH_UA_TRIES = 5, - ATA_EH_PROBE_TRIAL_INTERVAL = 60000, - ATA_EH_PROBE_TRIALS = 2, +enum sec_device_type { + S5M8767X = 0, + S2MPA01 = 1, + S2MPS11X = 2, + S2MPS13X = 3, + S2MPS14X = 4, + S2MPS15X = 5, + S2MPU02 = 6, }; 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, + ACTION_FAIL = 0, + ACTION_REPREP = 1, + ACTION_DELAYED_REPREP = 2, + ACTION_RETRY = 3, + ACTION_DELAYED_RETRY = 4, }; -enum ata_lpm_hints { - ATA_LPM_EMPTY = 1, - ATA_LPM_HIPM = 2, - ATA_LPM_WAKE_ONLY = 4, +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 speed_down_verdict_arg { - u64 since; - int xfer_ok; - int nr_errors[8]; - long: 32; +enum scsi_ml_status { + SCSIML_STAT_OK = 0, + SCSIML_STAT_RESV_CONFLICT = 1, + SCSIML_STAT_NOSPC = 2, + SCSIML_STAT_MED_ERROR = 3, + SCSIML_STAT_TGT_FAILURE = 4, + SCSIML_STAT_DL_TIMEOUT = 5, }; -struct spi_mem_driver { - struct spi_driver spidrv; - int (*probe)(struct spi_mem *); - int (*remove)(struct spi_mem *); - void (*shutdown)(struct spi_mem *); +enum scsi_host_prot_capabilities { + SHOST_DIF_TYPE1_PROTECTION = 1, + SHOST_DIF_TYPE2_PROTECTION = 2, + SHOST_DIF_TYPE3_PROTECTION = 4, + SHOST_DIX_TYPE0_PROTECTION = 8, + SHOST_DIX_TYPE1_PROTECTION = 16, + SHOST_DIX_TYPE2_PROTECTION = 32, + SHOST_DIX_TYPE3_PROTECTION = 64, }; -struct spi_nor_erase_command { - struct list_head list; - u32 count; - u32 size; - u8 opcode; +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, }; -struct flash_platform_data { - char *name; - struct mtd_partition *parts; - unsigned int nr_parts; - char *type; +struct scsi_event { + enum scsi_device_event evt_type; + struct list_head node; }; -struct tegra_slink_chip_data { - bool cs_hold_time; +struct jedec_ecc_info { + u8 ecc_bits; + u8 codeword_size; + __le16 bb_per_lun; + __le16 block_endurance; + u8 reserved[2]; }; -struct tegra_slink_data { - struct device *dev; - struct spi_controller *master; - const struct tegra_slink_chip_data *chip_data; - spinlock_t lock; - struct clk *clk; - struct reset_control *rst; - void *base; - phys_addr_t phys; - unsigned int irq; - u32 cur_speed; - struct spi_device *cur_spi; - unsigned int cur_pos; - unsigned int cur_len; - unsigned int words_per_32bit; - unsigned int bytes_per_word; - unsigned int curr_dma_words; - unsigned int cur_direction; - unsigned int cur_rx_pos; - unsigned int cur_tx_pos; - unsigned int dma_buf_size; - unsigned int max_buf_size; - bool is_curr_dma_xfer; - struct completion rx_dma_complete; - struct completion tx_dma_complete; - u32 tx_status; - u32 rx_status; - u32 status_reg; - bool is_packed; - u32 packed_size; - u32 command_reg; - u32 command2_reg; - u32 dma_control_reg; - u32 def_command_reg; - u32 def_command2_reg; - struct completion xfer_completion; - struct spi_transfer *curr_xfer; - struct dma_chan *rx_dma_chan; - u32 *rx_dma_buf; - dma_addr_t rx_dma_phys; - struct dma_async_tx_descriptor *rx_dma_desc; - struct dma_chan *tx_dma_chan; - u32 *tx_dma_buf; - dma_addr_t tx_dma_phys; - struct dma_async_tx_descriptor *tx_dma_desc; -}; +struct nand_jedec_params { + u8 sig[4]; + __le16 revision; + __le16 features; + u8 opt_cmd[3]; + __le16 sec_cmd; + u8 num_of_param_pages; + u8 reserved0[18]; + char manufacturer[12]; + char model[20]; + u8 jedec_id[6]; + u8 reserved1[10]; + __le32 byte_per_page; + __le16 spare_bytes_per_page; + u8 reserved2[6]; + __le32 pages_per_block; + __le32 blocks_per_lun; + u8 lun_count; + u8 addr_cycles; + u8 bits_per_cell; + u8 programs_per_page; + u8 multi_plane_addr; + u8 multi_plane_op_attr; + u8 reserved3[38]; + __le16 async_sdr_speed_grade; + __le16 toggle_ddr_speed_grade; + __le16 sync_ddr_speed_grade; + u8 async_sdr_features; + u8 toggle_ddr_features; + u8 sync_ddr_features; + __le16 t_prog; + __le16 t_bers; + __le16 t_r; + __le16 t_r_multi_plane; + __le16 t_ccs; + __le16 io_pin_capacitance_typ; + __le16 input_pin_capacitance_typ; + __le16 clk_pin_capacitance_typ; + u8 driver_strength_support; + __le16 t_adl; + u8 reserved4[36]; + u8 guaranteed_good_blocks; + __le16 guaranteed_block_endurance; + struct jedec_ecc_info ecc_info[4]; + u8 reserved5[29]; + u8 reserved6[148]; + __le16 vendor_rev_num; + u8 reserved7[88]; + __le16 crc; +} __attribute__((packed)); -struct iproc_mdiomux_desc { - void *mux_handle; - void *base; - struct device *dev; - struct mii_bus *mii_bus; - struct clk *core_clk; +struct mtd_dev_param { + char name[64]; + int ubi_num; + int vid_hdr_offs; + int max_beb_per1024; + int enable_fm; + int need_resv_pool; }; -struct bcm4908_enet_dma_ring_bd; - -struct bcm4908_enet_dma_ring_slot; - -struct bcm4908_enet_dma_ring { - int is_tx; - int read_idx; - int write_idx; - int length; - u16 cfg_block; - u16 st_ram_block; - long: 32; - struct napi_struct napi; - union { - void *cpu_addr; - struct bcm4908_enet_dma_ring_bd *buf_desc; - }; - dma_addr_t dma_addr; - struct bcm4908_enet_dma_ring_slot *slots; +struct ubi_notification { + struct ubi_device_info di; long: 32; + struct ubi_volume_info vi; }; -struct bcm4908_enet_dma_ring_bd { - __le32 ctl; - __le32 addr; -}; +typedef void (*btf_trace_spi_controller_idle)(void *, struct spi_controller *); -struct bcm4908_enet_dma_ring_slot { - union { - void *buf; - struct sk_buff *skb; - }; - unsigned int len; - dma_addr_t dma_addr; -}; +typedef void (*btf_trace_spi_controller_busy)(void *, struct spi_controller *); -struct bcm4908_enet { - struct device *dev; - struct net_device *netdev; - void *base; - int irq_tx; - struct bcm4908_enet_dma_ring tx_ring; - struct bcm4908_enet_dma_ring rx_ring; -}; +typedef void (*btf_trace_spi_setup)(void *, struct spi_device *, int); -struct socfpga_dwmac; +typedef void (*btf_trace_spi_set_cs)(void *, struct spi_device *, bool); -struct socfpga_dwmac_ops { - int (*set_phy_mode)(struct socfpga_dwmac *); -}; +typedef void (*btf_trace_spi_message_submit)(void *, struct spi_message *); -struct socfpga_dwmac { - u32 reg_offset; - u32 reg_shift; - struct device *dev; - struct regmap *sys_mgr_base_addr; - struct reset_control *stmmac_rst; - struct reset_control *stmmac_ocp_rst; - void *splitter_base; - void *tse_pcs_base; - void *sgmii_adapter_base; - bool f2h_ptp_ref_clk; - const struct socfpga_dwmac_ops *ops; - struct mdio_device *pcs_mdiodev; -}; +typedef void (*btf_trace_spi_message_start)(void *, struct spi_message *); -struct each_dev_arg { - void *data; - int (*fn)(struct usb_device *, void *); -}; +typedef void (*btf_trace_spi_message_done)(void *, struct spi_message *); -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; -}; +typedef void (*btf_trace_spi_transfer_start)(void *, struct spi_message *, struct spi_transfer *); -struct find_interface_arg { - int minor; - struct device_driver *drv; +typedef void (*btf_trace_spi_transfer_stop)(void *, struct spi_message *, struct spi_transfer *); + +struct boardinfo { + struct list_head list; + struct spi_board_info board_info; }; -struct ulpi_info { - unsigned int id; - char *name; +struct trace_event_raw_spi_controller { + struct trace_entry ent; + int bus_num; + char __data[0]; }; -enum xfer_buf_dir { - TO_XFER_BUF = 0, - FROM_XFER_BUF = 1, +struct trace_event_raw_spi_setup { + struct trace_entry ent; + int bus_num; + int chip_select; + unsigned long mode; + unsigned int bits_per_word; + unsigned int max_speed_hz; + int status; + char __data[0]; }; -struct amba_kmi_port { - struct serio *io; - struct clk *clk; - void *base; - unsigned int irq; - unsigned int divisor; - unsigned int open; +struct trace_event_raw_spi_set_cs { + struct trace_entry ent; + int bus_num; + int chip_select; + unsigned long mode; + bool enable; + char __data[0]; }; -struct i2c_mux_priv { - struct i2c_adapter adap; - struct i2c_algorithm algo; - struct i2c_mux_core *muxc; - u32 chan_id; - long: 32; +struct trace_event_raw_spi_message { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_message *msg; + char __data[0]; }; -struct of_changeset { - struct list_head entries; +struct trace_event_raw_spi_message_done { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_message *msg; + unsigned int frame; + unsigned int actual; + char __data[0]; }; -struct i2c_demux_pinctrl_chan { - struct device_node *parent_np; - struct i2c_adapter *parent_adap; - struct of_changeset chgset; +struct trace_event_raw_spi_transfer { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_transfer *xfer; + int len; + u32 __data_loc_rx_buf; + u32 __data_loc_tx_buf; + char __data[0]; }; -struct i2c_demux_pinctrl_priv { - int cur_chan; - int num_chan; - struct device *dev; - const char *bus_name; - struct i2c_adapter cur_adap; - struct i2c_algorithm algo; - struct i2c_demux_pinctrl_chan chan[0]; +typedef void (*spi_res_release_t)(struct spi_controller *, struct spi_message *, void *); + +struct spi_res { + struct list_head entry; + spi_res_release_t release; long: 32; + unsigned long long data[0]; }; -struct reset_syscfg { - struct regmap *regmap; - unsigned int offset_rst; - unsigned int mask_rst; - unsigned int offset_rst_msk; - unsigned int mask_rst_msk; +struct trace_event_data_offsets_spi_transfer { + u32 rx_buf; + u32 tx_buf; }; -struct bcm2835_wdt { - void *base; - spinlock_t lock; -}; +struct acpi_device; -struct edac_pci_dev_attribute { - struct attribute attr; - void *value; - ssize_t (*show)(void *, char *); - ssize_t (*store)(void *, const char *, size_t); -}; +struct spi_replaced_transfers; -struct instance_attribute { - struct attribute attr; - ssize_t (*show)(struct edac_pci_ctl_info *, char *); - ssize_t (*store)(struct edac_pci_ctl_info *, const char *, size_t); +typedef void (*spi_replaced_release_t)(struct spi_controller *, struct spi_message *, struct spi_replaced_transfers *); + +struct spi_replaced_transfers { + spi_replaced_release_t release; + void *extradata; + struct list_head replaced_transfers; + struct list_head *replaced_after; + size_t inserted; + struct spi_transfer inserted_transfers[0]; }; -typedef void (*pci_parity_check_fn_t)(struct pci_dev *); +struct trace_event_data_offsets_spi_controller {}; -struct wmt_mci_caps { - unsigned int f_min; - unsigned int f_max; - u32 ocr_avail; - u32 caps; - u32 max_seg_size; - u32 max_segs; - u32 max_blk_size; -}; +struct trace_event_data_offsets_spi_setup {}; -struct wmt_dma_descriptor { - u32 flags; - u32 data_buffer_addr; - u32 branch_addr; - u32 reserved1; -}; +struct trace_event_data_offsets_spi_set_cs {}; -struct wmt_mci_priv { - struct mmc_host *mmc; - void *sdmmc_base; - int irq_regular; - int irq_dma; - void *dma_desc_buffer; - dma_addr_t dma_desc_device_addr; - struct completion cmdcomp; - struct completion datacomp; - struct completion *comp_cmd; - struct completion *comp_dma; - struct mmc_request *req; - struct mmc_command *cmd; - struct clk *clk_sdmmc; - struct device *dev; - u8 power_inverted; - u8 cd_inverted; -}; +struct trace_event_data_offsets_spi_message {}; -struct dmi_memdev_info { - const char *device; - const char *bank; - u64 size; - u16 handle; - u8 type; - long: 32; +struct trace_event_data_offsets_spi_message_done {}; + +struct kszphy_type { + u32 led_mode_reg; + u16 interrupt_level_mask; + u16 cable_diag_reg; + unsigned long pair_mask; + u16 disable_dll_tx_bit; + u16 disable_dll_rx_bit; + u16 disable_dll_mask; + bool has_broadcast_disable; + bool has_nand_tree_disable; + bool has_rmii_ref_clk_sel; }; -enum dmi_entry_type { - DMI_ENTRY_BIOS = 0, - DMI_ENTRY_SYSTEM = 1, - DMI_ENTRY_BASEBOARD = 2, - DMI_ENTRY_CHASSIS = 3, - DMI_ENTRY_PROCESSOR = 4, - DMI_ENTRY_MEM_CONTROLLER = 5, - DMI_ENTRY_MEM_MODULE = 6, - DMI_ENTRY_CACHE = 7, - DMI_ENTRY_PORT_CONNECTOR = 8, - DMI_ENTRY_SYSTEM_SLOT = 9, - DMI_ENTRY_ONBOARD_DEVICE = 10, - DMI_ENTRY_OEMSTRINGS = 11, - DMI_ENTRY_SYSCONF = 12, - DMI_ENTRY_BIOS_LANG = 13, - DMI_ENTRY_GROUP_ASSOC = 14, - DMI_ENTRY_SYSTEM_EVENT_LOG = 15, - DMI_ENTRY_PHYS_MEM_ARRAY = 16, - DMI_ENTRY_MEM_DEVICE = 17, - DMI_ENTRY_32_MEM_ERROR = 18, - DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19, - DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20, - DMI_ENTRY_BUILTIN_POINTING_DEV = 21, - DMI_ENTRY_PORTABLE_BATTERY = 22, - DMI_ENTRY_SYSTEM_RESET = 23, - DMI_ENTRY_HW_SECURITY = 24, - DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25, - DMI_ENTRY_VOLTAGE_PROBE = 26, - DMI_ENTRY_COOLING_DEV = 27, - DMI_ENTRY_TEMP_PROBE = 28, - DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29, - DMI_ENTRY_OOB_REMOTE_ACCESS = 30, - DMI_ENTRY_BIS_ENTRY = 31, - DMI_ENTRY_SYSTEM_BOOT = 32, - DMI_ENTRY_MGMT_DEV = 33, - DMI_ENTRY_MGMT_DEV_COMPONENT = 34, - DMI_ENTRY_MGMT_DEV_THRES = 35, - DMI_ENTRY_MEM_CHANNEL = 36, - DMI_ENTRY_IPMI_DEV = 37, - DMI_ENTRY_SYS_POWER_SUPPLY = 38, - DMI_ENTRY_ADDITIONAL = 39, - DMI_ENTRY_ONBOARD_DEV_EXT = 40, - DMI_ENTRY_MGMT_CONTROLLER_HOST = 41, - DMI_ENTRY_INACTIVE = 126, - DMI_ENTRY_END_OF_TABLE = 127, +struct kszphy_hw_stat { + const char *string; + u8 reg; + u8 bits; }; -struct dmi_header { - u8 type; - u8 length; - u16 handle; +struct ksz9477_errata_write { + u8 dev_addr; + u8 reg_addr; + u16 val; }; -enum { - USER_CLOCKSOURCE = 0, - USER_CLOCKEVENT = 1, - USER_NR = 2, +struct lan8814_shared_priv { + struct phy_device *phydev; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; + u8 ref; + struct mutex shared_lock; }; -struct em_sti_priv { - void *base; - struct clk *clk; - struct platform_device *pdev; - unsigned int active[2]; - unsigned long rate; - raw_spinlock_t lock; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct clock_event_device ced; - struct clocksource cs; - long: 32; - long: 32; - long: 32; - long: 32; +struct kszphy_ptp_priv { + struct mii_timestamper mii_ts; + struct phy_device *phydev; + struct sk_buff_head tx_queue; + struct sk_buff_head rx_queue; + struct list_head rx_ts_list; + spinlock_t rx_ts_lock; + int hwts_tx_type; + enum hwtstamp_rx_filters rx_filter; + int layer; + int version; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; + struct mutex ptp_lock; + struct ptp_pin_desc *pin_config; long: 32; + s64 seconds; + spinlock_t seconds_lock; long: 32; }; -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 kszphy_priv { + struct kszphy_ptp_priv ptp_priv; + const struct kszphy_type *type; + int led_mode; + u16 vct_ctrl1000; + bool rmii_ref_clk_sel; + bool rmii_ref_clk_sel_val; + long: 32; + u64 stats[2]; }; -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 lan8814_ptp_rx_ts { + struct list_head list; + u32 seconds; + u32 nsec; + u16 seq_id; }; -struct hid_parser { - struct hid_global global; - struct hid_global global_stack[4]; - unsigned int global_stack_ptr; - struct hid_local local; - unsigned int *collection_stack; - unsigned int collection_stack_ptr; - unsigned int collection_stack_size; - struct hid_device *device; - unsigned int scan_flags; +enum bcmasp_stat_type { + BCMASP_STAT_RX_EDPKT = 0, + BCMASP_STAT_RX_CTRL = 1, + BCMASP_STAT_RX_CTRL_PER_INTF = 2, + BCMASP_STAT_SOFT = 3, }; -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 bcmasp_stats { + char stat_string[32]; + enum bcmasp_stat_type type; + u32 reg_offset; }; -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 igb_reg_info { + u32 ofs; + char *name; }; -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; +enum e1000_ring_flags_t { + IGB_RING_FLAG_RX_3K_BUFFER = 0, + IGB_RING_FLAG_RX_BUILD_SKB_ENABLED = 1, + IGB_RING_FLAG_RX_SCTP_CSUM = 2, + IGB_RING_FLAG_RX_LB_VLAN_BSWAP = 3, + IGB_RING_FLAG_TX_CTX_IDX = 4, + IGB_RING_FLAG_TX_DETECT_HANG = 5, }; -struct hid_dynid { - struct list_head list; - struct hid_device_id id; +enum igb_tx_flags { + IGB_TX_FLAGS_VLAN = 1, + IGB_TX_FLAGS_TSO = 2, + IGB_TX_FLAGS_TSTAMP = 4, + IGB_TX_FLAGS_IPV4 = 16, + IGB_TX_FLAGS_CSUM = 32, }; -struct exynos_srom_reg_dump { - u32 offset; - u32 value; +enum flow_block_command { + FLOW_BLOCK_BIND = 0, + FLOW_BLOCK_UNBIND = 1, }; -struct exynos_srom { - struct device *dev; - void *reg_base; - struct exynos_srom_reg_dump *reg_offset; +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 iio_kfifo { - struct iio_buffer buffer; - struct kfifo kf; - struct mutex user_lock; - int update_needed; +enum tx_queue_prio { + TX_QUEUE_PRIO_HIGH = 0, + TX_QUEUE_PRIO_LOW = 1, }; -struct scm_timestamping64 { - struct __kernel_timespec ts[3]; +enum queue_mode { + QUEUE_MODE_STRICT_PRIORITY = 0, + QUEUE_MODE_STREAM_RESERVATION = 1, }; -struct scm_timestamping { - struct __kernel_old_timespec ts[3]; +enum latency_range { + lowest_latency = 0, + low_latency = 1, + bulk_latency = 2, + latency_invalid = 255, }; -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 my_u0 { + __le64 a; + __le64 b; }; -struct privflags_reply_data { - struct ethnl_reply_data base; - const char (*priv_flag_names)[32]; - unsigned int n_priv_flags; - u32 priv_flags; +struct e1000_adv_tx_context_desc { + __le32 vlan_macip_lens; + __le32 seqnum_seed; + __le32 type_tucmd_mlhl; + __le32 mss_l4len_idx; }; -enum { - TCP_NO_QUEUE = 0, - TCP_RECV_QUEUE = 1, - TCP_SEND_QUEUE = 2, - TCP_QUEUES_NR = 3, +struct e1000_fw_version { + u32 etrack_id; + u16 eep_major; + u16 eep_minor; + u16 eep_build; + u8 invm_major; + u8 invm_minor; + u8 invm_img_type; + bool or_valid; + u16 or_major; + u16 or_build; + u16 or_patch; }; -enum { - TCP_CMSG_INQ = 1, - TCP_CMSG_TS = 2, +struct tc_query_caps_base { + enum tc_setup_type type; + void *caps; }; -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, +struct tc_taprio_caps { + bool supports_queue_max_sdu: 1; + bool gate_mask_per_txq: 1; + bool broken_mqprio: 1; }; -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 tc_cbs_qopt_offload { + u8 enable; + s32 queue; + s32 hicredit; + s32 locredit; + s32 idleslope; + s32 sendslope; }; -struct tcp_splice_state { - struct pipe_inode_info *pipe; - size_t len; - unsigned int flags; +struct tc_etf_qopt_offload { + u8 enable; + s32 queue; }; -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; +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 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 flow_match_basic { + struct flow_dissector_key_basic *key; + struct flow_dissector_key_basic *mask; }; -struct tcp_repair_opt { - __u32 opt_code; - __u32 opt_val; +struct sunxi_priv_data___2 { + phy_interface_t interface; + int clk_enabled; + struct clk *tx_clk; + struct regulator *regulator; }; -struct tcp_repair_window { - __u32 snd_wl1; - __u32 snd_wnd; - __u32 max_window; - __u32 rcv_wnd; - __u32 rcv_wup; +struct usb_cdc_mdlm_detail_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bGuidDescriptorType; + __u8 bDetailData[0]; }; -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 usb_cdc_mdlm_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdVersion; + __u8 bGUID[16]; +} __attribute__((packed)); -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 usb_dev_cap_header { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; }; -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 ab8500_usb_mode { + USB_IDLE = 0, + USB_PERIPHERAL = 1, + USB_HOST = 2, + USB_DEDICATED_CHG = 3, + USB_UART = 4, }; -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, +enum ux500_musb_vbus_id_status { + UX500_MUSB_NONE = 0, + UX500_MUSB_VBUS = 1, + UX500_MUSB_ID = 2, + UX500_MUSB_CHARGER = 3, + UX500_MUSB_ENUMERATED = 4, + UX500_MUSB_RIDA = 5, + UX500_MUSB_RIDB = 6, + UX500_MUSB_RIDC = 7, + UX500_MUSB_PREPARE = 8, + UX500_MUSB_CLEAN = 9, }; -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]; +enum ab8500_usb_link_status { + USB_LINK_NOT_CONFIGURED_8500 = 0, + USB_LINK_STD_HOST_NC_8500 = 1, + USB_LINK_STD_HOST_C_NS_8500 = 2, + USB_LINK_STD_HOST_C_S_8500 = 3, + USB_LINK_HOST_CHG_NM_8500 = 4, + USB_LINK_HOST_CHG_HS_8500 = 5, + USB_LINK_HOST_CHG_HS_CHIRP_8500 = 6, + USB_LINK_DEDICATED_CHG_8500 = 7, + USB_LINK_ACA_RID_A_8500 = 8, + USB_LINK_ACA_RID_B_8500 = 9, + USB_LINK_ACA_RID_C_NM_8500 = 10, + USB_LINK_ACA_RID_C_HS_8500 = 11, + USB_LINK_ACA_RID_C_HS_CHIRP_8500 = 12, + USB_LINK_HM_IDGND_8500 = 13, + USB_LINK_RESERVED_8500 = 14, + USB_LINK_NOT_VALID_LINK_8500 = 15, }; -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; +enum ab8505_usb_link_status { + USB_LINK_NOT_CONFIGURED_8505 = 0, + USB_LINK_STD_HOST_NC_8505 = 1, + USB_LINK_STD_HOST_C_NS_8505 = 2, + USB_LINK_STD_HOST_C_S_8505 = 3, + USB_LINK_CDP_8505 = 4, + USB_LINK_RESERVED0_8505 = 5, + USB_LINK_RESERVED1_8505 = 6, + USB_LINK_DEDICATED_CHG_8505 = 7, + USB_LINK_ACA_RID_A_8505 = 8, + USB_LINK_ACA_RID_B_8505 = 9, + USB_LINK_ACA_RID_C_NM_8505 = 10, + USB_LINK_RESERVED2_8505 = 11, + USB_LINK_RESERVED3_8505 = 12, + USB_LINK_HM_IDGND_8505 = 13, + USB_LINK_CHARGERPORT_NOT_OK_8505 = 14, + USB_LINK_CHARGER_DM_HIGH_8505 = 15, + USB_LINK_PHYEN_NO_VBUS_NO_IDGND_8505 = 16, + USB_LINK_STD_UPSTREAM_NO_IDGNG_NO_VBUS_8505 = 17, + USB_LINK_STD_UPSTREAM_8505 = 18, + USB_LINK_CHARGER_SE1_8505 = 19, + USB_LINK_CARKIT_CHGR_1_8505 = 20, + USB_LINK_CARKIT_CHGR_2_8505 = 21, + USB_LINK_ACA_DOCK_CHGR_8505 = 22, + USB_LINK_SAMSUNG_BOOT_CBL_PHY_EN_8505 = 23, + USB_LINK_SAMSUNG_BOOT_CBL_PHY_DISB_8505 = 24, + USB_LINK_SAMSUNG_UART_CBL_PHY_EN_8505 = 25, + USB_LINK_SAMSUNG_UART_CBL_PHY_DISB_8505 = 26, + USB_LINK_MOTOROLA_FACTORY_CBL_PHY_EN_8505 = 27, }; -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 ab8500_usb { + struct usb_phy phy; + struct device *dev; + struct ab8500 *ab8500; + unsigned int vbus_draw; + struct work_struct phy_dis_work; + enum ab8500_usb_mode mode; + struct clk *sysclk; + struct regulator *v_ape; + struct regulator *v_musb; + struct regulator *v_ulpi; + int saved_v_ulpi; + int previous_link_status_state; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_sleep; + bool enabled_charging_detection; + unsigned int flags; }; -enum { - CGW_UNSPEC = 0, - CGW_MOD_AND = 1, - CGW_MOD_OR = 2, - CGW_MOD_XOR = 3, - CGW_MOD_SET = 4, - CGW_CS_XOR = 5, - CGW_CS_CRC8 = 6, - CGW_HANDLED = 7, - CGW_DROPPED = 8, - CGW_SRC_IF = 9, - CGW_DST_IF = 10, - CGW_FILTER = 11, - CGW_DELETED = 12, - CGW_LIM_HOPS = 13, - CGW_MOD_UID = 14, - CGW_FDMOD_AND = 15, - CGW_FDMOD_OR = 16, - CGW_FDMOD_XOR = 17, - CGW_FDMOD_SET = 18, - __CGW_MAX = 19, +struct usb_ohci_pdata { + unsigned int big_endian_desc: 1; + unsigned int big_endian_mmio: 1; + unsigned int no_big_frame_no: 1; + unsigned int num_ports; + int (*power_on)(struct platform_device *); + void (*power_off)(struct platform_device *); + void (*power_suspend)(struct platform_device *); }; -enum { - CGW_TYPE_UNSPEC = 0, - CGW_TYPE_CAN_CAN = 1, - __CGW_TYPE_MAX = 2, +struct ohci_platform_priv { + struct clk *clks[4]; + struct reset_control *resets; }; -enum { - CGW_CRC8PRF_UNSPEC = 0, - CGW_CRC8PRF_1U8 = 1, - CGW_CRC8PRF_16U8 = 2, - CGW_CRC8PRF_SFFID_XOR = 3, - __CGW_CRC8PRF_MAX = 4, +struct ignore_entry { + u16 vid; + u16 pid; + u16 bcdmin; + u16 bcdmax; }; -struct can_filter { - canid_t can_id; - canid_t can_mask; +struct amba_kmi_port { + struct serio *io; + struct clk *clk; + void *base; + unsigned int irq; + unsigned int divisor; + unsigned int open; }; -struct can_can_gw { - struct can_filter filter; - int src_idx; - int dst_idx; +struct vt8500_rtc { + void *regbase; + int irq_alarm; + struct rtc_device *rtc; + spinlock_t lock; }; -struct cgw_csum_xor { - __s8 from_idx; - __s8 to_idx; - __s8 result_idx; - __u8 init_xor_val; +struct i2c_vendor_data { + bool has_mtdws; + u32 fifodepth; }; -struct cgw_csum_crc8 { - __s8 from_idx; - __s8 to_idx; - __s8 result_idx; - __u8 init_crc_val; - __u8 final_xor_val; - __u8 crctab[256]; - __u8 profile; - __u8 profile_data[20]; +enum i2c_operation { + I2C_NO_OPERATION = 255, + I2C_WRITE = 0, + I2C_READ = 1, }; -struct cf_mod { - struct { - struct canfd_frame and; - struct canfd_frame or; - struct canfd_frame xor; - struct canfd_frame set; - } modframe; - struct { - u8 and; - u8 or; - u8 xor; - u8 set; - } modtype; - void (*modfunc[16])(struct canfd_frame *, struct cf_mod *); - struct { - struct cgw_csum_xor xor; - struct cgw_csum_crc8 crc8; - } csum; - struct { - void (*xor)(struct canfd_frame *, struct cgw_csum_xor *); - void (*crc8)(struct canfd_frame *, struct cgw_csum_crc8 *); - } csumfunc; - u32 uid; +enum i2c_freq_mode { + I2C_FREQ_MODE_STANDARD = 0, + I2C_FREQ_MODE_FAST = 1, + I2C_FREQ_MODE_HIGH_SPEED = 2, + I2C_FREQ_MODE_FAST_PLUS = 3, }; -struct cgw_job { - struct hlist_node list; - struct callback_head rcu; - u32 handled_frames; - u32 dropped_frames; - u32 deleted_frames; - long: 32; - struct cf_mod mod; - union { - struct net_device *dev; - } src; - union { - struct net_device *dev; - } dst; - union { - struct can_can_gw ccgw; - }; - u8 gwtype; - u8 limit_hops; - u16 flags; - long: 32; +enum i2c_status { + I2C_NOP = 0, + I2C_ON_GOING = 1, + I2C_OK = 2, + I2C_ABORT = 3, }; -struct rtcanmsg { - __u8 can_family; - __u8 gwtype; - __u16 flags; +struct i2c_nmk_client { + unsigned short slave_adr; + unsigned long count; + unsigned char *buffer; + unsigned long xfer_bytes; + enum i2c_operation operation; }; -struct cgw_frame_mod { - struct can_frame cf; - __u8 modtype; -} __attribute__((packed)); - -struct cgw_fdframe_mod { - struct canfd_frame cf; - __u8 modtype; -} __attribute__((packed)); - -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, +struct nmk_i2c_dev { + struct i2c_vendor_data *vendor; + struct amba_device *adev; + struct i2c_adapter adap; + int irq; + void *virtbase; + struct clk *clk; + struct i2c_nmk_client cli; + u32 clk_freq; + unsigned char tft; + unsigned char rft; + int timeout; + enum i2c_freq_mode sm; + int stop; + struct completion xfer_complete; + int result; }; -typedef struct xdr_netobj utf8string; - -typedef struct xdr_netobj gssx_buffer; - -struct gssx_option; +struct bsc_clk_param { + u32 hz; + u32 scl_mask; + u32 div_mask; +}; -struct gssx_option_array { - u32 count; - struct gssx_option *data; +enum bsc_xfer_cmd { + CMD_WR = 0, + CMD_RD = 1, + CMD_WR_NOACK = 2, + CMD_RD_NOACK = 3, }; -struct gssx_call_ctx { - utf8string locale; - gssx_buffer server_ctx; - struct gssx_option_array options; +struct bsc_regs; + +struct brcmstb_i2c_dev { + struct device *device; + void *base; + int irq; + struct bsc_regs *bsc_regmap; + struct i2c_adapter adapter; + struct completion done; + u32 clk_freq_hz; + int data_regsz; + bool atomic; + long: 32; }; -struct gssp_in_token { - struct page **pages; - unsigned int page_base; - unsigned int page_len; +struct bsc_regs { + u32 chip_address; + u32 data_in[8]; + u32 cnt_reg; + u32 ctl_reg; + u32 iic_enable; + u32 data_out[8]; + u32 ctlhi_reg; + u32 scl_param; }; -struct gssx_ctx; - -struct gssx_cred; - -struct gssx_cb; +struct amlogic_thermal_soc_calib_data; -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 amlogic_thermal_data { + int u_efuse_off; + const struct amlogic_thermal_soc_calib_data *calibration_parameters; + const struct regmap_config *regmap_config; }; -struct gssx_option { - gssx_buffer option; - gssx_buffer value; +struct amlogic_thermal_soc_calib_data { + int A; + int B; + int m; + int n; }; -typedef struct xdr_netobj gssx_OID; - -struct gssx_name { - gssx_buffer display_name; +struct amlogic_thermal { + struct platform_device *pdev; + const struct amlogic_thermal_data *data; + struct regmap *regmap; + struct regmap *sec_ao_map; + struct clk *clk; + struct thermal_zone_device *tzd; + u32 trim_info; }; -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; - long: 32; - u64 lifetime; - u64 ctx_flags; - u32 locally_initiated; - u32 open; - struct gssx_option_array options; +enum prcmu_wdog_id { + PRCMU_WDOG_ALL = 0, + PRCMU_WDOG_CPU1 = 1, + PRCMU_WDOG_CPU2 = 2, }; -struct gssx_cred_element; +struct mmc_clk_phase { + bool valid; + u16 in_deg; + u16 out_deg; +}; -struct gssx_cred_element_array { - u32 count; - struct gssx_cred_element *data; +struct mmc_clk_phase_map { + struct mmc_clk_phase phase[11]; }; -struct gssx_cred { - gssx_name desired_name; - struct gssx_cred_element_array elements; - gssx_buffer cred_handle_reference; - u32 needs_release; +struct meson_mx_mmc_host { + struct device *controller_dev; + struct clk *parent_clk; + struct clk *core_clk; + struct clk_divider cfg_div; + struct clk *cfg_div_clk; + struct clk_fixed_factor fixed_factor; + struct clk *fixed_factor_clk; + void *base; + int irq; + spinlock_t irq_lock; + struct timer_list cmd_timeout; + unsigned int slot_id; + struct mmc_host *mmc; + struct mmc_request *mrq; + struct mmc_command *cmd; + int error; }; -struct gssx_cred_element { - gssx_name MN; - gssx_OID mech; - u32 cred_usage; - long: 32; - u64 initiator_time_rec; - u64 acceptor_time_rec; - struct gssx_option_array options; +struct sdhci_bcm_kona_dev { + struct mutex write_lock; }; -struct gssx_cb { - u64 initiator_addrtype; - gssx_buffer initiator_address; - u64 acceptor_addrtype; - gssx_buffer acceptor_address; - gssx_buffer application_data; +struct pit_data { + struct clock_event_device clkevt; + struct clocksource clksrc; + void *base; + u32 cycle; + u32 cnt; + unsigned int irq; + struct clk *mck; + long: 32; }; -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 hid_control_fifo { + unsigned char dir; + struct hid_report *report; + char *raw_report; }; -struct gssx_res_accept_sec_context { - struct gssx_status status; - struct gssx_ctx *context_handle; - gssx_buffer *output_token; - struct gssx_option_array options; +struct hid_output_fifo { + struct hid_report *report; + char *raw_report; }; -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; +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; }; -typedef struct { - unsigned long key[2]; -} hsiphash_key_t; +struct hid_class_descriptor { + __u8 bDescriptorType; + __le16 wDescriptorLength; +} __attribute__((packed)); -typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long); +struct hid_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdHID; + __u8 bCountryCode; + __u8 bNumDescriptors; + struct hid_class_descriptor desc[1]; +} __attribute__((packed)); -typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long); +struct optee_rpc_param; -struct pt_regs_offset { - const char *name; - int offset; -}; +typedef void (*btf_trace_optee_invoke_fn_begin)(void *, struct optee_rpc_param *); -enum arm_regset { - REGSET_GPR = 0, - REGSET_FPR = 1, - REGSET_VFP = 2, +struct optee_rpc_param { + u32 a0; + u32 a1; + u32 a2; + u32 a3; + u32 a4; + u32 a5; + u32 a6; + u32 a7; }; -enum ptrace_syscall_dir { - PTRACE_SYSCALL_ENTER = 0, - PTRACE_SYSCALL_EXIT = 1, -}; +typedef void (*btf_trace_optee_invoke_fn_end)(void *, struct optee_rpc_param *, struct arm_smccc_res *); -struct trace_event_raw_sys_enter { +struct trace_event_raw_optee_invoke_fn_begin { struct trace_entry ent; - long id; - unsigned long args[6]; + void *param; + u32 args[8]; char __data[0]; }; -struct trace_event_raw_sys_exit { +struct trace_event_raw_optee_invoke_fn_end { struct trace_entry ent; - long id; - long ret; + void *param; + unsigned long rets[4]; char __data[0]; }; -struct trace_event_data_offsets_sys_enter {}; - -struct trace_event_data_offsets_sys_exit {}; - -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 optee_smc_call_get_os_revision_result { + unsigned long major; + unsigned long minor; + unsigned long build_id; + unsigned long reserved1; }; -struct rlimit64 { - __u64 rlim_cur; - __u64 rlim_max; +struct optee_smc_calls_revision_result { + unsigned long major; + unsigned long minor; + unsigned long reserved0; + unsigned long reserved1; }; -struct getcpu_cache { - unsigned long blob[32]; +struct optee_smc_exchange_capabilities_result { + unsigned long status; + unsigned long capabilities; + unsigned long max_notif_value; + unsigned long data; }; -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; - long: 32; +struct optee_smc_get_shm_config_result { + unsigned long status; + unsigned long start; + unsigned long size; + unsigned long settings; }; -struct dma_coherent_mem { - void *virt_base; - dma_addr_t device_base; - unsigned long pfn_base; - int size; - unsigned long *bitmap; - spinlock_t spinlock; - bool use_dev_dma_pfn_offset; +struct optee_smc_disable_shm_cache_result { + unsigned long status; + unsigned long shm_upper32; + unsigned long shm_lower32; + unsigned long reserved0; }; -struct boot_triggers { - const char *event; - char *trigger; +struct optee_call_ctx { + void *pages_list; + size_t num_entries; }; -enum { - FORMAT_HEADER = 1, - FORMAT_FIELD_SEPERATOR = 2, - FORMAT_PRINTFMT = 3, -}; +struct trace_event_data_offsets_optee_invoke_fn_begin {}; -struct module_string { - struct list_head next; - struct module *module; - char *str; -}; +struct trace_event_data_offsets_optee_invoke_fn_end {}; -struct event_probe_data { - struct trace_event_file *file; - unsigned long count; - int ref; - bool enable; +struct ipv6_bpf_stub { + int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32); + struct sock * (*udp6_lib_lookup)(struct net *, const struct in6_addr *, __be16, const struct in6_addr *, __be16, int, int, struct udp_table *, struct sk_buff *); + int (*ipv6_setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*ipv6_getsockopt)(struct sock *, int, int, sockptr_t, sockptr_t); + int (*ipv6_dev_get_saddr)(struct net *, const struct net_device *, const struct in6_addr *, unsigned int, struct in6_addr *); }; -struct bpf_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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct bpf_scratchpad { + union { + __be32 diff[128]; + u8 buff[512]; + }; }; -struct bpf_devmap_val { - __u32 ifindex; - union { - int fd; - __u32 id; - } bpf_prog; +enum { + BPF_F_NEIGH = 2, + BPF_F_PEER = 4, + BPF_F_NEXTHOP = 8, }; -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; +enum { + BPF_F_RECOMPUTE_CSUM = 1, + BPF_F_INVALIDATE_HASH = 2, }; -struct inodes_stat_t { - long nr_inodes; - long nr_unused; - long dummy[5]; +enum bpf_hdr_start_off { + BPF_HDR_START_MAC = 0, + BPF_HDR_START_NET = 1, }; -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 { + BPF_F_HDR_FIELD_MASK = 15, }; -enum siginfo_layout { - SIL_KILL = 0, - SIL_TIMER = 1, - SIL_POLL = 2, - SIL_FAULT = 3, - SIL_FAULT_TRAPNO = 4, - SIL_FAULT_MCEERR = 5, - SIL_FAULT_BNDERR = 6, - SIL_FAULT_PKUERR = 7, - SIL_FAULT_PERF_EVENT = 8, - SIL_CHLD = 9, - SIL_RT = 10, - SIL_SYS = 11, +enum { + BPF_F_PSEUDO_HDR = 16, + BPF_F_MARK_MANGLED_0 = 32, + BPF_F_MARK_ENFORCE = 64, }; -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]; +enum { + BPF_CSUM_LEVEL_QUERY = 0, + BPF_CSUM_LEVEL_INC = 1, + BPF_CSUM_LEVEL_DEC = 2, + BPF_CSUM_LEVEL_RESET = 3, }; -struct signalfd_ctx { - sigset_t sigmask; +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, }; -struct squashfs_lzo { - void *input; - void *output; +enum { + BPF_ADJ_ROOM_ENCAP_L2_MASK = 255, + BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56, }; -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 = 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, - Opt_xprtsec = 54, +enum bpf_adj_room_mode { + BPF_ADJ_ROOM_NET = 0, + BPF_ADJ_ROOM_MAC = 1, }; 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, + BPF_F_TUNINFO_IPV6 = 1, }; enum { - Opt_lookupcache_all = 0, - Opt_lookupcache_none = 1, - Opt_lookupcache_positive = 2, + BPF_F_TUNINFO_FLAGS = 16, }; enum { - Opt_local_lock_all = 0, - Opt_local_lock_flock = 1, - Opt_local_lock_none = 2, - Opt_local_lock_posix = 3, + BPF_F_ZERO_CSUM_TX = 2, + BPF_F_DONT_FRAGMENT = 4, + BPF_F_SEQ_NUMBER = 8, + BPF_F_NO_TUNNEL_KEY = 16, }; enum { - Opt_write_lazy = 0, - Opt_write_eager = 1, - Opt_write_wait = 2, + 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 { - 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, + BPF_FIB_LOOKUP_DIRECT = 1, + BPF_FIB_LOOKUP_OUTPUT = 2, + BPF_FIB_LOOKUP_SKIP_NEIGH = 4, + BPF_FIB_LOOKUP_TBID = 8, + BPF_FIB_LOOKUP_SRC = 16, }; 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, + BPF_FIB_LKUP_RET_SUCCESS = 0, + BPF_FIB_LKUP_RET_BLACKHOLE = 1, + BPF_FIB_LKUP_RET_UNREACHABLE = 2, + BPF_FIB_LKUP_RET_PROHIBIT = 3, + BPF_FIB_LKUP_RET_NOT_FWDED = 4, + BPF_FIB_LKUP_RET_FWD_DISABLED = 5, + BPF_FIB_LKUP_RET_UNSUPP_LWT = 6, + BPF_FIB_LKUP_RET_NO_NEIGH = 7, + BPF_FIB_LKUP_RET_FRAG_NEEDED = 8, + BPF_FIB_LKUP_RET_NO_SRC_ADDR = 9, }; -enum { - Opt_xprtsec_none = 0, - Opt_xprtsec_tls = 1, - Opt_xprtsec_mtls = 2, - nr__Opt_xprtsec = 3, +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, }; -struct compat_nfs_string { - compat_uint_t len; - compat_uptr_t data; +enum bpf_check_mtu_flags { + BPF_MTU_CHK_SEGS = 1, }; -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; +enum bpf_lwt_encap_mode { + BPF_LWT_ENCAP_SEG6 = 0, + BPF_LWT_ENCAP_SEG6_INLINE = 1, + BPF_LWT_ENCAP_IP = 2, }; -struct nfs2_fh { - char data[32]; +enum { + BPF_LOAD_HDR_OPT_TCP_SYN = 1, }; -struct nfs3_fh { - unsigned short size; - unsigned char data[64]; +enum { + BPF_SKB_TSTAMP_UNSPEC = 0, + BPF_SKB_TSTAMP_DELIVERY_MONO = 1, }; -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]; +enum { + BPF_SK_LOOKUP_F_REPLACE = 1, + BPF_SK_LOOKUP_F_NO_REUSEPORT = 2, }; -struct nfs_string { - unsigned int len; - const char __attribute__((btf_type_tag("user"))) *data; +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_keys; + +struct bpf_flow_dissector { + struct bpf_flow_keys *flow_keys; + const struct sk_buff *skb; + const void *data; + const void *data_end; }; -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; +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 nfs4_xattr_bucket { - spinlock_t lock; - struct hlist_head hlist; - struct nfs4_xattr_cache *cache; - bool draining; +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]; + }; }; -struct nfs4_xattr_entry; +typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32); -struct nfs4_xattr_cache { - struct kref ref; - struct nfs4_xattr_bucket buckets[64]; - struct list_head lru; - struct list_head dispose; - atomic_long_t nent; - spinlock_t listxattr_lock; - struct inode *inode; - struct nfs4_xattr_entry *listxattr; +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]; + }; }; -struct nfs4_xattr_entry { - struct kref ref; - struct hlist_node hnode; - struct list_head lru; - struct list_head dispose; - char *xattr_name; - void *xattr_value; - size_t xattr_size; - struct nfs4_xattr_bucket *bucket; - uint32_t flags; +typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32); + +typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64); + +typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32); + +typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32); + +typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *); + +typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int); + +typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *); + +typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int); + +typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *); + +typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); + +typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *); + +typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *); + +typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *); + +typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *); + +typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *); + +typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *); + +typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); + +typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); + +typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); + +typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int); + +typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int); + +struct bpf_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]; + }; }; -typedef struct { - int val; - char *str; -} option_t; +struct bpf_fib_lookup; -enum { - ON_ERRORS_PANIC = 1, - ON_ERRORS_REMOUNT_RO = 2, - ON_ERRORS_CONTINUE = 4, - ON_ERRORS_RECOVER = 16, +typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32); + +struct bpf_fib_lookup { + __u8 family; + __u8 l4_protocol; + __be16 sport; + __be16 dport; + union { + __u16 tot_len; + __u16 mtu_result; + }; + __u32 ifindex; + union { + __u8 tos; + __be32 flowinfo; + __u32 rt_metric; + }; + union { + __be32 ipv4_src; + __u32 ipv6_src[4]; + }; + union { + __be32 ipv4_dst; + __u32 ipv6_dst[4]; + }; + union { + struct { + __be16 h_vlan_proto; + __be16 h_vlan_TCI; + }; + __u32 tbid; + }; + __u8 smac[6]; + __u8 dmac[6]; }; -typedef struct { - le16 bytes_per_sector; - u8 sectors_per_cluster; - le16 reserved_sectors; - u8 fats; - le16 root_entries; - le16 sectors; - u8 media_type; - le16 sectors_per_fat; - le16 sectors_per_track; - le16 heads; - le32 hidden_sectors; - le32 large_sectors; -} __attribute__((packed)) BIOS_PARAMETER_BLOCK; +typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32); -typedef struct { - u8 jump[3]; - le64 oem_id; - BIOS_PARAMETER_BLOCK bpb; - u8 unused[4]; - sle64 number_of_sectors; - sle64 mft_lcn; - sle64 mftmirr_lcn; - s8 clusters_per_mft_record; - u8 reserved0[3]; - s8 clusters_per_index_record; - u8 reserved1[3]; - le64 volume_serial_number; - le32 checksum; - u8 bootstrap[426]; - le16 end_of_sector_marker; -} __attribute__((packed)) NTFS_BOOT_SECTOR; +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 struct { - le64 reserved; - u8 major_ver; - u8 minor_ver; - VOLUME_FLAGS flags; -} VOLUME_INFORMATION; +typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32); -enum asn1_class { - ASN1_UNIV = 0, - ASN1_APPL = 1, - ASN1_CONT = 2, - ASN1_PRIV = 3, -}; +typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32); -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; -}; +typedef u64 (*btf_bpf_lwt_seg6_store_bytes)(struct sk_buff *, u32, const void *, u32); -enum { - ICQ_EXITED = 4, - ICQ_DESTROYED = 8, -}; +typedef u64 (*btf_bpf_lwt_seg6_action)(struct sk_buff *, u32, void *, u32); -typedef void sg_free_fn(struct scatterlist *, unsigned int); +typedef u64 (*btf_bpf_lwt_seg6_adjust_srh)(struct sk_buff *, u32, s32); -struct sg_append_table { - struct sg_table sgt; - struct scatterlist *prv; - unsigned int total_nents; -}; +struct bpf_sock_tuple; -typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); +typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct nla_bitfield32 { - __u32 value; - __u32 selector; +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 aspeed_scu_ic { - unsigned long irq_enable; - unsigned long irq_shift; - unsigned int num_irqs; - unsigned int reg; - struct regmap *scu; - struct irq_domain *irq_domain; -}; +typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct l3_flagmux_data; +typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct l3_masters_data; +typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct omap_l3 { - struct device *dev; - void *l3_base[3]; - struct l3_flagmux_data **l3_flagmux; - int num_modules; - struct l3_masters_data *l3_masters; - int num_masters; - u32 mst_addr_mask; - int debug_irq; - int app_irq; -}; +typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct l3_target_data; +typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct l3_flagmux_data { - u32 offset; - struct l3_target_data *l3_targ; - u8 num_targ_data; - u32 mask_app_bits; - u32 mask_dbg_bits; -}; +typedef u64 (*btf_bpf_sk_release)(struct sock *); -struct l3_target_data { - u32 offset; - char *name; -}; +typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); -struct l3_masters_data { - u32 id; - char *name; -}; +typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); -struct rockchip_usb_phys; +typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); -struct rockchip_usb_phy_pdata { - struct rockchip_usb_phys *phys; - int (*init_usb_uart)(struct regmap *, const struct rockchip_usb_phy_pdata *); - int usb_uart_phy; -}; +typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); -struct rockchip_usb_phys { - int reg; - const char *pll_name; -}; +typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); -struct rockchip_usb_phy_base; +typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); -struct rockchip_usb_phy { - struct rockchip_usb_phy_base *base; - struct device_node *np; - unsigned int reg_offset; - struct clk *clk; - struct clk *clk480m; - struct clk_hw clk480m_hw; - struct phy *phy; - bool uart_enabled; - struct reset_control *reset; - struct regulator *vbus; +struct bpf_tcp_sock { + __u32 snd_cwnd; + __u32 srtt_us; + __u32 rtt_min; + __u32 snd_ssthresh; + __u32 rcv_nxt; + __u32 snd_nxt; + __u32 snd_una; + __u32 mss_cache; + __u32 ecn_flags; + __u32 rate_delivered; + __u32 rate_interval_us; + __u32 packets_out; + __u32 retrans_out; + __u32 total_retrans; + __u32 segs_in; + __u32 data_segs_in; + __u32 segs_out; + __u32 data_segs_out; + __u32 lost_out; + __u32 sacked_out; + __u64 bytes_received; + __u64 bytes_acked; + __u32 dsack_dups; + __u32 delivered; + __u32 delivered_ce; + __u32 icsk_retransmits; }; -struct rockchip_usb_phy_base { - struct device *dev; - struct regmap *reg_base; - const struct rockchip_usb_phy_pdata *pdata; -}; +typedef u64 (*btf_bpf_tcp_sock)(struct sock *); -struct stmfx_pinctrl { - struct device *dev; - struct stmfx *stmfx; - struct pinctrl_dev *pctl_dev; - struct pinctrl_desc pctl_desc; - struct gpio_chip gpio_chip; - struct mutex lock; - unsigned long gpio_valid_mask; - u8 irq_gpi_src[3]; - u8 irq_gpi_type[3]; - u8 irq_gpi_evt[3]; - u8 irq_toggle_edge[3]; - u8 bkp_gpio_state[3]; - u8 bkp_gpio_dir[3]; - u8 bkp_gpio_type[3]; - u8 bkp_gpio_pupd[3]; -}; +typedef u64 (*btf_bpf_get_listener_sock)(struct sock *); -struct gpio_rcar_info { - bool has_outdtsel; - bool has_both_edge_trigger; - bool has_always_in; - bool has_inen; -}; +typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *); -struct gpio_rcar_bank_info { - u32 iointsel; - u32 inoutsel; - u32 outdt; - u32 posneg; - u32 edglevel; - u32 bothedge; - u32 intmsk; -}; +typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); -struct gpio_rcar_priv { - void *base; - spinlock_t lock; - struct device *dev; - struct gpio_chip gpio_chip; - unsigned int irq_parent; - atomic_t wakeup_path; - struct gpio_rcar_info info; - struct gpio_rcar_bank_info bank_info; -}; +typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); -struct clk_system { - struct clk_hw hw; - struct regmap *regmap; - struct at91_clk_pms pms; - u8 id; -}; +typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64); -struct clk_i2s_mux { - struct clk_hw hw; - struct regmap *regmap; - u8 bus_id; -}; +typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64); -struct artpec6_clkctrl_drvdata { - struct clk *clk_table[20]; - void *syscon_base; - struct clk_onecell_data clk_data; - spinlock_t i2scfg_lock; -}; +typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64); -struct imx_fracn_gppll_rate_table; +typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64); -struct imx_fracn_gppll_clk { - const struct imx_fracn_gppll_rate_table *rate_table; - int rate_count; - int flags; -}; +typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32); -struct imx_fracn_gppll_rate_table { - unsigned int rate; - unsigned int mfi; - unsigned int mfn; - unsigned int mfd; - unsigned int rdiv; - unsigned int odiv; -}; +struct sk_reuseport_kern; -struct clk_fracn_gppll { - struct clk_hw hw; - void *base; - const struct imx_fracn_gppll_rate_table *rate_table; - int rate_count; - u32 flags; -}; +typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32); -struct imx_clk_gpr { - struct clk_hw hw; - struct regmap *regmap; - u32 mask; - u32 reg; - const u32 *mux_table; +struct sk_reuseport_kern { + struct sk_buff *skb; + struct sock *sk; + struct sock *selected_sk; + struct sock *migrating_sk; + void *data_end; + u32 hash; + u32 reuseport_id; + bool bind_inany; }; -struct dove_clk { - const char *name; - struct clk_hw hw; - void *base; - spinlock_t *lock; - u8 div_bit_start; - u8 div_bit_end; - u8 div_bit_load; - u8 div_bit_size; - u32 *divider_table; -}; +typedef u64 (*btf_sk_reuseport_load_bytes)(const struct sk_reuseport_kern *, u32, void *, u32); -enum { - DIV_CTRL0 = 0, - DIV_CTRL1 = 4, - DIV_CTRL1_N_RESET_MASK = 1024, -}; +typedef u64 (*btf_sk_reuseport_load_bytes_relative)(const struct sk_reuseport_kern *, u32, void *, u32, u32); -struct div4_clk___2 { - const char *name; - unsigned int reg; - unsigned int shift; -}; +struct bpf_sk_lookup_kern; -struct r8a73a4_cpg { - struct clk_onecell_data data; - spinlock_t lock; -}; +typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, u64); -struct rockchip_inv_clock { - struct clk_hw hw; - void *reg; - int shift; - int flags; - spinlock_t *lock; +struct bpf_sk_lookup_kern { + u16 family; + u16 protocol; + __be16 sport; + u16 dport; + struct { + __be32 saddr; + __be32 daddr; + } v4; + struct { + const struct in6_addr *saddr; + const struct in6_addr *daddr; + } v6; + struct sock *selected_sk; + u32 ingress_ifindex; + bool no_reuseport; }; -struct clk_factors { - struct clk_hw hw; - void *reg; - const struct clk_factors_config *config; - void (*get_factors)(struct factors_request *); - void (*recalc)(struct factors_request *); - spinlock_t *lock; - struct clk_mux *mux; - struct clk_gate *gate; -}; +typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *); -struct tegra_cpu_car_ops { - void (*wait_for_reset)(u32); - void (*put_in_reset)(u32); - void (*out_of_reset)(u32); - void (*enable_clock)(u32); - void (*disable_clock)(u32); - bool (*rail_off_ready)(); - void (*suspend)(); - void (*resume)(); -}; +typedef u64 (*btf_bpf_skc_to_tcp_sock)(struct sock *); -typedef void (*tegra_clk_apply_init_table_func)(); +typedef u64 (*btf_bpf_skc_to_tcp_timewait_sock)(struct sock *); -struct tegra_clk_duplicate { - int clk_id; - struct clk_lookup lookup; -}; +typedef u64 (*btf_bpf_skc_to_tcp_request_sock)(struct sock *); -struct tegra_clk_init_table { - unsigned int clk_id; - unsigned int parent_id; - unsigned long rate; - int state; -}; +typedef u64 (*btf_bpf_skc_to_udp6_sock)(struct sock *); -struct tegra_devclk { - int dt_id; - char *dev_id; - char *con_id; -}; +typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *); -enum ipu_color_space { - IPU_COLORSPACE_RGB = 0, - IPU_COLORSPACE_YCBCR = 1, - IPU_COLORSPACE_YUV = 2, -}; - -enum ipu_rotate_mode { - IPU_ROTATE_NONE = 0, - IPU_ROTATE_VERT_FLIP = 1, - IPU_ROTATE_HORIZ_FLIP = 2, - IPU_ROTATE_180 = 3, - IPU_ROTATE_90_RIGHT = 4, - IPU_ROTATE_90_RIGHT_VFLIP = 5, - IPU_ROTATE_90_RIGHT_HFLIP = 6, - IPU_ROTATE_90_LEFT = 7, -}; - -struct chan_param_mem_planar { - u32 xv: 10; - u32 yv: 10; - u32 xb: 12; - u32 yb: 12; - u32 res1: 2; - u32 nsb: 1; - u32 lnpb: 6; - u32 ubo_l: 11; - u32 ubo_h: 15; - u32 vbo_l: 17; - u32 vbo_h: 9; - u32 res2: 3; - u32 fw: 12; - u32 fh_l: 8; - u32 fh_h: 4; - u32 res3: 28; - u32 eba0; - u32 eba1; - u32 bpp: 3; - u32 sl: 14; - u32 pfs: 3; - u32 bam: 3; - u32 res4: 2; - u32 npb: 6; - u32 res5: 1; - u32 sat: 2; - u32 res6: 30; -}; - -struct chan_param_mem_interleaved { - u32 xv: 10; - u32 yv: 10; - u32 xb: 12; - u32 yb: 12; - u32 sce: 1; - u32 res1: 1; - u32 nsb: 1; - u32 lnpb: 6; - u32 sx: 10; - u32 sy_l: 1; - u32 sy_h: 9; - u32 ns: 10; - u32 sm: 10; - u32 sdx_l: 3; - u32 sdx_h: 2; - u32 sdy: 5; - u32 sdrx: 1; - u32 sdry: 1; - u32 sdr1: 1; - u32 res2: 2; - u32 fw: 12; - u32 fh_l: 8; - u32 fh_h: 4; - u32 res3: 28; - u32 eba0; - u32 eba1; - u32 bpp: 3; - u32 sl: 14; - u32 pfs: 3; - u32 bam: 3; - u32 res4: 2; - u32 npb: 6; - u32 res5: 1; - u32 sat: 2; - u32 scc: 1; - u32 ofs0: 5; - u32 ofs1: 5; - u32 ofs2: 5; - u32 ofs3: 5; - u32 wid0: 3; - u32 wid1: 3; - u32 wid2: 3; - u32 wid3: 3; - u32 dec_sel: 1; - u32 res6: 28; -}; - -union chan_param_mem { - struct chan_param_mem_planar pp; - struct chan_param_mem_interleaved ip; -}; +typedef u64 (*btf_bpf_skc_to_mptcp_sock)(struct sock *); -struct qcom_rpm_header { - __le32 service_type; - __le32 length; -}; +typedef u64 (*btf_bpf_sock_from_file)(struct file *); -struct qcom_rpm_request { - __le32 msg_id; - __le32 flags; - __le32 type; - __le32 id; - __le32 data_len; +struct tcp6_sock { + struct tcp_sock tcp; + struct ipv6_pinfo inet6; }; -struct qcom_rpm_message { - __le32 msg_type; - __le32 length; - union { - __le32 msg_id; - struct { - struct {} __empty_message; - u8 message[0]; - }; - }; +struct udp6_sock { + struct udp_sock udp; + struct ipv6_pinfo inet6; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct qcom_smd_rpm { - struct rpmsg_endpoint *rpm_channel; - struct platform_device *icc; - struct device *dev; - struct completion ack; - struct mutex lock; - int ack_status; -}; +struct mptcp_sock {}; -struct kbdiacruc { - unsigned int diacr; - unsigned int base; - unsigned int result; +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 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; - long: 32; +struct linkinfo_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; }; 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, + 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, }; -struct irq_info { - struct hlist_node node; - int irq; - spinlock_t lock; - struct list_head *head; +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, }; -struct plat_serial8250_port { - unsigned long iobase; - void *membase; - resource_size_t mapbase; - resource_size_t mapsize; - unsigned int uartclk; - unsigned int irq; - unsigned long irqflags; - void *private_data; - unsigned char regshift; - unsigned char iotype; - unsigned char hub6; - unsigned char has_sysrq; - unsigned int type; - upf_t flags; - u16 bugs; - unsigned int (*serial_in)(struct uart_port *, int); - void (*serial_out)(struct uart_port *, int, int); - u32 (*dl_read)(struct uart_8250_port *); - void (*dl_write)(struct uart_8250_port *, u32); - void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - unsigned int (*get_mctrl)(struct uart_port *); - int (*handle_irq)(struct uart_port *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - void (*handle_break)(struct uart_port *); - long: 32; +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 host1x_syncpt_fence { - struct dma_fence base; - atomic_t signaling; - struct host1x_syncpt *sp; - u32 threshold; - bool timeout; - struct delayed_work timeout_work; - struct list_head list; - long: 32; -}; +struct km_event; -struct host1x_device; +struct xfrm_migrate; -struct host1x_driver { - struct device_driver driver; - const struct of_device_id *subdevs; - struct list_head list; - int (*probe)(struct host1x_device *); - int (*remove)(struct host1x_device *); - void (*shutdown)(struct host1x_device *); -}; +struct xfrm_kmaddress; -struct host1x_device { - struct host1x_driver *driver; +struct xfrm_mgr { struct list_head list; - long: 32; - struct device dev; - struct mutex subdevs_lock; - struct list_head subdevs; - struct list_head active; - struct mutex clients_lock; - struct list_head clients; - bool registered; - struct device_dma_parameters dma_parms; + 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 drm_tegra_reloc { - struct { - __u32 handle; - __u32 offset; - } cmdbuf; - struct { - __u32 handle; - __u32 offset; - } target; - __u32 shift; - __u32 pad; +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 drm_tegra_syncpt { - __u32 id; - __u32 incrs; +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 drm_tegra_cmdbuf { - __u32 handle; - __u32 offset; - __u32 words; - __u32 pad; +struct xfrm_kmaddress { + xfrm_address_t local; + xfrm_address_t remote; + u32 reserved; + u16 family; }; -struct builtin_fw { - char *name; - void *data; - unsigned long size; +struct xfrmk_sadinfo { + u32 sadhcnt; + u32 sadhmcnt; + u32 sadcnt; }; -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]; +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_FN_ATTR_DEVLINK = 5, + __DEVLINK_PORT_FUNCTION_ATTR_MAX = 6, + DEVLINK_PORT_FUNCTION_ATTR_MAX = 5, }; -struct trace_event_data_offsets_devres { - u32 devname; +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_CAP_IPSEC_CRYPTO_BIT = 2, + DEVLINK_PORT_FN_ATTR_CAP_IPSEC_PACKET_BIT = 3, + __DEVLINK_PORT_FN_ATTR_CAPS_MAX = 4, }; -struct abx500_ops { - int (*get_chip_id)(struct device *); - int (*get_register)(struct device *, u8, u8, u8 *); - int (*set_register)(struct device *, u8, u8, u8); - int (*get_register_page)(struct device *, u8, u8, u8 *, u8); - int (*set_register_page)(struct device *, u8, u8, u8 *, u8); - int (*mask_and_set_register)(struct device *, u8, u8, u8, u8); - int (*event_registers_startup_state_get)(struct device *, u8 *); - int (*startup_irq_enabled)(struct device *, unsigned int); - void (*dump_all_banks)(struct device *); -}; +typedef void (*btf_trace_rpcgss_import_ctx)(void *, int); -struct abx500_device_entry { - struct list_head list; - struct abx500_ops ops; - struct device *dev; -}; +typedef void (*btf_trace_rpcgss_get_mic)(void *, const struct rpc_task *, u32); -struct scsi_host_busy_iter_data { - bool (*fn)(struct scsi_cmnd *, void *); - void *priv; -}; +typedef void (*btf_trace_rpcgss_verify_mic)(void *, const struct rpc_task *, u32); -struct st_ahci_drv_data { - struct platform_device *ahci; - struct reset_control *pwr; - struct reset_control *sw_rst; - struct reset_control *pwr_rst; -}; +typedef void (*btf_trace_rpcgss_wrap)(void *, const struct rpc_task *, u32); -enum { - MSPI_DONE = 1, - BSPI_DONE = 2, - BSPI_ERR = 4, - MSPI_BSPI_DONE = 7, -}; +typedef void (*btf_trace_rpcgss_unwrap)(void *, const struct rpc_task *, u32); -struct bcm_qspi_soc_intc { - void (*bcm_qspi_int_ack)(struct bcm_qspi_soc_intc *, int); - void (*bcm_qspi_int_set)(struct bcm_qspi_soc_intc *, int, bool); - u32 (*bcm_qspi_get_int_status)(struct bcm_qspi_soc_intc *); -}; +typedef void (*btf_trace_rpcgss_ctx_init)(void *, const struct gss_cred *); -struct bcm_iproc_intc { - struct bcm_qspi_soc_intc soc_intc; - struct platform_device *pdev; - void *int_reg; - void *int_status_reg; - spinlock_t soclock; - bool big_endian; -}; +typedef void (*btf_trace_rpcgss_ctx_destroy)(void *, const struct gss_cred *); -struct mdio_board_entry { - struct list_head list; - struct mdio_board_info board_info; -}; +typedef void (*btf_trace_rpcgss_svc_wrap)(void *, const struct svc_rqst *, u32); -enum mcp251x_model { - CAN_MCP251X_MCP2510 = 9488, - CAN_MCP251X_MCP2515 = 9493, - CAN_MCP251X_MCP25625 = 153125, -}; +typedef void (*btf_trace_rpcgss_svc_unwrap)(void *, const struct svc_rqst *, u32); -enum { - MCP251X_GPIO_TX0RTS = 0, - MCP251X_GPIO_TX1RTS = 1, - MCP251X_GPIO_TX2RTS = 2, - MCP251X_GPIO_RX0BF = 3, - MCP251X_GPIO_RX1BF = 4, -}; +typedef void (*btf_trace_rpcgss_svc_mic)(void *, const struct svc_rqst *, u32); -struct mcp251x_priv { - struct can_priv can; - struct net_device *net; - struct spi_device *spi; - enum mcp251x_model model; - struct mutex mcp_lock; - u8 *spi_tx_buf; - u8 *spi_rx_buf; - struct sk_buff *tx_skb; - struct workqueue_struct *wq; - struct work_struct tx_work; - struct work_struct restart_work; - int force_quit; - int after_suspend; - int restart_tx; - bool tx_busy; - struct regulator *power; - struct regulator *transceiver; - struct clk *clk; - struct gpio_chip gpio; - u8 reg_bfpctrl; -}; +typedef void (*btf_trace_rpcgss_svc_get_mic)(void *, const struct svc_rqst *, u32); -enum vcap_user { - VCAP_USER_PTP = 0, - VCAP_USER_MRP = 1, - VCAP_USER_CFM = 2, - VCAP_USER_VLAN = 3, - VCAP_USER_QOS = 4, - VCAP_USER_VCAP_UTIL = 5, - VCAP_USER_TC = 6, - VCAP_USER_TC_EXTRA = 7, - __VCAP_USER_AFTER_LAST = 8, - VCAP_USER_MAX = 7, -}; +typedef void (*btf_trace_rpcgss_svc_wrap_failed)(void *, const struct svc_rqst *); -enum vcap_keyfield_set { - VCAP_KFS_NO_VALUE = 0, - VCAP_KFS_5TUPLE_IP4 = 1, - VCAP_KFS_5TUPLE_IP6 = 2, - VCAP_KFS_7TUPLE = 3, - VCAP_KFS_ARP = 4, - VCAP_KFS_DBL_VID = 5, - VCAP_KFS_DMAC_VID = 6, - VCAP_KFS_ETAG = 7, - VCAP_KFS_IP4_OTHER = 8, - VCAP_KFS_IP4_TCP_UDP = 9, - VCAP_KFS_IP4_VID = 10, - VCAP_KFS_IP6_OTHER = 11, - VCAP_KFS_IP6_STD = 12, - VCAP_KFS_IP6_TCP_UDP = 13, - VCAP_KFS_IP6_VID = 14, - VCAP_KFS_IP_7TUPLE = 15, - VCAP_KFS_ISDX = 16, - VCAP_KFS_LL_FULL = 17, - VCAP_KFS_MAC_ETYPE = 18, - VCAP_KFS_MAC_LLC = 19, - VCAP_KFS_MAC_SNAP = 20, - VCAP_KFS_NORMAL = 21, - VCAP_KFS_NORMAL_5TUPLE_IP4 = 22, - VCAP_KFS_NORMAL_7TUPLE = 23, - VCAP_KFS_NORMAL_IP6 = 24, - VCAP_KFS_OAM = 25, - VCAP_KFS_PURE_5TUPLE_IP4 = 26, - VCAP_KFS_RT = 27, - VCAP_KFS_SMAC_SIP4 = 28, - VCAP_KFS_SMAC_SIP6 = 29, - VCAP_KFS_VID = 30, -}; +typedef void (*btf_trace_rpcgss_svc_unwrap_failed)(void *, const struct svc_rqst *); -enum vcap_actionfield_set { - VCAP_AFS_NO_VALUE = 0, - VCAP_AFS_BASE_TYPE = 1, - VCAP_AFS_CLASSIFICATION = 2, - VCAP_AFS_CLASS_REDUCED = 3, - VCAP_AFS_ES0 = 4, - VCAP_AFS_FULL = 5, - VCAP_AFS_S1 = 6, - VCAP_AFS_SMAC_SIP = 7, - VCAP_AFS_VID = 8, -}; +typedef void (*btf_trace_rpcgss_svc_seqno_bad)(void *, const struct svc_rqst *, u32, u32); -enum vcap_rule_error { - VCAP_ERR_NONE = 0, - VCAP_ERR_NO_ADMIN = 1, - VCAP_ERR_NO_NETDEV = 2, - VCAP_ERR_NO_KEYSET_MATCH = 3, - VCAP_ERR_NO_ACTIONSET_MATCH = 4, - VCAP_ERR_NO_PORT_KEYSET_MATCH = 5, -}; +typedef void (*btf_trace_rpcgss_svc_accept_upcall)(void *, const struct svc_rqst *, u32, u32); -enum vcap_type { - VCAP_TYPE_ES0 = 0, - VCAP_TYPE_ES2 = 1, - VCAP_TYPE_IS0 = 2, - VCAP_TYPE_IS1 = 3, - VCAP_TYPE_IS2 = 4, - VCAP_TYPE_MAX = 5, -}; +struct rpc_gss_wire_cred; -enum vcap_key_field { - VCAP_KF_NO_VALUE = 0, - VCAP_KF_8021BR_ECID_BASE = 1, - VCAP_KF_8021BR_ECID_EXT = 2, - VCAP_KF_8021BR_E_TAGGED = 3, - VCAP_KF_8021BR_GRP = 4, - VCAP_KF_8021BR_IGR_ECID_BASE = 5, - VCAP_KF_8021BR_IGR_ECID_EXT = 6, - VCAP_KF_8021CB_R_TAGGED_IS = 7, - VCAP_KF_8021Q_DEI0 = 8, - VCAP_KF_8021Q_DEI1 = 9, - VCAP_KF_8021Q_DEI2 = 10, - VCAP_KF_8021Q_DEI_CLS = 11, - VCAP_KF_8021Q_PCP0 = 12, - VCAP_KF_8021Q_PCP1 = 13, - VCAP_KF_8021Q_PCP2 = 14, - VCAP_KF_8021Q_PCP_CLS = 15, - VCAP_KF_8021Q_TPID = 16, - VCAP_KF_8021Q_TPID0 = 17, - VCAP_KF_8021Q_TPID1 = 18, - VCAP_KF_8021Q_TPID2 = 19, - VCAP_KF_8021Q_VID0 = 20, - VCAP_KF_8021Q_VID1 = 21, - VCAP_KF_8021Q_VID2 = 22, - VCAP_KF_8021Q_VID_CLS = 23, - VCAP_KF_8021Q_VLAN_DBL_TAGGED_IS = 24, - VCAP_KF_8021Q_VLAN_TAGGED_IS = 25, - VCAP_KF_8021Q_VLAN_TAGS = 26, - VCAP_KF_ACL_GRP_ID = 27, - VCAP_KF_ARP_ADDR_SPACE_OK_IS = 28, - VCAP_KF_ARP_LEN_OK_IS = 29, - VCAP_KF_ARP_OPCODE = 30, - VCAP_KF_ARP_OPCODE_UNKNOWN_IS = 31, - VCAP_KF_ARP_PROTO_SPACE_OK_IS = 32, - VCAP_KF_ARP_SENDER_MATCH_IS = 33, - VCAP_KF_ARP_TGT_MATCH_IS = 34, - VCAP_KF_COSID_CLS = 35, - VCAP_KF_ES0_ISDX_KEY_ENA = 36, - VCAP_KF_ETYPE = 37, - VCAP_KF_ETYPE_LEN_IS = 38, - VCAP_KF_HOST_MATCH = 39, - VCAP_KF_IF_EGR_PORT_MASK = 40, - VCAP_KF_IF_EGR_PORT_MASK_RNG = 41, - VCAP_KF_IF_EGR_PORT_NO = 42, - VCAP_KF_IF_IGR_PORT = 43, - VCAP_KF_IF_IGR_PORT_MASK = 44, - VCAP_KF_IF_IGR_PORT_MASK_L3 = 45, - VCAP_KF_IF_IGR_PORT_MASK_RNG = 46, - VCAP_KF_IF_IGR_PORT_MASK_SEL = 47, - VCAP_KF_IF_IGR_PORT_SEL = 48, - VCAP_KF_IP4_IS = 49, - VCAP_KF_IP_MC_IS = 50, - VCAP_KF_IP_PAYLOAD_5TUPLE = 51, - VCAP_KF_IP_PAYLOAD_S1_IP6 = 52, - VCAP_KF_IP_SNAP_IS = 53, - VCAP_KF_ISDX_CLS = 54, - VCAP_KF_ISDX_GT0_IS = 55, - VCAP_KF_L2_BC_IS = 56, - VCAP_KF_L2_DMAC = 57, - VCAP_KF_L2_FRM_TYPE = 58, - VCAP_KF_L2_FWD_IS = 59, - VCAP_KF_L2_LLC = 60, - VCAP_KF_L2_MAC = 61, - VCAP_KF_L2_MC_IS = 62, - VCAP_KF_L2_PAYLOAD0 = 63, - VCAP_KF_L2_PAYLOAD1 = 64, - VCAP_KF_L2_PAYLOAD2 = 65, - VCAP_KF_L2_PAYLOAD_ETYPE = 66, - VCAP_KF_L2_SMAC = 67, - VCAP_KF_L2_SNAP = 68, - VCAP_KF_L3_DIP_EQ_SIP_IS = 69, - VCAP_KF_L3_DPL_CLS = 70, - VCAP_KF_L3_DSCP = 71, - VCAP_KF_L3_DST_IS = 72, - VCAP_KF_L3_FRAGMENT = 73, - VCAP_KF_L3_FRAGMENT_TYPE = 74, - VCAP_KF_L3_FRAG_INVLD_L4_LEN = 75, - VCAP_KF_L3_FRAG_OFS_GT0 = 76, - VCAP_KF_L3_IP4_DIP = 77, - VCAP_KF_L3_IP4_SIP = 78, - VCAP_KF_L3_IP6_DIP = 79, - VCAP_KF_L3_IP6_DIP_MSB = 80, - VCAP_KF_L3_IP6_SIP = 81, - VCAP_KF_L3_IP6_SIP_MSB = 82, - VCAP_KF_L3_IP_PROTO = 83, - VCAP_KF_L3_OPTIONS_IS = 84, - VCAP_KF_L3_PAYLOAD = 85, - VCAP_KF_L3_RT_IS = 86, - VCAP_KF_L3_TOS = 87, - VCAP_KF_L3_TTL_GT0 = 88, - VCAP_KF_L4_1588_DOM = 89, - VCAP_KF_L4_1588_VER = 90, - VCAP_KF_L4_ACK = 91, - VCAP_KF_L4_DPORT = 92, - VCAP_KF_L4_FIN = 93, - VCAP_KF_L4_PAYLOAD = 94, - VCAP_KF_L4_PSH = 95, - VCAP_KF_L4_RNG = 96, - VCAP_KF_L4_RST = 97, - VCAP_KF_L4_SEQUENCE_EQ0_IS = 98, - VCAP_KF_L4_SPORT = 99, - VCAP_KF_L4_SPORT_EQ_DPORT_IS = 100, - VCAP_KF_L4_SYN = 101, - VCAP_KF_L4_URG = 102, - VCAP_KF_LOOKUP_FIRST_IS = 103, - VCAP_KF_LOOKUP_GEN_IDX = 104, - VCAP_KF_LOOKUP_GEN_IDX_SEL = 105, - VCAP_KF_LOOKUP_INDEX = 106, - VCAP_KF_LOOKUP_PAG = 107, - VCAP_KF_MIRROR_PROBE = 108, - VCAP_KF_OAM_CCM_CNTS_EQ0 = 109, - VCAP_KF_OAM_DETECTED = 110, - VCAP_KF_OAM_FLAGS = 111, - VCAP_KF_OAM_MEL_FLAGS = 112, - VCAP_KF_OAM_MEPID = 113, - VCAP_KF_OAM_OPCODE = 114, - VCAP_KF_OAM_VER = 115, - VCAP_KF_OAM_Y1731_IS = 116, - VCAP_KF_PDU_TYPE = 117, - VCAP_KF_PROT_ACTIVE = 118, - VCAP_KF_RTP_ID = 119, - VCAP_KF_RT_FRMID = 120, - VCAP_KF_RT_TYPE = 121, - VCAP_KF_RT_VLAN_IDX = 122, - VCAP_KF_TCP_IS = 123, - VCAP_KF_TCP_UDP_IS = 124, - VCAP_KF_TYPE = 125, -}; +typedef void (*btf_trace_rpcgss_svc_authenticate)(void *, const struct svc_rqst *, const struct rpc_gss_wire_cred *); -enum vcap_bit { - VCAP_BIT_ANY = 0, - VCAP_BIT_0 = 1, - VCAP_BIT_1 = 2, +struct rpc_gss_wire_cred { + u32 gc_v; + u32 gc_proc; + u32 gc_seq; + u32 gc_svc; + struct xdr_netobj gc_ctx; }; -enum vcap_arp_opcode { - VCAP_ARP_OP_RESERVED = 0, - VCAP_ARP_OP_REQUEST = 1, - VCAP_ARP_OP_REPLY = 2, -}; +typedef void (*btf_trace_rpcgss_unwrap_failed)(void *, const struct rpc_task *); -enum vcap_is2_arp_opcode { - VCAP_IS2_ARP_REQUEST = 0, - VCAP_IS2_ARP_REPLY = 1, - VCAP_IS2_RARP_REQUEST = 2, - VCAP_IS2_RARP_REPLY = 3, +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 vcap_rule { - int vcap_chain_id; - enum vcap_user user; - u16 priority; - u32 id; - u64 cookie; - struct list_head keyfields; - struct list_head actionfields; - enum vcap_keyfield_set keyset; - enum vcap_actionfield_set actionset; - enum vcap_rule_error exterr; - long: 32; - u64 client; +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 vcap_u48_key { - u8 value[6]; - u8 mask[6]; +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 flow_match_ipv4_addrs { - struct flow_dissector_key_ipv4_addrs *key; - struct flow_dissector_key_ipv4_addrs *mask; +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 flow_match_ipv6_addrs { - struct flow_dissector_key_ipv6_addrs *key; - struct flow_dissector_key_ipv6_addrs *mask; +struct trace_event_raw_rpcgss_svc_wrap_failed { + struct trace_entry ent; + u32 xid; + u32 __data_loc_addr; + char __data[0]; }; -struct vcap_u128_key { - u8 value[16]; - u8 mask[16]; +struct trace_event_raw_rpcgss_svc_unwrap_failed { + struct trace_entry ent; + u32 xid; + u32 __data_loc_addr; + char __data[0]; }; -struct flow_match_ports { - struct flow_dissector_key_ports *key; - struct flow_dissector_key_ports *mask; +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 flow_match_tcp { - struct flow_dissector_key_tcp *key; - struct flow_dissector_key_tcp *mask; +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 flow_match_arp { - struct flow_dissector_key_arp *key; - struct flow_dissector_key_arp *mask; +struct trace_event_raw_rpcgss_svc_authenticate { + struct trace_entry ent; + u32 seqno; + u32 xid; + u32 __data_loc_addr; + char __data[0]; }; -struct flow_match_ip { - struct flow_dissector_key_ip *key; - struct flow_dissector_key_ip *mask; +struct trace_event_raw_rpcgss_unwrap_failed { + struct trace_entry ent; + unsigned int task_id; + unsigned int client_id; + char __data[0]; }; -struct vcap_admin; - -struct vcap_tc_flower_parse_usage { - struct flow_cls_offload *fco; - struct flow_rule *frule; - struct vcap_rule *vrule; - struct vcap_admin *admin; - u16 l3_proto; - u8 l4_proto; - u16 tpid; - unsigned int used_keys; +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 vcap_cache_data { - u32 *keystream; - u32 *maskstream; - u32 *actionstream; - u32 counter; - bool sticky; +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 vcap_admin { - struct list_head list; - struct list_head rules; - struct list_head enabled; - struct mutex lock; - enum vcap_type vtype; - int vinst; - int first_cid; - int last_cid; - int tgt_inst; - int lookups; - int lookups_per_instance; - int last_valid_addr; - int first_valid_addr; - int last_used_addr; - bool w32be; - bool ingress; - struct vcap_cache_data cache; +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 rk_priv_data; - -struct rk_gmac_ops { - void (*set_to_rgmii)(struct rk_priv_data *, int, int); - void (*set_to_rmii)(struct rk_priv_data *); - void (*set_rgmii_speed)(struct rk_priv_data *, int); - void (*set_rmii_speed)(struct rk_priv_data *, int); - void (*set_clock_selection)(struct rk_priv_data *, bool, bool); - void (*integrated_phy_powerup)(struct rk_priv_data *); - bool regs_valid; - u32 regs[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 rk_priv_data { - struct platform_device *pdev; - phy_interface_t phy_iface; - int id; - struct regulator *regulator; - bool suspended; - const struct rk_gmac_ops *ops; - bool clk_enabled; - bool clock_input; - bool integrated_phy; - struct clk_bulk_data *clks; - int num_clks; - struct clk *clk_mac; - struct clk *clk_phy; - struct reset_control *phy_reset; - int tx_delay; - int rx_delay; - struct regmap *grf; - struct regmap *php_grf; +struct trace_event_raw_rpcgss_svc_seqno_class { + struct trace_entry ent; + u32 xid; + u32 seqno; + char __data[0]; }; -enum rk_clocks_index { - RK_ACLK_MAC = 0, - RK_PCLK_MAC = 1, - RK_MAC_CLK_TX = 2, - RK_CLK_MAC_SPEED = 3, - RK_MAC_CLK_RX = 4, - RK_CLK_MAC_REF = 5, - RK_CLK_MAC_REFOUT = 6, +struct trace_event_raw_rpcgss_svc_seqno_low { + struct trace_entry ent; + u32 xid; + u32 seqno; + u32 min; + u32 max; + char __data[0]; }; -struct usb_dynid { - struct list_head node; - struct usb_device_id id; +struct trace_event_raw_rpcgss_upcall_msg { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -struct dwc3_ep_file_map { - const char name[25]; - const struct file_operations * const fops; +struct trace_event_raw_rpcgss_upcall_result { + struct trace_entry ent; + u32 uid; + int result; + char __data[0]; }; -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 *); +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]; +}; -typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *); +struct trace_event_raw_rpcgss_createauth { + struct trace_entry ent; + unsigned int flavor; + int error; + char __data[0]; +}; -typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *); +struct trace_event_raw_rpcgss_oid_to_mech { + struct trace_entry ent; + u32 __data_loc_oid; + char __data[0]; +}; -typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); +struct trace_event_data_offsets_rpcgss_ctx_class { + u32 principal; +}; -typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct trace_event_data_offsets_rpcgss_svc_gssapi_class { + u32 addr; +}; -typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct trace_event_data_offsets_rpcgss_svc_wrap_failed { + u32 addr; +}; -typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct trace_event_data_offsets_rpcgss_svc_unwrap_failed { + u32 addr; +}; -typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct trace_event_data_offsets_rpcgss_svc_seqno_bad { + u32 addr; +}; -typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct trace_event_data_offsets_rpcgss_svc_accept_upcall { + u32 addr; +}; -typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct trace_event_data_offsets_rpcgss_svc_authenticate { + u32 addr; +}; -typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct trace_event_data_offsets_rpcgss_upcall_msg { + u32 msg; +}; -typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); +struct trace_event_data_offsets_rpcgss_context { + u32 acceptor; +}; -typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); +struct trace_event_data_offsets_rpcgss_oid_to_mech { + u32 oid; +}; -typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *); +struct trace_event_data_offsets_rpcgss_gssapi_event {}; -typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *); +struct trace_event_data_offsets_rpcgss_import_ctx {}; -typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); +struct trace_event_data_offsets_rpcgss_unwrap_failed {}; -typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); +struct trace_event_data_offsets_rpcgss_bad_seqno {}; -typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); +struct trace_event_data_offsets_rpcgss_seqno {}; -typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); +struct trace_event_data_offsets_rpcgss_need_reencode {}; -typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); +struct trace_event_data_offsets_rpcgss_update_slack {}; -typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); +struct trace_event_data_offsets_rpcgss_svc_seqno_class {}; -typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *); +struct trace_event_data_offsets_rpcgss_svc_seqno_low {}; -typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); +struct trace_event_data_offsets_rpcgss_upcall_result {}; -typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); +struct trace_event_data_offsets_rpcgss_createauth {}; -typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); +struct tlb_args { + struct vm_area_struct *ta_vma; + unsigned long ta_start; + unsigned long ta_end; +}; -typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); +enum perf_event_arm_regs { + PERF_REG_ARM_R0 = 0, + PERF_REG_ARM_R1 = 1, + PERF_REG_ARM_R2 = 2, + PERF_REG_ARM_R3 = 3, + PERF_REG_ARM_R4 = 4, + PERF_REG_ARM_R5 = 5, + PERF_REG_ARM_R6 = 6, + PERF_REG_ARM_R7 = 7, + PERF_REG_ARM_R8 = 8, + PERF_REG_ARM_R9 = 9, + PERF_REG_ARM_R10 = 10, + PERF_REG_ARM_FP = 11, + PERF_REG_ARM_IP = 12, + PERF_REG_ARM_SP = 13, + PERF_REG_ARM_LR = 14, + PERF_REG_ARM_PC = 15, + PERF_REG_ARM_MAX = 16, +}; -typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *); +struct dma_contig_early_reserve { + phys_addr_t base; + unsigned long size; +}; -typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); +struct arm_dma_alloc_args; -typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *); +struct arm_dma_free_args; -typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); +struct arm_dma_allocator { + void * (*alloc)(struct arm_dma_alloc_args *, struct page **); + void (*free)(struct arm_dma_free_args *); +}; -typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *); +struct arm_dma_alloc_args { + struct device *dev; + size_t size; + gfp_t gfp; + pgprot_t prot; + const void *caller; + bool want_vaddr; + int coherent_flag; +}; -typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); +struct arm_dma_free_args { + struct device *dev; + size_t size; + void *cpu_addr; + struct page *page; + bool want_vaddr; +}; -typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); +struct arm_dma_buffer { + struct list_head list; + void *virt; + struct arm_dma_allocator *allocator; +}; -typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); +struct omap_wakeupgen_ops { + void (*save_context)(); + void (*restore_context)(); +}; -typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); +struct sunxi_mc_smp_nodes; -typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); +struct sunxi_mc_smp_data { + const char *enable_method; + int (*get_smp_nodes)(struct sunxi_mc_smp_nodes *); + bool is_a83t; +}; -typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); +struct sunxi_mc_smp_nodes { + struct device_node *prcm_node; + struct device_node *cpucfg_node; + struct device_node *sram_node; + struct device_node *r_cpucfg_node; +}; -typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); +typedef void (*phys_reset_t)(unsigned long, bool); -typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); +enum sysctl_writes_mode { + SYSCTL_WRITES_LEGACY = -1, + SYSCTL_WRITES_WARN = 0, + SYSCTL_WRITES_STRICT = 1, +}; -typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); +struct do_proc_dointvec_minmax_conv_param { + int *min; + int *max; +}; -typedef void (*btf_trace_xhci_handle_port_status)(void *, u32, u32); +struct do_proc_douintvec_minmax_conv_param { + unsigned int *min; + unsigned int *max; +}; -typedef void (*btf_trace_xhci_get_port_status)(void *, u32, u32); +struct irqchip_fwid { + struct fwnode_handle fwnode; + unsigned int type; + char *name; + phys_addr_t *pa; +}; -typedef void (*btf_trace_xhci_hub_status_data)(void *, u32, u32); +struct cma { + unsigned long base_pfn; + unsigned long count; + unsigned long *bitmap; + unsigned int order_per_bit; + spinlock_t lock; + char name[64]; + bool reserve_pages_on_error; +}; -typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32); +enum tick_nohz_mode { + NOHZ_MODE_INACTIVE = 0, + NOHZ_MODE_LOWRES = 1, + NOHZ_MODE_HIGHRES = 2, +}; -typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); +struct tick_sched { + 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; + unsigned int stalled_jiffies; + unsigned long last_tick_jiffies; + long: 32; + struct hrtimer sched_timer; + ktime_t last_tick; + ktime_t next_tick; + unsigned long idle_jiffies; + long: 32; + ktime_t idle_waketime; + seqcount_t idle_sleeptime_seq; + long: 32; + ktime_t idle_entrytime; + enum tick_nohz_mode nohz_mode; + unsigned long last_jiffies; + u64 timer_expires_base; + u64 timer_expires; + u64 next_timer; + ktime_t idle_expires; + unsigned long idle_calls; + unsigned long idle_sleeps; + ktime_t idle_exittime; + ktime_t idle_sleeptime; + ktime_t iowait_sleeptime; + atomic_t tick_dep_mask; + unsigned long check_clocks; +}; -struct dbc_request; +struct timer_list_iter { + int cpu; + bool second_pass; + u64 now; +}; -typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); +struct crash_mem { + unsigned int max_nr_ranges; + unsigned int nr_ranges; + struct range ranges[0]; +}; -struct xhci_dbc; +struct kexec_load_limit { + struct mutex mutex; + int limit; +}; -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; +struct trace_probe_log { + const char *subsystem; + const char **argv; + int argc; + int index; }; -enum dbc_state { - DS_DISABLED = 0, - DS_INITIALIZED = 1, - DS_ENABLED = 2, - DS_CONNECTED = 3, - DS_CONFIGURED = 4, - DS_STALLED = 5, +struct btf_kfunc_hook_filter { + btf_kfunc_filter_t filters[16]; + u32 nr_filters; }; -struct dbc_ep { - struct xhci_dbc *dbc; - struct list_head list_pending; - struct xhci_ring *ring; - unsigned int direction: 1; +struct btf_kfunc_set_tab { + struct btf_id_set8 *sets[13]; + struct btf_kfunc_hook_filter hook_filters[13]; }; -struct dbc_regs; +struct btf_id_dtor_kfunc_tab { + u32 cnt; + struct btf_id_dtor_kfunc dtors[0]; +}; -struct dbc_str_descs; +struct btf_struct_metas { + u32 cnt; + struct btf_struct_meta types[0]; +}; -struct dbc_driver; +struct bpf_sock; -struct xhci_dbc { - spinlock_t lock; - struct device *dev; - struct xhci_hcd *xhci; - struct dbc_regs *regs; - struct xhci_ring *ring_evt; - struct xhci_ring *ring_in; - struct xhci_ring *ring_out; - struct xhci_erst erst; - struct xhci_container_ctx *ctx; - struct dbc_str_descs *string; - dma_addr_t string_dma; - size_t string_size; - u16 idVendor; - u16 idProduct; - u16 bcdDevice; - u8 bInterfaceProtocol; - enum dbc_state state; - struct delayed_work event_work; - unsigned int resume_required: 1; - struct dbc_ep eps[2]; - const struct dbc_driver *driver; - void *priv; +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 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 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 dbc_str_descs { - char string0[64]; - char manufacturer[64]; - char product[64]; - char serial[64]; +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]; + long: 32; + union { + struct bpf_sock *sk; + }; }; -struct dbc_driver { - int (*configure)(struct xhci_dbc *); - void (*disconnect)(struct xhci_dbc *); +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; }; -typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *); - -typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *); +struct sk_msg_md { + union { + void *data; + }; + union { + void *data_end; + }; + __u32 family; + __u32 remote_ip4; + __u32 local_ip4; + __u32 remote_ip6[4]; + __u32 local_ip6[4]; + __u32 remote_port; + __u32 local_port; + __u32 size; + union { + struct bpf_sock *sk; + }; +}; -typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *); +struct bpf_perf_event_data { + bpf_user_pt_regs_t regs; + __u64 sample_period; + __u64 addr; +}; -struct trace_event_raw_xhci_log_msg { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; +struct bpf_raw_tracepoint_args { + __u64 args[0]; }; -struct trace_event_raw_xhci_log_ctx { - struct trace_entry ent; - int ctx_64; - unsigned int ctx_type; - dma_addr_t ctx_dma; - u8 *ctx_va; - unsigned int ctx_ep_num; - u32 __data_loc_ctx_data; - char __data[0]; +struct bpf_sysctl { + __u32 write; + __u32 file_pos; }; -struct trace_event_raw_xhci_log_trb { - struct trace_entry ent; - u32 type; - u32 field0; - u32 field1; - u32 field2; - u32 field3; - char __data[0]; +struct bpf_sockopt { + union { + struct bpf_sock *sk; + }; + union { + void *optval; + }; + union { + void *optval_end; + }; + __s32 level; + __s32 optname; + __s32 optlen; + __s32 retval; }; -struct trace_event_raw_xhci_log_free_virt_dev { - struct trace_entry ent; - void *vdev; +struct sk_reuseport_md { + union { + void *data; + }; + union { + void *data_end; + }; + __u32 len; + __u32 eth_protocol; + __u32 ip_protocol; + __u32 bind_inany; + __u32 hash; long: 32; - unsigned long long out_ctx; - unsigned long long in_ctx; - u8 fake_port; - u8 real_port; - u16 current_mel; - char __data[0]; + union { + struct bpf_sock *sk; + }; + union { + struct bpf_sock *migrating_sk; + }; +}; + +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; long: 32; }; -struct trace_event_raw_xhci_log_virt_dev { - struct trace_entry ent; - void *vdev; +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; long: 32; - 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 __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; + long: 32; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern; + void *BPF_PROG_TYPE_TRACING_prog; + void *BPF_PROG_TYPE_TRACING_kern; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern; + struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog; + struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern; + struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog; + struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern; + struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog; + struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern; + struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog; + struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern; + void *BPF_PROG_TYPE_SYSCALL_prog; + void *BPF_PROG_TYPE_SYSCALL_kern; long: 32; }; -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 btf_verifier_env; -struct trace_event_raw_xhci_log_ep_ctx { - struct trace_entry ent; - u32 info; - u32 info2; - u64 deq; - u32 tx_info; - char __data[0]; - long: 32; -}; +struct resolve_vertex; -struct trace_event_raw_xhci_log_slot_ctx { - struct trace_entry ent; - u32 info; - u32 info2; - u32 tt_info; - u32 state; - char __data[0]; -}; +struct btf_show; -struct trace_event_raw_xhci_log_ctrl_ctx { - struct trace_entry ent; - u32 drop; - u32 add; - char __data[0]; +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 trace_event_raw_xhci_log_ring { - struct trace_entry ent; - u32 type; - void *ring; - dma_addr_t enq; - dma_addr_t deq; - dma_addr_t enq_seg; - dma_addr_t deq_seg; - unsigned int num_segs; - unsigned int stream_id; - unsigned int cycle_state; - unsigned int bounce_buf_len; - char __data[0]; +struct resolve_vertex { + const struct btf_type *t; + u32 type_id; + u16 next_member; }; -struct trace_event_raw_xhci_log_portsc { - struct trace_entry ent; - u32 portnum; - u32 portsc; - char __data[0]; +enum verifier_phase { + CHECK_META = 0, + CHECK_TYPE = 1, }; -struct trace_event_raw_xhci_log_doorbell { - struct trace_entry ent; - u32 slot; - u32 doorbell; - char __data[0]; +enum resolve_mode { + RESOLVE_TBD = 0, + RESOLVE_PTR = 1, + RESOLVE_STRUCT_OR_ARRAY = 2, }; -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 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 trace_event_data_offsets_xhci_log_msg { - u32 msg; +struct btf_show { + u64 flags; + void *target; + void (*showfn)(struct btf_show *, const char *, va_list); + 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 trace_event_data_offsets_xhci_log_ctx { - u32 ctx_data; +struct bpf_cand_cache { + const char *name; + u32 name_len; + u16 kind; + u16 cnt; + struct { + const struct btf *btf; + u32 id; + } cands[0]; }; -struct trace_event_data_offsets_xhci_log_trb {}; - -struct trace_event_data_offsets_xhci_log_free_virt_dev {}; - -struct trace_event_data_offsets_xhci_log_virt_dev {}; - -struct trace_event_data_offsets_xhci_log_urb {}; - -struct trace_event_data_offsets_xhci_log_ep_ctx {}; - -struct trace_event_data_offsets_xhci_log_slot_ctx {}; - -struct trace_event_data_offsets_xhci_log_ctrl_ctx {}; - -struct trace_event_data_offsets_xhci_log_ring {}; - -struct trace_event_data_offsets_xhci_log_portsc {}; - -struct trace_event_data_offsets_xhci_log_doorbell {}; +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 trace_event_data_offsets_xhci_dbc_log_request {}; +enum bpf_struct_walk_result { + WALK_SCALAR = 0, + WALK_PTR = 1, + WALK_STRUCT = 2, +}; -struct elantech_attr_data { - size_t field_offset; - unsigned char reg; +enum btf_func_linkage { + BTF_FUNC_STATIC = 0, + BTF_FUNC_GLOBAL = 1, + BTF_FUNC_EXTERN = 2, }; enum { - ELANTECH_SMBUS_NOT_SET = -1, - ELANTECH_SMBUS_OFF = 0, - ELANTECH_SMBUS_ON = 1, + BTF_F_COMPACT = 1, + BTF_F_NONAME = 2, + BTF_F_PTR_RAW = 4, + BTF_F_ZERO = 8, }; -struct elantech_device_info { - unsigned char capabilities[3]; - unsigned char samples[3]; - unsigned char debug; - unsigned char hw_version; - unsigned char pattern; - unsigned int fw_version; - unsigned int ic_version; - unsigned int product_id; - unsigned int x_min; - unsigned int y_min; - unsigned int x_max; - unsigned int y_max; - unsigned int x_res; - unsigned int y_res; - unsigned int x_traces; - unsigned int y_traces; - unsigned int width; - unsigned int bus; - bool paritycheck; - bool jumpy_cursor; - bool reports_pressure; - bool crc_enabled; - bool set_hw_resolution; - bool has_trackpoint; - bool has_middle_button; - int (*send_cmd)(struct psmouse *, unsigned char, unsigned char *); +enum { + BTF_MODULE_F_LIVE = 1, }; -struct finger_pos { - unsigned int x; - unsigned int y; +enum btf_kfunc_hook { + BTF_KFUNC_HOOK_COMMON = 0, + BTF_KFUNC_HOOK_XDP = 1, + BTF_KFUNC_HOOK_TC = 2, + BTF_KFUNC_HOOK_STRUCT_OPS = 3, + BTF_KFUNC_HOOK_TRACING = 4, + BTF_KFUNC_HOOK_SYSCALL = 5, + BTF_KFUNC_HOOK_FMODRET = 6, + BTF_KFUNC_HOOK_CGROUP_SKB = 7, + BTF_KFUNC_HOOK_SCHED_ACT = 8, + BTF_KFUNC_HOOK_SK_SKB = 9, + BTF_KFUNC_HOOK_SOCKET_FILTER = 10, + BTF_KFUNC_HOOK_LWT = 11, + BTF_KFUNC_HOOK_NETFILTER = 12, + BTF_KFUNC_HOOK_MAX = 13, }; -struct elantech_data { - struct input_dev *tp_dev; - char tp_phys[32]; - unsigned char reg_07; - unsigned char reg_10; - unsigned char reg_11; - unsigned char reg_20; - unsigned char reg_21; - unsigned char reg_22; - unsigned char reg_23; - unsigned char reg_24; - unsigned char reg_25; - unsigned char reg_26; - unsigned int single_finger_reports; - unsigned int y_max; - unsigned int width; - struct finger_pos mt[5]; - unsigned char parity[256]; - struct elantech_device_info info; - void (*original_set_rate)(struct psmouse *, unsigned int); +enum { + BTF_KFUNC_SET_MAX_CNT = 256, + BTF_DTOR_KFUNC_MAX_CNT = 256, + BTF_KFUNC_FILTER_MAX_CNT = 16, }; -struct davinci_i2c_platform_data { - unsigned int bus_freq; - unsigned int bus_delay; - bool gpio_recovery; - bool has_pfunc; +enum { + BTF_FIELD_IGNORE = 0, + BTF_FIELD_FOUND = 1, }; -struct davinci_i2c_dev { - struct device *dev; - void *base; - struct completion cmd_complete; - struct clk *clk; - int cmd_err; - u8 *buf; - size_t buf_len; - int irq; - int stop; - u8 terminate; - long: 32; - struct i2c_adapter adapter; - struct notifier_block freq_transition; - struct davinci_i2c_platform_data *pdata; +enum visit_state { + NOT_VISITED = 0, + VISITED = 1, + RESOLVED = 2, }; -struct hwmon_type_attr_list { - const u32 *attrs; - size_t n_attrs; +enum { + BTF_VAR_STATIC = 0, + BTF_VAR_GLOBAL_ALLOCATED = 1, + BTF_VAR_GLOBAL_EXTERN = 2, }; -struct power_supply_hwmon { - struct power_supply *psy; - unsigned long *props; +struct btf_module { + struct list_head list; + struct module *module; + struct btf *btf; + struct bin_attribute *sysfs_attr; + int flags; }; -struct xwdt_device { - void *base; - u32 wdt_interval; - spinlock_t spinlock; - struct watchdog_device xilinx_wdt_wdd; - struct clk *clk; -}; +typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); -struct od_ops { - unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int); +struct btf_decl_tag { + __s32 component_idx; }; -enum { - OD_NORMAL_SAMPLE = 0, - OD_SUB_SAMPLE = 1, +struct btf_var_secinfo { + __u32 type; + __u32 offset; + __u32 size; }; -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 btf_sec_info { + u32 off; + u32 len; }; -struct od_dbs_tuners { - unsigned int powersave_bias; +struct btf_var { + __u32 linkage; }; -struct cpuidle_exynos_data { - int (*cpu0_enter_aftr)(); - int (*cpu1_powerdown)(); - void (*pre_enter_aftr)(); - void (*post_enter_aftr)(); +struct btf_show_snprintf { + struct btf_show show; + int len_left; + int len; }; -struct dmi_device_attribute { - struct device_attribute dev_attr; - int field; +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 mafield { - const char *prefix; - int field; +typedef int (*cmp_r_func_t)(const void *, const void *, const void *); + +typedef void (*swap_r_func_t)(void *, void *, int, const void *); + +struct btf_id_set { + u32 cnt; + u32 ids[0]; }; -struct scmi_smc { - int irq; - struct scmi_chan_info *cinfo; - struct scmi_shared_mem *shmem; - struct mutex shmem_lock; - atomic_t inflight; - u32 func_id; - u32 param_page; - u32 param_offset; +struct bpf_core_ctx { + struct bpf_verifier_log *log; + const struct btf *btf; }; -enum emc_dram_type___3 { - DRAM_TYPE_DDR3___2 = 0, - DRAM_TYPE_DDR1___3 = 1, - DRAM_TYPE_LPDDR2___2 = 2, - DRAM_TYPE_DDR2___3 = 3, +struct bpf_btf_info { + __u64 btf; + __u32 btf_size; + __u32 id; + __u64 name; + __u32 name_len; + __u32 kernel_btf; }; -struct emc_timing___4; +enum pgt_entry { + NORMAL_PMD = 0, + HPAGE_PMD = 1, + NORMAL_PUD = 2, + HPAGE_PUD = 3, +}; -struct tegra_emc___3 { - struct device *dev; - struct tegra_mc *mc; - struct icc_provider provider; - struct notifier_block clk_nb; - struct clk *clk; - void *regs; - unsigned int irq; - bool bad_state; - struct emc_timing___4 *new_timing; - struct emc_timing___4 *timings; - unsigned int num_timings; - u32 mc_override; - u32 emc_cfg; - u32 emc_mode_1; - u32 emc_mode_2; - u32 emc_mode_reset; - bool vref_cal_toggle: 1; - bool zcal_long: 1; - bool dll_on: 1; - struct { - struct dentry *root; - unsigned long min_rate; - unsigned long max_rate; - } debugfs; - struct emc_rate_request requested_rate[2]; - struct mutex rate_lock; - bool mrr_error; +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 emc_timing___4 { - unsigned long rate; - u32 data[89]; - u32 emc_auto_cal_interval; - u32 emc_mode_1; - u32 emc_mode_2; - u32 emc_mode_reset; - u32 emc_zcal_cnt_long; - bool emc_cfg_periodic_qrst; - bool emc_cfg_dyn_self_ref; +struct simple_transaction_argresp { + ssize_t size; + char data[0]; }; -struct icc_rpm_smd_req { - __le32 key; - __le32 nbytes; - __le32 value; +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; }; -struct sd_flow_limit; +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 softnet_data { - struct list_head poll_list; - struct sk_buff_head process_queue; - unsigned int processed; - unsigned int time_squeeze; - struct softnet_data *rps_ipi_list; - bool in_net_rx_action; - bool in_napi_threaded_poll; - struct sd_flow_limit __attribute__((btf_type_tag("rcu"))) *flow_limit; - struct Qdisc *output_queue; - struct Qdisc **output_queue_tailp; - struct sk_buff *completion_queue; - struct { - u16 recursion; - u8 more; - } xmit; - long: 32; - unsigned int input_queue_head; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - 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; - long: 32; - struct napi_struct backlog; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - spinlock_t defer_lock; - int defer_count; - int defer_ipi_scheduled; - struct sk_buff *defer_list; - call_single_data_t defer_csd; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct mpage_data { + struct bio *bio; long: 32; + sector_t last_block_in_bio; + get_block_t *get_block; long: 32; }; -struct cpu_rmap { - struct kref refcount; - u16 size; - void **obj; - struct { - u16 index; - u16 dist; - } near[0]; +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; + long: 32; + struct bio io_inline_bio; }; -struct bpf_xdp_link { - struct bpf_link link; - struct net_device *dev; - int flags; +struct iomap_readpage_ctx { + struct folio *cur_folio; + bool cur_folio_in_bio; + struct bio *bio; + struct readahead_control *rac; }; -struct sd_flow_limit { - u64 count; - unsigned int num_buckets; - unsigned int history_head; - u16 history[128]; - u8 buckets[0]; +struct iomap_folio_state { + spinlock_t state_lock; + unsigned int read_bytes_pending; + atomic_t write_bytes_pending; + unsigned long state[0]; }; -enum xps_map_type { - XPS_CPUS = 0, - XPS_RXQS = 1, - XPS_MAPS_MAX = 2, -}; +typedef int (*iomap_punch_t)(struct inode *, loff_t, loff_t); -enum qdisc_state_t { - __QDISC_STATE_SCHED = 0, - __QDISC_STATE_DEACTIVATED = 1, - __QDISC_STATE_MISSED = 2, - __QDISC_STATE_DRAINING = 3, -}; +struct iomap_writeback_ops; -enum qdisc_state2_t { - __QDISC_STATE2_RUNNING = 0, +struct iomap_writepage_ctx { + struct iomap iomap; + struct iomap_ioend *ioend; + const struct iomap_writeback_ops *ops; }; -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 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); }; -struct dev_kfree_skb_cb { - enum skb_drop_reason reason; +struct move_extent { + __u32 reserved; + __u32 donor_fd; + __u64 orig_start; + __u64 donor_start; + __u64 len; + __u64 moved_len; }; -struct netdev_net_notifier { - struct list_head list; - struct notifier_block *nb; +struct ext4_new_group_input { + __u32 group; + long: 32; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 unused; }; -struct net_device_path_stack { - int num_paths; - struct net_device_path path[5]; +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 skb_checksum_ops { - __wsum (*update)(const void *, int, __wsum); - __wsum (*combine)(__wsum, __wsum, int, int); +struct ext4_new_group_data { + __u32 group; + long: 32; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 mdata_blocks; + __u32 free_clusters_count; + long: 32; }; -struct netdev_notifier_offload_xstats_rd; - -struct netdev_notifier_offload_xstats_ru; +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 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 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 netdev_notifier_offload_xstats_rd { - struct rtnl_hw_stats64 stats; - bool used; - long: 32; +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 netdev_notifier_offload_xstats_ru { - bool used; +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 netdev_notifier_pre_changeaddr_info { - struct netdev_notifier_info info; - const unsigned char *dev_addr; +struct fsuuid { + __u32 fsu_len; + __u32 fsu_flags; + __u8 fsu_uuid[0]; }; -typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *); +typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *); -struct ifslave { - __s32 slave_id; - char slave_name[16]; - __s8 link; - __s8 state; - __u32 link_failure_count; +typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *); + +struct proc_nfs_info { + int flag; + const char *str; + const char *nostr; }; -typedef struct ifslave ifslave; +typedef struct { + int val; + char *str; +} option_t; -struct ifbond { - __s32 bond_mode; - __s32 num_slaves; - __s32 miimon; +enum { + ON_ERRORS_PANIC = 1, + ON_ERRORS_REMOUNT_RO = 2, + ON_ERRORS_CONTINUE = 4, + ON_ERRORS_RECOVER = 16, }; -typedef struct ifbond ifbond; +typedef struct { + le16 bytes_per_sector; + u8 sectors_per_cluster; + le16 reserved_sectors; + u8 fats; + le16 root_entries; + le16 sectors; + u8 media_type; + le16 sectors_per_fat; + le16 sectors_per_track; + le16 heads; + le32 hidden_sectors; + le32 large_sectors; +} __attribute__((packed)) BIOS_PARAMETER_BLOCK; -struct netdev_bonding_info { - ifslave slave; - ifbond master; -}; +typedef struct { + u8 jump[3]; + le64 oem_id; + BIOS_PARAMETER_BLOCK bpb; + u8 unused[4]; + sle64 number_of_sectors; + sle64 mft_lcn; + sle64 mftmirr_lcn; + s8 clusters_per_mft_record; + u8 reserved0[3]; + s8 clusters_per_index_record; + u8 reserved1[3]; + le64 volume_serial_number; + le32 checksum; + u8 bootstrap[426]; + le16 end_of_sector_marker; +} __attribute__((packed)) NTFS_BOOT_SECTOR; -struct netdev_notifier_bonding_info { - struct netdev_notifier_info info; - struct netdev_bonding_info bonding_info; -}; +typedef struct { + le64 reserved; + u8 major_ver; + u8 minor_ver; + VOLUME_FLAGS flags; +} VOLUME_INFORMATION; -struct netdev_notifier_changelowerstate_info { - struct netdev_notifier_info info; - void *lower_state_info; +enum devcg_behavior { + DEVCG_DEFAULT_NONE = 0, + DEVCG_DEFAULT_ALLOW = 1, + DEVCG_DEFAULT_DENY = 2, }; -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, +struct dev_cgroup { + struct cgroup_subsys_state css; + struct list_head exceptions; + enum devcg_behavior behavior; + long: 32; }; -enum handshake_msg_type { - HANDSHAKE_MSG_TYPE_UNSPEC = 0, - HANDSHAKE_MSG_TYPE_CLIENTHELLO = 1, - HANDSHAKE_MSG_TYPE_SERVERHELLO = 2, +struct dev_exception_item { + u32 major; + u32 minor; + short type; + short access; + struct list_head list; + struct callback_head rcu; }; -enum handshake_auth { - HANDSHAKE_AUTH_UNSPEC = 0, - HANDSHAKE_AUTH_UNAUTH = 1, - HANDSHAKE_AUTH_PSK = 2, - HANDSHAKE_AUTH_X509 = 3, +struct io_shutdown { + struct file *file; + int how; }; -enum { - HANDSHAKE_A_ACCEPT_SOCKFD = 1, - HANDSHAKE_A_ACCEPT_HANDLER_CLASS = 2, - HANDSHAKE_A_ACCEPT_MESSAGE_TYPE = 3, - HANDSHAKE_A_ACCEPT_TIMEOUT = 4, - HANDSHAKE_A_ACCEPT_AUTH_MODE = 5, - HANDSHAKE_A_ACCEPT_PEER_IDENTITY = 6, - HANDSHAKE_A_ACCEPT_CERTIFICATE = 7, - HANDSHAKE_A_ACCEPT_PEERNAME = 8, - __HANDSHAKE_A_ACCEPT_MAX = 9, - HANDSHAKE_A_ACCEPT_MAX = 8, +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; + void __attribute__((btf_type_tag("user"))) *msg_control; + struct io_kiocb *notif; }; -enum { - HANDSHAKE_A_X509_CERT = 1, - HANDSHAKE_A_X509_PRIVKEY = 2, - __HANDSHAKE_A_X509_MAX = 3, - HANDSHAKE_A_X509_MAX = 2, +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; }; -enum { - HANDSHAKE_A_DONE_STATUS = 1, - HANDSHAKE_A_DONE_SOCKFD = 2, - HANDSHAKE_A_DONE_REMOTE_AUTH = 3, - __HANDSHAKE_A_DONE_MAX = 4, - HANDSHAKE_A_DONE_MAX = 3, +struct io_socket { + struct file *file; + int domain; + int type; + int protocol; + int flags; + u32 file_slot; + unsigned long nofile; }; -struct tls_handshake_req { - void (*th_consumer_done)(void *, int, key_serial_t); - void *th_consumer_data; - int th_type; - unsigned int th_timeout_ms; - int th_auth_mode; - const char *th_peername; - key_serial_t th_keyring; - key_serial_t th_certificate; - key_serial_t th_privkey; - unsigned int th_num_peerids; - key_serial_t th_peerid[5]; +struct io_connect { + struct file *file; + struct sockaddr __attribute__((btf_type_tag("user"))) *addr; + int addr_len; + bool in_progress; + bool seen_econnaborted; }; -struct bcm_kona_smc_data { - unsigned int service_id; - unsigned int arg0; - unsigned int arg1; - unsigned int arg2; - unsigned int arg3; - unsigned int result; +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 power_state___2 { - struct powerdomain *pwrdm; - u32 next_state; - u32 saved_state; - struct list_head node; +struct io_uring_recvmsg_out { + __u32 namelen; + __u32 controllen; + __u32 payloadlen; + __u32 flags; }; -struct gpiod_lookup { - const char *key; - u16 chip_hwnum; - const char *con_id; - unsigned int idx; - unsigned long flags; +struct io_recvmsg_multishot_hdr { + struct io_uring_recvmsg_out msg; + struct __kernel_sockaddr_storage addr; }; -struct gpiod_lookup_table { - struct list_head list; - const char *dev_id; - struct gpiod_lookup table[0]; +struct io_async_connect { + struct __kernel_sockaddr_storage address; }; -struct semaphore_waiter { - struct list_head list; - struct task_struct *task; - bool up; +struct barrett_ctx_s { + MPI m; + int m_copied; + int k; + MPI y; + MPI r1; + MPI r2; + MPI r3; }; -union rcu_noqs { - struct { - u8 norm; - u8 exp; - } b; - u16 s; -}; +typedef mpi_limb_t UWtype; -struct rcu_snap_record { - unsigned long gp_seq; - long: 32; - 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; - long: 32; +typedef unsigned int USItype; + +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 rcu_node; +struct genpool_data_fixed { + unsigned long offset; +}; -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 sg_pool { + size_t size; + char *name; + struct kmem_cache *slab; + mempool_t *pool; }; -struct rcu_exp_work { - unsigned long rew_s; - struct work_struct rew_work; +struct alpine_msix_data { + spinlock_t msi_map_lock; + phys_addr_t addr; + u32 spi_first; + u32 num_spis; + unsigned long *msi_map; }; -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - raw_spinlock_t fqslock; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct vf610_mscm_ir_chip_data { + void *mscm_ir_base; + u16 cpu_mask; + u16 saved_irsprc[112]; + bool is_nvic; }; -struct rcu_state { - struct rcu_node node[1]; - struct rcu_node *level[2]; - int ncpus; - int n_online_cpus; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - arch_spinlock_t ofl_lock; - int nocb_is_setup; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct aspeed_vic { + void *base; + u32 edge_sources[2]; + struct irq_domain *dom; }; -struct rcu_gp_oldstate { - unsigned long rgos_norm; - unsigned long rgos_exp; +struct simple_pm_bus { + struct clk_bulk_data *clks; + int num_clks; }; -struct kfree_rcu_cpu; +enum brcm_sata_phy_version { + BRCM_SATA_PHY_STB_16NM = 0, + BRCM_SATA_PHY_STB_28NM = 1, + BRCM_SATA_PHY_STB_40NM = 2, + BRCM_SATA_PHY_IPROC_NS2 = 3, + BRCM_SATA_PHY_IPROC_NSP = 4, + BRCM_SATA_PHY_IPROC_SR = 5, + BRCM_SATA_PHY_DSL_28NM = 6, +}; -struct kfree_rcu_cpu_work { - struct rcu_work rcu_work; - struct callback_head *head_free; - struct rcu_gp_oldstate head_free_gp_snap; - struct list_head bulk_head_free[2]; - struct kfree_rcu_cpu *krcp; +enum brcm_sata_phy_rxaeq_mode { + RXAEQ_MODE_OFF = 0, + RXAEQ_MODE_AUTO = 1, + RXAEQ_MODE_MANUAL = 2, }; -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; - long: 32; - struct hrtimer hrtimer; - struct llist_head bkvcache; - int nr_bkv_objs; +enum sata_phy_regs { + BLOCK0_REG_BANK = 0, + BLOCK0_XGXSSTATUS = 129, + BLOCK0_XGXSSTATUS_PLL_LOCK = 4096, + BLOCK0_SPARE = 141, + BLOCK0_SPARE_OOB_CLK_SEL_MASK = 3, + BLOCK0_SPARE_OOB_CLK_SEL_REFBY2 = 1, + BLOCK1_REG_BANK = 16, + BLOCK1_TEST_TX = 131, + BLOCK1_TEST_TX_AMP_SHIFT = 12, + PLL_REG_BANK_0 = 80, + PLL_REG_BANK_0_PLLCONTROL_0 = 129, + PLLCONTROL_0_FREQ_DET_RESTART = 8192, + PLLCONTROL_0_FREQ_MONITOR = 4096, + PLLCONTROL_0_SEQ_START = 32768, + PLL_CAP_CHARGE_TIME = 131, + PLL_VCO_CAL_THRESH = 132, + PLL_CAP_CONTROL = 133, + PLL_FREQ_DET_TIME = 134, + PLL_ACTRL2 = 139, + PLL_ACTRL2_SELDIV_MASK = 31, + PLL_ACTRL2_SELDIV_SHIFT = 9, + PLL_ACTRL6 = 134, + PLL1_REG_BANK = 96, + PLL1_ACTRL2 = 130, + PLL1_ACTRL3 = 131, + PLL1_ACTRL4 = 132, + PLL1_ACTRL5 = 133, + PLL1_ACTRL6 = 134, + PLL1_ACTRL7 = 135, + PLL1_ACTRL8 = 136, + TX_REG_BANK = 112, + TX_ACTRL0 = 128, + TX_ACTRL0_TXPOL_FLIP = 64, + TX_ACTRL5 = 133, + TX_ACTRL5_SSC_EN = 2048, + AEQRX_REG_BANK_0 = 208, + AEQ_CONTROL1 = 129, + AEQ_CONTROL1_ENABLE = 4, + AEQ_CONTROL1_FREEZE = 8, + AEQ_FRC_EQ = 131, + AEQ_FRC_EQ_FORCE = 1, + AEQ_FRC_EQ_FORCE_VAL = 2, + AEQ_RFZ_FRC_VAL = 256, + AEQRX_REG_BANK_1 = 224, + AEQRX_SLCAL0_CTRL0 = 130, + AEQRX_SLCAL1_CTRL0 = 134, + OOB_REG_BANK = 336, + OOB1_REG_BANK = 352, + OOB_CTRL1 = 128, + OOB_CTRL1_BURST_MAX_MASK = 15, + OOB_CTRL1_BURST_MAX_SHIFT = 12, + OOB_CTRL1_BURST_MIN_MASK = 15, + OOB_CTRL1_BURST_MIN_SHIFT = 8, + OOB_CTRL1_WAKE_IDLE_MAX_MASK = 15, + OOB_CTRL1_WAKE_IDLE_MAX_SHIFT = 4, + OOB_CTRL1_WAKE_IDLE_MIN_MASK = 15, + OOB_CTRL1_WAKE_IDLE_MIN_SHIFT = 0, + OOB_CTRL2 = 129, + OOB_CTRL2_SEL_ENA_SHIFT = 15, + OOB_CTRL2_SEL_ENA_RC_SHIFT = 14, + OOB_CTRL2_RESET_IDLE_MAX_MASK = 63, + OOB_CTRL2_RESET_IDLE_MAX_SHIFT = 8, + OOB_CTRL2_BURST_CNT_MASK = 3, + OOB_CTRL2_BURST_CNT_SHIFT = 6, + OOB_CTRL2_RESET_IDLE_MIN_MASK = 63, + OOB_CTRL2_RESET_IDLE_MIN_SHIFT = 0, + TXPMD_REG_BANK = 416, + TXPMD_CONTROL1 = 129, + TXPMD_CONTROL1_TX_SSC_EN_FRC = 1, + TXPMD_CONTROL1_TX_SSC_EN_FRC_VAL = 2, + TXPMD_TX_FREQ_CTRL_CONTROL1 = 130, + TXPMD_TX_FREQ_CTRL_CONTROL2 = 131, + TXPMD_TX_FREQ_CTRL_CONTROL2_FMIN_MASK = 1023, + TXPMD_TX_FREQ_CTRL_CONTROL3 = 132, + TXPMD_TX_FREQ_CTRL_CONTROL3_FMAX_MASK = 1023, + RXPMD_REG_BANK = 448, + RXPMD_RX_CDR_CONTROL1 = 129, + RXPMD_RX_PPM_VAL_MASK = 511, + RXPMD_RXPMD_EN_FRC = 4096, + RXPMD_RXPMD_EN_FRC_VAL = 8192, + RXPMD_RX_CDR_CDR_PROP_BW = 130, + RXPMD_G_CDR_PROP_BW_MASK = 7, + RXPMD_G1_CDR_PROP_BW_SHIFT = 0, + RXPMD_G2_CDR_PROP_BW_SHIFT = 3, + RXPMD_G3_CDR_PROB_BW_SHIFT = 6, + RXPMD_RX_CDR_CDR_ACQ_INTEG_BW = 131, + RXPMD_G_CDR_ACQ_INT_BW_MASK = 7, + RXPMD_G1_CDR_ACQ_INT_BW_SHIFT = 0, + RXPMD_G2_CDR_ACQ_INT_BW_SHIFT = 3, + RXPMD_G3_CDR_ACQ_INT_BW_SHIFT = 6, + RXPMD_RX_CDR_CDR_LOCK_INTEG_BW = 132, + RXPMD_G_CDR_LOCK_INT_BW_MASK = 7, + RXPMD_G1_CDR_LOCK_INT_BW_SHIFT = 0, + RXPMD_G2_CDR_LOCK_INT_BW_SHIFT = 3, + RXPMD_G3_CDR_LOCK_INT_BW_SHIFT = 6, + RXPMD_RX_FREQ_MON_CONTROL1 = 135, + RXPMD_MON_CORRECT_EN = 256, + RXPMD_MON_MARGIN_VAL_MASK = 255, }; -struct sysrq_key_op { - void (* const handler)(int); - const char * const help_msg; - const char * const action_msg; - const int enable_mask; +enum sata_phy_ctrl_regs { + PHY_CTRL_1 = 0, + PHY_CTRL_1_RESET = 1, }; -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 brcm_sata_phy; + +struct brcm_sata_port { + int portnum; + struct phy *phy; + struct brcm_sata_phy *phy_priv; + bool ssc_en; + enum brcm_sata_phy_rxaeq_mode rxaeq_mode; + u32 rxaeq_val; + u32 tx_amplitude_val; }; -struct kvfree_rcu_bulk_data { - struct list_head list; - struct rcu_gp_oldstate gp_snap; - unsigned long nr_records; - void *records[0]; +struct brcm_sata_phy { + struct device *dev; + void *phy_base; + void *ctrl_base; + enum brcm_sata_phy_version version; + struct brcm_sata_port phys[2]; }; -enum dynevent_type { - DYNEVENT_TYPE_SYNTH = 1, - DYNEVENT_TYPE_KPROBE = 2, - DYNEVENT_TYPE_NONE = 3, +struct pinctrl_maps { + struct list_head node; + const struct pinctrl_map *maps; + unsigned int num_maps; }; -struct dyn_event_operations; +struct pctldev; -struct dyn_event { - struct list_head list; - struct dyn_event_operations *ops; +struct mtk_spec_pull_set { + unsigned char pin; + unsigned char pupd_bit; + unsigned short pupd_offset; + unsigned short r0_offset; + unsigned short r1_offset; + unsigned char r0_bit; + unsigned char r1_bit; }; -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 stm32_pinctrl_group; -struct dynevent_cmd; +struct stm32_gpio_bank; -typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *); +struct stm32_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl_dev; + struct pinctrl_desc pctl_desc; + struct stm32_pinctrl_group *groups; + unsigned int ngroups; + const char **grp_names; + struct stm32_gpio_bank *banks; + unsigned int nbanks; + const struct stm32_pinctrl_match_data *match_data; + struct irq_domain *domain; + struct regmap *regmap; + struct regmap_field *irqmux[16]; + struct hwspinlock *hwlock; + struct stm32_desc_pin *pins; + u32 npins; + u32 pkg; + u16 irqmux_map; + spinlock_t irqmux_lock; +}; -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; - long: 32; +struct stm32_pinctrl_group { + const char *name; + unsigned long config; + unsigned int pin; }; -struct dynevent_arg { - const char *str; - char separator; +struct stm32_gpio_bank { + void *base; + struct clk *clk; + struct reset_control *rstc; + spinlock_t lock; + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range range; + struct fwnode_handle *fwnode; + struct irq_domain *domain; + u32 bank_nr; + u32 bank_ioport_nr; + u32 pin_backup[16]; + u8 irq_type[16]; + bool secure_control; }; -typedef int (*dynevent_check_arg_fn_t)(void *); +struct spear_spics { + void *base; + u32 perip_cfg; + u32 sw_enable_bit; + u32 cs_value_bit; + u32 cs_enable_mask; + u32 cs_enable_shift; + unsigned long use_count; + int last_off; + struct gpio_chip chip; +}; -struct dynevent_arg_pair { - const char *lhs; - const char *rhs; - char operator; - char separator; +struct bus_attribute { + struct attribute attr; + ssize_t (*show)(const struct bus_type *, char *); + ssize_t (*store)(const struct bus_type *, const char *, size_t); }; -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; - long: 32; +enum pci_mmap_api { + PCI_MMAP_SYSFS = 0, + PCI_MMAP_PROCFS = 1, }; -typedef void (*btf_trace_alloc_vmap_area)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int); +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, +}; -typedef void (*btf_trace_purge_vmap_area_lazy)(void *, unsigned long, unsigned long, unsigned int); +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 void (*btf_trace_free_vmap_area_noflush)(void *, unsigned long, unsigned long, unsigned long); +struct tegra_pcie_port_soc; -struct vfree_deferred { - struct llist_head list; - struct work_struct wq; +struct tegra_pcie_soc { + unsigned int num_ports; + const struct tegra_pcie_port_soc *ports; + unsigned int msi_base_shift; + unsigned long afi_pex2_ctrl; + u32 pads_pll_ctl; + u32 tx_ref_sel; + u32 pads_refclk_cfg0; + u32 pads_refclk_cfg1; + u32 update_fc_threshold; + bool has_pex_clkreq_en; + bool has_pex_bias_ctrl; + bool has_intr_prsnt_sense; + bool has_cml_clk; + bool has_gen2; + bool force_pca_enable; + bool program_uphy; + bool update_clamp_threshold; + bool program_deskew_time; + bool update_fc_timer; + bool has_cache_bars; + struct { + struct { + u32 rp_ectl_2_r1; + u32 rp_ectl_4_r1; + u32 rp_ectl_5_r1; + u32 rp_ectl_6_r1; + u32 rp_ectl_2_r2; + u32 rp_ectl_4_r2; + u32 rp_ectl_5_r2; + u32 rp_ectl_6_r2; + } regs; + bool enable; + } ectl; }; -struct vmap_block_queue { - spinlock_t lock; - struct list_head free; - struct xarray vmap_blocks; +struct tegra_pcie_port_soc { + struct { + u8 turnoff_bit; + u8 ack_bit; + } pme; }; -struct vmap_area { - unsigned long va_start; - unsigned long va_end; - struct rb_node rb_node; +struct tegra_pcie; + +struct tegra_pcie_port { + struct tegra_pcie *pcie; + struct device_node *np; struct list_head list; - union { - unsigned long subtree_max_size; - struct vm_struct *vm; - }; - unsigned long flags; + struct resource regs; + void *base; + unsigned int index; + unsigned int lanes; + struct phy **phys; + struct gpio_desc *reset_gpio; }; -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, +struct tegra_msi { + unsigned long used[8]; + struct irq_domain *domain; + struct mutex map_lock; + spinlock_t mask_lock; + void *virt; + dma_addr_t phys; + int irq; }; -enum fit_type { - NOTHING_FIT = 0, - FL_FIT_TYPE = 1, - LE_FIT_TYPE = 2, - RE_FIT_TYPE = 3, - NE_FIT_TYPE = 4, +struct tegra_pcie { + struct device *dev; + void *pads; + void *afi; + void *cfg; + int irq; + struct resource cs; + struct clk *pex_clk; + struct clk *afi_clk; + struct clk *pll_e; + struct clk *cml_clk; + struct reset_control *pex_rst; + struct reset_control *afi_rst; + struct reset_control *pcie_xrst; + bool legacy_phy; + struct phy *phy; + struct tegra_msi msi; + struct list_head ports; + u32 xbar_config; + struct regulator_bulk_data *supplies; + unsigned int num_supplies; + const struct tegra_pcie_soc *soc; + struct dentry *debugfs; }; -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 owl_clk_desc { + struct owl_clk_common **clks; + unsigned long num_clks; + struct clk_hw_onecell_data *hw_clks; + const struct owl_reset_map *resets; + unsigned long num_resets; + struct regmap *regmap; }; -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 bcm2835_cprman; -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 bcm2835_clk_desc { + struct clk_hw * (*clk_register)(struct bcm2835_cprman *, const void *); + unsigned int supported; + const void *data; }; -struct vmap_block { - spinlock_t lock; - struct vmap_area *va; - unsigned long free; - unsigned long dirty; - unsigned long used_map[4]; - unsigned long dirty_min; - unsigned long dirty_max; - struct list_head free_list; - struct callback_head callback_head; - struct list_head purge; +struct bcm2835_cprman { + struct device *dev; + void *regs; + spinlock_t regs_lock; + unsigned int soc; + const char *real_parent_names[7]; + struct clk_hw_onecell_data onecell; }; -struct trace_event_data_offsets_alloc_vmap_area {}; +struct bcm2835_pll_ana_bits { + u32 mask0; + u32 set0; + u32 mask1; + u32 set1; + u32 mask3; + u32 set3; + u32 fb_prediv_mask; +}; -struct trace_event_data_offsets_purge_vmap_area_lazy {}; +struct cprman_plat_data { + unsigned int soc; +}; -struct trace_event_data_offsets_free_vmap_area_noflush {}; +struct bcm2835_pll_data; -struct timerfd_ctx { - union { - struct hrtimer tmr; - struct alarm alarm; - } t; - ktime_t tintv; - ktime_t moffs; - wait_queue_head_t wqh; - long: 32; - 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 bcm2835_pll { + struct clk_hw hw; + struct bcm2835_cprman *cprman; + const struct bcm2835_pll_data *data; }; -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 bcm2835_pll_data { + const char *name; + u32 cm_ctrl_reg; + u32 a2w_ctrl_reg; + u32 frac_reg; + u32 ana_reg_base; + u32 reference_enable_mask; + u32 lock_mask; + u32 flags; + const struct bcm2835_pll_ana_bits *ana; + unsigned long min_rate; + unsigned long max_rate; + unsigned long max_fb_rate; }; -struct ext4_dir_entry_2 { - __le32 inode; - __le16 rec_len; - __u8 name_len; - __u8 file_type; - char name[255]; +struct bcm2835_pll_divider_data; + +struct bcm2835_pll_divider { + struct clk_divider div; + struct bcm2835_cprman *cprman; + const struct bcm2835_pll_divider_data *data; }; -struct ext4_dir_entry_hash { - __le32 hash; - __le32 minor_hash; +struct bcm2835_pll_divider_data { + const char *name; + const char *source_pll; + u32 cm_reg; + u32 a2w_reg; + u32 load_mask; + u32 hold_mask; + u32 fixed_divider; + u32 flags; }; -struct dx_entry; +struct bcm2835_clock_data; -struct dx_frame { - struct buffer_head *bh; - struct dx_entry *entries; - struct dx_entry *at; +struct bcm2835_clock { + struct clk_hw hw; + struct bcm2835_cprman *cprman; + const struct bcm2835_clock_data *data; }; -struct dx_entry { - __le32 hash; - __le32 block; +struct bcm2835_clock_data { + const char *name; + const char * const *parents; + int num_mux_parents; + unsigned int set_rate_parent; + u32 ctl_reg; + u32 div_reg; + u32 int_bits; + u32 frac_bits; + u32 flags; + bool is_vpu_clock; + bool is_mash_clock; + bool low_jitter; + u32 tcnt_mux; + bool round_up; }; -struct fake_dirent { - __le32 inode; - __le16 rec_len; - u8 name_len; - u8 file_type; +struct bcm2835_gate_data { + const char *name; + const char *parent; + u32 ctl_reg; }; -struct dx_root_info { - __le32 reserved_zero; - u8 hash_version; - u8 info_length; - u8 indirect_levels; - u8 unused_flags; +struct mtk_clk_rst_data { + struct regmap *regmap; + struct reset_controller_dev rcdev; + const struct mtk_clk_rst_desc *desc; }; -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]; +enum { + A390_CPU_TO_NBCLK = 0, + A390_CPU_TO_HCLK = 1, + A390_CPU_TO_DCLK = 2, }; -struct dx_node { - struct fake_dirent fake; - struct dx_entry entries[0]; +struct samsung_cmu_info { + const struct samsung_pll_clock *pll_clks; + unsigned int nr_pll_clks; + const struct samsung_mux_clock *mux_clks; + unsigned int nr_mux_clks; + const struct samsung_div_clock *div_clks; + unsigned int nr_div_clks; + const struct samsung_gate_clock *gate_clks; + unsigned int nr_gate_clks; + const struct samsung_fixed_rate_clock *fixed_clks; + unsigned int nr_fixed_clks; + const struct samsung_fixed_factor_clock *fixed_factor_clks; + unsigned int nr_fixed_factor_clks; + unsigned int nr_clk_ids; + const struct samsung_cpu_clock *cpu_clks; + unsigned int nr_cpu_clks; + const unsigned long *clk_regs; + unsigned int nr_clk_regs; + const struct samsung_clk_reg_dump *suspend_regs; + unsigned int nr_suspend_regs; + const char *clk_name; }; -struct dx_countlimit { - __le16 limit; - __le16 count; +struct _ccu_nm { + unsigned long n; + unsigned long min_n; + unsigned long max_n; + unsigned long m; + unsigned long min_m; + unsigned long max_m; }; -struct ext4_dir_entry { - __le32 inode; - __le16 rec_len; - __le16 name_len; - char name[255]; +enum { + OMAP3_SOC_AM35XX = 0, + OMAP3_SOC_OMAP3430_ES1 = 1, + OMAP3_SOC_OMAP3430_ES2_PLUS = 2, + OMAP3_SOC_OMAP3630 = 3, }; -struct dx_tail { - u32 dt_reserved; - __le32 dt_checksum; +struct clk_prcmu { + struct clk_hw hw; + u8 cg_sel; + int opp_requested; }; -struct dx_map_entry { - u32 hash; - u16 offs; - u16 size; +struct clk_prcmu_clkout { + struct clk_hw hw; + u8 clkout_id; + u8 source; + u8 divider; }; -struct ext4_filename { - const struct qstr *usr_fname; - struct fscrypt_str disk_name; - struct dx_hash_info hinfo; +enum owl_dma_id { + S900_DMA = 0, + S700_DMA = 1, }; -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; +enum owl_dmadesc_offsets { + OWL_DMADESC_NEXT_LLI = 0, + OWL_DMADESC_SADDR = 1, + OWL_DMADESC_DADDR = 2, + OWL_DMADESC_FLEN = 3, + OWL_DMADESC_SRC_STRIDE = 4, + OWL_DMADESC_DST_STRIDE = 5, + OWL_DMADESC_CTRLA = 6, + OWL_DMADESC_CTRLB = 7, + OWL_DMADESC_CONST_NUM = 8, + OWL_DMADESC_SIZE = 9, }; -typedef enum { - EITHER = 0, - INDEX = 1, - DIRENT = 2, - DIRENT_HTREE = 3, -} dirblock_type_t; +struct owl_dma_pchan; -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 owl_dma_txd; -enum { - ATTR_IS_COMPRESSED = 1, - ATTR_COMPRESSION_MASK = 255, - ATTR_IS_ENCRYPTED = 16384, - ATTR_IS_SPARSE = 32768, +struct owl_dma_vchan { + struct virt_dma_chan vc; + struct owl_dma_pchan *pchan; + struct owl_dma_txd *txd; + struct dma_slave_config cfg; + u8 drq; }; -enum { - MFT_RECORD_IN_USE = 1, - MFT_RECORD_IS_DIRECTORY = 2, -} __attribute__((mode(byte))); +struct owl_dma_pchan { + u32 id; + void *base; + struct owl_dma_vchan *vchan; +}; -enum { - RESIDENT_ATTR_IS_INDEXED = 1, -} __attribute__((mode(byte))); +struct owl_dma_txd { + struct virt_dma_desc vd; + struct list_head lli_list; + bool cyclic; +}; -typedef struct { - unsigned long mft_no; - ntfschar *name; - u32 name_len; - ATTR_TYPE type; -} ntfs_attr; +struct owl_dma_lli { + u32 hw[9]; + dma_addr_t phys; + struct list_head node; +}; -typedef sle64 leUSN; +struct owl_dma { + struct dma_device dma; + void *base; + struct clk *clk; + spinlock_t lock; + struct dma_pool *lli_pool; + int irq; + unsigned int nr_pchans; + struct owl_dma_pchan *pchans; + unsigned int nr_vchans; + struct owl_dma_vchan *vchans; + enum owl_dma_id devid; +}; -typedef struct { - sle64 creation_time; - sle64 last_data_change_time; - sle64 last_mft_change_time; - sle64 last_access_time; - FILE_ATTR_FLAGS file_attributes; - union { - struct { - u8 reserved12[12]; - } v1; - struct { - le32 maximum_versions; - le32 version_number; - le32 class_id; - le32 owner_id; - le32 security_id; - le64 quota_charged; - leUSN usn; - } v3; - } ver; -} STANDARD_INFORMATION; +enum xdma_ip_type { + XDMA_TYPE_AXIDMA = 0, + XDMA_TYPE_CDMA = 1, + XDMA_TYPE_VDMA = 2, + XDMA_TYPE_AXIMCDMA = 3, +}; -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 xilinx_dma_config { + enum xdma_ip_type dmatype; + int (*clk_init)(struct platform_device *, struct clk **, struct clk **, struct clk **, struct clk **, struct clk **); + irqreturn_t (*irq_handler)(int, void *); + const int max_channels; }; -struct vfs_cap_data { - __le32 magic_etc; - struct { - __le32 permitted; - __le32 inheritable; - } data[2]; +struct xilinx_vdma_config { + int frm_dly; + int gen_lock; + int master; + int frm_cnt_en; + int park; + int park_frm; + int coalesc; + int delay; + int reset; + int ext_fsync; + bool vflip_en; }; -struct vfs_ns_cap_data { - __le32 magic_etc; - struct { - __le32 permitted; - __le32 inheritable; - } data[2]; - __le32 rootid; +struct xilinx_dma_device; + +struct xilinx_axidma_tx_segment; + +struct xilinx_aximcdma_tx_segment; + +struct xilinx_dma_chan { + struct xilinx_dma_device *xdev; + u32 ctrl_offset; + u32 desc_offset; + spinlock_t lock; + struct list_head pending_list; + struct list_head active_list; + struct list_head done_list; + struct list_head free_seg_list; + struct dma_chan common; + struct dma_pool *desc_pool; + struct device *dev; + int irq; + int id; + enum dma_transfer_direction direction; + int num_frms; + bool has_sg; + bool cyclic; + bool genlock; + bool err; + bool idle; + bool terminating; + struct tasklet_struct tasklet; + struct xilinx_vdma_config config; + bool flush_on_fsync; + u32 desc_pendingcount; + bool ext_addr; + u32 desc_submitcount; + struct xilinx_axidma_tx_segment *seg_v; + struct xilinx_aximcdma_tx_segment *seg_mv; + dma_addr_t seg_p; + struct xilinx_axidma_tx_segment *cyclic_seg_v; + dma_addr_t cyclic_seg_p; + void (*start_transfer)(struct xilinx_dma_chan *); + int (*stop_transfer)(struct xilinx_dma_chan *); + u16 tdest; + bool has_vflip; + u8 irq_delay; }; -struct cpu_vfs_cap_data { - __u32 magic_etc; - kuid_t rootid; - kernel_cap_t permitted; - kernel_cap_t inheritable; +struct xilinx_dma_device { + void *regs; + struct device *dev; + struct dma_device common; + struct xilinx_dma_chan *chan[32]; + u32 flush_on_fsync; + bool ext_addr; + struct platform_device *pdev; + const struct xilinx_dma_config *dma_config; + struct clk *axi_clk; + struct clk *tx_clk; + struct clk *txs_clk; + struct clk *rx_clk; + struct clk *rxs_clk; + u32 s2mm_chan_id; + u32 mm2s_chan_id; + u32 max_buffer_len; + bool has_axistream_connected; }; -enum { - DIO_SHOULD_DIRTY = 1, - DIO_IS_SYNC = 2, +struct xilinx_axidma_desc_hw { + u32 next_desc; + u32 next_desc_msb; + u32 buf_addr; + u32 buf_addr_msb; + u32 reserved1; + u32 reserved2; + u32 control; + u32 status; + u32 app[5]; + long: 32; + long: 32; + long: 32; }; -struct blkdev_dio { - union { - struct kiocb *iocb; - struct task_struct *waiter; - }; - size_t size; - atomic_t ref; - unsigned int flags; +struct xilinx_axidma_tx_segment { + struct xilinx_axidma_desc_hw hw; + struct list_head node; + dma_addr_t phys; long: 32; long: 32; long: 32; @@ -126480,8 +128596,28 @@ struct blkdev_dio { long: 32; long: 32; long: 32; - struct bio bio; long: 32; +}; + +struct xilinx_aximcdma_desc_hw { + u32 next_desc; + u32 next_desc_msb; + u32 buf_addr; + u32 buf_addr_msb; + u32 rsvd; + u32 control; + u32 status; + u32 sideband_status; + u32 app[5]; + long: 32; + long: 32; + long: 32; +}; + +struct xilinx_aximcdma_tx_segment { + struct xilinx_aximcdma_desc_hw hw; + struct list_head node; + dma_addr_t phys; long: 32; long: 32; long: 32; @@ -126497,5043 +128633,4905 @@ struct blkdev_dio { long: 32; }; -struct io_madvise { - struct file *file; - long: 32; - u64 addr; - u32 len; - u32 advice; +struct xilinx_dma_tx_descriptor { + struct dma_async_tx_descriptor async_tx; + struct list_head segments; + struct list_head node; + bool cyclic; + bool err; + u32 residue; }; -struct io_fadvise { - struct file *file; +struct xilinx_vdma_desc_hw { + u32 next_desc; + u32 pad1; + u32 buf_addr; + u32 buf_addr_msb; + u32 vsize; + u32 hsize; + u32 stride; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; - u64 offset; - u32 len; - u32 advice; }; -enum devm_ioremap_type { - DEVM_IOREMAP = 0, - DEVM_IOREMAP_UC = 1, - DEVM_IOREMAP_WC = 2, - DEVM_IOREMAP_NP = 3, +struct xilinx_vdma_tx_segment { + struct xilinx_vdma_desc_hw hw; + struct list_head node; + dma_addr_t phys; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct pcim_iomap_devres { - void *table[6]; +struct xilinx_cdma_desc_hw { + u32 next_desc; + u32 next_desc_msb; + u32 src_addr; + u32 src_addr_msb; + u32 dest_addr; + u32 dest_addr_msb; + u32 control; + u32 status; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct arch_io_reserve_memtype_wc_devres { - resource_size_t start; - resource_size_t size; +struct xilinx_cdma_tx_segment { + struct xilinx_cdma_desc_hw hw; + struct list_head node; + dma_addr_t phys; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct sunxi_sc_nmi_reg_offs { - u32 ctrl; - u32 pend; - u32 enable; +enum scmi_power_scale { + SCMI_POWER_BOGOWATTS = 0, + SCMI_POWER_MILLIWATTS = 1, + SCMI_POWER_MICROWATTS = 2, }; -enum { - SUNXI_SRC_TYPE_LEVEL_LOW = 0, - SUNXI_SRC_TYPE_EDGE_FALLING = 1, - SUNXI_SRC_TYPE_LEVEL_HIGH = 2, - SUNXI_SRC_TYPE_EDGE_RISING = 3, -}; +struct scmi_perf_proto_ops; -struct aspeed_i2c_ic { - void *base; - int parent_irq; - struct irq_domain *irq_domain; -}; +struct scmi_perf_domain_info; -enum omap3_l3_code { - OMAP_L3_CODE_NOERROR = 0, - OMAP_L3_CODE_UNSUP_CMD = 1, - OMAP_L3_CODE_ADDR_HOLE = 2, - OMAP_L3_CODE_PROTECT_VIOLATION = 3, - OMAP_L3_CODE_IN_BAND_ERR = 4, - OMAP_L3_CODE_REQ_TOUT_NOT_ACCEPT = 7, - OMAP_L3_CODE_REQ_TOUT_NO_RESP = 8, +struct scmi_perf_domain { + struct generic_pm_domain genpd; + const struct scmi_perf_proto_ops *perf_ops; + const struct scmi_protocol_handle *ph; + const struct scmi_perf_domain_info *info; + u32 domain_id; }; -enum omap3_l3_initiator_id { - OMAP_L3_LCD = 29, - OMAP_L3_SAD2D = 28, - OMAP_L3_IA_MPU_SS_1 = 27, - OMAP_L3_IA_MPU_SS_2 = 26, - OMAP_L3_IA_MPU_SS_3 = 25, - OMAP_L3_IA_MPU_SS_4 = 24, - OMAP_L3_IA_MPU_SS_5 = 23, - OMAP_L3_IA_IVA_SS_1 = 22, - OMAP_L3_IA_IVA_SS_2 = 21, - OMAP_L3_IA_IVA_SS_3 = 20, - OMAP_L3_IA_IVA_SS_DMA_1 = 19, - OMAP_L3_IA_IVA_SS_DMA_2 = 18, - OMAP_L3_IA_IVA_SS_DMA_3 = 17, - OMAP_L3_IA_IVA_SS_DMA_4 = 16, - OMAP_L3_IA_IVA_SS_DMA_5 = 15, - OMAP_L3_IA_IVA_SS_DMA_6 = 14, - OMAP_L3_IA_SGX = 13, - OMAP_L3_IA_CAM_1 = 12, - OMAP_L3_IA_CAM_2 = 11, - OMAP_L3_IA_CAM_3 = 10, - OMAP_L3_IA_DAP = 9, - OMAP_L3_SDMA_WR_1 = 8, - OMAP_L3_SDMA_WR_2 = 7, - OMAP_L3_SDMA_RD_1 = 6, - OMAP_L3_SDMA_RD_2 = 5, - OMAP_L3_SDMA_RD_3 = 4, - OMAP_L3_SDMA_RD_4 = 3, - OMAP_L3_USBOTG = 2, - OMAP_L3_USBHOST = 1, +struct scmi_perf_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const struct scmi_perf_domain_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*limits_set)(const struct scmi_protocol_handle *, u32, u32, u32); + int (*limits_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); + int (*level_set)(const struct scmi_protocol_handle *, u32, u32, bool); + int (*level_get)(const struct scmi_protocol_handle *, u32, u32 *, bool); + int (*transition_latency_get)(const struct scmi_protocol_handle *, u32); + int (*device_opps_add)(const struct scmi_protocol_handle *, struct device *, u32); + int (*freq_set)(const struct scmi_protocol_handle *, u32, unsigned long, bool); + int (*freq_get)(const struct scmi_protocol_handle *, u32, unsigned long *, bool); + int (*est_power_get)(const struct scmi_protocol_handle *, u32, unsigned long *, unsigned long *); + bool (*fast_switch_possible)(const struct scmi_protocol_handle *, u32); + enum scmi_power_scale (*power_scale_get)(const struct scmi_protocol_handle *); }; -struct omap3_l3 { - struct device *dev; - struct clk *ick; - void *rt; - int debug_irq; - int app_irq; - unsigned int inband: 1; +struct scmi_perf_domain_info { + char name[64]; + bool set_perf; }; -enum phy_speed_mode { - SPEED_MODE_GEN1 = 0, - SPEED_MODE_GEN2 = 1, - SPEED_MODE_GEN3 = 2, +struct rcar_sysc_ch { + u16 chan_offs; + u8 chan_bit; + u8 isr_bit; }; -struct hix5hd2_priv { - void *base; - struct regmap *peri_ctrl; +struct rcar_sysc_pd { + struct generic_pm_domain genpd; + struct rcar_sysc_ch ch; + unsigned int flags; + char name[0]; }; -struct aspeed_sgpio_bank { - u16 val_regs; - u16 rdata_reg; - u16 irq_regs; - u16 tolerance_regs; - const char names[12]; +struct rcar_pm_domains { + struct genpd_onecell_data onecell_data; + struct generic_pm_domain *domains[33]; }; -struct aspeed_sgpio_pdata { - const u32 pin_mask; +struct as3722_register_mapping { + u8 regulator_id; + const char *name; + const char *sname; + u8 vsel_reg; + u8 vsel_mask; + int n_voltages; + u32 enable_reg; + u8 enable_mask; + u32 control_reg; + u8 mode_mask; + u32 sleep_ctrl_reg; + u8 sleep_ctrl_mask; }; -enum aspeed_sgpio_reg { - reg_val = 0, - reg_rdata = 1, - reg_irq_enable = 2, - reg_irq_type0 = 3, - reg_irq_type1 = 4, - reg_irq_type2 = 5, - reg_irq_status = 6, - reg_tolerance = 7, +enum as3722_regulators_id { + AS3722_REGULATOR_ID_SD0 = 0, + AS3722_REGULATOR_ID_SD1 = 1, + AS3722_REGULATOR_ID_SD2 = 2, + AS3722_REGULATOR_ID_SD3 = 3, + AS3722_REGULATOR_ID_SD4 = 4, + AS3722_REGULATOR_ID_SD5 = 5, + AS3722_REGULATOR_ID_SD6 = 6, + AS3722_REGULATOR_ID_LDO0 = 7, + AS3722_REGULATOR_ID_LDO1 = 8, + AS3722_REGULATOR_ID_LDO2 = 9, + AS3722_REGULATOR_ID_LDO3 = 10, + AS3722_REGULATOR_ID_LDO4 = 11, + AS3722_REGULATOR_ID_LDO5 = 12, + AS3722_REGULATOR_ID_LDO6 = 13, + AS3722_REGULATOR_ID_LDO7 = 14, + AS3722_REGULATOR_ID_LDO9 = 15, + AS3722_REGULATOR_ID_LDO10 = 16, + AS3722_REGULATOR_ID_LDO11 = 17, + AS3722_REGULATOR_ID_MAX = 18, }; -struct aspeed_sgpio { - struct gpio_chip chip; - struct device *dev; - struct clk *pclk; - raw_spinlock_t lock; - void *base; - int irq; +struct as3722_regulator_config_data { + struct regulator_init_data *reg_init; + bool enable_tracking; + int ext_control; }; -typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32); - -struct hotplug_slot_ops; - -struct hotplug_slot { - const struct hotplug_slot_ops *ops; - struct list_head slot_list; - struct pci_slot *pci_slot; - struct module *owner; - const char *mod_name; +struct as3722_regulators { + struct device *dev; + struct as3722 *as3722; + struct regulator_desc desc[18]; + struct as3722_regulator_config_data reg_config_data[18]; }; -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); +enum s2mps11_regulators { + S2MPS11_LDO1 = 0, + S2MPS11_LDO2 = 1, + S2MPS11_LDO3 = 2, + S2MPS11_LDO4 = 3, + S2MPS11_LDO5 = 4, + S2MPS11_LDO6 = 5, + S2MPS11_LDO7 = 6, + S2MPS11_LDO8 = 7, + S2MPS11_LDO9 = 8, + S2MPS11_LDO10 = 9, + S2MPS11_LDO11 = 10, + S2MPS11_LDO12 = 11, + S2MPS11_LDO13 = 12, + S2MPS11_LDO14 = 13, + S2MPS11_LDO15 = 14, + S2MPS11_LDO16 = 15, + S2MPS11_LDO17 = 16, + S2MPS11_LDO18 = 17, + S2MPS11_LDO19 = 18, + S2MPS11_LDO20 = 19, + S2MPS11_LDO21 = 20, + S2MPS11_LDO22 = 21, + S2MPS11_LDO23 = 22, + S2MPS11_LDO24 = 23, + S2MPS11_LDO25 = 24, + S2MPS11_LDO26 = 25, + S2MPS11_LDO27 = 26, + S2MPS11_LDO28 = 27, + S2MPS11_LDO29 = 28, + S2MPS11_LDO30 = 29, + S2MPS11_LDO31 = 30, + S2MPS11_LDO32 = 31, + S2MPS11_LDO33 = 32, + S2MPS11_LDO34 = 33, + S2MPS11_LDO35 = 34, + S2MPS11_LDO36 = 35, + S2MPS11_LDO37 = 36, + S2MPS11_LDO38 = 37, + S2MPS11_BUCK1 = 38, + S2MPS11_BUCK2 = 39, + S2MPS11_BUCK3 = 40, + S2MPS11_BUCK4 = 41, + S2MPS11_BUCK5 = 42, + S2MPS11_BUCK6 = 43, + S2MPS11_BUCK7 = 44, + S2MPS11_BUCK8 = 45, + S2MPS11_BUCK9 = 46, + S2MPS11_BUCK10 = 47, + S2MPS11_REGULATOR_MAX = 48, }; -struct pci_reset_fn_method { - int (*reset_fn)(struct pci_dev *, bool); - char *name; +enum s2mps14_regulators { + S2MPS14_LDO1 = 0, + S2MPS14_LDO2 = 1, + S2MPS14_LDO3 = 2, + S2MPS14_LDO4 = 3, + S2MPS14_LDO5 = 4, + S2MPS14_LDO6 = 5, + S2MPS14_LDO7 = 6, + S2MPS14_LDO8 = 7, + S2MPS14_LDO9 = 8, + S2MPS14_LDO10 = 9, + S2MPS14_LDO11 = 10, + S2MPS14_LDO12 = 11, + S2MPS14_LDO13 = 12, + S2MPS14_LDO14 = 13, + S2MPS14_LDO15 = 14, + S2MPS14_LDO16 = 15, + S2MPS14_LDO17 = 16, + S2MPS14_LDO18 = 17, + S2MPS14_LDO19 = 18, + S2MPS14_LDO20 = 19, + S2MPS14_LDO21 = 20, + S2MPS14_LDO22 = 21, + S2MPS14_LDO23 = 22, + S2MPS14_LDO24 = 23, + S2MPS14_LDO25 = 24, + S2MPS14_BUCK1 = 25, + S2MPS14_BUCK2 = 26, + S2MPS14_BUCK3 = 27, + S2MPS14_BUCK4 = 28, + S2MPS14_BUCK5 = 29, + S2MPS14_REGULATOR_MAX = 30, }; -enum pcie_reset_state { - pcie_deassert_reset = 1, - pcie_warm_reset = 2, - pcie_hot_reset = 3, +enum S2MPU02_regulators { + S2MPU02_LDO1 = 0, + S2MPU02_LDO2 = 1, + S2MPU02_LDO3 = 2, + S2MPU02_LDO4 = 3, + S2MPU02_LDO5 = 4, + S2MPU02_LDO6 = 5, + S2MPU02_LDO7 = 6, + S2MPU02_LDO8 = 7, + S2MPU02_LDO9 = 8, + S2MPU02_LDO10 = 9, + S2MPU02_LDO11 = 10, + S2MPU02_LDO12 = 11, + S2MPU02_LDO13 = 12, + S2MPU02_LDO14 = 13, + S2MPU02_LDO15 = 14, + S2MPU02_LDO16 = 15, + S2MPU02_LDO17 = 16, + S2MPU02_LDO18 = 17, + S2MPU02_LDO19 = 18, + S2MPU02_LDO20 = 19, + S2MPU02_LDO21 = 20, + S2MPU02_LDO22 = 21, + S2MPU02_LDO23 = 22, + S2MPU02_LDO24 = 23, + S2MPU02_LDO25 = 24, + S2MPU02_LDO26 = 25, + S2MPU02_LDO27 = 26, + S2MPU02_LDO28 = 27, + S2MPU02_BUCK1 = 28, + S2MPU02_BUCK2 = 29, + S2MPU02_BUCK3 = 30, + S2MPU02_BUCK4 = 31, + S2MPU02_BUCK5 = 32, + S2MPU02_BUCK6 = 33, + S2MPU02_BUCK7 = 34, + S2MPU02_REGULATOR_MAX = 35, }; -struct pci_pme_device { - struct list_head list; - struct pci_dev *dev; +enum s2mps11_reg { + S2MPS11_REG_ID = 0, + S2MPS11_REG_INT1 = 1, + S2MPS11_REG_INT2 = 2, + S2MPS11_REG_INT3 = 3, + S2MPS11_REG_INT1M = 4, + S2MPS11_REG_INT2M = 5, + S2MPS11_REG_INT3M = 6, + S2MPS11_REG_ST1 = 7, + S2MPS11_REG_ST2 = 8, + S2MPS11_REG_OFFSRC = 9, + S2MPS11_REG_PWRONSRC = 10, + S2MPS11_REG_RTC_CTRL = 11, + S2MPS11_REG_CTRL1 = 12, + S2MPS11_REG_ETC_TEST = 13, + S2MPS11_REG_RSVD3 = 14, + S2MPS11_REG_BU_CHG = 15, + S2MPS11_REG_RAMP = 16, + S2MPS11_REG_RAMP_BUCK = 17, + S2MPS11_REG_LDO1_8 = 18, + S2MPS11_REG_LDO9_16 = 19, + S2MPS11_REG_LDO17_24 = 20, + S2MPS11_REG_LDO25_32 = 21, + S2MPS11_REG_LDO33_38 = 22, + S2MPS11_REG_LDO1_8_1 = 23, + S2MPS11_REG_LDO9_16_1 = 24, + S2MPS11_REG_LDO17_24_1 = 25, + S2MPS11_REG_LDO25_32_1 = 26, + S2MPS11_REG_LDO33_38_1 = 27, + S2MPS11_REG_OTP_ADRL = 28, + S2MPS11_REG_OTP_ADRH = 29, + S2MPS11_REG_OTP_DATA = 30, + S2MPS11_REG_MON1SEL = 31, + S2MPS11_REG_MON2SEL = 32, + S2MPS11_REG_LEE = 33, + S2MPS11_REG_RSVD_NO = 34, + S2MPS11_REG_UVLO = 35, + S2MPS11_REG_LEE_NO = 36, + S2MPS11_REG_B1CTRL1 = 37, + S2MPS11_REG_B1CTRL2 = 38, + S2MPS11_REG_B2CTRL1 = 39, + S2MPS11_REG_B2CTRL2 = 40, + S2MPS11_REG_B3CTRL1 = 41, + S2MPS11_REG_B3CTRL2 = 42, + S2MPS11_REG_B4CTRL1 = 43, + S2MPS11_REG_B4CTRL2 = 44, + S2MPS11_REG_B5CTRL1 = 45, + S2MPS11_REG_BUCK5_SW = 46, + S2MPS11_REG_B5CTRL2 = 47, + S2MPS11_REG_B5CTRL3 = 48, + S2MPS11_REG_B5CTRL4 = 49, + S2MPS11_REG_B5CTRL5 = 50, + S2MPS11_REG_B6CTRL1 = 51, + S2MPS11_REG_B6CTRL2 = 52, + S2MPS11_REG_B7CTRL1 = 53, + S2MPS11_REG_B7CTRL2 = 54, + S2MPS11_REG_B8CTRL1 = 55, + S2MPS11_REG_B8CTRL2 = 56, + S2MPS11_REG_B9CTRL1 = 57, + S2MPS11_REG_B9CTRL2 = 58, + S2MPS11_REG_B10CTRL1 = 59, + S2MPS11_REG_B10CTRL2 = 60, + S2MPS11_REG_L1CTRL = 61, + S2MPS11_REG_L2CTRL = 62, + S2MPS11_REG_L3CTRL = 63, + S2MPS11_REG_L4CTRL = 64, + S2MPS11_REG_L5CTRL = 65, + S2MPS11_REG_L6CTRL = 66, + S2MPS11_REG_L7CTRL = 67, + S2MPS11_REG_L8CTRL = 68, + S2MPS11_REG_L9CTRL = 69, + S2MPS11_REG_L10CTRL = 70, + S2MPS11_REG_L11CTRL = 71, + S2MPS11_REG_L12CTRL = 72, + S2MPS11_REG_L13CTRL = 73, + S2MPS11_REG_L14CTRL = 74, + S2MPS11_REG_L15CTRL = 75, + S2MPS11_REG_L16CTRL = 76, + S2MPS11_REG_L17CTRL = 77, + S2MPS11_REG_L18CTRL = 78, + S2MPS11_REG_L19CTRL = 79, + S2MPS11_REG_L20CTRL = 80, + S2MPS11_REG_L21CTRL = 81, + S2MPS11_REG_L22CTRL = 82, + S2MPS11_REG_L23CTRL = 83, + S2MPS11_REG_L24CTRL = 84, + S2MPS11_REG_L25CTRL = 85, + S2MPS11_REG_L26CTRL = 86, + S2MPS11_REG_L27CTRL = 87, + S2MPS11_REG_L28CTRL = 88, + S2MPS11_REG_L29CTRL = 89, + S2MPS11_REG_L30CTRL = 90, + S2MPS11_REG_L31CTRL = 91, + S2MPS11_REG_L32CTRL = 92, + S2MPS11_REG_L33CTRL = 93, + S2MPS11_REG_L34CTRL = 94, + S2MPS11_REG_L35CTRL = 95, + S2MPS11_REG_L36CTRL = 96, + S2MPS11_REG_L37CTRL = 97, + S2MPS11_REG_L38CTRL = 98, }; -struct pci_saved_state { - u32 config_space[16]; - struct pci_cap_saved_data cap[0]; +enum S2MPU02_reg { + S2MPU02_REG_ID = 0, + S2MPU02_REG_INT1 = 1, + S2MPU02_REG_INT2 = 2, + S2MPU02_REG_INT3 = 3, + S2MPU02_REG_INT1M = 4, + S2MPU02_REG_INT2M = 5, + S2MPU02_REG_INT3M = 6, + S2MPU02_REG_ST1 = 7, + S2MPU02_REG_ST2 = 8, + S2MPU02_REG_PWRONSRC = 9, + S2MPU02_REG_OFFSRC = 10, + S2MPU02_REG_BU_CHG = 11, + S2MPU02_REG_RTCCTRL = 12, + S2MPU02_REG_PMCTRL1 = 13, + S2MPU02_REG_RSVD1 = 14, + S2MPU02_REG_RSVD2 = 15, + S2MPU02_REG_RSVD3 = 16, + S2MPU02_REG_RSVD4 = 17, + S2MPU02_REG_RSVD5 = 18, + S2MPU02_REG_RSVD6 = 19, + S2MPU02_REG_RSVD7 = 20, + S2MPU02_REG_WRSTEN = 21, + S2MPU02_REG_RSVD8 = 22, + S2MPU02_REG_RSVD9 = 23, + S2MPU02_REG_RSVD10 = 24, + S2MPU02_REG_B1CTRL1 = 25, + S2MPU02_REG_B1CTRL2 = 26, + S2MPU02_REG_B2CTRL1 = 27, + S2MPU02_REG_B2CTRL2 = 28, + S2MPU02_REG_B3CTRL1 = 29, + S2MPU02_REG_B3CTRL2 = 30, + S2MPU02_REG_B4CTRL1 = 31, + S2MPU02_REG_B4CTRL2 = 32, + S2MPU02_REG_B5CTRL1 = 33, + S2MPU02_REG_B5CTRL2 = 34, + S2MPU02_REG_B5CTRL3 = 35, + S2MPU02_REG_B5CTRL4 = 36, + S2MPU02_REG_B5CTRL5 = 37, + S2MPU02_REG_B6CTRL1 = 38, + S2MPU02_REG_B6CTRL2 = 39, + S2MPU02_REG_B7CTRL1 = 40, + S2MPU02_REG_B7CTRL2 = 41, + S2MPU02_REG_RAMP1 = 42, + S2MPU02_REG_RAMP2 = 43, + S2MPU02_REG_L1CTRL = 44, + S2MPU02_REG_L2CTRL1 = 45, + S2MPU02_REG_L2CTRL2 = 46, + S2MPU02_REG_L2CTRL3 = 47, + S2MPU02_REG_L2CTRL4 = 48, + S2MPU02_REG_L3CTRL = 49, + S2MPU02_REG_L4CTRL = 50, + S2MPU02_REG_L5CTRL = 51, + S2MPU02_REG_L6CTRL = 52, + S2MPU02_REG_L7CTRL = 53, + S2MPU02_REG_L8CTRL = 54, + S2MPU02_REG_L9CTRL = 55, + S2MPU02_REG_L10CTRL = 56, + S2MPU02_REG_L11CTRL = 57, + S2MPU02_REG_L12CTRL = 58, + S2MPU02_REG_L13CTRL = 59, + S2MPU02_REG_L14CTRL = 60, + S2MPU02_REG_L15CTRL = 61, + S2MPU02_REG_L16CTRL = 62, + S2MPU02_REG_L17CTRL = 63, + S2MPU02_REG_L18CTRL = 64, + S2MPU02_REG_L19CTRL = 65, + S2MPU02_REG_L20CTRL = 66, + S2MPU02_REG_L21CTRL = 67, + S2MPU02_REG_L22CTRL = 68, + S2MPU02_REG_L23CTRL = 69, + S2MPU02_REG_L24CTRL = 70, + S2MPU02_REG_L25CTRL = 71, + S2MPU02_REG_L26CTRL = 72, + S2MPU02_REG_L27CTRL = 73, + S2MPU02_REG_L28CTRL = 74, + S2MPU02_REG_LDODSCH1 = 75, + S2MPU02_REG_LDODSCH2 = 76, + S2MPU02_REG_LDODSCH3 = 77, + S2MPU02_REG_LDODSCH4 = 78, + S2MPU02_REG_SELMIF = 79, + S2MPU02_REG_RSVD11 = 80, + S2MPU02_REG_RSVD12 = 81, + S2MPU02_REG_RSVD13 = 82, + S2MPU02_REG_DVSSEL = 83, + S2MPU02_REG_DVSPTR = 84, + S2MPU02_REG_DVSDATA = 85, }; -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 s2mps11_info { + int ramp_delay2; + int ramp_delay34; + int ramp_delay5; + int ramp_delay16; + int ramp_delay7810; + int ramp_delay9; + enum sec_device_type dev_type; + unsigned long suspend_state[2]; + struct gpio_desc **ext_control_gpiod; }; -struct hb_clk { - struct clk_hw hw; - void *reg; - char *parent_name; +struct reset_props { + u32 protect_reg; + u32 protect_bit; + u32 reset_reg; + u32 reset_bit; }; -struct berlin2_div { - struct clk_hw hw; - void *base; - struct berlin2_div_map map; - spinlock_t *lock; +struct mchp_reset_context { + struct regmap *cpu_ctrl; + struct regmap *gcb_ctrl; + struct reset_controller_dev rcdev; + const struct reset_props *props; }; -struct qcom_cc { - struct qcom_reset_controller reset; - struct clk_regmap **rclks; - size_t num_rclks; +struct uniphier_glue_reset_soc_data { + int nclks; + const char * const *clock_names; + int nrsts; + const char * const *reset_names; }; -struct gdsc_desc { - struct device *dev; - struct gdsc **scs; - size_t num; +struct uniphier_glue_reset_priv { + struct clk_bulk_data clk[2]; + struct reset_control_bulk_data rst[2]; + struct reset_simple_data rdata; + const struct uniphier_glue_reset_soc_data *data; }; -struct rockchip_ddrclk { - struct clk_hw hw; - void *reg_base; - int mux_offset; - int mux_shift; - int mux_width; - int div_shift; - int div_width; - int ddr_flag; - spinlock_t *lock; +struct serdev_device_driver { + struct device_driver driver; + int (*probe)(struct serdev_device *); + void (*remove)(struct serdev_device *); }; -enum rk3288_variant { - RK3288_CRU = 0, - RK3288W_CRU = 1, +struct hisi_rng { + void *base; + struct hwrng rng; }; -struct usb_clk_data { - u32 clk_mask; - u32 reset_mask; - bool reset_needs_clk; +struct drm_mode_get_encoder { + __u32 encoder_id; + __u32 encoder_type; + __u32 crtc_id; + __u32 possible_crtcs; + __u32 possible_clones; }; -struct usb_reset_data { - void *reg; - spinlock_t *lock; - struct clk *clk; - struct reset_controller_dev rcdev; +struct tegra_drm_firewall { + struct tegra_drm_submit_data *submit; + struct tegra_drm_client *client; + u32 *data; + u32 pos; + u32 end; + u32 class; }; -struct rcar_dmac_of_data { - u32 chan_offset_base; - u32 chan_offset_stride; +struct class_attribute_string { + struct class_attribute attr; + char *str; }; -struct rcar_dmac_chan_slave { - phys_addr_t slave_addr; - unsigned int xfer_size; +struct class_compat { + struct kobject *kobj; }; -struct rcar_dmac_chan_map { - dma_addr_t addr; - enum dma_data_direction dir; - struct rcar_dmac_chan_slave slave; -}; +struct twl4030_script; -struct rcar_dmac_desc; +struct twl4030_resconfig; -struct rcar_dmac_chan { - struct dma_chan chan; - void *iomem; - unsigned int index; - int irq; - struct rcar_dmac_chan_slave src; - struct rcar_dmac_chan_slave dst; - struct rcar_dmac_chan_map map; - int mid_rid; - spinlock_t lock; - struct { - struct list_head free; - struct list_head pending; - struct list_head active; - struct list_head done; - struct list_head wait; - struct rcar_dmac_desc *running; - struct list_head chunks_free; - struct list_head pages; - } desc; +struct twl4030_power_data { + struct twl4030_script **scripts; + unsigned int num; + struct twl4030_resconfig *resource_config; + struct twl4030_resconfig *board_config; + bool use_poweroff; + bool ac_charger_quirk; }; -struct rcar_dmac_xfer_chunk; - -struct rcar_dmac_hw_desc; +struct twl4030_ins; -struct rcar_dmac_desc { - struct dma_async_tx_descriptor async_tx; - enum dma_transfer_direction direction; - unsigned int xfer_shift; - u32 chcr; - struct list_head node; - struct list_head chunks; - struct rcar_dmac_xfer_chunk *running; - unsigned int nchunks; - struct { - bool use; - struct rcar_dmac_hw_desc *mem; - dma_addr_t dma; - size_t size; - } hwdescs; +struct twl4030_script { + struct twl4030_ins *script; unsigned int size; - bool cyclic; + u8 flags; }; -struct rcar_dmac_xfer_chunk { - struct list_head node; - dma_addr_t src_addr; - dma_addr_t dst_addr; - u32 size; +struct twl4030_ins { + u16 pmb_message; + u8 delay; }; -struct rcar_dmac_hw_desc { - u32 sar; - u32 dar; - u32 tcr; - u32 reserved; +struct twl4030_resconfig { + u8 resource; + u8 devgroup; + u8 type; + u8 type2; + u8 remap_off; + u8 remap_sleep; }; -struct rcar_dmac { - struct dma_device engine; - struct device *dev; - void *dmac_base; - void *chan_base; - unsigned int n_channels; - struct rcar_dmac_chan *channels; - u32 channels_mask; - unsigned long modules[8]; +struct max8998_reg_dump { + u8 addr; + u8 val; }; -struct rcar_dmac_desc_page { - struct list_head node; - union { - struct { - struct {} __empty_descs; - struct rcar_dmac_desc descs[0]; - }; - struct { - struct {} __empty_chunks; - struct rcar_dmac_xfer_chunk chunks[0]; - }; - }; +enum { + TYPE_MAX8998 = 0, + TYPE_LP3974 = 1, + TYPE_LP3979 = 2, }; -struct rst_config { - unsigned int modemr; - int (*configure)(void *); - int (*set_rproc_boot_addr)(u64); -}; +struct max8998_regulator_data; -struct da9210_pdata { - struct regulator_init_data da9210_constraints; +struct max8998_platform_data { + struct max8998_regulator_data *regulators; + int num_regulators; + unsigned int irq_base; + int ono; + bool buck_voltage_lock; + int buck1_voltage[4]; + int buck2_voltage[2]; + int buck1_set1; + int buck1_set2; + int buck1_default_idx; + int buck2_set3; + int buck2_default_idx; + bool wakeup; + bool rtc_delay; + int eoc; + int restart; + int timeout; }; -struct da9210 { - struct regulator_dev *rdev; - struct regmap *regmap; +struct max8998_regulator_data { + int id; + struct regulator_init_data *initdata; + struct device_node *reg_node; }; -struct sp_reset { - struct reset_controller_dev rcdev; - struct notifier_block notifier; - void *base; +struct sync_merge_data { + char name[32]; + __s32 fd2; + __s32 fence; + __u32 flags; + __u32 pad; }; -struct vc_selection { - struct mutex lock; - struct vc_data *cons; - char *buffer; - unsigned int buf_len; - volatile int start; - int end; +struct sync_file_info { + char name[32]; + __s32 status; + __u32 flags; + __u32 num_fences; + __u32 pad; + __u64 sync_fence_info; }; -struct tiocl_selection { - unsigned short xs; - unsigned short ys; - unsigned short xe; - unsigned short ye; - unsigned short sel_mode; +struct sync_fence_info { + char obj_name[32]; + char driver_name[32]; + __s32 status; + __u32 flags; + __u64 timestamp_ns; }; -struct sci_port_params; - -struct plat_sci_port; +typedef void (*btf_trace_ata_qc_prep)(void *, struct ata_queued_cmd *); -struct sci_port { - struct uart_port port; - const struct sci_port_params *params; - const struct plat_sci_port *cfg; - unsigned int sampling_rate_mask; - resource_size_t reg_size; - struct mctrl_gpios *gpios; - struct clk *clks[4]; - unsigned long clk_rates[4]; - int irqs[6]; - char *irqstr[6]; - struct dma_chan *chan_tx; - struct dma_chan *chan_rx; - struct dma_chan *chan_tx_saved; - struct dma_chan *chan_rx_saved; - dma_cookie_t cookie_tx; - dma_cookie_t cookie_rx[2]; - dma_cookie_t active_rx; - dma_addr_t tx_dma_addr; - unsigned int tx_dma_len; - struct scatterlist sg_rx[2]; - void *rx_buf[2]; - size_t buf_len_rx; - struct work_struct work_tx; - struct hrtimer rx_timer; - unsigned int rx_timeout; - unsigned int rx_frame; - int rx_trigger; - struct timer_list rx_fifo_timer; - int rx_fifo_timeout; - u16 hscif_tot; - bool has_rtscts; - bool autorts; -}; +typedef void (*btf_trace_ata_qc_issue)(void *, struct ata_queued_cmd *); -struct plat_sci_reg { - u8 offset; - u8 size; -}; +typedef void (*btf_trace_ata_qc_complete_internal)(void *, struct ata_queued_cmd *); -struct sci_port_params { - const struct plat_sci_reg regs[20]; - unsigned int fifosize; - unsigned int overrun_reg; - unsigned int overrun_mask; - unsigned int sampling_rate_mask; - unsigned int error_mask; - unsigned int error_clear; -}; +typedef void (*btf_trace_ata_qc_complete_failed)(void *, struct ata_queued_cmd *); -struct plat_sci_port_ops; +typedef void (*btf_trace_ata_qc_complete_done)(void *, struct ata_queued_cmd *); -struct plat_sci_port { - unsigned int type; - long: 32; - upf_t flags; - unsigned int sampling_rate; - unsigned int scscr; - unsigned char regtype; - struct plat_sci_port_ops *ops; -}; +typedef void (*btf_trace_ata_tf_load)(void *, struct ata_port *, const struct ata_taskfile *); -struct plat_sci_port_ops { - void (*init_pins)(struct uart_port *, unsigned int); -}; +typedef void (*btf_trace_ata_exec_command)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); -struct sci_irq_desc { - const char *desc; - irq_handler_t handler; -}; +typedef void (*btf_trace_ata_bmdma_setup)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); -enum { - SCIx_ERI_IRQ = 0, - SCIx_RXI_IRQ = 1, - SCIx_TXI_IRQ = 2, - SCIx_BRI_IRQ = 3, - SCIx_DRI_IRQ = 4, - SCIx_TEI_IRQ = 5, - SCIx_NR_IRQS = 6, - SCIx_MUX_IRQ = 6, -}; +typedef void (*btf_trace_ata_bmdma_start)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); -enum { - SCIx_PROBE_REGTYPE = 0, - SCIx_SCI_REGTYPE = 1, - SCIx_IRDA_REGTYPE = 2, - SCIx_SCIFA_REGTYPE = 3, - SCIx_SCIFB_REGTYPE = 4, - SCIx_SH2_SCIF_FIFODATA_REGTYPE = 5, - SCIx_SH3_SCIF_REGTYPE = 6, - SCIx_SH4_SCIF_REGTYPE = 7, - SCIx_SH4_SCIF_BRG_REGTYPE = 8, - SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE = 9, - SCIx_SH4_SCIF_FIFODATA_REGTYPE = 10, - SCIx_SH7705_SCIF_REGTYPE = 11, - SCIx_HSCIF_REGTYPE = 12, - SCIx_RZ_SCIFA_REGTYPE = 13, - SCIx_NR_REGTYPES = 14, -}; +typedef void (*btf_trace_ata_bmdma_stop)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); -enum { - SCSMR = 0, - SCBRR = 1, - SCSCR = 2, - SCxSR = 3, - SCFCR = 4, - SCFDR = 5, - SCxTDR = 6, - SCxRDR = 7, - SCLSR = 8, - SCTFDR = 9, - SCRFDR = 10, - SCSPTR = 11, - HSSRR = 12, - SCPCR = 13, - SCPDR = 14, - SCDL = 15, - SCCKS = 16, - HSRTRGR = 17, - HSTTRGR = 18, - SEMR = 19, - SCIx_NR_REGS = 20, -}; +typedef void (*btf_trace_ata_bmdma_status)(void *, struct ata_port *, unsigned int); -enum SCI_CLKS { - SCI_FCK = 0, - SCI_SCK = 1, - SCI_BRG_INT = 2, - SCI_SCIF_CLK = 3, - SCI_NUM_CLKS = 4, -}; +typedef void (*btf_trace_ata_eh_link_autopsy)(void *, struct ata_device *, unsigned int, unsigned int); -struct tegra_shared_plane { - struct tegra_plane base; - struct tegra_windowgroup *wgrp; - long: 32; -}; +typedef void (*btf_trace_ata_eh_link_autopsy_qc)(void *, struct ata_queued_cmd *); -struct tegra_display_hub_state { - struct drm_private_state base; - struct tegra_dc *dc; - unsigned long rate; - struct clk *clk; -}; +typedef void (*btf_trace_ata_eh_about_to_do)(void *, struct ata_link *, unsigned int, unsigned int); -typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *); +typedef void (*btf_trace_ata_eh_done)(void *, struct ata_link *, unsigned int, unsigned int); -typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int); +typedef void (*btf_trace_ata_link_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); -typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *); +typedef void (*btf_trace_ata_slave_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); -typedef void (*btf_trace_scsi_dispatch_cmd_timeout)(void *, struct scsi_cmnd *); +typedef void (*btf_trace_ata_link_softreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); -typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *); +typedef void (*btf_trace_ata_link_hardreset_end)(void *, struct ata_link *, unsigned int *, int); -enum scsi_vpd_parameters { - SCSI_VPD_HEADER_SIZE = 4, -}; +typedef void (*btf_trace_ata_slave_hardreset_end)(void *, struct ata_link *, unsigned int *, int); -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]; -}; +typedef void (*btf_trace_ata_link_softreset_end)(void *, struct ata_link *, unsigned int *, int); -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]; -}; +typedef void (*btf_trace_ata_link_postreset)(void *, struct ata_link *, unsigned int *, int); -struct trace_event_raw_scsi_cmd_done_timeout_template { - struct trace_entry ent; - unsigned int host_no; - unsigned int channel; - unsigned int id; - unsigned int lun; - int result; - unsigned int opcode; - unsigned int cmd_len; - int driver_tag; - int scheduler_tag; - unsigned int data_sglen; - unsigned int prot_sglen; - unsigned char prot_op; - u32 __data_loc_cmnd; - u8 sense_key; - u8 asc; - u8 ascq; - char __data[0]; -}; +typedef void (*btf_trace_ata_slave_postreset)(void *, struct ata_link *, unsigned int *, int); -struct trace_event_raw_scsi_eh_wakeup { - struct trace_entry ent; - unsigned int host_no; - char __data[0]; -}; +typedef void (*btf_trace_ata_std_sched_eh)(void *, struct ata_port *); -struct trace_event_data_offsets_scsi_dispatch_cmd_start { - u32 cmnd; -}; +typedef void (*btf_trace_ata_port_freeze)(void *, struct ata_port *); -struct trace_event_data_offsets_scsi_dispatch_cmd_error { - u32 cmnd; -}; +typedef void (*btf_trace_ata_port_thaw)(void *, struct ata_port *); -struct trace_event_data_offsets_scsi_cmd_done_timeout_template { - u32 cmnd; -}; +typedef void (*btf_trace_ata_sff_hsm_state)(void *, struct ata_queued_cmd *, unsigned char); -struct trace_event_data_offsets_scsi_eh_wakeup {}; +typedef void (*btf_trace_ata_sff_hsm_command_complete)(void *, struct ata_queued_cmd *, unsigned char); -struct mtdblk_dev { - struct mtd_blktrans_dev mbd; - int count; - struct mutex cache_mutex; - unsigned char *cache_data; - unsigned long cache_offset; - unsigned int cache_size; - enum { - STATE_EMPTY = 0, - STATE_CLEAN = 1, - STATE_DIRTY = 2, - } cache_state; -}; +typedef void (*btf_trace_ata_sff_port_intr)(void *, struct ata_queued_cmd *, unsigned char); -enum { - MOVE_CANCEL_RACE = 1, - MOVE_SOURCE_RD_ERR = 2, - MOVE_TARGET_RD_ERR = 3, - MOVE_TARGET_WR_ERR = 4, - MOVE_TARGET_BITFLIPS = 5, - MOVE_RETRY = 6, -}; +typedef void (*btf_trace_ata_sff_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); -struct ubi_ltree_entry { - struct rb_node rb; - int vol_id; - int lnum; - int users; - struct rw_semaphore mutex; -}; +typedef void (*btf_trace_atapi_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); -struct ubi_eba_entry; +typedef void (*btf_trace_atapi_send_cdb)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); -struct ubi_eba_table { - struct ubi_eba_entry *entries; -}; +typedef void (*btf_trace_ata_sff_flush_pio_task)(void *, struct ata_port *); -struct ubi_eba_entry { - int pnum; +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 ubi_eba_leb_desc { - int lnum; - int pnum; +struct ata_force_ent { + int port; + int device; + struct ata_force_param param; }; -struct bcm_phy_hw_stat { - const char *string; - int devad; - u16 reg; - u8 shift; - u8 bits; +struct ata_xfer_ent { + int shift; + int bits; + u8 base; }; -enum phy_reset_delays { - PRE_DELAY = 0, - PULSE = 1, - POST_DELAY = 2, - DELAYS_NUM = 3, +struct ata_blacklist_entry { + const char *model_num; + const char *model_rev; + unsigned long horkage; }; -struct hix5hd2_desc; - -struct hix5hd2_desc_sw { - struct hix5hd2_desc *desc; - dma_addr_t phys_addr; - unsigned int count; - unsigned int size; +enum ata_xfer_mask { + ATA_MASK_PIO = 127, + ATA_MASK_MWDMA = 3968, + ATA_MASK_UDMA = 1044480, }; -struct sg_desc; - -struct hix5hd2_sg_desc_ring { - struct sg_desc *desc; - dma_addr_t phys_addr; +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 hix5hd2_priv___2 { - struct hix5hd2_desc_sw pool[4]; - struct hix5hd2_sg_desc_ring tx_ring; - void *base; - void *ctrl_base; - struct sk_buff *tx_skb[1024]; - struct sk_buff *rx_skb[1024]; - struct device *dev; - struct net_device *netdev; - struct device_node *phy_node; - phy_interface_t phy_mode; - unsigned long hw_cap; - unsigned int speed; - unsigned int duplex; - struct clk *mac_core_clk; - struct clk *mac_ifc_clk; - struct reset_control *mac_core_rst; - struct reset_control *mac_ifc_rst; - struct reset_control *phy_rst; - u32 phy_reset_delays[3]; - struct mii_bus *bus; - struct napi_struct napi; - struct work_struct tx_timeout_task; +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 hix5hd2_desc { - __le32 buff_addr; - __le32 cmd; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +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 frags_info { - __le32 addr; - __le32 size; +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 sg_desc { - __le32 total_len; - __le32 resvd0; - __le32 linear_addr; - __le32 linear_len; - struct frags_info frags[18]; +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]; }; -typedef void (*rtl_phy_cfg_fct)(struct rtl8169_private *, struct phy_device *); - -struct phy_reg { - u16 reg; - u16 val; +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]; }; -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, +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]; }; -enum stmmac_rfs_type { - STMMAC_RFS_T_VLAN = 0, - STMMAC_RFS_T_LLDP = 1, - STMMAC_RFS_T_1588 = 2, - STMMAC_RFS_T_MAX = 3, +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]; }; -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, +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]; }; -enum flow_action_hw_stats_bit { - FLOW_ACTION_HW_STATS_IMMEDIATE_BIT = 0, - FLOW_ACTION_HW_STATS_DELAYED_BIT = 1, - FLOW_ACTION_HW_STATS_DISABLED_BIT = 2, - FLOW_ACTION_HW_STATS_NUM_BITS = 3, +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]; }; -enum { - TC_TAPRIO_CMD_SET_GATES = 0, - TC_TAPRIO_CMD_SET_AND_HOLD = 1, - TC_TAPRIO_CMD_SET_AND_RELEASE = 2, +struct trace_event_raw_ata_port_eh_begin_template { + struct trace_entry ent; + unsigned int ata_port; + char __data[0]; }; -struct smsc95xx_priv { - u32 mac_cr; - u32 hash_hi; - u32 hash_lo; - u32 wolopts; - spinlock_t mac_cr_lock; - u8 features; - u8 suspend_flags; - bool is_internal_phy; - struct irq_chip irqchip; - struct irq_domain *irqdomain; - struct fwnode_handle *irqfwnode; - struct mii_bus *mdiobus; - struct phy_device *phydev; - struct task_struct *pm_task; +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 dwc3_acpi_pdata; - -struct dwc3_qcom { - struct device *dev; - void *qscratch_base; - struct platform_device *dwc3; - struct platform_device *urs_usb; - struct clk **clks; - int num_clocks; - struct reset_control *resets; - int hs_phy_irq; - int dp_hs_phy_irq; - int dm_hs_phy_irq; - int ss_phy_irq; - enum usb_device_speed usb2_speed; - struct extcon_dev *edev; - struct extcon_dev *host_edev; - struct notifier_block vbus_nb; - struct notifier_block host_nb; - const struct dwc3_acpi_pdata *acpi_pdata; - enum usb_dr_mode mode; - bool is_suspended; - bool pm_suspended; - struct icc_path *icc_path_ddr; - struct icc_path *icc_path_apps; +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 dwc3_acpi_pdata { - u32 qscratch_base_offset; - u32 qscratch_base_size; - u32 dwc3_core_base_size; - int hs_phy_irq_index; - int dp_hs_phy_irq_index; - int dm_hs_phy_irq_index; - int ss_phy_irq_index; - bool is_urs; +struct trace_event_raw_ata_sff_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned char hsm_state; + char __data[0]; }; -struct acpi_device; - -struct udc_ep_regs; +struct trace_event_data_offsets_ata_qc_issue_template {}; -struct udc_stp_dma; +struct trace_event_data_offsets_ata_qc_complete_template {}; -struct udc_data_dma; +struct trace_event_data_offsets_ata_tf_load {}; -struct udc_request; +struct trace_event_data_offsets_ata_exec_command_template {}; -struct udc; +struct trace_event_data_offsets_ata_bmdma_status {}; -struct udc_ep { - struct usb_ep ep; - struct udc_ep_regs *regs; - u32 *txfifo; - u32 *dma; - dma_addr_t td_phys; - dma_addr_t td_stp_dma; - struct udc_stp_dma *td_stp; - struct udc_data_dma *td; - struct udc_request *req; - unsigned int req_used; - unsigned int req_completed; - struct udc_request *bna_dummy_req; - unsigned int bna_occurred; - unsigned int naking; - struct udc *dev; - struct list_head queue; - unsigned int halted; - unsigned int cancel_transfer; - unsigned int num: 5; - unsigned int fifo_depth: 14; - unsigned int in: 1; -}; +struct trace_event_data_offsets_ata_eh_link_autopsy {}; -struct extcon_specific_cable_nb { - struct notifier_block *user_nb; - int cable_index; - struct extcon_dev *edev; - unsigned long previous_value; -}; +struct trace_event_data_offsets_ata_eh_link_autopsy_qc {}; -struct udc_csrs; +struct trace_event_data_offsets_ata_eh_action_template {}; -struct udc_regs; +struct trace_event_data_offsets_ata_link_reset_begin_template {}; -struct udc { - struct usb_gadget gadget; - spinlock_t lock; - struct udc_ep ep[32]; - struct usb_gadget_driver *driver; - unsigned int stall_ep0in: 1; - unsigned int waiting_zlp_ack_ep0in: 1; - unsigned int set_cfg_not_acked: 1; - unsigned int data_ep_enabled: 1; - unsigned int data_ep_queued: 1; - unsigned int sys_suspended: 1; - unsigned int connected; - u16 chiprev; - struct pci_dev *pdev; - struct udc_csrs *csr; - struct udc_regs *regs; - struct udc_ep_regs *ep_regs; - u32 *rxfifo; - u32 *txfifo; - struct dma_pool *data_requests; - struct dma_pool *stp_requests; - unsigned long phys_addr; - void *virt_addr; - unsigned int irq; - u16 cur_config; - u16 cur_intf; - u16 cur_alt; - struct device *dev; - struct phy *udc_phy; - struct extcon_dev *edev; - struct extcon_specific_cable_nb extcon_nb; - struct notifier_block nb; - struct delayed_work drd_work; - u32 conn_type; -}; +struct trace_event_data_offsets_ata_link_reset_end_template {}; -struct udc_ep_regs { - u32 ctl; - u32 sts; - u32 bufin_framenum; - u32 bufout_maxpkt; - u32 subptr; - u32 desptr; - u32 reserved; - u32 confirm; -}; +struct trace_event_data_offsets_ata_port_eh_begin_template {}; -struct udc_stp_dma { - u32 status; - u32 _reserved; - u32 data12; - u32 data34; -}; +struct trace_event_data_offsets_ata_sff_hsm_template {}; -struct udc_data_dma { - u32 status; - u32 _reserved; - u32 bufptr; - u32 next; -}; +struct trace_event_data_offsets_ata_transfer_data_template {}; -struct udc_request { - struct usb_request req; - unsigned int dma_going: 1; - unsigned int dma_done: 1; - dma_addr_t td_phys; - struct udc_data_dma *td_data; - struct udc_data_dma *td_data_last; - struct list_head queue; - unsigned int chain_len; -}; +struct trace_event_data_offsets_ata_sff_template {}; -struct udc_csrs { - u32 sca; - u32 ne[9]; +struct pci_bits { + unsigned int reg; + unsigned int width; + unsigned long mask; + unsigned long val; }; -struct udc_regs { - u32 cfg; - u32 ctl; - u32 sts; - u32 irqsts; - u32 irqmsk; - u32 ep_irqsts; - u32 ep_irqmsk; +enum stm32_fmc2_ecc { + FMC2_ECC_HAM = 1, + FMC2_ECC_BCH4 = 4, + FMC2_ECC_BCH8 = 8, }; -union udc_setup_data { - u32 data[2]; - struct usb_ctrlrequest request; +enum stm32_fmc2_irq_state { + FMC2_IRQ_UNKNOWN = 0, + FMC2_IRQ_BCH = 1, + FMC2_IRQ_SEQ = 2, }; -struct amd5536udc; - -struct bsc_clk_param { - u32 hz; - u32 scl_mask; - u32 div_mask; +struct stm32_fmc2_timings { + u8 tclr; + u8 tar; + u8 thiz; + u8 twait; + u8 thold_mem; + u8 tset_mem; + u8 thold_att; + u8 tset_att; }; -enum bsc_xfer_cmd { - CMD_WR = 0, - CMD_RD = 1, - CMD_WR_NOACK = 2, - CMD_RD_NOACK = 3, +struct stm32_fmc2_nand { + struct nand_chip chip; + struct gpio_desc *wp_gpio; + struct stm32_fmc2_timings timings; + int ncs; + int cs_used[2]; }; -struct bsc_regs; - -struct brcmstb_i2c_dev { - struct device *device; - void *base; - int irq; - struct bsc_regs *bsc_regmap; - struct i2c_adapter adapter; - struct completion done; - u32 clk_freq_hz; - int data_regsz; +struct stm32_fmc2_nfc { + struct nand_controller base; + long: 32; + struct stm32_fmc2_nand nand; + struct device *dev; + struct device *cdev; + struct regmap *regmap; + void *data_base[2]; + void *cmd_base[2]; + void *addr_base[2]; + phys_addr_t io_phys_addr; + phys_addr_t data_phys_addr[2]; + struct clk *clk; + u8 irq_state; + struct dma_chan *dma_tx_ch; + struct dma_chan *dma_rx_ch; + struct dma_chan *dma_ecc_ch; + struct sg_table dma_data_sg; + struct sg_table dma_ecc_sg; + u8 *ecc_buf; + int dma_ecc_len; + struct completion complete; + struct completion dma_data_complete; + struct completion dma_ecc_complete; + u8 cs_assigned; + int cs_sel; + long: 32; }; -struct bsc_regs { - u32 chip_address; - u32 data_in[8]; - u32 cnt_reg; - u32 ctl_reg; - u32 iic_enable; - u32 data_out[8]; - u32 ctlhi_reg; - u32 scl_param; +enum orion_spi_type { + ORION_SPI = 0, + ARMADA_SPI = 1, }; -struct psci_cpuidle_data { - u32 *psci_states; - struct device *dev; +struct orion_spi_dev { + enum orion_spi_type typ; + unsigned long max_hz; + unsigned int min_divisor; + unsigned int max_divisor; + u32 prescale_mask; + bool is_errata_50mhz_ac; }; -struct mmc_omap_slot; - -struct omap_mmc_platform_data; - -struct mmc_omap_host { - int initialized; - struct mmc_request *mrq; - struct mmc_command *cmd; - struct mmc_data *data; - struct mmc_host *mmc; - struct device *dev; - unsigned char id; - struct clk *iclk; - struct clk *fclk; - struct dma_chan *dma_rx; - u32 dma_rx_burst; - struct dma_chan *dma_tx; - u32 dma_tx_burst; - void *virt_base; - unsigned int phys_base; - int irq; - unsigned char bus_mode; - unsigned int reg_shift; - struct gpio_desc *slot_switch; - struct work_struct cmd_abort_work; - unsigned int abort: 1; - struct timer_list cmd_abort_timer; - struct work_struct slot_release_work; - struct mmc_omap_slot *next_slot; - struct work_struct send_stop_work; - struct mmc_data *stop_data; - unsigned int sg_len; - int sg_idx; - u16 *buffer; - u32 buffer_bytes_left; - u32 total_bytes_left; - unsigned int features; - unsigned int brs_received: 1; - unsigned int dma_done: 1; - unsigned int dma_in_use: 1; - spinlock_t dma_lock; - struct mmc_omap_slot *slots[2]; - struct mmc_omap_slot *current_slot; - spinlock_t slot_lock; - wait_queue_head_t slot_wq; - int nr_slots; - struct timer_list clk_timer; - spinlock_t clk_lock; - unsigned int fclk_enabled: 1; - struct workqueue_struct *mmc_omap_wq; - struct omap_mmc_platform_data *pdata; +struct orion_direct_acc { + void *vaddr; + u32 size; }; -struct omap_mmc_slot_data; - -struct mmc_omap_slot { - int id; - unsigned int vdd; - u16 saved_con; - u16 bus_mode; - u16 power_mode; - unsigned int fclk_freq; - struct tasklet_struct cover_tasklet; - struct timer_list cover_timer; - unsigned int cover_open; - struct mmc_request *mrq; - struct mmc_omap_host *host; - struct mmc_host *mmc; - struct gpio_desc *vsd; - struct gpio_desc *vio; - struct gpio_desc *cover; - struct omap_mmc_slot_data *pdata; +struct orion_child_options { + struct orion_direct_acc direct_access; }; -struct omap_mmc_slot_data { - u8 wires; - u32 caps; - u32 pm_caps; - unsigned int nomux: 1; - unsigned int cover: 1; - unsigned int internal_clock: 1; - unsigned int nonremovable: 1; - unsigned int power_saving: 1; - unsigned int no_off: 1; - unsigned int no_regulator_off_init: 1; - unsigned int vcc_aux_disable_is_sleep: 1; - unsigned int features; - int switch_pin; - int gpio_wp; - int (*set_bus_mode)(struct device *, int, int); - int (*set_power)(struct device *, int, int, int); - int (*get_ro)(struct device *, int); - void (*remux)(struct device *, int, int); - void (*before_set_reg)(struct device *, int, int, int); - void (*after_set_reg)(struct device *, int, int, int); - void (*init_card)(struct mmc_card *); - int (*get_cover_state)(struct device *, int); - const char *name; - u32 ocr_mask; - int (*card_detect)(struct device *, int); - unsigned int ban_openended: 1; +struct orion_spi { + struct spi_controller *host; + void *base; + struct clk *clk; + struct clk *axi_clk; + const struct orion_spi_dev *devdata; + struct device *dev; + struct orion_child_options child[8]; }; -struct omap_mmc_platform_data { +struct phylink { + struct net_device *netdev; + const struct phylink_mac_ops *mac_ops; + struct phylink_config *config; + struct phylink_pcs *pcs; struct device *dev; - unsigned int nr_slots: 2; - unsigned int max_freq; - int (*init)(struct device *); - void (*cleanup)(struct device *); - void (*shutdown)(struct device *); - int (*get_context_loss_count)(struct device *); - u8 controller_flags; - u16 reg_offset; - struct omap_mmc_slot_data slots[2]; + unsigned int old_link_state: 1; + unsigned long phylink_disable_state; + struct phy_device *phydev; + phy_interface_t link_interface; + u8 cfg_link_an_mode; + u8 cur_link_an_mode; + u8 link_port; + unsigned long supported[4]; + struct phylink_link_state link_config; + phy_interface_t cur_interface; + struct gpio_desc *link_gpio; + unsigned int link_irq; + struct timer_list link_poll; + void (*get_fixed_state)(struct net_device *, struct phylink_link_state *); + struct mutex state_mutex; + struct phylink_link_state phy_state; + struct work_struct resolve; + unsigned int pcs_neg_mode; + unsigned int pcs_state; + bool mac_link_dropped; + bool using_mac_select_pcs; + struct sfp_bus *sfp_bus; + bool sfp_may_have_phy; + unsigned long sfp_interfaces[2]; + unsigned long sfp_support[4]; + u8 sfp_port; }; -struct sdhci_omap_data { - int omap_offset; - u32 offset; - u8 flags; +enum { + PHYLINK_DISABLE_STOPPED = 0, + PHYLINK_DISABLE_LINK = 1, + PHYLINK_DISABLE_MAC_WOL = 2, + PCS_STATE_DOWN = 0, + PCS_STATE_STARTING = 1, + PCS_STATE_STARTED = 2, }; -struct sdhci_omap_host { - char *version; - void *base; - struct device *dev; - struct regulator *pbias; - bool pbias_enabled; - struct sdhci_host *host; - u8 bus_mode; - u8 power_mode; - u8 timing; - u8 flags; - struct pinctrl *pinctrl; - struct pinctrl_state **pinctrl_state; - int wakeirq; - bool is_tuning; - int omap_offset; - u32 con; - u32 hctl; - u32 sysctl; - u32 capa; - u32 ie; - u32 ise; -}; +struct mdiobb_ops; -struct rk_timer { - void *base; - void *ctrl; - struct clk *clk; - struct clk *pclk; - u32 freq; - int irq; +struct mdiobb_ctrl { + const struct mdiobb_ops *ops; + unsigned int override_op_c22; + u8 op_c22_read; + u8 op_c22_write; }; -struct rk_clkevt { - struct clock_event_device ce; - struct rk_timer timer; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct mdiobb_ops { + struct module *owner; + void (*set_mdc)(struct mdiobb_ctrl *, int); + void (*set_mdio_dir)(struct mdiobb_ctrl *, int); + void (*set_mdio_data)(struct mdiobb_ctrl *, int); + int (*get_mdio_data)(struct mdiobb_ctrl *); }; -struct pl353_smc_data { - struct clk *memclk; - struct clk *aclk; +enum { + IFLA_CAN_UNSPEC = 0, + IFLA_CAN_BITTIMING = 1, + IFLA_CAN_BITTIMING_CONST = 2, + IFLA_CAN_CLOCK = 3, + IFLA_CAN_STATE = 4, + IFLA_CAN_CTRLMODE = 5, + IFLA_CAN_RESTART_MS = 6, + IFLA_CAN_RESTART = 7, + IFLA_CAN_BERR_COUNTER = 8, + IFLA_CAN_DATA_BITTIMING = 9, + IFLA_CAN_DATA_BITTIMING_CONST = 10, + IFLA_CAN_TERMINATION = 11, + IFLA_CAN_TERMINATION_CONST = 12, + IFLA_CAN_BITRATE_CONST = 13, + IFLA_CAN_DATA_BITRATE_CONST = 14, + IFLA_CAN_BITRATE_MAX = 15, + IFLA_CAN_TDC = 16, + IFLA_CAN_CTRLMODE_EXT = 17, + __IFLA_CAN_MAX = 18, + IFLA_CAN_MAX = 17, }; -struct sunxi_sid_cfg { - u32 value_offset; - u32 size; - bool need_register_readout; +enum { + IFLA_CAN_TDC_UNSPEC = 0, + IFLA_CAN_TDC_TDCV_MIN = 1, + IFLA_CAN_TDC_TDCV_MAX = 2, + IFLA_CAN_TDC_TDCO_MIN = 3, + IFLA_CAN_TDC_TDCO_MAX = 4, + IFLA_CAN_TDC_TDCF_MIN = 5, + IFLA_CAN_TDC_TDCF_MAX = 6, + IFLA_CAN_TDC_TDCV = 7, + IFLA_CAN_TDC_TDCO = 8, + IFLA_CAN_TDC_TDCF = 9, + __IFLA_CAN_TDC = 10, + IFLA_CAN_TDC_MAX = 9, }; -struct sunxi_sid { - void *base; - u32 value_offset; +enum { + IFLA_CAN_CTRLMODE_UNSPEC = 0, + IFLA_CAN_CTRLMODE_SUPPORTED = 1, + __IFLA_CAN_CTRLMODE = 2, + IFLA_CAN_CTRLMODE_MAX = 1, }; -enum qos_mode { - NOC_QOS_MODE_INVALID = 0, - NOC_QOS_MODE_FIXED = 1, - NOC_QOS_MODE_BYPASS = 2, +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, }; -struct qcom_icc_provider { - struct icc_provider provider; - int num_bus_clks; - int num_intf_clks; - enum qcom_icc_type type; - struct regmap *regmap; - unsigned int qos_offset; - long: 32; - u64 bus_clk_rate[2]; - struct clk_bulk_data bus_clks[2]; - struct clk_bulk_data *intf_clks; - bool is_on; +struct can_ctrlmode { + __u32 mask; + __u32 flags; }; -struct icc_onecell_data { - unsigned int num_nodes; - struct icc_node *nodes[0]; +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, }; -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); +struct fw_info { + u32 magic; + char version[32]; + __le32 fw_start; + __le32 fw_len; + u8 chksum; +} __attribute__((packed)); -typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); +struct rk_priv_data; -struct bpf_stab { - struct bpf_map map; - struct sock **sks; - struct sk_psock_progs progs; - raw_spinlock_t lock; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct rk_gmac_ops { + void (*set_to_rgmii)(struct rk_priv_data *, int, int); + void (*set_to_rmii)(struct rk_priv_data *); + void (*set_rgmii_speed)(struct rk_priv_data *, int); + void (*set_rmii_speed)(struct rk_priv_data *, int); + void (*set_clock_selection)(struct rk_priv_data *, bool, bool); + void (*integrated_phy_powerup)(struct rk_priv_data *); + bool regs_valid; + u32 regs[0]; }; -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct rk_priv_data { + struct platform_device *pdev; + phy_interface_t phy_iface; + int id; + struct regulator *regulator; + bool suspended; + const struct rk_gmac_ops *ops; + bool clk_enabled; + bool clock_input; + bool integrated_phy; + struct clk_bulk_data *clks; + int num_clks; + struct clk *clk_mac; + struct clk *clk_phy; + struct reset_control *phy_reset; + int tx_delay; + int rx_delay; + struct regmap *grf; + struct regmap *php_grf; }; -struct bpf_shtab_bucket { - struct hlist_head head; - raw_spinlock_t lock; +enum rk_clocks_index { + RK_ACLK_MAC = 0, + RK_PCLK_MAC = 1, + RK_MAC_CLK_TX = 2, + RK_CLK_MAC_SPEED = 3, + RK_MAC_CLK_RX = 4, + RK_CLK_MAC_REF = 5, + RK_CLK_MAC_REFOUT = 6, }; -struct bpf_shtab_elem { - struct callback_head rcu; - u32 hash; - struct sock *sk; - struct hlist_node node; - u8 key[0]; -}; +struct usb_cdc_union_desc; -struct sock_map_seq_info { - struct bpf_map *map; - struct sock *sk; - u32 index; -}; +struct usb_cdc_header_desc; -struct bpf_iter__sockmap { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; - union { - void *key; - }; - union { - struct sock *sk; - }; -}; +struct usb_cdc_call_mgmt_descriptor; -struct sock_hash_seq_info { - struct bpf_map *map; - struct bpf_shtab *htab; - u32 bucket_id; -}; +struct usb_cdc_acm_descriptor; -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 usb_cdc_country_functional_desc; -struct plca_reply_data { - struct ethnl_reply_data base; - struct phy_plca_cfg plca_cfg; - struct phy_plca_status plca_st; -}; +struct usb_cdc_network_terminal_desc; -struct igmphdr { - __u8 type; - __u8 code; - __sum16 csum; - __be32 group; -}; +struct usb_cdc_ether_desc; -struct igmp_mc_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct in_device *in_dev; -}; +struct usb_cdc_dmm_desc; -struct igmp_mcf_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct in_device *idev; - struct ip_mc_list *im; -}; +struct usb_cdc_obex_desc; -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, -}; +struct usb_cdc_ncm_desc; -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 usb_cdc_mbim_desc; -struct sr6_tlv { - __u8 type; - __u8 len; - __u8 data[0]; +struct usb_cdc_mbim_extended_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; }; -enum tpacket_versions { - TPACKET_V1 = 0, - TPACKET_V2 = 1, - TPACKET_V3 = 2, +struct usb_cdc_union_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bMasterInterface0; + __u8 bSlaveInterface0; }; -enum packet_sock_flags { - PACKET_SOCK_ORIGDEV = 0, - PACKET_SOCK_AUXDATA = 1, - PACKET_SOCK_TX_HAS_OFF = 2, - PACKET_SOCK_TP_LOSS = 3, - PACKET_SOCK_RUNNING = 4, - PACKET_SOCK_PRESSURE = 5, - PACKET_SOCK_QDISC_BYPASS = 6, +struct usb_cdc_header_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdCDC; +} __attribute__((packed)); + +struct usb_cdc_call_mgmt_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bmCapabilities; + __u8 bDataInterface; }; -struct tpacket_stats { - unsigned int tp_packets; - unsigned int tp_drops; +struct usb_cdc_acm_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bmCapabilities; }; -struct tpacket_stats_v3 { - unsigned int tp_packets; - unsigned int tp_drops; - unsigned int tp_freeze_q_cnt; +struct usb_cdc_country_functional_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 iCountryCodeRelDate; + __le16 wCountyCode0; }; -union tpacket_stats_u { - struct tpacket_stats stats1; - struct tpacket_stats_v3 stats3; +struct usb_cdc_network_terminal_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bEntityId; + __u8 iName; + __u8 bChannelIndex; + __u8 bPhysicalInterface; }; -struct pgv; +struct usb_cdc_ether_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 iMACAddress; + __le32 bmEthernetStatistics; + __le16 wMaxSegmentSize; + __le16 wNumberMCFilters; + __u8 bNumberPowerFilters; +} __attribute__((packed)); -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; - long: 32; -}; +struct usb_cdc_dmm_desc { + __u8 bFunctionLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u16 bcdVersion; + __le16 wMaxCommand; +} __attribute__((packed)); -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; - long: 32; - union { - unsigned long *rx_owner_map; - struct tpacket_kbdq_core prb_bdqc; - }; -}; +struct usb_cdc_obex_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdVersion; +} __attribute__((packed)); -struct packet_fanout; +struct usb_cdc_ncm_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdNcmVersion; + __u8 bmNetworkCapabilities; +} __attribute__((packed)); -struct packet_rollover; +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 packet_mclist; +struct usb_cdc_mbim_extended_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdMBIMExtendedVersion; + __u8 bMaxOutstandingCommandMessages; + __le16 wMTU; +} __attribute__((packed)); -struct packet_sock { - struct sock sk; - struct packet_fanout *fanout; - union tpacket_stats_u stats; - struct packet_ring_buffer rx_ring; - struct packet_ring_buffer tx_ring; - int copy_thresh; - spinlock_t bind_lock; - struct mutex pg_vec_lock; - unsigned long flags; - int ifindex; - u8 vnet_hdr_sz; - __be16 num; - struct packet_rollover *rollover; - struct packet_mclist *mclist; - atomic_t mapped; - enum tpacket_versions tp_version; - unsigned int tp_hdrlen; - unsigned int tp_reserve; - unsigned int tp_tstamp; - struct completion skb_completion; - struct net_device __attribute__((btf_type_tag("rcu"))) *cached_dev; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct packet_type prot_hook; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - atomic_t tp_drops; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct cdc_state { + struct usb_cdc_header_desc *header; + struct usb_cdc_union_desc *u; + struct usb_cdc_ether_desc *ether; + struct usb_interface *control; + struct usb_interface *data; }; -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct packet_type prot_hook; - struct sock __attribute__((btf_type_tag("rcu"))) *arr[0]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct usb_cdc_notification { + __u8 bmRequestType; + __u8 bNotificationType; + __le16 wValue; + __le16 wIndex; + __le16 wLength; }; -struct pgv { - char *buffer; -}; +typedef void (*btf_trace_dwc3_readl)(void *, void *, u32, u32); -struct packet_rollover { - int sock; - atomic_long_t num; - atomic_long_t num_huge; - atomic_long_t num_failed; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - u32 history[16]; -}; +typedef void (*btf_trace_dwc3_writel)(void *, void *, u32, u32); -struct packet_mclist { - struct packet_mclist *next; - int ifindex; - int count; - unsigned short type; - unsigned short alen; - unsigned char addr[32]; -}; +typedef void (*btf_trace_dwc3_event)(void *, u32, struct dwc3 *); -struct tpacket_bd_ts { - unsigned int ts_sec; - union { - unsigned int ts_usec; - unsigned int ts_nsec; - }; -}; +typedef void (*btf_trace_dwc3_ctrl_req)(void *, struct usb_ctrlrequest *); -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; -}; +typedef void (*btf_trace_dwc3_alloc_request)(void *, struct dwc3_request *); -union tpacket_bd_header_u { - struct tpacket_hdr_v1 bh1; -}; +typedef void (*btf_trace_dwc3_free_request)(void *, struct dwc3_request *); -struct tpacket_block_desc { - __u32 version; - __u32 offset_to_priv; - union tpacket_bd_header_u hdr; -}; +typedef void (*btf_trace_dwc3_ep_queue)(void *, struct dwc3_request *); -struct tpacket_hdr_variant1 { - __u32 tp_rxhash; - __u32 tp_vlan_tci; - __u16 tp_vlan_tpid; - __u16 tp_padding; -}; +typedef void (*btf_trace_dwc3_ep_dequeue)(void *, struct dwc3_request *); -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]; -}; +typedef void (*btf_trace_dwc3_gadget_giveback)(void *, struct dwc3_request *); -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; - union { - unsigned char sll_addr[8]; - struct { - struct {} __empty_sll_addr_flex; - unsigned char sll_addr_flex[0]; - }; - }; -}; +typedef void (*btf_trace_dwc3_gadget_generic_cmd)(void *, unsigned int, u32, int); -struct sockaddr_pkt { - unsigned short spkt_family; - unsigned char spkt_device[14]; - __be16 spkt_protocol; -}; +typedef void (*btf_trace_dwc3_gadget_ep_cmd)(void *, struct dwc3_ep *, unsigned int, struct dwc3_gadget_ep_cmd_params *, int); -struct packet_skb_cb { - union { - struct sockaddr_pkt pkt; - union { - unsigned int origlen; - struct sockaddr_ll ll; - }; - } sa; -}; +typedef void (*btf_trace_dwc3_prepare_trb)(void *, struct dwc3_ep *, struct dwc3_trb *); -struct virtio_net_hdr { - __u8 flags; - __u8 gso_type; - __virtio16 hdr_len; - __virtio16 gso_size; - __virtio16 csum_start; - __virtio16 csum_offset; -}; +typedef void (*btf_trace_dwc3_complete_trb)(void *, struct dwc3_ep *, struct dwc3_trb *); -struct tpacket_hdr; +typedef void (*btf_trace_dwc3_gadget_ep_enable)(void *, struct dwc3_ep *); -struct tpacket2_hdr; +typedef void (*btf_trace_dwc3_gadget_ep_disable)(void *, struct dwc3_ep *); -union tpacket_uhdr { - struct tpacket_hdr *h1; - struct tpacket2_hdr *h2; - struct tpacket3_hdr *h3; - void *raw; +struct trace_event_raw_dwc3_log_io { + struct trace_entry ent; + void *base; + u32 offset; + u32 value; + char __data[0]; }; -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 trace_event_raw_dwc3_log_event { + struct trace_entry ent; + u32 event; + u32 ep0state; + char __data[0]; }; -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 trace_event_raw_dwc3_log_ctrl { + struct trace_entry ent; + __u8 bRequestType; + __u8 bRequest; + __u16 wValue; + __u16 wIndex; + __u16 wLength; + char __data[0]; }; -struct virtio_net_hdr_mrg_rxbuf { - struct virtio_net_hdr hdr; - __virtio16 num_buffers; +struct trace_event_raw_dwc3_log_request { + struct trace_entry ent; + u32 __data_loc_name; + struct dwc3_request *req; + unsigned int actual; + unsigned int length; + int status; + int zero; + int short_not_ok; + int no_interrupt; + char __data[0]; }; -struct tpacket_req { - unsigned int tp_block_size; - unsigned int tp_block_nr; - unsigned int tp_frame_size; - unsigned int tp_frame_nr; +struct trace_event_raw_dwc3_log_generic_cmd { + struct trace_entry ent; + unsigned int cmd; + u32 param; + int status; + char __data[0]; }; -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; +struct trace_event_raw_dwc3_log_gadget_ep_cmd { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int cmd; + u32 param0; + u32 param1; + u32 param2; + int cmd_status; + char __data[0]; }; -union tpacket_req_u { - struct tpacket_req req; - struct tpacket_req3 req3; +struct trace_event_raw_dwc3_log_trb { + struct trace_entry ent; + u32 __data_loc_name; + struct dwc3_trb *trb; + u32 bpl; + u32 bph; + u32 size; + u32 ctrl; + u32 type; + u32 enqueue; + u32 dequeue; + char __data[0]; }; -struct packet_mreq_max { - int mr_ifindex; - unsigned short mr_type; - unsigned short mr_alen; - unsigned char mr_address[32]; +struct trace_event_raw_dwc3_log_ep { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int maxpacket; + unsigned int maxpacket_limit; + unsigned int max_streams; + unsigned int maxburst; + unsigned int flags; + unsigned int direction; + u8 trb_enqueue; + u8 trb_dequeue; + char __data[0]; }; -struct fanout_args { - __u16 id; - __u16 type_flags; - __u32 max_num_members; +struct trace_event_data_offsets_dwc3_log_request { + u32 name; }; -struct tpacket_rollover_stats { - __u64 tp_all; - __u64 tp_huge; - __u64 tp_failed; +struct trace_event_data_offsets_dwc3_log_gadget_ep_cmd { + u32 name; }; -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 trace_event_data_offsets_dwc3_log_trb { + u32 name; }; -struct acpi_gpio_params; - -struct acpi_gpio_mapping { - const char *name; - const struct acpi_gpio_params *data; - unsigned int size; - unsigned int quirks; +struct trace_event_data_offsets_dwc3_log_ep { + u32 name; }; -struct acpi_gpio_params { - unsigned int crs_entry_index; - unsigned int line_index; - bool active_low; +struct dwc3_event_type { + u32 is_devspec: 1; + u32 type: 7; + u32 reserved8_31: 24; }; -struct rfkill; +struct dwc3_event_devt { + u32 one_bit: 1; + u32 device_event: 7; + u32 type: 4; + u32 reserved15_12: 4; + u32 event_info: 9; + u32 reserved31_25: 7; +}; -struct rfkill_ops { - void (*poll)(struct rfkill *, void *); - void (*query)(struct rfkill *, void *); - int (*set_block)(void *, bool); +struct dwc3_event_gevt { + u32 one_bit: 1; + u32 device_event: 7; + u32 phy_port_number: 4; + u32 reserved31_12: 20; }; -struct rfkill_gpio_data { - const char *name; - enum rfkill_type type; - struct gpio_desc *reset_gpio; - struct gpio_desc *shutdown_gpio; - struct rfkill *rfkill_dev; - struct clk *clk; - bool clk_enabled; +union dwc3_event { + u32 raw; + struct dwc3_event_type type; + struct dwc3_event_depevt depevt; + struct dwc3_event_devt devt; + struct dwc3_event_gevt gevt; }; -struct xdp_ring; +struct trace_event_data_offsets_dwc3_log_io {}; -struct xsk_queue { - u32 ring_mask; - u32 nentries; - u32 cached_prod; - u32 cached_cons; - struct xdp_ring *ring; - long: 32; - u64 invalid_descs; - u64 queue_empty_descs; - size_t ring_vmalloc_size; - long: 32; -}; +struct trace_event_data_offsets_dwc3_log_event {}; -struct xdp_ring { - u32 producer; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - u32 pad1; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - u32 consumer; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - u32 pad2; - u32 flags; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - u32 pad3; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -}; +struct trace_event_data_offsets_dwc3_log_ctrl {}; -struct xdp_umem_reg { - __u64 addr; - __u64 len; - __u32 chunk_size; - __u32 headroom; - __u32 flags; - long: 32; -}; +struct trace_event_data_offsets_dwc3_log_generic_cmd {}; -struct omap3_control_regs { - u32 sysconfig; - u32 devconf0; - u32 mem_dftrw0; - u32 mem_dftrw1; - u32 msuspendmux_0; - u32 msuspendmux_1; - u32 msuspendmux_2; - u32 msuspendmux_3; - u32 msuspendmux_4; - u32 msuspendmux_5; - u32 sec_ctrl; - u32 devconf1; - u32 csirxfe; - u32 iva2_bootaddr; - u32 iva2_bootmod; - u32 wkup_ctrl; - u32 debobs_0; - u32 debobs_1; - u32 debobs_2; - u32 debobs_3; - u32 debobs_4; - u32 debobs_5; - u32 debobs_6; - u32 debobs_7; - u32 debobs_8; - u32 prog_io0; - u32 prog_io1; - u32 dss_dpll_spreading; - u32 core_dpll_spreading; - u32 per_dpll_spreading; - u32 usbhost_dpll_spreading; - u32 pbias_lite; - u32 temp_sensor; - u32 sramldo4; - u32 sramldo5; - u32 csi; - u32 padconf_sys_nirq; +struct ci_hw_req { + struct usb_request req; + struct list_head queue; + struct list_head tds; }; -struct control_init_data { - int index; - void *mem; - s16 offset; -}; +struct ci_hw_td; -struct omap3_scratchpad { - u32 boot_config_ptr; - u32 public_restore_ptr; - u32 secure_ram_restore_ptr; - u32 sdrc_module_semaphore; - u32 prcm_block_offset; - u32 sdrc_block_offset; +struct td_node { + struct list_head td; + dma_addr_t dma; + struct ci_hw_td *ptr; + int td_remaining_size; }; -struct omap3_scratchpad_prcm_block { - u32 prm_contents[2]; - u32 cm_contents[11]; - u32 prcm_block_size; +struct ci_hw_td { + __le32 next; + __le32 token; + __le32 page[5]; }; -struct omap3_scratchpad_sdrc_block { - u16 sysconfig; - u16 cs_cfg; - u16 sharing; - u16 err_type; - u32 dll_a_ctrl; - u32 dll_b_ctrl; - u32 power; - u32 cs_0; - u32 mcfg_0; - u16 mr_0; - u16 emr_1_0; - u16 emr_2_0; - u16 emr_3_0; - u32 actim_ctrla_0; - u32 actim_ctrlb_0; - u32 rfr_ctrl_0; - u32 cs_1; - u32 mcfg_1; - u16 mr_1; - u16 emr_1_1; - u16 emr_2_1; - u16 emr_3_1; - u32 actim_ctrla_1; - u32 actim_ctrlb_1; - u32 rfr_ctrl_1; - u16 dcdl_1_ctrl; - u16 dcdl_2_ctrl; - u32 flags; - u32 block_size; +struct ci_hw_qh { + __le32 cap; + __le32 curr; + struct ci_hw_td td; + __le32 RESERVED; + struct usb_ctrlrequest setup; }; -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 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; +}; -typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *); +enum cdns_i2c_mode { + CDNS_I2C_MODE_SLAVE = 0, + CDNS_I2C_MODE_MASTER = 1, +}; -typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); +enum cdns_i2c_slave_state { + CDNS_I2C_SLAVE_STATE_IDLE = 0, + CDNS_I2C_SLAVE_STATE_SEND = 1, + CDNS_I2C_SLAVE_STATE_RECV = 2, +}; -typedef struct { - unsigned int __softirq_pending; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; -} irq_cpustat_t; +struct cdns_i2c { + struct device *dev; + void *membase; + struct i2c_adapter adap; + struct i2c_msg *p_msg; + int err_status; + struct completion xfer_done; + unsigned char *p_send_buf; + unsigned char *p_recv_buf; + unsigned int send_count; + unsigned int recv_count; + unsigned int curr_recv_count; + unsigned long input_clk; + unsigned int i2c_clk; + unsigned int bus_hold_flag; + struct clk *clk; + struct notifier_block clk_rate_change_nb; + struct reset_control *reset; + u32 quirks; + u32 ctrl_reg; + struct i2c_bus_recovery_info rinfo; + u16 ctrl_reg_diva_divb; + struct i2c_client *slave; + enum cdns_i2c_mode dev_mode; + enum cdns_i2c_slave_state slave_state; + u32 fifo_depth; + unsigned int transfer_size; +}; -struct tasklet_head { - struct tasklet_struct *head; - struct tasklet_struct **tail; +struct uniphier_i2c_priv { + struct completion comp; + struct i2c_adapter adap; + void *membase; + struct clk *clk; + unsigned int busy_cnt; + unsigned int clk_cycle; }; -struct trace_event_raw_irq_handler_entry { - struct trace_entry ent; - int irq; - u32 __data_loc_name; - char __data[0]; +struct as3722_poweroff { + struct device *dev; + struct as3722 *as3722; }; -struct trace_event_raw_irq_handler_exit { - struct trace_entry ent; - int irq; - int ret; - char __data[0]; +struct gpio_restart { + struct gpio_desc *reset_gpio; + struct notifier_block restart_handler; + u32 active_delay_ms; + u32 inactive_delay_ms; + u32 wait_delay_ms; }; -struct trace_event_raw_softirq { - struct trace_entry ent; - unsigned int vec; - char __data[0]; +struct scmi_sensor_info; + +struct scmi_sensor_reading; + +struct scmi_sensor_proto_ops { + int (*count_get)(const struct scmi_protocol_handle *); + const struct scmi_sensor_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*trip_point_config)(const struct scmi_protocol_handle *, u32, u8, u64); + int (*reading_get)(const struct scmi_protocol_handle *, u32, u64 *); + int (*reading_get_timestamped)(const struct scmi_protocol_handle *, u32, u8, struct scmi_sensor_reading *); + int (*config_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*config_set)(const struct scmi_protocol_handle *, u32, u32); }; -struct trace_event_raw_tasklet { - struct trace_entry ent; - void *tasklet; - void *func; - char __data[0]; +struct scmi_sensor_intervals_info { + bool segmented; + unsigned int count; + unsigned int *desc; + unsigned int prealloc_pool[16]; }; -struct trace_event_data_offsets_irq_handler_entry { - u32 name; +struct scmi_range_attrs { + long long min_range; + long long max_range; }; -struct trace_event_data_offsets_irq_handler_exit {}; - -struct trace_event_data_offsets_softirq {}; - -struct trace_event_data_offsets_tasklet {}; +struct scmi_sensor_axis_info; -struct trace_mark { - unsigned long long val; - char sym; - long: 32; +struct scmi_sensor_info { + unsigned int id; + unsigned int type; + int scale; + unsigned int num_trip_points; + bool async; + bool update; + bool timestamped; + int tstamp_scale; + unsigned int num_axis; + struct scmi_sensor_axis_info *axis; + struct scmi_sensor_intervals_info intervals; + unsigned int sensor_config; + char name[64]; + bool extended_scalar_attrs; + unsigned int sensor_power; + unsigned int resolution; + int exponent; + struct scmi_range_attrs scalar_attrs; }; -enum trace_iter_flags { - TRACE_FILE_LAT_FMT = 1, - TRACE_FILE_ANNOTATE = 2, - TRACE_FILE_TIME_IN_NS = 4, +struct scmi_sensor_axis_info { + unsigned int id; + unsigned int type; + int scale; + char name[64]; + bool extended_attrs; + unsigned int resolution; + int exponent; + struct scmi_range_attrs attrs; }; -struct bputs_entry { - struct trace_entry ent; - unsigned long ip; - const char *str; +struct scmi_sensor_reading { + long long value; + unsigned long long timestamp; }; -struct bprint_entry { - struct trace_entry ent; - unsigned long ip; - const char *fmt; - u32 buf[0]; +enum scmi_sensor_class { + NONE = 0, + UNSPEC = 1, + TEMPERATURE_C = 2, + TEMPERATURE_F = 3, + TEMPERATURE_K = 4, + VOLTAGE___2 = 5, + CURRENT___2 = 6, + POWER = 7, + ENERGY = 8, + CHARGE = 9, + VOLTAMPERE = 10, + NITS = 11, + LUMENS = 12, + LUX = 13, + CANDELAS = 14, + KPA = 15, + PSI = 16, + NEWTON = 17, + CFM = 18, + RPM = 19, + HERTZ = 20, + SECS = 21, + MINS = 22, + HOURS = 23, + DAYS = 24, + WEEKS = 25, + MILS = 26, + INCHES = 27, + FEET = 28, + CUBIC_INCHES = 29, + CUBIC_FEET = 30, + METERS = 31, + CUBIC_CM = 32, + CUBIC_METERS = 33, + LITERS = 34, + FLUID_OUNCES = 35, + RADIANS = 36, + STERADIANS = 37, + REVOLUTIONS = 38, + CYCLES = 39, + GRAVITIES = 40, + OUNCES = 41, + POUNDS = 42, + FOOT_POUNDS = 43, + OUNCE_INCHES = 44, + GAUSS = 45, + GILBERTS = 46, + HENRIES = 47, + FARADS = 48, + OHMS = 49, + SIEMENS = 50, + MOLES = 51, + BECQUERELS = 52, + PPM = 53, + DECIBELS = 54, + DBA = 55, + DBC = 56, + GRAYS = 57, + SIEVERTS = 58, + COLOR_TEMP_K = 59, + BITS = 60, + BYTES = 61, + WORDS = 62, + DWORDS = 63, + QWORDS = 64, + PERCENTAGE = 65, + PASCALS = 66, + COUNTS = 67, + GRAMS = 68, + NEWTON_METERS = 69, + HITS = 70, + MISSES = 71, + RETRIES = 72, + OVERRUNS = 73, + UNDERRUNS = 74, + COLLISIONS = 75, + PACKETS = 76, + MESSAGES = 77, + CHARS = 78, + ERRORS = 79, + CORRECTED_ERRS = 80, + UNCORRECTABLE_ERRS = 81, + SQ_MILS = 82, + SQ_INCHES = 83, + SQ_FEET = 84, + SQ_CM = 85, + SQ_METERS = 86, + RADIANS_SEC = 87, + BPM = 88, + METERS_SEC_SQUARED = 89, + METERS_SEC = 90, + CUBIC_METERS_SEC = 91, + MM_MERCURY = 92, + RADIANS_SEC_SQUARED = 93, + OEM_UNIT = 255, }; -struct print_entry { - struct trace_entry ent; - unsigned long ip; - char buf[0]; +struct scmi_thermal_sensor { + const struct scmi_protocol_handle *ph; + const struct scmi_sensor_info *info; }; -struct ftrace_entry { - struct trace_entry ent; - unsigned long ip; - unsigned long parent_ip; +struct scmi_sensors { + const struct scmi_protocol_handle *ph; + const struct scmi_sensor_info **info[10]; }; -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 thermal_soc_data { + u32 version; + u32 sensor_ctrl; + u32 power_down_mask; + u32 measure_temp_mask; + u32 measure_freq_ctrl; + u32 measure_freq_mask; + u32 measure_freq_shift; + u32 temp_data; + u32 temp_value_mask; + u32 temp_value_shift; + u32 temp_valid_mask; + u32 panic_alarm_ctrl; + u32 panic_alarm_mask; + u32 panic_alarm_shift; + u32 high_alarm_ctrl; + u32 high_alarm_mask; + u32 high_alarm_shift; + u32 low_alarm_ctrl; + u32 low_alarm_mask; + u32 low_alarm_shift; }; -struct stack_entry { - struct trace_entry ent; - int size; - unsigned long caller[8]; +enum imx_thermal_trip { + IMX_TRIP_PASSIVE = 0, + IMX_TRIP_CRITICAL = 1, }; -struct userstack_entry { - struct trace_entry ent; - unsigned int tgid; - unsigned long caller[8]; +struct imx_thermal_data { + struct device *dev; + struct cpufreq_policy *policy; + struct thermal_zone_device *tz; + struct thermal_cooling_device *cdev; + struct regmap *tempmon; + u32 c1; + u32 c2; + int temp_max; + int alarm_temp; + int last_temp; + bool irq_enabled; + int irq; + struct clk *thermal_clk; + const struct thermal_soc_data *socdata; + const char *temp_grade; }; -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 mmc_fixup { + const char *name; long: 32; + u64 rev_start; + u64 rev_end; + unsigned int manfid; + unsigned short oemid; + unsigned short year; + unsigned char month; + u16 cis_vendor; + u16 cis_device; + unsigned int ext_csd_rev; + const char *of_compatible; + void (*vendor_fixup)(struct mmc_card *, int); + int data; }; -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; - long: 32; +struct sdhci_pxa { + struct clk *clk_core; + struct clk *clk_io; + u8 power_mode; + void *sdio3_conf_reg; }; -struct timerlat_entry { - struct trace_entry ent; - unsigned int seqnum; - int context; - u64 timer_latency; +struct sdhci_pxa_platdata { + unsigned int flags; + unsigned int clk_delay_cycles; + unsigned int clk_delay_sel; + bool clk_delay_enable; + unsigned int max_speed; + u32 host_caps; + u32 host_caps2; + unsigned int quirks; + unsigned int quirks2; + unsigned int pm_caps; }; -struct raw_data_entry { - struct trace_entry ent; - unsigned int id; - char buf[0]; +struct owl_mmc_host { + struct device *dev; + struct reset_control *reset; + void *base; + struct clk *clk; + struct completion sdc_complete; + spinlock_t lock; + int irq; + u32 clock; + bool ddr_50; + enum dma_data_direction dma_dir; + struct dma_chan *dma; + struct dma_async_tx_descriptor *desc; + struct dma_slave_config dma_cfg; + struct completion dma_complete; + struct mmc_host *mmc; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_data *data; }; -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; +enum led_default_state { + LEDS_DEFSTATE_OFF = 0, + LEDS_DEFSTATE_ON = 1, + LEDS_DEFSTATE_KEEP = 2, }; -struct trace_print_flags_u64 { - unsigned long long mask; - const char *name; - long: 32; +struct led_properties { + u32 color; + bool color_present; + const char *function; + u32 func_enum; + bool func_enum_present; + const char *label; }; -struct bpf_iter__bpf_link { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_link *link; - }; +struct transient_trig_data { + int activate; + int state; + int restore_state; + unsigned long duration; + struct timer_list timer; + struct led_classdev *led_cdev; }; -struct bpf_iter_seq_link_info { - u32 link_id; +enum sh_cmt_model { + SH_CMT_16BIT = 0, + SH_CMT_32BIT = 1, + SH_CMT_48BIT = 2, + SH_CMT0_RCAR_GEN2 = 3, + SH_CMT1_RCAR_GEN2 = 4, }; -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); +struct sh_cmt_info { + enum sh_cmt_model model; + unsigned int channels_mask; + unsigned long width; + u32 overflow_bit; + u32 clear_bits; + u32 (*read_control)(void *, unsigned long); + void (*write_control)(void *, unsigned long, u32); + u32 (*read_count)(void *, unsigned long); + void (*write_count)(void *, unsigned long, u32); +}; -typedef void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t); +struct sh_cmt_device; -enum behavior { - EXCLUSIVE = 0, - SHARED = 1, - DROP = 2, +struct sh_cmt_channel { + struct sh_cmt_device *cmt; + unsigned int index; + unsigned int hwidx; + void *iostart; + void *ioctrl; + unsigned int timer_bit; + unsigned long flags; + u32 match_value; + u32 next_match_value; + u32 max_match_value; + raw_spinlock_t lock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct clock_event_device ced; + struct clocksource cs; + u64 total_cycles; + bool cs_enabled; + long: 32; + long: 32; + long: 32; }; -struct cachestat_range { - __u64 off; - __u64 len; +struct sh_cmt_device { + struct platform_device *pdev; + const struct sh_cmt_info *info; + void *mapbase; + struct clk *clk; + unsigned long rate; + unsigned int reg_delay; + raw_spinlock_t lock; + struct sh_cmt_channel *channels; + unsigned int num_channels; + unsigned int hw_channels; + bool has_clockevent; + bool has_clocksource; }; -struct cachestat { - __u64 nr_cache; - __u64 nr_dirty; - __u64 nr_writeback; - __u64 nr_evicted; - __u64 nr_recently_evicted; +struct gpmc_cs_data { + const char *name; + u32 flags; + struct resource mem; }; -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 gpmc_nand_ops { + bool (*nand_writebuffer_empty)(); }; -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]; +enum gpmc_clk_domain { + GPMC_CD_FCLK = 0, + GPMC_CD_CLK = 1, }; -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 gpmc_cs_config { + u32 config1; + u32 config2; + u32 config3; + u32 config4; + u32 config5; + u32 config6; + u32 config7; + int is_valid; }; -struct wait_page_key { - struct folio *folio; - int bit_nr; - int page_match; +struct omap3_gpmc_regs { + u32 sysconfig; + u32 irqenable; + u32 timeout_ctrl; + u32 config; + u32 prefetch_config1; + u32 prefetch_config2; + u32 prefetch_control; + struct gpmc_cs_config cs_context[8]; }; -struct trace_event_data_offsets_mm_filemap_op_page_cache {}; +struct gpmc_waitpin; -struct trace_event_data_offsets_filemap_set_wb_err {}; +struct gpmc_device { + struct device *dev; + int irq; + struct irq_chip irq_chip; + struct gpio_chip gpio_chip; + struct notifier_block nb; + struct omap3_gpmc_regs context; + struct gpmc_waitpin *waitpins; + int nirqs; + unsigned int is_suspended: 1; + struct resource *data; +}; -struct trace_event_data_offsets_file_check_and_advance_wb_err {}; +struct gpmc_waitpin { + u32 pin; + u32 polarity; + struct gpio_desc *desc; +}; -struct stat { - unsigned long st_dev; - unsigned long st_ino; - unsigned short st_mode; - unsigned short st_nlink; - unsigned short st_uid; - unsigned short st_gid; - unsigned long st_rdev; - unsigned long st_size; - unsigned long st_blksize; - unsigned long st_blocks; - unsigned long st_atime; - unsigned long st_atime_nsec; - unsigned long st_mtime; - unsigned long st_mtime_nsec; - unsigned long st_ctime; - unsigned long st_ctime_nsec; - unsigned long __unused4; - unsigned long __unused5; +struct gpmc_bool_timings { + bool cycle2cyclediffcsen; + bool cycle2cyclesamecsen; + bool we_extra_delay; + bool oe_extra_delay; + bool adv_extra_delay; + bool cs_extra_delay; + bool time_para_granularity; }; -struct stat64 { - unsigned long long st_dev; - unsigned char __pad0[4]; - unsigned long __st_ino; - unsigned int st_mode; - unsigned int st_nlink; - unsigned long st_uid; - unsigned long st_gid; - unsigned long long st_rdev; - unsigned char __pad3[4]; - long: 32; - long long st_size; - unsigned long st_blksize; - long: 32; - unsigned long long st_blocks; - unsigned long st_atime; - unsigned long st_atime_nsec; - unsigned long st_mtime; - unsigned long st_mtime_nsec; - unsigned long st_ctime; - unsigned long st_ctime_nsec; - unsigned long long st_ino; +struct gpmc_timings { + u32 sync_clk; + u32 cs_on; + u32 cs_rd_off; + u32 cs_wr_off; + u32 adv_on; + u32 adv_rd_off; + u32 adv_wr_off; + u32 adv_aad_mux_on; + u32 adv_aad_mux_rd_off; + u32 adv_aad_mux_wr_off; + u32 we_on; + u32 we_off; + u32 oe_on; + u32 oe_off; + u32 oe_aad_mux_on; + u32 oe_aad_mux_off; + u32 page_burst_access; + u32 access; + u32 rd_cycle; + u32 wr_cycle; + u32 bus_turnaround; + u32 cycle2cycle_delay; + u32 wait_monitoring; + u32 clk_activation; + u32 wr_access; + u32 wr_data_mux_bus; + struct gpmc_bool_timings bool_timings; }; -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 gpmc_settings { + bool burst_wrap; + bool burst_read; + bool burst_write; + bool device_nand; + bool sync_read; + bool sync_write; + bool wait_on_read; + bool wait_on_write; + u32 burst_len; + u32 device_width; + u32 mux_add_data; + u32 wait_pin; + u32 wait_pin_polarity; }; -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 gpmc_device_timings { + u32 t_ceasu; + u32 t_avdasu; + u32 t_avdp_r; + u32 t_avdp_w; + u32 t_aavdh; + u32 t_oeasu; + u32 t_aa; + u32 t_iaa; + u32 t_oe; + u32 t_ce; + u32 t_rd_cycle; + u32 t_cez_r; + u32 t_cez_w; + u32 t_oez; + u32 t_weasu; + u32 t_wpl; + u32 t_wph; + u32 t_wr_cycle; + u32 clk; + u32 t_bacc; + u32 t_ces; + u32 t_avds; + u32 t_avdh; + u32 t_ach; + u32 t_rdyo; + u32 t_ce_rdyz; + u32 t_ce_avd; + u8 cyc_aavdh_oe; + u8 cyc_aavdh_we; + u8 cyc_oe; + u8 cyc_wpl; + u32 cyc_iaa; + bool ce_xdelay; + bool avd_xdelay; + bool oe_xdelay; + bool we_xdelay; }; -struct proc_maps_private { - struct inode *inode; - struct task_struct *task; - struct mm_struct *mm; - struct vma_iterator iter; +struct gpmc_nand_regs { + void *gpmc_nand_command; + void *gpmc_nand_address; + void *gpmc_nand_data; + void *gpmc_prefetch_config1; + void *gpmc_prefetch_config2; + void *gpmc_prefetch_control; + void *gpmc_prefetch_status; + void *gpmc_ecc_config; + void *gpmc_ecc_control; + void *gpmc_ecc_size_config; + void *gpmc_ecc1_result; + void *gpmc_bch_result0[8]; + void *gpmc_bch_result1[8]; + void *gpmc_bch_result2[8]; + void *gpmc_bch_result3[8]; + void *gpmc_bch_result4[8]; + void *gpmc_bch_result5[8]; + void *gpmc_bch_result6[8]; }; -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; +struct gpmc_onenand_info { + bool sync_read; + bool sync_write; + int burst_len; }; -typedef struct { - u64 pme; -} pagemap_entry_t; +struct icc_bulk_data { + struct icc_path *path; + const char *name; + u32 avg_bw; + u32 peak_bw; +}; -struct pagemapread { - int pos; - int len; - pagemap_entry_t *buffer; - bool show_pfn; +struct icc_bulk_devres { + struct icc_bulk_data *paths; + int num_paths; }; -struct clear_refs_private { - enum clear_refs_types type; +struct scm_timestamping64 { + struct __kernel_timespec ts[3]; }; -struct ext4_system_zone { - struct rb_node node; - long: 32; - ext4_fsblk_t start_blk; - unsigned int count; - u32 ino; +struct scm_timestamping { + struct __kernel_old_timespec ts[3]; }; -struct done_ref { - struct rb_node rb; - int lnum; +struct xdp_frame_bulk { + int count; + void *xa; + void *q[16]; }; -struct ahash_alg { - int (*init)(struct ahash_request *); - int (*update)(struct ahash_request *); - int (*final)(struct ahash_request *); - int (*finup)(struct ahash_request *); - int (*digest)(struct ahash_request *); - int (*export)(struct ahash_request *, void *); - int (*import)(struct ahash_request *, const void *); - int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int); - int (*init_tfm)(struct crypto_ahash *); - void (*exit_tfm)(struct crypto_ahash *); - int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *); - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct hash_alg_common halg; +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 ahash_instance { - void (*free)(struct ahash_instance *); - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - union { - struct { - char head[128]; - struct crypto_instance base; - } s; - struct ahash_alg alg; - }; +struct privflags_reply_data { + struct ethnl_reply_data base; + const char (*priv_flag_names)[32]; + unsigned int n_priv_flags; + u32 priv_flags; }; -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 icmp_err { + int errno; + unsigned int fatal: 1; }; -struct crypto_ahash_spawn { - struct crypto_spawn base; +struct icmp_control { + enum skb_drop_reason (*handler)(struct sk_buff *); + short error; }; -struct crypto_report_hash { - char type[64]; - unsigned int blocksize; - unsigned int digestsize; +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 io_open { - struct file *file; - int dfd; - u32 file_slot; - struct filename *filename; - struct open_how how; - unsigned long nofile; - long: 32; +struct icmp_extobj_hdr { + __be16 length; + __u8 class_num; + __u8 class_type; }; -struct io_close { - struct file *file; - int fd; - u32 file_slot; +struct icmp_ext_hdr { + __u8 reserved1: 4; + __u8 version: 4; + __u8 reserved2; + __sum16 checksum; }; -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, +struct icmp_ext_echo_ctype3_hdr { + __be16 afi; + __u8 addrlen; + __u8 reserved; }; -struct hip04_irq_data { - void *dist_base; - void *cpu_base; - struct irq_domain *domain; - unsigned int nr_irqs; +struct icmp_ext_echo_iio { + struct icmp_extobj_hdr extobj_hdr; + union { + char name[16]; + __be32 ifindex; + struct { + struct icmp_ext_echo_ctype3_hdr ctype3_hdr; + union { + __be32 ipv4_addr; + struct in6_addr ipv6_addr; + } ip_addr; + } addr; + } ident; }; -struct bcm7120_l1_intc_data; +typedef int mh_filter_t(struct sock *, struct sk_buff *); -struct bcm7120_l2_intc_data { - unsigned int n_words; - void *map_base[8]; - void *pair_base[4]; - int en_offset[4]; - int stat_offset[4]; - struct irq_domain *domain; - bool can_wake; - u32 irq_fwd_mask[4]; - struct bcm7120_l1_intc_data *l1_data; - int num_parent_irqs; - const __be32 *map_mask_prop; +struct icmp6_filter { + __u32 data[8]; }; -struct bcm7120_l1_intc_data { - struct bcm7120_l2_intc_data *b; - u32 irq_map_mask[4]; +struct raw6_sock { + struct inet_sock inet; + __u32 checksum; + __u32 offset; + struct icmp6_filter filter; + __u32 ip6mr_table; + struct ipv6_pinfo inet6; + long: 32; }; -struct phy_axg_pcie_priv { - struct phy *phy; - struct phy *analog; - struct regmap *regmap; - struct reset_control *reset; +struct raw6_frag_vec { + struct msghdr *msg; + int hlen; + char c[4]; }; -struct usb_phy_data { - const char *label; - u8 flags; - u32 mask; - u32 power_on; - u32 power_off; +enum devlink_health_reporter_state { + DEVLINK_HEALTH_REPORTER_STATE_HEALTHY = 0, + DEVLINK_HEALTH_REPORTER_STATE_ERROR = 1, }; -struct phy_companion; +struct devlink_health_reporter_ops; -struct omap_usb { - struct usb_phy phy; - struct phy_companion *comparator; - void *pll_ctrl_base; - void *phy_base; - struct device *dev; - struct device *control_dev; - struct clk *wkupclk; - struct clk *optclk; - u8 flags; - struct regmap *syscon_phy_power; - unsigned int power_reg; - u32 mask; - u32 power_on; - u32 power_off; +struct devlink_fmsg; + +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; + long: 32; + u64 graceful_period; + bool auto_recover; + bool auto_dump; + u8 health_state; + long: 32; + u64 dump_ts; + u64 dump_real_ts; + u64 error_count; + u64 recovery_count; + u64 last_recovery_ts; }; -struct phy_companion { - int (*set_vbus)(struct phy_companion *, bool); - int (*start_srp)(struct phy_companion *); +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 tegra_pingroup; +struct devlink_fmsg { + struct list_head item_list; + int err; + bool putting_binary; +}; -struct tegra_pinctrl_soc_data { - unsigned int ngpios; - const char *gpio_compatible; - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const char * const *functions; - unsigned int nfunctions; - const struct tegra_pingroup *groups; - unsigned int ngroups; - bool hsm_in_mux; - bool schmitt_in_mux; - bool drvtype_in_mux; - bool sfsel_in_mux; +struct devlink_fmsg_item { + struct list_head list; + int attrtype; + u8 nla_type; + u16 len; + int value[0]; }; -struct tegra_pingroup { - const char *name; - const unsigned int *pins; - u8 npins; - u8 funcs[4]; - s32 mux_reg; - s32 pupd_reg; - s32 tri_reg; - s32 drv_reg; - u32 mux_bank: 2; - u32 pupd_bank: 2; - u32 tri_bank: 2; - u32 drv_bank: 2; - s32 mux_bit: 6; - s32 pupd_bit: 6; - s32 tri_bit: 6; - s32 einput_bit: 6; - s32 odrain_bit: 6; - s32 lock_bit: 6; - s32 ioreset_bit: 6; - s32 rcv_sel_bit: 6; - s32 hsm_bit: 6; - long: 2; - s32 sfsel_bit: 6; - s32 schmitt_bit: 6; - s32 lpmd_bit: 6; - s32 drvdn_bit: 6; - s32 drvup_bit: 6; - long: 2; - s32 slwr_bit: 6; - s32 slwf_bit: 6; - s32 lpdr_bit: 6; - s32 drvtype_bit: 6; - s32 drvdn_width: 6; - long: 2; - s32 drvup_width: 6; - s32 slwr_width: 6; - s32 slwf_width: 6; - u32 parked_bitmask; +struct gssx_name_attr; + +struct gssx_name_attr_array { + u32 count; + struct gssx_name_attr *data; }; -struct tegra_function; +typedef struct xdr_netobj gssx_buffer; -struct tegra_pmx { - struct device *dev; - struct pinctrl_dev *pctl; - const struct tegra_pinctrl_soc_data *soc; - struct tegra_function *functions; - const char **group_pins; - struct pinctrl_gpio_range gpio_range; - struct pinctrl_desc desc; - int nbanks; - void **regs; - u32 *backup_regs; +struct gssx_option; + +struct gssx_option_array { + u32 count; + struct gssx_option *data; }; -struct tegra_function { - const char *name; - const char **groups; - unsigned int ngroups; +struct gssx_name_attr { + gssx_buffer attr; + gssx_buffer value; + struct gssx_option_array extensions; }; -struct spear_spics { - void *base; - u32 perip_cfg; - u32 sw_enable_bit; - u32 cs_value_bit; - u32 cs_enable_mask; - u32 cs_enable_shift; - unsigned long use_count; - int last_off; - struct gpio_chip chip; +struct gssx_option { + gssx_buffer option; + gssx_buffer value; }; -enum pci_bar_type { - pci_bar_unknown = 0, - pci_bar_io = 1, - pci_bar_mem32 = 2, - pci_bar_mem64 = 3, +typedef struct xdr_netobj utf8string; + +struct gssx_call_ctx { + utf8string locale; + gssx_buffer server_ctx; + struct gssx_option_array options; }; -struct pci_domain_busn_res { - struct list_head list; - struct resource res; - int domain_nr; +typedef struct xdr_netobj gssx_OID; + +struct gssx_name { + gssx_buffer display_name; }; -struct gpio_backlight_platform_data { - struct device *fbdev; +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; + long: 32; + u64 lifetime; + u64 ctx_flags; + u32 locally_initiated; + u32 open; + struct gssx_option_array options; }; -struct gpio_backlight { - struct device *fbdev; - struct gpio_desc *gpiod; +struct gssx_cred_element; + +struct gssx_cred_element_array { + u32 count; + struct gssx_cred_element *data; }; -struct tegra_ahb { - void *regs; - struct device *dev; - u32 ctx[0]; +struct gssx_cred { + gssx_name desired_name; + struct gssx_cred_element_array elements; + gssx_buffer cred_handle_reference; + u32 needs_release; }; -struct clk_master { - struct clk_hw hw; - struct regmap *regmap; - spinlock_t *lock; - const struct clk_master_layout *layout; - const struct clk_master_characteristics *characteristics; - struct at91_clk_pms pms; - u32 *mux_table; - u32 mckr; - int chg_pid; - u8 id; - u8 parent; - u8 div; - u32 safe_div; +struct gssx_cred_element { + gssx_name MN; + gssx_OID mech; + u32 cred_usage; + long: 32; + u64 initiator_time_rec; + u64 acceptor_time_rec; + struct gssx_option_array options; }; -struct raspberrypi_clk_variant { - bool export; - char *clkdev; - unsigned long min_rate; - bool minimize; +struct gssp_in_token { + struct page **pages; + unsigned int page_base; + unsigned int page_len; }; -enum rpi_firmware_clk_id { - RPI_FIRMWARE_EMMC_CLK_ID = 1, - RPI_FIRMWARE_UART_CLK_ID = 2, - RPI_FIRMWARE_ARM_CLK_ID = 3, - RPI_FIRMWARE_CORE_CLK_ID = 4, - RPI_FIRMWARE_V3D_CLK_ID = 5, - RPI_FIRMWARE_H264_CLK_ID = 6, - RPI_FIRMWARE_ISP_CLK_ID = 7, - RPI_FIRMWARE_SDRAM_CLK_ID = 8, - RPI_FIRMWARE_PIXEL_CLK_ID = 9, - RPI_FIRMWARE_PWM_CLK_ID = 10, - RPI_FIRMWARE_HEVC_CLK_ID = 11, - RPI_FIRMWARE_EMMC2_CLK_ID = 12, - RPI_FIRMWARE_M2MC_CLK_ID = 13, - RPI_FIRMWARE_PIXEL_BVB_CLK_ID = 14, - RPI_FIRMWARE_VEC_CLK_ID = 15, - RPI_FIRMWARE_NUM_CLK_ID = 16, +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 raspberrypi_clk; +struct gssx_cb; -struct raspberrypi_clk_data { - struct clk_hw hw; - unsigned int id; - struct raspberrypi_clk_variant *variant; - struct raspberrypi_clk *rpi; +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 raspberrypi_clk { - struct device *dev; - struct rpi_firmware *firmware; - struct platform_device *cpufreq; +struct gssx_cb { + u64 initiator_addrtype; + gssx_buffer initiator_address; + u64 acceptor_addrtype; + gssx_buffer acceptor_address; + gssx_buffer application_data; }; -struct rpi_firmware_get_clocks_response { - u32 parent; - u32 id; +struct gssx_res_accept_sec_context { + struct gssx_status status; + struct gssx_ctx *context_handle; + gssx_buffer *output_token; + struct gssx_option_array options; }; -struct raspberrypi_firmware_prop { - __le32 id; - __le32 val; - __le32 disable_turbo; +struct arm_delay_ops { + void (*delay)(unsigned long); + void (*const_udelay)(unsigned long); + void (*udelay)(unsigned long); + unsigned long ticks_per_jiffy; }; -struct clk_pllv2 { - struct clk_hw hw; - void *base; +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 mmp_clk_pll { - struct clk_hw hw; - unsigned long default_rate; - void *enable_reg; - u32 enable; - void *reg; - u8 shift; - unsigned long input_rate; - void *postdiv_reg; - u8 postdiv_shift; +struct cpio_data { + void *data; + size_t size; + char name[18]; }; -enum exynos4_soc { - EXYNOS4210 = 0, - EXYNOS4212 = 1, - EXYNOS4412 = 2, +struct fprop_local_single { + unsigned long events; + unsigned int period; + raw_spinlock_t lock; }; -enum exynos4_plls { - apll___4 = 0, - mpll___4 = 1, - epll___4 = 2, - vpll___3 = 3, - nr_plls___4 = 4, -}; +struct exynos_wkup_irq; -struct dma_chan_tbl_ent { - struct dma_chan *chan; +struct exynos_pm_data { + const struct exynos_wkup_irq *wkup_irq; + unsigned int wake_disable_mask; + void (*pm_prepare)(); + void (*pm_resume_prepare)(); + void (*pm_resume)(); + int (*pm_suspend)(); + int (*cpu_suspend)(unsigned long); }; -struct dmaengine_unmap_pool { - struct kmem_cache *cache; - const char *name; - mempool_t *pool; - size_t size; +struct exynos_wkup_irq { + unsigned int hwirq; + u32 mask; }; -struct scpsys_domain_data; +struct exynos_pm_state { + int cpu_state; + unsigned int pmu_spare3; + void *sysram_base; + phys_addr_t sysram_phys; + bool secure_firmware; +}; -struct scpsys_soc_data { - const struct scpsys_domain_data *domains_data; - int num_domains; +struct omap_hwmod_soc_ops { + void (*enable_module)(struct omap_hwmod *); + int (*disable_module)(struct omap_hwmod *); + int (*wait_target_ready)(struct omap_hwmod *); + int (*assert_hardreset)(struct omap_hwmod *, struct omap_hwmod_rst_info *); + int (*deassert_hardreset)(struct omap_hwmod *, struct omap_hwmod_rst_info *); + int (*is_hardreset_asserted)(struct omap_hwmod *, struct omap_hwmod_rst_info *); + int (*init_clkdm)(struct omap_hwmod *); + void (*update_context_lost)(struct omap_hwmod *); + int (*get_context_lost)(struct omap_hwmod *); + int (*disable_direct_prcm)(struct omap_hwmod *); + u32 (*xlate_clkctrl)(struct omap_hwmod *); }; -struct scpsys_bus_prot_data { - u32 bus_prot_mask; - u32 bus_prot_set; - u32 bus_prot_clr; - u32 bus_prot_sta; - bool bus_prot_reg_update; - bool ignore_clr_ack; +struct omap_hwmod_reset { + const char *match; + int len; + int (*reset)(struct omap_hwmod *); }; -struct scpsys_domain_data { - const char *name; - u32 sta_mask; - int ctl_offs; - u32 sram_pdn_bits; - u32 sram_pdn_ack_bits; - int ext_buck_iso_offs; - u32 ext_buck_iso_mask; - u8 caps; - const struct scpsys_bus_prot_data bp_infracfg[6]; - const struct scpsys_bus_prot_data bp_smi[6]; - int pwr_sta_offs; - int pwr_sta2nd_offs; +struct clkctrl_provider { + int num_addrs; + u32 *addr; + u32 *size; + struct device_node *node; + struct list_head link; }; -struct scpsys; +typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *); -struct scpsys_domain { - struct generic_pm_domain genpd; - const struct scpsys_domain_data *data; - struct scpsys *scpsys; - int num_clks; - struct clk_bulk_data *clks; - int num_subsys_clks; - struct clk_bulk_data *subsys_clks; - struct regmap *infracfg; - struct regmap *smi; - struct regulator *supply; - long: 32; -}; +typedef void (*btf_trace_irq_handler_exit)(void *, int, struct irqaction *, int); -struct scpsys { - struct device *dev; - struct regmap *base; - const struct scpsys_soc_data *soc_data; - struct genpd_onecell_data pd_data; - struct generic_pm_domain *domains[0]; -}; +typedef void (*btf_trace_softirq_entry)(void *, unsigned int); -struct ab8500_ext_regulator_cfg; +typedef void (*btf_trace_softirq_exit)(void *, unsigned int); -struct ab8500_ext_regulator_info { - struct device *dev; - struct regulator_desc desc; - struct ab8500_ext_regulator_cfg *cfg; - u8 update_bank; - u8 update_reg; - u8 update_mask; - u8 update_val; - u8 update_val_hp; - u8 update_val_lp; - u8 update_val_hw; +typedef void (*btf_trace_softirq_raise)(void *, unsigned int); + +typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *); + +typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); + +typedef struct { + unsigned int __softirq_pending; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +} irq_cpustat_t; + +struct tasklet_head { + struct tasklet_struct *head; + struct tasklet_struct **tail; }; -struct ab8500_ext_regulator_cfg { - bool hwreq; +struct trace_event_raw_irq_handler_entry { + struct trace_entry ent; + int irq; + u32 __data_loc_name; + char __data[0]; }; -enum ab8500_ext_regulator_id { - AB8500_EXT_SUPPLY1 = 0, - AB8500_EXT_SUPPLY2 = 1, - AB8500_EXT_SUPPLY3 = 2, - AB8500_NUM_EXT_REGULATORS = 3, +struct trace_event_raw_irq_handler_exit { + struct trace_entry ent; + int irq; + int ret; + char __data[0]; }; -enum tps65217_regulator_id { - TPS65217_DCDC_1 = 0, - TPS65217_DCDC_2 = 1, - TPS65217_DCDC_3 = 2, - TPS65217_LDO_1 = 3, - TPS65217_LDO_2 = 4, - TPS65217_LDO_3 = 5, - TPS65217_LDO_4 = 6, +struct trace_event_raw_softirq { + struct trace_entry ent; + unsigned int vec; + char __data[0]; }; -struct vt_spawn_console { - spinlock_t lock; - struct pid *pid; - int sig; +struct trace_event_raw_tasklet { + struct trace_entry ent; + void *tasklet; + void *func; + char __data[0]; }; -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; - long: 1; - unsigned char modeflags: 5; +struct trace_event_data_offsets_irq_handler_entry { + u32 name; }; -typedef void k_handler_fn(struct vc_data *, unsigned char, char); +struct trace_event_data_offsets_irq_handler_exit {}; -typedef void fn_handler_fn(struct vc_data *); +struct trace_event_data_offsets_softirq {}; -struct kbd_led_trigger { - struct led_trigger trigger; - unsigned int mask; -}; +struct trace_event_data_offsets_tasklet {}; -struct getset_keycode_data { - struct input_keymap_entry ke; - int error; +enum rtmutex_chainwalk { + RT_MUTEX_MIN_CHAINWALK = 0, + RT_MUTEX_FULL_CHAINWALK = 1, }; -struct keyboard_notifier_param { - struct vc_data *vc; - int down; - int shift; - int ledstate; - unsigned int value; +enum msi_desc_filter { + MSI_DESC_ALL = 0, + MSI_DESC_NOTASSOCIATED = 1, + MSI_DESC_ASSOCIATED = 2, }; -struct kbdiacr { - unsigned char diacr; - unsigned char base; - unsigned char result; +struct msi_ctrl { + unsigned int domid; + unsigned int first; + unsigned int last; + unsigned int nirqs; }; -struct kbdiacrs { - unsigned int kb_cnt; - struct kbdiacr kbdiacr[256]; +enum cgroup_filetype { + CGROUP_FILE_PROCS = 0, + CGROUP_FILE_TASKS = 1, }; -struct kbdiacrsuc { - unsigned int kb_cnt; - struct kbdiacruc kbdiacruc[256]; +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 = 8, + Opt_nofavordynmods = 9, }; -enum serdev_parity { - SERDEV_PARITY_NONE = 0, - SERDEV_PARITY_EVEN = 1, - SERDEV_PARITY_ODD = 2, +struct cgrp_cset_link { + struct cgroup *cgrp; + struct css_set *cset; + struct list_head cset_link; + struct list_head cgrp_link; }; -struct serdev_controller; - -struct serdev_device_ops; - -struct serdev_device { - struct device dev; - int nr; - struct serdev_controller *ctrl; - const struct serdev_device_ops *ops; - struct completion write_comp; - struct mutex write_lock; +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 serdev_controller_ops; +struct cgroup_fs_context { + struct kernfs_fs_context kfc; + struct cgroup_root *root; + struct cgroup_namespace *ns; + unsigned int flags; + bool cpuset_clone_children; + bool none; + bool all_ss; + u16 subsys_mask; + char *name; + char *release_agent; +}; -struct serdev_controller { - struct device dev; - unsigned int nr; - struct serdev_device *serdev; - const struct serdev_controller_ops *ops; - long: 32; +struct cgroup_mgctx { + struct list_head preloaded_src_csets; + struct list_head preloaded_dst_csets; + struct cgroup_taskset tset; + u16 ss_mask; }; -struct serdev_controller_ops { - int (*write_buf)(struct serdev_controller *, const unsigned char *, size_t); - void (*write_flush)(struct serdev_controller *); - int (*write_room)(struct serdev_controller *); - int (*open)(struct serdev_controller *); - void (*close)(struct serdev_controller *); - void (*set_flow_control)(struct serdev_controller *, bool); - int (*set_parity)(struct serdev_controller *, enum serdev_parity); - unsigned int (*set_baudrate)(struct serdev_controller *, unsigned int); - void (*wait_until_sent)(struct serdev_controller *, long); - int (*get_tiocm)(struct serdev_controller *); - int (*set_tiocm)(struct serdev_controller *, unsigned int, unsigned int); - int (*break_ctl)(struct serdev_controller *, unsigned int); +struct cgroup_file_ctx { + struct cgroup_namespace *ns; + struct { + void *trigger; + } psi; + struct { + bool started; + struct css_task_iter iter; + } procs; + struct { + struct cgroup_pidlist *pidlist; + } procs1; }; -struct serdev_device_ops { - int (*receive_buf)(struct serdev_device *, const unsigned char *, size_t); - void (*write_wakeup)(struct serdev_device *); +struct cgroupstats { + __u64 nr_sleeping; + __u64 nr_running; + __u64 nr_stopped; + __u64 nr_uninterruptible; + __u64 nr_io_wait; }; -struct serdev_device_driver { - struct device_driver driver; - int (*probe)(struct serdev_device *); - void (*remove)(struct serdev_device *); +struct action_cache { + unsigned long allow_native[15]; }; -struct omap_rng_dev; +struct notification; -struct omap_rng_pdata { - u16 *regs; - u32 data_size; - u32 (*data_present)(struct omap_rng_dev *); - int (*init)(struct omap_rng_dev *); - void (*cleanup)(struct omap_rng_dev *); +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 omap_rng_dev { - void *base; - struct device *dev; - const struct omap_rng_pdata *pdata; - struct hwrng rng; - struct clk *clk; - struct clk *clk_reg; +struct notification { + atomic_t requests; + u32 flags; + u64 next_id; + struct list_head notifications; }; -enum { - RNG_OUTPUT_0_REG = 0, - RNG_OUTPUT_1_REG = 1, - RNG_OUTPUT_2_REG = 2, - RNG_OUTPUT_3_REG = 3, - RNG_STATUS_REG = 4, - RNG_INTMASK_REG = 5, - RNG_INTACK_REG = 6, - RNG_CONTROL_REG = 7, - RNG_CONFIG_REG = 8, - RNG_ALARMCNT_REG = 9, - RNG_FROENABLE_REG = 10, - RNG_FRODETUNE_REG = 11, - RNG_ALARMMASK_REG = 12, - RNG_ALARMSTOP_REG = 13, - RNG_REV_REG = 14, - RNG_SYSCONFIG_REG = 15, +struct seccomp_log_name { + u32 log; + const char *name; }; -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; +enum notify_state { + SECCOMP_NOTIFY_INIT = 0, + SECCOMP_NOTIFY_SENT = 1, + SECCOMP_NOTIFY_REPLIED = 2, }; -struct iommu_group_attribute { - struct attribute attr; - ssize_t (*show)(struct iommu_group *, char *); - ssize_t (*store)(struct iommu_group *, const char *, size_t); +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; }; -enum iommu_fault_type { - IOMMU_FAULT_DMA_UNRECOV = 1, - IOMMU_FAULT_PAGE_REQ = 2, +struct seccomp_data; + +struct seccomp_knotif { + struct task_struct *task; + long: 32; + 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; + long: 32; }; -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 seccomp_data { + int nr; + __u32 arch; + __u64 instruction_pointer; + __u64 args[6]; }; -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 seccomp_notif_sizes { + __u16 seccomp_notif; + __u16 seccomp_notif_resp; + __u16 seccomp_data; }; -enum { - IOMMU_SET_DOMAIN_MUST_SUCCEED = 1, +struct seccomp_notif { + __u64 id; + __u32 pid; + __u32 flags; + struct seccomp_data data; }; -struct group_device { - struct list_head list; - struct device *dev; - char *name; +struct seccomp_notif_resp { + __u64 id; + __s64 val; + __s32 error; + __u32 flags; }; -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 seccomp_notif_addfd { + __u64 id; + __u32 flags; + __u32 srcfd; + __u32 newfd; + __u32 newfd_flags; }; -struct fsl_mc_io; +struct syscall_trace_enter { + struct trace_entry ent; + int nr; + unsigned long args[0]; +}; -struct fsl_mc_device_irq; +struct syscall_trace_exit { + struct trace_entry ent; + int nr; + long ret; +}; -struct fsl_mc_resource; +struct syscall_tp_t { + struct trace_entry ent; + int syscall_nr; + unsigned long args[6]; + long: 32; +}; -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 syscall_tp_t___2 { + struct trace_entry ent; + int syscall_nr; + unsigned long ret; }; -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; +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; union { - struct mutex mutex; - raw_spinlock_t spinlock; + struct pcpu_freelist freelist; + struct bpf_lru lru; }; + struct htab_elem * __attribute__((btf_type_tag("percpu"))) *extra_elems; + long: 32; + 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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -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 bucket { + struct hlist_nulls_head head; + raw_spinlock_t raw_lock; }; -struct fsl_mc_device_irq { - unsigned int virq; - struct fsl_mc_device *mc_dev; - u8 dev_irq_index; - struct fsl_mc_resource resource; +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; + char key[0]; }; -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 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 group_for_pci_data { - struct pci_dev *pdev; - struct iommu_group *group; +struct bpf_queue_stack { + struct bpf_map map; + raw_spinlock_t lock; + u32 head; + u32 tail; + u32 size; + char elements[0]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct drm_tegra_channel_open { - __u32 host1x_class; - __u32 flags; - __u32 context; - __u32 version; - __u32 capabilities; - __u32 padding; +struct reuseport_array { + struct bpf_map map; + struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0]; }; -struct drm_tegra_channel_close { - __u32 context; - __u32 padding; -}; +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); -struct drm_tegra_channel_map { - __u32 context; - __u32 handle; - __u32 flags; - __u32 mapping; -}; +typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void __attribute__((btf_type_tag("percpu"))) *); -struct drm_tegra_channel_unmap { - __u32 context; - __u32 mapping; -}; +typedef void (*btf_trace_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_t); -struct drm_tegra_syncpoint_allocate { - __u32 id; - __u32 padding; -}; +typedef void (*btf_trace_percpu_create_chunk)(void *, void *); -struct drm_tegra_syncpoint_wait { - __s64 timeout_ns; - __u32 id; - __u32 threshold; - __u32 value; - __u32 padding; -}; +typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *); -struct regmap_irq_chip_data { - struct mutex lock; - struct irq_chip irq_chip; - struct regmap *map; - const struct regmap_irq_chip *chip; - int irq_base; - struct irq_domain *domain; - int irq; - int wake_count; - void *status_reg_buf; - unsigned int *main_status_buf; - unsigned int *status_buf; - unsigned int *mask_buf; - unsigned int *mask_buf_def; - unsigned int *wake_buf; - unsigned int *type_buf; - unsigned int *type_buf_def; - unsigned int **config_buf; - unsigned int irq_reg_stride; - unsigned int (*get_irq_reg)(struct regmap_irq_chip_data *, unsigned int, int); - unsigned int clear_status: 1; +enum pcpu_fc { + PCPU_FC_AUTO = 0, + PCPU_FC_EMBED = 1, + PCPU_FC_PAGE = 2, + PCPU_FC_NR = 3, }; -struct max8998_reg_dump { - u8 addr; - u8 val; +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; }; -enum { - TYPE_MAX8998 = 0, - TYPE_LP3974 = 1, - TYPE_LP3979 = 2, +struct pcpu_chunk { + struct list_head list; + int free_bytes; + struct pcpu_block_md chunk_md; + unsigned long *bound_map; + long: 32; + long: 32; + long: 32; + long: 32; + void *base_addr; + unsigned long *alloc_map; + struct pcpu_block_md *md_blocks; + void *data; + bool immutable; + bool isolated; + int start_offset; + int end_offset; + struct obj_cgroup **obj_cgroups; + int nr_pages; + int nr_populated; + int nr_empty_pop_pages; + unsigned long populated[0]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct max8998_regulator_data; +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 max8998_platform_data { - struct max8998_regulator_data *regulators; - int num_regulators; - unsigned int irq_base; - int ono; - bool buck_voltage_lock; - int buck1_voltage[4]; - int buck2_voltage[2]; - int buck1_set1; - int buck1_set2; - int buck1_default_idx; - int buck2_set3; - int buck2_default_idx; - bool wakeup; - bool rtc_delay; - int eoc; - int restart; - int timeout; +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 max8998_regulator_data { - int id; - struct regulator_init_data *initdata; - struct device_node *reg_node; +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 max8998_dev { - struct device *dev; - struct max8998_platform_data *pdata; - struct i2c_client *i2c; - struct i2c_client *rtc; - struct mutex iolock; - struct mutex irqlock; - unsigned int irq_base; - struct irq_domain *irq_domain; - int irq; - int ono; - u8 irq_masks_cur[4]; - u8 irq_masks_cache[4]; - unsigned long type; - bool wakeup; +struct trace_event_raw_percpu_create_chunk { + struct trace_entry ent; + void *base_addr; + char __data[0]; }; -enum scsi_timeouts { - SCSI_DEFAULT_EH_TIMEOUT = 1000, +struct trace_event_raw_percpu_destroy_chunk { + struct trace_entry ent; + void *base_addr; + char __data[0]; }; -struct async_scan_data { - struct list_head list; - struct Scsi_Host *shost; - struct completion prev_finished; +struct pcpu_group_info { + int nr_units; + unsigned long base_offset; + unsigned int *cpu_map; }; -struct fixed_partitions_quirks { - int (*post_parse)(struct mtd_info *, struct mtd_partition *, int); +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 chip_probe { - char *name; - int (*probe_chip)(struct map_info *, __u32, unsigned long *, struct cfi_private *); -}; +struct trace_event_data_offsets_percpu_alloc_percpu {}; -typedef struct mtd_info *cfi_cmdset_fn_t(struct map_info *, int); +struct trace_event_data_offsets_percpu_free_percpu {}; -struct onfi_ext_ecc_info { - u8 ecc_bits; - u8 codeword_size; - __le16 bb_per_lun; - __le16 block_endurance; - u8 reserved[2]; +struct trace_event_data_offsets_percpu_alloc_percpu_fail {}; + +struct trace_event_data_offsets_percpu_create_chunk {}; + +struct trace_event_data_offsets_percpu_destroy_chunk {}; + +typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); + +typedef int pcpu_fc_cpu_to_node_fn_t(int); + +struct fsxattr { + __u32 fsx_xflags; + __u32 fsx_extsize; + __u32 fsx_nextents; + __u32 fsx_projid; + __u32 fsx_cowextsize; + unsigned char fsx_pad[8]; }; -struct onfi_ext_section { - u8 type; - u8 length; +struct file_clone_range { + __s64 src_fd; + __u64 src_offset; + __u64 src_length; + __u64 dest_offset; }; -struct onfi_ext_param_page { - __le16 crc; - u8 sig[4]; - u8 reserved0[10]; - struct onfi_ext_section sections[8]; +struct space_resv { + __s16 l_type; + __s16 l_whence; + long: 32; + __s64 l_start; + __s64 l_len; + __s32 l_sysid; + __u32 l_pid; + __s32 l_pad[4]; }; -struct pl35x_nandc { - struct device *dev; - void *conf_regs; - void *io_regs; - struct nand_controller controller; - struct list_head chips; - struct nand_chip *selected_chip; - unsigned long assigned_cs; - u8 *ecc_buf; +struct epitem; + +struct eventpoll { + struct mutex mtx; + wait_queue_head_t wq; + wait_queue_head_t poll_wait; + struct list_head rdllist; + rwlock_t lock; + struct rb_root_cached rbr; + struct epitem *ovflist; + struct wakeup_source *ws; + struct user_struct *user; + struct file *file; + u64 gen; + struct hlist_head refs; + refcount_t refcount; + unsigned int napi_id; + long: 32; }; -struct pl35x_nand { - struct list_head node; - struct nand_chip chip; - unsigned int cs; - unsigned int addr_cycles; - u32 ecc_cfg; - u32 timings; +struct epoll_filefd { + struct file *file; + int fd; }; -struct pl35x_nand_timings { - unsigned int t_rc: 4; - unsigned int t_wc: 4; - unsigned int t_rea: 3; - unsigned int t_wp: 3; - unsigned int t_clr: 3; - unsigned int t_ar: 3; - unsigned int t_rr: 4; - unsigned int rsvd: 8; +struct epoll_event { + __poll_t events; + long: 32; + __u64 data; }; -enum orion_spi_type { - ORION_SPI = 0, - ARMADA_SPI = 1, +struct eppoll_entry; + +struct epitem { + union { + struct rb_node rbn; + struct callback_head rcu; + }; + struct list_head rdllink; + struct epitem *next; + struct epoll_filefd ffd; + bool dying; + struct eppoll_entry *pwqlist; + struct eventpoll *ep; + struct hlist_node fllink; + struct wakeup_source __attribute__((btf_type_tag("rcu"))) *ws; + struct epoll_event event; }; -struct orion_spi_dev { - enum orion_spi_type typ; - unsigned long max_hz; - unsigned int min_divisor; - unsigned int max_divisor; - u32 prescale_mask; - bool is_errata_50mhz_ac; +struct eppoll_entry { + struct eppoll_entry *next; + struct epitem *base; + wait_queue_entry_t wait; + wait_queue_head_t *whead; }; -struct orion_direct_acc { - void *vaddr; - u32 size; +struct epitems_head { + struct hlist_head epitems; + struct epitems_head *next; }; -struct orion_child_options { - struct orion_direct_acc direct_access; +struct ep_pqueue { + poll_table pt; + struct epitem *epi; }; -struct orion_spi { - struct spi_controller *master; - void *base; - struct clk *clk; - struct clk *axi_clk; - const struct orion_spi_dev *devdata; - struct device *dev; - struct orion_child_options child[8]; +struct pending_reservation { + struct rb_node rb_node; + ext4_lblk_t lclu; }; -enum { - DP83867_PORT_MIRROING_KEEP = 0, - DP83867_PORT_MIRROING_EN = 1, - DP83867_PORT_MIRROING_DIS = 2, +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 dp83867_private { - u32 rx_id_delay; - u32 tx_id_delay; - u32 tx_fifo_depth; - u32 rx_fifo_depth; - int io_impedance; - int port_mirroring; - bool rxctrl_strap_quirk; - bool set_clk_output; - u32 clk_output_sel; - bool sgmii_ref_clk_en; +struct squashfs_xz { + struct xz_dec *state; + struct xz_buf buf; }; -struct fec_stat { - char name[32]; - u16 offset; +struct comp_opts { + int dict_size; }; -struct fec_devinfo { - u32 quirks; +struct disk_comp_opts { + __le32 dictionary_size; + __le32 flags; }; -enum { - RX_XDP_REDIRECT = 0, - RX_XDP_PASS = 1, - RX_XDP_DROP = 2, - RX_XDP_TX = 3, - RX_XDP_TX_ERRORS = 4, - TX_XDP_XMIT = 5, - TX_XDP_XMIT_ERRORS = 6, - XDP_STATS_TOTAL = 7, +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, }; -struct bufdesc_ex { - struct bufdesc desc; - __le32 cbd_esc; - __le32 cbd_prot; - __le32 cbd_bdu; - __le32 ts; - __le16 res0[4]; +enum limit_by4 { + NFS4_LIMIT_SIZE = 1, + NFS4_LIMIT_BLOCKS = 2, }; -struct fec_platform_data { - phy_interface_t phy; - unsigned char mac[6]; - void (*sleep_mode_enable)(int); +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, }; -struct cdc_ncm_stats { - char stat_string[32]; - int sizeof_stat; - int stat_offset; +enum lock_type4 { + NFS4_UNLOCK_LT = 0, + NFS4_READ_LT = 1, + NFS4_WRITE_LT = 2, + NFS4_READW_LT = 3, + NFS4_WRITEW_LT = 4, }; -struct usb_cdc_ncm_ntb_parameters { - __le16 wLength; - __le16 bmNtbFormatsSupported; - __le32 dwNtbInMaxSize; - __le16 wNdpInDivisor; - __le16 wNdpInPayloadRemainder; - __le16 wNdpInAlignment; - __le16 wPadding1; - __le32 dwNtbOutMaxSize; - __le16 wNdpOutDivisor; - __le16 wNdpOutPayloadRemainder; - __le16 wNdpOutAlignment; - __le16 wNtbOutMaxDatagrams; +enum data_content4 { + NFS4_CONTENT_DATA = 0, + NFS4_CONTENT_HOLE = 1, }; -struct usb_cdc_ncm_ndp16; +struct compound_hdr { + int32_t status; + uint32_t nops; + __be32 *nops_p; + uint32_t taglen; + char *tag; + uint32_t replen; + u32 minorversion; +}; -struct usb_cdc_ncm_ndp32; +struct nfs42_falloc_res { + struct nfs4_sequence_res seq_res; + unsigned int status; + struct nfs_fattr *falloc_fattr; + const struct nfs_server *falloc_server; +}; -struct cdc_ncm_ctx { - struct usb_cdc_ncm_ntb_parameters ncm_parm; +struct nfs42_offload_status_res { + struct nfs4_sequence_res osr_seq_res; + uint64_t osr_count; + int osr_status; long: 32; - struct hrtimer tx_timer; - struct tasklet_struct bh; - struct usbnet *dev; - const struct usb_cdc_ncm_desc *func_desc; - const struct usb_cdc_mbim_desc *mbim_desc; - const struct usb_cdc_mbim_extended_desc *mbim_extended_desc; - const struct usb_cdc_ether_desc *ether_desc; - struct usb_interface *control; - struct usb_interface *data; - struct sk_buff *tx_curr_skb; - struct sk_buff *tx_rem_skb; - __le32 tx_rem_sign; - spinlock_t mtx; - atomic_t stop; - int drvflags; - u32 timer_interval; - u32 max_ndp_size; - u8 is_ndp16; - union { - struct usb_cdc_ncm_ndp16 *delayed_ndp16; - struct usb_cdc_ncm_ndp32 *delayed_ndp32; - }; - u32 tx_timer_pending; - u32 tx_curr_frame_num; - u32 rx_max; - u32 tx_max; - u32 tx_curr_size; - u32 tx_low_mem_max_cnt; - u32 tx_low_mem_val; - u32 max_datagram_size; - u16 tx_max_datagrams; - u16 tx_remainder; - u16 tx_modulus; - u16 tx_ndp_modulus; - u16 tx_seq; - u16 rx_seq; - u16 min_tx_pkt; - u32 tx_curr_frame_payload; - u32 tx_reason_ntb_full; - u32 tx_reason_ndp_full; - u32 tx_reason_timeout; - u32 tx_reason_max_datagram; - u64 tx_overhead; - u64 tx_ntbs; - u64 rx_overhead; - u64 rx_ntbs; }; -struct usb_cdc_ncm_dpe16 { - __le16 wDatagramIndex; - __le16 wDatagramLength; +struct nfs42_device_error { + struct nfs4_deviceid dev_id; + int status; + enum nfs_opnum4 opnum; }; -struct usb_cdc_ncm_ndp16 { - __le32 dwSignature; - __le16 wLength; - __le16 wNextNdpIndex; - struct usb_cdc_ncm_dpe16 dpe16[0]; +struct nfs42_layout_error { + __u64 offset; + __u64 length; + nfs4_stateid stateid; + struct nfs42_device_error errors[1]; + long: 32; }; -struct usb_cdc_ncm_dpe32 { - __le32 dwDatagramIndex; - __le32 dwDatagramLength; +struct nfs42_getxattrres { + struct nfs4_sequence_res seq_res; + size_t xattr_len; }; -struct usb_cdc_ncm_ndp32 { - __le32 dwSignature; - __le16 wLength; - __le16 wReserved6; - __le32 dwNextNdpIndex; - __le32 dwReserved12; - struct usb_cdc_ncm_dpe32 dpe32[0]; +struct nfs42_setxattrargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + const u32 *bitmask; + const char *xattr_name; + u32 xattr_flags; + size_t xattr_len; + struct page **xattr_pages; }; -struct usb_cdc_ncm_nth16 { - __le32 dwSignature; - __le16 wHeaderLength; - __le16 wSequence; - __le16 wBlockLength; - __le16 wNdpIndex; +struct nfs42_listxattrsargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + u32 count; + u64 cookie; + struct page **xattr_pages; + long: 32; }; -struct usb_cdc_ncm_nth32 { - __le32 dwSignature; - __le16 wHeaderLength; - __le16 wSequence; - __le32 dwBlockLength; - __le32 dwNdpIndex; +struct nfs42_listxattrsres { + struct nfs4_sequence_res seq_res; + struct page *scratch; + void *xattr_buf; + size_t xattr_len; + long: 32; + u64 cookie; + bool eof; + size_t copied; }; -struct usb_cdc_speed_change { - __le32 DLBitRRate; - __le32 ULBitRate; +struct read_plus_segment { + enum data_content4 type; + long: 32; + uint64_t offset; + union { + struct { + uint64_t length; + } hole; + struct { + uint32_t length; + unsigned int from; + } data; + }; }; -struct usb_cdc_notification { - __u8 bmRequestType; - __u8 bNotificationType; - __le16 wValue; - __le16 wIndex; - __le16 wLength; +struct nfs42_clone_res { + struct nfs4_sequence_res seq_res; + unsigned int rpc_status; + struct nfs_fattr *dst_fattr; + const struct nfs_server *server; }; -enum dwc3_omap_utmi_mode { - DWC3_OMAP_UTMI_MODE_UNKNOWN = 0, - DWC3_OMAP_UTMI_MODE_HW = 1, - DWC3_OMAP_UTMI_MODE_SW = 2, +struct nfs42_layouterror_args { + struct nfs4_sequence_args seq_args; + struct inode *inode; + unsigned int num_errors; + struct nfs42_layout_error errors[5]; }; -enum omap_dwc3_vbus_id_status { - OMAP_DWC3_ID_FLOAT = 0, - OMAP_DWC3_ID_GROUND = 1, - OMAP_DWC3_VBUS_OFF = 2, - OMAP_DWC3_VBUS_VALID = 3, +struct nfs42_layouterror_res { + struct nfs4_sequence_res seq_res; + unsigned int num_errors; + int rpc_status; }; -struct dwc3_omap { - struct device *dev; - int irq; - void *base; - u32 utmi_otg_ctrl; - u32 utmi_otg_offset; - u32 irqmisc_offset; - u32 irq_eoi_offset; - u32 debug_offset; - u32 irq0_offset; - struct extcon_dev *edev; - struct notifier_block vbus_nb; - struct notifier_block id_nb; - struct regulator *vbus_reg; +struct nfs42_getxattrargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + const char *xattr_name; + size_t xattr_len; + struct page **xattr_pages; }; -struct urb_priv___2 { - struct ed *ed; - u16 length; - u16 td_cnt; - struct list_head pending; - struct td *td[0]; +struct nfs42_setxattrres { + struct nfs4_sequence_res seq_res; + struct nfs4_change_info cinfo; + struct nfs_fattr *fattr; + const struct nfs_server *server; }; -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 nfs42_removexattrargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + const char *xattr_name; }; -struct sun4i_ts_data { - struct device *dev; - struct input_dev *input; - void *base; - unsigned int irq; - bool ignore_fifo_data; - int temp_data; - int temp_offset; - int temp_step; +struct nfs42_removexattrres { + struct nfs4_sequence_res seq_res; + struct nfs4_change_info cinfo; }; -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); +struct scomp_scratch { + spinlock_t lock; + void *src; + void *dst; +}; -typedef void (*btf_trace_i2c_result)(void *, const struct i2c_adapter *, int, int); +struct acomp_req; -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 crypto_acomp { + int (*compress)(struct acomp_req *); + int (*decompress)(struct acomp_req *); + void (*dst_free)(struct scatterlist *); + unsigned int reqsize; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct crypto_tfm base; }; -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 acomp_req { + struct crypto_async_request base; + struct scatterlist *src; + struct scatterlist *dst; + unsigned int slen; + unsigned int dlen; + u32 flags; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + void *__ctx[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 crypto_report_comp { + char type[64]; }; -struct trace_event_raw_i2c_result { - struct trace_entry ent; - int adapter_nr; - __u16 nr_msgs; - __s16 ret; - char __data[0]; -}; +struct sg_io_v4; -struct i2c_devinfo { - struct list_head list; - int busnum; - struct i2c_board_info board_info; -}; +typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, unsigned int); -struct trace_event_data_offsets_i2c_write { - u32 buf; +struct bsg_device { + struct request_queue *queue; + long: 32; + struct device device; + struct cdev cdev; + int max_queue; + unsigned int timeout; + unsigned int reserved_size; + bsg_sg_io_fn *sg_io_fn; + long: 32; }; -struct trace_event_data_offsets_i2c_reply { - u32 buf; +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 trace_event_data_offsets_i2c_read {}; +struct io_epoll { + struct file *file; + int epfd; + int op; + int fd; + struct epoll_event event; +}; -struct trace_event_data_offsets_i2c_result {}; +struct io_futex { + struct file *file; + union { + u32 __attribute__((btf_type_tag("user"))) *uaddr; + struct futex_waitv __attribute__((btf_type_tag("user"))) *uwaitv; + }; + unsigned long futex_val; + unsigned long futex_mask; + unsigned long futexv_owned; + u32 futex_flags; + unsigned int futex_nr; + bool futexv_unqueued; +}; -struct i2c_cmd_arg { - unsigned int cmd; - void *arg; +struct io_futex_data { + union { + struct futex_q q; + struct io_cache_entry cache; + }; + struct io_kiocb *req; + long: 32; }; -struct kvm_ptp_clock { - struct ptp_clock *ptp_clock; - struct ptp_clock_info caps; +struct syscall_info { + __u64 sp; + struct seccomp_data data; }; -enum regfield_ids { - VER_MAJOR = 0, - VER_MINOR = 1, - VER_STEP = 2, - TSENS_EN = 3, - TSENS_SW_RST = 4, - SENSOR_EN = 5, - CODE_OR_TEMP = 6, - TRDY = 7, - INT_EN = 8, - LAST_TEMP_0 = 9, - LAST_TEMP_1 = 10, - LAST_TEMP_2 = 11, - LAST_TEMP_3 = 12, - LAST_TEMP_4 = 13, - LAST_TEMP_5 = 14, - LAST_TEMP_6 = 15, - LAST_TEMP_7 = 16, - LAST_TEMP_8 = 17, - LAST_TEMP_9 = 18, - LAST_TEMP_10 = 19, - LAST_TEMP_11 = 20, - LAST_TEMP_12 = 21, - LAST_TEMP_13 = 22, - LAST_TEMP_14 = 23, - LAST_TEMP_15 = 24, - VALID_0 = 25, - VALID_1 = 26, - VALID_2 = 27, - VALID_3 = 28, - VALID_4 = 29, - VALID_5 = 30, - VALID_6 = 31, - VALID_7 = 32, - VALID_8 = 33, - VALID_9 = 34, - VALID_10 = 35, - VALID_11 = 36, - VALID_12 = 37, - VALID_13 = 38, - VALID_14 = 39, - VALID_15 = 40, - LOWER_STATUS_0 = 41, - LOWER_STATUS_1 = 42, - LOWER_STATUS_2 = 43, - LOWER_STATUS_3 = 44, - LOWER_STATUS_4 = 45, - LOWER_STATUS_5 = 46, - LOWER_STATUS_6 = 47, - LOWER_STATUS_7 = 48, - LOWER_STATUS_8 = 49, - LOWER_STATUS_9 = 50, - LOWER_STATUS_10 = 51, - LOWER_STATUS_11 = 52, - LOWER_STATUS_12 = 53, - LOWER_STATUS_13 = 54, - LOWER_STATUS_14 = 55, - LOWER_STATUS_15 = 56, - LOW_INT_STATUS_0 = 57, - LOW_INT_STATUS_1 = 58, - LOW_INT_STATUS_2 = 59, - LOW_INT_STATUS_3 = 60, - LOW_INT_STATUS_4 = 61, - LOW_INT_STATUS_5 = 62, - LOW_INT_STATUS_6 = 63, - LOW_INT_STATUS_7 = 64, - LOW_INT_STATUS_8 = 65, - LOW_INT_STATUS_9 = 66, - LOW_INT_STATUS_10 = 67, - LOW_INT_STATUS_11 = 68, - LOW_INT_STATUS_12 = 69, - LOW_INT_STATUS_13 = 70, - LOW_INT_STATUS_14 = 71, - LOW_INT_STATUS_15 = 72, - LOW_INT_CLEAR_0 = 73, - LOW_INT_CLEAR_1 = 74, - LOW_INT_CLEAR_2 = 75, - LOW_INT_CLEAR_3 = 76, - LOW_INT_CLEAR_4 = 77, - LOW_INT_CLEAR_5 = 78, - LOW_INT_CLEAR_6 = 79, - LOW_INT_CLEAR_7 = 80, - LOW_INT_CLEAR_8 = 81, - LOW_INT_CLEAR_9 = 82, - LOW_INT_CLEAR_10 = 83, - LOW_INT_CLEAR_11 = 84, - LOW_INT_CLEAR_12 = 85, - LOW_INT_CLEAR_13 = 86, - LOW_INT_CLEAR_14 = 87, - LOW_INT_CLEAR_15 = 88, - LOW_INT_MASK_0 = 89, - LOW_INT_MASK_1 = 90, - LOW_INT_MASK_2 = 91, - LOW_INT_MASK_3 = 92, - LOW_INT_MASK_4 = 93, - LOW_INT_MASK_5 = 94, - LOW_INT_MASK_6 = 95, - LOW_INT_MASK_7 = 96, - LOW_INT_MASK_8 = 97, - LOW_INT_MASK_9 = 98, - LOW_INT_MASK_10 = 99, - LOW_INT_MASK_11 = 100, - LOW_INT_MASK_12 = 101, - LOW_INT_MASK_13 = 102, - LOW_INT_MASK_14 = 103, - LOW_INT_MASK_15 = 104, - LOW_THRESH_0 = 105, - LOW_THRESH_1 = 106, - LOW_THRESH_2 = 107, - LOW_THRESH_3 = 108, - LOW_THRESH_4 = 109, - LOW_THRESH_5 = 110, - LOW_THRESH_6 = 111, - LOW_THRESH_7 = 112, - LOW_THRESH_8 = 113, - LOW_THRESH_9 = 114, - LOW_THRESH_10 = 115, - LOW_THRESH_11 = 116, - LOW_THRESH_12 = 117, - LOW_THRESH_13 = 118, - LOW_THRESH_14 = 119, - LOW_THRESH_15 = 120, - UPPER_STATUS_0 = 121, - UPPER_STATUS_1 = 122, - UPPER_STATUS_2 = 123, - UPPER_STATUS_3 = 124, - UPPER_STATUS_4 = 125, - UPPER_STATUS_5 = 126, - UPPER_STATUS_6 = 127, - UPPER_STATUS_7 = 128, - UPPER_STATUS_8 = 129, - UPPER_STATUS_9 = 130, - UPPER_STATUS_10 = 131, - UPPER_STATUS_11 = 132, - UPPER_STATUS_12 = 133, - UPPER_STATUS_13 = 134, - UPPER_STATUS_14 = 135, - UPPER_STATUS_15 = 136, - UP_INT_STATUS_0 = 137, - UP_INT_STATUS_1 = 138, - UP_INT_STATUS_2 = 139, - UP_INT_STATUS_3 = 140, - UP_INT_STATUS_4 = 141, - UP_INT_STATUS_5 = 142, - UP_INT_STATUS_6 = 143, - UP_INT_STATUS_7 = 144, - UP_INT_STATUS_8 = 145, - UP_INT_STATUS_9 = 146, - UP_INT_STATUS_10 = 147, - UP_INT_STATUS_11 = 148, - UP_INT_STATUS_12 = 149, - UP_INT_STATUS_13 = 150, - UP_INT_STATUS_14 = 151, - UP_INT_STATUS_15 = 152, - UP_INT_CLEAR_0 = 153, - UP_INT_CLEAR_1 = 154, - UP_INT_CLEAR_2 = 155, - UP_INT_CLEAR_3 = 156, - UP_INT_CLEAR_4 = 157, - UP_INT_CLEAR_5 = 158, - UP_INT_CLEAR_6 = 159, - UP_INT_CLEAR_7 = 160, - UP_INT_CLEAR_8 = 161, - UP_INT_CLEAR_9 = 162, - UP_INT_CLEAR_10 = 163, - UP_INT_CLEAR_11 = 164, - UP_INT_CLEAR_12 = 165, - UP_INT_CLEAR_13 = 166, - UP_INT_CLEAR_14 = 167, - UP_INT_CLEAR_15 = 168, - UP_INT_MASK_0 = 169, - UP_INT_MASK_1 = 170, - UP_INT_MASK_2 = 171, - UP_INT_MASK_3 = 172, - UP_INT_MASK_4 = 173, - UP_INT_MASK_5 = 174, - UP_INT_MASK_6 = 175, - UP_INT_MASK_7 = 176, - UP_INT_MASK_8 = 177, - UP_INT_MASK_9 = 178, - UP_INT_MASK_10 = 179, - UP_INT_MASK_11 = 180, - UP_INT_MASK_12 = 181, - UP_INT_MASK_13 = 182, - UP_INT_MASK_14 = 183, - UP_INT_MASK_15 = 184, - UP_THRESH_0 = 185, - UP_THRESH_1 = 186, - UP_THRESH_2 = 187, - UP_THRESH_3 = 188, - UP_THRESH_4 = 189, - UP_THRESH_5 = 190, - UP_THRESH_6 = 191, - UP_THRESH_7 = 192, - UP_THRESH_8 = 193, - UP_THRESH_9 = 194, - UP_THRESH_10 = 195, - UP_THRESH_11 = 196, - UP_THRESH_12 = 197, - UP_THRESH_13 = 198, - UP_THRESH_14 = 199, - UP_THRESH_15 = 200, - CRITICAL_STATUS_0 = 201, - CRITICAL_STATUS_1 = 202, - CRITICAL_STATUS_2 = 203, - CRITICAL_STATUS_3 = 204, - CRITICAL_STATUS_4 = 205, - CRITICAL_STATUS_5 = 206, - CRITICAL_STATUS_6 = 207, - CRITICAL_STATUS_7 = 208, - CRITICAL_STATUS_8 = 209, - CRITICAL_STATUS_9 = 210, - CRITICAL_STATUS_10 = 211, - CRITICAL_STATUS_11 = 212, - CRITICAL_STATUS_12 = 213, - CRITICAL_STATUS_13 = 214, - CRITICAL_STATUS_14 = 215, - CRITICAL_STATUS_15 = 216, - CRIT_INT_STATUS_0 = 217, - CRIT_INT_STATUS_1 = 218, - CRIT_INT_STATUS_2 = 219, - CRIT_INT_STATUS_3 = 220, - CRIT_INT_STATUS_4 = 221, - CRIT_INT_STATUS_5 = 222, - CRIT_INT_STATUS_6 = 223, - CRIT_INT_STATUS_7 = 224, - CRIT_INT_STATUS_8 = 225, - CRIT_INT_STATUS_9 = 226, - CRIT_INT_STATUS_10 = 227, - CRIT_INT_STATUS_11 = 228, - CRIT_INT_STATUS_12 = 229, - CRIT_INT_STATUS_13 = 230, - CRIT_INT_STATUS_14 = 231, - CRIT_INT_STATUS_15 = 232, - CRIT_INT_CLEAR_0 = 233, - CRIT_INT_CLEAR_1 = 234, - CRIT_INT_CLEAR_2 = 235, - CRIT_INT_CLEAR_3 = 236, - CRIT_INT_CLEAR_4 = 237, - CRIT_INT_CLEAR_5 = 238, - CRIT_INT_CLEAR_6 = 239, - CRIT_INT_CLEAR_7 = 240, - CRIT_INT_CLEAR_8 = 241, - CRIT_INT_CLEAR_9 = 242, - CRIT_INT_CLEAR_10 = 243, - CRIT_INT_CLEAR_11 = 244, - CRIT_INT_CLEAR_12 = 245, - CRIT_INT_CLEAR_13 = 246, - CRIT_INT_CLEAR_14 = 247, - CRIT_INT_CLEAR_15 = 248, - CRIT_INT_MASK_0 = 249, - CRIT_INT_MASK_1 = 250, - CRIT_INT_MASK_2 = 251, - CRIT_INT_MASK_3 = 252, - CRIT_INT_MASK_4 = 253, - CRIT_INT_MASK_5 = 254, - CRIT_INT_MASK_6 = 255, - CRIT_INT_MASK_7 = 256, - CRIT_INT_MASK_8 = 257, - CRIT_INT_MASK_9 = 258, - CRIT_INT_MASK_10 = 259, - CRIT_INT_MASK_11 = 260, - CRIT_INT_MASK_12 = 261, - CRIT_INT_MASK_13 = 262, - CRIT_INT_MASK_14 = 263, - CRIT_INT_MASK_15 = 264, - CRIT_THRESH_0 = 265, - CRIT_THRESH_1 = 266, - CRIT_THRESH_2 = 267, - CRIT_THRESH_3 = 268, - CRIT_THRESH_4 = 269, - CRIT_THRESH_5 = 270, - CRIT_THRESH_6 = 271, - CRIT_THRESH_7 = 272, - CRIT_THRESH_8 = 273, - CRIT_THRESH_9 = 274, - CRIT_THRESH_10 = 275, - CRIT_THRESH_11 = 276, - CRIT_THRESH_12 = 277, - CRIT_THRESH_13 = 278, - CRIT_THRESH_14 = 279, - CRIT_THRESH_15 = 280, - WDOG_BARK_STATUS = 281, - WDOG_BARK_CLEAR = 282, - WDOG_BARK_MASK = 283, - WDOG_BARK_COUNT = 284, - CC_MON_STATUS = 285, - CC_MON_CLEAR = 286, - CC_MON_MASK = 287, - MIN_STATUS_0 = 288, - MIN_STATUS_1 = 289, - MIN_STATUS_2 = 290, - MIN_STATUS_3 = 291, - MIN_STATUS_4 = 292, - MIN_STATUS_5 = 293, - MIN_STATUS_6 = 294, - MIN_STATUS_7 = 295, - MIN_STATUS_8 = 296, - MIN_STATUS_9 = 297, - MIN_STATUS_10 = 298, - MIN_STATUS_11 = 299, - MIN_STATUS_12 = 300, - MIN_STATUS_13 = 301, - MIN_STATUS_14 = 302, - MIN_STATUS_15 = 303, - MAX_STATUS_0 = 304, - MAX_STATUS_1 = 305, - MAX_STATUS_2 = 306, - MAX_STATUS_3 = 307, - MAX_STATUS_4 = 308, - MAX_STATUS_5 = 309, - MAX_STATUS_6 = 310, - MAX_STATUS_7 = 311, - MAX_STATUS_8 = 312, - MAX_STATUS_9 = 313, - MAX_STATUS_10 = 314, - MAX_STATUS_11 = 315, - MAX_STATUS_12 = 316, - MAX_STATUS_13 = 317, - MAX_STATUS_14 = 318, - MAX_STATUS_15 = 319, - MAX_REGFIELDS___2 = 320, +struct irqc_priv; + +struct irqc_irq { + int hw_irq; + int requested_irq; + struct irqc_priv *p; }; -enum tsens_ver { - VER_0 = 0, - VER_0_1 = 1, - VER_1_X = 2, - VER_2_X = 3, +struct irqc_priv { + void *iomem; + void *cpu_int_base; + struct irqc_irq irq[32]; + unsigned int number_of_irqs; + struct device *dev; + struct irq_chip_generic *gc; + struct irq_domain *irq_domain; + atomic_t wakeup_path; }; -enum tsens_irq_type { - LOWER = 0, - UPPER = 1, - CRITICAL = 2, +struct ls_scfg_msi_cfg { + u32 ibs_shift; + u32 msir_irqs; + u32 msir_base; }; -struct tsens_irq_data { - u32 up_viol; - int up_thresh; - u32 up_irq_mask; - u32 up_irq_clear; - u32 low_viol; - int low_thresh; - u32 low_irq_mask; - u32 low_irq_clear; - u32 crit_viol; - u32 crit_thresh; - u32 crit_irq_mask; - u32 crit_irq_clear; +struct ls_scfg_msir; + +struct ls_scfg_msi { + spinlock_t lock; + struct platform_device *pdev; + struct irq_domain *parent; + struct irq_domain *msi_domain; + void *regs; + phys_addr_t msiir_addr; + struct ls_scfg_msi_cfg *cfg; + u32 msir_num; + struct ls_scfg_msir *msir; + u32 irqs_num; + unsigned long *used; }; -struct mmc_pwrseq_simple { - struct mmc_pwrseq pwrseq; - bool clk_enabled; - u32 post_power_on_delay_ms; - u32 power_off_delay_us; - struct clk *ext_clk; - struct gpio_descs *reset_gpios; +struct ls_scfg_msir { + struct ls_scfg_msi *msi_data; + unsigned int index; + unsigned int gic_irq; + unsigned int bit_start; + unsigned int bit_end; + unsigned int srs; + void *reg; }; -struct bcm2835_host { +struct stih407_usb2_picophy { + struct phy *phy; + struct regmap *regmap; + struct device *dev; + struct reset_control *rstc; + struct reset_control *rstport; + int ctrl; + int param; +}; + +enum st_retime_style { + st_retime_style_none = 0, + st_retime_style_packed = 1, + st_retime_style_dedicated = 2, +}; + +struct st_pctl_data { + const enum st_retime_style rt_style; + const unsigned int *input_delays; + const int ninput_delays; + const unsigned int *output_delays; + const int noutput_delays; + const int alt; + const int oe; + const int pu; + const int od; + const int rt; +}; + +struct st_retime_packed { + struct regmap_field *clk1notclk0; + struct regmap_field *delay_0; + struct regmap_field *delay_1; + struct regmap_field *invertclk; + struct regmap_field *retime; + struct regmap_field *clknotdata; + struct regmap_field *double_edge; +}; + +struct st_retime_dedicated { + struct regmap_field *rt[8]; +}; + +struct st_pio_control { + u32 rt_pin_mask; + struct regmap_field *alt; + struct regmap_field *oe; + struct regmap_field *pu; + struct regmap_field *od; + union { + struct st_retime_packed rt_p; + struct st_retime_dedicated rt_d; + } rt; +}; + +struct st_gpio_bank { + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range range; + void *base; + struct st_pio_control pc; + unsigned long irq_edge_conf; spinlock_t lock; - struct mutex mutex; - void *ioaddr; - u32 phys_addr; - struct platform_device *pdev; - int clock; - unsigned int max_clk; - struct work_struct dma_work; - struct delayed_work timeout_work; - struct sg_mapping_iter sg_miter; - unsigned int blocks; - int irq; - u32 ns_per_fifo_word; - u32 hcfg; - u32 cdiv; - struct mmc_request *mrq; - struct mmc_command *cmd; - struct mmc_data *data; - bool data_complete: 1; - bool use_busy: 1; - bool use_sbc: 1; - bool irq_block; - bool irq_busy; - bool irq_data; - struct dma_chan *dma_chan_rxtx; - struct dma_chan *dma_chan; - struct dma_slave_config dma_cfg_rx; - struct dma_slave_config dma_cfg_tx; - struct dma_async_tx_descriptor *dma_desc; - u32 dma_dir; - u32 drain_words; - struct page *drain_page; - u32 drain_offset; - bool use_dma; }; -struct scmi_reset_proto_ops { - int (*num_domains_get)(const struct scmi_protocol_handle *); - const char * (*name_get)(const struct scmi_protocol_handle *, u32); - int (*latency_get)(const struct scmi_protocol_handle *, u32); - int (*reset)(const struct scmi_protocol_handle *, u32); - int (*assert)(const struct scmi_protocol_handle *, u32); - int (*deassert)(const struct scmi_protocol_handle *, u32); +struct st_pmx_func; + +struct st_pctl_group; + +struct st_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl; + struct st_gpio_bank *banks; + int nbanks; + struct st_pmx_func *functions; + int nfunctions; + struct st_pctl_group *groups; + int ngroups; + struct regmap *regmap; + const struct st_pctl_data *data; + void *irqmux_base; }; -enum scmi_reset_protocol_cmd { - RESET_DOMAIN_ATTRIBUTES = 3, - RESET = 4, - RESET_NOTIFY = 5, - RESET_DOMAIN_NAME_GET = 6, +struct st_pmx_func { + const char *name; + const char **groups; + unsigned int ngroups; }; -struct reset_dom_info; +struct st_pinconf; -struct scmi_reset_info { - u32 version; - int num_domains; - struct reset_dom_info *dom_info; +struct st_pctl_group { + const char *name; + unsigned int *pins; + unsigned int npins; + struct st_pinconf *pin_conf; }; -struct reset_dom_info { - bool async_reset; - bool reset_notify; - u32 latency_us; - char name[64]; +struct st_pinconf { + int pin; + const char *name; + unsigned long config; + int altfunc; }; -struct scmi_msg_resp_reset_domain_attributes { - __le32 attributes; - __le32 latency; - u8 name[16]; +struct sh_pfc_gpio_data_reg; + +struct sh_pfc_gpio_pin; + +struct sh_pfc_chip { + struct sh_pfc *pfc; + struct gpio_chip gpio_chip; + struct sh_pfc_window *mem; + struct sh_pfc_gpio_data_reg *regs; + struct sh_pfc_gpio_pin *pins; }; -struct scmi_msg_reset_domain_reset { - __le32 domain_id; - __le32 flags; - __le32 reset_state; +struct sh_pfc_gpio_data_reg { + const struct pinmux_data_reg *info; + u32 shadow; }; -struct scmi_msg_reset_notify { - __le32 id; - __le32 event_control; +struct sh_pfc_gpio_pin { + u8 dbit; + u8 dreg; }; -struct scmi_reset_issued_notify_payld { - __le32 agent_id; - __le32 domain_id; - __le32 reset_state; +struct spear_function; + +struct spear_pingroup; + +struct spear_gpio_pingroup; + +struct spear_pmx; + +struct spear_pmx_mode; + +struct spear_pinctrl_machdata { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + struct spear_function **functions; + unsigned int nfunctions; + struct spear_pingroup **groups; + unsigned int ngroups; + struct spear_gpio_pingroup *gpio_pingroups; + void (*gpio_request_endisable)(struct spear_pmx *, int, bool); + unsigned int ngpio_pingroups; + bool modes_supported; + u16 mode; + struct spear_pmx_mode **pmx_modes; + unsigned int npmx_modes; }; -struct scmi_reset_issued_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int domain_id; - unsigned int reset_state; - long: 32; +struct spear_function { + const char *name; + const char * const *groups; + unsigned int ngroups; }; -struct psci_operations { - u32 (*get_version)(); - int (*cpu_suspend)(u32, unsigned long); - int (*cpu_off)(u32); - int (*cpu_on)(unsigned long, unsigned long); - int (*migrate)(unsigned long); - int (*affinity_info)(unsigned long, unsigned long); - int (*migrate_info_type)(); +struct spear_modemux; + +struct spear_pingroup { + const char *name; + const unsigned int *pins; + unsigned int npins; + struct spear_modemux *modemuxs; + unsigned int nmodemuxs; }; -typedef unsigned long psci_fn(unsigned long, unsigned long, unsigned long, unsigned long); +struct spear_muxreg; -struct psci_0_1_function_ids { - u32 cpu_suspend; - u32 cpu_on; - u32 cpu_off; - u32 migrate; +struct spear_modemux { + u16 modes; + u8 nmuxregs; + struct spear_muxreg *muxregs; }; -typedef int (*psci_initcall_t)(const struct device_node *); +struct spear_muxreg { + u16 reg; + u32 mask; + u32 val; +}; -struct arm_cpuidle_irq_context {}; +struct spear_gpio_pingroup { + const unsigned int *pins; + unsigned int npins; + struct spear_muxreg *muxregs; + u8 nmuxregs; +}; -struct bcma_sflash_tbl_e { - char *name; - u32 id; - u32 blocksize; - u16 numblocks; +struct spear_pmx { + struct device *dev; + struct pinctrl_dev *pctl; + struct spear_pinctrl_machdata *machdata; + struct regmap *regmap; }; -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, +struct spear_pmx_mode { + const char * const name; + u16 mode; + u16 reg; + u16 mask; + u32 val; }; -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 bcm_kona_gpio_bank; + +struct bcm_kona_gpio { + void *reg_base; + int num_bank; + raw_spinlock_t lock; + struct gpio_chip gpio_chip; + struct irq_domain *irq_domain; + struct bcm_kona_gpio_bank *banks; }; -struct fib_rule_uid_range { - __u32 start; - __u32 end; +struct bcm_kona_gpio_bank { + int id; + int irq; + struct bcm_kona_gpio *kona_gpio; }; -struct fib_rule_notifier_info { - struct fib_notifier_info info; - struct fib_rule *rule; +struct syscon_gpio_data { + unsigned int flags; + unsigned int bit_count; + unsigned int dat_bit_offset; + unsigned int dir_bit_offset; + void (*set)(struct gpio_chip *, unsigned int, int); +}; + +struct syscon_gpio_priv { + struct gpio_chip chip; + struct regmap *syscon; + const struct syscon_gpio_data *data; + u32 dreg_offset; + u32 dir_reg_offset; +}; + +struct pci_bridge_reg_behavior { + u32 ro; + u32 rw; + u32 w1c; }; 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, + PCI_BRIDGE_EMUL_NO_PREFMEM_FORWARD = 1, + PCI_BRIDGE_EMUL_NO_IO_FORWARD = 2, }; -struct channels_reply_data { - struct ethnl_reply_data base; - struct ethtool_channels channels; +typedef enum { + PCI_BRIDGE_EMUL_HANDLED = 0, + PCI_BRIDGE_EMUL_NOT_HANDLED = 1, +} pci_bridge_emul_read_status_t; + +struct pci_bridge_emul_conf { + __le16 vendor; + __le16 device; + __le16 command; + __le16 status; + __le32 class_revision; + u8 cache_line_size; + u8 latency_timer; + u8 header_type; + u8 bist; + __le32 bar[2]; + u8 primary_bus; + u8 secondary_bus; + u8 subordinate_bus; + u8 secondary_latency_timer; + u8 iobase; + u8 iolimit; + __le16 secondary_status; + __le16 membase; + __le16 memlimit; + __le16 pref_mem_base; + __le16 pref_mem_limit; + __le32 prefbaseupper; + __le32 preflimitupper; + __le16 iobaseupper; + __le16 iolimitupper; + u8 capabilities_pointer; + u8 reserve[3]; + __le32 romaddr; + u8 intline; + u8 intpin; + __le16 bridgectrl; }; -enum nexthop_event_type { - NEXTHOP_EVENT_DEL = 0, - NEXTHOP_EVENT_REPLACE = 1, - NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, - NEXTHOP_EVENT_BUCKET_REPLACE = 3, +struct pci_bridge_emul_pcie_conf { + u8 cap_id; + u8 next; + __le16 cap; + __le32 devcap; + __le16 devctl; + __le16 devsta; + __le32 lnkcap; + __le16 lnkctl; + __le16 lnksta; + __le32 slotcap; + __le16 slotctl; + __le16 slotsta; + __le16 rootctl; + __le16 rootcap; + __le32 rootsta; + __le32 devcap2; + __le16 devctl2; + __le16 devsta2; + __le32 lnkcap2; + __le16 lnkctl2; + __le16 lnksta2; + __le32 slotcap2; + __le16 slotctl2; + __le16 slotsta2; }; -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, +struct pci_bridge_emul_ops; + +struct pci_bridge_emul { + struct pci_bridge_emul_conf conf; + struct pci_bridge_emul_pcie_conf pcie_conf; + const struct pci_bridge_emul_ops *ops; + struct pci_bridge_reg_behavior *pci_regs_behavior; + struct pci_bridge_reg_behavior *pcie_cap_regs_behavior; + void *data; + u8 pcie_start; + u8 ssid_start; + bool has_pcie; + u16 subsystem_vendor_id; + u16 subsystem_id; }; -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, +struct pci_bridge_emul_ops { + pci_bridge_emul_read_status_t (*read_base)(struct pci_bridge_emul *, int, u32 *); + pci_bridge_emul_read_status_t (*read_pcie)(struct pci_bridge_emul *, int, u32 *); + pci_bridge_emul_read_status_t (*read_ext)(struct pci_bridge_emul *, int, u32 *); + void (*write_base)(struct pci_bridge_emul *, int, u32, u32, u32); + void (*write_pcie)(struct pci_bridge_emul *, int, u32, u32, u32); + void (*write_ext)(struct pci_bridge_emul *, int, u32, u32, u32); }; -enum { - NEXTHOP_GRP_TYPE_MPATH = 0, - NEXTHOP_GRP_TYPE_RES = 1, - __NEXTHOP_GRP_TYPE_MAX = 2, +struct mvebu_pcie_port; + +struct mvebu_pcie { + struct platform_device *pdev; + struct mvebu_pcie_port *ports; + struct resource io; + struct resource realio; + struct resource mem; + int nports; }; -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, +struct mvebu_pcie_window { + phys_addr_t base; + phys_addr_t remap; + size_t size; }; -enum { - NHA_RES_BUCKET_UNSPEC = 0, - NHA_RES_BUCKET_PAD = 0, - NHA_RES_BUCKET_INDEX = 1, - NHA_RES_BUCKET_IDLE_TIME = 2, - NHA_RES_BUCKET_NH_ID = 3, - __NHA_RES_BUCKET_MAX = 4, +struct mvebu_pcie_port { + char *name; + void *base; + u32 port; + u32 lane; + bool is_x4; + int devfn; + unsigned int mem_target; + unsigned int mem_attr; + unsigned int io_target; + unsigned int io_attr; + struct clk *clk; + struct gpio_desc *reset_gpio; + char *reset_name; + struct pci_bridge_emul bridge; + struct device_node *dn; + struct mvebu_pcie *pcie; + struct mvebu_pcie_window memwin; + struct mvebu_pcie_window iowin; + u32 saved_pcie_stat; + struct resource regs; + u8 slot_power_limit_value; + u8 slot_power_limit_scale; + struct irq_domain *intx_irq_domain; + raw_spinlock_t irq_lock; + int intx_irq; }; -struct nh_notifier_single_info; +struct platform_pwm_backlight_data { + unsigned int max_brightness; + unsigned int dft_brightness; + unsigned int lth_brightness; + unsigned int pwm_period_ns; + unsigned int *levels; + unsigned int post_pwm_on_delay; + unsigned int pwm_off_delay; + int (*init)(struct device *); + int (*notify)(struct device *, int); + void (*notify_after)(struct device *, int); + void (*exit)(struct device *); + int (*check_fb)(struct device *, struct fb_info *); +}; -struct nh_notifier_grp_info; +struct pwm_bl_data { + struct pwm_device *pwm; + struct device *dev; + unsigned int lth_brightness; + unsigned int *levels; + bool enabled; + struct regulator *power_supply; + struct gpio_desc *enable_gpio; + unsigned int scale; + unsigned int post_pwm_on_delay; + unsigned int pwm_off_delay; + int (*notify)(struct device *, int); + void (*notify_after)(struct device *, int); + int (*check_fb)(struct device *, struct fb_info *); + void (*exit)(struct device *); +}; -struct nh_notifier_res_table_info; +struct hb_clk { + struct clk_hw hw; + void *reg; + char *parent_name; +}; -struct nh_notifier_res_bucket_info; +struct clk_system { + struct clk_hw hw; + struct regmap *regmap; + struct at91_clk_pms pms; + u8 id; +}; -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 at91sam9x5_clk_smd { + struct clk_hw hw; + struct regmap *regmap; }; -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 artpec6_clkctrl_drvdata { + struct clk *clk_table[20]; + void *syscon_base; + struct clk_onecell_data clk_data; + spinlock_t i2scfg_lock; }; -struct nh_notifier_grp_entry_info { - u8 weight; +struct berlin2_div { + struct clk_hw hw; + void *base; + struct berlin2_div_map map; + spinlock_t *lock; +}; + +enum hix5hd2_clk_type { + TYPE_COMPLEX = 0, + TYPE_ETHER = 1, +}; + +struct hix5hd2_complex_clock { + const char *name; + const char *parent_name; u32 id; - struct nh_notifier_single_info nh; + u32 ctrl_reg; + u32 ctrl_clk_mask; + u32 ctrl_rst_mask; + u32 phy_reg; + u32 phy_clk_mask; + u32 phy_rst_mask; + enum hix5hd2_clk_type type; }; -struct nh_notifier_grp_info { - u16 num_nh; - bool is_fdb; - struct nh_notifier_grp_entry_info nh_entries[0]; +struct hix5hd2_clk_complex { + struct clk_hw hw; + u32 id; + void *ctrl_reg; + u32 ctrl_clk_mask; + u32 ctrl_rst_mask; + void *phy_reg; + u32 phy_clk_mask; + u32 phy_rst_mask; }; -struct nh_notifier_res_table_info { - u16 num_nh_buckets; - struct nh_notifier_single_info nhs[0]; +struct clk_pllv3 { + struct clk_hw hw; + void *base; + u32 power_bit; + bool powerup_set; + u32 div_mask; + u32 div_shift; + unsigned long ref_clock; + u32 num_offset; + u32 denom_offset; }; -struct nh_notifier_res_bucket_info { - u16 bucket_index; - unsigned int idle_timer_ms; - bool force; - struct nh_notifier_single_info old_nh; - struct nh_notifier_single_info new_nh; +struct clk_pllv3_vf610_mf { + u32 mfi; + u32 mfn; + u32 mfd; }; -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 mmp_clk_reset_cell; + +struct mmp_clk_reset_unit { + struct reset_controller_dev rcdev; + struct mmp_clk_reset_cell *cells; }; -struct nhmsg { - unsigned char nh_family; - unsigned char nh_scope; - unsigned char nh_protocol; - unsigned char resvd; - unsigned int nh_flags; +struct mmp_clk_reset_cell { + unsigned int clk_id; + void *reg; + u32 bits; + unsigned int flags; + spinlock_t *lock; }; -struct nexthop_grp { - __u32 id; - __u8 weight; - __u8 resvd1; - __u16 resvd2; +enum { + DOVE_CPU_TO_L2 = 0, + DOVE_CPU_TO_DDR = 1, }; -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 clk_rpm; + +struct rpm_clk_desc { + struct clk_rpm **clks; + size_t num_clks; }; -struct rtm_dump_nh_ctx { - u32 idx; +struct rpm_cc; + +struct clk_rpm { + const int rpm_clk_id; + const int xo_offset; + const bool active_only; + unsigned long rate; + bool enabled; + bool branch; + struct clk_rpm *peer; + struct clk_hw hw; + struct qcom_rpm *rpm; + struct rpm_cc *rpm_cc; }; -struct rtm_dump_res_bucket_ctx { - struct rtm_dump_nh_ctx nh; - u16 bucket_index; - u32 done_nh_idx; +struct rpm_cc { + struct qcom_rpm *rpm; + struct clk_rpm **clks; + size_t num_clks; + u32 xo_buffer_value; + struct mutex xo_lock; }; -struct rtm_dump_nexthop_bucket_data { - struct rtm_dump_res_bucket_ctx *ctx; - struct nh_dump_filter filter; +struct rockchip_cpuclk { + struct clk_hw hw; + struct clk *alt_parent; + void *reg_base; + struct notifier_block clk_nb; + unsigned int rate_count; + struct rockchip_cpuclk_rate_table *rate_table; + const struct rockchip_cpuclk_reg_data *reg_data; + spinlock_t *lock; }; -struct static_key_false_deferred { - struct static_key_false key; +struct clk_aux { + struct clk_hw hw; + void *reg; + const struct aux_clk_masks *masks; + struct aux_rate_tbl *rtbl; + u8 rtbl_cnt; + spinlock_t *lock; }; -struct ip6fl_iter_state { - struct seq_net_private p; - struct pid_namespace *pid_ns; - int bucket; +struct sun6i_rtc_match_data { + bool have_ext_osc32k: 1; + bool have_iosc_calibration: 1; + bool rtc_32k_single_parent: 1; + const struct clk_parent_data *osc32k_fanout_parents; + u8 osc32k_fanout_nparents; }; -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 clk_sysctrl { + struct clk_hw hw; + struct device *dev; + u8 parent_index; + u16 reg_sel[4]; + u8 reg_mask[4]; + u8 reg_bits[4]; + unsigned long rate; + unsigned long enable_delay_us; }; -struct mld_msg { - struct icmp6hdr mld_hdr; - struct in6_addr mld_mca; +enum imx_dma_type { + IMX1_DMA = 0, + IMX21_DMA = 1, + IMX27_DMA = 2, }; -struct xsk_dma_map { - dma_addr_t *dma_pages; +enum imxdma_prep_type { + IMXDMA_DESC_MEMCPY = 0, + IMXDMA_DESC_INTERLEAVED = 1, + IMXDMA_DESC_SLAVE_SG = 2, + IMXDMA_DESC_CYCLIC = 3, +}; + +enum sdma_peripheral_type { + IMX_DMATYPE_SSI = 0, + IMX_DMATYPE_SSI_SP = 1, + IMX_DMATYPE_MMC = 2, + IMX_DMATYPE_SDHC = 3, + IMX_DMATYPE_UART = 4, + IMX_DMATYPE_UART_SP = 5, + IMX_DMATYPE_FIRI = 6, + IMX_DMATYPE_CSPI = 7, + IMX_DMATYPE_CSPI_SP = 8, + IMX_DMATYPE_SIM = 9, + IMX_DMATYPE_ATA = 10, + IMX_DMATYPE_CCM = 11, + IMX_DMATYPE_EXT = 12, + IMX_DMATYPE_MSHC = 13, + IMX_DMATYPE_MSHC_SP = 14, + IMX_DMATYPE_DSP = 15, + IMX_DMATYPE_MEMORY = 16, + IMX_DMATYPE_FIFO_MEMORY = 17, + IMX_DMATYPE_SPDIF = 18, + IMX_DMATYPE_IPU_MEMORY = 19, + IMX_DMATYPE_ASRC = 20, + IMX_DMATYPE_ESAI = 21, + IMX_DMATYPE_SSI_DUAL = 22, + IMX_DMATYPE_ASRC_SP = 23, + IMX_DMATYPE_SAI = 24, + IMX_DMATYPE_MULTI_SAI = 25, + IMX_DMATYPE_HDMI = 26, +}; + +struct imxdma_desc { + struct list_head node; + struct dma_async_tx_descriptor desc; + enum dma_status status; + dma_addr_t src; + dma_addr_t dest; + size_t len; + enum dma_transfer_direction direction; + enum imxdma_prep_type type; + unsigned int config_port; + unsigned int config_mem; + unsigned int x; + unsigned int y; + unsigned int w; + struct scatterlist *sg; + unsigned int sgcount; +}; + +struct imxdma_engine; + +struct imxdma_channel { + int hw_chaining; + struct timer_list watchdog; + struct imxdma_engine *imxdma; + unsigned int channel; + struct tasklet_struct dma_tasklet; + struct list_head ld_free; + struct list_head ld_queue; + struct list_head ld_active; + int descs_allocated; + enum dma_slave_buswidth word_size; + dma_addr_t per_address; + u32 watermark_level; + struct dma_chan chan; + struct dma_async_tx_descriptor desc; + enum dma_status status; + int dma_request; + struct scatterlist *sg_list; + u32 ccr_from_device; + u32 ccr_to_device; + bool enabled_2d; + int slot_2d; + unsigned int irq; + struct dma_slave_config config; +}; + +struct imx_dma_2d_config { + u16 xsr; + u16 ysr; + u16 wsr; + int count; +}; + +struct imxdma_engine { struct device *dev; - struct net_device *netdev; - refcount_t users; - struct list_head list; - u32 dma_pages_cnt; - bool dma_need_sync; + struct dma_device dma_device; + void *base; + struct clk *dma_ahb; + struct clk *dma_ipg; + spinlock_t lock; + struct imx_dma_2d_config slots_2d[2]; + struct imxdma_channel channel[16]; + enum imx_dma_type devtype; + unsigned int irq; + unsigned int irq_err; +}; + +struct imx_dma_data { + int dma_request; + int dma_request2; + enum sdma_peripheral_type peripheral_type; + int priority; +}; + +struct imxdma_filter_data { + struct imxdma_engine *imxdma; + int request; +}; + +struct pmu_data { + spinlock_t lock; + struct device_node *of_node; + void *pmc_base; + void *pmu_base; + struct irq_chip_generic *irq_gc; + struct irq_domain *irq_domain; + struct reset_controller_dev reset; +}; + +struct pmu_domain { + struct pmu_data *pmu; + u32 pwr_mask; + u32 rst_mask; + u32 iso_mask; + struct generic_pm_domain base; +}; + +struct dove_pmu_domain_initdata; + +struct dove_pmu_initdata { + void *pmc_base; + void *pmu_base; + int irq; + int irq_domain_start; + const struct dove_pmu_domain_initdata *domains; +}; + +struct dove_pmu_domain_initdata { + u32 pwr_mask; + u32 rst_mask; + u32 iso_mask; + const char *name; }; -struct xdp_umem_ring { - struct xdp_ring ptrs; - u64 desc[0]; +struct asv_limit_entry { + unsigned int hpm; + unsigned int ids; }; -struct processor { - void (*_data_abort)(unsigned long); - unsigned long (*_prefetch_abort)(unsigned long); - void (*_proc_init)(); - void (*check_bugs)(); - void (*_proc_fin)(); - void (*reset)(unsigned long, bool); - int (*_do_idle)(); - void (*dcache_clean_area)(void *, int); - void (*switch_mm)(phys_addr_t, struct mm_struct *); - void (*set_pte_ext)(pte_t *, pte_t, unsigned int); - unsigned int suspend_size; - void (*do_suspend)(void *); - void (*do_resume)(void *); +enum { + EXYNOS_ASV_SUBSYS_ID_ARM = 0, + EXYNOS_ASV_SUBSYS_ID_KFC = 1, + EXYNOS_ASV_SUBSYS_ID_MAX = 2, }; -struct cpu_tlb_fns { - void (*flush_user_range)(unsigned long, unsigned long, struct vm_area_struct *); - void (*flush_kern_range)(unsigned long, unsigned long); - unsigned long tlb_flags; +struct exynos_soc_id { + const char *name; + unsigned int id; }; -struct cpu_cache_fns { - void (*flush_icache_all)(); - void (*flush_kern_all)(); - void (*flush_kern_louis)(); - void (*flush_user_all)(); - void (*flush_user_range)(unsigned long, unsigned long, unsigned int); - void (*coherent_kern_range)(unsigned long, unsigned long); - int (*coherent_user_range)(unsigned long, unsigned long); - void (*flush_kern_dcache_area)(void *, size_t); - void (*dma_map_area)(const void *, size_t, int); - void (*dma_unmap_area)(const void *, size_t, int); - void (*dma_flush_range)(const void *, const void *); +struct exynos_chipid_variant { + unsigned int rev_reg; + unsigned int main_rev_shift; + unsigned int sub_rev_shift; }; -struct stack { - u32 irq[4]; - u32 abt[4]; - u32 und[4]; - u32 fiq[4]; +struct exynos_chipid_info { + u32 product_id; + u32 revision; }; -struct mpidr_hash { - u32 mask; - u32 shift_aff[3]; - u32 bits; +struct dbx500_asic_id { + u16 partnumber; + u8 revision; + u8 process; }; -struct proc_info_list { - unsigned int cpu_val; - unsigned int cpu_mask; - unsigned long __cpu_mm_mmu_flags; - unsigned long __cpu_io_mmu_flags; - unsigned long __cpu_flush; - const char *arch_name; - const char *elf_name; - unsigned int elf_hwcap; - const char *cpu_name; - struct processor *proc; - struct cpu_tlb_fns *tlb; - struct cpu_user_fns *user; - struct cpu_cache_fns *cache; +struct virtio_pci_modern_common_cfg { + struct virtio_pci_common_cfg cfg; + __le16 queue_notify_data; + __le16 queue_reset; }; -enum { - HI3620_CTRL = 0, - ERROR_CTRL = 1, +struct old_serial_port { + unsigned int uart; + unsigned int baud_base; + unsigned int port; + unsigned int irq; + upf_t flags; + unsigned char io_type; + unsigned char *iomem_base; + unsigned short iomem_reg_shift; + long: 32; }; enum { - COHERENCY_FABRIC_TYPE_NONE = 0, - COHERENCY_FABRIC_TYPE_ARMADA_370_XP = 1, - COHERENCY_FABRIC_TYPE_ARMADA_375 = 2, - COHERENCY_FABRIC_TYPE_ARMADA_380 = 3, + 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 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 irq_info { + struct hlist_node node; + int irq; + spinlock_t lock; + struct list_head *head; +}; + +struct plat_serial8250_port { + unsigned long iobase; + void *membase; + resource_size_t mapbase; + resource_size_t mapsize; + unsigned int uartclk; + unsigned int irq; + unsigned long irqflags; + void *private_data; + unsigned char regshift; + unsigned char iotype; + unsigned char hub6; + unsigned char has_sysrq; + unsigned int type; + upf_t flags; + u16 bugs; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); long: 32; }; -struct pool_workqueue; +struct bcm2835_aux_serial_driver_data { + resource_size_t offset; +}; -struct worker_pool; +struct bcm2835aux_data { + struct clk *clk; + int line; + u32 cntl; +}; -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; +struct rk_iommu_ops { + phys_addr_t (*pt_address)(u32); + u32 (*mk_dtentries)(dma_addr_t); + u32 (*mk_ptentries)(phys_addr_t, int); long: 32; - u64 current_at; - unsigned int current_color; - int sleeping; - work_func_t last_func; - struct list_head scheduled; - struct task_struct *task; - struct worker_pool *pool; - struct list_head node; - unsigned long last_active; - unsigned int flags; - int id; - char desc[24]; - struct workqueue_struct *rescue_wq; + u64 dma_bit_mask; + gfp_t gfp_flags; long: 32; }; -enum rtmutex_chainwalk { - RT_MUTEX_MIN_CHAINWALK = 0, - RT_MUTEX_FULL_CHAINWALK = 1, +struct rk_iommu_domain { + struct list_head iommus; + u32 *dt; + dma_addr_t dt_dma; + spinlock_t iommus_lock; + spinlock_t dt_lock; + struct iommu_domain domain; }; -struct rt_wake_q_head { - struct wake_q_head head; - struct task_struct *rtlock_task; +struct rk_iommu { + struct device *dev; + void **bases; + int num_mmu; + int num_irq; + struct clk_bulk_data *clocks; + int num_clocks; + bool reset_disabled; + struct iommu_device iommu; + struct list_head node; + struct iommu_domain *domain; }; -struct tp_transition_snapshot { - unsigned long rcu; - unsigned long srcu; - bool ongoing; +struct rk_iommudata { + struct device_link *link; + struct rk_iommu *iommu; }; -enum tp_func_state { - TP_FUNC_0 = 0, - TP_FUNC_1 = 1, - TP_FUNC_2 = 2, - TP_FUNC_N = 3, +struct drm_dmi_panel_orientation_data { + int width; + int height; + const char * const *bios_dates; + int orientation; }; -enum tp_transition_sync { - TP_TRANSITION_SYNC_1_0_1 = 0, - TP_TRANSITION_SYNC_N_2_1 = 1, - _NR_TP_TRANSITION_SYNC = 2, +struct drm_tegra_reloc { + struct { + __u32 handle; + __u32 offset; + } cmdbuf; + struct { + __u32 handle; + __u32 offset; + } target; + __u32 shift; + __u32 pad; }; -struct tp_module { - struct list_head list; - struct module *mod; +struct drm_tegra_syncpt { + __u32 id; + __u32 incrs; }; -struct tp_probes { - struct callback_head rcu; - struct tracepoint_func probes[0]; +struct drm_tegra_cmdbuf { + __u32 handle; + __u32 offset; + __u32 words; + __u32 pad; }; -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 device_attach_data { + struct device *dev; + bool check_async; + bool want_async; + bool have_async; }; -struct bpf_queue_stack { - struct bpf_map map; - raw_spinlock_t lock; - u32 head; - u32 tail; - u32 size; - char elements[0]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct onfi_ext_ecc_info { + u8 ecc_bits; + u8 codeword_size; + __le16 bb_per_lun; + __le16 block_endurance; + u8 reserved[2]; }; -struct btf_enum { - __u32 name_off; - __s32 val; +struct onfi_ext_section { + u8 type; + u8 length; }; -struct btf_enum64 { - __u32 name_off; - __u32 val_lo32; - __u32 val_hi32; +struct onfi_ext_param_page { + __le16 crc; + u8 sig[4]; + u8 reserved0[10]; + struct onfi_ext_section sections[8]; }; -struct bpf_core_accessor { - __u32 type_id; - __u32 idx; - const char *name; +enum { + BCM63138_CTLRDY = 16, }; -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 bcm63138_nand_soc { + struct brcmnand_soc soc; + void *base; }; -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; - long: 32; +struct ubi_leb_change_req { + __s32 lnum; + __s32 bytes; + __s8 dtype; + __s8 padding[7]; }; -struct bpf_core_cand; +struct spi_bitbang_cs { + unsigned int nsecs; + u32 (*txrx_word)(struct spi_device *, unsigned int, u32, u8, unsigned int); + unsigned int (*txrx_bufs)(struct spi_device *, u32 (*)(struct spi_device *, unsigned int, u32, u8, unsigned int), unsigned int, struct spi_transfer *, unsigned int); +}; -struct bpf_core_cand_list { - struct bpf_core_cand *cands; - int len; +struct tegra_spi_soc_data { + bool has_intr_mask_reg; }; -struct bpf_core_cand { - const struct btf *btf; - __u32 id; +struct tegra_spi_data { + struct device *dev; + struct spi_controller *master; + spinlock_t lock; + struct clk *clk; + struct reset_control *rst; + void *base; + phys_addr_t phys; + unsigned int irq; + u32 cur_speed; + struct spi_device *cur_spi; + struct spi_device *cs_control; + unsigned int cur_pos; + unsigned int words_per_32bit; + unsigned int bytes_per_word; + unsigned int curr_dma_words; + unsigned int cur_direction; + unsigned int cur_rx_pos; + unsigned int cur_tx_pos; + unsigned int dma_buf_size; + unsigned int max_buf_size; + bool is_curr_dma_xfer; + bool use_hw_based_cs; + struct completion rx_dma_complete; + struct completion tx_dma_complete; + u32 tx_status; + u32 rx_status; + u32 status_reg; + bool is_packed; + u32 command1_reg; + u32 dma_control_reg; + u32 def_command1_reg; + u32 def_command2_reg; + u32 spi_cs_timing1; + u32 spi_cs_timing2; + u8 last_used_cs; + struct completion xfer_completion; + struct spi_transfer *curr_xfer; + struct dma_chan *rx_dma_chan; + u32 *rx_dma_buf; + dma_addr_t rx_dma_phys; + struct dma_async_tx_descriptor *rx_dma_desc; + struct dma_chan *tx_dma_chan; + u32 *tx_dma_buf; + dma_addr_t tx_dma_phys; + struct dma_async_tx_descriptor *tx_dma_desc; + const struct tegra_spi_soc_data *soc_data; }; -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 tegra_spi_client_data { + int tx_clk_tap_delay; + int rx_clk_tap_delay; }; -struct perf_event_header { - __u32 type; - __u16 misc; - __u16 size; +enum phy_reset_delays { + PRE_DELAY = 0, + PULSE = 1, + POST_DELAY = 2, + DELAYS_NUM = 3, }; -typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool); +struct hix5hd2_desc; -typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool); +struct hix5hd2_desc_sw { + struct hix5hd2_desc *desc; + dma_addr_t phys_addr; + unsigned int count; + unsigned int size; +}; -typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool); +struct sg_desc; -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 hix5hd2_sg_desc_ring { + struct sg_desc *desc; + dma_addr_t phys_addr; }; -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 hix5hd2_priv___2 { + struct hix5hd2_desc_sw pool[4]; + struct hix5hd2_sg_desc_ring tx_ring; + void *base; + void *ctrl_base; + struct sk_buff *tx_skb[1024]; + struct sk_buff *rx_skb[1024]; + struct device *dev; + struct net_device *netdev; + struct device_node *phy_node; + phy_interface_t phy_mode; + unsigned long hw_cap; + unsigned int speed; + unsigned int duplex; + struct clk *mac_core_clk; + struct clk *mac_ifc_clk; + struct reset_control *mac_core_rst; + struct reset_control *mac_ifc_rst; + struct reset_control *phy_rst; + u32 phy_reset_delays[3]; + struct mii_bus *bus; + struct napi_struct napi; + struct work_struct tx_timeout_task; }; -struct trace_event_data_offsets_mmap_lock { - u32 memcg_path; +struct hix5hd2_desc { + __le32 buff_addr; + __le32 cmd; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct trace_event_data_offsets_mmap_lock_acquire_returned { - u32 memcg_path; +struct frags_info { + __le32 addr; + __le32 size; }; -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 sg_desc { + __le32 total_len; + __le32 resvd0; + __le32 linear_addr; + __le32 linear_len; + struct frags_info frags[18]; }; -struct dnotify_struct; - -struct dnotify_mark { - struct fsnotify_mark fsn_mark; - struct dnotify_struct *dn; +struct mvneta_statistic { + unsigned short offset; + unsigned short type; + const char name[32]; }; -struct dnotify_struct { - struct dnotify_struct *dn_next; - __u32 dn_mask; - int dn_fd; - struct file *dn_filp; - fl_owner_t dn_owner; +enum mvneta_tx_buf_type { + MVNETA_TYPE_TSO = 0, + MVNETA_TYPE_SKB = 1, + MVNETA_TYPE_XDP_TX = 2, + MVNETA_TYPE_XDP_NDO = 3, }; -enum { - BIAS = 2147483648, +enum mvneta_bm_type { + MVNETA_BM_FREE = 0, + MVNETA_BM_LONG = 1, + MVNETA_BM_SHORT = 2, }; -struct pde_opener { - struct list_head lh; - struct file *file; - bool closing; - struct completion *c; +enum { + __MVNETA_DOWN = 0, }; -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; +enum { + TC_MQPRIO_HW_OFFLOAD_NONE = 0, + TC_MQPRIO_HW_OFFLOAD_TCS = 1, + __TC_MQPRIO_HW_OFFLOAD_MAX = 2, }; -struct nfs_io_completion { - void (*complete)(void *); - void *data; - struct kref refcount; +enum { + TC_MQPRIO_SHAPER_DCB = 0, + TC_MQPRIO_SHAPER_BW_RATE = 1, + __TC_MQPRIO_SHAPER_MAX = 2, }; -typedef int (*nlm_host_match_fn_t)(void *, struct nlm_host *); - enum { - Opt_fast_unmount = 0, - Opt_norm_unmount = 1, - Opt_bulk_read = 2, - Opt_no_bulk_read = 3, - Opt_chk_data_crc = 4, - Opt_no_chk_data_crc = 5, - Opt_override_compr = 6, - Opt_assert = 7, - Opt_auth_key = 8, - Opt_auth_hash_name = 9, - Opt_ignore = 10, - Opt_err___5 = 11, + ETHTOOL_STAT_EEE_WAKEUP = 0, + ETHTOOL_STAT_SKB_ALLOC_ERR = 1, + ETHTOOL_STAT_REFILL_ERR = 2, + ETHTOOL_XDP_REDIRECT = 3, + ETHTOOL_XDP_PASS = 4, + ETHTOOL_XDP_DROP = 5, + ETHTOOL_XDP_TX = 6, + ETHTOOL_XDP_TX_ERR = 7, + ETHTOOL_XDP_XMIT = 8, + ETHTOOL_XDP_XMIT_ERR = 9, + ETHTOOL_MAX_STATS = 10, }; -struct ramoops_context { - struct persistent_ram_zone **dprzs; - struct persistent_ram_zone *cprz; - struct persistent_ram_zone **fprzs; - struct persistent_ram_zone *mprz; - phys_addr_t phys_addr; - unsigned long size; - unsigned int memtype; - size_t record_size; - size_t console_size; - size_t ftrace_size; - size_t pmsg_size; - u32 flags; - struct persistent_ram_ecc_info ecc_info; - unsigned int max_dump_cnt; - unsigned int dump_write_cnt; - unsigned int dump_read_cnt; - unsigned int console_read_cnt; - unsigned int max_ftrace_cnt; - unsigned int ftrace_read_cnt; - unsigned int pmsg_read_cnt; - struct pstore_info pstore; -}; +struct mvneta_pcpu_port; -struct ramoops_platform_data { - unsigned long mem_size; - phys_addr_t mem_address; - unsigned int mem_type; - unsigned long record_size; - unsigned long console_size; - unsigned long ftrace_size; - unsigned long pmsg_size; - int max_reason; - u32 flags; - struct persistent_ram_ecc_info ecc_info; -}; +struct mvneta_pcpu_stats; -enum { - SKCIPHER_WALK_PHYS = 1, - SKCIPHER_WALK_SLOW = 2, - SKCIPHER_WALK_COPY = 4, - SKCIPHER_WALK_DIFF = 8, - SKCIPHER_WALK_SLEEP = 16, -}; +struct mvneta_rx_queue; -struct skcipher_walk_buffer { - struct list_head entry; - struct scatter_walk dst; - unsigned int len; - u8 *data; - u8 buffer[0]; -}; +struct mvneta_tx_queue; -struct skcipher_request; +struct mvneta_bm; -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; - long: 32; - long: 32; +struct mvneta_bm_pool; + +struct mvneta_port { + u8 id; + struct mvneta_pcpu_port __attribute__((btf_type_tag("percpu"))) *ports; + struct mvneta_pcpu_stats __attribute__((btf_type_tag("percpu"))) *stats; + unsigned long state; + int pkt_size; + void *base; + struct mvneta_rx_queue *rxqs; + struct mvneta_tx_queue *txqs; + struct net_device *dev; + struct hlist_node node_online; + struct hlist_node node_dead; + int rxq_def; + spinlock_t lock; + bool is_stopped; + u32 cause_rx_tx; long: 32; + struct napi_struct napi; + struct bpf_prog *xdp_prog; + struct clk *clk; + struct clk *clk_bus; + u8 mcast_count[256]; + u16 tx_ring_size; + u16 rx_ring_size; + phy_interface_t phy_interface; + struct device_node *dn; + unsigned int tx_csum_limit; + struct phylink *phylink; + struct phylink_config phylink_config; + struct phylink_pcs phylink_pcs; + struct phy *comphy; + struct mvneta_bm *bm_priv; + struct mvneta_bm_pool *pool_long; + struct mvneta_bm_pool *pool_short; + int bm_win_id; + bool eee_enabled; + bool eee_active; + bool tx_lpi_enabled; + u64 ethtool_stats[42]; + u32 indir[1]; + bool neta_armada3700; + bool neta_ac5; + u16 rx_offset_correction; + const struct mbus_dram_target_info *dram_target_info; long: 32; +}; + +struct mvneta_pcpu_port { + struct mvneta_port *pp; long: 32; + struct napi_struct napi; + u32 cause_rx_tx; long: 32; - struct crypto_alg base; }; -struct skcipher_request { - unsigned int cryptlen; - u8 *iv; - struct scatterlist *src; - struct scatterlist *dst; - struct crypto_async_request base; +struct mvneta_stats { + u64 rx_packets; + u64 rx_bytes; + u64 tx_packets; + u64 tx_bytes; + u64 xdp_redirect; + u64 xdp_pass; + u64 xdp_drop; + u64 xdp_xmit; + u64 xdp_xmit_err; + u64 xdp_tx; + u64 xdp_tx_err; +}; + +struct mvneta_ethtool_stats { + struct mvneta_stats ps; + u64 skb_alloc_error; + u64 refill_error; +}; + +struct mvneta_pcpu_stats { + struct u64_stats_sync syncp; long: 32; + struct mvneta_ethtool_stats es; + u64 rx_dropped; + u64 rx_errors; +}; + +struct mvneta_rx_desc; + +struct mvneta_rx_queue { + u8 id; + int size; + u32 pkts_coal; + u32 time_coal; + struct page_pool *page_pool; long: 32; long: 32; long: 32; long: 32; long: 32; - void *__ctx[0]; -}; - -struct skcipher_instance { - void (*free)(struct skcipher_instance *); long: 32; long: 32; long: 32; long: 32; long: 32; long: 32; + struct xdp_rxq_info xdp_rxq; + void **buf_virt_addr; + struct mvneta_rx_desc *descs; + dma_addr_t descs_phys; + int last_desc; + int next_desc_to_proc; + int first_to_refill; + u32 refill_num; long: 32; long: 32; long: 32; @@ -131543,9800 +133541,10104 @@ struct skcipher_instance { long: 32; long: 32; long: 32; +}; + +struct mvneta_rx_desc { + u32 status; + u16 reserved1; + u16 data_size; + u32 buf_phys_addr; + u32 reserved2; + u32 buf_cookie; + u16 reserved3; + u16 reserved4; + u32 reserved5; + u32 reserved6; +}; + +struct mvneta_tx_buf; + +struct mvneta_tx_desc; + +struct mvneta_tx_queue { + u8 id; + int size; + int count; + int pending; + int tx_stop_threshold; + int tx_wake_threshold; + struct mvneta_tx_buf *buf; + int txq_put_index; + int txq_get_index; + u32 done_pkts_coal; + struct mvneta_tx_desc *descs; + dma_addr_t descs_phys; + int last_desc; + int next_desc_to_proc; + char *tso_hdrs[32]; + dma_addr_t tso_hdrs_phys[32]; + cpumask_t affinity_mask; +}; + +struct mvneta_tx_buf { + enum mvneta_tx_buf_type type; union { - struct { - char head[64]; - struct crypto_instance base; - } s; - struct skcipher_alg alg; + struct xdp_frame *xdpf; + struct sk_buff *skb; }; }; -struct crypto_cipher { - struct crypto_tfm base; +struct mvneta_tx_desc { + u32 command; + u16 reserved1; + u16 data_size; + u32 buf_phys_addr; + u32 reserved2; + u32 reserved3[4]; }; -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 mvneta_bm { + void *reg_base; + struct clk *clk; + struct platform_device *pdev; + struct gen_pool *bppi_pool; + void *bppi_virt_addr; + dma_addr_t bppi_phys_addr; + struct mvneta_bm_pool *bm_pools; }; -struct crypto_istat_cipher { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t err_cnt; +struct hwbm_pool { + int size; + int frag_size; + int buf_num; + int (*construct)(struct hwbm_pool *, void *); + struct mutex buf_lock; + void *priv; }; -struct crypto_cipher_spawn { - struct crypto_spawn base; +struct mvneta_bm_pool { + struct hwbm_pool hwbm_pool; + u8 id; + enum mvneta_bm_type type; + int pkt_size; + u32 buf_size; + u32 *virt_addr; + dma_addr_t phys_addr; + u8 port_map; + struct mvneta_bm *priv; }; -struct skcipher_ctx_simple { - struct crypto_cipher *cipher; +struct tc_mqprio_qopt { + __u8 num_tc; + __u8 prio_tc_map[16]; + __u8 hw; + __u16 count[16]; + __u16 offset[16]; }; -struct crypto_skcipher_spawn { - struct crypto_spawn base; +struct tc_mqprio_qopt_offload { + struct tc_mqprio_qopt qopt; + struct netlink_ext_ack *extack; + u16 mode; + u16 shaper; + u32 flags; + u64 min_rate[16]; + u64 max_rate[16]; + unsigned long preemptible_tcs; + long: 32; }; -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 dwxgmac3_error_desc { + bool valid; + const char *desc; + const char *detailed_desc; }; -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; +struct dwxgmac3_error { + const struct dwxgmac3_error_desc *desc; +}; + +struct cpsw_stats { + char stat_string[32]; + int type; + int sizeof_stat; + int stat_offset; +}; + +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 dwc3_acpi_pdata; + +struct dwc3_qcom { + struct device *dev; + void *qscratch_base; + struct platform_device *dwc3; + struct platform_device *urs_usb; + struct clk **clks; + int num_clocks; + struct reset_control *resets; + int hs_phy_irq; + int dp_hs_phy_irq; + int dm_hs_phy_irq; + int ss_phy_irq; + enum usb_device_speed usb2_speed; + struct extcon_dev *edev; + struct extcon_dev *host_edev; + struct notifier_block vbus_nb; + struct notifier_block host_nb; + const struct dwc3_acpi_pdata *acpi_pdata; + enum usb_dr_mode mode; + bool is_suspended; + bool pm_suspended; + struct icc_path *icc_path_ddr; + struct icc_path *icc_path_apps; +}; + +struct dwc3_acpi_pdata { + u32 qscratch_base_offset; + u32 qscratch_base_size; + u32 dwc3_core_base_size; + int hs_phy_irq_index; + int dp_hs_phy_irq_index; + int dm_hs_phy_irq_index; + int ss_phy_irq_index; + bool is_urs; +}; + +struct ehci_platform_priv { + struct clk *clks[4]; + struct reset_control *rsts; + bool reset_on_resume; + bool quirk_poll; + struct timer_list poll_timer; + struct delayed_work poll_work; +}; + +struct usb_udc { + struct usb_gadget_driver *driver; + struct usb_gadget *gadget; + struct device dev; + struct list_head list; + bool vbus; + bool started; + bool allow_connect; + struct work_struct vbus_work; + struct mutex connect_lock; }; -typedef struct _gpt_header gpt_header; - -struct _gpt_entry_attributes { - u64 required_to_function: 1; - u64 reserved: 47; - u64 type_guid_specific: 16; +struct js_event { + __u32 time; + __s16 value; + __u8 type; + __u8 number; }; -typedef struct _gpt_entry_attributes gpt_entry_attributes; +struct joydev; -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]; +struct joydev_client { + struct js_event buffer[64]; + int head; + int tail; + int startup; + spinlock_t buffer_lock; + struct fasync_struct *fasync; + struct joydev *joydev; + struct list_head node; }; -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; +struct js_corr { + __s32 coef[8]; + __s16 prec; + __u16 type; }; -typedef struct _gpt_mbr_record gpt_mbr_record; - -struct _legacy_mbr { - u8 boot_code[440]; - __le32 unique_mbr_signature; - __le16 unknown; - gpt_mbr_record partition_record[4]; - __le16 signature; -} __attribute__((packed)); - -typedef struct _legacy_mbr legacy_mbr; +struct JS_DATA_TYPE { + __s32 buttons; + __s32 x; + __s32 y; +}; -typedef u16 ucs2_char_t; +struct JS_DATA_SAVE_TYPE_32 { + __s32 JS_TIMEOUT; + __s32 BUSY; + __s32 JS_EXPIRETIME; + __s32 JS_TIMELIMIT; + struct JS_DATA_TYPE JS_SAVE; + struct JS_DATA_TYPE JS_CORR; +}; -struct combiner_chip_data { - unsigned int hwirq_offset; - unsigned int irq_mask; - void *base; - unsigned int parent_irq; - u32 pm_save; +struct joydev { + int open; + struct input_handle handle; + wait_queue_head_t wait; + struct list_head client_list; + spinlock_t client_lock; + struct mutex mutex; + long: 32; + struct device dev; + struct cdev cdev; + bool exist; + struct js_corr corr[64]; + struct JS_DATA_SAVE_TYPE_32 glue; + int nabs; + int nkey; + __u16 keymap[512]; + __u16 keypam[512]; + __u8 absmap[64]; + __u8 abspam[64]; + __s16 abs[64]; }; -struct rza1_irqc_priv { +struct sun4i_ts_data { struct device *dev; + struct input_dev *input; void *base; - struct irq_chip chip; - struct irq_domain *irq_domain; - struct of_phandle_args map[8]; + unsigned int irq; + bool ignore_fifo_data; + int temp_data; + int temp_offset; + int temp_step; }; -struct vexpress_config_bridge_ops { - struct regmap * (*regmap_init)(struct device *, void *); - void (*regmap_exit)(struct regmap *, void *); -}; +struct ds1307; -struct vexpress_syscfg; +struct chip_desc___2 { + unsigned int alarm: 1; + u16 nvram_offset; + u16 nvram_size; + u8 offset; + u8 century_reg; + u8 century_enable_bit; + u8 century_bit; + u8 bbsqi_bit; + irq_handler_t irq_handler; + const struct rtc_class_ops *rtc_ops; + u16 trickle_charger_reg; + u8 (*do_trickle_setup)(struct ds1307 *, u32, bool); + bool requires_trickle_resistor; + bool charge_default; +}; -struct vexpress_syscfg_func { - struct list_head list; - struct vexpress_syscfg *syscfg; - struct regmap *regmap; - int num_templates; - u32 template[0]; +enum ds_type { + unknown_ds_type = 0, + ds_1307 = 1, + ds_1308 = 2, + ds_1337 = 3, + ds_1338 = 4, + ds_1339 = 5, + ds_1340 = 6, + ds_1341 = 7, + ds_1388 = 8, + ds_3231 = 9, + m41t0 = 10, + m41t00 = 11, + m41t11 = 12, + mcp794xx = 13, + rx_8025 = 14, + rx_8130 = 15, + last_ds_type = 16, }; -struct vexpress_syscfg { +struct ds1307 { + enum ds_type type; struct device *dev; - void *base; - struct list_head funcs; + struct regmap *regmap; + const char *name; + struct rtc_device *rtc; + struct clk_hw clks[2]; }; -struct vexpress_config_bridge { - struct vexpress_config_bridge_ops *ops; - void *context; +enum { + DS3231_CLK_SQW = 0, + DS3231_CLK_32KHZ = 1, }; -struct uniphier_u2phy_param { - u32 offset; - u32 value; +struct ds1307_platform_data { + u8 trickle_charger_setup; }; -struct uniphier_u2phy_soc_data { - struct uniphier_u2phy_param config0; - struct uniphier_u2phy_param config1; +enum imx_i2c_type { + IMX1_I2C = 0, + IMX21_I2C = 1, + VF610_I2C = 2, }; -struct uniphier_u2phy_priv { - struct regmap *regmap; - struct phy *phy; - struct regulator *vbus; - const struct uniphier_u2phy_soc_data *data; - struct uniphier_u2phy_priv *next; +struct imx_i2c_clk_pair; + +struct imx_i2c_hwdata { + enum imx_i2c_type devtype; + unsigned int regshift; + struct imx_i2c_clk_pair *clk_div; + unsigned int ndivs; + unsigned int i2sr_clr_opcode; + unsigned int i2cr_ien_opcode; + bool has_err007805; }; -enum aspeed_pin_config_map_type { - MAP_TYPE_ARG = 0, - MAP_TYPE_VAL = 1, +struct imx_i2c_clk_pair { + u16 div; + u16 val; }; -struct aspeed_sig_desc; +struct imx_i2c_dma; -struct aspeed_sig_expr { - const char *signal; - const char *function; - int ndescs; - const struct aspeed_sig_desc *descs; +struct imx_i2c_struct { + struct i2c_adapter adapter; + struct clk *clk; + struct notifier_block clk_change_nb; + void *base; + wait_queue_head_t queue; + unsigned long i2csr; + unsigned int disable_delay; + int stopped; + unsigned int ifdr; + unsigned int cur_clk; + unsigned int bitrate; + const struct imx_i2c_hwdata *hwdata; + struct i2c_bus_recovery_info rinfo; + struct pinctrl *pinctrl; + struct pinctrl_state *pinctrl_pins_default; + struct pinctrl_state *pinctrl_pins_gpio; + struct imx_i2c_dma *dma; + struct i2c_client *slave; + enum i2c_slave_event last_slave_event; + spinlock_t slave_lock; + long: 32; + struct hrtimer slave_timer; }; -struct aspeed_sig_desc { - unsigned int ip; - unsigned int reg; - u32 mask; - u32 enable; - u32 disable; +struct imx_i2c_dma { + struct dma_chan *chan_tx; + struct dma_chan *chan_rx; + struct dma_chan *chan_using; + struct completion cmd_complete; + dma_addr_t dma_buf; + unsigned int dma_len; + enum dma_transfer_direction dma_transfer_dir; + enum dma_data_direction dma_data_dir; }; -struct aspeed_pinmux_ops; - -struct aspeed_pin_group; - -struct aspeed_pin_function; - -struct aspeed_pinmux_data { - struct device *dev; - struct regmap *maps[3]; - const struct aspeed_pinmux_ops *ops; - const struct aspeed_pin_group *groups; - const unsigned int ngroups; - const struct aspeed_pin_function *functions; - const unsigned int nfunctions; +struct imxi2c_platform_data { + u32 bitrate; }; -struct aspeed_pinmux_ops { - int (*eval)(struct aspeed_pinmux_data *, const struct aspeed_sig_expr *, bool); - int (*set)(struct aspeed_pinmux_data *, const struct aspeed_sig_expr *, bool); +struct iio_hwmon_state { + struct iio_channel *channels; + int num_channels; + struct attribute_group attr_group; + const struct attribute_group *groups[2]; + struct attribute **attrs; }; -struct aspeed_pin_group { - const char *name; - const unsigned int *pins; - const unsigned int npins; +enum tshut_mode { + TSHUT_MODE_CRU = 0, + TSHUT_MODE_GPIO = 1, }; -struct aspeed_pin_function { - const char *name; - const char * const *groups; - unsigned int ngroups; +enum tshut_polarity { + TSHUT_LOW_ACTIVE = 0, + TSHUT_HIGH_ACTIVE = 1, }; -struct aspeed_pin_desc { - const char *name; - const struct aspeed_sig_expr ***prios; +enum adc_sort_mode { + ADC_DECREMENT = 0, + ADC_INCREMENT = 1, }; -struct aspeed_pin_config { - enum pin_config_param param; - unsigned int pins[2]; - unsigned int reg; - u32 mask; +struct tsadc_table; + +struct chip_tsadc_table { + const struct tsadc_table *id; + unsigned int length; + u32 data_mask; + enum adc_sort_mode mode; }; -struct aspeed_pin_config_map; +struct rockchip_tsadc_chip { + int chn_offset; + int chn_num; + int tshut_temp; + enum tshut_mode tshut_mode; + enum tshut_polarity tshut_polarity; + void (*initialize)(struct regmap *, void *, enum tshut_polarity); + void (*irq_ack)(void *); + void (*control)(void *, bool); + int (*get_temp)(const struct chip_tsadc_table *, int, void *, int *); + int (*set_alarm_temp)(const struct chip_tsadc_table *, int, void *, int); + int (*set_tshut_temp)(const struct chip_tsadc_table *, int, void *, int); + void (*set_tshut_mode)(int, void *, enum tshut_mode); + struct chip_tsadc_table table; +}; -struct aspeed_pinctrl_data { - struct regmap *scu; - const struct pinctrl_pin_desc *pins; - const unsigned int npins; - const struct aspeed_pin_config *configs; - const unsigned int nconfigs; - struct aspeed_pinmux_data pinmux; - const struct aspeed_pin_config_map *confmaps; - const unsigned int nconfmaps; +struct tsadc_table { + u32 code; + int temp; }; -struct aspeed_pin_config_map { - enum pin_config_param param; - s32 arg; - u32 val; - u32 mask; +struct rockchip_thermal_sensor; + +struct rockchip_thermal_data { + const struct rockchip_tsadc_chip *chip; + struct platform_device *pdev; + struct reset_control *reset; + struct rockchip_thermal_sensor *sensors; + struct clk *clk; + struct clk *pclk; + struct regmap *grf; + void *regs; + int tshut_temp; + enum tshut_mode tshut_mode; + enum tshut_polarity tshut_polarity; }; -enum meson_reg_type { - MESON_REG_PULLEN = 0, - MESON_REG_PULL = 1, - MESON_REG_DIR = 2, - MESON_REG_OUT = 3, - MESON_REG_IN = 4, - MESON_REG_DS = 5, - MESON_NUM_REG = 6, +struct rockchip_thermal_sensor { + struct rockchip_thermal_data *thermal; + struct thermal_zone_device *tzd; + int id; }; -enum meson_pinconf_drv { - MESON_PINCONF_DRV_500UA = 0, - MESON_PINCONF_DRV_2500UA = 1, - MESON_PINCONF_DRV_3000UA = 2, - MESON_PINCONF_DRV_4000UA = 3, +struct hb_l2_drvdata { + void *base; + int sb_irq; + int db_irq; }; -enum uniphier_pin_pull_dir { - UNIPHIER_PIN_PULL_UP = 0, - UNIPHIER_PIN_PULL_DOWN = 1, - UNIPHIER_PIN_PULL_UP_FIXED = 2, - UNIPHIER_PIN_PULL_DOWN_FIXED = 3, - UNIPHIER_PIN_PULL_NONE = 4, +struct scmi_data { + int domain_id; + int nr_opp; + struct device *cpu_dev; + cpumask_var_t opp_shared_cpus; }; -enum uniphier_pin_drv_type { - UNIPHIER_PIN_DRV_1BIT = 0, - UNIPHIER_PIN_DRV_2BIT = 1, - UNIPHIER_PIN_DRV_3BIT = 2, - UNIPHIER_PIN_DRV_FIXED4 = 3, - UNIPHIER_PIN_DRV_FIXED5 = 4, - UNIPHIER_PIN_DRV_FIXED8 = 5, - UNIPHIER_PIN_DRV_NONE = 6, +struct mmc_gpio { + struct gpio_desc *ro_gpio; + struct gpio_desc *cd_gpio; + irqreturn_t (*cd_gpio_isr)(int, void *); + char *ro_label; + char *cd_label; + u32 cd_debounce_delay_ms; + int cd_irq; }; -struct uniphier_pinctrl_reg_region { - struct list_head node; - unsigned int base; - unsigned int nregs; - u32 vals[0]; +struct bl_trig_notifier { + struct led_classdev *led; + int brightness; + int old_status; + struct notifier_block notifier; + unsigned int invert; }; -struct uniphier_pinctrl_priv { - struct pinctrl_desc pctldesc; - struct pinctrl_dev *pctldev; - struct regmap *regmap; - const struct uniphier_pinctrl_socdata *socdata; - struct list_head reg_regions; +struct arch_timer_kvm_info { + struct timecounter timecounter; + int virtual_irq; + int physical_irq; }; -struct kona_pwmc { - struct pwm_chip chip; +struct arch_timer { void *base; - struct clk *clk; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct clock_event_device evt; }; -struct rcar_pcie { - struct device *dev; - void *base; +enum arch_timer_ppi_nr { + ARCH_TIMER_PHYS_SECURE_PPI = 0, + ARCH_TIMER_PHYS_NONSECURE_PPI = 1, + ARCH_TIMER_VIRT_PPI = 2, + ARCH_TIMER_HYP_PPI = 3, + ARCH_TIMER_HYP_VIRT_PPI = 4, + ARCH_TIMER_MAX_TIMER_PPI = 5, }; -struct clk_gate_soc_desc { - const char *name; - int bit_idx; +enum arch_timer_reg { + ARCH_TIMER_REG_CTRL = 0, + ARCH_TIMER_REG_CVAL = 1, }; -struct lan966x_gck { - struct clk_hw hw; - void *reg; +enum arch_timer_spi_nr { + ARCH_TIMER_PHYS_SPI = 0, + ARCH_TIMER_VIRT_SPI = 1, + ARCH_TIMER_MAX_TIMER_SPI = 2, }; -enum bcm_clk_type { - bcm_clk_none = 0, - bcm_clk_bus = 1, - bcm_clk_core = 2, - bcm_clk_peri = 3, +struct arch_timer_mem_frame { + bool valid; + phys_addr_t cntbase; + size_t size; + int phys_irq; + int virt_irq; }; -struct ccu_data; +struct arch_timer_mem { + phys_addr_t cntctlbase; + size_t size; + struct arch_timer_mem_frame frame[8]; +}; -struct peri_clk_data; +struct rproc_dump_segment { + struct list_head node; + dma_addr_t da; + size_t size; + void *priv; + void (*dump)(struct rproc *, struct rproc_dump_segment *, void *, size_t, size_t); + loff_t offset; +}; -struct kona_clk { - struct clk_hw hw; - struct clk_init_data init_data; - struct ccu_data *ccu; - enum bcm_clk_type type; - union { - void *data; - struct peri_clk_data *peri; - } u; +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 bcm_lvm_en { - u32 offset; - u32 bit; +struct rproc_coredump_state { + struct rproc *rproc; + void *header; + struct completion dump_done; }; -struct bcm_policy_ctl { - u32 offset; - u32 go_bit; - u32 atl_bit; - u32 ac_bit; +enum xadc_type { + XADC_TYPE_S7 = 0, + XADC_TYPE_US = 1, }; -struct ccu_policy { - struct bcm_lvm_en enable; - struct bcm_policy_ctl control; +enum xadc_external_mux_mode { + XADC_EXTERNAL_MUX_NONE = 0, + XADC_EXTERNAL_MUX_SINGLE = 1, + XADC_EXTERNAL_MUX_DUAL = 2, }; -struct ccu_data { +struct xadc_ops; + +struct xadc { void *base; + struct clk *clk; + const struct xadc_ops *ops; + uint16_t threshold[16]; + uint16_t temp_hysteresis; + unsigned int alarm_mask; + uint16_t *data; + struct iio_trigger *trigger; + struct iio_trigger *convst_trigger; + struct iio_trigger *samplerate_trigger; + enum xadc_external_mux_mode external_mux_mode; + unsigned int zynq_masked_alarm; + unsigned int zynq_intmask; + struct delayed_work zynq_unmask_work; + struct mutex mutex; spinlock_t lock; - bool write_enabled; - struct ccu_policy policy; - struct device_node *node; - size_t clk_num; - const char *name; - u32 range; - struct kona_clk kona_clks[0]; + struct completion completion; }; -struct bcm_clk_policy { - u32 offset; - u32 bit; +struct xadc_ops { + int (*read)(struct xadc *, unsigned int, uint16_t *); + int (*write)(struct xadc *, unsigned int, uint16_t); + int (*setup)(struct platform_device *, struct iio_dev *, int); + void (*update_alarm)(struct xadc *, unsigned int); + unsigned long (*get_dclk_rate)(struct xadc *); + irqreturn_t (*interrupt_handler)(int, void *); + unsigned int flags; + enum xadc_type type; + int temp_scale; + int temp_offset; }; -struct bcm_clk_gate { - u32 offset; - u32 status_bit; - u32 en_bit; - u32 hw_sw_sel_bit; - u32 flags; +struct sunxi_sid_cfg { + u32 value_offset; + u32 size; + bool need_register_readout; }; -struct bcm_clk_hyst { - u32 offset; - u32 en_bit; - u32 val_bit; +struct sunxi_sid { + void *base; + u32 value_offset; }; -struct bcm_clk_trig { - u32 offset; - u32 bit; - u32 flags; +struct drop_reason_list { + const char * const *reasons; + size_t n_reasons; }; -struct bcm_clk_div { - union { - struct { - u32 offset; - u32 shift; - u32 width; - u32 frac_width; - u64 scaled_div; - } s; - u32 fixed; - } u; - u32 flags; - long: 32; +struct skb_checksum_ops { + __wsum (*update)(const void *, int, __wsum); + __wsum (*combine)(__wsum, __wsum, int, int); }; -struct bcm_clk_sel { - u32 offset; - u32 shift; - u32 width; - u32 parent_count; - u32 *parent_sel; - u8 clk_index; +struct page_frag_1k { + void *va; + u16 offset; + bool pfmemalloc; }; -struct peri_clk_data { - struct bcm_clk_policy policy; - struct bcm_clk_gate gate; - struct bcm_clk_hyst hyst; - struct bcm_clk_trig pre_trig; - long: 32; - struct bcm_clk_div pre_div; - struct bcm_clk_trig trig; - long: 32; - struct bcm_clk_div div; - struct bcm_clk_sel sel; - const char *clocks[0]; +struct napi_alloc_cache { + struct page_frag_cache page; + struct page_frag_1k page_small; + unsigned int skb_count; + void *skb_cache[64]; }; -struct clk_pllv3 { - struct clk_hw hw; - void *base; - u32 power_bit; - bool powerup_set; - u32 div_mask; - u32 div_shift; - unsigned long ref_clock; - u32 num_offset; - u32 denom_offset; +enum skb_drop_reason_subsys { + SKB_DROP_REASON_SUBSYS_CORE = 0, + SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1, + SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR = 2, + SKB_DROP_REASON_SUBSYS_OPENVSWITCH = 3, + SKB_DROP_REASON_SUBSYS_NUM = 4, }; -struct clk_pllv3_vf610_mf { - u32 mfi; - u32 mfn; - u32 mfd; +struct sk_buff_fclones { + struct sk_buff skb1; + struct sk_buff skb2; + refcount_t fclone_ref; + long: 32; }; -struct mmp_param_general_gate_clk { - unsigned int id; - const char *name; - const char *parent_name; - unsigned long flags; - unsigned long offset; - u8 bit_idx; - u8 gate_flags; - spinlock_t *lock; +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 mstp_clock_group; +struct ip_auth_hdr { + __u8 nexthdr; + __u8 hdrlen; + __be16 reserved; + __be32 spi; + __be32 seq_no; + __u8 auth_data[0]; +}; -struct mstp_clock___2 { - struct clk_hw hw; - u32 bit_index; - struct mstp_clock_group *group; +struct mpls_shim_hdr { + __be32 label_stack_entry; }; -struct mstp_clock_group { - struct clk_onecell_data data; - void *smstpcr; - void *mstpsr; - spinlock_t lock; - bool width_8bit; - struct clk *clks[0]; +struct skb_free_array { + unsigned int skb_count; + void *skb_array[16]; }; -struct socfpga_gate_clk { - struct clk_gate hw; - char *parent_name; - u32 fixed_div; - void *div_reg; - void *bypass_reg; - struct regmap *sys_mgr_base_addr; - u32 width; - u32 shift; - u32 bypass_shift; +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 prcmu_fw_version { - u32 project; - u8 api_version; - u8 func_version; - u8 errata; - char project_name[20]; +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 omap_dma_config { - int lch_end; - unsigned int rw_priority: 1; - unsigned int needs_busy_check: 1; - unsigned int may_lose_context: 1; - unsigned int needs_lch_clear: 1; +struct ts_state { + unsigned int offset; + char cb[48]; }; -enum omap_reg_offsets { - GCR = 0, - GSCR = 1, - GRST1 = 2, - HW_ID = 3, - PCH2_ID = 4, - PCH0_ID = 5, - PCH1_ID = 6, - PCHG_ID = 7, - PCHD_ID = 8, - CAPS_0 = 9, - CAPS_1 = 10, - CAPS_2 = 11, - CAPS_3 = 12, - CAPS_4 = 13, - PCH2_SR = 14, - PCH0_SR = 15, - PCH1_SR = 16, - PCHD_SR = 17, - REVISION = 18, - IRQSTATUS_L0 = 19, - IRQSTATUS_L1 = 20, - IRQSTATUS_L2 = 21, - IRQSTATUS_L3 = 22, - IRQENABLE_L0 = 23, - IRQENABLE_L1 = 24, - IRQENABLE_L2 = 25, - IRQENABLE_L3 = 26, - SYSSTATUS = 27, - OCP_SYSCONFIG = 28, - CPC = 29, - CCR2 = 30, - LCH_CTRL = 31, - CSDP = 32, - CCR = 33, - CICR = 34, - CSR = 35, - CEN = 36, - CFN = 37, - CSFI = 38, - CSEI = 39, - CSAC = 40, - CDAC = 41, - CDEI = 42, - CDFI = 43, - CLNK_CTRL = 44, - CSSA = 45, - CDSA = 46, - COLOR = 47, - CCEN = 48, - CCFN = 49, - CDP = 50, - CNDP = 51, - CCDN = 52, +typedef int (*sendmsg_func)(struct sock *, struct msghdr *); + +enum netlink_attribute_type { + NL_ATTR_TYPE_INVALID = 0, + NL_ATTR_TYPE_FLAG = 1, + NL_ATTR_TYPE_U8 = 2, + NL_ATTR_TYPE_U16 = 3, + NL_ATTR_TYPE_U32 = 4, + NL_ATTR_TYPE_U64 = 5, + NL_ATTR_TYPE_S8 = 6, + NL_ATTR_TYPE_S16 = 7, + NL_ATTR_TYPE_S32 = 8, + NL_ATTR_TYPE_S64 = 9, + NL_ATTR_TYPE_BINARY = 10, + NL_ATTR_TYPE_STRING = 11, + NL_ATTR_TYPE_NUL_STRING = 12, + NL_ATTR_TYPE_NESTED = 13, + NL_ATTR_TYPE_NESTED_ARRAY = 14, + NL_ATTR_TYPE_BITFIELD32 = 15, + NL_ATTR_TYPE_SINT = 16, + NL_ATTR_TYPE_UINT = 17, }; -enum { - CAPS_0_SUPPORT_LL123 = 1048576, - CAPS_0_SUPPORT_LL4 = 2097152, - CCR_FS = 32, - CCR_READ_PRIORITY = 64, - CCR_ENABLE = 128, - CCR_AUTO_INIT = 256, - CCR_REPEAT = 512, - CCR_OMAP31_DISABLE = 1024, - CCR_SUSPEND_SENSITIVE = 256, - CCR_RD_ACTIVE = 512, - CCR_WR_ACTIVE = 1024, - CCR_SRC_AMODE_CONSTANT = 0, - CCR_SRC_AMODE_POSTINC = 4096, - CCR_SRC_AMODE_SGLIDX = 8192, - CCR_SRC_AMODE_DBLIDX = 12288, - CCR_DST_AMODE_CONSTANT = 0, - CCR_DST_AMODE_POSTINC = 16384, - CCR_DST_AMODE_SGLIDX = 32768, - CCR_DST_AMODE_DBLIDX = 49152, - CCR_CONSTANT_FILL = 65536, - CCR_TRANSPARENT_COPY = 131072, - CCR_BS = 262144, - CCR_SUPERVISOR = 4194304, - CCR_PREFETCH = 8388608, - CCR_TRIGGER_SRC = 16777216, - CCR_BUFFERING_DISABLE = 33554432, - CCR_WRITE_PRIORITY = 67108864, - CCR_SYNC_ELEMENT = 0, - CCR_SYNC_FRAME = 32, - CCR_SYNC_BLOCK = 262144, - CCR_SYNC_PACKET = 262176, - CSDP_DATA_TYPE_8 = 0, - CSDP_DATA_TYPE_16 = 1, - CSDP_DATA_TYPE_32 = 2, - CSDP_SRC_PORT_EMIFF = 0, - CSDP_SRC_PORT_EMIFS = 4, - CSDP_SRC_PORT_OCP_T1 = 8, - CSDP_SRC_PORT_TIPB = 12, - CSDP_SRC_PORT_OCP_T2 = 16, - CSDP_SRC_PORT_MPUI = 20, - CSDP_SRC_PACKED = 64, - CSDP_SRC_BURST_1 = 0, - CSDP_SRC_BURST_16 = 128, - CSDP_SRC_BURST_32 = 256, - CSDP_SRC_BURST_64 = 384, - CSDP_DST_PORT_EMIFF = 0, - CSDP_DST_PORT_EMIFS = 512, - CSDP_DST_PORT_OCP_T1 = 1024, - CSDP_DST_PORT_TIPB = 1536, - CSDP_DST_PORT_OCP_T2 = 2048, - CSDP_DST_PORT_MPUI = 2560, - CSDP_DST_PACKED = 8192, - CSDP_DST_BURST_1 = 0, - CSDP_DST_BURST_16 = 16384, - CSDP_DST_BURST_32 = 32768, - CSDP_DST_BURST_64 = 49152, - CSDP_WRITE_NON_POSTED = 0, - CSDP_WRITE_POSTED = 65536, - CSDP_WRITE_LAST_NON_POSTED = 131072, - CICR_TOUT_IE = 1, - CICR_DROP_IE = 2, - CICR_HALF_IE = 4, - CICR_FRAME_IE = 8, - CICR_LAST_IE = 16, - CICR_BLOCK_IE = 32, - CICR_PKT_IE = 128, - CICR_TRANS_ERR_IE = 256, - CICR_SUPERVISOR_ERR_IE = 1024, - CICR_MISALIGNED_ERR_IE = 2048, - CICR_DRAIN_IE = 4096, - CICR_SUPER_BLOCK_IE = 16384, - CLNK_CTRL_ENABLE_LNK = 32768, - CDP_DST_VALID_INC = 0, - CDP_DST_VALID_RELOAD = 1, - CDP_DST_VALID_REUSE = 2, - CDP_SRC_VALID_INC = 0, - CDP_SRC_VALID_RELOAD = 4, - CDP_SRC_VALID_REUSE = 8, - CDP_NTYPE_TYPE1 = 16, - CDP_NTYPE_TYPE2 = 32, - CDP_NTYPE_TYPE3 = 48, - CDP_TMODE_NORMAL = 0, - CDP_TMODE_LLIST = 256, - CDP_FAST = 1024, +enum netlink_policy_type_attr { + NL_POLICY_TYPE_ATTR_UNSPEC = 0, + NL_POLICY_TYPE_ATTR_TYPE = 1, + NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 2, + NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 3, + NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 4, + NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 5, + NL_POLICY_TYPE_ATTR_MIN_LENGTH = 6, + NL_POLICY_TYPE_ATTR_MAX_LENGTH = 7, + NL_POLICY_TYPE_ATTR_POLICY_IDX = 8, + NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 9, + NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 10, + NL_POLICY_TYPE_ATTR_PAD = 11, + NL_POLICY_TYPE_ATTR_MASK = 12, + __NL_POLICY_TYPE_ATTR_MAX = 13, + NL_POLICY_TYPE_ATTR_MAX = 12, }; -enum { - OMAP_DMA_REG_NONE = 0, - OMAP_DMA_REG_16BIT = 1, - OMAP_DMA_REG_2X16BIT = 2, - OMAP_DMA_REG_32BIT = 3, +struct netlink_policy_dump_state { + unsigned int policy_idx; + unsigned int attr_idx; + unsigned int n_alloc; + struct { + const struct nla_policy *policy; + unsigned int maxtype; + } policies[0]; }; -struct omap_dma_context { - u32 irqenable_l0; - u32 irqenable_l1; - u32 ocp_sysconfig; - u32 gcr; +typedef void (*btf_trace_bpf_test_finish)(void *, int *); + +struct bpf_test_timer { + enum { + NO_PREEMPT = 0, + NO_MIGRATE = 1, + } mode; + u32 i; + u64 time_start; + u64 time_spent; }; -struct omap_chan; +struct bpf_fentry_test_t { + struct bpf_fentry_test_t *a; +}; -struct omap_dmadev { - struct dma_device ddev; - spinlock_t lock; - void *base; - const struct omap_dma_reg *reg_map; - struct omap_system_dma_plat_info *plat; - const struct omap_dma_config *cfg; - struct notifier_block nb; - struct omap_dma_context context; - int lch_count; - unsigned long lch_bitmap[1]; - struct mutex lch_lock; - bool legacy; - bool ll123_supported; - struct dma_pool *desc_pool; - unsigned int dma_requests; - spinlock_t irq_lock; - uint32_t irq_enable_mask; - struct omap_chan **lch_map; +struct trace_event_raw_bpf_test_finish { + struct trace_entry ent; + int err; + char __data[0]; }; -struct omap_desc; +struct xdp_test_data { + struct xdp_buff *orig_ctx; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + 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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; -struct omap_chan { - struct virt_dma_chan vc; - void *channel_base; - const struct omap_dma_reg *reg_map; - uint32_t ccr; - struct dma_slave_config cfg; - unsigned int dma_sig; - bool cyclic; - bool paused; - bool running; - int dma_ch; - struct omap_desc *desc; - unsigned int sgidx; +struct xdp_page_head { + struct xdp_buff orig_ctx; + struct xdp_buff ctx; + union { + struct { + struct {} __empty_frame; + struct xdp_frame frame[0]; + }; + struct { + struct {} __empty_data; + u8 data[0]; + }; + }; }; -struct omap_type2_desc; +struct trace_event_data_offsets_bpf_test_finish {}; -struct omap_sg { - dma_addr_t addr; - uint32_t en; - uint32_t fn; - int32_t fi; - int16_t ei; - struct omap_type2_desc *t2_desc; - dma_addr_t t2_desc_paddr; +struct prog_test_member1 { + int a; }; -struct omap_desc { - struct virt_dma_desc vd; - bool using_ll; - enum dma_transfer_direction dir; - dma_addr_t dev_addr; - bool polled; - int32_t fi; - int16_t ei; - uint8_t es; - uint32_t ccr; - uint16_t clnk_ctrl; - uint16_t cicr; - uint32_t csdp; - unsigned int sglen; - struct omap_sg sg[0]; +struct prog_test_member { + struct prog_test_member1 m; + int c; }; -struct omap_type2_desc { - uint32_t next_desc; - uint32_t en; - uint32_t addr; - uint16_t fn; - uint16_t cicr; - int16_t cdei; - int16_t csei; - int32_t cdfi; - int32_t csfi; +struct prog_test_ref_kfunc { + int a; + int b; + struct prog_test_member memb; + struct prog_test_ref_kfunc *next; + refcount_t cnt; }; -enum { - SPEEDO_ID_0 = 0, - SPEEDO_ID_1 = 1, - SPEEDO_ID_2 = 2, - SPEEDO_ID_COUNT = 3, +struct bpf_raw_tp_test_run_info { + struct bpf_prog *prog; + void *ctx; + u32 retval; }; -enum { - THRESHOLD_INDEX_0 = 0, - THRESHOLD_INDEX_1 = 1, - THRESHOLD_INDEX_COUNT = 2, +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 devm_of_regulator_matches { - struct of_regulator_match *matches; - unsigned int num_matches; +struct bpf_nf_ctx { + const struct nf_hook_state *state; + struct sk_buff *skb; }; -enum chips { - TPS62360 = 0, - TPS62361 = 1, - TPS62362 = 2, - TPS62363 = 3, +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 tps62360_regulator_platform_data { - struct regulator_init_data *reg_init_data; - bool en_discharge; - bool en_internal_pulldn; - int vsel0_def_state; - int vsel1_def_state; +struct ip_fraglist_iter { + struct sk_buff *frag; + struct iphdr *iph; + int offset; + unsigned int hlen; }; -struct tps62360_chip { - struct device *dev; - struct regulator_desc desc; - struct regulator_dev *rdev; - struct regmap *regmap; - struct gpio_desc *vsel0_gpio; - struct gpio_desc *vsel1_gpio; - u8 voltage_reg_mask; - bool en_internal_pulldn; - bool en_discharge; - bool valid_gpios; - int lru_index[4]; - int curr_vset_vsel[4]; - int curr_vset_id; +struct arpreq { + struct sockaddr arp_pa; + struct sockaddr arp_ha; + int arp_flags; + struct sockaddr arp_netmask; + char arp_dev[16]; }; -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 ipv6_params { + __s32 disable_ipv6; + __s32 autoconf; }; -struct serial_private { - struct pci_dev *dev; - unsigned int nr; - struct pci_serial_quirk *quirk; - const struct pciserial_board *board; - int line[0]; +struct ioam6_pernet_data { + struct mutex lock; + struct rhashtable namespaces; + struct rhashtable schemas; }; -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; +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, }; -struct timedia_struct { - int num; - const unsigned short *ids; +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, }; -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 sr6_tlv { + __u8 type; + __u8 len; + __u8 data[0]; }; -struct f815xxa_data { - spinlock_t lock; - int idx; +struct mld_msg { + struct icmp6hdr mld_hdr; + struct in6_addr mld_mca; }; -struct tegra_mipi_pad; - -struct tegra_mipi_soc { - bool has_clk_lane; - const struct tegra_mipi_pad *pads; - unsigned int num_pads; - bool clock_enable_override; - bool needs_vclamp_ref; - u8 pad_drive_down_ref; - u8 pad_drive_up_ref; - u8 pad_vclamp_level; - u8 pad_vauxp_level; - u8 hspdos; - u8 hspuos; - u8 termos; - u8 hsclkpdos; - u8 hsclkpuos; +struct bcm_sock { + struct sock sk; + int bound; + int ifindex; + struct list_head notifier; + struct list_head rx_ops; + struct list_head tx_ops; + unsigned long dropped_usr_msgs; + struct proc_dir_entry *bcm_proc_read; + char procname[32]; }; -struct tegra_mipi_pad { - unsigned long data; - unsigned long clk; +enum { + TX_SETUP = 1, + TX_DELETE = 2, + TX_READ = 3, + TX_SEND = 4, + RX_SETUP = 5, + RX_DELETE = 6, + RX_READ = 7, + TX_STATUS = 8, + TX_EXPIRED = 9, + RX_STATUS = 10, + RX_TIMEOUT = 11, + RX_CHANGED = 12, }; -struct tegra_mipi { - const struct tegra_mipi_soc *soc; - struct device *dev; - void *regs; - struct mutex lock; - struct clk *clk; - unsigned long usage_count; +struct bcm_timeval { + long tv_sec; + long tv_usec; }; -struct tegra_mipi_device { - struct platform_device *pdev; - struct tegra_mipi *mipi; - struct device *device; - unsigned long pads; +struct bcm_op { + struct list_head list; + struct callback_head rcu; + int ifindex; + canid_t can_id; + u32 flags; + unsigned long frames_abs; + unsigned long frames_filtered; + struct bcm_timeval ival1; + struct bcm_timeval ival2; + long: 32; + struct hrtimer timer; + struct hrtimer thrtimer; + ktime_t rx_stamp; + ktime_t kt_ival1; + ktime_t kt_ival2; + ktime_t kt_lastmsg; + int rx_ifindex; + int cfsiz; + u32 count; + u32 nframes; + u32 currframe; + void *frames; + void *last_frames; + long: 32; + struct canfd_frame sframe; + struct canfd_frame last_sframe; + struct sock *sk; + struct net_device *rx_reg_dev; }; -struct drm_shadow_plane_state { - struct drm_plane_state base; - struct iosys_map map[4]; - struct iosys_map data[4]; +struct sockaddr_can { + __kernel_sa_family_t can_family; + int can_ifindex; + union { + struct { + canid_t rx_id; + canid_t tx_id; + } tp; + struct { + __u64 name; + __u32 pgn; + __u8 addr; + } j1939; + } can_addr; }; -struct gr3d_soc { - unsigned int version; - unsigned int num_clocks; - unsigned int num_resets; +struct bcm_msg_head { + __u32 opcode; + __u32 flags; + __u32 count; + struct bcm_timeval ival1; + struct bcm_timeval ival2; + canid_t can_id; + __u32 nframes; + long: 32; + struct can_frame frames[0]; }; -enum { - RST_MC = 0, - RST_GR3D = 1, - RST_MC2 = 2, - RST_GR3D2 = 3, - RST_GR3D_MAX = 4, +enum rfkill_sched_op { + RFKILL_GLOBAL_OP_EPO = 0, + RFKILL_GLOBAL_OP_RESTORE = 1, + RFKILL_GLOBAL_OP_UNLOCK = 2, + RFKILL_GLOBAL_OP_UNBLOCK = 3, }; -struct gr3d { - struct tegra_drm_client client; - struct host1x_channel *channel; - const struct gr3d_soc *soc; - struct clk_bulk_data *clocks; - unsigned int nclocks; - struct reset_control_bulk_data resets[4]; - unsigned int nresets; - unsigned long addr_regs[117]; +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 gpd_link { - struct generic_pm_domain *parent; - struct list_head parent_node; - struct generic_pm_domain *child; - struct list_head child_node; - unsigned int performance_state; - unsigned int prev_performance_state; +struct uevent_sock { + struct list_head list; + struct sock *sk; }; -struct gpd_timing_data; - -struct generic_pm_domain_data { - struct pm_domain_data base; - struct gpd_timing_data *td; - struct notifier_block nb; - struct notifier_block *power_nb; - int cpu; - unsigned int performance_state; - unsigned int default_pstate; - unsigned int rpm_pstate; - void *data; +struct mxc_extra_irq { + int (*set_irq_fiq)(unsigned int, unsigned int); }; -struct gpd_timing_data { - s64 suspend_latency_ns; - s64 resume_latency_ns; - s64 effective_constraint_ns; - ktime_t next_wakeup; - bool constraint_changed; - bool cached_suspend_ok; - long: 32; -}; +typedef void (*phys_reset_t___2)(unsigned long); -enum { - Lo_unbound = 0, - Lo_bound = 1, - Lo_rundown = 2, - Lo_deleting = 3, +struct omap3_cm_regs { + u32 iva2_cm_clksel1; + u32 iva2_cm_clksel2; + u32 cm_sysconfig; + u32 sgx_cm_clksel; + u32 dss_cm_clksel; + u32 cam_cm_clksel; + u32 per_cm_clksel; + u32 emu_cm_clksel; + u32 emu_cm_clkstctrl; + u32 pll_cm_autoidle; + u32 pll_cm_autoidle2; + u32 pll_cm_clksel4; + u32 pll_cm_clksel5; + u32 pll_cm_clken2; + u32 cm_polctrl; + u32 iva2_cm_fclken; + u32 iva2_cm_clken_pll; + u32 core_cm_fclken1; + u32 core_cm_fclken3; + u32 sgx_cm_fclken; + u32 wkup_cm_fclken; + u32 dss_cm_fclken; + u32 cam_cm_fclken; + u32 per_cm_fclken; + u32 usbhost_cm_fclken; + u32 core_cm_iclken1; + u32 core_cm_iclken2; + u32 core_cm_iclken3; + u32 sgx_cm_iclken; + u32 wkup_cm_iclken; + u32 dss_cm_iclken; + u32 cam_cm_iclken; + u32 per_cm_iclken; + u32 usbhost_cm_iclken; + u32 iva2_cm_autoidle2; + u32 mpu_cm_autoidle2; + u32 iva2_cm_clkstctrl; + u32 mpu_cm_clkstctrl; + u32 core_cm_clkstctrl; + u32 sgx_cm_clkstctrl; + u32 dss_cm_clkstctrl; + u32 cam_cm_clkstctrl; + u32 per_cm_clkstctrl; + u32 neon_cm_clkstctrl; + u32 usbhost_cm_clkstctrl; + u32 core_cm_autoidle1; + u32 core_cm_autoidle2; + u32 core_cm_autoidle3; + u32 wkup_cm_autoidle; + u32 dss_cm_autoidle; + u32 cam_cm_autoidle; + u32 per_cm_autoidle; + u32 usbhost_cm_autoidle; + u32 sgx_cm_sleepdep; + u32 dss_cm_sleepdep; + u32 cam_cm_sleepdep; + u32 per_cm_sleepdep; + u32 usbhost_cm_sleepdep; + u32 cm_clkout_ctrl; }; -enum { - LO_FLAGS_READ_ONLY = 1, - LO_FLAGS_AUTOCLEAR = 4, - LO_FLAGS_PARTSCAN = 8, - LO_FLAGS_DIRECT_IO = 16, +struct clkdm_autodep { + union { + const char *name; + struct clockdomain *ptr; + } clkdm; }; -struct loop_device { - int lo_number; - long: 32; - 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 taint_flag { + char c_true; + char c_false; + bool module; }; -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; +enum ftrace_dump_mode { + DUMP_NONE = 0, + DUMP_ALL = 1, + DUMP_ORIG = 2, }; -struct loop_cmd { - struct list_head list_entry; - bool use_aio; - atomic_t ref; - long ret; - long: 32; - struct kiocb iocb; - struct bio_vec *bvec; - struct cgroup_subsys_state *blkcg_css; - struct cgroup_subsys_state *memcg_css; - long: 32; +struct warn_args { + const char *fmt; + va_list args; }; -typedef unsigned short __kernel_old_dev_t; +typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int); -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]; -}; +typedef void (*btf_trace_contention_end)(void *, void *, int); -struct loop_info64 { - __u64 lo_device; - __u64 lo_inode; - __u64 lo_rdevice; - __u64 lo_offset; - __u64 lo_sizelimit; - __u32 lo_number; - __u32 lo_encrypt_type; - __u32 lo_encrypt_key_size; - __u32 lo_flags; - __u8 lo_file_name[64]; - __u8 lo_crypt_name[64]; - __u8 lo_encrypt_key[32]; - __u64 lo_init[2]; +struct trace_event_raw_contention_begin { + struct trace_entry ent; + void *lock_addr; + unsigned int flags; + char __data[0]; }; -struct loop_config { - __u32 fd; - __u32 block_size; - struct loop_info64 info; - __u64 __reserved[8]; +struct trace_event_raw_contention_end { + struct trace_entry ent; + void *lock_addr; + int ret; + char __data[0]; }; -struct atmel_flexcom { - void *base; - u32 opmode; - struct clk *clk; +struct mutex_waiter { + struct list_head list; + struct task_struct *task; + struct ww_acquire_ctx *ww_ctx; }; -typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); +struct trace_event_data_offsets_contention_begin {}; -typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *); +struct trace_event_data_offsets_contention_end {}; -typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *); +struct posix_clock_desc { + struct file *fp; + struct posix_clock *clk; +}; -typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *); +struct ustring_buffer { + char buffer[1024]; +}; -typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *); +enum filter_pred_fn { + FILTER_PRED_FN_NOP = 0, + FILTER_PRED_FN_64 = 1, + FILTER_PRED_FN_64_CPUMASK = 2, + FILTER_PRED_FN_S64 = 3, + FILTER_PRED_FN_U64 = 4, + FILTER_PRED_FN_32 = 5, + FILTER_PRED_FN_32_CPUMASK = 6, + FILTER_PRED_FN_S32 = 7, + FILTER_PRED_FN_U32 = 8, + FILTER_PRED_FN_16 = 9, + FILTER_PRED_FN_16_CPUMASK = 10, + FILTER_PRED_FN_S16 = 11, + FILTER_PRED_FN_U16 = 12, + FILTER_PRED_FN_8 = 13, + FILTER_PRED_FN_8_CPUMASK = 14, + FILTER_PRED_FN_S8 = 15, + FILTER_PRED_FN_U8 = 16, + FILTER_PRED_FN_COMM = 17, + FILTER_PRED_FN_STRING = 18, + FILTER_PRED_FN_STRLOC = 19, + FILTER_PRED_FN_STRRELLOC = 20, + FILTER_PRED_FN_PCHAR_USER = 21, + FILTER_PRED_FN_PCHAR = 22, + FILTER_PRED_FN_CPU = 23, + FILTER_PRED_FN_CPU_CPUMASK = 24, + FILTER_PRED_FN_CPUMASK = 25, + FILTER_PRED_FN_CPUMASK_CPU = 26, + FILTER_PRED_FN_FUNCTION = 27, + FILTER_PRED_FN_ = 28, + FILTER_PRED_TEST_VISITED = 29, +}; -typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *); +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, +}; -typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *); +enum { + TOO_MANY_CLOSE = -1, + TOO_MANY_OPEN = -2, + MISSING_QUOTE = -3, +}; -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]; +enum { + FILT_ERR_NONE = 0, + FILT_ERR_INVALID_OP = 1, + FILT_ERR_TOO_MANY_OPEN = 2, + FILT_ERR_TOO_MANY_CLOSE = 3, + FILT_ERR_MISSING_QUOTE = 4, + FILT_ERR_MISSING_BRACE_OPEN = 5, + FILT_ERR_MISSING_BRACE_CLOSE = 6, + FILT_ERR_OPERAND_TOO_LONG = 7, + FILT_ERR_EXPECT_STRING = 8, + FILT_ERR_EXPECT_DIGIT = 9, + FILT_ERR_ILLEGAL_FIELD_OP = 10, + FILT_ERR_FIELD_NOT_FOUND = 11, + FILT_ERR_ILLEGAL_INTVAL = 12, + FILT_ERR_BAD_SUBSYS_FILTER = 13, + FILT_ERR_TOO_MANY_PREDS = 14, + FILT_ERR_INVALID_FILTER = 15, + FILT_ERR_INVALID_CPULIST = 16, + FILT_ERR_IP_FIELD_ONLY = 17, + FILT_ERR_INVALID_VALUE = 18, + FILT_ERR_NO_FUNCTION = 19, + FILT_ERR_ERRNO = 20, + FILT_ERR_NO_FILTER = 21, }; -struct default_wait_cb { - struct dma_fence_cb base; - struct task_struct *task; +enum { + INVERT = 1, + PROCESS_AND = 2, + PROCESS_OR = 4, }; -struct trace_event_data_offsets_dma_fence { - u32 driver; - u32 timeline; +struct regex; + +struct filter_pred { + struct regex *regex; + struct cpumask *mask; + unsigned short *ops; + struct ftrace_event_field *field; + u64 val; + u64 val2; + enum filter_pred_fn fn_num; + int offset; + int not; + int op; }; -struct mv_host_priv; +typedef int (*regex_match_func)(char *, struct regex *, int); -struct mv_hw_ops { - void (*phy_errata)(struct mv_host_priv *, void *, unsigned int); - void (*enable_leds)(struct mv_host_priv *, void *); - void (*read_preamp)(struct mv_host_priv *, int, void *); - int (*reset_hc)(struct ata_host *, void *, unsigned int); - void (*reset_flash)(struct mv_host_priv *, void *); - void (*reset_bus)(struct ata_host *, void *); +struct regex { + char pattern[256]; + int len; + int field_len; + regex_match_func match; }; -struct mv_port_signal { - u32 amps; - u32 pre; +struct filter_list { + struct list_head list; + struct event_filter *filter; }; -struct mv_host_priv { - u32 hp_flags; - unsigned int board_idx; - u32 main_irq_mask; - struct mv_port_signal signal[8]; - const struct mv_hw_ops *ops; - int n_ports; - void *base; - void *main_irq_cause_addr; - void *main_irq_mask_addr; - u32 irq_cause_offset; - u32 irq_mask_offset; - u32 unmask_all_irqs; - struct clk *clk; - struct clk **port_clks; - struct phy **port_phys; - struct dma_pool *crqb_pool; - struct dma_pool *crpb_pool; - struct dma_pool *sg_tbl_pool; +struct filter_parse_error { + int lasterr; + int lasterr_pos; }; -enum { - MV_PRIMARY_BAR = 0, - MV_IO_BAR = 2, - MV_MISC_BAR = 3, - MV_MAJOR_REG_AREA_SZ = 65536, - MV_MINOR_REG_AREA_SZ = 8192, - COAL_CLOCKS_PER_USEC = 150, - MAX_COAL_TIME_THRESHOLD = 16777215, - MAX_COAL_IO_COUNT = 255, - MV_PCI_REG_BASE = 0, - COAL_REG_BASE = 98304, - IRQ_COAL_CAUSE = 98312, - ALL_PORTS_COAL_IRQ = 16, - IRQ_COAL_IO_THRESHOLD = 98508, - IRQ_COAL_TIME_THRESHOLD = 98512, - TRAN_COAL_CAUSE_LO = 98440, - TRAN_COAL_CAUSE_HI = 98444, - SATAHC0_REG_BASE = 131072, - FLASH_CTL = 66668, - GPIO_PORT_CTL = 66800, - RESET_CFG = 98520, - MV_PCI_REG_SZ = 65536, - MV_SATAHC_REG_SZ = 65536, - MV_SATAHC_ARBTR_REG_SZ = 8192, - MV_PORT_REG_SZ = 8192, - MV_MAX_Q_DEPTH = 32, - MV_MAX_Q_DEPTH_MASK = 31, - MV_CRQB_Q_SZ = 1024, - MV_CRPB_Q_SZ = 256, - MV_MAX_SG_CT = 256, - MV_SG_TBL_SZ = 4096, - MV_PORT_HC_SHIFT = 2, - MV_PORTS_PER_HC = 4, - MV_PORT_MASK = 3, - MV_FLAG_DUAL_HC = 1073741824, - MV_COMMON_FLAGS = 514, - MV_GEN_I_FLAGS = 578, - MV_GEN_II_FLAGS = 656898, - MV_GEN_IIE_FLAGS = 919042, - CRQB_FLAG_READ = 1, - CRQB_TAG_SHIFT = 1, - CRQB_IOID_SHIFT = 6, - CRQB_PMP_SHIFT = 12, - CRQB_HOSTQ_SHIFT = 17, - CRQB_CMD_ADDR_SHIFT = 8, - CRQB_CMD_CS = 4096, - CRQB_CMD_LAST = 32768, - CRPB_FLAG_STATUS_SHIFT = 8, - CRPB_IOID_SHIFT_6 = 5, - CRPB_IOID_SHIFT_7 = 7, - EPRD_FLAG_END_OF_TBL = -2147483648, - MV_PCI_COMMAND = 3072, - MV_PCI_COMMAND_MWRCOM = 16, - MV_PCI_COMMAND_MRDTRIG = 128, - PCI_MAIN_CMD_STS = 3376, - STOP_PCI_MASTER = 4, - PCI_MASTER_EMPTY = 8, - GLOB_SFT_RST = 16, - MV_PCI_MODE = 3328, - MV_PCI_MODE_MASK = 48, - MV_PCI_EXP_ROM_BAR_CTL = 3372, - MV_PCI_DISC_TIMER = 3332, - MV_PCI_MSI_TRIGGER = 3128, - MV_PCI_SERR_MASK = 3112, - MV_PCI_XBAR_TMOUT = 7428, - MV_PCI_ERR_LOW_ADDRESS = 7488, - MV_PCI_ERR_HIGH_ADDRESS = 7492, - MV_PCI_ERR_ATTRIBUTE = 7496, - MV_PCI_ERR_COMMAND = 7504, - PCI_IRQ_CAUSE = 7512, - PCI_IRQ_MASK = 7516, - PCI_UNMASK_ALL_IRQS = 8388607, - PCIE_IRQ_CAUSE = 6400, - PCIE_IRQ_MASK = 6416, - PCIE_UNMASK_ALL_IRQS = 1034, - PCI_HC_MAIN_IRQ_CAUSE = 7520, - PCI_HC_MAIN_IRQ_MASK = 7524, - SOC_HC_MAIN_IRQ_CAUSE = 131104, - SOC_HC_MAIN_IRQ_MASK = 131108, - ERR_IRQ = 1, - DONE_IRQ = 2, - HC0_IRQ_PEND = 511, - HC_SHIFT = 9, - DONE_IRQ_0_3 = 170, - DONE_IRQ_4_7 = 87040, - PCI_ERR = 262144, - TRAN_COAL_LO_DONE = 524288, - TRAN_COAL_HI_DONE = 1048576, - PORTS_0_3_COAL_DONE = 256, - PORTS_4_7_COAL_DONE = 131072, - ALL_PORTS_COAL_DONE = 2097152, - GPIO_INT = 4194304, - SELF_INT = 8388608, - TWSI_INT = 16777216, - HC_MAIN_RSVD = -33554432, - HC_MAIN_RSVD_5 = -524288, - HC_MAIN_RSVD_SOC = -320, - HC_CFG = 0, - HC_IRQ_CAUSE = 20, - DMA_IRQ = 1, - HC_COAL_IRQ = 16, - DEV_IRQ = 256, - HC_IRQ_COAL_IO_THRESHOLD = 12, - HC_IRQ_COAL_TIME_THRESHOLD = 16, - SOC_LED_CTRL = 44, - SOC_LED_CTRL_BLINK = 1, - SOC_LED_CTRL_ACT_PRESENCE = 4, - SHD_BLK = 256, - SHD_CTL_AST = 32, - SATA_STATUS = 768, - SATA_ACTIVE = 848, - FIS_IRQ_CAUSE = 868, - FIS_IRQ_CAUSE_AN = 512, - LTMODE = 780, - LTMODE_BIT8 = 256, - PHY_MODE2 = 816, - PHY_MODE3 = 784, - PHY_MODE4 = 788, - PHY_MODE4_CFG_MASK = 3, - PHY_MODE4_CFG_VALUE = 1, - PHY_MODE4_RSVD_ZEROS = 1575223290, - PHY_MODE4_RSVD_ONES = 5, - SATA_IFCTL = 836, - SATA_TESTCTL = 840, - SATA_IFSTAT = 844, - VENDOR_UNIQUE_FIS = 860, - FISCFG = 864, - FISCFG_WAIT_DEV_ERR = 256, - FISCFG_SINGLE_SYNC = 65536, - PHY_MODE9_GEN2 = 920, - PHY_MODE9_GEN1 = 924, - PHYCFG_OFS = 928, - MV5_PHY_MODE = 116, - MV5_LTMODE = 48, - MV5_PHY_CTL = 12, - SATA_IFCFG = 80, - LP_PHY_CTL = 88, - LP_PHY_CTL_PIN_PU_PLL = 1, - LP_PHY_CTL_PIN_PU_RX = 2, - LP_PHY_CTL_PIN_PU_TX = 4, - LP_PHY_CTL_GEN_TX_3G = 32, - LP_PHY_CTL_GEN_RX_3G = 512, - MV_M2_PREAMP_MASK = 2016, - EDMA_CFG = 0, - EDMA_CFG_Q_DEPTH = 31, - EDMA_CFG_NCQ = 32, - EDMA_CFG_NCQ_GO_ON_ERR = 16384, - EDMA_CFG_RD_BRST_EXT = 2048, - EDMA_CFG_WR_BUFF_LEN = 8192, - EDMA_CFG_EDMA_FBS = 65536, - EDMA_CFG_FBS = 67108864, - EDMA_ERR_IRQ_CAUSE = 8, - EDMA_ERR_IRQ_MASK = 12, - EDMA_ERR_D_PAR = 1, - EDMA_ERR_PRD_PAR = 2, - EDMA_ERR_DEV = 4, - EDMA_ERR_DEV_DCON = 8, - EDMA_ERR_DEV_CON = 16, - EDMA_ERR_SERR = 32, - EDMA_ERR_SELF_DIS = 128, - EDMA_ERR_SELF_DIS_5 = 256, - EDMA_ERR_BIST_ASYNC = 256, - EDMA_ERR_TRANS_IRQ_7 = 256, - EDMA_ERR_CRQB_PAR = 512, - EDMA_ERR_CRPB_PAR = 1024, - EDMA_ERR_INTRL_PAR = 2048, - EDMA_ERR_IORDY = 4096, - EDMA_ERR_LNK_CTRL_RX = 122880, - EDMA_ERR_LNK_CTRL_RX_0 = 8192, - EDMA_ERR_LNK_CTRL_RX_1 = 16384, - EDMA_ERR_LNK_CTRL_RX_2 = 32768, - EDMA_ERR_LNK_CTRL_RX_3 = 65536, - EDMA_ERR_LNK_DATA_RX = 1966080, - EDMA_ERR_LNK_CTRL_TX = 65011712, - EDMA_ERR_LNK_CTRL_TX_0 = 2097152, - EDMA_ERR_LNK_CTRL_TX_1 = 4194304, - EDMA_ERR_LNK_CTRL_TX_2 = 8388608, - EDMA_ERR_LNK_CTRL_TX_3 = 16777216, - EDMA_ERR_LNK_CTRL_TX_4 = 33554432, - EDMA_ERR_LNK_DATA_TX = 2080374784, - EDMA_ERR_TRANS_PROTO = -2147483648, - EDMA_ERR_OVERRUN_5 = 32, - EDMA_ERR_UNDERRUN_5 = 64, - EDMA_ERR_IRQ_TRANSIENT = 65101824, - EDMA_EH_FREEZE = -65102149, - EDMA_EH_FREEZE_5 = 8059, - EDMA_REQ_Q_BASE_HI = 16, - EDMA_REQ_Q_IN_PTR = 20, - EDMA_REQ_Q_OUT_PTR = 24, - EDMA_REQ_Q_PTR_SHIFT = 5, - EDMA_RSP_Q_BASE_HI = 28, - EDMA_RSP_Q_IN_PTR = 32, - EDMA_RSP_Q_OUT_PTR = 36, - EDMA_RSP_Q_PTR_SHIFT = 3, - EDMA_CMD = 40, - EDMA_EN = 1, - EDMA_DS = 2, - EDMA_RESET = 4, - EDMA_STATUS = 48, - EDMA_STATUS_CACHE_EMPTY = 64, - EDMA_STATUS_IDLE = 128, - EDMA_IORDY_TMOUT = 52, - EDMA_ARB_CFG = 56, - EDMA_HALTCOND = 96, - EDMA_UNKNOWN_RSVD = 108, - BMDMA_CMD = 548, - BMDMA_STATUS = 552, - BMDMA_PRD_LOW = 556, - BMDMA_PRD_HIGH = 560, - MV_HP_FLAG_MSI = 1, - MV_HP_ERRATA_50XXB0 = 2, - MV_HP_ERRATA_50XXB2 = 4, - MV_HP_ERRATA_60X1B2 = 8, - MV_HP_ERRATA_60X1C0 = 16, - MV_HP_GEN_I = 64, - MV_HP_GEN_II = 128, - MV_HP_GEN_IIE = 256, - MV_HP_PCIE = 512, - MV_HP_CUT_THROUGH = 1024, - MV_HP_FLAG_SOC = 2048, - MV_HP_QUIRK_LED_BLINK_EN = 4096, - MV_HP_FIX_LP_PHY_CTL = 8192, - MV_PP_FLAG_EDMA_EN = 1, - MV_PP_FLAG_NCQ_EN = 2, - MV_PP_FLAG_FBS_EN = 4, - MV_PP_FLAG_DELAYED_EH = 8, - MV_PP_FLAG_FAKE_ATA_BUSY = 16, +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 **); + +struct bpf_iter__bpf_prog { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_prog *prog; + }; }; -enum { - MV_DMA_BOUNDARY = 65535, - EDMA_REQ_Q_BASE_LO_MASK = 4294966272, - EDMA_RSP_Q_BASE_LO_MASK = 4294967040, +struct bpf_iter_seq_prog_info { + u32 prog_id; }; -enum chip_type { - chip_504x = 0, - chip_508x = 1, - chip_5080 = 2, - chip_604x = 3, - chip_608x = 4, - chip_6042 = 5, - chip_7042 = 6, - chip_soc = 7, +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 mv_crqb_iie { - __le32 addr; - __le32 addr_hi; - __le32 flags; - __le32 len; - __le32 ata_cmd[4]; +struct cachestat_range { + __u64 off; + __u64 len; }; -struct mv_cached_regs { - u32 fiscfg; - u32 ltmode; - u32 haltcond; - u32 unknown_rsvd; +struct cachestat { + __u64 nr_cache; + __u64 nr_dirty; + __u64 nr_writeback; + __u64 nr_evicted; + __u64 nr_recently_evicted; }; -struct mv_crqb; +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 mv_crpb; +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 mv_sg; +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 mv_port_priv { - struct mv_crqb *crqb; - dma_addr_t crqb_dma; - struct mv_crpb *crpb; - dma_addr_t crpb_dma; - struct mv_sg *sg_tbl[32]; - dma_addr_t sg_tbl_dma[32]; - unsigned int req_idx; - unsigned int resp_idx; - u32 pp_flags; - struct mv_cached_regs cached; - unsigned int delayed_eh_pmp_map; +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 {}; + +enum { + PAGE_WAS_MAPPED = 1, + PAGE_WAS_MLOCKED = 2, }; -struct mv_crqb { - __le32 sg_addr; - __le32 sg_addr_hi; - __le16 ctrl_flags; - __le16 ata_cmd[11]; +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 *); }; -struct mv_crpb { - __le16 id; - __le16 flags; - __le32 tmstmp; +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 mv_sg { - __le32 addr; - __le32 flags_size; - __le32 addr_hi; - __le32 reserved; +struct migrate_pages_stats { + int nr_succeeded; + int nr_failed_pages; + int nr_thp_succeeded; + int nr_thp_failed; + int nr_thp_split; + int nr_split; }; -struct mv_sata_platform_data { - int n_ports; +union migration_ptr { + struct anon_vma *anon_vma; + struct address_space *mapping; }; -enum pmic_arb_channel { - PMIC_ARB_CHANNEL_RW = 0, - PMIC_ARB_CHANNEL_OBS = 1, +struct inodes_stat_t { + long nr_inodes; + long nr_unused; + long dummy[5]; }; -struct spmi_pmic_arb; +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, +}; -struct pmic_arb_ver_ops { - const char *ver_str; - int (*ppid_to_apid)(struct spmi_pmic_arb *, u16); - int (*offset)(struct spmi_pmic_arb *, u8, u16, enum pmic_arb_channel); - u32 (*fmt_cmd)(u8, u8, u16, u8); - int (*non_data_cmd)(struct spmi_controller *, u8, u8); - void * (*owner_acc_status)(struct spmi_pmic_arb *, u8, u16); - void * (*acc_enable)(struct spmi_pmic_arb *, u16); - void * (*irq_status)(struct spmi_pmic_arb *, u16); - void * (*irq_clear)(struct spmi_pmic_arb *, u16); - u32 (*apid_map_offset)(u16); - void * (*apid_owner)(struct spmi_pmic_arb *, u16); +struct prepend_buffer { + char *buf; + int len; }; -struct apid_data; +struct inotify_inode_mark { + struct fsnotify_mark fsn_mark; + int wd; +}; -struct spmi_pmic_arb { - void *rd_base; - void *wr_base; - void *intr; - void *cnfg; - void *core; - resource_size_t core_size; - raw_spinlock_t lock; - u8 channel; - int irq; - u8 ee; - u32 bus_instance; - u16 min_apid; - u16 max_apid; - u16 base_apid; - int apid_count; - u32 *mapping_table; - unsigned long mapping_table_valid[16]; - struct irq_domain *domain; - struct spmi_controller *spmic; - const struct pmic_arb_ver_ops *ver_ops; - u16 *ppid_to_apid; - u16 last_apid; - struct apid_data *apid_data; - int max_periphs; +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 apid_data { - u16 ppid; - u8 write_ee; - u8 irq_ee; +struct nfsacl_decode_desc { + struct xdr_array2_desc desc; + unsigned int count; + struct posix_acl *acl; }; -enum pmic_arb_chnl_status { - PMIC_ARB_STATUS_DONE = 1, - PMIC_ARB_STATUS_FAILURE = 2, - PMIC_ARB_STATUS_DENIED = 4, - PMIC_ARB_STATUS_DROPPED = 8, +struct nfsacl_simple_acl { + struct posix_acl acl; + struct posix_acl_entry ace[4]; }; -enum pmic_arb_cmd_op_code { - PMIC_ARB_OP_EXT_WRITEL = 0, - PMIC_ARB_OP_EXT_READL = 1, - PMIC_ARB_OP_EXT_WRITE = 2, - PMIC_ARB_OP_RESET = 3, - PMIC_ARB_OP_SLEEP = 4, - PMIC_ARB_OP_SHUTDOWN = 5, - PMIC_ARB_OP_WAKEUP = 6, - PMIC_ARB_OP_AUTHENTICATE = 7, - PMIC_ARB_OP_MSTR_READ = 8, - PMIC_ARB_OP_MSTR_WRITE = 9, - PMIC_ARB_OP_EXT_READ = 13, - PMIC_ARB_OP_WRITE = 14, - PMIC_ARB_OP_READ = 15, - PMIC_ARB_OP_ZERO_WRITE = 16, +enum SHIFT_DIRECTION { + SHIFT_LEFT = 0, + SHIFT_RIGHT = 1, }; -enum qpnpint_regs { - QPNPINT_REG_RT_STS = 16, - QPNPINT_REG_SET_TYPE = 17, - QPNPINT_REG_POLARITY_HIGH = 18, - QPNPINT_REG_POLARITY_LOW = 19, - QPNPINT_REG_LATCHED_CLR = 20, - QPNPINT_REG_EN_SET = 21, - QPNPINT_REG_EN_CLR = 22, - QPNPINT_REG_LATCHED_STS = 24, +struct ext4_extent_tail { + __le32 et_checksum; }; -struct spmi_pmic_arb_qpnpint_type { - u8 type; - u8 polarity_high; - u8 polarity_low; +struct migrate_struct { + ext4_lblk_t first_block; + ext4_lblk_t last_block; + ext4_lblk_t curr_block; + long: 32; + ext4_fsblk_t first_pblock; + ext4_fsblk_t last_pblock; }; -struct ale_control_info { - const char *name; - int offset; - int port_offset; - int shift; - int port_shift; - int bits; +struct fat_fid { + u32 i_gen; + u32 i_pos_low; + u16 i_pos_hi; + u16 parent_i_pos_hi; + u32 parent_i_pos_low; + u32 parent_i_gen; }; -struct cpsw_ale_dev_id { - const char *dev_id; - u32 features; - u32 tbl_entries; - u32 major_ver_mask; - bool nu_switch_ale; - const struct ale_entry_fld *vlan_entry_tbl; +struct nlmsvc_binding { + __be32 (*fopen)(struct svc_rqst *, struct nfs_fh *, struct file **, int); + void (*fclose)(struct file *); }; enum { - ALE_ENT_VID_MEMBER_LIST = 0, - ALE_ENT_VID_UNREG_MCAST_MSK = 1, - ALE_ENT_VID_REG_MCAST_MSK = 2, - ALE_ENT_VID_FORCE_UNTAGGED_MSK = 3, - ALE_ENT_VID_UNREG_MCAST_IDX = 4, - ALE_ENT_VID_REG_MCAST_IDX = 5, - ALE_ENT_VID_LAST = 6, + ATTR_IS_COMPRESSED = 1, + ATTR_COMPRESSION_MASK = 255, + ATTR_IS_ENCRYPTED = 16384, + ATTR_IS_SPARSE = 32768, }; enum { - CPSW_ALE_F_STATUS_REG = 1, - CPSW_ALE_F_HW_AUTOAGING = 2, - CPSW_ALE_F_COUNT = 3, -}; + MFT_RECORD_IN_USE = 1, + MFT_RECORD_IS_DIRECTORY = 2, +} __attribute__((mode(byte))); -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 { + RESIDENT_ATTR_IS_INDEXED = 1, } __attribute__((mode(byte))); -enum hub_quiescing_type { - HUB_DISCONNECT = 0, - HUB_PRE_RESET = 1, - HUB_SUSPEND = 2, +typedef struct { + unsigned long mft_no; + ntfschar *name; + u32 name_len; + ATTR_TYPE type; +} ntfs_attr; + +typedef sle64 leUSN; + +typedef struct { + sle64 creation_time; + sle64 last_data_change_time; + sle64 last_mft_change_time; + sle64 last_access_time; + FILE_ATTR_FLAGS file_attributes; + union { + struct { + u8 reserved12[12]; + } v1; + struct { + le32 maximum_versions; + le32 version_number; + le32 class_id; + le32 owner_id; + le32 security_id; + le64 quota_charged; + leUSN usn; + } v3; + } ver; +} STANDARD_INFORMATION; + +enum { + Opt_direct = 0, + Opt_fd = 1, + Opt_gid___6 = 2, + Opt_ignore___2 = 3, + Opt_indirect = 4, + Opt_maxproto = 5, + Opt_minproto = 6, + Opt_offset = 7, + Opt_pgrp = 8, + Opt_strictexpire = 9, + Opt_uid___5 = 10, +}; + +struct autofs_fs_context { + kuid_t uid; + kgid_t gid; + int pgrp; + bool pgrp_set; }; -enum hub_activation_type { - HUB_INIT = 0, - HUB_INIT2 = 1, - HUB_INIT3 = 2, - HUB_POST_RESET = 3, - HUB_RESUME = 4, - HUB_RESET_RESUME = 5, +enum { + Opt_err___7 = 0, + Opt_enc = 1, + Opt_hash = 2, }; -struct usb_tt_clear { - struct list_head clear_list; - unsigned int tt; - u16 devinfo; - struct usb_hcd *hcd; - struct usb_host_endpoint *ep; +struct crypto_akcipher_sync_data { + struct crypto_akcipher *tfm; + const void *src; + void *dst; + unsigned int slen; + unsigned int dlen; + struct akcipher_request *req; + struct crypto_wait cwait; + struct scatterlist sg; + u8 *buf; }; -struct usb_otg_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bmAttributes; +struct crypto_sig { + struct crypto_tfm base; }; -struct usb_qualifier_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 bcdUSB; - __u8 bDeviceClass; - __u8 bDeviceSubClass; - __u8 bDeviceProtocol; - __u8 bMaxPacketSize0; - __u8 bNumConfigurations; - __u8 bRESERVED; +struct crypto_report_akcipher { + char type[64]; }; -struct usbdevfs_hub_portinfo { - char nports; - char port[127]; +struct pr_reservation { + __u64 key; + __u32 type; + __u32 flags; }; -struct usb_set_sel_req { - __u8 u1_sel; - __u8 u1_pel; - __le16 u2_sel; - __le16 u2_pel; +struct pr_clear { + __u64 key; + __u32 flags; + __u32 __pad; +}; + +struct pr_registration { + __u64 old_key; + __u64 new_key; + __u32 flags; + __u32 __pad; +}; + +struct pr_preempt { + __u64 old_key; + __u64 new_key; + __u32 type; + __u32 flags; }; 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, + IO_SQ_THREAD_SHOULD_STOP = 0, + IO_SQ_THREAD_SHOULD_PARK = 1, }; -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 io_sqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 flags; + __u32 dropped; + __u32 array; + __u32 resv1; + __u64 user_addr; }; -struct serio_event { - enum serio_event_type type; - void *object; - struct module *owner; - struct list_head node; +struct io_cqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 overflow; + __u32 cqes; + __u32 flags; + __u32 resv1; + __u64 user_addr; }; -struct gpio_keys_button { - unsigned int code; - int gpio; - int active_low; - const char *desc; - unsigned int type; - int wakeup; - int wakeup_event_action; - int debounce_interval; - bool can_disable; - int value; - unsigned int irq; +struct io_uring_params { + __u32 sq_entries; + __u32 cq_entries; + __u32 flags; + __u32 sq_thread_cpu; + __u32 sq_thread_idle; + __u32 features; + __u32 wq_fd; + __u32 resv[3]; + struct io_sqring_offsets sq_off; + struct io_cqring_offsets cq_off; }; -struct gpio_button_data { - const struct gpio_keys_button *button; - struct input_dev *input; - struct gpio_desc *gpiod; - unsigned short *code; - struct hrtimer release_timer; - unsigned int release_delay; - struct delayed_work work; - struct hrtimer debounce_timer; - unsigned int software_debounce; - unsigned int irq; - unsigned int wakeup_trigger_type; - spinlock_t lock; - bool disabled; - bool key_pressed; - bool suspended; - bool debounce_use_hrtimer; - long: 32; +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; }; -struct gpio_keys_platform_data; +typedef struct config_s config; -struct gpio_keys_drvdata { - const struct gpio_keys_platform_data *pdata; - struct input_dev *input; - struct mutex disable_lock; - unsigned short *keymap; - struct gpio_button_data data[0]; +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; }; -struct gpio_keys_platform_data { - const struct gpio_keys_button *buttons; - int nbuttons; - unsigned int poll_interval; - unsigned int rep: 1; - int (*enable)(struct device *); - void (*disable)(struct device *); +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; + +typedef uintptr_t uptrval; + +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; + +typedef struct { + U32 tableTime; + U32 decode256Time; +} algo_time_t; + +typedef struct { + BYTE nbBits; + BYTE byte; +} HUF_DEltX1; + +typedef struct { + U32 rankVal[13]; + U32 rankStart[13]; + U32 statsWksp[218]; + BYTE symbols[256]; + BYTE huffWeight[256]; +} HUF_ReadDTableX1_Workspace; + +typedef struct { + U16 sequence; + BYTE nbBits; + BYTE length; +} HUF_DEltX2; + +typedef U32 rankValCol_t[13]; + +typedef struct { + BYTE symbol; +} sortedSymbol_t; + +typedef struct { + rankValCol_t rankVal[12]; + U32 rankStats[13]; + U32 rankStart0[15]; + sortedSymbol_t sortedSymbol[256]; + BYTE weightList[256]; + U32 calleeWksp[218]; +} HUF_ReadDTableX2_Workspace; + +typedef struct { + BYTE maxTableLog; + BYTE tableType; + BYTE tableLog; + BYTE reserved; +} DTableDesc; + +typedef struct { + size_t bitContainer; + unsigned int bitsConsumed; + const char *ptr; + const char *start; + const char *limitPtr; +} BIT_DStream_t; + +typedef enum { + BIT_DStream_unfinished = 0, + BIT_DStream_endOfBuffer = 1, + BIT_DStream_completed = 2, + BIT_DStream_overflow = 3, +} BIT_DStream_status; + +struct font_desc { + int idx; const char *name; + unsigned int width; + unsigned int height; + unsigned int charcount; + const void *data; + int pref; }; -struct st_rtc { - struct rtc_device *rtc_dev; - struct rtc_wkalrm alarm; - struct clk *clk; - unsigned long clkrate; - void *ioaddr; - bool irq_enabled: 1; - spinlock_t lock; - short irq; +struct font_data { + unsigned int extra[4]; + const unsigned char data[0]; }; -struct i2c_spec_values { - unsigned long min_hold_start_ns; - unsigned long min_low_ns; - unsigned long min_high_ns; - unsigned long min_setup_start_ns; - unsigned long max_data_hold_ns; - unsigned long min_data_setup_ns; - unsigned long min_setup_stop_ns; - unsigned long min_hold_buffer_ns; +struct node_groups { + unsigned int id; + union { + unsigned int ngroups; + unsigned int ncpus; + }; }; -struct rk3x_i2c_calced_timings; +struct combiner_chip_data { + unsigned int hwirq_offset; + unsigned int irq_mask; + void *base; + unsigned int parent_irq; + u32 pm_save; +}; -struct rk3x_i2c_soc_data { - int grf_offset; - int (*calc_timings)(unsigned long, struct i2c_timings *, struct rk3x_i2c_calced_timings *); +struct keystone_irq_device { + struct device *dev; + struct irq_chip chip; + u32 mask; + int irq; + struct irq_domain *irqd; + struct regmap *devctrl_regs; + u32 devctrl_offset; + raw_spinlock_t wa_lock; }; -struct rk3x_i2c_calced_timings { - unsigned long div_low; - unsigned long div_high; - unsigned int tuning; +struct sun9i_usb_phy { + struct phy *phy; + void *pmu; + struct reset_control *reset; + struct clk *clk; + struct clk *hsic_clk; + enum usb_phy_interface type; }; -enum rk3x_i2c_state { - STATE_IDLE___3 = 0, - STATE_START = 1, - STATE_READ = 2, - STATE_WRITE = 3, - STATE_STOP = 4, +struct rockchip_usb_phys; + +struct rockchip_usb_phy_pdata { + struct rockchip_usb_phys *phys; + int (*init_usb_uart)(struct regmap *, const struct rockchip_usb_phy_pdata *); + int usb_uart_phy; }; -enum { - REG_CON_MOD_TX = 0, - REG_CON_MOD_REGISTER_TX = 1, - REG_CON_MOD_RX = 2, - REG_CON_MOD_REGISTER_RX = 3, +struct rockchip_usb_phys { + int reg; + const char *pll_name; }; -struct rk3x_i2c { - struct i2c_adapter adap; +struct rockchip_usb_phy_base; + +struct rockchip_usb_phy { + struct rockchip_usb_phy_base *base; + struct device_node *np; + unsigned int reg_offset; + struct clk *clk; + struct clk *clk480m; + struct clk_hw clk480m_hw; + struct phy *phy; + bool uart_enabled; + struct reset_control *reset; + struct regulator *vbus; +}; + +struct rockchip_usb_phy_base { struct device *dev; - const struct rk3x_i2c_soc_data *soc_data; - void *regs; + struct regmap *reg_base; + const struct rockchip_usb_phy_pdata *pdata; +}; + +struct atmel_pioctrl_data { + unsigned int nbanks; + unsigned int last_bank_count; + unsigned int slew_rate_support; +}; + +struct atmel_group; + +struct atmel_pin; + +struct atmel_pioctrl { + void *reg_base; struct clk *clk; - struct clk *pclk; - struct notifier_block clk_rate_nb; - struct i2c_timings t; - spinlock_t lock; - wait_queue_head_t wait; - bool busy; - struct i2c_msg *msg; - u8 addr; - unsigned int mode; - bool is_last_msg; - enum rk3x_i2c_state state; - unsigned int processed; - int error; + unsigned int nbanks; + struct pinctrl_dev *pinctrl_dev; + struct atmel_group *groups; + const char * const *group_names; + struct atmel_pin **pins; + unsigned int npins; + struct gpio_chip *gpio_chip; + struct irq_domain *irq_domain; + int *irqs; + unsigned int *pm_wakeup_sources; + struct { + u32 imr; + u32 odsr; + u32 cfgr[32]; + } *pm_suspend_backup; + struct device *dev; + struct device_node *node; + unsigned int slew_rate_support; }; -struct bcm_kona_wdt { - void *base; - int resolution; - spinlock_t lock; +struct atmel_group { + const char *name; + u32 pin; }; -struct tegra124_cpufreq_priv { - struct clk *cpu_clk; - struct clk *pllp_clk; - struct clk *pllx_clk; - struct clk *dfll_clk; - struct platform_device *cpufreq_dt_pdev; +struct atmel_pin { + unsigned int pin_id; + unsigned int mux; + unsigned int ioset; + unsigned int bank; + unsigned int line; + const char *device; }; -typedef void (*btf_trace_mmc_request_start)(void *, struct mmc_host *, struct mmc_request *); +struct ns_pinctrl_group { + const char *name; + unsigned int *pins; + const unsigned int num_pins; + unsigned int chipsets; +}; -typedef void (*btf_trace_mmc_request_done)(void *, struct mmc_host *, struct mmc_request *); +struct ns_pinctrl_function { + const char *name; + const char * const *groups; + const unsigned int num_groups; + unsigned int chipsets; +}; -struct trace_event_raw_mmc_request_start { - struct trace_entry ent; - u32 cmd_opcode; - u32 cmd_arg; - unsigned int cmd_flags; - unsigned int cmd_retries; - u32 stop_opcode; - u32 stop_arg; - unsigned int stop_flags; - unsigned int stop_retries; - u32 sbc_opcode; - u32 sbc_arg; - unsigned int sbc_flags; - unsigned int sbc_retries; - unsigned int blocks; - unsigned int blk_addr; - unsigned int blksz; - unsigned int data_flags; - int tag; - unsigned int can_retune; - unsigned int doing_retune; - unsigned int retune_now; - int need_retune; - int hold_retune; - unsigned int retune_period; - struct mmc_request *mrq; - u32 __data_loc_name; - char __data[0]; +struct ns_pinctrl { + struct device *dev; + unsigned int chipset_flag; + struct pinctrl_dev *pctldev; + void *base; + struct pinctrl_desc pctldesc; }; -struct trace_event_raw_mmc_request_done { - struct trace_entry ent; - u32 cmd_opcode; - int cmd_err; - u32 cmd_resp[4]; - unsigned int cmd_retries; - u32 stop_opcode; - int stop_err; - u32 stop_resp[4]; - unsigned int stop_retries; - u32 sbc_opcode; - int sbc_err; - u32 sbc_resp[4]; - unsigned int sbc_retries; - unsigned int bytes_xfered; - int data_err; - int tag; - unsigned int can_retune; - unsigned int doing_retune; - unsigned int retune_now; - int need_retune; - int hold_retune; - unsigned int retune_period; - struct mmc_request *mrq; - u32 __data_loc_name; - char __data[0]; +struct palmas_device_data { + int ngpio; +}; + +enum palmas_irqs { + PALMAS_CHARG_DET_N_VBUS_OVV_IRQ = 0, + PALMAS_PWRON_IRQ = 1, + PALMAS_LONG_PRESS_KEY_IRQ = 2, + PALMAS_RPWRON_IRQ = 3, + PALMAS_PWRDOWN_IRQ = 4, + PALMAS_HOTDIE_IRQ = 5, + PALMAS_VSYS_MON_IRQ = 6, + PALMAS_VBAT_MON_IRQ = 7, + PALMAS_RTC_ALARM_IRQ = 8, + PALMAS_RTC_TIMER_IRQ = 9, + PALMAS_WDT_IRQ = 10, + PALMAS_BATREMOVAL_IRQ = 11, + PALMAS_RESET_IN_IRQ = 12, + PALMAS_FBI_BB_IRQ = 13, + PALMAS_SHORT_IRQ = 14, + PALMAS_VAC_ACOK_IRQ = 15, + PALMAS_GPADC_AUTO_0_IRQ = 16, + PALMAS_GPADC_AUTO_1_IRQ = 17, + PALMAS_GPADC_EOC_SW_IRQ = 18, + PALMAS_GPADC_EOC_RT_IRQ = 19, + PALMAS_ID_OTG_IRQ = 20, + PALMAS_ID_IRQ = 21, + PALMAS_VBUS_OTG_IRQ = 22, + PALMAS_VBUS_IRQ = 23, + PALMAS_GPIO_0_IRQ = 24, + PALMAS_GPIO_1_IRQ = 25, + PALMAS_GPIO_2_IRQ = 26, + PALMAS_GPIO_3_IRQ = 27, + PALMAS_GPIO_4_IRQ = 28, + PALMAS_GPIO_5_IRQ = 29, + PALMAS_GPIO_6_IRQ = 30, + PALMAS_GPIO_7_IRQ = 31, + PALMAS_NUM_IRQ = 32, }; -struct trace_event_data_offsets_mmc_request_start { - u32 name; +struct palmas_gpio { + struct gpio_chip gpio_chip; + struct palmas *palmas; }; -struct trace_event_data_offsets_mmc_request_done { - u32 name; +struct bcm2835_pwm { + struct pwm_chip chip; + struct device *dev; + void *base; + struct clk *clk; }; -struct brcmstb_match_priv { - void (*hs400es)(struct mmc_host *, struct mmc_ios *); - struct sdhci_ops *ops; - const unsigned int flags; +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 sdhci_brcmstb_priv { - void *cfg_regs; - unsigned int flags; - struct clk *base_clk; - u32 base_freq_hz; -}; +typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32); -struct tee_bnxt_fw_private { - struct device *dev; - struct tee_context *ctx; - u32 session_id; - struct tee_shm *fw_shm_pool; -}; +struct hotplug_slot_ops; -enum ta_cmd { - TA_CMD_BNXT_FASTBOOT = 0, - TA_CMD_BNXT_COPY_COREDUMP = 3, +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 lpddr3_timings { - u32 max_freq; - u32 min_freq; - u32 tRFC; - u32 tRRD; - u32 tRPab; - u32 tRPpb; - u32 tRCD; - u32 tRC; - u32 tRAS; - u32 tWTR; - u32 tWR; - u32 tRTP; - u32 tW2W_C2C; - u32 tR2R_C2C; - u32 tWL; - u32 tDQSCK; - u32 tRL; - u32 tFAW; - u32 tXSR; - u32 tXP; - u32 tCKE; - u32 tCKESR; - u32 tMRD; +struct hotplug_slot_ops { + int (*enable_slot)(struct hotplug_slot *); + int (*disable_slot)(struct hotplug_slot *); + int (*set_attention_status)(struct hotplug_slot *, u8); + int (*hardware_test)(struct hotplug_slot *, u32); + int (*get_power_status)(struct hotplug_slot *, u8 *); + int (*get_attention_status)(struct hotplug_slot *, u8 *); + int (*get_latch_status)(struct hotplug_slot *, u8 *); + int (*get_adapter_status)(struct hotplug_slot *, u8 *); + int (*reset_slot)(struct hotplug_slot *, bool); }; -struct lpddr3_min_tck { - u32 tRFC; - u32 tRRD; - u32 tRPab; - u32 tRPpb; - u32 tRCD; - u32 tRC; - u32 tRAS; - u32 tWTR; - u32 tWR; - u32 tRTP; - u32 tW2W_C2C; - u32 tR2R_C2C; - u32 tWL; - u32 tDQSCK; - u32 tRL; - u32 tFAW; - u32 tXSR; - u32 tXP; - u32 tCKE; - u32 tCKESR; - u32 tMRD; +struct pci_reset_fn_method { + int (*reset_fn)(struct pci_dev *, bool); + char *name; }; -enum sk_pacing { - SK_PACING_NONE = 0, - SK_PACING_NEEDED = 1, - SK_PACING_FQ = 2, +enum pcie_reset_state { + pcie_deassert_reset = 1, + pcie_warm_reset = 2, + pcie_hot_reset = 3, }; -enum txtime_flags { - SOF_TXTIME_DEADLINE_MODE = 1, - SOF_TXTIME_REPORT_ERRORS = 2, - SOF_TXTIME_FLAGS_LAST = 2, - SOF_TXTIME_FLAGS_MASK = 3, +struct pci_pme_device { + struct list_head list; + struct pci_dev *dev; }; -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 pci_saved_state { + u32 config_space[16]; + struct pci_cap_saved_data cap[0]; }; -struct linger { - int l_onoff; - int l_linger; +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 sock_txtime { - __kernel_clockid_t clockid; - __u32 flags; +struct display_timings { + unsigned int num_timings; + unsigned int native_mode; + struct display_timing **timings; }; -struct so_timestamping { - int flags; - int bind_phc; -}; +typedef void (*btf_trace_clk_enable)(void *, struct clk_core *); -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, +struct clk_parent_map; + +struct clk_core { + const char *name; + const struct clk_ops *ops; + struct clk_hw *hw; + struct module *owner; + struct device *dev; + struct device_node *of_node; + struct clk_core *parent; + struct clk_parent_map *parents; + u8 num_parents; + u8 new_parent_index; + unsigned long rate; + unsigned long req_rate; + unsigned long new_rate; + struct clk_core *new_parent; + struct clk_core *new_child; + unsigned long flags; + bool orphan; + bool rpm_enabled; + unsigned int enable_count; + unsigned int prepare_count; + unsigned int protect_count; + unsigned long min_rate; + unsigned long max_rate; + unsigned long accuracy; + int phase; + struct clk_duty duty; + struct hlist_head children; + struct hlist_node child_node; + struct hlist_head clks; + unsigned int notifier_count; + struct dentry *dentry; + struct hlist_node debug_node; + struct kref ref; }; -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, +struct clk_parent_map { + const struct clk_hw *hw; + struct clk_core *core; + const char *fw_name; + const char *name; + int index; }; -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, +typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_disable)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *); + +typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, unsigned long); + +typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, unsigned long); + +typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, unsigned long); + +typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, unsigned long); + +typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, unsigned long, unsigned long); + +typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *); + +typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *); + +typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int); + +typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int); + +typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *); + +typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *); + +typedef void (*btf_trace_clk_rate_request_start)(void *, struct clk_rate_request *); + +typedef void (*btf_trace_clk_rate_request_done)(void *, struct clk_rate_request *); + +struct clk_notifier { + struct clk *clk; + struct srcu_notifier_head notifier_head; + struct list_head node; }; -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, +struct of_clk_provider { + struct list_head link; + struct device_node *node; + struct clk * (*get)(struct of_phandle_args *, void *); + struct clk_hw * (*get_hw)(struct of_phandle_args *, void *); + void *data; }; -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, +struct clock_provider { + void (*clk_init_cb)(struct device_node *); + struct device_node *np; + struct list_head node; }; -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, +struct trace_event_raw_clk { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; }; -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, +struct trace_event_raw_clk_rate { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long rate; + char __data[0]; }; -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, +struct trace_event_raw_clk_rate_range { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long min; + unsigned long max; + char __data[0]; }; -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, +struct trace_event_raw_clk_parent { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_pname; + char __data[0]; }; -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, +struct trace_event_raw_clk_phase { + struct trace_entry ent; + u32 __data_loc_name; + int phase; + char __data[0]; }; -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, +struct trace_event_raw_clk_duty_cycle { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int num; + unsigned int den; + char __data[0]; }; -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, +struct trace_event_raw_clk_rate_request { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_pname; + unsigned long min; + unsigned long max; + unsigned long prate; + char __data[0]; }; -struct icmp_filter { - __u32 data; +struct trace_event_data_offsets_clk { + u32 name; }; -struct raw_sock { - struct inet_sock inet; - struct icmp_filter filter; - u32 ipmr_table; +struct trace_event_data_offsets_clk_rate { + u32 name; }; -struct raw_frag_vec { - struct msghdr *msg; - union { - struct icmphdr icmph; - char c[1]; - } hdr; - int hlen; +struct trace_event_data_offsets_clk_rate_range { + u32 name; }; -enum fib6_walk_state { - FWS_S = 0, - FWS_L = 1, - FWS_R = 2, - FWS_C = 3, - FWS_U = 4, +struct trace_event_data_offsets_clk_parent { + u32 name; + u32 pname; }; -enum { - FIB6_NO_SERNUM_CHANGE = 0, +struct trace_event_data_offsets_clk_phase { + u32 name; }; -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 trace_event_data_offsets_clk_duty_cycle { + u32 name; }; -struct fib6_cleaner { - struct fib6_walker w; - struct net *net; - int (*func)(struct fib6_info *, void *); - int sernum; - void *arg; - bool skip_notify; +struct trace_event_data_offsets_clk_rate_request { + u32 name; + u32 pname; }; -struct fib6_dump_arg { - struct net *net; +struct clk_notifier_devres { + struct clk *clk; struct notifier_block *nb; - struct netlink_ext_ack *extack; }; -struct fib6_entry_notifier_info { - struct fib_notifier_info info; - struct fib6_info *rt; - unsigned int nsiblings; +struct mtk_ref2usb_tx { + struct clk_hw hw; + void *base_addr; }; -struct ipv6_route_iter { - struct seq_net_private p; - struct fib6_walker w; - long: 32; - loff_t skip; - struct fib6_table *tbl; - int sernum; +struct mtk_clk_mux { + struct clk_hw hw; + struct regmap *regmap; + const struct mtk_mux *data; + spinlock_t *lock; + bool reparent; }; -struct bpf_iter__ipv6_route { - union { - struct bpf_iter_meta *meta; - }; - union { - struct fib6_info *rt; - }; +struct mtk_mux_nb { + struct notifier_block nb; + const struct clk_ops *ops; + u8 bypass_index; + u8 original_index; }; -struct fib6_nh_pcpu_arg { - struct fib6_info *from; - const struct fib6_table *table; +struct mmp_clk_factor_masks { + unsigned int factor; + unsigned int num_mask; + unsigned int den_mask; + unsigned int num_shift; + unsigned int den_shift; + unsigned int enable_mask; }; -struct lookup_args { - int offset; - const struct in6_addr *addr; +struct mmp_clk_factor_tbl { + unsigned int num; + unsigned int den; }; -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; +enum mmp2_clk_model { + CLK_MODEL_MMP2 = 0, + CLK_MODEL_MMP3 = 1, }; -struct gss_pipe { - struct rpc_pipe_dir_object pdo; - struct rpc_pipe *pipe; - struct rpc_clnt *clnt; - const char *name; - struct kref kref; +struct mmp2_clk_unit { + struct mmp_clk_unit unit; + enum mmp2_clk_model model; + struct genpd_onecell_data pd_data; + struct generic_pm_domain *pm_domains[3]; + void *mpmu_base; + void *apmu_base; + void *apbc_base; }; -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 cpg_clk_config { + unsigned int z_mult; + unsigned int z_div; + unsigned int zs_and_s_div; + unsigned int s1_div; + unsigned int p_div; + unsigned int b_and_out_div; }; -struct gss_alloc_pdo { - struct rpc_clnt *clnt; - const char *name; - const struct rpc_pipe_ops *upcall_ops; +struct samsung_clock_reg_cache { + struct list_head node; + void *reg_base; + struct samsung_clk_reg_dump *rdump; + unsigned int rd_num; + const struct samsung_clk_reg_dump *rsuspend; + unsigned int rsuspend_num; }; -struct sigaltstack { - void __attribute__((btf_type_tag("user"))) *ss_sp; - int ss_flags; - __kernel_size_t ss_size; +struct samsung_clock_alias { + unsigned int id; + const char *dev_name; + const char *alias; }; -typedef struct sigaltstack stack_t; - -struct sigcontext { - unsigned long trap_no; - unsigned long error_code; - unsigned long oldmask; - unsigned long arm_r0; - unsigned long arm_r1; - unsigned long arm_r2; - unsigned long arm_r3; - unsigned long arm_r4; - unsigned long arm_r5; - unsigned long arm_r6; - unsigned long arm_r7; - unsigned long arm_r8; - unsigned long arm_r9; - unsigned long arm_r10; - unsigned long arm_fp; - unsigned long arm_ip; - unsigned long arm_sp; - unsigned long arm_lr; - unsigned long arm_pc; - unsigned long arm_cpsr; - unsigned long fault_address; +struct clk_frac { + struct clk_hw hw; + void *reg; + struct frac_rate_tbl *rtbl; + u8 rtbl_cnt; + spinlock_t *lock; }; -struct ucontext { - unsigned long uc_flags; - struct ucontext *uc_link; - stack_t uc_stack; - struct sigcontext uc_mcontext; - sigset_t uc_sigmask; - int __unused[30]; - unsigned long uc_regspace[128]; +struct clkgen_mux_data { + u32 offset; + u8 shift; + u8 width; + spinlock_t *lock; + unsigned long clk_flags; + u8 mux_flags; }; -struct sigframe { - struct ucontext uc; - unsigned long retcode[4]; +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 rt_sigframe { - struct siginfo info; - struct sigframe sig; +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 iwmmxt_sigframe { - unsigned long magic; - unsigned long size; - struct iwmmxt_struct storage; +struct scmi_pm_domain { + struct generic_pm_domain genpd; + const struct scmi_protocol_handle *ph; + const char *name; + u32 domain; + long: 32; }; -struct vfp_sigframe { - unsigned long magic; - unsigned long size; - struct user_vfp ufp; - struct user_vfp_exc ufp_exc; - long: 32; +struct exynos_pm_domain_config { + u32 local_pwr_cfg; }; -struct aux_sigframe { - struct iwmmxt_sigframe iwmmxt; - struct vfp_sigframe vfp; - unsigned long end_magic; +struct exynos_pm_domain { + void *base; + long: 32; + struct generic_pm_domain pd; + u32 local_pwr_cfg; long: 32; }; -typedef void (*phys_reset_t___2)(unsigned long); - -struct omap_smartreflex_dev_attr { - const char *sensor_voltdm_name; -}; +struct ab8500_ext_regulator_cfg; -struct ptrace_peeksiginfo_args { - __u64 off; - __u32 flags; - __s32 nr; +struct ab8500_ext_regulator_info { + struct device *dev; + struct regulator_desc desc; + struct ab8500_ext_regulator_cfg *cfg; + u8 update_bank; + u8 update_reg; + u8 update_mask; + u8 update_val; + u8 update_val_hp; + u8 update_val_lp; + u8 update_val_hw; }; -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; - long: 32; - } exit; - struct { - __u64 nr; - __u64 args[6]; - __u32 ret_data; - long: 32; - } seccomp; - }; +struct ab8500_ext_regulator_cfg { + bool hwreq; }; -struct ptrace_rseq_configuration { - __u64 rseq_abi_pointer; - __u32 rseq_abi_size; - __u32 signature; - __u32 flags; - __u32 pad; +enum ab8500_ext_regulator_id { + AB8500_EXT_SUPPLY1 = 0, + AB8500_EXT_SUPPLY2 = 1, + AB8500_EXT_SUPPLY3 = 2, + AB8500_NUM_EXT_REGULATORS = 3, }; -struct irq_devres { - unsigned int irq; - void *dev_id; +struct rpm_regulator_data___2 { + const char *name; + u32 type; + u32 id; + const struct regulator_desc *desc; + const char *supply; }; -struct irq_desc_devres { - unsigned int from; - unsigned int cnt; -}; +struct qcom_smd_rpm; -struct irq_generic_chip_devres { - struct irq_chip_generic *gc; - u32 msk; - unsigned int clr; - unsigned int set; +struct qcom_rpm_reg___2 { + struct device *dev; + struct qcom_smd_rpm *rpm; + u32 type; + u32 id; + struct regulator_desc desc; + int is_enabled; + int uV; + u32 load; + unsigned int enabled_updated: 1; + unsigned int uv_updated: 1; + unsigned int load_updated: 1; }; -struct sigevent { - sigval_t sigev_value; - int sigev_signo; - int sigev_notify; - union { - int _pad[13]; - int _tid; - struct { - void (*_function)(sigval_t); - void *_attribute; - } _sigev_thread; - } _sigev_un; +struct rpm_regulator_req { + __le32 key; + __le32 nbytes; + __le32 value; }; -typedef struct sigevent sigevent_t; - -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, +struct hi3660_reset_controller { + struct reset_controller_dev rst; + struct regmap *map; }; -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, +struct scmi_reset_data { + struct reset_controller_dev rcdev; + const struct scmi_protocol_handle *ph; }; -enum probe_print_type { - PROBE_PRINT_NORMAL = 0, - PROBE_PRINT_RETURN = 1, - PROBE_PRINT_EVENT = 2, +struct vt_spawn_console { + spinlock_t lock; + struct pid *pid; + int sig; }; -enum { - TP_ERR_FILE_NOT_FOUND = 0, - TP_ERR_NO_REGULAR_FILE = 1, - TP_ERR_BAD_REFCNT = 2, - TP_ERR_REFCNT_OPEN_BRACE = 3, - TP_ERR_BAD_REFCNT_SUFFIX = 4, - TP_ERR_BAD_UPROBE_OFFS = 5, - TP_ERR_BAD_MAXACT_TYPE = 6, - TP_ERR_BAD_MAXACT = 7, - TP_ERR_MAXACT_TOO_BIG = 8, - TP_ERR_BAD_PROBE_ADDR = 9, - TP_ERR_BAD_RETPROBE = 10, - TP_ERR_NO_TRACEPOINT = 11, - TP_ERR_BAD_ADDR_SUFFIX = 12, - TP_ERR_NO_GROUP_NAME = 13, - TP_ERR_GROUP_TOO_LONG = 14, - TP_ERR_BAD_GROUP_NAME = 15, - TP_ERR_NO_EVENT_NAME = 16, - TP_ERR_EVENT_TOO_LONG = 17, - TP_ERR_BAD_EVENT_NAME = 18, - TP_ERR_EVENT_EXIST = 19, - TP_ERR_RETVAL_ON_PROBE = 20, - TP_ERR_NO_RETVAL = 21, - TP_ERR_BAD_STACK_NUM = 22, - TP_ERR_BAD_ARG_NUM = 23, - TP_ERR_BAD_VAR = 24, - TP_ERR_BAD_REG_NAME = 25, - TP_ERR_BAD_MEM_ADDR = 26, - TP_ERR_BAD_IMM = 27, - TP_ERR_IMMSTR_NO_CLOSE = 28, - TP_ERR_FILE_ON_KPROBE = 29, - TP_ERR_BAD_FILE_OFFS = 30, - TP_ERR_SYM_ON_UPROBE = 31, - TP_ERR_TOO_MANY_OPS = 32, - TP_ERR_DEREF_NEED_BRACE = 33, - TP_ERR_BAD_DEREF_OFFS = 34, - TP_ERR_DEREF_OPEN_BRACE = 35, - TP_ERR_COMM_CANT_DEREF = 36, - TP_ERR_BAD_FETCH_ARG = 37, - TP_ERR_ARRAY_NO_CLOSE = 38, - TP_ERR_BAD_ARRAY_SUFFIX = 39, - TP_ERR_BAD_ARRAY_NUM = 40, - TP_ERR_ARRAY_TOO_BIG = 41, - TP_ERR_BAD_TYPE = 42, - TP_ERR_BAD_STRING = 43, - TP_ERR_BAD_SYMSTRING = 44, - TP_ERR_BAD_BITFIELD = 45, - TP_ERR_ARG_NAME_TOO_LONG = 46, - TP_ERR_NO_ARG_NAME = 47, - TP_ERR_BAD_ARG_NAME = 48, - TP_ERR_USED_ARG_NAME = 49, - TP_ERR_ARG_TOO_LONG = 50, - TP_ERR_NO_ARG_BODY = 51, - TP_ERR_BAD_INSN_BNDRY = 52, - TP_ERR_FAIL_REG_PROBE = 53, - TP_ERR_DIFF_PROBE_TYPE = 54, - TP_ERR_DIFF_ARG_TYPE = 55, - TP_ERR_SAME_PROBE = 56, - TP_ERR_NO_EVENT_INFO = 57, - TP_ERR_BAD_ATTACH_EVENT = 58, - TP_ERR_BAD_ATTACH_ARG = 59, - TP_ERR_NO_EP_FILTER = 60, - TP_ERR_NOSUP_BTFARG = 61, - TP_ERR_NO_BTFARG = 62, - TP_ERR_NO_BTF_ENTRY = 63, - TP_ERR_BAD_VAR_ARGS = 64, - TP_ERR_NOFENTRY_ARGS = 65, - TP_ERR_DOUBLE_ARGS = 66, - TP_ERR_ARGS_2LONG = 67, +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; + long: 1; + unsigned char modeflags: 5; }; -struct fetch_insn; +typedef void k_handler_fn(struct vc_data *, unsigned char, char); -struct fetch_type; +typedef void fn_handler_fn(struct vc_data *); -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 kbd_led_trigger { + struct led_trigger trigger; + unsigned int mask; }; -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 getset_keycode_data { + struct input_keymap_entry ke; + int error; }; -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 keyboard_notifier_param { + struct vc_data *vc; + int down; + int shift; + int ledstate; + unsigned int value; }; -struct trace_uprobe_filter { - rwlock_t rwlock; - int nr_systemwide; - struct list_head perf_events; +struct kbdiacr { + unsigned char diacr; + unsigned char base; + unsigned char result; }; -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 kbdiacrs { + unsigned int kb_cnt; + struct kbdiacr kbdiacr[256]; }; -struct fetch_insn { - enum fetch_op op; - union { - unsigned int param; - struct { - unsigned int size; - int offset; - }; - struct { - unsigned char basesize; - unsigned char lshift; - unsigned char rshift; - }; - unsigned long immediate; - void *data; - }; +struct kbdiacrsuc { + unsigned int kb_cnt; + struct kbdiacruc kbdiacruc[256]; }; -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 exynos_trng_dev { + struct device *dev; + void *mem; + struct clk *clk; + struct hwrng rng; }; -struct event_file_link { - struct trace_event_file *file; - struct list_head list; +struct mtk_rng { + void *base; + struct clk *clk; + struct hwrng rng; }; -struct kretprobe_trace_entry_head { - struct trace_entry ent; - unsigned long func; - unsigned long ret_ip; +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, }; -struct kprobe_trace_entry_head { - struct trace_entry ent; - unsigned long ip; +struct drm_unique { + __kernel_size_t unique_len; + char __attribute__((btf_type_tag("user"))) *unique; }; -struct traceprobe_parse_context { - struct trace_event_call *event; - const struct btf_param *params; - s32 nr_params; - const char *funcname; - unsigned int flags; - int offset; +struct drm_client { + int idx; + int auth; + unsigned long pid; + unsigned long uid; + unsigned long magic; + unsigned long iocs; }; -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); +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; +}; -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, +struct drm_stats { + unsigned long count; + struct { + unsigned long value; + enum drm_stat_type type; + } data[15]; }; -enum rseq_flags { - RSEQ_FLAG_UNREGISTER = 1, +struct drm_set_version { + int drm_di_major; + int drm_di_minor; + int drm_dd_major; + int drm_dd_minor; }; -enum rseq_cpu_id_state { - RSEQ_CPU_ID_UNINITIALIZED = -1, - RSEQ_CPU_ID_REGISTRATION_FAILED = -2, +struct drm_get_cap { + __u64 capability; + __u64 value; }; -struct trace_event_raw_rseq_update { - struct trace_entry ent; - s32 cpu_id; - s32 node_id; - s32 mm_cid; - char __data[0]; +struct drm_set_client_cap { + __u64 capability; + __u64 value; }; -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 firmware_cache { + spinlock_t lock; + struct list_head head; + int state; + spinlock_t name_lock; + struct list_head fw_names; + struct delayed_work work; + struct notifier_block pm_notify; }; -struct rseq_cs { - __u32 version; - __u32 flags; - __u64 start_ip; - __u64 post_commit_offset; - __u64 abort_ip; +enum fw_status { + FW_STATUS_UNKNOWN = 0, + FW_STATUS_LOADING = 1, + FW_STATUS_DONE = 2, + FW_STATUS_ABORTED = 3, }; -struct trace_event_data_offsets_rseq_update {}; - -struct trace_event_data_offsets_rseq_ip_fixup {}; +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 mlock_fbatch { - local_lock_t lock; - struct folio_batch fbatch; +struct fw_state { + struct completion completion; + enum fw_status status; }; -enum poll_time_type { - PT_TIMEVAL = 0, - PT_OLD_TIMEVAL = 1, - PT_TIMESPEC = 2, - PT_OLD_TIMESPEC = 3, +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; }; -typedef struct { - unsigned long fds_bits[32]; -} __kernel_fd_set; +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; +}; -typedef __kernel_fd_set fd_set; +struct fw_cache_entry { + struct list_head list; + const char *name; +}; -struct sel_arg_struct { - unsigned long n; - fd_set __attribute__((btf_type_tag("user"))) *inp; - fd_set __attribute__((btf_type_tag("user"))) *outp; - fd_set __attribute__((btf_type_tag("user"))) *exp; - struct __kernel_old_timeval __attribute__((btf_type_tag("user"))) *tvp; +struct fw_name_devm { + unsigned long magic; + const char *name; }; -struct poll_table_entry { - struct file *filp; - __poll_t key; - wait_queue_entry_t wait; - wait_queue_head_t *wait_address; +struct tps6586x_irq_data { + u8 mask_reg; + u8 mask_mask; }; -struct poll_table_page; +struct tps6586x { + struct device *dev; + struct i2c_client *client; + struct regmap *regmap; + int version; + int irq; + struct irq_chip irq_chip; + struct mutex irq_lock; + int irq_base; + u32 irq_en; + u8 mask_reg[5]; + struct irq_domain *irq_domain; +}; -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[16]; +enum { + AS3711_REGULATOR = 0, + AS3711_BACKLIGHT = 1, }; -struct poll_table_page { - struct poll_table_page *next; - struct poll_table_entry *entry; - struct poll_table_entry entries[0]; +struct as3711_platform_data { + struct as3711_regulator_pdata regulator; + struct as3711_bl_pdata backlight; }; -struct poll_list { - struct poll_list *next; - int len; - struct pollfd entries[0]; +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; }; -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; +typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *); -struct sigset_argpack { - sigset_t __attribute__((btf_type_tag("user"))) *p; - size_t size; +struct ata_scsi_args { + struct ata_device *dev; + u16 *id; + struct scsi_cmnd *cmd; }; -struct nfs4_ssc_client_ops; +enum sata_rcar_type { + RCAR_GEN1_SATA = 0, + RCAR_GEN2_SATA = 1, + RCAR_GEN3_SATA = 2, + RCAR_R8A7790_ES1_SATA = 3, +}; -struct nfs_ssc_client_ops_tbl { - const struct nfs4_ssc_client_ops *ssc_nfs4_ops; - const struct nfs_ssc_client_ops *ssc_nfs_ops; +struct sata_rcar_priv { + void *base; + u32 sataint_mask; + enum sata_rcar_type type; }; -struct nfs4_ssc_client_ops { - struct file * (*sco_open)(struct vfsmount *, struct nfs_fh *, nfs4_stateid *); - void (*sco_close)(struct file *); +enum vf610_nfc_variant { + NFC_VFC610 = 1, }; -enum bio_post_read_step { - STEP_INITIAL = 0, - STEP_DECRYPT = 1, - STEP_VERITY = 2, - STEP_MAX = 3, +struct vf610_nfc { + struct nand_controller base; + long: 32; + struct nand_chip chip; + struct device *dev; + void *regs; + struct completion cmd_done; + enum vf610_nfc_variant variant; + struct clk *clk; + bool data_access; + u32 ecc_mode; }; -struct bio_post_read_ctx { - struct bio *bio; - struct work_struct work; - unsigned int cur_step; - unsigned int enabled_steps; +struct smsc_hw_stat { + const char *string; + u8 reg; + u8 bits; }; -typedef void (*btf_trace_nfs4_setclientid)(void *, const struct nfs_client *, int); +struct smsc_phy_priv { + unsigned int edpd_enable: 1; + unsigned int edpd_mode_set_by_user: 1; + unsigned int edpd_max_wait_ms; + bool wol_arp; +}; -typedef void (*btf_trace_nfs4_setclientid_confirm)(void *, const struct nfs_client *, int); +struct macb_usrio_config; -typedef void (*btf_trace_nfs4_renew)(void *, const struct nfs_client *, int); +struct macb_config { + u32 caps; + unsigned int dma_burst_length; + int (*clk_init)(struct platform_device *, struct clk **, struct clk **, struct clk **, struct clk **, struct clk **); + int (*init)(struct platform_device *); + unsigned int max_tx_length; + int jumbo_max_len; + const struct macb_usrio_config *usrio; +}; -typedef void (*btf_trace_nfs4_renew_async)(void *, const struct nfs_client *, int); +struct macb_usrio_config { + u32 mii; + u32 rmii; + u32 rgmii; + u32 refclk; + u32 hdfctlen; +}; -typedef void (*btf_trace_nfs4_exchange_id)(void *, const struct nfs_client *, int); +struct gem_statistic { + char stat_string[32]; + int offset; + u32 stat_bits; +}; -typedef void (*btf_trace_nfs4_create_session)(void *, const struct nfs_client *, int); +struct macb; -typedef void (*btf_trace_nfs4_destroy_session)(void *, const struct nfs_client *, int); +struct macb_ptp_info { + void (*ptp_init)(struct net_device *); + void (*ptp_remove)(struct net_device *); + s32 (*get_ptp_max_adj)(); + unsigned int (*get_tsu_rate)(struct macb *); + int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *); + int (*get_hwtst)(struct net_device *, struct ifreq *); + int (*set_hwtst)(struct net_device *, struct ifreq *, int); +}; -typedef void (*btf_trace_nfs4_destroy_clientid)(void *, const struct nfs_client *, int); +struct macb_stats { + u32 rx_pause_frames; + u32 tx_ok; + u32 tx_single_cols; + u32 tx_multiple_cols; + u32 rx_ok; + u32 rx_fcs_errors; + u32 rx_align_errors; + u32 tx_deferred; + u32 tx_late_cols; + u32 tx_excessive_cols; + u32 tx_underruns; + u32 tx_carrier_errors; + u32 rx_resource_errors; + u32 rx_overruns; + u32 rx_symbol_errors; + u32 rx_oversize_pkts; + u32 rx_jabbers; + u32 rx_undersize_pkts; + u32 sqe_test_errors; + u32 rx_length_mismatch; + u32 tx_pause_frames; +}; -typedef void (*btf_trace_nfs4_bind_conn_to_session)(void *, const struct nfs_client *, int); +struct gem_stats { + u32 tx_octets_31_0; + u32 tx_octets_47_32; + u32 tx_frames; + u32 tx_broadcast_frames; + u32 tx_multicast_frames; + u32 tx_pause_frames; + u32 tx_64_byte_frames; + u32 tx_65_127_byte_frames; + u32 tx_128_255_byte_frames; + u32 tx_256_511_byte_frames; + u32 tx_512_1023_byte_frames; + u32 tx_1024_1518_byte_frames; + u32 tx_greater_than_1518_byte_frames; + u32 tx_underrun; + u32 tx_single_collision_frames; + u32 tx_multiple_collision_frames; + u32 tx_excessive_collisions; + u32 tx_late_collisions; + u32 tx_deferred_frames; + u32 tx_carrier_sense_errors; + u32 rx_octets_31_0; + u32 rx_octets_47_32; + u32 rx_frames; + u32 rx_broadcast_frames; + u32 rx_multicast_frames; + u32 rx_pause_frames; + u32 rx_64_byte_frames; + u32 rx_65_127_byte_frames; + u32 rx_128_255_byte_frames; + u32 rx_256_511_byte_frames; + u32 rx_512_1023_byte_frames; + u32 rx_1024_1518_byte_frames; + u32 rx_greater_than_1518_byte_frames; + u32 rx_undersized_frames; + u32 rx_oversize_frames; + u32 rx_jabbers; + u32 rx_frame_check_sequence_errors; + u32 rx_length_field_frame_errors; + u32 rx_symbol_errors; + u32 rx_alignment_errors; + u32 rx_resource_errors; + u32 rx_overruns; + u32 rx_ip_header_checksum_errors; + u32 rx_tcp_checksum_errors; + u32 rx_udp_checksum_errors; +}; -typedef void (*btf_trace_nfs4_sequence)(void *, const struct nfs_client *, int); +struct queue_stats { + union { + unsigned long first; + unsigned long rx_packets; + }; + unsigned long rx_bytes; + unsigned long rx_dropped; + unsigned long tx_packets; + unsigned long tx_bytes; + unsigned long tx_dropped; +}; -typedef void (*btf_trace_nfs4_reclaim_complete)(void *, const struct nfs_client *, int); +struct macb_dma_desc; -typedef void (*btf_trace_nfs4_sequence_done)(void *, const struct nfs4_session *, const struct nfs4_sequence_res *); +struct macb_tx_skb; -typedef void (*btf_trace_nfs4_cb_sequence)(void *, const struct cb_sequenceargs *, const struct cb_sequenceres *, __be32); +struct macb_queue { + struct macb *bp; + int irq; + unsigned int ISR; + unsigned int IER; + unsigned int IDR; + unsigned int IMR; + unsigned int TBQP; + unsigned int TBQPH; + unsigned int RBQS; + unsigned int RBQP; + unsigned int RBQPH; + spinlock_t tx_ptr_lock; + unsigned int tx_head; + unsigned int tx_tail; + struct macb_dma_desc *tx_ring; + struct macb_tx_skb *tx_skb; + dma_addr_t tx_ring_dma; + struct work_struct tx_error_task; + bool txubr_pending; + struct napi_struct napi_tx; + dma_addr_t rx_ring_dma; + dma_addr_t rx_buffers_dma; + unsigned int rx_tail; + unsigned int rx_prepared_head; + struct macb_dma_desc *rx_ring; + struct sk_buff **rx_skbuff; + void *rx_buffers; + long: 32; + struct napi_struct napi_rx; + struct queue_stats stats; +}; -typedef void (*btf_trace_nfs4_cb_seqid_err)(void *, const struct cb_sequenceargs *, __be32); +struct macb_or_gem_ops { + int (*mog_alloc_rx_buffers)(struct macb *); + void (*mog_free_rx_buffers)(struct macb *); + void (*mog_init_rings)(struct macb *); + int (*mog_rx)(struct macb_queue *, struct napi_struct *, int); +}; -typedef void (*btf_trace_nfs4_cb_offload)(void *, const struct nfs_fh *, const nfs4_stateid *, uint64_t, int, int); +struct macb_tx_skb { + struct sk_buff *skb; + dma_addr_t mapping; + size_t size; + bool mapped_as_page; +}; -typedef void (*btf_trace_nfs4_setup_sequence)(void *, const struct nfs4_session *, const struct nfs4_sequence_args *); +struct tsu_incr { + u32 sub_ns; + u32 ns; +}; -typedef void (*btf_trace_nfs4_state_mgr)(void *, const struct nfs_client *); +struct ethtool_rx_fs_list { + struct list_head list; + unsigned int count; +}; -typedef void (*btf_trace_nfs4_state_mgr_failed)(void *, const struct nfs_client *, const char *, int); +struct macb_pm_data { + u32 scrt2; + u32 usrio; +}; -typedef void (*btf_trace_nfs4_xdr_bad_operation)(void *, const struct xdr_stream *, u32, u32); +struct macb { + void *regs; + bool native_io; + u32 (*macb_reg_readl)(struct macb *, int); + void (*macb_reg_writel)(struct macb *, int, u32); + size_t rx_buffer_size; + unsigned int rx_ring_size; + unsigned int tx_ring_size; + unsigned int num_queues; + unsigned int queue_mask; + long: 32; + struct macb_queue queues[8]; + spinlock_t lock; + struct platform_device *pdev; + struct clk *pclk; + struct clk *hclk; + struct clk *tx_clk; + struct clk *rx_clk; + struct clk *tsu_clk; + struct net_device *dev; + union { + struct macb_stats macb; + struct gem_stats gem; + } hw_stats; + struct macb_or_gem_ops macbgem_ops; + struct mii_bus *mii_bus; + struct phylink *phylink; + struct phylink_config phylink_config; + struct phylink_pcs phylink_usx_pcs; + struct phylink_pcs phylink_sgmii_pcs; + u32 caps; + unsigned int dma_burst_length; + phy_interface_t phy_interface; + struct macb_tx_skb rm9200_txq[2]; + unsigned int max_tx_length; + u64 ethtool_stats[91]; + unsigned int rx_frm_len_mask; + unsigned int jumbo_max_len; + u32 wol; + u32 rx_watermark; + struct macb_ptp_info *ptp_info; + struct phy *sgmii_phy; + uint8_t hw_dma_cap; + spinlock_t tsu_clk_lock; + unsigned int tsu_rate; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; + struct tsu_incr tsu_incr; + struct hwtstamp_config tstamp_config; + struct ethtool_rx_fs_list rx_fs_list; + spinlock_t rx_fs_lock; + unsigned int max_tuples; + struct tasklet_struct hresp_err_tasklet; + int rx_bd_rd_prefetch; + int tx_bd_rd_prefetch; + u32 rx_intr_mask; + struct macb_pm_data pm_data; + const struct macb_usrio_config *usrio; +}; -typedef void (*btf_trace_nfs4_xdr_status)(void *, const struct xdr_stream *, u32, u32); +struct macb_dma_desc { + u32 addr; + u32 ctrl; +}; -typedef void (*btf_trace_nfs4_xdr_bad_filehandle)(void *, const struct xdr_stream *, u32, u32); +struct sifive_fu540_macb_mgmt { + void *reg; + unsigned long rate; + struct clk_hw hw; +}; -typedef void (*btf_trace_nfs_cb_no_clp)(void *, __be32, u32); +enum macb_bd_control { + TSTAMP_DISABLED = 0, + TSTAMP_FRAME_PTP_EVENT_ONLY = 1, + TSTAMP_ALL_PTP_FRAMES = 2, + TSTAMP_ALL_FRAMES = 3, +}; -typedef void (*btf_trace_nfs_cb_badprinc)(void *, __be32, u32); +enum pm_gem_config_type { + GEM_CONFIG_SGMII_MODE = 1, + GEM_CONFIG_FIXED = 2, +}; -typedef void (*btf_trace_nfs4_open_reclaim)(void *, const struct nfs_open_context *, int, int); +struct ethtool_rx_fs_item { + struct ethtool_rx_flow_spec fs; + struct list_head list; +}; -typedef void (*btf_trace_nfs4_open_expired)(void *, const struct nfs_open_context *, int, int); +struct macb_platform_data { + struct clk *pclk; + struct clk *hclk; +}; -typedef void (*btf_trace_nfs4_open_file)(void *, const struct nfs_open_context *, int, int); +struct imx_dwmac_ops { + u32 addr_width; + u32 flags; + bool mac_rgmii_txclk_auto_adj; + int (*fix_soc_reset)(void *, void *); + int (*set_intf_mode)(struct plat_stmmacenet_data *); + void (*fix_mac_speed)(void *, unsigned int, unsigned int); +}; -typedef void (*btf_trace_nfs4_cached_open)(void *, const struct nfs4_state *); +struct imx_priv_data { + struct device *dev; + struct clk *clk_tx; + struct clk *clk_mem; + struct regmap *intf_regmap; + u32 intf_reg_off; + bool rmii_refclk_ext; + void *base_addr; + const struct imx_dwmac_ops *ops; + struct plat_stmmacenet_data *plat_dat; +}; -typedef void (*btf_trace_nfs4_close)(void *, const struct nfs4_state *, const struct nfs_closeargs *, const struct nfs_closeres *, int); +struct ulpi_info { + unsigned int id; + char *name; +}; -typedef void (*btf_trace_nfs4_get_lock)(void *, const struct file_lock *, const struct nfs4_state *, int, int); +enum xfer_buf_dir { + TO_XFER_BUF = 0, + FROM_XFER_BUF = 1, +}; -typedef void (*btf_trace_nfs4_unlock)(void *, const struct file_lock *, const struct nfs4_state *, int, int); +struct ci_hdrc_imx_platform_flag { + unsigned int flags; +}; -typedef void (*btf_trace_nfs4_set_lock)(void *, const struct file_lock *, const struct nfs4_state *, const nfs4_stateid *, int, int); +struct imx_usbmisc_data { + struct device *dev; + int index; + unsigned int disable_oc: 1; + unsigned int oc_pol_active_low: 1; + unsigned int oc_pol_configured: 1; + unsigned int pwr_pol: 1; + unsigned int evdo: 1; + unsigned int ulpi: 1; + unsigned int hsic: 1; + unsigned int ext_id: 1; + unsigned int ext_vbus: 1; + struct usb_phy *usb_phy; + enum usb_dr_mode available_role; + int emp_curr_control; + int dc_vol_level_adjust; + int rise_fall_time_adjust; +}; -typedef void (*btf_trace_nfs4_state_lock_reclaim)(void *, const struct nfs4_state *, const struct nfs4_lock_state *); +struct ci_hdrc_imx_data { + struct usb_phy *phy; + struct platform_device *ci_pdev; + struct clk *clk; + struct imx_usbmisc_data *usbmisc_data; + bool supports_runtime_pm; + bool override_phy_control; + bool in_lpm; + struct pinctrl *pinctrl; + struct pinctrl_state *pinctrl_hsic_active; + struct regulator *hsic_pad_regulator; + bool need_three_clks; + struct clk *clk_ipg; + struct clk *clk_ahb; + struct clk *clk_per; + struct pm_qos_request pm_qos_req; + const struct ci_hdrc_imx_platform_flag *plat_data; +}; -typedef void (*btf_trace_nfs4_set_delegation)(void *, const struct inode *, fmode_t); +struct ps2pp_info { + u8 model; + u8 kind; + u16 features; +}; -typedef void (*btf_trace_nfs4_reclaim_delegation)(void *, const struct inode *, fmode_t); +struct brcmstb_waketmr { + struct rtc_device *rtc; + struct device *dev; + void *base; + unsigned int wake_irq; + unsigned int alarm_irq; + struct notifier_block reboot_notifier; + struct clk *clk; + u32 rate; + unsigned long rtc_alarm; + bool alarm_en; + bool alarm_expired; +}; -typedef void (*btf_trace_nfs4_delegreturn_exit)(void *, const struct nfs4_delegreturnargs *, const struct nfs4_delegreturnres *, int); +struct wktmr_time { + u32 sec; + u32 pre; +}; -typedef void (*btf_trace_nfs4_test_delegation_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); +struct bcm2835_i2c_dev; -typedef void (*btf_trace_nfs4_test_open_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); +struct clk_bcm2835_i2c { + struct clk_hw hw; + struct bcm2835_i2c_dev *i2c_dev; +}; -typedef void (*btf_trace_nfs4_test_lock_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); +struct bcm2835_i2c_dev { + struct device *dev; + void *regs; + int irq; + long: 32; + struct i2c_adapter adapter; + struct completion completion; + struct i2c_msg *curr_msg; + struct clk *bus_clk; + int num_msgs; + u32 msg_err; + u8 *msg_buf; + size_t msg_buf_remaining; +}; -typedef void (*btf_trace_nfs4_lookup)(void *, const struct inode *, const struct qstr *, int); +struct stm32f7_i2c_spec { + u32 rate; + u32 fall_max; + u32 rise_max; + u32 hddat_min; + u32 vddat_max; + u32 sudat_min; + u32 l_min; + u32 h_min; +}; -typedef void (*btf_trace_nfs4_symlink)(void *, const struct inode *, const struct qstr *, int); +struct stm32f7_i2c_setup { + u32 speed_freq; + u32 clock_src; + u32 rise_time; + u32 fall_time; + u32 fmp_clr_offset; +}; -typedef void (*btf_trace_nfs4_mkdir)(void *, const struct inode *, const struct qstr *, int); +enum { + STM32F7_SLAVE_HOSTNOTIFY = 0, + STM32F7_SLAVE_7_10_BITS_ADDR = 1, + STM32F7_SLAVE_7_BITS_ADDR = 2, + STM32F7_I2C_MAX_SLAVE = 3, +}; -typedef void (*btf_trace_nfs4_mknod)(void *, const struct inode *, const struct qstr *, int); +struct stm32f7_i2c_msg { + u16 addr; + u32 count; + u8 *buf; + int result; + bool stop; + bool smbus; + int size; + char read_write; + long: 0; + u8 smbus_buf[35]; +}; -typedef void (*btf_trace_nfs4_remove)(void *, const struct inode *, const struct qstr *, int); +struct stm32f7_i2c_timings { + struct list_head node; + u8 presc; + u8 scldel; + u8 sdadel; + u8 sclh; + u8 scll; +}; -typedef void (*btf_trace_nfs4_get_fs_locations)(void *, const struct inode *, const struct qstr *, int); +struct stm32f7_i2c_regs { + u32 cr1; + u32 cr2; + u32 oar1; + u32 oar2; + u32 tmgr; +}; -typedef void (*btf_trace_nfs4_secinfo)(void *, const struct inode *, const struct qstr *, int); +struct stm32_i2c_dma; -typedef void (*btf_trace_nfs4_lookupp)(void *, const struct inode *, int); +struct stm32f7_i2c_alert; -typedef void (*btf_trace_nfs4_rename)(void *, const struct inode *, const struct qstr *, const struct inode *, const struct qstr *, int); +struct stm32f7_i2c_dev { + struct i2c_adapter adap; + struct device *dev; + void *base; + struct completion complete; + struct clk *clk; + unsigned int bus_rate; + struct i2c_msg *msg; + unsigned int msg_num; + unsigned int msg_id; + struct stm32f7_i2c_msg f7_msg; + struct stm32f7_i2c_setup setup; + struct stm32f7_i2c_timings timing; + struct i2c_client *slave[3]; + struct i2c_client *slave_running; + struct stm32f7_i2c_regs backup_regs; + u32 slave_dir; + bool master_mode; + struct stm32_i2c_dma *dma; + bool use_dma; + struct regmap *regmap; + u32 fmp_sreg; + u32 fmp_creg; + u32 fmp_mask; + bool wakeup_src; + bool smbus_mode; + struct i2c_client *host_notify_client; + bool analog_filter; + u32 dnf_dt; + u32 dnf; + struct stm32f7_i2c_alert *alert; + bool atomic; +}; -typedef void (*btf_trace_nfs4_access)(void *, const struct inode *, int); +struct stm32_i2c_dma { + struct dma_chan *chan_tx; + struct dma_chan *chan_rx; + struct dma_chan *chan_using; + dma_addr_t dma_buf; + unsigned int dma_len; + enum dma_transfer_direction dma_transfer_dir; + enum dma_data_direction dma_data_dir; + struct completion dma_complete; +}; -typedef void (*btf_trace_nfs4_readlink)(void *, const struct inode *, int); +struct stm32f7_i2c_alert { + struct i2c_smbus_alert_setup setup; + struct i2c_client *ara; +}; -typedef void (*btf_trace_nfs4_readdir)(void *, const struct inode *, int); +struct tps65090_charger { + struct device *dev; + int ac_online; + int prev_ac_online; + int irq; + struct task_struct *poll_task; + bool passive_mode; + struct power_supply *ac; + struct tps65090_platform_data *pdata; +}; -typedef void (*btf_trace_nfs4_get_acl)(void *, const struct inode *, int); +struct rcar_thermal_chip { + unsigned int use_of_thermal: 1; + unsigned int has_filonoff: 1; + unsigned int irq_per_ch: 1; + unsigned int needs_suspend_resume: 1; + unsigned int nirqs; + unsigned int ctemp_bands; +}; -typedef void (*btf_trace_nfs4_set_acl)(void *, const struct inode *, int); +struct rcar_thermal_common; -typedef void (*btf_trace_nfs4_setattr)(void *, const struct inode *, const nfs4_stateid *, int); +struct rcar_thermal_priv { + void *base; + struct rcar_thermal_common *common; + struct thermal_zone_device *zone; + const struct rcar_thermal_chip *chip; + struct delayed_work work; + struct mutex lock; + struct list_head list; + int id; +}; -typedef void (*btf_trace_nfs4_delegreturn)(void *, const struct inode *, const nfs4_stateid *, int); +struct rcar_thermal_common { + void *base; + struct device *dev; + struct list_head head; + spinlock_t lock; +}; -typedef void (*btf_trace_nfs4_open_stateid_update)(void *, const struct inode *, const nfs4_stateid *, int); +struct aspeed_wdt_config { + u32 ext_pulse_width_mask; + u32 irq_shift; + u32 irq_mask; +}; -typedef void (*btf_trace_nfs4_open_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int); +struct aspeed_wdt { + struct watchdog_device wdd; + void *base; + u32 ctrl; + const struct aspeed_wdt_config *cfg; +}; -typedef void (*btf_trace_nfs4_close_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int); +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 *); +}; -typedef void (*btf_trace_nfs4_getattr)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); +struct uniphier_sd_priv { + struct tmio_mmc_data tmio_data; + struct pinctrl *pinctrl; + struct pinctrl_state *pinstate_uhs; + struct clk *clk; + struct reset_control *rst; + struct reset_control *rst_br; + struct reset_control *rst_hw; + struct dma_chan *chan; + enum dma_data_direction dma_dir; + struct regmap *sdctrl_regmap; + u32 sdctrl_ch; + unsigned long clk_rate; + unsigned long caps; +}; -typedef void (*btf_trace_nfs4_lookup_root)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); +typedef int (*gpio_blink_set_t)(struct gpio_desc *, int, unsigned long *, unsigned long *); -typedef void (*btf_trace_nfs4_fsinfo)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); +struct gpio_led_data { + struct led_classdev cdev; + struct gpio_desc *gpiod; + u8 can_sleep; + u8 blinking; + gpio_blink_set_t platform_gpio_blink_set; +}; -typedef void (*btf_trace_nfs4_cb_getattr)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, int); +struct gpio_leds_priv { + int num_leds; + struct gpio_led_data leds[0]; +}; -typedef void (*btf_trace_nfs4_cb_recall)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int); +struct gpio_led { + const char *name; + const char *default_trigger; + unsigned int gpio; + unsigned int active_low: 1; + unsigned int retain_state_suspended: 1; + unsigned int panic_indicator: 1; + unsigned int default_state: 2; + unsigned int retain_state_shutdown: 1; + struct gpio_desc *gpiod; +}; -typedef void (*btf_trace_nfs4_cb_layoutrecall_file)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int); +struct gpio_led_platform_data { + int num_leds; + const struct gpio_led *leds; + gpio_blink_set_t gpio_blink_set; +}; -typedef void (*btf_trace_nfs4_map_name_to_uid)(void *, const char *, int, u32, int); +struct heartbeat_trig_data { + struct led_classdev *led_cdev; + unsigned int phase; + unsigned int period; + struct timer_list timer; + unsigned int invert; +}; -typedef void (*btf_trace_nfs4_map_group_to_gid)(void *, const char *, int, u32, int); +enum scmi_voltage_level_mode { + SCMI_VOLTAGE_LEVEL_SET_AUTO = 0, + SCMI_VOLTAGE_LEVEL_SET_SYNC = 1, +}; -typedef void (*btf_trace_nfs4_map_uid_to_name)(void *, const char *, int, u32, int); +struct scmi_voltage_info; -typedef void (*btf_trace_nfs4_map_gid_to_group)(void *, const char *, int, u32, int); +struct scmi_voltage_proto_ops { + int (*num_domains_get)(const struct scmi_protocol_handle *); + const struct scmi_voltage_info * (*info_get)(const struct scmi_protocol_handle *, u32); + int (*config_set)(const struct scmi_protocol_handle *, u32, u32); + int (*config_get)(const struct scmi_protocol_handle *, u32, u32 *); + int (*level_set)(const struct scmi_protocol_handle *, u32, enum scmi_voltage_level_mode, s32); + int (*level_get)(const struct scmi_protocol_handle *, u32, s32 *); +}; -typedef void (*btf_trace_nfs4_read)(void *, const struct nfs_pgio_header *, int); +struct scmi_voltage_info { + unsigned int id; + bool segmented; + bool negative_volts_allowed; + bool async_level_set; + char name[64]; + unsigned int num_levels; + int *levels_uv; +}; -typedef void (*btf_trace_nfs4_pnfs_read)(void *, const struct nfs_pgio_header *, int); +enum scmi_voltage_protocol_cmd { + VOLTAGE_DOMAIN_ATTRIBUTES = 3, + VOLTAGE_DESCRIBE_LEVELS = 4, + VOLTAGE_CONFIG_SET = 5, + VOLTAGE_CONFIG_GET = 6, + VOLTAGE_LEVEL_SET = 7, + VOLTAGE_LEVEL_GET = 8, + VOLTAGE_DOMAIN_NAME_GET = 9, +}; -typedef void (*btf_trace_nfs4_write)(void *, const struct nfs_pgio_header *, int); +struct voltage_info { + unsigned int version; + unsigned int num_domains; + struct scmi_voltage_info *domains; +}; -typedef void (*btf_trace_nfs4_pnfs_write)(void *, const struct nfs_pgio_header *, int); +struct scmi_msg_resp_domain_attributes { + __le32 attr; + u8 name[16]; +}; -typedef void (*btf_trace_nfs4_commit)(void *, const struct nfs_commit_data *, int); +struct scmi_volt_ipriv { + struct device *dev; + struct scmi_voltage_info *v; +}; -typedef void (*btf_trace_nfs4_pnfs_commit_ds)(void *, const struct nfs_commit_data *, int); +struct scmi_msg_cmd_describe_levels { + __le32 domain_id; + __le32 level_index; +}; -typedef void (*btf_trace_nfs4_layoutget)(void *, const struct nfs_open_context *, const struct pnfs_layout_range *, const struct pnfs_layout_range *, const nfs4_stateid *, int); +struct scmi_msg_resp_describe_levels { + __le32 flags; + __le32 voltage[0]; +}; -typedef void (*btf_trace_nfs4_layoutcommit)(void *, const struct inode *, const nfs4_stateid *, int); +struct scmi_msg_cmd_config_set { + __le32 domain_id; + __le32 config; +}; -typedef void (*btf_trace_nfs4_layoutreturn)(void *, const struct inode *, const nfs4_stateid *, int); +struct scmi_msg_cmd_level_set { + __le32 domain_id; + __le32 flags; + __le32 voltage_level; +}; -typedef void (*btf_trace_nfs4_layoutreturn_on_close)(void *, const struct inode *, const nfs4_stateid *, int); +struct scmi_resp_voltage_level_set_complete { + __le32 domain_id; + __le32 voltage_level; +}; -typedef void (*btf_trace_nfs4_layouterror)(void *, const struct inode *, const nfs4_stateid *, int); +typedef u64 efi_physical_addr_t; -typedef void (*btf_trace_nfs4_layoutstats)(void *, const struct inode *, const nfs4_stateid *, int); +typedef struct { + u64 length; + u64 data; +} efi_capsule_block_desc_t; -typedef void (*btf_trace_pnfs_update_layout)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *, enum pnfs_update_layout_reason); +struct sun5i_timer { + void *base; + struct clk *clk; + struct notifier_block clk_rate_cb; + u32 ticks_per_jiffy; + struct clocksource clksrc; + struct clock_event_device clkevt; +}; -typedef void (*btf_trace_pnfs_mds_fallback_pg_init_read)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +struct mchp_pit64b_timer { + void *base; + struct clk *pclk; + struct clk *gclk; + u32 mode; +}; -typedef void (*btf_trace_pnfs_mds_fallback_pg_init_write)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +struct mchp_pit64b_clkevt { + struct mchp_pit64b_timer timer; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct clock_event_device clkevt; +}; -typedef void (*btf_trace_pnfs_mds_fallback_pg_get_mirror_count)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +struct mchp_pit64b_clksrc { + struct mchp_pit64b_timer timer; + struct clocksource clksrc; +}; -typedef void (*btf_trace_pnfs_mds_fallback_read_done)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +struct bcma_driver { + const char *name; + const struct bcma_device_id *id_table; + int (*probe)(struct bcma_device *); + void (*remove)(struct bcma_device *); + int (*suspend)(struct bcma_device *); + int (*resume)(struct bcma_device *); + void (*shutdown)(struct bcma_device *); + struct device_driver drv; +}; -typedef void (*btf_trace_pnfs_mds_fallback_write_done)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +enum emc_dll_change { + DLL_CHANGE_NONE = 0, + DLL_CHANGE_ON = 1, + DLL_CHANGE_OFF = 2, +}; -typedef void (*btf_trace_pnfs_mds_fallback_read_pagelist)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +enum emc_dram_type___2 { + DRAM_TYPE_DDR3 = 0, + DRAM_TYPE_DDR1___2 = 1, + DRAM_TYPE_LPDDR2___2 = 2, + DRAM_TYPE_DDR2___2 = 3, +}; -typedef void (*btf_trace_pnfs_mds_fallback_write_pagelist)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +enum emc_rate_request_type___2 { + EMC_RATE_DEBUG___2 = 0, + EMC_RATE_ICC___2 = 1, + EMC_RATE_TYPE_MAX___2 = 2, +}; -typedef void (*btf_trace_nfs4_deviceid_free)(void *, const struct nfs_client *, const struct nfs4_deviceid *); +struct emc_timing___2; -typedef void (*btf_trace_nfs4_getdeviceinfo)(void *, const struct nfs_server *, const struct nfs4_deviceid *, int); +struct tegra_emc___2 { + struct device *dev; + struct tegra_mc *mc; + struct icc_provider provider; + struct notifier_block clk_nb; + struct clk *clk; + void *regs; + unsigned int irq; + bool bad_state; + struct emc_timing___2 *new_timing; + struct emc_timing___2 *timings; + unsigned int num_timings; + u32 mc_override; + u32 emc_cfg; + u32 emc_mode_1; + u32 emc_mode_2; + u32 emc_mode_reset; + bool vref_cal_toggle: 1; + bool zcal_long: 1; + bool dll_on: 1; + struct { + struct dentry *root; + unsigned long min_rate; + unsigned long max_rate; + } debugfs; + struct emc_rate_request requested_rate[2]; + struct mutex rate_lock; + bool mrr_error; +}; -typedef void (*btf_trace_nfs4_find_deviceid)(void *, const struct nfs_server *, const struct nfs4_deviceid *, int); +struct emc_timing___2 { + unsigned long rate; + u32 data[89]; + u32 emc_auto_cal_interval; + u32 emc_mode_1; + u32 emc_mode_2; + u32 emc_mode_reset; + u32 emc_zcal_cnt_long; + bool emc_cfg_periodic_qrst; + bool emc_cfg_dyn_self_ref; +}; -typedef void (*btf_trace_ff_layout_read_error)(void *, const struct nfs_pgio_header *); +struct pppoe_tag { + __be16 tag_type; + __be16 tag_len; + char tag_data[0]; +}; -typedef void (*btf_trace_ff_layout_write_error)(void *, const struct nfs_pgio_header *); +struct pppoe_hdr { + __u8 type: 4; + __u8 ver: 4; + __u8 code; + __be16 sid; + __be16 length; + struct pppoe_tag tag[0]; +}; -typedef void (*btf_trace_ff_layout_commit_error)(void *, const struct nfs_commit_data *); +struct flow_dissector_key { + enum flow_dissector_key_id key_id; + size_t offset; +}; -typedef void (*btf_trace_nfs4_llseek)(void *, const struct inode *, const struct nfs42_seek_args *, const struct nfs42_seek_res *, int); +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, +}; -typedef void (*btf_trace_nfs4_fallocate)(void *, const struct inode *, const struct nfs42_falloc_args *, int); +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, +}; -typedef void (*btf_trace_nfs4_deallocate)(void *, const struct inode *, const struct nfs42_falloc_args *, int); +struct _flow_keys_digest_data { + __be16 n_proto; + u8 ip_proto; + u8 padding; + __be32 ports; + __be32 src; + __be32 dst; +}; -typedef void (*btf_trace_nfs4_copy)(void *, const struct inode *, const struct inode *, const struct nfs42_copy_args *, const struct nfs42_copy_res *, const struct nl4_server *, int); +struct mpls_label { + __be32 entry; +}; -typedef void (*btf_trace_nfs4_clone)(void *, const struct inode *, const struct inode *, const struct nfs42_clone_args *, int); +struct flow_dissector_mpls_lse { + u32 mpls_ttl: 8; + u32 mpls_bos: 1; + u32 mpls_tc: 3; + u32 mpls_label: 20; +}; -typedef void (*btf_trace_nfs4_copy_notify)(void *, const struct inode *, const struct nfs42_copy_notify_args *, const struct nfs42_copy_notify_res *, int); +struct flow_dissector_key_mpls { + struct flow_dissector_mpls_lse ls[7]; + u8 used_lses; +}; -typedef void (*btf_trace_nfs4_offload_cancel)(void *, const struct nfs42_offload_status_args *, int); +struct batadv_unicast_packet { + __u8 packet_type; + __u8 version; + __u8 ttl; + __u8 ttvn; + __u8 dest[6]; +}; -typedef void (*btf_trace_nfs4_getxattr)(void *, const struct inode *, const char *, int); +struct tipc_basic_hdr { + __be32 w[4]; +}; -typedef void (*btf_trace_nfs4_setxattr)(void *, const struct inode *, const char *, int); +struct flow_dissector_key_cfm { + u8 mdl_ver; + u8 opcode; +}; -typedef void (*btf_trace_nfs4_removexattr)(void *, const struct inode *, const char *, int); +struct ip_esp_hdr { + __be32 spi; + __be32 seq_no; + __u8 enc_data[0]; +}; -typedef void (*btf_trace_nfs4_listxattr)(void *, const struct inode *, int); +struct flow_dissector_key_ipsec { + __be32 spi; +}; -struct trace_event_raw_nfs4_clientid_event { - struct trace_entry ent; - u32 __data_loc_dstaddr; - unsigned long error; - char __data[0]; +struct flow_dissector_key_l2tpv3 { + __be32 session_id; }; -struct trace_event_raw_nfs4_sequence_done { - struct trace_entry ent; - unsigned int session; - unsigned int slot_nr; - unsigned int seq_nr; - unsigned int highest_slotid; - unsigned int target_highest_slotid; - unsigned long status_flags; - unsigned long error; - char __data[0]; +struct flow_dissector_key_meta { + int ingress_ifindex; + u16 ingress_iftype; + u8 l2_miss; }; -struct trace_event_raw_nfs4_cb_sequence { - struct trace_entry ent; - unsigned int session; - unsigned int slot_nr; - unsigned int seq_nr; - unsigned int highest_slotid; - unsigned int cachethis; - unsigned long error; - char __data[0]; +struct flow_dissector_key_enc_opts { + u8 data[255]; + u8 len; + __be16 dst_opt_type; }; -struct trace_event_raw_nfs4_cb_seqid_err { - struct trace_entry ent; - unsigned int session; - unsigned int slot_nr; - unsigned int seq_nr; - unsigned int highest_slotid; - unsigned int cachethis; - unsigned long error; - char __data[0]; +struct flow_dissector_key_hash { + u32 hash; }; -struct trace_event_raw_nfs4_cb_offload { - struct trace_entry ent; - unsigned long error; - u32 fhandle; - loff_t cb_count; - int cb_how; - int cb_stateid_seq; - u32 cb_stateid_hash; - char __data[0]; - long: 32; +struct hsr_tag { + __be16 path_and_LSDU_size; + __be16 sequence_nr; + __be16 encap_proto; }; -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 flow_dissector_key_num_of_vlans { + u8 num_of_vlans; }; -struct trace_event_raw_nfs4_state_mgr { - struct trace_entry ent; - unsigned long state; - u32 __data_loc_hostname; - char __data[0]; +struct flow_dissector_key_pppoe { + __be16 session_id; + __be16 ppp_proto; + __be16 type; }; -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 flow_keys_digest { + u8 data[16]; }; -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 ethtool_forced_speed_map { + u32 speed; + unsigned long caps[4]; + const u32 *cap_arr; + u32 arr_size; }; -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]; +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, }; -struct trace_event_raw_nfs4_cb_error_class { - struct trace_entry ent; - u32 xid; - u32 cbident; - char __data[0]; +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 trace_event_raw_nfs4_open_event { - struct trace_entry ent; - unsigned long error; - unsigned long flags; - unsigned long fmode; - dev_t dev; - u32 fhandle; - long: 32; - u64 fileid; - u64 dir; - u32 __data_loc_name; - int stateid_seq; - u32 stateid_hash; - int openstateid_seq; - u32 openstateid_hash; - char __data[0]; +struct fec_stat_grp { + u64 stats[9]; + u8 cnt; long: 32; }; -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 fec_reply_data { + struct ethnl_reply_data base; + unsigned long fec_link_modes[4]; + u32 active_fec; + u8 fec_auto; long: 32; + struct fec_stat_grp corr; + struct fec_stat_grp uncorr; + struct fec_stat_grp corr_bits; }; -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 tcp_metrics_block; + +struct tcpm_hash_bucket { + struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *chain; }; -struct trace_event_raw_nfs4_lock_event { - struct trace_entry ent; - unsigned long error; - unsigned long cmd; - unsigned long type; - long: 32; - loff_t start; - loff_t end; - dev_t dev; - u32 fhandle; - u64 fileid; - int stateid_seq; - u32 stateid_hash; - char __data[0]; +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 trace_event_raw_nfs4_set_lock { - struct trace_entry ent; - unsigned long error; - unsigned long cmd; - unsigned long type; +struct tcp_metrics_block { + struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *tcpm_next; + struct net *tcpm_net; + struct inetpeer_addr tcpm_saddr; + struct inetpeer_addr tcpm_daddr; + unsigned long tcpm_stamp; + u32 tcpm_lock; + u32 tcpm_vals[5]; long: 32; - 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 tcp_fastopen_metrics tcpm_fastopen; + struct callback_head callback_head; }; -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]; +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, }; -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]; - long: 32; +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, }; -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]; +enum { + TCP_METRICS_CMD_UNSPEC = 0, + TCP_METRICS_CMD_GET = 1, + TCP_METRICS_CMD_DEL = 2, + __TCP_METRICS_CMD_MAX = 3, }; -struct trace_event_raw_nfs4_test_stateid_event { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - long: 32; - u64 fileid; - int stateid_seq; - u32 stateid_hash; - char __data[0]; +struct snmp_mib { + const char *name; + int entry; }; -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]; - long: 32; +struct rt0_hdr { + struct ipv6_rt_hdr rt_hdr; + __u32 reserved; + struct in6_addr addr[0]; }; -struct trace_event_raw_nfs4_lookupp { - struct trace_entry ent; - dev_t dev; - long: 32; - u64 ino; - unsigned long error; - char __data[0]; - long: 32; +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 trace_event_raw_nfs4_rename { - struct trace_entry ent; - dev_t dev; - unsigned long error; - u64 olddir; - u32 __data_loc_oldname; - long: 32; - u64 newdir; - u32 __data_loc_newname; - char __data[0]; - long: 32; +struct ioam6_hdr { + __u8 opt_type; + __u8 opt_len; + char: 8; + __u8 type; }; -struct trace_event_raw_nfs4_inode_event { - struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - unsigned long error; - char __data[0]; - long: 32; +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 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]; - long: 32; +struct ioam6_schema; + +struct ioam6_namespace { + struct rhash_head head; + struct callback_head rcu; + struct ioam6_schema __attribute__((btf_type_tag("rcu"))) *schema; + __be16 id; + __be32 data; + __be64 data_wide; }; -struct 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 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 trace_event_raw_nfs4_inode_callback_event { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - long: 32; - u64 fileid; - u32 __data_loc_dstaddr; - char __data[0]; - long: 32; +struct devlink_region_ops; + +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 trace_event_raw_nfs4_inode_stateid_callback_event { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - long: 32; - u64 fileid; - u32 __data_loc_dstaddr; - int stateid_seq; - u32 stateid_hash; - char __data[0]; - long: 32; +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; }; -struct trace_event_raw_nfs4_idmap_event { - struct trace_entry ent; - unsigned long error; +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; - 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]; - long: 32; +typedef int devlink_chunk_fill_t(void *, u8 *, u32, u64, struct netlink_ext_ack *); + +struct svc_pt_regs { + struct pt_regs regs; + u32 dacr; }; -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]; - long: 32; +struct omap_dma_reg; + +struct omap_dma_dev_attr; + +struct omap_system_dma_plat_info { + const struct omap_dma_reg *reg_map; + unsigned int channel_stride; + struct omap_dma_dev_attr *dma_attr; + u32 errata; + void (*show_dma_caps)(); + void (*clear_lch_regs)(int); + void (*clear_dma)(int); + void (*dma_write)(u32, int, int); + u32 (*dma_read)(int, int); + const struct dma_slave_map *slave_map; + int slavecnt; }; -struct trace_event_raw_nfs4_commit_event { - struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - unsigned long error; - long: 32; - loff_t offset; - u32 count; - int layoutstateid_seq; - u32 layoutstateid_hash; - char __data[0]; - long: 32; +struct omap_dma_reg { + u16 offset; + u8 stride; + u8 type; }; -struct trace_event_raw_nfs4_layoutget { - struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - u32 iomode; - long: 32; - u64 offset; - u64 count; - unsigned long error; - int stateid_seq; - u32 stateid_hash; - int layoutstateid_seq; - u32 layoutstateid_hash; - char __data[0]; - long: 32; +struct omap_dma_dev_attr { + u32 dev_caps; + u16 lch_count; + u16 chan_count; }; -struct trace_event_raw_pnfs_update_layout { - struct trace_entry ent; - dev_t dev; - long: 32; - u64 fileid; - u32 fhandle; - long: 32; - loff_t pos; - u64 count; - enum pnfs_iomode iomode; - int layoutstateid_seq; - u32 layoutstateid_hash; - long lseg; - enum pnfs_update_layout_reason reason; - char __data[0]; - long: 32; +struct omap4_cpu_pm_info { + struct powerdomain *pwrdm; + void *scu_sar_addr; + void *wkup_sar_addr; + void *l2x0_sar_addr; }; -struct trace_event_raw_pnfs_layout_event { - struct trace_entry ent; - dev_t dev; - long: 32; - u64 fileid; - u32 fhandle; - long: 32; - loff_t pos; - u64 count; - enum pnfs_iomode iomode; - int layoutstateid_seq; - u32 layoutstateid_hash; - long lseg; - char __data[0]; +struct cpu_pm_ops { + int (*finish_suspend)(unsigned long); + void (*resume)(); + void (*scu_prepare)(unsigned int, unsigned int); + void (*hotplug_restart)(); }; -struct trace_event_raw_nfs4_deviceid_event { - struct trace_entry ent; - u32 __data_loc_dstaddr; - unsigned char deviceid[16]; - char __data[0]; +struct am33xx_pm_sram_addr; + +struct am33xx_pm_platform_data { + int (*init)(int (*)(u32)); + int (*deinit)(); + int (*soc_suspend)(unsigned int, int (*)(unsigned long), unsigned long); + int (*cpu_suspend)(int (*)(unsigned long), unsigned long); + void (*begin_suspend)(); + void (*finish_suspend)(); + struct am33xx_pm_sram_addr * (*get_sram_addrs)(); + void (*save_context)(); + void (*restore_context)(); + int (*check_off_mode_enable)(); }; -struct trace_event_raw_nfs4_deviceid_status { - struct trace_entry ent; - dev_t dev; - int status; - u32 __data_loc_dstaddr; - unsigned char deviceid[16]; - char __data[0]; +struct am33xx_pm_sram_addr { + void (*do_wfi)(); + unsigned long *do_wfi_sz; + unsigned long *resume_offset; + unsigned long *emif_sram_table; + unsigned long *ro_sram_data; + unsigned long resume_address; }; -struct trace_event_raw_nfs4_flexfiles_io_event { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - long: 32; - u64 fileid; - loff_t offset; - u32 count; - int stateid_seq; - u32 stateid_hash; - u32 __data_loc_dstaddr; - char __data[0]; +struct amx3_idle_state { + int wfi_flags; }; -struct trace_event_raw_ff_layout_commit_error { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - long: 32; - u64 fileid; - loff_t offset; - u32 count; - u32 __data_loc_dstaddr; - char __data[0]; +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 trace_event_raw_nfs4_llseek { - struct trace_entry ent; - unsigned long error; - u32 fhandle; - u32 fileid; - dev_t dev; - int stateid_seq; - u32 stateid_hash; - loff_t offset_s; - u32 what; - long: 32; - loff_t offset_r; - u32 eof; - char __data[0]; - long: 32; +struct __user_cap_data_struct; + +typedef struct __user_cap_data_struct __attribute__((btf_type_tag("user"))) *cap_user_data_t; + +struct __user_cap_data_struct { + __u32 effective; + __u32 permitted; + __u32 inheritable; }; -struct trace_event_raw_nfs4_sparse_event { - struct trace_entry ent; - unsigned long error; - long: 32; - loff_t offset; - loff_t len; - dev_t dev; - u32 fhandle; - u64 fileid; - int stateid_seq; - u32 stateid_hash; - char __data[0]; +struct dma_sgt_handle { + struct sg_table sgt; + struct page **pages; }; -struct trace_event_raw_nfs4_copy { - struct trace_entry ent; - unsigned long error; - u32 src_fhandle; - u32 src_fileid; - u32 dst_fhandle; - u32 dst_fileid; - dev_t src_dev; - dev_t dst_dev; - int src_stateid_seq; - u32 src_stateid_hash; - int dst_stateid_seq; - u32 dst_stateid_hash; - long: 32; - loff_t src_offset; - loff_t dst_offset; - bool sync; - long: 32; - loff_t len; - int res_stateid_seq; - u32 res_stateid_hash; - loff_t res_count; - bool res_sync; - bool res_cons; - bool intra; - char __data[0]; - long: 32; +struct dma_devres { + size_t size; + void *vaddr; + dma_addr_t dma_handle; + unsigned long attrs; }; -struct trace_event_raw_nfs4_clone { - struct trace_entry ent; - unsigned long error; - u32 src_fhandle; - u32 src_fileid; - u32 dst_fhandle; - u32 dst_fileid; - dev_t src_dev; - dev_t dst_dev; - long: 32; - loff_t src_offset; - loff_t dst_offset; - int src_stateid_seq; - u32 src_stateid_hash; - int dst_stateid_seq; - u32 dst_stateid_hash; - loff_t len; - char __data[0]; +typedef __kernel_long_t __kernel_suseconds_t; + +typedef __kernel_suseconds_t suseconds_t; + +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); + +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 trace_event_raw_nfs4_copy_notify { - struct trace_entry ent; - unsigned long error; - u32 fhandle; - u32 fileid; - dev_t dev; - int stateid_seq; - u32 stateid_hash; - int res_stateid_seq; - u32 res_stateid_hash; - char __data[0]; +enum cgroup2_param { + Opt_nsdelegate = 0, + Opt_favordynmods___2 = 1, + Opt_memory_localevents = 2, + Opt_memory_recursiveprot = 3, + Opt_memory_hugetlb_accounting = 4, + nr__cgroup2_params = 5, }; -struct trace_event_raw_nfs4_offload_cancel { - struct trace_entry ent; - unsigned long error; - u32 fhandle; - int stateid_seq; - u32 stateid_hash; - char __data[0]; +enum cgroup_opt_features { + OPT_FEATURE_COUNT = 0, }; -struct trace_event_raw_nfs4_xattr_event { +struct trace_event_raw_cgroup_root { struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - long: 32; - u64 fileid; + int root; + u16 ss_mask; u32 __data_loc_name; char __data[0]; - long: 32; -}; - -struct trace_event_data_offsets_nfs4_clientid_event { - u32 dstaddr; }; -struct trace_event_data_offsets_nfs4_state_mgr { - u32 hostname; +struct trace_event_raw_cgroup { + struct trace_entry ent; + int root; + int level; + u64 id; + u32 __data_loc_path; + char __data[0]; + long: 32; }; -struct trace_event_data_offsets_nfs4_state_mgr_failed { - u32 hostname; - u32 section; +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]; + long: 32; }; -struct trace_event_data_offsets_nfs4_open_event { - u32 name; +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_nfs4_lookup_event { +struct trace_event_data_offsets_cgroup_root { 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_cgroup { + u32 path; }; -struct trace_event_data_offsets_nfs4_inode_stateid_callback_event { - u32 dstaddr; +struct trace_event_data_offsets_cgroup_migrate { + u32 dst_path; + u32 comm; }; -struct trace_event_data_offsets_nfs4_idmap_event { - u32 name; +struct trace_event_data_offsets_cgroup_event { + u32 path; }; -struct trace_event_data_offsets_nfs4_deviceid_event { - u32 dstaddr; +struct uprobe_cpu_buffer { + struct mutex mutex; + void *buf; }; -struct trace_event_data_offsets_nfs4_deviceid_status { - u32 dstaddr; +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 trace_event_data_offsets_nfs4_flexfiles_io_event { - u32 dstaddr; +struct uprobe_trace_entry_head { + struct trace_entry ent; + unsigned long vaddr[0]; }; -struct trace_event_data_offsets_ff_layout_commit_error { - u32 dstaddr; +struct uprobe_dispatch_data { + struct trace_uprobe *tu; + unsigned long bp_addr; }; -struct trace_event_data_offsets_nfs4_xattr_event { - u32 name; +struct bpf_trace_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + bool is_uprobe; + long: 32; }; -struct trace_event_data_offsets_nfs4_sequence_done {}; - -struct trace_event_data_offsets_nfs4_cb_sequence {}; - -struct trace_event_data_offsets_nfs4_cb_seqid_err {}; +typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); -struct trace_event_data_offsets_nfs4_cb_offload {}; +enum { + BPF_LOCAL_STORAGE_GET_F_CREATE = 1, + BPF_SK_STORAGE_GET_F_CREATE = 1, +}; -struct trace_event_data_offsets_nfs4_setup_sequence {}; +typedef u64 (*btf_bpf_cgrp_storage_get)(struct bpf_map *, struct cgroup *, void *, u64, gfp_t); -struct trace_event_data_offsets_nfs4_xdr_bad_operation {}; +typedef u64 (*btf_bpf_cgrp_storage_delete)(struct bpf_map *, struct cgroup *); -struct trace_event_data_offsets_nfs4_xdr_event {}; +struct memblock { + bool bottom_up; + phys_addr_t current_limit; + struct memblock_type memory; + struct memblock_type reserved; +}; -struct trace_event_data_offsets_nfs4_cb_error_class {}; +struct swap_cgroup_ctrl { + struct page **map; + unsigned long length; + spinlock_t lock; +}; -struct trace_event_data_offsets_nfs4_cached_open {}; +struct swap_cgroup { + unsigned short id; +}; -struct trace_event_data_offsets_nfs4_close {}; +enum legacy_fs_param { + LEGACY_FS_UNSET_PARAMS = 0, + LEGACY_FS_MONOLITHIC_PARAMS = 1, + LEGACY_FS_INDIVIDUAL_PARAMS = 2, +}; -struct trace_event_data_offsets_nfs4_lock_event {}; +struct legacy_fs_context { + char *legacy_data; + size_t data_size; + enum legacy_fs_param param_type; +}; -struct trace_event_data_offsets_nfs4_set_lock {}; +enum Opt_errors { + Opt_errors_continue = 0, + Opt_errors_panic = 1, +}; -struct trace_event_data_offsets_nfs4_state_lock_reclaim {}; +enum squashfs_param { + Opt_errors___2 = 0, + Opt_threads = 1, +}; -struct trace_event_data_offsets_nfs4_set_delegation_event {}; +struct squashfs_mount_opts { + enum Opt_errors errors; + const struct squashfs_decompressor_thread_ops *thread_ops; + int thread_num; +}; -struct trace_event_data_offsets_nfs4_delegreturn_exit {}; +struct squashfs_xattr_id_table { + __le64 xattr_table_start; + __le32 xattr_ids; + __le32 unused; +}; -struct trace_event_data_offsets_nfs4_test_stateid_event {}; +typedef void (*btf_trace_nfs_set_inode_stale)(void *, const struct inode *); -struct trace_event_data_offsets_nfs4_lookupp {}; +typedef void (*btf_trace_nfs_refresh_inode_enter)(void *, const struct inode *); -struct trace_event_data_offsets_nfs4_inode_event {}; +typedef void (*btf_trace_nfs_refresh_inode_exit)(void *, const struct inode *, int); -struct trace_event_data_offsets_nfs4_inode_stateid_event {}; +typedef void (*btf_trace_nfs_revalidate_inode_enter)(void *, const struct inode *); -struct trace_event_data_offsets_nfs4_getattr_event {}; +typedef void (*btf_trace_nfs_revalidate_inode_exit)(void *, const struct inode *, int); -struct trace_event_data_offsets_nfs4_read_event {}; +typedef void (*btf_trace_nfs_invalidate_mapping_enter)(void *, const struct inode *); -struct trace_event_data_offsets_nfs4_write_event {}; +typedef void (*btf_trace_nfs_invalidate_mapping_exit)(void *, const struct inode *, int); -struct trace_event_data_offsets_nfs4_commit_event {}; +typedef void (*btf_trace_nfs_getattr_enter)(void *, const struct inode *); -struct trace_event_data_offsets_nfs4_layoutget {}; +typedef void (*btf_trace_nfs_getattr_exit)(void *, const struct inode *, int); -struct trace_event_data_offsets_pnfs_update_layout {}; +typedef void (*btf_trace_nfs_setattr_enter)(void *, const struct inode *); -struct trace_event_data_offsets_pnfs_layout_event {}; +typedef void (*btf_trace_nfs_setattr_exit)(void *, const struct inode *, int); -struct trace_event_data_offsets_nfs4_llseek {}; +typedef void (*btf_trace_nfs_writeback_inode_enter)(void *, const struct inode *); -struct trace_event_data_offsets_nfs4_sparse_event {}; +typedef void (*btf_trace_nfs_writeback_inode_exit)(void *, const struct inode *, int); -struct trace_event_data_offsets_nfs4_copy {}; +typedef void (*btf_trace_nfs_fsync_enter)(void *, const struct inode *); -struct trace_event_data_offsets_nfs4_clone {}; +typedef void (*btf_trace_nfs_fsync_exit)(void *, const struct inode *, int); -struct trace_event_data_offsets_nfs4_copy_notify {}; +typedef void (*btf_trace_nfs_access_enter)(void *, const struct inode *); -struct trace_event_data_offsets_nfs4_offload_cancel {}; +typedef void (*btf_trace_nfs_set_cache_invalid)(void *, const struct inode *, int); -struct compat_iovec { - compat_uptr_t iov_base; - compat_size_t iov_len; -}; +typedef void (*btf_trace_nfs_readdir_force_readdirplus)(void *, const struct inode *); -typedef s32 compat_ssize_t; +typedef void (*btf_trace_nfs_readdir_cache_fill_done)(void *, const struct inode *, int); -struct iov_iter_state { - size_t iov_offset; - size_t count; - unsigned long nr_segs; -}; +typedef void (*btf_trace_nfs_readdir_uncached_done)(void *, const struct inode *, int); -union gic_base { - void *common_base; - void __attribute__((btf_type_tag("percpu"))) **percpu_base; -}; +typedef void (*btf_trace_nfs_access_exit)(void *, const struct inode *, unsigned int, unsigned int, int); -struct gic_chip_data { - union gic_base dist_base; - union gic_base cpu_base; - void *raw_dist_base; - void *raw_cpu_base; - u32 percpu_offset; - u32 saved_spi_enable[32]; - u32 saved_spi_active[32]; - u32 saved_spi_conf[64]; - u32 saved_spi_target[255]; - u32 __attribute__((btf_type_tag("percpu"))) *saved_ppi_enable; - u32 __attribute__((btf_type_tag("percpu"))) *saved_ppi_active; - u32 __attribute__((btf_type_tag("percpu"))) *saved_ppi_conf; - struct irq_domain *domain; - unsigned int gic_irqs; -}; +typedef void (*btf_trace_nfs_size_truncate)(void *, const struct inode *, loff_t); -enum gic_type { - GIC_V2 = 0, - GIC_V3 = 1, -}; +typedef void (*btf_trace_nfs_size_wcc)(void *, const struct inode *, loff_t); -struct gic_kvm_info { - enum gic_type type; - struct resource vcpu; - unsigned int maint_irq; - bool no_maint_irq_mask; - struct resource vctrl; - bool has_v4; - bool has_v4_1; - bool no_hw_deactivation; -}; +typedef void (*btf_trace_nfs_size_update)(void *, const struct inode *, loff_t); -struct phy_axg_mipi_pcie_analog_priv { - struct phy *phy; - struct regmap *regmap; - bool dsi_configured; - bool dsi_enabled; - bool powered; - struct phy_configure_opts_mipi_dphy config; -}; +typedef void (*btf_trace_nfs_size_grow)(void *, const struct inode *, loff_t); -struct pinctrl_maps { - struct list_head node; - const struct pinctrl_map *maps; - unsigned int num_maps; -}; +typedef void (*btf_trace_nfs_readdir_invalidate_cache_range)(void *, const struct inode *, loff_t, loff_t); -struct pctldev; +typedef void (*btf_trace_nfs_readdir_cache_fill)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); -enum pmic_gpio_func_index { - PMIC_GPIO_FUNC_INDEX_NORMAL = 0, - PMIC_GPIO_FUNC_INDEX_PAIRED = 1, - PMIC_GPIO_FUNC_INDEX_FUNC1 = 2, - PMIC_GPIO_FUNC_INDEX_FUNC2 = 3, - PMIC_GPIO_FUNC_INDEX_FUNC3 = 4, - PMIC_GPIO_FUNC_INDEX_FUNC4 = 5, - PMIC_GPIO_FUNC_INDEX_DTEST1 = 6, - PMIC_GPIO_FUNC_INDEX_DTEST2 = 7, - PMIC_GPIO_FUNC_INDEX_DTEST3 = 8, - PMIC_GPIO_FUNC_INDEX_DTEST4 = 9, -}; +typedef void (*btf_trace_nfs_readdir_uncached)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); -struct pmic_gpio_state { - struct device *dev; - struct regmap *map; - struct pinctrl_dev *ctrl; - struct gpio_chip chip; - u8 usid; - u8 pid_base; -}; +typedef void (*btf_trace_nfs_lookup_enter)(void *, const struct inode *, const struct dentry *, unsigned int); -struct pmic_gpio_pad { - u16 base; - bool is_enabled; - bool out_value; - bool have_buffer; - bool output_enabled; - bool input_enabled; - bool analog_pass; - bool lv_mv_type; - unsigned int num_sources; - unsigned int power_source; - unsigned int buffer_type; - unsigned int pullup; - unsigned int strength; - unsigned int function; - unsigned int atest; - unsigned int dtest_buffer; -}; +typedef void (*btf_trace_nfs_lookup_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); -struct pca953x_reg_config { - int direction; - int output; - int input; - int invert; -}; +typedef void (*btf_trace_nfs_lookup_revalidate_enter)(void *, const struct inode *, const struct dentry *, unsigned int); -struct pca953x_chip { - unsigned int gpio_start; - struct mutex i2c_lock; - struct regmap *regmap; - struct mutex irq_lock; - unsigned long irq_mask[2]; - unsigned long irq_stat[2]; - unsigned long irq_trig_raise[2]; - unsigned long irq_trig_fall[2]; - atomic_t wakeup_path; - struct i2c_client *client; - struct gpio_chip gpio_chip; - const char * const *names; - unsigned long driver_data; - struct regulator *regulator; - const struct pca953x_reg_config *regs; - u8 (*recalc_addr)(struct pca953x_chip *, int, int); - bool (*check_reg)(struct pca953x_chip *, unsigned int, u32); -}; +typedef void (*btf_trace_nfs_lookup_revalidate_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); -struct pca953x_platform_data { - unsigned int gpio_base; - u32 invert; - int irq_base; - void *context; - int (*setup)(struct i2c_client *, unsigned int, unsigned int, void *); - void (*teardown)(struct i2c_client *, unsigned int, unsigned int, void *); - const char * const *names; -}; +typedef void (*btf_trace_nfs_readdir_lookup)(void *, const struct inode *, const struct dentry *, unsigned int); -struct fb_cmap_user { - __u32 start; - __u32 len; - __u16 __attribute__((btf_type_tag("user"))) *red; - __u16 __attribute__((btf_type_tag("user"))) *green; - __u16 __attribute__((btf_type_tag("user"))) *blue; - __u16 __attribute__((btf_type_tag("user"))) *transp; -}; +typedef void (*btf_trace_nfs_readdir_lookup_revalidate_failed)(void *, const struct inode *, const struct dentry *, unsigned int); -struct clk_gpio { - struct clk_hw hw; - struct gpio_desc *gpiod; -}; +typedef void (*btf_trace_nfs_readdir_lookup_revalidate)(void *, const struct inode *, const struct dentry *, unsigned int, int); -struct clk_audio_frac { - struct clk_hw hw; - struct regmap *regmap; - u32 fracr; - u8 nd; -}; +typedef void (*btf_trace_nfs_atomic_open_enter)(void *, const struct inode *, const struct nfs_open_context *, unsigned int); -struct clk_audio_pad { - struct clk_hw hw; - struct regmap *regmap; - u8 qdaudio; - u8 div; -}; +typedef void (*btf_trace_nfs_atomic_open_exit)(void *, const struct inode *, const struct nfs_open_context *, unsigned int, int); -struct clk_audio_pmc { - struct clk_hw hw; - struct regmap *regmap; - u8 qdpmc; -}; +typedef void (*btf_trace_nfs_create_enter)(void *, const struct inode *, const struct dentry *, unsigned int); -struct hisi_reset_controller { - spinlock_t lock; - void *membase; - struct reset_controller_dev rcdev; -}; +typedef void (*btf_trace_nfs_create_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); -struct cpu_clk { - struct clk_hw hw; - int cpu; - const char *clk_name; - const char *parent_name; - void *reg_base; - void *pmu_dfs; -}; +typedef void (*btf_trace_nfs_mknod_enter)(void *, const struct inode *, const struct dentry *); -struct r9a06g032_priv { - struct clk_onecell_data data; - spinlock_t lock; - void *reg; -}; +typedef void (*btf_trace_nfs_mknod_exit)(void *, const struct inode *, const struct dentry *, int); -enum gate_type { - K_GATE = 0, - K_FFC = 1, - K_DIV = 2, - K_BITSEL = 3, - K_DUALGATE = 4, -}; +typedef void (*btf_trace_nfs_mkdir_enter)(void *, const struct inode *, const struct dentry *); -struct regbit { - u16 bit: 5; - u16 reg: 11; -}; +typedef void (*btf_trace_nfs_mkdir_exit)(void *, const struct inode *, const struct dentry *, int); -struct r9a06g032_gate { - struct regbit gate; - struct regbit reset; - struct regbit ready; - struct regbit midle; -}; +typedef void (*btf_trace_nfs_rmdir_enter)(void *, const struct inode *, const struct dentry *); -struct r9a06g032_clkdesc { - const char *name; - uint32_t managed: 1; - enum gate_type type: 3; - uint32_t index: 8; - uint32_t source: 8; - union { - struct r9a06g032_gate gate; - struct { - unsigned int div_min: 10; - unsigned int div_max: 10; - unsigned int reg: 10; - u16 div_table[4]; - }; - struct { - u16 div; - u16 mul; - }; - struct { - uint16_t group: 1; - struct regbit sel; - struct regbit g1; - struct regbit r1; - struct regbit g2; - struct regbit r2; - } dual; - }; -}; +typedef void (*btf_trace_nfs_rmdir_exit)(void *, const struct inode *, const struct dentry *, int); -struct r9a06g032_clk_gate { - struct clk_hw hw; - struct r9a06g032_priv *clocks; - u16 index; - struct r9a06g032_gate gate; -}; +typedef void (*btf_trace_nfs_remove_enter)(void *, const struct inode *, const struct dentry *); -struct r9a06g032_clk_div { - struct clk_hw hw; - struct r9a06g032_priv *clocks; - u16 index; - u16 reg; - u16 min; - u16 max; - u8 table_size; - u16 table[8]; -}; +typedef void (*btf_trace_nfs_remove_exit)(void *, const struct inode *, const struct dentry *, int); -struct r9a06g032_clk_bitsel { - struct clk_hw hw; - struct r9a06g032_priv *clocks; - u16 index; - struct regbit selector; -}; +typedef void (*btf_trace_nfs_unlink_enter)(void *, const struct inode *, const struct dentry *); -struct r9a06g032_clk_dualgate { - struct clk_hw hw; - struct r9a06g032_priv *clocks; - u16 index; - struct regbit selector; - struct r9a06g032_gate gate[2]; -}; +typedef void (*btf_trace_nfs_unlink_exit)(void *, const struct inode *, const struct dentry *, int); -struct clkgen_quadfs_data; +typedef void (*btf_trace_nfs_symlink_enter)(void *, const struct inode *, const struct dentry *); -struct clkgen_quadfs_data_clks { - struct clkgen_quadfs_data *data; - const struct clkgen_clk_out *outputs; -}; +typedef void (*btf_trace_nfs_symlink_exit)(void *, const struct inode *, const struct dentry *, int); -struct clkgen_field { - unsigned int offset; - unsigned int mask; - unsigned int shift; -}; +typedef void (*btf_trace_nfs_link_enter)(void *, const struct inode *, const struct inode *, const struct dentry *); -struct stm_fs; +typedef void (*btf_trace_nfs_link_exit)(void *, const struct inode *, const struct inode *, const struct dentry *, int); -struct clkgen_quadfs_data { - bool reset_present; - bool bwfilter_present; - bool lockstatus_present; - bool powerup_polarity; - bool standby_polarity; - bool nsdiv_present; - bool nrst_present; - struct clkgen_field ndiv; - struct clkgen_field ref_bw; - struct clkgen_field nreset; - struct clkgen_field npda; - struct clkgen_field lock_status; - struct clkgen_field nrst[4]; - struct clkgen_field nsb[4]; - struct clkgen_field en[4]; - struct clkgen_field mdiv[4]; - struct clkgen_field pe[4]; - struct clkgen_field sdiv[4]; - struct clkgen_field nsdiv[4]; - const struct clk_ops *pll_ops; - int (*get_params)(unsigned long, unsigned long, struct stm_fs *); - int (*get_rate)(unsigned long, const struct stm_fs *, unsigned long *); -}; +typedef void (*btf_trace_nfs_rename_enter)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *); -struct stm_fs { - unsigned long ndiv; - unsigned long mdiv; - unsigned long pe; - unsigned long sdiv; - unsigned long nsdiv; -}; +typedef void (*btf_trace_nfs_rename_exit)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); -struct st_clk_quadfs_fsynth { - struct clk_hw hw; - void *regs_base; - spinlock_t *lock; - struct clkgen_quadfs_data *data; - u32 chan; - u32 md; - u32 pe; - u32 sdiv; - u32 nsdiv; -}; +typedef void (*btf_trace_nfs_sillyrename_rename)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); -struct st_clk_quadfs_pll { - struct clk_hw hw; - void *regs_base; - spinlock_t *lock; - struct clkgen_quadfs_data *data; - u32 ndiv; -}; +typedef void (*btf_trace_nfs_sillyrename_unlink)(void *, const struct nfs_unlinkdata *, int); -struct at_xdmac_layout { - u8 grs; - u8 gws; - u8 grws; - u8 grwr; - u8 gswr; - u8 gsws; - u8 gswf; - u8 chan_cc_reg_base; - bool sdif; - bool axi_config; -}; +typedef void (*btf_trace_nfs_aop_readpage)(void *, const struct inode *, struct folio *); -enum atc_status { - AT_XDMAC_CHAN_IS_CYCLIC = 0, - AT_XDMAC_CHAN_IS_PAUSED = 1, - AT_XDMAC_CHAN_IS_PAUSED_INTERNAL = 2, -}; +typedef void (*btf_trace_nfs_aop_readpage_done)(void *, const struct inode *, struct folio *, int); -struct at_xdmac_chan { - struct dma_chan chan; - void *ch_regs; - u32 mask; - u32 cfg; - u8 perid; - u8 perif; - u8 memif; - u32 save_cc; - u32 save_cim; - u32 save_cnda; - u32 save_cndc; - u32 irq_status; - unsigned long status; - struct tasklet_struct tasklet; - struct dma_slave_config sconfig; - spinlock_t lock; - struct list_head xfers_list; - struct list_head free_descs_list; -}; +typedef void (*btf_trace_nfs_writeback_folio)(void *, const struct inode *, struct folio *); -struct at_xdmac { - struct dma_device dma; - void *regs; - struct device *dev; - int irq; - struct clk *clk; - u32 save_gim; - u32 save_gs; - struct dma_pool *at_xdmac_desc_pool; - const struct at_xdmac_layout *layout; - struct at_xdmac_chan chan[0]; -}; +typedef void (*btf_trace_nfs_writeback_folio_done)(void *, const struct inode *, struct folio *, int); -struct at_xdmac_lld { - u32 mbr_nda; - u32 mbr_ubc; - u32 mbr_sa; - u32 mbr_da; - u32 mbr_cfg; - u32 mbr_bc; - u32 mbr_ds; - u32 mbr_sus; - u32 mbr_dus; -}; +typedef void (*btf_trace_nfs_invalidate_folio)(void *, const struct inode *, struct folio *); -struct at_xdmac_desc { - struct at_xdmac_lld lld; - enum dma_transfer_direction direction; - struct dma_async_tx_descriptor tx_dma_desc; - struct list_head desc_node; - bool active_xfer; - unsigned int xfer_size; - struct list_head descs_list; - struct list_head xfer_node; - long: 32; -}; +typedef void (*btf_trace_nfs_launder_folio_done)(void *, const struct inode *, struct folio *, int); -struct scp_ctrl_reg { - int pwr_sta_offs; - int pwr_sta2nd_offs; -}; +typedef void (*btf_trace_nfs_aop_readahead)(void *, const struct inode *, loff_t, unsigned int); -struct scp_domain_data; +typedef void (*btf_trace_nfs_aop_readahead_done)(void *, const struct inode *, unsigned int, int); -struct scp_subdomain; +typedef void (*btf_trace_nfs_initiate_read)(void *, const struct nfs_pgio_header *); -struct scp_soc_data { - const struct scp_domain_data *domains; - int num_domains; - const struct scp_subdomain *subdomains; - int num_subdomains; - const struct scp_ctrl_reg regs; - bool bus_prot_reg_update; -}; +typedef void (*btf_trace_nfs_readpage_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); -enum clk_id___2 { - CLK_NONE = 0, - CLK_MM = 1, - CLK_MFG = 2, - CLK_VENC = 3, - CLK_VENC_LT = 4, - CLK_ETHIF = 5, - CLK_VDEC = 6, - CLK_HIFSEL = 7, - CLK_JPGDEC = 8, - CLK_AUDIO = 9, - CLK_MAX = 10, -}; +typedef void (*btf_trace_nfs_readpage_short)(void *, const struct rpc_task *, const struct nfs_pgio_header *); -struct scp_domain_data { - const char *name; - u32 sta_mask; - int ctl_offs; - u32 sram_pdn_bits; - u32 sram_pdn_ack_bits; - u32 bus_prot_mask; - enum clk_id___2 clk_id[3]; - u8 caps; -}; +typedef void (*btf_trace_nfs_pgio_error)(void *, const struct nfs_pgio_header *, int, loff_t); -struct scp_subdomain { - int origin; - int subdomain; -}; +typedef void (*btf_trace_nfs_initiate_write)(void *, const struct nfs_pgio_header *); -struct scp; +typedef void (*btf_trace_nfs_writeback_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); -struct scp_domain { - struct generic_pm_domain genpd; - struct scp *scp; - struct clk *clk[3]; - const struct scp_domain_data *data; - struct regulator *supply; -}; +typedef void (*btf_trace_nfs_write_error)(void *, const struct inode *, const struct nfs_page *, int); -struct scp { - struct scp_domain *domains; - struct genpd_onecell_data pd_data; - struct device *dev; - void *base; - struct regmap *infracfg; - struct scp_ctrl_reg ctrl_reg; - bool bus_prot_reg_update; -}; +typedef void (*btf_trace_nfs_comp_error)(void *, const struct inode *, const struct nfs_page *, int); -struct ab8500_shared_mode; +typedef void (*btf_trace_nfs_commit_error)(void *, const struct inode *, const struct nfs_page *, int); -struct ab8500_regulator_info { - struct device *dev; - struct regulator_desc desc; - struct ab8500_shared_mode *shared_mode; - int load_lp_uA; - u8 update_bank; - u8 update_reg; - u8 update_mask; - u8 update_val; - u8 update_val_idle; - u8 update_val_normal; - u8 mode_bank; - u8 mode_reg; - u8 mode_mask; - u8 mode_val_idle; - u8 mode_val_normal; - u8 voltage_bank; - u8 voltage_reg; - u8 voltage_mask; -}; +typedef void (*btf_trace_nfs_initiate_commit)(void *, const struct nfs_commit_data *); -struct ab8500_shared_mode { - struct ab8500_regulator_info *shared_regulator; - bool lp_mode_req; -}; +typedef void (*btf_trace_nfs_commit_done)(void *, const struct rpc_task *, const struct nfs_commit_data *); -struct ab8500_reg_init { - u8 bank; - u8 addr; - u8 mask; -}; +typedef void (*btf_trace_nfs_direct_commit_complete)(void *, const struct nfs_direct_req *); -enum ab8505_regulator_reg { - AB8505_REGUREQUESTCTRL1 = 0, - AB8505_REGUREQUESTCTRL2 = 1, - AB8505_REGUREQUESTCTRL3 = 2, - AB8505_REGUREQUESTCTRL4 = 3, - AB8505_REGUSYSCLKREQ1HPVALID1 = 4, - AB8505_REGUSYSCLKREQ1HPVALID2 = 5, - AB8505_REGUHWHPREQ1VALID1 = 6, - AB8505_REGUHWHPREQ1VALID2 = 7, - AB8505_REGUHWHPREQ2VALID1 = 8, - AB8505_REGUHWHPREQ2VALID2 = 9, - AB8505_REGUSWHPREQVALID1 = 10, - AB8505_REGUSWHPREQVALID2 = 11, - AB8505_REGUSYSCLKREQVALID1 = 12, - AB8505_REGUSYSCLKREQVALID2 = 13, - AB8505_REGUVAUX4REQVALID = 14, - AB8505_REGUMISC1 = 15, - AB8505_VAUDIOSUPPLY = 16, - AB8505_REGUCTRL1VAMIC = 17, - AB8505_VSMPSAREGU = 18, - AB8505_VSMPSBREGU = 19, - AB8505_VSAFEREGU = 20, - AB8505_VPLLVANAREGU = 21, - AB8505_EXTSUPPLYREGU = 22, - AB8505_VAUX12REGU = 23, - AB8505_VRF1VAUX3REGU = 24, - AB8505_VSMPSASEL1 = 25, - AB8505_VSMPSASEL2 = 26, - AB8505_VSMPSASEL3 = 27, - AB8505_VSMPSBSEL1 = 28, - AB8505_VSMPSBSEL2 = 29, - AB8505_VSMPSBSEL3 = 30, - AB8505_VSAFESEL1 = 31, - AB8505_VSAFESEL2 = 32, - AB8505_VSAFESEL3 = 33, - AB8505_VAUX1SEL = 34, - AB8505_VAUX2SEL = 35, - AB8505_VRF1VAUX3SEL = 36, - AB8505_VAUX4REQCTRL = 37, - AB8505_VAUX4REGU = 38, - AB8505_VAUX4SEL = 39, - AB8505_REGUCTRLDISCH = 40, - AB8505_REGUCTRLDISCH2 = 41, - AB8505_REGUCTRLDISCH3 = 42, - AB8505_CTRLVAUX5 = 43, - AB8505_CTRLVAUX6 = 44, - AB8505_NUM_REGULATOR_REGISTERS = 45, -}; +typedef void (*btf_trace_nfs_direct_resched_write)(void *, const struct nfs_direct_req *); -enum ab8500_regulator_reg { - AB8500_REGUREQUESTCTRL2 = 0, - AB8500_REGUREQUESTCTRL3 = 1, - AB8500_REGUREQUESTCTRL4 = 2, - AB8500_REGUSYSCLKREQ1HPVALID1 = 3, - AB8500_REGUSYSCLKREQ1HPVALID2 = 4, - AB8500_REGUHWHPREQ1VALID1 = 5, - AB8500_REGUHWHPREQ1VALID2 = 6, - AB8500_REGUHWHPREQ2VALID1 = 7, - AB8500_REGUHWHPREQ2VALID2 = 8, - AB8500_REGUSWHPREQVALID1 = 9, - AB8500_REGUSWHPREQVALID2 = 10, - AB8500_REGUSYSCLKREQVALID1 = 11, - AB8500_REGUSYSCLKREQVALID2 = 12, - AB8500_REGUMISC1 = 13, - AB8500_VAUDIOSUPPLY = 14, - AB8500_REGUCTRL1VAMIC = 15, - AB8500_VPLLVANAREGU = 16, - AB8500_VREFDDR = 17, - AB8500_EXTSUPPLYREGU = 18, - AB8500_VAUX12REGU = 19, - AB8500_VRF1VAUX3REGU = 20, - AB8500_VAUX1SEL = 21, - AB8500_VAUX2SEL = 22, - AB8500_VRF1VAUX3SEL = 23, - AB8500_REGUCTRL2SPARE = 24, - AB8500_REGUCTRLDISCH = 25, - AB8500_REGUCTRLDISCH2 = 26, - AB8500_NUM_REGULATOR_REGISTERS = 27, -}; +typedef void (*btf_trace_nfs_direct_write_complete)(void *, const struct nfs_direct_req *); -enum ab8500_regulator_id { - AB8500_LDO_AUX1 = 0, - AB8500_LDO_AUX2 = 1, - AB8500_LDO_AUX3 = 2, - AB8500_LDO_INTCORE = 3, - AB8500_LDO_TVOUT = 4, - AB8500_LDO_AUDIO = 5, - AB8500_LDO_ANAMIC1 = 6, - AB8500_LDO_ANAMIC2 = 7, - AB8500_LDO_DMIC = 8, - AB8500_LDO_ANA = 9, - AB8500_NUM_REGULATORS = 10, -}; +typedef void (*btf_trace_nfs_direct_write_completion)(void *, const struct nfs_direct_req *); -enum { - TPS65090_REGULATOR_DCDC1 = 0, - TPS65090_REGULATOR_DCDC2 = 1, - TPS65090_REGULATOR_DCDC3 = 2, - TPS65090_REGULATOR_FET1 = 3, - TPS65090_REGULATOR_FET2 = 4, - TPS65090_REGULATOR_FET3 = 5, - TPS65090_REGULATOR_FET4 = 6, - TPS65090_REGULATOR_FET5 = 7, - TPS65090_REGULATOR_FET6 = 8, - TPS65090_REGULATOR_FET7 = 9, - TPS65090_REGULATOR_LDO1 = 10, - TPS65090_REGULATOR_LDO2 = 11, - TPS65090_REGULATOR_MAX = 12, -}; +typedef void (*btf_trace_nfs_direct_write_schedule_iovec)(void *, const struct nfs_direct_req *); -struct tps65090_regulator_plat_data; +typedef void (*btf_trace_nfs_direct_write_reschedule_io)(void *, const struct nfs_direct_req *); -struct tps65090_platform_data { - int irq_base; - char **supplied_to; - size_t num_supplicants; - int enable_low_current_chrg; - struct tps65090_regulator_plat_data *reg_pdata[12]; -}; +typedef void (*btf_trace_nfs_fh_to_dentry)(void *, const struct super_block *, const struct nfs_fh *, u64, int); -struct tps65090_regulator_plat_data { - struct regulator_init_data *reg_init_data; - bool enable_ext_control; - struct gpio_desc *gpiod; - bool overcurrent_wait_valid; - int overcurrent_wait; -}; +typedef void (*btf_trace_nfs_mount_assign)(void *, const char *, const char *); -struct tps65090_regulator { - struct device *dev; - struct regulator_desc *desc; - struct regulator_dev *rdev; - bool overcurrent_wait_valid; - int overcurrent_wait; -}; +typedef void (*btf_trace_nfs_mount_option)(void *, const struct fs_parameter *); -struct tps65090 { - struct device *dev; - struct regmap *rmap; - struct regmap_irq_chip_data *irq_data; -}; +typedef void (*btf_trace_nfs_mount_path)(void *, const char *); -struct con_driver { - const struct consw *con; - const char *desc; - struct device *dev; - int node; - int first; - int last; - int flag; -}; +typedef void (*btf_trace_nfs_xdr_status)(void *, const struct xdr_stream *, int); -struct interval { - uint32_t first; - uint32_t last; -}; +typedef void (*btf_trace_nfs_xdr_bad_filehandle)(void *, const struct xdr_stream *, int); -enum { - blank_off = 0, - blank_normal_wait = 1, - blank_vesa_wait = 2, +struct trace_event_raw_nfs_inode_event { + struct trace_entry ent; + dev_t dev; + u32 fhandle; + u64 fileid; + u64 version; + char __data[0]; }; -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, +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]; }; -enum { - EPecma = 0, - EPdec = 1, - EPeq = 2, - EPgt = 3, - EPlt = 4, +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 vc_draw_region { - unsigned long from; - unsigned long to; - int x; +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 rgb { - u8 r; - u8 g; - u8 b; +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 ports_driver_data { - struct dentry *debugfs_dir; - struct list_head portdevs; - struct list_head consoles; +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 console___2 { - struct list_head list; - struct hvc_struct *hvc; - struct winsize ws; - u32 vtermno; +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]; + long: 32; }; -struct port_stats { - unsigned long bytes_sent; - unsigned long bytes_received; - unsigned long bytes_discarded; +struct trace_event_raw_nfs_lookup_event_done { + struct trace_entry ent; + unsigned long error; + unsigned long flags; + dev_t dev; + long: 32; + u64 dir; + u32 __data_loc_name; + char __data[0]; + long: 32; }; -struct ports_device; - -struct port_buffer; - -struct port { - 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 trace_event_raw_nfs_atomic_open_enter { + struct trace_entry ent; + unsigned long flags; + unsigned long fmode; + dev_t dev; + long: 32; + u64 dir; + u32 __data_loc_name; + char __data[0]; + long: 32; }; -struct virtio_console_control { - __virtio32 id; - __virtio16 event; - __virtio16 value; +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]; + long: 32; }; -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 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]; + long: 32; }; -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 trace_event_raw_nfs_create_exit { + struct trace_entry ent; + unsigned long error; + unsigned long flags; + dev_t dev; + long: 32; + u64 dir; + u32 __data_loc_name; + char __data[0]; + long: 32; }; -struct sg_list { - unsigned int n; - unsigned int size; - size_t len; - struct scatterlist *sg; +struct trace_event_raw_nfs_directory_event { + struct trace_entry ent; + dev_t dev; + long: 32; + u64 dir; + u32 __data_loc_name; + char __data[0]; + long: 32; }; -struct drm_format_modifier { - __u64 formats; - __u32 offset; - __u32 pad; - __u64 modifier; +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]; + long: 32; }; -struct drm_format_modifier_blob { - __u32 version; - __u32 flags; - __u32 count_formats; - __u32 formats_offset; - __u32 count_modifiers; - __u32 modifiers_offset; +struct trace_event_raw_nfs_link_enter { + struct trace_entry ent; + dev_t dev; + long: 32; + u64 fileid; + u64 dir; + u32 __data_loc_name; + char __data[0]; + long: 32; }; -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 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]; + long: 32; }; -struct drm_mode_get_plane_res { - __u64 plane_id_ptr; - __u32 count_planes; +struct trace_event_raw_nfs_rename_event { + struct trace_entry ent; + dev_t dev; long: 32; + u64 old_dir; + u64 new_dir; + u32 __data_loc_old_name; + u32 __data_loc_new_name; + char __data[0]; }; -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 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; + long: 32; + u64 new_dir; + u32 __data_loc_new_name; + char __data[0]; + long: 32; }; -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 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]; + long: 32; }; -struct drm_mode_cursor { - __u32 flags; - __u32 crtc_id; - __s32 x; - __s32 y; - __u32 width; - __u32 height; - __u32 handle; +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]; + long: 32; }; -struct drm_mode_crtc_page_flip_target { - __u32 crtc_id; - __u32 fb_id; - __u32 flags; - __u32 sequence; - __u64 user_data; +struct trace_event_raw_nfs_folio_event_done { + struct trace_entry ent; + dev_t dev; + u32 fhandle; + int ret; + long: 32; + u64 fileid; + u64 version; + loff_t offset; + u32 count; + char __data[0]; + long: 32; }; -struct drm_dp_mst_port; - -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 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]; + long: 32; }; -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; - const struct drm_edid *cached_edid; - bool fec_capable; +struct trace_event_raw_nfs_aop_readahead_done { + struct trace_entry ent; + dev_t dev; + u32 fhandle; + int ret; + long: 32; + u64 fileid; + u64 version; + loff_t offset; + unsigned int nr_pages; + char __data[0]; + long: 32; }; -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 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]; + long: 32; }; -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 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 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 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 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 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]; + long: 32; }; -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 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 drm_dp_nak_reply { - u8 guid[16]; - u8 reason; - u8 nak_data; +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 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 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 drm_dp_link_address_ack_reply { - u8 guid[16]; - u8 nports; - struct drm_dp_link_addr_reply_port ports[16]; +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]; + long: 32; }; -struct drm_dp_port_number_rep { - u8 port_number; +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 drm_dp_enum_path_resources_ack_reply { - u8 port_number; - bool fec_capable; - u16 full_payload_bw_number; - u16 avail_payload_bw_number; +struct trace_event_raw_nfs_direct_req_class { + struct trace_entry ent; + dev_t dev; + long: 32; + u64 fileid; + u32 fhandle; + long: 32; + loff_t offset; + ssize_t count; + ssize_t bytes_left; + ssize_t error; + int flags; + char __data[0]; }; -struct drm_dp_allocate_payload_ack_reply { - u8 port_number; - u8 vcpi; - u16 allocated_pbn; +struct trace_event_raw_nfs_fh_to_dentry { + struct trace_entry ent; + int error; + dev_t dev; + u32 fhandle; + long: 32; + u64 fileid; + char __data[0]; }; -struct drm_dp_query_payload_ack_reply { - u8 port_number; - u16 allocated_pbn; +struct trace_event_raw_nfs_mount_assign { + struct trace_entry ent; + u32 __data_loc_option; + u32 __data_loc_value; + char __data[0]; }; -struct drm_dp_remote_dpcd_read_ack_reply { - u8 port_number; - u8 num_bytes; - u8 bytes[255]; +struct trace_event_raw_nfs_mount_option { + struct trace_entry ent; + u32 __data_loc_option; + char __data[0]; }; -struct drm_dp_remote_dpcd_write_ack_reply { - u8 port_number; +struct trace_event_raw_nfs_mount_path { + struct trace_entry ent; + u32 __data_loc_path; + char __data[0]; }; -struct drm_dp_remote_dpcd_write_nak_reply { - u8 port_number; - u8 reason; - u8 bytes_written_before_failure; +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 drm_dp_remote_i2c_read_ack_reply { - u8 port_number; - u8 num_bytes; - u8 bytes[255]; +struct trace_event_data_offsets_nfs_lookup_event { + u32 name; }; -struct drm_dp_remote_i2c_read_nak_reply { - u8 port_number; - u8 nak_reason; - u8 i2c_nak_transaction; +struct trace_event_data_offsets_nfs_lookup_event_done { + u32 name; }; -struct drm_dp_remote_i2c_write_ack_reply { - u8 port_number; +struct trace_event_data_offsets_nfs_atomic_open_enter { + u32 name; }; -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; +struct trace_event_data_offsets_nfs_atomic_open_exit { + u32 name; }; -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 trace_event_data_offsets_nfs_create_enter { + u32 name; }; -struct drm_dp_sideband_msg_reply_body { - u8 reply_type; - u8 req_type; - union ack_replies u; +struct trace_event_data_offsets_nfs_create_exit { + u32 name; }; -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 trace_event_data_offsets_nfs_directory_event { + u32 name; }; -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 trace_event_data_offsets_nfs_directory_event_done { + u32 name; }; -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 trace_event_data_offsets_nfs_link_enter { + u32 name; }; -struct drm_dp_port_number_req { - u8 port_number; +struct trace_event_data_offsets_nfs_link_exit { + u32 name; }; -struct drm_dp_resource_status_notify { - u8 port_number; - u8 guid[16]; - u16 available_pbn; +struct trace_event_data_offsets_nfs_rename_event { + u32 old_name; + u32 new_name; }; -struct drm_dp_query_payload { - u8 port_number; - u8 vcpi; +struct trace_event_data_offsets_nfs_rename_event_done { + u32 old_name; + u32 new_name; }; -struct drm_dp_allocate_payload { - u8 port_number; - u8 number_sdp_streams; - u8 vcpi; - u16 pbn; - u8 sdp_stream_sink[16]; +struct trace_event_data_offsets_nfs_sillyrename_unlink { + u32 name; }; -struct drm_dp_remote_dpcd_read { - u8 port_number; - u32 dpcd_address; - u8 num_bytes; +struct trace_event_data_offsets_nfs_mount_assign { + u32 option; + u32 value; }; -struct drm_dp_remote_dpcd_write { - u8 port_number; - u32 dpcd_address; - u8 num_bytes; - u8 *bytes; +struct trace_event_data_offsets_nfs_mount_option { + u32 option; }; -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 trace_event_data_offsets_nfs_mount_path { + u32 path; }; -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 trace_event_data_offsets_nfs_xdr_event { + u32 program; + u32 procedure; }; -struct drm_dp_remote_i2c_write { - u8 port_number; - u8 write_i2c_device_id; - u8 num_bytes; - u8 *bytes; -}; +struct trace_event_data_offsets_nfs_inode_event {}; -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; -}; +struct trace_event_data_offsets_nfs_inode_event_done {}; -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 trace_event_data_offsets_nfs_access_exit {}; -struct drm_dp_sideband_msg_req_body { - u8 req_type; - union ack_req u; -}; +struct trace_event_data_offsets_nfs_update_size_class {}; -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; -}; +struct trace_event_data_offsets_nfs_inode_range_event {}; -struct regcache_rbtree_node { - void *block; - long *cache_present; - unsigned int base_reg; - unsigned int blklen; - struct rb_node node; -}; +struct trace_event_data_offsets_nfs_readdir_event {}; -struct regcache_rbtree_ctx { - struct rb_root root; - struct regcache_rbtree_node *cached_rbnode; -}; +struct trace_event_data_offsets_nfs_folio_event {}; -struct tps65218 { - struct device *dev; - unsigned int id; - u8 rev; - struct mutex tps_lock; - int irq; - u32 irq_mask; - struct regmap_irq_chip_data *irq_data; - struct regulator_desc desc[9]; - struct regmap *regmap; - u8 *strobes; -}; +struct trace_event_data_offsets_nfs_folio_event_done {}; -struct ahci_sg { - __le32 addr; - __le32 addr_hi; - __le32 reserved; - __le32 flags_size; -}; +struct trace_event_data_offsets_nfs_aop_readahead {}; -enum { - POWER_CUT_EC_WRITE = 1, - POWER_CUT_VID_WRITE = 2, -}; +struct trace_event_data_offsets_nfs_aop_readahead_done {}; -struct swmii_regs { - u16 bmsr; - u16 lpa; - u16 lpagb; - u16 estat; -}; +struct trace_event_data_offsets_nfs_initiate_read {}; -enum { - SWMII_SPEED_10 = 0, - SWMII_SPEED_100 = 1, - SWMII_SPEED_1000 = 2, - SWMII_DUPLEX_HALF = 0, - SWMII_DUPLEX_FULL = 1, -}; +struct trace_event_data_offsets_nfs_readpage_done {}; -enum { - IFLA_CAN_UNSPEC = 0, - IFLA_CAN_BITTIMING = 1, - IFLA_CAN_BITTIMING_CONST = 2, - IFLA_CAN_CLOCK = 3, - IFLA_CAN_STATE = 4, - IFLA_CAN_CTRLMODE = 5, - IFLA_CAN_RESTART_MS = 6, - IFLA_CAN_RESTART = 7, - IFLA_CAN_BERR_COUNTER = 8, - IFLA_CAN_DATA_BITTIMING = 9, - IFLA_CAN_DATA_BITTIMING_CONST = 10, - IFLA_CAN_TERMINATION = 11, - IFLA_CAN_TERMINATION_CONST = 12, - IFLA_CAN_BITRATE_CONST = 13, - IFLA_CAN_DATA_BITRATE_CONST = 14, - IFLA_CAN_BITRATE_MAX = 15, - IFLA_CAN_TDC = 16, - IFLA_CAN_CTRLMODE_EXT = 17, - __IFLA_CAN_MAX = 18, - IFLA_CAN_MAX = 17, -}; +struct trace_event_data_offsets_nfs_readpage_short {}; -enum { - IFLA_CAN_TDC_UNSPEC = 0, - IFLA_CAN_TDC_TDCV_MIN = 1, - IFLA_CAN_TDC_TDCV_MAX = 2, - IFLA_CAN_TDC_TDCO_MIN = 3, - IFLA_CAN_TDC_TDCO_MAX = 4, - IFLA_CAN_TDC_TDCF_MIN = 5, - IFLA_CAN_TDC_TDCF_MAX = 6, - IFLA_CAN_TDC_TDCV = 7, - IFLA_CAN_TDC_TDCO = 8, - IFLA_CAN_TDC_TDCF = 9, - __IFLA_CAN_TDC = 10, - IFLA_CAN_TDC_MAX = 9, +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 {}; + +enum nfs4_ff_op_type { + NFS4_FF_OP_LAYOUTSTATS = 0, + NFS4_FF_OP_LAYOUTRETURN = 1, }; -enum { - IFLA_CAN_CTRLMODE_UNSPEC = 0, - IFLA_CAN_CTRLMODE_SUPPORTED = 1, - __IFLA_CAN_CTRLMODE = 2, - IFLA_CAN_CTRLMODE_MAX = 1, +enum pnfs_layouttype { + LAYOUT_NFSV4_1_FILES = 1, + LAYOUT_OSD2_OBJECTS = 2, + LAYOUT_BLOCK_VOLUME = 3, + LAYOUT_FLEX_FILES = 4, + LAYOUT_SCSI = 5, + LAYOUT_TYPE_MAX = 6, }; -struct can_ctrlmode { - __u32 mask; - __u32 flags; +struct nfs4_ff_layout_ds_err { + struct list_head list; + u64 offset; + u64 length; + int status; + enum nfs_opnum4 opnum; + nfs4_stateid stateid; + struct nfs4_deviceid deviceid; + long: 32; }; -struct dwxgmac3_error_desc { - bool valid; - const char *desc; - const char *detailed_desc; +struct nfs4_ff_layout_mirror; + +struct nfs4_ff_layout_segment { + struct pnfs_layout_segment generic_hdr; + u64 stripe_unit; + u32 flags; + u32 mirror_array_cnt; + struct nfs4_ff_layout_mirror *mirror_array[0]; }; -struct dwxgmac3_error { - const struct dwxgmac3_error_desc *desc; +struct nfs4_ff_io_stat { + __u64 ops_requested; + __u64 bytes_requested; + __u64 ops_completed; + __u64 bytes_completed; + __u64 bytes_not_delivered; + ktime_t total_busy_time; + ktime_t aggregate_completion_time; }; -struct xhci_plat_priv { - const char *firmware_name; +struct nfs4_ff_busy_timer { + ktime_t start_time; + atomic_t n_ops; long: 32; - unsigned long long quirks; - void (*plat_start)(struct usb_hcd *); - int (*init_quirk)(struct usb_hcd *); - int (*suspend_quirk)(struct usb_hcd *); - int (*resume_quirk)(struct usb_hcd *); }; -struct usb_role_switch { - struct device dev; - struct mutex lock; - enum usb_role role; - struct device *usb2_port; - struct device *usb3_port; - struct device *udc; - usb_role_switch_set_t set; - usb_role_switch_get_t get; - bool allow_userspace_control; +struct nfs4_ff_layoutstat { + struct nfs4_ff_io_stat io_stat; + struct nfs4_ff_busy_timer busy_timer; }; -typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); +struct nfs4_ff_layout_ds; -struct vivaldi_data { - u32 function_row_physmap[24]; - unsigned int num_function_row_keys; +struct nfs4_ff_layout_mirror { + struct pnfs_layout_hdr *layout; + struct list_head mirrors; + u32 ds_count; + u32 efficiency; + struct nfs4_deviceid devid; + struct nfs4_ff_layout_ds *mirror_ds; + u32 fh_versions_cnt; + struct nfs_fh *fh_versions; + nfs4_stateid stateid; + const struct cred __attribute__((btf_type_tag("rcu"))) *ro_cred; + const struct cred __attribute__((btf_type_tag("rcu"))) *rw_cred; + refcount_t ref; + spinlock_t lock; + unsigned long flags; + struct nfs4_ff_layoutstat read_stat; + struct nfs4_ff_layoutstat write_stat; + ktime_t start_time; + u32 report_interval; + long: 32; }; -enum input_clock_type { - INPUT_CLK_REAL = 0, - INPUT_CLK_MONO = 1, - INPUT_CLK_BOOT = 2, - INPUT_CLK_MAX = 3, -}; +struct nfs4_ff_ds_version; -struct evdev; +struct nfs4_ff_layout_ds { + struct nfs4_deviceid_node id_node; + u32 ds_versions_cnt; + struct nfs4_ff_ds_version *ds_versions; + struct nfs4_pnfs_ds *ds; +}; -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 nfs4_ff_ds_version { + u32 version; + u32 minor_version; + u32 rsize; + u32 wsize; + bool tightly_coupled; }; -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 nfs4_flexfile_layout { + struct pnfs_layout_hdr generic_hdr; + struct pnfs_ds_commit_info commit_info; + struct list_head mirrors; + struct list_head error_list; long: 32; - struct device dev; - struct cdev cdev; - bool exist; + ktime_t last_report_time; }; -struct input_mask { - __u32 type; - __u32 codes_size; - __u64 codes_ptr; +struct nfs4_flexfile_layoutreturn_args { + struct list_head errors; + struct nfs42_layoutstat_devinfo devinfo[4]; + unsigned int num_errors; + unsigned int num_dev; + struct page *pages[1]; + long: 32; }; -struct stm32_rtc_registers { - u16 tr; - u16 dr; - u16 cr; - u16 isr; - u16 prer; - u16 alrmar; - u16 wpr; - u16 sr; - u16 scr; - u16 verr; +struct ubifs_trun_node { + struct ubifs_ch ch; + __le32 inum; + __u8 padding[12]; + __le64 old_size; + __le64 new_size; }; -struct stm32_rtc_events { - u32 alra; +struct autofs_packet_missing { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[256]; }; -struct stm32_rtc; - -struct stm32_rtc_data { - const struct stm32_rtc_registers regs; - const struct stm32_rtc_events events; - void (*clear_events)(struct stm32_rtc *, unsigned int); - bool has_pclk; - bool need_dbp; +struct autofs_packet_expire_multi { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[256]; }; -struct stm32_rtc { - struct rtc_device *rtc_dev; - void *base; - struct regmap *dbp; - unsigned int dbp_reg; - unsigned int dbp_mask; - struct clk *pclk; - struct clk *rtc_ck; - const struct stm32_rtc_data *data; - int irq_alarm; +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 stm32f7_i2c_spec { - u32 rate; - u32 fall_max; - u32 rise_max; - u32 hddat_min; - u32 vddat_max; - u32 sudat_min; - u32 l_min; - u32 h_min; +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]; + long: 32; }; -struct stm32f7_i2c_setup { - u32 speed_freq; - u32 clock_src; - u32 rise_time; - u32 fall_time; - u32 fmp_clr_offset; -}; +typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; -enum { - STM32F7_SLAVE_HOSTNOTIFY = 0, - STM32F7_SLAVE_7_10_BITS_ADDR = 1, - STM32F7_SLAVE_7_BITS_ADDR = 2, - STM32F7_I2C_MAX_SLAVE = 3, -}; +typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; -struct stm32f7_i2c_msg { - u16 addr; - u32 count; - u8 *buf; - int result; - bool stop; - bool smbus; - int size; - char read_write; - long: 0; - u8 smbus_buf[35]; +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 stm32f7_i2c_timings { - struct list_head node; - u8 presc; - u8 scldel; - u8 sdadel; - u8 sclh; - u8 scll; +struct sem_undo_list { + refcount_t refcnt; + spinlock_t lock; + struct list_head list_proc; }; -struct stm32f7_i2c_regs { - u32 cr1; - u32 cr2; - u32 oar1; - u32 oar2; - u32 tmgr; +struct sembuf { + unsigned short sem_num; + short sem_op; + short sem_flg; }; -struct stm32_i2c_dma; - -struct stm32f7_i2c_alert; +struct sem_undo { + struct list_head list_proc; + struct callback_head rcu; + struct sem_undo_list *ulp; + struct list_head list_id; + int semid; + short semadj[0]; +}; -struct stm32f7_i2c_dev { - struct i2c_adapter adap; - struct device *dev; - void *base; - struct completion complete; - struct clk *clk; - unsigned int bus_rate; - struct i2c_msg *msg; - unsigned int msg_num; - unsigned int msg_id; - struct stm32f7_i2c_msg f7_msg; - struct stm32f7_i2c_setup setup; - struct stm32f7_i2c_timings timing; - struct i2c_client *slave[3]; - struct i2c_client *slave_running; - struct stm32f7_i2c_regs backup_regs; - u32 slave_dir; - bool master_mode; - struct stm32_i2c_dma *dma; - bool use_dma; - struct regmap *regmap; - u32 fmp_sreg; - u32 fmp_creg; - u32 fmp_mask; - bool wakeup_src; - bool smbus_mode; - struct i2c_client *host_notify_client; - bool analog_filter; - u32 dnf_dt; - u32 dnf; - struct stm32f7_i2c_alert *alert; +struct sem { + int semval; + struct pid *sempid; + spinlock_t lock; + struct list_head pending_alter; + struct list_head pending_const; + long: 32; + time64_t sem_otime; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; }; -struct stm32_i2c_dma { - struct dma_chan *chan_tx; - struct dma_chan *chan_rx; - struct dma_chan *chan_using; - dma_addr_t dma_buf; - unsigned int dma_len; - enum dma_transfer_direction dma_transfer_dir; - enum dma_data_direction dma_data_dir; - struct completion dma_complete; +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: 32; + long: 32; + long: 32; + long: 32; + struct sem sems[0]; }; -struct stm32f7_i2c_alert { - struct i2c_smbus_alert_setup setup; - struct i2c_client *ara; +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 syscon_reboot_context { - struct regmap *map; - u32 offset; - u32 value; - u32 mask; - struct notifier_block restart_handler; +struct semid64_ds { + struct ipc64_perm sem_perm; + unsigned long sem_otime; + unsigned long sem_otime_high; + unsigned long sem_ctime; + unsigned long sem_ctime_high; + unsigned long sem_nsems; + unsigned long __unused3; + unsigned long __unused4; }; -struct thermal_soc_data { - u32 version; - u32 sensor_ctrl; - u32 power_down_mask; - u32 measure_temp_mask; - u32 measure_freq_ctrl; - u32 measure_freq_mask; - u32 measure_freq_shift; - u32 temp_data; - u32 temp_value_mask; - u32 temp_value_shift; - u32 temp_valid_mask; - u32 panic_alarm_ctrl; - u32 panic_alarm_mask; - u32 panic_alarm_shift; - u32 high_alarm_ctrl; - u32 high_alarm_mask; - u32 high_alarm_shift; - u32 low_alarm_ctrl; - u32 low_alarm_mask; - u32 low_alarm_shift; +struct seminfo { + int semmap; + int semmni; + int semmns; + int semmnu; + int semmsl; + int semopm; + int semume; + int semusz; + int semvmx; + int semaem; }; -enum imx_thermal_trip { - IMX_TRIP_PASSIVE = 0, - IMX_TRIP_CRITICAL = 1, +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 imx_thermal_data { - struct device *dev; - struct cpufreq_policy *policy; - struct thermal_zone_device *tz; - struct thermal_cooling_device *cdev; - struct regmap *tempmon; - u32 c1; - u32 c2; - int temp_max; - int alarm_temp; - int last_temp; - bool irq_enabled; - int irq; - struct clk *thermal_clk; - const struct thermal_soc_data *socdata; - const char *temp_grade; +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; }; -struct edac_device_ctl_info; +typedef struct _gpt_header gpt_header; -struct ctl_info_attribute { - struct attribute attr; - ssize_t (*show)(struct edac_device_ctl_info *, char *); - ssize_t (*store)(struct edac_device_ctl_info *, const char *, size_t); +struct _gpt_entry_attributes { + u64 required_to_function: 1; + u64 reserved: 47; + u64 type_guid_specific: 16; }; -struct edac_device_counter { - u32 ue_count; - u32 ce_count; +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]; }; -struct edac_dev_sysfs_attribute; +typedef struct _gpt_entry gpt_entry; -struct edac_device_instance; +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; +}; -struct edac_device_block; +typedef struct _gpt_mbr_record gpt_mbr_record; -struct edac_dev_sysfs_block_attribute; +struct _legacy_mbr { + u8 boot_code[440]; + __le32 unique_mbr_signature; + __le16 unknown; + gpt_mbr_record partition_record[4]; + __le16 signature; +} __attribute__((packed)); -struct edac_device_ctl_info { - struct list_head link; - struct module *owner; - int dev_idx; - int log_ue; - int log_ce; - int panic_on_ue; - unsigned int poll_msec; - unsigned long delay; - struct edac_dev_sysfs_attribute *sysfs_attributes; - struct bus_type *edac_subsys; - int op_state; - struct delayed_work work; - void (*edac_check)(struct edac_device_ctl_info *); - struct device *dev; - const char *mod_name; - const char *ctl_name; - const char *dev_name; - void *pvt_info; - unsigned long start_time; - struct completion removal_complete; - char name[32]; - u32 nr_instances; - struct edac_device_instance *instances; - struct edac_device_block *blocks; - struct edac_dev_sysfs_block_attribute *attribs; - struct edac_device_counter counters; - struct kobject kobj; -}; +typedef struct _legacy_mbr legacy_mbr; -struct edac_dev_sysfs_attribute { - struct attribute attr; - ssize_t (*show)(struct edac_device_ctl_info *, char *); - ssize_t (*store)(struct edac_device_ctl_info *, const char *, size_t); +struct io_issue_def { + unsigned int needs_file: 1; + unsigned int plug: 1; + unsigned int hash_reg_file: 1; + unsigned int unbound_nonreg_file: 1; + unsigned int pollin: 1; + unsigned int pollout: 1; + unsigned int poll_exclusive: 1; + unsigned int buffer_select: 1; + unsigned int not_supported: 1; + unsigned int audit_skip: 1; + unsigned int ioprio: 1; + unsigned int iopoll: 1; + unsigned int iopoll_queue: 1; + unsigned int manual_alloc: 1; + unsigned int vectored: 1; + int (*issue)(struct io_kiocb *, unsigned int); + int (*prep)(struct io_kiocb *, const struct io_uring_sqe *); }; -struct edac_device_instance { - struct edac_device_ctl_info *ctl; - char name[35]; - struct edac_device_counter counters; - u32 nr_blocks; - struct edac_device_block *blocks; - struct kobject kobj; +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 *); }; -struct edac_device_block { - struct edac_device_instance *instance; - char name[32]; - struct edac_device_counter counters; - int nr_attribs; - struct edac_dev_sysfs_block_attribute *block_attributes; - struct kobject kobj; +struct omap_intc_regs { + u32 sysconfig; + u32 protection; + u32 idle; + u32 threshold; + u32 ilr[128]; + u32 mir[4]; }; -struct edac_dev_sysfs_block_attribute { - struct attribute attr; - ssize_t (*show)(struct kobject *, struct attribute *, char *); - ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); - struct edac_device_block *block; - unsigned int value; +struct vt8500_irq_data { + void *base; + struct irq_domain *domain; }; -struct instance_attribute___2 { - struct attribute attr; - ssize_t (*show)(struct edac_device_instance *, char *); - ssize_t (*store)(struct edac_device_instance *, const char *, size_t); +struct gpcv2_irqchip_data { + struct raw_spinlock rlock; + void *gpc_base; + u32 wakeup_sources[4]; + u32 saved_irq_mask[4]; + u32 cpu2wakeup; }; -struct cpuidle_qcom_spm_data { - struct cpuidle_driver cpuidle_driver; - struct spm_driver_data *spm; - long: 32; +struct cs_data { + u32 enable_mask; + u16 slow_cfg; + u16 fast_cfg; }; -struct omap_mmc_of_data { - u32 reg_offset; - u8 controller_flags; +struct ebi2_xmem_prop { + const char *prop; + u32 max; + bool slowreg; + u16 shift; }; -struct omap_hsmmc_platform_data { - struct device *dev; - unsigned int max_freq; - u8 controller_flags; - u16 reg_offset; - u32 caps; - u32 pm_caps; - unsigned int nonremovable: 1; - unsigned int no_regulator_off_init: 1; - unsigned int features; - char *version; - const char *name; - u32 ocr_mask; -}; +struct ns2_phy_data; -struct omap_hsmmc_next { - unsigned int dma_len; - s32 cookie; +struct ns2_phy_driver { + void *icfgdrd_regs; + void *idmdrd_rst_ctrl; + void *crmu_usb2_ctrl; + void *usb2h_strap_reg; + struct ns2_phy_data *data; + struct extcon_dev *edev; + struct gpio_desc *vbus_gpiod; + struct gpio_desc *id_gpiod; + int id_irq; + int vbus_irq; + unsigned long debounce_jiffies; + struct delayed_work wq_extcon; }; -struct omap_hsmmc_host { - struct device *dev; - struct mmc_host *mmc; - struct mmc_request *mrq; - struct mmc_command *cmd; - struct mmc_data *data; - struct clk *fclk; - struct clk *dbclk; - struct regulator *pbias; - bool pbias_enabled; - void *base; - bool vqmmc_enabled; - resource_size_t mapbase; - spinlock_t irq_lock; - unsigned int dma_len; - unsigned int dma_sg_idx; - unsigned char bus_mode; - unsigned char power_mode; - int suspended; - u32 con; - u32 hctl; - u32 sysctl; - u32 capa; - int irq; - int wake_irq; - int use_dma; - int dma_ch; - struct dma_chan *tx_chan; - struct dma_chan *rx_chan; - int response_busy; - int context_loss; - int reqs_blocked; - int req_in_progress; - unsigned long clk_rate; - unsigned int flags; - struct omap_hsmmc_next next_data; - struct omap_hsmmc_platform_data *pdata; +struct ns2_phy_data { + struct ns2_phy_driver *driver; + struct phy *phy; + int new_state; }; -typedef int (*gpio_blink_set_t)(struct gpio_desc *, int, unsigned long *, unsigned long *); - -struct gpio_led_data { - struct led_classdev cdev; - struct gpio_desc *gpiod; - u8 can_sleep; - u8 blinking; - gpio_blink_set_t platform_gpio_blink_set; +enum boosting_vals { + BOOST_1000_UA = 1000, + BOOST_2000_UA = 2000, }; -struct gpio_leds_priv { - int num_leds; - struct gpio_led_data leds[0]; +enum dc_level_vals { + DC_NOMINAL = 0, + DC_PLUS_5_TO_7_MV = 1, + DC_PLUS_10_TO_14_MV = 2, + DC_MINUS_5_TO_7_MV = 3, + DC_MAX = 4, }; -struct gpio_led { - const char *name; - const char *default_trigger; - unsigned int gpio; - unsigned int active_low: 1; - unsigned int retain_state_suspended: 1; - unsigned int panic_indicator: 1; - unsigned int default_state: 2; - unsigned int retain_state_shutdown: 1; - struct gpio_desc *gpiod; +enum current_trim { + CUR_NOMINAL = 0, + CUR_PLUS_1_56_PCT = 1, + CUR_PLUS_3_12_PCT = 2, + CUR_PLUS_4_68_PCT = 3, + CUR_PLUS_6_24_PCT = 4, + CUR_PLUS_7_8_PCT = 5, + CUR_PLUS_9_36_PCT = 6, + CUR_PLUS_10_92_PCT = 7, + CUR_PLUS_12_48_PCT = 8, + CUR_PLUS_14_04_PCT = 9, + CUR_PLUS_15_6_PCT = 10, + CUR_PLUS_17_16_PCT = 11, + CUR_PLUS_19_01_PCT = 12, + CUR_PLUS_20_58_PCT = 13, + CUR_PLUS_22_16_PCT = 14, + CUR_PLUS_23_73_PCT = 15, + CUR_MAX = 16, }; -struct gpio_led_platform_data { - int num_leds; - const struct gpio_led *leds; - gpio_blink_set_t gpio_blink_set; +enum impedance_trim { + IMP_NOMINAL = 0, + IMP_MINUS_2_OHMS = 1, + IMP_MINUS_4_OMHS = 2, + IMP_MINUS_6_OHMS = 3, + IMP_MAX = 4, }; -struct scmi_requested_dev { - const struct scmi_device_id *id_table; - struct list_head node; +enum squelch_level { + SQLCH_NOMINAL = 0, + SQLCH_PLUS_7_MV = 1, + SQLCH_MINUS_5_MV = 2, + SQLCH_PLUS_14_MV = 3, + SQLCH_MAX = 4, }; -struct bcm2835_timer { - void *control; - void *compare; - int match_mask; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct clock_event_device evt; +enum rx_offset { + NO_RX_OFFSET = 0, + RX_OFFSET_PLUS_5_MV = 1, + RX_OFFSET_PLUS_10_MV = 2, + RX_OFFSET_MINUS_5_MV = 3, + RX_OFFSET_MAX = 4, }; -struct of_bus___2 { - void (*count_cells)(const void *, int, int *, int *); - u64 (*map)(__be32 *, const __be32 *, int, int, int); - int (*translate)(__be32 *, u64, int); +struct stm32_usbphyc_phy; + +struct stm32_usbphyc { + struct device *dev; + void *base; + struct clk *clk; + struct reset_control *rst; + struct stm32_usbphyc_phy **phys; + int nphys; + struct regulator *vdda1v1; + struct regulator *vdda1v8; + atomic_t n_pll_cons; + struct clk_hw clk48_hw; + int switch_setup; }; -enum tc_mq_command { - TC_MQ_CREATE = 0, - TC_MQ_DESTROY = 1, - TC_MQ_STATS = 2, - TC_MQ_GRAFT = 3, +struct stm32_usbphyc_phy { + struct phy *phy; + struct stm32_usbphyc *usbphyc; + struct regulator *vbus; + u32 index; + bool active; + u32 tune; }; -struct tc_qopt_offload_stats { - struct gnet_stats_basic_sync *bstats; - struct gnet_stats_queue *qstats; +struct pll_params { + u8 ndiv; + u16 frac; }; -struct tc_mq_opt_offload_graft_params { - unsigned long queue; - u32 child_handle; +struct samsung_pin_ctrl; + +struct samsung_pinctrl_of_match_data { + const struct samsung_pin_ctrl *ctrl; + unsigned int num_ctrl; }; -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 samsung_pin_bank_data; + +struct samsung_pin_ctrl { + const struct samsung_pin_bank_data *pin_banks; + unsigned int nr_banks; + unsigned int nr_ext_resources; + const struct samsung_retention_data *retention_data; + int (*eint_gpio_init)(struct samsung_pinctrl_drv_data *); + int (*eint_wkup_init)(struct samsung_pinctrl_drv_data *); + void (*suspend)(struct samsung_pinctrl_drv_data *); + void (*resume)(struct samsung_pinctrl_drv_data *); }; -struct mq_sched { - struct Qdisc **qdiscs; +struct samsung_pin_bank_data { + const struct samsung_pin_bank_type *type; + u32 pctl_offset; + u8 pctl_res_idx; + u8 nr_pins; + u8 eint_func; + enum eint_type eint_type; + u32 eint_mask; + u32 eint_offset; + const char *name; }; -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, +struct pxa_gpio_bank; + +struct pxa_gpio_chip { + struct device *dev; + struct gpio_chip chip; + struct pxa_gpio_bank *banks; + struct irq_domain *irqdomain; + int irq0; + int irq1; + int (*set_wake)(unsigned int, unsigned int); }; -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 pxa_gpio_bank { + void *regbase; + unsigned long irq_mask; + unsigned long irq_edge_rise; + unsigned long irq_edge_fall; + unsigned long saved_gplr; + unsigned long saved_gpdr; + unsigned long saved_grer; + unsigned long saved_gfer; }; -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 pxa_gpio_type { + PXA25X_GPIO = 0, + PXA26X_GPIO = 1, + PXA27X_GPIO = 2, + PXA3XX_GPIO = 3, + PXA93X_GPIO = 4, + MMP_GPIO = 16, + MMP2_GPIO = 17, + PXA1928_GPIO = 18, }; -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, +struct pxa_gpio_id { + enum pxa_gpio_type type; + int gpio_nums; }; -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, +struct pxa_gpio_platform_data { + int irq_base; + int (*gpio_set_wake)(unsigned int, unsigned int); }; -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 pci_filp_private { + enum pci_mmap_state mmap_state; + int write_combine; }; -struct ethnl_tunnel_info_dump_ctx { - struct ethnl_req_info req_info; - int pos_hash; - int pos_idx; +struct clk_gate_soc_desc { + const char *name; + int bit_idx; }; -struct udp_dev_scratch { - u32 _tsize_state; +struct lan966x_gck { + struct clk_hw hw; + void *reg; }; -struct udp_iter_state { - struct seq_net_private p; - int bucket; +struct dove_clk { + const char *name; + struct clk_hw hw; + void *base; + spinlock_t *lock; + u8 div_bit_start; + u8 div_bit_end; + u8 div_bit_load; + u8 div_bit_size; + u32 *divider_table; }; -struct bpf_iter__udp { - union { - struct bpf_iter_meta *meta; - }; - union { - struct udp_sock *udp_sk; - }; - uid_t uid; - long: 32; - int bucket; - long: 32; +enum { + DIV_CTRL0 = 0, + DIV_CTRL1 = 4, + DIV_CTRL1_N_RESET_MASK = 1024, }; -struct bpf_udp_iter_state { - struct udp_iter_state state; - unsigned int cur_sk; - unsigned int end_sk; - unsigned int max_sk; - int offset; - struct sock **batch; - bool st_bucket_done; +enum { + AHB1 = 0, + AHB2 = 1, + APB1 = 2, + APB2 = 3, + PARENT_MAX = 4, }; -struct ac6_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct inet6_dev *idev; +struct vexpress_osc { + struct regmap *reg; + struct clk_hw hw; + unsigned long rate_min; + unsigned long rate_max; }; -struct fib6_rule { - struct fib_rule common; - struct rt6key src; - struct rt6key dst; - dscp_t dscp; - long: 32; +enum stm32_dma_width { + STM32_DMA_BYTE = 0, + STM32_DMA_HALF_WORD = 1, + STM32_DMA_WORD = 2, }; -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; +enum stm32_dma_burst_size { + STM32_DMA_BURST_SINGLE = 0, + STM32_DMA_BURST_INCR4 = 1, + STM32_DMA_BURST_INCR8 = 2, + STM32_DMA_BURST_INCR16 = 3, }; -struct decryptor_desc { - u8 iv[16]; - struct skcipher_request *req; - struct scatterlist frags[4]; - int fragno; - int fraglen; +struct stm32_dma_chan_reg { + u32 dma_lisr; + u32 dma_hisr; + u32 dma_lifcr; + u32 dma_hifcr; + u32 dma_scr; + u32 dma_sndtr; + u32 dma_spar; + u32 dma_sm0ar; + u32 dma_sm1ar; + u32 dma_sfcr; }; -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 stm32_dma_mdma_config { + u32 stream_id; + u32 ifcr; + u32 tcf; }; -struct lzma_header; +struct stm32_dma_desc; -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 stm32_dma_chan { + struct virt_dma_chan vchan; + bool config_init; + bool busy; + u32 id; + u32 irq; + struct stm32_dma_desc *desc; + u32 next_sg; + struct dma_slave_config dma_sconfig; + struct stm32_dma_chan_reg chan_reg; + u32 threshold; + u32 mem_burst; + u32 mem_width; + enum dma_status status; + bool trig_mdma; + struct stm32_dma_mdma_config mdma_config; }; -struct lzma_header { - uint8_t pos; - uint32_t dict_size; - uint64_t dst_size; -} __attribute__((packed)); +struct stm32_dma_sg_req { + u32 len; + struct stm32_dma_chan_reg chan_reg; +}; -struct cstate { - int state; - uint32_t rep0; - uint32_t rep1; - uint32_t rep2; - uint32_t rep3; +struct stm32_dma_desc { + struct virt_dma_desc vdesc; + bool cyclic; + u32 num_sgs; + struct stm32_dma_sg_req sg_req[0]; }; -typedef bool (*stack_trace_consume_fn)(void *, unsigned long); +struct stm32_dma_device { + struct dma_device ddev; + void *base; + struct clk *clk; + bool mem2mem; + struct stm32_dma_chan chan[8]; +}; -typedef enum probes_insn kprobe_decode_insn_t(probes_opcode_t, struct arch_probes_insn *, bool, const union decode_action *, const struct decode_checker **); +struct stm32_dma_cfg { + u32 channel_id; + u32 request_line; + u32 stream_config; + u32 features; +}; -struct exynos_wkup_irq; +struct mtk_mmsys_routes; -struct exynos_pm_data { - const struct exynos_wkup_irq *wkup_irq; - unsigned int wake_disable_mask; - void (*pm_prepare)(); - void (*pm_resume_prepare)(); - void (*pm_resume)(); - int (*pm_suspend)(); - int (*cpu_suspend)(unsigned long); +struct mtk_mmsys_driver_data { + const char *clk_driver; + const struct mtk_mmsys_routes *routes; + const unsigned int num_routes; + const u16 sw0_rst_offset; + const u32 num_resets; + const bool is_vppsys; }; -struct exynos_wkup_irq { - unsigned int hwirq; +struct mtk_mmsys_routes { + u32 from_comp; + u32 to_comp; + u32 addr; u32 mask; + u32 val; }; -struct exynos_pm_state { - int cpu_state; - unsigned int pmu_spare3; - void *sysram_base; - phys_addr_t sysram_phys; - bool secure_firmware; +enum mtk_ddp_comp_id { + DDP_COMPONENT_AAL0 = 0, + DDP_COMPONENT_AAL1 = 1, + DDP_COMPONENT_BLS = 2, + DDP_COMPONENT_CCORR = 3, + DDP_COMPONENT_COLOR0 = 4, + DDP_COMPONENT_COLOR1 = 5, + DDP_COMPONENT_DITHER0 = 6, + DDP_COMPONENT_DITHER1 = 7, + DDP_COMPONENT_DP_INTF0 = 8, + DDP_COMPONENT_DP_INTF1 = 9, + DDP_COMPONENT_DPI0 = 10, + DDP_COMPONENT_DPI1 = 11, + DDP_COMPONENT_DSC0 = 12, + DDP_COMPONENT_DSC1 = 13, + DDP_COMPONENT_DSI0 = 14, + DDP_COMPONENT_DSI1 = 15, + DDP_COMPONENT_DSI2 = 16, + DDP_COMPONENT_DSI3 = 17, + DDP_COMPONENT_ETHDR_MIXER = 18, + DDP_COMPONENT_GAMMA = 19, + DDP_COMPONENT_MDP_RDMA0 = 20, + DDP_COMPONENT_MDP_RDMA1 = 21, + DDP_COMPONENT_MDP_RDMA2 = 22, + DDP_COMPONENT_MDP_RDMA3 = 23, + DDP_COMPONENT_MDP_RDMA4 = 24, + DDP_COMPONENT_MDP_RDMA5 = 25, + DDP_COMPONENT_MDP_RDMA6 = 26, + DDP_COMPONENT_MDP_RDMA7 = 27, + DDP_COMPONENT_MERGE0 = 28, + DDP_COMPONENT_MERGE1 = 29, + DDP_COMPONENT_MERGE2 = 30, + DDP_COMPONENT_MERGE3 = 31, + DDP_COMPONENT_MERGE4 = 32, + DDP_COMPONENT_MERGE5 = 33, + DDP_COMPONENT_OD0 = 34, + DDP_COMPONENT_OD1 = 35, + DDP_COMPONENT_OVL0 = 36, + DDP_COMPONENT_OVL_2L0 = 37, + DDP_COMPONENT_OVL_2L1 = 38, + DDP_COMPONENT_OVL_2L2 = 39, + DDP_COMPONENT_OVL1 = 40, + DDP_COMPONENT_POSTMASK0 = 41, + DDP_COMPONENT_PWM0 = 42, + DDP_COMPONENT_PWM1 = 43, + DDP_COMPONENT_PWM2 = 44, + DDP_COMPONENT_RDMA0 = 45, + DDP_COMPONENT_RDMA1 = 46, + DDP_COMPONENT_RDMA2 = 47, + DDP_COMPONENT_RDMA4 = 48, + DDP_COMPONENT_UFOE = 49, + DDP_COMPONENT_WDMA0 = 50, + DDP_COMPONENT_WDMA1 = 51, + DDP_COMPONENT_ID_MAX = 52, }; -typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int); +enum mtk_dpi_out_format_con { + MTK_DPI_RGB888_SDR_CON = 0, + MTK_DPI_RGB888_DDR_CON = 1, + MTK_DPI_RGB565_SDR_CON = 2, + MTK_DPI_RGB565_DDR_CON = 3, +}; -typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); +struct cmdq_client_reg { + u8 subsys; + u16 offset; + u16 size; +}; -enum sig_handler { - HANDLER_CURRENT = 0, - HANDLER_SIG_DFL = 1, - HANDLER_EXIT = 2, +struct mtk_mmsys { + void *regs; + const struct mtk_mmsys_driver_data *data; + struct platform_device *clks_pdev; + struct platform_device *drm_pdev; + spinlock_t lock; + struct reset_controller_dev rcdev; + struct cmdq_client_reg cmdq_base; }; -enum { - TRACE_SIGNAL_DELIVERED = 0, - TRACE_SIGNAL_IGNORED = 1, - TRACE_SIGNAL_ALREADY_PENDING = 2, - TRACE_SIGNAL_OVERFLOW_FAIL = 3, - TRACE_SIGNAL_LOSE_INFO = 4, +struct cmdq_pkt { + void *va_base; + dma_addr_t pa_base; + size_t cmd_buf_size; + size_t buf_size; + void *cl; }; -typedef unsigned long old_sigset_t; +struct rockchip_iodomain; -struct old_sigaction { - __sighandler_t sa_handler; - old_sigset_t sa_mask; - unsigned long sa_flags; - __sigrestore_t sa_restorer; -}; +struct rockchip_iodomain_supply; -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 rockchip_iodomain_soc_data { + int grf_offset; + const char *supply_names[16]; + void (*init)(struct rockchip_iodomain *); + int (*write)(struct rockchip_iodomain_supply *, int); }; -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 rockchip_iodomain_supply { + struct rockchip_iodomain *iod; + struct regulator *reg; + struct notifier_block nb; + int idx; }; -struct trace_event_data_offsets_signal_generate {}; - -struct trace_event_data_offsets_signal_deliver {}; +struct rockchip_iodomain { + struct device *dev; + struct regmap *grf; + const struct rockchip_iodomain_soc_data *soc_data; + struct rockchip_iodomain_supply supplies[16]; + int (*write)(struct rockchip_iodomain_supply *, int); +}; -struct trace_export { - struct trace_export __attribute__((btf_type_tag("rcu"))) *next; - void (*write)(struct trace_export *, const void *, unsigned int); - int flags; +struct virtio_mmio_device { + struct virtio_device vdev; + struct platform_device *pdev; + void *base; + unsigned long version; + spinlock_t lock; + struct list_head virtqueues; }; -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 virtio_mmio_vq_info { + struct virtqueue *vq; + struct list_head node; }; -struct ftrace_stack { - unsigned long calls[1024]; +struct devm_of_regulator_matches { + struct of_regulator_match *matches; + unsigned int num_matches; }; -struct ftrace_stacks { - struct ftrace_stack stacks[4]; +enum max77686_regulators { + MAX77686_LDO1 = 0, + MAX77686_LDO2 = 1, + MAX77686_LDO3 = 2, + MAX77686_LDO4 = 3, + MAX77686_LDO5 = 4, + MAX77686_LDO6 = 5, + MAX77686_LDO7 = 6, + MAX77686_LDO8 = 7, + MAX77686_LDO9 = 8, + MAX77686_LDO10 = 9, + MAX77686_LDO11 = 10, + MAX77686_LDO12 = 11, + MAX77686_LDO13 = 12, + MAX77686_LDO14 = 13, + MAX77686_LDO15 = 14, + MAX77686_LDO16 = 15, + MAX77686_LDO17 = 16, + MAX77686_LDO18 = 17, + MAX77686_LDO19 = 18, + MAX77686_LDO20 = 19, + MAX77686_LDO21 = 20, + MAX77686_LDO22 = 21, + MAX77686_LDO23 = 22, + MAX77686_LDO24 = 23, + MAX77686_LDO25 = 24, + MAX77686_LDO26 = 25, + MAX77686_BUCK1 = 26, + MAX77686_BUCK2 = 27, + MAX77686_BUCK3 = 28, + MAX77686_BUCK4 = 29, + MAX77686_BUCK5 = 30, + MAX77686_BUCK6 = 31, + MAX77686_BUCK7 = 32, + MAX77686_BUCK8 = 33, + MAX77686_BUCK9 = 34, + MAX77686_REG_MAX = 35, }; -struct trace_buffer_struct { - int nesting; - char buffer[4096]; +struct max77686_data { + struct device *dev; + unsigned long gpio_enabled[2]; + unsigned int opmode[35]; }; -enum ring_buffer_flags { - RB_FL_OVERWRITE = 1, +struct tps_info { + const char *name; + const char *vin_name; + u8 n_voltages; + const unsigned int *voltage_table; + int enable_time_us; }; -struct err_info { - const char **errs; - u8 type; - u16 pos; - u64 ts; +struct tps65910_reg { + struct regulator_desc *desc; + struct tps65910 *mfd; + struct regulator_dev **rdev; + struct tps_info **info; + int num_regulators; + int mode; + int (*get_ctrl_reg)(int); + unsigned int *ext_sleep_control; + unsigned int board_ext_control[14]; }; -struct tracing_log_err { - struct list_head list; - struct err_info info; - char loc[128]; - char *cmd; - long: 32; +struct sysrq_state { + struct input_handle handle; + struct work_struct reinject_work; + unsigned long key_down[24]; + 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[24]; + int reset_seq_len; + int reset_seq_cnt; + int reset_seq_version; + struct timer_list keyreset_timer; }; -struct buffer_ref { - struct trace_buffer *buffer; - void *page; - int cpu; - refcount_t refcount; +enum imx_tx_state { + OFF___3 = 0, + WAIT_AFTER_RTS = 1, + SEND = 2, + WAIT_AFTER_SEND = 3, }; -typedef bool (*cond_update_fn_t)(struct trace_array *, void *); +struct imx_uart_data; -struct trace_min_max_param { - struct mutex *lock; - u64 *val; - u64 *min; - u64 *max; +struct imx_port { + struct uart_port port; + struct timer_list timer; + unsigned int old_status; + unsigned int have_rtscts: 1; + unsigned int have_rtsgpio: 1; + unsigned int dte_mode: 1; + unsigned int inverted_tx: 1; + unsigned int inverted_rx: 1; + struct clk *clk_ipg; + struct clk *clk_per; + const struct imx_uart_data *devdata; + struct mctrl_gpios *gpios; + int idle_counter; + unsigned int dma_is_enabled: 1; + unsigned int dma_is_rxing: 1; + unsigned int dma_is_txing: 1; + struct dma_chan *dma_chan_rx; + struct dma_chan *dma_chan_tx; + struct scatterlist rx_sgl; + struct scatterlist tx_sgl[2]; + void *rx_buf; + struct circ_buf rx_ring; + unsigned int rx_buf_size; + unsigned int rx_period_length; + unsigned int rx_periods; + dma_cookie_t rx_cookie; + unsigned int tx_bytes; + unsigned int dma_tx_nents; + unsigned int saved_reg[10]; + bool context_saved; + enum imx_tx_state tx_state; + struct hrtimer trigger_start_tx; + struct hrtimer trigger_stop_tx; }; -struct ftrace_buffer_info { - struct trace_iterator iter; - void *spare; - unsigned int spare_cpu; - unsigned int read; - long: 32; +enum imx_uart_type { + IMX1_UART = 0, + IMX21_UART = 1, }; -struct perf_cpu_context { - struct perf_event_context ctx; - struct perf_event_context *task_ctx; - int online; - int heap_size; - struct perf_event **heap; - struct perf_event *heap_default[2]; +struct imx_uart_data { + unsigned int uts_reg; + enum imx_uart_type devtype; }; -struct swevent_hlist; - -struct swevent_htable { - struct swevent_hlist *swevent_hlist; - struct mutex hlist_mutex; - int hlist_refcount; - int recursion[4]; +struct imx_port_ucrs { + unsigned int ucr1; + unsigned int ucr2; + unsigned int ucr3; }; -struct swevent_hlist { - struct hlist_head heads[256]; - struct callback_head callback_head; -}; +typedef u32 sysmmu_pte_t; -struct min_heap_callbacks { - int elem_size; - bool (*less)(const void *, const void *); - void (*swp)(void *, void *); -}; +struct sysmmu_drvdata; -struct pmu_event_list { - raw_spinlock_t lock; - struct list_head list; -}; +struct sysmmu_fault; -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 sysmmu_variant { + u32 pt_base; + u32 flush_all; + u32 flush_entry; + u32 flush_range; + u32 flush_start; + u32 flush_end; + u32 int_status; + u32 int_clear; + u32 fault_va; + u32 fault_info; + int (*get_fault_info)(struct sysmmu_drvdata *, unsigned int, struct sysmmu_fault *); }; -enum event_type_t { - EVENT_FLEXIBLE = 1, - EVENT_PINNED = 2, - EVENT_TIME = 4, - EVENT_CPU = 8, - EVENT_ALL = 3, -}; +struct exynos_iommu_domain; -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, +struct sysmmu_drvdata { + struct device *sysmmu; + struct device *master; + struct device_link *link; + void *sfrbase; + struct clk *clk; + struct clk *aclk; + struct clk *pclk; + struct clk *clk_master; + spinlock_t lock; + bool active; + struct exynos_iommu_domain *domain; + struct list_head domain_node; + struct list_head owner_node; + phys_addr_t pgtable; + unsigned int version; + struct iommu_device iommu; + const struct sysmmu_variant *variant; + bool has_vcr; }; -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, +struct exynos_iommu_domain { + struct list_head clients; + sysmmu_pte_t *pgtable; + short *lv2entcnt; + spinlock_t lock; + spinlock_t pgtablelock; + struct iommu_domain domain; }; -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, -}; +typedef u32 sysmmu_iova_t; -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, +struct sysmmu_fault { + sysmmu_iova_t addr; + const char *name; + unsigned int type; }; -enum perf_probe_config { - PERF_PROBE_CONFIG_IS_RETPROBE = 1, - PERF_UPROBE_REF_CTR_OFFSET_BITS = 32, - PERF_UPROBE_REF_CTR_OFFSET_SHIFT = 32, +struct sysmmu_v1_fault_info { + unsigned short addr_reg; + const char *name; + unsigned int type; }; -enum perf_event_ioc_flags { - PERF_IOC_FLAG_GROUP = 1, +struct exynos_iommu_owner { + struct list_head controllers; + struct iommu_domain *domain; + struct mutex rpm_lock; }; -enum { - IF_STATE_ACTION = 0, - IF_STATE_SOURCE = 1, - IF_STATE_END = 2, +struct panel_bridge { + struct drm_bridge bridge; + long: 32; + struct drm_connector connector; + struct drm_panel *panel; + u32 connector_type; }; -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, +struct tegra_hda_format { + unsigned int sample_rate; + unsigned int channels; + unsigned int bits; + bool pcm; }; -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 mipi_dphy_timing { + unsigned int clkmiss; + unsigned int clkpost; + unsigned int clkpre; + unsigned int clkprepare; + unsigned int clksettle; + unsigned int clktermen; + unsigned int clktrail; + unsigned int clkzero; + unsigned int dtermen; + unsigned int eot; + unsigned int hsexit; + unsigned int hsprepare; + unsigned int hszero; + unsigned int hssettle; + unsigned int hsskip; + unsigned int hstrail; + unsigned int init; + unsigned int lpx; + unsigned int taget; + unsigned int tago; + unsigned int tasure; + unsigned int wakeup; }; -typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *); - -typedef void perf_iterate_f(struct perf_event *, void *); +struct tegra_sor; -struct stop_event_data { - struct perf_event *event; - unsigned int restart; +struct tegra_sor_ops { + const char *name; + int (*probe)(struct tegra_sor *); + void (*audio_enable)(struct tegra_sor *); + void (*audio_disable)(struct tegra_sor *); }; -typedef int (*remote_function_f)(void *); - -struct remote_function_call { - struct task_struct *p; - remote_function_f func; - void *info; - int ret; +struct drm_dp_link_caps { + bool enhanced_framing; + bool tps3_supported; + bool fast_training; + bool channel_coding; + bool alternate_scrambler_reset; }; -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 drm_dp_link_train_set { + unsigned int voltage_swing[4]; + unsigned int pre_emphasis[4]; + unsigned int post_cursor[4]; }; -struct perf_ns_link_info { - __u64 dev; - __u64 ino; +struct drm_dp_link_train { + struct drm_dp_link_train_set request; + struct drm_dp_link_train_set adjust; + unsigned int pattern; + bool clock_recovered; + bool channel_equalized; }; -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 drm_dp_link_ops; -struct perf_mmap_event { - struct vm_area_struct *vma; - const char *file_name; - int file_size; - int maj; - int min; - long: 32; - u64 ino; - u64 ino_generation; - u32 prot; - u32 flags; - u8 build_id[20]; - u32 build_id_size; +struct drm_dp_link { + unsigned char revision; + unsigned int max_rate; + unsigned int max_lanes; + struct drm_dp_link_caps caps; struct { - struct perf_event_header header; - u32 pid; - u32 tid; - u64 start; - u64 len; - u64 pgoff; - } event_id; + unsigned int cr; + unsigned int ce; + } aux_rd_interval; + unsigned char edp; + unsigned int rate; + unsigned int lanes; + unsigned long rates[8]; + unsigned int num_rates; + const struct drm_dp_link_ops *ops; + struct drm_dp_aux *aux; + struct drm_dp_link_train train; }; -struct perf_aux_event { - struct perf_event_header header; - u64 offset; - u64 size; - u64 flags; -}; +struct tegra_sor_soc; -struct perf_aux_event___2 { - struct perf_event_header header; - u64 hw_id; -}; +struct tegra_sor_hdmi_settings; -struct __group_key { - int cpu; - struct pmu *pmu; - struct cgroup *cgroup; +struct tegra_sor { + struct host1x_client client; + struct tegra_output output; + struct device *dev; + const struct tegra_sor_soc *soc; + void *regs; + unsigned int index; + unsigned int irq; + struct reset_control *rst; + struct clk *clk_parent; + struct clk *clk_safe; + struct clk *clk_out; + struct clk *clk_pad; + struct clk *clk_dp; + struct clk *clk; + u8 xbar_cfg[5]; + struct drm_dp_link link; + struct drm_dp_aux *aux; + struct drm_info_list *debugfs_files; + const struct tegra_sor_ops *ops; + enum tegra_io_pad pad; + struct tegra_sor_hdmi_settings *settings; + unsigned int num_settings; + struct regulator *avdd_io_supply; + struct regulator *vdd_pll_supply; + struct regulator *hdmi_supply; + struct delayed_work scdc; + bool scdc_enabled; + struct tegra_hda_format format; }; -struct min_heap { - void *data; - int nr; - int size; -}; +struct tegra_sor_regs; -struct perf_aux_event___3 { - struct perf_event_header header; - u32 pid; - u32 tid; +struct tegra_sor_soc { + bool supports_lvds; + bool supports_hdmi; + bool supports_dp; + bool supports_audio; + bool supports_hdcp; + const struct tegra_sor_regs *regs; + bool has_nvdisplay; + const struct tegra_sor_hdmi_settings *settings; + unsigned int num_settings; + const u8 *xbar_cfg; + const u8 *lane_map; + const u8 (*voltage_swing)[16]; + const u8 (*pre_emphasis)[16]; + const u8 (*post_cursor)[16]; + const u8 (*tx_pu)[16]; }; -struct perf_read_event { - struct perf_event_header header; - u32 pid; - u32 tid; +struct tegra_sor_regs { + unsigned int head_state0; + unsigned int head_state1; + unsigned int head_state2; + unsigned int head_state3; + unsigned int head_state4; + unsigned int head_state5; + unsigned int pll0; + unsigned int pll1; + unsigned int pll2; + unsigned int pll3; + unsigned int dp_padctl0; + unsigned int dp_padctl2; }; -struct remote_output { - struct perf_buffer *rb; - int err; +struct tegra_sor_hdmi_settings { + unsigned long frequency; + u8 vcocap; + u8 filter; + u8 ichpmp; + u8 loadadj; + u8 tmds_termadj; + u8 tx_pu_value; + u8 bg_temp_coef; + u8 bg_vref_level; + u8 avdd10_level; + u8 avdd14_level; + u8 sparepll; + u8 drive_current[4]; + u8 preemphasis[4]; }; -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; +struct drm_dp_link_ops { + int (*apply_training)(struct drm_dp_link *); + int (*configure)(struct drm_dp_link *); }; -struct perf_namespaces_event { - struct task_struct *task; - long: 32; - struct { - struct perf_event_header header; - u32 pid; - u32 tid; - u64 nr_namespaces; - struct perf_ns_link_info link_info[7]; - } event_id; +struct tegra_sor_state { + struct drm_connector_state base; + unsigned int link_speed; + unsigned long pclk; + unsigned int bpc; }; -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 tegra_clk_sor_pad { + struct clk_hw hw; + struct tegra_sor *sor; }; -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 tegra_sor_config { + u32 bits_per_pixel; + u32 active_polarity; + u32 active_count; + u32 tu_size; + u32 active_frac; + u32 watermark; + u32 hblank_symbols; + u32 vblank_symbols; }; -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 tegra_sor_params { + unsigned int num_clocks; + long: 32; + u64 ratio; + u64 precision; + unsigned int active_polarity; + unsigned int active_count; + unsigned int active_frac; + unsigned int tu_size; + unsigned int error; + long: 32; }; -struct event_function_struct { - struct perf_event *event; - event_f func; - void *data; +struct regmap_mmio_context { + void *regs; + unsigned int val_bytes; + bool big_endian; + bool attached_clk; + struct clk *clk; + void (*reg_write)(struct regmap_mmio_context *, unsigned int, unsigned int); + unsigned int (*reg_read)(struct regmap_mmio_context *, unsigned int); }; -struct perf_read_data { - struct perf_event *event; - bool group; - int ret; +struct mfd_of_node_entry { + struct list_head list; + struct device *dev; + struct device_node *np; }; -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; +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; }; -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, +struct mtd_concat { + struct mtd_info mtd; + int num_subdev; + struct mtd_info **subdev; }; -typedef struct { - __le32 *p; - __le32 key; - struct buffer_head *bh; -} Indirect; +struct atmel_nand_controller_ops; -struct squashfs_base_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; +struct atmel_nand_controller_caps { + bool has_dma; + bool legacy_of_bindings; + u32 ale_offs; + u32 cle_offs; + const char *ebi_csa_regmap_name; + const struct atmel_nand_controller_ops *ops; }; -struct squashfs_dev_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 nlink; - __le32 rdev; -}; +struct atmel_nand_controller; -struct squashfs_ldev_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 nlink; - __le32 rdev; - __le32 xattr; -}; +struct atmel_nand; -struct squashfs_symlink_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 nlink; - __le32 symlink_size; - char symlink[0]; +struct atmel_nand_controller_ops { + int (*probe)(struct platform_device *, const struct atmel_nand_controller_caps *); + int (*remove)(struct atmel_nand_controller *); + void (*nand_init)(struct atmel_nand_controller *, struct atmel_nand *); + int (*ecc_init)(struct nand_chip *); + int (*setup_interface)(struct atmel_nand *, int, const struct nand_interface_config *); + int (*exec_op)(struct atmel_nand *, const struct nand_operation *, bool); }; -struct squashfs_reg_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 start_block; - __le32 fragment; - __le32 offset; - __le32 file_size; - __le16 block_list[0]; +struct atmel_nand_controller { + struct nand_controller base; + const struct atmel_nand_controller_caps *caps; + struct device *dev; + struct regmap *smc; + struct dma_chan *dmac; + struct atmel_pmecc *pmecc; + struct list_head chips; + struct clk *mck; }; -struct squashfs_lreg_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le64 start_block; - __le64 file_size; - __le64 sparse; - __le32 nlink; - __le32 fragment; - __le32 offset; - __le32 xattr; - __le16 block_list[0]; +enum atmel_nand_rb_type { + ATMEL_NAND_NO_RB = 0, + ATMEL_NAND_NATIVE_RB = 1, + ATMEL_NAND_GPIO_RB = 2, }; -struct squashfs_dir_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 start_block; - __le32 nlink; - __le16 file_size; - __le16 offset; - __le32 parent_inode; +struct atmel_nand_rb { + enum atmel_nand_rb_type type; + union { + struct gpio_desc *gpio; + int id; + }; }; -struct squashfs_ldir_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 nlink; - __le32 file_size; - __le32 start_block; - __le32 parent_inode; - __le16 i_count; - __le16 offset; - __le32 xattr; - struct squashfs_dir_index index[0]; +struct atmel_nand_cs { + int id; + struct atmel_nand_rb rb; + struct gpio_desc *csgpio; + struct { + void *virt; + dma_addr_t dma; + } io; + struct atmel_smc_cs_conf smcconf; }; -struct squashfs_ipc_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 nlink; +struct atmel_nand { + struct list_head node; + struct device *dev; + long: 32; + struct nand_chip base; + struct atmel_nand_cs *activecs; + struct atmel_pmecc_user *pmecc; + struct gpio_desc *cdgpio; + int numcs; + struct atmel_nand_cs cs[0]; }; -struct squashfs_lipc_inode { - __le16 inode_type; - __le16 mode; - __le16 uid; - __le16 guid; - __le32 mtime; - __le32 inode_number; - __le32 nlink; - __le32 xattr; +struct atmel_smc_nand_ebi_csa_cfg { + u32 offs; + u32 nfd0_on_d16; }; -union squashfs_inode { - struct squashfs_base_inode base; - struct squashfs_dev_inode dev; - struct squashfs_ldev_inode ldev; - struct squashfs_symlink_inode symlink; - struct squashfs_reg_inode reg; - struct squashfs_lreg_inode lreg; - struct squashfs_dir_inode dir; - struct squashfs_ldir_inode ldir; - struct squashfs_ipc_inode ipc; - struct squashfs_lipc_inode lipc; +enum atmel_nfc_data_xfer { + ATMEL_NFC_NO_DATA = 0, + ATMEL_NFC_READ_DATA = 1, + ATMEL_NFC_WRITE_DATA = 2, }; -struct nfs_open_dir_context { - struct list_head list; - atomic_t cache_hits; - atomic_t cache_misses; - unsigned long attr_gencount; - __be32 verf[2]; - long: 32; - __u64 dir_cookie; - __u64 last_cookie; - unsigned long page_index; - unsigned int dtsize; - bool force_clear; - bool eof; - struct callback_head callback_head; - long: 32; +struct atmel_nfc_op { + u8 cs; + u8 ncmds; + u8 cmds[2]; + u8 naddrs; + u8 addrs[5]; + enum atmel_nfc_data_xfer data; + u32 wait; + u32 errors; }; -struct nfs_readdir_descriptor { - struct file *file; - struct folio *folio; - struct dir_context *ctx; - unsigned long folio_index; - unsigned long folio_index_max; - long: 32; - 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 atmel_hsmc_nand_controller { + struct atmel_nand_controller base; + struct { + struct gen_pool *pool; + void *virt; + dma_addr_t dma; + } sram; + const struct atmel_hsmc_reg_layout *hsmc_layout; + struct regmap *io; + struct atmel_nfc_op op; + struct completion complete; + u32 cfg; + int irq; + struct clk *clk; }; -struct nfs_cache_array_entry { - u64 cookie; - u64 ino; - const char *name; - unsigned int name_len; - unsigned char d_type; - long: 32; +struct atmel_smc_nand_controller { + struct atmel_nand_controller base; + struct regmap *ebi_csa_regmap; + struct atmel_smc_nand_ebi_csa_cfg *ebi_csa; }; -struct nfs_cache_array { - u64 change_attr; - u64 last_cookie; - unsigned int size; - unsigned char folio_full: 1; - unsigned char folio_is_eof: 1; - unsigned char cookies_are_ordered: 1; - struct nfs_cache_array_entry array[0]; +struct spansion_nor_params { + u8 clsr; }; -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 rspi_data; -enum { - NAME_LESS = 0, - NAME_MATCHES = 1, - NAME_GREATER = 2, - NOT_ON_MEDIA = 3, +struct spi_ops { + int (*set_config_register)(struct rspi_data *, int); + int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + u16 extra_mode_bits; + u16 min_div; + u16 max_div; + u16 flags; + u16 fifo_size; + u8 num_hw_ss; }; -struct ubifs_old_idx { - struct rb_node rb; - int lnum; - int offs; +struct rspi_data { + void *addr; + u32 speed_hz; + struct spi_controller *ctlr; + struct platform_device *pdev; + wait_queue_head_t wait; + spinlock_t lock; + struct clk *clk; + u16 spcmd; + u8 spsr; + u8 sppcr; + int rx_irq; + int tx_irq; + const struct spi_ops *ops; + unsigned int dma_callbacked: 1; + unsigned int byte_access: 1; }; -struct msg_msgseg; +struct rspi_plat_data { + unsigned int dma_tx_id; + unsigned int dma_rx_id; + u16 num_chipselect; +}; -struct msg_msg { - struct list_head m_list; - long m_type; - size_t m_ts; - struct msg_msgseg *next; - void *security; +enum phy_state_work { + PHY_STATE_WORK_NONE = 0, + PHY_STATE_WORK_ANEG = 1, + PHY_STATE_WORK_SUSPEND = 2, }; -struct msg_msgseg { - struct msg_msgseg *next; +struct iproc_mdiomux_desc { + void *mux_handle; + void *base; + struct device *dev; + struct mii_bus *mii_bus; + struct clk *core_clk; }; -struct crypto_kpp { - unsigned int reqsize; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct crypto_tfm base; +struct macb_dma_desc_ptp { + u32 ts_1; + u32 ts_2; }; -struct kpp_request; +typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t); -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 *); - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct crypto_alg base; +struct e1000_reg_info { + u32 ofs; + char *name; }; -struct kpp_request { - struct crypto_async_request base; - struct scatterlist *src; - struct scatterlist *dst; - unsigned int src_len; - unsigned int dst_len; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - void *__ctx[0]; +struct trace_event_raw_e1000e_trace_mac_register { + struct trace_entry ent; + uint32_t reg; + char __data[0]; }; -struct kpp_instance { - void (*free)(struct kpp_instance *); - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - union { +union e1000_rx_desc_packet_split { + struct { + __le64 buffer_addr[4]; + } read; + struct { struct { - char head[64]; - struct crypto_instance base; - } s; - struct kpp_alg alg; - }; + __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 crypto_istat_kpp { - atomic64_t setsecret_cnt; - atomic64_t generate_public_key_cnt; - atomic64_t compute_shared_secret_cnt; - atomic64_t err_cnt; +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 crypto_kpp_spawn { - struct crypto_spawn base; +struct my_u1 { + __le64 a; + __le64 b; + __le64 c; + __le64 d; }; -struct crypto_report_kpp { - char type[64]; +struct trace_event_data_offsets_e1000e_trace_mac_register {}; + +struct meson8b_dwmac; + +struct meson8b_dwmac_data { + int (*set_phy_mode)(struct meson8b_dwmac *); + bool has_prg_eth1_rgmii_rx_delay; }; -struct blk_mq_hw_ctx_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct blk_mq_hw_ctx *, char *); +struct meson8b_dwmac { + struct device *dev; + void *regs; + const struct meson8b_dwmac_data *data; + phy_interface_t phy_mode; + struct clk *rgmii_tx_clk; + u32 tx_delay_ns; + u32 rx_delay_ps; + struct clk *timing_adj_clk; }; -struct show_busy_params { - struct seq_file *m; - struct blk_mq_hw_ctx *hctx; +struct meson8b_dwmac_clk_configs { + struct clk_mux m250_mux; + struct clk_divider m250_div; + struct clk_fixed_factor fixed_div2; + struct clk_gate rgmii_tx_en; }; -union nested_table { - union nested_table __attribute__((btf_type_tag("rcu"))) *table; - struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket; +struct usb_eth_dev { + char *name; + __u16 vendor; + __u16 device; + __u32 private; }; -typedef struct { - size_t compressedSize; - long: 32; - unsigned long long decompressedBound; -} ZSTD_frameSizeInfo; +enum pegasus_registers { + EthCtrl0 = 0, + EthCtrl1 = 1, + EthCtrl2 = 2, + EthID = 16, + Reg1d = 29, + EpromOffset = 32, + EpromData = 33, + EpromCtrl = 35, + PhyAddr = 37, + PhyData = 38, + PhyCtrl = 40, + UsbStst = 42, + EthTxStat0 = 43, + EthTxStat1 = 44, + EthRxStat = 45, + WakeupControl = 120, + Reg7b = 123, + Gpio0 = 126, + Gpio1 = 127, + Reg81 = 129, +}; -typedef enum { - ZSTD_d_windowLogMax = 100, - ZSTD_d_experimentalParam1 = 1000, - ZSTD_d_experimentalParam2 = 1001, - ZSTD_d_experimentalParam3 = 1002, - ZSTD_d_experimentalParam4 = 1003, -} ZSTD_dParameter; +struct pegasus { + struct usb_device *usb; + struct usb_interface *intf; + struct net_device *net; + struct mii_if_info mii; + unsigned int flags; + unsigned int features; + u32 msg_enable; + u32 wolopts; + int dev_index; + int intr_interval; + struct tasklet_struct rx_tl; + struct delayed_work carrier_check; + struct urb *rx_urb; + struct urb *tx_urb; + struct urb *intr_urb; + struct sk_buff *rx_skb; + int chip; + unsigned char intr_buff[8]; + __u8 tx_buff[1536]; + __u8 eth_regs[4]; + __u8 phy; + __u8 gpio_res; +}; -typedef enum { - ZSTDnit_frameHeader = 0, - ZSTDnit_blockHeader = 1, - ZSTDnit_block = 2, - ZSTDnit_lastBlock = 3, - ZSTDnit_checksum = 4, - ZSTDnit_skippableFrame = 5, -} ZSTD_nextInputType_e; +typedef struct pegasus pegasus_t; -struct tegra_ictlr_soc { - unsigned int num_ictlrs; +struct usbmisc_ops { + int (*init)(struct imx_usbmisc_data *); + int (*post)(struct imx_usbmisc_data *); + int (*set_wakeup)(struct imx_usbmisc_data *, bool); + int (*hsic_set_connect)(struct imx_usbmisc_data *); + int (*hsic_set_clk)(struct imx_usbmisc_data *, bool); + int (*charger_detection)(struct imx_usbmisc_data *); + int (*power_lost_check)(struct imx_usbmisc_data *); + void (*vbus_comparator_on)(struct imx_usbmisc_data *, bool); }; -struct tegra_ictlr_info { - void *base[6]; - u32 cop_ier[6]; - u32 cop_iep[6]; - u32 cpu_ier[6]; - u32 cpu_iep[6]; - u32 ictlr_wake_mask[6]; +struct imx_usbmisc { + void *base; + spinlock_t lock; + const struct usbmisc_ops *ops; }; -struct aic_chip_data { - u32 ext_irqs; +union input_seq_state { + struct { + unsigned short pos; + bool mutex_acquired; + }; + void *p; }; -struct sunxi_rsb_addr_map { - u16 hwaddr; - u8 rtaddr; +struct input_devres { + struct input_dev *input; }; -struct sunxi_rsb { +struct stmpe_touch { + struct stmpe *stmpe; + struct input_dev *idev; + struct delayed_work work; struct device *dev; - void *regs; - struct clk *clk; - struct reset_control *rstc; - struct completion complete; - struct mutex lock; - unsigned int status; - u32 clk_freq; + struct touchscreen_properties prop; + u8 ave_ctrl; + u8 touch_det_delay; + u8 settling; + u8 fraction_z; + u8 i_drive; }; -struct sunxi_rsb_ctx { - struct sunxi_rsb_device *rdev; - int size; +struct stm32_rtc_registers { + u16 tr; + u16 dr; + u16 cr; + u16 isr; + u16 prer; + u16 alrmar; + u16 wpr; + u16 sr; + u16 scr; + u16 verr; }; -struct exynos5_usbdrd_phy_config; - -struct exynos5_usbdrd_phy_drvdata { - const struct exynos5_usbdrd_phy_config *phy_cfg; - u32 pmu_offset_usbdrd0_phy; - u32 pmu_offset_usbdrd1_phy; - bool has_common_clk_gate; +struct stm32_rtc_events { + u32 alra; }; -struct phy_usb_instance; - -struct exynos5_usbdrd_phy; +struct stm32_rtc; -struct exynos5_usbdrd_phy_config { - u32 id; - void (*phy_isol)(struct phy_usb_instance *, u32); - void (*phy_init)(struct exynos5_usbdrd_phy *); - unsigned int (*set_refclk)(struct phy_usb_instance *); +struct stm32_rtc_data { + const struct stm32_rtc_registers regs; + const struct stm32_rtc_events events; + void (*clear_events)(struct stm32_rtc *, unsigned int); + bool has_pclk; + bool need_dbp; + bool need_accuracy; }; -struct phy_usb_instance { - struct phy *phy; - u32 index; - struct regmap *reg_pmu; - u32 pmu_offset; - const struct exynos5_usbdrd_phy_config *phy_cfg; +struct stm32_rtc { + struct rtc_device *rtc_dev; + void *base; + struct regmap *dbp; + unsigned int dbp_reg; + unsigned int dbp_mask; + struct clk *pclk; + struct clk *rtc_ck; + const struct stm32_rtc_data *data; + int irq_alarm; }; -struct exynos5_usbdrd_phy { - struct device *dev; - void *reg_phy; - struct clk *clk; - struct clk *pipeclk; - struct clk *utmiclk; - struct clk *itpclk; - const struct exynos5_usbdrd_phy_drvdata *drv_data; - struct phy_usb_instance phys[2]; - u32 extrefclk; - struct clk *ref_clk; - struct regulator *vbus; - struct regulator *vbus_boost; +struct mv64xxx_i2c_regs { + u8 addr; + u8 ext_addr; + u8 data; + u8 control; + u8 status; + u8 clock; + u8 soft_reset; }; -enum exynos5_usbdrd_phy_id { - EXYNOS5_DRDPHY_UTMI = 0, - EXYNOS5_DRDPHY_PIPE3 = 1, - EXYNOS5_DRDPHYS_NUM = 2, +enum { + MV64XXX_I2C_STATE_INVALID = 0, + MV64XXX_I2C_STATE_IDLE = 1, + MV64XXX_I2C_STATE_WAITING_FOR_START_COND = 2, + MV64XXX_I2C_STATE_WAITING_FOR_RESTART = 3, + MV64XXX_I2C_STATE_WAITING_FOR_ADDR_1_ACK = 4, + MV64XXX_I2C_STATE_WAITING_FOR_ADDR_2_ACK = 5, + MV64XXX_I2C_STATE_WAITING_FOR_SLAVE_ACK = 6, + MV64XXX_I2C_STATE_WAITING_FOR_SLAVE_DATA = 7, }; -struct bcm281xx_pin_function; - -struct bcm281xx_pinctrl_data { - void *reg_base; - const struct pinctrl_pin_desc *pins; - const unsigned int npins; - const struct bcm281xx_pin_function *functions; - const unsigned int nfunctions; - struct regmap *regmap; +enum { + MV64XXX_I2C_ACTION_INVALID = 0, + MV64XXX_I2C_ACTION_CONTINUE = 1, + MV64XXX_I2C_ACTION_SEND_RESTART = 2, + MV64XXX_I2C_ACTION_SEND_ADDR_1 = 3, + MV64XXX_I2C_ACTION_SEND_ADDR_2 = 4, + MV64XXX_I2C_ACTION_SEND_DATA = 5, + MV64XXX_I2C_ACTION_RCV_DATA = 6, + MV64XXX_I2C_ACTION_RCV_DATA_STOP = 7, + MV64XXX_I2C_ACTION_SEND_STOP = 8, }; -struct bcm281xx_pin_function { - const char *name; - const char * const *groups; - const unsigned int ngroups; +struct mv64xxx_i2c_data { + struct i2c_msg *msgs; + int num_msgs; + int irq; + u32 state; + u32 action; + u32 aborting; + u32 cntl_bits; + void *reg_base; + struct mv64xxx_i2c_regs reg_offsets; + u32 addr1; + u32 addr2; + u32 bytes_left; + u32 byte_posn; + u32 send_stop; + u32 block; + int rc; + u32 freq_m; + u32 freq_n; + struct clk *clk; + struct clk *reg_clk; + wait_queue_head_t waitq; + spinlock_t lock; + struct i2c_msg *msg; + struct i2c_adapter adapter; + bool offload_enabled; + bool errata_delay; + struct reset_control *rstc; + bool irq_clear_inverted; + bool clk_n_base_0; + struct i2c_bus_recovery_info rinfo; + bool atomic; + long: 32; }; -enum bcm281xx_pin_type { - BCM281XX_PIN_TYPE_UNKNOWN = 0, - BCM281XX_PIN_TYPE_STD = 1, - BCM281XX_PIN_TYPE_I2C = 2, - BCM281XX_PIN_TYPE_HDMI = 3, +struct mv64xxx_i2c_pdata { + u32 freq_m; + u32 freq_n; + u32 timeout; }; -struct msm_pinctrl { - struct device *dev; - struct pinctrl_dev *pctrl; - struct gpio_chip chip; - struct pinctrl_desc desc; - struct notifier_block restart_nb; - int irq; - bool intr_target_use_scm; - raw_spinlock_t lock; - unsigned long dual_edge_irqs[10]; - unsigned long enabled_irqs[10]; - unsigned long skip_wake_irqs[10]; - unsigned long disabled_for_mux[10]; - unsigned long ever_gpio[10]; - const struct msm_pinctrl_soc_data *soc; - void *regs[4]; - u32 phys_base[4]; +struct cec_notifier { + struct mutex lock; + struct list_head head; + struct kref kref; + struct device *hdmi_dev; + struct cec_connector_info conn_info; + const char *port_name; + struct cec_adapter *cec_adap; + u16 phys_addr; }; -enum support_mode { - ALLOW_LEGACY = 0, - DENY_LEGACY = 1, +struct syscon_reboot_context { + struct regmap *map; + u32 offset; + u32 value; + u32 mask; + struct notifier_block restart_handler; }; -struct aperture_range { - struct device *dev; - resource_size_t base; - resource_size_t size; - struct list_head lh; - void (*detach)(struct device *); +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; + long: 32; }; -struct wm8505fb_info { - struct fb_info fb; - void *regbase; - unsigned int contrast; +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 hi6220_clk_divider { - struct clk_hw hw; - void *reg; - u8 shift; - u8 width; - u32 mask; - const struct clk_div_table *table; - spinlock_t *lock; +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 hi3559av100_pll_clock { - u32 id; - const char *name; - const char *parent_name; - const u32 ctrl_reg1; - const u8 frac_shift; - const u8 frac_width; - const u8 postdiv1_shift; - const u8 postdiv1_width; - const u8 postdiv2_shift; - const u8 postdiv2_width; - const u32 ctrl_reg2; - const u8 fbdiv_shift; - const u8 fbdiv_width; - const u8 refdiv_shift; - const u8 refdiv_width; +struct cpuidle_driver_kobj { + struct cpuidle_driver *drv; + struct completion kobj_unregister; + struct kobject kobj; }; -struct hi3559av100_clk_pll { - struct clk_hw hw; - u32 id; - void *ctrl_reg1; - u8 frac_shift; - u8 frac_width; - u8 postdiv1_shift; - u8 postdiv1_width; - u8 postdiv2_shift; - u8 postdiv2_width; - void *ctrl_reg2; - u8 fbdiv_shift; - u8 fbdiv_width; - u8 refdiv_shift; - u8 refdiv_width; +struct cpuidle_device_kobj { + struct cpuidle_device *dev; + struct completion kobj_unregister; + struct kobject kobj; }; -enum { - PLL_OFF_L_VAL = 0, - PLL_OFF_CAL_L_VAL = 1, - PLL_OFF_ALPHA_VAL = 2, - PLL_OFF_ALPHA_VAL_U = 3, - PLL_OFF_USER_CTL = 4, - PLL_OFF_USER_CTL_U = 5, - PLL_OFF_USER_CTL_U1 = 6, - PLL_OFF_CONFIG_CTL = 7, - PLL_OFF_CONFIG_CTL_U = 8, - PLL_OFF_CONFIG_CTL_U1 = 9, - PLL_OFF_TEST_CTL = 10, - PLL_OFF_TEST_CTL_U = 11, - PLL_OFF_TEST_CTL_U1 = 12, - PLL_OFF_TEST_CTL_U2 = 13, - PLL_OFF_STATE = 14, - PLL_OFF_STATUS = 15, - PLL_OFF_OPMODE = 16, - PLL_OFF_FRAC = 17, - PLL_OFF_CAL_VAL = 18, - PLL_OFF_MAX_REGS = 19, +struct cpuidle_driver_attr { + struct attribute attr; + ssize_t (*show)(struct cpuidle_driver *, char *); + ssize_t (*store)(struct cpuidle_driver *, const char *, size_t); }; -struct pll_vco; - -struct clk_alpha_pll { - u32 offset; - const u8 *regs; - const struct pll_vco *vco_table; - size_t num_vco; - u8 flags; - struct clk_regmap clkr; +struct cpuidle_attr { + struct attribute attr; + ssize_t (*show)(struct cpuidle_device *, char *); + ssize_t (*store)(struct cpuidle_device *, const char *, size_t); }; -struct pll_vco { - unsigned long min_freq; - unsigned long max_freq; - u32 val; +struct range_t { + int start; + int end; }; -struct clk_alpha_pll_postdiv { - u32 offset; - u8 width; - const u8 *regs; - struct clk_regmap clkr; - int post_div_shift; - const struct clk_div_table *post_div_table; - size_t num_post_div; +struct dw_mci_rockchip_priv_data { + struct clk *drv_clk; + struct clk *sample_clk; + int default_sample_phase; + int num_phases; }; -struct alpha_pll_config { - u32 l; - u32 alpha; - u32 alpha_hi; - u32 config_ctl_val; - u32 config_ctl_hi_val; - u32 config_ctl_hi1_val; - u32 user_ctl_val; - u32 user_ctl_hi_val; - u32 user_ctl_hi1_val; - u32 test_ctl_val; - u32 test_ctl_mask; - u32 test_ctl_hi_val; - u32 test_ctl_hi_mask; - u32 test_ctl_hi1_val; - u32 test_ctl_hi2_val; - u32 main_output_mask; - u32 aux_output_mask; - u32 aux2_output_mask; - u32 early_output_mask; - u32 alpha_en_mask; - u32 alpha_mode_mask; - u32 pre_div_val; - u32 pre_div_mask; - u32 post_div_val; - u32 post_div_mask; - u32 vco_val; - u32 vco_mask; - u32 status_val; - u32 status_mask; - u32 lock_det; +struct sdhci_at91_soc_data { + const struct sdhci_pltfm_data *pdata; + bool baseclk_is_generated_internally; + unsigned int divider_for_baseclk; }; -struct rockchip_mmc_clock { - struct clk_hw hw; - void *reg; - int id; - int shift; - int cached_phase; - struct notifier_block clk_rate_change_nb; +struct sdhci_at91_priv { + const struct sdhci_at91_soc_data *soc_data; + struct clk *hclock; + struct clk *gck; + struct clk *mainck; + bool restore_needed; + bool cal_always_on; }; -struct clk_rv1126_inits { - void (*inits)(struct device_node *); +struct gpio_trig_data { + struct led_classdev *led; + unsigned int desired_brightness; + struct gpio_desc *gpiod; }; -struct tcon_ch1_clk { - struct clk_hw hw; - spinlock_t lock; - void *reg; +struct nvram_header { + u32 magic; + u32 len; + u32 crc_ver_init; + u32 config_refresh; + u32 config_ncdl; }; -struct dra7_atl_clock_info; +typedef int (*of_init_fn_1_ret)(struct device_node *); -struct dra7_atl_desc { - struct clk *clk; - struct clk_hw hw; - struct dra7_atl_clock_info *cinfo; - int id; - bool probed; - bool valid; - bool enabled; - u32 bws; - u32 aws; - u32 divider; +struct bcma_device_id_name { + u16 id; + const char *name; }; -struct dra7_atl_clock_info { +struct hi6220_mbox_chan; + +struct hi6220_mbox { struct device *dev; - void *iobase; - struct dra7_atl_desc *cdesc; + int irq; + bool tx_irq_mode; + void *ipc; + void *base; + unsigned int chan_num; + struct hi6220_mbox_chan *mchan; + void *irq_map_chan[32]; + struct mbox_chan *chan; + struct mbox_controller controller; }; -struct pl330_of_quirks { - char *quirk; - int id; +struct hi6220_mbox_chan { + unsigned int dir; + unsigned int dst_irq; + unsigned int ack_irq; + unsigned int slot; + struct hi6220_mbox *parent; }; -enum pl330_cachectrl { - CCTRL0 = 0, - CCTRL1 = 1, - CCTRL2 = 2, - CCTRL3 = 3, - INVALID1 = 4, - INVALID2 = 5, - CCTRL6 = 6, - CCTRL7 = 7, +struct aemif_cs_data { + u8 cs; + u16 wstrobe; + u16 rstrobe; + u8 wsetup; + u8 whold; + u8 rsetup; + u8 rhold; + u8 ta; + u8 enable_ss; + u8 enable_ew; + u8 asize; }; -enum pl330_byteswap { - SWAP_NO = 0, - SWAP_2 = 1, - SWAP_4 = 2, - SWAP_8 = 3, - SWAP_16 = 4, +struct aemif_device { + void *base; + struct clk *clk; + unsigned long clk_rate; + u8 num_cs; + int cs_offset; + struct aemif_cs_data cs_data[4]; }; -enum desc_status { - FREE = 0, - PREP = 1, - BUSY = 2, - PAUSED = 3, - DONE___2 = 4, -}; +struct aemif_abus_data; -enum pl330_dmac_state { - UNINIT = 0, - INIT = 1, - DYING = 2, +struct aemif_platform_data { + struct of_dev_auxdata *dev_lookup; + u32 cs_offset; + struct aemif_abus_data *abus_data; + size_t num_abus_data; + struct platform_device *sub_devices; + size_t num_sub_devices; }; -enum pl330_op_err { - PL330_ERR_NONE = 0, - PL330_ERR_ABORT = 1, - PL330_ERR_FAIL = 2, +struct aemif_abus_data { + u32 cs; }; -enum dmamov_dst { - SAR = 0, - CCR___2 = 1, - DAR = 2, +struct iproc_adc_priv { + struct regmap *regmap; + struct clk *adc_clk; + struct mutex mutex; + int irqno; + int chan_val; + int chan_id; + struct completion completion; }; -enum pl330_cond { - SINGLE = 0, - BURST = 1, - ALWAYS = 2, +struct qfprom_soc_data { + u32 accel_value; + u32 qfprom_blow_timer_value; + u32 qfprom_blow_set_freq; + int qfprom_blow_uV; }; -struct pl330_dmac; +struct qfprom_soc_compatible_data { + const struct nvmem_keepout *keepout; + unsigned int nkeepout; +}; -struct pl330_thread; +struct qfprom_priv { + void *qfpraw; + void *qfpconf; + void *qfpcorrected; + void *qfpsecurity; + struct device *dev; + struct clk *secclk; + struct regulator *vcc; + const struct qfprom_soc_data *soc_data; +}; -struct dma_pl330_chan { - struct tasklet_struct task; - struct dma_chan chan; - struct list_head submitted_list; - struct list_head work_list; - struct list_head completed_list; - struct pl330_dmac *dmac; - spinlock_t lock; - struct pl330_thread *thread; - int burst_sz; - int burst_len; - phys_addr_t fifo_addr; - dma_addr_t fifo_dma; - enum dma_data_direction dir; - struct dma_slave_config slave_config; - bool cyclic; - bool active; +struct qfprom_touched_values { + unsigned long clk_rate; + u32 accel_val; + u32 timer_val; }; -struct pl330_config { - u32 periph_id; - unsigned int mode; - unsigned int data_bus_width: 10; - unsigned int data_buf_dep: 11; - unsigned int num_chan: 4; - unsigned int num_peri: 6; - u32 peri_ns; - unsigned int num_events: 6; - u32 irq_ns; +enum offload_act_command { + FLOW_ACT_REPLACE = 0, + FLOW_ACT_DESTROY = 1, + FLOW_ACT_STATS = 2, }; -struct _pl330_tbd { - bool reset_dmac; - bool reset_mngr; - u8 reset_chan; +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 pl330_dmac { - struct dma_device ddma; - struct list_head desc_pool; - spinlock_t pool_lock; - unsigned int mcbufsz; - void *base; - struct pl330_config pcfg; - spinlock_t lock; - int events[32]; - dma_addr_t mcode_bus; - void *mcode_cpu; - struct pl330_thread *channels; - struct pl330_thread *manager; - struct tasklet_struct tasks; - struct _pl330_tbd dmac_tbd; - enum pl330_dmac_state state; - struct list_head req_done; - unsigned int num_peripherals; - struct dma_pl330_chan *peripherals; - int quirks; - struct reset_control *rstc; - struct reset_control *rstc_ocp; +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 dma_pl330_desc; +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 _pl330_req { - u32 mc_bus; - void *mc_cpu; - struct dma_pl330_desc *desc; +struct flow_indr_dev { + struct list_head list; + flow_indr_block_bind_cb_t *cb; + void *cb_priv; + refcount_t refcnt; }; -struct pl330_thread { - u8 id; - int ev; - bool free; - struct pl330_dmac *dmac; - struct _pl330_req req[2]; - unsigned int lstenq; - int req_running; +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 pl330_xfer { - u32 src_addr; - u32 dst_addr; - u32 bytes; +struct flow_offload_action { + struct netlink_ext_ack *extack; + enum offload_act_command command; + enum flow_action_id id; + u32 index; + unsigned long cookie; + long: 32; + struct flow_stats stats; + struct flow_action action; }; -struct pl330_reqcfg { - unsigned int dst_inc: 1; - unsigned int src_inc: 1; - bool nonsecure; - bool privileged; - bool insnaccess; - unsigned int brst_len: 5; - unsigned int brst_size: 3; - enum pl330_cachectrl dcctl; - enum pl330_cachectrl scctl; - enum pl330_byteswap swap; - struct pl330_config *pcfg; +struct flow_match_meta { + struct flow_dissector_key_meta *key; + struct flow_dissector_key_meta *mask; }; -struct dma_pl330_desc { - struct list_head node; - struct dma_async_tx_descriptor txd; - struct pl330_xfer px; - struct pl330_reqcfg rqcfg; - enum desc_status status; - int bytes_requested; - bool last; - struct dma_pl330_chan *pchan; - enum dma_transfer_direction rqtype; - unsigned int peri: 5; - struct list_head rqd; +struct flow_match_control { + struct flow_dissector_key_control *key; + struct flow_dissector_key_control *mask; }; -struct _arg_GO { - u8 chan; - u32 addr; - unsigned int ns; +struct flow_dissector_key_ports_range; + +struct flow_match_ports_range { + struct flow_dissector_key_ports_range *key; + struct flow_dissector_key_ports_range *mask; }; -struct _xfer_spec { - u32 ccr; - struct dma_pl330_desc *desc; +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 _arg_LPEND { - enum pl330_cond cond; - bool forever; - unsigned int loop; - u8 bjump; +struct flow_match_ipsec { + struct flow_dissector_key_ipsec *key; + struct flow_dissector_key_ipsec *mask; }; -struct tps6586x_regulator { - struct regulator_desc desc; - int enable_bit[2]; - int enable_reg[2]; +struct flow_match_icmp { + struct flow_dissector_key_icmp *key; + struct flow_dissector_key_icmp *mask; }; -enum { - TPS6586X_ID_SYS = 0, - TPS6586X_ID_SM_0 = 1, - TPS6586X_ID_SM_1 = 2, - TPS6586X_ID_SM_2 = 3, - TPS6586X_ID_LDO_0 = 4, - TPS6586X_ID_LDO_1 = 5, - TPS6586X_ID_LDO_2 = 6, - TPS6586X_ID_LDO_3 = 7, - TPS6586X_ID_LDO_4 = 8, - TPS6586X_ID_LDO_5 = 9, - TPS6586X_ID_LDO_6 = 10, - TPS6586X_ID_LDO_7 = 11, - TPS6586X_ID_LDO_8 = 12, - TPS6586X_ID_LDO_9 = 13, - TPS6586X_ID_LDO_RTC = 14, - TPS6586X_ID_MAX_REGULATOR = 15, +struct flow_match_mpls { + struct flow_dissector_key_mpls *key; + struct flow_dissector_key_mpls *mask; }; -struct tps6586x_settings { - int slew_rate; +struct flow_match_enc_keyid { + struct flow_dissector_key_keyid *key; + struct flow_dissector_key_keyid *mask; }; -struct stm32_usart_offsets { - u8 cr1; - u8 cr2; - u8 cr3; - u8 brr; - u8 gtpr; - u8 rtor; - u8 rqr; - u8 isr; - u8 icr; - u8 rdr; - u8 tdr; +struct flow_match_enc_opts { + struct flow_dissector_key_enc_opts *key; + struct flow_dissector_key_enc_opts *mask; }; -struct stm32_usart_config { - u8 uart_enable_bit; - bool has_7bits_data; - bool has_swap; - bool has_wakeup; - bool has_fifo; - int fifosize; +struct flow_dissector_key_ct; + +struct flow_match_ct { + struct flow_dissector_key_ct *key; + struct flow_dissector_key_ct *mask; }; -struct stm32_usart_info { - struct stm32_usart_offsets ofs; - struct stm32_usart_config cfg; +struct flow_dissector_key_ct { + u16 ct_state; + u16 ct_zone; + u32 ct_mark; + u32 ct_labels[4]; }; -struct stm32_port { - struct uart_port port; - struct clk *clk; - const struct stm32_usart_info *info; - struct dma_chan *rx_ch; - dma_addr_t rx_dma_buf; - unsigned char *rx_buf; - struct dma_chan *tx_ch; - dma_addr_t tx_dma_buf; - unsigned char *tx_buf; - u32 cr1_irq; - u32 cr3_irq; - int last_res; - bool tx_dma_busy; - bool throttled; - bool hw_flow_control; - bool swap; - bool fifoen; - int rxftcfg; - int txftcfg; - bool wakeup_src; - int rdr_mask; - struct mctrl_gpios *gpios; - struct dma_tx_state rx_dma_state; +struct flow_match_pppoe { + struct flow_dissector_key_pppoe *key; + struct flow_dissector_key_pppoe *mask; }; -struct drm_out_fence_state { - s32 __attribute__((btf_type_tag("user"))) *out_fence_ptr; - struct sync_file *sync_file; - int fd; +struct flow_match_l2tpv3 { + struct flow_dissector_key_l2tpv3 *key; + struct flow_dissector_key_l2tpv3 *mask; }; -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; +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, }; -struct drm_dmi_panel_orientation_data { - int width; - int height; - const char * const *bios_dates; - int orientation; +enum udp_tunnel_nic_info_flags { + UDP_TUNNEL_NIC_INFO_MAY_SLEEP = 1, + UDP_TUNNEL_NIC_INFO_OPEN_ONLY = 2, + UDP_TUNNEL_NIC_INFO_IPV4_ONLY = 4, + UDP_TUNNEL_NIC_INFO_STATIC_IANA_VXLAN = 8, }; -enum falcon_memory { - FALCON_MEMORY_IMEM = 0, - FALCON_MEMORY_DATA = 1, +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, }; -struct falcon_fw_bin_header_v1 { - u32 magic; - u32 version; - u32 size; - u32 os_header_offset; - u32 os_data_offset; - u32 os_size; +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, }; -struct falcon_fw_os_header_v1 { - u32 code_offset; - u32 code_size; - u32 data_offset; - u32 data_size; +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, }; -struct probe; +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 kobj_map { - struct probe *probes[255]; - struct mutex *lock; +struct ethnl_tunnel_info_dump_ctx { + struct ethnl_req_info req_info; + unsigned long ifindex; }; -struct probe { - struct probe *next; - dev_t dev; - unsigned long range; - struct module *owner; - kobj_probe_t *get; - int (*lock)(dev_t, void *); - void *data; +struct 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 req { - struct req *next; - struct completion done; - int err; - const char *name; - umode_t mode; - kuid_t uid; - kgid_t gid; - struct device *dev; +enum { + IFLA_IPTUN_UNSPEC = 0, + IFLA_IPTUN_LINK = 1, + IFLA_IPTUN_LOCAL = 2, + IFLA_IPTUN_REMOTE = 3, + IFLA_IPTUN_TTL = 4, + IFLA_IPTUN_TOS = 5, + IFLA_IPTUN_ENCAP_LIMIT = 6, + IFLA_IPTUN_FLOWINFO = 7, + IFLA_IPTUN_FLAGS = 8, + IFLA_IPTUN_PROTO = 9, + IFLA_IPTUN_PMTUDISC = 10, + IFLA_IPTUN_6RD_PREFIX = 11, + IFLA_IPTUN_6RD_RELAY_PREFIX = 12, + IFLA_IPTUN_6RD_PREFIXLEN = 13, + IFLA_IPTUN_6RD_RELAY_PREFIXLEN = 14, + IFLA_IPTUN_ENCAP_TYPE = 15, + IFLA_IPTUN_ENCAP_FLAGS = 16, + IFLA_IPTUN_ENCAP_SPORT = 17, + IFLA_IPTUN_ENCAP_DPORT = 18, + IFLA_IPTUN_COLLECT_METADATA = 19, + IFLA_IPTUN_FWMARK = 20, + __IFLA_IPTUN_MAX = 21, }; -struct bcm590xx { - struct device *dev; - struct i2c_client *i2c_pri; - struct i2c_client *i2c_sec; - struct regmap *regmap_pri; - struct regmap *regmap_sec; - unsigned int id; +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, }; -struct rk808_reg_data { - int addr; - int mask; - int value; +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 { - RK805_ID = 32848, - RK806_ID = 32864, - RK808_ID = 0, - RK809_ID = 32912, - RK817_ID = 33136, - RK818_ID = 33152, + 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, }; -struct rk808 { - struct device *dev; - struct regmap_irq_chip_data *irq_data; - struct regmap *regmap; - long variant; - const struct regmap_config *regmap_cfg; - const struct regmap_irq_chip *regmap_irq_chip; +enum { + LWTUNNEL_IP_OPT_VXLAN_UNSPEC = 0, + LWTUNNEL_IP_OPT_VXLAN_GBP = 1, + __LWTUNNEL_IP_OPT_VXLAN_MAX = 2, }; -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]; +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, }; -struct ata_show_ering_arg { - char *buf; - int written; +enum lwtunnel_ip6_t { + LWTUNNEL_IP6_UNSPEC = 0, + LWTUNNEL_IP6_ID = 1, + LWTUNNEL_IP6_DST = 2, + LWTUNNEL_IP6_SRC = 3, + LWTUNNEL_IP6_HOPLIMIT = 4, + LWTUNNEL_IP6_TC = 5, + LWTUNNEL_IP6_FLAGS = 6, + LWTUNNEL_IP6_PAD = 7, + LWTUNNEL_IP6_OPTS = 8, + __LWTUNNEL_IP6_MAX = 9, }; -enum nand_ecc_legacy_mode { - NAND_ECC_INVALID = 0, - NAND_ECC_NONE = 1, - NAND_ECC_SOFT = 2, - NAND_ECC_SOFT_BCH = 3, - NAND_ECC_HW = 4, - NAND_ECC_HW_SYNDROME = 5, - NAND_ECC_ON_DIE = 6, +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 nand_op_parser_ctx { - const struct nand_op_instr *instrs; - unsigned int ninstrs; - struct nand_subop subop; +struct erspan_metadata { + int version; + union { + __be32 index; + struct erspan_md2 md2; + } u; }; -struct nand_ecc_req_tweak_ctx { - struct nand_page_io_req orig_req; - struct nand_device *nand; - unsigned int page_buffer_size; - unsigned int oob_buffer_size; - void *spare_databuf; - void *spare_oobbuf; - bool bounce_data; - bool bounce_oob; +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 nand_ecc_sw_hamming_conf { - struct nand_ecc_req_tweak_ctx req_ctx; - unsigned int code_size; - u8 *calc_buf; - u8 *code_buf; - unsigned int sm_order; +struct vxlan_metadata { + u32 gbp; }; -struct ubi_work { - struct list_head list; - int (*func)(struct ubi_device *, struct ubi_work *, int); - struct ubi_wl_entry *e; - int vol_id; - int lnum; - int torture; +struct udp_iter_state { + struct seq_net_private p; + int bucket; }; -struct bcm_ptp_private; +typedef u32 inet6_ehashfn_t(const struct net *, const struct in6_addr *, const u16, const struct in6_addr *, const __be16); -struct bcm54xx_phy_priv { - u64 *stats; - struct bcm_ptp_private *ptp; - int wake_irq; - bool wake_irq_enabled; +enum devlink_dpipe_match_type { + DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0, }; -struct bcm54616s_phy_priv { - bool mode_1000bx_en; +enum devlink_dpipe_action_type { + DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0, }; -struct can_rx_offload_cb { - u32 timestamp; -}; +struct devlink_dpipe_table_ops; -struct can_rx_offload { - struct net_device *dev; - struct sk_buff * (*mailbox_read)(struct can_rx_offload *, unsigned int, u32 *, bool); - struct sk_buff_head skb_queue; - struct sk_buff_head skb_irq_queue; - u32 skb_queue_len_max; - unsigned int mb_first; - unsigned int mb_last; +struct devlink_dpipe_table { + void *priv; + struct list_head list; + const char *name; + bool counters_enabled; + bool counter_control_extern; + bool resource_valid; long: 32; - struct napi_struct napi; - bool inc; + u64 resource_id; + u64 resource_units; + struct devlink_dpipe_table_ops *table_ops; + struct callback_head rcu; long: 32; }; -struct ipq806x_gmac { - struct platform_device *pdev; - struct regmap *nss_common; - struct regmap *qsgmii_csr; - uint32_t id; - struct clk *core_clk; - phy_interface_t phy_mode; +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 cdc_state { - struct usb_cdc_header_desc *header; - struct usb_cdc_union_desc *u; - struct usb_cdc_ether_desc *ether; - struct usb_interface *control; - struct usb_interface *data; +struct devlink_dpipe_dump_ctx { + struct genl_info *info; + enum devlink_command cmd; + struct sk_buff *skb; + struct nlattr *nest; + void *hdr; }; -typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); +struct devlink_dpipe_value; -struct ignore_entry { - u16 vid; - u16 pid; - u16 bcdmin; - u16 bcdmax; +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; + long: 32; }; -struct focaltech_finger_state { - bool active; - bool valid; - unsigned int x; - unsigned int y; -}; +struct devlink_dpipe_action; -struct focaltech_hw_state { - struct focaltech_finger_state fingers[5]; - unsigned int width; - bool pressed; +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 focaltech_data { - unsigned int x_max; - unsigned int y_max; - struct focaltech_hw_state state; +struct devlink_dpipe_action { + enum devlink_dpipe_action_type type; + unsigned int header_index; + struct devlink_dpipe_header *header; + unsigned int field_id; }; -struct sun6i_rtc_clk_data; +struct devlink_dpipe_match { + enum devlink_dpipe_match_type type; + unsigned int header_index; + struct devlink_dpipe_header *header; + unsigned int field_id; +}; -struct sun6i_rtc_dev { - struct rtc_device *rtc; - const struct sun6i_rtc_clk_data *data; - void *base; - int irq; - time64_t alarm; - unsigned long flags; - struct clk_hw hw; - struct clk_hw *int_osc; - struct clk *losc; - struct clk *ext_losc; - spinlock_t lock; +struct mcpm_sync_struct { + struct { + s8 cpu; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + } cpus[4]; + s8 cluster; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + s8 inbound; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct sun6i_rtc_clk_data { - unsigned long rc_osc_rate; - unsigned int fixed_prescaler: 16; - unsigned int has_prescaler: 1; - unsigned int has_out_clk: 1; - unsigned int has_losc_en: 1; - unsigned int has_auto_swt: 1; +struct sync_struct { + struct mcpm_sync_struct clusters[4]; }; -struct uniphier_i2c_priv { - struct completion comp; - struct i2c_adapter adap; - void *membase; - struct clk *clk; - unsigned int busy_cnt; - unsigned int clk_cycle; +struct fsl_mmdc_devtype_data { + unsigned int flags; }; -struct reset_reg_mask { - u32 rst_src_en_mask; - u32 sw_mstr_rst_mask; +struct mmdc_pmu { + struct pmu pmu; + void *mmdc_base; + cpumask_t cpu; + long: 32; + struct hrtimer hrtimer; + unsigned int active_events; + int id; + struct device *dev; + struct perf_event *mmdc_events[6]; + struct hlist_node node; + struct fsl_mmdc_devtype_data *devtype_data; + struct clk *mmdc_ipg_clk; + long: 32; }; -struct sp805_wdt { - struct watchdog_device wdd; - spinlock_t lock; - void *base; - struct clk *clk; - u64 rate; - struct amba_device *adev; - unsigned int load_val; +struct idle_statedata { + u32 cpu_state; + u32 mpu_logic_state; + u32 mpu_state; + u32 mpu_state_vote; }; -enum scmi_power_scale { - SCMI_POWER_BOGOWATTS = 0, - SCMI_POWER_MILLIWATTS = 1, - SCMI_POWER_MICROWATTS = 2, +enum proc_cn_event { + PROC_EVENT_NONE = 0, + PROC_EVENT_FORK = 1, + PROC_EVENT_EXEC = 2, + PROC_EVENT_UID = 4, + PROC_EVENT_GID = 64, + PROC_EVENT_SID = 128, + PROC_EVENT_PTRACE = 256, + PROC_EVENT_COMM = 512, + PROC_EVENT_NONZERO_EXIT = 536870912, + PROC_EVENT_COREDUMP = 1073741824, + PROC_EVENT_EXIT = 2147483648, }; -struct scmi_perf_proto_ops { - int (*limits_set)(const struct scmi_protocol_handle *, u32, u32, u32); - int (*limits_get)(const struct scmi_protocol_handle *, u32, u32 *, u32 *); - int (*level_set)(const struct scmi_protocol_handle *, u32, u32, bool); - int (*level_get)(const struct scmi_protocol_handle *, u32, u32 *, bool); - int (*device_domain_id)(struct device *); - int (*transition_latency_get)(const struct scmi_protocol_handle *, struct device *); - int (*device_opps_add)(const struct scmi_protocol_handle *, struct device *); - int (*freq_set)(const struct scmi_protocol_handle *, u32, unsigned long, bool); - int (*freq_get)(const struct scmi_protocol_handle *, u32, unsigned long *, bool); - int (*est_power_get)(const struct scmi_protocol_handle *, u32, unsigned long *, unsigned long *); - bool (*fast_switch_possible)(const struct scmi_protocol_handle *, struct device *); - enum scmi_power_scale (*power_scale_get)(const struct scmi_protocol_handle *); +struct platform_s2idle_ops { + int (*begin)(); + int (*prepare)(); + int (*prepare_late)(); + void (*check)(); + bool (*wake)(); + void (*restore_early)(); + void (*restore)(); + void (*end)(); }; -struct scmi_data { - int domain_id; - int nr_opp; - struct device *cpu_dev; - cpumask_var_t opp_shared_cpus; +enum { + TEST_NONE = 0, + TEST_CORE = 1, + TEST_CPUS = 2, + TEST_PLATFORM = 3, + TEST_DEVICES = 4, + TEST_FREEZER = 5, + __TEST_AFTER_LAST = 6, }; -struct sdhci_tegra_soc_data { - const struct sdhci_pltfm_data *pdata; - long: 32; - u64 dma_mask; - u32 nvquirks; - u8 min_tap_delay; - u8 max_tap_delay; +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 sdhci_tegra_autocal_offsets { - u32 pull_up_3v3; - u32 pull_down_3v3; - u32 pull_up_3v3_timeout; - u32 pull_down_3v3_timeout; - u32 pull_up_1v8; - u32 pull_down_1v8; - u32 pull_up_1v8_timeout; - u32 pull_down_1v8_timeout; - u32 pull_up_sdr104; - u32 pull_down_sdr104; - u32 pull_up_hs400; - u32 pull_down_hs400; +struct kcmp_epoll_slot { + __u32 efd; + __u32 tfd; + __u32 toff; }; -struct sdhci_tegra { - const struct sdhci_tegra_soc_data *soc_data; - struct gpio_desc *power_gpio; - struct clk *tmclk; - bool ddr_signaling; - bool pad_calib_required; - bool pad_control_available; - struct reset_control *rst; - struct pinctrl *pinctrl_sdmmc; - struct pinctrl_state *pinctrl_state_3v3; - struct pinctrl_state *pinctrl_state_1v8; - struct pinctrl_state *pinctrl_state_3v3_drv; - struct pinctrl_state *pinctrl_state_1v8_drv; - struct sdhci_tegra_autocal_offsets autocal_offsets; - ktime_t last_calib; - u32 default_tap; - u32 default_trim; - u32 dqs_trim; - bool enable_hwcq; - unsigned long curr_clk_rate; - u8 tuned_tap_delay; - u32 stream_id; +struct trace_mark { + unsigned long long val; + char sym; long: 32; }; -typedef struct { - u32 version; - u32 num_entries; - u32 desc_size; - u32 flags; - efi_memory_desc_t entry[0]; -} efi_memory_attributes_table_t; +enum trace_iter_flags { + TRACE_FILE_LAT_FMT = 1, + TRACE_FILE_ANNOTATE = 2, + TRACE_FILE_TIME_IN_NS = 4, +}; -struct supplier_bindings { - struct device_node * (*parse_prop)(struct device_node *, const char *, int); - bool optional; - bool node_not_dev; +struct bputs_entry { + struct trace_entry ent; + unsigned long ip; + const char *str; }; -struct board_staging_clk { - const char *clk; - const char *con_id; - const char *dev_id; +struct bprint_entry { + struct trace_entry ent; + unsigned long ip; + const char *fmt; + u32 buf[0]; }; -struct board_staging_dev { - struct platform_device *pdev; - const struct board_staging_clk *clocks; - unsigned int nclocks; - const char *domain; +struct print_entry { + struct trace_entry ent; + unsigned long ip; + char buf[0]; }; -struct qcom_hwspinlock_of_data { - u32 offset; - u32 stride; - const struct regmap_config *regmap_config; +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 tee_desc; +struct stack_entry { + struct trace_entry ent; + int size; + unsigned long caller[0]; +}; -struct tee_device { - char name[32]; - const struct tee_desc *desc; - int id; - unsigned int flags; +struct userstack_entry { + struct trace_entry ent; + unsigned int tgid; + unsigned long caller[8]; +}; + +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; long: 32; - struct device dev; - struct cdev cdev; - size_t num_users; - struct completion c_no_users; - struct mutex mutex; - struct idr idr; - struct tee_shm_pool *pool; +}; + +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; long: 32; }; -struct tee_driver_ops; +struct timerlat_entry { + struct trace_entry ent; + unsigned int seqnum; + int context; + u64 timer_latency; +}; -struct tee_desc { - const char *name; - const struct tee_driver_ops *ops; - struct module *owner; - u32 flags; +struct raw_data_entry { + struct trace_entry ent; + unsigned int id; + char buf[0]; }; -struct tee_driver_ops { - void (*get_version)(struct tee_device *, struct tee_ioctl_version_data *); - int (*open)(struct tee_context *); - void (*release)(struct tee_context *); - int (*open_session)(struct tee_context *, struct tee_ioctl_open_session_arg *, struct tee_param *); - int (*close_session)(struct tee_context *, u32); - int (*invoke_func)(struct tee_context *, struct tee_ioctl_invoke_arg *, struct tee_param *); - int (*cancel_req)(struct tee_context *, u32, u32); - int (*supp_recv)(struct tee_context *, u32 *, u32 *, struct tee_param *); - int (*supp_send)(struct tee_context *, u32, u32, struct tee_param *); - int (*shm_register)(struct tee_context *, struct tee_shm *, struct page **, size_t, unsigned long); - int (*shm_unregister)(struct tee_context *, struct tee_shm *); +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; }; -struct genpool_data_align { - int align; +struct trace_print_flags_u64 { + unsigned long long mask; + const char *name; + long: 32; }; enum { - IF_LINK_MODE_DEFAULT = 0, - IF_LINK_MODE_DORMANT = 1, - IF_LINK_MODE_TESTING = 2, + EVENT_FILE_FL_ENABLED_BIT = 0, + EVENT_FILE_FL_RECORDED_CMD_BIT = 1, + EVENT_FILE_FL_RECORDED_TGID_BIT = 2, + EVENT_FILE_FL_FILTERED_BIT = 3, + EVENT_FILE_FL_NO_SET_FILTER_BIT = 4, + EVENT_FILE_FL_SOFT_MODE_BIT = 5, + EVENT_FILE_FL_SOFT_DISABLED_BIT = 6, + EVENT_FILE_FL_TRIGGER_MODE_BIT = 7, + EVENT_FILE_FL_TRIGGER_COND_BIT = 8, + EVENT_FILE_FL_PID_FILTER_BIT = 9, + EVENT_FILE_FL_WAS_ENABLED_BIT = 10, + EVENT_FILE_FL_FREED_BIT = 11, }; -enum lw_bits { - LW_URGENT = 0, +enum event_command_flags { + EVENT_CMD_FL_POST_TRIGGER = 1, + EVENT_CMD_FL_NEEDS_REC = 2, }; -enum { - SK_DIAG_BPF_STORAGE_REQ_NONE = 0, - SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, - __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, +struct enable_trigger_data { + struct trace_event_file *file; + bool enable; + bool hist; }; enum { - SK_DIAG_BPF_STORAGE_REP_NONE = 0, - SK_DIAG_BPF_STORAGE = 1, - __SK_DIAG_BPF_STORAGE_REP_MAX = 2, + BPF_TASK_ITER_ALL_PROCS = 0, + BPF_TASK_ITER_ALL_THREADS = 1, + BPF_TASK_ITER_PROC_THREADS = 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, + BTF_TRACING_TYPE_TASK = 0, + BTF_TRACING_TYPE_FILE = 1, + BTF_TRACING_TYPE_VMA = 2, + MAX_BTF_TRACING_TYPE = 3, }; -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); +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_sk_storage_delete_tracing)(struct bpf_map *, struct sock *); +typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64); -struct bpf_sk_storage_diag { - u32 nr_maps; - struct bpf_map *maps[0]; +struct bpf_iter__task { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; }; -struct bpf_iter_seq_sk_storage_map_info { - struct bpf_map *map; - unsigned int bucket_id; - unsigned int skip_elems; +struct bpf_iter_seq_task_common { + struct pid_namespace *ns; + enum bpf_iter_task_type type; + u32 pid; + u32 pid_visiting; }; -struct bpf_iter__bpf_sk_storage_map { +struct bpf_iter__task_file { union { struct bpf_iter_meta *meta; }; union { - struct bpf_map *map; + struct task_struct *task; + }; + u32 fd; + long: 32; + 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 sock *sk; + struct bpf_iter_meta *meta; }; union { - void *value; + struct task_struct *task; + }; + union { + struct vm_area_struct *vma; }; }; -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 bpf_iter_seq_task_vma_info { + struct bpf_iter_seq_task_common common; + struct task_struct *task; + struct mm_struct *mm; + struct vm_area_struct *vma; + u32 tid; + unsigned long prev_vm_start; + unsigned long prev_vm_end; +}; + +struct bpf_iter_task_vma { + __u64 __opaque[1]; +}; + +struct bpf_iter_task_vma_kern_data; + +struct bpf_iter_task_vma_kern { + struct bpf_iter_task_vma_kern_data *data; + long: 32; +}; + +struct bpf_iter_task_vma_kern_data { + struct task_struct *task; + struct mm_struct *mm; + struct mmap_unlock_irq_work *work; + struct vma_iterator vmi; +}; + +struct bpf_iter_css_task { + __u64 __opaque[1]; +}; + +struct bpf_iter_css_task_kern { + struct css_task_iter *css_it; + long: 32; +}; + +struct bpf_iter_task { + __u64 __opaque[3]; +}; + +struct bpf_iter_task_kern { + struct task_struct *task; + struct task_struct *pos; + unsigned int flags; + long: 32; +}; + +struct bpf_iter_seq_task_info { + struct bpf_iter_seq_task_common common; + u32 tid; +}; + +enum vmpressure_levels { + VMPRESSURE_LOW = 0, + VMPRESSURE_MEDIUM = 1, + VMPRESSURE_CRITICAL = 2, + VMPRESSURE_NUM_LEVELS = 3, +}; + +enum vmpressure_modes { + VMPRESSURE_NO_PASSTHROUGH = 0, + VMPRESSURE_HIERARCHY = 1, + VMPRESSURE_LOCAL = 2, + VMPRESSURE_NUM_MODES = 3, +}; + +struct vmpressure_event { + struct eventfd_ctx *efd; + enum vmpressure_levels level; + enum vmpressure_modes mode; + struct list_head node; +}; + +struct stat { + unsigned long st_dev; + unsigned long st_ino; + unsigned short st_mode; + unsigned short st_nlink; + unsigned short st_uid; + unsigned short st_gid; + unsigned long st_rdev; + unsigned long st_size; + unsigned long st_blksize; + unsigned long st_blocks; + unsigned long st_atime; + unsigned long st_atime_nsec; + unsigned long st_mtime; + unsigned long st_mtime_nsec; + unsigned long st_ctime; + unsigned long st_ctime_nsec; + unsigned long __unused4; + unsigned long __unused5; +}; + +struct stat64 { + unsigned long long st_dev; + unsigned char __pad0[4]; + unsigned long __st_ino; + unsigned int st_mode; + unsigned int st_nlink; + unsigned long st_uid; + unsigned long st_gid; + unsigned long long st_rdev; + unsigned char __pad3[4]; + long: 32; + long long st_size; + unsigned long st_blksize; + long: 32; + unsigned long long st_blocks; + unsigned long st_atime; + unsigned long st_atime_nsec; + unsigned long st_mtime; + unsigned long st_mtime_nsec; + unsigned long st_ctime; + unsigned long st_ctime_nsec; + unsigned long long st_ino; +}; + +struct statx_timestamp { + __s64 tv_sec; + __u32 tv_nsec; + __s32 __reserved; +}; + +struct statx { + __u32 stx_mask; + __u32 stx_blksize; + __u64 stx_attributes; + __u32 stx_nlink; + __u32 stx_uid; + __u32 stx_gid; + __u16 stx_mode; + __u16 __spare0[1]; + __u64 stx_ino; + __u64 stx_size; + __u64 stx_blocks; + __u64 stx_attributes_mask; + struct statx_timestamp stx_atime; + struct statx_timestamp stx_btime; + struct statx_timestamp stx_ctime; + struct statx_timestamp stx_mtime; + __u32 stx_rdev_major; + __u32 stx_rdev_minor; + __u32 stx_dev_major; + __u32 stx_dev_minor; + __u64 stx_mnt_id; + __u32 stx_dio_mem_align; + __u32 stx_dio_offset_align; + __u64 __spare3[12]; }; -struct module_reply_data { - struct ethnl_reply_data base; - struct ethtool_module_power_mode_params power; +struct iomap_swapfile_info { + struct iomap iomap; + struct swap_info_struct *sis; + long: 32; + uint64_t lowest_ppage; + uint64_t highest_ppage; + unsigned long nr_pages; + int nr_extents; + struct file *file; + long: 32; }; -struct devinet_sysctl_table { - struct ctl_table_header *sysctl_header; - struct ctl_table devinet_vars[34]; +typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); + +struct shortname_info { + unsigned char lower: 1; + unsigned char upper: 1; + unsigned char valid: 1; }; -enum { - IFLA_INET_UNSPEC = 0, - IFLA_INET_CONF = 1, - __IFLA_INET_MAX = 2, +typedef int (*nlm_host_match_fn_t)(void *, struct nlm_host *); + +struct ubifs_gced_idx_leb { + struct list_head list; + int lnum; + int unmap; }; -struct inet_fill_args { - u32 portid; - u32 seq; - int event; - unsigned int flags; - int netnsid; - int ifindex; +struct ubifs_auth_node { + struct ubifs_ch ch; + __u8 hmac[0]; }; -struct in_validator_info { - __be32 ivi_addr; - struct in_device *ivi_dev; - struct netlink_ext_ack *extack; +struct persistent_ram_buffer { + uint32_t sig; + atomic_t start; + atomic_t size; + uint8_t data[0]; }; -struct xfrm_if_decode_session_result; +struct rs_codec; -struct xfrm_if_cb { - bool (*decode_session)(struct sk_buff *, unsigned short, struct xfrm_if_decode_session_result *); +struct rs_control { + struct rs_codec *codec; + uint16_t buffers[0]; }; -struct xfrm_if_decode_session_result { - struct net *net; - u32 if_id; +struct rs_codec { + int mm; + int nn; + uint16_t *alpha_to; + uint16_t *index_of; + uint16_t *genpoly; + int nroots; + int fcr; + int prim; + int iprim; + int gfpoly; + int (*gffunc)(int); + int users; + struct list_head list; }; -enum { - XFRM_POLICY_TYPE_MAIN = 0, - XFRM_POLICY_TYPE_SUB = 1, - XFRM_POLICY_TYPE_MAX = 2, - XFRM_POLICY_TYPE_ANY = 255, +struct vfs_cap_data { + __le32 magic_etc; + struct { + __le32 permitted; + __le32 inheritable; + } data[2]; }; -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 vfs_ns_cap_data { + __le32 magic_etc; + struct { + __le32 permitted; + __le32 inheritable; + } data[2]; + __le32 rootid; }; -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 cpu_vfs_cap_data { + __u32 magic_etc; + kuid_t rootid; + kernel_cap_t permitted; + kernel_cap_t inheritable; }; -struct xfrm_pol_inexact_key { - possible_net_t net; - u32 if_id; - u16 family; - u8 dir; - u8 type; +struct lzo_ctx { + void *lzo_comp_mem; }; -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; +enum { + BLK_MQ_UNIQUE_TAG_BITS = 16, + BLK_MQ_UNIQUE_TAG_MASK = 65535, }; -struct sk_buff_fclones { - struct sk_buff skb1; - struct sk_buff skb2; - refcount_t fclone_ref; - long: 32; +struct bt_iter_data { + struct blk_mq_hw_ctx *hctx; + struct request_queue *q; + busy_tag_iter_fn *fn; + void *data; + bool reserved; }; -struct ip6_mh { - __u8 ip6mh_proto; - __u8 ip6mh_hdrlen; - __u8 ip6mh_type; - __u8 ip6mh_reserved; - __u16 ip6mh_cksum; - __u8 data[0]; +struct bt_tags_iter_data { + struct blk_mq_tags *tags; + busy_tag_iter_fn *fn; + void *data; + unsigned int flags; }; -struct xfrm_pol_inexact_candidates { - struct hlist_head *res[4]; -}; +typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t); -struct xfrm_flo { - struct dst_entry *dst_orig; - u8 flags; -}; +typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *); -struct xfrmk_spdinfo { - u32 incnt; - u32 outcnt; - u32 fwdcnt; - u32 inscnt; - u32 outscnt; - u32 fwdscnt; - u32 spdhcnt; - u32 spdhmcnt; -}; +typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(struct gendisk *, struct blkcg *, gfp_t); -struct xfrm_policy_walk { - struct xfrm_policy_walk_entry walk; - u8 type; - u32 seq; -}; +typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *); -struct seg6_local_lwt; +typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *); -struct seg6_local_lwtunnel_ops { - int (*build_state)(struct seg6_local_lwt *, const void *, struct netlink_ext_ack *); - void (*destroy_state)(struct seg6_local_lwt *); -}; +typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *); -struct seg6_action_desc { - int action; - unsigned long attrs; - unsigned long optattrs; - int (*input)(struct sk_buff *, struct seg6_local_lwt *); - int static_headroom; - struct seg6_local_lwtunnel_ops slwt_ops; -}; +typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *); -struct seg6_flavors_info { - __u32 flv_ops; - __u8 lcblock_bits; - __u8 lcnode_func_bits; -}; +typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *); -struct pcpu_seg6_local_counters; +typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *); -struct seg6_local_lwt { - int action; - struct ipv6_sr_hdr *srh; - int table; - struct in_addr nh4; - struct in6_addr nh6; - int iif; - int oif; - struct bpf_lwt_prog bpf; - struct seg6_flavors_info flv_info; - struct pcpu_seg6_local_counters __attribute__((btf_type_tag("percpu"))) *pcpu_counters; - int headroom; - struct seg6_action_desc *desc; - unsigned long parsed_optattrs; +struct blkcg_policy { + int plid; + struct cftype *dfl_cftypes; + struct cftype *legacy_cftypes; + blkcg_pol_alloc_cpd_fn *cpd_alloc_fn; + blkcg_pol_free_cpd_fn *cpd_free_fn; + blkcg_pol_alloc_pd_fn *pd_alloc_fn; + blkcg_pol_init_pd_fn *pd_init_fn; + blkcg_pol_online_pd_fn *pd_online_fn; + blkcg_pol_offline_pd_fn *pd_offline_fn; + blkcg_pol_free_pd_fn *pd_free_fn; + blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn; + blkcg_pol_stat_pd_fn *pd_stat_fn; }; -struct pcpu_seg6_local_counters { - u64_stats_t packets; - u64_stats_t bytes; - u64_stats_t errors; - struct u64_stats_sync syncp; - long: 32; +enum bfqq_expiration { + BFQQE_TOO_IDLE = 0, + BFQQE_BUDGET_TIMEOUT = 1, + BFQQE_BUDGET_EXHAUSTED = 2, + BFQQE_NO_MORE_REQUESTS = 3, + BFQQE_PREEMPTED = 4, }; -struct seg6_action_param { - int (*parse)(struct nlattr **, struct seg6_local_lwt *, struct netlink_ext_ack *); - int (*put)(struct sk_buff *, struct seg6_local_lwt *); - int (*cmp)(struct seg6_local_lwt *, struct seg6_local_lwt *); - void (*destroy)(struct seg6_local_lwt *); +enum blkg_rwstat_type { + BLKG_RWSTAT_READ = 0, + BLKG_RWSTAT_WRITE = 1, + BLKG_RWSTAT_SYNC = 2, + BLKG_RWSTAT_ASYNC = 3, + BLKG_RWSTAT_DISCARD = 4, + BLKG_RWSTAT_NR = 5, + BLKG_RWSTAT_TOTAL = 5, }; -enum { - SEG6_LOCAL_UNSPEC = 0, - SEG6_LOCAL_ACTION = 1, - SEG6_LOCAL_SRH = 2, - SEG6_LOCAL_TABLE = 3, - SEG6_LOCAL_NH4 = 4, - SEG6_LOCAL_NH6 = 5, - SEG6_LOCAL_IIF = 6, - SEG6_LOCAL_OIF = 7, - SEG6_LOCAL_BPF = 8, - SEG6_LOCAL_VRFTABLE = 9, - SEG6_LOCAL_COUNTERS = 10, - SEG6_LOCAL_FLAVORS = 11, - __SEG6_LOCAL_MAX = 12, +struct bfq_group_data { + struct blkcg_policy_data pd; + unsigned int weight; }; -enum { - SEG6_LOCAL_FLV_OP_UNSPEC = 0, - SEG6_LOCAL_FLV_OP_PSP = 1, - SEG6_LOCAL_FLV_OP_USP = 2, - SEG6_LOCAL_FLV_OP_USD = 3, - SEG6_LOCAL_FLV_OP_NEXT_CSID = 4, - __SEG6_LOCAL_FLV_OP_MAX = 5, +struct blkg_conf_ctx { + char *input; + char *body; + struct block_device *bdev; + struct blkcg_gq *blkg; }; -enum seg6_local_flv_action { - SEG6_LOCAL_FLV_ACT_UNSPEC = 0, - SEG6_LOCAL_FLV_ACT_END = 1, - SEG6_LOCAL_FLV_ACT_PSP = 2, - SEG6_LOCAL_FLV_ACT_USP = 3, - SEG6_LOCAL_FLV_ACT_USD = 4, - __SEG6_LOCAL_FLV_ACT_MAX = 5, +struct blkg_rwstat_sample { + u64 cnt[5]; }; -enum seg6_local_pktinfo { - SEG6_LOCAL_PKTINFO_NOHDR = 0, - SEG6_LOCAL_PKTINFO_SL_ZERO = 1, - SEG6_LOCAL_PKTINFO_SL_ONE = 2, - SEG6_LOCAL_PKTINFO_SL_MORE = 3, - __SEG6_LOCAL_PKTINFO_MAX = 4, +struct io_uring_rsrc_update { + __u32 offset; + __u32 resv; + __u64 data; }; -enum { - SEG6_LOCAL_BPF_PROG_UNSPEC = 0, - SEG6_LOCAL_BPF_PROG = 1, - SEG6_LOCAL_BPF_PROG_NAME = 2, - __SEG6_LOCAL_BPF_PROG_MAX = 3, +struct reciprocal_value_adv { + u32 m; + u8 sh; + u8 exp; + bool is_wide_m; }; -enum seg6_end_dt_mode { - DT_INVALID_MODE = -22, - DT_LEGACY_MODE = 0, - DT_VRF_MODE = 1, +struct armctrl_ic { + void *base; + void *pending[3]; + void *enable[3]; + void *disable[3]; + struct irq_domain *domain; }; -enum { - SEG6_LOCAL_CNT_UNSPEC = 0, - SEG6_LOCAL_CNT_PAD = 1, - SEG6_LOCAL_CNT_PACKETS = 2, - SEG6_LOCAL_CNT_BYTES = 3, - SEG6_LOCAL_CNT_ERRORS = 4, - __SEG6_LOCAL_CNT_MAX = 5, -}; +struct bcm7038_l1_cpu; -enum { - SEG6_LOCAL_FLV_UNSPEC = 0, - SEG6_LOCAL_FLV_OPERATION = 1, - SEG6_LOCAL_FLV_LCBLOCK_BITS = 2, - SEG6_LOCAL_FLV_LCNODE_FN_BITS = 3, - __SEG6_LOCAL_FLV_MAX = 4, +struct bcm7038_l1_chip { + raw_spinlock_t lock; + unsigned int n_words; + struct irq_domain *domain; + struct bcm7038_l1_cpu *cpus[16]; + struct list_head list; + u32 wake_mask[8]; + u32 irq_fwd_mask[8]; + u8 affinity[256]; }; -struct seg6_local_counters { - __u64 packets; - __u64 bytes; - __u64 errors; +struct bcm7038_l1_cpu { + void *map_base; + u32 mask_cache[0]; }; -struct seg6_end_dt_info { - enum seg6_end_dt_mode mode; - struct net *net; - int vrf_ifindex; - int vrf_table; - u16 family; +struct intmux_irqchip_data { + u32 saved_reg; + int chanidx; + int irq; + struct irq_domain *domain; }; -struct compress_format { - unsigned char magic[2]; - const char *name; - decompress_fn decompressor; +struct intmux_data { + raw_spinlock_t lock; + void *regs; + struct clk *ipg_clk; + int channum; + struct intmux_irqchip_data irqchip_data[0]; }; -struct sd_flag_debug { - unsigned int meta_flags; - char *name; +struct phy_meson8b_usb2_match_data { + bool host_enable_aca; }; -typedef const struct cpumask * (*sched_domain_mask_f)(int); - -typedef int (*sched_domain_flags_f)(); - -struct sd_data { - struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; - struct sched_domain_shared * __attribute__((btf_type_tag("percpu"))) *sds; - struct sched_group * __attribute__((btf_type_tag("percpu"))) *sg; - struct sched_group_capacity * __attribute__((btf_type_tag("percpu"))) *sgc; +struct phy_meson8b_usb2_priv { + struct regmap *regmap; + enum usb_dr_mode dr_mode; + struct clk *clk_usb_general; + struct clk *clk_usb; + struct reset_control *reset; + const struct phy_meson8b_usb2_match_data *match; }; -struct sched_domain_topology_level { - sched_domain_mask_f mask; - sched_domain_flags_f sd_flags; - int flags; - int numa_level; - struct sd_data data; - char *name; -}; +struct exynos5_usbdrd_phy_config; -struct housekeeping { - cpumask_var_t cpumasks[9]; - unsigned long flags; +struct exynos5_usbdrd_phy_drvdata { + const struct exynos5_usbdrd_phy_config *phy_cfg; + const struct phy_ops *phy_ops; + u32 pmu_offset_usbdrd0_phy; + u32 pmu_offset_usbdrd1_phy; + bool has_common_clk_gate; }; -struct sugov_tunables { - struct gov_attr_set attr_set; - unsigned int rate_limit_us; -}; +struct phy_usb_instance; -struct sugov_policy; +struct exynos5_usbdrd_phy; -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; - long: 32; - u64 last_update; - unsigned long util; - unsigned long bw_dl; - unsigned long saved_idle_calls; - long: 32; +struct exynos5_usbdrd_phy_config { + u32 id; + void (*phy_isol)(struct phy_usb_instance *, u32); + void (*phy_init)(struct exynos5_usbdrd_phy *); + unsigned int (*set_refclk)(struct phy_usb_instance *); }; -struct sugov_policy { - struct cpufreq_policy *policy; - struct sugov_tunables *tunables; - struct list_head tunables_hook; - raw_spinlock_t update_lock; - long: 32; - 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; +struct phy_usb_instance { + struct phy *phy; + u32 index; + struct regmap *reg_pmu; + u32 pmu_offset; + const struct exynos5_usbdrd_phy_config *phy_cfg; }; -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, +struct exynos5_usbdrd_phy { + struct device *dev; + void *reg_phy; + struct clk *clk; + struct clk *pipeclk; + struct clk *utmiclk; + struct clk *itpclk; + const struct exynos5_usbdrd_phy_drvdata *drv_data; + struct phy_usb_instance phys[2]; + u32 extrefclk; + struct clk *ref_clk; + struct regulator *vbus; + struct regulator *vbus_boost; }; -enum { - __SD_BALANCE_NEWIDLE = 0, - __SD_BALANCE_EXEC = 1, - __SD_BALANCE_FORK = 2, - __SD_BALANCE_WAKE = 3, - __SD_WAKE_AFFINE = 4, - __SD_ASYM_CPUCAPACITY = 5, - __SD_ASYM_CPUCAPACITY_FULL = 6, - __SD_SHARE_CPUCAPACITY = 7, - __SD_SHARE_PKG_RESOURCES = 8, - __SD_SERIALIZE = 9, - __SD_ASYM_PACKING = 10, - __SD_PREFER_SIBLING = 11, - __SD_OVERLAP = 12, - __SD_NUMA = 13, - __SD_FLAG_CNT = 14, +enum exynos5_usbdrd_phy_id { + EXYNOS5_DRDPHY_UTMI = 0, + EXYNOS5_DRDPHY_PIPE3 = 1, + EXYNOS5_DRDPHYS_NUM = 2, }; -enum s_alloc { - sa_rootdomain = 0, - sa_sd = 1, - sa_sd_storage = 2, - sa_none = 3, +struct sgpio_properties { + int arch; + int flags; + u8 regoff[10]; }; -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 { + REG_INPUT_DATA = 0, + REG_PORT_CONFIG = 1, + REG_PORT_ENABLE = 2, + REG_SIO_CONFIG = 3, + REG_SIO_CLOCK = 4, + REG_INT_POLARITY = 5, + REG_INT_TRIGGER = 6, + REG_INT_ACK = 7, + REG_INT_ENABLE = 8, + REG_INT_IDENT = 9, + MAXREG = 10, }; -enum membarrier_cmd_flag { - MEMBARRIER_CMD_FLAG_CPU = 1, +enum { + SGPIO_FLAGS_HAS_IRQ = 1, }; enum { - MEMBARRIER_FLAG_SYNC_CORE = 1, - MEMBARRIER_FLAG_RSEQ = 2, + SGPIO_ARCH_LUTON = 0, + SGPIO_ARCH_OCELOT = 1, + SGPIO_ARCH_SPARX5 = 2, }; -struct asym_cap_data { - struct list_head link; - unsigned long capacity; - unsigned long cpus[0]; +struct sgpio_priv; + +struct sgpio_bank { + struct sgpio_priv *priv; + bool is_input; + struct gpio_chip gpio; + struct pinctrl_desc pctl_desc; }; -struct s_data { - struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; - struct root_domain *rd; +struct sgpio_priv { + struct device *dev; + struct sgpio_bank in; + struct sgpio_bank out; + u32 bitcount; + u32 ports; + u32 clock; + struct regmap *regs; + const struct sgpio_properties *properties; + spinlock_t lock; + struct mutex poll_lock; }; -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, +struct sgpio_port_addr { + u8 port; + u8 bit; }; -enum { - RB_LEN_TIME_EXTEND = 8, - RB_LEN_TIME_STAMP = 8, +enum iproc_pinconf_ctrl_type { + IOCTRL_TYPE_AON = 1, + IOCTRL_TYPE_CDRU = 2, + IOCTRL_TYPE_INVALID = 3, }; -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 iproc_pinconf_param { + IPROC_PINCONF_DRIVE_STRENGTH = 0, + IPROC_PINCONF_BIAS_DISABLE = 1, + IPROC_PINCONF_BIAS_PULL_UP = 2, + IPROC_PINCONF_BIAS_PULL_DOWN = 3, + IPROC_PINCON_MAX = 4, }; -enum { - RB_ADD_STAMP_NONE = 0, - RB_ADD_STAMP_EXTEND = 2, - RB_ADD_STAMP_ABSOLUTE = 4, - RB_ADD_STAMP_FORCE = 8, +struct iproc_gpio { + struct device *dev; + void *base; + void *io_ctrl; + enum iproc_pinconf_ctrl_type io_ctrl_type; + raw_spinlock_t lock; + struct gpio_chip gc; + unsigned int num_banks; + bool pinmux_is_supported; + enum pin_config_param *pinconf_disable; + unsigned int nr_pinconf_disable; + struct pinctrl_dev *pctl; + struct pinctrl_desc pctldesc; }; -struct buffer_data_page; +struct dwapb_gpio_port_irqchip; -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 dwapb_gpio; -struct buffer_data_page { - u64 time_stamp; - local_t commit; - unsigned char data[0]; - long: 32; -}; +struct dwapb_context; -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 dwapb_gpio_port { + struct gpio_chip gc; + struct dwapb_gpio_port_irqchip *pirq; + struct dwapb_gpio *gpio; + struct dwapb_context *ctx; + unsigned int idx; }; -struct ring_buffer_per_cpu; +struct dwapb_gpio_port_irqchip { + unsigned int nr_irqs; + unsigned int irq[32]; +}; -struct trace_buffer { +struct dwapb_gpio { + struct device *dev; + void *regs; + struct dwapb_gpio_port *ports; + unsigned int nr_ports; unsigned int flags; - int cpus; - atomic_t record_disabled; - atomic_t resizing; - cpumask_var_t cpumask; - struct lock_class_key *reader_lock_key; - struct mutex mutex; - struct ring_buffer_per_cpu **buffers; - struct hlist_node node; - u64 (*clock)(); - struct rb_irq_work irq_work; - bool time_stamp_abs; + struct reset_control *rst; + struct clk_bulk_data clks[2]; }; -struct rb_time_struct { - local_t cnt; - local_t top; - local_t bottom; - local_t msb; +struct dwapb_context { + u32 data; + u32 dir; + u32 ext; + u32 int_en; + u32 int_mask; + u32 int_type; + u32 int_pol; + u32 int_deb; + u32 wake_en; }; -typedef struct rb_time_struct rb_time_t; +struct dwapb_port_property; -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; - long: 32; - u64 event_stamp[5]; - u64 read_stamp; - unsigned long pages_removed; - long nr_pages_to_update; - struct list_head new_pages; - struct work_struct update_pages_work; - struct completion update_done; - struct rb_irq_work irq_work; +struct dwapb_platform_data { + struct dwapb_port_property *properties; + unsigned int nports; }; -struct ring_buffer_iter { - struct ring_buffer_per_cpu *cpu_buffer; - unsigned long head; - unsigned long next_event; - struct buffer_page *head_page; - struct buffer_page *cache_reader_page; - unsigned long cache_read; - unsigned long cache_pages_removed; - long: 32; - u64 read_stamp; - u64 page_stamp; - struct ring_buffer_event *event; - int missed_events; +struct dwapb_port_property { + struct fwnode_handle *fwnode; + unsigned int idx; + unsigned int ngpio; + unsigned int gpio_base; + int irq[32]; }; -struct rb_event_info { - u64 ts; - u64 delta; - u64 before; - u64 after; - unsigned long length; - struct buffer_page *tail_page; - int add_timestamp; - long: 32; +struct xgpio_instance { + struct gpio_chip gc; + void *regs; + unsigned long hw_map[2]; + unsigned long sw_map[2]; + unsigned long state[2]; + unsigned long last_irq_read[2]; + unsigned long dir[2]; + spinlock_t gpio_lock; + int irq; + unsigned long enable[2]; + unsigned long rising_edge[2]; + unsigned long falling_edge[2]; + struct clk *clk; }; -enum { - REGION_INTERSECTS = 0, - REGION_DISJOINT = 1, - REGION_MIXED = 2, +struct pci_epc_group { + struct config_group group; + struct pci_epc *epc; + bool start; }; -typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_mm_compaction_migratepages)(void *, 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); +struct pci_epf_group { + struct config_group group; + struct config_group primary_epc_group; + struct config_group secondary_epc_group; + struct config_group *type_group; + struct delayed_work cfs_work; + struct pci_epf *epf; + int index; +}; -typedef void (*btf_trace_mm_compaction_deferred)(void *, struct zone *, int); +struct m10v_clk_div_factors { + const char *name; + const char *parent_name; + u32 offset; + u8 shift; + u8 width; + const struct clk_div_table *table; + unsigned long div_flags; + int onecell_idx; +}; -typedef void (*btf_trace_mm_compaction_defer_compaction)(void *, struct zone *, int); +struct m10v_clk_div_fixed_data { + const char *name; + const char *parent_name; + u8 div; + u8 mult; + int onecell_idx; +}; -typedef void (*btf_trace_mm_compaction_defer_reset)(void *, struct zone *, int); +struct m10v_clk_mux_factors { + const char *name; + const char * const *parent_names; + u8 num_parents; + u32 offset; + u8 shift; + u8 mask; + u32 *table; + unsigned long mux_flags; + int onecell_idx; +}; -typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int); +struct m10v_clk_divider { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u8 flags; + const struct clk_div_table *table; + spinlock_t *lock; + void *write_valid_reg; +}; -typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type); +struct clk_generated { + struct clk_hw hw; + struct regmap *regmap; + struct clk_range range; + spinlock_t *lock; + u32 *mux_table; + u32 id; + u32 gckdiv; + const struct clk_pcr_layout *layout; + struct at91_clk_pms pms; + u8 parent_id; + int chg_pid; +}; -typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type); +struct iproc_asiu; -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 iproc_asiu_clk { + struct clk_hw hw; + const char *name; + struct iproc_asiu *asiu; + unsigned long rate; + struct iproc_asiu_div div; + struct iproc_asiu_gate gate; }; -struct trace_event_raw_mm_compaction_migratepages { - struct trace_entry ent; - unsigned long nr_migrated; - unsigned long nr_failed; - char __data[0]; +struct iproc_asiu { + void *div_base; + void *gate_base; + struct clk_hw_onecell_data *clk_data; + struct iproc_asiu_clk *clks; }; -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 clk_fixup_mux { + struct clk_mux mux; + const struct clk_ops *ops; + void (*fixup)(u32 *); }; -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 clk_pfdv2 { + struct clk_hw hw; + void *reg; + u8 gate_bit; + u8 vld_bit; + u8 frac_off; }; -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 mmp_clk_gate { + struct clk_hw hw; + void *reg; + u32 mask; + u32 val_enable; + u32 val_disable; + unsigned int flags; + spinlock_t *lock; }; -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]; +enum exynos5250_plls { + apll___3 = 0, + mpll___3 = 1, + cpll___2 = 2, + epll___3 = 3, + vpll___3 = 4, + gpll = 5, + bpll___2 = 6, + nr_plls___3 = 7, }; -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 sun9i_a80_cpus_clk { + struct clk_hw hw; + void *reg; }; -struct trace_event_raw_mm_compaction_kcompactd_sleep { - struct trace_entry ent; - int nid; - char __data[0]; +struct tegra_clk_sync_source { + struct clk_hw hw; + unsigned long rate; + unsigned long max_rate; }; -struct trace_event_raw_kcompactd_wake_template { - struct trace_entry ent; - int nid; - int order; - enum zone_type highest_zoneidx; - char __data[0]; +struct tegra_clk_periph_fixed { + struct clk_hw hw; + void *base; + const struct tegra_clk_periph_regs *regs; + unsigned int mul; + unsigned int div; + unsigned int num; }; -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 tegra_clk_pll_out { + struct clk_hw hw; + void *reg; + u8 enb_bit_idx; + u8 rst_bit_idx; + spinlock_t *lock; + u8 flags; +}; -struct trace_event_data_offsets_kcompactd_wake_template {}; +struct clk_iomap { + struct regmap *regmap; + void *mem; +}; -enum legacy_fs_param { - LEGACY_FS_UNSET_PARAMS = 0, - LEGACY_FS_MONOLITHIC_PARAMS = 1, - LEGACY_FS_INDIVIDUAL_PARAMS = 2, +struct clk_init_item { + struct device_node *node; + void *user; + ti_of_clk_init_cb_t func; + struct list_head link; }; -struct legacy_fs_context { - char *legacy_data; - size_t data_size; - enum legacy_fs_param param_type; +struct at_xdmac_layout { + u8 grs; + u8 gws; + u8 grws; + u8 grwr; + u8 gswr; + u8 gsws; + u8 gswf; + u8 chan_cc_reg_base; + bool sdif; + bool axi_config; }; -enum ramfs_param { - Opt_mode___3 = 0, +enum atc_status___2 { + AT_XDMAC_CHAN_IS_CYCLIC = 0, + AT_XDMAC_CHAN_IS_PAUSED = 1, + AT_XDMAC_CHAN_IS_PAUSED_INTERNAL = 2, }; -struct ramfs_mount_opts { - umode_t mode; +struct at_xdmac_chan { + struct dma_chan chan; + void *ch_regs; + u32 mask; + u32 cfg; + u8 perid; + u8 perif; + u8 memif; + u32 save_cc; + u32 save_cim; + u32 save_cnda; + u32 save_cndc; + u32 irq_status; + unsigned long status; + struct tasklet_struct tasklet; + struct dma_slave_config sconfig; + spinlock_t lock; + struct list_head xfers_list; + struct list_head free_descs_list; }; -struct ramfs_fs_info { - struct ramfs_mount_opts mount_opts; +struct at_xdmac { + struct dma_device dma; + void *regs; + struct device *dev; + int irq; + struct clk *clk; + u32 save_gim; + u32 save_gs; + struct dma_pool *at_xdmac_desc_pool; + const struct at_xdmac_layout *layout; + struct at_xdmac_chan chan[0]; }; -struct nfs_createdata { - struct nfs_createargs arg; - struct nfs_diropok res; - struct nfs_fh fhandle; - long: 32; - struct nfs_fattr fattr; +struct at_xdmac_lld { + u32 mbr_nda; + u32 mbr_ubc; + u32 mbr_sa; + u32 mbr_da; + u32 mbr_cfg; + u32 mbr_bc; + u32 mbr_ds; + u32 mbr_sus; + u32 mbr_dus; }; -struct getdents_callback___2 { - struct dir_context ctx; - char *name; +struct at_xdmac_desc { + struct at_xdmac_lld lld; + enum dma_transfer_direction direction; + struct dma_async_tx_descriptor tx_dma_desc; + struct list_head desc_node; + bool active_xfer; + unsigned int xfer_size; + struct list_head descs_list; + struct list_head xfer_node; long: 32; - u64 ino; - int found; - int sequence; }; -enum { - NSMPROC_NULL = 0, - NSMPROC_STAT = 1, - NSMPROC_MON = 2, - NSMPROC_UNMON = 3, - NSMPROC_UNMON_ALL = 4, - NSMPROC_SIMU_CRASH = 5, - NSMPROC_NOTIFY = 6, +struct of_dma_filter_info { + dma_cap_mask_t dma_cap; + dma_filter_fn filter_fn; }; -struct nsm_args { - struct nsm_private *priv; - u32 prog; - u32 vers; - u32 proc; - char *mon_name; - const char *nodename; +struct omap_dma_config { + int lch_end; + unsigned int rw_priority: 1; + unsigned int needs_busy_check: 1; + unsigned int may_lose_context: 1; + unsigned int needs_lch_clear: 1; }; -struct nsm_res { - u32 status; - u32 state; +enum omap_reg_offsets { + GCR = 0, + GSCR = 1, + GRST1 = 2, + HW_ID = 3, + PCH2_ID = 4, + PCH0_ID = 5, + PCH1_ID = 6, + PCHG_ID = 7, + PCHD_ID = 8, + CAPS_0 = 9, + CAPS_1 = 10, + CAPS_2 = 11, + CAPS_3 = 12, + CAPS_4 = 13, + PCH2_SR = 14, + PCH0_SR = 15, + PCH1_SR = 16, + PCHD_SR = 17, + REVISION = 18, + IRQSTATUS_L0 = 19, + IRQSTATUS_L1 = 20, + IRQSTATUS_L2 = 21, + IRQSTATUS_L3 = 22, + IRQENABLE_L0 = 23, + IRQENABLE_L1 = 24, + IRQENABLE_L2 = 25, + IRQENABLE_L3 = 26, + SYSSTATUS = 27, + OCP_SYSCONFIG = 28, + CPC = 29, + CCR2 = 30, + LCH_CTRL = 31, + CSDP = 32, + CCR___2 = 33, + CICR = 34, + CSR = 35, + CEN = 36, + CFN = 37, + CSFI = 38, + CSEI = 39, + CSAC = 40, + CDAC = 41, + CDEI = 42, + CDFI = 43, + CLNK_CTRL = 44, + CSSA = 45, + CDSA = 46, + COLOR = 47, + CCEN = 48, + CCFN = 49, + CDP = 50, + CNDP = 51, + CCDN = 52, }; -struct sem_undo_list { - refcount_t refcnt; - spinlock_t lock; - struct list_head list_proc; +enum { + CAPS_0_SUPPORT_LL123 = 1048576, + CAPS_0_SUPPORT_LL4 = 2097152, + CCR_FS = 32, + CCR_READ_PRIORITY = 64, + CCR_ENABLE = 128, + CCR_AUTO_INIT = 256, + CCR_REPEAT = 512, + CCR_OMAP31_DISABLE = 1024, + CCR_SUSPEND_SENSITIVE = 256, + CCR_RD_ACTIVE = 512, + CCR_WR_ACTIVE = 1024, + CCR_SRC_AMODE_CONSTANT = 0, + CCR_SRC_AMODE_POSTINC = 4096, + CCR_SRC_AMODE_SGLIDX = 8192, + CCR_SRC_AMODE_DBLIDX = 12288, + CCR_DST_AMODE_CONSTANT = 0, + CCR_DST_AMODE_POSTINC = 16384, + CCR_DST_AMODE_SGLIDX = 32768, + CCR_DST_AMODE_DBLIDX = 49152, + CCR_CONSTANT_FILL = 65536, + CCR_TRANSPARENT_COPY = 131072, + CCR_BS = 262144, + CCR_SUPERVISOR = 4194304, + CCR_PREFETCH = 8388608, + CCR_TRIGGER_SRC = 16777216, + CCR_BUFFERING_DISABLE = 33554432, + CCR_WRITE_PRIORITY = 67108864, + CCR_SYNC_ELEMENT = 0, + CCR_SYNC_FRAME = 32, + CCR_SYNC_BLOCK = 262144, + CCR_SYNC_PACKET = 262176, + CSDP_DATA_TYPE_8 = 0, + CSDP_DATA_TYPE_16 = 1, + CSDP_DATA_TYPE_32 = 2, + CSDP_SRC_PORT_EMIFF = 0, + CSDP_SRC_PORT_EMIFS = 4, + CSDP_SRC_PORT_OCP_T1 = 8, + CSDP_SRC_PORT_TIPB = 12, + CSDP_SRC_PORT_OCP_T2 = 16, + CSDP_SRC_PORT_MPUI = 20, + CSDP_SRC_PACKED = 64, + CSDP_SRC_BURST_1 = 0, + CSDP_SRC_BURST_16 = 128, + CSDP_SRC_BURST_32 = 256, + CSDP_SRC_BURST_64 = 384, + CSDP_DST_PORT_EMIFF = 0, + CSDP_DST_PORT_EMIFS = 512, + CSDP_DST_PORT_OCP_T1 = 1024, + CSDP_DST_PORT_TIPB = 1536, + CSDP_DST_PORT_OCP_T2 = 2048, + CSDP_DST_PORT_MPUI = 2560, + CSDP_DST_PACKED = 8192, + CSDP_DST_BURST_1 = 0, + CSDP_DST_BURST_16 = 16384, + CSDP_DST_BURST_32 = 32768, + CSDP_DST_BURST_64 = 49152, + CSDP_WRITE_NON_POSTED = 0, + CSDP_WRITE_POSTED = 65536, + CSDP_WRITE_LAST_NON_POSTED = 131072, + CICR_TOUT_IE = 1, + CICR_DROP_IE = 2, + CICR_HALF_IE = 4, + CICR_FRAME_IE = 8, + CICR_LAST_IE = 16, + CICR_BLOCK_IE = 32, + CICR_PKT_IE = 128, + CICR_TRANS_ERR_IE = 256, + CICR_SUPERVISOR_ERR_IE = 1024, + CICR_MISALIGNED_ERR_IE = 2048, + CICR_DRAIN_IE = 4096, + CICR_SUPER_BLOCK_IE = 16384, + CLNK_CTRL_ENABLE_LNK = 32768, + CDP_DST_VALID_INC = 0, + CDP_DST_VALID_RELOAD = 1, + CDP_DST_VALID_REUSE = 2, + CDP_SRC_VALID_INC = 0, + CDP_SRC_VALID_RELOAD = 4, + CDP_SRC_VALID_REUSE = 8, + CDP_NTYPE_TYPE1 = 16, + CDP_NTYPE_TYPE2 = 32, + CDP_NTYPE_TYPE3 = 48, + CDP_TMODE_NORMAL = 0, + CDP_TMODE_LLIST = 256, + CDP_FAST = 1024, }; -struct sembuf { - unsigned short sem_num; - short sem_op; - short sem_flg; +enum { + OMAP_DMA_REG_NONE = 0, + OMAP_DMA_REG_16BIT = 1, + OMAP_DMA_REG_2X16BIT = 2, + OMAP_DMA_REG_32BIT = 3, }; -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 omap_dma_context { + u32 irqenable_l0; + u32 irqenable_l1; + u32 ocp_sysconfig; + u32 gcr; }; -struct sem { - int semval; - struct pid *sempid; +struct omap_chan; + +struct omap_dmadev { + struct dma_device ddev; spinlock_t lock; - struct list_head pending_alter; - struct list_head pending_const; - long: 32; - time64_t sem_otime; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; + void *base; + const struct omap_dma_reg *reg_map; + struct omap_system_dma_plat_info *plat; + const struct omap_dma_config *cfg; + struct notifier_block nb; + struct omap_dma_context context; + int lch_count; + unsigned long lch_bitmap[1]; + struct mutex lch_lock; + bool legacy; + bool ll123_supported; + struct dma_pool *desc_pool; + unsigned int dma_requests; + spinlock_t irq_lock; + uint32_t irq_enable_mask; + struct omap_chan **lch_map; }; -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: 32; - long: 32; - long: 32; - long: 32; - struct sem sems[0]; -}; +struct omap_desc; -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 omap_chan { + struct virt_dma_chan vc; + void *channel_base; + const struct omap_dma_reg *reg_map; + uint32_t ccr; + struct dma_slave_config cfg; + unsigned int dma_sig; + bool cyclic; + bool paused; + bool running; + int dma_ch; + struct omap_desc *desc; + unsigned int sgidx; }; -struct semid64_ds { - struct ipc64_perm sem_perm; - unsigned long sem_otime; - unsigned long sem_otime_high; - unsigned long sem_ctime; - unsigned long sem_ctime_high; - unsigned long sem_nsems; - unsigned long __unused3; - unsigned long __unused4; -}; +struct omap_type2_desc; -struct seminfo { - int semmap; - int semmni; - int semmns; - int semmnu; - int semmsl; - int semopm; - int semume; - int semusz; - int semvmx; - int semaem; +struct omap_sg { + dma_addr_t addr; + uint32_t en; + uint32_t fn; + int32_t fi; + int16_t ei; + struct omap_type2_desc *t2_desc; + dma_addr_t t2_desc_paddr; }; -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 omap_desc { + struct virt_dma_desc vd; + bool using_ll; + enum dma_transfer_direction dir; + dma_addr_t dev_addr; + bool polled; + int32_t fi; + int16_t ei; + uint8_t es; + uint32_t ccr; + uint16_t clnk_ctrl; + uint16_t cicr; + uint32_t csdp; + unsigned int sglen; + struct omap_sg sg[0]; }; -enum { - IO_WORKER_F_UP = 1, - IO_WORKER_F_RUNNING = 2, - IO_WORKER_F_FREE = 4, - IO_WORKER_F_BOUND = 8, +struct omap_type2_desc { + uint32_t next_desc; + uint32_t en; + uint32_t addr; + uint16_t fn; + uint16_t cicr; + int16_t cdei; + int16_t csei; + int32_t cdfi; + int32_t csfi; }; -enum { - IO_WQ_BIT_EXIT = 0, +struct omap_rst_map { + s8 rst; + s8 st; }; -enum { - IO_ACCT_STALLED_BIT = 0, -}; +struct omap_prm_domain_map; -enum { - IO_WQ_ACCT_BOUND = 0, - IO_WQ_ACCT_UNBOUND = 1, - IO_WQ_ACCT_NR = 2, +struct omap_prm_data { + u32 base; + const char *name; + const char *clkdm_name; + u16 pwrstctrl; + u16 pwrstst; + const struct omap_prm_domain_map *dmap; + u16 rstctrl; + u16 rstst; + const struct omap_rst_map *rstmap; + u8 flags; }; -struct io_worker { - refcount_t ref; - unsigned int flags; - struct hlist_nulls_node nulls_node; - struct list_head all_list; - struct task_struct *task; - struct io_wq *wq; - struct io_wq_work *cur_work; - struct io_wq_work *next_work; - raw_spinlock_t lock; - struct completion ref_done; - unsigned long create_state; - struct callback_head create_work; - int create_index; - union { - struct callback_head rcu; - struct work_struct work; - }; +struct omap_prm_domain_map { + unsigned int usable_modes; + unsigned long statechange: 1; + unsigned long logicretstate: 1; }; -struct io_wq_acct { - unsigned int nr_workers; - unsigned int max_workers; - int index; - atomic_t nr_running; - raw_spinlock_t lock; - struct io_wq_work_list work_list; - unsigned long flags; +enum omap_prm_domain_mode { + OMAP_PRMD_OFF = 0, + OMAP_PRMD_RETENTION = 1, + OMAP_PRMD_ON_INACTIVE = 2, + OMAP_PRMD_ON_ACTIVE = 3, }; -struct io_wq { - unsigned long state; - free_work_fn *free_work; - io_wq_work_fn *do_work; - struct io_wq_hash *hash; - atomic_t worker_refs; - struct completion worker_done; - struct hlist_node cpuhp_node; - struct task_struct *task; - struct io_wq_acct acct[2]; - raw_spinlock_t lock; - struct hlist_nulls_head free_list; - struct list_head all_list; - struct wait_queue_entry wait; - struct io_wq_work *hash_tail[32]; - cpumask_var_t cpu_mask; -}; +struct omap_prm; -struct io_cb_cancel_data { - work_cancel_fn *fn; - void *data; - int nr_running; - int nr_pending; - bool cancel_all; +struct omap_prm_domain { + struct device *dev; + struct omap_prm *prm; + struct generic_pm_domain pd; + u16 pwrstctrl; + u16 pwrstst; + const struct omap_prm_domain_map *cap; + u32 pwrstctrl_saved; + unsigned int uses_pm_clk: 1; }; -struct online_data { - unsigned int cpu; - bool online; +struct omap_prm { + const struct omap_prm_data *data; + void *base; + struct omap_prm_domain *prmd; }; -struct rdists { - struct { - raw_spinlock_t rd_lock; - void *rd_base; - struct page *pend_page; - phys_addr_t phys_base; - u64 flags; - cpumask_t *vpe_table_mask; - void *vpe_l1_base; - } *rdist; - phys_addr_t prop_table_pa; - void *prop_table_va; - long: 32; - u64 flags; - u32 gicd_typer; - u32 gicd_typer2; - int cpuhp_memreserve_state; - bool has_vlpis; - bool has_rvpeid; - bool has_direct_lpi; - bool has_vpend_valid_dirty; +struct omap_reset_data { + struct reset_controller_dev rcdev; + struct omap_prm *prm; + u32 mask; + spinlock_t lock; + struct clockdomain *clkdm; + struct device *dev; }; -struct redist_region; +struct scmi_regulator; -struct gic_chip_data___2 { - struct fwnode_handle *fwnode; - phys_addr_t dist_phys_base; - void *dist_base; - struct redist_region *redist_regions; - struct rdists rdists; - struct irq_domain *domain; - long: 32; - u64 redist_stride; - u32 nr_redist_regions; - long: 32; - u64 flags; - bool has_rss; - unsigned int ppi_nr; - struct partition_desc **ppi_descs; - long: 32; +struct scmi_regulator_info { + int num_doms; + struct scmi_regulator **sregv; }; -struct redist_region { - void *redist_base; - phys_addr_t phys_base; - bool single_redist; +struct scmi_regulator { + u32 id; + struct scmi_device *sdev; + struct scmi_protocol_handle *ph; + struct regulator_dev *rdev; + struct device_node *of_node; + struct regulator_desc desc; + struct regulator_config conf; }; -enum gic_intid_range { - SGI_RANGE = 0, - PPI_RANGE = 1, - SPI_RANGE = 2, - EPPI_RANGE = 3, - ESPI_RANGE = 4, - LPI_RANGE = 5, - __INVALID_RANGE__ = 6, +struct pbias_reg_info { + u32 enable; + u32 enable_mask; + u32 disable_val; + u32 vmode; + unsigned int enable_time; + char *name; + const unsigned int *pbias_volt_table; + int n_voltages; }; -struct mvebu_a3700_utmi_caps { - int usb32; - const struct phy_ops *ops; +struct pbias_of_data { + unsigned int offset; }; -struct mvebu_a3700_utmi { - void *regs; - struct regmap *usb_misc; - const struct mvebu_a3700_utmi_caps *caps; - struct phy *phy; +struct vcs_poll_data { + struct notifier_block notifier; + unsigned int cons_num; + int event; + wait_queue_head_t waitq; + struct fasync_struct *fasync; }; -struct sgpio_properties { - int arch; - int flags; - u8 regoff[10]; +struct meson_uart_data { + struct uart_driver *uart_driver; + bool has_xtal_div2; }; -enum { - REG_INPUT_DATA = 0, - REG_PORT_CONFIG = 1, - REG_PORT_ENABLE = 2, - REG_SIO_CONFIG = 3, - REG_SIO_CLOCK = 4, - REG_INT_POLARITY = 5, - REG_INT_TRIGGER = 6, - REG_INT_ACK = 7, - REG_INT_ENABLE = 8, - REG_INT_IDENT = 9, - MAXREG = 10, -}; +struct omap_rng_dev; -enum { - SGPIO_FLAGS_HAS_IRQ = 1, +struct omap_rng_pdata { + u16 *regs; + u32 data_size; + u32 (*data_present)(struct omap_rng_dev *); + int (*init)(struct omap_rng_dev *); + void (*cleanup)(struct omap_rng_dev *); }; -enum { - SGPIO_ARCH_LUTON = 0, - SGPIO_ARCH_OCELOT = 1, - SGPIO_ARCH_SPARX5 = 2, +struct omap_rng_dev { + void *base; + struct device *dev; + const struct omap_rng_pdata *pdata; + struct hwrng rng; + struct clk *clk; + struct clk *clk_reg; }; -struct sgpio_priv; - -struct sgpio_bank { - struct sgpio_priv *priv; - bool is_input; - struct gpio_chip gpio; - struct pinctrl_desc pctl_desc; +enum { + RNG_OUTPUT_0_REG = 0, + RNG_OUTPUT_1_REG = 1, + RNG_OUTPUT_2_REG = 2, + RNG_OUTPUT_3_REG = 3, + RNG_STATUS_REG = 4, + RNG_INTMASK_REG = 5, + RNG_INTACK_REG = 6, + RNG_CONTROL_REG = 7, + RNG_CONFIG_REG = 8, + RNG_ALARMCNT_REG = 9, + RNG_FROENABLE_REG = 10, + RNG_FRODETUNE_REG = 11, + RNG_ALARMMASK_REG = 12, + RNG_ALARMSTOP_REG = 13, + RNG_REV_REG = 14, + RNG_SYSCONFIG_REG = 15, }; -struct sgpio_priv { +struct host1x_firewall { + struct host1x_job *job; struct device *dev; - struct sgpio_bank in; - struct sgpio_bank out; - u32 bitcount; - u32 ports; - u32 clock; - struct regmap *regs; - const struct sgpio_properties *properties; - spinlock_t lock; - struct mutex poll_lock; -}; - -struct sgpio_port_addr { - u8 port; - u8 bit; + unsigned int num_relocs; + struct host1x_reloc *reloc; + struct host1x_bo *cmdbuf; + unsigned int offset; + u32 words; + u32 class; + u32 reg; + u32 mask; + u32 count; }; -struct mtk_spec_pull_set { - unsigned char pin; - unsigned char pupd_bit; - unsigned short pupd_offset; - unsigned short r0_offset; - unsigned short r1_offset; - unsigned char r0_bit; - unsigned char r1_bit; +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 palmas_device_data { - int ngpio; +struct drm_vblank_work { + struct kthread_work base; + struct drm_vblank_crtc *vblank; + u64 count; + int cancelling; + struct list_head node; + long: 32; }; -enum palmas_irqs { - PALMAS_CHARG_DET_N_VBUS_OVV_IRQ = 0, - PALMAS_PWRON_IRQ = 1, - PALMAS_LONG_PRESS_KEY_IRQ = 2, - PALMAS_RPWRON_IRQ = 3, - PALMAS_PWRDOWN_IRQ = 4, - PALMAS_HOTDIE_IRQ = 5, - PALMAS_VSYS_MON_IRQ = 6, - PALMAS_VBAT_MON_IRQ = 7, - PALMAS_RTC_ALARM_IRQ = 8, - PALMAS_RTC_TIMER_IRQ = 9, - PALMAS_WDT_IRQ = 10, - PALMAS_BATREMOVAL_IRQ = 11, - PALMAS_RESET_IN_IRQ = 12, - PALMAS_FBI_BB_IRQ = 13, - PALMAS_SHORT_IRQ = 14, - PALMAS_VAC_ACOK_IRQ = 15, - PALMAS_GPADC_AUTO_0_IRQ = 16, - PALMAS_GPADC_AUTO_1_IRQ = 17, - PALMAS_GPADC_EOC_SW_IRQ = 18, - PALMAS_GPADC_EOC_RT_IRQ = 19, - PALMAS_ID_OTG_IRQ = 20, - PALMAS_ID_IRQ = 21, - PALMAS_VBUS_OTG_IRQ = 22, - PALMAS_VBUS_IRQ = 23, - PALMAS_GPIO_0_IRQ = 24, - PALMAS_GPIO_1_IRQ = 25, - PALMAS_GPIO_2_IRQ = 26, - PALMAS_GPIO_3_IRQ = 27, - PALMAS_GPIO_4_IRQ = 28, - PALMAS_GPIO_5_IRQ = 29, - PALMAS_GPIO_6_IRQ = 30, - PALMAS_GPIO_7_IRQ = 31, - PALMAS_NUM_IRQ = 32, +enum falcon_memory { + FALCON_MEMORY_IMEM = 0, + FALCON_MEMORY_DATA = 1, }; -struct palmas_gpio { - struct gpio_chip gpio_chip; - struct palmas *palmas; +struct falcon_fw_bin_header_v1 { + u32 magic; + u32 version; + u32 size; + u32 os_header_offset; + u32 os_data_offset; + u32 os_size; }; -struct palmas_gpadc_platform_data; - -struct palmas_usb_platform_data; - -struct palmas_resource_platform_data; - -struct palmas_clk_platform_data; - -struct palmas_platform_data { - int irq_flags; - int gpio_base; - u8 power_ctrl; - int mux_from_pdata; - u8 pad1; - u8 pad2; - bool pm_off; - struct palmas_pmic_platform_data *pmic_pdata; - struct palmas_gpadc_platform_data *gpadc_pdata; - struct palmas_usb_platform_data *usb_pdata; - struct palmas_resource_platform_data *resource_pdata; - struct palmas_clk_platform_data *clk_pdata; +struct falcon_fw_os_header_v1 { + u32 code_offset; + u32 code_size; + u32 data_offset; + u32 data_size; }; -struct palmas_gpadc_platform_data { - int ch3_current; - int ch0_current; - bool extended_delay; - int bat_removal; - int start_polarity; - int auto_conversion_period_ms; -}; +typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t); -struct palmas_usb_platform_data { - int wakeup; +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 palmas_resource_platform_data { - int regen1_mode_sleep; - int regen2_mode_sleep; - int sysen1_mode_sleep; - int sysen2_mode_sleep; - u8 nsleep_res; - u8 nsleep_smps; - u8 nsleep_ldo1; - u8 nsleep_ldo2; - u8 enable1_res; - u8 enable1_smps; - u8 enable1_ldo1; - u8 enable1_ldo2; - u8 enable2_res; - u8 enable2_smps; - u8 enable2_ldo1; - u8 enable2_ldo2; +struct trace_event_data_offsets_devres { + u32 devname; }; -struct palmas_clk_platform_data { - int clk32kg_mode_sleep; - int clk32kgaudio_mode_sleep; +struct twl6030_irq { + unsigned int irq_base; + int twl_irq; + bool irq_wake_enabled; + atomic_t wakeirqs; + struct notifier_block pm_nb; + struct irq_chip irq_chip; + struct irq_domain *irq_domain; + const int *irq_mapping_tbl; }; -struct platform_pwm_backlight_data { - unsigned int max_brightness; - unsigned int dft_brightness; - unsigned int lth_brightness; - unsigned int pwm_period_ns; - unsigned int *levels; - unsigned int post_pwm_on_delay; - unsigned int pwm_off_delay; - int (*init)(struct device *); - int (*notify)(struct device *, int); - void (*notify_after)(struct device *, int); - void (*exit)(struct device *); - int (*check_fb)(struct device *, struct fb_info *); +struct scsi_varlen_cdb_hdr { + __u8 opcode; + __u8 control; + __u8 misc[5]; + __u8 additional_cdb_length; + __be16 service_action; }; -struct pwm_bl_data { - struct pwm_device *pwm; - struct device *dev; - unsigned int lth_brightness; - unsigned int *levels; - bool enabled; - struct regulator *power_supply; - struct gpio_desc *enable_gpio; - unsigned int scale; - unsigned int post_pwm_on_delay; - unsigned int pwm_off_delay; - int (*notify)(struct device *, int); - void (*notify_after)(struct device *, int); - int (*check_fb)(struct device *, struct fb_info *); - void (*exit)(struct device *); +struct ahci_sg { + __le32 addr; + __le32 addr_hi; + __le32 reserved; + __le32 flags_size; }; -struct clk_main_osc { - struct clk_hw hw; - struct regmap *regmap; - struct at91_clk_pms pms; +struct cdns_spi { + void *regs; + struct clk *ref_clk; + struct clk *pclk; + unsigned int clk_rate; + u32 speed_hz; + const u8 *txbuf; + u8 *rxbuf; + int tx_bytes; + int rx_bytes; + u8 dev_busy; + u32 is_decoded_cs; + unsigned int tx_fifo_depth; }; -struct clk_main_rc_osc { - struct clk_hw hw; - struct regmap *regmap; - unsigned long frequency; - unsigned long accuracy; - struct at91_clk_pms pms; +struct tegra_slink_chip_data { + bool cs_hold_time; }; -struct clk_rm9200_main { - struct clk_hw hw; - struct regmap *regmap; +struct tegra_slink_data { + struct device *dev; + struct spi_controller *master; + const struct tegra_slink_chip_data *chip_data; + spinlock_t lock; + struct clk *clk; + struct reset_control *rst; + void *base; + phys_addr_t phys; + unsigned int irq; + u32 cur_speed; + struct spi_device *cur_spi; + unsigned int cur_pos; + unsigned int cur_len; + unsigned int words_per_32bit; + unsigned int bytes_per_word; + unsigned int curr_dma_words; + unsigned int cur_direction; + unsigned int cur_rx_pos; + unsigned int cur_tx_pos; + unsigned int dma_buf_size; + unsigned int max_buf_size; + bool is_curr_dma_xfer; + struct completion rx_dma_complete; + struct completion tx_dma_complete; + u32 tx_status; + u32 rx_status; + u32 status_reg; + bool is_packed; + u32 packed_size; + u32 command_reg; + u32 command2_reg; + u32 dma_control_reg; + u32 def_command_reg; + u32 def_command2_reg; + struct completion xfer_completion; + struct spi_transfer *curr_xfer; + struct dma_chan *rx_dma_chan; + u32 *rx_dma_buf; + dma_addr_t rx_dma_phys; + struct dma_async_tx_descriptor *rx_dma_desc; + struct dma_chan *tx_dma_chan; + u32 *tx_dma_buf; + dma_addr_t tx_dma_phys; + struct dma_async_tx_descriptor *tx_dma_desc; }; -struct clk_sam9x5_main { - struct clk_hw hw; - struct regmap *regmap; - struct at91_clk_pms pms; - u8 parent; +struct sh_eth_cpu_data { + int (*soft_reset)(struct net_device *); + void (*chip_reset)(struct net_device *); + void (*set_duplex)(struct net_device *); + void (*set_rate)(struct net_device *); + int register_type; + u32 edtrr_trns; + u32 eesipr_value; + u32 ecsr_value; + u32 ecsipr_value; + u32 fdr_value; + u32 fcftr_value; + u32 tx_check; + u32 eesr_err_check; + u32 trscer_err_mask; + unsigned long irq_flags; + unsigned int no_psr: 1; + unsigned int apr: 1; + unsigned int mpr: 1; + unsigned int tpauser: 1; + unsigned int gecmr: 1; + unsigned int bculr: 1; + unsigned int tsu: 1; + unsigned int hw_swap: 1; + unsigned int nbst: 1; + unsigned int rpadir: 1; + unsigned int no_trimd: 1; + unsigned int no_ade: 1; + unsigned int no_xdfar: 1; + unsigned int xdfar_rw: 1; + unsigned int csmr: 1; + unsigned int rx_csum: 1; + unsigned int select_mii: 1; + unsigned int rmiimode: 1; + unsigned int rtrate: 1; + unsigned int magic: 1; + unsigned int no_tx_cntrs: 1; + unsigned int cexcr: 1; + unsigned int dual_port: 1; }; -struct clk_apmu { - struct clk_hw hw; - void *base; - u32 rst_mask; - u32 enable_mask; - spinlock_t *lock; +enum { + EDSR = 0, + EDMR = 1, + EDTRR = 2, + EDRRR = 3, + EESR = 4, + EESIPR = 5, + TDLAR = 6, + TDFAR = 7, + TDFXR = 8, + TDFFR = 9, + RDLAR = 10, + RDFAR = 11, + RDFXR = 12, + RDFFR = 13, + TRSCER = 14, + RMFCR = 15, + TFTR = 16, + FDR = 17, + RMCR = 18, + EDOCR = 19, + TFUCR = 20, + RFOCR = 21, + RMIIMODE = 22, + FCFTR = 23, + RPADIR = 24, + TRIMD = 25, + RBWAR = 26, + TBRAR = 27, + ECMR = 28, + ECSR = 29, + ECSIPR = 30, + PIR = 31, + PSR = 32, + RDMLR = 33, + PIPR = 34, + RFLR = 35, + IPGR = 36, + APR = 37, + MPR = 38, + PFTCR = 39, + PFRCR = 40, + RFCR = 41, + RFCF = 42, + TPAUSER = 43, + TPAUSECR = 44, + BCFR = 45, + BCFRR = 46, + GECMR = 47, + BCULR = 48, + MAHR = 49, + MALR = 50, + TROCR = 51, + CDCR = 52, + LCCR = 53, + CNDCR = 54, + CEFCR = 55, + FRECR = 56, + TSFRCR = 57, + TLFRCR = 58, + CERCR = 59, + CEECR = 60, + MAFCR = 61, + RTRATE = 62, + CSMR = 63, + RMII_MII = 64, + ARSTR = 65, + TSU_CTRST = 66, + TSU_FWEN0 = 67, + TSU_FWEN1 = 68, + TSU_FCM = 69, + TSU_BSYSL0 = 70, + TSU_BSYSL1 = 71, + TSU_PRISL0 = 72, + TSU_PRISL1 = 73, + TSU_FWSL0 = 74, + TSU_FWSL1 = 75, + TSU_FWSLC = 76, + TSU_QTAG0 = 77, + TSU_QTAG1 = 78, + TSU_QTAGM0 = 79, + TSU_QTAGM1 = 80, + TSU_FWSR = 81, + TSU_FWINMK = 82, + TSU_ADQT0 = 83, + TSU_ADQT1 = 84, + TSU_VTAG0 = 85, + TSU_VTAG1 = 86, + TSU_ADSBSY = 87, + TSU_TEN = 88, + TSU_POST1 = 89, + TSU_POST2 = 90, + TSU_POST3 = 91, + TSU_POST4 = 92, + TSU_ADRH0 = 93, + TXNLCR0 = 94, + TXALCR0 = 95, + RXNLCR0 = 96, + RXALCR0 = 97, + FWNLCR0 = 98, + FWALCR0 = 99, + TXNLCR1 = 100, + TXALCR1 = 101, + RXNLCR1 = 102, + RXALCR1 = 103, + FWNLCR1 = 104, + FWALCR1 = 105, + SH_ETH_MAX_REGISTER_OFFSET = 106, }; -struct samsung_clock_reg_cache { - struct list_head node; - void *reg_base; - struct samsung_clk_reg_dump *rdump; - unsigned int rd_num; - const struct samsung_clk_reg_dump *rsuspend; - unsigned int rsuspend_num; +enum { + SH_ETH_REG_GIGABIT = 0, + SH_ETH_REG_FAST_RCAR = 1, + SH_ETH_REG_FAST_SH4 = 2, + SH_ETH_REG_FAST_SH3_SH2 = 3, }; -struct samsung_clock_alias { - unsigned int id; - const char *dev_name; - const char *alias; +enum ECSR_BIT { + ECSR_BRCRX = 32, + ECSR_PSRTO = 16, + ECSR_LCHNG = 4, + ECSR_MPD = 2, + ECSR_ICD = 1, }; -struct clkgen_pll_data; - -struct clkgen_pll_data_clks { - struct clkgen_pll_data *data; - const struct clkgen_clk_out *outputs; +enum ECSIPR_BIT { + ECSIPR_BRCRXIP = 32, + ECSIPR_PSRTOIP = 16, + ECSIPR_LCHNGIP = 4, + ECSIPR_MPDIP = 2, + ECSIPR_ICDIP = 1, }; -struct clkgen_pll_data { - struct clkgen_field pdn_status; - struct clkgen_field pdn_ctrl; - struct clkgen_field locked_status; - struct clkgen_field mdiv; - struct clkgen_field ndiv; - struct clkgen_field pdiv; - struct clkgen_field idf; - struct clkgen_field ldf; - struct clkgen_field cp; - unsigned int num_odfs; - struct clkgen_field odf[4]; - struct clkgen_field odf_gate[4]; - bool switch2pll_en; - struct clkgen_field switch2pll; - spinlock_t *lock; - const struct clk_ops *ops; +enum FCFTR_BIT { + FCFTR_RFF2 = 262144, + FCFTR_RFF1 = 131072, + FCFTR_RFF0 = 65536, + FCFTR_RFD2 = 4, + FCFTR_RFD1 = 2, + FCFTR_RFD0 = 1, }; -struct clkgen_pll { - struct clk_hw hw; - struct clkgen_pll_data *data; - void *regs_base; - spinlock_t *lock; - u32 ndiv; - u32 idf; - u32 cp; +enum EESR_BIT { + EESR_TWB1 = 2147483648, + EESR_TWB = 1073741824, + EESR_TC1 = 536870912, + EESR_TUC = 268435456, + EESR_ROC = 134217728, + EESR_TABT = 67108864, + EESR_RABT = 33554432, + EESR_RFRMER = 16777216, + EESR_ADE = 8388608, + EESR_ECI = 4194304, + EESR_FTC = 2097152, + EESR_TDE = 1048576, + EESR_TFE = 524288, + EESR_FRC = 262144, + EESR_RDE = 131072, + EESR_RFE = 65536, + EESR_CND = 2048, + EESR_DLC = 1024, + EESR_CD = 512, + EESR_TRO = 256, + EESR_RMAF = 128, + EESR_CEEF = 64, + EESR_CELF = 32, + EESR_RRF = 16, + EESR_RTLF = 8, + EESR_RTSF = 4, + EESR_PRE = 2, + EESR_CERF = 1, }; -struct stm_pll { - unsigned long mdiv; - unsigned long ndiv; - unsigned long pdiv; - unsigned long odf; - unsigned long idf; - unsigned long ldf; - unsigned long cp; +enum TRSCER_BIT { + TRSCER_CNDCE = 2048, + TRSCER_DLCCE = 1024, + TRSCER_CDCE = 512, + TRSCER_TROCE = 256, + TRSCER_RMAFCE = 128, + TRSCER_RRFCE = 16, + TRSCER_RTLFCE = 8, + TRSCER_RTSFCE = 4, + TRSCER_PRECE = 2, + TRSCER_CERFCE = 1, }; -struct sdma_script_start_addrs; - -struct sdma_driver_data { - int chnenbl0; - int num_events; - struct sdma_script_start_addrs *script_addrs; - bool check_ratio; - bool ecspi_fixed; +enum EESIPR_BIT { + EESIPR_TWB1IP = 2147483648, + EESIPR_TWBIP = 1073741824, + EESIPR_TC1IP = 536870912, + EESIPR_TUCIP = 268435456, + EESIPR_ROCIP = 134217728, + EESIPR_TABTIP = 67108864, + EESIPR_RABTIP = 33554432, + EESIPR_RFCOFIP = 16777216, + EESIPR_ADEIP = 8388608, + EESIPR_ECIIP = 4194304, + EESIPR_FTCIP = 2097152, + EESIPR_TDEIP = 1048576, + EESIPR_TFUFIP = 524288, + EESIPR_FRIP = 262144, + EESIPR_RDEIP = 131072, + EESIPR_RFOFIP = 65536, + EESIPR_CNDIP = 2048, + EESIPR_DLCIP = 1024, + EESIPR_CDIP = 512, + EESIPR_TROIP = 256, + EESIPR_RMAFIP = 128, + EESIPR_CEEFIP = 64, + EESIPR_CELFIP = 32, + EESIPR_RRFIP = 16, + EESIPR_RTLFIP = 8, + EESIPR_RTSFIP = 4, + EESIPR_PREIP = 2, + EESIPR_CERFIP = 1, }; -struct sdma_script_start_addrs { - s32 ap_2_ap_addr; - s32 ap_2_bp_addr; - s32 ap_2_ap_fixed_addr; - s32 bp_2_ap_addr; - s32 loopback_on_dsp_side_addr; - s32 mcu_interrupt_only_addr; - s32 firi_2_per_addr; - s32 firi_2_mcu_addr; - s32 per_2_firi_addr; - s32 mcu_2_firi_addr; - s32 uart_2_per_addr; - s32 uart_2_mcu_addr; - s32 per_2_app_addr; - s32 mcu_2_app_addr; - s32 per_2_per_addr; - s32 uartsh_2_per_addr; - s32 uartsh_2_mcu_addr; - s32 per_2_shp_addr; - s32 mcu_2_shp_addr; - s32 ata_2_mcu_addr; - s32 mcu_2_ata_addr; - s32 app_2_per_addr; - s32 app_2_mcu_addr; - s32 shp_2_per_addr; - s32 shp_2_mcu_addr; - s32 mshc_2_mcu_addr; - s32 mcu_2_mshc_addr; - s32 spdif_2_mcu_addr; - s32 mcu_2_spdif_addr; - s32 asrc_2_mcu_addr; - s32 ext_mem_2_ipu_addr; - s32 descrambler_addr; - s32 dptc_dvfs_addr; - s32 utra_addr; - s32 ram_code_start_addr; - s32 mcu_2_ssish_addr; - s32 ssish_2_mcu_addr; - s32 hdmi_dma_addr; - s32 zcanfd_2_mcu_addr; - s32 zqspi_2_mcu_addr; - s32 mcu_2_ecspi_addr; - s32 mcu_2_sai_addr; - s32 sai_2_mcu_addr; - s32 uart_2_mcu_rom_addr; - s32 uartsh_2_mcu_rom_addr; - s32 mcu_2_zqspi_addr; +enum TD_STS_BIT { + TD_TACT = 2147483648, + TD_TDLE = 1073741824, + TD_TFP1 = 536870912, + TD_TFP0 = 268435456, + TD_TFE = 134217728, + TD_TWBI = 67108864, }; -enum sdma_peripheral_type { - IMX_DMATYPE_SSI = 0, - IMX_DMATYPE_SSI_SP = 1, - IMX_DMATYPE_MMC = 2, - IMX_DMATYPE_SDHC = 3, - IMX_DMATYPE_UART = 4, - IMX_DMATYPE_UART_SP = 5, - IMX_DMATYPE_FIRI = 6, - IMX_DMATYPE_CSPI = 7, - IMX_DMATYPE_CSPI_SP = 8, - IMX_DMATYPE_SIM = 9, - IMX_DMATYPE_ATA = 10, - IMX_DMATYPE_CCM = 11, - IMX_DMATYPE_EXT = 12, - IMX_DMATYPE_MSHC = 13, - IMX_DMATYPE_MSHC_SP = 14, - IMX_DMATYPE_DSP = 15, - IMX_DMATYPE_MEMORY = 16, - IMX_DMATYPE_FIFO_MEMORY = 17, - IMX_DMATYPE_SPDIF = 18, - IMX_DMATYPE_IPU_MEMORY = 19, - IMX_DMATYPE_ASRC = 20, - IMX_DMATYPE_ESAI = 21, - IMX_DMATYPE_SSI_DUAL = 22, - IMX_DMATYPE_ASRC_SP = 23, - IMX_DMATYPE_SAI = 24, - IMX_DMATYPE_MULTI_SAI = 25, - IMX_DMATYPE_HDMI = 26, +enum PSR_BIT { + PSR_LMON = 1, }; -enum imx_dma_prio { - DMA_PRIO_HIGH = 0, - DMA_PRIO_MEDIUM = 1, - DMA_PRIO_LOW = 2, +enum ECMR_BIT { + ECMR_TRCCM = 67108864, + ECMR_RCSC = 8388608, + ECMR_DPAD = 2097152, + ECMR_RZPF = 1048576, + ECMR_ZPF = 524288, + ECMR_PFR = 262144, + ECMR_RXF = 131072, + ECMR_TXF = 65536, + ECMR_MCT = 8192, + ECMR_PRCEF = 4096, + ECMR_MPDE = 512, + ECMR_RE = 64, + ECMR_TE = 32, + ECMR_RTM = 16, + ECMR_ILB = 8, + ECMR_ELB = 4, + ECMR_DM = 2, + ECMR_PRM = 1, }; -struct imx_dma_data { - int dma_request; - int dma_request2; - enum sdma_peripheral_type peripheral_type; - int priority; +enum EDMR_BIT { + EDMR_NBST = 128, + EDMR_EL = 64, + EDMR_DL1 = 32, + EDMR_DL0 = 16, + EDMR_SRST_GETHER = 3, + EDMR_SRST_ETHER = 1, }; -struct sdma_desc; - -struct sdma_engine; - -struct sdma_channel { - struct virt_dma_chan vc; - struct sdma_desc *desc; - struct sdma_engine *sdma; - unsigned int channel; - enum dma_transfer_direction direction; - struct dma_slave_config slave_config; - enum sdma_peripheral_type peripheral_type; - unsigned int event_id0; - unsigned int event_id1; - enum dma_slave_buswidth word_size; - unsigned int pc_from_device; - unsigned int pc_to_device; - unsigned int device_to_device; - unsigned int pc_to_pc; - unsigned long flags; - dma_addr_t per_address; - dma_addr_t per_address2; - unsigned long event_mask[2]; - unsigned long watermark_level; - u32 shp_addr; - u32 per_addr; - enum dma_status status; - struct imx_dma_data data; - struct work_struct terminate_worker; - struct list_head terminated; - bool is_ram_script; - unsigned int n_fifos_src; - unsigned int n_fifos_dst; - unsigned int stride_fifos_src; - unsigned int stride_fifos_dst; - unsigned int words_per_fifo; - bool sw_done; +enum RMCR_BIT { + RMCR_RNC = 1, }; -struct sdma_buffer_descriptor; - -struct sdma_desc { - struct virt_dma_desc vd; - unsigned int num_bd; - dma_addr_t bd_phys; - unsigned int buf_tail; - unsigned int buf_ptail; - unsigned int period_len; - unsigned int chn_real_count; - unsigned int chn_count; - struct sdma_channel *sdmac; - struct sdma_buffer_descriptor *bd; +enum TPAUSER_BIT { + TPAUSER_TPAUSE = 65535, + TPAUSER_UNLIMITED = 0, }; -struct sdma_mode_count { - u32 count: 16; - u32 status: 8; - u32 command: 8; +enum EDRRR_BIT { + EDRRR_R = 1, }; -struct sdma_buffer_descriptor { - struct sdma_mode_count mode; - u32 buffer_addr; - u32 ext_buffer_addr; +enum RD_STS_BIT { + RD_RACT = 2147483648, + RD_RDLE = 1073741824, + RD_RFP1 = 536870912, + RD_RFP0 = 268435456, + RD_RFE = 134217728, + RD_RFS10 = 512, + RD_RFS9 = 256, + RD_RFS8 = 128, + RD_RFS7 = 64, + RD_RFS6 = 32, + RD_RFS5 = 16, + RD_RFS4 = 8, + RD_RFS3 = 4, + RD_RFS2 = 2, + RD_RFS1 = 1, }; -struct sdma_channel_control; - -struct sdma_context_data; - -struct sdma_engine { - struct device *dev; - struct sdma_channel channel[32]; - struct sdma_channel_control *channel_control; - void *regs; - struct sdma_context_data *context; - dma_addr_t context_phys; - struct dma_device dma_device; - struct clk *clk_ipg; - struct clk *clk_ahb; - spinlock_t channel_0_lock; - u32 script_number; - struct sdma_script_start_addrs *script_addrs; - const struct sdma_driver_data *drvdata; - u32 spba_start_addr; - u32 spba_end_addr; - unsigned int irq; - dma_addr_t bd0_phys; - struct sdma_buffer_descriptor *bd0; - bool clk_ratio; - bool fw_loaded; +enum TSU_ADSBSY_BIT { + TSU_ADSBSY_0 = 1, }; -struct sdma_channel_control { - u32 current_bd_ptr; - u32 base_bd_ptr; - u32 unused[2]; +enum TSU_FWSLC_BIT { + TSU_FWSLC_POSTENU = 8192, + TSU_FWSLC_POSTENL = 4096, + TSU_FWSLC_CAMSEL03 = 128, + TSU_FWSLC_CAMSEL02 = 64, + TSU_FWSLC_CAMSEL01 = 32, + TSU_FWSLC_CAMSEL00 = 16, + TSU_FWSLC_CAMSEL13 = 8, + TSU_FWSLC_CAMSEL12 = 4, + TSU_FWSLC_CAMSEL11 = 2, + TSU_FWSLC_CAMSEL10 = 1, }; -struct sdma_state_registers { - u32 pc: 14; - u32 unused1: 1; - u32 t: 1; - u32 rpc: 14; - u32 unused0: 1; - u32 sf: 1; - u32 spc: 14; - u32 unused2: 1; - u32 df: 1; - u32 epc: 14; - u32 lm: 2; +enum PIR_BIT { + PIR_MDI = 8, + PIR_MDO = 4, + PIR_MMD = 2, + PIR_MDC = 1, }; -struct sdma_context_data { - struct sdma_state_registers channel_state; - u32 gReg[8]; - u32 mda; - u32 msa; - u32 ms; - u32 md; - u32 pda; - u32 psa; - u32 ps; - u32 pd; - u32 ca; - u32 cs; - u32 dda; - u32 dsa; - u32 ds; - u32 dd; - u32 scratch0; - u32 scratch1; - u32 scratch2; - u32 scratch3; - u32 scratch4; - u32 scratch5; - u32 scratch6; - u32 scratch7; +enum RD_LEN_BIT { + RD_RFL = 65535, + RD_RBL = 4294901760, }; -struct sdma_firmware_header { - u32 magic; - u32 version_major; - u32 version_minor; - u32 script_addrs_start; - u32 num_script_addrs; - u32 ram_code_start; - u32 ram_code_size; +enum EDSR_BIT { + EDSR_ENT = 1, + EDSR_ENR = 2, }; -struct sdma_peripheral_config { - int n_fifos_src; - int n_fifos_dst; - int stride_fifos_src; - int stride_fifos_dst; - int words_per_fifo; - bool sw_done; +enum ARSTR_BIT { + ARSTR_ARST = 1, }; -struct smem_partition { - void *virt_base; - phys_addr_t phys_base; - size_t cacheline; - size_t size; +enum GECMR_BIT { + GECMR_10 = 0, + GECMR_100 = 4, + GECMR_1000 = 1, }; -struct smem_region { - phys_addr_t aux_base; - void *virt_base; - size_t size; +struct bb_info { + void (*set_gate)(void *); + struct mdiobb_ctrl ctrl; + void *addr; }; -struct smem_ptable; +struct sh_eth_rxdesc; -struct qcom_smem { - struct device *dev; - struct hwspinlock *hwlock; - u32 item_count; - struct platform_device *socinfo; - struct smem_ptable *ptable; - struct smem_partition global_partition; - struct smem_partition partitions[20]; - unsigned int num_regions; - struct smem_region regions[0]; -}; +struct sh_eth_txdesc; -struct smem_ptable_entry { - __le32 offset; - __le32 size; - __le32 flags; - __le16 host0; - __le16 host1; - __le32 cacheline; - __le32 reserved[7]; +struct sh_eth_private { + struct platform_device *pdev; + struct sh_eth_cpu_data *cd; + const u16 *reg_offset; + void *addr; + void *tsu_addr; + struct clk *clk; + u32 num_rx_ring; + u32 num_tx_ring; + dma_addr_t rx_desc_dma; + dma_addr_t tx_desc_dma; + struct sh_eth_rxdesc *rx_ring; + struct sh_eth_txdesc *tx_ring; + struct sk_buff **rx_skbuff; + struct sk_buff **tx_skbuff; + spinlock_t lock; + u32 cur_rx; + u32 dirty_rx; + u32 cur_tx; + u32 dirty_tx; + u32 rx_buf_sz; + struct napi_struct napi; + bool irq_enabled; + u32 phy_id; + struct mii_bus *mii_bus; + int link; + phy_interface_t phy_interface; + int msg_enable; + int speed; + int duplex; + int port; + int vlan_num_ids; + unsigned int no_ether_link: 1; + unsigned int ether_link_active_low: 1; + unsigned int is_opened: 1; + unsigned int wol_enabled: 1; + long: 32; }; -struct smem_ptable { - u8 magic[4]; - __le32 version; - __le32 num_entries; - __le32 reserved[5]; - struct smem_ptable_entry entry[0]; +struct sh_eth_rxdesc { + u32 status; + u32 len; + u32 addr; + u32 pad0; }; -struct smem_partition_header { - u8 magic[4]; - __le16 host0; - __le16 host1; - __le32 size; - __le32 offset_free_uncached; - __le32 offset_free_cached; - __le32 reserved[3]; +struct sh_eth_txdesc { + u32 status; + u32 len; + u32 addr; + u32 pad0; }; -struct smem_info { - u8 magic[4]; - __le32 size; - __le32 base_addr; - __le32 reserved; - __le16 num_items; +struct sh_eth_plat_data { + int phy; + int phy_irq; + phy_interface_t phy_interface; + void (*set_mdio_gate)(void *); + unsigned char mac_addr[6]; + unsigned int no_ether_link: 1; + unsigned int ether_link_active_low: 1; }; -struct smem_global_entry { - __le32 allocated; - __le32 offset; - __le32 size; - __le32 aux_base; +struct ipq806x_gmac { + struct platform_device *pdev; + struct regmap *nss_common; + struct regmap *qsgmii_csr; + uint32_t id; + struct clk *core_clk; + phy_interface_t phy_mode; }; -struct smem_proc_comm { - __le32 command; - __le32 status; - __le32 params[2]; +struct usb_phy_generic { + struct usb_phy phy; + struct device *dev; + struct clk *clk; + struct regulator *vcc; + struct gpio_desc *gpiod_reset; + struct gpio_desc *gpiod_vbus; + struct regulator *vbus_draw; + bool vbus_draw_enabled; + unsigned long mA; + unsigned int vbus; }; -struct smem_header { - struct smem_proc_comm proc_comm[4]; - __le32 version[32]; - __le32 initialized; - __le32 free_offset; - __le32 available; - __le32 reserved; - struct smem_global_entry toc[512]; +struct tps65910_rtc { + struct rtc_device *rtc; + int irq; }; -struct smem_private_entry { - u16 canary; - __le16 item; - __le32 size; - __le16 padding_data; - __le16 padding_hdr; - __le32 reserved; +struct omap_i2c_bus_platform_data { + u32 clkrate; + u32 rev; + u32 flags; + void (*set_mpu_wkup_lat)(struct device *, long); }; -struct socinfo { - __le32 fmt; - __le32 id; - __le32 ver; - char build_id[32]; - __le32 raw_id; - __le32 raw_ver; - __le32 hw_plat; - __le32 plat_ver; - __le32 accessory_chip; - __le32 hw_plat_subtype; - __le32 pmic_model; - __le32 pmic_die_rev; - __le32 pmic_model_1; - __le32 pmic_die_rev_1; - __le32 pmic_model_2; - __le32 pmic_die_rev_2; - __le32 foundry_id; - __le32 serial_num; - __le32 num_pmics; - __le32 pmic_array_offset; - __le32 chip_family; - __le32 raw_device_family; - __le32 raw_device_num; - __le32 nproduct_id; - char chip_id[32]; - __le32 num_clusters; - __le32 ncluster_array_offset; - __le32 num_subset_parts; - __le32 nsubset_parts_array_offset; - __le32 nmodem_supported; - __le32 feature_code; - __le32 pcode; - __le32 npartnamemap_offset; - __le32 nnum_partname_mapping; - __le32 oem_variant; - __le32 num_kvps; - __le32 kvps_offset; - __le32 num_func_clusters; - __le32 boot_cluster; - __le32 boot_core; +enum { + OMAP_I2C_REV_REG = 0, + OMAP_I2C_IE_REG = 1, + OMAP_I2C_STAT_REG = 2, + OMAP_I2C_IV_REG = 3, + OMAP_I2C_WE_REG = 4, + OMAP_I2C_SYSS_REG = 5, + OMAP_I2C_BUF_REG = 6, + OMAP_I2C_CNT_REG = 7, + OMAP_I2C_DATA_REG = 8, + OMAP_I2C_SYSC_REG = 9, + OMAP_I2C_CON_REG = 10, + OMAP_I2C_OA_REG = 11, + OMAP_I2C_SA_REG = 12, + OMAP_I2C_PSC_REG = 13, + OMAP_I2C_SCLL_REG = 14, + OMAP_I2C_SCLH_REG = 15, + OMAP_I2C_SYSTEST_REG = 16, + OMAP_I2C_BUFSTAT_REG = 17, + OMAP_I2C_IP_V2_REVNB_LO = 18, + OMAP_I2C_IP_V2_REVNB_HI = 19, + OMAP_I2C_IP_V2_IRQSTATUS_RAW = 20, + OMAP_I2C_IP_V2_IRQENABLE_SET = 21, + OMAP_I2C_IP_V2_IRQENABLE_CLR = 22, }; -struct omap_rst_map { - s8 rst; - s8 st; +struct omap_i2c_dev { + struct device *dev; + void *base; + int irq; + int reg_shift; + struct completion cmd_complete; + struct resource *ioarea; + u32 latency; + void (*set_mpu_wkup_lat)(struct device *, long); + u32 speed; + u32 flags; + u16 scheme; + u16 cmd_err; + u8 *buf; + u8 *regs; + size_t buf_len; + long: 32; + struct i2c_adapter adapter; + u8 threshold; + u8 fifo_size; + u32 rev; + unsigned int b_hw: 1; + unsigned int bb_valid: 1; + unsigned int receiver: 1; + u16 iestate; + u16 pscstate; + u16 scllstate; + u16 sclhstate; + u16 syscstate; + u16 westate; + u16 errata; }; -struct omap_prm_domain_map; - -struct omap_prm_data { - u32 base; - const char *name; - const char *clkdm_name; - u16 pwrstctrl; - u16 pwrstst; - const struct omap_prm_domain_map *dmap; - u16 rstctrl; - u16 rstst; - const struct omap_rst_map *rstmap; - u8 flags; +struct i2c_mux_gpio_platform_data { + int parent; + int base_nr; + const unsigned int *values; + int n_values; + const unsigned int *classes; + unsigned int idle; }; -struct omap_prm_domain_map { - unsigned int usable_modes; - unsigned long statechange: 1; - unsigned long logicretstate: 1; +struct gpiomux { + struct i2c_mux_gpio_platform_data data; + int ngpios; + struct gpio_desc **gpios; }; -enum omap_prm_domain_mode { - OMAP_PRMD_OFF = 0, - OMAP_PRMD_RETENTION = 1, - OMAP_PRMD_ON_INACTIVE = 2, - OMAP_PRMD_ON_ACTIVE = 3, -}; +struct ti_bandgap_data; -struct omap_prm; +struct temp_sensor_regval; -struct omap_prm_domain { +struct ti_bandgap { struct device *dev; - struct omap_prm *prm; - struct generic_pm_domain pd; - u16 pwrstctrl; - u16 pwrstst; - const struct omap_prm_domain_map *cap; - u32 pwrstctrl_saved; - unsigned int uses_pm_clk: 1; -}; - -struct omap_prm { - const struct omap_prm_data *data; void *base; - struct omap_prm_domain *prmd; -}; - -struct omap_reset_data { - struct reset_controller_dev rcdev; - struct omap_prm *prm; - u32 mask; + const struct ti_bandgap_data *conf; + struct temp_sensor_regval *regval; + struct clk *fclock; + struct clk *div_clk; spinlock_t lock; - struct clockdomain *clkdm; - struct device *dev; -}; - -struct ti_prm_platform_data { - void (*clkdm_deny_idle)(struct clockdomain *); - void (*clkdm_allow_idle)(struct clockdomain *); - struct clockdomain * (*clkdm_lookup)(const char *); + int irq; + struct gpio_desc *tshut_gpiod; + u32 clk_rate; + struct notifier_block nb; + unsigned int is_suspended: 1; }; -enum { - ACT8945A_ID_DCDC1 = 0, - ACT8945A_ID_DCDC2 = 1, - ACT8945A_ID_DCDC3 = 2, - ACT8945A_ID_LDO1 = 3, - ACT8945A_ID_LDO2 = 4, - ACT8945A_ID_LDO3 = 5, - ACT8945A_ID_LDO4 = 6, - ACT8945A_ID_MAX = 7, -}; +struct temp_sensor_data; -struct act8945a_pmic { - struct regmap *regmap; - u32 op_mode[7]; -}; +struct temp_sensor_registers; -enum tps65218_regulator_id { - TPS65218_DCDC_1 = 0, - TPS65218_DCDC_2 = 1, - TPS65218_DCDC_3 = 2, - TPS65218_DCDC_4 = 3, - TPS65218_DCDC_5 = 4, - TPS65218_DCDC_6 = 5, - TPS65218_LDO_1 = 6, - TPS65218_LS_2 = 7, - TPS65218_LS_3 = 8, +struct ti_temp_sensor { + struct temp_sensor_data *ts_data; + struct temp_sensor_registers *registers; + char *domain; + const int slope_pcb; + const int constant_pcb; + int (*register_cooling)(struct ti_bandgap *, int); + int (*unregister_cooling)(struct ti_bandgap *, int); }; -enum imx_tx_state { - OFF___2 = 0, - WAIT_AFTER_RTS = 1, - SEND = 2, - WAIT_AFTER_SEND = 3, +struct ti_bandgap_data { + unsigned int features; + const int *conv_table; + u32 adc_start_val; + u32 adc_end_val; + char *fclock_name; + char *div_ck_name; + int sensor_count; + int (*report_temperature)(struct ti_bandgap *, int); + int (*expose_sensor)(struct ti_bandgap *, int, char *); + int (*remove_sensor)(struct ti_bandgap *, int); + struct ti_temp_sensor sensors[0]; }; -struct imx_uart_data; - -struct imx_port { - struct uart_port port; - struct timer_list timer; - unsigned int old_status; - unsigned int have_rtscts: 1; - unsigned int have_rtsgpio: 1; - unsigned int dte_mode: 1; - unsigned int inverted_tx: 1; - unsigned int inverted_rx: 1; - struct clk *clk_ipg; - struct clk *clk_per; - const struct imx_uart_data *devdata; - struct mctrl_gpios *gpios; - int idle_counter; - unsigned int dma_is_enabled: 1; - unsigned int dma_is_rxing: 1; - unsigned int dma_is_txing: 1; - struct dma_chan *dma_chan_rx; - struct dma_chan *dma_chan_tx; - struct scatterlist rx_sgl; - struct scatterlist tx_sgl[2]; - void *rx_buf; - struct circ_buf rx_ring; - unsigned int rx_buf_size; - unsigned int rx_period_length; - unsigned int rx_periods; - dma_cookie_t rx_cookie; - unsigned int tx_bytes; - unsigned int dma_tx_nents; - unsigned int saved_reg[10]; - bool context_saved; - enum imx_tx_state tx_state; - struct hrtimer trigger_start_tx; - struct hrtimer trigger_stop_tx; +struct temp_sensor_data { + u32 tshut_hot; + u32 tshut_cold; + u32 t_hot; + u32 t_cold; + u32 min_freq; + u32 max_freq; }; -enum imx_uart_type { - IMX1_UART = 0, - IMX21_UART = 1, - IMX53_UART = 2, - IMX6Q_UART = 3, +struct temp_sensor_registers { + u32 temp_sensor_ctrl; + u32 bgap_tempsoff_mask; + u32 bgap_soc_mask; + u32 bgap_eocz_mask; + u32 bgap_dtemp_mask; + u32 bgap_mask_ctrl; + u32 mask_hot_mask; + u32 mask_cold_mask; + u32 mask_counter_delay_mask; + u32 mask_freeze_mask; + u32 bgap_mode_ctrl; + u32 mode_ctrl_mask; + u32 bgap_counter; + u32 counter_mask; + u32 bgap_threshold; + u32 threshold_thot_mask; + u32 threshold_tcold_mask; + u32 tshut_threshold; + u32 tshut_hot_mask; + u32 tshut_cold_mask; + u32 bgap_status; + u32 status_hot_mask; + u32 status_cold_mask; + u32 ctrl_dtemp_1; + u32 ctrl_dtemp_2; + u32 bgap_efuse; }; -struct imx_uart_data { - unsigned int uts_reg; - enum imx_uart_type devtype; +struct temp_sensor_regval { + u32 bg_mode_ctrl; + u32 bg_ctrl; + u32 bg_counter; + u32 bg_threshold; + u32 tshut_threshold; + void *data; }; -struct imx_port_ucrs { - unsigned int ucr1; - unsigned int ucr2; - unsigned int ucr3; -}; +struct orion_watchdog; -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 orion_watchdog_data { + int wdt_counter_offset; + int wdt_enable_bit; + int rstout_enable_bit; + int rstout_mask_bit; + int (*clock_init)(struct platform_device *, struct orion_watchdog *); + int (*enabled)(struct orion_watchdog *); + int (*start)(struct watchdog_device *); + int (*stop)(struct watchdog_device *); }; -struct drm_wait_vblank_request { - enum drm_vblank_seq_type type; - unsigned int sequence; - unsigned long signal; +struct orion_watchdog { + struct watchdog_device wdt; + void *reg; + void *rstout; + void *rstout_mask; + unsigned long clk_rate; + struct clk *clk; + const struct orion_watchdog_data *data; }; -struct drm_wait_vblank_reply { - enum drm_vblank_seq_type type; - unsigned int sequence; - long tval_sec; - long tval_usec; +struct bcm_kona_wdt { + void *base; + int resolution; + spinlock_t lock; }; -union drm_wait_vblank { - struct drm_wait_vblank_request request; - struct drm_wait_vblank_reply reply; +struct ti_opp_supply_optimum_voltage_table; + +struct ti_opp_supply_data { + struct ti_opp_supply_optimum_voltage_table *vdd_table; + u32 num_vdd_table; + u32 vdd_absolute_max_voltage_uv; + struct dev_pm_opp_supply old_supplies[2]; + struct dev_pm_opp_supply new_supplies[2]; }; -typedef bool (*drm_vblank_get_scanout_position_func)(struct drm_crtc *, bool, int *, int *, ktime_t *, ktime_t *, const struct drm_display_mode *); +struct ti_opp_supply_optimum_voltage_table { + unsigned int reference_uv; + unsigned int optimized_uv; +}; -struct drm_modeset_ctl { - __u32 crtc; - __u32 cmd; +struct ti_opp_supply_of_data { + const u8 flags; + const u32 efuse_voltage_mask; + const bool efuse_voltage_uv; }; -struct drm_crtc_get_sequence { - __u32 crtc_id; - __u32 active; - __u64 sequence; - __s64 sequence_ns; +struct cpuidle_coupled { + cpumask_t coupled_cpus; + int requested_state[16]; + atomic_t ready_waiting_counts; + atomic_t abort_barrier; + int online_count; + int refcnt; + int prevent; }; -struct drm_crtc_queue_sequence { - __u32 crtc_id; - __u32 flags; - __u64 sequence; - __u64 user_data; +struct sdio_device_id; + +struct sdio_driver { + char *name; + const struct sdio_device_id *id_table; + int (*probe)(struct sdio_func *, const struct sdio_device_id *); + void (*remove)(struct sdio_func *); + struct device_driver drv; }; -struct devres_node { - struct list_head entry; - dr_release_t release; - const char *name; - size_t size; +struct sdio_device_id { + __u8 class; + __u16 vendor; + __u16 device; + kernel_ulong_t driver_data; }; -struct devres { - struct devres_node node; +typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool); + +struct bcm2835_timer { + void *control; + void *compare; + int match_mask; long: 32; long: 32; long: 32; @@ -141348,3204 +143650,2268 @@ struct devres { long: 32; long: 32; long: 32; - 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; + long: 32; + long: 32; + struct clock_event_device evt; }; -struct max8998_irq_data { - int reg; - int mask; +struct keystone_timer { + void *base; + unsigned long hz_period; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct clock_event_device event_dev; }; -enum { - MAX8998_REG_IRQ1 = 0, - MAX8998_REG_IRQ2 = 1, - MAX8998_REG_IRQ3 = 2, - MAX8998_REG_IRQ4 = 3, - MAX8998_REG_IRQM1 = 4, - MAX8998_REG_IRQM2 = 5, - MAX8998_REG_IRQM3 = 6, - MAX8998_REG_IRQM4 = 7, - MAX8998_REG_STATUS1 = 8, - MAX8998_REG_STATUS2 = 9, - MAX8998_REG_STATUSM1 = 10, - MAX8998_REG_STATUSM2 = 11, - MAX8998_REG_CHGR1 = 12, - MAX8998_REG_CHGR2 = 13, - MAX8998_REG_LDO_ACTIVE_DISCHARGE1 = 14, - MAX8998_REG_LDO_ACTIVE_DISCHARGE2 = 15, - MAX8998_REG_BUCK_ACTIVE_DISCHARGE3 = 16, - MAX8998_REG_ONOFF1 = 17, - MAX8998_REG_ONOFF2 = 18, - MAX8998_REG_ONOFF3 = 19, - MAX8998_REG_ONOFF4 = 20, - MAX8998_REG_BUCK1_VOLTAGE1 = 21, - MAX8998_REG_BUCK1_VOLTAGE2 = 22, - MAX8998_REG_BUCK1_VOLTAGE3 = 23, - MAX8998_REG_BUCK1_VOLTAGE4 = 24, - MAX8998_REG_BUCK2_VOLTAGE1 = 25, - MAX8998_REG_BUCK2_VOLTAGE2 = 26, - MAX8998_REG_BUCK3 = 27, - MAX8998_REG_BUCK4 = 28, - MAX8998_REG_LDO2_LDO3 = 29, - MAX8998_REG_LDO4 = 30, - MAX8998_REG_LDO5 = 31, - MAX8998_REG_LDO6 = 32, - MAX8998_REG_LDO7 = 33, - MAX8998_REG_LDO8_LDO9 = 34, - MAX8998_REG_LDO10_LDO11 = 35, - MAX8998_REG_LDO12 = 36, - MAX8998_REG_LDO13 = 37, - MAX8998_REG_LDO14 = 38, - MAX8998_REG_LDO15 = 39, - MAX8998_REG_LDO16 = 40, - MAX8998_REG_LDO17 = 41, - MAX8998_REG_BKCHR = 42, - MAX8998_REG_LBCNFG1 = 43, - MAX8998_REG_LBCNFG2 = 44, +struct bcm47xx_wdt { + u32 (*timer_set)(struct bcm47xx_wdt *, u32); + u32 (*timer_set_ms)(struct bcm47xx_wdt *, u32); + u32 max_timer_ms; + void *driver_data; + struct watchdog_device wdd; + struct timer_list soft_timer; + atomic_t soft_ticks; }; -enum { - MAX8998_IRQ_DCINF = 0, - MAX8998_IRQ_DCINR = 1, - MAX8998_IRQ_JIGF = 2, - MAX8998_IRQ_JIGR = 3, - MAX8998_IRQ_PWRONF = 4, - MAX8998_IRQ_PWRONR = 5, - MAX8998_IRQ_WTSREVNT = 6, - MAX8998_IRQ_SMPLEVNT = 7, - MAX8998_IRQ_ALARM1 = 8, - MAX8998_IRQ_ALARM0 = 9, - MAX8998_IRQ_ONKEY1S = 10, - MAX8998_IRQ_TOPOFFR = 11, - MAX8998_IRQ_DCINOVPR = 12, - MAX8998_IRQ_CHGRSTF = 13, - MAX8998_IRQ_DONER = 14, - MAX8998_IRQ_CHGFAULT = 15, - MAX8998_IRQ_LOBAT1 = 16, - MAX8998_IRQ_LOBAT2 = 17, - MAX8998_IRQ_NR = 18, +enum ec_status { + EC_RES_SUCCESS = 0, + EC_RES_INVALID_COMMAND = 1, + EC_RES_ERROR = 2, + EC_RES_INVALID_PARAM = 3, + EC_RES_ACCESS_DENIED = 4, + EC_RES_INVALID_RESPONSE = 5, + EC_RES_INVALID_VERSION = 6, + EC_RES_INVALID_CHECKSUM = 7, + EC_RES_IN_PROGRESS = 8, + EC_RES_UNAVAILABLE = 9, + EC_RES_TIMEOUT = 10, + EC_RES_OVERFLOW = 11, + EC_RES_INVALID_HEADER = 12, + EC_RES_REQUEST_TRUNCATED = 13, + EC_RES_RESPONSE_TOO_BIG = 14, + EC_RES_BUS_ERROR = 15, + EC_RES_BUSY = 16, + EC_RES_INVALID_HEADER_VERSION = 17, + EC_RES_INVALID_HEADER_CRC = 18, + EC_RES_INVALID_DATA_CRC = 19, + EC_RES_DUP_UNAVAILABLE = 20, }; -struct palmas_driver_data { - unsigned int *features; - struct regmap_irq_chip *irq_chip; +enum host_event_code { + EC_HOST_EVENT_LID_CLOSED = 1, + EC_HOST_EVENT_LID_OPEN = 2, + EC_HOST_EVENT_POWER_BUTTON = 3, + EC_HOST_EVENT_AC_CONNECTED = 4, + EC_HOST_EVENT_AC_DISCONNECTED = 5, + EC_HOST_EVENT_BATTERY_LOW = 6, + EC_HOST_EVENT_BATTERY_CRITICAL = 7, + EC_HOST_EVENT_BATTERY = 8, + EC_HOST_EVENT_THERMAL_THRESHOLD = 9, + EC_HOST_EVENT_DEVICE = 10, + EC_HOST_EVENT_THERMAL = 11, + EC_HOST_EVENT_USB_CHARGER = 12, + EC_HOST_EVENT_KEY_PRESSED = 13, + EC_HOST_EVENT_INTERFACE_READY = 14, + EC_HOST_EVENT_KEYBOARD_RECOVERY = 15, + EC_HOST_EVENT_THERMAL_SHUTDOWN = 16, + EC_HOST_EVENT_BATTERY_SHUTDOWN = 17, + EC_HOST_EVENT_THROTTLE_START = 18, + EC_HOST_EVENT_THROTTLE_STOP = 19, + EC_HOST_EVENT_HANG_DETECT = 20, + EC_HOST_EVENT_HANG_REBOOT = 21, + EC_HOST_EVENT_PD_MCU = 22, + EC_HOST_EVENT_BATTERY_STATUS = 23, + EC_HOST_EVENT_PANIC = 24, + EC_HOST_EVENT_KEYBOARD_FASTBOOT = 25, + EC_HOST_EVENT_RTC = 26, + EC_HOST_EVENT_MKBP = 27, + EC_HOST_EVENT_USB_MUX = 28, + EC_HOST_EVENT_MODE_CHANGE = 29, + EC_HOST_EVENT_KEYBOARD_RECOVERY_HW_REINIT = 30, + EC_HOST_EVENT_WOV = 31, + EC_HOST_EVENT_INVALID = 32, }; -enum palmas_external_requestor_id { - PALMAS_EXTERNAL_REQSTR_ID_REGEN1 = 0, - PALMAS_EXTERNAL_REQSTR_ID_REGEN2 = 1, - PALMAS_EXTERNAL_REQSTR_ID_SYSEN1 = 2, - PALMAS_EXTERNAL_REQSTR_ID_SYSEN2 = 3, - PALMAS_EXTERNAL_REQSTR_ID_CLK32KG = 4, - PALMAS_EXTERNAL_REQSTR_ID_CLK32KGAUDIO = 5, - PALMAS_EXTERNAL_REQSTR_ID_REGEN3 = 6, - PALMAS_EXTERNAL_REQSTR_ID_SMPS12 = 7, - PALMAS_EXTERNAL_REQSTR_ID_SMPS3 = 8, - PALMAS_EXTERNAL_REQSTR_ID_SMPS45 = 9, - PALMAS_EXTERNAL_REQSTR_ID_SMPS6 = 10, - PALMAS_EXTERNAL_REQSTR_ID_SMPS7 = 11, - PALMAS_EXTERNAL_REQSTR_ID_SMPS8 = 12, - PALMAS_EXTERNAL_REQSTR_ID_SMPS9 = 13, - PALMAS_EXTERNAL_REQSTR_ID_SMPS10 = 14, - PALMAS_EXTERNAL_REQSTR_ID_LDO1 = 15, - PALMAS_EXTERNAL_REQSTR_ID_LDO2 = 16, - PALMAS_EXTERNAL_REQSTR_ID_LDO3 = 17, - PALMAS_EXTERNAL_REQSTR_ID_LDO4 = 18, - PALMAS_EXTERNAL_REQSTR_ID_LDO5 = 19, - PALMAS_EXTERNAL_REQSTR_ID_LDO6 = 20, - PALMAS_EXTERNAL_REQSTR_ID_LDO7 = 21, - PALMAS_EXTERNAL_REQSTR_ID_LDO8 = 22, - PALMAS_EXTERNAL_REQSTR_ID_LDO9 = 23, - PALMAS_EXTERNAL_REQSTR_ID_LDOLN = 24, - PALMAS_EXTERNAL_REQSTR_ID_LDOUSB = 25, - PALMAS_EXTERNAL_REQSTR_ID_MAX = 26, +enum ec_mkbp_event { + EC_MKBP_EVENT_KEY_MATRIX = 0, + EC_MKBP_EVENT_HOST_EVENT = 1, + EC_MKBP_EVENT_SENSOR_FIFO = 2, + EC_MKBP_EVENT_BUTTON = 3, + EC_MKBP_EVENT_SWITCH = 4, + EC_MKBP_EVENT_FINGERPRINT = 5, + EC_MKBP_EVENT_SYSRQ = 6, + EC_MKBP_EVENT_HOST_EVENT64 = 7, + EC_MKBP_EVENT_CEC_EVENT = 8, + EC_MKBP_EVENT_CEC_MESSAGE = 9, + EC_MKBP_EVENT_PCHG = 12, + EC_MKBP_EVENT_COUNT = 13, }; -enum { - PALMAS_EXT_CONTROL_ENABLE1 = 1, - PALMAS_EXT_CONTROL_ENABLE2 = 2, - PALMAS_EXT_CONTROL_NSLEEP = 4, +enum motionsense_command { + MOTIONSENSE_CMD_DUMP = 0, + MOTIONSENSE_CMD_INFO = 1, + MOTIONSENSE_CMD_EC_RATE = 2, + MOTIONSENSE_CMD_SENSOR_ODR = 3, + MOTIONSENSE_CMD_SENSOR_RANGE = 4, + MOTIONSENSE_CMD_KB_WAKE_ANGLE = 5, + MOTIONSENSE_CMD_DATA = 6, + MOTIONSENSE_CMD_FIFO_INFO = 7, + MOTIONSENSE_CMD_FIFO_FLUSH = 8, + MOTIONSENSE_CMD_FIFO_READ = 9, + MOTIONSENSE_CMD_PERFORM_CALIB = 10, + MOTIONSENSE_CMD_SENSOR_OFFSET = 11, + MOTIONSENSE_CMD_LIST_ACTIVITIES = 12, + MOTIONSENSE_CMD_SET_ACTIVITY = 13, + MOTIONSENSE_CMD_LID_ANGLE = 14, + MOTIONSENSE_CMD_FIFO_INT_ENABLE = 15, + MOTIONSENSE_CMD_SPOOF = 16, + MOTIONSENSE_CMD_TABLET_MODE_LID_ANGLE = 17, + MOTIONSENSE_CMD_SENSOR_SCALE = 18, + MOTIONSENSE_NUM_CMDS = 19, }; 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, + EC_MSG_TX_HEADER_BYTES = 3, + EC_MSG_TX_TRAILER_BYTES = 1, + EC_MSG_TX_PROTO_BYTES = 4, + EC_MSG_RX_PROTO_BYTES = 3, + EC_PROTO2_MSG_BYTES = 256, + EC_MAX_MSG_BYTES = 65536, }; -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, +enum ec_comms_status { + EC_COMMS_STATUS_PROCESSING = 1, }; -enum gpmi_type { - IS_MX23 = 0, - IS_MX28 = 1, - IS_MX6Q = 2, - IS_MX6SX = 3, - IS_MX7D = 4, -}; +typedef s8 int8_t; -struct gpmi_devdata { - enum gpmi_type type; - int bch_max_ecc_strength; - int max_chain_delay; - const char * const *clks; - const int clks_count; +struct ec_motion_sense_activity { + uint8_t sensor_num; + uint8_t activity; + uint8_t enable; + uint8_t reserved; + uint16_t parameters[3]; }; -struct resources { - void *gpmi_regs; - void *bch_regs; - unsigned int dma_low_channel; - unsigned int dma_high_channel; - struct clk *clock[5]; -}; +struct ec_params_motion_sense { + uint8_t cmd; + union { + struct { + uint8_t max_sensor_count; + } dump; + struct { + int16_t data; + } kb_wake_angle; + struct { + uint8_t sensor_num; + } info; + struct { + uint8_t sensor_num; + } info_3; + struct { + uint8_t sensor_num; + } data; + struct { + uint8_t sensor_num; + } fifo_flush; + struct { + uint8_t sensor_num; + } perform_calib; + struct { + uint8_t sensor_num; + } list_activities; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } ec_rate; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } sensor_odr; + struct { + uint8_t sensor_num; + uint8_t roundup; + uint16_t reserved; + int32_t data; + } sensor_range; + struct { + uint8_t sensor_num; + uint16_t flags; + int16_t temp; + int16_t offset[3]; + } __attribute__((packed)) sensor_offset; + struct { + uint8_t sensor_num; + uint16_t flags; + int16_t temp; + uint16_t scale[3]; + } __attribute__((packed)) sensor_scale; + struct { + uint32_t max_data_vector; + } fifo_read; + struct ec_motion_sense_activity set_activity; + struct { + int8_t enable; + } fifo_int_enable; + struct { + uint8_t sensor_id; + uint8_t spoof_enable; + uint8_t reserved; + int16_t components[3]; + } __attribute__((packed)) spoof; + struct { + int16_t lid_angle; + int16_t hys_degree; + } tablet_mode_threshold; + }; +} __attribute__((packed)); -struct gpmi_nfc_hardware_timing { - bool must_apply_timings; - unsigned long clk_rate; - u32 timing0; - u32 timing1; - u32 ctrl1n; +struct ec_response_motion_sensor_data { + uint8_t flags; + uint8_t sensor_num; + union { + int16_t data[3]; + struct { + uint16_t reserved; + uint32_t timestamp; + } __attribute__((packed)); + struct { + uint8_t activity; + uint8_t state; + int16_t add_info[2]; + }; + }; }; -struct bch_geometry { - unsigned int gf_len; - unsigned int ecc_strength; - unsigned int page_size; - unsigned int metadata_size; - unsigned int ecc0_chunk_size; - unsigned int eccn_chunk_size; - unsigned int ecc_chunk_count; - unsigned int payload_size; - unsigned int auxiliary_size; - unsigned int auxiliary_status_offset; - unsigned int block_mark_byte_offset; - unsigned int block_mark_bit_offset; - unsigned int ecc_for_meta; -}; +struct ec_response_motion_sense_fifo_info { + uint16_t size; + uint16_t count; + uint32_t timestamp; + uint16_t total_lost; + uint16_t lost[0]; +} __attribute__((packed)); -struct boot_rom_geometry { - unsigned int stride_size_in_pages; - unsigned int search_area_stride_exponent; +struct ec_response_motion_sense_fifo_data { + uint32_t number_data; + struct ec_response_motion_sensor_data data[0]; }; -struct gpmi_transfer { - u8 cmdbuf[8]; - struct scatterlist sgl; - enum dma_data_direction direction; +struct ec_response_motion_sense { + union { + struct { + uint8_t module_flags; + uint8_t sensor_count; + struct { + struct {} __empty_sensor; + struct ec_response_motion_sensor_data sensor[0]; + }; + } dump; + struct { + uint8_t type; + uint8_t location; + uint8_t chip; + } info; + struct { + uint8_t type; + uint8_t location; + uint8_t chip; + uint32_t min_frequency; + uint32_t max_frequency; + uint32_t fifo_max_event_count; + } info_3; + struct ec_response_motion_sensor_data data; + struct { + int32_t ret; + } ec_rate; + struct { + int32_t ret; + } sensor_odr; + struct { + int32_t ret; + } sensor_range; + struct { + int32_t ret; + } kb_wake_angle; + struct { + int32_t ret; + } fifo_int_enable; + struct { + int32_t ret; + } spoof; + struct { + int16_t temp; + int16_t offset[3]; + } sensor_offset; + struct { + int16_t temp; + int16_t offset[3]; + } perform_calib; + struct { + int16_t temp; + uint16_t scale[3]; + } sensor_scale; + struct ec_response_motion_sense_fifo_info fifo_info; + struct ec_response_motion_sense_fifo_info fifo_flush; + struct ec_response_motion_sense_fifo_data fifo_read; + struct { + uint16_t reserved; + uint32_t enabled; + uint32_t disabled; + } __attribute__((packed)) list_activities; + struct { + uint16_t value; + } lid_angle; + struct { + uint16_t lid_angle; + uint16_t hys_degree; + } tablet_mode_threshold; + }; }; -struct gpmi_nand_data { - const struct gpmi_devdata *devdata; - struct device *dev; - struct platform_device *pdev; - struct resources resources; - struct gpmi_nfc_hardware_timing hw; - struct bch_geometry bch_geometry; - struct completion bch_done; - bool swap_block_mark; - struct boot_rom_geometry rom_geometry; - struct nand_controller base; - struct nand_chip nand; - struct gpmi_transfer transfers[8]; - int ntransfers; - bool bch; - uint32_t bch_flashlayout0; - uint32_t bch_flashlayout1; - char *data_buffer_dma; - void *auxiliary_virt; - dma_addr_t auxiliary_phys; - void *raw_buffer; - struct dma_chan *dma_chans[8]; - struct completion dma_done; +struct ec_host_request { + uint8_t struct_version; + uint8_t checksum; + uint16_t command; + uint8_t command_version; + uint8_t reserved; + uint16_t data_len; }; -struct hspi_priv { - void *addr; - struct spi_controller *ctlr; - struct device *dev; - struct clk *clk; +struct ec_response_get_protocol_info { + uint32_t protocol_versions; + uint16_t max_request_packet_size; + uint16_t max_response_packet_size; + uint32_t flags; }; -struct fixed_mdio_bus { - struct mii_bus *mii_bus; - struct list_head phys; +struct ec_params_hello { + uint32_t in_data; }; -struct fixed_phy { - int addr; - struct phy_device *phydev; - struct fixed_phy_status status; - bool no_carrier; - int (*link_update)(struct net_device *, struct fixed_phy_status *); - struct list_head node; - struct gpio_desc *link_gpiod; +struct ec_response_hello { + uint32_t out_data; }; -enum { - SQ_SG_MODE = 0, - MQ_MG_MODE = 1, +struct ec_params_get_cmd_versions { + uint8_t cmd; }; -enum gfar_irqinfo_id { - GFAR_TX = 0, - GFAR_RX = 1, - GFAR_ER = 2, - GFAR_NUM_IRQS = 3, +struct ec_response_get_cmd_versions { + uint32_t version_mask; }; -struct gianfar_skb_cb { - unsigned int bytes_sent; +struct ec_response_host_event_mask { + uint32_t mask; }; -struct rxfcb { - __be16 flags; - u8 rq; - u8 pro; - u16 reserved; - __be16 vlctl; +union ec_response_get_next_data_v1 { + uint8_t key_matrix[16]; + uint32_t host_event; + uint64_t host_event64; + struct { + uint8_t reserved[3]; + struct ec_response_motion_sense_fifo_info info; + } sensor_fifo; + uint32_t buttons; + uint32_t switches; + uint32_t fp_events; + uint32_t sysrq; + uint32_t cec_events; + uint8_t cec_message[16]; }; -struct txfcb { - u8 flags; - u8 ptp; - u8 l4os; - u8 l3os; - __be16 phcs; - __be16 vlctl; -}; +struct ec_response_get_next_event_v1 { + uint8_t event_type; + union ec_response_get_next_data_v1 data; +} __attribute__((packed)); -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 cros_ec_device { + const char *phys_name; + struct device *dev; + struct class *cros_class; + int (*cmd_readmem)(struct cros_ec_device *, unsigned int, unsigned int, void *); + u16 max_request; + u16 max_response; + u16 max_passthru; + u16 proto_version; + void *priv; + int irq; + u8 *din; + u8 *dout; + int din_size; + int dout_size; + bool wake_enabled; + bool suspended; + int (*cmd_xfer)(struct cros_ec_device *, struct cros_ec_command *); + int (*pkt_xfer)(struct cros_ec_device *, struct cros_ec_command *); + struct lock_class_key lockdep_key; + struct mutex lock; + u8 mkbp_event_supported; + bool host_sleep_v1; + struct blocking_notifier_head event_notifier; + struct ec_response_get_next_event_v1 event_data; + int event_size; + u32 host_event_wake_mask; + u32 last_resume_result; + u16 suspend_timeout_ms; + long: 32; + ktime_t last_event_time; + struct notifier_block notifier_ready; + struct platform_device *ec; + struct platform_device *pd; + struct blocking_notifier_head panic_notifier; }; -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 *); +struct ec_response_get_comms_status { + uint32_t flags; }; -enum { - CPSW_SL_CTL_FULLDUPLEX = 1, - CPSW_SL_CTL_LOOPBACK = 2, - CPSW_SL_CTL_MTEST = 4, - CPSW_SL_CTL_RX_FLOW_EN = 8, - CPSW_SL_CTL_TX_FLOW_EN = 16, - CPSW_SL_CTL_GMII_EN = 32, - CPSW_SL_CTL_TX_PACE = 64, - CPSW_SL_CTL_GIG = 128, - CPSW_SL_CTL_XGIG = 256, - CPSW_SL_CTL_TX_SHORT_GAP_EN = 1024, - CPSW_SL_CTL_CMD_IDLE = 2048, - CPSW_SL_CTL_CRC_TYPE = 4096, - CPSW_SL_CTL_XGMII_EN = 8192, - CPSW_SL_CTL_IFCTL_A = 32768, - CPSW_SL_CTL_IFCTL_B = 65536, - CPSW_SL_CTL_GIG_FORCE = 131072, - CPSW_SL_CTL_EXT_EN = 262144, - CPSW_SL_CTL_EXT_EN_RX_FLO = 524288, - CPSW_SL_CTL_EXT_EN_TX_FLO = 1048576, - CPSW_SL_CTL_TX_SG_LIM_EN = 2097152, - CPSW_SL_CTL_RX_CEF_EN = 4194304, - CPSW_SL_CTL_RX_CSF_EN = 8388608, - CPSW_SL_CTL_RX_CMF_EN = 16777216, - CPSW_SL_CTL_EXT_EN_XGIG = 33554432, - CPSW_SL_CTL_FUNCS_COUNT = 33554433, -}; +struct cros_ec_debugfs; -enum cpsw_devlink_param_id { - CPSW_DEVLINK_PARAM_ID_BASE = 16, - CPSW_DL_PARAM_SWITCH_MODE = 17, - CPSW_DL_PARAM_ALE_BYPASS = 18, +struct ec_response_get_features { + uint32_t flags[2]; }; -struct addr_sync_ctx { - struct net_device *ndev; - const u8 *addr; - int consumed; - int flush; +struct cros_ec_dev { + struct device class_dev; + struct cros_ec_device *ec_dev; + struct device *dev; + struct cros_ec_debugfs *debug_info; + bool has_kb_wake_angle; + u16 cmd_offset; + struct ec_response_get_features features; }; -struct cpsw_meta_xdp { - struct net_device *ndev; - int ch; -}; +struct devfreq_event_desc; -struct cpsw_devlink { - struct cpsw_common *cpsw; +struct devfreq_event_dev { + struct list_head node; + struct device dev; + struct mutex lock; + u32 enable_count; + const struct devfreq_event_desc *desc; + long: 32; }; -struct dwc3_keystone { - struct device *dev; - void *usbss; - struct phy *usb3_phy; -}; +struct devfreq_event_ops; -struct spear_ehci { - struct clk *clk; +struct devfreq_event_desc { + const char *name; + u32 event_type; + void *driver_data; + const struct devfreq_event_ops *ops; }; -struct swoc_info { - __u8 rev; - __u8 reserved[8]; - __u16 LinuxSKU; - __u16 LinuxVer; - __u8 reserved2[47]; -} __attribute__((packed)); - -struct timing_regs { - unsigned int tsusta; - unsigned int tsusto; - unsigned int thdsta; - unsigned int tsudat; - unsigned int tbuf; -}; +struct devfreq_event_data; -struct xiic_version_data { - u32 quirks; +struct devfreq_event_ops { + int (*enable)(struct devfreq_event_dev *); + int (*disable)(struct devfreq_event_dev *); + int (*reset)(struct devfreq_event_dev *); + int (*set_event)(struct devfreq_event_dev *); + int (*get_event)(struct devfreq_event_dev *, struct devfreq_event_data *); }; -enum xiic_endian { - LITTLE = 0, - BIG = 1, +struct devfreq_event_data { + unsigned long load_count; + unsigned long total_count; }; -enum xilinx_i2c_state { - STATE_DONE = 0, - STATE_ERROR = 1, - STATE_START___2 = 2, +struct isl29028_prox_data { + int sampling_int; + int sampling_fract; + int sleep_time; }; -enum i2c_scl_freq { - REG_VALUES_100KHZ = 0, - REG_VALUES_400KHZ = 1, - REG_VALUES_1MHZ = 2, +enum isl29028_als_ir_mode { + ISL29028_MODE_NONE = 0, + ISL29028_MODE_ALS = 1, + ISL29028_MODE_IR = 2, }; -struct xiic_i2c { - struct device *dev; - void *base; - struct completion completion; - struct i2c_adapter adap; - struct i2c_msg *tx_msg; +struct isl29028_chip { struct mutex lock; - unsigned int tx_pos; - unsigned int nmsgs; - struct i2c_msg *rx_msg; - int rx_pos; - enum xiic_endian endianness; - struct clk *clk; - enum xilinx_i2c_state state; - bool singlemaster; - bool dynamic; - bool prev_msg_tx; - u32 quirks; - bool smbus_block_read; - unsigned long input_clk; - unsigned int i2c_clk; -}; - -struct xiic_i2c_platform_data { - u8 num_devices; - const struct i2c_board_info *devices; -}; - -struct sr_thermal; - -struct sr_tmon { - unsigned int crit_temp; - unsigned int tmon_id; - struct sr_thermal *priv; + struct regmap *regmap; + int prox_sampling_int; + int prox_sampling_frac; + bool enable_prox; + int lux_scale; + enum isl29028_als_ir_mode als_ir_mode; }; -struct sr_thermal { - void *regs; - unsigned int max_crit_temp; - struct sr_tmon tmon[6]; +struct rtnl_link { + rtnl_doit_func doit; + rtnl_dumpit_func dumpit; + struct module *owner; + unsigned int flags; + struct callback_head rcu; }; -enum dw_wdt_rmod { - DW_WDT_RMOD_RESET = 1, - DW_WDT_RMOD_IRQ = 2, +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, }; -struct dw_wdt_timeout { - u32 top_val; - unsigned int sec; - unsigned int msec; +enum { + IFLA_BRPORT_UNSPEC = 0, + IFLA_BRPORT_STATE = 1, + IFLA_BRPORT_PRIORITY = 2, + IFLA_BRPORT_COST = 3, + IFLA_BRPORT_MODE = 4, + IFLA_BRPORT_GUARD = 5, + IFLA_BRPORT_PROTECT = 6, + IFLA_BRPORT_FAST_LEAVE = 7, + IFLA_BRPORT_LEARNING = 8, + IFLA_BRPORT_UNICAST_FLOOD = 9, + IFLA_BRPORT_PROXYARP = 10, + IFLA_BRPORT_LEARNING_SYNC = 11, + IFLA_BRPORT_PROXYARP_WIFI = 12, + IFLA_BRPORT_ROOT_ID = 13, + IFLA_BRPORT_BRIDGE_ID = 14, + IFLA_BRPORT_DESIGNATED_PORT = 15, + IFLA_BRPORT_DESIGNATED_COST = 16, + IFLA_BRPORT_ID = 17, + IFLA_BRPORT_NO = 18, + IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19, + IFLA_BRPORT_CONFIG_PENDING = 20, + IFLA_BRPORT_MESSAGE_AGE_TIMER = 21, + IFLA_BRPORT_FORWARD_DELAY_TIMER = 22, + IFLA_BRPORT_HOLD_TIMER = 23, + IFLA_BRPORT_FLUSH = 24, + IFLA_BRPORT_MULTICAST_ROUTER = 25, + IFLA_BRPORT_PAD = 26, + IFLA_BRPORT_MCAST_FLOOD = 27, + IFLA_BRPORT_MCAST_TO_UCAST = 28, + IFLA_BRPORT_VLAN_TUNNEL = 29, + IFLA_BRPORT_BCAST_FLOOD = 30, + IFLA_BRPORT_GROUP_FWD_MASK = 31, + IFLA_BRPORT_NEIGH_SUPPRESS = 32, + IFLA_BRPORT_ISOLATED = 33, + IFLA_BRPORT_BACKUP_PORT = 34, + IFLA_BRPORT_MRP_RING_OPEN = 35, + IFLA_BRPORT_MRP_IN_OPEN = 36, + IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37, + IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38, + IFLA_BRPORT_LOCKED = 39, + IFLA_BRPORT_MAB = 40, + IFLA_BRPORT_MCAST_N_GROUPS = 41, + IFLA_BRPORT_MCAST_MAX_GROUPS = 42, + IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 43, + IFLA_BRPORT_BACKUP_NHID = 44, + __IFLA_BRPORT_MAX = 45, }; -struct dw_wdt { - void *regs; - struct clk *clk; - struct clk *pclk; - unsigned long rate; - enum dw_wdt_rmod rmod; - struct dw_wdt_timeout timeouts[16]; - struct watchdog_device wdd; - struct reset_control *rst; - u32 control; - u32 timeout; - struct dentry *dbgfs_dir; +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, }; -struct sd_busy_data { - struct mmc_card *card; - u8 *reg_buf; +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, }; -struct sdhci_arasan_soc_ctl_map; - -struct sdhci_arasan_clk_ops; - -struct sdhci_arasan_of_data { - const struct sdhci_arasan_soc_ctl_map *soc_ctl_map; - const struct sdhci_pltfm_data *pdata; - const struct sdhci_arasan_clk_ops *clk_ops; +enum rtnl_kinds { + RTNL_KIND_NEW = 0, + RTNL_KIND_DEL = 1, + RTNL_KIND_GET = 2, + RTNL_KIND_SET = 3, }; -struct sdhci_arasan_soc_ctl_field { - u32 reg; - u16 width; - s16 shift; +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, }; -struct sdhci_arasan_soc_ctl_map { - struct sdhci_arasan_soc_ctl_field baseclkfreq; - struct sdhci_arasan_soc_ctl_field clockmultiplier; - struct sdhci_arasan_soc_ctl_field support64b; - bool hiword_update; +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, }; -struct sdhci_arasan_clk_ops { - const struct clk_ops *sdcardclk_ops; - const struct clk_ops *sampleclk_ops; +enum { + IFLA_VF_INFO_UNSPEC = 0, + IFLA_VF_INFO = 1, + __IFLA_VF_INFO_MAX = 2, }; -enum pm_node_id { - NODE_SD_0 = 39, - NODE_SD_1 = 40, +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 dll_reset_type { - PM_DLL_RESET_ASSERT = 0, - PM_DLL_RESET_RELEASE = 1, - PM_DLL_RESET_PULSE = 2, +enum { + IFLA_VF_VLAN_INFO_UNSPEC = 0, + IFLA_VF_VLAN_INFO = 1, + __IFLA_VF_VLAN_INFO_MAX = 2, }; -enum pm_sd_config_type { - SD_CONFIG_EMMC_SEL = 1, - SD_CONFIG_BASECLK = 2, - SD_CONFIG_8BIT = 3, - SD_CONFIG_FIXED = 4, +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 tap_delay_type { - PM_TAPDELAY_INPUT = 0, - PM_TAPDELAY_OUTPUT = 1, +enum { + IFLA_VF_PORT_UNSPEC = 0, + IFLA_VF_PORT = 1, + __IFLA_VF_PORT_MAX = 2, }; -struct sdhci_arasan_clk_data { - struct clk_hw sdcardclk_hw; - struct clk *sdcardclk; - struct clk_hw sampleclk_hw; - struct clk *sampleclk; - int clk_phase_in[11]; - int clk_phase_out[11]; - void (*set_clk_delays)(struct sdhci_host *); - void *clk_of_data; +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, }; -struct sdhci_arasan_data { - struct sdhci_host *host; - struct clk *clk_ahb; - struct phy *phy; - bool is_phy_on; - bool internal_phy_reg; - bool has_cqe; - struct sdhci_arasan_clk_data clk_data; - const struct sdhci_arasan_clk_ops *clk_ops; - struct regmap *soc_ctl_base; - const struct sdhci_arasan_soc_ctl_map *soc_ctl_map; - unsigned int quirks; +enum { + XDP_ATTACHED_NONE = 0, + XDP_ATTACHED_DRV = 1, + XDP_ATTACHED_SKB = 2, + XDP_ATTACHED_HW = 3, + XDP_ATTACHED_MULTI = 4, }; -struct cros_ec_command; - -typedef void (*btf_trace_cros_ec_request_start)(void *, struct cros_ec_command *); - -struct cros_ec_command { - uint32_t version; - uint32_t command; - uint32_t outsize; - uint32_t insize; - uint32_t result; - uint8_t data[0]; +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, }; -typedef void (*btf_trace_cros_ec_request_done)(void *, struct cros_ec_command *, int); - -struct trace_event_raw_cros_ec_request_start { - struct trace_entry ent; - uint32_t version; - uint32_t offset; - uint32_t command; - uint32_t outsize; - uint32_t insize; - char __data[0]; +enum bpf_xdp_mode { + XDP_MODE_SKB = 0, + XDP_MODE_DRV = 1, + XDP_MODE_HW = 2, + __MAX_XDP_MODE = 3, }; -struct trace_event_raw_cros_ec_request_done { - struct trace_entry ent; - uint32_t version; - uint32_t offset; - uint32_t command; - uint32_t outsize; - uint32_t insize; - uint32_t result; - int retval; - char __data[0]; +enum netdev_offload_xstats_type { + NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, }; -struct trace_event_data_offsets_cros_ec_request_start {}; - -struct trace_event_data_offsets_cros_ec_request_done {}; - -enum asahi_compass_chipset { - AKXXXX = 0, - AK8975 = 1, - AK8963 = 2, - AK09911 = 3, - AK09912 = 4, - AK09916 = 5, +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, }; -struct ak_def { - enum asahi_compass_chipset type; - long (*raw_to_gauss)(u16); - u16 range; - u8 ctrl_regs[5]; - u8 ctrl_masks[4]; - u8 ctrl_modes[4]; - u8 data_regs[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, }; -enum ak_ctrl_mode { - POWER_DOWN = 0, - MODE_ONCE = 1, - SELF_TEST = 2, - FUSE_ROM = 3, - MODE_END = 4, +enum { + MDBA_GET_ENTRY_UNSPEC = 0, + MDBA_GET_ENTRY = 1, + MDBA_GET_ENTRY_ATTRS = 2, + __MDBA_GET_ENTRY_MAX = 3, }; -enum ak_ctrl_reg_addr { - ST1 = 0, - ST2 = 1, - CNTL = 2, - ASA_BASE = 3, - MAX_REGS = 4, - REGS_END = 5, +enum { + MDBA_SET_ENTRY_UNSPEC = 0, + MDBA_SET_ENTRY = 1, + MDBA_SET_ENTRY_ATTRS = 2, + __MDBA_SET_ENTRY_MAX = 3, }; -enum ak_ctrl_reg_mask { - ST1_DRDY = 0, - ST2_HOFL = 1, - ST2_DERR = 2, - CNTL_MODE = 3, - MASK_END = 4, +struct rtnl_offload_xstats_request_used { + bool request; + bool used; }; -struct ak8975_data { - struct i2c_client *client; - const struct ak_def *def; - struct mutex lock; - u8 asa[3]; - long raw_to_gauss[3]; - struct gpio_desc *eoc_gpiod; - struct gpio_desc *reset_gpiod; - int eoc_irq; - wait_queue_head_t data_ready_queue; - unsigned long flags; - u8 cntl_cache; - struct iio_mount_matrix orientation; - struct regulator *vdd; - struct regulator *vid; - struct { - s16 channels[3]; - s64 ts; - } scan; +struct rtnl_newlink_tbs { + struct nlattr *tb[66]; + struct nlattr *attr[51]; + struct nlattr *slave_attr[45]; }; -enum ethtool_flags { - ETH_FLAG_TXVLAN = 128, - ETH_FLAG_RXVLAN = 256, - ETH_FLAG_LRO = 32768, - ETH_FLAG_NTUPLE = 134217728, - ETH_FLAG_RXHASH = 268435456, +struct if_stats_msg { + __u8 family; + __u8 pad1; + __u16 pad2; + __u32 ifindex; + __u32 filter_mask; }; -enum ethtool_sfeatures_retval_bits { - ETHTOOL_F_UNSUPPORTED__BIT = 0, - ETHTOOL_F_WISH__BIT = 1, - ETHTOOL_F_COMPAT__BIT = 2, +struct br_port_msg { + __u8 family; + __u32 ifindex; }; -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, +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 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 ifla_vf_mac { + __u32 vf; + __u8 mac[32]; }; -struct ethtool_rx_flow_match { - struct flow_dissector dissector; - struct ethtool_rx_flow_key key; - struct ethtool_rx_flow_key mask; +struct ifla_vf_vlan { + __u32 vf; + __u32 vlan; + __u32 qos; }; -struct ethtool_devlink_compat { - struct devlink *devlink; - union { - struct ethtool_flash efl; - struct ethtool_drvinfo info; - }; +struct ifla_vf_vlan_info { + __u32 vf; + __u32 vlan; + __u32 qos; + __be16 vlan_proto; }; -struct ethtool_value { - __u32 cmd; - __u32 data; +struct ifla_vf_tx_rate { + __u32 vf; + __u32 rate; }; -struct ethtool_rx_flow_rule { - struct flow_rule *rule; - unsigned long priv[0]; +struct ifla_vf_rate { + __u32 vf; + __u32 min_tx_rate; + __u32 max_tx_rate; }; -struct ethtool_link_usettings { - struct ethtool_link_settings base; - struct { - __u32 supported[4]; - __u32 advertising[4]; - __u32 lp_advertising[4]; - } link_modes; +struct ifla_vf_spoofchk { + __u32 vf; + __u32 setting; }; -struct ethtool_rx_flow_spec_input { - const struct ethtool_rx_flow_spec *fs; - u32 rss_ctx; +struct ifla_vf_link_state { + __u32 vf; + __u32 link_state; }; -struct ethtool_gstrings { - __u32 cmd; - __u32 string_set; - __u32 len; - __u8 data[0]; +struct ifla_vf_rss_query_en { + __u32 vf; + __u32 setting; }; -struct ethtool_perm_addr { - __u32 cmd; - __u32 size; - __u8 data[0]; +struct ifla_vf_trust { + __u32 vf; + __u32 setting; }; -struct ethtool_sset_info { - __u32 cmd; - __u32 reserved; - __u64 sset_mask; - __u32 data[0]; +struct rtnl_stats_dump_filters { + u32 mask[6]; }; -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 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 ethtool_get_features_block { - __u32 available; - __u32 requested; - __u32 active; - __u32 never_changed; +struct rtnl_mdb_dump_ctx { + long idx; }; -struct ethtool_gfeatures { - __u32 cmd; - __u32 size; - struct ethtool_get_features_block features[0]; +struct rtnl_link_ifmap { + __u64 mem_start; + __u64 mem_end; + __u64 base_addr; + __u16 irq; + __u8 dma; + __u8 port; + long: 32; }; -struct ethtool_set_features_block { - __u32 valid; - __u32 requested; +struct ifla_vf_broadcast { + __u8 broadcast[32]; }; -struct ethtool_sfeatures { - __u32 cmd; - __u32 size; - struct ethtool_set_features_block features[0]; +struct br_mdb_entry { + __u32 ifindex; + __u8 state; + __u8 flags; + __u16 vid; + struct { + union { + __be32 ip4; + struct in6_addr ip6; + unsigned char mac_addr[6]; + } u; + __be16 proto; + } addr; }; -struct ethtool_per_queue_op { - __u32 cmd; - __u32 sub_command; - __u32 queue_mask[128]; - char data[0]; +enum tc_mq_command { + TC_MQ_CREATE = 0, + TC_MQ_DESTROY = 1, + TC_MQ_STATS = 2, + TC_MQ_GRAFT = 3, }; -struct ipv6_mreq { - struct in6_addr ipv6mr_multiaddr; - int ipv6mr_ifindex; +struct tc_qopt_offload_stats { + struct gnet_stats_basic_sync *bstats; + struct gnet_stats_queue *qstats; }; -struct ip6_mtuinfo { - struct sockaddr_in6 ip6m_addr; - __u32 ip6m_mtu; +struct tc_mq_opt_offload_graft_params { + unsigned long queue; + u32 child_handle; }; -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; +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; + }; }; -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, +struct mq_sched { + struct Qdisc **qdiscs; }; -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, +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 ib_mad; - -enum rdma_link_layer { - IB_LINK_LAYER_UNSPECIFIED = 0, - IB_LINK_LAYER_INFINIBAND = 1, - IB_LINK_LAYER_ETHERNET = 2, +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; + long: 32; }; -enum rdma_netdev_t { - RDMA_NETDEV_OPA_VNIC = 0, - RDMA_NETDEV_IPOIB = 1, +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 ib_srq_attr_mask { - IB_SRQ_MAX_WR = 1, - IB_SRQ_LIMIT = 2, +struct xfrm_tunnel { + int (*handler)(struct sk_buff *); + int (*cb_handler)(struct sk_buff *, int); + int (*err_handler)(struct sk_buff *, u32); + struct xfrm_tunnel __attribute__((btf_type_tag("rcu"))) *next; + int priority; }; -enum 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, +struct ac6_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct inet6_dev *idev; }; -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, +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, }; -struct uverbs_attr_bundle; +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 rdma_cm_id; +typedef void (*btf_trace_rpc_xdr_sendto)(void *, const struct rpc_task *, const struct xdr_buf *); -struct iw_cm_id; +typedef void (*btf_trace_rpc_xdr_recvfrom)(void *, const struct rpc_task *, const struct xdr_buf *); -struct iw_cm_conn_param; +typedef void (*btf_trace_rpc_xdr_reply_pages)(void *, const struct rpc_task *, const struct xdr_buf *); -struct ib_qp; +typedef void (*btf_trace_rpc_clnt_free)(void *, const struct rpc_clnt *); -struct ib_send_wr; +typedef void (*btf_trace_rpc_clnt_killall)(void *, const struct rpc_clnt *); -struct ib_recv_wr; +typedef void (*btf_trace_rpc_clnt_shutdown)(void *, const struct rpc_clnt *); -struct ib_cq; +typedef void (*btf_trace_rpc_clnt_release)(void *, const struct rpc_clnt *); -struct ib_wc; +typedef void (*btf_trace_rpc_clnt_replace_xprt)(void *, const struct rpc_clnt *); -struct ib_srq; +typedef void (*btf_trace_rpc_clnt_replace_xprt_err)(void *, const struct rpc_clnt *); -struct ib_grh; +typedef void (*btf_trace_rpc_clnt_new)(void *, const struct rpc_clnt *, const struct rpc_xprt *, const struct rpc_create_args *); -struct ib_device_attr; +typedef void (*btf_trace_rpc_clnt_new_err)(void *, const char *, const char *, int); -struct ib_udata; +typedef void (*btf_trace_rpc_clnt_clone_err)(void *, const struct rpc_clnt *, int); -struct ib_device_modify; +typedef void (*btf_trace_rpc_call_status)(void *, const struct rpc_task *); -struct ib_port_attr; +typedef void (*btf_trace_rpc_connect_status)(void *, const struct rpc_task *); -struct ib_port_modify; +typedef void (*btf_trace_rpc_timeout_status)(void *, const struct rpc_task *); -struct ib_port_immutable; +typedef void (*btf_trace_rpc_retry_refresh_status)(void *, const struct rpc_task *); -struct rdma_netdev_alloc_params; +typedef void (*btf_trace_rpc_refresh_status)(void *, const struct rpc_task *); -union ib_gid; +typedef void (*btf_trace_rpc_request)(void *, const struct rpc_task *); -struct ib_gid_attr; +typedef void (*btf_trace_rpc_task_begin)(void *, const struct rpc_task *, const void *); -struct ib_ucontext; +typedef void (*btf_trace_rpc_task_run_action)(void *, const struct rpc_task *, const void *); -struct rdma_user_mmap_entry; +typedef void (*btf_trace_rpc_task_sync_sleep)(void *, const struct rpc_task *, const void *); -struct ib_pd; +typedef void (*btf_trace_rpc_task_sync_wake)(void *, const struct rpc_task *, const void *); -struct ib_ah; +typedef void (*btf_trace_rpc_task_complete)(void *, const struct rpc_task *, const void *); -struct rdma_ah_init_attr; +typedef void (*btf_trace_rpc_task_timeout)(void *, const struct rpc_task *, const void *); -struct rdma_ah_attr; +typedef void (*btf_trace_rpc_task_signalled)(void *, const struct rpc_task *, const void *); -struct ib_srq_init_attr; +typedef void (*btf_trace_rpc_task_end)(void *, const struct rpc_task *, const void *); -struct ib_srq_attr; +typedef void (*btf_trace_rpc_task_call_done)(void *, const struct rpc_task *, const void *); -struct ib_qp_init_attr; +typedef void (*btf_trace_rpc_task_sleep)(void *, const struct rpc_task *, const struct rpc_wait_queue *); -struct ib_qp_attr; +typedef void (*btf_trace_rpc_task_wakeup)(void *, const struct rpc_task *, const struct rpc_wait_queue *); -struct ib_cq_init_attr; +typedef void (*btf_trace_rpc_bad_callhdr)(void *, const struct rpc_task *); -struct ib_mr; +typedef void (*btf_trace_rpc_bad_verifier)(void *, const struct rpc_task *); -struct ib_sge; +typedef void (*btf_trace_rpc__prog_unavail)(void *, const struct rpc_task *); -struct ib_mr_status; +typedef void (*btf_trace_rpc__prog_mismatch)(void *, const struct rpc_task *); -struct ib_mw; +typedef void (*btf_trace_rpc__proc_unavail)(void *, const struct rpc_task *); -struct ib_xrcd; +typedef void (*btf_trace_rpc__garbage_args)(void *, const struct rpc_task *); -struct ib_flow; +typedef void (*btf_trace_rpc__unparsable)(void *, const struct rpc_task *); -struct ib_flow_attr; +typedef void (*btf_trace_rpc__mismatch)(void *, const struct rpc_task *); -struct ib_flow_action; +typedef void (*btf_trace_rpc__stale_creds)(void *, const struct rpc_task *); -struct ib_wq; +typedef void (*btf_trace_rpc__bad_creds)(void *, const struct rpc_task *); -struct ib_wq_init_attr; +typedef void (*btf_trace_rpc__auth_tooweak)(void *, const struct rpc_task *); -struct ib_wq_attr; +typedef void (*btf_trace_rpcb_prog_unavail_err)(void *, const struct rpc_task *); -struct ib_rwq_ind_table; +typedef void (*btf_trace_rpcb_timeout_err)(void *, const struct rpc_task *); -struct ib_rwq_ind_table_init_attr; +typedef void (*btf_trace_rpcb_bind_version_err)(void *, const struct rpc_task *); -struct ib_dm; +typedef void (*btf_trace_rpcb_unreachable_err)(void *, const struct rpc_task *); -struct ib_dm_alloc_attr; +typedef void (*btf_trace_rpcb_unrecognized_err)(void *, const struct rpc_task *); -struct ib_dm_mr_attr; +typedef void (*btf_trace_rpc_buf_alloc)(void *, const struct rpc_task *, int); -struct ib_counters; +typedef void (*btf_trace_rpc_call_rpcerror)(void *, const struct rpc_task *, int, int); -struct ib_counters_read_attr; +typedef void (*btf_trace_rpc_stats_latency)(void *, const struct rpc_task *, ktime_t, ktime_t, ktime_t); -struct rdma_hw_stats; +typedef void (*btf_trace_rpc_xdr_overflow)(void *, const struct xdr_stream *, size_t); -struct rdma_counter; +typedef void (*btf_trace_rpc_xdr_alignment)(void *, const struct xdr_stream *, size_t, unsigned int); -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; -}; +typedef void (*btf_trace_rpc_socket_state_change)(void *, struct rpc_xprt *, struct socket *); -enum ib_atomic_cap { - IB_ATOMIC_NONE = 0, - IB_ATOMIC_HCA = 1, - IB_ATOMIC_GLOB = 2, -}; +typedef void (*btf_trace_rpc_socket_connect)(void *, struct rpc_xprt *, struct socket *, int); -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; -}; +typedef void (*btf_trace_rpc_socket_error)(void *, struct rpc_xprt *, struct socket *, int); -struct ib_rss_caps { - u32 supported_qpts; - u32 max_rwq_indirection_tables; - u32 max_rwq_indirection_table_size; -}; +typedef void (*btf_trace_rpc_socket_reset_connection)(void *, struct rpc_xprt *, struct socket *, int); -struct ib_tm_caps { - u32 max_rndv_hdr_size; - u32 max_num_tags; - u32 flags; - u32 max_ops; - u32 max_sge; -}; +typedef void (*btf_trace_rpc_socket_close)(void *, struct rpc_xprt *, struct socket *); -struct ib_cq_caps { - u16 max_cq_moderation_count; - u16 max_cq_moderation_period; -}; +typedef void (*btf_trace_rpc_socket_shutdown)(void *, struct rpc_xprt *, struct socket *); -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; - long: 32; - 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; - long: 32; - 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; - long: 32; - u64 max_dm_size; - u32 max_sgl_rd; - long: 32; -}; +typedef void (*btf_trace_rpc_socket_nospace)(void *, const struct rpc_rqst *, const struct sock_xprt *); -struct hw_stats_device_data; +typedef void (*btf_trace_xprt_create)(void *, const struct rpc_xprt *); -struct rdma_restrack_root; +typedef void (*btf_trace_xprt_connect)(void *, const struct rpc_xprt *); -struct uapi_definition; +typedef void (*btf_trace_xprt_disconnect_auto)(void *, const struct rpc_xprt *); -struct ib_port_data; +typedef void (*btf_trace_xprt_disconnect_done)(void *, const struct rpc_xprt *); -struct rdma_link_ops; +typedef void (*btf_trace_xprt_disconnect_force)(void *, const struct rpc_xprt *); -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; - long: 32; - struct ib_device_attr attrs; - struct hw_stats_device_data *hw_stats_data; - 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; - long: 32; -}; +typedef void (*btf_trace_xprt_destroy)(void *, const struct rpc_xprt *); -struct ib_uqp_object; +typedef void (*btf_trace_xprt_timer)(void *, const struct rpc_xprt *, __be32, int); -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, -}; +typedef void (*btf_trace_xprt_lookup_rqst)(void *, const struct rpc_xprt *, __be32, int); -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, -}; +typedef void (*btf_trace_xprt_transmit)(void *, const struct rpc_rqst *, int); -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; -}; +typedef void (*btf_trace_xprt_retransmit)(void *, const struct rpc_rqst *); -struct ib_event; +typedef void (*btf_trace_xprt_ping)(void *, const struct rpc_xprt *, int); -struct ib_qp_security; +typedef void (*btf_trace_xprt_reserve_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); -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; -}; +typedef void (*btf_trace_xprt_release_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); -struct ib_uobject; +typedef void (*btf_trace_xprt_reserve_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); -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; -}; +typedef void (*btf_trace_xprt_release_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); -struct ib_uverbs_file; +typedef void (*btf_trace_xprt_get_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); -struct ib_rdmacg_object {}; +typedef void (*btf_trace_xprt_put_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); -struct uverbs_api_object; +typedef void (*btf_trace_xprt_reserve)(void *, const struct rpc_rqst *); -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; - long: 32; -}; +typedef void (*btf_trace_xs_data_ready)(void *, const struct rpc_xprt *); -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; -}; +typedef void (*btf_trace_xs_stream_read_data)(void *, struct rpc_xprt *, ssize_t, size_t); -struct ib_sig_attrs; +typedef void (*btf_trace_xs_stream_read_request)(void *, struct sock_xprt *); -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; -}; +typedef void (*btf_trace_rpcb_getport)(void *, const struct rpc_clnt *, const struct rpc_task *, unsigned int); -struct ib_dm { - struct ib_device *device; - u32 length; - u32 flags; - struct ib_uobject *uobject; - atomic_t usecnt; -}; +typedef void (*btf_trace_rpcb_setport)(void *, const struct rpc_task *, int, unsigned short); -enum ib_signature_type { - IB_SIG_TYPE_NONE = 0, - IB_SIG_TYPE_T10_DIF = 1, -}; +typedef void (*btf_trace_pmap_register)(void *, u32, u32, int, unsigned short); -enum ib_t10_dif_bg_type { - IB_T10DIF_CRC = 0, - IB_T10DIF_CSUM = 1, -}; +typedef void (*btf_trace_rpcb_register)(void *, u32, u32, const char *, const char *); -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; -}; +typedef void (*btf_trace_rpcb_unregister)(void *, u32, u32, const char *); -struct ib_sig_domain { - enum ib_signature_type sig_type; - union { - struct ib_t10_dif_domain dif; - } sig; -}; +typedef void (*btf_trace_rpc_tls_unavailable)(void *, const struct rpc_clnt *, const struct rpc_xprt *); -struct ib_sig_attrs { - u8 check_mask; - struct ib_sig_domain mem; - struct ib_sig_domain wire; - int meta_length; -}; +typedef void (*btf_trace_rpc_tls_not_started)(void *, const struct rpc_clnt *, const struct rpc_xprt *); -struct irq_poll; +typedef void (*btf_trace_svc_xdr_recvfrom)(void *, const struct xdr_buf *); -typedef int irq_poll_fn(struct irq_poll *, int); +typedef void (*btf_trace_svc_xdr_sendto)(void *, __be32, const struct xdr_buf *); -struct irq_poll { - struct list_head list; - unsigned long state; - int weight; - irq_poll_fn *poll; -}; +typedef void (*btf_trace_svc_authenticate)(void *, const struct svc_rqst *, enum svc_auth_status); -struct ib_ucq_object; +typedef void (*btf_trace_svc_process)(void *, const struct svc_rqst *, const char *); -typedef void (*ib_comp_handler)(struct ib_cq *, void *); +typedef void (*btf_trace_svc_defer)(void *, const struct svc_rqst *); -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, -}; +typedef void (*btf_trace_svc_drop)(void *, const struct svc_rqst *); -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; - long: 32; - ktime_t timestamp; - u8 interrupt: 1; - u8 shared: 1; - unsigned int comp_vector; - struct rdma_restrack_entry res; - long: 32; -}; +typedef void (*btf_trace_svc_send)(void *, const struct svc_rqst *, int); -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, -}; +typedef void (*btf_trace_svc_replace_page_err)(void *, const struct svc_rqst *); -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; -}; +typedef void (*btf_trace_svc_stats_latency)(void *, const struct svc_rqst *); -struct ib_usrq_object; +typedef void (*btf_trace_svc_xprt_create_err)(void *, const char *, const char *, struct sockaddr *, size_t, const struct svc_xprt *); -enum ib_srq_type { - IB_SRQT_BASIC = 0, - IB_SRQT_XRC = 1, - IB_SRQT_TM = 2, -}; +typedef void (*btf_trace_svc_xprt_enqueue)(void *, const struct svc_xprt *, unsigned long); -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; -}; +typedef void (*btf_trace_svc_xprt_dequeue)(void *, const struct svc_rqst *); -struct ib_xrcd { - struct ib_device *device; - atomic_t usecnt; - struct inode *inode; - struct rw_semaphore tgt_qps_rwsem; - struct xarray tgt_qps; -}; +typedef void (*btf_trace_svc_xprt_no_write_space)(void *, const struct svc_xprt *); -struct ib_uwq_object; +typedef void (*btf_trace_svc_xprt_close)(void *, const struct svc_xprt *); -enum ib_wq_state { - IB_WQS_RESET = 0, - IB_WQS_RDY = 1, - IB_WQS_ERR = 2, -}; +typedef void (*btf_trace_svc_xprt_detach)(void *, const struct svc_xprt *); -enum ib_wq_type { - IB_WQT_RQ = 0, -}; +typedef void (*btf_trace_svc_xprt_free)(void *, const struct svc_xprt *); -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; -}; +typedef void (*btf_trace_svc_tls_start)(void *, const struct svc_xprt *); -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, -}; +typedef void (*btf_trace_svc_tls_upcall)(void *, const struct svc_xprt *); -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, -}; +typedef void (*btf_trace_svc_tls_unavailable)(void *, const struct svc_xprt *); -struct ib_cqe; +typedef void (*btf_trace_svc_tls_not_started)(void *, const struct svc_xprt *); -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; -}; +typedef void (*btf_trace_svc_tls_timed_out)(void *, const struct svc_xprt *); -struct ib_cqe { - void (*done)(struct ib_cq *, struct ib_wc *); -}; +typedef void (*btf_trace_svc_xprt_accept)(void *, const struct svc_xprt *, const char *); -union ib_gid { - u8 raw[16]; - struct { - __be64 subnet_prefix; - __be64 interface_id; - } global; -}; +typedef void (*btf_trace_svc_wake_up)(void *, int); -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, -}; +typedef void (*btf_trace_svc_alloc_arg_err)(void *, unsigned int, unsigned int); -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; - long: 32; -}; +typedef void (*btf_trace_svc_defer_drop)(void *, const struct svc_deferred_req *); -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; -}; +typedef void (*btf_trace_svc_defer_queue)(void *, const struct svc_deferred_req *); -struct ib_ports_pkeys; +typedef void (*btf_trace_svc_defer_recv)(void *, const struct svc_deferred_req *); -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; -}; +typedef void (*btf_trace_svcsock_new)(void *, const void *, const struct socket *); -enum port_pkey_state { - IB_PORT_PKEY_NOT_VALID = 0, - IB_PORT_PKEY_VALID = 1, - IB_PORT_PKEY_LISTED = 2, -}; +typedef void (*btf_trace_svcsock_free)(void *, const void *, const struct socket *); -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; -}; +typedef void (*btf_trace_svcsock_marker)(void *, const struct svc_xprt *, __be32); -struct ib_ports_pkeys { - struct ib_port_pkey main; - struct ib_port_pkey alt; -}; +typedef void (*btf_trace_svcsock_udp_send)(void *, const struct svc_xprt *, ssize_t); -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, -}; +typedef void (*btf_trace_svcsock_udp_recv)(void *, const struct svc_xprt *, ssize_t); -enum rdma_nl_counter_mask { - RDMA_COUNTER_MASK_QP_TYPE = 1, - RDMA_COUNTER_MASK_PID = 2, -}; +typedef void (*btf_trace_svcsock_udp_recv_err)(void *, const struct svc_xprt *, ssize_t); -struct auto_mode_param { - int qp_type; -}; +typedef void (*btf_trace_svcsock_tcp_send)(void *, const struct svc_xprt *, ssize_t); -struct rdma_counter_mode { - enum rdma_nl_counter_mode mode; - enum rdma_nl_counter_mask mask; - struct auto_mode_param param; -}; +typedef void (*btf_trace_svcsock_tcp_recv)(void *, const struct svc_xprt *, ssize_t); -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; -}; +typedef void (*btf_trace_svcsock_tcp_recv_eagain)(void *, const struct svc_xprt *, ssize_t); -struct rdma_stat_desc; +typedef void (*btf_trace_svcsock_tcp_recv_err)(void *, const struct svc_xprt *, ssize_t); -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]; -}; +typedef void (*btf_trace_svcsock_data_ready)(void *, const struct svc_xprt *, ssize_t); -struct rdma_stat_desc { - const char *name; - unsigned int flags; - const void *priv; -}; +typedef void (*btf_trace_svcsock_write_space)(void *, const struct svc_xprt *, ssize_t); -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, -}; +typedef void (*btf_trace_svcsock_tcp_recv_short)(void *, const struct svc_xprt *, u32, u32); -struct ib_send_wr { - struct ib_send_wr *next; - long: 32; - 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; - long: 32; +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 ib_sge { - u64 addr; - u32 length; - u32 lkey; +struct trace_event_raw_rpc_clnt_class { + struct trace_entry ent; + unsigned int client_id; + char __data[0]; }; -struct ib_recv_wr { - struct ib_recv_wr *next; - long: 32; - union { - u64 wr_id; - struct ib_cqe *wr_cqe; - }; - struct ib_sge *sg_list; - int num_sge; +struct trace_event_raw_rpc_clnt_new { + struct trace_entry ent; + unsigned int client_id; + unsigned long xprtsec; + unsigned long flags; + u32 __data_loc_program; + u32 __data_loc_server; + u32 __data_loc_addr; + u32 __data_loc_port; + char __data[0]; }; -struct ib_grh { - __be32 version_tclass_flow; - __be16 paylen; - u8 next_hdr; - u8 hop_limit; - union ib_gid sgid; - union ib_gid dgid; +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 ib_udata { - const void __attribute__((btf_type_tag("user"))) *inbuf; - void __attribute__((btf_type_tag("user"))) *outbuf; - size_t inlen; - size_t outlen; +struct trace_event_raw_rpc_clnt_clone_err { + struct trace_entry ent; + unsigned int client_id; + int error; + char __data[0]; }; -struct ib_device_modify { - u64 sys_image_guid; - char node_desc[64]; +struct trace_event_raw_rpc_task_status { + struct trace_entry ent; + unsigned int task_id; + unsigned int client_id; + int status; + char __data[0]; }; -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, +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]; }; -enum ib_mtu { - IB_MTU_256 = 1, - IB_MTU_512 = 2, - IB_MTU_1024 = 3, - IB_MTU_2048 = 4, - IB_MTU_4096 = 5, +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 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 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 ib_port_modify { - u32 set_port_cap_mask; - u32 clr_port_cap_mask; - u8 init_type; +struct trace_event_raw_rpc_failure { + struct trace_entry ent; + unsigned int task_id; + unsigned int client_id; + char __data[0]; }; -struct ib_port_immutable { - int pkey_tbl_len; - int gid_tbl_len; - u32 core_cap_flags; - u32 max_mad_size; +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 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 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 rdma_user_mmap_entry { - struct kref ref; - struct ib_ucontext *ucontext; - unsigned long start_pgoff; - size_t npages; - bool driver_removed; +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]; }; -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 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 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 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 rdma_ah_init_attr { - struct rdma_ah_attr *ah_attr; - u32 flags; - struct net_device *xmit_slave; +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 ib_ah_attr { - u16 dlid; - u8 src_path_bits; +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 roce_ah_attr { - u8 dmac[6]; +struct trace_event_raw_xs_socket_event_done { + struct trace_entry ent; + int error; + unsigned int socket_state; + unsigned int sock_state; + long: 32; + unsigned long long ino; + __u8 saddr[28]; + __u8 daddr[28]; + char __data[0]; }; -struct opa_ah_attr { - u32 dlid; - u8 src_path_bits; - bool make_grd; +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 ib_global_route { - const struct ib_gid_attr *sgid_attr; - long: 32; - union ib_gid dgid; - u32 flow_label; - u8 sgid_index; - u8 hop_limit; - u8 traffic_class; +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 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 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 ib_srq_attr { - u32 max_wr; - u32 max_sge; - u32 srq_limit; +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 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 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 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; +struct trace_event_raw_xprt_ping { + struct trace_entry ent; + int status; + u32 __data_loc_addr; + u32 __data_loc_port; + char __data[0]; }; -enum ib_sig_type { - IB_SIGNAL_ALL_WR = 0, - IB_SIGNAL_REQ_WR = 1, +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 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; +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]; }; -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, +struct trace_event_raw_xprt_reserve { + struct trace_entry ent; + unsigned int task_id; + unsigned int client_id; + u32 xid; + char __data[0]; }; -enum ib_mig_state { - IB_MIG_MIGRATED = 0, - IB_MIG_REARM = 1, - IB_MIG_ARMED = 2, +struct trace_event_raw_xs_data_ready { + struct trace_entry ent; + u32 __data_loc_addr; + u32 __data_loc_port; + char __data[0]; }; -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; - long: 32; - 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; - long: 32; +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 ib_cq_init_attr { - unsigned int cqe; - u32 comp_vector; - u32 flags; +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]; }; -enum ib_sig_err_type { - IB_SIG_BAD_GUARD = 0, - IB_SIG_BAD_REFTAG = 1, - IB_SIG_BAD_APPTAG = 2, +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 ib_sig_err { - enum ib_sig_err_type err_type; - u32 expected; - u32 actual; - long: 32; - u64 sig_err_offset; - u32 key; - long: 32; +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 ib_mr_status { - u32 fail_status; - long: 32; - struct ib_sig_err sig_err; +struct trace_event_raw_pmap_register { + struct trace_entry ent; + unsigned int program; + unsigned int version; + int protocol; + unsigned int port; + char __data[0]; }; -enum ib_mw_type { - IB_MW_TYPE_1 = 1, - IB_MW_TYPE_2 = 2, +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 ib_mw { - struct ib_device *device; - struct ib_pd *pd; - struct ib_uobject *uobject; - u32 rkey; - enum ib_mw_type type; +struct trace_event_raw_rpcb_unregister { + struct trace_entry ent; + unsigned int program; + unsigned int version; + u32 __data_loc_netid; + char __data[0]; }; -struct ib_flow { - struct ib_qp *qp; - struct ib_device *device; - struct ib_uobject *uobject; +struct trace_event_raw_rpc_tls_class { + struct trace_entry ent; + unsigned long requested_policy; + u32 version; + u32 __data_loc_servername; + u32 __data_loc_progname; + char __data[0]; }; -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 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 ib_flow_eth_filter { - u8 dst_mac[6]; - u8 src_mac[6]; - __be16 ether_type; - __be16 vlan_tag; - u8 real_sz[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 ib_flow_spec_eth { - u32 type; - u16 size; - struct ib_flow_eth_filter val; - struct ib_flow_eth_filter mask; +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 ib_flow_ib_filter { - __be16 dlid; - __u8 sl; - u8 real_sz[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 ib_flow_spec_ib { - u32 type; - u16 size; - struct ib_flow_ib_filter val; - struct ib_flow_ib_filter mask; +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 ib_flow_ipv4_filter { - __be32 src_ip; - __be32 dst_ip; - u8 proto; - u8 tos; - u8 ttl; - u8 flags; - u8 real_sz[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 ib_flow_spec_ipv4 { - u32 type; - u16 size; - struct ib_flow_ipv4_filter val; - struct ib_flow_ipv4_filter mask; +struct trace_event_raw_svc_replace_page_err { + struct trace_entry ent; + u32 __data_loc_server; + u32 __data_loc_client; + unsigned int netns_ino; + u32 xid; + const void *begin; + const void *respages; + const void *nextpage; + char __data[0]; }; -struct ib_flow_tcp_udp_filter { - __be16 dst_port; - __be16 src_port; - u8 real_sz[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 ib_flow_spec_tcp_udp { - u32 type; - u16 size; - struct ib_flow_tcp_udp_filter val; - struct ib_flow_tcp_udp_filter mask; +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 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 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; + char __data[0]; }; -struct ib_flow_spec_ipv6 { - u32 type; - u16 size; - struct ib_flow_ipv6_filter val; - struct ib_flow_ipv6_filter mask; +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 ib_flow_tunnel_filter { - __be32 tunnel_id; - u8 real_sz[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 ib_flow_spec_tunnel { - u32 type; - u16 size; - struct ib_flow_tunnel_filter val; - struct ib_flow_tunnel_filter mask; +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 ib_flow_esp_filter { - __be32 spi; - __be32 seq; - u8 real_sz[0]; +struct trace_event_raw_svc_wake_up { + struct trace_entry ent; + int pid; + char __data[0]; }; -struct ib_flow_spec_esp { - u32 type; - u16 size; - struct ib_flow_esp_filter val; - struct ib_flow_esp_filter mask; +struct trace_event_raw_svc_alloc_arg_err { + struct trace_entry ent; + unsigned int requested; + unsigned int allocated; + char __data[0]; }; -struct ib_flow_gre_filter { - __be16 c_ks_res0_ver; - __be16 protocol; - __be32 key; - u8 real_sz[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 ib_flow_spec_gre { - u32 type; - u16 size; - struct ib_flow_gre_filter val; - struct ib_flow_gre_filter mask; +struct trace_event_raw_svcsock_lifetime_class { + struct trace_entry ent; + unsigned int netns_ino; + const void *svsk; + const void *sk; + unsigned long type; + unsigned long family; + unsigned long state; + char __data[0]; }; -struct ib_flow_mpls_filter { - __be32 tag; - u8 real_sz[0]; +struct trace_event_raw_svcsock_marker { + struct trace_entry ent; + unsigned int length; + bool last; + u32 __data_loc_addr; + char __data[0]; }; -struct ib_flow_spec_mpls { - u32 type; - u16 size; - struct ib_flow_mpls_filter val; - struct ib_flow_mpls_filter mask; +struct trace_event_raw_svcsock_class { + struct trace_entry ent; + ssize_t result; + unsigned long flags; + u32 __data_loc_addr; + char __data[0]; }; -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 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 ib_flow_spec_action_tag { - enum ib_flow_spec_type type; - u16 size; - u32 tag_id; +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 ib_flow_spec_action_drop { - enum ib_flow_spec_type type; - u16 size; +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 ib_flow_spec_action_handle { - enum ib_flow_spec_type type; - u16 size; - struct ib_flow_action *act; +struct trace_event_raw_cache_event { + struct trace_entry ent; + const struct cache_head *h; + u32 __data_loc_name; + char __data[0]; }; -struct ib_flow_spec_action_count { - enum ib_flow_spec_type type; - u16 size; - struct ib_counters *counters; +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]; }; -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 trace_event_raw_svc_unregister { + struct trace_entry ent; + u32 version; + int error; + u32 __data_loc_program; + char __data[0]; }; -struct ib_flow_attr { - enum ib_flow_attr_type type; - u16 size; - u16 priority; - u32 flags; - u8 num_of_specs; +struct trace_event_data_offsets_rpc_clnt_new { + u32 program; + u32 server; + u32 addr; u32 port; - union ib_flow_spec flows[0]; }; -enum ib_flow_action_type { - IB_FLOW_ACTION_UNSPECIFIED = 0, - IB_FLOW_ACTION_ESP = 1, +struct trace_event_data_offsets_rpc_clnt_new_err { + u32 program; + u32 server; }; -struct ib_flow_action { - struct ib_device *device; - struct ib_uobject *uobject; - enum ib_flow_action_type type; - atomic_t usecnt; +struct trace_event_data_offsets_rpc_request { + u32 progname; + u32 procname; }; -struct ib_counters { - struct ib_device *device; - struct ib_uobject *uobject; - atomic_t usecnt; +struct trace_event_data_offsets_rpc_task_queued { + u32 q_name; }; -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 trace_event_data_offsets_rpc_reply_event { + u32 progname; + u32 procname; + u32 servername; }; -struct ib_wq_attr { - enum ib_wq_state wq_state; - enum ib_wq_state curr_wq_state; - u32 flags; - u32 flags_mask; +struct trace_event_data_offsets_rpc_stats_latency { + u32 progname; + u32 procname; }; -struct ib_rwq_ind_table_init_attr { - u32 log_ind_tbl_size; - struct ib_wq **ind_tbl; +struct trace_event_data_offsets_rpc_xdr_overflow { + u32 progname; + u32 procedure; }; -struct ib_dm_alloc_attr { - u64 length; - u32 alignment; - u32 flags; +struct trace_event_data_offsets_rpc_xdr_alignment { + u32 progname; + u32 procedure; }; -struct ib_dm_mr_attr { - u64 length; - u64 offset; - u32 access_flags; - long: 32; +struct trace_event_data_offsets_rpc_xprt_lifetime_class { + u32 addr; + u32 port; }; -struct ib_counters_read_attr { - u64 *counters_buff; - u32 ncounters; - u32 flags; +struct trace_event_data_offsets_rpc_xprt_event { + u32 addr; + u32 port; }; -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 trace_event_data_offsets_xprt_retransmit { + u32 progname; + u32 procname; }; -struct rdma_port_counter { - struct rdma_counter_mode mode; - struct rdma_hw_stats *hstats; - unsigned int num_counters; - struct mutex lock; +struct trace_event_data_offsets_xprt_ping { + u32 addr; + u32 port; }; -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; - long: 32; - 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 trace_event_data_offsets_xs_data_ready { + u32 addr; + u32 port; }; -struct rdma_link_ops { - struct list_head list; - const char *type; - int (*newlink)(const char *, struct net_device *); +struct trace_event_data_offsets_xs_stream_read_data { + u32 addr; + u32 port; }; -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 trace_event_data_offsets_xs_stream_read_request { + u32 addr; + u32 port; }; -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 trace_event_data_offsets_rpcb_getport { + u32 servername; }; -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 trace_event_data_offsets_rpcb_register { + u32 addr; + u32 netid; }; -struct devlink_linecard_type { - const char *type; - const void *priv; +struct trace_event_data_offsets_rpcb_unregister { + u32 netid; }; -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); +struct trace_event_data_offsets_rpc_tls_class { + u32 servername; + u32 progname; +}; -typedef void (*btf_trace_devlink_health_reporter_state_update)(void *, const struct devlink *, const char *, bool); +struct trace_event_data_offsets_svc_authenticate { + u32 server; + u32 client; +}; -struct devlink_trap_metadata; +struct trace_event_data_offsets_svc_process { + u32 service; + u32 procedure; + u32 addr; +}; -typedef void (*btf_trace_devlink_trap_report)(void *, const struct devlink *, struct sk_buff *, const struct devlink_trap_metadata *); +struct trace_event_data_offsets_svc_rqst_event { + u32 server; + u32 client; +}; -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; +struct trace_event_data_offsets_svc_rqst_status { + u32 server; + u32 client; }; -enum devlink_dpipe_match_type { - DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0, +struct trace_event_data_offsets_svc_replace_page_err { + u32 server; + u32 client; }; -enum devlink_dpipe_action_type { - DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0, +struct trace_event_data_offsets_svc_stats_latency { + u32 server; + u32 client; + u32 procedure; }; -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, +struct trace_event_data_offsets_svc_xprt_create_err { + u32 program; + u32 protocol; + u32 addr; }; -enum devlink_resource_unit { - DEVLINK_RESOURCE_UNIT_ENTRY = 0, +struct trace_event_data_offsets_svc_xprt_enqueue { + u32 server; + u32 client; }; -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, +struct trace_event_data_offsets_svc_xprt_dequeue { + u32 server; + u32 client; }; -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, +struct trace_event_data_offsets_svc_xprt_event { + u32 server; + u32 client; }; -enum { - DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0, - DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 1, +struct trace_event_data_offsets_svc_xprt_accept { + u32 server; + u32 client; + u32 protocol; + u32 service; }; -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, +struct trace_event_data_offsets_svc_deferred_event { + u32 addr; }; -enum devlink_multicast_groups { - DEVLINK_MCGRP_CONFIG = 0, +struct trace_event_data_offsets_svcsock_marker { + u32 addr; }; -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, +struct trace_event_data_offsets_svcsock_class { + u32 addr; }; -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, +struct trace_event_data_offsets_svcsock_tcp_recv_short { + u32 addr; }; -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 trace_event_data_offsets_svcsock_tcp_state { + u32 addr; }; -struct devlink_resource_size_params { - u64 size_min; - u64 size_max; - u64 size_granularity; - enum devlink_resource_unit unit; - long: 32; +struct trace_event_data_offsets_svcsock_accept_class { + u32 service; }; -typedef u64 devlink_resource_occ_get_t(void *); +struct trace_event_data_offsets_cache_event { + u32 name; +}; -struct devlink_resource { - const char *name; - long: 32; - 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 trace_event_data_offsets_register_class { + u32 program; }; -struct devlink_trap_policer_item { - const struct devlink_trap_policer *policer; - long: 32; - u64 rate; - u64 burst; - struct list_head list; +struct trace_event_data_offsets_svc_unregister { + u32 program; }; -struct devlink_stats; +struct trace_event_data_offsets_rpc_xdr_buf_class {}; -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 trace_event_data_offsets_rpc_clnt_class {}; -struct devlink_stats { - u64_stats_t rx_bytes; - u64_stats_t rx_packets; - struct u64_stats_sync syncp; - long: 32; -}; +struct trace_event_data_offsets_rpc_clnt_clone_err {}; -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 trace_event_data_offsets_rpc_task_status {}; -struct devlink_region_ops; +struct trace_event_data_offsets_rpc_task_running {}; -struct devlink_port_region_ops; +struct trace_event_data_offsets_rpc_failure {}; -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 trace_event_data_offsets_rpc_buf_alloc {}; -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; -}; +struct trace_event_data_offsets_rpc_call_rpcerror {}; -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 trace_event_data_offsets_xs_socket_event {}; -struct devlink_snapshot { - struct list_head list; - struct devlink_region *region; - u8 *data; - u32 id; -}; +struct trace_event_data_offsets_xs_socket_event_done {}; -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_data_offsets_rpc_socket_nospace {}; -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_data_offsets_xprt_transmit {}; -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_data_offsets_xprt_writelock_event {}; -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; - long: 32; - u64 time_since_last_recover; - char __data[0]; -}; +struct trace_event_data_offsets_xprt_cong_event {}; -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_data_offsets_xprt_reserve {}; + +struct trace_event_data_offsets_rpcb_setport {}; -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 trace_event_data_offsets_pmap_register {}; -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 trace_event_data_offsets_svc_xdr_msg_class {}; -struct devlink_dpipe_table_ops; +struct trace_event_data_offsets_svc_xdr_buf_class {}; -struct devlink_dpipe_table { - void *priv; - struct list_head list; - const char *name; - bool counters_enabled; - bool counter_control_extern; - bool resource_valid; - long: 32; - u64 resource_id; - u64 resource_units; - struct devlink_dpipe_table_ops *table_ops; - struct callback_head rcu; - long: 32; -}; +struct trace_event_data_offsets_svc_wake_up {}; -struct devlink_dpipe_dump_ctx; +struct trace_event_data_offsets_svc_alloc_arg_err {}; -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 trace_event_data_offsets_svcsock_lifetime_class {}; + +struct printf_spec { + unsigned int type: 8; + int field_width: 24; + unsigned int flags: 8; + unsigned int base: 8; + int precision: 16; }; -struct devlink_dpipe_dump_ctx { - struct genl_info *info; - enum devlink_command cmd; - struct sk_buff *skb; - struct nlattr *nest; - void *hdr; +struct page_flags_fields { + int width; + int shift; + int mask; + const struct printf_spec *spec; + const char *name; }; -struct devlink_dpipe_value; +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 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; - long: 32; +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 devlink_dpipe_action; +union offset_union { + unsigned long un; + long sn; +}; -struct devlink_dpipe_match; +struct omap_smartreflex_dev_attr { + const char *sensor_voltdm_name; +}; -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 omap_hsmmc_dev_attr { + u8 flags; }; -struct devlink_dpipe_action { - enum devlink_dpipe_action_type type; - unsigned int header_index; - struct devlink_dpipe_header *header; - unsigned int field_id; +enum KTHREAD_BITS { + KTHREAD_IS_PER_CPU = 0, + KTHREAD_SHOULD_STOP = 1, + KTHREAD_SHOULD_PARK = 2, }; -struct devlink_dpipe_match { - enum devlink_dpipe_match_type type; - unsigned int header_index; - struct devlink_dpipe_header *header; - unsigned int field_id; +enum { + KTW_FREEZABLE = 1, }; -struct devlink_param_item { +struct kthread_create_info { + char *full_name; + int (*threadfn)(void *); + void *data; + int node; + struct task_struct *result; + struct completion *done; struct list_head list; - 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 kthread_flush_work { + struct kthread_work work; + struct completion done; }; -struct trace_event_data_offsets_devlink_hwerr { - u32 bus_name; - u32 dev_name; - u32 driver_name; - u32 msg; +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 trace_event_data_offsets_devlink_health_report { - u32 bus_name; - u32 dev_name; - u32 driver_name; - u32 reporter_name; - u32 msg; +struct nbcon_state { + union { + unsigned int atom; + struct { + unsigned int prio: 2; + unsigned int req_prio: 2; + unsigned int unsafe: 1; + unsigned int unsafe_takeover: 1; + unsigned int cpu: 24; + }; + }; }; -struct trace_event_data_offsets_devlink_health_recover_aborted { - u32 bus_name; - u32 dev_name; - u32 driver_name; - u32 reporter_name; +enum { + IRQTF_RUNTHREAD = 0, + IRQTF_WARNED = 1, + IRQTF_AFFINITY = 2, + IRQTF_FORCED_THREAD = 3, + IRQTF_READY = 4, }; -struct trace_event_data_offsets_devlink_health_reporter_state_update { - u32 bus_name; - u32 dev_name; - u32 driver_name; - u32 reporter_name; +enum { + AFFINITY = 0, + AFFINITY_LIST = 1, + EFFECTIVE = 2, + EFFECTIVE_LIST = 3, }; -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 void (*btf_trace_alarmtimer_suspend)(void *, ktime_t, int); -typedef int devlink_chunk_fill_t(void *, u8 *, u32, u64, struct netlink_ext_ack *); +typedef void (*btf_trace_alarmtimer_fired)(void *, struct alarm *, ktime_t); -typedef void (*clock_access_fn)(struct timespec64 *); +typedef void (*btf_trace_alarmtimer_start)(void *, struct alarm *, ktime_t); -struct omap_hwmod_soc_ops { - void (*enable_module)(struct omap_hwmod *); - int (*disable_module)(struct omap_hwmod *); - int (*wait_target_ready)(struct omap_hwmod *); - int (*assert_hardreset)(struct omap_hwmod *, struct omap_hwmod_rst_info *); - int (*deassert_hardreset)(struct omap_hwmod *, struct omap_hwmod_rst_info *); - int (*is_hardreset_asserted)(struct omap_hwmod *, struct omap_hwmod_rst_info *); - int (*init_clkdm)(struct omap_hwmod *); - void (*update_context_lost)(struct omap_hwmod *); - int (*get_context_lost)(struct omap_hwmod *); - int (*disable_direct_prcm)(struct omap_hwmod *); - u32 (*xlate_clkctrl)(struct omap_hwmod *); -}; +typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t); -struct omap_hwmod_reset { - const char *match; - int len; - int (*reset)(struct omap_hwmod *); +struct alarm_base { + spinlock_t lock; + struct timerqueue_head timerqueue; + ktime_t (*get_ktime)(); + void (*get_timespec)(struct timespec64 *); + clockid_t base_clockid; }; -struct clkctrl_provider { - int num_addrs; - u32 *addr; - u32 *size; - struct device_node *node; - struct list_head link; +struct trace_event_raw_alarmtimer_suspend { + struct trace_entry ent; + s64 expires; + unsigned char alarm_type; + char __data[0]; + long: 32; }; -struct optimistic_spin_node { - struct optimistic_spin_node *next; - struct optimistic_spin_node *prev; - int locked; - int cpu; +struct trace_event_raw_alarm_class { + struct trace_entry ent; + void *alarm; + unsigned char alarm_type; + s64 expires; + s64 now; + char __data[0]; }; -struct pm_vt_switch { - struct list_head head; - struct device *dev; - bool required; -}; +struct trace_event_data_offsets_alarmtimer_suspend {}; + +struct trace_event_data_offsets_alarm_class {}; typedef void (*btf_trace_bpf_trace_printk)(void *, const char *); @@ -144568,13 +145934,6 @@ 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, }; @@ -144651,6 +146010,10 @@ typedef u64 (*btf_bpf_get_func_ip_kprobe_multi)(struct pt_regs *); typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *); +typedef u64 (*btf_bpf_get_func_ip_uprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_attach_cookie_uprobe_multi)(struct pt_regs *); + typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *); typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *); @@ -144675,14 +146038,8 @@ typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, s 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); @@ -144693,9 +146050,31 @@ struct trace_event_raw_bpf_trace_printk { char __data[0]; }; -struct bpf_trace_run_ctx { +struct bpf_uprobe; + +struct bpf_uprobe_multi_run_ctx { struct bpf_run_ctx run_ctx; - u64 bpf_cookie; + unsigned long entry_ip; + struct bpf_uprobe *uprobe; +}; + +struct bpf_uprobe_multi_link; + +struct bpf_uprobe { + struct bpf_uprobe_multi_link *link; + long: 32; + loff_t offset; + u64 cookie; + struct uprobe_consumer consumer; +}; + +struct bpf_uprobe_multi_link { + struct path path; + struct bpf_link link; + u32 cnt; + struct bpf_uprobe *uprobes; + struct task_struct *task; + long: 32; }; struct bpf_trace_module { @@ -144718,14 +146097,43 @@ struct perf_event_query_bpf { __u32 ids[0]; }; -struct vm_event_state { - unsigned long event[74]; +struct bpf_mprog_cp { + struct bpf_link *link; }; -enum writeback_stat_item { - NR_DIRTY_THRESHOLD = 0, - NR_DIRTY_BG_THRESHOLD = 1, - NR_VM_WRITEBACK_STAT_ITEMS = 2, +struct bpf_mprog_bundle { + struct bpf_mprog_entry a; + struct bpf_mprog_entry b; + struct bpf_mprog_cp cp_items[64]; + struct bpf_prog *ref; + long: 32; + atomic64_t revision; + u32 count; + long: 32; +}; + +struct tcx_entry { + struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) *miniq; + long: 32; + struct bpf_mprog_bundle bundle; + bool miniq_active; + struct callback_head rcu; + long: 32; +}; + +struct tcx_link { + struct bpf_link link; + struct net_device *dev; + u32 location; +}; + +struct bpf_tuple { + struct bpf_prog *prog; + struct bpf_link *link; +}; + +struct vm_event_state { + unsigned long event[74]; }; struct contig_page_info { @@ -144734,1108 +146142,1301 @@ struct contig_page_info { unsigned long free_blocks_suitable; }; -struct slub_flush_work { - struct work_struct work; - struct kmem_cache *s; - bool skip; +typedef unsigned long pte_marker; + +typedef struct { + u64 val; +} pfn_t; + +struct files_stat_struct { + unsigned long nr_files; + unsigned long nr_free_files; + unsigned long max_files; }; -struct slab_attribute { - struct attribute attr; - ssize_t (*show)(struct kmem_cache *, char *); - ssize_t (*store)(struct kmem_cache *, const char *, size_t); +struct backing_file { + struct file file; + struct path user_path; }; -struct saved_alias { - struct kmem_cache *s; +struct eventfd_ctx { + struct kref kref; + wait_queue_head_t wqh; + __u64 count; + unsigned int flags; + int id; +}; + +struct pid_entry { const char *name; - struct saved_alias *next; + unsigned int len; + umode_t mode; + const struct inode_operations *iop; + const struct file_operations *fop; + union proc_op op; }; -enum track_item { - TRACK_ALLOC = 0, - TRACK_FREE = 1, +struct limit_names { + const char *name; + const char *unit; }; -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, +struct map_files_info { + unsigned long start; + unsigned long end; + fmode_t mode; }; -enum slab_modes { - M_NONE = 0, - M_PARTIAL = 1, - M_FREE = 2, - M_FULL_NOLIST = 3, +struct genradix_root; + +struct __genradix { + struct genradix_root *root; }; -enum slab_stat_type { - SL_ALL = 0, - SL_PARTIAL = 1, - SL_CPU = 2, - SL_OBJECTS = 3, - SL_TOTAL = 4, +struct tgid_iter { + unsigned int tgid; + struct task_struct *task; }; -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 squashfs_fragment_entry { + __le64 start_block; + __le32 size; + unsigned int unused; }; -struct track { - unsigned long addr; - depot_stack_handle_t handle; - int cpu; - int pid; - unsigned long when; +struct squashfs_lzo { + void *input; + void *output; }; -struct detached_freelist { - struct slab *slab; - void *tail; - void *freelist; - int cnt; - struct kmem_cache *s; +enum nfs3_createmode { + NFS3_CREATE_UNCHECKED = 0, + NFS3_CREATE_GUARDED = 1, + NFS3_CREATE_EXCLUSIVE = 2, }; -struct partial_context { - struct slab **slab; - gfp_t flags; - unsigned int orig_size; +enum nfs3_ftype { + NF3NON = 0, + NF3REG = 1, + NF3DIR = 2, + NF3BLK = 3, + NF3CHR = 4, + NF3LNK = 5, + NF3SOCK = 6, + NF3FIFO = 7, + NF3BAD = 8, }; -struct loc_track { - unsigned long max; - unsigned long count; - struct location *loc; +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_mkdirargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + struct iattr *sattr; +}; + +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_diropres { + struct nfs_fattr *dir_attr; + struct nfs_fh *fh; + struct nfs_fattr *fattr; +}; + +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; long: 32; - loff_t idx; + struct nfs_fattr fattr; + struct nfs_fattr dir_attr; }; -typedef int (*cmp_r_func_t)(const void *, const void *, const void *); +struct nfs3_sattrargs { + struct nfs_fh *fh; + struct iattr *sattr; + unsigned int guard; + long: 32; + struct timespec64 guardtime; +}; -typedef void (*swap_r_func_t)(void *, void *, int, const void *); +struct nfs3_accessargs { + struct nfs_fh *fh; + __u32 access; +}; + +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_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 nfs3_diropargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; +}; + +struct nfs3_readdirargs { + struct nfs_fh *fh; + long: 32; + __u64 cookie; + __be32 verf[2]; + bool plus; + unsigned int count; + struct page **pages; + long: 32; +}; + +struct nfs3_readdirres { + struct nfs_fattr *dir_attr; + __be32 *verf; + bool plus; +}; + +struct nfs42_layouterror_data { + struct nfs42_layouterror_args args; + struct nfs42_layouterror_res res; + struct inode *inode; + struct pnfs_layout_segment *lseg; +}; + +struct nfs42_offloadcancel_data { + struct nfs_server *seq_server; + struct nfs42_offload_status_args args; + long: 32; + struct nfs42_offload_status_res res; +}; + +struct utf8_table { + int cmask; + int cval; + int shift; + long lmask; + long lval; +}; + +typedef u32 unicode_t; + +struct ubifs_global_debug_info { + unsigned int chk_gen: 1; + unsigned int chk_index: 1; + unsigned int chk_orph: 1; + unsigned int chk_lprops: 1; + unsigned int chk_fs: 1; + unsigned int tst_rcvry: 1; +}; enum { - MOUNTPROC3_NULL = 0, - MOUNTPROC3_MNT = 1, - MOUNTPROC3_DUMP = 2, - MOUNTPROC3_UMNT = 3, - MOUNTPROC3_UMNTALL = 4, - MOUNTPROC3_EXPORT = 5, + UBIFS_FLG_BIGLPT = 2, + UBIFS_FLG_SPACE_FIXUP = 4, + UBIFS_FLG_DOUBLE_HASH = 8, + UBIFS_FLG_ENCRYPTION = 16, + UBIFS_FLG_AUTHENTICATION = 32, }; enum { - MOUNTPROC_NULL = 0, - MOUNTPROC_MNT = 1, - MOUNTPROC_DUMP = 2, - MOUNTPROC_UMNT = 3, - MOUNTPROC_UMNTALL = 4, - MOUNTPROC_EXPORT = 5, + UBIFS_KEY_HASH_R5 = 0, + UBIFS_KEY_HASH_TEST = 1, }; -struct mountres { - int errno; - struct nfs_fh *fh; - unsigned int *auth_count; - rpc_authflavor_t *auth_flavors; +struct fsck_inode { + struct rb_node rb; + ino_t inum; + umode_t mode; + unsigned int nlink; + unsigned int xattr_cnt; + int references; + int calc_cnt; + long: 32; + long long size; + unsigned int xattr_sz; + long: 32; + long long calc_sz; + long long calc_xcnt; + long long calc_xsz; + unsigned int xattr_nms; + long: 32; + long long calc_xnms; +}; + +struct fsck_data { + struct rb_root inodes; +}; + +struct lskcipher_alg { + int (*setkey)(struct crypto_lskcipher *, const u8 *, unsigned int); + int (*encrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, bool); + int (*decrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, bool); + int (*init)(struct crypto_lskcipher *); + void (*exit)(struct crypto_lskcipher *); + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct skcipher_alg_common co; +}; + +struct lskcipher_instance { + void (*free)(struct lskcipher_instance *); + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + union { + struct { + char head[128]; + struct crypto_instance base; + } s; + struct lskcipher_alg alg; + }; +}; + +struct crypto_lskcipher_spawn { + struct crypto_spawn base; +}; + +struct crypto_rng { + struct crypto_tfm base; +}; + +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; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct crypto_alg base; +}; + +struct crypto_istat_rng { + atomic64_t generate_cnt; + atomic64_t generate_tlen; + atomic64_t seed_cnt; + atomic64_t err_cnt; +}; + +struct crypto_report_rng { + char type[64]; + unsigned int seedsize; +}; + +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 blk_major_name { + struct blk_major_name *next; + int major; + char name[16]; + void (*probe)(dev_t); }; +typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); + +typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long); + +typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); + +typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64); + +typedef void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *); + +typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int); + +typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int); + +typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, unsigned long long, s32, u32, void *); + +typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int, unsigned int); + +typedef void (*btf_trace_io_uring_short_write)(void *, void *, u64, u64, u64); + +typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int); + +struct creds; + enum { - NTFS_SYMBOL_TOKEN = 0, - NTFS_PHRASE_TOKEN = 1, - NTFS_TOKEN_MASK = 1, - NTFS_SB_SIZE_MASK = 4095, - NTFS_SB_SIZE = 4096, - NTFS_SB_IS_COMPRESSED = 32768, - NTFS_MAX_CB_SIZE = 65536, + IO_CHECK_CQ_OVERFLOW_BIT = 0, + IO_CHECK_CQ_DROPPED_BIT = 1, }; -struct zstd_ctx { - zstd_cctx *cctx; - zstd_dctx *dctx; - void *cwksp; - void *dwksp; +enum { + IO_APOLL_OK = 0, + IO_APOLL_ABORTED = 1, + IO_APOLL_READY = 2, }; -struct blk_ia_range_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct blk_independent_access_range *, char *); +enum { + IO_EVENTFD_OP_SIGNAL_BIT = 0, + IO_EVENTFD_OP_FREE_BIT = 1, +}; + +enum { + IORING_CQE_BUFFER_SHIFT = 16, +}; + +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]; + long: 32; +}; + +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]; + long: 32; +}; + +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]; + long: 32; +}; + +struct trace_event_raw_io_uring_complete { + struct trace_entry ent; + void *ctx; + void *req; + u64 user_data; + int res; + unsigned int cflags; + u64 extra1; + u64 extra2; + char __data[0]; +}; + +struct trace_event_raw_io_uring_submit_req { + struct trace_entry ent; + void *ctx; + void *req; + unsigned long long user_data; + u8 opcode; + u32 flags; + bool sq_thread; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_poll_arm { + struct trace_entry ent; + void *ctx; + void *req; + unsigned long long user_data; + u8 opcode; + int mask; + int events; + u32 __data_loc_op_str; + char __data[0]; +}; + +struct trace_event_raw_io_uring_task_add { + struct trace_entry ent; + void *ctx; + void *req; + unsigned long long user_data; + u8 opcode; + int mask; + u32 __data_loc_op_str; + char __data[0]; + long: 32; +}; + +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; + long: 32; + 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 io_shutdown { - struct file *file; - int how; +struct trace_event_raw_io_uring_cqe_overflow { + struct trace_entry ent; + void *ctx; + long: 32; + unsigned long long user_data; + s32 res; + u32 cflags; + void *ocqe; + char __data[0]; + long: 32; }; -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; - void __attribute__((btf_type_tag("user"))) *msg_control; - struct io_kiocb *notif; +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 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 trace_event_raw_io_uring_short_write { + struct trace_entry ent; + void *ctx; + long: 32; + u64 fpos; + u64 wanted; + u64 got; + char __data[0]; }; -struct io_socket { - struct file *file; - int domain; - int type; - int protocol; - int flags; - u32 file_slot; - unsigned long nofile; +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_connect { - struct file *file; - struct sockaddr __attribute__((btf_type_tag("user"))) *addr; - int addr_len; - bool in_progress; - bool seen_econnaborted; +struct io_defer_entry { + struct list_head list; + struct io_kiocb *req; + u32 seq; }; -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_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_notif_data { - struct file *file; - struct ubuf_info uarg; - unsigned long account_pages; - bool zc_report; - bool zc_used; - bool zc_copied; +struct io_tctx_exit { + struct callback_head task_work; + struct completion completion; + struct io_ring_ctx *ctx; }; -struct io_uring_recvmsg_out { - __u32 namelen; - __u32 controllen; - __u32 payloadlen; - __u32 flags; +struct trace_event_data_offsets_io_uring_queue_async_work { + u32 op_str; }; -struct io_recvmsg_multishot_hdr { - struct io_uring_recvmsg_out msg; - struct __kernel_sockaddr_storage addr; +struct trace_event_data_offsets_io_uring_defer { + u32 op_str; }; -struct io_async_connect { - struct __kernel_sockaddr_storage address; +struct trace_event_data_offsets_io_uring_fail_link { + u32 op_str; }; -struct sun4i_irq_chip_data { - void *irq_base; - struct irq_domain *irq_domain; - u32 enable_reg_offset; - u32 mask_reg_offset; +struct trace_event_data_offsets_io_uring_submit_req { + u32 op_str; }; -struct crossbar_device { - raw_spinlock_t lock; - uint int_max; - uint safe_map; - uint max_crossbar_sources; - uint *irq_map; - void *crossbar_base; - int *register_offsets; - void (*write)(int, int); +struct trace_event_data_offsets_io_uring_poll_arm { + u32 op_str; }; -enum cci_ace_port_type { - ACE_INVALID_PORT = 0, - ACE_PORT = 1, - ACE_LITE_PORT = 2, +struct trace_event_data_offsets_io_uring_task_add { + u32 op_str; }; -struct cci_ace_port { - void *base; - unsigned long phys; - enum cci_ace_port_type type; - struct device_node *dn; +struct trace_event_data_offsets_io_uring_req_failed { + u32 op_str; }; -struct cpu_port { - u64 mpidr; - u32 port; - long: 32; +struct io_uring_getevents_arg { + __u64 sigmask; + __u32 sigmask_sz; + __u32 pad; + __u64 ts; }; -struct cci_nb_ports { - unsigned int nb_ace; - unsigned int nb_ace_lite; -}; +struct trace_event_data_offsets_io_uring_create {}; -struct uniphier_u3hsphy_param { - struct { - int reg_no; - int msb; - int lsb; - } field; - u8 value; -}; +struct trace_event_data_offsets_io_uring_register {}; -struct uniphier_u3hsphy_priv; +struct trace_event_data_offsets_io_uring_file_get {}; -struct uniphier_u3hsphy_trim_param; +struct trace_event_data_offsets_io_uring_link {}; -struct uniphier_u3hsphy_soc_data { - bool is_legacy; - int nparams; - const struct uniphier_u3hsphy_param param[4]; - u32 config0; - u32 config1; - void (*trim_func)(struct uniphier_u3hsphy_priv *, u32 *, struct uniphier_u3hsphy_trim_param *); -}; +struct trace_event_data_offsets_io_uring_cqring_wait {}; -struct uniphier_u3hsphy_priv { - struct device *dev; - void *base; - struct clk *clk; - struct clk *clk_parent; - struct clk *clk_ext; - struct clk *clk_parent_gio; - struct reset_control *rst; - struct reset_control *rst_parent; - struct reset_control *rst_parent_gio; - struct regulator *vbus; - const struct uniphier_u3hsphy_soc_data *data; -}; +struct trace_event_data_offsets_io_uring_complete {}; -struct uniphier_u3hsphy_trim_param { - unsigned int rterm; - unsigned int sel_t; - unsigned int hs_i; -}; +struct trace_event_data_offsets_io_uring_cqe_overflow {}; -struct pl061_context_save_regs { - u8 gpio_data; - u8 gpio_dir; - u8 gpio_is; - u8 gpio_ibe; - u8 gpio_iev; - u8 gpio_ie; -}; +struct trace_event_data_offsets_io_uring_task_work_run {}; -struct pl061 { - raw_spinlock_t lock; - void *base; - struct gpio_chip gc; - int parent_irq; - struct pl061_context_save_regs csave_regs; -}; +struct trace_event_data_offsets_io_uring_short_write {}; -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 trace_event_data_offsets_io_uring_local_work_run {}; -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, +struct io_task_cancel { + struct task_struct *task; + bool all; }; -struct hdmi_any_infoframe { - enum hdmi_infoframe_type type; - unsigned char version; - unsigned char length; +struct io_uring_probe_op { + __u8 op; + __u8 resv; + __u16 flags; + __u32 resv2; }; -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 io_uring_probe { + __u8 last_op; + __u8 ops_len; + __u16 resv; + __u32 resv2[3]; + struct io_uring_probe_op ops[0]; }; -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 io_uring_restriction { + __u16 opcode; + union { + __u8 register_op; + __u8 sqe_op; + __u8 sqe_flags; + }; + __u8 resv; + __u32 resv2[3]; }; -struct dp_sdp { - struct dp_sdp_header sdp_header; - u8 db[32]; +struct sg_splitter { + struct scatterlist *in_sg0; + int nents; + off_t skip_sg0; + unsigned int length_last_sg; + struct scatterlist *out_sg; }; -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; -}; +typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); -struct clk_programmable { - struct clk_hw hw; - struct regmap *regmap; - u32 *mux_table; - u8 id; - const struct clk_programmable_layout *layout; - struct at91_clk_pms pms; +struct mbi_range { + u32 spi_start; + u32 nr_spis; + unsigned long *bm; }; -struct berlin2_pll { - struct clk_hw hw; - void *base; - struct berlin2_pll_map map; -}; +struct stm32_exti_chip_data; -struct hisi_mmc_clock { - unsigned int id; - const char *name; - const char *parent_name; - unsigned long flags; - u32 clken_reg; - u32 clken_bit; - u32 div_reg; - u32 div_off; - u32 div_bits; - u32 drv_reg; - u32 drv_off; - u32 drv_bits; - u32 sam_reg; - u32 sam_off; - u32 sam_bits; -}; +struct stm32_exti_drv_data; -struct clk_mmc { - struct clk_hw hw; - u32 id; - void *clken_reg; - u32 clken_bit; - void *div_reg; - u32 div_off; - u32 div_bits; - void *drv_reg; - u32 drv_off; - u32 drv_bits; - void *sam_reg; - u32 sam_off; - u32 sam_bits; +struct stm32_exti_host_data { + void *base; + struct stm32_exti_chip_data *chips_data; + const struct stm32_exti_drv_data *drv_data; + struct hwspinlock *hwlock; }; -struct clk_corediv_desc; +struct stm32_exti_bank; -struct clk_corediv_soc_desc { - const struct clk_corediv_desc *descs; - unsigned int ndescs; - const struct clk_ops ops; - u32 ratio_reload; - u32 enable_bit_offset; - u32 ratio_offset; +struct stm32_exti_chip_data { + struct stm32_exti_host_data *host_data; + const struct stm32_exti_bank *reg_bank; + struct raw_spinlock rlock; + u32 wake_active; + u32 mask_cache; + u32 rtsr_cache; + u32 ftsr_cache; }; -struct clk_corediv_desc { - unsigned int mask; - unsigned int offset; - unsigned int fieldbit; +struct stm32_exti_bank { + u32 imr_ofst; + u32 emr_ofst; + u32 rtsr_ofst; + u32 ftsr_ofst; + u32 swier_ofst; + u32 rpr_ofst; + u32 fpr_ofst; + u32 trg_ofst; }; -struct clk_corediv { - struct clk_hw hw; - void *reg; - const struct clk_corediv_desc *desc; - const struct clk_corediv_soc_desc *soc_desc; - spinlock_t lock; +struct stm32_exti_drv_data { + const struct stm32_exti_bank **exti_banks; + const u8 *desc_irqs; + u32 bank_nr; }; -struct tegra_clk_periph { - u32 magic; - struct clk_hw hw; - struct clk_mux mux; - struct tegra_clk_frac_div divider; - struct tegra_clk_periph_gate gate; - const struct clk_ops *mux_ops; - const struct clk_ops *div_ops; - const struct clk_ops *gate_ops; +struct phy_g12a_mipi_dphy_analog_priv { + struct phy *phy; + struct regmap *regmap; + struct phy_configure_opts_mipi_dphy config; }; -struct tegra_periph_init_data { - const char *name; - int clk_id; - union { - const char * const *parent_names; - const char *parent_name; - } p; - int num_parents; - struct tegra_clk_periph periph; - u32 offset; - const char *con_id; - const char *dev_id; - unsigned long flags; +enum spear1310_miphy_mode { + SATA = 0, + PCIE = 1, }; -struct cpu_clk_suspend_context { - u32 clk_csite_src; - u32 cclkg_burst; - u32 cclkg_divider; +struct spear1310_miphy_priv { + u32 id; + enum spear1310_miphy_mode mode; + struct regmap *misc; + struct phy *phy; }; -struct clk_sp810; +struct palmas_pingroup; -struct clk_sp810_timerclken { - struct clk_hw hw; - struct clk *clk; - struct clk_sp810 *sp810; - int channel; +struct palmas_pinctrl_data { + const struct palmas_pingroup *pin_groups; + int num_pin_groups; }; -struct clk_sp810 { - struct device_node *node; - void *base; - spinlock_t lock; - struct clk_sp810_timerclken timerclken[4]; -}; +struct palmas_pin_info; -enum imx_dma_type { - IMX1_DMA = 0, - IMX21_DMA = 1, - IMX27_DMA = 2, +struct palmas_pingroup { + const char *name; + const unsigned int pins[1]; + unsigned int npins; + unsigned int mux_reg_base; + unsigned int mux_reg_add; + unsigned int mux_reg_mask; + unsigned int mux_bit_shift; + const struct palmas_pin_info *opt[4]; }; -enum imxdma_prep_type { - IMXDMA_DESC_MEMCPY = 0, - IMXDMA_DESC_INTERLEAVED = 1, - IMXDMA_DESC_SLAVE_SG = 2, - IMXDMA_DESC_CYCLIC = 3, +enum palmas_pinmux { + PALMAS_PINMUX_OPTION0 = 0, + PALMAS_PINMUX_OPTION1 = 1, + PALMAS_PINMUX_OPTION2 = 2, + PALMAS_PINMUX_OPTION3 = 3, + PALMAS_PINMUX_GPIO = 4, + PALMAS_PINMUX_LED = 5, + PALMAS_PINMUX_PWM = 6, + PALMAS_PINMUX_REGEN = 7, + PALMAS_PINMUX_SYSEN = 8, + PALMAS_PINMUX_CLK32KGAUDIO = 9, + PALMAS_PINMUX_ID = 10, + PALMAS_PINMUX_VBUS_DET = 11, + PALMAS_PINMUX_CHRG_DET = 12, + PALMAS_PINMUX_VAC = 13, + PALMAS_PINMUX_VACOK = 14, + PALMAS_PINMUX_POWERGOOD = 15, + PALMAS_PINMUX_USB_PSEL = 16, + PALMAS_PINMUX_MSECURE = 17, + PALMAS_PINMUX_PWRHOLD = 18, + PALMAS_PINMUX_INT = 19, + PALMAS_PINMUX_NRESWARM = 20, + PALMAS_PINMUX_SIMRSTO = 21, + PALMAS_PINMUX_SIMRSTI = 22, + PALMAS_PINMUX_LOW_VBAT = 23, + PALMAS_PINMUX_WIRELESS_CHRG1 = 24, + PALMAS_PINMUX_RCM = 25, + PALMAS_PINMUX_PWRDOWN = 26, + PALMAS_PINMUX_GPADC_START = 27, + PALMAS_PINMUX_RESET_IN = 28, + PALMAS_PINMUX_NSLEEP = 29, + PALMAS_PINMUX_ENABLE = 30, + PALMAS_PINMUX_NA = 65535, }; -struct imxdma_desc { - struct list_head node; - struct dma_async_tx_descriptor desc; - enum dma_status status; - dma_addr_t src; - dma_addr_t dest; - size_t len; - enum dma_transfer_direction direction; - enum imxdma_prep_type type; - unsigned int config_port; - unsigned int config_mem; - unsigned int x; - unsigned int y; - unsigned int w; - struct scatterlist *sg; - unsigned int sgcount; -}; +struct palmas_pins_pullup_dn_info; -struct imxdma_engine; +struct palmas_pins_od_info; -struct imxdma_channel { - int hw_chaining; - struct timer_list watchdog; - struct imxdma_engine *imxdma; - unsigned int channel; - struct tasklet_struct dma_tasklet; - struct list_head ld_free; - struct list_head ld_queue; - struct list_head ld_active; - int descs_allocated; - enum dma_slave_buswidth word_size; - dma_addr_t per_address; - u32 watermark_level; - struct dma_chan chan; - struct dma_async_tx_descriptor desc; - enum dma_status status; - int dma_request; - struct scatterlist *sg_list; - u32 ccr_from_device; - u32 ccr_to_device; - bool enabled_2d; - int slot_2d; - unsigned int irq; - struct dma_slave_config config; +struct palmas_pin_info { + enum palmas_pinmux mux_opt; + const struct palmas_pins_pullup_dn_info *pud_info; + const struct palmas_pins_od_info *od_info; }; -struct imx_dma_2d_config { - u16 xsr; - u16 ysr; - u16 wsr; - int count; +struct palmas_pins_pullup_dn_info { + int pullup_dn_reg_base; + int pullup_dn_reg_add; + int pullup_dn_mask; + int normal_val; + int pull_up_val; + int pull_dn_val; }; -struct imxdma_engine { - struct device *dev; - struct dma_device dma_device; - void *base; - struct clk *dma_ahb; - struct clk *dma_ipg; - spinlock_t lock; - struct imx_dma_2d_config slots_2d[2]; - struct imxdma_channel channel[16]; - enum imx_dma_type devtype; - unsigned int irq; - unsigned int irq_err; +struct palmas_pins_od_info { + int od_reg_base; + int od_reg_add; + int od_mask; + int od_enable; + int od_disable; }; -struct imxdma_filter_data { - struct imxdma_engine *imxdma; - int request; +struct palmas_pin_function { + const char *name; + const char * const *groups; + unsigned int ngroups; }; -struct mtk_mutex_data { - const unsigned int *mutex_mod; - const unsigned int *mutex_sof; - const unsigned int mutex_mod_reg; - const unsigned int mutex_sof_reg; - const unsigned int *mutex_table_mod; - const bool no_clk; +struct palmas_pctrl_chip_info { + struct device *dev; + struct pinctrl_dev *pctl; + struct palmas *palmas; + int pins_current_opt[26]; + const struct palmas_pin_function *functions; + unsigned int num_functions; + const struct palmas_pingroup *pin_groups; + int num_pin_groups; + const struct pinctrl_pin_desc *pins; + unsigned int num_pins; }; -enum mtk_ddp_comp_id { - DDP_COMPONENT_AAL0 = 0, - DDP_COMPONENT_AAL1 = 1, - DDP_COMPONENT_BLS = 2, - DDP_COMPONENT_CCORR = 3, - DDP_COMPONENT_COLOR0 = 4, - DDP_COMPONENT_COLOR1 = 5, - DDP_COMPONENT_DITHER0 = 6, - DDP_COMPONENT_DITHER1 = 7, - DDP_COMPONENT_DP_INTF0 = 8, - DDP_COMPONENT_DP_INTF1 = 9, - DDP_COMPONENT_DPI0 = 10, - DDP_COMPONENT_DPI1 = 11, - DDP_COMPONENT_DSC0 = 12, - DDP_COMPONENT_DSC1 = 13, - DDP_COMPONENT_DSI0 = 14, - DDP_COMPONENT_DSI1 = 15, - DDP_COMPONENT_DSI2 = 16, - DDP_COMPONENT_DSI3 = 17, - DDP_COMPONENT_ETHDR_MIXER = 18, - DDP_COMPONENT_GAMMA = 19, - DDP_COMPONENT_MDP_RDMA0 = 20, - DDP_COMPONENT_MDP_RDMA1 = 21, - DDP_COMPONENT_MDP_RDMA2 = 22, - DDP_COMPONENT_MDP_RDMA3 = 23, - DDP_COMPONENT_MDP_RDMA4 = 24, - DDP_COMPONENT_MDP_RDMA5 = 25, - DDP_COMPONENT_MDP_RDMA6 = 26, - DDP_COMPONENT_MDP_RDMA7 = 27, - DDP_COMPONENT_MERGE0 = 28, - DDP_COMPONENT_MERGE1 = 29, - DDP_COMPONENT_MERGE2 = 30, - DDP_COMPONENT_MERGE3 = 31, - DDP_COMPONENT_MERGE4 = 32, - DDP_COMPONENT_MERGE5 = 33, - DDP_COMPONENT_OD0 = 34, - DDP_COMPONENT_OD1 = 35, - DDP_COMPONENT_OVL0 = 36, - DDP_COMPONENT_OVL_2L0 = 37, - DDP_COMPONENT_OVL_2L1 = 38, - DDP_COMPONENT_OVL_2L2 = 39, - DDP_COMPONENT_OVL1 = 40, - DDP_COMPONENT_POSTMASK0 = 41, - DDP_COMPONENT_PWM0 = 42, - DDP_COMPONENT_PWM1 = 43, - DDP_COMPONENT_PWM2 = 44, - DDP_COMPONENT_RDMA0 = 45, - DDP_COMPONENT_RDMA1 = 46, - DDP_COMPONENT_RDMA2 = 47, - DDP_COMPONENT_RDMA4 = 48, - DDP_COMPONENT_UFOE = 49, - DDP_COMPONENT_WDMA0 = 50, - DDP_COMPONENT_WDMA1 = 51, - DDP_COMPONENT_ID_MAX = 52, +struct pin_config { + const char *property; + enum pincfg_type param; }; -enum mtk_mutex_sof_id { - MUTEX_SOF_SINGLE_MODE = 0, - MUTEX_SOF_DSI0 = 1, - MUTEX_SOF_DSI1 = 2, - MUTEX_SOF_DPI0 = 3, - MUTEX_SOF_DPI1 = 4, - MUTEX_SOF_DSI2 = 5, - MUTEX_SOF_DSI3 = 6, - MUTEX_SOF_DP_INTF0 = 7, - MUTEX_SOF_DP_INTF1 = 8, - DDP_MUTEX_SOF_MAX = 9, +struct mxc_gpio_hwdata { + unsigned int dr_reg; + unsigned int gdir_reg; + unsigned int psr_reg; + unsigned int icr1_reg; + unsigned int icr2_reg; + unsigned int imr_reg; + unsigned int isr_reg; + int edge_sel_reg; + unsigned int low_level; + unsigned int high_level; + unsigned int rise_edge; + unsigned int fall_edge; }; -enum mtk_mutex_mod_index { - MUTEX_MOD_IDX_MDP_RDMA0 = 0, - MUTEX_MOD_IDX_MDP_RSZ0 = 1, - MUTEX_MOD_IDX_MDP_RSZ1 = 2, - MUTEX_MOD_IDX_MDP_TDSHP0 = 3, - MUTEX_MOD_IDX_MDP_WROT0 = 4, - MUTEX_MOD_IDX_MDP_WDMA = 5, - MUTEX_MOD_IDX_MDP_AAL0 = 6, - MUTEX_MOD_IDX_MDP_CCORR0 = 7, - MUTEX_MOD_IDX_MDP_HDR0 = 8, - MUTEX_MOD_IDX_MDP_COLOR0 = 9, - MUTEX_MOD_IDX_MDP_RDMA1 = 10, - MUTEX_MOD_IDX_MDP_RDMA2 = 11, - MUTEX_MOD_IDX_MDP_RDMA3 = 12, - MUTEX_MOD_IDX_MDP_STITCH0 = 13, - MUTEX_MOD_IDX_MDP_FG0 = 14, - MUTEX_MOD_IDX_MDP_FG1 = 15, - MUTEX_MOD_IDX_MDP_FG2 = 16, - MUTEX_MOD_IDX_MDP_FG3 = 17, - MUTEX_MOD_IDX_MDP_HDR1 = 18, - MUTEX_MOD_IDX_MDP_HDR2 = 19, - MUTEX_MOD_IDX_MDP_HDR3 = 20, - MUTEX_MOD_IDX_MDP_AAL1 = 21, - MUTEX_MOD_IDX_MDP_AAL2 = 22, - MUTEX_MOD_IDX_MDP_AAL3 = 23, - MUTEX_MOD_IDX_MDP_RSZ2 = 24, - MUTEX_MOD_IDX_MDP_RSZ3 = 25, - MUTEX_MOD_IDX_MDP_MERGE2 = 26, - MUTEX_MOD_IDX_MDP_MERGE3 = 27, - MUTEX_MOD_IDX_MDP_TDSHP1 = 28, - MUTEX_MOD_IDX_MDP_TDSHP2 = 29, - MUTEX_MOD_IDX_MDP_TDSHP3 = 30, - MUTEX_MOD_IDX_MDP_COLOR1 = 31, - MUTEX_MOD_IDX_MDP_COLOR2 = 32, - MUTEX_MOD_IDX_MDP_COLOR3 = 33, - MUTEX_MOD_IDX_MDP_OVL0 = 34, - MUTEX_MOD_IDX_MDP_OVL1 = 35, - MUTEX_MOD_IDX_MDP_PAD0 = 36, - MUTEX_MOD_IDX_MDP_PAD1 = 37, - MUTEX_MOD_IDX_MDP_PAD2 = 38, - MUTEX_MOD_IDX_MDP_PAD3 = 39, - MUTEX_MOD_IDX_MDP_TCC0 = 40, - MUTEX_MOD_IDX_MDP_TCC1 = 41, - MUTEX_MOD_IDX_MDP_WROT1 = 42, - MUTEX_MOD_IDX_MDP_WROT2 = 43, - MUTEX_MOD_IDX_MDP_WROT3 = 44, - MUTEX_MOD_IDX_MAX = 45, +struct mxc_gpio_reg_saved { + u32 icr1; + u32 icr2; + u32 imr; + u32 gdir; + u32 edge_sel; + u32 dr; }; -enum mtk_mutex_sof_index { - MUTEX_SOF_IDX_SINGLE_MODE = 0, - MUTEX_SOF_IDX_MAX = 1, +struct mxc_gpio_port { + struct list_head node; + void *base; + struct clk *clk; + int irq; + int irq_high; + void (*mx_irq_handler)(struct irq_desc *); + struct irq_domain *domain; + struct gpio_chip gc; + struct device *dev; + u32 both_edges; + struct mxc_gpio_reg_saved gpio_saved_reg; + bool power_off; + u32 wakeup_pads; + bool is_pad_wakeup; + u32 pad_type[32]; + const struct mxc_gpio_hwdata *hwdata; }; -struct mtk_mutex { - u8 id; - bool claimed; +struct pwm_export { + struct device child; + struct pwm_device *pwm; + struct mutex lock; + struct pwm_state suspend; }; -struct cmdq_client_reg { - u8 subsys; - u16 offset; - u16 size; +struct sun4i_pwm_data { + bool has_prescaler_bypass; + bool has_direct_mod_clk_output; + unsigned int npwm; }; -struct mtk_mutex_ctx { - struct device *dev; +struct sun4i_pwm_chip { + struct pwm_chip chip; + struct clk *bus_clk; struct clk *clk; - void *regs; - struct mtk_mutex mutex[10]; - const struct mtk_mutex_data *data; - phys_addr_t addr; - struct cmdq_client_reg cmdq_reg; + struct reset_control *rst; + void *base; + spinlock_t ctrl_lock; + const struct sun4i_pwm_data *data; }; -struct cmdq_pkt { - void *va_base; - dma_addr_t pa_base; - size_t cmd_buf_size; - size_t buf_size; - void *cl; +struct aspeed_gate_data { + u8 clock_idx; + s8 reset_idx; + const char *name; + const char *parent_name; + unsigned long flags; }; -struct virtio_mmio_device { - struct virtio_device vdev; - struct platform_device *pdev; - void *base; - unsigned long version; - spinlock_t lock; - struct list_head virtqueues; +struct aspeed_reset { + struct regmap *map; + struct reset_controller_dev rcdev; }; -struct virtio_mmio_vq_info { - struct virtqueue *vq; - struct list_head node; +struct aspeed_clk_gate { + struct clk_hw hw; + struct regmap *map; + u8 clock_idx; + s8 reset_idx; + u8 flags; + spinlock_t *lock; }; -enum spmi_regulator_type { - SPMI_REGULATOR_TYPE_BUCK = 3, - SPMI_REGULATOR_TYPE_LDO = 4, - SPMI_REGULATOR_TYPE_VS = 5, - SPMI_REGULATOR_TYPE_BOOST = 27, - SPMI_REGULATOR_TYPE_FTS = 28, - SPMI_REGULATOR_TYPE_BOOST_BYP = 31, - SPMI_REGULATOR_TYPE_ULT_LDO = 33, - SPMI_REGULATOR_TYPE_ULT_BUCK = 34, +enum { + A370_CPU_TO_NBCLK = 0, + A370_CPU_TO_HCLK = 1, + A370_CPU_TO_DRAMCLK = 2, }; -enum spmi_regulator_subtype { - SPMI_REGULATOR_SUBTYPE_GP_CTL = 8, - SPMI_REGULATOR_SUBTYPE_RF_CTL = 9, - SPMI_REGULATOR_SUBTYPE_N50 = 1, - SPMI_REGULATOR_SUBTYPE_N150 = 2, - SPMI_REGULATOR_SUBTYPE_N300 = 3, - SPMI_REGULATOR_SUBTYPE_N600 = 4, - SPMI_REGULATOR_SUBTYPE_N1200 = 5, - SPMI_REGULATOR_SUBTYPE_N600_ST = 6, - SPMI_REGULATOR_SUBTYPE_N1200_ST = 7, - SPMI_REGULATOR_SUBTYPE_N900_ST = 20, - SPMI_REGULATOR_SUBTYPE_N300_ST = 21, - SPMI_REGULATOR_SUBTYPE_P50 = 8, - SPMI_REGULATOR_SUBTYPE_P150 = 9, - SPMI_REGULATOR_SUBTYPE_P300 = 10, - SPMI_REGULATOR_SUBTYPE_P600 = 11, - SPMI_REGULATOR_SUBTYPE_P1200 = 12, - SPMI_REGULATOR_SUBTYPE_LN = 16, - SPMI_REGULATOR_SUBTYPE_LV_P50 = 40, - SPMI_REGULATOR_SUBTYPE_LV_P150 = 41, - SPMI_REGULATOR_SUBTYPE_LV_P300 = 42, - SPMI_REGULATOR_SUBTYPE_LV_P600 = 43, - SPMI_REGULATOR_SUBTYPE_LV_P1200 = 44, - SPMI_REGULATOR_SUBTYPE_LV_P450 = 45, - SPMI_REGULATOR_SUBTYPE_HT_N300_ST = 48, - SPMI_REGULATOR_SUBTYPE_HT_N600_ST = 49, - SPMI_REGULATOR_SUBTYPE_HT_N1200_ST = 50, - SPMI_REGULATOR_SUBTYPE_HT_LVP150 = 59, - SPMI_REGULATOR_SUBTYPE_HT_LVP300 = 60, - SPMI_REGULATOR_SUBTYPE_L660_N300_ST = 66, - SPMI_REGULATOR_SUBTYPE_L660_N600_ST = 67, - SPMI_REGULATOR_SUBTYPE_L660_P50 = 70, - SPMI_REGULATOR_SUBTYPE_L660_P150 = 71, - SPMI_REGULATOR_SUBTYPE_L660_P600 = 73, - SPMI_REGULATOR_SUBTYPE_L660_LVP150 = 77, - SPMI_REGULATOR_SUBTYPE_L660_LVP600 = 79, - SPMI_REGULATOR_SUBTYPE_LV100 = 1, - SPMI_REGULATOR_SUBTYPE_LV300 = 2, - SPMI_REGULATOR_SUBTYPE_MV300 = 8, - SPMI_REGULATOR_SUBTYPE_MV500 = 9, - SPMI_REGULATOR_SUBTYPE_HDMI = 16, - SPMI_REGULATOR_SUBTYPE_OTG = 17, - SPMI_REGULATOR_SUBTYPE_5V_BOOST = 1, - SPMI_REGULATOR_SUBTYPE_FTS_CTL = 8, - SPMI_REGULATOR_SUBTYPE_FTS2p5_CTL = 9, - SPMI_REGULATOR_SUBTYPE_FTS426_CTL = 10, - SPMI_REGULATOR_SUBTYPE_BB_2A = 1, - SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL1 = 13, - SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL2 = 14, - SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL3 = 15, - SPMI_REGULATOR_SUBTYPE_ULT_HF_CTL4 = 16, - SPMI_REGULATOR_SUBTYPE_HFS430 = 10, - SPMI_REGULATOR_SUBTYPE_HT_P150 = 53, - SPMI_REGULATOR_SUBTYPE_HT_P600 = 61, - SPMI_REGULATOR_SUBTYPE_HFSMPS_510 = 10, - SPMI_REGULATOR_SUBTYPE_FTSMPS_510 = 11, - SPMI_REGULATOR_SUBTYPE_LV_P150_510 = 113, - SPMI_REGULATOR_SUBTYPE_LV_P300_510 = 114, - SPMI_REGULATOR_SUBTYPE_LV_P600_510 = 115, - SPMI_REGULATOR_SUBTYPE_N300_510 = 106, - SPMI_REGULATOR_SUBTYPE_N600_510 = 107, - SPMI_REGULATOR_SUBTYPE_N1200_510 = 108, - SPMI_REGULATOR_SUBTYPE_MV_P50_510 = 122, - SPMI_REGULATOR_SUBTYPE_MV_P150_510 = 123, - SPMI_REGULATOR_SUBTYPE_MV_P600_510 = 125, +struct stm32_dmamux_data { + struct dma_router dmarouter; + struct clk *clk; + void *iomem; + u32 dma_requests; + u32 dmamux_requests; + spinlock_t lock; + unsigned long dma_inuse[1]; + u32 ccr[32]; + u32 dma_reqs[0]; }; -enum spmi_regulator_logical_type { - SPMI_REGULATOR_LOGICAL_TYPE_SMPS = 0, - SPMI_REGULATOR_LOGICAL_TYPE_LDO = 1, - SPMI_REGULATOR_LOGICAL_TYPE_VS = 2, - SPMI_REGULATOR_LOGICAL_TYPE_BOOST = 3, - SPMI_REGULATOR_LOGICAL_TYPE_FTSMPS = 4, - SPMI_REGULATOR_LOGICAL_TYPE_BOOST_BYP = 5, - SPMI_REGULATOR_LOGICAL_TYPE_LN_LDO = 6, - SPMI_REGULATOR_LOGICAL_TYPE_ULT_LO_SMPS = 7, - SPMI_REGULATOR_LOGICAL_TYPE_ULT_HO_SMPS = 8, - SPMI_REGULATOR_LOGICAL_TYPE_ULT_LDO = 9, - SPMI_REGULATOR_LOGICAL_TYPE_FTSMPS426 = 10, - SPMI_REGULATOR_LOGICAL_TYPE_HFS430 = 11, - SPMI_REGULATOR_LOGICAL_TYPE_FTSMPS3 = 12, - SPMI_REGULATOR_LOGICAL_TYPE_LDO_510 = 13, - SPMI_REGULATOR_LOGICAL_TYPE_HFSMPS = 14, +struct stm32_dmamux { + u32 master; + u32 request; + u32 chan_id; }; -struct spmi_voltage_set_points; - -struct spmi_regulator_mapping { - enum spmi_regulator_type type; - enum spmi_regulator_subtype subtype; - enum spmi_regulator_logical_type logical_type; - u32 revision_min; - u32 revision_max; - const struct regulator_ops *ops; - struct spmi_voltage_set_points *set_points; - int hpm_min_load; +struct imx_pm_domain { + struct generic_pm_domain base; + struct regmap *regmap; + struct regulator *supply; + struct clk *clk[7]; + int num_clks; + unsigned int reg_offs; + signed char cntr_pdn_bit; + unsigned int ipg_rate_mhz; + long: 32; }; -struct spmi_voltage_range; - -struct spmi_voltage_set_points { - struct spmi_voltage_range *range; - int count; - unsigned int n_voltages; +struct imx_gpc_dt_data { + int num_domains; + bool err009619_present; + bool err006287_present; }; -struct spmi_voltage_range { - int min_uV; - int max_uV; - int step_uV; - int set_point_min_uV; - int set_point_max_uV; - unsigned int n_voltages; - u8 range_sel; +struct twlreg_info___2 { + u8 base; + u8 id; + u8 table_len; + const u16 *table; + u8 remap; + struct regulator_desc desc; + unsigned long features; + void *data; }; -struct spmi_regulator_data { - const char *name; - u16 base; - const char *supply; - const char *ocp; - u16 force_type; +struct brcmuart_priv { + int line; + struct clk *baud_mux_clk; + unsigned long default_mux_rate; + u32 real_rates[4]; + const u32 *rate_table; + ktime_t char_wait; + struct uart_port *up; + long: 32; + struct hrtimer hrt; + bool shutdown; + bool dma_enabled; + struct uart_8250_dma dma; + void *regs[5]; + dma_addr_t rx_addr; + void *rx_bufs; + size_t rx_size; + int rx_next_buf; + dma_addr_t tx_addr; + void *tx_buf; + size_t tx_size; + bool tx_running; + bool rx_running; + struct dentry *debugfs_dir; + u64 dma_rx_partial_buf; + u64 dma_rx_full_buf; + u32 rx_bad_timeout_late_char; + u32 rx_bad_timeout_no_char; + u32 rx_missing_close_timeout; + u32 rx_err; + u32 rx_timeout; + u32 rx_abort; + u32 saved_mctrl; + long: 32; }; -enum spmi_common_regulator_registers { - SPMI_COMMON_REG_DIG_MAJOR_REV = 1, - SPMI_COMMON_REG_TYPE = 4, - SPMI_COMMON_REG_SUBTYPE = 5, - SPMI_COMMON_REG_VOLTAGE_RANGE = 64, - SPMI_COMMON_REG_VOLTAGE_SET = 65, - SPMI_COMMON_REG_MODE = 69, - SPMI_COMMON_REG_ENABLE = 70, - SPMI_COMMON_REG_PULL_DOWN = 72, - SPMI_COMMON_REG_SOFT_START = 76, - SPMI_COMMON_REG_STEP_CTRL = 97, -}; +struct sci_port_params; -enum spmi_vs_soft_start_str { - SPMI_VS_SOFT_START_STR_0P05_UA = 0, - SPMI_VS_SOFT_START_STR_0P25_UA = 1, - SPMI_VS_SOFT_START_STR_0P55_UA = 2, - SPMI_VS_SOFT_START_STR_0P75_UA = 3, - SPMI_VS_SOFT_START_STR_HW_DEFAULT = 4, -}; +struct plat_sci_port; -enum spmi_common_control_register_index { - SPMI_COMMON_IDX_VOLTAGE_RANGE = 0, - SPMI_COMMON_IDX_VOLTAGE_SET = 1, - SPMI_COMMON_IDX_MODE = 5, - SPMI_COMMON_IDX_ENABLE = 6, +struct sci_port { + struct uart_port port; + const struct sci_port_params *params; + const struct plat_sci_port *cfg; + unsigned int sampling_rate_mask; + resource_size_t reg_size; + struct mctrl_gpios *gpios; + struct clk *clks[4]; + unsigned long clk_rates[4]; + int irqs[6]; + char *irqstr[6]; + struct dma_chan *chan_tx; + struct dma_chan *chan_rx; + struct dma_chan *chan_tx_saved; + struct dma_chan *chan_rx_saved; + dma_cookie_t cookie_tx; + dma_cookie_t cookie_rx[2]; + dma_cookie_t active_rx; + dma_addr_t tx_dma_addr; + unsigned int tx_dma_len; + struct scatterlist sg_rx[2]; + void *rx_buf[2]; + size_t buf_len_rx; + struct work_struct work_tx; + struct hrtimer rx_timer; + unsigned int rx_timeout; + unsigned int rx_frame; + int rx_trigger; + struct timer_list rx_fifo_timer; + int rx_fifo_timeout; + u16 hscif_tot; + bool has_rtscts; + bool autorts; }; -enum spmi_vs_registers { - SPMI_VS_REG_OCP = 74, - SPMI_VS_REG_SOFT_START = 76, +struct plat_sci_reg { + u8 offset; + u8 size; }; -enum spmi_hfsmps_regulator_registers { - SPMI_HFSMPS_REG_STEP_CTRL = 60, - SPMI_HFSMPS_REG_PULL_DOWN = 160, +struct sci_port_params { + const struct plat_sci_reg regs[20]; + unsigned int fifosize; + unsigned int overrun_reg; + unsigned int overrun_mask; + unsigned int sampling_rate_mask; + unsigned int error_mask; + unsigned int error_clear; }; -enum spmi_ftsmps426_regulator_registers { - SPMI_FTSMPS426_REG_VOLTAGE_LSB = 64, - SPMI_FTSMPS426_REG_VOLTAGE_MSB = 65, - SPMI_FTSMPS426_REG_VOLTAGE_ULS_LSB = 104, - SPMI_FTSMPS426_REG_VOLTAGE_ULS_MSB = 105, -}; +struct plat_sci_port_ops; -enum spmi_boost_registers { - SPMI_BOOST_REG_CURRENT_LIMIT = 74, +struct plat_sci_port { + unsigned int type; + long: 32; + upf_t flags; + unsigned int sampling_rate; + unsigned int scscr; + unsigned char regtype; + struct plat_sci_port_ops *ops; }; -enum spmi_boost_byp_registers { - SPMI_BOOST_BYP_REG_CURRENT_LIMIT = 75, +struct plat_sci_port_ops { + void (*init_pins)(struct uart_port *, unsigned int); }; -enum spmi_saw3_registers { - SAW3_SECURE = 0, - SAW3_ID = 4, - SAW3_SPM_STS = 12, - SAW3_AVS_STS = 16, - SAW3_PMIC_STS = 20, - SAW3_RST = 24, - SAW3_VCTL = 28, - SAW3_AVS_CTL = 32, - SAW3_AVS_LIMIT = 36, - SAW3_AVS_DLY = 40, - SAW3_AVS_HYSTERESIS = 44, - SAW3_SPM_STS2 = 56, - SAW3_SPM_PMIC_DATA_3 = 76, - SAW3_VERSION = 4048, +struct sci_irq_desc { + const char *desc; + irq_handler_t handler; }; -struct spmi_regulator { - struct regulator_desc desc; - struct device *dev; - struct delayed_work ocp_work; - struct regmap *regmap; - struct spmi_voltage_set_points *set_points; - enum spmi_regulator_logical_type logical_type; - int ocp_irq; - int ocp_count; - int ocp_max_retries; - int ocp_retry_delay_ms; - int hpm_min_load; - int slew_rate; - ktime_t vs_enable_time; - u16 base; - struct list_head node; - long: 32; +enum { + SCIx_ERI_IRQ = 0, + SCIx_RXI_IRQ = 1, + SCIx_TXI_IRQ = 2, + SCIx_BRI_IRQ = 3, + SCIx_DRI_IRQ = 4, + SCIx_TEI_IRQ = 5, + SCIx_NR_IRQS = 6, + SCIx_MUX_IRQ = 6, }; -struct spmi_regulator_init_data { - unsigned int pin_ctrl_enable; - unsigned int pin_ctrl_hpm; - enum spmi_vs_soft_start_str vs_soft_start_strength; +enum { + SCIx_PROBE_REGTYPE = 0, + SCIx_SCI_REGTYPE = 1, + SCIx_IRDA_REGTYPE = 2, + SCIx_SCIFA_REGTYPE = 3, + SCIx_SCIFB_REGTYPE = 4, + SCIx_SH2_SCIF_FIFODATA_REGTYPE = 5, + SCIx_SH3_SCIF_REGTYPE = 6, + SCIx_SH4_SCIF_REGTYPE = 7, + SCIx_SH4_SCIF_BRG_REGTYPE = 8, + SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE = 9, + SCIx_SH4_SCIF_FIFODATA_REGTYPE = 10, + SCIx_SH7705_SCIF_REGTYPE = 11, + SCIx_HSCIF_REGTYPE = 12, + SCIx_RZ_SCIFA_REGTYPE = 13, + SCIx_NR_REGTYPES = 14, }; -struct tegra_uart { - struct clk *clk; - struct reset_control *rst; - int line; +enum { + SCSMR = 0, + SCBRR = 1, + SCSCR = 2, + SCxSR = 3, + SCFCR = 4, + SCFDR = 5, + SCxTDR = 6, + SCxRDR = 7, + SCLSR = 8, + SCTFDR = 9, + SCRFDR = 10, + SCSPTR = 11, + HSSRR = 12, + SCPCR = 13, + SCPDR = 14, + SCDL = 15, + SCCKS = 16, + HSRTRGR = 17, + HSTTRGR = 18, + SEMR = 19, + SCIx_NR_REGS = 20, }; -struct exynos_trng_dev { - struct device *dev; - void *mem; - struct clk *clk; - struct hwrng rng; +enum SCI_CLKS { + SCI_FCK = 0, + SCI_SCK = 1, + SCI_BRG_INT = 2, + SCI_SCIF_CLK = 3, + SCI_NUM_CLKS = 4, }; -struct trng_regs; - -struct ks_sa_rng { +struct of_pci_iommu_alias_info { struct device *dev; - struct hwrng rng; - struct clk *clk; - struct regmap *regmap_cfg; - struct trng_regs *reg_rng; - long: 32; - u64 ready_ts; - unsigned int refill_delay_ns; - long: 32; -}; - -struct trng_regs { - u32 output_l; - u32 output_h; - u32 status; - u32 intmask; - u32 intack; - u32 control; - u32 config; + struct device_node *np; }; -struct drm_property_enum { - uint64_t value; - struct list_head head; - char name[32]; +struct drm_mode_rmfb_work { + struct work_struct work; + struct list_head fbs; }; -struct drm_mode_property_enum { - __u64 value; - char name[32]; +struct drm_mode_fb_cmd { + __u32 fb_id; + __u32 width; + __u32 height; + __u32 pitch; + __u32 bpp; + __u32 depth; + __u32 handle; }; -struct drm_mode_get_property { - __u64 values_ptr; - __u64 enum_blob_ptr; - __u32 prop_id; +struct drm_mode_fb_dirty_cmd { + __u32 fb_id; __u32 flags; - char name[32]; - __u32 count_values; - __u32 count_enum_blobs; -}; - -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; + __u32 color; + __u32 num_clips; + __u64 clips_ptr; }; struct ewma_psr_time { @@ -145850,1242 +147451,1395 @@ struct drm_self_refresh_data { struct ewma_psr_time exit_avg_ms; }; -struct nvdec_config { - const char *firmware; - unsigned int version; - bool supports_sid; - bool has_riscv; - bool has_extra_clocks; +struct platform_object { + struct platform_device pdev; + char name[0]; }; -struct tegra_drm_riscv_descriptor { - u32 manifest_offset; - u32 code_offset; - u32 code_size; - u32 data_offset; - u32 data_size; +struct irq_affinity_devres { + unsigned int count; + unsigned int irq[0]; }; -struct tegra_drm_riscv { - struct device *dev; - void *regs; - struct tegra_drm_riscv_descriptor bl_desc; - struct tegra_drm_riscv_descriptor os_desc; +enum pce_status { + PCE_STATUS_NONE = 0, + PCE_STATUS_ACQUIRED = 1, + PCE_STATUS_PREPARED = 2, + PCE_STATUS_ENABLED = 3, + PCE_STATUS_ERROR = 4, }; -struct nvdec { - struct falcon falcon; - void *regs; - struct tegra_drm_client client; - struct host1x_channel *channel; - struct device *dev; - struct clk_bulk_data clks[3]; - unsigned int num_clks; - struct reset_control *reset; - const struct nvdec_config *config; - struct tegra_drm_riscv riscv; - phys_addr_t carveout_base; +struct pm_clock_entry { + struct list_head node; + char *con_id; + struct clk *clk; + enum pce_status status; + bool enabled_when_prepared; }; -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 devcd_entry { + struct device devcd_dev; + void *data; + size_t datalen; + struct mutex mutex; + bool delete_work; + struct module *owner; + ssize_t (*read)(char *, loff_t, size_t, void *, size_t); + void (*free)(void *); + struct delayed_work del_wk; + struct device *failing_dev; + long: 32; }; -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 stmpe_client_info { + void *data; + int irq; + void *client; + struct device *dev; + int (*read_byte)(struct stmpe *, u8); + int (*write_byte)(struct stmpe *, u8, u8); + int (*read_block)(struct stmpe *, u8, u8, u8 *); + int (*write_block)(struct stmpe *, u8, u8, const u8 *); + void (*init)(struct stmpe *); }; -struct trace_event_raw_regmap_block { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int reg; - int count; - char __data[0]; -}; +struct stmpe_variant_block; -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 stmpe_variant_info { + const char *name; + u16 id_val; + u16 id_mask; + int num_gpios; + int af_bits; + const u8 *regs; + struct stmpe_variant_block *blocks; + int num_blocks; + int num_irqs; + int (*enable)(struct stmpe *, unsigned int, bool); + int (*get_altfunc)(struct stmpe *, enum stmpe_block); + int (*enable_autosleep)(struct stmpe *, int); }; -struct trace_event_raw_regmap_bool { - struct trace_entry ent; - u32 __data_loc_name; - int flag; - char __data[0]; +struct stmpe_variant_block { + const struct mfd_cell *cell; + int irq; + enum stmpe_block block; }; -struct trace_event_raw_regmap_async { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; +struct usbhs_hcd_omap { + int nports; + struct clk **utmi_clk; + struct clk **hsic60m_clk; + struct clk **hsic480m_clk; + struct clk *xclk60mhsp1_ck; + struct clk *xclk60mhsp2_ck; + struct clk *utmi_p1_gfclk; + struct clk *utmi_p2_gfclk; + struct clk *init_60m_fclk; + struct clk *ehci_logic_fck; + void *uhh_base; + struct usbhs_omap_platform_data *pdata; + u32 usbhs_rev; }; -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 flash_device { + char *name; + u8 erase_cmd; + u32 device_id; + u32 pagesize; + unsigned long sectorsize; + unsigned long size_in_bytes; }; -struct trace_event_data_offsets_regmap_reg { - u32 name; +struct spear_snor_flash { + u32 bank; + u32 dev_id; + struct mutex lock; + long: 32; + struct mtd_info mtd; + u32 num_parts; + struct mtd_partition *parts; + u32 page_size; + void *base_addr; + u8 erase_cmd; + u8 fast_mode; + long: 32; }; -struct trace_event_data_offsets_regmap_bulk { - u32 name; - u32 buf; +struct spear_smi_flash_info; + +struct spear_smi_plat_data { + unsigned long clk_rate; + int num_flashes; + struct spear_smi_flash_info *board_flash_info; + struct device_node *np[4]; }; -struct trace_event_data_offsets_regmap_block { - u32 name; +struct spear_smi_flash_info { + char *name; + unsigned long mem_base; + unsigned long size; + struct mtd_partition *partitions; + int nr_partitions; + u8 fast_mode; }; -struct trace_event_data_offsets_regcache_sync { - u32 name; +struct spear_smi { + struct clk *clk; u32 status; - u32 type; + unsigned long clk_rate; + struct mutex lock; + void *io_base; + struct platform_device *pdev; + wait_queue_head_t cmd_complete; + u32 num_flashes; + struct spear_snor_flash *flash[4]; }; -struct trace_event_data_offsets_regmap_bool { - u32 name; +enum brcmnand_reg { + BRCMNAND_CMD_START = 0, + BRCMNAND_CMD_EXT_ADDRESS = 1, + BRCMNAND_CMD_ADDRESS = 2, + BRCMNAND_INTFC_STATUS = 3, + BRCMNAND_CS_SELECT = 4, + BRCMNAND_CS_XOR = 5, + BRCMNAND_LL_OP = 6, + BRCMNAND_CS0_BASE = 7, + BRCMNAND_CS1_BASE = 8, + BRCMNAND_CORR_THRESHOLD = 9, + BRCMNAND_CORR_THRESHOLD_EXT = 10, + BRCMNAND_UNCORR_COUNT = 11, + BRCMNAND_CORR_COUNT = 12, + BRCMNAND_CORR_EXT_ADDR = 13, + BRCMNAND_CORR_ADDR = 14, + BRCMNAND_UNCORR_EXT_ADDR = 15, + BRCMNAND_UNCORR_ADDR = 16, + BRCMNAND_SEMAPHORE = 17, + BRCMNAND_ID = 18, + BRCMNAND_ID_EXT = 19, + BRCMNAND_LL_RDATA = 20, + BRCMNAND_OOB_READ_BASE = 21, + BRCMNAND_OOB_READ_10_BASE = 22, + BRCMNAND_OOB_WRITE_BASE = 23, + BRCMNAND_OOB_WRITE_10_BASE = 24, + BRCMNAND_FC_BASE = 25, }; -struct trace_event_data_offsets_regmap_async { - u32 name; +enum flash_dma_reg { + FLASH_DMA_REVISION = 0, + FLASH_DMA_FIRST_DESC = 1, + FLASH_DMA_FIRST_DESC_EXT = 2, + FLASH_DMA_CTRL = 3, + FLASH_DMA_MODE = 4, + FLASH_DMA_STATUS = 5, + FLASH_DMA_INTERRUPT_DESC = 6, + FLASH_DMA_INTERRUPT_DESC_EXT = 7, + FLASH_DMA_ERROR_STATUS = 8, + FLASH_DMA_CURRENT_DESC = 9, + FLASH_DMA_CURRENT_DESC_EXT = 10, }; -struct trace_event_data_offsets_regcache_drop_region { - u32 name; +enum { + CS_SELECT_NAND_WP = 536870912, + CS_SELECT_AUTO_DEVICE_ID_CFG = 1073741824, }; -struct regmap_field { - struct regmap *regmap; - unsigned int mask; - unsigned int shift; - unsigned int reg; - unsigned int id_size; - unsigned int id_offset; +enum { + BRCMNAND_HAS_1K_SECTORS = 1, + BRCMNAND_HAS_PREFETCH = 2, + BRCMNAND_HAS_CACHE_MODE = 4, + BRCMNAND_HAS_WP = 8, }; -struct mtd_concat { - struct mtd_info mtd; - int num_subdev; - struct mtd_info **subdev; +enum edu_reg { + EDU_CONFIG = 0, + EDU_DRAM_ADDR = 1, + EDU_EXT_ADDR = 2, + EDU_LENGTH = 3, + EDU_CMD = 4, + EDU_STOP = 5, + EDU_STATUS = 6, + EDU_DONE = 7, + EDU_ERR_STATUS = 8, }; -struct sfp; - -struct sfp_socket_ops; +enum brcmnand_cs_reg { + BRCMNAND_CS_CFG_EXT = 0, + BRCMNAND_CS_CFG = 1, + BRCMNAND_CS_ACC_CONTROL = 2, + BRCMNAND_CS_TIMING1 = 3, + BRCMNAND_CS_TIMING2 = 4, +}; -struct sfp_quirk; +enum { + ACC_CONTROL_CACHE_MODE = 4194304, + ACC_CONTROL_PREFETCH = 8388608, + ACC_CONTROL_PAGE_HIT = 16777216, + ACC_CONTROL_WR_PREEMPT = 33554432, + ACC_CONTROL_PARTIAL_PAGE = 67108864, + ACC_CONTROL_RD_ERASED = 134217728, + ACC_CONTROL_FAST_PGM_RDIN = 268435456, + ACC_CONTROL_WR_ECC = 1073741824, + ACC_CONTROL_RD_ECC = 2147483648, +}; -struct sfp_bus { - struct kref kref; - struct list_head node; - const struct fwnode_handle *fwnode; - const struct sfp_socket_ops *socket_ops; - struct device *sfp_dev; - struct sfp *sfp; - const struct sfp_quirk *sfp_quirk; - const struct sfp_upstream_ops *upstream_ops; - void *upstream; - struct phy_device *phydev; - bool registered; - bool started; +enum { + CFG_BLK_ADR_BYTES_SHIFT = 8, + CFG_COL_ADR_BYTES_SHIFT = 12, + CFG_FUL_ADR_BYTES_SHIFT = 16, + CFG_BUS_WIDTH_SHIFT = 23, + CFG_BUS_WIDTH = 8388608, + CFG_DEVICE_SIZE_SHIFT = 24, + CFG_PAGE_SIZE_SHIFT_v2_1 = 30, + CFG_PAGE_SIZE_SHIFT = 20, + CFG_BLK_SIZE_SHIFT = 28, + CFG_EXT_PAGE_SIZE_SHIFT = 0, + CFG_EXT_BLK_SIZE_SHIFT = 4, }; -struct sfp_socket_ops { - void (*attach)(struct sfp *); - void (*detach)(struct sfp *); - void (*start)(struct sfp *); - void (*stop)(struct sfp *); - void (*set_signal_rate)(struct sfp *, unsigned int); - int (*module_info)(struct sfp *, struct ethtool_modinfo *); - int (*module_eeprom)(struct sfp *, struct ethtool_eeprom *, u8 *); - int (*module_eeprom_by_page)(struct sfp *, const struct ethtool_module_eeprom *, struct netlink_ext_ack *); +enum { + INTFC_FLASH_STATUS = 255, + INTFC_ERASED = 134217728, + INTFC_OOB_VALID = 268435456, + INTFC_CACHE_VALID = 536870912, + INTFC_FLASH_READY = 1073741824, + INTFC_CTLR_READY = 2147483648, }; -struct sfp_quirk { - const char *vendor; - const char *part; - void (*modes)(const struct sfp_eeprom_id *, unsigned long *, unsigned long *); - void (*fixup)(struct sfp *); +enum brcmnand_llop_type { + LL_OP_CMD = 0, + LL_OP_ADDR = 1, + LL_OP_WR = 2, + LL_OP_RD = 3, }; enum { - SFF8024_ID_UNK = 0, - SFF8024_ID_SFF_8472 = 2, - SFF8024_ID_SFP = 3, - SFF8024_ID_DWDM_SFP = 11, - SFF8024_ID_QSFP_8438 = 12, - SFF8024_ID_QSFP_8436_8636 = 13, - SFF8024_ID_QSFP28_8636 = 17, - SFF8024_ENCODING_UNSPEC = 0, - SFF8024_ENCODING_8B10B = 1, - SFF8024_ENCODING_4B5B = 2, - SFF8024_ENCODING_NRZ = 3, - SFF8024_ENCODING_8472_MANCHESTER = 4, - SFF8024_ENCODING_8472_SONET = 5, - SFF8024_ENCODING_8472_64B66B = 6, - SFF8024_ENCODING_8436_MANCHESTER = 6, - SFF8024_ENCODING_8436_SONET = 4, - SFF8024_ENCODING_8436_64B66B = 5, - SFF8024_ENCODING_256B257B = 7, - SFF8024_ENCODING_PAM4 = 8, - SFF8024_CONNECTOR_UNSPEC = 0, - SFF8024_CONNECTOR_SC = 1, - SFF8024_CONNECTOR_FIBERJACK = 6, - SFF8024_CONNECTOR_LC = 7, - SFF8024_CONNECTOR_MT_RJ = 8, - SFF8024_CONNECTOR_MU = 9, - SFF8024_CONNECTOR_SG = 10, - SFF8024_CONNECTOR_OPTICAL_PIGTAIL = 11, - SFF8024_CONNECTOR_MPO_1X12 = 12, - SFF8024_CONNECTOR_MPO_2X16 = 13, - SFF8024_CONNECTOR_HSSDC_II = 32, - SFF8024_CONNECTOR_COPPER_PIGTAIL = 33, - SFF8024_CONNECTOR_RJ45 = 34, - SFF8024_CONNECTOR_NOSEPARATE = 35, - SFF8024_CONNECTOR_MXC_2X16 = 36, - SFF8024_ECC_UNSPEC = 0, - SFF8024_ECC_100G_25GAUI_C2M_AOC = 1, - SFF8024_ECC_100GBASE_SR4_25GBASE_SR = 2, - SFF8024_ECC_100GBASE_LR4_25GBASE_LR = 3, - SFF8024_ECC_100GBASE_ER4_25GBASE_ER = 4, - SFF8024_ECC_100GBASE_SR10 = 5, - SFF8024_ECC_100GBASE_CR4 = 11, - SFF8024_ECC_25GBASE_CR_S = 12, - SFF8024_ECC_25GBASE_CR_N = 13, - SFF8024_ECC_10GBASE_T_SFI = 22, - SFF8024_ECC_10GBASE_T_SR = 28, - SFF8024_ECC_5GBASE_T = 29, - SFF8024_ECC_2_5GBASE_T = 30, + LLOP_RE = 65536, + LLOP_WE = 131072, + LLOP_ALE = 262144, + LLOP_CLE = 524288, + LLOP_RETURN_IDLE = 2147483648, + LLOP_DATA_MASK = 65535, }; -struct fsl_pq_mdio_data { - unsigned int mii_offset; - uint32_t * (*get_tbipa)(void *); - void (*ucc_configure)(phys_addr_t, phys_addr_t); +struct brcmnand_cfg { + u64 device_size; + unsigned int block_size; + unsigned int page_size; + unsigned int spare_area_size; + unsigned int device_width; + unsigned int col_adr_bytes; + unsigned int blk_adr_bytes; + unsigned int ful_adr_bytes; + unsigned int sector_size_1k; + unsigned int ecc_level; + u32 acc_control; + u32 config; + u32 config_ext; + u32 timing_1; + u32 timing_2; }; -struct fsl_pq_mii; +struct brcmnand_controller; -struct fsl_pq_mdio_priv { - void *map; - struct fsl_pq_mii *regs; +struct brcmnand_host { + struct list_head node; + struct nand_chip chip; + struct platform_device *pdev; + int cs; + unsigned int last_cmd; + unsigned int last_byte; + u64 last_addr; + struct brcmnand_cfg hwcfg; + struct brcmnand_controller *ctrl; + long: 32; }; -struct fsl_pq_mii { - u32 miimcfg; - u32 miimcom; - u32 miimadd; - u32 miimcon; - u32 miimstat; - u32 miimind; -}; +struct brcm_nand_dma_desc; -enum vcap_selection { - VCAP_SEL_ENTRY = 1, - VCAP_SEL_ACTION = 2, - VCAP_SEL_COUNTER = 4, - VCAP_SEL_ALL = 255, +struct brcmnand_controller { + struct device *dev; + struct nand_controller controller; + void *nand_base; + void *nand_fc; + void *flash_dma_base; + int irq; + unsigned int dma_irq; + int nand_version; + struct brcmnand_soc *soc; + struct clk *clk; + int cmd_pending; + bool dma_pending; + bool edu_pending; + struct completion done; + struct completion dma_done; + struct completion edu_done; + struct list_head host_list; + const u16 *edu_offsets; + void *edu_base; + int edu_irq; + int edu_count; + u64 edu_dram_addr; + u32 edu_ext_addr; + u32 edu_cmd; + u32 edu_config; + int sas; + int sector_size_1k; + u8 *oob; + const u16 *flash_dma_offsets; + struct brcm_nand_dma_desc *dma_desc; + dma_addr_t dma_pa; + int (*dma_trans)(struct brcmnand_host *, u64, u32 *, u8 *, u32, u8); + u8 flash_cache[512]; + const u16 *reg_offsets; + unsigned int reg_spacing; + const u8 *cs_offsets; + const u8 *cs0_offsets; + unsigned int max_block_size; + const unsigned int *block_sizes; + unsigned int max_page_size; + const unsigned int *page_sizes; + unsigned int page_size_shift; + unsigned int max_oob; + u32 ecc_level_shift; + u32 features; + u32 nand_cs_nand_select; + u32 nand_cs_nand_xor; + u32 corr_stat_threshold; + u32 flash_dma_mode; + u32 flash_edu_mode; + bool pio_poll_mode; }; -enum vcap_command { - VCAP_CMD_WRITE = 0, - VCAP_CMD_READ = 1, - VCAP_CMD_MOVE_DOWN = 2, - VCAP_CMD_MOVE_UP = 3, - VCAP_CMD_INITIALIZE = 4, +struct brcm_nand_dma_desc { + u32 next_desc; + u32 next_desc_ext; + u32 cmd_irq; + u32 dram_addr; + u32 dram_addr_ext; + u32 tfr_len; + u32 total_len; + u32 flash_addr; + u32 flash_addr_ext; + u32 cs; + u32 pad2[5]; + u32 status_valid; }; -enum vcap_rule_state { - VCAP_RS_PERMANENT = 0, - VCAP_RS_ENABLED = 1, - VCAP_RS_DISABLED = 2, +struct brcmnand_platform_data { + int chip_select; + const char * const *part_probe_types; + unsigned int ecc_stepsize; + unsigned int ecc_strength; }; -enum vcap_action_field { - VCAP_AF_NO_VALUE = 0, - VCAP_AF_ACL_ID = 1, - VCAP_AF_CLS_VID_SEL = 2, - VCAP_AF_CNT_ID = 3, - VCAP_AF_COPY_PORT_NUM = 4, - VCAP_AF_COPY_QUEUE_NUM = 5, - VCAP_AF_CPU_COPY_ENA = 6, - VCAP_AF_CPU_QU = 7, - VCAP_AF_CPU_QUEUE_NUM = 8, - VCAP_AF_CUSTOM_ACE_TYPE_ENA = 9, - VCAP_AF_DEI_A_VAL = 10, - VCAP_AF_DEI_B_VAL = 11, - VCAP_AF_DEI_C_VAL = 12, - VCAP_AF_DEI_ENA = 13, - VCAP_AF_DEI_VAL = 14, - VCAP_AF_DLR_SEL = 15, - VCAP_AF_DP_ENA = 16, - VCAP_AF_DP_VAL = 17, - VCAP_AF_DSCP_ENA = 18, - VCAP_AF_DSCP_SEL = 19, - VCAP_AF_DSCP_VAL = 20, - VCAP_AF_ES2_REW_CMD = 21, - VCAP_AF_ESDX = 22, - VCAP_AF_FWD_KILL_ENA = 23, - VCAP_AF_FWD_MODE = 24, - VCAP_AF_FWD_SEL = 25, - VCAP_AF_HIT_ME_ONCE = 26, - VCAP_AF_HOST_MATCH = 27, - VCAP_AF_IGNORE_PIPELINE_CTRL = 28, - VCAP_AF_INTR_ENA = 29, - VCAP_AF_ISDX_ADD_REPLACE_SEL = 30, - VCAP_AF_ISDX_ADD_VAL = 31, - VCAP_AF_ISDX_ENA = 32, - VCAP_AF_ISDX_REPLACE_ENA = 33, - VCAP_AF_ISDX_VAL = 34, - VCAP_AF_LOOP_ENA = 35, - VCAP_AF_LRN_DIS = 36, - VCAP_AF_MAP_IDX = 37, - VCAP_AF_MAP_KEY = 38, - VCAP_AF_MAP_LOOKUP_SEL = 39, - VCAP_AF_MASK_MODE = 40, - VCAP_AF_MATCH_ID = 41, - VCAP_AF_MATCH_ID_MASK = 42, - VCAP_AF_MIRROR_ENA = 43, - VCAP_AF_MIRROR_PROBE = 44, - VCAP_AF_MIRROR_PROBE_ID = 45, - VCAP_AF_MRP_SEL = 46, - VCAP_AF_NXT_IDX = 47, - VCAP_AF_NXT_IDX_CTRL = 48, - VCAP_AF_OAM_SEL = 49, - VCAP_AF_PAG_OVERRIDE_MASK = 50, - VCAP_AF_PAG_VAL = 51, - VCAP_AF_PCP_A_VAL = 52, - VCAP_AF_PCP_B_VAL = 53, - VCAP_AF_PCP_C_VAL = 54, - VCAP_AF_PCP_ENA = 55, - VCAP_AF_PCP_VAL = 56, - VCAP_AF_PIPELINE_ACT = 57, - VCAP_AF_PIPELINE_FORCE_ENA = 58, - VCAP_AF_PIPELINE_PT = 59, - VCAP_AF_POLICE_ENA = 60, - VCAP_AF_POLICE_IDX = 61, - VCAP_AF_POLICE_REMARK = 62, - VCAP_AF_POLICE_VCAP_ONLY = 63, - VCAP_AF_POP_VAL = 64, - VCAP_AF_PORT_MASK = 65, - VCAP_AF_PUSH_CUSTOMER_TAG = 66, - VCAP_AF_PUSH_INNER_TAG = 67, - VCAP_AF_PUSH_OUTER_TAG = 68, - VCAP_AF_QOS_ENA = 69, - VCAP_AF_QOS_VAL = 70, - VCAP_AF_REW_OP = 71, - VCAP_AF_RT_DIS = 72, - VCAP_AF_SFID_ENA = 73, - VCAP_AF_SFID_VAL = 74, - VCAP_AF_SGID_ENA = 75, - VCAP_AF_SGID_VAL = 76, - VCAP_AF_SWAP_MACS_ENA = 77, - VCAP_AF_TAG_A_DEI_SEL = 78, - VCAP_AF_TAG_A_PCP_SEL = 79, - VCAP_AF_TAG_A_TPID_SEL = 80, - VCAP_AF_TAG_A_VID_SEL = 81, - VCAP_AF_TAG_B_DEI_SEL = 82, - VCAP_AF_TAG_B_PCP_SEL = 83, - VCAP_AF_TAG_B_TPID_SEL = 84, - VCAP_AF_TAG_B_VID_SEL = 85, - VCAP_AF_TAG_C_DEI_SEL = 86, - VCAP_AF_TAG_C_PCP_SEL = 87, - VCAP_AF_TAG_C_TPID_SEL = 88, - VCAP_AF_TAG_C_VID_SEL = 89, - VCAP_AF_TYPE = 90, - VCAP_AF_UNTAG_VID_ENA = 91, - VCAP_AF_VID_A_VAL = 92, - VCAP_AF_VID_B_VAL = 93, - VCAP_AF_VID_C_VAL = 94, - VCAP_AF_VID_REPLACE_ENA = 95, - VCAP_AF_VID_VAL = 96, - VCAP_AF_VLAN_POP_CNT = 97, - VCAP_AF_VLAN_POP_CNT_ENA = 98, +struct omap2_mcspi_platform_config { + unsigned short num_cs; + unsigned int regs_offset; + unsigned int pin_dir: 1; + size_t max_xfer_len; }; -enum vcap_field_type { - VCAP_FIELD_BIT = 0, - VCAP_FIELD_U32 = 1, - VCAP_FIELD_U48 = 2, - VCAP_FIELD_U56 = 3, - VCAP_FIELD_U64 = 4, - VCAP_FIELD_U72 = 5, - VCAP_FIELD_U112 = 6, - VCAP_FIELD_U128 = 7, +struct omap2_mcspi_cs { + void *base; + unsigned long phys; + int word_len; + u16 mode; + struct list_head node; + u32 chconf0; + u32 chctrl0; }; -struct vcap_counter { - u32 value; - bool sticky; +struct omap2_mcspi_regs { + u32 modulctrl; + u32 wakeupenable; + struct list_head cs; }; -struct vcap_control; +struct omap2_mcspi_dma; -struct vcap_rule_internal { - struct vcap_rule data; - struct list_head list; - struct vcap_admin *admin; - struct net_device *ndev; - struct vcap_control *vctrl; - u32 sort_key; - int keyset_sw; - int actionset_sw; - int keyset_sw_regs; - int actionset_sw_regs; - int size; - u32 addr; - u32 counter_id; - struct vcap_counter counter; - enum vcap_rule_state state; +struct omap2_mcspi { + struct completion txdone; + struct spi_controller *ctlr; + void *base; + unsigned long phys; + struct omap2_mcspi_dma *dma_channels; + struct device *dev; + struct omap2_mcspi_regs ctx; + struct clk *ref_clk; + int fifo_depth; + bool target_aborted; + unsigned int pin_dir: 1; + size_t max_xfer_len; + u32 ref_clk_hz; }; -struct vcap_operations; - -struct vcap_info; - -struct vcap_statistics; - -struct vcap_control { - struct vcap_operations *ops; - const struct vcap_info *vcaps; - const struct vcap_statistics *stats; - struct list_head list; +struct omap2_mcspi_dma { + struct dma_chan *dma_tx; + struct dma_chan *dma_rx; + struct completion dma_tx_completion; + struct completion dma_rx_completion; + char dma_rx_ch_name[14]; + char dma_tx_ch_name[14]; }; -struct vcap_keyset_list; - -struct vcap_output_print; - -struct vcap_operations { - enum vcap_keyfield_set (*validate_keyset)(struct net_device *, struct vcap_admin *, struct vcap_rule *, struct vcap_keyset_list *, u16); - void (*add_default_fields)(struct net_device *, struct vcap_admin *, struct vcap_rule *); - void (*cache_erase)(struct vcap_admin *); - void (*cache_write)(struct net_device *, struct vcap_admin *, enum vcap_selection, u32, u32); - void (*cache_read)(struct net_device *, struct vcap_admin *, enum vcap_selection, u32, u32); - void (*init)(struct net_device *, struct vcap_admin *, u32, u32); - void (*update)(struct net_device *, struct vcap_admin *, enum vcap_command, enum vcap_selection, u32); - void (*move)(struct net_device *, struct vcap_admin *, u32, int, int); - int (*port_info)(struct net_device *, struct vcap_admin *, struct vcap_output_print *); +struct omap2_mcspi_device_config { + unsigned int turbo_mode: 1; + unsigned int cs_per_word: 1; }; -struct vcap_keyset_list { - int max; - int cnt; - enum vcap_keyfield_set *keysets; +struct bcm_phy_hw_stat { + const char *string; + int devad; + u16 reg; + u8 shift; + u8 bits; }; -struct vcap_output_print { - void (*prf)(void *, const char *, ...); - void *dst; +enum can_termination_gpio { + CAN_TERMINATION_GPIO_DISABLED = 0, + CAN_TERMINATION_GPIO_ENABLED = 1, + CAN_TERMINATION_GPIO_MAX = 2, }; -struct vcap_set; - -struct vcap_field; +struct ich8_hsflctl { + u16 flcgo: 1; + u16 flcycle: 2; + u16 reserved: 5; + u16 fldbcount: 2; + u16 flockdn: 6; +}; -struct vcap_typegroup; +union ich8_hws_flash_ctrl { + struct ich8_hsflctl hsf_ctrl; + u16 regval; +}; -struct vcap_info { - char *name; - u16 rows; - u16 sw_count; - u16 sw_width; - u16 sticky_width; - u16 act_width; - u16 default_cnt; - u16 require_cnt_dis; - u16 version; - const struct vcap_set *keyfield_set; - int keyfield_set_size; - const struct vcap_set *actionfield_set; - int actionfield_set_size; - const struct vcap_field **keyfield_set_map; - int *keyfield_set_map_size; - const struct vcap_field **actionfield_set_map; - int *actionfield_set_map_size; - const struct vcap_typegroup **keyfield_set_typegroups; - const struct vcap_typegroup **actionfield_set_typegroups; +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; }; -struct vcap_set { - u8 type_id; - u8 sw_per_item; - u8 sw_cnt; +union ich8_hws_flash_status { + struct ich8_hsfsts hsf_status; + u16 regval; }; -struct vcap_field { - u16 type; - u16 width; - u16 offset; +struct ich8_pr { + u32 base: 13; + u32 reserved1: 2; + u32 rpe: 1; + u32 limit: 13; + u32 reserved2: 2; + u32 wpe: 1; }; -struct vcap_typegroup { - u16 offset; - u16 width; - u16 value; +union ich8_flash_protected_range { + struct ich8_pr range; + u32 regval; }; -struct vcap_statistics { - char *name; - int count; - const char * const *keyfield_set_names; - const char * const *actionfield_set_names; - const char * const *keyfield_names; - const char * const *actionfield_names; +enum tc_clsu32_command { + TC_CLSU32_NEW_KNODE = 0, + TC_CLSU32_REPLACE_KNODE = 1, + TC_CLSU32_DELETE_KNODE = 2, + TC_CLSU32_NEW_HNODE = 3, + TC_CLSU32_REPLACE_HNODE = 4, + TC_CLSU32_DELETE_HNODE = 5, }; -struct vcap_client_keyfield_ctrl { - struct list_head list; - enum vcap_key_field key; - enum vcap_field_type type; +enum tc_taprio_qopt_cmd { + TAPRIO_CMD_REPLACE = 0, + TAPRIO_CMD_DESTROY = 1, + TAPRIO_CMD_STATS = 2, + TAPRIO_CMD_QUEUE_STATS = 3, }; -struct vcap_u1_key { - u8 value; - u8 mask; +enum request_irq_err { + REQ_IRQ_ERR_ALL = 0, + REQ_IRQ_ERR_TX = 1, + REQ_IRQ_ERR_RX = 2, + REQ_IRQ_ERR_SFTY_UE = 3, + REQ_IRQ_ERR_SFTY_CE = 4, + REQ_IRQ_ERR_LPI = 5, + REQ_IRQ_ERR_WOL = 6, + REQ_IRQ_ERR_MAC = 7, + REQ_IRQ_ERR_NO = 8, }; -struct vcap_u32_key { - u32 value; - u32 mask; +enum stmmac_state { + STMMAC_DOWN = 0, + STMMAC_RESET_REQUESTED = 1, + STMMAC_RESETING = 2, + STMMAC_SERVICE_SCHED = 3, }; -struct vcap_u56_key { - u8 value[7]; - u8 mask[7]; +enum stmmac_fpe_task_state_t { + __FPE_REMOVING = 0, + __FPE_TASK_SCHED = 1, }; -struct vcap_u64_key { - u8 value[8]; - u8 mask[8]; +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, }; -struct vcap_u72_key { - u8 value[9]; - u8 mask[9]; +struct tc_u32_sel; + +struct tc_cls_u32_knode { + struct tcf_exts *exts; + struct tcf_result *res; + struct tc_u32_sel *sel; + u32 handle; + u32 val; + u32 mask; + u32 link_handle; + u8 fshift; }; -struct vcap_u112_key { - u8 value[14]; - u8 mask[14]; +struct tc_cls_u32_hnode { + u32 handle; + u32 prio; + unsigned int divisor; }; -struct vcap_client_keyfield_data { +struct tc_cls_u32_offload { + struct flow_cls_common_offload common; + enum tc_clsu32_command command; union { - struct vcap_u1_key u1; - struct vcap_u32_key u32; - struct vcap_u48_key u48; - struct vcap_u56_key u56; - struct vcap_u64_key u64; - struct vcap_u72_key u72; - struct vcap_u112_key u112; - struct vcap_u128_key u128; + struct tc_cls_u32_knode knode; + struct tc_cls_u32_hnode hnode; }; }; -struct vcap_client_keyfield { - struct vcap_client_keyfield_ctrl ctrl; - struct vcap_client_keyfield_data data; +struct tc_u32_key { + __be32 mask; + __be32 val; + int off; + int offmask; }; -struct vcap_client_actionfield_ctrl { - struct list_head list; - enum vcap_action_field action; - enum vcap_field_type type; +struct tc_u32_sel { + unsigned char flags; + unsigned char offshift; + unsigned char nkeys; + __be16 offmask; + __u16 off; + short offoff; + short hoff; + __be32 hmask; + struct tc_u32_key keys[0]; }; -struct vcap_u1_action { - u8 value; +struct tc_taprio_sched_entry { + u8 command; + u32 gate_mask; + u32 interval; }; -struct vcap_u32_action { - u32 value; +struct tc_taprio_qopt_stats { + u64 window_drops; + u64 tx_overruns; }; -struct vcap_u48_action { - u8 value[6]; +struct tc_taprio_qopt_queue_stats { + int queue; + long: 32; + struct tc_taprio_qopt_stats stats; }; -struct vcap_u56_action { - u8 value[7]; +struct tc_taprio_qopt_offload { + enum tc_taprio_qopt_cmd cmd; + long: 32; + union { + struct tc_taprio_qopt_stats stats; + struct tc_taprio_qopt_queue_stats queue_stats; + struct { + struct tc_mqprio_qopt_offload mqprio; + struct netlink_ext_ack *extack; + long: 32; + ktime_t base_time; + u64 cycle_time; + u64 cycle_time_extension; + u32 max_sdu[16]; + size_t num_entries; + struct tc_taprio_sched_entry entries[0]; + long: 32; + }; + }; }; -struct vcap_u64_action { - u8 value[8]; +struct stmmac_xdp_buff { + struct xdp_buff xdp; + struct stmmac_priv *priv; + struct dma_desc *desc; + struct dma_desc *ndesc; }; -struct vcap_u72_action { - u8 value[9]; +struct k3_mdio_soc_data { + bool manual_mode; }; -struct vcap_u112_action { - u8 value[14]; +struct mdio_platform_data { + unsigned long bus_freq; }; -struct vcap_u128_action { - u8 value[16]; +struct davinci_mdio_of_param { + int autosuspend_delay_ms; + bool manual_mode; }; -struct vcap_client_actionfield_data { - union { - struct vcap_u1_action u1; - struct vcap_u32_action u32; - struct vcap_u48_action u48; - struct vcap_u56_action u56; - struct vcap_u64_action u64; - struct vcap_u72_action u72; - struct vcap_u112_action u112; - struct vcap_u128_action u128; - }; -}; +struct davinci_mdio_regs; -struct vcap_client_actionfield { - struct vcap_client_actionfield_ctrl ctrl; - struct vcap_client_actionfield_data data; +struct davinci_mdio_data { + struct mdio_platform_data pdata; + struct mdiobb_ctrl bb_ctrl; + struct davinci_mdio_regs *regs; + struct clk *clk; + struct device *dev; + struct mii_bus *bus; + bool active_in_suspend; + unsigned long access_time; + bool skip_scan; + u32 clk_div; + bool manual_mode; }; -struct vcap_enabled_port { - struct list_head list; - struct net_device *ndev; - unsigned long cookie; - int src_cid; - int dst_cid; +struct davinci_mdio_regs { + u32 version; + u32 control; + u32 alive; + u32 link; + u32 linkintraw; + u32 linkintmasked; + u32 __reserved_0[2]; + u32 userintraw; + u32 userintmasked; + u32 userintmaskset; + u32 userintmaskclr; + u32 manualif; + u32 poll; + u32 __reserved_1[18]; + struct { + u32 access; + u32 physel; + } user[0]; }; -struct vcap_stream_iter { - u32 offset; - u32 sw_width; - u32 regs_per_sw; - u32 reg_idx; - u32 reg_bitpos; - const struct vcap_typegroup *tg; +struct cpsw_switchdev_event_work { + struct work_struct work; + struct switchdev_notifier_fdb_info fdb_info; + struct cpsw_priv *priv; + unsigned long event; }; -struct vcap_actionset_list { - int max; - int cnt; - enum vcap_actionfield_set *actionsets; +struct dwc3_ep_file_map { + const char name[25]; + const struct file_operations * const fops; }; -struct vcap_rule_move { - int addr; - int offset; - int count; +struct xhci_plat_priv { + const char *firmware_name; + long: 32; + unsigned long long quirks; + void (*plat_start)(struct usb_hcd *); + int (*init_quirk)(struct usb_hcd *); + int (*suspend_quirk)(struct usb_hcd *); + int (*resume_quirk)(struct usb_hcd *); }; -struct sti_dwmac_of_data { - void (*fix_retime_src)(void *, unsigned int); +struct ci_hdrc_usb2_priv { + struct platform_device *ci_pdev; + struct clk *clk; }; -enum { - TX_RETIME_SRC_NA = 0, - TX_RETIME_SRC_TXCLK = 1, - TX_RETIME_SRC_CLK_125 = 2, - TX_RETIME_SRC_PHYCLK = 3, - TX_RETIME_SRC_CLKGEN = 4, -}; +typedef void (*btf_trace_usb_gadget_frame_number)(void *, struct usb_gadget *, int); -struct sti_dwmac { - phy_interface_t interface; - bool ext_phyclk; - u32 tx_retime_src; - struct clk *clk; - u32 ctrl_reg; - int clk_sel_reg; - struct regmap *regmap; - bool gmac_en; - u32 speed; - void (*fix_retime_src)(void *, unsigned int); -}; +typedef void (*btf_trace_usb_gadget_wakeup)(void *, struct usb_gadget *, int); -struct quirk_entry { - u16 vid; - u16 pid; - u32 flags; -}; +typedef void (*btf_trace_usb_gadget_set_remote_wakeup)(void *, struct usb_gadget *, int); -struct usb_udc { - struct usb_gadget_driver *driver; - struct usb_gadget *gadget; - struct device dev; - struct list_head list; - bool vbus; - bool started; - bool allow_connect; - struct work_struct vbus_work; - struct mutex connect_lock; +typedef void (*btf_trace_usb_gadget_set_selfpowered)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_clear_selfpowered)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_vbus_connect)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_vbus_draw)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_vbus_disconnect)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_connect)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_disconnect)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_deactivate)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_activate)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_ep_set_maxpacket_limit)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_enable)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_disable)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_set_halt)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_clear_halt)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_set_wedge)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_fifo_status)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_fifo_flush)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_alloc_request)(void *, struct usb_ep *, struct usb_request *, int); + +typedef void (*btf_trace_usb_ep_free_request)(void *, struct usb_ep *, struct usb_request *, int); + +typedef void (*btf_trace_usb_ep_queue)(void *, struct usb_ep *, struct usb_request *, int); + +typedef void (*btf_trace_usb_ep_dequeue)(void *, struct usb_ep *, struct usb_request *, int); + +typedef void (*btf_trace_usb_gadget_giveback_request)(void *, struct usb_ep *, struct usb_request *, int); + +struct trace_event_raw_udc_log_gadget { + struct trace_entry ent; + enum usb_device_speed speed; + enum usb_device_speed max_speed; + enum usb_device_state state; + unsigned int mA; + unsigned int sg_supported; + unsigned int is_otg; + unsigned int is_a_peripheral; + unsigned int b_hnp_enable; + unsigned int a_hnp_support; + unsigned int hnp_polling_support; + unsigned int host_request_flag; + unsigned int quirk_ep_out_aligned_size; + unsigned int quirk_altset_not_supp; + unsigned int quirk_stall_not_supp; + unsigned int quirk_zlp_not_supp; + unsigned int is_selfpowered; + unsigned int deactivated; + unsigned int connected; + int ret; + char __data[0]; }; -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 trace_event_raw_udc_log_ep { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int maxpacket; + unsigned int maxpacket_limit; + unsigned int max_streams; + unsigned int mult; + unsigned int maxburst; + u8 address; + bool claimed; + bool enabled; + int ret; + char __data[0]; }; -struct psmouse_smbus_removal_work { - struct work_struct work; - struct i2c_client *client; +struct trace_event_raw_udc_log_req { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int length; + unsigned int actual; + unsigned int num_sgs; + unsigned int num_mapped_sgs; + unsigned int stream_id; + unsigned int no_interrupt; + unsigned int zero; + unsigned int short_not_ok; + int status; + int ret; + struct usb_request *req; + char __data[0]; }; -struct eeprom_data { - struct bin_attribute bin; - spinlock_t buffer_lock; - u16 buffer_idx; - u16 address_mask; - u8 num_address_bytes; - u8 idx_write_cnt; - bool read_only; - u8 buffer[0]; +struct trace_event_data_offsets_udc_log_ep { + u32 name; }; -struct gxp_wdt { - void *base; - struct watchdog_device wdd; +struct trace_event_data_offsets_udc_log_req { + u32 name; }; -struct ti_opp_supply_optimum_voltage_table; +struct trace_event_data_offsets_udc_log_gadget {}; -struct ti_opp_supply_data { - struct ti_opp_supply_optimum_voltage_table *vdd_table; - u32 num_vdd_table; - u32 vdd_absolute_max_voltage_uv; - struct dev_pm_opp_supply old_supplies[2]; - struct dev_pm_opp_supply new_supplies[2]; +struct spear_kbd { + struct input_dev *input; + void *io_base; + struct clk *clk; + unsigned int irq; + unsigned int mode; + unsigned int suspended_rate; + unsigned short last_key; + unsigned short keycodes[256]; + bool rep; + bool irq_wake_enabled; + u32 mode_ctl_reg; }; -struct ti_opp_supply_optimum_voltage_table { - unsigned int reference_uv; - unsigned int optimized_uv; +struct kbd_platform_data { + const struct matrix_keymap_data *keymap; + bool rep; + unsigned int mode; + unsigned int suspended_rate; }; -struct ti_opp_supply_of_data { - const u8 flags; - const u32 efuse_voltage_mask; - const bool efuse_voltage_uv; +struct stpmic1_onkey { + struct input_dev *input_dev; + int irq_falling; + int irq_rising; }; -struct mmc_pwrseq_emmc { - struct mmc_pwrseq pwrseq; - struct notifier_block reset_nb; - struct gpio_desc *reset_gpio; +struct tegra_rtc_info { + struct platform_device *pdev; + struct rtc_device *rtc; + void *base; + struct clk *clk; + int irq; + spinlock_t lock; }; -struct owl_mmc_host { +struct dw_i2c_dev; + +struct i2c_dw_semaphore_callbacks { + int (*probe)(struct dw_i2c_dev *); + void (*remove)(struct dw_i2c_dev *); +}; + +struct dw_i2c_dev { struct device *dev; - struct reset_control *reset; + struct regmap *map; + struct regmap *sysmap; void *base; + void *ext; + struct completion cmd_complete; struct clk *clk; - struct completion sdc_complete; - spinlock_t lock; + struct clk *pclk; + struct reset_control *rst; + struct i2c_client *slave; + u32 (*get_clk_rate_khz)(struct dw_i2c_dev *); + int cmd_err; + struct i2c_msg *msgs; + int msgs_num; + int msg_write_idx; + u32 tx_buf_len; + u8 *tx_buf; + int msg_read_idx; + u32 rx_buf_len; + u8 *rx_buf; + int msg_err; + unsigned int status; + unsigned int abort_source; int irq; - u32 clock; - bool ddr_50; - enum dma_data_direction dma_dir; - struct dma_chan *dma; - struct dma_async_tx_descriptor *desc; - struct dma_slave_config dma_cfg; - struct completion dma_complete; - struct mmc_host *mmc; - struct mmc_request *mrq; - struct mmc_command *cmd; - struct mmc_data *data; + u32 flags; + struct i2c_adapter adapter; + u32 functionality; + u32 master_cfg; + u32 slave_cfg; + unsigned int tx_fifo_depth; + unsigned int rx_fifo_depth; + int rx_outstanding; + struct i2c_timings timings; + u32 sda_hold_time; + u16 ss_hcnt; + u16 ss_lcnt; + u16 fs_hcnt; + u16 fs_lcnt; + u16 fp_hcnt; + u16 fp_lcnt; + u16 hs_hcnt; + u16 hs_lcnt; + int (*acquire_lock)(); + void (*release_lock)(); + int semaphore_idx; + bool shared_with_punit; + void (*disable)(struct dw_i2c_dev *); + int (*init)(struct dw_i2c_dev *); + int (*set_sda_hold_time)(struct dw_i2c_dev *); + int mode; + struct i2c_bus_recovery_info rinfo; }; -enum scmi_voltage_level_mode { - SCMI_VOLTAGE_LEVEL_SET_AUTO = 0, - SCMI_VOLTAGE_LEVEL_SET_SYNC = 1, +struct i2c_demux_pinctrl_chan { + struct device_node *parent_np; + struct i2c_adapter *parent_adap; + struct of_changeset chgset; }; -struct scmi_voltage_info; - -struct scmi_voltage_proto_ops { - int (*num_domains_get)(const struct scmi_protocol_handle *); - const struct scmi_voltage_info * (*info_get)(const struct scmi_protocol_handle *, u32); - int (*config_set)(const struct scmi_protocol_handle *, u32, u32); - int (*config_get)(const struct scmi_protocol_handle *, u32, u32 *); - int (*level_set)(const struct scmi_protocol_handle *, u32, enum scmi_voltage_level_mode, s32); - int (*level_get)(const struct scmi_protocol_handle *, u32, s32 *); +struct i2c_demux_pinctrl_priv { + int cur_chan; + int num_chan; + struct device *dev; + const char *bus_name; + struct i2c_adapter cur_adap; + struct i2c_algorithm algo; + struct i2c_demux_pinctrl_chan chan[0]; + long: 32; }; -struct scmi_voltage_info { - unsigned int id; - bool segmented; - bool negative_volts_allowed; - bool async_level_set; - char name[64]; - unsigned int num_levels; - int *levels_uv; +struct psci_cpuidle_data { + u32 *psci_states; + struct device *dev; }; -enum scmi_voltage_protocol_cmd { - VOLTAGE_DOMAIN_ATTRIBUTES = 3, - VOLTAGE_DESCRIBE_LEVELS = 4, - VOLTAGE_CONFIG_SET = 5, - VOLTAGE_CONFIG_GET = 6, - VOLTAGE_LEVEL_SET = 7, - VOLTAGE_LEVEL_GET = 8, - VOLTAGE_DOMAIN_NAME_GET = 9, +enum mmc_drv_op { + MMC_DRV_OP_IOCTL = 0, + MMC_DRV_OP_IOCTL_RPMB = 1, + MMC_DRV_OP_BOOT_WP = 2, + MMC_DRV_OP_GET_CARD_STATUS = 3, + MMC_DRV_OP_GET_EXT_CSD = 4, }; -struct voltage_info { - unsigned int version; - unsigned int num_domains; - struct scmi_voltage_info *domains; +enum mmc_issued { + MMC_REQ_STARTED = 0, + MMC_REQ_BUSY = 1, + MMC_REQ_FAILED_TO_START = 2, + MMC_REQ_FINISHED = 3, }; -struct scmi_msg_resp_domain_attributes { - __le32 attr; - u8 name[16]; +enum mmc_issue_type { + MMC_ISSUE_SYNC = 0, + MMC_ISSUE_DCMD = 1, + MMC_ISSUE_ASYNC = 2, + MMC_ISSUE_MAX = 3, }; -struct scmi_volt_ipriv { - struct device *dev; - struct scmi_voltage_info *v; -}; +struct mmc_blk_data; -struct scmi_msg_cmd_describe_levels { - __le32 domain_id; - __le32 level_index; +struct mmc_queue { + struct mmc_card *card; + struct mmc_ctx ctx; + struct blk_mq_tag_set tag_set; + struct mmc_blk_data *blkdata; + struct request_queue *queue; + spinlock_t lock; + int in_flight[3]; + unsigned int cqe_busy; + bool busy; + bool recovery_needed; + bool in_recovery; + bool rw_wait; + bool waiting; + struct work_struct recovery_work; + wait_queue_head_t wait; + struct request *recovery_req; + struct request *complete_req; + struct mutex complete_lock; + struct work_struct complete_work; }; -struct scmi_msg_resp_describe_levels { - __le32 flags; - __le32 voltage[0]; +struct mmc_blk_data { + struct device *parent; + struct gendisk *disk; + struct mmc_queue queue; + struct list_head part; + struct list_head rpmbs; + unsigned int flags; + struct kref kref; + unsigned int read_only; + unsigned int part_type; + unsigned int reset_done; + unsigned int part_curr; + int area_type; + struct dentry *status_dentry; + struct dentry *ext_csd_dentry; }; -struct scmi_msg_cmd_config_set { - __le32 domain_id; - __le32 config; +struct mmc_blk_request { + struct mmc_request mrq; + struct mmc_command sbc; + struct mmc_command cmd; + struct mmc_command stop; + struct mmc_data data; }; -struct scmi_msg_cmd_level_set { - __le32 domain_id; - __le32 flags; - __le32 voltage_level; +struct mmc_queue_req { + struct mmc_blk_request brq; + struct scatterlist *sg; + enum mmc_drv_op drv_op; + int drv_op_result; + void *drv_op_data; + unsigned int ioc_count; + int retries; }; -struct scmi_resp_voltage_level_set_complete { - __le32 domain_id; - __le32 voltage_level; +struct mmc_ioc_cmd { + int write_flag; + int is_acmd; + __u32 opcode; + __u32 arg; + __u32 response[4]; + unsigned int flags; + unsigned int blksz; + unsigned int blocks; + unsigned int postsleep_min_us; + unsigned int postsleep_max_us; + unsigned int data_timeout_ns; + unsigned int cmd_timeout_ms; + __u32 __pad; + __u64 data_ptr; }; -struct stm32_timer_private { - int bits; +struct mmc_ioc_multi_cmd { + __u64 num_of_cmds; + struct mmc_ioc_cmd cmds[0]; }; -struct usage_priority { - __u32 usage; - bool global; - unsigned int slot_overwrite; +struct mmc_rpmb_data { + struct device dev; + struct cdev chrdev; + int id; + unsigned int part_index; + struct mmc_blk_data *md; + struct list_head node; }; -typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int); - -struct __extcon_info { - unsigned int type; - unsigned int id; - const char *name; +struct mmc_blk_busy_data { + struct mmc_card *card; + u32 status; }; -union extcon_property_value { - int intval; +struct mmc_blk_ioc_data { + struct mmc_ioc_cmd ic; + unsigned char *buf; + long: 32; + u64 buf_bytes; + struct mmc_rpmb_data *rpmb; + long: 32; }; -struct extcon_cable { - struct extcon_dev *edev; - int cable_index; - struct attribute_group attr_g; - struct device_attribute attr_name; - struct device_attribute attr_state; - struct attribute *attrs[3]; - union extcon_property_value usb_propval[3]; - union extcon_property_value chg_propval[1]; - union extcon_property_value jack_propval[1]; - union extcon_property_value disp_propval[2]; - unsigned long usb_bits[1]; - unsigned long chg_bits[1]; - unsigned long jack_bits[1]; - unsigned long disp_bits[1]; +struct nvec_ps2 { + struct serio *ser_dev; + struct notifier_block notifier; + struct nvec_chip *nvec; }; -enum { - NVMEM_ADD = 1, - NVMEM_REMOVE = 2, - NVMEM_CELL_ADD = 3, - NVMEM_CELL_REMOVE = 4, +struct hi3660_chan_info { + unsigned int dst_irq; + unsigned int ack_irq; }; -struct nvmem_device { - struct module *owner; - long: 32; - 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; - struct gpio_desc *wp_gpio; - struct nvmem_layout *layout; - void *priv; +struct hi3660_mbox { + struct device *dev; + void *base; + struct mbox_chan chan[32]; + struct hi3660_chan_info mchan[32]; + struct mbox_controller controller; }; -struct nvmem_cell_table { - const char *nvmem_name; - const struct nvmem_cell_info *cells; - size_t ncells; - struct list_head node; +struct iio_kfifo { + struct iio_buffer buffer; + struct kfifo kf; + struct mutex user_lock; + int update_needed; }; -struct nvmem_cell_entry { - const char *name; - int offset; - size_t raw_len; - int bytes; - int bit_offset; - int nbits; - nvmem_cell_post_process_t read_post_process; - void *priv; - struct device_node *np; - struct nvmem_device *nvmem; - struct list_head node; +struct fib_rule_uid_range { + __u32 start; + __u32 end; }; -struct nvmem_cell { - struct nvmem_cell_entry *entry; - const char *id; - int index; +struct fib_rule_notifier_info { + struct fib_notifier_info info; + struct fib_rule *rule; }; -enum offload_act_command { - FLOW_ACT_REPLACE = 0, - FLOW_ACT_DESTROY = 1, - FLOW_ACT_STATS = 2, -}; +typedef void (*btf_trace_netlink_extack)(void *, const char *); -struct flow_block_cb; +struct listeners; -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 netlink_table { + struct rhashtable hash; + struct hlist_head mc_list; + struct listeners __attribute__((btf_type_tag("rcu"))) *listeners; + unsigned int flags; + unsigned int groups; + struct mutex *cb_mutex; + struct module *module; + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, unsigned long *); + int registered; }; -struct 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 listeners { + struct callback_head rcu; + unsigned long masks[0]; }; -typedef int flow_indr_block_bind_cb_t(struct net_device *, struct Qdisc *, void *, enum tc_setup_type, void *, void *, void (*)(struct flow_block_cb *)); - -struct flow_indr_dev { - struct list_head list; - flow_indr_block_bind_cb_t *cb; - void *cb_priv; - refcount_t refcnt; +enum netlink_skb_flags { + NETLINK_SKB_DST = 8, }; -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; +enum { + NETLINK_F_KERNEL_SOCKET = 0, + NETLINK_F_RECV_PKTINFO = 1, + NETLINK_F_BROADCAST_SEND_ERROR = 2, + NETLINK_F_RECV_NO_ENOBUFS = 3, + NETLINK_F_LISTEN_ALL_NSID = 4, + NETLINK_F_CAP_ACK = 5, + NETLINK_F_EXT_ACK = 6, + NETLINK_F_STRICT_CHK = 7, }; -struct flow_offload_action { - struct netlink_ext_ack *extack; - enum offload_act_command command; - enum flow_action_id id; - u32 index; - unsigned long cookie; - long: 32; - struct flow_stats stats; - struct flow_action action; +enum { + NETLINK_UNCONNECTED = 0, + NETLINK_CONNECTED = 1, }; -struct flow_match_meta { - struct flow_dissector_key_meta *key; - struct flow_dissector_key_meta *mask; +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 flow_match_control { - struct flow_dissector_key_control *key; - struct flow_dissector_key_control *mask; +struct trace_event_raw_netlink_extack { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -struct flow_dissector_key_ports_range; +struct netlink_tap { + struct net_device *dev; + struct module *module; + struct list_head list; +}; -struct flow_match_ports_range { - struct flow_dissector_key_ports_range *key; - struct flow_dissector_key_ports_range *mask; +struct netlink_sock { + struct sock sk; + unsigned long flags; + u32 portid; + u32 dst_portid; + u32 dst_group; + u32 subscriptions; + u32 ngroups; + unsigned long *groups; + unsigned long state; + size_t max_recvmsg_len; + wait_queue_head_t wait; + bool bound; + bool cb_running; + int dump_done_errno; + struct netlink_callback cb; + struct mutex *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); + void (*netlink_release)(struct sock *, unsigned long *); + struct module *module; + struct rhash_head node; + struct callback_head rcu; + struct work_struct work; }; -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 sockaddr_nl { + __kernel_sa_family_t nl_family; + unsigned short nl_pad; + __u32 nl_pid; + __u32 nl_groups; }; -struct flow_match_icmp { - struct flow_dissector_key_icmp *key; - struct flow_dissector_key_icmp *mask; +struct trace_event_data_offsets_netlink_extack { + u32 msg; }; -struct flow_match_mpls { - struct flow_dissector_key_mpls *key; - struct flow_dissector_key_mpls *mask; +struct netlink_tap_net { + struct list_head netlink_tap_all; + struct mutex netlink_tap_lock; }; -struct flow_match_enc_keyid { - struct flow_dissector_key_keyid *key; - struct flow_dissector_key_keyid *mask; +struct netlink_broadcast_data { + struct sock *exclude_sk; + struct net *net; + u32 portid; + u32 group; + int failure; + int delivery_failure; + int congested; + int delivered; + gfp_t allocation; + struct sk_buff *skb; + struct sk_buff *skb2; + int (*tx_filter)(struct sock *, struct sk_buff *, void *); + void *tx_data; }; -struct flow_match_enc_opts { - struct flow_dissector_key_enc_opts *key; - struct flow_dissector_key_enc_opts *mask; +struct netlink_set_err_data { + struct sock *exclude_sk; + u32 portid; + u32 group; + int code; }; -struct flow_dissector_key_ct; - -struct flow_match_ct { - struct flow_dissector_key_ct *key; - struct flow_dissector_key_ct *mask; +struct netlink_compare_arg { + possible_net_t pnet; + u32 portid; }; -struct flow_dissector_key_ct { - u16 ct_state; - u16 ct_zone; - u32 ct_mark; - u32 ct_labels[4]; +struct nl_pktinfo { + __u32 group; }; -struct flow_match_pppoe { - struct flow_dissector_key_pppoe *key; - struct flow_dissector_key_pppoe *mask; +struct nl_seq_iter { + struct seq_net_private p; + struct rhashtable_iter hti; + int link; }; -struct flow_match_l2tpv3 { - struct flow_dissector_key_l2tpv3 *key; - struct flow_dissector_key_l2tpv3 *mask; +struct bpf_iter__netlink { + union { + struct bpf_iter_meta *meta; + }; + union { + struct netlink_sock *sk; + }; }; -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 nlmsgerr { + int error; + struct nlmsghdr msg; }; -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; +struct netlink_notify { + struct net *net; + u32 portid; + int protocol; }; enum { - ETHTOOL_STATS_ETH_PHY = 0, - ETHTOOL_STATS_ETH_MAC = 1, - ETHTOOL_STATS_ETH_CTRL = 2, - ETHTOOL_STATS_RMON = 3, - __ETHTOOL_STATS_CNT = 4, + 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, }; -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, +struct module_reply_data { + struct ethnl_reply_data base; + struct ethtool_module_power_mode_params power; }; enum { - ETHTOOL_A_STATS_GRP_UNSPEC = 0, - ETHTOOL_A_STATS_GRP_PAD = 1, - ETHTOOL_A_STATS_GRP_ID = 2, - ETHTOOL_A_STATS_GRP_SS_ID = 3, - ETHTOOL_A_STATS_GRP_STAT = 4, - ETHTOOL_A_STATS_GRP_HIST_RX = 5, - ETHTOOL_A_STATS_GRP_HIST_TX = 6, - ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, - ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, - ETHTOOL_A_STATS_GRP_HIST_VAL = 9, - __ETHTOOL_A_STATS_GRP_CNT = 10, - ETHTOOL_A_STATS_GRP_MAX = 9, + TCP_NO_QUEUE = 0, + TCP_RECV_QUEUE = 1, + TCP_SEND_QUEUE = 2, + TCP_QUEUES_NR = 3, }; enum { - ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0, - __ETHTOOL_A_STATS_ETH_PHY_CNT = 1, - ETHTOOL_A_STATS_ETH_PHY_MAX = 0, + TCP_CMSG_INQ = 1, + TCP_CMSG_TS = 2, }; 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, + 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 { - 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, + 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, }; -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 tcp_splice_state { + struct pipe_inode_info *pipe; + size_t len; + unsigned int flags; }; -struct stats_req_info { - struct ethnl_req_info base; - unsigned long stat_mask[1]; - enum ethtool_mac_stats_src src; +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 stats_reply_data { - struct ethnl_reply_data base; - long: 32; - 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; - long: 32; +struct tcp_repair_opt { + __u32 opt_code; + __u32 opt_val; }; -typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); +struct tcp_repair_window { + __u32 snd_wl1; + __u32 snd_wnd; + __u32 max_window; + __u32 rcv_wnd; + __u32 rcv_wup; +}; struct bictcp { u32 cnt; @@ -147107,553 +148861,384 @@ struct bictcp { u32 curr_rtt; }; -struct rt0_hdr { - struct ipv6_rt_hdr rt_hdr; - __u32 reserved; - struct in6_addr addr[0]; -}; - -struct ioam6_hdr { - __u8 opt_type; - __u8 opt_len; - char: 8; - __u8 type; -}; - -enum devlink_health_reporter_state { - DEVLINK_HEALTH_REPORTER_STATE_HEALTHY = 0, - DEVLINK_HEALTH_REPORTER_STATE_ERROR = 1, -}; - -struct devlink_health_reporter_ops; - -struct devlink_fmsg; - -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; - long: 32; - u64 dump_ts; - u64 dump_real_ts; - u64 error_count; - u64 recovery_count; - u64 last_recovery_ts; -}; - -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 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]; -}; - -struct xdp_rxtx_ring { - struct xdp_ring ptrs; - struct xdp_desc desc[0]; +enum fib6_walk_state { + FWS_S = 0, + FWS_L = 1, + FWS_R = 2, + FWS_C = 3, + FWS_U = 4, }; enum { - XDP_DIAG_NONE = 0, - XDP_DIAG_INFO = 1, - XDP_DIAG_UID = 2, - XDP_DIAG_RX_RING = 3, - XDP_DIAG_TX_RING = 4, - XDP_DIAG_UMEM = 5, - XDP_DIAG_UMEM_FILL_RING = 6, - XDP_DIAG_UMEM_COMPLETION_RING = 7, - XDP_DIAG_MEMINFO = 8, - XDP_DIAG_STATS = 9, - __XDP_DIAG_MAX = 10, -}; - -struct xdp_diag_stats { - __u64 n_rx_dropped; - __u64 n_rx_invalid; - __u64 n_rx_full; - __u64 n_fill_ring_empty; - __u64 n_tx_invalid; - __u64 n_tx_ring_empty; -}; - -struct xdp_diag_req { - __u8 sdiag_family; - __u8 sdiag_protocol; - __u16 pad; - __u32 xdiag_ino; - __u32 xdiag_show; - __u32 xdiag_cookie[2]; + FIB6_NO_SERNUM_CHANGE = 0, }; -struct xdp_diag_msg { - __u8 xdiag_family; - __u8 xdiag_type; - __u16 pad; - __u32 xdiag_ino; - __u32 xdiag_cookie[2]; +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 xdp_diag_info { - __u32 ifindex; - __u32 queue_id; +struct fib6_cleaner { + struct fib6_walker w; + struct net *net; + int (*func)(struct fib6_info *, void *); + int sernum; + void *arg; + bool skip_notify; }; -struct xdp_diag_ring { - __u32 entries; +struct fib6_dump_arg { + struct net *net; + struct notifier_block *nb; + struct netlink_ext_ack *extack; }; -struct xdp_diag_umem { - __u64 size; - __u32 id; - __u32 num_pages; - __u32 chunk_size; - __u32 headroom; - __u32 ifindex; - __u32 queue_id; - __u32 flags; - __u32 refs; +struct fib6_entry_notifier_info { + struct fib_notifier_info info; + struct fib6_info *rt; + unsigned int nsiblings; }; -struct omap3_vp { - u32 tranxdone_status; +struct ipv6_route_iter { + struct seq_net_private p; + struct fib6_walker w; + long: 32; + loff_t skip; + struct fib6_table *tbl; + int sernum; }; -struct clock_read_data { - u64 epoch_ns; - u64 epoch_cyc; - u64 sched_clock_mask; - u64 (*read_sched_clock)(); - u32 mult; - u32 shift; - long: 32; +struct bpf_iter__ipv6_route { + union { + struct bpf_iter_meta *meta; + }; + union { + struct fib6_info *rt; + }; }; -struct clock_data { - seqcount_latch_t seq; - long: 32; - struct clock_read_data read_data[2]; - ktime_t wrap_kt; - unsigned long rate; - u64 (*actual_read_sched_clock)(); +struct fib6_nh_pcpu_arg { + struct fib6_info *from; + const struct fib6_table *table; }; -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 lookup_args { + int offset; + const struct in6_addr *addr; }; -struct action_cache { - unsigned long allow_native[15]; +struct xdr_skb_reader { + struct sk_buff *skb; + unsigned int offset; + size_t count; + __wsum csum; }; -struct notification; +typedef size_t (*xdr_skb_read_actor)(struct xdr_skb_reader *, void *, size_t); -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 svc_xpt_user { + struct list_head list; + void (*callback)(struct svc_xpt_user *); }; -struct notification { - struct semaphore request; - u64 next_id; - struct list_head notifications; +struct efi_arm_entry_state { + u32 cpsr_before_ebs; + u32 sctlr_before_ebs; + u32 cpsr_after_ebs; + u32 sctlr_after_ebs; }; -struct seccomp_log_name { - u32 log; +struct fsr_info { + int (*fn)(unsigned long, unsigned int, struct pt_regs *); + int sig; + int code; 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 cpu_user_fns { + void (*cpu_clear_user_highpage)(struct page *, unsigned long); + void (*cpu_copy_user_highpage)(struct page *, struct page *, unsigned long, struct vm_area_struct *); }; -struct seccomp_knotif { - struct task_struct *task; - long: 32; - 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; - long: 32; +struct static_dep_map { + const char *from; + const char *to; }; -struct seccomp_notif_sizes { - __u16 seccomp_notif; - __u16 seccomp_notif_resp; - __u16 seccomp_data; +struct power_state { + struct powerdomain *pwrdm; + u32 next_state; + u32 next_logic_state; + u32 saved_state; + u32 saved_logic_state; + struct list_head node; }; -struct seccomp_notif_resp { - __u64 id; - __s64 val; - __s32 error; +struct ptrace_peeksiginfo_args { + __u64 off; __u32 flags; + __s32 nr; }; -struct seccomp_notif { - __u64 id; - __u32 pid; - __u32 flags; - struct seccomp_data data; +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; + long: 32; + } exit; + struct { + __u64 nr; + __u64 args[6]; + __u32 ret_data; + long: 32; + } seccomp; + }; }; -struct seccomp_notif_addfd { - __u64 id; +struct ptrace_rseq_configuration { + __u64 rseq_abi_pointer; + __u32 rseq_abi_size; + __u32 signature; __u32 flags; - __u32 srcfd; - __u32 newfd; - __u32 newfd_flags; -}; - -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 *); + __u32 pad; }; -enum { - XDP_METADATA_KFUNC_RX_TIMESTAMP = 0, - XDP_METADATA_KFUNC_RX_HASH = 1, - MAX_XDP_METADATA_KFUNC = 2, +struct optimistic_spin_node { + struct optimistic_spin_node *next; + struct optimistic_spin_node *prev; + int locked; + int cpu; }; -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; +struct pm_vt_switch { + struct list_head head; + struct device *dev; + bool required; }; -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; +union rcu_noqs { + struct { + u8 norm; + u8 exp; + } b; + u16 s; }; -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 rcu_snap_record { + unsigned long gp_seq; long: 32; -}; - -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 cputime_irq; + u64 cputime_softirq; + u64 cputime_system; + unsigned long nr_hardirqs; + unsigned int nr_softirqs; + unsigned long long nr_csw; + unsigned long jiffies; long: 32; - __u64 map_extra; -}; - -enum meminit_context { - MEMINIT_EARLY = 0, - MEMINIT_HOTPLUG = 1, -}; - -enum mminit_level { - MMINIT_WARNING = 0, - MMINIT_VERIFY = 1, - MMINIT_TRACE = 2, -}; - -struct madvise_walk_private { - struct mmu_gather *tlb; - bool pageout; -}; - -struct prepend_buffer { - char *buf; - int len; -}; - -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 fat_floppy_defaults { - unsigned int nr_sectors; - unsigned int sec_per_clus; - unsigned int dir_entries; - unsigned int media; - unsigned int fat_length; }; -enum { - Opt_check_n = 0, - Opt_check_r = 1, - Opt_check_s = 2, - Opt_uid___3 = 3, - Opt_gid___4 = 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___2 = 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___2 = 36, - Opt_nfs = 37, - Opt_time_offset = 38, - Opt_nfs_stale_rw = 39, - Opt_nfs_nostale_ro = 40, - Opt_err___6 = 41, - Opt_dos1xfloppy = 42, -}; +struct rcu_node; -struct fat_boot_fsinfo { - __le32 signature1; - __le32 reserved1[120]; - __le32 signature2; - __le32 free_clusters; - __le32 next_cluster; - __le32 reserved2[4]; +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 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; +struct rcu_exp_work { + unsigned long rew_s; + struct work_struct rew_work; }; -struct nfs_referral_count { - struct list_head list; - const struct task_struct *task; - unsigned int referral_count; +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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + raw_spinlock_t fqslock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + 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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct idx_node { - struct list_head list; - int iip; +struct rcu_state { + struct rcu_node node[1]; + struct rcu_node *level[2]; + int ncpus; + int n_online_cpus; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + unsigned long gp_seq; + unsigned long gp_max; + struct task_struct *gp_kthread; + struct swait_queue_head gp_wq; + short gp_flags; + short gp_state; + unsigned long gp_wake_time; + unsigned long gp_wake_seq; + unsigned long gp_seq_polled; + unsigned long gp_seq_polled_snap; + unsigned long gp_seq_polled_exp_snap; + struct mutex barrier_mutex; + atomic_t barrier_cpu_count; + struct completion barrier_completion; + unsigned long barrier_sequence; + raw_spinlock_t barrier_lock; + struct mutex exp_mutex; + struct mutex exp_wake_mutex; + unsigned long expedited_sequence; + atomic_t expedited_need_qs; + struct swait_queue_head expedited_wq; + int ncpus_snap; + u8 cbovld; + u8 cbovldnext; + unsigned long jiffies_force_qs; + unsigned long jiffies_kick_kthreads; + unsigned long n_force_qs; + unsigned long gp_start; + unsigned long gp_end; + unsigned long gp_activity; + unsigned long gp_req_activity; + unsigned long jiffies_stall; + int nr_fqs_jiffies_stall; + unsigned long jiffies_resched; + unsigned long n_force_qs_gpstart; + const char *name; + char abbr; long: 32; - union ubifs_key upper_key; - struct ubifs_idx_node idx; long: 32; -}; - -struct msg; - -struct msqid_ds { - struct ipc_perm msg_perm; - struct msg *msg_first; - struct msg *msg_last; - __kernel_old_time_t msg_stime; - __kernel_old_time_t msg_rtime; - __kernel_old_time_t msg_ctime; - unsigned long msg_lcbytes; - unsigned long msg_lqbytes; - unsigned short msg_cbytes; - unsigned short msg_qnum; - unsigned short msg_qbytes; - __kernel_ipc_pid_t msg_lspid; - __kernel_ipc_pid_t msg_lrpid; -}; - -struct msgbuf { - __kernel_long_t mtype; - char mtext[1]; -}; - -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: 32; long: 32; long: 32; @@ -147662,6 +149247,15 @@ struct msg_queue { long: 32; long: 32; long: 32; + arch_spinlock_t ofl_lock; + int nocb_is_setup; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; long: 32; long: 32; @@ -147671,5999 +149265,6290 @@ struct msg_queue { long: 32; }; -struct msg_receiver { - struct list_head r_list; - struct task_struct *r_tsk; - int r_mode; - long r_msgtype; - long r_maxsize; - struct msg_msg *r_msg; -}; - -struct msg_sender { - struct list_head list; - struct task_struct *tsk; - size_t msgsz; +struct rcu_gp_oldstate { + unsigned long rgos_norm; + unsigned long rgos_exp; }; -struct msqid64_ds { - struct ipc64_perm msg_perm; - unsigned long msg_stime; - unsigned long msg_stime_high; - unsigned long msg_rtime; - unsigned long msg_rtime_high; - unsigned long msg_ctime; - unsigned long msg_ctime_high; - 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 kfree_rcu_cpu; -struct msginfo { - int msgpool; - int msgmap; - int msgmax; - int msgmnb; - int msgmni; - int msgssz; - int msgtql; - unsigned short msgseg; +struct kfree_rcu_cpu_work { + struct rcu_work rcu_work; + struct callback_head *head_free; + struct rcu_gp_oldstate head_free_gp_snap; + struct list_head bulk_head_free[2]; + struct kfree_rcu_cpu *krcp; }; -struct bio_map_data { - bool is_our_pages: 1; - bool is_null_mapped: 1; +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; long: 32; - struct iov_iter iter; - struct iovec iov[0]; + struct hrtimer hrtimer; + struct llist_head bkvcache; + int nr_bkv_objs; }; -struct wrapper { - cmp_func_t cmp; - swap_func_t swap; +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 mpi_ec_ctx; +struct kvfree_rcu_bulk_data { + struct list_head list; + struct rcu_gp_oldstate gp_snap; + unsigned long nr_records; + void *records[0]; +}; -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 pids_cgroup { + struct cgroup_subsys_state css; + atomic64_t counter; + atomic64_t limit; + int64_t watermark; + struct cgroup_file events_file; + long: 32; + atomic64_t events_limit; }; -enum gcry_mpi_ec_models { - MPI_EC_WEIERSTRASS = 0, - MPI_EC_MONTGOMERY = 1, - MPI_EC_EDWARDS = 2, +enum rdmacg_resource_type { + RDMACG_RESOURCE_HCA_HANDLE = 0, + RDMACG_RESOURCE_HCA_OBJECT = 1, + RDMACG_RESOURCE_MAX = 2, }; -enum ecc_dialects { - ECC_DIALECT_STANDARD = 0, - ECC_DIALECT_ED25519 = 1, - ECC_DIALECT_SAFECURVE = 2, +enum rdmacg_file_type { + RDMACG_RESOURCE_TYPE_MAX = 0, + RDMACG_RESOURCE_TYPE_STAT = 1, }; -struct gcry_mpi_point; +struct rdmacg_resource { + int max; + int usage; +}; -typedef struct gcry_mpi_point *MPI_POINT; +struct rdmacg_resource_pool { + struct rdmacg_device *device; + struct rdmacg_resource resources[2]; + struct list_head cg_node; + struct list_head dev_node; + long: 32; + u64 usage_sum; + int num_max_cnt; + long: 32; +}; -struct mpi_ec_ctx { - enum gcry_mpi_ec_models model; - enum ecc_dialects dialect; +struct trace_export { + struct trace_export __attribute__((btf_type_tag("rcu"))) *next; + void (*write)(struct trace_export *, const void *, unsigned int); 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; +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 ls_extirq_data { - void *intpcr; - raw_spinlock_t lock; - bool big_endian; - bool is_ls1021a_or_ls1043a; - u32 nirq; - struct irq_fwspec map[12]; +struct ftrace_stack { + unsigned long calls[1024]; }; -enum brcm_sata_phy_version { - BRCM_SATA_PHY_STB_16NM = 0, - BRCM_SATA_PHY_STB_28NM = 1, - BRCM_SATA_PHY_STB_40NM = 2, - BRCM_SATA_PHY_IPROC_NS2 = 3, - BRCM_SATA_PHY_IPROC_NSP = 4, - BRCM_SATA_PHY_IPROC_SR = 5, - BRCM_SATA_PHY_DSL_28NM = 6, +struct ftrace_stacks { + struct ftrace_stack stacks[4]; }; -enum brcm_sata_phy_rxaeq_mode { - RXAEQ_MODE_OFF = 0, - RXAEQ_MODE_AUTO = 1, - RXAEQ_MODE_MANUAL = 2, +struct trace_buffer_struct { + int nesting; + char buffer[4096]; }; -enum sata_phy_regs { - BLOCK0_REG_BANK = 0, - BLOCK0_XGXSSTATUS = 129, - BLOCK0_XGXSSTATUS_PLL_LOCK = 4096, - BLOCK0_SPARE = 141, - BLOCK0_SPARE_OOB_CLK_SEL_MASK = 3, - BLOCK0_SPARE_OOB_CLK_SEL_REFBY2 = 1, - BLOCK1_REG_BANK = 16, - BLOCK1_TEST_TX = 131, - BLOCK1_TEST_TX_AMP_SHIFT = 12, - PLL_REG_BANK_0 = 80, - PLL_REG_BANK_0_PLLCONTROL_0 = 129, - PLLCONTROL_0_FREQ_DET_RESTART = 8192, - PLLCONTROL_0_FREQ_MONITOR = 4096, - PLLCONTROL_0_SEQ_START = 32768, - PLL_CAP_CHARGE_TIME = 131, - PLL_VCO_CAL_THRESH = 132, - PLL_CAP_CONTROL = 133, - PLL_FREQ_DET_TIME = 134, - PLL_ACTRL2 = 139, - PLL_ACTRL2_SELDIV_MASK = 31, - PLL_ACTRL2_SELDIV_SHIFT = 9, - PLL_ACTRL6 = 134, - PLL1_REG_BANK = 96, - PLL1_ACTRL2 = 130, - PLL1_ACTRL3 = 131, - PLL1_ACTRL4 = 132, - PLL1_ACTRL5 = 133, - PLL1_ACTRL6 = 134, - PLL1_ACTRL7 = 135, - PLL1_ACTRL8 = 136, - TX_REG_BANK = 112, - TX_ACTRL0 = 128, - TX_ACTRL0_TXPOL_FLIP = 64, - TX_ACTRL5 = 133, - TX_ACTRL5_SSC_EN = 2048, - AEQRX_REG_BANK_0 = 208, - AEQ_CONTROL1 = 129, - AEQ_CONTROL1_ENABLE = 4, - AEQ_CONTROL1_FREEZE = 8, - AEQ_FRC_EQ = 131, - AEQ_FRC_EQ_FORCE = 1, - AEQ_FRC_EQ_FORCE_VAL = 2, - AEQ_RFZ_FRC_VAL = 256, - AEQRX_REG_BANK_1 = 224, - AEQRX_SLCAL0_CTRL0 = 130, - AEQRX_SLCAL1_CTRL0 = 134, - OOB_REG_BANK = 336, - OOB1_REG_BANK = 352, - OOB_CTRL1 = 128, - OOB_CTRL1_BURST_MAX_MASK = 15, - OOB_CTRL1_BURST_MAX_SHIFT = 12, - OOB_CTRL1_BURST_MIN_MASK = 15, - OOB_CTRL1_BURST_MIN_SHIFT = 8, - OOB_CTRL1_WAKE_IDLE_MAX_MASK = 15, - OOB_CTRL1_WAKE_IDLE_MAX_SHIFT = 4, - OOB_CTRL1_WAKE_IDLE_MIN_MASK = 15, - OOB_CTRL1_WAKE_IDLE_MIN_SHIFT = 0, - OOB_CTRL2 = 129, - OOB_CTRL2_SEL_ENA_SHIFT = 15, - OOB_CTRL2_SEL_ENA_RC_SHIFT = 14, - OOB_CTRL2_RESET_IDLE_MAX_MASK = 63, - OOB_CTRL2_RESET_IDLE_MAX_SHIFT = 8, - OOB_CTRL2_BURST_CNT_MASK = 3, - OOB_CTRL2_BURST_CNT_SHIFT = 6, - OOB_CTRL2_RESET_IDLE_MIN_MASK = 63, - OOB_CTRL2_RESET_IDLE_MIN_SHIFT = 0, - TXPMD_REG_BANK = 416, - TXPMD_CONTROL1 = 129, - TXPMD_CONTROL1_TX_SSC_EN_FRC = 1, - TXPMD_CONTROL1_TX_SSC_EN_FRC_VAL = 2, - TXPMD_TX_FREQ_CTRL_CONTROL1 = 130, - TXPMD_TX_FREQ_CTRL_CONTROL2 = 131, - TXPMD_TX_FREQ_CTRL_CONTROL2_FMIN_MASK = 1023, - TXPMD_TX_FREQ_CTRL_CONTROL3 = 132, - TXPMD_TX_FREQ_CTRL_CONTROL3_FMAX_MASK = 1023, - RXPMD_REG_BANK = 448, - RXPMD_RX_CDR_CONTROL1 = 129, - RXPMD_RX_PPM_VAL_MASK = 511, - RXPMD_RXPMD_EN_FRC = 4096, - RXPMD_RXPMD_EN_FRC_VAL = 8192, - RXPMD_RX_CDR_CDR_PROP_BW = 130, - RXPMD_G_CDR_PROP_BW_MASK = 7, - RXPMD_G1_CDR_PROP_BW_SHIFT = 0, - RXPMD_G2_CDR_PROP_BW_SHIFT = 3, - RXPMD_G3_CDR_PROB_BW_SHIFT = 6, - RXPMD_RX_CDR_CDR_ACQ_INTEG_BW = 131, - RXPMD_G_CDR_ACQ_INT_BW_MASK = 7, - RXPMD_G1_CDR_ACQ_INT_BW_SHIFT = 0, - RXPMD_G2_CDR_ACQ_INT_BW_SHIFT = 3, - RXPMD_G3_CDR_ACQ_INT_BW_SHIFT = 6, - RXPMD_RX_CDR_CDR_LOCK_INTEG_BW = 132, - RXPMD_G_CDR_LOCK_INT_BW_MASK = 7, - RXPMD_G1_CDR_LOCK_INT_BW_SHIFT = 0, - RXPMD_G2_CDR_LOCK_INT_BW_SHIFT = 3, - RXPMD_G3_CDR_LOCK_INT_BW_SHIFT = 6, - RXPMD_RX_FREQ_MON_CONTROL1 = 135, - RXPMD_MON_CORRECT_EN = 256, - RXPMD_MON_MARGIN_VAL_MASK = 255, +enum ring_buffer_flags { + RB_FL_OVERWRITE = 1, }; -enum sata_phy_ctrl_regs { - PHY_CTRL_1 = 0, - PHY_CTRL_1_RESET = 1, +struct err_info { + const char **errs; + u8 type; + u16 pos; + u64 ts; }; -struct brcm_sata_phy; - -struct brcm_sata_port { - int portnum; - struct phy *phy; - struct brcm_sata_phy *phy_priv; - bool ssc_en; - enum brcm_sata_phy_rxaeq_mode rxaeq_mode; - u32 rxaeq_val; - u32 tx_amplitude_val; +struct tracing_log_err { + struct list_head list; + struct err_info info; + char loc[128]; + char *cmd; + long: 32; }; -struct brcm_sata_phy { - struct device *dev; - void *phy_base; - void *ctrl_base; - enum brcm_sata_phy_version version; - struct brcm_sata_port phys[2]; +struct buffer_ref { + struct trace_buffer *buffer; + void *page; + int cpu; + refcount_t refcount; }; -struct pcs_conf_type { - const char *name; - enum pin_config_param param; -}; +typedef bool (*cond_update_fn_t)(struct trace_array *, void *); -struct pcs_soc_data { - unsigned int flags; - int irq; - unsigned int irq_enable_mask; - unsigned int irq_status_mask; - void (*rearm)(); +struct trace_min_max_param { + struct mutex *lock; + u64 *val; + u64 *min; + u64 *max; }; -struct pcs_gpiofunc_range { - unsigned int offset; - unsigned int npins; - unsigned int gpiofunc; - struct list_head node; +struct ftrace_buffer_info { + struct trace_iterator iter; + void *spare; + unsigned int spare_cpu; + unsigned int read; + long: 32; }; -struct pcs_data { - struct pinctrl_pin_desc *pa; - int cur; -}; +struct bpf_dtab_netdev; -struct pcs_device { - struct resource *res; - void *base; - void *saved_vals; - unsigned int size; - struct device *dev; - struct device_node *np; - struct pinctrl_dev *pctl; - unsigned int flags; - struct property *missing_nr_pinctrl_cells; - struct pcs_soc_data socdata; - raw_spinlock_t lock; - struct mutex mutex; - unsigned int width; - unsigned int fmask; - unsigned int fshift; - unsigned int foff; - unsigned int fmax; - bool bits_per_mux; - unsigned int bits_per_pin; - struct pcs_data pins; - struct list_head gpiofuncs; - struct list_head irqs; - struct irq_chip chip; - struct irq_domain *domain; - struct pinctrl_desc desc; - unsigned int (*read)(void *); - void (*write)(unsigned int, void *); +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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -struct pcs_interrupt { - void *reg; - irq_hw_number_t hwirq; - unsigned int irq; - struct list_head node; +struct bpf_devmap_val { + __u32 ifindex; + union { + int fd; + __u32 id; + } bpf_prog; }; -struct pcs_func_vals { - void *reg; - unsigned int val; - unsigned int mask; +struct bpf_dtab_netdev { + struct net_device *dev; + struct hlist_node index_hlist; + struct bpf_prog *xdp_prog; + struct callback_head rcu; + unsigned int idx; + struct bpf_devmap_val val; }; -struct pcs_conf_vals; +typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *); -struct pcs_function { - const char *name; - struct pcs_func_vals *vals; - unsigned int nvals; - const char **pgnames; - int npgnames; - struct pcs_conf_vals *conf; - int nconfs; - struct list_head node; -}; +typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, unsigned long, unsigned long, unsigned long, int, bool); -struct pcs_conf_vals { - enum pin_config_param param; - unsigned int val; - unsigned int enable; - unsigned int disable; - unsigned int mask; -}; +typedef void (*btf_trace_mark_victim)(void *, int); -struct pcs_pdata { - int irq; - void (*rearm)(); -}; +typedef void (*btf_trace_wake_reaper)(void *, int); -struct pin_config { - const char *property; - enum pincfg_type param; -}; +typedef void (*btf_trace_start_task_reaping)(void *, int); -struct mvebu_gpio_chip; +typedef void (*btf_trace_finish_task_reaping)(void *, int); -struct mvebu_pwm { - struct regmap *regs; - u32 offset; - unsigned long clk_rate; - struct gpio_desc *gpiod; - struct pwm_chip chip; - spinlock_t lock; - struct mvebu_gpio_chip *mvchip; - u32 blink_select; - u32 blink_on_duration; - u32 blink_off_duration; -}; +typedef void (*btf_trace_skip_task_reaping)(void *, int); -struct mvebu_gpio_chip { - struct gpio_chip chip; - struct regmap *regs; - u32 offset; - struct regmap *percpu_regs; - int irqbase; - struct irq_domain *domain; - int soc_variant; - struct clk *clk; - struct mvebu_pwm *mvpwm; - u32 out_reg; - u32 io_conf_reg; - u32 blink_en_reg; - u32 in_pol_reg; - u32 edge_mask_regs[4]; - u32 level_mask_regs[4]; +enum compact_priority { + COMPACT_PRIO_SYNC_FULL = 0, + MIN_COMPACT_PRIORITY = 0, + COMPACT_PRIO_SYNC_LIGHT = 1, + MIN_COMPACT_COSTLY_PRIORITY = 1, + DEF_COMPACT_PRIORITY = 1, + COMPACT_PRIO_ASYNC = 2, + INIT_COMPACT_PRIORITY = 2, }; -enum as3711_bl_type { - AS3711_BL_SU1 = 0, - AS3711_BL_SU2 = 1, +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, }; -struct as3711_bl_data { - bool powered; - enum as3711_bl_type type; - int brightness; - struct backlight_device *bl; -}; +typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool); -struct as3711_bl_supply { - struct as3711_bl_data su1; - struct as3711_bl_data su2; - const struct as3711_bl_pdata *pdata; - struct as3711 *as3711; +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 devm_clk_state { - struct clk *clk; - void (*exit)(struct clk *); +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 clk_bulk_devres { - struct clk_bulk_data *clks; - int num_clks; +struct trace_event_raw_mark_victim { + struct trace_entry ent; + int pid; + char __data[0]; }; -struct aspeed_clk_soc_data { - const struct clk_div_table *div_table; - const struct clk_div_table *eclk_div_table; - const struct clk_div_table *mac_div_table; - struct clk_hw * (*calc_pll)(const char *, u32); +struct trace_event_raw_wake_reaper { + struct trace_entry ent; + int pid; + char __data[0]; }; -enum iproc_arm_pll_fid { - ARM_PLL_FID_CRYSTAL_CLK = 0, - ARM_PLL_FID_SYS_CLK = 2, - ARM_PLL_FID_CH0_SLOW_CLK = 6, - ARM_PLL_FID_CH1_FAST_CLK = 7, +struct trace_event_raw_start_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; }; -struct iproc_arm_pll { - struct clk_hw hw; - void *base; - unsigned long rate; +struct trace_event_raw_finish_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; }; -struct hi6220_stub_clk { - u32 id; - struct device *dev; - struct clk_hw hw; - struct regmap *dfs_map; - struct mbox_client cl; - struct mbox_chan *mbox; +struct trace_event_raw_skip_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; }; -struct hi6220_mbox_msg { - unsigned char type; - unsigned char cmd; - unsigned char obj; - unsigned char src; - unsigned char para[4]; +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]; }; -union hi6220_mbox_data { - unsigned int data[8]; - struct hi6220_mbox_msg msg; -}; +struct trace_event_data_offsets_oom_score_adj_update {}; -enum { - DOVE_CPU_TO_L2 = 0, - DOVE_CPU_TO_DDR = 1, -}; +struct trace_event_data_offsets_reclaim_retry_zone {}; -struct aspeed_uart_routing_selector { - struct device_attribute dev_attr; - uint8_t reg; - uint8_t mask; - uint8_t shift; - const char * const options[0]; -}; +struct trace_event_data_offsets_mark_victim {}; -struct aspeed_uart_routing { - struct regmap *map; - const struct attribute_group *attr_grp; -}; +struct trace_event_data_offsets_wake_reaper {}; -struct mtk_mmsys_routes; +struct trace_event_data_offsets_start_task_reaping {}; -struct mtk_mmsys_driver_data { - const char *clk_driver; - const struct mtk_mmsys_routes *routes; - const unsigned int num_routes; - const u16 sw0_rst_offset; - const u32 num_resets; - const bool is_vppsys; -}; +struct trace_event_data_offsets_finish_task_reaping {}; -struct mtk_mmsys_routes { - u32 from_comp; - u32 to_comp; - u32 addr; - u32 mask; - u32 val; -}; +struct trace_event_data_offsets_skip_task_reaping {}; -enum mtk_dpi_out_format_con { - MTK_DPI_RGB888_SDR_CON = 0, - MTK_DPI_RGB888_DDR_CON = 1, - MTK_DPI_RGB565_SDR_CON = 2, - MTK_DPI_RGB565_DDR_CON = 3, -}; +struct trace_event_data_offsets_compact_retry {}; -struct mtk_mmsys { - void *regs; - const struct mtk_mmsys_driver_data *data; - struct platform_device *clks_pdev; - struct platform_device *drm_pdev; - spinlock_t lock; - struct reset_controller_dev rcdev; - struct cmdq_client_reg cmdq_base; -}; +typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -struct sunxi_sram_func; +typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -struct sunxi_sram_data { - char *name; - u8 reg; - u8 offset; - u8 width; - struct sunxi_sram_func *func; - struct list_head list; -}; +typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -struct sunxi_sram_desc { - struct sunxi_sram_data data; - bool claimed; -}; +typedef void (*btf_trace_mm_compaction_migratepages)(void *, struct compact_control *, unsigned int); -struct sunxi_sram_func { - char *func; - u8 val; - u32 reg_val; -}; +typedef void (*btf_trace_mm_compaction_begin)(void *, struct compact_control *, unsigned long, unsigned long, bool); -struct sunxi_sramc_variant { - int num_emac_clocks; - bool has_ldo_ctrl; -}; +typedef void (*btf_trace_mm_compaction_end)(void *, struct compact_control *, unsigned long, unsigned long, bool, int); -struct bcm590xx_info { - const char *name; - const char *vin_name; - u8 n_voltages; - const unsigned int *volt_table; - u8 n_linear_ranges; - const struct linear_range *linear_ranges; -}; +typedef void (*btf_trace_mm_compaction_try_to_compact_pages)(void *, int, gfp_t, int); -struct bcm590xx_reg { - struct regulator_desc *desc; - struct bcm590xx *mfd; -}; +typedef void (*btf_trace_mm_compaction_finished)(void *, struct zone *, int, int); -enum hi6220_reset_ctrl_type { - PERIPHERAL = 0, - MEDIA = 1, - AO = 2, -}; +typedef void (*btf_trace_mm_compaction_suitable)(void *, struct zone *, int, int); -struct hi6220_reset_data { - struct reset_controller_dev rc_dev; - struct regmap *regmap; -}; +typedef void (*btf_trace_mm_compaction_deferred)(void *, struct zone *, int); -struct reset_simple_devdata { - u32 reg_offset; - u32 nr_resets; - bool active_low; - bool status_active_low; -}; +typedef void (*btf_trace_mm_compaction_defer_compaction)(void *, struct zone *, int); -struct meson_uart_data { - bool has_xtal_div2; -}; +typedef void (*btf_trace_mm_compaction_defer_reset)(void *, struct zone *, int); -struct stm32_rng_private { - struct hwrng rng; - void *base; - struct clk *clk; - struct reset_control *rst; - bool ced; -}; +typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int); -struct drm_memory_stats { - u64 shared; - u64 private; - u64 resident; - u64 purgeable; - u64 active; -}; +typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type); -struct drm_encoder_slave; +typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type); -struct drm_i2c_encoder_driver { - struct i2c_driver i2c_driver; - int (*encoder_init)(struct i2c_client *, struct drm_device *, struct drm_encoder_slave *); +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 drm_encoder_slave_funcs; +struct trace_event_raw_mm_compaction_migratepages { + struct trace_entry ent; + unsigned long nr_migrated; + unsigned long nr_failed; + char __data[0]; +}; -struct drm_encoder_slave { - struct drm_encoder base; - const struct drm_encoder_slave_funcs *slave_funcs; - void *slave_priv; - void *bus_priv; +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 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); +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]; }; -typedef void (*btf_trace_dc_writel)(void *, struct device *, unsigned int, u32); +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]; +}; -typedef void (*btf_trace_dc_readl)(void *, struct device *, unsigned int, u32); +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]; +}; -typedef void (*btf_trace_hdmi_writel)(void *, struct device *, unsigned int, u32); +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]; +}; -typedef void (*btf_trace_hdmi_readl)(void *, struct device *, unsigned int, u32); +struct trace_event_raw_mm_compaction_kcompactd_sleep { + struct trace_entry ent; + int nid; + char __data[0]; +}; -typedef void (*btf_trace_dsi_writel)(void *, struct device *, unsigned int, u32); +struct trace_event_raw_kcompactd_wake_template { + struct trace_entry ent; + int nid; + int order; + enum zone_type highest_zoneidx; + char __data[0]; +}; -typedef void (*btf_trace_dsi_readl)(void *, struct device *, unsigned int, u32); +typedef enum { + ISOLATE_ABORT = 0, + ISOLATE_NONE = 1, + ISOLATE_SUCCESS = 2, +} isolate_migrate_t; -typedef void (*btf_trace_dpaux_writel)(void *, struct device *, unsigned int, u32); +struct trace_event_data_offsets_mm_compaction_isolate_template {}; -typedef void (*btf_trace_dpaux_readl)(void *, struct device *, unsigned int, u32); +struct trace_event_data_offsets_mm_compaction_migratepages {}; -typedef void (*btf_trace_sor_writel)(void *, struct device *, unsigned int, u32); +struct trace_event_data_offsets_mm_compaction_begin {}; -typedef void (*btf_trace_sor_readl)(void *, struct device *, unsigned int, u32); +struct trace_event_data_offsets_mm_compaction_end {}; -struct trace_event_raw_register_access { - struct trace_entry ent; - struct device *dev; - unsigned int offset; - u32 value; - char __data[0]; -}; +struct trace_event_data_offsets_mm_compaction_try_to_compact_pages {}; -struct trace_event_data_offsets_register_access {}; +struct trace_event_data_offsets_mm_compaction_suitable_template {}; -struct isl29003_data { - struct i2c_client *client; - struct mutex lock; - u8 reg_cache[4]; - u8 power_state_before_suspend; -}; +struct trace_event_data_offsets_mm_compaction_defer_template {}; -enum tps65090_cells { - PMIC = 0, - CHARGER = 1, -}; +struct trace_event_data_offsets_mm_compaction_kcompactd_sleep {}; -typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *); +struct trace_event_data_offsets_kcompactd_wake_template {}; -struct ata_scsi_args { - struct ata_device *dev; - u16 *id; - struct scsi_cmnd *cmd; +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 davinci_aemif_timing; - -struct davinci_nand_info { - struct nand_controller controller; - long: 32; - struct nand_chip chip; - struct platform_device *pdev; - bool is_readmode; - void *base; - void *vaddr; - void *current_cs; - uint32_t mask_chipsel; - uint32_t mask_ale; - uint32_t mask_cle; - uint32_t core_chipsel; - struct davinci_aemif_timing *timing; +struct slub_flush_work { + struct work_struct work; + struct kmem_cache *s; + bool skip; }; -struct davinci_aemif_timing { - u8 wsetup; - u8 wstrobe; - u8 whold; - u8 rsetup; - u8 rstrobe; - u8 rhold; - u8 ta; +struct slab_attribute { + struct attribute attr; + ssize_t (*show)(struct kmem_cache *, char *); + ssize_t (*store)(struct kmem_cache *, const char *, size_t); }; -struct davinci_nand_pdata { - uint32_t mask_ale; - uint32_t mask_cle; - uint32_t core_chipsel; - uint32_t mask_chipsel; - struct mtd_partition *parts; - unsigned int nr_parts; - enum nand_ecc_engine_type engine_type; - enum nand_ecc_placement ecc_placement; - u8 ecc_bits; - unsigned int options; - unsigned int bbt_options; - struct nand_bbt_descr *bbt_td; - struct nand_bbt_descr *bbt_md; - struct davinci_aemif_timing *timing; +struct saved_alias { + struct kmem_cache *s; + const char *name; + struct saved_alias *next; }; -typedef void (*btf_trace_spmi_write_begin)(void *, u8, u8, u16, u8, const u8 *); - -typedef void (*btf_trace_spmi_write_end)(void *, u8, u8, u16, int); - -typedef void (*btf_trace_spmi_read_begin)(void *, u8, u8, u16); - -typedef void (*btf_trace_spmi_read_end)(void *, u8, u8, u16, int, u8, const u8 *); - -typedef void (*btf_trace_spmi_cmd)(void *, u8, u8, int); - -struct trace_event_raw_spmi_write_begin { - struct trace_entry ent; - u8 opcode; - u8 sid; - u16 addr; - u8 len; - u32 __data_loc_buf; - char __data[0]; +enum track_item { + TRACK_ALLOC = 0, + TRACK_FREE = 1, }; -struct trace_event_raw_spmi_write_end { - struct trace_entry ent; - u8 opcode; - u8 sid; - u16 addr; - int ret; - char __data[0]; +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, }; -struct trace_event_raw_spmi_read_begin { - struct trace_entry ent; - u8 opcode; - u8 sid; - u16 addr; - char __data[0]; +enum slab_modes { + M_NONE = 0, + M_PARTIAL = 1, + M_FREE = 2, + M_FULL_NOLIST = 3, }; -struct trace_event_raw_spmi_read_end { - struct trace_entry ent; - u8 opcode; - u8 sid; - u16 addr; - int ret; - u8 len; - u32 __data_loc_buf; - char __data[0]; +enum slab_stat_type { + SL_ALL = 0, + SL_PARTIAL = 1, + SL_CPU = 2, + SL_OBJECTS = 3, + SL_TOTAL = 4, }; -struct trace_event_raw_spmi_cmd { - struct trace_entry ent; - u8 opcode; - u8 sid; - int ret; - char __data[0]; -}; +typedef struct { + unsigned long v; +} freeptr_t; -struct trace_event_data_offsets_spmi_write_begin { - u32 buf; +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 trace_event_data_offsets_spmi_read_end { - u32 buf; +struct track { + unsigned long addr; + depot_stack_handle_t handle; + int cpu; + int pid; + unsigned long when; }; -struct trace_event_data_offsets_spmi_write_end {}; - -struct trace_event_data_offsets_spmi_read_begin {}; - -struct trace_event_data_offsets_spmi_cmd {}; - -struct virtnet_stat_desc { - char desc[32]; - size_t offset; +struct detached_freelist { + struct slab *slab; + void *tail; + void *freelist; + int cnt; + struct kmem_cache *s; }; -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 partial_context { + struct slab **slab; + gfp_t flags; + unsigned int orig_size; }; -struct send_queue; +struct loc_track { + unsigned long max; + unsigned long count; + struct location *loc; + long: 32; + loff_t idx; +}; -struct receive_queue; +typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); -struct control_buf; +struct kioctx_cpu; -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 ctx_rq_wait; -struct virtnet_sq_stats { - struct u64_stats_sync syncp; +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: 32; - 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; long: 32; -}; - -struct virtnet_rq_stats { - struct u64_stats_sync syncp; long: 32; - 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; long: 32; - struct napi_struct napi; - struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; long: 32; - 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: 32; long: 32; long: 32; long: 32; + struct { + atomic_t reqs_available; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + }; + struct { + spinlock_t ctx_lock; + struct list_head active_reqs; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + }; + struct { + struct mutex ring_lock; + wait_queue_head_t wait; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + }; + struct { + unsigned int tail; + unsigned int completed_events; + spinlock_t completion_lock; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + }; + struct page *internal_pages[8]; + struct file *aio_ring_file; + unsigned int id; + long: 32; long: 32; long: 32; long: 32; long: 32; long: 32; - struct xdp_rxq_info xdp_rxq; }; -struct virtio_net_ctrl_hdr { - __u8 class; - __u8 cmd; +struct kioctx_cpu { + unsigned int reqs_available; }; -typedef __u8 virtio_net_ctrl_ack; - -struct virtio_net_ctrl_mq { - __virtio16 virtqueue_pairs; +struct ctx_rq_wait { + struct completion comp; + atomic_t count; }; -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]; +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 virtio_net_ctrl_coal_tx { - __le32 tx_max_packets; - __le32 tx_usecs; +struct fsync_iocb { + struct file *file; + struct work_struct work; + bool datasync; + struct cred *creds; }; -struct virtio_net_ctrl_coal_rx { - __le32 rx_max_packets; - __le32 rx_usecs; +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; }; -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; - long: 32; - __virtio64 offloads; - struct virtio_net_ctrl_rss rss; - struct virtio_net_ctrl_coal_tx coal_tx; - struct virtio_net_ctrl_coal_rx coal_rx; - long: 32; +typedef int kiocb_cancel_fn(struct kiocb *); + +struct io_event { + __u64 data; + __u64 obj; + __s64 res; + __s64 res2; }; -struct virtio_net_hdr_v1 { - __u8 flags; - __u8 gso_type; - __virtio16 hdr_len; - __virtio16 gso_size; +struct aio_kiocb { union { - struct { - __virtio16 csum_start; - __virtio16 csum_offset; - }; - struct { - __virtio16 start; - __virtio16 offset; - } csum; - struct { - __le16 segments; - __le16 dup_acks; - } rsc; + struct file *ki_filp; + struct kiocb rw; + struct fsync_iocb fsync; + struct poll_iocb poll; }; - __virtio16 num_buffers; + 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; }; -struct virtio_net_hdr_v1_hash { - struct virtio_net_hdr_v1 hdr; - __le32 hash_value; - __le16 hash_report; - __le16 padding; -}; +typedef __kernel_ulong_t aio_context_t; -struct virtio_net_ctrl_mac { - __virtio32 entries; - __u8 macs[0]; +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 sh_eth_cpu_data { - int (*soft_reset)(struct net_device *); - void (*chip_reset)(struct net_device *); - void (*set_duplex)(struct net_device *); - void (*set_rate)(struct net_device *); - int register_type; - u32 edtrr_trns; - u32 eesipr_value; - u32 ecsr_value; - u32 ecsipr_value; - u32 fdr_value; - u32 fcftr_value; - u32 tx_check; - u32 eesr_err_check; - u32 trscer_err_mask; - unsigned long irq_flags; - unsigned int no_psr: 1; - unsigned int apr: 1; - unsigned int mpr: 1; - unsigned int tpauser: 1; - unsigned int gecmr: 1; - unsigned int bculr: 1; - unsigned int tsu: 1; - unsigned int hw_swap: 1; - unsigned int nbst: 1; - unsigned int rpadir: 1; - unsigned int no_trimd: 1; - unsigned int no_ade: 1; - unsigned int no_xdfar: 1; - unsigned int xdfar_rw: 1; - unsigned int csmr: 1; - unsigned int rx_csum: 1; - unsigned int select_mii: 1; - unsigned int rmiimode: 1; - unsigned int rtrate: 1; - unsigned int magic: 1; - unsigned int no_tx_cntrs: 1; - unsigned int cexcr: 1; - unsigned int dual_port: 1; +struct __aio_sigset { + const sigset_t __attribute__((btf_type_tag("user"))) *sigmask; + size_t sigsetsize; }; -enum { - EDSR = 0, - EDMR = 1, - EDTRR = 2, - EDRRR = 3, - EESR = 4, - EESIPR = 5, - TDLAR = 6, - TDFAR = 7, - TDFXR = 8, - TDFFR = 9, - RDLAR = 10, - RDFAR = 11, - RDFXR = 12, - RDFFR = 13, - TRSCER = 14, - RMFCR = 15, - TFTR = 16, - FDR = 17, - RMCR = 18, - EDOCR = 19, - TFUCR = 20, - RFOCR = 21, - RMIIMODE = 22, - FCFTR = 23, - RPADIR = 24, - TRIMD = 25, - RBWAR = 26, - TBRAR = 27, - ECMR = 28, - ECSR = 29, - ECSIPR = 30, - PIR = 31, - PSR = 32, - RDMLR = 33, - PIPR = 34, - RFLR = 35, - IPGR = 36, - APR = 37, - MPR = 38, - PFTCR = 39, - PFRCR = 40, - RFCR = 41, - RFCF = 42, - TPAUSER = 43, - TPAUSECR = 44, - BCFR = 45, - BCFRR = 46, - GECMR = 47, - BCULR = 48, - MAHR = 49, - MALR = 50, - TROCR = 51, - CDCR = 52, - LCCR = 53, - CNDCR = 54, - CEFCR = 55, - FRECR = 56, - TSFRCR = 57, - TLFRCR = 58, - CERCR = 59, - CEECR = 60, - MAFCR = 61, - RTRATE = 62, - CSMR = 63, - RMII_MII = 64, - ARSTR = 65, - TSU_CTRST = 66, - TSU_FWEN0 = 67, - TSU_FWEN1 = 68, - TSU_FCM = 69, - TSU_BSYSL0 = 70, - TSU_BSYSL1 = 71, - TSU_PRISL0 = 72, - TSU_PRISL1 = 73, - TSU_FWSL0 = 74, - TSU_FWSL1 = 75, - TSU_FWSLC = 76, - TSU_QTAG0 = 77, - TSU_QTAG1 = 78, - TSU_QTAGM0 = 79, - TSU_QTAGM1 = 80, - TSU_FWSR = 81, - TSU_FWINMK = 82, - TSU_ADQT0 = 83, - TSU_ADQT1 = 84, - TSU_VTAG0 = 85, - TSU_VTAG1 = 86, - TSU_ADSBSY = 87, - TSU_TEN = 88, - TSU_POST1 = 89, - TSU_POST2 = 90, - TSU_POST3 = 91, - TSU_POST4 = 92, - TSU_ADRH0 = 93, - TXNLCR0 = 94, - TXALCR0 = 95, - RXNLCR0 = 96, - RXALCR0 = 97, - FWNLCR0 = 98, - FWALCR0 = 99, - TXNLCR1 = 100, - TXALCR1 = 101, - RXNLCR1 = 102, - RXALCR1 = 103, - FWNLCR1 = 104, - FWALCR1 = 105, - SH_ETH_MAX_REGISTER_OFFSET = 106, +struct aio_poll_table { + struct poll_table_struct pt; + struct aio_kiocb *iocb; + bool queued; + int error; }; -enum { - SH_ETH_REG_GIGABIT = 0, - SH_ETH_REG_FAST_RCAR = 1, - SH_ETH_REG_FAST_SH4 = 2, - SH_ETH_REG_FAST_SH3_SH2 = 3, +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]; }; -enum ECSR_BIT { - ECSR_BRCRX = 32, - ECSR_PSRTO = 16, - ECSR_LCHNG = 4, - ECSR_MPD = 2, - ECSR_ICD = 1, +struct nfs_referral_count { + struct list_head list; + const struct task_struct *task; + unsigned int referral_count; }; -enum ECSIPR_BIT { - ECSIPR_BRCRXIP = 32, - ECSIPR_PSRTOIP = 16, - ECSIPR_LCHNGIP = 4, - ECSIPR_MPDIP = 2, - ECSIPR_ICDIP = 1, +enum { + UBIFS_LPT_PNODE = 0, + UBIFS_LPT_NNODE = 1, + UBIFS_LPT_LTAB = 2, + UBIFS_LPT_LSAVE = 3, + UBIFS_LPT_NODE_CNT = 4, + UBIFS_LPT_NOT_A_NODE = 15, }; -enum FCFTR_BIT { - FCFTR_RFF2 = 262144, - FCFTR_RFF1 = 131072, - FCFTR_RFF0 = 65536, - FCFTR_RFD2 = 4, - FCFTR_RFD1 = 2, - FCFTR_RFD0 = 1, +enum { + LTAB_DIRTY = 1, + LSAVE_DIRTY = 2, }; -enum EESR_BIT { - EESR_TWB1 = 2147483648, - EESR_TWB = 1073741824, - EESR_TC1 = 536870912, - EESR_TUC = 268435456, - EESR_ROC = 134217728, - EESR_TABT = 67108864, - EESR_RABT = 33554432, - EESR_RFRMER = 16777216, - EESR_ADE = 8388608, - EESR_ECI = 4194304, - EESR_FTC = 2097152, - EESR_TDE = 1048576, - EESR_TFE = 524288, - EESR_FRC = 262144, - EESR_RDE = 131072, - EESR_RFE = 65536, - EESR_CND = 2048, - EESR_DLC = 1024, - EESR_CD = 512, - EESR_TRO = 256, - EESR_RMAF = 128, - EESR_CEEF = 64, - EESR_CELF = 32, - EESR_RRF = 16, - EESR_RTLF = 8, - EESR_RTSF = 4, - EESR_PRE = 2, - EESR_CERF = 1, +struct lpt_scan_node { + union { + struct ubifs_nnode nnode; + struct ubifs_pnode pnode; + struct ubifs_cnode cnode; + }; + int in_tree; + union { + struct ubifs_nnode *nnode; + struct ubifs_pnode *pnode; + struct ubifs_cnode *cnode; + } ptr; }; -enum TRSCER_BIT { - TRSCER_CNDCE = 2048, - TRSCER_DLCCE = 1024, - TRSCER_CDCE = 512, - TRSCER_TROCE = 256, - TRSCER_RMAFCE = 128, - TRSCER_RRFCE = 16, - TRSCER_RTLFCE = 8, - TRSCER_RTSFCE = 4, - TRSCER_PRECE = 2, - TRSCER_CERFCE = 1, +struct shmid_kernel { + struct kern_ipc_perm shm_perm; + struct file *shm_file; + unsigned long shm_nattch; + unsigned long shm_segsz; + long: 32; + 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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum EESIPR_BIT { - EESIPR_TWB1IP = 2147483648, - EESIPR_TWBIP = 1073741824, - EESIPR_TC1IP = 536870912, - EESIPR_TUCIP = 268435456, - EESIPR_ROCIP = 134217728, - EESIPR_TABTIP = 67108864, - EESIPR_RABTIP = 33554432, - EESIPR_RFCOFIP = 16777216, - EESIPR_ADEIP = 8388608, - EESIPR_ECIIP = 4194304, - EESIPR_FTCIP = 2097152, - EESIPR_TDEIP = 1048576, - EESIPR_TFUFIP = 524288, - EESIPR_FRIP = 262144, - EESIPR_RDEIP = 131072, - EESIPR_RFOFIP = 65536, - EESIPR_CNDIP = 2048, - EESIPR_DLCIP = 1024, - EESIPR_CDIP = 512, - EESIPR_TROIP = 256, - EESIPR_RMAFIP = 128, - EESIPR_CEEFIP = 64, - EESIPR_CELFIP = 32, - EESIPR_RRFIP = 16, - EESIPR_RTLFIP = 8, - EESIPR_RTSFIP = 4, - EESIPR_PREIP = 2, - EESIPR_CERFIP = 1, -}; +typedef unsigned short __kernel_ipc_pid_t; -enum TD_STS_BIT { - TD_TACT = 2147483648, - TD_TDLE = 1073741824, - TD_TFP1 = 536870912, - TD_TFP0 = 268435456, - TD_TFE = 134217728, - TD_TWBI = 67108864, +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; }; -enum PSR_BIT { - PSR_LMON = 1, +struct shm_file_data { + int id; + struct ipc_namespace *ns; + struct file *file; + const struct vm_operations_struct *vm_ops; }; -enum ECMR_BIT { - ECMR_TRCCM = 67108864, - ECMR_RCSC = 8388608, - ECMR_DPAD = 2097152, - ECMR_RZPF = 1048576, - ECMR_ZPF = 524288, - ECMR_PFR = 262144, - ECMR_RXF = 131072, - ECMR_TXF = 65536, - ECMR_MCT = 8192, - ECMR_PRCEF = 4096, - ECMR_MPDE = 512, - ECMR_RE = 64, - ECMR_TE = 32, - ECMR_RTM = 16, - ECMR_ILB = 8, - ECMR_ELB = 4, - ECMR_DM = 2, - ECMR_PRM = 1, +struct shmid64_ds { + struct ipc64_perm shm_perm; + __kernel_size_t shm_segsz; + unsigned long shm_atime; + unsigned long shm_atime_high; + unsigned long shm_dtime; + unsigned long shm_dtime_high; + unsigned long shm_ctime; + unsigned long shm_ctime_high; + __kernel_pid_t shm_cpid; + __kernel_pid_t shm_lpid; + unsigned long shm_nattch; + unsigned long __unused4; + unsigned long __unused5; }; -enum EDMR_BIT { - EDMR_NBST = 128, - EDMR_EL = 64, - EDMR_DL1 = 32, - EDMR_DL0 = 16, - EDMR_SRST_GETHER = 3, - EDMR_SRST_ETHER = 1, +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; }; -enum RMCR_BIT { - RMCR_RNC = 1, +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; }; -enum TPAUSER_BIT { - TPAUSER_TPAUSE = 65535, - TPAUSER_UNLIMITED = 0, +struct shminfo { + int shmmax; + int shmmin; + int shmmni; + int shmseg; + int shmall; }; -enum EDRRR_BIT { - EDRRR_R = 1, +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; }; -enum RD_STS_BIT { - RD_RACT = 2147483648, - RD_RDLE = 1073741824, - RD_RFP1 = 536870912, - RD_RFP0 = 268435456, - RD_RFE = 134217728, - RD_RFS10 = 512, - RD_RFS9 = 256, - RD_RFS8 = 128, - RD_RFS7 = 64, - RD_RFS6 = 32, - RD_RFS5 = 16, - RD_RFS4 = 8, - RD_RFS3 = 4, - RD_RFS2 = 2, - RD_RFS1 = 1, +struct wrapper { + cmp_func_t cmp; + swap_func_t swap; }; -enum TSU_ADSBSY_BIT { - TSU_ADSBSY_0 = 1, -}; +typedef void sg_free_fn(struct scatterlist *, unsigned int); -enum TSU_FWSLC_BIT { - TSU_FWSLC_POSTENU = 8192, - TSU_FWSLC_POSTENL = 4096, - TSU_FWSLC_CAMSEL03 = 128, - TSU_FWSLC_CAMSEL02 = 64, - TSU_FWSLC_CAMSEL01 = 32, - TSU_FWSLC_CAMSEL00 = 16, - TSU_FWSLC_CAMSEL13 = 8, - TSU_FWSLC_CAMSEL12 = 4, - TSU_FWSLC_CAMSEL11 = 2, - TSU_FWSLC_CAMSEL10 = 1, -}; +typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); -enum PIR_BIT { - PIR_MDI = 8, - PIR_MDO = 4, - PIR_MMD = 2, - PIR_MDC = 1, +struct sg_append_table { + struct sg_table sgt; + struct scatterlist *prv; + unsigned int total_nents; }; -enum RD_LEN_BIT { - RD_RFL = 65535, - RD_RBL = 4294901760, +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, }; -enum EDSR_BIT { - EDSR_ENT = 1, - EDSR_ENR = 2, +enum { + ZSTDbss_compress = 0, + ZSTDbss_noCompress = 1, }; -enum ARSTR_BIT { - ARSTR_ARST = 1, -}; +typedef enum { + ZSTD_cpm_noAttachDict = 0, + ZSTD_cpm_attachDict = 1, + ZSTD_cpm_createCDict = 2, + ZSTD_cpm_unknown = 3, +} ZSTD_cParamMode_e; -enum GECMR_BIT { - GECMR_10 = 0, - GECMR_100 = 4, - GECMR_1000 = 1, -}; +typedef enum { + ZSTD_e_continue = 0, + ZSTD_e_flush = 1, + ZSTD_e_end = 2, +} ZSTD_EndDirective; -struct bb_info { - void (*set_gate)(void *); - struct mdiobb_ctrl ctrl; - void *addr; -}; +typedef struct { + U32 LLtype; + U32 Offtype; + U32 MLtype; + size_t size; + size_t lastCountSize; +} ZSTD_symbolEncodingTypeStats_t; -struct sh_eth_rxdesc; +typedef struct { + U32 *splitLocations; + size_t idx; +} seqStoreSplits; -struct sh_eth_txdesc; +typedef struct { + U32 idx; + U32 posInSequence; + size_t posInSrc; +} ZSTD_sequencePosition; -struct sh_eth_private { - struct platform_device *pdev; - struct sh_eth_cpu_data *cd; - const u16 *reg_offset; - void *addr; - void *tsu_addr; - struct clk *clk; - u32 num_rx_ring; - u32 num_tx_ring; - dma_addr_t rx_desc_dma; - dma_addr_t tx_desc_dma; - struct sh_eth_rxdesc *rx_ring; - struct sh_eth_txdesc *tx_ring; - struct sk_buff **rx_skbuff; - struct sk_buff **tx_skbuff; - spinlock_t lock; - u32 cur_rx; - u32 dirty_rx; - u32 cur_tx; - u32 dirty_tx; - u32 rx_buf_sz; - struct napi_struct napi; - bool irq_enabled; - u32 phy_id; - struct mii_bus *mii_bus; - int link; - phy_interface_t phy_interface; - int msg_enable; - int speed; - int duplex; - int port; - int vlan_num_ids; - unsigned int no_ether_link: 1; - unsigned int ether_link_active_low: 1; - unsigned int is_opened: 1; - unsigned int wol_enabled: 1; - long: 32; +typedef size_t (*ZSTD_sequenceCopier)(ZSTD_CCtx *, ZSTD_sequencePosition *, const ZSTD_Sequence * const, size_t, const void *, size_t); + +typedef struct { + unsigned long long ingested; + unsigned long long consumed; + unsigned long long produced; + unsigned long long flushed; + unsigned int currentJobID; + unsigned int nbActiveWorkers; +} ZSTD_frameProgression; + +typedef enum { + ZSTDcrp_makeClean = 0, + ZSTDcrp_leaveDirty = 1, +} ZSTD_compResetPolicy_e; + +typedef enum { + ZSTDirp_continue = 0, + ZSTDirp_reset = 1, +} ZSTD_indexResetPolicy_e; + +typedef enum { + ZSTD_resetTarget_CDict = 0, + ZSTD_resetTarget_CCtx = 1, +} ZSTD_resetTarget_e; + +struct v2m_data { + struct list_head entry; + struct fwnode_handle *fwnode; + struct resource res; + void *base; + u32 spi_start; + u32 nr_spis; + u32 spi_offset; + unsigned long *bm; + u32 flags; }; -struct sh_eth_rxdesc { - u32 status; - u32 len; - u32 addr; - u32 pad0; +struct aspeed_scu_ic { + unsigned long irq_enable; + unsigned long irq_shift; + unsigned int num_irqs; + unsigned int reg; + struct regmap *scu; + struct irq_domain *irq_domain; }; -struct sh_eth_txdesc { - u32 status; - u32 len; - u32 addr; - u32 pad0; +struct uniphier_system_bus_bank { + u32 base; + u32 end; }; -struct sh_eth_plat_data { - int phy; - int phy_irq; - phy_interface_t phy_interface; - void (*set_mdio_gate)(void *); - unsigned char mac_addr[6]; - unsigned int no_ether_link: 1; - unsigned int ether_link_active_low: 1; +struct uniphier_system_bus_priv { + struct device *dev; + void *membase; + struct uniphier_system_bus_bank bank[8]; }; -enum { - CPTS_EV_PUSH = 0, - CPTS_EV_ROLL = 1, - CPTS_EV_HALF = 2, - CPTS_EV_HW = 3, - CPTS_EV_RX = 4, - CPTS_EV_TX = 5, +struct armada375_cluster_phy { + struct phy *phy; + void *reg; + bool use_usb3; + int phy_provided; +}; + +struct tegra_xusb_usb2_lane { + struct tegra_xusb_lane base; + u32 hs_curr_level_offset; + bool powered_on; }; -struct cpts_skb_cb_data { - u32 skb_mtype_seqid; - unsigned long tmo; +struct tegra_xusb_usb2_pad { + struct tegra_xusb_pad base; + struct clk *clk; + unsigned int enable; + struct mutex lock; + long: 32; }; -struct ep_device { - struct usb_endpoint_descriptor *desc; - struct usb_device *udev; - struct device dev; +struct tegra124_xusb_fuse_calibration { + u32 hs_curr_level[3]; + u32 hs_iref_cap; + u32 hs_term_range_adj; + u32 hs_squelch_level; }; -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 tegra124_xusb_padctl { + struct tegra_xusb_padctl base; + struct tegra124_xusb_fuse_calibration fuse; }; -struct sunxi_rtc_data_year { - unsigned int min; - unsigned int max; - unsigned int mask; - unsigned char leap_shift; +struct tegra_xusb_ulpi_lane { + struct tegra_xusb_lane base; }; -struct sunxi_rtc_dev { - struct rtc_device *rtc; - struct device *dev; - const struct sunxi_rtc_data_year *data_year; - void *base; - int irq; +struct tegra_xusb_ulpi_pad { + struct tegra_xusb_pad base; }; -enum s3c24xx_i2c_state { - STATE_IDLE___4 = 0, - STATE_START___3 = 1, - STATE_READ___2 = 2, - STATE_WRITE___2 = 3, - STATE_STOP___2 = 4, +struct tegra_xusb_hsic_lane { + struct tegra_xusb_lane base; + u32 strobe_trim; + u32 rx_strobe_trim; + u32 rx_data_trim; + u32 tx_rtune_n; + u32 tx_rtune_p; + u32 tx_rslew_n; + u32 tx_rslew_p; + bool auto_term; }; -struct s3c2410_platform_i2c; - -struct s3c24xx_i2c { - wait_queue_head_t wait; - kernel_ulong_t quirks; - struct i2c_msg *msg; - unsigned int msg_num; - unsigned int msg_idx; - unsigned int msg_ptr; - unsigned int tx_setup; - unsigned int irq; - enum s3c24xx_i2c_state state; - unsigned long clkrate; - void *regs; +struct tegra_xusb_hsic_pad { + struct tegra_xusb_pad base; + struct regulator *supply; struct clk *clk; - struct device *dev; - long: 32; - struct i2c_adapter adap; - struct s3c2410_platform_i2c *pdata; - struct gpio_desc *gpios[2]; - struct pinctrl *pctrl; - struct regmap *sysreg; - unsigned int sys_i2c_cfg; }; -struct s3c2410_platform_i2c { - int bus_num; - unsigned int flags; - unsigned int slave_addr; - unsigned long frequency; - unsigned int sda_delay; - void (*cfg_gpio)(struct platform_device *); +struct tegra_xusb_pcie_lane { + struct tegra_xusb_lane base; }; -struct lm90_params { - u32 flags; - u16 alert_alarms; - u8 max_convrate; - u8 resolution; - u8 reg_status2; - u8 reg_local_ext; - u8 faultqueue_mask; - u8 faultqueue_depth; +struct tegra_xusb_pcie_pad { + struct tegra_xusb_pad base; + struct reset_control *rst; + struct clk *pll; + bool enable; + long: 32; }; -enum chips___2 { - adm1023 = 0, - adm1032 = 1, - adt7461 = 2, - adt7461a = 3, - adt7481 = 4, - g781 = 5, - lm84 = 6, - lm90 = 7, - lm99 = 8, - max1617 = 9, - max6642 = 10, - max6646 = 11, - max6648 = 12, - max6654 = 13, - max6657 = 14, - max6659 = 15, - max6680 = 16, - max6696 = 17, - nct210 = 18, - nct72 = 19, - ne1618 = 20, - sa56004 = 21, - tmp451 = 22, - tmp461 = 23, - w83l771 = 24, +struct tegra_xusb_sata_lane { + struct tegra_xusb_lane base; }; -enum lm90_temp_reg_index { - LOCAL_LOW = 0, - LOCAL_HIGH = 1, - LOCAL_CRIT = 2, - REMOTE_CRIT = 3, - LOCAL_EMERG = 4, - REMOTE_EMERG = 5, - REMOTE2_CRIT = 6, - REMOTE2_EMERG = 7, - REMOTE_TEMP = 8, - REMOTE_LOW = 9, - REMOTE_HIGH = 10, - REMOTE_OFFSET = 11, - LOCAL_TEMP = 12, - REMOTE2_TEMP = 13, - REMOTE2_LOW = 14, - REMOTE2_HIGH = 15, - REMOTE2_OFFSET = 16, - TEMP_REG_NUM = 17, +struct tegra_xusb_sata_pad { + struct tegra_xusb_pad base; + struct reset_control *rst; + struct clk *pll; + bool enable; + long: 32; }; -struct lm90_data { - struct i2c_client *client; - struct device *hwmon_dev; - u32 chip_config[2]; - u32 channel_config[4]; - const char *channel_label[3]; - struct hwmon_channel_info chip_info; - struct hwmon_channel_info temp_info; - const struct hwmon_channel_info *info[3]; - struct hwmon_chip_info chip; - struct mutex update_lock; - struct delayed_work alert_work; - struct work_struct report_work; - bool valid; - bool alarms_valid; - unsigned long last_updated; - unsigned long alarms_updated; - int kind; - u32 flags; - unsigned int update_interval; - u8 config; - u8 config_orig; - u8 convrate_orig; - u8 resolution; - u16 alert_alarms; - u8 max_convrate; - u8 reg_status2; - u8 reg_local_ext; - u8 reg_remote_ext; - u8 faultqueue_mask; - u8 faultqueue_depth; - u16 temp[17]; - u8 temp_hyst; - u8 conalert; - u16 reported_alarms; - u16 current_alarms; - u16 alarms; +struct mpc8xxx_gpio_devtype { + int (*gpio_dir_out)(struct gpio_chip *, unsigned int, int); + int (*gpio_get)(struct gpio_chip *, unsigned int); + int (*irq_set_type)(struct irq_data *, unsigned int); }; -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 mpc8xxx_gpio_chip { + struct gpio_chip gc; + void *regs; + raw_spinlock_t lock; + int (*direction_output)(struct gpio_chip *, unsigned int, int); + struct irq_domain *irq; + int irqn; }; -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 uniphier_gpio_priv { + struct gpio_chip chip; + struct irq_chip irq_chip; + struct irq_domain *domain; + void *regs; + spinlock_t lock; + u32 saved_vals[0]; }; -struct cpuidle_driver_kobj { - struct cpuidle_driver *drv; - struct completion kobj_unregister; - struct kobject kobj; +struct aperture_range { + struct device *dev; + resource_size_t base; + resource_size_t size; + struct list_head lh; + void (*detach)(struct device *); }; -struct cpuidle_device_kobj { - struct cpuidle_device *dev; - struct completion kobj_unregister; - struct kobject kobj; +struct clk_programmable { + struct clk_hw hw; + struct regmap *regmap; + u32 *mux_table; + u8 id; + const struct clk_programmable_layout *layout; + struct at91_clk_pms pms; }; -struct cpuidle_driver_attr { - struct attribute attr; - ssize_t (*show)(struct cpuidle_driver *, char *); - ssize_t (*store)(struct cpuidle_driver *, const char *, size_t); +struct clk_fixup_div { + struct clk_divider divider; + const struct clk_ops *ops; + void (*fixup)(u32 *); }; -struct cpuidle_attr { - struct attribute attr; - ssize_t (*show)(struct cpuidle_device *, char *); - ssize_t (*store)(struct cpuidle_device *, const char *, size_t); +struct clk_pllv2 { + struct clk_hw hw; + void *base; }; -struct mmc_driver { - struct device_driver drv; - int (*probe)(struct mmc_card *); - void (*remove)(struct mmc_card *); - void (*shutdown)(struct mmc_card *); +struct mmc_phase { + struct clk_hw hw; + u8 offset; + void *reg; + spinlock_t *lock; }; -struct mmc_fixup { - const char *name; - long: 32; - u64 rev_start; - u64 rev_end; - unsigned int manfid; - unsigned short oemid; - unsigned short year; - unsigned char month; - u16 cis_vendor; - u16 cis_device; - unsigned int ext_csd_rev; - const char *of_compatible; - void (*vendor_fixup)(struct mmc_card *, int); - int data; -}; +struct tegra_emc; -enum mmc_drv_op { - MMC_DRV_OP_IOCTL = 0, - MMC_DRV_OP_IOCTL_RPMB = 1, - MMC_DRV_OP_BOOT_WP = 2, - MMC_DRV_OP_GET_CARD_STATUS = 3, - MMC_DRV_OP_GET_EXT_CSD = 4, +typedef int tegra124_emc_prepare_timing_change_cb(struct tegra_emc *, unsigned long); + +typedef void tegra124_emc_complete_timing_change_cb(struct tegra_emc *, unsigned long); + +struct emc_timing___3; + +struct tegra_clk_emc { + struct clk_hw hw; + void *clk_regs; + struct clk *prev_parent; + bool changing_timing; + struct device_node *emc_node; + struct tegra_emc *emc; + int num_timings; + struct emc_timing___3 *timings; + spinlock_t *lock; + tegra124_emc_prepare_timing_change_cb *prepare_timing_change; + tegra124_emc_complete_timing_change_cb *complete_timing_change; }; -enum mmc_issued { - MMC_REQ_STARTED = 0, - MMC_REQ_BUSY = 1, - MMC_REQ_FAILED_TO_START = 2, - MMC_REQ_FINISHED = 3, +struct emc_timing___3 { + unsigned long rate; + unsigned long parent_rate; + u8 parent_index; + struct clk *parent; + u32 ram_code; }; -enum mmc_issue_type { - MMC_ISSUE_SYNC = 0, - MMC_ISSUE_DCMD = 1, - MMC_ISSUE_ASYNC = 2, - MMC_ISSUE_MAX = 3, +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, }; -struct mmc_blk_data; +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 mmc_queue { - struct mmc_card *card; - struct mmc_ctx ctx; - struct blk_mq_tag_set tag_set; - struct mmc_blk_data *blkdata; - struct request_queue *queue; - spinlock_t lock; - int in_flight[3]; - unsigned int cqe_busy; - bool busy; - bool recovery_needed; - bool in_recovery; - bool rw_wait; - bool waiting; - struct work_struct recovery_work; - wait_queue_head_t wait; - struct request *recovery_req; - struct request *complete_req; - struct mutex complete_lock; - struct work_struct complete_work; +struct dw_lli { + __le32 sar; + __le32 dar; + __le32 llp; + __le32 ctllo; + __le32 ctlhi; + __le32 sstat; + __le32 dstat; }; -struct mmc_blk_data { - struct device *parent; - struct gendisk *disk; - struct mmc_queue queue; - struct list_head part; - struct list_head rpmbs; - unsigned int flags; - struct kref kref; - unsigned int read_only; - unsigned int part_type; - unsigned int reset_done; - unsigned int part_curr; - int area_type; - struct dentry *status_dentry; - struct dentry *ext_csd_dentry; +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 mmc_blk_request { - struct mmc_request mrq; - struct mmc_command sbc; - struct mmc_command cmd; - struct mmc_command stop; - struct mmc_data data; +struct mediatek_regulator_coupler { + struct regulator_coupler coupler; + struct regulator_dev *vsram_rdev; }; -struct mmc_queue_req { - struct mmc_blk_request brq; - struct scatterlist *sg; - enum mmc_drv_op drv_op; - int drv_op_result; - void *drv_op_data; - unsigned int ioc_count; - int retries; +struct tegra_regulator_coupler___2 { + struct regulator_coupler coupler; + struct regulator_dev *core_rdev; + struct regulator_dev *cpu_rdev; + struct notifier_block reboot_notifier; + struct notifier_block suspend_notifier; + int core_min_uV; + int cpu_min_uV; + bool sys_reboot_mode_req; + bool sys_reboot_mode; + bool sys_suspend_mode_req; + bool sys_suspend_mode; }; -struct mmc_ioc_cmd { - int write_flag; - int is_acmd; - __u32 opcode; - __u32 arg; - __u32 response[4]; +struct uniphier_reset_data { + unsigned int id; + unsigned int reg; + unsigned int bit; unsigned int flags; - unsigned int blksz; - unsigned int blocks; - unsigned int postsleep_min_us; - unsigned int postsleep_max_us; - unsigned int data_timeout_ns; - unsigned int cmd_timeout_ms; - __u32 __pad; - __u64 data_ptr; }; -struct mmc_ioc_multi_cmd { - __u64 num_of_cmds; - struct mmc_ioc_cmd cmds[0]; +struct uniphier_reset_priv { + struct reset_controller_dev rcdev; + struct device *dev; + struct regmap *regmap; + const struct uniphier_reset_data *data; }; -struct mmc_rpmb_data { - struct device dev; - struct cdev chrdev; - int id; - unsigned int part_index; - struct mmc_blk_data *md; - struct list_head node; -}; +struct hvc_struct; -struct mmc_blk_busy_data { - struct mmc_card *card; - u32 status; +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 mmc_blk_ioc_data { - struct mmc_ioc_cmd ic; - unsigned char *buf; - long: 32; - u64 buf_bytes; - struct mmc_rpmb_data *rpmb; - long: 32; +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 led_properties { - u32 color; - bool color_present; - const char *function; - u32 func_enum; - bool func_enum_present; - const char *label; +struct pericom8250 { + void *virt; + unsigned int nr; + int line[0]; }; -struct oneshot_trig_data { - unsigned int invert; +struct asc_port { + struct uart_port port; + struct gpio_desc *rts; + struct clk *clk; + struct pinctrl *pinctrl; + struct pinctrl_state *states[2]; + unsigned int hw_flow_control: 1; + unsigned int force_m1: 1; }; -enum scmi_power_protocol_cmd { - POWER_DOMAIN_ATTRIBUTES = 3, - POWER_STATE_SET = 4, - POWER_STATE_GET = 5, - POWER_STATE_NOTIFY = 6, - POWER_DOMAIN_NAME_GET = 8, +struct iproc_rng200_dev { + struct hwrng rng; + void *base; }; -struct power_dom_info; +struct tegra_smmu_group { + struct list_head list; + struct tegra_smmu *smmu; + const struct tegra_smmu_group_soc *soc; + struct iommu_group *group; + unsigned int swgroup; +}; -struct scmi_power_info { - u32 version; - int num_domains; - u64 stats_addr; - u32 stats_size; - struct power_dom_info *dom_info; +struct tegra_smmu { + void *regs; + struct device *dev; + struct tegra_mc *mc; + const struct tegra_smmu_soc *soc; + struct list_head groups; + unsigned long pfn_mask; + unsigned long tlb_mask; + unsigned long *asids; + struct mutex lock; + struct list_head list; + struct dentry *debugfs; + struct iommu_device iommu; }; -struct power_dom_info { - bool state_set_sync; - bool state_set_async; - bool state_set_notify; - char name[64]; +struct tegra_smmu_as { + struct iommu_domain domain; + struct tegra_smmu *smmu; + unsigned int use_count; + spinlock_t lock; + u32 *count; + struct page **pts; + struct page *pd; + dma_addr_t pd_dma; + unsigned int id; + u32 attr; }; -struct scmi_msg_resp_power_attributes { - __le16 num_domains; - __le16 reserved; - __le32 stats_addr_low; - __le32 stats_addr_high; - __le32 stats_size; +struct drm_out_fence_state { + s32 __attribute__((btf_type_tag("user"))) *out_fence_ptr; + struct sync_file *sync_file; + int fd; }; -struct scmi_msg_resp_power_domain_attributes { - __le32 flags; - u8 name[16]; +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 scmi_power_state_notify { - __le32 domain; - __le32 notify_enable; +enum drm_of_lvds_pixels { + DRM_OF_LVDS_EVEN = 1, + DRM_OF_LVDS_ODD = 2, }; -struct scmi_power_set_state { - __le32 flags; - __le32 domain; - __le32 state; +enum drm_lvds_dual_link_pixels { + DRM_LVDS_DUAL_LINK_EVEN_ODD_PIXELS = 0, + DRM_LVDS_DUAL_LINK_ODD_EVEN_PIXELS = 1, }; -struct scmi_power_state_notify_payld { - __le32 agent_id; - __le32 domain_id; - __le32 power_state; +struct dp_aux_ep_device { + struct device dev; + struct drm_dp_aux *aux; + long: 32; }; -struct scmi_power_state_changed_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int domain_id; - unsigned int power_state; +struct dp_aux_ep_device_with_data { + struct dp_aux_ep_device aux_ep; + int (*done_probing)(struct drm_dp_aux *); long: 32; }; -struct efifb_dmi_info { - char *optname; - unsigned long base; - int stride; - int width; - int height; - int flags; +struct dp_aux_ep_driver { + int (*probe)(struct dp_aux_ep_device *); + void (*remove)(struct dp_aux_ep_device *); + void (*shutdown)(struct dp_aux_ep_device *); + struct device_driver driver; }; -enum { - M_I17 = 0, - M_I20 = 1, - M_I20_SR = 2, - M_I24 = 3, - M_I24_8_1 = 4, - M_I24_10_1 = 5, - M_I27_11_1 = 6, - M_MINI = 7, - M_MINI_3_1 = 8, - M_MINI_4_1 = 9, - M_MB = 10, - M_MB_2 = 11, - M_MB_3 = 12, - M_MB_5_1 = 13, - M_MB_6_1 = 14, - M_MB_7_1 = 15, - M_MB_SR = 16, - M_MBA = 17, - M_MBA_3 = 18, - M_MBP = 19, - M_MBP_2 = 20, - M_MBP_2_2 = 21, - M_MBP_SR = 22, - M_MBP_4 = 23, - M_MBP_5_1 = 24, - M_MBP_5_2 = 25, - M_MBP_5_3 = 26, - M_MBP_6_1 = 27, - M_MBP_6_2 = 28, - M_MBP_7_1 = 29, - M_MBP_8_2 = 30, - M_UNKNOWN = 31, +struct gr2d_soc { + unsigned int version; }; enum { - OVERRIDE_NONE = 0, - OVERRIDE_BASE = 1, - OVERRIDE_STRIDE = 2, - OVERRIDE_HEIGHT = 4, - OVERRIDE_WIDTH = 8, + RST_MC___2 = 0, + RST_GR2D = 1, + RST_GR2D_MAX = 2, }; -struct brcmstb_memc_data { - u32 srpd_offset; +struct gr2d { + struct tegra_drm_client client; + struct host1x_channel *channel; + struct clk *clk; + struct reset_control_bulk_data resets[2]; + unsigned int nresets; + const struct gr2d_soc *soc; + unsigned long addr_regs[3]; }; -struct brcmstb_memc { - struct device *dev; - void *ddr_ctrl; - unsigned int timeout_cycles; - u32 frequency; - u32 srpd_offset; +struct probe; + +struct kobj_map { + struct probe *probes[255]; + struct mutex *lock; }; -struct notif_entry { - struct list_head link; - struct completion c; - u_int key; +struct probe { + struct probe *next; + dev_t dev; + unsigned long range; + struct module *owner; + kobj_probe_t *get; + int (*lock)(dev_t, void *); + void *data; }; -struct icc_bulk_data { - struct icc_path *path; - const char *name; - u32 avg_bw; - u32 peak_bw; +struct builtin_fw { + char *name; + void *data; + unsigned long size; }; -struct icc_bulk_devres { - struct icc_bulk_data *paths; - int num_paths; +struct regmap_async_spi { + struct regmap_async core; + struct spi_message m; + struct spi_transfer t[2]; }; -enum { - TCA_UNSPEC = 0, - TCA_KIND = 1, - TCA_OPTIONS = 2, - TCA_STATS = 3, - TCA_XSTATS = 4, - TCA_RATE = 5, - TCA_FCNT = 6, - TCA_STATS2 = 7, - TCA_STAB = 8, - TCA_PAD = 9, - TCA_DUMP_INVISIBLE = 10, - TCA_CHAIN = 11, - TCA_HW_OFFLOAD = 12, - TCA_INGRESS_BLOCK = 13, - TCA_EGRESS_BLOCK = 14, - TCA_DUMP_FLAGS = 15, - TCA_EXT_WARN_MSG = 16, - __TCA_MAX = 17, +struct scsi_host_busy_iter_data { + bool (*fn)(struct scsi_cmnd *, void *); + void *priv; }; -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; +enum gpmi_type { + IS_MX23 = 0, + IS_MX28 = 1, + IS_MX6Q = 2, + IS_MX6SX = 3, + IS_MX7D = 4, }; -struct skb_array { - struct ptr_ring ring; +struct gpmi_devdata { + enum gpmi_type type; + int bch_max_ecc_strength; + int max_chain_delay; + const char * const *clks; + const int clks_count; }; -struct pfifo_fast_priv { - struct skb_array q[3]; +struct resources { + void *gpmi_regs; + void *bch_regs; + unsigned int dma_low_channel; + unsigned int dma_high_channel; + struct clk *clock[5]; }; -struct tc_prio_qopt { - int bands; - __u8 priomap[16]; +struct gpmi_nfc_hardware_timing { + bool must_apply_timings; + unsigned long clk_rate; + u32 timing0; + u32 timing1; + u32 ctrl1n; }; -struct psched_ratecfg { - u64 rate_bytes_ps; - u32 mult; - u16 overhead; - u16 mpu; - u8 linklayer; - u8 shift; - long: 32; +struct bch_geometry { + unsigned int gf_len; + unsigned int ecc_strength; + unsigned int page_size; + unsigned int metadata_size; + unsigned int ecc0_chunk_size; + unsigned int eccn_chunk_size; + unsigned int ecc_chunk_count; + unsigned int payload_size; + unsigned int auxiliary_size; + unsigned int auxiliary_status_offset; + unsigned int block_mark_byte_offset; + unsigned int block_mark_bit_offset; + unsigned int ecc_for_meta; }; -struct tc_ratespec { - unsigned char cell_log; - __u8 linklayer; - unsigned short overhead; - short cell_align; - unsigned short mpu; - __u32 rate; +struct boot_rom_geometry { + unsigned int stride_size_in_pages; + unsigned int search_area_stride_exponent; }; -struct psched_pktrate { - u64 rate_pkts_ps; - u32 mult; - u8 shift; +struct gpmi_transfer { + u8 cmdbuf[8]; + struct scatterlist sgl; + enum dma_data_direction direction; }; -struct mini_Qdisc_pair { - struct mini_Qdisc miniq1; - struct mini_Qdisc miniq2; - struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq; +struct gpmi_nand_data { + const struct gpmi_devdata *devdata; + struct device *dev; + struct platform_device *pdev; + struct resources resources; + struct gpmi_nfc_hardware_timing hw; + struct bch_geometry bch_geometry; + struct completion bch_done; + bool swap_block_mark; + struct boot_rom_geometry rom_geometry; + struct nand_controller base; + struct nand_chip nand; + struct gpmi_transfer transfers[8]; + int ntransfers; + bool bch; + uint32_t bch_flashlayout0; + uint32_t bch_flashlayout1; + char *data_buffer_dma; + void *auxiliary_virt; + dma_addr_t auxiliary_phys; + void *raw_buffer; + struct dma_chan *dma_chans[8]; + struct completion dma_done; }; -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 unimac_mdio_priv { + struct mii_bus *mii_bus; + void *base; + int (*wait_func)(void *); + void *wait_func_data; + struct clk *clk; + u32 clk_freq; }; -struct ic_device { - struct ic_device *next; +struct unimac_mdio_pdata { + u32 phy_mask; + int (*wait_func)(void *); + void *wait_func_data; + const char *bus_name; +}; + +struct can_rx_offload_cb { + u32 timestamp; +}; + +struct can_rx_offload { struct net_device *dev; - unsigned short flags; - short able; - __be32 xid; + struct sk_buff * (*mailbox_read)(struct can_rx_offload *, unsigned int, u32 *, bool); + struct sk_buff_head skb_queue; + struct sk_buff_head skb_irq_queue; + u32 skb_queue_len_max; + unsigned int mb_first; + unsigned int mb_last; + long: 32; + struct napi_struct napi; + bool inc; + long: 32; }; -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 smsc911x_data; + +struct smsc911x_ops { + u32 (*reg_read)(struct smsc911x_data *, u32); + void (*reg_write)(struct smsc911x_data *, u32, u32); + void (*rx_readfifo)(struct smsc911x_data *, unsigned int *, unsigned int); + void (*tx_writefifo)(struct smsc911x_data *, unsigned int *, unsigned int); }; -enum { - NDUSEROPT_UNSPEC = 0, - NDUSEROPT_SRCADDR = 1, - __NDUSEROPT_MAX = 2, +struct smsc911x_platform_config { + unsigned int irq_polarity; + unsigned int irq_type; + unsigned int flags; + unsigned int shift; + phy_interface_t phy_interface; + unsigned char mac[6]; }; -struct nd_msg { - struct icmp6hdr icmph; - struct in6_addr target; - __u8 opt[0]; +struct smsc911x_data { + void *ioaddr; + unsigned int idrev; + unsigned int generation; + struct smsc911x_platform_config config; + spinlock_t mac_lock; + spinlock_t dev_lock; + struct mii_bus *mii_bus; + unsigned int using_extphy; + int last_duplex; + int last_carrier; + u32 msg_enable; + unsigned int gpio_setting; + unsigned int gpio_orig_setting; + struct net_device *dev; + struct napi_struct napi; + unsigned int software_irq_signal; + char loopback_tx_pkt[64]; + char loopback_rx_pkt[64]; + unsigned int resetcount; + unsigned int multicast_update_pending; + unsigned int set_bits_mask; + unsigned int clear_bits_mask; + unsigned int hashhi; + unsigned int hashlo; + const struct smsc911x_ops *ops; + struct regulator_bulk_data supplies[2]; + struct gpio_desc *reset_gpiod; + struct clk *clk; }; -struct rs_msg { - struct icmp6hdr icmph; - __u8 opt[0]; +struct smsc95xx_priv { + u32 mac_cr; + u32 hash_hi; + u32 hash_lo; + u32 wolopts; + spinlock_t mac_cr_lock; + u8 features; + u8 suspend_flags; + bool is_internal_phy; + struct irq_chip irqchip; + struct irq_domain *irqdomain; + struct fwnode_handle *irqfwnode; + struct mii_bus *mdiobus; + struct phy_device *phydev; + struct task_struct *pm_task; }; -struct ra_msg { - struct icmp6hdr icmph; - __be32 reachable_time; - __be32 retrans_timer; +struct dwc3_keystone { + struct device *dev; + void *usbss; + struct phy *usb3_phy; }; -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; +enum xhci_setup_dev { + SETUP_CONTEXT_ONLY = 0, + SETUP_CONTEXT_ADDRESS = 1, }; -struct xprt_addr { - const char *addr; - struct callback_head rcu; +enum xhci_ep_reset_type { + EP_HARD_RESET = 0, + EP_SOFT_RESET = 1, }; -typedef void (*btf_trace_handshake_submit)(void *, const struct net *, const struct handshake_req *, const struct sock *); +struct bcm_kp { + void *base; + int irq; + struct clk *clk; + struct input_dev *input_dev; + unsigned long last_state[2]; + unsigned int n_rows; + unsigned int n_cols; + u32 kpcr; + u32 kpior; + u32 kpemr; + u32 imr0_val; + u32 imr1_val; +}; -typedef void (*btf_trace_handshake_submit_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef void (*btf_trace_rtc_set_time)(void *, time64_t, int); -typedef void (*btf_trace_handshake_cancel)(void *, const struct net *, const struct handshake_req *, const struct sock *); +typedef void (*btf_trace_rtc_read_time)(void *, time64_t, int); -typedef void (*btf_trace_handshake_cancel_none)(void *, const struct net *, const struct handshake_req *, const struct sock *); +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_handshake_cancel_busy)(void *, const struct net *, const struct handshake_req *, const struct sock *); +typedef void (*btf_trace_rtc_set_offset)(void *, long, int); -typedef void (*btf_trace_handshake_destruct)(void *, const struct net *, const struct handshake_req *, const struct sock *); +typedef void (*btf_trace_rtc_read_offset)(void *, long, int); -typedef void (*btf_trace_handshake_complete)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef void (*btf_trace_rtc_timer_enqueue)(void *, struct rtc_timer *); -typedef void (*btf_trace_handshake_notify_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef void (*btf_trace_rtc_timer_dequeue)(void *, struct rtc_timer *); -typedef void (*btf_trace_handshake_cmd_accept)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef void (*btf_trace_rtc_timer_fired)(void *, struct rtc_timer *); -typedef void (*btf_trace_handshake_cmd_accept_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +enum { + none = 0, + day = 1, + month = 2, + year = 3, +}; -typedef void (*btf_trace_handshake_cmd_done)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +struct trace_event_raw_rtc_time_alarm_class { + struct trace_entry ent; + time64_t secs; + int err; + char __data[0]; + long: 32; +}; -typedef void (*btf_trace_handshake_cmd_done_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +struct trace_event_raw_rtc_irq_set_freq { + struct trace_entry ent; + int freq; + int err; + char __data[0]; +}; -struct trace_event_raw_handshake_event_class { +struct trace_event_raw_rtc_irq_set_state { struct trace_entry ent; - const void *req; - const void *sk; - unsigned int netns_ino; + int enabled; + int err; char __data[0]; }; -struct trace_event_raw_handshake_error_class { +struct trace_event_raw_rtc_alarm_irq_enable { struct trace_entry ent; - const void *req; - const void *sk; + unsigned int enabled; int err; - unsigned int netns_ino; char __data[0]; }; -struct trace_event_raw_handshake_complete { +struct trace_event_raw_rtc_offset_class { struct trace_entry ent; - const void *req; - const void *sk; - int status; - unsigned int netns_ino; + long offset; + int err; char __data[0]; }; -struct trace_event_raw_handshake_fd_class { +struct trace_event_raw_rtc_timer_class { struct trace_entry ent; - const void *req; - const void *sk; - int fd; - unsigned int netns_ino; + struct rtc_timer *timer; + long: 32; + ktime_t expires; + ktime_t period; char __data[0]; }; -struct trace_event_data_offsets_handshake_event_class {}; +struct trace_event_data_offsets_rtc_time_alarm_class {}; -struct trace_event_data_offsets_handshake_fd_class {}; +struct trace_event_data_offsets_rtc_irq_set_freq {}; -struct trace_event_data_offsets_handshake_error_class {}; +struct trace_event_data_offsets_rtc_irq_set_state {}; -struct trace_event_data_offsets_handshake_complete {}; +struct trace_event_data_offsets_rtc_alarm_irq_enable {}; -enum { - MAX_IORES_LEVEL = 5, +struct trace_event_data_offsets_rtc_offset_class {}; + +struct trace_event_data_offsets_rtc_timer_class {}; + +enum bcm_iproc_i2c_type { + IPROC_I2C = 0, + IPROC_I2C_NIC = 1, }; -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; +enum i2c_slave_read_status { + I2C_SLAVE_RX_FIFO_EMPTY = 0, + I2C_SLAVE_RX_START = 1, + I2C_SLAVE_RX_DATA = 2, + I2C_SLAVE_RX_END = 3, }; -struct region_devres { - struct resource *parent; - resource_size_t start; - resource_size_t n; +struct bcm_iproc_i2c_dev { + struct device *device; + enum bcm_iproc_i2c_type type; + int irq; + void *base; + void *idm_base; + u32 ape_addr_mask; + spinlock_t idm_lock; + long: 32; + struct i2c_adapter adapter; + unsigned int bus_speed; + struct completion done; + int xfer_is_done; + struct i2c_msg *msg; + struct i2c_client *slave; + unsigned int tx_bytes; + unsigned int rx_bytes; + unsigned int thld_bytes; + bool slave_rx_only; + bool rx_start_rcvd; + bool slave_read_complete; + u32 tx_underrun; + u32 slave_int_mask; + struct tasklet_struct slave_rx_tasklet; }; -typedef void (*btf_trace_console)(void *, const char *, size_t); +struct timing_regs { + unsigned int tsusta; + unsigned int tsusto; + unsigned int thdsta; + unsigned int tsudat; + unsigned int tbuf; +}; -struct prb_desc; +struct xiic_version_data { + u32 quirks; +}; -struct printk_info; +enum xiic_endian { + LITTLE = 0, + BIG = 1, +}; -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; +enum xilinx_i2c_state { + STATE_DONE = 0, + STATE_ERROR = 1, + STATE_START___3 = 2, }; -struct prb_data_ring { - unsigned int size_bits; - char *data; - atomic_long_t head_lpos; - atomic_long_t tail_lpos; +enum i2c_scl_freq { + REG_VALUES_100KHZ = 0, + REG_VALUES_400KHZ = 1, + REG_VALUES_1MHZ = 2, }; -struct printk_ringbuffer { - struct prb_desc_ring desc_ring; - struct prb_data_ring text_data_ring; - atomic_long_t fail; +struct xiic_i2c { + struct device *dev; + void *base; + struct completion completion; + struct i2c_adapter adap; + struct i2c_msg *tx_msg; + struct mutex lock; + unsigned int tx_pos; + unsigned int nmsgs; + struct i2c_msg *rx_msg; + int rx_pos; + enum xiic_endian endianness; + struct clk *clk; + enum xilinx_i2c_state state; + bool singlemaster; + bool dynamic; + bool prev_msg_tx; + u32 quirks; + bool smbus_block_read; + unsigned long input_clk; + unsigned int i2c_clk; }; -struct prb_data_blk_lpos { - unsigned long begin; - unsigned long next; +struct xiic_i2c_platform_data { + u8 num_devices; + const struct i2c_board_info *devices; }; -struct prb_desc { - atomic_long_t state_var; - struct prb_data_blk_lpos text_blk_lpos; +struct gxp_wdt { + void *base; + struct watchdog_device wdd; }; -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 opp_device { + struct list_head node; + const struct device *dev; + struct dentry *dentry; }; -struct latched_seq { - seqcount_latch_t latch; - long: 32; - u64 val[2]; +struct opp_config_data { + struct opp_table *opp_table; + unsigned int flags; }; -struct console_cmdline { - char name[16]; - int index; - bool user_specified; - char *options; +struct psci_pd_provider { + struct list_head link; + struct device_node *node; }; -struct printk_buffers { - char outbuf[2048]; - char scratchbuf[1024]; +struct led_lookup_data { + struct list_head list; + const char *provider; + const char *dev_id; + const char *con_id; }; -enum devkmsg_log_masks { - DEVKMSG_LOG_MASK_ON = 1, - DEVKMSG_LOG_MASK_OFF = 2, - DEVKMSG_LOG_MASK_LOCK = 4, +struct efi { + const efi_runtime_services_t *runtime; + unsigned int runtime_version; + unsigned int runtime_supported_mask; + unsigned long acpi; + unsigned long acpi20; + unsigned long smbios; + unsigned long smbios3; + unsigned long esrt; + unsigned long tpm_log; + unsigned long tpm_final_log; + unsigned long mokvar_table; + unsigned long coco_secret; + unsigned long unaccepted; + efi_get_time_t *get_time; + efi_set_time_t *set_time; + efi_get_wakeup_time_t *get_wakeup_time; + efi_set_wakeup_time_t *set_wakeup_time; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_info_t *query_variable_info; + efi_query_variable_info_t *query_variable_info_nonblocking; + efi_update_capsule_t *update_capsule; + efi_query_capsule_caps_t *query_capsule_caps; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; + struct efi_memory_map memmap; + unsigned long flags; }; -enum printk_info_flags { - LOG_NEWLINE = 2, - LOG_CONT = 8, +struct linux_efi_memreserve { + int size; + atomic_t count; + phys_addr_t next; + struct { + phys_addr_t base; + phys_addr_t size; + } entry[0]; }; -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 linux_efi_random_seed { + u32 size; + u8 bits[0]; }; -enum con_msg_format_flags { - MSG_FORMAT_DEFAULT = 0, - MSG_FORMAT_SYSLOG = 1, +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 kmsg_dumper { - struct list_head list; - void (*dump)(struct kmsg_dumper *, enum kmsg_dump_reason); - enum kmsg_dump_reason max_reason; - bool registered; +typedef struct { + efi_guid_t guid; + u64 table; +} efi_config_table_64_t; + +struct kona_bcm_timers { + int tmr_irq; + void *tmr_regs; }; -struct trace_event_raw_console { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; +struct of_intc_desc { + struct list_head list; + of_irq_init_cb_t irq_init_cb; + struct device_node *dev; + struct device_node *interrupt_parent; }; -struct trace_event_data_offsets_console { - u32 msg; +struct isl29018_scale { + unsigned int scale; + unsigned int uscale; }; -struct printk_record { - struct printk_info *info; - char *text_buf; - unsigned int text_buf_size; +struct isl29018_chip_info { + const struct iio_chan_spec *channels; + int num_channels; + const struct iio_info *indio_info; + const struct regmap_config *regmap_cfg; }; -struct prb_reserved_entry { - struct printk_ringbuffer *rb; - unsigned long irqflags; - unsigned long id; - unsigned int text_space; +enum isl29018_int_time { + ISL29018_INT_TIME_16 = 0, + ISL29018_INT_TIME_12 = 1, + ISL29018_INT_TIME_8 = 2, + ISL29018_INT_TIME_4 = 3, }; -struct printk_message { - struct printk_buffers *pbufs; - unsigned int outbuf_len; - u64 seq; - unsigned long dropped; - long: 32; +enum { + isl29018 = 0, + isl29023 = 1, + isl29035 = 2, }; -struct devkmsg_user { - atomic64_t seq; - struct ratelimit_state rs; +struct isl29018_chip { + struct regmap *regmap; struct mutex lock; - struct printk_buffers pbufs; + int type; + unsigned int calibscale; + unsigned int ucalibscale; + unsigned int int_time; + struct isl29018_scale scale; + int prox_scheme; + bool suspended; + struct regulator *vcc_reg; }; -struct kmsg_dump_iter { - u64 cur_seq; - u64 next_seq; +enum qos_mode { + NOC_QOS_MODE_INVALID = 0, + NOC_QOS_MODE_FIXED = 1, + NOC_QOS_MODE_BYPASS = 2, }; -struct kexec_load_limit { - struct mutex mutex; - int limit; +struct qcom_icc_provider { + struct icc_provider provider; + int num_intf_clks; + enum qcom_icc_type type; + struct regmap *regmap; + unsigned int qos_offset; + u16 ab_coeff; + u16 ib_coeff; + u32 bus_clk_rate[2]; + const struct rpm_clk_resource *bus_clk_desc; + struct clk *bus_clk; + struct clk_bulk_data *intf_clks; + bool keep_alive; + bool is_on; }; -struct uprobe_cpu_buffer { - struct mutex mutex; - void *buf; +struct icc_onecell_data { + unsigned int num_nodes; + struct icc_node *nodes[0]; }; -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 bpf_xdp_link { + struct bpf_link link; + struct net_device *dev; + int flags; }; -struct uprobe_trace_entry_head { - struct trace_entry ent; - unsigned long vaddr[0]; +enum tcx_action_base { + TCX_NEXT = -1, + TCX_PASS = 0, + TCX_DROP = 2, + TCX_REDIRECT = 7, }; -struct uprobe_dispatch_data { - struct trace_uprobe *tu; - unsigned long bp_addr; +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; }; -typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); - -struct saved { - struct path link; - struct delayed_call done; - const char *name; - unsigned int seq; +struct dev_kfree_skb_cb { + enum skb_drop_reason reason; }; -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; - long: 32; +struct netdev_net_notifier { + struct list_head list; + struct notifier_block *nb; }; -enum { - LAST_NORM = 0, - LAST_ROOT = 1, - LAST_DOT = 2, - LAST_DOTDOT = 3, +struct net_device_path_stack { + int num_paths; + struct net_device_path path[5]; }; -enum { - WALK_TRAILING = 1, - WALK_MORE = 2, - WALK_NOFOLLOW = 4, +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 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 netdev_notifier_offload_xstats_rd { + struct rtnl_hw_stats64 stats; + bool used; + long: 32; }; -typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int); +struct netdev_notifier_offload_xstats_ru { + bool used; +}; -typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int); +struct netdev_notifier_pre_changeaddr_info { + struct netdev_notifier_info info; + const unsigned char *dev_addr; +}; -typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64); +typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *); -typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64); +struct ifslave { + __s32 slave_id; + char slave_name[16]; + __s8 link; + __s8 state; + __u32 link_failure_count; +}; -typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64); +typedef struct ifslave ifslave; -typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); +struct ifbond { + __s32 bond_mode; + __s32 num_slaves; + __s32 miimon; +}; -typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64); +typedef struct ifbond ifbond; -typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *); +struct netdev_bonding_info { + ifslave slave; + ifbond master; +}; -typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *); +struct netdev_notifier_bonding_info { + struct netdev_notifier_info info; + struct netdev_bonding_info bonding_info; +}; -typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, struct iomap *); +struct netdev_notifier_changelowerstate_info { + struct netdev_notifier_info info; + void *lower_state_info; +}; -typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long); +struct dpll_pin; -typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t); +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, +}; -typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t); +struct features_reply_data { + struct ethnl_reply_data base; + u32 hw[2]; + u32 wanted[2]; + u32 active[2]; + u32 nochange[2]; + u32 all[2]; +}; -struct trace_event_raw_iomap_readpage_class { - struct trace_entry ent; - dev_t dev; - long: 32; - u64 ino; - int nr_pages; - char __data[0]; - long: 32; +enum nexthop_event_type { + NEXTHOP_EVENT_DEL = 0, + NEXTHOP_EVENT_REPLACE = 1, + NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, + NEXTHOP_EVENT_BUCKET_REPLACE = 3, }; -struct trace_event_raw_iomap_range_class { - struct trace_entry ent; - dev_t dev; - long: 32; - u64 ino; - loff_t size; - loff_t offset; - u64 length; - char __data[0]; +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, }; -struct trace_event_raw_iomap_class { - struct trace_entry ent; - dev_t dev; - long: 32; - u64 ino; - u64 addr; - loff_t offset; - u64 length; - u16 type; - u16 flags; - dev_t bdev; - char __data[0]; +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, }; -struct trace_event_raw_iomap_iter { - struct trace_entry ent; - dev_t dev; - long: 32; - u64 ino; - loff_t pos; - u64 length; - unsigned int flags; - const void *ops; - unsigned long caller; - char __data[0]; - long: 32; +enum { + NEXTHOP_GRP_TYPE_MPATH = 0, + NEXTHOP_GRP_TYPE_RES = 1, + __NEXTHOP_GRP_TYPE_MAX = 2, }; -struct trace_event_raw_iomap_dio_rw_begin { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t isize; - loff_t pos; - size_t count; - size_t done_before; - int ki_flags; - unsigned int dio_flags; - bool aio; - char __data[0]; - long: 32; +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, }; -struct trace_event_raw_iomap_dio_complete { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t isize; - loff_t pos; - int ki_flags; - bool aio; - int error; - ssize_t ret; - char __data[0]; +enum { + NHA_RES_BUCKET_UNSPEC = 0, + NHA_RES_BUCKET_PAD = 0, + NHA_RES_BUCKET_INDEX = 1, + NHA_RES_BUCKET_IDLE_TIME = 2, + NHA_RES_BUCKET_NH_ID = 3, + __NHA_RES_BUCKET_MAX = 4, }; -struct trace_event_data_offsets_iomap_readpage_class {}; +struct nh_notifier_single_info; -struct trace_event_data_offsets_iomap_range_class {}; +struct nh_notifier_grp_info; -struct trace_event_data_offsets_iomap_class {}; +struct nh_notifier_res_table_info; -struct trace_event_data_offsets_iomap_iter {}; +struct nh_notifier_res_bucket_info; -struct trace_event_data_offsets_iomap_dio_rw_begin {}; +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 trace_event_data_offsets_iomap_dio_complete {}; +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 nfs_callback_data { - unsigned int users; - struct svc_serv *serv; +struct nh_notifier_grp_entry_info { + u8 weight; + u32 id; + struct nh_notifier_single_info nh; }; -enum nfs4_callback_procnum { - CB_NULL = 0, - CB_COMPOUND = 1, +struct nh_notifier_grp_info { + u16 num_nh; + bool is_fdb; + struct nh_notifier_grp_entry_info nh_entries[0]; }; -enum { - Opt_err___7 = 0, - Opt_fd = 1, - Opt_uid___4 = 2, - Opt_gid___5 = 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, +struct nh_notifier_res_table_info { + u16 num_nh_buckets; + struct nh_notifier_single_info nhs[0]; }; -struct keyctl_dh_params { +struct nh_notifier_res_bucket_info { + u16 bucket_index; + unsigned int idle_timer_ms; + bool force; + struct nh_notifier_single_info old_nh; + struct nh_notifier_single_info new_nh; +}; + +struct nh_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 { - __s32 private; - __s32 priv; - }; - __s32 prime; - __s32 base; + __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 keyctl_kdf_params { - char __attribute__((btf_type_tag("user"))) *hashname; - char __attribute__((btf_type_tag("user"))) *otherinfo; - __u32 otherinfolen; - __u32 __spare[8]; +struct nhmsg { + unsigned char nh_family; + unsigned char nh_scope; + unsigned char nh_protocol; + unsigned char resvd; + unsigned int nh_flags; }; -struct blk_rq_stat; +struct nexthop_grp { + __u32 id; + __u8 weight; + __u8 resvd1; + __u16 resvd2; +}; -struct blk_stat_callback { - struct list_head list; - struct timer_list timer; - struct blk_rq_stat __attribute__((btf_type_tag("percpu"))) *cpu_stat; - int (*bucket_fn)(const struct request *); - unsigned int buckets; - struct blk_rq_stat *stat; - void (*timer_fn)(struct blk_stat_callback *); - void *data; - struct callback_head rcu; +struct nh_dump_filter { + u32 nh_id; + int dev_idx; + int master_idx; + bool group_filter; + bool fdb_filter; + u32 res_bucket_nh_id; }; -struct blk_rq_stat { - u64 mean; - u64 min; - u64 max; - u32 nr_samples; - long: 32; - u64 batch; +struct rtm_dump_nh_ctx { + u32 idx; }; -struct blk_queue_stats { - struct list_head callbacks; - spinlock_t lock; - int accounting; +struct rtm_dump_res_bucket_ctx { + struct rtm_dump_nh_ctx nh; + u16 bucket_index; }; -struct io_xattr { - struct file *file; - struct xattr_ctx ctx; - struct filename *filename; +struct rtm_dump_nexthop_bucket_data { + struct rtm_dump_res_bucket_ctx *ctx; + struct nh_dump_filter filter; }; -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 mld2_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + struct in6_addr grec_mca; + struct in6_addr grec_src[0]; }; -struct genpool_data_fixed { - unsigned long offset; +struct mld2_report { + struct icmp6hdr mld2r_hdr; + struct mld2_grec mld2r_grec[0]; }; -struct sg_pool { - size_t size; - char *name; - struct kmem_cache *slab; - mempool_t *pool; +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 owl_sirq_params { - bool reg_shared; - u16 reg_offset[3]; +struct igmp6_mc_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct inet6_dev *idev; }; -struct owl_sirq_chip_data { - const struct owl_sirq_params *params; - void *base; - raw_spinlock_t lock; - u32 ext_irqs[3]; +struct igmp6_mcf_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct inet6_dev *idev; + struct ifmcaddr6 *im; }; -struct mtk_sysirq_chip_data { - raw_spinlock_t lock; - u32 nr_intpol_bases; - void **intpol_bases; - u32 *intpol_words; - u8 *intpol_idx; - u16 *which_word; +struct rpc_cred_cache { + struct hlist_head *hashtable; + unsigned int hashbits; + spinlock_t lock; }; -struct intmux_irqchip_data { - u32 saved_reg; - int chanidx; - int irq; - struct irq_domain *domain; +struct processor { + void (*_data_abort)(unsigned long); + unsigned long (*_prefetch_abort)(unsigned long); + void (*_proc_init)(); + void (*check_bugs)(); + void (*_proc_fin)(); + void (*reset)(unsigned long, bool); + int (*_do_idle)(); + void (*dcache_clean_area)(void *, int); + void (*switch_mm)(phys_addr_t, struct mm_struct *); + void (*set_pte_ext)(pte_t *, pte_t, unsigned int); + unsigned int suspend_size; + void (*do_suspend)(void *); + void (*do_resume)(void *); }; -struct intmux_data { - raw_spinlock_t lock; - void *regs; - struct clk *ipg_clk; - int channum; - struct intmux_irqchip_data irqchip_data[0]; +struct cpu_tlb_fns { + void (*flush_user_range)(unsigned long, unsigned long, struct vm_area_struct *); + void (*flush_kern_range)(unsigned long, unsigned long); + unsigned long tlb_flags; }; -struct priv { - struct clk *clk; - void *base; +struct cpu_cache_fns { + void (*flush_icache_all)(); + void (*flush_kern_all)(); + void (*flush_kern_louis)(); + void (*flush_user_all)(); + void (*flush_user_range)(unsigned long, unsigned long, unsigned int); + void (*coherent_kern_range)(unsigned long, unsigned long); + int (*coherent_user_range)(unsigned long, unsigned long); + void (*flush_kern_dcache_area)(void *, size_t); + void (*dma_map_area)(const void *, size_t, int); + void (*dma_unmap_area)(const void *, size_t, int); + void (*dma_flush_range)(const void *, const void *); }; -struct atmel_pioctrl_data { - unsigned int nbanks; - unsigned int last_bank_count; - unsigned int slew_rate_support; +struct stack { + u32 irq[4]; + u32 abt[4]; + u32 und[4]; + u32 fiq[4]; }; -struct atmel_group; +struct mpidr_hash { + u32 mask; + u32 shift_aff[3]; + u32 bits; +}; -struct atmel_pin; +struct proc_info_list { + unsigned int cpu_val; + unsigned int cpu_mask; + unsigned long __cpu_mm_mmu_flags; + unsigned long __cpu_io_mmu_flags; + unsigned long __cpu_flush; + const char *arch_name; + const char *elf_name; + unsigned int elf_hwcap; + const char *cpu_name; + struct processor *proc; + struct cpu_tlb_fns *tlb; + struct cpu_user_fns *user; + struct cpu_cache_fns *cache; +}; -struct atmel_pioctrl { - void *reg_base; - struct clk *clk; - unsigned int nbanks; - struct pinctrl_dev *pinctrl_dev; - struct atmel_group *groups; - const char * const *group_names; - struct atmel_pin **pins; - unsigned int npins; - struct gpio_chip *gpio_chip; - struct irq_domain *irq_domain; - int *irqs; - unsigned int *pm_wakeup_sources; - struct { - u32 imr; - u32 odsr; - u32 cfgr[32]; - } *pm_suspend_backup; - struct device *dev; - struct device_node *node; - unsigned int slew_rate_support; +struct mvebu_system_controller { + u32 rstoutn_mask_offset; + u32 system_soft_reset_offset; + u32 rstoutn_mask_reset_out_en; + u32 system_soft_reset; + u32 resume_boot_addr; + u32 dev_id; + u32 rev_id; }; -struct atmel_group { - const char *name; - u32 pin; +enum pmsu_idle_prepare_flags { + PMSU_PREPARE_NORMAL = 0, + PMSU_PREPARE_DEEP_IDLE = 1, + PMSU_PREPARE_SNOOP_DISABLE = 2, }; -struct atmel_pin { - unsigned int pin_id; - unsigned int mux; - unsigned int ioset; - unsigned int bank; - unsigned int line; - const char *device; +struct omap_id { + u16 hawkeye; + u8 dev; + u32 type; +}; + +struct omap_die_id { + u32 id_0; + u32 id_1; + u32 id_2; + u32 id_3; +}; + +struct memory_reserve_config { + u64 reserved; + u64 base; + u64 size; +}; + +struct semaphore_waiter { + struct list_head list; + struct task_struct *task; + bool up; +}; + +struct dma_coherent_mem { + void *virt_base; + dma_addr_t device_base; + unsigned long pfn_base; + int size; + unsigned long *bitmap; + spinlock_t spinlock; + bool use_dev_dma_pfn_offset; }; -struct rza2_pinctrl_priv { - struct device *dev; - void *base; - struct pinctrl_pin_desc *pins; - struct pinctrl_desc desc; - struct pinctrl_dev *pctl; - struct pinctrl_gpio_range gpio_range; - int npins; - struct mutex mutex; +struct __kernel_old_itimerval { + struct __kernel_old_timeval it_interval; + struct __kernel_old_timeval it_value; }; -struct fsl_gpio_soc_data { - bool have_paddr; +struct misc_res { + u64 max; + atomic64_t usage; + atomic64_t events; }; -struct vf610_gpio_port { - struct gpio_chip gc; - void *base; - void *gpio_base; - const struct fsl_gpio_soc_data *sdata; - u8 irqc[32]; - struct clk *clk_port; - struct clk *clk_gpio; - int irq; +struct misc_cg { + struct cgroup_subsys_state css; + struct cgroup_file events_file; + long: 32; + struct misc_res res[0]; }; -enum enable_type { - undefined = -1, - user_disabled = 0, - auto_disabled = 1, - user_enabled = 2, - auto_enabled = 3, +enum misc_res_type { + MISC_CG_RES_TYPES = 0, }; -enum release_type { - leaf_only = 0, - whole_subtree = 1, +struct tp_transition_snapshot { + unsigned long rcu; + unsigned long srcu; + bool ongoing; }; -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 tp_func_state { + TP_FUNC_0 = 0, + TP_FUNC_1 = 1, + TP_FUNC_2 = 2, + TP_FUNC_N = 3, }; -struct clk_plldiv { - struct clk_hw hw; - struct regmap *regmap; +enum tp_transition_sync { + TP_TRANSITION_SYNC_1_0_1 = 0, + TP_TRANSITION_SYNC_N_2_1 = 1, + _NR_TP_TRANSITION_SYNC = 2, }; -struct at91sam9x5_clk_usb { - struct clk_hw hw; - struct regmap *regmap; - struct at91_clk_pms pms; - u32 usbs_mask; - u8 num_parents; +struct tp_module { + struct list_head list; + struct module *mod; }; -struct at91rm9200_clk_usb { - struct clk_hw hw; - struct regmap *regmap; - u32 divisors[4]; +struct tp_probes { + struct callback_head rcu; + struct tracepoint_func probes[0]; }; -struct imx93_clk_gate { - struct clk_hw hw; - void *reg; - u32 bit_idx; - u32 val; - u32 mask; - spinlock_t *lock; - unsigned int *share_count; +struct trace_bprintk_fmt { + struct list_head list; + const char *fmt; }; -struct clk_pll_data; +typedef void (*btf_trace_cpu_idle)(void *, unsigned int, unsigned int); -struct clk_pll___5 { - struct clk_hw hw; - struct clk_pll_data *pll_data; -}; +typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool); -struct clk_pll_data { - bool has_pllctrl; - u32 phy_pllm; - u32 phy_pll_ctl0; - void *pllm; - void *pllod; - void *pll_ctl0; - u32 pllm_lower_mask; - u32 pllm_upper_mask; - u32 pllm_upper_shift; - u32 plld_mask; - u32 clkod_mask; - u32 clkod_shift; - u32 postdiv; -}; +typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int); -enum { - AXP_CPU_TO_NBCLK = 0, - AXP_CPU_TO_HCLK = 1, - AXP_CPU_TO_DRAMCLK = 2, -}; +typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32); -struct tegra_clk_periph_fixed { - struct clk_hw hw; - void *base; - const struct tegra_clk_periph_regs *regs; - unsigned int mul; - unsigned int div; - unsigned int num; -}; +typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int); -struct cpu_clk_suspend_context___2 { - u32 pllx_misc; - u32 pllx_base; - u32 cpu_burst; - u32 clk_csite_src; - u32 cclk_divider; -}; +typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *); -struct bcm2835_desc; +typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int); -struct bcm2835_chan { - struct virt_dma_chan vc; - struct dma_slave_config cfg; - unsigned int dreq; - int ch; - struct bcm2835_desc *desc; - struct dma_pool *cb_pool; - void *chan_base; - int irq_number; - unsigned int irq_flags; - bool is_lite_channel; -}; +typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int); -struct bcm2835_dma_cb; +typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool); -struct bcm2835_cb_entry { - struct bcm2835_dma_cb *cb; - dma_addr_t paddr; -}; +typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int); -struct bcm2835_desc { - struct bcm2835_chan *c; - struct virt_dma_desc vd; - enum dma_transfer_direction dir; - unsigned int frames; - size_t size; - bool cyclic; - struct bcm2835_cb_entry cb_list[0]; -}; +typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int); -struct bcm2835_dma_cb { - uint32_t info; - uint32_t src; - uint32_t dst; - uint32_t length; - uint32_t stride; - uint32_t next; - uint32_t pad[2]; -}; +typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int); -struct bcm2835_dmadev { - struct dma_device ddev; - void *base; - dma_addr_t zero_page; -}; +typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int); -struct smsm_entry; +typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int); -struct smsm_host; +typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int); -struct qcom_smsm { - struct device *dev; - u32 local_host; - u32 num_hosts; - u32 num_entries; - u32 *local_state; - u32 *subscription; - struct qcom_smem_state *state; - spinlock_t lock; - struct smsm_entry *entries; - struct smsm_host *hosts; -}; +typedef void (*btf_trace_pm_qos_add_request)(void *, s32); -struct smsm_entry { - struct qcom_smsm *smsm; - struct irq_domain *domain; - unsigned long irq_enabled[1]; - unsigned long irq_rising[1]; - unsigned long irq_falling[1]; - unsigned long last_value; - u32 *remote_state; - u32 *subscription; -}; +typedef void (*btf_trace_pm_qos_update_request)(void *, s32); -struct smsm_host { - struct regmap *ipc_regmap; - int ipc_offset; - int ipc_bit; -}; +typedef void (*btf_trace_pm_qos_remove_request)(void *, s32); -enum max77802_regulators { - MAX77802_BUCK1 = 0, - MAX77802_BUCK2 = 1, - MAX77802_BUCK3 = 2, - MAX77802_BUCK4 = 3, - MAX77802_BUCK5 = 4, - MAX77802_BUCK6 = 5, - MAX77802_BUCK7 = 6, - MAX77802_BUCK8 = 7, - MAX77802_BUCK9 = 8, - MAX77802_BUCK10 = 9, - MAX77802_LDO1 = 10, - MAX77802_LDO2 = 11, - MAX77802_LDO3 = 12, - MAX77802_LDO4 = 13, - MAX77802_LDO5 = 14, - MAX77802_LDO6 = 15, - MAX77802_LDO7 = 16, - MAX77802_LDO8 = 17, - MAX77802_LDO9 = 18, - MAX77802_LDO10 = 19, - MAX77802_LDO11 = 20, - MAX77802_LDO12 = 21, - MAX77802_LDO13 = 22, - MAX77802_LDO14 = 23, - MAX77802_LDO15 = 24, - MAX77802_LDO17 = 25, - MAX77802_LDO18 = 26, - MAX77802_LDO19 = 27, - MAX77802_LDO20 = 28, - MAX77802_LDO21 = 29, - MAX77802_LDO23 = 30, - MAX77802_LDO24 = 31, - MAX77802_LDO25 = 32, - MAX77802_LDO26 = 33, - MAX77802_LDO27 = 34, - MAX77802_LDO28 = 35, - MAX77802_LDO29 = 36, - MAX77802_LDO30 = 37, - MAX77802_LDO32 = 38, - MAX77802_LDO33 = 39, - MAX77802_LDO34 = 40, - MAX77802_LDO35 = 41, - MAX77802_REG_MAX = 42, -}; +typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int); -struct max77802_regulator_prv { - unsigned int opmode[42]; -}; +typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int); -struct scmi_reset_data { - struct reset_controller_dev rcdev; - const struct scmi_protocol_handle *ph; -}; +typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32); -struct s3c24xx_uart_info; +typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32); -struct s3c24xx_serial_drv_data; +typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32); -struct s3c2410_uartcfg; +typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int); -struct s3c24xx_uart_dma; +struct trace_event_raw_cpu { + struct trace_entry ent; + u32 state; + u32 cpu_id; + char __data[0]; +}; -struct s3c24xx_uart_port { - unsigned char rx_claimed; - unsigned char tx_claimed; - unsigned char rx_enabled; - unsigned char tx_enabled; - unsigned int pm_level; - unsigned long baudclk_rate; - unsigned int min_dma_size; - unsigned int rx_irq; - unsigned int tx_irq; - unsigned int tx_in_progress; - unsigned int tx_mode; - unsigned int rx_mode; - const struct s3c24xx_uart_info *info; - struct clk *clk; - struct clk *baudclk; - struct uart_port port; - const struct s3c24xx_serial_drv_data *drv_data; - const struct s3c2410_uartcfg *cfg; - struct s3c24xx_uart_dma *dma; - long: 32; +struct trace_event_raw_cpu_idle_miss { + struct trace_entry ent; + u32 cpu_id; + u32 state; + bool below; + char __data[0]; }; -enum s3c24xx_port_type { - TYPE_S3C24XX = 0, - TYPE_S3C6400 = 1, - TYPE_APPLE_S5L = 2, +struct trace_event_raw_powernv_throttle { + struct trace_entry ent; + int chip_id; + u32 __data_loc_reason; + int pmax; + char __data[0]; }; -struct s3c24xx_uart_info { - const char *name; - enum s3c24xx_port_type type; - unsigned int port_type; - unsigned int fifosize; - unsigned long rx_fifomask; - unsigned long rx_fifoshift; - unsigned long rx_fifofull; - unsigned long tx_fifomask; - unsigned long tx_fifoshift; - unsigned long tx_fifofull; - unsigned int def_clk_sel; - unsigned long num_clks; - unsigned long clksel_mask; - unsigned long clksel_shift; - unsigned long ucon_mask; - unsigned int has_divslot: 1; +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 s3c2410_uartcfg { - unsigned char hwport; - unsigned char unused; - unsigned short flags; - long: 32; - upf_t uart_flags; - unsigned int clk_sel; - unsigned int has_fracval; - unsigned long ucon; - unsigned long ulcon; - unsigned long ufcon; - long: 32; +struct trace_event_raw_cpu_frequency_limits { + struct trace_entry ent; + u32 min_freq; + u32 max_freq; + u32 cpu_id; + char __data[0]; }; -struct s3c24xx_serial_drv_data { - const struct s3c24xx_uart_info info; - const struct s3c2410_uartcfg def_cfg; - const unsigned int fifosize[4]; +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 s3c24xx_uart_dma { - unsigned int rx_chan_id; - unsigned int tx_chan_id; - struct dma_slave_config rx_conf; - struct dma_slave_config tx_conf; - struct dma_chan *rx_chan; - struct dma_chan *tx_chan; - dma_addr_t rx_addr; - dma_addr_t tx_addr; - dma_cookie_t rx_cookie; - dma_cookie_t tx_cookie; - char *rx_buf; - dma_addr_t tx_transfer_addr; - size_t rx_size; - size_t tx_size; - struct dma_async_tx_descriptor *tx_desc; - struct dma_async_tx_descriptor *rx_desc; - int tx_bytes_requested; - int rx_bytes_requested; +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 samsung_early_console_data { - u32 txfull_mask; - u32 rxfifo_mask; +struct trace_event_raw_suspend_resume { + struct trace_entry ent; + const char *action; + int val; + bool start; + char __data[0]; }; -struct tegra_smmu_as { - struct iommu_domain domain; - struct tegra_smmu *smmu; - unsigned int use_count; - spinlock_t lock; - u32 *count; - struct page **pts; - struct page *pd; - dma_addr_t pd_dma; - unsigned int id; - u32 attr; +struct trace_event_raw_wakeup_source { + struct trace_entry ent; + u32 __data_loc_name; + long: 32; + u64 state; + char __data[0]; }; -struct tegra_smmu { - void *regs; - struct device *dev; - struct tegra_mc *mc; - const struct tegra_smmu_soc *soc; - struct list_head groups; - unsigned long pfn_mask; - unsigned long tlb_mask; - unsigned long *asids; - struct mutex lock; - struct list_head list; - struct dentry *debugfs; - struct iommu_device iommu; +struct trace_event_raw_clock { + struct trace_entry ent; + u32 __data_loc_name; + long: 32; + u64 state; + u64 cpu_id; + char __data[0]; }; -struct tegra_smmu_group { - struct list_head list; - struct tegra_smmu *smmu; - const struct tegra_smmu_group_soc *soc; - struct iommu_group *group; - unsigned int swgroup; +struct trace_event_raw_power_domain { + struct trace_entry ent; + u32 __data_loc_name; + long: 32; + u64 state; + u64 cpu_id; + char __data[0]; }; -struct drm_mode_get_encoder { - __u32 encoder_id; - __u32 encoder_type; - __u32 crtc_id; - __u32 possible_crtcs; - __u32 possible_clones; +struct trace_event_raw_cpu_latency_qos_request { + struct trace_entry ent; + s32 value; + char __data[0]; }; -struct sih_irq_data { - u8 isr_offset; - u8 imr_offset; +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 sih { - char name[8]; - u8 module; - u8 control_offset; - bool set_cor; - u8 bits; - u8 bytes_ixr; - u8 edr_offset; - u8 bytes_edr; - u8 irq_lines; - struct sih_irq_data mask[2]; +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 sih_agent { - int irq_base; - const struct sih *sih; - u32 imr; - bool imr_change_pending; - u32 edge_change; - struct mutex irq_lock; - char *irq_name; +struct trace_event_raw_guest_halt_poll_ns { + struct trace_entry ent; + bool grow; + unsigned int new; + unsigned int old; + char __data[0]; }; -enum ssbi_controller_type { - MSM_SBI_CTRL_SSBI = 0, - MSM_SBI_CTRL_SSBI2 = 1, - MSM_SBI_CTRL_PMIC_ARBITER = 2, +struct trace_event_data_offsets_powernv_throttle { + u32 reason; }; -struct ssbi { - struct device *slave; - void *base; - spinlock_t lock; - enum ssbi_controller_type controller_type; - int (*read)(struct ssbi *, u16, u8 *, int); - int (*write)(struct ssbi *, u16, const u8 *, int); +struct trace_event_data_offsets_device_pm_callback_end { + u32 device; + u32 driver; }; -struct scsi_event { - enum scsi_device_event evt_type; - struct list_head node; +struct trace_event_data_offsets_wakeup_source { + u32 name; }; -struct marvell_hw_ecc_layout { - int writesize; - int chunk; - int strength; - int nchunks; - int full_chunk_cnt; - int data_bytes; - int spare_bytes; - int ecc_bytes; - int last_data_bytes; - int last_spare_bytes; - int last_ecc_bytes; +struct trace_event_data_offsets_clock { + u32 name; }; -struct marvell_nfc_caps { - unsigned int max_cs_nb; - unsigned int max_rb_nb; - bool need_system_controller; - bool legacy_of_bindings; - bool is_nfcv2; - bool use_dma; +struct trace_event_data_offsets_power_domain { + u32 name; }; -struct marvell_nand_chip_sel { - unsigned int cs; - u32 ndcb0_csel; - unsigned int rb; +struct trace_event_data_offsets_dev_pm_qos_request { + u32 name; }; -struct marvell_nand_chip { - struct nand_chip chip; - struct list_head node; - const struct marvell_hw_ecc_layout *layout; - u32 ndcr; - u32 ndtr0; - u32 ndtr1; - int addr_cyc; - int selected_die; - unsigned int nsels; - struct marvell_nand_chip_sel sels[0]; - long: 32; +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 marvell_nfc { - struct nand_controller controller; - struct device *dev; - void *regs; - struct clk *core_clk; - struct clk *reg_clk; - struct completion complete; - unsigned long assigned_cs; - struct list_head chips; - struct nand_chip *selected_chip; - const struct marvell_nfc_caps *caps; - bool use_dma; - struct dma_chan *dma_chan; - u8 *dma_buf; +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 {}; + +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 *); + +typedef int fpi_t; + +struct inotify_event_info { + struct fsnotify_event fse; + u32 mask; + int wd; + u32 sync_cookie; + int name_len; + char name[0]; }; -struct marvell_nfc_op { - u32 ndcb[4]; - unsigned int cle_ale_delay_ns; - unsigned int rdy_timeout_ms; - unsigned int rdy_delay_ns; - unsigned int data_delay_ns; - unsigned int data_instr_idx; - const struct nand_op_instr *data_instr; +struct inotify_event { + __s32 wd; + __u32 mask; + __u32 cookie; + __u32 len; + char name[0]; }; -struct pxa3xx_nand_platform_data { - bool keep_config; - bool flash_bbt; - int ecc_strength; - int ecc_step_size; - const struct mtd_partition *parts; - unsigned int nr_parts; +struct kernfs_global_locks { + struct mutex open_file_mutex[256]; }; -struct marvell_nfc_timings { - unsigned int tRP; - unsigned int tRH; - unsigned int tWP; - unsigned int tWH; - unsigned int tCS; - unsigned int tCH; - unsigned int tADL; - unsigned int tAR; - unsigned int tWHR; - unsigned int tRHW; - unsigned int tR; +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 tegra_sflash_data { - struct device *dev; - struct spi_controller *master; - spinlock_t lock; - struct clk *clk; - struct reset_control *rst; - void *base; - unsigned int irq; - u32 cur_speed; - struct spi_device *cur_spi; - unsigned int cur_pos; - unsigned int cur_len; - unsigned int bytes_per_word; - unsigned int cur_direction; - unsigned int curr_xfer_words; - unsigned int cur_rx_pos; - unsigned int cur_tx_pos; - u32 tx_status; - u32 rx_status; - u32 status_reg; - u32 def_command_reg; - u32 command_reg; - u32 dma_control_reg; - struct completion xfer_completion; - struct spi_transfer *curr_xfer; +struct orlov_stats { + __u64 free_clusters; + __u32 free_inodes; + __u32 used_dirs; }; -struct marvell_hw_stat { - const char *string; - u8 page; - u8 reg; - u8 bits; +typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int); + +typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_locking)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *); + +typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, tid_t, unsigned int, unsigned int, int); + +typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int); + +typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int); + +typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int); + +typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); + +typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); + +typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t); + +typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, unsigned long, tid_t); + +struct trace_event_raw_jbd2_checkpoint { + struct trace_entry ent; + dev_t dev; + int result; + char __data[0]; }; -struct marvell_hwmon_ops { - int (*config)(struct phy_device *); - int (*get_temp)(struct phy_device *, long *); - int (*get_temp_critical)(struct phy_device *, long *); - int (*set_temp_critical)(struct phy_device *, long); - int (*get_temp_alarm)(struct phy_device *, long *); +struct trace_event_raw_jbd2_commit { + struct trace_entry ent; + dev_t dev; + char sync_commit; + tid_t transaction; + char __data[0]; }; -struct marvell_priv { - u64 stats[3]; - char *hwmon_name; - struct device *hwmon_dev; - bool cable_test_tdr; - u32 first; - u32 last; - u32 step; - s8 pair; - long: 32; +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 e1000_opt_list; +struct trace_event_raw_jbd2_submit_inode_data { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; +}; -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; - struct e1000_opt_list *p; - } l; - } arg; +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 e1000_opt_list { - int i; - char *str; +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 ehci_tt { - u16 bandwidth[8]; - struct list_head tt_list; - struct list_head ps_list; - struct usb_tt *usb_tt; - int tt_port; +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 ehci_iso_packet { - u64 bufp; - __le32 transaction; - u8 cross; - u32 buf1; - long: 32; +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 ehci_iso_sched { - struct list_head td_list; - unsigned int span; - unsigned int first_packet; - struct ehci_iso_packet packet[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]; }; -typedef void (*btf_trace_usb_gadget_frame_number)(void *, struct usb_gadget *, int); +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]; +}; -typedef void (*btf_trace_usb_gadget_wakeup)(void *, struct usb_gadget *, int); +struct trace_event_raw_jbd2_write_superblock { + struct trace_entry ent; + dev_t dev; + blk_opf_t write_flags; + char __data[0]; +}; -typedef void (*btf_trace_usb_gadget_set_remote_wakeup)(void *, struct usb_gadget *, int); +struct trace_event_raw_jbd2_lock_buffer_stall { + struct trace_entry ent; + dev_t dev; + unsigned long stall_ms; + char __data[0]; +}; -typedef void (*btf_trace_usb_gadget_set_selfpowered)(void *, struct usb_gadget *, int); +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]; +}; -typedef void (*btf_trace_usb_gadget_clear_selfpowered)(void *, struct usb_gadget *, int); +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]; +}; -typedef void (*btf_trace_usb_gadget_vbus_connect)(void *, struct usb_gadget *, int); +struct trace_event_raw_jbd2_shrink_checkpoint_list { + struct trace_entry ent; + dev_t dev; + tid_t first_tid; + tid_t tid; + tid_t last_tid; + unsigned long nr_freed; + tid_t next_tid; + char __data[0]; +}; -typedef void (*btf_trace_usb_gadget_vbus_draw)(void *, struct usb_gadget *, int); +struct trace_event_data_offsets_jbd2_checkpoint {}; -typedef void (*btf_trace_usb_gadget_vbus_disconnect)(void *, struct usb_gadget *, int); +struct trace_event_data_offsets_jbd2_commit {}; -typedef void (*btf_trace_usb_gadget_connect)(void *, struct usb_gadget *, int); +struct trace_event_data_offsets_jbd2_end_commit {}; -typedef void (*btf_trace_usb_gadget_disconnect)(void *, struct usb_gadget *, int); +struct trace_event_data_offsets_jbd2_submit_inode_data {}; -typedef void (*btf_trace_usb_gadget_deactivate)(void *, struct usb_gadget *, int); +struct trace_event_data_offsets_jbd2_handle_start_class {}; -typedef void (*btf_trace_usb_gadget_activate)(void *, struct usb_gadget *, int); +struct trace_event_data_offsets_jbd2_handle_extend {}; -typedef void (*btf_trace_usb_ep_set_maxpacket_limit)(void *, struct usb_ep *, int); +struct trace_event_data_offsets_jbd2_handle_stats {}; -typedef void (*btf_trace_usb_ep_enable)(void *, struct usb_ep *, int); +struct trace_event_data_offsets_jbd2_run_stats {}; -typedef void (*btf_trace_usb_ep_disable)(void *, struct usb_ep *, int); +struct trace_event_data_offsets_jbd2_checkpoint_stats {}; -typedef void (*btf_trace_usb_ep_set_halt)(void *, struct usb_ep *, int); +struct trace_event_data_offsets_jbd2_update_log_tail {}; -typedef void (*btf_trace_usb_ep_clear_halt)(void *, struct usb_ep *, int); +struct trace_event_data_offsets_jbd2_write_superblock {}; -typedef void (*btf_trace_usb_ep_set_wedge)(void *, struct usb_ep *, int); +struct trace_event_data_offsets_jbd2_lock_buffer_stall {}; -typedef void (*btf_trace_usb_ep_fifo_status)(void *, struct usb_ep *, int); +struct trace_event_data_offsets_jbd2_journal_shrink {}; -typedef void (*btf_trace_usb_ep_fifo_flush)(void *, struct usb_ep *, int); +struct trace_event_data_offsets_jbd2_shrink_scan_exit {}; -typedef void (*btf_trace_usb_ep_alloc_request)(void *, struct usb_ep *, struct usb_request *, int); +struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {}; -typedef void (*btf_trace_usb_ep_free_request)(void *, struct usb_ep *, struct usb_request *, int); +struct jbd2_stats_proc_session { + journal_t *journal; + struct transaction_stats_s *stats; + int start; + int max; +}; -typedef void (*btf_trace_usb_ep_queue)(void *, struct usb_ep *, struct usb_request *, int); +typedef int (*ntfs_collate_func_t)(ntfs_volume *, const void *, const int, const void *, const int); -typedef void (*btf_trace_usb_ep_dequeue)(void *, struct usb_ep *, struct usb_request *, int); +struct autofs_dev_ioctl; -typedef void (*btf_trace_usb_gadget_giveback_request)(void *, struct usb_ep *, struct usb_request *, int); +typedef int (*ioctl_fn)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *); -struct trace_event_raw_udc_log_gadget { - struct trace_entry ent; - enum usb_device_speed speed; - enum usb_device_speed max_speed; - enum usb_device_state state; - unsigned int mA; - unsigned int sg_supported; - unsigned int is_otg; - unsigned int is_a_peripheral; - unsigned int b_hnp_enable; - unsigned int a_hnp_support; - unsigned int hnp_polling_support; - unsigned int host_request_flag; - unsigned int quirk_ep_out_aligned_size; - unsigned int quirk_altset_not_supp; - unsigned int quirk_stall_not_supp; - unsigned int quirk_zlp_not_supp; - unsigned int is_selfpowered; - unsigned int deactivated; - unsigned int connected; - int ret; - char __data[0]; +struct args_protover { + __u32 version; }; -struct trace_event_raw_udc_log_ep { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int maxpacket; - unsigned int maxpacket_limit; - unsigned int max_streams; - unsigned int mult; - unsigned int maxburst; - u8 address; - bool claimed; - bool enabled; - int ret; - char __data[0]; +struct args_protosubver { + __u32 sub_version; }; -struct trace_event_raw_udc_log_req { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int length; - unsigned int actual; - unsigned int num_sgs; - unsigned int num_mapped_sgs; - unsigned int stream_id; - unsigned int no_interrupt; - unsigned int zero; - unsigned int short_not_ok; - int status; - int ret; - struct usb_request *req; - char __data[0]; +struct args_openmount { + __u32 devid; }; -struct trace_event_data_offsets_udc_log_ep { - u32 name; +struct args_ready { + __u32 token; }; -struct trace_event_data_offsets_udc_log_req { - u32 name; +struct args_fail { + __u32 token; + __s32 status; }; -struct trace_event_data_offsets_udc_log_gadget {}; - -enum cdns_i2c_mode { - CDNS_I2C_MODE_SLAVE = 0, - CDNS_I2C_MODE_MASTER = 1, +struct args_setpipefd { + __s32 pipefd; }; -enum cdns_i2c_slave_state { - CDNS_I2C_SLAVE_STATE_IDLE = 0, - CDNS_I2C_SLAVE_STATE_SEND = 1, - CDNS_I2C_SLAVE_STATE_RECV = 2, +struct args_timeout { + __u64 timeout; }; -struct cdns_i2c { - struct device *dev; - void *membase; - struct i2c_adapter adap; - struct i2c_msg *p_msg; - int err_status; - struct completion xfer_done; - unsigned char *p_send_buf; - unsigned char *p_recv_buf; - unsigned int send_count; - unsigned int recv_count; - unsigned int curr_recv_count; - unsigned long input_clk; - unsigned int i2c_clk; - unsigned int bus_hold_flag; - struct clk *clk; - struct notifier_block clk_rate_change_nb; - struct reset_control *reset; - u32 quirks; - u32 ctrl_reg; - struct i2c_bus_recovery_info rinfo; - u16 ctrl_reg_diva_divb; - struct i2c_client *slave; - enum cdns_i2c_mode dev_mode; - enum cdns_i2c_slave_state slave_state; - u32 fifo_depth; - unsigned int transfer_size; +struct args_requester { + __u32 uid; + __u32 gid; }; -struct ti_bandgap_data; +struct args_expire { + __u32 how; +}; -struct temp_sensor_regval; +struct args_askumount { + __u32 may_umount; +}; -struct ti_bandgap { - struct device *dev; - void *base; - const struct ti_bandgap_data *conf; - struct temp_sensor_regval *regval; - struct clk *fclock; - struct clk *div_clk; - spinlock_t lock; - int irq; - struct gpio_desc *tshut_gpiod; - u32 clk_rate; - struct notifier_block nb; - unsigned int is_suspended: 1; +struct args_in { + __u32 type; }; -struct temp_sensor_data; +struct args_out { + __u32 devid; + __u32 magic; +}; -struct temp_sensor_registers; +struct args_ismountpoint { + union { + struct args_in in; + struct args_out out; + }; +}; -struct ti_temp_sensor { - struct temp_sensor_data *ts_data; - struct temp_sensor_registers *registers; - char *domain; - const int slope_pcb; - const int constant_pcb; - int (*register_cooling)(struct ti_bandgap *, int); - int (*unregister_cooling)(struct ti_bandgap *, int); +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]; }; -struct ti_bandgap_data { - unsigned int features; - const int *conv_table; - u32 adc_start_val; - u32 adc_end_val; - char *fclock_name; - char *div_ck_name; - int sensor_count; - int (*report_temperature)(struct ti_bandgap *, int); - int (*expose_sensor)(struct ti_bandgap *, int, char *); - int (*remove_sensor)(struct ti_bandgap *, int); - struct ti_temp_sensor sensors[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 temp_sensor_data { - u32 tshut_hot; - u32 tshut_cold; - u32 t_hot; - u32 t_cold; - u32 min_freq; - u32 max_freq; +struct crypto_istat_akcipher { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t verify_cnt; + atomic64_t sign_cnt; + atomic64_t err_cnt; }; -struct temp_sensor_registers { - u32 temp_sensor_ctrl; - u32 bgap_tempsoff_mask; - u32 bgap_soc_mask; - u32 bgap_eocz_mask; - u32 bgap_dtemp_mask; - u32 bgap_mask_ctrl; - u32 mask_hot_mask; - u32 mask_cold_mask; - u32 mask_counter_delay_mask; - u32 mask_freeze_mask; - u32 bgap_mode_ctrl; - u32 mode_ctrl_mask; - u32 bgap_counter; - u32 counter_mask; - u32 bgap_threshold; - u32 threshold_thot_mask; - u32 threshold_tcold_mask; - u32 tshut_threshold; - u32 tshut_hot_mask; - u32 tshut_cold_mask; - u32 bgap_status; - u32 status_hot_mask; - u32 status_cold_mask; - u32 ctrl_dtemp_1; - u32 ctrl_dtemp_2; - u32 bgap_efuse; +enum { + IOPRIO_WHO_PROCESS = 1, + IOPRIO_WHO_PGRP = 2, + IOPRIO_WHO_USER = 3, }; -struct temp_sensor_regval { - u32 bg_mode_ctrl; - u32 bg_ctrl; - u32 bg_counter; - u32 bg_threshold; - u32 tshut_threshold; - void *data; +struct show_busy_params { + struct seq_file *m; + struct blk_mq_hw_ctx *hctx; }; -struct psci_pd_provider { - struct list_head link; - struct device_node *node; +enum { + IOU_POLL_DONE = 0, + IOU_POLL_NO_ACTION = 1, + IOU_POLL_REMOVE_POLL_USE_RES = 2, + IOU_POLL_REISSUE = 3, }; -struct sdhci_pxa { - struct clk *clk_core; - struct clk *clk_io; - u8 power_mode; - void *sdio3_conf_reg; +struct io_poll_update { + struct file *file; + long: 32; + u64 old_user_data; + u64 new_user_data; + __poll_t events; + bool update_events; + bool update_user_data; }; -struct sdhci_pxa_platdata { - unsigned int flags; - unsigned int clk_delay_cycles; - unsigned int clk_delay_sel; - bool clk_delay_enable; - unsigned int max_speed; - u32 host_caps; - u32 host_caps2; - unsigned int quirks; - unsigned int quirks2; - unsigned int pm_caps; +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 sdhci_msm_variant_ops; +typedef enum { + ZSTD_lo_isRegularOffset = 0, + ZSTD_lo_isLongOffset = 1, +} ZSTD_longOffset_e; -struct sdhci_msm_offset; +typedef struct { + U32 fastMode; + U32 tableLog; +} ZSTD_seqSymbol_header; -struct sdhci_msm_variant_info { - bool mci_removed; - bool restore_dll_config; - const struct sdhci_msm_variant_ops *var_ops; - const struct sdhci_msm_offset *offset; -}; +typedef struct { + size_t litLength; + size_t matchLength; + size_t offset; +} seq_t; -struct sdhci_msm_variant_ops { - u32 (*msm_readl_relaxed)(struct sdhci_host *, u32); - void (*msm_writel_relaxed)(u32, struct sdhci_host *, u32); +typedef struct { + size_t state; + const ZSTD_seqSymbol *table; +} ZSTD_fseState; + +typedef struct { + BIT_DStream_t DStream; + ZSTD_fseState stateLL; + ZSTD_fseState stateOffb; + ZSTD_fseState stateML; + size_t prevOffset[3]; +} seqState_t; + +struct tegra_ictlr_soc { + unsigned int num_ictlrs; }; -struct sdhci_msm_offset { - u32 core_hc_mode; - u32 core_mci_data_cnt; - u32 core_mci_status; - u32 core_mci_fifo_cnt; - u32 core_mci_version; - u32 core_generics; - u32 core_testbus_config; - u32 core_testbus_sel2_bit; - u32 core_testbus_ena; - u32 core_testbus_sel2; - u32 core_pwrctl_status; - u32 core_pwrctl_mask; - u32 core_pwrctl_clear; - u32 core_pwrctl_ctl; - u32 core_sdcc_debug_reg; - u32 core_dll_config; - u32 core_dll_status; - u32 core_vendor_spec; - u32 core_vendor_spec_adma_err_addr0; - u32 core_vendor_spec_adma_err_addr1; - u32 core_vendor_spec_func2; - u32 core_vendor_spec_capabilities0; - u32 core_ddr_200_cfg; - u32 core_vendor_spec3; - u32 core_dll_config_2; - u32 core_dll_config_3; - u32 core_ddr_config_old; - u32 core_ddr_config; - u32 core_dll_usr_ctl; +struct tegra_ictlr_info { + void *base[6]; + u32 cop_ier[6]; + u32 cop_iep[6]; + u32 cpu_ier[6]; + u32 cpu_iep[6]; + u32 ictlr_wake_mask[6]; }; -struct sdhci_msm_host { - struct platform_device *pdev; - void *core_mem; - int pwr_irq; - struct clk *bus_clk; - struct clk *xo_clk; - struct clk_bulk_data bulk_clks[4]; - unsigned long clk_rate; - struct mmc_host *mmc; - bool use_14lpp_dll_reset; - bool tuning_done; - bool calibration_done; - u8 saved_tuning_phase; - bool use_cdclp533; - u32 curr_pwr_state; - u32 curr_io_level; - wait_queue_head_t pwr_irq_wait; - bool pwr_irq_flag; - u32 caps_0; - bool mci_removed; - bool restore_dll_config; - const struct sdhci_msm_variant_ops *var_ops; - const struct sdhci_msm_offset *offset; - bool use_cdr; - u32 transfer_mode; - bool updated_ddr_cfg; - bool uses_tassadar_dll; - u32 dll_config; - u32 ddr_config; - bool vqmmc_enabled; +enum cci_ace_port_type { + ACE_INVALID_PORT = 0, + ACE_PORT = 1, + ACE_LITE_PORT = 2, }; -struct pit_data { - struct clock_event_device clkevt; - struct clocksource clksrc; +struct cci_ace_port { void *base; - u32 cycle; - u32 cnt; - unsigned int irq; - struct clk *mck; + unsigned long phys; + enum cci_ace_port_type type; + struct device_node *dn; +}; + +struct cpu_port { + u64 mpidr; + u32 port; long: 32; }; -struct keystone_timer { +struct cci_nb_ports { + unsigned int nb_ace; + unsigned int nb_ace_lite; +}; + +struct sr_pcie_phy_core; + +struct sr_pcie_phy { + struct sr_pcie_phy_core *core; + unsigned int index; + struct phy *phy; +}; + +struct sr_pcie_phy_core { + struct device *dev; void *base; - unsigned long hz_period; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct clock_event_device event_dev; + struct regmap *cdru; + struct regmap *mhb; + u32 pipemux; + struct sr_pcie_phy phys[9]; }; -struct of_changeset_entry { - struct list_head node; - unsigned long action; - struct device_node *np; - struct property *prop; - struct property *old_prop; +enum spear1340_miphy_mode { + SATA___2 = 0, + PCIE___2 = 1, }; -enum ec_status { - EC_RES_SUCCESS = 0, - EC_RES_INVALID_COMMAND = 1, - EC_RES_ERROR = 2, - EC_RES_INVALID_PARAM = 3, - EC_RES_ACCESS_DENIED = 4, - EC_RES_INVALID_RESPONSE = 5, - EC_RES_INVALID_VERSION = 6, - EC_RES_INVALID_CHECKSUM = 7, - EC_RES_IN_PROGRESS = 8, - EC_RES_UNAVAILABLE = 9, - EC_RES_TIMEOUT = 10, - EC_RES_OVERFLOW = 11, - EC_RES_INVALID_HEADER = 12, - EC_RES_REQUEST_TRUNCATED = 13, - EC_RES_RESPONSE_TOO_BIG = 14, - EC_RES_BUS_ERROR = 15, - EC_RES_BUSY = 16, - EC_RES_INVALID_HEADER_VERSION = 17, - EC_RES_INVALID_HEADER_CRC = 18, - EC_RES_INVALID_DATA_CRC = 19, - EC_RES_DUP_UNAVAILABLE = 20, +struct spear1340_miphy_priv { + enum spear1340_miphy_mode mode; + struct regmap *misc; + struct phy *phy; }; -enum host_event_code { - EC_HOST_EVENT_LID_CLOSED = 1, - EC_HOST_EVENT_LID_OPEN = 2, - EC_HOST_EVENT_POWER_BUTTON = 3, - EC_HOST_EVENT_AC_CONNECTED = 4, - EC_HOST_EVENT_AC_DISCONNECTED = 5, - EC_HOST_EVENT_BATTERY_LOW = 6, - EC_HOST_EVENT_BATTERY_CRITICAL = 7, - EC_HOST_EVENT_BATTERY = 8, - EC_HOST_EVENT_THERMAL_THRESHOLD = 9, - EC_HOST_EVENT_DEVICE = 10, - EC_HOST_EVENT_THERMAL = 11, - EC_HOST_EVENT_USB_CHARGER = 12, - EC_HOST_EVENT_KEY_PRESSED = 13, - EC_HOST_EVENT_INTERFACE_READY = 14, - EC_HOST_EVENT_KEYBOARD_RECOVERY = 15, - EC_HOST_EVENT_THERMAL_SHUTDOWN = 16, - EC_HOST_EVENT_BATTERY_SHUTDOWN = 17, - EC_HOST_EVENT_THROTTLE_START = 18, - EC_HOST_EVENT_THROTTLE_STOP = 19, - EC_HOST_EVENT_HANG_DETECT = 20, - EC_HOST_EVENT_HANG_REBOOT = 21, - EC_HOST_EVENT_PD_MCU = 22, - EC_HOST_EVENT_BATTERY_STATUS = 23, - EC_HOST_EVENT_PANIC = 24, - EC_HOST_EVENT_KEYBOARD_FASTBOOT = 25, - EC_HOST_EVENT_RTC = 26, - EC_HOST_EVENT_MKBP = 27, - EC_HOST_EVENT_USB_MUX = 28, - EC_HOST_EVENT_MODE_CHANGE = 29, - EC_HOST_EVENT_KEYBOARD_RECOVERY_HW_REINIT = 30, - EC_HOST_EVENT_WOV = 31, - EC_HOST_EVENT_INVALID = 32, +enum rockchip_pinctrl_type { + PX30 = 0, + RV1108 = 1, + RV1126 = 2, + RK2928 = 3, + RK3066B = 4, + RK3128 = 5, + RK3188 = 6, + RK3288 = 7, + RK3308 = 8, + RK3368 = 9, + RK3399 = 10, + RK3568 = 11, + RK3588 = 12, }; -enum ec_mkbp_event { - EC_MKBP_EVENT_KEY_MATRIX = 0, - EC_MKBP_EVENT_HOST_EVENT = 1, - EC_MKBP_EVENT_SENSOR_FIFO = 2, - EC_MKBP_EVENT_BUTTON = 3, - EC_MKBP_EVENT_SWITCH = 4, - EC_MKBP_EVENT_FINGERPRINT = 5, - EC_MKBP_EVENT_SYSRQ = 6, - EC_MKBP_EVENT_HOST_EVENT64 = 7, - EC_MKBP_EVENT_CEC_EVENT = 8, - EC_MKBP_EVENT_CEC_MESSAGE = 9, - EC_MKBP_EVENT_PCHG = 12, - EC_MKBP_EVENT_COUNT = 13, +struct rockchip_pin_bank; + +struct rockchip_mux_recalced_data; + +struct rockchip_mux_route_data; + +struct rockchip_pin_ctrl { + struct rockchip_pin_bank *pin_banks; + u32 nr_banks; + u32 nr_pins; + char *label; + enum rockchip_pinctrl_type type; + int grf_mux_offset; + int pmu_mux_offset; + int grf_drv_offset; + int pmu_drv_offset; + struct rockchip_mux_recalced_data *iomux_recalced; + u32 niomux_recalced; + struct rockchip_mux_route_data *iomux_routes; + u32 niomux_routes; + int (*pull_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); + int (*drv_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); + int (*schmitt_calc_reg)(struct rockchip_pin_bank *, int, struct regmap **, int *, u8 *); }; -enum motionsense_command { - MOTIONSENSE_CMD_DUMP = 0, - MOTIONSENSE_CMD_INFO = 1, - MOTIONSENSE_CMD_EC_RATE = 2, - MOTIONSENSE_CMD_SENSOR_ODR = 3, - MOTIONSENSE_CMD_SENSOR_RANGE = 4, - MOTIONSENSE_CMD_KB_WAKE_ANGLE = 5, - MOTIONSENSE_CMD_DATA = 6, - MOTIONSENSE_CMD_FIFO_INFO = 7, - MOTIONSENSE_CMD_FIFO_FLUSH = 8, - MOTIONSENSE_CMD_FIFO_READ = 9, - MOTIONSENSE_CMD_PERFORM_CALIB = 10, - MOTIONSENSE_CMD_SENSOR_OFFSET = 11, - MOTIONSENSE_CMD_LIST_ACTIVITIES = 12, - MOTIONSENSE_CMD_SET_ACTIVITY = 13, - MOTIONSENSE_CMD_LID_ANGLE = 14, - MOTIONSENSE_CMD_FIFO_INT_ENABLE = 15, - MOTIONSENSE_CMD_SPOOF = 16, - MOTIONSENSE_CMD_TABLET_MODE_LID_ANGLE = 17, - MOTIONSENSE_CMD_SENSOR_SCALE = 18, - MOTIONSENSE_NUM_CMDS = 19, +struct rockchip_iomux { + int type; + int offset; }; -enum { - EC_MSG_TX_HEADER_BYTES = 3, - EC_MSG_TX_TRAILER_BYTES = 1, - EC_MSG_TX_PROTO_BYTES = 4, - EC_MSG_RX_PROTO_BYTES = 3, - EC_PROTO2_MSG_BYTES = 256, - EC_MAX_MSG_BYTES = 65536, +enum rockchip_pin_drv_type { + DRV_TYPE_IO_DEFAULT = 0, + DRV_TYPE_IO_1V8_OR_3V0 = 1, + DRV_TYPE_IO_1V8_ONLY = 2, + DRV_TYPE_IO_1V8_3V0_AUTO = 3, + DRV_TYPE_IO_3V3_ONLY = 4, + DRV_TYPE_MAX = 5, }; -enum ec_comms_status { - EC_COMMS_STATUS_PROCESSING = 1, +struct rockchip_drv { + enum rockchip_pin_drv_type drv_type; + int offset; }; -struct ec_motion_sense_activity { - uint8_t sensor_num; - uint8_t activity; - uint8_t enable; - uint8_t reserved; - uint16_t parameters[3]; +enum rockchip_pin_pull_type { + PULL_TYPE_IO_DEFAULT = 0, + PULL_TYPE_IO_1V8_ONLY = 1, + PULL_TYPE_MAX = 2, }; -struct ec_params_motion_sense { - uint8_t cmd; - union { - struct { - uint8_t max_sensor_count; - } dump; - struct { - int16_t data; - } kb_wake_angle; - struct { - uint8_t sensor_num; - } info; - struct { - uint8_t sensor_num; - } info_3; - struct { - uint8_t sensor_num; - } data; - struct { - uint8_t sensor_num; - } fifo_flush; - struct { - uint8_t sensor_num; - } perform_calib; - struct { - uint8_t sensor_num; - } list_activities; - struct { - uint8_t sensor_num; - uint8_t roundup; - uint16_t reserved; - int32_t data; - } ec_rate; - struct { - uint8_t sensor_num; - uint8_t roundup; - uint16_t reserved; - int32_t data; - } sensor_odr; - struct { - uint8_t sensor_num; - uint8_t roundup; - uint16_t reserved; - int32_t data; - } sensor_range; - struct { - uint8_t sensor_num; - uint16_t flags; - int16_t temp; - int16_t offset[3]; - } __attribute__((packed)) sensor_offset; - struct { - uint8_t sensor_num; - uint16_t flags; - int16_t temp; - uint16_t scale[3]; - } __attribute__((packed)) sensor_scale; - struct { - uint32_t max_data_vector; - } fifo_read; - struct ec_motion_sense_activity set_activity; - struct { - int8_t enable; - } fifo_int_enable; - struct { - uint8_t sensor_id; - uint8_t spoof_enable; - uint8_t reserved; - int16_t components[3]; - } __attribute__((packed)) spoof; - struct { - int16_t lid_angle; - int16_t hys_degree; - } tablet_mode_threshold; - }; -} __attribute__((packed)); +struct rockchip_pinctrl; -struct ec_response_motion_sensor_data { - uint8_t flags; - uint8_t sensor_num; - union { - int16_t data[3]; - struct { - uint16_t reserved; - uint32_t timestamp; - } __attribute__((packed)); - struct { - uint8_t activity; - uint8_t state; - int16_t add_info[2]; - }; - }; +struct rockchip_gpio_regs; + +struct rockchip_pin_bank { + struct device *dev; + void *reg_base; + struct regmap *regmap_pull; + struct clk *clk; + struct clk *db_clk; + int irq; + u32 saved_masks; + u32 pin_base; + u8 nr_pins; + char *name; + u8 bank_num; + struct rockchip_iomux iomux[4]; + struct rockchip_drv drv[4]; + enum rockchip_pin_pull_type pull_type[4]; + bool valid; + struct device_node *of_node; + struct rockchip_pinctrl *drvdata; + struct irq_domain *domain; + struct gpio_chip gpio_chip; + struct pinctrl_gpio_range grange; + raw_spinlock_t slock; + const struct rockchip_gpio_regs *gpio_regs; + u32 gpio_type; + u32 toggle_edge_mode; + u32 recalced_mask; + u32 route_mask; + struct list_head deferred_pins; + struct mutex deferred_lock; }; -struct ec_response_motion_sense_fifo_info { - uint16_t size; - uint16_t count; - uint32_t timestamp; - uint16_t total_lost; - uint16_t lost[0]; -} __attribute__((packed)); +struct rockchip_pin_group; -struct ec_response_motion_sense_fifo_data { - uint32_t number_data; - struct ec_response_motion_sensor_data data[0]; +struct rockchip_pmx_func; + +struct rockchip_pinctrl { + struct regmap *regmap_base; + int reg_size; + struct regmap *regmap_pull; + struct regmap *regmap_pmu; + struct device *dev; + struct rockchip_pin_ctrl *ctrl; + struct pinctrl_desc pctl; + struct pinctrl_dev *pctl_dev; + struct rockchip_pin_group *groups; + unsigned int ngroups; + struct rockchip_pmx_func *functions; + unsigned int nfunctions; }; -struct ec_response_motion_sense { - union { - struct { - uint8_t module_flags; - uint8_t sensor_count; - struct { - struct {} __empty_sensor; - struct ec_response_motion_sensor_data sensor[0]; - }; - } dump; - struct { - uint8_t type; - uint8_t location; - uint8_t chip; - } info; - struct { - uint8_t type; - uint8_t location; - uint8_t chip; - uint32_t min_frequency; - uint32_t max_frequency; - uint32_t fifo_max_event_count; - } info_3; - struct ec_response_motion_sensor_data data; - struct { - int32_t ret; - } ec_rate; - struct { - int32_t ret; - } sensor_odr; - struct { - int32_t ret; - } sensor_range; - struct { - int32_t ret; - } kb_wake_angle; - struct { - int32_t ret; - } fifo_int_enable; - struct { - int32_t ret; - } spoof; - struct { - int16_t temp; - int16_t offset[3]; - } sensor_offset; - struct { - int16_t temp; - int16_t offset[3]; - } perform_calib; - struct { - int16_t temp; - uint16_t scale[3]; - } sensor_scale; - struct ec_response_motion_sense_fifo_info fifo_info; - struct ec_response_motion_sense_fifo_info fifo_flush; - struct ec_response_motion_sense_fifo_data fifo_read; - struct { - uint16_t reserved; - uint32_t enabled; - uint32_t disabled; - } __attribute__((packed)) list_activities; - struct { - uint16_t value; - } lid_angle; - struct { - uint16_t lid_angle; - uint16_t hys_degree; - } tablet_mode_threshold; - }; +struct rockchip_pin_config; + +struct rockchip_pin_group { + const char *name; + unsigned int npins; + unsigned int *pins; + struct rockchip_pin_config *data; }; -struct ec_host_request { - uint8_t struct_version; - uint8_t checksum; - uint16_t command; - uint8_t command_version; - uint8_t reserved; - uint16_t data_len; +struct rockchip_pin_config { + unsigned int func; + unsigned long *configs; + unsigned int nconfigs; }; -struct ec_response_get_protocol_info { - uint32_t protocol_versions; - uint16_t max_request_packet_size; - uint16_t max_response_packet_size; - uint32_t flags; +struct rockchip_pmx_func { + const char *name; + const char **groups; + u8 ngroups; }; -struct ec_params_hello { - uint32_t in_data; +struct rockchip_gpio_regs { + u32 port_dr; + u32 port_ddr; + u32 int_en; + u32 int_mask; + u32 int_type; + u32 int_polarity; + u32 int_bothedge; + u32 int_status; + u32 int_rawstatus; + u32 debounce; + u32 dbclk_div_en; + u32 dbclk_div_con; + u32 port_eoi; + u32 ext_port; + u32 version_id; }; -struct ec_response_hello { - uint32_t out_data; +struct rockchip_mux_recalced_data { + u8 num; + u8 pin; + u32 reg; + u8 bit; + u8 mask; }; -struct ec_params_get_cmd_versions { - uint8_t cmd; +enum rockchip_mux_route_location { + ROCKCHIP_ROUTE_SAME = 0, + ROCKCHIP_ROUTE_PMU = 1, + ROCKCHIP_ROUTE_GRF = 2, }; -struct ec_response_get_cmd_versions { - uint32_t version_mask; +struct rockchip_mux_route_data { + u8 bank_num; + u8 pin; + u8 func; + enum rockchip_mux_route_location route_location; + u32 route_offset; + u32 route_val; }; -struct ec_response_host_event_mask { - uint32_t mask; +struct rockchip_pin_deferred { + struct list_head head; + unsigned int pin; + enum pin_config_param param; + u32 arg; }; -union ec_response_get_next_data_v1 { - uint8_t key_matrix[16]; - uint32_t host_event; - uint64_t host_event64; - struct { - uint8_t reserved[3]; - struct ec_response_motion_sense_fifo_info info; - } sensor_fifo; - uint32_t buttons; - uint32_t switches; - uint32_t fp_events; - uint32_t sysrq; - uint32_t cec_events; - uint8_t cec_message[16]; +struct plgpio_regs { + u32 enb; + u32 wdata; + u32 dir; + u32 rdata; + u32 ie; + u32 mis; + u32 eit; }; -struct ec_response_get_next_event_v1 { - uint8_t event_type; - union ec_response_get_next_data_v1 data; -} __attribute__((packed)); +struct plgpio { + spinlock_t lock; + struct regmap *regmap; + struct clk *clk; + struct gpio_chip chip; + int (*p2o)(int); + int (*o2p)(int); + u32 p2o_regs; + struct plgpio_regs regs; + struct plgpio_regs *csave_regs; +}; -struct cros_ec_device { - const char *phys_name; - struct device *dev; - struct class *cros_class; - int (*cmd_readmem)(struct cros_ec_device *, unsigned int, unsigned int, void *); - u16 max_request; - u16 max_response; - u16 max_passthru; - u16 proto_version; - void *priv; - int irq; - u8 *din; - u8 *dout; - int din_size; - int dout_size; - bool wake_enabled; - bool suspended; - int (*cmd_xfer)(struct cros_ec_device *, struct cros_ec_command *); - int (*pkt_xfer)(struct cros_ec_device *, struct cros_ec_command *); - struct lock_class_key lockdep_key; +struct gpio { + unsigned int gpio; + unsigned long flags; + const char *label; +}; + +struct pcf857x { + struct gpio_chip chip; + struct i2c_client *client; struct mutex lock; - u8 mkbp_event_supported; - bool host_sleep_v1; - struct blocking_notifier_head event_notifier; - struct ec_response_get_next_event_v1 event_data; - int event_size; - u32 host_event_wake_mask; - u32 last_resume_result; - u16 suspend_timeout_ms; - long: 32; - ktime_t last_event_time; - struct notifier_block notifier_ready; - struct platform_device *ec; - struct platform_device *pd; - struct blocking_notifier_head panic_notifier; + unsigned int out; + unsigned int status; + unsigned int irq_enabled; + int (*write)(struct i2c_client *, unsigned int); + int (*read)(struct i2c_client *); +}; + +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, }; -struct ec_response_get_comms_status { - uint32_t flags; +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, }; -struct cros_ec_debugfs; +enum { + SWITCHTEC_NTB_REG_INFO_OFFSET = 0, + SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384, + SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600, +}; -struct ec_response_get_features { - uint32_t flags[2]; +struct ntb_ctrl_regs { + u32 partition_status; + u32 partition_op; + u32 partition_ctrl; + u32 bar_setup; + u32 bar_error; + u16 lut_table_entries; + u16 lut_table_offset; + u32 lut_error; + u16 req_id_table_size; + u16 req_id_table_offset; + u32 req_id_error; + u32 reserved1[7]; + struct { + u32 ctl; + u32 win_size; + u64 xlate_addr; + } bar_entry[6]; + struct { + u32 win_size; + u32 reserved[3]; + } bar_ext_entry[6]; + u32 reserved2[192]; + u32 req_id_table[512]; + u32 reserved3[256]; + u64 lut_entry[512]; }; -struct cros_ec_dev { - struct device class_dev; - struct cros_ec_device *ec_dev; - struct device *dev; - struct cros_ec_debugfs *debug_info; - bool has_kb_wake_angle; - u16 cmd_offset; - struct ec_response_get_features features; +struct nt_partition_info { + u32 xlink_enabled; + u32 target_part_low; + u32 target_part_high; + u32 reserved; }; -struct optee_rpc_param; +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]; +}; -typedef void (*btf_trace_optee_invoke_fn_begin)(void *, struct optee_rpc_param *); +struct pxa1928_clk_unit { + struct mmp_clk_unit unit; + void *mpmu_base; + void *apmu_base; + void *apbc_base; + void *apbcp_base; +}; -struct optee_rpc_param { - u32 a0; - u32 a1; - u32 a2; - u32 a3; - u32 a4; - u32 a5; - u32 a6; - u32 a7; +enum clk_ids { + LAST_DT_CORE_CLK = 5, + CLK_EXTAL = 6, + CLK_MAIN = 7, + CLK_PLL = 8, + MOD_CLK_BASE = 9, }; -typedef void (*btf_trace_optee_invoke_fn_end)(void *, struct optee_rpc_param *, struct arm_smccc_res *); +struct r9a06g032_priv { + struct clk_onecell_data data; + spinlock_t lock; + void *reg; +}; -struct trace_event_raw_optee_invoke_fn_begin { - struct trace_entry ent; - void *param; - u32 args[8]; - char __data[0]; +enum gate_type { + K_GATE = 0, + K_FFC = 1, + K_DIV = 2, + K_BITSEL = 3, + K_DUALGATE = 4, }; -struct trace_event_raw_optee_invoke_fn_end { - struct trace_entry ent; - void *param; - unsigned long rets[4]; - char __data[0]; +struct regbit { + u16 bit: 5; + u16 reg: 11; }; -struct optee_smc_call_get_os_revision_result { - unsigned long major; - unsigned long minor; - unsigned long build_id; - unsigned long reserved1; +struct r9a06g032_gate { + struct regbit gate; + struct regbit reset; + struct regbit ready; + struct regbit midle; }; -struct optee_smc_calls_revision_result { - unsigned long major; - unsigned long minor; - unsigned long reserved0; - unsigned long reserved1; +struct r9a06g032_clkdesc { + const char *name; + uint32_t managed: 1; + enum gate_type type: 3; + uint32_t index: 8; + uint32_t source: 8; + union { + struct r9a06g032_gate gate; + struct { + unsigned int min: 10; + unsigned int max: 10; + unsigned int reg: 10; + u16 table[4]; + } div; + struct { + u16 div; + u16 mul; + } ffc; + struct { + uint16_t group: 1; + struct regbit sel; + struct regbit g1; + struct regbit r1; + struct regbit g2; + struct regbit r2; + } dual; + }; }; -struct optee_smc_exchange_capabilities_result { - unsigned long status; - unsigned long capabilities; - unsigned long max_notif_value; - unsigned long data; +struct r9a06g032_clk_gate { + struct clk_hw hw; + struct r9a06g032_priv *clocks; + u16 index; + struct r9a06g032_gate gate; }; -struct optee_smc_get_shm_config_result { - unsigned long status; - unsigned long start; - unsigned long size; - unsigned long settings; +struct r9a06g032_clk_div { + struct clk_hw hw; + struct r9a06g032_priv *clocks; + u16 index; + u16 reg; + u16 min; + u16 max; + u8 table_size; + u16 table[8]; }; -struct optee_smc_disable_shm_cache_result { - unsigned long status; - unsigned long shm_upper32; - unsigned long shm_lower32; - unsigned long reserved0; +struct r9a06g032_clk_bitsel { + struct clk_hw hw; + struct r9a06g032_priv *clocks; + u16 index; + struct regbit selector; }; -struct optee_call_ctx { - void *pages_list; - size_t num_entries; +struct r9a06g032_clk_dualgate { + struct clk_hw hw; + struct r9a06g032_priv *clocks; + u16 index; + struct regbit selector; + struct r9a06g032_gate gate[2]; }; -struct trace_event_data_offsets_optee_invoke_fn_begin {}; +struct gpt_rate_tbl; -struct trace_event_data_offsets_optee_invoke_fn_end {}; +struct clk_gpt { + struct clk_hw hw; + void *reg; + struct gpt_rate_tbl *rtbl; + u8 rtbl_cnt; + spinlock_t *lock; +}; -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 gpt_rate_tbl { + u16 mscale; + u16 nscale; }; -struct phc_vclocks_reply_data { - struct ethnl_reply_data base; - int num; - int *index; +struct clkgen_pll_data; + +struct clkgen_pll_data_clks { + struct clkgen_pll_data *data; + const struct clkgen_clk_out *outputs; }; -struct arpreq { - struct sockaddr arp_pa; - struct sockaddr arp_ha; - int arp_flags; - struct sockaddr arp_netmask; - char arp_dev[16]; +struct clkgen_pll_data { + struct clkgen_field pdn_status; + struct clkgen_field pdn_ctrl; + struct clkgen_field locked_status; + struct clkgen_field mdiv; + struct clkgen_field ndiv; + struct clkgen_field pdiv; + struct clkgen_field idf; + struct clkgen_field ldf; + struct clkgen_field cp; + unsigned int num_odfs; + struct clkgen_field odf[4]; + struct clkgen_field odf_gate[4]; + bool switch2pll_en; + struct clkgen_field switch2pll; + spinlock_t *lock; + const struct clk_ops *ops; }; -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 clkgen_pll { + struct clk_hw hw; + struct clkgen_pll_data *data; + void *regs_base; + spinlock_t *lock; + u32 ndiv; + u32 idf; + u32 cp; }; -enum devlink_info_version_type { - DEVLINK_INFO_VERSION_TYPE_NONE = 0, - DEVLINK_INFO_VERSION_TYPE_COMPONENT = 1, +struct stm_pll { + unsigned long mdiv; + unsigned long ndiv; + unsigned long pdiv; + unsigned long odf; + unsigned long idf; + unsigned long ldf; + unsigned long cp; }; -struct devlink_info_req { - struct sk_buff *msg; - void (*version_cb)(const char *, enum devlink_info_version_type, void *); - void *version_cb_priv; +struct sun9i_mmc_clk_data { + spinlock_t lock; + void *membase; + struct clk *clk; + struct reset_control *reset; + struct clk_onecell_data clk_data; + struct reset_controller_dev rcdev; }; -struct devlink_reload_combination { - enum devlink_reload_action action; - enum devlink_reload_limit limit; +struct tegra_clk_emc___2 { + struct clk_hw hw; + void *reg; + bool mc_same_freq; + bool want_low_jitter; + tegra20_clk_emc_round_cb *round_cb; + void *cb_arg; }; -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, +struct uniphier_clk_mux { + struct clk_hw hw; + struct regmap *regmap; + unsigned int reg; + const unsigned int *masks; + const unsigned int *vals; }; -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 edmacc_param { + u32 opt; + u32 src; + u32 a_b_cnt; + u32 dst; + u32 src_dst_bidx; + u32 link_bcntrld; + u32 src_dst_cidx; + u32 ccnt; }; -struct devlink_flash_notify { - const char *status_msg; - const char *component; - unsigned long done; - unsigned long total; - unsigned long timeout; +enum dma_event_q { + EVENTQ_0 = 0, + EVENTQ_1 = 1, + EVENTQ_2 = 2, + EVENTQ_3 = 3, + EVENTQ_DEFAULT = -1, }; -struct devlink_flash_component_lookup_ctx { - const char *lookup_name; - bool lookup_name_found; +struct edma_pset { + u32 len; + dma_addr_t addr; + struct edmacc_param param; }; -struct gssx_name_attr; +struct edma_chan; -struct gssx_name_attr_array { - u32 count; - struct gssx_name_attr *data; +struct edma_desc { + struct virt_dma_desc vdesc; + struct list_head node; + enum dma_transfer_direction direction; + int cyclic; + bool polled; + int absync; + int pset_nr; + struct edma_chan *echan; + int processed; + int processed_stat; + u32 sg_len; + u32 residue; + u32 residue_stat; + struct edma_pset pset[0]; }; -struct gssx_name_attr { - gssx_buffer attr; - gssx_buffer value; - struct gssx_option_array extensions; -}; +struct edma_cc; -struct fprop_local_single { - unsigned long events; - unsigned int period; - raw_spinlock_t lock; -}; +struct edma_tc; -struct buffer { - size_t size; - char data[0]; +struct edma_chan { + struct virt_dma_chan vchan; + struct list_head node; + struct edma_desc *edesc; + struct edma_cc *ecc; + struct edma_tc *tc; + int ch_num; + bool alloced; + bool hw_triggered; + int slot[20]; + int missed; + struct dma_slave_config cfg; }; -struct sunxi_mc_smp_nodes; +struct edma_soc_info; -struct sunxi_mc_smp_data { - const char *enable_method; - int (*get_smp_nodes)(struct sunxi_mc_smp_nodes *); - bool is_a83t; +struct edma_cc { + struct device *dev; + struct edma_soc_info *info; + void *base; + int id; + bool legacy_mode; + unsigned int num_channels; + unsigned int num_qchannels; + unsigned int num_region; + unsigned int num_slots; + unsigned int num_tc; + bool chmap_exist; + enum dma_event_q default_queue; + unsigned int ccint; + unsigned int ccerrint; + unsigned long *slot_inuse; + unsigned long *channels_mask; + struct dma_device dma_slave; + struct dma_device *dma_memcpy; + struct edma_chan *slave_chans; + struct edma_tc *tc_list; + int dummy_slot; }; -struct sunxi_mc_smp_nodes { - struct device_node *prcm_node; - struct device_node *cpucfg_node; - struct device_node *sram_node; - struct device_node *r_cpucfg_node; +struct edma_rsv_info; + +struct edma_soc_info { + enum dma_event_q default_queue; + struct edma_rsv_info *rsv; + s32 *memcpy_channels; + s8 (*queue_priority_mapping)[2]; + const s16 (*xbar_chans)[2]; + const struct dma_slave_map *slave_map; + int slavecnt; }; -typedef void (*btf_trace_module_load)(void *, struct module *); +struct edma_rsv_info { + const s16 (*rsv_chans)[2]; + const s16 (*rsv_slots)[2]; +}; -typedef void (*btf_trace_module_free)(void *, struct module *); +struct edma_tc { + struct device_node *node; + u16 id; +}; -typedef void (*btf_trace_module_get)(void *, struct module *, unsigned long); +struct meson_ee_pwrc_domain_desc; -typedef void (*btf_trace_module_put)(void *, struct module *, unsigned long); +struct meson_ee_pwrc_domain_data { + unsigned int count; + struct meson_ee_pwrc_domain_desc *domains; +}; -typedef void (*btf_trace_module_request)(void *, char *, bool, unsigned long); +struct meson_ee_pwrc_top_domain; -enum mod_license { - NOT_GPL_ONLY = 0, - GPL_ONLY = 1, -}; +struct meson_ee_pwrc_mem_domain; -struct symsearch { - const struct kernel_symbol *start; - const struct kernel_symbol *stop; - const s32 *crcs; - enum mod_license license; -}; +struct meson_ee_pwrc_domain; -enum fail_dup_mod_reason { - FAIL_DUP_MOD_BECOMING = 0, - FAIL_DUP_MOD_LOAD = 1, +struct meson_ee_pwrc_domain_desc { + char *name; + unsigned int reset_names_count; + unsigned int clk_names_count; + struct meson_ee_pwrc_top_domain *top_pd; + unsigned int mem_pd_count; + struct meson_ee_pwrc_mem_domain *mem_pd; + bool (*is_powered_off)(struct meson_ee_pwrc_domain *); }; -struct trace_event_raw_module_load { - struct trace_entry ent; - unsigned int taints; - u32 __data_loc_name; - char __data[0]; +struct meson_ee_pwrc_top_domain { + unsigned int sleep_reg; + unsigned int sleep_mask; + unsigned int iso_reg; + unsigned int iso_mask; }; -struct trace_event_raw_module_free { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; +struct meson_ee_pwrc_mem_domain { + unsigned int reg; + unsigned int mask; }; -struct trace_event_raw_module_refcnt { - struct trace_entry ent; - unsigned long ip; - int refcnt; - u32 __data_loc_name; - char __data[0]; -}; +struct meson_ee_pwrc; -struct trace_event_raw_module_request { - struct trace_entry ent; - unsigned long ip; - bool wait; - u32 __data_loc_name; - char __data[0]; +struct meson_ee_pwrc_domain { + struct generic_pm_domain base; + bool enabled; + struct meson_ee_pwrc *pwrc; + struct meson_ee_pwrc_domain_desc desc; + struct clk_bulk_data *clks; + int num_clks; + struct reset_control *rstc; + int num_rstc; + long: 32; }; -struct mod_initfree { - struct llist_node node; - void *init_text; - void *init_data; - void *init_rodata; +struct meson_ee_pwrc { + struct regmap *regmap_ao; + struct regmap *regmap_hhi; + struct meson_ee_pwrc_domain *domains; + struct genpd_onecell_data xlate; }; -struct idempotent { - const void *cookie; - struct hlist_node entry; - struct completion complete; - int ret; -}; +struct rpmpd; -struct trace_event_data_offsets_module_load { - u32 name; +struct rpmpd_desc { + struct rpmpd **rpmpds; + size_t num_pds; + unsigned int max_state; }; -struct trace_event_data_offsets_module_free { - u32 name; +struct rpmpd { + struct generic_pm_domain pd; + struct generic_pm_domain *parent; + struct rpmpd *peer; + const bool active_only; + unsigned int corner; + bool enabled; + const int res_type; + const int res_id; + struct qcom_smd_rpm *rpm; + unsigned int max_state; + __le32 key; + bool state_synced; + long: 32; }; -struct trace_event_data_offsets_module_refcnt { - u32 name; +struct rpmpd_req { + __le32 key; + __le32 nbytes; + __le32 value; }; -struct trace_event_data_offsets_module_request { - u32 name; +struct fixed_dev_type { + bool has_enable_clock; + bool has_performance_state; }; -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 fixed_voltage_data { + struct regulator_desc desc; + struct regulator_dev *dev; + struct clk *enable_clock; + unsigned int enable_counter; + int performance_state; }; -struct trace_bprintk_fmt { - struct list_head list; - const char *fmt; +enum max77802_regulators { + MAX77802_BUCK1 = 0, + MAX77802_BUCK2 = 1, + MAX77802_BUCK3 = 2, + MAX77802_BUCK4 = 3, + MAX77802_BUCK5 = 4, + MAX77802_BUCK6 = 5, + MAX77802_BUCK7 = 6, + MAX77802_BUCK8 = 7, + MAX77802_BUCK9 = 8, + MAX77802_BUCK10 = 9, + MAX77802_LDO1 = 10, + MAX77802_LDO2 = 11, + MAX77802_LDO3 = 12, + MAX77802_LDO4 = 13, + MAX77802_LDO5 = 14, + MAX77802_LDO6 = 15, + MAX77802_LDO7 = 16, + MAX77802_LDO8 = 17, + MAX77802_LDO9 = 18, + MAX77802_LDO10 = 19, + MAX77802_LDO11 = 20, + MAX77802_LDO12 = 21, + MAX77802_LDO13 = 22, + MAX77802_LDO14 = 23, + MAX77802_LDO15 = 24, + MAX77802_LDO17 = 25, + MAX77802_LDO18 = 26, + MAX77802_LDO19 = 27, + MAX77802_LDO20 = 28, + MAX77802_LDO21 = 29, + MAX77802_LDO23 = 30, + MAX77802_LDO24 = 31, + MAX77802_LDO25 = 32, + MAX77802_LDO26 = 33, + MAX77802_LDO27 = 34, + MAX77802_LDO28 = 35, + MAX77802_LDO29 = 36, + MAX77802_LDO30 = 37, + MAX77802_LDO32 = 38, + MAX77802_LDO33 = 39, + MAX77802_LDO34 = 40, + MAX77802_LDO35 = 41, + MAX77802_REG_MAX = 42, }; -enum bpf_audit { - BPF_AUDIT_LOAD = 0, - BPF_AUDIT_UNLOAD = 1, - BPF_AUDIT_MAX = 2, +struct max77802_regulator_prv { + unsigned int opmode[42]; }; -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, +struct uniphier_regulator_soc_data { + int nclks; + const char * const *clock_names; + int nrsts; + const char * const *reset_names; + const struct regulator_desc *desc; + const struct regmap_config *regconf; }; -enum bpf_stats_type { - BPF_STATS_RUN_TIME = 0, +struct uniphier_regulator_priv { + struct clk_bulk_data clk[2]; + struct reset_control *rst[2]; + const struct uniphier_regulator_soc_data *data; }; -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_tramp_link { - struct bpf_link link; - struct hlist_node tramp_hlist; - u64 cookie; +struct vc_selection { + struct mutex lock; + struct vc_data *cons; + char *buffer; + unsigned int buf_len; + volatile int start; + int end; }; -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 owl_uart_port { + struct uart_port port; + struct clk *clk; long: 32; }; -struct bpf_raw_tp_link { - struct bpf_link link; - struct bpf_raw_event_map *btp; - long: 32; +struct owl_uart_info { + unsigned int tx_fifosize; }; -struct bpf_perf_link { - struct bpf_link link; - struct file *perf_file; - long: 32; +struct bcm2835_rng_of_data { + bool mask_interrupts; }; -struct bpf_prog_kstats { - u64 nsecs; - u64 cnt; - u64 misses; +struct bcm2835_rng_priv { + struct hwrng rng; + void *base; + bool mask_interrupts; + struct clk *clk; + struct reset_control *reset; }; -struct bpf_btf_info { - __u64 btf; - __u32 btf_size; - __u32 id; - __u64 name; - __u32 name_len; - __u32 kernel_btf; -}; +struct iova_magazine; -struct bpf_tramp_run_ctx { - struct bpf_run_ctx run_ctx; - u64 bpf_cookie; - struct bpf_run_ctx *saved_run_ctx; - long: 32; +struct iova_cpu_rcache { + spinlock_t lock; + struct iova_magazine *loaded; + struct iova_magazine *prev; }; -typedef void (*btf_trace_vm_unmapped_area)(void *, unsigned long, struct vm_unmapped_area_info *); +struct iova_magazine { + union { + unsigned long size; + struct iova_magazine *next; + }; + unsigned long pfns[127]; +}; -typedef void (*btf_trace_vma_mas_szero)(void *, struct maple_tree *, unsigned long, unsigned long); +struct iova_rcache { + spinlock_t lock; + unsigned int depot_size; + struct iova_magazine *depot; + struct iova_cpu_rcache __attribute__((btf_type_tag("percpu"))) *cpu_rcaches; + struct iova_domain *iovad; + struct delayed_work work; +}; -typedef void (*btf_trace_vma_store)(void *, struct maple_tree *, struct vm_area_struct *); +struct drm_auth { + drm_magic_t magic; +}; -typedef void (*btf_trace_exit_mmap)(void *, struct mm_struct *); +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, +}; -struct mmap_arg_struct { - unsigned long addr; - unsigned long len; - unsigned long prot; - unsigned long flags; - unsigned long fd; - unsigned long offset; +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, }; -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]; +enum mipi_dsi_dcs_tear_mode { + MIPI_DSI_DCS_TEAR_MODE_VBLANK = 0, + MIPI_DSI_DCS_TEAR_MODE_VHBLANK = 1, }; -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 drm_dsc_rc_range_parameters { + u8 range_min_qp; + u8 range_max_qp; + u8 range_bpg_offset; }; -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 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 trace_event_raw_exit_mmap { - struct trace_entry ent; - struct mm_struct *mm; - struct maple_tree *mt; - char __data[0]; +struct mipi_dsi_device_info { + char type[20]; + u32 channel; + struct device_node *node; }; -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 mipi_dsi_packet { + size_t size; + u8 header[4]; + size_t payload_length; + const u8 *payload; }; -struct hstate {}; +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 trace_event_data_offsets_vm_unmapped_area {}; +typedef void (*hdmi_codec_plugged_cb)(struct device *, bool); -struct trace_event_data_offsets_vma_mas_szero {}; +struct hdmi_codec_daifmt; -struct trace_event_data_offsets_vma_store {}; +struct hdmi_codec_params; -struct trace_event_data_offsets_exit_mmap {}; +struct snd_soc_component; -enum umount_tree_flags { - UMOUNT_SYNC = 1, - UMOUNT_PROPAGATE = 2, - UMOUNT_CONNECTED = 4, +struct hdmi_codec_ops { + int (*audio_startup)(struct device *, void *); + int (*hw_params)(struct device *, void *, struct hdmi_codec_daifmt *, struct hdmi_codec_params *); + int (*prepare)(struct device *, void *, struct hdmi_codec_daifmt *, struct hdmi_codec_params *); + void (*audio_shutdown)(struct device *, void *); + int (*mute_stream)(struct device *, void *, bool, int); + int (*get_eld)(struct device *, void *, uint8_t *, size_t); + int (*get_dai_id)(struct snd_soc_component *, struct device_node *); + int (*hook_plugged_cb)(struct device *, void *, hdmi_codec_plugged_cb, struct device *); + unsigned int no_capture_mute: 1; }; -enum mnt_tree_flags_t { - MNT_TREE_MOVE = 1, - MNT_TREE_BENEATH = 2, +typedef int snd_pcm_format_t; + +struct hdmi_codec_daifmt { + enum { + HDMI_I2S = 0, + HDMI_RIGHT_J = 1, + HDMI_LEFT_J = 2, + HDMI_DSP_A = 3, + HDMI_DSP_B = 4, + HDMI_AC97 = 5, + HDMI_SPDIF = 6, + } fmt; + unsigned int bit_clk_inv: 1; + unsigned int frame_clk_inv: 1; + unsigned int bit_clk_provider: 1; + unsigned int frame_clk_provider: 1; + snd_pcm_format_t bit_fmt; }; -struct mount_attr { - __u64 attr_set; - __u64 attr_clr; - __u64 propagation; - __u64 userns_fd; +struct snd_aes_iec958 { + unsigned char status[24]; + unsigned char subcode[147]; + unsigned char pad; + unsigned char dig_subframe[4]; }; -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 hdmi_codec_params { + struct hdmi_audio_infoframe cea; + struct snd_aes_iec958 iec; + int sample_rate; + int sample_width; + int channels; }; -struct proc_mounts { - struct mnt_namespace *ns; - struct path root; - int (*show)(struct seq_file *, struct vfsmount *); - struct mount cursor; +enum snd_soc_bias_level { + SND_SOC_BIAS_OFF = 0, + SND_SOC_BIAS_STANDBY = 1, + SND_SOC_BIAS_PREPARE = 2, + SND_SOC_BIAS_ON = 3, }; -typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int); +struct snd_soc_card; -typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *); +struct snd_soc_dapm_widget; -typedef void (*btf_trace_jbd2_commit_locking)(void *, journal_t *, transaction_t *); +struct snd_soc_dapm_context { + enum snd_soc_bias_level bias_level; + unsigned int idle_bias_off: 1; + unsigned int suspend_bias_off: 1; + struct device *dev; + struct snd_soc_component *component; + struct snd_soc_card *card; + enum snd_soc_bias_level target_bias_level; + struct list_head list; + struct snd_soc_dapm_widget *wcache_sink; + struct snd_soc_dapm_widget *wcache_source; + struct dentry *debugfs_dapm; +}; -typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *); +struct snd_soc_component_driver; -typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *); +struct snd_pcm_substream; -typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *); +struct snd_compr_stream; -typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *); +struct snd_soc_component { + const char *name; + int id; + const char *name_prefix; + struct device *dev; + struct snd_soc_card *card; + unsigned int active; + unsigned int suspended: 1; + struct list_head list; + struct list_head card_aux_list; + struct list_head card_list; + const struct snd_soc_component_driver *driver; + struct list_head dai_list; + int num_dai; + struct regmap *regmap; + int val_bytes; + struct mutex io_mutex; + struct list_head dobj_list; + struct snd_soc_dapm_context dapm; + int (*init)(struct snd_soc_component *); + void *mark_module; + struct snd_pcm_substream *mark_open; + struct snd_pcm_substream *mark_hw_params; + struct snd_pcm_substream *mark_trigger; + struct snd_compr_stream *mark_compr_open; + void *mark_pm; + struct dentry *debugfs_root; + const char *debugfs_prefix; +}; -typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *); +enum snd_soc_pcm_subclass { + SND_SOC_PCM_CLASS_PCM = 0, + SND_SOC_PCM_CLASS_BE = 1, +}; -typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, tid_t, unsigned int, unsigned int, int); +struct snd_soc_dapm_stats { + int power_checks; + int path_checks; + int neighbour_checks; +}; -typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int); +struct snd_card; -typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int); +struct snd_soc_dai_link; -typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int); +struct snd_soc_codec_conf; -typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); +struct snd_soc_aux_dev; -typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); +struct snd_kcontrol_new; -typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, unsigned long, unsigned long); +struct snd_soc_dapm_route; -typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t); +struct snd_soc_dapm_update; -typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, unsigned long); +struct snd_soc_card { + const char *name; + const char *long_name; + const char *driver_name; + const char *components; + char dmi_longname[80]; + unsigned short pci_subsystem_vendor; + unsigned short pci_subsystem_device; + bool pci_subsystem_set; + char topology_shortname[32]; + struct device *dev; + struct snd_card *snd_card; + struct module *owner; + struct mutex mutex; + struct mutex dapm_mutex; + struct mutex pcm_mutex; + enum snd_soc_pcm_subclass pcm_subclass; + int (*probe)(struct snd_soc_card *); + int (*late_probe)(struct snd_soc_card *); + void (*fixup_controls)(struct snd_soc_card *); + int (*remove)(struct snd_soc_card *); + int (*suspend_pre)(struct snd_soc_card *); + int (*suspend_post)(struct snd_soc_card *); + int (*resume_pre)(struct snd_soc_card *); + int (*resume_post)(struct snd_soc_card *); + int (*set_bias_level)(struct snd_soc_card *, struct snd_soc_dapm_context *, enum snd_soc_bias_level); + int (*set_bias_level_post)(struct snd_soc_card *, struct snd_soc_dapm_context *, enum snd_soc_bias_level); + int (*add_dai_link)(struct snd_soc_card *, struct snd_soc_dai_link *); + void (*remove_dai_link)(struct snd_soc_card *, struct snd_soc_dai_link *); + long pmdown_time; + struct snd_soc_dai_link *dai_link; + int num_links; + struct list_head rtd_list; + int num_rtd; + struct snd_soc_codec_conf *codec_conf; + int num_configs; + struct snd_soc_aux_dev *aux_dev; + int num_aux_devs; + struct list_head aux_comp_list; + const struct snd_kcontrol_new *controls; + int num_controls; + const struct snd_soc_dapm_widget *dapm_widgets; + int num_dapm_widgets; + const struct snd_soc_dapm_route *dapm_routes; + int num_dapm_routes; + const struct snd_soc_dapm_widget *of_dapm_widgets; + int num_of_dapm_widgets; + const struct snd_soc_dapm_route *of_dapm_routes; + int num_of_dapm_routes; + struct list_head component_dev_list; + struct list_head list; + struct list_head widgets; + struct list_head paths; + struct list_head dapm_list; + struct list_head dapm_dirty; + struct list_head dobj_list; + struct snd_soc_dapm_context dapm; + struct snd_soc_dapm_stats dapm_stats; + struct snd_soc_dapm_update *update; + struct dentry *debugfs_card_root; + struct work_struct deferred_resume_work; + u32 pop_time; + unsigned int instantiated: 1; + unsigned int topology_shortname_created: 1; + unsigned int fully_routed: 1; + unsigned int disable_route_checks: 1; + unsigned int probed: 1; + unsigned int component_chaining: 1; + void *drvdata; +}; -typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, unsigned long, unsigned long); +struct snd_shutdown_f_ops; -typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, unsigned long, unsigned long); +struct snd_info_entry; -typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, unsigned long, unsigned long, unsigned long); +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; + long: 32; + 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; + long: 32; +}; -typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, unsigned long, tid_t); +struct snd_info_buffer; -struct trace_event_raw_jbd2_checkpoint { - struct trace_entry ent; - dev_t dev; - int result; - char __data[0]; +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 trace_event_raw_jbd2_commit { - struct trace_entry ent; - dev_t dev; - char sync_commit; - tid_t transaction; - char __data[0]; -}; +struct snd_info_entry_ops; -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 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 trace_event_raw_jbd2_submit_inode_data { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; +struct snd_info_buffer { + char *buffer; + unsigned int curr; + unsigned int size; + unsigned int len; + int stop; + int error; }; -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 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 *); }; -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]; +enum snd_soc_dapm_type { + snd_soc_dapm_input = 0, + snd_soc_dapm_output = 1, + snd_soc_dapm_mux = 2, + snd_soc_dapm_demux = 3, + snd_soc_dapm_mixer = 4, + snd_soc_dapm_mixer_named_ctl = 5, + snd_soc_dapm_pga = 6, + snd_soc_dapm_out_drv = 7, + snd_soc_dapm_adc = 8, + snd_soc_dapm_dac = 9, + snd_soc_dapm_micbias = 10, + snd_soc_dapm_mic = 11, + snd_soc_dapm_hp = 12, + snd_soc_dapm_spk = 13, + snd_soc_dapm_line = 14, + snd_soc_dapm_switch = 15, + snd_soc_dapm_vmid = 16, + snd_soc_dapm_pre = 17, + snd_soc_dapm_post = 18, + snd_soc_dapm_supply = 19, + snd_soc_dapm_pinctrl = 20, + snd_soc_dapm_regulator_supply = 21, + snd_soc_dapm_clock_supply = 22, + snd_soc_dapm_aif_in = 23, + snd_soc_dapm_aif_out = 24, + snd_soc_dapm_siggen = 25, + snd_soc_dapm_sink = 26, + snd_soc_dapm_dai_in = 27, + snd_soc_dapm_dai_out = 28, + snd_soc_dapm_dai_link = 29, + snd_soc_dapm_kcontrol = 30, + snd_soc_dapm_buffer = 31, + snd_soc_dapm_scheduler = 32, + snd_soc_dapm_effect = 33, + snd_soc_dapm_src = 34, + snd_soc_dapm_asrc = 35, + snd_soc_dapm_encoder = 36, + snd_soc_dapm_decoder = 37, + SND_SOC_DAPM_TYPE_COUNT = 38, }; -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]; +enum snd_soc_dobj_type { + SND_SOC_DOBJ_NONE = 0, + SND_SOC_DOBJ_MIXER = 1, + SND_SOC_DOBJ_BYTES = 2, + SND_SOC_DOBJ_ENUM = 3, + SND_SOC_DOBJ_GRAPH = 4, + SND_SOC_DOBJ_WIDGET = 5, + SND_SOC_DOBJ_DAI_LINK = 6, + SND_SOC_DOBJ_PCM = 7, + SND_SOC_DOBJ_CODEC_LINK = 8, + SND_SOC_DOBJ_BACKEND_LINK = 9, }; -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 snd_kcontrol; -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 snd_soc_dobj_control { + struct snd_kcontrol *kcontrol; + char **dtexts; + unsigned long *dvalues; }; -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 snd_soc_dobj_widget { + unsigned int *kcontrol_type; }; -struct trace_event_raw_jbd2_write_superblock { - struct trace_entry ent; - dev_t dev; - blk_opf_t write_flags; - char __data[0]; +struct snd_soc_dobj { + enum snd_soc_dobj_type type; + unsigned int index; + struct list_head list; + int (*unload)(struct snd_soc_component *, struct snd_soc_dobj *); + union { + struct snd_soc_dobj_control control; + struct snd_soc_dobj_widget widget; + }; + void *private; }; -struct trace_event_raw_jbd2_lock_buffer_stall { - struct trace_entry ent; - dev_t dev; - unsigned long stall_ms; - char __data[0]; +struct snd_soc_dapm_widget { + enum snd_soc_dapm_type id; + const char *name; + const char *sname; + struct list_head list; + struct snd_soc_dapm_context *dapm; + void *priv; + struct regulator *regulator; + struct pinctrl *pinctrl; + int reg; + unsigned char shift; + unsigned int mask; + unsigned int on_val; + unsigned int off_val; + unsigned char power: 1; + unsigned char active: 1; + unsigned char connected: 1; + unsigned char new: 1; + unsigned char force: 1; + unsigned char ignore_suspend: 1; + unsigned char new_power: 1; + unsigned char power_checked: 1; + unsigned char is_supply: 1; + unsigned char is_ep: 2; + unsigned char no_wname_in_kcontrol_name: 1; + int subseq; + int (*power_check)(struct snd_soc_dapm_widget *); + unsigned short event_flags; + int (*event)(struct snd_soc_dapm_widget *, struct snd_kcontrol *, int); + int num_kcontrols; + const struct snd_kcontrol_new *kcontrol_news; + struct snd_kcontrol **kcontrols; + struct snd_soc_dobj dobj; + struct list_head edges[2]; + struct list_head work_list; + struct list_head power_list; + struct list_head dirty; + int endpoints[2]; + struct clk *clk; + int channel; }; -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]; -}; +typedef int snd_kcontrol_tlv_rw_t(struct snd_kcontrol *, int, unsigned int, unsigned int __attribute__((btf_type_tag("user"))) *); -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]; -}; +typedef int snd_ctl_elem_iface_t; -struct trace_event_raw_jbd2_shrink_checkpoint_list { - struct trace_entry ent; - dev_t dev; - tid_t first_tid; - tid_t tid; - tid_t last_tid; - unsigned long nr_freed; - tid_t next_tid; - char __data[0]; +struct 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 trace_event_data_offsets_jbd2_checkpoint {}; +struct snd_ctl_elem_info; -struct trace_event_data_offsets_jbd2_commit {}; +typedef int snd_kcontrol_info_t(struct snd_kcontrol *, struct snd_ctl_elem_info *); -struct trace_event_data_offsets_jbd2_end_commit {}; +struct snd_ctl_elem_value; -struct trace_event_data_offsets_jbd2_submit_inode_data {}; +typedef int snd_kcontrol_get_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); -struct trace_event_data_offsets_jbd2_handle_start_class {}; +typedef int snd_kcontrol_put_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); -struct trace_event_data_offsets_jbd2_handle_extend {}; +struct snd_ctl_file; -struct trace_event_data_offsets_jbd2_handle_stats {}; +struct snd_kcontrol_volatile { + struct snd_ctl_file *owner; + unsigned int access; +}; -struct trace_event_data_offsets_jbd2_run_stats {}; +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]; +}; -struct trace_event_data_offsets_jbd2_checkpoint_stats {}; +typedef int snd_ctl_elem_type_t; -struct trace_event_data_offsets_jbd2_update_log_tail {}; +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; + long: 32; + } enumerated; + unsigned char reserved[128]; + } value; + unsigned char reserved[64]; +}; -struct trace_event_data_offsets_jbd2_write_superblock {}; +struct snd_ctl_elem_value { + struct snd_ctl_elem_id id; + unsigned int indirect: 1; + long: 32; + 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 trace_event_data_offsets_jbd2_lock_buffer_stall {}; +struct snd_fasync; -struct trace_event_data_offsets_jbd2_journal_shrink {}; +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 trace_event_data_offsets_jbd2_shrink_scan_exit {}; +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 trace_event_data_offsets_jbd2_shrink_checkpoint_list {}; +enum snd_soc_dpcm_trigger { + SND_SOC_DPCM_TRIGGER_PRE = 0, + SND_SOC_DPCM_TRIGGER_POST = 1, + SND_SOC_DPCM_TRIGGER_BESPOKE = 2, +}; -struct jbd2_stats_proc_session { - journal_t *journal; - struct transaction_stats_s *stats; - int start; - int max; +enum snd_soc_trigger_order { + SND_SOC_TRIGGER_ORDER_DEFAULT = 0, + SND_SOC_TRIGGER_ORDER_LDC = 1, + SND_SOC_TRIGGER_ORDER_MAX = 2, }; -struct tracefs_dir_ops { - int (*mkdir)(const char *); - int (*rmdir)(const char *); +struct snd_soc_dai_link_component; + +struct snd_soc_dai_link_codec_ch_map; + +struct snd_soc_pcm_stream; + +struct snd_soc_pcm_runtime; + +struct snd_pcm_hw_params; + +struct snd_soc_ops; + +struct snd_soc_compr_ops; + +struct snd_soc_dai_link { + const char *name; + const char *stream_name; + struct snd_soc_dai_link_component *cpus; + unsigned int num_cpus; + struct snd_soc_dai_link_component *codecs; + unsigned int num_codecs; + struct snd_soc_dai_link_codec_ch_map *codec_ch_maps; + struct snd_soc_dai_link_component *platforms; + unsigned int num_platforms; + int id; + const struct snd_soc_pcm_stream *c2c_params; + unsigned int num_c2c_params; + unsigned int dai_fmt; + enum snd_soc_dpcm_trigger trigger[2]; + int (*init)(struct snd_soc_pcm_runtime *); + void (*exit)(struct snd_soc_pcm_runtime *); + int (*be_hw_params_fixup)(struct snd_soc_pcm_runtime *, struct snd_pcm_hw_params *); + const struct snd_soc_ops *ops; + const struct snd_soc_compr_ops *compr_ops; + enum snd_soc_trigger_order trigger_start; + enum snd_soc_trigger_order trigger_stop; + unsigned int nonatomic: 1; + unsigned int playback_only: 1; + unsigned int capture_only: 1; + unsigned int ignore_suspend: 1; + unsigned int symmetric_rate: 1; + unsigned int symmetric_channels: 1; + unsigned int symmetric_sample_bits: 1; + unsigned int no_pcm: 1; + unsigned int dynamic: 1; + unsigned int dpcm_capture: 1; + unsigned int dpcm_playback: 1; + unsigned int dpcm_merged_format: 1; + unsigned int dpcm_merged_chan: 1; + unsigned int dpcm_merged_rate: 1; + unsigned int ignore_pmdown_time: 1; + unsigned int ignore: 1; }; -struct tracefs_mount_opts { - kuid_t uid; - kgid_t gid; - umode_t mode; - unsigned int opts; +struct snd_soc_dai_link_component { + const char *name; + struct device_node *of_node; + const char *dai_name; + struct of_phandle_args *dai_args; }; -struct tracefs_fs_info { - struct tracefs_mount_opts mount_opts; +struct snd_soc_dai_link_codec_ch_map { + unsigned int connected_cpu_id; + unsigned int ch_mask; }; -struct shash_instance { - void (*free)(struct shash_instance *); - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct snd_soc_pcm_stream { + const char *stream_name; long: 32; - union { - struct { - char head[128]; - struct crypto_instance base; - } s; - struct shash_alg alg; - }; + u64 formats; + unsigned int rates; + unsigned int rate_min; + unsigned int rate_max; + unsigned int channels_min; + unsigned int channels_max; + unsigned int sig_bits; }; -struct crypto_istat_hash { - atomic64_t hash_cnt; - atomic64_t hash_tlen; - atomic64_t err_cnt; -}; +typedef unsigned long snd_pcm_uframes_t; -struct crypto_shash_spawn { - struct crypto_spawn base; -}; +struct snd_pcm_audio_tstamp_config; -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 snd_pcm_audio_tstamp_report; -struct blk_major_name { - struct blk_major_name *next; - int major; - char name[16]; - void (*probe)(dev_t); +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)(struct snd_pcm_substream *, int, unsigned long, struct iov_iter *, 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 v2m_data { - struct list_head entry; - struct fwnode_handle *fwnode; - struct resource res; - void *base; - u32 spi_start; - u32 nr_spis; - u32 spi_offset; - unsigned long *bm; - u32 flags; +struct snd_mask { + __u32 bits[8]; }; -struct cs_data { - u32 enable_mask; - u16 slow_cfg; - u16 fast_cfg; +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 ebi2_xmem_prop { - const char *prop; - u32 max; - bool slowreg; - u16 shift; +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 ns2_phy_data; +enum snd_soc_dpcm_update { + SND_SOC_DPCM_UPDATE_NO = 0, + SND_SOC_DPCM_UPDATE_BE = 1, + SND_SOC_DPCM_UPDATE_FE = 2, +}; -struct ns2_phy_driver { - void *icfgdrd_regs; - void *idmdrd_rst_ctrl; - void *crmu_usb2_ctrl; - void *usb2h_strap_reg; - struct ns2_phy_data *data; - struct extcon_dev *edev; - struct gpio_desc *vbus_gpiod; - struct gpio_desc *id_gpiod; - int id_irq; - int vbus_irq; - unsigned long debounce_jiffies; - struct delayed_work wq_extcon; +enum snd_soc_dpcm_state { + SND_SOC_DPCM_STATE_NEW = 0, + SND_SOC_DPCM_STATE_OPEN = 1, + SND_SOC_DPCM_STATE_HW_PARAMS = 2, + SND_SOC_DPCM_STATE_PREPARE = 3, + SND_SOC_DPCM_STATE_START = 4, + SND_SOC_DPCM_STATE_STOP = 5, + SND_SOC_DPCM_STATE_PAUSED = 6, + SND_SOC_DPCM_STATE_SUSPEND = 7, + SND_SOC_DPCM_STATE_HW_FREE = 8, + SND_SOC_DPCM_STATE_CLOSE = 9, }; -struct ns2_phy_data { - struct ns2_phy_driver *driver; - struct phy *phy; - int new_state; +struct snd_soc_dpcm_runtime { + struct list_head be_clients; + struct list_head fe_clients; + int users; + struct snd_pcm_hw_params hw_params; + enum snd_soc_dpcm_update runtime_update; + enum snd_soc_dpcm_state state; + int trigger_pending; + int be_start; + int be_pause; + bool fe_pause; }; -struct at91_pinctrl_mux_ops; +struct snd_pcm; -struct at91_gpio_chip { - struct gpio_chip chip; - struct pinctrl_gpio_range range; - struct at91_gpio_chip *next; - int pioc_hwirq; - int pioc_virq; - void *regbase; - struct clk *clock; - const struct at91_pinctrl_mux_ops *ops; - u32 wakeups; - u32 backups; - u32 id; +struct snd_compr; + +struct snd_soc_dai; + +struct snd_soc_pcm_runtime { + struct device *dev; + struct snd_soc_card *card; + struct snd_soc_dai_link *dai_link; + struct snd_pcm_ops ops; + unsigned int c2c_params_select; + struct snd_soc_dpcm_runtime dpcm[2]; + struct snd_soc_dapm_widget *c2c_widget[2]; + long pmdown_time; + struct snd_pcm *pcm; + struct snd_compr *compr; + struct snd_soc_dai **dais; + struct delayed_work delayed_work; + void (*close_delayed_work_func)(struct snd_soc_pcm_runtime *); + struct dentry *debugfs_dpcm_root; + unsigned int num; + struct list_head list; + struct snd_pcm_substream *mark_startup; + struct snd_pcm_substream *mark_hw_params; + struct snd_pcm_substream *mark_trigger; + struct snd_compr_stream *mark_compr_startup; + unsigned int pop_wait: 1; + unsigned int fe_compr: 1; + bool initialized; + int num_components; + struct snd_soc_component *components[0]; }; -enum at91_mux { - AT91_MUX_GPIO = 0, - AT91_MUX_PERIPH_A = 1, - AT91_MUX_PERIPH_B = 2, - AT91_MUX_PERIPH_C = 3, - AT91_MUX_PERIPH_D = 4, +struct snd_dma_device { + int type; + enum dma_data_direction dir; + bool need_sync; + struct device *dev; }; -struct at91_pinctrl_mux_ops { - enum at91_mux (*get_periph)(void *, unsigned int); - void (*mux_A_periph)(void *, unsigned int); - void (*mux_B_periph)(void *, unsigned int); - void (*mux_C_periph)(void *, unsigned int); - void (*mux_D_periph)(void *, unsigned int); - bool (*get_deglitch)(void *, unsigned int); - void (*set_deglitch)(void *, unsigned int, bool); - bool (*get_debounce)(void *, unsigned int, u32 *); - void (*set_debounce)(void *, unsigned int, bool, u32); - bool (*get_pulldown)(void *, unsigned int); - void (*set_pulldown)(void *, unsigned int, bool); - bool (*get_schmitt_trig)(void *, unsigned int); - void (*disable_schmitt_trig)(void *, unsigned int); - unsigned int (*get_drivestrength)(void *, unsigned int); - void (*set_drivestrength)(void *, unsigned int, u32); - unsigned int (*get_slewrate)(void *, unsigned int); - void (*set_slewrate)(void *, unsigned int, u32); - int (*irq_type)(struct irq_data *, unsigned int); +struct snd_dma_buffer { + struct snd_dma_device dev; + unsigned char *area; + dma_addr_t addr; + size_t bytes; + void *private_data; }; -enum drive_strength_bit { - DRIVE_STRENGTH_BIT_DEF = 0, - DRIVE_STRENGTH_BIT_LOW = 1, - DRIVE_STRENGTH_BIT_MED = 2, - DRIVE_STRENGTH_BIT_HI = 3, +struct snd_timer; + +struct snd_pcm_group { + spinlock_t lock; + struct mutex mutex; + struct list_head substreams; + refcount_t refs; }; -enum slewrate_bit { - SLEWRATE_BIT_ENA = 0, - SLEWRATE_BIT_DIS = 1, +struct snd_pcm_str; + +struct snd_pcm_runtime; + +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 at91_pmx_func; - -struct at91_pin_group; - -struct at91_pinctrl { +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 pinctrl_dev *pctl; - int nactive_banks; - uint32_t *mux_mask; - int nmux; - struct at91_pmx_func *functions; - int nfunctions; - struct at91_pin_group *groups; - int ngroups; - const struct at91_pinctrl_mux_ops *ops; }; -struct at91_pmx_func { - const char *name; - const char **groups; - unsigned int ngroups; +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 at91_pmx_pin; +typedef int snd_pcm_state_t; -struct at91_pin_group { - const char *name; - struct at91_pmx_pin *pins_conf; - unsigned int *pins; - unsigned int npins; -}; +typedef long snd_pcm_sframes_t; -struct at91_pmx_pin { - uint32_t bank; - uint32_t pin; - enum at91_mux mux; - unsigned long conf; -}; +typedef int snd_pcm_access_t; -struct meson8_pmx_data { - bool is_gpio; - unsigned int reg; - unsigned int bit; -}; +typedef int snd_pcm_subformat_t; -struct airoha_gpio_ctrl { - struct gpio_chip gc; - void *data; - void *dir[2]; - void *output; +union snd_pcm_sync_id { + unsigned char id[16]; + unsigned short id16[8]; + unsigned int id32[4]; }; -struct xgpio_instance { - struct gpio_chip gc; - void *regs; - unsigned long hw_map[2]; - unsigned long sw_map[2]; - unsigned long state[2]; - unsigned long last_irq_read[2]; - unsigned long dir[2]; - spinlock_t gpio_lock; - int irq; - unsigned long enable[2]; - unsigned long rising_edge[2]; - unsigned long falling_edge[2]; - struct clk *clk; +struct snd_pcm_hardware { + unsigned int info; + long: 32; + 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; + long: 32; }; -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; - long: 4; - u32 aspm_disable: 7; - u32 clkpm_capable: 1; - u32 clkpm_enabled: 1; - u32 clkpm_default: 1; - u32 clkpm_disable: 1; -}; +struct snd_pcm_hw_rule; -struct ls_pcie { - struct dw_pcie *pci; +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 efifb_par { - u32 pseudo_palette[16]; - resource_size_t base; - resource_size_t size; +struct snd_pcm_audio_tstamp_config { + u32 type_requested: 4; + u32 report_delay: 1; }; -struct clk_pllv4 { - struct clk_hw hw; - void *base; - u32 cfg_offset; - u32 num_offset; - u32 denom_offset; +struct snd_pcm_audio_tstamp_report { + u32 valid: 1; + u32 actual_type: 4; + u32 accuracy_report: 1; + u32 accuracy; }; -struct mtk_clk_rst_data { - struct regmap *regmap; - struct reset_controller_dev rcdev; - const struct mtk_clk_rst_desc *desc; -}; +struct snd_pcm_mmap_status; -struct meson8b_clk_reset_line { - u32 reg; - u8 bit_idx; - bool active_low; -}; +struct snd_pcm_mmap_control; -struct pll_params_table { - unsigned int m; - unsigned int n; +struct snd_pcm_runtime { + snd_pcm_state_t state; + snd_pcm_state_t suspended_state; + struct snd_pcm_substream *trigger_master; + long: 32; + 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; + long: 32; + struct timespec64 driver_tstamp; }; -struct meson8b_nb_data { - struct notifier_block nb; - struct clk_hw *cpu_clk; -}; +typedef char __pad_before_uframe[0]; -struct meson8b_clk_reset { - struct reset_controller_dev reset; - struct regmap *regmap; -}; +typedef char __pad_after_uframe[4]; -struct exynos_audss_clk_drvdata { - unsigned int has_adma_clk: 1; - unsigned int has_mst_clk: 1; - unsigned int enable_epll: 1; - unsigned int num_clks; +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 pll_out_data { - char *div_name; - char *pll_out_name; - u32 offset; - int clk_id; - u8 div_shift; - u8 div_flags; - u8 rst_shift; - spinlock_t *lock; +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; }; -struct uniphier_clk_gate { - struct clk_hw hw; - struct regmap *regmap; - unsigned int reg; - unsigned int bit; -}; +typedef int (*snd_pcm_hw_rule_func_t)(struct snd_pcm_hw_params *, struct snd_pcm_hw_rule *); -enum mxs_dma_id { - IMX23_DMA = 0, - IMX28_DMA = 1, +struct snd_pcm_hw_rule { + unsigned int cond; + int var; + int deps[5]; + snd_pcm_hw_rule_func_t func; + void *private; }; -enum mxs_dma_devtype { - MXS_DMA_APBH = 0, - MXS_DMA_APBX = 1, -}; +struct snd_compr_ops; -struct mxs_dma_type { - enum mxs_dma_id id; - enum mxs_dma_devtype type; +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; }; -struct mxs_dma_engine; +struct snd_compr_params; -struct mxs_dma_ccw; +struct snd_codec; -struct mxs_dma_chan { - struct mxs_dma_engine *mxs_dma; - struct dma_chan chan; - struct dma_async_tx_descriptor desc; - struct tasklet_struct tasklet; - unsigned int chan_irq; - struct mxs_dma_ccw *ccw; - dma_addr_t ccw_phys; - int desc_count; - enum dma_status status; - unsigned int flags; - bool reset; -}; +struct snd_compr_metadata; -struct mxs_dma_engine { - enum mxs_dma_id dev_id; - enum mxs_dma_devtype type; - void *base; - struct clk *clk; - struct dma_device dma_device; - struct mxs_dma_chan mxs_chans[16]; - struct platform_device *pdev; - unsigned int nr_channels; -}; +struct snd_compr_tstamp; -struct mxs_dma_ccw { - u32 next; - u16 bits; - u16 xfer_bytes; - u32 bufaddr; - u32 pio_words[16]; -}; +struct snd_compr_caps; -struct mxs_dma_filter_param { - unsigned int chan_id; -}; +struct snd_compr_codec_caps; -struct imx_pm_domain { - struct generic_pm_domain base; - struct regmap *regmap; - struct regulator *supply; - struct clk *clk[7]; - int num_clks; - unsigned int reg_offs; - signed char cntr_pdn_bit; - unsigned int ipg_rate_mhz; - long: 32; +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 imx_gpc_dt_data { - int num_domains; - bool err009619_present; - bool err006287_present; +enum snd_compr_direction { + SND_COMPRESS_PLAYBACK = 0, + SND_COMPRESS_CAPTURE = 1, }; -struct fixed_regulator_data { - struct fixed_voltage_config cfg; - struct regulator_init_data init_data; - struct platform_device pdev; -}; +struct snd_compr_runtime; -struct rk8xx_register_bit { - u8 reg; - u8 bit; +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; }; -enum rk809_reg_id { - RK809_ID_DCDC5 = 13, - RK809_ID_SW1 = 14, - RK809_ID_SW2 = 15, - RK809_NUM_REGULATORS = 16, +struct snd_compr_runtime { + snd_pcm_state_t state; + struct snd_compr_ops *ops; + void *buffer; + long: 32; + 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; }; -enum rk817_reg_id { - RK817_ID_DCDC1 = 0, - RK817_ID_DCDC2 = 1, - RK817_ID_DCDC3 = 2, - RK817_ID_DCDC4 = 3, - RK817_ID_LDO1 = 4, - RK817_ID_LDO2 = 5, - RK817_ID_LDO3 = 6, - RK817_ID_LDO4 = 7, - RK817_ID_LDO5 = 8, - RK817_ID_LDO6 = 9, - RK817_ID_LDO7 = 10, - RK817_ID_LDO8 = 11, - RK817_ID_LDO9 = 12, - RK817_ID_BOOST = 13, - RK817_ID_BOOST_OTG_SW = 14, - RK817_NUM_REGULATORS = 15, +struct snd_compressed_buffer { + __u32 fragment_size; + __u32 fragments; }; -struct rk808_regulator_data { - struct gpio_desc *dvs_gpio[2]; +struct snd_enc_wma { + __u32 super_block_align; }; -struct pl011_sgbuf { - struct scatterlist sg; - char *buf; +struct snd_enc_vorbis { + __s32 quality; + __u32 managed; + __u32 max_bit_rate; + __u32 min_bit_rate; + __u32 downmix; }; -struct pl011_dmarx_data { - struct dma_chan *chan; - struct completion complete; - bool use_buf_b; - struct pl011_sgbuf sgbuf_a; - struct pl011_sgbuf sgbuf_b; - dma_cookie_t cookie; - bool running; - struct timer_list timer; - unsigned int last_residue; - unsigned long last_jiffies; - bool auto_poll_rate; - unsigned int poll_rate; - unsigned int poll_timeout; +struct snd_enc_real { + __u32 quant_bits; + __u32 start_region; + __u32 num_regions; }; -struct pl011_dmatx_data { - struct dma_chan *chan; - struct scatterlist sg; - char *buf; - bool queued; +struct snd_enc_flac { + __u32 num; + __u32 gain; }; -struct vendor_data; - -struct uart_amba_port { - struct uart_port port; - const u16 *reg_offset; - struct clk *clk; - const struct vendor_data *vendor; - unsigned int dmacr; - unsigned int im; - unsigned int old_status; - unsigned int fifosize; - unsigned int fixed_baud; - char type[12]; - bool rs485_tx_started; - unsigned int rs485_tx_drain_interval; - bool using_tx_dma; - bool using_rx_dma; - struct pl011_dmarx_data dmarx; - struct pl011_dmatx_data dmatx; - bool dma_probed; - long: 32; +struct snd_enc_generic { + __u32 bw; + __s32 reserved[15]; }; -struct vendor_data { - const u16 *reg_offset; - unsigned int ifls; - unsigned int fr_busy; - unsigned int fr_dsr; - unsigned int fr_cts; - unsigned int fr_ri; - unsigned int inv_fr; - bool access_32b; - bool oversampling; - bool dma_threshold; - bool cts_event_workaround; - bool always_enabled; - bool fixed_options; - unsigned int (*get_fifosize)(struct amba_device *); +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; }; -enum { - REG_DR = 0, - REG_ST_DMAWM = 1, - REG_ST_TIMEOUT = 2, - REG_FR = 3, - REG_LCRH_RX = 4, - REG_LCRH_TX = 5, - REG_IBRD = 6, - REG_FBRD = 7, - REG_CR = 8, - REG_IFLS = 9, - REG_IMSC = 10, - REG_RIS = 11, - REG_MIS = 12, - REG_ICR = 13, - REG_DMACR = 14, - REG_ST_XFCR = 15, - REG_ST_XON1 = 16, - REG_ST_XON2 = 17, - REG_ST_XOFF1 = 18, - REG_ST_XOFF2 = 19, - REG_ST_ITCR = 20, - REG_ST_ITIP = 21, - REG_ST_ABCR = 22, - REG_ST_ABIMSC = 23, - REG_ARRAY_SIZE = 24, +struct snd_dec_wma { + __u32 encoder_option; + __u32 adv_encoder_option; + __u32 adv_encoder_option2; + __u32 reserved; }; -struct amba_pl011_data { - bool (*dma_filter)(struct dma_chan *, void *); - void *dma_rx_param; - void *dma_tx_param; - bool dma_rx_poll_enable; - unsigned int dma_rx_poll_rate; - unsigned int dma_rx_poll_timeout; - void (*init)(); - void (*exit)(); +struct snd_dec_alac { + __u32 frame_length; + __u8 compatible_version; + __u8 pb; + __u8 mb; + __u8 kb; + __u32 max_run; + __u32 max_frame_bytes; }; -struct platform_object { - struct platform_device pdev; - char name[0]; +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; }; -struct irq_affinity_devres { - unsigned int count; - unsigned int irq[0]; +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; }; -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, +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]; }; -enum { - SD_DEF_XFER_BLOCKS = 65535, - SD_MAX_XFER_BLOCKS = 4294967295, - SD_MAX_WS10_BLOCKS = 65535, - SD_MAX_WS16_BLOCKS = 8388607, +struct snd_compr_params { + struct snd_compressed_buffer buffer; + struct snd_codec codec; + __u8 no_wake_mode; }; -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, +struct snd_compr_metadata { + __u32 key; + __u32 value[8]; }; -enum t10_dif_type { - T10_PI_TYPE0_PROTECTION = 0, - T10_PI_TYPE1_PROTECTION = 1, - T10_PI_TYPE2_PROTECTION = 2, - T10_PI_TYPE3_PROTECTION = 3, +struct snd_compr_tstamp { + __u32 byte_offset; + __u32 copied_total; + __u32 pcm_frames; + __u32 pcm_io_frames; + __u32 sampling_rate; }; -enum { - SD_ZERO_WRITE = 0, - SD_ZERO_WS = 1, - SD_ZERO_WS16_UNMAP = 2, - SD_ZERO_WS10_UNMAP = 3, +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]; }; -enum bip_flags { - BIP_BLOCK_INTEGRITY = 1, - BIP_MAPPED_INTEGRITY = 2, - BIP_CTRL_NOCHECK = 4, - BIP_DISK_NOCHECK = 8, - BIP_IP_CHECKSUM = 16, +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]; }; -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, +struct snd_compr_codec_caps { + __u32 codec; + __u32 num_descriptors; + struct snd_codec_desc descriptor[32]; }; -enum { - SD_EXT_CDB_SIZE = 32, - SD_MEMPOOL_SIZE = 2, +struct snd_soc_dai_stream { + struct snd_soc_dapm_widget *widget; + unsigned int active; + unsigned int tdm_mask; + void *dma_data; }; -struct opal_dev; +struct snd_soc_dai_driver; -struct scsi_disk { - struct scsi_device *device; - long: 32; - struct device disk_dev; - struct gendisk *disk; - struct opal_dev *opal_dev; - atomic_t openers; - long: 32; - 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; - long: 32; +struct snd_soc_dai { + const char *name; + int id; + struct device *dev; + struct snd_soc_dai_driver *driver; + struct snd_soc_dai_stream stream[2]; + unsigned int rate; + unsigned int channels; + unsigned int sample_bits; + struct snd_soc_component *component; + struct list_head list; + struct snd_pcm_substream *mark_startup; + struct snd_pcm_substream *mark_hw_params; + struct snd_pcm_substream *mark_trigger; + struct snd_compr_stream *mark_compr_startup; + unsigned int probed: 1; }; -struct flash_device { - char *name; - u8 erase_cmd; - u32 device_id; - u32 pagesize; - unsigned long sectorsize; - unsigned long size_in_bytes; -}; +struct snd_soc_dai_ops; -struct spear_snor_flash { - u32 bank; - u32 dev_id; - struct mutex lock; +struct snd_soc_cdai_ops; + +struct snd_soc_dai_driver { + const char *name; + unsigned int id; + unsigned int base; + struct snd_soc_dobj dobj; + struct of_phandle_args *dai_args; + const struct snd_soc_dai_ops *ops; + const struct snd_soc_cdai_ops *cops; long: 32; - struct mtd_info mtd; - u32 num_parts; - struct mtd_partition *parts; - u32 page_size; - void *base_addr; - u8 erase_cmd; - u8 fast_mode; + struct snd_soc_pcm_stream capture; + struct snd_soc_pcm_stream playback; + unsigned int symmetric_rate: 1; + unsigned int symmetric_channels: 1; + unsigned int symmetric_sample_bits: 1; long: 32; }; -struct spear_smi_flash_info; - -struct spear_smi_plat_data { - unsigned long clk_rate; - int num_flashes; - struct spear_smi_flash_info *board_flash_info; - struct device_node *np[4]; -}; - -struct spear_smi_flash_info { - char *name; - unsigned long mem_base; - unsigned long size; - struct mtd_partition *partitions; - int nr_partitions; - u8 fast_mode; -}; - -struct spear_smi { - struct clk *clk; - u32 status; - unsigned long clk_rate; - struct mutex lock; - void *io_base; - struct platform_device *pdev; - wait_queue_head_t cmd_complete; - u32 num_flashes; - struct spear_snor_flash *flash[4]; +struct snd_soc_dai_ops { + int (*probe)(struct snd_soc_dai *); + int (*remove)(struct snd_soc_dai *); + int (*compress_new)(struct snd_soc_pcm_runtime *, int); + int (*pcm_new)(struct snd_soc_pcm_runtime *, struct snd_soc_dai *); + int (*set_sysclk)(struct snd_soc_dai *, int, unsigned int, int); + int (*set_pll)(struct snd_soc_dai *, int, int, unsigned int, unsigned int); + int (*set_clkdiv)(struct snd_soc_dai *, int, int); + int (*set_bclk_ratio)(struct snd_soc_dai *, unsigned int); + int (*set_fmt)(struct snd_soc_dai *, unsigned int); + int (*xlate_tdm_slot_mask)(unsigned int, unsigned int *, unsigned int *); + int (*set_tdm_slot)(struct snd_soc_dai *, unsigned int, unsigned int, int, int); + int (*set_channel_map)(struct snd_soc_dai *, unsigned int, unsigned int *, unsigned int, unsigned int *); + int (*get_channel_map)(struct snd_soc_dai *, unsigned int *, unsigned int *, unsigned int *, unsigned int *); + int (*set_tristate)(struct snd_soc_dai *, int); + int (*set_stream)(struct snd_soc_dai *, void *, int); + void * (*get_stream)(struct snd_soc_dai *, int); + int (*mute_stream)(struct snd_soc_dai *, int, int); + int (*startup)(struct snd_pcm_substream *, struct snd_soc_dai *); + void (*shutdown)(struct snd_pcm_substream *, struct snd_soc_dai *); + int (*hw_params)(struct snd_pcm_substream *, struct snd_pcm_hw_params *, struct snd_soc_dai *); + int (*hw_free)(struct snd_pcm_substream *, struct snd_soc_dai *); + int (*prepare)(struct snd_pcm_substream *, struct snd_soc_dai *); + int (*trigger)(struct snd_pcm_substream *, int, struct snd_soc_dai *); + int (*bespoke_trigger)(struct snd_pcm_substream *, int, struct snd_soc_dai *); + snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *, struct snd_soc_dai *); + u64 *auto_selectable_formats; + int num_auto_selectable_formats; + int probe_order; + int remove_order; + unsigned int no_capture_mute: 1; + unsigned int mute_unmute_on_trigger: 1; }; -struct atmel_pmecc_gf_tables { - u16 *alpha_to; - u16 *index_of; +struct snd_soc_cdai_ops { + int (*startup)(struct snd_compr_stream *, struct snd_soc_dai *); + int (*shutdown)(struct snd_compr_stream *, struct snd_soc_dai *); + int (*set_params)(struct snd_compr_stream *, struct snd_compr_params *, struct snd_soc_dai *); + int (*get_params)(struct snd_compr_stream *, struct snd_codec *, struct snd_soc_dai *); + int (*set_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *, struct snd_soc_dai *); + int (*get_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *, struct snd_soc_dai *); + int (*trigger)(struct snd_compr_stream *, int, struct snd_soc_dai *); + int (*pointer)(struct snd_compr_stream *, struct snd_compr_tstamp *, struct snd_soc_dai *); + int (*ack)(struct snd_compr_stream *, size_t, struct snd_soc_dai *); }; -struct atmel_pmecc_caps { - const int *strengths; - int nstrengths; - int el_offset; - bool correct_erased_chunks; +struct snd_soc_ops { + int (*startup)(struct snd_pcm_substream *); + void (*shutdown)(struct snd_pcm_substream *); + 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); }; -struct atmel_pmecc_user_conf_cache { - u32 cfg; - u32 sarea; - u32 saddr; - u32 eaddr; +struct snd_soc_compr_ops { + int (*startup)(struct snd_compr_stream *); + void (*shutdown)(struct snd_compr_stream *); + int (*set_params)(struct snd_compr_stream *); }; -struct atmel_pmecc_user { - struct atmel_pmecc_user_conf_cache cache; - struct atmel_pmecc *pmecc; - const struct atmel_pmecc_gf_tables *gf_tables; - int eccbytes; - s16 *partial_syn; - s16 *si; - s16 *lmu; - s16 *smu; - s32 *mu; - s32 *dmu; - s32 *delta; - u32 isr; +struct snd_soc_codec_conf { + struct snd_soc_dai_link_component dlc; + const char *name_prefix; }; -struct atmel_pmecc { - struct device *dev; - const struct atmel_pmecc_caps *caps; - struct { - void *base; - void *errloc; - } regs; - struct mutex lock; +struct snd_soc_aux_dev { + struct snd_soc_dai_link_component dlc; + int (*init)(struct snd_soc_component *); }; -enum ssp_interface { - SSP_INTERFACE_MOTOROLA_SPI = 0, - SSP_INTERFACE_TI_SYNC_SERIAL = 1, - SSP_INTERFACE_NATIONAL_MICROWIRE = 2, - SSP_INTERFACE_UNIDIRECTIONAL = 3, +struct snd_soc_dapm_route { + const char *sink; + const char *control; + const char *source; + int (*connected)(struct snd_soc_dapm_widget *, struct snd_soc_dapm_widget *); + struct snd_soc_dobj dobj; }; -enum ssp_hierarchy { - SSP_MASTER = 0, - SSP_SLAVE = 1, +struct snd_soc_dapm_update { + struct snd_kcontrol *kcontrol; + int reg; + int mask; + int val; + int reg2; + int mask2; + int val2; + bool has_second_set; }; -struct ssp_clock_params { - u8 cpsdvsr; - u8 scr; -}; +struct snd_soc_jack; -enum ssp_mode { - INTERRUPT_TRANSFER = 0, - POLLING_TRANSFER = 1, - DMA_TRANSFER = 2, -}; +struct snd_compress_ops; -enum ssp_rx_level_trig { - SSP_RX_1_OR_MORE_ELEM = 0, - SSP_RX_4_OR_MORE_ELEM = 1, - SSP_RX_8_OR_MORE_ELEM = 2, - SSP_RX_16_OR_MORE_ELEM = 3, - SSP_RX_32_OR_MORE_ELEM = 4, +struct snd_soc_component_driver { + const char *name; + const struct snd_kcontrol_new *controls; + unsigned int num_controls; + const struct snd_soc_dapm_widget *dapm_widgets; + unsigned int num_dapm_widgets; + const struct snd_soc_dapm_route *dapm_routes; + unsigned int num_dapm_routes; + int (*probe)(struct snd_soc_component *); + void (*remove)(struct snd_soc_component *); + int (*suspend)(struct snd_soc_component *); + int (*resume)(struct snd_soc_component *); + unsigned int (*read)(struct snd_soc_component *, unsigned int); + int (*write)(struct snd_soc_component *, unsigned int, unsigned int); + int (*pcm_construct)(struct snd_soc_component *, struct snd_soc_pcm_runtime *); + void (*pcm_destruct)(struct snd_soc_component *, struct snd_pcm *); + int (*set_sysclk)(struct snd_soc_component *, int, int, unsigned int, int); + int (*set_pll)(struct snd_soc_component *, int, int, unsigned int, unsigned int); + int (*set_jack)(struct snd_soc_component *, struct snd_soc_jack *, void *); + int (*get_jack_type)(struct snd_soc_component *); + int (*of_xlate_dai_name)(struct snd_soc_component *, const struct of_phandle_args *, const char **); + int (*of_xlate_dai_id)(struct snd_soc_component *, struct device_node *); + void (*seq_notifier)(struct snd_soc_component *, enum snd_soc_dapm_type, int); + int (*stream_event)(struct snd_soc_component *, int); + int (*set_bias_level)(struct snd_soc_component *, enum snd_soc_bias_level); + int (*open)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*close)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*ioctl)(struct snd_soc_component *, struct snd_pcm_substream *, unsigned int, void *); + int (*hw_params)(struct snd_soc_component *, struct snd_pcm_substream *, struct snd_pcm_hw_params *); + int (*hw_free)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*prepare)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*trigger)(struct snd_soc_component *, struct snd_pcm_substream *, int); + int (*sync_stop)(struct snd_soc_component *, struct snd_pcm_substream *); + snd_pcm_uframes_t (*pointer)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*get_time_info)(struct snd_soc_component *, struct snd_pcm_substream *, struct timespec64 *, struct timespec64 *, struct snd_pcm_audio_tstamp_config *, struct snd_pcm_audio_tstamp_report *); + int (*copy)(struct snd_soc_component *, struct snd_pcm_substream *, int, unsigned long, struct iov_iter *, unsigned long); + struct page * (*page)(struct snd_soc_component *, struct snd_pcm_substream *, unsigned long); + int (*mmap)(struct snd_soc_component *, struct snd_pcm_substream *, struct vm_area_struct *); + int (*ack)(struct snd_soc_component *, struct snd_pcm_substream *); + snd_pcm_sframes_t (*delay)(struct snd_soc_component *, struct snd_pcm_substream *); + const struct snd_compress_ops *compress_ops; + int probe_order; + int remove_order; + enum snd_soc_trigger_order trigger_start; + enum snd_soc_trigger_order trigger_stop; + unsigned int module_get_upon_open: 1; + unsigned int idle_bias_on: 1; + unsigned int suspend_bias_off: 1; + unsigned int use_pmdown_time: 1; + unsigned int endianness: 1; + unsigned int legacy_dai_naming: 1; + const char *ignore_machine; + const char *topology_name_prefix; + int (*be_hw_params_fixup)(struct snd_soc_pcm_runtime *, struct snd_pcm_hw_params *); + bool use_dai_pcm_id; + int be_pcm_base; + const char *debugfs_prefix; }; -enum ssp_tx_level_trig { - SSP_TX_1_OR_MORE_EMPTY_LOC = 0, - SSP_TX_4_OR_MORE_EMPTY_LOC = 1, - SSP_TX_8_OR_MORE_EMPTY_LOC = 2, - SSP_TX_16_OR_MORE_EMPTY_LOC = 3, - SSP_TX_32_OR_MORE_EMPTY_LOC = 4, -}; +struct snd_jack; -enum ssp_microwire_ctrl_len { - SSP_BITS_4 = 3, - SSP_BITS_5 = 4, - SSP_BITS_6 = 5, - SSP_BITS_7 = 6, - SSP_BITS_8 = 7, - SSP_BITS_9 = 8, - SSP_BITS_10 = 9, - SSP_BITS_11 = 10, - SSP_BITS_12 = 11, - SSP_BITS_13 = 12, - SSP_BITS_14 = 13, - SSP_BITS_15 = 14, - SSP_BITS_16 = 15, - SSP_BITS_17 = 16, - SSP_BITS_18 = 17, - SSP_BITS_19 = 18, - SSP_BITS_20 = 19, - SSP_BITS_21 = 20, - SSP_BITS_22 = 21, - SSP_BITS_23 = 22, - SSP_BITS_24 = 23, - SSP_BITS_25 = 24, - SSP_BITS_26 = 25, - SSP_BITS_27 = 26, - SSP_BITS_28 = 27, - SSP_BITS_29 = 28, - SSP_BITS_30 = 29, - SSP_BITS_31 = 30, - SSP_BITS_32 = 31, +struct snd_soc_jack { + struct mutex mutex; + struct snd_jack *jack; + struct snd_soc_card *card; + struct list_head pins; + int status; + struct blocking_notifier_head notifier; + struct list_head jack_zones; }; -enum ssp_microwire_wait_state { - SSP_MWIRE_WAIT_ZERO = 0, - SSP_MWIRE_WAIT_ONE = 1, +struct snd_compress_ops { + int (*open)(struct snd_soc_component *, struct snd_compr_stream *); + int (*free)(struct snd_soc_component *, struct snd_compr_stream *); + int (*set_params)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_params *); + int (*get_params)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_codec *); + int (*set_metadata)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_metadata *); + int (*get_metadata)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_metadata *); + int (*trigger)(struct snd_soc_component *, struct snd_compr_stream *, int); + int (*pointer)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_tstamp *); + int (*copy)(struct snd_soc_component *, struct snd_compr_stream *, char __attribute__((btf_type_tag("user"))) *, size_t); + int (*mmap)(struct snd_soc_component *, struct snd_compr_stream *, struct vm_area_struct *); + int (*ack)(struct snd_soc_component *, struct snd_compr_stream *, size_t); + int (*get_caps)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_caps *); + int (*get_codec_caps)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_codec_caps *); }; -enum ssp_duplex { - SSP_MICROWIRE_CHANNEL_FULL_DUPLEX = 0, - SSP_MICROWIRE_CHANNEL_HALF_DUPLEX = 1, -}; +struct tmds_config; -enum ssp_clkdelay { - SSP_FEEDBACK_CLK_DELAY_NONE = 0, - SSP_FEEDBACK_CLK_DELAY_1T = 1, - SSP_FEEDBACK_CLK_DELAY_2T = 2, - SSP_FEEDBACK_CLK_DELAY_3T = 3, - SSP_FEEDBACK_CLK_DELAY_4T = 4, - SSP_FEEDBACK_CLK_DELAY_5T = 5, - SSP_FEEDBACK_CLK_DELAY_6T = 6, - SSP_FEEDBACK_CLK_DELAY_7T = 7, +struct tegra_hdmi_config { + const struct tmds_config *tmds; + unsigned int num_tmds; + unsigned long fuse_override_offset; + u32 fuse_override_value; + bool has_sor_io_peak_current; + bool has_hda; + bool has_hbr; }; -struct pl022_config_chip { - enum ssp_interface iface; - enum ssp_hierarchy hierarchy; - bool slave_tx_disable; - struct ssp_clock_params clk_freq; - enum ssp_mode com_mode; - enum ssp_rx_level_trig rx_lev_trig; - enum ssp_tx_level_trig tx_lev_trig; - enum ssp_microwire_ctrl_len ctrl_len; - enum ssp_microwire_wait_state wait_state; - enum ssp_duplex duplex; - enum ssp_clkdelay clkdelay; +struct tmds_config { + unsigned int pclk; + u32 pll0; + u32 pll1; + u32 pe_current; + u32 drive_current; + u32 peak_current; }; -struct vendor_data___2 { - int fifodepth; - int max_bpw; - bool unidir; - bool extended_cr; - bool pl023; - bool loopback; - bool internal_cs_ctrl; +enum { + AUTO = 0, + SPDIF = 1, + HDA = 2, }; -enum ssp_reading { - READING_NULL = 0, - READING_U8 = 1, - READING_U16 = 2, - READING_U32 = 3, +struct tegra_hdmi { + struct host1x_client client; + struct tegra_output output; + struct device *dev; + struct regulator *hdmi; + struct regulator *pll; + struct regulator *vdd; + void *regs; + unsigned int irq; + struct clk *clk_parent; + struct clk *clk; + struct reset_control *rst; + const struct tegra_hdmi_config *config; + unsigned int audio_source; + struct tegra_hda_format format; + unsigned int pixel_clock; + bool stereo; + bool dvi; + struct drm_info_list *debugfs_files; + struct platform_device *audio_pdev; + struct mutex audio_lock; }; -enum ssp_writing { - WRITING_NULL = 0, - WRITING_U8 = 1, - WRITING_U16 = 2, - WRITING_U32 = 3, +struct tegra_hdmi_audio_config { + unsigned int n; + unsigned int cts; + unsigned int aval; }; -enum ssp_rx_endian { - SSP_RX_MSB = 0, - SSP_RX_LSB = 1, +struct hdmi_codec_pdata { + const struct hdmi_codec_ops *ops; + uint i2s: 1; + uint no_i2s_playback: 1; + uint no_i2s_capture: 1; + uint spdif: 1; + uint no_spdif_playback: 1; + uint no_spdif_capture: 1; + int max_i2s_channels; + void *data; }; -enum ssp_tx_endian { - SSP_TX_MSB = 0, - SSP_TX_LSB = 1, +enum genpd_notication { + GENPD_NOTIFY_PRE_OFF = 0, + GENPD_NOTIFY_OFF = 1, + GENPD_NOTIFY_PRE_ON = 2, + GENPD_NOTIFY_ON = 3, }; -enum ssp_spi_clk_pol { - SSP_CLK_POL_IDLE_LOW = 0, - SSP_CLK_POL_IDLE_HIGH = 1, +struct of_genpd_provider { + struct list_head link; + struct device_node *node; + genpd_xlate_t xlate; + void *data; }; -enum ssp_spi_clk_phase { - SSP_CLK_FIRST_EDGE = 0, - SSP_CLK_SECOND_EDGE = 1, +struct stmpe_platform_data { + int id; + unsigned int blocks; + unsigned int irq_trigger; + bool autosleep; + int autosleep_timeout; }; -enum ssp_loopback { - LOOPBACK_DISABLED = 0, - LOOPBACK_ENABLED = 1, +struct pm_irq_data { + int num_irqs; + struct irq_chip *irq_chip; + irq_handler_t irq_handler; }; -enum ssp_chip_select { - SSP_CHIP_SELECT = 0, - SSP_CHIP_DESELECT = 1, +struct pm_irq_chip { + struct regmap *regmap; + spinlock_t pm_irq_lock; + struct irq_domain *irqdomain; + unsigned int num_blocks; + unsigned int num_masters; + const struct pm_irq_data *pm_irq_data; + u8 config[0]; }; -enum ssp_data_size { - SSP_DATA_BITS_4 = 3, - SSP_DATA_BITS_5 = 4, - SSP_DATA_BITS_6 = 5, - SSP_DATA_BITS_7 = 6, - SSP_DATA_BITS_8 = 7, - SSP_DATA_BITS_9 = 8, - SSP_DATA_BITS_10 = 9, - SSP_DATA_BITS_11 = 10, - SSP_DATA_BITS_12 = 11, - SSP_DATA_BITS_13 = 12, - SSP_DATA_BITS_14 = 13, - SSP_DATA_BITS_15 = 14, - SSP_DATA_BITS_16 = 15, - SSP_DATA_BITS_17 = 16, - SSP_DATA_BITS_18 = 17, - SSP_DATA_BITS_19 = 18, - SSP_DATA_BITS_20 = 19, - SSP_DATA_BITS_21 = 20, - SSP_DATA_BITS_22 = 21, - SSP_DATA_BITS_23 = 22, - SSP_DATA_BITS_24 = 23, - SSP_DATA_BITS_25 = 24, - SSP_DATA_BITS_26 = 25, - SSP_DATA_BITS_27 = 26, - SSP_DATA_BITS_28 = 27, - SSP_DATA_BITS_29 = 28, - SSP_DATA_BITS_30 = 29, - SSP_DATA_BITS_31 = 30, - SSP_DATA_BITS_32 = 31, +enum s2mpa01_reg { + S2MPA01_REG_ID = 0, + S2MPA01_REG_INT1 = 1, + S2MPA01_REG_INT2 = 2, + S2MPA01_REG_INT3 = 3, + S2MPA01_REG_INT1M = 4, + S2MPA01_REG_INT2M = 5, + S2MPA01_REG_INT3M = 6, + S2MPA01_REG_ST1 = 7, + S2MPA01_REG_ST2 = 8, + S2MPA01_REG_PWRONSRC = 9, + S2MPA01_REG_OFFSRC = 10, + S2MPA01_REG_RTC_BUF = 11, + S2MPA01_REG_CTRL1 = 12, + S2MPA01_REG_ETC_TEST = 13, + S2MPA01_REG_RSVD1 = 14, + S2MPA01_REG_BU_CHG = 15, + S2MPA01_REG_RAMP1 = 16, + S2MPA01_REG_RAMP2 = 17, + S2MPA01_REG_LDO_DSCH1 = 18, + S2MPA01_REG_LDO_DSCH2 = 19, + S2MPA01_REG_LDO_DSCH3 = 20, + S2MPA01_REG_LDO_DSCH4 = 21, + S2MPA01_REG_OTP_ADRL = 22, + S2MPA01_REG_OTP_ADRH = 23, + S2MPA01_REG_OTP_DATA = 24, + S2MPA01_REG_MON1SEL = 25, + S2MPA01_REG_MON2SEL = 26, + S2MPA01_REG_LEE = 27, + S2MPA01_REG_RSVD2 = 28, + S2MPA01_REG_RSVD3 = 29, + S2MPA01_REG_RSVD4 = 30, + S2MPA01_REG_RSVD5 = 31, + S2MPA01_REG_RSVD6 = 32, + S2MPA01_REG_TOP_RSVD = 33, + S2MPA01_REG_DVS_SEL = 34, + S2MPA01_REG_DVS_PTR = 35, + S2MPA01_REG_DVS_DATA = 36, + S2MPA01_REG_RSVD_NO = 37, + S2MPA01_REG_UVLO = 38, + S2MPA01_REG_LEE_NO = 39, + S2MPA01_REG_B1CTRL1 = 40, + S2MPA01_REG_B1CTRL2 = 41, + S2MPA01_REG_B2CTRL1 = 42, + S2MPA01_REG_B2CTRL2 = 43, + S2MPA01_REG_B3CTRL1 = 44, + S2MPA01_REG_B3CTRL2 = 45, + S2MPA01_REG_B4CTRL1 = 46, + S2MPA01_REG_B4CTRL2 = 47, + S2MPA01_REG_B5CTRL1 = 48, + S2MPA01_REG_B5CTRL2 = 49, + S2MPA01_REG_B5CTRL3 = 50, + S2MPA01_REG_B5CTRL4 = 51, + S2MPA01_REG_B5CTRL5 = 52, + S2MPA01_REG_B5CTRL6 = 53, + S2MPA01_REG_B6CTRL1 = 54, + S2MPA01_REG_B6CTRL2 = 55, + S2MPA01_REG_B7CTRL1 = 56, + S2MPA01_REG_B7CTRL2 = 57, + S2MPA01_REG_B8CTRL1 = 58, + S2MPA01_REG_B8CTRL2 = 59, + S2MPA01_REG_B9CTRL1 = 60, + S2MPA01_REG_B9CTRL2 = 61, + S2MPA01_REG_B10CTRL1 = 62, + S2MPA01_REG_B10CTRL2 = 63, + S2MPA01_REG_L1CTRL = 64, + S2MPA01_REG_L2CTRL = 65, + S2MPA01_REG_L3CTRL = 66, + S2MPA01_REG_L4CTRL = 67, + S2MPA01_REG_L5CTRL = 68, + S2MPA01_REG_L6CTRL = 69, + S2MPA01_REG_L7CTRL = 70, + S2MPA01_REG_L8CTRL = 71, + S2MPA01_REG_L9CTRL = 72, + S2MPA01_REG_L10CTRL = 73, + S2MPA01_REG_L11CTRL = 74, + S2MPA01_REG_L12CTRL = 75, + S2MPA01_REG_L13CTRL = 76, + S2MPA01_REG_L14CTRL = 77, + S2MPA01_REG_L15CTRL = 78, + S2MPA01_REG_L16CTRL = 79, + S2MPA01_REG_L17CTRL = 80, + S2MPA01_REG_L18CTRL = 81, + S2MPA01_REG_L19CTRL = 82, + S2MPA01_REG_L20CTRL = 83, + S2MPA01_REG_L21CTRL = 84, + S2MPA01_REG_L22CTRL = 85, + S2MPA01_REG_L23CTRL = 86, + S2MPA01_REG_L24CTRL = 87, + S2MPA01_REG_L25CTRL = 88, + S2MPA01_REG_L26CTRL = 89, + S2MPA01_REG_LDO_OVCB1 = 90, + S2MPA01_REG_LDO_OVCB2 = 91, + S2MPA01_REG_LDO_OVCB3 = 92, + S2MPA01_REG_LDO_OVCB4 = 93, }; -struct pl022_ssp_controller; - -struct chip_data___2; +enum s2mps13_reg { + S2MPS13_REG_ID = 0, + S2MPS13_REG_INT1 = 1, + S2MPS13_REG_INT2 = 2, + S2MPS13_REG_INT3 = 3, + S2MPS13_REG_INT1M = 4, + S2MPS13_REG_INT2M = 5, + S2MPS13_REG_INT3M = 6, + S2MPS13_REG_ST1 = 7, + S2MPS13_REG_ST2 = 8, + S2MPS13_REG_PWRONSRC = 9, + S2MPS13_REG_OFFSRC = 10, + S2MPS13_REG_BU_CHG = 11, + S2MPS13_REG_RTCCTRL = 12, + S2MPS13_REG_CTRL1 = 13, + S2MPS13_REG_CTRL2 = 14, + S2MPS13_REG_RSVD1 = 15, + S2MPS13_REG_RSVD2 = 16, + S2MPS13_REG_RSVD3 = 17, + S2MPS13_REG_RSVD4 = 18, + S2MPS13_REG_RSVD5 = 19, + S2MPS13_REG_RSVD6 = 20, + S2MPS13_REG_CTRL3 = 21, + S2MPS13_REG_RSVD7 = 22, + S2MPS13_REG_RSVD8 = 23, + S2MPS13_REG_WRSTBI = 24, + S2MPS13_REG_B1CTRL = 25, + S2MPS13_REG_B1OUT = 26, + S2MPS13_REG_B2CTRL = 27, + S2MPS13_REG_B2OUT = 28, + S2MPS13_REG_B3CTRL = 29, + S2MPS13_REG_B3OUT = 30, + S2MPS13_REG_B4CTRL = 31, + S2MPS13_REG_B4OUT = 32, + S2MPS13_REG_B5CTRL = 33, + S2MPS13_REG_B5OUT = 34, + S2MPS13_REG_B6CTRL = 35, + S2MPS13_REG_B6OUT = 36, + S2MPS13_REG_B7CTRL = 37, + S2MPS13_REG_B7SW = 38, + S2MPS13_REG_B7OUT = 39, + S2MPS13_REG_B8CTRL = 40, + S2MPS13_REG_B8OUT = 41, + S2MPS13_REG_B9CTRL = 42, + S2MPS13_REG_B9OUT = 43, + S2MPS13_REG_B10CTRL = 44, + S2MPS13_REG_B10OUT = 45, + S2MPS13_REG_BB1CTRL = 46, + S2MPS13_REG_BB1OUT = 47, + S2MPS13_REG_BUCK_RAMP1 = 48, + S2MPS13_REG_BUCK_RAMP2 = 49, + S2MPS13_REG_LDO_DVS1 = 50, + S2MPS13_REG_LDO_DVS2 = 51, + S2MPS13_REG_LDO_DVS3 = 52, + S2MPS13_REG_B6OUT2 = 53, + S2MPS13_REG_L1CTRL = 54, + S2MPS13_REG_L2CTRL = 55, + S2MPS13_REG_L3CTRL = 56, + S2MPS13_REG_L4CTRL = 57, + S2MPS13_REG_L5CTRL = 58, + S2MPS13_REG_L6CTRL = 59, + S2MPS13_REG_L7CTRL = 60, + S2MPS13_REG_L8CTRL = 61, + S2MPS13_REG_L9CTRL = 62, + S2MPS13_REG_L10CTRL = 63, + S2MPS13_REG_L11CTRL = 64, + S2MPS13_REG_L12CTRL = 65, + S2MPS13_REG_L13CTRL = 66, + S2MPS13_REG_L14CTRL = 67, + S2MPS13_REG_L15CTRL = 68, + S2MPS13_REG_L16CTRL = 69, + S2MPS13_REG_L17CTRL = 70, + S2MPS13_REG_L18CTRL = 71, + S2MPS13_REG_L19CTRL = 72, + S2MPS13_REG_L20CTRL = 73, + S2MPS13_REG_L21CTRL = 74, + S2MPS13_REG_L22CTRL = 75, + S2MPS13_REG_L23CTRL = 76, + S2MPS13_REG_L24CTRL = 77, + S2MPS13_REG_L25CTRL = 78, + S2MPS13_REG_L26CTRL = 79, + S2MPS13_REG_L27CTRL = 80, + S2MPS13_REG_L28CTRL = 81, + S2MPS13_REG_L29CTRL = 82, + S2MPS13_REG_L30CTRL = 83, + S2MPS13_REG_L31CTRL = 84, + S2MPS13_REG_L32CTRL = 85, + S2MPS13_REG_L33CTRL = 86, + S2MPS13_REG_L34CTRL = 87, + S2MPS13_REG_L35CTRL = 88, + S2MPS13_REG_L36CTRL = 89, + S2MPS13_REG_L37CTRL = 90, + S2MPS13_REG_L38CTRL = 91, + S2MPS13_REG_L39CTRL = 92, + S2MPS13_REG_L40CTRL = 93, + S2MPS13_REG_LDODSCH1 = 94, + S2MPS13_REG_LDODSCH2 = 95, + S2MPS13_REG_LDODSCH3 = 96, + S2MPS13_REG_LDODSCH4 = 97, + S2MPS13_REG_LDODSCH5 = 98, +}; -struct pl022 { - struct amba_device *adev; - struct vendor_data___2 *vendor; - resource_size_t phybase; - void *virtbase; - struct clk *clk; - struct spi_controller *master; - struct pl022_ssp_controller *master_info; - struct tasklet_struct pump_transfers; - struct spi_message *cur_msg; - struct spi_transfer *cur_transfer; - struct chip_data___2 *cur_chip; - bool next_msg_cs_active; - void *tx; - void *tx_end; - void *rx; - void *rx_end; - enum ssp_reading read; - enum ssp_writing write; - u32 exp_fifo_level; - enum ssp_rx_level_trig rx_lev_trig; - enum ssp_tx_level_trig tx_lev_trig; - struct dma_chan *dma_rx_channel; - struct dma_chan *dma_tx_channel; - struct sg_table sgt_rx; - struct sg_table sgt_tx; - char *dummypage; - bool dma_running; - int cur_cs; - struct gpio_desc *cur_gpiod; +enum { + UBI_VOL_PROP_DIRECT_WRITE = 1, }; -struct pl022_ssp_controller { - u16 bus_id; - u8 enable_dma: 1; - bool (*dma_filter)(struct dma_chan *, void *); - void *dma_rx_param; - void *dma_tx_param; - int autosuspend_delay; - bool rt; +struct ubi_rsvol_req { + __s64 bytes; + __s32 vol_id; }; -struct chip_data___2 { - u32 cr0; - u16 cr1; - u16 dmacr; - u16 cpsr; - u8 n_bytes; - bool enable_dma; - enum ssp_reading read; - enum ssp_writing write; - int xfer_type; +struct ubi_map_req { + __s32 lnum; + __s8 dtype; + __s8 padding[3]; }; -enum { - IF_PORT_UNKNOWN = 0, - IF_PORT_10BASE2 = 1, - IF_PORT_10BASET = 2, - IF_PORT_AUI = 3, - IF_PORT_100BASET = 4, - IF_PORT_100BASETX = 5, - IF_PORT_100BASEFX = 6, +struct ubi_set_vol_prop_req { + __u8 property; + __u8 padding[7]; + __u64 value; }; -union ks8851_tx_hdr { - u8 txb[6]; - __le16 txw[3]; +struct ubi_rnvol_req { + __s32 count; + __s8 padding1[12]; + struct { + __s32 vol_id; + __s16 name_len; + __s8 padding2[2]; + char name[128]; + } ents[32]; }; -struct ks8851_rxctrl { - u16 mchash[4]; - u16 rxcr1; - u16 rxcr2; +struct ubi_attach_req { + __s32 ubi_num; + __s32 mtd_num; + __s32 vid_hdr_offset; + __s16 max_beb_per1024; + __s8 disable_fm; + __s8 need_resv_pool; + __s8 padding[8]; }; -struct ks8851_net { - struct net_device *netdev; - spinlock_t statelock; +struct bcm2835_spidev; + +struct bcm2835_spi { + void *regs; + struct clk *clk; + struct gpio_desc *cs_gpio; + unsigned long clk_hz; + int irq; + struct spi_transfer *tfr; + struct spi_controller *ctlr; + const u8 *tx_buf; + u8 *rx_buf; + int tx_len; + int rx_len; + int tx_prologue; + int rx_prologue; + unsigned int tx_spillover; + struct dentry *debugfs_dir; long: 32; + u64 count_transfer_polling; + u64 count_transfer_irq; + u64 count_transfer_irq_after_polling; + u64 count_transfer_dma; + struct bcm2835_spidev *target; + unsigned int tx_dma_active; + unsigned int rx_dma_active; + struct dma_async_tx_descriptor *fill_tx_desc; + dma_addr_t fill_tx_addr; long: 32; +}; + +struct bcm2835_spidev { + u32 prepare_cs; + struct dma_async_tx_descriptor *clear_rx_desc; + dma_addr_t clear_rx_addr; long: 32; long: 32; long: 32; @@ -153676,10 +155561,8 @@ struct ks8851_net { long: 32; long: 32; long: 32; - union ks8851_tx_hdr txh; - u8 rxd[8]; - u8 txd[8]; long: 32; + u32 clear_rx_cs; long: 32; long: 32; long: 32; @@ -153689,30 +155572,6 @@ struct ks8851_net { long: 32; long: 32; long: 32; - u32 msg_enable; - u16 tx_space; - u8 fid; - u16 rc_ier; - u16 rc_rxqcr; - u16 rc_ccr; - struct mii_if_info mii; - struct ks8851_rxctrl rxctrl; - struct work_struct rxctrl_work; - struct sk_buff_head txq; - struct eeprom_93cx6 eeprom; - struct regulator *vdd_reg; - struct regulator *vdd_io; - struct gpio_desc *gpio; - struct mii_bus *mii_bus; - void (*lock)(struct ks8851_net *, unsigned long *); - void (*unlock)(struct ks8851_net *, unsigned long *); - unsigned int (*rdreg16)(struct ks8851_net *, unsigned int); - void (*wrreg16)(struct ks8851_net *, unsigned int, unsigned int); - void (*rdfifo)(struct ks8851_net *, u8 *, unsigned int); - void (*wrfifo)(struct ks8851_net *, struct sk_buff *, bool); - netdev_tx_t (*start_xmit)(struct sk_buff *, struct net_device *); - void (*rx_skb)(struct ks8851_net *, struct sk_buff *); - void (*flush_tx_work)(struct ks8851_net *); long: 32; long: 32; long: 32; @@ -153721,3742 +155580,3430 @@ struct ks8851_net { long: 32; }; -struct meson_dwmac { - struct device *dev; - void *reg; -}; - -struct phy_devm { - struct usb_phy *phy; - struct notifier_block *nb; -}; - -typedef void (*set_params_cb)(struct dwc2_hsotg *); - -enum xhci_ep_reset_type { - EP_HARD_RESET = 0, - EP_SOFT_RESET = 1, -}; - -struct js_event { - __u32 time; - __s16 value; - __u8 type; - __u8 number; -}; +typedef void (*btf_trace_spmi_write_begin)(void *, u8, u8, u16, u8, const u8 *); -struct joydev; +typedef void (*btf_trace_spmi_write_end)(void *, u8, u8, u16, int); -struct joydev_client { - struct js_event buffer[64]; - int head; - int tail; - int startup; - spinlock_t buffer_lock; - struct fasync_struct *fasync; - struct joydev *joydev; - struct list_head node; -}; +typedef void (*btf_trace_spmi_read_begin)(void *, u8, u8, u16); -struct js_corr { - __s32 coef[8]; - __s16 prec; - __u16 type; -}; +typedef void (*btf_trace_spmi_read_end)(void *, u8, u8, u16, int, u8, const u8 *); -struct JS_DATA_TYPE { - __s32 buttons; - __s32 x; - __s32 y; -}; +typedef void (*btf_trace_spmi_cmd)(void *, u8, u8, int); -struct JS_DATA_SAVE_TYPE_32 { - __s32 JS_TIMEOUT; - __s32 BUSY; - __s32 JS_EXPIRETIME; - __s32 JS_TIMELIMIT; - struct JS_DATA_TYPE JS_SAVE; - struct JS_DATA_TYPE JS_CORR; +struct trace_event_raw_spmi_write_begin { + struct trace_entry ent; + u8 opcode; + u8 sid; + u16 addr; + u8 len; + u32 __data_loc_buf; + char __data[0]; }; -struct joydev { - int open; - struct input_handle handle; - wait_queue_head_t wait; - struct list_head client_list; - spinlock_t client_lock; - struct mutex mutex; - long: 32; - struct device dev; - struct cdev cdev; - bool exist; - struct js_corr corr[64]; - struct JS_DATA_SAVE_TYPE_32 glue; - int nabs; - int nkey; - __u16 keymap[512]; - __u16 keypam[512]; - __u8 absmap[64]; - __u8 abspam[64]; - __s16 abs[64]; +struct trace_event_raw_spmi_write_end { + struct trace_entry ent; + u8 opcode; + u8 sid; + u16 addr; + int ret; + char __data[0]; }; -enum { - MAX8907_IRQ_VCHG_DC_OVP = 0, - MAX8907_IRQ_VCHG_DC_F = 1, - MAX8907_IRQ_VCHG_DC_R = 2, - MAX8907_IRQ_VCHG_THM_OK_R = 3, - MAX8907_IRQ_VCHG_THM_OK_F = 4, - MAX8907_IRQ_VCHG_MBATTLOW_F = 5, - MAX8907_IRQ_VCHG_MBATTLOW_R = 6, - MAX8907_IRQ_VCHG_RST = 7, - MAX8907_IRQ_VCHG_DONE = 8, - MAX8907_IRQ_VCHG_TOPOFF = 9, - MAX8907_IRQ_VCHG_TMR_FAULT = 10, - MAX8907_IRQ_GPM_RSTIN = 0, - MAX8907_IRQ_GPM_MPL = 1, - MAX8907_IRQ_GPM_SW_3SEC = 2, - MAX8907_IRQ_GPM_EXTON_F = 3, - MAX8907_IRQ_GPM_EXTON_R = 4, - MAX8907_IRQ_GPM_SW_1SEC = 5, - MAX8907_IRQ_GPM_SW_F = 6, - MAX8907_IRQ_GPM_SW_R = 7, - MAX8907_IRQ_GPM_SYSCKEN_F = 8, - MAX8907_IRQ_GPM_SYSCKEN_R = 9, - MAX8907_IRQ_RTC_ALARM1 = 0, - MAX8907_IRQ_RTC_ALARM0 = 1, +struct trace_event_raw_spmi_read_begin { + struct trace_entry ent; + u8 opcode; + u8 sid; + u16 addr; + char __data[0]; }; -enum { - RTC_SEC___2 = 0, - RTC_MIN___2 = 1, - RTC_HOUR___2 = 2, - RTC_WEEKDAY___2 = 3, - RTC_DATE = 4, - RTC_MONTH___2 = 5, - RTC_YEAR1 = 6, - RTC_YEAR2 = 7, +struct trace_event_raw_spmi_read_end { + struct trace_entry ent; + u8 opcode; + u8 sid; + u16 addr; + int ret; + u8 len; + u32 __data_loc_buf; + char __data[0]; }; -struct max8907_rtc { - struct max8907 *max8907; - struct regmap *regmap; - struct rtc_device *rtc_dev; - int irq; +struct trace_event_raw_spmi_cmd { + struct trace_entry ent; + u8 opcode; + u8 sid; + int ret; + char __data[0]; }; -struct meson_i2c; - -struct meson_i2c_data { - void (*set_clk_div)(struct meson_i2c *, unsigned int); +struct trace_event_data_offsets_spmi_write_begin { + u32 buf; }; -struct meson_i2c { - struct i2c_adapter adap; - struct device *dev; - void *regs; - struct clk *clk; - struct i2c_msg *msg; - int state; - bool last; - int count; - int pos; - int error; - spinlock_t lock; - struct completion done; - u32 tokens[2]; - int num_tokens; - const struct meson_i2c_data *data; +struct trace_event_data_offsets_spmi_read_end { + u32 buf; }; -enum { - STATE_IDLE___5 = 0, - STATE_READ___3 = 1, - STATE_WRITE___3 = 2, -}; +struct trace_event_data_offsets_spmi_write_end {}; -enum { - TOKEN_END = 0, - TOKEN_START = 1, - TOKEN_SLAVE_ADDR_WRITE = 2, - TOKEN_SLAVE_ADDR_READ = 3, - TOKEN_DATA = 4, - TOKEN_DATA_LAST = 5, - TOKEN_STOP = 6, -}; +struct trace_event_data_offsets_spmi_read_begin {}; -struct uniphier_tm_soc_data { - u32 map_base; - u32 block_base; - u32 tmod_setup_addr; -}; +struct trace_event_data_offsets_spmi_cmd {}; -struct uniphier_tm_dev { +struct mdio_regmap_config { + struct device *parent; struct regmap *regmap; - struct device *dev; - bool alert_en[3]; - struct thermal_zone_device *tz_dev; - const struct uniphier_tm_soc_data *data; -}; - -struct sdio_device_id; - -struct sdio_driver { - char *name; - const struct sdio_device_id *id_table; - int (*probe)(struct sdio_func *, const struct sdio_device_id *); - void (*remove)(struct sdio_func *); - struct device_driver drv; -}; - -struct sdio_device_id { - __u8 class; - __u16 vendor; - __u16 device; - kernel_ulong_t driver_data; -}; - -enum sh_mmcif_state { - STATE_IDLE___6 = 0, - STATE_REQUEST = 1, - STATE_IOS = 2, - STATE_TIMEOUT = 3, + char name[61]; + u8 valid_addr; + bool autoscan; }; -enum sh_mmcif_wait_for { - MMCIF_WAIT_FOR_REQUEST = 0, - MMCIF_WAIT_FOR_CMD = 1, - MMCIF_WAIT_FOR_MREAD = 2, - MMCIF_WAIT_FOR_MWRITE = 3, - MMCIF_WAIT_FOR_READ = 4, - MMCIF_WAIT_FOR_WRITE = 5, - MMCIF_WAIT_FOR_READ_END = 6, - MMCIF_WAIT_FOR_WRITE_END = 7, - MMCIF_WAIT_FOR_STOP = 8, +struct mdio_regmap_priv { + struct regmap *regmap; + u8 valid_addr; }; -struct sh_mmcif_host { - struct mmc_host *mmc; - struct mmc_request *mrq; - struct platform_device *pd; +struct emac_board_info { struct clk *clk; - int bus_width; - unsigned char timing; - bool sd_error; - bool dying; - long timeout; - void *addr; - u32 *pio_ptr; - spinlock_t lock; - enum sh_mmcif_state state; - enum sh_mmcif_wait_for wait_for; - struct delayed_work timeout_work; - size_t blocksize; - int sg_idx; - int sg_blkidx; - bool power; - bool ccs_enable; - bool clk_ctrl2_enable; - struct mutex thread_lock; - u32 clkdiv_map; - struct dma_chan *chan_rx; - struct dma_chan *chan_tx; - struct completion dma_complete; - bool dma_active; -}; - -struct sh_mmcif_plat_data { - unsigned int slave_id_tx; - unsigned int slave_id_rx; - u8 sup_pclk; - unsigned long caps; - u32 ocr; -}; - -struct trusted_foundations_platform_data { - unsigned int version_major; - unsigned int version_minor; -}; - -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 { - const efi_runtime_services_t *runtime; - unsigned int runtime_version; - unsigned int runtime_supported_mask; - unsigned long acpi; - unsigned long acpi20; - unsigned long smbios; - unsigned long smbios3; - unsigned long esrt; - unsigned long tpm_log; - unsigned long tpm_final_log; - unsigned long mokvar_table; - unsigned long coco_secret; - unsigned long unaccepted; - efi_get_time_t *get_time; - efi_set_time_t *set_time; - efi_get_wakeup_time_t *get_wakeup_time; - efi_set_wakeup_time_t *set_wakeup_time; - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_set_variable_t *set_variable_nonblocking; - efi_query_variable_info_t *query_variable_info; - efi_query_variable_info_t *query_variable_info_nonblocking; - efi_update_capsule_t *update_capsule; - efi_query_capsule_caps_t *query_capsule_caps; - efi_get_next_high_mono_count_t *get_next_high_mono_count; - efi_reset_system_t *reset_system; - struct efi_memory_map memmap; - unsigned long flags; -}; - -struct linux_efi_memreserve { - int size; - atomic_t count; - phys_addr_t next; - struct { - phys_addr_t base; - phys_addr_t size; - } entry[0]; -}; - -typedef efi_status_t efi_query_variable_store_t(u32, unsigned long, bool); - -struct efivar_operations { - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_set_variable_t *set_variable_nonblocking; - efi_query_variable_store_t *query_variable_store; - efi_query_variable_info_t *query_variable_info; -}; - -struct efivars { - struct kset *kset; - const struct efivar_operations *ops; -}; - -struct linux_efi_random_seed { - u32 size; - u8 bits[0]; -}; - -typedef struct { - u16 version; - u16 length; - u32 runtime_services_supported; -} efi_rt_properties_table_t; - -struct linux_efi_initrd { - unsigned long base; - unsigned long size; -}; - -typedef struct { - efi_guid_t guid; - u64 table; -} efi_config_table_64_t; - -struct qcom_ipcc_chan_info; - -struct qcom_ipcc { struct device *dev; - void *base; - struct irq_domain *irq_domain; - struct mbox_chan *chans; - struct qcom_ipcc_chan_info *mchan; - long: 32; - struct mbox_controller mbox; - int num_chans; - int irq; -}; - -struct qcom_ipcc_chan_info { - u16 client_id; - u16 signal_id; -}; - -struct iio_sw_trigger_ops; - -struct iio_sw_trigger_type { - const char *name; - struct module *owner; - const struct iio_sw_trigger_ops *ops; - struct list_head list; - struct config_group *group; -}; - -struct iio_sw_trigger; - -struct iio_sw_trigger_ops { - struct iio_sw_trigger * (*probe)(const char *); - int (*remove)(struct iio_sw_trigger *); -}; - -struct iio_sw_trigger { - struct iio_trigger *trigger; - struct iio_sw_trigger_type *trigger_type; - struct config_group group; + struct platform_device *pdev; + spinlock_t lock; + void *membase; + u32 msg_enable; + struct net_device *ndev; + u16 tx_fifo_stat; + int emacrx_completed_flag; + struct device_node *phy_node; + unsigned int link; + unsigned int speed; + unsigned int duplex; + phy_interface_t phy_interface; + struct dma_chan *rx_chan; + phys_addr_t emac_rx_fifo; }; -struct iio_hrtimer_info { - struct iio_sw_trigger swt; - struct hrtimer timer; - int sampling_frequency[2]; - ktime_t period; +struct emac_dma_req { + struct emac_board_info *db; + struct dma_async_tx_descriptor *desc; + struct sk_buff *skb; + dma_addr_t rxbuf; + int count; }; -typedef void (*btf_trace_icc_set_bw)(void *, struct icc_path *, struct icc_node *, int, u32, u32); +enum { + CPSW_RX_VLAN_ENCAP_HDR_PKT_VLAN_TAG = 0, + CPSW_RX_VLAN_ENCAP_HDR_PKT_RESERV = 1, + CPSW_RX_VLAN_ENCAP_HDR_PKT_PRIO_TAG = 2, + CPSW_RX_VLAN_ENCAP_HDR_PKT_UNTAG = 3, +}; -struct icc_req { - struct hlist_node req_node; - struct icc_node *node; - struct device *dev; - bool enabled; - u32 tag; - u32 avg_bw; - u32 peak_bw; +enum { + TC_MQPRIO_MODE_DCB = 0, + TC_MQPRIO_MODE_CHANNEL = 1, + __TC_MQPRIO_MODE_MAX = 2, }; -struct icc_path { - const char *name; - size_t num_nodes; - struct icc_req reqs[0]; +struct mxs_phy_data { + unsigned int flags; }; -typedef void (*btf_trace_icc_set_bw_end)(void *, struct icc_path *, int); +struct mxs_phy { + struct usb_phy phy; + struct clk *clk; + const struct mxs_phy_data *data; + struct regmap *regmap_anatop; + int port_id; + u32 tx_reg_set; + u32 tx_reg_mask; +}; -struct trace_event_raw_icc_set_bw { - struct trace_entry ent; - u32 __data_loc_path_name; - u32 __data_loc_dev; - u32 __data_loc_node_name; - u32 avg_bw; - u32 peak_bw; - u32 node_avg_bw; - u32 node_peak_bw; - char __data[0]; +struct st_ohci_platform_priv { + struct clk *clks[3]; + struct clk *clk48; + struct reset_control *rst; + struct reset_control *pwr; + struct phy *phy; }; -struct trace_event_raw_icc_set_bw_end { - struct trace_entry ent; - u32 __data_loc_path_name; - u32 __data_loc_dev; - int ret; - char __data[0]; +enum usb3503_mode { + USB3503_MODE_UNKNOWN = 0, + USB3503_MODE_HUB = 1, + USB3503_MODE_STANDBY = 2, + USB3503_MODE_BYPASS = 3, }; -struct trace_event_data_offsets_icc_set_bw { - u32 path_name; - u32 dev; - u32 node_name; +struct usb3503 { + enum usb3503_mode mode; + struct regmap *regmap; + struct device *dev; + struct clk *clk; + u8 port_off_mask; + struct gpio_desc *bypass; + struct gpio_desc *intn; + struct gpio_desc *reset; + struct gpio_desc *connect; + bool secondary_ref_clk; }; -struct trace_event_data_offsets_icc_set_bw_end { - u32 path_name; - u32 dev; +struct usb3503_platform_data { + enum usb3503_mode initial_mode; + u8 port_off_mask; }; -struct netdev_queue_attribute { - struct attribute attr; - ssize_t (*show)(struct netdev_queue *, char *); - ssize_t (*store)(struct netdev_queue *, const char *, size_t); +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 { - ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0, - ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1, - ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2, +enum synaptics_pkt_type { + SYN_NEWABS = 0, + SYN_NEWABS_STRICT = 1, + SYN_NEWABS_RELAXED = 2, + SYN_OLDABS = 3, }; -enum { - ETHTOOL_A_RINGS_UNSPEC = 0, - ETHTOOL_A_RINGS_HEADER = 1, - ETHTOOL_A_RINGS_RX_MAX = 2, - ETHTOOL_A_RINGS_RX_MINI_MAX = 3, - ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4, - ETHTOOL_A_RINGS_TX_MAX = 5, - ETHTOOL_A_RINGS_RX = 6, - ETHTOOL_A_RINGS_RX_MINI = 7, - ETHTOOL_A_RINGS_RX_JUMBO = 8, - ETHTOOL_A_RINGS_TX = 9, - ETHTOOL_A_RINGS_RX_BUF_LEN = 10, - ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11, - ETHTOOL_A_RINGS_CQE_SIZE = 12, - ETHTOOL_A_RINGS_TX_PUSH = 13, - ETHTOOL_A_RINGS_RX_PUSH = 14, - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15, - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16, - __ETHTOOL_A_RINGS_CNT = 17, - ETHTOOL_A_RINGS_MAX = 16, +enum rmi_sensor_type { + rmi_sensor_default = 0, + rmi_sensor_touchscreen = 1, + rmi_sensor_touchpad = 2, }; -enum ethtool_supported_ring_param { - ETHTOOL_RING_USE_RX_BUF_LEN = 1, - ETHTOOL_RING_USE_CQE_SIZE = 2, - ETHTOOL_RING_USE_TX_PUSH = 4, - ETHTOOL_RING_USE_RX_PUSH = 8, - ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16, +enum rmi_reg_state { + RMI_REG_STATE_DEFAULT = 0, + RMI_REG_STATE_OFF = 1, + RMI_REG_STATE_ON = 2, }; -struct rings_reply_data { - struct ethnl_reply_data base; - struct ethtool_ringparam ringparam; - struct kernel_ethtool_ringparam kernel_ringparam; - u32 supported_ring_params; +enum { + SYNAPTICS_INTERTOUCH_NOT_SET = -1, + SYNAPTICS_INTERTOUCH_OFF = 0, + SYNAPTICS_INTERTOUCH_ON = 1, }; -struct mld2_grec { - __u8 grec_type; - __u8 grec_auxwords; - __be16 grec_nsrcs; - struct in6_addr grec_mca; - struct in6_addr grec_src[0]; +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 mld2_report { - struct icmp6hdr mld2r_hdr; - struct mld2_grec mld2r_grec[0]; +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 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 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 igmp6_mc_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct inet6_dev *idev; +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 igmp6_mcf_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct inet6_dev *idev; - struct ifmcaddr6 *im; +struct rmi_f01_power_management { + enum rmi_reg_state nosleep; + u8 wakeup_threshold; + u8 doze_holdoff; + u8 doze_interval; }; -enum xprt_xid_rb_cmp { - XID_RB_EQUAL = 0, - XID_RB_LEFT = 1, - XID_RB_RIGHT = 2, +struct rmi_gpio_data { + bool buttonpad; + bool trackstick_buttons; + bool disable; }; -enum rfkill_hard_block_reasons { - RFKILL_HARD_BLOCK_SIGNAL = 1, - RFKILL_HARD_BLOCK_NOT_OWNER = 2, +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; }; -enum rfkill_operation { - RFKILL_OP_ADD = 0, - RFKILL_OP_DEL = 1, - RFKILL_OP_CHANGE = 2, - RFKILL_OP_CHANGE_ALL = 3, +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; }; -enum rfkill_user_states { - RFKILL_USER_STATE_SOFT_BLOCKED = 0, - RFKILL_USER_STATE_UNBLOCKED = 1, - RFKILL_USER_STATE_HARD_BLOCKED = 2, +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; }; -struct rfkill { +struct uniphier_fi2c_priv { + struct completion comp; + struct i2c_adapter adap; + void *membase; + struct clk *clk; + unsigned int len; + u8 *buf; + u32 enabled_irqs; + int error; + unsigned int flags; + unsigned int busy_cnt; + unsigned int clk_cycle; 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; - long: 32; - 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]; - long: 32; }; -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; -}; +typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *); -struct rfkill_event_ext { - __u32 idx; - __u8 type; - __u8 op; - __u8 soft; - __u8 hard; - __u8 hard_block_reasons; -} __attribute__((packed)); +typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, unsigned long); -struct rfkill_int_event { - struct list_head list; - struct rfkill_event_ext ev; -}; +typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type); -struct uevent_sock { - struct list_head list; - struct sock *sk; -}; +typedef void (*btf_trace_thermal_power_cpu_get_power_simple)(void *, int, u32); -struct omap2_sms_regs { - u32 sms_sysconfig; -}; +typedef void (*btf_trace_thermal_power_cpu_limit)(void *, const struct cpumask *, unsigned int, unsigned long, u32); -struct omap_smp_config { - unsigned long cpu1_rstctrl_pa; - void *cpu1_rstctrl_va; - void *scu_base; - void *wakeupgen_base; - void *startup_addr; +typedef void (*btf_trace_thermal_power_devfreq_get_power)(void *, struct thermal_cooling_device *, struct devfreq_dev_status *, unsigned long, u32); + +typedef void (*btf_trace_thermal_power_devfreq_limit)(void *, struct thermal_cooling_device *, unsigned long, unsigned long, u32); + +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]; }; -enum rwsem_waiter_type { - RWSEM_WAITING_FOR_WRITE = 0, - RWSEM_WAITING_FOR_READ = 1, +struct trace_event_raw_cdev_update { + struct trace_entry ent; + u32 __data_loc_type; + unsigned long target; + char __data[0]; }; -enum rwsem_wake_type { - RWSEM_WAKE_ANY = 0, - RWSEM_WAKE_READERS = 1, - RWSEM_WAKE_READ_OWNED = 2, +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]; }; -enum owner_state { - OWNER_NULL = 1, - OWNER_WRITER = 2, - OWNER_READER = 4, - OWNER_NONSPINNABLE = 8, +struct trace_event_raw_thermal_power_cpu_get_power_simple { + struct trace_entry ent; + int cpu; + u32 power; + char __data[0]; }; -struct rwsem_waiter { - struct list_head list; - struct task_struct *task; - enum rwsem_waiter_type type; - unsigned long timeout; - bool handoff_set; +struct trace_event_raw_thermal_power_cpu_limit { + struct trace_entry ent; + u32 __data_loc_cpumask; + unsigned int freq; + unsigned long cdev_state; + u32 power; + char __data[0]; }; -enum { - IRQC_IS_HARDIRQ = 0, - IRQC_IS_NESTED = 1, +struct trace_event_raw_thermal_power_devfreq_get_power { + struct trace_entry ent; + u32 __data_loc_type; + unsigned long freq; + u32 busy_time; + u32 total_time; + u32 power; + char __data[0]; }; -struct stacktrace_cookie { - unsigned long *store; - unsigned int size; - unsigned int skip; - unsigned int len; +struct trace_event_raw_thermal_power_devfreq_limit { + struct trace_entry ent; + u32 __data_loc_type; + unsigned int freq; + unsigned long cdev_state; + u32 power; + char __data[0]; }; -typedef unsigned long perf_trace_t[2048]; +struct trace_event_data_offsets_thermal_temperature { + u32 thermal_zone; +}; -struct lpm_trie_node; +struct trace_event_data_offsets_cdev_update { + u32 type; +}; -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct trace_event_data_offsets_thermal_zone_trip { + u32 thermal_zone; }; -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 trace_event_data_offsets_thermal_power_cpu_limit { + u32 cpumask; }; -struct bpf_lpm_trie_key { - __u32 prefixlen; - __u8 data[0]; +struct trace_event_data_offsets_thermal_power_devfreq_get_power { + u32 type; }; -typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *); +struct trace_event_data_offsets_thermal_power_devfreq_limit { + u32 type; +}; -typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *); +struct trace_event_data_offsets_thermal_power_cpu_get_power_simple {}; -struct lru_rotate { - local_lock_t lock; - struct folio_batch fbatch; +struct sdhci_s3c_drv_data { + unsigned int sdhci_quirks; + bool no_divider; }; -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; +enum cd_types___2 { + S3C_SDHCI_CD_INTERNAL = 0, + S3C_SDHCI_CD_EXTERNAL = 1, + S3C_SDHCI_CD_GPIO = 2, + S3C_SDHCI_CD_NONE = 3, + S3C_SDHCI_CD_PERMANENT = 4, }; -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 s3c_sdhci_platdata { + unsigned int max_width; + unsigned int host_caps; + unsigned int host_caps2; + unsigned int pm_caps; + enum cd_types___2 cd_type; + int ext_cd_gpio; + bool ext_cd_gpio_invert; + int (*ext_cd_init)(void (*)(struct platform_device *, int)); + int (*ext_cd_cleanup)(void (*)(struct platform_device *, int)); + void (*cfg_gpio)(struct platform_device *, int); }; -struct trace_event_raw_mm_lru_activate { - struct trace_entry ent; - struct folio *folio; - unsigned long pfn; - char __data[0]; +struct sdhci_s3c { + struct sdhci_host *host; + struct platform_device *pdev; + struct resource *ioarea; + struct s3c_sdhci_platdata *pdata; + int cur_clk; + int ext_cd_irq; + struct clk *clk_io; + struct clk *clk_bus[4]; + unsigned long clk_rates[4]; + bool no_divider; }; -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 {}; +struct scmi_requested_dev { + const struct scmi_device_id *id_table; + struct list_head node; +}; -struct vma_swap_readahead { - unsigned short win; - unsigned short offset; - unsigned short nr_pte; +enum scmi_performance_protocol_cmd { + PERF_DOMAIN_ATTRIBUTES = 3, + PERF_DESCRIBE_LEVELS = 4, + PERF_LIMITS_SET = 5, + PERF_LIMITS_GET = 6, + PERF_LEVEL_SET = 7, + PERF_LEVEL_GET = 8, + PERF_NOTIFY_LIMITS = 9, + PERF_NOTIFY_LEVEL = 10, + PERF_DESCRIBE_FASTCHANNEL = 11, + PERF_DOMAIN_NAME_GET = 12, }; -struct old_utimbuf32 { - old_time32_t actime; - old_time32_t modtime; +enum { + PERF_FC_LEVEL = 0, + PERF_FC_LIMIT = 1, + PERF_FC_MAX = 2, }; -struct mb_cache { - struct hlist_bl_head *c_hash; - int c_bucket_bits; - unsigned long c_max_entries; - spinlock_t c_list_lock; - struct list_head c_list; - unsigned long c_entry_count; - struct shrinker c_shrink; - struct work_struct c_shrink_work; +struct scmi_opp { + u32 perf; + u32 power; + u32 trans_latency_us; + u32 indicative_freq; + u32 level_index; + struct hlist_node hash; }; -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 perf_dom_info; + +struct scmi_perf_info { + u32 version; + u16 num_domains; + enum scmi_power_scale power_scale; long: 32; + u64 stats_addr; + u32 stats_size; + struct perf_dom_info *dom_info; }; -struct iomap_readpage_ctx { - struct folio *cur_folio; - bool cur_folio_in_bio; - struct bio *bio; - struct readahead_control *rac; +struct perf_dom_info { + u32 id; + bool set_limits; + bool perf_limit_notify; + bool perf_level_notify; + bool perf_fastchannels; + bool level_indexing_mode; + u32 opp_count; + u32 sustained_freq_khz; + u32 sustained_perf_level; + unsigned long mult_factor; + struct scmi_perf_domain_info info; + struct scmi_opp opp[16]; + struct scmi_fc_info *fc_info; + struct xarray opps_by_idx; + struct xarray opps_by_lvl; + struct hlist_head opps_by_freq[16]; }; -struct iomap_page { - atomic_t read_bytes_pending; - atomic_t write_bytes_pending; - spinlock_t uptodate_lock; - unsigned long uptodate[0]; +struct scmi_msg_resp_perf_attributes { + __le16 num_domains; + __le16 flags; + __le32 stats_addr_low; + __le32 stats_addr_high; + __le32 stats_size; }; -struct iomap_writeback_ops; - -struct iomap_writepage_ctx { - struct iomap iomap; - struct iomap_ioend *ioend; - const struct iomap_writeback_ops *ops; +struct scmi_msg_resp_perf_domain_attributes { + __le32 flags; + __le32 rate_limit_us; + __le32 sustained_freq_khz; + __le32 sustained_perf_level; + u8 name[16]; }; -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); +struct scmi_perf_ipriv { + u32 version; + struct perf_dom_info *perf_dom; }; -struct ext4_getfsmap_info { - struct ext4_fsmap_head *gfi_head; - ext4_fsmap_format_t gfi_formatter; - void *gfi_format_arg; - long: 32; - 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; - long: 32; +struct scmi_msg_resp_perf_describe_levels { + __le16 num_returned; + __le16 num_remaining; + struct { + __le32 perf_val; + __le32 power; + __le16 transition_latency_us; + __le16 reserved; + } opp[0]; }; -struct ext4_getfsmap_dev { - int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); - u32 gfd_dev; +struct scmi_msg_resp_perf_describe_levels_v4 { + __le16 num_returned; + __le16 num_remaining; + struct { + __le32 perf_val; + __le32 power; + __le16 transition_latency_us; + __le16 reserved; + __le32 indicative_freq; + __le32 level_index; + } opp[0]; }; -struct nfs4_filelayout { - struct pnfs_layout_hdr generic_hdr; - struct pnfs_ds_commit_info commit_info; - long: 32; +struct scmi_perf_set_limits { + __le32 domain; + __le32 max_level; + __le32 min_level; }; -struct pstore_zbackend { - int (*zbufsize)(size_t); - const char *name; +struct scmi_perf_get_limits { + __le32 max_level; + __le32 min_level; }; -enum dd_prio { - DD_RT_PRIO = 0, - DD_BE_PRIO = 1, - DD_IDLE_PRIO = 2, - DD_PRIO_MAX = 2, +struct scmi_perf_set_level { + __le32 domain; + __le32 level; }; -enum dd_data_dir { - DD_READ = 0, - DD_WRITE = 1, +struct scmi_perf_notify_level_or_limits { + __le32 domain; + __le32 notify_enable; }; -struct io_stats_per_prio { - uint32_t inserted; - uint32_t merged; - uint32_t dispatched; - atomic_t completed; +struct scmi_msg_perf_describe_levels { + __le32 domain; + __le32 level_index; }; -struct dd_per_prio { - struct list_head dispatch; - struct rb_root sort_list[2]; - struct list_head fifo_list[2]; - sector_t latest_pos[2]; - struct io_stats_per_prio stats; +struct scmi_perf_limits_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 range_max; + __le32 range_min; }; -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; +struct scmi_perf_limits_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int range_max; + unsigned int range_min; }; -struct event_lpi_map { - unsigned long *lpi_map; - u16 *col_map; - irq_hw_number_t lpi_base; - int nr_lpis; - raw_spinlock_t vlpi_lock; - struct its_vm *vm; - struct its_vlpi_map *vlpi_maps; - int nr_vlpis; +struct scmi_perf_level_notify_payld { + __le32 agent_id; + __le32 domain_id; + __le32 performance_level; }; -struct its_node; +struct scmi_perf_level_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int domain_id; + unsigned int performance_level; + long: 32; +}; -struct its_device { - struct list_head entry; - struct its_node *its; - struct event_lpi_map event_map; - void *itt; - u32 nr_ites; - u32 device_id; - bool shared; +struct scmi_smc { + int irq; + struct scmi_chan_info *cinfo; + struct scmi_shared_mem *shmem; + struct mutex shmem_lock; + atomic_t inflight; + unsigned long func_id; + unsigned long param_page; + unsigned long param_offset; + unsigned long cap_id; }; -struct its_baser { +struct dmtimer_systimer { void *base; - long: 32; - u64 val; - u32 order; - u32 psz; + u8 sysc; + u8 irq_stat; + u8 irq_ena; + u8 pend; + u8 load; + u8 counter; + u8 ctrl; + u8 wakeup; + u8 ifctrl; + struct clk *fck; + struct clk *ick; + unsigned long rate; }; -struct its_cmd_block; - -struct its_collection; - -struct its_node { - raw_spinlock_t lock; - struct mutex dev_alloc_lock; - struct list_head entry; - void *base; - void *sgir_base; - phys_addr_t phys_base; - struct its_cmd_block *cmd_base; - struct its_cmd_block *cmd_write; +struct dmtimer_clockevent { + struct clock_event_device dev; + struct dmtimer_systimer t; + u32 period; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; long: 32; - struct its_baser tables[8]; - struct its_collection *collections; - struct fwnode_handle *fwnode_handle; - u64 (*get_msi_base)(struct its_device *); long: 32; - u64 typer; - u64 cbaser_save; - u32 ctlr_save; - u32 mpidr; - struct list_head its_device_list; - u64 flags; - unsigned long list_nr; - int numa_node; - unsigned int msi_domain_flags; - u32 pre_its_base; - int vlpi_redist_offset; long: 32; }; -struct its_cmd_block { - union { - u64 raw_cmd[4]; - __le64 raw_cmd_le[4]; - }; +struct dmtimer_clocksource { + struct clocksource dev; + struct dmtimer_systimer t; + unsigned int loadval; }; -struct its_collection { - u64 target_address; - u16 col_id; - long: 32; +struct alias_prop { + struct list_head link; + const char *alias; + struct device_node *np; + int id; + char stem[0]; }; -struct cpu_lpi_count { - atomic_t managed; - atomic_t unmanaged; -}; +typedef void (*btf_trace_devfreq_frequency)(void *, struct devfreq *, unsigned long, unsigned long); -struct lpi_range { - struct list_head entry; - u32 base_id; - u32 span; +typedef void (*btf_trace_devfreq_monitor)(void *, struct devfreq *); + +enum devfreq_parent_dev_type { + DEVFREQ_PARENT_DEV = 0, + CPUFREQ_PARENT_DEV = 1, }; -struct its_cmd_desc { - union { - struct { - struct its_device *dev; - u32 event_id; - } its_inv_cmd; - struct { - struct its_device *dev; - u32 event_id; - } its_clear_cmd; - struct { - struct its_device *dev; - u32 event_id; - } its_int_cmd; - struct { - struct its_device *dev; - int valid; - } its_mapd_cmd; - struct { - struct its_collection *col; - int valid; - } its_mapc_cmd; - struct { - struct its_device *dev; - u32 phys_id; - u32 event_id; - } its_mapti_cmd; - struct { - struct its_device *dev; - struct its_collection *col; - u32 event_id; - } its_movi_cmd; - struct { - struct its_device *dev; - u32 event_id; - } its_discard_cmd; - struct { - struct its_collection *col; - } its_invall_cmd; - struct { - struct its_vpe *vpe; - } its_vinvall_cmd; - struct { - struct its_vpe *vpe; - struct its_collection *col; - bool valid; - } its_vmapp_cmd; - struct { - struct its_vpe *vpe; - struct its_device *dev; - u32 virt_id; - u32 event_id; - bool db_enabled; - } its_vmapti_cmd; - struct { - struct its_vpe *vpe; - struct its_device *dev; - u32 event_id; - bool db_enabled; - } its_vmovi_cmd; - struct { - struct its_vpe *vpe; - struct its_collection *col; - u16 seq_num; - u16 its_list; - } its_vmovp_cmd; - struct { - struct its_vpe *vpe; - } its_invdb_cmd; - struct { - struct its_vpe *vpe; - u8 sgi; - u8 priority; - bool enable; - bool group; - bool clear; - } its_vsgi_cmd; - }; +struct trace_event_raw_devfreq_frequency { + struct trace_entry ent; + u32 __data_loc_dev_name; + unsigned long freq; + unsigned long prev_freq; + unsigned long busy_time; + unsigned long total_time; + char __data[0]; }; -typedef struct its_collection * (*its_cmd_builder_t)(struct its_node *, struct its_cmd_block *, struct its_cmd_desc *); +struct trace_event_raw_devfreq_monitor { + struct trace_entry ent; + unsigned long freq; + unsigned long busy_time; + unsigned long total_time; + unsigned int polling_ms; + u32 __data_loc_dev_name; + char __data[0]; +}; -typedef struct its_vpe * (*its_cmd_vbuilder_t)(struct its_node *, struct its_cmd_block *, struct its_cmd_desc *); +struct trace_event_data_offsets_devfreq_frequency { + u32 dev_name; +}; -enum spear1310_miphy_mode { - SATA___2 = 0, - PCIE___2 = 1, +struct trace_event_data_offsets_devfreq_monitor { + u32 dev_name; }; -struct spear1310_miphy_priv { - u32 id; - enum spear1310_miphy_mode mode; - struct regmap *misc; - struct phy *phy; +struct devfreq_freqs { + unsigned long old; + unsigned long new; }; -enum base_type { - REG = 0, - IO_CTRL = 1, +struct devfreq_notifier_devres { + struct devfreq *devfreq; + struct notifier_block *nb; + unsigned int list; }; -struct nsp_gpio { - struct device *dev; - void *base; - void *io_ctrl; - struct gpio_chip gc; - struct pinctrl_dev *pctl; - struct pinctrl_desc pctldesc; - raw_spinlock_t lock; +struct devfreq_passive_data { + struct devfreq *parent; + int (*get_target_freq)(struct devfreq *, unsigned long *); + enum devfreq_parent_dev_type parent_type; + struct devfreq *this; + struct notifier_block nb; + struct list_head cpu_data_list; }; -struct nmk_gpio_chip { - struct gpio_chip chip; - void *addr; - struct clk *clk; - unsigned int bank; - void (*set_ioforce)(bool); - spinlock_t lock; - bool sleepmode; - u32 edge_rising; - u32 edge_falling; - u32 real_wake; - u32 rwimsc; - u32 fwimsc; - u32 rimsc; - u32 fimsc; - u32 pull_up; - u32 lowemi; +struct ocotp_ctrl_reg { + u32 bm_addr; + u32 bm_busy; + u32 bm_error; + u32 bm_rel_shadows; }; -struct nmk_cfg_param { - const char *property; - unsigned long config; - const unsigned long *choice; - int size; +struct ocotp_priv; + +struct ocotp_params { + unsigned int nregs; + unsigned int bank_address_words; + void (*set_timing)(struct ocotp_priv *); + struct ocotp_ctrl_reg ctrl; }; -enum prcm_gpiocr_altcx_index { - PRCM_IDX_GPIOCR_ALTC1 = 0, - PRCM_IDX_GPIOCR_ALTC2 = 1, - PRCM_IDX_GPIOCR_ALTC3 = 2, - PRCM_IDX_GPIOCR_ALTC4 = 3, - PRCM_IDX_GPIOCR_ALTC_MAX = 4, +struct ocotp_priv { + struct device *dev; + struct clk *clk; + void *base; + const struct ocotp_params *params; + struct nvmem_config *config; }; -enum nmk_gpio_irq_type { - NORMAL = 0, - WAKE = 1, -}; +typedef void (*btf_trace_icc_set_bw)(void *, struct icc_path *, struct icc_node *, int, u32, u32); -enum nmk_gpio_slpm { - NMK_GPIO_SLPM_INPUT = 0, - NMK_GPIO_SLPM_WAKEUP_ENABLE = 0, - NMK_GPIO_SLPM_NOCHANGE = 1, - NMK_GPIO_SLPM_WAKEUP_DISABLE = 1, +struct icc_req { + struct hlist_node req_node; + struct icc_node *node; + struct device *dev; + bool enabled; + u32 tag; + u32 avg_bw; + u32 peak_bw; }; -enum nmk_gpio_pull { - NMK_GPIO_PULL_NONE = 0, - NMK_GPIO_PULL_UP = 1, - NMK_GPIO_PULL_DOWN = 2, +struct icc_path { + const char *name; + size_t num_nodes; + struct icc_req reqs[0]; }; -typedef unsigned long pin_cfg_t; +typedef void (*btf_trace_icc_set_bw_end)(void *, struct icc_path *, int); -struct nmk_pinctrl { - struct device *dev; - struct pinctrl_dev *pctl; - const struct nmk_pinctrl_soc_data *soc; - void *prcm_base; +struct trace_event_raw_icc_set_bw { + struct trace_entry ent; + u32 __data_loc_path_name; + u32 __data_loc_dev; + u32 __data_loc_node_name; + u32 avg_bw; + u32 peak_bw; + u32 node_avg_bw; + u32 node_peak_bw; + char __data[0]; }; -enum tegra_pinconf_param { - TEGRA_PINCONF_PARAM_PULL = 0, - TEGRA_PINCONF_PARAM_TRISTATE = 1, - TEGRA_PINCONF_PARAM_ENABLE_INPUT = 2, - TEGRA_PINCONF_PARAM_OPEN_DRAIN = 3, - TEGRA_PINCONF_PARAM_LOCK = 4, - TEGRA_PINCONF_PARAM_IORESET = 5, - TEGRA_PINCONF_PARAM_RCV_SEL = 6, - TEGRA_PINCONF_PARAM_HIGH_SPEED_MODE = 7, - TEGRA_PINCONF_PARAM_SCHMITT = 8, - TEGRA_PINCONF_PARAM_LOW_POWER_MODE = 9, - TEGRA_PINCONF_PARAM_DRIVE_DOWN_STRENGTH = 10, - TEGRA_PINCONF_PARAM_DRIVE_UP_STRENGTH = 11, - TEGRA_PINCONF_PARAM_SLEW_RATE_FALLING = 12, - TEGRA_PINCONF_PARAM_SLEW_RATE_RISING = 13, - TEGRA_PINCONF_PARAM_DRIVE_TYPE = 14, +struct trace_event_raw_icc_set_bw_end { + struct trace_entry ent; + u32 __data_loc_path_name; + u32 __data_loc_dev; + int ret; + char __data[0]; }; -struct cfg_param { - const char *property; - enum tegra_pinconf_param param; +struct trace_event_data_offsets_icc_set_bw { + u32 path_name; + u32 dev; + u32 node_name; }; -struct pwm_export { - struct device child; - struct pwm_device *pwm; - struct mutex lock; - struct pwm_state suspend; +struct trace_event_data_offsets_icc_set_bw_end { + u32 path_name; + u32 dev; }; enum { - RCAR_PCI_ACCESS_READ = 0, - RCAR_PCI_ACCESS_WRITE = 1, + NETDEV_A_DEV_IFINDEX = 1, + NETDEV_A_DEV_PAD = 2, + NETDEV_A_DEV_XDP_FEATURES = 3, + NETDEV_A_DEV_XDP_ZC_MAX_SEGS = 4, + NETDEV_A_DEV_XDP_RX_METADATA_FEATURES = 5, + __NETDEV_A_DEV_MAX = 6, + NETDEV_A_DEV_MAX = 5, }; -struct rcar_msi { - unsigned long used[1]; - struct irq_domain *domain; - struct mutex map_lock; - spinlock_t mask_lock; - int irq1; - int irq2; +enum netdev_xdp_rx_metadata { + NETDEV_XDP_RX_METADATA_TIMESTAMP = 1, + NETDEV_XDP_RX_METADATA_HASH = 2, + NETDEV_XDP_RX_METADATA_MASK = 3, }; -struct rcar_pcie_host { - struct rcar_pcie pcie; - struct phy *phy; - struct clk *bus_clk; - struct rcar_msi msi; - int (*phy_init_fn)(struct rcar_pcie_host *); +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, }; -struct clk_utmi { - struct clk_hw hw; - struct regmap *regmap_pmc; - struct regmap *regmap_sfr; - struct at91_clk_pms pms; +enum { + NETDEV_NLGRP_MGMT = 0, }; -struct mtk_clk_cpumux { - struct clk_hw hw; - struct regmap *regmap; - u32 reg; - u32 mask; - u8 shift; +struct percpu_free_defer { + struct callback_head rcu; + void __attribute__((btf_type_tag("percpu"))) *ptr; }; -enum gdsc_status { - GDSC_OFF = 0, - GDSC_ON = 1, +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, }; -struct gates_data { - unsigned long mask[1]; +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, }; -struct clk_prcmu { - struct clk_hw hw; - u8 cg_sel; - int opp_requested; +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, }; -struct clk_prcmu_clkout { - struct clk_hw hw; - u8 clkout_id; - u8 source; - u8 divider; +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 edmacc_param { - u32 opt; - u32 src; - u32 a_b_cnt; - u32 dst; - u32 src_dst_bidx; - u32 link_bcntrld; - u32 src_dst_cidx; - u32 ccnt; +struct phc_vclocks_reply_data { + struct ethnl_reply_data base; + int num; + int *index; }; -struct edma_pset { - u32 len; - dma_addr_t addr; - struct edmacc_param param; +struct udp_dev_scratch { + u32 _tsize_state; }; -struct edma_chan; +struct bpf_iter__udp { + union { + struct bpf_iter_meta *meta; + }; + union { + struct udp_sock *udp_sk; + }; + uid_t uid; + long: 32; + int bucket; + long: 32; +}; -struct edma_desc { - struct virt_dma_desc vdesc; - struct list_head node; - enum dma_transfer_direction direction; - int cyclic; - bool polled; - int absync; - int pset_nr; - struct edma_chan *echan; - int processed; - int processed_stat; - u32 sg_len; - u32 residue; - u32 residue_stat; - struct edma_pset pset[0]; +struct bpf_udp_iter_state { + struct udp_iter_state state; + unsigned int cur_sk; + unsigned int end_sk; + unsigned int max_sk; + int offset; + struct sock **batch; + bool st_bucket_done; }; -struct edma_cc; +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 edma_tc; +struct ip_tunnel_prl { + __be32 addr; + __u16 flags; + __u16 __reserved; + __u32 datalen; + __u32 __reserved2; +}; -struct edma_chan { - struct virt_dma_chan vchan; - struct list_head node; - struct edma_desc *edesc; - struct edma_cc *ecc; - struct edma_tc *tc; - int ch_num; - bool alloced; - bool hw_triggered; - int slot[20]; - int missed; - struct dma_slave_config cfg; +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, }; -struct edma_soc_info; +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; +}; -struct edma_cc { +struct xsk_dma_map { + dma_addr_t *dma_pages; struct device *dev; - struct edma_soc_info *info; - void *base; - int id; - bool legacy_mode; - unsigned int num_channels; - unsigned int num_qchannels; - unsigned int num_region; - unsigned int num_slots; - unsigned int num_tc; - bool chmap_exist; - enum dma_event_q default_queue; - unsigned int ccint; - unsigned int ccerrint; - unsigned long *slot_inuse; - unsigned long *channels_mask; - struct dma_device dma_slave; - struct dma_device *dma_memcpy; - struct edma_chan *slave_chans; - struct edma_tc *tc_list; - int dummy_slot; + struct net_device *netdev; + refcount_t users; + struct list_head list; + u32 dma_pages_cnt; + bool dma_need_sync; }; -struct edma_rsv_info; +struct sigcontext { + unsigned long trap_no; + unsigned long error_code; + unsigned long oldmask; + unsigned long arm_r0; + unsigned long arm_r1; + unsigned long arm_r2; + unsigned long arm_r3; + unsigned long arm_r4; + unsigned long arm_r5; + unsigned long arm_r6; + unsigned long arm_r7; + unsigned long arm_r8; + unsigned long arm_r9; + unsigned long arm_r10; + unsigned long arm_fp; + unsigned long arm_ip; + unsigned long arm_sp; + unsigned long arm_lr; + unsigned long arm_pc; + unsigned long arm_cpsr; + unsigned long fault_address; +}; -struct edma_soc_info { - enum dma_event_q default_queue; - struct edma_rsv_info *rsv; - s32 *memcpy_channels; - s8 (*queue_priority_mapping)[2]; - const s16 (*xbar_chans)[2]; - const struct dma_slave_map *slave_map; - int slavecnt; +struct ucontext { + unsigned long uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; + struct sigcontext uc_mcontext; + sigset_t uc_sigmask; + int __unused[30]; + unsigned long uc_regspace[128]; }; -struct edma_rsv_info { - const s16 (*rsv_chans)[2]; - const s16 (*rsv_slots)[2]; +struct sigframe { + struct ucontext uc; + unsigned long retcode[4]; }; -struct edma_tc { - struct device_node *node; - u16 id; +struct rt_sigframe { + struct siginfo info; + struct sigframe sig; }; -struct tegra_pmc_soc; +struct iwmmxt_sigframe { + unsigned long magic; + unsigned long size; + struct iwmmxt_struct storage; +}; -struct tegra_pmc { - struct device *dev; - void *base; - void *wake; - void *aotag; - void *scratch; - struct clk *clk; - const struct tegra_pmc_soc *soc; - bool tz_only; - unsigned long rate; - enum tegra_suspend_mode suspend_mode; - u32 cpu_good_time; - u32 cpu_off_time; - u32 core_osc_time; - u32 core_pmu_time; - u32 core_off_time; - bool corereq_high; - bool sysclkreq_high; - bool combined_req; - bool cpu_pwr_good_en; - u32 lp0_vec_phys; - u32 lp0_vec_size; - unsigned long powergates_available[1]; - struct mutex powergates_lock; - struct pinctrl_dev *pctl_dev; - struct irq_domain *domain; - struct irq_chip irq; - struct notifier_block clk_nb; - bool core_domain_state_synced; - bool core_domain_registered; - unsigned long *wake_type_level_map; - unsigned long *wake_type_dual_edge_map; - unsigned long *wake_sw_status_map; - unsigned long *wake_cntrl_level_map; - struct syscore_ops syscore; +struct vfp_sigframe { + unsigned long magic; + unsigned long size; + struct user_vfp ufp; + struct user_vfp_exc ufp_exc; + long: 32; }; -struct tegra_io_pad_soc; +struct aux_sigframe { + struct iwmmxt_sigframe iwmmxt; + struct vfp_sigframe vfp; + unsigned long end_magic; + long: 32; +}; -struct tegra_pmc_regs; +struct power_state___2 { + struct powerdomain *pwrdm; + u32 next_state; + u32 saved_state; + struct list_head node; +}; -struct tegra_wake_event; +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, +}; -struct pmc_clk_init_data; +struct sys_off_handler { + struct notifier_block nb; + int (*sys_off_cb)(struct sys_off_data *); + void *cb_data; + enum sys_off_mode mode; + bool blocking; + void *list; + struct device *dev; +}; -struct tegra_pmc_soc { - unsigned int num_powergates; - const char * const *powergates; - unsigned int num_cpu_powergates; - const u8 *cpu_powergates; - bool has_tsense_reset; - bool has_gpu_clamps; - bool needs_mbist_war; - bool has_impl_33v_pwr; - bool maybe_tz_only; - const struct tegra_io_pad_soc *io_pads; - unsigned int num_io_pads; - const struct pinctrl_pin_desc *pin_descs; - unsigned int num_pin_descs; - const struct tegra_pmc_regs *regs; - void (*init)(struct tegra_pmc *); - void (*setup_irq_polarity)(struct tegra_pmc *, struct device_node *, bool); - void (*set_wake_filters)(struct tegra_pmc *); - int (*irq_set_wake)(struct irq_data *, unsigned int); - int (*irq_set_type)(struct irq_data *, unsigned int); - int (*powergate_set)(struct tegra_pmc *, unsigned int, bool); - const char * const *reset_sources; - unsigned int num_reset_sources; - const char * const *reset_levels; - unsigned int num_reset_levels; - const struct tegra_wake_event *wake_events; - unsigned int num_wake_events; - unsigned int max_wake_events; - unsigned int max_wake_vectors; - const struct pmc_clk_init_data *pmc_clks_data; - unsigned int num_pmc_clks; - bool has_blink_output; - bool has_usb_sleepwalk; - bool supports_core_domain; +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 tegra_io_pad_soc { - enum tegra_io_pad id; - unsigned int dpd; - unsigned int request; - unsigned int status; - unsigned int voltage; - const char *name; +struct boot_triggers { + const char *event; + char *trigger; }; -struct tegra_pmc_regs { - unsigned int scratch0; - unsigned int rst_status; - unsigned int rst_source_shift; - unsigned int rst_source_mask; - unsigned int rst_level_shift; - unsigned int rst_level_mask; +enum { + FORMAT_HEADER = 1, + FORMAT_FIELD_SEPERATOR = 2, + FORMAT_PRINTFMT = 3, }; -struct tegra_wake_event { - const char *name; - unsigned int id; - unsigned int irq; - struct { - unsigned int instance; - unsigned int pin; - } gpio; +struct module_string { + struct list_head next; + struct module *module; + char *str; }; -struct pmc_clk_init_data { - char *name; - const char * const *parents; - int num_parents; - int clk_id; - u8 mux_shift; - u8 force_en_shift; +struct event_probe_data { + struct trace_event_file *file; + unsigned long count; + int ref; + bool enable; }; -struct tegra_powergate { - struct generic_pm_domain genpd; - struct tegra_pmc *pmc; - unsigned int id; - struct clk **clks; - unsigned int num_clks; - unsigned long *clk_rates; - struct reset_control *reset; +enum { + XA_CHECK_SCHED = 4096, }; -struct pmc_clk { - struct clk_hw hw; - unsigned long offs; - u32 mux_shift; - u32 force_en_shift; +struct dirty_throttle_control { + struct wb_domain *dom; + struct dirty_throttle_control *gdtc; + struct bdi_writeback *wb; + struct fprop_local_percpu *wb_completions; + unsigned long avail; + unsigned long dirty; + unsigned long thresh; + unsigned long bg_thresh; + unsigned long wb_dirty; + unsigned long wb_thresh; + unsigned long wb_bg_thresh; + unsigned long pos_ratio; }; -struct pmc_clk_gate { - struct clk_hw hw; - unsigned long offs; - u32 shift; +struct wb_lock_cookie { + bool locked; + unsigned long flags; }; -struct twlreg_info___2 { - u8 base; - u8 id; - u8 table_len; - const u16 *table; - u8 remap; - struct regulator_desc desc; - unsigned long features; - void *data; +struct dma_page { + struct list_head page_list; + void *vaddr; + dma_addr_t dma; }; -struct exar8250; +struct dma_block; -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 dma_pool { + struct list_head page_list; + spinlock_t lock; + struct dma_block *next_block; + size_t nr_blocks; + size_t nr_active; + size_t nr_pages; + struct device *dev; + unsigned int size; + unsigned int allocation; + unsigned int boundary; + char name[32]; + struct list_head pools; }; -struct exar8250 { - unsigned int nr; - struct exar8250_board *board; - void *virt; - int line[0]; +struct dma_block { + struct dma_block *next_block; + dma_addr_t dma; }; -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 *); +typedef void (*btf_trace_cma_release)(void *, const char *, unsigned long, const struct page *, unsigned long); + +typedef void (*btf_trace_cma_alloc_start)(void *, const char *, unsigned long, unsigned int); + +typedef void (*btf_trace_cma_alloc_finish)(void *, const char *, unsigned long, const struct page *, unsigned long, unsigned int, int); + +typedef void (*btf_trace_cma_alloc_busy_retry)(void *, const char *, unsigned long, const struct page *, unsigned long, unsigned int); + +struct trace_event_raw_cma_release { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long pfn; + const struct page *page; + unsigned long count; + char __data[0]; }; -struct serport___2 { - struct tty_port *port; - struct tty_struct *tty; - struct tty_driver *tty_drv; - int tty_idx; - unsigned long flags; +struct trace_event_raw_cma_alloc_start { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long count; + unsigned int align; + char __data[0]; }; -struct host1x_subdev { - struct host1x_client *client; - struct device_node *np; - struct list_head list; +struct trace_event_raw_cma_alloc_finish { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long pfn; + const struct page *page; + unsigned long count; + unsigned int align; + int errorno; + char __data[0]; }; -struct drm_mode_create_lease { - __u64 object_ids; - __u32 object_count; - __u32 flags; - __u32 lessee_id; - __u32 fd; +struct trace_event_raw_cma_alloc_busy_retry { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long pfn; + const struct page *page; + unsigned long count; + unsigned int align; + char __data[0]; }; -struct drm_mode_list_lessees { - __u32 count_lessees; - __u32 pad; - __u64 lessees_ptr; +struct trace_event_data_offsets_cma_release { + u32 name; }; -struct drm_mode_get_lease { - __u32 count_objects; - __u32 pad; - __u64 objects_ptr; +struct trace_event_data_offsets_cma_alloc_start { + u32 name; }; -struct drm_mode_revoke_lease { - __u32 lessee_id; +struct trace_event_data_offsets_cma_alloc_finish { + u32 name; }; -struct panel_desc { - const struct drm_display_mode *modes; - unsigned int num_modes; - const struct display_timing *timings; - unsigned int num_timings; - unsigned int bpc; - struct { - unsigned int width; - unsigned int height; - } size; - struct { - unsigned int prepare; - unsigned int enable; - unsigned int disable; - unsigned int unprepare; - } delay; - u32 bus_format; - u32 bus_flags; - int connector_type; +struct trace_event_data_offsets_cma_alloc_busy_retry { + u32 name; }; -struct panel_desc_dsi { - struct panel_desc desc; - unsigned long flags; - enum mipi_dsi_pixel_format format; - unsigned int lanes; +struct ns_get_path_task_args { + const struct proc_ns_operations *ns_ops; + struct task_struct *task; }; -enum drm_bus_flags { - DRM_BUS_FLAG_DE_LOW = 1, - DRM_BUS_FLAG_DE_HIGH = 2, - DRM_BUS_FLAG_PIXDATA_DRIVE_POSEDGE = 4, - DRM_BUS_FLAG_PIXDATA_DRIVE_NEGEDGE = 8, - DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE = 8, - DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE = 4, - DRM_BUS_FLAG_DATA_MSB_TO_LSB = 16, - DRM_BUS_FLAG_DATA_LSB_TO_MSB = 32, - DRM_BUS_FLAG_SYNC_DRIVE_POSEDGE = 64, - DRM_BUS_FLAG_SYNC_DRIVE_NEGEDGE = 128, - DRM_BUS_FLAG_SYNC_SAMPLE_POSEDGE = 128, - DRM_BUS_FLAG_SYNC_SAMPLE_NEGEDGE = 64, - DRM_BUS_FLAG_SHARP_SIGNALS = 256, +struct dnotify_struct; + +struct dnotify_mark { + struct fsnotify_mark fsn_mark; + struct dnotify_struct *dn; }; -struct panel_simple { - struct drm_panel base; - bool enabled; - bool prepared; - ktime_t prepared_time; - ktime_t unprepared_time; - const struct panel_desc *desc; - struct regulator *supply; - struct i2c_adapter *ddc; - struct gpio_desc *enable_gpio; - struct edid *edid; - struct drm_display_mode override_mode; - enum drm_panel_orientation orientation; +struct dnotify_struct { + struct dnotify_struct *dn_next; + __u32 dn_mask; + int dn_fd; + struct file *dn_filp; + fl_owner_t dn_owner; }; -typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); +struct timerfd_ctx { + union { + struct hrtimer tmr; + struct alarm alarm; + } t; + ktime_t tintv; + ktime_t moffs; + wait_queue_head_t wqh; + long: 32; + 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 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 fd_data { + fmode_t mode; + unsigned int fd; }; -enum s2mpa01_reg { - S2MPA01_REG_ID = 0, - S2MPA01_REG_INT1 = 1, - S2MPA01_REG_INT2 = 2, - S2MPA01_REG_INT3 = 3, - S2MPA01_REG_INT1M = 4, - S2MPA01_REG_INT2M = 5, - S2MPA01_REG_INT3M = 6, - S2MPA01_REG_ST1 = 7, - S2MPA01_REG_ST2 = 8, - S2MPA01_REG_PWRONSRC = 9, - S2MPA01_REG_OFFSRC = 10, - S2MPA01_REG_RTC_BUF = 11, - S2MPA01_REG_CTRL1 = 12, - S2MPA01_REG_ETC_TEST = 13, - S2MPA01_REG_RSVD1 = 14, - S2MPA01_REG_BU_CHG = 15, - S2MPA01_REG_RAMP1 = 16, - S2MPA01_REG_RAMP2 = 17, - S2MPA01_REG_LDO_DSCH1 = 18, - S2MPA01_REG_LDO_DSCH2 = 19, - S2MPA01_REG_LDO_DSCH3 = 20, - S2MPA01_REG_LDO_DSCH4 = 21, - S2MPA01_REG_OTP_ADRL = 22, - S2MPA01_REG_OTP_ADRH = 23, - S2MPA01_REG_OTP_DATA = 24, - S2MPA01_REG_MON1SEL = 25, - S2MPA01_REG_MON2SEL = 26, - S2MPA01_REG_LEE = 27, - S2MPA01_REG_RSVD2 = 28, - S2MPA01_REG_RSVD3 = 29, - S2MPA01_REG_RSVD4 = 30, - S2MPA01_REG_RSVD5 = 31, - S2MPA01_REG_RSVD6 = 32, - S2MPA01_REG_TOP_RSVD = 33, - S2MPA01_REG_DVS_SEL = 34, - S2MPA01_REG_DVS_PTR = 35, - S2MPA01_REG_DVS_DATA = 36, - S2MPA01_REG_RSVD_NO = 37, - S2MPA01_REG_UVLO = 38, - S2MPA01_REG_LEE_NO = 39, - S2MPA01_REG_B1CTRL1 = 40, - S2MPA01_REG_B1CTRL2 = 41, - S2MPA01_REG_B2CTRL1 = 42, - S2MPA01_REG_B2CTRL2 = 43, - S2MPA01_REG_B3CTRL1 = 44, - S2MPA01_REG_B3CTRL2 = 45, - S2MPA01_REG_B4CTRL1 = 46, - S2MPA01_REG_B4CTRL2 = 47, - S2MPA01_REG_B5CTRL1 = 48, - S2MPA01_REG_B5CTRL2 = 49, - S2MPA01_REG_B5CTRL3 = 50, - S2MPA01_REG_B5CTRL4 = 51, - S2MPA01_REG_B5CTRL5 = 52, - S2MPA01_REG_B5CTRL6 = 53, - S2MPA01_REG_B6CTRL1 = 54, - S2MPA01_REG_B6CTRL2 = 55, - S2MPA01_REG_B7CTRL1 = 56, - S2MPA01_REG_B7CTRL2 = 57, - S2MPA01_REG_B8CTRL1 = 58, - S2MPA01_REG_B8CTRL2 = 59, - S2MPA01_REG_B9CTRL1 = 60, - S2MPA01_REG_B9CTRL2 = 61, - S2MPA01_REG_B10CTRL1 = 62, - S2MPA01_REG_B10CTRL2 = 63, - S2MPA01_REG_L1CTRL = 64, - S2MPA01_REG_L2CTRL = 65, - S2MPA01_REG_L3CTRL = 66, - S2MPA01_REG_L4CTRL = 67, - S2MPA01_REG_L5CTRL = 68, - S2MPA01_REG_L6CTRL = 69, - S2MPA01_REG_L7CTRL = 70, - S2MPA01_REG_L8CTRL = 71, - S2MPA01_REG_L9CTRL = 72, - S2MPA01_REG_L10CTRL = 73, - S2MPA01_REG_L11CTRL = 74, - S2MPA01_REG_L12CTRL = 75, - S2MPA01_REG_L13CTRL = 76, - S2MPA01_REG_L14CTRL = 77, - S2MPA01_REG_L15CTRL = 78, - S2MPA01_REG_L16CTRL = 79, - S2MPA01_REG_L17CTRL = 80, - S2MPA01_REG_L18CTRL = 81, - S2MPA01_REG_L19CTRL = 82, - S2MPA01_REG_L20CTRL = 83, - S2MPA01_REG_L21CTRL = 84, - S2MPA01_REG_L22CTRL = 85, - S2MPA01_REG_L23CTRL = 86, - S2MPA01_REG_L24CTRL = 87, - S2MPA01_REG_L25CTRL = 88, - S2MPA01_REG_L26CTRL = 89, - S2MPA01_REG_LDO_OVCB1 = 90, - S2MPA01_REG_LDO_OVCB2 = 91, - S2MPA01_REG_LDO_OVCB3 = 92, - S2MPA01_REG_LDO_OVCB4 = 93, +struct nfs3_getaclargs { + struct nfs_fh *fh; + int mask; + struct page **pages; }; -enum s2mps13_reg { - S2MPS13_REG_ID = 0, - S2MPS13_REG_INT1 = 1, - S2MPS13_REG_INT2 = 2, - S2MPS13_REG_INT3 = 3, - S2MPS13_REG_INT1M = 4, - S2MPS13_REG_INT2M = 5, - S2MPS13_REG_INT3M = 6, - S2MPS13_REG_ST1 = 7, - S2MPS13_REG_ST2 = 8, - S2MPS13_REG_PWRONSRC = 9, - S2MPS13_REG_OFFSRC = 10, - S2MPS13_REG_BU_CHG = 11, - S2MPS13_REG_RTCCTRL = 12, - S2MPS13_REG_CTRL1 = 13, - S2MPS13_REG_CTRL2 = 14, - S2MPS13_REG_RSVD1 = 15, - S2MPS13_REG_RSVD2 = 16, - S2MPS13_REG_RSVD3 = 17, - S2MPS13_REG_RSVD4 = 18, - S2MPS13_REG_RSVD5 = 19, - S2MPS13_REG_RSVD6 = 20, - S2MPS13_REG_CTRL3 = 21, - S2MPS13_REG_RSVD7 = 22, - S2MPS13_REG_RSVD8 = 23, - S2MPS13_REG_WRSTBI = 24, - S2MPS13_REG_B1CTRL = 25, - S2MPS13_REG_B1OUT = 26, - S2MPS13_REG_B2CTRL = 27, - S2MPS13_REG_B2OUT = 28, - S2MPS13_REG_B3CTRL = 29, - S2MPS13_REG_B3OUT = 30, - S2MPS13_REG_B4CTRL = 31, - S2MPS13_REG_B4OUT = 32, - S2MPS13_REG_B5CTRL = 33, - S2MPS13_REG_B5OUT = 34, - S2MPS13_REG_B6CTRL = 35, - S2MPS13_REG_B6OUT = 36, - S2MPS13_REG_B7CTRL = 37, - S2MPS13_REG_B7SW = 38, - S2MPS13_REG_B7OUT = 39, - S2MPS13_REG_B8CTRL = 40, - S2MPS13_REG_B8OUT = 41, - S2MPS13_REG_B9CTRL = 42, - S2MPS13_REG_B9OUT = 43, - S2MPS13_REG_B10CTRL = 44, - S2MPS13_REG_B10OUT = 45, - S2MPS13_REG_BB1CTRL = 46, - S2MPS13_REG_BB1OUT = 47, - S2MPS13_REG_BUCK_RAMP1 = 48, - S2MPS13_REG_BUCK_RAMP2 = 49, - S2MPS13_REG_LDO_DVS1 = 50, - S2MPS13_REG_LDO_DVS2 = 51, - S2MPS13_REG_LDO_DVS3 = 52, - S2MPS13_REG_B6OUT2 = 53, - S2MPS13_REG_L1CTRL = 54, - S2MPS13_REG_L2CTRL = 55, - S2MPS13_REG_L3CTRL = 56, - S2MPS13_REG_L4CTRL = 57, - S2MPS13_REG_L5CTRL = 58, - S2MPS13_REG_L6CTRL = 59, - S2MPS13_REG_L7CTRL = 60, - S2MPS13_REG_L8CTRL = 61, - S2MPS13_REG_L9CTRL = 62, - S2MPS13_REG_L10CTRL = 63, - S2MPS13_REG_L11CTRL = 64, - S2MPS13_REG_L12CTRL = 65, - S2MPS13_REG_L13CTRL = 66, - S2MPS13_REG_L14CTRL = 67, - S2MPS13_REG_L15CTRL = 68, - S2MPS13_REG_L16CTRL = 69, - S2MPS13_REG_L17CTRL = 70, - S2MPS13_REG_L18CTRL = 71, - S2MPS13_REG_L19CTRL = 72, - S2MPS13_REG_L20CTRL = 73, - S2MPS13_REG_L21CTRL = 74, - S2MPS13_REG_L22CTRL = 75, - S2MPS13_REG_L23CTRL = 76, - S2MPS13_REG_L24CTRL = 77, - S2MPS13_REG_L25CTRL = 78, - S2MPS13_REG_L26CTRL = 79, - S2MPS13_REG_L27CTRL = 80, - S2MPS13_REG_L28CTRL = 81, - S2MPS13_REG_L29CTRL = 82, - S2MPS13_REG_L30CTRL = 83, - S2MPS13_REG_L31CTRL = 84, - S2MPS13_REG_L32CTRL = 85, - S2MPS13_REG_L33CTRL = 86, - S2MPS13_REG_L34CTRL = 87, - S2MPS13_REG_L35CTRL = 88, - S2MPS13_REG_L36CTRL = 89, - S2MPS13_REG_L37CTRL = 90, - S2MPS13_REG_L38CTRL = 91, - S2MPS13_REG_L39CTRL = 92, - S2MPS13_REG_L40CTRL = 93, - S2MPS13_REG_LDODSCH1 = 94, - S2MPS13_REG_LDODSCH2 = 95, - S2MPS13_REG_LDODSCH3 = 96, - S2MPS13_REG_LDODSCH4 = 97, - S2MPS13_REG_LDODSCH5 = 98, +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 phy_lane_info { - void *phy_base; - u8 lane_mapping; - u8 phy_devs; - u8 tx_atten; +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 ecx_plat_data { - u32 n_ports; - u32 pre_clocks; - u32 post_clocks; - struct gpio_desc *sgpio_gpiod[3]; - u32 sgpio_pattern; - u32 port_to_sgpio[8]; +enum attr_id_t { + attr_errors_magic = 0, + attr_errors_node = 1, + attr_errors_crc = 2, }; -enum nand_io { - NAND_OMAP_PREFETCH_POLLED = 0, - NAND_OMAP_POLLED = 1, - NAND_OMAP_PREFETCH_DMA = 2, - NAND_OMAP_PREFETCH_IRQ = 3, +struct ubifs_attr { + struct attribute attr; + enum attr_id_t attr_id; +}; + +struct debugfs_mount_opts { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; }; -enum omap_ecc { - OMAP_ECC_HAM1_CODE_SW = 0, - OMAP_ECC_HAM1_CODE_HW = 1, - OMAP_ECC_BCH4_CODE_HW_DETECTION_SW = 2, - OMAP_ECC_BCH4_CODE_HW = 3, - OMAP_ECC_BCH8_CODE_HW_DETECTION_SW = 4, - OMAP_ECC_BCH8_CODE_HW = 5, - OMAP_ECC_BCH16_CODE_HW = 6, +struct debugfs_fs_info { + struct debugfs_mount_opts mount_opts; }; -struct omap_nand_info { - struct nand_chip nand; - struct platform_device *pdev; - int gpmc_cs; - bool dev_ready; - enum nand_io xfer_type; - enum omap_ecc ecc_opt; - struct device_node *elm_of_node; - unsigned long phys_base; - struct completion comp; - struct dma_chan *dma; - int gpmc_irq_fifo; - int gpmc_irq_count; - enum { - OMAP_NAND_IO_READ = 0, - OMAP_NAND_IO_WRITE = 1, - } iomode; - u_char *buf; - int buf_len; - void *fifo; - struct gpmc_nand_regs reg; - struct gpmc_nand_ops *ops; - bool flash_bbt; - struct device *elm_dev; - struct gpio_desc *ready_gpiod; - unsigned int neccpg; - unsigned int nsteps_per_eccpg; - unsigned int eccpg_size; - unsigned int eccpg_bytes; - void (*data_in)(struct nand_chip *, void *, unsigned int, bool); - void (*data_out)(struct nand_chip *, const void *, unsigned int, bool); +struct badblocks_context { + sector_t start; + sector_t len; + int ack; long: 32; }; -enum bch_ecc { - BCH4_ECC = 0, - BCH8_ECC = 1, - BCH16_ECC = 2, +struct io_waitid { + struct file *file; + int which; + pid_t upid; + int options; + atomic_t refs; + struct wait_queue_head *head; + struct siginfo __attribute__((btf_type_tag("user"))) *infop; + struct waitid_info info; }; -struct elm_errorvec { - bool error_reported; - bool error_uncorrectable; - int error_count; - int error_loc[16]; +struct io_waitid_async { + struct io_kiocb *req; + struct wait_opts wo; }; -typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t); - -struct e1000_reg_info { - u32 ofs; - char *name; +enum { + EI_ETYPE_NULL = 0, + EI_ETYPE_ERRNO = 1, + EI_ETYPE_ERRNO_NULL = 2, + EI_ETYPE_TRUE = 3, }; -struct trace_event_raw_e1000e_trace_mac_register { - struct trace_entry ent; - uint32_t reg; - char __data[0]; +struct ei_entry { + struct list_head list; + unsigned long start_addr; + unsigned long end_addr; + int etype; + void *priv; }; -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; +struct sunxi_sc_nmi_reg_offs { + u32 ctrl; + u32 pend; + u32 enable; }; -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; +enum { + SUNXI_SRC_TYPE_LEVEL_LOW = 0, + SUNXI_SRC_TYPE_EDGE_FALLING = 1, + SUNXI_SRC_TYPE_LEVEL_HIGH = 2, + SUNXI_SRC_TYPE_EDGE_RISING = 3, }; -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 crossbar_device { + raw_spinlock_t lock; + uint int_max; + uint safe_map; + uint max_crossbar_sources; + uint *irq_map; + void *crossbar_base; + int *register_offsets; + void (*write)(int, int); }; -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 uniphier_aidet_priv { + struct irq_domain *domain; + void *reg_base; + spinlock_t lock; + u32 saved_vals[8]; }; -struct my_u1 { - __le64 a; - __le64 b; - __le64 c; - __le64 d; +struct vexpress_config_bridge_ops { + struct regmap * (*regmap_init)(struct device *, void *); + void (*regmap_exit)(struct regmap *, void *); }; -struct trace_event_data_offsets_e1000e_trace_mac_register {}; +struct vexpress_syscfg; -enum { - CPSW_RX_VLAN_ENCAP_HDR_PKT_VLAN_TAG = 0, - CPSW_RX_VLAN_ENCAP_HDR_PKT_RESERV = 1, - CPSW_RX_VLAN_ENCAP_HDR_PKT_PRIO_TAG = 2, - CPSW_RX_VLAN_ENCAP_HDR_PKT_UNTAG = 3, +struct vexpress_syscfg_func { + struct list_head list; + struct vexpress_syscfg *syscfg; + struct regmap *regmap; + int num_templates; + u32 template[0]; }; -enum { - TC_MQPRIO_MODE_DCB = 0, - TC_MQPRIO_MODE_CHANNEL = 1, - __TC_MQPRIO_MODE_MAX = 2, +struct vexpress_syscfg { + struct device *dev; + void *base; + struct list_head funcs; }; -struct as3722_rtc { - struct rtc_device *rtc; - struct device *dev; - struct as3722 *as3722; - int alarm_irq; - bool irq_enable; +struct vexpress_config_bridge { + struct vexpress_config_bridge_ops *ops; + void *context; }; -struct bcm2835_i2c_dev; +struct mvebu_a3700_comphy_conf { + unsigned int lane; + enum phy_mode mode; + int submode; +}; -struct clk_bcm2835_i2c { - struct clk_hw hw; - struct bcm2835_i2c_dev *i2c_dev; +struct gbe_phy_init_data_fix { + u16 addr; + u16 value; }; -struct bcm2835_i2c_dev { +struct mvebu_a3700_comphy_priv; + +struct mvebu_a3700_comphy_lane { + struct mvebu_a3700_comphy_priv *priv; struct device *dev; - void *regs; - int irq; - long: 32; - struct i2c_adapter adapter; - struct completion completion; - struct i2c_msg *curr_msg; - struct clk *bus_clk; - int num_msgs; - u32 msg_err; - u8 *msg_buf; - size_t msg_buf_remaining; + unsigned int id; + enum phy_mode mode; + int submode; + bool invert_tx; + bool invert_rx; }; -struct bus_speed_cfg { - uint8_t time_m; - uint8_t time_n; - uint8_t prescale; - uint8_t time_p; - uint8_t no_div; - uint8_t time_div; +struct mvebu_a3700_comphy_priv { + void *comphy_regs; + void *lane0_phy_regs; + void *lane1_phy_regs; + void *lane2_phy_indirect; + spinlock_t lock; + bool xtal_is_40m; }; -struct hs_bus_speed_cfg { - uint8_t hs_hold; - uint8_t hs_high_phase; - uint8_t hs_setup; - uint8_t prescale; - uint8_t time_p; - uint8_t no_div; - uint8_t time_div; +struct pinctrl_dt_map { + struct list_head node; + struct pinctrl_dev *pctldev; + struct pinctrl_map *map; + unsigned int num_maps; }; -enum bcm_kona_cmd_t { - BCM_CMD_NOACTION = 0, - BCM_CMD_START = 1, - BCM_CMD_RESTART = 2, - BCM_CMD_STOP = 3, +struct pcs_conf_type { + const char *name; + enum pin_config_param param; }; -enum bus_speed_index { - BCM_SPD_100K = 0, - BCM_SPD_400K = 1, - BCM_SPD_1MHZ = 2, +struct pcs_soc_data { + unsigned int flags; + int irq; + unsigned int irq_enable_mask; + unsigned int irq_status_mask; + void (*rearm)(); }; -enum hs_bus_speed_index { - BCM_SPD_3P4MHZ = 0, +struct pcs_gpiofunc_range { + unsigned int offset; + unsigned int npins; + unsigned int gpiofunc; + struct list_head node; }; -struct bcm_kona_i2c_dev { - struct device *device; +struct pcs_data { + struct pinctrl_pin_desc *pa; + int cur; +}; + +struct pcs_device { + struct resource *res; void *base; - int irq; - struct clk *external_clk; - struct i2c_adapter adapter; - struct completion done; - const struct bus_speed_cfg *std_cfg; - const struct hs_bus_speed_cfg *hs_cfg; + void *saved_vals; + unsigned int size; + struct device *dev; + struct device_node *np; + struct pinctrl_dev *pctl; + unsigned int flags; + struct property *missing_nr_pinctrl_cells; + struct pcs_soc_data socdata; + raw_spinlock_t lock; + struct mutex mutex; + unsigned int width; + unsigned int fmask; + unsigned int fshift; + unsigned int foff; + unsigned int fmax; + bool bits_per_mux; + unsigned int bits_per_pin; + struct pcs_data pins; + struct list_head gpiofuncs; + struct list_head irqs; + struct irq_chip chip; + struct irq_domain *domain; + struct pinctrl_desc desc; + unsigned int (*read)(void *); + void (*write)(unsigned int, void *); }; -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; +struct pcs_interrupt { + void *reg; + irq_hw_number_t hwirq; + unsigned int irq; + struct list_head node; }; -enum power_supply_charge_behaviour { - POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0, - POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1, - POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2, +struct pcs_func_vals { + void *reg; + unsigned int val; + unsigned int mask; }; -struct hisi_thermal_sensor; +struct pcs_conf_vals; -struct hisi_thermal_data; +struct pcs_function { + const char *name; + struct pcs_func_vals *vals; + unsigned int nvals; + const char **pgnames; + int npgnames; + struct pcs_conf_vals *conf; + int nconfs; + struct list_head node; +}; -struct hisi_thermal_ops { - int (*get_temp)(struct hisi_thermal_sensor *); - int (*enable_sensor)(struct hisi_thermal_sensor *); - int (*disable_sensor)(struct hisi_thermal_sensor *); - int (*irq_handler)(struct hisi_thermal_sensor *); - int (*probe)(struct hisi_thermal_data *); +struct pcs_conf_vals { + enum pin_config_param param; + unsigned int val; + unsigned int enable; + unsigned int disable; + unsigned int mask; }; -struct hisi_thermal_sensor { - struct hisi_thermal_data *data; - struct thermal_zone_device *tzd; - const char *irq_name; - uint32_t id; - uint32_t thres_temp; +struct ti_iodelay_reg_data { + u32 signature_mask; + u32 signature_value; + u32 lock_mask; + u32 lock_val; + u32 unlock_val; + u32 binary_data_coarse_mask; + u32 binary_data_fine_mask; + u32 reg_refclk_offset; + u32 refclk_period_mask; + u32 reg_coarse_offset; + u32 coarse_delay_count_mask; + u32 coarse_ref_count_mask; + u32 reg_fine_offset; + u32 fine_delay_count_mask; + u32 fine_ref_count_mask; + u32 reg_global_lock_offset; + u32 global_lock_mask; + u32 global_unlock_val; + u32 global_lock_val; + u32 reg_start_offset; + u32 reg_nr_per_pin; + struct regmap_config *regmap_config; }; -struct hisi_thermal_data { - const struct hisi_thermal_ops *ops; - struct hisi_thermal_sensor *sensor; - struct platform_device *pdev; - struct clk *clk; - void *regs; - int nr_sensors; +struct ti_iodelay_reg_values { + u16 coarse_ref_count; + u16 coarse_delay_count; + u16 fine_ref_count; + u16 fine_delay_count; + u16 ref_clk_period; + u32 cdpe; + u32 fdpe; }; -struct sdhci_at91_soc_data { - const struct sdhci_pltfm_data *pdata; - bool baseclk_is_generated_internally; - unsigned int divider_for_baseclk; +struct ti_iodelay_device { + struct device *dev; + unsigned long phys_base; + void *reg_base; + struct regmap *regmap; + struct pinctrl_dev *pctl; + struct pinctrl_desc desc; + struct pinctrl_pin_desc *pa; + const struct ti_iodelay_reg_data *reg_data; + struct ti_iodelay_reg_values reg_init_conf_values; }; -struct sdhci_at91_priv { - const struct sdhci_at91_soc_data *soc_data; - struct clk *hclock; - struct clk *gck; - struct clk *mainck; - bool restore_needed; - bool cal_always_on; +struct ti_iodelay_cfg { + u16 offset; + u16 a_delay; + u16 g_delay; }; -enum scmi_performance_protocol_cmd { - PERF_DOMAIN_ATTRIBUTES = 3, - PERF_DESCRIBE_LEVELS = 4, - PERF_LIMITS_SET = 5, - PERF_LIMITS_GET = 6, - PERF_LEVEL_SET = 7, - PERF_LEVEL_GET = 8, - PERF_NOTIFY_LIMITS = 9, - PERF_NOTIFY_LEVEL = 10, - PERF_DESCRIBE_FASTCHANNEL = 11, - PERF_DOMAIN_NAME_GET = 12, +struct ti_iodelay_pingroup { + struct ti_iodelay_cfg *cfg; + int ncfg; + unsigned long config; }; -enum { - PERF_FC_LEVEL = 0, - PERF_FC_LIMIT = 1, - PERF_FC_MAX = 2, +struct gpio_rcar_info { + bool has_outdtsel; + bool has_both_edge_trigger; + bool has_always_in; + bool has_inen; }; -struct perf_dom_info; +struct gpio_rcar_bank_info { + u32 iointsel; + u32 inoutsel; + u32 outdt; + u32 posneg; + u32 edglevel; + u32 bothedge; + u32 intmsk; +}; -struct scmi_perf_info { - u32 version; - int num_domains; - enum scmi_power_scale power_scale; - long: 32; - u64 stats_addr; - u32 stats_size; - struct perf_dom_info *dom_info; +struct gpio_rcar_priv { + void *base; + spinlock_t lock; + struct device *dev; + struct gpio_chip gpio_chip; + unsigned int irq_parent; + atomic_t wakeup_path; + struct gpio_rcar_info info; + struct gpio_rcar_bank_info bank_info; }; -struct scmi_opp { - u32 perf; - u32 power; - u32 trans_latency_us; +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 perf_dom_info { - bool set_limits; - bool set_perf; - bool perf_limit_notify; - bool perf_level_notify; - bool perf_fastchannels; - u32 opp_count; - u32 sustained_freq_khz; - u32 sustained_perf_level; - u32 mult_factor; - char name[64]; - struct scmi_opp opp[16]; - struct scmi_fc_info *fc_info; +struct devm_clk_state { + struct clk *clk; + void (*exit)(struct clk *); }; -struct scmi_msg_resp_perf_attributes { - __le16 num_domains; - __le16 flags; - __le32 stats_addr_low; - __le32 stats_addr_high; - __le32 stats_size; +struct clk_bulk_devres { + struct clk_bulk_data *clks; + int num_clks; }; -struct scmi_msg_resp_perf_domain_attributes { - __le32 flags; - __le32 rate_limit_us; - __le32 sustained_freq_khz; - __le32 sustained_perf_level; - u8 name[16]; +struct clk_gpio { + struct clk_hw hw; + struct gpio_desc *gpiod; }; -struct scmi_perf_ipriv { - u32 domain; - struct perf_dom_info *perf_dom; +struct clk_plldiv { + struct clk_hw hw; + struct regmap *regmap; }; -struct scmi_perf_set_limits { - __le32 domain; - __le32 max_level; - __le32 min_level; +struct clk_audio_frac { + struct clk_hw hw; + struct regmap *regmap; + u32 fracr; + u8 nd; }; -struct scmi_perf_get_limits { - __le32 max_level; - __le32 min_level; +struct clk_audio_pad { + struct clk_hw hw; + struct regmap *regmap; + u8 qdaudio; + u8 div; }; -struct scmi_perf_set_level { - __le32 domain; - __le32 level; +struct clk_audio_pmc { + struct clk_hw hw; + struct regmap *regmap; + u8 qdpmc; }; -struct scmi_perf_notify_level_or_limits { - __le32 domain; - __le32 notify_enable; +struct hi6220_clk_divider { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u32 mask; + const struct clk_div_table *table; + spinlock_t *lock; }; -struct scmi_msg_perf_describe_levels { - __le32 domain; - __le32 level_index; +struct clk_pllv4 { + struct clk_hw hw; + void *base; + u32 cfg_offset; + u32 num_offset; + u32 denom_offset; + bool use_mult_range; }; -struct scmi_msg_resp_perf_describe_levels { - __le16 num_returned; - __le16 num_remaining; - struct { - __le32 perf_val; - __le32 power; - __le16 transition_latency_us; - __le16 reserved; - } opp[0]; +struct mmp_pm_domain { + struct generic_pm_domain genpd; + void *reg; + spinlock_t *lock; + u32 power_on; + u32 reset; + u32 clock_enable; + unsigned int flags; }; -struct scmi_perf_limits_notify_payld { - __le32 agent_id; - __le32 domain_id; - __le32 range_max; - __le32 range_min; +struct clk_pix_rdi { + u32 s_reg; + u32 s_mask; + u32 s2_reg; + u32 s2_mask; + struct clk_regmap clkr; }; -struct scmi_perf_limits_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int domain_id; - unsigned int range_max; - unsigned int range_min; +struct exynos_cpuclk { + struct clk_hw hw; + const struct clk_hw *alt_parent; + void *ctrl_base; + spinlock_t *lock; + const struct exynos_cpuclk_cfg_data *cfg; + const unsigned long num_cfgs; + struct notifier_block clk_nb; + unsigned long flags; }; -struct scmi_perf_level_notify_payld { - __le32 agent_id; - __le32 domain_id; - __le32 performance_level; +struct tegra_clk_device { + struct notifier_block clk_nb; + struct device *dev; + struct clk_hw *hw; + struct mutex lock; }; -struct scmi_perf_level_report { - ktime_t timestamp; - unsigned int agent_id; - unsigned int domain_id; - unsigned int performance_level; - long: 32; +struct sun6i_dma_dev; + +struct sun6i_dma_config { + u32 nr_max_channels; + u32 nr_max_requests; + u32 nr_max_vchans; + void (*clock_autogate_enable)(struct sun6i_dma_dev *); + void (*set_burst_length)(u32 *, s8, s8); + void (*set_drq)(u32 *, s8, s8); + void (*set_mode)(u32 *, s8, s8); + u32 src_burst_lengths; + u32 dst_burst_lengths; + u32 src_addr_widths; + u32 dst_addr_widths; + bool has_high_addr; + bool has_mbus_clk; }; -struct sh_mtu2_device; +struct sun6i_pchan; -struct sh_mtu2_channel { - struct sh_mtu2_device *mtu; - unsigned int index; +struct sun6i_vchan; + +struct sun6i_dma_dev { + struct dma_device slave; void *base; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct clock_event_device ced; + struct clk *clk; + struct clk *clk_mbus; + int irq; + spinlock_t lock; + struct reset_control *rstc; + struct tasklet_struct task; + atomic_t tasklet_shutdown; + struct list_head pending; + struct dma_pool *pool; + struct sun6i_pchan *pchans; + struct sun6i_vchan *vchans; + const struct sun6i_dma_config *cfg; + u32 num_pchans; + u32 num_vchans; + u32 max_request; }; -struct sh_mtu2_device { - struct platform_device *pdev; - void *mapbase; - struct clk *clk; - raw_spinlock_t lock; - struct sh_mtu2_channel *channels; - unsigned int num_channels; - bool has_clockevent; +struct sun6i_desc; + +struct sun6i_pchan { + u32 idx; + void *base; + struct sun6i_vchan *vchan; + struct sun6i_desc *desc; + struct sun6i_desc *done; }; -struct arch_timer_kvm_info { - struct timecounter timecounter; - int virtual_irq; - int physical_irq; +struct sun6i_vchan { + struct virt_dma_chan vc; + struct list_head node; + struct dma_slave_config cfg; + struct sun6i_pchan *phy; + u8 port; + u8 irq_type; + bool cyclic; }; -struct arch_timer { - void *base; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - struct clock_event_device evt; +struct sun6i_dma_lli; + +struct sun6i_desc { + struct virt_dma_desc vd; + dma_addr_t p_lli; + struct sun6i_dma_lli *v_lli; }; -enum arch_timer_ppi_nr { - ARCH_TIMER_PHYS_SECURE_PPI = 0, - ARCH_TIMER_PHYS_NONSECURE_PPI = 1, - ARCH_TIMER_VIRT_PPI = 2, - ARCH_TIMER_HYP_PPI = 3, - ARCH_TIMER_HYP_VIRT_PPI = 4, - ARCH_TIMER_MAX_TIMER_PPI = 5, +struct sun6i_dma_lli { + u32 cfg; + u32 src; + u32 dst; + u32 len; + u32 para; + u32 p_lli_next; + struct sun6i_dma_lli *v_lli_next; }; -enum arch_timer_reg { - ARCH_TIMER_REG_CTRL = 0, - ARCH_TIMER_REG_CVAL = 1, +enum cpubiuctrl_regs { + CPU_CREDIT_REG = 0, + CPU_MCP_FLOW_REG = 1, + CPU_WRITEBACK_CTRL_REG = 2, + RAC_CONFIG0_REG = 3, + RAC_CONFIG1_REG = 4, + NUM_CPU_BIUCTRL_REGS = 5, }; -enum arch_timer_spi_nr { - ARCH_TIMER_PHYS_SPI = 0, - ARCH_TIMER_VIRT_SPI = 1, - ARCH_TIMER_MAX_TIMER_SPI = 2, +struct qcom_rpm_header { + __le32 service_type; + __le32 length; }; -struct arch_timer_mem_frame { - bool valid; - phys_addr_t cntbase; - size_t size; - int phys_irq; - int virt_irq; +struct qcom_rpm_request { + __le32 msg_id; + __le32 flags; + __le32 type; + __le32 id; + __le32 data_len; }; -struct arch_timer_mem { - phys_addr_t cntctlbase; - size_t size; - struct arch_timer_mem_frame frame[8]; +struct rpmsg_driver { + struct device_driver drv; + const struct rpmsg_device_id *id_table; + int (*probe)(struct rpmsg_device *); + void (*remove)(struct rpmsg_device *); + int (*callback)(struct rpmsg_device *, void *, int, void *, u32); + int (*flowcontrol)(struct rpmsg_device *, void *, bool); }; -struct hi6220_mbox_chan; +struct qcom_rpm_message { + __le32 msg_type; + __le32 length; + union { + __le32 msg_id; + struct { + struct {} __empty_message; + u8 message[0]; + }; + }; +}; -struct hi6220_mbox { +struct qcom_smd_rpm { + struct rpmsg_endpoint *rpm_channel; struct device *dev; - int irq; - bool tx_irq_mode; - void *ipc; - void *base; - unsigned int chan_num; - struct hi6220_mbox_chan *mchan; - void *irq_map_chan[32]; - struct mbox_chan *chan; - struct mbox_controller controller; + struct completion ack; + struct mutex lock; + int ack_status; }; -struct hi6220_mbox_chan { - unsigned int dir; - unsigned int dst_irq; - unsigned int ack_irq; - unsigned int slot; - struct hi6220_mbox *parent; +struct dbx500_regulator_info { + struct regulator_desc desc; + bool is_enabled; + u16 epod_id; + bool is_ramret; + bool exclude_from_power_state; }; -struct ocotp_ctrl_reg { - u32 bm_addr; - u32 bm_busy; - u32 bm_error; - u32 bm_rel_shadows; +struct tps6586x_regulator { + struct regulator_desc desc; + int enable_bit[2]; + int enable_reg[2]; }; -struct ocotp_priv; +enum { + TPS6586X_ID_SYS = 0, + TPS6586X_ID_SM_0 = 1, + TPS6586X_ID_SM_1 = 2, + TPS6586X_ID_SM_2 = 3, + TPS6586X_ID_LDO_0 = 4, + TPS6586X_ID_LDO_1 = 5, + TPS6586X_ID_LDO_2 = 6, + TPS6586X_ID_LDO_3 = 7, + TPS6586X_ID_LDO_4 = 8, + TPS6586X_ID_LDO_5 = 9, + TPS6586X_ID_LDO_6 = 10, + TPS6586X_ID_LDO_7 = 11, + TPS6586X_ID_LDO_8 = 12, + TPS6586X_ID_LDO_9 = 13, + TPS6586X_ID_LDO_RTC = 14, + TPS6586X_ID_MAX_REGULATOR = 15, +}; -struct ocotp_params { - unsigned int nregs; - unsigned int bank_address_words; - void (*set_timing)(struct ocotp_priv *); - struct ocotp_ctrl_reg ctrl; +struct tps6586x_settings { + int slew_rate; }; -struct ocotp_priv { - struct device *dev; - struct clk *clk; - void *base; - const struct ocotp_params *params; - struct nvmem_config *config; +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 drop_reason_list { - const char * const *reasons; - size_t n_reasons; +struct serial_private { + struct pci_dev *dev; + unsigned int nr; + struct pci_serial_quirk *quirk; + const struct pciserial_board *board; + int line[0]; }; -struct page_frag_1k { - void *va; - u16 offset; - bool pfmemalloc; +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 napi_alloc_cache { - struct page_frag_cache page; - struct page_frag_1k page_small; - unsigned int skb_count; - void *skb_cache[64]; +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_moxa_2 = 113, + pbn_moxa_4 = 114, + pbn_moxa_8 = 115, }; -enum skb_drop_reason_subsys { - SKB_DROP_REASON_SUBSYS_CORE = 0, - SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1, - SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR = 2, - SKB_DROP_REASON_SUBSYS_NUM = 3, +struct f815xxa_data { + spinlock_t lock; + int idx; }; -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 timer_rand_state { + unsigned long last_time; + long last_delta; + long last_delta2; }; -struct ip_auth_hdr { - __u8 nexthdr; - __u8 hdrlen; - __be16 reserved; - __be32 spi; - __be32 seq_no; - __u8 auth_data[0]; +enum { + CRNG_EMPTY = 0, + CRNG_EARLY = 1, + CRNG_READY = 2, }; -struct mpls_shim_hdr { - __be32 label_stack_entry; +struct batch_u8 { + u8 entropy[96]; + local_lock_t lock; + unsigned long generation; + unsigned int position; }; -struct skb_free_array { - unsigned int skb_count; - void *skb_array[16]; +struct batch_u16 { + u16 entropy[48]; + local_lock_t lock; + unsigned long generation; + unsigned int position; }; -typedef int (*sendmsg_func)(struct sock *, struct msghdr *); - -struct ts_ops; - -struct ts_state; - -struct ts_config { - struct ts_ops *ops; - int flags; - unsigned int (*get_next_block)(unsigned int, const u8 **, struct ts_config *, struct ts_state *); - void (*finish)(struct ts_config *, struct ts_state *); +struct batch_u32 { + u32 entropy[24]; + local_lock_t lock; + unsigned long generation; + unsigned int position; }; -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 batch_u64 { + u64 entropy[12]; + local_lock_t lock; + unsigned long generation; + unsigned int position; }; -struct ts_state { - unsigned int offset; - char cb[48]; +struct crng { + u8 key[32]; + unsigned long generation; + local_lock_t lock; }; -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, +struct fast_pool { + unsigned long pool[4]; + unsigned long last; + unsigned int count; + struct timer_list mix; }; 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; - long: 32; - struct ethtool_pause_stats pausestat; -}; - -struct tcp_metrics_block; - -struct tcpm_hash_bucket { - struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *chain; -}; - -struct tcp_fastopen_metrics { - u16 mss; - u16 syn_loss: 10; - u16 try_exp: 2; - unsigned long last_syn_loss; - struct tcp_fastopen_cookie cookie; -}; - -struct tcp_metrics_block { - struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *tcpm_next; - struct net *tcpm_net; - struct inetpeer_addr tcpm_saddr; - struct inetpeer_addr tcpm_daddr; - unsigned long tcpm_stamp; - u32 tcpm_lock; - u32 tcpm_vals[5]; - long: 32; - struct tcp_fastopen_metrics tcpm_fastopen; - struct callback_head callback_head; + MIX_INFLIGHT = 2147483648, }; -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 chacha_constants { + CHACHA_CONSTANT_EXPA = 1634760805, + CHACHA_CONSTANT_ND_3 = 857760878, + CHACHA_CONSTANT_2_BY = 2036477234, + CHACHA_CONSTANT_TE_K = 1797285236, }; 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, + POOL_BITS = 256, + POOL_READY_BITS = 256, + POOL_EARLY_BITS = 128, }; enum { - TCP_METRICS_CMD_UNSPEC = 0, - TCP_METRICS_CMD_GET = 1, - TCP_METRICS_CMD_DEL = 2, - __TCP_METRICS_CMD_MAX = 3, + CRNG_RESEED_START_INTERVAL = 100, + CRNG_RESEED_INTERVAL = 6000, }; enum { - UDP_BPF_IPV4 = 0, - UDP_BPF_IPV6 = 1, - UDP_BPF_NUM_PROTS = 2, -}; - -typedef struct elf32_phdr Elf32_Phdr; - -typedef struct elf64_hdr Elf64_Ehdr; - -typedef struct elf64_phdr Elf64_Phdr; - -typedef struct elf32_note Elf32_Nhdr; - -struct omap4_cpu_pm_info { - struct powerdomain *pwrdm; - void *scu_sar_addr; - void *wkup_sar_addr; - void *l2x0_sar_addr; -}; - -struct cpu_pm_ops { - int (*finish_suspend)(unsigned long); - void (*resume)(); - void (*scu_prepare)(unsigned int, unsigned int); - void (*hotplug_restart)(); + NUM_TRIAL_SAMPLES = 8192, + MAX_SAMPLES_PER_BIT = 6, }; -struct omap3_idle_statedata { - u8 mpu_state; - u8 core_state; - u8 per_min_state; - u8 flags; +struct entropy_timer_state { + unsigned long entropy; + struct timer_list timer; + atomic_t samples; + unsigned int samples_per_bit; }; -enum dl_bw_request { - dl_bw_req_check_overflow = 0, - dl_bw_req_alloc = 1, - dl_bw_req_free = 2, +struct analog_param_range { + unsigned int min; + unsigned int typ; + unsigned int max; }; -struct idle_timer { - struct hrtimer timer; - int done; - long: 32; +struct analog_param_field { + unsigned int even; + unsigned int odd; }; -typedef struct rt_rq *rt_rq_iter_t; - -struct trace_probe_log { - const char *subsystem; - const char **argv; - int argc; - int index; +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; }; -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 *); - -struct f_owner_ex { - int type; - __kernel_pid_t pid; +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; }; -struct proc_fs_opts { - int flag; - const char *str; +enum drm_mode_analog { + DRM_MODE_ANALOG_NTSC = 0, + DRM_MODE_ANALOG_PAL = 1, }; -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]; +enum class_map_type { + DD_CLASS_TYPE_DISJOINT_BITS = 0, + DD_CLASS_TYPE_LEVEL_NUM = 1, + DD_CLASS_TYPE_DISJOINT_NAMES = 2, + DD_CLASS_TYPE_LEVEL_NAMES = 3, }; -struct jbd2_revoke_table_s { - int hash_size; - int hash_shift; - struct list_head *hash_table; +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 jbd2_revoke_record_s { - struct list_head hash; - tid_t sequence; - long: 32; - unsigned long long blocknr; +struct dpcd_quirk { + u8 oui[3]; + u8 device_id[6]; + bool is_branch; + u32 quirks; }; -struct lzo_ctx { - void *lzo_comp_mem; +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, }; -struct cmdline_subpart; - -struct cmdline_parts { - char name[32]; - unsigned int nr_subparts; - struct cmdline_subpart *subpart; - struct cmdline_parts *next_parts; +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, }; -struct cmdline_subpart { - char name[32]; - sector_t from; - sector_t size; - int flags; - struct cmdline_subpart *next_subpart; +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, }; -struct irq_glue { - struct irq_affinity_notify notify; - struct cpu_rmap *rmap; - u16 index; +enum dp_dynamic_range { + DP_DYNAMIC_RANGE_VESA = 0, + DP_DYNAMIC_RANGE_CTA = 1, }; -struct dim_cq_moder { - u16 usec; - u16 pkts; - u16 comps; - u8 cq_period_mode; +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 dim_cq_period_mode { - DIM_CQ_PERIOD_MODE_START_FROM_EQE = 0, - DIM_CQ_PERIOD_MODE_START_FROM_CQE = 1, - DIM_CQ_PERIOD_NUM_MODES = 2, +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; }; -struct bcm2836_arm_irqchip_intc { - struct irq_domain *domain; - void *base; +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 bcm7038_l1_cpu; - -struct bcm7038_l1_chip { - raw_spinlock_t lock; - unsigned int n_words; - struct irq_domain *domain; - struct bcm7038_l1_cpu *cpus[16]; - struct list_head list; - u32 wake_mask[8]; - u32 irq_fwd_mask[8]; - u8 affinity[256]; +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 bcm7038_l1_cpu { - void *map_base; - u32 mask_cache[0]; +struct dp_aux_backlight { + struct backlight_device *base; + struct drm_dp_aux *aux; + struct drm_edp_backlight_info info; + bool enabled; }; -struct phy_g12a_usb3_pcie_priv { - struct regmap *regmap; - struct regmap *regmap_cr; - struct clk *clk_ref; - struct reset_control *reset; - struct phy *phy; - unsigned int mode; +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 tegra_xusb_usb2_lane { - struct tegra_xusb_lane base; - u32 hs_curr_level_offset; - bool powered_on; +struct at24_chip_data { + u32 byte_len; + u8 flags; + u8 bank_addr_shift; + void (*read_post)(unsigned int, char *, size_t); }; -struct tegra_xusb_usb2_pad { - struct tegra_xusb_pad base; - struct clk *clk; - unsigned int enable; +struct at24_data { struct mutex lock; - long: 32; + unsigned int write_max; + unsigned int num_addresses; + unsigned int offset_adj; + u32 byte_len; + u16 page_size; + u8 flags; + struct nvmem_device *nvmem; + struct regulator *vcc_reg; + void (*read_post)(unsigned int, char *, size_t); + u8 bank_addr_shift; + struct regmap *client_regmaps[0]; }; -struct tegra124_xusb_fuse_calibration { - u32 hs_curr_level[3]; - u32 hs_iref_cap; - u32 hs_term_range_adj; - u32 hs_squelch_level; +enum max8997_irq_source { + PMIC_INT1 = 0, + PMIC_INT2 = 1, + PMIC_INT3 = 2, + PMIC_INT4 = 3, + FUEL_GAUGE = 4, + MUIC_INT1 = 5, + MUIC_INT2 = 6, + MUIC_INT3 = 7, + GPIO_LOW = 8, + GPIO_HI = 9, + FLASH_STATUS = 10, + MAX8997_IRQ_GROUP_NR = 11, }; -struct tegra124_xusb_padctl { - struct tegra_xusb_padctl___2 base; - struct tegra124_xusb_fuse_calibration fuse; +struct max8997_irq_data { + int mask; + enum max8997_irq_source group; }; -struct tegra_xusb_ulpi_lane { - struct tegra_xusb_lane base; +enum max8997_irq { + MAX8997_PMICIRQ_PWRONR = 0, + MAX8997_PMICIRQ_PWRONF = 1, + MAX8997_PMICIRQ_PWRON1SEC = 2, + MAX8997_PMICIRQ_JIGONR = 3, + MAX8997_PMICIRQ_JIGONF = 4, + MAX8997_PMICIRQ_LOWBAT2 = 5, + MAX8997_PMICIRQ_LOWBAT1 = 6, + MAX8997_PMICIRQ_JIGR = 7, + MAX8997_PMICIRQ_JIGF = 8, + MAX8997_PMICIRQ_MR = 9, + MAX8997_PMICIRQ_DVS1OK = 10, + MAX8997_PMICIRQ_DVS2OK = 11, + MAX8997_PMICIRQ_DVS3OK = 12, + MAX8997_PMICIRQ_DVS4OK = 13, + MAX8997_PMICIRQ_CHGINS = 14, + MAX8997_PMICIRQ_CHGRM = 15, + MAX8997_PMICIRQ_DCINOVP = 16, + MAX8997_PMICIRQ_TOPOFFR = 17, + MAX8997_PMICIRQ_CHGRSTF = 18, + MAX8997_PMICIRQ_MBCHGTMEXPD = 19, + MAX8997_PMICIRQ_RTC60S = 20, + MAX8997_PMICIRQ_RTCA1 = 21, + MAX8997_PMICIRQ_RTCA2 = 22, + MAX8997_PMICIRQ_SMPL_INT = 23, + MAX8997_PMICIRQ_RTC1S = 24, + MAX8997_PMICIRQ_WTSR = 25, + MAX8997_MUICIRQ_ADCError = 26, + MAX8997_MUICIRQ_ADCLow = 27, + MAX8997_MUICIRQ_ADC = 28, + MAX8997_MUICIRQ_VBVolt = 29, + MAX8997_MUICIRQ_DBChg = 30, + MAX8997_MUICIRQ_DCDTmr = 31, + MAX8997_MUICIRQ_ChgDetRun = 32, + MAX8997_MUICIRQ_ChgTyp = 33, + MAX8997_MUICIRQ_OVP = 34, + MAX8997_IRQ_NR = 35, }; -struct tegra_xusb_ulpi_pad { - struct tegra_xusb_pad base; +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 tegra_xusb_hsic_lane { - struct tegra_xusb_lane base; - u32 strobe_trim; - u32 rx_strobe_trim; - u32 rx_data_trim; - u32 tx_rtune_n; - u32 tx_rtune_p; - u32 tx_rslew_n; - u32 tx_rslew_p; - bool auto_term; -}; +struct request_sense; -struct tegra_xusb_hsic_pad { - struct tegra_xusb_pad base; - struct regulator *supply; - struct clk *clk; +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 tegra_xusb_pcie_lane { - struct tegra_xusb_lane base; +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 tegra_xusb_pcie_pad { - struct tegra_xusb_pad base; - struct reset_control *rst; - struct clk *pll; - bool enable; - long: 32; +struct scsi_ioctl_command { + unsigned int inlen; + unsigned int outlen; + unsigned char data[0]; }; -struct tegra_xusb_sata_lane { - struct tegra_xusb_lane base; +struct scsi_idlun { + __u32 dev_id; + __u32 host_unique_id; }; -struct tegra_xusb_sata_pad { - struct tegra_xusb_pad base; - struct reset_control *rst; - struct clk *pll; - bool enable; - long: 32; +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 pm8xxx_gpio { - struct device *dev; - struct regmap *regmap; - struct pinctrl_dev *pctrl; - struct gpio_chip chip; - struct pinctrl_desc desc; - unsigned int npins; -}; +struct mtd_blktrans_dev; -struct pm8xxx_pin_data___2 { - unsigned int reg; - u8 power_source; - u8 mode; - bool open_drain; - bool output_value; - u8 bias; - u8 pull_up_strength; - u8 output_strength; - bool disable; - u8 function; - bool inverted; +struct mtd_blktrans_ops { + char *name; + int major; + int part_bits; + int blksize; + int blkshift; + int (*readsect)(struct mtd_blktrans_dev *, unsigned long, char *); + int (*writesect)(struct mtd_blktrans_dev *, unsigned long, char *); + int (*discard)(struct mtd_blktrans_dev *, unsigned long, unsigned int); + void (*background)(struct mtd_blktrans_dev *); + int (*getgeo)(struct mtd_blktrans_dev *, struct hd_geometry *); + int (*flush)(struct mtd_blktrans_dev *); + int (*open)(struct mtd_blktrans_dev *); + void (*release)(struct mtd_blktrans_dev *); + void (*add_mtd)(struct mtd_blktrans_ops *, struct mtd_info *); + void (*remove_dev)(struct mtd_blktrans_dev *); + struct list_head devs; + struct list_head list; + struct module *owner; }; -typedef void (*btf_trace_gpio_direction)(void *, unsigned int, int, int); - -typedef void (*btf_trace_gpio_value)(void *, unsigned int, int, int); - -enum { - GPIOLINE_CHANGED_REQUESTED = 1, - GPIOLINE_CHANGED_RELEASED = 2, - GPIOLINE_CHANGED_CONFIG = 3, +struct mtd_blktrans_dev { + struct mtd_blktrans_ops *tr; + struct list_head list; + struct mtd_info *mtd; + struct mutex lock; + int devnum; + bool bg_stop; + unsigned long size; + int readonly; + int open; + struct kref ref; + struct gendisk *disk; + struct attribute_group *disk_attributes; + struct request_queue *rq; + struct list_head rq_list; + struct blk_mq_tag_set *tag_set; + spinlock_t queue_lock; + void *priv; + bool writable; }; -struct gpio_pin_range { - struct list_head node; - struct pinctrl_dev *pctldev; - struct pinctrl_gpio_range range; +struct mtdblk_dev { + struct mtd_blktrans_dev mbd; + int count; + struct mutex cache_mutex; + unsigned char *cache_data; + unsigned long cache_offset; + unsigned int cache_size; + enum { + STATE_EMPTY = 0, + STATE_CLEAN = 1, + STATE_DIRTY = 2, + } cache_state; }; -struct trace_event_raw_gpio_direction { - struct trace_entry ent; - unsigned int gpio; - int in; - int err; - char __data[0]; +enum nand_io { + NAND_OMAP_PREFETCH_POLLED = 0, + NAND_OMAP_POLLED = 1, + NAND_OMAP_PREFETCH_DMA = 2, + NAND_OMAP_PREFETCH_IRQ = 3, }; -struct trace_event_raw_gpio_value { - struct trace_entry ent; - unsigned int gpio; - int get; - int value; - char __data[0]; +enum omap_ecc { + OMAP_ECC_HAM1_CODE_SW = 0, + OMAP_ECC_HAM1_CODE_HW = 1, + OMAP_ECC_BCH4_CODE_HW_DETECTION_SW = 2, + OMAP_ECC_BCH4_CODE_HW = 3, + OMAP_ECC_BCH8_CODE_HW_DETECTION_SW = 4, + OMAP_ECC_BCH8_CODE_HW = 5, + OMAP_ECC_BCH16_CODE_HW = 6, }; -struct gpiod_hog { - struct list_head list; - const char *chip_label; - u16 chip_hwnum; - const char *line_name; - unsigned long lflags; - int dflags; +struct omap_nand_info { + struct nand_chip nand; + struct platform_device *pdev; + int gpmc_cs; + bool dev_ready; + enum nand_io xfer_type; + enum omap_ecc ecc_opt; + struct device_node *elm_of_node; + unsigned long phys_base; + struct completion comp; + struct dma_chan *dma; + int gpmc_irq_fifo; + int gpmc_irq_count; + enum { + OMAP_NAND_IO_READ = 0, + OMAP_NAND_IO_WRITE = 1, + } iomode; + u_char *buf; + int buf_len; + void *fifo; + struct gpmc_nand_regs reg; + struct gpmc_nand_ops *ops; + bool flash_bbt; + struct device *elm_dev; + struct gpio_desc *ready_gpiod; + unsigned int neccpg; + unsigned int nsteps_per_eccpg; + unsigned int eccpg_size; + unsigned int eccpg_bytes; + void (*data_in)(struct nand_chip *, void *, unsigned int, bool); + void (*data_out)(struct nand_chip *, const void *, unsigned int, bool); + long: 32; }; -struct trace_event_data_offsets_gpio_direction {}; - -struct trace_event_data_offsets_gpio_value {}; +struct bcm_ptp_private; -struct sp_clk_gate_info { - u16 reg; - u16 ext_parent; +struct bcm54xx_phy_priv { + u64 *stats; + struct bcm_ptp_private *ptp; + int wake_irq; + bool wake_irq_enabled; }; -enum { - SEL_FRA = 0, - SDM_MOD = 1, - PH_SEL = 2, - NFRA = 3, - DIVR = 4, - DIVN = 5, - DIVM = 6, - P_MAX = 7, +struct bcm54616s_phy_priv { + bool mode_1000bx_en; }; -struct sp_pll { - struct clk_hw hw; - void *reg; - spinlock_t lock; - int div_shift; - int div_width; - int pd_bit; - int bp_bit; - unsigned long brate; - u32 p[7]; +struct sun4i_mdio_data { + void *membase; + struct regulator *regulator; }; -struct clk_divider_gate { - struct clk_divider divider; - u32 cached_val; -}; +struct e1000_opt_list; -struct div4_clk___3 { +struct e1000_option { + enum { + enable_option = 0, + range_option = 1, + list_option = 2, + } type; const char *name; - unsigned int reg; - unsigned int shift; - int flags; -}; - -struct r8a7740_cpg { - struct clk_onecell_data data; - spinlock_t lock; -}; - -struct rockchip_clk_pll { - struct clk_hw hw; - struct clk_mux pll_mux; - const struct clk_ops *pll_mux_ops; - struct notifier_block clk_nb; - void *reg_base; - int lock_offset; - unsigned int lock_shift; - enum rockchip_pll_type type; - u8 flags; - const struct rockchip_pll_rate_table *rate_table; - unsigned int rate_count; - spinlock_t *lock; - struct rockchip_clk_provider *ctx; -}; - -struct socfpga_periph_clk { - struct clk_gate hw; - char *parent_name; - u32 fixed_div; - void *div_reg; - void *bypass_reg; - u32 width; - u32 shift; - u32 bypass_shift; + const char *err; + int def; + union { + struct { + int min; + int max; + } r; + struct { + int nr; + struct e1000_opt_list *p; + } l; + } arg; }; -struct _ccu_nkmp { - unsigned long n; - unsigned long min_n; - unsigned long max_n; - unsigned long k; - unsigned long min_k; - unsigned long max_k; - unsigned long m; - unsigned long min_m; - unsigned long max_m; - unsigned long p; - unsigned long min_p; - unsigned long max_p; +struct e1000_opt_list { + int i; + char *str; }; -enum cpubiuctrl_regs { - CPU_CREDIT_REG = 0, - CPU_MCP_FLOW_REG = 1, - CPU_WRITEBACK_CTRL_REG = 2, - RAC_CONFIG0_REG = 3, - RAC_CONFIG1_REG = 4, - NUM_CPU_BIUCTRL_REGS = 5, +struct vcap_enabled_port { + struct list_head list; + struct net_device *ndev; + unsigned long cookie; + int src_cid; + int dst_cid; }; -struct exynos_soc_id { - const char *name; - unsigned int id; +struct vcap_stream_iter { + u32 offset; + u32 sw_width; + u32 regs_per_sw; + u32 reg_idx; + u32 reg_bitpos; + const struct vcap_typegroup *tg; }; -struct exynos_chipid_variant { - unsigned int rev_reg; - unsigned int main_rev_shift; - unsigned int sub_rev_shift; +struct vcap_actionset_list { + int max; + int cnt; + enum vcap_actionfield_set *actionsets; }; -struct exynos_chipid_info { - u32 product_id; - u32 revision; +struct vcap_rule_move { + int addr; + int offset; + int count; }; -enum palmas_regulators { - PALMAS_REG_SMPS12 = 0, - PALMAS_REG_SMPS123 = 1, - PALMAS_REG_SMPS3 = 2, - PALMAS_REG_SMPS45 = 3, - PALMAS_REG_SMPS457 = 4, - PALMAS_REG_SMPS6 = 5, - PALMAS_REG_SMPS7 = 6, - PALMAS_REG_SMPS8 = 7, - PALMAS_REG_SMPS9 = 8, - PALMAS_REG_SMPS10_OUT2 = 9, - PALMAS_REG_SMPS10_OUT1 = 10, - PALMAS_REG_LDO1 = 11, - PALMAS_REG_LDO2 = 12, - PALMAS_REG_LDO3 = 13, - PALMAS_REG_LDO4 = 14, - PALMAS_REG_LDO5 = 15, - PALMAS_REG_LDO6 = 16, - PALMAS_REG_LDO7 = 17, - PALMAS_REG_LDO8 = 18, - PALMAS_REG_LDO9 = 19, - PALMAS_REG_LDOLN = 20, - PALMAS_REG_LDOUSB = 21, - PALMAS_REG_REGEN1 = 22, - PALMAS_REG_REGEN2 = 23, - PALMAS_REG_REGEN3 = 24, - PALMAS_REG_SYSEN1 = 25, - PALMAS_REG_SYSEN2 = 26, - PALMAS_NUM_REGS = 27, +struct meson_dwmac { + struct device *dev; + void *reg; }; -enum tps65917_regulators { - TPS65917_REG_SMPS1 = 0, - TPS65917_REG_SMPS2 = 1, - TPS65917_REG_SMPS3 = 2, - TPS65917_REG_SMPS4 = 3, - TPS65917_REG_SMPS5 = 4, - TPS65917_REG_SMPS12 = 5, - TPS65917_REG_LDO1 = 6, - TPS65917_REG_LDO2 = 7, - TPS65917_REG_LDO3 = 8, - TPS65917_REG_LDO4 = 9, - TPS65917_REG_LDO5 = 10, - TPS65917_REG_REGEN1 = 11, - TPS65917_REG_REGEN2 = 12, - TPS65917_REG_REGEN3 = 13, - TPS65917_NUM_REGS = 14, +struct usb_dynid { + struct list_head node; + struct usb_device_id id; }; -struct tty_file_private { - struct tty_struct *tty; - struct file *file; - struct list_head list; +struct st_dwc3 { + struct device *dev; + void *glue_base; + struct regmap *regmap; + int syscfg_reg_off; + enum usb_dr_mode dr_mode; + struct reset_control *rstc_pwrdn; + struct reset_control *rstc_rst; }; -struct digicolor_port { - struct uart_port port; - struct delayed_work rx_poll_work; - long: 32; +struct atmel_ehci_priv { + struct clk *iclk; + struct clk *uclk; + bool clocked; }; -struct drm_print_iterator { - void *data; - ssize_t start; - ssize_t remain; - ssize_t offset; +typedef void (*btf_trace_ci_log)(void *, struct ci_hdrc *, struct va_format *); + +typedef void (*btf_trace_ci_prepare_td)(void *, struct ci_hw_ep *, struct ci_hw_req *, struct td_node *); + +typedef void (*btf_trace_ci_complete_td)(void *, struct ci_hw_ep *, struct ci_hw_req *, struct td_node *); + +struct trace_event_raw_ci_log { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_msg; + char __data[0]; }; -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; +struct trace_event_raw_ci_log_trb { + struct trace_entry ent; + u32 __data_loc_name; + struct td_node *td; + struct usb_request *req; + dma_addr_t dma; + s32 td_remaining_size; + u32 next; + u32 token; + u32 type; + char __data[0]; }; -struct gr2d_soc { - unsigned int version; +struct trace_event_data_offsets_ci_log { + u32 name; + u32 msg; }; -enum { - RST_MC___2 = 0, - RST_GR2D = 1, - RST_GR2D_MAX = 2, +struct trace_event_data_offsets_ci_log_trb { + u32 name; }; -struct gr2d { - struct tegra_drm_client client; - struct host1x_channel *channel; +struct st_keyscan { + void *base; + int irq; struct clk *clk; - struct reset_control_bulk_data resets[2]; - unsigned int nresets; - const struct gr2d_soc *soc; - unsigned long addr_regs[3]; + struct input_dev *input_dev; + unsigned long last_state; + unsigned int n_rows; + unsigned int n_cols; + unsigned int debounce_us; }; -struct soc_device { - struct device dev; - struct soc_device_attribute *attr; - int soc_dev_num; +struct pm8941_data { + unsigned int pull_up_bit; + unsigned int status_bit; + bool supports_ps_hold_poff_config; + bool supports_debounce_config; + bool has_pon_pbs; + const char *name; + const char *phys; }; -struct sram_partition { - void *base; - struct gen_pool *pool; - struct bin_attribute battr; - struct mutex lock; - struct list_head list; +struct pm8941_pwrkey { + struct device *dev; + int irq; + u32 baseaddr; + u32 pon_pbs_baseaddr; + struct regmap *regmap; + struct input_dev *input; + unsigned int revision; + unsigned int subtype; + struct notifier_block reboot_notifier; + u32 code; + u32 sw_debounce_time_us; + long: 32; + ktime_t sw_debounce_end_time; + bool last_status; + const struct pm8941_data *data; }; -struct sram_config; +struct st_rtc { + struct rtc_device *rtc_dev; + struct rtc_wkalrm alarm; + struct clk *clk; + unsigned long clkrate; + void *ioaddr; + bool irq_enabled: 1; + spinlock_t lock; + short irq; +}; -struct sram_dev { - const struct sram_config *config; - struct device *dev; - void *virt_base; - bool no_memory_wc; - struct gen_pool *pool; - struct sram_partition *partition; - u32 partitions; +struct pps_kinfo { + __u32 assert_sequence; + __u32 clear_sequence; + struct pps_ktime assert_tu; + struct pps_ktime clear_tu; + int current_mode; + long: 32; }; -struct sram_config { - int (*init)(); - bool map_only_reserved; +struct pps_fdata { + struct pps_kinfo info; + struct pps_ktime timeout; }; -struct sram_reserve { - struct list_head list; - u32 start; - u32 size; - struct resource res; - bool export; - bool pool; - bool protect_exec; - const char *label; +struct pps_bind_args { + int tsformat; + int edge; + int consumer; }; -struct clk_mgt { - u32 offset; - u32 pllsw; - int branch; - bool clk38div; +struct shdwc___2 { + struct clk *sclk; + void *shdwc_base; + void *mpddrc_base; }; -struct dsiclk { - u32 divsel_mask; - u32 divsel_shift; - u32 divsel; +enum wakeup_type { + AT91_SHDW_WKMODE0_NONE = 0, + AT91_SHDW_WKMODE0_HIGH = 1, + AT91_SHDW_WKMODE0_LOW = 2, + AT91_SHDW_WKMODE0_ANYLEVEL = 3, }; -struct dsiescclk { - u32 en; - u32 div_mask; - u32 div_shift; +struct pm8916_pon { + struct device *dev; + struct regmap *regmap; + u32 baseaddr; + struct reboot_mode_driver reboot_mode; + long reason_shift; }; -enum romcode_write { - RDY_2_DS = 9, - RDY_2_XP70_RST = 16, +struct lm90_params { + u32 flags; + u16 alert_alarms; + u8 max_convrate; + u8 resolution; + u8 reg_status2; + u8 reg_local_ext; + u8 faultqueue_mask; + u8 faultqueue_depth; }; -enum romcode_read { - INIT___2 = 0, - FS_2_DS = 10, - END_DS = 11, - DS_TO_FS = 12, - END_FS = 13, - SWR = 14, - END_SWR = 15, +enum lm90_temp_reg_index { + LOCAL_LOW = 0, + LOCAL_HIGH = 1, + LOCAL_CRIT = 2, + REMOTE_CRIT = 3, + LOCAL_EMERG = 4, + REMOTE_EMERG = 5, + REMOTE2_CRIT = 6, + REMOTE2_EMERG = 7, + REMOTE_TEMP = 8, + REMOTE_LOW = 9, + REMOTE_HIGH = 10, + REMOTE_OFFSET = 11, + LOCAL_TEMP = 12, + REMOTE2_TEMP = 13, + REMOTE2_LOW = 14, + REMOTE2_HIGH = 15, + REMOTE2_OFFSET = 16, + TEMP_REG_NUM = 17, }; -enum ap_pwrst { - NO_PWRST = 0, - AP_BOOT = 1, - AP_EXECUTE = 2, - AP_DEEP_SLEEP = 3, - AP_SLEEP = 4, - AP_IDLE = 5, - AP_RESET = 6, +enum chips { + adm1023 = 0, + adm1032 = 1, + adt7461 = 2, + adt7461a = 3, + adt7481 = 4, + g781 = 5, + lm84 = 6, + lm90 = 7, + lm99 = 8, + max1617 = 9, + max6642 = 10, + max6646 = 11, + max6648 = 12, + max6654 = 13, + max6657 = 14, + max6659 = 15, + max6680 = 16, + max6696 = 17, + nct210 = 18, + nct72 = 19, + ne1618 = 20, + sa56004 = 21, + tmp451 = 22, + tmp461 = 23, + w83l771 = 24, }; -enum ap_pwrst_trans { - PRCMU_AP_NO_CHANGE = 0, - APEXECUTE_TO_APSLEEP = 1, - APIDLE_TO_APSLEEP = 2, - PRCMU_AP_SLEEP = 1, - APBOOT_TO_APEXECUTE = 3, - APEXECUTE_TO_APDEEPSLEEP = 4, - PRCMU_AP_DEEP_SLEEP = 4, - APEXECUTE_TO_APIDLE = 5, - PRCMU_AP_IDLE = 5, - PRCMU_AP_DEEP_IDLE = 7, +struct lm90_data { + struct i2c_client *client; + struct device *hwmon_dev; + u32 chip_config[2]; + u32 channel_config[4]; + const char *channel_label[3]; + struct hwmon_channel_info chip_info; + struct hwmon_channel_info temp_info; + const struct hwmon_channel_info *info[3]; + struct hwmon_chip_info chip; + struct mutex update_lock; + struct delayed_work alert_work; + struct work_struct report_work; + bool valid; + bool alarms_valid; + unsigned long last_updated; + unsigned long alarms_updated; + int kind; + u32 flags; + unsigned int update_interval; + u8 config; + u8 config_orig; + u8 convrate_orig; + u8 resolution; + u16 alert_alarms; + u8 max_convrate; + u8 reg_status2; + u8 reg_local_ext; + u8 reg_remote_ext; + u8 faultqueue_mask; + u8 faultqueue_depth; + u16 temp[17]; + u8 temp_hyst; + u8 conalert; + u16 reported_alarms; + u16 current_alarms; + u16 alarms; }; -enum prcmu_wakeup_index { - PRCMU_WAKEUP_INDEX_RTC = 0, - PRCMU_WAKEUP_INDEX_RTT0 = 1, - PRCMU_WAKEUP_INDEX_RTT1 = 2, - PRCMU_WAKEUP_INDEX_HSI0 = 3, - PRCMU_WAKEUP_INDEX_HSI1 = 4, - PRCMU_WAKEUP_INDEX_USB = 5, - PRCMU_WAKEUP_INDEX_ABB = 6, - PRCMU_WAKEUP_INDEX_ABB_FIFO = 7, - PRCMU_WAKEUP_INDEX_ARM = 8, - PRCMU_WAKEUP_INDEX_CD_IRQ = 9, - NUM_PRCMU_WAKEUP_INDICES = 10, +struct rn5t618_wdt { + struct watchdog_device wdt_dev; + struct rn5t618 *rn5t618; }; -enum arm_opp { - ARM_OPP_INIT = 0, - ARM_NO_CHANGE = 1, - ARM_100_OPP = 2, - ARM_50_OPP = 3, - ARM_MAX_OPP = 4, - ARM_MAX_FREQ100OPP = 5, - ARM_EXTCLK = 7, +struct dc_wdt { + void *base; + struct clk *clk; + spinlock_t lock; }; -enum ape_opp { - APE_OPP_INIT = 0, - APE_NO_CHANGE = 1, - APE_100_OPP = 2, - APE_50_OPP = 3, - APE_50_PARTLY_25_OPP = 255, +struct hb_mc_settings { + int err_offset; + int int_offset; }; -enum { - PLL_RAW = 0, - PLL_FIX = 1, - PLL_DIV = 2, +struct hb_mc_drvdata { + void *mc_err_base; + void *mc_int_base; }; -enum ddr_pwrst { - DDR_PWR_STATE_UNCHANGED = 0, - DDR_PWR_STATE_ON = 1, - DDR_PWR_STATE_OFFLOWLAT = 2, - DDR_PWR_STATE_OFFHIGHLAT = 3, +enum tegra_state { + TEGRA_C1 = 0, + TEGRA_C7 = 1, + TEGRA_CC6 = 2, + TEGRA_STATE_COUNT = 3, }; -enum state___2 { - OFF___3 = 0, - ON = 1, +struct led_pwm_data { + struct led_classdev cdev; + struct pwm_device *pwm; + long: 32; + struct pwm_state pwmstate; + unsigned int active_low; + long: 32; }; -struct prcmu_auto_pm_config { - u8 sia_auto_pm_enable; - u8 sia_power_on; - u8 sia_policy; - u8 sva_auto_pm_enable; - u8 sva_power_on; - u8 sva_policy; +struct led_pwm_priv { + int num_leds; + long: 32; + struct led_pwm_data leds[0]; }; -enum { - MICRON_ON_DIE_UNSUPPORTED = 0, - MICRON_ON_DIE_SUPPORTED = 1, - MICRON_ON_DIE_MANDATORY = 2, +struct led_pwm { + const char *name; + u8 active_low; + u8 default_state; + unsigned int max_brightness; }; -struct nand_onfi_vendor_micron { - u8 two_plane_read; - u8 read_cache; - u8 read_unique_id; - u8 dq_imped; - u8 dq_imped_num_settings; - u8 dq_imped_feat_addr; - u8 rb_pulldown_strength; - u8 rb_pulldown_strength_feat_addr; - u8 rb_pulldown_strength_num_settings; - u8 otp_mode; - u8 otp_page_start; - u8 otp_data_prot_addr; - u8 otp_num_pages; - u8 otp_feat_addr; - u8 read_retry_options; - u8 reserved[72]; - u8 param_revision; +enum scmi_sensor_protocol_cmd { + SENSOR_DESCRIPTION_GET = 3, + SENSOR_TRIP_POINT_NOTIFY = 4, + SENSOR_TRIP_POINT_CONFIG = 5, + SENSOR_READING_GET = 6, + SENSOR_AXIS_DESCRIPTION_GET = 7, + SENSOR_LIST_UPDATE_INTERVALS = 8, + SENSOR_CONFIG_GET = 9, + SENSOR_CONFIG_SET = 10, + SENSOR_CONTINUOUS_UPDATE_NOTIFY = 11, + SENSOR_NAME_GET = 12, + SENSOR_AXIS_NAME_GET = 13, }; -struct micron_on_die_ecc { - bool forced; - bool enabled; - void *rawbuf; +struct scmi_sens_ipriv { + void *priv; + struct device *dev; }; -struct micron_nand { - struct micron_on_die_ecc ecc; +struct sensors_info { + u32 version; + int num_sensors; + int max_requests; + long: 32; + u64 reg_addr; + u32 reg_size; + struct scmi_sensor_info *sensors; }; -struct cdns_spi { - void *regs; - struct clk *ref_clk; - struct clk *pclk; - unsigned int clk_rate; - u32 speed_hz; - const u8 *txbuf; - u8 *rxbuf; - int tx_bytes; - int rx_bytes; - u8 dev_busy; - u32 is_decoded_cs; - unsigned int tx_fifo_depth; +struct scmi_msg_resp_sensor_attributes { + __le16 num_sensors; + u8 max_requests; + u8 reserved; + __le32 reg_addr_low; + __le32 reg_addr_high; + __le32 reg_size; }; -struct kszphy_type { - u32 led_mode_reg; - u16 interrupt_level_mask; - u16 cable_diag_reg; - unsigned long pair_mask; - u16 disable_dll_tx_bit; - u16 disable_dll_rx_bit; - u16 disable_dll_mask; - bool has_broadcast_disable; - bool has_nand_tree_disable; - bool has_rmii_ref_clk_sel; +struct scmi_msg_resp_attrs { + __le32 min_range_low; + __le32 min_range_high; + __le32 max_range_low; + __le32 max_range_high; }; -struct kszphy_hw_stat { - const char *string; - u8 reg; - u8 bits; +struct scmi_apriv { + bool any_axes_support_extended_names; + struct scmi_sensor_info *s; }; -struct ksz9477_errata_write { - u8 dev_addr; - u8 reg_addr; - u16 val; +struct scmi_sensor_reading_resp { + __le32 sensor_value_low; + __le32 sensor_value_high; + __le32 timestamp_low; + __le32 timestamp_high; }; -struct lan8814_shared_priv { - struct phy_device *phydev; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_clock_info; - u8 ref; - struct mutex shared_lock; +struct scmi_msg_sensor_request_notify { + __le32 id; + __le32 event_control; }; -struct kszphy_ptp_priv { - struct mii_timestamper mii_ts; - struct phy_device *phydev; - struct sk_buff_head tx_queue; - struct sk_buff_head rx_queue; - struct list_head rx_ts_list; - spinlock_t rx_ts_lock; - int hwts_tx_type; - enum hwtstamp_rx_filters rx_filter; - int layer; - int version; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_clock_info; - struct mutex ptp_lock; - struct ptp_pin_desc *pin_config; - long: 32; - s64 seconds; - spinlock_t seconds_lock; - long: 32; +struct scmi_msg_sensor_description { + __le32 desc_index; }; -struct kszphy_priv { - struct kszphy_ptp_priv ptp_priv; - const struct kszphy_type *type; - int led_mode; - u16 vct_ctrl1000; - bool rmii_ref_clk_sel; - bool rmii_ref_clk_sel_val; - long: 32; - u64 stats[2]; +struct scmi_sensor_descriptor { + __le32 id; + __le32 attributes_low; + __le32 attributes_high; + u8 name[16]; + __le32 power; + __le32 resolution; + struct scmi_msg_resp_attrs scalar_attrs; }; -struct lan8814_ptp_rx_ts { - struct list_head list; - u32 seconds; - u32 nsec; - u16 seq_id; +struct scmi_msg_resp_sensor_description { + __le16 num_returned; + __le16 num_remaining; + struct scmi_sensor_descriptor desc[0]; }; -struct e1000_stats { - char stat_string[32]; - int type; - int sizeof_stat; - int stat_offset; +struct scmi_msg_sensor_list_update_intervals { + __le32 id; + __le32 index; }; -enum { - NETDEV_STATS = 0, - E1000_STATS = 1, +struct scmi_msg_resp_sensor_list_update_intervals { + __le32 num_intervals_flags; + __le32 intervals[0]; }; -struct stmmac_regs_off { - u32 ptp_off; - u32 mmc_off; +struct scmi_msg_sensor_axis_description_get { + __le32 id; + __le32 axis_desc_index; }; -struct stmmac_hwif_entry { - bool gmac; - bool gmac4; - bool xgmac; - u32 min_id; - u32 dev_id; - const struct stmmac_regs_off regs; - const void *desc; - const void *dma; - const void *mac; - const void *hwtimestamp; - const void *mode; - const void *tc; - const void *mmc; - int (*setup)(struct stmmac_priv *); - int (*quirks)(struct stmmac_priv *); +struct scmi_axis_descriptor { + __le32 id; + __le32 attributes_low; + __le32 attributes_high; + u8 name[16]; + __le32 resolution; + struct scmi_msg_resp_attrs attrs; }; -struct net_local { - struct net_device *ndev; - bool tx_ping_pong; - bool rx_ping_pong; - u32 next_tx_buf_to_use; - u32 next_rx_buf_to_use; - void *base_addr; - spinlock_t reset_lock; - struct sk_buff *deferred_skb; - struct phy_device *phy_dev; - struct device_node *phy_node; - struct mii_bus *mii_bus; - int last_link; +struct scmi_msg_resp_sensor_axis_description { + __le32 num_axis_flags; + struct scmi_axis_descriptor desc[0]; }; -struct st_dwc3 { - struct device *dev; - void *glue_base; - struct regmap *regmap; - int syscfg_reg_off; - enum usb_dr_mode dr_mode; - struct reset_control *rstc_pwrdn; - struct reset_control *rstc_rst; +struct scmi_sensor_axis_name_descriptor { + __le32 axis_id; + u8 name[64]; }; -struct spear_ohci { - struct clk *clk; +struct scmi_msg_resp_sensor_axis_names_description { + __le32 num_axis_flags; + struct scmi_sensor_axis_name_descriptor desc[0]; }; -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[16]; - unsigned char set; - bool translated; - bool extra; - bool write; - bool softrepeat; - bool softraw; - bool scroll; - bool enabled; - unsigned char emul; - bool resend; - bool release; - unsigned long xl_bit; - unsigned int last; - unsigned long time; - unsigned long err_count; - struct delayed_work event_work; - unsigned long event_jiffies; - unsigned long event_mask; - struct mutex mutex; - struct vivaldi_data vdata; +struct scmi_msg_set_sensor_trip_point { + __le32 id; + __le32 event_control; + __le32 value_low; + __le32 value_high; }; -struct pl031_vendor_data { - struct rtc_class_ops ops; - bool clockwatch; - bool st_weekday; - unsigned long irqflags; - long: 32; - time64_t range_min; - timeu64_t range_max; +struct scmi_msg_sensor_reading_get { + __le32 id; + __le32 flags; }; -struct pl031_local { - struct pl031_vendor_data *vendor; - struct rtc_device *rtc; - void *base; +struct scmi_resp_sensor_reading_complete { + __le32 id; + __le32 readings_low; + __le32 readings_high; }; -struct st_i2c_timings { - u32 rate; - u32 rep_start_hold; - u32 rep_start_setup; - u32 start_hold; - u32 data_setup_time; - u32 stop_setup_time; - u32 bus_free_time; - u32 sda_pulse_min_limit; +struct scmi_resp_sensor_reading_complete_v3 { + __le32 id; + struct scmi_sensor_reading_resp readings[0]; }; -enum st_i2c_mode { - I2C_MODE_STANDARD = 0, - I2C_MODE_FAST = 1, - I2C_MODE_END = 2, +struct scmi_msg_sensor_config_set { + __le32 id; + __le32 sensor_config; }; -struct st_i2c_client { - u8 addr; - u32 count; - u32 xfered; - u8 *buf; - int result; - bool stop; +struct scmi_sensor_trip_point_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int sensor_id; + unsigned int trip_point_desc; + long: 32; }; -struct st_i2c_dev { - struct i2c_adapter adap; - struct device *dev; - void *base; - struct completion complete; - int irq; - struct clk *clk; - int mode; - u32 scl_min_width_us; - u32 sda_min_width_us; - struct st_i2c_client client; - bool busy; +struct scmi_sensor_trip_notify_payld { + __le32 agent_id; + __le32 sensor_id; + __le32 trip_point_desc; }; -struct reg_config; +struct scmi_sensor_update_notify_payld { + __le32 agent_id; + __le32 sensor_id; + struct scmi_sensor_reading_resp readings[0]; +}; -struct shdwc___2 { - const struct reg_config *rcfg; - struct clk *sclk; - void *shdwc_base; - void *mpddrc_base; - void *pmc_base; +struct scmi_sensor_update_report { + ktime_t timestamp; + unsigned int agent_id; + unsigned int sensor_id; + unsigned int readings_count; + long: 32; + struct scmi_sensor_reading readings[0]; }; -struct shdwc_reg_config { - u8 wkup_pin_input; - u8 mr_rtcwk_shift; - u8 mr_rttwk_shift; - u8 sr_rtcwk_shift; - u8 sr_rttwk_shift; +struct efifb_dmi_info { + char *optname; + unsigned long base; + int stride; + int width; + int height; + int flags; }; -struct pmc_reg_config { - u8 mckr; +enum { + M_I17 = 0, + M_I20 = 1, + M_I20_SR = 2, + M_I24 = 3, + M_I24_8_1 = 4, + M_I24_10_1 = 5, + M_I27_11_1 = 6, + M_MINI = 7, + M_MINI_3_1 = 8, + M_MINI_4_1 = 9, + M_MB = 10, + M_MB_2 = 11, + M_MB_3 = 12, + M_MB_5_1 = 13, + M_MB_6_1 = 14, + M_MB_7_1 = 15, + M_MB_SR = 16, + M_MBA = 17, + M_MBA_3 = 18, + M_MBP = 19, + M_MBP_2 = 20, + M_MBP_2_2 = 21, + M_MBP_SR = 22, + M_MBP_4 = 23, + M_MBP_5_1 = 24, + M_MBP_5_2 = 25, + M_MBP_5_3 = 26, + M_MBP_6_1 = 27, + M_MBP_6_2 = 28, + M_MBP_7_1 = 29, + M_MBP_8_2 = 30, + M_UNKNOWN = 31, }; -struct ddrc_reg_config { - u32 type_offset; - u32 type_mask; +enum { + OVERRIDE_NONE = 0, + OVERRIDE_BASE = 1, + OVERRIDE_STRIDE = 2, + OVERRIDE_HEIGHT = 4, + OVERRIDE_WIDTH = 8, }; -struct reg_config { - struct shdwc_reg_config shdwc; - struct pmc_reg_config pmc; - struct ddrc_reg_config ddrc; +struct ti_32k { + void *base; + void *counter; + struct clocksource cs; }; -struct tps65090_charger { +struct gxp_timer { + void *counter; + void *control; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + struct clock_event_device evt; +}; + +struct qcom_ipcc_chan_info; + +struct qcom_ipcc { struct device *dev; - int ac_online; - int prev_ac_online; + void *base; + struct irq_domain *irq_domain; + struct mbox_chan *chans; + struct qcom_ipcc_chan_info *mchan; + long: 32; + struct mbox_controller mbox; + int num_chans; int irq; - struct task_struct *poll_task; - bool passive_mode; - struct power_supply *ac; - struct tps65090_platform_data *pdata; }; -struct at91wdt { - struct watchdog_device wdd; - void *base; - unsigned long next_heartbeat; - struct timer_list timer; - u32 mr; - u32 mr_mask; - unsigned long heartbeat; - bool nowayout; - unsigned int irq; - struct clk *sclk; +struct qcom_ipcc_chan_info { + u16 client_id; + u16 signal_id; }; -struct qcom_scm { +struct usb_extcon_info { struct device *dev; - struct clk *core_clk; - struct clk *iface_clk; - struct clk *bus_clk; - struct icc_path *path; - struct completion waitq_comp; - struct reset_controller_dev reset; - struct mutex scm_bw_lock; - int scm_vote_count; - u64 dload_mode_addr; + struct extcon_dev *edev; + struct gpio_desc *id_gpiod; + struct gpio_desc *vbus_gpiod; + int id_irq; + int vbus_irq; + unsigned long debounce_jiffies; + struct delayed_work wq_detcable; }; -enum qcom_scm_arg_types { - QCOM_SCM_VAL = 0, - QCOM_SCM_RO = 1, - QCOM_SCM_RW = 2, - QCOM_SCM_BUFVAL = 3, +enum { + SK_DIAG_BPF_STORAGE_REQ_NONE = 0, + SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, + __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, }; -enum qcom_scm_ocmem_client { - QCOM_SCM_OCMEM_UNUSED_ID = 0, - QCOM_SCM_OCMEM_GRAPHICS_ID = 1, - QCOM_SCM_OCMEM_VIDEO_ID = 2, - QCOM_SCM_OCMEM_LP_AUDIO_ID = 3, - QCOM_SCM_OCMEM_SENSORS_ID = 4, - QCOM_SCM_OCMEM_OTHER_OS_ID = 5, - QCOM_SCM_OCMEM_DEBUG_ID = 6, +enum { + SK_DIAG_BPF_STORAGE_REP_NONE = 0, + SK_DIAG_BPF_STORAGE = 1, + __SK_DIAG_BPF_STORAGE_REP_MAX = 2, }; -enum qcom_scm_ice_cipher { - QCOM_SCM_ICE_CIPHER_AES_128_XTS = 0, - QCOM_SCM_ICE_CIPHER_AES_128_CBC = 1, - QCOM_SCM_ICE_CIPHER_AES_256_XTS = 3, - QCOM_SCM_ICE_CIPHER_AES_256_CBC = 4, +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, }; -struct qcom_scm_pas_metadata { - void *ptr; - dma_addr_t phys; - ssize_t size; +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 qcom_scm_vmperm { - int vmid; - int perm; +struct bpf_iter_seq_sk_storage_map_info { + struct bpf_map *map; + unsigned int bucket_id; + unsigned int skip_elems; }; -struct qcom_scm_mem_map_info { - __le64 mem_addr; - __le64 mem_size; +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 qcom_scm_current_perm_info { - __le32 vmid; - __le32 perm; - __le64 ctx; - __le32 ctx_size; - __le32 unused; +enum { + ETHTOOL_STATS_ETH_PHY = 0, + ETHTOOL_STATS_ETH_MAC = 1, + ETHTOOL_STATS_ETH_CTRL = 2, + ETHTOOL_STATS_RMON = 3, + __ETHTOOL_STATS_CNT = 4, }; -struct qcom_scm_hdcp_req { - u32 addr; - u32 val; +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, }; -struct alias_prop { - struct list_head link; - const char *alias; - struct device_node *np; - int id; - char stem[0]; +enum { + ETHTOOL_A_STATS_GRP_UNSPEC = 0, + ETHTOOL_A_STATS_GRP_PAD = 1, + ETHTOOL_A_STATS_GRP_ID = 2, + ETHTOOL_A_STATS_GRP_SS_ID = 3, + ETHTOOL_A_STATS_GRP_STAT = 4, + ETHTOOL_A_STATS_GRP_HIST_RX = 5, + ETHTOOL_A_STATS_GRP_HIST_TX = 6, + ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, + ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, + ETHTOOL_A_STATS_GRP_HIST_VAL = 9, + __ETHTOOL_A_STATS_GRP_CNT = 10, + ETHTOOL_A_STATS_GRP_MAX = 9, }; -struct isl29028_prox_data { - int sampling_int; - int sampling_fract; - int sleep_time; +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 isl29028_als_ir_mode { - ISL29028_MODE_NONE = 0, - ISL29028_MODE_ALS = 1, - ISL29028_MODE_IR = 2, +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, }; -struct isl29028_chip { - struct mutex lock; - struct regmap *regmap; - int prox_sampling_int; - int prox_sampling_frac; - bool enable_prox; - int lux_scale; - enum isl29028_als_ir_mode als_ir_mode; +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, }; -struct fib_notifier_net { - struct list_head fib_notifier_ops; - struct atomic_notifier_head fib_chain; +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, }; -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 stats_req_info { + struct ethnl_req_info base; + unsigned long stat_mask[1]; + enum ethtool_mac_stats_src src; }; -struct wol_reply_data { +struct stats_reply_data { struct ethnl_reply_data base; - struct ethtool_wolinfo wol; - bool show_sopass; + long: 32; + 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; + long: 32; }; struct tsq_tasklet { @@ -157471,6 +159018,7 @@ enum tsq_flags { TCPF_WRITE_TIMER_DEFERRED = 8, TCPF_DELACK_TIMER_DEFERRED = 16, TCPF_MTU_REDUCED_DEFERRED = 32, + TCPF_ACK_DEFERRED = 64, }; enum { @@ -157494,6 +159042,55 @@ struct tcp_out_options { struct mptcp_out_options mptcp; }; +struct bpf_iter__unix { + union { + struct bpf_iter_meta *meta; + }; + union { + struct unix_sock *unix_sk; + }; + uid_t uid; + long: 32; +}; + +struct bpf_unix_iter_state { + struct seq_net_private p; + unsigned int cur_sk; + unsigned int end_sk; + unsigned int max_sk; + struct sock **batch; + bool st_bucket_done; +}; + +struct unix_stream_read_state { + int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *); + struct socket *socket; + struct msghdr *msg; + struct pipe_inode_info *pipe; + size_t size; + int flags; + unsigned int splice_flags; +}; + +struct 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 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 gss_domain { struct auth_domain h; u32 pseudoflavor; @@ -157534,43 +159131,442 @@ struct gss_svc_data { u8 gsd_scratch[40]; }; -struct omap_wakeupgen_ops { - void (*save_context)(); - void (*restore_context)(); +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 wq_flusher; +struct lzma_header; -struct workqueue_attrs; +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 wq_device; +struct lzma_header { + uint8_t pos; + uint32_t dict_size; + uint64_t dst_size; +} __attribute__((packed)); -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; +struct cstate { + int state; + uint32_t rep0; + uint32_t rep1; + uint32_t rep2; + uint32_t rep3; +}; + +struct fdt_errtabent { + const char *str; +}; + +struct ida_bitmap { + unsigned long bitmap[32]; +}; + +enum { + ZONE_MAN_CLKEN_MASK = 1, + ZONE_MAN_RESET_CNTL_MASK = 2, + ZONE_MAN_MEM_PWR_MASK = 16, + ZONE_RESERVED_1_MASK = 32, + ZONE_MAN_ISO_CNTL_MASK = 64, + ZONE_MANUAL_CONTROL_MASK = 128, + ZONE_PWR_DN_REQ_MASK = 512, + ZONE_PWR_UP_REQ_MASK = 1024, + ZONE_BLK_RST_ASSERT_MASK = 4096, + ZONE_PWR_OFF_STATE_MASK = 33554432, + ZONE_PWR_ON_STATE_MASK = 67108864, + ZONE_DPG_PWR_STATE_MASK = 268435456, + ZONE_MEM_PWR_STATE_MASK = 536870912, + ZONE_RESET_STATE_MASK = 2147483648, + CPU0_PWR_ZONE_CTRL_REG = 1, + CPU_RESET_CONFIG_REG = 2, +}; + +struct omap_smp_config { + unsigned long cpu1_rstctrl_pa; + void *cpu1_rstctrl_va; + void *scu_base; + void *wakeupgen_base; + void *startup_addr; +}; + +struct rockchip_pm_data { + const struct platform_suspend_ops *ops; + int (*init)(struct device_node *); +}; + +enum { + ROCKCHIP_ARM_OFF_LOGIC_NORMAL = 0, + ROCKCHIP_ARM_OFF_LOGIC_DEEP = 1, +}; + +enum rk3288_pwr_mode_con { + PMU_PWR_MODE_EN = 0, + PMU_CLK_CORE_SRC_GATE_EN = 1, + PMU_GLOBAL_INT_DISABLE = 2, + PMU_L2FLUSH_EN = 3, + PMU_BUS_PD_EN = 4, + PMU_A12_0_PD_EN = 5, + PMU_SCU_EN = 6, + PMU_PLL_PD_EN = 7, + PMU_CHIP_PD_EN = 8, + PMU_PWROFF_COMB = 9, + PMU_ALIVE_USE_LF = 10, + PMU_PMU_USE_LF = 11, + PMU_OSC_24M_DIS = 12, + PMU_INPUT_CLAMP_EN = 13, + PMU_WAKEUP_RESET_EN = 14, + PMU_SREF0_ENTER_EN = 15, + PMU_SREF1_ENTER_EN = 16, + PMU_DDR0IO_RET_EN = 17, + PMU_DDR1IO_RET_EN = 18, + PMU_DDR0_GATING_EN = 19, + PMU_DDR1_GATING_EN = 20, + PMU_DDR0IO_RET_DE_REQ = 21, + PMU_DDR1IO_RET_DE_REQ = 22, +}; + +enum rk3288_pwr_mode_con1 { + PMU_CLR_BUS = 0, + PMU_CLR_CORE = 1, + PMU_CLR_CPUP = 2, + PMU_CLR_ALIVE = 3, + PMU_CLR_DMA = 4, + PMU_CLR_PERI = 5, + PMU_CLR_GPU = 6, + PMU_CLR_VIDEO = 7, + PMU_CLR_HEVC = 8, + PMU_CLR_VIO = 9, +}; + +typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int)); + +typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *); + +typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int); + +struct cpuhp_cpu_state { + enum cpuhp_state state; + enum cpuhp_state target; + enum cpuhp_state fail; + struct task_struct *thread; + bool should_run; + bool rollback; + bool single; + bool bringup; + struct hlist_node *node; + struct hlist_node *last; + enum cpuhp_state cb_state; + int result; + atomic_t ap_sync_state; + struct completion done_up; + struct completion done_down; +}; + +struct cpuhp_step { + const char *name; + union { + int (*single)(unsigned int); + int (*multi)(unsigned int, struct hlist_node *); + } startup; + union { + int (*single)(unsigned int); + int (*multi)(unsigned int, struct hlist_node *); + } teardown; + struct hlist_head list; + bool cant_stop; + bool multi_instance; +}; + +enum cpu_mitigations { + CPU_MITIGATIONS_OFF = 0, + CPU_MITIGATIONS_AUTO = 1, + CPU_MITIGATIONS_AUTO_NOSMT = 2, +}; + +enum cpuhp_sync_state { + SYNC_STATE_DEAD = 0, + SYNC_STATE_KICKED = 1, + SYNC_STATE_SHOULD_DIE = 2, + SYNC_STATE_ALIVE = 3, + SYNC_STATE_SHOULD_ONLINE = 4, + SYNC_STATE_ONLINE = 5, +}; + +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 trace_event_raw_cpuhp_enter { + struct trace_entry ent; + unsigned int cpu; + int target; + int idx; + void *fun; + char __data[0]; +}; + +struct trace_event_raw_cpuhp_multi_enter { + struct trace_entry ent; + unsigned int cpu; + int target; + int idx; + void *fun; + char __data[0]; +}; + +struct trace_event_raw_cpuhp_exit { + struct trace_entry ent; + unsigned int cpu; + int state; + int idx; + int ret; + char __data[0]; +}; + +struct cpu_down_work { + unsigned int cpu; + enum cpuhp_state target; +}; + +struct trace_event_data_offsets_cpuhp_enter {}; + +struct trace_event_data_offsets_cpuhp_multi_enter {}; + +struct trace_event_data_offsets_cpuhp_exit {}; + +struct irq_devres { + unsigned int irq; + void *dev_id; +}; + +struct irq_desc_devres { + unsigned int from; + unsigned int cnt; +}; + +struct irq_generic_chip_devres { + struct irq_chip_generic *gc; + u32 msk; + unsigned int clr; + unsigned int set; +}; + +enum { + GP_IDLE = 0, + GP_ENTER = 1, + GP_PASSED = 2, + GP_EXIT = 3, + GP_REPLAY = 4, +}; + +struct ce_unbind { + struct clock_event_device *ce; + int res; +}; + +enum { + TRACE_NOP_OPT_ACCEPT = 1, + TRACE_NOP_OPT_REFUSE = 2, +}; + +enum bpf_audit { + BPF_AUDIT_LOAD = 0, + BPF_AUDIT_UNLOAD = 1, + BPF_AUDIT_MAX = 2, +}; + +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 bpf_perf_event_type { + BPF_PERF_EVENT_UNSPEC = 0, + BPF_PERF_EVENT_UPROBE = 1, + BPF_PERF_EVENT_URETPROBE = 2, + BPF_PERF_EVENT_KPROBE = 3, + BPF_PERF_EVENT_KRETPROBE = 4, + BPF_PERF_EVENT_TRACEPOINT = 5, + BPF_PERF_EVENT_EVENT = 6, +}; + +enum bpf_stats_type { + BPF_STATS_RUN_TIME = 0, +}; + +typedef u64 (*btf_bpf_sys_bpf)(int, union bpf_attr *, u32); + +typedef u64 (*btf_bpf_sys_close)(u32); + +typedef u64 (*btf_bpf_kallsyms_lookup_name)(const char *, int, int, u64 *); + +struct bpf_tramp_link { + struct bpf_link link; + struct hlist_node tramp_hlist; + u64 cookie; +}; + +struct bpf_tracing_link { + struct bpf_tramp_link link; + enum bpf_attach_type attach_type; + struct bpf_trampoline *trampoline; + struct bpf_prog *tgt_prog; long: 32; +}; + +struct bpf_raw_tp_link { + struct bpf_link link; + struct bpf_raw_event_map *btp; long: 32; +}; + +struct bpf_perf_link { + struct bpf_link link; + struct file *perf_file; long: 32; +}; + +struct bpf_prog_kstats { + u64 nsecs; + u64 cnt; + u64 misses; +}; + +struct bpf_attach_target_info { + struct btf_func_model fmodel; + long tgt_addr; + struct module *tgt_mod; + const char *tgt_name; + const struct btf_type *tgt_type; +}; + +struct bpf_tramp_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + struct bpf_run_ctx *saved_run_ctx; long: 32; +}; + +struct f_owner_ex { + int type; + __kernel_pid_t pid; +}; + +struct core_name { + char *corename; + int used; + int size; +}; + +struct ext4_getfsmap_info { + struct ext4_fsmap_head *gfi_head; + ext4_fsmap_format_t gfi_formatter; + void *gfi_format_arg; long: 32; + 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; long: 32; +}; + +struct ext4_getfsmap_dev { + int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); + u32 gfd_dev; +}; + +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 nfs4_filelayout { + struct pnfs_layout_hdr generic_hdr; + struct pnfs_ds_commit_info commit_info; long: 32; +}; + +enum { + NAME_LESS = 0, + NAME_MATCHES = 1, + NAME_GREATER = 2, + NOT_ON_MEDIA = 3, +}; + +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; long: 32; long: 32; long: 32; @@ -157579,11 +159575,41 @@ struct workqueue_struct { long: 32; long: 32; long: 32; - 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: 32; long: 32; + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; +}; + +struct crypto_istat_compress { + atomic64_t compress_cnt; + atomic64_t compress_tlen; + atomic64_t decompress_cnt; + atomic64_t decompress_tlen; + atomic64_t err_cnt; +}; + +struct crypto_report_acomp { + char type[64]; +}; + +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: 32; long: 32; long: 32; @@ -157596,30 +159622,8 @@ struct workqueue_struct { long: 32; long: 32; long: 32; -}; - -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 bio bio; long: 32; - u64 stats[7]; - struct work_struct unbound_release_work; - struct callback_head rcu; long: 32; long: 32; long: 32; @@ -157629,208 +159633,636 @@ struct pool_workqueue { long: 32; long: 32; long: 32; +}; + +enum blkg_iostat_type { + BLKG_IOSTAT_READ = 0, + BLKG_IOSTAT_WRITE = 1, + BLKG_IOSTAT_DISCARD = 2, + BLKG_IOSTAT_NR = 3, +}; + +enum { + IOU_PBUF_RING_MMAP = 1, +}; + +struct io_provide_buf { + struct file *file; long: 32; + __u64 addr; + __u32 len; + __u32 bgid; + __u32 nbufs; + __u16 bid; +}; + +struct io_buf_free { + struct hlist_node list; + void *mem; + size_t size; + int inuse; +}; + +struct io_uring_buf_reg { + __u64 ring_addr; + __u32 ring_entries; + __u16 bgid; + __u16 flags; + __u64 resv[3]; +}; + +struct genradix_node { + union { + struct genradix_node *children[1024]; + u8 data[4096]; + }; +}; + +struct genradix_iter { + size_t offset; + size_t pos; +}; + +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_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 gf_poly { + unsigned int deg; + unsigned int c[0]; +}; + +struct gf_poly_deg1 { + struct gf_poly poly; + unsigned int c[2]; +}; + +struct bch_control { + unsigned int m; + unsigned int n; + unsigned int t; + unsigned int ecc_bits; + unsigned int ecc_bytes; + uint16_t *a_pow_tab; + uint16_t *a_log_tab; + uint32_t *mod8_tab; + uint32_t *ecc_buf; + uint32_t *ecc_buf2; + unsigned int *xi_tab; + unsigned int *syn; + int *cache; + struct gf_poly *elp; + struct gf_poly *poly_2t[4]; + bool swap_bits; +}; + +struct sun6i_r_intc_variant { + u32 first_mux_irq; + u32 nr_mux_irqs; + u32 mux_valid[4]; +}; + +struct bcm7120_l1_intc_data; + +struct bcm7120_l2_intc_data { + unsigned int n_words; + void *map_base[8]; + void *pair_base[4]; + int en_offset[4]; + int stat_offset[4]; + struct irq_domain *domain; + bool can_wake; + u32 irq_fwd_mask[4]; + struct bcm7120_l1_intc_data *l1_data; + int num_parent_irqs; + const __be32 *map_mask_prop; +}; + +struct bcm7120_l1_intc_data { + struct bcm7120_l2_intc_data *b; + u32 irq_map_mask[4]; +}; + +struct meson_gpio_irq_controller; + +struct irq_ctl_ops { + void (*gpio_irq_sel_pin)(struct meson_gpio_irq_controller *, unsigned int, unsigned long); + void (*gpio_irq_init)(struct meson_gpio_irq_controller *); + int (*gpio_irq_set_type)(struct meson_gpio_irq_controller *, unsigned int, u32 *); +}; + +struct meson_gpio_irq_params { + unsigned int nr_hwirq; + unsigned int nr_channels; + bool support_edge_both; + unsigned int edge_both_offset; + unsigned int edge_single_offset; + unsigned int pol_low_offset; + unsigned int pin_sel_mask; + struct irq_ctl_ops ops; +}; + +struct meson_gpio_irq_controller { + const struct meson_gpio_irq_params *params; + void *base; + u32 channel_irqs[64]; + unsigned long channel_map[2]; + spinlock_t lock; +}; + +struct sun4i_usb_phy_cfg { + int num_phys; + int hsic_index; + u32 disc_thresh; + u32 hci_phy_ctl_clear; + u8 phyctl_offset; + bool dedicated_clocks; + bool phy0_dual_route; + bool needs_phy2_siddq; + bool siddq_in_base; + bool poll_vbusen; + int missing_phys; +}; + +struct sun4i_usb_phy { + struct phy *phy; + void *pmu; + struct regulator *vbus; + struct reset_control *reset; + struct clk *clk; + struct clk *clk2; + bool regulator_on; + int index; +}; + +struct sun4i_usb_phy_data { + void *base; + const struct sun4i_usb_phy_cfg *cfg; + enum usb_dr_mode dr_mode; + spinlock_t reg_lock; + struct sun4i_usb_phy phys[4]; + struct extcon_dev *extcon; + bool phy0_init; + struct gpio_desc *id_det_gpio; + struct gpio_desc *vbus_det_gpio; + struct power_supply *vbus_power_supply; + struct notifier_block vbus_power_nb; + bool vbus_power_nb_registered; + bool force_session_end; + int id_det_irq; + int vbus_det_irq; + int id_det; + int vbus_det; + struct delayed_work detect; +}; + +struct uniphier_u3ssphy_param { + struct { + int reg_no; + int msb; + int lsb; + } field; + u8 value; +}; + +struct uniphier_u3ssphy_soc_data { + bool is_legacy; + int nparams; + const struct uniphier_u3ssphy_param param[7]; +}; + +struct uniphier_u3ssphy_priv { + struct device *dev; + void *base; + struct clk *clk; + struct clk *clk_ext; + struct clk *clk_parent; + struct clk *clk_parent_gio; + struct reset_control *rst; + struct reset_control *rst_parent; + struct reset_control *rst_parent_gio; + struct regulator *vbus; + const struct uniphier_u3ssphy_soc_data *data; +}; + +struct rza2_pinctrl_priv { + struct device *dev; + void *base; + struct pinctrl_pin_desc *pins; + struct pinctrl_desc desc; + struct pinctrl_dev *pctl; + struct pinctrl_gpio_range gpio_range; + int npins; + struct mutex mutex; +}; + +enum gpio_v2_line_flag { + GPIO_V2_LINE_FLAG_USED = 1, + GPIO_V2_LINE_FLAG_ACTIVE_LOW = 2, + GPIO_V2_LINE_FLAG_INPUT = 4, + GPIO_V2_LINE_FLAG_OUTPUT = 8, + GPIO_V2_LINE_FLAG_EDGE_RISING = 16, + GPIO_V2_LINE_FLAG_EDGE_FALLING = 32, + GPIO_V2_LINE_FLAG_OPEN_DRAIN = 64, + GPIO_V2_LINE_FLAG_OPEN_SOURCE = 128, + GPIO_V2_LINE_FLAG_BIAS_PULL_UP = 256, + GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN = 512, + GPIO_V2_LINE_FLAG_BIAS_DISABLED = 1024, + GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME = 2048, + GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE = 4096, +}; + +enum gpio_v2_line_changed_type { + GPIO_V2_LINE_CHANGED_REQUESTED = 1, + GPIO_V2_LINE_CHANGED_RELEASED = 2, + GPIO_V2_LINE_CHANGED_CONFIG = 3, +}; + +enum gpio_v2_line_attr_id { + GPIO_V2_LINE_ATTR_ID_FLAGS = 1, + GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 2, + GPIO_V2_LINE_ATTR_ID_DEBOUNCE = 3, +}; + +enum gpio_v2_line_event_id { + GPIO_V2_LINE_EVENT_RISING_EDGE = 1, + GPIO_V2_LINE_EVENT_FALLING_EDGE = 2, +}; + +struct gpioevent_data { + __u64 timestamp; + __u32 id; long: 32; +}; + +struct lineevent_state { + struct gpio_device *gdev; + const char *label; + struct gpio_desc *desc; + u32 eflags; + int irq; + wait_queue_head_t wait; + struct notifier_block device_unregistered_nb; long: 32; + struct { + union { + struct __kfifo kfifo; + struct gpioevent_data *type; + const struct gpioevent_data *const_type; + char (*rectype)[0]; + struct gpioevent_data *ptr; + const struct gpioevent_data *ptr_const; + }; + long: 32; + struct gpioevent_data buf[16]; + } events; + u64 timestamp; +}; + +struct linereq; + +struct line { + struct gpio_desc *desc; + struct linereq *req; + unsigned int irq; long: 32; + u64 edflags; + u64 timestamp_ns; + u32 req_seqno; + u32 line_seqno; + struct delayed_work work; + unsigned int sw_debounced; + unsigned int level; long: 32; }; -struct worker_pool { - raw_spinlock_t lock; - int cpu; - int node; - int id; - unsigned int flags; - unsigned long watchdog_ts; - bool cpu_stall; - int nr_running; - struct list_head worklist; - int nr_workers; - int nr_idle; - struct list_head idle_list; - struct timer_list idle_timer; - struct work_struct idle_cull_work; - struct timer_list mayday_timer; - struct hlist_head busy_hash[64]; - struct worker *manager; - struct list_head workers; - struct list_head dying_workers; - struct completion *detach_completion; - struct ida worker_ida; - struct workqueue_attrs *attrs; - struct hlist_node hash_node; - int refcnt; - struct callback_head rcu; +struct gpio_v2_line_event { + __u64 timestamp_ns; + __u32 id; + __u32 offset; + __u32 seqno; + __u32 line_seqno; + __u32 padding[6]; +}; + +struct linereq { + struct gpio_device *gdev; + const char *label; + u32 num_lines; + wait_queue_head_t wait; + struct notifier_block device_unregistered_nb; + u32 event_buffer_size; + struct { + union { + struct __kfifo kfifo; + struct gpio_v2_line_event *type; + const struct gpio_v2_line_event *const_type; + char (*rectype)[0]; + struct gpio_v2_line_event *ptr; + const struct gpio_v2_line_event *ptr_const; + }; + long: 32; + struct gpio_v2_line_event buf[0]; + } events; + atomic_t seqno; + struct mutex config_mutex; + struct line lines[0]; +}; + +struct gpio_v2_line_attribute { + __u32 id; + __u32 padding; + union { + __u64 flags; + __u64 values; + __u32 debounce_period_us; + }; +}; + +struct gpio_v2_line_info { + char name[32]; + char consumer[32]; + __u32 offset; + __u32 num_attrs; + __u64 flags; + struct gpio_v2_line_attribute attrs[10]; + __u32 padding[4]; +}; + +struct gpio_v2_line_info_changed { + struct gpio_v2_line_info info; + __u64 timestamp_ns; + __u32 event_type; + __u32 padding[5]; +}; + +struct gpio_chardev_data { + struct gpio_device *gdev; + wait_queue_head_t wait; + struct { + union { + struct __kfifo kfifo; + struct gpio_v2_line_info_changed *type; + const struct gpio_v2_line_info_changed *const_type; + char (*rectype)[0]; + struct gpio_v2_line_info_changed *ptr; + const struct gpio_v2_line_info_changed *ptr_const; + }; + long: 32; + struct gpio_v2_line_info_changed buf[32]; + } events; + struct notifier_block lineinfo_changed_nb; + struct notifier_block device_unregistered_nb; + unsigned long *watched_lines; + atomic_t watch_abi_version; }; -struct workqueue_attrs { - int nice; - cpumask_var_t cpumask; - bool no_numa; +typedef ssize_t (*read_fn)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + +struct gpioline_info { + __u32 line_offset; + __u32 flags; + char name[32]; + char consumer[32]; }; -struct wq_device { - struct workqueue_struct *wq; - long: 32; - struct device dev; +struct gpioline_info_changed { + struct gpioline_info info; + __u64 timestamp; + __u32 event_type; + __u32 padding[5]; }; -typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *); +typedef __poll_t (*poll_fn)(struct file *, struct poll_table_struct *); -typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *); +typedef long (*ioctl_fn___2)(struct file *, unsigned int, unsigned long); -typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *); +struct gpio_v2_line_config_attribute { + struct gpio_v2_line_attribute attr; + __u64 mask; +}; -typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t); +struct gpio_v2_line_config { + __u64 flags; + __u32 num_attrs; + __u32 padding[5]; + struct gpio_v2_line_config_attribute attrs[10]; +}; -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 = 30000, - MAYDAY_INITIAL_TIMEOUT = 2, - MAYDAY_INTERVAL = 10, - CREATE_COOLDOWN = 100, - RESCUER_NICE_LEVEL = -20, - HIGHPRI_NICE_LEVEL = -20, - WQ_NAME_LEN = 24, +struct gpio_v2_line_request { + __u32 offsets[64]; + char consumer[32]; + struct gpio_v2_line_config config; + __u32 num_lines; + __u32 event_buffer_size; + __u32 padding[5]; + __s32 fd; }; -enum pool_workqueue_stats { - PWQ_STAT_STARTED = 0, - PWQ_STAT_COMPLETED = 1, - PWQ_STAT_CPU_TIME = 2, - PWQ_STAT_CPU_INTENSIVE = 3, - PWQ_STAT_CM_WAKEUP = 4, - PWQ_STAT_MAYDAY = 5, - PWQ_STAT_RESCUED = 6, - PWQ_NR_STATS = 7, +struct gpiohandle_request { + __u32 lineoffsets[64]; + __u32 flags; + __u8 default_values[64]; + char consumer_label[32]; + __u32 lines; + int fd; }; -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 linehandle_state { + struct gpio_device *gdev; + const char *label; + struct gpio_desc *descs[64]; + u32 num_descs; }; -struct trace_event_raw_workqueue_activate_work { - struct trace_entry ent; - void *work; - char __data[0]; +struct gpiochip_info { + char name[32]; + char label[32]; + __u32 lines; }; -struct trace_event_raw_workqueue_execute_start { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; +struct gpioevent_request { + __u32 lineoffset; + __u32 handleflags; + __u32 eventflags; + char consumer_label[32]; + int fd; }; -struct trace_event_raw_workqueue_execute_end { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; +struct gpiohandle_data { + __u8 values[64]; }; -struct wq_barrier { - struct work_struct work; - struct completion done; - struct task_struct *task; +struct gpiohandle_config { + __u32 flags; + __u8 default_values[64]; + __u32 padding[4]; }; -struct cwt_wait { - wait_queue_entry_t wait; - struct work_struct *work; +struct gpio_v2_line_values { + __u64 bits; + __u64 mask; }; -struct work_for_cpu { - struct work_struct work; - long (*fn)(void *); - void *arg; - long ret; +struct pci_dynid { + struct list_head node; + struct pci_device_id id; }; -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 drv_dev_and_id { + struct pci_driver *drv; + struct pci_dev *dev; + const struct pci_device_id *id; }; -struct trace_event_data_offsets_workqueue_queue_work { - u32 workqueue; +enum { + FBCON_LOGO_CANSHOW = -1, + FBCON_LOGO_DRAW = -2, + FBCON_LOGO_DONTSHOW = -3, }; -struct pr_cont_work_struct { - bool comma; - work_func_t func; - long ctr; +struct fb_con2fbmap { + __u32 console; + __u32 framebuffer; }; -struct trace_event_data_offsets_workqueue_activate_work {}; +struct clk_lookup_alloc { + struct clk_lookup cl; + char dev_id[20]; + char con_id[16]; +}; -struct trace_event_data_offsets_workqueue_execute_start {}; +struct aspeed_clk_soc_data { + const struct clk_div_table *div_table; + const struct clk_div_table *eclk_div_table; + const struct clk_div_table *mac_div_table; + struct clk_hw * (*calc_pll)(const char *, u32); +}; -struct trace_event_data_offsets_workqueue_execute_end {}; +struct owl_divider { + struct owl_divider_hw div_hw; + struct owl_clk_common common; +}; -typedef void (*btf_trace_timer_init)(void *, struct timer_list *); +struct owl_factor { + struct owl_factor_hw factor_hw; + struct owl_clk_common common; +}; -typedef void (*btf_trace_timer_start)(void *, struct timer_list *, unsigned long, unsigned int); +enum { + TI_CLK_FIXED = 0, + TI_CLK_MUX = 1, + TI_CLK_DIVIDER = 2, + TI_CLK_COMPOSITE = 3, + TI_CLK_FIXED_FACTOR = 4, + TI_CLK_GATE = 5, + TI_CLK_DPLL = 6, +}; -typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, unsigned long); +struct omap_clkctrl_clk { + struct clk_hw *clk; + u16 reg_offset; + int bit_offset; + struct list_head node; +}; -typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *); +union omap4_timeout { + u32 cycles; + ktime_t start; +}; -typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *); +struct omap_clkctrl_provider { + void *base; + struct list_head clocks; + char *clkdm_name; +}; -typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode); +enum stm32_mdma_inc_mode { + STM32_MDMA_FIXED = 0, + STM32_MDMA_INC = 2, + STM32_MDMA_DEC = 3, +}; -typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode); +enum stm32_mdma_trigger_mode { + STM32_MDMA_BUFFER = 0, + STM32_MDMA_BLOCK = 1, + STM32_MDMA_BLOCK_REP = 2, + STM32_MDMA_LINKED_LIST = 3, +}; -typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *); +struct stm32_mdma_chan_config { + u32 request; + u32 priority_level; + u32 transfer_config; + u32 mask_addr; + u32 mask_data; + bool m2m_hw; +}; -typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *); +struct stm32_mdma_desc; -typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *); +struct stm32_mdma_chan { + struct virt_dma_chan vchan; + struct dma_pool *desc_pool; + u32 id; + struct stm32_mdma_desc *desc; + u32 curr_hwdesc; + struct dma_slave_config dma_config; + struct stm32_mdma_chan_config chan_config; + bool busy; + u32 mem_burst; + u32 mem_width; +}; -typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, unsigned long long); +struct stm32_mdma_hwdesc; -typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, unsigned long long); +struct stm32_mdma_desc_node { + struct stm32_mdma_hwdesc *hwdesc; + dma_addr_t hwdesc_phys; +}; -typedef void (*btf_trace_tick_stop)(void *, int, int); +struct stm32_mdma_desc { + struct virt_dma_desc vdesc; + u32 ccr; + bool cyclic; + u32 count; + struct stm32_mdma_desc_node node[0]; +}; -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[16]; - struct hlist_head vectors[512]; - long: 32; - long: 32; - long: 32; - long: 32; +struct stm32_mdma_hwdesc { + u32 ctcr; + u32 cbndtr; + u32 csar; + u32 cdar; + u32 cbrur; + u32 clar; + u32 ctbr; + u32 dummy; + u32 cmar; + u32 cmdr; long: 32; long: 32; long: 32; @@ -157839,1400 +160271,1312 @@ struct timer_base { long: 32; }; -struct trace_event_raw_timer_class { - struct trace_entry ent; - void *timer; - char __data[0]; +struct stm32_mdma_device { + struct dma_device ddev; + void *base; + struct clk *clk; + int irq; + u32 nr_channels; + u32 nr_requests; + u32 nr_ahb_addr_masks; + u32 chan_reserved; + struct stm32_mdma_chan chan[32]; + u32 ahb_addr_masks[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 stm32_mdma_dma_config { + u32 request; + u32 cmar; + u32 cmdr; }; -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 crci_config { + u32 num_rows; + const u32 (*array)[12]; }; -struct trace_event_raw_hrtimer_init { - struct trace_entry ent; - void *hrtimer; - clockid_t clockid; - enum hrtimer_mode mode; - char __data[0]; +struct gsbi_info { + struct clk *hclk; + u32 mode; + u32 crci; + struct regmap *tcsr; }; -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]; - long: 32; +struct exynos_pmu_context { + struct device *dev; + const struct exynos_pmu_data *pmu_data; }; -struct trace_event_raw_hrtimer_expire_entry { - struct trace_entry ent; - void *hrtimer; - long: 32; - s64 now; - void *function; - char __data[0]; +struct rpi_power_domain { + u32 domain; + bool enabled; + bool old_interface; + struct generic_pm_domain base; + struct rpi_firmware *fw; long: 32; }; -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; +struct rpi_power_domains { + bool has_new_interface; + struct genpd_onecell_data xlate; + struct rpi_firmware *fw; long: 32; - 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 rpi_power_domain domains[23]; }; -struct process_timer { - struct timer_list timer; - struct task_struct *task; +struct rpi_power_domain_packet { + u32 domain; + u32 on; }; -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 user_event_group { - char *system_name; - struct hlist_node node; - struct mutex reg_mutex; - struct hlist_head register_table[256]; +struct regulator_bulk_devres { + struct regulator_bulk_data *consumers; + int num_consumers; }; -enum user_reg_flag { - USER_EVENT_REG_PERSIST = 1, - USER_EVENT_REG_MAX = 2, +struct regulator_supply_alias_match { + struct device *dev; + const char *id; }; -struct user_event; - -struct user_event_enabler { - struct list_head mm_enablers_link; - struct user_event *event; - unsigned long addr; - unsigned long values; +struct regulator_notifier_match { + struct regulator *regulator; + struct notifier_block *nb; }; -struct user_event { - struct user_event_group *group; - struct tracepoint tracepoint; - struct trace_event_call call; - struct trace_event_class class; - struct dyn_event devent; - struct hlist_node node; - struct list_head fields; - struct list_head validators; - struct work_struct put_work; - refcount_t refcnt; - int min_size; - int reg_flags; - char status; -}; +struct gpio_regulator_state; -struct user_event_validator { - struct list_head user_event_link; - int offset; - int flags; +struct gpio_regulator_config { + const char *supply_name; + const char *input_supply; + unsigned int enabled_at_boot: 1; + unsigned int startup_delay; + enum gpiod_flags *gflags; + int ngpios; + struct gpio_regulator_state *states; + int nr_states; + enum regulator_type type; + struct regulator_init_data *init_data; }; -struct user_event_refs { - struct callback_head rcu; - int count; - struct user_event *events[0]; +struct gpio_regulator_state { + int value; + int gpios; }; -struct user_reg { - __u32 size; - __u8 enable_bit; - __u8 enable_size; - __u16 flags; - __u64 enable_addr; - __u64 name_args; - __u32 write_index; +struct gpio_regulator_data { + struct regulator_desc desc; + struct gpio_desc **gpiods; + int nr_gpios; + struct gpio_regulator_state *states; + int nr_states; + int state; }; -struct user_event_enabler_fault { - struct work_struct work; - struct user_event_mm *mm; - struct user_event_enabler *enabler; - int attempt; +struct ti_abb_reg { + u32 setup_off; + u32 control_off; + u32 sr2_wtcnt_value_mask; + u32 fbb_sel_mask; + u32 rbb_sel_mask; + u32 sr2_en_mask; + u32 opp_change_mask; + u32 opp_sel_mask; }; -struct user_unreg { - __u32 size; - __u8 disable_bit; - __u8 __reserved; - __u16 __reserved2; - __u64 disable_addr; -}; +struct ti_abb_info; -struct user_event_file_info { - struct user_event_group *group; - struct user_event_refs *refs; +struct ti_abb { + struct regulator_desc rdesc; + struct clk *clk; + void *base; + void *setup_reg; + void *control_reg; + void *int_base; + void *efuse_base; + void *ldo_base; + const struct ti_abb_reg *regs; + u32 txdone_mask; + u32 ldovbb_override_mask; + u32 ldovbb_vset_mask; + struct ti_abb_info *info; + int current_info_idx; + u32 settling_time; }; -typedef void (*user_event_func_t)(struct user_event *, struct iov_iter *, void *, bool *); - -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, +struct ti_abb_info { + u32 opp_sel; + u32 vset; }; -enum bpf_stack_build_id_status { - BPF_STACK_BUILD_ID_EMPTY = 0, - BPF_STACK_BUILD_ID_VALID = 1, - BPF_STACK_BUILD_ID_IP = 2, +struct ldsem_waiter { + struct list_head list; + struct task_struct *task; }; -typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64); - -typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); - -typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64); - -typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64); - -typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64); - -struct stack_map_bucket; +struct exar8250; -struct bpf_stack_map { - struct bpf_map map; - void *elems; - struct pcpu_freelist freelist; - u32 n_buckets; - struct stack_map_bucket *buckets[0]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +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 stack_map_bucket { - struct pcpu_freelist_node fnode; - u32 hash; - u32 nr; - long: 32; - u64 data[0]; +struct exar8250 { + unsigned int nr; + struct exar8250_board *board; + void *virt; + int line[0]; }; -struct bpf_stack_build_id { - __s32 status; - unsigned char build_id[20]; - union { - __u64 offset; - __u64 ip; - }; +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 swap_extent { - struct rb_node rb_node; - unsigned long start_page; - unsigned long nr_pages; - long: 32; - sector_t start_block; +struct stm32_usart_offsets { + u8 cr1; + u8 cr2; + u8 cr3; + u8 brr; + u8 gtpr; + u8 rtor; + u8 rqr; + u8 isr; + u8 icr; + u8 rdr; + u8 tdr; }; -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 stm32_usart_config { + u8 uart_enable_bit; + bool has_7bits_data; + bool has_swap; + bool has_wakeup; + bool has_fifo; + int fifosize; }; -struct iomap_swapfile_info { - struct iomap iomap; - struct swap_info_struct *sis; - long: 32; - uint64_t lowest_ppage; - uint64_t highest_ppage; - unsigned long nr_pages; - int nr_extents; - struct file *file; - long: 32; +struct stm32_usart_info { + struct stm32_usart_offsets ofs; + struct stm32_usart_config cfg; }; -enum Opt_errors { - Opt_errors_continue = 0, - Opt_errors_panic = 1, +struct stm32_port { + struct uart_port port; + struct clk *clk; + const struct stm32_usart_info *info; + struct dma_chan *rx_ch; + dma_addr_t rx_dma_buf; + unsigned char *rx_buf; + struct dma_chan *tx_ch; + dma_addr_t tx_dma_buf; + unsigned char *tx_buf; + u32 cr1_irq; + u32 cr3_irq; + int last_res; + bool tx_dma_busy; + bool rx_dma_busy; + bool throttled; + bool hw_flow_control; + bool swap; + bool fifoen; + int rxftcfg; + int txftcfg; + bool wakeup_src; + int rdr_mask; + struct mctrl_gpios *gpios; + struct dma_tx_state rx_dma_state; }; -enum squashfs_param { - Opt_errors___2 = 0, - Opt_threads = 1, -}; +struct trng_regs; -struct squashfs_mount_opts { - enum Opt_errors errors; - const struct squashfs_decompressor_thread_ops *thread_ops; - int thread_num; +struct ks_sa_rng { + struct hwrng rng; + struct clk *clk; + struct regmap *regmap_cfg; + struct trng_regs *reg_rng; + u64 ready_ts; + unsigned int refill_delay_ns; + long: 32; }; -struct squashfs_xattr_id_table { - __le64 xattr_table_start; - __le32 xattr_ids; - __le32 unused; +struct trng_regs { + u32 output_l; + u32 output_h; + u32 status; + u32 intmask; + u32 intack; + u32 control; + u32 config; }; -enum nfs4_ff_op_type { - NFS4_FF_OP_LAYOUTSTATS = 0, - NFS4_FF_OP_LAYOUTRETURN = 1, -}; +struct tegra_mipi_pad; -enum pnfs_layouttype { - LAYOUT_NFSV4_1_FILES = 1, - LAYOUT_OSD2_OBJECTS = 2, - LAYOUT_BLOCK_VOLUME = 3, - LAYOUT_FLEX_FILES = 4, - LAYOUT_SCSI = 5, - LAYOUT_TYPE_MAX = 6, +struct tegra_mipi_soc { + bool has_clk_lane; + const struct tegra_mipi_pad *pads; + unsigned int num_pads; + bool clock_enable_override; + bool needs_vclamp_ref; + u8 pad_drive_down_ref; + u8 pad_drive_up_ref; + u8 pad_vclamp_level; + u8 pad_vauxp_level; + u8 hspdos; + u8 hspuos; + u8 termos; + u8 hsclkpdos; + u8 hsclkpuos; }; -struct nfs4_flexfile_layoutreturn_args { - struct list_head errors; - struct nfs42_layoutstat_devinfo devinfo[4]; - unsigned int num_errors; - unsigned int num_dev; - struct page *pages[1]; - long: 32; +struct tegra_mipi_pad { + unsigned long data; + unsigned long clk; }; -struct check_orphan { - struct rb_node rb; - ino_t inum; +struct tegra_mipi { + const struct tegra_mipi_soc *soc; + struct device *dev; + void *regs; + struct mutex lock; + struct clk *clk; + unsigned long usage_count; }; -struct check_info { - unsigned long last_ino; - unsigned long tot_inos; - unsigned long missing; - long: 32; - unsigned long long leaf_cnt; - struct ubifs_ino_node *node; - struct rb_root root; +struct tegra_mipi_device { + struct platform_device *pdev; + struct tegra_mipi *mipi; + struct device *device; + unsigned long pads; }; -struct keyring_read_iterator_context { - size_t buflen; - size_t count; - key_serial_t *buffer; +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 genradix_node { - union { - struct genradix_node *children[1024]; - u8 data[4096]; - }; +struct drm_wait_vblank_request { + enum drm_vblank_seq_type type; + unsigned int sequence; + unsigned long signal; }; -struct genradix_iter { - size_t offset; - size_t pos; +struct drm_wait_vblank_reply { + enum drm_vblank_seq_type type; + unsigned int sequence; + long tval_sec; + long tval_usec; }; -struct reciprocal_value_adv { - u32 m; - u8 sh; - u8 exp; - bool is_wide_m; +union drm_wait_vblank { + struct drm_wait_vblank_request request; + struct drm_wait_vblank_reply reply; }; -typedef struct { - U32 litLength; - U32 matchLength; -} ZSTD_sequenceLength; - -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; -}; +typedef bool (*drm_vblank_get_scanout_position_func)(struct drm_crtc *, bool, int *, int *, ktime_t *, ktime_t *, const struct drm_display_mode *); -struct aspeed_vic { - void *base; - u32 edge_sources[2]; - struct irq_domain *dom; +struct drm_modeset_ctl { + __u32 crtc; + __u32 cmd; }; -struct phy_meson_gxl_usb2_priv { - struct regmap *regmap; - enum phy_mode mode; - int is_enabled; - struct clk *clk; - struct reset_control *reset; +struct drm_crtc_get_sequence { + __u32 crtc_id; + __u32 active; + __u64 sequence; + __s64 sequence_ns; }; -enum omap_control_phy_type { - OMAP_CTRL_TYPE_OTGHS = 1, - OMAP_CTRL_TYPE_USB2 = 2, - OMAP_CTRL_TYPE_PIPE3 = 3, - OMAP_CTRL_TYPE_PCIE = 4, - OMAP_CTRL_TYPE_DRA7USB2 = 5, - OMAP_CTRL_TYPE_AM437USB2 = 6, +struct drm_crtc_queue_sequence { + __u32 crtc_id; + __u32 flags; + __u64 sequence; + __u64 user_data; }; -enum omap_control_usb_mode { - USB_MODE_UNDEFINED = 0, - USB_MODE_HOST = 1, - USB_MODE_DEVICE = 2, - USB_MODE_DISCONNECT = 3, +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]; }; -struct omap_control_phy { - struct device *dev; - u32 *otghs_control; - u32 *power; - u32 *power_aux; - u32 *pcie_pcs; - struct clk *sys_clk; - enum omap_control_phy_type type; +struct rc_parameters_data { + u8 bpp; + u8 bpc; + struct rc_parameters params; }; -enum st_retime_style { - st_retime_style_none = 0, - st_retime_style_packed = 1, - st_retime_style_dedicated = 2, +enum drm_dsc_params_type { + DRM_DSC_1_2_444 = 0, + DRM_DSC_1_1_PRE_SCR = 1, + DRM_DSC_1_2_422 = 2, + DRM_DSC_1_2_420 = 3, }; -struct st_pctl_data { - const enum st_retime_style rt_style; - const unsigned int *input_delays; - const int ninput_delays; - const unsigned int *output_delays; - const int noutput_delays; - const int alt; - const int oe; - const int pu; - const int od; - const int rt; -}; +struct panel_delay; -struct st_retime_packed { - struct regmap_field *clk1notclk0; - struct regmap_field *delay_0; - struct regmap_field *delay_1; - struct regmap_field *invertclk; - struct regmap_field *retime; - struct regmap_field *clknotdata; - struct regmap_field *double_edge; +struct edp_panel_entry { + u32 panel_id; + const struct panel_delay *delay; + const char *name; }; -struct st_retime_dedicated { - struct regmap_field *rt[8]; +struct panel_delay { + unsigned int hpd_reliable; + unsigned int hpd_absent; + unsigned int prepare_to_enable; + unsigned int enable; + unsigned int disable; + unsigned int unprepare; }; -struct st_pio_control { - u32 rt_pin_mask; - struct regmap_field *alt; - struct regmap_field *oe; - struct regmap_field *pu; - struct regmap_field *od; - union { - struct st_retime_packed rt_p; - struct st_retime_dedicated rt_d; - } rt; +struct panel_desc___2 { + const struct drm_display_mode *modes; + unsigned int num_modes; + const struct display_timing *timings; + unsigned int num_timings; + unsigned int bpc; + struct { + unsigned int width; + unsigned int height; + } size; + struct panel_delay delay; }; -struct st_gpio_bank { - struct gpio_chip gpio_chip; - struct pinctrl_gpio_range range; - void *base; - struct st_pio_control pc; - unsigned long irq_edge_conf; - spinlock_t lock; +struct panel_edp { + struct drm_panel base; + bool enabled; + bool no_hpd; + bool prepared; + long: 32; + ktime_t prepared_time; + ktime_t unprepared_time; + const struct panel_desc___2 *desc; + struct regulator *supply; + struct i2c_adapter *ddc; + struct drm_dp_aux *aux; + struct gpio_desc *enable_gpio; + struct gpio_desc *hpd_gpio; + const struct edp_panel_entry *detected_panel; + struct edid *edid; + struct drm_display_mode override_mode; + enum drm_panel_orientation orientation; + long: 32; }; -struct st_pmx_func; +typedef void (*btf_trace_regmap_reg_write)(void *, struct regmap *, unsigned int, unsigned int); -struct st_pctl_group; +typedef void (*btf_trace_regmap_reg_read)(void *, struct regmap *, unsigned int, unsigned int); -struct st_pinctrl { - struct device *dev; - struct pinctrl_dev *pctl; - struct st_gpio_bank *banks; - int nbanks; - struct st_pmx_func *functions; - int nfunctions; - struct st_pctl_group *groups; - int ngroups; - struct regmap *regmap; - const struct st_pctl_data *data; - void *irqmux_base; -}; +typedef void (*btf_trace_regmap_reg_read_cache)(void *, struct regmap *, unsigned int, unsigned int); -struct st_pmx_func { - const char *name; - const char **groups; - unsigned int ngroups; -}; +typedef void (*btf_trace_regmap_bulk_write)(void *, struct regmap *, unsigned int, const void *, int); -struct st_pinconf; +typedef void (*btf_trace_regmap_bulk_read)(void *, struct regmap *, unsigned int, const void *, int); -struct st_pctl_group { - const char *name; - unsigned int *pins; - unsigned int npins; - struct st_pinconf *pin_conf; -}; +typedef void (*btf_trace_regmap_hw_read_start)(void *, struct regmap *, unsigned int, int); -struct st_pinconf { - int pin; - const char *name; - unsigned long config; - int altfunc; -}; +typedef void (*btf_trace_regmap_hw_read_done)(void *, struct regmap *, unsigned int, int); -enum { - LOCK_LEVEL1 = 1, - LOCK_LEVEL2 = 2, - LOCK_ALL = 3, -}; +typedef void (*btf_trace_regmap_hw_write_start)(void *, struct regmap *, unsigned int, int); -struct rzn1_pinctrl_regs; +typedef void (*btf_trace_regmap_hw_write_done)(void *, struct regmap *, unsigned int, int); -struct rzn1_pin_group; +typedef void (*btf_trace_regcache_sync)(void *, struct regmap *, const char *, const char *); -struct rzn1_pmx_func; +typedef void (*btf_trace_regmap_cache_only)(void *, struct regmap *, bool); -struct rzn1_pinctrl { - struct device *dev; - struct clk *clk; - struct pinctrl_dev *pctl; - struct rzn1_pinctrl_regs *lev1; - struct rzn1_pinctrl_regs *lev2; - u32 lev1_protect_phys; - u32 lev2_protect_phys; - int mdio_func[2]; - struct rzn1_pin_group *groups; - unsigned int ngroups; - struct rzn1_pmx_func *functions; - unsigned int nfunctions; -}; +typedef void (*btf_trace_regmap_cache_bypass)(void *, struct regmap *, bool); -struct rzn1_pinctrl_regs { - u32 conf[170]; - u32 pad0[86]; - u32 status_protect; - u32 l2_mdio[2]; +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 rzn1_pin_group { - const char *name; - const char *func; - unsigned int npins; - unsigned int *pins; - u8 *pin_ids; +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 rzn1_pmx_func { - const char *name; - const char **groups; - unsigned int num_groups; +struct trace_event_raw_regmap_block { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int reg; + int count; + char __data[0]; }; -struct iproc_gpio_chip { - struct gpio_chip gc; - spinlock_t lock; - struct device *dev; - void *base; - void *intr; +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 max77686_hw_clk_info { - const char *name; - u32 clk_reg; - u32 clk_enable_mask; - u32 flags; +struct trace_event_raw_regmap_bool { + struct trace_entry ent; + u32 __data_loc_name; + int flag; + char __data[0]; }; -enum max77686_chip_name { - CHIP_MAX77686 = 0, - CHIP_MAX77802 = 1, - CHIP_MAX77620 = 2, +struct trace_event_raw_regmap_async { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; }; -struct max77686_clk_init_data { - struct regmap *regmap; - struct clk_hw hw; - struct clk_init_data clk_idata; - const struct max77686_hw_clk_info *clk_info; +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 max77686_clk_driver_data { - enum max77686_chip_name chip; - struct max77686_clk_init_data *max_clk_data; - size_t num_clks; +struct trace_event_data_offsets_regmap_reg { + u32 name; }; -struct pll_mult_range; +struct trace_event_data_offsets_regmap_bulk { + u32 name; + u32 buf; +}; -struct meson_clk_pll_data { - struct parm en; - struct parm m; - struct parm n; - struct parm frac; - struct parm l; - struct parm rst; - struct parm current_en; - struct parm l_detect; - const struct reg_sequence *init_regs; - unsigned int init_count; - const struct pll_params_table *table; - const struct pll_mult_range *range; - u8 flags; +struct trace_event_data_offsets_regmap_block { + u32 name; }; -struct pll_mult_range { - unsigned int min; - unsigned int max; +struct trace_event_data_offsets_regcache_sync { + u32 name; + u32 status; + u32 type; }; -enum { - A375_CPU_TO_DDR = 0, - A375_CPU_TO_L2 = 1, +struct trace_event_data_offsets_regmap_bool { + u32 name; }; -struct clk_regmap_mux { - u32 reg; - u32 shift; - u32 width; - const struct parent_map *parent_map; - struct clk_regmap clkr; +struct trace_event_data_offsets_regmap_async { + u32 name; }; -struct clk_pix_rdi { - u32 s_reg; - u32 s_mask; - u32 s2_reg; - u32 s2_mask; - struct clk_regmap clkr; +struct trace_event_data_offsets_regcache_drop_region { + u32 name; }; -enum { - OMAP3_SOC_AM35XX = 0, - OMAP3_SOC_OMAP3430_ES1 = 1, - OMAP3_SOC_OMAP3430_ES2_PLUS = 2, - OMAP3_SOC_OMAP3630 = 3, +struct regmap_field { + struct regmap *regmap; + unsigned int mask; + unsigned int shift; + unsigned int reg; + unsigned int id_size; + unsigned int id_offset; }; -struct vexpress_osc { - struct regmap *reg; - struct clk_hw hw; - unsigned long rate_min; - unsigned long rate_max; +struct cpcap_ddata___2 { + struct spi_device *spi; + struct regmap_irq *irqs; + struct regmap_irq_chip_data *irqdata[3]; + const struct regmap_config *regmap_conf; + struct regmap *regmap; }; -struct stm32_dmamux_data { - struct dma_router dmarouter; +struct atmel_flexcom { + void *base; + u32 opmode; struct clk *clk; - void *iomem; - u32 dma_requests; - u32 dmamux_requests; - spinlock_t lock; - unsigned long dma_inuse[1]; - u32 ccr[32]; - u32 dma_reqs[0]; }; -struct stm32_dmamux { - u32 master; - u32 request; - u32 chan_id; +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, }; -struct meson_msr; - -struct meson_msr_id { - struct meson_msr *priv; - unsigned int id; - const char *name; +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 meson_msr { - struct regmap *regmap; - struct meson_msr_id msr_table[128]; +enum mcp251x_model { + CAN_MCP251X_MCP2510 = 9488, + CAN_MCP251X_MCP2515 = 9493, + CAN_MCP251X_MCP25625 = 153125, }; enum { - REGULATOR_ERROR_CLEARED = 0, - REGULATOR_FAILED_RETRY = 1, - REGULATOR_ERROR_ON = 2, + MCP251X_GPIO_TX0RTS = 0, + MCP251X_GPIO_TX1RTS = 1, + MCP251X_GPIO_TX2RTS = 2, + MCP251X_GPIO_RX0BF = 3, + MCP251X_GPIO_RX1BF = 4, }; -struct regulator_irq { - struct regulator_irq_data rdata; - struct regulator_irq_desc desc; - int irq; - int retry_cnt; - struct delayed_work isr_work; +struct mcp251x_priv { + struct can_priv can; + struct net_device *net; + struct spi_device *spi; + enum mcp251x_model model; + struct mutex mcp_lock; + u8 *spi_tx_buf; + u8 *spi_rx_buf; + struct sk_buff *tx_skb; + struct workqueue_struct *wq; + struct work_struct tx_work; + struct work_struct restart_work; + int force_quit; + int after_suspend; + int restart_tx; + bool tx_busy; + struct regulator *power; + struct regulator *transceiver; + struct clk *clk; + struct gpio_chip gpio; + u8 reg_bfpctrl; }; -struct sec_voltage_desc { - int max; - int min; - int step; +struct ks8851_net_spi { + struct ks8851_net ks8851; + struct mutex lock; + struct work_struct tx_work; + struct spi_device *spidev; + struct spi_message spi_msg1; + struct spi_message spi_msg2; + struct spi_transfer spi_xfer1; + struct spi_transfer spi_xfer2[2]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum s5m8767_reg { - S5M8767_REG_ID = 0, - S5M8767_REG_INT1 = 1, - S5M8767_REG_INT2 = 2, - S5M8767_REG_INT3 = 3, - S5M8767_REG_INT1M = 4, - S5M8767_REG_INT2M = 5, - S5M8767_REG_INT3M = 6, - S5M8767_REG_STATUS1 = 7, - S5M8767_REG_STATUS2 = 8, - S5M8767_REG_STATUS3 = 9, - S5M8767_REG_CTRL1 = 10, - S5M8767_REG_CTRL2 = 11, - S5M8767_REG_LOWBAT1 = 12, - S5M8767_REG_LOWBAT2 = 13, - S5M8767_REG_BUCHG = 14, - S5M8767_REG_DVSRAMP = 15, - S5M8767_REG_DVSTIMER2 = 16, - S5M8767_REG_DVSTIMER3 = 17, - S5M8767_REG_DVSTIMER4 = 18, - S5M8767_REG_LDO1 = 19, - S5M8767_REG_LDO2 = 20, - S5M8767_REG_LDO3 = 21, - S5M8767_REG_LDO4 = 22, - S5M8767_REG_LDO5 = 23, - S5M8767_REG_LDO6 = 24, - S5M8767_REG_LDO7 = 25, - S5M8767_REG_LDO8 = 26, - S5M8767_REG_LDO9 = 27, - S5M8767_REG_LDO10 = 28, - S5M8767_REG_LDO11 = 29, - S5M8767_REG_LDO12 = 30, - S5M8767_REG_LDO13 = 31, - S5M8767_REG_LDO14 = 32, - S5M8767_REG_LDO15 = 33, - S5M8767_REG_LDO16 = 34, - S5M8767_REG_LDO17 = 35, - S5M8767_REG_LDO18 = 36, - S5M8767_REG_LDO19 = 37, - S5M8767_REG_LDO20 = 38, - S5M8767_REG_LDO21 = 39, - S5M8767_REG_LDO22 = 40, - S5M8767_REG_LDO23 = 41, - S5M8767_REG_LDO24 = 42, - S5M8767_REG_LDO25 = 43, - S5M8767_REG_LDO26 = 44, - S5M8767_REG_LDO27 = 45, - S5M8767_REG_LDO28 = 46, - S5M8767_REG_UVLO = 49, - S5M8767_REG_BUCK1CTRL1 = 50, - S5M8767_REG_BUCK1CTRL2 = 51, - S5M8767_REG_BUCK2CTRL = 52, - S5M8767_REG_BUCK2DVS1 = 53, - S5M8767_REG_BUCK2DVS2 = 54, - S5M8767_REG_BUCK2DVS3 = 55, - S5M8767_REG_BUCK2DVS4 = 56, - S5M8767_REG_BUCK2DVS5 = 57, - S5M8767_REG_BUCK2DVS6 = 58, - S5M8767_REG_BUCK2DVS7 = 59, - S5M8767_REG_BUCK2DVS8 = 60, - S5M8767_REG_BUCK3CTRL = 61, - S5M8767_REG_BUCK3DVS1 = 62, - S5M8767_REG_BUCK3DVS2 = 63, - S5M8767_REG_BUCK3DVS3 = 64, - S5M8767_REG_BUCK3DVS4 = 65, - S5M8767_REG_BUCK3DVS5 = 66, - S5M8767_REG_BUCK3DVS6 = 67, - S5M8767_REG_BUCK3DVS7 = 68, - S5M8767_REG_BUCK3DVS8 = 69, - S5M8767_REG_BUCK4CTRL = 70, - S5M8767_REG_BUCK4DVS1 = 71, - S5M8767_REG_BUCK4DVS2 = 72, - S5M8767_REG_BUCK4DVS3 = 73, - S5M8767_REG_BUCK4DVS4 = 74, - S5M8767_REG_BUCK4DVS5 = 75, - S5M8767_REG_BUCK4DVS6 = 76, - S5M8767_REG_BUCK4DVS7 = 77, - S5M8767_REG_BUCK4DVS8 = 78, - S5M8767_REG_BUCK5CTRL1 = 79, - S5M8767_REG_BUCK5CTRL2 = 80, - S5M8767_REG_BUCK5CTRL3 = 81, - S5M8767_REG_BUCK5CTRL4 = 82, - S5M8767_REG_BUCK5CTRL5 = 83, - S5M8767_REG_BUCK6CTRL1 = 84, - S5M8767_REG_BUCK6CTRL2 = 85, - S5M8767_REG_BUCK7CTRL1 = 86, - S5M8767_REG_BUCK7CTRL2 = 87, - S5M8767_REG_BUCK8CTRL1 = 88, - S5M8767_REG_BUCK8CTRL2 = 89, - S5M8767_REG_BUCK9CTRL1 = 90, - S5M8767_REG_BUCK9CTRL2 = 91, - S5M8767_REG_LDO1CTRL = 92, - S5M8767_REG_LDO2_1CTRL = 93, - S5M8767_REG_LDO2_2CTRL = 94, - S5M8767_REG_LDO2_3CTRL = 95, - S5M8767_REG_LDO2_4CTRL = 96, - S5M8767_REG_LDO3CTRL = 97, - S5M8767_REG_LDO4CTRL = 98, - S5M8767_REG_LDO5CTRL = 99, - S5M8767_REG_LDO6CTRL = 100, - S5M8767_REG_LDO7CTRL = 101, - S5M8767_REG_LDO8CTRL = 102, - S5M8767_REG_LDO9CTRL = 103, - S5M8767_REG_LDO10CTRL = 104, - S5M8767_REG_LDO11CTRL = 105, - S5M8767_REG_LDO12CTRL = 106, - S5M8767_REG_LDO13CTRL = 107, - S5M8767_REG_LDO14CTRL = 108, - S5M8767_REG_LDO15CTRL = 109, - S5M8767_REG_LDO16CTRL = 110, - S5M8767_REG_LDO17CTRL = 111, - S5M8767_REG_LDO18CTRL = 112, - S5M8767_REG_LDO19CTRL = 113, - S5M8767_REG_LDO20CTRL = 114, - S5M8767_REG_LDO21CTRL = 115, - S5M8767_REG_LDO22CTRL = 116, - S5M8767_REG_LDO23CTRL = 117, - S5M8767_REG_LDO24CTRL = 118, - S5M8767_REG_LDO25CTRL = 119, - S5M8767_REG_LDO26CTRL = 120, - S5M8767_REG_LDO27CTRL = 121, - S5M8767_REG_LDO28CTRL = 122, +enum stmmac_rfs_type { + STMMAC_RFS_T_VLAN = 0, + STMMAC_RFS_T_LLDP = 1, + STMMAC_RFS_T_1588 = 2, + STMMAC_RFS_T_MAX = 3, }; -enum s5m8767_dvs_buck_ramp_values { - S5M8767_DVS_BUCK_RAMP_5 = 4, - S5M8767_DVS_BUCK_RAMP_10 = 9, - S5M8767_DVS_BUCK_RAMP_12_5 = 11, - S5M8767_DVS_BUCK_RAMP_25 = 13, - S5M8767_DVS_BUCK_RAMP_50 = 14, - S5M8767_DVS_BUCK_RAMP_100 = 15, +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, }; -enum s5m8767_regulators { - S5M8767_LDO1 = 0, - S5M8767_LDO2 = 1, - S5M8767_LDO3 = 2, - S5M8767_LDO4 = 3, - S5M8767_LDO5 = 4, - S5M8767_LDO6 = 5, - S5M8767_LDO7 = 6, - S5M8767_LDO8 = 7, - S5M8767_LDO9 = 8, - S5M8767_LDO10 = 9, - S5M8767_LDO11 = 10, - S5M8767_LDO12 = 11, - S5M8767_LDO13 = 12, - S5M8767_LDO14 = 13, - S5M8767_LDO15 = 14, - S5M8767_LDO16 = 15, - S5M8767_LDO17 = 16, - S5M8767_LDO18 = 17, - S5M8767_LDO19 = 18, - S5M8767_LDO20 = 19, - S5M8767_LDO21 = 20, - S5M8767_LDO22 = 21, - S5M8767_LDO23 = 22, - S5M8767_LDO24 = 23, - S5M8767_LDO25 = 24, - S5M8767_LDO26 = 25, - S5M8767_LDO27 = 26, - S5M8767_LDO28 = 27, - S5M8767_BUCK1 = 28, - S5M8767_BUCK2 = 29, - S5M8767_BUCK3 = 30, - S5M8767_BUCK4 = 31, - S5M8767_BUCK5 = 32, - S5M8767_BUCK6 = 33, - S5M8767_BUCK7 = 34, - S5M8767_BUCK8 = 35, - S5M8767_BUCK9 = 36, - S5M8767_AP_EN32KHZ = 37, - S5M8767_CP_EN32KHZ = 38, - S5M8767_REG_MAX = 39, +enum flow_action_hw_stats_bit { + FLOW_ACTION_HW_STATS_IMMEDIATE_BIT = 0, + FLOW_ACTION_HW_STATS_DELAYED_BIT = 1, + FLOW_ACTION_HW_STATS_DISABLED_BIT = 2, + FLOW_ACTION_HW_STATS_NUM_BITS = 3, }; -struct s5m8767_info { - struct device *dev; - struct sec_pmic_dev *iodev; - int num_regulators; - struct sec_opmode_data *opmode; - int ramp_delay; - bool buck2_ramp; - bool buck3_ramp; - bool buck4_ramp; - bool buck2_gpiodvs; - bool buck3_gpiodvs; - bool buck4_gpiodvs; - u8 buck2_vol[8]; - u8 buck3_vol[8]; - u8 buck4_vol[8]; - int buck_gpios[3]; - int buck_ds[3]; - int buck_gpioindex; +enum { + TC_TAPRIO_CMD_SET_GATES = 0, + TC_TAPRIO_CMD_SET_AND_HOLD = 1, + TC_TAPRIO_CMD_SET_AND_RELEASE = 2, }; -struct sysrq_state { - struct input_handle handle; - struct work_struct reinject_work; - unsigned long key_down[24]; - 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[24]; - int reset_seq_len; - int reset_seq_cnt; - int reset_seq_version; - struct timer_list keyreset_timer; +struct cdc_ncm_stats { + char stat_string[32]; + int sizeof_stat; + int stat_offset; }; -struct mctrl_gpios { - struct uart_port *port; - struct gpio_desc *gpio[6]; - int irq[6]; - unsigned int mctrl_prev; - bool mctrl_on; +struct usb_cdc_ncm_ntb_parameters { + __le16 wLength; + __le16 bmNtbFormatsSupported; + __le32 dwNtbInMaxSize; + __le16 wNdpInDivisor; + __le16 wNdpInPayloadRemainder; + __le16 wNdpInAlignment; + __le16 wPadding1; + __le32 dwNtbOutMaxSize; + __le16 wNdpOutDivisor; + __le16 wNdpOutPayloadRemainder; + __le16 wNdpOutAlignment; + __le16 wNtbOutMaxDatagrams; }; -typedef u32 sysmmu_pte_t; - -struct sysmmu_drvdata; +struct usb_cdc_ncm_ndp16; -struct sysmmu_fault; +struct usb_cdc_ncm_ndp32; -struct sysmmu_variant { - u32 pt_base; - u32 flush_all; - u32 flush_entry; - u32 flush_range; - u32 flush_start; - u32 flush_end; - u32 int_status; - u32 int_clear; - u32 fault_va; - u32 fault_info; - int (*get_fault_info)(struct sysmmu_drvdata *, unsigned int, struct sysmmu_fault *); +struct cdc_ncm_ctx { + struct usb_cdc_ncm_ntb_parameters ncm_parm; + long: 32; + struct hrtimer tx_timer; + struct tasklet_struct bh; + struct usbnet *dev; + const struct usb_cdc_ncm_desc *func_desc; + const struct usb_cdc_mbim_desc *mbim_desc; + const struct usb_cdc_mbim_extended_desc *mbim_extended_desc; + const struct usb_cdc_ether_desc *ether_desc; + struct usb_interface *control; + struct usb_interface *data; + struct sk_buff *tx_curr_skb; + struct sk_buff *tx_rem_skb; + __le32 tx_rem_sign; + spinlock_t mtx; + atomic_t stop; + int drvflags; + u32 timer_interval; + u32 max_ndp_size; + u8 is_ndp16; + union { + struct usb_cdc_ncm_ndp16 *delayed_ndp16; + struct usb_cdc_ncm_ndp32 *delayed_ndp32; + }; + u32 tx_timer_pending; + u32 tx_curr_frame_num; + u32 rx_max; + u32 tx_max; + u32 tx_curr_size; + u32 tx_low_mem_max_cnt; + u32 tx_low_mem_val; + u32 max_datagram_size; + u16 tx_max_datagrams; + u16 tx_remainder; + u16 tx_modulus; + u16 tx_ndp_modulus; + u16 tx_seq; + u16 rx_seq; + u16 min_tx_pkt; + u32 tx_curr_frame_payload; + u32 tx_reason_ntb_full; + u32 tx_reason_ndp_full; + u32 tx_reason_timeout; + u32 tx_reason_max_datagram; + u64 tx_overhead; + u64 tx_ntbs; + u64 rx_overhead; + u64 rx_ntbs; }; -struct exynos_iommu_domain; - -struct sysmmu_drvdata { - struct device *sysmmu; - struct device *master; - struct device_link *link; - void *sfrbase; - struct clk *clk; - struct clk *aclk; - struct clk *pclk; - struct clk *clk_master; - spinlock_t lock; - bool active; - struct exynos_iommu_domain *domain; - struct list_head domain_node; - struct list_head owner_node; - phys_addr_t pgtable; - unsigned int version; - struct iommu_device iommu; - const struct sysmmu_variant *variant; - bool has_vcr; +struct usb_cdc_ncm_dpe16 { + __le16 wDatagramIndex; + __le16 wDatagramLength; }; -struct exynos_iommu_domain { - struct list_head clients; - sysmmu_pte_t *pgtable; - short *lv2entcnt; - spinlock_t lock; - spinlock_t pgtablelock; - struct iommu_domain domain; +struct usb_cdc_ncm_ndp16 { + __le32 dwSignature; + __le16 wLength; + __le16 wNextNdpIndex; + struct usb_cdc_ncm_dpe16 dpe16[0]; }; -typedef u32 sysmmu_iova_t; - -struct sysmmu_fault { - sysmmu_iova_t addr; - const char *name; - unsigned int type; +struct usb_cdc_ncm_dpe32 { + __le32 dwDatagramIndex; + __le32 dwDatagramLength; }; -struct sysmmu_v1_fault_info { - unsigned short addr_reg; - const char *name; - unsigned int type; +struct usb_cdc_ncm_ndp32 { + __le32 dwSignature; + __le16 wLength; + __le16 wReserved6; + __le32 dwNextNdpIndex; + __le32 dwReserved12; + struct usb_cdc_ncm_dpe32 dpe32[0]; }; -struct exynos_iommu_owner { - struct list_head controllers; - struct iommu_domain *domain; - struct mutex rpm_lock; +struct usb_cdc_ncm_nth16 { + __le32 dwSignature; + __le16 wHeaderLength; + __le16 wSequence; + __le16 wBlockLength; + __le16 wNdpIndex; }; -struct drm_mode_obj_get_properties { - __u64 props_ptr; - __u64 prop_values_ptr; - __u32 count_props; - __u32 obj_id; - __u32 obj_type; - long: 32; +struct usb_cdc_ncm_nth32 { + __le32 dwSignature; + __le16 wHeaderLength; + __le16 wSequence; + __le32 dwBlockLength; + __le32 dwNdpIndex; }; -struct drm_mode_obj_set_property { - __u64 value; - __u32 prop_id; - __u32 obj_id; - __u32 obj_type; - long: 32; +struct usb_cdc_speed_change { + __le32 DLBitRRate; + __le32 ULBitRate; }; -struct container_dev { - struct device dev; - int (*offline)(struct container_dev *); - long: 32; +enum xhci_overhead_type { + LS_OVERHEAD_TYPE = 0, + FS_OVERHEAD_TYPE = 1, + HS_OVERHEAD_TYPE = 2, }; -enum genpd_notication { - GENPD_NOTIFY_PRE_OFF = 0, - GENPD_NOTIFY_OFF = 1, - GENPD_NOTIFY_PRE_ON = 2, - GENPD_NOTIFY_ON = 3, +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 of_genpd_provider { - struct list_head link; - struct device_node *node; - genpd_xlate_t xlate; - void *data; +struct serio_event { + enum serio_event_type type; + void *object; + struct module *owner; + struct list_head node; }; -enum { - ACTION_FAIL = 0, - ACTION_REPREP = 1, - ACTION_DELAYED_REPREP = 2, - ACTION_RETRY = 3, - ACTION_DELAYED_RETRY = 4, +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[16]; + 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 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, -}; +typedef void (*btf_trace_smbus_write)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, const union i2c_smbus_data *); -struct cfi_early_fixup { - uint16_t mfr; - uint16_t id; - void (*fixup)(struct cfi_private *); +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 elm_registers { - u32 elm_irqenable; - u32 elm_sysconfig; - u32 elm_location_config; - u32 elm_page_ctrl; - u32 elm_syndrome_fragment_6[8]; - u32 elm_syndrome_fragment_5[8]; - u32 elm_syndrome_fragment_4[8]; - u32 elm_syndrome_fragment_3[8]; - u32 elm_syndrome_fragment_2[8]; - u32 elm_syndrome_fragment_1[8]; - u32 elm_syndrome_fragment_0[8]; +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 elm_info { - struct device *dev; - void *elm_base; - struct completion elm_completion; - struct list_head list; - enum bch_ecc bch_type; - struct elm_registers elm_regs; - int ecc_steps; - int ecc_syndrome_size; +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 bcm_qspi_data { - bool has_mspi_rev; - bool has_spcr3_sysclk; +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 bcm_qspi_irq { - const char *irq_name; - const irq_handler_t irq_handler; - int irq_source; - u32 mask; +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 armada_thermal_priv; + +struct armada_thermal_data { + void (*init)(struct platform_device *, struct armada_thermal_priv *); + long: 32; + s64 coef_b; + s64 coef_m; + u32 coef_div; + bool inverted; + bool signed_sample; + unsigned int temp_shift; + unsigned int temp_mask; + unsigned int thresh_shift; + unsigned int hyst_shift; + unsigned int hyst_mask; + u32 is_valid_bit; + unsigned int syscon_control0_off; + unsigned int syscon_control1_off; + unsigned int syscon_status_off; + unsigned int dfx_irq_cause_off; + unsigned int dfx_irq_mask_off; + unsigned int dfx_overheat_irq; + unsigned int dfx_server_irq_mask_off; + unsigned int dfx_server_irq_en; + unsigned int cpu_nr; + long: 32; }; -enum base_type___2 { - MSPI = 0, - BSPI = 1, - CHIP_SELECT = 2, - BASEMAX = 3, +struct armada_thermal_priv { + struct device *dev; + struct regmap *syscon; + char zone_name[20]; + struct mutex update_lock; + struct armada_thermal_data *data; + struct thermal_zone_device *overheat_sensor; + int interrupt_source; + int current_channel; + long current_threshold; + long current_hysteresis; }; -enum irq_source { - SINGLE_L2 = 0, - MUXED_L1 = 1, +enum drvtype { + LEGACY = 0, + SYSCON = 1, }; -struct bcm_qspi_parms { - u32 speed_hz; - u8 mode; - u8 bits_per_word; +struct armada_drvdata { + enum drvtype type; + union { + struct armada_thermal_priv *priv; + struct thermal_zone_device *tz; + } data; }; -struct qspi_trans { - struct spi_transfer *trans; - int byte; - bool mspi_last_trans; +struct armada_thermal_sensor { + struct armada_thermal_priv *priv; + int id; }; -struct bcm_xfer_mode { - bool flex_mode; - unsigned int width; - unsigned int addrlen; - unsigned int hp; +struct at91wdt { + struct watchdog_device wdd; + void *base; + unsigned long next_heartbeat; + struct timer_list timer; + u32 mr; + u32 mr_mask; + unsigned long heartbeat; + bool nowayout; + unsigned int irq; + struct clk *sclk; }; -struct bcm_qspi_dev_id; +struct meson_wdt_data { + unsigned int enable; + unsigned int terminal_count_mask; + unsigned int count_unit; +}; -struct bcm_qspi { - struct platform_device *pdev; - struct spi_controller *master; - struct clk *clk; - u32 base_clk; - u32 max_speed_hz; - void *base[3]; - struct bcm_qspi_soc_intc *soc_intc; - struct bcm_qspi_parms last_parms; - struct qspi_trans trans_pos; - int curr_cs; - int bspi_maj_rev; - int bspi_min_rev; - int bspi_enabled; - const struct spi_mem_op *bspi_rf_op; - u32 bspi_rf_op_idx; - u32 bspi_rf_op_len; - u32 bspi_rf_op_status; - struct bcm_xfer_mode xfer_mode; - u32 s3_strap_override_ctrl; - bool bspi_mode; - bool big_endian; - int num_irqs; - struct bcm_qspi_dev_id *dev_ids; - struct completion mspi_done; - struct completion bspi_done; - u8 mspi_maj_rev; - u8 mspi_min_rev; - bool mspi_spcr3_sysclk; +struct meson_wdt_dev { + struct watchdog_device wdt_dev; + void *wdt_base; + const struct meson_wdt_data *data; }; -struct bcm_qspi_dev_id { - const struct bcm_qspi_irq *irqp; - void *dev; +struct edac_pci_gen_data { + int edac_idx; }; -struct macb_dma_desc_ptp { - u32 ts_1; - u32 ts_2; +struct qcom_cpufreq_drv; + +struct qcom_cpufreq_match_data { + int (*get_version)(struct device *, struct nvmem_cell *, char **, struct qcom_cpufreq_drv *); + const char **genpd_names; }; -struct vcap_port_debugfs_info { - struct vcap_control *vctrl; - struct net_device *ndev; +struct qcom_cpufreq_drv_cpu { + int opp_token; + struct device **virt_devs; }; -struct vcap_admin_debugfs_info { - struct vcap_control *vctrl; - struct vcap_admin *admin; +struct qcom_cpufreq_drv { + u32 versions; + const struct qcom_cpufreq_match_data *data; + struct qcom_cpufreq_drv_cpu cpus[0]; }; -struct nc_header { - __le16 hdr_len; - __le16 packet_len; - __le16 packet_id; +enum ipq806x_versions { + IPQ8062_VERSION = 0, + IPQ8064_VERSION = 1, + IPQ8065_VERSION = 2, }; -struct nc_trailer { - __le16 packet_id; +enum ipq8074_versions { + IPQ8074_HAWKEYE_VERSION = 0, + IPQ8074_ACORN_VERSION = 1, }; -struct isp1301 { - struct usb_phy phy; - struct mutex mutex; - struct i2c_client *client; +enum atmel_mci_state { + STATE_IDLE___6 = 0, + STATE_SENDING_CMD___2 = 1, + STATE_DATA_XFER = 2, + STATE_WAITING_NOTBUSY = 3, + STATE_SENDING_STOP___2 = 4, + STATE_END_REQUEST = 5, }; -struct isp1760_request { - struct usb_request req; - struct list_head queue; - struct isp1760_ep *ep; - unsigned int packet_size; +enum { + EVENT_CMD_RDY = 0, + EVENT_XFER_COMPLETE___2 = 1, + EVENT_NOTBUSY = 2, + EVENT_DATA_ERROR___2 = 3, }; -struct pm8941_data { - unsigned int pull_up_bit; - unsigned int status_bit; - bool supports_ps_hold_poff_config; - bool supports_debounce_config; - bool has_pon_pbs; - const char *name; - const char *phys; +enum atmci_xfer_dir { + XFER_RECEIVE = 0, + XFER_TRANSMIT = 1, }; -struct pm8941_pwrkey { - struct device *dev; - int irq; - u32 baseaddr; - u32 pon_pbs_baseaddr; - struct regmap *regmap; - struct input_dev *input; - unsigned int revision; - unsigned int subtype; - struct notifier_block reboot_notifier; - u32 code; - u32 sw_debounce_time_us; - long: 32; - ktime_t sw_debounce_end_time; - bool last_status; - const struct pm8941_data *data; +enum atmci_pdc_buf { + PDC_FIRST_BUF = 0, + PDC_SECOND_BUF = 1, }; -typedef void (*btf_trace_i2c_slave)(void *, const struct i2c_client *, enum i2c_slave_event, __u8 *, int); +struct atmel_mci_dma { + struct dma_chan *chan; + struct dma_async_tx_descriptor *data_desc; +}; -struct trace_event_raw_i2c_slave { - struct trace_entry ent; - int adapter_nr; - int ret; - __u16 addr; - __u16 len; - enum i2c_slave_event event; - __u8 buf[1]; - char __data[0]; +struct atmel_mci_caps { + bool has_dma_conf_reg; + bool has_pdc; + bool has_cfg_reg; + bool has_cstor_reg; + bool has_highspeed; + bool has_rwproof; + bool has_odd_clk_div; + bool has_bad_data_ordering; + bool need_reset_after_xfer; + bool need_blksz_mul_4; + bool need_notbusy_for_read_ops; }; -struct trace_event_data_offsets_i2c_slave {}; +struct atmel_mci_slot; -struct i2c_mux_pinctrl { - struct pinctrl *pinctrl; - struct pinctrl_state *states[0]; +struct atmel_mci { + spinlock_t lock; + void *regs; + struct scatterlist *sg; + unsigned int sg_len; + unsigned int pio_offset; + unsigned int *buffer; + unsigned int buf_size; + dma_addr_t buf_phys_addr; + struct atmel_mci_slot *cur_slot; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_data *data; + unsigned int data_size; + struct atmel_mci_dma dma; + struct dma_chan *data_chan; + struct dma_slave_config dma_conf; + u32 cmd_status; + u32 data_status; + u32 stop_cmdr; + struct tasklet_struct tasklet; + unsigned long pending_events; + unsigned long completed_events; + enum atmel_mci_state state; + struct list_head queue; + bool need_clock_update; + bool need_reset; + struct timer_list timer; + u32 mode_reg; + u32 cfg_reg; + unsigned long bus_hz; + unsigned long mapbase; + struct clk *mck; + struct platform_device *pdev; + struct atmel_mci_slot *slot[2]; + struct atmel_mci_caps caps; + u32 (*prepare_data)(struct atmel_mci *, struct mmc_data *); + void (*submit_data)(struct atmel_mci *, struct mmc_data *); + void (*stop_transfer)(struct atmel_mci *); }; -enum { - POWER_SUPPLY_CHARGE_TYPE_UNKNOWN = 0, - POWER_SUPPLY_CHARGE_TYPE_NONE = 1, - POWER_SUPPLY_CHARGE_TYPE_TRICKLE = 2, - POWER_SUPPLY_CHARGE_TYPE_FAST = 3, - POWER_SUPPLY_CHARGE_TYPE_STANDARD = 4, - POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE = 5, - POWER_SUPPLY_CHARGE_TYPE_CUSTOM = 6, - POWER_SUPPLY_CHARGE_TYPE_LONGLIFE = 7, - POWER_SUPPLY_CHARGE_TYPE_BYPASS = 8, +struct atmel_mci_slot { + struct mmc_host *mmc; + struct atmel_mci *host; + u32 sdc_reg; + u32 sdio_irq; + struct mmc_request *mrq; + struct list_head queue_node; + unsigned int clock; + unsigned long flags; + struct gpio_desc *detect_pin; + struct gpio_desc *wp_pin; + struct timer_list detect_timer; }; -struct act8945a_charger { - struct power_supply *psy; - struct power_supply_desc desc; - struct regmap *regmap; - struct work_struct work; - bool init_done; - struct gpio_desc *lbo_gpio; - struct gpio_desc *chglev_gpio; +struct mci_slot_pdata { + unsigned int bus_width; + struct gpio_desc *detect_pin; + struct gpio_desc *wp_pin; + bool non_removable; }; -struct imx2_wdt_data { - bool wdw_supported; +struct mci_platform_data { + void *dma_slave; + dma_filter_fn dma_filter; + struct mci_slot_pdata slot[2]; }; -struct imx2_wdt_device { - struct clk *clk; - struct regmap *regmap; - struct watchdog_device wdog; - const struct imx2_wdt_data *data; - bool ext_reset; - bool clk_is_on; - bool no_ping; - bool sleep_wait; +struct bcm2835_host { + spinlock_t lock; + struct mutex mutex; + void *ioaddr; + u32 phys_addr; + struct platform_device *pdev; + int clock; + unsigned int max_clk; + struct work_struct dma_work; + struct delayed_work timeout_work; + struct sg_mapping_iter sg_miter; + unsigned int blocks; + int irq; + u32 ns_per_fifo_word; + u32 hcfg; + u32 cdiv; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_data *data; + bool data_complete: 1; + bool use_busy: 1; + bool use_sbc: 1; + bool irq_block; + bool irq_busy; + bool irq_data; + struct dma_chan *dma_chan_rxtx; + struct dma_chan *dma_chan; + struct dma_slave_config dma_cfg_rx; + struct dma_slave_config dma_cfg_tx; + struct dma_async_tx_descriptor *dma_desc; + u32 dma_dir; + u32 drain_words; + struct page *drain_page; + u32 drain_offset; + bool use_dma; }; -enum { - EVENT_CMD_COMPLETE = 0, - EVENT_XFER_COMPLETE___2 = 1, - EVENT_DATA_COMPLETE = 2, - EVENT_DATA_ERROR___2 = 3, +struct bcm63138_leds; + +struct bcm63138_led { + struct bcm63138_leds *leds; + struct led_classdev cdev; + u32 pin; + bool active_low; }; -enum { - TRANS_MODE_PIO = 0, - TRANS_MODE_IDMAC = 1, - TRANS_MODE_EDMAC = 2, +struct bcm63138_leds { + struct device *dev; + void *base; + spinlock_t lock; }; -enum dw_mci_cookie { - COOKIE_UNMAPPED___3 = 0, - COOKIE_PRE_MAPPED___3 = 1, - COOKIE_MAPPED___3 = 2, +struct events_queue { + size_t sz; + struct kfifo kfifo; + struct work_struct notify_work; + struct workqueue_struct *wq; }; -struct idmac_desc_64addr { - u32 des0; - u32 des1; - u32 des2; - u32 des3; - u32 des4; - u32 des5; - u32 des6; - u32 des7; +struct scmi_notify_instance; + +struct scmi_event_header; + +struct scmi_registered_event; + +struct scmi_registered_events_desc { + u8 id; + const struct scmi_event_ops *ops; + struct events_queue equeue; + struct scmi_notify_instance *ni; + struct scmi_event_header *eh; + size_t eh_sz; + void *in_flight; + int num_events; + struct scmi_registered_event **registered_events; + struct mutex registered_mtx; + const struct scmi_protocol_handle *ph; + struct hlist_head registered_events_handlers[64]; }; -struct idmac_desc { - __le32 des0; - __le32 des1; - __le32 des2; - __le32 des3; +struct scmi_notify_instance { + void *gid; + struct scmi_handle *handle; + struct work_struct init_work; + struct workqueue_struct *notify_wq; + struct mutex pending_mtx; + struct scmi_registered_events_desc **registered_protocols; + struct hlist_head pending_events_handlers[16]; }; -struct sp804_clkevt { - void *base; - void *load; - void *load_h; - void *value; - void *value_h; - void *ctrl; - void *intclr; - void *ris; - void *mis; - void *bgload; - void *bgload_h; - unsigned long reload; - int width; +struct scmi_event_header { + ktime_t timestamp; + size_t payld_sz; + unsigned char evt_id; + unsigned char payld[0]; }; -struct sp804_timer { - int load; - int load_h; - int value; - int value_h; - int ctrl; - int intclr; - int ris; - int mis; - int bgload; - int bgload_h; - int timer_base[2]; - int width; +struct scmi_registered_event { + struct scmi_registered_events_desc *proto; + const struct scmi_event *evt; + void *report; + u32 num_sources; + refcount_t *sources; + struct mutex sources_mtx; }; -struct of_intc_desc { - struct list_head list; - of_irq_init_cb_t irq_init_cb; - struct device_node *dev; - struct device_node *interrupt_parent; +struct scmi_event_handler { + u32 key; + refcount_t users; + struct scmi_registered_event *r_evt; + struct blocking_notifier_head chain; + struct hlist_node hash; + bool enabled; }; -struct nvec_led { - struct led_classdev cdev; - struct nvec_chip *nvec; +struct scmi_notifier_devres { + const struct scmi_handle *handle; + u8 proto_id; + u8 evt_id; + u32 __src_id; + u32 *src_id; + struct notifier_block *nb; +}; + +typedef struct { + u32 version; + u32 num_entries; + u32 desc_size; + u32 flags; + efi_memory_desc_t entry[0]; +} efi_memory_attributes_table_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 qcom_apcs_ipc_data { @@ -159249,1130 +161593,1248 @@ struct qcom_apcs_ipc { long: 32; }; -struct dpfe_api { - int version; - const char *fw_name; - const struct attribute_group **sysfs_attrs; - u32 command[48]; +struct lpddr3_timings { + u32 max_freq; + u32 min_freq; + u32 tRFC; + u32 tRRD; + u32 tRPab; + u32 tRPpb; + u32 tRCD; + u32 tRC; + u32 tRAS; + u32 tWTR; + u32 tWR; + u32 tRTP; + u32 tW2W_C2C; + u32 tR2R_C2C; + u32 tWL; + u32 tDQSCK; + u32 tRL; + u32 tFAW; + u32 tXSR; + u32 tXP; + u32 tCKE; + u32 tCKESR; + u32 tMRD; }; -enum dpfe_commands { - DPFE_CMD_GET_INFO = 0, - DPFE_CMD_GET_REFRESH = 1, - DPFE_CMD_GET_VENDOR = 2, - DPFE_CMD_MAX = 3, +struct lpddr3_min_tck { + u32 tRFC; + u32 tRRD; + u32 tRPab; + u32 tRPpb; + u32 tRCD; + u32 tRC; + u32 tRAS; + u32 tWTR; + u32 tWR; + u32 tRTP; + u32 tW2W_C2C; + u32 tR2R_C2C; + u32 tWL; + u32 tDQSCK; + u32 tRL; + u32 tFAW; + u32 tXSR; + u32 tXP; + u32 tCKE; + u32 tCKESR; + u32 tMRD; }; -enum dpfe_msg_fields { - MSG_HEADER = 0, - MSG_COMMAND = 1, - MSG_ARG_COUNT = 2, - MSG_ARG0 = 3, - MSG_FIELD_MAX = 16, +enum emc_dram_type___3 { + DRAM_TYPE_DDR3___2 = 0, + DRAM_TYPE_DDR1___3 = 1, + DRAM_TYPE_LPDDR3 = 2, + DRAM_TYPE_DDR2___3 = 3, }; -struct dpfe_firmware_header { - u32 magic; - u32 sequence; - u32 version; - u32 imem_size; - u32 dmem_size; +struct emc_timing___4 { + unsigned long rate; + u32 emc_burst_data[143]; + u32 emc_auto_cal_config; + u32 emc_auto_cal_config2; + u32 emc_auto_cal_config3; + u32 emc_auto_cal_interval; + u32 emc_bgbias_ctl0; + u32 emc_cfg; + u32 emc_cfg_2; + u32 emc_ctt_term_ctrl; + u32 emc_mode_1; + u32 emc_mode_2; + u32 emc_mode_4; + u32 emc_mode_reset; + u32 emc_mrs_wait_cnt; + u32 emc_sel_dpd_ctrl; + u32 emc_xm2dqspadctrl2; + u32 emc_zcal_cnt_long; + u32 emc_zcal_interval; }; -struct brcmstb_dpfe_priv { - void *regs; - void *dmem; - void *imem; +struct tegra_emc___3 { struct device *dev; - const struct dpfe_api *dpfe_api; - struct mutex lock; + struct tegra_mc *mc; + void *regs; + struct clk *clk; + enum emc_dram_type___3 dram_type; + unsigned int dram_bus_width; + unsigned int dram_num; + struct emc_timing___4 last_timing; + struct emc_timing___4 *timings; + unsigned int num_timings; + struct { + struct dentry *root; + unsigned long min_rate; + unsigned long max_rate; + } debugfs; + struct icc_provider provider; + struct emc_rate_request requested_rate[2]; + struct mutex rate_lock; }; -struct init_data { - unsigned int dmem_len; - unsigned int imem_len; - unsigned int chksum; - bool is_big_endian; +typedef int tegra124_emc_prepare_timing_change_cb___2(struct tegra_emc___3 *, unsigned long); + +typedef void tegra124_emc_complete_timing_change_cb___2(struct tegra_emc___3 *, unsigned long); + +enum asahi_compass_chipset { + AK8975 = 0, + AK8963 = 1, + AK09911 = 2, + AK09912 = 3, + AK09916 = 4, }; -struct iproc_adc_priv { - struct regmap *regmap; - struct clk *adc_clk; - struct mutex mutex; - int irqno; - int chan_val; - int chan_id; - struct completion completion; +struct ak_def { + enum asahi_compass_chipset type; + long (*raw_to_gauss)(u16); + u16 range; + u8 ctrl_regs[5]; + u8 ctrl_masks[4]; + u8 ctrl_modes[4]; + u8 data_regs[3]; }; -struct tee_ioctl_buf_data { - __u64 buf_ptr; - __u64 buf_len; +enum ak_ctrl_mode { + POWER_DOWN = 0, + MODE_ONCE = 1, + SELF_TEST = 2, + FUSE_ROM = 3, + MODE_END = 4, }; -struct tee_ioctl_shm_register_data { - __u64 addr; - __u64 length; - __u32 flags; - __s32 id; +enum ak_ctrl_reg_addr { + ST1 = 0, + ST2 = 1, + CNTL = 2, + ASA_BASE = 3, + MAX_REGS = 4, + REGS_END = 5, }; -struct tee_iocl_supp_recv_arg { - __u32 func; - __u32 num_params; - struct tee_ioctl_param params[0]; +enum ak_ctrl_reg_mask { + ST1_DRDY = 0, + ST2_HOFL = 1, + ST2_DERR = 2, + CNTL_MODE = 3, + MASK_END = 4, }; -struct tee_iocl_supp_send_arg { - __u32 ret; - __u32 num_params; - struct tee_ioctl_param params[0]; +struct ak8975_data { + struct i2c_client *client; + const struct ak_def *def; + struct mutex lock; + u8 asa[3]; + long raw_to_gauss[3]; + struct gpio_desc *eoc_gpiod; + struct gpio_desc *reset_gpiod; + int eoc_irq; + wait_queue_head_t data_ready_queue; + unsigned long flags; + u8 cntl_cache; + struct iio_mount_matrix orientation; + struct regulator *vdd; + struct regulator *vid; + struct { + s16 channels[3]; + s64 ts; + } scan; }; -struct tee_ioctl_close_session_arg { - __u32 session; +enum hwtstamp_flags { + HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1, + HWTSTAMP_FLAG_LAST = 1, + HWTSTAMP_FLAG_MASK = 1, }; -struct tee_ioctl_cancel_arg { - __u32 cancel_id; - __u32 session; +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 tee_ioctl_shm_alloc_data { - __u64 size; - __u32 flags; - __s32 id; +struct coalesce_reply_data { + struct ethnl_reply_data base; + struct ethtool_coalesce coalesce; + struct kernel_ethtool_coalesce kernel_coalesce; + u32 supported_params; }; -struct match_dev_data { - struct tee_ioctl_version_data *vers; - const void *data; - int (*match)(struct tee_ioctl_version_data *, const void *); +enum xprt_xid_rb_cmp { + XID_RB_EQUAL = 0, + XID_RB_LEFT = 1, + XID_RB_RIGHT = 2, }; -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, +enum rfkill_hard_block_reasons { + RFKILL_HARD_BLOCK_SIGNAL = 1, + RFKILL_HARD_BLOCK_NOT_OWNER = 2, }; -struct features_reply_data { - struct ethnl_reply_data base; - u32 hw[2]; - u32 wanted[2]; - u32 active[2]; - u32 nochange[2]; - u32 all[2]; +enum rfkill_operation { + RFKILL_OP_ADD = 0, + RFKILL_OP_DEL = 1, + RFKILL_OP_CHANGE = 2, + RFKILL_OP_CHANGE_ALL = 3, }; -struct bcm_sock { - struct sock sk; - int bound; - int ifindex; - struct list_head notifier; - struct list_head rx_ops; - struct list_head tx_ops; - unsigned long dropped_usr_msgs; - struct proc_dir_entry *bcm_proc_read; - char procname[32]; +enum rfkill_user_states { + RFKILL_USER_STATE_SOFT_BLOCKED = 0, + RFKILL_USER_STATE_UNBLOCKED = 1, + RFKILL_USER_STATE_HARD_BLOCKED = 2, }; -enum { - TX_SETUP = 1, - TX_DELETE = 2, - TX_READ = 3, - TX_SEND = 4, - RX_SETUP = 5, - RX_DELETE = 6, - RX_READ = 7, - TX_STATUS = 8, - TX_EXPIRED = 9, - RX_STATUS = 10, - RX_TIMEOUT = 11, - RX_CHANGED = 12, +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; + bool need_sync; + 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]; + long: 32; }; -struct bcm_timeval { - long tv_sec; - long tv_usec; +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 bcm_op { +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 callback_head rcu; - int ifindex; - canid_t can_id; - u32 flags; - unsigned long frames_abs; - unsigned long frames_filtered; - struct bcm_timeval ival1; - struct bcm_timeval ival2; - long: 32; - struct hrtimer timer; - struct hrtimer thrtimer; - ktime_t rx_stamp; - ktime_t kt_ival1; - ktime_t kt_ival2; - ktime_t kt_lastmsg; - int rx_ifindex; - int cfsiz; - u32 count; - u32 nframes; - u32 currframe; - void *frames; - void *last_frames; - long: 32; - struct canfd_frame sframe; - struct canfd_frame last_sframe; - struct sock *sk; - struct net_device *rx_reg_dev; + struct rfkill_event_ext ev; }; -struct sockaddr_can { - __kernel_sa_family_t can_family; - int can_ifindex; - union { - struct { - canid_t rx_id; - canid_t tx_id; - } tp; - struct { - __u64 name; - __u32 pgn; - __u8 addr; - } j1939; - } can_addr; +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 bcm_msg_head { - __u32 opcode; - __u32 flags; - __u32 count; - struct bcm_timeval ival1; - struct bcm_timeval ival2; - canid_t can_id; - __u32 nframes; - long: 32; - struct can_frame frames[0]; +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]; }; -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, +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]; }; -enum seal_alg { - SEAL_ALG_NONE = 65535, - SEAL_ALG_DES = 0, - SEAL_ALG_1 = 1, - SEAL_ALG_DES3KD = 2, +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]; }; -enum hp_flags_bits { - HANDSHAKE_F_PROTO_NOTIFY = 0, +struct maple_pnode; + +struct maple_metadata { + unsigned char end; + unsigned char gap; }; -enum { - HANDSHAKE_CMD_READY = 1, - HANDSHAKE_CMD_ACCEPT = 2, - HANDSHAKE_CMD_DONE = 3, - __HANDSHAKE_CMD_MAX = 4, - HANDSHAKE_CMD_MAX = 3, +struct maple_range_64 { + struct maple_pnode *parent; + unsigned long pivot[31]; + union { + void __attribute__((btf_type_tag("rcu"))) *slot[32]; + struct { + void __attribute__((btf_type_tag("rcu"))) *pad[31]; + struct maple_metadata meta; + }; + }; }; -struct fiq_handler { - struct fiq_handler *next; - const char *name; - int (*fiq_op)(void *, int); - void *dev_id; +struct maple_arange_64 { + struct maple_pnode *parent; + unsigned long pivot[20]; + void __attribute__((btf_type_tag("rcu"))) *slot[21]; + unsigned long gap[21]; + struct maple_metadata meta; }; -struct omap_vc_channel_cfg { - u8 sa; - u8 rav; - u8 rac; - u8 racen; - u8 cmd; +struct maple_node { + union { + struct { + struct maple_pnode *parent; + void __attribute__((btf_type_tag("rcu"))) *slot[63]; + }; + 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 omap3_vc_timings { - u32 voltsetup1; - u32 voltsetup2; +struct maple_topiary { + struct maple_pnode *parent; + struct maple_enode *next; }; -struct omap3_vc { - struct voltagedomain *vd; - u32 voltctrl; - u32 voltsetup1; - u32 voltsetup2; - struct omap3_vc_timings timings[2]; +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 i2c_init_data { - u8 loadbits; - u8 load; - u8 hsscll_38_4; - u8 hsscll_26; - u8 hsscll_19_2; - u8 hsscll_16_8; - u8 hsscll_12; +struct maple_big_node { + struct maple_pnode *parent; + unsigned long pivot[65]; + union { + struct maple_enode *slot[66]; + struct { + unsigned long padding[43]; + unsigned long gap[43]; + }; + }; + unsigned char b_end; + enum maple_type type; }; -struct rockchip_pm_data { - const struct platform_suspend_ops *ops; - int (*init)(struct device_node *); +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; }; -enum { - ROCKCHIP_ARM_OFF_LOGIC_NORMAL = 0, - ROCKCHIP_ARM_OFF_LOGIC_DEEP = 1, +struct ma_topiary { + struct maple_enode *head; + struct maple_enode *tail; + struct maple_tree *mtree; }; -enum rk3288_pwr_mode_con { - PMU_PWR_MODE_EN = 0, - PMU_CLK_CORE_SRC_GATE_EN = 1, - PMU_GLOBAL_INT_DISABLE = 2, - PMU_L2FLUSH_EN = 3, - PMU_BUS_PD_EN = 4, - PMU_A12_0_PD_EN = 5, - PMU_SCU_EN = 6, - PMU_PLL_PD_EN = 7, - PMU_CHIP_PD_EN = 8, - PMU_PWROFF_COMB = 9, - PMU_ALIVE_USE_LF = 10, - PMU_PMU_USE_LF = 11, - PMU_OSC_24M_DIS = 12, - PMU_INPUT_CLAMP_EN = 13, - PMU_WAKEUP_RESET_EN = 14, - PMU_SREF0_ENTER_EN = 15, - PMU_SREF1_ENTER_EN = 16, - PMU_DDR0IO_RET_EN = 17, - PMU_DDR1IO_RET_EN = 18, - PMU_DDR0_GATING_EN = 19, - PMU_DDR1_GATING_EN = 20, - PMU_DDR0IO_RET_DE_REQ = 21, - PMU_DDR1IO_RET_DE_REQ = 22, +struct trace_event_data_offsets_ma_op {}; + +struct trace_event_data_offsets_ma_read {}; + +struct trace_event_data_offsets_ma_write {}; + +struct kexec_relocate_data { + unsigned long kexec_start_address; + unsigned long kexec_indirection_page; + unsigned long kexec_mach_type; + unsigned long kexec_r2; }; -enum rk3288_pwr_mode_con1 { - PMU_CLR_BUS = 0, - PMU_CLR_CORE = 1, - PMU_CLR_CPUP = 2, - PMU_CLR_ALIVE = 3, - PMU_CLR_DMA = 4, - PMU_CLR_PERI = 5, - PMU_CLR_GPU = 6, - PMU_CLR_VIDEO = 7, - PMU_CLR_HEVC = 8, - PMU_CLR_VIO = 9, +struct vdso_timestamp { + u64 sec; + u64 nsec; }; -struct __user_cap_header_struct; +struct timens_offset { + s64 sec; + u64 nsec; +}; -typedef struct __user_cap_header_struct *cap_user_header_t; +struct arch_vdso_data {}; -struct __user_cap_header_struct { - __u32 version; - int pid; +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 __user_cap_data_struct; - -typedef struct __user_cap_data_struct __attribute__((btf_type_tag("user"))) *cap_user_data_t; +union vdso_data_store { + struct vdso_data data[2]; + u8 page[4096]; +}; -struct __user_cap_data_struct { - __u32 effective; - __u32 permitted; - __u32 inheritable; +struct elfinfo { + Elf32_Ehdr *hdr; + Elf32_Sym *dynsym; + unsigned long dynsymsize; + char *dynstr; }; -enum desc_state___2 { - desc_miss = -1, - desc_reserved = 0, - desc_committed = 1, - desc_finalized = 2, - desc_reusable = 3, +struct omap_vc_channel_cfg { + u8 sa; + u8 rav; + u8 rac; + u8 racen; + u8 cmd; }; -struct prb_data_block { - unsigned long id; - char data[0]; +struct omap3_vc_timings { + u32 voltsetup1; + u32 voltsetup2; }; -enum { - IRQ_STARTUP_NORMAL = 0, - IRQ_STARTUP_MANAGED = 1, - IRQ_STARTUP_ABORT = 2, +struct omap3_vc { + struct voltagedomain *vd; + u32 voltctrl; + u32 voltsetup1; + u32 voltsetup2; + struct omap3_vc_timings timings[2]; }; -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 i2c_init_data { + u8 loadbits; + u8 load; + u8 hsscll_38_4; + u8 hsscll_26; + u8 hsscll_19_2; + u8 hsscll_16_8; + u8 hsscll_12; }; -struct kcmp_epoll_slot { - __u32 efd; - __u32 tfd; - __u32 toff; +struct tegra_lp1_iram { + void *start_addr; + void *end_addr; }; -struct eprobe_trace_entry_head { - struct trace_entry ent; +struct tms { + __kernel_clock_t tms_utime; + __kernel_clock_t tms_stime; + __kernel_clock_t tms_cutime; + __kernel_clock_t tms_cstime; }; -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 rlimit64 { + __u64 rlim_cur; + __u64 rlim_max; }; -struct eprobe_data { - struct trace_event_file *file; - struct trace_eprobe *ep; +struct getcpu_cache { + unsigned long blob[32]; }; -struct btf_kfunc_hook_filter { - btf_kfunc_filter_t filters[16]; - u32 nr_filters; +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; + long: 32; }; -struct btf_kfunc_set_tab { - struct btf_id_set8 *sets[13]; - struct btf_kfunc_hook_filter hook_filters[13]; +enum { + IRQC_IS_HARDIRQ = 0, + IRQC_IS_NESTED = 1, }; -struct btf_id_dtor_kfunc_tab { - u32 cnt; - struct btf_id_dtor_kfunc dtors[0]; +struct module_sect_attr { + struct bin_attribute battr; + unsigned long address; }; -struct btf_struct_metas { - u32 cnt; - struct btf_struct_meta types[0]; +struct module_sect_attrs { + struct attribute_group grp; + unsigned int nsections; + struct module_sect_attr attrs[0]; }; -struct bpf_sock; +struct module_notes_attrs { + struct kobject *dir; + unsigned int notes; + struct bin_attribute attrs[0]; +}; -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; +enum { + TRACE_FUNC_NO_OPTS = 0, + TRACE_FUNC_OPT_STACK = 1, + TRACE_FUNC_OPT_NO_REPEATS = 2, + TRACE_FUNC_OPT_HIGHEST_BIT = 4, }; -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_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_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]; - long: 32; - union { - struct bpf_sock *sk; - }; +struct bpf_kfunc_desc { + struct btf_func_model func_model; + u32 func_id; + s32 imm; + u16 offset; + unsigned long addr; }; -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 bpf_kfunc_desc_tab { + struct bpf_kfunc_desc descs[256]; + u32 nr_descs; }; -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_kfunc_btf { + struct btf *btf; + struct module *module; + u16 offset; }; -struct bpf_perf_event_data { - bpf_user_pt_regs_t regs; - __u64 sample_period; - __u64 addr; +struct bpf_kfunc_btf_tab { + struct bpf_kfunc_btf descs[256]; + u32 nr_descs; }; -struct bpf_sysctl { - __u32 write; - __u32 file_pos; +struct bpf_reg_types { + const enum bpf_reg_type types[10]; + u32 *btf_id; }; -struct bpf_sockopt { - union { - struct bpf_sock *sk; - }; - union { - void *optval; - }; - union { - void *optval_end; - }; - __s32 level; - __s32 optname; - __s32 optlen; - __s32 retval; +enum special_kfunc_type { + KF_bpf_obj_new_impl = 0, + KF_bpf_obj_drop_impl = 1, + KF_bpf_refcount_acquire_impl = 2, + KF_bpf_list_push_front_impl = 3, + KF_bpf_list_push_back_impl = 4, + KF_bpf_list_pop_front = 5, + KF_bpf_list_pop_back = 6, + KF_bpf_cast_to_kern_ctx = 7, + KF_bpf_rdonly_cast = 8, + KF_bpf_rcu_read_lock = 9, + KF_bpf_rcu_read_unlock = 10, + KF_bpf_rbtree_remove = 11, + KF_bpf_rbtree_add_impl = 12, + KF_bpf_rbtree_first = 13, + KF_bpf_dynptr_from_skb = 14, + KF_bpf_dynptr_from_xdp = 15, + KF_bpf_dynptr_slice = 16, + KF_bpf_dynptr_slice_rdwr = 17, + KF_bpf_dynptr_clone = 18, + KF_bpf_percpu_obj_new_impl = 19, + KF_bpf_percpu_obj_drop_impl = 20, + KF_bpf_throw = 21, + KF_bpf_iter_css_task_new = 22, }; -struct sk_reuseport_md { - union { - void *data; - }; - union { - void *data_end; - }; - __u32 len; - __u32 eth_protocol; - __u32 ip_protocol; - __u32 bind_inany; - __u32 hash; - long: 32; - union { - struct bpf_sock *sk; - }; - union { - struct bpf_sock *migrating_sk; - }; +enum bpf_stack_slot_type { + STACK_INVALID = 0, + STACK_SPILL = 1, + STACK_MISC = 2, + STACK_ZERO = 3, + STACK_DYNPTR = 4, + STACK_ITER = 5, }; -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; - long: 32; +enum bpf_access_src { + ACCESS_DIRECT = 1, + ACCESS_HELPER = 2, }; -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; - long: 32; - 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; - long: 32; - struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog; - u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern; - struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog; - u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern; - void *BPF_PROG_TYPE_TRACING_prog; - void *BPF_PROG_TYPE_TRACING_kern; - struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog; - struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern; - struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog; - struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern; - struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog; - struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern; - struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog; - struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern; - struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog; - struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern; - void *BPF_PROG_TYPE_SYSCALL_prog; - void *BPF_PROG_TYPE_SYSCALL_kern; - long: 32; +enum { + DISCOVERED = 16, + EXPLORED = 32, + FALLTHROUGH = 1, + BRANCH = 2, }; -struct btf_verifier_env; +enum { + DONE_EXPLORING = 0, + KEEP_EXPLORING = 1, +}; -struct resolve_vertex; +enum reg_arg_type { + SRC_OP = 0, + DST_OP = 1, + DST_OP_NO_MARK = 2, +}; -struct btf_show; +enum { + REASON_BOUNDS = -1, + REASON_TYPE = -2, + REASON_PATHS = -3, + REASON_LIMIT = -4, + REASON_STACK = -5, +}; -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 *); +enum kfunc_ptr_arg_type { + KF_ARG_PTR_TO_CTX = 0, + KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, + KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2, + KF_ARG_PTR_TO_DYNPTR = 3, + KF_ARG_PTR_TO_ITER = 4, + KF_ARG_PTR_TO_LIST_HEAD = 5, + KF_ARG_PTR_TO_LIST_NODE = 6, + KF_ARG_PTR_TO_BTF_ID = 7, + KF_ARG_PTR_TO_MEM = 8, + KF_ARG_PTR_TO_MEM_SIZE = 9, + KF_ARG_PTR_TO_CALLBACK = 10, + KF_ARG_PTR_TO_RB_ROOT = 11, + KF_ARG_PTR_TO_RB_NODE = 12, + KF_ARG_PTR_TO_NULL = 13, }; -struct resolve_vertex { - const struct btf_type *t; - u32 type_id; - u16 next_member; +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 verifier_phase { - CHECK_META = 0, - CHECK_TYPE = 1, +enum { + AT_PKT_END = -1, + BEYOND_PKT_END = -2, }; -enum resolve_mode { - RESOLVE_TBD = 0, - RESOLVE_PTR = 1, - RESOLVE_STRUCT_OR_ARRAY = 2, +struct bpf_iter_meta__safe_trusted { + struct seq_file *seq; }; -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 bpf_iter__task__safe_trusted { + struct bpf_iter_meta *meta; + struct task_struct *task; }; -struct btf_show { - u64 flags; - void *target; - void (*showfn)(struct btf_show *, const char *, va_list); - 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 linux_binprm__safe_trusted { + struct file *file; }; -struct bpf_cand_cache { - const char *name; - u32 name_len; - u16 kind; - u16 cnt; - struct { - const struct btf *btf; - u32 id; - } cands[0]; +struct file__safe_trusted { + struct inode *f_inode; }; -enum bpf_struct_walk_result { - WALK_SCALAR = 0, - WALK_PTR = 1, - WALK_STRUCT = 2, +struct dentry__safe_trusted { + struct inode *d_inode; }; -enum { - BTF_MODULE_F_LIVE = 1, +struct socket__safe_trusted { + struct sock *sk; }; -enum btf_kfunc_hook { - BTF_KFUNC_HOOK_COMMON = 0, - BTF_KFUNC_HOOK_XDP = 1, - BTF_KFUNC_HOOK_TC = 2, - BTF_KFUNC_HOOK_STRUCT_OPS = 3, - BTF_KFUNC_HOOK_TRACING = 4, - BTF_KFUNC_HOOK_SYSCALL = 5, - BTF_KFUNC_HOOK_FMODRET = 6, - BTF_KFUNC_HOOK_CGROUP_SKB = 7, - BTF_KFUNC_HOOK_SCHED_ACT = 8, - BTF_KFUNC_HOOK_SK_SKB = 9, - BTF_KFUNC_HOOK_SOCKET_FILTER = 10, - BTF_KFUNC_HOOK_LWT = 11, - BTF_KFUNC_HOOK_NETFILTER = 12, - BTF_KFUNC_HOOK_MAX = 13, +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; }; -enum { - BTF_KFUNC_SET_MAX_CNT = 256, - BTF_DTOR_KFUNC_MAX_CNT = 256, - BTF_KFUNC_FILTER_MAX_CNT = 16, +struct cgroup__safe_rcu { + struct kernfs_node *kn; }; -enum { - BTF_FIELD_IGNORE = 0, - BTF_FIELD_FOUND = 1, +struct css_set__safe_rcu { + struct cgroup *dfl_cgrp; }; -enum visit_state { - NOT_VISITED = 0, - VISITED = 1, - RESOLVED = 2, +struct mm_struct__safe_rcu_or_null { + struct file __attribute__((btf_type_tag("rcu"))) *exe_file; }; -enum { - BTF_VAR_STATIC = 0, - BTF_VAR_GLOBAL_ALLOCATED = 1, - BTF_VAR_GLOBAL_EXTERN = 2, +struct sk_buff__safe_rcu_or_null { + struct sock *sk; }; -struct btf_module { - struct list_head list; - struct module *module; - struct btf *btf; - struct bin_attribute *sysfs_attr; - int flags; +struct request_sock__safe_rcu_or_null { + struct sock *sk; }; -typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); +struct bpf_iter; -struct btf_decl_tag { - __s32 component_idx; +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_sec_info { - u32 off; - u32 len; +typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); + +struct bpf_struct_ops { + const struct bpf_verifier_ops *verifier_ops; + int (*init)(struct btf *); + int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *); + int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); + int (*reg)(void *); + void (*unreg)(void *); + int (*update)(void *, void *); + int (*validate)(void *); + 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; }; -struct btf_var { - __u32 linkage; +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; + long: 32; + struct { + u64 value; + bool found; + long: 32; + } arg_constant; + struct btf *arg_btf; + u32 arg_btf_id; + bool arg_owning_ref; + struct { + struct btf_field *field; + } arg_list_head; + struct { + struct btf_field *field; + } arg_rbtree_root; + struct { + enum bpf_dynptr_type type; + u32 id; + u32 ref_obj_id; + } initialized_dynptr; + struct { + u8 spi; + u8 frameno; + } iter; + long: 32; + u64 mem_size; }; -struct btf_show_snprintf { - struct btf_show show; - int len_left; - int len; +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; + long: 32; + 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 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 bpf_sanitize_info { + struct bpf_insn_aux_data aux; + bool mask_to_left; + long: 32; }; -struct cma { - unsigned long base_pfn; - unsigned long count; - unsigned long *bitmap; - unsigned int order_per_bit; - spinlock_t lock; - char name[64]; - bool reserve_pages_on_error; +typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); + +struct mlock_fbatch { + local_lock_t lock; + struct folio_batch fbatch; }; -typedef void (*btf_trace_cma_release)(void *, const char *, unsigned long, const struct page *, unsigned long); +typedef void (*btf_trace_tlb_flush)(void *, int, unsigned long); -typedef void (*btf_trace_cma_alloc_start)(void *, const char *, unsigned long, unsigned int); +typedef void (*btf_trace_mm_migrate_pages)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, enum migrate_mode, int); -typedef void (*btf_trace_cma_alloc_finish)(void *, const char *, unsigned long, const struct page *, unsigned long, unsigned int, int); +typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int); -typedef void (*btf_trace_cma_alloc_busy_retry)(void *, const char *, unsigned long, const struct page *, unsigned long, unsigned int); +typedef void (*btf_trace_set_migration_pte)(void *, unsigned long, unsigned long, int); -struct trace_event_raw_cma_release { +typedef void (*btf_trace_remove_migration_pte)(void *, unsigned long, unsigned long, int); + +struct trace_event_raw_tlb_flush { struct trace_entry ent; - u32 __data_loc_name; - unsigned long pfn; - const struct page *page; - unsigned long count; + int reason; + unsigned long pages; char __data[0]; }; -struct trace_event_raw_cma_alloc_start { +struct trace_event_raw_mm_migrate_pages { struct trace_entry ent; - u32 __data_loc_name; - unsigned long count; - unsigned int align; + unsigned long succeeded; + unsigned long failed; + unsigned long thp_succeeded; + unsigned long thp_failed; + unsigned long thp_split; + unsigned long large_folio_split; + enum migrate_mode mode; + int reason; char __data[0]; }; -struct trace_event_raw_cma_alloc_finish { +struct trace_event_raw_mm_migrate_pages_start { struct trace_entry ent; - u32 __data_loc_name; - unsigned long pfn; - const struct page *page; - unsigned long count; - unsigned int align; - int errorno; + enum migrate_mode mode; + int reason; char __data[0]; }; -struct trace_event_raw_cma_alloc_busy_retry { +struct trace_event_raw_migration_pte { struct trace_entry ent; - u32 __data_loc_name; - unsigned long pfn; - const struct page *page; - unsigned long count; - unsigned int align; + unsigned long addr; + unsigned long pte; + int order; char __data[0]; }; -struct trace_event_data_offsets_cma_release { - u32 name; +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 trace_event_data_offsets_cma_alloc_start { - u32 name; +enum poll_time_type { + PT_TIMEVAL = 0, + PT_OLD_TIMEVAL = 1, + PT_TIMESPEC = 2, + PT_OLD_TIMESPEC = 3, }; -struct trace_event_data_offsets_cma_alloc_finish { - u32 name; +typedef struct { + unsigned long fds_bits[32]; +} __kernel_fd_set; + +typedef __kernel_fd_set fd_set; + +struct sel_arg_struct { + unsigned long n; + fd_set __attribute__((btf_type_tag("user"))) *inp; + fd_set __attribute__((btf_type_tag("user"))) *outp; + fd_set __attribute__((btf_type_tag("user"))) *exp; + struct __kernel_old_timeval __attribute__((btf_type_tag("user"))) *tvp; }; -struct trace_event_data_offsets_cma_alloc_busy_retry { - u32 name; +struct poll_table_entry { + struct file *filp; + __poll_t key; + wait_queue_entry_t wait; + wait_queue_head_t *wait_address; }; -struct ns_get_path_task_args { - const struct proc_ns_operations *ns_ops; - struct task_struct *task; +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[16]; }; -struct eventfd_ctx { - struct kref kref; - wait_queue_head_t wqh; - __u64 count; - unsigned int flags; - int id; +struct poll_table_page { + struct poll_table_page *next; + struct poll_table_entry *entry; + struct poll_table_entry entries[0]; }; -enum { - Opt_uid___5 = 0, - Opt_gid___6 = 1, - Opt_mode___4 = 2, - Opt_ptmxmode = 3, - Opt_newinstance = 4, - Opt_max = 5, - Opt_err___8 = 6, +struct poll_list { + struct poll_list *next; + int len; + struct pollfd entries[0]; }; -struct pts_mount_opts { - int setuid; - int setgid; - kuid_t uid; - kgid_t gid; - umode_t mode; - umode_t ptmxmode; - int reserve; - int max; +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 pts_fs_info { - struct ida allocated_ptys; - struct pts_mount_opts mount_opts; - struct super_block *sb; - struct dentry *ptmx_dentry; +struct sysctl_alias { + const char *kernel_param; + const char *sysctl_param; }; enum { - FILE_ATTR_READONLY = 1, - FILE_ATTR_HIDDEN = 2, - FILE_ATTR_SYSTEM = 4, - FILE_ATTR_DIRECTORY = 16, - FILE_ATTR_ARCHIVE = 32, - FILE_ATTR_DEVICE = 64, - FILE_ATTR_NORMAL = 128, - FILE_ATTR_TEMPORARY = 256, - FILE_ATTR_SPARSE_FILE = 512, - FILE_ATTR_REPARSE_POINT = 1024, - FILE_ATTR_COMPRESSED = 2048, - FILE_ATTR_OFFLINE = 4096, - FILE_ATTR_NOT_CONTENT_INDEXED = 8192, - FILE_ATTR_ENCRYPTED = 16384, - FILE_ATTR_VALID_FLAGS = 32695, - FILE_ATTR_VALID_SET_FLAGS = 12711, - FILE_ATTR_DUP_FILE_NAME_INDEX_PRESENT = 268435456, - FILE_ATTR_DUP_VIEW_INDEX_PRESENT = 536870912, + BLOCK_BITMAP = 0, + INODE_BITMAP = 1, + INODE_TABLE = 2, + GROUP_TABLE_COUNT = 3, }; -typedef void (*btf_trace_kyber_latency)(void *, dev_t, const char *, const char *, unsigned int, unsigned int, unsigned int, unsigned int); +struct ext4_rcu_ptr { + struct callback_head rcu; + void *ptr; +}; -typedef void (*btf_trace_kyber_adjust)(void *, dev_t, const char *, unsigned int); +struct ext4_new_flex_group_data { + struct ext4_new_group_data *groups; + __u16 *bg_flags; + ext4_group_t count; +}; -typedef void (*btf_trace_kyber_throttled)(void *, dev_t, const char *); +struct nfs_page_iter_page { + const struct nfs_page *req; + size_t count; +}; + +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 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 { - KYBER_READ = 0, - KYBER_WRITE = 1, - KYBER_DISCARD = 2, - KYBER_OTHER = 3, - KYBER_NUM_DOMAINS = 4, + Opt_find_uid = 0, + Opt_find_gid = 1, + Opt_find_user = 2, + Opt_find_group = 3, + Opt_find_err = 4, +}; + +struct bud_entry { + struct list_head list; + struct ubifs_bud *bud; + long: 32; + unsigned long long sqnum; + int free; + int dirty; +}; + +struct replay_entry { + int lnum; + int offs; + int len; + u8 hash[0]; + unsigned int deletion: 1; + unsigned long long sqnum; + struct list_head list; + union ubifs_key key; + union { + struct fscrypt_name nm; + struct { + loff_t old_size; + loff_t new_size; + }; + }; +}; + +struct msg; + +struct msqid_ds { + struct ipc_perm msg_perm; + struct msg *msg_first; + struct msg *msg_last; + __kernel_old_time_t msg_stime; + __kernel_old_time_t msg_rtime; + __kernel_old_time_t msg_ctime; + unsigned long msg_lcbytes; + unsigned long msg_lqbytes; + unsigned short msg_cbytes; + unsigned short msg_qnum; + unsigned short msg_qbytes; + __kernel_ipc_pid_t msg_lspid; + __kernel_ipc_pid_t msg_lrpid; }; -enum { - KYBER_TOTAL_LATENCY = 0, - KYBER_IO_LATENCY = 1, +struct msgbuf { + __kernel_long_t mtype; + char mtext[1]; }; -enum { - KYBER_LATENCY_SHIFT = 2, - KYBER_GOOD_BUCKETS = 4, - KYBER_LATENCY_BUCKETS = 8, +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: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; }; -enum { - KYBER_ASYNC_PERCENT = 75, +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 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 msg_sender { + struct list_head list; + struct task_struct *tsk; + size_t msgsz; }; -struct trace_event_raw_kyber_adjust { - struct trace_entry ent; - dev_t dev; - char domain[16]; - unsigned int depth; - char __data[0]; +struct msqid64_ds { + struct ipc64_perm msg_perm; + unsigned long msg_stime; + unsigned long msg_stime_high; + unsigned long msg_rtime; + unsigned long msg_rtime_high; + unsigned long msg_ctime; + unsigned long msg_ctime_high; + 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 trace_event_raw_kyber_throttled { - struct trace_entry ent; - dev_t dev; - char domain[16]; - char __data[0]; +struct msginfo { + int msgpool; + int msgmap; + int msgmax; + int msgmnb; + int msgmni; + int msgssz; + int msgtql; + unsigned short msgseg; }; -struct kyber_cpu_latency { - atomic_t buckets[48]; +struct lzorle_ctx { + void *lzorle_comp_mem; }; -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 blk_rq_stat; + +struct blk_stat_callback { + struct list_head list; struct timer_list timer; - unsigned int latency_buckets[48]; - unsigned long latency_timeout[3]; - int domain_p99[3]; - long: 32; - u64 latency_targets[3]; + struct blk_rq_stat __attribute__((btf_type_tag("percpu"))) *cpu_stat; + int (*bucket_fn)(const struct request *); + unsigned int buckets; + struct blk_rq_stat *stat; + void (*timer_fn)(struct blk_stat_callback *); + void *data; + struct callback_head rcu; }; -struct kyber_ctx_queue { - spinlock_t lock; - struct list_head rq_list[4]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct blk_rq_stat { + u64 mean; + u64 min; + u64 max; + u32 nr_samples; long: 32; + u64 batch; }; -struct kyber_hctx_data { +struct blk_queue_stats { + struct list_head callbacks; 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]; + int accounting; }; -struct flush_kcq_data { - struct kyber_hctx_data *khd; - unsigned int sched_domain; - struct list_head *list; +enum bfqq_state_flags { + BFQQF_just_created = 0, + BFQQF_busy = 1, + BFQQF_wait_request = 2, + BFQQF_non_blocking_wait_rq = 3, + BFQQF_fifo_expire = 4, + BFQQF_has_short_ttime = 5, + BFQQF_sync = 6, + BFQQF_IO_bound = 7, + BFQQF_in_large_burst = 8, + BFQQF_softrt_update = 9, + BFQQF_coop = 10, + BFQQF_split_coop = 11, }; -struct trace_event_data_offsets_kyber_latency {}; - -struct trace_event_data_offsets_kyber_adjust {}; - -struct trace_event_data_offsets_kyber_throttled {}; - -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; -}; +typedef struct tree_desc_s tree_desc; typedef struct { FSE_CTable CTable[59]; @@ -160431,17 +162893,46 @@ typedef enum { HUF_fourStreams = 1, } HUF_nbStreams_e; -struct mbi_range { - u32 spi_start; - u32 nr_spis; - unsigned long *bm; +typedef unsigned int FSE_DTable; + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; + +typedef struct { + unsigned short newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; + +typedef struct { + short ncount[256]; + FSE_DTable dtable[0]; +} FSE_DecompressWksp; + +typedef struct { + size_t state; + const void *table; +} FSE_DState_t; + +struct vic_device { + void *base; + int irq; + u32 valid_sources; + u32 resume_sources; + u32 resume_irqs; + u32 int_select; + u32 int_enable; + u32 soft_int; + u32 protect; + struct irq_domain *domain; }; -struct phy_lookup { - struct list_head node; - const char *dev_id; - const char *con_id; - struct phy *phy; +struct phy_berlin_usb_priv { + void *base; + struct reset_control *rst_ctrl; + u32 pll_divider; }; struct phy_gmii_sel_soc_data { @@ -160472,6 +162963,7 @@ struct phy_gmii_sel_priv { u32 num_ports; u32 reg_offset; u32 qsgmii_main_ports; + bool no_offset; }; struct phy_gmii_sel_phy_priv { @@ -160483,1174 +162975,1437 @@ struct phy_gmii_sel_phy_priv { struct regmap_field *fields[3]; }; -struct sh_pfc_pin_config; +enum s500_pinconf_pull { + OWL_PINCONF_PULL_DOWN = 0, + OWL_PINCONF_PULL_UP = 1, +}; -struct sh_pfc_pinctrl { - struct pinctrl_dev *pctl; - struct pinctrl_desc pctl_desc; - struct sh_pfc *pfc; - struct pinctrl_pin_desc *pins; - struct sh_pfc_pin_config *configs; +struct nsp_pin { + unsigned int pin; + char *name; + unsigned int gpio_select; }; -struct sh_pfc_pin_config { - u16 gpio_enabled: 1; - u16 mux_mark: 15; +struct nsp_mux { + unsigned int base; + unsigned int shift; + unsigned int mask; + unsigned int alt; }; -struct gpio_get_config { - u32 gpio; - u32 direction; - u32 polarity; - u32 term_en; - u32 term_pull_up; +struct nsp_pin_group { + const char *name; + const unsigned int *pins; + const unsigned int num_pins; + const struct nsp_mux mux; }; -struct rpi_exp_gpio { - struct gpio_chip gc; - struct rpi_firmware *fw; +struct nsp_pin_function { + const char *name; + const char * const *groups; + const unsigned int num_groups; }; -struct gpio_set_config { - u32 gpio; - u32 direction; - u32 polarity; - u32 term_en; - u32 term_pull_up; - u32 state; +struct nsp_mux_log; + +struct nsp_pinctrl { + struct pinctrl_dev *pctl; + struct device *dev; + void *base0; + void *base1; + void *base2; + const struct nsp_pin_group *groups; + unsigned int num_groups; + const struct nsp_pin_function *functions; + unsigned int num_functions; + struct nsp_mux_log *mux_log; + spinlock_t lock; }; -struct gpio_get_set_state { - u32 gpio; - u32 state; +struct nsp_mux_log { + struct nsp_mux mux; + bool is_configured; }; -struct tegra_pwm_soc { - unsigned int num_channels; - unsigned long max_frequency; +enum uniphier_pin_pull_dir { + UNIPHIER_PIN_PULL_UP = 0, + UNIPHIER_PIN_PULL_DOWN = 1, + UNIPHIER_PIN_PULL_UP_FIXED = 2, + UNIPHIER_PIN_PULL_DOWN_FIXED = 3, + UNIPHIER_PIN_PULL_NONE = 4, }; -struct tegra_pwm_chip { - struct pwm_chip chip; - struct device *dev; - struct clk *clk; - struct reset_control *rst; - unsigned long clk_rate; - unsigned long min_period_ns; - void *regs; - const struct tegra_pwm_soc *soc; +enum uniphier_pin_drv_type { + UNIPHIER_PIN_DRV_1BIT = 0, + UNIPHIER_PIN_DRV_2BIT = 1, + UNIPHIER_PIN_DRV_3BIT = 2, + UNIPHIER_PIN_DRV_FIXED4 = 3, + UNIPHIER_PIN_DRV_FIXED5 = 4, + UNIPHIER_PIN_DRV_FIXED8 = 5, + UNIPHIER_PIN_DRV_NONE = 6, }; -enum iproc_msi_reg { - IPROC_MSI_EQ_PAGE = 0, - IPROC_MSI_EQ_PAGE_UPPER = 1, - IPROC_MSI_PAGE = 2, - IPROC_MSI_PAGE_UPPER = 3, - IPROC_MSI_CTRL = 4, - IPROC_MSI_EQ_HEAD = 5, - IPROC_MSI_EQ_TAIL = 6, - IPROC_MSI_INTS_EN = 7, - IPROC_MSI_REG_SIZE = 8, +struct uniphier_pinctrl_reg_region { + struct list_head node; + unsigned int base; + unsigned int nregs; + u32 vals[0]; }; -struct iproc_msi_grp; +struct uniphier_pinctrl_priv { + struct pinctrl_desc pctldesc; + struct pinctrl_dev *pctldev; + struct regmap *regmap; + const struct uniphier_pinctrl_socdata *socdata; + struct list_head reg_regions; +}; -struct iproc_msi { - struct iproc_pcie *pcie; - const u16 (*reg_offsets)[8]; - struct iproc_msi_grp *grps; - int nr_irqs; - int nr_cpus; - bool has_inten_reg; - unsigned long *bitmap; - struct mutex bitmap_lock; - unsigned int nr_msi_vecs; - struct irq_domain *inner_domain; - struct irq_domain *msi_domain; - unsigned int nr_eq_region; - unsigned int nr_msi_region; - void *eq_cpu; - dma_addr_t eq_dma; - phys_addr_t msi_addr; +struct ls_pcie_drvdata { + const u32 pf_off; + bool pm_support; }; -struct iproc_msi_grp { - struct iproc_msi *msi; - int gic_irq; - unsigned int eq; +struct ls_pcie { + struct dw_pcie *pci; + const struct ls_pcie_drvdata *drvdata; + void *pf_base; + bool big_endian; }; -struct clk_generated { +struct u32_fract { + __u32 numerator; + __u32 denominator; +}; + +struct clk_master { struct clk_hw hw; struct regmap *regmap; - struct clk_range range; spinlock_t *lock; - u32 *mux_table; - u32 id; - u32 gckdiv; - const struct clk_pcr_layout *layout; + const struct clk_master_layout *layout; + const struct clk_master_characteristics *characteristics; struct at91_clk_pms pms; - u8 parent_id; + u32 *mux_table; + u32 mckr; int chg_pid; + u8 id; + u8 parent; + u8 div; + u32 safe_div; }; -struct bcm2835_cprman; +struct mmp_clk_factor { + struct clk_hw hw; + void *base; + struct mmp_clk_factor_masks *masks; + struct mmp_clk_factor_tbl *ftbl; + unsigned int ftbl_cnt; + spinlock_t *lock; +}; -struct bcm2835_clk_desc { - struct clk_hw * (*clk_register)(struct bcm2835_cprman *, const void *); - unsigned int supported; - const void *data; +enum exynos5410_plls { + apll___4 = 0, + cpll___3 = 1, + epll___4 = 2, + mpll___4 = 3, + bpll___3 = 4, + kpll___2 = 5, + nr_plls___4 = 6, }; -struct bcm2835_cprman { +struct ti_adpll_platform_data { + const bool is_type_s; + const int nr_max_inputs; + const int nr_max_outputs; + const int output_index; +}; + +enum ti_adpll_clocks { + TI_ADPLL_DCO = 0, + TI_ADPLL_DCO_GATE = 1, + TI_ADPLL_N2 = 2, + TI_ADPLL_M2 = 3, + TI_ADPLL_M2_GATE = 4, + TI_ADPLL_BYPASS = 5, + TI_ADPLL_HIF = 6, + TI_ADPLL_DIV2 = 7, + TI_ADPLL_CLKOUT = 8, + TI_ADPLL_CLKOUT2 = 9, + TI_ADPLL_M3 = 10, +}; + +enum ti_adpll_inputs { + TI_ADPLL_CLKINP = 0, + TI_ADPLL_CLKINPULOW = 1, + TI_ADPLL_CLKINPHIF = 2, +}; + +enum ti_adpll_s_outputs { + TI_ADPLL_S_DCOCLKLDO = 0, + TI_ADPLL_S_CLKOUT = 1, + TI_ADPLL_S_CLKOUTX2 = 2, + TI_ADPLL_S_CLKOUTHIF = 3, +}; + +enum ti_adpll_lj_outputs { + TI_ADPLL_LJ_CLKDCOLDO = 0, + TI_ADPLL_LJ_CLKOUT = 1, + TI_ADPLL_LJ_CLKOUTLDO = 2, +}; + +struct ti_adpll_dco_data { + struct clk_hw hw; +}; + +struct ti_adpll_clock; + +struct ti_adpll_data { struct device *dev; + const struct ti_adpll_platform_data *c; + struct device_node *np; + unsigned long pa; + void *iobase; void *regs; - spinlock_t regs_lock; - unsigned int soc; - const char *real_parent_names[7]; - struct clk_hw_onecell_data onecell; + spinlock_t lock; + const char *parent_names[3]; + struct clk *parent_clocks[3]; + struct ti_adpll_clock *clocks; + struct clk_onecell_data outputs; + struct ti_adpll_dco_data dco; }; -struct bcm2835_pll_ana_bits { - u32 mask0; - u32 set0; - u32 mask1; - u32 set1; - u32 mask3; - u32 set3; - u32 fb_prediv_mask; +struct ti_adpll_clock { + struct clk *clk; + struct clk_lookup *cl; + void (*unregister)(struct clk *); }; -struct cprman_plat_data { - unsigned int soc; +struct ti_adpll_clkout_data { + struct ti_adpll_data *adpll; + struct clk_gate gate; + struct clk_hw hw; }; -struct bcm2835_pll_data; +struct sdma_script_start_addrs; -struct bcm2835_pll { - struct clk_hw hw; - struct bcm2835_cprman *cprman; - const struct bcm2835_pll_data *data; +struct sdma_driver_data { + int chnenbl0; + int num_events; + struct sdma_script_start_addrs *script_addrs; + bool check_ratio; + bool ecspi_fixed; }; -struct bcm2835_pll_data { - const char *name; - u32 cm_ctrl_reg; - u32 a2w_ctrl_reg; - u32 frac_reg; - u32 ana_reg_base; - u32 reference_enable_mask; - u32 lock_mask; - u32 flags; - const struct bcm2835_pll_ana_bits *ana; - unsigned long min_rate; - unsigned long max_rate; - unsigned long max_fb_rate; +struct sdma_script_start_addrs { + s32 ap_2_ap_addr; + s32 ap_2_bp_addr; + s32 ap_2_ap_fixed_addr; + s32 bp_2_ap_addr; + s32 loopback_on_dsp_side_addr; + s32 mcu_interrupt_only_addr; + s32 firi_2_per_addr; + s32 firi_2_mcu_addr; + s32 per_2_firi_addr; + s32 mcu_2_firi_addr; + s32 uart_2_per_addr; + s32 uart_2_mcu_addr; + s32 per_2_app_addr; + s32 mcu_2_app_addr; + s32 per_2_per_addr; + s32 uartsh_2_per_addr; + s32 uartsh_2_mcu_addr; + s32 per_2_shp_addr; + s32 mcu_2_shp_addr; + s32 ata_2_mcu_addr; + s32 mcu_2_ata_addr; + s32 app_2_per_addr; + s32 app_2_mcu_addr; + s32 shp_2_per_addr; + s32 shp_2_mcu_addr; + s32 mshc_2_mcu_addr; + s32 mcu_2_mshc_addr; + s32 spdif_2_mcu_addr; + s32 mcu_2_spdif_addr; + s32 asrc_2_mcu_addr; + s32 ext_mem_2_ipu_addr; + s32 descrambler_addr; + s32 dptc_dvfs_addr; + s32 utra_addr; + s32 ram_code_start_addr; + s32 mcu_2_ssish_addr; + s32 ssish_2_mcu_addr; + s32 hdmi_dma_addr; + s32 zcanfd_2_mcu_addr; + s32 zqspi_2_mcu_addr; + s32 mcu_2_ecspi_addr; + s32 mcu_2_sai_addr; + s32 sai_2_mcu_addr; + s32 uart_2_mcu_rom_addr; + s32 uartsh_2_mcu_rom_addr; + s32 mcu_2_zqspi_addr; }; -struct bcm2835_pll_divider_data; +enum imx_dma_prio { + DMA_PRIO_HIGH = 0, + DMA_PRIO_MEDIUM = 1, + DMA_PRIO_LOW = 2, +}; -struct bcm2835_pll_divider { - struct clk_divider div; - struct bcm2835_cprman *cprman; - const struct bcm2835_pll_divider_data *data; +struct sdma_desc; + +struct sdma_engine; + +struct sdma_channel { + struct virt_dma_chan vc; + struct sdma_desc *desc; + struct sdma_engine *sdma; + unsigned int channel; + enum dma_transfer_direction direction; + struct dma_slave_config slave_config; + enum sdma_peripheral_type peripheral_type; + unsigned int event_id0; + unsigned int event_id1; + enum dma_slave_buswidth word_size; + unsigned int pc_from_device; + unsigned int pc_to_device; + unsigned int device_to_device; + unsigned int pc_to_pc; + unsigned long flags; + dma_addr_t per_address; + dma_addr_t per_address2; + unsigned long event_mask[2]; + unsigned long watermark_level; + u32 shp_addr; + u32 per_addr; + enum dma_status status; + struct imx_dma_data data; + struct work_struct terminate_worker; + struct list_head terminated; + bool is_ram_script; + unsigned int n_fifos_src; + unsigned int n_fifos_dst; + unsigned int stride_fifos_src; + unsigned int stride_fifos_dst; + unsigned int words_per_fifo; + bool sw_done; }; -struct bcm2835_pll_divider_data { - const char *name; - const char *source_pll; - u32 cm_reg; - u32 a2w_reg; - u32 load_mask; - u32 hold_mask; - u32 fixed_divider; - u32 flags; +struct sdma_buffer_descriptor; + +struct sdma_desc { + struct virt_dma_desc vd; + unsigned int num_bd; + dma_addr_t bd_phys; + unsigned int buf_tail; + unsigned int buf_ptail; + unsigned int period_len; + unsigned int chn_real_count; + unsigned int chn_count; + struct sdma_channel *sdmac; + struct sdma_buffer_descriptor *bd; }; -struct bcm2835_clock_data; +struct sdma_mode_count { + u32 count: 16; + u32 status: 8; + u32 command: 8; +}; -struct bcm2835_clock { - struct clk_hw hw; - struct bcm2835_cprman *cprman; - const struct bcm2835_clock_data *data; +struct sdma_buffer_descriptor { + struct sdma_mode_count mode; + u32 buffer_addr; + u32 ext_buffer_addr; }; -struct bcm2835_clock_data { - const char *name; - const char * const *parents; - int num_mux_parents; - unsigned int set_rate_parent; - u32 ctl_reg; - u32 div_reg; - u32 int_bits; - u32 frac_bits; - u32 flags; - bool is_vpu_clock; - bool is_mash_clock; - bool low_jitter; - u32 tcnt_mux; - bool round_up; +struct sdma_channel_control; + +struct sdma_context_data; + +struct sdma_engine { + struct device *dev; + struct sdma_channel channel[32]; + struct sdma_channel_control *channel_control; + void *regs; + struct sdma_context_data *context; + dma_addr_t context_phys; + struct dma_device dma_device; + struct clk *clk_ipg; + struct clk *clk_ahb; + spinlock_t channel_0_lock; + u32 script_number; + struct sdma_script_start_addrs *script_addrs; + const struct sdma_driver_data *drvdata; + u32 spba_start_addr; + u32 spba_end_addr; + unsigned int irq; + dma_addr_t bd0_phys; + struct sdma_buffer_descriptor *bd0; + bool clk_ratio; + bool fw_loaded; }; -struct bcm2835_gate_data { - const char *name; - const char *parent; - u32 ctl_reg; +struct sdma_channel_control { + u32 current_bd_ptr; + u32 base_bd_ptr; + u32 unused[2]; }; -struct mmp_clk_factor { - struct clk_hw hw; - void *base; - struct mmp_clk_factor_masks *masks; - struct mmp_clk_factor_tbl *ftbl; - unsigned int ftbl_cnt; - spinlock_t *lock; +struct sdma_state_registers { + u32 pc: 14; + u32 unused1: 1; + u32 t: 1; + u32 rpc: 14; + u32 unused0: 1; + u32 sf: 1; + u32 spc: 14; + u32 unused2: 1; + u32 df: 1; + u32 epc: 14; + u32 lm: 2; }; -struct mmc_phase { - struct clk_hw hw; - u8 offset; - void *reg; - spinlock_t *lock; +struct sdma_context_data { + struct sdma_state_registers channel_state; + u32 gReg[8]; + u32 mda; + u32 msa; + u32 ms; + u32 md; + u32 pda; + u32 psa; + u32 ps; + u32 pd; + u32 ca; + u32 cs; + u32 dda; + u32 dsa; + u32 ds; + u32 dd; + u32 scratch0; + u32 scratch1; + u32 scratch2; + u32 scratch3; + u32 scratch4; + u32 scratch5; + u32 scratch6; + u32 scratch7; }; -struct sun4i_dma_pchan; +struct sdma_firmware_header { + u32 magic; + u32 version_major; + u32 version_minor; + u32 script_addrs_start; + u32 num_script_addrs; + u32 ram_code_start; + u32 ram_code_size; +}; -struct sun4i_dma_promise; +struct sdma_peripheral_config { + int n_fifos_src; + int n_fifos_dst; + int stride_fifos_src; + int stride_fifos_dst; + int words_per_fifo; + bool sw_done; +}; -struct sun4i_dma_contract; +struct smem_partition { + void *virt_base; + phys_addr_t phys_base; + size_t cacheline; + size_t size; +}; -struct sun4i_dma_vchan { - struct virt_dma_chan vc; - struct dma_slave_config cfg; - struct sun4i_dma_pchan *pchan; - struct sun4i_dma_promise *processing; - struct sun4i_dma_contract *contract; - u8 endpoint; - int is_dedicated; +struct smem_region { + phys_addr_t aux_base; + void *virt_base; + size_t size; }; -struct sun4i_dma_pchan { - void *base; - struct sun4i_dma_vchan *vchan; - int is_dedicated; +struct smem_ptable; + +struct qcom_smem { + struct device *dev; + struct hwspinlock *hwlock; + u32 item_count; + struct platform_device *socinfo; + struct smem_ptable *ptable; + struct smem_partition global_partition; + struct smem_partition partitions[20]; + unsigned int num_regions; + struct smem_region regions[0]; }; -struct sun4i_dma_promise { - u32 cfg; - u32 para; - dma_addr_t src; - dma_addr_t dst; - size_t len; - struct list_head list; +struct smem_ptable_entry { + __le32 offset; + __le32 size; + __le32 flags; + __le16 host0; + __le16 host1; + __le32 cacheline; + __le32 reserved[7]; }; -struct sun4i_dma_contract { - struct virt_dma_desc vd; - struct list_head demands; - struct list_head completed_demands; - bool is_cyclic: 1; - bool use_half_int: 1; +struct smem_ptable { + u8 magic[4]; + __le32 version; + __le32 num_entries; + __le32 reserved[5]; + struct smem_ptable_entry entry[0]; }; -struct sun4i_dma_dev { - unsigned long pchans_used[1]; - struct dma_device slave; - struct sun4i_dma_pchan *pchans; - struct sun4i_dma_vchan *vchans; - void *base; - struct clk *clk; - int irq; - spinlock_t lock; +struct smem_partition_header { + u8 magic[4]; + __le16 host0; + __le16 host1; + __le32 size; + __le32 offset_free_uncached; + __le32 offset_free_cached; + __le32 reserved[3]; }; -struct bcm_pmb_pd_data { - const char * const name; - int id; - u8 bus; - u8 device; +struct smem_info { + u8 magic[4]; + __le32 size; + __le32 base_addr; + __le32 reserved; + __le16 num_items; }; -struct bcm_pmb; +struct smem_global_entry { + __le32 allocated; + __le32 offset; + __le32 size; + __le32 aux_base; +}; -struct bcm_pmb_pm_domain { - struct bcm_pmb *pmb; - const struct bcm_pmb_pd_data *data; - struct generic_pm_domain genpd; +struct smem_proc_comm { + __le32 command; + __le32 status; + __le32 params[2]; }; -struct bcm_pmb { - struct device *dev; - void *base; - spinlock_t lock; - bool little_endian; - struct genpd_onecell_data genpd_onecell_data; +struct smem_header { + struct smem_proc_comm proc_comm[4]; + __le32 version[32]; + __le32 initialized; + __le32 free_offset; + __le32 available; + __le32 reserved; + struct smem_global_entry toc[512]; }; -enum pd_types { - PD_NORMAL = 0, - PD_CPU = 1, - PD_CONSOLE = 2, - PD_DEBUG = 3, - PD_MEMCTL = 4, +struct smem_private_entry { + u16 canary; + __le16 item; + __le32 size; + __le16 padding_data; + __le16 padding_hdr; + __le32 reserved; }; -struct special_pd { - struct device_node *pd; - enum pd_types type; +struct socinfo { + __le32 fmt; + __le32 id; + __le32 ver; + char build_id[32]; + __le32 raw_id; + __le32 raw_ver; + __le32 hw_plat; + __le32 plat_ver; + __le32 accessory_chip; + __le32 hw_plat_subtype; + __le32 pmic_model; + __le32 pmic_die_rev; + __le32 pmic_model_1; + __le32 pmic_die_rev_1; + __le32 pmic_model_2; + __le32 pmic_die_rev_2; + __le32 foundry_id; + __le32 serial_num; + __le32 num_pmics; + __le32 pmic_array_offset; + __le32 chip_family; + __le32 raw_device_family; + __le32 raw_device_num; + __le32 nproduct_id; + char chip_id[32]; + __le32 num_clusters; + __le32 ncluster_array_offset; + __le32 num_subset_parts; + __le32 nsubset_parts_array_offset; + __le32 nmodem_supported; + __le32 feature_code; + __le32 pcode; + __le32 npartnamemap_offset; + __le32 nnum_partname_mapping; + __le32 oem_variant; + __le32 num_kvps; + __le32 kvps_offset; + __le32 num_func_clusters; + __le32 boot_cluster; + __le32 boot_core; }; -struct rmobile_pm_domain { - struct generic_pm_domain genpd; - struct dev_power_governor *gov; - int (*suspend)(); - void *base; - unsigned int bit_shift; +struct scp_ctrl_reg { + int pwr_sta_offs; + int pwr_sta2nd_offs; }; -struct virtio_pci_modern_common_cfg { - struct virtio_pci_common_cfg cfg; - __le16 queue_notify_data; - __le16 queue_reset; +struct scp_domain_data; + +struct scp_subdomain; + +struct scp_soc_data { + const struct scp_domain_data *domains; + int num_domains; + const struct scp_subdomain *subdomains; + int num_subdomains; + const struct scp_ctrl_reg regs; + bool bus_prot_reg_update; }; -enum max77686_regulators { - MAX77686_LDO1 = 0, - MAX77686_LDO2 = 1, - MAX77686_LDO3 = 2, - MAX77686_LDO4 = 3, - MAX77686_LDO5 = 4, - MAX77686_LDO6 = 5, - MAX77686_LDO7 = 6, - MAX77686_LDO8 = 7, - MAX77686_LDO9 = 8, - MAX77686_LDO10 = 9, - MAX77686_LDO11 = 10, - MAX77686_LDO12 = 11, - MAX77686_LDO13 = 12, - MAX77686_LDO14 = 13, - MAX77686_LDO15 = 14, - MAX77686_LDO16 = 15, - MAX77686_LDO17 = 16, - MAX77686_LDO18 = 17, - MAX77686_LDO19 = 18, - MAX77686_LDO20 = 19, - MAX77686_LDO21 = 20, - MAX77686_LDO22 = 21, - MAX77686_LDO23 = 22, - MAX77686_LDO24 = 23, - MAX77686_LDO25 = 24, - MAX77686_LDO26 = 25, - MAX77686_BUCK1 = 26, - MAX77686_BUCK2 = 27, - MAX77686_BUCK3 = 28, - MAX77686_BUCK4 = 29, - MAX77686_BUCK5 = 30, - MAX77686_BUCK6 = 31, - MAX77686_BUCK7 = 32, - MAX77686_BUCK8 = 33, - MAX77686_BUCK9 = 34, - MAX77686_REG_MAX = 35, +enum clk_id___2 { + CLK_NONE = 0, + CLK_MM = 1, + CLK_MFG = 2, + CLK_VENC = 3, + CLK_VENC_LT = 4, + CLK_ETHIF = 5, + CLK_VDEC = 6, + CLK_HIFSEL = 7, + CLK_JPGDEC = 8, + CLK_AUDIO = 9, + CLK_MAX = 10, +}; + +struct scp_domain_data { + const char *name; + u32 sta_mask; + int ctl_offs; + u32 sram_pdn_bits; + u32 sram_pdn_ack_bits; + u32 bus_prot_mask; + enum clk_id___2 clk_id[3]; + u8 caps; }; -struct max77686_data { - struct device *dev; - unsigned long gpio_enabled[2]; - unsigned int opmode[35]; +struct scp_subdomain { + int origin; + int subdomain; }; -struct reset_props { - u32 protect_reg; - u32 protect_bit; - u32 reset_reg; - u32 reset_bit; -}; +struct scp; -struct mchp_reset_context { - struct regmap *cpu_ctrl; - struct regmap *gcb_ctrl; - struct reset_controller_dev rcdev; - const struct reset_props *props; +struct scp_domain { + struct generic_pm_domain genpd; + struct scp *scp; + struct clk *clk[3]; + const struct scp_domain_data *data; + struct regulator *supply; }; -struct serial_ctrl_device { - struct device dev; - struct ida port_ida; - long: 32; +struct scp { + struct scp_domain *domains; + struct genpd_onecell_data pd_data; + struct device *dev; + void *base; + struct regmap *infracfg; + struct scp_ctrl_reg ctrl_reg; + bool bus_prot_reg_update; }; -struct uart_match { - struct uart_port *port; - struct uart_driver *driver; +struct da9210_pdata { + struct regulator_init_data da9210_constraints; }; -struct memdev { - const char *name; - umode_t mode; - const struct file_operations *fops; - fmode_t fmode; +struct da9210 { + struct regulator_dev *rdev; + struct regmap *regmap; }; -struct analog_param_range { - unsigned int min; - unsigned int typ; - unsigned int max; +enum { + ERASE = 0, + WERASE = 1, + KILL = 2, }; -struct analog_param_field { - unsigned int even; - unsigned int odd; +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[8]; + unsigned long overrun_time; + unsigned int num_overrun; + bool no_room; + unsigned char lnext: 1; + unsigned char erasing: 1; + unsigned char raw: 1; + unsigned char real_raw: 1; + unsigned char icanon: 1; + unsigned char push: 1; + u8 read_buf[4096]; + unsigned long read_flags[128]; + u8 echo_buf[4096]; + size_t read_tail; + size_t line_start; + size_t lookahead_count; + unsigned int column; + unsigned int canon_column; + size_t echo_tail; + struct mutex atomic_read_lock; + struct mutex output_lock; }; -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 ports_driver_data { + struct dentry *debugfs_dir; + struct list_head portdevs; + struct list_head consoles; }; -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; +struct console___2 { + struct list_head list; + struct hvc_struct *hvc; + struct winsize ws; + u32 vtermno; }; -enum drm_mode_analog { - DRM_MODE_ANALOG_NTSC = 0, - DRM_MODE_ANALOG_PAL = 1, +struct port_stats { + unsigned long bytes_sent; + unsigned long bytes_received; + unsigned long bytes_discarded; }; -struct twl4030_script; +struct ports_device; -struct twl4030_resconfig; +struct port_buffer; -struct twl4030_power_data { - struct twl4030_script **scripts; - unsigned int num; - struct twl4030_resconfig *resource_config; - struct twl4030_resconfig *board_config; - bool use_poweroff; - bool ac_charger_quirk; +struct port { + 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 twl4030_ins; - -struct twl4030_script { - struct twl4030_ins *script; - unsigned int size; - u8 flags; +struct virtio_console_control { + __virtio32 id; + __virtio16 event; + __virtio16 value; }; -struct twl4030_ins { - u16 pmb_message; - u8 delay; +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 twl4030_resconfig { - u8 resource; - u8 devgroup; - u8 type; - u8 type2; - u8 remap_off; - u8 remap_sleep; +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]; }; -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 sg_list { + unsigned int n; + unsigned int size; + size_t len; + struct scatterlist *sg; +}; -struct ata_force_param { +struct drm_conn_prop_enum_list { + int type; 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 ida ida; }; -struct ata_force_ent { - int port; - int device; - struct ata_force_param param; +struct drm_mode_connector_set_property { + __u64 value; + __u32 prop_id; + __u32 connector_id; }; -struct ata_xfer_ent { - int shift; - int bits; - u8 base; +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 ata_blacklist_entry { - const char *model_num; - const char *model_rev; - unsigned long horkage; -}; +typedef void (*btf_trace_drm_vblank_event)(void *, int, unsigned int, ktime_t, bool); -enum ata_xfer_mask { - ATA_MASK_PIO = 127, - ATA_MASK_MWDMA = 3968, - ATA_MASK_UDMA = 1044480, -}; +typedef void (*btf_trace_drm_vblank_event_queued)(void *, struct drm_file *, int, unsigned int); -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]; -}; +typedef void (*btf_trace_drm_vblank_event_delivered)(void *, struct drm_file *, int, unsigned int); -struct trace_event_raw_ata_qc_complete_template { +struct trace_event_raw_drm_vblank_event { 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; + int crtc; + unsigned int seq; + ktime_t time; + bool high_prec; char __data[0]; + long: 32; }; -struct trace_event_raw_ata_tf_load { +struct trace_event_raw_drm_vblank_event_queued { 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; + struct drm_file *file; + int crtc; + unsigned int seq; char __data[0]; }; -struct trace_event_raw_ata_exec_command_template { +struct trace_event_raw_drm_vblank_event_delivered { struct trace_entry ent; - unsigned int ata_port; - unsigned int tag; - unsigned char cmd; - unsigned char feature; - unsigned char hob_nsect; - unsigned char proto; + struct drm_file *file; + int crtc; + unsigned int seq; 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_data_offsets_drm_vblank_event {}; -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_data_offsets_drm_vblank_event_queued {}; -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_data_offsets_drm_vblank_event_delivered {}; -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]; +enum { + MIPI_DSI_RX_ACKNOWLEDGE_AND_ERROR_REPORT = 2, + MIPI_DSI_RX_END_OF_TRANSMISSION = 8, + MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_1BYTE = 17, + MIPI_DSI_RX_GENERIC_SHORT_READ_RESPONSE_2BYTE = 18, + MIPI_DSI_RX_GENERIC_LONG_READ_RESPONSE = 26, + MIPI_DSI_RX_DCS_LONG_READ_RESPONSE = 28, + MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_1BYTE = 33, + MIPI_DSI_RX_DCS_SHORT_READ_RESPONSE_2BYTE = 34, }; -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]; +enum tegra_dsi_format { + TEGRA_DSI_FORMAT_16P = 0, + TEGRA_DSI_FORMAT_18NP = 1, + TEGRA_DSI_FORMAT_18P = 2, + TEGRA_DSI_FORMAT_24P = 3, }; -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 tegra_dsi { + struct host1x_client client; + struct tegra_output output; + struct device *dev; + void *regs; + struct reset_control *rst; + struct clk *clk_parent; + struct clk *clk_lp; + struct clk *clk; + struct drm_info_list *debugfs_files; + unsigned long flags; + enum mipi_dsi_pixel_format format; + unsigned int lanes; + struct tegra_mipi_device *mipi; + struct mipi_dsi_host host; + struct regulator *vdd; + unsigned int video_fifo_depth; + unsigned int host_fifo_depth; + struct tegra_dsi *master; + struct tegra_dsi *slave; }; -struct trace_event_raw_ata_port_eh_begin_template { - struct trace_entry ent; - unsigned int ata_port; - char __data[0]; +struct tegra_dsi_state { + struct drm_connector_state base; + struct mipi_dphy_timing timing; + unsigned long period; + unsigned int vrefresh; + unsigned int lanes; + unsigned long pclk; + unsigned long bclk; + enum tegra_dsi_format format; + unsigned int mul; + unsigned int div; }; -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 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 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]; -}; +typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); -struct trace_event_raw_ata_sff_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned char hsm_state; - char __data[0]; +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 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 {}; +enum tps65090_cells { + PMIC = 0, + CHARGER = 1, +}; -struct trace_event_data_offsets_ata_eh_link_autopsy_qc {}; +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 trace_event_data_offsets_ata_eh_action_template {}; +struct ata_show_ering_arg { + char *buf; + int written; +}; -struct trace_event_data_offsets_ata_link_reset_begin_template {}; +struct tegra_ahci_ops; -struct trace_event_data_offsets_ata_link_reset_end_template {}; +struct tegra_ahci_regs; -struct trace_event_data_offsets_ata_port_eh_begin_template {}; +struct tegra_ahci_soc { + const char * const *supply_names; + u32 num_supplies; + bool supports_devslp; + bool has_sata_oob_rst; + const struct tegra_ahci_ops *ops; + const struct tegra_ahci_regs *regs; +}; -struct trace_event_data_offsets_ata_sff_hsm_template {}; +struct tegra_ahci_ops { + int (*init)(struct ahci_host_priv *); +}; -struct trace_event_data_offsets_ata_transfer_data_template {}; +struct tegra_ahci_regs { + unsigned int nvoob_comma_cnt_mask; + unsigned int nvoob_comma_cnt_val; +}; -struct trace_event_data_offsets_ata_sff_template {}; +struct sata_pad_calibration { + u8 gen1_tx_amp; + u8 gen1_tx_peak; + u8 gen2_tx_amp; + u8 gen2_tx_peak; +}; -struct pci_bits { - unsigned int reg; - unsigned int width; - unsigned long mask; - unsigned long val; +struct tegra_ahci_priv { + struct platform_device *pdev; + void *sata_regs; + void *sata_aux_regs; + struct reset_control *sata_rst; + struct reset_control *sata_oob_rst; + struct reset_control *sata_cold_rst; + struct clk *sata_clk; + struct regulator_bulk_data *supplies; + const struct tegra_ahci_soc *soc; }; -struct mtd_dev_param { - char name[64]; - int ubi_num; - int vid_hdr_offs; - int max_beb_per1024; - int enable_fm; +struct ubi_work { + struct list_head list; + int (*func)(struct ubi_device *, struct ubi_work *, int); + struct ubi_wl_entry *e; + int vol_id; + int lnum; + int torture; }; -struct ubi_notification { - struct ubi_device_info di; - long: 32; - struct ubi_volume_info vi; +struct davinci_spi_config { + u8 wdelay; + u8 odd_parity; + u8 parity_enable; + u8 io_type; + u8 timer_disable; + u8 c2tdelay; + u8 t2cdelay; + u8 t2edelay; + u8 c2edelay; }; -struct mdiobus_devres { - struct mii_bus *mii; +struct davinci_spi_of_data { + u8 version; + u8 prescaler_limit; }; -enum sgmii_speed { - SGMII_SPEED_10 = 0, - SGMII_SPEED_100 = 1, - SGMII_SPEED_1000 = 2, - SGMII_SPEED_2500 = 2, +enum { + SPI_VERSION_1 = 0, + SPI_VERSION_2 = 1, }; -struct lynx_pcs { - struct phylink_pcs pcs; - struct mdio_device *mdio; +struct davinci_spi_platform_data { + u8 version; + u8 num_chipselect; + u8 intr_line; + u8 prescaler_limit; + bool cshold_bug; + enum dma_event_q dma_event_q; }; -struct ks8851_net_spi { - struct ks8851_net ks8851; - struct mutex lock; - struct work_struct tx_work; - struct spi_device *spidev; - struct spi_message spi_msg1; - struct spi_message spi_msg2; - struct spi_transfer spi_xfer1; - struct spi_transfer spi_xfer2[2]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct davinci_spi { + struct spi_bitbang bitbang; + struct clk *clk; + u8 version; + resource_size_t pbase; + void *base; + u32 irq; + struct completion done; + const void *tx; + void *rx; + int rcount; + int wcount; + struct dma_chan *dma_rx; + struct dma_chan *dma_tx; + struct davinci_spi_platform_data pdata; + void (*get_rx)(u32, struct davinci_spi *); + u32 (*get_tx)(struct davinci_spi *); + u8 *bytes_per_word; + u8 prescaler_limit; }; -struct ethqos_emac_por; +struct fsl_pq_mii; -struct ethqos_emac_driver_data { - const struct ethqos_emac_por *por; - unsigned int num_por; - bool rgmii_config_loopback_en; - bool has_emac_ge_3; - const char *link_clk_name; - bool has_integrated_pcs; - struct dwmac4_addrs dwmac4_addrs; +struct fsl_pq_mdio_priv { + void *map; + struct fsl_pq_mii *regs; }; -struct ethqos_emac_por { - unsigned int offset; - unsigned int value; +struct fsl_pq_mii { + u32 miimcfg; + u32 miimcom; + u32 miimadd; + u32 miimcon; + u32 miimstat; + u32 miimind; }; -struct qcom_ethqos { - struct platform_device *pdev; - void *rgmii_base; - void *mac_base; - int (*configure_func)(struct qcom_ethqos *); - unsigned int link_clk_rate; - struct clk *link_clk; - struct phy *serdes_phy; - unsigned int speed; - int phy_mode; - const struct ethqos_emac_por *por; - unsigned int num_por; - bool rgmii_config_loopback_en; - bool has_emac_ge_3; +struct fsl_pq_mdio_data { + unsigned int mii_offset; + uint32_t * (*get_tbipa)(void *); + void (*ucc_configure)(phys_addr_t, phys_addr_t); }; -enum snoop_when { - SUBMIT = 0, - COMPLETE = 1, +enum E1000_INVM_STRUCTURE_TYPE { + E1000_INVM_UNINITIALIZED_STRUCTURE = 0, + E1000_INVM_WORD_AUTOLOAD_STRUCTURE = 1, + E1000_INVM_CSR_AUTOLOAD_STRUCTURE = 2, + E1000_INVM_PHY_REGISTER_AUTOLOAD_STRUCTURE = 3, + E1000_INVM_RSA_KEY_SHA256_STRUCTURE = 4, + E1000_INVM_INVALIDATED_STRUCTURE = 15, }; -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 mv643xx_eth_stats { + char stat_string[32]; + int sizeof_stat; + int netdev_off; + int mp_off; }; -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 mib_counters { + u64 good_octets_received; + u32 bad_octets_received; + u32 internal_mac_transmit_err; + u32 good_frames_received; + u32 bad_frames_received; + u32 broadcast_frames_received; + u32 multicast_frames_received; + u32 frames_64_octets; + u32 frames_65_to_127_octets; + u32 frames_128_to_255_octets; + u32 frames_256_to_511_octets; + u32 frames_512_to_1023_octets; + u32 frames_1024_to_max_octets; + u64 good_octets_sent; + u32 good_frames_sent; + u32 excessive_collision; + u32 multicast_frames_sent; + u32 broadcast_frames_sent; + u32 unrec_mac_control_received; + u32 fc_sent; + u32 good_fc_received; + u32 bad_fc_received; + u32 undersize_received; + u32 fragments_received; + u32 oversize_received; + u32 jabber_received; + u32 mac_receive_error; + u32 bad_crc_event; + u32 collision; + u32 late_collision; + u32 rx_discard; + u32 rx_overrun; }; -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 rx_desc; -struct usbdevfs_iso_packet_desc { - unsigned int length; - unsigned int actual_length; - unsigned int status; +struct rx_queue { + int index; + int rx_ring_size; + int rx_desc_count; + int rx_curr_desc; + int rx_used_desc; + struct rx_desc *rx_desc_area; + dma_addr_t rx_desc_dma; + int rx_desc_area_size; + struct sk_buff **rx_skb; }; -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 tx_desc; -struct usbdevfs_setinterface { - unsigned int interface; - unsigned int altsetting; +struct tx_queue { + int index; + int tx_ring_size; + int tx_desc_count; + int tx_curr_desc; + int tx_used_desc; + int tx_stop_threshold; + int tx_wake_threshold; + char *tso_hdrs; + dma_addr_t tso_hdrs_dma; + struct tx_desc *tx_desc_area; + char *tx_desc_mapping; + dma_addr_t tx_desc_dma; + int tx_desc_area_size; + struct sk_buff_head tx_skb; + unsigned long tx_packets; + unsigned long tx_bytes; + unsigned long tx_dropped; }; -struct usbdevfs_ioctl { - int ifno; - int ioctl_code; - void __attribute__((btf_type_tag("user"))) *data; +struct mv643xx_eth_shared_private; + +struct mv643xx_eth_private { + struct mv643xx_eth_shared_private *shared; + void *base; + int port_num; + struct net_device *dev; + struct timer_list mib_counters_timer; + spinlock_t mib_counters_lock; + struct mib_counters mib_counters; + struct work_struct tx_timeout_task; + struct napi_struct napi; + u32 int_mask; + u8 oom; + u8 work_link; + u8 work_tx; + u8 work_tx_end; + u8 work_rx; + u8 work_rx_refill; + int skb_size; + int rx_ring_size; + unsigned long rx_desc_sram_addr; + int rx_desc_sram_size; + int rxq_count; + struct timer_list rx_oom; + struct rx_queue rxq[8]; + int tx_ring_size; + unsigned long tx_desc_sram_addr; + int tx_desc_sram_size; + int txq_count; + struct tx_queue txq[8]; + struct clk *clk; + unsigned int t_clk; + long: 32; }; -struct usbdevfs_getdriver { - unsigned int interface; - char driver[256]; +struct mv643xx_eth_shared_private { + void *base; + u32 win_protect; + int extended_rx_coal_limit; + int tx_bw_control; + int tx_csum_limit; + struct clk *clk; }; -struct usbdevfs_bulktransfer { - unsigned int ep; - unsigned int len; - unsigned int timeout; - void __attribute__((btf_type_tag("user"))) *data; +struct rx_desc { + u32 cmd_sts; + u16 buf_size; + u16 byte_cnt; + u32 buf_ptr; + u32 next_desc_ptr; }; -struct usbdevfs_disconnectsignal { - unsigned int signr; - void __attribute__((btf_type_tag("user"))) *context; +struct tx_desc { + u32 cmd_sts; + u16 l4i_chk; + u16 byte_cnt; + u32 buf_ptr; + u32 next_desc_ptr; }; -struct usbdevfs_disconnect_claim { - unsigned int interface; - unsigned int flags; - char driver[256]; +struct mv643xx_eth_shared_platform_data { + struct mbus_dram_target_info *dram; + int tx_csum_limit; }; -struct usbdevfs_ctrltransfer { - __u8 bRequestType; - __u8 bRequest; - __u16 wValue; - __u16 wIndex; - __u16 wLength; - __u32 timeout; - void __attribute__((btf_type_tag("user"))) *data; +struct mv643xx_eth_platform_data { + struct platform_device *shared; + int port_number; + int phy_addr; + struct device_node *phy_node; + u8 mac_addr[6]; + int speed; + int duplex; + phy_interface_t interface; + int rx_queue_count; + int tx_queue_count; + int rx_queue_size; + int tx_queue_size; + unsigned long rx_sram_addr; + int rx_sram_size; + unsigned long tx_sram_addr; + int tx_sram_size; }; -struct usbdevfs_connectinfo { - unsigned int devnum; - unsigned char slow; +struct ale_control_info { + const char *name; + int offset; + int port_offset; + int shift; + int port_shift; + int bits; }; -struct usbdevfs_conninfo_ex { - __u32 size; - __u32 busnum; - __u32 devnum; - __u32 speed; - __u8 num_ports; - __u8 ports[7]; +struct cpsw_ale_dev_id { + const char *dev_id; + u32 features; + u32 tbl_entries; + u32 major_ver_mask; + bool nu_switch_ale; + const struct ale_entry_fld *vlan_entry_tbl; }; -struct usbdevfs_streams { - unsigned int num_streams; - unsigned int num_eps; - unsigned char eps[0]; +enum { + ALE_ENT_VID_MEMBER_LIST = 0, + ALE_ENT_VID_UNREG_MCAST_MSK = 1, + ALE_ENT_VID_REG_MCAST_MSK = 2, + ALE_ENT_VID_FORCE_UNTAGGED_MSK = 3, + ALE_ENT_VID_UNREG_MCAST_IDX = 4, + ALE_ENT_VID_REG_MCAST_IDX = 5, + ALE_ENT_VID_LAST = 6, }; -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, +enum { + CPSW_ALE_F_STATUS_REG = 1, + CPSW_ALE_F_HW_AUTOAGING = 2, + CPSW_ALE_F_COUNT = 3, }; -struct amd_chipset_type { - enum amd_chipset_gen gen; - u8 rev; +struct netdev_lag_lower_state_info { + u8 link_up: 1; + u8 tx_enabled: 1; }; -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 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; + long: 32; }; -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; +enum dwc3_omap_utmi_mode { + DWC3_OMAP_UTMI_MODE_UNKNOWN = 0, + DWC3_OMAP_UTMI_MODE_HW = 1, + DWC3_OMAP_UTMI_MODE_SW = 2, }; -struct cytp_contact { - int x; - int y; - int z; +enum omap_dwc3_vbus_id_status { + OMAP_DWC3_ID_FLOAT = 0, + OMAP_DWC3_ID_GROUND = 1, + OMAP_DWC3_VBUS_OFF = 2, + OMAP_DWC3_VBUS_VALID = 3, }; -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 dwc3_omap { + struct device *dev; + int irq; + void *base; + u32 utmi_otg_ctrl; + u32 utmi_otg_offset; + u32 irqmisc_offset; + u32 irq_eoi_offset; + u32 debug_offset; + u32 irq0_offset; + struct extcon_dev *edev; + struct notifier_block vbus_nb; + struct notifier_block id_nb; + struct regulator *vbus_reg; }; -struct vt8500_rtc { - void *regbase; - int irq_alarm; +struct palmas_rtc { struct rtc_device *rtc; - spinlock_t lock; + struct device *dev; + unsigned int irq; }; -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 reset_reg_mask { + u32 rst_src_en_mask; + u32 sw_mstr_rst_mask; }; -struct ptp_clock_caps { - int max_adj; - int n_alarm; - int n_ext_ts; - int n_per_out; - int pps; - int n_pins; - int cross_timestamping; - int adjust_phase; - int max_phase_adj; - int rsv[11]; -}; +struct hisi_thermal_sensor; -struct ptp_sys_offset_extended { - unsigned int n_samples; - unsigned int rsv[3]; - struct ptp_clock_time ts[75]; +struct hisi_thermal_data; + +struct hisi_thermal_ops { + int (*get_temp)(struct hisi_thermal_sensor *); + int (*enable_sensor)(struct hisi_thermal_sensor *); + int (*disable_sensor)(struct hisi_thermal_sensor *); + int (*irq_handler)(struct hisi_thermal_sensor *); + int (*probe)(struct hisi_thermal_data *); }; -struct ptp_sys_offset { - unsigned int n_samples; - unsigned int rsv[3]; - struct ptp_clock_time ts[51]; +struct hisi_thermal_sensor { + struct hisi_thermal_data *data; + struct thermal_zone_device *tzd; + const char *irq_name; + uint32_t id; + uint32_t thres_temp; }; -struct sunxi_wdt_reg { - u8 wdt_ctrl; - u8 wdt_cfg; - u8 wdt_mode; - u8 wdt_timeout_shift; - u8 wdt_reset_mask; - u8 wdt_reset_val; - u32 wdt_key_val; +struct hisi_thermal_data { + const struct hisi_thermal_ops *ops; + struct hisi_thermal_sensor *sensor; + struct platform_device *pdev; + struct clk *clk; + void *regs; + int nr_sensors; }; -struct sunxi_wdt_dev { - struct watchdog_device wdt_dev; - void *wdt_base; - const struct sunxi_wdt_reg *wdt_regs; +struct cpu_data { + struct clk **pclk; + struct cpufreq_frequency_table *table; }; -struct fsl_mc_pdata { - char *name; - int edac_idx; - void *mc_vbase; - int irq; +struct sd_busy_data { + struct mmc_card *card; + u8 *reg_buf; }; -struct meson_mx_mmc_host { - struct device *controller_dev; - struct clk *parent_clk; - struct clk *core_clk; - struct clk_divider cfg_div; - struct clk *cfg_div_clk; - struct clk_fixed_factor fixed_factor; - struct clk *fixed_factor_clk; +struct mvsd_host { void *base; - int irq; - spinlock_t irq_lock; - struct timer_list cmd_timeout; - unsigned int slot_id; - struct mmc_host *mmc; struct mmc_request *mrq; - struct mmc_command *cmd; - int error; + spinlock_t lock; + unsigned int xfer_mode; + unsigned int intr_en; + unsigned int ctrl; + unsigned int pio_size; + void *pio_ptr; + unsigned int sg_frags; + unsigned int ns_per_clk; + unsigned int clock; + unsigned int base_clock; + struct timer_list timer; + struct mmc_host *mmc; + struct device *dev; + struct clk *clk; }; -struct bl_trig_notifier { - struct led_classdev *led; - int brightness; - int old_status; - struct notifier_block notifier; - unsigned int invert; +struct scmi_msg_payld { + __le32 msg_header; + __le32 msg_payload[0]; }; -struct ttc_timer { - void *base_addr; - unsigned long freq; - struct clk *clk; - struct notifier_block clk_rate_change_nb; +struct scmi_optee_agent { + struct device *dev; + struct tee_context *tee_ctx; + u32 caps; + struct mutex mu; + struct list_head channel_list; }; -struct ttc_timer_clocksource { - u32 scale_clk_ctrl_reg_old; - u32 scale_clk_ctrl_reg_new; - struct ttc_timer ttc; - struct clocksource cs; +enum scmi_optee_pta_cmd { + PTA_SCMI_CMD_CAPABILITIES = 0, + PTA_SCMI_CMD_PROCESS_SMT_CHANNEL = 1, + PTA_SCMI_CMD_PROCESS_SMT_CHANNEL_MESSAGE = 2, + PTA_SCMI_CMD_GET_CHANNEL = 3, + PTA_SCMI_CMD_PROCESS_MSG_CHANNEL = 4, }; -struct ttc_timer_clockevent { - struct ttc_timer ttc; +struct scmi_optee_channel { + u32 channel_id; + u32 tee_session; + u32 caps; + u32 rx_len; + struct mutex mu; + struct scmi_chan_info *cinfo; + union { + struct scmi_shared_mem *shmem; + struct scmi_msg_payld *msg; + } req; + struct tee_shm *tee_shm; + struct list_head link; +}; + +struct atmel_tcb_config { + size_t counter_width; + bool has_gclk; + bool has_qdec; +}; + +struct tc_clkevt_device { + struct clock_event_device clkevt; + struct clk *clk; + u32 rate; + void *regs; + long: 32; + long: 32; long: 32; long: 32; long: 32; @@ -161661,279 +164416,191 @@ struct ttc_timer_clockevent { long: 32; long: 32; long: 32; - struct clock_event_device ce; -}; - -enum smd_channel_state { - SMD_CHANNEL_CLOSED = 0, - SMD_CHANNEL_OPENING = 1, - SMD_CHANNEL_OPENED = 2, - SMD_CHANNEL_FLUSHING = 3, - SMD_CHANNEL_CLOSING = 4, - SMD_CHANNEL_RESET = 5, - SMD_CHANNEL_RESET_OPENING = 6, -}; - -struct qcom_smd_edge { - struct device dev; - const char *name; - struct device_node *of_node; - unsigned int edge_id; - unsigned int remote_pid; - int irq; - struct regmap *ipc_regmap; - int ipc_offset; - int ipc_bit; - struct mbox_client mbox_client; - struct mbox_chan *mbox_chan; - struct list_head channels; - spinlock_t channels_lock; - unsigned long allocated[4]; - unsigned int smem_available; - wait_queue_head_t new_channel_event; - struct work_struct scan_work; - struct work_struct state_work; long: 32; }; -struct qcom_smd_endpoint; - -struct smd_channel_info_pair; - -struct smd_channel_info_word_pair; - -struct qcom_smd_channel { - struct qcom_smd_edge *edge; - struct qcom_smd_endpoint *qsept; - bool registered; - char *name; - enum smd_channel_state state; - enum smd_channel_state remote_state; - wait_queue_head_t state_change_event; - struct smd_channel_info_pair *info; - struct smd_channel_info_word_pair *info_word; - spinlock_t tx_lock; - wait_queue_head_t fblockread_event; - void *tx_fifo; - void *rx_fifo; - int fifo_size; - void *bounce_buffer; - spinlock_t recv_lock; - int pkt_size; - void *drvdata; - struct list_head list; +struct atmel_tc { + struct platform_device *pdev; + void *regs; + int id; + const struct atmel_tcb_config *tcb_config; + int irq[3]; + struct clk *clk[3]; + struct clk *slow_clk; + struct list_head node; + bool allocated; }; -struct qcom_smd_endpoint { - struct rpmsg_endpoint ept; - struct qcom_smd_channel *qsch; +struct usage_priority { + __u32 usage; + bool global; + unsigned int slot_overwrite; }; -struct smd_channel_info { - __le32 state; - u8 fDSR; - u8 fCTS; - u8 fCD; - u8 fRI; - u8 fHEAD; - u8 fTAIL; - u8 fSTATE; - u8 fBLOCKREADINTR; - __le32 tail; - __le32 head; -}; +typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int); -struct smd_channel_info_pair { - struct smd_channel_info tx; - struct smd_channel_info rx; +struct nvec_keys { + struct input_dev *input; + struct notifier_block notifier; + struct nvec_chip *nvec; + bool caps_lock; }; -struct smd_channel_info_word { - __le32 state; - __le32 fDSR; - __le32 fCTS; - __le32 fCD; - __le32 fRI; - __le32 fHEAD; - __le32 fTAIL; - __le32 fSTATE; - __le32 fBLOCKREADINTR; - __le32 tail; - __le32 head; +enum nvec_event_size { + NVEC_2BYTES = 0, + NVEC_3BYTES = 1, + NVEC_VAR_SIZE = 2, }; -struct smd_channel_info_word_pair { - struct smd_channel_info_word tx; - struct smd_channel_info_word rx; -}; +typedef void (*btf_trace_mc_event)(void *, const unsigned int, const char *, const char *, const int, const u8, const s8, const s8, const s8, unsigned long, const u8, unsigned long, const char *); -struct qcom_smd_device { - struct rpmsg_device rpdev; - struct qcom_smd_edge *edge; - long: 32; -}; +struct cper_sec_proc_arm; -struct qcom_smd_alloc_entry { - u8 name[20]; - __le32 cid; - __le32 flags; - __le32 ref_count; -}; +typedef void (*btf_trace_arm_event)(void *, const struct cper_sec_proc_arm *); -struct broadcast_sk { - struct sock *sk; - struct work_struct work; +struct cper_sec_proc_arm { + u32 validation_bits; + u16 err_info_num; + u16 context_info_num; + u32 section_length; + u8 affinity_level; + u8 reserved[3]; + u64 mpidr; + u64 midr; + u32 running_state; + u32 psci_state; }; -struct sock_diag_req { - __u8 sdiag_family; - __u8 sdiag_protocol; -}; +typedef void (*btf_trace_non_standard_event)(void *, const guid_t *, const guid_t *, const char *, const u8, const u8 *, const u32); -typedef void (*btf_trace_bpf_test_finish)(void *, int *); +struct aer_header_log_regs; -struct bpf_test_timer { - enum { - NO_PREEMPT = 0, - NO_MIGRATE = 1, - } mode; - u32 i; - u64 time_start; - u64 time_spent; -}; +typedef void (*btf_trace_aer_event)(void *, const char *, const u32, const u8, const u8, struct aer_header_log_regs *); -struct bpf_fentry_test_t { - struct bpf_fentry_test_t *a; +struct aer_header_log_regs { + unsigned int dw0; + unsigned int dw1; + unsigned int dw2; + unsigned int dw3; }; -struct trace_event_raw_bpf_test_finish { +struct trace_event_raw_mc_event { struct trace_entry ent; - int err; + unsigned int error_type; + u32 __data_loc_msg; + u32 __data_loc_label; + u16 error_count; + u8 mc_index; + s8 top_layer; + s8 middle_layer; + s8 lower_layer; + long address; + u8 grain_bits; + long syndrome; + u32 __data_loc_driver_detail; char __data[0]; }; -struct xdp_test_data { - struct xdp_buff *orig_ctx; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - 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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct trace_event_raw_arm_event { + struct trace_entry ent; + u64 mpidr; + u64 midr; + u32 running_state; + u32 psci_state; + u8 affinity; + char __data[0]; long: 32; }; -struct xdp_page_head { - struct xdp_buff orig_ctx; - struct xdp_buff ctx; - union { - struct { - struct {} __empty_frame; - struct xdp_frame frame[0]; - }; - struct { - struct {} __empty_data; - u8 data[0]; - }; - }; +struct trace_event_raw_non_standard_event { + struct trace_entry ent; + char sec_type[16]; + char fru_id[16]; + u32 __data_loc_fru_text; + u8 sev; + u32 len; + u32 __data_loc_buf; + char __data[0]; }; -struct trace_event_data_offsets_bpf_test_finish {}; - -struct prog_test_member1 { - int a; +struct trace_event_raw_aer_event { + struct trace_entry ent; + u32 __data_loc_dev_name; + u32 status; + u8 severity; + u8 tlp_header_valid; + u32 tlp_header[4]; + char __data[0]; }; -struct prog_test_member { - struct prog_test_member1 m; - int c; +struct trace_event_data_offsets_mc_event { + u32 msg; + u32 label; + u32 driver_detail; }; -struct prog_test_ref_kfunc { - int a; - int b; - struct prog_test_member memb; - struct prog_test_ref_kfunc *next; - refcount_t cnt; +struct trace_event_data_offsets_non_standard_event { + u32 fru_text; + u32 buf; }; -struct bpf_raw_tp_test_run_info { - struct bpf_prog *prog; - void *ctx; - u32 retval; +struct trace_event_data_offsets_aer_event { + u32 dev_name; }; -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 trace_event_data_offsets_arm_event {}; -struct bpf_nf_ctx { - const struct nf_hook_state *state; - struct sk_buff *skb; +struct fib_notifier_net { + struct list_head fib_notifier_ops; + struct atomic_notifier_head fib_chain; }; enum { - TCP_BPF_IPV4 = 0, - TCP_BPF_IPV6 = 1, - TCP_BPF_NUM_PROTS = 2, + ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0, + ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1, + ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2, }; enum { - TCP_BPF_BASE = 0, - TCP_BPF_TX = 1, - TCP_BPF_RX = 2, - TCP_BPF_TXRX = 3, - TCP_BPF_NUM_CFGS = 4, + ETHTOOL_A_RINGS_UNSPEC = 0, + ETHTOOL_A_RINGS_HEADER = 1, + ETHTOOL_A_RINGS_RX_MAX = 2, + ETHTOOL_A_RINGS_RX_MINI_MAX = 3, + ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4, + ETHTOOL_A_RINGS_TX_MAX = 5, + ETHTOOL_A_RINGS_RX = 6, + ETHTOOL_A_RINGS_RX_MINI = 7, + ETHTOOL_A_RINGS_RX_JUMBO = 8, + ETHTOOL_A_RINGS_TX = 9, + ETHTOOL_A_RINGS_RX_BUF_LEN = 10, + ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11, + ETHTOOL_A_RINGS_CQE_SIZE = 12, + ETHTOOL_A_RINGS_TX_PUSH = 13, + ETHTOOL_A_RINGS_RX_PUSH = 14, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16, + __ETHTOOL_A_RINGS_CNT = 17, + ETHTOOL_A_RINGS_MAX = 16, }; -struct tx_work { - struct delayed_work work; - struct sock *sk; +enum ethtool_supported_ring_param { + ETHTOOL_RING_USE_RX_BUF_LEN = 1, + ETHTOOL_RING_USE_CQE_SIZE = 2, + ETHTOOL_RING_USE_TX_PUSH = 4, + ETHTOOL_RING_USE_RX_PUSH = 8, + ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16, }; -struct tls_rec; +struct rings_reply_data { + struct ethnl_reply_data base; + struct ethtool_ringparam ringparam; + struct kernel_ethtool_ringparam kernel_ringparam; + u32 supported_ring_params; +}; -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 can_filter { + canid_t can_id; + canid_t can_mask; }; typedef __u32 can_err_mask_t; @@ -161979,388 +164646,646 @@ enum { SCM_CAN_RAW_ERRQUEUE = 1, }; -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 rpcb_info { + u32 rpc_vers; + const struct rpc_procinfo *rpc_proc; }; -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: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +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 omap2_oscillator { - u32 startup_time; - u32 shutdown_time; +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 omap_sr_nvalue_table; - -struct omap_sr_data { - const char *name; - int ip_type; - u32 senp_mod; - u32 senn_mod; - u32 err_weight; - u32 err_maxlimit; - u32 accum_data; - u32 senn_avgweight; - u32 senp_avgweight; - int nvalue_count; - struct omap_sr_nvalue_table *nvalue_table; - struct voltagedomain *voltdm; +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 omap_sr_nvalue_table { - u32 efuse_offs; - u32 nvalue; - u32 errminlimit; - unsigned long volt_nominal; +struct decryptor_desc { + u8 iv[16]; + struct skcipher_request *req; + struct scatterlist frags[4]; + int fragno; + int fraglen; }; -struct pdata_init { - const char *compatible; - void (*fn)(); -}; +typedef struct { + unsigned long key[2]; +} hsiphash_key_t; -struct iommu_platform_data { - const char *reset_name; - int (*assert_reset)(struct platform_device *, const char *); - int (*deassert_reset)(struct platform_device *, const char *); - int (*device_enable)(struct platform_device *); - int (*device_idle)(struct platform_device *); - int (*set_pwrdm_constraint)(struct platform_device *, bool, u8 *); -}; +typedef void (*clock_access_fn)(struct timespec64 *); -struct emac_platform_data { - char mac_addr[6]; - u32 ctrl_reg_offset; - u32 ctrl_mod_reg_offset; - u32 ctrl_ram_offset; - u32 hw_ram_addr; - u32 ctrl_ram_size; - const char *phy_id; - u8 rmii_en; - u8 version; - bool no_bd_ram; - void (*interrupt_enable)(); - void (*interrupt_disable)(); +struct section_perm { + const char *name; + unsigned long start; + unsigned long end; + pmdval_t mask; + pmdval_t prot; + pmdval_t clear; }; -struct ce_unbind { - struct clock_event_device *ce; - int res; +struct at91_pm_quirk_eth { + struct device *dev; + struct device_node *np; + struct clk_bulk_data clks[2]; + u32 modes; + u32 dns_modes; }; -struct rchan_percpu_buf_dispatcher { - struct rchan_buf *buf; - struct dentry *dentry; +struct at91_pm_quirks { + struct at91_pm_quirk_eth eth[2]; }; -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); +struct at91_pm_data { + void *pmc; + void *ramc[2]; + void *ramc_phy; + unsigned long uhp_udp_mask; + unsigned int memctrl; + unsigned int mode; + void *shdwc; + void *sfrbu; + unsigned int standby_mode; + unsigned int suspend_mode; + unsigned int pmc_mckr_offset; + unsigned int pmc_version; +}; -typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int); +struct at91_pm_sfrbu_regs { + struct { + u32 key; + u32 ctrl; + u32 state; + u32 softsw; + } pswbu; +}; -typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *); +struct at91_pm_bu; -typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int); +struct at91_soc_pm { + int (*config_shdwc_ws)(void *, u32 *, u32 *); + int (*config_pmc_ws)(void *, u32, u32); + const struct of_device_id *ws_ids; + struct at91_pm_bu *bu; + struct at91_pm_quirks quirks; + struct at91_pm_data data; + struct at91_pm_sfrbu_regs sfrbu_regs; + void *memcs; +}; -typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int); +struct at91_pm_bu { + int suspended; + unsigned long reserved; + phys_addr_t canary; + phys_addr_t resume; + unsigned long ddr_phy_calibration[9]; +}; -typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool); +struct ramc_info { + void (*idle)(); + unsigned int memctrl; +}; -typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int); +struct pmc_info { + unsigned long uhp_udp_mask; + unsigned long mckr; + unsigned long version; +}; -typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int); +struct wakeup_source_info { + unsigned int pmc_fsmr_bit; + unsigned int shdwc_mr_bit; + bool set_polarity; +}; -typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int); +enum at91_pm_eth { + AT91_PM_G_ETH = 0, + AT91_PM_E_ETH = 1, + AT91_PM_MAX_ETH = 2, +}; -typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int); +enum at91_pm_iomaps { + AT91_PM_IOMAP_SHDWC = 0, + AT91_PM_IOMAP_SFRBU = 1, + AT91_PM_IOMAP_ETHC = 2, +}; -typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int); +enum at91_pm_eth_clk { + AT91_PM_ETH_PCLK = 0, + AT91_PM_ETH_HCLK = 1, + AT91_PM_ETH_MAX_CLK = 2, +}; -typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int); +struct omap3_control_regs { + u32 sysconfig; + u32 devconf0; + u32 mem_dftrw0; + u32 mem_dftrw1; + u32 msuspendmux_0; + u32 msuspendmux_1; + u32 msuspendmux_2; + u32 msuspendmux_3; + u32 msuspendmux_4; + u32 msuspendmux_5; + u32 sec_ctrl; + u32 devconf1; + u32 csirxfe; + u32 iva2_bootaddr; + u32 iva2_bootmod; + u32 wkup_ctrl; + u32 debobs_0; + u32 debobs_1; + u32 debobs_2; + u32 debobs_3; + u32 debobs_4; + u32 debobs_5; + u32 debobs_6; + u32 debobs_7; + u32 debobs_8; + u32 prog_io0; + u32 prog_io1; + u32 dss_dpll_spreading; + u32 core_dpll_spreading; + u32 per_dpll_spreading; + u32 usbhost_dpll_spreading; + u32 pbias_lite; + u32 temp_sensor; + u32 sramldo4; + u32 sramldo5; + u32 csi; + u32 padconf_sys_nirq; +}; -typedef void (*btf_trace_pm_qos_add_request)(void *, s32); +struct control_init_data { + int index; + void *mem; + s16 offset; +}; -typedef void (*btf_trace_pm_qos_update_request)(void *, s32); +struct omap3_scratchpad { + u32 boot_config_ptr; + u32 public_restore_ptr; + u32 secure_ram_restore_ptr; + u32 sdrc_module_semaphore; + u32 prcm_block_offset; + u32 sdrc_block_offset; +}; -typedef void (*btf_trace_pm_qos_remove_request)(void *, s32); +struct omap3_scratchpad_prcm_block { + u32 prm_contents[2]; + u32 cm_contents[11]; + u32 prcm_block_size; +}; -typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int); +struct omap3_scratchpad_sdrc_block { + u16 sysconfig; + u16 cs_cfg; + u16 sharing; + u16 err_type; + u32 dll_a_ctrl; + u32 dll_b_ctrl; + u32 power; + u32 cs_0; + u32 mcfg_0; + u16 mr_0; + u16 emr_1_0; + u16 emr_2_0; + u16 emr_3_0; + u32 actim_ctrla_0; + u32 actim_ctrlb_0; + u32 rfr_ctrl_0; + u32 cs_1; + u32 mcfg_1; + u16 mr_1; + u16 emr_1_1; + u16 emr_2_1; + u16 emr_3_1; + u32 actim_ctrla_1; + u32 actim_ctrlb_1; + u32 rfr_ctrl_1; + u16 dcdl_1_ctrl; + u16 dcdl_2_ctrl; + u32 flags; + u32 block_size; +}; -typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int); +struct ve_spc_opp; -typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32); +struct ve_spc_drvdata { + void *baseaddr; + u32 a15_clusid; + uint32_t cur_rsp_mask; + uint32_t cur_rsp_stat; + struct semaphore sem; + struct completion done; + struct ve_spc_opp *opps[2]; + int num_opps[2]; +}; -typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32); +struct ve_spc_opp { + unsigned long freq; + unsigned long u_volt; +}; -typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32); +struct clk_spc { + struct clk_hw hw; + int cluster; +}; -typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int); +struct tk_read_base { + struct clocksource *clock; + long: 32; + u64 mask; + u64 cycle_last; + u32 mult; + u32 shift; + u64 xtime_nsec; + ktime_t base; + u64 base_real; +}; -struct trace_event_raw_cpu { - struct trace_entry ent; - u32 state; - u32 cpu_id; - char __data[0]; +struct tk_fast { + seqcount_latch_t seq; + long: 32; + struct tk_read_base base[2]; }; -struct trace_event_raw_cpu_idle_miss { - struct trace_entry ent; - u32 cpu_id; - u32 state; - bool below; - char __data[0]; +struct timekeeper { + struct tk_read_base tkr_mono; + struct tk_read_base tkr_raw; + u64 xtime_sec; + unsigned long ktime_sec; + long: 32; + 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; + long: 32; + 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; + long: 32; }; -struct trace_event_raw_powernv_throttle { - struct trace_entry ent; - int chip_id; - u32 __data_loc_reason; - int pmax; - char __data[0]; +enum timekeeping_adv_mode { + TK_ADV_TICK = 0, + TK_ADV_FREQ = 1, }; -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 ktime_timestamps { + u64 mono; + u64 boot; + u64 real; }; -struct trace_event_raw_cpu_frequency_limits { - struct trace_entry ent; - u32 min_freq; - u32 max_freq; - u32 cpu_id; - char __data[0]; +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 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 cpu_stop_done { + atomic_t nr_todo; + int ret; + struct completion completion; }; -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]; +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 trace_event_raw_suspend_resume { - struct trace_entry ent; - const char *action; - int val; - bool start; - char __data[0]; +struct multi_stop_data { + cpu_stop_fn_t fn; + void *data; + unsigned int num_threads; + const struct cpumask *active_cpus; + enum multi_stop_state state; + atomic_t thread_ack; }; -struct trace_event_raw_wakeup_source { - struct trace_entry ent; - u32 __data_loc_name; - long: 32; - u64 state; - char __data[0]; +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, }; -struct trace_event_raw_clock { - struct trace_entry ent; - u32 __data_loc_name; - long: 32; - u64 state; - u64 cpu_id; - char __data[0]; +enum { + RB_LEN_TIME_EXTEND = 8, + RB_LEN_TIME_STAMP = 8, }; -struct trace_event_raw_power_domain { - struct trace_entry ent; - u32 __data_loc_name; - long: 32; - u64 state; - u64 cpu_id; - char __data[0]; +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, }; -struct trace_event_raw_cpu_latency_qos_request { - struct trace_entry ent; - s32 value; - char __data[0]; +enum { + RB_ADD_STAMP_NONE = 0, + RB_ADD_STAMP_EXTEND = 2, + RB_ADD_STAMP_ABSOLUTE = 4, + RB_ADD_STAMP_FORCE = 8, }; -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 buffer_data_page; -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 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 trace_event_raw_guest_halt_poll_ns { - struct trace_entry ent; - bool grow; - unsigned int new; - unsigned int old; - char __data[0]; +struct buffer_data_page { + u64 time_stamp; + local_t commit; + unsigned char data[0]; + long: 32; }; -struct trace_event_data_offsets_powernv_throttle { - u32 reason; +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_event_data_offsets_device_pm_callback_end { - u32 device; - u32 driver; +struct ring_buffer_per_cpu; + +struct trace_buffer { + unsigned int flags; + int cpus; + atomic_t record_disabled; + atomic_t resizing; + cpumask_var_t cpumask; + struct lock_class_key *reader_lock_key; + struct mutex mutex; + struct ring_buffer_per_cpu **buffers; + struct hlist_node node; + u64 (*clock)(); + struct rb_irq_work irq_work; + bool time_stamp_abs; }; -struct trace_event_data_offsets_wakeup_source { - u32 name; +struct rb_time_struct { + local_t cnt; + local_t top; + local_t bottom; + local_t msb; }; -struct trace_event_data_offsets_clock { - u32 name; +typedef struct rb_time_struct rb_time_t; + +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; + long: 32; + u64 event_stamp[5]; + u64 read_stamp; + unsigned long pages_removed; + long nr_pages_to_update; + struct list_head new_pages; + struct work_struct update_pages_work; + struct completion update_done; + struct rb_irq_work irq_work; }; -struct trace_event_data_offsets_power_domain { - u32 name; +struct ring_buffer_iter { + struct ring_buffer_per_cpu *cpu_buffer; + unsigned long head; + unsigned long next_event; + struct buffer_page *head_page; + struct buffer_page *cache_reader_page; + unsigned long cache_read; + unsigned long cache_pages_removed; + long: 32; + u64 read_stamp; + u64 page_stamp; + struct ring_buffer_event *event; + int missed_events; }; -struct trace_event_data_offsets_dev_pm_qos_request { - u32 name; +struct rb_event_info { + u64 ts; + u64 delta; + u64 before; + u64 after; + unsigned long length; + struct buffer_page *tail_page; + int add_timestamp; + long: 32; }; -struct trace_event_data_offsets_cpu {}; +struct bpf_bloom_filter { + struct bpf_map map; + u32 bitset_mask; + u32 hash_seed; + u32 nr_hash_funcs; + unsigned long bitset[0]; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; + long: 32; +}; -struct trace_event_data_offsets_cpu_idle_miss {}; +typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool); -struct trace_event_data_offsets_pstate_sample {}; +typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool); -struct trace_event_data_offsets_cpu_frequency_limits {}; +typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool); -struct trace_event_data_offsets_device_pm_callback_start { - u32 device; - u32 driver; - u32 parent; - u32 pm_ops; +struct memcg_path { + local_lock_t lock; + char __attribute__((btf_type_tag("rcu"))) *buf; + local_t buf_idx; }; -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_raw_mmap_lock { + struct trace_entry ent; + struct mm_struct *mm; + u32 __data_loc_memcg_path; + bool write; + char __data[0]; +}; -struct trace_event_data_offsets_guest_halt_poll_ns {}; +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 cgroup_iter_priv { - struct cgroup_subsys_state *start_css; - bool visited_all; - bool terminate; - int order; +struct trace_event_data_offsets_mmap_lock { + u32 memcg_path; }; -struct bpf_iter__cgroup { - union { - struct bpf_iter_meta *meta; - }; - union { - struct cgroup *cgroup; - }; +struct trace_event_data_offsets_mmap_lock_acquire_returned { + u32 memcg_path; }; -enum pgt_entry { - NORMAL_PMD = 0, - HPAGE_PMD = 1, - NORMAL_PUD = 2, - HPAGE_PUD = 3, +struct swap_iocb { + struct kiocb iocb; + struct bio_vec bvec[32]; + int pages; + int len; }; -struct bh_lru { - struct buffer_head *bhs[16]; +struct linux_dirent { + unsigned long d_ino; + unsigned long d_off; + unsigned short d_reclen; + char d_name[0]; }; -struct bh_accounting { - int nr; - int ratelimit; +struct linux_dirent64 { + u64 d_ino; + s64 d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[0]; + long: 32; }; -struct postprocess_bh_ctx { - struct work_struct work; - struct buffer_head *bh; +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 ext4_orphan_block_tail { - __le32 ob_magic; - __le32 ob_checksum; +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 shortname_info { - unsigned char lower: 1; - unsigned char upper: 1; - unsigned char valid: 1; +struct old_utimbuf32 { + old_time32_t actime; + old_time32_t modtime; }; -enum { - NFS_OWNER_RECLAIM_REBOOT = 0, - NFS_OWNER_RECLAIM_NOGRACE = 1, +struct nfs_io_completion { + void (*complete)(void *); + void *data; + struct kref refcount; }; -struct crypto_rng { - struct crypto_tfm base; +struct scan_data { + int min_space; + int pick_free; + int lnum; + int exclude_index; }; -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 aead_instance { + void (*free)(struct aead_instance *); long: 32; long: 32; long: 32; @@ -162373,1669 +165298,1853 @@ struct rng_alg { long: 32; long: 32; long: 32; - struct crypto_alg base; + long: 32; + long: 32; + long: 32; + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct aead_alg alg; + }; }; -struct crypto_istat_rng { - atomic64_t generate_cnt; - atomic64_t generate_tlen; - atomic64_t seed_cnt; +struct crypto_istat_aead { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; atomic64_t err_cnt; }; -struct crypto_report_rng { +struct crypto_aead_spawn { + struct crypto_spawn base; +}; + +struct crypto_report_aead { char type[64]; - unsigned int seedsize; + char geniv[64]; + unsigned int blocksize; + unsigned int maxauthsize; + unsigned int ivsize; }; -struct io_rw { - struct kiocb kiocb; - u64 addr; - u32 len; - rwf_t flags; +enum { + REQ_FSEQ_PREFLUSH = 1, + REQ_FSEQ_DATA = 2, + REQ_FSEQ_POSTFLUSH = 4, + REQ_FSEQ_DONE = 8, + REQ_FSEQ_ACTIONS = 7, + FLUSH_PENDING_TIMEOUT = 500, }; -struct io_rw_state { - struct iov_iter iter; - struct iov_iter_state iter_state; - struct iovec fast_iov[8]; - long: 32; +struct cmdline_subpart; + +struct cmdline_parts { + char name[32]; + unsigned int nr_subparts; + struct cmdline_subpart *subpart; + struct cmdline_parts *next_parts; }; -struct io_async_rw { - struct io_rw_state s; - const struct iovec *free_iovec; - size_t bytes_done; - struct wait_page_queue wpq; +struct cmdline_subpart { + char name[32]; + sector_t from; + sector_t size; + int flags; + struct cmdline_subpart *next_subpart; +}; + +struct io_xattr { + struct file *file; + struct xattr_ctx ctx; + struct filename *filename; +}; + +enum { + RS_DECODE_LAMBDA = 0, + RS_DECODE_SYN = 1, + RS_DECODE_B = 2, + RS_DECODE_T = 3, + RS_DECODE_OMEGA = 4, + RS_DECODE_ROOT = 5, + RS_DECODE_REG = 6, + RS_DECODE_LOC = 7, + RS_DECODE_NUM_BUFFERS = 8, +}; + +struct redist_region; + +struct gic_chip_data___2 { + struct fwnode_handle *fwnode; + phys_addr_t dist_phys_base; + void *dist_base; + struct redist_region *redist_regions; + struct rdists rdists; + struct irq_domain *domain; + long: 32; + u64 redist_stride; + u32 nr_redist_regions; + long: 32; + u64 flags; + bool has_rss; + unsigned int ppi_nr; + struct partition_desc **ppi_descs; long: 32; }; -struct phy_meson_axg_mipi_dphy_priv { - struct device *dev; - struct regmap *regmap; - struct clk *clk; - struct reset_control *reset; - struct phy *analog; - struct phy_configure_opts_mipi_dphy config; +struct redist_region { + void *redist_base; + phys_addr_t phys_base; + bool single_redist; }; -enum owl_pinconf_drv { - OWL_PINCONF_DRV_2MA = 0, - OWL_PINCONF_DRV_4MA = 1, - OWL_PINCONF_DRV_8MA = 2, - OWL_PINCONF_DRV_12MA = 3, +enum gic_intid_range { + SGI_RANGE = 0, + PPI_RANGE = 1, + SPI_RANGE = 2, + EPPI_RANGE = 3, + ESPI_RANGE = 4, + LPI_RANGE = 5, + __INVALID_RANGE__ = 6, }; -struct owl_pinctrl { - struct device *dev; - struct pinctrl_dev *pctrldev; - struct gpio_chip chip; - raw_spinlock_t lock; - struct clk *clk; - const struct owl_pinctrl_soc_data *soc; - void *base; - unsigned int num_irq; - unsigned int *irq; +enum { + ARB_TIMER = 0, + ARB_BP_CAP_CLR = 1, + ARB_BP_CAP_HI_ADDR = 2, + ARB_BP_CAP_ADDR = 3, + ARB_BP_CAP_STATUS = 4, + ARB_BP_CAP_MASTER = 5, + ARB_ERR_CAP_CLR = 6, + ARB_ERR_CAP_HI_ADDR = 7, + ARB_ERR_CAP_ADDR = 8, + ARB_ERR_CAP_STATUS = 9, + ARB_ERR_CAP_MASTER = 10, }; -struct plgpio_regs { - u32 enb; - u32 wdata; - u32 dir; - u32 rdata; - u32 ie; - u32 mis; - u32 eit; +struct brcmstb_gisb_arb_device { + void *base; + const int *gisb_offsets; + bool big_endian; + struct mutex lock; + struct list_head next; + u32 valid_mask; + const char *master_names[32]; + u32 saved_timeout; }; -struct plgpio { - spinlock_t lock; +struct phy_g12a_usb3_pcie_priv { struct regmap *regmap; - struct clk *clk; - struct gpio_chip chip; - int (*p2o)(int); - int (*o2p)(int); - u32 p2o_regs; - struct plgpio_regs regs; - struct plgpio_regs *csave_regs; + struct regmap *regmap_cr; + struct clk *clk_ref; + struct reset_control *reset; + struct phy *phy; + unsigned int mode; }; -struct dwapb_gpio_port_irqchip; +struct uniphier_ahciphy_priv; -struct dwapb_gpio; +struct uniphier_ahciphy_soc_data { + int (*init)(struct uniphier_ahciphy_priv *); + int (*power_on)(struct uniphier_ahciphy_priv *); + int (*power_off)(struct uniphier_ahciphy_priv *); + bool is_legacy; + bool is_ready_high; + bool is_phy_clk; +}; -struct dwapb_context; +struct uniphier_ahciphy_priv { + struct device *dev; + void *base; + struct clk *clk; + struct clk *clk_parent; + struct clk *clk_parent_gio; + struct reset_control *rst; + struct reset_control *rst_parent; + struct reset_control *rst_parent_gio; + struct reset_control *rst_pm; + struct reset_control *rst_tx; + struct reset_control *rst_rx; + const struct uniphier_ahciphy_soc_data *data; +}; -struct dwapb_gpio_port { - struct gpio_chip gc; - struct dwapb_gpio_port_irqchip *pirq; - struct dwapb_gpio *gpio; - struct dwapb_context *ctx; - unsigned int idx; +struct dc_pinmap { + void *regs; + struct device *dev; + struct pinctrl_dev *pctl; + struct pinctrl_desc *desc; + const char *pin_names[144]; + struct gpio_chip chip; + spinlock_t lock; }; -struct dwapb_gpio_port_irqchip { - unsigned int nr_irqs; - unsigned int irq[32]; +struct bcm_plat_data { + const struct gpio_chip *gpio_chip; + const struct pinctrl_desc *pctl_desc; + const struct pinctrl_gpio_range *gpio_range; }; -struct dwapb_gpio { +enum bcm2835_fsel { + BCM2835_FSEL_COUNT = 8, + BCM2835_FSEL_MASK = 7, +}; + +struct bcm2835_pinctrl { struct device *dev; - void *regs; - struct dwapb_gpio_port *ports; - unsigned int nr_ports; - unsigned int flags; - struct reset_control *rst; - struct clk_bulk_data clks[2]; + void *base; + int *wake_irq; + unsigned long enabled_irq_map[2]; + unsigned int irq_type[58]; + struct pinctrl_dev *pctl_dev; + struct gpio_chip gpio_chip; + struct pinctrl_desc pctl_desc; + struct pinctrl_gpio_range gpio_range; + raw_spinlock_t irq_lock[2]; + spinlock_t fsel_lock; }; -struct dwapb_context { - u32 data; - u32 dir; - u32 ext; - u32 int_en; - u32 int_mask; - u32 int_type; - u32 int_pol; - u32 int_deb; - u32 wake_en; +struct pmic_mpp_state { + struct device *dev; + struct regmap *map; + struct pinctrl_dev *ctrl; + struct gpio_chip chip; }; -struct dwapb_port_property; +struct pmic_mpp_pad { + u16 base; + bool is_enabled; + bool out_value; + bool output_enabled; + bool input_enabled; + bool paired; + bool has_pullup; + unsigned int num_sources; + unsigned int power_source; + unsigned int amux_input; + unsigned int aout_level; + unsigned int pullup; + unsigned int function; + unsigned int drive_strength; + unsigned int dtest; +}; -struct dwapb_platform_data { - struct dwapb_port_property *properties; - unsigned int nports; +enum tegra_pinconf_param { + TEGRA_PINCONF_PARAM_PULL = 0, + TEGRA_PINCONF_PARAM_TRISTATE = 1, + TEGRA_PINCONF_PARAM_ENABLE_INPUT = 2, + TEGRA_PINCONF_PARAM_OPEN_DRAIN = 3, + TEGRA_PINCONF_PARAM_LOCK = 4, + TEGRA_PINCONF_PARAM_IORESET = 5, + TEGRA_PINCONF_PARAM_RCV_SEL = 6, + TEGRA_PINCONF_PARAM_HIGH_SPEED_MODE = 7, + TEGRA_PINCONF_PARAM_SCHMITT = 8, + TEGRA_PINCONF_PARAM_LOW_POWER_MODE = 9, + TEGRA_PINCONF_PARAM_DRIVE_DOWN_STRENGTH = 10, + TEGRA_PINCONF_PARAM_DRIVE_UP_STRENGTH = 11, + TEGRA_PINCONF_PARAM_SLEW_RATE_FALLING = 12, + TEGRA_PINCONF_PARAM_SLEW_RATE_RISING = 13, + TEGRA_PINCONF_PARAM_DRIVE_TYPE = 14, }; -struct dwapb_port_property { - struct fwnode_handle *fwnode; - unsigned int idx; - unsigned int ngpio; - unsigned int gpio_base; - int irq[32]; +struct cfg_param { + const char *property; + enum tegra_pinconf_param param; }; -enum sti_cpt_edge { - CPT_EDGE_DISABLED = 0, - CPT_EDGE_RISING = 1, - CPT_EDGE_FALLING = 2, - CPT_EDGE_BOTH = 3, +struct pl061_context_save_regs { + u8 gpio_data; + u8 gpio_dir; + u8 gpio_is; + u8 gpio_ibe; + u8 gpio_iev; + u8 gpio_ie; }; -enum { - PWMCLK_PRESCALE_LOW = 0, - PWMCLK_PRESCALE_HIGH = 1, - CPTCLK_PRESCALE = 2, - PWM_OUT_EN = 3, - PWM_CPT_EN = 4, - PWM_CPT_INT_EN = 5, - PWM_CPT_INT_STAT = 6, - MAX_REGFIELDS___3 = 7, +struct pl061 { + raw_spinlock_t lock; + void *base; + struct gpio_chip gc; + int parent_irq; + struct pl061_context_save_regs csave_regs; }; -struct sti_pwm_compat_data; +enum pci_bar_type { + pci_bar_unknown = 0, + pci_bar_io = 1, + pci_bar_mem32 = 2, + pci_bar_mem64 = 3, +}; -struct sti_pwm_chip { - struct device *dev; - struct clk *pwm_clk; - struct clk *cpt_clk; - struct regmap *regmap; - struct sti_pwm_compat_data *cdata; - struct regmap_field *prescale_low; - struct regmap_field *prescale_high; - struct regmap_field *pwm_out_en; - struct regmap_field *pwm_cpt_en; - struct regmap_field *pwm_cpt_int_en; - struct regmap_field *pwm_cpt_int_stat; - struct pwm_chip chip; - struct pwm_device *cur; - unsigned long configured; - unsigned int en_count; - struct mutex sti_pwm_lock; - void *mmio; +struct pci_domain_busn_res { + struct list_head list; + struct resource res; + int domain_nr; }; -struct sti_pwm_compat_data { - const struct reg_field *reg_fields; - unsigned int pwm_num_devs; - unsigned int cpt_num_devs; - unsigned int max_pwm_cnt; - unsigned int max_prescale; +struct fb_cvt_data { + u32 xres; + u32 yres; + u32 refresh; + u32 f_refresh; + u32 pixclock; + u32 hperiod; + u32 hblank; + u32 hfreq; + u32 htotal; + u32 vtotal; + u32 vsync; + u32 hsync; + u32 h_front_porch; + u32 h_back_porch; + u32 v_front_porch; + u32 v_back_porch; + u32 h_margin; + u32 v_margin; + u32 interlace; + u32 aspect_ratio; + u32 active_pixels; + u32 flags; + u32 status; }; -struct sti_cpt_ddata { - u32 snapshot[3]; - unsigned int index; - struct mutex lock; - wait_queue_head_t wait; +struct broken_edid { + u8 manufacturer[4]; + u32 model; + u32 fix; }; -enum dw_pcie_app_clk { - DW_PCIE_DBI_CLK = 0, - DW_PCIE_MSTR_CLK = 1, - DW_PCIE_SLV_CLK = 2, - DW_PCIE_NUM_APP_CLKS = 3, +struct __fb_timings { + u32 dclk; + u32 hfreq; + u32 vfreq; + u32 hactive; + u32 vactive; + u32 hblank; + u32 vblank; + u32 htotal; + u32 vtotal; }; -enum dw_pcie_core_clk { - DW_PCIE_PIPE_CLK = 0, - DW_PCIE_CORE_CLK = 1, - DW_PCIE_AUX_CLK = 2, - DW_PCIE_REF_CLK = 3, - DW_PCIE_NUM_CORE_CLKS = 4, +struct bcm53573_ilp { + struct clk_hw hw; + struct regmap *regmap; }; -enum dw_pcie_app_rst { - DW_PCIE_DBI_RST = 0, - DW_PCIE_MSTR_RST = 1, - DW_PCIE_SLV_RST = 2, - DW_PCIE_NUM_APP_RSTS = 3, +struct hisi_mmc_clock { + unsigned int id; + const char *name; + const char *parent_name; + unsigned long flags; + u32 clken_reg; + u32 clken_bit; + u32 div_reg; + u32 div_off; + u32 div_bits; + u32 drv_reg; + u32 drv_off; + u32 drv_bits; + u32 sam_reg; + u32 sam_off; + u32 sam_bits; }; -enum dw_pcie_core_rst { - DW_PCIE_NON_STICKY_RST = 0, - DW_PCIE_STICKY_RST = 1, - DW_PCIE_CORE_RST = 2, - DW_PCIE_PIPE_RST = 3, - DW_PCIE_PHY_RST = 4, - DW_PCIE_HOT_RST = 5, - DW_PCIE_PWR_RST = 6, - DW_PCIE_NUM_CORE_RSTS = 7, +struct clk_mmc { + struct clk_hw hw; + u32 id; + void *clken_reg; + u32 clken_bit; + void *div_reg; + u32 div_off; + u32 div_bits; + void *drv_reg; + u32 drv_off; + u32 drv_bits; + void *sam_reg; + u32 sam_off; + u32 sam_bits; }; -enum dw_edma_chip_flags { - DW_EDMA_CHIP_LOCAL = 1, +struct meson_clk_mpll_data { + struct parm sdm; + struct parm sdm_en; + struct parm n2; + struct parm ssen; + struct parm misc; + const struct reg_sequence *init_regs; + unsigned int init_count; + spinlock_t *lock; + u8 flags; }; -struct clk_lookup_alloc { - struct clk_lookup cl; - char dev_id[20]; - char con_id[16]; +struct clk_apmu { + struct clk_hw hw; + void *base; + u32 rst_mask; + u32 enable_mask; + spinlock_t *lock; }; -struct clockgen_muxinfo; +struct mstp_clock_group; -struct clockgen; +struct mstp_clock___2 { + struct clk_hw hw; + u32 bit_index; + struct mstp_clock_group *group; +}; -struct clockgen_chipinfo { - const char *compat; - const char *guts_compat; - const struct clockgen_muxinfo *cmux_groups[2]; - const struct clockgen_muxinfo *hwaccel[5]; - void (*init_periph)(struct clockgen *); - int cmux_to_group[9]; - u32 pll_mask; - u32 flags; +struct mstp_clock_group { + struct clk_onecell_data data; + void *smstpcr; + void *mstpsr; + spinlock_t lock; + bool width_8bit; + struct clk *clks[0]; }; -struct clockgen_pll_div { - struct clk *clk; - char name[32]; +enum dfll_ctrl_mode { + DFLL_UNINITIALIZED = 0, + DFLL_DISABLED = 1, + DFLL_OPEN_LOOP = 2, + DFLL_CLOSED_LOOP = 3, }; -struct clockgen_pll { - struct clockgen_pll_div div[32]; +enum dfll_tune_range { + DFLL_TUNE_UNINITIALIZED = 0, + DFLL_TUNE_LOW = 1, }; -struct clockgen { - struct device_node *node; - void *regs; - struct clockgen_chipinfo info; - struct clk *sysclk; - struct clk *coreclk; - struct clockgen_pll pll[6]; - struct clk *cmux[8]; - struct clk *hwaccel[5]; - struct clk *fman[2]; - struct ccsr_guts *guts; +enum tegra_dfll_pmu_if { + TEGRA_DFLL_PMU_I2C = 0, + TEGRA_DFLL_PMU_PWM = 1, }; -struct clockgen_sourceinfo { - u32 flags; - int pll; - int div; +struct dfll_rate_req { + unsigned long rate; + unsigned long dvco_target_rate; + int lut_index; + u8 mult_bits; + u8 scale_bits; }; -struct clockgen_muxinfo { - struct clockgen_sourceinfo clksel[16]; +struct tegra_dfll { + struct device *dev; + struct tegra_dfll_soc_data *soc; + void *base; + void *i2c_base; + void *i2c_controller_base; + void *lut_base; + struct regulator *vdd_reg; + struct clk *soc_clk; + struct clk *ref_clk; + struct clk *i2c_clk; + struct clk *dfll_clk; + struct reset_control *dfll_rst; + struct reset_control *dvco_rst; + unsigned long ref_rate; + unsigned long i2c_clk_rate; + unsigned long dvco_rate_min; + enum dfll_ctrl_mode mode; + enum dfll_tune_range tune_range; + struct dentry *debugfs_dir; + struct clk_hw dfll_clk_hw; + const char *output_clock_name; + struct dfll_rate_req last_req; + unsigned long last_unrounded_rate; + u32 droop_ctrl; + u32 sample_rate; + u32 force_mode; + u32 cf; + u32 ci; + u32 cg; + bool cg_scale; + u32 i2c_fs_rate; + u32 i2c_reg; + u32 i2c_slave_addr; + unsigned int lut[33]; + unsigned long lut_uv[33]; + int lut_size; + u8 lut_bottom; + u8 lut_min; + u8 lut_max; + u8 lut_safe; + enum tegra_dfll_pmu_if pmu_if; + unsigned long pwm_rate; + struct pinctrl *pwm_pin; + struct pinctrl_state *pwm_enable_state; + struct pinctrl_state *pwm_disable_state; + u32 reg_init_uV; }; -struct mux_hwclock { - struct clk_hw hw; - struct clockgen *cg; - const struct clockgen_muxinfo *info; - u32 *reg; - u8 parent_to_clksel[16]; - s8 clksel_to_parent[16]; - int num_parents; +struct mtk_mutex_data { + const unsigned int *mutex_mod; + const unsigned int *mutex_sof; + const unsigned int mutex_mod_reg; + const unsigned int mutex_sof_reg; + const unsigned int *mutex_table_mod; + const bool no_clk; +}; + +enum mtk_mutex_sof_id { + MUTEX_SOF_SINGLE_MODE = 0, + MUTEX_SOF_DSI0 = 1, + MUTEX_SOF_DSI1 = 2, + MUTEX_SOF_DPI0 = 3, + MUTEX_SOF_DPI1 = 4, + MUTEX_SOF_DSI2 = 5, + MUTEX_SOF_DSI3 = 6, + MUTEX_SOF_DP_INTF0 = 7, + MUTEX_SOF_DP_INTF1 = 8, + DDP_MUTEX_SOF_MAX = 9, +}; + +enum mtk_mutex_mod_index { + MUTEX_MOD_IDX_MDP_RDMA0 = 0, + MUTEX_MOD_IDX_MDP_RSZ0 = 1, + MUTEX_MOD_IDX_MDP_RSZ1 = 2, + MUTEX_MOD_IDX_MDP_TDSHP0 = 3, + MUTEX_MOD_IDX_MDP_WROT0 = 4, + MUTEX_MOD_IDX_MDP_WDMA = 5, + MUTEX_MOD_IDX_MDP_AAL0 = 6, + MUTEX_MOD_IDX_MDP_CCORR0 = 7, + MUTEX_MOD_IDX_MDP_HDR0 = 8, + MUTEX_MOD_IDX_MDP_COLOR0 = 9, + MUTEX_MOD_IDX_MDP_RDMA1 = 10, + MUTEX_MOD_IDX_MDP_RDMA2 = 11, + MUTEX_MOD_IDX_MDP_RDMA3 = 12, + MUTEX_MOD_IDX_MDP_STITCH0 = 13, + MUTEX_MOD_IDX_MDP_FG0 = 14, + MUTEX_MOD_IDX_MDP_FG1 = 15, + MUTEX_MOD_IDX_MDP_FG2 = 16, + MUTEX_MOD_IDX_MDP_FG3 = 17, + MUTEX_MOD_IDX_MDP_HDR1 = 18, + MUTEX_MOD_IDX_MDP_HDR2 = 19, + MUTEX_MOD_IDX_MDP_HDR3 = 20, + MUTEX_MOD_IDX_MDP_AAL1 = 21, + MUTEX_MOD_IDX_MDP_AAL2 = 22, + MUTEX_MOD_IDX_MDP_AAL3 = 23, + MUTEX_MOD_IDX_MDP_RSZ2 = 24, + MUTEX_MOD_IDX_MDP_RSZ3 = 25, + MUTEX_MOD_IDX_MDP_MERGE2 = 26, + MUTEX_MOD_IDX_MDP_MERGE3 = 27, + MUTEX_MOD_IDX_MDP_TDSHP1 = 28, + MUTEX_MOD_IDX_MDP_TDSHP2 = 29, + MUTEX_MOD_IDX_MDP_TDSHP3 = 30, + MUTEX_MOD_IDX_MDP_COLOR1 = 31, + MUTEX_MOD_IDX_MDP_COLOR2 = 32, + MUTEX_MOD_IDX_MDP_COLOR3 = 33, + MUTEX_MOD_IDX_MDP_OVL0 = 34, + MUTEX_MOD_IDX_MDP_OVL1 = 35, + MUTEX_MOD_IDX_MDP_PAD0 = 36, + MUTEX_MOD_IDX_MDP_PAD1 = 37, + MUTEX_MOD_IDX_MDP_PAD2 = 38, + MUTEX_MOD_IDX_MDP_PAD3 = 39, + MUTEX_MOD_IDX_MDP_TCC0 = 40, + MUTEX_MOD_IDX_MDP_TCC1 = 41, + MUTEX_MOD_IDX_MDP_WROT1 = 42, + MUTEX_MOD_IDX_MDP_WROT2 = 43, + MUTEX_MOD_IDX_MDP_WROT3 = 44, + MUTEX_MOD_IDX_MAX = 45, }; -struct clk_hisi_phase { - struct clk_hw hw; - void *reg; - u32 *phase_degrees; - u32 *phase_regvals; - u8 phase_num; - u32 mask; - u8 shift; - u8 flags; - spinlock_t *lock; +enum mtk_mutex_sof_index { + MUTEX_SOF_IDX_SINGLE_MODE = 0, + MUTEX_SOF_IDX_MAX = 1, }; -struct mtk_ref2usb_tx { - struct clk_hw hw; - void *base_addr; +struct mtk_mutex { + u8 id; + bool claimed; }; -struct mmp_pm_domain { - struct generic_pm_domain genpd; - void *reg; - spinlock_t *lock; - u32 power_on; - u32 reset; - u32 clock_enable; - unsigned int flags; +struct mtk_mutex_ctx { + struct device *dev; + struct clk *clk; + void *regs; + struct mtk_mutex mutex[10]; + const struct mtk_mutex_data *data; + phys_addr_t addr; + struct cmdq_client_reg cmdq_reg; }; -struct clk_smd_rpm; - -struct rpm_smd_clk_desc { - struct clk_smd_rpm **clks; - size_t num_clks; - bool scaling_before_handover; +enum chips___2 { + TPS62360 = 0, + TPS62361 = 1, + TPS62362 = 2, + TPS62363 = 3, }; -struct clk_smd_rpm { - const int rpm_res_type; - const int rpm_key; - const int rpm_clk_id; - const bool active_only; - bool enabled; - bool branch; - struct clk_smd_rpm *peer; - struct clk_hw hw; - unsigned long rate; +struct tps62360_regulator_platform_data { + struct regulator_init_data *reg_init_data; + bool en_discharge; + bool en_internal_pulldn; + int vsel0_def_state; + int vsel1_def_state; }; -struct clk_smd_rpm_req { - __le32 key; - __le32 nbytes; - __le32 value; +struct tps62360_chip { + struct device *dev; + struct regulator_desc desc; + struct regulator_dev *rdev; + struct regmap *regmap; + struct gpio_desc *vsel0_gpio; + struct gpio_desc *vsel1_gpio; + u8 voltage_reg_mask; + bool en_internal_pulldn; + bool en_discharge; + bool valid_gpios; + int lru_index[4]; + int curr_vset_vsel[4]; + int curr_vset_id; }; -enum { - AHB1 = 0, - AHB2 = 1, - APB1 = 2, - APB2 = 3, - PARENT_MAX = 4, +struct tty_file_private { + struct tty_struct *tty; + struct file *file; + struct list_head list; }; -struct sun6i_rtc_match_data { - bool have_ext_osc32k: 1; - bool have_iosc_calibration: 1; - bool rtc_32k_single_parent: 1; - const struct clk_parent_data *osc32k_fanout_parents; - u8 osc32k_fanout_nparents; +struct pl011_dmabuf { + dma_addr_t dma; + size_t len; + char *buf; }; -struct at_dma_platform_data { - unsigned int nr_channels; - dma_cap_mask_t cap_mask; +struct pl011_dmarx_data { + struct dma_chan *chan; + struct completion complete; + bool use_buf_b; + struct pl011_dmabuf dbuf_a; + struct pl011_dmabuf dbuf_b; + dma_cookie_t cookie; + bool running; + struct timer_list timer; + unsigned int last_residue; + unsigned long last_jiffies; + bool auto_poll_rate; + unsigned int poll_rate; + unsigned int poll_timeout; }; -enum atc_status___2 { - ATC_IS_PAUSED = 1, - ATC_IS_CYCLIC = 24, +struct pl011_dmatx_data { + struct dma_chan *chan; + dma_addr_t dma; + size_t len; + char *buf; + bool queued; }; -struct at_dma; - -struct at_desc; - -struct at_dma_chan { - struct virt_dma_chan vc; - struct at_dma *atdma; - void *ch_regs; - u8 mask; - u8 per_if; - u8 mem_if; - unsigned long status; - u32 save_cfg; - u32 save_dscr; - struct dma_slave_config dma_sconfig; - bool cyclic; - struct at_desc *desc; -}; +struct vendor_data___2; -struct at_dma { - struct dma_device dma_device; - void *regs; +struct uart_amba_port { + struct uart_port port; + const u16 *reg_offset; struct clk *clk; - u32 save_imr; - u8 all_chan_mask; - struct dma_pool *lli_pool; - struct dma_pool *memset_pool; - struct at_dma_chan chan[0]; + const struct vendor_data___2 *vendor; + unsigned int dmacr; + unsigned int im; + unsigned int old_status; + unsigned int fifosize; + unsigned int fixed_baud; + char type[12]; + bool rs485_tx_started; + unsigned int rs485_tx_drain_interval; + bool using_tx_dma; + bool using_rx_dma; + struct pl011_dmarx_data dmarx; + struct pl011_dmatx_data dmatx; + bool dma_probed; }; -struct at_lli; - -struct atdma_sg { - unsigned int len; - struct at_lli *lli; - dma_addr_t lli_phys; +struct vendor_data___2 { + const u16 *reg_offset; + unsigned int ifls; + unsigned int fr_busy; + unsigned int fr_dsr; + unsigned int fr_cts; + unsigned int fr_ri; + unsigned int inv_fr; + bool access_32b; + bool oversampling; + bool dma_threshold; + bool cts_event_workaround; + bool always_enabled; + bool fixed_options; + unsigned int (*get_fifosize)(struct amba_device *); }; -struct at_desc { - struct virt_dma_desc vd; - struct at_dma_chan *atchan; - size_t total_len; - unsigned int sglen; - size_t boundary; - size_t dst_hole; - size_t src_hole; - bool memset_buffer; - dma_addr_t memset_paddr; - int *memset_vaddr; - struct atdma_sg sg[0]; +enum { + REG_DR = 0, + REG_ST_DMAWM = 1, + REG_ST_TIMEOUT = 2, + REG_FR = 3, + REG_LCRH_RX = 4, + REG_LCRH_TX = 5, + REG_IBRD = 6, + REG_FBRD = 7, + REG_CR = 8, + REG_IFLS = 9, + REG_IMSC = 10, + REG_RIS = 11, + REG_MIS = 12, + REG_ICR = 13, + REG_DMACR = 14, + REG_ST_XFCR = 15, + REG_ST_XON1 = 16, + REG_ST_XON2 = 17, + REG_ST_XOFF1 = 18, + REG_ST_XOFF2 = 19, + REG_ST_ITCR = 20, + REG_ST_ITIP = 21, + REG_ST_ABCR = 22, + REG_ST_ABIMSC = 23, + REG_ARRAY_SIZE = 24, }; -struct at_lli { - u32 saddr; - u32 daddr; - u32 ctrla; - u32 ctrlb; - u32 dscr; +struct amba_pl011_data { + bool (*dma_filter)(struct dma_chan *, void *); + void *dma_rx_param; + void *dma_tx_param; + bool dma_rx_poll_enable; + unsigned int dma_rx_poll_rate; + unsigned int dma_rx_poll_timeout; + void (*init)(); + void (*exit)(); }; -struct at_dma_slave { - struct device *dma_dev; - u32 cfg; +enum drm_color_lut_tests { + DRM_COLOR_LUT_EQUAL_CHANNELS = 1, + DRM_COLOR_LUT_NON_DECREASING = 2, }; -struct renesas_family; - -struct renesas_soc { - const struct renesas_family *family; - u32 id; +struct drm_mode_crtc_lut { + __u32 crtc_id; + __u32 gamma_size; + __u64 red; + __u64 green; + __u64 blue; }; -struct renesas_family { - const char name[16]; - u32 reg; +struct subsys_dev_iter { + struct klist_iter ki; + const struct device_type *type; }; -struct renesas_id { - unsigned int offset; - u32 mask; +struct container_dev { + struct device dev; + int (*offline)(struct container_dev *); + long: 32; }; -enum { - THRESHOLD_INDEX_0___2 = 0, - THRESHOLD_INDEX_1___2 = 1, - THRESHOLD_INDEX_2 = 2, - THRESHOLD_INDEX_3 = 3, - THRESHOLD_INDEX_4 = 4, - THRESHOLD_INDEX_5 = 5, - THRESHOLD_INDEX_6 = 6, - THRESHOLD_INDEX_7 = 7, - THRESHOLD_INDEX_8 = 8, - THRESHOLD_INDEX_9 = 9, - THRESHOLD_INDEX_10 = 10, - THRESHOLD_INDEX_11 = 11, - THRESHOLD_INDEX_COUNT___2 = 12, +struct regmap_debugfs_node { + struct regmap *map; + struct list_head link; }; -struct tegra_regulator_coupler___2 { - struct regulator_coupler coupler; - struct regulator_dev *core_rdev; - struct regulator_dev *cpu_rdev; - struct regulator_dev *rtc_rdev; - struct notifier_block reboot_notifier; - struct notifier_block suspend_notifier; - int core_min_uV; - int cpu_min_uV; - bool sys_reboot_mode_req; - bool sys_reboot_mode; - bool sys_suspend_mode_req; - bool sys_suspend_mode; +struct regmap_debugfs_off_cache { + struct list_head list; + off_t min; + off_t max; + unsigned int base_reg; + unsigned int max_reg; }; -struct rpm_regulator_data___2 { - const char *name; - u32 type; - u32 id; - const struct regulator_desc *desc; - const char *supply; +struct abx500_device_entry { + struct list_head list; + struct abx500_ops ops; + struct device *dev; }; -struct qcom_rpm_reg___2 { - struct device *dev; - struct qcom_smd_rpm *rpm; - u32 type; - u32 id; - struct regulator_desc desc; - int is_enabled; - int uV; - u32 load; - unsigned int enabled_updated: 1; - unsigned int uv_updated: 1; - unsigned int load_updated: 1; +struct dma_buf_list { + struct list_head head; + struct mutex lock; }; -struct rpm_regulator_req { - __le32 key; - __le32 nbytes; - __le32 value; +struct dma_buf_import_sync_file { + __u32 flags; + __s32 fd; }; -struct uniphier_glue_reset_soc_data { - int nclks; - const char * const *clock_names; - int nrsts; - const char * const *reset_names; +struct dma_buf_export_sync_file { + __u32 flags; + __s32 fd; }; -struct uniphier_glue_reset_priv { - struct clk_bulk_data clk[2]; - struct reset_control_bulk_data rst[2]; - struct reset_simple_data rdata; - const struct uniphier_glue_reset_soc_data *data; +struct dma_buf_sync { + __u64 flags; }; -struct msm_dma { - struct dma_chan *chan; - enum dma_data_direction dir; - dma_addr_t phys; - unsigned char *virt; - dma_cookie_t cookie; - u32 enable_bit; - unsigned int count; - struct dma_async_tx_descriptor *desc; +enum { + mechtype_caddy = 0, + mechtype_tray = 1, + mechtype_popup = 2, + mechtype_individual_changer = 4, + mechtype_cartridge_changer = 5, }; -struct msm_port { - struct uart_port uart; - char name[16]; - struct clk *clk; - struct clk *pclk; - unsigned int imr; - int is_uartdm; - unsigned int old_snap_state; - bool break_detected; - struct msm_dma tx_dma; - struct msm_dma rx_dma; +struct cfi_early_fixup { + uint16_t mfr; + uint16_t id; + void (*fixup)(struct cfi_private *); }; -struct msm_baud_map { - u16 divisor; - u8 code; - u8 rxstale; +enum nand_ecc_legacy_mode { + NAND_ECC_INVALID = 0, + NAND_ECC_NONE = 1, + NAND_ECC_SOFT = 2, + NAND_ECC_SOFT_BCH = 3, + NAND_ECC_HW = 4, + NAND_ECC_HW_SYNDROME = 5, + NAND_ECC_ON_DIE = 6, }; -enum { - UARTDM_1P1 = 1, - UARTDM_1P2 = 2, - UARTDM_1P3 = 3, - UARTDM_1P4 = 4, +struct nand_op_parser_ctx { + const struct nand_op_instr *instrs; + unsigned int ninstrs; + struct nand_subop subop; }; -struct qcom_adm_peripheral_config { - u32 crci; - u32 mux; +struct stm32_qspi_flash { + u32 cs; + u32 presc; }; -struct of_pci_iommu_alias_info { +struct stm32_qspi { struct device *dev; - struct device_node *np; + struct spi_controller *ctrl; + phys_addr_t phys_base; + void *io_base; + void *mm_base; + resource_size_t mm_size; + struct clk *clk; + u32 clk_rate; + struct stm32_qspi_flash flash[2]; + struct completion data_completion; + struct completion match_completion; + u32 fmode; + struct dma_chan *dma_chtx; + struct dma_chan *dma_chrx; + struct completion dma_completion; + u32 cr_reg; + u32 dcr_reg; + unsigned long status_timeout; + struct mutex lock; }; -struct drm_conn_prop_enum_list { - int type; - const char *name; - struct ida ida; +struct iproc_mdio_priv { + struct mii_bus *mii_bus; + void *base; }; -struct drm_mode_connector_set_property { - __u64 value; - __u32 prop_id; - __u32 connector_id; +struct fec_stat { + char name[32]; + u16 offset; }; -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 fec_devinfo { + u32 quirks; }; -struct panel_bridge { - struct drm_bridge bridge; - long: 32; - struct drm_connector connector; - struct drm_panel *panel; - u32 connector_type; +enum { + RX_XDP_REDIRECT = 0, + RX_XDP_PASS = 1, + RX_XDP_DROP = 2, + RX_XDP_TX = 3, + RX_XDP_TX_ERRORS = 4, + TX_XDP_XMIT = 5, + TX_XDP_XMIT_ERRORS = 6, + XDP_STATS_TOTAL = 7, }; -struct panel_delay; - -struct edp_panel_entry { - u32 panel_id; - const struct panel_delay *delay; - const char *name; +struct bufdesc_ex { + struct bufdesc desc; + __le32 cbd_esc; + __le32 cbd_prot; + __le32 cbd_bdu; + __le32 ts; + __le16 res0[4]; }; -struct panel_delay { - unsigned int hpd_reliable; - unsigned int hpd_absent; - unsigned int prepare_to_enable; - unsigned int enable; - unsigned int disable; - unsigned int unprepare; +struct fec_dma_devres { + size_t size; + void *vaddr; + dma_addr_t dma_handle; }; -struct panel_desc___2 { - const struct drm_display_mode *modes; - unsigned int num_modes; - const struct display_timing *timings; - unsigned int num_timings; - unsigned int bpc; - struct { - unsigned int width; - unsigned int height; - } size; - struct panel_delay delay; +struct fec_platform_data { + phy_interface_t phy; + unsigned char mac[6]; + void (*sleep_mode_enable)(int); }; -struct panel_edp { - struct drm_panel base; - bool enabled; - bool no_hpd; - bool prepared; - ktime_t prepared_time; - ktime_t unprepared_time; - const struct panel_desc___2 *desc; - struct regulator *supply; - struct i2c_adapter *ddc; - struct drm_dp_aux *aux; - struct gpio_desc *enable_gpio; - struct gpio_desc *hpd_gpio; - const struct edp_panel_entry *detected_panel; - struct edid *edid; - struct drm_display_mode override_mode; - enum drm_panel_orientation orientation; - long: 32; -}; +struct ethqos_emac_por; -struct virtio_blk_vq; +struct ethqos_emac_driver_data { + const struct ethqos_emac_por *por; + unsigned int num_por; + bool rgmii_config_loopback_en; + bool has_emac_ge_3; + const char *link_clk_name; + bool has_integrated_pcs; + struct dwmac4_addrs dwmac4_addrs; +}; -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 ethqos_emac_por { + unsigned int offset; + unsigned int value; }; -struct virtio_blk_vq { - struct virtqueue *vq; - spinlock_t lock; - char name[16]; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; - long: 32; +struct qcom_ethqos { + struct platform_device *pdev; + void *rgmii_base; + void *mac_base; + int (*configure_func)(struct qcom_ethqos *); + unsigned int link_clk_rate; + struct clk *link_clk; + struct phy *serdes_phy; + unsigned int speed; + phy_interface_t phy_mode; + const struct ethqos_emac_por *por; + unsigned int num_por; + bool rgmii_config_loopback_en; + bool has_emac_ge_3; }; -struct virtio_blk_outhdr { - __virtio32 type; - __virtio32 ioprio; - __virtio64 sector; +enum cpsw_devlink_param_id { + CPSW_DEVLINK_PARAM_ID_BASE = 16, + CPSW_DL_PARAM_SWITCH_MODE = 17, + CPSW_DL_PARAM_ALE_BYPASS = 18, }; -struct virtblk_req { - struct virtio_blk_outhdr out_hdr; - union { - u8 status; - struct { - __virtio64 sector; - u8 status; - long: 32; - } zone_append; - } in_hdr; - size_t in_hdr_len; - struct sg_table sg_table; - struct scatterlist sg[0]; +struct cpsw_devlink { + struct cpsw_common *cpsw; }; -struct virtio_blk_discard_write_zeroes { - __le64 sector; - __le32 num_sectors; - __le32 flags; +struct dwc3_haps { + struct platform_device *dwc3; + struct pci_dev *pci; }; -struct pm_irq_data { - int num_irqs; - struct irq_chip *irq_chip; - irq_handler_t irq_handler; +union udc_setup_data { + u32 data[2]; + struct usb_ctrlrequest request; }; -struct pm_irq_chip { - struct regmap *regmap; - spinlock_t pm_irq_lock; - struct irq_domain *irqdomain; - unsigned int num_blocks; - unsigned int num_masters; - const struct pm_irq_data *pm_irq_data; - u8 config[0]; +struct amd5536udc; + +struct tegra_kbc_hw_support { + int max_rows; + int max_columns; }; -enum brcm_ahci_version { - BRCM_SATA_BCM7425 = 1, - BRCM_SATA_BCM7445 = 2, - BRCM_SATA_NSP = 3, - BRCM_SATA_BCM7216 = 4, +enum tegra_pin_type { + PIN_CFG_IGNORE = 0, + PIN_CFG_COL = 1, + PIN_CFG_ROW = 2, }; -enum brcm_ahci_quirks { - BRCM_AHCI_QUIRK_SKIP_PHY_ENABLE = 1, +struct tegra_kbc_pin_cfg { + enum tegra_pin_type type; + unsigned char num; }; -struct brcm_ahci_priv { +struct tegra_kbc { struct device *dev; - void *top_ctrl; - u32 port_mask; - u32 quirks; - enum brcm_ahci_version version; - struct reset_control *rcdev_rescal; - struct reset_control *rcdev_ahci; + unsigned int debounce_cnt; + unsigned int repeat_cnt; + struct tegra_kbc_pin_cfg pin_cfg[24]; + const struct matrix_keymap_data *keymap_data; + bool wakeup; + void *mmio; + struct input_dev *idev; + int irq; + spinlock_t lock; + unsigned int repoll_dly; + unsigned long cp_dly_jiffies; + unsigned int cp_to_wkup_dly; + bool use_fn_map; + bool use_ghost_filter; + bool keypress_caused_wake; + unsigned short keycode[256]; + unsigned short current_keys[8]; + unsigned int num_pressed_keys; + u32 wakeup_key; + struct timer_list timer; + struct clk *clk; + struct reset_control *rst; + const struct tegra_kbc_hw_support *hw_support; + int max_keys; + int num_rows_and_columns; }; -typedef void (*btf_trace_spi_controller_idle)(void *, struct spi_controller *); - -typedef void (*btf_trace_spi_controller_busy)(void *, struct spi_controller *); - -typedef void (*btf_trace_spi_setup)(void *, struct spi_device *, int); - -typedef void (*btf_trace_spi_set_cs)(void *, struct spi_device *, bool); - -typedef void (*btf_trace_spi_message_submit)(void *, struct spi_message *); - -typedef void (*btf_trace_spi_message_start)(void *, struct spi_message *); - -typedef void (*btf_trace_spi_message_done)(void *, struct spi_message *); +typedef void (*btf_trace_i2c_write)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); -typedef void (*btf_trace_spi_transfer_start)(void *, struct spi_message *, struct spi_transfer *); +typedef void (*btf_trace_i2c_read)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); -typedef void (*btf_trace_spi_transfer_stop)(void *, struct spi_message *, struct spi_transfer *); +typedef void (*btf_trace_i2c_reply)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); -struct boardinfo { - struct list_head list; - struct spi_board_info board_info; -}; +typedef void (*btf_trace_i2c_result)(void *, const struct i2c_adapter *, int, int); -struct trace_event_raw_spi_controller { +struct trace_event_raw_i2c_write { struct trace_entry ent; - int bus_num; + int adapter_nr; + __u16 msg_nr; + __u16 addr; + __u16 flags; + __u16 len; + u32 __data_loc_buf; char __data[0]; }; -struct trace_event_raw_spi_setup { +struct trace_event_raw_i2c_read { struct trace_entry ent; - int bus_num; - int chip_select; - unsigned long mode; - unsigned int bits_per_word; - unsigned int max_speed_hz; - int status; + int adapter_nr; + __u16 msg_nr; + __u16 addr; + __u16 flags; + __u16 len; char __data[0]; }; -struct trace_event_raw_spi_set_cs { +struct trace_event_raw_i2c_reply { struct trace_entry ent; - int bus_num; - int chip_select; - unsigned long mode; - bool enable; + int adapter_nr; + __u16 msg_nr; + __u16 addr; + __u16 flags; + __u16 len; + u32 __data_loc_buf; char __data[0]; }; -struct trace_event_raw_spi_message { +struct trace_event_raw_i2c_result { struct trace_entry ent; - int bus_num; - int chip_select; - struct spi_message *msg; + int adapter_nr; + __u16 nr_msgs; + __s16 ret; char __data[0]; }; -struct trace_event_raw_spi_message_done { - struct trace_entry ent; - int bus_num; - int chip_select; - struct spi_message *msg; - unsigned int frame; - unsigned int actual; - char __data[0]; +struct trace_event_data_offsets_i2c_write { + u32 buf; }; -struct trace_event_raw_spi_transfer { - struct trace_entry ent; - int bus_num; - int chip_select; - struct spi_transfer *xfer; - int len; - u32 __data_loc_rx_buf; - u32 __data_loc_tx_buf; - char __data[0]; +struct trace_event_data_offsets_i2c_reply { + u32 buf; }; -typedef void (*spi_res_release_t)(struct spi_controller *, struct spi_message *, void *); +struct trace_event_data_offsets_i2c_read {}; -struct spi_res { - struct list_head entry; - spi_res_release_t release; - long: 32; - unsigned long long data[0]; -}; +struct trace_event_data_offsets_i2c_result {}; -struct trace_event_data_offsets_spi_transfer { - u32 rx_buf; - u32 tx_buf; +struct i2c_cmd_arg { + unsigned int cmd; + void *arg; }; -struct spi_replaced_transfers; - -typedef void (*spi_replaced_release_t)(struct spi_controller *, struct spi_message *, struct spi_replaced_transfers *); - -struct spi_replaced_transfers { - spi_replaced_release_t release; - void *extradata; - struct list_head replaced_transfers; - struct list_head *replaced_after; - size_t inserted; - struct spi_transfer inserted_transfers[0]; +struct bus_speed_cfg { + uint8_t time_m; + uint8_t time_n; + uint8_t prescale; + uint8_t time_p; + uint8_t no_div; + uint8_t time_div; }; -struct trace_event_data_offsets_spi_controller {}; +struct hs_bus_speed_cfg { + uint8_t hs_hold; + uint8_t hs_high_phase; + uint8_t hs_setup; + uint8_t prescale; + uint8_t time_p; + uint8_t no_div; + uint8_t time_div; +}; -struct trace_event_data_offsets_spi_setup {}; +enum bcm_kona_cmd_t { + BCM_CMD_NOACTION = 0, + BCM_CMD_START = 1, + BCM_CMD_RESTART = 2, + BCM_CMD_STOP = 3, +}; -struct trace_event_data_offsets_spi_set_cs {}; +enum bus_speed_index { + BCM_SPD_100K = 0, + BCM_SPD_400K = 1, + BCM_SPD_1MHZ = 2, +}; -struct trace_event_data_offsets_spi_message {}; +enum hs_bus_speed_index { + BCM_SPD_3P4MHZ = 0, +}; -struct trace_event_data_offsets_spi_message_done {}; +struct bcm_kona_i2c_dev { + struct device *device; + void *base; + int irq; + struct clk *external_clk; + struct i2c_adapter adapter; + struct completion done; + const struct bus_speed_cfg *std_cfg; + const struct hs_bus_speed_cfg *hs_cfg; +}; -struct rtl_cond { - bool (*check)(struct rtl8169_private *); - const char *msg; +struct chip_data___2 { + enum power_supply_property psp; + u8 addr; + int min_value; + int max_value; }; -enum rtl_dash_type { - RTL_DASH_NONE = 0, - RTL_DASH_DP = 1, - RTL_DASH_EP = 2, +enum sbs_capacity_mode { + CAPACITY_MODE_AMPS = 0, + CAPACITY_MODE_WATTS = 32768, }; -struct ring_info { - struct sk_buff *skb; - u32 len; +enum { + REG_MANUFACTURER_DATA = 0, + REG_BATTERY_MODE = 1, + REG_TEMPERATURE = 2, + REG_VOLTAGE = 3, + REG_CURRENT_NOW = 4, + REG_CURRENT_AVG = 5, + REG_MAX_ERR = 6, + REG_CAPACITY = 7, + REG_TIME_TO_EMPTY_NOW = 8, + REG_TIME_TO_EMPTY_AVG = 9, + REG_TIME_TO_FULL_AVG = 10, + REG_STATUS = 11, + REG_CAPACITY_LEVEL = 12, + REG_CYCLE_COUNT = 13, + REG_SERIAL_NUMBER = 14, + REG_REMAINING_CAPACITY = 15, + REG_REMAINING_CAPACITY_CHARGE = 16, + REG_FULL_CHARGE_CAPACITY = 17, + REG_FULL_CHARGE_CAPACITY_CHARGE = 18, + REG_DESIGN_CAPACITY = 19, + REG_DESIGN_CAPACITY_CHARGE = 20, + REG_DESIGN_VOLTAGE_MIN = 21, + REG_DESIGN_VOLTAGE_MAX = 22, + REG_CHEMISTRY = 23, + REG_MANUFACTURER = 24, + REG_MODEL_NAME = 25, + REG_CHARGE_CURRENT = 26, + REG_CHARGE_VOLTAGE = 27, }; -struct rtl8169_tc_offsets { - bool inited; - long: 32; - __le64 tx_errors; - __le32 tx_multi_collision; - __le16 tx_aborted; - __le16 rx_missed; +struct sbs_info { + struct i2c_client *client; + struct power_supply *power_supply; + bool is_present; + struct gpio_desc *gpio_detect; + bool charger_broadcasts; + int last_state; + int poll_time; + u32 i2c_retry_count; + u32 poll_retry_count; + struct delayed_work work; + struct mutex mode_lock; + u32 flags; + int technology; + char strings[99]; }; -struct TxDesc; +struct sbs_platform_data { + u32 i2c_retry_count; + u32 poll_retry_count; +}; -struct RxDesc; +struct sp805_wdt { + struct watchdog_device wdd; + spinlock_t lock; + void *base; + struct clk *clk; + u64 rate; + struct amba_device *adev; + unsigned int load_val; +}; -struct rtl8169_counters; +struct wmt_mci_caps { + unsigned int f_min; + unsigned int f_max; + u32 ocr_avail; + u32 caps; + u32 max_seg_size; + u32 max_segs; + u32 max_blk_size; +}; -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; - raw_spinlock_t config25_lock; - raw_spinlock_t mac_ocp_lock; - raw_spinlock_t cfg9346_usage_lock; - int cfg9346_usage_count; - unsigned int supports_gmii: 1; - unsigned int aspm_manageable: 1; - dma_addr_t counters_phys_addr; - struct rtl8169_counters *counters; - long: 32; - struct rtl8169_tc_offsets tc_offset; - u32 saved_wolopts; - int eee_adv; - const char *fw_name; - struct rtl_fw *rtl_fw; - u32 ocp_base; - long: 32; +struct wmt_dma_descriptor { + u32 flags; + u32 data_buffer_addr; + u32 branch_addr; + u32 reserved1; }; -struct TxDesc { - __le32 opts1; - __le32 opts2; - __le64 addr; +struct wmt_mci_priv { + struct mmc_host *mmc; + void *sdmmc_base; + int irq_regular; + int irq_dma; + void *dma_desc_buffer; + dma_addr_t dma_desc_device_addr; + struct completion cmdcomp; + struct completion datacomp; + struct completion *comp_cmd; + struct completion *comp_dma; + struct mmc_request *req; + struct mmc_command *cmd; + struct clk *clk_sdmmc; + struct device *dev; + u8 power_inverted; + u8 cd_inverted; }; -struct RxDesc { - __le32 opts1; - __le32 opts2; - __le64 addr; +struct cqhci_slot { + struct mmc_request *mrq; + unsigned int flags; }; -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; +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, }; -typedef void (*rtl_generic_fct)(struct rtl8169_private *); +struct tpm_digest { + u16 alg_id; + u8 digest[64]; +}; -struct ephy_info { - unsigned int offset; - u16 mask; - u16 bits; +struct tcg_pcr_event2_head { + u32 pcr_idx; + u32 event_type; + u32 count; + struct tpm_digest digests[0]; }; -struct rtl_mac_info { - u16 mask; - u16 val; - enum mac_version ver; +struct tcg_efi_specid_event_algs { + u16 alg_id; + u16 digest_size; }; -struct rtl_coalesce_info { - u32 speed; - u32 scale_nsecs[4]; +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]; }; -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, +struct tcg_event_field { + u32 event_size; + u8 event[0]; }; -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, +struct tcg_pcr_event { + u32 pcr_idx; + u32 event_type; + u8 digest[20]; + u32 event_size; + u8 event[0]; }; -enum rtl_registers { - MAC0 = 0, - MAC4 = 4, - MAR0 = 8, - CounterAddrLow = 16, - CounterAddrHigh = 20, - TxDescStartAddrLow = 32, - TxDescStartAddrHigh = 36, - TxHDescStartAddrLow = 40, - TxHDescStartAddrHigh = 44, - FLASH = 48, - ERSR = 54, - ChipCmd = 55, - TxPoll = 56, - IntrMask = 60, - IntrStatus = 62, - TxConfig = 64, - RxConfig = 68, - Cfg9346 = 80, - Config0 = 81, - Config1 = 82, - Config2 = 83, - Config3 = 84, - Config4 = 85, - Config5 = 86, - PHYAR = 96, - PHYstatus = 108, - RxMaxSize = 218, - CPlusCmd = 224, - IntrMitigate = 226, - RxDescAddrLow = 228, - RxDescAddrHigh = 232, - EarlyTxThres = 236, - MaxTxPacketSize = 236, - FuncEvent = 240, - FuncEventMask = 244, - FuncPresetState = 248, - IBCR0 = 248, - IBCR2 = 249, - IBIMR0 = 250, - IBISR0 = 251, - FuncForceEvent = 252, +struct efi_tcg2_final_events_table { + u64 version; + u64 nr_events; + u8 events[0]; }; -enum rtl_register_content { - SYSErr = 32768, - PCSTimeout = 16384, - SWInt = 256, - TxDescUnavail = 128, - RxFIFOOver = 64, - LinkChg = 32, - RxOverflow = 16, - TxErr = 8, - TxOK = 4, - RxErr = 2, - RxOK = 1, - RxRWT = 4194304, - RxRES = 2097152, - RxRUNT = 1048576, - RxCRC = 524288, - StopReq = 128, - CmdReset = 16, - CmdRxEnb = 8, - CmdTxEnb = 4, - RxBufEmpty = 1, - HPQ = 128, - NPQ = 64, - FSWInt = 1, - Cfg9346_Lock = 0, - Cfg9346_Unlock = 192, - AcceptErr = 32, - AcceptRunt = 16, - AcceptBroadcast = 8, - AcceptMulticast = 4, - AcceptMyPhys = 2, - AcceptAllPhys = 1, - TxInterFrameGapShift = 24, - TxDMAShift = 8, - LEDS1 = 128, - LEDS0 = 64, - Speed_down = 16, - MEMMAP = 8, - IOMAP = 4, - VPD = 2, - PMEnable = 1, - ClkReqEn = 128, - MSIEnable = 32, - PCI_Clock_66MHz = 1, - PCI_Clock_33MHz = 0, - MagicPacket = 32, - LinkUp = 16, - Jumbo_En0 = 4, - Rdy_to_L23 = 2, - Beacon_en = 1, - Jumbo_En1 = 2, - BWF = 64, - MWF = 32, - UWF = 16, - Spi_en = 8, - LanWake = 2, - PMEStatus = 1, - ASPM_en = 1, - EnableBist = 32768, - Mac_dbgo_oe = 16384, - EnAnaPLL = 16384, - Normal_mode = 8192, - Force_half_dup = 4096, - Force_rxflow_en = 2048, - Force_txflow_en = 1024, - Cxpl_dbg_sel = 512, - ASF = 256, - PktCntrDisable = 128, - Mac_dbgo_sel = 28, - RxVlan = 64, - RxChkSum = 32, - PCIDAC = 16, - PCIMulRW = 8, - TBI_Enable = 128, - TxFlowCtrl = 64, - RxFlowCtrl = 32, - _1000bpsF = 16, - _100bps = 8, - _10bps = 4, - LinkStatus = 2, - FullDup = 1, - CounterReset = 1, - CounterDump = 8, - MagicPacket_v2 = 65536, +struct linux_efi_tpm_eventlog { + u32 size; + u32 final_events_preboot_size; + u8 version; + u8 log[0]; }; -enum rtl_desc_bit { - DescOwn = -2147483648, - RingEnd = 1073741824, - FirstFrag = 536870912, - LastFrag = 268435456, +enum efi_rts_ids { + EFI_NONE = 0, + EFI_GET_TIME = 1, + EFI_SET_TIME = 2, + EFI_GET_WAKEUP_TIME = 3, + EFI_SET_WAKEUP_TIME = 4, + EFI_GET_VARIABLE = 5, + EFI_GET_NEXT_VARIABLE = 6, + EFI_SET_VARIABLE = 7, + EFI_QUERY_VARIABLE_INFO = 8, + EFI_GET_NEXT_HIGH_MONO_COUNT = 9, + EFI_RESET_SYSTEM = 10, + EFI_UPDATE_CAPSULE = 11, + EFI_QUERY_CAPSULE_CAPS = 12, + EFI_ACPI_PRM_HANDLER = 13, }; -enum rtl_flag { - RTL_FLAG_TASK_ENABLED = 0, - RTL_FLAG_TASK_RESET_PENDING = 1, - RTL_FLAG_TASK_TX_TIMEOUT = 2, - RTL_FLAG_MAX = 3, +union efi_rts_args; + +struct efi_runtime_work { + union efi_rts_args *args; + efi_status_t status; + struct work_struct work; + enum efi_rts_ids efi_rts_id; + struct completion efi_rts_comp; + const void *caller; }; -enum rtl8125_registers { - IntrMask_8125 = 56, - IntrStatus_8125 = 60, - TxPoll_8125 = 144, - MAC0_BKP = 6624, - EEE_TXIDLE_TIMER_8125 = 24648, +union efi_rts_args { + struct { + efi_time_t *time; + efi_time_cap_t *capabilities; + } GET_TIME; + struct { + efi_time_t *time; + } SET_TIME; + struct { + efi_bool_t *enabled; + efi_bool_t *pending; + efi_time_t *time; + } GET_WAKEUP_TIME; + struct { + efi_bool_t enable; + efi_time_t *time; + } SET_WAKEUP_TIME; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 *attr; + unsigned long *data_size; + void *data; + } GET_VARIABLE; + struct { + unsigned long *name_size; + efi_char16_t *name; + efi_guid_t *vendor; + } GET_NEXT_VARIABLE; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 attr; + unsigned long data_size; + void *data; + } SET_VARIABLE; + struct { + u32 attr; + u64 *storage_space; + u64 *remaining_space; + u64 *max_variable_size; + } QUERY_VARIABLE_INFO; + struct { + u32 *high_count; + } GET_NEXT_HIGH_MONO_COUNT; + struct { + efi_capsule_header_t **capsules; + unsigned long count; + unsigned long sg_list; + } UPDATE_CAPSULE; + struct { + efi_capsule_header_t **capsules; + unsigned long count; + u64 *max_size; + int *reset_type; + } QUERY_CAPSULE_CAPS; + struct { + efi_status_t (*acpi_prm_handler)(u64, void *); + long: 32; + u64 param_buffer_addr; + void *context; + long: 32; + } ACPI_PRM_HANDLER; }; -enum rtl_tx_desc_bit { - TD_LSO = 134217728, - TxVlanTag = 131072, +struct qcom_scm { + struct device *dev; + struct clk *core_clk; + struct clk *iface_clk; + struct clk *bus_clk; + struct icc_path *path; + struct completion waitq_comp; + struct reset_controller_dev reset; + struct mutex scm_bw_lock; + int scm_vote_count; + u64 dload_mode_addr; }; -enum rtl_tx_desc_bit_0 { - TD0_TCP_CS = 65536, - TD0_UDP_CS = 131072, - TD0_IP_CS = 262144, +enum qcom_scm_arg_types { + QCOM_SCM_VAL = 0, + QCOM_SCM_RO = 1, + QCOM_SCM_RW = 2, + QCOM_SCM_BUFVAL = 3, }; -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 qcom_scm_ocmem_client { + QCOM_SCM_OCMEM_UNUSED_ID = 0, + QCOM_SCM_OCMEM_GRAPHICS_ID = 1, + QCOM_SCM_OCMEM_VIDEO_ID = 2, + QCOM_SCM_OCMEM_LP_AUDIO_ID = 3, + QCOM_SCM_OCMEM_SENSORS_ID = 4, + QCOM_SCM_OCMEM_OTHER_OS_ID = 5, + QCOM_SCM_OCMEM_DEBUG_ID = 6, }; -enum rtl_rx_desc_bit { - PID1 = 262144, - PID0 = 131072, - IPFail = 65536, - UDPFail = 32768, - TCPFail = 16384, - RxVlanTag = 65536, +enum qcom_scm_ice_cipher { + QCOM_SCM_ICE_CIPHER_AES_128_XTS = 0, + QCOM_SCM_ICE_CIPHER_AES_128_CBC = 1, + QCOM_SCM_ICE_CIPHER_AES_256_XTS = 3, + QCOM_SCM_ICE_CIPHER_AES_256_CBC = 4, }; -struct ax88179_data { - u8 eee_enabled; - u8 eee_active; - u16 rxctl; - u8 in_pm; - u32 wol_supported; - u32 wolopts; +struct qcom_scm_pas_metadata { + void *ptr; + dma_addr_t phys; + ssize_t size; }; -struct ax88179_int_data { - __le32 intdata1; - __le32 intdata2; +struct qcom_scm_vmperm { + int vmid; + int perm; }; -union input_seq_state { - struct { - unsigned short pos; - bool mutex_acquired; - }; - void *p; +struct qcom_scm_mem_map_info { + __le64 mem_addr; + __le64 mem_size; }; -struct input_devres { - struct input_dev *input; +struct qcom_scm_current_perm_info { + __le32 vmid; + __le32 perm; + __le64 ctx; + __le32 ctx_size; + __le32 unused; }; -struct i2c_vendor_data { - bool has_mtdws; - u32 fifodepth; +struct qcom_scm_hdcp_req { + u32 addr; + u32 val; }; -enum i2c_operation { - I2C_NO_OPERATION = 255, - I2C_WRITE = 0, - I2C_READ = 1, +struct samsung_pwm_variant { + u8 bits; + u8 div_base; + u8 tclk_mask; + u8 output_mask; + bool has_tint_cstat; }; -enum i2c_freq_mode { - I2C_FREQ_MODE_STANDARD = 0, - I2C_FREQ_MODE_FAST = 1, - I2C_FREQ_MODE_HIGH_SPEED = 2, - I2C_FREQ_MODE_FAST_PLUS = 3, +struct samsung_pwm_clocksource { + void *base; + const void *source_reg; + unsigned int irq[5]; + struct samsung_pwm_variant variant; + struct clk *timerclk; + unsigned int event_id; + unsigned int source_id; + unsigned int tcnt_max; + unsigned int tscaler_div; + unsigned int tdiv; + unsigned long clock_count_per_tick; }; -enum i2c_status { - I2C_NOP = 0, - I2C_ON_GOING = 1, - I2C_OK = 2, - I2C_ABORT = 3, +enum nvec_msg_category { + NVEC_MSG_RX = 0, + NVEC_MSG_TX = 1, }; -struct i2c_nmk_client { - unsigned short slave_adr; - unsigned long count; - unsigned char *buffer; - unsigned long xfer_bytes; - enum i2c_operation operation; +enum nvec_sleep_subcmds { + GLOBAL_EVENTS = 0, + AP_PWR_DOWN = 1, + AP_SUSPEND = 2, }; -struct nmk_i2c_dev { - struct i2c_vendor_data *vendor; - struct amba_device *adev; - struct i2c_adapter adap; - int irq; - void *virtbase; - struct clk *clk; - struct i2c_nmk_client cli; - u32 clk_freq; - unsigned char tft; - unsigned char rft; - int timeout; - enum i2c_freq_mode sm; - int stop; - struct completion xfer_complete; - int result; +struct __extcon_info { + unsigned int type; + unsigned int id; + const char *name; }; -struct cpufreq_cooling_device { - u32 last_load; - unsigned int cpufreq_state; - unsigned int max_level; - struct em_perf_domain *em; - struct cpufreq_policy *policy; - struct thermal_cooling_device_ops cooling_ops; - struct freq_qos_request qos_req; +union extcon_property_value { + int intval; }; -struct st_wdog_syscfg { - unsigned int reset_type_reg; - unsigned int reset_type_mask; - unsigned int enable_reg; - unsigned int enable_mask; +struct extcon_cable { + struct extcon_dev *edev; + int cable_index; + struct attribute_group attr_g; + struct device_attribute attr_name; + struct device_attribute attr_state; + struct attribute *attrs[3]; + union extcon_property_value usb_propval[3]; + union extcon_property_value chg_propval[1]; + union extcon_property_value jack_propval[1]; + union extcon_property_value disp_propval[2]; + unsigned long usb_bits[1]; + unsigned long chg_bits[1]; + unsigned long jack_bits[1]; + unsigned long disp_bits[1]; }; -struct st_wdog { - void *base; - struct device *dev; - struct regmap *regmap; - struct st_wdog_syscfg *syscfg; - struct clk *clk; - unsigned long clkrate; - bool warm_reset; +struct broadcast_sk { + struct sock *sk; + struct work_struct work; }; -struct hb_l2_drvdata { - void *base; - int sb_irq; - int db_irq; +struct sock_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; }; -struct esdhc_soc_data { - u32 flags; +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, }; -enum wp_types { - ESDHC_WP_NONE = 0, - ESDHC_WP_CONTROLLER = 1, - ESDHC_WP_GPIO = 2, +struct rss_req_info { + struct ethnl_req_info base; + u32 rss_context; }; -enum cd_types___2 { - ESDHC_CD_NONE = 0, - ESDHC_CD_CONTROLLER = 1, - ESDHC_CD_GPIO = 2, - ESDHC_CD_PERMANENT = 3, +struct rss_reply_data { + struct ethnl_reply_data base; + u32 indir_size; + u32 hkey_size; + u32 hfunc; + u32 *indir_table; + u8 *hkey; }; -struct esdhc_platform_data { - enum wp_types wp_type; - enum cd_types___2 cd_type; - int max_bus_width; - unsigned int delay_line; - unsigned int tuning_step; - unsigned int tuning_start_tap; - unsigned int strobe_dll_delay_target; +struct tcp_plb_state { + u8 consec_cong_rounds: 5; + u8 unused: 3; + u32 pause_until; }; -struct pltfm_imx_data { - u32 scratchpad; - struct pinctrl *pinctrl; - struct pinctrl_state *pins_100mhz; - struct pinctrl_state *pins_200mhz; - const struct esdhc_soc_data *socdata; - struct esdhc_platform_data boarddata; - struct clk *clk_ipg; - struct clk *clk_ahb; - struct clk *clk_per; - unsigned int actual_clock; - unsigned int init_card_type; - enum { - NO_CMD_PENDING = 0, - MULTIBLK_IN_PROCESS = 1, - WAIT_FOR_INT = 2, - } multiblock_status; - u32 is_ddr; - struct pm_qos_request pm_qos_req; +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 bcm2835_mbox { - void *regs; - spinlock_t lock; - struct mbox_controller controller; +struct xfrm_if_decode_session_result { + struct net *net; + u32 if_id; }; 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, + XFRM_POLICY_TYPE_MAIN = 0, + XFRM_POLICY_TYPE_SUB = 1, + XFRM_POLICY_TYPE_MAX = 2, + XFRM_POLICY_TYPE_ANY = 255, }; -enum genl_validate_flags { - GENL_DONT_VALIDATE_STRICT = 1, - GENL_DONT_VALIDATE_DUMP = 2, - GENL_DONT_VALIDATE_DUMP_STRICT = 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, }; -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, +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; }; -enum { - CTRL_ATTR_OP_UNSPEC = 0, - CTRL_ATTR_OP_ID = 1, - CTRL_ATTR_OP_FLAGS = 2, - __CTRL_ATTR_OP_MAX = 3, +struct xfrm_pol_inexact_key { + possible_net_t net; + u32 if_id; + u16 family; + u8 dir; + u8 type; }; -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, +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; }; -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 xfrm_pol_inexact_candidates { + struct hlist_head *res[4]; }; -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; +struct xfrm_flo { + struct dst_entry *dst_orig; u8 flags; }; -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 xfrm_flow_keys { + struct flow_dissector_key_basic basic; + struct flow_dissector_key_control control; + union { + struct flow_dissector_key_ipv4_addrs ipv4; + struct flow_dissector_key_ipv6_addrs ipv6; + } addrs; + struct flow_dissector_key_ip ip; + struct flow_dissector_key_icmp icmp; + struct flow_dissector_key_ports ports; + struct flow_dissector_key_keyid gre; }; -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; +struct xfrmk_spdinfo { + u32 incnt; + u32 outcnt; + u32 fwdcnt; + u32 inscnt; + u32 outscnt; + u32 fwdscnt; + u32 spdhcnt; + u32 spdhmcnt; }; -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, +struct xfrm_policy_walk { + struct xfrm_policy_walk_entry walk; + u8 type; + u32 seq; }; 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; - long: 32; - struct ethtool_mm_stats stats; + CGW_UNSPEC = 0, + CGW_MOD_AND = 1, + CGW_MOD_OR = 2, + CGW_MOD_XOR = 3, + CGW_MOD_SET = 4, + CGW_CS_XOR = 5, + CGW_CS_CRC8 = 6, + CGW_HANDLED = 7, + CGW_DROPPED = 8, + CGW_SRC_IF = 9, + CGW_DST_IF = 10, + CGW_FILTER = 11, + CGW_DELETED = 12, + CGW_LIM_HOPS = 13, + CGW_MOD_UID = 14, + CGW_FDMOD_AND = 15, + CGW_FDMOD_OR = 16, + CGW_FDMOD_XOR = 17, + CGW_FDMOD_SET = 18, + __CGW_MAX = 19, }; -struct icmp_err { - int errno; - unsigned int fatal: 1; +enum { + CGW_TYPE_UNSPEC = 0, + CGW_TYPE_CAN_CAN = 1, + __CGW_TYPE_MAX = 2, }; -struct icmp_control { - enum skb_drop_reason (*handler)(struct sk_buff *); - short error; +enum { + CGW_CRC8PRF_UNSPEC = 0, + CGW_CRC8PRF_1U8 = 1, + CGW_CRC8PRF_16U8 = 2, + CGW_CRC8PRF_SFFID_XOR = 3, + __CGW_CRC8PRF_MAX = 4, }; -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 can_can_gw { + struct can_filter filter; + int src_idx; + int dst_idx; }; -struct icmp_extobj_hdr { - __be16 length; - __u8 class_num; - __u8 class_type; +struct cgw_csum_xor { + __s8 from_idx; + __s8 to_idx; + __s8 result_idx; + __u8 init_xor_val; }; -struct icmp_ext_hdr { - __u8 reserved1: 4; - __u8 version: 4; - __u8 reserved2; - __sum16 checksum; +struct cgw_csum_crc8 { + __s8 from_idx; + __s8 to_idx; + __s8 result_idx; + __u8 init_crc_val; + __u8 final_xor_val; + __u8 crctab[256]; + __u8 profile; + __u8 profile_data[20]; }; -struct icmp_ext_echo_ctype3_hdr { - __be16 afi; - __u8 addrlen; - __u8 reserved; +struct cf_mod { + struct { + struct canfd_frame and; + struct canfd_frame or; + struct canfd_frame xor; + struct canfd_frame set; + } modframe; + struct { + u8 and; + u8 or; + u8 xor; + u8 set; + } modtype; + void (*modfunc[16])(struct canfd_frame *, struct cf_mod *); + struct { + struct cgw_csum_xor xor; + struct cgw_csum_crc8 crc8; + } csum; + struct { + void (*xor)(struct canfd_frame *, struct cgw_csum_xor *); + void (*crc8)(struct canfd_frame *, struct cgw_csum_crc8 *); + } csumfunc; + u32 uid; }; -struct icmp_ext_echo_iio { - struct icmp_extobj_hdr extobj_hdr; +struct cgw_job { + struct hlist_node list; + struct callback_head rcu; + u32 handled_frames; + u32 dropped_frames; + u32 deleted_frames; + long: 32; + struct cf_mod mod; union { - char name[16]; - __be32 ifindex; - struct { - struct icmp_ext_echo_ctype3_hdr ctype3_hdr; - union { - __be32 ipv4_addr; - struct in6_addr ipv6_addr; - } ip_addr; - } addr; - } ident; + struct net_device *dev; + } src; + union { + struct net_device *dev; + } dst; + union { + struct can_can_gw ccgw; + }; + u8 gwtype; + u8 limit_hops; + u16 flags; + long: 32; }; -struct xfrm_trans_tasklet { - struct work_struct work; - spinlock_t queue_lock; - struct sk_buff_head queue; +struct rtcanmsg { + __u8 can_family; + __u8 gwtype; + __u16 flags; }; -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 cgw_frame_mod { + struct can_frame cf; + __u8 modtype; +} __attribute__((packed)); -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; - long: 32; - 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; - long: 32; +struct cgw_fdframe_mod { + struct canfd_frame cf; + __u8 modtype; +} __attribute__((packed)); + +struct svc_pool_map { + int count; + int mode; + unsigned int npools; + unsigned int *pool_to; + unsigned int *to_pool; }; -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; +enum { + SVC_POOL_AUTO = -1, + SVC_POOL_GLOBAL = 0, + SVC_POOL_PERCPU = 1, + SVC_POOL_PERNODE = 2, }; -struct xdr_skb_reader { - struct sk_buff *skb; - unsigned int offset; - size_t count; - __wsum csum; +enum rpc_reply_stat { + RPC_MSG_ACCEPTED = 0, + RPC_MSG_DENIED = 1, }; -typedef size_t (*xdr_skb_read_actor)(struct xdr_skb_reader *, void *, size_t); +enum rpc_reject_stat { + RPC_MISMATCH = 0, + RPC_AUTH_ERROR = 1, +}; -struct sockaddr_xdp { - __u16 sxdp_family; - __u16 sxdp_flags; - __u32 sxdp_ifindex; - __u32 sxdp_queue_id; - __u32 sxdp_shared_umem_fd; +enum { + XDP_DIAG_NONE = 0, + XDP_DIAG_INFO = 1, + XDP_DIAG_UID = 2, + XDP_DIAG_RX_RING = 3, + XDP_DIAG_TX_RING = 4, + XDP_DIAG_UMEM = 5, + XDP_DIAG_UMEM_FILL_RING = 6, + XDP_DIAG_UMEM_COMPLETION_RING = 7, + XDP_DIAG_MEMINFO = 8, + XDP_DIAG_STATS = 9, + __XDP_DIAG_MAX = 10, }; -struct xdp_ring_offset_v1 { - __u64 producer; - __u64 consumer; - __u64 desc; +struct xdp_diag_stats { + __u64 n_rx_dropped; + __u64 n_rx_invalid; + __u64 n_rx_full; + __u64 n_fill_ring_empty; + __u64 n_tx_invalid; + __u64 n_tx_ring_empty; }; -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_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u16 pad; + __u32 xdiag_ino; + __u32 xdiag_show; + __u32 xdiag_cookie[2]; }; -struct xdp_ring_offset { - __u64 producer; - __u64 consumer; - __u64 desc; - __u64 flags; +struct xdp_diag_msg { + __u8 xdiag_family; + __u8 xdiag_type; + __u16 pad; + __u32 xdiag_ino; + __u32 xdiag_cookie[2]; }; -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_diag_info { + __u32 ifindex; + __u32 queue_id; }; -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_diag_ring { + __u32 entries; }; -struct xdp_options { +struct xdp_diag_umem { + __u64 size; + __u32 id; + __u32 num_pages; + __u32 chunk_size; + __u32 headroom; + __u32 ifindex; + __u32 queue_id; __u32 flags; + __u32 refs; }; #ifndef BPF_NO_PRESERVE_ACCESS_INDEX diff --git a/crates/bpf-builder/include/riscv64/vmlinux.h b/crates/bpf-builder/include/riscv64/vmlinux.h index 545efbd9..e38f7d98 120000 --- a/crates/bpf-builder/include/riscv64/vmlinux.h +++ b/crates/bpf-builder/include/riscv64/vmlinux.h @@ -1 +1 @@ -vmlinux_6_5_2.h \ No newline at end of file +vmlinux_6_7_2.h \ No newline at end of file diff --git a/crates/bpf-builder/include/riscv64/vmlinux_6_5_2.h b/crates/bpf-builder/include/riscv64/vmlinux_6_7_2.h similarity index 91% rename from crates/bpf-builder/include/riscv64/vmlinux_6_5_2.h rename to crates/bpf-builder/include/riscv64/vmlinux_6_7_2.h index a6a785c6..101ccea6 100644 --- a/crates/bpf-builder/include/riscv64/vmlinux_6_5_2.h +++ b/crates/bpf-builder/include/riscv64/vmlinux_6_7_2.h @@ -1,5 +1,5 @@ // File autogenerated with `cargo xtask vmlinux`. DO NOT EDIT MANUALLY! -// Kernel 6.5.2 compiled with clang +// Kernel 6.7.2 compiled with clang-15 #ifndef __VMLINUX_H__ #define __VMLINUX_H__ @@ -8,547 +8,272 @@ #pragma clang attribute push (__attribute__((preserve_access_index)), apply_to = record) #endif -typedef _Bool bool; - -typedef struct { - int counter; -} atomic_t; +struct attribute_group; -typedef atomic_t arch_spinlock_t; +struct cacheinfo; -struct raw_spinlock { - arch_spinlock_t raw_lock; - unsigned int magic; - unsigned int owner_cpu; - void *owner; +struct riscv_cacheinfo_ops { + const struct attribute_group * (*get_priv_group)(struct cacheinfo *); }; -typedef struct raw_spinlock raw_spinlock_t; +typedef unsigned short umode_t; + +struct kobject; + +struct attribute; + +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; +}; struct list_head { struct list_head *next; struct list_head *prev; }; -struct swait_queue_head { - raw_spinlock_t lock; - struct list_head task_list; -}; +typedef struct { + int counter; +} atomic_t; -struct completion { - unsigned int done; - struct swait_queue_head wait; +struct refcount_struct { + atomic_t refs; }; -enum { - false = 0, - true = 1, -}; +typedef struct refcount_struct refcount_t; -enum hrtimer_restart { - HRTIMER_NORESTART = 0, - HRTIMER_RESTART = 1, +struct kref { + refcount_t refcount; }; -enum pid_type { - PIDTYPE_PID = 0, - PIDTYPE_TGID = 1, - PIDTYPE_PGID = 2, - PIDTYPE_SID = 3, - PIDTYPE_MAX = 4, -}; +struct kset; -enum module_state { - MODULE_STATE_LIVE = 0, - MODULE_STATE_COMING = 1, - MODULE_STATE_GOING = 2, - MODULE_STATE_UNFORMED = 3, -}; +struct kobj_type; -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 kernfs_node; -enum page_entry_size { - PE_SIZE_PTE = 0, - PE_SIZE_PMD = 1, - PE_SIZE_PUD = 2, +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; }; -enum fault_flag { - FAULT_FLAG_WRITE = 1, - FAULT_FLAG_MKWRITE = 2, - FAULT_FLAG_ALLOW_RETRY = 4, - FAULT_FLAG_RETRY_NOWAIT = 8, - FAULT_FLAG_KILLABLE = 16, - FAULT_FLAG_TRIED = 32, - FAULT_FLAG_USER = 64, - FAULT_FLAG_REMOTE = 128, - FAULT_FLAG_INSTRUCTION = 256, - FAULT_FLAG_INTERRUPTIBLE = 512, - FAULT_FLAG_UNSHARE = 1024, - FAULT_FLAG_ORIG_PTE_VALID = 2048, - FAULT_FLAG_VMA_LOCK = 4096, -}; +typedef atomic_t arch_spinlock_t; -enum migrate_mode { - MIGRATE_ASYNC = 0, - MIGRATE_SYNC_LIGHT = 1, - MIGRATE_SYNC = 2, - MIGRATE_SYNC_NO_COPY = 3, +struct raw_spinlock { + arch_spinlock_t raw_lock; + unsigned int magic; + unsigned int owner_cpu; + void *owner; }; -enum kobj_ns_type { - KOBJ_NS_TYPE_NONE = 0, - KOBJ_NS_TYPE_NET = 1, - KOBJ_NS_TYPES = 2, +struct spinlock { + union { + struct raw_spinlock rlock; + }; }; -enum quota_type { - USRQUOTA = 0, - GRPQUOTA = 1, - PRJQUOTA = 2, -}; +typedef struct spinlock spinlock_t; -enum timespec_type { - TT_NONE = 0, - TT_NATIVE = 1, - TT_COMPAT = 2, -}; +struct kset_uevent_ops; -enum uprobe_task_state { - UTASK_RUNNING = 0, - UTASK_SSTEP = 1, - UTASK_SSTEP_ACK = 2, - UTASK_SSTEP_TRAPPED = 3, +struct kset { + struct list_head list; + spinlock_t list_lock; + struct kobject kobj; + const struct kset_uevent_ops *uevent_ops; }; -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_BP_KICK_AP = 93, - CPUHP_BRINGUP_CPU = 94, - CPUHP_AP_IDLE_DEAD = 95, - CPUHP_AP_OFFLINE = 96, - CPUHP_AP_CACHECTRL_STARTING = 97, - CPUHP_AP_SCHED_STARTING = 98, - CPUHP_AP_RCUTREE_DYING = 99, - CPUHP_AP_CPU_PM_STARTING = 100, - CPUHP_AP_IRQ_GIC_STARTING = 101, - CPUHP_AP_IRQ_HIP04_STARTING = 102, - CPUHP_AP_IRQ_APPLE_AIC_STARTING = 103, - CPUHP_AP_IRQ_ARMADA_XP_STARTING = 104, - CPUHP_AP_IRQ_BCM2836_STARTING = 105, - CPUHP_AP_IRQ_MIPS_GIC_STARTING = 106, - CPUHP_AP_IRQ_RISCV_STARTING = 107, - CPUHP_AP_IRQ_LOONGARCH_STARTING = 108, - CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 109, - CPUHP_AP_ARM_MVEBU_COHERENCY = 110, - CPUHP_AP_MICROCODE_LOADER = 111, - CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 112, - CPUHP_AP_PERF_X86_STARTING = 113, - CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 114, - CPUHP_AP_PERF_X86_CQM_STARTING = 115, - CPUHP_AP_PERF_X86_CSTATE_STARTING = 116, - CPUHP_AP_PERF_XTENSA_STARTING = 117, - CPUHP_AP_MIPS_OP_LOONGSON3_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_HYPERV_ONLINE = 153, - CPUHP_AP_KVM_ONLINE = 154, - CPUHP_AP_SCHED_WAIT_EMPTY = 155, - CPUHP_AP_SMPBOOT_THREADS = 156, - CPUHP_AP_X86_VDSO_VMA_ONLINE = 157, - CPUHP_AP_IRQ_AFFINITY_ONLINE = 158, - CPUHP_AP_BLK_MQ_ONLINE = 159, - CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 160, - CPUHP_AP_X86_INTEL_EPB_ONLINE = 161, - CPUHP_AP_PERF_ONLINE = 162, - CPUHP_AP_PERF_X86_ONLINE = 163, - CPUHP_AP_PERF_X86_UNCORE_ONLINE = 164, - CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 165, - CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 166, - CPUHP_AP_PERF_X86_RAPL_ONLINE = 167, - CPUHP_AP_PERF_X86_CQM_ONLINE = 168, - CPUHP_AP_PERF_X86_CSTATE_ONLINE = 169, - CPUHP_AP_PERF_X86_IDXD_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 kobj_uevent_env; -enum probe_type { - PROBE_DEFAULT_STRATEGY = 0, - PROBE_PREFER_ASYNCHRONOUS = 1, - PROBE_FORCE_SYNCHRONOUS = 2, +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 *); }; -enum dl_dev_state { - DL_DEV_NO_DRIVER = 0, - DL_DEV_PROBING = 1, - DL_DEV_DRIVER_BOUND = 2, - DL_DEV_UNBINDING = 3, +struct kobj_uevent_env { + char *argv[3]; + char *envp[64]; + int envp_idx; + char buf[2048]; + int buflen; }; -enum rpm_request { - RPM_REQ_NONE = 0, - RPM_REQ_IDLE = 1, - RPM_REQ_SUSPEND = 2, - RPM_REQ_AUTOSUSPEND = 3, - RPM_REQ_RESUME = 4, -}; +typedef unsigned int __kernel_uid32_t; -enum rpm_status { - RPM_INVALID = -1, - RPM_ACTIVE = 0, - RPM_RESUMING = 1, - RPM_SUSPENDED = 2, - RPM_SUSPENDING = 3, -}; +typedef __kernel_uid32_t uid_t; -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, -}; +typedef struct { + uid_t val; +} kuid_t; -enum device_physical_location_vertical_position { - DEVICE_VERT_POS_UPPER = 0, - DEVICE_VERT_POS_CENTER = 1, - DEVICE_VERT_POS_LOWER = 2, -}; +typedef unsigned int __kernel_gid32_t; -enum device_physical_location_horizontal_position { - DEVICE_HORI_POS_LEFT = 0, - DEVICE_HORI_POS_CENTER = 1, - DEVICE_HORI_POS_RIGHT = 2, -}; +typedef __kernel_gid32_t gid_t; -enum device_removable { - DEVICE_REMOVABLE_NOT_SUPPORTED = 0, - DEVICE_REMOVABLE_UNKNOWN = 1, - DEVICE_FIXED = 2, - DEVICE_REMOVABLE = 3, -}; +typedef struct { + gid_t val; +} kgid_t; -enum dev_dma_attr { - DEV_DMA_NOT_SUPPORTED = 0, - DEV_DMA_NON_COHERENT = 1, - DEV_DMA_COHERENT = 2, -}; +struct sysfs_ops; -enum acpi_madt_type { - ACPI_MADT_TYPE_LOCAL_APIC = 0, - ACPI_MADT_TYPE_IO_APIC = 1, - ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2, - ACPI_MADT_TYPE_NMI_SOURCE = 3, - ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4, - ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5, - ACPI_MADT_TYPE_IO_SAPIC = 6, - ACPI_MADT_TYPE_LOCAL_SAPIC = 7, - ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8, - ACPI_MADT_TYPE_LOCAL_X2APIC = 9, - ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, - ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, - ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, - ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, - ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, - ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, - ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, - ACPI_MADT_TYPE_CORE_PIC = 17, - ACPI_MADT_TYPE_LIO_PIC = 18, - ACPI_MADT_TYPE_HT_PIC = 19, - ACPI_MADT_TYPE_EIO_PIC = 20, - ACPI_MADT_TYPE_MSI_PIC = 21, - ACPI_MADT_TYPE_BIO_PIC = 22, - ACPI_MADT_TYPE_LPC_PIC = 23, - ACPI_MADT_TYPE_RINTC = 24, - ACPI_MADT_TYPE_RESERVED = 25, - ACPI_MADT_TYPE_OEM_RESERVED = 128, -}; +struct kobj_ns_type_operations; -struct thread_info { - unsigned long flags; - int preempt_count; - long kernel_sp; - long user_sp; - int cpu; - unsigned long syscall_work; +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 *); }; -struct cpumask { - unsigned long bits[1]; -}; +typedef long __kernel_long_t; -typedef unsigned char __u8; +typedef __kernel_long_t __kernel_ssize_t; -typedef __u8 u8; +typedef __kernel_ssize_t ssize_t; -struct acpi_subtable_header { - u8 type; - u8 length; +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 int __u32; +struct attribute { + const char *name; + umode_t mode; +}; -typedef __u32 u32; +enum kobj_ns_type { + KOBJ_NS_TYPE_NONE = 0, + KOBJ_NS_TYPE_NET = 1, + KOBJ_NS_TYPES = 2, +}; -typedef unsigned long long __u64; +typedef _Bool bool; -typedef __u64 u64; +struct sock; -struct acpi_madt_rintc { - struct acpi_subtable_header header; - u8 version; - u8 reserved; - u32 flags; - u64 hart_id; - u32 uid; -} __attribute__((packed)); +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 *); +}; -typedef u32 phandle; +struct rb_node; -struct fwnode_operations; +struct rb_root { + struct rb_node *rb_node; +}; -struct device; +struct kernfs_root; -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 kernfs_elem_dir { + unsigned long subdirs; + struct rb_root children; + struct kernfs_root *root; + unsigned long rev; }; -struct refcount_struct { - atomic_t refs; +struct kernfs_elem_symlink { + struct kernfs_node *target_kn; }; -typedef struct refcount_struct refcount_t; +typedef long long __kernel_loff_t; -struct kref { - refcount_t refcount; -}; +typedef __kernel_loff_t loff_t; -struct kset; +struct kernfs_ops; -struct kobj_type; +struct kernfs_open_node; -struct kernfs_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 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 rb_node { + unsigned long __rb_parent_color; + struct rb_node *rb_right; + struct rb_node *rb_left; }; -struct property; +typedef unsigned long long __u64; -struct device_node { +typedef __u64 u64; + +struct kernfs_iattrs; + +struct kernfs_node { + atomic_t count; + atomic_t active; + struct kernfs_node *parent; 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; - struct kobject kobj; - unsigned long _flags; - void *data; + 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; }; -typedef unsigned long __kernel_ulong_t; +typedef unsigned int __poll_t; -typedef __kernel_ulong_t __kernel_size_t; +struct kernfs_open_file; -typedef __kernel_size_t size_t; +struct seq_file; -struct fwnode_reference_args; +struct poll_table_struct; -struct fwnode_endpoint; +struct vm_area_struct; -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 kernfs_ops { + int (*open)(struct kernfs_open_file *); + void (*release)(struct kernfs_open_file *); + int (*seq_show)(struct seq_file *, void *); + void * (*seq_start)(struct seq_file *, loff_t *); + void * (*seq_next)(struct seq_file *, void *, loff_t *); + void (*seq_stop)(struct seq_file *, void *); + ssize_t (*read)(struct kernfs_open_file *, char *, size_t, loff_t); + size_t atomic_write_len; + bool prealloc; + ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t); + __poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *); + int (*mmap)(struct kernfs_open_file *, struct vm_area_struct *); + loff_t (*llseek)(struct kernfs_open_file *, loff_t, int); }; typedef long long __s64; @@ -561,6 +286,8 @@ typedef struct { typedef atomic64_t atomic_long_t; +typedef struct raw_spinlock raw_spinlock_t; + struct optimistic_spin_queue { atomic_t tail; }; @@ -573,340 +300,266 @@ struct mutex { void *magic; }; -struct dev_links_info { - struct list_head suppliers; - struct list_head consumers; - struct list_head defer_sync; - enum dl_dev_state status; -}; +struct file; -struct pm_message { - int event; -}; - -typedef struct pm_message pm_message_t; - -struct spinlock { - union { - struct raw_spinlock rlock; - }; -}; - -typedef struct spinlock spinlock_t; +struct vm_operations_struct; -struct rb_node { - unsigned long __rb_parent_color; - struct rb_node *rb_right; - struct rb_node *rb_left; +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; }; -typedef s64 ktime_t; - -struct timerqueue_node { - struct rb_node node; - ktime_t expires; +struct llist_node { + struct llist_node *next; }; -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 callback_head { + struct callback_head *next; + void (*func)(struct callback_head *); }; -struct work_struct; +typedef unsigned int fmode_t; -typedef void (*work_func_t)(struct work_struct *); +typedef unsigned char __u8; -struct work_struct { - atomic_long_t data; - struct list_head entry; - work_func_t func; -}; +typedef __u8 u8; -struct wait_queue_head { - spinlock_t lock; - struct list_head head; +struct qrwlock { + union { + atomic_t cnts; + struct { + u8 wlocked; + u8 __lstate[3]; + }; + }; + arch_spinlock_t wait_lock; }; -typedef struct wait_queue_head wait_queue_head_t; - -typedef int __s32; - -typedef __s32 s32; - -struct wakeup_source; - -struct wake_irq; - -struct pm_subsys_data; +typedef struct qrwlock arch_rwlock_t; -struct dev_pm_qos; +typedef struct { + arch_rwlock_t raw_lock; + unsigned int magic; + unsigned int owner_cpu; + void *owner; +} rwlock_t; -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; +enum pid_type { + PIDTYPE_PID = 0, + PIDTYPE_TGID = 1, + PIDTYPE_PGID = 2, + PIDTYPE_SID = 3, + PIDTYPE_MAX = 4, }; -struct irq_domain; - -struct msi_device_data; +struct pid; -struct dev_msi_info { - struct irq_domain *domain; - struct msi_device_data *data; +struct fown_struct { + rwlock_t lock; + struct pid *pid; + enum pid_type pid_type; + kuid_t uid; + kuid_t euid; + int signum; }; -struct dev_archdata {}; - -typedef u32 __kernel_dev_t; - -typedef __kernel_dev_t dev_t; - -struct device_private; - -struct device_type; +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 bus_type; +struct vfsmount; -struct device_driver; +struct dentry; -struct dev_pm_domain; +struct path { + struct vfsmount *mnt; + struct dentry *dentry; +}; -struct dev_pin_info; +typedef unsigned int __u32; -struct bus_dma_region; +typedef __u32 u32; -struct device_dma_parameters; +typedef u32 errseq_t; -struct dma_coherent_mem; +struct cred; -struct io_tlb_mem; +struct inode; -struct class; +struct file_operations; -struct attribute_group; +struct hlist_head; -struct iommu_group; +struct address_space; -struct dev_iommu; +struct file { + union { + struct llist_node f_llist; + struct callback_head f_rcuhead; + unsigned int f_iocb_flags; + }; + spinlock_t f_lock; + fmode_t f_mode; + atomic_long_t f_count; + struct mutex f_pos_lock; + loff_t f_pos; + unsigned int f_flags; + struct fown_struct f_owner; + const struct cred *f_cred; + struct file_ra_state f_ra; + struct path f_path; + struct inode *f_inode; + const struct file_operations *f_op; + u64 f_version; + void *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; +}; -struct device_physical_location; +struct hlist_node; -struct device { - struct kobject kobj; - struct device *parent; - struct device_private *p; - const char *init_name; - const struct device_type *type; - const struct bus_type *bus; - struct device_driver *driver; - void *platform_data; - void *driver_data; - struct mutex mutex; - struct dev_links_info links; - struct dev_pm_info power; - struct dev_pm_domain *pm_domain; - struct dev_pin_info *pins; - struct dev_msi_info msi; - u64 *dma_mask; - u64 coherent_dma_mask; - u64 bus_dma_limit; - const struct bus_dma_region *dma_range_map; - struct device_dma_parameters *dma_parms; - struct list_head dma_pools; - struct dma_coherent_mem *dma_mem; - 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; - const struct class *class; - const struct attribute_group **groups; - void (*release)(struct device *); - struct iommu_group *iommu_group; - struct dev_iommu *iommu; - struct device_physical_location *physical_location; - enum device_removable removable; - bool offline_disabled: 1; - bool offline: 1; - bool of_node_reused: 1; - bool state_synced: 1; - bool can_match: 1; - bool dma_coherent: 1; +struct hlist_head { + struct hlist_node *first; }; -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 wait_queue_head { + spinlock_t lock; + struct list_head head; }; -struct kobj_uevent_env; +typedef struct wait_queue_head wait_queue_head_t; -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 pid_namespace; -struct kobj_uevent_env { - char *argv[3]; - char *envp[64]; - int envp_idx; - char buf[2048]; - int buflen; +struct upid { + int nr; + struct pid_namespace *ns; }; -typedef unsigned int __kernel_uid32_t; +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[0]; +}; -typedef __kernel_uid32_t uid_t; +struct hlist_node { + struct hlist_node *next; + struct hlist_node **pprev; +}; typedef struct { - uid_t val; -} kuid_t; + u64 val; +} kernel_cap_t; -typedef unsigned int __kernel_gid32_t; +struct key; -typedef __kernel_gid32_t gid_t; +struct user_struct; -typedef struct { - gid_t val; -} kgid_t; +struct user_namespace; -struct sysfs_ops; +struct ucounts; -struct kobj_ns_type_operations; +struct group_info; -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 *); +struct cred { + atomic_long_t usage; + kuid_t uid; + kgid_t gid; + kuid_t suid; + kgid_t sgid; + kuid_t euid; + kgid_t egid; + kuid_t fsuid; + kgid_t fsgid; + unsigned int securebits; + kernel_cap_t cap_inheritable; + kernel_cap_t cap_permitted; + kernel_cap_t cap_effective; + kernel_cap_t cap_bset; + kernel_cap_t cap_ambient; + unsigned char jit_keyring; + struct key *session_keyring; + struct key *process_keyring; + struct key *thread_keyring; + struct key *request_key_auth; + 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; + }; }; -typedef long __kernel_long_t; - -typedef __kernel_long_t __kernel_ssize_t; +typedef __s64 time64_t; -typedef __kernel_ssize_t ssize_t; +typedef unsigned short __u16; -struct attribute; +typedef __u16 u16; -struct sysfs_ops { - ssize_t (*show)(struct kobject *, struct attribute *, char *); - ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); -}; +struct key_type; -typedef unsigned short umode_t; +struct key_tag; -struct attribute { - const char *name; - umode_t mode; +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 bin_attribute; +struct assoc_array_ptr; -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; +struct assoc_array { + struct assoc_array_ptr *root; + unsigned long nr_leaves_on_tree; }; -typedef long long __kernel_loff_t; - -typedef __kernel_loff_t loff_t; - -struct address_space; - -struct file; +union key_payload { + void __attribute__((btf_type_tag("rcu"))) *rcu_data0; + void *data[4]; +}; -struct vm_area_struct; +typedef int __s32; -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 __s32 s32; -typedef unsigned int gfp_t; +typedef s32 int32_t; -struct xarray { - spinlock_t xa_lock; - gfp_t xa_flags; - void __attribute__((btf_type_tag("rcu"))) *xa_head; -}; +typedef int32_t key_serial_t; struct rw_semaphore { atomic_long_t count; @@ -917,51 +570,219 @@ struct rw_semaphore { void *magic; }; -struct rb_root { - struct rb_node *rb_node; -}; - -struct rb_root_cached { - struct rb_root rb_root; - struct rb_node *rb_leftmost; -}; +typedef u32 uint32_t; -typedef u32 errseq_t; +typedef uint32_t key_perm_t; -struct inode; +struct key_user; -struct address_space_operations; +struct key_restriction; -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; +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; - errseq_t wb_err; - spinlock_t private_lock; - struct list_head private_list; - void *private_data; -}; - -struct hlist_node; - -struct hlist_head { - struct hlist_node *first; -}; - -struct callback_head { - struct callback_head *next; - void (*func)(struct callback_head *); + 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; }; -typedef __s64 time64_t; +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 lock_class_key {}; + +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; +}; + +struct percpu_counter { + raw_spinlock_t lock; + s64 count; + struct list_head list; + s32 __attribute__((btf_type_tag("percpu"))) *counters; +}; + +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 { + refcount_t usage; + int ngroups; + kgid_t gid[0]; +}; + +struct super_block; + +struct mnt_idmap; + +struct vfsmount { + struct dentry *mnt_root; + struct super_block *mnt_sb; + int mnt_flags; + struct mnt_idmap *mnt_idmap; +}; + +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 { + 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; +}; + +typedef u32 __kernel_dev_t; + +typedef __kernel_dev_t dev_t; struct timespec64 { time64_t tv_sec; @@ -970,18 +791,44 @@ struct timespec64 { typedef u64 blkcnt_t; -struct hlist_node { - struct hlist_node *next; - struct hlist_node **pprev; +typedef unsigned int gfp_t; + +struct xarray { + spinlock_t xa_lock; + gfp_t xa_flags; + void __attribute__((btf_type_tag("rcu"))) *xa_head; +}; + +struct rb_root_cached { + struct rb_root rb_root; + struct rb_node *rb_leftmost; +}; + +struct address_space_operations; + +struct address_space { + struct inode *host; + struct xarray i_pages; + struct rw_semaphore invalidate_lock; + gfp_t gfp_mask; + atomic_t i_mmap_writable; + struct rb_root_cached i_mmap; + unsigned long nrpages; + unsigned long writeback_index; + const struct address_space_operations *a_ops; + unsigned long flags; + struct rw_semaphore i_mmap_rwsem; + errseq_t wb_err; + spinlock_t private_lock; + struct list_head private_list; + void *private_data; }; struct posix_acl; struct inode_operations; -struct super_block; - -struct file_operations; +struct bdi_writeback; struct file_lock_context; @@ -1010,9 +857,9 @@ struct inode { }; dev_t i_rdev; loff_t i_size; - struct timespec64 i_atime; - struct timespec64 i_mtime; - struct timespec64 i_ctime; + struct timespec64 __i_atime; + struct timespec64 __i_mtime; + struct timespec64 __i_ctime; spinlock_t i_lock; unsigned short i_bytes; u8 i_blkbits; @@ -1024,6 +871,10 @@ struct inode { unsigned long dirtied_time_when; struct hlist_node i_hash; struct list_head i_io_list; + struct bdi_writeback *i_wb; + int i_wb_frn_winner; + u16 i_wb_frn_avg_time; + u16 i_wb_frn_history; struct list_head i_lru; struct list_head i_sb_list; struct list_head i_wb_list; @@ -1056,22 +907,18 @@ struct inode { void *i_private; }; -struct dentry; - struct delayed_call; -struct mnt_idmap; - struct iattr; -struct path; - struct kstat; struct fiemap_extent_info; struct fileattr; +struct offset_ctx; + struct inode_operations { struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int); const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *); @@ -1090,114 +937,87 @@ struct inode_operations { 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 (*update_time)(struct inode *, int); int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t); int (*tmpfile)(struct mnt_idmap *, struct inode *, struct file *, umode_t); struct posix_acl * (*get_acl)(struct mnt_idmap *, struct dentry *, int); int (*set_acl)(struct mnt_idmap *, struct dentry *, struct posix_acl *, int); int (*fileattr_set)(struct mnt_idmap *, struct dentry *, struct fileattr *); int (*fileattr_get)(struct dentry *, struct fileattr *); + struct offset_ctx * (*get_offset_ctx)(struct inode *); + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct hlist_bl_node { - struct hlist_bl_node *next; - struct hlist_bl_node **pprev; -}; - -struct seqcount { - unsigned int sequence; -}; - -typedef struct seqcount seqcount_t; - -struct seqcount_spinlock { - seqcount_t seqcount; +struct delayed_call { + void (*fn)(void *); + void *arg; }; -typedef struct seqcount_spinlock seqcount_spinlock_t; +typedef struct { + uid_t val; +} vfsuid_t; -struct qstr { - union { - struct { - u32 hash; - u32 len; - }; - u64 hash_len; - }; - const unsigned char *name; -}; +typedef struct { + gid_t val; +} vfsgid_t; -struct lockref { +struct iattr { + unsigned int ia_valid; + umode_t ia_mode; union { - struct { - spinlock_t lock; - int count; - }; + kuid_t ia_uid; + vfsuid_t ia_vfsuid; }; -}; - -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; + kgid_t ia_gid; + vfsgid_t ia_vfsgid; }; - 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; + loff_t ia_size; + struct timespec64 ia_atime; + struct timespec64 ia_mtime; + struct timespec64 ia_ctime; + struct file *ia_file; }; -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 kstat { + u32 result_mask; + umode_t mode; + unsigned int nlink; + uint32_t blksize; + u64 attributes; + u64 attributes_mask; + u64 ino; + dev_t dev; + dev_t rdev; + kuid_t uid; + kgid_t gid; + loff_t size; + struct timespec64 atime; + struct timespec64 mtime; + struct timespec64 ctime; + struct timespec64 btime; + u64 blocks; + u64 mnt_id; + u32 dio_mem_align; + u32 dio_offset_align; + u64 change_cookie; }; -struct vfsmount { - struct dentry *mnt_root; - struct super_block *mnt_sb; - int mnt_flags; - struct mnt_idmap *mnt_idmap; +struct offset_ctx { + struct xarray xa; + u32 next_offset; }; struct hlist_bl_head { struct hlist_bl_node *first; }; -struct mtd_info; - typedef long long qsize_t; struct quota_format_type; @@ -1246,7 +1066,8 @@ struct percpu_rw_semaphore { }; struct sb_writers { - int frozen; + unsigned short frozen; + unsigned short freeze_holders; struct percpu_rw_semaphore rw_sem[3]; }; @@ -1254,19 +1075,6 @@ typedef struct { __u8 b[16]; } uuid_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; - int id; - atomic_long_t *nr_deferred; -}; - struct list_lru_node; struct list_lru { @@ -1277,6 +1085,16 @@ struct list_lru { struct xarray xa; }; +struct work_struct; + +typedef void (*work_func_t)(struct work_struct *); + +struct work_struct { + atomic_long_t data; + struct list_head entry; + work_func_t func; +}; + struct file_system_type; struct super_operations; @@ -1291,11 +1109,15 @@ struct xattr_handler; struct block_device; +struct bdev_handle; + struct backing_dev_info; -struct workqueue_struct; +struct mtd_info; -struct user_namespace; +struct shrinker; + +struct workqueue_struct; struct super_block { struct list_head s_list; @@ -1316,10 +1138,11 @@ struct super_block { int s_count; atomic_t s_active; void *s_security; - const struct xattr_handler **s_xattr; + const struct xattr_handler * const *s_xattr; struct hlist_bl_head s_roots; struct list_head s_mounts; struct block_device *s_bdev; + struct bdev_handle *s_bdev_handle; struct backing_dev_info *s_bdi; struct mtd_info *s_mtd; struct hlist_node s_instances; @@ -1338,7 +1161,7 @@ struct super_block { struct mutex s_vfs_rename_mutex; const char *s_subtype; const struct dentry_operations *s_d_op; - struct shrinker s_shrink; + struct shrinker *s_shrink; atomic_long_t s_remove_count; atomic_long_t s_fsnotify_connectors; int s_readonly_remount; @@ -1353,8 +1176,6 @@ struct super_block { struct mutex s_sync_lock; int s_stack_depth; long: 64; - long: 64; - long: 64; spinlock_t s_inode_list_lock; struct list_head s_inodes; spinlock_t s_inode_wblist_lock; @@ -1367,8 +1188,6 @@ struct super_block { long: 64; }; -struct lock_class_key {}; - struct fs_context; struct fs_parameter_spec; @@ -1411,8 +1230,17 @@ struct fs_parameter_spec { const void *data; }; +enum module_state { + MODULE_STATE_LIVE = 0, + MODULE_STATE_COMING = 1, + MODULE_STATE_GOING = 2, + MODULE_STATE_UNFORMED = 3, +}; + struct module_param_attrs; +struct completion; + struct module_kobject { struct kobject kobj; struct module *mod; @@ -1572,6 +1400,16 @@ struct module { long: 64; }; +struct swait_queue_head { + raw_spinlock_t lock; + struct list_head task_list; +}; + +struct completion { + unsigned int done; + struct swait_queue_head wait; +}; + struct module_attribute { struct attribute attr; ssize_t (*show)(struct module_attribute *, struct module_kobject *, char *); @@ -1587,10 +1425,6 @@ struct kernel_symbol { const char *namespace; }; -typedef unsigned short __u16; - -typedef __u16 u16; - typedef signed char __s8; typedef __s8 s8; @@ -1836,11 +1670,16 @@ struct error_injection_entry { int etype; }; +enum freeze_holder { + FREEZE_HOLDER_KERNEL = 1, + FREEZE_HOLDER_USERSPACE = 2, +}; + struct writeback_control; struct kstatfs; -struct seq_file; +struct shrink_control; struct super_operations { struct inode * (*alloc_inode)(struct super_block *); @@ -1852,9 +1691,9 @@ struct super_operations { 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_super)(struct super_block *, enum freeze_holder); int (*freeze_fs)(struct super_block *); - int (*thaw_super)(struct super_block *); + int (*thaw_super)(struct super_block *, enum freeze_holder); int (*unfreeze_fs)(struct super_block *); int (*statfs)(struct dentry *, struct kstatfs *); int (*remount_fs)(struct super_block *, int *, char *); @@ -1902,6 +1741,12 @@ struct dquot_operations { int (*get_next_id)(struct super_block *, struct kqid *); }; +enum quota_type { + USRQUOTA = 0, + GRPQUOTA = 1, + PRJQUOTA = 2, +}; + struct kqid { union { kuid_t uid; @@ -1958,11 +1803,6 @@ struct quotactl_ops { int (*rm_xquota)(struct super_block *, unsigned int); }; -struct path { - struct vfsmount *mnt; - struct dentry *dentry; -}; - struct qc_info { int i_fieldmask; unsigned int i_flags; @@ -2055,8 +1895,13 @@ struct quota_format_ops { int (*get_next_id)(struct super_block *, struct kqid *); }; -struct llist_node { - struct llist_node *next; +struct thread_info { + unsigned long flags; + int preempt_count; + long kernel_sp; + long user_sp; + int cpu; + unsigned long syscall_work; }; struct __call_single_node { @@ -2096,12 +1941,16 @@ struct cfs_rq; struct sched_entity { struct load_weight load; struct rb_node run_node; + u64 deadline; + u64 min_deadline; struct list_head group_node; unsigned int on_rq; u64 exec_start; u64 sum_exec_runtime; - u64 vruntime; u64 prev_sum_exec_runtime; + u64 vruntime; + s64 vlag; + u64 slice; u64 nr_migrations; int depth; struct sched_entity *parent; @@ -2110,10 +1959,6 @@ struct sched_entity { unsigned long runnable_weight; long: 64; long: 64; - long: 64; - long: 64; - long: 64; - long: 64; struct sched_avg avg; }; @@ -2132,6 +1977,31 @@ struct sched_rt_entity { struct rt_rq *my_q; }; +typedef s64 ktime_t; + +struct timerqueue_node { + struct rb_node node; + ktime_t expires; +}; + +enum hrtimer_restart { + HRTIMER_NORESTART = 0, + HRTIMER_RESTART = 1, +}; + +struct hrtimer_clock_base; + +struct hrtimer { + struct timerqueue_node node; + ktime_t _softexpires; + enum hrtimer_restart (*function)(struct hrtimer *); + struct hrtimer_clock_base *base; + u8 state; + u8 is_rel; + u8 is_soft; + u8 is_hard; +}; + struct sched_dl_entity { struct rb_node rb_node; u64 dl_runtime; @@ -2153,6 +2023,10 @@ struct sched_dl_entity { struct sched_statistics {}; +struct cpumask { + unsigned long bits[1]; +}; + typedef struct cpumask cpumask_t; union rcu_special { @@ -2177,6 +2051,12 @@ 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; @@ -2327,6 +2207,7 @@ struct thread_struct { unsigned long bad_cause; unsigned long vstate_ctrl; struct __riscv_v_ext_state vstate; + unsigned long align_ctl; }; struct sched_class; @@ -2335,12 +2216,6 @@ struct task_group; struct mm_struct; -struct pid; - -struct cred; - -struct key; - struct nameidata; struct fs_struct; @@ -2389,6 +2264,10 @@ struct rseq; struct ftrace_ret_stack; +struct obj_cgroup; + +struct gendisk; + struct uprobe_task; struct vm_struct; @@ -2402,6 +2281,7 @@ struct user_event_mm; struct task_struct { struct thread_info thread_info; unsigned int __state; + unsigned int saved_state; void *stack; refcount_t usage; unsigned int flags; @@ -2452,6 +2332,7 @@ struct task_struct { struct rb_node pushable_dl_tasks; struct mm_struct *mm; struct mm_struct *active_mm; + struct address_space *faults_disabled_mapping; int exit_state; int exit_code; int exit_signal; @@ -2463,12 +2344,14 @@ struct task_struct { unsigned int sched_migrated: 1; long: 29; unsigned int sched_remote_wakeup: 1; + unsigned int sched_rt_mutex: 1; unsigned int in_execve: 1; unsigned int in_iowait: 1; unsigned int in_user_fault: 1; unsigned int brk_randomized: 1; unsigned int no_cgroup_migration: 1; unsigned int frozen: 1; + unsigned int use_memdelay: 1; unsigned int in_eventfd: 1; unsigned long atomic_flags; struct restart_block restart_block; @@ -2484,7 +2367,6 @@ struct task_struct { 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; @@ -2594,6 +2476,8 @@ struct task_struct { int memcg_oom_order; unsigned int memcg_nr_pages_over_high; struct mem_cgroup *active_memcg; + struct obj_cgroup *objcg; + struct gendisk *throttle_disk; struct uprobe_task *utask; struct kmap_ctrl kmap_ctrl; unsigned long task_state_change; @@ -2614,8 +2498,6 @@ struct task_struct { long: 64; long: 64; long: 64; - long: 64; - long: 64; }; struct seqcount_raw_spinlock { @@ -2673,7 +2555,7 @@ struct sched_class { 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); + void (*wakeup_preempt)(struct rq *, struct task_struct *, int); struct task_struct * (*pick_next_task)(struct rq *); void (*put_prev_task)(struct rq *, struct task_struct *); void (*set_next_task)(struct rq *, struct task_struct *, bool); @@ -2704,21 +2586,14 @@ struct maple_tree { spinlock_t ma_lock; lockdep_map_p ma_external_lock; }; - void __attribute__((btf_type_tag("rcu"))) *ma_root; unsigned int ma_flags; + void __attribute__((btf_type_tag("rcu"))) *ma_root; }; typedef struct { unsigned long pgd; } pgd_t; -struct percpu_counter { - raw_spinlock_t lock; - s64 count; - struct list_head list; - s32 __attribute__((btf_type_tag("percpu"))) *counters; -}; - typedef struct { atomic_long_t id; void *vdso; @@ -2810,344 +2685,164 @@ struct mm_struct { unsigned long cpu_bitmap[0]; }; -typedef unsigned int fmode_t; - -struct qrwlock { - union { - atomic_t cnts; - struct { - u8 wlocked; - u8 __lstate[3]; - }; - }; - arch_spinlock_t wait_lock; -}; - -typedef struct qrwlock arch_rwlock_t; - -typedef struct { - arch_rwlock_t raw_lock; - unsigned int magic; - unsigned int owner_cpu; - void *owner; -} rwlock_t; - -struct fown_struct { - rwlock_t lock; - struct pid *pid; - enum pid_type pid_type; - kuid_t uid; - kuid_t euid; - int signum; +struct mm_cid { + u64 time; + int cid; }; -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 kioctx; -struct file { - union { - struct llist_node f_llist; - struct callback_head f_rcuhead; - unsigned int f_iocb_flags; - }; - spinlock_t f_lock; - fmode_t f_mode; - atomic_long_t f_count; - struct mutex f_pos_lock; - loff_t f_pos; - unsigned int f_flags; - struct fown_struct f_owner; - const struct cred *f_cred; - struct file_ra_state f_ra; - struct path f_path; - struct inode *f_inode; - const struct file_operations *f_op; - u64 f_version; - void *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; +struct kioctx_table { + struct callback_head rcu; + unsigned int nr; + struct kioctx __attribute__((btf_type_tag("rcu"))) *table[0]; }; -struct pid_namespace; +typedef u64 sector_t; -struct upid { - int nr; - struct pid_namespace *ns; +enum migrate_mode { + MIGRATE_ASYNC = 0, + MIGRATE_SYNC_LIGHT = 1, + MIGRATE_SYNC = 2, + MIGRATE_SYNC_NO_COPY = 3, }; -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[0]; -}; +struct folio; -typedef struct { - u64 val; -} kernel_cap_t; +struct readahead_control; -struct user_struct; +struct kiocb; -struct ucounts; +struct iov_iter; -struct group_info; +struct swap_info_struct; -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 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 key_type; +struct page_pool; -struct key_tag; +struct dev_pagemap; -struct keyring_index_key { - unsigned long hash; +struct page { + unsigned long flags; union { struct { - u16 desc_len; - char desc[6]; + 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; }; - unsigned long x; + struct { + unsigned long pp_magic; + struct page_pool *pp; + unsigned long _pp_mapping_pad; + unsigned long dma_addr; + atomic_long_t pp_frag_count; + }; + struct { + unsigned long compound_head; + }; + struct { + struct dev_pagemap *pgmap; + void *zone_device_data; + }; + struct callback_head callback_head; }; - 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]; + union { + atomic_t _mapcount; + unsigned int page_type; + }; + atomic_t _refcount; + unsigned long memcg_data; }; -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; +typedef struct { + unsigned long val; +} swp_entry_t; -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; +struct folio { union { - time64_t expiry; - time64_t revoked_at; + struct { + unsigned long flags; + union { + struct list_head lru; + struct { + void *__filler; + unsigned int mlock_count; + }; + }; + struct address_space *mapping; + unsigned long index; + union { + void *private; + swp_entry_t swap; + }; + atomic_t _mapcount; + atomic_t _refcount; + unsigned long memcg_data; + }; + struct page page; }; - 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; + unsigned long _flags_1; + unsigned long _head_1; + unsigned long _folio_avail; + atomic_t _entire_mapcount; + atomic_t _nr_pages_mapped; + atomic_t _pincount; + unsigned int _folio_nr_pages; }; + struct page __page_1; }; union { - union key_payload payload; struct { - struct list_head name_link; - struct assoc_array keys; + unsigned long _flags_2; + unsigned long _head_2; + void *_hugetlb_subpool; + void *_hugetlb_cgroup; + void *_hugetlb_cgroup_rsvd; + void *_hugetlb_hwpoison; + }; + struct { + unsigned long _flags_2a; + unsigned long _head_2a; + struct list_head _deferred_list; }; + struct page __page_2; }; - struct 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; -}; - -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]; -}; - -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 io_uring_cmd; - -struct file_operations { - struct module *owner; - loff_t (*llseek)(struct file *, loff_t, int); - ssize_t (*read)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - ssize_t (*write)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - ssize_t (*read_iter)(struct kiocb *, struct iov_iter *); - ssize_t (*write_iter)(struct kiocb *, struct iov_iter *); - int (*iopoll)(struct kiocb *, struct io_comp_batch *, unsigned int); - int (*iterate_shared)(struct file *, struct dir_context *); - __poll_t (*poll)(struct file *, struct poll_table_struct *); - long (*unlocked_ioctl)(struct file *, unsigned int, unsigned long); - long (*compat_ioctl)(struct file *, unsigned int, unsigned long); - int (*mmap)(struct file *, struct vm_area_struct *); - unsigned long mmap_supported_flags; - int (*open)(struct inode *, struct file *); - int (*flush)(struct file *, fl_owner_t); - int (*release)(struct inode *, struct file *); - int (*fsync)(struct file *, loff_t, loff_t, int); - int (*fasync)(int, struct file *, int); - int (*lock)(struct file *, int, struct file_lock *); - unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); - int (*check_flags)(int); - int (*flock)(struct file *, int, struct file_lock *); - ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); - ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); - void (*splice_eof)(struct file *); - int (*setlease)(struct file *, 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; @@ -3159,7 +2854,10 @@ struct kiocb { void *private; int ki_flags; u16 ki_ioprio; - struct wait_page_queue *ki_waitq; + union { + struct wait_page_queue *ki_waitq; + ssize_t (*dio_complete)(void *); + }; }; struct iovec { @@ -3176,11 +2874,7 @@ struct iov_iter { bool copy_mc; bool nofault; bool data_source; - bool user_backed; - union { - size_t iov_offset; - int last_offset; - }; + size_t iov_offset; union { struct iovec __ubuf_iovec; struct { @@ -3211,253 +2905,6 @@ struct bio_vec { 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 struct { - unsigned long pgprot; -} pgprot_t; - -struct vm_userfaultfd_ctx {}; - -struct vma_lock; - -struct anon_vma; - -struct vm_operations_struct; - -struct vm_area_struct { - union { - struct { - unsigned long vm_start; - unsigned long vm_end; - }; - struct callback_head vm_rcu; - }; - struct mm_struct *vm_mm; - pgprot_t vm_page_prot; - union { - const vm_flags_t vm_flags; - vm_flags_t __vm_flags; - }; - int vm_lock_seq; - struct vma_lock *vm_lock; - bool detached; - struct { - struct rb_node rb; - unsigned long rb_subtree_last; - } shared; - struct list_head anon_vma_chain; - struct anon_vma *anon_vma; - const struct vm_operations_struct *vm_ops; - unsigned long vm_pgoff; - struct file *vm_file; - void *vm_private_data; - atomic_long_t swap_readahead_info; - struct vm_userfaultfd_ctx vm_userfaultfd_ctx; -}; - -struct vma_lock { - struct rw_semaphore lock; -}; - -typedef unsigned int vm_fault_t; - -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 struct { - unsigned long pte; -} pte_t; - -typedef struct { - unsigned long pmd; -} pmd_t; - -typedef struct { - unsigned long 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; - unsigned long memcg_data; -}; - -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; -}; - -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 mm_cid { - u64 time; - int cid; -}; - -struct kioctx; - -struct kioctx_table { - struct callback_head rcu; - unsigned int nr; - struct kioctx __attribute__((btf_type_tag("rcu"))) *table[0]; -}; - typedef long long __kernel_time64_t; struct __kernel_timespec { @@ -3716,7 +3163,7 @@ struct cgroup_subsys_state; struct cgroup; struct css_set { - struct cgroup_subsys_state *subsys[11]; + struct cgroup_subsys_state *subsys[14]; refcount_t refcount; struct css_set *dom_cset; struct cgroup *dfl_cgrp; @@ -3725,7 +3172,7 @@ struct css_set { struct list_head mg_tasks; struct list_head dying_tasks; struct list_head task_iters; - struct list_head e_cset_node[11]; + struct list_head e_cset_node[14]; struct list_head threaded_csets; struct list_head threaded_csets_node; struct hlist_node hlist; @@ -3778,6 +3225,13 @@ struct arch_uprobe_task { unsigned long saved_cause; }; +enum uprobe_task_state { + UTASK_RUNNING = 0, + UTASK_SSTEP = 1, + UTASK_SSTEP_ACK = 2, + UTASK_SSTEP_TRAPPED = 3, +}; + struct uprobe; struct return_instance; @@ -3809,20 +3263,6 @@ struct return_instance { struct return_instance *next; }; -typedef u64 phys_addr_t; - -struct vm_struct { - struct vm_struct *next; - void *addr; - unsigned long size; - unsigned long flags; - struct page **pages; - unsigned int page_order; - unsigned int nr_pages; - phys_addr_t phys_addr; - const void *caller; -}; - struct bpf_local_storage_data; struct bpf_local_storage_map; @@ -3854,6 +3294,40 @@ struct fsnotify_mark_connector { struct hlist_head list; }; +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 shrinker { + unsigned long (*count_objects)(struct shrinker *, struct shrink_control *); + unsigned long (*scan_objects)(struct shrinker *, struct shrink_control *); + long batch; + int seeks; + unsigned int flags; + refcount_t refcount; + struct completion done; + struct callback_head rcu; + void *private_data; + struct list_head list; + int id; + atomic_long_t *nr_deferred; +}; + struct list_lru_one { struct list_head list; long nr_items; @@ -3866,240 +3340,470 @@ struct list_lru_node { long: 64; }; -struct delayed_call { - void (*fn)(void *); - void *arg; -}; +typedef void *fl_owner_t; -typedef struct { - uid_t val; -} vfsuid_t; +struct io_comp_batch; -typedef struct { - gid_t val; -} vfsgid_t; +struct dir_context; -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 file_lock; + +struct io_uring_cmd; + +struct file_operations { + struct module *owner; + loff_t (*llseek)(struct file *, loff_t, int); + ssize_t (*read)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + ssize_t (*write)(struct file *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + ssize_t (*read_iter)(struct kiocb *, struct iov_iter *); + ssize_t (*write_iter)(struct kiocb *, struct iov_iter *); + int (*iopoll)(struct kiocb *, struct io_comp_batch *, unsigned int); + int (*iterate_shared)(struct file *, struct dir_context *); + __poll_t (*poll)(struct file *, struct poll_table_struct *); + long (*unlocked_ioctl)(struct file *, unsigned int, unsigned long); + long (*compat_ioctl)(struct file *, unsigned int, unsigned long); + int (*mmap)(struct file *, struct vm_area_struct *); + unsigned long mmap_supported_flags; + int (*open)(struct inode *, struct file *); + int (*flush)(struct file *, fl_owner_t); + int (*release)(struct inode *, struct file *); + int (*fsync)(struct file *, loff_t, loff_t, int); + int (*fasync)(int, struct file *, int); + int (*lock)(struct file *, int, struct file_lock *); + unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); + int (*check_flags)(int); + int (*flock)(struct file *, int, struct file_lock *); + ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); + ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*splice_eof)(struct file *); + int (*setlease)(struct file *, int, struct file_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 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 bool (*filldir_t)(struct dir_context *, const char *, int, loff_t, u64, unsigned int); + +struct dir_context { + filldir_t actor; + loff_t pos; }; -typedef u64 sector_t; +typedef unsigned long vm_flags_t; -struct folio; +typedef struct { + unsigned long pgprot; +} pgprot_t; -struct readahead_control; +struct vm_userfaultfd_ctx {}; -struct swap_info_struct; +struct vma_lock; -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 anon_vma; -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; - unsigned long memcg_data; - }; - struct page page; - }; +struct vm_area_struct { 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; + unsigned long vm_start; + unsigned long vm_end; }; - struct page __page_1; + struct callback_head vm_rcu; }; + struct mm_struct *vm_mm; + pgprot_t vm_page_prot; 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; + const vm_flags_t vm_flags; + vm_flags_t __vm_flags; }; + int vm_lock_seq; + struct vma_lock *vm_lock; + bool detached; + struct { + struct rb_node rb; + unsigned long rb_subtree_last; + } shared; + struct list_head anon_vma_chain; + struct anon_vma *anon_vma; + const struct vm_operations_struct *vm_ops; + unsigned long vm_pgoff; + struct file *vm_file; + void *vm_private_data; + atomic_long_t swap_readahead_info; + struct vm_userfaultfd_ctx vm_userfaultfd_ctx; }; -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 kernfs_root; - -struct kernfs_elem_dir { - unsigned long subdirs; - struct rb_root children; - struct kernfs_root *root; - unsigned long rev; +struct vma_lock { + struct rw_semaphore lock; }; -struct kernfs_elem_symlink { - struct kernfs_node *target_kn; -}; +typedef unsigned int vm_fault_t; -struct kernfs_ops; +struct vm_fault; -struct kernfs_open_node; +struct vm_operations_struct { + void (*open)(struct vm_area_struct *); + void (*close)(struct vm_area_struct *); + int (*may_split)(struct vm_area_struct *, unsigned long); + int (*mremap)(struct vm_area_struct *); + int (*mprotect)(struct vm_area_struct *, unsigned long, unsigned long, unsigned long); + vm_fault_t (*fault)(struct vm_fault *); + vm_fault_t (*huge_fault)(struct vm_fault *, unsigned int); + vm_fault_t (*map_pages)(struct vm_fault *, unsigned long, unsigned long); + unsigned long (*pagesize)(struct vm_area_struct *); + vm_fault_t (*page_mkwrite)(struct vm_fault *); + vm_fault_t (*pfn_mkwrite)(struct vm_fault *); + int (*access)(struct vm_area_struct *, unsigned long, void *, int, int); + const char * (*name)(struct vm_area_struct *); + struct page * (*find_special_page)(struct vm_area_struct *, unsigned long); +}; -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_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 kernfs_iattrs; +struct bin_attribute { + struct attribute attr; + size_t size; + void *private; + struct address_space * (*f_mapping)(); + ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); + ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); + loff_t (*llseek)(struct file *, struct kobject *, struct bin_attribute *, loff_t, int); + int (*mmap)(struct file *, struct kobject *, struct bin_attribute *, struct vm_area_struct *); +}; -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; - }; +enum cache_type { + CACHE_TYPE_NOCACHE = 0, + CACHE_TYPE_INST = 1, + CACHE_TYPE_DATA = 2, + CACHE_TYPE_SEPARATE = 3, + CACHE_TYPE_UNIFIED = 4, +}; + +struct cacheinfo { + unsigned int id; + enum cache_type type; + unsigned int level; + unsigned int coherency_line_size; + unsigned int number_of_sets; + unsigned int ways_of_associativity; + unsigned int physical_line_partition; + unsigned int size; + cpumask_t shared_cpu_map; + unsigned int attributes; + void *fw_token; + bool disable_sysfs; void *priv; - u64 id; - unsigned short flags; - umode_t mode; - struct kernfs_iattrs *iattr; }; -struct kernfs_open_file; +enum probe_type { + PROBE_DEFAULT_STRATEGY = 0, + PROBE_PREFER_ASYNCHRONOUS = 1, + PROBE_FORCE_SYNCHRONOUS = 2, +}; -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 *); +enum dl_dev_state { + DL_DEV_NO_DRIVER = 0, + DL_DEV_PROBING = 1, + DL_DEV_DRIVER_BOUND = 2, + DL_DEV_UNBINDING = 3, }; -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; +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, +}; + +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, +}; + +enum device_removable { + DEVICE_REMOVABLE_NOT_SUPPORTED = 0, + DEVICE_REMOVABLE_UNKNOWN = 1, + DEVICE_FIXED = 2, + DEVICE_REMOVABLE = 3, +}; + +enum dev_dma_attr { + DEV_DMA_NOT_SUPPORTED = 0, + DEV_DMA_NON_COHERENT = 1, + DEV_DMA_COHERENT = 2, +}; + +enum { + false = 0, + true = 1, +}; + +struct cpu_cacheinfo { + struct cacheinfo *info_list; + unsigned int per_cpu_data_slice_size; + unsigned int num_levels; + unsigned int num_leaves; + bool cpu_map_populated; + bool early_ci_levels; +}; + +typedef u32 phandle; + +struct fwnode_operations; + +struct device; + +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; + struct kobject kobj; + unsigned long _flags; + void *data; +}; + +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 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; - 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; +typedef struct pm_message pm_message_t; + +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 {}; + +struct device_private; + +struct device_type; + +struct bus_type; + +struct device_driver; + +struct dev_pm_domain; + +struct dev_pin_info; + +struct bus_dma_region; + +struct device_dma_parameters; + +struct dma_coherent_mem; + +struct io_tlb_mem; + +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; + const struct bus_type *bus; + struct device_driver *driver; + void *platform_data; + void *driver_data; + struct mutex mutex; + struct dev_links_info links; + struct dev_pm_info power; + struct dev_pm_domain *pm_domain; + struct dev_pin_info *pins; + struct dev_msi_info msi; + u64 *dma_mask; + u64 coherent_dma_mask; + u64 bus_dma_limit; + const struct bus_dma_region *dma_range_map; + struct device_dma_parameters *dma_parms; + struct list_head dma_pools; + struct dma_coherent_mem *dma_mem; + 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; + const struct class *class; + const struct attribute_group **groups; + void (*release)(struct device *); + struct iommu_group *iommu_group; + struct dev_iommu *iommu; + struct device_physical_location *physical_location; + enum device_removable removable; + bool offline_disabled: 1; + bool offline: 1; + bool of_node_reused: 1; + bool state_synced: 1; + bool can_match: 1; + bool dma_coherent: 1; }; struct dev_pm_ops; @@ -4215,6 +3919,7 @@ enum iommu_cap { IOMMU_CAP_PRE_BOOT_PROTECTION = 2, IOMMU_CAP_ENFORCE_CACHE_COHERENCY = 3, IOMMU_CAP_DEFERRED_FLUSH = 4, + IOMMU_CAP_DIRTY_TRACKING = 5, }; enum iommu_dev_features { @@ -4226,6 +3931,8 @@ typedef unsigned int ioasid_t; struct iommu_domain; +struct iommu_user_data; + struct iommu_device; struct of_phandle_args; @@ -4238,11 +3945,13 @@ struct iommu_domain_ops; struct iommu_ops { bool (*capable)(struct device *, enum iommu_cap); + void * (*hw_info)(struct device *, u32 *, u32 *); struct iommu_domain * (*domain_alloc)(unsigned int); + struct iommu_domain * (*domain_alloc_user)(struct device *, u32, struct iommu_domain *, const struct iommu_user_data *); + struct iommu_domain * (*domain_alloc_paging)(struct device *); 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 *); @@ -4255,6 +3964,9 @@ struct iommu_ops { const struct iommu_domain_ops *default_domain_ops; unsigned long pgsize_bitmap; struct module *owner; + struct iommu_domain *identity_domain; + struct iommu_domain *blocked_domain; + struct iommu_domain *default_domain; }; struct wakeup_source { @@ -4298,8 +4010,11 @@ struct dev_pm_domain { int (*activate)(struct device *); void (*sync)(struct device *); void (*dismiss)(struct device *); + int (*set_performance_state)(struct device *, unsigned int); }; +typedef u64 phys_addr_t; + typedef u64 dma_addr_t; struct bus_dma_region { @@ -4358,214 +4073,91 @@ struct property { struct bin_attribute attr; }; -union acpi_subtable_headers; - -typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const unsigned long); +typedef unsigned long uintptr_t; -struct acpi_hmat_structure { - u16 type; - u16 reserved; - u32 length; +enum fixed_addresses { + FIX_HOLE = 0, + FIX_FDT_END = 1, + FIX_FDT = 1024, + FIX_PTE = 1025, + FIX_PMD = 1026, + FIX_PUD = 1027, + FIX_P4D = 1028, + FIX_TEXT_POKE1 = 1029, + FIX_TEXT_POKE0 = 1030, + FIX_EARLYCON_MEM_BASE = 1031, + __end_of_permanent_fixed_addresses = 1032, + FIX_BTMAP_END = 1032, + FIX_BTMAP_BEGIN = 1479, + __end_of_fixed_addresses = 1480, }; -struct acpi_prmt_module_header { - u16 revision; - u16 length; +enum fault_flag { + FAULT_FLAG_WRITE = 1, + FAULT_FLAG_MKWRITE = 2, + FAULT_FLAG_ALLOW_RETRY = 4, + FAULT_FLAG_RETRY_NOWAIT = 8, + FAULT_FLAG_KILLABLE = 16, + FAULT_FLAG_TRIED = 32, + FAULT_FLAG_USER = 64, + FAULT_FLAG_REMOTE = 128, + FAULT_FLAG_INSTRUCTION = 256, + FAULT_FLAG_INTERRUPTIBLE = 512, + FAULT_FLAG_UNSHARE = 1024, + FAULT_FLAG_ORIG_PTE_VALID = 2048, + FAULT_FLAG_VMA_LOCK = 4096, }; -struct acpi_cedt_header { - u8 type; - u8 reserved; - u16 length; +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, }; -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; +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, }; -struct static_key_false { - struct static_key key; +struct idr { + struct xarray idr_rt; + unsigned int idr_base; + unsigned int idr_next; }; -typedef struct cpumask cpumask_var_t[1]; +struct proc_ns_operations; -struct msi_desc; +struct ns_common { + atomic_long_t stashed; + const struct proc_ns_operations *ops; + unsigned int inum; + refcount_t count; +}; -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; - unsigned int ipi_offset; +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 user_namespace *user_ns; + struct ucounts *ucounts; + int reboot; + struct ns_common ns; + int memfd_noexec_scope; }; -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 irq_desc; - -typedef void (*irq_flow_handler_t)(struct irq_desc *); - -struct irqaction; - -struct irq_affinity_notify; - -struct proc_dir_entry; - -struct irq_desc { - struct irq_common_data irq_common_data; - struct irq_data irq_data; - unsigned int __attribute__((btf_type_tag("percpu"))) *kstat_irqs; - irq_flow_handler_t handle_irq; - struct irqaction *action; - unsigned int status_use_accessors; - unsigned int core_internal_state__do_not_mess_with_it; - unsigned int depth; - unsigned int wake_depth; - unsigned int tot_count; - unsigned int irq_count; - unsigned long last_unhandled; - unsigned int irqs_unhandled; - atomic_t threads_handled; - int threads_handled_last; - raw_spinlock_t lock; - struct cpumask *percpu_enabled; - const struct cpumask *percpu_affinity; - const struct cpumask *affinity_hint; - struct irq_affinity_notify *affinity_notify; - unsigned long threads_oneshot; - atomic_t threads_active; - wait_queue_head_t wait_for_threads; - unsigned int nr_actions; - unsigned int no_suspend_depth; - unsigned int cond_suspend_depth; - unsigned int force_resume_depth; - struct proc_dir_entry *dir; - struct callback_head rcu; - struct kobject kobj; - struct mutex request_mutex; - int parent_irq; - struct module *owner; - const char *name; - struct hlist_node resend_node; - long: 64; - long: 64; -}; - -enum irqchip_irq_state { - IRQCHIP_STATE_PENDING = 0, - IRQCHIP_STATE_ACTIVE = 1, - IRQCHIP_STATE_MASKED = 2, - IRQCHIP_STATE_LINE_LEVEL = 3, -}; - -struct msi_msg; - -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 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 idr { - struct xarray idr_rt; - unsigned int idr_base; - unsigned int idr_next; -}; - -struct proc_ns_operations; - -struct ns_common { - atomic_long_t stashed; - const struct proc_ns_operations *ops; - unsigned int inum; - refcount_t count; -}; - -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 user_namespace *user_ns; - struct ucounts *ucounts; - int reboot; - struct ns_common ns; - int memfd_noexec_scope; -}; - -struct uts_namespace; +struct uts_namespace; struct ipc_namespace; @@ -4578,7 +4170,7 @@ struct time_namespace; struct cgroup_namespace; struct nsproxy { - atomic_t count; + refcount_t count; struct uts_namespace *uts_ns; struct ipc_namespace *ipc_ns; struct mnt_namespace *mnt_ns; @@ -4602,90 +4194,147 @@ struct proc_ns_operations { struct ns_common * (*get_parent)(struct ns_common *); }; -enum irqreturn { - IRQ_NONE = 0, - IRQ_HANDLED = 1, - IRQ_WAKE_THREAD = 2, +typedef struct { + unsigned long pte; +} pte_t; + +typedef struct { + unsigned long pmd; +} pmd_t; + +typedef struct { + unsigned long pud; +} pud_t; + +typedef struct page *pgtable_t; + +struct vm_fault { + struct { + struct vm_area_struct *vma; + gfp_t gfp_mask; + unsigned long pgoff; + unsigned long address; + unsigned long real_address; + }; + enum fault_flag flags; + pmd_t *pmd; + pud_t *pud; + union { + pte_t orig_pte; + pmd_t orig_pmd; + }; + struct page *cow_page; + struct page *page; + pte_t *pte; + spinlock_t *ptl; + pgtable_t prealloc_pte; }; -typedef enum irqreturn irqreturn_t; +struct range { + u64 start; + u64 end; +}; -typedef irqreturn_t (*irq_handler_t)(int, void *); +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 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; +struct percpu_ref_data; + +struct percpu_ref { + unsigned long percpu_count_ptr; + struct percpu_ref_data *data; +}; + +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 thread_flags; - unsigned long thread_mask; - const char *name; - struct proc_dir_entry *dir; - long: 64; - long: 64; - long: 64; - long: 64; + 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]; + }; + }; }; -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 *); +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; }; -enum ipi_message_type { - IPI_RESCHEDULE = 0, - IPI_CALL_FUNC = 1, - IPI_CPU_STOP = 2, - IPI_CPU_CRASH_STOP = 3, - IPI_IRQ_WORK = 4, - IPI_TIMER = 5, - IPI_MAX = 6, +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); }; -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, +typedef int (*cpu_stop_fn_t)(void *); + +struct patch_insn { + void *addr; + u32 *insns; + int ninsns; + atomic_t cpu_count; }; -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 u32 kprobe_opcode_t; + +struct kprobe; + +struct pt_regs; + +typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *); + +typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, unsigned long); + +typedef u32 probe_opcode_t; + +typedef bool probes_handler_t(u32, unsigned long, struct pt_regs *); + +struct arch_probe_insn { + probe_opcode_t *insn; + probes_handler_t *handler; + unsigned long restore; +}; + +struct arch_specific_insn { + struct arch_probe_insn api; +}; + +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 pt_regs { @@ -4727,80 +4376,65 @@ struct pt_regs { unsigned long orig_a0; }; -struct cpu_operations { - const char *name; - int (*cpu_prepare)(unsigned int); - int (*cpu_start)(unsigned int, struct task_struct *); - int (*cpu_disable)(unsigned int); - void (*cpu_stop)(); - int (*cpu_is_stopped)(unsigned int); +struct prev_kprobe { + struct kprobe *kp; + unsigned int status; }; -enum sbi_ext_id { - SBI_EXT_BASE = 16, - SBI_EXT_TIME = 1414090053, - SBI_EXT_IPI = 7557193, - SBI_EXT_RFENCE = 1380339267, - SBI_EXT_HSM = 4739917, - SBI_EXT_SRST = 1397904212, - SBI_EXT_PMU = 5262677, - SBI_EXT_EXPERIMENTAL_START = 134217728, - SBI_EXT_EXPERIMENTAL_END = 150994943, - SBI_EXT_VENDOR_START = 150994944, - SBI_EXT_VENDOR_END = 167772159, +struct kprobe_ctlblk { + unsigned int kprobe_status; + unsigned long saved_status; + struct prev_kprobe prev_kprobe; }; -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; +enum probe_insn { + INSN_REJECTED = 0, + INSN_GOOD_NO_SLOT = 1, + INSN_GOOD = 2, }; -typedef struct elf64_hdr Elf64_Ehdr; - -typedef __kernel_long_t __kernel_ptrdiff_t; +struct rethook; -typedef __kernel_ptrdiff_t ptrdiff_t; +struct rethook_node { + struct callback_head rcu; + struct llist_node llist; + struct rethook *rethook; + unsigned long ret_addr; + unsigned long frame; +}; -typedef __s64 Elf64_Sxword; +struct objpool_head; -struct elf64_rela { - Elf64_Addr r_offset; - Elf64_Xword r_info; - Elf64_Sxword r_addend; -}; +typedef int (*objpool_fini_cb)(struct objpool_head *, void *); -typedef struct elf64_rela Elf64_Rela; +struct objpool_slot; -struct got_entry { - unsigned long symbol_addr; +struct objpool_head { + int obj_size; + int nr_objs; + int nr_cpus; + int capacity; + gfp_t gfp; + refcount_t ref; + unsigned long flags; + struct objpool_slot **cpu_slots; + objpool_fini_cb release; + void *context; }; -struct plt_entry { - u32 insn_auipc; - u32 insn_ld; - u32 insn_jr; +struct rethook { + void *data; + void (*handler)(struct rethook_node *, void *, unsigned long, struct pt_regs *); + struct objpool_head pool; + struct callback_head rcu; }; -typedef unsigned long ulong; - -struct suspend_context { - struct pt_regs regs; - unsigned long scratch; - unsigned long tvec; - unsigned long ie; - unsigned long satp; +struct objpool_slot { + uint32_t head; + uint32_t tail; + uint32_t last; + uint32_t mask; + void *entries[0]; }; enum ftrace_ops_cmd { @@ -4809,27 +4443,40 @@ enum ftrace_ops_cmd { FTRACE_OPS_CMD_DISABLE_SHARE_IPMODIFY_PEER = 2, }; -struct ftrace_ret_stack { - unsigned long ret; - unsigned long func; - unsigned long long calltime; - unsigned long long subtime; - unsigned long fp; - unsigned long *retp; +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, }; -struct dyn_arch_ftrace {}; +enum { + TRACE_CTX_NMI = 0, + TRACE_CTX_IRQ = 1, + TRACE_CTX_SOFTIRQ = 2, + TRACE_CTX_NORMAL = 3, + TRACE_CTX_TRANSITION = 4, +}; -struct dyn_ftrace { - unsigned long ip; - unsigned long flags; - struct dyn_arch_ftrace arch; +struct ftrace_regs { + struct pt_regs 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; @@ -4865,3227 +4512,3112 @@ struct ftrace_hash { struct callback_head rcu; }; -struct ftrace_regs { - struct pt_regs regs; +enum rp_check { + RP_CHECK_CALL = 0, + RP_CHECK_CHAIN_CALL = 1, + RP_CHECK_RET = 2, }; -struct ctl_table; - -typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *); +enum pageflags { + PG_locked = 0, + PG_writeback = 1, + PG_referenced = 2, + PG_uptodate = 3, + PG_dirty = 4, + PG_lru = 5, + PG_head = 6, + PG_waiters = 7, + PG_active = 8, + PG_workingset = 9, + PG_error = 10, + PG_slab = 11, + PG_owner_priv_1 = 12, + PG_arch_1 = 13, + PG_reserved = 14, + PG_private = 15, + PG_private_2 = 16, + PG_mappedtodisk = 17, + PG_reclaim = 18, + PG_swapbacked = 19, + PG_unevictable = 20, + PG_mlocked = 21, + __NR_PAGEFLAGS = 22, + PG_readahead = 18, + PG_anon_exclusive = 17, + PG_checked = 12, + PG_swapcache = 12, + PG_fscache = 16, + PG_pinned = 12, + PG_savepinned = 4, + PG_foreign = 12, + PG_xen_remapped = 12, + PG_isolated = 18, + PG_reported = 3, + PG_has_hwpoisoned = 10, + PG_hugetlb = 8, + PG_large_rmappable = 9, +}; -struct ctl_table_poll; +typedef u32 uprobe_opcode_t; -struct ctl_table { - const char *procname; - void *data; - int maxlen; - umode_t mode; - enum { - SYSCTL_TABLE_TYPE_DEFAULT = 0, - SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY = 1, - } type; - proc_handler *proc_handler; - struct ctl_table_poll *poll; - void *extra1; - void *extra2; +struct vm_struct { + struct vm_struct *next; + void *addr; + unsigned long size; + unsigned long flags; + struct page **pages; + unsigned int page_order; + unsigned int nr_pages; + phys_addr_t phys_addr; + const void *caller; }; -struct ctl_table_poll { - atomic_t event; - wait_queue_head_t wait; +struct arch_uprobe { + union { + u8 insn[8]; + u8 ixol[8]; + }; + struct arch_probe_insn api; + unsigned long insn_size; + bool simulate; }; -typedef unsigned long uintptr_t; +struct notifier_block; -struct perf_callchain_entry; +typedef int (*notifier_fn_t)(struct notifier_block *, unsigned long, void *); -struct perf_callchain_entry_ctx { - struct perf_callchain_entry *entry; - u32 max_stack; - u32 nr; - short contexts; - bool contexts_maxed; +struct notifier_block { + notifier_fn_t notifier_call; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *next; + int priority; }; -struct perf_callchain_entry { - __u64 nr; - __u64 ip[0]; +struct vdso_timestamp { + u64 sec; + u64 nsec; }; -struct stackframe { - unsigned long fp; - unsigned long ra; +struct timens_offset { + s64 sec; + u64 nsec; }; -struct uid_gid_extent { - u32 first; - u32 lower_first; - u32 count; +struct arch_vdso_data { + __u64 all_cpu_hwprobe_values[7]; + __u8 homogeneous_cpus; }; -struct uid_gid_map { - u32 nr_extents; +struct vdso_data { + u32 seq; + s32 clock_mode; + u64 cycle_last; + u64 mask; + u32 mult; + u32 shift; union { - struct uid_gid_extent extent[5]; - struct { - struct uid_gid_extent *forward; - struct uid_gid_extent *reverse; - }; + 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 ctl_table_root; - -struct ctl_table_set; - -struct ctl_dir; +typedef int (*initcall_t)(); -struct ctl_node; +struct vm_special_mapping; -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 __vdso_info { + const char *name; + const char *vdso_code_start; + const char *vdso_code_end; + unsigned long vdso_pages; + struct vm_special_mapping *dm; + struct vm_special_mapping *cm; }; -struct ctl_dir { - struct ctl_table_header header; - struct rb_root root; +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 ctl_table_set { - int (*is_seen)(struct ctl_table_set *); - struct ctl_dir dir; -}; +struct linux_binprm; -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 coredump_params; -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 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 ctl_node { - struct rb_node node; - struct ctl_table_header *header; +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 ucounts { - struct hlist_node node; - struct user_namespace *ns; - kuid_t uid; - atomic_t count; - atomic_long_t ucount[10]; - atomic_long_t rlimit[4]; +struct timens_offsets { + struct timespec64 monotonic; + struct timespec64 boottime; }; -struct cgroup_namespace { - struct ns_common ns; +struct time_namespace { struct user_namespace *user_ns; struct ucounts *ucounts; - struct css_set *root_cset; + struct ns_common ns; + struct timens_offsets offsets; + struct page *vvar_page; + bool frozen_offsets; }; -struct rcu_work { - struct work_struct work; - struct callback_head rcu; - struct workqueue_struct *wq; +enum vvar_pages { + VVAR_DATA_PAGE_OFFSET = 0, + VVAR_TIMENS_PAGE_OFFSET = 1, + VVAR_NR_PAGES = 2, }; -struct cgroup_subsys; +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 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; +enum kmalloc_cache_type { + KMALLOC_NORMAL = 0, + KMALLOC_DMA = 0, + KMALLOC_RANDOM_START = 0, + KMALLOC_RANDOM_END = 0, + KMALLOC_RECLAIM = 1, + KMALLOC_CGROUP = 2, + NR_KMALLOC_TYPES = 3, }; -struct cgroup_file { - struct kernfs_node *kn; - unsigned long notified_at; - struct timer_list notify_timer; +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 task_cputime { - u64 stime; - u64 utime; - unsigned long long sum_exec_runtime; +struct vma_iterator { + struct ma_state mas; }; -struct cgroup_base_stat { - struct task_cputime cputime; +struct maple_alloc { + unsigned long total; + unsigned char node_count; + unsigned int request_count; + struct maple_alloc *slot[30]; }; -struct bpf_prog_array; +typedef unsigned int zap_flags_t; -struct cgroup_bpf { - struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *effective[23]; - struct hlist_head progs[23]; - u8 flags[23]; - struct list_head storages; - struct bpf_prog_array *inactive; - struct percpu_ref refcnt; - struct work_struct release_work; +struct zap_details { + struct folio *single_folio; + bool even_cows; + zap_flags_t zap_flags; }; -struct cgroup_freezer_state { - bool freeze; - int e_freeze; - int nr_frozen_descendants; - int nr_frozen_tasks; +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 cgroup_root; +struct ctl_table; -struct cgroup_rstat_cpu; +typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *); -struct psi_group; +struct ctl_table_poll; -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[11]; - struct cgroup_root *root; - struct list_head cset_links; - struct list_head e_csets[11]; - 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 ctl_table { + const char *procname; + void *data; + int maxlen; + umode_t mode; + enum { + SYSCTL_TABLE_TYPE_DEFAULT = 0, + SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY = 1, + } type; + proc_handler *proc_handler; + struct ctl_table_poll *poll; + void *extra1; + void *extra2; }; -struct 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 ctl_table_poll { + atomic_t event; + wait_queue_head_t wait; }; -struct u64_stats_sync {}; +typedef unsigned long ulong; -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; +union reg_data { + u8 data_bytes[8]; + ulong data_ulong; + u64 data_u64; }; -struct psi_group {}; - -struct bpf_prog; - -struct bpf_cgroup_storage; +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_PERCPU_CNT_DEAD = 31, + CPUHP_RADIX_DEAD = 32, + CPUHP_PAGE_ALLOC = 33, + CPUHP_NET_DEV_DEAD = 34, + CPUHP_PCI_XGENE_DEAD = 35, + CPUHP_IOMMU_IOVA_DEAD = 36, + CPUHP_LUSTRE_CFS_DEAD = 37, + CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 38, + CPUHP_PADATA_DEAD = 39, + CPUHP_AP_DTPM_CPU_DEAD = 40, + CPUHP_RANDOM_PREPARE = 41, + CPUHP_WORKQUEUE_PREP = 42, + CPUHP_POWER_NUMA_PREPARE = 43, + CPUHP_HRTIMERS_PREPARE = 44, + CPUHP_PROFILE_PREPARE = 45, + CPUHP_X2APIC_PREPARE = 46, + CPUHP_SMPCFD_PREPARE = 47, + CPUHP_RELAY_PREPARE = 48, + CPUHP_SLAB_PREPARE = 49, + CPUHP_MD_RAID5_PREPARE = 50, + CPUHP_RCUTREE_PREP = 51, + CPUHP_CPUIDLE_COUPLED_PREPARE = 52, + CPUHP_POWERPC_PMAC_PREPARE = 53, + CPUHP_POWERPC_MMU_CTX_PREPARE = 54, + CPUHP_XEN_PREPARE = 55, + CPUHP_XEN_EVTCHN_PREPARE = 56, + CPUHP_ARM_SHMOBILE_SCU_PREPARE = 57, + CPUHP_SH_SH3X_PREPARE = 58, + CPUHP_NET_FLOW_PREPARE = 59, + CPUHP_TOPOLOGY_PREPARE = 60, + CPUHP_NET_IUCV_PREPARE = 61, + CPUHP_ARM_BL_PREPARE = 62, + CPUHP_TRACE_RB_PREPARE = 63, + CPUHP_MM_ZS_PREPARE = 64, + CPUHP_MM_ZSWP_MEM_PREPARE = 65, + CPUHP_MM_ZSWP_POOL_PREPARE = 66, + CPUHP_KVM_PPC_BOOK3S_PREPARE = 67, + CPUHP_ZCOMP_PREPARE = 68, + CPUHP_TIMERS_PREPARE = 69, + CPUHP_MIPS_SOC_PREPARE = 70, + CPUHP_BP_PREPARE_DYN = 71, + CPUHP_BP_PREPARE_DYN_END = 91, + CPUHP_BP_KICK_AP = 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_VFP_STARTING = 118, + CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 119, + CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 120, + CPUHP_AP_PERF_ARM_ACPI_STARTING = 121, + CPUHP_AP_PERF_ARM_STARTING = 122, + CPUHP_AP_PERF_RISCV_STARTING = 123, + CPUHP_AP_ARM_L2X0_STARTING = 124, + CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 125, + CPUHP_AP_ARM_ARCH_TIMER_STARTING = 126, + CPUHP_AP_ARM_ARCH_TIMER_EVTSTRM_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_XEN_RUNSTATE_STARTING = 144, + CPUHP_AP_ARM_CORESIGHT_STARTING = 145, + CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 146, + CPUHP_AP_ARM64_ISNDEP_STARTING = 147, + CPUHP_AP_SMPCFD_DYING = 148, + CPUHP_AP_HRTIMERS_DYING = 149, + CPUHP_AP_X86_TBOOT_DYING = 150, + CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 151, + CPUHP_AP_ONLINE = 152, + CPUHP_TEARDOWN_CPU = 153, + CPUHP_AP_ONLINE_IDLE = 154, + CPUHP_AP_HYPERV_ONLINE = 155, + CPUHP_AP_KVM_ONLINE = 156, + CPUHP_AP_SCHED_WAIT_EMPTY = 157, + CPUHP_AP_SMPBOOT_THREADS = 158, + CPUHP_AP_IRQ_AFFINITY_ONLINE = 159, + CPUHP_AP_BLK_MQ_ONLINE = 160, + CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 161, + CPUHP_AP_X86_INTEL_EPB_ONLINE = 162, + CPUHP_AP_PERF_ONLINE = 163, + CPUHP_AP_PERF_X86_ONLINE = 164, + CPUHP_AP_PERF_X86_UNCORE_ONLINE = 165, + CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 166, + CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 167, + CPUHP_AP_PERF_X86_RAPL_ONLINE = 168, + CPUHP_AP_PERF_X86_CQM_ONLINE = 169, + CPUHP_AP_PERF_X86_CSTATE_ONLINE = 170, + CPUHP_AP_PERF_X86_IDXD_ONLINE = 171, + CPUHP_AP_PERF_S390_CF_ONLINE = 172, + CPUHP_AP_PERF_S390_SF_ONLINE = 173, + CPUHP_AP_PERF_ARM_CCI_ONLINE = 174, + CPUHP_AP_PERF_ARM_CCN_ONLINE = 175, + CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 176, + CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 177, + CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 178, + CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 179, + CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 180, + CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 181, + CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 182, + CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 183, + CPUHP_AP_PERF_ARM_L2X0_ONLINE = 184, + CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 185, + CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 186, + CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 187, + CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 188, + CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 189, + CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 190, + CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 191, + CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 192, + CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 193, + CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 194, + CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 195, + CPUHP_AP_PERF_CSKY_ONLINE = 196, + CPUHP_AP_WATCHDOG_ONLINE = 197, + CPUHP_AP_WORKQUEUE_ONLINE = 198, + CPUHP_AP_RANDOM_ONLINE = 199, + CPUHP_AP_RCUTREE_ONLINE = 200, + CPUHP_AP_BASE_CACHEINFO_ONLINE = 201, + CPUHP_AP_ONLINE_DYN = 202, + CPUHP_AP_ONLINE_DYN_END = 232, + CPUHP_AP_MM_DEMOTION_ONLINE = 233, + CPUHP_AP_X86_HPET_ONLINE = 234, + CPUHP_AP_X86_KVM_CLK_ONLINE = 235, + CPUHP_AP_ACTIVE = 236, + CPUHP_ONLINE = 237, +}; -struct bpf_prog_array_item { - struct bpf_prog *prog; - union { - struct bpf_cgroup_storage *cgroup_storage[2]; - u64 bpf_cookie; - }; +enum acpi_madt_type { + ACPI_MADT_TYPE_LOCAL_APIC = 0, + ACPI_MADT_TYPE_IO_APIC = 1, + ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2, + ACPI_MADT_TYPE_NMI_SOURCE = 3, + ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4, + ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5, + ACPI_MADT_TYPE_IO_SAPIC = 6, + ACPI_MADT_TYPE_LOCAL_SAPIC = 7, + ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8, + ACPI_MADT_TYPE_LOCAL_X2APIC = 9, + ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, + ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, + ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, + ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, + ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, + ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, + ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, + ACPI_MADT_TYPE_CORE_PIC = 17, + ACPI_MADT_TYPE_LIO_PIC = 18, + ACPI_MADT_TYPE_HT_PIC = 19, + ACPI_MADT_TYPE_EIO_PIC = 20, + ACPI_MADT_TYPE_MSI_PIC = 21, + ACPI_MADT_TYPE_BIO_PIC = 22, + ACPI_MADT_TYPE_LPC_PIC = 23, + ACPI_MADT_TYPE_RINTC = 24, + ACPI_MADT_TYPE_IMSIC = 25, + ACPI_MADT_TYPE_APLIC = 26, + ACPI_MADT_TYPE_PLIC = 27, + ACPI_MADT_TYPE_RESERVED = 28, + ACPI_MADT_TYPE_OEM_RESERVED = 128, }; -struct bpf_prog_array { - struct callback_head rcu; - struct bpf_prog_array_item items[0]; +struct acpi_subtable_header { + u8 type; + u8 length; }; -struct cgroup_taskset; +struct acpi_madt_rintc { + struct acpi_subtable_header header; + u8 version; + u8 reserved; + u32 flags; + u64 hart_id; + u32 uid; + u32 ext_intc_id; + u64 imsic_addr; + u32 imsic_size; +} __attribute__((packed)); -struct cftype; +union acpi_subtable_headers; -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; -}; +typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const unsigned long); -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 acpi_hmat_structure { + u16 type; + u16 reserved; + u32 length; }; -struct perf_event_groups { - struct rb_root tree; - u64 index; +struct acpi_prmt_module_header { + u16 revision; + u16 length; }; -typedef struct { - atomic_long_t a; -} local_t; +struct acpi_cedt_header { + u8 type; + u8 reserved; + u16 length; +}; -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; +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; }; -enum perf_event_riscv_regs { - PERF_REG_RISCV_PC = 0, - PERF_REG_RISCV_RA = 1, - PERF_REG_RISCV_SP = 2, - PERF_REG_RISCV_GP = 3, - PERF_REG_RISCV_TP = 4, - PERF_REG_RISCV_T0 = 5, - PERF_REG_RISCV_T1 = 6, - PERF_REG_RISCV_T2 = 7, - PERF_REG_RISCV_S0 = 8, - PERF_REG_RISCV_S1 = 9, - PERF_REG_RISCV_A0 = 10, - PERF_REG_RISCV_A1 = 11, - PERF_REG_RISCV_A2 = 12, - PERF_REG_RISCV_A3 = 13, - PERF_REG_RISCV_A4 = 14, - PERF_REG_RISCV_A5 = 15, - PERF_REG_RISCV_A6 = 16, - PERF_REG_RISCV_A7 = 17, - PERF_REG_RISCV_S2 = 18, - PERF_REG_RISCV_S3 = 19, - PERF_REG_RISCV_S4 = 20, - PERF_REG_RISCV_S5 = 21, - PERF_REG_RISCV_S6 = 22, - PERF_REG_RISCV_S7 = 23, - PERF_REG_RISCV_S8 = 24, - PERF_REG_RISCV_S9 = 25, - PERF_REG_RISCV_S10 = 26, - PERF_REG_RISCV_S11 = 27, - PERF_REG_RISCV_T3 = 28, - PERF_REG_RISCV_T4 = 29, - PERF_REG_RISCV_T5 = 30, - PERF_REG_RISCV_T6 = 31, - PERF_REG_RISCV_MAX = 32, +struct static_key_false { + struct static_key key; }; -enum perf_sample_regs_abi { - PERF_SAMPLE_REGS_ABI_NONE = 0, - PERF_SAMPLE_REGS_ABI_32 = 1, - PERF_SAMPLE_REGS_ABI_64 = 2, +typedef struct cpumask cpumask_var_t[1]; + +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; + unsigned int ipi_offset; }; -struct perf_regs { - __u64 abi; - struct pt_regs *regs; +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; }; -typedef u64 uint64_t; +struct irq_desc; -struct notifier_block; +typedef void (*irq_flow_handler_t)(struct irq_desc *); -typedef int (*notifier_fn_t)(struct notifier_block *, unsigned long, void *); +struct irqaction; -struct notifier_block { - notifier_fn_t notifier_call; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *next; - int priority; -}; +struct irq_affinity_notify; -enum sbi_ext_rfence_fid { - SBI_EXT_RFENCE_REMOTE_FENCE_I = 0, - SBI_EXT_RFENCE_REMOTE_SFENCE_VMA = 1, - SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID = 2, - SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID = 3, - SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA = 4, - SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID = 5, - SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA = 6, -}; +struct proc_dir_entry; -enum sbi_ext_base_fid { - SBI_EXT_BASE_GET_SPEC_VERSION = 0, - SBI_EXT_BASE_GET_IMP_ID = 1, - SBI_EXT_BASE_GET_IMP_VERSION = 2, - SBI_EXT_BASE_PROBE_EXT = 3, - SBI_EXT_BASE_GET_MVENDORID = 4, - SBI_EXT_BASE_GET_MARCHID = 5, - SBI_EXT_BASE_GET_MIMPID = 6, +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; + unsigned long threads_oneshot; + atomic_t threads_active; + wait_queue_head_t wait_for_threads; + unsigned int nr_actions; + unsigned int no_suspend_depth; + unsigned int cond_suspend_depth; + unsigned int force_resume_depth; + struct proc_dir_entry *dir; + struct callback_head rcu; + struct kobject kobj; + struct mutex request_mutex; + int parent_irq; + struct module *owner; + const char *name; + struct hlist_node resend_node; + long: 64; + long: 64; }; -enum sbi_ext_time_fid { - SBI_EXT_TIME_SET_TIMER = 0, +enum irqchip_irq_state { + IRQCHIP_STATE_PENDING = 0, + IRQCHIP_STATE_ACTIVE = 1, + IRQCHIP_STATE_MASKED = 2, + IRQCHIP_STATE_LINE_LEVEL = 3, }; -enum sbi_ext_ipi_fid { - SBI_EXT_IPI_SEND_IPI = 0, -}; +struct msi_msg; -enum sbi_srst_reset_type { - SBI_SRST_RESET_TYPE_SHUTDOWN = 0, - SBI_SRST_RESET_TYPE_COLD_REBOOT = 1, - SBI_SRST_RESET_TYPE_WARM_REBOOT = 2, +struct irq_chip { + const char *name; + unsigned int (*irq_startup)(struct irq_data *); + void (*irq_shutdown)(struct irq_data *); + void (*irq_enable)(struct irq_data *); + void (*irq_disable)(struct irq_data *); + void (*irq_ack)(struct irq_data *); + void (*irq_mask)(struct irq_data *); + void (*irq_mask_ack)(struct irq_data *); + void (*irq_unmask)(struct irq_data *); + void (*irq_eoi)(struct irq_data *); + int (*irq_set_affinity)(struct irq_data *, const struct cpumask *, bool); + int (*irq_retrigger)(struct irq_data *); + int (*irq_set_type)(struct irq_data *, unsigned int); + int (*irq_set_wake)(struct irq_data *, unsigned int); + void (*irq_bus_lock)(struct irq_data *); + void (*irq_bus_sync_unlock)(struct irq_data *); + void (*irq_suspend)(struct irq_data *); + void (*irq_resume)(struct irq_data *); + void (*irq_pm_shutdown)(struct irq_data *); + void (*irq_calc_mask)(struct irq_data *); + void (*irq_print_chip)(struct irq_data *, struct seq_file *); + int (*irq_request_resources)(struct irq_data *); + void (*irq_release_resources)(struct irq_data *); + void (*irq_compose_msi_msg)(struct irq_data *, struct msi_msg *); + void (*irq_write_msi_msg)(struct irq_data *, struct msi_msg *); + int (*irq_get_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool *); + int (*irq_set_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool); + int (*irq_set_vcpu_affinity)(struct irq_data *, void *); + void (*ipi_send_single)(struct irq_data *, unsigned int); + void (*ipi_send_mask)(struct irq_data *, const struct cpumask *); + int (*irq_nmi_setup)(struct irq_data *); + void (*irq_nmi_teardown)(struct irq_data *); + unsigned long flags; }; -enum sbi_srst_reset_reason { - SBI_SRST_RESET_REASON_NONE = 0, - SBI_SRST_RESET_REASON_SYS_FAILURE = 1, +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; }; -enum sbi_ext_srst_fid { - SBI_EXT_SRST_RESET = 0, +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 *); }; -enum reboot_mode { - REBOOT_UNDEFINED = -1, - REBOOT_COLD = 0, - REBOOT_WARM = 1, - REBOOT_HARD = 2, - REBOOT_SOFT = 3, - REBOOT_GPIO = 4, +enum irqreturn { + IRQ_NONE = 0, + IRQ_HANDLED = 1, + IRQ_WAKE_THREAD = 2, }; -struct sbiret { - long error; - long value; +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; }; -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, +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 *); }; -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 ipi_message_type { + IPI_RESCHEDULE = 0, + IPI_CALL_FUNC = 1, + IPI_CPU_STOP = 2, + IPI_CPU_CRASH_STOP = 3, + IPI_IRQ_WORK = 4, + IPI_TIMER = 5, + IPI_MAX = 6, }; 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, - IRQD_RESEND_WHEN_IN_PROGRESS = 2147483648, + 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, }; -typedef unsigned long irq_hw_number_t; - -struct irq_domain_ops; - -struct irq_domain_chip_generic; - -struct msi_parent_ops; - -struct irq_domain { - struct list_head link; +struct cpu_operations { 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]; + int (*cpu_prepare)(unsigned int); + int (*cpu_start)(unsigned int, struct task_struct *); + int (*cpu_disable)(unsigned int); + void (*cpu_stop)(); + int (*cpu_is_stopped)(unsigned int); }; -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 *); +enum sbi_ext_id { + SBI_EXT_BASE = 16, + SBI_EXT_TIME = 1414090053, + SBI_EXT_IPI = 7557193, + SBI_EXT_RFENCE = 1380339267, + SBI_EXT_HSM = 4739917, + SBI_EXT_SRST = 1397904212, + SBI_EXT_PMU = 5262677, + SBI_EXT_DBCN = 1145193294, + SBI_EXT_EXPERIMENTAL_START = 134217728, + SBI_EXT_EXPERIMENTAL_END = 150994943, + SBI_EXT_VENDOR_START = 150994944, + SBI_EXT_VENDOR_END = 167772159, }; -struct irq_fwspec { - struct fwnode_handle *fwnode; - int param_count; - u32 param[16]; +struct relocation_handlers { + int (*reloc_handler)(struct module *, void *, Elf64_Addr); + int (*accumulate_handler)(struct module *, void *, long); }; -struct irq_chip_generic; +typedef __u16 __le16; -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 relocation_head { + struct hlist_node node; + struct list_head *rel_entry; + void *location; }; -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 used_bucket { + struct list_head head; + struct hlist_head *bucket; }; -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 relocation_entry { + struct list_head head; + Elf64_Addr value; + unsigned int type; }; -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 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 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; }; -struct irq_affinity_desc { - struct cpumask mask; - unsigned int is_managed: 1; -}; +typedef struct elf64_hdr Elf64_Ehdr; -struct sbi_hart_boot_data { - void *task_ptr; - void *stack_ptr; -}; +typedef __kernel_long_t __kernel_ptrdiff_t; -enum sbi_ext_hsm_fid { - SBI_EXT_HSM_HART_START = 0, - SBI_EXT_HSM_HART_STOP = 1, - SBI_EXT_HSM_HART_STATUS = 2, - SBI_EXT_HSM_HART_SUSPEND = 3, -}; +typedef __kernel_ptrdiff_t ptrdiff_t; -enum sbi_hsm_hart_state { - SBI_HSM_STATE_STARTED = 0, - SBI_HSM_STATE_STOPPED = 1, - SBI_HSM_STATE_START_PENDING = 2, - SBI_HSM_STATE_STOP_PENDING = 3, - SBI_HSM_STATE_SUSPENDED = 4, - SBI_HSM_STATE_SUSPEND_PENDING = 5, - SBI_HSM_STATE_RESUME_PENDING = 6, -}; +typedef __s64 Elf64_Sxword; -enum jump_label_type { - JUMP_LABEL_NOP = 0, - JUMP_LABEL_JMP = 1, +struct elf64_rela { + Elf64_Addr r_offset; + Elf64_Xword r_info; + Elf64_Sxword r_addend; }; -enum writeback_sync_modes { - WB_SYNC_NONE = 0, - WB_SYNC_ALL = 1, -}; +typedef struct elf64_rela Elf64_Rela; -enum zone_type { - ZONE_DMA32 = 0, - ZONE_NORMAL = 1, - ZONE_MOVABLE = 2, - __MAX_NR_ZONES = 3, +struct got_entry { + unsigned long symbol_addr; }; -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 plt_entry { + u32 insn_auipc; + u32 insn_ld; + u32 insn_jr; }; -typedef struct { - u32 type; - u32 pad; - u64 phys_addr; - u64 virt_addr; - u64 num_pages; - u64 attribute; -} efi_memory_desc_t; - -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; - struct swap_iocb **swap_plug; +struct suspend_context { + struct pt_regs regs; + unsigned long scratch; + unsigned long tvec; + unsigned long ie; + unsigned long satp; }; -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 ftrace_ret_stack { + unsigned long ret; + unsigned long func; + unsigned long long calltime; + unsigned long long subtime; + unsigned long fp; + unsigned long *retp; }; -struct wait_queue_entry; - -typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *); +struct dyn_arch_ftrace {}; -struct wait_queue_entry { - unsigned int flags; - void *private; - wait_queue_func_t func; - struct list_head entry; +struct dyn_ftrace { + unsigned long ip; + unsigned long flags; + struct dyn_arch_ftrace arch; }; -typedef struct wait_queue_entry wait_queue_entry_t; +struct perf_callchain_entry; -struct wait_page_queue { - struct folio *folio; - int bit_nr; - wait_queue_entry_t wait; +struct perf_callchain_entry_ctx { + struct perf_callchain_entry *entry; + u32 max_stack; + u32 nr; + short contexts; + bool contexts_maxed; }; -struct swap_cluster_info { - spinlock_t lock; - unsigned int data: 24; - unsigned int flags: 8; +struct perf_callchain_entry { + __u64 nr; + __u64 ip[0]; }; -struct swap_cluster_list { - struct swap_cluster_info head; - struct swap_cluster_info tail; +struct stackframe { + unsigned long fp; + unsigned long ra; }; -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 uid_gid_extent { + u32 first; + u32 lower_first; + u32 count; }; -struct percpu_cluster { - struct swap_cluster_info index; - unsigned int next; +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 gendisk; +struct ctl_table_root; -struct disk_stats; +struct ctl_table_set; -struct blk_holder_ops; +struct ctl_dir; -struct partition_meta_info; +struct ctl_node; -struct block_device { - sector_t bd_start_sect; - sector_t bd_nr_sectors; - struct gendisk *bd_disk; - struct request_queue *bd_queue; - struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats; - unsigned long bd_stamp; - bool bd_read_only; - u8 bd_partno; - bool bd_write_holder; - bool bd_has_submit_bio; - dev_t bd_dev; - atomic_t bd_openers; - spinlock_t bd_size_lock; - struct inode *bd_inode; - struct super_block *bd_super; - void *bd_claiming; - void *bd_holder; - const struct blk_holder_ops *bd_holder_ops; - struct mutex bd_holder_lock; - int bd_fsfreeze_count; - int bd_holders; - struct kobject *bd_holder_dir; - struct mutex bd_fsfreeze_mutex; - struct super_block *bd_fsfreeze_sb; - struct partition_meta_info *bd_meta_info; - struct device bd_device; +struct ctl_table_header { + union { + struct { + struct ctl_table *ctl_table; + int ctl_table_size; + int used; + int count; + int nreg; + }; + struct callback_head rcu; + }; + struct completion *unregistering; + struct ctl_table *ctl_table_arg; + struct ctl_table_root *root; + struct ctl_table_set *set; + struct ctl_dir *parent; + struct ctl_node *node; + struct hlist_head inodes; }; -struct 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 ctl_dir { + struct ctl_table_header header; + struct rb_root root; }; -struct blk_holder_ops { - void (*mark_dead)(struct block_device *); +struct ctl_table_set { + int (*is_seen)(struct ctl_table_set *); + struct ctl_dir dir; }; -typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *); +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 poll_table_struct { - poll_queue_proc _qproc; - __poll_t _key; +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 cacheline_padding { - char x[0]; +struct ctl_node { + struct rb_node node; + struct ctl_table_header *header; }; -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 ucounts { + struct hlist_node node; + struct user_namespace *ns; + kuid_t uid; + atomic_t count; + atomic_long_t ucount[10]; + atomic_long_t rlimit[4]; }; -struct mem_cgroup_id { - int id; - refcount_t ref; +struct cgroup_namespace { + struct ns_common ns; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct css_set *root_cset; }; -struct vmpressure { - unsigned long scanned; - unsigned long reclaimed; - unsigned long tree_scanned; - unsigned long tree_reclaimed; - spinlock_t sr_lock; - struct list_head events; - struct mutex events_lock; +struct rcu_work { struct work_struct work; + struct callback_head rcu; + struct workqueue_struct *wq; }; -struct mem_cgroup_threshold_ary; +struct cgroup_subsys; -struct mem_cgroup_thresholds { - struct mem_cgroup_threshold_ary *primary; - struct mem_cgroup_threshold_ary *spare; +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 memcg_vmstats; +struct cgroup_file { + struct kernfs_node *kn; + unsigned long notified_at; + struct timer_list notify_timer; +}; -struct obj_cgroup; +struct task_cputime { + u64 stime; + u64 utime; + unsigned long long sum_exec_runtime; +}; -struct memcg_vmstats_percpu; +struct cgroup_base_stat { + struct task_cputime cputime; +}; -struct mem_cgroup_per_node; +struct bpf_prog_array; -struct mem_cgroup { - struct cgroup_subsys_state css; - struct mem_cgroup_id id; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct page_counter memory; - union { - struct page_counter swap; - struct page_counter memsw; - }; - struct page_counter kmem; - struct page_counter tcpmem; - struct work_struct high_work; - unsigned long soft_limit; - struct vmpressure vmpressure; - bool oom_group; - bool oom_lock; - int under_oom; - int swappiness; - int oom_kill_disable; - struct cgroup_file events_file; - struct cgroup_file events_local_file; - struct cgroup_file swap_events_file; - struct mutex thresholds_lock; - struct mem_cgroup_thresholds thresholds; - struct mem_cgroup_thresholds memsw_thresholds; - struct list_head oom_notify; - unsigned long move_charge_at_immigrate; - spinlock_t move_lock; - unsigned long move_lock_flags; - long: 64; - long: 64; - long: 64; - long: 64; - struct cacheline_padding _pad1_; - struct memcg_vmstats *vmstats; - atomic_long_t memory_events[9]; - atomic_long_t memory_events_local[9]; - unsigned long socket_pressure; - bool tcpmem_active; - int tcpmem_pressure; - int kmemcg_id; - struct obj_cgroup __attribute__((btf_type_tag("rcu"))) *objcg; - struct list_head objcg_list; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct cacheline_padding _pad2_; - atomic_t moving_account; - struct task_struct *move_lock_task; - struct memcg_vmstats_percpu __attribute__((btf_type_tag("percpu"))) *vmstats_percpu; - struct list_head event_list; - spinlock_t event_list_lock; - struct mem_cgroup_per_node *nodeinfo[0]; +struct cgroup_bpf { + struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *effective[28]; + struct hlist_head progs[28]; + u8 flags[28]; + struct list_head storages; + struct bpf_prog_array *inactive; + struct percpu_ref refcnt; + struct work_struct release_work; }; -struct reclaim_state { - unsigned long reclaimed; +struct cgroup_freezer_state { + bool freeze; + int e_freeze; + int nr_frozen_descendants; + int nr_frozen_tasks; }; -struct eventfd_ctx; +struct cgroup_root; -struct mem_cgroup_threshold { - struct eventfd_ctx *eventfd; - unsigned long threshold; -}; +struct cgroup_rstat_cpu; -struct mem_cgroup_threshold_ary { - int current_threshold; - unsigned int size; - struct mem_cgroup_threshold entries[0]; -}; +struct psi_group; -struct obj_cgroup { - struct percpu_ref refcnt; - struct mem_cgroup *memcg; - atomic_t nr_charged_bytes; - union { - struct list_head list; - struct callback_head rcu; - }; +struct 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[14]; + struct cgroup_root *root; + struct list_head cset_links; + struct list_head e_csets[14]; + struct cgroup *dom_cgrp; + struct cgroup *old_dom_cgrp; + struct cgroup_rstat_cpu __attribute__((btf_type_tag("percpu"))) *rstat_cpu; + struct list_head rstat_css_list; + 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 memcg_vmstats_percpu { - long state[48]; - unsigned long events[15]; - long state_prev[48]; - unsigned long events_prev[15]; - unsigned long nr_page_events; - unsigned long targets[2]; +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 pglist_data; - -struct lruvec { - struct list_head lists[5]; - spinlock_t lru_lock; - unsigned long anon_cost; - unsigned long file_cost; - atomic_long_t nonresident_age; - unsigned long refaults[2]; - unsigned long flags; - struct pglist_data *pgdat; -}; +struct u64_stats_sync {}; -struct lruvec_stats { - long state[41]; - long state_pending[41]; +struct cgroup_rstat_cpu { + struct u64_stats_sync bsync; + struct cgroup_base_stat bstat; + struct cgroup_base_stat last_bstat; + struct cgroup_base_stat subtree_bstat; + struct cgroup_base_stat last_subtree_bstat; + struct cgroup *updated_children; + struct cgroup *updated_next; }; -struct mem_cgroup_reclaim_iter { - struct mem_cgroup *position; - unsigned int generation; -}; +struct psi_group {}; -struct lruvec_stats_percpu; +struct bpf_prog; -struct shrinker_info; +struct bpf_cgroup_storage; -struct mem_cgroup_per_node { - struct lruvec lruvec; - struct lruvec_stats_percpu __attribute__((btf_type_tag("percpu"))) *lruvec_stats_percpu; - struct lruvec_stats lruvec_stats; - unsigned long lru_zone_size[15]; - struct mem_cgroup_reclaim_iter iter; - struct shrinker_info __attribute__((btf_type_tag("rcu"))) *shrinker_info; - struct rb_node tree_node; - unsigned long usage_in_excess; - bool on_tree; - struct mem_cgroup *memcg; +struct bpf_prog_array_item { + struct bpf_prog *prog; + union { + struct bpf_cgroup_storage *cgroup_storage[2]; + u64 bpf_cookie; + }; }; -struct free_area { - struct list_head free_list[4]; - unsigned long nr_free; +struct bpf_prog_array { + struct callback_head rcu; + struct bpf_prog_array_item items[0]; }; -struct per_cpu_pages; +struct cgroup_taskset; -struct per_cpu_zonestat; +struct cftype; -struct zone { - unsigned long _watermark[4]; - unsigned long watermark_boost; - unsigned long nr_reserved_highatomic; - long lowmem_reserve[3]; - 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; +struct cgroup_subsys { + struct cgroup_subsys_state * (*css_alloc)(struct cgroup_subsys_state *); + int (*css_online)(struct cgroup_subsys_state *); + void (*css_offline)(struct cgroup_subsys_state *); + void (*css_released)(struct cgroup_subsys_state *); + void (*css_free)(struct cgroup_subsys_state *); + void (*css_reset)(struct cgroup_subsys_state *); + void (*css_rstat_flush)(struct cgroup_subsys_state *, int); + int (*css_extra_stat_show)(struct seq_file *, struct cgroup_subsys_state *); + int (*css_local_stat_show)(struct seq_file *, struct cgroup_subsys_state *); + int (*can_attach)(struct cgroup_taskset *); + void (*cancel_attach)(struct cgroup_taskset *); + void (*attach)(struct cgroup_taskset *); + void (*post_attach)(); + int (*can_fork)(struct task_struct *, struct css_set *); + void (*cancel_fork)(struct task_struct *, struct css_set *); + void (*fork)(struct task_struct *); + void (*exit)(struct task_struct *); + void (*release)(struct task_struct *); + void (*bind)(struct cgroup_subsys_state *); + bool early_init: 1; + bool implicit_on_dfl: 1; + bool threaded: 1; + int id; const char *name; - int initialized; - long: 64; - 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: 64; - struct cacheline_padding _pad2_; - unsigned long percpu_drift_mark; - unsigned long compact_cached_free_pfn; - unsigned long compact_cached_migrate_pfn[2]; - unsigned long compact_init_migrate_pfn; - unsigned long compact_init_free_pfn; - unsigned int compact_considered; - unsigned int compact_defer_shift; - int compact_order_failed; - bool compact_blockskip_flush; - bool contiguous; - long: 0; - struct cacheline_padding _pad3_; - atomic_long_t vm_stat[10]; - atomic_long_t vm_numa_event[0]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; + 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 zoneref { - struct zone *zone; - int zone_idx; +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 zonelist { - struct zoneref _zonerefs[4]; +struct perf_event_groups { + struct rb_root tree; + u64 index; }; -struct per_cpu_nodestat; +typedef struct { + atomic_long_t a; +} local_t; -struct pglist_data { - struct zone node_zones[3]; - 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; - long: 64; - long: 64; - long: 64; - long: 64; - struct cacheline_padding _pad1_; - struct lruvec __lruvec; - unsigned long flags; - 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 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 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; +enum perf_event_riscv_regs { + PERF_REG_RISCV_PC = 0, + PERF_REG_RISCV_RA = 1, + PERF_REG_RISCV_SP = 2, + PERF_REG_RISCV_GP = 3, + PERF_REG_RISCV_TP = 4, + PERF_REG_RISCV_T0 = 5, + PERF_REG_RISCV_T1 = 6, + PERF_REG_RISCV_T2 = 7, + PERF_REG_RISCV_S0 = 8, + PERF_REG_RISCV_S1 = 9, + PERF_REG_RISCV_A0 = 10, + PERF_REG_RISCV_A1 = 11, + PERF_REG_RISCV_A2 = 12, + PERF_REG_RISCV_A3 = 13, + PERF_REG_RISCV_A4 = 14, + PERF_REG_RISCV_A5 = 15, + PERF_REG_RISCV_A6 = 16, + PERF_REG_RISCV_A7 = 17, + PERF_REG_RISCV_S2 = 18, + PERF_REG_RISCV_S3 = 19, + PERF_REG_RISCV_S4 = 20, + PERF_REG_RISCV_S5 = 21, + PERF_REG_RISCV_S6 = 22, + PERF_REG_RISCV_S7 = 23, + PERF_REG_RISCV_S8 = 24, + PERF_REG_RISCV_S9 = 25, + PERF_REG_RISCV_S10 = 26, + PERF_REG_RISCV_S11 = 27, + PERF_REG_RISCV_T3 = 28, + PERF_REG_RISCV_T4 = 29, + PERF_REG_RISCV_T5 = 30, + PERF_REG_RISCV_T6 = 31, + PERF_REG_RISCV_MAX = 32, }; -struct per_cpu_zonestat { - s8 vm_stat_diff[10]; - s8 stat_threshold; +enum perf_sample_regs_abi { + PERF_SAMPLE_REGS_ABI_NONE = 0, + PERF_SAMPLE_REGS_ABI_32 = 1, + PERF_SAMPLE_REGS_ABI_64 = 2, }; -struct per_cpu_nodestat { - s8 stat_threshold; - s8 vm_node_stat_diff[41]; +struct perf_regs { + __u64 abi; + struct pt_regs *regs; }; -struct lruvec_stats_percpu { - long state[41]; - long state_prev[41]; -}; +typedef u64 uint64_t; -struct shrinker_info { - struct callback_head rcu; - atomic_long_t *nr_deferred; - unsigned long *map; - int map_nr_max; +enum sbi_ext_rfence_fid { + SBI_EXT_RFENCE_REMOTE_FENCE_I = 0, + SBI_EXT_RFENCE_REMOTE_SFENCE_VMA = 1, + SBI_EXT_RFENCE_REMOTE_SFENCE_VMA_ASID = 2, + SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID = 3, + SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA = 4, + SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID = 5, + SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA = 6, }; -struct fprop_local_percpu { - struct percpu_counter events; - unsigned int period; - raw_spinlock_t lock; +enum sbi_ext_base_fid { + SBI_EXT_BASE_GET_SPEC_VERSION = 0, + SBI_EXT_BASE_GET_IMP_ID = 1, + SBI_EXT_BASE_GET_IMP_VERSION = 2, + SBI_EXT_BASE_PROBE_EXT = 3, + SBI_EXT_BASE_GET_MVENDORID = 4, + SBI_EXT_BASE_GET_MARCHID = 5, + SBI_EXT_BASE_GET_MIMPID = 6, }; -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; +enum sbi_ext_time_fid { + SBI_EXT_TIME_SET_TIMER = 0, }; -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; +enum sbi_ext_ipi_fid { + SBI_EXT_IPI_SEND_IPI = 0, }; -struct cdev { - struct kobject kobj; - struct module *owner; - const struct file_operations *ops; - struct list_head list; - dev_t dev; - unsigned int count; +enum sbi_srst_reset_type { + SBI_SRST_RESET_TYPE_SHUTDOWN = 0, + SBI_SRST_RESET_TYPE_COLD_REBOOT = 1, + SBI_SRST_RESET_TYPE_WARM_REBOOT = 2, }; -typedef int (*pte_fn_t)(pte_t *, unsigned long, void *); - -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, +enum sbi_srst_reset_reason { + SBI_SRST_RESET_REASON_NONE = 0, + SBI_SRST_RESET_REASON_SYS_FAILURE = 1, }; -enum print_line_t { - TRACE_TYPE_PARTIAL_LINE = 0, - TRACE_TYPE_HANDLED = 1, - TRACE_TYPE_UNHANDLED = 2, - TRACE_TYPE_NO_CONSUME = 3, +enum sbi_ext_srst_fid { + SBI_EXT_SRST_RESET = 0, }; -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, +enum reboot_mode { + REBOOT_UNDEFINED = -1, + REBOOT_COLD = 0, + REBOOT_WARM = 1, + REBOOT_HARD = 2, + REBOOT_SOFT = 3, + REBOOT_GPIO = 4, }; -typedef s32 compat_pid_t; - -typedef u32 __compat_uid32_t; - -typedef s32 compat_timer_t; - -typedef s32 compat_int_t; - -union compat_sigval { - compat_int_t sival_int; - compat_uptr_t sival_ptr; +struct sbiret { + long error; + long value; }; -typedef union compat_sigval compat_sigval_t; +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, +}; -typedef s32 compat_clock_t; +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, +}; -typedef u32 compat_ulong_t; +enum { + IRQD_TRIGGER_MASK = 15, + IRQD_SETAFFINITY_PENDING = 256, + IRQD_ACTIVATED = 512, + IRQD_NO_BALANCING = 1024, + IRQD_PER_CPU = 2048, + IRQD_AFFINITY_SET = 4096, + IRQD_LEVEL = 8192, + IRQD_WAKEUP_STATE = 16384, + IRQD_MOVE_PCNTXT = 32768, + IRQD_IRQ_DISABLED = 65536, + IRQD_IRQ_MASKED = 131072, + IRQD_IRQ_INPROGRESS = 262144, + IRQD_WAKEUP_ARMED = 524288, + IRQD_FORWARDED_TO_VCPU = 1048576, + IRQD_AFFINITY_MANAGED = 2097152, + IRQD_IRQ_STARTED = 4194304, + IRQD_MANAGED_SHUTDOWN = 8388608, + IRQD_SINGLE_TARGET = 16777216, + IRQD_DEFAULT_TRIGGER_SET = 33554432, + IRQD_CAN_RESERVE = 67108864, + IRQD_HANDLE_ENFORCE_IRQCTX = 134217728, + IRQD_AFFINITY_ON_ACTIVATE = 268435456, + IRQD_IRQ_ENABLED_ON_SUSPEND = 536870912, + IRQD_RESEND_WHEN_IN_PROGRESS = 1073741824, +}; -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; +typedef unsigned long irq_hw_number_t; + +struct irq_domain_ops; + +struct irq_domain_chip_generic; + +struct msi_parent_ops; + +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]; }; -typedef u32 compat_size_t; +struct irq_fwspec; -struct compat_sigaltstack { - compat_uptr_t ss_sp; - int ss_flags; - compat_size_t ss_size; +struct irq_domain_ops { + int (*match)(struct irq_domain *, struct device_node *, enum irq_domain_bus_token); + int (*select)(struct irq_domain *, struct irq_fwspec *, enum irq_domain_bus_token); + int (*map)(struct irq_domain *, unsigned int, irq_hw_number_t); + void (*unmap)(struct irq_domain *, unsigned int); + int (*xlate)(struct irq_domain *, struct device_node *, const u32 *, unsigned int, unsigned long *, unsigned int *); + int (*alloc)(struct irq_domain *, unsigned int, unsigned int, void *); + void (*free)(struct irq_domain *, unsigned int, unsigned int); + int (*activate)(struct irq_domain *, struct irq_data *, bool); + void (*deactivate)(struct irq_domain *, struct irq_data *); + int (*translate)(struct irq_domain *, struct irq_fwspec *, unsigned long *, unsigned int *); }; -typedef struct compat_sigaltstack compat_stack_t; +struct irq_fwspec { + struct fwnode_handle *fwnode; + int param_count; + u32 param[16]; +}; -struct compat_user_regs_struct { - compat_ulong_t pc; - compat_ulong_t ra; - compat_ulong_t sp; - compat_ulong_t gp; - compat_ulong_t tp; - compat_ulong_t t0; - compat_ulong_t t1; - compat_ulong_t t2; - compat_ulong_t s0; - compat_ulong_t s1; - compat_ulong_t a0; - compat_ulong_t a1; - compat_ulong_t a2; - compat_ulong_t a3; - compat_ulong_t a4; - compat_ulong_t a5; - compat_ulong_t a6; - compat_ulong_t a7; - compat_ulong_t s2; - compat_ulong_t s3; - compat_ulong_t s4; - compat_ulong_t s5; - compat_ulong_t s6; - compat_ulong_t s7; - compat_ulong_t s8; - compat_ulong_t s9; - compat_ulong_t s10; - compat_ulong_t s11; - compat_ulong_t t3; - compat_ulong_t t4; - compat_ulong_t t5; - compat_ulong_t t6; +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 __riscv_f_ext_state { - __u32 f[32]; - __u32 fcsr; +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 __riscv_q_ext_state { - __u64 f[64]; - __u32 fcsr; - __u32 reserved[3]; +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; }; -union __riscv_fp_state { - struct __riscv_f_ext_state f; - struct __riscv_d_ext_state d; - struct __riscv_q_ext_state q; +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 compat_sigcontext { - struct compat_user_regs_struct sc_regs; - union __riscv_fp_state sc_fpregs; +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 compat_ucontext { - compat_ulong_t uc_flags; - struct compat_ucontext *uc_link; - compat_stack_t uc_stack; - sigset_t uc_sigmask; - __u8 __unused[120]; - struct compat_sigcontext uc_mcontext; +struct irq_affinity_desc { + struct cpumask mask; + unsigned int is_managed: 1; }; -struct compat_rt_sigframe { - struct compat_siginfo info; - struct compat_ucontext uc; +struct sbi_hart_boot_data { + void *task_ptr; + void *stack_ptr; }; -struct trace_event_functions; +enum sbi_ext_hsm_fid { + SBI_EXT_HSM_HART_START = 0, + SBI_EXT_HSM_HART_STOP = 1, + SBI_EXT_HSM_HART_STATUS = 2, + SBI_EXT_HSM_HART_SUSPEND = 3, +}; -struct trace_event { - struct hlist_node node; - int type; - struct trace_event_functions *funcs; +enum sbi_hsm_hart_state { + SBI_HSM_STATE_STARTED = 0, + SBI_HSM_STATE_STOPPED = 1, + SBI_HSM_STATE_START_PENDING = 2, + SBI_HSM_STATE_STOP_PENDING = 3, + SBI_HSM_STATE_SUSPENDED = 4, + SBI_HSM_STATE_SUSPEND_PENDING = 5, + SBI_HSM_STATE_RESUME_PENDING = 6, }; -struct trace_event_class; +enum jump_label_type { + JUMP_LABEL_NOP = 0, + JUMP_LABEL_JMP = 1, +}; -struct event_filter; +enum writeback_sync_modes { + WB_SYNC_NONE = 0, + WB_SYNC_ALL = 1, +}; -struct perf_event; +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 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 zone_type { + ZONE_DMA32 = 0, + ZONE_NORMAL = 1, + ZONE_MOVABLE = 2, + __MAX_NR_ZONES = 3, }; -struct trace_event_fields; +typedef struct { + u32 type; + u32 pad; + u64 phys_addr; + u64 virt_addr; + u64 num_pages; + u64 attribute; +} efi_memory_desc_t; -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 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; + struct swap_iocb **swap_plug; + struct bdi_writeback *wb; + struct inode *inode; + int wb_id; + int wb_lcand_id; + int wb_tcand_id; + size_t wb_bytes; + size_t wb_lcand_bytes; + size_t wb_tcand_bytes; }; -struct trace_event_fields { - const char *type; +struct fprop_local_percpu { + struct percpu_counter events; + unsigned int period; + raw_spinlock_t lock; +}; + +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 percpu_ref refcnt; + struct fprop_local_percpu memcg_completions; + struct cgroup_subsys_state *memcg_css; + struct cgroup_subsys_state *blkcg_css; + struct list_head memcg_node; + struct list_head blkcg_node; + struct list_head b_attached; + struct list_head offline_node; union { - struct { - const char *name; - const int size; - const int align; - const int is_signed; - const int filter_type; - const int len; - }; - int (*define_fields)(struct trace_event_call *); + struct work_struct release_work; + struct callback_head rcu; }; }; -struct trace_iterator; +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; + struct xarray cgwb_tree; + struct mutex cgwb_release_mutex; + struct rw_semaphore wb_switch_rwsem; + wait_queue_head_t wb_waitq; + struct device *dev; + char dev_name[64]; + struct device *owner; + struct timer_list laptop_mode_wb_timer; + struct dentry *debug_dir; +}; -typedef enum print_line_t (*trace_print_func)(struct trace_iterator *, int, struct trace_event *); +typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *); -struct trace_event_functions { - trace_print_func trace; - trace_print_func raw; - trace_print_func hex; - trace_print_func binary; +struct poll_table_struct { + poll_queue_proc _qproc; + __poll_t _key; }; -struct seq_buf { - char *buffer; - size_t size; - size_t len; - loff_t readpos; -}; +struct bio; -struct trace_seq { - char buffer[4096]; - struct seq_buf seq; - int full; +struct bio_list { + struct bio *head; + struct bio *tail; }; -struct trace_array; +typedef __u32 blk_opf_t; -struct tracer; +typedef u8 blk_status_t; -struct array_buffer; +struct bvec_iter { + sector_t bi_sector; + unsigned int bi_size; + unsigned int bi_idx; + unsigned int bi_bvec_done; +} __attribute__((packed)); -struct ring_buffer_iter; +typedef unsigned int blk_qc_t; -struct trace_entry; +typedef void bio_end_io_t(struct bio *); -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 bio_issue { + u64 value; }; -struct trace_entry { - unsigned short type; - unsigned char flags; - unsigned char preempt_count; - int pid; -}; +struct blkcg_gq; -typedef struct { - local_t a; -} local64_t; +struct bio_set; -struct perf_event_attr { - __u32 type; - __u32 size; - __u64 config; - union { - __u64 sample_period; - __u64 sample_freq; - }; - __u64 sample_type; - __u64 read_format; - __u64 disabled: 1; - __u64 inherit: 1; - __u64 pinned: 1; - __u64 exclusive: 1; - __u64 exclude_user: 1; - __u64 exclude_kernel: 1; - __u64 exclude_hv: 1; - __u64 exclude_idle: 1; - __u64 mmap: 1; - __u64 comm: 1; - __u64 freq: 1; - __u64 inherit_stat: 1; - __u64 enable_on_exec: 1; - __u64 task: 1; - __u64 watermark: 1; - __u64 precise_ip: 2; - __u64 mmap_data: 1; - __u64 sample_id_all: 1; - __u64 exclude_host: 1; - __u64 exclude_guest: 1; - __u64 exclude_callchain_kernel: 1; - __u64 exclude_callchain_user: 1; - __u64 mmap2: 1; - __u64 comm_exec: 1; - __u64 use_clockid: 1; - __u64 context_switch: 1; - __u64 write_backward: 1; - __u64 namespaces: 1; - __u64 ksymbol: 1; - __u64 bpf_event: 1; - __u64 aux_output: 1; - __u64 cgroup: 1; - __u64 text_poke: 1; - __u64 build_id: 1; - __u64 inherit_thread: 1; - __u64 remove_on_exec: 1; - __u64 sigtrap: 1; - __u64 __reserved_1: 26; - union { - __u32 wakeup_events; - __u32 wakeup_watermark; - }; - __u32 bp_type; - union { - __u64 bp_addr; - __u64 kprobe_func; - __u64 uprobe_path; - __u64 config1; - }; - union { - __u64 bp_len; - __u64 kprobe_addr; - __u64 probe_offset; - __u64 config2; - }; - __u64 branch_sample_type; - __u64 sample_regs_user; - __u32 sample_stack_user; - __s32 clockid; - __u64 sample_regs_intr; - __u32 aux_watermark; - __u16 sample_max_stack; - __u16 __reserved_2; - __u32 aux_sample_size; - __u32 __reserved_3; - __u64 sig_data; - __u64 config3; +struct 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; + 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 hw_perf_event_extra { - u64 config; - unsigned int reg; - int alloc; - int idx; -}; +struct disk_stats; -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 { - 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 blk_holder_ops; -struct irq_work { - struct __call_single_node node; - void (*func)(struct irq_work *); - struct rcuwait irqwait; -}; +struct partition_meta_info; -struct perf_addr_filters_head { - struct list_head list; - raw_spinlock_t lock; - unsigned int nr_file_filters; +struct block_device { + sector_t bd_start_sect; + sector_t bd_nr_sectors; + struct gendisk *bd_disk; + struct request_queue *bd_queue; + struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats; + unsigned long bd_stamp; + bool bd_read_only; + u8 bd_partno; + bool bd_write_holder; + bool bd_has_submit_bio; + dev_t bd_dev; + struct inode *bd_inode; + atomic_t bd_openers; + spinlock_t bd_size_lock; + void *bd_claiming; + void *bd_holder; + const struct blk_holder_ops *bd_holder_ops; + struct mutex bd_holder_lock; + int bd_fsfreeze_count; + int bd_holders; + struct kobject *bd_holder_dir; + struct mutex bd_fsfreeze_mutex; + struct super_block *bd_fsfreeze_sb; + struct partition_meta_info *bd_meta_info; + bool bd_ro_warned; + struct device bd_device; }; -struct perf_sample_data; +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]; +}; -typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *); +struct blk_holder_ops { + void (*mark_dead)(struct block_device *, bool); + void (*sync)(struct block_device *); +}; -struct pmu; +typedef void *mempool_alloc_t(gfp_t, void *); -struct perf_event_pmu_context; +typedef void mempool_free_t(void *, void *); -struct perf_buffer; +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; +}; -struct fasync_struct; +typedef struct mempool_s mempool_t; -struct perf_addr_filter_range; +struct bio_alloc_cache; -struct perf_cgroup; +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 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; - __u32 orig_type; +struct bio_alloc_cache { + struct bio *free_list; + struct bio *free_list_irq; + unsigned int nr; + unsigned int nr_irq; }; -struct perf_cpu_pmu_context; +struct reclaim_state { + unsigned long reclaimed; +}; -struct perf_output_handle; +struct cacheline_padding { + char x[0]; +}; -struct pmu { - struct list_head entry; - struct module *module; - struct device *dev; - struct device *parent; - const struct attribute_group **attr_groups; - const struct attribute_group **attr_update; - const char *name; - int type; - int capabilities; - int __attribute__((btf_type_tag("percpu"))) *pmu_disable_count; - struct perf_cpu_pmu_context __attribute__((btf_type_tag("percpu"))) *cpu_pmu_context; - atomic_t exclusive_cnt; - int task_ctx_nr; - int hrtimer_interval_ms; - unsigned int nr_addr_filters; - void (*pmu_enable)(struct pmu *); - void (*pmu_disable)(struct pmu *); - int (*event_init)(struct perf_event *); - void (*event_mapped)(struct perf_event *, struct mm_struct *); - void (*event_unmapped)(struct perf_event *, struct mm_struct *); - int (*add)(struct perf_event *, int); - void (*del)(struct perf_event *, int); - void (*start)(struct perf_event *, int); - void (*stop)(struct perf_event *, int); - void (*read)(struct perf_event *); - void (*start_txn)(struct pmu *, unsigned int); - int (*commit_txn)(struct pmu *); - void (*cancel_txn)(struct pmu *); - int (*event_idx)(struct perf_event *); - void (*sched_task)(struct perf_event_pmu_context *, bool); - struct kmem_cache *task_ctx_cache; - void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *); - void * (*setup_aux)(struct perf_event *, void **, int, bool); - void (*free_aux)(void *); - long (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, unsigned long); - int (*addr_filters_validate)(struct list_head *); - void (*addr_filters_sync)(struct perf_event *); - int (*aux_output_match)(struct perf_event *); - bool (*filter)(struct pmu *, int); - int (*check_period)(struct perf_event *, u64); +struct 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 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 mem_cgroup_id { + int id; + refcount_t ref; }; -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 vmpressure { + unsigned long scanned; + unsigned long reclaimed; + unsigned long tree_scanned; + unsigned long tree_reclaimed; + spinlock_t sr_lock; + struct list_head events; + struct mutex events_lock; + struct work_struct work; }; -struct 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 mem_cgroup_threshold_ary; + +struct mem_cgroup_thresholds { + struct mem_cgroup_threshold_ary *primary; + struct mem_cgroup_threshold_ary *spare; }; -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 fprop_global { + struct percpu_counter events; + unsigned int period; + seqcount_t sequence; }; -struct perf_addr_filter_range { - unsigned long start; - unsigned long size; +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; }; -union perf_sample_weight { - __u64 full; - struct { - __u32 var1_dw; - __u16 var2_w; - __u16 var3_w; - }; +struct wb_completion { + atomic_t cnt; + wait_queue_head_t *waitq; }; -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 memcg_cgwb_frn { + u64 bdi_id; + int memcg_id; + u64 at; + struct wb_completion done; }; -struct perf_raw_record; +struct memcg_vmstats; -struct perf_branch_stack; +struct memcg_vmstats_percpu; -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; +struct mem_cgroup_per_node; + +struct mem_cgroup { + struct cgroup_subsys_state css; + struct mem_cgroup_id id; long: 64; long: 64; long: 64; long: 64; long: 64; -}; - -typedef unsigned long (*perf_copy_f)(void *, const void *, unsigned long, unsigned long); - -struct perf_raw_frag { + long: 64; + struct page_counter memory; union { - struct perf_raw_frag *next; - unsigned long pad; + struct page_counter swap; + struct page_counter memsw; }; - perf_copy_f copy; - void *data; - u32 size; -} __attribute__((packed)); - -struct perf_raw_record { - struct perf_raw_frag frag; - u32 size; + struct page_counter kmem; + struct page_counter tcpmem; + struct work_struct high_work; + unsigned long soft_limit; + struct vmpressure vmpressure; + bool oom_group; + bool oom_lock; + int under_oom; + int swappiness; + int oom_kill_disable; + struct cgroup_file events_file; + struct cgroup_file events_local_file; + struct cgroup_file swap_events_file; + struct mutex thresholds_lock; + struct mem_cgroup_thresholds thresholds; + struct mem_cgroup_thresholds memsw_thresholds; + struct list_head oom_notify; + unsigned long move_charge_at_immigrate; + spinlock_t move_lock; + unsigned long move_lock_flags; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct memcg_vmstats *vmstats; + atomic_long_t memory_events[9]; + atomic_long_t memory_events_local[9]; + unsigned long socket_pressure; + bool tcpmem_active; + int tcpmem_pressure; + int kmemcg_id; + struct obj_cgroup __attribute__((btf_type_tag("rcu"))) *objcg; + struct obj_cgroup *orig_objcg; + struct list_head objcg_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad2_; + atomic_t moving_account; + struct task_struct *move_lock_task; + struct memcg_vmstats_percpu __attribute__((btf_type_tag("percpu"))) *vmstats_percpu; + struct list_head cgwb_list; + struct wb_domain cgwb_domain; + struct memcg_cgwb_frn cgwb_frn[4]; + struct list_head event_list; + spinlock_t event_list_lock; + struct mem_cgroup_per_node *nodeinfo[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 eventfd_ctx; -struct perf_branch_stack { - __u64 nr; - __u64 hw_idx; - struct perf_branch_entry entries[0]; +struct mem_cgroup_threshold { + struct eventfd_ctx *eventfd; + unsigned long threshold; }; -struct perf_cgroup_info; - -struct perf_cgroup { - struct cgroup_subsys_state css; - struct perf_cgroup_info __attribute__((btf_type_tag("percpu"))) *info; +struct mem_cgroup_threshold_ary { + int current_threshold; + unsigned int size; + struct mem_cgroup_threshold entries[0]; }; -struct perf_cgroup_info { - u64 time; - u64 timestamp; - u64 timeoffset; - int active; +struct obj_cgroup { + struct percpu_ref refcnt; + struct mem_cgroup *memcg; + atomic_t nr_charged_bytes; + union { + struct list_head list; + struct callback_head rcu; + }; }; -struct trace_eval_map { - const char *system; - const char *eval_string; - unsigned long eval_value; +struct memcg_vmstats_percpu { + long state[48]; + unsigned long events[15]; + long state_prev[48]; + unsigned long events_prev[15]; + unsigned long nr_page_events; + unsigned long targets[2]; }; -struct ksignal { - struct k_sigaction ka; - kernel_siginfo_t info; - int sig; -}; +struct pglist_data; -struct word_at_a_time { - const unsigned long one_bits; - const unsigned long high_bits; +struct lruvec { + struct list_head lists[5]; + spinlock_t lru_lock; + unsigned long anon_cost; + unsigned long file_cost; + atomic_long_t nonresident_age; + unsigned long refaults[2]; + unsigned long flags; + struct pglist_data *pgdat; }; -typedef u16 uint16_t; +struct lruvec_stats { + long state[41]; + long state_local[41]; + long state_pending[41]; +}; -enum { - ASSUME_PERFECT = 255, - ASSUME_VALID_DTB = 1, - ASSUME_VALID_INPUT = 2, - ASSUME_LATEST = 4, - ASSUME_NO_ROLLBACK = 8, - ASSUME_LIBFDT_ORDER = 16, - ASSUME_LIBFDT_FLAWLESS = 32, +struct mem_cgroup_reclaim_iter { + struct mem_cgroup *position; + unsigned int generation; }; -typedef __u32 __be32; +struct lruvec_stats_percpu; -typedef __be32 fdt32_t; +struct shrinker_info; -struct fdt_header { - fdt32_t magic; - fdt32_t totalsize; - fdt32_t off_dt_struct; - fdt32_t off_dt_strings; - fdt32_t off_mem_rsvmap; - fdt32_t version; - fdt32_t last_comp_version; - fdt32_t boot_cpuid_phys; - fdt32_t size_dt_strings; - fdt32_t size_dt_struct; +struct mem_cgroup_per_node { + struct lruvec lruvec; + struct lruvec_stats_percpu __attribute__((btf_type_tag("percpu"))) *lruvec_stats_percpu; + struct lruvec_stats lruvec_stats; + unsigned long lru_zone_size[15]; + struct mem_cgroup_reclaim_iter iter; + struct shrinker_info __attribute__((btf_type_tag("rcu"))) *shrinker_info; + struct rb_node tree_node; + unsigned long usage_in_excess; + bool on_tree; + struct mem_cgroup *memcg; }; -typedef u8 uint8_t; +struct free_area { + struct list_head free_list[4]; + unsigned long nr_free; +}; -typedef __u64 __be64; +struct per_cpu_pages; -typedef __be64 fdt64_t; +struct per_cpu_zonestat; -struct fdt_reserve_entry { - fdt64_t address; - fdt64_t size; +struct zone { + unsigned long _watermark[4]; + unsigned long watermark_boost; + unsigned long nr_reserved_highatomic; + long lowmem_reserve[3]; + struct pglist_data *zone_pgdat; + struct per_cpu_pages __attribute__((btf_type_tag("percpu"))) *per_cpu_pageset; + struct per_cpu_zonestat __attribute__((btf_type_tag("percpu"))) *per_cpu_zonestats; + int pageset_high_min; + int pageset_high_max; + int pageset_batch; + unsigned long zone_start_pfn; + atomic_long_t managed_pages; + unsigned long spanned_pages; + unsigned long present_pages; + const char *name; + int initialized; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct free_area free_area[11]; + unsigned long flags; + spinlock_t lock; + long: 64; + struct cacheline_padding _pad2_; + unsigned long percpu_drift_mark; + unsigned long compact_cached_free_pfn; + unsigned long compact_cached_migrate_pfn[2]; + unsigned long compact_init_migrate_pfn; + unsigned long compact_init_free_pfn; + unsigned int compact_considered; + unsigned int compact_defer_shift; + int compact_order_failed; + bool compact_blockskip_flush; + bool contiguous; + long: 0; + struct cacheline_padding _pad3_; + atomic_long_t vm_stat[10]; + atomic_long_t vm_numa_event[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct fdt_property { - fdt32_t tag; - fdt32_t len; - fdt32_t nameoff; - char data[0]; +struct zoneref { + struct zone *zone; + int zone_idx; }; -struct fdt_node_header { - fdt32_t tag; - char name[0]; +struct zonelist { + struct zoneref _zonerefs[4]; }; -struct obs_kernel_param { - const char *str; - int (*setup_func)(char *); - int early; -}; +struct per_cpu_nodestat; -enum { - MEMREMAP_WB = 1, - MEMREMAP_WT = 2, - MEMREMAP_WC = 4, - MEMREMAP_ENC = 8, - MEMREMAP_DEC = 16, +struct pglist_data { + struct zone node_zones[3]; + 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; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct lruvec __lruvec; + unsigned long flags; + 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 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 per_cpu_pages { + spinlock_t lock; + int count; + int high; + int high_min; + int high_max; + int batch; + u8 flags; + u8 alloc_factor; + short free_count; + struct list_head lists[12]; + long: 64; + long: 64; }; -struct acpi_generic_address { - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 access_width; - u64 address; -} __attribute__((packed)); +struct per_cpu_zonestat { + s8 vm_stat_diff[10]; + s8 stat_threshold; +}; -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 per_cpu_nodestat { + s8 stat_threshold; + s8 vm_node_stat_diff[41]; +}; -typedef u32 acpi_status; +struct lruvec_stats_percpu { + long state[41]; + long state_prev[41]; +}; -typedef char *acpi_string; +struct shrinker_info_unit; -typedef phys_addr_t resource_size_t; +struct shrinker_info { + struct callback_head rcu; + int map_nr_max; + struct shrinker_info_unit *unit[0]; +}; -struct resource { - resource_size_t start; - resource_size_t end; - const char *name; - unsigned long flags; - unsigned long desc; - struct resource *parent; - struct resource *sibling; - struct resource *child; +struct shrinker_info_unit { + atomic_long_t nr_deferred[64]; + unsigned long map[1]; }; -typedef unsigned short pci_bus_flags_t; +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 pci_dev; +struct wait_queue_entry; -struct pci_ops; +typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *); -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; - int domain_nr; - 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 wait_queue_entry { + unsigned int flags; + void *private; + wait_queue_func_t func; + struct list_head entry; }; -typedef int pci_power_t; - -typedef unsigned int pci_channel_state_t; +typedef struct wait_queue_entry wait_queue_entry_t; -typedef unsigned short pci_dev_flags_t; +struct wait_page_queue { + struct folio *folio; + int bit_nr; + wait_queue_entry_t wait; +}; -struct pci_vpd { - struct mutex lock; - unsigned int len; - u8 cap; +struct swap_cluster_info { + spinlock_t lock; + unsigned int data: 24; + unsigned int flags: 8; }; -struct pci_slot; +struct swap_cluster_list { + struct swap_cluster_info head; + struct swap_cluster_info tail; +}; -struct rcec_ea; +struct percpu_cluster; -struct pci_driver; - -struct pcie_link_state; - -struct pci_dev { - struct list_head bus_list; - struct pci_bus *bus; - struct pci_bus *subordinate; - void *sysdata; - struct proc_dir_entry *procent; - struct pci_slot *slot; - unsigned int devfn; - unsigned short vendor; - unsigned short device; - unsigned short subsystem_vendor; - unsigned short subsystem_device; - unsigned int class; - u8 revision; - u8 hdr_type; - 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; - u16 acs_cap; - phys_addr_t rom; - size_t romlen; - const char *driver_override; - unsigned long priv_flags; - u8 reset_methods[7]; +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 bdev_handle *bdev_handle; + 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 hotplug_slot; - -struct pci_slot { - struct pci_bus *bus; - struct list_head list; - struct hotplug_slot *hotplug; - unsigned char number; - struct kobject kobj; +struct percpu_cluster { + struct swap_cluster_info index; + unsigned int next; }; -struct pci_dynids { - spinlock_t lock; +struct cdev { + struct kobject kobj; + struct module *owner; + const struct file_operations *ops; struct list_head list; + dev_t dev; + unsigned int count; }; -struct pci_device_id; - -struct pci_error_handlers; +typedef int (*pte_fn_t)(pte_t *, unsigned long, void *); -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; +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 pci_device_id { - __u32 vendor; - __u32 device; - __u32 subvendor; - __u32 subdevice; - __u32 class; - __u32 class_mask; - kernel_ulong_t driver_data; - __u32 override_only; +enum print_line_t { + TRACE_TYPE_PARTIAL_LINE = 0, + TRACE_TYPE_HANDLED = 1, + TRACE_TYPE_UNHANDLED = 2, + TRACE_TYPE_NO_CONSUME = 3, }; -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 *); +enum perf_event_state { + PERF_EVENT_STATE_DEAD = -4, + PERF_EVENT_STATE_EXIT = -3, + PERF_EVENT_STATE_ERROR = -2, + PERF_EVENT_STATE_OFF = -1, + PERF_EVENT_STATE_INACTIVE = 0, + PERF_EVENT_STATE_ACTIVE = 1, }; -struct 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 s32 compat_pid_t; -typedef u64 acpi_physical_address; +typedef u32 __compat_uid32_t; -typedef u64 acpi_size; +typedef s32 compat_timer_t; -struct acpi_device; +typedef s32 compat_int_t; -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; +union compat_sigval { + compat_int_t sival_int; + compat_uptr_t sival_ptr; }; -typedef void *acpi_handle; - -struct acpi_device_status { - u32 present: 1; - u32 enabled: 1; - u32 show_in_ui: 1; - u32 functional: 1; - u32 battery_present: 1; - u32 reserved: 27; -}; +typedef union compat_sigval compat_sigval_t; -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 s32 compat_clock_t; -typedef char acpi_bus_id[8]; +typedef u32 compat_ulong_t; -struct acpi_pnp_type { - u32 hardware_id: 1; - u32 bus_address: 1; - u32 platform_id: 1; - u32 backlight: 1; - u32 reserved: 28; +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; }; -typedef u64 acpi_bus_address; - -typedef char acpi_device_name[40]; +typedef u32 compat_size_t; -typedef char acpi_device_class[20]; +struct compat_sigaltstack { + compat_uptr_t ss_sp; + int ss_flags; + compat_size_t ss_size; +}; -union acpi_object; +typedef struct compat_sigaltstack compat_stack_t; -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 compat_user_regs_struct { + compat_ulong_t pc; + compat_ulong_t ra; + compat_ulong_t sp; + compat_ulong_t gp; + compat_ulong_t tp; + compat_ulong_t t0; + compat_ulong_t t1; + compat_ulong_t t2; + compat_ulong_t s0; + compat_ulong_t s1; + compat_ulong_t a0; + compat_ulong_t a1; + compat_ulong_t a2; + compat_ulong_t a3; + compat_ulong_t a4; + compat_ulong_t a5; + compat_ulong_t a6; + compat_ulong_t a7; + compat_ulong_t s2; + compat_ulong_t s3; + compat_ulong_t s4; + compat_ulong_t s5; + compat_ulong_t s6; + compat_ulong_t s7; + compat_ulong_t s8; + compat_ulong_t s9; + compat_ulong_t s10; + compat_ulong_t s11; + compat_ulong_t t3; + compat_ulong_t t4; + compat_ulong_t t5; + compat_ulong_t t6; }; -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 __riscv_f_ext_state { + __u32 f[32]; + __u32 fcsr; }; -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 __riscv_q_ext_state { + __u64 f[64]; + __u32 fcsr; + __u32 reserved[3]; }; -struct acpi_device_power { - int state; - struct acpi_device_power_flags flags; - struct acpi_device_power_state states[5]; - u8 state_for_enumeration; +union __riscv_fp_state { + struct __riscv_f_ext_state f; + struct __riscv_d_ext_state d; + struct __riscv_q_ext_state q; }; -struct acpi_device_wakeup_flags { - u8 valid: 1; - u8 notifier_present: 1; +struct compat_sigcontext { + struct compat_user_regs_struct sc_regs; + union __riscv_fp_state sc_fpregs; }; -struct acpi_device_wakeup_context { - void (*func)(struct acpi_device_wakeup_context *); - struct device *dev; +struct compat_ucontext { + compat_ulong_t uc_flags; + struct compat_ucontext *uc_link; + compat_stack_t uc_stack; + sigset_t uc_sigmask; + __u8 __unused[120]; + struct compat_sigcontext uc_mcontext; }; -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 compat_rt_sigframe { + struct compat_siginfo info; + struct compat_ucontext uc; }; -struct acpi_device_perf_flags { - u8 reserved: 8; +struct trace_event_functions; + +struct trace_event { + struct hlist_node node; + int type; + struct trace_event_functions *funcs; }; -struct acpi_device_perf_state; +struct trace_event_class; -struct acpi_device_perf { - int state; - struct acpi_device_perf_flags flags; - int state_count; - struct acpi_device_perf_state *states; -}; +struct event_filter; -struct acpi_device_dir { - struct proc_dir_entry *entry; -}; +struct perf_event; -struct acpi_device_data { - const union acpi_object *pointer; - struct list_head properties; - const union acpi_object *of_compatible; - struct list_head subnodes; +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 *); }; -struct acpi_scan_handler; +struct trace_event_fields; -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 *); -}; - -typedef u32 acpi_object_type; - -typedef u64 acpi_io_address; - -union acpi_object { - acpi_object_type type; - struct { - acpi_object_type type; - u64 value; - } integer; - struct { - acpi_object_type type; - u32 length; - char *pointer; - } string; - struct { - acpi_object_type type; - u32 length; - u8 *pointer; - } buffer; - struct { - acpi_object_type type; - u32 count; - union acpi_object *elements; - } package; - struct { - acpi_object_type type; - acpi_object_type actual_type; - acpi_handle handle; - } reference; - struct { - acpi_object_type type; - u32 proc_id; - acpi_io_address pblk_address; - u32 pblk_length; - } processor; - struct { - acpi_object_type type; - u32 system_level; - u32 resource_order; - } power_resource; +struct 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 acpi_device_perf_state { - struct { - u8 valid: 1; - u8 reserved: 7; - } flags; - u8 power; - u8 performance; - int latency; +struct trace_event_fields { + const char *type; + union { + struct { + const char *name; + const int size; + const int align; + const int is_signed; + const int filter_type; + const int len; + }; + int (*define_fields)(struct trace_event_call *); + }; }; -struct 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 trace_iterator; -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; -}; +typedef enum print_line_t (*trace_print_func)(struct trace_iterator *, int, struct trace_event *); -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 trace_event_functions { + trace_print_func trace; + trace_print_func raw; + trace_print_func hex; + trace_print_func binary; }; -struct acpi_gpio_params; - -struct acpi_gpio_mapping { - const char *name; - const struct acpi_gpio_params *data; - unsigned int size; - unsigned int quirks; +struct seq_buf { + char *buffer; + size_t size; + size_t len; }; -struct acpi_gpio_params { - unsigned int crs_entry_index; - unsigned int line_index; - bool active_low; +struct trace_seq { + char buffer[4096]; + struct seq_buf seq; + size_t readpos; + int full; }; -struct kernel_mapping { - unsigned long page_offset; - unsigned long virt_addr; - uintptr_t phys_addr; - uintptr_t size; - unsigned long va_pa_offset; - unsigned long va_kernel_pa_offset; - unsigned long va_kernel_xip_pa_offset; -}; +struct trace_array; -typedef struct { - unsigned long p4d; -} p4d_t; +struct tracer; -struct pt_alloc_ops { - pte_t * (*get_pte_virt)(phys_addr_t); - phys_addr_t (*alloc_pte)(uintptr_t); - pmd_t * (*get_pmd_virt)(phys_addr_t); - phys_addr_t (*alloc_pmd)(uintptr_t); - pud_t * (*get_pud_virt)(phys_addr_t); - phys_addr_t (*alloc_pud)(uintptr_t); - p4d_t * (*get_p4d_virt)(phys_addr_t); - phys_addr_t (*alloc_p4d)(uintptr_t); -}; +struct array_buffer; -enum fixed_addresses { - FIX_HOLE = 0, - FIX_FDT_END = 1, - FIX_FDT = 1024, - FIX_PTE = 1025, - FIX_PMD = 1026, - FIX_PUD = 1027, - FIX_P4D = 1028, - FIX_TEXT_POKE1 = 1029, - FIX_TEXT_POKE0 = 1030, - FIX_EARLYCON_MEM_BASE = 1031, - __end_of_permanent_fixed_addresses = 1032, - FIX_BTMAP_END = 1032, - FIX_BTMAP_BEGIN = 1479, - __end_of_fixed_addresses = 1480, -}; +struct ring_buffer_iter; -enum memblock_flags { - MEMBLOCK_NONE = 0, - MEMBLOCK_HOTPLUG = 1, - MEMBLOCK_MIRROR = 2, - MEMBLOCK_NOMAP = 4, - MEMBLOCK_DRIVER_MANAGED = 8, -}; +struct trace_entry; -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_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; }; -enum lockdep_wait_type { - LD_WAIT_INV = 0, - LD_WAIT_FREE = 1, - LD_WAIT_SPIN = 2, - LD_WAIT_CONFIG = 2, - LD_WAIT_SLEEP = 3, - LD_WAIT_MAX = 4, +struct trace_entry { + unsigned short type; + unsigned char flags; + unsigned char preempt_count; + int pid; }; -struct io_tlb_area; - -struct io_tlb_slot; +typedef struct { + local_t a; +} local64_t; -struct io_tlb_mem { - phys_addr_t start; - phys_addr_t end; - void *vaddr; - unsigned long nslabs; - 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; - atomic_long_t total_used; - atomic_long_t used_hiwater; +struct perf_event_attr { + __u32 type; + __u32 size; + __u64 config; + union { + __u64 sample_period; + __u64 sample_freq; + }; + __u64 sample_type; + __u64 read_format; + __u64 disabled: 1; + __u64 inherit: 1; + __u64 pinned: 1; + __u64 exclusive: 1; + __u64 exclude_user: 1; + __u64 exclude_kernel: 1; + __u64 exclude_hv: 1; + __u64 exclude_idle: 1; + __u64 mmap: 1; + __u64 comm: 1; + __u64 freq: 1; + __u64 inherit_stat: 1; + __u64 enable_on_exec: 1; + __u64 task: 1; + __u64 watermark: 1; + __u64 precise_ip: 2; + __u64 mmap_data: 1; + __u64 sample_id_all: 1; + __u64 exclude_host: 1; + __u64 exclude_guest: 1; + __u64 exclude_callchain_kernel: 1; + __u64 exclude_callchain_user: 1; + __u64 mmap2: 1; + __u64 comm_exec: 1; + __u64 use_clockid: 1; + __u64 context_switch: 1; + __u64 write_backward: 1; + __u64 namespaces: 1; + __u64 ksymbol: 1; + __u64 bpf_event: 1; + __u64 aux_output: 1; + __u64 cgroup: 1; + __u64 text_poke: 1; + __u64 build_id: 1; + __u64 inherit_thread: 1; + __u64 remove_on_exec: 1; + __u64 sigtrap: 1; + __u64 __reserved_1: 26; + union { + __u32 wakeup_events; + __u32 wakeup_watermark; + }; + __u32 bp_type; + union { + __u64 bp_addr; + __u64 kprobe_func; + __u64 uprobe_path; + __u64 config1; + }; + union { + __u64 bp_len; + __u64 kprobe_addr; + __u64 probe_offset; + __u64 config2; + }; + __u64 branch_sample_type; + __u64 sample_regs_user; + __u32 sample_stack_user; + __s32 clockid; + __u64 sample_regs_intr; + __u32 aux_watermark; + __u16 sample_max_stack; + __u16 __reserved_2; + __u32 aux_sample_size; + __u32 __reserved_3; + __u64 sig_data; + __u64 config3; }; -struct memblock_region; - -struct memblock_type { - unsigned long cnt; - unsigned long max; - phys_addr_t total_size; - struct memblock_region *regions; - char *name; +struct hw_perf_event_extra { + u64 config; + unsigned int reg; + int alloc; + int idx; }; -struct memblock_region { - phys_addr_t base; - phys_addr_t size; - enum memblock_flags flags; +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 { + 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; }; -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 irq_work { + struct __call_single_node node; + void (*func)(struct irq_work *); + struct rcuwait irqwait; }; -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 perf_addr_filters_head { + struct list_head list; + raw_spinlock_t lock; + unsigned int nr_file_filters; }; -typedef u32 kprobe_opcode_t; +struct perf_sample_data; -struct kprobe; +typedef void (*perf_overflow_handler_t)(struct perf_event *, struct perf_sample_data *, struct pt_regs *); -typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *); +struct pmu; -typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, unsigned long); +struct perf_event_pmu_context; -typedef u32 probe_opcode_t; +struct perf_buffer; -typedef bool probes_handler_t(u32, unsigned long, struct pt_regs *); +struct fasync_struct; -struct arch_probe_insn { - probe_opcode_t *insn; - probes_handler_t *handler; - unsigned long restore; -}; +struct perf_addr_filter_range; -struct arch_specific_insn { - struct arch_probe_insn api; -}; +struct perf_cgroup; -struct kprobe { - struct hlist_node hlist; - struct list_head list; - unsigned long nmissed; - kprobe_opcode_t *addr; - const char *symbol_name; - unsigned int offset; - kprobe_pre_handler_t pre_handler; - kprobe_post_handler_t post_handler; - kprobe_opcode_t opcode; - struct arch_specific_insn ainsn; - u32 flags; -}; - -enum page_walk_lock { - PGWALK_RDLOCK = 0, - PGWALK_WRLOCK = 1, - PGWALK_WRLOCK_VERIFY = 2, +struct perf_event { + struct list_head event_entry; + struct list_head sibling_list; + struct list_head active_list; + struct rb_node group_node; + u64 group_index; + struct list_head migrate_entry; + struct hlist_node hlist_entry; + struct list_head active_entry; + int nr_siblings; + int event_caps; + int group_caps; + unsigned int group_generation; + struct perf_event *group_leader; + struct pmu *pmu; + void *pmu_private; + enum perf_event_state state; + unsigned int attach_state; + local64_t count; + atomic64_t child_count; + u64 total_time_enabled; + u64 total_time_running; + u64 tstamp; + struct perf_event_attr attr; + u16 header_size; + u16 id_header_size; + u16 read_size; + struct hw_perf_event hw; + struct perf_event_context *ctx; + struct perf_event_pmu_context *pmu_ctx; + atomic_long_t refcount; + atomic64_t child_total_time_enabled; + atomic64_t child_total_time_running; + struct mutex child_mutex; + struct list_head child_list; + struct perf_event *parent; + int oncpu; + int cpu; + struct list_head owner_entry; + struct task_struct *owner; + struct mutex mmap_mutex; + atomic_t mmap_count; + struct perf_buffer *rb; + struct list_head rb_entry; + unsigned long rcu_batches; + int rcu_pending; + wait_queue_head_t waitq; + struct fasync_struct *fasync; + unsigned int pending_wakeup; + unsigned int pending_kill; + unsigned int pending_disable; + unsigned int pending_sigtrap; + unsigned long pending_addr; + struct irq_work pending_irq; + struct callback_head pending_task; + unsigned int pending_work; + atomic_t event_limit; + struct perf_addr_filters_head addr_filters; + struct perf_addr_filter_range *addr_filter_ranges; + unsigned long addr_filters_gen; + struct perf_event *aux_event; + void (*destroy)(struct perf_event *); + struct callback_head callback_head; + struct pid_namespace *ns; + u64 id; + atomic64_t lost_samples; + u64 (*clock)(); + perf_overflow_handler_t overflow_handler; + void *overflow_handler_context; + perf_overflow_handler_t orig_overflow_handler; + struct bpf_prog *prog; + u64 bpf_cookie; + struct trace_event_call *tp_event; + struct event_filter *filter; + struct ftrace_ops ftrace_ops; + struct perf_cgroup *cgrp; + void *security; + struct list_head sb_list; + __u32 orig_type; }; -struct mm_walk; - -struct mm_walk_ops { - int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); - int (*p4d_entry)(p4d_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pte_hole)(unsigned long, unsigned long, int, struct mm_walk *); - int (*hugetlb_entry)(pte_t *, unsigned long, unsigned long, unsigned long, struct mm_walk *); - int (*test_walk)(unsigned long, unsigned long, struct mm_walk *); - int (*pre_vma)(unsigned long, unsigned long, struct mm_walk *); - void (*post_vma)(struct mm_walk *); - enum page_walk_lock walk_lock; -}; +struct perf_cpu_pmu_context; -enum page_walk_action { - ACTION_SUBTREE = 0, - ACTION_CONTINUE = 1, - ACTION_AGAIN = 2, -}; +struct perf_output_handle; -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 pmu { + struct list_head entry; + struct module *module; + struct device *dev; + struct device *parent; + const struct attribute_group **attr_groups; + const struct attribute_group **attr_update; + const char *name; + int type; + int capabilities; + int __attribute__((btf_type_tag("percpu"))) *pmu_disable_count; + struct perf_cpu_pmu_context __attribute__((btf_type_tag("percpu"))) *cpu_pmu_context; + atomic_t exclusive_cnt; + int task_ctx_nr; + int hrtimer_interval_ms; + unsigned int nr_addr_filters; + void (*pmu_enable)(struct pmu *); + void (*pmu_disable)(struct pmu *); + int (*event_init)(struct perf_event *); + void (*event_mapped)(struct perf_event *, struct mm_struct *); + void (*event_unmapped)(struct perf_event *, struct mm_struct *); + int (*add)(struct perf_event *, int); + void (*del)(struct perf_event *, int); + void (*start)(struct perf_event *, int); + void (*stop)(struct perf_event *, int); + void (*read)(struct perf_event *); + void (*start_txn)(struct pmu *, unsigned int); + int (*commit_txn)(struct pmu *); + void (*cancel_txn)(struct pmu *); + int (*event_idx)(struct perf_event *); + void (*sched_task)(struct perf_event_pmu_context *, bool); + struct kmem_cache *task_ctx_cache; + void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *); + void * (*setup_aux)(struct perf_event *, void **, int, bool); + void (*free_aux)(void *); + long (*snapshot_aux)(struct perf_event *, struct perf_output_handle *, unsigned long); + int (*addr_filters_validate)(struct list_head *); + void (*addr_filters_sync)(struct perf_event *); + int (*aux_output_match)(struct perf_event *); + bool (*filter)(struct pmu *, int); + int (*check_period)(struct perf_event *, u64); }; -struct pageattr_masks { - pgprot_t set_mask; - pgprot_t clear_mask; +struct perf_event_pmu_context { + struct pmu *pmu; + struct perf_event_context *ctx; + struct list_head pmu_ctx_entry; + struct list_head pinned_active; + struct list_head flexible_active; + unsigned int embedded: 1; + unsigned int nr_events; + unsigned int nr_cgroups; + atomic_t refcount; + struct callback_head callback_head; + void *task_ctx_data; + int rotate_necessary; }; -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, - __NR_PAGEFLAGS = 22, - 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_isolated = 18, - PG_reported = 2, +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; }; -typedef void (*smp_call_func_t)(void *); - -typedef bool (*smp_cond_func_t)(int, void *); - -typedef int (*initcall_t)(); - -enum napot_cont_order { - NAPOT_CONT64KB_ORDER = 4, - NAPOT_ORDER_MAX = 5, +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; }; -enum dma_data_direction { - DMA_BIDIRECTIONAL = 0, - DMA_TO_DEVICE = 1, - DMA_FROM_DEVICE = 2, - DMA_NONE = 3, +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 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 perf_addr_filter_range { + unsigned long start; + unsigned long size; }; -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]; +union perf_sample_weight { + __u64 full; + struct { + __u32 var1_dw; + __u16 var2_w; + __u16 var3_w; + }; }; -struct napi_struct; - -struct page_pool_params { - unsigned int flags; - unsigned int order; - unsigned int pool_size; - int nid; - struct device *dev; - struct napi_struct *napi; - enum dma_data_direction dma_dir; - unsigned int max_len; - unsigned int offset; - void (*init_callback)(struct page *, void *); - void *init_arg; +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 page_pool_alloc_stats { - u64 fast; - u64 slow; - u64 slow_high_order; - u64 empty; - u64 refill; - u64 waive; -}; +struct perf_raw_record; -struct pp_alloc_cache { - u32 count; - struct page *cache[128]; -}; +struct perf_branch_stack; -struct ptr_ring { - int producer; - spinlock_t producer_lock; - long: 64; - long: 64; - long: 64; - long: 64; - int consumer_head; - int consumer_tail; - spinlock_t consumer_lock; - long: 64; - long: 64; - long: 64; - long: 64; - int size; - int batch; - void **queue; - long: 64; +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; @@ -8093,3011 +7625,3172 @@ struct ptr_ring { long: 64; }; -struct page_pool_recycle_stats; +typedef unsigned long (*perf_copy_f)(void *, const void *, unsigned long, unsigned long); -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; - 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 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 page_pool_recycle_stats { - u64 cached; - u64 cache_full; - u64 ring; - u64 ring_full; - u64 released_refcnt; +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 fs_struct { - int users; - spinlock_t lock; - seqcount_spinlock_t seq; - int umask; - int in_exec; - struct path root; - struct path pwd; +struct perf_branch_stack { + __u64 nr; + __u64 hw_idx; + struct perf_branch_entry entries[0]; }; -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 perf_cgroup_info; + +struct perf_cgroup { + struct cgroup_subsys_state css; + struct perf_cgroup_info __attribute__((btf_type_tag("percpu"))) *info; }; -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; - 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; +struct perf_cgroup_info { + u64 time; + u64 timestamp; + u64 timeoffset; + int active; }; -struct new_utsname { - char sysname[65]; - char nodename[65]; - char release[65]; - char version[65]; - char machine[65]; - char domainname[65]; +struct trace_eval_map { + const char *system; + const char *eval_string; + unsigned long eval_value; }; -struct uts_namespace { - struct new_utsname name; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct ns_common ns; +struct ksignal { + struct k_sigaction ka; + kernel_siginfo_t info; + int sig; }; -struct ref_tracker_dir {}; +typedef __u64 __be64; -struct raw_notifier_head { - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +typedef __be64 fdt64_t; + +struct word_at_a_time { + const unsigned long one_bits; + const unsigned long high_bits; }; -struct prot_inuse; +typedef u16 uint16_t; -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; +enum { + ASSUME_PERFECT = 255, + ASSUME_VALID_DTB = 1, + ASSUME_VALID_INPUT = 2, + ASSUME_LATEST = 4, + ASSUME_NO_ROLLBACK = 8, + ASSUME_LIBFDT_ORDER = 16, + ASSUME_LIBFDT_FLAWLESS = 32, }; -struct ipstats_mib; +typedef __u32 __be32; -struct tcp_mib; +typedef __be32 fdt32_t; -struct linux_mib; +struct fdt_header { + fdt32_t magic; + fdt32_t totalsize; + fdt32_t off_dt_struct; + fdt32_t off_dt_strings; + fdt32_t off_mem_rsvmap; + fdt32_t version; + fdt32_t last_comp_version; + fdt32_t boot_cpuid_phys; + fdt32_t size_dt_strings; + fdt32_t size_dt_struct; +}; -struct udp_mib; +typedef u8 uint8_t; -struct icmp_mib; +struct fdt_reserve_entry { + fdt64_t address; + fdt64_t size; +}; -struct icmpmsg_mib; +struct fdt_property { + fdt32_t tag; + fdt32_t len; + fdt32_t nameoff; + char data[0]; +}; -struct icmpv6_mib; +struct fdt_node_header { + fdt32_t tag; + char name[0]; +}; -struct icmpv6msg_mib; +struct obs_kernel_param { + const char *str; + int (*setup_func)(char *); + int early; +}; -struct netns_mib { - struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ip_statistics; - struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ipv6_statistics; - struct tcp_mib __attribute__((btf_type_tag("percpu"))) *tcp_statistics; - struct linux_mib __attribute__((btf_type_tag("percpu"))) *net_statistics; - struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_statistics; - struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_stats_in6; - struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_statistics; - struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_stats_in6; - struct icmp_mib __attribute__((btf_type_tag("percpu"))) *icmp_statistics; - struct icmpmsg_mib *icmpmsg_statistics; - struct icmpv6_mib __attribute__((btf_type_tag("percpu"))) *icmpv6_statistics; - struct icmpv6msg_mib *icmpv6msg_statistics; - struct proc_dir_entry *proc_net_devsnmp6; +struct 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 netns_packet { - struct mutex sklist_lock; - struct hlist_head sklist; +struct acpi_generic_address { + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_width; + u64 address; +} __attribute__((packed)); + +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)); + +typedef u32 acpi_status; + +typedef char *acpi_string; + +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; }; -struct unix_table { - spinlock_t *locks; - struct hlist_head *buckets; +typedef unsigned short pci_bus_flags_t; + +struct pci_dev; + +struct pci_ops; + +struct pci_bus { + struct list_head node; + struct pci_bus *parent; + struct list_head children; + struct list_head devices; + struct pci_dev *self; + struct list_head slots; + struct resource *resource[4]; + struct list_head resources; + struct resource busn_res; + struct pci_ops *ops; + void *sysdata; + struct proc_dir_entry *procdir; + unsigned char number; + unsigned char primary; + unsigned char max_bus_speed; + unsigned char cur_bus_speed; + int domain_nr; + 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 netns_unix { - struct unix_table table; - int sysctl_max_dgram_qlen; - struct ctl_table_header *ctl; +typedef int pci_power_t; + +typedef unsigned int pci_channel_state_t; + +typedef unsigned short pci_dev_flags_t; + +struct pci_vpd { + struct mutex lock; + unsigned int len; + u8 cap; }; -struct blocking_notifier_head { - struct rw_semaphore rwsem; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +struct pci_slot; + +struct rcec_ea; + +struct pci_driver; + +struct pcie_link_state; + +struct pci_dev { + struct list_head bus_list; + struct pci_bus *bus; + struct pci_bus *subordinate; + void *sysdata; + struct proc_dir_entry *procent; + struct pci_slot *slot; + unsigned int devfn; + unsigned short vendor; + unsigned short device; + unsigned short subsystem_vendor; + unsigned short subsystem_device; + unsigned int class; + u8 revision; + u8 hdr_type; + 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; + u8 pm_cap; + unsigned int imm_ready: 1; + unsigned int pme_support: 5; + unsigned int pme_poll: 1; + unsigned int d1_support: 1; + unsigned int d2_support: 1; + unsigned int no_d1d2: 1; + unsigned int no_d3cold: 1; + unsigned int bridge_d3: 1; + unsigned int d3cold_allowed: 1; + unsigned int mmio_always_on: 1; + unsigned int wakeup_prepared: 1; + unsigned int skip_bus_pm: 1; + unsigned int ignore_hotplug: 1; + unsigned int hotplug_user_indicators: 1; + unsigned int clear_retrain_link: 1; + unsigned int d3hot_delay; + unsigned int d3cold_delay; + struct pcie_link_state *link_state; + u16 l1ss; + unsigned int ltr_path: 1; + unsigned int pasid_no_tlp: 1; + unsigned int eetlp_prefix_path: 1; + pci_channel_state_t error_state; + struct device dev; + int cfg_size; + unsigned int irq; + struct resource resource[11]; + struct resource driver_exclusive_resource; + bool match_driver; + unsigned int transparent: 1; + unsigned int io_window: 1; + unsigned int pref_window: 1; + unsigned int pref_64_window: 1; + unsigned int multifunction: 1; + unsigned int is_busmaster: 1; + unsigned int no_msi: 1; + unsigned int no_64bit_msi: 1; + unsigned int block_cfg_access: 1; + unsigned int broken_parity_status: 1; + unsigned int irq_reroute_variant: 2; + unsigned int msi_enabled: 1; + unsigned int msix_enabled: 1; + unsigned int ari_enabled: 1; + unsigned int ats_enabled: 1; + unsigned int pasid_enabled: 1; + unsigned int pri_enabled: 1; + unsigned int is_managed: 1; + unsigned int is_msi_managed: 1; + unsigned int needs_freset: 1; + unsigned int state_saved: 1; + unsigned int is_physfn: 1; + unsigned int is_virtfn: 1; + unsigned int is_hotplug_bridge: 1; + unsigned int shpc_managed: 1; + unsigned int is_thunderbolt: 1; + unsigned int untrusted: 1; + unsigned int external_facing: 1; + unsigned int broken_intx_masking: 1; + unsigned int io_window_1k: 1; + unsigned int irq_managed: 1; + unsigned int non_compliant_bars: 1; + unsigned int is_probed: 1; + unsigned int link_active_reporting: 1; + unsigned int no_vf_scan: 1; + unsigned int no_command_memory: 1; + unsigned int rom_bar_overlap: 1; + unsigned int rom_attr_enabled: 1; + pci_dev_flags_t dev_flags; + atomic_t enable_cnt; + spinlock_t pcie_cap_lock; + u32 saved_config_space[16]; + struct hlist_head saved_cap_space; + struct bin_attribute *res_attr[11]; + struct bin_attribute *res_attr_wc[11]; + void *msix_base; + raw_spinlock_t msi_lock; + struct pci_vpd vpd; + u16 acs_cap; + phys_addr_t rom; + size_t romlen; + const char *driver_override; + unsigned long priv_flags; + u8 reset_methods[7]; }; -struct 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 hotplug_slot; + +struct pci_slot { + struct pci_bus *bus; + struct list_head list; + struct hotplug_slot *hotplug; + unsigned char number; + struct kobject kobj; }; -struct inet_hashinfo; +struct pci_dynids { + spinlock_t lock; + struct list_head list; +}; -struct inet_timewait_death_row { - refcount_t tw_refcount; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct inet_hashinfo *hashinfo; - int sysctl_max_tw_buckets; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct 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 local_ports { - seqlock_t lock; - int range[2]; - bool warned; +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; }; -struct ping_group_range { - seqlock_t lock; - kgid_t range[2]; +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 *); }; -typedef struct { - u64 key[2]; -} siphash_key_t; +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); +}; -struct udp_table; +typedef u64 acpi_physical_address; -struct ipv4_devconf; +typedef u64 acpi_size; -struct ip_ra_chain; +struct acpi_device; -struct inet_peer_base; +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 fqdir; +typedef void *acpi_handle; -struct tcp_congestion_ops; +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 tcp_fastopen_context; +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; +}; -struct fib_notifier_ops; +typedef char acpi_bus_id[8]; -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; - bool fib_has_custom_local_routes; - bool fib_offload_disabled; - u8 sysctl_tcp_shrink_window; - struct hlist_head *fib_table_hash; - struct sock *fibnl; - struct sock *mc_autojoin_sk; - struct inet_peer_base *peers; - struct fqdir *fqdir; - u8 sysctl_icmp_echo_ignore_all; - u8 sysctl_icmp_echo_enable_probe; - u8 sysctl_icmp_echo_ignore_broadcasts; - u8 sysctl_icmp_ignore_bogus_error_responses; - u8 sysctl_icmp_errors_use_inbound_ifaddr; - int sysctl_icmp_ratelimit; - int sysctl_icmp_ratemask; - u32 ip_rt_min_pmtu; - int ip_rt_mtu_expires; - int ip_rt_min_advmss; - struct local_ports ip_local_ports; - u8 sysctl_tcp_ecn; - u8 sysctl_tcp_ecn_fallback; - u8 sysctl_ip_default_ttl; - u8 sysctl_ip_no_pmtu_disc; - u8 sysctl_ip_fwd_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_raw_l3mdev_accept; - 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_l3mdev_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_tcp_syn_linear_timeouts; - u8 sysctl_udp_l3mdev_accept; - u8 sysctl_igmp_llm_reports; - int sysctl_igmp_max_memberships; - int sysctl_igmp_max_msf; - int sysctl_igmp_qrv; - struct ping_group_range ping_group_range; - atomic_t dev_addr_genid; - unsigned int sysctl_udp_child_hash_entries; - unsigned long *sysctl_local_reserved_ports; - int sysctl_ip_prot_sock; - struct fib_notifier_ops *notifier_ops; - unsigned int fib_seq; - struct fib_notifier_ops *ipmr_notifier_ops; - unsigned int ipmr_seq; - atomic_t rt_genid; - siphash_key_t ip_id_key; - long: 64; +struct acpi_pnp_type { + u32 hardware_id: 1; + u32 bus_address: 1; + u32 platform_id: 1; + u32 backlight: 1; + u32 reserved: 28; }; -struct dst_entry; +typedef u64 acpi_bus_address; -struct net_device; +typedef char acpi_device_name[40]; -struct sk_buff; +typedef char acpi_device_class[20]; -struct neighbour; +union acpi_object; -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; +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 netns_sysctl_ipv6 { - struct ctl_table_header *hdr; - struct ctl_table_header *route_hdr; - struct ctl_table_header *icmp_hdr; - struct ctl_table_header *frags_hdr; - struct ctl_table_header *xfrm6_hdr; - int flush_delay; - int ip6_rt_max_size; - int ip6_rt_gc_min_interval; - int ip6_rt_gc_timeout; - int ip6_rt_gc_interval; - int ip6_rt_gc_elasticity; - int ip6_rt_mtu_expires; - int ip6_rt_min_advmss; - u32 multipath_hash_fields; - u8 multipath_hash_policy; - u8 bindv6only; - u8 flowlabel_consistency; - u8 auto_flowlabels; - int icmpv6_time; - u8 icmpv6_echo_ignore_all; - u8 icmpv6_echo_ignore_multicast; - u8 icmpv6_echo_ignore_anycast; - unsigned long icmpv6_ratemask[4]; - unsigned long *icmpv6_ratemask_ptr; - u8 anycast_src_echo_reply; - u8 ip_nonlocal_bind; - u8 fwmark_reflect; - u8 flowlabel_state_ranges; - int idgen_retries; - int idgen_delay; - int flowlabel_reflect; - int max_dst_opts_cnt; - int max_hbh_opts_cnt; - int max_dst_opts_len; - int max_hbh_opts_len; - int seg6_flowlabel; - u32 ioam6_id; - u64 ioam6_id_wide; - u8 skip_notify_on_dev_down; - u8 fib_notify_on_flag_change; - u8 icmpv6_error_anycast_as_unicast; +struct 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 ipv6_devconf; +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 fib6_info; +struct acpi_device_power { + int state; + struct acpi_device_power_flags flags; + struct acpi_device_power_state states[5]; + u8 state_for_enumeration; +}; -struct rt6_info; +struct acpi_device_wakeup_flags { + u8 valid: 1; + u8 notifier_present: 1; +}; -struct rt6_statistics; +struct acpi_device_wakeup_context { + void (*func)(struct acpi_device_wakeup_context *); + struct device *dev; +}; -struct fib6_table; +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 fib_rules_ops; +struct acpi_device_perf_flags { + u8 reserved; +}; -struct seg6_pernet_data; +struct acpi_device_perf_state; -struct ioam6_pernet_data; +struct acpi_device_perf { + int state; + struct acpi_device_perf_flags flags; + int state_count; + struct acpi_device_perf_state *states; +}; -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; - bool fib6_has_custom_rules; - unsigned int fib6_rules_require_fldissect; - unsigned int fib6_routes_require_src; - struct rt6_info *ip6_prohibit_entry; - struct rt6_info *ip6_blk_hole_entry; - struct fib6_table *fib6_local_tbl; - struct fib_rules_ops *fib6_rules_ops; - struct sock *ndisc_sk; - struct sock *tcp_sk; - struct sock *igmp_sk; - struct sock *mc_autojoin_sk; - struct hlist_head *inet6_addr_lst; - spinlock_t addrconf_hash_lock; - struct delayed_work addr_chk_work; - atomic_t dev_addr_genid; - atomic_t fib6_sernum; - struct seg6_pernet_data *seg6_data; - struct fib_notifier_ops *notifier_ops; - struct fib_notifier_ops *ip6mr_notifier_ops; - unsigned int ipmr_seq; - struct { - struct hlist_head head; - spinlock_t lock; - u32 seq; - } ip6addrlbl_table; - struct ioam6_pernet_data *ioam6_data; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct acpi_device_dir { + struct proc_dir_entry *entry; }; -struct nf_logger; +struct acpi_device_data { + const union acpi_object *pointer; + struct list_head properties; + const union acpi_object *of_compatible; + struct list_head subnodes; +}; -struct nf_hook_entries; +struct acpi_scan_handler; -struct netns_nf { - struct proc_dir_entry *proc_netfilter; - const struct nf_logger __attribute__((btf_type_tag("rcu"))) *nf_loggers[11]; - struct ctl_table_header *nf_log_dir_header; - struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *hooks_ipv4[5]; - struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *hooks_ipv6[5]; - struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *hooks_bridge[5]; - unsigned int defrag_ipv4_users; - unsigned int defrag_ipv6_users; -}; +struct acpi_hotplug_context; -struct nf_ct_event_notifier; +struct acpi_gpio_mapping; -struct nf_generic_net { - unsigned int timeout; +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 *); }; -struct nf_tcp_net { - unsigned int timeouts[14]; - u8 tcp_loose; - u8 tcp_be_liberal; - u8 tcp_max_retrans; - u8 tcp_ignore_invalid_rst; -}; +typedef u32 acpi_object_type; -struct nf_udp_net { - unsigned int timeouts[2]; +typedef u64 acpi_io_address; + +union acpi_object { + acpi_object_type type; + struct { + acpi_object_type type; + u64 value; + } integer; + struct { + acpi_object_type type; + u32 length; + char *pointer; + } string; + struct { + acpi_object_type type; + u32 length; + u8 *pointer; + } buffer; + struct { + acpi_object_type type; + u32 count; + union acpi_object *elements; + } package; + struct { + acpi_object_type type; + acpi_object_type actual_type; + acpi_handle handle; + } reference; + struct { + acpi_object_type type; + u32 proc_id; + acpi_io_address pblk_address; + u32 pblk_length; + } processor; + struct { + acpi_object_type type; + u32 system_level; + u32 resource_order; + } power_resource; }; -struct nf_icmp_net { - unsigned int timeout; +struct acpi_device_perf_state { + struct { + u8 valid: 1; + u8 reserved: 7; + } flags; + u8 power; + u8 performance; + int latency; }; -struct nf_dccp_net { - u8 dccp_loose; - unsigned int dccp_timeout[10]; +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 nf_sctp_net { - unsigned int timeouts[10]; +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 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 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 ip_conntrack_stat; +struct acpi_gpio_params; -struct netns_ct { - u8 sysctl_log_invalid; - u8 sysctl_events; - u8 sysctl_acct; - u8 sysctl_tstamp; - u8 sysctl_checksum; - struct ip_conntrack_stat __attribute__((btf_type_tag("percpu"))) *stat; - struct nf_ct_event_notifier __attribute__((btf_type_tag("rcu"))) *nf_conntrack_event_cb; - struct nf_ip_net nf_ct_proto; +struct acpi_gpio_mapping { + const char *name; + const struct acpi_gpio_params *data; + unsigned int size; + unsigned int quirks; }; -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 acpi_gpio_params { + unsigned int crs_entry_index; + unsigned int line_index; + bool active_low; }; -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 kernel_mapping { + unsigned long page_offset; + unsigned long virt_addr; + unsigned long virt_offset; + uintptr_t phys_addr; + uintptr_t size; + unsigned long va_pa_offset; + unsigned long va_kernel_pa_offset; + unsigned long va_kernel_xip_pa_offset; }; -struct xfrm_policy_hthresh { - struct work_struct work; - seqlock_t lock; - u8 lbits4; - u8 rbits4; - u8 lbits6; - u8 rbits6; +typedef struct { + unsigned long p4d; +} p4d_t; + +struct pt_alloc_ops { + pte_t * (*get_pte_virt)(phys_addr_t); + phys_addr_t (*alloc_pte)(uintptr_t); + pmd_t * (*get_pmd_virt)(phys_addr_t); + phys_addr_t (*alloc_pmd)(uintptr_t); + pud_t * (*get_pud_virt)(phys_addr_t); + phys_addr_t (*alloc_pud)(uintptr_t); + p4d_t * (*get_p4d_virt)(phys_addr_t); + phys_addr_t (*alloc_p4d)(uintptr_t); }; -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; - 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; +enum memblock_flags { + MEMBLOCK_NONE = 0, + MEMBLOCK_HOTPLUG = 1, + MEMBLOCK_MIRROR = 2, + MEMBLOCK_NOMAP = 4, + MEMBLOCK_DRIVER_MANAGED = 8, + MEMBLOCK_RSRV_NOINIT = 16, }; -struct netns_ipvs; - -struct netns_xdp { - struct mutex lock; - struct hlist_head list; +enum node_states { + N_POSSIBLE = 0, + N_ONLINE = 1, + N_NORMAL_MEMORY = 2, + N_HIGH_MEMORY = 2, + N_MEMORY = 3, + N_CPU = 4, + N_GENERIC_INITIATOR = 5, + NR_NODE_STATES = 6, }; -struct 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; - struct netns_xfrm xfrm; - u64 net_cookie; - struct netns_ipvs *ipvs; - struct netns_xdp xdp; - struct sock *diag_nlsk; - long: 64; - long: 64; - long: 64; - long: 64; +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 prot_inuse { - int all; - int val[64]; +enum lockdep_wait_type { + LD_WAIT_INV = 0, + LD_WAIT_FREE = 1, + LD_WAIT_SPIN = 2, + LD_WAIT_CONFIG = 2, + LD_WAIT_SLEEP = 3, + LD_WAIT_MAX = 4, }; -struct ipstats_mib { - u64 mibs[37]; - struct u64_stats_sync syncp; +struct ptdesc { + unsigned long __page_flags; + union { + struct callback_head pt_rcu_head; + struct list_head pt_list; + struct { + unsigned long _pt_pad_1; + pgtable_t pmd_huge_pte; + }; + }; + unsigned long __page_mapping; + union { + struct mm_struct *pt_mm; + atomic_t pt_frag_refcount; + }; + union { + unsigned long _pt_pad_2; + spinlock_t *ptl; + }; + unsigned int __page_type; + atomic_t _refcount; + unsigned long pt_memcg_data; }; -struct tcp_mib { - unsigned long mibs[16]; -}; +struct io_tlb_area; -struct linux_mib { - unsigned long mibs[127]; -}; +struct io_tlb_slot; -struct udp_mib { - unsigned long mibs[10]; +struct io_tlb_pool { + phys_addr_t start; + phys_addr_t end; + void *vaddr; + unsigned long nslabs; + bool late_alloc; + unsigned int nareas; + unsigned int area_nslabs; + struct io_tlb_area *areas; + struct io_tlb_slot *slots; }; -struct icmp_mib { - unsigned long mibs[30]; +struct io_tlb_mem { + struct io_tlb_pool defpool; + unsigned long nslabs; + struct dentry *debugfs; + bool force_bounce; + bool for_alloc; + atomic_long_t total_used; + atomic_long_t used_hiwater; }; -struct icmpmsg_mib { - atomic_long_t mibs[512]; +struct sock_filter { + __u16 code; + __u8 jt; + __u8 jf; + __u32 k; }; -struct icmpv6_mib { - unsigned long mibs[7]; -}; +typedef short __s16; -struct icmpv6msg_mib { - atomic_long_t mibs[512]; +struct bpf_insn { + __u8 code; + __u8 dst_reg: 4; + __u8 src_reg: 4; + __s16 off; + __s32 imm; }; -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; +enum bpf_prog_type { + BPF_PROG_TYPE_UNSPEC = 0, + BPF_PROG_TYPE_SOCKET_FILTER = 1, + BPF_PROG_TYPE_KPROBE = 2, + BPF_PROG_TYPE_SCHED_CLS = 3, + BPF_PROG_TYPE_SCHED_ACT = 4, + BPF_PROG_TYPE_TRACEPOINT = 5, + BPF_PROG_TYPE_XDP = 6, + BPF_PROG_TYPE_PERF_EVENT = 7, + BPF_PROG_TYPE_CGROUP_SKB = 8, + BPF_PROG_TYPE_CGROUP_SOCK = 9, + BPF_PROG_TYPE_LWT_IN = 10, + BPF_PROG_TYPE_LWT_OUT = 11, + BPF_PROG_TYPE_LWT_XMIT = 12, + BPF_PROG_TYPE_SOCK_OPS = 13, + BPF_PROG_TYPE_SK_SKB = 14, + BPF_PROG_TYPE_CGROUP_DEVICE = 15, + BPF_PROG_TYPE_SK_MSG = 16, + BPF_PROG_TYPE_RAW_TRACEPOINT = 17, + BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18, + BPF_PROG_TYPE_LWT_SEG6LOCAL = 19, + BPF_PROG_TYPE_LIRC_MODE2 = 20, + BPF_PROG_TYPE_SK_REUSEPORT = 21, + BPF_PROG_TYPE_FLOW_DISSECTOR = 22, + BPF_PROG_TYPE_CGROUP_SYSCTL = 23, + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24, + BPF_PROG_TYPE_CGROUP_SOCKOPT = 25, + BPF_PROG_TYPE_TRACING = 26, + BPF_PROG_TYPE_STRUCT_OPS = 27, + BPF_PROG_TYPE_EXT = 28, + BPF_PROG_TYPE_LSM = 29, + BPF_PROG_TYPE_SK_LOOKUP = 30, + BPF_PROG_TYPE_SYSCALL = 31, + BPF_PROG_TYPE_NETFILTER = 32, }; -typedef u32 (*rht_hashfn_t)(const void *, u32, u32); +enum bpf_attach_type { + BPF_CGROUP_INET_INGRESS = 0, + BPF_CGROUP_INET_EGRESS = 1, + BPF_CGROUP_INET_SOCK_CREATE = 2, + BPF_CGROUP_SOCK_OPS = 3, + BPF_SK_SKB_STREAM_PARSER = 4, + BPF_SK_SKB_STREAM_VERDICT = 5, + BPF_CGROUP_DEVICE = 6, + BPF_SK_MSG_VERDICT = 7, + BPF_CGROUP_INET4_BIND = 8, + BPF_CGROUP_INET6_BIND = 9, + BPF_CGROUP_INET4_CONNECT = 10, + BPF_CGROUP_INET6_CONNECT = 11, + BPF_CGROUP_INET4_POST_BIND = 12, + BPF_CGROUP_INET6_POST_BIND = 13, + BPF_CGROUP_UDP4_SENDMSG = 14, + BPF_CGROUP_UDP6_SENDMSG = 15, + BPF_LIRC_MODE2 = 16, + BPF_FLOW_DISSECTOR = 17, + BPF_CGROUP_SYSCTL = 18, + BPF_CGROUP_UDP4_RECVMSG = 19, + BPF_CGROUP_UDP6_RECVMSG = 20, + BPF_CGROUP_GETSOCKOPT = 21, + BPF_CGROUP_SETSOCKOPT = 22, + BPF_TRACE_RAW_TP = 23, + BPF_TRACE_FENTRY = 24, + BPF_TRACE_FEXIT = 25, + BPF_MODIFY_RETURN = 26, + BPF_LSM_MAC = 27, + BPF_TRACE_ITER = 28, + BPF_CGROUP_INET4_GETPEERNAME = 29, + BPF_CGROUP_INET6_GETPEERNAME = 30, + BPF_CGROUP_INET4_GETSOCKNAME = 31, + BPF_CGROUP_INET6_GETSOCKNAME = 32, + BPF_XDP_DEVMAP = 33, + BPF_CGROUP_INET_SOCK_RELEASE = 34, + BPF_XDP_CPUMAP = 35, + BPF_SK_LOOKUP = 36, + BPF_XDP = 37, + BPF_SK_SKB_VERDICT = 38, + BPF_SK_REUSEPORT_SELECT = 39, + BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40, + BPF_PERF_EVENT = 41, + BPF_TRACE_KPROBE_MULTI = 42, + BPF_LSM_CGROUP = 43, + BPF_STRUCT_OPS = 44, + BPF_NETFILTER = 45, + BPF_TCX_INGRESS = 46, + BPF_TCX_EGRESS = 47, + BPF_TRACE_UPROBE_MULTI = 48, + BPF_CGROUP_UNIX_CONNECT = 49, + BPF_CGROUP_UNIX_SENDMSG = 50, + BPF_CGROUP_UNIX_RECVMSG = 51, + BPF_CGROUP_UNIX_GETPEERNAME = 52, + BPF_CGROUP_UNIX_GETSOCKNAME = 53, + BPF_NETKIT_PRIMARY = 54, + BPF_NETKIT_PEER = 55, + __MAX_BPF_ATTACH_TYPE = 56, +}; -typedef u32 (*rht_obj_hashfn_t)(const void *, u32, u32); +struct bpf_prog_stats; -struct rhashtable_compare_arg; +struct bpf_prog_aux; -typedef int (*rht_obj_cmpfn_t)(struct rhashtable_compare_arg *, const void *); +struct sock_fprog_kern; -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 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]; + }; + }; }; -struct bucket_table; +typedef struct { + local64_t v; +} u64_stats_t; -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 bpf_prog_stats { + u64_stats_t cnt; + u64_stats_t nsecs; + u64_stats_t misses; + struct u64_stats_sync syncp; + long: 64; }; -struct inet_frags; - -struct fqdir { - long high_thresh; - long low_thresh; - int timeout; - int max_dist; - struct inet_frags *f; - struct net *net; - bool dead; - long: 64; - long: 64; - struct rhashtable rhashtable; - atomic_long_t mem; - struct work_struct destroy_work; - struct llist_node free_list; - long: 64; - 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 inet_frag_queue; +struct btf; -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 bpf_ctx_arg_aux; -typedef __u16 __be16; +struct bpf_trampoline; -struct frag_v4_compare_key { - __be32 saddr; - __be32 daddr; - u32 user; - u32 vif; - __be16 id; - u16 protocol; -}; +struct btf_type; -struct in6_addr { - union { - __u8 u6_addr8[16]; - __be16 u6_addr16[8]; - __be32 u6_addr32[4]; - } in6_u; -}; +struct bpf_jit_poke_descriptor; -struct frag_v6_compare_key { - struct in6_addr saddr; - struct in6_addr daddr; - u32 user; - __be32 id; - u32 iif; -}; +struct bpf_kfunc_desc_tab; -struct rhash_head { - struct rhash_head __attribute__((btf_type_tag("rcu"))) *next; -}; +struct bpf_kfunc_btf_tab; -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 bpf_prog_ops; -typedef __u32 __wsum; +struct bpf_map; -typedef unsigned int sk_buff_data_t; +struct btf_mod_pair; -struct skb_ext; +struct bpf_prog_offload; -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; +struct bpf_func_info; + +struct bpf_func_info_aux; + +struct bpf_line_info; + +struct bpf_prog_aux { + atomic64_t refcnt; + u32 used_map_cnt; + u32 used_btf_cnt; + u32 max_ctx_offset; + u32 max_pkt_offset; + u32 max_tp_access; + u32 stack_depth; + u32 id; + u32 func_cnt; + u32 real_func_cnt; + u32 func_idx; + u32 attach_btf_id; + u32 ctx_arg_info_size; + u32 max_rdonly_access; + u32 max_rdwr_access; + struct btf *attach_btf; + const struct bpf_ctx_arg_aux *ctx_arg_info; + struct mutex dst_mutex; + struct bpf_prog *dst_prog; + struct bpf_trampoline *dst_trampoline; + enum bpf_prog_type saved_dst_prog_type; + enum bpf_attach_type saved_dst_attach_type; + bool verifier_zext; + bool dev_bound; + bool offload_requested; + bool attach_btf_trace; + bool func_proto_unreliable; + bool sleepable; + bool tail_call_reachable; + bool xdp_has_frags; + bool exception_cb; + bool exception_boundary; + 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]; + unsigned int (*bpf_exception_cb)(u64, u64, u64); + 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; + struct module *mod; + u32 num_exentries; + struct exception_table_entry *extable; union { - struct { - __u8 __pkt_type_offset[0]; - __u8 pkt_type: 3; - __u8 ignore_df: 1; - __u8 dst_pending_confirm: 1; - __u8 ip_summed: 2; - __u8 ooo_okay: 1; - __u8 __mono_tc_offset[0]; - __u8 mono_delivery_time: 1; - __u8 remcsum_offload: 1; - __u8 csum_complete_sw: 1; - __u8 csum_level: 2; - __u8 inner_protocol_type: 1; - __u8 l4_hash: 1; - __u8 sw_hash: 1; - __u8 wifi_acked_valid: 1; - __u8 wifi_acked: 1; - __u8 no_fcs: 1; - __u8 encapsulation: 1; - __u8 encap_hdr_csum: 1; - __u8 csum_valid: 1; - __u8 ndisc_nodetype: 2; - __u8 ipvs_property: 1; - __u8 redirected: 1; - __u8 slow_gro: 1; - __u16 tc_index; - u16 alloc_cpu; - union { - __wsum csum; - struct { - __u16 csum_start; - __u16 csum_offset; - }; - }; - __u32 priority; - int skb_iif; - __u32 hash; - union { - u32 vlan_all; - struct { - __be16 vlan_proto; - __u16 vlan_tci; - }; - }; - union { - unsigned int napi_id; - unsigned int sender_cpu; - }; - __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 dst_pending_confirm: 1; - __u8 ip_summed: 2; - __u8 ooo_okay: 1; - __u8 __mono_tc_offset[0]; - __u8 mono_delivery_time: 1; - __u8 remcsum_offload: 1; - __u8 csum_complete_sw: 1; - __u8 csum_level: 2; - __u8 inner_protocol_type: 1; - __u8 l4_hash: 1; - __u8 sw_hash: 1; - __u8 wifi_acked_valid: 1; - __u8 wifi_acked: 1; - __u8 no_fcs: 1; - __u8 encapsulation: 1; - __u8 encap_hdr_csum: 1; - __u8 csum_valid: 1; - __u8 ndisc_nodetype: 2; - __u8 ipvs_property: 1; - __u8 redirected: 1; - __u8 slow_gro: 1; - __u16 tc_index; - u16 alloc_cpu; - union { - __wsum csum; - struct { - __u16 csum_start; - __u16 csum_offset; - }; - }; - __u32 priority; - int skb_iif; - __u32 hash; - union { - u32 vlan_all; - struct { - __be16 vlan_proto; - __u16 vlan_tci; - }; - }; - union { - unsigned int napi_id; - unsigned int sender_cpu; - }; - __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; + struct work_struct work; + struct callback_head rcu; }; - 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; - long: 0; - char data[0]; }; -struct rhashtable_compare_arg { - struct rhashtable *ht; - const void *key; +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 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]; +struct bpf_ctx_arg_aux { + u32 offset; + enum bpf_reg_type reg_type; + u32 btf_id; }; -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 btf_func_model { + u8 ret_size; + u8 ret_flags; + u8 nr_args; + u8 arg_size[12]; + u8 arg_flags[12]; }; -struct ack_sample; - -struct rate_sample; - -union tcp_cc_info; +struct bpf_tramp_image; -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; +struct bpf_trampoline { + struct hlist_node hlist; + struct ftrace_ops *fops; + struct mutex mutex; + refcount_t refcnt; u32 flags; - void (*init)(struct sock *); - void (*release)(struct sock *); - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; + u64 key; + struct { + struct btf_func_model model; + void *addr; + bool ftrace_managed; + } func; + struct bpf_prog *extension_prog; + struct hlist_head progs_hlist[3]; + int progs_cnt[3]; + struct bpf_tramp_image *cur_image; + struct module *mod; }; -struct tcp_fastopen_context { - siphash_key_t key[2]; - int num; - struct callback_head rcu; +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; + }; }; -typedef struct { - atomic_t refcnt; -} rcuref_t; +typedef int (*iommu_fault_handler_t)(struct iommu_domain *, struct device *, unsigned long, int, void *); -typedef struct {} netdevice_tracker; +struct iommu_domain_geometry { + dma_addr_t aperture_start; + dma_addr_t aperture_end; + bool force_aperture; +}; -struct xfrm_state; +struct iommu_dma_cookie; -struct uncached_list; +enum iommu_page_response_code { + IOMMU_PAGE_RESP_SUCCESS = 0, + IOMMU_PAGE_RESP_INVALID = 1, + IOMMU_PAGE_RESP_FAILURE = 2, +}; -struct lwtunnel_state; +struct iommu_dirty_ops; -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; - rcuref_t __rcuref; - int __use; - unsigned long lastuse; - struct callback_head callback_head; - short error; - short __pad; - __u32 tclassid; - netdevice_tracker dev_tracker; - struct list_head rt_uncached; - struct uncached_list *rt_uncached_list; - struct lwtunnel_state *lwtstate; -}; +struct iommu_fault; -enum nf_log_type { - NF_LOG_TYPE_LOG = 0, - NF_LOG_TYPE_ULOG = 1, - NF_LOG_TYPE_MAX = 2, +struct iommu_domain { + unsigned int type; + const struct iommu_domain_ops *ops; + const struct iommu_dirty_ops *dirty_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; + }; + }; }; -typedef u8 u_int8_t; - -struct nf_loginfo; +struct iommu_iotlb_gather; -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 iommu_domain_ops { + int (*attach_dev)(struct iommu_domain *, struct device *); + int (*set_dev_pasid)(struct iommu_domain *, struct device *, ioasid_t); + int (*map_pages)(struct iommu_domain *, unsigned long, phys_addr_t, size_t, size_t, int, gfp_t, size_t *); + size_t (*unmap_pages)(struct iommu_domain *, unsigned long, size_t, size_t, struct iommu_iotlb_gather *); + void (*flush_iotlb_all)(struct iommu_domain *); + int (*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 nf_logger { - char *name; - enum nf_log_type type; - nf_logfn *logfn; - struct module *me; +struct iommu_iotlb_gather { + unsigned long start; + unsigned long end; + size_t pgsize; + struct list_head freelist; + bool queued; }; -struct nf_hook_state; +struct iommu_dirty_bitmap; -typedef unsigned int nf_hookfn(void *, struct sk_buff *, const struct nf_hook_state *); +struct iommu_dirty_ops { + int (*set_dirty_tracking)(struct iommu_domain *, bool); + int (*read_and_clear_dirty)(struct iommu_domain *, unsigned long, size_t, unsigned long, struct iommu_dirty_bitmap *); +}; -struct nf_hook_entry { - nf_hookfn *hook; - void *priv; +struct iova_bitmap; + +struct iommu_dirty_bitmap { + struct iova_bitmap *bitmap; + struct iommu_iotlb_gather *gather; }; -struct nf_hook_entries { - u16 num_hook_entries; - struct nf_hook_entry hooks[0]; +struct iommu_fault_unrecoverable { + __u32 reason; + __u32 flags; + __u32 pasid; + __u32 perm; + __u64 addr; + __u64 fetch_addr; }; -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 iommu_fault_page_request { + __u32 flags; + __u32 pasid; + __u32 grpid; + __u32 perm; + __u64 addr; + __u64 private_data[2]; }; -struct net_generic { +struct iommu_fault { + __u32 type; + __u32 padding; union { - struct { - unsigned int len; - struct callback_head rcu; - } s; - struct { - struct {} __empty_ptr; - void *ptr[0]; - }; + struct iommu_fault_unrecoverable event; + struct iommu_fault_page_request prm; + __u8 padding2[56]; }; }; -struct ld_semaphore { - atomic_long_t count; - raw_spinlock_t wait_lock; - unsigned int wait_readers; - struct list_head read_wait; - struct list_head write_wait; +struct fs_struct { + int users; + spinlock_t lock; + seqcount_spinlock_t seq; + int umask; + int in_exec; + struct path root; + struct path pwd; }; -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 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 winsize { - unsigned short ws_row; - unsigned short ws_col; - unsigned short ws_xpixel; - unsigned short ws_ypixel; +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; + 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; }; -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; - bool 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 new_utsname { + char sysname[65]; + char nodename[65]; + char release[65]; + char version[65]; + char machine[65]; + char domainname[65]; }; -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 uts_namespace { + struct new_utsname name; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct ns_common ns; }; -struct request; +struct ref_tracker_dir {}; -struct io_comp_batch { - struct request *req_list; - bool need_ts; - void (*complete)(struct io_comp_batch *); +struct raw_notifier_head { + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -struct pipe_buffer; +struct prot_inuse; -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 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 pipe_buf_operations; +struct ipstats_mib; -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 tcp_mib; -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 *); -}; +struct linux_mib; -struct io_uring_sqe; +struct udp_mib; -struct io_uring_cmd { - struct file *file; - const struct io_uring_sqe *sqe; - union { - void (*task_work_cb)(struct io_uring_cmd *, unsigned int); - void *cookie; - }; - u32 cmd_op; - u32 flags; - u8 pdu[32]; -}; +struct icmp_mib; -typedef int __kernel_rwf_t; +struct icmpmsg_mib; -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 icmpv6_mib; -struct __kfifo { - unsigned int in; - unsigned int out; - unsigned int mask; - unsigned int esize; - void *data; -}; +struct icmpv6msg_mib; -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 netns_mib { + struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ip_statistics; + struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ipv6_statistics; + struct tcp_mib __attribute__((btf_type_tag("percpu"))) *tcp_statistics; + struct linux_mib __attribute__((btf_type_tag("percpu"))) *net_statistics; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_statistics; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_stats_in6; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_statistics; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_stats_in6; + struct icmp_mib __attribute__((btf_type_tag("percpu"))) *icmp_statistics; + struct icmpmsg_mib *icmpmsg_statistics; + struct icmpv6_mib __attribute__((btf_type_tag("percpu"))) *icmpv6_statistics; + struct icmpv6msg_mib *icmpv6msg_statistics; + struct proc_dir_entry *proc_net_devsnmp6; }; -struct 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 netns_packet { + struct mutex sklist_lock; + struct hlist_head sklist; }; -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 unix_table { + spinlock_t *locks; + struct hlist_head *buckets; }; -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 netns_unix { + struct unix_table table; + int sysctl_max_dgram_qlen; + struct ctl_table_header *ctl; }; -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 blocking_notifier_head { + struct rw_semaphore rwsem; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -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 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 tty_ldisc_ops; +struct inet_hashinfo; -struct tty_ldisc { - struct tty_ldisc_ops *ops; - struct tty_struct *tty; +struct inet_timewait_death_row { + refcount_t tw_refcount; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct inet_hashinfo *hashinfo; + int sysctl_max_tw_buckets; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct 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 local_ports { + seqlock_t lock; + int range[2]; + bool warned; }; -struct bio; - -struct bio_list { - struct bio *head; - struct bio *tail; +struct ping_group_range { + seqlock_t lock; + kgid_t range[2]; }; -typedef __u32 blk_opf_t; +typedef struct { + u64 key[2]; +} siphash_key_t; -typedef u8 blk_status_t; +struct udp_table; -struct bvec_iter { - sector_t bi_sector; - unsigned int bi_size; - unsigned int bi_idx; - unsigned int bi_bvec_done; -} __attribute__((packed)); +struct ipv4_devconf; -typedef unsigned int blk_qc_t; +struct ip_ra_chain; -typedef void bio_end_io_t(struct bio *); +struct inet_peer_base; -struct bio_set; +struct fqdir; -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; - 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 tcp_congestion_ops; -typedef void *mempool_alloc_t(gfp_t, void *); +struct tcp_fastopen_context; -typedef void mempool_free_t(void *, void *); +struct fib_notifier_ops; -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; +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; + bool fib_has_custom_local_routes; + bool fib_offload_disabled; + u8 sysctl_tcp_shrink_window; + struct hlist_head *fib_table_hash; + struct sock *fibnl; + struct sock *mc_autojoin_sk; + struct inet_peer_base *peers; + struct fqdir *fqdir; + u8 sysctl_icmp_echo_ignore_all; + u8 sysctl_icmp_echo_enable_probe; + u8 sysctl_icmp_echo_ignore_broadcasts; + u8 sysctl_icmp_ignore_bogus_error_responses; + u8 sysctl_icmp_errors_use_inbound_ifaddr; + int sysctl_icmp_ratelimit; + int sysctl_icmp_ratemask; + u32 ip_rt_min_pmtu; + int ip_rt_mtu_expires; + int ip_rt_min_advmss; + struct local_ports ip_local_ports; + u8 sysctl_tcp_ecn; + u8 sysctl_tcp_ecn_fallback; + u8 sysctl_ip_default_ttl; + u8 sysctl_ip_no_pmtu_disc; + u8 sysctl_ip_fwd_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_raw_l3mdev_accept; + 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_l3mdev_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; + u8 sysctl_tcp_backlog_ack_defer; + u8 sysctl_tcp_pingpong_thresh; + 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_tcp_syn_linear_timeouts; + u8 sysctl_udp_l3mdev_accept; + u8 sysctl_igmp_llm_reports; + int sysctl_igmp_max_memberships; + int sysctl_igmp_max_msf; + int sysctl_igmp_qrv; + struct ping_group_range ping_group_range; + atomic_t dev_addr_genid; + unsigned int sysctl_udp_child_hash_entries; + unsigned long *sysctl_local_reserved_ports; + int sysctl_ip_prot_sock; + struct fib_notifier_ops *notifier_ops; + unsigned int fib_seq; + struct fib_notifier_ops *ipmr_notifier_ops; + unsigned int ipmr_seq; + atomic_t rt_genid; + siphash_key_t ip_id_key; + long: 64; }; -typedef struct mempool_s mempool_t; +struct dst_entry; -struct bio_alloc_cache; +struct net_device; -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 sk_buff; -typedef unsigned int blk_mode_t; +struct neighbour; -struct block_device_operations; +struct dst_ops { + unsigned short family; + unsigned int gc_thresh; + void (*gc)(struct dst_ops *); + struct dst_entry * (*check)(struct dst_entry *, __u32); + unsigned int (*default_advmss)(const struct dst_entry *); + unsigned int (*mtu)(const struct dst_entry *); + u32 * (*cow_metrics)(struct dst_entry *, unsigned long); + void (*destroy)(struct dst_entry *); + void (*ifdown)(struct dst_entry *, struct net_device *); + struct dst_entry * (*negative_advice)(struct dst_entry *); + void (*link_failure)(struct sk_buff *); + void (*update_pmtu)(struct dst_entry *, struct sock *, struct sk_buff *, u32, bool); + void (*redirect)(struct dst_entry *, struct sock *, struct sk_buff *); + int (*local_out)(struct net *, struct sock *, struct sk_buff *); + struct neighbour * (*neigh_lookup)(const struct dst_entry *, struct sk_buff *, const void *); + void (*confirm_neigh)(const struct dst_entry *, const void *); + struct kmem_cache *kmem_cachep; + struct percpu_counter pcpuc_entries; + long: 64; +}; -struct timer_rand_state; +struct netns_sysctl_ipv6 { + struct ctl_table_header *hdr; + struct ctl_table_header *route_hdr; + struct ctl_table_header *icmp_hdr; + struct ctl_table_header *frags_hdr; + struct ctl_table_header *xfrm6_hdr; + int flush_delay; + int ip6_rt_max_size; + int ip6_rt_gc_min_interval; + int ip6_rt_gc_timeout; + int ip6_rt_gc_interval; + int ip6_rt_gc_elasticity; + int ip6_rt_mtu_expires; + int ip6_rt_min_advmss; + u32 multipath_hash_fields; + u8 multipath_hash_policy; + u8 bindv6only; + u8 flowlabel_consistency; + u8 auto_flowlabels; + int icmpv6_time; + u8 icmpv6_echo_ignore_all; + u8 icmpv6_echo_ignore_multicast; + u8 icmpv6_echo_ignore_anycast; + unsigned long icmpv6_ratemask[4]; + unsigned long *icmpv6_ratemask_ptr; + u8 anycast_src_echo_reply; + u8 ip_nonlocal_bind; + u8 fwmark_reflect; + u8 flowlabel_state_ranges; + int idgen_retries; + int idgen_delay; + int flowlabel_reflect; + int max_dst_opts_cnt; + int max_hbh_opts_cnt; + int max_dst_opts_len; + int max_hbh_opts_len; + int seg6_flowlabel; + u32 ioam6_id; + u64 ioam6_id_wide; + u8 skip_notify_on_dev_down; + u8 fib_notify_on_flag_change; + u8 icmpv6_error_anycast_as_unicast; +}; -struct disk_events; +struct ipv6_devconf; -struct cdrom_device_info; +struct fib6_info; -struct badblocks; +struct rt6_info; -struct blk_independent_access_ranges; +struct rt6_statistics; -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; - blk_mode_t open_mode; - struct blk_independent_access_ranges *ia_ranges; -}; +struct fib6_table; -struct blk_zone; +struct fib_rules_ops; -typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); +struct seg6_pernet_data; -enum blk_unique_id { - BLK_UID_T10 = 1, - BLK_UID_EUI64 = 2, - BLK_UID_NAA = 3, +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; + bool fib6_has_custom_rules; + unsigned int fib6_rules_require_fldissect; + unsigned int fib6_routes_require_src; + struct rt6_info *ip6_prohibit_entry; + struct rt6_info *ip6_blk_hole_entry; + struct fib6_table *fib6_local_tbl; + struct fib_rules_ops *fib6_rules_ops; + struct sock *ndisc_sk; + struct sock *tcp_sk; + struct sock *igmp_sk; + struct sock *mc_autojoin_sk; + struct hlist_head *inet6_addr_lst; + spinlock_t addrconf_hash_lock; + struct delayed_work addr_chk_work; + atomic_t dev_addr_genid; + atomic_t fib6_sernum; + struct seg6_pernet_data *seg6_data; + struct fib_notifier_ops *notifier_ops; + struct fib_notifier_ops *ip6mr_notifier_ops; + unsigned int ipmr_seq; + struct { + struct hlist_head head; + spinlock_t lock; + u32 seq; + } ip6addrlbl_table; + struct ioam6_pernet_data *ioam6_data; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct hd_geometry; +struct nf_logger; -struct pr_ops; +struct nf_hook_entries; -struct block_device_operations { - void (*submit_bio)(struct bio *); - int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int); - int (*open)(struct gendisk *, blk_mode_t); - void (*release)(struct gendisk *); - int (*ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); - int (*compat_ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); - unsigned int (*check_events)(struct gendisk *, unsigned int); - void (*unlock_native_capacity)(struct gendisk *); - int (*getgeo)(struct block_device *, struct hd_geometry *); - int (*set_read_only)(struct block_device *, bool); - void (*free_disk)(struct gendisk *); - void (*swap_slot_free_notify)(struct block_device *, unsigned long); - int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *); - char * (*devnode)(struct gendisk *, umode_t *); - int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id); - struct module *owner; - const struct pr_ops *pr_ops; - int (*alternative_gpt_sector)(struct gendisk *, sector_t *); +struct netns_nf { + struct proc_dir_entry *proc_netfilter; + const struct nf_logger __attribute__((btf_type_tag("rcu"))) *nf_loggers[11]; + struct ctl_table_header *nf_log_dir_header; + struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *hooks_ipv4[5]; + struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *hooks_ipv6[5]; + struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *hooks_bridge[5]; + unsigned int defrag_ipv4_users; + unsigned int defrag_ipv6_users; }; -struct 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]; -}; +struct nf_ct_event_notifier; -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 nf_generic_net { + unsigned int timeout; }; -struct pr_keys; - -struct pr_held_reservation; - -struct pr_ops { - int (*pr_register)(struct block_device *, u64, u64, u32); - int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32); - int (*pr_release)(struct block_device *, u64, enum pr_type); - int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool); - int (*pr_clear)(struct block_device *, u64); - int (*pr_read_keys)(struct block_device *, struct pr_keys *); - int (*pr_read_reservation)(struct block_device *, struct pr_held_reservation *); +struct nf_tcp_net { + unsigned int timeouts[14]; + u8 tcp_loose; + u8 tcp_be_liberal; + u8 tcp_max_retrans; + u8 tcp_ignore_invalid_rst; }; -enum blk_bounce { - BLK_BOUNCE_NONE = 0, - BLK_BOUNCE_HIGH = 1, +struct nf_udp_net { + unsigned int timeouts[2]; }; -enum blk_zoned_model { - BLK_ZONED_NONE = 0, - BLK_ZONED_HA = 1, - BLK_ZONED_HM = 2, +struct nf_icmp_net { + unsigned int timeout; }; -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 nf_dccp_net { + u8 dccp_loose; + unsigned int dccp_timeout[10]; }; -struct elevator_queue; - -struct blk_queue_stats; - -struct rq_qos; +struct nf_sctp_net { + unsigned int timeouts[10]; +}; -struct blk_mq_ops; +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 blk_mq_ctx; +struct ip_conntrack_stat; -struct blk_mq_tags; +struct netns_ct { + u8 sysctl_log_invalid; + u8 sysctl_events; + u8 sysctl_acct; + u8 sysctl_tstamp; + u8 sysctl_checksum; + struct ip_conntrack_stat __attribute__((btf_type_tag("percpu"))) *stat; + struct nf_ct_event_notifier __attribute__((btf_type_tag("rcu"))) *nf_conntrack_event_cb; + struct nf_ip_net nf_ct_proto; +}; -struct blk_trace; +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 blk_flush_queue; +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 blk_mq_tag_set; +struct xfrm_policy_hthresh { + struct work_struct work; + seqlock_t lock; + u8 lbits4; + u8 rbits4; + u8 lbits6; + u8 rbits6; +}; -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; - struct mutex rq_qos_mutex; - 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; - 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; - 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 flush_list; - 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 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; + unsigned int idx_generator; + 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; + 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; }; -struct blk_mq_hw_ctx; +struct netns_ipvs; -struct blk_mq_queue_data; +struct can_dev_rcv_lists; -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 can_pkg_stats; -struct blk_mq_ctxs; +struct can_rcv_lists_stats; -struct blk_mq_ctx { - struct { - spinlock_t lock; - struct list_head rq_lists[3]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; - unsigned int cpu; - unsigned short index_hw[3]; - struct blk_mq_hw_ctx *hctxs[3]; - struct request_queue *queue; - struct blk_mq_ctxs *ctxs; - struct kobject kobj; - long: 64; +struct netns_can { + struct proc_dir_entry *proc_dir; + struct proc_dir_entry *pde_stats; + struct proc_dir_entry *pde_reset_stats; + struct proc_dir_entry *pde_rcvlist_all; + struct proc_dir_entry *pde_rcvlist_fil; + struct proc_dir_entry *pde_rcvlist_inv; + struct proc_dir_entry *pde_rcvlist_sff; + struct proc_dir_entry *pde_rcvlist_eff; + struct proc_dir_entry *pde_rcvlist_err; + struct proc_dir_entry *bcmproc_dir; + struct can_dev_rcv_lists *rx_alldev_list; + spinlock_t rcvlists_lock; + struct timer_list stattimer; + struct can_pkg_stats *pkg_stats; + struct can_rcv_lists_stats *rcv_lists_stats; + struct hlist_head cgw_list; }; -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 netns_xdp { + struct mutex lock; + struct hlist_head list; }; -struct bio_alloc_cache { - struct bio *free_list; - struct bio *free_list_irq; - unsigned int nr; - unsigned int nr_irq; -}; +struct uevent_sock; -struct blk_independent_access_range { - struct kobject kobj; - sector_t sector; - sector_t nr_sectors; +struct net_generic; + +struct net { + refcount_t passive; + spinlock_t rules_mod_lock; + atomic_t dev_unreg_count; + unsigned int dev_base_seq; + u32 ifindex; + spinlock_t nsid_lock; + atomic_t fnhe_genid; + struct list_head list; + struct list_head exit_list; + struct llist_node cleanup_list; + struct key_tag *key_domain; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct idr netns_ids; + struct ns_common ns; + struct ref_tracker_dir refcnt_tracker; + struct ref_tracker_dir notrefcnt_tracker; + struct list_head dev_base_head; + struct proc_dir_entry *proc_net; + struct proc_dir_entry *proc_net_stat; + struct ctl_table_set sysctls; + struct sock *rtnl; + struct sock *genl_sock; + struct uevent_sock *uevent_sock; + struct hlist_head *dev_name_head; + struct hlist_head *dev_index_head; + struct xarray dev_by_index; + struct raw_notifier_head netdev_chain; + u32 hash_mix; + struct net_device *loopback_dev; + struct list_head rules_ops; + struct netns_core core; + struct netns_mib mib; + struct netns_packet packet; + struct netns_unix unx; + struct netns_nexthop nexthop; + long: 64; + long: 64; + long: 64; + struct netns_ipv4 ipv4; + struct netns_ipv6 ipv6; + struct netns_nf nf; + struct netns_ct ct; + struct net_generic __attribute__((btf_type_tag("rcu"))) *gen; + struct netns_bpf bpf; + long: 64; + long: 64; + struct netns_xfrm xfrm; + u64 net_cookie; + struct netns_ipvs *ipvs; + struct netns_can can; + struct netns_xdp xdp; + struct sock *diag_nlsk; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 prot_inuse { + int all; + int val[64]; }; -struct partition_meta_info { - char uuid[37]; - u8 volname[64]; +struct ipstats_mib { + u64 mibs[38]; + struct u64_stats_sync syncp; }; -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; - struct list_head cb_list; +struct tcp_mib { + unsigned long mibs[16]; }; -struct user_event_mm { - struct list_head mms_link; - struct list_head enablers; - struct mm_struct *mm; - struct user_event_mm *next; - refcount_t refcnt; - refcount_t tasks; - struct rcu_work put_rwork; +struct linux_mib { + unsigned long mibs[132]; }; -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; +struct udp_mib { + unsigned long mibs[10]; }; -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 icmp_mib { + unsigned long mibs[30]; }; -enum rlimit_type { - UCOUNT_RLIMIT_NPROC = 0, - UCOUNT_RLIMIT_MSGQUEUE = 1, - UCOUNT_RLIMIT_SIGPENDING = 2, - UCOUNT_RLIMIT_MEMLOCK = 3, - UCOUNT_RLIMIT_COUNTS = 4, +struct icmpmsg_mib { + atomic_long_t mibs[512]; }; -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, +struct icmpv6_mib { + unsigned long mibs[7]; }; -enum { - MM_FILEPAGES = 0, - MM_ANONPAGES = 1, - MM_SWAPENTS = 2, - MM_SHMEMPAGES = 3, - NR_MM_COUNTERS = 4, +struct icmpv6msg_mib { + atomic_long_t mibs[512]; }; -struct siginfo { +struct ip_ra_chain { + struct ip_ra_chain __attribute__((btf_type_tag("rcu"))) *next; + struct sock *sk; union { - struct { - int si_signo; - int si_errno; - int si_code; - union __sifields _sifields; - }; - int _si_pad[32]; + void (*destructor)(struct sock *); + struct sock *saved_sk; }; + struct callback_head rcu; }; -struct __kernel_old_timeval { - __kernel_long_t tv_sec; - __kernel_long_t tv_usec; -}; +typedef u32 (*rht_hashfn_t)(const void *, u32, u32); -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; -}; +typedef u32 (*rht_obj_hashfn_t)(const void *, u32, u32); -typedef u32 compat_uint_t; +struct rhashtable_compare_arg; -struct old_timeval32 { - old_time32_t tv_sec; - s32 tv_usec; -}; +typedef int (*rht_obj_cmpfn_t)(struct rhashtable_compare_arg *, const void *); -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 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 waitid_info; +struct bucket_table; -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 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 waitid_info { - pid_t pid; - uid_t uid; - int status; - int cause; -}; +struct inet_frags; -typedef void (*rcu_callback_t)(struct callback_head *); +struct fqdir { + long high_thresh; + long low_thresh; + int timeout; + int max_dist; + struct inet_frags *f; + struct net *net; + bool dead; + long: 64; + long: 64; + struct rhashtable rhashtable; + atomic_long_t mem; + struct work_struct destroy_work; + struct llist_node free_list; + long: 64; + long: 64; +}; -struct ww_acquire_ctx; +struct inet_frag_queue; -struct mutex_waiter { - struct list_head list; - struct task_struct *task; - struct ww_acquire_ctx *ww_ctx; - void *magic; +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 ww_class; +typedef __u16 __be16; -struct ww_acquire_ctx { - struct task_struct *task; - unsigned long stamp; - unsigned int acquired; - unsigned short wounded; - unsigned short is_wait_die; - unsigned int done_acquire; - struct ww_class *ww_class; - void *contending_lock; +struct frag_v4_compare_key { + __be32 saddr; + __be32 daddr; + u32 user; + u32 vif; + __be16 id; + u16 protocol; }; -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 in6_addr { + union { + __u8 u6_addr8[16]; + __be16 u6_addr16[8]; + __be32 u6_addr32[4]; + } in6_u; }; -typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int); - -typedef void (*btf_trace_contention_end)(void *, void *, int); - -struct trace_print_flags { - unsigned long mask; - const char *name; +struct frag_v6_compare_key { + struct in6_addr saddr; + struct in6_addr daddr; + u32 user; + __be32 id; + u32 iif; }; -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 rhash_head { + struct rhash_head __attribute__((btf_type_tag("rcu"))) *next; }; -struct trace_event_raw_contention_begin { - struct trace_entry ent; - void *lock_addr; - unsigned int flags; - char __data[0]; +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 trace_event_raw_contention_end { - struct trace_entry ent; - void *lock_addr; - int ret; - char __data[0]; -}; +typedef __u32 __wsum; -struct ww_mutex { - struct mutex base; - struct ww_acquire_ctx *ctx; - struct ww_class *ww_class; -}; +typedef unsigned int sk_buff_data_t; -struct trace_subsystem_dir; +struct skb_ext; -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 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 dst_pending_confirm: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 __mono_tc_offset[0]; + __u8 mono_delivery_time: 1; + __u8 tc_at_ingress: 1; + __u8 tc_skip_classify: 1; + __u8 remcsum_offload: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 inner_protocol_type: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 ndisc_nodetype: 2; + __u8 ipvs_property: 1; + __u8 redirected: 1; + __u8 slow_gro: 1; + __u16 tc_index; + u16 alloc_cpu; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + union { + u32 vlan_all; + struct { + __be16 vlan_proto; + __u16 vlan_tci; + }; + }; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + __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 dst_pending_confirm: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 __mono_tc_offset[0]; + __u8 mono_delivery_time: 1; + __u8 tc_at_ingress: 1; + __u8 tc_skip_classify: 1; + __u8 remcsum_offload: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 inner_protocol_type: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 ndisc_nodetype: 2; + __u8 ipvs_property: 1; + __u8 redirected: 1; + __u8 slow_gro: 1; + __u16 tc_index; + u16 alloc_cpu; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + union { + u32 vlan_all; + struct { + __be16 vlan_proto; + __u16 vlan_tci; + }; + }; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + __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 prog_entry; +struct skb_ext { + refcount_t refcnt; + u8 offset[2]; + u8 chunks; + long: 0; + char data[0]; +}; -struct event_filter { - struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog; - char *filter_string; +struct rhashtable_compare_arg { + struct rhashtable *ht; + const void *key; }; -struct trace_buffer; +struct rhash_lock_head; -struct ring_buffer_event; +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]; +}; -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; +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 ring_buffer_event { - u32 type_len: 5; - u32 time_delta: 27; - u32 array[0]; +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 wake_q_head { - struct wake_q_node *first; - struct wake_q_node **lastp; +struct tcp_fastopen_context { + siphash_key_t key[2]; + int num; + struct callback_head rcu; }; -struct trace_event_data_offsets_contention_begin {}; +typedef struct { + atomic_t refcnt; +} rcuref_t; -struct trace_event_data_offsets_contention_end {}; +typedef struct {} netdevice_tracker; -enum { - GP_IDLE = 0, - GP_ENTER = 1, - GP_PASSED = 2, - GP_EXIT = 3, - GP_REPLAY = 4, +struct xfrm_state; + +struct uncached_list; + +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; + rcuref_t __rcuref; + int __use; + unsigned long lastuse; + struct callback_head callback_head; + short error; + short __pad; + __u32 tclassid; + netdevice_tracker dev_tracker; + struct list_head rt_uncached; + struct uncached_list *rt_uncached_list; + struct lwtunnel_state *lwtstate; }; -struct rt_waiter_node { - struct rb_node entry; - int prio; - u64 deadline; +enum nf_log_type { + NF_LOG_TYPE_LOG = 0, + NF_LOG_TYPE_ULOG = 1, + NF_LOG_TYPE_MAX = 2, }; -struct rt_mutex_base; +typedef u8 u_int8_t; -struct rt_mutex_waiter { - struct rt_waiter_node tree; - struct rt_waiter_node pi_tree; - struct task_struct *task; - struct rt_mutex_base *lock; - unsigned int wake_state; - struct ww_acquire_ctx *ww_ctx; +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 rt_mutex_base { - raw_spinlock_t wait_lock; - struct rb_root_cached waiters; - struct task_struct *owner; +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; }; -union rcu_noqs { - struct { - u8 norm; - u8 exp; - } b; - u16 s; +struct nf_hook_entries { + u16 num_hook_entries; + struct nf_hook_entry hooks[0]; }; -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 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 rcu_node; +struct net_generic { + union { + struct { + unsigned int len; + struct callback_head rcu; + } s; + struct { + struct {} __empty_ptr; + void *ptr[0]; + }; + }; +}; -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 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 rt_mutex { - struct rt_mutex_base rtmutex; +struct ld_semaphore { + atomic_long_t count; + raw_spinlock_t wait_lock; + unsigned int wait_readers; + struct list_head read_wait; + struct list_head write_wait; }; -struct rcu_exp_work { - unsigned long rew_s; - struct work_struct rew_work; +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 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: 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; -}; - -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: 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 rcu_gp_oldstate { - unsigned long rgos_norm; - unsigned long rgos_exp; +struct winsize { + unsigned short ws_row; + unsigned short ws_col; + unsigned short ws_xpixel; + unsigned short ws_ypixel; }; -struct kfree_rcu_cpu; +struct tty_driver; -struct kfree_rcu_cpu_work { - struct rcu_work rcu_work; - struct callback_head *head_free; - struct rcu_gp_oldstate head_free_gp_snap; - struct list_head bulk_head_free[2]; - struct kfree_rcu_cpu *krcp; -}; +struct tty_port; -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 tty_operations; -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; -}; +struct tty_ldisc; -struct sysrq_key_op { - void (* const handler)(int); - const char * const help_msg; - const char * const action_msg; - const int enable_mask; +struct tty_struct { + struct kref kref; + int index; + struct device *dev; + struct tty_driver *driver; + struct tty_port *port; + const struct tty_operations *ops; + struct tty_ldisc *ldisc; + struct ld_semaphore ldisc_sem; + struct mutex atomic_write_lock; + struct mutex legacy_mutex; + struct mutex throttle_mutex; + struct rw_semaphore termios_rwsem; + struct mutex winsize_mutex; + struct ktermios termios; + struct ktermios termios_locked; + char name[64]; + unsigned long flags; + int count; + unsigned int receive_room; + struct winsize winsize; + struct { + spinlock_t lock; + bool stopped; + bool tco_stopped; + unsigned long unused[0]; + } flow; + struct { + struct pid *pgrp; + struct pid *session; + spinlock_t lock; + unsigned char pktstatus; + bool packet; + unsigned long unused[0]; + } ctrl; + bool hw_stopped; + bool closing; + int flow_change; + struct tty_struct *link; + struct fasync_struct *fasync; + wait_queue_head_t write_wait; + wait_queue_head_t read_wait; + struct work_struct hangup_work; + void *disc_data; + void *driver_data; + spinlock_t files_lock; + int write_cnt; + unsigned char *write_buf; + struct list_head tty_files; + struct work_struct SAK_work; }; -enum ctx_state { - CONTEXT_DISABLED = -1, - CONTEXT_KERNEL = 0, - CONTEXT_IDLE = 1, - CONTEXT_USER = 2, - CONTEXT_GUEST = 3, - CONTEXT_MAX = 4, +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; }; -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 io_uring_sqe; -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 io_uring_cmd { + struct file *file; + const struct io_uring_sqe *sqe; + union { + void (*task_work_cb)(struct io_uring_cmd *, unsigned int); + void *cookie; + }; + u32 cmd_op; + u32 flags; + u8 pdu[32]; }; -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, -}; +typedef int __kernel_rwf_t; -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 io_uring_sqe { + __u8 opcode; + __u8 flags; + __u16 ioprio; + __s32 fd; + union { + __u64 off; + __u64 addr2; + struct { + __u32 cmd_op; + __u32 __pad1; + }; + }; + union { + __u64 addr; + __u64 splice_off_in; + struct { + __u32 level; + __u32 optname; + }; + }; + __u32 len; + union { + __kernel_rwf_t rw_flags; + __u32 fsync_flags; + __u16 poll_events; + __u32 poll32_events; + __u32 sync_range_flags; + __u32 msg_flags; + __u32 timeout_flags; + __u32 accept_flags; + __u32 cancel_flags; + __u32 open_flags; + __u32 statx_flags; + __u32 fadvise_advice; + __u32 splice_flags; + __u32 rename_flags; + __u32 unlink_flags; + __u32 hardlink_flags; + __u32 xattr_flags; + __u32 msg_ring_flags; + __u32 uring_cmd_flags; + __u32 waitid_flags; + __u32 futex_flags; + }; + __u64 user_data; + union { + __u16 buf_index; + __u16 buf_group; + }; + __u16 personality; + union { + __s32 splice_fd_in; + __u32 file_index; + __u32 optlen; + struct { + __u16 addr_len; + __u16 __pad3[1]; + }; + }; + union { + struct { + __u64 addr3; + __u64 __pad2[1]; + }; + __u64 optval; + __u8 cmd[0]; + }; }; -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, +struct __kfifo { + unsigned int in; + unsigned int out; + unsigned int mask; + unsigned int esize; + void *data; }; -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 tty_buffer { + union { + struct tty_buffer *next; + struct llist_node free; + }; + unsigned int used; + unsigned int size; + unsigned int commit; + unsigned int lookahead; + unsigned int read; + bool flags; + long: 0; + u8 data[0]; }; -enum { - WORK_STRUCT_PENDING_BIT = 0, - WORK_STRUCT_INACTIVE_BIT = 1, - WORK_STRUCT_PWQ_BIT = 2, - WORK_STRUCT_LINKED_BIT = 3, - WORK_STRUCT_COLOR_SHIFT = 4, - WORK_STRUCT_COLOR_BITS = 4, - WORK_STRUCT_PENDING = 1, - WORK_STRUCT_INACTIVE = 2, - WORK_STRUCT_PWQ = 4, - WORK_STRUCT_LINKED = 8, - WORK_STRUCT_STATIC = 0, - WORK_NR_COLORS = 16, - WORK_CPU_UNBOUND = 64, - WORK_STRUCT_FLAG_BITS = 8, - WORK_OFFQ_FLAG_BASE = 4, - __WORK_OFFQ_CANCELING = 4, - WORK_OFFQ_FLAG_BITS = 1, - WORK_OFFQ_POOL_SHIFT = 5, - WORK_OFFQ_LEFT = 59, - WORK_OFFQ_POOL_BITS = 31, - WORK_BUSY_PENDING = 1, - WORK_BUSY_RUNNING = 2, - WORKER_DESC_LEN = 24, +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; }; -enum ftrace_dump_mode { - DUMP_NONE = 0, - DUMP_ALL = 1, - DUMP_ORIG = 2, -}; +struct tty_port_operations; -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, -}; +struct tty_port_client_operations; -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, +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 context_tracking { - atomic_t state; - long dynticks_nesting; - long dynticks_nmi_nesting; +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 kernel_stat { - unsigned long irqs_sum; - unsigned int softirqs[10]; +struct tty_port_client_operations { + size_t (*receive_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_port *); }; -struct kvfree_rcu_bulk_data { - struct list_head list; - struct rcu_gp_oldstate gp_snap; - unsigned long nr_records; - void *records[0]; -}; +struct serial_icounter_struct; -struct kernel_cpustat { - u64 cpustat[10]; -}; +struct serial_struct; -typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t); - -struct rcu_synchronize { - struct callback_head head; - struct completion completion; +struct tty_operations { + struct tty_struct * (*lookup)(struct tty_driver *, struct file *, int); + int (*install)(struct tty_driver *, struct tty_struct *); + void (*remove)(struct tty_driver *, struct tty_struct *); + int (*open)(struct tty_struct *, struct file *); + void (*close)(struct tty_struct *, struct file *); + void (*shutdown)(struct tty_struct *); + void (*cleanup)(struct tty_struct *); + ssize_t (*write)(struct tty_struct *, const u8 *, size_t); + int (*put_char)(struct tty_struct *, u8); + void (*flush_chars)(struct tty_struct *); + unsigned int (*write_room)(struct tty_struct *); + unsigned int (*chars_in_buffer)(struct tty_struct *); + int (*ioctl)(struct tty_struct *, unsigned int, unsigned long); + long (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long); + void (*set_termios)(struct tty_struct *, const struct ktermios *); + void (*throttle)(struct tty_struct *); + void (*unthrottle)(struct tty_struct *); + void (*stop)(struct tty_struct *); + void (*start)(struct tty_struct *); + void (*hangup)(struct tty_struct *); + int (*break_ctl)(struct tty_struct *, int); + void (*flush_buffer)(struct tty_struct *); + void (*set_ldisc)(struct tty_struct *); + void (*wait_until_sent)(struct tty_struct *, int); + void (*send_xchar)(struct tty_struct *, 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 sched_param { - int sched_priority; -}; +struct tty_ldisc_ops; -struct softirq_action { - void (*action)(struct softirq_action *); +struct tty_ldisc { + struct tty_ldisc_ops *ops; + struct tty_struct *tty; }; -struct atomic_notifier_head { - spinlock_t lock; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +struct tty_ldisc_ops { + char *name; + int num; + int (*open)(struct tty_struct *); + void (*close)(struct tty_struct *); + void (*flush_buffer)(struct tty_struct *); + ssize_t (*read)(struct tty_struct *, struct file *, u8 *, size_t, void **, unsigned long); + ssize_t (*write)(struct tty_struct *, struct file *, const u8 *, size_t); + int (*ioctl)(struct tty_struct *, unsigned int, unsigned long); + int (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long); + void (*set_termios)(struct tty_struct *, const struct ktermios *); + __poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *); + void (*hangup)(struct tty_struct *); + void (*receive_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_struct *); + void (*dcd_change)(struct tty_struct *, bool); + size_t (*receive_buf2)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + struct module *owner; }; -struct swait_queue { - struct task_struct *task; - struct list_head task_list; -}; +struct bpf_run_ctx {}; -struct rcu_cblist { - struct callback_head *head; - struct callback_head **tail; - long len; +struct user_event_mm { + struct list_head mms_link; + struct list_head enablers; + struct mm_struct *mm; + struct user_event_mm *next; + refcount_t refcnt; + refcount_t tasks; + struct rcu_work put_rwork; }; -struct trace_array_cpu; - -struct array_buffer { - struct trace_array *tr; - struct trace_buffer *buffer; - struct trace_array_cpu __attribute__((btf_type_tag("percpu"))) *data; - u64 time_start; - int cpu; +struct iommu_user_data { + unsigned int type; + void __attribute__((btf_type_tag("user"))) *uptr; + size_t len; }; -struct trace_pid_list; - -struct trace_options; - -struct trace_func_repeats; - -struct trace_array { +struct iommu_device { 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[452]; - struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[452]; - 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; - cpumask_var_t pipe_cpumask; - int ref; - int trace_ref; - struct ftrace_ops *ops; - struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_pids; - struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_no_pids; - struct list_head func_probes; - struct list_head mod_trace; - struct list_head mod_notrace; - int function_enabled; - int no_filter_buffering_ref; - struct list_head hist_vars; - struct trace_func_repeats __attribute__((btf_type_tag("percpu"))) *last_func_repeats; + const struct iommu_ops *ops; + struct fwnode_handle *fwnode; + struct device *dev; + struct iommu_group *singleton_group; + u32 max_pasids; }; -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; +struct of_phandle_args { + struct device_node *np; + int args_count; + uint32_t args[16]; }; -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; +struct iommu_fault_event { + struct iommu_fault fault; + struct list_head list; }; -union upper_chunk { - union upper_chunk *next; - union lower_chunk *data[256]; +struct iommu_page_response { + __u32 argsz; + __u32 version; + __u32 flags; + __u32 pasid; + __u32 grpid; + __u32 code; }; -union lower_chunk { - union lower_chunk *next; - unsigned long data[256]; -}; +struct iopf_device_param; -struct filter_pred; +struct iommu_fault_param; -struct prog_entry { - int target; - int when_to_branch; - struct filter_pred *pred; +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; + u32 pci_32bit_workaround: 1; + u32 require_direct: 1; + u32 shadow_on_flush: 1; }; -struct event_subsystem; +typedef int (*iommu_dev_fault_handler_t)(struct iommu_fault *, void *); -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 iommu_fault_param { + iommu_dev_fault_handler_t handler; + void *data; + struct list_head faults; + struct mutex lock; }; -struct event_subsystem { - struct list_head list; - const char *name; - struct event_filter *filter; - int ref_count; +struct iommu_fwspec { + const struct iommu_ops *ops; + struct fwnode_handle *iommu_fwnode; + u32 flags; + unsigned int num_ids; + u32 ids[0]; }; -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 btf_type { + __u32 name_off; + __u32 info; + union { + __u32 size; + __u32 type; + }; }; -struct tracer_opt; - -struct tracer_flags { - u32 val; - struct tracer_opt *opts; - struct tracer *trace; +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; }; -struct tracer_opt { - const char *name; - u32 bit; +enum bpf_map_type { + BPF_MAP_TYPE_UNSPEC = 0, + BPF_MAP_TYPE_HASH = 1, + BPF_MAP_TYPE_ARRAY = 2, + BPF_MAP_TYPE_PROG_ARRAY = 3, + BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4, + BPF_MAP_TYPE_PERCPU_HASH = 5, + BPF_MAP_TYPE_PERCPU_ARRAY = 6, + BPF_MAP_TYPE_STACK_TRACE = 7, + BPF_MAP_TYPE_CGROUP_ARRAY = 8, + BPF_MAP_TYPE_LRU_HASH = 9, + BPF_MAP_TYPE_LRU_PERCPU_HASH = 10, + BPF_MAP_TYPE_LPM_TRIE = 11, + BPF_MAP_TYPE_ARRAY_OF_MAPS = 12, + BPF_MAP_TYPE_HASH_OF_MAPS = 13, + BPF_MAP_TYPE_DEVMAP = 14, + BPF_MAP_TYPE_SOCKMAP = 15, + BPF_MAP_TYPE_CPUMAP = 16, + BPF_MAP_TYPE_XSKMAP = 17, + BPF_MAP_TYPE_SOCKHASH = 18, + BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19, + BPF_MAP_TYPE_CGROUP_STORAGE = 19, + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20, + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED = 21, + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21, + BPF_MAP_TYPE_QUEUE = 22, + BPF_MAP_TYPE_STACK = 23, + BPF_MAP_TYPE_SK_STORAGE = 24, + BPF_MAP_TYPE_DEVMAP_HASH = 25, + BPF_MAP_TYPE_STRUCT_OPS = 26, + BPF_MAP_TYPE_RINGBUF = 27, + BPF_MAP_TYPE_INODE_STORAGE = 28, + BPF_MAP_TYPE_TASK_STORAGE = 29, + BPF_MAP_TYPE_BLOOM_FILTER = 30, + BPF_MAP_TYPE_USER_RINGBUF = 31, + BPF_MAP_TYPE_CGRP_STORAGE = 32, }; -struct trace_option_dentry; - -struct trace_options { - struct tracer *tracer; - struct trace_option_dentry *topts; -}; +struct bpf_map_ops; -struct trace_option_dentry { - struct tracer_opt *opt; - struct tracer_flags *flags; - struct trace_array *tr; - struct dentry *entry; -}; +struct btf_record; -struct trace_func_repeats { - unsigned long ip; - unsigned long parent_ip; - unsigned long count; - u64 ts_last_call; +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; + struct obj_cgroup *objcg; + char name[16]; + long: 64; + long: 64; + atomic64_t refcnt; + atomic64_t usercnt; + union { + struct work_struct work; + struct callback_head rcu; + }; + 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; + bool free_after_mult_rcu_gp; + s64 __attribute__((btf_type_tag("percpu"))) *elem_count; + long: 64; + long: 64; + long: 64; }; typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64); union bpf_attr; -struct bpf_map; - -struct bpf_insn; - -struct btf; - -struct btf_type; - -struct bpf_prog_aux; - struct bpf_verifier_env; struct bpf_func_state; @@ -11125,7 +10818,7 @@ struct bpf_map_ops { long (*map_peek_elem)(struct bpf_map *, void *); void * (*map_lookup_percpu_elem)(struct bpf_map *, void *, u32); void * (*map_fd_get_ptr)(struct bpf_map *, struct file *, int); - void (*map_fd_put_ptr)(void *); + void (*map_fd_put_ptr)(struct bpf_map *, void *, bool); int (*map_gen_lookup)(struct bpf_map *, struct bpf_insn *); u32 (*map_fd_sys_lookup_elem)(void *); void (*map_seq_show_elem)(struct bpf_map *, void *, struct seq_file *); @@ -11223,11 +10916,19 @@ union bpf_attr { __s32 path_fd; }; struct { - __u32 target_fd; + union { + __u32 target_fd; + __u32 target_ifindex; + }; __u32 attach_bpf_fd; __u32 attach_type; __u32 attach_flags; __u32 replace_bpf_fd; + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; }; struct { __u32 prog_fd; @@ -11263,13 +10964,22 @@ union bpf_attr { __u64 info; } info; struct { - __u32 target_fd; + union { + __u32 target_fd; + __u32 target_ifindex; + }; __u32 attach_type; __u32 query_flags; __u32 attach_flags; __u64 prog_ids; - __u32 prog_cnt; + union { + __u32 prog_cnt; + __u32 count; + }; __u64 prog_attach_flags; + __u64 link_ids; + __u64 link_attach_flags; + __u64 revision; } query; struct { __u64 name; @@ -11331,6 +11041,29 @@ union bpf_attr { __s32 priority; __u32 flags; } netfilter; + struct { + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + } tcx; + struct { + __u64 path; + __u64 offsets; + __u64 ref_ctr_offsets; + __u64 cookies; + __u32 cnt; + __u32 flags; + __u32 pid; + } uprobe_multi; + struct { + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + } netkit; }; } link_create; struct { @@ -11362,119 +11095,84 @@ union bpf_attr { } prog_bind_map; }; -enum bpf_prog_type { - BPF_PROG_TYPE_UNSPEC = 0, - BPF_PROG_TYPE_SOCKET_FILTER = 1, - BPF_PROG_TYPE_KPROBE = 2, - BPF_PROG_TYPE_SCHED_CLS = 3, - BPF_PROG_TYPE_SCHED_ACT = 4, - BPF_PROG_TYPE_TRACEPOINT = 5, - BPF_PROG_TYPE_XDP = 6, - BPF_PROG_TYPE_PERF_EVENT = 7, - BPF_PROG_TYPE_CGROUP_SKB = 8, - BPF_PROG_TYPE_CGROUP_SOCK = 9, - BPF_PROG_TYPE_LWT_IN = 10, - BPF_PROG_TYPE_LWT_OUT = 11, - BPF_PROG_TYPE_LWT_XMIT = 12, - BPF_PROG_TYPE_SOCK_OPS = 13, - BPF_PROG_TYPE_SK_SKB = 14, - BPF_PROG_TYPE_CGROUP_DEVICE = 15, - BPF_PROG_TYPE_SK_MSG = 16, - BPF_PROG_TYPE_RAW_TRACEPOINT = 17, - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18, - BPF_PROG_TYPE_LWT_SEG6LOCAL = 19, - BPF_PROG_TYPE_LIRC_MODE2 = 20, - BPF_PROG_TYPE_SK_REUSEPORT = 21, - BPF_PROG_TYPE_FLOW_DISSECTOR = 22, - BPF_PROG_TYPE_CGROUP_SYSCTL = 23, - BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24, - BPF_PROG_TYPE_CGROUP_SOCKOPT = 25, - BPF_PROG_TYPE_TRACING = 26, - BPF_PROG_TYPE_STRUCT_OPS = 27, - BPF_PROG_TYPE_EXT = 28, - BPF_PROG_TYPE_LSM = 29, - BPF_PROG_TYPE_SK_LOOKUP = 30, - BPF_PROG_TYPE_SYSCALL = 31, - BPF_PROG_TYPE_NETFILTER = 32, +struct btf_header { + __u16 magic; + __u8 version; + __u8 flags; + __u32 hdr_len; + __u32 type_off; + __u32 type_len; + __u32 str_off; + __u32 str_len; }; -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 btf_kfunc_set_tab; -struct btf_record; +struct btf_id_dtor_kfunc_tab; -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; - struct obj_cgroup *objcg; - char name[16]; - long: 64; - long: 64; - atomic64_t refcnt; - atomic64_t usercnt; - struct work_struct work; - struct mutex freeze_mutex; - atomic64_t writecnt; +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 { - spinlock_t lock; - enum bpf_prog_type type; - bool jited; - bool xdp_has_frags; - } owner; - bool bypass_spec_v1; - bool frozen; - long: 64; - long: 64; - long: 64; - long: 64; + struct cgroup *start; + enum bpf_cgroup_iter_order order; + } cgroup; + struct { + enum bpf_iter_task_type type; + u32 pid; + } task; }; enum btf_field_type { @@ -11482,13 +11180,14 @@ enum btf_field_type { 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, - BPF_REFCOUNT = 256, + BPF_KPTR_PERCPU = 16, + BPF_KPTR = 28, + BPF_LIST_HEAD = 32, + BPF_LIST_NODE = 64, + BPF_RB_ROOT = 128, + BPF_RB_NODE = 256, + BPF_GRAPH_NODE_OR_ROOT = 480, + BPF_REFCOUNT = 512, }; typedef void (*btf_dtor_kfunc_t)(void *); @@ -11526,331 +11225,6 @@ struct btf_record { struct btf_field fields[0]; }; -struct sock_filter { - __u16 code; - __u8 jt; - __u8 jf; - __u32 k; -}; - -typedef short __s16; - -struct bpf_insn { - __u8 code; - __u8 dst_reg: 4; - __u8 src_reg: 4; - __s16 off; - __s32 imm; -}; - -enum bpf_attach_type { - BPF_CGROUP_INET_INGRESS = 0, - BPF_CGROUP_INET_EGRESS = 1, - BPF_CGROUP_INET_SOCK_CREATE = 2, - BPF_CGROUP_SOCK_OPS = 3, - BPF_SK_SKB_STREAM_PARSER = 4, - BPF_SK_SKB_STREAM_VERDICT = 5, - BPF_CGROUP_DEVICE = 6, - BPF_SK_MSG_VERDICT = 7, - BPF_CGROUP_INET4_BIND = 8, - BPF_CGROUP_INET6_BIND = 9, - BPF_CGROUP_INET4_CONNECT = 10, - BPF_CGROUP_INET6_CONNECT = 11, - BPF_CGROUP_INET4_POST_BIND = 12, - BPF_CGROUP_INET6_POST_BIND = 13, - BPF_CGROUP_UDP4_SENDMSG = 14, - BPF_CGROUP_UDP6_SENDMSG = 15, - BPF_LIRC_MODE2 = 16, - BPF_FLOW_DISSECTOR = 17, - BPF_CGROUP_SYSCTL = 18, - BPF_CGROUP_UDP4_RECVMSG = 19, - BPF_CGROUP_UDP6_RECVMSG = 20, - BPF_CGROUP_GETSOCKOPT = 21, - BPF_CGROUP_SETSOCKOPT = 22, - BPF_TRACE_RAW_TP = 23, - BPF_TRACE_FENTRY = 24, - BPF_TRACE_FEXIT = 25, - BPF_MODIFY_RETURN = 26, - BPF_LSM_MAC = 27, - BPF_TRACE_ITER = 28, - BPF_CGROUP_INET4_GETPEERNAME = 29, - BPF_CGROUP_INET6_GETPEERNAME = 30, - BPF_CGROUP_INET4_GETSOCKNAME = 31, - BPF_CGROUP_INET6_GETSOCKNAME = 32, - BPF_XDP_DEVMAP = 33, - BPF_CGROUP_INET_SOCK_RELEASE = 34, - BPF_XDP_CPUMAP = 35, - BPF_SK_LOOKUP = 36, - BPF_XDP = 37, - BPF_SK_SKB_VERDICT = 38, - BPF_SK_REUSEPORT_SELECT = 39, - BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40, - BPF_PERF_EVENT = 41, - BPF_TRACE_KPROBE_MULTI = 42, - BPF_LSM_CGROUP = 43, - BPF_STRUCT_OPS = 44, - BPF_NETFILTER = 45, - __MAX_BPF_ATTACH_TYPE = 46, -}; - -struct bpf_prog_stats; - -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 bpf_ctx_arg_aux; - -struct bpf_trampoline; - -struct bpf_jit_poke_descriptor; - -struct bpf_kfunc_desc_tab; - -struct bpf_kfunc_btf_tab; - -struct bpf_prog_ops; - -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; - struct module *mod; - u32 num_exentries; - struct exception_table_entry *extable; - union { - struct work_struct work; - struct callback_head rcu; - }; -}; - -enum bpf_reg_type { - NOT_INIT = 0, - SCALAR_VALUE = 1, - PTR_TO_CTX = 2, - CONST_PTR_TO_MAP = 3, - PTR_TO_MAP_VALUE = 4, - PTR_TO_MAP_KEY = 5, - PTR_TO_STACK = 6, - PTR_TO_PACKET_META = 7, - PTR_TO_PACKET = 8, - PTR_TO_PACKET_END = 9, - PTR_TO_FLOW_KEYS = 10, - PTR_TO_SOCKET = 11, - PTR_TO_SOCK_COMMON = 12, - PTR_TO_TCP_SOCK = 13, - PTR_TO_TP_BUFFER = 14, - PTR_TO_XDP_SOCK = 15, - PTR_TO_BTF_ID = 16, - PTR_TO_MEM = 17, - PTR_TO_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; - 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; -}; - struct bpf_prog_ops { int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); }; @@ -11891,1344 +11265,1689 @@ struct bpf_line_info { __u32 line_col; }; -struct bpf_run_ctx {}; - -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; +typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, unsigned long); -struct btf_struct_metas; +typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *); -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 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; }; -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 { + MM_FILEPAGES = 0, + MM_ANONPAGES = 1, + MM_SWAPENTS = 2, + MM_SHMEMPAGES = 3, + NR_MM_COUNTERS = 4, }; -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 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 bpf_iter_task_type { - BPF_TASK_ITER_ALL = 0, - BPF_TASK_ITER_TID = 1, - BPF_TASK_ITER_TGID = 2, +enum rlimit_type { + UCOUNT_RLIMIT_NPROC = 0, + UCOUNT_RLIMIT_MSGQUEUE = 1, + UCOUNT_RLIMIT_SIGPENDING = 2, + UCOUNT_RLIMIT_MEMLOCK = 3, + UCOUNT_RLIMIT_COUNTS = 4, }; -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 { + WORK_STRUCT_PENDING_BIT = 0, + WORK_STRUCT_INACTIVE_BIT = 1, + WORK_STRUCT_PWQ_BIT = 2, + WORK_STRUCT_LINKED_BIT = 3, + WORK_STRUCT_COLOR_SHIFT = 4, + WORK_STRUCT_COLOR_BITS = 4, + WORK_STRUCT_PENDING = 1, + WORK_STRUCT_INACTIVE = 2, + WORK_STRUCT_PWQ = 4, + WORK_STRUCT_LINKED = 8, + WORK_STRUCT_STATIC = 0, + WORK_NR_COLORS = 16, + WORK_CPU_UNBOUND = 64, + WORK_STRUCT_FLAG_BITS = 8, + WORK_OFFQ_FLAG_BASE = 4, + __WORK_OFFQ_CANCELING = 4, + WORK_OFFQ_FLAG_BITS = 1, + WORK_OFFQ_POOL_SHIFT = 5, + WORK_OFFQ_LEFT = 59, + WORK_OFFQ_POOL_BITS = 31, + WORK_BUSY_PENDING = 1, + WORK_BUSY_RUNNING = 2, + WORKER_DESC_LEN = 24, }; -enum { - BPF_F_NO_PREALLOC = 1, - BPF_F_NO_COMMON_LRU = 2, - BPF_F_NUMA_NODE = 4, - BPF_F_RDONLY = 8, - BPF_F_WRONLY = 16, - BPF_F_STACK_BUILD_ID = 32, - BPF_F_ZERO_SEED = 64, - BPF_F_RDONLY_PROG = 128, - BPF_F_WRONLY_PROG = 256, - BPF_F_CLONE = 512, - BPF_F_MMAPABLE = 1024, - BPF_F_PRESERVE_ELEMS = 2048, - BPF_F_INNER_MAP = 4096, - BPF_F_LINK = 8192, - BPF_F_PATH_FD = 16384, +enum syscall_work_bit { + SYSCALL_WORK_BIT_SECCOMP = 0, + SYSCALL_WORK_BIT_SYSCALL_TRACEPOINT = 1, + SYSCALL_WORK_BIT_SYSCALL_TRACE = 2, + SYSCALL_WORK_BIT_SYSCALL_EMU = 3, + SYSCALL_WORK_BIT_SYSCALL_AUDIT = 4, + SYSCALL_WORK_BIT_SYSCALL_USER_DISPATCH = 5, + SYSCALL_WORK_BIT_SYSCALL_EXIT_TRAP = 6, }; enum { - BPF_ANY = 0, - BPF_NOEXIST = 1, - BPF_EXIST = 2, - BPF_F_LOCK = 4, + TASK_COMM_LEN = 16, }; -struct bpf_queue_stack { - struct bpf_map map; - raw_spinlock_t lock; - u32 head; - u32 tail; - u32 size; - long: 0; - char elements[0]; - long: 64; - long: 64; - long: 64; +enum { + EVENT_FILE_FL_ENABLED = 1, + EVENT_FILE_FL_RECORDED_CMD = 2, + EVENT_FILE_FL_RECORDED_TGID = 4, + EVENT_FILE_FL_FILTERED = 8, + EVENT_FILE_FL_NO_SET_FILTER = 16, + EVENT_FILE_FL_SOFT_MODE = 32, + EVENT_FILE_FL_SOFT_DISABLED = 64, + EVENT_FILE_FL_TRIGGER_MODE = 128, + EVENT_FILE_FL_TRIGGER_COND = 256, + EVENT_FILE_FL_PID_FILTER = 512, + EVENT_FILE_FL_WAS_ENABLED = 1024, + EVENT_FILE_FL_FREED = 2048, }; -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 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, }; -struct nsset { - unsigned int flags; - struct nsproxy *nsproxy; - struct fs_struct *fs; - const struct cred *cred; +enum mm_cid_state { + MM_CID_UNSET = 4294967295, + MM_CID_LAZY_PUT = 2147483648, }; -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; - }; +enum proc_hidepid { + HIDEPID_OFF = 0, + HIDEPID_NO_ACCESS = 1, + HIDEPID_INVISIBLE = 2, + HIDEPID_NOT_PTRACEABLE = 4, }; -struct netdev_hw_addr_list { - struct list_head list; - int count; - struct rb_root tree; +enum proc_pidonly { + PROC_PIDONLY_OFF = 0, + PROC_PIDONLY_ON = 1, }; -enum rx_handler_result { - RX_HANDLER_CONSUMED = 0, - RX_HANDLER_ANOTHER = 1, - RX_HANDLER_EXACT = 2, - RX_HANDLER_PASS = 3, +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, }; -typedef enum rx_handler_result rx_handler_result_t; +enum { + FUTEX_STATE_OK = 0, + FUTEX_STATE_EXITING = 1, + FUTEX_STATE_DEAD = 2, +}; -typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **); +enum tk_offsets { + TK_OFFS_REAL = 0, + TK_OFFS_BOOT = 1, + TK_OFFS_TAI = 2, + TK_OFFS_MAX = 3, +}; -typedef struct { - struct net *net; -} possible_net_t; +typedef unsigned int slab_flags_t; -enum netdev_ml_priv_type { - ML_PRIV_NONE = 0, - ML_PRIV_CAN = 1, +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]; }; -typedef __s16 s16; +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 netdev_tc_txq { - u16 count; - u16 offset; +struct vm_stack { + struct callback_head rcu; + struct vm_struct *stack_vm_area; }; -struct sfp_bus; +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 udp_tunnel_nic; +struct eventfs_inode; -struct bpf_xdp_link; +struct trace_subsystem_dir; -struct bpf_xdp_entity { - struct bpf_prog *prog; - struct bpf_xdp_link *link; +struct trace_event_file { + struct list_head list; + struct trace_event_call *event_call; + struct event_filter __attribute__((btf_type_tag("rcu"))) *filter; + struct eventfs_inode *ei; + struct trace_array *tr; + struct trace_subsystem_dir *system; + struct list_head triggers; + unsigned long flags; + atomic_t ref; + atomic_t sm_ref; + atomic_t tm_ref; }; -struct netdev_name_node; - -struct dev_ifalias; +struct prog_entry; -struct net_device_ops; +struct event_filter { + struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog; + char *filter_string; +}; -struct xdp_metadata_ops; +struct trace_buffer; -struct net_device_core_stats; +struct ring_buffer_event; -struct ethtool_ops; +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 l3mdev_ops; +struct ring_buffer_event { + u32 type_len: 5; + u32 time_delta: 27; + u32 array[0]; +}; -struct ndisc_ops; +typedef void (*rcu_callback_t)(struct callback_head *); -struct header_ops; +typedef struct poll_table_struct poll_table; -struct in_device; +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 inet6_dev; +struct kernel_clone_args { + u64 flags; + int __attribute__((btf_type_tag("user"))) *pidfd; + int __attribute__((btf_type_tag("user"))) *child_tid; + int __attribute__((btf_type_tag("user"))) *parent_tid; + const char *name; + int exit_signal; + u32 kthread: 1; + u32 io_thread: 1; + u32 user_worker: 1; + u32 no_files: 1; + unsigned long stack; + unsigned long stack_size; + unsigned long tls; + pid_t *set_tid; + size_t set_tid_size; + int cgroup; + int idle; + int (*fn)(void *); + void *fn_arg; + struct cgroup *cgrp; + struct css_set *cset; +}; -struct vlan_info; +struct trace_event_data_offsets_task_newtask {}; -struct netdev_rx_queue; +struct trace_event_data_offsets_task_rename {}; -struct netdev_queue; +struct multiprocess_signals { + sigset_t signal; + struct hlist_node node; +}; -struct cpu_rmap; +typedef int (*proc_visitor)(struct task_struct *, void *); -struct Qdisc; +struct mmiowb_state { + u16 nesting_count; + u16 mmiowb_pending; +}; -struct xdp_dev_bulk_queue; +enum { + IRQTF_RUNTHREAD = 0, + IRQTF_WARNED = 1, + IRQTF_AFFINITY = 2, + IRQTF_FORCED_THREAD = 3, + IRQTF_READY = 4, +}; -struct xps_dev_maps; +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, +}; -struct pcpu_lstats; +enum { + IRQ_SET_MASK_OK = 0, + IRQ_SET_MASK_OK_NOCOPY = 1, + IRQ_SET_MASK_OK_DONE = 2, +}; -struct pcpu_sw_netstats; +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, +}; -struct rtnl_link_ops; +enum { + IRQCHIP_SET_TYPE_MASKED = 1, + IRQCHIP_EOI_IF_HANDLED = 2, + IRQCHIP_MASK_ON_SUSPEND = 4, + IRQCHIP_ONOFFLINE_ENABLED = 8, + IRQCHIP_SKIP_SET_WAKE = 16, + IRQCHIP_ONESHOT_SAFE = 32, + IRQCHIP_EOI_THREADED = 64, + IRQCHIP_SUPPORTS_LEVEL_MSI = 128, + IRQCHIP_SUPPORTS_NMI = 256, + IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, + IRQCHIP_AFFINITY_PRE_STARTUP = 1024, + IRQCHIP_IMMUTABLE = 2048, +}; -struct netprio_map; +enum { + IRQC_IS_HARDIRQ = 0, + IRQC_IS_NESTED = 1, +}; -struct phy_device; +enum { + _IRQ_DEFAULT_INIT_FLAGS = 0, + _IRQ_PER_CPU = 512, + _IRQ_LEVEL = 256, + _IRQ_NOPROBE = 1024, + _IRQ_NOREQUEST = 2048, + _IRQ_NOTHREAD = 65536, + _IRQ_NOAUTOEN = 4096, + _IRQ_MOVE_PCNTXT = 16384, + _IRQ_NO_BALANCING = 8192, + _IRQ_NESTED_THREAD = 32768, + _IRQ_PER_CPU_DEVID = 131072, + _IRQ_IS_POLLED = 262144, + _IRQ_DISABLE_UNLAZY = 524288, + _IRQ_HIDDEN = 1048576, + _IRQ_NO_DEBUG = 2097152, + _IRQF_MODIFY_MASK = 2096911, +}; -struct udp_tunnel_nic_info; +enum task_work_notify_mode { + TWA_NONE = 0, + TWA_RESUME = 1, + TWA_SIGNAL = 2, + TWA_SIGNAL_NO_IPI = 3, +}; -struct rtnl_hw_stats64; +typedef void (*task_work_func_t)(struct callback_head *); -struct devlink_port; +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 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 l3mdev_ops *l3mdev_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; +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; - 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 vlan_info __attribute__((btf_type_tag("rcu"))) *vlan_info; - 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 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; - long: 64; - long: 64; - long: 64; + int bound_on; + const struct cpumask *cpumask; + struct list_head list; + struct module *owner; long: 64; long: 64; long: 64; - 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 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 *); - 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; 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; - -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; +typedef int __kernel_mqd_t; -struct nlmsghdr; +typedef __kernel_mqd_t mqd_t; -struct netdev_phys_item_id; +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 netdev_bpf; +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 xdp_frame; +struct audit_ntp_val { + long long oldval; + long long newval; +}; -struct xdp_buff; +struct audit_ntp_data { + struct audit_ntp_val vals[6]; +}; -struct ip_tunnel_parm; +struct open_how { + __u64 flags; + __u64 mode; + __u64 resolve; +}; -struct net_device_path_ctx; +enum audit_state { + AUDIT_STATE_DISABLED = 0, + AUDIT_STATE_BUILD = 1, + AUDIT_STATE_RECORD = 2, +}; -struct net_device_path; +struct filename; -struct skb_shared_hwtstamps; +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 net_device_ops { - int (*ndo_init)(struct net_device *); - void (*ndo_uninit)(struct net_device *); - int (*ndo_open)(struct net_device *); - int (*ndo_stop)(struct net_device *); - netdev_tx_t (*ndo_start_xmit)(struct sk_buff *, struct net_device *); - netdev_features_t (*ndo_features_check)(struct sk_buff *, struct net_device *, netdev_features_t); - u16 (*ndo_select_queue)(struct net_device *, struct sk_buff *, struct net_device *); - void (*ndo_change_rx_flags)(struct net_device *, int); - void (*ndo_set_rx_mode)(struct net_device *); - int (*ndo_set_mac_address)(struct net_device *, void *); - int (*ndo_validate_addr)(struct net_device *); - int (*ndo_do_ioctl)(struct net_device *, struct ifreq *, int); - int (*ndo_eth_ioctl)(struct net_device *, struct ifreq *, int); - int (*ndo_siocbond)(struct net_device *, struct ifreq *, int); - int (*ndo_siocwandev)(struct net_device *, struct if_settings *); - int (*ndo_siocdevprivate)(struct net_device *, struct ifreq *, void __attribute__((btf_type_tag("user"))) *, int); - int (*ndo_set_config)(struct net_device *, struct ifmap *); - int (*ndo_change_mtu)(struct net_device *, int); - int (*ndo_neigh_setup)(struct net_device *, struct neigh_parms *); - void (*ndo_tx_timeout)(struct net_device *, unsigned int); - void (*ndo_get_stats64)(struct net_device *, struct rtnl_link_stats64 *); - bool (*ndo_has_offload_stats)(const struct net_device *, int); - int (*ndo_get_offload_stats)(int, const struct net_device *, void *); - struct net_device_stats * (*ndo_get_stats)(struct net_device *); - int (*ndo_vlan_rx_add_vid)(struct net_device *, __be16, u16); - int (*ndo_vlan_rx_kill_vid)(struct net_device *, __be16, u16); - int (*ndo_set_vf_mac)(struct net_device *, int, u8 *); - int (*ndo_set_vf_vlan)(struct net_device *, int, u16, u8, __be16); - int (*ndo_set_vf_rate)(struct net_device *, int, int, int); - int (*ndo_set_vf_spoofchk)(struct net_device *, int, bool); - int (*ndo_set_vf_trust)(struct net_device *, int, bool); - int (*ndo_get_vf_config)(struct net_device *, int, struct ifla_vf_info *); - int (*ndo_set_vf_link_state)(struct net_device *, int, int); - int (*ndo_get_vf_stats)(struct net_device *, int, struct ifla_vf_stats *); - int (*ndo_set_vf_port)(struct net_device *, int, struct nlattr **); - int (*ndo_get_vf_port)(struct net_device *, int, struct sk_buff *); - int (*ndo_get_vf_guid)(struct net_device *, int, struct ifla_vf_guid *, struct ifla_vf_guid *); - int (*ndo_set_vf_guid)(struct net_device *, int, u64, int); - int (*ndo_set_vf_rss_query_en)(struct net_device *, int, bool); - int (*ndo_setup_tc)(struct net_device *, enum tc_setup_type, void *); - int (*ndo_rx_flow_steer)(struct net_device *, const struct sk_buff *, u16, u32); - int (*ndo_add_slave)(struct net_device *, struct net_device *, struct netlink_ext_ack *); - int (*ndo_del_slave)(struct net_device *, struct net_device *); - struct net_device * (*ndo_get_xmit_slave)(struct net_device *, struct sk_buff *, bool); - struct net_device * (*ndo_sk_get_lower_dev)(struct net_device *, struct sock *); - netdev_features_t (*ndo_fix_features)(struct net_device *, netdev_features_t); - int (*ndo_set_features)(struct net_device *, netdev_features_t); - int (*ndo_neigh_construct)(struct net_device *, struct neighbour *); - void (*ndo_neigh_destroy)(struct net_device *, struct neighbour *); - int (*ndo_fdb_add)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, u16, struct netlink_ext_ack *); - int (*ndo_fdb_del)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, struct netlink_ext_ack *); - int (*ndo_fdb_del_bulk)(struct 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_mdb_add)(struct net_device *, struct nlattr **, u16, struct netlink_ext_ack *); - int (*ndo_mdb_del)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); - int (*ndo_mdb_dump)(struct net_device *, struct sk_buff *, struct netlink_callback *); - 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); +struct audit_proctitle { + int len; + char *value; }; -typedef unsigned short __kernel_sa_family_t; +struct audit_aux_data; -typedef __kernel_sa_family_t sa_family_t; +struct __kernel_sockaddr_storage; -struct sockaddr { - sa_family_t sa_family; +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 { - char sa_data_min[14]; struct { - struct {} __empty_sa_data; - char sa_data[0]; - }; + 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; }; -struct ifmap { - unsigned long mem_start; - unsigned long mem_end; - unsigned short base_addr; - unsigned char irq; - unsigned char dma; - unsigned char port; +struct filename { + const char *name; + const char __attribute__((btf_type_tag("user"))) *uptr; + atomic_t refcnt; + struct audit_names *aname; + const char iname[0]; }; -typedef struct { - unsigned short encoding; - unsigned short parity; -} raw_hdlc_proto; +typedef __u64 __addrpair; -typedef struct { - unsigned int interval; - unsigned int timeout; -} cisco_proto; +typedef __u32 __portpair; 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; + struct net __attribute__((btf_type_tag("rcu"))) *net; +} possible_net_t; -typedef struct { - unsigned int dlci; -} fr_proto_pvc; +struct hlist_nulls_node { + struct hlist_nulls_node *next; + struct hlist_nulls_node **pprev; +}; -typedef struct { - unsigned int dlci; - char master[16]; -} fr_proto_pvc_info; +struct proto; -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; +struct sock_common { 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 { + __addrpair skc_addrpair; + struct { + __be32 skc_daddr; + __be32 skc_rcv_saddr; + }; + }; union { - char ifrn_name[16]; - } ifr_ifrn; + unsigned int skc_hash; + __u16 skc_u16hashes[2]; + }; 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; + __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; + }; }; -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; -}; +typedef struct { + spinlock_t slock; + int owned; + wait_queue_head_t wq; +} socket_lock_t; -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 sk_buff_list { + struct sk_buff *next; + struct sk_buff *prev; }; -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 sk_buff_head { + union { + struct { + struct sk_buff *next; + struct sk_buff *prev; + }; + struct sk_buff_list list; + }; + __u32 qlen; + spinlock_t lock; }; -struct nlattr { - __u16 nla_len; - __u16 nla_type; -}; +typedef u64 netdev_features_t; -struct ifla_vf_guid { - __u32 vf; - __u64 guid; +struct sock_cgroup_data { + struct cgroup *cgroup; + u32 classid; + u16 prioidx; }; -struct nla_policy; +typedef struct {} netns_tracker; -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 sk_filter; -struct netlink_range_validation; +struct socket_wq; -struct netlink_range_validation_signed; +struct xfrm_policy; -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 socket; -struct netlink_range_validation { - u64 min; - u64 max; -}; +struct sock_reuseport; -struct netlink_range_validation_signed { - s64 min; - s64 max; +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; + int sk_disconnects; + 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 ndmsg { - __u8 ndm_family; - __u8 ndm_pad1; - __u16 ndm_pad2; - __s32 ndm_ifindex; - __u16 ndm_state; - __u8 ndm_flags; - __u8 ndm_type; -}; +struct smc_hashinfo; -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; +typedef struct { union { - u8 ctx[48]; - long args[6]; + void *kernel; + void __attribute__((btf_type_tag("user"))) *user; }; -}; + bool is_kernel: 1; +} sockptr_t; -struct nlmsghdr { - __u32 nlmsg_len; - __u16 nlmsg_type; - __u16 nlmsg_flags; - __u32 nlmsg_seq; - __u32 nlmsg_pid; -}; +struct sockaddr; -struct netdev_phys_item_id { - unsigned char id[32]; - unsigned char id_len; -}; +struct msghdr; -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 sk_psock; + +struct request_sock_ops; + +struct timewait_sock_ops; + +struct raw_hashinfo; + +struct proto { + void (*close)(struct sock *, long); + int (*pre_connect)(struct sock *, struct sockaddr *, int); + int (*connect)(struct sock *, struct sockaddr *, int); + int (*disconnect)(struct sock *, int); + struct sock * (*accept)(struct sock *, int, int *, bool); + int (*ioctl)(struct sock *, int, int *); + int (*init)(struct sock *); + void (*destroy)(struct sock *); + void (*shutdown)(struct sock *, int); + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); + void (*keepalive)(struct sock *, int); + int (*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 *); + void (*splice_eof)(struct socket *); + int (*bind)(struct sock *, struct sockaddr *, int); + int (*bind_add)(struct sock *, struct sockaddr *, int); + int (*backlog_rcv)(struct sock *, struct sk_buff *); + bool (*bpf_bypass_getsockopt)(int, int); + void (*release_cb)(struct sock *); + int (*hash)(struct sock *); + void (*unhash)(struct sock *); + void (*rehash)(struct sock *); + int (*get_port)(struct sock *, unsigned short); + void (*put_port)(struct sock *); + int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); + unsigned int inuse_idx; + bool (*stream_memory_free)(const struct sock *, int); + bool (*sock_is_readable)(struct sock *); + void (*enter_memory_pressure)(struct sock *); + void (*leave_memory_pressure)(struct sock *); + atomic_long_t *memory_allocated; + int __attribute__((btf_type_tag("percpu"))) *per_cpu_fw_alloc; + struct percpu_counter *sockets_allocated; + unsigned long *memory_pressure; + long *sysctl_mem; + int *sysctl_wmem; + int *sysctl_rmem; + u32 sysctl_wmem_offset; + u32 sysctl_rmem_offset; + int max_header; + bool no_autobind; + struct kmem_cache *slab; + unsigned int obj_size; + unsigned int ipv6_pinfo_offset; + slab_flags_t slab_flags; + unsigned int useroffset; + unsigned int usersize; + unsigned int __attribute__((btf_type_tag("percpu"))) *orphan_count; + struct request_sock_ops *rsk_prot; + struct timewait_sock_ops *twsk_prot; + union { + struct inet_hashinfo *hashinfo; + struct udp_table *udp_table; + struct raw_hashinfo *raw_hash; + struct smc_hashinfo *smc_hash; + } h; + struct module *owner; + char name[32]; + struct list_head node; + int (*diag_destroy)(struct sock *, int); }; -struct bpf_offloaded_map; +typedef unsigned short __kernel_sa_family_t; -struct xsk_buff_pool; +typedef __kernel_sa_family_t sa_family_t; -struct netdev_bpf { - enum bpf_netdev_command command; +struct sockaddr { + sa_family_t sa_family; union { + char sa_data_min[14]; struct { - u32 flags; - struct bpf_prog *prog; - struct netlink_ext_ack *extack; - }; - struct { - struct bpf_offloaded_map *offmap; + struct {} __empty_sa_data; + char sa_data[0]; }; - 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 ubuf_info; -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 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 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]; +struct ubuf_info { + void (*callback)(struct sk_buff *, struct ubuf_info *, bool); + refcount_t refcnt; + u8 flags; }; -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, -}; +typedef u32 xdp_features_t; -struct net_device_path { - enum net_device_path_type type; - const struct net_device *dev; +struct net_device_stats { 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; + unsigned long rx_packets; + atomic_long_t __rx_packets; }; -}; - -struct skb_shared_hwtstamps { union { - ktime_t hwtstamp; - void *netdev_data; + 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; }; }; -enum xdp_rss_hash_type { - XDP_RSS_L3_IPV4 = 1, - XDP_RSS_L3_IPV6 = 2, - XDP_RSS_L3_DYNHDR = 4, - XDP_RSS_L4 = 8, - XDP_RSS_L4_TCP = 16, - XDP_RSS_L4_UDP = 32, - XDP_RSS_L4_SCTP = 64, - XDP_RSS_L4_IPSEC = 128, - XDP_RSS_TYPE_NONE = 0, - XDP_RSS_TYPE_L2 = 0, - XDP_RSS_TYPE_L3_IPV4 = 1, - XDP_RSS_TYPE_L3_IPV6 = 2, - XDP_RSS_TYPE_L3_IPV4_OPT = 5, - XDP_RSS_TYPE_L3_IPV6_EX = 6, - XDP_RSS_TYPE_L4_ANY = 8, - XDP_RSS_TYPE_L4_IPV4_TCP = 25, - XDP_RSS_TYPE_L4_IPV4_UDP = 41, - XDP_RSS_TYPE_L4_IPV4_SCTP = 73, - XDP_RSS_TYPE_L4_IPV4_IPSEC = 137, - XDP_RSS_TYPE_L4_IPV6_TCP = 26, - XDP_RSS_TYPE_L4_IPV6_UDP = 42, - XDP_RSS_TYPE_L4_IPV6_SCTP = 74, - XDP_RSS_TYPE_L4_IPV6_IPSEC = 138, - XDP_RSS_TYPE_L4_IPV6_TCP_EX = 30, - XDP_RSS_TYPE_L4_IPV6_UDP_EX = 46, - XDP_RSS_TYPE_L4_IPV6_SCTP_EX = 78, +struct netdev_hw_addr_list { + struct list_head list; + int count; + struct rb_root tree; }; -struct xdp_md; - -struct xdp_metadata_ops { - int (*xmo_rx_timestamp)(const struct xdp_md *, u64 *); - int (*xmo_rx_hash)(const struct xdp_md *, u32 *, enum xdp_rss_hash_type *); +enum rx_handler_result { + RX_HANDLER_CONSUMED = 0, + RX_HANDLER_ANOTHER = 1, + RX_HANDLER_EXACT = 2, + RX_HANDLER_PASS = 3, }; -struct xdp_md { - __u32 data; - __u32 data_end; - __u32 data_meta; - __u32 ingress_ifindex; - __u32 rx_queue_index; - __u32 egress_ifindex; +typedef enum rx_handler_result rx_handler_result_t; + +typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **); + +enum netdev_ml_priv_type { + ML_PRIV_NONE = 0, + ML_PRIV_CAN = 1, }; -struct net_device_core_stats { - unsigned long rx_dropped; - unsigned long tx_dropped; - unsigned long rx_nohandler; - unsigned long rx_otherhost_dropped; +enum netdev_stat_type { + NETDEV_PCPU_STAT_NONE = 0, + NETDEV_PCPU_STAT_LSTATS = 1, + NETDEV_PCPU_STAT_TSTATS = 2, + NETDEV_PCPU_STAT_DSTATS = 3, }; -enum ethtool_phys_id_state { - ETHTOOL_ID_INACTIVE = 0, - ETHTOOL_ID_ACTIVE = 1, - ETHTOOL_ID_ON = 2, - ETHTOOL_ID_OFF = 3, +typedef __s16 s16; + +struct netdev_tc_txq { + u16 count; + u16 offset; }; -struct ethtool_drvinfo; +struct sfp_bus; -struct ethtool_regs; +struct udp_tunnel_nic; -struct ethtool_wolinfo; +struct bpf_xdp_link; -struct ethtool_link_ext_state_info; +struct bpf_xdp_entity { + struct bpf_prog *prog; + struct bpf_xdp_link *link; +}; -struct ethtool_link_ext_stats; +struct netdev_name_node; -struct ethtool_eeprom; +struct dev_ifalias; -struct ethtool_coalesce; +struct net_device_ops; -struct kernel_ethtool_coalesce; +struct xdp_metadata_ops; -struct ethtool_ringparam; +struct net_device_core_stats; -struct kernel_ethtool_ringparam; +struct ethtool_ops; -struct ethtool_pause_stats; +struct l3mdev_ops; -struct ethtool_pauseparam; +struct ndisc_ops; -struct ethtool_test; +struct header_ops; -struct ethtool_stats; +struct in_device; -struct ethtool_rxnfc; +struct inet6_dev; -struct ethtool_flash; +struct vlan_info; -struct ethtool_channels; +struct netdev_rx_queue; -struct ethtool_dump; +struct bpf_mprog_entry; -struct ethtool_ts_info; +struct netdev_queue; -struct ethtool_modinfo; +struct cpu_rmap; -struct ethtool_eee; +struct Qdisc; -struct ethtool_tunable; +struct xdp_dev_bulk_queue; -struct ethtool_link_ksettings; +struct xps_dev_maps; -struct ethtool_fec_stats; +struct pcpu_lstats; -struct ethtool_fecparam; +struct pcpu_sw_netstats; -struct ethtool_module_eeprom; +struct pcpu_dstats; -struct ethtool_eth_phy_stats; +struct rtnl_link_ops; -struct ethtool_eth_mac_stats; +struct netprio_map; -struct ethtool_eth_ctrl_stats; +struct phy_device; -struct ethtool_rmon_stats; +struct udp_tunnel_nic_info; -struct ethtool_rmon_hist_range; +struct rtnl_hw_stats64; -struct ethtool_module_power_mode_params; +struct devlink_port; -struct ethtool_mm_state; +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 l3mdev_ops *l3mdev_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 vlan_info __attribute__((btf_type_tag("rcu"))) *vlan_info; + 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; + unsigned int xdp_zc_max_segs; + rx_handler_func_t __attribute__((btf_type_tag("rcu"))) *rx_handler; + void __attribute__((btf_type_tag("rcu"))) *rx_handler_data; + struct bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_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; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + 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 bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_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 *); + possible_net_t nd_net; + void *ml_priv; + enum netdev_ml_priv_type ml_priv_type; + enum netdev_stat_type pcpu_stat_type: 8; + 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 ethtool_mm_cfg; +struct dev_ifalias { + struct callback_head rcuhead; + char ifalias[0]; +}; -struct ethtool_mm_stats; +typedef enum netdev_tx netdev_tx_t; -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 *); +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 flowi6; +struct ifreq; -struct l3mdev_ops { - u32 (*l3mdev_fib_table)(const struct net_device *); - struct sk_buff * (*l3mdev_l3_rcv)(struct net_device *, struct sk_buff *, u16); - struct sk_buff * (*l3mdev_l3_out)(struct net_device *, struct sock *, struct sk_buff *, u16); - struct dst_entry * (*l3mdev_link_scope_lookup)(const struct net_device *, struct flowi6 *); +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 nlmsghdr; + +struct netlink_callback; + +struct netdev_phys_item_id; + +struct netdev_bpf; + +struct xdp_frame; + +struct xdp_buff; + +struct ip_tunnel_parm; + +struct net_device_path_ctx; + +struct net_device_path; + +struct skb_shared_hwtstamps; + +struct kernel_hwtstamp_config; + +struct net_device_ops { + int (*ndo_init)(struct net_device *); + void (*ndo_uninit)(struct net_device *); + int (*ndo_open)(struct net_device *); + int (*ndo_stop)(struct net_device *); + netdev_tx_t (*ndo_start_xmit)(struct sk_buff *, struct net_device *); + netdev_features_t (*ndo_features_check)(struct sk_buff *, struct net_device *, netdev_features_t); + u16 (*ndo_select_queue)(struct net_device *, struct sk_buff *, struct net_device *); + void (*ndo_change_rx_flags)(struct net_device *, int); + void (*ndo_set_rx_mode)(struct net_device *); + int (*ndo_set_mac_address)(struct net_device *, void *); + int (*ndo_validate_addr)(struct net_device *); + int (*ndo_do_ioctl)(struct net_device *, struct ifreq *, int); + int (*ndo_eth_ioctl)(struct net_device *, struct ifreq *, int); + int (*ndo_siocbond)(struct net_device *, struct ifreq *, int); + int (*ndo_siocwandev)(struct net_device *, struct if_settings *); + int (*ndo_siocdevprivate)(struct net_device *, struct ifreq *, void __attribute__((btf_type_tag("user"))) *, int); + int (*ndo_set_config)(struct net_device *, struct ifmap *); + int (*ndo_change_mtu)(struct net_device *, int); + int (*ndo_neigh_setup)(struct net_device *, struct neigh_parms *); + void (*ndo_tx_timeout)(struct net_device *, unsigned int); + void (*ndo_get_stats64)(struct net_device *, struct rtnl_link_stats64 *); + bool (*ndo_has_offload_stats)(const struct net_device *, int); + int (*ndo_get_offload_stats)(int, const struct net_device *, void *); + struct net_device_stats * (*ndo_get_stats)(struct net_device *); + int (*ndo_vlan_rx_add_vid)(struct net_device *, __be16, u16); + int (*ndo_vlan_rx_kill_vid)(struct net_device *, __be16, u16); + int (*ndo_set_vf_mac)(struct net_device *, int, u8 *); + int (*ndo_set_vf_vlan)(struct net_device *, int, u16, u8, __be16); + int (*ndo_set_vf_rate)(struct net_device *, int, int, int); + int (*ndo_set_vf_spoofchk)(struct net_device *, int, bool); + int (*ndo_set_vf_trust)(struct net_device *, int, bool); + int (*ndo_get_vf_config)(struct net_device *, int, struct ifla_vf_info *); + int (*ndo_set_vf_link_state)(struct net_device *, int, int); + int (*ndo_get_vf_stats)(struct net_device *, int, struct ifla_vf_stats *); + int (*ndo_set_vf_port)(struct net_device *, int, struct nlattr **); + int (*ndo_get_vf_port)(struct net_device *, int, struct sk_buff *); + int (*ndo_get_vf_guid)(struct net_device *, int, struct ifla_vf_guid *, struct ifla_vf_guid *); + int (*ndo_set_vf_guid)(struct net_device *, int, u64, int); + int (*ndo_set_vf_rss_query_en)(struct net_device *, int, bool); + int (*ndo_setup_tc)(struct net_device *, enum tc_setup_type, void *); + int (*ndo_rx_flow_steer)(struct net_device *, const struct sk_buff *, u16, u32); + int (*ndo_add_slave)(struct net_device *, struct net_device *, struct netlink_ext_ack *); + int (*ndo_del_slave)(struct net_device *, struct net_device *); + struct net_device * (*ndo_get_xmit_slave)(struct net_device *, struct sk_buff *, bool); + struct net_device * (*ndo_sk_get_lower_dev)(struct net_device *, struct sock *); + netdev_features_t (*ndo_fix_features)(struct net_device *, netdev_features_t); + int (*ndo_set_features)(struct net_device *, netdev_features_t); + int (*ndo_neigh_construct)(struct net_device *, struct neighbour *); + void (*ndo_neigh_destroy)(struct net_device *, struct neighbour *); + int (*ndo_fdb_add)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, u16, struct netlink_ext_ack *); + int (*ndo_fdb_del)(struct ndmsg *, struct nlattr **, struct net_device *, const unsigned char *, u16, struct netlink_ext_ack *); + int (*ndo_fdb_del_bulk)(struct nlmsghdr *, struct net_device *, struct netlink_ext_ack *); + int (*ndo_fdb_dump)(struct sk_buff *, struct netlink_callback *, struct net_device *, struct net_device *, int *); + int (*ndo_fdb_get)(struct sk_buff *, struct nlattr **, struct net_device *, const unsigned char *, u16, u32, u32, struct netlink_ext_ack *); + int (*ndo_mdb_add)(struct net_device *, struct nlattr **, u16, struct netlink_ext_ack *); + int (*ndo_mdb_del)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); + int (*ndo_mdb_dump)(struct net_device *, struct sk_buff *, struct netlink_callback *); + int (*ndo_mdb_get)(struct net_device *, struct nlattr **, u32, u32, struct netlink_ext_ack *); + int (*ndo_bridge_setlink)(struct net_device *, struct nlmsghdr *, u16, struct netlink_ext_ack *); + int (*ndo_bridge_getlink)(struct sk_buff *, u32, u32, struct net_device *, u32, int); + int (*ndo_bridge_dellink)(struct net_device *, struct nlmsghdr *, u16); + int (*ndo_change_carrier)(struct net_device *, bool); + int (*ndo_get_phys_port_id)(struct net_device *, struct netdev_phys_item_id *); + int (*ndo_get_port_parent_id)(struct net_device *, struct netdev_phys_item_id *); + int (*ndo_get_phys_port_name)(struct net_device *, char *, size_t); + void * (*ndo_dfwd_add_station)(struct net_device *, struct net_device *); + void (*ndo_dfwd_del_station)(struct net_device *, void *); + int (*ndo_set_tx_maxrate)(struct net_device *, int, u32); + int (*ndo_get_iflink)(const struct net_device *); + int (*ndo_fill_metadata_dst)(struct net_device *, struct sk_buff *); + void (*ndo_set_rx_headroom)(struct net_device *, int); + int (*ndo_bpf)(struct net_device *, struct netdev_bpf *); + int (*ndo_xdp_xmit)(struct net_device *, int, struct xdp_frame **, u32); + struct net_device * (*ndo_xdp_get_xmit_slave)(struct net_device *, struct xdp_buff *); + int (*ndo_xsk_wakeup)(struct net_device *, u32, u32); + int (*ndo_tunnel_ctl)(struct net_device *, struct ip_tunnel_parm *, int); + struct net_device * (*ndo_get_peer_dev)(struct net_device *); + int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *); + ktime_t (*ndo_get_tstamp)(struct net_device *, const struct skb_shared_hwtstamps *, bool); + int (*ndo_hwtstamp_get)(struct net_device *, struct kernel_hwtstamp_config *); + int (*ndo_hwtstamp_set)(struct net_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); }; -struct nd_opt_hdr; +struct ifmap { + unsigned long mem_start; + unsigned long mem_end; + unsigned short base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; +}; -struct ndisc_options; +typedef struct { + unsigned short encoding; + unsigned short parity; +} raw_hdlc_proto; -struct prefix_info; +typedef struct { + unsigned int interval; + unsigned int timeout; +} cisco_proto; -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); +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 hh_cache; +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 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 neigh_table; + +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 sk_buff_list { - struct sk_buff *next; - struct sk_buff *prev; +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 sk_buff_head { +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 nlattr { + __u16 nla_len; + __u16 nla_type; +}; + +struct netlink_range_validation; + +struct netlink_range_validation_signed; + +struct nla_policy { + u8 type; + u8 validation_type; + u16 len; union { + u16 strict_start_type; + const u32 bitfield32_valid; + const u32 mask; + const char *reject_message; + const struct nla_policy *nested_policy; + const struct netlink_range_validation *range; + const struct netlink_range_validation_signed *range_signed; struct { - struct sk_buff *next; - struct sk_buff *prev; + s16 min; + s16 max; }; - struct sk_buff_list list; + int (*validate)(const struct nlattr *, struct netlink_ext_ack *); }; - __u32 qlen; - spinlock_t lock; +}; + +struct netlink_range_validation { + u64 min; + u64 max; +}; + +struct netlink_range_validation_signed { + s64 min; + s64 max; }; struct hh_cache { @@ -13237,8 +12956,6 @@ struct hh_cache { unsigned long hh_data[12]; }; -struct neigh_table; - struct neigh_ops; struct neighbour { @@ -13272,3757 +12989,3031 @@ struct neighbour { u8 primary_key[0]; }; -struct ipv4_devconf { - void *sysctl; - int data[33]; - unsigned long state[1]; -}; +struct pneigh_entry; -struct in_ifaddr; +struct neigh_statistics; -struct ip_mc_list; +struct neigh_hash_table; -struct in_device { +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; - 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; + u32 flags; + u8 protocol; + u32 key[0]; }; -struct ipv6_stable_secret { - bool initialized; - struct in6_addr secret; +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 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 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 icmpv6_mib_device; +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 icmpv6msg_mib_device; +struct fib_rule; -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 flowi; -struct ifmcaddr6; +struct fib_lookup_arg; -struct ifacaddr6; +struct fib_rule_hdr; -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 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; - unsigned int ra_mtu; }; -struct vlan_group { - unsigned int nr_vlan_devs; - struct hlist_node hlist; - struct net_device **vlan_devices_arrays[16]; +struct fib_kuid_range { + kuid_t start; + kuid_t end; }; -struct vlan_info { - struct net_device *real_dev; - struct vlan_group grp; - struct list_head vid_list; - unsigned int nr_vids; - struct callback_head rcu; +struct fib_rule_port_range { + __u16 start; + __u16 end; }; -struct rps_map; +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 rps_dev_flow_table; +struct flowi_tunnel { + __be64 tun_id; +}; -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 flowi_common { + int flowic_oif; + int flowic_iif; + int flowic_l3mdev; + __u32 flowic_mark; + __u8 flowic_tos; + __u8 flowic_scope; + __u8 flowic_proto; + __u8 flowic_flags; + __u32 flowic_secid; + kuid_t flowic_uid; + __u32 flowic_multipath_hash; + struct flowi_tunnel flowic_tun_key; }; -struct rps_map { - unsigned int len; - struct callback_head rcu; - u16 cpus[0]; +union flowi_uli { + struct { + __be16 dport; + __be16 sport; + } ports; + struct { + __u8 type; + __u8 code; + } icmpt; + __be32 gre_key; + struct { + __u8 type; + } mht; }; -struct rps_dev_flow { - u16 cpu; - u16 filter; - unsigned int last_qtail; +struct flowi4 { + struct flowi_common __fl_common; + __be32 saddr; + __be32 daddr; + union flowi_uli uli; }; -struct rps_dev_flow_table { - unsigned int mask; - struct callback_head rcu; - struct rps_dev_flow flows[0]; +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 dql { - unsigned int num_queued; - unsigned int adj_limit; - unsigned int last_obj_cnt; - 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: 64; - long: 64; +struct flowi { + union { + struct flowi_common __fl_common; + struct flowi4 ip4; + struct flowi6 ip6; + } u; }; -struct netdev_queue { - struct net_device *dev; - netdevice_tracker dev_tracker; - struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc; - struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc_sleeping; - struct kobject kobj; - 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; - struct dql dql; +struct fib_lookup_arg { + void *lookup_ptr; + const void *lookup_data; + void *result; + struct fib_rule *rule; + u32 table; + int flags; }; -struct qdisc_skb_head { - struct sk_buff *head; - struct sk_buff *tail; - __u32 qlen; - spinlock_t lock; +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 gnet_stats_basic_sync { - u64_stats_t bytes; - u64_stats_t packets; - struct u64_stats_sync syncp; +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 gnet_stats_queue { - __u32 qlen; - __u32 backlog; - __u32 drops; - __u32 requeues; - __u32 overlimits; +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 Qdisc_ops; +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 qdisc_size_table; +struct ifla_vf_guid { + __u32 vf; + __u64 guid; +}; -struct net_rate_estimator; +struct ndmsg { + __u8 ndm_family; + __u8 ndm_pad1; + __u16 ndm_pad2; + __s32 ndm_ifindex; + __u16 ndm_state; + __u8 ndm_flags; + __u8 ndm_type; +}; -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; - spinlock_t busylock; - spinlock_t seqlock; - struct callback_head rcu; - netdevice_tracker dev_tracker; - long privdata[0]; +struct nlmsghdr { + __u32 nlmsg_len; + __u16 nlmsg_type; + __u16 nlmsg_flags; + __u32 nlmsg_seq; + __u32 nlmsg_pid; }; -struct Qdisc_class_ops; +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 gnet_dump; +struct netdev_phys_item_id { + unsigned char id[32]; + unsigned char id_len; +}; -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; +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 tcmsg; +struct bpf_offloaded_map; -struct qdisc_walker; +struct xsk_buff_pool; -struct tcf_block; +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 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 net_device_path_ctx { + const struct net_device *dev; + u8 daddr[6]; + int num_vlans; + struct { + u16 id; + __be16 proto; + } vlan[2]; }; -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; +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 flow_block { - struct list_head cb_list; +struct net_device_path { + enum net_device_path_type type; + const struct net_device *dev; + union { + struct { + u16 id; + __be16 proto; + u8 h_dest[6]; + } encap; + struct { + enum { + DEV_PATH_BR_VLAN_KEEP = 0, + DEV_PATH_BR_VLAN_TAG = 1, + DEV_PATH_BR_VLAN_UNTAG = 2, + DEV_PATH_BR_VLAN_UNTAG_HW = 3, + } vlan_mode; + u16 vlan_id; + __be16 vlan_proto; + } bridge; + struct { + int port; + u16 proto; + } dsa; + struct { + u8 wdma_idx; + u8 queue; + u16 wcid; + u8 bss; + u8 amsdu; + } mtk_wdma; + }; }; -struct tcf_chain; - -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 skb_shared_hwtstamps { + union { + ktime_t hwtstamp; + void *netdev_data; + }; }; -struct tcf_proto; +enum hwtstamp_source { + HWTSTAMP_SOURCE_NETDEV = 0, + HWTSTAMP_SOURCE_PHYLIB = 1, +}; -struct tcf_proto_ops; +struct kernel_hwtstamp_config { + int flags; + int tx_type; + int rx_filter; + struct ifreq *ifr; + bool copied_to_user; + enum hwtstamp_source source; +}; -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; +enum xdp_rss_hash_type { + XDP_RSS_L3_IPV4 = 1, + XDP_RSS_L3_IPV6 = 2, + XDP_RSS_L3_DYNHDR = 4, + XDP_RSS_L4 = 8, + XDP_RSS_L4_TCP = 16, + XDP_RSS_L4_UDP = 32, + XDP_RSS_L4_SCTP = 64, + XDP_RSS_L4_IPSEC = 128, + XDP_RSS_TYPE_NONE = 0, + XDP_RSS_TYPE_L2 = 0, + XDP_RSS_TYPE_L3_IPV4 = 1, + XDP_RSS_TYPE_L3_IPV6 = 2, + XDP_RSS_TYPE_L3_IPV4_OPT = 5, + XDP_RSS_TYPE_L3_IPV6_EX = 6, + XDP_RSS_TYPE_L4_ANY = 8, + XDP_RSS_TYPE_L4_IPV4_TCP = 25, + XDP_RSS_TYPE_L4_IPV4_UDP = 41, + XDP_RSS_TYPE_L4_IPV4_SCTP = 73, + XDP_RSS_TYPE_L4_IPV4_IPSEC = 137, + XDP_RSS_TYPE_L4_IPV6_TCP = 26, + XDP_RSS_TYPE_L4_IPV6_UDP = 42, + XDP_RSS_TYPE_L4_IPV6_SCTP = 74, + XDP_RSS_TYPE_L4_IPV6_IPSEC = 138, + XDP_RSS_TYPE_L4_IPV6_TCP_EX = 30, + XDP_RSS_TYPE_L4_IPV6_UDP_EX = 46, + XDP_RSS_TYPE_L4_IPV6_SCTP_EX = 78, }; -struct tcf_result; +struct xdp_md; -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 xdp_metadata_ops { + int (*xmo_rx_timestamp)(const struct xdp_md *, u64 *); + int (*xmo_rx_hash)(const struct xdp_md *, u32 *, enum xdp_rss_hash_type *); }; -struct tcf_result { - union { - struct { - unsigned long class; - u32 classid; - }; - const struct tcf_proto *goto_tp; - }; +struct net_device_core_stats { + unsigned long rx_dropped; + unsigned long tx_dropped; + unsigned long rx_nohandler; + unsigned long rx_otherhost_dropped; }; -typedef int flow_setup_cb_t(enum tc_setup_type, void *, void *); +enum ethtool_phys_id_state { + ETHTOOL_ID_INACTIVE = 0, + ETHTOOL_ID_ACTIVE = 1, + ETHTOOL_ID_ON = 2, + ETHTOOL_ID_OFF = 3, +}; -struct tcf_walker; +struct ethtool_drvinfo; -struct tcf_exts; +struct ethtool_regs; -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 ethtool_wolinfo; -struct tc_stats { - __u64 bytes; - __u32 packets; - __u32 drops; - __u32 overlimits; - __u32 bps; - __u32 pps; - __u32 qlen; - __u32 backlog; -}; +struct ethtool_link_ext_state_info; -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 ethtool_link_ext_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 ethtool_eeprom; -struct qdisc_size_table { - struct callback_head rcu; - struct list_head list; - struct tc_sizespec szopts; - int refcnt; - u16 data[0]; -}; +struct ethtool_coalesce; -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 kernel_ethtool_coalesce; -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 ethtool_ringparam; -struct xps_map; +struct kernel_ethtool_ringparam; -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 ethtool_pause_stats; -struct xps_map { - unsigned int len; - unsigned int alloc_len; - struct callback_head rcu; - u16 queues[0]; -}; +struct ethtool_pauseparam; -struct pcpu_lstats { - u64_stats_t packets; - u64_stats_t bytes; - struct u64_stats_sync syncp; -}; +struct ethtool_test; -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 ethtool_stats; -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 ethtool_rxnfc; -struct netprio_map { - struct callback_head rcu; - u32 priomap_len; - u32 priomap[0]; -}; +struct ethtool_flash; -struct udp_tunnel_nic_table_info { - unsigned int n_entries; - unsigned int tunnel_types; -}; +struct ethtool_channels; -struct udp_tunnel_info; +struct ethtool_dump; -struct udp_tunnel_nic_shared; +struct ethtool_ts_info; -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 ethtool_modinfo; -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 ethtool_eee; -struct gro_list { - struct list_head list; - int count; -}; +struct ethtool_tunable; -struct napi_struct { - struct list_head poll_list; - unsigned long state; - int weight; - int defer_hard_irqs_count; - unsigned long gro_bitmask; - int (*poll)(struct napi_struct *, int); - int list_owner; - struct net_device *dev; - struct gro_list gro_hash[8]; - struct sk_buff *skb; - struct list_head rx_list; - int rx_count; - unsigned int napi_id; - struct hrtimer timer; - struct task_struct *thread; - struct list_head dev_list; - struct hlist_node napi_hash_node; -}; +struct ethtool_link_ksettings; -struct sock_fprog_kern { - u16 len; - struct sock_filter *filter; -}; +struct ethtool_fec_stats; -struct perf_event_mmap_page; +struct ethtool_fecparam; -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 ethtool_module_eeprom; -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 ethtool_eth_phy_stats; -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 ethtool_eth_mac_stats; -struct swevent_hlist; +struct ethtool_eth_ctrl_stats; -struct swevent_htable { - struct swevent_hlist *swevent_hlist; - struct mutex hlist_mutex; - int hlist_refcount; - int recursion[4]; -}; +struct ethtool_rmon_stats; -struct swevent_hlist { - struct hlist_head heads[256]; - struct callback_head callback_head; -}; +struct ethtool_rmon_hist_range; -struct min_heap_callbacks { - int elem_size; - bool (*less)(const void *, const void *); - void (*swp)(void *, void *); -}; +struct ethtool_module_power_mode_params; -struct pmu_event_list { - raw_spinlock_t lock; - struct list_head list; -}; +struct ethtool_mm_state; -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 ethtool_mm_cfg; -struct match_token { - int token; - const char *pattern; -}; +struct ethtool_mm_stats; -enum event_type_t { - EVENT_FLEXIBLE = 1, - EVENT_PINNED = 2, - EVENT_TIME = 4, - EVENT_CPU = 8, - EVENT_ALL = 3, +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 *); }; -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, +struct l3mdev_ops { + u32 (*l3mdev_fib_table)(const struct net_device *); + struct sk_buff * (*l3mdev_l3_rcv)(struct net_device *, struct sk_buff *, u16); + struct sk_buff * (*l3mdev_l3_out)(struct net_device *, struct sock *, struct sk_buff *, u16); + struct dst_entry * (*l3mdev_link_scope_lookup)(const struct net_device *, struct flowi6 *); }; -enum cgroup_subsys_id { - cpuset_cgrp_id = 0, - cpu_cgrp_id = 1, - cpuacct_cgrp_id = 2, - memory_cgrp_id = 3, - devices_cgrp_id = 4, - freezer_cgrp_id = 5, - net_cls_cgrp_id = 6, - perf_event_cgrp_id = 7, - net_prio_cgrp_id = 8, - hugetlb_cgrp_id = 9, - pids_cgrp_id = 10, - CGROUP_SUBSYS_COUNT = 11, -}; +struct nd_opt_hdr; -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 ndisc_options; -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, -}; +struct prefix_info; -enum perf_record_ksymbol_type { - PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0, - PERF_RECORD_KSYMBOL_TYPE_BPF = 1, - PERF_RECORD_KSYMBOL_TYPE_OOL = 2, - PERF_RECORD_KSYMBOL_TYPE_MAX = 3, +struct 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); }; -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, +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 *); }; -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, +struct ipv4_devconf { + void *sysctl; + int data[33]; + unsigned long state[1]; }; -enum { - TRACE_EVENT_FL_FILTERED = 1, - TRACE_EVENT_FL_CAP_ANY = 2, - TRACE_EVENT_FL_NO_SET_FILTER = 4, - TRACE_EVENT_FL_IGNORE_ENABLE = 8, - TRACE_EVENT_FL_TRACEPOINT = 16, - TRACE_EVENT_FL_DYNAMIC = 32, - TRACE_EVENT_FL_KPROBE = 64, - TRACE_EVENT_FL_UPROBE = 128, - TRACE_EVENT_FL_EPROBE = 256, - TRACE_EVENT_FL_FPROBE = 512, - TRACE_EVENT_FL_CUSTOM = 1024, +struct 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; }; -enum perf_event_task_context { - perf_invalid_context = -1, - perf_hw_context = 0, - perf_sw_context = 1, - perf_nr_task_contexts = 2, +struct ipv6_stable_secret { + bool initialized; + struct in6_addr secret; }; -enum task_work_notify_mode { - TWA_NONE = 0, - TWA_RESUME = 1, - TWA_SIGNAL = 2, - TWA_SIGNAL_NO_IPI = 3, +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_min_lft; + __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; + __u8 ra_honor_pio_life; + struct ctl_table_header *sysctl_header; }; -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, +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; }; -enum { - CSS_NO_REF = 1, - CSS_ONLINE = 2, - CSS_RELEASED = 4, - CSS_VISIBLE = 8, - CSS_DYING = 16, +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; }; -enum { - __PERCPU_REF_ATOMIC = 1, - __PERCPU_REF_DEAD = 2, - __PERCPU_REF_ATOMIC_DEAD = 3, - __PERCPU_REF_FLAG_BITS = 2, +struct vlan_group { + unsigned int nr_vlan_devs; + struct hlist_node hlist; + struct net_device **vlan_devices_arrays[16]; }; -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, +struct vlan_info { + struct net_device *real_dev; + struct vlan_group grp; + struct list_head vid_list; + unsigned int nr_vids; + struct callback_head rcu; }; -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, +struct bpf_mprog_fp { + struct bpf_prog *prog; }; -enum kmalloc_cache_type { - KMALLOC_NORMAL = 0, - KMALLOC_DMA = 0, - KMALLOC_RECLAIM = 1, - KMALLOC_CGROUP = 2, - NR_KMALLOC_TYPES = 3, +struct bpf_mprog_bundle; + +struct bpf_mprog_entry { + struct bpf_mprog_fp fp_items[64]; + struct bpf_mprog_bundle *parent; }; -enum perf_probe_config { - PERF_PROBE_CONFIG_IS_RETPROBE = 1, - PERF_UPROBE_REF_CTR_OFFSET_BITS = 32, - PERF_UPROBE_REF_CTR_OFFSET_SHIFT = 32, +struct dql { + unsigned int num_queued; + unsigned int adj_limit; + unsigned int last_obj_cnt; + 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: 64; + long: 64; }; -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, +struct netdev_queue { + struct net_device *dev; + netdevice_tracker dev_tracker; + struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc; + struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc_sleeping; + struct kobject kobj; + 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; + struct dql dql; }; -enum tk_offsets { - TK_OFFS_REAL = 0, - TK_OFFS_BOOT = 1, - TK_OFFS_TAI = 2, - TK_OFFS_MAX = 3, +struct qdisc_skb_head { + struct sk_buff *head; + struct sk_buff *tail; + __u32 qlen; + spinlock_t lock; }; -enum perf_event_ioc_flags { - PERF_IOC_FLAG_GROUP = 1, +struct gnet_stats_basic_sync { + u64_stats_t bytes; + u64_stats_t packets; + struct u64_stats_sync syncp; }; -enum { - IF_STATE_ACTION = 0, - IF_STATE_SOURCE = 1, - IF_STATE_END = 2, +struct gnet_stats_queue { + __u32 qlen; + __u32 backlog; + __u32 drops; + __u32 requeues; + __u32 overlimits; }; -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, -}; +struct Qdisc_ops; -typedef unsigned int slab_flags_t; +struct qdisc_size_table; -struct perf_pmu_events_attr { - struct device_attribute attr; - u64 id; - const char *event_str; -}; +struct net_rate_estimator; -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 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; + spinlock_t busylock; + spinlock_t seqlock; + struct callback_head rcu; + netdevice_tracker dev_tracker; + long privdata[0]; }; -struct user_regs_struct { - unsigned long pc; - unsigned long ra; - unsigned long sp; - unsigned long gp; - unsigned long tp; - unsigned long t0; - unsigned long t1; - unsigned long t2; - unsigned long s0; - unsigned long s1; - unsigned long a0; - unsigned long a1; - unsigned long a2; - unsigned long a3; - unsigned long a4; - unsigned long a5; - unsigned long a6; - unsigned long a7; - unsigned long s2; - unsigned long s3; - unsigned long s4; - unsigned long s5; - unsigned long s6; - unsigned long s7; - unsigned long s8; - unsigned long s9; - unsigned long s10; - unsigned long s11; - unsigned long t3; - unsigned long t4; - unsigned long t5; - unsigned long t6; +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 maple_enode; - -typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *); +struct xps_map; -struct perf_event_header { - __u32 type; - __u16 misc; - __u16 size; +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 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; +struct xps_map { + unsigned int len; + unsigned int alloc_len; + struct callback_head rcu; + u16 queues[0]; }; -struct mem_section_usage; - -struct mem_section { - unsigned long section_mem_map; - struct mem_section_usage *usage; +struct pcpu_lstats { + u64_stats_t packets; + u64_stats_t bytes; + struct u64_stats_sync syncp; }; -struct mem_section_usage { - unsigned long subsection_map[1]; - unsigned long pageblock_flags[0]; +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; }; -typedef void perf_iterate_f(struct perf_event *, void *); - -struct stop_event_data { - struct perf_event *event; - unsigned int restart; +struct pcpu_dstats { + u64 rx_packets; + u64 rx_bytes; + u64 rx_drops; + u64 tx_packets; + u64 tx_bytes; + u64 tx_drops; + struct u64_stats_sync syncp; + long: 64; + long: 64; }; -typedef int (*remote_function_f)(void *); - -struct remote_function_call { - struct task_struct *p; - remote_function_f func; - void *info; - int ret; +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 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 netprio_map { + struct callback_head rcu; + u32 priomap_len; + u32 priomap[0]; }; -struct perf_ns_link_info { - __u64 dev; - __u64 ino; +struct udp_tunnel_nic_table_info { + unsigned int n_entries; + unsigned int tunnel_types; }; -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 udp_tunnel_info; -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 udp_tunnel_nic_shared; -struct perf_aux_event { - struct perf_event_header header; - u64 offset; - u64 size; - u64 flags; +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 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 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 perf_aux_event___2 { - struct perf_event_header header; - u64 hw_id; -}; +typedef enum { + SS_FREE = 0, + SS_UNCONNECTED = 1, + SS_CONNECTING = 2, + SS_CONNECTED = 3, + SS_DISCONNECTING = 4, +} socket_state; -struct __group_key { - int cpu; - struct pmu *pmu; - struct cgroup *cgroup; +struct socket_wq { + wait_queue_head_t wait; + struct fasync_struct *fasync_list; + unsigned long flags; + struct callback_head rcu; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct fd { +struct proto_ops; + +struct socket { + socket_state state; + short type; + unsigned long flags; struct file *file; - unsigned int flags; + struct sock *sk; + const struct proto_ops *ops; + long: 64; + long: 64; + long: 64; + struct socket_wq wq; }; -typedef void (*task_work_func_t)(struct callback_head *); - -struct wait_bit_key { - void *flags; - int bit_nr; - unsigned long timeout; -}; +typedef struct { + size_t written; + size_t count; + union { + char __attribute__((btf_type_tag("user"))) *buf; + void *data; + } arg; + int error; +} read_descriptor_t; -struct wait_bit_queue_entry { - struct wait_bit_key key; - struct wait_queue_entry wq_entry; -}; +typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t); -struct perf_cgroup_event { - char *path; - int path_size; - struct { - struct perf_event_header header; - u64 id; - char path[0]; - } event_id; -}; +typedef int (*skb_read_actor_t)(struct sock *, struct sk_buff *); -struct min_heap { - void *data; - int nr; - int size; +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 (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*splice_eof)(struct socket *); + int (*set_peek_off)(struct sock *, int); + int (*peek_len)(struct socket *); + int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t); + int (*read_skb)(struct sock *, skb_read_actor_t); + int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); + int (*set_rcvlowat)(struct sock *, int); }; -struct perf_aux_event___3 { - struct perf_event_header header; - u32 pid; - u32 tid; +struct sk_filter { + refcount_t refcnt; + struct callback_head rcu; + struct bpf_prog *prog; }; -struct perf_read_event { - struct perf_event_header header; - u32 pid; - u32 tid; +struct xfrm_mark { + __u32 v; + __u32 m; }; -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 struct poll_table_struct poll_table; - -typedef struct { - char *from; - char *to; -} substring_t; - -struct maple_alloc; +typedef union { + __be32 a4; + __be32 a6[4]; + struct in6_addr in6; +} xfrm_address_t; -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 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 vma_iterator { - struct ma_state mas; +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 maple_alloc { - unsigned long total; - unsigned char node_count; - unsigned int request_count; - struct maple_alloc *slot[30]; +struct xfrm_lifetime_cur { + __u64 bytes; + __u64 packets; + __u64 add_time; + __u64 use_time; }; -struct remote_output { - struct perf_buffer *rb; - int err; +struct xfrm_policy_walk_entry { + struct list_head all; + u8 dead; }; -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 xfrm_policy_queue { + struct sk_buff_head hold_queue; + struct timer_list hold_timer; + unsigned long timeout; }; -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 xfrm_id { + xfrm_address_t daddr; + __be32 spi; + __u8 proto; }; -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 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 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 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; + u8 flags: 2; }; -typedef struct user_regs_struct bpf_user_pt_regs_t; +struct xfrm_sec_ctx; -struct bpf_perf_event_data_kern { - bpf_user_pt_regs_t *regs; - struct perf_sample_data *data; - struct perf_event *event; +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; }; -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 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 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; +struct __kernel_sockaddr_storage { union { - struct hlist_node mnt_mp_list; - struct hlist_node mnt_umount; + struct { + __kernel_sa_family_t ss_family; + char __data[126]; + }; + void *__align; }; - 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; +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, }; -struct mountpoint { - struct hlist_node m_hash; - struct dentry *m_dentry; - struct hlist_head m_list; - int m_count; +enum skb_drop_reason { + SKB_NOT_DROPPED_YET = 0, + SKB_CONSUMED = 1, + SKB_DROP_REASON_NOT_SPECIFIED = 2, + SKB_DROP_REASON_NO_SOCKET = 3, + SKB_DROP_REASON_PKT_TOO_SMALL = 4, + SKB_DROP_REASON_TCP_CSUM = 5, + SKB_DROP_REASON_SOCKET_FILTER = 6, + SKB_DROP_REASON_UDP_CSUM = 7, + SKB_DROP_REASON_NETFILTER_DROP = 8, + SKB_DROP_REASON_OTHERHOST = 9, + SKB_DROP_REASON_IP_CSUM = 10, + SKB_DROP_REASON_IP_INHDR = 11, + SKB_DROP_REASON_IP_RPFILTER = 12, + SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST = 13, + SKB_DROP_REASON_XFRM_POLICY = 14, + SKB_DROP_REASON_IP_NOPROTO = 15, + SKB_DROP_REASON_SOCKET_RCVBUFF = 16, + SKB_DROP_REASON_PROTO_MEM = 17, + SKB_DROP_REASON_TCP_AUTH_HDR = 18, + SKB_DROP_REASON_TCP_MD5NOTFOUND = 19, + SKB_DROP_REASON_TCP_MD5UNEXPECTED = 20, + SKB_DROP_REASON_TCP_MD5FAILURE = 21, + SKB_DROP_REASON_TCP_AONOTFOUND = 22, + SKB_DROP_REASON_TCP_AOUNEXPECTED = 23, + SKB_DROP_REASON_TCP_AOKEYNOTFOUND = 24, + SKB_DROP_REASON_TCP_AOFAILURE = 25, + SKB_DROP_REASON_SOCKET_BACKLOG = 26, + SKB_DROP_REASON_TCP_FLAGS = 27, + SKB_DROP_REASON_TCP_ZEROWINDOW = 28, + SKB_DROP_REASON_TCP_OLD_DATA = 29, + SKB_DROP_REASON_TCP_OVERWINDOW = 30, + SKB_DROP_REASON_TCP_OFOMERGE = 31, + SKB_DROP_REASON_TCP_RFC7323_PAWS = 32, + SKB_DROP_REASON_TCP_OLD_SEQUENCE = 33, + SKB_DROP_REASON_TCP_INVALID_SEQUENCE = 34, + SKB_DROP_REASON_TCP_RESET = 35, + SKB_DROP_REASON_TCP_INVALID_SYN = 36, + SKB_DROP_REASON_TCP_CLOSE = 37, + SKB_DROP_REASON_TCP_FASTOPEN = 38, + SKB_DROP_REASON_TCP_OLD_ACK = 39, + SKB_DROP_REASON_TCP_TOO_OLD_ACK = 40, + SKB_DROP_REASON_TCP_ACK_UNSENT_DATA = 41, + SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE = 42, + SKB_DROP_REASON_TCP_OFO_DROP = 43, + SKB_DROP_REASON_IP_OUTNOROUTES = 44, + SKB_DROP_REASON_BPF_CGROUP_EGRESS = 45, + SKB_DROP_REASON_IPV6DISABLED = 46, + SKB_DROP_REASON_NEIGH_CREATEFAIL = 47, + SKB_DROP_REASON_NEIGH_FAILED = 48, + SKB_DROP_REASON_NEIGH_QUEUEFULL = 49, + SKB_DROP_REASON_NEIGH_DEAD = 50, + SKB_DROP_REASON_TC_EGRESS = 51, + SKB_DROP_REASON_QDISC_DROP = 52, + SKB_DROP_REASON_CPU_BACKLOG = 53, + SKB_DROP_REASON_XDP = 54, + SKB_DROP_REASON_TC_INGRESS = 55, + SKB_DROP_REASON_UNHANDLED_PROTO = 56, + SKB_DROP_REASON_SKB_CSUM = 57, + SKB_DROP_REASON_SKB_GSO_SEG = 58, + SKB_DROP_REASON_SKB_UCOPY_FAULT = 59, + SKB_DROP_REASON_DEV_HDR = 60, + SKB_DROP_REASON_DEV_READY = 61, + SKB_DROP_REASON_FULL_RING = 62, + SKB_DROP_REASON_NOMEM = 63, + SKB_DROP_REASON_HDR_TRUNC = 64, + SKB_DROP_REASON_TAP_FILTER = 65, + SKB_DROP_REASON_TAP_TXFILTER = 66, + SKB_DROP_REASON_ICMP_CSUM = 67, + SKB_DROP_REASON_INVALID_PROTO = 68, + SKB_DROP_REASON_IP_INADDRERRORS = 69, + SKB_DROP_REASON_IP_INNOROUTES = 70, + SKB_DROP_REASON_PKT_TOO_BIG = 71, + SKB_DROP_REASON_DUP_FRAG = 72, + SKB_DROP_REASON_FRAG_REASM_TIMEOUT = 73, + SKB_DROP_REASON_FRAG_TOO_FAR = 74, + SKB_DROP_REASON_TCP_MINTTL = 75, + SKB_DROP_REASON_IPV6_BAD_EXTHDR = 76, + SKB_DROP_REASON_IPV6_NDISC_FRAG = 77, + SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT = 78, + SKB_DROP_REASON_IPV6_NDISC_BAD_CODE = 79, + SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS = 80, + SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST = 81, + SKB_DROP_REASON_QUEUE_PURGE = 82, + SKB_DROP_REASON_TC_ERROR = 83, + SKB_DROP_REASON_MAX = 84, + SKB_DROP_REASON_SUBSYS_MASK = 4294901760, }; -struct prepend_buffer { - char *buf; - int len; -}; +struct audit_field; -typedef __builtin_va_list va_list; +struct audit_watch; -struct ida { - struct xarray xa; -}; +struct audit_tree; -struct eventfd_ctx { - struct kref kref; - wait_queue_head_t wqh; - __u64 count; - unsigned int flags; - int id; -}; +struct audit_fsnotify_mark; -enum { - PROC_ENTRY_PERMANENT = 1, +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; }; -typedef int (*proc_write_t)(struct file *, char *, size_t); - -typedef u32 nlink_t; - -struct proc_ops; +struct audit_entry { + struct list_head list; + struct callback_head rcu; + struct audit_krule rule; +}; -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; +struct audit_field { + u32 type; union { - const struct seq_operations *seq_ops; - int (*single_show)(struct seq_file *, void *); + u32 val; + kuid_t uid; + kgid_t gid; + struct { + char *lsm_str; + void *lsm_rule; + }; }; - proc_write_t write; - void *data; - unsigned int state_size; - unsigned int low_ino; - nlink_t nlink; + u32 op; +}; + +struct scm_creds { + u32 pid; 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]; }; -struct timens_offsets { - struct timespec64 monotonic; - struct timespec64 boottime; +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 time_namespace { - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct ns_common ns; - struct timens_offsets offsets; - struct page *vvar_page; - bool frozen_offsets; +struct 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 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); +struct audit_netlink_list { + __u32 portid; + struct net *net; + struct sk_buff_head q; }; -typedef unsigned int tid_t; +struct bpf_map_dev_ops; -struct transaction_chp_stats_s { - unsigned long cs_chp_time; - __u32 cs_forced_to_close; - __u32 cs_written; - __u32 cs_dropped; +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 journal_s; +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 *); +}; -typedef struct journal_s journal_t; +struct ip6_sf_list; -struct journal_head; +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 transaction_s; +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; +}; -typedef struct transaction_s transaction_t; +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 transaction_s { - journal_t *t_journal; - tid_t t_tid; - enum { - T_RUNNING = 0, - T_LOCKED = 1, - T_SWITCH = 2, - T_FLUSH = 3, - T_COMMIT = 4, - T_COMMIT_DFLUSH = 5, - T_COMMIT_JFLUSH = 6, - T_COMMIT_CALLBACK = 7, - T_FINISHED = 8, - } t_state; - unsigned long t_log_start; - int t_nr_buffers; - struct journal_head *t_reserved_list; - struct journal_head *t_buffers; - struct journal_head *t_forget; - struct journal_head *t_checkpoint_list; - struct journal_head *t_shadow_list; - struct list_head t_inode_list; - 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 icmpv6_mib_device { + atomic_long_t mibs[7]; }; -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 icmpv6msg_mib_device { + atomic_long_t mibs[512]; }; -struct transaction_stats_s { - unsigned long ts_tid; - unsigned long ts_requested; - struct transaction_run_stats_s run; +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 *); }; -enum passtype { - PASS_SCAN = 0, - PASS_REVOKE = 1, - PASS_REPLAY = 2, +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 buffer_head; +struct saved_syn { + u32 mac_hdrlen; + u32 network_hdrlen; + u32 tcp_hdrlen; + u8 data[0]; +}; -struct journal_superblock_s; +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 *); +}; -typedef struct journal_superblock_s journal_superblock_t; +enum { + BPF_F_NO_PREALLOC = 1, + BPF_F_NO_COMMON_LRU = 2, + BPF_F_NUMA_NODE = 4, + BPF_F_RDONLY = 8, + BPF_F_WRONLY = 16, + BPF_F_STACK_BUILD_ID = 32, + BPF_F_ZERO_SEED = 64, + BPF_F_RDONLY_PROG = 128, + BPF_F_WRONLY_PROG = 256, + BPF_F_CLONE = 512, + BPF_F_MMAPABLE = 1024, + BPF_F_PRESERVE_ELEMS = 2048, + BPF_F_INNER_MAP = 4096, + BPF_F_LINK = 8192, + BPF_F_PATH_FD = 16384, +}; -struct jbd2_revoke_table_s; +enum { + BPF_ANY = 0, + BPF_NOEXIST = 1, + BPF_EXIST = 2, + BPF_F_LOCK = 4, +}; -struct jbd2_inode; +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 crypto_shash; +struct lpm_trie_node; -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; - 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); - int (*j_bmap)(struct journal_s *, sector_t *); +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: 64; }; -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 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 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 bpf_lpm_trie_key { + __u32 prefixlen; + __u8 data[0]; }; -struct fiemap_extent { - __u64 fe_logical; - __u64 fe_physical; - __u64 fe_length; - __u64 fe_reserved64[2]; - __u32 fe_flags; - __u32 fe_reserved[3]; +struct context_tracking { + atomic_t state; + long dynticks_nesting; + long dynticks_nmi_nesting; }; -struct journal_header_s { - __be32 h_magic; - __be32 h_blocktype; - __be32 h_sequence; +enum ctx_state { + CONTEXT_DISABLED = -1, + CONTEXT_KERNEL = 0, + CONTEXT_IDLE = 1, + CONTEXT_USER = 2, + CONTEXT_GUEST = 3, + CONTEXT_MAX = 4, }; -typedef struct journal_header_s journal_header_t; - -struct journal_superblock_s { - journal_header_t s_header; - __be32 s_blocksize; - __be32 s_maxlen; - __be32 s_first; - __be32 s_sequence; - __be32 s_start; - __be32 s_errno; - __be32 s_feature_compat; - __be32 s_feature_incompat; - __be32 s_feature_ro_compat; - __u8 s_uuid[16]; - __be32 s_nr_users; - __be32 s_dynsuper; - __be32 s_max_transaction; - __be32 s_max_trans_data; - __u8 s_checksum_type; - __u8 s_padding2[3]; - __be32 s_num_fc_blks; - __be32 s_head; - __u32 s_padding[40]; - __be32 s_checksum; - __u8 s_users[768]; -}; +struct fc_log; -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 p_log { + const char *prefix; + struct fc_log *log; }; -struct crypto_alg; - -struct crypto_tfm { - refcount_t refcnt; - u32 crt_flags; - int node; - void (*exit)(struct crypto_tfm *); - struct crypto_alg *__crt_alg; - long: 64; - long: 64; - long: 64; - long: 64; - void *__crt_ctx[0]; +struct fc_log { + refcount_t usage; + u8 head; + u8 tail; + u8 need_free; + struct module *owner; + char *buffer[8]; }; -struct crypto_shash { - unsigned int descsize; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct crypto_tfm base; +struct posix_acl_entry { + short e_tag; + unsigned short e_perm; + union { + kuid_t e_uid; + kgid_t e_gid; + }; }; -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 posix_acl { + refcount_t a_refcount; + struct callback_head a_rcu; + unsigned int a_count; + struct posix_acl_entry a_entries[0]; }; -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 *); +enum fs_context_purpose { + FS_CONTEXT_FOR_MOUNT = 0, + FS_CONTEXT_FOR_SUBMOUNT = 1, + FS_CONTEXT_FOR_RECONFIGURE = 2, }; -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; +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 crypto_instance; +struct fs_context_operations; -struct crypto_type { - unsigned int (*ctxsize)(struct crypto_alg *, u32, u32); - unsigned int (*extsize)(struct crypto_alg *); - int (*init_tfm)(struct crypto_tfm *); - void (*show)(struct seq_file *, struct crypto_alg *); - int (*report)(struct sk_buff *, struct crypto_alg *); - void (*free)(struct crypto_instance *); - unsigned int type; - unsigned int maskclear; - unsigned int maskset; - unsigned int tfmsize; +struct fs_context { + const struct fs_context_operations *ops; + struct mutex uapi_mutex; + struct file_system_type *fs_type; + void *fs_private; + void *sget_key; + struct dentry *root; + struct user_namespace *user_ns; + struct net *net_ns; + const struct cred *cred; + struct p_log log; + const char *source; + void *security; + void *s_fs_info; + unsigned int sb_flags; + unsigned int sb_flags_mask; + unsigned int s_iflags; + enum fs_context_purpose purpose: 8; + enum fs_context_phase phase: 8; + bool need_free: 1; + bool global: 1; + bool oldapi: 1; + bool exclusive: 1; }; -struct 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 fs_context_operations { + void (*free)(struct fs_context *); + int (*dup)(struct fs_context *, struct fs_context *); + int (*parse_param)(struct fs_context *, struct fs_parameter *); + int (*parse_monolithic)(struct fs_context *, void *); + int (*get_tree)(struct fs_context *); + int (*reconfigure)(struct fs_context *); }; -struct 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 fs_value_type { + fs_value_is_undefined = 0, + fs_value_is_flag = 1, + fs_value_is_string = 2, + fs_value_is_blob = 3, + fs_value_is_filename = 4, + fs_value_is_file = 5, }; -enum ext4_li_mode { - EXT4_LI_MODE_PREFETCH_BBITMAP = 0, - EXT4_LI_MODE_ITABLE = 1, +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; }; -enum req_flag_bits { - __REQ_FAILFAST_DEV = 8, - __REQ_FAILFAST_TRANSPORT = 9, - __REQ_FAILFAST_DRIVER = 10, - __REQ_SYNC = 11, - __REQ_META = 12, - __REQ_PRIO = 13, - __REQ_NOMERGE = 14, - __REQ_IDLE = 15, - __REQ_INTEGRITY = 16, - __REQ_FUA = 17, - __REQ_PREFLUSH = 18, - __REQ_RAHEAD = 19, - __REQ_BACKGROUND = 20, - __REQ_NOWAIT = 21, - __REQ_POLLED = 22, - __REQ_ALLOC_CACHE = 23, - __REQ_SWAP = 24, - __REQ_DRV = 25, - __REQ_FS_PRIVATE = 26, - __REQ_NOUNMAP = 27, - __REQ_NR_BITS = 28, -}; +struct compact_control; -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, +struct capture_control { + struct compact_control *cc; + struct page *page; }; -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 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; }; -typedef __u32 __le32; - -typedef __u16 __le16; +struct pipe_buffer; -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 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; }; -typedef int ext4_grpblk_t; - -typedef unsigned int ext4_group_t; +struct pipe_buf_operations; -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 pipe_buffer { + struct page *page; + unsigned int offset; + unsigned int len; + const struct pipe_buf_operations *ops; + unsigned int flags; + unsigned long private; }; -typedef unsigned long long ext4_fsblk_t; +struct pipe_buf_operations { + int (*confirm)(struct pipe_inode_info *, struct pipe_buffer *); + void (*release)(struct pipe_inode_info *, struct pipe_buffer *); + bool (*try_steal)(struct pipe_inode_info *, struct pipe_buffer *); + bool (*get)(struct pipe_inode_info *, struct pipe_buffer *); +}; -typedef __u32 ext4_lblk_t; +struct kstatfs { + long f_type; + long f_bsize; + u64 f_blocks; + u64 f_bfree; + u64 f_bavail; + u64 f_files; + u64 f_ffree; + __kernel_fsid_t f_fsid; + long f_namelen; + long f_frsize; + long f_flags; + long f_spare[4]; +}; -struct extent_status; +struct fid { + union { + struct { + u32 ino; + u32 gen; + u32 parent_ino; + u32 parent_gen; + } i32; + struct { + u64 ino; + u32 gen; + } __attribute__((packed)) i64; + struct { + u32 block; + u16 partref; + u16 parent_partref; + u32 generation; + u32 parent_block; + u32 parent_generation; + } udf; + struct { + struct {} __empty_raw; + __u32 raw[0]; + }; + }; +}; -struct ext4_es_tree { - struct rb_root root; - struct extent_status *cache_es; +struct fileattr { + u32 flags; + u32 fsx_xflags; + u32 fsx_extsize; + u32 fsx_nextents; + u32 fsx_projid; + u32 fsx_cowextsize; + bool flags_valid: 1; + bool fsx_valid: 1; }; -struct ext4_pending_tree { - struct rb_root root; +struct fs_parse_result { + bool negated; + union { + bool boolean; + int int_32; + unsigned int uint_32; + u64 uint_64; + }; }; -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; +struct constant_table { + const char *name; + int value; +}; + +enum sgp_type { + SGP_READ = 0, + SGP_NOALLOC = 1, + SGP_CACHE = 2, + SGP_WRITE = 3, + SGP_FALLOC = 4, +}; + +enum mapping_flags { + AS_EIO = 0, + AS_ENOSPC = 1, + AS_MM_ALL_LOCKS = 2, + AS_UNEVICTABLE = 3, + AS_EXITING = 4, + AS_NO_WRITEBACK_TAGS = 5, + AS_LARGE_FOLIO_SUPPORT = 6, + AS_RELEASE_ALWAYS = 7, + AS_STABLE_WRITES = 8, +}; + +enum vm_event_item { + PGPGIN = 0, + PGPGOUT = 1, + PSWPIN = 2, + PSWPOUT = 3, + PGALLOC_DMA32 = 4, + PGALLOC_NORMAL = 5, + PGALLOC_MOVABLE = 6, + ALLOCSTALL_DMA32 = 7, + ALLOCSTALL_NORMAL = 8, + ALLOCSTALL_MOVABLE = 9, + PGSCAN_SKIP_DMA32 = 10, + PGSCAN_SKIP_NORMAL = 11, + PGSCAN_SKIP_MOVABLE = 12, + PGFREE = 13, + PGACTIVATE = 14, + PGDEACTIVATE = 15, + PGLAZYFREE = 16, + PGFAULT = 17, + PGMAJFAULT = 18, + PGLAZYFREED = 19, + PGREFILL = 20, + PGREUSE = 21, + PGSTEAL_KSWAPD = 22, + PGSTEAL_DIRECT = 23, + PGSTEAL_KHUGEPAGED = 24, + PGDEMOTE_KSWAPD = 25, + PGDEMOTE_DIRECT = 26, + PGDEMOTE_KHUGEPAGED = 27, + PGSCAN_KSWAPD = 28, + PGSCAN_DIRECT = 29, + PGSCAN_KHUGEPAGED = 30, + PGSCAN_DIRECT_THROTTLE = 31, + PGSCAN_ANON = 32, + PGSCAN_FILE = 33, + PGSTEAL_ANON = 34, + PGSTEAL_FILE = 35, + PGINODESTEAL = 36, + SLABS_SCANNED = 37, + KSWAPD_INODESTEAL = 38, + KSWAPD_LOW_WMARK_HIT_QUICKLY = 39, + KSWAPD_HIGH_WMARK_HIT_QUICKLY = 40, + PAGEOUTRUN = 41, + PGROTATED = 42, + DROP_PAGECACHE = 43, + DROP_SLAB = 44, + OOM_KILL = 45, + PGMIGRATE_SUCCESS = 46, + PGMIGRATE_FAIL = 47, + THP_MIGRATION_SUCCESS = 48, + THP_MIGRATION_FAIL = 49, + THP_MIGRATION_SPLIT = 50, + COMPACTMIGRATE_SCANNED = 51, + COMPACTFREE_SCANNED = 52, + COMPACTISOLATED = 53, + COMPACTSTALL = 54, + COMPACTFAIL = 55, + COMPACTSUCCESS = 56, + KCOMPACTD_WAKE = 57, + KCOMPACTD_MIGRATE_SCANNED = 58, + KCOMPACTD_FREE_SCANNED = 59, + HTLB_BUDDY_PGALLOC = 60, + HTLB_BUDDY_PGALLOC_FAIL = 61, + UNEVICTABLE_PGCULLED = 62, + UNEVICTABLE_PGSCANNED = 63, + UNEVICTABLE_PGRESCUED = 64, + UNEVICTABLE_PGMLOCKED = 65, + UNEVICTABLE_PGMUNLOCKED = 66, + UNEVICTABLE_PGCLEARED = 67, + UNEVICTABLE_PGSTRANDED = 68, + BALLOON_INFLATE = 69, + BALLOON_DEFLATE = 70, + BALLOON_MIGRATE = 71, + SWAP_RA = 72, + SWAP_RA_HIT = 73, + NR_VM_EVENT_ITEMS = 74, +}; + +enum { + __PERCPU_REF_ATOMIC = 1, + __PERCPU_REF_DEAD = 2, + __PERCPU_REF_ATOMIC_DEAD = 3, + __PERCPU_REF_FLAG_BITS = 2, +}; + +enum positive_aop_returns { + AOP_WRITEPAGE_ACTIVATE = 524288, + AOP_TRUNCATED_PAGE = 524289, +}; + +enum shmem_param { + Opt_gid = 0, + Opt_huge = 1, + Opt_mode = 2, + Opt_mpol = 3, + Opt_nr_blocks = 4, + Opt_nr_inodes = 5, + Opt_size = 6, + Opt_uid = 7, + Opt_inode32 = 8, + Opt_inode64 = 9, + Opt_noswap = 10, + Opt_quota = 11, + Opt_usrquota = 12, + Opt_grpquota = 13, + Opt_usrquota_block_hardlimit = 14, + Opt_usrquota_inode_hardlimit = 15, + Opt_grpquota_block_hardlimit = 16, + Opt_grpquota_inode_hardlimit = 17, +}; + +enum fid_type { + FILEID_ROOT = 0, + FILEID_INO32_GEN = 1, + FILEID_INO32_GEN_PARENT = 2, + FILEID_BTRFS_WITHOUT_PARENT = 77, + FILEID_BTRFS_WITH_PARENT = 78, + FILEID_BTRFS_WITH_PARENT_ROOT = 79, + FILEID_UDF_WITHOUT_PARENT = 81, + FILEID_UDF_WITH_PARENT = 82, + FILEID_NILFS_WITHOUT_PARENT = 97, + FILEID_NILFS_WITH_PARENT = 98, + FILEID_FAT_WITHOUT_PARENT = 113, + FILEID_FAT_WITH_PARENT = 114, + FILEID_INO64_GEN = 129, + FILEID_INO64_GEN_PARENT = 130, + FILEID_LUSTRE = 151, + FILEID_BCACHEFS_WITHOUT_PARENT = 177, + FILEID_BCACHEFS_WITH_PARENT = 178, + FILEID_KERNFS = 254, + FILEID_INVALID = 255, +}; + +enum iter_type { + ITER_UBUF = 0, + ITER_IOVEC = 1, + ITER_BVEC = 2, + ITER_KVEC = 3, + ITER_XARRAY = 4, + ITER_DISCARD = 5, +}; + +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 i_orphan; - unsigned int i_orphan_idx; + struct list_head private_list; + struct callback_head callback_head; + }; + void __attribute__((btf_type_tag("rcu"))) *slots[64]; + union { + unsigned long tags[3]; + unsigned long marks[3]; + }; +}; + +struct 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; + union { + struct offset_ctx dir_offsets; + struct { + struct list_head shrinklist; + struct list_head swaplist; + }; }; - struct list_head i_fc_dilist; - struct list_head i_fc_list; - ext4_lblk_t i_fc_lblk_start; - ext4_lblk_t i_fc_lblk_len; - atomic_t i_fc_updates; - wait_queue_head_t i_fc_wait; - struct mutex i_fc_lock; - loff_t i_disksize; - struct rw_semaphore i_data_sem; - struct inode vfs_inode; - struct jbd2_inode *jinode; - spinlock_t i_raw_lock; struct timespec64 i_crtime; - atomic_t i_prealloc_active; - struct rb_root i_prealloc_node; - rwlock_t i_prealloc_lock; - struct ext4_es_tree i_es_tree; - rwlock_t i_es_lock; - struct list_head i_es_list; - unsigned int i_es_all_nr; - unsigned int i_es_shk_nr; - ext4_lblk_t i_es_shrink_lblk; - ext4_group_t i_last_alloc_group; - unsigned int i_reserved_data_blocks; - struct ext4_pending_tree i_pending_tree; - __u16 i_extra_isize; - u16 i_inline_off; - u16 i_inline_size; - spinlock_t i_completed_io_lock; - struct list_head i_rsv_conversion_list; - struct work_struct i_rsv_conversion_work; - atomic_t i_unwritten; - spinlock_t i_block_reservation_lock; - tid_t i_sync_tid; - tid_t i_datasync_tid; - __u32 i_csum_seed; - kprojid_t i_projid; + struct shared_policy policy; + struct simple_xattrs xattrs; + unsigned long fallocend; + unsigned int fsflags; + atomic_t stop_eviction; + struct inode vfs_inode; }; -struct extent_status { - struct rb_node rb_node; - ext4_lblk_t es_lblk; - ext4_lblk_t es_len; - ext4_fsblk_t es_pblk; +typedef unsigned int xa_mark_t; + +typedef __kernel_ulong_t ino_t; + +struct shmem_quota_limits { + qsize_t usrquota_bhardlimit; + qsize_t usrquota_ihardlimit; + qsize_t grpquota_bhardlimit; + qsize_t grpquota_ihardlimit; }; -struct ext4_orphan_block; +struct mempolicy; -struct ext4_orphan_info { - int of_blocks; - __u32 of_csum_seed; - struct ext4_orphan_block *of_binfo; +struct shmem_sb_info { + unsigned long max_blocks; + struct percpu_counter used_blocks; + unsigned long max_inodes; + unsigned long free_ispace; + raw_spinlock_t stat_lock; + umode_t mode; + unsigned char huge; + kuid_t uid; + kgid_t gid; + bool full_inums; + bool noswap; + ino_t next_ino; + ino_t __attribute__((btf_type_tag("percpu"))) *ino_batch; + struct mempolicy *mpol; + spinlock_t shrinklist_lock; + struct list_head shrinklist; + unsigned long shrinklist_len; + struct shmem_quota_limits qlimits; }; -struct 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 mempolicy {}; + +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 ext4_journal_trigger { - struct jbd2_buffer_trigger_type tr_triggers; - struct super_block *sb; +struct folio_batch { + unsigned char nr; + bool percpu_pvec_drained; + struct folio *folios[15]; }; -struct fscrypt_dummy_policy {}; +struct wait_bit_key { + void *flags; + int bit_nr; + unsigned long timeout; +}; -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 wait_bit_queue_entry { + struct wait_bit_key key; + struct wait_queue_entry wq_entry; }; -struct ext4_fc_alloc_region; +typedef __u64 __le64; -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 simple_xattr { + struct rb_node rb_node; + char *name; + size_t size; + char value[0]; }; -struct ext4_super_block; +struct xattr; -struct blockgroup_lock; +typedef int (*initxattrs)(struct inode *, const struct xattr *, void *); -struct ext4_system_blocks; +struct xattr { + const char *name; + void *value; + size_t value_len; +}; -struct ext4_locality_group; +struct shmem_falloc { + wait_queue_head_t *waitq; + unsigned long start; + unsigned long next; + unsigned long nr_falloced; + unsigned long nr_unswapped; +}; -struct flex_groups; +struct shmem_options { + unsigned long long blocks; + unsigned long long inodes; + struct mempolicy *mpol; + kuid_t uid; + kgid_t gid; + umode_t mode; + bool full_inums; + int huge; + int seen; + bool noswap; + unsigned short quota_types; + struct shmem_quota_limits qlimits; +}; -struct ext4_li_request; +typedef unsigned int isolate_mode_t; -struct mb_cache; +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 *); +}; -struct dax_device; +struct balloon_dev_info { + unsigned long isolated_pages; + spinlock_t pages_lock; + struct list_head pages; + int (*migratepage)(struct balloon_dev_info *, struct page *, struct page *, enum migrate_mode); +}; -struct ext4_sb_info { - unsigned long s_desc_size; - unsigned long s_inodes_per_block; - unsigned long s_blocks_per_group; - unsigned long s_clusters_per_group; - unsigned long s_inodes_per_group; - unsigned long s_itb_per_group; - unsigned long s_gdb_count; - unsigned long s_desc_per_block; - ext4_group_t s_groups_count; - ext4_group_t s_blockfile_groups; - unsigned long s_overhead; - unsigned int s_cluster_ratio; - unsigned int s_cluster_bits; - loff_t s_bitmap_maxbytes; - struct buffer_head *s_sbh; - struct ext4_super_block *s_es; - struct buffer_head * __attribute__((btf_type_tag("rcu"))) *s_group_desc; - unsigned int s_mount_opt; - unsigned int s_mount_opt2; - unsigned long s_mount_flags; - unsigned int s_def_mount_opt; - unsigned int s_def_mount_opt2; - ext4_fsblk_t s_sb_block; - atomic64_t s_resv_clusters; - kuid_t s_resuid; - kgid_t s_resgid; - unsigned short s_mount_state; - unsigned short s_pad; - int s_addr_per_block_bits; - int s_desc_per_block_bits; - int s_inode_size; - int s_first_ino; - unsigned int s_inode_readahead_blks; - unsigned int s_inode_goal; - u32 s_hash_seed[4]; - int s_def_hash_version; - int s_hash_unsigned; - struct percpu_counter s_freeclusters_counter; - struct percpu_counter s_freeinodes_counter; - struct percpu_counter s_dirs_counter; - struct percpu_counter s_dirtyclusters_counter; - struct percpu_counter s_sra_exceeded_retry_limit; - struct blockgroup_lock *s_blockgroup_lock; - struct proc_dir_entry *s_proc; - struct kobject s_kobj; - struct completion s_kobj_unregister; - struct super_block *s_sb; - struct buffer_head *s_mmp_bh; - struct journal_s *s_journal; - unsigned long s_ext4_flags; - struct mutex s_orphan_lock; - struct list_head s_orphan; - struct ext4_orphan_info s_orphan_info; - unsigned long s_commit_interval; - u32 s_max_batch_time; - u32 s_min_batch_time; - struct block_device *s_journal_bdev; - 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_max_dir_size_kb; - unsigned long s_mb_last_group; - unsigned long s_mb_last_start; - unsigned int s_mb_prefetch; - unsigned int s_mb_prefetch_limit; - unsigned int s_mb_best_avail_max_trim_order; - atomic_t s_bal_reqs; - atomic_t s_bal_success; - atomic_t s_bal_allocated; - atomic_t s_bal_ex_scanned; - atomic_t s_bal_cX_ex_scanned[5]; - atomic_t s_bal_groups_scanned; - atomic_t s_bal_goals; - atomic_t s_bal_len_goals; - atomic_t s_bal_breaks; - atomic_t s_bal_2orders; - atomic_t s_bal_p2_aligned_bad_suggestions; - atomic_t s_bal_goal_fast_bad_suggestions; - atomic_t s_bal_best_avail_bad_suggestions; - atomic64_t s_bal_cX_groups_considered[5]; - atomic64_t s_bal_cX_hits[5]; - atomic64_t s_bal_cX_failed[5]; - atomic_t s_mb_buddies_generated; - atomic64_t s_mb_generation_time; - atomic_t s_mb_lost_chunks; - atomic_t s_mb_preallocated; - atomic_t s_mb_discarded; - atomic_t s_lock_busy; - struct ext4_locality_group __attribute__((btf_type_tag("percpu"))) *s_locality_groups; - unsigned long s_sectors_written_start; - u64 s_kbytes_written; - unsigned int s_extent_max_zeroout_kb; - unsigned int s_log_groups_per_flex; - struct flex_groups * __attribute__((btf_type_tag("rcu"))) *s_flex_groups; - ext4_group_t s_flex_groups_allocated; - struct workqueue_struct *rsv_conversion_wq; - struct timer_list s_err_report; - struct ext4_li_request *s_li_request; - unsigned int s_li_wait_mult; - struct task_struct *s_mmp_tsk; - unsigned long s_last_trim_minblks; - struct crypto_shash *s_chksum_driver; - __u32 s_csum_seed; - struct shrinker s_es_shrinker; - struct list_head s_es_list; - long s_es_nr_inode; - struct ext4_es_stats s_es_stats; - struct mb_cache *s_ea_block_cache; - struct mb_cache *s_ea_inode_cache; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - 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; -}; +typedef unsigned int blk_mode_t; -typedef __u64 __le64; +struct block_device_operations; -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 timer_rand_state; -struct bgl_lock { - spinlock_t lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; +struct disk_events; -struct blockgroup_lock { - struct bgl_lock locks[128]; -}; +struct cdrom_device_info; -struct ext4_orphan_block { - atomic_t ob_free_entries; - struct buffer_head *ob_bh; -}; +struct badblocks; -struct ext4_system_blocks { - struct rb_root root; - struct callback_head rcu; -}; +struct blk_independent_access_ranges; -struct ext4_locality_group { - struct mutex lg_mutex; - struct list_head lg_prealloc_list[10]; - spinlock_t lg_prealloc_lock; +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; + blk_mode_t open_mode; + struct blk_independent_access_ranges *ia_ranges; }; -struct flex_groups { - atomic64_t free_clusters; - atomic_t free_inodes; - atomic_t used_dirs; -}; +struct blk_zone; -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; -}; +typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); -struct ext4_fc_alloc_region { - ext4_lblk_t lblk; - ext4_fsblk_t pblk; - int ino; - int len; +enum blk_unique_id { + BLK_UID_T10 = 1, + BLK_UID_EUI64 = 2, + BLK_UID_NAA = 3, }; -struct jbd2_journal_handle; - -typedef struct jbd2_journal_handle handle_t; +struct hd_geometry; -struct jbd2_journal_handle { - union { - transaction_t *h_transaction; - journal_t *h_journal; - }; - handle_t *h_rsv_handle; - int h_total_credits; - int h_revoke_credits; - int h_revoke_credits_requested; - int h_ref; - int h_err; - unsigned int h_sync: 1; - unsigned int h_jdata: 1; - unsigned int h_reserved: 1; - unsigned int h_aborted: 1; - unsigned int h_type: 8; - unsigned int h_line_no: 16; - unsigned long h_start_jiffies; - unsigned int h_requested_credits; - unsigned int saved_alloc_context; -}; +struct pr_ops; -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 block_device_operations { + void (*submit_bio)(struct bio *); + int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int); + int (*open)(struct gendisk *, blk_mode_t); + void (*release)(struct gendisk *); + int (*ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); + int (*compat_ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); + unsigned int (*check_events)(struct gendisk *, unsigned int); + void (*unlock_native_capacity)(struct gendisk *); + int (*getgeo)(struct block_device *, struct hd_geometry *); + int (*set_read_only)(struct block_device *, bool); + void (*free_disk)(struct gendisk *); + void (*swap_slot_free_notify)(struct block_device *, unsigned long); + int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *); + char * (*devnode)(struct gendisk *, umode_t *); + int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id); + struct module *owner; + const struct pr_ops *pr_ops; + int (*alternative_gpt_sector)(struct gendisk *, sector_t *); }; -struct fc_log; +struct request; -struct p_log { - const char *prefix; - struct fc_log *log; +struct io_comp_batch { + struct request *req_list; + bool need_ts; + void (*complete)(struct io_comp_batch *); }; -struct fc_log { - refcount_t usage; - u8 head; - u8 tail; - u8 need_free; - struct module *owner; - char *buffer[8]; +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 fs_context_purpose { - FS_CONTEXT_FOR_MOUNT = 0, - FS_CONTEXT_FOR_SUBMOUNT = 1, - FS_CONTEXT_FOR_RECONFIGURE = 2, +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, }; -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 pr_keys; -struct fs_context_operations; +struct pr_held_reservation; -struct fs_context { - const struct fs_context_operations *ops; - struct mutex uapi_mutex; - struct file_system_type *fs_type; - void *fs_private; - void *sget_key; - struct dentry *root; - struct user_namespace *user_ns; - struct net *net_ns; - const struct cred *cred; - struct p_log log; - const char *source; - void *security; - void *s_fs_info; - unsigned int sb_flags; - unsigned int sb_flags_mask; - unsigned int s_iflags; - enum fs_context_purpose purpose: 8; - enum fs_context_phase phase: 8; - bool need_free: 1; - bool global: 1; - bool oldapi: 1; +struct pr_ops { + int (*pr_register)(struct block_device *, u64, u64, u32); + int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32); + int (*pr_release)(struct block_device *, u64, enum pr_type); + int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool); + int (*pr_clear)(struct block_device *, u64); + int (*pr_read_keys)(struct block_device *, struct pr_keys *); + int (*pr_read_reservation)(struct block_device *, struct pr_held_reservation *); }; -struct 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 blk_bounce { + BLK_BOUNCE_NONE = 0, + BLK_BOUNCE_HIGH = 1, }; -enum fs_value_type { - fs_value_is_undefined = 0, - fs_value_is_flag = 1, - fs_value_is_string = 2, - fs_value_is_blob = 3, - fs_value_is_filename = 4, - fs_value_is_file = 5, +enum blk_zoned_model { + BLK_ZONED_NONE = 0, + BLK_ZONED_HA = 1, + BLK_ZONED_HM = 2, }; -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 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 audit_names; +struct elevator_queue; -struct filename { - const char *name; - const char __attribute__((btf_type_tag("user"))) *uptr; - int refcnt; - struct audit_names *aname; - const char iname[0]; -}; +struct blk_queue_stats; -struct fs_parse_result { - bool negated; - union { - bool boolean; - int int_32; - unsigned int uint_32; - u64 uint_64; - }; -}; +struct rq_qos; -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, -}; +struct blk_mq_ops; -enum ramfs_param { - Opt_mode = 0, -}; +struct blk_mq_ctx; -struct ramfs_mount_opts { - umode_t mode; -}; +struct blk_mq_tags; -struct ramfs_fs_info { - struct ramfs_mount_opts mount_opts; -}; +struct blk_trace; -struct posix_acl_entry { - short e_tag; - unsigned short e_perm; - union { - kuid_t e_uid; - kgid_t e_gid; - }; +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; + struct mutex rq_qos_mutex; + 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; + 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 flush_list; + 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; }; -struct posix_acl { - refcount_t a_refcount; - struct callback_head a_rcu; - unsigned int a_count; - struct posix_acl_entry a_entries[0]; +enum blk_eh_timer_return { + BLK_EH_DONE = 0, + BLK_EH_RESET_TIMER = 1, }; -typedef __u64 __addrpair; +struct blk_mq_hw_ctx; -typedef __u32 __portpair; +struct blk_mq_queue_data; -struct hlist_nulls_node { - struct hlist_nulls_node *next; - struct hlist_nulls_node **pprev; +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 proto; +struct blk_mq_ctxs; -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; +struct blk_mq_ctx { + struct { + spinlock_t lock; + struct list_head rq_lists[3]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; + unsigned int cpu; + unsigned short index_hw[3]; + struct blk_mq_hw_ctx *hctxs[3]; + struct request_queue *queue; + struct blk_mq_ctxs *ctxs; + struct kobject kobj; + long: 64; }; -typedef struct { - spinlock_t slock; - int owned; - wait_queue_head_t wq; -} socket_lock_t; +struct rchan; -struct sock_cgroup_data { - struct cgroup *cgroup; - u32 classid; - u16 prioidx; +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; }; -typedef struct {} netns_tracker; - -struct sk_filter; - -struct socket_wq; +struct blk_independent_access_range { + struct kobject kobj; + sector_t sector; + sector_t nr_sectors; +}; -struct xfrm_policy; +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 socket; +struct bdev_handle { + struct block_device *bdev; + void *holder; + blk_mode_t mode; +}; -struct sock_reuseport; +struct partition_meta_info { + char uuid[37]; + u8 volname[64]; +}; -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; - int sk_wait_pending; - 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 blk_plug { + struct request *mq_list; + struct request *cached_rq; + unsigned short nr_ios; + unsigned short rq_count; + bool multiple_queues; + bool has_elevator; + struct list_head cb_list; }; -struct smc_hashinfo; +struct xa_limit { + u32 max; + u32 min; +}; -typedef struct { - union { - void *kernel; - void __attribute__((btf_type_tag("user"))) *user; - }; - bool is_kernel: 1; -} sockptr_t; +enum dentry_d_lock_class { + DENTRY_D_LOCK_NORMAL = 0, + DENTRY_D_LOCK_NESTED = 1, +}; -struct msghdr; +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 sk_psock; +typedef unsigned int fgf_t; -struct request_sock_ops; +struct simple_transaction_argresp { + ssize_t size; + char data[0]; +}; -struct timewait_sock_ops; +struct pseudo_fs_context { + const struct super_operations *ops; + const struct xattr_handler * const *xattr; + const struct dentry_operations *dops; + unsigned long magic; +}; -struct raw_hashinfo; +struct tree_descr { + const char *name; + const struct file_operations *ops; + int mode; +}; -struct proto { - void (*close)(struct sock *, long); - int (*pre_connect)(struct sock *, struct sockaddr *, int); - int (*connect)(struct sock *, struct sockaddr *, int); - int (*disconnect)(struct sock *, int); - struct sock * (*accept)(struct sock *, int, int *, bool); - int (*ioctl)(struct sock *, int, int *); - int (*init)(struct sock *); - void (*destroy)(struct sock *); - void (*shutdown)(struct sock *, int); - int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); - int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); - void (*keepalive)(struct sock *, int); - int (*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 *); - void (*splice_eof)(struct socket *); - int (*bind)(struct sock *, struct sockaddr *, int); - int (*bind_add)(struct sock *, struct sockaddr *, int); - int (*backlog_rcv)(struct sock *, struct sk_buff *); - bool (*bpf_bypass_getsockopt)(int, int); - void (*release_cb)(struct sock *); - int (*hash)(struct sock *); - void (*unhash)(struct sock *); - void (*rehash)(struct sock *); - int (*get_port)(struct sock *, unsigned short); - void (*put_port)(struct sock *); - int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); - unsigned int inuse_idx; - bool (*stream_memory_free)(const struct sock *, int); - bool (*sock_is_readable)(struct sock *); - void (*enter_memory_pressure)(struct sock *); - void (*leave_memory_pressure)(struct sock *); - atomic_long_t *memory_allocated; - int __attribute__((btf_type_tag("percpu"))) *per_cpu_fw_alloc; - struct percpu_counter *sockets_allocated; - unsigned long *memory_pressure; - long *sysctl_mem; - int *sysctl_wmem; - int *sysctl_rmem; - u32 sysctl_wmem_offset; - u32 sysctl_rmem_offset; - int max_header; - bool no_autobind; - struct kmem_cache *slab; - unsigned int obj_size; - unsigned int ipv6_pinfo_offset; - slab_flags_t slab_flags; - unsigned int useroffset; - unsigned int usersize; - unsigned int __attribute__((btf_type_tag("percpu"))) *orphan_count; - struct request_sock_ops *rsk_prot; - struct timewait_sock_ops *twsk_prot; - union { - struct inet_hashinfo *hashinfo; - struct udp_table *udp_table; - struct raw_hashinfo *raw_hash; - struct smc_hashinfo *smc_hash; - } h; - struct module *owner; - char name[32]; - struct list_head node; - int (*diag_destroy)(struct sock *, int); +struct 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; }; -struct ubuf_info; +struct file_handle { + __u32 handle_bytes; + int handle_type; + unsigned char f_handle[0]; +}; -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); +enum fsnotify_obj_type { + FSNOTIFY_OBJ_TYPE_ANY = -1, + FSNOTIFY_OBJ_TYPE_INODE = 0, + FSNOTIFY_OBJ_TYPE_VFSMOUNT = 1, + FSNOTIFY_OBJ_TYPE_SB = 2, + FSNOTIFY_OBJ_TYPE_COUNT = 3, + FSNOTIFY_OBJ_TYPE_DETACHED = 3, }; -struct ubuf_info { - void (*callback)(struct sk_buff *, struct ubuf_info *, bool); +struct fsnotify_group; + +struct fsnotify_mark { + __u32 mask; refcount_t refcnt; - u8 flags; + 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 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; +struct inotify_group_private_data { + spinlock_t idr_lock; + struct idr idr; + struct ucounts *ucounts; +}; + +struct fsnotify_ops; + +struct fsnotify_event; + +struct fsnotify_group { + const struct fsnotify_ops *ops; refcount_t refcnt; - struct callback_head callback_head; - int reachable_time; - u32 qlen; - int data[14]; - unsigned long data_state[1]; + 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 fib_notifier_ops { - int family; +struct fsnotify_iter_info; + +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 mount; + +struct mnt_namespace { + struct ns_common ns; + struct mount *root; 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; + 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 pneigh_entry; +struct mnt_pcp; -struct neigh_statistics; +struct mountpoint; -struct neigh_hash_table; +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 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 mnt_pcp { + int mnt_count; + int mnt_writers; }; -struct pneigh_entry { - struct pneigh_entry *next; - possible_net_t net; - struct net_device *dev; - netdevice_tracker dev_tracker; - u32 flags; - u8 protocol; - u32 key[0]; +struct mountpoint { + struct hlist_node m_hash; + struct dentry *m_dentry; + struct hlist_head m_list; + int m_count; }; -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 fsnotify_iter_info { + struct fsnotify_mark *marks[5]; + struct fsnotify_group *current_group; + unsigned int report_mask; + int srcu_idx; }; -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 fsnotify_event { + struct list_head list; }; -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 inotify_inode_mark { + struct fsnotify_mark fsn_mark; + int wd; }; -struct fib_rule; +struct nfs4_ssc_client_ops; -struct flowi; +struct nfs_ssc_client_ops; -struct fib_lookup_arg; +struct nfs_ssc_client_ops_tbl { + const struct nfs4_ssc_client_ops *ssc_nfs4_ops; + const struct nfs_ssc_client_ops *ssc_nfs_ops; +}; -struct fib_rule_hdr; +struct nfs_fh; -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; -}; +struct nfs4_stateid_struct; -struct fib_kuid_range { - kuid_t start; - kuid_t end; -}; +typedef struct nfs4_stateid_struct nfs4_stateid; -struct fib_rule_port_range { - __u16 start; - __u16 end; +struct nfs4_ssc_client_ops { + struct file * (*sco_open)(struct vfsmount *, struct nfs_fh *, nfs4_stateid *); + void (*sco_close)(struct file *); }; -struct fib_rule { +struct nlm_lockowner; + +struct nfs_lock_info { + u32 state; + struct nlm_lockowner *owner; 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 nfs4_lock_state; + +struct nfs4_lock_info { + struct nfs4_lock_state *owner; }; -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; +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; }; -union flowi_uli { - struct { - __be16 dport; - __be16 sport; - } ports; - struct { - __u8 type; - __u8 code; - } icmpt; - __be32 gre_key; - struct { - __u8 type; - } mht; +struct file_lock_operations { + void (*fl_copy_lock)(struct file_lock *, struct file_lock *); + void (*fl_release_private)(struct file_lock *); }; -struct flowi4 { - struct flowi_common __fl_common; - __be32 saddr; - __be32 daddr; - union flowi_uli uli; +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 flowi6 { - struct flowi_common __fl_common; - struct in6_addr daddr; - struct in6_addr saddr; - __be32 flowlabel; - union flowi_uli uli; - __u32 mp_hash; +struct rpc_timer { + struct list_head list; + unsigned long expires; + struct delayed_work dwork; }; -struct flowi { - union { - struct flowi_common __fl_common; - struct flowi4 ip4; - struct flowi6 ip6; - } u; +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 fib_lookup_arg { - void *lookup_ptr; - const void *lookup_data; - void *result; - struct fib_rule *rule; - u32 table; +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 fib_rule_hdr { - __u8 family; - __u8 dst_len; - __u8 src_len; - __u8 tos; - __u8 table; - __u8 res1; - __u8 res2; - __u8 action; - __u32 flags; +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; }; -struct ip6_sf_list; +struct nfs4_state; -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 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 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 nfs4_state_owner; -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 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 icmpv6_mib_device { - atomic_long_t mibs[7]; -}; +struct nfs_server; -struct icmpv6msg_mib_device { - atomic_long_t mibs[512]; -}; - -typedef enum { - SS_FREE = 0, - SS_UNCONNECTED = 1, - SS_CONNECTING = 2, - SS_CONNECTED = 3, - SS_DISCONNECTING = 4, -} socket_state; - -struct socket_wq { - wait_queue_head_t wait; - struct fasync_struct *fasync_list; - unsigned long flags; - struct callback_head rcu; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct proto_ops; - -struct socket { - socket_state state; - short type; - unsigned long flags; - struct file *file; - struct sock *sk; - const struct proto_ops *ops; - long: 64; - long: 64; - long: 64; - struct socket_wq wq; -}; - -typedef struct { - size_t written; - size_t count; - union { - char __attribute__((btf_type_tag("user"))) *buf; - void *data; - } arg; - int error; -} read_descriptor_t; - -typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t); - -typedef int (*skb_read_actor_t)(struct sock *, struct sk_buff *); - -struct 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 (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); - void (*splice_eof)(struct socket *); - int (*set_peek_off)(struct sock *, int); - int (*peek_len)(struct socket *); - int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t); - int (*read_skb)(struct sock *, skb_read_actor_t); - int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); - int (*set_rcvlowat)(struct sock *, int); -}; - -struct 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 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; - u8 flags: 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; -}; - -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 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 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 nfs_server; - -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 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; }; enum nfs4_change_attr_type { @@ -17045,14 +16036,8 @@ struct nfs_auth_info { rpc_authflavor_t flavors[12]; }; -struct __kernel_sockaddr_storage { - union { - struct { - __kernel_sa_family_t ss_family; - char __data[126]; - }; - void *__align; - }; +struct ida { + struct xarray xa; }; struct nfs_client; @@ -17122,6 +16107,7 @@ struct nfs_server { struct list_head layouts; struct list_head delegations; struct list_head ss_copies; + unsigned long delegation_gen; unsigned long mig_gen; unsigned long mig_status; void (*destroy)(struct nfs_server *); @@ -17307,6 +16293,7 @@ struct rpc_clnt { }; const struct cred *cl_cred; unsigned int cl_max_connect; + struct super_block *pipefs_sb; }; struct rpc_xprt_ops; @@ -17510,6 +16497,10 @@ struct xdr_buf { unsigned int len; }; +struct lwq_node { + struct llist_node node; +}; + struct rpc_rqst { struct rpc_xprt *rq_xprt; struct xdr_buf rq_snd_buf; @@ -17545,7 +16536,7 @@ struct rpc_rqst { u32 rq_bytes_sent; ktime_t rq_xtime; int rq_ntrans; - struct list_head rq_bc_list; + struct lwq_node rq_bc_list; unsigned long rq_bc_pa_state; struct list_head rq_bc_pa_list; }; @@ -17644,6 +16635,7 @@ struct xdr_stream { struct kvec *iov; struct kvec scratch; struct page **page_ptr; + void *page_kaddr; unsigned int nwords; struct rpc_rqst *rqst; }; @@ -17655,6 +16647,12 @@ struct rpc_call_ops { void (*rpc_release)(void *); }; +struct lwq { + spinlock_t lock; + struct llist_node *ready; + struct llist_head new; +}; + struct svc_program; struct svc_stat; @@ -17679,12 +16677,23 @@ struct svc_serv { unsigned int sv_nrpools; struct svc_pool *sv_pools; int (*sv_threadfn)(void *); - struct list_head sv_cb_list; - spinlock_t sv_cb_lock; - wait_queue_head_t sv_cb_waitq; + struct lwq sv_cb_list; bool sv_bc_enabled; }; +enum svc_auth_status { + SVC_GARBAGE = 1, + SVC_SYSERR = 2, + SVC_VALID = 3, + SVC_NEGATIVE = 4, + SVC_OK = 5, + SVC_DROP = 6, + SVC_CLOSE = 7, + SVC_DENIED = 8, + SVC_PENDING = 9, + SVC_COMPLETE = 10, +}; + struct svc_version; struct svc_rqst; @@ -17701,7 +16710,7 @@ struct svc_program { char *pg_name; char *pg_class; struct svc_stat *pg_stats; - int (*pg_authenticate)(struct svc_rqst *); + enum svc_auth_status (*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); }; @@ -17746,12 +16755,6 @@ struct svc_cred { struct gss_api_mech *cr_gss_mech; }; -struct folio_batch { - unsigned char nr; - bool percpu_pvec_drained; - struct folio *folios[15]; -}; - struct cache_deferred_req; struct cache_req { @@ -17759,8 +16762,6 @@ struct cache_req { unsigned long thread_wait; }; -struct svc_cacherep; - struct auth_ops; struct svc_deferred_req; @@ -17769,6 +16770,7 @@ struct auth_domain; struct svc_rqst { struct list_head rq_all; + struct llist_node rq_idle; struct callback_head rq_rcu_head; struct svc_xprt *rq_xprt; struct __kernel_sockaddr_storage rq_addr; @@ -17813,33 +16815,32 @@ struct svc_rqst { 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; + unsigned int rq_status_counter; }; struct svc_pool { unsigned int sp_id; - spinlock_t sp_lock; - struct list_head sp_sockets; - unsigned int sp_nrthreads; + struct lwq sp_xprts; + atomic_t sp_nrthreads; struct list_head sp_all_threads; + struct llist_head sp_idle_threads; + struct percpu_counter sp_messages_arrived; struct percpu_counter sp_sockets_queued; struct percpu_counter sp_threads_woken; - struct percpu_counter sp_threads_timedout; unsigned long sp_flags; - long: 64; }; struct auth_ops { char *name; struct module *owner; int flavour; - int (*accept)(struct svc_rqst *); + enum svc_auth_status (*accept)(struct svc_rqst *); int (*release)(struct svc_rqst *); void (*domain_release)(struct auth_domain *); - int (*set_client)(struct svc_rqst *); + enum svc_auth_status (*set_client)(struct svc_rqst *); }; struct auth_domain { @@ -17975,6 +16976,8 @@ struct xprt_create { struct rpc_xprt_switch *bc_xps; unsigned int flags; struct xprtsec_parms xprtsec; + unsigned long connect_timeout; + unsigned long reconnect_timeout; }; struct rpc_sysfs_xprt_switch; @@ -18031,23 +17034,6 @@ struct rpc_version { unsigned int *counts; }; -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; -}; - struct rpc_sysfs_client { struct kobject kobject; struct net *net; @@ -18057,8 +17043,6 @@ struct rpc_sysfs_client { struct nlmclnt_operations; -struct nfs_fh; - struct nfs_fsinfo; struct nfs_fattr; @@ -18112,7 +17096,7 @@ struct nfs_rpc_ops { 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 (*symlink)(struct inode *, struct dentry *, struct folio *, 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 *); @@ -18297,62 +17281,6 @@ struct nfs_unlinkdata { long timeout; }; -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; -}; - struct nfs_renameargs { struct nfs4_sequence_args seq_args; const struct nfs_fh *old_dir; @@ -18534,23 +17462,21 @@ struct nfs_pgio_header { 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_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 nfs_lock_context { @@ -18577,79 +17503,63 @@ struct nfs_open_context { struct callback_head callback_head; }; -struct pnfs_layout_range { - u32 iomode; - u64 offset; - u64 length; +struct nfs_commitargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + __u64 offset; + __u32 count; + const u32 *bitmask; }; -struct pnfs_layout_hdr; - -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_commitres { + struct nfs4_sequence_res seq_res; + __u32 op_status; + struct nfs_fattr *fattr; + struct nfs_writeverf *verf; + const struct nfs_server *server; }; -enum pnfs_iomode { - IOMODE_READ = 1, - IOMODE_RW = 2, - IOMODE_ANY = 3, -}; +struct nfs_commit_completion_ops; -struct pnfs_layout_hdr { - refcount_t plh_refcount; - atomic_t plh_outstanding; - struct list_head plh_layouts; - struct list_head plh_bulk_destroy; - struct list_head plh_segs; - struct list_head plh_return_segs; - unsigned long plh_block_lgets; - unsigned long plh_retry_timestamp; - unsigned long plh_flags; - nfs4_stateid plh_stateid; - u32 plh_barrier; - u32 plh_return_seq; - enum pnfs_iomode plh_return_iomode; - loff_t plh_lwb; - const struct cred *plh_lc_cred; - struct inode *plh_inode; - struct callback_head plh_rcu; +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_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 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 rpc_task_setup; +struct nfs_mds_commit_info; -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 pnfs_ds_commit_info; -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_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_mds_commit_info { @@ -18667,28 +17577,6 @@ struct pnfs_ds_commit_info { const struct pnfs_commit_ops *ops; }; -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_commit_info; - struct pnfs_commit_ops { void (*setup_ds_info)(struct pnfs_ds_commit_info *, struct pnfs_layout_segment *); void (*release_ds_info)(struct pnfs_ds_commit_info *, struct inode *); @@ -18700,59 +17588,6 @@ struct pnfs_commit_ops { struct nfs_page * (*search_commit_reqs)(struct nfs_commit_info *, struct folio *); }; -struct nfs_commit_completion_ops; - -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_commit_completion_ops { - void (*completion)(struct nfs_commit_data *); - void (*resched_write)(struct nfs_commit_info *, struct nfs_page *); -}; - -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_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_client_initdata { unsigned long init_flags; const char *hostname; @@ -18769,16 +17604,8 @@ struct nfs_client_initdata { const struct rpc_timeout *timeparms; const struct cred *cred; struct xprtsec_parms xprtsec; -}; - -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; + unsigned long connect_timeout; + unsigned long reconnect_timeout; }; struct nfs_seqid; @@ -18887,25069 +17714,26361 @@ struct nfs_iostats { long: 64; }; -enum pnfs_try_status { - PNFS_ATTEMPTED = 0, - PNFS_NOT_ATTEMPTED = 1, - PNFS_TRY_AGAIN = 2, +struct file_lock_context { + spinlock_t flc_lock; + struct list_head flc_flock; + struct list_head flc_posix; + struct list_head flc_lease; }; -struct nfs4_layoutget_res; +struct nfs_ssc_client_ops { + void (*sco_sb_deactive)(struct super_block *); +}; -struct nfs_pageio_ops; +struct kernfs_syscall_ops; -struct nfs4_deviceid_node; +struct kernfs_root { + struct kernfs_node *kn; + unsigned int flags; + struct idr ino_idr; + u32 last_id_lowbits; + u32 id_highbits; + struct kernfs_syscall_ops *syscall_ops; + struct list_head supers; + wait_queue_head_t deactivate_waitq; + struct rw_semaphore kernfs_rwsem; + struct rw_semaphore kernfs_iattr_rwsem; + struct rw_semaphore kernfs_supers_rwsem; +}; -struct pnfs_device; +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 nfs4_layoutreturn_args; +struct kernfs_iattrs { + kuid_t ia_uid; + kgid_t ia_gid; + struct timespec64 ia_atime; + struct timespec64 ia_mtime; + struct timespec64 ia_ctime; + struct simple_xattrs xattrs; + atomic_t nr_user_xattrs; + atomic_t user_xattr_size; +}; -struct nfs4_layoutcommit_data; +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, +}; -struct nfs4_layoutcommit_args; +enum kernfs_node_type { + KERNFS_DIR = 1, + KERNFS_FILE = 2, + KERNFS_LINK = 4, +}; -struct nfs42_layoutstat_args; +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 pnfs_layoutdriver_type { - struct list_head pnfs_tblid; - const u32 id; - const char *name; - struct module *owner; - unsigned int flags; - unsigned int max_deviceinfo_size; - unsigned int max_layoutget_response; - int (*set_layoutdriver)(struct nfs_server *, const struct nfs_fh *); - int (*clear_layoutdriver)(struct nfs_server *); - struct pnfs_layout_hdr * (*alloc_layout_hdr)(struct inode *, gfp_t); - void (*free_layout_hdr)(struct pnfs_layout_hdr *); - struct pnfs_layout_segment * (*alloc_lseg)(struct pnfs_layout_hdr *, struct nfs4_layoutget_res *, gfp_t); - void (*free_lseg)(struct pnfs_layout_segment *); - void (*add_lseg)(struct pnfs_layout_hdr *, struct pnfs_layout_segment *, struct list_head *); - void (*return_range)(struct pnfs_layout_hdr *, struct pnfs_layout_range *); - const struct nfs_pageio_ops *pg_read_ops; - const struct nfs_pageio_ops *pg_write_ops; - struct pnfs_ds_commit_info * (*get_ds_info)(struct inode *); - int (*sync)(struct inode *, bool); - enum pnfs_try_status (*read_pagelist)(struct nfs_pgio_header *); - enum pnfs_try_status (*write_pagelist)(struct nfs_pgio_header *, int); - void (*free_deviceid_node)(struct nfs4_deviceid_node *); - struct nfs4_deviceid_node * (*alloc_deviceid_node)(struct nfs_server *, struct pnfs_device *, gfp_t); - int (*prepare_layoutreturn)(struct nfs4_layoutreturn_args *); - void (*cleanup_layoutcommit)(struct nfs4_layoutcommit_data *); - int (*prepare_layoutcommit)(struct nfs4_layoutcommit_args *); - int (*prepare_layoutstats)(struct nfs42_layoutstat_args *); - void (*cancel_io)(struct pnfs_layout_segment *); +struct kernfs_super_info { + struct super_block *sb; + struct kernfs_root *root; + const void *ns; + struct list_head node; }; -struct nfs4_layoutdriver_data; +struct fiemap_extent; -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 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 nfs4_layoutdriver_data { - struct page **pages; - __u32 pglen; - __u32 len; +struct fiemap_extent { + __u64 fe_logical; + __u64 fe_physical; + __u64 fe_length; + __u64 fe_reserved64[2]; + __u32 fe_flags; + __u32 fe_reserved[3]; }; -struct nfs_pageio_descriptor; - -struct nfs_pgio_mirror; +typedef unsigned int tid_t; -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); +struct transaction_chp_stats_s { + unsigned long cs_chp_time; + __u32 cs_forced_to_close; + __u32 cs_written; + __u32 cs_dropped; }; -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 journal_s; -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; +typedef struct journal_s journal_t; + +struct journal_head; + +struct transaction_s; + +typedef struct transaction_s transaction_t; + +struct transaction_s { + journal_t *t_journal; + tid_t t_tid; + enum { + T_RUNNING = 0, + T_LOCKED = 1, + T_SWITCH = 2, + T_FLUSH = 3, + T_COMMIT = 4, + T_COMMIT_DFLUSH = 5, + T_COMMIT_JFLUSH = 6, + T_COMMIT_CALLBACK = 7, + T_FINISHED = 8, + } t_state; + unsigned long t_log_start; + int t_nr_buffers; + struct journal_head *t_reserved_list; + struct journal_head *t_buffers; + struct journal_head *t_forget; + struct journal_head *t_checkpoint_list; + struct journal_head *t_shadow_list; + struct list_head t_inode_list; + unsigned long t_max_wait; + unsigned long t_start; + unsigned long t_requested; + struct transaction_chp_stats_s t_chp_stats; + atomic_t t_updates; + atomic_t t_outstanding_credits; + atomic_t t_outstanding_revokes; + atomic_t t_handle_count; + transaction_t *t_cpnext; + transaction_t *t_cpprev; + unsigned long t_expires; + ktime_t t_start_time; + unsigned int t_synchronous_commit: 1; + int t_need_data_flush; + struct list_head t_private_list; }; -struct nfs4_deviceid { - char data[16]; +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 nfs4_deviceid_node { - struct hlist_node node; - struct hlist_node tmpnode; - const struct pnfs_layoutdriver_type *ld; - const struct nfs_client *nfs_client; - unsigned long flags; - unsigned long timestamp_unavailable; - struct nfs4_deviceid deviceid; - struct callback_head rcu; - atomic_t ref; +struct transaction_stats_s { + unsigned long ts_tid; + unsigned long ts_requested; + struct transaction_run_stats_s run; }; -struct pnfs_device { - struct nfs4_deviceid dev_id; - unsigned int layout_type; - unsigned int mincount; - unsigned int maxcount; - struct page **pages; - unsigned int pgbase; - unsigned int pglen; - unsigned char nocache: 1; +enum passtype { + PASS_SCAN = 0, + PASS_REVOKE = 1, + PASS_REPLAY = 2, }; -struct nfs4_xdr_opaque_data; +struct buffer_head; -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 journal_superblock_s; -struct nfs4_xdr_opaque_ops; +typedef struct journal_superblock_s journal_superblock_t; -struct nfs4_xdr_opaque_data { - const struct nfs4_xdr_opaque_ops *ops; - void *data; -}; +struct jbd2_revoke_table_s; -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 jbd2_inode; -struct nfs4_layoutcommit_args { - struct nfs4_sequence_args seq_args; - nfs4_stateid stateid; - __u64 lastbytewritten; - struct inode *inode; - const u32 *bitmask; - size_t layoutupdate_len; - struct page *layoutupdate_page; - struct page **layoutupdate_pages; - __be32 *start_p; +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; + 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); + int (*j_bmap)(struct journal_s *, sector_t *); }; -struct nfs4_layoutcommit_res { - struct nfs4_sequence_res seq_res; - struct nfs_fattr *fattr; - const struct nfs_server *server; - int status; +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 nfs4_layoutcommit_data { - struct rpc_task task; - struct nfs_fattr fattr; - struct list_head lseg_list; - const struct cred *cred; - struct inode *inode; - struct nfs4_layoutcommit_args args; - struct nfs4_layoutcommit_res res; +struct journal_header_s { + __be32 h_magic; + __be32 h_blocktype; + __be32 h_sequence; }; -struct nfs42_layoutstat_devinfo; +typedef struct journal_header_s journal_header_t; -struct nfs42_layoutstat_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - struct inode *inode; - nfs4_stateid stateid; - int num_dev; - struct nfs42_layoutstat_devinfo *devinfo; +struct journal_superblock_s { + journal_header_t s_header; + __be32 s_blocksize; + __be32 s_maxlen; + __be32 s_first; + __be32 s_sequence; + __be32 s_start; + __be32 s_errno; + __be32 s_feature_compat; + __be32 s_feature_incompat; + __be32 s_feature_ro_compat; + __u8 s_uuid[16]; + __be32 s_nr_users; + __be32 s_dynsuper; + __be32 s_max_transaction; + __be32 s_max_trans_data; + __u8 s_checksum_type; + __u8 s_padding2[3]; + __be32 s_num_fc_blks; + __be32 s_head; + __u32 s_padding[40]; + __be32 s_checksum; + __u8 s_users[768]; }; -struct nfs42_layoutstat_devinfo { - struct nfs4_deviceid dev_id; - __u64 offset; - __u64 length; - __u64 read_count; - __u64 read_bytes; - __u64 write_count; - __u64 write_bytes; - __u32 layout_type; - struct nfs4_xdr_opaque_data ld_private; +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 file_lock_context { - spinlock_t flc_lock; - struct list_head flc_flock; - struct list_head flc_posix; - struct list_head flc_lease; -}; +struct crypto_alg; -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 crypto_tfm { + refcount_t refcnt; + u32 crt_flags; + int node; + void (*exit)(struct crypto_tfm *); + struct crypto_alg *__crt_alg; + void *__crt_ctx[0]; }; -struct nfs_ssc_client_ops { - void (*sco_sb_deactive)(struct super_block *); +struct crypto_shash { + unsigned int descsize; + struct crypto_tfm base; }; -struct proc_nfs_info { - int flag; - const char *str; - const char *nostr; +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 *); }; -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, +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 *); }; -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, +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; }; -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, +struct crypto_instance; + +struct crypto_type { + unsigned int (*ctxsize)(struct crypto_alg *, u32, u32); + unsigned int (*extsize)(struct crypto_alg *); + int (*init_tfm)(struct crypto_tfm *); + void (*show)(struct seq_file *, struct crypto_alg *); + int (*report)(struct sk_buff *, struct crypto_alg *); + void (*free)(struct crypto_instance *); + unsigned int type; + unsigned int maskclear; + unsigned int maskset; + unsigned int tfmsize; +}; + +struct jbd2_buffer_trigger_type; + +struct journal_head { + struct buffer_head *b_bh; + spinlock_t b_state_lock; + int b_jcount; + unsigned int b_jlist; + unsigned int b_modified; + char *b_frozen_data; + char *b_committed_data; + transaction_t *b_transaction; + transaction_t *b_next_transaction; + struct journal_head *b_tnext; + struct journal_head *b_tprev; + transaction_t *b_cp_transaction; + struct journal_head *b_cpnext; + struct journal_head *b_cpprev; + struct jbd2_buffer_trigger_type *b_triggers; + struct jbd2_buffer_trigger_type *b_frozen_triggers; +}; + +struct jbd2_buffer_trigger_type { + void (*t_frozen)(struct jbd2_buffer_trigger_type *, struct buffer_head *, void *, size_t); + void (*t_abort)(struct jbd2_buffer_trigger_type *, struct buffer_head *); +}; + +enum ext4_li_mode { + EXT4_LI_MODE_PREFETCH_BBITMAP = 0, + EXT4_LI_MODE_ITABLE = 1, }; 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, + EXT4_INODE_SECRM = 0, + EXT4_INODE_UNRM = 1, + EXT4_INODE_COMPR = 2, + EXT4_INODE_SYNC = 3, + EXT4_INODE_IMMUTABLE = 4, + EXT4_INODE_APPEND = 5, + EXT4_INODE_NODUMP = 6, + EXT4_INODE_NOATIME = 7, + EXT4_INODE_DIRTY = 8, + EXT4_INODE_COMPRBLK = 9, + EXT4_INODE_NOCOMPR = 10, + EXT4_INODE_ENCRYPT = 11, + EXT4_INODE_INDEX = 12, + EXT4_INODE_IMAGIC = 13, + EXT4_INODE_JOURNAL_DATA = 14, + EXT4_INODE_NOTAIL = 15, + EXT4_INODE_DIRSYNC = 16, + EXT4_INODE_TOPDIR = 17, + EXT4_INODE_HUGE_FILE = 18, + EXT4_INODE_EXTENTS = 19, + EXT4_INODE_VERITY = 20, + EXT4_INODE_EA_INODE = 21, + EXT4_INODE_DAX = 25, + EXT4_INODE_INLINE_DATA = 28, + EXT4_INODE_PROJINHERIT = 29, + EXT4_INODE_CASEFOLD = 30, + EXT4_INODE_RESERVED = 31, }; -enum 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, +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 nfs4_cached_acl; +typedef __u32 __le32; -struct nfs_delegation; +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 nfs4_xattr_cache; +struct ext4_dir_entry_2 { + __le32 inode; + __le16 rec_len; + __u8 name_len; + __u8 file_type; + char name[255]; +}; -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 { - int cnt; - struct { - u64 start; - u64 end; - } gap[16]; - } *ooo; - 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 nfs4_xattr_cache *xattr_cache; +typedef unsigned long long ext4_fsblk_t; + +typedef unsigned int ext4_group_t; + +typedef __u32 ext4_lblk_t; + +struct extent_status; + +struct ext4_es_tree { + struct rb_root root; + struct extent_status *cache_es; +}; + +struct ext4_pending_tree { + struct rb_root root; +}; + +struct ext4_inode_info { + __le32 i_data[15]; + __u32 i_dtime; + ext4_fsblk_t i_file_acl; + ext4_group_t i_block_group; + ext4_lblk_t i_dir_start_lookup; + unsigned long i_flags; + struct rw_semaphore xattr_sem; union { - struct inode vfs_inode; + struct list_head i_orphan; + unsigned int i_orphan_idx; }; + struct list_head i_fc_dilist; + struct list_head i_fc_list; + ext4_lblk_t i_fc_lblk_start; + ext4_lblk_t i_fc_lblk_len; + atomic_t i_fc_updates; + wait_queue_head_t i_fc_wait; + struct mutex i_fc_lock; + loff_t i_disksize; + struct rw_semaphore i_data_sem; + struct inode vfs_inode; + struct jbd2_inode *jinode; + spinlock_t i_raw_lock; + struct timespec64 i_crtime; + atomic_t i_prealloc_active; + struct rb_root i_prealloc_node; + rwlock_t i_prealloc_lock; + struct ext4_es_tree i_es_tree; + rwlock_t i_es_lock; + struct list_head i_es_list; + unsigned int i_es_all_nr; + unsigned int i_es_shk_nr; + ext4_lblk_t i_es_shrink_lblk; + ext4_group_t i_last_alloc_group; + unsigned int i_reserved_data_blocks; + struct ext4_pending_tree i_pending_tree; + __u16 i_extra_isize; + u16 i_inline_off; + u16 i_inline_size; + spinlock_t i_completed_io_lock; + struct list_head i_rsv_conversion_list; + struct work_struct i_rsv_conversion_work; + atomic_t i_unwritten; + spinlock_t i_block_reservation_lock; + tid_t i_sync_tid; + tid_t i_datasync_tid; + __u32 i_csum_seed; + kprojid_t i_projid; }; -struct 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 extent_status { + struct rb_node rb_node; + ext4_lblk_t es_lblk; + ext4_lblk_t es_len; + ext4_fsblk_t es_pblk; }; -struct in_addr { - __be32 s_addr; +struct ext4_dir_entry_hash { + __le32 hash; + __le32 minor_hash; }; -struct sockaddr_in { - __kernel_sa_family_t sin_family; - __be16 sin_port; - struct in_addr sin_addr; - unsigned char __pad[8]; +struct ext4_orphan_block; + +struct ext4_orphan_info { + int of_blocks; + __u32 of_csum_seed; + struct ext4_orphan_block *of_binfo; }; -struct sockaddr_in6 { - unsigned short sin6_family; - __be16 sin6_port; - __be32 sin6_flowinfo; - struct in6_addr sin6_addr; - __u32 sin6_scope_id; +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 nfs_clone_mount { +struct ext4_journal_trigger { + struct jbd2_buffer_trigger_type tr_triggers; 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; - struct xprtsec_parms xprtsec; - 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; +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 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 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; }; -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, -}; +struct ext4_super_block; -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, -}; +struct blockgroup_lock; -enum node_states { - N_POSSIBLE = 0, - N_ONLINE = 1, - N_NORMAL_MEMORY = 2, - N_HIGH_MEMORY = 2, - N_MEMORY = 3, - N_CPU = 4, - N_GENERIC_INITIATOR = 5, - NR_NODE_STATES = 6, -}; +struct ext4_system_blocks; -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, - XPRT_TRANSPORT_TCP_TLS = 258, -}; +struct ext4_group_info; -struct nfs4_pnfs_ds_addr { - struct __kernel_sockaddr_storage da_addr; - size_t da_addrlen; - struct list_head da_node; - char *da_remotestr; - const char *da_netid; - int da_transport; -}; +struct ext4_locality_group; -struct nfs4_ff_layout_ds_err { - struct list_head list; - u64 offset; - u64 length; - int status; - enum nfs_opnum4 opnum; - nfs4_stateid stateid; - struct nfs4_deviceid deviceid; -}; +struct flex_groups; -struct nfs4_ff_ds_version; +struct ext4_li_request; -struct nfs4_pnfs_ds; +struct mb_cache; -struct nfs4_ff_layout_ds { - struct nfs4_deviceid_node id_node; - u32 ds_versions_cnt; - struct nfs4_ff_ds_version *ds_versions; - struct nfs4_pnfs_ds *ds; +struct dax_device; + +struct ext4_sb_info { + unsigned long s_desc_size; + unsigned long s_inodes_per_block; + unsigned long s_blocks_per_group; + unsigned long s_clusters_per_group; + unsigned long s_inodes_per_group; + unsigned long s_itb_per_group; + unsigned long s_gdb_count; + unsigned long s_desc_per_block; + ext4_group_t s_groups_count; + ext4_group_t s_blockfile_groups; + unsigned long s_overhead; + unsigned int s_cluster_ratio; + unsigned int s_cluster_bits; + loff_t s_bitmap_maxbytes; + struct buffer_head *s_sbh; + struct ext4_super_block *s_es; + struct buffer_head * __attribute__((btf_type_tag("rcu"))) *s_group_desc; + unsigned int s_mount_opt; + unsigned int s_mount_opt2; + unsigned long s_mount_flags; + unsigned int s_def_mount_opt; + unsigned int s_def_mount_opt2; + ext4_fsblk_t s_sb_block; + atomic64_t s_resv_clusters; + kuid_t s_resuid; + kgid_t s_resgid; + unsigned short s_mount_state; + unsigned short s_pad; + int s_addr_per_block_bits; + int s_desc_per_block_bits; + int s_inode_size; + int s_first_ino; + unsigned int s_inode_readahead_blks; + unsigned int s_inode_goal; + u32 s_hash_seed[4]; + int s_def_hash_version; + int s_hash_unsigned; + struct percpu_counter s_freeclusters_counter; + struct percpu_counter s_freeinodes_counter; + struct percpu_counter s_dirs_counter; + struct percpu_counter s_dirtyclusters_counter; + struct percpu_counter s_sra_exceeded_retry_limit; + struct blockgroup_lock *s_blockgroup_lock; + struct proc_dir_entry *s_proc; + struct kobject s_kobj; + struct completion s_kobj_unregister; + struct super_block *s_sb; + struct buffer_head *s_mmp_bh; + struct journal_s *s_journal; + unsigned long s_ext4_flags; + struct mutex s_orphan_lock; + struct list_head s_orphan; + struct ext4_orphan_info s_orphan_info; + unsigned long s_commit_interval; + u32 s_max_batch_time; + u32 s_min_batch_time; + struct bdev_handle *s_journal_bdev_handle; + unsigned int s_want_extra_isize; + struct ext4_system_blocks __attribute__((btf_type_tag("rcu"))) *s_system_blks; + struct ext4_group_info ** __attribute__((btf_type_tag("rcu"))) *s_group_info; + struct inode *s_buddy_cache; + spinlock_t s_md_lock; + unsigned short *s_mb_offsets; + unsigned int *s_mb_maxs; + unsigned int s_group_info_size; + unsigned int s_mb_free_pending; + struct list_head s_freed_data_list[2]; + struct list_head s_discard_list; + struct work_struct s_discard_work; + atomic_t s_retry_alloc_pending; + struct list_head *s_mb_avg_fragment_size; + rwlock_t *s_mb_avg_fragment_size_locks; + struct list_head *s_mb_largest_free_orders; + rwlock_t *s_mb_largest_free_orders_locks; + unsigned long s_stripe; + unsigned int s_mb_max_linear_groups; + unsigned int s_mb_stream_request; + unsigned int s_mb_max_to_scan; + unsigned int s_mb_min_to_scan; + unsigned int s_mb_stats; + unsigned int s_mb_order2_reqs; + unsigned int s_mb_group_prealloc; + unsigned int s_max_dir_size_kb; + unsigned long s_mb_last_group; + unsigned long s_mb_last_start; + unsigned int s_mb_prefetch; + unsigned int s_mb_prefetch_limit; + unsigned int s_mb_best_avail_max_trim_order; + atomic_t s_bal_reqs; + atomic_t s_bal_success; + atomic_t s_bal_allocated; + atomic_t s_bal_ex_scanned; + atomic_t s_bal_cX_ex_scanned[5]; + atomic_t s_bal_groups_scanned; + atomic_t s_bal_goals; + atomic_t s_bal_len_goals; + atomic_t s_bal_breaks; + atomic_t s_bal_2orders; + atomic_t s_bal_p2_aligned_bad_suggestions; + atomic_t s_bal_goal_fast_bad_suggestions; + atomic_t s_bal_best_avail_bad_suggestions; + atomic64_t s_bal_cX_groups_considered[5]; + atomic64_t s_bal_cX_hits[5]; + atomic64_t s_bal_cX_failed[5]; + atomic_t s_mb_buddies_generated; + atomic64_t s_mb_generation_time; + atomic_t s_mb_lost_chunks; + atomic_t s_mb_preallocated; + atomic_t s_mb_discarded; + atomic_t s_lock_busy; + struct ext4_locality_group __attribute__((btf_type_tag("percpu"))) *s_locality_groups; + unsigned long s_sectors_written_start; + u64 s_kbytes_written; + unsigned int s_extent_max_zeroout_kb; + unsigned int s_log_groups_per_flex; + struct flex_groups * __attribute__((btf_type_tag("rcu"))) *s_flex_groups; + ext4_group_t s_flex_groups_allocated; + struct workqueue_struct *rsv_conversion_wq; + struct timer_list s_err_report; + struct ext4_li_request *s_li_request; + unsigned int s_li_wait_mult; + struct task_struct *s_mmp_tsk; + unsigned long s_last_trim_minblks; + struct crypto_shash *s_chksum_driver; + __u32 s_csum_seed; + struct shrinker *s_es_shrinker; + struct list_head s_es_list; + long s_es_nr_inode; + struct ext4_es_stats s_es_stats; + struct mb_cache *s_ea_block_cache; + struct mb_cache *s_ea_inode_cache; + long: 64; + long: 64; + spinlock_t s_es_lock; + struct ext4_journal_trigger s_journal_triggers[1]; + struct ratelimit_state s_err_ratelimit_state; + struct ratelimit_state s_warning_ratelimit_state; + struct ratelimit_state s_msg_ratelimit_state; + atomic_t s_warning_count; + atomic_t s_msg_count; + struct fscrypt_dummy_policy s_dummy_enc_policy; + struct percpu_rw_semaphore s_writepages_rwsem; + struct dax_device *s_daxdev; + u64 s_dax_part_off; + errseq_t s_bdev_wb_err; + spinlock_t s_bdev_wb_lock; + spinlock_t s_error_lock; + int s_add_error_count; + int s_first_error_code; + __u32 s_first_error_line; + __u32 s_first_error_ino; + __u64 s_first_error_block; + const char *s_first_error_func; + time64_t s_first_error_time; + int s_last_error_code; + __u32 s_last_error_line; + __u32 s_last_error_ino; + __u64 s_last_error_block; + const char *s_last_error_func; + time64_t s_last_error_time; + struct work_struct s_sb_upd_work; + atomic_t s_fc_subtid; + struct list_head s_fc_q[2]; + struct list_head s_fc_dentry_q[2]; + unsigned int s_fc_bytes; + spinlock_t s_fc_lock; + struct buffer_head *s_fc_bh; + struct ext4_fc_stats s_fc_stats; + tid_t s_fc_ineligible_tid; + struct ext4_fc_replay_state s_fc_replay_state; + long: 64; + long: 64; + long: 64; }; -struct nfs4_ff_ds_version { - u32 version; - u32 minor_version; - u32 rsize; - u32 wsize; - bool tightly_coupled; +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 nfs4_pnfs_ds { - struct list_head ds_node; - char *ds_remotestr; - struct list_head ds_addrs; - struct nfs_client *ds_clp; - refcount_t ds_count; - unsigned long ds_state; +struct bgl_lock { + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct nfs4_flexfile_layout { - struct pnfs_layout_hdr generic_hdr; - struct pnfs_ds_commit_info commit_info; - struct list_head mirrors; - struct list_head error_list; - ktime_t last_report_time; +struct blockgroup_lock { + struct bgl_lock locks[128]; }; -struct nfs4_ff_layout_mirror; +struct ext4_orphan_block { + atomic_t ob_free_entries; + struct buffer_head *ob_bh; +}; -struct nfs4_ff_layout_segment { - struct pnfs_layout_segment generic_hdr; - u64 stripe_unit; - u32 flags; - u32 mirror_array_cnt; - struct nfs4_ff_layout_mirror *mirror_array[0]; +struct ext4_system_blocks { + struct rb_root root; + struct callback_head rcu; }; -struct nfs4_ff_io_stat { - __u64 ops_requested; - __u64 bytes_requested; - __u64 ops_completed; - __u64 bytes_completed; - __u64 bytes_not_delivered; - ktime_t total_busy_time; - ktime_t aggregate_completion_time; -}; +typedef int ext4_grpblk_t; -struct nfs4_ff_busy_timer { - ktime_t start_time; - atomic_t n_ops; +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 nfs4_ff_layoutstat { - struct nfs4_ff_io_stat io_stat; - struct nfs4_ff_busy_timer busy_timer; +struct ext4_locality_group { + struct mutex lg_mutex; + struct list_head lg_prealloc_list[10]; + spinlock_t lg_prealloc_lock; }; -struct nfs4_ff_layout_mirror { - struct pnfs_layout_hdr *layout; - struct list_head mirrors; - u32 ds_count; - u32 efficiency; - struct nfs4_deviceid devid; - struct nfs4_ff_layout_ds *mirror_ds; - u32 fh_versions_cnt; - struct nfs_fh *fh_versions; - nfs4_stateid stateid; - const struct cred __attribute__((btf_type_tag("rcu"))) *ro_cred; - const struct cred __attribute__((btf_type_tag("rcu"))) *rw_cred; - refcount_t ref; - spinlock_t lock; - unsigned long flags; - struct nfs4_ff_layoutstat read_stat; - struct nfs4_ff_layoutstat write_stat; - ktime_t start_time; - u32 report_interval; +struct flex_groups { + atomic64_t free_clusters; + atomic_t free_inodes; + atomic_t used_dirs; }; -enum p9_trans_status { - Connected = 0, - BeginDisconnect = 1, - Disconnected = 2, - Hung = 3, +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 p9_qid { - u8 type; - u32 version; - u64 path; +struct ext4_fc_alloc_region { + ext4_lblk_t lblk; + ext4_fsblk_t pblk; + int ino; + int len; }; -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 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 p9_trans_module; +struct jbd2_journal_handle; -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; +typedef struct jbd2_journal_handle handle_t; + +struct jbd2_journal_handle { union { - struct { - int rfd; - int wfd; - } fd; - struct { - u16 port; - bool privport; - } tcp; - } trans_opts; - struct idr fids; - struct idr reqs; - char name[65]; + transaction_t *h_transaction; + journal_t *h_journal; + }; + handle_t *h_rsv_handle; + int h_total_credits; + int h_revoke_credits; + int h_revoke_credits_requested; + int h_ref; + int h_err; + unsigned int h_sync: 1; + unsigned int h_jdata: 1; + unsigned int h_reserved: 1; + unsigned int h_aborted: 1; + unsigned int h_type: 8; + unsigned int h_line_no: 16; + unsigned long h_start_jiffies; + unsigned int h_requested_credits; + unsigned int saved_alloc_context; }; -struct inet_peer_base { - struct rb_root rb_root; - seqlock_t lock; - int total; +struct ext4_map_blocks { + ext4_fsblk_t m_pblk; + ext4_lblk_t m_lblk; + unsigned int m_len; + unsigned int m_flags; }; -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 fscrypt_str { + unsigned char *name; + u32 len; }; -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 ext4_attr { + struct attribute attr; + short attr_id; + short attr_ptr; + unsigned short attr_size; + union { + int offset; + void *explicit_ptr; + } u; }; -struct ethtool_regs { - __u32 cmd; - __u32 version; - __u32 len; - __u8 data[0]; +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, }; -struct ethtool_wolinfo { - __u32 cmd; - __u32 supported; - __u32 wolopts; - __u8 sopass[6]; +enum { + ptr_explicit = 0, + ptr_ext4_sb_info_offset = 1, + ptr_ext4_super_block_offset = 2, }; -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 stat_group { + STAT_READ = 0, + STAT_WRITE = 1, + STAT_DISCARD = 2, + STAT_FLUSH = 3, + NR_STAT_GROUPS = 4, }; -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 file_time_flags { + S_ATIME = 1, + S_MTIME = 2, + S_CTIME = 4, + S_VERSION = 8, }; -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 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 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, +struct fat_boot_fsinfo { + __le32 signature1; + __le32 reserved1[120]; + __le32 signature2; + __le32 free_clusters; + __le32 next_cluster; + __le32 reserved2[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, -}; +typedef unsigned long long llu; -enum ethtool_link_ext_substate_module { - ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1, +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; }; -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 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 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 nls_table; -struct ethtool_link_ext_stats { - u64 link_down_events; -}; +struct fatent_operations; -struct ethtool_eeprom { - __u32 cmd; - __u32 magic; - __u32 offset; - __u32 len; - __u8 data[0]; +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; }; -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; -}; +typedef u16 wchar_t; -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 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 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 fat_entry; -struct kernel_ethtool_ringparam { - u32 rx_buf_len; - u8 tcp_data_split; - u8 tx_push; - u8 rx_push; - u32 cqe_size; - u32 tx_push_buf_len; - u32 tx_push_buf_max_len; +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 *); }; -enum ethtool_mac_stats_src { - ETHTOOL_MAC_STATS_SRC_AGGREGATE = 0, - ETHTOOL_MAC_STATS_SRC_EMAC = 1, - ETHTOOL_MAC_STATS_SRC_PMAC = 2, +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; }; -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 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 ethtool_pauseparam { - __u32 cmd; - __u32 autoneg; - __u32 rx_pause; - __u32 tx_pause; +typedef __builtin_va_list va_list; + +struct va_format { + const char *fmt; + va_list *va; }; -struct ethtool_test { - __u32 cmd; - __u32 flags; - __u32 reserved; - __u32 len; - __u64 data[0]; +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 ethtool_stats { - __u32 cmd; - __u32 n_stats; - __u64 data[0]; +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 ethtool_tcpip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be16 psrc; - __be16 pdst; - __u8 tos; +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 ethtool_ah_espip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be32 spi; - __u8 tos; +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, }; -struct ethtool_usrip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be32 l4_4_bytes; - __u8 tos; - __u8 ip_ver; - __u8 proto; +enum nfs_ftype { + NFNON = 0, + NFREG = 1, + NFDIR = 2, + NFBLK = 3, + NFCHR = 4, + NFLNK = 5, + NFSOCK = 6, + NFBAD = 7, + NFFIFO = 8, }; -struct ethtool_tcpip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be16 psrc; - __be16 pdst; - __u8 tclass; +enum nfs2_ftype { + NF2NON = 0, + NF2REG = 1, + NF2DIR = 2, + NF2BLK = 3, + NF2CHR = 4, + NF2LNK = 5, + NF2SOCK = 6, + NF2BAD = 7, + NF2FIFO = 8, }; -struct ethtool_ah_espip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be32 spi; - __u8 tclass; +struct nfs_diropok { + struct nfs_fh *fh; + struct nfs_fattr *fattr; }; -struct ethtool_usrip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be32 l4_4_bytes; - __u8 tclass; - __u8 l4_proto; +struct nfs_readdirargs { + struct nfs_fh *fh; + __u32 cookie; + unsigned int count; + struct page **pages; }; -struct ethhdr { - unsigned char h_dest[6]; - unsigned char h_source[6]; - __be16 h_proto; +struct nfs2_fsstat { + __u32 tsize; + __u32 bsize; + __u32 blocks; + __u32 bfree; + __u32 bavail; }; -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 nfs_sattrargs { + struct nfs_fh *fh; + struct iattr *sattr; }; -struct ethtool_flow_ext { - __u8 padding[2]; - unsigned char h_dest[6]; - __be16 vlan_etype; - __be16 vlan_tci; - __be32 data[2]; +struct nfs_diropargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; }; -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 nfs_readlinkargs { + struct nfs_fh *fh; + unsigned int pgbase; + unsigned int pglen; + struct page **pages; }; -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 nfs_createargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + struct iattr *sattr; }; -struct ethtool_flash { - __u32 cmd; - __u32 region; - char data[128]; +struct nfs_linkargs { + struct nfs_fh *fromfh; + struct nfs_fh *tofh; + const char *toname; + unsigned int tolen; }; -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 nfs_symlinkargs { + struct nfs_fh *fromfh; + const char *fromname; + unsigned int fromlen; + struct page **pages; + unsigned int pathlen; + struct iattr *sattr; }; -struct ethtool_dump { - __u32 cmd; - __u32 version; - __u32 flag; - __u32 len; - __u8 data[0]; +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 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 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 ethtool_modinfo { - __u32 cmd; - __u32 type; - __u32 eeprom_len; - __u32 reserved[8]; +struct nfs4_sessionid { + unsigned char data[16]; }; -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 nfs4_channel_attrs { + u32 max_rqst_sz; + u32 max_resp_sz; + u32 max_resp_sz_cached; + u32 max_ops; + u32 max_reqs; }; -struct ethtool_tunable { - __u32 cmd; - __u32 id; - __u32 type_id; - __u32 len; - void *data[0]; +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; }; -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 pnfs_layout_range { + u32 iomode; + u64 offset; + u64 length; }; -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 pnfs_layout_hdr; -struct ethtool_fec_stat { - u64 total; - u64 lanes[8]; +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 ethtool_fec_stats { - struct ethtool_fec_stat corrected_blocks; - struct ethtool_fec_stat uncorrectable_blocks; - struct ethtool_fec_stat corrected_bits; +enum pnfs_iomode { + IOMODE_READ = 1, + IOMODE_RW = 2, + IOMODE_ANY = 3, }; -struct ethtool_fecparam { - __u32 cmd; - __u32 active_fec; - __u32 fec; - __u32 reserved; +struct pnfs_layout_hdr { + refcount_t plh_refcount; + atomic_t plh_outstanding; + struct list_head plh_layouts; + struct list_head plh_bulk_destroy; + struct list_head plh_segs; + struct list_head plh_return_segs; + unsigned long plh_block_lgets; + unsigned long plh_retry_timestamp; + unsigned long plh_flags; + nfs4_stateid plh_stateid; + u32 plh_barrier; + u32 plh_return_seq; + enum pnfs_iomode plh_return_iomode; + loff_t plh_lwb; + const struct cred *plh_lc_cred; + struct inode *plh_inode; + struct callback_head plh_rcu; }; -struct ethtool_module_eeprom { - u32 offset; - u32 length; - u8 page; - u8 bank; - u8 i2c_address; - u8 *data; +enum pnfs_try_status { + PNFS_ATTEMPTED = 0, + PNFS_NOT_ATTEMPTED = 1, + PNFS_TRY_AGAIN = 2, }; -struct ethtool_eth_phy_stats { - enum ethtool_mac_stats_src src; - union { - struct { - u64 SymbolErrorDuringCarrier; - }; - struct { - u64 SymbolErrorDuringCarrier; - } stats; - }; +struct nfs4_layoutget_res; + +struct nfs_pageio_ops; + +struct nfs4_deviceid_node; + +struct pnfs_device; + +struct nfs4_layoutreturn_args; + +struct nfs4_layoutcommit_data; + +struct nfs4_layoutcommit_args; + +struct nfs42_layoutstat_args; + +struct pnfs_layoutdriver_type { + struct list_head pnfs_tblid; + const u32 id; + const char *name; + struct module *owner; + unsigned int flags; + unsigned int max_deviceinfo_size; + unsigned int max_layoutget_response; + int (*set_layoutdriver)(struct nfs_server *, const struct nfs_fh *); + int (*clear_layoutdriver)(struct nfs_server *); + struct pnfs_layout_hdr * (*alloc_layout_hdr)(struct inode *, gfp_t); + void (*free_layout_hdr)(struct pnfs_layout_hdr *); + struct pnfs_layout_segment * (*alloc_lseg)(struct pnfs_layout_hdr *, struct nfs4_layoutget_res *, gfp_t); + void (*free_lseg)(struct pnfs_layout_segment *); + void (*add_lseg)(struct pnfs_layout_hdr *, struct pnfs_layout_segment *, struct list_head *); + void (*return_range)(struct pnfs_layout_hdr *, struct pnfs_layout_range *); + const struct nfs_pageio_ops *pg_read_ops; + const struct nfs_pageio_ops *pg_write_ops; + struct pnfs_ds_commit_info * (*get_ds_info)(struct inode *); + int (*sync)(struct inode *, bool); + enum pnfs_try_status (*read_pagelist)(struct nfs_pgio_header *); + enum pnfs_try_status (*write_pagelist)(struct nfs_pgio_header *, int); + void (*free_deviceid_node)(struct nfs4_deviceid_node *); + struct nfs4_deviceid_node * (*alloc_deviceid_node)(struct nfs_server *, struct pnfs_device *, gfp_t); + int (*prepare_layoutreturn)(struct nfs4_layoutreturn_args *); + void (*cleanup_layoutcommit)(struct nfs4_layoutcommit_data *); + int (*prepare_layoutcommit)(struct nfs4_layoutcommit_args *); + int (*prepare_layoutstats)(struct nfs42_layoutstat_args *); + void (*cancel_io)(struct pnfs_layout_segment *); }; -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 nfs4_layoutdriver_data; -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 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 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 nfs4_layoutdriver_data { + struct page **pages; + __u32 pglen; + __u32 len; }; -struct ethtool_rmon_hist_range { - u16 low; - u16 high; +struct nfs_pageio_descriptor; + +struct nfs_pgio_mirror; + +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); }; -enum ethtool_module_power_mode_policy { - ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1, - ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2, +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; }; -enum ethtool_module_power_mode { - ETHTOOL_MODULE_POWER_MODE_LOW = 1, - ETHTOOL_MODULE_POWER_MODE_HIGH = 2, +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 ethtool_module_power_mode_params { - enum ethtool_module_power_mode_policy policy; - enum ethtool_module_power_mode mode; +struct nfs4_deviceid { + char data[16]; }; -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 nfs4_deviceid_node { + struct hlist_node node; + struct hlist_node tmpnode; + const struct pnfs_layoutdriver_type *ld; + const struct nfs_client *nfs_client; + unsigned long flags; + unsigned long timestamp_unavailable; + struct nfs4_deviceid deviceid; + struct callback_head rcu; + atomic_t ref; }; -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 pnfs_device { + struct nfs4_deviceid dev_id; + unsigned int layout_type; + unsigned int mincount; + unsigned int maxcount; + struct page **pages; + unsigned int pgbase; + unsigned int pglen; + unsigned char nocache: 1; }; -struct ethtool_mm_cfg { - u32 verify_time; - bool verify_enabled; - bool tx_enabled; - bool pmac_enabled; - u32 tx_min_frag_size; +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 ethtool_mm_stats { - u64 MACMergeFrameAssErrorCount; - u64 MACMergeFrameSmdErrorCount; - u64 MACMergeFrameAssOkCount; - u64 MACMergeFragCountRx; - u64 MACMergeFragCountTx; - u64 MACMergeHoldCount; +struct nfs4_xdr_opaque_ops; + +struct nfs4_xdr_opaque_data { + const struct nfs4_xdr_opaque_ops *ops; + void *data; }; -struct nd_opt_hdr { - __u8 nd_opt_type; - __u8 nd_opt_len; +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 ndisc_options { - struct nd_opt_hdr *nd_opt_array[15]; - struct nd_opt_hdr *nd_useropts; - struct nd_opt_hdr *nd_useropts_end; +struct nfs4_layoutcommit_args { + struct nfs4_sequence_args seq_args; + nfs4_stateid stateid; + __u64 lastbytewritten; + struct inode *inode; + const u32 *bitmask; + size_t layoutupdate_len; + struct page *layoutupdate_page; + struct page **layoutupdate_pages; + __be32 *start_p; }; -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 nfs4_layoutcommit_res { + struct nfs4_sequence_res seq_res; + struct nfs_fattr *fattr; + const struct nfs_server *server; + int status; }; -struct tree_descr { - const char *name; - const struct file_operations *ops; - int mode; +struct nfs4_layoutcommit_data { + struct rpc_task task; + struct nfs_fattr fattr; + struct list_head lseg_list; + const struct cred *cred; + struct inode *inode; + struct nfs4_layoutcommit_args args; + struct nfs4_layoutcommit_res res; }; -enum label_initialized { - LABEL_INVALID = 0, - LABEL_INITIALIZED = 1, - LABEL_PENDING = 2, +struct nfs42_layoutstat_devinfo; + +struct nfs42_layoutstat_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + struct inode *inode; + nfs4_stateid stateid; + int num_dev; + struct nfs42_layoutstat_devinfo *devinfo; }; -enum lsm_event { - LSM_POLICY_CHANGE = 0, +struct nfs42_layoutstat_devinfo { + struct nfs4_deviceid dev_id; + __u64 offset; + __u64 length; + __u64 read_count; + __u64 read_bytes; + __u64 write_count; + __u64 write_bytes; + __u32 layout_type; + struct nfs4_xdr_opaque_data ld_private; }; -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, +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 { - 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, + FATTR4_SUPPORTED_ATTRS = 0, + FATTR4_TYPE = 1, + FATTR4_FH_EXPIRE_TYPE = 2, + FATTR4_CHANGE = 3, + FATTR4_SIZE = 4, + FATTR4_LINK_SUPPORT = 5, + FATTR4_SYMLINK_SUPPORT = 6, + FATTR4_NAMED_ATTR = 7, + FATTR4_FSID = 8, + FATTR4_UNIQUE_HANDLES = 9, + FATTR4_LEASE_TIME = 10, + FATTR4_RDATTR_ERROR = 11, + FATTR4_ACL = 12, + FATTR4_ACLSUPPORT = 13, + FATTR4_ARCHIVE = 14, + FATTR4_CANSETTIME = 15, + FATTR4_CASE_INSENSITIVE = 16, + FATTR4_CASE_PRESERVING = 17, + FATTR4_CHOWN_RESTRICTED = 18, + FATTR4_FILEHANDLE = 19, + FATTR4_FILEID = 20, + FATTR4_FILES_AVAIL = 21, + FATTR4_FILES_FREE = 22, + FATTR4_FILES_TOTAL = 23, + FATTR4_FS_LOCATIONS = 24, + FATTR4_HIDDEN = 25, + FATTR4_HOMOGENEOUS = 26, + FATTR4_MAXFILESIZE = 27, + FATTR4_MAXLINK = 28, + FATTR4_MAXNAME = 29, + FATTR4_MAXREAD = 30, + FATTR4_MAXWRITE = 31, + FATTR4_MIMETYPE = 32, + FATTR4_MODE = 33, + FATTR4_NO_TRUNC = 34, + FATTR4_NUMLINKS = 35, + FATTR4_OWNER = 36, + FATTR4_OWNER_GROUP = 37, + FATTR4_QUOTA_AVAIL_HARD = 38, + FATTR4_QUOTA_AVAIL_SOFT = 39, + FATTR4_QUOTA_USED = 40, + FATTR4_RAWDEV = 41, + FATTR4_SPACE_AVAIL = 42, + FATTR4_SPACE_FREE = 43, + FATTR4_SPACE_TOTAL = 44, + FATTR4_SPACE_USED = 45, + FATTR4_SYSTEM = 46, + FATTR4_TIME_ACCESS = 47, + FATTR4_TIME_ACCESS_SET = 48, + FATTR4_TIME_BACKUP = 49, + FATTR4_TIME_CREATE = 50, + FATTR4_TIME_DELTA = 51, + FATTR4_TIME_METADATA = 52, + FATTR4_TIME_MODIFY = 53, + FATTR4_TIME_MODIFY_SET = 54, + FATTR4_MOUNTED_ON_FILEID = 55, }; -struct avc_cache_stats { - unsigned int lookups; - unsigned int misses; - unsigned int allocations; - unsigned int reclaims; - unsigned int frees; +enum nfs4_slot_tbl_state { + NFS4_SLOT_TBL_DRAINING = 0, }; -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 super_block *sb; +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, }; -struct inode_security_struct { - struct inode *inode; - struct list_head list; - u32 task_sid; - u32 sid; - u16 sclass; - unsigned char initialized; - spinlock_t lock; +enum pnfs_layoutreturn_type { + RETURN_FILE = 1, + RETURN_FSID = 2, + RETURN_ALL = 3, }; -struct task_security_struct { - u32 osid; - u32 sid; - u32 exec_sid; - u32 create_sid; - u32 keycreate_sid; - u32 sockcreate_sid; +enum { + NFS_LAYOUT_RO_FAILED = 0, + NFS_LAYOUT_RW_FAILED = 1, + NFS_LAYOUT_BULK_RECALL = 2, + NFS_LAYOUT_RETURN = 3, + NFS_LAYOUT_RETURN_LOCK = 4, + NFS_LAYOUT_RETURN_REQUESTED = 5, + NFS_LAYOUT_INVALID_STID = 6, + NFS_LAYOUT_FIRST_LAYOUTGET = 7, + NFS_LAYOUT_INODE_FREEING = 8, + NFS_LAYOUT_HASHED = 9, + NFS_LAYOUT_DRAIN = 10, }; -struct lsm_network_audit; +struct nfs4_copy_state { + struct list_head copies; + struct list_head src_copies; + nfs4_stateid stateid; + struct completion completion; + uint64_t count; + struct nfs_writeverf verf; + int error; + int flags; + struct nfs4_state *parent_src_state; + struct nfs4_state *parent_dst_state; +}; -struct lsm_ioctlop_audit; +struct nfs4_cached_acl; -struct lsm_ibpkey_audit; +struct nfs_delegation; -struct lsm_ibendport_audit; - -struct selinux_audit_data; - -struct apparmor_audit_data; +struct nfs4_xattr_cache; -struct common_audit_data { - char type; +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 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; + 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 { + int cnt; + struct { + u64 start; + u64 end; + } gap[16]; + } *ooo; + 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 nfs4_xattr_cache *xattr_cache; union { - struct selinux_audit_data *selinux_audit_data; - struct apparmor_audit_data *apparmor_audit_data; + struct inode vfs_inode; }; }; -struct lsm_network_audit { - int netif; - const struct sock *sk; - u16 family; - __be16 dport; - __be16 sport; +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 test_gen; + unsigned long flags; + refcount_t refcount; + spinlock_t lock; + struct callback_head rcu; +}; + +struct cb_layoutrecallargs { + uint32_t cbl_recall_type; + uint32_t cbl_layout_type; + uint32_t cbl_layoutchanged; union { struct { - __be32 daddr; - __be32 saddr; - } v4; - struct { - struct in6_addr daddr; - struct in6_addr saddr; - } v6; - } fam; + struct nfs_fh cbl_fh; + struct pnfs_layout_range cbl_range; + nfs4_stateid cbl_stateid; + }; + struct nfs_fsid cbl_fsid; + }; }; -struct lsm_ioctlop_audit { - struct path path; - u16 cmd; -}; +struct referring_call_list; -struct lsm_ibpkey_audit { - u64 subnet_prefix; - u16 pkey; +struct cb_sequenceargs { + struct sockaddr *csa_addr; + struct nfs4_sessionid csa_sessionid; + uint32_t csa_sequenceid; + uint32_t csa_slotid; + uint32_t csa_highestslotid; + uint32_t csa_cachethis; + uint32_t csa_nrclists; + struct referring_call_list *csa_rclists; }; -struct lsm_ibendport_audit { - const char *dev_name; - u8 port; -}; +struct referring_call; -struct selinux_audit_data { - u32 ssid; - u32 tsid; - u16 tclass; - u32 requested; - u32 audited; - u32 denied; - int result; +struct referring_call_list { + struct nfs4_sessionid rcl_sessionid; + uint32_t rcl_nrefcalls; + struct referring_call *rcl_refcalls; }; -struct selinux_policy; - -struct selinux_policy_convert_data; - -struct selinux_load_state { - struct selinux_policy *policy; - struct selinux_policy_convert_data *convert_data; +struct referring_call { + uint32_t rc_sequenceid; + uint32_t rc_slotid; }; -struct av_decision { - u32 allowed; - u32 auditallow; - u32 auditdeny; - u32 seqno; - u32 flags; +struct cb_sequenceres { + __be32 csr_status; + struct nfs4_sessionid csr_sessionid; + uint32_t csr_sequenceid; + uint32_t csr_slotid; + uint32_t csr_highestslotid; + uint32_t csr_target_highestslotid; }; -typedef __kernel_ulong_t ino_t; - -struct policy_load_memory { - size_t len; - void *data; +struct cb_offloadargs { + struct nfs_fh coa_fh; + nfs4_stateid coa_stateid; + uint32_t error; + uint64_t wr_count; + struct nfs_writeverf wr_writeverf; }; -typedef void (*exitcall_t)(); - -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 *); - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct crypto_alg base; +struct cb_process_state { + __be32 drc_status; + struct nfs_client *clp; + struct nfs4_slot *slot; + u32 minorversion; + struct net *net; }; -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 cb_getattrargs { + struct nfs_fh fh; + uint32_t bitmap[2]; }; -struct scatterlist; - -struct akcipher_request { - struct crypto_async_request base; - struct scatterlist *src; - struct scatterlist *dst; - unsigned int src_len; - unsigned int dst_len; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - void *__ctx[0]; +struct cb_getattrres { + __be32 status; + uint32_t bitmap[2]; + uint64_t size; + uint64_t change_attr; + struct timespec64 ctime; + struct timespec64 mtime; }; -struct crypto_template; - -struct crypto_spawn; - -struct crypto_instance { - struct crypto_alg alg; - struct crypto_template *tmpl; - union { - struct hlist_node list; - struct crypto_spawn *spawns; - }; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - void *__ctx[0]; +struct cb_recallargs { + struct nfs_fh fh; + nfs4_stateid stateid; + uint32_t truncate; }; -struct rtattr; +struct cb_devicenotifyitem; -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 cb_devicenotifyargs { + uint32_t ndevs; + struct cb_devicenotifyitem *devs; }; -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 cb_devicenotifyitem { + uint32_t cbd_notify_type; + uint32_t cbd_layout_type; + struct nfs4_deviceid cbd_dev_id; + uint32_t cbd_immediate; }; -struct scatterlist { - unsigned long page_link; - unsigned int offset; - unsigned int length; - dma_addr_t dma_address; +struct cb_recallanyargs { + uint32_t craa_objs_to_keep; + uint32_t craa_type_mask; }; -struct crypto_akcipher { - unsigned int reqsize; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct crypto_tfm base; +struct cb_recallslotargs { + uint32_t crsa_target_highest_slotid; }; -struct gcry_mpi; - -typedef struct gcry_mpi *MPI; - -struct rsa_mpi_key { - MPI n; - MPI e; - MPI d; - MPI p; - MPI q; - MPI dp; - MPI dq; - MPI qinv; +struct nfs_lowner { + __u64 clientid; + __u64 id; + dev_t s_dev; }; -typedef unsigned long mpi_limb_t; - -struct gcry_mpi { - int alloced; - int nlimbs; - int nbits; - int sign; - unsigned int flags; - mpi_limb_t *d; +struct cb_notify_lock_args { + struct nfs_fh cbnl_fh; + struct nfs_lowner cbnl_owner; + bool cbnl_valid; }; -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 nlm_lockowner { + struct list_head list; + refcount_t count; + struct nlm_host *host; + fl_owner_t owner; + uint32_t pid; }; -enum mq_rq_state { - MQ_RQ_IDLE = 0, - MQ_RQ_IN_FLIGHT = 1, - MQ_RQ_COMPLETE = 2, +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; }; -enum rq_end_io_ret { - RQ_END_IO_NONE = 0, - RQ_END_IO_FREE = 1, +struct nsm_private { + unsigned char data[16]; }; -enum elv_merge { - ELEVATOR_NO_MERGE = 0, - ELEVATOR_FRONT_MERGE = 1, - ELEVATOR_BACK_MERGE = 2, - ELEVATOR_DISCARD_MERGE = 3, +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]; }; 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, + NSMPROC_NULL = 0, + NSMPROC_STAT = 1, + NSMPROC_MON = 2, + NSMPROC_UNMON = 3, + NSMPROC_UNMON_ALL = 4, + NSMPROC_SIMU_CRASH = 5, + NSMPROC_NOTIFY = 6, }; -enum { - BLK_MQ_REQ_NOWAIT = 1, - BLK_MQ_REQ_RESERVED = 2, - BLK_MQ_REQ_PM = 4, +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, + XPRT_TRANSPORT_TCP_TLS = 258, }; -enum { - BLK_MQ_NO_TAG = 4294967295, - BLK_MQ_TAG_MIN = 1, - BLK_MQ_TAG_MAX = 4294967294, +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, }; -enum { - BLK_MQ_UNIQUE_TAG_BITS = 16, - BLK_MQ_UNIQUE_TAG_MASK = 65535, +struct in_addr { + __be32 s_addr; }; -enum hctx_type { - HCTX_TYPE_DEFAULT = 0, - HCTX_TYPE_READ = 1, - HCTX_TYPE_POLL = 2, - HCTX_MAX_TYPES = 3, +struct sockaddr_in { + __kernel_sa_family_t sin_family; + __be16 sin_port; + struct in_addr sin_addr; + unsigned char __pad[8]; }; -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, +struct sockaddr_in6 { + unsigned short sin6_family; + __be16 sin6_port; + __be32 sin6_flowinfo; + struct in6_addr sin6_addr; + __u32 sin6_scope_id; }; -typedef unsigned int xa_mark_t; - -typedef __u32 req_flags_t; - -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; - }; - struct delayed_work run_work; - cpumask_var_t cpumask; - int next_cpu; - int next_cpu_batch; +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; - 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 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; + char *client_name; + struct svc_xprt *bc_xprt; + const struct cred *cred; + unsigned int max_connect; + struct xprtsec_parms xprtsec; + unsigned long connect_timeout; + unsigned long reconnect_timeout; }; -typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t); - -struct __call_single_data { - struct __call_single_node node; - smp_call_func_t func; - void *info; +struct nsm_args { + struct nsm_private *priv; + u32 prog; + u32 vers; + u32 proc; + char *mon_name; + const char *nodename; }; -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 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; - }; - 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 nsm_res { + u32 status; + u32 state; }; -struct elevator_type; - -struct elevator_queue { - struct elevator_type *type; - void *elevator_data; - struct kobject kobj; - struct mutex sysfs_lock; - unsigned long flags; - struct hlist_head hash[64]; +struct lock_manager { + struct list_head list; + bool block_opens; }; -typedef unsigned int blk_insert_t; - -struct blk_mq_alloc_data; - -struct elevator_mq_ops { - int (*init_sched)(struct request_queue *, struct elevator_type *); - void (*exit_sched)(struct elevator_queue *); - int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int); - void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int); - void (*depth_updated)(struct blk_mq_hw_ctx *); - bool (*allow_merge)(struct request_queue *, struct request *, struct bio *); - bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int); - int (*request_merge)(struct request_queue *, struct request **, struct bio *); - void (*request_merged)(struct request_queue *, struct request *, enum elv_merge); - void (*requests_merged)(struct request_queue *, struct request *, struct request *); - void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *); - void (*prepare_request)(struct request *); - void (*finish_request)(struct request *); - void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, blk_insert_t); - struct request * (*dispatch_request)(struct blk_mq_hw_ctx *); - bool (*has_work)(struct blk_mq_hw_ctx *); - void (*completed_request)(struct request *, u64); - void (*requeue_request)(struct request *); - struct request * (*former_request)(struct request_queue *, struct request *); - struct request * (*next_request)(struct request_queue *, struct request *); - void (*init_icq)(struct io_cq *); - void (*exit_icq)(struct io_cq *); +struct 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; }; -struct elv_fs_entry; +struct nlm_reboot { + char *mon; + unsigned int len; + u32 state; + struct nsm_private priv; +}; -struct blk_mq_debugfs_attr; +struct ebitmap_node; -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 ebitmap { + struct ebitmap_node *node; + u32 highbit; }; -typedef __u32 blk_mq_req_flags_t; - -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 mls_level { + u32 sens; + struct ebitmap cat; }; -struct elv_fs_entry { - struct attribute attr; - ssize_t (*show)(struct elevator_queue *, char *); - ssize_t (*store)(struct elevator_queue *, const char *, size_t); +struct mls_range { + struct mls_level level[2]; }; -struct blk_mq_debugfs_attr { - const char *name; - umode_t mode; - int (*show)(void *, struct seq_file *); - ssize_t (*write)(void *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - const struct seq_operations *seq_ops; +struct context { + u32 user; + u32 role; + u32 type; + u32 len; + struct mls_range range; + char *str; }; -struct blk_mq_queue_data { - struct request *rq; - bool last; +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 blk_mq_queue_map { - unsigned int *mq_map; - unsigned int nr_queues; - unsigned int queue_offset; +struct ebitmap_node { + struct ebitmap_node *next; + unsigned long maps[6]; + u32 startbit; }; -struct blk_mq_tag_set { - const struct blk_mq_ops *ops; - struct blk_mq_queue_map map[3]; - unsigned int nr_maps; - unsigned int nr_hw_queues; - unsigned int queue_depth; - unsigned int reserved_tags; - unsigned int cmd_size; - int numa_node; - unsigned int timeout; - unsigned int flags; - void *driver_data; - struct blk_mq_tags **tags; - struct blk_mq_tags *shared_tags; - struct mutex tag_list_lock; - struct list_head tag_list; - struct srcu_struct *srcu; +struct sidtab_str_cache { + struct callback_head rcu_member; + struct list_head lru_member; + struct sidtab_entry *parent; + u32 len; + char str[0]; }; -struct sbq_wait_state; +struct sidtab_node_inner; -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 sidtab_node_leaf; -struct blk_mq_tags { - unsigned int nr_tags; - unsigned int nr_reserved_tags; - unsigned int active_queues; - struct sbitmap_queue bitmap_tags; - struct sbitmap_queue breserved_tags; - struct request **rqs; - struct request **static_rqs; - struct list_head page_list; - spinlock_t lock; +union sidtab_entry_inner { + struct sidtab_node_inner *ptr_inner; + struct sidtab_node_leaf *ptr_leaf; }; -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 sidtab_isid_entry { + int set; + struct sidtab_entry entry; }; -struct sbq_wait_state { - wait_queue_head_t wait; - long: 64; - long: 64; - long: 64; -}; +struct sidtab_convert_params; -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 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 blk_mq_ctxs { - struct kobject kobj; - struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx; +struct sidtab_node_inner { + union sidtab_entry_inner entries[512]; }; -struct sbq_wait { - struct sbitmap_queue *sbq; - struct wait_queue_entry wait; +struct sidtab_node_leaf { + struct sidtab_entry entries[39]; }; -typedef bool busy_tag_iter_fn(struct request *, void *); - -typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); +struct convert_context_args; -struct bt_iter_data { - struct blk_mq_hw_ctx *hctx; - struct request_queue *q; - busy_tag_iter_fn *fn; - void *data; - bool reserved; +struct sidtab_convert_params { + struct convert_context_args *args; + struct sidtab *target; }; -struct bt_tags_iter_data { - struct blk_mq_tags *tags; - busy_tag_iter_fn *fn; - void *data; - unsigned int flags; -}; +struct policydb; -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, +struct convert_context_args { + struct policydb *oldp; + struct policydb *newp; }; -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 hashtab_node; -enum { - IOU_OK = 0, - IOU_ISSUE_SKIP_COMPLETE = -529, - IOU_STOP_MULTISHOT = -125, +struct hashtab { + struct hashtab_node **htable; + u32 size; + u32 nel; }; -struct io_madvise { - struct file *file; - u64 addr; - u32 len; - u32 advice; +struct symtab { + struct hashtab table; + u32 nprim; }; -struct io_ring_ctx; - -struct io_wq; +struct avtab_node; -struct io_uring_task { - int cached_refs; - const struct io_ring_ctx *last; - struct io_wq *io_wq; - struct file *registered_rings[16]; - struct xarray xa; - struct wait_queue_head wait; - atomic_t in_cancel; - atomic_t inflight_tracked; - struct percpu_counter inflight; - long: 64; - long: 64; - long: 64; - struct { - struct llist_head task_list; - struct callback_head task_work; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; +struct avtab { + struct avtab_node **htable; + u32 nel; + u32 nslot; + u32 mask; }; -struct io_fixed_file; +struct class_datum; -struct io_file_table { - struct io_fixed_file *files; - unsigned long *bitmap; - unsigned int alloc_hint; -}; +struct role_datum; -struct io_wq_work_node { - struct io_wq_work_node *next; -}; +struct user_datum; -struct io_wq_work_list { - struct io_wq_work_node *first; - struct io_wq_work_node *last; -}; +struct type_datum; -struct io_kiocb; +struct cond_bool_datum; -struct io_submit_link { - struct io_kiocb *head; - struct io_kiocb *last; -}; +struct cond_node; -struct io_uring_cqe { - __u64 user_data; - __s32 res; - __u32 flags; - __u64 big_cqe[0]; -}; +struct role_allow; -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 ocontext; -struct io_hash_table { - struct io_hash_bucket *hbs; - unsigned int hash_bits; -}; +struct genfs; -struct io_alloc_cache { - struct io_wq_work_node list; - unsigned int nr_cached; - unsigned int max_cached; - size_t elem_size; +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 io_restriction { - unsigned long register_op[1]; - unsigned long sqe_op[1]; - u8 sqe_flags_allowed; - u8 sqe_flags_required; - bool registered; +struct hashtab_node { + void *key; + void *datum; + struct hashtab_node *next; }; -struct io_rings; +struct common_datum; -struct io_rsrc_node; +struct constraint_node; -struct io_mapped_ubuf; +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 io_buffer_list; +struct common_datum { + u32 value; + struct symtab permissions; +}; -struct io_sq_data; +struct constraint_expr; -struct io_ev_fd; +struct constraint_node { + u32 permissions; + struct constraint_expr *expr; + struct constraint_node *next; +}; -struct io_rsrc_data; +struct type_set; -struct io_wq_hash; +struct constraint_expr { + u32 expr_type; + u32 attr; + u32 op; + struct ebitmap names; + struct type_set *type_names; + struct constraint_expr *next; +}; -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; - unsigned short n_ring_pages; - unsigned short n_sqe_pages; - struct page **ring_pages; - struct page **sqe_pages; - struct io_rings *rings; - struct task_struct *submitter_task; - struct percpu_ref refs; - }; - struct { - struct mutex uring_lock; - u32 *sq_array; - struct io_uring_sqe *sq_sqes; - unsigned int cached_sq_head; - unsigned int sq_entries; - struct io_rsrc_node *rsrc_node; - atomic_t cancel_seq; - 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; - }; - 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: 64; - long: 64; - long: 64; - long: 64; - struct { - struct io_uring_cqe *cqe_cached; - struct io_uring_cqe *cqe_sentinel; - unsigned int cached_cq_tail; - unsigned int cq_entries; - struct io_ev_fd __attribute__((btf_type_tag("rcu"))) *io_ev_fd; - struct wait_queue_head cq_wait; - unsigned int cq_extra; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; - struct { - spinlock_t completion_lock; - bool poll_multi_queue; - atomic_t cq_wait_nr; - struct io_wq_work_list iopoll_list; - struct io_hash_table cancel_table; - struct llist_head work_llist; - struct list_head io_buffers_comp; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; - 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: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; - struct wait_queue_head poll_wq; - struct io_restriction restrictions; - struct io_mapped_ubuf *dummy_ubuf; - struct io_rsrc_data *file_data; - struct io_rsrc_data *buf_data; - struct list_head rsrc_ref_list; - struct io_alloc_cache rsrc_node_cache; - struct wait_queue_head rsrc_quiesce_wq; - unsigned int rsrc_quiesce; - 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; - long: 64; - long: 64; - long: 64; +struct type_set { + struct ebitmap types; + struct ebitmap negset; + u32 flags; }; -struct io_uring { - u32 head; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 tail; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct role_datum { + u32 value; + u32 bounds; + struct ebitmap dominates; + struct ebitmap types; }; -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 user_datum { + u32 value; + u32 bounds; + struct ebitmap roles; + struct mls_range range; + struct mls_level dfltlevel; }; -struct io_fixed_file { - unsigned long file_ptr; +struct type_datum { + u32 value; + u32 bounds; + unsigned char primary; + unsigned char attribute; }; -struct io_cmd_data { - struct file *file; - __u8 data[56]; +struct avtab_key { + u16 source_type; + u16 target_type; + u16 target_class; + u16 specified; }; -struct io_cqe { - __u64 user_data; - __s32 res; +struct avtab_extended_perms; + +struct avtab_datum { union { - __u32 flags; - int fd; - }; + u32 data; + struct avtab_extended_perms *xperms; + } u; }; -struct io_tw_state; - -typedef void (*io_req_tw_func_t)(struct io_kiocb *, struct io_tw_state *); +struct avtab_node { + struct avtab_key key; + struct avtab_datum datum; + struct avtab_node *next; +}; -struct io_task_work { - struct llist_node node; - io_req_tw_func_t func; +struct extended_perms_data { + u32 p[8]; }; -struct io_wq_work { - struct io_wq_work_node list; - unsigned int flags; - int cancel_seq; +struct avtab_extended_perms { + u8 specified; + u8 driver; + struct extended_perms_data perms; }; -struct io_buffer; +struct cond_bool_datum { + __u32 value; + int state; +}; -struct async_poll; +struct role_allow { + u32 role; + u32 new_role; + struct role_allow *next; +}; -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; - unsigned int nr_tw; +struct ocontext { union { - struct hlist_node hash_node; + char *name; 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; + 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 io_tw_state { - bool locked; +struct genfs { + char *fstype; + struct ocontext *head; + struct genfs *next; }; -struct io_hash_bucket { - spinlock_t lock; - struct hlist_head list; - long: 64; - long: 64; - long: 64; - long: 64; +struct aa_perms { + u32 allow; + u32 deny; + u32 subtree; + u32 cond; + u32 kill; + u32 complain; + u32 prompt; + u32 audit; + u32 quiet; + u32 hide; + u32 xindex; + u32 tag; + u32 label; }; -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 table_header; -struct io_wq_hash { - refcount_t refs; - unsigned long map; - struct wait_queue_head wait; +struct aa_dfa { + struct kref count; + u16 flags; + u32 max_oob; + struct table_header *tables[8]; }; -struct io_fadvise { - struct file *file; - u64 offset; - u32 len; - u32 advice; +struct table_header { + u16 td_id; + u16 td_flags; + u32 td_hilen; + u32 td_lolen; + char td_data[0]; }; -enum string_size_units { - STRING_UNITS_10 = 0, - STRING_UNITS_2 = 1, +struct aa_str_table { + int size; + char **table; }; -typedef void (*dr_release_t)(struct device *, void *); - -struct strarray { - char **array; - size_t n; +struct aa_policydb { + struct kref count; + struct aa_dfa *dfa; + struct { + struct aa_perms *perms; + u32 size; + }; + struct aa_str_table trans; + unsigned int start[33]; }; -typedef mpi_limb_t *mpi_ptr_t; +enum lsm_order { + LSM_ORDER_FIRST = -1, + LSM_ORDER_MUTABLE = 0, + LSM_ORDER_LAST = 1, +}; -typedef int mpi_size_t; +struct lsm_blob_sizes; -struct sg_pool { - size_t size; - char *name; - struct kmem_cache *slab; - mempool_t *pool; +struct lsm_info { + const char *name; + enum lsm_order order; + unsigned long flags; + int *enabled; + int (*init)(); + struct lsm_blob_sizes *blobs; }; -struct sg_table { - struct scatterlist *sgl; - unsigned int nents; - unsigned int orig_nents; +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; + int lbs_xattr_count; }; -typedef void sg_free_fn(struct scatterlist *, unsigned int); - -typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); - -struct platform_device; +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 platform_device_id; +struct ima_digest_data; -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 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; + unsigned long real_ino; + dev_t real_dev; + 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 mfd_cell; - -struct pdev_archdata {}; - -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 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 platform_device_id { - char name[20]; - kernel_ulong_t driver_data; +struct scomp_scratch { + spinlock_t lock; + void *src; + void *dst; }; -struct clk; +struct crypto_template; -struct clk_bulk_data { - const char *id; - struct clk *clk; -}; +struct crypto_spawn; -struct of_dev_auxdata { - char *compatible; - resource_size_t phys_addr; - char *name; - void *platform_data; +struct crypto_instance { + struct crypto_alg alg; + struct crypto_template *tmpl; + union { + struct hlist_node list; + struct crypto_spawn *spawns; + }; + struct work_struct free_work; + void *__ctx[0]; }; -struct simple_pm_bus { - struct clk_bulk_data *clks; - int num_clks; -}; +struct rtattr; -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 crypto_template { + struct list_head list; + struct hlist_head instances; + struct module *module; + int (*create)(struct crypto_template *, struct rtattr **); + char name[128]; }; -typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32); - -struct msi_dev_domain { - struct xarray store; - struct irq_domain *domain; +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 platform_msi_priv_data; +struct acomp_req; -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 scatterlist; + +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 hotplug_slot_ops; +typedef void (*crypto_completion_t)(void *, int); -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 crypto_async_request { + struct list_head list; + crypto_completion_t complete; + void *data; + struct crypto_tfm *tfm; + u32 flags; }; -struct hotplug_slot_ops { - int (*enable_slot)(struct hotplug_slot *); - int (*disable_slot)(struct hotplug_slot *); - int (*set_attention_status)(struct hotplug_slot *, u8); - int (*hardware_test)(struct hotplug_slot *, u32); - int (*get_power_status)(struct hotplug_slot *, u8 *); - int (*get_attention_status)(struct hotplug_slot *, u8 *); - int (*get_latch_status)(struct hotplug_slot *, u8 *); - int (*get_adapter_status)(struct hotplug_slot *, u8 *); - int (*reset_slot)(struct hotplug_slot *, bool); +struct 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 rcec_ea { - u8 nextbusn; - u8 lastbusn; - u32 bitmap; +struct scatterlist { + unsigned long page_link; + unsigned int offset; + unsigned int length; + dma_addr_t dma_address; }; -struct dmi_strmatch { - unsigned char slot: 7; - unsigned char exact_match: 1; - char substr[79]; +struct comp_alg_common { + struct crypto_alg base; }; -struct dmi_system_id { - int (*callback)(const struct dmi_system_id *); - const char *ident; - struct dmi_strmatch matches[4]; - void *driver_data; -}; +struct crypto_scomp; -struct pci_reset_fn_method { - int (*reset_fn)(struct pci_dev *, bool); - char *name; +struct scomp_alg { + void * (*alloc_ctx)(struct crypto_scomp *); + void (*free_ctx)(struct crypto_scomp *, void *); + int (*compress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); + int (*decompress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; }; -struct bus_attribute { - struct attribute attr; - ssize_t (*show)(const struct bus_type *, char *); - ssize_t (*store)(const struct bus_type *, const char *, size_t); +struct crypto_scomp { + struct crypto_tfm base; }; -enum pci_dev_flags { - PCI_DEV_FLAGS_MSI_INTX_DISABLE_BUG = 1, - PCI_DEV_FLAGS_NO_D3 = 2, - PCI_DEV_FLAGS_ASSIGNED = 4, - PCI_DEV_FLAGS_ACS_ENABLED_QUIRK = 8, - PCI_DEV_FLAG_PCIE_BRIDGE_ALIAS = 32, - PCI_DEV_FLAGS_NO_BUS_RESET = 64, - PCI_DEV_FLAGS_NO_PM_RESET = 128, - PCI_DEV_FLAGS_VPD_REF_F0 = 256, - PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT = 512, - PCI_DEV_FLAGS_NO_FLR_RESET = 1024, - PCI_DEV_FLAGS_NO_RELAXED_ORDERING = 2048, - PCI_DEV_FLAGS_HAS_MSI_MASKING = 4096, +enum rq_end_io_ret { + RQ_END_IO_NONE = 0, + RQ_END_IO_FREE = 1, }; -enum { - PCI_STD_RESOURCES = 0, - PCI_STD_RESOURCE_END = 5, - PCI_ROM_RESOURCE = 6, - PCI_BRIDGE_RESOURCES = 7, - PCI_BRIDGE_RESOURCE_END = 10, - PCI_NUM_RESOURCES = 11, - DEVICE_COUNT_RESOURCE = 11, -}; +typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t); -enum pcie_reset_state { - pcie_deassert_reset = 1, - pcie_warm_reset = 2, - pcie_hot_reset = 3, -}; +typedef __u32 req_flags_t; -enum { - LOGIC_PIO_INDIRECT = 0, - LOGIC_PIO_CPU_MMIO = 1, +enum mq_rq_state { + MQ_RQ_IDLE = 0, + MQ_RQ_IN_FLIGHT = 1, + MQ_RQ_COMPLETE = 2, }; -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, +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 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; + }; + struct { + struct io_cq *icq; + void *priv[2]; + } elv; + struct { + unsigned int seq; + rq_end_io_fn *saved_end_io; + } flush; + u64 fifo_time; + rq_end_io_fn *end_io; + void *end_io_data; }; -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, -}; +struct elevator_type; -enum pcie_link_width { - PCIE_LNK_WIDTH_RESRV = 0, - PCIE_LNK_X1 = 1, - PCIE_LNK_X2 = 2, - PCIE_LNK_X4 = 4, - PCIE_LNK_X8 = 8, - PCIE_LNK_X12 = 12, - PCIE_LNK_X16 = 16, - PCIE_LNK_X32 = 32, - PCIE_LNK_WIDTH_UNKNOWN = 255, +struct elevator_queue { + struct elevator_type *type; + void *elevator_data; + struct kobject kobj; + struct mutex sysfs_lock; + unsigned long flags; + struct hlist_head hash[64]; }; -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 elv_merge { + ELEVATOR_NO_MERGE = 0, + ELEVATOR_FRONT_MERGE = 1, + ELEVATOR_BACK_MERGE = 2, + ELEVATOR_DISCARD_MERGE = 3, }; -enum { - pci_channel_io_normal = 1, - pci_channel_io_frozen = 2, - pci_channel_io_perm_failure = 3, -}; +typedef unsigned int blk_insert_t; -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 blk_mq_alloc_data; -struct pci_cap_saved_data { - u16 cap_nr; - bool cap_extended; - unsigned int size; - u32 data[0]; +struct elevator_mq_ops { + int (*init_sched)(struct request_queue *, struct elevator_type *); + void (*exit_sched)(struct elevator_queue *); + int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int); + void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int); + void (*depth_updated)(struct blk_mq_hw_ctx *); + bool (*allow_merge)(struct request_queue *, struct request *, struct bio *); + bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int); + int (*request_merge)(struct request_queue *, struct request **, struct bio *); + void (*request_merged)(struct request_queue *, struct request *, enum elv_merge); + void (*requests_merged)(struct request_queue *, struct request *, struct request *); + void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *); + void (*prepare_request)(struct request *); + void (*finish_request)(struct request *); + void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, blk_insert_t); + struct request * (*dispatch_request)(struct blk_mq_hw_ctx *); + bool (*has_work)(struct blk_mq_hw_ctx *); + void (*completed_request)(struct request *, u64); + void (*requeue_request)(struct request *); + struct request * (*former_request)(struct request_queue *, struct request *); + struct request * (*next_request)(struct request_queue *, struct request *); + void (*init_icq)(struct io_cq *); + void (*exit_icq)(struct io_cq *); }; -struct pci_cap_saved_state { - struct hlist_node next; - struct pci_cap_saved_data cap; -}; +struct elv_fs_entry; -struct pci_pme_device { +struct blk_mq_debugfs_attr; + +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 pci_dev *dev; }; -struct pci_saved_state { - u32 config_space[16]; - struct pci_cap_saved_data cap[0]; -}; +struct sbitmap_word; -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 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; }; -typedef int (*dr_match_t)(struct device *, void *, void *); - -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; +struct blk_mq_hw_ctx { + struct { + spinlock_t lock; + struct list_head dispatch; + unsigned long state; + long: 64; + long: 64; + }; + struct delayed_work run_work; + cpumask_var_t cpumask; + int next_cpu; + int next_cpu_batch; unsigned long flags; - void *hostdata; - const struct logic_pio_host_ops *ops; + 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 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; }; -struct logic_pio_host_ops { - u32 (*in)(void *, unsigned long, size_t); - void (*out)(void *, unsigned long, u32, size_t); - u32 (*ins)(void *, unsigned long, void *, size_t, unsigned int); - void (*outs)(void *, unsigned long, const void *, size_t, unsigned int); +struct blk_flush_queue { + spinlock_t mq_flush_lock; + unsigned int flush_pending_idx: 1; + unsigned int flush_running_idx: 1; + blk_status_t rq_status; + unsigned long flush_pending_since; + struct list_head flush_queue[2]; + unsigned long flush_data_in_flight; + struct request *flush_rq; }; -struct 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); - unsigned long private[0]; +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 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 blk_mq_ctxs { + struct kobject kobj; + struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx; }; -struct acpi_osi_entry { - char string[64]; - bool enable; +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; }; -typedef u32 (*acpi_interface_handler)(acpi_string, u32); +struct blk_mq_tags { + unsigned int nr_tags; + unsigned int nr_reserved_tags; + unsigned int active_queues; + struct sbitmap_queue bitmap_tags; + struct sbitmap_queue breserved_tags; + struct request **rqs; + struct request **static_rqs; + struct list_head page_list; + spinlock_t lock; +}; -struct nvs_region { - __u64 phys_start; - __u64 size; - struct list_head node; +struct sbq_wait_state { + wait_queue_head_t wait; + long: 64; + long: 64; + long: 64; }; -struct acpi_wakeup_handler { - struct list_head list_node; - bool (*wakeup)(void *); - void *context; +typedef __u32 blk_mq_req_flags_t; + +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; }; -union acpi_operand_object; +struct elv_fs_entry { + struct attribute attr; + ssize_t (*show)(struct elevator_queue *, char *); + ssize_t (*store)(struct elevator_queue *, const char *, size_t); +}; -struct acpi_object_common { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; +struct blk_mq_debugfs_attr { + const char *name; + umode_t mode; + int (*show)(void *, struct seq_file *); + ssize_t (*write)(void *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + const struct seq_operations *seq_ops; }; -struct acpi_object_integer { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 fill[3]; - u64 value; +enum rq_qos_id { + RQ_QOS_WBT = 0, + RQ_QOS_LATENCY = 1, + RQ_QOS_COST = 2, }; -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 rq_qos_ops; + +struct rq_qos { + const struct rq_qos_ops *ops; + struct gendisk *disk; + enum rq_qos_id id; + struct rq_qos *next; + struct dentry *debugfs_dir; }; -struct acpi_namespace_node; +struct rq_qos_ops { + void (*throttle)(struct rq_qos *, struct bio *); + void (*track)(struct rq_qos *, struct request *, struct bio *); + void (*merge)(struct rq_qos *, struct request *, struct bio *); + void (*issue)(struct rq_qos *, struct request *); + void (*requeue)(struct rq_qos *, struct request *); + void (*done)(struct rq_qos *, struct request *); + void (*done_bio)(struct rq_qos *, struct bio *); + void (*cleanup)(struct rq_qos *, struct bio *); + void (*queue_depth_changed)(struct rq_qos *); + void (*exit)(struct rq_qos *); + const struct blk_mq_debugfs_attr *debugfs_attrs; +}; -struct 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 blk_mq_queue_data { + struct request *rq; + bool last; }; -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 blk_mq_queue_map { + unsigned int *mq_map; + unsigned int nr_queues; + unsigned int queue_offset; }; -struct acpi_object_event { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - void *os_semaphore; +struct blk_mq_tag_set { + const struct blk_mq_ops *ops; + struct blk_mq_queue_map map[3]; + unsigned int nr_maps; + unsigned int nr_hw_queues; + unsigned int queue_depth; + unsigned int reserved_tags; + unsigned int cmd_size; + int numa_node; + unsigned int timeout; + unsigned int flags; + void *driver_data; + struct blk_mq_tags **tags; + struct blk_mq_tags *shared_tags; + struct mutex tag_list_lock; + struct list_head tag_list; + struct srcu_struct *srcu; }; -struct acpi_walk_state; +struct blkg_iostat { + u64 bytes[3]; + u64 ios[3]; +}; -typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *); +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; +}; -typedef u16 acpi_owner_id; +struct blkcg; -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 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 acpi_thread_state; +struct blkcg_policy_data; -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; +struct blkcg { + struct cgroup_subsys_state css; + spinlock_t lock; + refcount_t online_pin; + struct xarray blkg_tree; + struct blkcg_gq __attribute__((btf_type_tag("rcu"))) *blkg_hint; + struct hlist_head blkg_list; + struct blkcg_policy_data *cpd[6]; + struct list_head all_blkcgs_node; + struct llist_head __attribute__((btf_type_tag("percpu"))) *lhead; + struct list_head cgwb_list; }; -struct 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 blkcg_policy_data { + struct blkcg *blkcg; + int plid; }; -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 blkg_policy_data { + struct blkcg_gq *blkg; + int plid; + bool online; }; -struct acpi_gpe_block_info; +struct rchan_callbacks; -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 rchan_buf; -struct acpi_object_power_resource { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - union acpi_operand_object *notify_list[2]; - union acpi_operand_object *handler; - u32 system_level; - u32 resource_order; +struct 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 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 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 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 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; }; -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 queue_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct request_queue *, char *); + ssize_t (*store)(struct request_queue *, const char *, size_t); }; -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; +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 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; +enum blkg_rwstat_type { + BLKG_RWSTAT_READ = 0, + BLKG_RWSTAT_WRITE = 1, + BLKG_RWSTAT_SYNC = 2, + BLKG_RWSTAT_ASYNC = 3, + BLKG_RWSTAT_DISCARD = 4, + BLKG_RWSTAT_NR = 5, + BLKG_RWSTAT_TOTAL = 5, }; -struct 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 blkg_rwstat { + struct percpu_counter cpu_cnt[5]; + atomic64_t aux_cnt[5]; }; -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; +struct blkg_rwstat_sample { + u64 cnt[5]; }; -typedef void (*acpi_notify_handler)(acpi_handle, u32, void *); +typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t); -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 void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *); -typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *); +typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(struct gendisk *, struct blkcg *, gfp_t); -typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **); +typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *); -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; -}; +typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *); -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; -}; +typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *); -struct acpi_object_extra { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - struct acpi_namespace_node *method_REG; - struct acpi_namespace_node *scope_node; - void *region_context; - u8 *aml_start; - u32 aml_length; -}; - -typedef void (*acpi_object_handler)(acpi_handle, void *); - -struct acpi_object_data { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - acpi_object_handler handler; - void *pointer; -}; - -struct acpi_object_cache_list { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - union acpi_operand_object *next; -}; - -union acpi_name_union { - u32 integer; - char ascii[4]; -}; - -struct acpi_namespace_node { - union acpi_operand_object *object; - u8 descriptor_type; - u8 type; - u16 flags; - union acpi_name_union name; - struct acpi_namespace_node *parent; - struct acpi_namespace_node *child; - struct acpi_namespace_node *peer; - acpi_owner_id owner_id; -}; - -union acpi_operand_object { - struct acpi_object_common common; - struct acpi_object_integer integer; - struct acpi_object_string string; - struct acpi_object_buffer buffer; - struct acpi_object_package package; - struct acpi_object_event event; - struct acpi_object_method method; - struct acpi_object_mutex mutex; - struct acpi_object_region region; - struct acpi_object_notify_common common_notify; - struct acpi_object_device device; - struct acpi_object_power_resource power_resource; - struct acpi_object_processor processor; - struct acpi_object_thermal_zone thermal_zone; - struct acpi_object_field_common common_field; - struct acpi_object_region_field field; - struct acpi_object_buffer_field buffer_field; - struct acpi_object_bank_field bank_field; - struct acpi_object_index_field index_field; - struct acpi_object_notify_handler notify; - struct acpi_object_addr_handler address_space; - struct acpi_object_reference reference; - struct acpi_object_extra extra; - struct acpi_object_data data; - struct acpi_object_cache_list cache; - struct acpi_namespace_node node; -}; - -union acpi_parse_object; - -union acpi_generic_state; +typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *); -struct acpi_parse_state { - u8 *aml_start; - u8 *aml; - u8 *aml_end; - u8 *pkg_start; - u8 *pkg_end; - union acpi_parse_object *start_op; - struct acpi_namespace_node *start_node; - union acpi_generic_state *scope; - union acpi_parse_object *start_scope; - u32 aml_size; -}; - -typedef acpi_status (*acpi_parse_downwards)(struct acpi_walk_state *, union acpi_parse_object **); - -typedef acpi_status (*acpi_parse_upwards)(struct acpi_walk_state *); +typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *); -struct acpi_opcode_info; +typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *); -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; +struct blkcg_policy { + int plid; + struct cftype *dfl_cftypes; + struct cftype *legacy_cftypes; + blkcg_pol_alloc_cpd_fn *cpd_alloc_fn; + blkcg_pol_free_cpd_fn *cpd_free_fn; + blkcg_pol_alloc_pd_fn *pd_alloc_fn; + blkcg_pol_init_pd_fn *pd_init_fn; + blkcg_pol_online_pd_fn *pd_online_fn; + blkcg_pol_offline_pd_fn *pd_offline_fn; + blkcg_pol_free_pd_fn *pd_free_fn; + blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn; + blkcg_pol_stat_pd_fn *pd_stat_fn; }; -union acpi_parse_value { - u64 integer; - u32 size; - char *string; - u8 *buffer; - char *name; - union acpi_parse_object *arg; +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 = 536870912, + REQ_F_ISREG = 1073741824, + 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 = 67108864, + REQ_F_CLEAR_POLLIN = 134217728, + REQ_F_HASH_LOCKED = 268435456, + REQ_F_POLL_NO_LAZY = 2147483648, }; -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; +enum io_uring_cmd_flags { + IO_URING_F_COMPLETE_DEFER = 1, + IO_URING_F_UNLOCKED = 2, + IO_URING_F_MULTISHOT = 4, + IO_URING_F_IOWQ = 8, + IO_URING_F_NONBLOCK = -2147483648, + IO_URING_F_SQE128 = 256, + IO_URING_F_CQE32 = 512, + IO_URING_F_IOPOLL = 1024, + IO_URING_F_CANCEL = 2048, + IO_URING_F_COMPAT = 4096, }; -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; +enum { + IOU_OK = 0, + IOU_ISSUE_SKIP_COMPLETE = -529, + IOU_STOP_MULTISHOT = -125, }; -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]; +struct io_madvise { + struct file *file; + u64 addr; + u32 len; + u32 advice; }; -union acpi_parse_object { - struct acpi_parse_obj_common common; - struct acpi_parse_obj_named named; - struct acpi_parse_obj_asl asl; -}; +struct io_ring_ctx; -struct acpi_common_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; -}; +struct io_wq; -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 io_uring_task { + int cached_refs; + const struct io_ring_ctx *last; + struct io_wq *io_wq; + struct file *registered_rings[16]; + struct xarray xa; + struct wait_queue_head wait; + atomic_t in_cancel; + atomic_t inflight_tracked; + struct percpu_counter inflight; + long: 64; + long: 64; + long: 64; + struct { + struct llist_head task_list; + struct callback_head task_work; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; }; -struct acpi_update_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - union acpi_operand_object *object; -}; +struct io_fixed_file; -struct acpi_scope_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - struct acpi_namespace_node *node; +struct io_file_table { + struct io_fixed_file *files; + unsigned long *bitmap; + unsigned int alloc_hint; }; -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 io_wq_work_node { + struct io_wq_work_node *next; }; -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 io_wq_work_list { + struct io_wq_work_node *first; + struct io_wq_work_node *last; }; -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 io_kiocb; -struct acpi_result_values { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - union acpi_operand_object *obj_desc[8]; +struct io_submit_link { + struct io_kiocb *head; + struct io_kiocb *last; }; -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; +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; }; -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 io_hash_bucket; -struct acpi_global_notify_handler { - acpi_notify_handler handler; - void *context; +struct io_hash_table { + struct io_hash_bucket *hbs; + unsigned int hash_bits; }; -struct acpi_opcode_info { - u32 parse_args; - u32 runtime_args; - u16 flags; - u8 object_type; - u8 class; - u8 type; +struct io_alloc_cache { + struct io_wq_work_node list; + unsigned int nr_cached; + unsigned int max_cached; + size_t elem_size; }; -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 io_uring_cqe { + __u64 user_data; + __s32 res; + __u32 flags; + __u64 big_cqe[0]; }; -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 io_restriction { + unsigned long register_op[1]; + unsigned long sqe_op[1]; + u8 sqe_flags_allowed; + u8 sqe_flags_required; + bool registered; }; -struct acpi_gpe_address { - u8 space_id; - u64 address; -}; +struct io_rings; -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 io_rsrc_node; -struct acpi_gpe_handler_info; +struct io_mapped_ubuf; -struct acpi_gpe_notify_info; +struct io_buffer_list; -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 io_ev_fd; -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; -}; +struct io_sq_data; -typedef u32 (*acpi_gpe_handler)(acpi_handle, u32, void *); +struct io_rsrc_data; -struct acpi_gpe_handler_info { - acpi_gpe_handler address; - void *context; - struct acpi_namespace_node *method_node; - u8 original_flags; - u8 originally_enabled; -}; +struct io_wq_hash; -struct acpi_gpe_notify_info { - struct acpi_namespace_node *device_node; - struct acpi_gpe_notify_info *next; +struct io_ring_ctx { + struct { + unsigned int flags; + unsigned int drain_next: 1; + unsigned int restricted: 1; + unsigned int off_timeout_used: 1; + unsigned int drain_active: 1; + unsigned int has_evfd: 1; + unsigned int task_complete: 1; + unsigned int lockless_cq: 1; + unsigned int syscall_iopoll: 1; + unsigned int poll_activated: 1; + unsigned int drain_disabled: 1; + unsigned int compat: 1; + struct task_struct *submitter_task; + struct io_rings *rings; + struct percpu_ref refs; + enum task_work_notify_mode notify_method; + long: 64; + long: 64; + }; + struct { + struct mutex uring_lock; + u32 *sq_array; + struct io_uring_sqe *sq_sqes; + unsigned int cached_sq_head; + unsigned int sq_entries; + struct io_rsrc_node *rsrc_node; + atomic_t cancel_seq; + 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 io_hash_table cancel_table_locked; + struct io_alloc_cache apoll_cache; + struct io_alloc_cache netmsg_cache; + struct io_wq_work_list iopoll_list; + bool poll_multi_queue; + struct hlist_head cancelable_uring_cmd; + long: 64; + }; + struct { + struct io_uring_cqe *cqe_cached; + struct io_uring_cqe *cqe_sentinel; + unsigned int cached_cq_tail; + unsigned int cq_entries; + struct io_ev_fd __attribute__((btf_type_tag("rcu"))) *io_ev_fd; + unsigned int cq_extra; + long: 64; + long: 64; + long: 64; + }; + struct { + struct llist_head work_llist; + unsigned long check_cq; + atomic_t cq_wait_nr; + atomic_t cq_timeouts; + struct wait_queue_head cq_wait; + }; + struct { + spinlock_t timeout_lock; + struct list_head timeout_list; + struct list_head ltimeout_list; + unsigned int cq_last_tm_flush; + }; + struct io_uring_cqe completion_cqes[16]; + spinlock_t completion_lock; + struct io_wq_work_list locked_free_list; + unsigned int locked_free_nr; + struct list_head io_buffers_comp; + struct list_head cq_overflow_list; + struct io_hash_table cancel_table; + struct hlist_head waitid_list; + struct hlist_head futex_list; + struct io_alloc_cache futex_cache; + const struct cred *sq_creds; + struct io_sq_data *sq_data; + struct wait_queue_head sqo_sq_wait; + struct list_head sqd_list; + unsigned int file_alloc_start; + unsigned int file_alloc_end; + struct xarray personalities; + u32 pers_next; + struct list_head io_buffers_cache; + struct hlist_head io_buf_list; + struct wait_queue_head poll_wq; + struct io_restriction restrictions; + struct io_mapped_ubuf *dummy_ubuf; + struct io_rsrc_data *file_data; + struct io_rsrc_data *buf_data; + struct list_head rsrc_ref_list; + struct io_alloc_cache rsrc_node_cache; + struct wait_queue_head rsrc_quiesce_wq; + unsigned int rsrc_quiesce; + 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; + unsigned short n_ring_pages; + unsigned short n_sqe_pages; + struct page **ring_pages; + struct page **sqe_pages; }; -union acpi_predefined_info; +struct io_uring { + u32 head; + u32 tail; +}; -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 io_rings { + struct io_uring sq; + struct io_uring cq; + u32 sq_ring_mask; + u32 cq_ring_mask; + u32 sq_ring_entries; + u32 cq_ring_entries; + u32 sq_dropped; + atomic_t sq_flags; + u32 cq_flags; + u32 cq_overflow; + long: 64; + long: 64; + struct io_uring_cqe cqes[0]; }; -struct acpi_name_info { - char name[4]; - u16 argument_list; - u8 expected_btypes; -} __attribute__((packed)); +struct io_fixed_file { + unsigned long file_ptr; +}; -struct acpi_package_info { - u8 type; - u8 object_type1; - u8 count1; - u8 object_type2; - u8 count2; - u16 reserved; -} __attribute__((packed)); +struct io_cmd_data { + struct file *file; + __u8 data[56]; +}; -struct acpi_package_info2 { - u8 type; - u8 count; - u8 object_type[4]; - u8 reserved; +struct io_cqe { + __u64 user_data; + __s32 res; + union { + __u32 flags; + int fd; + }; }; -struct acpi_package_info3 { - u8 type; - u8 count; - u8 object_type[2]; - u8 tail_object_type; - u16 reserved; -} __attribute__((packed)); +struct io_tw_state; -struct acpi_package_info4 { - u8 type; - u8 object_type1; - u8 count1; - u8 sub_object_types; - u8 pkg_count; - u16 reserved; -} __attribute__((packed)); +typedef void (*io_req_tw_func_t)(struct io_kiocb *, struct io_tw_state *); -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 io_task_work { + struct llist_node node; + io_req_tw_func_t func; }; -typedef u8 acpi_adr_space_type; - -typedef enum { - ACPI_IMODE_LOAD_PASS1 = 1, - ACPI_IMODE_LOAD_PASS2 = 2, - ACPI_IMODE_EXECUTE = 3, -} acpi_interpreter_mode; - -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 io_wq_work { + struct io_wq_work_node list; + unsigned int flags; + int cancel_seq; }; -typedef acpi_status (*acpi_object_converter)(struct acpi_namespace_node *, union acpi_operand_object *, union acpi_operand_object **); +struct io_buffer; -struct acpi_simple_repair_info { - char name[4]; - u32 unexpected_btypes; - u32 package_index; - acpi_object_converter object_converter; -}; +struct async_poll; -enum acpi_return_package_types { - ACPI_PTYPE1_FIXED = 1, - ACPI_PTYPE1_VAR = 2, - ACPI_PTYPE1_OPTION = 3, - ACPI_PTYPE2 = 4, - ACPI_PTYPE2_COUNT = 5, - ACPI_PTYPE2_PKG_COUNT = 6, - ACPI_PTYPE2_FIXED = 7, - ACPI_PTYPE2_MIN = 8, - ACPI_PTYPE2_REV_FIXED = 9, - ACPI_PTYPE2_FIX_VAR = 10, - ACPI_PTYPE2_VAR_VAR = 11, - ACPI_PTYPE2_UUID_PAIR = 12, - ACPI_PTYPE_CUSTOM = 13, +struct 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; + unsigned int nr_tw; + struct hlist_node hash_node; + struct async_poll *apoll; + void *async_data; + struct io_kiocb *link; + const struct cred *creds; + struct io_wq_work work; + struct { + u64 extra1; + u64 extra2; + } big_cqe; }; -struct acpi_buffer { - acpi_size length; - void *pointer; +struct io_tw_state { + bool locked; }; -struct jh71x0_clk_data { - const char *name; - unsigned long flags; - u32 max; - u8 parents[4]; +struct io_hash_bucket { + spinlock_t lock; + struct hlist_head list; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct clk_core; +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 clk_init_data; +struct io_wq_hash { + refcount_t refs; + unsigned long map; + struct wait_queue_head wait; +}; -struct clk_hw { - struct clk_core *core; - struct clk *clk; - const struct clk_init_data *init; +struct io_fadvise { + struct file *file; + u64 offset; + u32 len; + u32 advice; }; -struct clk_ops; +struct waitid_info { + pid_t pid; + uid_t uid; + int status; + int cause; +}; -struct clk_parent_data; +struct siginfo; -struct clk_init_data { - const char *name; - const struct clk_ops *ops; - const char * const *parent_names; - const struct clk_parent_data *parent_data; - const struct clk_hw **parent_hws; - u8 num_parents; - unsigned long flags; +struct io_waitid { + struct file *file; + int which; + pid_t upid; + int options; + atomic_t refs; + struct wait_queue_head *head; + struct siginfo __attribute__((btf_type_tag("user"))) *infop; + struct waitid_info info; }; -struct clk_rate_request; +struct siginfo { + union { + struct { + int si_signo; + int si_errno; + int si_code; + union __sifields _sifields; + }; + int _si_pad[32]; + }; +}; -struct clk_duty; +struct rusage; -struct clk_ops { - int (*prepare)(struct clk_hw *); - void (*unprepare)(struct clk_hw *); - int (*is_prepared)(struct clk_hw *); - void (*unprepare_unused)(struct clk_hw *); - int (*enable)(struct clk_hw *); - void (*disable)(struct clk_hw *); - int (*is_enabled)(struct clk_hw *); - void (*disable_unused)(struct clk_hw *); - int (*save_context)(struct clk_hw *); - void (*restore_context)(struct clk_hw *); - unsigned long (*recalc_rate)(struct clk_hw *, unsigned long); - long (*round_rate)(struct clk_hw *, unsigned long, unsigned long *); - int (*determine_rate)(struct clk_hw *, struct clk_rate_request *); - int (*set_parent)(struct clk_hw *, u8); - u8 (*get_parent)(struct clk_hw *); - int (*set_rate)(struct clk_hw *, unsigned long, unsigned long); - int (*set_rate_and_parent)(struct clk_hw *, unsigned long, unsigned long, u8); - unsigned long (*recalc_accuracy)(struct clk_hw *, unsigned long); - int (*get_phase)(struct clk_hw *); - int (*set_phase)(struct clk_hw *, int); - int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *); - int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *); - int (*init)(struct clk_hw *); - void (*terminate)(struct clk_hw *); - void (*debug_init)(struct clk_hw *, struct dentry *); +struct 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 clk_rate_request { - struct clk_core *core; - unsigned long rate; - unsigned long min_rate; - unsigned long max_rate; - unsigned long best_parent_rate; - struct clk_hw *best_parent_hw; +struct __kernel_old_timeval { + __kernel_long_t tv_sec; + __kernel_long_t tv_usec; }; -struct clk_duty { - unsigned int num; - unsigned int den; +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 clk_parent_data { - const struct clk_hw *hw; - const char *fw_name; - const char *name; - int index; +struct io_waitid_async { + struct io_kiocb *req; + struct wait_opts wo; }; -struct of_phandle_args { - struct device_node *np; - int args_count; - uint32_t args[16]; +struct io_cancel_data { + struct io_ring_ctx *ctx; + union { + u64 data; + struct file *file; + }; + u8 opcode; + u32 flags; + int seq; }; -struct jh71x0_clk { - struct clk_hw hw; - unsigned int idx; - unsigned int max_div; -}; +typedef unsigned long mpi_limb_t; -struct jh71x0_clk_priv { - spinlock_t rmw_lock; - struct device *dev; - void *base; - struct clk_hw *pll[3]; - struct jh71x0_clk reg[0]; +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; }; -struct auxiliary_device; +typedef mpi_limb_t *mpi_ptr_t; -struct auxiliary_device_id; +typedef int mpi_size_t; -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 barrett_ctx_s; -struct auxiliary_device { - struct device dev; - const char *name; - u32 id; +typedef struct barrett_ctx_s *mpi_barrett_t; + +struct barrett_ctx_s { + MPI m; + int m_copied; + int k; + MPI y; + MPI r1; + MPI r2; + MPI r3; }; -struct auxiliary_device_id { - char name[32]; - kernel_ulong_t driver_data; +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, }; -struct jh7110_reset_info { - unsigned int nr_resets; - unsigned int assert_offset; - unsigned int status_offset; +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 jh71x0_reset_adev { - void *base; - struct auxiliary_device adev; +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 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 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 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 assoc_array_ops; -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; +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]; }; -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 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 serial_iso7816 { - __u32 flags; - __u32 tg; - __u32 sc_fi; - __u32 sc_di; - __u32 clk; - __u32 reserved[5]; +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 uart_state; +struct assoc_array_delete_collapse_context { + struct assoc_array_node *node; + const void *skip_leaf; + int slot; +}; -struct console; +typedef uint8_t BYTE; -struct uart_ops; +typedef uintptr_t uptrval; -struct serial_port_device; +typedef uint32_t U32; -struct gpio_desc; +typedef uint64_t U64; -struct uart_port { - spinlock_t lock; - unsigned long iobase; - unsigned char *membase; - unsigned int (*serial_in)(struct uart_port *, int); - void (*serial_out)(struct uart_port *, int, int); - void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - unsigned int (*get_mctrl)(struct uart_port *); - void (*set_mctrl)(struct uart_port *, unsigned int); - unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *); - void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int); - int (*startup)(struct uart_port *); - void (*shutdown)(struct uart_port *); - void (*throttle)(struct uart_port *); - void (*unthrottle)(struct uart_port *); - int (*handle_irq)(struct uart_port *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - void (*handle_break)(struct uart_port *); - int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); - int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *); - unsigned int ctrl_id; - unsigned int port_id; - unsigned int irq; - unsigned long irqflags; - unsigned int uartclk; - unsigned int fifosize; - unsigned char x_char; - unsigned char regshift; - unsigned char iotype; - unsigned char quirks; - unsigned int read_status_mask; - unsigned int ignore_status_mask; - struct uart_state *state; - struct uart_icount icount; - struct console *cons; - upf_t flags; - upstat_t status; - bool hw_stopped; - unsigned int mctrl; - unsigned int frame_time; - unsigned int type; - const struct uart_ops *ops; - unsigned int custom_divisor; - unsigned int line; - unsigned int minor; - resource_size_t mapbase; - resource_size_t mapsize; - struct device *dev; - struct serial_port_device *port_dev; - unsigned long sysrq; - 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; -}; +typedef enum { + endOnOutputSize = 0, + endOnInputSize = 1, +} endCondition_directive; -struct mctrl_gpios; +typedef enum { + decode_full_block = 0, + partial_decode = 1, +} earlyEnd_directive; -struct uart_8250_dma; +typedef enum { + noDict = 0, + withPrefix64k = 1, + usingExtDict = 2, +} dict_directive; -struct uart_8250_ops; +typedef struct { + const uint8_t *externalDict; + size_t extDictSize; + const uint8_t *prefixEnd; + size_t prefixSize; +} LZ4_streamDecode_t_internal; -struct uart_8250_em485; +typedef union { + unsigned long long table[4]; + LZ4_streamDecode_t_internal internal_donotuse; +} LZ4_streamDecode_t; -struct uart_8250_port { - struct uart_port port; - struct timer_list timer; - struct list_head list; - u32 capabilities; - u16 bugs; - unsigned int tx_loadsz; - unsigned char acr; - unsigned char fcr; - unsigned char ier; - unsigned char lcr; - unsigned char mcr; - unsigned char cur_iotype; - unsigned int rpm_tx_active; - unsigned char canary; - unsigned char probe; - struct mctrl_gpios *gpios; - u16 lsr_saved_flags; - u16 lsr_save_mask; - unsigned char msr_saved_flags; - struct uart_8250_dma *dma; - const struct uart_8250_ops *ops; - u32 (*dl_read)(struct uart_8250_port *); - void (*dl_write)(struct uart_8250_port *, u32); - struct uart_8250_em485 *em485; - void (*rs485_start_tx)(struct uart_8250_port *); - void (*rs485_stop_tx)(struct uart_8250_port *); - struct delayed_work overrun_backoff; - u32 overrun_backoff_time_ms; -}; +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; -enum uart_pm_state { - UART_PM_STATE_ON = 0, - UART_PM_STATE_OFF = 3, - UART_PM_STATE_UNDEFINED = 4, -}; +typedef uint16_t U16; -struct circ_buf { - char *buf; - int head; - int tail; -}; +typedef struct { + U16 nextState; + BYTE nbAdditionalBits; + BYTE nbBits; + U32 baseValue; +} ZSTD_seqSymbol; -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 U32 HUF_DTable; -typedef unsigned int uint; +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; -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; -}; +typedef enum { + ZSTD_frame = 0, + ZSTD_skippableFrame = 1, +} ZSTD_frameType_e; -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); -}; +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; -struct dma_chan; +typedef enum { + bt_raw = 0, + bt_rle = 1, + bt_compressed = 2, + bt_reserved = 3, +} blockType_e; -typedef bool (*dma_filter_fn)(struct dma_chan *, void *); +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; -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, +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; }; -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, -}; +typedef enum { + ZSTD_f_zstd1 = 0, + ZSTD_f_zstd1_magicless = 1, +} ZSTD_format_e; -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 enum { + ZSTD_d_validateChecksum = 0, + ZSTD_d_ignoreChecksum = 1, +} ZSTD_forceIgnoreChecksum_e; -typedef s32 dma_cookie_t; +typedef void * (*ZSTD_allocFunction)(void *, size_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; -}; +typedef void (*ZSTD_freeFunction)(void *, void *); -struct dma_device; +typedef struct { + ZSTD_allocFunction customAlloc; + ZSTD_freeFunction customFree; + void *opaque; +} ZSTD_customMem; -struct dma_chan_dev; +typedef enum { + ZSTD_use_indefinitely = -1, + ZSTD_dont_use = 0, + ZSTD_use_once = 1, +} ZSTD_dictUses_e; -struct dma_chan_percpu; +struct ZSTD_DDict_s; -struct dma_router; +typedef struct ZSTD_DDict_s ZSTD_DDict; -struct dma_chan { - struct dma_device *device; - struct device *slave; - dma_cookie_t cookie; - dma_cookie_t completed_cookie; - int chan_id; - struct dma_chan_dev *dev; - const char *name; - char *dbg_client_name; - struct list_head device_node; - struct dma_chan_percpu __attribute__((btf_type_tag("percpu"))) *local; - int client_count; - int table_count; - struct dma_router *router; - void *route_data; - void *private; -}; +typedef struct { + const ZSTD_DDict **ddictPtrTable; + size_t ddictPtrTableSize; + size_t ddictPtrCount; +} ZSTD_DDictHashSet; -struct dma_slave_map; +typedef enum { + ZSTD_rmd_refSingleDDict = 0, + ZSTD_rmd_refMultipleDDicts = 1, +} ZSTD_refMultipleDDicts_e; -struct dma_filter { - dma_filter_fn fn; - int mapcnt; - const struct dma_slave_map *map; -}; +typedef enum { + zdss_init = 0, + zdss_loadHeader = 1, + zdss_read = 2, + zdss_load = 3, + zdss_flush = 4, +} ZSTD_dStreamStage; -typedef struct { - unsigned long bits[1]; -} dma_cap_mask_t; +typedef enum { + ZSTD_bm_buffered = 0, + ZSTD_bm_stable = 1, +} ZSTD_bufferMode_e; -enum dma_desc_metadata_mode { - DESC_METADATA_NONE = 0, - DESC_METADATA_CLIENT = 1, - DESC_METADATA_ENGINE = 2, +struct ZSTD_outBuffer_s { + void *dst; + size_t size; + size_t pos; }; -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, -}; +typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; -enum dma_residue_granularity { - DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, - DMA_RESIDUE_GRANULARITY_SEGMENT = 1, - DMA_RESIDUE_GRANULARITY_BURST = 2, -}; +typedef enum { + ZSTD_not_in_dst = 0, + ZSTD_in_dst = 1, + ZSTD_split = 2, +} ZSTD_litLocation_e; -enum sum_check_flags { - SUM_CHECK_P_RESULT = 1, - SUM_CHECK_Q_RESULT = 2, +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; + 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; }; -enum dma_status { - DMA_COMPLETE = 0, - DMA_IN_PROGRESS = 1, - DMA_PAUSED = 2, - DMA_ERROR = 3, - DMA_OUT_OF_ORDER = 4, -}; +typedef struct ZSTD_DCtx_s ZSTD_DCtx; -struct dma_async_tx_descriptor; +typedef ZSTD_DCtx ZSTD_DStream; -struct dma_interleaved_template; +struct ZSTD_inBuffer_s { + const void *src; + size_t size; + size_t pos; +}; -struct dma_slave_caps; +typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; -struct dma_tx_state; +typedef ZSTD_ErrorCode zstd_error_code; -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; -}; +typedef ZSTD_DCtx zstd_dctx; -struct dma_slave_map { - const char *devname; - const char *slave; - void *param; -}; +typedef ZSTD_DStream zstd_dstream; -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, -}; +typedef ZSTD_outBuffer zstd_out_buffer; -typedef void (*dma_async_tx_callback)(void *); +typedef ZSTD_inBuffer zstd_in_buffer; -struct dmaengine_result; +typedef ZSTD_frameHeader zstd_frame_header; -typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); +struct ZSTD_DDict_s { + void *dictBuffer; + const void *dictContent; + size_t dictSize; + ZSTD_entropyDTables_t entropy; + U32 dictID; + U32 entropyPresent; + ZSTD_customMem cMem; +}; -struct dmaengine_unmap_data; +typedef enum { + ZSTD_dlm_byCopy = 0, + ZSTD_dlm_byRef = 1, +} ZSTD_dictLoadMethod_e; -struct dma_descriptor_metadata_ops; +typedef enum { + ZSTD_dct_auto = 0, + ZSTD_dct_rawContent = 1, + ZSTD_dct_fullDict = 2, +} ZSTD_dictContentType_e; -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; +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, }; -enum dmaengine_tx_result { - DMA_TRANS_NOERROR = 0, - DMA_TRANS_READ_FAILED = 1, - DMA_TRANS_WRITE_FAILED = 2, - DMA_TRANS_ABORTED = 3, -}; +typedef uint64_t vli_type; -struct dmaengine_result { - enum dmaengine_tx_result result; - u32 residue; +struct xz_dec_hash { + vli_type unpadded; + vli_type uncompressed; + uint32_t crc32; }; -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]; +enum xz_check { + XZ_CHECK_NONE = 0, + XZ_CHECK_CRC32 = 1, + XZ_CHECK_CRC64 = 4, + XZ_CHECK_SHA256 = 10, }; -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); +enum xz_mode { + XZ_SINGLE = 0, + XZ_PREALLOC = 1, + XZ_DYNALLOC = 2, }; -struct data_chunk { - size_t size; - size_t icg; - size_t dst_icg; - size_t src_icg; -}; +struct xz_dec_lzma2; -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 xz_dec_bcj; -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 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; }; -struct dma_tx_state { - dma_cookie_t last; - dma_cookie_t used; - u32 residue; - u32 in_flight_bytes; +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 dma_chan_dev { - struct dma_chan *chan; - struct device device; - int dev_id; - bool chan_dma_dev; +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, }; -struct dma_chan_percpu { - unsigned long memcpy_count; - unsigned long bytes_transferred; +enum OID { + OID_id_dsa = 0, + OID_id_ecPublicKey = 1, + OID_id_prime192v1 = 2, + OID_id_prime256v1 = 3, + OID_id_ecdsa_with_sha224 = 4, + OID_id_ecdsa_with_sha256 = 5, + OID_id_ecdsa_with_sha384 = 6, + OID_id_ecdsa_with_sha512 = 7, + OID_rsaEncryption = 8, + OID_sha256WithRSAEncryption = 9, + OID_sha384WithRSAEncryption = 10, + OID_sha512WithRSAEncryption = 11, + OID_sha224WithRSAEncryption = 12, + OID_data = 13, + OID_signed_data = 14, + OID_email_address = 15, + OID_contentType = 16, + OID_messageDigest = 17, + OID_signingTime = 18, + OID_smimeCapabilites = 19, + OID_smimeAuthenticatedAttrs = 20, + OID_mskrb5 = 21, + OID_krb5 = 22, + OID_krb5u2u = 23, + OID_msIndirectData = 24, + OID_msStatementType = 25, + OID_msSpOpusInfo = 26, + OID_msPeImageDataObjId = 27, + OID_msIndividualSPKeyPurpose = 28, + OID_msOutlookExpress = 29, + OID_ntlmssp = 30, + OID_negoex = 31, + OID_spnego = 32, + OID_IAKerb = 33, + OID_PKU2U = 34, + OID_Scram = 35, + OID_certAuthInfoAccess = 36, + OID_id_ansip384r1 = 37, + OID_sha256 = 38, + OID_sha384 = 39, + OID_sha512 = 40, + OID_sha224 = 41, + OID_commonName = 42, + OID_surname = 43, + OID_countryName = 44, + OID_locality = 45, + OID_stateOrProvinceName = 46, + OID_organizationName = 47, + OID_organizationUnitName = 48, + OID_title = 49, + OID_description = 50, + OID_name = 51, + OID_givenName = 52, + OID_initials = 53, + OID_generationalQualifier = 54, + OID_subjectKeyIdentifier = 55, + OID_keyUsage = 56, + OID_subjectAltName = 57, + OID_issuerAltName = 58, + OID_basicConstraints = 59, + OID_crlDistributionPoints = 60, + OID_certPolicies = 61, + OID_authorityKeyIdentifier = 62, + OID_extKeyUsage = 63, + OID_NetlogonMechanism = 64, + OID_appleLocalKdcSupported = 65, + OID_gostCPSignA = 66, + OID_gostCPSignB = 67, + OID_gostCPSignC = 68, + OID_gost2012PKey256 = 69, + OID_gost2012PKey512 = 70, + OID_gost2012Digest256 = 71, + OID_gost2012Digest512 = 72, + OID_gost2012Signature256 = 73, + OID_gost2012Signature512 = 74, + OID_gostTC26Sign256A = 75, + OID_gostTC26Sign256B = 76, + OID_gostTC26Sign256C = 77, + OID_gostTC26Sign256D = 78, + OID_gostTC26Sign512A = 79, + OID_gostTC26Sign512B = 80, + OID_gostTC26Sign512C = 81, + OID_sm2 = 82, + OID_sm3 = 83, + OID_SM2_with_SM3 = 84, + OID_sm3WithRSAEncryption = 85, + OID_TPMLoadableKey = 86, + OID_TPMImportableKey = 87, + OID_TPMSealedData = 88, + OID_sha3_256 = 89, + OID_sha3_384 = 90, + OID_sha3_512 = 91, + OID_id_ecdsa_with_sha3_256 = 92, + OID_id_ecdsa_with_sha3_384 = 93, + OID_id_ecdsa_with_sha3_512 = 94, + OID_id_rsassa_pkcs1_v1_5_with_sha3_256 = 95, + OID_id_rsassa_pkcs1_v1_5_with_sha3_384 = 96, + OID_id_rsassa_pkcs1_v1_5_with_sha3_512 = 97, + OID__NR = 98, }; -struct dma_router { - struct device *dev; - void (*route_free)(struct device *, void *); +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 uart_8250_ops { - int (*setup_irq)(struct uart_8250_port *); - void (*release_irq)(struct uart_8250_port *); - void (*setup_timer)(struct uart_8250_port *); +enum pin_config_param { + PIN_CONFIG_BIAS_BUS_HOLD = 0, + PIN_CONFIG_BIAS_DISABLE = 1, + PIN_CONFIG_BIAS_HIGH_IMPEDANCE = 2, + PIN_CONFIG_BIAS_PULL_DOWN = 3, + PIN_CONFIG_BIAS_PULL_PIN_DEFAULT = 4, + PIN_CONFIG_BIAS_PULL_UP = 5, + PIN_CONFIG_DRIVE_OPEN_DRAIN = 6, + PIN_CONFIG_DRIVE_OPEN_SOURCE = 7, + PIN_CONFIG_DRIVE_PUSH_PULL = 8, + PIN_CONFIG_DRIVE_STRENGTH = 9, + PIN_CONFIG_DRIVE_STRENGTH_UA = 10, + PIN_CONFIG_INPUT_DEBOUNCE = 11, + PIN_CONFIG_INPUT_ENABLE = 12, + PIN_CONFIG_INPUT_SCHMITT = 13, + PIN_CONFIG_INPUT_SCHMITT_ENABLE = 14, + PIN_CONFIG_MODE_LOW_POWER = 15, + PIN_CONFIG_MODE_PWM = 16, + PIN_CONFIG_OUTPUT = 17, + PIN_CONFIG_OUTPUT_ENABLE = 18, + PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS = 19, + PIN_CONFIG_PERSIST_STATE = 20, + PIN_CONFIG_POWER_SOURCE = 21, + PIN_CONFIG_SKEW_DELAY = 22, + PIN_CONFIG_SLEEP_HARDWARE_STATE = 23, + PIN_CONFIG_SLEW_RATE = 24, + PIN_CONFIG_END = 127, + PIN_CONFIG_MAX = 255, }; -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 pin_config_item { + const enum pin_config_param param; + const char * const display; + const char * const format; + bool has_arg; }; -struct old_serial_port { - unsigned int uart; - unsigned int baud_base; - unsigned int port; - unsigned int irq; - upf_t flags; - unsigned char io_type; - unsigned char *iomem_base; - unsigned short iomem_reg_shift; +struct pinconf_generic_params { + const char * const property; + enum pin_config_param param; + u32 default_value; }; -struct uart_driver { - struct module *owner; - const char *driver_name; - const char *dev_name; - int major; - int minor; - int nr; - struct console *cons; - struct uart_state *state; - struct tty_driver *tty_driver; +enum 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, }; -enum { - PLAT8250_DEV_LEGACY = -1, - PLAT8250_DEV_PLATFORM = 0, - PLAT8250_DEV_PLATFORM1 = 1, - PLAT8250_DEV_PLATFORM2 = 2, - PLAT8250_DEV_FOURPORT = 3, - PLAT8250_DEV_ACCENT = 4, - PLAT8250_DEV_BOCA = 5, - PLAT8250_DEV_EXAR_ST16C554 = 6, - PLAT8250_DEV_HUB6 = 7, - PLAT8250_DEV_AU1X00 = 8, - PLAT8250_DEV_SM501 = 9, -}; - -struct irq_info { - struct hlist_node node; - int irq; - spinlock_t lock; - struct list_head *head; -}; - -struct plat_serial8250_port { - unsigned long iobase; - void *membase; - resource_size_t mapbase; - resource_size_t mapsize; - unsigned int uartclk; - unsigned int irq; - unsigned long irqflags; - void *private_data; - unsigned char regshift; - unsigned char iotype; - unsigned char hub6; - unsigned char has_sysrq; - unsigned int type; - upf_t flags; - u16 bugs; - unsigned int (*serial_in)(struct uart_port *, int); - void (*serial_out)(struct uart_port *, int, int); - u32 (*dl_read)(struct uart_8250_port *); - void (*dl_write)(struct uart_8250_port *, u32); - void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - unsigned int (*get_mctrl)(struct uart_port *); - int (*handle_irq)(struct uart_port *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - void (*handle_break)(struct uart_port *); -}; - -struct probe; +struct pinctrl_desc; -struct kobj_map { - struct probe *probes[255]; - struct mutex *lock; -}; +struct pinctrl; -typedef struct kobject *kobj_probe_t(dev_t, int *, void *); +struct pinctrl_state; -struct probe { - struct probe *next; - dev_t dev; - unsigned long range; +struct pinctrl_dev { + struct list_head node; + struct pinctrl_desc *desc; + struct xarray pin_desc_tree; + struct xarray pin_group_tree; + unsigned int num_groups; + struct xarray pin_function_tree; + unsigned int num_functions; + struct list_head gpio_ranges; + struct device *dev; struct module *owner; - kobj_probe_t *get; - int (*lock)(dev_t, void *); - void *data; + void *driver_data; + struct pinctrl *p; + struct pinctrl_state *hog_default; + struct pinctrl_state *hog_sleep; + struct mutex mutex; + struct dentry *device_root; }; -struct regmap; - -typedef void (*btf_trace_regmap_reg_write)(void *, struct regmap *, unsigned int, unsigned int); +struct pinctrl_pin_desc; -typedef void (*regmap_lock)(void *); +struct pinctrl_ops; -typedef void (*regmap_unlock)(void *); +struct pinmux_ops; -struct regmap_format { - size_t buf_size; - size_t reg_bytes; - size_t pad_bytes; - size_t val_bytes; - s8 reg_shift; - 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 pinconf_ops; -enum regcache_type { - REGCACHE_NONE = 0, - REGCACHE_RBTREE = 1, - REGCACHE_FLAT = 2, - REGCACHE_MAPLE = 3, +struct pinctrl_desc { + const char *name; + const struct pinctrl_pin_desc *pins; + unsigned int npins; + const struct pinctrl_ops *pctlops; + const struct pinmux_ops *pmxops; + const struct pinconf_ops *confops; + struct module *owner; + unsigned int num_custom_params; + const struct pinconf_generic_params *custom_params; + const struct pin_config_item *custom_conf_items; + bool link_consumers; }; -struct hwspinlock; - -struct regmap_bus; - -struct regmap_access_table; - -struct regcache_ops; - -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; +struct pinctrl_pin_desc { + unsigned int number; 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; - bool force_write_field; - 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; + void *drv_data; }; -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)(); +struct pinctrl_map; -enum regmap_endian { - REGMAP_ENDIAN_DEFAULT = 0, - REGMAP_ENDIAN_BIG = 1, - REGMAP_ENDIAN_LITTLE = 2, - REGMAP_ENDIAN_NATIVE = 3, +struct pinctrl_ops { + int (*get_groups_count)(struct pinctrl_dev *); + const char * (*get_group_name)(struct pinctrl_dev *, unsigned int); + int (*get_group_pins)(struct pinctrl_dev *, unsigned int, const unsigned int **, unsigned int *); + void (*pin_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + int (*dt_node_to_map)(struct pinctrl_dev *, struct device_node *, struct pinctrl_map **, unsigned int *); + void (*dt_free_map)(struct pinctrl_dev *, struct pinctrl_map *, unsigned int); }; -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 pinctrl_map_mux { + const char *group; + const char *function; }; -struct regmap_async { - struct list_head list; - struct regmap *map; - void *work_buf; +struct pinctrl_map_configs { + const char *group_or_pin; + unsigned long *configs; + unsigned int num_configs; }; -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 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; }; -struct regmap_range { - unsigned int range_min; - unsigned int range_max; -}; +struct pinctrl_gpio_range; -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); +struct pinmux_ops { + int (*request)(struct pinctrl_dev *, unsigned int); + int (*free)(struct pinctrl_dev *, unsigned int); + int (*get_functions_count)(struct pinctrl_dev *); + const char * (*get_function_name)(struct pinctrl_dev *, unsigned int); + int (*get_function_groups)(struct pinctrl_dev *, unsigned int, const char * const **, unsigned int *); + int (*set_mux)(struct pinctrl_dev *, unsigned int, unsigned int); + int (*gpio_request_enable)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); + void (*gpio_disable_free)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); + int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); + bool strict; }; -struct reg_default { - unsigned int reg; - unsigned int def; +struct pinconf_ops { + bool is_generic; + int (*pin_config_get)(struct pinctrl_dev *, unsigned int, unsigned long *); + int (*pin_config_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); + int (*pin_config_group_get)(struct pinctrl_dev *, unsigned int, unsigned long *); + int (*pin_config_group_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); + void (*pin_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + void (*pin_config_group_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); + void (*pin_config_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned long); }; -struct reg_sequence { - unsigned int reg; - unsigned int def; - unsigned int delay_us; +struct pinctrl { + struct list_head node; + struct device *dev; + struct list_head states; + struct pinctrl_state *state; + struct list_head dt_maps; + struct kref users; }; -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 pinctrl_state { + struct list_head node; + const char *name; + struct list_head settings; }; -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]; +enum enable_type { + undefined = -1, + user_disabled = 0, + auto_disabled = 1, + user_enabled = 2, + auto_enabled = 3, }; -struct trace_event_raw_regmap_block { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int reg; - int count; - char __data[0]; +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, }; -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]; +enum release_type { + leaf_only = 0, + whole_subtree = 1, }; -struct trace_event_raw_regmap_bool { - struct trace_entry ent; - u32 __data_loc_name; - int flag; - char __data[0]; +struct rcec_ea { + u8 nextbusn; + u8 lastbusn; + u32 bitmap; }; -struct trace_event_raw_regmap_async { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; +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); + unsigned long private[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 pci_dev_resource { + struct list_head list; + struct resource *res; + struct pci_dev *dev; + resource_size_t start; + resource_size_t end; + resource_size_t add_size; + resource_size_t min_align; + unsigned long flags; }; -struct 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; -}; +typedef u64 pci_bus_addr_t; -struct trace_event_data_offsets_regmap_reg { - u32 name; +struct pci_bus_region { + pci_bus_addr_t start; + pci_bus_addr_t end; }; -struct trace_event_data_offsets_regmap_bulk { - u32 name; - u32 buf; +struct fb_cmap { + __u32 start; + __u32 len; + __u16 *red; + __u16 *green; + __u16 *blue; + __u16 *transp; }; -struct trace_event_data_offsets_regmap_block { - u32 name; +struct fb_bitfield { + __u32 offset; + __u32 length; + __u32 msb_right; }; -struct trace_event_data_offsets_regcache_sync { - u32 name; - u32 status; - u32 type; -}; +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 trace_event_data_offsets_regmap_bool { - u32 name; +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 trace_event_data_offsets_regmap_async { - u32 name; +struct fb_chroma { + __u32 redx; + __u32 greenx; + __u32 bluex; + __u32 whitex; + __u32 redy; + __u32 greeny; + __u32 bluey; + __u32 whitey; }; -struct trace_event_data_offsets_regcache_drop_region { - u32 name; +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 regmap_range_cfg; +struct fb_info; -struct regmap_config { - const char *name; - int reg_bits; - int reg_stride; - int reg_shift; - 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 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 regmap_range_cfg { +struct fb_deferred_io_pageref; + +struct fb_deferred_io; + +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; + struct delayed_work deferred_work; + unsigned long npagerefs; + struct fb_deferred_io_pageref *pagerefs; + struct fb_deferred_io *fbdefio; + 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; - 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; + 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 regmap_field { - struct regmap *regmap; - unsigned int mask; - unsigned int shift; - unsigned int reg; - unsigned int id_size; - unsigned int id_offset; +struct fb_deferred_io_pageref { + struct page *page; + unsigned long offset; + struct list_head list; }; -struct reg_field { - unsigned int reg; - unsigned int lsb; - unsigned int msb; - unsigned int id_size; - unsigned int id_offset; +struct fb_deferred_io { + unsigned long delay; + bool sort_pagereflist; + int open_count; + struct mutex lock; + struct list_head pagereflist; + void (*deferred_io)(struct fb_info *, struct list_head *); }; -struct cdrom_device_ops; +struct fb_fillrect; -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 (*exit)(struct cdrom_device_info *); - int mrw_mode_page; - bool opened_for_data; - __s64 last_media_change_ms; -}; +struct fb_copyarea; -struct cdrom_multisession; +struct fb_image; -struct cdrom_mcn; +struct fb_cursor; -struct packet_command; +struct fb_blit_caps; -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 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 cdrom_msf0 { - __u8 minute; - __u8 second; - __u8 frame; +struct fb_fillrect { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 color; + __u32 rop; }; -union cdrom_addr { - struct cdrom_msf0 msf; - int lba; +struct fb_copyarea { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 sx; + __u32 sy; }; -struct cdrom_multisession { - union cdrom_addr addr; - __u8 xa_flag; - __u8 addr_format; +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 cdrom_mcn { - __u8 medium_catalog_number[14]; +struct fbcurpos { + __u16 x; + __u16 y; }; -struct scsi_sense_hdr; +struct fb_cursor { + __u16 set; + __u16 enable; + __u16 rop; + const char *mask; + struct fbcurpos hot; + struct fb_image image; +}; -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 fb_blit_caps { + u32 x; + u32 y; + u32 len; + u32 flags; }; -struct scsi_sense_hdr { - u8 response_code; - u8 sense_key; - u8 asc; - u8 ascq; - u8 byte4; - u8 byte5; - u8 byte6; - u8 additional_length; +struct fb_cmap_user { + __u32 start; + __u32 len; + __u16 __attribute__((btf_type_tag("user"))) *red; + __u16 __attribute__((btf_type_tag("user"))) *green; + __u16 __attribute__((btf_type_tag("user"))) *blue; + __u16 __attribute__((btf_type_tag("user"))) *transp; }; -enum scsi_target_state { - STARGET_CREATED = 1, - STARGET_RUNNING = 2, - STARGET_REMOVE = 3, - STARGET_CREATED_REMOVE = 4, - STARGET_DEL = 5, +typedef unsigned int u_int; + +union acpi_name_union { + u32 integer; + char ascii[4]; }; -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, +typedef u16 acpi_owner_id; + +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; }; -enum scsi_timeout_action { - SCSI_EH_DONE = 0, - SCSI_EH_RESET_TIMER = 1, - SCSI_EH_NOT_HANDLED = 2, +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 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 lockdep_ok { + LOCKDEP_STILL_OK = 0, + LOCKDEP_NOW_UNRELIABLE = 1, }; -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 acpi_madt_local_apic { + struct acpi_subtable_header header; + u8 processor_id; + u8 id; + u32 lapic_flags; }; -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, +struct acpi_madt_local_x2apic { + struct acpi_subtable_header header; + u16 reserved; + u32 local_apic_id; + u32 lapic_flags; + u32 uid; }; -enum sw_activity { - OFF = 0, - BLINK_ON = 1, - BLINK_OFF = 2, +struct acpi_madt_io_apic { + struct acpi_subtable_header header; + u8 id; + u8 reserved; + u32 address; + u32 global_irq_base; }; -enum { - LIBATA_MAX_PRD = 128, - LIBATA_DUMB_MAX_PRD = 64, - ATA_DEF_QUEUE = 1, - ATA_MAX_QUEUE = 32, - ATA_TAG_INTERNAL = 32, - ATA_SHORT_PAUSE = 16, - ATAPI_MAX_DRAIN = 16384, - ATA_ALL_DEVICES = 3, - ATA_SHT_EMULATED = 1, - ATA_SHT_THIS_ID = -1, - ATA_TFLAG_LBA48 = 1, - ATA_TFLAG_ISADDR = 2, - ATA_TFLAG_DEVICE = 4, - ATA_TFLAG_WRITE = 8, - ATA_TFLAG_LBA = 16, - ATA_TFLAG_FUA = 32, - ATA_TFLAG_POLLING = 64, - ATA_DFLAG_LBA = 1, - ATA_DFLAG_LBA48 = 2, - ATA_DFLAG_CDB_INTR = 4, - ATA_DFLAG_NCQ = 8, - ATA_DFLAG_FLUSH_EXT = 16, - ATA_DFLAG_ACPI_PENDING = 32, - ATA_DFLAG_ACPI_FAILED = 64, - ATA_DFLAG_AN = 128, - ATA_DFLAG_TRUSTED = 256, - ATA_DFLAG_FUA = 512, - ATA_DFLAG_DMADIR = 1024, - ATA_DFLAG_NCQ_SEND_RECV = 2048, - ATA_DFLAG_NCQ_PRIO = 4096, - ATA_DFLAG_CDL = 8192, - ATA_DFLAG_CFG_MASK = 16383, - ATA_DFLAG_PIO = 16384, - ATA_DFLAG_NCQ_OFF = 32768, - ATA_DFLAG_SLEEPING = 65536, - ATA_DFLAG_DUBIOUS_XFER = 131072, - ATA_DFLAG_NO_UNLOAD = 262144, - ATA_DFLAG_UNLOCK_HPA = 524288, - ATA_DFLAG_INIT_MASK = 1048575, - ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576, - ATA_DFLAG_CDL_ENABLED = 2097152, - ATA_DFLAG_DETACH = 16777216, - ATA_DFLAG_DETACHED = 33554432, - ATA_DFLAG_DA = 67108864, - ATA_DFLAG_DEVSLP = 134217728, - ATA_DFLAG_ACPI_DISABLED = 268435456, - ATA_DFLAG_D_SENSE = 536870912, - ATA_DFLAG_ZAC = 1073741824, - ATA_DFLAG_FEATURES_MASK = 201341696, - ATA_DEV_UNKNOWN = 0, - ATA_DEV_ATA = 1, - ATA_DEV_ATA_UNSUP = 2, - ATA_DEV_ATAPI = 3, - ATA_DEV_ATAPI_UNSUP = 4, - ATA_DEV_PMP = 5, - ATA_DEV_PMP_UNSUP = 6, - ATA_DEV_SEMB = 7, - ATA_DEV_SEMB_UNSUP = 8, - ATA_DEV_ZAC = 9, - ATA_DEV_ZAC_UNSUP = 10, - ATA_DEV_NONE = 11, - ATA_LFLAG_NO_HRST = 2, - ATA_LFLAG_NO_SRST = 4, - ATA_LFLAG_ASSUME_ATA = 8, - ATA_LFLAG_ASSUME_SEMB = 16, - ATA_LFLAG_ASSUME_CLASS = 24, - ATA_LFLAG_NO_RETRY = 32, - ATA_LFLAG_DISABLED = 64, - ATA_LFLAG_SW_ACTIVITY = 128, - ATA_LFLAG_NO_LPM = 256, - ATA_LFLAG_RST_ONCE = 512, - ATA_LFLAG_CHANGED = 1024, - ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, - ATA_FLAG_SLAVE_POSS = 1, - ATA_FLAG_SATA = 2, - ATA_FLAG_NO_LPM = 4, - ATA_FLAG_NO_LOG_PAGE = 32, - ATA_FLAG_NO_ATAPI = 64, - ATA_FLAG_PIO_DMA = 128, - ATA_FLAG_PIO_LBA48 = 256, - ATA_FLAG_PIO_POLLING = 512, - ATA_FLAG_NCQ = 1024, - ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, - ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, - ATA_FLAG_DEBUGMSG = 8192, - ATA_FLAG_FPDMA_AA = 16384, - ATA_FLAG_IGN_SIMPLEX = 32768, - ATA_FLAG_NO_IORDY = 65536, - ATA_FLAG_ACPI_SATA = 131072, - ATA_FLAG_AN = 262144, - ATA_FLAG_PMP = 524288, - ATA_FLAG_FPDMA_AUX = 1048576, - ATA_FLAG_EM = 2097152, - ATA_FLAG_SW_ACTIVITY = 4194304, - ATA_FLAG_NO_DIPM = 8388608, - ATA_FLAG_SAS_HOST = 16777216, - ATA_PFLAG_EH_PENDING = 1, - ATA_PFLAG_EH_IN_PROGRESS = 2, - ATA_PFLAG_FROZEN = 4, - ATA_PFLAG_RECOVERED = 8, - ATA_PFLAG_LOADING = 16, - ATA_PFLAG_SCSI_HOTPLUG = 64, - ATA_PFLAG_INITIALIZING = 128, - ATA_PFLAG_RESETTING = 256, - ATA_PFLAG_UNLOADING = 512, - ATA_PFLAG_UNLOADED = 1024, - ATA_PFLAG_SUSPENDED = 131072, - ATA_PFLAG_PM_PENDING = 262144, - ATA_PFLAG_INIT_GTM_VALID = 524288, - ATA_PFLAG_PIO32 = 1048576, - ATA_PFLAG_PIO32CHANGE = 2097152, - ATA_PFLAG_EXTERNAL = 4194304, - ATA_QCFLAG_ACTIVE = 1, - ATA_QCFLAG_DMAMAP = 2, - ATA_QCFLAG_RTF_FILLED = 4, - ATA_QCFLAG_IO = 8, - ATA_QCFLAG_RESULT_TF = 16, - ATA_QCFLAG_CLEAR_EXCL = 32, - ATA_QCFLAG_QUIET = 64, - ATA_QCFLAG_RETRY = 128, - ATA_QCFLAG_HAS_CDL = 256, - ATA_QCFLAG_EH = 65536, - ATA_QCFLAG_SENSE_VALID = 131072, - ATA_QCFLAG_EH_SCHEDULED = 262144, - ATA_QCFLAG_EH_SUCCESS_CMD = 524288, - ATA_HOST_SIMPLEX = 1, - ATA_HOST_STARTED = 2, - ATA_HOST_PARALLEL_SCAN = 4, - ATA_HOST_IGNORE_ATA = 8, - ATA_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_GET_SUCCESS_SENSE = 64, - ATA_EH_PERDEV_MASK = 97, - 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, +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; }; -enum ata_dev_iter_mode { - ATA_DITER_ENABLED = 0, - ATA_DITER_ENABLED_REVERSE = 1, - ATA_DITER_ALL = 2, - ATA_DITER_ALL_REVERSE = 3, +struct acpi_madt_local_apic_nmi { + struct acpi_subtable_header header; + u8 processor_id; + u16 inti_flags; + u8 lint; +} __attribute__((packed)); + +struct acpi_madt_local_x2apic_nmi { + struct acpi_subtable_header header; + u16 inti_flags; + u32 uid; + u8 lint; + u8 reserved[3]; }; -enum { - ATA_MAX_DEVICES = 2, - ATA_MAX_PRD = 256, - ATA_SECT_SIZE = 512, - ATA_MAX_SECTORS_128 = 128, - ATA_MAX_SECTORS = 256, - ATA_MAX_SECTORS_1024 = 1024, - ATA_MAX_SECTORS_LBA48 = 65535, - ATA_MAX_SECTORS_TAPE = 65535, - ATA_MAX_TRIM_RNUM = 64, - ATA_ID_WORDS = 256, - ATA_ID_CONFIG = 0, - ATA_ID_CYLS = 1, - ATA_ID_HEADS = 3, - ATA_ID_SECTORS = 6, - ATA_ID_SERNO = 10, - ATA_ID_BUF_SIZE = 21, - ATA_ID_FW_REV = 23, - ATA_ID_PROD = 27, - ATA_ID_MAX_MULTSECT = 47, - ATA_ID_DWORD_IO = 48, - ATA_ID_TRUSTED = 48, - ATA_ID_CAPABILITY = 49, - ATA_ID_OLD_PIO_MODES = 51, - ATA_ID_OLD_DMA_MODES = 52, - ATA_ID_FIELD_VALID = 53, - ATA_ID_CUR_CYLS = 54, - ATA_ID_CUR_HEADS = 55, - ATA_ID_CUR_SECTORS = 56, - ATA_ID_MULTSECT = 59, - ATA_ID_LBA_CAPACITY = 60, - ATA_ID_SWDMA_MODES = 62, - ATA_ID_MWDMA_MODES = 63, - ATA_ID_PIO_MODES = 64, - ATA_ID_EIDE_DMA_MIN = 65, - ATA_ID_EIDE_DMA_TIME = 66, - ATA_ID_EIDE_PIO = 67, - ATA_ID_EIDE_PIO_IORDY = 68, - ATA_ID_ADDITIONAL_SUPP = 69, - ATA_ID_QUEUE_DEPTH = 75, - ATA_ID_SATA_CAPABILITY = 76, - ATA_ID_SATA_CAPABILITY_2 = 77, - ATA_ID_FEATURE_SUPP = 78, - ATA_ID_MAJOR_VER = 80, - ATA_ID_COMMAND_SET_1 = 82, - ATA_ID_COMMAND_SET_2 = 83, - ATA_ID_CFSSE = 84, - ATA_ID_CFS_ENABLE_1 = 85, - ATA_ID_CFS_ENABLE_2 = 86, - ATA_ID_CSF_DEFAULT = 87, - ATA_ID_UDMA_MODES = 88, - ATA_ID_HW_CONFIG = 93, - ATA_ID_SPG = 98, - ATA_ID_LBA_CAPACITY_2 = 100, - ATA_ID_SECTOR_SIZE = 106, - ATA_ID_WWN = 108, - ATA_ID_LOGICAL_SECTOR_SIZE = 117, - ATA_ID_COMMAND_SET_3 = 119, - ATA_ID_COMMAND_SET_4 = 120, - ATA_ID_LAST_LUN = 126, - ATA_ID_DLF = 128, - ATA_ID_CSFO = 129, - ATA_ID_CFA_POWER = 160, - ATA_ID_CFA_KEY_MGMT = 162, - ATA_ID_CFA_MODES = 163, - ATA_ID_DATA_SET_MGMT = 169, - ATA_ID_SCT_CMD_XPORT = 206, - ATA_ID_ROT_SPEED = 217, - ATA_ID_PIO4 = 2, - ATA_ID_SERNO_LEN = 20, - ATA_ID_FW_REV_LEN = 8, - ATA_ID_PROD_LEN = 40, - ATA_ID_WWN_LEN = 8, - ATA_PCI_CTL_OFS = 2, - ATA_PIO0 = 1, - ATA_PIO1 = 3, - ATA_PIO2 = 7, - ATA_PIO3 = 15, - ATA_PIO4 = 31, - ATA_PIO5 = 63, - ATA_PIO6 = 127, - ATA_PIO4_ONLY = 16, - ATA_SWDMA0 = 1, - ATA_SWDMA1 = 3, - ATA_SWDMA2 = 7, - ATA_SWDMA2_ONLY = 4, - ATA_MWDMA0 = 1, - ATA_MWDMA1 = 3, - ATA_MWDMA2 = 7, - ATA_MWDMA3 = 15, - ATA_MWDMA4 = 31, - ATA_MWDMA12_ONLY = 6, - ATA_MWDMA2_ONLY = 4, - ATA_UDMA0 = 1, - ATA_UDMA1 = 3, - ATA_UDMA2 = 7, - ATA_UDMA3 = 15, - ATA_UDMA4 = 31, - ATA_UDMA5 = 63, - ATA_UDMA6 = 127, - ATA_UDMA7 = 255, - ATA_UDMA24_ONLY = 20, - ATA_UDMA_MASK_40C = 7, - ATA_PRD_SZ = 8, - ATA_PRD_TBL_SZ = 2048, - ATA_PRD_EOT = -2147483648, - ATA_DMA_TABLE_OFS = 4, - ATA_DMA_STATUS = 2, - ATA_DMA_CMD = 0, - ATA_DMA_WR = 8, - ATA_DMA_START = 1, - ATA_DMA_INTR = 4, - ATA_DMA_ERR = 2, - ATA_DMA_ACTIVE = 1, - ATA_HOB = 128, - ATA_NIEN = 2, - ATA_LBA = 64, - ATA_DEV1 = 16, - ATA_DEVICE_OBS = 160, - ATA_DEVCTL_OBS = 8, - ATA_BUSY = 128, - ATA_DRDY = 64, - ATA_DF = 32, - ATA_DSC = 16, - ATA_DRQ = 8, - ATA_CORR = 4, - ATA_SENSE = 2, - ATA_ERR = 1, - ATA_SRST = 4, - ATA_ICRC = 128, - ATA_BBK = 128, - ATA_UNC = 64, - ATA_MC = 32, - ATA_IDNF = 16, - ATA_MCR = 8, - ATA_ABORTED = 4, - ATA_TRK0NF = 2, - ATA_AMNF = 1, - ATAPI_LFS = 240, - ATAPI_EOM = 2, - ATAPI_ILI = 1, - ATAPI_IO = 2, - ATAPI_COD = 1, - ATA_REG_DATA = 0, - ATA_REG_ERR = 1, - ATA_REG_NSECT = 2, - ATA_REG_LBAL = 3, - ATA_REG_LBAM = 4, - ATA_REG_LBAH = 5, - ATA_REG_DEVICE = 6, - ATA_REG_STATUS = 7, - ATA_REG_FEATURE = 1, - ATA_REG_CMD = 7, - ATA_REG_BYTEL = 4, - ATA_REG_BYTEH = 5, - ATA_REG_DEVSEL = 6, - ATA_REG_IRQ = 2, - ATA_CMD_DEV_RESET = 8, - ATA_CMD_CHK_POWER = 229, - ATA_CMD_STANDBY = 226, - ATA_CMD_IDLE = 227, - ATA_CMD_EDD = 144, - ATA_CMD_DOWNLOAD_MICRO = 146, - ATA_CMD_DOWNLOAD_MICRO_DMA = 147, - ATA_CMD_NOP = 0, - ATA_CMD_FLUSH = 231, - ATA_CMD_FLUSH_EXT = 234, - ATA_CMD_ID_ATA = 236, - ATA_CMD_ID_ATAPI = 161, - ATA_CMD_SERVICE = 162, - ATA_CMD_READ = 200, - ATA_CMD_READ_EXT = 37, - ATA_CMD_READ_QUEUED = 38, - ATA_CMD_READ_STREAM_EXT = 43, - ATA_CMD_READ_STREAM_DMA_EXT = 42, - ATA_CMD_WRITE = 202, - ATA_CMD_WRITE_EXT = 53, - ATA_CMD_WRITE_QUEUED = 54, - ATA_CMD_WRITE_STREAM_EXT = 59, - ATA_CMD_WRITE_STREAM_DMA_EXT = 58, - ATA_CMD_WRITE_FUA_EXT = 61, - ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, - ATA_CMD_FPDMA_READ = 96, - ATA_CMD_FPDMA_WRITE = 97, - ATA_CMD_NCQ_NON_DATA = 99, - ATA_CMD_FPDMA_SEND = 100, - ATA_CMD_FPDMA_RECV = 101, - ATA_CMD_PIO_READ = 32, - ATA_CMD_PIO_READ_EXT = 36, - ATA_CMD_PIO_WRITE = 48, - ATA_CMD_PIO_WRITE_EXT = 52, - ATA_CMD_READ_MULTI = 196, - ATA_CMD_READ_MULTI_EXT = 41, - ATA_CMD_WRITE_MULTI = 197, - ATA_CMD_WRITE_MULTI_EXT = 57, - ATA_CMD_WRITE_MULTI_FUA_EXT = 206, - ATA_CMD_SET_FEATURES = 239, - ATA_CMD_SET_MULTI = 198, - ATA_CMD_PACKET = 160, - ATA_CMD_VERIFY = 64, - ATA_CMD_VERIFY_EXT = 66, - ATA_CMD_WRITE_UNCORR_EXT = 69, - ATA_CMD_STANDBYNOW1 = 224, - ATA_CMD_IDLEIMMEDIATE = 225, - ATA_CMD_SLEEP = 230, - ATA_CMD_INIT_DEV_PARAMS = 145, - ATA_CMD_READ_NATIVE_MAX = 248, - ATA_CMD_READ_NATIVE_MAX_EXT = 39, - ATA_CMD_SET_MAX = 249, - ATA_CMD_SET_MAX_EXT = 55, - ATA_CMD_READ_LOG_EXT = 47, - ATA_CMD_WRITE_LOG_EXT = 63, - ATA_CMD_READ_LOG_DMA_EXT = 71, - ATA_CMD_WRITE_LOG_DMA_EXT = 87, - ATA_CMD_TRUSTED_NONDATA = 91, - ATA_CMD_TRUSTED_RCV = 92, - ATA_CMD_TRUSTED_RCV_DMA = 93, - ATA_CMD_TRUSTED_SND = 94, - ATA_CMD_TRUSTED_SND_DMA = 95, - ATA_CMD_PMP_READ = 228, - ATA_CMD_PMP_READ_DMA = 233, - ATA_CMD_PMP_WRITE = 232, - ATA_CMD_PMP_WRITE_DMA = 235, - ATA_CMD_CONF_OVERLAY = 177, - ATA_CMD_SEC_SET_PASS = 241, - ATA_CMD_SEC_UNLOCK = 242, - ATA_CMD_SEC_ERASE_PREP = 243, - ATA_CMD_SEC_ERASE_UNIT = 244, - ATA_CMD_SEC_FREEZE_LOCK = 245, - ATA_CMD_SEC_DISABLE_PASS = 246, - ATA_CMD_CONFIG_STREAM = 81, - ATA_CMD_SMART = 176, - ATA_CMD_MEDIA_LOCK = 222, - ATA_CMD_MEDIA_UNLOCK = 223, - ATA_CMD_DSM = 6, - ATA_CMD_CHK_MED_CRD_TYP = 209, - ATA_CMD_CFA_REQ_EXT_ERR = 3, - ATA_CMD_CFA_WRITE_NE = 56, - ATA_CMD_CFA_TRANS_SECT = 135, - ATA_CMD_CFA_ERASE = 192, - ATA_CMD_CFA_WRITE_MULT_NE = 205, - ATA_CMD_REQ_SENSE_DATA = 11, - ATA_CMD_SANITIZE_DEVICE = 180, - ATA_CMD_ZAC_MGMT_IN = 74, - ATA_CMD_ZAC_MGMT_OUT = 159, - ATA_CMD_RESTORE = 16, - ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, - ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, - ATA_SUBCMD_FPDMA_SEND_DSM = 0, - ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, - ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, - ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, - ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, - ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, - ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, - ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, - ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, - ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, - ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, - ATA_LOG_DIRECTORY = 0, - ATA_LOG_SATA_NCQ = 16, - ATA_LOG_NCQ_NON_DATA = 18, - ATA_LOG_NCQ_SEND_RECV = 19, - ATA_LOG_CDL = 24, - ATA_LOG_CDL_SIZE = 512, - ATA_LOG_IDENTIFY_DEVICE = 48, - ATA_LOG_SENSE_NCQ = 15, - ATA_LOG_SENSE_NCQ_SIZE = 1024, - ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, - ATA_LOG_SUPPORTED_CAPABILITIES = 3, - ATA_LOG_CURRENT_SETTINGS = 4, - ATA_LOG_SECURITY = 6, - ATA_LOG_SATA_SETTINGS = 8, - ATA_LOG_ZONED_INFORMATION = 9, - ATA_LOG_DEVSLP_OFFSET = 48, - ATA_LOG_DEVSLP_SIZE = 8, - ATA_LOG_DEVSLP_MDAT = 0, - ATA_LOG_DEVSLP_MDAT_MASK = 31, - ATA_LOG_DEVSLP_DETO = 1, - ATA_LOG_DEVSLP_VALID = 7, - ATA_LOG_DEVSLP_VALID_MASK = 128, - ATA_LOG_NCQ_PRIO_OFFSET = 9, - ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, - ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, - ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, - ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, - ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, - ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, - ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, - ATA_LOG_NCQ_SEND_RECV_SIZE = 20, - ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, - ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, - ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, - ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, - ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, - ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, - ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, - ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, - ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, - ATA_LOG_NCQ_NON_DATA_SIZE = 64, - ATA_CMD_READ_LONG = 34, - ATA_CMD_READ_LONG_ONCE = 35, - ATA_CMD_WRITE_LONG = 50, - ATA_CMD_WRITE_LONG_ONCE = 51, - SETFEATURES_XFER = 3, - XFER_UDMA_7 = 71, - XFER_UDMA_6 = 70, - XFER_UDMA_5 = 69, - XFER_UDMA_4 = 68, - XFER_UDMA_3 = 67, - XFER_UDMA_2 = 66, - XFER_UDMA_1 = 65, - XFER_UDMA_0 = 64, - XFER_MW_DMA_4 = 36, - XFER_MW_DMA_3 = 35, - XFER_MW_DMA_2 = 34, - XFER_MW_DMA_1 = 33, - XFER_MW_DMA_0 = 32, - XFER_SW_DMA_2 = 18, - XFER_SW_DMA_1 = 17, - XFER_SW_DMA_0 = 16, - XFER_PIO_6 = 14, - XFER_PIO_5 = 13, - XFER_PIO_4 = 12, - XFER_PIO_3 = 11, - XFER_PIO_2 = 10, - XFER_PIO_1 = 9, - XFER_PIO_0 = 8, - XFER_PIO_SLOW = 0, - SETFEATURES_WC_ON = 2, - SETFEATURES_WC_OFF = 130, - SETFEATURES_RA_ON = 170, - SETFEATURES_RA_OFF = 85, - SETFEATURES_AAM_ON = 66, - SETFEATURES_AAM_OFF = 194, - SETFEATURES_SPINUP = 7, - SETFEATURES_SPINUP_TIMEOUT = 30000, - SETFEATURES_SATA_ENABLE = 16, - SETFEATURES_SATA_DISABLE = 144, - SETFEATURES_CDL = 13, - SATA_FPDMA_OFFSET = 1, - SATA_FPDMA_AA = 2, - SATA_DIPM = 3, - SATA_FPDMA_IN_ORDER = 4, - SATA_AN = 5, - SATA_SSP = 6, - SATA_DEVSLP = 9, - SETFEATURE_SENSE_DATA = 195, - SETFEATURE_SENSE_DATA_SUCC_NCQ = 196, - ATA_SET_MAX_ADDR = 0, - ATA_SET_MAX_PASSWD = 1, - ATA_SET_MAX_LOCK = 2, - ATA_SET_MAX_UNLOCK = 3, - ATA_SET_MAX_FREEZE_LOCK = 4, - ATA_SET_MAX_PASSWD_DMA = 5, - ATA_SET_MAX_UNLOCK_DMA = 6, - ATA_DCO_RESTORE = 192, - ATA_DCO_FREEZE_LOCK = 193, - ATA_DCO_IDENTIFY = 194, - ATA_DCO_SET = 195, - ATA_SMART_ENABLE = 216, - ATA_SMART_READ_VALUES = 208, - ATA_SMART_READ_THRESHOLDS = 209, - ATA_DSM_TRIM = 1, - ATA_SMART_LBAM_PASS = 79, - ATA_SMART_LBAH_PASS = 194, - ATAPI_PKT_DMA = 1, - ATAPI_DMADIR = 4, - ATAPI_CDB_LEN = 16, - SATA_PMP_MAX_PORTS = 15, - SATA_PMP_CTRL_PORT = 15, - SATA_PMP_GSCR_DWORDS = 128, - SATA_PMP_GSCR_PROD_ID = 0, - SATA_PMP_GSCR_REV = 1, - SATA_PMP_GSCR_PORT_INFO = 2, - SATA_PMP_GSCR_ERROR = 32, - SATA_PMP_GSCR_ERROR_EN = 33, - SATA_PMP_GSCR_FEAT = 64, - SATA_PMP_GSCR_FEAT_EN = 96, - SATA_PMP_PSCR_STATUS = 0, - SATA_PMP_PSCR_ERROR = 1, - SATA_PMP_PSCR_CONTROL = 2, - SATA_PMP_FEAT_BIST = 1, - SATA_PMP_FEAT_PMREQ = 2, - SATA_PMP_FEAT_DYNSSC = 4, - SATA_PMP_FEAT_NOTIFY = 8, - ATA_CBL_NONE = 0, - ATA_CBL_PATA40 = 1, - ATA_CBL_PATA80 = 2, - ATA_CBL_PATA40_SHORT = 3, - ATA_CBL_PATA_UNK = 4, - ATA_CBL_PATA_IGN = 5, - ATA_CBL_SATA = 6, - SCR_STATUS = 0, - SCR_ERROR = 1, - SCR_CONTROL = 2, - SCR_ACTIVE = 3, - SCR_NOTIFICATION = 4, - SERR_DATA_RECOVERED = 1, - SERR_COMM_RECOVERED = 2, - SERR_DATA = 256, - SERR_PERSISTENT = 512, - SERR_PROTOCOL = 1024, - SERR_INTERNAL = 2048, - SERR_PHYRDY_CHG = 65536, - SERR_PHY_INT_ERR = 131072, - SERR_COMM_WAKE = 262144, - SERR_10B_8B_ERR = 524288, - SERR_DISPARITY = 1048576, - SERR_CRC = 2097152, - SERR_HANDSHAKE = 4194304, - SERR_LINK_SEQ_ERR = 8388608, - SERR_TRANS_ST_ERROR = 16777216, - SERR_UNRECOG_FIS = 33554432, - SERR_DEV_XCHG = 67108864, +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; }; -enum ata_link_iter_mode { - ATA_LITER_EDGE = 0, - ATA_LITER_HOST_FIRST = 1, - ATA_LITER_PMP_FIRST = 2, +struct acpi_madt_local_sapic { + struct acpi_subtable_header header; + u8 processor_id; + u8 id; + u8 eid; + u8 reserved[3]; + u32 lapic_flags; + u32 uid; + char uid_string[0]; }; -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 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; }; -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 acpi_madt_generic_interrupt { + struct acpi_subtable_header header; + u16 reserved; + u32 cpu_interface_number; + u32 uid; + u32 flags; + u32 parking_version; + u32 performance_interrupt; + u64 parked_address; + u64 base_address; + u64 gicv_base_address; + u64 gich_base_address; + u32 vgic_interrupt; + u64 gicr_base_address; + u64 arm_mpidr; + u8 efficiency_class; + u8 reserved2[1]; + u16 spe_interrupt; + u16 trbe_interrupt; +} __attribute__((packed)); + +struct acpi_madt_generic_distributor { + struct acpi_subtable_header header; + u16 reserved; + u32 gic_id; + u64 base_address; + u32 global_irq_base; + u8 version; + u8 reserved2[3]; }; -struct ata_port; +struct acpi_madt_core_pic { + struct acpi_subtable_header header; + u8 version; + u32 processor_id; + u32 core_id; + u32 flags; +} __attribute__((packed)); -struct ata_device; +typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const unsigned long); -struct ata_acpi_hotplug_context { - struct acpi_hotplug_context hp; - union { - struct ata_port *ap; - struct ata_device *dev; - } data; +struct acpi_subtable_proc { + int id; + acpi_tbl_entry_handler handler; + acpi_tbl_entry_handler_arg handler_arg; + void *arg; + int count; }; -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; +typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); + +struct msi_dev_domain { + struct xarray store; + struct irq_domain *domain; }; -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; +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 pci_osc_bit_struct { + u32 bit; + char *desc; +}; + +enum acpi_bridge_type { + ACPI_BRIDGE_TYPE_PCIE = 1, + ACPI_BRIDGE_TYPE_CXL = 2, +}; + +struct acpi_device_physical_node { + unsigned int node_id; + struct list_head node; + struct device *dev; + bool put_online: 1; +}; + +struct resource_entry { + struct list_head node; + struct resource *res; + resource_size_t offset; + struct resource __res; +}; + +struct acpi_resource_irq { + u8 descriptor_length; + u8 triggering; + u8 polarity; + u8 shareable; + u8 wake_capable; + u8 interrupt_count; union { - u8 error; - u8 feature; + u8 interrupt; + struct { + struct {} __Empty_interrupts; + u8 interrupts[0]; + }; }; - u8 nsect; - u8 lbal; - u8 lbam; - u8 lbah; - u8 device; +}; + +struct acpi_resource_dma { + u8 type; + u8 bus_master; + u8 transfer; + u8 channel_count; union { - u8 status; - u8 command; + u8 channel; + struct { + struct {} __Empty_channels; + u8 channels[0]; + }; }; - u32 auxiliary; }; -struct ata_queued_cmd; +struct acpi_resource_start_dependent { + u8 descriptor_length; + u8 compatibility_priority; + u8 performance_robustness; +}; -typedef void (*ata_qc_cb_t)(struct ata_queued_cmd *); +struct acpi_resource_io { + u8 io_decode; + u8 alignment; + u8 address_length; + u16 minimum; + u16 maximum; +} __attribute__((packed)); -struct scsi_cmnd; +struct acpi_resource_fixed_io { + u16 address; + u8 address_length; +} __attribute__((packed)); -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 acpi_resource_fixed_dma { + u16 request_lines; + u16 channels; + u8 width; +} __attribute__((packed)); -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 acpi_resource_vendor { + u16 byte_length; + u8 byte_data[0]; }; -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 acpi_resource_vendor_typed { + u16 byte_length; + u8 uuid_subtype; + u8 uuid[16]; + u8 byte_data[0]; +} __attribute__((packed)); + +struct acpi_resource_end_tag { + u8 checksum; }; -struct ata_ering_entry { - unsigned int eflags; - unsigned int err_mask; - u64 timestamp; +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 ata_ering { - int cursor; - struct ata_ering_entry ring[32]; +struct acpi_io_attribute { + u8 range_type; + u8 translation; + u8 translation_type; + u8 reserved1; }; -struct ata_link; +union acpi_resource_attribute { + struct acpi_memory_attribute mem; + struct acpi_io_attribute io; + u8 type_specific; +}; -struct scsi_device; +struct acpi_address16_attribute { + u16 granularity; + u16 minimum; + u16 maximum; + u16 translation_offset; + u16 address_length; +}; -struct ata_cpr_log; +struct acpi_resource_source { + u8 index; + u16 string_length; + char *string_ptr; +} __attribute__((packed)); -struct ata_device { - struct ata_link *link; - unsigned int devno; - unsigned int horkage; - unsigned long flags; - struct scsi_device *sdev; - void *private_data; - union acpi_object *gtf_cache; - unsigned int gtf_filter; - struct device tdev; - u64 n_sectors; - u64 n_native_sectors; - unsigned int class; - unsigned long unpark_deadline; - u8 pio_mode; - u8 dma_mode; - u8 xfer_mode; - unsigned int xfer_shift; - unsigned int multi_count; - unsigned int max_sectors; - unsigned int cdb_len; - unsigned int pio_mask; - unsigned int mwdma_mask; - unsigned int udma_mask; - u16 cylinders; - u16 heads; - u16 sectors; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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; union { - u16 id[256]; - u32 gscr[128]; + u32 interrupt; + struct { + struct {} __Empty_interrupts; + u32 interrupts[0]; + }; }; - u8 devslp_timing[8]; - u8 ncq_send_recv_cmds[20]; - u8 ncq_non_data_cmds[64]; - u32 zac_zoned_cap; - u32 zac_zones_optimal_open; - u32 zac_zones_optimal_nonseq; - u32 zac_zones_max_open; - struct ata_cpr_log *cpr_log; - u8 cdl[512]; - int spdn_cnt; - struct ata_ering ering; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +} __attribute__((packed)); + +struct acpi_resource_generic_register { + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); + +struct acpi_resource_gpio { + u8 revision_id; + u8 connection_type; + u8 producer_consumer; + u8 pin_config; + u8 shareable; + u8 wake_capable; + u8 io_restriction; + u8 triggering; + u8 polarity; + u16 drive_strength; + u16 debounce_timeout; + u16 pin_table_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u16 *pin_table; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_i2c_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 access_mode; + u16 slave_address; + u32 connection_speed; +} __attribute__((packed)); + +struct acpi_resource_spi_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 wire_mode; + u8 device_polarity; + u8 data_bit_length; + u8 clock_phase; + u8 clock_polarity; + u16 device_selection; + u32 connection_speed; +} __attribute__((packed)); + +struct acpi_resource_uart_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 endian; + u8 data_bits; + u8 stop_bits; + u8 flow_control; + u8 parity; + u8 lines_enabled; + u16 rx_fifo_size; + u16 tx_fifo_size; + u32 default_baud_rate; +} __attribute__((packed)); + +struct acpi_resource_csi2_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; + u8 local_port_instance; + u8 phy_type; +} __attribute__((packed)); + +struct acpi_resource_common_serialbus { + u8 revision_id; + u8 type; + u8 producer_consumer; + u8 slave_mode; + u8 connection_sharing; + u8 type_revision_id; + u16 type_data_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_function { + u8 revision_id; + u8 pin_config; + u8 shareable; + u16 function_number; + u16 pin_table_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u16 *pin_table; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_config { + u8 revision_id; + u8 producer_consumer; + u8 shareable; + u8 pin_config_type; + u32 pin_config_value; + u16 pin_table_length; + u16 vendor_length; + struct acpi_resource_source resource_source; + u16 *pin_table; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_label { + u16 string_length; + char *string_ptr; +} __attribute__((packed)); + +struct acpi_resource_pin_group { + u8 revision_id; + u8 producer_consumer; + u16 pin_table_length; + u16 vendor_length; + u16 *pin_table; + struct acpi_resource_label resource_label; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_group_function { + u8 revision_id; + u8 producer_consumer; + u8 shareable; + u16 function_number; + u16 vendor_length; + struct acpi_resource_source resource_source; + struct acpi_resource_label resource_source_label; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_pin_group_config { + u8 revision_id; + u8 producer_consumer; + u8 shareable; + u8 pin_config_type; + u32 pin_config_value; + u16 vendor_length; + struct acpi_resource_source resource_source; + struct acpi_resource_label resource_source_label; + u8 *vendor_data; +} __attribute__((packed)); + +struct acpi_resource_clock_input { + u8 revision_id; + u8 mode; + u8 scale; + u16 frequency_divisor; + u32 frequency_numerator; + struct acpi_resource_source resource_source; +} __attribute__((packed)); + +struct acpi_resource_address { + u8 resource_type; + u8 producer_consumer; + u8 decode; + u8 min_address_fixed; + u8 max_address_fixed; + union acpi_resource_attribute info; }; -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; - 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; +union acpi_resource_data { + struct acpi_resource_irq irq; + struct acpi_resource_dma dma; + struct acpi_resource_start_dependent start_dpf; + struct acpi_resource_io io; + struct acpi_resource_fixed_io fixed_io; + struct acpi_resource_fixed_dma fixed_dma; + struct acpi_resource_vendor vendor; + struct acpi_resource_vendor_typed vendor_typed; + struct acpi_resource_end_tag end_tag; + struct acpi_resource_memory24 memory24; + struct acpi_resource_memory32 memory32; + struct acpi_resource_fixed_memory32 fixed_memory32; + struct acpi_resource_address16 address16; + struct acpi_resource_address32 address32; + struct acpi_resource_address64 address64; + struct acpi_resource_extended_address64 ext_address64; + struct acpi_resource_extended_irq extended_irq; + struct acpi_resource_generic_register generic_reg; + struct acpi_resource_gpio gpio; + struct acpi_resource_i2c_serialbus i2c_serial_bus; + struct acpi_resource_spi_serialbus spi_serial_bus; + struct acpi_resource_uart_serialbus uart_serial_bus; + struct acpi_resource_csi2_serialbus csi2_serial_bus; + struct acpi_resource_common_serialbus common_serial_bus; + struct acpi_resource_pin_function pin_function; + struct acpi_resource_pin_config pin_config; + struct acpi_resource_pin_group pin_group; + struct acpi_resource_pin_group_function pin_group_function; + struct acpi_resource_pin_group_config pin_group_config; + struct acpi_resource_clock_input clock_input; + struct acpi_resource_address address; }; -struct ata_port_stats { - unsigned long unhandled_irq; - unsigned long idle_irq; - unsigned long rw_reqbuf; +struct acpi_resource { + u32 type; + u32 length; + union acpi_resource_data data; }; -typedef u64 async_cookie_t; +struct acpi_pci_root_ops; -struct ata_acpi_drive { - u32 pio; - u32 dma; +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 ata_acpi_gtm { - struct ata_acpi_drive drive[2]; - u32 flags; +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 Scsi_Host; +typedef struct { + __u8 b[16]; +} guid_t; -struct ata_port_operations; +struct acpi_buffer { + acpi_size length; + void *pointer; +}; -struct ata_bmdma_prd; +struct acpi_osc_context { + char *uuid_str; + int rev; + struct acpi_buffer cap; + struct acpi_buffer ret; +}; -struct ata_host; +struct acpi_object_list { + u32 count; + union acpi_object *pointer; +}; -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: 64; - 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 delayed_work scsi_rescan_task; - unsigned int hsm_task_state; - struct list_head eh_done_q; - wait_queue_head_t eh_wait_q; - int eh_tries; - struct completion park_req_pending; - pm_message_t pm_mesg; - enum ata_lpm_policy target_lpm_policy; - struct timer_list fastdrain_timer; - unsigned int fastdrain_cnt; - async_cookie_t cookie; - int em_message_type; - void *private_data; - struct ata_acpi_gtm __acpi_init_gtm; - u8 *ncq_sense_buf; - long: 64; - long: 64; - long: 64; - u8 sector_buf[512]; +typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); + +struct clk; + +struct devm_clk_state { + struct clk *clk; + void (*exit)(struct clk *); }; -struct scsi_host_template; +struct clk_bulk_data { + const char *id; + struct clk *clk; +}; -struct scsi_transport_template; +struct clk_bulk_devres { + struct clk_bulk_data *clks; + int num_clks; +}; -struct Scsi_Host { - struct list_head __devices; - struct list_head __targets; - struct list_head starved_list; - spinlock_t default_lock; - spinlock_t *host_lock; - struct mutex scan_mutex; - struct list_head eh_abort_list; - struct list_head eh_cmd_q; - struct task_struct *ehandler; - struct completion *eh_action; - wait_queue_head_t host_wait; - const struct scsi_host_template *hostt; - struct scsi_transport_template *transportt; - struct kref tagset_refcnt; - struct completion tagset_freed; - struct blk_mq_tag_set tag_set; - atomic_t host_blocked; - unsigned int host_failed; - unsigned int host_eh_scheduled; - unsigned int host_no; - int eh_deadline; - unsigned long last_reset; - unsigned int max_channel; - unsigned int max_id; - u64 max_lun; - unsigned int unique_id; - unsigned short max_cmd_len; - int this_id; - int can_queue; - short cmd_per_lun; - unsigned short sg_tablesize; - unsigned short sg_prot_tablesize; - unsigned int max_sectors; - unsigned int opt_sectors; - unsigned int max_segment_size; - unsigned long dma_boundary; - unsigned long virt_boundary_mask; - unsigned int nr_hw_queues; - unsigned int nr_maps; - unsigned int active_mode: 2; - unsigned int host_self_blocked: 1; - unsigned int reverse_ordering: 1; - unsigned int tmf_in_progress: 1; - unsigned int async_scan: 1; - unsigned int eh_noresume: 1; - unsigned int no_write_same: 1; - unsigned int host_tagset: 1; - unsigned int queuecommand_may_block: 1; - unsigned int short_inquiry: 1; - unsigned int no_scsi2_lun_in_cdb: 1; - char work_q_name[20]; - struct workqueue_struct *work_q; - struct workqueue_struct *tmf_work_q; - unsigned int max_host_blocked; - unsigned int prot_capabilities; - unsigned char prot_guard_type; - unsigned long base; - unsigned long io_port; - unsigned char n_io_port; - unsigned char dma_channel; - unsigned int irq; - enum scsi_host_state shost_state; - struct device shost_gendev; - struct device shost_dev; - void *shost_data; - struct device *dma_dev; - unsigned long hostdata[0]; -}; +typedef void (*dr_release_t)(struct device *, void *); -struct scsi_target; +typedef int (*dr_match_t)(struct device *, void *, void *); -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 queuecommand_may_block: 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; +enum dma_desc_metadata_mode { + DESC_METADATA_NONE = 0, + DESC_METADATA_CLIENT = 1, + DESC_METADATA_ENGINE = 2, }; -typedef __u64 blist_flags_t; +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, +}; -struct scsi_vpd; +enum dma_residue_granularity { + DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, + DMA_RESIDUE_GRANULARITY_SEGMENT = 1, + DMA_RESIDUE_GRANULARITY_BURST = 2, +}; -struct scsi_device_handler; +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, +}; -struct bsg_device; +enum dmaengine_tx_result { + DMA_TRANS_NOERROR = 0, + DMA_TRANS_READ_FAILED = 1, + DMA_TRANS_WRITE_FAILED = 2, + DMA_TRANS_ABORTED = 3, +}; -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 no_start_on_resume: 1; - unsigned int start_stop_pwr_cond: 1; - unsigned int no_uld_attach: 1; - unsigned int select_no_atn: 1; - unsigned int fix_capacity: 1; - unsigned int guess_capacity: 1; - unsigned int retry_hwerror: 1; - unsigned int last_sector_bug: 1; - unsigned int no_read_disc_info: 1; - unsigned int no_read_capacity_16: 1; - unsigned int try_rc_10_first: 1; - unsigned int security_supported: 1; - unsigned int is_visible: 1; - unsigned int wce_default_on: 1; - unsigned int no_dif: 1; - unsigned int broken_fua: 1; - unsigned int lun_in_cdb: 1; - unsigned int unmap_limit_for_ws: 1; - unsigned int rpm_autosuspend: 1; - unsigned int ignore_media_change: 1; - unsigned int silence_suspend: 1; - unsigned int no_vpd_size: 1; - unsigned int cdl_supported: 1; - unsigned int cdl_enable: 1; - unsigned int queue_stopped; - bool offline_already; - atomic_t disk_events_disable_depth; - unsigned long supported_events[1]; - unsigned long pending_events[1]; - struct list_head event_list; - struct work_struct event_work; - unsigned int max_device_blocked; - atomic_t iorequest_cnt; - atomic_t iodone_cnt; - atomic_t ioerr_cnt; - atomic_t iotmo_cnt; - struct device sdev_gendev; - struct device sdev_dev; - struct work_struct requeue_work; - struct scsi_device_handler *handler; - void *handler_data; - size_t dma_drain_len; - void *dma_drain_buf; - unsigned int sg_timeout; - unsigned int sg_reserved_size; - struct bsg_device *bsg_dev; - unsigned char access_state; - struct mutex state_mutex; - enum scsi_device_state sdev_state; - struct task_struct *quiesced_by; - unsigned long sdev_data[0]; +enum sum_check_flags { + SUM_CHECK_P_RESULT = 1, + SUM_CHECK_Q_RESULT = 2, }; -struct scsi_vpd { - struct callback_head rcu; - int len; - unsigned char data[0]; +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, }; -struct scsi_target { - struct scsi_device *starget_sdev_user; - struct list_head siblings; - struct list_head devices; - struct device dev; - struct kref reap_ref; - unsigned int channel; - unsigned int id; - unsigned int create: 1; - unsigned int single_lun: 1; - unsigned int pdt_1f_for_no_lun: 1; - unsigned int no_report_luns: 1; - unsigned int expecting_lun_change: 1; - atomic_t target_busy; - atomic_t target_blocked; - unsigned int can_queue; - unsigned int max_target_blocked; - char scsi_level; - enum scsi_target_state state; - void *hostdata; - unsigned long starget_data[0]; +enum 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, }; -typedef int (*ata_prereset_fn_t)(struct ata_link *, unsigned long); +enum dma_status { + DMA_COMPLETE = 0, + DMA_IN_PROGRESS = 1, + DMA_PAUSED = 2, + DMA_ERROR = 3, + DMA_OUT_OF_ORDER = 4, +}; -typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, unsigned long); +struct dma_chan; -typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); +struct dma_router; -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 of_dma { + struct list_head of_dma_controllers; + struct device_node *of_node; + struct dma_chan * (*of_dma_xlate)(struct of_phandle_args *, struct of_dma *); + void * (*of_dma_route_allocate)(struct of_phandle_args *, struct of_dma *); + struct dma_router *dma_router; + void *of_dma_data; }; -struct ata_cpr { - u8 num; - u8 num_storage_elements; - u64 start_lba; - u64 num_lbas; -}; +typedef s32 dma_cookie_t; -struct ata_cpr_log { - u8 nr_cpr; - struct ata_cpr cpr[0]; -}; +struct dma_device; -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]; -}; +struct dma_chan_dev; -struct ata_bmdma_prd { - __le32 addr; - __le32 flags_len; -}; +struct dma_chan_percpu; -struct acpi_object_list { - u32 count; - union acpi_object *pointer; +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 ata_acpi_gtf { - u8 tf[7]; -}; +typedef bool (*dma_filter_fn)(struct dma_chan *, void *); -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, -}; +struct dma_slave_map; -enum pm_qos_type { - PM_QOS_UNITIALIZED = 0, - PM_QOS_MAX = 1, - PM_QOS_MIN = 2, +struct dma_filter { + dma_filter_fn fn; + int mapcnt; + const struct dma_slave_map *map; }; -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, -}; +typedef struct { + unsigned long bits[1]; +} dma_cap_mask_t; -enum freq_qos_req_type { - FREQ_QOS_MIN = 1, - FREQ_QOS_MAX = 2, -}; +struct dma_async_tx_descriptor; -struct plist_head { - struct list_head node_list; -}; +struct dma_interleaved_template; -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 dma_slave_caps; -struct pm_qos_flags { - struct list_head list; - s32 effective_flags; -}; +struct dma_slave_config; -struct dev_pm_qos_request; +struct dma_tx_state; -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 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 pm_qos_flags_request { - struct list_head node; - s32 flags; +struct dma_slave_map { + const char *devname; + const char *slave; + void *param; }; -struct freq_qos_request { - enum freq_qos_req_type type; - struct plist_node pnode; - struct freq_constraints *qos; -}; +typedef void (*dma_async_tx_callback)(void *); -struct dev_pm_qos_request { - enum dev_pm_qos_req_type type; - union { - struct plist_node pnode; - struct pm_qos_flags_request flr; - struct freq_qos_request freq; - } data; - struct device *dev; -}; +struct dmaengine_result; -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, -}; +typedef void (*dma_async_tx_callback_result)(void *, const struct dmaengine_result *); -enum e1000_1000t_rx_status { - e1000_1000t_rx_status_not_ok = 0, - e1000_1000t_rx_status_ok = 1, - e1000_1000t_rx_status_undefined = 255, -}; +struct dmaengine_unmap_data; -enum e1000_ms_type { - e1000_ms_hw_default = 0, - e1000_ms_force_master = 1, - e1000_ms_force_slave = 2, - e1000_ms_auto = 3, -}; +struct dma_descriptor_metadata_ops; -enum e1000_rev_polarity { - e1000_rev_polarity_normal = 0, - e1000_rev_polarity_reversed = 1, - e1000_rev_polarity_undefined = 255, +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; }; -enum e1000_smart_speed { - e1000_smart_speed_default = 0, - e1000_smart_speed_on = 1, - e1000_smart_speed_off = 2, +struct dmaengine_result { + enum dmaengine_tx_result result; + u32 residue; }; -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, +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 ptp_extts_request { - unsigned int index; - unsigned int flags; - unsigned int rsv[2]; +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 ptp_clock_time { - __s64 sec; - __u32 nsec; - __u32 reserved; +struct data_chunk { + size_t size; + size_t icg; + size_t dst_icg; + size_t src_icg; }; -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 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 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; - }; +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; }; -enum ptp_pin_function { - PTP_PF_NONE = 0, - PTP_PF_EXTTS = 1, - PTP_PF_PEROUT = 2, - PTP_PF_PHYSYNC = 3, +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; }; -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, +struct dma_tx_state { + dma_cookie_t last; + dma_cookie_t used; + u32 residue; + u32 in_flight_bytes; }; -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, +struct dma_chan_dev { + struct dma_chan *chan; + struct device device; + int dev_id; + bool chan_dma_dev; }; -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, +struct dma_chan_percpu { + unsigned long memcpy_count; + unsigned long bytes_transferred; }; -enum e1000_nvm_override { - e1000_nvm_override_none = 0, - e1000_nvm_override_spi_small = 1, - e1000_nvm_override_spi_large = 2, +struct dma_router { + struct device *dev; + void (*route_free)(struct device *, void *); }; -enum e1000_bus_width { - e1000_bus_width_unknown = 0, - e1000_bus_width_pcie_x1 = 1, - e1000_bus_width_pcie_x2 = 2, - e1000_bus_width_pcie_x4 = 4, - e1000_bus_width_pcie_x8 = 8, - e1000_bus_width_32 = 9, - e1000_bus_width_64 = 10, - e1000_bus_width_reserved = 11, +struct of_dma_filter_info { + dma_cap_mask_t dma_cap; + dma_filter_fn filter_fn; }; -enum e1000_ulp_state { - e1000_ulp_state_unknown = 0, - e1000_ulp_state_off = 1, - e1000_ulp_state_on = 2, +enum regulator_type { + REGULATOR_VOLTAGE = 0, + REGULATOR_CURRENT = 1, }; -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, +enum regulator_get_type { + NORMAL_GET = 0, + EXCLUSIVE_GET = 1, + OPTIONAL_GET = 2, + MAX_GET_TYPE = 3, }; -struct e1000_dev_spec_82571 { - bool laa_is_present; - u32 smb_counter; +struct regulator_voltage { + int min_uV; + int max_uV; }; -struct e1000_dev_spec_80003es2lan { - bool mdic_wa_enable; +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); }; -struct e1000_shadow_ram { - u16 value; - bool modified; -}; +struct regulator_dev; -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 regulator { + struct device *dev; + struct list_head list; + unsigned int always_on: 1; + unsigned int bypass: 1; + unsigned int device_link: 1; + int uA_load; + unsigned int enable_count; + unsigned int deferred_disables; + struct regulator_voltage voltage[5]; + const char *supply_name; + struct device_attribute dev_attr; + struct regulator_dev *rdev; + struct dentry *debugfs; }; -struct e1000_hw; +struct regulator_coupler; -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 coupling_desc { + struct regulator_dev **coupled_rdevs; + struct regulator_coupler *coupler; + int n_resolved; + int n_coupled; }; -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 ww_acquire_ctx; -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 ww_class; -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 ww_mutex { + struct mutex base; + struct ww_acquire_ctx *ctx; + struct ww_class *ww_class; }; -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 regulator_desc; -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 regulation_constraints; -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 regmap; -struct e1000_bus_info { - enum e1000_bus_width width; - u16 func; +struct regulator_enable_gpio; + +struct regulator_dev { + const struct regulator_desc *desc; + int exclusive; + u32 use_count; + u32 open_count; + u32 bypass_count; + struct list_head list; + struct list_head consumer_list; + struct coupling_desc coupling_desc; + struct blocking_notifier_head notifier; + struct ww_mutex mutex; + struct task_struct *mutex_owner; + int ref_cnt; + struct module *owner; + struct device dev; + struct regulation_constraints *constraints; + struct regulator *supply; + const char *supply_name; + struct regmap *regmap; + struct delayed_work disable_work; + void *reg_data; + struct dentry *debugfs; + struct regulator_enable_gpio *ena_pin; + unsigned int ena_gpio_state: 1; + unsigned int is_switch: 1; + ktime_t last_off; + int cached_err; + bool use_cached_err; + spinlock_t err_lock; }; -struct e1000_host_mng_dhcp_cookie { - u32 signature; - u8 status; - u8 reserved0; - u16 vlan_id; - u32 reserved1; - u16 reserved2; - u8 reserved3; - u8 checksum; +struct regulator_config; + +struct regulator_ops; + +struct linear_range; + +struct regulator_desc { + const char *name; + const char *supply_name; + const char *of_match; + bool of_match_full_name; + const char *regulators_node; + int (*of_parse_cb)(struct device_node *, const struct regulator_desc *, struct regulator_config *); + int id; + unsigned int continuous_voltage_range: 1; + unsigned int n_voltages; + unsigned int n_current_limits; + const struct regulator_ops *ops; + int irq; + enum regulator_type type; + struct module *owner; + unsigned int min_uV; + unsigned int uV_step; + unsigned int linear_min_sel; + int fixed_uV; + unsigned int ramp_delay; + int min_dropout_uV; + const struct linear_range *linear_ranges; + const unsigned int *linear_range_selectors_bitfield; + int n_linear_ranges; + const unsigned int *volt_table; + const unsigned int *curr_table; + unsigned int vsel_range_reg; + unsigned int vsel_range_mask; + unsigned int vsel_reg; + unsigned int vsel_mask; + unsigned int vsel_step; + unsigned int csel_reg; + unsigned int csel_mask; + unsigned int apply_reg; + unsigned int apply_bit; + unsigned int enable_reg; + unsigned int enable_mask; + unsigned int enable_val; + unsigned int disable_val; + bool enable_is_inverted; + unsigned int bypass_reg; + unsigned int bypass_mask; + unsigned int bypass_val_on; + unsigned int bypass_val_off; + unsigned int active_discharge_on; + unsigned int active_discharge_off; + unsigned int active_discharge_mask; + unsigned int active_discharge_reg; + unsigned int soft_start_reg; + unsigned int soft_start_mask; + unsigned int soft_start_val_on; + unsigned int pull_down_reg; + unsigned int pull_down_mask; + unsigned int pull_down_val_on; + unsigned int ramp_reg; + unsigned int ramp_mask; + const unsigned int *ramp_delay_table; + unsigned int n_ramp_values; + unsigned int enable_time; + unsigned int off_on_delay; + unsigned int poll_enabled_time; + unsigned int (*of_map_mode)(unsigned int); }; -struct e1000_adapter; +struct regulator_init_data; -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 gpio_desc; + +struct regulator_config { + struct device *dev; + const struct regulator_init_data *init_data; + void *driver_data; + struct device_node *of_node; + struct regmap *regmap; + struct gpio_desc *ena_gpiod; }; -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 regulator_state { + int uV; + int min_uV; + int max_uV; + unsigned int mode; + int enabled; + bool changeable; }; -struct e1000_phy_stats { - u32 idle_errors; - u32 receive_errors; +struct notification_limit { + int prot; + int err; + int warn; }; -struct e1000_phy_regs { - u16 bmcr; - u16 bmsr; - u16 advertise; - u16 lpa; - u16 expansion; - u16 ctrl1000; - u16 stat1000; - u16 estatus; +typedef int suspend_state_t; + +struct regulation_constraints { + const char *name; + int min_uV; + int max_uV; + int uV_offset; + int min_uA; + int max_uA; + int ilim_uA; + int system_load; + u32 *max_spread; + int max_uV_step; + unsigned int valid_modes_mask; + unsigned int valid_ops_mask; + int input_uV; + struct regulator_state state_disk; + struct regulator_state state_mem; + struct regulator_state state_standby; + struct notification_limit over_curr_limits; + struct notification_limit over_voltage_limits; + struct notification_limit under_voltage_limits; + struct notification_limit temp_limits; + suspend_state_t initial_state; + unsigned int initial_mode; + unsigned int ramp_delay; + unsigned int settling_time; + unsigned int settling_time_up; + unsigned int settling_time_down; + unsigned int enable_time; + unsigned int active_discharge; + unsigned int always_on: 1; + unsigned int boot_on: 1; + unsigned int apply_uV: 1; + unsigned int ramp_disable: 1; + unsigned int soft_start: 1; + unsigned int pull_down: 1; + unsigned int over_current_protection: 1; + unsigned int over_current_detection: 1; + unsigned int over_voltage_detection: 1; + unsigned int under_voltage_detection: 1; + unsigned int over_temp_detection: 1; }; -struct e1000_buffer; +struct regulator_consumer_supply; -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 regulator_init_data { + const char *supply_regulator; + struct regulation_constraints constraints; + int num_consumer_supplies; + struct regulator_consumer_supply *consumer_supplies; + int (*regulator_init)(void *); + void *driver_data; }; -struct hwtstamp_config { - int flags; - int tx_type; - int rx_filter; +struct regulator_ops { + int (*list_voltage)(struct regulator_dev *, unsigned int); + int (*set_voltage)(struct regulator_dev *, int, int, unsigned int *); + int (*map_voltage)(struct regulator_dev *, int, int); + int (*set_voltage_sel)(struct regulator_dev *, unsigned int); + int (*get_voltage)(struct regulator_dev *); + int (*get_voltage_sel)(struct regulator_dev *); + int (*set_current_limit)(struct regulator_dev *, int, int); + int (*get_current_limit)(struct regulator_dev *); + int (*set_input_current_limit)(struct regulator_dev *, int); + int (*set_over_current_protection)(struct regulator_dev *, int, int, bool); + int (*set_over_voltage_protection)(struct regulator_dev *, int, int, bool); + int (*set_under_voltage_protection)(struct regulator_dev *, int, int, bool); + int (*set_thermal_protection)(struct regulator_dev *, int, int, bool); + int (*set_active_discharge)(struct regulator_dev *, bool); + int (*enable)(struct regulator_dev *); + int (*disable)(struct regulator_dev *); + int (*is_enabled)(struct regulator_dev *); + int (*set_mode)(struct regulator_dev *, unsigned int); + unsigned int (*get_mode)(struct regulator_dev *); + int (*get_error_flags)(struct regulator_dev *, unsigned int *); + int (*enable_time)(struct regulator_dev *); + int (*set_ramp_delay)(struct regulator_dev *, int); + int (*set_voltage_time)(struct regulator_dev *, int, int); + int (*set_voltage_time_sel)(struct regulator_dev *, unsigned int, unsigned int); + int (*set_soft_start)(struct regulator_dev *); + int (*get_status)(struct regulator_dev *); + unsigned int (*get_optimum_mode)(struct regulator_dev *, int, int, int); + int (*set_load)(struct regulator_dev *, int); + int (*set_bypass)(struct regulator_dev *, bool); + int (*get_bypass)(struct regulator_dev *, bool *); + int (*set_suspend_voltage)(struct regulator_dev *, int); + int (*set_suspend_enable)(struct regulator_dev *); + int (*set_suspend_disable)(struct regulator_dev *); + int (*set_suspend_mode)(struct regulator_dev *, unsigned int); + int (*resume)(struct regulator_dev *); + int (*set_pull_down)(struct regulator_dev *); }; -struct cyclecounter { - u64 (*read)(const struct cyclecounter *); - u64 mask; - u32 mult; - u32 shift; +struct linear_range { + unsigned int min; + unsigned int min_sel; + unsigned int max_sel; + unsigned int step; }; -struct timecounter { - const struct cyclecounter *cc; - u64 cycle_last; - u64 nsec; - u64 mask; - u64 frac; +struct ww_acquire_ctx { + struct task_struct *task; + unsigned long stamp; + unsigned int acquired; + unsigned short wounded; + unsigned short is_wait_die; + unsigned int done_acquire; + struct ww_class *ww_class; + void *contending_lock; }; -struct ptp_clock; +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 ptp_pin_desc; +struct regulator_bulk_data { + const char *supply; + int init_load_uA; + struct regulator *consumer; + int ret; +}; -struct ptp_system_timestamp; +struct regulator_bulk_devres { + struct regulator_bulk_data *consumers; + int num_consumers; +}; -struct system_device_crosststamp; +struct regulator_supply_alias_match { + struct device *dev; + const char *id; +}; -struct ptp_clock_info { - struct module *owner; - char name[32]; - s32 max_adj; - int n_alarm; - int n_ext_ts; - int n_per_out; - int n_pins; - int pps; - struct ptp_pin_desc *pin_config; - int (*adjfine)(struct ptp_clock_info *, long); - int (*adjphase)(struct ptp_clock_info *, s32); - s32 (*getmaxphase)(struct ptp_clock_info *); - int (*adjtime)(struct ptp_clock_info *, s64); - int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); - int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); - int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); - int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); - int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *); - int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); - int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *); - int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); - int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); - long (*do_aux_work)(struct ptp_clock_info *); +struct regulator_irq_data; + +struct regulator_irq_desc { + const char *name; + int fatal_cnt; + int reread_ms; + int irq_off_ms; + bool skip_off; + bool high_prio; + void *data; + int (*die)(struct regulator_irq_data *); + int (*map_event)(int, struct regulator_irq_data *, unsigned long *); + int (*renable)(struct regulator_irq_data *); }; -struct pm_qos_request { - struct plist_node node; - struct pm_qos_constraints *qos; +struct regulator_err_state; + +struct regulator_irq_data { + struct regulator_err_state *states; + int num_states; + void *data; + long opaque; }; -struct e1000_info; +struct regulator_err_state { + struct regulator_dev *rdev; + unsigned long notifs; + unsigned long errors; + int possible_errs; +}; -struct msix_entry; +struct regulator_notifier_match { + struct regulator *regulator; + struct notifier_block *nb; +}; -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: 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: 64; - 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; +enum translation_map { + LAT1_MAP = 0, + GRAF_MAP = 1, + IBMPC_MAP = 2, + USER_MAP = 3, + FIRST_MAP = 0, + LAST_MAP = 3, }; -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 uni_pagedict { + u16 **uni_pgdir[32]; + unsigned long refcount; + unsigned long sum; + unsigned char *inverse_translations[4]; + u16 *inverse_trans_unicode; }; -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; - }; - }; +enum vc_intensity { + VCI_HALF_BRIGHT = 0, + VCI_NORMAL = 1, + VCI_BOLD = 2, + VCI_MASK = 3, }; -struct e1000_ps_page { - struct page *page; - u64 dma; +enum con_scroll { + SM_UP = 0, + SM_DOWN = 1, }; -struct msix_entry { - u32 vector; - u16 entry; +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 ptp_pin_desc { - char name[64]; - unsigned int index; - unsigned int func; - unsigned int chan; - unsigned int rsv[5]; +struct console_font { + unsigned int width; + unsigned int height; + unsigned int charcount; + unsigned char *data; }; -struct ptp_system_timestamp { - struct timespec64 pre_ts; - struct timespec64 post_ts; +struct vt_mode { + char mode; + char waitv; + short relsig; + short acqsig; + short frsig; }; -struct system_device_crosststamp { - ktime_t device; - ktime_t sys_realtime; - ktime_t sys_monoraw; -}; +struct consw; -struct e1000_host_mng_command_header { - u8 command_id; - u8 checksum; - u16 reserved1; - u16 reserved2; - u16 command_length; +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; }; -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, +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 *); }; -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, -}; +typedef unsigned short u_short; -enum usb_ssp_rate { - USB_SSP_GEN_UNKNOWN = 0, - USB_SSP_GEN_2x1 = 1, - USB_SSP_GEN_1x2 = 2, - USB_SSP_GEN_2x2 = 3, -}; +typedef unsigned short ushort; -enum usb_interface_condition { - USB_INTERFACE_UNBOUND = 0, - USB_INTERFACE_BINDING = 1, - USB_INTERFACE_BOUND = 2, - USB_INTERFACE_UNBINDING = 3, +struct unipair { + unsigned short unicode; + unsigned short fontpos; }; -enum usb_wireless_status { - USB_WIRELESS_STATUS_NA = 0, - USB_WIRELESS_STATUS_DISCONNECTED = 1, - USB_WIRELESS_STATUS_CONNECTED = 2, -}; +struct earlycon_device; -enum usb3_link_state { - USB3_LPM_U0 = 0, - USB3_LPM_U1 = 1, - USB3_LPM_U2 = 2, - USB3_LPM_U3 = 3, +struct earlycon_id { + char name[15]; + char name_term; + char compatible[128]; + int (*setup)(struct earlycon_device *, const char *); }; -enum usb_dev_authorize_policy { - USB_DEVICE_AUTHORIZE_NONE = 0, - USB_DEVICE_AUTHORIZE_ALL = 1, - USB_DEVICE_AUTHORIZE_INTERNAL = 2, +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; }; -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, -}; +typedef u64 upf_t; -enum xhci_cancelled_td_status { - TD_DIRTY = 0, - TD_HALTED = 1, - TD_CLEARING_CACHE = 2, - TD_CLEARED = 3, -}; +typedef unsigned int upstat_t; -enum xhci_setup_dev { - SETUP_CONTEXT_ONLY = 0, - SETUP_CONTEXT_ADDRESS = 1, +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]; + }; + }; }; -enum xhci_ep_reset_type { - EP_HARD_RESET = 0, - EP_SOFT_RESET = 1, +struct serial_iso7816 { + __u32 flags; + __u32 tg; + __u32 sc_fi; + __u32 sc_di; + __u32 clk; + __u32 reserved[5]; }; -struct xhci_container_ctx; +struct uart_state; -union xhci_trb; +struct console; -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 uart_ops; -struct xhci_container_ctx { +struct serial_port_device; + +struct uart_port { + spinlock_t lock; + unsigned long iobase; + unsigned char *membase; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + void (*set_mctrl)(struct uart_port *, unsigned int); + unsigned int (*get_divisor)(struct uart_port *, unsigned int, unsigned int *); + void (*set_divisor)(struct uart_port *, unsigned int, unsigned int, unsigned int); + int (*startup)(struct uart_port *); + void (*shutdown)(struct uart_port *); + void (*throttle)(struct uart_port *); + void (*unthrottle)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); + int (*rs485_config)(struct uart_port *, struct ktermios *, struct serial_rs485 *); + int (*iso7816_config)(struct uart_port *, struct serial_iso7816 *); + unsigned int ctrl_id; + unsigned int port_id; + unsigned int irq; + unsigned long irqflags; + unsigned int uartclk; + unsigned int fifosize; + unsigned char x_char; + unsigned char regshift; + unsigned char iotype; + unsigned char quirks; + unsigned int read_status_mask; + unsigned int ignore_status_mask; + struct uart_state *state; + struct uart_icount icount; + struct console *cons; + upf_t flags; + upstat_t status; + bool hw_stopped; + unsigned int mctrl; + unsigned int frame_time; unsigned int type; - int size; - u8 *bytes; - dma_addr_t dma; + const struct uart_ops *ops; + unsigned int custom_divisor; + unsigned int line; + unsigned int minor; + resource_size_t mapbase; + resource_size_t mapsize; + struct device *dev; + struct serial_port_device *port_dev; + unsigned long sysrq; + u8 sysrq_ch; + unsigned char has_sysrq; + unsigned char sysrq_seq; + unsigned char hub6; + unsigned char suspended; + unsigned char console_reinit; + const char *name; + struct attribute_group *attr_group; + const struct attribute_group **tty_groups; + struct serial_rs485 rs485; + struct serial_rs485 rs485_supported; + struct gpio_desc *rs485_term_gpio; + struct gpio_desc *rs485_rx_during_tx_gpio; + struct serial_iso7816 iso7816; + void *private_data; }; -struct xhci_link_trb { - __le64 segment_ptr; - __le32 intr_target; - __le32 control; +struct earlycon_device { + struct console *con; + struct uart_port port; + char options[32]; + unsigned int baud; }; -struct xhci_transfer_event { - __le64 buffer; - __le32 transfer_len; - __le32 flags; +typedef unsigned int uint; + +struct nbcon_write_context; + +struct printk_buffers; + +struct console { + char name[16]; + void (*write)(struct console *, const char *, unsigned int); + int (*read)(struct console *, char *, unsigned int); + struct tty_driver * (*device)(struct console *, int *); + void (*unblank)(); + int (*setup)(struct console *, char *); + int (*exit)(struct console *); + int (*match)(struct console *, char *, int, char *); + short flags; + short index; + int cflag; + uint ispeed; + uint ospeed; + u64 seq; + unsigned long dropped; + void *data; + struct hlist_node node; + bool (*write_atomic)(struct console *, struct nbcon_write_context *); + atomic_t nbcon_state; + atomic_long_t nbcon_seq; + struct printk_buffers *pbufs; }; -struct xhci_event_cmd { - __le64 cmd_trb; - __le32 status; - __le32 flags; +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 xhci_generic_trb { - __le32 field[4]; +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; }; -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; +enum nbcon_prio { + NBCON_PRIO_NONE = 0, + NBCON_PRIO_NORMAL = 1, + NBCON_PRIO_EMERGENCY = 2, + NBCON_PRIO_PANIC = 3, + NBCON_PRIO_MAX = 4, }; -struct s3_save { - u32 command; - u32 dev_nt; - u64 dcbaa_ptr; - u32 config_reg; +struct nbcon_context { + struct console *console; + unsigned int spinwait_max_us; + enum nbcon_prio prio; + unsigned int allow_unsafe_takeover: 1; + unsigned int backlog: 1; + struct printk_buffers *pbufs; + u64 seq; }; -struct 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 nbcon_write_context { + struct nbcon_context ctxt; + char *outbuf; + unsigned int len; + bool unsafe_takeover; }; -struct xhci_port; - -struct usb_hcd; - -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; +enum uart_pm_state { + UART_PM_STATE_ON = 0, + UART_PM_STATE_OFF = 3, + UART_PM_STATE_UNDEFINED = 4, }; -struct xhci_cap_regs; +struct circ_buf { + char *buf; + int head; + int tail; +}; -struct xhci_op_regs; +struct uart_state { + struct tty_port port; + enum uart_pm_state pm_state; + struct circ_buf xmit; + atomic_t refcount; + wait_queue_head_t remove_wait; + struct uart_port *uart_port; +}; -struct xhci_run_regs; +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 xhci_doorbell_array; +typedef void (*exitcall_t)(); -struct reset_control; +struct sifive_serial_port { + struct uart_port port; + struct device *dev; + unsigned char ier; + unsigned long baud_rate; + struct clk *clk; + struct notifier_block clk_notifier; +}; -struct xhci_device_context_array; +struct platform_device; -struct xhci_interrupter; +struct platform_device_id; -struct xhci_ring; +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 xhci_scratchpad; +struct mfd_cell; -struct xhci_virt_device; +struct pdev_archdata {}; -struct xhci_root_port_bw_info; +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 dma_pool; +struct platform_device_id { + char name[20]; + kernel_ulong_t driver_data; +}; -struct xhci_port_cap; +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 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_notifier_data { 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]; + unsigned long old_rate; + unsigned long new_rate; }; -struct usb_devmap { - unsigned long devicemap[2]; -}; +typedef enum { + PHY_INTERFACE_MODE_NA = 0, + PHY_INTERFACE_MODE_INTERNAL = 1, + PHY_INTERFACE_MODE_MII = 2, + PHY_INTERFACE_MODE_GMII = 3, + PHY_INTERFACE_MODE_SGMII = 4, + PHY_INTERFACE_MODE_TBI = 5, + PHY_INTERFACE_MODE_REVMII = 6, + PHY_INTERFACE_MODE_RMII = 7, + PHY_INTERFACE_MODE_REVRMII = 8, + PHY_INTERFACE_MODE_RGMII = 9, + PHY_INTERFACE_MODE_RGMII_ID = 10, + PHY_INTERFACE_MODE_RGMII_RXID = 11, + PHY_INTERFACE_MODE_RGMII_TXID = 12, + PHY_INTERFACE_MODE_RTBI = 13, + PHY_INTERFACE_MODE_SMII = 14, + PHY_INTERFACE_MODE_XGMII = 15, + PHY_INTERFACE_MODE_XLGMII = 16, + PHY_INTERFACE_MODE_MOCA = 17, + PHY_INTERFACE_MODE_PSGMII = 18, + PHY_INTERFACE_MODE_QSGMII = 19, + PHY_INTERFACE_MODE_TRGMII = 20, + PHY_INTERFACE_MODE_100BASEX = 21, + PHY_INTERFACE_MODE_1000BASEX = 22, + PHY_INTERFACE_MODE_2500BASEX = 23, + PHY_INTERFACE_MODE_5GBASER = 24, + PHY_INTERFACE_MODE_RXAUI = 25, + PHY_INTERFACE_MODE_XAUI = 26, + PHY_INTERFACE_MODE_10GBASER = 27, + PHY_INTERFACE_MODE_25GBASER = 28, + PHY_INTERFACE_MODE_USXGMII = 29, + PHY_INTERFACE_MODE_10GKR = 30, + PHY_INTERFACE_MODE_QUSGMII = 31, + PHY_INTERFACE_MODE_1000BASEKX = 32, + PHY_INTERFACE_MODE_MAX = 33, +} phy_interface_t; -struct usb_device; +typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); -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; +enum regmap_endian { + REGMAP_ENDIAN_DEFAULT = 0, + REGMAP_ENDIAN_BIG = 1, + REGMAP_ENDIAN_LITTLE = 2, + REGMAP_ENDIAN_NATIVE = 3, }; -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; +enum regcache_type { + REGCACHE_NONE = 0, + REGCACHE_RBTREE = 1, + REGCACHE_FLAT = 2, + REGCACHE_MAPLE = 3, }; -struct usb_host_endpoint; - -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 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 urb; +typedef void (*regmap_lock)(void *); -struct hc_driver; +typedef void (*regmap_unlock)(void *); -struct usb_phy; +struct regmap_format { + size_t buf_size; + size_t reg_bytes; + size_t pad_bytes; + size_t val_bytes; + s8 reg_shift; + 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 usb_phy_roothub; +struct hwspinlock; -struct gen_pool; +struct regmap_bus; -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]; -}; +struct regmap_access_table; -struct usb_endpoint_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bEndpointAddress; - __u8 bmAttributes; - __le16 wMaxPacketSize; - __u8 bInterval; - __u8 bRefresh; - __u8 bSynchAddress; -} __attribute__((packed)); +struct regcache_ops; -struct usb_ss_ep_comp_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bMaxBurst; - __u8 bmAttributes; - __le16 wBytesPerInterval; -}; +struct reg_default; -struct usb_ssp_isoc_ep_comp_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wReseved; - __le32 dwBytesPerInterval; +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; + bool force_write_field; + 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; }; -struct ep_device; +typedef int (*regmap_hw_write)(void *, const void *, size_t); -struct usb_host_endpoint { - struct usb_endpoint_descriptor desc; - struct usb_ss_ep_comp_descriptor ss_ep_comp; - struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp; - long: 0; - struct list_head urb_list; - void *hcpriv; - struct ep_device *ep_dev; - unsigned char *extra; - int extralen; - int enabled; - int streams; - long: 0; -} __attribute__((packed)); +typedef int (*regmap_hw_gather_write)(void *, const void *, size_t, const void *, size_t); -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 regmap_async; -struct wusb_dev; +typedef int (*regmap_hw_async_write)(void *, const void *, size_t, const void *, size_t, struct regmap_async *); -struct usb2_lpm_parameters { - unsigned int besl; - int timeout; -}; +typedef int (*regmap_hw_reg_write)(void *, unsigned int, unsigned int); -struct usb3_lpm_parameters { - unsigned int mel; - unsigned int pel; - unsigned int sel; - int timeout; -}; +typedef int (*regmap_hw_reg_noinc_write)(void *, unsigned int, const void *, size_t); -struct usb_tt; +typedef int (*regmap_hw_reg_update_bits)(void *, unsigned int, unsigned int, unsigned int); -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; +typedef int (*regmap_hw_read)(void *, const void *, size_t, void *, size_t); -struct usb_ss_cap_descriptor; +typedef int (*regmap_hw_reg_read)(void *, unsigned int, unsigned int *); -struct usb_ssp_cap_descriptor; +typedef int (*regmap_hw_reg_noinc_read)(void *, unsigned int, void *, size_t); -struct usb_ss_container_id_descriptor; +typedef void (*regmap_hw_free_context)(void *); -struct usb_ptm_cap_descriptor; +typedef struct regmap_async * (*regmap_hw_async_alloc)(); -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 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 usb_bos_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wTotalLength; - __u8 bNumDeviceCaps; -} __attribute__((packed)); +struct regmap_async { + struct list_head list; + struct regmap *map; + void *work_buf; +}; -struct usb_ext_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __le32 bmAttributes; -} __attribute__((packed)); +struct regmap_range; -struct usb_ss_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bmAttributes; - __le16 wSpeedSupported; - __u8 bFunctionalitySupport; - __u8 bU1devExitLat; - __le16 bU2DevExitLat; +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 usb_ssp_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bReserved; - __le32 bmAttributes; - __le16 wFunctionalitySupport; - __le16 wReserved; - union { - __le32 legacy_padding; - struct { - struct {} __empty_bmSublinkSpeedAttr; - __le32 bmSublinkSpeedAttr[0]; - }; - }; +struct regmap_range { + unsigned int range_min; + unsigned int range_max; }; -struct usb_ss_container_id_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bReserved; - __u8 ContainerID[16]; +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); }; -struct usb_ptm_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; +struct reg_default { + unsigned int reg; + unsigned int def; }; -struct usb_config_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wTotalLength; - __u8 bNumInterfaces; - __u8 bConfigurationValue; - __u8 iConfiguration; - __u8 bmAttributes; - __u8 bMaxPower; -} __attribute__((packed)); +struct reg_sequence { + unsigned int reg; + unsigned int def; + unsigned int delay_us; +}; -struct usb_interface_assoc_descriptor; +struct regmap_debugfs_node { + struct regmap *map; + struct list_head link; +}; -struct usb_interface; +typedef __kernel_long_t __kernel_off_t; -struct usb_interface_cache; +typedef __kernel_off_t off_t; -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 regmap_debugfs_off_cache { + struct list_head list; + off_t min; + off_t max; + unsigned int base_reg; + unsigned int max_reg; }; -struct usb_interface_assoc_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bFirstInterface; - __u8 bInterfaceCount; - __u8 bFunctionClass; - __u8 bFunctionSubClass; - __u8 bFunctionProtocol; - __u8 iFunction; +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; }; -struct usb_host_interface; - -struct usb_interface { - struct usb_host_interface *altsetting; - struct usb_host_interface *cur_altsetting; - unsigned int num_altsetting; - struct usb_interface_assoc_descriptor *intf_assoc; - int minor; - enum usb_interface_condition condition; - unsigned int sysfs_files_created: 1; - unsigned int ep_devs_created: 1; - unsigned int unregistering: 1; - unsigned int needs_remote_wakeup: 1; - unsigned int needs_altsetting0: 1; - unsigned int needs_binding: 1; - unsigned int resetting_device: 1; - unsigned int authorized: 1; - enum usb_wireless_status wireless_status; - struct work_struct wireless_status_work; - struct device dev; - struct device *usb_dev; - struct work_struct reset_ws; +struct 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 usb_interface_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bInterfaceNumber; - __u8 bAlternateSetting; - __u8 bNumEndpoints; - __u8 bInterfaceClass; - __u8 bInterfaceSubClass; - __u8 bInterfaceProtocol; - __u8 iInterface; +enum nvdimm_passphrase_type { + NVDIMM_USER = 0, + NVDIMM_MASTER = 1, }; -struct usb_host_interface { - struct usb_interface_descriptor desc; - int extralen; - unsigned char *extra; - struct usb_host_endpoint *endpoint; - char *string; +enum nvdimm_fwa_state { + NVDIMM_FWA_INVALID = 0, + NVDIMM_FWA_IDLE = 1, + NVDIMM_FWA_ARMED = 2, + NVDIMM_FWA_BUSY = 3, + NVDIMM_FWA_ARM_OVERFLOW = 4, }; -struct usb_interface_cache { - unsigned int num_altsetting; - struct kref ref; - struct usb_host_interface altsetting[0]; +enum nvdimm_fwa_result { + NVDIMM_FWA_RESULT_INVALID = 0, + NVDIMM_FWA_RESULT_NONE = 1, + NVDIMM_FWA_RESULT_SUCCESS = 2, + NVDIMM_FWA_RESULT_NOTSTAGED = 3, + NVDIMM_FWA_RESULT_NEEDRESET = 4, + NVDIMM_FWA_RESULT_FAIL = 5, }; -typedef void (*usb_complete_t)(struct urb *); - -struct usb_iso_packet_descriptor { - unsigned int offset; - unsigned int length; - unsigned int actual_length; - int status; +enum nvdimm_fwa_trigger { + NVDIMM_FWA_ARM = 0, + NVDIMM_FWA_DISARM = 1, }; -struct usb_anchor; +enum nvdimm_fwa_capability { + NVDIMM_FWA_CAP_INVALID = 0, + NVDIMM_FWA_CAP_NONE = 1, + NVDIMM_FWA_CAP_QUIESCE = 2, + NVDIMM_FWA_CAP_LIVE = 3, +}; -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]; +enum nvdimm_claim_class { + NVDIMM_CCLASS_NONE = 0, + NVDIMM_CCLASS_BTT = 1, + NVDIMM_CCLASS_BTT2 = 2, + NVDIMM_CCLASS_PFN = 3, + NVDIMM_CCLASS_DAX = 4, + NVDIMM_CCLASS_UNKNOWN = 5, }; -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 { + NDD_UNARMED = 1, + NDD_LOCKED = 2, + NDD_SECURITY_OVERWRITE = 3, + NDD_WORK_PENDING = 4, + NDD_LABELING = 6, + NDD_INCOHERENT = 7, + NDD_REGISTER_SYNC = 8, + ND_IOCTL_MAX_BUFLEN = 4194304, + ND_CMD_MAX_ELEM = 5, + ND_CMD_MAX_ENVELOPE = 256, + ND_MAX_MAPPINGS = 32, + ND_REGION_PAGEMAP = 0, + ND_REGION_PERSIST_CACHE = 1, + ND_REGION_PERSIST_MEMCTRL = 2, + ND_REGION_ASYNC = 3, + ND_REGION_CXL = 4, + DPA_RESOURCE_ADJUSTED = 1, }; -struct hc_driver { - const char *description; - const char *product_desc; - size_t hcd_priv_size; - irqreturn_t (*irq)(struct usb_hcd *); - int flags; - int (*reset)(struct usb_hcd *); - int (*start)(struct usb_hcd *); - int (*pci_suspend)(struct usb_hcd *, bool); - int (*pci_resume)(struct usb_hcd *, pm_message_t); - int (*pci_poweroff_late)(struct usb_hcd *, bool); - void (*stop)(struct usb_hcd *); - void (*shutdown)(struct usb_hcd *); - int (*get_frame_number)(struct usb_hcd *); - int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t); - int (*urb_dequeue)(struct usb_hcd *, struct urb *, int); - int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t); - void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *); - void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *); - void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *); - int (*hub_status_data)(struct usb_hcd *, char *); - int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); - int (*bus_suspend)(struct usb_hcd *); - int (*bus_resume)(struct usb_hcd *); - int (*start_port_reset)(struct usb_hcd *, unsigned int); - unsigned long (*get_resuming_ports)(struct usb_hcd *); - void (*relinquish_port)(struct usb_hcd *, int); - int (*port_handed_over)(struct usb_hcd *, int); - void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *); - int (*alloc_dev)(struct usb_hcd *, struct usb_device *); - void (*free_dev)(struct usb_hcd *, struct usb_device *); - int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t); - int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t); - int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); - int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); - int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); - void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); - int (*address_device)(struct usb_hcd *, struct usb_device *); - 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); +enum nd_pfn_mode { + PFN_MODE_NONE = 0, + PFN_MODE_RAM = 1, + PFN_MODE_PMEM = 2, }; -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; +enum { + ND_MIN_NAMESPACE_SIZE = 4096, }; -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]; +enum alloc_loc { + ALLOC_ERR = 0, + ALLOC_BEFORE = 1, + ALLOC_MID = 2, + ALLOC_AFTER = 3, }; -struct xhci_intr_reg { - __le32 irq_pending; - __le32 irq_control; - __le32 erst_size; - __le32 rsvd; - __le64 erst_base; - __le64 erst_dequeue; +enum nd_async_mode { + ND_SYNC = 0, + ND_ASYNC = 1, }; -struct xhci_run_regs { - __le32 microframe_index; - __le32 rsvd[7]; - struct xhci_intr_reg ir_set[128]; +enum nd_label_flags { + ND_LABEL_REAP = 0, }; -struct xhci_doorbell_array { - __le32 doorbell[256]; +enum { + NSINDEX_SIG_LEN = 16, + NSINDEX_ALIGN = 256, + NSINDEX_SEQ_MASK = 3, + NSLABEL_UUID_LEN = 16, + NSLABEL_NAME_LEN = 64, + NSLABEL_FLAG_ROLABEL = 1, + NSLABEL_FLAG_LOCAL = 2, + NSLABEL_FLAG_BTT = 4, + NSLABEL_FLAG_UPDATING = 8, + BTT_ALIGN = 4096, + BTTINFO_SIG_LEN = 16, + BTTINFO_UUID_LEN = 16, + BTTINFO_FLAG_ERROR = 1, + BTTINFO_MAJOR_VERSION = 1, + ND_LABEL_MIN_SIZE = 1024, + ND_LABEL_ID_SIZE = 50, + ND_NSINDEX_INIT = 1, }; -struct xhci_device_context_array { - __le64 dev_context_ptrs[256]; - dma_addr_t dma; +struct nd_namespace_common { + int force_raw; + struct device dev; + struct device *claim; + enum nvdimm_claim_class claim_class; + int (*rw_bytes)(struct nd_namespace_common *, resource_size_t, void *, size_t, int, unsigned long); }; -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 nd_namespace_io { + struct nd_namespace_common common; + struct resource res; + resource_size_t size; + void *addr; + struct badblocks bb; }; -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; +struct nd_namespace_pmem { + struct nd_namespace_io nsio; + unsigned long lbasize; + char *alt_name; + uuid_t *uuid; + int id; }; -struct xhci_segment; +struct nd_namespace_label; -struct xhci_ring { - struct xhci_segment *first_seg; - struct xhci_segment *last_seg; - union xhci_trb *enqueue; - struct xhci_segment *enq_seg; - union xhci_trb *dequeue; - struct xhci_segment *deq_seg; - struct list_head td_list; - u32 cycle_state; - unsigned int stream_id; - unsigned int num_segs; - unsigned int num_trbs_free; - unsigned int bounce_buf_len; - enum xhci_ring_type type; - bool last_td_was_short; - struct xarray *trb_address_map; +struct nd_label_ent { + struct list_head list; + unsigned long flags; + struct nd_namespace_label *label; }; -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 nvdimm_cxl_label { + u8 type[16]; + u8 uuid[16]; + u8 name[64]; + __le32 flags; + __le16 nrange; + __le16 position; + __le64 dpa; + __le64 rawsize; + __le32 slot; + __le32 align; + u8 region_uuid[16]; + u8 abstraction_uuid[16]; + __le16 lbasize; + u8 reserved[86]; + __le64 checksum; }; -struct xhci_erst_entry { - __le64 seg_addr; - __le32 seg_size; - __le32 rsvd; +struct nvdimm_efi_label { + u8 uuid[16]; + u8 name[64]; + __le32 flags; + __le16 nlabel; + __le16 position; + __le64 isetcookie; + __le64 lbasize; + __le64 dpa; + __le64 rawsize; + __le32 slot; + u8 align; + u8 reserved[3]; + guid_t type_guid; + guid_t abstraction_guid; + u8 reserved2[88]; + __le64 checksum; }; -struct xhci_scratchpad { - u64 *sp_array; - dma_addr_t sp_dma; - void **sp_buffers; +struct nd_namespace_label { + union { + struct nvdimm_cxl_label cxl; + struct nvdimm_efi_label efi; + }; }; -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 badrange { + struct list_head list; + spinlock_t lock; }; -struct xhci_stream_info; +struct nvdimm_bus_descriptor; -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 nvdimm_bus { + struct nvdimm_bus_descriptor *nd_desc; + wait_queue_head_t wait; + struct list_head list; + struct device dev; + int id; + int probe_active; + atomic_t ioctl_active; + struct list_head mapping_list; + struct mutex reconfig_mutex; + struct badrange badrange; }; -struct xhci_interval_bw_table; +struct nvdimm; -struct xhci_tt_bw_info; +typedef int (*ndctl_fn)(struct nvdimm_bus_descriptor *, struct nvdimm *, unsigned int, void *, unsigned int, int *); -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 nvdimm_bus_fw_ops; + +struct nvdimm_bus_descriptor { + const struct attribute_group **attr_groups; + unsigned long cmd_mask; + unsigned long dimm_family_mask; + unsigned long bus_family_mask; + struct module *module; + char *provider_name; + struct device_node *of_node; + ndctl_fn ndctl; + int (*flush_probe)(struct nvdimm_bus_descriptor *); + int (*clear_to_send)(struct nvdimm_bus_descriptor *, struct nvdimm *, unsigned int, void *); + const struct nvdimm_bus_fw_ops *fw_ops; }; -struct xhci_stream_ctx; +struct nvdimm_security_ops; -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 nvdimm_fw_ops; -struct xhci_stream_ctx { - __le64 stream_ring; - __le32 reserved[2]; +struct nvdimm { + unsigned long flags; + void *provider_data; + unsigned long cmd_mask; + struct device dev; + atomic_t busy; + int id; + int num_flush; + struct resource *flush_wpq; + const char *dimm_id; + struct { + const struct nvdimm_security_ops *ops; + unsigned long flags; + unsigned long ext_flags; + unsigned int overwrite_tmo; + struct kernfs_node *overwrite_state; + } sec; + struct delayed_work dwork; + const struct nvdimm_fw_ops *fw_ops; }; -struct xhci_interval_bw { - unsigned int num_packets; - struct list_head endpoints; - unsigned int overhead[3]; -}; +struct nvdimm_key_data; -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 nvdimm_security_ops { + unsigned long (*get_flags)(struct nvdimm *, enum nvdimm_passphrase_type); + int (*freeze)(struct nvdimm *); + int (*change_key)(struct nvdimm *, const struct nvdimm_key_data *, const struct nvdimm_key_data *, enum nvdimm_passphrase_type); + int (*unlock)(struct nvdimm *, const struct nvdimm_key_data *); + int (*disable)(struct nvdimm *, const struct nvdimm_key_data *); + int (*erase)(struct nvdimm *, const struct nvdimm_key_data *, enum nvdimm_passphrase_type); + int (*overwrite)(struct nvdimm *, const struct nvdimm_key_data *); + int (*query_overwrite)(struct nvdimm *); + int (*disable_master)(struct nvdimm *, const struct nvdimm_key_data *); }; -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 nvdimm_key_data { + u8 data[32]; }; -struct xhci_root_port_bw_info { - struct list_head tts; - unsigned int num_active_tts; - struct xhci_interval_bw_table bw_table; +struct nvdimm_fw_ops { + enum nvdimm_fwa_state (*activate_state)(struct nvdimm *); + enum nvdimm_fwa_result (*activate_result)(struct nvdimm *); + int (*arm)(struct nvdimm *, enum nvdimm_fwa_trigger); }; -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 nvdimm_bus_fw_ops { + enum nvdimm_fwa_state (*activate_state)(struct nvdimm_bus_descriptor *); + enum nvdimm_fwa_capability (*capability)(struct nvdimm_bus_descriptor *); + int (*activate)(struct nvdimm_bus_descriptor *); }; -struct xhci_port_cap { - u32 *psi; - u8 psi_count; - u8 psi_uid_count; - u8 maj_rev; - u8 min_rev; -}; +struct nvdimm_drvdata; -struct usb_ctrlrequest { - __u8 bRequestType; - __u8 bRequest; - __le16 wValue; - __le16 wIndex; - __le16 wLength; +struct nd_mapping { + struct nvdimm *nvdimm; + u64 start; + u64 size; + int position; + struct list_head labels; + struct mutex lock; + struct nvdimm_drvdata *ndd; }; -struct mmiowb_state { - u16 nesting_count; - u16 mmiowb_pending; -}; +struct nd_interleave_set; -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 nd_percpu_lane; -struct urb_priv { - int num_tds; - int num_tds_done; - struct xhci_td td[0]; +struct nd_region { + struct device dev; + struct ida ns_ida; + struct ida btt_ida; + struct ida pfn_ida; + struct ida dax_ida; + unsigned long flags; + struct device *ns_seed; + struct device *btt_seed; + struct device *pfn_seed; + struct device *dax_seed; + unsigned long align; + u16 ndr_mappings; + u64 ndr_size; + u64 ndr_start; + int id; + int num_lanes; + int ro; + int numa_node; + int target_node; + void *provider_data; + struct kernfs_node *bb_state; + struct badblocks bb; + struct nd_interleave_set *nd_set; + struct nd_percpu_lane __attribute__((btf_type_tag("percpu"))) *lane; + int (*flush)(struct nd_region *, struct bio *); + struct nd_mapping mapping[0]; }; -struct va_format { - const char *fmt; - va_list *va; +struct nd_interleave_set { + u64 cookie1; + u64 cookie2; + u64 altcookie; + guid_t type_guid; }; -struct xhci_ep_ctx { - __le32 ep_info; - __le32 ep_info2; - __le64 deq; - __le32 tx_info; - __le32 reserved[3]; +struct nd_percpu_lane { + int count; + spinlock_t lock; }; -struct xhci_slot_ctx { - __le32 dev_info; - __le32 dev_info2; - __le32 tt_info; - __le32 dev_state; - __le32 reserved[4]; +struct nd_cmd_get_config_size { + __u32 status; + __u32 config_size; + __u32 max_xfer; }; -typedef __kernel_long_t __kernel_off_t; - -typedef __kernel_off_t off_t; - -struct xhci_input_control_ctx { - __le32 drop_flags; - __le32 add_flags; - __le32 rsvd2[6]; +struct nvdimm_drvdata { + struct device *dev; + int nslabel_size; + struct nd_cmd_get_config_size nsarea; + void *data; + bool cxl; + int ns_current; + int ns_next; + struct resource dpa; + struct kref kref; }; -enum thermal_device_mode { - THERMAL_DEVICE_DISABLED = 0, - THERMAL_DEVICE_ENABLED = 1, +struct nd_label_id { + char id[50]; }; -enum thermal_trip_type { - THERMAL_TRIP_ACTIVE = 0, - THERMAL_TRIP_PASSIVE = 1, - THERMAL_TRIP_HOT = 2, - THERMAL_TRIP_CRITICAL = 3, -}; +struct btt; -enum thermal_trend { - THERMAL_TREND_STABLE = 0, - THERMAL_TREND_RAISING = 1, - THERMAL_TREND_DROPPING = 2, +struct nd_btt { + struct device dev; + struct nd_namespace_common *ndns; + struct btt *btt; + unsigned long lbasize; + u64 size; + uuid_t *uuid; + int id; + int initial_offset; + u16 version_major; + u16 version_minor; }; -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 nd_namespace_index { + u8 sig[16]; + u8 flags[3]; + u8 labelsize; + __le32 seq; + __le64 myoff; + __le64 mysize; + __le64 otheroff; + __le64 labeloff; + __le32 nslot; + __le16 major; + __le16 minor; + __le64 checksum; + u8 free[0]; }; -struct thermal_attr; - -struct thermal_trip; - -struct thermal_zone_device_ops; +typedef int (*cmp_func_t)(const void *, const void *); -struct thermal_zone_params; +typedef void (*swap_func_t)(void *, void *, int); -struct thermal_governor; +struct nd_pfn_sb; -struct thermal_zone_device { +struct nd_pfn { 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; + uuid_t *uuid; + struct device dev; + unsigned long align; + unsigned long npfns; + enum nd_pfn_mode mode; + struct nd_pfn_sb *pfn_sb; + struct nd_namespace_common *ndns; }; -struct thermal_attr { - struct device_attribute attr; - char name[20]; +struct nd_dax { + struct nd_pfn nd_pfn; }; -struct thermal_trip { - int temperature; - int hysteresis; - enum thermal_trip_type type; +struct nd_pfn_sb { + u8 signature[16]; + u8 uuid[16]; + u8 parent_uuid[16]; + __le32 flags; + __le16 version_major; + __le16 version_minor; + __le64 dataoff; + __le64 npfns; + __le32 mode; + __le32 start_pad; + __le32 end_trunc; + __le32 align; + __le32 page_size; + __le16 page_struct_size; + u8 padding[3994]; + __le64 checksum; }; -struct thermal_cooling_device; +struct cdrom_device_ops; -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 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 (*exit)(struct cdrom_device_info *); + int mrw_mode_page; + bool opened_for_data; + __s64 last_media_change_ms; }; -struct thermal_cooling_device_ops; +struct cdrom_multisession; -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 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 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 cdrom_msf0 { + __u8 minute; + __u8 second; + __u8 frame; }; -struct thermal_zone_params { - char governor_name[20]; - bool no_hwmon; - u32 sustainable_power; - s32 k_po; - s32 k_pu; - s32 k_i; - s32 k_d; - s32 integral_cutoff; - int slope; - int offset; +union cdrom_addr { + struct cdrom_msf0 msf; + int lba; }; -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 cdrom_multisession { + union cdrom_addr addr; + __u8 xa_flag; + __u8 addr_format; }; -typedef unsigned int mmc_pm_flag_t; +struct cdrom_mcn { + __u8 medium_catalog_number[14]; +}; -struct mmc_ios { - unsigned int clock; - unsigned short vdd; - unsigned int power_delay_ms; - unsigned char bus_mode; - unsigned char chip_select; - unsigned char power_mode; - unsigned char bus_width; - unsigned char timing; - unsigned char signal_voltage; - unsigned char drv_type; - bool enhanced_strobe; +struct scsi_sense_hdr; + +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 mmc_ctx { - struct task_struct *task; +struct scsi_sense_hdr { + u8 response_code; + u8 sense_key; + u8 asc; + u8 ascq; + u8 byte4; + u8 byte5; + u8 byte6; + u8 additional_length; }; -struct mmc_slot { - int cd_irq; - bool cd_wake_enabled; - void *handler_priv; +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 regulator; +struct ata_link; -struct mmc_supply { - struct regulator *vmmc; - struct regulator *vqmmc; -}; +typedef int (*ata_prereset_fn_t)(struct ata_link *, unsigned long); -struct mmc_host_ops; +typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, unsigned long); -struct mmc_pwrseq; +typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); -struct mmc_card; +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, +}; -struct mmc_bus_ops; +enum sw_activity { + OFF = 0, + BLINK_ON = 1, + BLINK_OFF = 2, +}; -struct led_trigger; +struct ata_queued_cmd; -struct mmc_request; +struct ata_port; -struct mmc_cqe_ops; +struct ata_device; -struct mmc_host { - struct device *parent; - struct device class_dev; - int index; - const struct mmc_host_ops *ops; - struct mmc_pwrseq *pwrseq; - unsigned int f_min; - unsigned int f_max; - unsigned int f_init; - u32 ocr_avail; - u32 ocr_avail_sdio; - u32 ocr_avail_sd; - u32 ocr_avail_mmc; - struct wakeup_source *ws; - u32 max_current_330; - u32 max_current_300; - u32 max_current_180; - u32 caps; - u32 caps2; - int fixed_drv_type; - mmc_pm_flag_t pm_caps; - unsigned int max_seg_size; - unsigned short max_segs; - unsigned short unused; - unsigned int max_req_size; - unsigned int max_blk_size; - unsigned int max_blk_count; - unsigned int max_busy_timeout; - spinlock_t lock; - struct mmc_ios ios; - unsigned int use_spi_crc: 1; - unsigned int claimed: 1; - unsigned int doing_init_tune: 1; - unsigned int can_retune: 1; - unsigned int doing_retune: 1; - unsigned int retune_now: 1; - unsigned int retune_paused: 1; - unsigned int retune_crc_disable: 1; - unsigned int can_dma_map_merge: 1; - unsigned int vqmmc_enabled: 1; - int rescan_disable; - int rescan_entered; - int need_retune; - int hold_retune; - unsigned int retune_period; - struct timer_list retune_timer; - bool trigger_card_event; - struct mmc_card *card; - wait_queue_head_t wq; - struct mmc_ctx *claimer; - int claim_cnt; - struct mmc_ctx default_ctx; - struct delayed_work detect; - int detect_change; - struct mmc_slot slot; - const struct mmc_bus_ops *bus_ops; - unsigned int sdio_irqs; - struct task_struct *sdio_irq_thread; - struct work_struct sdio_irq_work; - bool sdio_irq_pending; - atomic_t sdio_irq_thread_abort; - mmc_pm_flag_t pm_flags; - struct led_trigger *led; - bool regulator_enabled; - struct mmc_supply supply; - struct dentry *debugfs_root; - struct mmc_request *ongoing_mrq; - unsigned int actual_clock; - unsigned int slotno; - int dsr_req; - u32 dsr; - const struct mmc_cqe_ops *cqe_ops; - void *cqe_private; - int cqe_qdepth; - bool cqe_enabled; - bool cqe_on; - bool hsq_enabled; - u32 err_stats[15]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - unsigned long private[0]; +struct ata_taskfile; + +struct ata_host; + +struct ata_port_operations { + int (*qc_defer)(struct ata_queued_cmd *); + int (*check_atapi_dma)(struct ata_queued_cmd *); + enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *); + unsigned int (*qc_issue)(struct ata_queued_cmd *); + void (*qc_fill_rtf)(struct ata_queued_cmd *); + void (*qc_ncq_fill_rtf)(struct ata_port *, u64); + int (*cable_detect)(struct ata_port *); + unsigned int (*mode_filter)(struct ata_device *, unsigned int); + void (*set_piomode)(struct ata_port *, struct ata_device *); + void (*set_dmamode)(struct ata_port *, struct ata_device *); + int (*set_mode)(struct ata_link *, struct ata_device **); + unsigned int (*read_id)(struct ata_device *, struct ata_taskfile *, __le16 *); + void (*dev_config)(struct ata_device *); + void (*freeze)(struct ata_port *); + void (*thaw)(struct ata_port *); + ata_prereset_fn_t prereset; + ata_reset_fn_t softreset; + ata_reset_fn_t hardreset; + ata_postreset_fn_t postreset; + ata_prereset_fn_t pmp_prereset; + ata_reset_fn_t pmp_softreset; + ata_reset_fn_t pmp_hardreset; + ata_postreset_fn_t pmp_postreset; + void (*error_handler)(struct ata_port *); + void (*lost_interrupt)(struct ata_port *); + void (*post_internal_cmd)(struct ata_queued_cmd *); + void (*sched_eh)(struct ata_port *); + void (*end_eh)(struct ata_port *); + int (*scr_read)(struct ata_link *, unsigned int, u32 *); + int (*scr_write)(struct ata_link *, unsigned int, u32); + void (*pmp_attach)(struct ata_port *); + void (*pmp_detach)(struct ata_port *); + int (*set_lpm)(struct ata_link *, enum ata_lpm_policy, unsigned int); + int (*port_suspend)(struct ata_port *, pm_message_t); + int (*port_resume)(struct ata_port *); + int (*port_start)(struct ata_port *); + void (*port_stop)(struct ata_port *); + void (*host_stop)(struct ata_host *); + void (*sff_dev_select)(struct ata_port *, unsigned int); + void (*sff_set_devctl)(struct ata_port *, u8); + u8 (*sff_check_status)(struct ata_port *); + u8 (*sff_check_altstatus)(struct ata_port *); + void (*sff_tf_load)(struct ata_port *, const struct ata_taskfile *); + void (*sff_tf_read)(struct ata_port *, struct ata_taskfile *); + void (*sff_exec_command)(struct ata_port *, const struct ata_taskfile *); + unsigned int (*sff_data_xfer)(struct ata_queued_cmd *, unsigned char *, unsigned int, int); + void (*sff_irq_on)(struct ata_port *); + bool (*sff_irq_check)(struct ata_port *); + void (*sff_irq_clear)(struct ata_port *); + void (*sff_drain_fifo)(struct ata_queued_cmd *); + void (*bmdma_setup)(struct ata_queued_cmd *); + void (*bmdma_start)(struct ata_queued_cmd *); + void (*bmdma_stop)(struct ata_queued_cmd *); + u8 (*bmdma_status)(struct ata_port *); + ssize_t (*em_show)(struct ata_port *, char *); + ssize_t (*em_store)(struct ata_port *, const char *, size_t); + ssize_t (*sw_activity_show)(struct ata_device *, char *); + ssize_t (*sw_activity_store)(struct ata_device *, enum sw_activity); + ssize_t (*transmit_led_message)(struct ata_port *, u32, ssize_t); + const struct ata_port_operations *inherits; }; -struct mmc_host_ops { - void (*post_req)(struct mmc_host *, struct mmc_request *, int); - void (*pre_req)(struct mmc_host *, struct mmc_request *); - void (*request)(struct mmc_host *, struct mmc_request *); - int (*request_atomic)(struct mmc_host *, struct mmc_request *); - void (*set_ios)(struct mmc_host *, struct mmc_ios *); - int (*get_ro)(struct mmc_host *); - int (*get_cd)(struct mmc_host *); - void (*enable_sdio_irq)(struct mmc_host *, int); - void (*ack_sdio_irq)(struct mmc_host *); - void (*init_card)(struct mmc_host *, struct mmc_card *); - int (*start_signal_voltage_switch)(struct mmc_host *, struct mmc_ios *); - int (*card_busy)(struct mmc_host *); - int (*execute_tuning)(struct mmc_host *, u32); - int (*prepare_hs400_tuning)(struct mmc_host *, struct mmc_ios *); - int (*execute_hs400_tuning)(struct mmc_host *, struct mmc_card *); - int (*hs400_prepare_ddr)(struct mmc_host *); - void (*hs400_downgrade)(struct mmc_host *); - void (*hs400_complete)(struct mmc_host *); - void (*hs400_enhanced_strobe)(struct mmc_host *, struct mmc_ios *); - int (*select_drive_strength)(struct mmc_card *, unsigned int, int, int, int *); - void (*card_hw_reset)(struct mmc_host *); - void (*card_event)(struct mmc_host *); - int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); - int (*init_sd_express)(struct mmc_host *, struct mmc_ios *); +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; }; -struct mmc_command; +typedef void (*ata_qc_cb_t)(struct ata_queued_cmd *); -struct mmc_data; +struct scsi_cmnd; -struct mmc_request { - struct mmc_command *sbc; - struct mmc_command *cmd; - struct mmc_data *data; - struct mmc_command *stop; - struct completion completion; - struct completion cmd_completion; - void (*done)(struct mmc_request *); - void (*recovery_notifier)(struct mmc_request *); - struct mmc_host *host; - bool cap_cmd_during_tfr; - int tag; +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 mmc_command { - u32 opcode; - u32 arg; - u32 resp[4]; - unsigned int flags; - unsigned int retries; - int error; - unsigned int busy_timeout; - struct mmc_data *data; - struct mmc_request *mrq; +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 mmc_data { - unsigned int timeout_ns; - unsigned int timeout_clks; - unsigned int blksz; - unsigned int blocks; - unsigned int blk_addr; - int error; +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 bytes_xfered; - struct mmc_command *stop; - struct mmc_request *mrq; - unsigned int sg_len; - int sg_count; - struct scatterlist *sg; - s32 host_cookie; + unsigned int probe_mask; + char desc[80]; + int desc_len; }; -struct mmc_cid { - unsigned int manfid; - char prod_name[8]; - unsigned char prv; - unsigned int serial; - unsigned short oemid; - unsigned short year; - unsigned char hwrev; - unsigned char fwrev; - unsigned char month; -}; - -struct mmc_csd { - unsigned char structure; - unsigned char mmca_vsn; - unsigned short cmdclass; - unsigned short taac_clks; - unsigned int taac_ns; - unsigned int c_size; - unsigned int r2w_factor; - unsigned int max_dtr; - unsigned int erase_size; - unsigned int read_blkbits; - unsigned int write_blkbits; - unsigned int capacity; - unsigned int read_partial: 1; - unsigned int read_misalign: 1; - unsigned int write_partial: 1; - unsigned int write_misalign: 1; - unsigned int dsr_imp: 1; +struct ata_eh_context { + struct ata_eh_info i; + int tries[2]; + int cmd_timeout_idx[16]; + unsigned int classes[2]; + unsigned int did_probe_mask; + unsigned int unloaded_mask; + unsigned int saved_ncq_enabled; + u8 saved_xfer_mode[2]; + unsigned long last_reset; }; -struct mmc_ext_csd { - u8 rev; - u8 erase_group_def; - u8 sec_feature_support; - u8 rel_sectors; - u8 rel_param; - bool enhanced_rpmb_supported; - u8 part_config; - u8 cache_ctrl; - u8 rst_n_function; - u8 max_packed_writes; - u8 max_packed_reads; - u8 packed_event_en; - unsigned int part_time; - unsigned int sa_timeout; - unsigned int generic_cmd6_time; - unsigned int power_off_longtime; - u8 power_off_notification; - unsigned int hs_max_dtr; - unsigned int hs200_max_dtr; - unsigned int sectors; - unsigned int hc_erase_size; - unsigned int hc_erase_timeout; - unsigned int sec_trim_mult; - unsigned int sec_erase_mult; - unsigned int trim_timeout; - bool partition_setting_completed; - unsigned long long enhanced_area_offset; - unsigned int enhanced_area_size; - unsigned int cache_size; - bool hpi_en; - bool hpi; - unsigned int hpi_cmd; - bool bkops; - bool man_bkops_en; - bool auto_bkops_en; - unsigned int data_sector_size; - unsigned int data_tag_unit_size; - unsigned int boot_ro_lock; - bool boot_ro_lockable; - bool ffu_capable; - bool cmdq_en; - bool cmdq_support; - unsigned int cmdq_depth; - u8 fwrev[8]; - u8 raw_exception_status; - u8 raw_partition_support; - u8 raw_rpmb_size_mult; - u8 raw_erased_mem_count; - u8 strobe_support; - u8 raw_ext_csd_structure; - u8 raw_card_type; - u8 raw_driver_strength; - u8 out_of_int_time; - u8 raw_pwr_cl_52_195; - u8 raw_pwr_cl_26_195; - u8 raw_pwr_cl_52_360; - u8 raw_pwr_cl_26_360; - u8 raw_s_a_timeout; - u8 raw_hc_erase_gap_size; - u8 raw_erase_timeout_mult; - u8 raw_hc_erase_grp_size; - u8 raw_boot_mult; - u8 raw_sec_trim_mult; - u8 raw_sec_erase_mult; - u8 raw_sec_feature_support; - u8 raw_trim_mult; - u8 raw_pwr_cl_200_195; - u8 raw_pwr_cl_200_360; - u8 raw_pwr_cl_ddr_52_195; - u8 raw_pwr_cl_ddr_52_360; - u8 raw_pwr_cl_ddr_200_360; - u8 raw_bkops_status; - u8 raw_sectors[4]; - u8 pre_eol_info; - u8 device_life_time_est_typ_a; - u8 device_life_time_est_typ_b; - unsigned int feature_support; +struct ata_ering_entry { + unsigned int eflags; + unsigned int err_mask; + u64 timestamp; }; -struct sd_scr { - unsigned char sda_vsn; - unsigned char sda_spec3; - unsigned char sda_spec4; - unsigned char sda_specx; - unsigned char bus_widths; - unsigned char cmds; +struct ata_ering { + int cursor; + struct ata_ering_entry ring[32]; }; -struct sd_ssr { - unsigned int au; - unsigned int erase_timeout; - unsigned int erase_offset; -}; +struct scsi_device; -struct sd_switch_caps { - unsigned int hs_max_dtr; - unsigned int uhs_max_dtr; - unsigned int sd3_bus_mode; - unsigned int sd3_drv_type; - unsigned int sd3_curr_limit; +struct ata_cpr_log; + +struct ata_device { + struct ata_link *link; + unsigned int devno; + unsigned int horkage; + unsigned long flags; + struct scsi_device *sdev; + void *private_data; + union acpi_object *gtf_cache; + unsigned int gtf_filter; + struct device tdev; + u64 n_sectors; + u64 n_native_sectors; + unsigned int class; + unsigned long unpark_deadline; + u8 pio_mode; + u8 dma_mode; + u8 xfer_mode; + unsigned int xfer_shift; + unsigned int multi_count; + unsigned int max_sectors; + unsigned int cdb_len; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + u16 cylinders; + u16 heads; + u16 sectors; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + union { + u16 id[256]; + u32 gscr[128]; + }; + u8 devslp_timing[8]; + u8 ncq_send_recv_cmds[20]; + u8 ncq_non_data_cmds[64]; + u32 zac_zoned_cap; + u32 zac_zones_optimal_open; + u32 zac_zones_optimal_nonseq; + u32 zac_zones_max_open; + struct ata_cpr_log *cpr_log; + u8 cdl[512]; + int spdn_cnt; + struct ata_ering ering; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct sd_ext_reg { - u8 fno; - u8 page; - u16 offset; - u8 rev; - u8 feature_enabled; - u8 feature_support; +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; + 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 sdio_cccr { - unsigned int sdio_vsn; - unsigned int sd_vsn; - unsigned int multi_block: 1; - unsigned int low_speed: 1; - unsigned int wide_bus: 1; - unsigned int high_power: 1; - unsigned int high_speed: 1; - unsigned int disable_cd: 1; - unsigned int enable_async_irq: 1; +struct ata_port_stats { + unsigned long unhandled_irq; + unsigned long idle_irq; + unsigned long rw_reqbuf; }; -struct sdio_cis { - unsigned short vendor; - unsigned short device; - unsigned short blksize; - unsigned int max_dtr; +typedef u64 async_cookie_t; + +struct ata_acpi_drive { + u32 pio; + u32 dma; }; -struct mmc_part { - u64 size; - unsigned int part_cfg; - char name[20]; - bool force_ro; - unsigned int area_type; +struct ata_acpi_gtm { + struct ata_acpi_drive drive[2]; + u32 flags; }; -struct sdio_func; +struct Scsi_Host; -struct sdio_func_tuple; +struct ata_bmdma_prd; -struct mmc_card { - struct mmc_host *host; - struct device dev; - u32 ocr; - unsigned int rca; - unsigned int type; - unsigned int state; - unsigned int quirks; - unsigned int quirk_max_rate; - bool reenable_cmdq; - unsigned int erase_size; - unsigned int erase_shift; - unsigned int pref_erase; - unsigned int eg_boundary; - unsigned int erase_arg; - u8 erased_byte; - u32 raw_cid[4]; - u32 raw_csd[4]; - u32 raw_scr[2]; - u32 raw_ssr[16]; - struct mmc_cid cid; - struct mmc_csd csd; - struct mmc_ext_csd ext_csd; - struct sd_scr scr; - struct sd_ssr ssr; - struct sd_switch_caps sw_caps; - struct sd_ext_reg ext_power; - struct sd_ext_reg ext_perf; - unsigned int sdio_funcs; - atomic_t sdio_funcs_probed; - struct sdio_cccr cccr; - struct sdio_cis cis; - struct sdio_func *sdio_func[7]; - struct sdio_func *sdio_single_irq; - u8 major_rev; - u8 minor_rev; - unsigned int num_info; - const char **info; - struct sdio_func_tuple *tuples; - unsigned int sd_bus_speed; - unsigned int mmc_avail_type; - unsigned int drive_strength; - struct dentry *debugfs_root; - struct mmc_part part[7]; - unsigned int nr_parts; - struct workqueue_struct *complete_wq; +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: 64; + 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 delayed_work scsi_rescan_task; + unsigned int hsm_task_state; + struct list_head eh_done_q; + wait_queue_head_t eh_wait_q; + int eh_tries; + struct completion park_req_pending; + pm_message_t pm_mesg; + enum ata_lpm_policy target_lpm_policy; + struct timer_list fastdrain_timer; + unsigned int fastdrain_cnt; + async_cookie_t cookie; + int em_message_type; + void *private_data; + struct ata_acpi_gtm __acpi_init_gtm; + u8 *ncq_sense_buf; + long: 64; + long: 64; + long: 64; + u8 sector_buf[512]; }; -typedef void sdio_irq_handler_t(struct sdio_func *); - -struct sdio_func { - struct mmc_card *card; - struct device dev; - sdio_irq_handler_t *irq_handler; - unsigned int num; - unsigned char class; - unsigned short vendor; - unsigned short device; - unsigned int max_blksize; - unsigned int cur_blksize; - unsigned int enable_timeout; - unsigned int state; - u8 *tmpbuf; - u8 major_rev; - u8 minor_rev; - unsigned int num_info; - const char **info; - struct sdio_func_tuple *tuples; +enum scsi_host_state { + SHOST_CREATED = 1, + SHOST_RUNNING = 2, + SHOST_CANCEL = 3, + SHOST_DEL = 4, + SHOST_RECOVERY = 5, + SHOST_CANCEL_RECOVERY = 6, + SHOST_DEL_RECOVERY = 7, }; -struct sdio_func_tuple { - struct sdio_func_tuple *next; - unsigned char code; - unsigned char size; - unsigned char data[0]; -}; +struct scsi_host_template; -struct mmc_bus_ops { - void (*remove)(struct mmc_host *); - void (*detect)(struct mmc_host *); - int (*pre_suspend)(struct mmc_host *); - int (*suspend)(struct mmc_host *); - int (*resume)(struct mmc_host *); - int (*runtime_suspend)(struct mmc_host *); - int (*runtime_resume)(struct mmc_host *); - int (*alive)(struct mmc_host *); - int (*shutdown)(struct mmc_host *); - int (*hw_reset)(struct mmc_host *); - int (*sw_reset)(struct mmc_host *); - bool (*cache_enabled)(struct mmc_host *); - int (*flush_cache)(struct mmc_host *); -}; +struct scsi_transport_template; -struct mmc_cqe_ops { - int (*cqe_enable)(struct mmc_host *, struct mmc_card *); - void (*cqe_disable)(struct mmc_host *); - int (*cqe_request)(struct mmc_host *, struct mmc_request *); - void (*cqe_post_req)(struct mmc_host *, struct mmc_request *); - void (*cqe_off)(struct mmc_host *); - int (*cqe_wait_for_idle)(struct mmc_host *); - bool (*cqe_timeout)(struct mmc_host *, struct mmc_request *, bool *); - void (*cqe_recovery_start)(struct mmc_host *); - void (*cqe_recovery_finish)(struct mmc_host *); +struct Scsi_Host { + struct list_head __devices; + struct list_head __targets; + struct list_head starved_list; + spinlock_t default_lock; + spinlock_t *host_lock; + struct mutex scan_mutex; + struct list_head eh_abort_list; + struct list_head eh_cmd_q; + struct task_struct *ehandler; + struct completion *eh_action; + wait_queue_head_t host_wait; + const struct scsi_host_template *hostt; + struct scsi_transport_template *transportt; + struct kref tagset_refcnt; + struct completion tagset_freed; + struct blk_mq_tag_set tag_set; + atomic_t host_blocked; + unsigned int host_failed; + unsigned int host_eh_scheduled; + unsigned int host_no; + int eh_deadline; + unsigned long last_reset; + unsigned int max_channel; + unsigned int max_id; + u64 max_lun; + unsigned int unique_id; + unsigned short max_cmd_len; + int this_id; + int can_queue; + short cmd_per_lun; + unsigned short sg_tablesize; + unsigned short sg_prot_tablesize; + unsigned int max_sectors; + unsigned int opt_sectors; + unsigned int max_segment_size; + unsigned long dma_boundary; + unsigned long virt_boundary_mask; + unsigned int nr_hw_queues; + unsigned int nr_maps; + unsigned int active_mode: 2; + unsigned int host_self_blocked: 1; + unsigned int reverse_ordering: 1; + unsigned int tmf_in_progress: 1; + unsigned int async_scan: 1; + unsigned int eh_noresume: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int queuecommand_may_block: 1; + unsigned int short_inquiry: 1; + unsigned int no_scsi2_lun_in_cdb: 1; + char work_q_name[20]; + struct workqueue_struct *work_q; + struct workqueue_struct *tmf_work_q; + unsigned int max_host_blocked; + unsigned int prot_capabilities; + unsigned char prot_guard_type; + unsigned long base; + unsigned long io_port; + unsigned char n_io_port; + unsigned char dma_channel; + unsigned int irq; + enum scsi_host_state shost_state; + struct device shost_gendev; + struct device shost_dev; + void *shost_data; + struct device *dma_dev; + unsigned long hostdata[0]; }; -struct hid_device_id { - __u16 bus; - __u16 group; - __u32 vendor; - __u32 product; - kernel_ulong_t driver_data; +enum scsi_timeout_action { + SCSI_EH_DONE = 0, + SCSI_EH_RESET_TIMER = 1, + SCSI_EH_NOT_HANDLED = 2, }; -enum hid_type { - HID_TYPE_OTHER = 0, - HID_TYPE_USBMOUSE = 1, - HID_TYPE_USBNONE = 2, -}; +struct scsi_target; -enum hid_report_type { - HID_INPUT_REPORT = 0, - HID_OUTPUT_REPORT = 1, - HID_FEATURE_REPORT = 2, - HID_REPORT_TYPES = 3, -}; - -struct quirks_list_struct { - struct hid_device_id hid_bl_item; - struct list_head node; +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 queuecommand_may_block: 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 hid_report; +enum scsi_cmnd_submitter { + SUBMITTED_BY_BLOCK_LAYER = 0, + SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, + SUBMITTED_BY_SCSI_RESET_IOCTL = 2, +} __attribute__((mode(byte))); -struct hid_report_enum { - unsigned int numbered; - struct list_head report_list; - struct hid_report *report_id_hash[256]; +enum dma_data_direction { + DMA_BIDIRECTIONAL = 0, + DMA_TO_DEVICE = 1, + DMA_FROM_DEVICE = 2, + DMA_NONE = 3, }; -struct semaphore { - raw_spinlock_t lock; - unsigned int count; - struct list_head wait_list; +struct sg_table { + struct scatterlist *sgl; + unsigned int nents; + unsigned int orig_nents; }; -struct hid_bpf_prog_list; +struct scsi_data_buffer { + struct sg_table table; + unsigned int length; +}; -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 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; }; -struct hid_collection; +typedef __u64 blist_flags_t; -struct hid_driver; +enum scsi_device_state { + SDEV_CREATED = 1, + SDEV_RUNNING = 2, + SDEV_CANCEL = 3, + SDEV_DEL = 4, + SDEV_QUIESCE = 5, + SDEV_OFFLINE = 6, + SDEV_TRANSPORT_OFFLINE = 7, + SDEV_BLOCK = 8, + SDEV_CREATED_BLOCK = 9, +}; -struct hid_ll_driver; +struct scsi_vpd; -struct hid_field; +struct scsi_device_handler; -struct hid_usage; +struct bsg_device; -struct hid_device { - __u8 *dev_rdesc; - unsigned int dev_rsize; - __u8 *rdesc; - unsigned int rsize; - struct hid_collection *collection; - unsigned int collection_size; - unsigned int maxcollection; - unsigned int maxapplication; - __u16 bus; - __u16 group; - __u32 vendor; - __u32 product; - __u32 version; - enum hid_type type; - unsigned int country; - struct hid_report_enum report_enum[3]; - struct work_struct led_work; - struct semaphore driver_input_lock; - struct device dev; - struct hid_driver *driver; - void *devres_group_id; - const struct hid_ll_driver *ll_driver; - struct mutex ll_open_lock; - unsigned int ll_open_count; - unsigned long status; - unsigned int claimed; - unsigned int quirks; - unsigned int initial_quirks; - bool io_started; - struct list_head inputs; - void *hiddev; - void *hidraw; - char name[128]; - char phys[64]; - char uniq[64]; - void *driver_data; - int (*ff_init)(struct hid_device *); - int (*hiddev_connect)(struct hid_device *, unsigned int); - void (*hiddev_disconnect)(struct hid_device *); - void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); - void (*hiddev_report_event)(struct hid_device *, struct hid_report *); - unsigned short debug; - struct dentry *debug_dir; - struct dentry *debug_rdesc; - struct dentry *debug_events; - struct list_head debug_list; - spinlock_t debug_list_lock; - wait_queue_head_t debug_wait; +struct 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; - struct hid_bpf bpf; + 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 manage_system_start_stop: 1; + unsigned int manage_runtime_start_stop: 1; + unsigned int manage_shutdown: 1; + unsigned int force_runtime_start_on_system_start: 1; + unsigned int removable: 1; + unsigned int changed: 1; + unsigned int busy: 1; + unsigned int lockable: 1; + unsigned int locked: 1; + unsigned int borken: 1; + unsigned int disconnect: 1; + unsigned int soft_reset: 1; + unsigned int sdtr: 1; + unsigned int wdtr: 1; + unsigned int ppr: 1; + unsigned int tagged_supported: 1; + unsigned int simple_tags: 1; + unsigned int was_reset: 1; + unsigned int expecting_cc_ua: 1; + unsigned int use_10_for_rw: 1; + unsigned int use_10_for_ms: 1; + unsigned int set_dbd_for_ms: 1; + unsigned int no_report_opcodes: 1; + unsigned int no_write_same: 1; + unsigned int use_16_for_rw: 1; + unsigned int use_16_for_sync: 1; + unsigned int skip_ms_page_8: 1; + unsigned int skip_ms_page_3f: 1; + unsigned int skip_vpd_pages: 1; + unsigned int try_vpd_pages: 1; + unsigned int use_192_bytes_for_3f: 1; + unsigned int no_start_on_add: 1; + unsigned int allow_restart: 1; + unsigned int start_stop_pwr_cond: 1; + unsigned int no_uld_attach: 1; + unsigned int select_no_atn: 1; + unsigned int fix_capacity: 1; + unsigned int guess_capacity: 1; + unsigned int retry_hwerror: 1; + unsigned int last_sector_bug: 1; + unsigned int no_read_disc_info: 1; + unsigned int no_read_capacity_16: 1; + unsigned int try_rc_10_first: 1; + unsigned int security_supported: 1; + unsigned int is_visible: 1; + unsigned int wce_default_on: 1; + unsigned int no_dif: 1; + unsigned int broken_fua: 1; + unsigned int lun_in_cdb: 1; + unsigned int unmap_limit_for_ws: 1; + unsigned int rpm_autosuspend: 1; + unsigned int ignore_media_change: 1; + unsigned int silence_suspend: 1; + unsigned int no_vpd_size: 1; + unsigned int cdl_supported: 1; + unsigned int cdl_enable: 1; + unsigned int queue_stopped; + bool offline_already; + atomic_t disk_events_disable_depth; + unsigned long supported_events[1]; + unsigned long pending_events[1]; + struct list_head event_list; + struct work_struct event_work; + unsigned int max_device_blocked; + atomic_t iorequest_cnt; + atomic_t iodone_cnt; + atomic_t ioerr_cnt; + atomic_t iotmo_cnt; + struct device sdev_gendev; + struct device sdev_dev; + struct work_struct requeue_work; + struct scsi_device_handler *handler; + void *handler_data; + size_t dma_drain_len; + void *dma_drain_buf; + unsigned int sg_timeout; + unsigned int sg_reserved_size; + struct bsg_device *bsg_dev; + unsigned char access_state; + struct mutex state_mutex; + enum scsi_device_state sdev_state; + struct task_struct *quiesced_by; + unsigned long sdev_data[0]; }; -struct hid_collection { - int parent_idx; - unsigned int type; - unsigned int usage; - unsigned int level; +struct scsi_vpd { + struct callback_head rcu; + int len; + unsigned char data[0]; }; -struct hid_field_entry; +enum scsi_target_state { + STARGET_CREATED = 1, + STARGET_RUNNING = 2, + STARGET_REMOVE = 3, + STARGET_CREATED_REMOVE = 4, + STARGET_DEL = 5, +}; -struct hid_report { - struct list_head list; - struct list_head hidinput_list; - struct list_head field_entry_list; +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; - 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; + 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 hid_input; - -struct hid_field { - unsigned int physical; - unsigned int logical; - unsigned int application; - struct hid_usage *usage; - unsigned int maxusage; - unsigned int flags; - unsigned int report_offset; - unsigned int report_size; - unsigned int report_count; - unsigned int report_type; - __s32 *value; - __s32 *new_value; - __s32 *usages_priorities; - __s32 logical_minimum; - __s32 logical_maximum; - __s32 physical_minimum; - __s32 physical_maximum; - __s32 unit_exponent; - unsigned int unit; - bool ignored; - struct hid_report *report; - unsigned int index; - struct hid_input *hidinput; - __u16 dpad; - unsigned int slot_idx; +struct ata_cpr { + u8 num; + u8 num_storage_elements; + u64 start_lba; + u64 num_lbas; }; -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 ata_cpr_log { + u8 nr_cpr; + struct ata_cpr cpr[0]; }; -struct input_dev; - -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 ata_bmdma_prd { + __le32 addr; + __le32 flags_len; }; -struct input_id { - __u16 bustype; - __u16 vendor; - __u16 product; - __u16 version; +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]; }; -struct input_keymap_entry; - -struct ff_device; - -struct input_dev_poller; - -struct input_mt; - -struct input_absinfo; - -struct input_handle; +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 input_value; +enum phy_media { + PHY_MEDIA_DEFAULT = 0, + PHY_MEDIA_SR = 1, + PHY_MEDIA_DAC = 2, +}; -struct input_dev { - const char *name; - const char *phys; - const char *uniq; - struct input_id id; - unsigned long propbit[1]; - unsigned long evbit[1]; - unsigned long keybit[12]; - unsigned long relbit[1]; - unsigned long absbit[1]; - unsigned long mscbit[1]; - unsigned long ledbit[1]; - unsigned long sndbit[1]; - unsigned long ffbit[2]; - unsigned long swbit[1]; - unsigned int hint_events_per_packet; - unsigned int keycodemax; - unsigned int keycodesize; - void *keycode; - int (*setkeycode)(struct input_dev *, const struct input_keymap_entry *, unsigned int *); - int (*getkeycode)(struct input_dev *, struct input_keymap_entry *); - struct ff_device *ff; - struct input_dev_poller *poller; - unsigned int repeat_key; - struct timer_list timer; - int rep[2]; - struct input_mt *mt; - struct input_absinfo *absinfo; - unsigned long key[12]; - unsigned long led[1]; - unsigned long snd[1]; - unsigned long sw[1]; - int (*open)(struct input_dev *); - void (*close)(struct input_dev *); - int (*flush)(struct input_dev *, struct file *); - int (*event)(struct input_dev *, unsigned int, unsigned int, int); - struct input_handle __attribute__((btf_type_tag("rcu"))) *grab; - spinlock_t event_lock; - struct mutex mutex; - unsigned int users; - bool going_away; - struct device dev; - struct list_head h_list; - struct list_head node; - unsigned int num_vals; - unsigned int max_vals; - struct input_value *vals; - bool devres_managed; - ktime_t timestamp[3]; - bool inhibited; -}; - -struct input_keymap_entry { - __u8 flags; - __u8 len; - __u16 index; - __u32 keycode; - __u8 scancode[32]; -}; - -struct ff_effect; - -struct ff_device { - int (*upload)(struct input_dev *, struct ff_effect *, struct ff_effect *); - int (*erase)(struct input_dev *, int); - int (*playback)(struct input_dev *, int, int); - void (*set_gain)(struct input_dev *, u16); - void (*set_autocenter)(struct input_dev *, u16); - void (*destroy)(struct ff_device *); - void *private; - unsigned long ffbit[2]; - struct mutex mutex; - int max_effects; - struct ff_effect *effects; - struct file *effect_owners[0]; -}; - -struct ff_envelope { - __u16 attack_length; - __u16 attack_level; - __u16 fade_length; - __u16 fade_level; -}; - -struct ff_constant_effect { - __s16 level; - struct ff_envelope envelope; -}; - -struct ff_ramp_effect { - __s16 start_level; - __s16 end_level; - struct ff_envelope envelope; -}; - -struct ff_periodic_effect { - __u16 waveform; - __u16 period; - __s16 magnitude; - __s16 offset; - __u16 phase; - struct ff_envelope envelope; - __u32 custom_len; - __s16 __attribute__((btf_type_tag("user"))) *custom_data; -}; - -struct ff_condition_effect { - __u16 right_saturation; - __u16 left_saturation; - __s16 right_coeff; - __s16 left_coeff; - __u16 deadband; - __s16 center; -}; - -struct ff_rumble_effect { - __u16 strong_magnitude; - __u16 weak_magnitude; -}; - -struct ff_trigger { - __u16 button; - __u16 interval; -}; - -struct ff_replay { - __u16 length; - __u16 delay; -}; - -struct ff_effect { - __u16 type; - __s16 id; - __u16 direction; - struct ff_trigger trigger; - struct ff_replay replay; - union { - struct ff_constant_effect constant; - struct ff_ramp_effect ramp; - struct ff_periodic_effect periodic; - struct ff_condition_effect condition[2]; - struct ff_rumble_effect rumble; - } u; -}; - -struct input_absinfo { - __s32 value; - __s32 minimum; - __s32 maximum; - __s32 fuzz; - __s32 flat; - __s32 resolution; -}; - -struct input_handler; - -struct input_handle { - void *private; - int open; - const char *name; - struct input_dev *dev; - struct input_handler *handler; - struct list_head d_node; - struct list_head h_node; -}; - -struct input_device_id; - -struct input_handler { - void *private; - void (*event)(struct input_handle *, unsigned int, unsigned int, int); - void (*events)(struct input_handle *, const struct input_value *, unsigned int); - bool (*filter)(struct input_handle *, unsigned int, unsigned int, int); - bool (*match)(struct input_handler *, struct input_dev *); - int (*connect)(struct input_handler *, struct input_dev *, const struct input_device_id *); - void (*disconnect)(struct input_handle *); - void (*start)(struct input_handle *); - bool legacy_minors; - int minor; - const char *name; - const struct input_device_id *id_table; - struct list_head h_list; - struct list_head node; -}; - -struct input_value { - __u16 type; - __u16 code; - __s32 value; -}; - -struct input_device_id { - kernel_ulong_t flags; - __u16 bustype; - __u16 vendor; - __u16 product; - __u16 version; - kernel_ulong_t evbit[1]; - kernel_ulong_t keybit[12]; - kernel_ulong_t relbit[1]; - kernel_ulong_t absbit[1]; - kernel_ulong_t mscbit[1]; - kernel_ulong_t ledbit[1]; - kernel_ulong_t sndbit[1]; - kernel_ulong_t ffbit[2]; - kernel_ulong_t swbit[1]; - kernel_ulong_t propbit[1]; - kernel_ulong_t driver_info; -}; - -struct hid_field_entry { - struct list_head list; - struct hid_field *field; - unsigned int index; - __s32 priority; -}; - -struct hid_report_id; - -struct hid_usage_id; - -struct hid_driver { - char *name; - const struct hid_device_id *id_table; - struct list_head dyn_list; - spinlock_t dyn_lock; - bool (*match)(struct hid_device *, bool); - int (*probe)(struct hid_device *, const struct hid_device_id *); - void (*remove)(struct hid_device *); - const struct hid_report_id *report_table; - int (*raw_event)(struct hid_device *, struct hid_report *, u8 *, int); - const struct hid_usage_id *usage_table; - int (*event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); - void (*report)(struct hid_device *, struct hid_report *); - __u8 * (*report_fixup)(struct hid_device *, __u8 *, unsigned int *); - int (*input_mapping)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *); - int (*input_mapped)(struct hid_device *, struct hid_input *, struct hid_field *, struct hid_usage *, unsigned long **, int *); - int (*input_configured)(struct hid_device *, struct hid_input *); - void (*feature_mapping)(struct hid_device *, struct hid_field *, struct hid_usage *); - int (*suspend)(struct hid_device *, pm_message_t); - int (*resume)(struct hid_device *); - int (*reset_resume)(struct hid_device *); - struct device_driver driver; -}; - -struct hid_report_id { - __u32 report_type; -}; - -struct hid_usage_id { - __u32 usage_hid; - __u32 usage_type; - __u32 usage_code; -}; - -struct hid_ll_driver { - int (*start)(struct hid_device *); - void (*stop)(struct hid_device *); - int (*open)(struct hid_device *); - void (*close)(struct hid_device *); - int (*power)(struct hid_device *, int); - int (*parse)(struct hid_device *); - void (*request)(struct hid_device *, struct hid_report *, int); - int (*wait)(struct hid_device *); - int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int); - int (*output_report)(struct hid_device *, __u8 *, size_t); - int (*idle)(struct hid_device *, int, int, int); - bool (*may_wakeup)(struct hid_device *); - unsigned int max_buffer_size; -}; - -struct hid_bpf_prog_list { - u16 prog_idx[64]; - u8 prog_cnt; -}; - -struct netdev_name_node { - struct hlist_node hlist; - struct list_head list; - struct net_device *dev; - const char *name; -}; - -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 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; +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, }; -struct rt6key { - struct in6_addr addr; - int plen; +enum ata_lpm_hints { + ATA_LPM_EMPTY = 1, + ATA_LPM_HIPM = 2, + ATA_LPM_WAKE_ONLY = 4, }; -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_node __attribute__((btf_type_tag("rcu"))) *subtree; - struct fib6_info __attribute__((btf_type_tag("rcu"))) *leaf; - __u16 fn_bit; - __u16 fn_flags; - int fn_sernum; - struct fib6_info __attribute__((btf_type_tag("rcu"))) *rr_ptr; - struct callback_head rcu; -}; - -struct fib6_table { - struct hlist_node tb6_hlist; - u32 tb6_id; - spinlock_t tb6_lock; - struct fib6_node tb6_root; - struct inet_peer_base tb6_peers; - unsigned int flags; - unsigned int fib_seq; -}; - -struct dst_metrics { - u32 metrics[17]; - refcount_t refcnt; -}; - -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; +enum { + ATA_MAX_DEVICES = 2, + ATA_MAX_PRD = 256, + ATA_SECT_SIZE = 512, + ATA_MAX_SECTORS_128 = 128, + ATA_MAX_SECTORS = 256, + ATA_MAX_SECTORS_1024 = 1024, + ATA_MAX_SECTORS_LBA48 = 65535, + ATA_MAX_SECTORS_TAPE = 65535, + ATA_MAX_TRIM_RNUM = 64, + ATA_ID_WORDS = 256, + ATA_ID_CONFIG = 0, + ATA_ID_CYLS = 1, + ATA_ID_HEADS = 3, + ATA_ID_SECTORS = 6, + ATA_ID_SERNO = 10, + ATA_ID_BUF_SIZE = 21, + ATA_ID_FW_REV = 23, + ATA_ID_PROD = 27, + ATA_ID_MAX_MULTSECT = 47, + ATA_ID_DWORD_IO = 48, + ATA_ID_TRUSTED = 48, + ATA_ID_CAPABILITY = 49, + ATA_ID_OLD_PIO_MODES = 51, + ATA_ID_OLD_DMA_MODES = 52, + ATA_ID_FIELD_VALID = 53, + ATA_ID_CUR_CYLS = 54, + ATA_ID_CUR_HEADS = 55, + ATA_ID_CUR_SECTORS = 56, + ATA_ID_MULTSECT = 59, + ATA_ID_LBA_CAPACITY = 60, + ATA_ID_SWDMA_MODES = 62, + ATA_ID_MWDMA_MODES = 63, + ATA_ID_PIO_MODES = 64, + ATA_ID_EIDE_DMA_MIN = 65, + ATA_ID_EIDE_DMA_TIME = 66, + ATA_ID_EIDE_PIO = 67, + ATA_ID_EIDE_PIO_IORDY = 68, + ATA_ID_ADDITIONAL_SUPP = 69, + ATA_ID_QUEUE_DEPTH = 75, + ATA_ID_SATA_CAPABILITY = 76, + ATA_ID_SATA_CAPABILITY_2 = 77, + ATA_ID_FEATURE_SUPP = 78, + ATA_ID_MAJOR_VER = 80, + ATA_ID_COMMAND_SET_1 = 82, + ATA_ID_COMMAND_SET_2 = 83, + ATA_ID_CFSSE = 84, + ATA_ID_CFS_ENABLE_1 = 85, + ATA_ID_CFS_ENABLE_2 = 86, + ATA_ID_CSF_DEFAULT = 87, + ATA_ID_UDMA_MODES = 88, + ATA_ID_HW_CONFIG = 93, + ATA_ID_SPG = 98, + ATA_ID_LBA_CAPACITY_2 = 100, + ATA_ID_SECTOR_SIZE = 106, + ATA_ID_WWN = 108, + ATA_ID_LOGICAL_SECTOR_SIZE = 117, + ATA_ID_COMMAND_SET_3 = 119, + ATA_ID_COMMAND_SET_4 = 120, + ATA_ID_LAST_LUN = 126, + ATA_ID_DLF = 128, + ATA_ID_CSFO = 129, + ATA_ID_CFA_POWER = 160, + ATA_ID_CFA_KEY_MGMT = 162, + ATA_ID_CFA_MODES = 163, + ATA_ID_DATA_SET_MGMT = 169, + ATA_ID_SCT_CMD_XPORT = 206, + ATA_ID_ROT_SPEED = 217, + ATA_ID_PIO4 = 2, + ATA_ID_SERNO_LEN = 20, + ATA_ID_FW_REV_LEN = 8, + ATA_ID_PROD_LEN = 40, + ATA_ID_WWN_LEN = 8, + ATA_PCI_CTL_OFS = 2, + ATA_PIO0 = 1, + ATA_PIO1 = 3, + ATA_PIO2 = 7, + ATA_PIO3 = 15, + ATA_PIO4 = 31, + ATA_PIO5 = 63, + ATA_PIO6 = 127, + ATA_PIO4_ONLY = 16, + ATA_SWDMA0 = 1, + ATA_SWDMA1 = 3, + ATA_SWDMA2 = 7, + ATA_SWDMA2_ONLY = 4, + ATA_MWDMA0 = 1, + ATA_MWDMA1 = 3, + ATA_MWDMA2 = 7, + ATA_MWDMA3 = 15, + ATA_MWDMA4 = 31, + ATA_MWDMA12_ONLY = 6, + ATA_MWDMA2_ONLY = 4, + ATA_UDMA0 = 1, + ATA_UDMA1 = 3, + ATA_UDMA2 = 7, + ATA_UDMA3 = 15, + ATA_UDMA4 = 31, + ATA_UDMA5 = 63, + ATA_UDMA6 = 127, + ATA_UDMA7 = 255, + ATA_UDMA24_ONLY = 20, + ATA_UDMA_MASK_40C = 7, + ATA_PRD_SZ = 8, + ATA_PRD_TBL_SZ = 2048, + ATA_PRD_EOT = -2147483648, + ATA_DMA_TABLE_OFS = 4, + ATA_DMA_STATUS = 2, + ATA_DMA_CMD = 0, + ATA_DMA_WR = 8, + ATA_DMA_START = 1, + ATA_DMA_INTR = 4, + ATA_DMA_ERR = 2, + ATA_DMA_ACTIVE = 1, + ATA_HOB = 128, + ATA_NIEN = 2, + ATA_LBA = 64, + ATA_DEV1 = 16, + ATA_DEVICE_OBS = 160, + ATA_DEVCTL_OBS = 8, + ATA_BUSY = 128, + ATA_DRDY = 64, + ATA_DF = 32, + ATA_DSC = 16, + ATA_DRQ = 8, + ATA_CORR = 4, + ATA_SENSE = 2, + ATA_ERR = 1, + ATA_SRST = 4, + ATA_ICRC = 128, + ATA_BBK = 128, + ATA_UNC = 64, + ATA_MC = 32, + ATA_IDNF = 16, + ATA_MCR = 8, + ATA_ABORTED = 4, + ATA_TRK0NF = 2, + ATA_AMNF = 1, + ATAPI_LFS = 240, + ATAPI_EOM = 2, + ATAPI_ILI = 1, + ATAPI_IO = 2, + ATAPI_COD = 1, + ATA_REG_DATA = 0, + ATA_REG_ERR = 1, + ATA_REG_NSECT = 2, + ATA_REG_LBAL = 3, + ATA_REG_LBAM = 4, + ATA_REG_LBAH = 5, + ATA_REG_DEVICE = 6, + ATA_REG_STATUS = 7, + ATA_REG_FEATURE = 1, + ATA_REG_CMD = 7, + ATA_REG_BYTEL = 4, + ATA_REG_BYTEH = 5, + ATA_REG_DEVSEL = 6, + ATA_REG_IRQ = 2, + ATA_CMD_DEV_RESET = 8, + ATA_CMD_CHK_POWER = 229, + ATA_CMD_STANDBY = 226, + ATA_CMD_IDLE = 227, + ATA_CMD_EDD = 144, + ATA_CMD_DOWNLOAD_MICRO = 146, + ATA_CMD_DOWNLOAD_MICRO_DMA = 147, + ATA_CMD_NOP = 0, + ATA_CMD_FLUSH = 231, + ATA_CMD_FLUSH_EXT = 234, + ATA_CMD_ID_ATA = 236, + ATA_CMD_ID_ATAPI = 161, + ATA_CMD_SERVICE = 162, + ATA_CMD_READ = 200, + ATA_CMD_READ_EXT = 37, + ATA_CMD_READ_QUEUED = 38, + ATA_CMD_READ_STREAM_EXT = 43, + ATA_CMD_READ_STREAM_DMA_EXT = 42, + ATA_CMD_WRITE = 202, + ATA_CMD_WRITE_EXT = 53, + ATA_CMD_WRITE_QUEUED = 54, + ATA_CMD_WRITE_STREAM_EXT = 59, + ATA_CMD_WRITE_STREAM_DMA_EXT = 58, + ATA_CMD_WRITE_FUA_EXT = 61, + ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, + ATA_CMD_FPDMA_READ = 96, + ATA_CMD_FPDMA_WRITE = 97, + ATA_CMD_NCQ_NON_DATA = 99, + ATA_CMD_FPDMA_SEND = 100, + ATA_CMD_FPDMA_RECV = 101, + ATA_CMD_PIO_READ = 32, + ATA_CMD_PIO_READ_EXT = 36, + ATA_CMD_PIO_WRITE = 48, + ATA_CMD_PIO_WRITE_EXT = 52, + ATA_CMD_READ_MULTI = 196, + ATA_CMD_READ_MULTI_EXT = 41, + ATA_CMD_WRITE_MULTI = 197, + ATA_CMD_WRITE_MULTI_EXT = 57, + ATA_CMD_WRITE_MULTI_FUA_EXT = 206, + ATA_CMD_SET_FEATURES = 239, + ATA_CMD_SET_MULTI = 198, + ATA_CMD_PACKET = 160, + ATA_CMD_VERIFY = 64, + ATA_CMD_VERIFY_EXT = 66, + ATA_CMD_WRITE_UNCORR_EXT = 69, + ATA_CMD_STANDBYNOW1 = 224, + ATA_CMD_IDLEIMMEDIATE = 225, + ATA_CMD_SLEEP = 230, + ATA_CMD_INIT_DEV_PARAMS = 145, + ATA_CMD_READ_NATIVE_MAX = 248, + ATA_CMD_READ_NATIVE_MAX_EXT = 39, + ATA_CMD_SET_MAX = 249, + ATA_CMD_SET_MAX_EXT = 55, + ATA_CMD_READ_LOG_EXT = 47, + ATA_CMD_WRITE_LOG_EXT = 63, + ATA_CMD_READ_LOG_DMA_EXT = 71, + ATA_CMD_WRITE_LOG_DMA_EXT = 87, + ATA_CMD_TRUSTED_NONDATA = 91, + ATA_CMD_TRUSTED_RCV = 92, + ATA_CMD_TRUSTED_RCV_DMA = 93, + ATA_CMD_TRUSTED_SND = 94, + ATA_CMD_TRUSTED_SND_DMA = 95, + ATA_CMD_PMP_READ = 228, + ATA_CMD_PMP_READ_DMA = 233, + ATA_CMD_PMP_WRITE = 232, + ATA_CMD_PMP_WRITE_DMA = 235, + ATA_CMD_CONF_OVERLAY = 177, + ATA_CMD_SEC_SET_PASS = 241, + ATA_CMD_SEC_UNLOCK = 242, + ATA_CMD_SEC_ERASE_PREP = 243, + ATA_CMD_SEC_ERASE_UNIT = 244, + ATA_CMD_SEC_FREEZE_LOCK = 245, + ATA_CMD_SEC_DISABLE_PASS = 246, + ATA_CMD_CONFIG_STREAM = 81, + ATA_CMD_SMART = 176, + ATA_CMD_MEDIA_LOCK = 222, + ATA_CMD_MEDIA_UNLOCK = 223, + ATA_CMD_DSM = 6, + ATA_CMD_CHK_MED_CRD_TYP = 209, + ATA_CMD_CFA_REQ_EXT_ERR = 3, + ATA_CMD_CFA_WRITE_NE = 56, + ATA_CMD_CFA_TRANS_SECT = 135, + ATA_CMD_CFA_ERASE = 192, + ATA_CMD_CFA_WRITE_MULT_NE = 205, + ATA_CMD_REQ_SENSE_DATA = 11, + ATA_CMD_SANITIZE_DEVICE = 180, + ATA_CMD_ZAC_MGMT_IN = 74, + ATA_CMD_ZAC_MGMT_OUT = 159, + ATA_CMD_RESTORE = 16, + ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, + ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, + ATA_SUBCMD_FPDMA_SEND_DSM = 0, + ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, + ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, + ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, + ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, + ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, + ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, + ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, + ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, + ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, + ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, + ATA_LOG_DIRECTORY = 0, + ATA_LOG_SATA_NCQ = 16, + ATA_LOG_NCQ_NON_DATA = 18, + ATA_LOG_NCQ_SEND_RECV = 19, + ATA_LOG_CDL = 24, + ATA_LOG_CDL_SIZE = 512, + ATA_LOG_IDENTIFY_DEVICE = 48, + ATA_LOG_SENSE_NCQ = 15, + ATA_LOG_SENSE_NCQ_SIZE = 1024, + ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, + ATA_LOG_SUPPORTED_CAPABILITIES = 3, + ATA_LOG_CURRENT_SETTINGS = 4, + ATA_LOG_SECURITY = 6, + ATA_LOG_SATA_SETTINGS = 8, + ATA_LOG_ZONED_INFORMATION = 9, + ATA_LOG_DEVSLP_OFFSET = 48, + ATA_LOG_DEVSLP_SIZE = 8, + ATA_LOG_DEVSLP_MDAT = 0, + ATA_LOG_DEVSLP_MDAT_MASK = 31, + ATA_LOG_DEVSLP_DETO = 1, + ATA_LOG_DEVSLP_VALID = 7, + ATA_LOG_DEVSLP_VALID_MASK = 128, + ATA_LOG_NCQ_PRIO_OFFSET = 9, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, + ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, + ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, + ATA_LOG_NCQ_SEND_RECV_SIZE = 20, + ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, + ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, + ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, + ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, + ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, + ATA_LOG_NCQ_NON_DATA_SIZE = 64, + ATA_CMD_READ_LONG = 34, + ATA_CMD_READ_LONG_ONCE = 35, + ATA_CMD_WRITE_LONG = 50, + ATA_CMD_WRITE_LONG_ONCE = 51, + SETFEATURES_XFER = 3, + XFER_UDMA_7 = 71, + XFER_UDMA_6 = 70, + XFER_UDMA_5 = 69, + XFER_UDMA_4 = 68, + XFER_UDMA_3 = 67, + XFER_UDMA_2 = 66, + XFER_UDMA_1 = 65, + XFER_UDMA_0 = 64, + XFER_MW_DMA_4 = 36, + XFER_MW_DMA_3 = 35, + XFER_MW_DMA_2 = 34, + XFER_MW_DMA_1 = 33, + XFER_MW_DMA_0 = 32, + XFER_SW_DMA_2 = 18, + XFER_SW_DMA_1 = 17, + XFER_SW_DMA_0 = 16, + XFER_PIO_6 = 14, + XFER_PIO_5 = 13, + XFER_PIO_4 = 12, + XFER_PIO_3 = 11, + XFER_PIO_2 = 10, + XFER_PIO_1 = 9, + XFER_PIO_0 = 8, + XFER_PIO_SLOW = 0, + SETFEATURES_WC_ON = 2, + SETFEATURES_WC_OFF = 130, + SETFEATURES_RA_ON = 170, + SETFEATURES_RA_OFF = 85, + SETFEATURES_AAM_ON = 66, + SETFEATURES_AAM_OFF = 194, + SETFEATURES_SPINUP = 7, + SETFEATURES_SPINUP_TIMEOUT = 30000, + SETFEATURES_SATA_ENABLE = 16, + SETFEATURES_SATA_DISABLE = 144, + SETFEATURES_CDL = 13, + SATA_FPDMA_OFFSET = 1, + SATA_FPDMA_AA = 2, + SATA_DIPM = 3, + SATA_FPDMA_IN_ORDER = 4, + SATA_AN = 5, + SATA_SSP = 6, + SATA_DEVSLP = 9, + SETFEATURE_SENSE_DATA = 195, + SETFEATURE_SENSE_DATA_SUCC_NCQ = 196, + ATA_SET_MAX_ADDR = 0, + ATA_SET_MAX_PASSWD = 1, + ATA_SET_MAX_LOCK = 2, + ATA_SET_MAX_UNLOCK = 3, + ATA_SET_MAX_FREEZE_LOCK = 4, + ATA_SET_MAX_PASSWD_DMA = 5, + ATA_SET_MAX_UNLOCK_DMA = 6, + ATA_DCO_RESTORE = 192, + ATA_DCO_FREEZE_LOCK = 193, + ATA_DCO_IDENTIFY = 194, + ATA_DCO_SET = 195, + ATA_SMART_ENABLE = 216, + ATA_SMART_READ_VALUES = 208, + ATA_SMART_READ_THRESHOLDS = 209, + ATA_DSM_TRIM = 1, + ATA_SMART_LBAM_PASS = 79, + ATA_SMART_LBAH_PASS = 194, + ATAPI_PKT_DMA = 1, + ATAPI_DMADIR = 4, + ATAPI_CDB_LEN = 16, + SATA_PMP_MAX_PORTS = 15, + SATA_PMP_CTRL_PORT = 15, + SATA_PMP_GSCR_DWORDS = 128, + SATA_PMP_GSCR_PROD_ID = 0, + SATA_PMP_GSCR_REV = 1, + SATA_PMP_GSCR_PORT_INFO = 2, + SATA_PMP_GSCR_ERROR = 32, + SATA_PMP_GSCR_ERROR_EN = 33, + SATA_PMP_GSCR_FEAT = 64, + SATA_PMP_GSCR_FEAT_EN = 96, + SATA_PMP_PSCR_STATUS = 0, + SATA_PMP_PSCR_ERROR = 1, + SATA_PMP_PSCR_CONTROL = 2, + SATA_PMP_FEAT_BIST = 1, + SATA_PMP_FEAT_PMREQ = 2, + SATA_PMP_FEAT_DYNSSC = 4, + SATA_PMP_FEAT_NOTIFY = 8, + ATA_CBL_NONE = 0, + ATA_CBL_PATA40 = 1, + ATA_CBL_PATA80 = 2, + ATA_CBL_PATA40_SHORT = 3, + ATA_CBL_PATA_UNK = 4, + ATA_CBL_PATA_IGN = 5, + ATA_CBL_SATA = 6, + SCR_STATUS = 0, + SCR_ERROR = 1, + SCR_CONTROL = 2, + SCR_ACTIVE = 3, + SCR_NOTIFICATION = 4, + SERR_DATA_RECOVERED = 1, + SERR_COMM_RECOVERED = 2, + SERR_DATA = 256, + SERR_PERSISTENT = 512, + SERR_PROTOCOL = 1024, + SERR_INTERNAL = 2048, + SERR_PHYRDY_CHG = 65536, + SERR_PHY_INT_ERR = 131072, + SERR_COMM_WAKE = 262144, + SERR_10B_8B_ERR = 524288, + SERR_DISPARITY = 1048576, + SERR_CRC = 2097152, + SERR_HANDSHAKE = 4194304, + SERR_LINK_SEQ_ERR = 8388608, + SERR_TRANS_ST_ERROR = 16777216, + SERR_UNRECOG_FIS = 33554432, + SERR_DEV_XCHG = 67108864, }; -struct fib_nh_exception; - -struct fnhe_hash_bucket { - struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *chain; +enum { + LIBATA_MAX_PRD = 128, + LIBATA_DUMB_MAX_PRD = 64, + ATA_DEF_QUEUE = 1, + ATA_MAX_QUEUE = 32, + ATA_TAG_INTERNAL = 32, + ATA_SHORT_PAUSE = 16, + ATAPI_MAX_DRAIN = 16384, + ATA_ALL_DEVICES = 3, + ATA_SHT_EMULATED = 1, + ATA_SHT_THIS_ID = -1, + ATA_TFLAG_LBA48 = 1, + ATA_TFLAG_ISADDR = 2, + ATA_TFLAG_DEVICE = 4, + ATA_TFLAG_WRITE = 8, + ATA_TFLAG_LBA = 16, + ATA_TFLAG_FUA = 32, + ATA_TFLAG_POLLING = 64, + ATA_DFLAG_LBA = 1, + ATA_DFLAG_LBA48 = 2, + ATA_DFLAG_CDB_INTR = 4, + ATA_DFLAG_NCQ = 8, + ATA_DFLAG_FLUSH_EXT = 16, + ATA_DFLAG_ACPI_PENDING = 32, + ATA_DFLAG_ACPI_FAILED = 64, + ATA_DFLAG_AN = 128, + ATA_DFLAG_TRUSTED = 256, + ATA_DFLAG_FUA = 512, + ATA_DFLAG_DMADIR = 1024, + ATA_DFLAG_NCQ_SEND_RECV = 2048, + ATA_DFLAG_NCQ_PRIO = 4096, + ATA_DFLAG_CDL = 8192, + ATA_DFLAG_CFG_MASK = 16383, + ATA_DFLAG_PIO = 16384, + ATA_DFLAG_NCQ_OFF = 32768, + ATA_DFLAG_SLEEPING = 65536, + ATA_DFLAG_DUBIOUS_XFER = 131072, + ATA_DFLAG_NO_UNLOAD = 262144, + ATA_DFLAG_UNLOCK_HPA = 524288, + ATA_DFLAG_INIT_MASK = 1048575, + ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576, + ATA_DFLAG_CDL_ENABLED = 2097152, + ATA_DFLAG_DETACH = 16777216, + ATA_DFLAG_DETACHED = 33554432, + ATA_DFLAG_DA = 67108864, + ATA_DFLAG_DEVSLP = 134217728, + ATA_DFLAG_ACPI_DISABLED = 268435456, + ATA_DFLAG_D_SENSE = 536870912, + ATA_DFLAG_ZAC = 1073741824, + ATA_DFLAG_FEATURES_MASK = 201341696, + ATA_DEV_UNKNOWN = 0, + ATA_DEV_ATA = 1, + ATA_DEV_ATA_UNSUP = 2, + ATA_DEV_ATAPI = 3, + ATA_DEV_ATAPI_UNSUP = 4, + ATA_DEV_PMP = 5, + ATA_DEV_PMP_UNSUP = 6, + ATA_DEV_SEMB = 7, + ATA_DEV_SEMB_UNSUP = 8, + ATA_DEV_ZAC = 9, + ATA_DEV_ZAC_UNSUP = 10, + ATA_DEV_NONE = 11, + ATA_LFLAG_NO_HRST = 2, + ATA_LFLAG_NO_SRST = 4, + ATA_LFLAG_ASSUME_ATA = 8, + ATA_LFLAG_ASSUME_SEMB = 16, + ATA_LFLAG_ASSUME_CLASS = 24, + ATA_LFLAG_NO_RETRY = 32, + ATA_LFLAG_DISABLED = 64, + ATA_LFLAG_SW_ACTIVITY = 128, + ATA_LFLAG_NO_LPM = 256, + ATA_LFLAG_RST_ONCE = 512, + ATA_LFLAG_CHANGED = 1024, + ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, + ATA_FLAG_SLAVE_POSS = 1, + ATA_FLAG_SATA = 2, + ATA_FLAG_NO_LPM = 4, + ATA_FLAG_NO_LOG_PAGE = 32, + ATA_FLAG_NO_ATAPI = 64, + ATA_FLAG_PIO_DMA = 128, + ATA_FLAG_PIO_LBA48 = 256, + ATA_FLAG_PIO_POLLING = 512, + ATA_FLAG_NCQ = 1024, + ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, + ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, + ATA_FLAG_DEBUGMSG = 8192, + ATA_FLAG_FPDMA_AA = 16384, + ATA_FLAG_IGN_SIMPLEX = 32768, + ATA_FLAG_NO_IORDY = 65536, + ATA_FLAG_ACPI_SATA = 131072, + ATA_FLAG_AN = 262144, + ATA_FLAG_PMP = 524288, + ATA_FLAG_FPDMA_AUX = 1048576, + ATA_FLAG_EM = 2097152, + ATA_FLAG_SW_ACTIVITY = 4194304, + ATA_FLAG_NO_DIPM = 8388608, + ATA_FLAG_SAS_HOST = 16777216, + ATA_PFLAG_EH_PENDING = 1, + ATA_PFLAG_EH_IN_PROGRESS = 2, + ATA_PFLAG_FROZEN = 4, + ATA_PFLAG_RECOVERED = 8, + ATA_PFLAG_LOADING = 16, + ATA_PFLAG_SCSI_HOTPLUG = 64, + ATA_PFLAG_INITIALIZING = 128, + ATA_PFLAG_RESETTING = 256, + ATA_PFLAG_UNLOADING = 512, + ATA_PFLAG_UNLOADED = 1024, + ATA_PFLAG_RESUMING = 65536, + ATA_PFLAG_SUSPENDED = 131072, + ATA_PFLAG_PM_PENDING = 262144, + ATA_PFLAG_INIT_GTM_VALID = 524288, + ATA_PFLAG_PIO32 = 1048576, + ATA_PFLAG_PIO32CHANGE = 2097152, + ATA_PFLAG_EXTERNAL = 4194304, + ATA_QCFLAG_ACTIVE = 1, + ATA_QCFLAG_DMAMAP = 2, + ATA_QCFLAG_RTF_FILLED = 4, + ATA_QCFLAG_IO = 8, + ATA_QCFLAG_RESULT_TF = 16, + ATA_QCFLAG_CLEAR_EXCL = 32, + ATA_QCFLAG_QUIET = 64, + ATA_QCFLAG_RETRY = 128, + ATA_QCFLAG_HAS_CDL = 256, + ATA_QCFLAG_EH = 65536, + ATA_QCFLAG_SENSE_VALID = 131072, + ATA_QCFLAG_EH_SCHEDULED = 262144, + ATA_QCFLAG_EH_SUCCESS_CMD = 524288, + ATA_HOST_SIMPLEX = 1, + ATA_HOST_STARTED = 2, + ATA_HOST_PARALLEL_SCAN = 4, + ATA_HOST_IGNORE_ATA = 8, + ATA_HOST_NO_PART = 16, + ATA_HOST_NO_SSC = 32, + ATA_HOST_NO_DEVSLP = 64, + ATA_TMOUT_BOOT = 30000, + ATA_TMOUT_BOOT_QUICK = 7000, + ATA_TMOUT_INTERNAL_QUICK = 5000, + ATA_TMOUT_MAX_PARK = 30000, + ATA_TMOUT_FF_WAIT_LONG = 2000, + ATA_TMOUT_FF_WAIT = 800, + ATA_WAIT_AFTER_RESET = 150, + ATA_TMOUT_PMP_SRST_WAIT = 10000, + ATA_TMOUT_SPURIOUS_PHY = 10000, + BUS_UNKNOWN = 0, + BUS_DMA = 1, + BUS_IDLE = 2, + BUS_NOINTR = 3, + BUS_NODATA = 4, + BUS_TIMER = 5, + BUS_PIO = 6, + BUS_EDD = 7, + BUS_IDENTIFY = 8, + BUS_PACKET = 9, + PORT_UNKNOWN = 0, + PORT_ENABLED = 1, + PORT_DISABLED = 2, + ATA_NR_PIO_MODES = 7, + ATA_NR_MWDMA_MODES = 5, + ATA_NR_UDMA_MODES = 8, + ATA_SHIFT_PIO = 0, + ATA_SHIFT_MWDMA = 7, + ATA_SHIFT_UDMA = 12, + ATA_SHIFT_PRIO = 6, + ATA_PRIO_HIGH = 2, + ATA_DMA_PAD_SZ = 4, + ATA_ERING_SIZE = 32, + ATA_DEFER_LINK = 1, + ATA_DEFER_PORT = 2, + ATA_EH_DESC_LEN = 80, + ATA_EH_REVALIDATE = 1, + ATA_EH_SOFTRESET = 2, + ATA_EH_HARDRESET = 4, + ATA_EH_RESET = 6, + ATA_EH_ENABLE_LINK = 8, + ATA_EH_PARK = 32, + ATA_EH_GET_SUCCESS_SENSE = 64, + ATA_EH_SET_ACTIVE = 128, + ATA_EH_PERDEV_MASK = 225, + ATA_EH_ALL_ACTIONS = 15, + ATA_EHI_HOTPLUGGED = 1, + ATA_EHI_NO_AUTOPSY = 4, + ATA_EHI_QUIET = 8, + ATA_EHI_NO_RECOVERY = 16, + ATA_EHI_DID_SOFTRESET = 65536, + ATA_EHI_DID_HARDRESET = 131072, + ATA_EHI_PRINTINFO = 262144, + ATA_EHI_SETMODE = 524288, + ATA_EHI_POST_SETMODE = 1048576, + ATA_EHI_DID_RESET = 196608, + ATA_EHI_TO_SLAVE_MASK = 12, + ATA_EH_MAX_TRIES = 5, + ATA_LINK_RESUME_TRIES = 5, + ATA_EH_DEV_TRIES = 3, + ATA_EH_PMP_TRIES = 5, + ATA_EH_PMP_LINK_TRIES = 3, + SATA_PMP_RW_TIMEOUT = 3000, + ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 8, + ATA_HORKAGE_DIAGNOSTIC = 1, + ATA_HORKAGE_NODMA = 2, + ATA_HORKAGE_NONCQ = 4, + ATA_HORKAGE_MAX_SEC_128 = 8, + ATA_HORKAGE_BROKEN_HPA = 16, + ATA_HORKAGE_DISABLE = 32, + ATA_HORKAGE_HPA_SIZE = 64, + ATA_HORKAGE_IVB = 256, + ATA_HORKAGE_STUCK_ERR = 512, + ATA_HORKAGE_BRIDGE_OK = 1024, + ATA_HORKAGE_ATAPI_MOD16_DMA = 2048, + ATA_HORKAGE_FIRMWARE_WARN = 4096, + ATA_HORKAGE_1_5_GBPS = 8192, + ATA_HORKAGE_NOSETXFER = 16384, + ATA_HORKAGE_BROKEN_FPDMA_AA = 32768, + ATA_HORKAGE_DUMP_ID = 65536, + ATA_HORKAGE_MAX_SEC_LBA48 = 131072, + ATA_HORKAGE_ATAPI_DMADIR = 262144, + ATA_HORKAGE_NO_NCQ_TRIM = 524288, + ATA_HORKAGE_NOLPM = 1048576, + ATA_HORKAGE_WD_BROKEN_LPM = 2097152, + ATA_HORKAGE_ZERO_AFTER_TRIM = 4194304, + ATA_HORKAGE_NO_DMA_LOG = 8388608, + ATA_HORKAGE_NOTRIM = 16777216, + ATA_HORKAGE_MAX_SEC_1024 = 33554432, + ATA_HORKAGE_MAX_TRIM_128M = 67108864, + ATA_HORKAGE_NO_NCQ_ON_ATI = 134217728, + ATA_HORKAGE_NO_ID_DEV_LOG = 268435456, + ATA_HORKAGE_NO_LOG_DIR = 536870912, + ATA_HORKAGE_NO_FUA = 1073741824, + ATA_DMA_MASK_ATA = 1, + ATA_DMA_MASK_ATAPI = 2, + ATA_DMA_MASK_CFA = 4, + ATAPI_READ = 0, + ATAPI_WRITE = 1, + ATAPI_READ_CD = 2, + ATAPI_PASS_THRU = 3, + ATAPI_MISC = 4, + ATA_TIMING_SETUP = 1, + ATA_TIMING_ACT8B = 2, + ATA_TIMING_REC8B = 4, + ATA_TIMING_CYC8B = 8, + ATA_TIMING_8BIT = 14, + ATA_TIMING_ACTIVE = 16, + ATA_TIMING_RECOVER = 32, + ATA_TIMING_DMACK_HOLD = 64, + ATA_TIMING_CYCLE = 128, + ATA_TIMING_UDMA = 256, + ATA_TIMING_ALL = 511, + ATA_ACPI_FILTER_SETXFER = 1, + ATA_ACPI_FILTER_LOCK = 2, + ATA_ACPI_FILTER_DIPM = 4, + ATA_ACPI_FILTER_FPDMA_OFFSET = 8, + ATA_ACPI_FILTER_FPDMA_AA = 16, + ATA_ACPI_FILTER_DEFAULT = 7, }; -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; +enum ata_link_iter_mode { + ATA_LITER_EDGE = 0, + ATA_LITER_HOST_FIRST = 1, + ATA_LITER_PMP_FIRST = 2, }; -struct rt6_info { - struct dst_entry dst; - struct fib6_info __attribute__((btf_type_tag("rcu"))) *from; - int sernum; - struct rt6key rt6i_dst; - struct rt6key rt6i_src; - struct in6_addr rt6i_gateway; - struct inet6_dev *rt6i_idev; - u32 rt6i_flags; - unsigned short rt6i_nfheader_len; +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 rt6_exception_bucket { - struct hlist_head chain; - int depth; +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 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 ahci_sg { + __le32 addr; + __le32 addr_hi; + __le32 reserved; + __le32 flags_size; }; -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 ahci_cmd_hdr; -struct dst_cache { - struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache; - unsigned long reset_ts; +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 ethnl_req_info; +struct ahci_cmd_hdr { + __le32 opts; + __le32 status; + __le32 tbl_addr; + __le32 tbl_addr_hi; + __le32 reserved[4]; +}; -struct ethnl_reply_data; +struct reset_control; -struct genl_info; +struct phy; -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 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 ethnl_req_info { - struct net_device *dev; - netdevice_tracker dev_tracker; - u32 flags; +struct phy_attrs { + u32 bus_width; + u32 max_link_rate; + enum phy_mode mode; }; -struct mii_bus; +struct phy_ops; -struct mdio_device { +struct phy { 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; + int id; + const struct phy_ops *ops; + struct mutex mutex; + int init_count; + int power_count; + struct phy_attrs attrs; + struct regulator *pwr; + struct dentry *debugfs; }; -struct phy_c45_device_ids { - u32 devices_in_package; - u32 mmds_present; - u32 device_ids[32]; -}; +union phy_configure_opts; -enum phy_state { - PHY_DOWN = 0, - PHY_READY = 1, - PHY_HALTED = 2, - PHY_ERROR = 3, - PHY_UP = 4, - PHY_RUNNING = 5, - PHY_NOLINK = 6, - PHY_CABLETEST = 7, +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; }; -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 pse_control; - -struct phy_driver; - -struct device_link; - -struct phy_package_shared; +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 phylink; +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 mii_timestamper; +struct phy_configure_opts_lvds { + unsigned int bits_per_lane_and_dclk_cycle; + unsigned long differential_clk_rate; + unsigned int lanes; + bool is_slave; +}; -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 wol_enabled: 1; - unsigned int autoneg: 1; - unsigned int link: 1; - unsigned int autoneg_complete: 1; - unsigned int interrupts: 1; - unsigned int irq_suspended: 1; - unsigned int irq_rerun: 1; - int rate_matching; - enum phy_state state; - u32 dev_flags; - phy_interface_t interface; - 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; - struct list_head leds; - int irq; - void *priv; - struct phy_package_shared *shared; - struct sk_buff *skb; - void *ehdr; - struct nlattr *nest; - struct delayed_work state_queue; - struct mutex lock; - bool sfp_bus_attached; - struct sfp_bus *sfp_bus; - struct phylink *phylink; - struct net_device *attached_dev; - struct mii_timestamper *mii_ts; - struct pse_control *psec; - u8 mdix; - u8 mdix_ctrl; - int pma_extable; - unsigned int link_down_events; - void (*phy_link_change)(struct phy_device *, bool); - void (*adjust_link)(struct net_device *); +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 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 ata_port_info { + unsigned long flags; + unsigned long link_flags; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + struct ata_port_operations *port_ops; + void *private_data; }; -struct mii_bus { - struct module *owner; +struct flash_info; + +struct spi_nor_fixups; + +struct spi_nor_manufacturer { 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]; + const struct flash_info *parts; + unsigned int nparts; + const struct spi_nor_fixups *fixups; }; -struct phy_package_shared { - int addr; - refcount_t refcnt; - unsigned long flags; - size_t priv_size; - void *priv; +struct spi_nor_id; + +struct spi_nor_otp_organization; + +struct flash_info { + char *name; + const struct spi_nor_id *id; + size_t size; + unsigned int sector_size; + u16 page_size; + u8 n_banks; + u8 addr_nbytes; + u16 flags; + u8 no_sfdp_flags; + u8 fixup_flags; + u8 mfr_flags; + const struct spi_nor_otp_organization *otp; + const struct spi_nor_fixups *fixups; }; -struct mdio_driver_common { - struct device_driver driver; - int flags; +struct spi_nor_id { + const u8 *bytes; + u8 len; }; -enum led_brightness { - LED_OFF = 0, - LED_ON = 1, - LED_HALF = 127, - LED_FULL = 255, +struct spi_nor_otp_organization { + size_t len; + loff_t base; + loff_t offset; + unsigned int n_regions; }; -struct phy_tdr_config; +struct spi_nor; -struct phy_plca_cfg; +struct sfdp_parameter_header; -struct phy_plca_status; +struct sfdp_bfpt; -struct phy_driver { - struct mdio_driver_common mdiodrv; - u32 phy_id; - char *name; - u32 phy_id_mask; - const unsigned long * const features; - u32 flags; - const void *driver_data; - int (*soft_reset)(struct phy_device *); - int (*config_init)(struct phy_device *); - int (*probe)(struct phy_device *); - int (*get_features)(struct phy_device *); - int (*get_rate_matching)(struct phy_device *, phy_interface_t); - int (*suspend)(struct phy_device *); - int (*resume)(struct phy_device *); - int (*config_aneg)(struct phy_device *); - int (*aneg_done)(struct phy_device *); - int (*read_status)(struct phy_device *); - int (*config_intr)(struct phy_device *); - irqreturn_t (*handle_interrupt)(struct phy_device *); - void (*remove)(struct phy_device *); - int (*match_phy_device)(struct phy_device *); - int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *); - void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *); - void (*link_change_notify)(struct phy_device *); - int (*read_mmd)(struct phy_device *, int, u16); - int (*write_mmd)(struct phy_device *, int, u16, u16); - int (*read_page)(struct phy_device *); - int (*write_page)(struct phy_device *, int); - int (*module_info)(struct phy_device *, struct ethtool_modinfo *); - int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *); - int (*cable_test_start)(struct phy_device *); - int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *); - int (*cable_test_get_status)(struct phy_device *, bool *); - int (*get_sset_count)(struct phy_device *); - void (*get_strings)(struct phy_device *, u8 *); - void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); - int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); - int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); - int (*set_loopback)(struct phy_device *, bool); - int (*get_sqi)(struct phy_device *); - int (*get_sqi_max)(struct phy_device *); - int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); - int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *); - int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); - int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness); - int (*led_blink_set)(struct phy_device *, u8, unsigned long *, unsigned long *); +struct spi_nor_fixups { + void (*default_init)(struct spi_nor *); + int (*post_bfpt)(struct spi_nor *, const struct sfdp_parameter_header *, const struct sfdp_bfpt *); + int (*post_sfdp)(struct spi_nor *); + int (*late_init)(struct spi_nor *); }; -struct phy_tdr_config { - u32 first; - u32 last; - u32 step; - s8 pair; -}; +typedef unsigned char u_char; -struct phy_plca_cfg { - int version; - int enabled; - int node_id; - int node_cnt; - int to_tmr; - int burst_cnt; - int burst_tmr; +struct mtd_ecc_stats { + __u32 corrected; + __u32 failed; + __u32 badblocks; + __u32 bbtblocks; }; -struct phy_plca_status { - bool pst; +struct mtd_debug_info { + struct dentry *dfs_dir; }; -enum device_link_state { - DL_STATE_NONE = -1, - DL_STATE_DORMANT = 0, - DL_STATE_AVAILABLE = 1, - DL_STATE_CONSUMER_PROBE = 2, - DL_STATE_ACTIVE = 3, - DL_STATE_SUPPLIER_UNBIND = 4, +struct mtd_part { + struct list_head node; + u64 offset; + u64 size; + u32 flags; }; -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 mtd_master { + struct mutex partitions_lock; + struct mutex chrdev_lock; + unsigned int suspended: 1; }; -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; +struct mtd_ooblayout_ops; + +struct mtd_pairing_scheme; + +struct mtd_erase_region_info; + +struct erase_info; + +struct mtd_oob_ops; + +struct otp_info; + +struct nvmem_device; + +struct mtd_info { + u_char type; + uint32_t flags; + uint64_t size; + uint32_t erasesize; + uint32_t writesize; + uint32_t writebufsize; + uint32_t oobsize; + uint32_t oobavail; + unsigned int erasesize_shift; + unsigned int writesize_shift; + unsigned int erasesize_mask; + unsigned int writesize_mask; + unsigned int bitflip_threshold; + const char *name; + int index; + const struct mtd_ooblayout_ops *ooblayout; + const struct mtd_pairing_scheme *pairing; + unsigned int ecc_step_size; + unsigned int ecc_strength; + int numeraseregions; + struct mtd_erase_region_info *eraseregions; + int (*_erase)(struct mtd_info *, struct erase_info *); + int (*_point)(struct mtd_info *, loff_t, size_t, size_t *, void **, resource_size_t *); + int (*_unpoint)(struct mtd_info *, loff_t, size_t); + int (*_read)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); + int (*_write)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); + int (*_panic_write)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); + int (*_read_oob)(struct mtd_info *, loff_t, struct mtd_oob_ops *); + int (*_write_oob)(struct mtd_info *, loff_t, struct mtd_oob_ops *); + int (*_get_fact_prot_info)(struct mtd_info *, size_t, size_t *, struct otp_info *); + int (*_read_fact_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); + int (*_get_user_prot_info)(struct mtd_info *, size_t, size_t *, struct otp_info *); + int (*_read_user_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, u_char *); + int (*_write_user_prot_reg)(struct mtd_info *, loff_t, size_t, size_t *, const u_char *); + int (*_lock_user_prot_reg)(struct mtd_info *, loff_t, size_t); + int (*_erase_user_prot_reg)(struct mtd_info *, loff_t, size_t); + int (*_writev)(struct mtd_info *, const struct kvec *, unsigned long, loff_t, size_t *); + void (*_sync)(struct mtd_info *); + int (*_lock)(struct mtd_info *, loff_t, uint64_t); + int (*_unlock)(struct mtd_info *, loff_t, uint64_t); + int (*_is_locked)(struct mtd_info *, loff_t, uint64_t); + int (*_block_isreserved)(struct mtd_info *, loff_t); + int (*_block_isbad)(struct mtd_info *, loff_t); + int (*_block_markbad)(struct mtd_info *, loff_t); + int (*_max_bad_blocks)(struct mtd_info *, loff_t, size_t); + int (*_suspend)(struct mtd_info *); + void (*_resume)(struct mtd_info *); + void (*_reboot)(struct mtd_info *); + int (*_get_device)(struct mtd_info *); + void (*_put_device)(struct mtd_info *); + bool oops_panic_write; + struct notifier_block reboot_notifier; + struct mtd_ecc_stats ecc_stats; + int subpage_sft; + void *priv; + struct module *owner; + struct device dev; + struct kref refcnt; + struct mtd_debug_info dbg; + struct nvmem_device *nvmem; + struct nvmem_device *otp_user_nvmem; + struct nvmem_device *otp_factory_nvmem; + struct mtd_info *parent; + struct list_head partitions; + struct mtd_part part; + struct mtd_master master; }; -struct ethnl_reply_data { - struct net_device *dev; +struct spi_nor_rww { + wait_queue_head_t wait; + bool ongoing_io; + bool ongoing_rd; + bool ongoing_pe; + unsigned int used_banks; +}; + +enum spi_nor_protocol { + SNOR_PROTO_1_1_1 = 65793, + SNOR_PROTO_1_1_2 = 65794, + SNOR_PROTO_1_1_4 = 65796, + SNOR_PROTO_1_1_8 = 65800, + SNOR_PROTO_1_2_2 = 66050, + SNOR_PROTO_1_4_4 = 66564, + SNOR_PROTO_1_8_8 = 67592, + SNOR_PROTO_2_2_2 = 131586, + SNOR_PROTO_4_4_4 = 263172, + SNOR_PROTO_8_8_8 = 526344, + SNOR_PROTO_1_1_1_DTR = 16843009, + SNOR_PROTO_1_2_2_DTR = 16843266, + SNOR_PROTO_1_4_4_DTR = 16843780, + SNOR_PROTO_1_8_8_DTR = 16844808, + SNOR_PROTO_8_8_8_DTR = 17303560, +}; + +enum spi_nor_cmd_ext { + SPI_NOR_EXT_NONE = 0, + SPI_NOR_EXT_REPEAT = 1, + SPI_NOR_EXT_INVERT = 2, + SPI_NOR_EXT_HEX = 3, }; -struct genlmsghdr; +struct spi_mem; -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 sfdp; -struct genlmsghdr { - __u8 cmd; - __u8 version; - __u16 reserved; +struct spi_nor_controller_ops; + +struct spi_nor_flash_parameter; + +struct spi_mem_dirmap_desc; + +struct spi_nor { + struct mtd_info mtd; + struct mutex lock; + struct spi_nor_rww rww; + struct device *dev; + struct spi_mem *spimem; + u8 *bouncebuf; + size_t bouncebuf_size; + u8 *id; + const struct flash_info *info; + const struct spi_nor_manufacturer *manufacturer; + u8 addr_nbytes; + u8 erase_opcode; + u8 read_opcode; + u8 read_dummy; + u8 program_opcode; + enum spi_nor_protocol read_proto; + enum spi_nor_protocol write_proto; + enum spi_nor_protocol reg_proto; + bool sst_write_second; + u32 flags; + enum spi_nor_cmd_ext cmd_ext_type; + struct sfdp *sfdp; + struct dentry *debugfs_root; + const struct spi_nor_controller_ops *controller_ops; + struct spi_nor_flash_parameter *params; + struct { + struct spi_mem_dirmap_desc *rdesc; + struct spi_mem_dirmap_desc *wdesc; + } dirmap; + void *priv; }; -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, +struct mtd_oob_region; + +struct mtd_ooblayout_ops { + int (*ecc)(struct mtd_info *, int, struct mtd_oob_region *); + int (*free)(struct mtd_info *, int, struct mtd_oob_region *); }; -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 mtd_oob_region { + u32 offset; + u32 length; }; -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 mtd_pairing_info; + +struct mtd_pairing_scheme { + int ngroups; + int (*get_info)(struct mtd_info *, int, struct mtd_pairing_info *); + int (*get_wunit)(struct mtd_info *, const struct mtd_pairing_info *); }; -enum { - RTN_UNSPEC = 0, - RTN_UNICAST = 1, - RTN_LOCAL = 2, - RTN_BROADCAST = 3, - RTN_ANYCAST = 4, - RTN_MULTICAST = 5, - RTN_BLACKHOLE = 6, - RTN_UNREACHABLE = 7, - RTN_PROHIBIT = 8, - RTN_THROW = 9, - RTN_NAT = 10, - RTN_XRESOLVE = 11, - __RTN_MAX = 12, +struct mtd_pairing_info { + int pair; + int group; }; -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 mtd_erase_region_info { + uint64_t offset; + uint32_t erasesize; + uint32_t numblocks; + unsigned long *lockmap; }; -struct inet_skb_parm { - int iif; - struct ip_options opt; - u16 flags; - u16 frag_max_size; +struct erase_info { + uint64_t addr; + uint64_t len; + uint64_t fail_addr; }; -typedef __u16 __sum16; +struct mtd_req_stats; -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 mtd_oob_ops { + unsigned int mode; + size_t len; + size_t retlen; + size_t ooblen; + size_t oobretlen; + uint32_t ooboffs; + uint8_t *datbuf; + uint8_t *oobbuf; + struct mtd_req_stats *stats; }; -struct ip_options_rcu { - struct callback_head rcu; - struct ip_options opt; +struct mtd_req_stats { + unsigned int uncorrectable_errors; + unsigned int corrected_bitflips; + unsigned int max_bitflips; }; -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; +struct otp_info { + __u32 start; + __u32 length; + __u32 locked; }; -struct xfrm_address_filter; +struct spi_device; -struct xfrm_state_walk { - struct list_head all; - u8 state; - u8 dying; - u8 proto; - u32 seq; - struct xfrm_address_filter *filter; +struct spi_mem { + struct spi_device *spi; + void *drvpriv; + const char *name; }; -struct xfrm_replay_state { - __u32 oseq; - __u32 seq; - __u32 bitmap; +struct spi_delay { + u16 value; + u8 unit; }; -enum xfrm_replay_mode { - XFRM_REPLAY_MODE_LEGACY = 0, - XFRM_REPLAY_MODE_BMP = 1, - XFRM_REPLAY_MODE_ESN = 2, -}; +struct spi_controller; -struct xfrm_stats { - __u32 replay_window; - __u32 replay; - __u32 integrity_failed; -}; +struct spi_statistics; -struct xfrm_mode { - u8 encap; - u8 family; - u8 flags; +struct spi_device { + struct device dev; + struct spi_controller *controller; + struct spi_controller *master; + u32 max_speed_hz; + u8 chip_select; + u8 bits_per_word; + bool rt; + u32 mode; + int irq; + void *controller_state; + void *controller_data; + char modalias[32]; + const char *driver_override; + struct gpio_desc *cs_gpiod; + struct spi_delay word_delay; + struct spi_delay cs_setup; + struct spi_delay cs_hold; + struct spi_delay cs_inactive; + struct spi_statistics __attribute__((btf_type_tag("percpu"))) *pcpu_statistics; }; -struct xfrm_algo_auth; +struct kthread_work; -struct xfrm_algo; +typedef void (*kthread_work_func_t)(struct kthread_work *); -struct xfrm_algo_aead; +struct kthread_worker; -struct xfrm_encap_tmpl; +struct kthread_work { + struct list_head node; + kthread_work_func_t func; + struct kthread_worker *worker; + int canceling; +}; -struct xfrm_replay_state_esn; +struct spi_message; -struct xfrm_type; +struct spi_transfer; -struct xfrm_type_offload; +struct spi_controller_mem_ops; -struct xfrm_state { - possible_net_t xs_net; +struct spi_controller_mem_caps; + +struct spi_controller { + struct device dev; + struct list_head list; + s16 bus_num; + u16 num_chipselect; + u16 dma_alignment; + u32 mode_bits; + u32 buswidth_override_bits; + u32 bits_per_word_mask; + u32 min_speed_hz; + u32 max_speed_hz; + u16 flags; + bool devm_allocated; 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; + bool slave; + bool target; + }; + size_t (*max_transfer_size)(struct spi_device *); + size_t (*max_message_size)(struct spi_device *); + struct mutex io_mutex; + struct mutex add_lock; + spinlock_t bus_lock_spinlock; + struct mutex bus_lock_mutex; + bool bus_lock_flag; + int (*setup)(struct spi_device *); + int (*set_cs_timing)(struct spi_device *); + int (*transfer)(struct spi_device *, struct spi_message *); + void (*cleanup)(struct spi_device *); + bool (*can_dma)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + struct device *dma_map_dev; + struct device *cur_rx_dma_dev; + struct device *cur_tx_dma_dev; + bool queued; + struct kthread_worker *kworker; + struct kthread_work pump_messages; + spinlock_t queue_lock; + struct list_head queue; + struct spi_message *cur_msg; + struct completion cur_msg_completion; + bool cur_msg_incomplete; + bool cur_msg_need_completion; + bool busy; + bool running; + bool rt; + bool auto_runtime_pm; + bool cur_msg_mapped; + char last_cs; + bool last_cs_mode_high; + bool fallback; + struct completion xfer_completion; + size_t max_dma_len; + int (*prepare_transfer_hardware)(struct spi_controller *); + int (*transfer_one_message)(struct spi_controller *, struct spi_message *); + int (*unprepare_transfer_hardware)(struct spi_controller *); + int (*prepare_message)(struct spi_controller *, struct spi_message *); + int (*unprepare_message)(struct spi_controller *, struct spi_message *); + union { + int (*slave_abort)(struct spi_controller *); + int (*target_abort)(struct spi_controller *); + }; + void (*set_cs)(struct spi_device *, bool); + int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *); + void (*handle_err)(struct spi_controller *, struct spi_message *); + const struct spi_controller_mem_ops *mem_ops; + const struct spi_controller_mem_caps *mem_caps; + struct gpio_desc **cs_gpiods; + bool use_gpio_descriptors; + s8 unused_native_cs; + s8 max_native_cs; + struct spi_statistics __attribute__((btf_type_tag("percpu"))) *pcpu_statistics; + struct dma_chan *dma_tx; + struct dma_chan *dma_rx; + void *dummy_rx; + void *dummy_tx; + int (*fw_translate_cs)(struct spi_controller *, unsigned int); + bool ptp_sts_supported; + unsigned long irq_flags; + bool queue_empty; + bool must_async; }; -struct xfrm_address_filter { - xfrm_address_t saddr; - xfrm_address_t daddr; - __u16 family; - __u8 splen; - __u8 dplen; +struct spi_message { + struct list_head transfers; + struct spi_device *spi; + unsigned int is_dma_mapped: 1; + bool prepared; + int status; + void (*complete)(void *); + void *context; + unsigned int frame_length; + unsigned int actual_length; + struct list_head queue; + void *state; + struct list_head resources; }; -struct xfrm_algo_auth { - char alg_name[64]; - unsigned int alg_key_len; - unsigned int alg_trunc_len; - char alg_key[0]; -}; +struct ptp_system_timestamp; -struct xfrm_algo { - char alg_name[64]; - unsigned int alg_key_len; - char alg_key[0]; +struct spi_transfer { + const void *tx_buf; + void *rx_buf; + unsigned int len; + u16 error; + dma_addr_t tx_dma; + dma_addr_t rx_dma; + struct sg_table tx_sg; + struct sg_table rx_sg; + unsigned int dummy_data: 1; + unsigned int cs_off: 1; + unsigned int cs_change: 1; + unsigned int tx_nbits: 3; + unsigned int rx_nbits: 3; + unsigned int timestamped: 1; + u8 bits_per_word; + struct spi_delay delay; + struct spi_delay cs_change_delay; + struct spi_delay word_delay; + u32 speed_hz; + u32 effective_speed_hz; + unsigned int ptp_sts_word_pre; + unsigned int ptp_sts_word_post; + struct ptp_system_timestamp *ptp_sts; + struct list_head transfer_list; }; -struct xfrm_algo_aead { - char alg_name[64]; - unsigned int alg_key_len; - unsigned int alg_icv_len; - char alg_key[0]; +struct kthread_worker { + unsigned int flags; + raw_spinlock_t lock; + struct list_head work_list; + struct list_head delayed_work_list; + struct task_struct *task; + struct kthread_work *current_work; }; -struct xfrm_encap_tmpl { - __u16 encap_type; - __be16 encap_sport; - __be16 encap_dport; - xfrm_address_t encap_oa; -}; +struct spi_mem_op; -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 spi_controller_mem_ops { + int (*adjust_op_size)(struct spi_mem *, struct spi_mem_op *); + bool (*supports_op)(struct spi_mem *, const struct spi_mem_op *); + int (*exec_op)(struct spi_mem *, const struct spi_mem_op *); + const char * (*get_name)(struct spi_mem *); + int (*dirmap_create)(struct spi_mem_dirmap_desc *); + void (*dirmap_destroy)(struct spi_mem_dirmap_desc *); + ssize_t (*dirmap_read)(struct spi_mem_dirmap_desc *, u64, size_t, void *); + ssize_t (*dirmap_write)(struct spi_mem_dirmap_desc *, u64, size_t, const void *); + int (*poll_status)(struct spi_mem *, const struct spi_mem_op *, u16, u16, unsigned long, unsigned long, unsigned long); }; -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 *); +enum spi_mem_data_dir { + SPI_MEM_NO_DATA = 0, + SPI_MEM_DATA_IN = 1, + SPI_MEM_DATA_OUT = 2, }; -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 spi_mem_op { + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + u16 opcode; + } cmd; + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + u64 val; + } addr; + struct { + u8 nbytes; + u8 buswidth; + u8 dtr: 1; + u8 __pad: 7; + } dummy; + struct { + u8 buswidth; + u8 dtr: 1; + u8 ecc: 1; + u8 __pad: 6; + enum spi_mem_data_dir dir; + unsigned int nbytes; + union { + void *in; + const void *out; + } buf; + } data; }; -struct xfrm_sec_ctx { - __u8 ctx_doi; - __u8 ctx_alg; - __u16 ctx_len; - __u32 ctx_sid; - char ctx_str[0]; +struct spi_mem_dirmap_info { + struct spi_mem_op op_tmpl; + u64 offset; + u64 length; }; -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 spi_mem_dirmap_desc { + struct spi_mem *mem; + struct spi_mem_dirmap_info info; + unsigned int nodirmap; + void *priv; }; -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 spi_controller_mem_caps { + bool dtr; + bool ecc; }; -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 spi_statistics { + struct u64_stats_sync syncp; + u64_stats_t messages; + u64_stats_t transfers; + u64_stats_t errors; + u64_stats_t timedout; + u64_stats_t spi_sync; + u64_stats_t spi_sync_immediate; + u64_stats_t spi_async; + u64_stats_t bytes; + u64_stats_t bytes_rx; + u64_stats_t bytes_tx; + u64_stats_t transfer_bytes_histo[17]; + u64_stats_t transfers_split_maxsize; }; -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 sfdp { + size_t num_dwords; + u32 *dwords; }; -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 spi_nor_controller_ops { + int (*prepare)(struct spi_nor *); + void (*unprepare)(struct spi_nor *); + int (*read_reg)(struct spi_nor *, u8, u8 *, size_t); + int (*write_reg)(struct spi_nor *, u8, const u8 *, size_t); + ssize_t (*read)(struct spi_nor *, loff_t, size_t, u8 *); + ssize_t (*write)(struct spi_nor *, loff_t, size_t, const u8 *); + int (*erase)(struct spi_nor *, loff_t); }; -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 spi_nor_hwcaps { + u32 mask; }; -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 spi_nor_read_command { + u8 num_mode_clocks; + u8 num_wait_states; + u8 opcode; + enum spi_nor_protocol proto; }; -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 spi_nor_pp_command { + u8 opcode; + enum spi_nor_protocol proto; }; -struct in_ifaddr { - struct hlist_node hash; - struct in_ifaddr __attribute__((btf_type_tag("rcu"))) *ifa_next; - struct in_device *ifa_dev; - struct callback_head callback_head; - __be32 ifa_local; - __be32 ifa_address; - __be32 ifa_mask; - __u32 ifa_rt_priority; - __be32 ifa_broadcast; - unsigned char ifa_scope; - unsigned char ifa_prefixlen; - unsigned char ifa_proto; - __u32 ifa_flags; - char ifa_label[16]; - __u32 ifa_valid_lft; - __u32 ifa_preferred_lft; - unsigned long ifa_cstamp; - unsigned long ifa_tstamp; +struct spi_nor_erase_region { + u64 offset; + u64 size; }; -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 spi_nor_erase_type { + u32 size; + u32 size_shift; + u32 size_mask; + u8 opcode; + u8 idx; }; -struct bpf_cgroup_storage_key { - __u64 cgroup_inode_id; - __u32 attach_type; +struct spi_nor_erase_map { + struct spi_nor_erase_region *regions; + struct spi_nor_erase_region uniform_region; + struct spi_nor_erase_type erase_type[4]; + u8 uniform_erase_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 spi_nor_otp_ops; -struct bpf_storage_buffer { - struct callback_head rcu; - char data[0]; +struct spi_nor_otp { + const struct spi_nor_otp_organization *org; + const struct spi_nor_otp_ops *ops; }; -struct inet_ehash_bucket; - -struct inet_bind_hashbucket; - -struct inet_listen_hashbucket; +struct spi_nor_locking_ops; -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 spi_nor_flash_parameter { + u64 bank_size; + u64 size; + u32 writesize; + u32 page_size; + u8 addr_nbytes; + u8 addr_mode_nbytes; + u8 rdsr_dummy; + u8 rdsr_addr_nbytes; + u8 n_banks; + u8 n_dice; + u32 *vreg_offset; + struct spi_nor_hwcaps hwcaps; + struct spi_nor_read_command reads[16]; + struct spi_nor_pp_command page_programs[8]; + struct spi_nor_erase_map erase_map; + struct spi_nor_otp otp; + int (*set_octal_dtr)(struct spi_nor *, bool); + int (*quad_enable)(struct spi_nor *); + int (*set_4byte_addr_mode)(struct spi_nor *, bool); + u32 (*convert_addr)(struct spi_nor *, u32); + int (*setup)(struct spi_nor *, const struct spi_nor_hwcaps *); + int (*ready)(struct spi_nor *); + const struct spi_nor_locking_ops *locking_ops; + void *priv; }; -struct hlist_nulls_head { - struct hlist_nulls_node *first; +struct spi_nor_otp_ops { + int (*read)(struct spi_nor *, loff_t, size_t, u8 *); + int (*write)(struct spi_nor *, loff_t, size_t, const u8 *); + int (*lock)(struct spi_nor *, unsigned int); + int (*erase)(struct spi_nor *, loff_t); + int (*is_locked)(struct spi_nor *, unsigned int); }; -struct inet_ehash_bucket { - struct hlist_nulls_head chain; +struct spi_nor_locking_ops { + int (*lock)(struct spi_nor *, loff_t, uint64_t); + int (*unlock)(struct spi_nor *, loff_t, uint64_t); + int (*is_locked)(struct spi_nor *, loff_t, uint64_t); }; -struct inet_bind_hashbucket { - spinlock_t lock; - struct hlist_head chain; +struct sfdp_parameter_header { + u8 id_lsb; + u8 minor; + u8 major; + u8 length; + u8 parameter_table_pointer[3]; + u8 id_msb; +}; + +struct sfdp_bfpt { + u32 dwords[20]; +}; + +enum spi_nor_option_flags { + SNOR_F_HAS_SR_TB = 1, + SNOR_F_NO_OP_CHIP_ERASE = 2, + SNOR_F_BROKEN_RESET = 4, + SNOR_F_4B_OPCODES = 8, + SNOR_F_HAS_4BAIT = 16, + SNOR_F_HAS_LOCK = 32, + SNOR_F_HAS_16BIT_SR = 64, + SNOR_F_NO_READ_CR = 128, + SNOR_F_HAS_SR_TB_BIT6 = 256, + SNOR_F_HAS_4BIT_BP = 512, + SNOR_F_HAS_SR_BP3_BIT6 = 1024, + SNOR_F_IO_MODE_EN_VOLATILE = 2048, + SNOR_F_SOFT_RESET = 4096, + SNOR_F_SWP_IS_VOLATILE = 8192, + SNOR_F_RWW = 16384, + SNOR_F_ECC = 32768, + SNOR_F_NO_WP = 65536, }; -struct inet_listen_hashbucket { - spinlock_t lock; - struct hlist_nulls_head nulls_head; +struct swmii_regs { + u16 bmsr; + u16 lpa; + u16 lpagb; + u16 estat; }; -struct ack_sample { - u32 pkts_acked; - s32 rtt_us; - u32 in_flight; +enum { + SWMII_SPEED_10 = 0, + SWMII_SPEED_100 = 1, + SWMII_SPEED_1000 = 2, + SWMII_DUPLEX_HALF = 0, + SWMII_DUPLEX_FULL = 1, }; -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 fixed_phy_status { + int link; + int speed; + int duplex; + int pause; + int asym_pause; }; -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 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; }; -enum rt_scope_t { - RT_SCOPE_UNIVERSE = 0, - RT_SCOPE_SITE = 200, - RT_SCOPE_LINK = 253, - RT_SCOPE_HOST = 254, - RT_SCOPE_NOWHERE = 255, +struct ethtool_regs { + __u32 cmd; + __u32 version; + __u32 len; + __u8 data[0]; }; -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, +struct ethtool_wolinfo { + __u32 cmd; + __u32 supported; + __u32 wolopts; + __u8 sopass[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, +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 { - 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 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 skb_ext_id { - SKB_EXT_BRIDGE_NF = 0, - SKB_EXT_SEC_PATH = 1, - SKB_EXT_NUM = 2, +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 { - 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 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 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 ethtool_link_ext_substate_cable_issue { + ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1, + ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 2, }; -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, +enum ethtool_link_ext_substate_module { + ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1, }; -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]; +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 scm_creds { - u32 pid; - kuid_t uid; - kgid_t gid; +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 netlink_skb_parms { - struct scm_creds creds; - __u32 portid; - __u32 dst_group; - __u32 flags; - struct sock *sk; - bool nsid_is_set; - int nsid; +struct ethtool_link_ext_stats { + u64 link_down_events; }; -typedef u8 dscp_t; +struct ethtool_eeprom { + __u32 cmd; + __u32 magic; + __u32 offset; + __u32 len; + __u8 data[0]; +}; -struct rtgenmsg { - unsigned char rtgen_family; +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 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 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 flow_dissector_key_control { - u16 thoff; - u16 addr_type; - u32 flags; +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 flow_dissector_key_basic { - __be16 n_proto; - u8 ip_proto; - u8 padding; +struct kernel_ethtool_ringparam { + u32 rx_buf_len; + u8 tcp_data_split; + u8 tx_push; + u8 rx_push; + u32 cqe_size; + u32 tx_push_buf_len; + u32 tx_push_buf_max_len; }; -struct flow_dissector_key_tags { - u32 flow_label; +enum ethtool_mac_stats_src { + ETHTOOL_MAC_STATS_SRC_AGGREGATE = 0, + ETHTOOL_MAC_STATS_SRC_EMAC = 1, + ETHTOOL_MAC_STATS_SRC_PMAC = 2, }; -struct flow_dissector_key_vlan { +struct ethtool_pause_stats { + enum ethtool_mac_stats_src src; union { struct { - u16 vlan_id: 12; - u16 vlan_dei: 1; - u16 vlan_priority: 3; + u64 tx_pause_frames; + u64 rx_pause_frames; }; - __be16 vlan_tci; + struct { + u64 tx_pause_frames; + u64 rx_pause_frames; + } stats; }; - __be16 vlan_tpid; - __be16 vlan_eth_type; - u16 padding; }; -struct flow_dissector_key_keyid { - __be32 keyid; +struct ethtool_pauseparam { + __u32 cmd; + __u32 autoneg; + __u32 rx_pause; + __u32 tx_pause; }; -struct flow_dissector_key_ports { - union { - __be32 ports; - struct { - __be16 src; - __be16 dst; - }; - }; +struct ethtool_test { + __u32 cmd; + __u32 flags; + __u32 reserved; + __u32 len; + __u64 data[0]; }; -struct flow_dissector_key_icmp { - struct { - u8 type; - u8 code; - }; - u16 id; +struct ethtool_stats { + __u32 cmd; + __u32 n_stats; + __u64 data[0]; }; -struct flow_dissector_key_ipv4_addrs { - __be32 src; - __be32 dst; +struct ethtool_tcpip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be16 psrc; + __be16 pdst; + __u8 tos; }; -struct flow_dissector_key_ipv6_addrs { - struct in6_addr src; - struct in6_addr dst; +struct ethtool_ah_espip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 spi; + __u8 tos; }; -struct flow_dissector_key_tipc { - __be32 key; +struct ethtool_usrip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 l4_4_bytes; + __u8 tos; + __u8 ip_ver; + __u8 proto; }; -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 ethtool_tcpip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be16 psrc; + __be16 pdst; + __u8 tclass; }; -struct flow_keys { - struct flow_dissector_key_control control; - struct flow_dissector_key_basic basic; - struct flow_dissector_key_tags tags; - struct flow_dissector_key_vlan vlan; - struct flow_dissector_key_vlan cvlan; - struct flow_dissector_key_keyid keyid; - struct flow_dissector_key_ports ports; - struct flow_dissector_key_icmp icmp; - struct flow_dissector_key_addrs addrs; - long: 0; +struct ethtool_ah_espip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be32 spi; + __u8 tclass; }; -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 ethtool_usrip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be32 l4_4_bytes; + __u8 tclass; + __u8 l4_proto; }; -struct nl_info { - struct nlmsghdr *nlh; - struct net *nl_net; - u32 portid; - u8 skip_notify: 1; - u8 skip_notify_kernel: 1; +struct ethhdr { + unsigned char h_dest[6]; + unsigned char h_source[6]; + __be16 h_proto; }; -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; +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 rtnexthop { - unsigned short rtnh_len; - unsigned char rtnh_flags; - unsigned char rtnh_hops; - int rtnh_ifindex; +struct ethtool_flow_ext { + __u8 padding[2]; + unsigned char h_dest[6]; + __be16 vlan_etype; + __be16 vlan_tci; + __be32 data[2]; }; -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 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 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 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 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); +struct ethtool_flash { + __u32 cmd; + __u32 region; + char data[128]; }; -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; +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 netdev_notifier_info { - struct net_device *dev; - struct netlink_ext_ack *extack; +struct ethtool_dump { + __u32 cmd; + __u32 version; + __u32 flag; + __u32 len; + __u8 data[0]; }; -struct rtvia { - __kernel_sa_family_t rtvia_family; - __u8 rtvia_addr[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 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 ethtool_modinfo { + __u32 cmd; + __u32 type; + __u32 eeprom_len; + __u32 reserved[8]; }; -struct netdev_notifier_info_ext { - struct netdev_notifier_info info; - union { - u32 mtu; - } ext; +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 netdev_notifier_changeupper_info { - struct netdev_notifier_info info; - struct net_device *upper_dev; - bool master; - bool linking; - void *upper_info; +struct ethtool_tunable { + __u32 cmd; + __u32 id; + __u32 type_id; + __u32 len; + void *data[0]; }; -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, +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 rpc_cred_cache { - struct hlist_head *hashtable; - unsigned int hashbits; - spinlock_t lock; +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 svc_xprt_class; +struct ethtool_fec_stat { + u64 total; + u64 lanes[8]; +}; -struct svc_xprt_ops; +struct ethtool_fec_stats { + struct ethtool_fec_stat corrected_blocks; + struct ethtool_fec_stat uncorrectable_blocks; + struct ethtool_fec_stat corrected_bits; +}; -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 ethtool_fecparam { + __u32 cmd; + __u32 active_fec; + __u32 fec; + __u32 reserved; }; -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 ethtool_module_eeprom { + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; + u8 *data; }; -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_ctxt)(struct svc_xprt *, void *); - void (*xpo_detach)(struct svc_xprt *); - void (*xpo_free)(struct svc_xprt *); - void (*xpo_kill_temp_xprt)(struct svc_xprt *); - void (*xpo_handshake)(struct svc_xprt *); +struct ethtool_eth_phy_stats { + enum ethtool_mac_stats_src src; + union { + struct { + u64 SymbolErrorDuringCarrier; + }; + struct { + u64 SymbolErrorDuringCarrier; + } stats; + }; }; -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 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 packet_offload { - __be16 type; - u16 priority; - struct offload_callbacks callbacks; - struct list_head list; +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 udp_hslot; +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 udp_table { - struct udp_hslot *hash; - struct udp_hslot *hash2; - unsigned int mask; - unsigned int log; +struct ethtool_rmon_hist_range { + u16 low; + u16 high; }; -struct udp_hslot { - struct hlist_head head; - int count; - spinlock_t lock; - long: 64; +enum ethtool_module_power_mode_policy { + ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1, + ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2, }; -enum vlan_flags { - VLAN_FLAG_REORDER_HDR = 1, - VLAN_FLAG_GVRP = 2, - VLAN_FLAG_LOOSE_BINDING = 4, - VLAN_FLAG_MVRP = 8, - VLAN_FLAG_BRIDGE_BINDING = 16, +enum ethtool_module_power_mode { + ETHTOOL_MODULE_POWER_MODE_LOW = 1, + ETHTOOL_MODULE_POWER_MODE_HIGH = 2, }; -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, - SKB_DROP_REASON_SUBSYS_MASK = 4294901760, +struct ethtool_module_power_mode_params { + enum ethtool_module_power_mode_policy policy; + enum ethtool_module_power_mode mode; }; -enum vlan_protos { - VLAN_PROTO_8021Q = 0, - VLAN_PROTO_8021AD = 1, - VLAN_PROTO_NUM = 2, +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, }; -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 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 vlan_pcpu_stats { - u64_stats_t rx_packets; - u64_stats_t rx_bytes; - u64_stats_t rx_multicast; - u64_stats_t tx_packets; - u64_stats_t tx_bytes; - struct u64_stats_sync syncp; - u32 rx_errors; - u32 tx_dropped; +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 vlan_vid_info { - struct list_head list; - __be16 proto; - u16 vid; - int refcount; +struct ethtool_mm_cfg { + u32 verify_time; + bool verify_enabled; + bool tx_enabled; + bool pmac_enabled; + u32 tx_min_frag_size; }; -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 ethtool_mm_stats { + u64 MACMergeFrameAssErrorCount; + u64 MACMergeFrameSmdErrorCount; + u64 MACMergeFrameAssOkCount; + u64 MACMergeFragCountRx; + u64 MACMergeFragCountTx; + u64 MACMergeHoldCount; }; -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 mii_bus; -struct napi_gro_cb { - union { - struct { - void *frag0; - unsigned int frag0_len; - }; - struct { - struct sk_buff *last; - unsigned long age; - }; - }; - int data_offset; - u16 flush; - u16 flush_id; - u16 count; - u16 proto; - union { - struct { - u16 gro_remcsum_start; - u8 same_flow: 1; - u8 encap_mark: 1; - u8 csum_valid: 1; - u8 csum_cnt: 3; - u8 free: 2; - u8 is_ipv6: 1; - u8 is_fou: 1; - u8 is_atomic: 1; - u8 recursion_counter: 4; - u8 is_flist: 1; - }; - struct { - u16 gro_remcsum_start; - u8 same_flow: 1; - u8 encap_mark: 1; - u8 csum_valid: 1; - u8 csum_cnt: 3; - u8 free: 2; - u8 is_ipv6: 1; - u8 is_fou: 1; - u8 is_atomic: 1; - u8 recursion_counter: 4; - u8 is_flist: 1; - } zeroed; - }; - __wsum csum; +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 vlan_hdr { - __be16 h_vlan_TCI; - __be16 h_vlan_encapsulated_proto; +struct phy_c45_device_ids { + u32 devices_in_package; + u32 mmds_present; + u32 device_ids[32]; }; -struct vlan_priority_tci_mapping; - -struct vlan_dev_priv { - unsigned int nr_ingress_mappings; - u32 ingress_priority_map[8]; - unsigned int nr_egress_mappings; - struct vlan_priority_tci_mapping *egress_priority_map[16]; - __be16 vlan_proto; - u16 vlan_id; - u16 flags; - struct net_device *real_dev; - netdevice_tracker dev_tracker; - unsigned char real_dev_addr[6]; - struct proc_dir_entry *dent; - struct vlan_pcpu_stats __attribute__((btf_type_tag("percpu"))) *vlan_pcpu_stats; +enum phy_state { + PHY_DOWN = 0, + PHY_READY = 1, + PHY_HALTED = 2, + PHY_ERROR = 3, + PHY_UP = 4, + PHY_RUNNING = 5, + PHY_NOLINK = 6, + PHY_CABLETEST = 7, }; -struct vlan_priority_tci_mapping { - u32 priority; - u16 vlan_qos; - struct vlan_priority_tci_mapping *next; -}; +struct pse_control; -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 phy_driver; -typedef void (*btf_trace_initcall_level)(void *, const char *); +struct device_link; -typedef void (*btf_trace_initcall_start)(void *, initcall_t); +struct phy_package_shared; -typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int); +struct phylink; -typedef initcall_t initcall_entry_t; +struct mii_timestamper; -struct trace_event_raw_initcall_level { - struct trace_entry ent; - u32 __data_loc_level; - char __data[0]; +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 wol_enabled: 1; + unsigned int autoneg: 1; + unsigned int link: 1; + unsigned int autoneg_complete: 1; + unsigned int interrupts: 1; + unsigned int irq_suspended: 1; + unsigned int irq_rerun: 1; + int rate_matching; + enum phy_state state; + u32 dev_flags; + phy_interface_t interface; + 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; + struct list_head leds; + int irq; + void *priv; + struct phy_package_shared *shared; + struct sk_buff *skb; + void *ehdr; + struct nlattr *nest; + struct delayed_work state_queue; + struct mutex lock; + bool sfp_bus_attached; + struct sfp_bus *sfp_bus; + struct phylink *phylink; + struct net_device *attached_dev; + struct mii_timestamper *mii_ts; + struct pse_control *psec; + u8 mdix; + u8 mdix_ctrl; + int pma_extable; + unsigned int link_down_events; + void (*phy_link_change)(struct phy_device *, bool); + void (*adjust_link)(struct net_device *); }; -struct trace_event_raw_initcall_start { - struct trace_entry ent; - initcall_t func; - char __data[0]; +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 trace_event_raw_initcall_finish { - struct trace_entry ent; - initcall_t func; - int ret; - char __data[0]; +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 blacklist_entry { - struct list_head next; - char *buf; +struct phy_package_shared { + int addr; + refcount_t refcnt; + unsigned long flags; + size_t priv_size; + void *priv; }; -struct trace_event_data_offsets_initcall_level { - u32 level; +struct mdio_driver_common { + struct device_driver driver; + int flags; }; -struct trace_event_data_offsets_initcall_start {}; +enum led_brightness { + LED_OFF = 0, + LED_ON = 1, + LED_HALF = 127, + LED_FULL = 255, +}; -struct trace_event_data_offsets_initcall_finish {}; +struct phy_tdr_config; -struct async_domain { - struct list_head pending; - unsigned int registered: 1; -}; +struct phy_plca_cfg; -typedef void (*async_func_t)(void *, async_cookie_t); +struct phy_plca_status; -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 phy_driver { + struct mdio_driver_common mdiodrv; + u32 phy_id; + char *name; + u32 phy_id_mask; + const unsigned long * const features; + u32 flags; + const void *driver_data; + int (*soft_reset)(struct phy_device *); + int (*config_init)(struct phy_device *); + int (*probe)(struct phy_device *); + int (*get_features)(struct phy_device *); + int (*get_rate_matching)(struct phy_device *, phy_interface_t); + int (*suspend)(struct phy_device *); + int (*resume)(struct phy_device *); + int (*config_aneg)(struct phy_device *); + int (*aneg_done)(struct phy_device *); + int (*read_status)(struct phy_device *); + int (*config_intr)(struct phy_device *); + irqreturn_t (*handle_interrupt)(struct phy_device *); + void (*remove)(struct phy_device *); + int (*match_phy_device)(struct phy_device *); + int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *); + void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *); + void (*link_change_notify)(struct phy_device *); + int (*read_mmd)(struct phy_device *, int, u16); + int (*write_mmd)(struct phy_device *, int, u16, u16); + int (*read_page)(struct phy_device *); + int (*write_page)(struct phy_device *, int); + int (*module_info)(struct phy_device *, struct ethtool_modinfo *); + int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *); + int (*cable_test_start)(struct phy_device *); + int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *); + int (*cable_test_get_status)(struct phy_device *, bool *); + int (*get_sset_count)(struct phy_device *); + void (*get_strings)(struct phy_device *, u8 *); + void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); + int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); + int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); + int (*set_loopback)(struct phy_device *, bool); + int (*get_sqi)(struct phy_device *); + int (*get_sqi_max)(struct phy_device *); + int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); + int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *); + int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); + int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness); + int (*led_blink_set)(struct phy_device *, u8, unsigned long *, unsigned long *); + int (*led_hw_is_supported)(struct phy_device *, u8, unsigned long); + int (*led_hw_control_set)(struct phy_device *, u8, unsigned long); + int (*led_hw_control_get)(struct phy_device *, u8, unsigned long *); }; -struct pool_workqueue; - -struct worker_pool; +struct phy_tdr_config { + u32 first; + u32 last; + u32 step; + s8 pair; +}; -struct worker { - union { - struct list_head entry; - struct hlist_node hentry; - }; - struct work_struct *current_work; - work_func_t current_func; - struct pool_workqueue *current_pwq; - u64 current_at; - unsigned int current_color; - int sleeping; - work_func_t last_func; - struct list_head scheduled; - struct task_struct *task; - struct worker_pool *pool; - struct list_head node; - unsigned long last_active; - unsigned int flags; - int id; - char desc[24]; - struct workqueue_struct *rescue_wq; +struct phy_plca_cfg { + int version; + int enabled; + int node_id; + int node_cnt; + int to_tmr; + int burst_cnt; + int burst_tmr; }; -struct optimistic_spin_node { - struct optimistic_spin_node *next; - struct optimistic_spin_node *prev; - int locked; - int cpu; +struct phy_plca_status { + bool pst; }; -typedef int suspend_state_t; +enum device_link_state { + DL_STATE_NONE = -1, + DL_STATE_DORMANT = 0, + DL_STATE_AVAILABLE = 1, + DL_STATE_CONSUMER_PROBE = 2, + DL_STATE_ACTIVE = 3, + DL_STATE_SUPPLIER_UNBIND = 4, +}; -struct 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 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 platform_s2idle_ops { - int (*begin)(); - int (*prepare)(); - int (*prepare_late)(); - void (*check)(); - bool (*wake)(); - void (*restore_early)(); - void (*restore)(); - void (*end)(); +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 s2idle_states { - S2IDLE_STATE_NONE = 0, - S2IDLE_STATE_ENTER = 1, - S2IDLE_STATE_WAKE = 2, +struct fixed_mdio_bus { + struct mii_bus *mii_bus; + struct list_head phys; }; -enum { - TEST_NONE = 0, - TEST_CORE = 1, - TEST_CPUS = 2, - TEST_PLATFORM = 3, - TEST_DEVICES = 4, - TEST_FREEZER = 5, - __TEST_AFTER_LAST = 6, +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 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, +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, }; -typedef void (*btf_trace_module_load)(void *, struct module *); - -typedef void (*btf_trace_module_free)(void *, struct module *); +enum dev_prop_type { + DEV_PROP_U8 = 0, + DEV_PROP_U16 = 1, + DEV_PROP_U32 = 2, + DEV_PROP_U64 = 3, + DEV_PROP_STRING = 4, + DEV_PROP_REF = 5, +}; -typedef void (*btf_trace_module_get)(void *, struct module *, unsigned long); +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; +}; -typedef void (*btf_trace_module_put)(void *, struct module *, unsigned long); +struct gpio_device; -typedef void (*btf_trace_module_request)(void *, char *, bool, unsigned long); +struct gpio_desc { + struct gpio_device *gdev; + unsigned long flags; + const char *label; + const char *name; + unsigned int debounce_period_us; +}; -typedef struct { - seqcount_t seqcount; -} seqcount_latch_t; +struct property_entry; -struct latch_tree_root { - seqcount_latch_t seq; - struct rb_root tree[2]; +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 mod_tree_root { - struct latch_tree_root root; - unsigned long addr_min; - unsigned long addr_max; +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; + }; }; -enum mod_license { - NOT_GPL_ONLY = 0, - GPL_ONLY = 1, +enum ptp_pin_function { + PTP_PF_NONE = 0, + PTP_PF_EXTTS = 1, + PTP_PF_PEROUT = 2, + PTP_PF_PHYSYNC = 3, }; -struct symsearch { - const struct kernel_symbol *start; - const struct kernel_symbol *stop; - const s32 *crcs; - enum mod_license license; -}; +struct ptp_pin_desc; -enum mod_mem_type { - MOD_TEXT = 0, - MOD_DATA = 1, - MOD_RODATA = 2, - MOD_RO_AFTER_INIT = 3, - MOD_INIT_TEXT = 4, - MOD_INIT_DATA = 5, - MOD_INIT_RODATA = 6, - MOD_MEM_NUM_TYPES = 7, - MOD_INVALID = -1, -}; +struct system_device_crosststamp; -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, -}; +struct ptp_clock_request; -enum fail_dup_mod_reason { - FAIL_DUP_MOD_BECOMING = 0, - FAIL_DUP_MOD_LOAD = 1, +struct ptp_clock_info { + struct module *owner; + char name[32]; + s32 max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int n_pins; + int pps; + struct ptp_pin_desc *pin_config; + int (*adjfine)(struct ptp_clock_info *, long); + int (*adjphase)(struct ptp_clock_info *, s32); + s32 (*getmaxphase)(struct ptp_clock_info *); + int (*adjtime)(struct ptp_clock_info *, s64); + int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); + int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); + int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *); + int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); + int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); + long (*do_aux_work)(struct ptp_clock_info *); }; -enum lockdep_ok { - LOCKDEP_STILL_OK = 0, - LOCKDEP_NOW_UNRELIABLE = 1, +struct ptp_pin_desc { + char name[64]; + unsigned int index; + unsigned int func; + unsigned int chan; + unsigned int rsv[5]; }; -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 ptp_system_timestamp { + struct timespec64 pre_ts; + struct timespec64 post_ts; }; -struct trace_event_raw_module_load { - struct trace_entry ent; - unsigned int taints; - u32 __data_loc_name; - char __data[0]; +struct system_device_crosststamp { + ktime_t device; + ktime_t sys_realtime; + ktime_t sys_monoraw; }; -struct trace_event_raw_module_free { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; +struct ptp_extts_request { + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; }; -struct trace_event_raw_module_refcnt { - struct trace_entry ent; - unsigned long ip; - int refcnt; - u32 __data_loc_name; - char __data[0]; +struct ptp_clock_time { + __s64 sec; + __u32 nsec; + __u32 reserved; }; -struct trace_event_raw_module_request { - struct trace_entry ent; - unsigned long ip; - bool wait; - u32 __data_loc_name; - char __data[0]; +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 module_use { - struct list_head source_list; - struct list_head target_list; - struct module *source; - struct module *target; +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; + }; }; -struct mod_initfree { - struct llist_node node; - void *init_text; - void *init_data; - void *init_rodata; +enum ravb_reg { + CCC = 0, + DBAT = 4, + DLR = 8, + CSR = 12, + CDAR0 = 16, + CDAR1 = 20, + CDAR2 = 24, + CDAR3 = 28, + CDAR4 = 32, + CDAR5 = 36, + CDAR6 = 40, + CDAR7 = 44, + CDAR8 = 48, + CDAR9 = 52, + CDAR10 = 56, + CDAR11 = 60, + CDAR12 = 64, + CDAR13 = 68, + CDAR14 = 72, + CDAR15 = 76, + CDAR16 = 80, + CDAR17 = 84, + CDAR18 = 88, + CDAR19 = 92, + CDAR20 = 96, + CDAR21 = 100, + ESR = 136, + APSR = 140, + RCR = 144, + RQC0 = 148, + RQC1 = 152, + RQC2 = 156, + RQC3 = 160, + RQC4 = 164, + RPC = 176, + RTC = 180, + UFCW = 188, + UFCS = 192, + UFCV0 = 196, + UFCV1 = 200, + UFCV2 = 204, + UFCV3 = 208, + UFCV4 = 212, + UFCD0 = 224, + UFCD1 = 228, + UFCD2 = 232, + UFCD3 = 236, + UFCD4 = 240, + SFO = 252, + SFP0 = 256, + SFP1 = 260, + SFP2 = 264, + SFP3 = 268, + SFP4 = 272, + SFP5 = 276, + SFP6 = 280, + SFP7 = 284, + SFP8 = 288, + SFP9 = 292, + SFP10 = 296, + SFP11 = 300, + SFP12 = 304, + SFP13 = 308, + SFP14 = 312, + SFP15 = 316, + SFP16 = 320, + SFP17 = 324, + SFP18 = 328, + SFP19 = 332, + SFP20 = 336, + SFP21 = 340, + SFP22 = 344, + SFP23 = 348, + SFP24 = 352, + SFP25 = 356, + SFP26 = 360, + SFP27 = 364, + SFP28 = 368, + SFP29 = 372, + SFP30 = 376, + SFP31 = 380, + SFM0 = 448, + SFM1 = 452, + TGC = 768, + TCCR = 772, + TSR = 776, + TFA0 = 784, + TFA1 = 788, + TFA2 = 792, + CIVR0 = 800, + CIVR1 = 804, + CDVR0 = 808, + CDVR1 = 812, + CUL0 = 816, + CUL1 = 820, + CLL0 = 824, + CLL1 = 828, + DIC = 848, + DIS = 852, + EIC = 856, + EIS = 860, + RIC0 = 864, + RIS0 = 868, + RIC1 = 872, + RIS1 = 876, + RIC2 = 880, + RIS2 = 884, + TIC = 888, + TIS = 892, + ISS = 896, + CIE = 900, + GCCR = 912, + GMTT = 916, + GPTC = 920, + GTI = 924, + GTO0 = 928, + GTO1 = 932, + GTO2 = 936, + GIC = 940, + GIS = 944, + GCPT = 948, + GCT0 = 952, + GCT1 = 956, + GCT2 = 960, + GIE = 972, + GID = 976, + DIL = 1088, + RIE0 = 1120, + RID0 = 1124, + RIE2 = 1136, + RID2 = 1140, + TIE = 1144, + TID = 1148, + ECMR = 1280, + RFLR = 1288, + ECSR = 1296, + ECSIPR = 1304, + PIR = 1312, + PSR = 1320, + PIPR = 1324, + CXR31 = 1328, + CXR35 = 1344, + MPR = 1368, + PFTCR = 1372, + PFRCR = 1376, + GECMR = 1456, + MAHR = 1472, + MALR = 1480, + TROCR = 1792, + CXR41 = 1800, + CXR42 = 1808, + CEFCR = 1856, + FRECR = 1864, + TSFRCR = 1872, + TLFRCR = 1880, + RFCR = 1888, + MAFCR = 1912, + CSR0 = 2048, +}; + +enum GIS_BIT { + GIS_PTCF = 1, + GIS_PTMF = 4, + GIS_RESERVED = 64512, +}; + +enum ptp_clock_events { + PTP_CLOCK_ALARM = 0, + PTP_CLOCK_EXTTS = 1, + PTP_CLOCK_PPS = 2, + PTP_CLOCK_PPSUSR = 3, +}; + +enum GCCR_BIT { + GCCR_TCR = 3, + GCCR_TCR_NOREQ = 0, + GCCR_TCR_RESET = 1, + GCCR_TCR_CAPTURE = 3, + GCCR_LTO = 4, + GCCR_LTI = 8, + GCCR_LPTC = 16, + GCCR_LMTT = 32, + GCCR_TCSS = 768, + GCCR_TCSS_GPTP = 0, + GCCR_TCSS_ADJGPTP = 256, + GCCR_TCSS_AVTP = 512, +}; + +enum GTI_BIT { + GTI_TIV = 268435455, +}; + +enum GIC_BIT { + GIC_PTCE = 1, + GIC_PTME = 4, +}; + +enum GIE_BIT { + GIE_PTCS = 1, + GIE_PTOS = 2, + GIE_PTMS0 = 4, + GIE_PTMS1 = 8, + GIE_PTMS2 = 16, + GIE_PTMS3 = 32, + GIE_PTMS4 = 64, + GIE_PTMS5 = 128, + GIE_PTMS6 = 256, + GIE_PTMS7 = 512, + GIE_ATCS0 = 65536, + GIE_ATCS1 = 131072, + GIE_ATCS2 = 262144, + GIE_ATCS3 = 524288, + GIE_ATCS4 = 1048576, + GIE_ATCS5 = 2097152, + GIE_ATCS6 = 4194304, + GIE_ATCS7 = 8388608, + GIE_ATCS8 = 16777216, + GIE_ATCS9 = 33554432, + GIE_ATCS10 = 67108864, + GIE_ATCS11 = 134217728, + GIE_ATCS12 = 268435456, + GIE_ATCS13 = 536870912, + GIE_ATCS14 = 1073741824, + GIE_ATCS15 = 2147483648, +}; + +enum GID_BIT { + GID_PTCD = 1, + GID_PTOD = 2, + GID_PTMD0 = 4, + GID_PTMD1 = 8, + GID_PTMD2 = 16, + GID_PTMD3 = 32, + GID_PTMD4 = 64, + GID_PTMD5 = 128, + GID_PTMD6 = 256, + GID_PTMD7 = 512, + GID_ATCD0 = 65536, + GID_ATCD1 = 131072, + GID_ATCD2 = 262144, + GID_ATCD3 = 524288, + GID_ATCD4 = 1048576, + GID_ATCD5 = 2097152, + GID_ATCD6 = 4194304, + GID_ATCD7 = 8388608, + GID_ATCD8 = 16777216, + GID_ATCD9 = 33554432, + GID_ATCD10 = 67108864, + GID_ATCD11 = 134217728, + GID_ATCD12 = 268435456, + GID_ATCD13 = 536870912, + GID_ATCD14 = 1073741824, + GID_ATCD15 = 2147483648, +}; + +struct mdiobb_ops; + +struct mdiobb_ctrl { + const struct mdiobb_ops *ops; + unsigned int override_op_c22; + u8 op_c22_read; + u8 op_c22_write; }; -struct idempotent { - const void *cookie; - struct hlist_node entry; - struct completion complete; - int ret; -}; +struct ptp_clock; -struct trace_event_data_offsets_module_load { - u32 name; +struct ravb_ptp_perout { + u32 target; + u32 period; }; -struct trace_event_data_offsets_module_free { - u32 name; +struct ravb_ptp { + struct ptp_clock *clock; + struct ptp_clock_info info; + u32 default_addend; + u32 current_addend; + int extts[1]; + struct ravb_ptp_perout perout[1]; }; -struct trace_event_data_offsets_module_refcnt { - u32 name; +struct gro_list { + struct list_head list; + int count; }; -struct trace_event_data_offsets_module_request { - u32 name; +struct napi_struct { + struct list_head poll_list; + unsigned long state; + int weight; + int defer_hard_irqs_count; + unsigned long gro_bitmask; + int (*poll)(struct napi_struct *, int); + int list_owner; + struct net_device *dev; + struct gro_list gro_hash[8]; + struct sk_buff *skb; + struct list_head rx_list; + int rx_count; + unsigned int napi_id; + struct hrtimer timer; + struct task_struct *thread; + struct list_head dev_list; + struct hlist_node napi_hash_node; }; -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 ravb_desc; -typedef int (*cmp_func_t)(const void *, const void *); +struct ravb_rx_desc; -struct load_info { - const char *name; - struct module *mod; - Elf64_Ehdr *hdr; - unsigned long len; - Elf64_Shdr *sechdrs; - char *secstrings; - char *strtab; - unsigned long symoffs; - unsigned long stroffs; - unsigned long init_typeoffs; - unsigned long core_typeoffs; - bool sig_ok; - unsigned long mod_kallsyms_init_off; - struct { - unsigned int sym; - unsigned int str; - unsigned int mod; - unsigned int vers; - unsigned int info; - unsigned int pcpu; - } index; -}; +struct ravb_ex_rx_desc; -enum error_detector { - ERROR_DETECTOR_KFENCE = 0, - ERROR_DETECTOR_KASAN = 1, - ERROR_DETECTOR_WARN = 2, -}; +struct ravb_tx_desc; -typedef void (*btf_trace_error_report_end)(void *, enum error_detector, unsigned long); +struct ravb_hw_info; -struct trace_event_raw_error_report_template { - struct trace_entry ent; - enum error_detector error_detector; - unsigned long id; - char __data[0]; +struct ravb_private { + struct net_device *ndev; + struct platform_device *pdev; + void *addr; + struct clk *clk; + struct clk *refclk; + struct clk *gptp_clk; + struct mdiobb_ctrl mdiobb; + u32 num_rx_ring[2]; + u32 num_tx_ring[2]; + u32 desc_bat_size; + dma_addr_t desc_bat_dma; + struct ravb_desc *desc_bat; + dma_addr_t rx_desc_dma[2]; + dma_addr_t tx_desc_dma[2]; + struct ravb_rx_desc *gbeth_rx_ring; + struct ravb_ex_rx_desc *rx_ring[2]; + struct ravb_tx_desc *tx_ring[2]; + void *tx_align[2]; + struct sk_buff *rx_1st_skb; + struct sk_buff **rx_skb[2]; + struct sk_buff **tx_skb[2]; + u32 rx_over_errors; + u32 rx_fifo_errors; + struct net_device_stats stats[2]; + u32 tstamp_tx_ctrl; + u32 tstamp_rx_ctrl; + struct list_head ts_skb_list; + u32 ts_skb_tag; + struct ravb_ptp ptp; + spinlock_t lock; + u32 cur_rx[2]; + u32 dirty_rx[2]; + u32 cur_tx[2]; + u32 dirty_tx[2]; + struct napi_struct napi[2]; + struct work_struct work; + struct mii_bus *mii_bus; + int link; + phy_interface_t phy_interface; + int msg_enable; + int speed; + int emac_irq; + int erra_irq; + int mgmta_irq; + int rx_irqs[2]; + int tx_irqs[2]; + unsigned int no_avb_link: 1; + unsigned int avb_link_active_low: 1; + unsigned int wol_enabled: 1; + unsigned int rxcidm: 1; + unsigned int txcidm: 1; + unsigned int rgmii_override: 1; + unsigned int num_tx_desc; + int duplex; + const struct ravb_hw_info *info; + struct reset_control *rstc; }; -struct trace_event_data_offsets_error_report_template {}; - -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, +struct mdiobb_ops { + struct module *owner; + void (*set_mdc)(struct mdiobb_ctrl *, int); + void (*set_mdio_dir)(struct mdiobb_ctrl *, int); + void (*set_mdio_data)(struct mdiobb_ctrl *, int); + int (*get_mdio_data)(struct mdiobb_ctrl *); +}; + +struct ravb_desc { + __le16 ds; + u8 cc; + u8 die_dt; + __le32 dptr; +}; + +struct ravb_rx_desc { + __le16 ds_cc; + u8 msc; + u8 die_dt; + __le32 dptr; +}; + +struct ravb_ex_rx_desc { + __le16 ds_cc; + u8 msc; + u8 die_dt; + __le32 dptr; + __le32 ts_n; + __le32 ts_sl; + __le16 ts_sh; + __le16 res; +}; + +struct ravb_tx_desc { + __le16 ds_tagl; + u8 tagh_tsr; + u8 die_dt; + __le32 dptr; +}; + +struct ravb_hw_info { + void (*rx_ring_free)(struct net_device *, int); + void (*rx_ring_format)(struct net_device *, int); + void * (*alloc_rx_desc)(struct net_device *, int); + bool (*receive)(struct net_device *, int *, int); + void (*set_rate)(struct net_device *); + int (*set_feature)(struct net_device *, netdev_features_t); + int (*dmac_init)(struct net_device *); + void (*emac_init)(struct net_device *); + const char (*gstrings_stats)[32]; + size_t gstrings_size; + netdev_features_t net_hw_features; + netdev_features_t net_features; + int stats_len; + size_t max_rx_len; + u32 tccr_mask; + u32 rx_max_buf_size; + unsigned int aligned_tx: 1; + unsigned int internal_delay: 1; + unsigned int tx_counters: 1; + unsigned int carrier_counters: 1; + unsigned int multi_irqs: 1; + unsigned int irq_en_dis: 1; + unsigned int err_mgmt_irqs: 1; + unsigned int gptp: 1; + unsigned int ccc_gac: 1; + unsigned int gptp_ref_clk: 1; + unsigned int nc_queues: 1; + unsigned int magic_pkt: 1; + unsigned int half_duplex: 1; +}; + +struct pps_event_time { + struct timespec64 ts_real; +}; + +struct ptp_clock_event { + int type; + int index; + union { + u64 timestamp; + struct pps_event_time pps_times; + }; }; -enum { - BTF_KIND_UNKN = 0, - BTF_KIND_INT = 1, - BTF_KIND_PTR = 2, - BTF_KIND_ARRAY = 3, - BTF_KIND_STRUCT = 4, - BTF_KIND_UNION = 5, - BTF_KIND_ENUM = 6, - BTF_KIND_FWD = 7, - BTF_KIND_TYPEDEF = 8, - BTF_KIND_VOLATILE = 9, - BTF_KIND_CONST = 10, - BTF_KIND_RESTRICT = 11, - BTF_KIND_FUNC = 12, - BTF_KIND_FUNC_PROTO = 13, - BTF_KIND_VAR = 14, - BTF_KIND_DATASEC = 15, - BTF_KIND_FLOAT = 16, - BTF_KIND_DECL_TAG = 17, - BTF_KIND_TYPE_TAG = 18, - BTF_KIND_ENUM64 = 19, - NR_BTF_KINDS = 20, - BTF_KIND_MAX = 19, +enum 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 bpf_jit_poke_reason { - BPF_POKE_REASON_TAIL_CALL = 0, +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 bpf_text_poke_type { - BPF_MOD_CALL = 0, - BPF_MOD_JUMP = 1, +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 bpf_array_aux; +enum usb_interface_condition { + USB_INTERFACE_UNBOUND = 0, + USB_INTERFACE_BINDING = 1, + USB_INTERFACE_BOUND = 2, + USB_INTERFACE_UNBINDING = 3, +}; -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; +enum usb_wireless_status { + USB_WIRELESS_STATUS_NA = 0, + USB_WIRELESS_STATUS_DISCONNECTED = 1, + USB_WIRELESS_STATUS_CONNECTED = 2, }; -struct bpf_array_aux { - struct list_head poke_progs; - struct bpf_map *map; - struct mutex poke_mutex; - struct work_struct work; +enum usb3_link_state { + USB3_LPM_U0 = 0, + USB3_LPM_U1 = 1, + USB3_LPM_U2 = 2, + USB3_LPM_U3 = 3, }; -struct prog_poke_elem { - struct list_head list; - struct bpf_prog_aux *aux; +enum usb_dev_authorize_policy { + USB_DEVICE_AUTHORIZE_NONE = 0, + USB_DEVICE_AUTHORIZE_ALL = 1, + USB_DEVICE_AUTHORIZE_INTERNAL = 2, }; -struct bpf_event_entry { - struct perf_event *event; - struct file *perf_file; - struct file *map_file; - struct callback_head rcu; +struct usb_devmap { + unsigned long devicemap[2]; }; -struct bpf_iter_meta; +struct usb_device; -struct bpf_iter__bpf_map_elem { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; - union { - void *key; - }; - union { - void *value; - }; +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 bpf_iter_meta { +struct tasklet_struct { + struct tasklet_struct *next; + unsigned long state; + atomic_t count; + bool use_callback; union { - struct seq_file *seq; + void (*func)(unsigned long); + void (*callback)(struct tasklet_struct *); }; - u64 session_id; - u64 seq_num; -}; - -struct bpf_iter_seq_array_map_info { - struct bpf_map *map; - void *percpu_value_buf; - u32 index; + unsigned long data; }; -struct fprop_global { - struct percpu_counter events; - unsigned int period; - seqcount_t sequence; -}; +struct usb_host_endpoint; -struct wb_domain { +struct giveback_urb_bh { + bool running; + bool high_prio; 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 list_head head; + struct tasklet_struct bh; + struct usb_host_endpoint *completing_ep; }; -enum wb_stat_item { - WB_RECLAIMABLE = 0, - WB_WRITEBACK = 1, - WB_DIRTIED = 2, - WB_WRITTEN = 3, - NR_WB_STAT_ITEMS = 4, -}; +struct urb; -enum { - XA_CHECK_SCHED = 4096, -}; +struct hc_driver; -enum positive_aop_returns { - AOP_WRITEPAGE_ACTIVATE = 524288, - AOP_TRUNCATED_PAGE = 524289, -}; +struct usb_phy; -enum vmscan_throttle_state { - VMSCAN_THROTTLE_WRITEBACK = 0, - VMSCAN_THROTTLE_ISOLATED = 1, - VMSCAN_THROTTLE_NOPROGRESS = 2, - VMSCAN_THROTTLE_CONGESTED = 3, - NR_VMSCAN_THROTTLE = 4, +struct usb_phy_roothub; + +struct dma_pool; + +struct gen_pool; + +struct usb_hcd { + struct usb_bus self; + struct kref kref; + const char *product_desc; + int speed; + char irq_descr[24]; + struct timer_list rh_timer; + struct urb *status_urb; + struct work_struct wakeup_work; + struct work_struct died_work; + const struct hc_driver *driver; + struct usb_phy *usb_phy; + struct usb_phy_roothub *phy_roothub; + unsigned long flags; + enum usb_dev_authorize_policy dev_policy; + unsigned int rh_registered: 1; + unsigned int rh_pollable: 1; + unsigned int msix_enabled: 1; + unsigned int msi_enabled: 1; + unsigned int skip_phy_initialization: 1; + unsigned int uses_new_polling: 1; + unsigned int has_tt: 1; + unsigned int amd_resume_bug: 1; + unsigned int can_do_streams: 1; + unsigned int tpl_support: 1; + unsigned int cant_recv_wakeups: 1; + unsigned int irq; + void *regs; + resource_size_t rsrc_start; + resource_size_t rsrc_len; + unsigned int power_budget; + struct giveback_urb_bh high_prio_bh; + struct giveback_urb_bh low_prio_bh; + struct mutex *address0_mutex; + struct mutex *bandwidth_mutex; + struct usb_hcd *shared_hcd; + struct usb_hcd *primary_hcd; + struct dma_pool *pool[4]; + int state; + struct gen_pool *localmem_pool; + unsigned long hcd_priv[0]; }; -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, +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; }; -enum wb_state { - WB_registered = 0, - WB_writeback_running = 1, - WB_has_dirty_io = 2, - WB_start_all = 3, +struct usb_ssp_isoc_ep_comp_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wReseved; + __le32 dwBytesPerInterval; }; -struct compact_control; +struct ep_device; -struct capture_control { - struct compact_control *cc; - struct page *page; -}; +struct usb_host_endpoint { + struct usb_endpoint_descriptor desc; + struct usb_ss_ep_comp_descriptor ss_ep_comp; + struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp; + long: 0; + struct list_head urb_list; + void *hcpriv; + struct ep_device *ep_dev; + unsigned char *extra; + int extralen; + int enabled; + int streams; + long: 0; +} __attribute__((packed)); -struct 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 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 xa_node { - unsigned char shift; - unsigned char offset; - unsigned char count; - unsigned char nr_values; - struct xa_node __attribute__((btf_type_tag("rcu"))) *parent; - struct xarray *array; - union { - struct list_head private_list; - struct callback_head callback_head; - }; - void __attribute__((btf_type_tag("rcu"))) *slots[64]; - union { - unsigned long tags[3]; - unsigned long marks[3]; - }; +struct usb2_lpm_parameters { + unsigned int besl; + int timeout; }; -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 usb3_lpm_parameters { + unsigned int mel; + unsigned int pel; + unsigned int sel; + int timeout; }; -typedef void (*xa_update_node_t)(struct xa_node *); +struct usb_tt; -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 usb_host_bos; + +struct usb_host_config; + +struct usb_device { + int devnum; + char devpath[16]; + u32 route; + enum usb_device_state state; + enum usb_device_speed speed; + unsigned int rx_lanes; + unsigned int tx_lanes; + enum usb_ssp_rate ssp_rate; + struct usb_tt *tt; + int ttport; + unsigned int toggle[2]; + struct usb_device *parent; + struct usb_bus *bus; + struct usb_host_endpoint ep0; + struct device dev; + struct usb_device_descriptor descriptor; + struct usb_host_bos *bos; + struct usb_host_config *config; + struct usb_host_config *actconfig; + struct usb_host_endpoint *ep_in[16]; + struct usb_host_endpoint *ep_out[16]; + char **rawdescriptors; + unsigned short bus_mA; + u8 portnum; + u8 level; + u8 devaddr; + unsigned int can_submit: 1; + unsigned int persist_enabled: 1; + unsigned int reset_in_progress: 1; + unsigned int have_langid: 1; + unsigned int authorized: 1; + unsigned int authenticated: 1; + unsigned int lpm_capable: 1; + unsigned int lpm_devinit_allow: 1; + unsigned int usb2_hw_lpm_capable: 1; + unsigned int usb2_hw_lpm_besl_capable: 1; + unsigned int usb2_hw_lpm_enabled: 1; + unsigned int usb2_hw_lpm_allowed: 1; + unsigned int usb3_lpm_u1_enabled: 1; + unsigned int usb3_lpm_u2_enabled: 1; + int string_langid; + char *product; + char *manufacturer; + char *serial; + struct list_head filelist; + int maxchild; + u32 quirks; + atomic_t urbnum; + unsigned long active_duration; + unsigned long connect_time; + unsigned int do_remote_wakeup: 1; + unsigned int reset_resume: 1; + unsigned int port_is_suspended: 1; + int slot_id; + struct usb2_lpm_parameters l1_params; + struct usb3_lpm_parameters u1_params; + struct usb3_lpm_parameters u2_params; + unsigned int lpm_disable_count; + u16 hub_delay; + unsigned int use_generic_driver: 1; }; -struct wb_lock_cookie { - bool locked; - unsigned long flags; +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; }; -typedef struct pglist_data pg_data_t; +struct usb_bos_descriptor; -typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); +struct usb_ext_cap_descriptor; -typedef struct { - unsigned long val; -} swp_entry_t; +struct usb_ss_cap_descriptor; -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 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 stat { - unsigned long st_dev; - unsigned long st_ino; - unsigned int st_mode; - unsigned int st_nlink; - unsigned int st_uid; - unsigned int st_gid; - unsigned long st_rdev; - unsigned long __pad1; - long st_size; - int st_blksize; - int __pad2; - long st_blocks; - long st_atime; - unsigned long st_atime_nsec; - long st_mtime; - unsigned long st_mtime_nsec; - long st_ctime; - unsigned long st_ctime_nsec; - unsigned int __unused4; - unsigned int __unused5; -}; +struct usb_bos_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wTotalLength; + __u8 bNumDeviceCaps; +} __attribute__((packed)); -struct statx_timestamp { - __s64 tv_sec; - __u32 tv_nsec; - __s32 __reserved; -}; +struct usb_ext_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __le32 bmAttributes; +} __attribute__((packed)); -struct statx { - __u32 stx_mask; - __u32 stx_blksize; - __u64 stx_attributes; - __u32 stx_nlink; - __u32 stx_uid; - __u32 stx_gid; - __u16 stx_mode; - __u16 __spare0[1]; - __u64 stx_ino; - __u64 stx_size; - __u64 stx_blocks; - __u64 stx_attributes_mask; - struct statx_timestamp stx_atime; - struct statx_timestamp stx_btime; - struct statx_timestamp stx_ctime; - struct statx_timestamp stx_mtime; - __u32 stx_rdev_major; - __u32 stx_rdev_minor; - __u32 stx_dev_major; - __u32 stx_dev_minor; - __u64 stx_mnt_id; - __u32 stx_dio_mem_align; - __u32 stx_dio_offset_align; - __u64 __spare3[12]; +struct usb_ss_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bmAttributes; + __le16 wSpeedSupported; + __u8 bFunctionalitySupport; + __u8 bU1devExitLat; + __le16 bU2DevExitLat; }; -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: 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; - }; - struct { - struct mutex ring_lock; - wait_queue_head_t wait; - long: 64; - long: 64; - long: 64; - }; - struct { - unsigned int tail; - unsigned int completed_events; - spinlock_t completion_lock; - long: 64; - long: 64; - long: 64; - long: 64; +struct usb_ssp_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __le32 bmAttributes; + __le16 wFunctionalitySupport; + __le16 wReserved; + union { + __le32 legacy_padding; + struct { + struct {} __empty_bmSublinkSpeedAttr; + __le32 bmSublinkSpeedAttr[0]; + }; }; - struct page *internal_pages[8]; - struct file *aio_ring_file; - unsigned int id; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; }; -struct kioctx_cpu { - unsigned int reqs_available; +struct usb_ss_container_id_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __u8 ContainerID[16]; }; -struct ctx_rq_wait { - struct completion comp; - atomic_t count; +struct usb_ptm_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; }; -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 usb_config_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wTotalLength; + __u8 bNumInterfaces; + __u8 bConfigurationValue; + __u8 iConfiguration; + __u8 bmAttributes; + __u8 bMaxPower; +} __attribute__((packed)); -enum { - SB_UNFROZEN = 0, - SB_FREEZE_WRITE = 1, - SB_FREEZE_PAGEFAULT = 2, - SB_FREEZE_FS = 3, - SB_FREEZE_COMPLETE = 4, +struct usb_interface_assoc_descriptor; + +struct usb_interface; + +struct usb_interface_cache; + +struct usb_host_config { + struct usb_config_descriptor desc; + char *string; + struct usb_interface_assoc_descriptor *intf_assoc[16]; + struct usb_interface *interface[32]; + struct usb_interface_cache *intf_cache[32]; + unsigned char *extra; + int extralen; }; -struct fsync_iocb { - struct file *file; - struct work_struct work; - bool datasync; - struct cred *creds; +struct usb_interface_assoc_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bFirstInterface; + __u8 bInterfaceCount; + __u8 bFunctionClass; + __u8 bFunctionSubClass; + __u8 bFunctionProtocol; + __u8 iFunction; }; -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; +struct usb_host_interface; + +struct usb_interface { + struct usb_host_interface *altsetting; + struct usb_host_interface *cur_altsetting; + unsigned int num_altsetting; + struct usb_interface_assoc_descriptor *intf_assoc; + int minor; + enum usb_interface_condition condition; + unsigned int sysfs_files_created: 1; + unsigned int ep_devs_created: 1; + unsigned int unregistering: 1; + unsigned int needs_remote_wakeup: 1; + unsigned int needs_altsetting0: 1; + unsigned int needs_binding: 1; + unsigned int resetting_device: 1; + unsigned int authorized: 1; + enum usb_wireless_status wireless_status; + struct work_struct wireless_status_work; + struct device dev; + struct device *usb_dev; + struct work_struct reset_ws; }; -typedef int kiocb_cancel_fn(struct kiocb *); +struct usb_interface_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bInterfaceNumber; + __u8 bAlternateSetting; + __u8 bNumEndpoints; + __u8 bInterfaceClass; + __u8 bInterfaceSubClass; + __u8 bInterfaceProtocol; + __u8 iInterface; +}; -struct io_event { - __u64 data; - __u64 obj; - __s64 res; - __s64 res2; +struct usb_host_interface { + struct usb_interface_descriptor desc; + int extralen; + unsigned char *extra; + struct usb_host_endpoint *endpoint; + char *string; }; -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; +struct usb_interface_cache { + unsigned int num_altsetting; + struct kref ref; + struct usb_host_interface altsetting[0]; }; -typedef __kernel_ulong_t aio_context_t; +typedef void (*usb_complete_t)(struct urb *); -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 usb_iso_packet_descriptor { + unsigned int offset; + unsigned int length; + unsigned int actual_length; + int status; }; -typedef u32 compat_aio_context_t; +struct usb_anchor; -struct __aio_sigset { - const sigset_t __attribute__((btf_type_tag("user"))) *sigmask; - size_t sigsetsize; +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 __compat_aio_sigset { - compat_uptr_t sigmask; - compat_size_t sigsetsize; +struct usb_anchor { + struct list_head urb_list; + wait_queue_head_t wait; + spinlock_t lock; + atomic_t suspend_wakeups; + unsigned int poisoned: 1; }; -struct aio_poll_table { - struct poll_table_struct pt; - struct aio_kiocb *iocb; - bool queued; - int error; +struct hc_driver { + const char *description; + const char *product_desc; + size_t hcd_priv_size; + irqreturn_t (*irq)(struct usb_hcd *); + int flags; + int (*reset)(struct usb_hcd *); + int (*start)(struct usb_hcd *); + int (*pci_suspend)(struct usb_hcd *, bool); + int (*pci_resume)(struct usb_hcd *, pm_message_t); + int (*pci_poweroff_late)(struct usb_hcd *, bool); + void (*stop)(struct usb_hcd *); + void (*shutdown)(struct usb_hcd *); + int (*get_frame_number)(struct usb_hcd *); + int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t); + int (*urb_dequeue)(struct usb_hcd *, struct urb *, int); + int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t); + void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *); + void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *); + void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *); + int (*hub_status_data)(struct usb_hcd *, char *); + int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); + int (*bus_suspend)(struct usb_hcd *); + int (*bus_resume)(struct usb_hcd *); + int (*start_port_reset)(struct usb_hcd *, unsigned int); + unsigned long (*get_resuming_ports)(struct usb_hcd *); + void (*relinquish_port)(struct usb_hcd *, int); + int (*port_handed_over)(struct usb_hcd *, int); + void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *); + int (*alloc_dev)(struct usb_hcd *, struct usb_device *); + void (*free_dev)(struct usb_hcd *, struct usb_device *); + int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t); + int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t); + int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); + void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); + int (*address_device)(struct usb_hcd *, struct usb_device *); + int (*enable_device)(struct usb_hcd *, struct usb_device *); + int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t); + int (*reset_device)(struct usb_hcd *, struct usb_device *); + int (*update_device)(struct usb_hcd *, struct usb_device *); + int (*set_usb2_hw_lpm)(struct usb_hcd *, struct usb_device *, int); + int (*enable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); + int (*disable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); + int (*find_raw_port_number)(struct usb_hcd *, int); + int (*port_power)(struct usb_hcd *, int, bool); + int (*submit_single_step_set_feature)(struct usb_hcd *, struct urb *, int); }; -typedef u32 compat_sigset_word; +typedef unsigned long (*genpool_algo_t)(unsigned long *, unsigned long, unsigned long, unsigned int, void *, struct gen_pool *, unsigned long); -typedef struct { - compat_sigset_word sig[2]; -} compat_sigset_t; +struct gen_pool { + spinlock_t lock; + struct list_head chunks; + int min_alloc_order; + genpool_algo_t algo; + void *data; + const char *name; +}; -struct pseudo_fs_context { - const struct super_operations *ops; - const struct xattr_handler **xattr; - const struct dentry_operations *dops; - unsigned long magic; +struct class_info { + int class; + char *class_name; }; -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]; +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, }; -typedef __kernel_rwf_t rwf_t; +struct s3_save { + u32 command; + u32 dev_nt; + u64 dcbaa_ptr; + u32 config_reg; +}; -struct hrtimer_sleeper { - struct hrtimer timer; - struct task_struct *task; +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 iomap_iter; +struct xhci_port; -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 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 iomap_folio_ops; +struct xhci_cap_regs; -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 xhci_op_regs; -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 xhci_run_regs; -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 xhci_doorbell_array; -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, -}; +struct xhci_device_context_array; -enum { - EXT4_STATE_NEW = 0, - EXT4_STATE_XATTR = 1, - EXT4_STATE_NO_EXPAND = 2, - EXT4_STATE_DA_ALLOC_CLOSE = 3, - EXT4_STATE_EXT_MIGRATE = 4, - EXT4_STATE_NEWENTRY = 5, - EXT4_STATE_MAY_INLINE_DATA = 6, - EXT4_STATE_EXT_PRECACHED = 7, - EXT4_STATE_LUSTRE_EA_INODE = 8, - EXT4_STATE_VERITY_IN_PROGRESS = 9, - EXT4_STATE_FC_COMMITTING = 10, - EXT4_STATE_ORPHAN_FILE = 11, -}; +struct xhci_interrupter; -enum { - EXT4_MF_MNTDIR_SAMPLED = 0, - EXT4_MF_FS_ABORTED = 1, - EXT4_MF_FC_INELIGIBLE = 2, -}; +struct xhci_ring; -enum ext4_journal_trigger_type { - EXT4_JTR_ORPHAN_FILE = 0, - EXT4_JTR_NONE = 1, -}; +struct xhci_command; -struct iomap_ops { - int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap *, struct iomap *); - int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap *); -}; +struct xhci_scratchpad; -struct ext4_map_blocks { - ext4_fsblk_t m_pblk; - ext4_lblk_t m_lblk; - unsigned int m_len; - unsigned int m_flags; -}; +struct xhci_virt_device; -struct fname; +struct xhci_root_port_bw_info; -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 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]; }; -enum { - HUGETLB_SHMFS_INODE = 1, - HUGETLB_ANONHUGE_INODE = 2, +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; }; -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, +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]; }; -enum hugetlbfs_size_type { - NO_SIZE = 0, - SIZE_STD = 1, - SIZE_PERCENT = 2, +struct xhci_intr_reg { + __le32 irq_pending; + __le32 irq_control; + __le32 erst_size; + __le32 rsvd; + __le64 erst_base; + __le64 erst_dequeue; }; -enum hugetlb_param { - Opt_gid = 0, - Opt_min_size = 1, - Opt_mode___2 = 2, - Opt_nr_inodes = 3, - Opt_pagesize = 4, - Opt_size = 5, - Opt_uid = 6, +struct xhci_run_regs { + __le32 microframe_index; + __le32 rsvd[7]; + struct xhci_intr_reg ir_set[128]; }; -struct shared_policy {}; +struct xhci_doorbell_array { + __le32 doorbell[256]; +}; -struct hugetlbfs_inode_info { - struct shared_policy policy; - struct inode vfs_inode; - unsigned int seals; +struct xhci_device_context_array { + __le64 dev_context_ptrs[256]; + dma_addr_t dma; }; -typedef unsigned int zap_flags_t; +struct xhci_erst_entry; -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 xhci_erst { + struct xhci_erst_entry *entries; + unsigned int num_entries; + dma_addr_t erst_dma_addr; + unsigned int erst_size; }; -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]; +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; }; -struct hugepage_subpool; +struct xhci_segment; -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; -}; +union xhci_trb; -struct hugepage_subpool { - spinlock_t lock; - long count; - long max_hpages; - long used_hpages; - struct hstate *hstate; - long min_hpages; - long rsv_hpages; +struct xhci_ring { + struct xhci_segment *first_seg; + struct xhci_segment *last_seg; + union xhci_trb *enqueue; + struct xhci_segment *enq_seg; + union xhci_trb *dequeue; + struct xhci_segment *deq_seg; + struct list_head td_list; + u32 cycle_state; + unsigned int stream_id; + unsigned int num_segs; + unsigned int num_trbs_free; + unsigned int bounce_buf_len; + enum xhci_ring_type type; + bool last_td_was_short; + struct xarray *trb_address_map; }; -struct vm_unmapped_area_info { - unsigned long flags; - unsigned long length; - unsigned long low_limit; - unsigned long high_limit; - unsigned long align_mask; - unsigned long align_offset; +struct xhci_segment { + union xhci_trb *trbs; + struct xhci_segment *next; + unsigned int num; + dma_addr_t dma; + dma_addr_t bounce_dma; + void *bounce_buf; + unsigned int bounce_offs; + unsigned int bounce_len; }; -struct hugetlb_vma_lock { - struct kref refs; - struct rw_semaphore rw_sema; - struct vm_area_struct *vma; +struct xhci_link_trb { + __le64 segment_ptr; + __le32 intr_target; + __le32 control; }; -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 xhci_transfer_event { + __le64 buffer; + __le32 transfer_len; + __le32 flags; }; -enum stripetype4 { - STRIPE_SPARSE = 1, - STRIPE_DENSE = 2, +struct xhci_event_cmd { + __le64 cmd_trb; + __le32 status; + __le32 flags; }; -enum { - NFS_DEVICEID_INVALID = 0, - NFS_DEVICEID_UNAVAILABLE = 1, - NFS_DEVICEID_NOCACHE = 2, +struct xhci_generic_trb { + __le32 field[4]; }; -struct nfs4_file_layout_dsaddr; - -struct nfs4_filelayout_segment { - struct pnfs_layout_segment generic_hdr; - u32 stripe_type; - u32 commit_through_mds; - u32 stripe_unit; - u32 first_stripe_index; - u64 pattern_offset; - struct nfs4_deviceid deviceid; - struct nfs4_file_layout_dsaddr *dsaddr; - unsigned int num_fh; - struct nfs_fh **fh_array; +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 nfs4_file_layout_dsaddr { - struct nfs4_deviceid_node id_node; - u32 stripe_count; - u8 *stripe_indices; - u32 ds_num; - struct nfs4_pnfs_ds *ds_list[0]; +struct xhci_erst_entry { + __le64 seg_addr; + __le32 seg_size; + __le32 rsvd; }; -enum autofs_notify { - NFY_NONE = 0, - NFY_MOUNT = 1, - NFY_EXPIRE = 2, +struct xhci_container_ctx; + +struct xhci_command { + struct xhci_container_ctx *in_ctx; + u32 status; + int slot_id; + struct completion *completion; + union xhci_trb *command_trb; + struct list_head cmd_list; }; -enum dentry_d_lock_class { - DENTRY_D_LOCK_NORMAL = 0, - DENTRY_D_LOCK_NESTED = 1, +struct xhci_container_ctx { + unsigned int type; + int size; + u8 *bytes; + dma_addr_t dma; }; -struct autofs_wait_queue; +struct xhci_scratchpad { + u64 *sp_array; + dma_addr_t sp_dma; + void **sp_buffers; +}; -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; +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 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 xhci_stream_info; -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 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 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 xhci_interval_bw_table; -struct autofs_packet_hdr { - int proto_version; - int type; +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 autofs_packet_expire { - struct autofs_packet_hdr hdr; - int len; - char name[256]; +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 key_user { - struct rb_node node; - struct mutex cons_lock; - spinlock_t lock; - refcount_t usage; - atomic_t nkeys; - atomic_t nikeys; - kuid_t uid; - int qnkeys; - int qnbytes; +struct xhci_stream_ctx { + __le64 stream_ring; + __le32 reserved[2]; }; -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 xhci_interval_bw { + unsigned int num_packets; + struct list_head endpoints; + unsigned int overhead[3]; }; -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 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; }; -enum kernel_pkey_operation { - kernel_pkey_encrypt = 0, - kernel_pkey_decrypt = 1, - kernel_pkey_sign = 2, - kernel_pkey_verify = 3, +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 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 xhci_root_port_bw_info { + struct list_head tts; + unsigned int num_active_tts; + struct xhci_interval_bw_table bw_table; }; -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 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; }; -enum key_lookup_flag { - KEY_LOOKUP_CREATE = 1, - KEY_LOOKUP_PARTIAL = 2, - KEY_LOOKUP_ALL = 3, +struct xhci_port_cap { + u32 *psi; + u8 psi_count; + u8 psi_uid_count; + u8 maj_rev; + u8 min_rev; }; -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, +struct software_node { + const char *name; + const struct software_node *parent; + const struct property_entry *properties; }; -enum key_state { - KEY_IS_UNINSTANTIATED = 0, - KEY_IS_POSITIVE = 1, +struct serio_device_id { + __u8 type; + __u8 extra; + __u8 id; + __u8 proto; }; -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 serio_driver; -struct keyctl_dh_params { - union { - __s32 private; - __s32 priv; - }; - __s32 prime; - __s32 base; +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 keyctl_kdf_params { - char __attribute__((btf_type_tag("user"))) *hashname; - char __attribute__((btf_type_tag("user"))) *otherinfo; - __u32 otherinfolen; - __u32 __spare[8]; +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 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 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 keyctl_pkey_params { - __s32 key_id; - __u32 in_len; - union { - __u32 out_len; - __u32 in2_len; - }; - __u32 __spare[7]; +enum nvmem_type { + NVMEM_TYPE_UNKNOWN = 0, + NVMEM_TYPE_EEPROM = 1, + NVMEM_TYPE_OTP = 2, + NVMEM_TYPE_BATTERY_BACKED = 3, + NVMEM_TYPE_FRAM = 4, }; -struct __key_reference_with_attributes; +typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t); -typedef struct __key_reference_with_attributes *key_ref_t; +typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t); -struct request_key_auth { - struct callback_head rcu; - struct key *target_key; - struct key *dest_keyring; - const struct cred *cred; - void *callout_info; - size_t callout_len; - pid_t pid; - char op[8]; -}; +struct nvmem_cell_info; -struct rhash_lock_head {}; +struct nvmem_keepout; -enum audit_mode { - AUDIT_NORMAL = 0, - AUDIT_QUIET_DENIED = 1, - AUDIT_QUIET = 2, - AUDIT_NOQUIET = 3, - AUDIT_ALL = 4, -}; +struct nvmem_layout; -enum path_flags { - PATH_IS_DIR = 1, - PATH_CONNECT_PATH = 4, - PATH_CHROOT_REL = 8, - PATH_CHROOT_NSCONNECT = 16, - PATH_DELEGATE_DELETED = 65536, - PATH_MEDIATE_DELETED = 131072, +struct nvmem_config { + struct device *dev; + const char *name; + int id; + struct module *owner; + const struct nvmem_cell_info *cells; + int ncells; + bool add_legacy_fixed_of_cells; + const struct nvmem_keepout *keepout; + unsigned int nkeepout; + enum nvmem_type type; + bool read_only; + bool root_only; + bool ignore_wp; + struct nvmem_layout *layout; + struct device_node *of_node; + nvmem_reg_read_t reg_read; + nvmem_reg_write_t reg_write; + int size; + int word_size; + int stride; + void *priv; + bool compat; + struct device *base_dev; }; -enum profile_mode { - APPARMOR_ENFORCE = 0, - APPARMOR_COMPLAIN = 1, - APPARMOR_KILL = 2, - APPARMOR_UNCONFINED = 3, - APPARMOR_USER = 4, +typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); + +struct nvmem_cell_info { + const char *name; + unsigned int offset; + size_t raw_len; + unsigned int bytes; + unsigned int bit_offset; + unsigned int nbits; + struct device_node *np; + nvmem_cell_post_process_t read_post_process; + void *priv; }; -enum label_flags { - FLAG_HAT = 1, - FLAG_UNCONFINED = 2, - FLAG_NULL = 4, - FLAG_IX_ON_NAME_ERROR = 8, - FLAG_IMMUTIBLE = 16, - FLAG_USER_DEFINED = 32, - FLAG_NO_LIST_REF = 64, - FLAG_NS_COUNT = 128, - FLAG_IN_TREE = 256, - FLAG_PROFILE = 512, - FLAG_EXPLICIT = 1024, - FLAG_STALE = 2048, - FLAG_RENAMED = 4096, - FLAG_REVOKED = 8192, - FLAG_DEBUG1 = 16384, - FLAG_DEBUG2 = 32768, +struct nvmem_keepout { + unsigned int start; + unsigned int end; + unsigned char value; }; -enum audit_type { - AUDIT_APPARMOR_AUDIT = 0, - AUDIT_APPARMOR_ALLOWED = 1, - AUDIT_APPARMOR_DENIED = 2, - AUDIT_APPARMOR_HINT = 3, - AUDIT_APPARMOR_STATUS = 4, - AUDIT_APPARMOR_ERROR = 5, - AUDIT_APPARMOR_KILL = 6, - AUDIT_APPARMOR_AUTO = 7, +struct nvmem_layout { + const char *name; + const struct of_device_id *of_match_table; + int (*add_cells)(struct device *, struct nvmem_device *, struct nvmem_layout *); + void (*fixup_cell_info)(struct nvmem_device *, struct nvmem_layout *, struct nvmem_cell_info *); + struct module *owner; + struct list_head node; }; -struct aa_str_table { - int size; - char **table; +struct rtc_device; + +struct rtc_timer { + struct timerqueue_node node; + ktime_t period; + void (*func)(struct rtc_device *); + struct rtc_device *rtc; + int enabled; }; -struct aa_dfa; +typedef __u64 timeu64_t; -struct aa_perms; +struct rtc_class_ops; -struct aa_policydb { - struct aa_dfa *dfa; - struct { - struct aa_perms *perms; - u32 size; - }; - struct aa_str_table trans; - unsigned int start[33]; +struct rtc_device { + struct device dev; + struct module *owner; + int id; + const struct rtc_class_ops *ops; + struct mutex ops_lock; + struct cdev char_dev; + unsigned long flags; + unsigned long irq_data; + spinlock_t irq_lock; + wait_queue_head_t irq_queue; + struct fasync_struct *async_queue; + int irq_freq; + int max_user_freq; + struct timerqueue_head timerqueue; + struct rtc_timer aie_timer; + struct rtc_timer uie_rtctimer; + struct hrtimer pie_timer; + int pie_enabled; + struct work_struct irqwork; + unsigned long set_offset_nsec; + unsigned long features[1]; + time64_t range_min; + timeu64_t range_max; + timeu64_t alarm_offset_max; + time64_t start_secs; + time64_t offset_secs; + bool set_start_time; }; -struct aa_caps { - kernel_cap_t allow; - kernel_cap_t audit; - kernel_cap_t denied; - kernel_cap_t quiet; - kernel_cap_t kill; - kernel_cap_t extended; -}; +struct rtc_time; -struct aa_rlimit { - unsigned int mask; - struct rlimit limits[16]; -}; +struct rtc_wkalrm; -struct aa_secmark; +struct rtc_param; -struct aa_ruleset { - struct list_head list; - int size; - struct aa_policydb policy; - struct aa_policydb file; - struct aa_caps caps; - struct aa_rlimit rlimits; - int secmark_count; - struct aa_secmark *secmark; +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 table_header; +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 aa_dfa { - struct kref count; - u16 flags; - u32 max_oob; - struct table_header *tables[8]; +struct rtc_wkalrm { + unsigned char enabled; + unsigned char pending; + struct rtc_time time; }; -struct table_header { - u16 td_id; - u16 td_flags; - u32 td_hilen; - u32 td_lolen; - char td_data[0]; +struct rtc_param { + __u64 param; + union { + __u64 uvalue; + __s64 svalue; + __u64 ptr; + }; + __u32 index; + __u32 __pad; }; -struct aa_perms { - u32 allow; - u32 deny; - u32 subtree; - u32 cond; - u32 kill; - u32 complain; - u32 prompt; - u32 audit; - u32 quiet; - u32 hide; - u32 xindex; - u32 tag; - u32 label; +enum pm_qos_type { + PM_QOS_UNITIALIZED = 0, + PM_QOS_MAX = 1, + PM_QOS_MIN = 2, }; -struct aa_secmark { - u8 audit; - u8 deny; - u32 secid; - char *label; +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 aa_proxy; +enum freq_qos_req_type { + FREQ_QOS_MIN = 1, + FREQ_QOS_MAX = 2, +}; -struct aa_profile; +enum cpufreq_table_sorting { + CPUFREQ_TABLE_UNSORTED = 0, + CPUFREQ_TABLE_SORTED_ASCENDING = 1, + CPUFREQ_TABLE_SORTED_DESCENDING = 2, +}; -struct aa_label { - struct kref count; - struct rb_node node; - struct callback_head rcu; - struct aa_proxy *proxy; - char *hname; - long flags; - u32 secid; - int size; - struct aa_profile *vec[0]; +struct cpufreq_cpuinfo { + unsigned int max_freq; + unsigned int min_freq; + unsigned int transition_latency; }; -struct aa_proxy { - struct kref count; - struct aa_label __attribute__((btf_type_tag("rcu"))) *label; +struct plist_head { + struct list_head node_list; }; -struct aa_policy { - const char *name; - char *hname; - struct list_head list; - struct list_head profiles; +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 aa_attachment { - const char *xmatch_str; - struct aa_policydb xmatch; - unsigned int xmatch_len; - int xattr_count; - char **xattrs; +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 aa_ns; +struct cpufreq_governor; -struct aa_loaddata; +struct freq_qos_request; -struct aa_profile { - struct aa_policy base; - struct aa_profile __attribute__((btf_type_tag("rcu"))) *parent; - struct aa_ns *ns; - const char *rename; - enum audit_mode audit; - long mode; - u32 path_flags; - const char *disconnected; - struct aa_attachment attach; - struct list_head rules; - struct aa_loaddata *rawdata; - unsigned char *hash; - char *dirname; - struct dentry *dents[9]; - struct rhashtable *data; - struct aa_label label; -}; +struct cpufreq_frequency_table; -struct aa_ns_acct { - int max_size; - int max_count; - int size; - int count; -}; +struct cpufreq_stats; -struct aa_labelset { - rwlock_t lock; - struct rb_root root; -}; +struct thermal_cooling_device; -struct aa_ns { - struct aa_policy base; - struct aa_ns *parent; - struct mutex lock; - struct aa_ns_acct acct; - struct aa_profile *unconfined; - struct list_head sub_ns; - atomic_t uniq_null; - long uniq_id; - int level; - long revision; - wait_queue_head_t wait; - struct aa_labelset labels; - struct list_head rawdata_list; - struct dentry *dents[13]; +struct cpufreq_policy { + cpumask_var_t cpus; + cpumask_var_t related_cpus; + cpumask_var_t real_cpus; + unsigned int shared_type; + unsigned int cpu; + struct clk *clk; + struct cpufreq_cpuinfo cpuinfo; + unsigned int min; + unsigned int max; + unsigned int cur; + unsigned int suspend_freq; + unsigned int policy; + unsigned int last_policy; + struct cpufreq_governor *governor; + void *governor_data; + char last_governor[16]; + struct work_struct update; + struct freq_constraints constraints; + struct freq_qos_request *min_freq_req; + struct freq_qos_request *max_freq_req; + struct cpufreq_frequency_table *freq_table; + enum cpufreq_table_sorting freq_table_sorted; + struct list_head policy_list; + struct kobject kobj; + struct completion kobj_unregister; + struct rw_semaphore rwsem; + bool fast_switch_possible; + bool fast_switch_enabled; + bool strict_target; + bool efficiencies_available; + unsigned int transition_delay_us; + bool dvfs_possible_from_any_cpu; + bool boost_enabled; + unsigned int cached_target_freq; + unsigned int cached_resolved_idx; + bool transition_ongoing; + spinlock_t transition_lock; + wait_queue_head_t transition_wait; + struct task_struct *transition_task; + struct cpufreq_stats *stats; + void *driver_data; + struct thermal_cooling_device *cdev; + struct notifier_block nb_min; + struct notifier_block nb_max; }; -struct apparmor_audit_data { - int error; - int type; - u16 class; - const char *op; - struct aa_label *label; - const char *name; - const char *info; - u32 request; - u32 denied; - union { - struct { - struct aa_label *peer; - union { - struct { - const char *target; - kuid_t ouid; - } fs; - struct { - int rlim; - unsigned long max; - } rlim; - struct { - int signal; - int unmappedsig; - }; - struct { - int type; - int protocol; - struct sock *peer_sk; - void *addr; - int addrlen; - } net; - }; - }; - struct { - struct aa_profile *profile; - const char *ns; - long pos; - } iface; - struct { - const char *src_name; - const char *type; - const char *trans; - const char *data; - unsigned long flags; - } mnt; - }; +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 label_it { - int i; - int j; +struct freq_qos_request { + enum freq_qos_req_type type; + struct plist_node pnode; + struct freq_constraints *qos; }; -enum { - IO_WORKER_F_UP = 1, - IO_WORKER_F_RUNNING = 2, - IO_WORKER_F_FREE = 4, - IO_WORKER_F_BOUND = 8, +struct cpufreq_frequency_table { + unsigned int flags; + unsigned int driver_data; + unsigned int frequency; }; -enum { - IO_WQ_BIT_EXIT = 0, -}; +struct thermal_cooling_device_ops; -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, +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; }; -enum { - IO_ACCT_STALLED_BIT = 0, +struct pm_qos_flags { + struct list_head list; + s32 effective_flags; }; -enum io_wq_cancel { - IO_WQ_CANCEL_OK = 0, - IO_WQ_CANCEL_RUNNING = 1, - IO_WQ_CANCEL_NOTFOUND = 2, +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; }; -enum { - IO_WQ_ACCT_BOUND = 0, - IO_WQ_ACCT_UNBOUND = 1, - IO_WQ_ACCT_NR = 2, +struct pm_qos_flags_request { + struct list_head node; + s32 flags; }; -struct io_worker { - refcount_t ref; - unsigned int flags; - struct hlist_nulls_node nulls_node; - struct list_head all_list; - struct task_struct *task; - struct io_wq *wq; - struct io_wq_work *cur_work; - struct io_wq_work *next_work; - raw_spinlock_t lock; - struct completion ref_done; - unsigned long create_state; - struct callback_head create_work; - int create_index; +struct dev_pm_qos_request { + enum dev_pm_qos_req_type type; union { - struct callback_head rcu; - struct work_struct work; - }; + struct plist_node pnode; + struct pm_qos_flags_request flr; + struct freq_qos_request freq; + } data; + struct device *dev; }; -typedef struct io_wq_work *free_work_fn(struct io_wq_work *); +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 *); +}; -typedef void io_wq_work_fn(struct io_wq_work *); +struct em_perf_domain; -struct io_wq_acct { - unsigned int nr_workers; - unsigned int max_workers; - int index; - atomic_t nr_running; - raw_spinlock_t lock; - struct io_wq_work_list work_list; +struct cpufreq_cooling_device { + u32 last_load; + unsigned int cpufreq_state; + unsigned int max_level; + struct em_perf_domain *em; + struct cpufreq_policy *policy; + struct thermal_cooling_device_ops cooling_ops; + struct freq_qos_request qos_req; +}; + +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 io_wq { - unsigned long state; - free_work_fn *free_work; - io_wq_work_fn *do_work; - struct io_wq_hash *hash; - atomic_t worker_refs; - struct completion worker_done; - struct hlist_node cpuhp_node; - struct task_struct *task; - struct io_wq_acct acct[2]; - raw_spinlock_t lock; - struct hlist_nulls_head free_list; - struct list_head all_list; - struct wait_queue_entry wait; - struct io_wq_work *hash_tail[64]; - cpumask_var_t cpu_mask; +struct em_perf_state { + unsigned long frequency; + unsigned long power; + unsigned long cost; + unsigned long flags; }; -typedef bool work_cancel_fn(struct io_wq_work *, void *); +typedef unsigned int mmc_pm_flag_t; -struct io_cb_cancel_data { - work_cancel_fn *fn; - void *data; - int nr_running; - int nr_pending; - bool cancel_all; +struct mmc_ios { + unsigned int clock; + unsigned short vdd; + unsigned int power_delay_ms; + unsigned char bus_mode; + unsigned char chip_select; + unsigned char power_mode; + unsigned char bus_width; + unsigned char timing; + unsigned char signal_voltage; + unsigned char drv_type; + bool enhanced_strobe; }; -struct online_data { - unsigned int cpu; - bool online; +struct mmc_ctx { + struct task_struct *task; }; -struct io_wq_data { - struct io_wq_hash *hash; - struct task_struct *task; - io_wq_work_fn *do_work; - free_work_fn *free_work; +struct mmc_slot { + int cd_irq; + bool cd_wake_enabled; + void *handler_priv; }; -enum sunxi_desc_bias_voltage { - BIAS_VOLTAGE_NONE = 0, - BIAS_VOLTAGE_GRP_CONFIG = 1, - BIAS_VOLTAGE_PIO_POW_MODE_SEL = 2, - BIAS_VOLTAGE_PIO_POW_MODE_CTL = 3, +struct mmc_supply { + struct regulator *vmmc; + struct regulator *vqmmc; }; -struct sunxi_desc_pin; +struct mmc_host_ops; -struct sunxi_pinctrl_desc { - const struct sunxi_desc_pin *pins; - int npins; - unsigned int pin_base; - unsigned int irq_banks; - const unsigned int *irq_bank_map; - bool irq_read_needs_mux; - bool disable_strict_mode; - enum sunxi_desc_bias_voltage io_bias_cfg_variant; -}; +struct mmc_pwrseq; -struct pinctrl_pin_desc { - unsigned int number; - const char *name; - void *drv_data; -}; +struct mmc_card; -struct sunxi_desc_function; +struct mmc_bus_ops; -struct sunxi_desc_pin { - struct pinctrl_pin_desc pin; - unsigned long variant; - struct sunxi_desc_function *functions; -}; +struct led_trigger; -struct sunxi_desc_function { - unsigned long variant; - const char *name; - u8 muxval; - u8 irqbank; - u8 irqnum; -}; +struct mmc_request; -enum con_scroll { - SM_UP = 0, - SM_DOWN = 1, +struct mmc_cqe_ops; + +struct mmc_host { + struct device *parent; + struct device class_dev; + int index; + const struct mmc_host_ops *ops; + struct mmc_pwrseq *pwrseq; + unsigned int f_min; + unsigned int f_max; + unsigned int f_init; + u32 ocr_avail; + u32 ocr_avail_sdio; + u32 ocr_avail_sd; + u32 ocr_avail_mmc; + struct wakeup_source *ws; + u32 max_current_330; + u32 max_current_300; + u32 max_current_180; + u32 caps; + u32 caps2; + int fixed_drv_type; + mmc_pm_flag_t pm_caps; + unsigned int max_seg_size; + unsigned short max_segs; + unsigned short unused; + unsigned int max_req_size; + unsigned int max_blk_size; + unsigned int max_blk_count; + unsigned int max_busy_timeout; + spinlock_t lock; + struct mmc_ios ios; + unsigned int use_spi_crc: 1; + unsigned int claimed: 1; + unsigned int doing_init_tune: 1; + unsigned int can_retune: 1; + unsigned int doing_retune: 1; + unsigned int retune_now: 1; + unsigned int retune_paused: 1; + unsigned int retune_crc_disable: 1; + unsigned int can_dma_map_merge: 1; + unsigned int vqmmc_enabled: 1; + int rescan_disable; + int rescan_entered; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct timer_list retune_timer; + bool trigger_card_event; + struct mmc_card *card; + wait_queue_head_t wq; + struct mmc_ctx *claimer; + int claim_cnt; + struct mmc_ctx default_ctx; + struct delayed_work detect; + int detect_change; + struct mmc_slot slot; + const struct mmc_bus_ops *bus_ops; + unsigned int sdio_irqs; + struct task_struct *sdio_irq_thread; + struct work_struct sdio_irq_work; + bool sdio_irq_pending; + atomic_t sdio_irq_thread_abort; + mmc_pm_flag_t pm_flags; + struct led_trigger *led; + bool regulator_enabled; + struct mmc_supply supply; + struct dentry *debugfs_root; + struct mmc_request *ongoing_mrq; + unsigned int actual_clock; + unsigned int slotno; + int dsr_req; + u32 dsr; + const struct mmc_cqe_ops *cqe_ops; + void *cqe_private; + int cqe_qdepth; + bool cqe_enabled; + bool cqe_on; + bool hsq_enabled; + int hsq_depth; + u32 err_stats[15]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + unsigned long private[0]; }; -enum vc_intensity { - VCI_HALF_BRIGHT = 0, - VCI_NORMAL = 1, - VCI_BOLD = 2, - VCI_MASK = 3, +struct mmc_host_ops { + void (*post_req)(struct mmc_host *, struct mmc_request *, int); + void (*pre_req)(struct mmc_host *, struct mmc_request *); + void (*request)(struct mmc_host *, struct mmc_request *); + int (*request_atomic)(struct mmc_host *, struct mmc_request *); + void (*set_ios)(struct mmc_host *, struct mmc_ios *); + int (*get_ro)(struct mmc_host *); + int (*get_cd)(struct mmc_host *); + void (*enable_sdio_irq)(struct mmc_host *, int); + void (*ack_sdio_irq)(struct mmc_host *); + void (*init_card)(struct mmc_host *, struct mmc_card *); + int (*start_signal_voltage_switch)(struct mmc_host *, struct mmc_ios *); + int (*card_busy)(struct mmc_host *); + int (*execute_tuning)(struct mmc_host *, u32); + int (*prepare_hs400_tuning)(struct mmc_host *, struct mmc_ios *); + int (*execute_hs400_tuning)(struct mmc_host *, struct mmc_card *); + int (*prepare_sd_hs_tuning)(struct mmc_host *, struct mmc_card *); + int (*execute_sd_hs_tuning)(struct mmc_host *, struct mmc_card *); + int (*hs400_prepare_ddr)(struct mmc_host *); + void (*hs400_downgrade)(struct mmc_host *); + void (*hs400_complete)(struct mmc_host *); + void (*hs400_enhanced_strobe)(struct mmc_host *, struct mmc_ios *); + int (*select_drive_strength)(struct mmc_card *, unsigned int, int, int, int *); + void (*card_hw_reset)(struct mmc_host *); + void (*card_event)(struct mmc_host *); + int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); + int (*init_sd_express)(struct mmc_host *, struct mmc_ios *); }; -struct vc_data; +struct mmc_command; -struct console_font; +struct mmc_data; -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 mmc_request { + struct mmc_command *sbc; + struct mmc_command *cmd; + struct mmc_data *data; + struct mmc_command *stop; + struct completion completion; + struct completion cmd_completion; + void (*done)(struct mmc_request *); + void (*recovery_notifier)(struct mmc_request *); + struct mmc_host *host; + bool cap_cmd_during_tfr; + int tag; }; -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 mmc_command { + u32 opcode; + u32 arg; + u32 resp[4]; + unsigned int flags; + unsigned int retries; + int error; + unsigned int busy_timeout; + struct mmc_data *data; + struct mmc_request *mrq; }; -struct console_font { - unsigned int width; - unsigned int height; - unsigned int charcount; - unsigned char *data; +struct mmc_data { + unsigned int timeout_ns; + unsigned int timeout_clks; + unsigned int blksz; + unsigned int blocks; + unsigned int blk_addr; + int error; + unsigned int flags; + unsigned int bytes_xfered; + struct mmc_command *stop; + struct mmc_request *mrq; + unsigned int sg_len; + int sg_count; + struct scatterlist *sg; + s32 host_cookie; }; -struct vt_mode { - char mode; - char waitv; - short relsig; - short acqsig; - short frsig; +struct mmc_cid { + unsigned int manfid; + char prod_name[8]; + unsigned char prv; + unsigned int serial; + unsigned short oemid; + unsigned short year; + unsigned char hwrev; + unsigned char fwrev; + unsigned char month; }; -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; +struct mmc_csd { + unsigned char structure; + unsigned char mmca_vsn; + unsigned short cmdclass; + unsigned short taac_clks; + unsigned int taac_ns; + unsigned int c_size; + unsigned int r2w_factor; + unsigned int max_dtr; + unsigned int erase_size; + unsigned int read_blkbits; + unsigned int write_blkbits; + unsigned int capacity; + unsigned int read_partial: 1; + unsigned int read_misalign: 1; + unsigned int write_partial: 1; + unsigned int write_misalign: 1; + unsigned int dsr_imp: 1; }; -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 mmc_ext_csd { + u8 rev; + u8 erase_group_def; + u8 sec_feature_support; + u8 rel_sectors; + u8 rel_param; + bool enhanced_rpmb_supported; + u8 part_config; + u8 cache_ctrl; + u8 rst_n_function; + u8 max_packed_writes; + u8 max_packed_reads; + u8 packed_event_en; + unsigned int part_time; + unsigned int sa_timeout; + unsigned int generic_cmd6_time; + unsigned int power_off_longtime; + u8 power_off_notification; + unsigned int hs_max_dtr; + unsigned int hs200_max_dtr; + unsigned int sectors; + unsigned int hc_erase_size; + unsigned int hc_erase_timeout; + unsigned int sec_trim_mult; + unsigned int sec_erase_mult; + unsigned int trim_timeout; + bool partition_setting_completed; + unsigned long long enhanced_area_offset; + unsigned int enhanced_area_size; + unsigned int cache_size; + bool hpi_en; + bool hpi; + unsigned int hpi_cmd; + bool bkops; + bool man_bkops_en; + bool auto_bkops_en; + unsigned int data_sector_size; + unsigned int data_tag_unit_size; + unsigned int boot_ro_lock; + bool boot_ro_lockable; + bool ffu_capable; + bool cmdq_en; + bool cmdq_support; + unsigned int cmdq_depth; + u8 fwrev[8]; + u8 raw_exception_status; + u8 raw_partition_support; + u8 raw_rpmb_size_mult; + u8 raw_erased_mem_count; + u8 strobe_support; + u8 raw_ext_csd_structure; + u8 raw_card_type; + u8 raw_driver_strength; + u8 out_of_int_time; + u8 raw_pwr_cl_52_195; + u8 raw_pwr_cl_26_195; + u8 raw_pwr_cl_52_360; + u8 raw_pwr_cl_26_360; + u8 raw_s_a_timeout; + u8 raw_hc_erase_gap_size; + u8 raw_erase_timeout_mult; + u8 raw_hc_erase_grp_size; + u8 raw_boot_mult; + u8 raw_sec_trim_mult; + u8 raw_sec_erase_mult; + u8 raw_sec_feature_support; + u8 raw_trim_mult; + u8 raw_pwr_cl_200_195; + u8 raw_pwr_cl_200_360; + u8 raw_pwr_cl_ddr_52_195; + u8 raw_pwr_cl_ddr_52_360; + u8 raw_pwr_cl_ddr_200_360; + u8 raw_bkops_status; + u8 raw_sectors[4]; + u8 pre_eol_info; + u8 device_life_time_est_typ_a; + u8 device_life_time_est_typ_b; + unsigned int feature_support; }; -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, +struct sd_scr { + unsigned char sda_vsn; + unsigned char sda_spec3; + unsigned char sda_spec4; + unsigned char sda_specx; + unsigned char bus_widths; + unsigned char cmds; }; -enum acpi_reconfig_event { - ACPI_RECONFIG_DEVICE_ADD = 0, - ACPI_RECONFIG_DEVICE_REMOVE = 1, +struct sd_ssr { + unsigned int au; + unsigned int erase_timeout; + unsigned int erase_offset; }; -struct resource_entry { - struct list_head node; - struct resource *res; - resource_size_t offset; - struct resource __res; +struct sd_switch_caps { + unsigned int hs_max_dtr; + unsigned int uhs_max_dtr; + unsigned int sd3_bus_mode; + unsigned int sd3_drv_type; + unsigned int sd3_curr_limit; }; -struct acpi_resource; - -typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); +struct sd_ext_reg { + u8 fno; + u8 page; + u16 offset; + u8 rev; + u8 feature_enabled; + u8 feature_support; +}; -struct acpi_resource_irq { - u8 descriptor_length; - u8 triggering; - u8 polarity; - u8 shareable; - u8 wake_capable; - u8 interrupt_count; - union { - u8 interrupt; - struct { - struct {} __Empty_interrupts; - u8 interrupts[0]; - }; - }; +struct sdio_cccr { + unsigned int sdio_vsn; + unsigned int sd_vsn; + unsigned int multi_block: 1; + unsigned int low_speed: 1; + unsigned int wide_bus: 1; + unsigned int high_power: 1; + unsigned int high_speed: 1; + unsigned int disable_cd: 1; + unsigned int enable_async_irq: 1; }; -struct acpi_resource_dma { - u8 type; - u8 bus_master; - u8 transfer; - u8 channel_count; - union { - u8 channel; - struct { - struct {} __Empty_channels; - u8 channels[0]; - }; - }; +struct sdio_cis { + unsigned short vendor; + unsigned short device; + unsigned short blksize; + unsigned int max_dtr; }; -struct acpi_resource_start_dependent { - u8 descriptor_length; - u8 compatibility_priority; - u8 performance_robustness; +struct mmc_part { + u64 size; + unsigned int part_cfg; + char name[20]; + bool force_ro; + unsigned int area_type; }; -struct acpi_resource_io { - u8 io_decode; - u8 alignment; - u8 address_length; - u16 minimum; - u16 maximum; -} __attribute__((packed)); +struct sdio_func; -struct acpi_resource_fixed_io { - u16 address; - u8 address_length; -} __attribute__((packed)); +struct sdio_func_tuple; -struct acpi_resource_fixed_dma { - u16 request_lines; - u16 channels; - u8 width; -} __attribute__((packed)); +struct mmc_card { + struct mmc_host *host; + struct device dev; + u32 ocr; + unsigned int rca; + unsigned int type; + unsigned int state; + unsigned int quirks; + unsigned int quirk_max_rate; + bool written_flag; + bool reenable_cmdq; + unsigned int erase_size; + unsigned int erase_shift; + unsigned int pref_erase; + unsigned int eg_boundary; + unsigned int erase_arg; + u8 erased_byte; + u32 raw_cid[4]; + u32 raw_csd[4]; + u32 raw_scr[2]; + u32 raw_ssr[16]; + struct mmc_cid cid; + struct mmc_csd csd; + struct mmc_ext_csd ext_csd; + struct sd_scr scr; + struct sd_ssr ssr; + struct sd_switch_caps sw_caps; + struct sd_ext_reg ext_power; + struct sd_ext_reg ext_perf; + unsigned int sdio_funcs; + atomic_t sdio_funcs_probed; + struct sdio_cccr cccr; + struct sdio_cis cis; + struct sdio_func *sdio_func[7]; + struct sdio_func *sdio_single_irq; + u8 major_rev; + u8 minor_rev; + unsigned int num_info; + const char **info; + struct sdio_func_tuple *tuples; + unsigned int sd_bus_speed; + unsigned int mmc_avail_type; + unsigned int drive_strength; + struct dentry *debugfs_root; + struct mmc_part part[7]; + unsigned int nr_parts; + struct workqueue_struct *complete_wq; +}; -struct acpi_resource_vendor { - u16 byte_length; - u8 byte_data[0]; +struct mmc_bus_ops { + void (*remove)(struct mmc_host *); + void (*detect)(struct mmc_host *); + int (*pre_suspend)(struct mmc_host *); + int (*suspend)(struct mmc_host *); + int (*resume)(struct mmc_host *); + int (*runtime_suspend)(struct mmc_host *); + int (*runtime_resume)(struct mmc_host *); + int (*alive)(struct mmc_host *); + int (*shutdown)(struct mmc_host *); + int (*hw_reset)(struct mmc_host *); + int (*sw_reset)(struct mmc_host *); + bool (*cache_enabled)(struct mmc_host *); + int (*flush_cache)(struct mmc_host *); }; -struct acpi_resource_vendor_typed { - u16 byte_length; - u8 uuid_subtype; - u8 uuid[16]; - u8 byte_data[0]; -} __attribute__((packed)); +struct mmc_cqe_ops { + int (*cqe_enable)(struct mmc_host *, struct mmc_card *); + void (*cqe_disable)(struct mmc_host *); + int (*cqe_request)(struct mmc_host *, struct mmc_request *); + void (*cqe_post_req)(struct mmc_host *, struct mmc_request *); + void (*cqe_off)(struct mmc_host *); + int (*cqe_wait_for_idle)(struct mmc_host *); + bool (*cqe_timeout)(struct mmc_host *, struct mmc_request *, bool *); + void (*cqe_recovery_start)(struct mmc_host *); + void (*cqe_recovery_finish)(struct mmc_host *); +}; -struct acpi_resource_end_tag { - u8 checksum; +struct mmc_gpio { + struct gpio_desc *ro_gpio; + struct gpio_desc *cd_gpio; + irqreturn_t (*cd_gpio_isr)(int, void *); + char *ro_label; + char *cd_label; + u32 cd_debounce_delay_ms; + int cd_irq; }; -struct acpi_resource_memory24 { - u8 write_protect; - u16 minimum; - u16 maximum; - u16 alignment; - u16 address_length; -} __attribute__((packed)); +struct alias_prop { + struct list_head link; + const char *alias; + struct device_node *np; + int id; + char stem[0]; +}; -struct acpi_resource_memory32 { - u8 write_protect; - u32 minimum; - u32 maximum; - u32 alignment; - u32 address_length; -} __attribute__((packed)); +enum iio_chan_type { + IIO_VOLTAGE = 0, + IIO_CURRENT = 1, + IIO_POWER = 2, + IIO_ACCEL = 3, + IIO_ANGL_VEL = 4, + IIO_MAGN = 5, + IIO_LIGHT = 6, + IIO_INTENSITY = 7, + IIO_PROXIMITY = 8, + IIO_TEMP = 9, + IIO_INCLI = 10, + IIO_ROT = 11, + IIO_ANGL = 12, + IIO_TIMESTAMP = 13, + IIO_CAPACITANCE = 14, + IIO_ALTVOLTAGE = 15, + IIO_CCT = 16, + IIO_PRESSURE = 17, + IIO_HUMIDITYRELATIVE = 18, + IIO_ACTIVITY = 19, + IIO_STEPS = 20, + IIO_ENERGY = 21, + IIO_DISTANCE = 22, + IIO_VELOCITY = 23, + IIO_CONCENTRATION = 24, + IIO_RESISTANCE = 25, + IIO_PH = 26, + IIO_UVINDEX = 27, + IIO_ELECTRICALCONDUCTIVITY = 28, + IIO_COUNT = 29, + IIO_INDEX = 30, + IIO_GRAVITY = 31, + IIO_POSITIONRELATIVE = 32, + IIO_PHASE = 33, + IIO_MASSCONCENTRATION = 34, + IIO_DELTA_ANGL = 35, + IIO_DELTA_VELOCITY = 36, + IIO_COLORTEMP = 37, + IIO_CHROMATICITY = 38, +}; + +enum iio_endian { + IIO_CPU = 0, + IIO_BE = 1, + IIO_LE = 2, +}; + +enum iio_event_type { + IIO_EV_TYPE_THRESH = 0, + IIO_EV_TYPE_MAG = 1, + IIO_EV_TYPE_ROC = 2, + IIO_EV_TYPE_THRESH_ADAPTIVE = 3, + IIO_EV_TYPE_MAG_ADAPTIVE = 4, + IIO_EV_TYPE_CHANGE = 5, + IIO_EV_TYPE_MAG_REFERENCED = 6, + IIO_EV_TYPE_GESTURE = 7, +}; + +enum iio_event_direction { + IIO_EV_DIR_EITHER = 0, + IIO_EV_DIR_RISING = 1, + IIO_EV_DIR_FALLING = 2, + IIO_EV_DIR_NONE = 3, + IIO_EV_DIR_SINGLETAP = 4, + IIO_EV_DIR_DOUBLETAP = 5, +}; + +enum iio_shared_by { + IIO_SEPARATE = 0, + IIO_SHARED_BY_TYPE = 1, + IIO_SHARED_BY_DIR = 2, + IIO_SHARED_BY_ALL = 3, +}; + +enum iio_event_info { + IIO_EV_INFO_ENABLE = 0, + IIO_EV_INFO_VALUE = 1, + IIO_EV_INFO_HYSTERESIS = 2, + IIO_EV_INFO_PERIOD = 3, + IIO_EV_INFO_HIGH_PASS_FILTER_3DB = 4, + IIO_EV_INFO_LOW_PASS_FILTER_3DB = 5, + IIO_EV_INFO_TIMEOUT = 6, + IIO_EV_INFO_RESET_TIMEOUT = 7, + IIO_EV_INFO_TAP2_MIN_DELAY = 8, + IIO_EV_INFO_RUNNING_PERIOD = 9, + IIO_EV_INFO_RUNNING_COUNT = 10, +}; + +enum iio_chan_info_enum { + IIO_CHAN_INFO_RAW = 0, + IIO_CHAN_INFO_PROCESSED = 1, + IIO_CHAN_INFO_SCALE = 2, + IIO_CHAN_INFO_OFFSET = 3, + IIO_CHAN_INFO_CALIBSCALE = 4, + IIO_CHAN_INFO_CALIBBIAS = 5, + IIO_CHAN_INFO_PEAK = 6, + IIO_CHAN_INFO_PEAK_SCALE = 7, + IIO_CHAN_INFO_QUADRATURE_CORRECTION_RAW = 8, + IIO_CHAN_INFO_AVERAGE_RAW = 9, + IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY = 10, + IIO_CHAN_INFO_HIGH_PASS_FILTER_3DB_FREQUENCY = 11, + IIO_CHAN_INFO_SAMP_FREQ = 12, + IIO_CHAN_INFO_FREQUENCY = 13, + IIO_CHAN_INFO_PHASE = 14, + IIO_CHAN_INFO_HARDWAREGAIN = 15, + IIO_CHAN_INFO_HYSTERESIS = 16, + IIO_CHAN_INFO_HYSTERESIS_RELATIVE = 17, + IIO_CHAN_INFO_INT_TIME = 18, + IIO_CHAN_INFO_ENABLE = 19, + IIO_CHAN_INFO_CALIBHEIGHT = 20, + IIO_CHAN_INFO_CALIBWEIGHT = 21, + IIO_CHAN_INFO_DEBOUNCE_COUNT = 22, + IIO_CHAN_INFO_DEBOUNCE_TIME = 23, + IIO_CHAN_INFO_CALIBEMISSIVITY = 24, + IIO_CHAN_INFO_OVERSAMPLING_RATIO = 25, + IIO_CHAN_INFO_THERMOCOUPLE_TYPE = 26, + IIO_CHAN_INFO_CALIBAMBIENT = 27, + IIO_CHAN_INFO_ZEROPOINT = 28, +}; + +enum iio_available_type { + IIO_AVAIL_LIST = 0, + IIO_AVAIL_RANGE = 1, +}; + +struct iio_dev; + +struct iio_map; + +struct iio_map_internal { + struct iio_dev *indio_dev; + struct iio_map *map; + struct list_head l; +}; + +struct iio_buffer; + +struct iio_trigger; + +struct iio_poll_func; + +struct iio_chan_spec; + +struct iio_info; + +struct iio_buffer_setup_ops; + +struct iio_dev { + int modes; + struct device dev; + struct iio_buffer *buffer; + int scan_bytes; + const unsigned long *available_scan_masks; + unsigned int masklength; + const unsigned long *active_scan_mask; + bool scan_timestamp; + struct iio_trigger *trig; + struct iio_poll_func *pollfunc; + struct iio_poll_func *pollfunc_event; + const struct iio_chan_spec *channels; + int num_channels; + const char *name; + const char *label; + const struct iio_info *info; + const struct iio_buffer_setup_ops *setup_ops; + void *priv; +}; -struct acpi_resource_fixed_memory32 { - u8 write_protect; - u32 address; - u32 address_length; -} __attribute__((packed)); +struct iio_event_spec; -struct acpi_memory_attribute { - u8 write_protect; - u8 caching; - u8 range_type; - u8 translation; +struct iio_chan_spec_ext_info; + +struct iio_chan_spec { + enum iio_chan_type type; + int channel; + int channel2; + unsigned long address; + int scan_index; + struct { + char sign; + u8 realbits; + u8 storagebits; + u8 shift; + u8 repeat; + enum iio_endian endianness; + } scan_type; + long info_mask_separate; + long info_mask_separate_available; + long info_mask_shared_by_type; + long info_mask_shared_by_type_available; + long info_mask_shared_by_dir; + long info_mask_shared_by_dir_available; + long info_mask_shared_by_all; + long info_mask_shared_by_all_available; + const struct iio_event_spec *event_spec; + unsigned int num_event_specs; + const struct iio_chan_spec_ext_info *ext_info; + const char *extend_name; + const char *datasheet_name; + unsigned int modified: 1; + unsigned int indexed: 1; + unsigned int output: 1; + unsigned int differential: 1; +}; + +struct iio_event_spec { + enum iio_event_type type; + enum iio_event_direction dir; + unsigned long mask_separate; + unsigned long mask_shared_by_type; + unsigned long mask_shared_by_dir; + unsigned long mask_shared_by_all; +}; + +struct iio_chan_spec_ext_info { + const char *name; + enum iio_shared_by shared; + ssize_t (*read)(struct iio_dev *, uintptr_t, const struct iio_chan_spec *, char *); + ssize_t (*write)(struct iio_dev *, uintptr_t, const struct iio_chan_spec *, const char *, size_t); + uintptr_t private; +}; + +struct iio_info { + const struct attribute_group *event_attrs; + const struct attribute_group *attrs; + int (*read_raw)(struct iio_dev *, const struct iio_chan_spec *, int *, int *, long); + int (*read_raw_multi)(struct iio_dev *, const struct iio_chan_spec *, int, int *, int *, long); + int (*read_avail)(struct iio_dev *, const struct iio_chan_spec *, const int **, int *, int *, long); + int (*write_raw)(struct iio_dev *, const struct iio_chan_spec *, int, int, long); + int (*read_label)(struct iio_dev *, const struct iio_chan_spec *, char *); + int (*write_raw_get_fmt)(struct iio_dev *, const struct iio_chan_spec *, long); + int (*read_event_config)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction); + int (*write_event_config)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, int); + int (*read_event_value)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, enum iio_event_info, int *, int *); + int (*write_event_value)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, enum iio_event_info, int, int); + int (*read_event_label)(struct iio_dev *, const struct iio_chan_spec *, enum iio_event_type, enum iio_event_direction, char *); + int (*validate_trigger)(struct iio_dev *, struct iio_trigger *); + int (*update_scan_mode)(struct iio_dev *, const unsigned long *); + int (*debugfs_reg_access)(struct iio_dev *, unsigned int, unsigned int, unsigned int *); + int (*fwnode_xlate)(struct iio_dev *, const struct fwnode_reference_args *); + int (*hwfifo_set_watermark)(struct iio_dev *, unsigned int); + int (*hwfifo_flush_to_buffer)(struct iio_dev *, unsigned int); +}; + +struct iio_buffer_setup_ops { + int (*preenable)(struct iio_dev *); + int (*postenable)(struct iio_dev *); + int (*predisable)(struct iio_dev *); + int (*postdisable)(struct iio_dev *); + bool (*validate_scan_mask)(struct iio_dev *, const unsigned long *); +}; + +struct iio_map { + const char *adc_channel_label; + const char *consumer_dev_name; + const char *consumer_channel; + void *consumer_data; +}; + +struct iio_event_interface; + +struct iio_ioctl_handler; + +struct iio_dev_opaque { + struct iio_dev indio_dev; + int currentmode; + int id; + struct module *driver_module; + struct mutex mlock; + struct lock_class_key mlock_key; + struct mutex info_exist_lock; + bool trig_readonly; + struct iio_event_interface *event_interface; + struct iio_buffer **attached_buffers; + unsigned int attached_buffers_cnt; + struct iio_ioctl_handler *buffer_ioctl_handler; + struct list_head buffer_list; + struct list_head channel_attr_list; + struct attribute_group chan_attr_group; + struct list_head ioctl_handlers; + const struct attribute_group **groups; + int groupcounter; + struct attribute_group legacy_scan_el_group; + struct attribute_group legacy_buffer_group; + void *bounce_buffer; + size_t bounce_buffer_size; + unsigned int scan_index_timestamp; + clockid_t clock_id; + struct cdev chrdev; + unsigned long flags; + struct dentry *debugfs_dentry; + unsigned int cached_reg_addr; + char read_buf[20]; + unsigned int read_buf_len; }; -struct acpi_io_attribute { - u8 range_type; - u8 translation; - u8 translation_type; - u8 reserved1; +struct iio_ioctl_handler { + struct list_head entry; + long (*ioctl)(struct iio_dev *, struct file *, unsigned int, unsigned long); }; -union acpi_resource_attribute { - struct acpi_memory_attribute mem; - struct acpi_io_attribute io; - u8 type_specific; +struct iio_channel { + struct iio_dev *indio_dev; + const struct iio_chan_spec *channel; + void *data; }; -struct acpi_address16_attribute { - u16 granularity; - u16 minimum; - u16 maximum; - u16 translation_offset; - u16 address_length; +struct snd_soc_dai_link_component { + const char *name; + struct device_node *of_node; + const char *dai_name; + struct of_phandle_args *dai_args; }; -struct acpi_resource_source { - u8 index; - u16 string_length; - char *string_ptr; -} __attribute__((packed)); +enum snd_soc_dobj_type { + SND_SOC_DOBJ_NONE = 0, + SND_SOC_DOBJ_MIXER = 1, + SND_SOC_DOBJ_BYTES = 2, + SND_SOC_DOBJ_ENUM = 3, + SND_SOC_DOBJ_GRAPH = 4, + SND_SOC_DOBJ_WIDGET = 5, + SND_SOC_DOBJ_DAI_LINK = 6, + SND_SOC_DOBJ_PCM = 7, + SND_SOC_DOBJ_CODEC_LINK = 8, + SND_SOC_DOBJ_BACKEND_LINK = 9, +}; -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 snd_kcontrol; -struct acpi_address32_attribute { - u32 granularity; - u32 minimum; - u32 maximum; - u32 translation_offset; - u32 address_length; +struct snd_soc_dobj_control { + struct snd_kcontrol *kcontrol; + char **dtexts; + unsigned long *dvalues; }; -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 snd_soc_dobj_widget { + unsigned int *kcontrol_type; }; -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 snd_soc_component; -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; +struct snd_soc_dobj { + enum snd_soc_dobj_type type; + unsigned int index; + struct list_head list; + int (*unload)(struct snd_soc_component *, struct snd_soc_dobj *); union { - u32 interrupt; - struct { - struct {} __Empty_interrupts; - u32 interrupts[0]; - }; + struct snd_soc_dobj_control control; + struct snd_soc_dobj_widget widget; }; -} __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)); + void *private; +}; -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 snd_soc_pcm_stream { + const char *stream_name; + u64 formats; + unsigned int rates; + unsigned int rate_min; + unsigned int rate_max; + unsigned int channels_min; + unsigned int channels_max; + unsigned int sig_bits; +}; -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 snd_soc_dai_ops; -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 snd_soc_cdai_ops; -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 snd_soc_dai_driver { + const char *name; + unsigned int id; + unsigned int base; + struct snd_soc_dobj dobj; + struct of_phandle_args *dai_args; + const struct snd_soc_dai_ops *ops; + const struct snd_soc_cdai_ops *cops; + struct snd_soc_pcm_stream capture; + struct snd_soc_pcm_stream playback; + unsigned int symmetric_rate: 1; + unsigned int symmetric_channels: 1; + unsigned int symmetric_sample_bits: 1; +}; -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)); +enum snd_soc_bias_level { + SND_SOC_BIAS_OFF = 0, + SND_SOC_BIAS_STANDBY = 1, + SND_SOC_BIAS_PREPARE = 2, + SND_SOC_BIAS_ON = 3, +}; -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 snd_soc_card; -struct acpi_resource_label { - u16 string_length; - char *string_ptr; -} __attribute__((packed)); +struct snd_soc_dapm_widget; -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 snd_soc_dapm_context { + enum snd_soc_bias_level bias_level; + unsigned int idle_bias_off: 1; + unsigned int suspend_bias_off: 1; + struct device *dev; + struct snd_soc_component *component; + struct snd_soc_card *card; + enum snd_soc_bias_level target_bias_level; + struct list_head list; + struct snd_soc_dapm_widget *wcache_sink; + struct snd_soc_dapm_widget *wcache_source; + struct dentry *debugfs_dapm; +}; -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 snd_soc_component_driver; -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 snd_pcm_substream; -struct acpi_resource_clock_input { - u8 revision_id; - u8 mode; - u8 scale; - u16 frequency_divisor; - u32 frequency_numerator; - struct acpi_resource_source resource_source; -} __attribute__((packed)); +struct snd_compr_stream; -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; +struct snd_soc_component { + const char *name; + int id; + const char *name_prefix; + struct device *dev; + struct snd_soc_card *card; + unsigned int active; + unsigned int suspended: 1; + struct list_head list; + struct list_head card_aux_list; + struct list_head card_list; + const struct snd_soc_component_driver *driver; + struct list_head dai_list; + int num_dai; + struct regmap *regmap; + int val_bytes; + struct mutex io_mutex; + struct list_head dobj_list; + struct snd_soc_dapm_context dapm; + int (*init)(struct snd_soc_component *); + void *mark_module; + struct snd_pcm_substream *mark_open; + struct snd_pcm_substream *mark_hw_params; + struct snd_pcm_substream *mark_trigger; + struct snd_compr_stream *mark_compr_open; + void *mark_pm; + struct dentry *debugfs_root; + const char *debugfs_prefix; }; -union acpi_resource_data { - struct acpi_resource_irq irq; - struct acpi_resource_dma dma; - struct acpi_resource_start_dependent start_dpf; - struct acpi_resource_io io; - struct acpi_resource_fixed_io fixed_io; - struct acpi_resource_fixed_dma fixed_dma; - struct acpi_resource_vendor vendor; - struct acpi_resource_vendor_typed vendor_typed; - struct acpi_resource_end_tag end_tag; - struct acpi_resource_memory24 memory24; - struct acpi_resource_memory32 memory32; - struct acpi_resource_fixed_memory32 fixed_memory32; - struct acpi_resource_address16 address16; - struct acpi_resource_address32 address32; - struct acpi_resource_address64 address64; - struct acpi_resource_extended_address64 ext_address64; - struct acpi_resource_extended_irq extended_irq; - struct acpi_resource_generic_register generic_reg; - struct acpi_resource_gpio gpio; - struct acpi_resource_i2c_serialbus i2c_serial_bus; - struct acpi_resource_spi_serialbus spi_serial_bus; - struct acpi_resource_uart_serialbus uart_serial_bus; - struct acpi_resource_csi2_serialbus csi2_serial_bus; - struct acpi_resource_common_serialbus common_serial_bus; - struct acpi_resource_pin_function pin_function; - struct acpi_resource_pin_config pin_config; - struct acpi_resource_pin_group pin_group; - struct acpi_resource_pin_group_function pin_group_function; - struct acpi_resource_pin_group_config pin_group_config; - struct acpi_resource_clock_input clock_input; - struct acpi_resource_address address; +enum snd_soc_pcm_subclass { + SND_SOC_PCM_CLASS_PCM = 0, + SND_SOC_PCM_CLASS_BE = 1, }; -struct acpi_resource { - u32 type; - u32 length; - union acpi_resource_data data; +struct snd_soc_dapm_stats { + int power_checks; + int path_checks; + int neighbour_checks; }; -struct property_entry; +struct snd_card; -struct platform_device_info { - struct device *parent; - struct fwnode_handle *fwnode; - bool of_node_reused; +struct snd_soc_dai_link; + +struct snd_soc_codec_conf; + +struct snd_soc_aux_dev; + +struct snd_kcontrol_new; + +struct snd_soc_dapm_route; + +struct snd_soc_dapm_update; + +struct snd_soc_card { 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; + const char *long_name; + const char *driver_name; + const char *components; + unsigned short pci_subsystem_vendor; + unsigned short pci_subsystem_device; + bool pci_subsystem_set; + char topology_shortname[32]; + struct device *dev; + struct snd_card *snd_card; + struct module *owner; + struct mutex mutex; + struct mutex dapm_mutex; + struct mutex pcm_mutex; + enum snd_soc_pcm_subclass pcm_subclass; + int (*probe)(struct snd_soc_card *); + int (*late_probe)(struct snd_soc_card *); + void (*fixup_controls)(struct snd_soc_card *); + int (*remove)(struct snd_soc_card *); + int (*suspend_pre)(struct snd_soc_card *); + int (*suspend_post)(struct snd_soc_card *); + int (*resume_pre)(struct snd_soc_card *); + int (*resume_post)(struct snd_soc_card *); + int (*set_bias_level)(struct snd_soc_card *, struct snd_soc_dapm_context *, enum snd_soc_bias_level); + int (*set_bias_level_post)(struct snd_soc_card *, struct snd_soc_dapm_context *, enum snd_soc_bias_level); + int (*add_dai_link)(struct snd_soc_card *, struct snd_soc_dai_link *); + void (*remove_dai_link)(struct snd_soc_card *, struct snd_soc_dai_link *); + long pmdown_time; + struct snd_soc_dai_link *dai_link; + int num_links; + struct list_head rtd_list; + int num_rtd; + struct snd_soc_codec_conf *codec_conf; + int num_configs; + struct snd_soc_aux_dev *aux_dev; + int num_aux_devs; + struct list_head aux_comp_list; + const struct snd_kcontrol_new *controls; + int num_controls; + const struct snd_soc_dapm_widget *dapm_widgets; + int num_dapm_widgets; + const struct snd_soc_dapm_route *dapm_routes; + int num_dapm_routes; + const struct snd_soc_dapm_widget *of_dapm_widgets; + int num_of_dapm_widgets; + const struct snd_soc_dapm_route *of_dapm_routes; + int num_of_dapm_routes; + struct list_head component_dev_list; + struct list_head list; + struct list_head widgets; + struct list_head paths; + struct list_head dapm_list; + struct list_head dapm_dirty; + struct list_head dobj_list; + struct snd_soc_dapm_context dapm; + struct snd_soc_dapm_stats dapm_stats; + struct snd_soc_dapm_update *update; + struct dentry *debugfs_card_root; + struct work_struct deferred_resume_work; + u32 pop_time; + unsigned int instantiated: 1; + unsigned int topology_shortname_created: 1; + unsigned int fully_routed: 1; + unsigned int disable_route_checks: 1; + unsigned int probed: 1; + unsigned int component_chaining: 1; + void *drvdata; +}; + +struct snd_shutdown_f_ops; + +struct snd_info_entry; + +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 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 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 acpi_common_descriptor { - void *common_pointer; - u8 descriptor_type; +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; }; -union acpi_descriptor { - struct acpi_common_descriptor common; - union acpi_operand_object object; - struct acpi_namespace_node node; - union acpi_parse_object op; +struct snd_info_buffer { + char *buffer; + unsigned int curr; + unsigned int size; + unsigned int len; + int stop; + int error; }; -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 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 *); +}; + +enum snd_soc_dapm_type { + snd_soc_dapm_input = 0, + snd_soc_dapm_output = 1, + snd_soc_dapm_mux = 2, + snd_soc_dapm_demux = 3, + snd_soc_dapm_mixer = 4, + snd_soc_dapm_mixer_named_ctl = 5, + snd_soc_dapm_pga = 6, + snd_soc_dapm_out_drv = 7, + snd_soc_dapm_adc = 8, + snd_soc_dapm_dac = 9, + snd_soc_dapm_micbias = 10, + snd_soc_dapm_mic = 11, + snd_soc_dapm_hp = 12, + snd_soc_dapm_spk = 13, + snd_soc_dapm_line = 14, + snd_soc_dapm_switch = 15, + snd_soc_dapm_vmid = 16, + snd_soc_dapm_pre = 17, + snd_soc_dapm_post = 18, + snd_soc_dapm_supply = 19, + snd_soc_dapm_pinctrl = 20, + snd_soc_dapm_regulator_supply = 21, + snd_soc_dapm_clock_supply = 22, + snd_soc_dapm_aif_in = 23, + snd_soc_dapm_aif_out = 24, + snd_soc_dapm_siggen = 25, + snd_soc_dapm_sink = 26, + snd_soc_dapm_dai_in = 27, + snd_soc_dapm_dai_out = 28, + snd_soc_dapm_dai_link = 29, + snd_soc_dapm_kcontrol = 30, + snd_soc_dapm_buffer = 31, + snd_soc_dapm_scheduler = 32, + snd_soc_dapm_effect = 33, + snd_soc_dapm_src = 34, + snd_soc_dapm_asrc = 35, + snd_soc_dapm_encoder = 36, + snd_soc_dapm_decoder = 37, + SND_SOC_DAPM_TYPE_COUNT = 38, +}; + +struct snd_soc_dapm_widget { + enum snd_soc_dapm_type id; + const char *name; + const char *sname; + struct list_head list; + struct snd_soc_dapm_context *dapm; + void *priv; + struct regulator *regulator; + struct pinctrl *pinctrl; + int reg; + unsigned char shift; + unsigned int mask; + unsigned int on_val; + unsigned int off_val; + unsigned char power: 1; + unsigned char active: 1; + unsigned char connected: 1; + unsigned char new: 1; + unsigned char force: 1; + unsigned char ignore_suspend: 1; + unsigned char new_power: 1; + unsigned char power_checked: 1; + unsigned char is_supply: 1; + unsigned char is_ep: 2; + unsigned char no_wname_in_kcontrol_name: 1; + int subseq; + int (*power_check)(struct snd_soc_dapm_widget *); + unsigned short event_flags; + int (*event)(struct snd_soc_dapm_widget *, struct snd_kcontrol *, int); + int num_kcontrols; + const struct snd_kcontrol_new *kcontrol_news; + struct snd_kcontrol **kcontrols; + struct snd_soc_dobj dobj; + struct list_head edges[2]; + struct list_head work_list; + struct list_head power_list; + struct list_head dirty; + int endpoints[2]; + struct clk *clk; + int channel; }; -struct pnp_device_id; +typedef int snd_kcontrol_tlv_rw_t(struct snd_kcontrol *, int, unsigned int, unsigned int __attribute__((btf_type_tag("user"))) *); -struct pnp_dev; +typedef int snd_ctl_elem_iface_t; -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 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 pnp_device_id { - __u8 id[8]; - kernel_ulong_t driver_data; -}; +struct snd_ctl_elem_info; -struct pnp_protocol; +typedef int snd_kcontrol_info_t(struct snd_kcontrol *, struct snd_ctl_elem_info *); -struct pnp_card; +struct snd_ctl_elem_value; -struct pnp_card_link; +typedef int snd_kcontrol_get_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); -struct pnp_id; +typedef int snd_kcontrol_put_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); -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 snd_ctl_file; -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 snd_kcontrol_volatile { + struct snd_ctl_file *owner; + unsigned int access; }; -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 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]; }; -struct pnp_id { - char id[8]; - struct pnp_id *next; +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 pnp_card_driver; +struct snd_aes_iec958 { + unsigned char status[24]; + unsigned char subcode[147]; + unsigned char pad; + unsigned char dig_subframe[4]; +}; -struct pnp_card_link { - struct pnp_card *card; - struct pnp_card_driver *driver; - void *driver_data; - pm_message_t pm_state; +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 pnp_card_device_id; +struct snd_fasync; -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 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 pnp_card_device_id { - __u8 id[8]; - kernel_ulong_t driver_data; - struct { - __u8 id[8]; - } devs[8]; +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 reset_controller_dev; - -struct reset_control_ops { - int (*reset)(struct reset_controller_dev *, unsigned long); - int (*assert)(struct reset_controller_dev *, unsigned long); - int (*deassert)(struct reset_controller_dev *, unsigned long); - int (*status)(struct reset_controller_dev *, unsigned long); +enum snd_soc_dpcm_trigger { + SND_SOC_DPCM_TRIGGER_PRE = 0, + SND_SOC_DPCM_TRIGGER_POST = 1, + SND_SOC_DPCM_TRIGGER_BESPOKE = 2, }; -struct reset_controller_dev { - const struct reset_control_ops *ops; - struct module *owner; - struct list_head list; - struct list_head reset_control_head; - struct device *dev; - struct device_node *of_node; - int of_reset_n_cells; - int (*of_xlate)(struct reset_controller_dev *, const struct of_phandle_args *); - unsigned int nr_resets; +enum snd_soc_trigger_order { + SND_SOC_TRIGGER_ORDER_DEFAULT = 0, + SND_SOC_TRIGGER_ORDER_LDC = 1, + SND_SOC_TRIGGER_ORDER_MAX = 2, }; -struct earlycon_device; +struct snd_soc_dai_link_codec_ch_map; -struct earlycon_id { - char name[15]; - char name_term; - char compatible[128]; - int (*setup)(struct earlycon_device *, const char *); -}; +struct snd_soc_pcm_runtime; -struct earlycon_device { - struct console *con; - struct uart_port port; - char options[32]; - unsigned int baud; -}; +struct snd_pcm_hw_params; -struct wake_irq { - struct device *dev; - unsigned int status; - int irq; - const char *name; -}; +struct snd_soc_ops; -enum scsi_cmnd_submitter { - SUBMITTED_BY_BLOCK_LAYER = 0, - SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, - SUBMITTED_BY_SCSI_RESET_IOCTL = 2, -} __attribute__((mode(byte))); +struct snd_soc_compr_ops; -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 snd_soc_dai_link { + const char *name; + const char *stream_name; + struct snd_soc_dai_link_component *cpus; + unsigned int num_cpus; + struct snd_soc_dai_link_component *codecs; + unsigned int num_codecs; + struct snd_soc_dai_link_codec_ch_map *codec_ch_maps; + struct snd_soc_dai_link_component *platforms; + unsigned int num_platforms; + int id; + const struct snd_soc_pcm_stream *c2c_params; + unsigned int num_c2c_params; + unsigned int dai_fmt; + enum snd_soc_dpcm_trigger trigger[2]; + int (*init)(struct snd_soc_pcm_runtime *); + void (*exit)(struct snd_soc_pcm_runtime *); + int (*be_hw_params_fixup)(struct snd_soc_pcm_runtime *, struct snd_pcm_hw_params *); + const struct snd_soc_ops *ops; + const struct snd_soc_compr_ops *compr_ops; + enum snd_soc_trigger_order trigger_start; + enum snd_soc_trigger_order trigger_stop; + unsigned int nonatomic: 1; + unsigned int playback_only: 1; + unsigned int capture_only: 1; + unsigned int ignore_suspend: 1; + unsigned int symmetric_rate: 1; + unsigned int symmetric_channels: 1; + unsigned int symmetric_sample_bits: 1; + unsigned int no_pcm: 1; + unsigned int dynamic: 1; + unsigned int dpcm_capture: 1; + unsigned int dpcm_playback: 1; + unsigned int dpcm_merged_format: 1; + unsigned int dpcm_merged_chan: 1; + unsigned int dpcm_merged_rate: 1; + unsigned int ignore_pmdown_time: 1; + unsigned int ignore: 1; +}; + +struct snd_soc_dai_link_codec_ch_map { + unsigned int connected_cpu_id; + unsigned int ch_mask; +}; + +typedef unsigned long snd_pcm_uframes_t; + +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)(struct snd_pcm_substream *, int, unsigned long, struct iov_iter *, 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; }; -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, +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]; +}; + +enum snd_soc_dpcm_update { + SND_SOC_DPCM_UPDATE_NO = 0, + SND_SOC_DPCM_UPDATE_BE = 1, + SND_SOC_DPCM_UPDATE_FE = 2, +}; + +enum snd_soc_dpcm_state { + SND_SOC_DPCM_STATE_NEW = 0, + SND_SOC_DPCM_STATE_OPEN = 1, + SND_SOC_DPCM_STATE_HW_PARAMS = 2, + SND_SOC_DPCM_STATE_PREPARE = 3, + SND_SOC_DPCM_STATE_START = 4, + SND_SOC_DPCM_STATE_STOP = 5, + SND_SOC_DPCM_STATE_PAUSED = 6, + SND_SOC_DPCM_STATE_SUSPEND = 7, + SND_SOC_DPCM_STATE_HW_FREE = 8, + SND_SOC_DPCM_STATE_CLOSE = 9, +}; + +struct snd_soc_dpcm_runtime { + struct list_head be_clients; + struct list_head fe_clients; + int users; + struct snd_pcm_hw_params hw_params; + enum snd_soc_dpcm_update runtime_update; + enum snd_soc_dpcm_state state; + int trigger_pending; + int be_start; + int be_pause; + bool fe_pause; }; -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 snd_pcm; -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 snd_compr; -struct scsi_data_buffer { - struct sg_table table; - unsigned int length; -}; +struct snd_soc_dai; -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; +struct snd_soc_pcm_runtime { + struct device *dev; + struct snd_soc_card *card; + struct snd_soc_dai_link *dai_link; + struct snd_pcm_ops ops; + unsigned int c2c_params_select; + struct snd_soc_dpcm_runtime dpcm[2]; + struct snd_soc_dapm_widget *c2c_widget[2]; + long pmdown_time; + struct snd_pcm *pcm; + struct snd_compr *compr; + struct snd_soc_dai **dais; + struct delayed_work delayed_work; + void (*close_delayed_work_func)(struct snd_soc_pcm_runtime *); + struct dentry *debugfs_dpcm_root; + unsigned int num; + struct list_head list; + struct snd_pcm_substream *mark_startup; + struct snd_pcm_substream *mark_hw_params; + struct snd_pcm_substream *mark_trigger; + struct snd_compr_stream *mark_compr_startup; + unsigned int pop_wait: 1; + unsigned int fe_compr: 1; + bool initialized; + int num_components; + struct snd_soc_component *components[0]; }; -struct scsi_exec_args { - unsigned char *sense; - unsigned int sense_len; - struct scsi_sense_hdr *sshdr; - blk_mq_req_flags_t req_flags; - int scmd_flags; - int *resid; +struct pm_qos_request { + struct plist_node node; + struct pm_qos_constraints *qos; }; -struct scsi_ioctl_command { - unsigned int inlen; - unsigned int outlen; - unsigned char data[0]; +struct snd_dma_device { + int type; + enum dma_data_direction dir; + bool need_sync; + struct device *dev; }; -struct scsi_idlun { - __u32 dev_id; - __u32 host_unique_id; +struct snd_dma_buffer { + struct snd_dma_device dev; + unsigned char *area; + dma_addr_t addr; + size_t bytes; + void *private_data; }; -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 snd_pcm_group { + spinlock_t lock; + struct mutex mutex; + struct list_head substreams; + refcount_t refs; }; -typedef u32 compat_caddr_t; +struct snd_pcm_str; -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 snd_pcm_runtime; -typedef __kernel_clock_t clock_t; +struct snd_timer; -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 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_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 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 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 mdiobus_devres { - struct mii_bus *mii; -}; +typedef int snd_pcm_state_t; -enum e1000_state_t { - __E1000_TESTING = 0, - __E1000_RESETTING = 1, - __E1000_ACCESS_SHARED_RESOURCE = 2, - __E1000_DOWN = 3, -}; +typedef long snd_pcm_sframes_t; -struct ich8_hsflctl { - u16 flcgo: 1; - u16 flcycle: 2; - u16 reserved: 5; - u16 fldbcount: 2; - u16 flockdn: 6; -}; +typedef int snd_pcm_access_t; -union ich8_hws_flash_ctrl { - struct ich8_hsflctl hsf_ctrl; - u16 regval; -}; +typedef int snd_pcm_format_t; -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; -}; +typedef int snd_pcm_subformat_t; -union ich8_hws_flash_status { - struct ich8_hsfsts hsf_status; - u16 regval; +union snd_pcm_sync_id { + unsigned char id[16]; + unsigned short id16[8]; + unsigned int id32[4]; }; -struct ich8_pr { - u32 base: 13; - u32 reserved1: 2; - u32 rpe: 1; - u32 limit: 13; - u32 reserved2: 2; - u32 wpe: 1; +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_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; }; -union ich8_flash_protected_range { - struct ich8_pr range; - u32 regval; +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 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 snd_compr_ops; -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 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 nvmem_type { - NVMEM_TYPE_UNKNOWN = 0, - NVMEM_TYPE_EEPROM = 1, - NVMEM_TYPE_OTP = 2, - NVMEM_TYPE_BATTERY_BACKED = 3, - NVMEM_TYPE_FRAM = 4, -}; +struct snd_compr_params; -typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t); +struct snd_codec; -typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t); +struct snd_compr_metadata; -struct nvmem_cell_info; +struct snd_compr_tstamp; -struct nvmem_keepout; +struct snd_compr_caps; -struct nvmem_layout; +struct snd_compr_codec_caps; -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 nvmem_layout *layout; - struct device_node *of_node; - bool no_of_node; - nvmem_reg_read_t reg_read; - nvmem_reg_write_t reg_write; - int size; - int word_size; - int stride; - void *priv; - bool compat; - struct device *base_dev; +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 *); }; -typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); +enum snd_compr_direction { + SND_COMPRESS_PLAYBACK = 0, + SND_COMPRESS_CAPTURE = 1, +}; -struct nvmem_cell_info { +struct snd_compr_runtime; + +struct snd_compr_stream { const char *name; - unsigned int offset; - size_t raw_len; - unsigned int bytes; - unsigned int bit_offset; - unsigned int nbits; - struct device_node *np; - nvmem_cell_post_process_t read_post_process; - void *priv; + struct 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 nvmem_keepout { - unsigned int start; - unsigned int end; - unsigned char value; +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 nvmem_device; +struct snd_compressed_buffer { + __u32 fragment_size; + __u32 fragments; +}; -struct nvmem_layout { - const char *name; - const struct of_device_id *of_match_table; - int (*add_cells)(struct device *, struct nvmem_device *, struct nvmem_layout *); - void (*fixup_cell_info)(struct nvmem_device *, struct nvmem_layout *, struct nvmem_cell_info *); - struct module *owner; - struct list_head node; +struct snd_enc_wma { + __u32 super_block_align; }; -struct rtc_device; +struct snd_enc_vorbis { + __s32 quality; + __u32 managed; + __u32 max_bit_rate; + __u32 min_bit_rate; + __u32 downmix; +}; -struct rtc_timer { - struct timerqueue_node node; - ktime_t period; - void (*func)(struct rtc_device *); - struct rtc_device *rtc; - int enabled; +struct snd_enc_real { + __u32 quant_bits; + __u32 start_region; + __u32 num_regions; }; -typedef __u64 timeu64_t; +struct snd_enc_flac { + __u32 num; + __u32 gain; +}; -struct rtc_class_ops; +struct snd_enc_generic { + __u32 bw; + __s32 reserved[15]; +}; -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 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 rtc_wkalrm; +struct snd_dec_wma { + __u32 encoder_option; + __u32 adv_encoder_option; + __u32 adv_encoder_option2; + __u32 reserved; +}; -struct rtc_param; +struct snd_dec_alac { + __u32 frame_length; + __u8 compatible_version; + __u8 pb; + __u8 mb; + __u8 kb; + __u32 max_run; + __u32 max_frame_bytes; +}; -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 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; }; -struct rtc_wkalrm { - unsigned char enabled; - unsigned char pending; - struct rtc_time time; +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 rtc_param { - __u64 param; - union { - __u64 uvalue; - __s64 svalue; - __u64 ptr; - }; - __u32 index; - __u32 __pad; +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 pm_domain_data { - struct list_head list_node; - struct device *dev; +struct snd_compr_params { + struct snd_compressed_buffer buffer; + struct snd_codec codec; + __u8 no_wake_mode; }; -struct sbi_domain_state { - bool available; - u32 state; +struct snd_compr_metadata { + __u32 key; + __u32 value[8]; }; -struct sbi_cpuidle_data { - u32 *states; - struct device *dev; +struct snd_compr_tstamp { + __u32 byte_offset; + __u32 copied_total; + __u32 pcm_frames; + __u32 pcm_io_frames; + __u32 sampling_rate; }; -enum gpd_status { - GENPD_STATE_ON = 0, - GENPD_STATE_OFF = 1, +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 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 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 cpuidle_state_kobj; +struct snd_compr_codec_caps { + __u32 codec; + __u32 num_descriptors; + struct snd_codec_desc descriptor[32]; +}; -struct cpuidle_driver_kobj; +struct snd_soc_dai_stream { + struct snd_soc_dapm_widget *widget; + unsigned int active; + unsigned int tdm_mask; + void *dma_data; +}; -struct cpuidle_device_kobj; +struct snd_soc_dai { + const char *name; + int id; + struct device *dev; + struct snd_soc_dai_driver *driver; + struct snd_soc_dai_stream stream[2]; + unsigned int rate; + unsigned int channels; + unsigned int sample_bits; + struct snd_soc_component *component; + struct list_head list; + struct snd_pcm_substream *mark_startup; + struct snd_pcm_substream *mark_hw_params; + struct snd_pcm_substream *mark_trigger; + struct snd_compr_stream *mark_compr_startup; + unsigned int probed: 1; +}; -struct cpuidle_device { - unsigned int registered: 1; - unsigned int enabled: 1; - unsigned int poll_time_limit: 1; - unsigned int cpu; - ktime_t next_hrtimer; - int last_state_idx; - u64 last_residency_ns; - u64 poll_limit_ns; - u64 forced_idle_latency_limit_ns; - struct cpuidle_state_usage states_usage[10]; - struct cpuidle_state_kobj *kobjs[10]; - struct cpuidle_driver_kobj *kobj_driver; - struct cpuidle_device_kobj *kobj_dev; - struct list_head device_list; +struct snd_soc_ops { + int (*startup)(struct snd_pcm_substream *); + void (*shutdown)(struct snd_pcm_substream *); + 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); }; -struct sbi_pd_provider { - struct list_head link; - struct device_node *node; +struct snd_soc_compr_ops { + int (*startup)(struct snd_compr_stream *); + void (*shutdown)(struct snd_compr_stream *); + int (*set_params)(struct snd_compr_stream *); }; -struct opp_table; - -struct dev_pm_opp; - -struct gpd_dev_ops { - int (*start)(struct device *); - int (*stop)(struct device *); -}; - -struct dev_power_governor; - -struct genpd_governor_data; - -struct genpd_power_state; - -struct genpd_lock_ops; - -struct generic_pm_domain { - struct device dev; - struct dev_pm_domain domain; - struct list_head gpd_list_node; - struct list_head parent_links; - struct list_head child_links; - struct list_head dev_list; - struct dev_power_governor *gov; - struct genpd_governor_data *gd; - struct work_struct power_off_work; - struct fwnode_handle *provider; - bool has_provider; - const char *name; - atomic_t sd_count; - enum gpd_status status; - unsigned int device_count; - unsigned int suspended_count; - unsigned int prepared_count; - unsigned int performance_state; - cpumask_var_t cpus; - bool synced_poweroff; - int (*power_off)(struct generic_pm_domain *); - int (*power_on)(struct generic_pm_domain *); - struct raw_notifier_head power_notifiers; - struct opp_table *opp_table; - unsigned int (*opp_to_performance_state)(struct generic_pm_domain *, struct dev_pm_opp *); - int (*set_performance_state)(struct generic_pm_domain *, unsigned int); - struct gpd_dev_ops dev_ops; - int (*attach_dev)(struct generic_pm_domain *, struct device *); - void (*detach_dev)(struct generic_pm_domain *, struct device *); - unsigned int flags; - struct genpd_power_state *states; - void (*free_states)(struct genpd_power_state *, unsigned int); - unsigned int state_count; - unsigned int state_idx; - u64 on_time; - u64 accounting_time; - const struct genpd_lock_ops *lock_ops; - union { - struct mutex mlock; - struct { - spinlock_t slock; - unsigned long lock_flags; - }; - }; -}; - -struct dev_power_governor { - bool (*power_down_ok)(struct dev_pm_domain *); - bool (*suspend_ok)(struct device *); +struct snd_soc_codec_conf { + struct snd_soc_dai_link_component dlc; + const char *name_prefix; }; -struct genpd_governor_data { - s64 max_off_time_ns; - bool max_off_time_changed; - ktime_t next_wakeup; - ktime_t next_hrtimer; - bool cached_power_down_ok; - bool cached_power_down_state_idx; +struct snd_soc_aux_dev { + struct snd_soc_dai_link_component dlc; + int (*init)(struct snd_soc_component *); }; -struct genpd_power_state { - s64 power_off_latency_ns; - s64 power_on_latency_ns; - s64 residency_ns; - u64 usage; - u64 rejected; - struct fwnode_handle *fwnode; - u64 idle_time; - void *data; +struct snd_soc_dapm_route { + const char *sink; + const char *control; + const char *source; + int (*connected)(struct snd_soc_dapm_widget *, struct snd_soc_dapm_widget *); + struct snd_soc_dobj dobj; }; -struct genpd_lock_ops { - void (*lock)(struct generic_pm_domain *); - void (*lock_nested)(struct generic_pm_domain *, int); - int (*lock_interruptible)(struct generic_pm_domain *); - void (*unlock)(struct generic_pm_domain *); +struct snd_soc_dapm_update { + struct snd_kcontrol *kcontrol; + int reg; + int mask; + int val; + int reg2; + int mask2; + int val2; + bool has_second_set; }; -struct cpuidle_driver; +struct snd_soc_jack; -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 snd_compress_ops; -struct cpuidle_driver { +struct snd_soc_component_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; + const struct snd_kcontrol_new *controls; + unsigned int num_controls; + const struct snd_soc_dapm_widget *dapm_widgets; + unsigned int num_dapm_widgets; + const struct snd_soc_dapm_route *dapm_routes; + unsigned int num_dapm_routes; + int (*probe)(struct snd_soc_component *); + void (*remove)(struct snd_soc_component *); + int (*suspend)(struct snd_soc_component *); + int (*resume)(struct snd_soc_component *); + unsigned int (*read)(struct snd_soc_component *, unsigned int); + int (*write)(struct snd_soc_component *, unsigned int, unsigned int); + int (*pcm_construct)(struct snd_soc_component *, struct snd_soc_pcm_runtime *); + void (*pcm_destruct)(struct snd_soc_component *, struct snd_pcm *); + int (*set_sysclk)(struct snd_soc_component *, int, int, unsigned int, int); + int (*set_pll)(struct snd_soc_component *, int, int, unsigned int, unsigned int); + int (*set_jack)(struct snd_soc_component *, struct snd_soc_jack *, void *); + int (*get_jack_type)(struct snd_soc_component *); + int (*of_xlate_dai_name)(struct snd_soc_component *, const struct of_phandle_args *, const char **); + int (*of_xlate_dai_id)(struct snd_soc_component *, struct device_node *); + void (*seq_notifier)(struct snd_soc_component *, enum snd_soc_dapm_type, int); + int (*stream_event)(struct snd_soc_component *, int); + int (*set_bias_level)(struct snd_soc_component *, enum snd_soc_bias_level); + int (*open)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*close)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*ioctl)(struct snd_soc_component *, struct snd_pcm_substream *, unsigned int, void *); + int (*hw_params)(struct snd_soc_component *, struct snd_pcm_substream *, struct snd_pcm_hw_params *); + int (*hw_free)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*prepare)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*trigger)(struct snd_soc_component *, struct snd_pcm_substream *, int); + int (*sync_stop)(struct snd_soc_component *, struct snd_pcm_substream *); + snd_pcm_uframes_t (*pointer)(struct snd_soc_component *, struct snd_pcm_substream *); + int (*get_time_info)(struct snd_soc_component *, struct snd_pcm_substream *, struct timespec64 *, struct timespec64 *, struct snd_pcm_audio_tstamp_config *, struct snd_pcm_audio_tstamp_report *); + int (*copy)(struct snd_soc_component *, struct snd_pcm_substream *, int, unsigned long, struct iov_iter *, unsigned long); + struct page * (*page)(struct snd_soc_component *, struct snd_pcm_substream *, unsigned long); + int (*mmap)(struct snd_soc_component *, struct snd_pcm_substream *, struct vm_area_struct *); + int (*ack)(struct snd_soc_component *, struct snd_pcm_substream *); + snd_pcm_sframes_t (*delay)(struct snd_soc_component *, struct snd_pcm_substream *); + const struct snd_compress_ops *compress_ops; + int probe_order; + int remove_order; + enum snd_soc_trigger_order trigger_start; + enum snd_soc_trigger_order trigger_stop; + unsigned int module_get_upon_open: 1; + unsigned int idle_bias_on: 1; + unsigned int suspend_bias_off: 1; + unsigned int use_pmdown_time: 1; + unsigned int endianness: 1; + unsigned int legacy_dai_naming: 1; + const char *ignore_machine; + const char *topology_name_prefix; + int (*be_hw_params_fixup)(struct snd_soc_pcm_runtime *, struct snd_pcm_hw_params *); + bool use_dai_pcm_id; + int be_pcm_base; + const char *debugfs_prefix; +}; + +struct snd_jack; + +struct snd_soc_jack { + struct mutex mutex; + struct snd_jack *jack; + struct snd_soc_card *card; + struct list_head pins; + int status; + struct blocking_notifier_head notifier; + struct list_head jack_zones; +}; + +struct snd_compress_ops { + int (*open)(struct snd_soc_component *, struct snd_compr_stream *); + int (*free)(struct snd_soc_component *, struct snd_compr_stream *); + int (*set_params)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_params *); + int (*get_params)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_codec *); + int (*set_metadata)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_metadata *); + int (*get_metadata)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_metadata *); + int (*trigger)(struct snd_soc_component *, struct snd_compr_stream *, int); + int (*pointer)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_tstamp *); + int (*copy)(struct snd_soc_component *, struct snd_compr_stream *, char __attribute__((btf_type_tag("user"))) *, size_t); + int (*mmap)(struct snd_soc_component *, struct snd_compr_stream *, struct vm_area_struct *); + int (*ack)(struct snd_soc_component *, struct snd_compr_stream *, size_t); + int (*get_caps)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_caps *); + int (*get_codec_caps)(struct snd_soc_component *, struct snd_compr_stream *, struct snd_compr_codec_caps *); +}; + +struct snd_soc_dai_ops { + int (*probe)(struct snd_soc_dai *); + int (*remove)(struct snd_soc_dai *); + int (*compress_new)(struct snd_soc_pcm_runtime *, int); + int (*pcm_new)(struct snd_soc_pcm_runtime *, struct snd_soc_dai *); + int (*set_sysclk)(struct snd_soc_dai *, int, unsigned int, int); + int (*set_pll)(struct snd_soc_dai *, int, int, unsigned int, unsigned int); + int (*set_clkdiv)(struct snd_soc_dai *, int, int); + int (*set_bclk_ratio)(struct snd_soc_dai *, unsigned int); + int (*set_fmt)(struct snd_soc_dai *, unsigned int); + int (*xlate_tdm_slot_mask)(unsigned int, unsigned int *, unsigned int *); + int (*set_tdm_slot)(struct snd_soc_dai *, unsigned int, unsigned int, int, int); + int (*set_channel_map)(struct snd_soc_dai *, unsigned int, unsigned int *, unsigned int, unsigned int *); + int (*get_channel_map)(struct snd_soc_dai *, unsigned int *, unsigned int *, unsigned int *, unsigned int *); + int (*set_tristate)(struct snd_soc_dai *, int); + int (*set_stream)(struct snd_soc_dai *, void *, int); + void * (*get_stream)(struct snd_soc_dai *, int); + int (*mute_stream)(struct snd_soc_dai *, int, int); + int (*startup)(struct snd_pcm_substream *, struct snd_soc_dai *); + void (*shutdown)(struct snd_pcm_substream *, struct snd_soc_dai *); + int (*hw_params)(struct snd_pcm_substream *, struct snd_pcm_hw_params *, struct snd_soc_dai *); + int (*hw_free)(struct snd_pcm_substream *, struct snd_soc_dai *); + int (*prepare)(struct snd_pcm_substream *, struct snd_soc_dai *); + int (*trigger)(struct snd_pcm_substream *, int, struct snd_soc_dai *); + int (*bespoke_trigger)(struct snd_pcm_substream *, int, struct snd_soc_dai *); + snd_pcm_sframes_t (*delay)(struct snd_pcm_substream *, struct snd_soc_dai *); + u64 *auto_selectable_formats; + int num_auto_selectable_formats; + int probe_order; + int remove_order; + unsigned int no_capture_mute: 1; + unsigned int mute_unmute_on_trigger: 1; +}; + +struct snd_soc_cdai_ops { + int (*startup)(struct snd_compr_stream *, struct snd_soc_dai *); + int (*shutdown)(struct snd_compr_stream *, struct snd_soc_dai *); + int (*set_params)(struct snd_compr_stream *, struct snd_compr_params *, struct snd_soc_dai *); + int (*get_params)(struct snd_compr_stream *, struct snd_codec *, struct snd_soc_dai *); + int (*set_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *, struct snd_soc_dai *); + int (*get_metadata)(struct snd_compr_stream *, struct snd_compr_metadata *, struct snd_soc_dai *); + int (*trigger)(struct snd_compr_stream *, int, struct snd_soc_dai *); + int (*pointer)(struct snd_compr_stream *, struct snd_compr_tstamp *, struct snd_soc_dai *); + int (*ack)(struct snd_compr_stream *, size_t, struct snd_soc_dai *); }; 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, + SOCK_WAKE_IO = 0, + SOCK_WAKE_WAITD = 1, + SOCK_WAKE_SPACE = 2, + SOCK_WAKE_URG = 3, }; -typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool); - -struct extcon_cable; - -struct extcon_dev { - const char *name; - const unsigned int *supported_cable; - const u32 *mutually_exclusive; - struct device dev; - unsigned int id; - struct raw_notifier_head nh_all; - struct raw_notifier_head *nh; - struct list_head entry; - int max_supported; - spinlock_t lock; - u32 state; - struct device_type extcon_dev_type; - struct extcon_cable *cables; - struct attribute_group attr_g_muex; - struct attribute **attrs_muex; - struct device_attribute *d_attrs_muex; +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, }; -struct extcon_dev_notifier_devres { - struct extcon_dev *edev; - unsigned int id; - struct notifier_block *nb; +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, }; -struct neigh_sysctl_table { - struct ctl_table_header *sysctl_header; - struct ctl_table neigh_vars[22]; +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 { - 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 fib_event_type { + FIB_EVENT_ENTRY_REPLACE = 0, + FIB_EVENT_ENTRY_APPEND = 1, + FIB_EVENT_ENTRY_ADD = 2, + FIB_EVENT_ENTRY_DEL = 3, + FIB_EVENT_RULE_ADD = 4, + FIB_EVENT_RULE_DEL = 5, + FIB_EVENT_NH_ADD = 6, + FIB_EVENT_NH_DEL = 7, + FIB_EVENT_VIF_ADD = 8, + FIB_EVENT_VIF_DEL = 9, }; -enum { - NEIGH_ARP_TABLE = 0, - NEIGH_ND_TABLE = 1, - NEIGH_DN_TABLE = 2, - NEIGH_NR_TABLES = 3, - NEIGH_LINK_TABLE = 3, +struct atomic_notifier_head { + spinlock_t lock; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -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, +struct fib_notifier_net { + struct list_head fib_notifier_ops; + struct atomic_notifier_head fib_chain; }; -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, +struct fib_notifier_info { + int family; + struct netlink_ext_ack *extack; }; -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, -}; +struct Qdisc_class_ops; -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 gnet_dump; -struct neighbour_cb { - unsigned long sched_next; - unsigned int flags; +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 seq_net_private { - struct net *net; - netns_tracker ns_tracker; -}; +struct tcmsg; -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; +struct qdisc_walker; + +struct tcf_block; + +struct Qdisc_class_ops { unsigned int flags; + struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *); + int (*graft)(struct Qdisc *, unsigned long, struct Qdisc *, struct Qdisc **, struct netlink_ext_ack *); + struct Qdisc * (*leaf)(struct Qdisc *, unsigned long); + void (*qlen_notify)(struct Qdisc *, unsigned long); + unsigned long (*find)(struct Qdisc *, u32); + int (*change)(struct Qdisc *, u32, u32, struct nlattr **, unsigned long *, struct netlink_ext_ack *); + int (*delete)(struct Qdisc *, unsigned long, struct netlink_ext_ack *); + void (*walk)(struct Qdisc *, struct qdisc_walker *); + struct tcf_block * (*tcf_block)(struct Qdisc *, unsigned long, struct netlink_ext_ack *); + unsigned long (*bind_tcf)(struct Qdisc *, unsigned long, u32); + void (*unbind_tcf)(struct Qdisc *, unsigned long); + int (*dump)(struct Qdisc *, unsigned long, struct sk_buff *, struct tcmsg *); + int (*dump_stats)(struct Qdisc *, unsigned long, struct gnet_dump *); }; -struct neigh_dump_filter { - int master_idx; - int dev_idx; +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 ndtmsg { - __u8 ndtm_family; - __u8 ndtm_pad1; - __u16 ndtm_pad2; +struct qdisc_walker { + int stop; + int skip; + int count; + int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *); }; -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 flow_block { + struct list_head cb_list; }; -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 tcf_chain; -struct nda_cacheinfo { - __u32 ndm_confirmed; - __u32 ndm_used; - __u32 ndm_updated; - __u32 ndm_refcnt; +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 bpf_mem_caches; +struct tcf_proto; -struct bpf_mem_cache; +struct tcf_proto_ops; -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; +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 bpf_local_storage_map_bucket; +struct tcf_result; -struct bpf_local_storage_map { - struct bpf_map map; - struct bpf_local_storage_map_bucket *buckets; - u32 bucket_log; - u16 elem_size; - u16 cache_idx; - struct bpf_mem_alloc selem_ma; - struct bpf_mem_alloc storage_ma; - bool bpf_ma; - long: 64; -}; - -struct bpf_local_storage_map_bucket { - struct hlist_head list; - raw_spinlock_t lock; -}; - -struct bpf_mem_cache { - struct llist_head free_llist; - local_t active; - struct llist_head free_llist_extra; - struct irq_work refill_work; - struct obj_cgroup *objcg; - int unit_size; - int free_cnt; - int low_watermark; - int high_watermark; - int batch; - int percpu_size; +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 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_local_storage_data { - struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap; - u8 data[0]; + struct hlist_node destroy_ht_node; }; -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 tcf_result { + union { + struct { + unsigned long class; + u32 classid; + }; + const struct tcf_proto *goto_tp; + }; + enum skb_drop_reason drop_reason; }; -typedef void (*btf_trace_bpf_test_finish)(void *, int *); +typedef int flow_setup_cb_t(enum tc_setup_type, void *, void *); -typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32); +struct tcf_walker; -struct btf_id_set8; +struct tcf_exts; -struct btf_kfunc_id_set { +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; - struct btf_id_set8 *set; - btf_kfunc_filter_t filter; + int flags; }; -struct btf_id_set8 { - u32 cnt; - u32 flags; - struct { - u32 id; - u32 flags; - } pairs[0]; +struct tcf_walker { + int stop; + int skip; + int count; + bool nonempty; + unsigned long cookie; + int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); }; -struct bpf_test_timer { - enum { - NO_PREEMPT = 0, - NO_MIGRATE = 1, - } mode; - u32 i; - u64 time_start; - u64 time_spent; +struct tcf_exts { + int action; + int police; }; -enum sk_action { - SK_DROP = 0, - SK_PASS = 1, +struct tc_stats { + __u64 bytes; + __u32 packets; + __u32 drops; + __u32 overlimits; + __u32 bps; + __u32 pps; + __u32 qlen; + __u32 backlog; }; -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, +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; }; -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, +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; }; -enum bpf_cgroup_storage_type { - BPF_CGROUP_STORAGE_SHARED = 0, - BPF_CGROUP_STORAGE_PERCPU = 1, - __BPF_CGROUP_STORAGE_MAX = 2, +struct qdisc_size_table { + struct callback_head rcu; + struct list_head list; + struct tc_sizespec szopts; + int refcnt; + u16 data[0]; }; -enum xdp_action { - XDP_ABORTED = 0, - XDP_DROP = 1, - XDP_PASS = 2, - XDP_TX = 3, - XDP_REDIRECT = 4, +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; }; -enum xdp_buff_flags { - XDP_FLAGS_HAS_FRAGS = 1, - XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, +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, }; -enum xdp_mem_type { - MEM_TYPE_PAGE_SHARED = 0, - MEM_TYPE_PAGE_ORDER0 = 1, - MEM_TYPE_PAGE_POOL = 2, - MEM_TYPE_XSK_BUFF_POOL = 3, - MEM_TYPE_MAX = 4, +struct netdev_notifier_info { + struct net_device *dev; + struct netlink_ext_ack *extack; }; -struct bpf_fentry_test_t { - struct bpf_fentry_test_t *a; -}; +struct genl_split_ops; -struct trace_event_raw_bpf_test_finish { - struct trace_entry ent; - int err; - char __data[0]; +struct genl_info; + +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 ipv6hdr { - __u8 priority: 4; - __u8 version: 4; - __u8 flow_lbl[3]; - __be16 payload_len; - __u8 nexthdr; - __u8 hop_limit; +struct genl_split_ops { union { struct { - struct in6_addr saddr; - struct in6_addr daddr; + 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 { - struct in6_addr saddr; - struct in6_addr daddr; - } addrs; + 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 qdisc_skb_cb { - struct { - unsigned int pkt_len; - u16 slave_dev_queue_mapping; - u16 tc_classid; - }; - unsigned char data[20]; -}; +struct genlmsghdr; -struct bpf_skb_data_end { - struct qdisc_skb_cb qdisc_cb; - void *data_meta; - void *data_end; +struct genl_info { + u32 snd_seq; + u32 snd_portid; + const struct genl_family *family; + const struct nlmsghdr *nlhdr; + struct genlmsghdr *genlhdr; + struct nlattr **attrs; + possible_net_t _net; + void *user_ptr[2]; + struct netlink_ext_ack *extack; }; -struct bpf_nh_params { - u32 nh_family; - union { - u32 ipv4_nh; - struct in6_addr ipv6_nh; - }; +struct genlmsghdr { + __u8 cmd; + __u8 version; + __u16 reserved; }; -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 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; }; -typedef sockptr_t bpfptr_t; - -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 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 xdp_page_head { - struct xdp_buff orig_ctx; - struct xdp_buff ctx; - union { - struct { - struct {} __empty_frame; - struct xdp_frame frame[0]; - }; - struct { - struct {} __empty_data; - u8 data[0]; - }; - }; +struct genl_multicast_group { + char name[16]; + u8 flags; + u8 cap_sys_admin: 1; }; -struct bpf_flow_keys; - -struct bpf_flow_dissector { - struct bpf_flow_keys *flow_keys; - const struct sk_buff *skb; - const void *data; - const void *data_end; +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, }; -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; +enum genl_validate_flags { + GENL_DONT_VALIDATE_STRICT = 1, + GENL_DONT_VALIDATE_DUMP = 2, + GENL_DONT_VALIDATE_DUMP_STRICT = 4, }; -struct btf_id_dtor_kfunc { - u32 btf_id; - u32 kfunc_btf_id; +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, }; -struct trace_event_data_offsets_bpf_test_finish {}; +enum { + CTRL_ATTR_OP_UNSPEC = 0, + CTRL_ATTR_OP_ID = 1, + CTRL_ATTR_OP_FLAGS = 2, + __CTRL_ATTR_OP_MAX = 3, +}; -struct prog_test_member1 { - int a; +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, }; -struct prog_test_member { - struct prog_test_member1 m; - int c; +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 prog_test_ref_kfunc { - int a; - int b; - struct prog_test_member memb; - struct prog_test_ref_kfunc *next; - refcount_t cnt; +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, }; -struct bpf_raw_tp_test_run_info { - struct bpf_prog *prog; - void *ctx; - u32 retval; -}; - -struct bpf_sock; - -struct __sk_buff { - __u32 len; - __u32 pkt_type; - __u32 mark; - __u32 queue_mapping; - __u32 protocol; - __u32 vlan_present; - __u32 vlan_tci; - __u32 vlan_proto; - __u32 priority; - __u32 ingress_ifindex; - __u32 ifindex; - __u32 tc_index; - __u32 cb[5]; - __u32 hash; - __u32 tc_classid; - __u32 data; - __u32 data_end; - __u32 napi_id; - __u32 family; - __u32 remote_ip4; - __u32 local_ip4; - __u32 remote_ip6[4]; - __u32 local_ip6[4]; - __u32 remote_port; - __u32 local_port; - __u32 data_meta; - union { - struct bpf_flow_keys *flow_keys; - }; - __u64 tstamp; - __u32 wire_len; - __u32 gso_segs; - union { - struct bpf_sock *sk; - }; - __u32 gso_size; - __u8 tstamp_type; - __u64 hwtstamp; +struct 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 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 genl_dumpit_info { + struct genl_split_ops op; + struct genl_info info; }; -struct bpf_cg_run_ctx { - struct bpf_run_ctx run_ctx; - const struct bpf_prog_array_item *prog_item; - int retval; -}; +struct netlink_policy_dump_state; -struct bpf_sk_lookup_kern { - u16 family; - u16 protocol; - __be16 sport; - u16 dport; - struct { - __be32 saddr; - __be32 daddr; - } v4; - struct { - const struct in6_addr *saddr; - const struct in6_addr *daddr; - } v6; - struct sock *selected_sk; - u32 ingress_ifindex; - bool no_reuseport; +struct 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 bpf_sk_lookup { - union { - union { - struct bpf_sock *sk; - }; - __u64 cookie; - }; - __u32 family; - __u32 protocol; - __u32 remote_ip4; - __u32 remote_ip6[4]; - __be16 remote_port; - __u32 local_ip4; - __u32 local_ip6[4]; - __u32 local_port; - __u32 ingress_ifindex; +struct netlink_kernel_cfg { + unsigned int groups; + unsigned int flags; + void (*input)(struct sk_buff *); + struct mutex *cb_mutex; + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, unsigned long *); }; -struct bpf_nf_ctx { - const struct nf_hook_state *state; - struct sk_buff *skb; +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 { - 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, +struct netlink_dump_control { + int (*start)(struct netlink_callback *); + int (*dump)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + struct netlink_ext_ack *extack; + void *data; + struct module *module; + u32 min_dump_alloc; }; -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, -}; +struct ethnl_req_info; -enum sock_type { - SOCK_STREAM = 1, - SOCK_DGRAM = 2, - SOCK_RAW = 3, - SOCK_RDM = 4, - SOCK_SEQPACKET = 5, - SOCK_DCCP = 6, - SOCK_PACKET = 10, -}; +struct ethnl_reply_data; -enum { - INET_ECN_NOT_ECT = 0, - INET_ECN_ECT_1 = 1, - INET_ECN_ECT_0 = 2, - INET_ECN_CE = 3, - INET_ECN_MASK = 3, +struct ethnl_request_ops { + u8 request_cmd; + u8 reply_cmd; + u16 hdr_attr; + unsigned int req_info_size; + unsigned int reply_data_size; + bool allow_nodev_do; + u8 set_ntf_cmd; + int (*parse_request)(struct ethnl_req_info *, struct nlattr **, struct netlink_ext_ack *); + int (*prepare_data)(const struct ethnl_req_info *, struct ethnl_reply_data *, const struct genl_info *); + int (*reply_size)(const struct ethnl_req_info *, const struct ethnl_reply_data *); + int (*fill_reply)(struct sk_buff *, const struct ethnl_req_info *, const struct ethnl_reply_data *); + void (*cleanup_data)(struct ethnl_reply_data *); + int (*set_validate)(struct ethnl_req_info *, struct genl_info *); + int (*set)(struct ethnl_req_info *, struct genl_info *); }; -enum pkt_hash_types { - PKT_HASH_TYPE_NONE = 0, - PKT_HASH_TYPE_L2 = 1, - PKT_HASH_TYPE_L3 = 2, - PKT_HASH_TYPE_L4 = 3, +struct ethnl_req_info { + struct net_device *dev; + netdevice_tracker dev_tracker; + u32 flags; }; -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 = 22, - MAX_CGROUP_BPF_ATTACH_TYPE = 23, +struct ethnl_reply_data { + struct net_device *dev; }; 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, + 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, }; 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, + NLA_UNSPEC = 0, + NLA_U8 = 1, + NLA_U16 = 2, + NLA_U32 = 3, + NLA_U64 = 4, + NLA_STRING = 5, + NLA_FLAG = 6, + NLA_MSECS = 7, + NLA_NESTED = 8, + NLA_NESTED_ARRAY = 9, + NLA_NUL_STRING = 10, + NLA_BINARY = 11, + NLA_S8 = 12, + NLA_S16 = 13, + NLA_S32 = 14, + NLA_S64 = 15, + NLA_BITFIELD32 = 16, + NLA_REJECT = 17, + NLA_BE16 = 18, + NLA_BE32 = 19, + NLA_SINT = 20, + NLA_UINT = 21, + __NLA_TYPE_MAX = 22, }; -enum { - LWTUNNEL_XMIT_DONE = 0, - LWTUNNEL_XMIT_CONTINUE = 1, +struct plca_reply_data { + struct ethnl_reply_data base; + struct phy_plca_cfg plca_cfg; + struct phy_plca_status plca_st; }; -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, +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 *); }; -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, +struct inet_peer_base { + struct rb_root rb_root; + seqlock_t lock; + int total; }; -enum { - SKBFL_ZEROCOPY_ENABLE = 1, - SKBFL_SHARED_FRAG = 2, - SKBFL_PURE_ZEROCOPY = 4, - SKBFL_DONT_ORPHAN = 8, - SKBFL_MANAGED_FRAG_REFS = 16, -}; +struct xfrm_address_filter; -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 xfrm_state_walk { + struct list_head all; + u8 state; + u8 dying; + u8 proto; + u32 seq; + struct xfrm_address_filter *filter; }; -struct inet_cork_full { - struct inet_cork base; - struct flowi fl; +struct xfrm_replay_state { + __u32 oseq; + __u32 seq; + __u32 bitmap; }; -struct ipv6_pinfo; - -struct ip_mc_socklist; +enum xfrm_replay_mode { + XFRM_REPLAY_MODE_LEGACY = 0, + XFRM_REPLAY_MODE_BMP = 1, + XFRM_REPLAY_MODE_ESN = 2, +}; -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; - atomic_t inet_id; - __be16 inet_sport; - __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 xfrm_stats { + __u32 replay_window; + __u32 replay; + __u32 integrity_failed; }; -struct in6_pktinfo { - struct in6_addr ipi6_addr; - int ipi6_ifindex; +struct xfrm_mode { + u8 encap; + u8 family; + u8 flags; }; -struct ipv6_txoptions; +struct xfrm_algo_auth; -struct inet6_cork { - struct ipv6_txoptions *opt; - u8 hop_limit; - u8 tclass; -}; +struct xfrm_algo; -struct ipv6_mc_socklist; +struct xfrm_algo_aead; -struct ipv6_ac_socklist; +struct xfrm_encap_tmpl; -struct ipv6_fl_socklist; +struct xfrm_replay_state_esn; -struct ipv6_pinfo { - struct in6_addr saddr; - struct in6_pktinfo sticky_pktinfo; - const struct in6_addr *daddr_cache; - const struct in6_addr *saddr_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 xfrm_type; -struct ip6_sf_socklist; +struct xfrm_type_offload; -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 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 ip6_sf_socklist { - unsigned int sl_max; - unsigned int sl_count; - struct callback_head rcu; - struct in6_addr sl_addr[0]; +struct xfrm_address_filter { + xfrm_address_t saddr; + xfrm_address_t daddr; + __u16 family; + __u8 splen; + __u8 dplen; }; -struct ipv6_ac_socklist { - struct in6_addr acl_addr; - int acl_ifindex; - struct ipv6_ac_socklist *acl_next; +struct xfrm_algo_auth { + char alg_name[64]; + unsigned int alg_key_len; + unsigned int alg_trunc_len; + char alg_key[0]; }; -struct ip6_flowlabel; +struct xfrm_algo { + char alg_name[64]; + unsigned int alg_key_len; + char alg_key[0]; +}; -struct ipv6_fl_socklist { - struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *next; - struct ip6_flowlabel *fl; - struct callback_head rcu; +struct xfrm_algo_aead { + char alg_name[64]; + unsigned int alg_key_len; + unsigned int alg_icv_len; + char alg_key[0]; }; -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 xfrm_encap_tmpl { + __u16 encap_type; + __be16 encap_sport; + __be16 encap_dport; + xfrm_address_t encap_oa; }; -struct ipv6_opt_hdr; +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 ipv6_rt_hdr; +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 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 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 ipv6_opt_hdr { - __u8 nexthdr; - __u8 hdrlen; +struct xfrm_sec_ctx { + __u8 ctx_doi; + __u8 ctx_alg; + __u16 ctx_len; + __u32 ctx_sid; + char ctx_str[0]; }; -struct ipv6_rt_hdr { - __u8 nexthdr; - __u8 hdrlen; - __u8 type; - __u8 segments_left; +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 ip_mreqn { - struct in_addr imr_multiaddr; - struct in_addr imr_address; - int imr_ifindex; +struct rt6key { + struct in6_addr addr; + int plen; }; -struct ip_sf_socklist; +struct rtable; -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 fnhe_hash_bucket; -struct ip_sf_socklist { - unsigned int sl_max; - unsigned int sl_count; - struct callback_head rcu; - __be32 sl_addr[0]; +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 mmpin { - struct user_struct *user; - unsigned int num_pg; +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 ubuf_info_msgzc { - struct ubuf_info ubuf; +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 { - unsigned long desc; - void *ctx; - }; - struct { - u32 id; - u16 len; - u16 zerocopy: 1; - u32 bytelen; - }; + struct list_head fib6_siblings; + struct list_head nh_list; }; - struct mmpin mmp; + 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 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 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_node __attribute__((btf_type_tag("rcu"))) *subtree; + 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 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 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 nf_conntrack { - refcount_t use; +struct dst_metrics { + u32 metrics[17]; + refcount_t refcnt; }; -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 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 ip_fraglist_iter { - struct sk_buff *frag; - struct iphdr *iph; - int offset; - unsigned int hlen; +struct fib_nh_exception; + +struct fnhe_hash_bucket { + struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *chain; }; -struct sockcm_cookie { - u64 transmit_time; - u32 mark; - u32 tsflags; +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 ipcm_cookie { - struct sockcm_cookie sockc; - __be32 addr; - int oif; - struct ip_options_rcu *opt; - __u8 protocol; - __u8 ttl; - __s16 tos; - char priority; - __u16 gso_size; +struct rt6_info { + struct dst_entry dst; + struct fib6_info __attribute__((btf_type_tag("rcu"))) *from; + int sernum; + struct rt6key rt6i_dst; + struct rt6key rt6i_src; + struct in6_addr rt6i_gateway; + struct inet6_dev *rt6i_idev; + u32 rt6i_flags; + unsigned short rt6i_nfheader_len; }; -struct ip_reply_arg { - struct kvec iov[1]; - int flags; - __wsum csum; - int csumoffset; - int bound_dev_if; - u8 tos; - kuid_t uid; +struct rt6_exception_bucket { + struct hlist_head chain; + int depth; }; -struct ip_options_data { - struct ip_options_rcu opt; - char data[40]; +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 ip6addrlbl_init_table { - const struct in6_addr *prefix; - int prefixlen; - u32 label; +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 *); }; -enum rtnl_link_flags { - RTNL_FLAG_DOIT_UNLOCKED = 1, - RTNL_FLAG_BULK_DEL_SUPPORTED = 2, +struct nd_opt_hdr { + __u8 nd_opt_type; + __u8 nd_opt_len; }; -enum { - IFAL_ADDRESS = 1, - IFAL_LABEL = 2, - __IFAL_MAX = 3, +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 ip6addrlbl_entry { +struct prefix_info { + __u8 type; + __u8 length; + __u8 prefix_len; + union { + __u8 flags; + struct { + __u8 reserved: 6; + __u8 autoconf: 1; + __u8 onlink: 1; + }; + }; + __be32 valid; + __be32 prefered; + __be32 reserved2; struct in6_addr prefix; - 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 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 snmp_mib { - const char *name; - int entry; -}; +struct ip_sf_list; -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; +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 proc_dir_entry *procfs; - struct dentry *pipefs; + struct ip_mc_list *next; + struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *next_rcu; }; - struct net *net; + 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 cache_queue { - struct list_head list; - int reader; +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 cache_request { - struct cache_queue q; - struct cache_head *item; - char *buf; - int len; - int readers; +enum { + INET_FLAGS_PKTINFO = 0, + INET_FLAGS_TTL = 1, + INET_FLAGS_TOS = 2, + INET_FLAGS_RECVOPTS = 3, + INET_FLAGS_RETOPTS = 4, + INET_FLAGS_PASSSEC = 5, + INET_FLAGS_ORIGDSTADDR = 6, + INET_FLAGS_CHECKSUM = 7, + INET_FLAGS_RECVFRAGSIZE = 8, + INET_FLAGS_RECVERR = 9, + INET_FLAGS_RECVERR_RFC4884 = 10, + INET_FLAGS_FREEBIND = 11, + INET_FLAGS_HDRINCL = 12, + INET_FLAGS_MC_LOOP = 13, + INET_FLAGS_MC_ALL = 14, + INET_FLAGS_TRANSPARENT = 15, + INET_FLAGS_IS_ICSK = 16, + INET_FLAGS_NODEFRAG = 17, + INET_FLAGS_BIND_ADDRESS_NO_PORT = 18, + INET_FLAGS_DEFER_CONNECT = 19, + INET_FLAGS_MC6_LOOP = 20, + INET_FLAGS_RECVERR6_RFC4884 = 21, + INET_FLAGS_MC6_ALL = 22, + INET_FLAGS_AUTOFLOWLABEL_SET = 23, + INET_FLAGS_AUTOFLOWLABEL = 24, + INET_FLAGS_DONTFRAG = 25, + INET_FLAGS_RECVERR6 = 26, + INET_FLAGS_REPFLOW = 27, + INET_FLAGS_RTALERT_ISOLATE = 28, + INET_FLAGS_SNDFLOW = 29, }; -struct thread_deferred_req { - struct cache_deferred_req handle; - struct completion completion; +enum sock_type { + SOCK_STREAM = 1, + SOCK_DGRAM = 2, + SOCK_RAW = 3, + SOCK_RDM = 4, + SOCK_SEQPACKET = 5, + SOCK_DCCP = 6, + SOCK_PACKET = 10, }; -struct rpc_pipe; - -struct rpc_inode { - struct inode vfs_inode; - void *private; - struct rpc_pipe *pipe; - wait_queue_head_t waitq; +enum { + IPPROTO_IP = 0, + IPPROTO_ICMP = 1, + IPPROTO_IGMP = 2, + IPPROTO_IPIP = 4, + IPPROTO_TCP = 6, + IPPROTO_EGP = 8, + IPPROTO_PUP = 12, + IPPROTO_UDP = 17, + IPPROTO_IDP = 22, + IPPROTO_TP = 29, + IPPROTO_DCCP = 33, + IPPROTO_IPV6 = 41, + IPPROTO_RSVP = 46, + IPPROTO_GRE = 47, + IPPROTO_ESP = 50, + IPPROTO_AH = 51, + IPPROTO_MTP = 92, + IPPROTO_BEETPH = 94, + IPPROTO_ENCAP = 98, + IPPROTO_PIM = 103, + IPPROTO_COMP = 108, + IPPROTO_L2TP = 115, + IPPROTO_SCTP = 132, + IPPROTO_UDPLITE = 136, + IPPROTO_MPLS = 137, + IPPROTO_ETHERNET = 143, + IPPROTO_RAW = 255, + IPPROTO_MPTCP = 262, + IPPROTO_MAX = 263, }; -struct rpc_pipe_ops; +enum { + INET_ECN_NOT_ECT = 0, + INET_ECN_ECT_1 = 1, + INET_ECN_ECT_0 = 2, + INET_ECN_CE = 3, + INET_ECN_MASK = 3, +}; -struct 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; +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, }; -struct rpc_pipe_msg; +struct ip_options; -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 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 rpc_pipe_msg { - struct list_head list; - void *data; - size_t len; - size_t copied; - int errno; +struct inet_cork_full { + struct inet_cork base; + struct flowi fl; }; -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 ipv6_pinfo; -struct cache_reader { - struct cache_queue q; - int offset; -}; +struct ip_options_rcu; -enum { - RADIX_TREE_ITER_TAG_MASK = 15, - RADIX_TREE_ITER_TAGGED = 16, - RADIX_TREE_ITER_CONTIG = 32, -}; +struct ip_mc_socklist; -struct radix_tree_iter { - unsigned long index; - unsigned long next_index; - unsigned long tags; - struct xa_node *node; +struct inet_sock { + struct sock sk; + struct ipv6_pinfo *pinet6; + unsigned long inet_flags; + __be32 inet_saddr; + __s16 uc_ttl; + __be16 inet_sport; + struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *inet_opt; + atomic_t inet_id; + __u8 tos; + __u8 min_ttl; + __u8 mc_ttl; + __u8 pmtudisc; + __u8 rcv_tos; + __u8 convert_csum; + int uc_index; + int mc_index; + __be32 mc_addr; + struct { + __u16 lo; + __u16 hi; + } local_port_range; + struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *mc_list; + struct inet_cork_full cork; }; -struct ida_bitmap { - unsigned long bitmap[16]; +struct in6_pktinfo { + struct in6_addr ipi6_addr; + int ipi6_ifindex; }; -typedef struct { - unsigned long key[2]; -} hsiphash_key_t; +struct ipv6_txoptions; -typedef u16 efi_char16_t; +struct inet6_cork { + struct ipv6_txoptions *opt; + u8 hop_limit; + u8 tclass; +}; -typedef unsigned long efi_status_t; +struct ipv6_mc_socklist; -union efi_simple_text_output_protocol; +struct ipv6_ac_socklist; -typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t; +struct ipv6_fl_socklist; -union efi_simple_text_output_protocol { - struct { - void *reset; - efi_status_t (*output_string)(efi_simple_text_output_protocol_t *, efi_char16_t *); - void *test_string; - }; - struct { - u32 reset; - u32 output_string; - u32 test_string; - } mixed_mode; +struct ipv6_pinfo { + struct in6_addr saddr; + struct in6_pktinfo sticky_pktinfo; + const struct in6_addr *daddr_cache; + const struct in6_addr *saddr_cache; + __be32 flow_label; + __u32 frag_size; + s16 hop_limit; + u8 mcast_hops; + int ucast_oif; + int mcast_oif; + union { + struct { + __u16 srcrt: 1; + __u16 osrcrt: 1; + __u16 rxinfo: 1; + __u16 rxoinfo: 1; + __u16 rxhlim: 1; + __u16 rxohlim: 1; + __u16 hopopts: 1; + __u16 ohopopts: 1; + __u16 dstopts: 1; + __u16 odstopts: 1; + __u16 rxflow: 1; + __u16 rxtclass: 1; + __u16 rxpmtu: 1; + __u16 rxorigdstaddr: 1; + __u16 recvfragsize: 1; + } bits; + __u16 all; + } rxopt; + __u8 srcprefs; + __u8 pmtudisc; + __u8 min_hopcount; + __u8 tclass; + __be32 rcv_flowinfo; + __u32 dst_cookie; + struct ipv6_mc_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_mc_list; + struct ipv6_ac_socklist *ipv6_ac_list; + struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *ipv6_fl_list; + struct ipv6_txoptions __attribute__((btf_type_tag("rcu"))) *opt; + struct sk_buff *pktoptions; + struct sk_buff *rxpmtu; + struct inet6_cork cork; }; -typedef struct { - u64 signature; - u32 revision; - u32 headersize; - u32 crc32; - u32 reserved; -} efi_table_hdr_t; +struct ip6_sf_socklist; -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; +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; +}; -typedef struct { - u32 resolution; - u32 accuracy; - u8 sets_to_zero; -} efi_time_cap_t; +struct ip6_sf_socklist { + unsigned int sl_max; + unsigned int sl_count; + struct callback_head rcu; + struct in6_addr sl_addr[0]; +}; -typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *); +struct ipv6_ac_socklist { + struct in6_addr acl_addr; + int acl_ifindex; + struct ipv6_ac_socklist *acl_next; +}; -typedef efi_status_t efi_set_time_t(efi_time_t *); +struct ip6_flowlabel; -typedef u8 efi_bool_t; +struct ipv6_fl_socklist { + struct ipv6_fl_socklist __attribute__((btf_type_tag("rcu"))) *next; + struct ip6_flowlabel *fl; + struct callback_head rcu; +}; -typedef efi_status_t efi_get_wakeup_time_t(efi_bool_t *, efi_bool_t *, efi_time_t *); +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; +}; -typedef efi_status_t efi_set_wakeup_time_t(efi_bool_t, efi_time_t *); +struct ipv6_opt_hdr; -typedef efi_status_t efi_set_virtual_address_map_t(unsigned long, unsigned long, u32, efi_memory_desc_t *); +struct ipv6_rt_hdr; -typedef struct { - __u8 b[16]; -} guid_t; +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; +}; -typedef guid_t efi_guid_t; +struct ipv6_opt_hdr { + __u8 nexthdr; + __u8 hdrlen; +}; -typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *); +struct ipv6_rt_hdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 type; + __u8 segments_left; +}; -typedef efi_status_t efi_get_next_variable_t(unsigned long *, efi_char16_t *, efi_guid_t *); +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]; +}; -typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *); +struct ip_options_rcu { + struct callback_head rcu; + struct ip_options opt; +}; -typedef efi_status_t efi_get_next_high_mono_count_t(u32 *); +struct ip_mreqn { + struct in_addr imr_multiaddr; + struct in_addr imr_address; + int imr_ifindex; +}; -typedef void efi_reset_system_t(int, efi_status_t, unsigned long, efi_char16_t *); +struct ip_sf_socklist; -typedef struct { - efi_guid_t guid; - u32 headersize; - u32 flags; - u32 imagesize; -} efi_capsule_header_t; +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; +}; -typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, unsigned long, unsigned long); +struct ip_sf_socklist { + unsigned int sl_max; + unsigned int sl_count; + struct callback_head rcu; + __be32 sl_addr[0]; +}; -typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, unsigned long, u64 *, int *); +struct cmsghdr { + __kernel_size_t cmsg_len; + int cmsg_level; + int cmsg_type; +}; -typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *); +struct in_pktinfo { + int ipi_ifindex; + struct in_addr ipi_spec_dst; + struct in_addr ipi_addr; +}; -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; +struct inet_skb_parm { + int iif; + struct ip_options opt; + u16 flags; + u16 frag_max_size; +}; -typedef union { - struct { - efi_table_hdr_t hdr; - 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_set_virtual_address_map_t *set_virtual_address_map; - void *convert_pointer; - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_get_next_high_mono_count_t *get_next_high_mono_count; - efi_reset_system_t *reset_system; - efi_update_capsule_t *update_capsule; - efi_query_capsule_caps_t *query_capsule_caps; - efi_query_variable_info_t *query_variable_info; - }; - efi_runtime_services_32_t mixed_mode; -} efi_runtime_services_t; - -typedef struct { - efi_table_hdr_t hdr; - u32 fw_vendor; - u32 fw_revision; - u32 con_in_handle; - u32 con_in; - u32 con_out_handle; - u32 con_out; - u32 stderr_handle; - u32 stderr; - u32 runtime; - u32 boottime; - u32 nr_tables; - u32 tables; -} efi_system_table_32_t; +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; +}; -union efi_simple_text_input_protocol; +struct sock_ee_data_rfc4884 { + __u16 len; + __u8 flags; + __u8 reserved; +}; -typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t; +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; + }; +}; -union efi_boot_services; +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; +}; -typedef union efi_boot_services efi_boot_services_t; +typedef __u16 __sum16; -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; +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; }; - efi_system_table_32_t mixed_mode; -} efi_system_table_t; +}; -typedef struct { - u16 scan_code; - efi_char16_t unicode_char; -} efi_input_key_t; +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; +}; -typedef void *efi_event_t; +typedef struct bio_vec skb_frag_t; -union efi_simple_text_input_protocol { - struct { - void *reset; - efi_status_t (*read_keystroke)(efi_simple_text_input_protocol_t *, efi_input_key_t *); - efi_event_t wait_for_key; - }; - struct { - u32 reset; - u32 read_keystroke; - u32 wait_for_key; - } mixed_mode; +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]; }; -typedef u64 efi_physical_addr_t; +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; +}; -typedef void (*efi_event_notify_t)(efi_event_t, void *); +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; +}; -typedef enum { - EfiTimerCancel = 0, - EfiTimerPeriodic = 1, - EfiTimerRelative = 2, -} EFI_TIMER_DELAY; +struct inet_bind_bucket; -typedef void *efi_handle_t; +struct inet_bind2_bucket; -struct efi_generic_dev_path; +struct inet_connection_sock_af_ops; -typedef struct efi_generic_dev_path efi_device_path_protocol_t; +struct tcp_ulp_ops; -union efi_boot_services { +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 { - efi_table_hdr_t hdr; - void *raise_tpl; - void *restore_tpl; - efi_status_t (*allocate_pages)(int, int, unsigned long, efi_physical_addr_t *); - efi_status_t (*free_pages)(efi_physical_addr_t, unsigned long); - efi_status_t (*get_memory_map)(unsigned long *, void *, unsigned long *, unsigned long *, u32 *); - efi_status_t (*allocate_pool)(int, unsigned long, void **); - efi_status_t (*free_pool)(void *); - efi_status_t (*create_event)(u32, unsigned long, efi_event_notify_t, void *, efi_event_t *); - efi_status_t (*set_timer)(efi_event_t, EFI_TIMER_DELAY, u64); - efi_status_t (*wait_for_event)(unsigned long, efi_event_t *, unsigned long *); - void *signal_event; - efi_status_t (*close_event)(efi_event_t); - void *check_event; - void *install_protocol_interface; - void *reinstall_protocol_interface; - void *uninstall_protocol_interface; - efi_status_t (*handle_protocol)(efi_handle_t, efi_guid_t *, void **); - void *__reserved; - void *register_protocol_notify; - efi_status_t (*locate_handle)(int, efi_guid_t *, void *, unsigned long *, efi_handle_t *); - efi_status_t (*locate_device_path)(efi_guid_t *, efi_device_path_protocol_t **, efi_handle_t *); - efi_status_t (*install_configuration_table)(efi_guid_t *, void *); - efi_status_t (*load_image)(bool, efi_handle_t, efi_device_path_protocol_t *, void *, unsigned long, efi_handle_t *); - efi_status_t (*start_image)(efi_handle_t, unsigned long *, efi_char16_t **); - efi_status_t (*exit)(efi_handle_t, efi_status_t, unsigned long, efi_char16_t *); - efi_status_t (*unload_image)(efi_handle_t); - efi_status_t (*exit_boot_services)(efi_handle_t, unsigned long); - void *get_next_monotonic_count; - efi_status_t (*stall)(unsigned long); - void *set_watchdog_timer; - void *connect_controller; - efi_status_t (*disconnect_controller)(efi_handle_t, efi_handle_t, efi_handle_t); - void *open_protocol; - void *close_protocol; - void *open_protocol_information; - void *protocols_per_handle; - void *locate_handle_buffer; - efi_status_t (*locate_protocol)(efi_guid_t *, void *, void **); - efi_status_t (*install_multiple_protocol_interfaces)(efi_handle_t *, ...); - efi_status_t (*uninstall_multiple_protocol_interfaces)(efi_handle_t, ...); - void *calculate_crc32; - void (*copy_mem)(void *, const void *, unsigned long); - void (*set_mem)(void *, unsigned long, unsigned char); - void *create_event_ex; - }; + __u8 pending; + __u8 quick; + __u8 pingpong; + __u8 retry; + __u32 ato: 8; + __u32 lrcv_flowlabel: 20; + __u32 unused: 4; + unsigned long timeout; + __u32 lrcvtime; + __u16 last_seg_size; + __u16 rcv_mss; + } icsk_ack; struct { - efi_table_hdr_t hdr; - u32 raise_tpl; - u32 restore_tpl; - u32 allocate_pages; - u32 free_pages; - u32 get_memory_map; - u32 allocate_pool; - u32 free_pool; - u32 create_event; - u32 set_timer; - u32 wait_for_event; - u32 signal_event; - u32 close_event; - u32 check_event; - u32 install_protocol_interface; - u32 reinstall_protocol_interface; - u32 uninstall_protocol_interface; - u32 handle_protocol; - u32 __reserved; - u32 register_protocol_notify; - u32 locate_handle; - u32 locate_device_path; - u32 install_configuration_table; - u32 load_image; - u32 start_image; - u32 exit; - u32 unload_image; - u32 exit_boot_services; - u32 get_next_monotonic_count; - u32 stall; - u32 set_watchdog_timer; - u32 connect_controller; - u32 disconnect_controller; - u32 open_protocol; - u32 close_protocol; - u32 open_protocol_information; - u32 protocols_per_handle; - u32 locate_handle_buffer; - u32 locate_protocol; - u32 install_multiple_protocol_interfaces; - u32 uninstall_multiple_protocol_interfaces; - u32 calculate_crc32; - u32 copy_mem; - u32 set_mem; - u32 create_event_ex; - } mixed_mode; + 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 efi_generic_dev_path { - u8 type; - u8 sub_type; - u16 length; +struct inet_connection_sock_af_ops { + int (*queue_xmit)(struct sock *, struct sk_buff *, struct flowi *); + void (*send_check)(struct sock *, struct sk_buff *); + int (*rebuild_header)(struct sock *); + void (*sk_rx_dst_set)(struct sock *, const struct sk_buff *); + int (*conn_request)(struct sock *, struct sk_buff *); + struct sock * (*syn_recv_sock)(const struct sock *, struct sk_buff *, struct request_sock *, struct dst_entry *, struct request_sock *, bool *); + u16 net_header_len; + u16 sockaddr_len; + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); + void (*addr2sockaddr)(struct sock *, struct sockaddr *); + void (*mtu_reduced)(struct sock *); }; -typedef __u32 Elf32_Word; - -struct elf32_note { - Elf32_Word n_namesz; - Elf32_Word n_descsz; - Elf32_Word n_type; +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 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; - unsigned int nr_spread_over; - long: 64; - long: 64; - long: 64; - struct sched_avg avg; - struct { - raw_spinlock_t lock; - int nr; - unsigned long load_avg; - unsigned long util_avg; - unsigned long runnable_avg; - long: 64; - } 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; - int runtime_enabled; - s64 runtime_remaining; - u64 throttled_pelt_idle; - u64 throttled_clock; - u64 throttled_clock_pelt; - u64 throttled_clock_pelt_time; - int throttled; - int throttle_count; - struct list_head throttled_list; - struct list_head throttled_csd_list; - long: 64; - long: 64; +struct ip_mreq_source { + __be32 imr_multiaddr; + __be32 imr_interface; + __be32 imr_sourceaddr; }; -typedef struct __call_single_data call_single_data_t; +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 rt_prio_array { - unsigned long bitmap[2]; - struct list_head queue[100]; +struct group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; }; -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; - unsigned int rt_nr_boosted; - struct rq *rq; - struct task_group *tg; +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 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 max_bw; - u64 bw_ratio; +struct sockcm_cookie { + u64 transmit_time; + u32 mark; + u32 tsflags; }; -typedef int (*cpu_stop_fn_t)(void *); +struct ipcm_cookie { + struct sockcm_cookie sockc; + __be32 addr; + int oif; + struct ip_options_rcu *opt; + __u8 protocol; + __u8 ttl; + __s16 tos; + char priority; + __u16 gso_size; +}; -struct cpu_stop_done; +struct compat_group_req { + __u32 gr_interface; + struct __kernel_sockaddr_storage gr_group; +} __attribute__((packed)); -struct cpu_stop_work { - struct list_head list; - cpu_stop_fn_t fn; - unsigned long caller; - void *arg; - struct cpu_stop_done *done; +struct group_req { + __u32 gr_interface; + struct __kernel_sockaddr_storage gr_group; }; -struct root_domain; +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)); + }; +}; -struct sched_domain; +struct inet_ehash_bucket; -struct balance_callback; +struct inet_bind_hashbucket; -struct rq { - raw_spinlock_t __lock; - unsigned int nr_running; - unsigned long last_blocked_load_update_tick; - unsigned int has_blocked_load; - long: 64; - 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; - 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; - long: 64; - long: 64; - u64 clock_task; - u64 clock_pelt; - unsigned long lost_idle_time; - u64 clock_pelt_idle; - u64 clock_idle; - atomic_t nr_iowait; - u64 last_seen_need_resched_ns; - int ticks_without_resched; - int membarrier_state; - struct root_domain *rd; - struct sched_domain __attribute__((btf_type_tag("rcu"))) *sd; - unsigned long cpu_capacity; - 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; - long: 64; - long: 64; - long: 64; - long: 64; +struct inet_listen_hashbucket; + +struct inet_hashinfo { + struct inet_ehash_bucket *ehash; + spinlock_t *ehash_locks; + unsigned int ehash_mask; + unsigned int ehash_locks_mask; + struct kmem_cache *bind_bucket_cachep; + struct inet_bind_hashbucket *bhash; + struct kmem_cache *bind2_bucket_cachep; + struct inet_bind_hashbucket *bhash2; + unsigned int bhash_size; + unsigned int lhash2_mask; + struct inet_listen_hashbucket *lhash2; + bool pernet; long: 64; long: 64; - 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; - unsigned long calc_load_update; - long calc_load_active; - call_single_data_t hrtick_csd; - struct hrtimer hrtick_timer; - ktime_t hrtick_time; - struct cpuidle_state *idle_state; - unsigned int nr_pinned; - unsigned int push_busy; - struct cpu_stop_work push_work; - cpumask_var_t scratch_mask; long: 64; long: 64; - call_single_data_t cfsb_csd; - struct list_head cfsb_csd_list; long: 64; long: 64; }; -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 hlist_nulls_head { + struct hlist_nulls_node *first; }; -struct cfs_bandwidth { - raw_spinlock_t lock; - ktime_t period; - u64 quota; - u64 runtime; - u64 burst; - u64 runtime_snap; - s64 hierarchical_quota; - u8 idle; - u8 period_active; - u8 slack_started; - struct hrtimer period_timer; - struct hrtimer slack_timer; - struct list_head throttled_cfs_rq; - int nr_periods; - int nr_throttled; - int nr_burst; - u64 throttled_time; - u64 burst_time; +struct inet_ehash_bucket { + struct hlist_nulls_head chain; }; -struct task_group { - struct cgroup_subsys_state css; - struct sched_entity **se; - struct cfs_rq **cfs_rq; - unsigned long shares; - int idle; - long: 64; - long: 64; - long: 64; - atomic_long_t load_avg; - struct sched_rt_entity **rt_se; - struct rt_rq **rt_rq; - struct rt_bandwidth rt_bandwidth; - 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 inet_bind_hashbucket { + spinlock_t lock; + struct hlist_head chain; }; -struct dl_bw { - raw_spinlock_t lock; - u64 bw; - u64 total_bw; +struct inet_listen_hashbucket { + spinlock_t lock; + struct hlist_nulls_head nulls_head; }; -struct cpudl_item; - -struct cpudl { - raw_spinlock_t lock; - int size; - cpumask_var_t free_cpus; - struct cpudl_item *elements; +struct ack_sample { + u32 pkts_acked; + s32 rtt_us; + u32 in_flight; }; -struct cpupri_vec { - atomic_t count; - cpumask_var_t mask; +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 cpupri { - struct cpupri_vec pri_to_cpu[101]; - int *cpu_to_pri; -}; +struct nh_info; -struct perf_domain; +struct nh_group; -struct root_domain { - atomic_t refcount; - atomic_t rto_count; +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; - 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; + union { + struct nh_info __attribute__((btf_type_tag("rcu"))) *nh_info; + struct nh_group __attribute__((btf_type_tag("rcu"))) *nh_grp; + }; }; -struct em_perf_domain; +struct fib_info; -struct perf_domain { - struct em_perf_domain *em_pd; - struct perf_domain *next; - struct callback_head rcu; +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 em_perf_state; - -struct em_perf_domain { - struct em_perf_state *table; - int nr_perf_states; - unsigned long flags; - unsigned long cpus[0]; +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 em_perf_state { - unsigned long frequency; - unsigned long power; - unsigned long cost; - unsigned long flags; +struct fib_info { + struct hlist_node fib_hash; + struct hlist_node fib_lhash; + struct list_head nh_list; + struct net *fib_net; + refcount_t fib_treeref; + refcount_t fib_clntref; + unsigned int fib_flags; + unsigned char fib_dead; + unsigned char fib_protocol; + unsigned char fib_scope; + unsigned char fib_type; + __be32 fib_prefsrc; + u32 fib_tb_id; + u32 fib_priority; + struct dst_metrics *fib_metrics; + int fib_nhs; + bool fib_nh_is_v6; + bool nh_updated; + bool pfsrc_removed; + struct nexthop *nh; + struct callback_head rcu; + struct fib_nh fib_nh[0]; }; -struct sched_group; - -struct sched_domain_shared; - -struct sched_domain { - struct sched_domain __attribute__((btf_type_tag("rcu"))) *parent; - struct sched_domain __attribute__((btf_type_tag("rcu"))) *child; - struct sched_group *groups; - unsigned long min_interval; - unsigned long max_interval; - unsigned int busy_factor; - unsigned int imbalance_pct; - unsigned int cache_nice_tries; - unsigned int imb_numa_nr; - int nohz_idle; - int flags; - int level; - unsigned long last_balance; - unsigned int balance_interval; - unsigned int nr_balance_failed; - u64 max_newidle_lb_cost; - unsigned long last_decay_max_lb_cost; - u64 avg_scan_cost; - char *name; +struct nh_grp_entry { + struct nexthop *nh; + u8 weight; union { - void *private; - struct callback_head rcu; + struct { + atomic_t upper_bound; + } hthr; + struct { + struct list_head uw_nh_entry; + u16 count_buckets; + u16 wants_buckets; + } res; }; - struct sched_domain_shared *shared; - unsigned int span_weight; - unsigned long span[0]; + struct list_head nh_list; + struct nexthop *nh_parent; }; -struct sched_group_capacity; - -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 nh_res_table; -struct sched_group_capacity { - atomic_t ref; - unsigned long capacity; - unsigned long min_capacity; - unsigned long max_capacity; - unsigned long next_update; - int imbalance; - int id; - unsigned long cpumask[0]; +struct 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 sched_domain_shared { - atomic_t ref; - atomic_t nr_busy_cpus; - int has_idle_cores; - int nr_idle_scan; +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 balance_callback { - struct balance_callback *next; - void (*func)(struct rq *); +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 pin_cookie {}; - -struct rq_flags { - unsigned long flags; - struct pin_cookie cookie; - unsigned int clock_update_flags; +struct sock_fprog_kern { + u16 len; + struct sock_filter *filter; }; -struct affinity_context { - const struct cpumask *new_mask; - struct cpumask *user_mask; - unsigned int flags; +struct bpf_cgroup_storage_key { + __u64 cgroup_inode_id; + __u32 attach_type; }; -typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *); +struct bpf_storage_buffer; -typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int); +struct bpf_cgroup_storage_map; -struct kthread_worker; +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 kthread_work; +struct bpf_storage_buffer { + struct callback_head rcu; + char data[0]; +}; -typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); +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 kthread_worker { - unsigned int flags; - raw_spinlock_t lock; - struct list_head work_list; - struct list_head delayed_work_list; - struct task_struct *task; - struct kthread_work *current_work; +struct 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; }; -typedef void (*kthread_work_func_t)(struct kthread_work *); +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, +}; -struct kthread_work { - struct list_head node; - kthread_work_func_t func; - struct kthread_worker *worker; - int canceling; +enum { + NEIGH_ARP_TABLE = 0, + NEIGH_ND_TABLE = 1, + NEIGH_DN_TABLE = 2, + NEIGH_NR_TABLES = 3, + NEIGH_LINK_TABLE = 3, }; -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 *); +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, +}; -typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *); +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, +}; -typedef void (*btf_trace_sched_process_wait)(void *, struct pid *); +enum { + IPV4_DEVCONF_FORWARDING = 1, + IPV4_DEVCONF_MC_FORWARDING = 2, + IPV4_DEVCONF_PROXY_ARP = 3, + IPV4_DEVCONF_ACCEPT_REDIRECTS = 4, + IPV4_DEVCONF_SECURE_REDIRECTS = 5, + IPV4_DEVCONF_SEND_REDIRECTS = 6, + IPV4_DEVCONF_SHARED_MEDIA = 7, + IPV4_DEVCONF_RP_FILTER = 8, + IPV4_DEVCONF_ACCEPT_SOURCE_ROUTE = 9, + IPV4_DEVCONF_BOOTP_RELAY = 10, + IPV4_DEVCONF_LOG_MARTIANS = 11, + IPV4_DEVCONF_TAG = 12, + IPV4_DEVCONF_ARPFILTER = 13, + IPV4_DEVCONF_MEDIUM_ID = 14, + IPV4_DEVCONF_NOXFRM = 15, + IPV4_DEVCONF_NOPOLICY = 16, + IPV4_DEVCONF_FORCE_IGMP_VERSION = 17, + IPV4_DEVCONF_ARP_ANNOUNCE = 18, + IPV4_DEVCONF_ARP_IGNORE = 19, + IPV4_DEVCONF_PROMOTE_SECONDARIES = 20, + IPV4_DEVCONF_ARP_ACCEPT = 21, + IPV4_DEVCONF_ARP_NOTIFY = 22, + IPV4_DEVCONF_ACCEPT_LOCAL = 23, + IPV4_DEVCONF_SRC_VMARK = 24, + IPV4_DEVCONF_PROXY_ARP_PVLAN = 25, + IPV4_DEVCONF_ROUTE_LOCALNET = 26, + IPV4_DEVCONF_IGMPV2_UNSOLICITED_REPORT_INTERVAL = 27, + IPV4_DEVCONF_IGMPV3_UNSOLICITED_REPORT_INTERVAL = 28, + IPV4_DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 29, + IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 30, + IPV4_DEVCONF_DROP_GRATUITOUS_ARP = 31, + IPV4_DEVCONF_BC_FORWARDING = 32, + IPV4_DEVCONF_ARP_EVICT_NOCARRIER = 33, + __IPV4_DEVCONF_MAX = 34, +}; -typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *); +enum rt_scope_t { + RT_SCOPE_UNIVERSE = 0, + RT_SCOPE_SITE = 200, + RT_SCOPE_LINK = 253, + RT_SCOPE_HOST = 254, + RT_SCOPE_NOWHERE = 255, +}; -typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *); +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, +}; -typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64, u64); +enum netdev_priv_flags { + IFF_802_1Q_VLAN = 1ULL, + IFF_EBRIDGE = 2ULL, + IFF_BONDING = 4ULL, + IFF_ISATAP = 8ULL, + IFF_WAN_HDLC = 16ULL, + IFF_XMIT_DST_RELEASE = 32ULL, + IFF_DONT_BRIDGE = 64ULL, + IFF_DISABLE_NETPOLL = 128ULL, + IFF_MACVLAN_PORT = 256ULL, + IFF_BRIDGE_PORT = 512ULL, + IFF_OVS_DATAPATH = 1024ULL, + IFF_TX_SKB_SHARING = 2048ULL, + IFF_UNICAST_FLT = 4096ULL, + IFF_TEAM_PORT = 8192ULL, + IFF_SUPP_NOFCS = 16384ULL, + IFF_LIVE_ADDR_CHANGE = 32768ULL, + IFF_MACVLAN = 65536ULL, + IFF_XMIT_DST_RELEASE_PERM = 131072ULL, + IFF_L3MDEV_MASTER = 262144ULL, + IFF_NO_QUEUE = 524288ULL, + IFF_OPENVSWITCH = 1048576ULL, + IFF_L3MDEV_SLAVE = 2097152ULL, + IFF_TEAM = 4194304ULL, + IFF_RXFH_CONFIGURED = 8388608ULL, + IFF_PHONY_HEADROOM = 16777216ULL, + IFF_MACSEC = 33554432ULL, + IFF_NO_RX_HANDLER = 67108864ULL, + IFF_FAILOVER = 134217728ULL, + IFF_FAILOVER_SLAVE = 268435456ULL, + IFF_L3MDEV_RX_HANDLER = 536870912ULL, + IFF_NO_ADDRCONF = 1073741824ULL, + IFF_TX_SKB_NO_LINEAR = 2147483648ULL, + IFF_CHANGE_PROTO_DOWN = 4294967296ULL, + IFF_SEE_ALL_HWTSTAMP_REQUESTS = 8589934592ULL, +}; -typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, struct task_struct *); +enum metadata_type { + METADATA_IP_TUNNEL = 0, + METADATA_HW_PORT_MUX = 1, + METADATA_MACSEC = 2, + METADATA_XFRM = 3, +}; -typedef void (*btf_trace_sched_process_hang)(void *, struct task_struct *); +enum { + LINUX_MIB_NUM = 0, + LINUX_MIB_SYNCOOKIESSENT = 1, + LINUX_MIB_SYNCOOKIESRECV = 2, + LINUX_MIB_SYNCOOKIESFAILED = 3, + LINUX_MIB_EMBRYONICRSTS = 4, + LINUX_MIB_PRUNECALLED = 5, + LINUX_MIB_RCVPRUNED = 6, + LINUX_MIB_OFOPRUNED = 7, + LINUX_MIB_OUTOFWINDOWICMPS = 8, + LINUX_MIB_LOCKDROPPEDICMPS = 9, + LINUX_MIB_ARPFILTER = 10, + LINUX_MIB_TIMEWAITED = 11, + LINUX_MIB_TIMEWAITRECYCLED = 12, + LINUX_MIB_TIMEWAITKILLED = 13, + LINUX_MIB_PAWSACTIVEREJECTED = 14, + LINUX_MIB_PAWSESTABREJECTED = 15, + LINUX_MIB_DELAYEDACKS = 16, + LINUX_MIB_DELAYEDACKLOCKED = 17, + LINUX_MIB_DELAYEDACKLOST = 18, + LINUX_MIB_LISTENOVERFLOWS = 19, + LINUX_MIB_LISTENDROPS = 20, + LINUX_MIB_TCPHPHITS = 21, + LINUX_MIB_TCPPUREACKS = 22, + LINUX_MIB_TCPHPACKS = 23, + LINUX_MIB_TCPRENORECOVERY = 24, + LINUX_MIB_TCPSACKRECOVERY = 25, + LINUX_MIB_TCPSACKRENEGING = 26, + LINUX_MIB_TCPSACKREORDER = 27, + LINUX_MIB_TCPRENOREORDER = 28, + LINUX_MIB_TCPTSREORDER = 29, + LINUX_MIB_TCPFULLUNDO = 30, + LINUX_MIB_TCPPARTIALUNDO = 31, + LINUX_MIB_TCPDSACKUNDO = 32, + LINUX_MIB_TCPLOSSUNDO = 33, + LINUX_MIB_TCPLOSTRETRANSMIT = 34, + LINUX_MIB_TCPRENOFAILURES = 35, + LINUX_MIB_TCPSACKFAILURES = 36, + LINUX_MIB_TCPLOSSFAILURES = 37, + LINUX_MIB_TCPFASTRETRANS = 38, + LINUX_MIB_TCPSLOWSTARTRETRANS = 39, + LINUX_MIB_TCPTIMEOUTS = 40, + LINUX_MIB_TCPLOSSPROBES = 41, + LINUX_MIB_TCPLOSSPROBERECOVERY = 42, + LINUX_MIB_TCPRENORECOVERYFAIL = 43, + LINUX_MIB_TCPSACKRECOVERYFAIL = 44, + LINUX_MIB_TCPRCVCOLLAPSED = 45, + LINUX_MIB_TCPDSACKOLDSENT = 46, + LINUX_MIB_TCPDSACKOFOSENT = 47, + LINUX_MIB_TCPDSACKRECV = 48, + LINUX_MIB_TCPDSACKOFORECV = 49, + LINUX_MIB_TCPABORTONDATA = 50, + LINUX_MIB_TCPABORTONCLOSE = 51, + LINUX_MIB_TCPABORTONMEMORY = 52, + LINUX_MIB_TCPABORTONTIMEOUT = 53, + LINUX_MIB_TCPABORTONLINGER = 54, + LINUX_MIB_TCPABORTFAILED = 55, + LINUX_MIB_TCPMEMORYPRESSURES = 56, + LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 57, + LINUX_MIB_TCPSACKDISCARD = 58, + LINUX_MIB_TCPDSACKIGNOREDOLD = 59, + LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 60, + LINUX_MIB_TCPSPURIOUSRTOS = 61, + LINUX_MIB_TCPMD5NOTFOUND = 62, + LINUX_MIB_TCPMD5UNEXPECTED = 63, + LINUX_MIB_TCPMD5FAILURE = 64, + LINUX_MIB_SACKSHIFTED = 65, + LINUX_MIB_SACKMERGED = 66, + LINUX_MIB_SACKSHIFTFALLBACK = 67, + LINUX_MIB_TCPBACKLOGDROP = 68, + LINUX_MIB_PFMEMALLOCDROP = 69, + LINUX_MIB_TCPMINTTLDROP = 70, + LINUX_MIB_TCPDEFERACCEPTDROP = 71, + LINUX_MIB_IPRPFILTER = 72, + LINUX_MIB_TCPTIMEWAITOVERFLOW = 73, + LINUX_MIB_TCPREQQFULLDOCOOKIES = 74, + LINUX_MIB_TCPREQQFULLDROP = 75, + LINUX_MIB_TCPRETRANSFAIL = 76, + LINUX_MIB_TCPRCVCOALESCE = 77, + LINUX_MIB_TCPBACKLOGCOALESCE = 78, + LINUX_MIB_TCPOFOQUEUE = 79, + LINUX_MIB_TCPOFODROP = 80, + LINUX_MIB_TCPOFOMERGE = 81, + LINUX_MIB_TCPCHALLENGEACK = 82, + LINUX_MIB_TCPSYNCHALLENGE = 83, + LINUX_MIB_TCPFASTOPENACTIVE = 84, + LINUX_MIB_TCPFASTOPENACTIVEFAIL = 85, + LINUX_MIB_TCPFASTOPENPASSIVE = 86, + LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 87, + LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 88, + LINUX_MIB_TCPFASTOPENCOOKIEREQD = 89, + LINUX_MIB_TCPFASTOPENBLACKHOLE = 90, + LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 91, + LINUX_MIB_BUSYPOLLRXPACKETS = 92, + LINUX_MIB_TCPAUTOCORKING = 93, + LINUX_MIB_TCPFROMZEROWINDOWADV = 94, + LINUX_MIB_TCPTOZEROWINDOWADV = 95, + LINUX_MIB_TCPWANTZEROWINDOWADV = 96, + LINUX_MIB_TCPSYNRETRANS = 97, + LINUX_MIB_TCPORIGDATASENT = 98, + LINUX_MIB_TCPHYSTARTTRAINDETECT = 99, + LINUX_MIB_TCPHYSTARTTRAINCWND = 100, + LINUX_MIB_TCPHYSTARTDELAYDETECT = 101, + LINUX_MIB_TCPHYSTARTDELAYCWND = 102, + LINUX_MIB_TCPACKSKIPPEDSYNRECV = 103, + LINUX_MIB_TCPACKSKIPPEDPAWS = 104, + LINUX_MIB_TCPACKSKIPPEDSEQ = 105, + LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 106, + LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 107, + LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 108, + LINUX_MIB_TCPWINPROBE = 109, + LINUX_MIB_TCPKEEPALIVE = 110, + LINUX_MIB_TCPMTUPFAIL = 111, + LINUX_MIB_TCPMTUPSUCCESS = 112, + LINUX_MIB_TCPDELIVERED = 113, + LINUX_MIB_TCPDELIVEREDCE = 114, + LINUX_MIB_TCPACKCOMPRESSED = 115, + LINUX_MIB_TCPZEROWINDOWDROP = 116, + LINUX_MIB_TCPRCVQDROP = 117, + LINUX_MIB_TCPWQUEUETOOBIG = 118, + LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 119, + LINUX_MIB_TCPTIMEOUTREHASH = 120, + LINUX_MIB_TCPDUPLICATEDATAREHASH = 121, + LINUX_MIB_TCPDSACKRECVSEGS = 122, + LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 123, + LINUX_MIB_TCPMIGRATEREQSUCCESS = 124, + LINUX_MIB_TCPMIGRATEREQFAILURE = 125, + LINUX_MIB_TCPPLBREHASH = 126, + LINUX_MIB_TCPAOREQUIRED = 127, + LINUX_MIB_TCPAOBAD = 128, + LINUX_MIB_TCPAOKEYNOTFOUND = 129, + LINUX_MIB_TCPAOGOOD = 130, + LINUX_MIB_TCPAODROPPEDICMPS = 131, + __LINUX_MIB_MAX = 132, +}; -typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int); +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, +}; -typedef void (*btf_trace_sched_stick_numa)(void *, struct task_struct *, int, struct task_struct *, int); +struct neighbour_cb { + unsigned long sched_next; + unsigned int flags; +}; -typedef void (*btf_trace_sched_swap_numa)(void *, struct task_struct *, int, struct task_struct *, int); +struct arphdr { + __be16 ar_hrd; + __be16 ar_pro; + unsigned char ar_hln; + unsigned char ar_pln; + __be16 ar_op; +}; -typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int); +struct ip_tunnel_key { + __be64 tun_id; + union { + struct { + __be32 src; + __be32 dst; + } ipv4; + struct { + struct in6_addr src; + struct in6_addr dst; + } ipv6; + } u; + __be16 tun_flags; + u8 tos; + u8 ttl; + __be32 label; + u32 nhid; + __be16 tp_src; + __be16 tp_dst; + __u8 flow_flags; +}; -typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *); +struct ip_tunnel_encap { + u16 type; + u16 flags; + __be16 sport; + __be16 dport; +}; -typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *); +struct dst_cache_pcpu; -typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *); +struct dst_cache { + struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache; + unsigned long reset_ts; +}; -typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *); +struct ip_tunnel_info { + struct ip_tunnel_key key; + struct ip_tunnel_encap encap; + struct dst_cache dst_cache; + u8 options_len; + u8 mode; +}; -typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *); +struct hw_port_info { + struct net_device *lower_dev; + u32 port_id; +}; -typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *); +typedef u64 sci_t; -typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *); +struct macsec_info { + sci_t sci; +}; -typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool); +struct xfrm_md_info { + u32 if_id; + int link; + struct dst_entry *dst_orig; +}; -typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *); +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; +}; -typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *); +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; + }; +}; -typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int); +struct arpreq { + struct sockaddr arp_pa; + struct sockaddr arp_ha; + int arp_flags; + struct sockaddr arp_netmask; + char arp_dev[16]; +}; -typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *); +struct seq_net_private { + struct net *net; + netns_tracker ns_tracker; +}; -typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, unsigned long, void *); +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; +}; -typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, unsigned long, void *); +struct netdev_notifier_change_info { + struct netdev_notifier_info info; + unsigned int flags_changed; +}; -typedef void (*btf_trace_ipi_entry)(void *, const char *); +struct module_version_attribute { + struct module_attribute mattr; + const char *module_name; + const char *version; +}; -typedef void (*btf_trace_ipi_exit)(void *, const char *); +typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32); -enum { - __SCHED_FEAT_GENTLE_FAIR_SLEEPERS = 0, - __SCHED_FEAT_START_DEBIT = 1, - __SCHED_FEAT_NEXT_BUDDY = 2, - __SCHED_FEAT_LAST_BUDDY = 3, - __SCHED_FEAT_CACHE_HOT_BUDDY = 4, - __SCHED_FEAT_WAKEUP_PREEMPTION = 5, - __SCHED_FEAT_HRTICK = 6, - __SCHED_FEAT_HRTICK_DL = 7, - __SCHED_FEAT_DOUBLE_TICK = 8, - __SCHED_FEAT_NONTASK_CAPACITY = 9, - __SCHED_FEAT_TTWU_QUEUE = 10, - __SCHED_FEAT_SIS_PROP = 11, - __SCHED_FEAT_SIS_UTIL = 12, - __SCHED_FEAT_WARN_DOUBLE_CLOCK = 13, - __SCHED_FEAT_RT_PUSH_IPI = 14, - __SCHED_FEAT_RT_RUNTIME_SHARE = 15, - __SCHED_FEAT_LB_MIN = 16, - __SCHED_FEAT_ATTACH_AGE_LOAD = 17, - __SCHED_FEAT_WA_IDLE = 18, - __SCHED_FEAT_WA_WEIGHT = 19, - __SCHED_FEAT_WA_BIAS = 20, - __SCHED_FEAT_UTIL_EST = 21, - __SCHED_FEAT_UTIL_EST_FASTUP = 22, - __SCHED_FEAT_LATENCY_WARN = 23, - __SCHED_FEAT_ALT_PERIOD = 24, - __SCHED_FEAT_BASE_SLICE = 25, - __SCHED_FEAT_NR = 26, -}; +struct btf_id_set8; -enum cpu_util_type { - FREQUENCY_UTIL = 0, - ENERGY_UTIL = 1, +struct btf_kfunc_id_set { + struct module *owner; + struct btf_id_set8 *set; + btf_kfunc_filter_t filter; }; -enum { - TASK_COMM_LEN = 16, +struct btf_id_set8 { + u32 cnt; + u32 flags; + struct { + u32 id; + u32 flags; + } pairs[0]; }; -enum rseq_event_mask_bits { - RSEQ_EVENT_PREEMPT_BIT = 0, - RSEQ_EVENT_SIGNAL_BIT = 1, - RSEQ_EVENT_MIGRATE_BIT = 2, +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 { - cpuset = 0, - possible = 1, - fail = 2, +enum sk_pacing { + SK_PACING_NONE = 0, + SK_PACING_NEEDED = 1, + SK_PACING_FQ = 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, +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; }; -enum mm_cid_state { - MM_CID_UNSET = 4294967295, - MM_CID_LAZY_PUT = 2147483648, +struct minmax_sample { + u32 t; + u32 v; }; -union cpumask_rcuhead { - cpumask_t cpumask; - struct callback_head rcu; +struct minmax { + struct minmax_sample s[3]; }; -struct sched_attr { - __u32 size; - __u32 sched_policy; - __u64 sched_flags; - __s32 sched_nice; - __u32 sched_priority; - __u64 sched_runtime; - __u64 sched_deadline; - __u64 sched_period; - __u32 sched_util_min; - __u32 sched_util_max; -}; - -struct 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 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 trace_event_raw_sched_kthread_work_execute_start { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; +struct tcp_sack_block { + u32 start_seq; + u32 end_seq; }; -struct trace_event_raw_sched_kthread_work_execute_end { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; -}; +struct tcp_fastopen_request; -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 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; + u8 scaling_ratio; + struct tcp_rack rack; + u16 advmss; + u8 compressed_ack; + u8 dup_ack_counter: 2; + u8 tlp_retrans: 1; + u8 tcp_usec_ts: 1; + u8 unused: 4; + 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 rto_stamp; + u16 total_rto; + u16 total_rto_recoveries; + u32 total_rto_time; + u32 urg_seq; + unsigned int keepalive_time; + unsigned int keepalive_intvl; + int linger2; + u8 bpf_sock_ops_cb_flags; + u8 bpf_chg_cc_inprogress: 1; + u16 timeout_rehash; + u32 rcv_ooopack; + 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; + struct tcp_fastopen_request *fastopen_req; + struct request_sock __attribute__((btf_type_tag("rcu"))) *fastopen_rsk; + struct saved_syn *saved_syn; }; -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 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 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 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 trace_event_raw_sched_process_template { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int prio; - char __data[0]; +struct tcp_fastopen_cookie { + __le64 val[2]; + s8 len; + bool exp; }; -struct trace_event_raw_sched_process_wait { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int prio; - char __data[0]; +struct tcp_fastopen_request { + struct tcp_fastopen_cookie cookie; + struct msghdr *data; + size_t size; + int copied; + struct ubuf_info *uarg; }; -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 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 trace_event_raw_sched_process_exec { - struct trace_entry ent; - u32 __data_loc_filename; - pid_t pid; - pid_t old_pid; - char __data[0]; +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 trace_event_raw_sched_stat_runtime { - struct trace_entry ent; - char comm[16]; - pid_t pid; - u64 runtime; - u64 vruntime; - char __data[0]; +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 trace_event_raw_sched_pi_setprio { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int oldprio; - int newprio; - char __data[0]; +struct ip6_mtuinfo { + struct sockaddr_in6 ip6m_addr; + __u32 ip6m_mtu; }; -struct trace_event_raw_sched_process_hang { - struct trace_entry ent; - char comm[16]; - pid_t pid; - char __data[0]; +struct icmpv6_echo { + __be16 identifier; + __be16 sequence; }; -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 icmpv6_nd_advt { + __u32 reserved: 5; + __u32 override: 1; + __u32 solicited: 1; + __u32 router: 1; + __u32 reserved2: 24; }; -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 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 trace_event_raw_sched_wake_idle_without_ipi { - struct trace_entry ent; - int cpu; - char __data[0]; +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 trace_event_raw_ipi_raise { - struct trace_entry ent; - u32 __data_loc_target_cpus; - const char *reason; - char __data[0]; +struct ipcm6_cookie { + struct sockcm_cookie sockc; + __s16 hlimit; + __s16 tclass; + __u16 gso_size; + __s8 dontfrag; + struct ipv6_txoptions *opt; }; -struct trace_event_raw_ipi_send_cpu { - struct trace_entry ent; - unsigned int cpu; - void *callsite; - void *callback; - char __data[0]; +struct offload_callbacks { + struct sk_buff * (*gso_segment)(struct sk_buff *, netdev_features_t); + struct sk_buff * (*gro_receive)(struct list_head *, struct sk_buff *); + int (*gro_complete)(struct sk_buff *, int); }; -struct trace_event_raw_ipi_send_cpumask { - struct trace_entry ent; - u32 __data_loc_cpumask; - void *callsite; - void *callback; - char __data[0]; +struct net_offload { + struct offload_callbacks callbacks; + unsigned int flags; }; -struct trace_event_raw_ipi_handler { - struct trace_entry ent; - const char *reason; - char __data[0]; -}; +struct svc_xprt_class; -struct preempt_ops; +struct svc_xprt_ops; -struct preempt_notifier { - struct hlist_node link; - struct preempt_ops *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 lwq_node 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 preempt_ops { - void (*sched_in)(struct preempt_notifier *, int); - void (*sched_out)(struct preempt_notifier *, struct task_struct *); +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 trace_event_data_offsets_sched_process_exec { - u32 filename; +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_ctxt)(struct svc_xprt *, void *); + void (*xpo_detach)(struct svc_xprt *); + void (*xpo_free)(struct svc_xprt *); + void (*xpo_kill_temp_xprt)(struct svc_xprt *); + void (*xpo_handshake)(struct svc_xprt *); }; -struct trace_event_data_offsets_ipi_raise { - u32 target_cpus; +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 trace_event_data_offsets_ipi_send_cpumask { - u32 cpumask; +enum rpc_auth_stat { + RPC_AUTH_OK = 0, + RPC_AUTH_BADCRED = 1, + RPC_AUTH_REJECTEDCRED = 2, + RPC_AUTH_BADVERF = 3, + RPC_AUTH_REJECTEDVERF = 4, + RPC_AUTH_TOOWEAK = 5, + RPCSEC_GSS_CREDPROBLEM = 13, + RPCSEC_GSS_CTXPROBLEM = 14, }; -struct sched_domain_attr { - int relax_domain_level; +enum { + CACHE_VALID = 0, + CACHE_NEGATIVE = 1, + CACHE_PENDING = 2, + CACHE_CLEANED = 3, }; -struct set_affinity_pending; +enum { + XPT_BUSY = 0, + XPT_CONN = 1, + XPT_CLOSE = 2, + XPT_DATA = 3, + XPT_TEMP = 4, + XPT_DEAD = 5, + XPT_CHNGBUF = 6, + XPT_DEFERRED = 7, + XPT_OLD = 8, + XPT_LISTENER = 9, + XPT_CACHE_AUTH = 10, + XPT_LOCAL = 11, + XPT_KILL_TEMP = 12, + XPT_CONG_CTRL = 13, + XPT_HANDSHAKE = 14, + XPT_TLS_SESSION = 15, + XPT_PEER_AUTH = 16, +}; -struct migration_arg { - struct task_struct *task; - int dest_cpu; - struct set_affinity_pending *pending; +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 set_affinity_pending { - refcount_t refs; - unsigned int stop_pending; - struct completion done; - struct cpu_stop_work stop_work; - struct migration_arg arg; +struct unix_domain { + struct auth_domain h; }; -struct cfs_schedulable_data { - struct task_group *tg; - u64 period; - u64 quota; +struct unix_gid { + struct cache_head h; + kuid_t uid; + struct group_info *gi; + struct callback_head rcu; }; -typedef int (*tg_visitor)(struct task_group *, void *); +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; +}; -struct trace_event_data_offsets_sched_kthread_stop {}; +struct rpc_pipe; -struct trace_event_data_offsets_sched_kthread_stop_ret {}; +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 trace_event_data_offsets_sched_kthread_work_queue_work {}; +struct rpc_pipe_ops; -struct trace_event_data_offsets_sched_kthread_work_execute_start {}; +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 trace_event_data_offsets_sched_kthread_work_execute_end {}; +struct rpc_pipe_msg; -struct trace_event_data_offsets_sched_wakeup_template {}; +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 trace_event_data_offsets_sched_switch {}; +struct rpc_pipe_msg { + struct list_head list; + void *data; + size_t len; + size_t copied; + int errno; +}; -struct trace_event_data_offsets_sched_migrate_task {}; +struct hash_alg_common { + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; +}; -struct trace_event_data_offsets_sched_process_template {}; +struct shash_desc; -struct trace_event_data_offsets_sched_process_wait {}; +struct shash_alg { + int (*init)(struct shash_desc *); + int (*update)(struct shash_desc *, const u8 *, unsigned int); + int (*final)(struct shash_desc *, u8 *); + int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*export)(struct shash_desc *, void *); + int (*import)(struct shash_desc *, const void *); + int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_shash *); + void (*exit_tfm)(struct crypto_shash *); + int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *); + unsigned int descsize; + union { + struct { + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; + }; + struct hash_alg_common halg; + }; +}; -struct trace_event_data_offsets_sched_process_fork {}; +struct shash_desc { + struct crypto_shash *tfm; + void *__ctx[0]; +}; -struct trace_event_data_offsets_sched_stat_runtime {}; +struct krb5_ctx; -struct trace_event_data_offsets_sched_pi_setprio {}; +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 (*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 trace_event_data_offsets_sched_process_hang {}; +struct crypto_sync_skcipher; -struct trace_event_data_offsets_sched_move_numa {}; +struct crypto_ahash; -struct trace_event_data_offsets_sched_numa_pair_template {}; +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 trace_event_data_offsets_sched_wake_idle_without_ipi {}; +struct crypto_skcipher { + unsigned int reqsize; + struct crypto_tfm base; +}; -struct trace_event_data_offsets_ipi_send_cpu {}; +struct crypto_sync_skcipher { + struct crypto_skcipher base; +}; -struct trace_event_data_offsets_ipi_handler {}; +struct crypto_ahash { + bool using_shash; + unsigned int statesize; + unsigned int reqsize; + struct crypto_tfm base; +}; -typedef int (*task_call_f)(struct task_struct *, void *); +enum hp_flags_bits { + HANDSHAKE_F_PROTO_NOTIFY = 0, +}; -struct kernel_clone_args { - u64 flags; - int __attribute__((btf_type_tag("user"))) *pidfd; - int __attribute__((btf_type_tag("user"))) *child_tid; - int __attribute__((btf_type_tag("user"))) *parent_tid; - const char *name; - int exit_signal; - u32 kthread: 1; - u32 io_thread: 1; - u32 user_worker: 1; - u32 no_files: 1; - unsigned long stack; - unsigned long stack_size; - unsigned long tls; - pid_t *set_tid; - size_t set_tid_size; - int cgroup; - int idle; - int (*fn)(void *); - void *fn_arg; - struct cgroup *cgrp; - struct css_set *cset; +enum { + HANDSHAKE_CMD_READY = 1, + HANDSHAKE_CMD_ACCEPT = 2, + HANDSHAKE_CMD_DONE = 3, + __HANDSHAKE_CMD_MAX = 4, + HANDSHAKE_CMD_MAX = 3, }; -struct bpf_id_pair { - u32 old; - u32 cur; +enum { + HANDSHAKE_A_ACCEPT_SOCKFD = 1, + HANDSHAKE_A_ACCEPT_HANDLER_CLASS = 2, + HANDSHAKE_A_ACCEPT_MESSAGE_TYPE = 3, + HANDSHAKE_A_ACCEPT_TIMEOUT = 4, + HANDSHAKE_A_ACCEPT_AUTH_MODE = 5, + HANDSHAKE_A_ACCEPT_PEER_IDENTITY = 6, + HANDSHAKE_A_ACCEPT_CERTIFICATE = 7, + HANDSHAKE_A_ACCEPT_PEERNAME = 8, + __HANDSHAKE_A_ACCEPT_MAX = 9, + HANDSHAKE_A_ACCEPT_MAX = 8, }; -struct bpf_idmap { - u32 tmp_id_gen; - struct bpf_id_pair map[600]; +enum { + HANDSHAKE_A_DONE_STATUS = 1, + HANDSHAKE_A_DONE_SOCKFD = 2, + HANDSHAKE_A_DONE_REMOTE_AUTH = 3, + __HANDSHAKE_A_DONE_MAX = 4, + HANDSHAKE_A_DONE_MAX = 3, }; -struct bpf_idset { - u32 count; - u32 ids[600]; +enum hn_flags_bits { + HANDSHAKE_F_NET_DRAINING = 0, }; -struct bpf_verifier_log { - u64 start_pos; - u64 end_pos; - char __attribute__((btf_type_tag("user"))) *ubuf; - u32 level; - u32 len_total; - u32 len_max; - char kbuf[1024]; +struct handshake_proto; + +struct handshake_req { + struct list_head hr_list; + struct rhash_head hr_rhash; + unsigned long hr_flags; + const struct handshake_proto *hr_proto; + struct sock *hr_sk; + void (*hr_odestruct)(struct sock *); + char hr_priv[0]; }; -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 handshake_proto { + int hp_handler_class; + size_t hp_privsize; + unsigned long hp_flags; + int (*hp_accept)(struct handshake_req *, struct genl_info *, int); + void (*hp_done)(struct handshake_req *, unsigned int, struct genl_info *); + void (*hp_destroy)(struct handshake_req *); }; -struct backtrack_state { - struct bpf_verifier_env *env; - u32 frame; - u32 reg_masks[8]; - u64 stack_masks[8]; +struct handshake_net { + spinlock_t hn_lock; + int hn_pending; + int hn_pending_max; + struct list_head hn_requests; + unsigned long hn_flags; }; -struct bpf_verifier_ops; +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 bpf_verifier_stack_elem; +struct klist_node; -struct bpf_verifier_state; +struct klist { + spinlock_t k_lock; + struct list_head k_list; + void (*get)(struct klist_node *); + void (*put)(struct klist_node *); +}; -struct bpf_verifier_state_list; +struct klist_node { + void *n_klist; + struct list_head n_node; + struct kref n_ref; +}; -struct bpf_insn_aux_data; +struct klist_waiter { + struct list_head list; + struct klist_node *node; + struct task_struct *process; + int woken; +}; -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]; - union { - struct bpf_idmap idmap_scratch; - struct bpf_idset idset_scratch; - }; +struct klist_iter { + struct klist *i_klist; + struct klist_node *i_cur; +}; + +typedef unsigned long cycles_t; + +struct efi_generic_dev_path { + u8 type; + u8 sub_type; + u16 length; +}; + +typedef guid_t efi_guid_t; + +struct efi_vendor_dev_path { + struct efi_generic_dev_path header; + efi_guid_t vendorguid; + u8 vendordata[0]; +}; + +enum efistub_event { + EFISTUB_EVT_INITRD = 0, + EFISTUB_EVT_LOAD_OPTIONS = 1, + EFISTUB_EVT_COUNT = 2, +}; + +typedef struct efi_generic_dev_path efi_device_path_protocol_t; + +struct efi_tcg2_event { + u32 event_size; struct { - int *insn_state; - int *insn_stack; - int cur_stack; - } cfg; - struct backtrack_state bt; - u32 pass_cnt; - u32 subprog_cnt; - u32 prev_insn_processed; - u32 insn_processed; - u32 prev_jmps_processed; - u32 jmps_processed; - u64 verification_time; - u32 max_states_per_insn; - u32 total_states; - u32 peak_states; - u32 longest_mark_read_walk; - bpfptr_t fd_array; - u32 scratched_regs; - u64 scratched_stack_slots; - u64 prev_log_pos; - u64 prev_insn_print_pos; - char tmp_str_buf[320]; + u32 header_size; + u16 header_version; + u32 pcr_index; + u32 event_type; + } __attribute__((packed)) event_header; +} __attribute__((packed)); + +typedef struct efi_tcg2_event efi_tcg2_event_t; + +struct efi_tcg2_tagged_event { + u32 tagged_event_id; + u32 tagged_event_data_size; }; -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, -}; - -struct bpf_func_proto; +typedef struct efi_tcg2_tagged_event efi_tcg2_tagged_event_t; -struct bpf_insn_access_aux; +struct efi_measured_event { + efi_tcg2_event_t event_data; + efi_tcg2_tagged_event_t tagged_event; + u8 tagged_event_data[0]; +} __attribute__((packed)); -struct bpf_reg_state; +typedef unsigned long efi_status_t; -struct bpf_verifier_ops { - const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *); - bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *); - int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *); - int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *); - u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); - int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int); +struct efi_boot_memmap { + unsigned long map_size; + unsigned long desc_size; + u32 desc_ver; + unsigned long map_key; + unsigned long buff_size; + efi_memory_desc_t map[0]; }; -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, +struct linux_efi_initrd { + unsigned long base; + unsigned long size; }; -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, -}; +union efi_load_file_protocol; -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 *); -}; +typedef union efi_load_file_protocol efi_load_file_protocol_t; -struct bpf_insn_access_aux { - enum bpf_reg_type reg_type; - union { - int ctx_field_size; - struct { - struct btf *btf; - u32 btf_id; - }; +union efi_load_file_protocol { + struct { + efi_status_t (*load_file)(efi_load_file_protocol_t *, efi_device_path_protocol_t *, bool, unsigned long *, void *); }; - struct bpf_verifier_log *log; + struct { + u32 load_file; + } mixed_mode; }; -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 union efi_load_file_protocol efi_load_file2_protocol_t; -enum bpf_iter_state { - BPF_ITER_STATE_INVALID = 0, - BPF_ITER_STATE_ACTIVE = 1, - BPF_ITER_STATE_DRAINED = 2, -}; +typedef void *efi_handle_t; -struct tnum { - u64 value; - u64 mask; -}; +typedef struct { + u64 signature; + u32 revision; + u32 headersize; + u32 crc32; + u32 reserved; +} efi_table_hdr_t; -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, -}; +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; -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; -}; +typedef struct { + u32 resolution; + u32 accuracy; + u8 sets_to_zero; +} efi_time_cap_t; -struct bpf_active_lock { - void *ptr; - u32 id; -}; +typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *); -struct bpf_idx_pair; +typedef efi_status_t efi_set_time_t(efi_time_t *); -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; -}; +typedef u8 efi_bool_t; -struct bpf_reference_state; +typedef efi_status_t efi_get_wakeup_time_t(efi_bool_t *, efi_bool_t *, efi_time_t *); -struct bpf_stack_state; +typedef efi_status_t efi_set_wakeup_time_t(efi_bool_t, efi_time_t *); -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; -}; +typedef efi_status_t efi_set_virtual_address_map_t(unsigned long, unsigned long, u32, efi_memory_desc_t *); -struct bpf_reference_state { - int id; - int insn_idx; - int callback_ref; -}; +typedef u16 efi_char16_t; -struct bpf_stack_state { - struct bpf_reg_state spilled_ptr; - u8 slot_type[8]; -}; +typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *); -struct bpf_idx_pair { - u32 prev_idx; - u32 idx; -}; +typedef efi_status_t efi_get_next_variable_t(unsigned long *, efi_char16_t *, efi_guid_t *); -struct bpf_verifier_state_list { - struct bpf_verifier_state state; - struct bpf_verifier_state_list *next; - int miss_cnt; - int hit_cnt; -}; +typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *); -struct bpf_loop_inline_state { - unsigned int initialized: 1; - unsigned int fit_for_inline: 1; - u32 callback_subprogno; -}; +typedef efi_status_t efi_get_next_high_mono_count_t(u32 *); -struct btf_struct_meta; +typedef void efi_reset_system_t(int, efi_status_t, unsigned long, efi_char16_t *); -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; - }; - union { - u64 obj_new_size; - u64 insert_off; - }; - struct btf_struct_meta *kptr_struct_meta; - u64 map_key_state; - int ctx_field_size; - u32 seen; - bool sanitize_stack_spill; - bool zext_dst; - bool storage_get_func_atomic; - bool is_iter_next; - u8 alu_state; - unsigned int orig_idx; - bool jmp_point; - bool prune_point; - bool force_checkpoint; -}; +typedef struct { + efi_guid_t guid; + u32 headersize; + u32 flags; + u32 imagesize; +} efi_capsule_header_t; -struct btf_struct_meta { - u32 btf_id; - struct btf_record *record; -}; +typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, unsigned long, unsigned long); -typedef void (*btf_trace_bpf_trace_printk)(void *, const char *); +typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, unsigned long, u64 *, int *); -struct bpf_nested_pt_regs { - struct pt_regs regs[3]; -}; +typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *); -struct bpf_trace_sample_data { - struct perf_sample_data sds[3]; -}; +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; -struct send_signal_irq_work { - struct irq_work irq_work; - struct task_struct *task; - u32 sig; - enum pid_type type; -}; +typedef union { + struct { + efi_table_hdr_t hdr; + 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_set_virtual_address_map_t *set_virtual_address_map; + void *convert_pointer; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; + efi_update_capsule_t *update_capsule; + efi_query_capsule_caps_t *query_capsule_caps; + efi_query_variable_info_t *query_variable_info; + }; + efi_runtime_services_32_t mixed_mode; +} efi_runtime_services_t; -struct bpf_raw_tp_regs { - struct pt_regs regs[3]; -}; +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; -struct bpf_link; +union efi_simple_text_input_protocol; -struct bpf_link_info; +typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t; -struct bpf_link_ops { - void (*release)(struct bpf_link *); - void (*dealloc)(struct bpf_link *); - int (*detach)(struct bpf_link *); - int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *); - void (*show_fdinfo)(const struct bpf_link *, struct seq_file *); - int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *); - int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *); -}; +union efi_simple_text_output_protocol; -enum bpf_link_type { - BPF_LINK_TYPE_UNSPEC = 0, - BPF_LINK_TYPE_RAW_TRACEPOINT = 1, - BPF_LINK_TYPE_TRACING = 2, - BPF_LINK_TYPE_CGROUP = 3, - BPF_LINK_TYPE_ITER = 4, - BPF_LINK_TYPE_NETNS = 5, - BPF_LINK_TYPE_XDP = 6, - BPF_LINK_TYPE_PERF_EVENT = 7, - BPF_LINK_TYPE_KPROBE_MULTI = 8, - BPF_LINK_TYPE_STRUCT_OPS = 9, - BPF_LINK_TYPE_NETFILTER = 10, - MAX_BPF_LINK_TYPE = 11, -}; +typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t; -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; -}; +union efi_boot_services; -struct bpf_link_info { - __u32 type; - __u32 id; - __u32 prog_id; - union { - struct { - __u64 tp_name; - __u32 tp_name_len; - } raw_tracepoint; - struct { - __u32 attach_type; - __u32 target_obj_id; - __u32 target_btf_id; - } tracing; - struct { - __u64 cgroup_id; - __u32 attach_type; - } cgroup; - struct { - __u64 target_name; - __u32 target_name_len; - union { - struct { - __u32 map_id; - } map; - }; - union { - struct { - __u64 cgroup_id; - __u32 order; - } cgroup; - struct { - __u32 tid; - __u32 pid; - } task; - }; - } iter; - struct { - __u32 netns_ino; - __u32 attach_type; - } netns; - struct { - __u32 ifindex; - } xdp; - struct { - __u32 map_id; - } struct_ops; - struct { - __u32 pf; - __u32 hooknum; - __s32 priority; - __u32 flags; - } netfilter; +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; -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, -}; +typedef union { + struct { + u32 revision; + efi_handle_t parent_handle; + efi_system_table_t *system_table; + efi_handle_t device_handle; + void *file_path; + void *reserved; + u32 load_options_size; + void *load_options; + void *image_base; + __u64 image_size; + unsigned int image_code_type; + unsigned int image_data_type; + efi_status_t (*unload)(efi_handle_t); + }; + struct { + u32 revision; + u32 parent_handle; + u32 system_table; + u32 device_handle; + u32 file_path; + u32 reserved; + u32 load_options_size; + u32 load_options; + u32 image_base; + __u64 image_size; + u32 image_code_type; + u32 image_data_type; + u32 unload; + } mixed_mode; +} efi_loaded_image_t; -enum { - BTF_F_COMPACT = 1, - BTF_F_NONAME = 2, - BTF_F_PTR_RAW = 4, - BTF_F_ZERO = 8, -}; +typedef struct { + u16 scan_code; + efi_char16_t unicode_char; +} efi_input_key_t; -enum { - BPF_F_INDEX_MASK = 4294967295ULL, - BPF_F_CURRENT_CPU = 4294967295ULL, - BPF_F_CTXLEN_MASK = 4503595332403200ULL, +typedef void *efi_event_t; + +union efi_simple_text_input_protocol { + struct { + void *reset; + efi_status_t (*read_keystroke)(efi_simple_text_input_protocol_t *, efi_input_key_t *); + efi_event_t wait_for_key; + }; + struct { + u32 reset; + u32 read_keystroke; + u32 wait_for_key; + } mixed_mode; }; -enum { - BPF_F_GET_BRANCH_RECORDS_SIZE = 1, +union efi_simple_text_output_protocol { + struct { + void *reset; + efi_status_t (*output_string)(efi_simple_text_output_protocol_t *, efi_char16_t *); + void *test_string; + }; + struct { + u32 reset; + u32 output_string; + u32 test_string; + } mixed_mode; }; -typedef u64 (*btf_bpf_override_return)(struct pt_regs *, unsigned long); +typedef u64 efi_physical_addr_t; -typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); +typedef void (*efi_event_notify_t)(efi_event_t, void *); -typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); +typedef enum { + EfiTimerCancel = 0, + EfiTimerPeriodic = 1, + EfiTimerRelative = 2, +} EFI_TIMER_DELAY; -typedef u64 (*btf_bpf_probe_read_kernel)(void *, u32, const void *); +union efi_boot_services { + struct { + efi_table_hdr_t hdr; + void *raise_tpl; + void *restore_tpl; + efi_status_t (*allocate_pages)(int, int, unsigned long, efi_physical_addr_t *); + efi_status_t (*free_pages)(efi_physical_addr_t, unsigned long); + efi_status_t (*get_memory_map)(unsigned long *, void *, unsigned long *, unsigned long *, u32 *); + efi_status_t (*allocate_pool)(int, unsigned long, void **); + efi_status_t (*free_pool)(void *); + efi_status_t (*create_event)(u32, unsigned long, efi_event_notify_t, void *, efi_event_t *); + efi_status_t (*set_timer)(efi_event_t, EFI_TIMER_DELAY, u64); + efi_status_t (*wait_for_event)(unsigned long, efi_event_t *, unsigned long *); + void *signal_event; + efi_status_t (*close_event)(efi_event_t); + void *check_event; + void *install_protocol_interface; + void *reinstall_protocol_interface; + void *uninstall_protocol_interface; + efi_status_t (*handle_protocol)(efi_handle_t, efi_guid_t *, void **); + void *__reserved; + void *register_protocol_notify; + efi_status_t (*locate_handle)(int, efi_guid_t *, void *, unsigned long *, efi_handle_t *); + efi_status_t (*locate_device_path)(efi_guid_t *, efi_device_path_protocol_t **, efi_handle_t *); + efi_status_t (*install_configuration_table)(efi_guid_t *, void *); + efi_status_t (*load_image)(bool, efi_handle_t, efi_device_path_protocol_t *, void *, unsigned long, efi_handle_t *); + efi_status_t (*start_image)(efi_handle_t, unsigned long *, efi_char16_t **); + efi_status_t (*exit)(efi_handle_t, efi_status_t, unsigned long, efi_char16_t *); + efi_status_t (*unload_image)(efi_handle_t); + efi_status_t (*exit_boot_services)(efi_handle_t, unsigned long); + void *get_next_monotonic_count; + efi_status_t (*stall)(unsigned long); + void *set_watchdog_timer; + void *connect_controller; + efi_status_t (*disconnect_controller)(efi_handle_t, efi_handle_t, efi_handle_t); + void *open_protocol; + void *close_protocol; + void *open_protocol_information; + void *protocols_per_handle; + void *locate_handle_buffer; + efi_status_t (*locate_protocol)(efi_guid_t *, void *, void **); + efi_status_t (*install_multiple_protocol_interfaces)(efi_handle_t *, ...); + efi_status_t (*uninstall_multiple_protocol_interfaces)(efi_handle_t, ...); + void *calculate_crc32; + void (*copy_mem)(void *, const void *, unsigned long); + void (*set_mem)(void *, unsigned long, unsigned char); + void *create_event_ex; + }; + struct { + efi_table_hdr_t hdr; + u32 raise_tpl; + u32 restore_tpl; + u32 allocate_pages; + u32 free_pages; + u32 get_memory_map; + u32 allocate_pool; + u32 free_pool; + u32 create_event; + u32 set_timer; + u32 wait_for_event; + u32 signal_event; + u32 close_event; + u32 check_event; + u32 install_protocol_interface; + u32 reinstall_protocol_interface; + u32 uninstall_protocol_interface; + u32 handle_protocol; + u32 __reserved; + u32 register_protocol_notify; + u32 locate_handle; + u32 locate_device_path; + u32 install_configuration_table; + u32 load_image; + u32 start_image; + u32 exit; + u32 unload_image; + u32 exit_boot_services; + u32 get_next_monotonic_count; + u32 stall; + u32 set_watchdog_timer; + u32 connect_controller; + u32 disconnect_controller; + u32 open_protocol; + u32 close_protocol; + u32 open_protocol_information; + u32 protocols_per_handle; + u32 locate_handle_buffer; + u32 locate_protocol; + u32 install_multiple_protocol_interfaces; + u32 uninstall_multiple_protocol_interfaces; + u32 calculate_crc32; + u32 copy_mem; + u32 set_mem; + u32 create_event_ex; + } mixed_mode; +}; -typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *); +typedef struct { + u32 attributes; + u16 file_path_list_length; + u8 variable_data[0]; +} __attribute__((packed)) efi_load_option_t; -typedef u64 (*btf_bpf_probe_read_compat)(void *, u32, const void *); +typedef struct { + u32 attributes; + u16 file_path_list_length; + const efi_char16_t *description; + const efi_device_path_protocol_t *file_path_list; + u32 optional_data_size; + const void *optional_data; +} efi_load_option_unpacked_t; -typedef u64 (*btf_bpf_probe_read_compat_str)(void *, u32, const void *); +typedef u32 efi_tcg2_event_log_format; -typedef u64 (*btf_bpf_probe_write_user)(void __attribute__((btf_type_tag("user"))) *, const void *, u32); +union efi_tcg2_protocol; -typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64); +typedef union efi_tcg2_protocol efi_tcg2_protocol_t; -typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32); +union efi_tcg2_protocol { + struct { + void *get_capability; + efi_status_t (*get_event_log)(efi_tcg2_protocol_t *, efi_tcg2_event_log_format, efi_physical_addr_t *, efi_physical_addr_t *, efi_bool_t *); + efi_status_t (*hash_log_extend_event)(efi_tcg2_protocol_t *, u64, efi_physical_addr_t, u64, const efi_tcg2_event_t *); + void *submit_command; + void *get_active_pcr_banks; + void *set_active_pcr_banks; + void *get_result_of_set_active_pcr_banks; + }; + struct { + u32 get_capability; + u32 get_event_log; + u32 hash_log_extend_event; + u32 submit_command; + u32 get_active_pcr_banks; + u32 set_active_pcr_banks; + u32 get_result_of_set_active_pcr_banks; + } mixed_mode; +}; -typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32); +typedef efi_status_t (*efi_exit_boot_map_processing)(struct efi_boot_memmap *, void *); -typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32); +typedef struct { + efi_guid_t guid; + u32 table; +} efi_config_table_32_t; -struct btf_ptr; +typedef union { + struct { + efi_guid_t guid; + void *table; + }; + efi_config_table_32_t mixed_mode; +} efi_config_table_t; -typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64); +union efi_memory_attribute_protocol; -struct btf_ptr { - void *ptr; - __u32 type_id; - __u32 flags; +typedef union efi_memory_attribute_protocol efi_memory_attribute_protocol_t; + +union efi_memory_attribute_protocol { + struct { + efi_status_t (*get_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64 *); + efi_status_t (*set_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64); + efi_status_t (*clear_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64); + }; + struct { + u32 get_memory_attributes; + u32 set_memory_attributes; + u32 clear_memory_attributes; + } mixed_mode; }; -typedef u64 (*btf_bpf_perf_event_read)(struct bpf_map *, u64); +struct nsset { + unsigned int flags; + struct nsproxy *nsproxy; + struct fs_struct *fs; + const struct cred *cred; +}; -struct bpf_perf_event_value; +typedef void (*btf_trace_initcall_level)(void *, const char *); -typedef u64 (*btf_bpf_perf_event_read_value)(struct bpf_map *, u64, struct bpf_perf_event_value *, u32); +typedef void (*btf_trace_initcall_start)(void *, initcall_t); -struct bpf_perf_event_value { - __u64 counter; - __u64 enabled; - __u64 running; -}; +typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int); -typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64); +typedef initcall_t initcall_entry_t; -typedef u64 (*btf_bpf_get_current_task)(); +struct trace_event_raw_initcall_level { + struct trace_entry ent; + u32 __data_loc_level; + char __data[0]; +}; -typedef u64 (*btf_bpf_get_current_task_btf)(); +struct trace_event_raw_initcall_start { + struct trace_entry ent; + initcall_t func; + char __data[0]; +}; -typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *); +struct trace_event_raw_initcall_finish { + struct trace_entry ent; + initcall_t func; + int ret; + char __data[0]; +}; -typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32); +struct blacklist_entry { + struct list_head next; + char *buf; +}; -typedef u64 (*btf_bpf_send_signal)(u32); +struct trace_event_data_offsets_initcall_level { + u32 level; +}; -typedef u64 (*btf_bpf_send_signal_thread)(u32); +struct trace_event_data_offsets_initcall_start {}; -typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32); +struct trace_event_data_offsets_initcall_finish {}; -typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64); +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, +}; -typedef u64 (*btf_bpf_get_func_ip_tracing)(void *); +struct rcu_cblist { + struct callback_head *head; + struct callback_head **tail; + long len; +}; -typedef u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *); +struct rcu_synchronize { + struct callback_head head; + struct completion completion; +}; -typedef u64 (*btf_bpf_get_func_ip_kprobe_multi)(struct pt_regs *); +enum clocksource_ids { + CSID_GENERIC = 0, + CSID_ARM_ARCH_COUNTER = 1, + CSID_MAX = 2, +}; -typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *); +enum vdso_clock_mode { + VDSO_CLOCKMODE_NONE = 0, + VDSO_CLOCKMODE_ARCHTIMER = 1, + VDSO_CLOCKMODE_MAX = 2, + VDSO_CLOCKMODE_TIMENS = 2147483647, +}; -typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *); +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 module *owner; +}; -typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *); +struct proc_timens_offset { + int clockid; + struct timespec64 val; +}; -typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *); +enum rdmacg_resource_type { + RDMACG_RESOURCE_HCA_HANDLE = 0, + RDMACG_RESOURCE_HCA_OBJECT = 1, + RDMACG_RESOURCE_MAX = 2, +}; -typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64); +enum { + CSS_NO_REF = 1, + CSS_ONLINE = 2, + CSS_RELEASED = 4, + CSS_VISIBLE = 8, + CSS_DYING = 16, +}; -typedef u64 (*btf_get_func_arg)(void *, u32, u64 *); +enum cgroup_subsys_id { + cpuset_cgrp_id = 0, + cpu_cgrp_id = 1, + cpuacct_cgrp_id = 2, + io_cgrp_id = 3, + memory_cgrp_id = 4, + devices_cgrp_id = 5, + freezer_cgrp_id = 6, + net_cls_cgrp_id = 7, + perf_event_cgrp_id = 8, + net_prio_cgrp_id = 9, + hugetlb_cgrp_id = 10, + pids_cgrp_id = 11, + rdma_cgrp_id = 12, + misc_cgrp_id = 13, + CGROUP_SUBSYS_COUNT = 14, +}; + +enum rdmacg_file_type { + RDMACG_RESOURCE_TYPE_MAX = 0, + RDMACG_RESOURCE_TYPE_STAT = 1, +}; + +struct rdmacg_resource { + int max; + int usage; +}; -typedef u64 (*btf_get_func_ret)(void *, u64 *); +struct rdmacg_device; -typedef u64 (*btf_get_func_arg_cnt)(void *); +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; +}; -typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64); +struct rdmacg_device { + struct list_head dev_node; + struct list_head rpools; + char *name; +}; -typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64); +struct rdma_cgroup { + struct cgroup_subsys_state css; + struct list_head rpools; +}; -typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64); +typedef struct { + char *from; + char *to; +} substring_t; -typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32); +struct tp_transition_snapshot { + unsigned long rcu; + unsigned long srcu; + bool ongoing; +}; -typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64); +enum tp_func_state { + TP_FUNC_0 = 0, + TP_FUNC_1 = 1, + TP_FUNC_2 = 2, + TP_FUNC_N = 3, +}; -struct bpf_raw_tracepoint_args; +enum tp_transition_sync { + TP_TRANSITION_SYNC_1_0_1 = 0, + TP_TRANSITION_SYNC_N_2_1 = 1, + _NR_TP_TRANSITION_SYNC = 2, +}; -typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64); +struct tp_module { + struct list_head list; + struct module *mod; +}; -struct bpf_raw_tracepoint_args { - __u64 args[0]; +struct tp_probes { + struct callback_head rcu; + struct tracepoint_func probes[0]; }; -typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64); +struct user_event_group { + char *system_name; + struct hlist_node node; + struct mutex reg_mutex; + struct hlist_head register_table[256]; +}; -typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64); +struct trace_array_cpu; -struct trace_event_raw_bpf_trace_printk { - struct trace_entry ent; - u32 __data_loc_bpf_string; - char __data[0]; +struct array_buffer { + struct trace_array *tr; + struct trace_buffer *buffer; + struct trace_array_cpu __attribute__((btf_type_tag("percpu"))) *data; + u64 time_start; + int cpu; }; -struct bpf_kprobe_multi_link; +struct trace_pid_list; -struct bpf_kprobe_multi_run_ctx { - struct bpf_run_ctx run_ctx; - struct bpf_kprobe_multi_link *link; - unsigned long entry_ip; -}; +struct trace_options; -struct rethook; +struct trace_func_repeats; -struct fprobe { - struct ftrace_ops ops; - unsigned long nmissed; +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[457]; + struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[457]; + 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; - struct rethook *rethook; - size_t entry_data_size; - int nr_maxactive; - int (*entry_handler)(struct fprobe *, unsigned long, unsigned long, struct pt_regs *, void *); - void (*exit_handler)(struct fprobe *, unsigned long, unsigned long, struct pt_regs *, void *); + raw_spinlock_t start_lock; + struct list_head err_log; + struct dentry *dir; + struct dentry *options; + struct dentry *percpu_dir; + struct eventfs_inode *event_dir; + struct trace_options *topts; + struct list_head systems; + struct list_head events; + struct trace_event_file *trace_marker_file; + cpumask_var_t tracing_cpumask; + cpumask_var_t pipe_cpumask; + int ref; + int trace_ref; + struct ftrace_ops *ops; + struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_pids; + struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_no_pids; + struct list_head func_probes; + struct list_head mod_trace; + struct list_head mod_notrace; + int function_enabled; + int no_filter_buffering_ref; + struct list_head hist_vars; + struct trace_func_repeats __attribute__((btf_type_tag("percpu"))) *last_func_repeats; + bool ring_buffer_expanded; }; -struct 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 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; }; -struct rethook_node; - -typedef void (*rethook_handler_t)(struct rethook_node *, void *, unsigned long, struct pt_regs *); +union upper_chunk; -struct freelist_node; +union lower_chunk; -struct freelist_head { - struct freelist_node *head; +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; }; -struct rethook { - void *data; - rethook_handler_t handler; - struct freelist_head pool; - refcount_t ref; - struct callback_head rcu; +union upper_chunk { + union upper_chunk *next; + union lower_chunk *data[256]; }; -struct freelist_node { - atomic_t refs; - struct freelist_node *next; +union lower_chunk { + union lower_chunk *next; + unsigned long data[256]; }; -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; -}; +struct filter_pred; -struct bpf_trace_run_ctx { - struct bpf_run_ctx run_ctx; - u64 bpf_cookie; +struct prog_entry { + int target; + int when_to_branch; + struct filter_pred *pred; }; -struct bpf_trace_module { - struct module *module; +struct event_subsystem; + +struct trace_subsystem_dir { struct list_head list; + struct event_subsystem *subsystem; + struct trace_array *tr; + struct eventfs_inode *ei; + int ref_count; + int nr_events; }; -struct trace_event_data_offsets_bpf_trace_printk { - u32 bpf_string; +struct event_subsystem { + struct list_head list; + const char *name; + struct event_filter *filter; + int ref_count; }; -typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); - -struct bpf_bprintf_data { - u32 *bin_args; - char *buf; - bool get_bin_args; - bool get_buf; -}; +struct tracer_flags; -struct user_syms { - const char **syms; - char *buf; +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; }; -typedef int (*cmp_r_func_t)(const void *, const void *, const void *); +struct tracer_opt; -typedef void (*swap_r_func_t)(void *, void *, int, const void *); +struct tracer_flags { + u32 val; + struct tracer_opt *opts; + struct tracer *trace; +}; -struct bpf_link_primer { - struct bpf_link *link; - struct file *file; - int fd; - u32 id; +struct tracer_opt { + const char *name; + u32 bit; }; -struct modules_array { - struct module **mods; - int mods_cnt; - int mods_cap; +struct trace_option_dentry; + +struct trace_options { + struct tracer *tracer; + struct trace_option_dentry *topts; }; -struct btf_id_set { - u32 cnt; - u32 ids[0]; +struct trace_option_dentry { + struct tracer_opt *opt; + struct tracer_flags *flags; + struct trace_array *tr; + struct dentry *entry; }; -struct bpf_key { - struct key *key; - bool has_ref; +struct trace_func_repeats { + unsigned long ip; + unsigned long parent_ip; + unsigned long count; + u64 ts_last_call; }; -typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long); +struct dyn_event; -struct perf_event_query_bpf { - __u32 ids_len; - __u32 prog_cnt; - __u32 ids[0]; +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 multi_symbols_sort { - const char **funcs; - u64 *cookies; +struct dyn_event { + struct list_head list; + struct dyn_event_operations *ops; }; -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 *); +enum user_reg_flag { + USER_EVENT_REG_PERSIST = 1, + USER_EVENT_REG_MAX = 2, }; -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; +enum { + TRACE_EVENT_FL_FILTERED = 1, + TRACE_EVENT_FL_CAP_ANY = 2, + TRACE_EVENT_FL_NO_SET_FILTER = 4, + TRACE_EVENT_FL_IGNORE_ENABLE = 8, + TRACE_EVENT_FL_TRACEPOINT = 16, + TRACE_EVENT_FL_DYNAMIC = 32, + TRACE_EVENT_FL_KPROBE = 64, + TRACE_EVENT_FL_UPROBE = 128, + TRACE_EVENT_FL_EPROBE = 256, + TRACE_EVENT_FL_FPROBE = 512, + TRACE_EVENT_FL_CUSTOM = 1024, }; -typedef void (*btf_trace_tlb_flush)(void *, int, unsigned long); +enum { + FILTER_OTHER = 0, + FILTER_STATIC_STRING = 1, + FILTER_DYN_STRING = 2, + FILTER_RDYN_STRING = 3, + FILTER_PTR_STRING = 4, + FILTER_TRACE_FN = 5, + FILTER_CPUMASK = 6, + FILTER_COMM = 7, + FILTER_CPU = 8, + FILTER_STACKTRACE = 9, +}; -typedef void (*btf_trace_mm_migrate_pages)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, enum migrate_mode, int); +enum { + FOLL_WRITE = 1, + FOLL_GET = 2, + FOLL_DUMP = 4, + FOLL_FORCE = 8, + FOLL_NOWAIT = 16, + FOLL_NOFAULT = 32, + FOLL_HWPOISON = 64, + FOLL_ANON = 128, + FOLL_LONGTERM = 256, + FOLL_SPLIT_PMD = 512, + FOLL_PCI_P2PDMA = 1024, + FOLL_INTERRUPTIBLE = 2048, + FOLL_HONOR_NUMA_FAULT = 4096, +}; -typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int); +struct user_event; -typedef void (*btf_trace_set_migration_pte)(void *, unsigned long, unsigned long, int); +struct user_event_enabler { + struct list_head mm_enablers_link; + struct user_event *event; + unsigned long addr; + unsigned long values; +}; -typedef void (*btf_trace_remove_migration_pte)(void *, unsigned long, unsigned long, int); +struct user_event { + struct user_event_group *group; + struct tracepoint tracepoint; + struct trace_event_call call; + struct trace_event_class class; + struct dyn_event devent; + struct hlist_node node; + struct list_head fields; + struct list_head validators; + struct work_struct put_work; + refcount_t refcnt; + int min_size; + int reg_flags; + char status; +}; -enum ttu_flags { - TTU_SPLIT_HUGE_PMD = 4, - TTU_IGNORE_MLOCK = 8, - TTU_SYNC = 16, - TTU_HWPOISON = 32, - TTU_BATCH_FLUSH = 64, - TTU_RMAP_LOCKED = 128, +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; }; -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 user_event_validator { + struct list_head user_event_link; + int offset; + int flags; }; -typedef int rmap_t; +struct user_event_refs { + struct callback_head rcu; + int count; + struct user_event *events[0]; +}; -struct trace_event_raw_tlb_flush { - struct trace_entry ent; - int reason; - unsigned long pages; - char __data[0]; +struct user_reg { + __u32 size; + __u8 enable_bit; + __u8 enable_size; + __u16 flags; + __u64 enable_addr; + __u64 name_args; + __u32 write_index; +} __attribute__((packed)); + +struct __una_u32 { + u32 x; }; -struct trace_event_raw_mm_migrate_pages { +struct user_event_enabler_fault { + struct work_struct work; + struct user_event_mm *mm; + struct user_event_enabler *enabler; + int attempt; +}; + +struct user_unreg { + __u32 size; + __u8 disable_bit; + __u8 __reserved; + __u16 __reserved2; + __u64 disable_addr; +}; + +struct user_event_file_info { + struct user_event_group *group; + struct user_event_refs *refs; +}; + +typedef void (*user_event_func_t)(struct user_event *, struct iov_iter *, void *, bool *); + +struct bpf_bloom_filter { + struct bpf_map map; + u32 bitset_mask; + u32 hash_seed; + u32 nr_hash_funcs; + unsigned long bitset[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +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, +}; + +enum { + SB_UNFROZEN = 0, + SB_FREEZE_WRITE = 1, + SB_FREEZE_PAGEFAULT = 2, + SB_FREEZE_FS = 3, + SB_FREEZE_COMPLETE = 4, +}; + +struct trace_event_raw_mm_filemap_op_page_cache { 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; + unsigned long pfn; + unsigned long i_ino; + unsigned long index; + dev_t s_dev; + unsigned char order; char __data[0]; }; -struct trace_event_raw_mm_migrate_pages_start { +struct trace_event_raw_filemap_set_wb_err { struct trace_entry ent; - enum migrate_mode mode; - int reason; + unsigned long i_ino; + dev_t s_dev; + errseq_t errseq; char __data[0]; }; -struct trace_event_raw_migration_pte { +struct trace_event_raw_file_check_and_advance_wb_err { struct trace_entry ent; - unsigned long addr; - unsigned long pte; - int order; + struct file *file; + unsigned long i_ino; + dev_t s_dev; + errseq_t old; + errseq_t new; char __data[0]; }; -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 cachestat_range { + __u64 off; + __u64 len; }; -struct page_vma_mapped_walk { - unsigned long pfn; - unsigned long nr_pages; - unsigned long pgoff; - struct vm_area_struct *vma; - unsigned long address; - pmd_t *pmd; - pte_t *pte; - spinlock_t *ptl; - unsigned int flags; +struct cachestat { + __u64 nr_cache; + __u64 nr_dirty; + __u64 nr_writeback; + __u64 nr_evicted; + __u64 nr_recently_evicted; }; -struct mmu_notifier_range { - struct mm_struct *mm; - unsigned long start; - unsigned long end; +struct wait_page_key { + struct folio *folio; + int bit_nr; + int page_match; +}; + +typedef struct pglist_data pg_data_t; + +struct fd { + struct file *file; unsigned int flags; - enum mmu_notifier_event event; - void *owner; }; -struct trace_event_data_offsets_tlb_flush {}; +struct trace_event_data_offsets_mm_filemap_op_page_cache {}; -struct trace_event_data_offsets_mm_migrate_pages {}; +struct trace_event_data_offsets_filemap_set_wb_err {}; -struct trace_event_data_offsets_mm_migrate_pages_start {}; +struct trace_event_data_offsets_file_check_and_advance_wb_err {}; -struct trace_event_data_offsets_migration_pte {}; +typedef int filler_t(struct file *, struct folio *); -struct folio_referenced_arg { - int mapcount; - int referenced; - unsigned long vm_flags; - struct mem_cgroup *memcg; +struct dentry_stat_t { + long nr_dentry; + long nr_unused; + long age_limit; + long want_pages; + long nr_negative; + long dummy; }; -struct file_handle { - __u32 handle_bytes; - int handle_type; - unsigned char f_handle[0]; +enum lru_status { + LRU_REMOVED = 0, + LRU_REMOVED_RETRY = 1, + LRU_ROTATE = 2, + LRU_SKIP = 3, + LRU_RETRY = 4, }; -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 d_walk_ret { + D_WALK_CONTINUE = 0, + D_WALK_QUIT = 1, + D_WALK_NORETRY = 2, + D_WALK_SKIP = 3, }; -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, +struct external_name { + union { + atomic_t count; + struct callback_head head; + } u; + unsigned char name[0]; }; -struct fsnotify_group; +typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *); -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 name_snapshot { + struct qstr name; + unsigned char inline_name[32]; }; -struct inotify_group_private_data { - spinlock_t idr_lock; - struct idr idr; - struct ucounts *ucounts; +struct check_mount { + struct vfsmount *mnt; + unsigned int mounted; }; -struct fsnotify_ops; - -struct fsnotify_event; - -struct fsnotify_group { - const struct fsnotify_ops *ops; - refcount_t refcnt; - spinlock_t notification_lock; - struct list_head notification_list; - wait_queue_head_t notification_waitq; - unsigned int q_len; - unsigned int max_events; - unsigned int priority; - bool shutdown; - int flags; - unsigned int owner_flags; - struct mutex mark_mutex; - atomic_t user_waits; - struct list_head marks_list; - struct fasync_struct *fsn_fa; - struct fsnotify_event *overflow_event; - struct mem_cgroup *memcg; +struct select_data { + struct dentry *start; union { - void *private; - struct inotify_group_private_data inotify_data; + long found; + struct dentry *victim; }; + struct list_head dispose; }; -struct fsnotify_iter_info; - -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 mnt_idmap { + struct user_namespace *owner; + refcount_t count; }; -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]; - }; - }; -}; +struct iomap_folio_ops; -struct fsnotify_iter_info { - struct fsnotify_mark *marks[5]; - struct fsnotify_group *current_group; - unsigned int report_mask; - int srcu_idx; +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 fsnotify_event { - struct list_head list; +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 inotify_inode_mark { - struct fsnotify_mark fsn_mark; - int wd; +struct iomap_folio_ops { + struct folio * (*get_folio)(struct iomap_iter *, loff_t, unsigned int); + void (*put_folio)(struct inode *, loff_t, unsigned int, struct folio *); + bool (*iomap_valid)(struct inode *, const struct iomap *); }; -enum kernfs_node_type { - KERNFS_DIR = 1, - KERNFS_FILE = 2, - KERNFS_LINK = 4, +struct iomap_ops { + int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap *, struct iomap *); + int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap *); }; -struct fileattr { - u32 flags; - u32 fsx_xflags; - u32 fsx_extsize; - u32 fsx_nextents; - u32 fsx_projid; - u32 fsx_cowextsize; - bool flags_valid: 1; - bool fsx_valid: 1; +struct kernfs_fs_context { + struct kernfs_root *root; + void *ns_tag; + unsigned long magic; + bool new_sb_created; }; -enum { - EXT4_FC_REASON_XATTR = 0, - EXT4_FC_REASON_CROSS_RENAME = 1, - EXT4_FC_REASON_JOURNAL_FLAG_CHANGE = 2, - EXT4_FC_REASON_NOMEM = 3, - EXT4_FC_REASON_SWAP_BOOT = 4, - EXT4_FC_REASON_RESIZE = 5, - EXT4_FC_REASON_RENAME_DIR = 6, - EXT4_FC_REASON_FALLOC_RANGE = 7, - EXT4_FC_REASON_INODE_JOURNAL_DATA = 8, - EXT4_FC_REASON_ENCRYPTED_FILENAME = 9, - EXT4_FC_REASON_MAX = 10, +enum ramfs_param { + Opt_mode___2 = 0, }; -struct move_extent { - __u32 reserved; - __u32 donor_fd; - __u64 orig_start; - __u64 donor_start; - __u64 len; - __u64 moved_len; +struct ramfs_mount_opts { + umode_t mode; }; -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 ramfs_fs_info { + struct ramfs_mount_opts mount_opts; }; -struct fstrim_range { - __u64 start; - __u64 len; - __u64 minlen; +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 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 nfs_netns_client { + struct kobject kobject; + struct kobject nfs_net_kobj; + struct net *net; + const char __attribute__((btf_type_tag("rcu"))) *identifier; }; -struct shash_desc { - struct crypto_shash *tfm; - void *__ctx[0]; +struct bl_dev_msg { + int32_t status; + uint32_t major; + uint32_t minor; }; -struct ext4_iloc { - struct buffer_head *bh; - unsigned long offset; - ext4_group_t block_group; +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[3]; + struct nfs_netns_client *nfs_client; + spinlock_t nfs_client_lock; + ktime_t boot_time; + struct proc_dir_entry *proc_nfsfs; }; -struct ext4_new_group_data { - __u32 group; - __u64 block_bitmap; - __u64 inode_bitmap; - __u64 inode_table; - __u32 blocks_count; - __u16 reserved_blocks; - __u16 mdata_blocks; - __u32 free_clusters_count; +struct 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; }; -struct fsmap { - __u32 fmr_device; - __u32 fmr_flags; - __u64 fmr_physical; - __u64 fmr_owner; - __u64 fmr_offset; - __u64 fmr_length; - __u64 fmr_reserved[3]; +enum { + NFS_DEVICEID_INVALID = 0, + NFS_DEVICEID_UNAVAILABLE = 1, + NFS_DEVICEID_NOCACHE = 2, }; -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]; +enum stripetype4 { + STRIPE_SPARSE = 1, + STRIPE_DENSE = 2, }; -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; +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 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 nfs4_file_layout_dsaddr; -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 enum { - EXT4_IGET_NORMAL = 0, - EXT4_IGET_SPECIAL = 1, - EXT4_IGET_HANDLE = 2, - EXT4_IGET_BAD = 4, - EXT4_IGET_EA_INODE = 8, -} ext4_iget_flags; - -typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *); - -typedef u64 compat_u64; - -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; +struct nfs4_filelayout_segment { + struct pnfs_layout_segment generic_hdr; + u32 stripe_type; + u32 commit_through_mds; + u32 stripe_unit; + u32 first_stripe_index; + u64 pattern_offset; + struct nfs4_deviceid deviceid; + struct nfs4_file_layout_dsaddr *dsaddr; + unsigned int num_fh; + struct nfs_fh **fh_array; }; -typedef unsigned long long llu; +struct nfs4_pnfs_ds; -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_file_layout_dsaddr { + struct nfs4_deviceid_node id_node; + u32 stripe_count; + u8 *stripe_indices; + u32 ds_num; + struct nfs4_pnfs_ds *ds_list[0]; }; -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 nfs4_pnfs_ds { + struct list_head ds_node; + char *ds_remotestr; + struct list_head ds_addrs; + struct nfs_client *ds_clp; + refcount_t ds_count; + unsigned long ds_state; }; -struct fat_fid { - u32 i_gen; - u32 i_pos_low; - u16 i_pos_hi; - u16 parent_i_pos_hi; - u32 parent_i_pos_low; - u32 parent_i_gen; +struct nfs4_filelayout { + struct pnfs_layout_hdr generic_hdr; + struct pnfs_ds_commit_info commit_info; }; -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 pnfs_commit_bucket { + struct list_head written; + struct list_head committing; + struct pnfs_layout_segment *lseg; + struct nfs_writeverf direct_verf; }; -struct nls_table; - -struct fatent_operations; - -struct msdos_sb_info { - unsigned short sec_per_clus; - unsigned short cluster_bits; - unsigned int cluster_size; - unsigned char fats; - unsigned char fat_bits; - unsigned short fat_start; - unsigned long fat_length; - unsigned long dir_start; - unsigned short dir_entries; - unsigned long data_start; - unsigned long max_cluster; - unsigned long root_cluster; - unsigned long fsinfo_sector; - struct mutex fat_lock; - struct mutex nfs_build_inode_lock; - struct mutex s_lock; - unsigned int prev_free; - unsigned int free_clusters; - unsigned int free_clus_valid; - struct fat_mount_options options; - struct nls_table *nls_disk; - struct nls_table *nls_io; - const void *dir_ops; - int dir_per_block; - int dir_per_block_bits; - unsigned int vol_id; - int fatent_shift; - const struct fatent_operations *fatent_ops; - struct inode *fat_inode; - struct inode *fsinfo_inode; - struct ratelimit_state ratelimit; - spinlock_t inode_hash_lock; - struct hlist_head inode_hashtable[256]; - spinlock_t dir_hash_lock; - struct hlist_head dir_hashtable[256]; - unsigned int dirty; +struct pnfs_commit_array { + struct list_head cinfo_list; + struct list_head lseg_list; + struct pnfs_layout_segment *lseg; struct callback_head rcu; + refcount_t refcount; + unsigned int nbuckets; + struct pnfs_commit_bucket buckets[0]; }; -typedef u16 wchar_t; +struct rhash_lock_head {}; -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; +enum audit_mode { + AUDIT_NORMAL = 0, + AUDIT_QUIET_DENIED = 1, + AUDIT_QUIET = 2, + AUDIT_NOQUIET = 3, + AUDIT_ALL = 4, }; -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 *); +enum profile_mode { + APPARMOR_ENFORCE = 0, + APPARMOR_COMPLAIN = 1, + APPARMOR_KILL = 2, + APPARMOR_UNCONFINED = 3, + APPARMOR_USER = 4, }; -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 aa_caps { + kernel_cap_t allow; + kernel_cap_t audit; + kernel_cap_t denied; + kernel_cap_t quiet; + kernel_cap_t kill; + kernel_cap_t extended; }; -typedef void (*btf_trace_nfs_set_inode_stale)(void *, const struct inode *); - -typedef void (*btf_trace_nfs_refresh_inode_enter)(void *, const struct inode *); +struct aa_rlimit { + unsigned int mask; + struct rlimit limits[16]; +}; -typedef void (*btf_trace_nfs_refresh_inode_exit)(void *, const struct inode *, int); +struct aa_secmark; -typedef void (*btf_trace_nfs_revalidate_inode_enter)(void *, const struct inode *); +struct aa_ruleset { + struct list_head list; + int size; + struct aa_policydb *policy; + struct aa_policydb *file; + struct aa_caps caps; + struct aa_rlimit rlimits; + int secmark_count; + struct aa_secmark *secmark; +}; -typedef void (*btf_trace_nfs_revalidate_inode_exit)(void *, const struct inode *, int); +struct aa_secmark { + u8 audit; + u8 deny; + u32 secid; + char *label; +}; -typedef void (*btf_trace_nfs_invalidate_mapping_enter)(void *, const struct inode *); +struct lsm_network_audit; -typedef void (*btf_trace_nfs_invalidate_mapping_exit)(void *, const struct inode *, int); +struct lsm_ioctlop_audit; -typedef void (*btf_trace_nfs_getattr_enter)(void *, const struct inode *); +struct lsm_ibpkey_audit; -typedef void (*btf_trace_nfs_getattr_exit)(void *, const struct inode *, int); +struct lsm_ibendport_audit; -typedef void (*btf_trace_nfs_setattr_enter)(void *, const struct inode *); +struct selinux_audit_data; -typedef void (*btf_trace_nfs_setattr_exit)(void *, const struct inode *, int); +struct apparmor_audit_data; -typedef void (*btf_trace_nfs_writeback_inode_enter)(void *, const struct inode *); +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 apparmor_audit_data *apparmor_audit_data; + }; +}; -typedef void (*btf_trace_nfs_writeback_inode_exit)(void *, const struct inode *, int); +struct aa_label; -typedef void (*btf_trace_nfs_fsync_enter)(void *, const struct inode *); +struct aa_profile; -typedef void (*btf_trace_nfs_fsync_exit)(void *, const struct inode *, int); +struct apparmor_audit_data { + int error; + int type; + u16 class; + const char *op; + const struct cred *subj_cred; + struct aa_label *subj_label; + const char *name; + const char *info; + u32 request; + u32 denied; + union { + struct { + struct aa_label *peer; + union { + struct { + const char *target; + kuid_t ouid; + } fs; + struct { + int rlim; + unsigned long max; + } rlim; + struct { + int signal; + int unmappedsig; + }; + struct { + int type; + int protocol; + struct sock *peer_sk; + void *addr; + int addrlen; + } net; + }; + }; + struct { + struct aa_profile *profile; + const char *ns; + long pos; + } iface; + struct { + const char *src_name; + const char *type; + const char *trans; + const char *data; + unsigned long flags; + } mnt; + struct { + struct aa_label *target; + } uring; + }; + struct common_audit_data common; +}; -typedef void (*btf_trace_nfs_access_enter)(void *, const struct inode *); +struct aa_proxy; -typedef void (*btf_trace_nfs_set_cache_invalid)(void *, const struct inode *, int); +struct aa_label { + struct kref count; + struct rb_node node; + struct callback_head rcu; + struct aa_proxy *proxy; + char *hname; + long flags; + u32 secid; + int size; + struct aa_profile *vec[0]; +}; -typedef void (*btf_trace_nfs_readdir_force_readdirplus)(void *, const struct inode *); +struct aa_proxy { + struct kref count; + struct aa_label __attribute__((btf_type_tag("rcu"))) *label; +}; -typedef void (*btf_trace_nfs_readdir_cache_fill_done)(void *, const struct inode *, int); +struct aa_policy { + const char *name; + char *hname; + struct list_head list; + struct list_head profiles; +}; -typedef void (*btf_trace_nfs_readdir_uncached_done)(void *, const struct inode *, int); +struct aa_attachment { + const char *xmatch_str; + struct aa_policydb *xmatch; + unsigned int xmatch_len; + int xattr_count; + char **xattrs; +}; -typedef void (*btf_trace_nfs_access_exit)(void *, const struct inode *, unsigned int, unsigned int, int); +struct aa_ns; -typedef void (*btf_trace_nfs_size_truncate)(void *, const struct inode *, loff_t); +struct aa_loaddata; -typedef void (*btf_trace_nfs_size_wcc)(void *, const struct inode *, loff_t); +struct aa_profile { + struct aa_policy base; + struct aa_profile __attribute__((btf_type_tag("rcu"))) *parent; + struct aa_ns *ns; + const char *rename; + enum audit_mode audit; + long mode; + u32 path_flags; + const char *disconnected; + struct aa_attachment attach; + struct list_head rules; + struct aa_loaddata *rawdata; + unsigned char *hash; + char *dirname; + struct dentry *dents[9]; + struct rhashtable *data; + struct aa_label label; +}; -typedef void (*btf_trace_nfs_size_update)(void *, const struct inode *, loff_t); +struct aa_ns_acct { + int max_size; + int max_count; + int size; + int count; +}; -typedef void (*btf_trace_nfs_size_grow)(void *, const struct inode *, loff_t); +struct aa_labelset { + rwlock_t lock; + struct rb_root root; +}; -typedef void (*btf_trace_nfs_readdir_invalidate_cache_range)(void *, const struct inode *, loff_t, loff_t); +struct aa_ns { + struct aa_policy base; + struct aa_ns *parent; + struct mutex lock; + struct aa_ns_acct acct; + struct aa_profile *unconfined; + struct list_head sub_ns; + atomic_t uniq_null; + long uniq_id; + int level; + long revision; + wait_queue_head_t wait; + struct aa_labelset labels; + struct list_head rawdata_list; + struct dentry *dents[13]; +}; -typedef void (*btf_trace_nfs_readdir_cache_fill)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); +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; +}; -typedef void (*btf_trace_nfs_readdir_uncached)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); +struct lsm_ioctlop_audit { + struct path path; + u16 cmd; +}; -typedef void (*btf_trace_nfs_lookup_enter)(void *, const struct inode *, const struct dentry *, unsigned int); +struct lsm_ibpkey_audit { + u64 subnet_prefix; + u16 pkey; +}; -typedef void (*btf_trace_nfs_lookup_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); +struct lsm_ibendport_audit { + const char *dev_name; + u8 port; +}; -typedef void (*btf_trace_nfs_lookup_revalidate_enter)(void *, const struct inode *, const struct dentry *, unsigned int); +struct label_it { + int i; + int j; +}; -typedef void (*btf_trace_nfs_lookup_revalidate_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); +struct crypto_kpp { + unsigned int reqsize; + struct crypto_tfm base; +}; -typedef void (*btf_trace_nfs_readdir_lookup)(void *, const struct inode *, const struct dentry *, unsigned int); +struct kpp_request; -typedef void (*btf_trace_nfs_readdir_lookup_revalidate_failed)(void *, const struct inode *, const struct dentry *, unsigned int); +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; +}; -typedef void (*btf_trace_nfs_readdir_lookup_revalidate)(void *, const struct inode *, const struct dentry *, unsigned int, int); +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]; +}; -typedef void (*btf_trace_nfs_atomic_open_enter)(void *, const struct inode *, const struct nfs_open_context *, unsigned int); +struct kpp_instance { + void (*free)(struct kpp_instance *); + union { + struct { + char head[48]; + struct crypto_instance base; + } s; + struct kpp_alg alg; + }; +}; -typedef void (*btf_trace_nfs_atomic_open_exit)(void *, const struct inode *, const struct nfs_open_context *, unsigned int, int); +struct crypto_istat_kpp { + atomic64_t setsecret_cnt; + atomic64_t generate_public_key_cnt; + atomic64_t compute_shared_secret_cnt; + atomic64_t err_cnt; +}; -typedef void (*btf_trace_nfs_create_enter)(void *, const struct inode *, const struct dentry *, unsigned int); +struct crypto_kpp_spawn { + struct crypto_spawn base; +}; -typedef void (*btf_trace_nfs_create_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); +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, +}; -typedef void (*btf_trace_nfs_mknod_enter)(void *, const struct inode *, const struct dentry *); +enum req_flag_bits { + __REQ_FAILFAST_DEV = 8, + __REQ_FAILFAST_TRANSPORT = 9, + __REQ_FAILFAST_DRIVER = 10, + __REQ_SYNC = 11, + __REQ_META = 12, + __REQ_PRIO = 13, + __REQ_NOMERGE = 14, + __REQ_IDLE = 15, + __REQ_INTEGRITY = 16, + __REQ_FUA = 17, + __REQ_PREFLUSH = 18, + __REQ_RAHEAD = 19, + __REQ_BACKGROUND = 20, + __REQ_NOWAIT = 21, + __REQ_POLLED = 22, + __REQ_ALLOC_CACHE = 23, + __REQ_SWAP = 24, + __REQ_DRV = 25, + __REQ_FS_PRIVATE = 26, + __REQ_NOUNMAP = 27, + __REQ_NR_BITS = 28, +}; -typedef void (*btf_trace_nfs_mknod_exit)(void *, const struct inode *, const struct dentry *, int); +enum { + BIO_PAGE_PINNED = 0, + BIO_CLONED = 1, + BIO_BOUNCED = 2, + BIO_QUIET = 3, + BIO_CHAIN = 4, + BIO_REFFED = 5, + BIO_BPS_THROTTLED = 6, + BIO_TRACE_COMPLETION = 7, + BIO_CGROUP_ACCT = 8, + BIO_QOS_THROTTLED = 9, + BIO_QOS_MERGED = 10, + BIO_REMAPPED = 11, + BIO_ZONE_WRITE_LOCKED = 12, + BIO_FLAG_LAST = 13, +}; -typedef void (*btf_trace_nfs_mkdir_enter)(void *, const struct inode *, const struct dentry *); +enum { + DIO_SHOULD_DIRTY = 1, + DIO_IS_SYNC = 2, +}; -typedef void (*btf_trace_nfs_mkdir_exit)(void *, const struct inode *, const struct dentry *, int); +enum { + BIOSET_NEED_BVECS = 1, + BIOSET_NEED_RESCUER = 2, + BIOSET_PERCPU_CACHE = 4, +}; -typedef void (*btf_trace_nfs_rmdir_enter)(void *, const struct inode *, const struct dentry *); +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; + long: 64; +}; -typedef void (*btf_trace_nfs_rmdir_exit)(void *, const struct inode *, const struct dentry *, int); +typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); -typedef void (*btf_trace_nfs_remove_enter)(void *, const struct inode *, const struct dentry *); +enum { + GENHD_FL_REMOVABLE = 1, + GENHD_FL_HIDDEN = 2, + GENHD_FL_NO_PART = 4, +}; -typedef void (*btf_trace_nfs_remove_exit)(void *, const struct inode *, const struct dentry *, int); +struct subsys_private; -typedef void (*btf_trace_nfs_unlink_enter)(void *, const struct inode *, const struct dentry *); +struct class_dev_iter { + struct klist_iter ki; + const struct device_type *type; + struct subsys_private *sp; +}; -typedef void (*btf_trace_nfs_unlink_exit)(void *, const struct inode *, const struct dentry *, int); +struct uuidcmp { + const char *uuid; + int len; +}; -typedef void (*btf_trace_nfs_symlink_enter)(void *, const struct inode *, const struct dentry *); +struct io_cache_entry { + struct io_wq_work_node node; +}; -typedef void (*btf_trace_nfs_symlink_exit)(void *, const struct inode *, const struct dentry *, int); +struct io_rsrc_put { + u64 tag; + union { + void *rsrc; + struct file *file; + struct io_mapped_ubuf *buf; + }; +}; -typedef void (*btf_trace_nfs_link_enter)(void *, const struct inode *, const struct inode *, const struct dentry *); +struct io_rsrc_node { + union { + struct io_cache_entry cache; + struct io_ring_ctx *ctx; + }; + int refs; + bool empty; + u16 type; + struct list_head node; + struct io_rsrc_put item; +}; -typedef void (*btf_trace_nfs_link_exit)(void *, const struct inode *, const struct inode *, const struct dentry *, int); +struct io_mapped_ubuf { + u64 ubuf; + u64 ubuf_end; + unsigned int nr_bvecs; + unsigned long acct_pages; + struct bio_vec bvec[0]; +}; -typedef void (*btf_trace_nfs_rename_enter)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *); +struct io_buffer { + struct list_head list; + __u64 addr; + __u32 len; + __u16 bid; + __u16 bgid; +}; -typedef void (*btf_trace_nfs_rename_exit)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); +struct io_uring_buf_ring; -typedef void (*btf_trace_nfs_sillyrename_rename)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); +struct io_buffer_list { + union { + struct list_head buf_list; + struct { + struct page **buf_pages; + struct io_uring_buf_ring *buf_ring; + }; + struct callback_head rcu; + }; + __u16 bgid; + __u16 buf_nr_pages; + __u16 nr_entries; + __u16 head; + __u16 mask; + __u8 is_mapped; + __u8 is_mmap; + __u8 is_ready; +}; -typedef void (*btf_trace_nfs_sillyrename_unlink)(void *, const struct nfs_unlinkdata *, int); +struct io_uring_buf { + __u64 addr; + __u32 len; + __u16 bid; + __u16 resv; +}; -typedef void (*btf_trace_nfs_aop_readpage)(void *, const struct inode *, struct folio *); +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]; + }; + }; +}; -typedef void (*btf_trace_nfs_aop_readpage_done)(void *, const struct inode *, struct folio *, int); +struct io_poll { + struct file *file; + struct wait_queue_head *head; + __poll_t events; + int retries; + struct wait_queue_entry wait; +}; -typedef void (*btf_trace_nfs_writeback_folio)(void *, const struct inode *, struct folio *); +struct async_poll { + union { + struct io_poll poll; + struct io_cache_entry cache; + }; + struct io_poll *double_poll; +}; -typedef void (*btf_trace_nfs_writeback_folio_done)(void *, const struct inode *, struct folio *, int); +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; +}; -typedef void (*btf_trace_nfs_invalidate_folio)(void *, const struct inode *, struct folio *); +struct io_rsrc_data { + struct io_ring_ctx *ctx; + u64 **tags; + unsigned int nr; + u16 rsrc_type; + bool quiesce; +}; -typedef void (*btf_trace_nfs_launder_folio_done)(void *, const struct inode *, struct folio *, int); +typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); -typedef void (*btf_trace_nfs_aop_readahead)(void *, const struct inode *, loff_t, unsigned int); +typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long); -typedef void (*btf_trace_nfs_aop_readahead_done)(void *, const struct inode *, unsigned int, int); +typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int); -typedef void (*btf_trace_nfs_initiate_read)(void *, const struct nfs_pgio_header *); +typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int); -typedef void (*btf_trace_nfs_readpage_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); +typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *); -typedef void (*btf_trace_nfs_readpage_short)(void *, const struct rpc_task *, const struct nfs_pgio_header *); +typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *); -typedef void (*btf_trace_nfs_pgio_error)(void *, const struct nfs_pgio_header *, int, loff_t); +typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); -typedef void (*btf_trace_nfs_initiate_write)(void *, const struct nfs_pgio_header *); +typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *); -typedef void (*btf_trace_nfs_writeback_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); +typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64); -typedef void (*btf_trace_nfs_write_error)(void *, const struct inode *, const struct nfs_page *, int); +typedef void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *); -typedef void (*btf_trace_nfs_comp_error)(void *, const struct inode *, const struct nfs_page *, int); +typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int); -typedef void (*btf_trace_nfs_commit_error)(void *, const struct inode *, const struct nfs_page *, int); +typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int); -typedef void (*btf_trace_nfs_initiate_commit)(void *, const struct nfs_commit_data *); +typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int); -typedef void (*btf_trace_nfs_commit_done)(void *, const struct rpc_task *, const struct nfs_commit_data *); +typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, unsigned long long, s32, u32, void *); -typedef void (*btf_trace_nfs_direct_commit_complete)(void *, const struct nfs_direct_req *); +typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int, unsigned int); -typedef void (*btf_trace_nfs_direct_resched_write)(void *, const struct nfs_direct_req *); +typedef void (*btf_trace_io_uring_short_write)(void *, void *, u64, u64, u64); -typedef void (*btf_trace_nfs_direct_write_complete)(void *, const struct nfs_direct_req *); +typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int); -typedef void (*btf_trace_nfs_direct_write_completion)(void *, const struct nfs_direct_req *); +struct creds; -typedef void (*btf_trace_nfs_direct_write_schedule_iovec)(void *, const struct nfs_direct_req *); +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, +}; -typedef void (*btf_trace_nfs_direct_write_reschedule_io)(void *, const struct nfs_direct_req *); +enum { + IO_CHECK_CQ_OVERFLOW_BIT = 0, + IO_CHECK_CQ_DROPPED_BIT = 1, +}; -typedef void (*btf_trace_nfs_fh_to_dentry)(void *, const struct super_block *, const struct nfs_fh *, u64, int); +enum { + IO_APOLL_OK = 0, + IO_APOLL_ABORTED = 1, + IO_APOLL_READY = 2, +}; -typedef void (*btf_trace_nfs_mount_assign)(void *, const char *, const char *); +enum { + IO_EVENTFD_OP_SIGNAL_BIT = 0, + IO_EVENTFD_OP_FREE_BIT = 1, +}; -typedef void (*btf_trace_nfs_mount_option)(void *, const struct fs_parameter *); +enum { + IORING_CQE_BUFFER_SHIFT = 16, +}; -typedef void (*btf_trace_nfs_mount_path)(void *, const char *); +enum { + IOU_F_TWQ_LAZY_WAKE = 1, +}; -typedef void (*btf_trace_nfs_xdr_status)(void *, const struct xdr_stream *, int); +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_APOLL_MULTISHOT_BIT = 26, + REQ_F_CLEAR_POLLIN_BIT = 27, + REQ_F_HASH_LOCKED_BIT = 28, + REQ_F_SUPPORT_NOWAIT_BIT = 29, + REQ_F_ISREG_BIT = 30, + REQ_F_POLL_NO_LAZY_BIT = 31, + __REQ_F_LAST_BIT = 32, +}; -typedef void (*btf_trace_nfs_xdr_bad_filehandle)(void *, const struct xdr_stream *, int); +enum io_uring_op { + IORING_OP_NOP = 0, + IORING_OP_READV = 1, + IORING_OP_WRITEV = 2, + IORING_OP_FSYNC = 3, + IORING_OP_READ_FIXED = 4, + IORING_OP_WRITE_FIXED = 5, + IORING_OP_POLL_ADD = 6, + IORING_OP_POLL_REMOVE = 7, + IORING_OP_SYNC_FILE_RANGE = 8, + IORING_OP_SENDMSG = 9, + IORING_OP_RECVMSG = 10, + IORING_OP_TIMEOUT = 11, + IORING_OP_TIMEOUT_REMOVE = 12, + IORING_OP_ACCEPT = 13, + IORING_OP_ASYNC_CANCEL = 14, + IORING_OP_LINK_TIMEOUT = 15, + IORING_OP_CONNECT = 16, + IORING_OP_FALLOCATE = 17, + IORING_OP_OPENAT = 18, + IORING_OP_CLOSE = 19, + IORING_OP_FILES_UPDATE = 20, + IORING_OP_STATX = 21, + IORING_OP_READ = 22, + IORING_OP_WRITE = 23, + IORING_OP_FADVISE = 24, + IORING_OP_MADVISE = 25, + IORING_OP_SEND = 26, + IORING_OP_RECV = 27, + IORING_OP_OPENAT2 = 28, + IORING_OP_EPOLL_CTL = 29, + IORING_OP_SPLICE = 30, + IORING_OP_PROVIDE_BUFFERS = 31, + IORING_OP_REMOVE_BUFFERS = 32, + IORING_OP_TEE = 33, + IORING_OP_SHUTDOWN = 34, + IORING_OP_RENAMEAT = 35, + IORING_OP_UNLINKAT = 36, + IORING_OP_MKDIRAT = 37, + IORING_OP_SYMLINKAT = 38, + IORING_OP_LINKAT = 39, + IORING_OP_MSG_RING = 40, + IORING_OP_FSETXATTR = 41, + IORING_OP_SETXATTR = 42, + IORING_OP_FGETXATTR = 43, + IORING_OP_GETXATTR = 44, + IORING_OP_SOCKET = 45, + IORING_OP_URING_CMD = 46, + IORING_OP_SEND_ZC = 47, + IORING_OP_SENDMSG_ZC = 48, + IORING_OP_READ_MULTISHOT = 49, + IORING_OP_WAITID = 50, + IORING_OP_FUTEX_WAIT = 51, + IORING_OP_FUTEX_WAKE = 52, + IORING_OP_FUTEX_WAITV = 53, + IORING_OP_LAST = 54, +}; -struct trace_event_raw_nfs_inode_event { - struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - u64 version; - char __data[0]; +enum { + IOSQE_FIXED_FILE_BIT = 0, + IOSQE_IO_DRAIN_BIT = 1, + IOSQE_IO_LINK_BIT = 2, + IOSQE_IO_HARDLINK_BIT = 3, + IOSQE_ASYNC_BIT = 4, + IOSQE_BUFFER_SELECT_BIT = 5, + IOSQE_CQE_SKIP_SUCCESS_BIT = 6, }; -struct trace_event_raw_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]; +enum io_wq_cancel { + IO_WQ_CANCEL_OK = 0, + IO_WQ_CANCEL_RUNNING = 1, + IO_WQ_CANCEL_NOTFOUND = 2, }; -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]; +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, }; -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]; +enum { + IORING_RSRC_FILE = 0, + IORING_RSRC_BUFFER = 1, }; -struct trace_event_raw_nfs_inode_range_event { +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; - dev_t dev; - u32 fhandle; - u64 fileid; - u64 version; - loff_t range_start; - loff_t range_end; + int fd; + void *ctx; + u32 sq_entries; + u32 cq_entries; + u32 flags; char __data[0]; }; -struct trace_event_raw_nfs_readdir_event { +struct trace_event_raw_io_uring_register { struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - u64 version; - char verifier[8]; - u64 cookie; - unsigned long index; - unsigned int dtsize; + void *ctx; + unsigned int opcode; + unsigned int nr_files; + unsigned int nr_bufs; + long ret; char __data[0]; }; -struct trace_event_raw_nfs_lookup_event { +struct trace_event_raw_io_uring_file_get { struct trace_entry ent; - unsigned long flags; - dev_t dev; - u64 dir; - u32 __data_loc_name; + void *ctx; + void *req; + u64 user_data; + int fd; char __data[0]; }; -struct trace_event_raw_nfs_lookup_event_done { +struct trace_event_raw_io_uring_queue_async_work { struct trace_entry ent; - unsigned long error; - unsigned long flags; - dev_t dev; - u64 dir; - u32 __data_loc_name; + 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_nfs_atomic_open_enter { +struct trace_event_raw_io_uring_defer { struct trace_entry ent; - unsigned long flags; - unsigned long fmode; - dev_t dev; - u64 dir; - u32 __data_loc_name; + void *ctx; + void *req; + unsigned long long data; + u8 opcode; + u32 __data_loc_op_str; char __data[0]; }; -struct trace_event_raw_nfs_atomic_open_exit { +struct trace_event_raw_io_uring_link { struct trace_entry ent; - unsigned long error; - unsigned long flags; - unsigned long fmode; - dev_t dev; - u64 dir; - u32 __data_loc_name; + void *ctx; + void *req; + void *target_req; char __data[0]; }; -struct trace_event_raw_nfs_create_enter { +struct trace_event_raw_io_uring_cqring_wait { struct trace_entry ent; - unsigned long flags; - dev_t dev; - u64 dir; - u32 __data_loc_name; + void *ctx; + int min_events; char __data[0]; }; -struct trace_event_raw_nfs_create_exit { +struct trace_event_raw_io_uring_fail_link { struct trace_entry ent; - unsigned long error; - unsigned long flags; - dev_t dev; - u64 dir; - u32 __data_loc_name; + 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_nfs_directory_event { +struct trace_event_raw_io_uring_complete { struct trace_entry ent; - dev_t dev; - u64 dir; - u32 __data_loc_name; + void *ctx; + void *req; + u64 user_data; + int res; + unsigned int cflags; + u64 extra1; + u64 extra2; char __data[0]; }; -struct trace_event_raw_nfs_directory_event_done { +struct trace_event_raw_io_uring_submit_req { struct trace_entry ent; - unsigned long error; - dev_t dev; - u64 dir; - u32 __data_loc_name; + void *ctx; + void *req; + unsigned long long user_data; + u8 opcode; + u32 flags; + bool sq_thread; + u32 __data_loc_op_str; char __data[0]; }; -struct trace_event_raw_nfs_link_enter { +struct trace_event_raw_io_uring_poll_arm { struct trace_entry ent; - dev_t dev; - u64 fileid; - u64 dir; - u32 __data_loc_name; + 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_nfs_link_exit { +struct trace_event_raw_io_uring_task_add { struct trace_entry ent; - unsigned long error; - dev_t dev; - u64 fileid; - u64 dir; - u32 __data_loc_name; + 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_nfs_rename_event { +struct trace_event_raw_io_uring_req_failed { struct trace_entry ent; - dev_t dev; - u64 old_dir; - u64 new_dir; - u32 __data_loc_old_name; - u32 __data_loc_new_name; + 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_nfs_rename_event_done { +struct trace_event_raw_io_uring_cqe_overflow { 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; + void *ctx; + unsigned long long user_data; + s32 res; + u32 cflags; + void *ocqe; char __data[0]; }; -struct trace_event_raw_nfs_sillyrename_unlink { +struct trace_event_raw_io_uring_task_work_run { struct trace_entry ent; - dev_t dev; - unsigned long error; - u64 dir; - u32 __data_loc_name; + void *tctx; + unsigned int count; + unsigned int loops; char __data[0]; }; -struct trace_event_raw_nfs_folio_event { +struct trace_event_raw_io_uring_short_write { struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - u64 version; - loff_t offset; - u32 count; + void *ctx; + u64 fpos; + u64 wanted; + u64 got; char __data[0]; }; -struct trace_event_raw_nfs_folio_event_done { +struct trace_event_raw_io_uring_local_work_run { struct trace_entry ent; - dev_t dev; - u32 fhandle; - int ret; - u64 fileid; - u64 version; - loff_t offset; - u32 count; + void *ctx; + int count; + unsigned int loops; 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 io_defer_entry { + struct list_head list; + struct io_kiocb *req; + u32 seq; }; -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 io_tctx_node { + struct list_head ctx_node; + struct task_struct *task; + struct io_ring_ctx *ctx; }; -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 io_overflow_cqe { + struct list_head list; + struct io_uring_cqe cqe; }; -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]; -}; +typedef u32 compat_sigset_word; -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]; -}; +typedef struct { + compat_sigset_word sig[2]; +} compat_sigset_t; -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 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 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 io_tctx_exit { + struct callback_head task_work; + struct completion completion; + struct io_ring_ctx *ctx; }; -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 io_sqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 flags; + __u32 dropped; + __u32 array; + __u32 resv1; + __u64 user_addr; }; -struct 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 io_cqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 overflow; + __u32 cqes; + __u32 flags; + __u32 resv1; + __u64 user_addr; }; -struct 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 io_uring_params { + __u32 sq_entries; + __u32 cq_entries; + __u32 flags; + __u32 sq_thread_cpu; + __u32 sq_thread_idle; + __u32 features; + __u32 wq_fd; + __u32 resv[3]; + struct io_sqring_offsets sq_off; + struct io_cqring_offsets cq_off; }; -struct trace_event_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_data_offsets_io_uring_queue_async_work { + u32 op_str; }; -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_data_offsets_io_uring_defer { + u32 op_str; }; -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_data_offsets_io_uring_fail_link { + u32 op_str; }; -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_data_offsets_io_uring_submit_req { + u32 op_str; }; -struct trace_event_raw_nfs_mount_option { - struct trace_entry ent; - u32 __data_loc_option; - char __data[0]; +struct trace_event_data_offsets_io_uring_poll_arm { + u32 op_str; }; -struct trace_event_raw_nfs_mount_path { - struct trace_entry ent; - u32 __data_loc_path; - char __data[0]; +struct trace_event_data_offsets_io_uring_task_add { + u32 op_str; }; -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_io_uring_req_failed { + u32 op_str; }; -struct trace_event_data_offsets_nfs_lookup_event { - u32 name; +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 *); }; -struct trace_event_data_offsets_nfs_lookup_event_done { - u32 name; +struct io_issue_def { + unsigned int needs_file: 1; + unsigned int plug: 1; + unsigned int hash_reg_file: 1; + unsigned int unbound_nonreg_file: 1; + unsigned int pollin: 1; + unsigned int pollout: 1; + unsigned int poll_exclusive: 1; + unsigned int buffer_select: 1; + unsigned int not_supported: 1; + unsigned int audit_skip: 1; + unsigned int ioprio: 1; + unsigned int iopoll: 1; + unsigned int iopoll_queue: 1; + unsigned int manual_alloc: 1; + unsigned int vectored: 1; + int (*issue)(struct io_kiocb *, unsigned int); + int (*prep)(struct io_kiocb *, const struct io_uring_sqe *); }; -struct trace_event_data_offsets_nfs_atomic_open_enter { - u32 name; -}; +typedef bool work_cancel_fn(struct io_wq_work *, void *); -struct trace_event_data_offsets_nfs_atomic_open_exit { - u32 name; +struct io_uring_getevents_arg { + __u64 sigmask; + __u32 sigmask_sz; + __u32 pad; + __u64 ts; }; -struct trace_event_data_offsets_nfs_create_enter { - u32 name; +struct io_uring_file_index_range { + __u32 off; + __u32 len; + __u64 resv; }; -struct trace_event_data_offsets_nfs_create_exit { - u32 name; -}; +struct trace_event_data_offsets_io_uring_create {}; -struct trace_event_data_offsets_nfs_directory_event { - u32 name; -}; +struct trace_event_data_offsets_io_uring_register {}; -struct trace_event_data_offsets_nfs_directory_event_done { - u32 name; -}; +struct trace_event_data_offsets_io_uring_file_get {}; -struct trace_event_data_offsets_nfs_link_enter { - u32 name; -}; +struct trace_event_data_offsets_io_uring_link {}; -struct trace_event_data_offsets_nfs_link_exit { - u32 name; -}; +struct trace_event_data_offsets_io_uring_cqring_wait {}; -struct trace_event_data_offsets_nfs_rename_event { - u32 old_name; - u32 new_name; -}; +struct trace_event_data_offsets_io_uring_complete {}; -struct trace_event_data_offsets_nfs_rename_event_done { - u32 old_name; - u32 new_name; -}; +struct trace_event_data_offsets_io_uring_cqe_overflow {}; -struct trace_event_data_offsets_nfs_sillyrename_unlink { - u32 name; -}; +struct trace_event_data_offsets_io_uring_task_work_run {}; -struct trace_event_data_offsets_nfs_mount_assign { - u32 option; - u32 value; -}; +struct trace_event_data_offsets_io_uring_short_write {}; -struct trace_event_data_offsets_nfs_mount_option { - u32 option; -}; +struct trace_event_data_offsets_io_uring_local_work_run {}; -struct trace_event_data_offsets_nfs_mount_path { - u32 path; +struct io_task_cancel { + struct task_struct *task; + bool all; }; -struct trace_event_data_offsets_nfs_xdr_event { - u32 program; - u32 procedure; +struct io_uring_probe_op { + __u8 op; + __u8 resv; + __u16 flags; + __u32 resv2; }; -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 io_uring_probe { + __u8 last_op; + __u8 ops_len; + __u16 resv; + __u32 resv2[3]; + struct io_uring_probe_op ops[0]; +}; -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 io_uring_restriction { + __u16 opcode; + union { + __u8 register_op; + __u8 sqe_op; + __u8 sqe_flags; + }; + __u8 resv; + __u32 resv2[3]; +}; -struct trace_event_data_offsets_nfs_folio_event_done {}; +struct event_counter { + u32 count; + u32 flags; +}; -struct trace_event_data_offsets_nfs_aop_readahead {}; +struct acpi_data_attr; -struct trace_event_data_offsets_nfs_aop_readahead_done {}; +struct acpi_data_obj { + char *name; + int (*fn)(void *, struct acpi_data_attr *); +}; -struct trace_event_data_offsets_nfs_initiate_read {}; +struct acpi_data_attr { + struct bin_attribute attr; + u64 addr; +}; -struct trace_event_data_offsets_nfs_readpage_done {}; +struct acpi_table_attr { + struct bin_attribute attr; + char name[4]; + int instance; + char filename[8]; + struct list_head node; +}; -struct trace_event_data_offsets_nfs_readpage_short {}; +typedef u32 acpi_event_status; -struct trace_event_data_offsets_nfs_pgio_error {}; +struct acpi_table_bert { + struct acpi_table_header header; + u32 region_length; + u64 address; +}; -struct trace_event_data_offsets_nfs_initiate_write {}; +struct acpi_table_ccel { + struct acpi_table_header header; + u8 CCtype; + u8 Ccsub_type; + u16 reserved; + u64 log_area_minimum_length; + u64 log_area_start_address; +}; -struct trace_event_data_offsets_nfs_writeback_done {}; +struct jh71x0_clk_data { + const char *name; + unsigned long flags; + u32 max; + u8 parents[4]; +}; -struct trace_event_data_offsets_nfs_page_error_class {}; +struct clk_core; -struct trace_event_data_offsets_nfs_initiate_commit {}; +struct clk_init_data; -struct trace_event_data_offsets_nfs_commit_done {}; +struct clk_hw { + struct clk_core *core; + struct clk *clk; + const struct clk_init_data *init; +}; -struct trace_event_data_offsets_nfs_direct_req_class {}; +struct clk_ops; -struct trace_event_data_offsets_nfs_fh_to_dentry {}; +struct clk_parent_data; -enum { - Opt_err = 0, - Opt_fd = 1, - Opt_uid___2 = 2, - Opt_gid___2 = 3, - Opt_pgrp = 4, - Opt_minproto = 5, - Opt_maxproto = 6, - Opt_indirect = 7, - Opt_direct = 8, - Opt_offset = 9, - Opt_strictexpire = 10, - Opt_ignore = 11, +struct clk_init_data { + const char *name; + const struct clk_ops *ops; + const char * const *parent_names; + const struct clk_parent_data *parent_data; + const struct clk_hw **parent_hws; + u8 num_parents; + unsigned long flags; }; -struct ipc_params; +struct clk_rate_request; -struct kern_ipc_perm; +struct clk_duty; -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 clk_ops { + int (*prepare)(struct clk_hw *); + void (*unprepare)(struct clk_hw *); + int (*is_prepared)(struct clk_hw *); + void (*unprepare_unused)(struct clk_hw *); + int (*enable)(struct clk_hw *); + void (*disable)(struct clk_hw *); + int (*is_enabled)(struct clk_hw *); + void (*disable_unused)(struct clk_hw *); + int (*save_context)(struct clk_hw *); + void (*restore_context)(struct clk_hw *); + unsigned long (*recalc_rate)(struct clk_hw *, unsigned long); + long (*round_rate)(struct clk_hw *, unsigned long, unsigned long *); + int (*determine_rate)(struct clk_hw *, struct clk_rate_request *); + int (*set_parent)(struct clk_hw *, u8); + u8 (*get_parent)(struct clk_hw *); + int (*set_rate)(struct clk_hw *, unsigned long, unsigned long); + int (*set_rate_and_parent)(struct clk_hw *, unsigned long, unsigned long, u8); + unsigned long (*recalc_accuracy)(struct clk_hw *, unsigned long); + int (*get_phase)(struct clk_hw *); + int (*set_phase)(struct clk_hw *, int); + int (*get_duty_cycle)(struct clk_hw *, struct clk_duty *); + int (*set_duty_cycle)(struct clk_hw *, struct clk_duty *); + int (*init)(struct clk_hw *); + void (*terminate)(struct clk_hw *); + void (*debug_init)(struct clk_hw *, struct dentry *); }; -struct ipc_ids { - int in_use; - unsigned short seq; - struct rw_semaphore rwsem; - struct idr ipcs_idr; - int max_idx; - int last_idx; - int next_id; - struct rhashtable key_ht; +struct clk_rate_request { + struct clk_core *core; + unsigned long rate; + unsigned long min_rate; + unsigned long max_rate; + unsigned long best_parent_rate; + struct clk_hw *best_parent_hw; }; -struct ipc_namespace { - struct ipc_ids ids[3]; - int sem_ctls[4]; - int used_sems; - unsigned int msg_ctlmax; - unsigned int msg_ctlmnb; - unsigned int msg_ctlmni; - struct percpu_counter percpu_msg_bytes; - struct percpu_counter percpu_msg_hdrs; - size_t shm_ctlmax; - size_t shm_ctlall; - unsigned long shm_tot; - int shm_ctlmni; - int shm_rmid_forced; - struct notifier_block ipcns_nb; - struct vfsmount *mq_mnt; - unsigned int mq_queues_count; - unsigned int mq_queues_max; - unsigned int mq_msg_max; - unsigned int mq_msgsize_max; - unsigned int mq_msg_default; - unsigned int mq_msgsize_default; - struct ctl_table_set mq_set; - struct ctl_table_header *mq_sysctls; - struct ctl_table_set ipc_set; - struct ctl_table_header *ipc_sysctls; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct llist_node mnt_llist; - struct ns_common ns; +struct clk_duty { + unsigned int num; + unsigned int den; }; -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 clk_parent_data { + const struct clk_hw *hw; + const char *fw_name; + const char *name; + int index; }; -struct kern_ipc_perm { - spinlock_t lock; - bool deleted; - int id; - key_t key; - kuid_t uid; - kgid_t gid; - kuid_t cuid; - kgid_t cgid; - umode_t mode; - unsigned long seq; - void *security; - struct rhash_head khtnode; - struct callback_head rcu; - refcount_t refcount; - long: 64; - long: 64; - long: 64; +struct jh71x0_clk { + struct clk_hw hw; + unsigned int idx; + unsigned int max_div; }; -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 jh71x0_clk_priv { + spinlock_t rmw_lock; + struct device *dev; + void *base; + struct clk_hw *pll[3]; + struct jh71x0_clk reg[0]; }; -typedef unsigned int __kernel_uid_t; +enum { + VP_MSIX_CONFIG_VECTOR = 0, + VP_MSIX_VQ_VECTOR = 1, +}; -typedef unsigned int __kernel_gid_t; +struct virtio_device; -typedef unsigned int __kernel_mode_t; +struct virtqueue { + struct list_head list; + void (*callback)(struct virtqueue *); + const char *name; + struct virtio_device *vdev; + unsigned int index; + unsigned int num_free; + unsigned int num_max; + bool reset; + void *priv; +}; -struct 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 virtio_device_id { + __u32 device; + __u32 vendor; }; -typedef __kernel_long_t __kernel_old_time_t; +struct vringh_config_ops; -typedef int __kernel_ipc_pid_t; +struct virtio_config_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 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; }; -struct shm_file_data { - int id; - struct ipc_namespace *ns; - struct file *file; - const struct vm_operations_struct *vm_ops; -}; +typedef void vq_callback_t(struct virtqueue *); -struct simple_xattrs { - struct rb_root rb_root; - rwlock_t lock; -}; +struct irq_affinity; -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 virtio_shm_region; -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 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 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 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 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 virtio_shm_region { + u64 addr; + u64 len; }; -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 virtio_pci_legacy_device { + struct pci_dev *pci_dev; + u8 *isr; + void *ioaddr; + struct virtio_device_id id; }; -struct shminfo { - int shmmax; - int shmmin; - int shmmni; - int shmseg; - int shmall; -}; +struct virtio_pci_common_cfg; -typedef s32 compat_key_t; +struct virtio_pci_modern_device { + struct pci_dev *pci_dev; + struct virtio_pci_common_cfg *common; + void *device; + void *notify_base; + resource_size_t notify_pa; + u8 *isr; + size_t notify_len; + size_t device_len; + size_t common_len; + int notify_map_cap; + u32 notify_offset_multiplier; + int modern_bars; + struct virtio_device_id id; + int (*device_id_check)(struct pci_dev *); + u64 dma_mask; +}; -typedef u32 __compat_gid32_t; +struct virtio_pci_vq_info; -typedef u32 compat_mode_t; +struct virtio_pci_device { + struct virtio_device vdev; + struct pci_dev *pci_dev; + union { + struct virtio_pci_legacy_device ldev; + struct virtio_pci_modern_device mdev; + }; + bool is_legacy; + u8 *isr; + spinlock_t lock; + struct list_head virtqueues; + struct virtio_pci_vq_info **vqs; + 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); +}; -typedef u16 compat_ushort_t; +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 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[0]; - compat_ushort_t seq; - compat_ushort_t __pad2; - compat_ulong_t unused1; - compat_ulong_t unused2; +struct virtio_pci_vq_info { + struct virtqueue *vq; + struct list_head node; + unsigned int msix_vector; }; -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 ldsem_waiter { + struct list_head list; + struct task_struct *task; }; -typedef u32 __compat_uid_t; +struct mctrl_gpios; -typedef u32 __compat_gid_t; +struct uart_8250_dma; -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; -}; +struct uart_8250_ops; -typedef s32 compat_ipc_pid_t; +struct uart_8250_em485; -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 uart_8250_port { + struct uart_port port; + struct timer_list timer; + struct list_head list; + u32 capabilities; + u16 bugs; + unsigned int tx_loadsz; + unsigned char acr; + unsigned char fcr; + unsigned char ier; + unsigned char lcr; + unsigned char mcr; + unsigned char cur_iotype; + unsigned int rpm_tx_active; + unsigned char canary; + unsigned char probe; + struct mctrl_gpios *gpios; + u16 lsr_saved_flags; + u16 lsr_save_mask; + unsigned char msr_saved_flags; + struct uart_8250_dma *dma; + const struct uart_8250_ops *ops; + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + struct uart_8250_em485 *em485; + void (*rs485_start_tx)(struct uart_8250_port *); + void (*rs485_stop_tx)(struct uart_8250_port *); + struct delayed_work overrun_backoff; + u32 overrun_backoff_time_ms; }; -struct 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 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 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 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 hash_alg_common { - unsigned int digestsize; - unsigned int statesize; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct crypto_alg base; +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 shash_alg { - int (*init)(struct shash_desc *); - int (*update)(struct shash_desc *, const u8 *, unsigned int); - int (*final)(struct shash_desc *, u8 *); - int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); - int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); - int (*export)(struct shash_desc *, void *); - int (*import)(struct shash_desc *, const void *); - int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); - int (*init_tfm)(struct crypto_shash *); - void (*exit_tfm)(struct crypto_shash *); - int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *); - unsigned int descsize; - long: 64; - long: 64; - long: 64; - long: 64; - union { - struct { - unsigned int digestsize; - unsigned int statesize; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct crypto_alg base; - }; - struct hash_alg_common halg; - }; +struct regcache_rbtree_node { + void *block; + unsigned long *cache_present; + unsigned int base_reg; + unsigned int blklen; + struct rb_node node; }; -enum { - ICQ_EXITED = 4, - ICQ_DESTROYED = 8, +struct regcache_rbtree_ctx { + struct rb_root root; + struct regcache_rbtree_node *cached_rbnode; }; -enum { - IOPRIO_CLASS_NONE = 0, - IOPRIO_CLASS_RT = 1, - IOPRIO_CLASS_BE = 2, - IOPRIO_CLASS_IDLE = 3, - IOPRIO_CLASS_INVALID = 7, +struct hd_geometry { + unsigned char heads; + unsigned char sectors; + unsigned short cylinders; + unsigned long start; +}; + +enum btt_init_state { + INIT_UNCHECKED = 0, + INIT_NOTFOUND = 1, + INIT_READY = 2, }; enum { - IOPRIO_HINT_NONE = 0, - IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1, - IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2, - IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3, - IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4, - IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5, - IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6, - IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7, + ND_MAX_LANES = 256, + INT_LBASIZE_ALIGNMENT = 64, + NVDIMM_IO_ATOMIC = 1, }; -typedef struct {} local_lock_t; +enum log_ent_request { + LOG_NEW_ENT = 0, + LOG_OLD_ENT = 1, +}; -struct bfq_sched_data; +struct free_entry; -struct bfq_queue; +struct aligned_lock; -struct bfq_entity { - struct rb_node rb_node; - bool on_st_or_in_serv; - u64 start; - u64 finish; - struct rb_root *tree; - u64 min_start; - int service; - int budget; - int allocated; - int dev_weight; - int weight; - int new_weight; - int orig_weight; - struct bfq_entity *parent; - struct bfq_sched_data *my_sched_data; - struct bfq_sched_data *sched_data; - int prio_changed; - struct bfq_queue *last_bfqq_created; +struct arena_info { + u64 size; + u64 external_lba_start; + u32 internal_nlba; + u32 internal_lbasize; + u32 external_nlba; + u32 external_lbasize; + u32 nfree; + u16 version_major; + u16 version_minor; + u32 sector_size; + u64 nextoff; + u64 infooff; + u64 dataoff; + u64 mapoff; + u64 logoff; + u64 info2off; + struct free_entry *freelist; + u32 *rtt; + struct aligned_lock *map_locks; + struct nd_btt *nd_btt; + struct list_head list; + struct dentry *debugfs_dir; + u32 flags; + struct mutex err_lock; + int log_index[2]; }; -struct bfq_ttime { - u64 last_end_request; - u64 ttime_total; - unsigned long ttime_samples; - u64 ttime_mean; +struct free_entry { + u32 block; + u8 sub; + u8 seq; + u8 has_err; }; -struct bfq_data; - -struct bfq_weight_counter; - -struct bfq_io_cq; +struct aligned_lock { + union { + spinlock_t lock; + u8 cacheline_padding[64]; + }; +}; -struct bfq_queue { - int ref; - int stable_ref; - struct bfq_data *bfqd; - unsigned short ioprio; - unsigned short ioprio_class; - unsigned short new_ioprio; - unsigned short new_ioprio_class; - u64 last_serv_time_ns; - unsigned int inject_limit; - unsigned long decrease_time_jif; - struct bfq_queue *new_bfqq; - struct rb_node pos_node; - struct rb_root *pos_root; - struct rb_root sort_list; - struct request *next_rq; - int queued[2]; - int meta_pending; - struct list_head fifo; - struct bfq_entity entity; - struct bfq_weight_counter *weight_counter; - int max_budget; - unsigned long budget_timeout; - int dispatched; - unsigned long flags; - struct list_head bfqq_list; - struct bfq_ttime ttime; - u64 io_start_time; - u64 tot_idle_time; - u32 seek_history; - struct hlist_node burst_list_node; - sector_t last_request_pos; - unsigned int requests_within_timer; - pid_t pid; - struct bfq_io_cq *bic; - unsigned long wr_cur_max_time; - unsigned long soft_rt_next_start; - unsigned long last_wr_start_finish; - unsigned int wr_coeff; - unsigned long last_idle_bklogged; - unsigned long service_from_backlogged; - unsigned long service_from_wr; - unsigned long wr_start_at_switch_to_srt; - unsigned long split_time; - unsigned long first_IO_time; - unsigned long creation_time; - struct bfq_queue *waker_bfqq; - struct bfq_queue *tentative_waker_bfqq; - unsigned int num_waker_detections; - u64 waker_detection_started; - struct hlist_node woken_list_node; - struct hlist_head woken_list; - unsigned int actuator_idx; +struct btt { + struct gendisk *btt_disk; + struct list_head arena_list; + struct dentry *debugfs_dir; + struct nd_btt *nd_btt; + u64 nlba; + unsigned long long rawsize; + u32 lbasize; + u32 sector_size; + struct nd_region *nd_region; + struct mutex init_lock; + int init_state; + int num_arenas; + struct badblocks *phys_bb; }; -struct bfq_group; +struct nd_gen_sb { + char reserved[4088]; + __le64 checksum; +}; -struct bfq_data { - struct request_queue *queue; - struct list_head dispatch; - struct bfq_group *root_group; - struct rb_root_cached queue_weights_tree; - unsigned int busy_queues[3]; - int wr_busy_queues; - int queued; - int tot_rq_in_driver; - int rq_in_driver[8]; - bool nonrot_with_queueing; - int max_rq_in_driver; - int hw_tag_samples; - int hw_tag; - int budgets_assigned; - struct hrtimer idle_slice_timer; - struct bfq_queue *in_service_queue; - sector_t last_position; - sector_t in_serv_last_pos; - u64 last_completion; - struct bfq_queue *last_completed_rq_bfqq; - struct bfq_queue *last_bfqq_created; - u64 last_empty_occupied_ns; - bool wait_dispatch; - struct request *waited_rq; - bool rqs_injected; - u64 first_dispatch; - u64 last_dispatch; - ktime_t last_budget_start; - ktime_t last_idling_start; - unsigned long last_idling_start_jiffies; - int peak_rate_samples; - u32 sequential_samples; - u64 tot_sectors_dispatched; - u32 last_rq_max_size; - u64 delta_from_first; - u32 peak_rate; - int bfq_max_budget; - struct list_head active_list[8]; - struct list_head idle_list; - u64 bfq_fifo_expire[2]; - unsigned int bfq_back_penalty; - unsigned int bfq_back_max; - u32 bfq_slice_idle; - int bfq_user_max_budget; - unsigned int bfq_timeout; - bool strict_guarantees; - unsigned long last_ins_in_burst; - unsigned long bfq_burst_interval; - int burst_size; - struct bfq_entity *burst_parent_entity; - unsigned long bfq_large_burst_thresh; - bool large_burst; - struct hlist_head burst_list; - bool low_latency; - unsigned int bfq_wr_coeff; - unsigned int bfq_wr_rt_max_time; - unsigned int bfq_wr_min_idle_time; - unsigned long bfq_wr_min_inter_arr_async; - unsigned int bfq_wr_max_softrt_rate; - u64 rate_dur_prod; - struct bfq_queue oom_bfqq; - spinlock_t lock; - struct bfq_io_cq *bio_bic; - struct bfq_queue *bio_bfqq; - unsigned int word_depths[4]; - unsigned int full_depth_shift; - unsigned int num_actuators; - sector_t sector[8]; - sector_t nr_sectors[8]; - struct blk_independent_access_range ia_ranges[8]; - unsigned int actuator_load_threshold; +struct btt_sb { + u8 signature[16]; + u8 uuid[16]; + u8 parent_uuid[16]; + __le32 flags; + __le16 version_major; + __le16 version_minor; + __le32 external_lbasize; + __le32 external_nlba; + __le32 internal_lbasize; + __le32 internal_nlba; + __le32 nfree; + __le32 infosize; + __le64 nextoff; + __le64 dataoff; + __le64 mapoff; + __le64 logoff; + __le64 info2off; + u8 padding[3968]; + __le64 checksum; }; -struct rchan_callbacks; +struct log_entry { + __le32 lba; + __le32 old_map; + __le32 new_map; + __le32 seq; +}; -struct rchan_buf; +struct log_group { + struct log_entry ent[4]; +}; -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 bio_integrity_payload { + struct bio *bip_bio; + struct bvec_iter bip_iter; + unsigned short bip_vcnt; + unsigned short bip_max_vcnt; + unsigned short bip_flags; + struct bvec_iter bio_iter; + struct work_struct bip_work; + struct bio_vec *bip_vec; + struct bio_vec bip_inline_vecs[0]; }; -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 xdp_mem_info { + u32 type; + u32 id; }; -struct rchan_buf { - void *start; +struct xdp_frame { 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; + u16 len; + u16 headroom; + u32 metasize; + struct xdp_mem_info mem; + struct net_device *dev_rx; + u32 frame_sz; + u32 flags; }; -struct bfq_service_tree { - struct rb_root active; - struct rb_root idle; - struct bfq_entity *first_idle; - struct bfq_entity *last_idle; - u64 vtime; - unsigned long wsum; -}; +struct xdp_rxq_info; -struct bfq_sched_data { - struct bfq_entity *in_service_entity; - struct bfq_entity *next_in_service; - struct bfq_service_tree service_tree[3]; - unsigned long bfq_class_idle_last_service; +struct 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 bfq_group { - struct bfq_entity entity; - struct bfq_sched_data sched_data; - struct bfq_queue *async_bfqq[128]; - struct bfq_queue *async_idle_bfqq[8]; - struct rb_root rq_pos_tree; +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 bfq_iocq_bfqq_data { - bool saved_has_short_ttime; - bool saved_IO_bound; - u64 saved_io_start_time; - u64 saved_tot_idle_time; - bool saved_in_large_burst; - bool was_in_burst_list; - unsigned int saved_weight; - unsigned long saved_wr_coeff; - unsigned long saved_last_wr_start_finish; - unsigned long saved_service_from_wr; - unsigned long saved_wr_start_at_switch_to_srt; - unsigned int saved_wr_cur_max_time; - struct bfq_ttime saved_ttime; - u64 saved_last_serv_time_ns; - unsigned int saved_inject_limit; - unsigned long saved_decrease_time_jif; - struct bfq_queue *stable_merge_bfqq; - bool stably_merged; +struct xdp_txq_info { + struct net_device *dev; }; -struct bfq_io_cq { - struct io_cq icq; - struct bfq_queue *bfqq[16]; - int ioprio; - struct bfq_iocq_bfqq_data bfqq_data[8]; - unsigned int requests; +struct xdp_md { + __u32 data; + __u32 data_end; + __u32 data_meta; + __u32 ingress_ifindex; + __u32 rx_queue_index; + __u32 egress_ifindex; }; -struct bfq_weight_counter { - unsigned int weight; - unsigned int num_active; - struct rb_node weights_node; +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; }; -enum devm_ioremap_type { - DEVM_IOREMAP = 0, - DEVM_IOREMAP_UC = 1, - DEVM_IOREMAP_WC = 2, - DEVM_IOREMAP_NP = 3, +struct rps_map { + unsigned int len; + struct callback_head rcu; + u16 cpus[0]; }; -struct pcim_iomap_devres { - void *table[6]; +struct rps_dev_flow { + u16 cpu; + u16 filter; + unsigned int last_qtail; }; -struct arch_io_reserve_memtype_wc_devres { - resource_size_t start; - resource_size_t size; +struct rps_dev_flow_table { + unsigned int mask; + struct callback_head rcu; + struct rps_dev_flow flows[0]; }; -struct pinctrl_ops; +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 pinmux_ops; +struct virtnet_stat_desc { + char desc[32]; + size_t offset; +}; -struct pinconf_ops; +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 pinconf_generic_params; +enum xps_map_type { + XPS_CPUS = 0, + XPS_RXQS = 1, + XPS_MAPS_MAX = 2, +}; -struct pin_config_item; +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, +}; -struct pinctrl_desc { - const char *name; - const struct pinctrl_pin_desc *pins; - unsigned int npins; - const struct pinctrl_ops *pctlops; - const struct pinmux_ops *pmxops; - const struct pinconf_ops *confops; - struct module *owner; - unsigned int num_custom_params; - const struct pinconf_generic_params *custom_params; - const struct pin_config_item *custom_conf_items; - bool link_consumers; +enum netdev_xdp_act { + NETDEV_XDP_ACT_BASIC = 1, + NETDEV_XDP_ACT_REDIRECT = 2, + NETDEV_XDP_ACT_NDO_XMIT = 4, + NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, + NETDEV_XDP_ACT_HW_OFFLOAD = 16, + NETDEV_XDP_ACT_RX_SG = 32, + NETDEV_XDP_ACT_NDO_XMIT_SG = 64, + NETDEV_XDP_ACT_MASK = 127, }; -struct pinctrl_dev; +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, +}; -struct pinctrl_map; +enum xdp_mem_type { + MEM_TYPE_PAGE_SHARED = 0, + MEM_TYPE_PAGE_ORDER0 = 1, + MEM_TYPE_PAGE_POOL = 2, + MEM_TYPE_XSK_BUFF_POOL = 3, + MEM_TYPE_MAX = 4, +}; -struct pinctrl_ops { - int (*get_groups_count)(struct pinctrl_dev *); - const char * (*get_group_name)(struct pinctrl_dev *, unsigned int); - int (*get_group_pins)(struct pinctrl_dev *, unsigned int, const unsigned int **, unsigned int *); - void (*pin_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); - int (*dt_node_to_map)(struct pinctrl_dev *, struct device_node *, struct pinctrl_map **, unsigned int *); - void (*dt_free_map)(struct pinctrl_dev *, struct pinctrl_map *, unsigned int); +enum xdp_buff_flags { + XDP_FLAGS_HAS_FRAGS = 1, + XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, }; -struct pinctrl; +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, +}; -struct pinctrl_state; +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, +}; -struct pinctrl_dev { - struct list_head node; - struct pinctrl_desc *desc; - struct xarray pin_desc_tree; - struct xarray pin_group_tree; - unsigned int num_groups; - struct xarray pin_function_tree; - unsigned int num_functions; - struct list_head gpio_ranges; - struct device *dev; - struct module *owner; - void *driver_data; - struct pinctrl *p; - struct pinctrl_state *hog_default; - struct pinctrl_state *hog_sleep; - struct mutex mutex; - struct dentry *device_root; +enum netdev_queue_state_t { + __QUEUE_STATE_DRV_XOFF = 0, + __QUEUE_STATE_STACK_XOFF = 1, + __QUEUE_STATE_FROZEN = 2, }; -struct pinctrl { - struct list_head node; - struct device *dev; - struct list_head states; - struct pinctrl_state *state; - struct list_head dt_maps; - struct kref users; +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, }; -struct pinctrl_state { - struct list_head node; - const char *name; - struct list_head settings; +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 pinctrl_map_mux { - const char *group; - const char *function; +enum gro_result { + GRO_MERGED = 0, + GRO_MERGED_FREE = 1, + GRO_HELD = 2, + GRO_NORMAL = 3, + GRO_CONSUMED = 4, }; -struct pinctrl_map_configs { - const char *group_or_pin; - unsigned long *configs; - unsigned int num_configs; +enum xdp_action { + XDP_ABORTED = 0, + XDP_DROP = 1, + XDP_PASS = 2, + XDP_TX = 3, + XDP_REDIRECT = 4, }; -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, +enum { + SKBFL_ZEROCOPY_ENABLE = 1, + SKBFL_SHARED_FRAG = 2, + SKBFL_PURE_ZEROCOPY = 4, + SKBFL_DONT_ORPHAN = 8, + SKBFL_MANAGED_FRAG_REFS = 16, }; -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 pkt_hash_types { + PKT_HASH_TYPE_NONE = 0, + PKT_HASH_TYPE_L2 = 1, + PKT_HASH_TYPE_L3 = 2, + PKT_HASH_TYPE_L4 = 3, }; -struct pinctrl_gpio_range; +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, +}; -struct pinmux_ops { - int (*request)(struct pinctrl_dev *, unsigned int); - int (*free)(struct pinctrl_dev *, unsigned int); - int (*get_functions_count)(struct pinctrl_dev *); - const char * (*get_function_name)(struct pinctrl_dev *, unsigned int); - int (*get_function_groups)(struct pinctrl_dev *, unsigned int, const char * const **, unsigned int *); - int (*set_mux)(struct pinctrl_dev *, unsigned int, unsigned int); - int (*gpio_request_enable)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); - void (*gpio_disable_free)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int); - int (*gpio_set_direction)(struct pinctrl_dev *, struct pinctrl_gpio_range *, unsigned int, bool); - bool strict; +struct virtnet_interrupt_coalesce { + u32 max_packets; + u32 max_usecs; }; -struct gpio_chip; +struct send_queue; -struct pinctrl_gpio_range { - struct list_head node; - const char *name; - unsigned int id; - unsigned int base; - unsigned int pin_base; - unsigned int npins; - const unsigned int *pins; - struct gpio_chip *gc; +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; + struct virtnet_interrupt_coalesce intr_coal_tx; + struct virtnet_interrupt_coalesce intr_coal_rx; + unsigned long guest_offloads; + unsigned long guest_offloads_capable; + struct failover *failover; }; -union gpio_irq_fwspec; +struct virtnet_sq_stats { + struct u64_stats_sync syncp; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t xdp_tx; + u64_stats_t xdp_tx_drops; + u64_stats_t kicks; + u64_stats_t tx_timeouts; +}; -struct gpio_irq_chip { - struct irq_chip *chip; - struct irq_domain *domain; - struct fwnode_handle *fwnode; - struct irq_domain *parent_domain; - int (*child_to_parent_hwirq)(struct gpio_chip *, unsigned int, unsigned int, unsigned int *, unsigned int *); - int (*populate_parent_alloc_arg)(struct gpio_chip *, union gpio_irq_fwspec *, unsigned int, unsigned int); - unsigned int (*child_offset_to_irq)(struct gpio_chip *, unsigned int); - struct irq_domain_ops child_irq_domain_ops; - irq_flow_handler_t handler; - unsigned int default_type; - struct lock_class_key *lock_key; - struct lock_class_key *request_key; - irq_flow_handler_t parent_handler; - union { - void *parent_handler_data; - void **parent_handler_data_array; - }; - unsigned int num_parents; - unsigned int *parents; - unsigned int *map; - bool threaded; - bool per_parent_data; - bool initialized; - bool domain_is_allocated_externally; - int (*init_hw)(struct gpio_chip *); - void (*init_valid_mask)(struct gpio_chip *, unsigned long *, unsigned int); - unsigned long *valid_mask; - unsigned int first; - void (*irq_enable)(struct irq_data *); - void (*irq_disable)(struct irq_data *); - void (*irq_unmask)(struct irq_data *); - void (*irq_mask)(struct irq_data *); +struct send_queue { + struct virtqueue *vq; + struct scatterlist sg[19]; + char name[16]; + struct virtnet_sq_stats stats; + struct virtnet_interrupt_coalesce intr_coal; + struct napi_struct napi; + bool reset; }; -struct gpio_device; +struct virtnet_rq_stats { + struct u64_stats_sync syncp; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t drops; + u64_stats_t xdp_packets; + u64_stats_t xdp_tx; + u64_stats_t xdp_redirects; + u64_stats_t xdp_drops; + u64_stats_t kicks; +}; -struct gpio_chip { - const char *label; - struct gpio_device *gpiodev; - struct device *parent; - struct fwnode_handle *fwnode; - struct module *owner; - int (*request)(struct gpio_chip *, unsigned int); - void (*free)(struct gpio_chip *, unsigned int); - int (*get_direction)(struct gpio_chip *, unsigned int); - int (*direction_input)(struct gpio_chip *, unsigned int); - int (*direction_output)(struct gpio_chip *, unsigned int, int); - int (*get)(struct gpio_chip *, unsigned int); - int (*get_multiple)(struct gpio_chip *, unsigned long *, unsigned long *); - void (*set)(struct gpio_chip *, unsigned int, int); - void (*set_multiple)(struct gpio_chip *, unsigned long *, unsigned long *); - int (*set_config)(struct gpio_chip *, unsigned int, unsigned long); - int (*to_irq)(struct gpio_chip *, unsigned int); - void (*dbg_show)(struct seq_file *, struct gpio_chip *); - int (*init_valid_mask)(struct gpio_chip *, unsigned long *, unsigned int); - int (*add_pin_ranges)(struct gpio_chip *); - int (*en_hw_timestamp)(struct gpio_chip *, u32, unsigned long); - int (*dis_hw_timestamp)(struct gpio_chip *, u32, unsigned long); - int base; - u16 ngpio; - u16 offset; - const char * const *names; - bool can_sleep; - unsigned long (*read_reg)(void *); - void (*write_reg)(void *, unsigned long); - bool be_bits; - void *reg_dat; - void *reg_set; - void *reg_clr; - void *reg_dir_out; - void *reg_dir_in; - bool bgpio_dir_unreadable; - int bgpio_bits; - raw_spinlock_t bgpio_lock; - unsigned long bgpio_data; - unsigned long bgpio_dir; - struct gpio_irq_chip irq; - unsigned long *valid_mask; - unsigned int of_gpio_n_cells; - int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *); +struct ewma_pkt_len { + unsigned long internal; }; -struct msi_alloc_info { - struct msi_desc *desc; - irq_hw_number_t hwirq; - unsigned long flags; - union { - unsigned long ul; - void *ptr; - } scratchpad[2]; +struct virtnet_rq_dma; + +struct receive_queue { + struct virtqueue *vq; + struct napi_struct napi; + struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; + struct virtnet_rq_stats stats; + struct virtnet_interrupt_coalesce intr_coal; + struct page *pages; + struct ewma_pkt_len mrg_avg_pkt_len; + struct page_frag alloc_frag; + struct scatterlist sg[19]; + unsigned int min_buf_len; + char name[16]; + long: 64; + long: 64; + long: 64; + long: 64; + struct xdp_rxq_info xdp_rxq; + struct virtnet_rq_dma *last_dma; + bool do_dma; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -typedef struct msi_alloc_info msi_alloc_info_t; +struct virtnet_rq_dma { + dma_addr_t addr; + u32 ref; + u16 len; + u16 need_sync; +}; -union gpio_irq_fwspec { - struct irq_fwspec fwspec; - msi_alloc_info_t msiinfo; +struct virtio_net_ctrl_hdr { + __u8 class; + __u8 cmd; }; -struct pinconf_ops { - bool is_generic; - int (*pin_config_get)(struct pinctrl_dev *, unsigned int, unsigned long *); - int (*pin_config_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); - int (*pin_config_group_get)(struct pinctrl_dev *, unsigned int, unsigned long *); - int (*pin_config_group_set)(struct pinctrl_dev *, unsigned int, unsigned long *, unsigned int); - void (*pin_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); - void (*pin_config_group_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned int); - void (*pin_config_config_dbg_show)(struct pinctrl_dev *, struct seq_file *, unsigned long); +typedef __u8 virtio_net_ctrl_ack; + +typedef __u16 __virtio16; + +struct virtio_net_ctrl_mq { + __virtio16 virtqueue_pairs; }; -enum pin_config_param { - PIN_CONFIG_BIAS_BUS_HOLD = 0, - PIN_CONFIG_BIAS_DISABLE = 1, - PIN_CONFIG_BIAS_HIGH_IMPEDANCE = 2, - PIN_CONFIG_BIAS_PULL_DOWN = 3, - PIN_CONFIG_BIAS_PULL_PIN_DEFAULT = 4, - PIN_CONFIG_BIAS_PULL_UP = 5, - PIN_CONFIG_DRIVE_OPEN_DRAIN = 6, - PIN_CONFIG_DRIVE_OPEN_SOURCE = 7, - PIN_CONFIG_DRIVE_PUSH_PULL = 8, - PIN_CONFIG_DRIVE_STRENGTH = 9, - PIN_CONFIG_DRIVE_STRENGTH_UA = 10, - PIN_CONFIG_INPUT_DEBOUNCE = 11, - PIN_CONFIG_INPUT_ENABLE = 12, - PIN_CONFIG_INPUT_SCHMITT = 13, - PIN_CONFIG_INPUT_SCHMITT_ENABLE = 14, - PIN_CONFIG_MODE_LOW_POWER = 15, - PIN_CONFIG_MODE_PWM = 16, - PIN_CONFIG_OUTPUT = 17, - PIN_CONFIG_OUTPUT_ENABLE = 18, - PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS = 19, - PIN_CONFIG_PERSIST_STATE = 20, - PIN_CONFIG_POWER_SOURCE = 21, - PIN_CONFIG_SKEW_DELAY = 22, - PIN_CONFIG_SLEEP_HARDWARE_STATE = 23, - PIN_CONFIG_SLEW_RATE = 24, - PIN_CONFIG_END = 127, - PIN_CONFIG_MAX = 255, +typedef __u64 __virtio64; + +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 pinconf_generic_params { - const char * const property; - enum pin_config_param param; - u32 default_value; +struct virtio_net_ctrl_coal_tx { + __le32 tx_max_packets; + __le32 tx_usecs; }; -struct pin_config_item { - const enum pin_config_param param; - const char * const display; - const char * const format; - bool has_arg; +struct virtio_net_ctrl_coal_rx { + __le32 rx_max_packets; + __le32 rx_usecs; }; -struct starfive_pinctrl { - struct gpio_chip gc; - struct pinctrl_gpio_range gpios; - raw_spinlock_t lock; - void *base; - void *padctl; - struct pinctrl_dev *pctl; - struct mutex mutex; +struct virtio_net_ctrl_coal { + __le32 max_packets; + __le32 max_usecs; }; -struct group_desc { - const char *name; - int *pins; - int num_pins; - void *data; +struct virtio_net_ctrl_coal_vq { + __le16 vqn; + __le16 reserved; + struct virtio_net_ctrl_coal coal; +}; + +struct control_buf { + struct virtio_net_ctrl_hdr hdr; + virtio_net_ctrl_ack status; + struct virtio_net_ctrl_mq mq; + u8 promisc; + u8 allmulti; + __virtio16 vid; + __virtio64 offloads; + struct virtio_net_ctrl_rss rss; + struct virtio_net_ctrl_coal_tx coal_tx; + struct virtio_net_ctrl_coal_rx coal_rx; + struct virtio_net_ctrl_coal_vq coal_vq; }; -struct pcie_device; +struct failover_ops; -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 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 pcie_device { - int irq; - struct pci_dev *port; - u32 service; - void *priv_data; - struct device device; +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 pcie_pme_service_data { - spinlock_t lock; - struct pcie_device *srv; - struct work_struct work; - bool noirq; +struct virtio_net_hdr { + __u8 flags; + __u8 gso_type; + __virtio16 hdr_len; + __virtio16 gso_size; + __virtio16 csum_start; + __virtio16 csum_offset; }; -struct fb_cmap { - __u32 start; - __u32 len; - __u16 *red; - __u16 *green; - __u16 *blue; - __u16 *transp; +struct virtio_net_hdr_mrg_rxbuf { + struct virtio_net_hdr hdr; + __virtio16 num_buffers; }; -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 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 fb_bitfield { - __u32 offset; - __u32 length; - __u32 msb_right; +struct virtio_net_hdr_v1_hash { + struct virtio_net_hdr_v1 hdr; + __le32 hash_value; + __le16 hash_report; + __le16 padding; }; -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 virtio_net_common_hdr { + union { + struct virtio_net_hdr hdr; + struct virtio_net_hdr_mrg_rxbuf mrg_hdr; + struct virtio_net_hdr_v1_hash hash_v1_hdr; + }; }; -struct 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 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 fb_chroma { - __u32 redx; - __u32 greenx; - __u32 bluex; - __u32 whitex; - __u32 redy; - __u32 greeny; - __u32 bluey; - __u32 whitey; +typedef __u32 __virtio32; + +struct nf_conntrack { + refcount_t use; }; -struct fb_videomode; +struct mem_section_usage; -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 mem_section { + unsigned long section_mem_map; + struct mem_section_usage *usage; }; -struct fb_info; +struct mem_section_usage { + unsigned long subsection_map[1]; + unsigned long pageblock_flags[0]; +}; -struct fb_pixmap { - u8 *addr; - u32 size; - u32 offset; - u32 buf_align; - u32 scan_align; - u32 access_align; +struct flow_dissector_key_control { + u16 thoff; + u16 addr_type; 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_deferred_io_pageref; +struct flow_dissector_key_basic { + __be16 n_proto; + u8 ip_proto; + u8 padding; +}; -struct fb_deferred_io; +struct flow_keys_basic { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; +}; -struct fb_ops; +typedef enum gro_result gro_result_t; -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; - struct delayed_work deferred_work; - unsigned long npagerefs; - struct fb_deferred_io_pageref *pagerefs; - struct fb_deferred_io *fbdefio; - 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; +typedef unsigned int (*bpf_dispatcher_fn)(const void *, const struct bpf_insn *, unsigned int (*)(const void *, const struct bpf_insn *)); + +typedef unsigned int (*bpf_func_t)(const void *, const struct bpf_insn *); + +struct virtio_net_ctrl_mac { + __virtio32 entries; + __u8 macs[0]; }; -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 ff_envelope { + __u16 attack_length; + __u16 attack_level; + __u16 fade_length; + __u16 fade_level; }; -struct fb_deferred_io_pageref { - struct page *page; - unsigned long offset; - struct list_head list; +struct ff_constant_effect { + __s16 level; + struct ff_envelope envelope; }; -struct fb_deferred_io { - unsigned long delay; - bool sort_pagereflist; - int open_count; - struct mutex lock; - struct list_head pagereflist; - void (*deferred_io)(struct fb_info *, struct list_head *); +struct ff_ramp_effect { + __s16 start_level; + __s16 end_level; + struct ff_envelope envelope; }; -struct fb_fillrect; +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 fb_copyarea; +struct ff_condition_effect { + __u16 right_saturation; + __u16 left_saturation; + __s16 right_coeff; + __s16 left_coeff; + __u16 deadband; + __s16 center; +}; -struct fb_cursor; +struct ff_rumble_effect { + __u16 strong_magnitude; + __u16 weak_magnitude; +}; -struct fb_blit_caps; +struct ff_trigger { + __u16 button; + __u16 interval; +}; -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 ff_replay { + __u16 length; + __u16 delay; }; -struct fb_fillrect { - __u32 dx; - __u32 dy; - __u32 width; - __u32 height; - __u32 color; - __u32 rop; +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 fb_copyarea { - __u32 dx; - __u32 dy; - __u32 width; - __u32 height; - __u32 sx; - __u32 sy; +struct input_event_compat { + compat_ulong_t sec; + compat_ulong_t usec; + __u16 type; + __u16 code; + __s32 value; }; -struct fbcurpos { - __u16 x; - __u16 y; +struct input_event { + __kernel_ulong_t __sec; + __kernel_ulong_t __usec; + __u16 type; + __u16 code; + __s32 value; }; -struct fb_cursor { - __u16 set; - __u16 enable; - __u16 rop; - const char *mask; - struct fbcurpos hot; - struct fb_image image; +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 fb_blit_caps { - u32 x; - u32 y; - u32 len; - u32 flags; +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; }; -typedef u32 acpi_mutex_handle; +struct input_id { + __u16 bustype; + __u16 vendor; + __u16 product; + __u16 version; +}; -struct acpi_predefined_names { +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; - u8 type; - char *val; + 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; }; -typedef u32 acpi_name; - -struct acpi_pkg_info { - u8 *free_space; - acpi_size length; - u32 object_space; - u32 num_packages; +struct input_keymap_entry { + __u8 flags; + __u8 len; + __u16 index; + __u32 keycode; + __u8 scancode[32]; }; -typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *); +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 acpi_vendor_uuid { - u8 subtype; - u8 data[16]; +struct input_mt_slot { + int abs[14]; + unsigned int frame; + unsigned int key; }; -struct resource_win { - struct resource res; - resource_size_t offset; +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 pnp_resource { - struct list_head list; - struct resource res; +struct input_absinfo { + __s32 value; + __s32 minimum; + __s32 maximum; + __s32 fuzz; + __s32 flat; + __s32 resolution; }; -typedef struct { - unsigned long bits[4]; -} pnp_irq_mask_t; +struct input_handler; -struct acpipnp_parse_option_s { - struct pnp_dev *dev; - unsigned int option_flags; +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; }; -enum regulator_type { - REGULATOR_VOLTAGE = 0, - REGULATOR_CURRENT = 1, +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; }; -enum regulator_active_discharge { - REGULATOR_ACTIVE_DISCHARGE_DEFAULT = 0, - REGULATOR_ACTIVE_DISCHARGE_DISABLE = 1, - REGULATOR_ACTIVE_DISCHARGE_ENABLE = 2, +struct input_value { + __u16 type; + __u16 code; + __s32 value; }; -struct regulator_dev; +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 regulator_coupler; +struct input_mt_pos { + s16 x; + s16 y; +}; -struct coupling_desc { - struct regulator_dev **coupled_rdevs; - struct regulator_coupler *coupler; - int n_resolved; - int n_coupled; +struct update_util_data { + void (*func)(struct update_util_data *, u64, unsigned int); }; -struct regulator_desc; +struct policy_dbs_info; -struct regulation_constraints; +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 regulator_enable_gpio; +struct dbs_data; -struct regulator_dev { - const struct regulator_desc *desc; - int exclusive; - u32 use_count; - u32 open_count; - u32 bypass_count; +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; - struct list_head consumer_list; - struct coupling_desc coupling_desc; - struct blocking_notifier_head notifier; - struct ww_mutex mutex; - struct task_struct *mutex_owner; - int ref_cnt; - struct module *owner; - struct device dev; - struct regulation_constraints *constraints; - struct regulator *supply; - const char *supply_name; - struct regmap *regmap; - struct delayed_work disable_work; - void *reg_data; - struct dentry *debugfs; - struct regulator_enable_gpio *ena_pin; - unsigned int ena_gpio_state: 1; - unsigned int is_switch: 1; - ktime_t last_off; - int cached_err; - bool use_cached_err; - spinlock_t err_lock; + unsigned int rate_mult; + unsigned int idle_periods; + bool is_shared; + bool work_in_progress; }; -struct regulator_config; - -struct regulator_ops; - -struct linear_range; - -struct regulator_desc { - const char *name; - const char *supply_name; - const char *of_match; - bool of_match_full_name; - const char *regulators_node; - int (*of_parse_cb)(struct device_node *, const struct regulator_desc *, struct regulator_config *); - int id; - unsigned int continuous_voltage_range: 1; - unsigned int n_voltages; - unsigned int n_current_limits; - const struct regulator_ops *ops; - int irq; - enum regulator_type type; - struct module *owner; - unsigned int min_uV; - unsigned int uV_step; - unsigned int linear_min_sel; - int fixed_uV; - unsigned int ramp_delay; - int min_dropout_uV; - const struct linear_range *linear_ranges; - const unsigned int *linear_range_selectors; - int n_linear_ranges; - const unsigned int *volt_table; - const unsigned int *curr_table; - unsigned int vsel_range_reg; - unsigned int vsel_range_mask; - unsigned int vsel_reg; - unsigned int vsel_mask; - unsigned int vsel_step; - unsigned int csel_reg; - unsigned int csel_mask; - unsigned int apply_reg; - unsigned int apply_bit; - unsigned int enable_reg; - unsigned int enable_mask; - unsigned int enable_val; - unsigned int disable_val; - bool enable_is_inverted; - unsigned int bypass_reg; - unsigned int bypass_mask; - unsigned int bypass_val_on; - unsigned int bypass_val_off; - unsigned int active_discharge_on; - unsigned int active_discharge_off; - unsigned int active_discharge_mask; - unsigned int active_discharge_reg; - unsigned int soft_start_reg; - unsigned int soft_start_mask; - unsigned int soft_start_val_on; - unsigned int pull_down_reg; - unsigned int pull_down_mask; - unsigned int pull_down_val_on; - unsigned int ramp_reg; - unsigned int ramp_mask; - const unsigned int *ramp_delay_table; - unsigned int n_ramp_values; - unsigned int enable_time; - unsigned int off_on_delay; - unsigned int poll_enabled_time; - unsigned int (*of_map_mode)(unsigned int); +struct gov_attr_set { + struct kobject kobj; + struct list_head policy_list; + struct mutex update_lock; + int usage_count; }; -struct regulator_init_data; +struct dbs_governor; -struct regulator_config { - struct device *dev; - const struct regulator_init_data *init_data; - void *driver_data; - struct device_node *of_node; - struct regmap *regmap; - struct gpio_desc *ena_gpiod; +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 regulator_state { - int uV; - int min_uV; - int max_uV; - unsigned int mode; - int enabled; - bool changeable; +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 notification_limit { - int prot; - int err; - int warn; +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, }; -struct regulation_constraints { - const char *name; - int min_uV; - int max_uV; - int uV_offset; - int min_uA; - int max_uA; - int ilim_uA; - int system_load; - u32 *max_spread; - int max_uV_step; - unsigned int valid_modes_mask; - unsigned int valid_ops_mask; - int input_uV; - struct regulator_state state_disk; - struct regulator_state state_mem; - struct regulator_state state_standby; - struct notification_limit over_curr_limits; - struct notification_limit over_voltage_limits; - struct notification_limit under_voltage_limits; - struct notification_limit temp_limits; - suspend_state_t initial_state; - unsigned int initial_mode; - unsigned int ramp_delay; - unsigned int settling_time; - unsigned int settling_time_up; - unsigned int settling_time_down; - unsigned int enable_time; - unsigned int active_discharge; - unsigned int always_on: 1; - unsigned int boot_on: 1; - unsigned int apply_uV: 1; - unsigned int ramp_disable: 1; - unsigned int soft_start: 1; - unsigned int pull_down: 1; - unsigned int over_current_protection: 1; - unsigned int over_current_detection: 1; - unsigned int over_voltage_detection: 1; - unsigned int under_voltage_detection: 1; - unsigned int over_temp_detection: 1; +struct kernel_cpustat { + u64 cpustat[10]; }; -struct regulator_consumer_supply; +struct hid_device_id; -struct regulator_init_data { - const char *supply_regulator; - struct regulation_constraints constraints; - int num_consumer_supplies; - struct regulator_consumer_supply *consumer_supplies; - int (*regulator_init)(void *); - void *driver_data; -}; +struct hid_device; -struct regulator_consumer_supply { - const char *dev_name; - const char *supply; -}; +struct hid_report_id; -struct regulator_ops { - int (*list_voltage)(struct regulator_dev *, unsigned int); - int (*set_voltage)(struct regulator_dev *, int, int, unsigned int *); - int (*map_voltage)(struct regulator_dev *, int, int); - int (*set_voltage_sel)(struct regulator_dev *, unsigned int); - int (*get_voltage)(struct regulator_dev *); - int (*get_voltage_sel)(struct regulator_dev *); - int (*set_current_limit)(struct regulator_dev *, int, int); - int (*get_current_limit)(struct regulator_dev *); - int (*set_input_current_limit)(struct regulator_dev *, int); - int (*set_over_current_protection)(struct regulator_dev *, int, int, bool); - int (*set_over_voltage_protection)(struct regulator_dev *, int, int, bool); - int (*set_under_voltage_protection)(struct regulator_dev *, int, int, bool); - int (*set_thermal_protection)(struct regulator_dev *, int, int, bool); - int (*set_active_discharge)(struct regulator_dev *, bool); - int (*enable)(struct regulator_dev *); - int (*disable)(struct regulator_dev *); - int (*is_enabled)(struct regulator_dev *); - int (*set_mode)(struct regulator_dev *, unsigned int); - unsigned int (*get_mode)(struct regulator_dev *); - int (*get_error_flags)(struct regulator_dev *, unsigned int *); - int (*enable_time)(struct regulator_dev *); - int (*set_ramp_delay)(struct regulator_dev *, int); - int (*set_voltage_time)(struct regulator_dev *, int, int); - int (*set_voltage_time_sel)(struct regulator_dev *, unsigned int, unsigned int); - int (*set_soft_start)(struct regulator_dev *); - int (*get_status)(struct regulator_dev *); - unsigned int (*get_optimum_mode)(struct regulator_dev *, int, int, int); - int (*set_load)(struct regulator_dev *, int); - int (*set_bypass)(struct regulator_dev *, bool); - int (*get_bypass)(struct regulator_dev *, bool *); - int (*set_suspend_voltage)(struct regulator_dev *, int); - int (*set_suspend_enable)(struct regulator_dev *); - int (*set_suspend_disable)(struct regulator_dev *); - int (*set_suspend_mode)(struct regulator_dev *, unsigned int); - int (*resume)(struct regulator_dev *); - int (*set_pull_down)(struct regulator_dev *); -}; +struct hid_report; -struct linear_range { - unsigned int min; - unsigned int min_sel; - unsigned int max_sel; - unsigned int step; -}; +struct hid_usage_id; -struct regulator_voltage { - int min_uV; - int max_uV; -}; +struct hid_field; -struct regulator { - struct device *dev; - struct list_head list; - unsigned int always_on: 1; - unsigned int bypass: 1; - unsigned int device_link: 1; - int uA_load; - unsigned int enable_count; - unsigned int deferred_disables; - struct regulator_voltage voltage[5]; - const char *supply_name; - struct device_attribute dev_attr; - struct regulator_dev *rdev; - struct dentry *debugfs; -}; +struct hid_usage; -struct of_regulator_match { - const char *name; - void *driver_data; - struct regulator_init_data *init_data; - struct device_node *of_node; - const struct regulator_desc *desc; -}; +struct hid_input; -struct devm_of_regulator_matches { - struct of_regulator_match *matches; - unsigned int num_matches; +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 regulator_bulk_data { - const char *supply; - int init_load_uA; - struct regulator *consumer; - int ret; +struct hid_device_id { + __u16 bus; + __u16 group; + __u32 vendor; + __u32 product; + kernel_ulong_t driver_data; }; -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 hid_type { + HID_TYPE_OTHER = 0, + HID_TYPE_USBMOUSE = 1, + HID_TYPE_USBNONE = 2, }; -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 hid_report_enum { + unsigned int numbered; + struct list_head report_list; + struct hid_report *report_id_hash[256]; }; -struct klist_node { - void *n_klist; - struct list_head n_node; - struct kref n_ref; +struct semaphore { + raw_spinlock_t lock; + unsigned int count; + struct list_head wait_list; }; -struct device_private { - struct klist klist_children; - struct klist_node knode_parent; - struct klist_node knode_driver; - struct klist_node knode_bus; - struct klist_node knode_class; - struct list_head deferred_probe; - struct device_driver *async_driver; - char *deferred_probe_reason; - struct device *device; - u8 dead: 1; -}; +struct hid_bpf_prog_list; -struct driver_private { - struct kobject kobj; - struct klist klist_devices; - struct klist_node knode_bus; - struct module_kobject *mkobj; - struct device_driver *driver; +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 regcache_rbtree_node { - void *block; - long *cache_present; - unsigned int base_reg; - unsigned int blklen; - struct rb_node node; -}; +struct hid_collection; -struct regcache_rbtree_ctx { - struct rb_root root; - struct regcache_rbtree_node *cached_rbnode; -}; +struct hid_ll_driver; -enum nvdimm_fwa_state { - NVDIMM_FWA_INVALID = 0, - NVDIMM_FWA_IDLE = 1, - NVDIMM_FWA_ARMED = 2, - NVDIMM_FWA_BUSY = 3, - NVDIMM_FWA_ARM_OVERFLOW = 4, +struct hid_device { + __u8 *dev_rdesc; + unsigned int dev_rsize; + __u8 *rdesc; + unsigned int rsize; + struct hid_collection *collection; + unsigned int collection_size; + unsigned int maxcollection; + unsigned int maxapplication; + __u16 bus; + __u16 group; + __u32 vendor; + __u32 product; + __u32 version; + enum hid_type type; + unsigned int country; + struct hid_report_enum report_enum[3]; + struct work_struct led_work; + struct semaphore driver_input_lock; + struct device dev; + struct hid_driver *driver; + void *devres_group_id; + const struct hid_ll_driver *ll_driver; + struct mutex ll_open_lock; + unsigned int ll_open_count; + unsigned long status; + unsigned int claimed; + unsigned int quirks; + unsigned int initial_quirks; + bool io_started; + struct list_head inputs; + void *hiddev; + void *hidraw; + char name[128]; + char phys[64]; + char uniq[64]; + void *driver_data; + int (*ff_init)(struct hid_device *); + int (*hiddev_connect)(struct hid_device *, unsigned int); + void (*hiddev_disconnect)(struct hid_device *); + void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); + void (*hiddev_report_event)(struct hid_device *, struct hid_report *); + unsigned short debug; + struct dentry *debug_dir; + struct dentry *debug_rdesc; + struct dentry *debug_events; + struct list_head debug_list; + spinlock_t debug_list_lock; + wait_queue_head_t debug_wait; + struct kref ref; + unsigned int id; + struct hid_bpf bpf; }; -enum nvdimm_fwa_capability { - NVDIMM_FWA_CAP_INVALID = 0, - NVDIMM_FWA_CAP_NONE = 1, - NVDIMM_FWA_CAP_QUIESCE = 2, - NVDIMM_FWA_CAP_LIVE = 3, +struct hid_collection { + int parent_idx; + unsigned int type; + unsigned int usage; + unsigned int level; }; -enum { - NDD_UNARMED = 1, - NDD_LOCKED = 2, - NDD_SECURITY_OVERWRITE = 3, - NDD_WORK_PENDING = 4, - NDD_LABELING = 6, - NDD_INCOHERENT = 7, - NDD_REGISTER_SYNC = 8, - ND_IOCTL_MAX_BUFLEN = 4194304, - ND_CMD_MAX_ELEM = 5, - ND_CMD_MAX_ENVELOPE = 256, - ND_MAX_MAPPINGS = 32, - ND_REGION_PAGEMAP = 0, - ND_REGION_PERSIST_CACHE = 1, - ND_REGION_PERSIST_MEMCTRL = 2, - ND_REGION_ASYNC = 3, - ND_REGION_CXL = 4, - DPA_RESOURCE_ADJUSTED = 1, +enum hid_report_type { + HID_INPUT_REPORT = 0, + HID_OUTPUT_REPORT = 1, + HID_FEATURE_REPORT = 2, + HID_REPORT_TYPES = 3, }; -struct nvdimm_bus_descriptor; - -struct nvdimm; - -typedef int (*ndctl_fn)(struct nvdimm_bus_descriptor *, struct nvdimm *, unsigned int, void *, unsigned int, int *); - -struct nvdimm_bus_fw_ops; +struct hid_field_entry; -struct nvdimm_bus_descriptor { - const struct attribute_group **attr_groups; - unsigned long cmd_mask; - unsigned long dimm_family_mask; - unsigned long bus_family_mask; - struct module *module; - char *provider_name; - struct device_node *of_node; - ndctl_fn ndctl; - int (*flush_probe)(struct nvdimm_bus_descriptor *); - int (*clear_to_send)(struct nvdimm_bus_descriptor *, struct nvdimm *, unsigned int, void *); - const struct nvdimm_bus_fw_ops *fw_ops; +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 nvdimm_bus_fw_ops { - enum nvdimm_fwa_state (*activate_state)(struct nvdimm_bus_descriptor *); - enum nvdimm_fwa_capability (*capability)(struct nvdimm_bus_descriptor *); - int (*activate)(struct nvdimm_bus_descriptor *); +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 nd_mapping_desc; - -struct nd_interleave_set; - -struct nd_region; - -struct nd_region_desc { - struct resource *res; - struct nd_mapping_desc *mapping; - u16 num_mappings; - const struct attribute_group **attr_groups; - struct nd_interleave_set *nd_set; - void *provider_data; - int num_lanes; - int numa_node; - int target_node; - unsigned long flags; - int memregion; - struct device_node *of_node; - int (*flush)(struct nd_region *, struct bio *); +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 nd_mapping_desc { - struct nvdimm *nvdimm; - u64 start; - u64 size; - int position; +struct hid_input { + struct list_head list; + struct hid_report *report; + struct input_dev *input; + const char *name; + struct list_head reports; + unsigned int application; + bool registered; }; -struct nd_interleave_set { - u64 cookie1; - u64 cookie2; - u64 altcookie; - guid_t type_guid; +struct hid_field_entry { + struct list_head list; + struct hid_field *field; + unsigned int index; + __s32 priority; }; -struct nvdimm_bus; - -struct of_pmem_private { - struct nvdimm_bus_descriptor bus_desc; - struct nvdimm_bus *bus; +struct hid_ll_driver { + int (*start)(struct hid_device *); + void (*stop)(struct hid_device *); + int (*open)(struct hid_device *); + void (*close)(struct hid_device *); + int (*power)(struct hid_device *, int); + int (*parse)(struct hid_device *); + void (*request)(struct hid_device *, struct hid_report *, int); + int (*wait)(struct hid_device *); + int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int); + int (*output_report)(struct hid_device *, __u8 *, size_t); + int (*idle)(struct hid_device *, int, int, int); + bool (*may_wakeup)(struct hid_device *); + unsigned int max_buffer_size; }; -struct 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 hid_bpf_prog_list { + u16 prog_idx[64]; + u8 prog_cnt; }; -struct cdrom_tochdr { - __u8 cdth_trk0; - __u8 cdth_trk1; +struct hid_report_id { + __u32 report_type; }; -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 hid_usage_id { + __u32 usage_hid; + __u32 usage_type; + __u32 usage_code; }; -struct cdrom_ti { - __u8 cdti_trk0; - __u8 cdti_ind0; - __u8 cdti_trk1; - __u8 cdti_ind1; +union sbi_pmu_ctr_info { + unsigned long value; + struct { + unsigned long csr: 12; + unsigned long width: 6; + unsigned long reserved: 45; + unsigned long type: 1; + }; }; -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; +struct hw_gen_event { + uint32_t event_code: 16; + uint32_t event_type: 4; + uint32_t reserved: 12; }; -typedef struct scsi_cd Scsi_CD; - -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 hw_cache_event { + uint32_t result_id: 1; + uint32_t op_id: 2; + uint32_t cache_id: 13; + uint32_t event_type: 4; + uint32_t reserved: 12; }; -enum netdev_queue_state_t { - __QUEUE_STATE_DRV_XOFF = 0, - __QUEUE_STATE_STACK_XOFF = 1, - __QUEUE_STATE_FROZEN = 2, +struct sbi_pmu_event_data { + union { + union { + struct hw_gen_event hw_gen_event; + struct hw_cache_event hw_cache_event; + }; + uint32_t event_idx; + }; }; -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; +enum sbi_pmu_ctr_type { + SBI_PMU_CTR_TYPE_HW = 0, + SBI_PMU_CTR_TYPE_FW = 1, }; -struct netdev_lag_lower_state_info { - u8 link_up: 1; - u8 tx_enabled: 1; +enum sbi_ext_pmu_fid { + SBI_EXT_PMU_NUM_COUNTERS = 0, + SBI_EXT_PMU_COUNTER_GET_INFO = 1, + SBI_EXT_PMU_COUNTER_CFG_MATCH = 2, + SBI_EXT_PMU_COUNTER_START = 3, + SBI_EXT_PMU_COUNTER_STOP = 4, + SBI_EXT_PMU_COUNTER_FW_READ = 5, }; -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; +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, }; -struct xhci_file_map { - const char *name; - int (*show)(struct seq_file *, void *); +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, }; -struct debugfs_reg32 { - char *name; - unsigned long offset; +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, }; -struct debugfs_regset32 { - const struct debugfs_reg32 *regs; - int nregs; - void *base; - struct device *dev; +enum sbi_pmu_event_type { + SBI_PMU_EVENT_TYPE_HW = 0, + SBI_PMU_EVENT_TYPE_CACHE = 1, + SBI_PMU_EVENT_TYPE_RAW = 2, + SBI_PMU_EVENT_TYPE_FW = 15, }; -struct xhci_regset { - char name[32]; - struct debugfs_regset32 regset; - size_t nregs; - struct list_head list; +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, }; -struct xhci_ep_priv; - -struct xhci_slot_priv { - char name[32]; - struct dentry *root; - struct xhci_ep_priv *eps[31]; - struct xhci_virt_device *dev; +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, }; -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; +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, }; -struct ps2pp_info { - u8 model; - u8 kind; - u16 features; +enum cpu_pm_event { + CPU_PM_ENTER = 0, + CPU_PM_ENTER_FAILED = 1, + CPU_PM_EXIT = 2, + CPU_CLUSTER_PM_ENTER = 3, + CPU_CLUSTER_PM_ENTER_FAILED = 4, + CPU_CLUSTER_PM_EXIT = 5, }; -struct psmouse; +struct cpu_hw_events; -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 riscv_pmu { + struct pmu pmu; + char *name; + irqreturn_t (*handle_irq)(int, void *); + unsigned long cmask; + u64 (*ctr_read)(struct perf_event *); + int (*ctr_get_idx)(struct perf_event *); + int (*ctr_get_width)(int); + void (*ctr_clear_idx)(struct perf_event *); + void (*ctr_start)(struct perf_event *, u64); + void (*ctr_stop)(struct perf_event *, unsigned long); + int (*event_map)(struct perf_event *, u64 *); + void (*event_init)(struct perf_event *); + void (*event_mapped)(struct perf_event *, struct mm_struct *); + void (*event_unmapped)(struct perf_event *, struct mm_struct *); + uint8_t (*csr_index)(struct perf_event *); + struct cpu_hw_events __attribute__((btf_type_tag("percpu"))) *hw_events; + struct hlist_node node; + struct notifier_block riscv_pm_nb; }; -enum ps2_disposition { - PS2_PROCESS = 0, - PS2_IGNORE = 1, - PS2_ERROR = 2, +struct cpu_hw_events { + int n_events; + int irq; + struct perf_event *events[64]; + unsigned long used_hw_ctrs[1]; + unsigned long used_fw_ctrs[1]; }; -struct ps2dev; - -typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int); - -typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8); +typedef void (*smp_call_func_t)(void *); -struct serio; +typedef bool (*smp_cond_func_t)(int, void *); -struct ps2dev { - struct serio *serio; - struct mutex cmd_mutex; - wait_queue_head_t wait; - unsigned long flags; - u8 cmdbuf[8]; - u8 cmdcnt; - u8 nak; - ps2_pre_receive_handler_t pre_receive_handler; - ps2_receive_handler_t receive_handler; +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 psmouse_state { - PSMOUSE_IGNORE = 0, - PSMOUSE_INITIALIZING = 1, - PSMOUSE_RESYNCING = 2, - PSMOUSE_CMD_MODE = 3, - PSMOUSE_ACTIVATED = 4, +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; }; -typedef enum { - PSMOUSE_BAD_DATA = 0, - PSMOUSE_GOOD_DATA = 1, - PSMOUSE_FULL_PACKET = 2, -} psmouse_ret_t; +struct qdisc_skb_cb { + struct { + unsigned int pkt_len; + u16 slave_dev_queue_mapping; + u16 tc_classid; + }; + unsigned char data[20]; +}; -enum psmouse_scale { - PSMOUSE_SCALE11 = 0, - PSMOUSE_SCALE21 = 1, +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 psmouse_protocol; +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; +}; -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 vlan_hdr { + __be16 h_vlan_TCI; + __be16 h_vlan_encapsulated_proto; }; -struct serio_device_id { - __u8 type; - __u8 extra; - __u8 id; - __u8 proto; +enum { + ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0, + ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1, + ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2, }; -struct serio_driver; +enum { + ETHTOOL_A_RINGS_UNSPEC = 0, + ETHTOOL_A_RINGS_HEADER = 1, + ETHTOOL_A_RINGS_RX_MAX = 2, + ETHTOOL_A_RINGS_RX_MINI_MAX = 3, + ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4, + ETHTOOL_A_RINGS_TX_MAX = 5, + ETHTOOL_A_RINGS_RX = 6, + ETHTOOL_A_RINGS_RX_MINI = 7, + ETHTOOL_A_RINGS_RX_JUMBO = 8, + ETHTOOL_A_RINGS_TX = 9, + ETHTOOL_A_RINGS_RX_BUF_LEN = 10, + ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11, + ETHTOOL_A_RINGS_CQE_SIZE = 12, + ETHTOOL_A_RINGS_TX_PUSH = 13, + ETHTOOL_A_RINGS_RX_PUSH = 14, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16, + __ETHTOOL_A_RINGS_CNT = 17, + ETHTOOL_A_RINGS_MAX = 16, +}; -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; +enum ethtool_supported_ring_param { + ETHTOOL_RING_USE_RX_BUF_LEN = 1, + ETHTOOL_RING_USE_CQE_SIZE = 2, + ETHTOOL_RING_USE_TX_PUSH = 4, + ETHTOOL_RING_USE_RX_PUSH = 8, + ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16, }; -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 rings_reply_data { + struct ethnl_reply_data base; + struct ethtool_ringparam ringparam; + struct kernel_ethtool_ringparam kernel_ringparam; + u32 supported_ring_params; }; -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, +struct static_key_true { + struct static_key key; }; -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 *); +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 sdhci_ops; +enum sk_action { + SK_DROP = 0, + SK_PASS = 1, +}; -struct sdhci_pltfm_data { - const struct sdhci_ops *ops; - unsigned int quirks; - unsigned int quirks2; +struct inet_timewait_sock { + struct sock_common __tw_common; + __u32 tw_mark; + volatile unsigned char tw_substate; + unsigned char tw_rcv_wscale; + __be16 tw_sport; + unsigned int tw_transparent: 1; + unsigned int tw_flowlabel: 20; + unsigned int tw_usec_ts: 1; + unsigned int tw_pad: 2; + unsigned int tw_tos: 8; + u32 tw_txhash; + u32 tw_priority; + struct timer_list tw_timer; + struct inet_bind_bucket *tw_tb; + struct inet_bind2_bucket *tw_tb2; + struct hlist_node tw_bind2_node; }; -struct sdhci_cdns_drv_data { - int (*init)(struct platform_device *); - const struct sdhci_pltfm_data pltfm_data; +struct bpf_sk_lookup_kern { + u16 family; + u16 protocol; + __be16 sport; + u16 dport; + struct { + __be32 saddr; + __be32 daddr; + } v4; + struct { + const struct in6_addr *saddr; + const struct in6_addr *daddr; + } v6; + struct sock *selected_sk; + u32 ingress_ifindex; + bool no_reuseport; }; -struct sdhci_host; +typedef u32 inet_ehashfn_t(const struct net *, const __be32, const __u16, const __be32, const __be16); -struct sdhci_ops { - u32 (*read_l)(struct sdhci_host *, int); - u16 (*read_w)(struct sdhci_host *, int); - u8 (*read_b)(struct sdhci_host *, int); - void (*write_l)(struct sdhci_host *, u32, int); - void (*write_w)(struct sdhci_host *, u16, int); - void (*write_b)(struct sdhci_host *, u8, int); - void (*set_clock)(struct sdhci_host *, unsigned int); - void (*set_power)(struct sdhci_host *, unsigned char, unsigned short); - u32 (*irq)(struct sdhci_host *, u32); - int (*set_dma_mask)(struct sdhci_host *); - int (*enable_dma)(struct sdhci_host *); - unsigned int (*get_max_clock)(struct sdhci_host *); - unsigned int (*get_min_clock)(struct sdhci_host *); - unsigned int (*get_timeout_clock)(struct sdhci_host *); - unsigned int (*get_max_timeout_count)(struct sdhci_host *); - void (*set_timeout)(struct sdhci_host *, struct mmc_command *); - void (*set_bus_width)(struct sdhci_host *, int); - void (*platform_send_init_74_clocks)(struct sdhci_host *, u8); - unsigned int (*get_ro)(struct sdhci_host *); - void (*reset)(struct sdhci_host *, u8); - int (*platform_execute_tuning)(struct sdhci_host *, u32); - void (*set_uhs_signaling)(struct sdhci_host *, unsigned int); - void (*hw_reset)(struct sdhci_host *); - void (*adma_workaround)(struct sdhci_host *, u32); - void (*card_event)(struct sdhci_host *); - void (*voltage_switch)(struct sdhci_host *); - void (*adma_write_desc)(struct sdhci_host *, void **, dma_addr_t, int, unsigned int); - void (*copy_to_bounce_buffer)(struct sdhci_host *, struct mmc_data *, unsigned int); - void (*request_done)(struct sdhci_host *, struct mmc_request *); - void (*dump_vendor_regs)(struct sdhci_host *); +struct devinet_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table devinet_vars[34]; }; -struct sg_page_iter { - struct scatterlist *sg; - unsigned int sg_pgoffset; - unsigned int __nents; - int __pg_advance; +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 *); }; -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; +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 sdhci_host { - const char *hw_name; - unsigned int quirks; - unsigned int quirks2; - int irq; - void *ioaddr; - phys_addr_t mapbase; - char *bounce_buffer; - dma_addr_t bounce_addr; - unsigned int bounce_buffer_size; - const struct sdhci_ops *ops; - struct mmc_host *mmc; - struct mmc_host_ops mmc_host_ops; - u64 dma_mask; - spinlock_t lock; - int flags; - unsigned int version; - unsigned int max_clk; - unsigned int timeout_clk; - u8 max_timeout_count; - unsigned int clk_mul; - unsigned int clock; - u8 pwr; - u8 drv_type; - bool reinit_uhs; - bool runtime_suspended; - bool bus_on; - bool preset_enabled; - bool pending_reset; - bool irq_wake_enabled; - bool v4_mode; - bool use_external_dma; - bool always_defer_done; - struct mmc_request *mrqs_done[2]; - struct mmc_command *cmd; - struct mmc_command *data_cmd; - struct mmc_command *deferred_cmd; - struct mmc_data *data; - unsigned int data_early: 1; - struct sg_mapping_iter sg_miter; - unsigned int blocks; - int sg_count; - int max_adma; - void *adma_table; - void *align_buffer; - size_t adma_table_sz; - size_t align_buffer_sz; - dma_addr_t adma_addr; - dma_addr_t align_addr; - unsigned int desc_sz; - unsigned int alloc_desc_sz; - struct workqueue_struct *complete_wq; - struct work_struct complete_work; - struct timer_list timer; - struct timer_list data_timer; - u32 caps; - u32 caps1; - bool read_caps; - bool sdhci_core_to_disable_vqmmc; - unsigned int ocr_avail_sdio; - unsigned int ocr_avail_sd; - unsigned int ocr_avail_mmc; - u32 ocr_mask; - unsigned int timing; - u32 thread_isr; - u32 ier; - bool cqe_on; - u32 cqe_ier; - u32 cqe_err_ier; - wait_queue_head_t buf_ready_int; - unsigned int tuning_done; - unsigned int tuning_count; - unsigned int tuning_mode; - unsigned int tuning_err; - int tuning_delay; - int tuning_loop_count; - u32 sdma_boundary; - u32 adma_table_cnt; - u64 data_timeout; - long: 64; - long: 64; - long: 64; - long: 64; - unsigned long private[0]; +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, }; -struct led_trigger {}; - -struct sdhci_cdns_phy_cfg { - const char *property; - u8 addr; +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, }; -struct sdhci_cdns_phy_param { - u8 addr; - u8 data; +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, }; -struct sdhci_cdns_priv { - void *hrs_addr; - void *ctl_addr; - spinlock_t wrlock; - bool enhanced_strobe; - void (*priv_writel)(struct sdhci_cdns_priv *, u32, void *); - struct reset_control *rst_hw; - unsigned int nr_phy_params; - struct sdhci_cdns_phy_param phy_params[0]; +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, }; -struct sdhci_pltfm_host { - struct clk *clk; - unsigned int clock; - u16 xfer_mode_shadow; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - unsigned long private[0]; +enum { + IFLA_INET_UNSPEC = 0, + IFLA_INET_CONF = 1, + __IFLA_INET_MAX = 2, }; -struct rpmsg_device_id; - -struct rpmsg_device; - -struct rpmsg_driver { - struct device_driver drv; - const struct rpmsg_device_id *id_table; - int (*probe)(struct rpmsg_device *); - void (*remove)(struct rpmsg_device *); - int (*callback)(struct rpmsg_device *, void *, int, void *, u32); +struct fib_table { + struct hlist_node tb_hlist; + u32 tb_id; + int tb_num_default; + struct callback_head rcu; + unsigned long *tb_data; + unsigned long __data[0]; }; -struct rpmsg_device_id { - char name[32]; - kernel_ulong_t driver_data; +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 rpmsg_endpoint; +typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, struct netlink_ext_ack *); -struct rpmsg_device_ops; +typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *); -struct rpmsg_device { - struct device dev; - struct rpmsg_device_id id; - const char *driver_override; - u32 src; - u32 dst; - struct rpmsg_endpoint *ept; - bool announce; - bool little_endian; - const struct rpmsg_device_ops *ops; +struct ifaddrmsg { + __u8 ifa_family; + __u8 ifa_prefixlen; + __u8 ifa_flags; + __u8 ifa_scope; + __u32 ifa_index; }; -typedef int (*rpmsg_rx_cb_t)(struct rpmsg_device *, void *, int, void *, u32); +struct ifa_cacheinfo { + __u32 ifa_prefered; + __u32 ifa_valid; + __u32 cstamp; + __u32 tstamp; +}; -struct rpmsg_endpoint_ops; +struct inet_fill_args { + u32 portid; + u32 seq; + int event; + unsigned int flags; + int netnsid; + int ifindex; +}; -struct rpmsg_endpoint { - struct rpmsg_device *rpdev; - struct kref refcount; - rpmsg_rx_cb_t cb; - struct mutex cb_lock; - u32 addr; - void *priv; - const struct rpmsg_endpoint_ops *ops; +struct netconfmsg { + __u8 ncm_family; }; -struct rpmsg_endpoint_ops { - void (*destroy_ept)(struct rpmsg_endpoint *); - int (*send)(struct rpmsg_endpoint *, void *, int); - int (*sendto)(struct rpmsg_endpoint *, void *, int, u32); - int (*send_offchannel)(struct rpmsg_endpoint *, u32, u32, void *, int); - int (*trysend)(struct rpmsg_endpoint *, void *, int); - int (*trysendto)(struct rpmsg_endpoint *, void *, int, u32); - int (*trysend_offchannel)(struct rpmsg_endpoint *, u32, u32, void *, int); - __poll_t (*poll)(struct rpmsg_endpoint *, struct file *, poll_table *); - ssize_t (*get_mtu)(struct rpmsg_endpoint *); +struct in_validator_info { + __be32 ivi_addr; + struct in_device *ivi_dev; + struct netlink_ext_ack *extack; }; -struct rpmsg_channel_info; +struct inet_diag_req_v2; -struct rpmsg_device_ops { - struct rpmsg_device * (*create_channel)(struct rpmsg_device *, struct rpmsg_channel_info *); - int (*release_channel)(struct rpmsg_device *, struct rpmsg_channel_info *); - struct rpmsg_endpoint * (*create_ept)(struct rpmsg_device *, rpmsg_rx_cb_t, void *, struct rpmsg_channel_info); - int (*announce_create)(struct rpmsg_device *); - int (*announce_destroy)(struct rpmsg_device *); -}; +struct inet_diag_msg; -struct rpmsg_channel_info { - char name[32]; - u32 src; - u32 dst; +struct inet_diag_handler { + void (*dump)(struct sk_buff *, struct netlink_callback *, const struct inet_diag_req_v2 *); + int (*dump_one)(struct netlink_callback *, const struct inet_diag_req_v2 *); + void (*idiag_get_info)(struct sock *, struct inet_diag_msg *, void *); + int (*idiag_get_aux)(struct sock *, bool, struct sk_buff *); + size_t (*idiag_get_aux_size)(struct sock *, bool); + int (*destroy)(struct sk_buff *, const struct inet_diag_req_v2 *); + __u16 idiag_type; + __u16 idiag_info_size; }; -struct rpmsg_eptdev { - struct device dev; - struct cdev cdev; - struct rpmsg_device *rpdev; - struct rpmsg_channel_info chinfo; - struct mutex ept_lock; - struct rpmsg_endpoint *ept; - struct rpmsg_endpoint *default_ept; - spinlock_t queue_lock; - struct sk_buff_head queue; - wait_queue_head_t readq; +struct tcpvegas_info { + __u32 tcpv_enabled; + __u32 tcpv_rttcnt; + __u32 tcpv_rtt; + __u32 tcpv_minrtt; }; -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, +struct tcp_dctcp_info { + __u16 dctcp_enabled; + __u16 dctcp_ce_state; + __u32 dctcp_alpha; + __u32 dctcp_ab_ecn; + __u32 dctcp_ab_tot; }; -struct udphdr { - __be16 source; - __be16 dest; - __be16 len; - __sum16 check; +struct tcp_bbr_info { + __u32 bbr_bw_lo; + __u32 bbr_bw_hi; + __u32 bbr_min_rtt; + __u32 bbr_pacing_gain; + __u32 bbr_cwnd_gain; }; -struct tso_t { - int next_frag_idx; - int size; - void *data; - u16 ip_id; - u8 tlen; - bool ipv6; - u32 tcp_seq; +union tcp_cc_info { + struct tcpvegas_info vegas; + struct tcp_dctcp_info dctcp; + struct tcp_bbr_info bbr; }; -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 inet_diag_sockid { + __be16 idiag_sport; + __be16 idiag_dport; + __be32 idiag_src[4]; + __be32 idiag_dst[4]; + __u32 idiag_if; + __u32 idiag_cookie[2]; }; -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 inet_diag_req_v2 { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u8 idiag_ext; + __u8 pad; + __u32 idiag_states; + struct inet_diag_sockid id; }; -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 inet_diag_msg { + __u8 idiag_family; + __u8 idiag_state; + __u8 idiag_timer; + __u8 idiag_retrans; + struct inet_diag_sockid id; + __u32 idiag_expires; + __u32 idiag_rqueue; + __u32 idiag_wqueue; + __u32 idiag_uid; + __u32 idiag_inode; }; -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; +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 sk_psock_work_state { - u32 len; - u32 off; +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, }; -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 delayed_work work; - struct rcu_work rwork; +struct tcp_info { + __u8 tcpi_state; + __u8 tcpi_ca_state; + __u8 tcpi_retransmits; + __u8 tcpi_probes; + __u8 tcpi_backoff; + __u8 tcpi_options; + __u8 tcpi_snd_wscale: 4; + __u8 tcpi_rcv_wscale: 4; + __u8 tcpi_delivery_rate_app_limited: 1; + __u8 tcpi_fastopen_client_fail: 2; + __u32 tcpi_rto; + __u32 tcpi_ato; + __u32 tcpi_snd_mss; + __u32 tcpi_rcv_mss; + __u32 tcpi_unacked; + __u32 tcpi_sacked; + __u32 tcpi_lost; + __u32 tcpi_retrans; + __u32 tcpi_fackets; + __u32 tcpi_last_data_sent; + __u32 tcpi_last_ack_sent; + __u32 tcpi_last_data_recv; + __u32 tcpi_last_ack_recv; + __u32 tcpi_pmtu; + __u32 tcpi_rcv_ssthresh; + __u32 tcpi_rtt; + __u32 tcpi_rttvar; + __u32 tcpi_snd_ssthresh; + __u32 tcpi_snd_cwnd; + __u32 tcpi_advmss; + __u32 tcpi_reordering; + __u32 tcpi_rcv_rtt; + __u32 tcpi_rcv_space; + __u32 tcpi_total_retrans; + __u64 tcpi_pacing_rate; + __u64 tcpi_max_pacing_rate; + __u64 tcpi_bytes_acked; + __u64 tcpi_bytes_received; + __u32 tcpi_segs_out; + __u32 tcpi_segs_in; + __u32 tcpi_notsent_bytes; + __u32 tcpi_min_rtt; + __u32 tcpi_data_segs_in; + __u32 tcpi_data_segs_out; + __u64 tcpi_delivery_rate; + __u64 tcpi_busy_time; + __u64 tcpi_rwnd_limited; + __u64 tcpi_sndbuf_limited; + __u32 tcpi_delivered; + __u32 tcpi_delivered_ce; + __u64 tcpi_bytes_sent; + __u64 tcpi_bytes_retrans; + __u32 tcpi_dsack_dups; + __u32 tcpi_reord_seen; + __u32 tcpi_rcv_ooopack; + __u32 tcpi_snd_wnd; + __u32 tcpi_rcv_wnd; + __u32 tcpi_rehash; + __u16 tcpi_total_rto; + __u16 tcpi_total_rto_recoveries; + __u32 tcpi_total_rto_time; }; -struct sk_msg_sg { - u32 start; - u32 curr; - u32 end; - u32 size; - u32 copybreak; - unsigned long copy[1]; - struct scatterlist data[19]; +struct scm_stat { + atomic_t nr_fds; }; -struct sk_msg { - struct sk_msg_sg sg; - void *data; - void *data_end; - u32 apply_bytes; - u32 cork_bytes; - u32 flags; - struct sk_buff *skb; - struct sock *sk_redir; - struct sock *sk; - struct list_head list; +struct 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; + struct socket_wq peer_wq; + wait_queue_entry_t peer_wake; + struct scm_stat scm_stat; + struct sk_buff *oob_skb; + long: 64; }; -union bpf_iter_link_info; +struct sockaddr_un { + __kernel_sa_family_t sun_family; + char sun_path[108]; +}; -typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *, union bpf_iter_link_info *, struct bpf_iter_aux_info *); +struct unix_address { + refcount_t refcnt; + int len; + struct sockaddr_un name[0]; +}; -typedef void (*bpf_iter_detach_target_t)(struct bpf_iter_aux_info *); +struct scm_fp_list; -typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct seq_file *); +struct unix_skb_parms { + struct pid *pid; + kuid_t uid; + kgid_t gid; + struct scm_fp_list *fp; + u32 secid; + u32 consumed; +}; -typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *); +struct scm_fp_list { + short count; + short max; + struct user_struct *user; + struct file *fp[253]; +}; -typedef const struct bpf_func_proto * (*bpf_iter_get_func_proto_t)(enum bpf_func_id, const struct bpf_prog *); +struct udp_hslot; -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; +struct udp_table { + struct udp_hslot *hash; + struct udp_hslot *hash2; + unsigned int mask; + unsigned int log; }; -union bpf_iter_link_info { - struct { - __u32 map_fd; - } map; - struct { - enum bpf_cgroup_iter_order order; - __u32 cgroup_fd; - __u64 cgroup_id; - } cgroup; - struct { - __u32 tid; - __u32 pid; - __u32 pid_fd; - } task; +struct udp_hslot { + struct hlist_head head; + int count; + spinlock_t lock; + long: 64; }; -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, +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; }; -enum { - BPF_F_INGRESS = 1, +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 { - 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 udp_seq_afinfo { + sa_family_t family; + struct udp_table *udp_table; }; -struct bpf_sock_ops_kern; - -typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); +typedef __be32 rpc_fraghdr; -struct bpf_sock_ops_kern { - struct sock *sk; - union { - u32 args[4]; - u32 reply; - u32 replylong[4]; - }; - struct sk_buff *syn_skb; +struct xdr_skb_reader { struct sk_buff *skb; - void *skb_data_end; - u8 op; - u8 is_fullsock; - u8 remaining_opt_len; - u64 temp; -}; - -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; + unsigned int offset; + size_t count; + __wsum csum; }; -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: 64; -}; +typedef size_t (*xdr_skb_read_actor)(struct xdr_skb_reader *, void *, size_t); -struct bpf_shtab_bucket { - struct hlist_head head; - raw_spinlock_t lock; +struct packet_offload { + __be16 type; + u16 priority; + struct offload_callbacks callbacks; + struct list_head list; }; -struct sk_psock_link { - struct list_head list; - struct bpf_map *map; - void *link_raw; +enum vlan_flags { + VLAN_FLAG_REORDER_HDR = 1, + VLAN_FLAG_GVRP = 2, + VLAN_FLAG_LOOSE_BINDING = 4, + VLAN_FLAG_MVRP = 8, + VLAN_FLAG_BRIDGE_BINDING = 16, }; -struct __una_u32 { - u32 x; +enum vlan_protos { + VLAN_PROTO_8021Q = 0, + VLAN_PROTO_8021AD = 1, + VLAN_PROTO_NUM = 2, }; -struct bpf_shtab_elem { - struct callback_head rcu; - u32 hash; - struct sock *sk; - struct hlist_node node; - u8 key[0]; +struct vlan_pcpu_stats { + u64_stats_t rx_packets; + u64_stats_t rx_bytes; + u64_stats_t rx_multicast; + u64_stats_t tx_packets; + u64_stats_t tx_bytes; + struct u64_stats_sync syncp; + u32 rx_errors; + u32 tx_dropped; }; -struct sock_map_seq_info { - struct bpf_map *map; - struct sock *sk; - u32 index; +struct vlan_vid_info { + struct list_head list; + __be16 proto; + u16 vid; + int refcount; }; -struct bpf_iter__sockmap { - union { - struct bpf_iter_meta *meta; - }; +struct vlan_ethhdr { union { - struct bpf_map *map; + 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 napi_gro_cb { union { - void *key; + struct { + void *frag0; + unsigned int frag0_len; + }; + struct { + struct sk_buff *last; + unsigned long age; + }; }; + int data_offset; + u16 flush; + u16 flush_id; + u16 count; + u16 proto; union { - struct sock *sk; + 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 sock_hash_seq_info { - struct bpf_map *map; - struct bpf_shtab *htab; - u32 bucket_id; +struct vlan_priority_tci_mapping; + +struct vlan_dev_priv { + unsigned int nr_ingress_mappings; + u32 ingress_priority_map[8]; + unsigned int nr_egress_mappings; + struct vlan_priority_tci_mapping *egress_priority_map[16]; + __be16 vlan_proto; + u16 vlan_id; + u16 flags; + struct net_device *real_dev; + netdevice_tracker dev_tracker; + unsigned char real_dev_addr[6]; + struct proc_dir_entry *dent; + struct vlan_pcpu_stats __attribute__((btf_type_tag("percpu"))) *vlan_pcpu_stats; }; -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 vlan_priority_tci_mapping { + u32 priority; + u16 vlan_qos; + struct vlan_priority_tci_mapping *next; }; -struct phc_vclocks_reply_data { - struct ethnl_reply_data base; - int num; - int *index; +struct uevent_sock { + struct list_head list; + struct sock *sk; }; -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; +typedef __u32 Elf32_Word; + +struct elf32_note { + Elf32_Word n_namesz; + Elf32_Word n_descsz; + Elf32_Word n_type; }; -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 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 inet_bind_bucket; +struct core_vma_metadata { + unsigned long start; + unsigned long end; + unsigned long flags; + unsigned long dump_size; + unsigned long pgoff; + struct file *file; +}; -struct inet_bind2_bucket; +typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int); -struct inet_connection_sock_af_ops; +typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); -struct tcp_ulp_ops; +enum sig_handler { + HANDLER_CURRENT = 0, + HANDLER_SIG_DFL = 1, + HANDLER_EXIT = 2, +}; -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]; +enum { + TRACE_SIGNAL_DELIVERED = 0, + TRACE_SIGNAL_IGNORED = 1, + TRACE_SIGNAL_ALREADY_PENDING = 2, + TRACE_SIGNAL_OVERFLOW_FAIL = 3, + TRACE_SIGNAL_LOSE_INFO = 4, }; -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; +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 minmax_sample { - u32 t; - u32 v; +struct sigqueue { + struct list_head list; + int flags; + kernel_siginfo_t info; + struct ucounts *ucounts; }; -struct minmax { - struct minmax_sample s[3]; +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 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 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 tcp_sack_block { - u32 start_seq; - u32 end_seq; +typedef struct siginfo siginfo_t; + +struct sigaltstack { + void __attribute__((btf_type_tag("user"))) *ss_sp; + int ss_flags; + __kernel_size_t ss_size; }; -struct tcp_fastopen_request; +typedef struct sigaltstack stack_t; -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; - struct tcp_fastopen_request *fastopen_req; - struct request_sock __attribute__((btf_type_tag("rcu"))) *fastopen_rsk; - struct saved_syn *saved_syn; +struct compat_sigaction { + compat_uptr_t sa_handler; + compat_ulong_t sa_flags; + compat_sigset_t sa_mask; }; -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 trace_event_data_offsets_signal_generate {}; + +struct trace_event_data_offsets_signal_deliver {}; + +typedef void (*btf_trace_console)(void *, const char *, size_t); + +struct prb_desc; + +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 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 prb_data_ring { + unsigned int size_bits; + char *data; + atomic_long_t head_lpos; + atomic_long_t tail_lpos; }; -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 printk_ringbuffer { + struct prb_desc_ring desc_ring; + struct prb_data_ring text_data_ring; + atomic_long_t fail; }; -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 prb_data_blk_lpos { + unsigned long begin; + unsigned long next; }; -struct tcp_fastopen_cookie { - __le64 val[2]; - s8 len; - bool exp; +struct prb_desc { + atomic_long_t state_var; + struct prb_data_blk_lpos text_blk_lpos; }; -struct tcp_fastopen_request { - struct tcp_fastopen_cookie cookie; - struct msghdr *data; - size_t size; - int copied; - struct ubuf_info *uarg; +struct dev_printk_info { + char subsystem[16]; + char device[48]; }; -struct inet6_skb_parm { - int iif; - __be16 ra; - __u16 dst0; - __u16 srcrt; - __u16 dst1; - __u16 lastopt; - __u16 nhoff; - __u16 flags; - __u16 frag_max_size; - __u16 srhoff; +struct 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 tcp_skb_cb { - __u32 seq; - __u32 end_seq; - union { - __u32 tcp_tw_isn; - struct { - u16 tcp_gso_segs; - u16 tcp_gso_size; - }; - }; - __u8 tcp_flags; - __u8 sacked; - __u8 ip_dsfield; - __u8 txstamp_ack: 1; - __u8 eor: 1; - __u8 has_rxtstamp: 1; - __u8 unused: 5; - __u32 ack_seq; - union { - struct { - __u32 is_app_limited: 1; - __u32 delivered_ce: 20; - __u32 unused: 11; - __u32 delivered; - u64 first_tx_mstamp; - u64 delivered_mstamp; - } tx; - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - } header; - }; +struct printk_buffers { + char outbuf[2048]; + char scratchbuf[1024]; }; -struct raw_hashinfo { - spinlock_t lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct hlist_head ht[256]; +struct console_cmdline { + char name[16]; + int index; + bool user_specified; + char *options; }; -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, +typedef struct { + seqcount_t seqcount; +} seqcount_latch_t; + +struct latched_seq { + seqcount_latch_t latch; + u64 val[2]; }; -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 devkmsg_log_masks { + DEVKMSG_LOG_MASK_ON = 1, + DEVKMSG_LOG_MASK_OFF = 2, + DEVKMSG_LOG_MASK_LOCK = 4, }; -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 printk_info_flags { + LOG_NEWLINE = 2, + LOG_CONT = 8, }; -enum { - XFRM_POLICY_IN = 0, - XFRM_POLICY_OUT = 1, - XFRM_POLICY_FWD = 2, - XFRM_POLICY_MASK = 3, - XFRM_POLICY_MAX = 3, +enum cons_flags { + CON_PRINTBUFFER = 1, + CON_CONSDEV = 2, + CON_ENABLED = 4, + CON_BOOT = 8, + CON_ANYTIME = 16, + CON_BRL = 32, + CON_EXTENDED = 64, + CON_SUSPENDED = 128, + CON_NBCON = 256, }; -enum { - XFRM_DEV_OFFLOAD_UNSPECIFIED = 0, - XFRM_DEV_OFFLOAD_CRYPTO = 1, - XFRM_DEV_OFFLOAD_PACKET = 2, +enum con_msg_format_flags { + MSG_FORMAT_DEFAULT = 0, + MSG_FORMAT_SYSLOG = 1, }; -struct icmp6_filter { - __u32 data[8]; +enum con_flush_mode { + CONSOLE_FLUSH_PENDING = 0, + CONSOLE_REPLAY_ALL = 1, }; -struct raw6_sock { - struct inet_sock inet; - __u32 checksum; - __u32 offset; - struct icmp6_filter filter; - __u32 ip6mr_table; - struct ipv6_pinfo inet6; +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 icmpv6_echo { - __be16 identifier; - __be16 sequence; +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 icmpv6_nd_advt { - __u32 reserved: 5; - __u32 override: 1; - __u32 solicited: 1; - __u32 router: 1; - __u32 reserved2: 24; +struct trace_event_raw_console { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -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 trace_event_data_offsets_console { + u32 msg; }; -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 printk_record { + struct printk_info *info; + char *text_buf; + unsigned int text_buf_size; }; -struct xfrm_offload { - struct { - __u32 low; - __u32 hi; - } seq; - __u32 flags; - __u32 status; - __u8 proto; - __u8 inner_ipproto; +struct prb_reserved_entry { + struct printk_ringbuffer *rb; + unsigned long irqflags; + unsigned long id; + unsigned int text_space; }; -struct sec_path { - int len; - int olen; - int verified_cnt; - struct xfrm_state *xvec[6]; - struct xfrm_offload ovec[1]; +struct printk_message { + struct printk_buffers *pbufs; + unsigned int outbuf_len; + u64 seq; + unsigned long dropped; }; -struct ipcm6_cookie { - struct sockcm_cookie sockc; - __s16 hlimit; - __s16 tclass; - __u16 gso_size; - __s8 dontfrag; - struct ipv6_txoptions *opt; +struct devkmsg_user { + atomic64_t seq; + struct ratelimit_state rs; + struct mutex lock; + struct printk_buffers pbufs; }; -struct raw_iter_state { - struct seq_net_private p; - int bucket; +struct kmsg_dump_iter { + u64 cur_seq; + u64 next_seq; }; -struct raw6_frag_vec { - struct msghdr *msg; - int hlen; - char c[4]; -}; +typedef void (*btf_trace_timer_init)(void *, struct timer_list *); -struct xdr_skb_reader { - struct sk_buff *skb; - unsigned int offset; - size_t count; - __wsum csum; -}; +typedef void (*btf_trace_timer_start)(void *, struct timer_list *, unsigned long, unsigned int); -typedef size_t (*xdr_skb_read_actor)(struct xdr_skb_reader *, void *, size_t); +typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, unsigned long); -typedef __be32 rpc_fraghdr; +typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *); -struct krb5_ctx; +typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *); -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 *); +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 *); + +struct itimerspec64; + +typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, unsigned long long); + +struct itimerspec64 { + struct timespec64 it_interval; + struct timespec64 it_value; }; -struct crypto_sync_skcipher; +typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, unsigned long long); -struct crypto_ahash; +typedef void (*btf_trace_tick_stop)(void *, int, int); -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 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]; }; -struct crypto_skcipher { - unsigned int reqsize; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct crypto_tfm base; +struct trace_print_flags { + unsigned long mask; + const char *name; }; -struct crypto_sync_skcipher { - struct crypto_skcipher base; +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 ahash_request; +struct trace_event_raw_timer_class { + struct trace_entry ent; + void *timer; + char __data[0]; +}; -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 statesize; - unsigned int reqsize; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct crypto_tfm base; +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 ahash_request { - struct crypto_async_request base; - unsigned int nbytes; - struct scatterlist *src; - u8 *result; - void *priv; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - void *__ctx[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]; }; -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, +struct trace_event_raw_hrtimer_init { + struct trace_entry ent; + void *hrtimer; + clockid_t clockid; + enum hrtimer_mode mode; + char __data[0]; }; -enum seal_alg { - SEAL_ALG_NONE = 65535, - SEAL_ALG_DES = 0, - SEAL_ALG_1 = 1, - SEAL_ALG_DES3KD = 2, +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 xdp_ring; +struct trace_event_raw_hrtimer_expire_entry { + struct trace_entry ent; + void *hrtimer; + s64 now; + void *function; + char __data[0]; +}; -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 trace_event_raw_hrtimer_class { + struct trace_entry ent; + void *hrtimer; + char __data[0]; }; -struct xdp_ring { - u32 producer; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 pad1; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 consumer; - 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: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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 xdp_desc { - __u64 addr; - __u32 len; - __u32 options; +struct trace_event_raw_itimer_expire { + struct trace_entry ent; + int which; + pid_t pid; + unsigned long long now; + char __data[0]; }; -struct xdp_rxtx_ring { - struct xdp_ring ptrs; - struct xdp_desc desc[0]; +struct trace_event_raw_tick_stop { + struct trace_entry ent; + int success; + int dependency; + char __data[0]; }; -struct xdp_umem_ring { - struct xdp_ring ptrs; - u64 desc[0]; +struct process_timer { + struct timer_list timer; + struct task_struct *task; }; -struct xdp_umem; +struct softirq_action { + void (*action)(struct softirq_action *); +}; -struct xdp_buff_xsk; +struct trace_event_data_offsets_timer_class {}; -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; - 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; +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 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 syscore_ops { + struct list_head node; + int (*suspend)(); + void (*resume)(); + void (*shutdown)(); }; -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 bpf_empty_prog_array { + struct bpf_prog_array hdr; + struct bpf_prog *null_prog; }; -struct xdp_sock { - struct sock sk; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct xsk_queue *rx; - struct net_device *dev; - struct xdp_umem *umem; - struct list_head flush_node; - struct xsk_buff_pool *pool; - u16 queue_id; - bool zc; - 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 netdev_xdp_act { - NETDEV_XDP_ACT_BASIC = 1, - NETDEV_XDP_ACT_REDIRECT = 2, - NETDEV_XDP_ACT_NDO_XMIT = 4, - NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, - NETDEV_XDP_ACT_HW_OFFLOAD = 16, - NETDEV_XDP_ACT_RX_SG = 32, - NETDEV_XDP_ACT_NDO_XMIT_SG = 64, - NETDEV_XDP_ACT_MASK = 127, -}; - -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; -}; - -enum { - Root_NFS = 255, - Root_CIFS = 254, - Root_Generic = 253, - Root_RAM0 = 1048576, -}; - -typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *); - -typedef void (*btf_trace_irq_handler_exit)(void *, int, struct irqaction *, int); - -typedef void (*btf_trace_softirq_entry)(void *, unsigned int); - -typedef void (*btf_trace_softirq_exit)(void *, unsigned int); - -typedef void (*btf_trace_softirq_raise)(void *, unsigned int); - -typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *); - -typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); - -typedef struct { - unsigned int __softirq_pending; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -} irq_cpustat_t; - -struct tasklet_head { - struct tasklet_struct *head; - struct tasklet_struct **tail; -}; - -enum { - TASKLET_STATE_SCHED = 0, - TASKLET_STATE_RUN = 1, +struct bpf_id_pair { + u32 old; + u32 cur; }; -struct trace_event_raw_irq_handler_entry { - struct trace_entry ent; - int irq; - u32 __data_loc_name; - char __data[0]; +struct bpf_idmap { + u32 tmp_id_gen; + struct bpf_id_pair map[600]; }; -struct trace_event_raw_irq_handler_exit { - struct trace_entry ent; - int irq; - int ret; - char __data[0]; +struct bpf_idset { + u32 count; + u32 ids[600]; }; -struct trace_event_raw_softirq { - struct trace_entry ent; - unsigned int vec; - char __data[0]; +struct bpf_verifier_log { + u64 start_pos; + u64 end_pos; + char __attribute__((btf_type_tag("user"))) *ubuf; + u32 level; + u32 len_total; + u32 len_max; + char kbuf[1024]; }; -struct trace_event_raw_tasklet { - struct trace_entry ent; - void *tasklet; - void *func; - char __data[0]; +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_cb; + bool is_async_cb; + bool is_exception_cb; }; -struct trace_event_data_offsets_irq_handler_entry { - u32 name; +struct backtrack_state { + struct bpf_verifier_env *env; + u32 frame; + u32 reg_masks[8]; + u64 stack_masks[8]; }; -struct trace_event_data_offsets_irq_handler_exit {}; - -struct trace_event_data_offsets_softirq {}; - -struct trace_event_data_offsets_tasklet {}; +typedef sockptr_t bpfptr_t; -typedef void (*swap_func_t)(void *, void *, int); +struct bpf_verifier_ops; -enum desc_state { - desc_miss = -1, - desc_reserved = 0, - desc_committed = 1, - desc_finalized = 2, - desc_reusable = 3, -}; +struct bpf_verifier_stack_elem; -struct prb_data_blk_lpos { - unsigned long begin; - unsigned long next; -}; +struct bpf_verifier_state; -struct prb_desc { - atomic_long_t state_var; - struct prb_data_blk_lpos text_blk_lpos; -}; +struct bpf_verifier_state_list; -struct printk_info; +struct bpf_insn_aux_data; -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 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; + u32 hidden_subprog_cnt; + int exception_callback_subprog; + bool explore_alu_limits; + bool allow_ptr_leaks; + bool allow_uninit_stack; + bool bpf_capable; + bool bypass_spec_v1; + bool bypass_spec_v4; + bool seen_direct_write; + bool seen_exception; + struct bpf_insn_aux_data *insn_aux_data; + const struct bpf_line_info *prev_linfo; + struct bpf_verifier_log log; + struct bpf_subprog_info subprog_info[258]; + union { + struct bpf_idmap idmap_scratch; + struct bpf_idset idset_scratch; + }; + struct { + int *insn_state; + int *insn_stack; + int cur_stack; + } cfg; + struct backtrack_state bt; + u32 pass_cnt; + u32 subprog_cnt; + u32 prev_insn_processed; + u32 insn_processed; + u32 prev_jmps_processed; + u32 jmps_processed; + u64 verification_time; + u32 max_states_per_insn; + u32 total_states; + u32 peak_states; + u32 longest_mark_read_walk; + bpfptr_t fd_array; + u32 scratched_regs; + u64 scratched_stack_slots; + u64 prev_log_pos; + u64 prev_insn_print_pos; + char tmp_str_buf[320]; }; -struct dev_printk_info { - char subsystem[16]; - char device[48]; +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, }; -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; +enum bpf_access_type { + BPF_READ = 1, + BPF_WRITE = 2, }; -struct prb_data_ring { - unsigned int size_bits; - char *data; - atomic_long_t head_lpos; - atomic_long_t tail_lpos; -}; +struct bpf_func_proto; -struct prb_data_block { - unsigned long id; - char data[0]; -}; +struct bpf_insn_access_aux; -struct printk_ringbuffer { - struct prb_desc_ring desc_ring; - struct prb_data_ring text_data_ring; - atomic_long_t fail; -}; +struct bpf_reg_state; -struct prb_reserved_entry { - struct printk_ringbuffer *rb; - unsigned long irqflags; - unsigned long id; - unsigned int text_space; +struct bpf_verifier_ops { + const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *); + bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *); + int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *); + int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *); + u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); + int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int); }; -struct printk_record { - struct printk_info *info; - char *text_buf; - unsigned int text_buf_size; +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 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; +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 sigevent { - sigval_t sigev_value; - int sigev_signo; - int sigev_notify; +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 { - int _pad[12]; - int _tid; struct { - void (*_function)(sigval_t); - void *_attribute; - } _sigev_thread; - } _sigev_un; + enum bpf_arg_type arg1_type; + enum bpf_arg_type arg2_type; + enum bpf_arg_type arg3_type; + enum bpf_arg_type arg4_type; + enum bpf_arg_type arg5_type; + }; + enum bpf_arg_type arg_type[5]; + }; + union { + struct { + u32 *arg1_btf_id; + u32 *arg2_btf_id; + u32 *arg3_btf_id; + u32 *arg4_btf_id; + u32 *arg5_btf_id; + }; + u32 *arg_btf_id[5]; + struct { + size_t arg1_size; + size_t arg2_size; + size_t arg3_size; + size_t arg4_size; + size_t arg5_size; + }; + size_t arg_size[5]; + }; + int *ret_btf_id; + bool (*allowed)(const struct bpf_prog *); }; -struct compat_sigevent { - compat_sigval_t sigev_value; - compat_int_t sigev_signo; - compat_int_t sigev_notify; +struct bpf_insn_access_aux { + enum bpf_reg_type reg_type; union { - compat_int_t _pad[13]; - compat_int_t _tid; + int ctx_field_size; struct { - compat_uptr_t _function; - compat_uptr_t _attribute; - } _sigev_thread; - } _sigev_un; + struct btf *btf; + u32 btf_id; + }; + }; + struct bpf_verifier_log *log; }; -typedef s64 int64_t; - -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; +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, }; -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; +enum bpf_iter_state { + BPF_ITER_STATE_INVALID = 0, + BPF_ITER_STATE_ACTIVE = 1, + BPF_ITER_STATE_DRAINED = 2, }; -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 tnum { + u64 value; + u64 mask; }; -struct stat_node { - struct rb_node node; - void *stat; +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 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 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 dyn_event { - struct list_head list; - struct dyn_event_operations *ops; +struct bpf_active_lock { + void *ptr; + u32 id; }; -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, -}; +struct bpf_idx_pair; -enum { - TP_ERR_FILE_NOT_FOUND = 0, - TP_ERR_NO_REGULAR_FILE = 1, - TP_ERR_BAD_REFCNT = 2, - TP_ERR_REFCNT_OPEN_BRACE = 3, - TP_ERR_BAD_REFCNT_SUFFIX = 4, - TP_ERR_BAD_UPROBE_OFFS = 5, - TP_ERR_BAD_MAXACT_TYPE = 6, - TP_ERR_BAD_MAXACT = 7, - TP_ERR_MAXACT_TOO_BIG = 8, - TP_ERR_BAD_PROBE_ADDR = 9, - TP_ERR_BAD_RETPROBE = 10, - TP_ERR_NO_TRACEPOINT = 11, - TP_ERR_BAD_ADDR_SUFFIX = 12, - TP_ERR_NO_GROUP_NAME = 13, - TP_ERR_GROUP_TOO_LONG = 14, - TP_ERR_BAD_GROUP_NAME = 15, - TP_ERR_NO_EVENT_NAME = 16, - TP_ERR_EVENT_TOO_LONG = 17, - TP_ERR_BAD_EVENT_NAME = 18, - TP_ERR_EVENT_EXIST = 19, - TP_ERR_RETVAL_ON_PROBE = 20, - TP_ERR_NO_RETVAL = 21, - TP_ERR_BAD_STACK_NUM = 22, - TP_ERR_BAD_ARG_NUM = 23, - TP_ERR_BAD_VAR = 24, - TP_ERR_BAD_REG_NAME = 25, - TP_ERR_BAD_MEM_ADDR = 26, - TP_ERR_BAD_IMM = 27, - TP_ERR_IMMSTR_NO_CLOSE = 28, - TP_ERR_FILE_ON_KPROBE = 29, - TP_ERR_BAD_FILE_OFFS = 30, - TP_ERR_SYM_ON_UPROBE = 31, - TP_ERR_TOO_MANY_OPS = 32, - TP_ERR_DEREF_NEED_BRACE = 33, - TP_ERR_BAD_DEREF_OFFS = 34, - TP_ERR_DEREF_OPEN_BRACE = 35, - TP_ERR_COMM_CANT_DEREF = 36, - TP_ERR_BAD_FETCH_ARG = 37, - TP_ERR_ARRAY_NO_CLOSE = 38, - TP_ERR_BAD_ARRAY_SUFFIX = 39, - TP_ERR_BAD_ARRAY_NUM = 40, - TP_ERR_ARRAY_TOO_BIG = 41, - TP_ERR_BAD_TYPE = 42, - TP_ERR_BAD_STRING = 43, - TP_ERR_BAD_SYMSTRING = 44, - TP_ERR_BAD_BITFIELD = 45, - TP_ERR_ARG_NAME_TOO_LONG = 46, - TP_ERR_NO_ARG_NAME = 47, - TP_ERR_BAD_ARG_NAME = 48, - TP_ERR_USED_ARG_NAME = 49, - TP_ERR_ARG_TOO_LONG = 50, - TP_ERR_NO_ARG_BODY = 51, - TP_ERR_BAD_INSN_BNDRY = 52, - TP_ERR_FAIL_REG_PROBE = 53, - TP_ERR_DIFF_PROBE_TYPE = 54, - TP_ERR_DIFF_ARG_TYPE = 55, - TP_ERR_SAME_PROBE = 56, - TP_ERR_NO_EVENT_INFO = 57, - TP_ERR_BAD_ATTACH_EVENT = 58, - TP_ERR_BAD_ATTACH_ARG = 59, - TP_ERR_NO_EP_FILTER = 60, - TP_ERR_NOSUP_BTFARG = 61, - TP_ERR_NO_BTFARG = 62, - TP_ERR_NO_BTF_ENTRY = 63, - TP_ERR_BAD_VAR_ARGS = 64, - TP_ERR_NOFENTRY_ARGS = 65, - TP_ERR_DOUBLE_ARGS = 66, - TP_ERR_ARGS_2LONG = 67, +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; + bool used_as_loop_entry; + u32 first_insn_idx; + u32 last_insn_idx; + struct bpf_verifier_state *loop_entry; + struct bpf_idx_pair *jmp_history; + u32 jmp_history_cnt; + u32 dfs_depth; + u32 callback_unroll_depth; }; -enum probe_print_type { - PROBE_PRINT_NORMAL = 0, - PROBE_PRINT_RETURN = 1, - PROBE_PRINT_EVENT = 2, -}; +struct bpf_reference_state; -enum trace_iterator_flags { - TRACE_ITER_PRINT_PARENT = 1, - TRACE_ITER_SYM_OFFSET = 2, - TRACE_ITER_SYM_ADDR = 4, - TRACE_ITER_VERBOSE = 8, - TRACE_ITER_RAW = 16, - TRACE_ITER_HEX = 32, - TRACE_ITER_BIN = 64, - TRACE_ITER_BLOCK = 128, - TRACE_ITER_FIELDS = 256, - TRACE_ITER_PRINTK = 512, - TRACE_ITER_ANNOTATE = 1024, - TRACE_ITER_USERSTACKTRACE = 2048, - TRACE_ITER_SYM_USEROBJ = 4096, - TRACE_ITER_PRINTK_MSGONLY = 8192, - TRACE_ITER_CONTEXT_INFO = 16384, - TRACE_ITER_LATENCY_FMT = 32768, - TRACE_ITER_RECORD_CMD = 65536, - TRACE_ITER_RECORD_TGID = 131072, - TRACE_ITER_OVERWRITE = 262144, - TRACE_ITER_STOP_ON_FREE = 524288, - TRACE_ITER_IRQ_INFO = 1048576, - TRACE_ITER_MARKERS = 2097152, - TRACE_ITER_EVENT_FORK = 4194304, - TRACE_ITER_PAUSE_ON_TRACE = 8388608, - TRACE_ITER_HASH_PTR = 16777216, - TRACE_ITER_FUNCTION = 33554432, - TRACE_ITER_FUNC_FORK = 67108864, - TRACE_ITER_DISPLAY_GRAPH = 134217728, - TRACE_ITER_STACKTRACE = 268435456, -}; +struct bpf_stack_state; -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, - FILTER_STACKTRACE = 8, +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; + bool in_exception_callback_fn; + u32 callback_depth; + int acquired_refs; + struct bpf_reference_state *refs; + int allocated_stack; + struct bpf_stack_state *stack; }; -struct event_file_link { - struct trace_event_file *file; - struct list_head list; +struct bpf_reference_state { + int id; + int insn_idx; + int callback_ref; }; -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 bpf_stack_state { + struct bpf_reg_state spilled_ptr; + u8 slot_type[8]; }; -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 bpf_idx_pair { + u32 prev_idx; + u32 idx; }; -struct trace_fprobe { - struct dyn_event devent; - struct fprobe fp; - const char *symbol; - struct tracepoint *tpoint; - struct module *mod; - struct trace_probe tp; +struct bpf_verifier_state_list { + struct bpf_verifier_state state; + struct bpf_verifier_state_list *next; + int miss_cnt; + int hit_cnt; }; -struct trace_uprobe_filter { - rwlock_t rwlock; - int nr_systemwide; - struct list_head perf_events; +struct bpf_loop_inline_state { + unsigned int initialized: 1; + unsigned int fit_for_inline: 1; + u32 callback_subprogno; }; -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 btf_struct_meta; -struct fetch_insn { - enum fetch_op op; +struct bpf_insn_aux_data { union { - unsigned int param; + enum bpf_reg_type ptr_type; + unsigned long map_ptr_state; + s32 call_imm; + u32 alu_limit; struct { - unsigned int size; - int offset; + u32 map_index; + u32 map_off; }; struct { - unsigned char basesize; - unsigned char lshift; - unsigned char rshift; - }; - unsigned long immediate; - void *data; + enum bpf_reg_type reg_type; + union { + struct { + struct btf *btf; + u32 btf_id; + }; + u32 mem_size; + }; + } btf_var; + struct bpf_loop_inline_state loop_inline_state; + }; + union { + u64 obj_new_size; + u64 insert_off; }; + struct btf_struct_meta *kptr_struct_meta; + u64 map_key_state; + int ctx_field_size; + u32 seen; + bool sanitize_stack_spill; + bool zext_dst; + bool storage_get_func_atomic; + bool is_iter_next; + bool call_with_percpu_alloc_ptr; + u8 alu_state; + unsigned int orig_idx; + bool jmp_point; + bool prune_point; + bool force_checkpoint; + bool calls_callback; }; -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 btf_struct_meta { + u32 btf_id; + struct btf_record *record; }; -struct fexit_trace_entry_head { - struct trace_entry ent; - unsigned long func; - unsigned long ret_ip; -}; +typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32); -struct fentry_trace_entry_head { - struct trace_entry ent; - unsigned long ip; -}; +typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int); -struct __find_tracepoint_cb_data { - const char *tp_name; - struct tracepoint *tpoint; -}; +typedef void (*btf_trace_xdp_redirect)(void *, const struct net_device *, const struct bpf_prog *, const void *, int, enum bpf_map_type, u32, u32); -struct btf_param; +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); -struct traceprobe_parse_context { - struct trace_event_call *event; - const struct btf_param *params; - s32 nr_params; - const char *funcname; - unsigned int flags; - int offset; -}; +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); -struct btf_param { - __u32 name_off; - __u32 type; -}; +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); -struct tp_module { - struct list_head list; - struct module *mod; -}; +struct xdp_cpumap_stats; -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; -}; +typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); -struct cgroup_iter_priv { - struct cgroup_subsys_state *start_css; - bool visited_all; - bool terminate; - int order; +struct xdp_cpumap_stats { + unsigned int redirect; + unsigned int pass; + unsigned int drop; }; -struct bpf_iter__cgroup { - union { - struct bpf_iter_meta *meta; - }; - union { - struct cgroup *cgroup; +typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int); + +typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int); + +struct xdp_mem_allocator; + +typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *); + +struct xdp_mem_allocator { + struct xdp_mem_info mem; + union { + void *allocator; + struct page_pool *page_pool; }; + struct rhash_head node; + struct callback_head rcu; }; -typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *); +typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *); -typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *); +typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *); -struct lru_rotate { - local_lock_t lock; - struct folio_batch fbatch; -}; +typedef void (*btf_trace_bpf_xdp_link_attach_failed)(void *, const char *); -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 bpf_mem_caches; -enum vm_event_item { - PGPGIN = 0, - PGPGOUT = 1, - PSWPIN = 2, - PSWPOUT = 3, - PGALLOC_DMA32 = 4, - PGALLOC_NORMAL = 5, - PGALLOC_MOVABLE = 6, - ALLOCSTALL_DMA32 = 7, - ALLOCSTALL_NORMAL = 8, - ALLOCSTALL_MOVABLE = 9, - PGSCAN_SKIP_DMA32 = 10, - PGSCAN_SKIP_NORMAL = 11, - PGSCAN_SKIP_MOVABLE = 12, - PGFREE = 13, - PGACTIVATE = 14, - PGDEACTIVATE = 15, - PGLAZYFREE = 16, - PGFAULT = 17, - PGMAJFAULT = 18, - PGLAZYFREED = 19, - PGREFILL = 20, - PGREUSE = 21, - PGSTEAL_KSWAPD = 22, - PGSTEAL_DIRECT = 23, - PGSTEAL_KHUGEPAGED = 24, - PGDEMOTE_KSWAPD = 25, - PGDEMOTE_DIRECT = 26, - PGDEMOTE_KHUGEPAGED = 27, - PGSCAN_KSWAPD = 28, - PGSCAN_DIRECT = 29, - PGSCAN_KHUGEPAGED = 30, - PGSCAN_DIRECT_THROTTLE = 31, - PGSCAN_ANON = 32, - PGSCAN_FILE = 33, - PGSTEAL_ANON = 34, - PGSTEAL_FILE = 35, - PGINODESTEAL = 36, - SLABS_SCANNED = 37, - KSWAPD_INODESTEAL = 38, - KSWAPD_LOW_WMARK_HIT_QUICKLY = 39, - KSWAPD_HIGH_WMARK_HIT_QUICKLY = 40, - PAGEOUTRUN = 41, - PGROTATED = 42, - DROP_PAGECACHE = 43, - DROP_SLAB = 44, - OOM_KILL = 45, - PGMIGRATE_SUCCESS = 46, - PGMIGRATE_FAIL = 47, - THP_MIGRATION_SUCCESS = 48, - THP_MIGRATION_FAIL = 49, - THP_MIGRATION_SPLIT = 50, - COMPACTMIGRATE_SCANNED = 51, - COMPACTFREE_SCANNED = 52, - COMPACTISOLATED = 53, - COMPACTSTALL = 54, - COMPACTFAIL = 55, - COMPACTSUCCESS = 56, - KCOMPACTD_WAKE = 57, - KCOMPACTD_MIGRATE_SCANNED = 58, - KCOMPACTD_FREE_SCANNED = 59, - HTLB_BUDDY_PGALLOC = 60, - HTLB_BUDDY_PGALLOC_FAIL = 61, - UNEVICTABLE_PGCULLED = 62, - UNEVICTABLE_PGSCANNED = 63, - UNEVICTABLE_PGRESCUED = 64, - UNEVICTABLE_PGMLOCKED = 65, - UNEVICTABLE_PGMUNLOCKED = 66, - UNEVICTABLE_PGCLEARED = 67, - UNEVICTABLE_PGSTRANDED = 68, - BALLOON_INFLATE = 69, - BALLOON_DEFLATE = 70, - BALLOON_MIGRATE = 71, - SWAP_RA = 72, - SWAP_RA_HIT = 73, - NR_VM_EVENT_ITEMS = 74, +struct bpf_mem_cache; + +struct bpf_mem_alloc { + struct bpf_mem_caches __attribute__((btf_type_tag("percpu"))) *caches; + struct bpf_mem_cache __attribute__((btf_type_tag("percpu"))) *cache; + bool percpu; + struct work_struct work; }; -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, +struct bpf_mem_cache { + struct llist_head free_llist; + local_t active; + struct llist_head free_llist_extra; + struct irq_work refill_work; + struct obj_cgroup *objcg; + int unit_size; + int free_cnt; + int low_watermark; + int high_watermark; + int batch; + int percpu_size; + bool draining; + struct bpf_mem_cache *tgt; + struct llist_head free_by_rcu; + struct llist_node *free_by_rcu_tail; + struct llist_head waiting_for_gp; + struct llist_node *waiting_for_gp_tail; + struct callback_head rcu; + atomic_t call_rcu_in_progress; + struct llist_head free_llist_extra_rcu; + struct llist_head free_by_rcu_ttrace; + struct llist_head waiting_for_gp_ttrace; + struct callback_head rcu_ttrace; + atomic_t call_rcu_ttrace_in_progress; }; -enum page_memcg_data_flags { - MEMCG_DATA_OBJCGS = 1, - MEMCG_DATA_KMEM = 2, - __NR_MEMCG_DATA_FLAGS = 4, +struct bpf_mem_caches { + struct bpf_mem_cache cache[11]; }; -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 rnd_state { + __u32 s1; + __u32 s2; + __u32 s3; + __u32 s4; }; -struct trace_event_raw_mm_lru_activate { - struct trace_entry ent; - struct folio *folio; - unsigned long pfn; - char __data[0]; +struct bpf_prog_dummy { + struct bpf_prog prog; }; -struct encoded_page; +enum cgroup_bpf_attach_type { + CGROUP_BPF_ATTACH_TYPE_INVALID = -1, + CGROUP_INET_INGRESS = 0, + CGROUP_INET_EGRESS = 1, + CGROUP_INET_SOCK_CREATE = 2, + CGROUP_SOCK_OPS = 3, + CGROUP_DEVICE = 4, + CGROUP_INET4_BIND = 5, + CGROUP_INET6_BIND = 6, + CGROUP_INET4_CONNECT = 7, + CGROUP_INET6_CONNECT = 8, + CGROUP_UNIX_CONNECT = 9, + CGROUP_INET4_POST_BIND = 10, + CGROUP_INET6_POST_BIND = 11, + CGROUP_UDP4_SENDMSG = 12, + CGROUP_UDP6_SENDMSG = 13, + CGROUP_UNIX_SENDMSG = 14, + CGROUP_SYSCTL = 15, + CGROUP_UDP4_RECVMSG = 16, + CGROUP_UDP6_RECVMSG = 17, + CGROUP_UNIX_RECVMSG = 18, + CGROUP_GETSOCKOPT = 19, + CGROUP_SETSOCKOPT = 20, + CGROUP_INET4_GETPEERNAME = 21, + CGROUP_INET6_GETPEERNAME = 22, + CGROUP_UNIX_GETPEERNAME = 23, + CGROUP_INET4_GETSOCKNAME = 24, + CGROUP_INET6_GETSOCKNAME = 25, + CGROUP_UNIX_GETSOCKNAME = 26, + CGROUP_INET_SOCK_RELEASE = 27, + CGROUP_LSM_START = 28, + CGROUP_LSM_END = 27, + MAX_CGROUP_BPF_ATTACH_TYPE = 28, +}; -struct trace_event_data_offsets_mm_lru_insertion {}; +enum bpf_text_poke_type { + BPF_MOD_CALL = 0, + BPF_MOD_JUMP = 1, +}; -struct trace_event_data_offsets_mm_lru_activate {}; +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, +}; -typedef void (*move_fn_t)(struct lruvec *, struct folio *); +typedef u64 (*btf_bpf_user_rnd_u32)(); -typedef union { - struct page **pages; - struct folio **folios; - struct encoded_page **encoded_pages; -} release_pages_arg; +typedef u64 (*btf_bpf_get_raw_cpu_id)(); -struct mmu_notifier_ops; +struct bpf_array_aux; -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 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 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 bpf_array_aux { + struct list_head poke_progs; + struct bpf_map *map; + struct mutex poke_mutex; + struct work_struct work; }; -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 trace_event_raw_xdp_exception { + struct trace_entry ent; + int prog_id; + u32 act; + int ifindex; + char __data[0]; }; -struct interval_tree_node { - struct rb_node rb; - unsigned long start; - unsigned long last; - unsigned long __subtree_last; +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 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 _bpf_dtab_netdev { + struct net_device *dev; }; -struct mmu_interval_notifier_ops { - bool (*invalidate)(struct mmu_interval_notifier *, const struct mmu_notifier_range *, unsigned long); +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 core_vma_metadata; - -struct coredump_params { - const kernel_siginfo_t *siginfo; - struct file *file; - unsigned long limit; - unsigned long mm_flags; +struct trace_event_raw_xdp_cpumap_kthread { + struct trace_entry ent; + int map_id; + u32 act; 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; + unsigned int drops; + unsigned int processed; + int sched; + unsigned int xdp_pass; + unsigned int xdp_drop; + unsigned int xdp_redirect; + char __data[0]; }; -struct core_vma_metadata { - unsigned long start; - unsigned long end; - unsigned long flags; - unsigned long dump_size; - unsigned long pgoff; - struct file *file; +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]; }; -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_xdp_devmap_xmit { + struct trace_entry ent; + int from_ifindex; + u32 act; + int to_ifindex; + int drops; + int sent; + int err; + char __data[0]; }; -enum { - FOLL_WRITE = 1, - FOLL_GET = 2, - FOLL_DUMP = 4, - FOLL_FORCE = 8, - FOLL_NOWAIT = 16, - FOLL_NOFAULT = 32, - FOLL_HWPOISON = 64, - FOLL_ANON = 128, - FOLL_LONGTERM = 256, - FOLL_SPLIT_PMD = 512, - FOLL_PCI_P2PDMA = 1024, - FOLL_INTERRUPTIBLE = 2048, - FOLL_HONOR_NUMA_FAULT = 4096, +struct 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]; }; -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, +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]; }; -typedef unsigned short ushort; - -struct mmu_gather_batch { - struct mmu_gather_batch *next; - unsigned int nr; - unsigned int max; - struct encoded_page *encoded_pages[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 mmu_gather { - struct mm_struct *mm; - unsigned long start; - unsigned long end; - unsigned int fullmm: 1; - unsigned int need_flush_all: 1; - unsigned int freed_tables: 1; - unsigned int delayed_rmap: 1; - unsigned int cleared_ptes: 1; - unsigned int cleared_pmds: 1; - unsigned int cleared_puds: 1; - unsigned int cleared_p4ds: 1; - unsigned int vma_exec: 1; - unsigned int vma_huge: 1; - unsigned int vma_pfn: 1; - unsigned int batch_count; - struct mmu_gather_batch *active; - struct mmu_gather_batch local; - struct page *__pages[8]; +struct trace_event_raw_bpf_xdp_link_attach_failed { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -struct open_flags { - int open_flag; - umode_t mode; - int acc_mode; - int intent; - int lookup_flags; +struct trace_event_data_offsets_bpf_xdp_link_attach_failed { + u32 msg; }; -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; -}; +typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long); -struct epitem; +struct trace_event_data_offsets_xdp_exception {}; -struct eventpoll { - struct mutex mtx; - wait_queue_head_t wq; - wait_queue_head_t poll_wait; - struct list_head rdllist; - rwlock_t lock; - struct rb_root_cached rbr; - struct epitem *ovflist; - struct wakeup_source *ws; - struct user_struct *user; - struct file *file; - u64 gen; - struct hlist_head refs; - refcount_t refcount; - unsigned int napi_id; -}; +struct trace_event_data_offsets_xdp_bulk_tx {}; -struct epoll_filefd { - struct file *file; - int fd; -} __attribute__((packed)); +struct trace_event_data_offsets_xdp_redirect_template {}; -struct epoll_event { - __poll_t events; - __u64 data; -}; +struct trace_event_data_offsets_xdp_cpumap_kthread {}; -struct eppoll_entry; +struct trace_event_data_offsets_xdp_cpumap_enqueue {}; -struct epitem { - union { - struct rb_node rbn; - struct callback_head rcu; - }; - struct list_head rdllink; - struct epitem *next; - struct epoll_filefd ffd; - bool dying; - struct eppoll_entry *pwqlist; - struct eventpoll *ep; - struct hlist_node fllink; - struct wakeup_source __attribute__((btf_type_tag("rcu"))) *ws; - struct epoll_event event; -}; +struct trace_event_data_offsets_xdp_devmap_xmit {}; -struct eppoll_entry { - struct eppoll_entry *next; - struct epitem *base; - wait_queue_entry_t wait; - wait_queue_head_t *whead; -}; +struct trace_event_data_offsets_mem_disconnect {}; -struct epitems_head { - struct hlist_head epitems; - struct epitems_head *next; -}; +struct trace_event_data_offsets_mem_connect {}; -struct ep_pqueue { - poll_table pt; - struct epitem *epi; -}; +struct trace_event_data_offsets_mem_return_failed {}; -struct name_snapshot { - struct qstr name; - unsigned char inline_name[32]; +enum { + BPF_F_BROADCAST = 8, + BPF_F_EXCLUDE_INGRESS = 16, }; -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 bpf_dtab_netdev; + +struct bpf_dtab { + struct bpf_map map; + struct bpf_dtab_netdev __attribute__((btf_type_tag("rcu"))) **netdev_map; + struct list_head list; + struct hlist_head *dev_index_head; + spinlock_t index_lock; + unsigned int items; + u32 n_buckets; }; -struct dx_hash_info { - u32 hash; - u32 minor_hash; - int hash_version; - u32 *seed; +struct bpf_devmap_val { + __u32 ifindex; + union { + int fd; + __u32 id; + } bpf_prog; }; -struct xattr; +struct bpf_dtab_netdev { + struct net_device *dev; + struct hlist_node index_hlist; + struct bpf_prog *xdp_prog; + struct callback_head rcu; + unsigned int idx; + struct bpf_devmap_val val; +}; -typedef int (*initxattrs)(struct inode *, const struct xattr *, void *); +struct bpf_nh_params { + u32 nh_family; + union { + u32 ipv4_nh; + struct in6_addr ipv6_nh; + }; +}; -struct xattr { - const char *name; - void *value; - size_t value_len; +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; }; -enum layoutdriver_policy_flags { - PNFS_LAYOUTRET_ON_SETATTR = 1, - PNFS_LAYOUTRET_ON_ERROR = 2, - PNFS_READ_WHOLE_PAGE = 4, - PNFS_LAYOUTGET_ON_OPEN = 8, +enum zone_watermarks { + WMARK_MIN = 0, + WMARK_LOW = 1, + WMARK_HIGH = 2, + WMARK_PROMO = 3, + NR_WMARK = 4, }; -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 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, }; -typedef int wait_bit_action_f(struct wait_bit_key *, int); +enum migratetype { + MIGRATE_UNMOVABLE = 0, + MIGRATE_MOVABLE = 1, + MIGRATE_RECLAIMABLE = 2, + MIGRATE_PCPTYPES = 3, + MIGRATE_HIGHATOMIC = 3, + MIGRATE_TYPES = 4, +}; -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 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 nfs4_ds_server { - struct list_head list; - struct rpc_clnt *rpc_clnt; +enum pgt_entry { + NORMAL_PMD = 0, + HPAGE_PMD = 1, + NORMAL_PUD = 2, + HPAGE_PUD = 3, }; -struct nfs4_copy_state { - struct list_head copies; - struct list_head src_copies; - nfs4_stateid stateid; - struct completion completion; - uint64_t count; - struct nfs_writeverf verf; - int error; - int flags; - struct nfs4_state *parent_src_state; - struct nfs4_state *parent_dst_state; +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 bl_dev_msg { - int32_t status; - uint32_t major; - uint32_t minor; +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]; }; -struct nfs_netns_client; +struct hugepage_subpool; -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[3]; - struct nfs_netns_client *nfs_client; - spinlock_t nfs_client_lock; - ktime_t boot_time; - struct proc_dir_entry *proc_nfsfs; +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 nfs_netns_client { - struct kobject kobject; - struct kobject nfs_net_kobj; - struct net *net; - const char __attribute__((btf_type_tag("rcu"))) *identifier; +struct hugepage_subpool { + spinlock_t lock; + long count; + long max_hpages; + long used_hpages; + struct hstate *hstate; + long min_hpages; + long rsv_hpages; }; -struct nfs4_setclientid_res { - u64 clientid; - nfs4_verifier confirm; +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_UNBOUND_MAX_ACTIVE = 512, + WQ_DFL_ACTIVE = 256, }; -struct nfs4_op_map { - union { - unsigned long longs[2]; - u32 words[4]; - } u; +struct epitem; + +struct eventpoll { + struct mutex mtx; + wait_queue_head_t wq; + wait_queue_head_t poll_wait; + struct list_head rdllist; + rwlock_t lock; + struct rb_root_cached rbr; + struct epitem *ovflist; + struct wakeup_source *ws; + struct user_struct *user; + struct file *file; + u64 gen; + struct hlist_head refs; + refcount_t refcount; + unsigned int napi_id; }; -struct nfs41_state_protection { - u32 how; - struct nfs4_op_map enforce; - struct nfs4_op_map allow; +struct epoll_filefd { + struct file *file; + int fd; +} __attribute__((packed)); + +struct epoll_event { + __poll_t events; + __u64 data; }; -struct nfs41_exchange_id_res { - u64 clientid; - u32 seqid; - u32 flags; - struct nfs41_server_owner *server_owner; - struct nfs41_server_scope *server_scope; - struct nfs41_impl_id *impl_id; - struct nfs41_state_protection state_protect; +struct eppoll_entry; + +struct epitem { + union { + struct rb_node rbn; + struct callback_head rcu; + }; + struct list_head rdllink; + struct epitem *next; + struct epoll_filefd ffd; + bool dying; + struct eppoll_entry *pwqlist; + struct eventpoll *ep; + struct hlist_node fllink; + struct wakeup_source __attribute__((btf_type_tag("rcu"))) *ws; + struct epoll_event event; }; -enum p9_cache_bits { - CACHE_NONE = 0, - CACHE_FILE = 1, - CACHE_META = 2, - CACHE_WRITEBACK = 4, - CACHE_LOOSE = 8, - CACHE_FSCACHE = 128, +struct eppoll_entry { + struct eppoll_entry *next; + struct epitem *base; + wait_queue_entry_t wait; + wait_queue_head_t *whead; }; -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, - V9FS_NO_XATTR = 64, - V9FS_IGNORE_QV = 128, - V9FS_DIRECT_IO = 256, - V9FS_SYNC = 512, +struct epitems_head { + struct hlist_head epitems; + struct epitems_head *next; +}; + +struct ep_pqueue { + poll_table pt; + struct epitem *epi; }; enum netfs_read_from_hole { @@ -43971,49 +44090,59 @@ enum netfs_io_origin { NETFS_READ_FOR_WRITE = 2, } __attribute__((mode(byte))); -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 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, } __attribute__((mode(byte))); -struct netfs_request_ops; - -struct netfs_inode { - struct inode inode; - const struct netfs_request_ops *ops; - loff_t remote_i_size; -}; - -struct v9fs_inode { - struct netfs_inode netfs; - struct p9_qid qid; - unsigned int cache_validity; - struct mutex v_mutex; -}; +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, +} __attribute__((mode(byte))); -struct netfs_io_request; +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, +} __attribute__((mode(byte))); -struct netfs_io_subrequest; +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, +} __attribute__((mode(byte))); -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 *); -}; +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, +} __attribute__((mode(byte))); struct netfs_cache_ops; @@ -44025,6 +44154,8 @@ struct netfs_cache_resources { unsigned int inval_counter; }; +struct netfs_request_ops; + struct netfs_io_request { struct work_struct work; struct inode *inode; @@ -44049,6 +44180,8 @@ struct netfs_io_request { typedef void (*netfs_io_terminated_t)(void *, ssize_t, bool); +struct netfs_io_subrequest; + 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 *); @@ -44073,1154 +44206,1077 @@ struct netfs_io_subrequest { unsigned long flags; }; -struct v9fs_session_info { - unsigned int 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 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 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; +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 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; -}; - -struct p9_rstatfs { - u32 type; - u32 bsize; - u64 blocks; - u64 bfree; - u64 bavail; - u64 files; - u64 ffree; - u64 fsid; - u32 namelen; +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 { - SELNL_MSG_SETENFORCE = 16, - SELNL_MSG_POLICYLOAD = 17, - SELNL_MSG_MAX = 18, + EXT4_STATE_NEW = 0, + EXT4_STATE_XATTR = 1, + EXT4_STATE_NO_EXPAND = 2, + EXT4_STATE_DA_ALLOC_CLOSE = 3, + EXT4_STATE_EXT_MIGRATE = 4, + EXT4_STATE_NEWENTRY = 5, + EXT4_STATE_MAY_INLINE_DATA = 6, + EXT4_STATE_EXT_PRECACHED = 7, + EXT4_STATE_LUSTRE_EA_INODE = 8, + EXT4_STATE_VERITY_IN_PROGRESS = 9, + EXT4_STATE_FC_COMMITTING = 10, + EXT4_STATE_ORPHAN_FILE = 11, }; -enum selinux_nlgroups { - SELNLGRP_NONE = 0, - SELNLGRP_AVC = 1, - __SELNLGRP_MAX = 2, +enum ext4_journal_trigger_type { + EXT4_JTR_ORPHAN_FILE = 0, + EXT4_JTR_NONE = 1, }; -struct selnl_msg_setenforce { - __s32 val; +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 selnl_msg_policyload { - __u32 seqno; -}; +typedef unsigned short __kernel_uid16_t; -enum devcg_behavior { - DEVCG_DEFAULT_NONE = 0, - DEVCG_DEFAULT_ALLOW = 1, - DEVCG_DEFAULT_DENY = 2, -}; +typedef __kernel_uid16_t uid16_t; -struct dev_cgroup { - struct cgroup_subsys_state css; - struct list_head exceptions; - enum devcg_behavior behavior; +typedef unsigned short __kernel_gid16_t; + +typedef __kernel_gid16_t gid16_t; + +struct ext4_xattr_ibody_header { + __le32 h_magic; }; -struct dev_exception_item { - u32 major; - u32 minor; - short type; - short access; - struct list_head list; - struct callback_head rcu; +struct ext4_xattr_inode_array { + unsigned int count; + struct inode *inodes[0]; }; -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, +struct ext4_iloc { + struct buffer_head *bh; + unsigned long offset; + ext4_group_t block_group; }; -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 ext4_io_end; -typedef struct { - unsigned char op; - unsigned char bits; - unsigned short val; -} code; +typedef struct ext4_io_end ext4_io_end_t; -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 ext4_io_submit { + struct writeback_control *io_wbc; + struct bio *io_bio; + ext4_io_end_t *io_end; + sector_t io_next_block; }; -union uu { - unsigned short us; - unsigned char b[2]; +struct mpage_da_data { + struct inode *inode; + struct writeback_control *wbc; + unsigned int can_map: 1; + unsigned long first_page; + unsigned long next_page; + unsigned long last_page; + struct ext4_map_blocks map; + struct ext4_io_submit io_submit; + unsigned int do_map: 1; + unsigned int scanned_until_end: 1; + unsigned int journalled_more_data: 1; }; -struct z_stream_s; - -typedef struct z_stream_s z_stream; - -typedef z_stream *z_streamp; +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 unsigned char Byte; +struct ext4_io_end_vec { + struct list_head list; + loff_t offset; + ssize_t size; +}; -typedef unsigned long uLong; +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 internal_state; +typedef enum { + EXT4_IGET_NORMAL = 0, + EXT4_IGET_SPECIAL = 1, + EXT4_IGET_HANDLE = 2, + EXT4_IGET_BAD = 4, + EXT4_IGET_EA_INODE = 8, +} ext4_iget_flags; -struct z_stream_s { - const Byte *next_in; - uLong avail_in; - uLong total_in; - Byte *next_out; - uLong avail_out; - uLong total_out; - char *msg; - struct internal_state *state; - void *workspace; - int data_type; - uLong adler; - uLong reserved; +struct 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 * const *xattr; + struct list_head list; }; -typedef uint8_t BYTE; +enum { + TLS_NO_KEYRING = 0, + TLS_NO_PEERID = 0, + TLS_NO_CERT = 0, + TLS_NO_PRIVKEY = 0, +}; -typedef uint32_t U32; +enum nfs_param { + Opt_ac = 0, + Opt_acdirmax = 1, + Opt_acdirmin = 2, + Opt_acl = 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 = 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, + Opt_xprtsec = 54, +}; -typedef enum { - trustInput = 0, - checkMaxSymbolValue = 1, -} HIST_checkInput_e; +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, +}; -typedef uint64_t U64; +enum { + Opt_lookupcache_all = 0, + Opt_lookupcache_none = 1, + Opt_lookupcache_positive = 2, +}; -typedef uint16_t U16; +enum { + Opt_local_lock_all = 0, + Opt_local_lock_flock = 1, + Opt_local_lock_none = 2, + Opt_local_lock_posix = 3, +}; -typedef struct { - const BYTE *nextSrc; - const BYTE *base; - const BYTE *dictBase; - U32 dictLimit; - U32 lowLimit; - U32 nbOverflowCorrections; -} ZSTD_window_t; +enum { + Opt_write_lazy = 0, + Opt_write_eager = 1, + Opt_write_wait = 2, +}; -typedef struct { - U32 off; - U32 len; -} ZSTD_match_t; +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, +}; -typedef struct { - int price; - U32 off; - U32 mlen; - U32 litlen; - U32 rep[3]; -} ZSTD_optimal_t; +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, +}; -typedef enum { - zop_dynamic = 0, - zop_predef = 1, -} ZSTD_OptPrice_e; +enum { + Opt_xprtsec_none = 0, + Opt_xprtsec_tls = 1, + Opt_xprtsec_mtls = 2, + nr__Opt_xprtsec = 3, +}; -typedef size_t HUF_CElt; +typedef u32 compat_uint_t; -typedef enum { - HUF_repeat_none = 0, - HUF_repeat_check = 1, - HUF_repeat_valid = 2, -} HUF_repeat; +struct compat_nfs_string { + compat_uint_t len; + compat_uptr_t data; +}; -typedef struct { - HUF_CElt CTable[257]; - HUF_repeat repeatMode; -} ZSTD_hufCTables_t; +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; +}; -typedef unsigned int FSE_CTable; +struct nfs_clone_mount { + struct super_block *sb; + struct dentry *dentry; + struct nfs_fattr *fattr; + unsigned int inherited_bsize; +}; -typedef enum { - FSE_repeat_none = 0, - FSE_repeat_check = 1, - FSE_repeat_valid = 2, -} FSE_repeat; - -typedef struct { - FSE_CTable offcodeCTable[193]; - FSE_CTable matchlengthCTable[363]; - FSE_CTable litlengthCTable[329]; - FSE_repeat offcode_repeatMode; - FSE_repeat matchlength_repeatMode; - FSE_repeat litlength_repeatMode; -} ZSTD_fseCTables_t; - -typedef struct { - ZSTD_hufCTables_t huf; - ZSTD_fseCTables_t fse; -} ZSTD_entropyCTables_t; - -typedef enum { - ZSTD_ps_auto = 0, - ZSTD_ps_enable = 1, - ZSTD_ps_disable = 2, -} ZSTD_paramSwitch_e; - -typedef struct { - unsigned int *litFreq; - unsigned int *litLengthFreq; - unsigned int *matchLengthFreq; - unsigned int *offCodeFreq; - ZSTD_match_t *matchTable; - ZSTD_optimal_t *priceTable; - U32 litSum; - U32 litLengthSum; - U32 matchLengthSum; - U32 offCodeSum; - U32 litSumBasePrice; - U32 litLengthSumBasePrice; - U32 matchLengthSumBasePrice; - U32 offCodeSumBasePrice; - ZSTD_OptPrice_e priceType; - const ZSTD_entropyCTables_t *symbolCosts; - ZSTD_paramSwitch_e literalCompressionMode; -} optState_t; - -typedef enum { - ZSTD_fast = 1, - ZSTD_dfast = 2, - ZSTD_greedy = 3, - ZSTD_lazy = 4, - ZSTD_lazy2 = 5, - ZSTD_btlazy2 = 6, - ZSTD_btopt = 7, - ZSTD_btultra = 8, - ZSTD_btultra2 = 9, -} ZSTD_strategy; - -typedef struct { - unsigned int windowLog; - unsigned int chainLog; - unsigned int hashLog; - unsigned int searchLog; - unsigned int minMatch; - unsigned int targetLength; - ZSTD_strategy strategy; -} ZSTD_compressionParameters; - -typedef struct { - U32 offset; - U32 litLength; - U32 matchLength; -} rawSeq; - -typedef struct { - rawSeq *seq; - size_t pos; - size_t posInSequence; - size_t size; - size_t capacity; -} rawSeqStore_t; - -struct ZSTD_matchState_t; - -typedef struct ZSTD_matchState_t ZSTD_matchState_t; - -struct ZSTD_matchState_t { - ZSTD_window_t window; - U32 loadedDictEnd; - U32 nextToUpdate; - U32 hashLog3; - U32 rowHashLog; - U16 *tagTable; - U32 hashCache[8]; - U32 *hashTable; - U32 *hashTable3; - U32 *chainTable; - U32 forceNonContiguous; - int dedicatedDictSearch; - optState_t opt; - const ZSTD_matchState_t *dictMatchState; - ZSTD_compressionParameters cParams; - const rawSeqStore_t *ldmSeqStore; +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; + struct xprtsec_parms xprtsec; + 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; }; -typedef enum { - ZSTD_llt_none = 0, - ZSTD_llt_literalLength = 1, - ZSTD_llt_matchLength = 2, -} ZSTD_longLengthType_e; - -struct seqDef_s; - -typedef struct seqDef_s seqDef; - -typedef struct { - seqDef *sequencesStart; - seqDef *sequences; - BYTE *litStart; - BYTE *lit; - BYTE *llCode; - BYTE *mlCode; - BYTE *ofCode; - size_t maxNbSeq; - size_t maxNbLit; - ZSTD_longLengthType_e longLengthType; - U32 longLengthPos; -} seqStore_t; - -struct seqDef_s { - U32 offBase; - U16 litLength; - U16 mlBase; +struct nfs2_fh { + char data[32]; }; -typedef enum { - search_hashChain = 0, - search_binaryTree = 1, - search_rowHash = 2, -} searchMethod_e; - -typedef enum { - ZSTD_noDict = 0, - ZSTD_extDict = 1, - ZSTD_dictMatchState = 2, - ZSTD_dedicatedDictSearch = 3, -} ZSTD_dictMode_e; - -typedef enum { - ZSTD_no_overlap = 0, - ZSTD_overlap_src_before_dst = 1, -} ZSTD_overlap_e; - -typedef U64 ZSTD_VecMask; - -struct ccu_frac_internal { - u32 enable; - u32 select; - unsigned long rates[2]; +struct nfs3_fh { + unsigned short size; + unsigned char data[64]; }; -struct ccu_mult_internal { - u8 offset; - u8 shift; - u8 width; - u8 min; - u8 max; +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 ccu_mux_fixed_prediv; - -struct ccu_mux_var_prediv; - -struct ccu_mux_internal { - u8 shift; - u8 width; - const u8 *table; - const struct ccu_mux_fixed_prediv *fixed_predivs; - u8 n_predivs; - const struct ccu_mux_var_prediv *var_predivs; - u8 n_var_predivs; +struct nfs_string { + unsigned int len; + const char __attribute__((btf_type_tag("user"))) *data; }; -struct ccu_common { - void *base; - u16 reg; - u16 lock_reg; - u32 prediv; - unsigned long features; - spinlock_t *lock; - struct clk_hw hw; +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; }; -struct ccu_mult { - u32 enable; - u32 lock; - struct ccu_frac_internal frac; - struct ccu_mult_internal mult; - struct ccu_mux_internal mux; - struct ccu_common common; +struct nlmsvc_binding { + __be32 (*fopen)(struct svc_rqst *, struct nfs_fh *, struct file **, int); + void (*fclose)(struct file *); }; -struct ccu_mux_fixed_prediv { - u8 index; - u16 div; +enum { + SP_TASK_PENDING = 0, + SP_NEED_VICTIM = 1, + SP_VICTIM_REMAINS = 2, }; -struct ccu_mux_var_prediv { - u8 index; - u8 shift; - u8 width; +enum { + RQ_SECURE = 0, + RQ_LOCAL = 1, + RQ_USEDEFERRAL = 2, + RQ_DROPME = 3, + RQ_SPLICE_OK = 4, + RQ_VICTIM = 5, + RQ_DATA = 6, }; -struct _ccu_mult { - unsigned long mult; - unsigned long min; - unsigned long max; +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 module_version_attribute { - struct module_attribute mattr; - const char *module_name; - const char *version; +enum p9_trans_status { + Connected = 0, + BeginDisconnect = 1, + Disconnected = 2, + Hung = 3, }; -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; +enum p9_cache_bits { + CACHE_NONE = 0, + CACHE_FILE = 1, + CACHE_META = 2, + CACHE_WRITEBACK = 4, + CACHE_LOOSE = 8, + CACHE_FSCACHE = 128, }; -struct virtio_pci_modern_common_cfg { - struct virtio_pci_common_cfg cfg; - __le16 queue_notify_data; - __le16 queue_reset; +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, + V9FS_NO_XATTR = 64, + V9FS_IGNORE_QV = 128, + V9FS_DIRECT_IO = 256, + V9FS_SYNC = 512, }; -struct virtio_device_id { - __u32 device; - __u32 vendor; +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, + P9L_MODE_MASK = 8191, + P9L_DIRECT = 8192, + P9L_NOWRITECACHE = 16384, + P9L_LOOSE = 32768, }; -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; - int (*device_id_check)(struct pci_dev *); - u64 dma_mask; +enum p9_qid_t { + P9_QTDIR = 128, + P9_QTAPPEND = 64, + P9_QTEXCL = 32, + P9_QTMOUNT = 16, + P9_QTAUTH = 8, + P9_QTTMP = 4, + P9_QTSYMLINK = 2, + P9_QTLINK = 1, + P9_QTFILE = 0, }; -struct miscdevice { - int minor; - const char *name; - const struct file_operations *fops; - struct list_head list; - struct device *parent; - struct device *this_device; - const struct attribute_group **groups; - const char *nodename; - umode_t mode; +struct p9_qid { + u8 type; + u32 version; + u64 path; }; -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 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; }; -struct trace_event_data_offsets_devres { - u32 devname; +struct netfs_inode { + struct inode inode; + const struct netfs_request_ops *ops; + loff_t remote_i_size; }; -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, +struct v9fs_inode { + struct netfs_inode netfs; + struct p9_qid qid; + unsigned int cache_validity; + struct mutex v_mutex; }; -enum scsi_scan_mode { - SCSI_SCAN_INITIAL = 0, - SCSI_SCAN_RESCAN = 1, - SCSI_SCAN_MANUAL = 2, -}; +struct p9_client; -enum scsi_timeouts { - SCSI_DEFAULT_EH_TIMEOUT = 2500, +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 async_scan_data { - struct list_head list; - struct Scsi_Host *shost; - struct completion prev_finished; -}; +struct p9_trans_module; -typedef void (*activate_complete)(void *, int); +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]; +}; -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 v9fs_session_info { + unsigned int 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 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 dotl_openflag_map { + int open_flag; + int dotl_flag; }; -struct transport_container { - struct attribute_container ac; - const struct attribute_group *statistics; +struct dotl_iattr_map { + int iattr_valid; + int p9_iattr_valid; }; -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 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 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 *); +enum kernel_pkey_operation { + kernel_pkey_encrypt = 0, + kernel_pkey_decrypt = 1, + kernel_pkey_sign = 2, + kernel_pkey_verify = 3, }; -struct scsi_lun { - __u8 scsi_lun[8]; +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 { - 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, +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 ethtool_link_mode_bit_indices { - ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0, - ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1, - ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2, - ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3, - ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4, - ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5, - ETHTOOL_LINK_MODE_Autoneg_BIT = 6, - ETHTOOL_LINK_MODE_TP_BIT = 7, - ETHTOOL_LINK_MODE_AUI_BIT = 8, - ETHTOOL_LINK_MODE_MII_BIT = 9, - ETHTOOL_LINK_MODE_FIBRE_BIT = 10, - ETHTOOL_LINK_MODE_BNC_BIT = 11, - ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12, - ETHTOOL_LINK_MODE_Pause_BIT = 13, - ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14, - ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15, - ETHTOOL_LINK_MODE_Backplane_BIT = 16, - ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17, - ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18, - ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19, - ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20, - ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21, - ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22, - ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23, - ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24, - ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25, - ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26, - ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27, - ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28, - ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29, - ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30, - ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31, - ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32, - ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33, - ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34, - ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35, - ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36, - ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37, - ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38, - ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39, - ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40, - ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41, - ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42, - ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43, - ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44, - ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45, - ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46, - ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 47, - ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 48, - ETHTOOL_LINK_MODE_FEC_NONE_BIT = 49, - ETHTOOL_LINK_MODE_FEC_RS_BIT = 50, - ETHTOOL_LINK_MODE_FEC_BASER_BIT = 51, - ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 52, - ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 53, - ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 54, - ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 55, - ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 56, - ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 57, - ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 58, - ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 59, - ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 60, - ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 61, - ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 62, - ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 63, - ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 64, - ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 65, - ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 66, - ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 67, - ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 68, - ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 69, - ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 70, - ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71, - ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 72, - ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 73, - ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 74, - ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 75, - ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 76, - ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 77, - ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 78, - ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 79, - ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 80, - ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 81, - ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 82, - ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 83, - ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 84, - ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 85, - ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 86, - ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 87, - ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 88, - ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 89, - ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 90, - ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 91, - ETHTOOL_LINK_MODE_10baseT1L_Full_BIT = 92, - ETHTOOL_LINK_MODE_800000baseCR8_Full_BIT = 93, - ETHTOOL_LINK_MODE_800000baseKR8_Full_BIT = 94, - ETHTOOL_LINK_MODE_800000baseDR8_Full_BIT = 95, - ETHTOOL_LINK_MODE_800000baseDR8_2_Full_BIT = 96, - ETHTOOL_LINK_MODE_800000baseSR8_Full_BIT = 97, - ETHTOOL_LINK_MODE_800000baseVR8_Full_BIT = 98, - ETHTOOL_LINK_MODE_10baseT1S_Full_BIT = 99, - ETHTOOL_LINK_MODE_10baseT1S_Half_BIT = 100, - ETHTOOL_LINK_MODE_10baseT1S_P2MP_Half_BIT = 101, - __ETHTOOL_LINK_MODE_MASK_NBITS = 102, +struct 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 mii_ioctl_data { - __u16 phy_id; - __u16 reg_num; - __u16 val_in; - __u16 val_out; +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 phy_setting { - u32 speed; - u8 duplex; - u8 bit; +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 usbdrv_wrap { - struct device_driver driver; - int for_devices; +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 usb_device_id; +struct __key_reference_with_attributes; -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; +typedef struct __key_reference_with_attributes *key_ref_t; + +struct request_key_auth { + struct callback_head rcu; + struct key *target_key; + struct key *dest_keyring; + const struct cred *cred; + void *callout_info; + size_t callout_len; + pid_t pid; + char op[8]; }; -struct 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 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 mousedev_hw_data { - int dx; - int dy; - int dz; - int x; - int y; - int abs_event; - unsigned long buttons; +typedef int wait_bit_action_f(struct wait_bit_key *, int); + +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 mousedev { - int open; - struct input_handle handle; - wait_queue_head_t wait; - struct list_head client_list; - spinlock_t client_lock; - struct mutex mutex; - struct device dev; - struct cdev cdev; - bool exist; - struct list_head mixdev_node; - bool opened_by_mixdev; - struct mousedev_hw_data packet; - unsigned int pkt_count; - int old_x[4]; - int old_y[4]; - int frac_dx; - int frac_dy; - unsigned long touch; - int (*open_device)(struct mousedev *); - void (*close_device)(struct mousedev *); +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; }; -enum { - FRACTION_DENOM = 128, +struct udphdr { + __be16 source; + __be16 dest; + __be16 len; + __sum16 check; }; -enum mousedev_emul { - MOUSEDEV_EMUL_PS2 = 0, - MOUSEDEV_EMUL_IMPS = 1, - MOUSEDEV_EMUL_EXPS = 2, +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 mousedev_motion { - int dx; - int dy; - int dz; - unsigned long buttons; +struct sctphdr { + __be16 source; + __be16 dest; + __be32 vtag; + __le32 checksum; }; -struct mousedev_client { - struct fasync_struct *fasync; - struct mousedev *mousedev; - struct list_head node; - struct mousedev_motion packets[16]; - unsigned int head; - unsigned int tail; - spinlock_t packet_lock; - int pos_x; - int pos_y; - u8 ps2[6]; - unsigned char ready; - unsigned char buffer; - unsigned char bufsiz; - unsigned char imexseq; - unsigned char impsseq; - enum mousedev_emul mode; - unsigned long last_buttons; +struct crypto_cipher { + struct crypto_tfm base; }; -struct watchdog_device; +struct scatter_walk { + struct scatterlist *sg; + unsigned int offset; +}; -typedef void (*btf_trace_watchdog_start)(void *, struct watchdog_device *, int); +struct crypto_akcipher { + unsigned int reqsize; + struct crypto_tfm base; +}; -struct watchdog_info; +struct akcipher_request; -struct watchdog_ops; +struct akcipher_alg { + int (*sign)(struct akcipher_request *); + int (*verify)(struct akcipher_request *); + int (*encrypt)(struct akcipher_request *); + int (*decrypt)(struct akcipher_request *); + int (*set_pub_key)(struct crypto_akcipher *, const void *, unsigned int); + int (*set_priv_key)(struct crypto_akcipher *, const void *, unsigned int); + unsigned int (*max_size)(struct crypto_akcipher *); + int (*init)(struct crypto_akcipher *); + void (*exit)(struct crypto_akcipher *); + struct crypto_alg base; +}; -struct watchdog_governor; - -struct watchdog_core_data; - -struct watchdog_device { - int id; - struct device *parent; - const struct attribute_group **groups; - const struct watchdog_info *info; - const struct watchdog_ops *ops; - const struct watchdog_governor *gov; - unsigned int bootstatus; - unsigned int timeout; - unsigned int pretimeout; - unsigned int min_timeout; - unsigned int max_timeout; - unsigned int min_hw_heartbeat_ms; - unsigned int max_hw_heartbeat_ms; - struct notifier_block reboot_nb; - struct notifier_block restart_nb; - struct notifier_block pm_nb; - void *driver_data; - struct watchdog_core_data *wd_data; - unsigned long status; - struct list_head deferred; +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 watchdog_info { - __u32 options; - __u32 firmware_version; - __u8 identity[32]; +struct akcipher_instance { + void (*free)(struct akcipher_instance *); + union { + struct { + char head[72]; + struct crypto_instance base; + } s; + struct akcipher_alg alg; + }; }; -struct watchdog_ops { - struct module *owner; - int (*start)(struct watchdog_device *); - int (*stop)(struct watchdog_device *); - int (*ping)(struct watchdog_device *); - unsigned int (*status)(struct watchdog_device *); - int (*set_timeout)(struct watchdog_device *, unsigned int); - int (*set_pretimeout)(struct watchdog_device *, unsigned int); - unsigned int (*get_timeleft)(struct watchdog_device *); - int (*restart)(struct watchdog_device *, unsigned long, void *); - long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long); +struct crypto_istat_akcipher { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t verify_cnt; + atomic64_t sign_cnt; + atomic64_t err_cnt; }; -struct watchdog_governor { - const char name[20]; - void (*pretimeout)(struct watchdog_device *); +struct crypto_wait { + struct completion completion; + int err; }; -struct watchdog_core_data { - struct device dev; - struct cdev cdev; - struct watchdog_device *wdd; - struct mutex lock; - ktime_t last_keepalive; - ktime_t last_hw_keepalive; - ktime_t open_deadline; - struct hrtimer timer; - struct kthread_work work; - unsigned long status; +struct crypto_akcipher_sync_data { + struct crypto_akcipher *tfm; + const void *src; + void *dst; + unsigned int slen; + unsigned int dlen; + struct akcipher_request *req; + struct crypto_wait cwait; + struct scatterlist sg; + u8 *buf; }; -typedef void (*btf_trace_watchdog_ping)(void *, struct watchdog_device *, int); +struct crypto_akcipher_spawn { + struct crypto_spawn base; +}; -typedef void (*btf_trace_watchdog_stop)(void *, struct watchdog_device *, int); +struct net_proto_family { + int family; + int (*create)(struct net *, struct socket *, int, int); + struct module *owner; +}; -typedef void (*btf_trace_watchdog_set_timeout)(void *, struct watchdog_device *, unsigned int, int); +struct af_alg_type; -struct trace_event_raw_watchdog_template { - struct trace_entry ent; - int id; - int err; - char __data[0]; +struct alg_type_list { + const struct af_alg_type *type; + struct list_head list; }; -struct trace_event_raw_watchdog_set_timeout { - struct trace_entry ent; - int id; - unsigned int timeout; - int err; - char __data[0]; +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 trace_event_data_offsets_watchdog_template {}; +struct af_alg_tsgl { + struct list_head list; + unsigned int cur; + struct scatterlist sg[0]; +}; -struct trace_event_data_offsets_watchdog_set_timeout {}; +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 efi_memory_map_data { - phys_addr_t phys_map; - unsigned long size; - unsigned long desc_version; - unsigned long desc_size; - unsigned long flags; +struct af_alg_sgl { + struct sg_table sgt; + struct scatterlist sgl[17]; + bool need_unpin; }; -typedef struct { - efi_guid_t guid; - u32 table; -} efi_config_table_32_t; +struct af_alg_rsgl { + struct af_alg_sgl sgl; + struct list_head list; + size_t sg_num_bytes; +}; -typedef union { - struct { - efi_guid_t guid; - void *table; - }; - efi_config_table_32_t mixed_mode; -} efi_config_table_t; +struct user_key_payload { + struct callback_head rcu; + unsigned short datalen; + long: 0; + char data[0]; +}; -typedef struct { - efi_guid_t guid; - unsigned long *ptr; - const char name[16]; -} efi_config_table_type_t; +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; + unsigned int inflight; +}; -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 af_alg_iv; -struct skcipher_request; +struct af_alg_control { + struct af_alg_iv *iv; + int op; + unsigned int aead_assoclen; +}; -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 af_alg_iv { + __u32 ivlen; + __u8 iv[0]; }; -struct virtio_crypto_algo { - uint32_t algonum; - uint32_t service; - unsigned int active_devs; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct skcipher_alg algo; +typedef unsigned int iov_iter_extraction_t; + +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 skcipher_request { @@ -45229,15449 +45285,16988 @@ struct skcipher_request { struct scatterlist *src; struct scatterlist *dst; struct crypto_async_request base; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; void *__ctx[0]; }; -struct virtio_crypto_request; - -typedef void (*virtio_crypto_data_callback)(struct virtio_crypto_request *, int); - -struct virtio_crypto_op_data_req; - -struct data_queue; - -struct virtio_crypto_request { - uint8_t status; - struct virtio_crypto_op_data_req *req_data; - struct scatterlist **sgs; - struct data_queue *dataq; - virtio_crypto_data_callback alg_cb; -}; - -struct virtio_crypto_skcipher_ctx; - -struct virtio_crypto_sym_request { - struct virtio_crypto_request base; - uint32_t type; - struct virtio_crypto_skcipher_ctx *skcipher_ctx; - struct skcipher_request *skcipher_req; - uint8_t *iv; - bool encrypt; -}; - -struct virtio_crypto_cipher_para { - __le32 iv_len; - __le32 src_data_len; - __le32 dst_data_len; - __le32 padding; +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 virtio_crypto_cipher_data_req { - struct virtio_crypto_cipher_para para; - __u8 padding[24]; +struct sockaddr_alg_new { + __u16 salg_family; + __u8 salg_type[14]; + __u32 salg_feat; + __u32 salg_mask; + __u8 salg_name[0]; }; -struct virtio_crypto_alg_chain_data_para { - __le32 iv_len; - __le32 src_data_len; - __le32 dst_data_len; - __le32 cipher_start_src_offset; - __le32 len_to_cipher; - __le32 hash_start_src_offset; - __le32 len_to_hash; - __le32 aad_len; - __le32 hash_result_len; - __le32 reserved; +enum bfqq_expiration { + BFQQE_TOO_IDLE = 0, + BFQQE_BUDGET_TIMEOUT = 1, + BFQQE_BUDGET_EXHAUSTED = 2, + BFQQE_NO_MORE_REQUESTS = 3, + BFQQE_PREEMPTED = 4, }; -struct virtio_crypto_alg_chain_data_req { - struct virtio_crypto_alg_chain_data_para para; -}; +struct bfq_sched_data; -struct virtio_crypto_sym_data_req { - union { - struct virtio_crypto_cipher_data_req cipher; - struct virtio_crypto_alg_chain_data_req chain; - __u8 padding[40]; - } u; - __le32 op_type; - __le32 padding; -}; +struct bfq_queue; -struct virtio_crypto_hash_para { - __le32 src_data_len; - __le32 hash_result_len; +struct bfq_entity { + struct rb_node rb_node; + bool on_st_or_in_serv; + u64 start; + u64 finish; + struct rb_root *tree; + u64 min_start; + int service; + int budget; + int allocated; + int dev_weight; + int weight; + int new_weight; + int orig_weight; + struct bfq_entity *parent; + struct bfq_sched_data *my_sched_data; + struct bfq_sched_data *sched_data; + int prio_changed; + bool in_groups_with_pending_reqs; + struct bfq_queue *last_bfqq_created; }; -struct virtio_crypto_hash_data_req { - struct virtio_crypto_hash_para para; - __u8 padding[40]; +struct bfq_service_tree { + struct rb_root active; + struct rb_root idle; + struct bfq_entity *first_idle; + struct bfq_entity *last_idle; + u64 vtime; + unsigned long wsum; }; -struct virtio_crypto_mac_para { - struct virtio_crypto_hash_para hash; +struct bfq_sched_data { + struct bfq_entity *in_service_entity; + struct bfq_entity *next_in_service; + struct bfq_service_tree service_tree[3]; + unsigned long bfq_class_idle_last_service; }; -struct virtio_crypto_mac_data_req { - struct virtio_crypto_mac_para para; - __u8 padding[40]; +struct bfqg_stats { + struct blkg_rwstat bytes; + struct blkg_rwstat ios; }; -struct virtio_crypto_aead_para { - __le32 iv_len; - __le32 aad_len; - __le32 src_data_len; - __le32 dst_data_len; -}; +struct bfq_data; -struct virtio_crypto_aead_data_req { - struct virtio_crypto_aead_para para; - __u8 padding[32]; +struct bfq_group { + struct blkg_policy_data pd; + char blkg_path[128]; + refcount_t ref; + struct bfq_entity entity; + struct bfq_sched_data sched_data; + struct bfq_data *bfqd; + struct bfq_queue *async_bfqq[128]; + struct bfq_queue *async_idle_bfqq[8]; + struct bfq_entity *my_entity; + int active_entities; + int num_queues_with_pending_reqs; + struct rb_root rq_pos_tree; + struct bfqg_stats stats; }; -struct virtio_crypto_akcipher_para { - __le32 src_data_len; - __le32 dst_data_len; +struct bfq_ttime { + u64 last_end_request; + u64 ttime_total; + unsigned long ttime_samples; + u64 ttime_mean; }; -struct virtio_crypto_akcipher_data_req { - struct virtio_crypto_akcipher_para para; - __u8 padding[40]; -}; +struct bfq_weight_counter; -struct virtio_crypto_op_header { - __le32 opcode; - __le32 algo; - __le64 session_id; - __le32 flag; - __le32 padding; -}; +struct bfq_io_cq; -struct virtio_crypto_op_data_req { - struct virtio_crypto_op_header header; - union { - struct virtio_crypto_sym_data_req sym_req; - struct virtio_crypto_hash_data_req hash_req; - struct virtio_crypto_mac_data_req mac_req; - struct virtio_crypto_aead_data_req aead_req; - struct virtio_crypto_akcipher_data_req akcipher_req; - __u8 padding[48]; - } u; +struct bfq_queue { + int ref; + int stable_ref; + struct bfq_data *bfqd; + unsigned short ioprio; + unsigned short ioprio_class; + unsigned short new_ioprio; + unsigned short new_ioprio_class; + u64 last_serv_time_ns; + unsigned int inject_limit; + unsigned long decrease_time_jif; + struct bfq_queue *new_bfqq; + struct rb_node pos_node; + struct rb_root *pos_root; + struct rb_root sort_list; + struct request *next_rq; + int queued[2]; + int meta_pending; + struct list_head fifo; + struct bfq_entity entity; + struct bfq_weight_counter *weight_counter; + int max_budget; + unsigned long budget_timeout; + int dispatched; + unsigned long flags; + struct list_head bfqq_list; + struct bfq_ttime ttime; + u64 io_start_time; + u64 tot_idle_time; + u32 seek_history; + struct hlist_node burst_list_node; + sector_t last_request_pos; + unsigned int requests_within_timer; + pid_t pid; + struct bfq_io_cq *bic; + unsigned long wr_cur_max_time; + unsigned long soft_rt_next_start; + unsigned long last_wr_start_finish; + unsigned int wr_coeff; + unsigned long last_idle_bklogged; + unsigned long service_from_backlogged; + unsigned long service_from_wr; + unsigned long wr_start_at_switch_to_srt; + unsigned long split_time; + unsigned long first_IO_time; + unsigned long creation_time; + struct bfq_queue *waker_bfqq; + struct bfq_queue *tentative_waker_bfqq; + unsigned int num_waker_detections; + u64 waker_detection_started; + struct hlist_node woken_list_node; + struct hlist_head woken_list; + unsigned int actuator_idx; }; -struct virtqueue; - -struct crypto_engine; - -struct data_queue { - struct virtqueue *vq; - spinlock_t lock; - char name[32]; - struct crypto_engine *engine; +struct bfq_data { + struct request_queue *queue; + struct list_head dispatch; + struct bfq_group *root_group; + struct rb_root_cached queue_weights_tree; + unsigned int num_groups_with_pending_reqs; + unsigned int busy_queues[3]; + int wr_busy_queues; + int queued; + int tot_rq_in_driver; + int rq_in_driver[8]; + bool nonrot_with_queueing; + int max_rq_in_driver; + int hw_tag_samples; + int hw_tag; + int budgets_assigned; + struct hrtimer idle_slice_timer; + struct bfq_queue *in_service_queue; + sector_t last_position; + sector_t in_serv_last_pos; + u64 last_completion; + struct bfq_queue *last_completed_rq_bfqq; + struct bfq_queue *last_bfqq_created; + u64 last_empty_occupied_ns; + bool wait_dispatch; + struct request *waited_rq; + bool rqs_injected; + u64 first_dispatch; + u64 last_dispatch; + ktime_t last_budget_start; + ktime_t last_idling_start; + unsigned long last_idling_start_jiffies; + int peak_rate_samples; + u32 sequential_samples; + u64 tot_sectors_dispatched; + u32 last_rq_max_size; + u64 delta_from_first; + u32 peak_rate; + int bfq_max_budget; + struct list_head active_list[8]; + struct list_head idle_list; + u64 bfq_fifo_expire[2]; + unsigned int bfq_back_penalty; + unsigned int bfq_back_max; + u32 bfq_slice_idle; + int bfq_user_max_budget; + unsigned int bfq_timeout; + bool strict_guarantees; + unsigned long last_ins_in_burst; + unsigned long bfq_burst_interval; + int burst_size; + struct bfq_entity *burst_parent_entity; + unsigned long bfq_large_burst_thresh; + bool large_burst; + struct hlist_head burst_list; + bool low_latency; + unsigned int bfq_wr_coeff; + unsigned int bfq_wr_rt_max_time; + unsigned int bfq_wr_min_idle_time; + unsigned long bfq_wr_min_inter_arr_async; + unsigned int bfq_wr_max_softrt_rate; + u64 rate_dur_prod; + struct bfq_queue oom_bfqq; + spinlock_t lock; + struct bfq_io_cq *bio_bic; + struct bfq_queue *bio_bfqq; + unsigned int word_depths[4]; + unsigned int full_depth_shift; + unsigned int num_actuators; + sector_t sector[8]; + sector_t nr_sectors[8]; + struct blk_independent_access_range ia_ranges[8]; + unsigned int actuator_load_threshold; }; -struct virtio_device; - -struct virtqueue { - struct list_head list; - void (*callback)(struct virtqueue *); - const char *name; - struct virtio_device *vdev; - unsigned int index; - unsigned int num_free; - unsigned int num_max; - bool reset; - void *priv; +struct bfq_iocq_bfqq_data { + bool saved_has_short_ttime; + bool saved_IO_bound; + u64 saved_io_start_time; + u64 saved_tot_idle_time; + bool saved_in_large_burst; + bool was_in_burst_list; + unsigned int saved_weight; + unsigned long saved_wr_coeff; + unsigned long saved_last_wr_start_finish; + unsigned long saved_service_from_wr; + unsigned long saved_wr_start_at_switch_to_srt; + unsigned int saved_wr_cur_max_time; + struct bfq_ttime saved_ttime; + u64 saved_last_serv_time_ns; + unsigned int saved_inject_limit; + unsigned long saved_decrease_time_jif; + struct bfq_queue *stable_merge_bfqq; + bool stably_merged; }; -struct 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; +struct bfq_io_cq { + struct io_cq icq; + struct bfq_queue *bfqq[16]; + int ioprio; + uint64_t blkcg_serial_nr; + struct bfq_iocq_bfqq_data bfqq_data[8]; + unsigned int requests; }; -typedef void vq_callback_t(struct virtqueue *); - -struct irq_affinity; - -struct virtio_shm_region; - -struct virtio_config_ops { - void (*get)(struct virtio_device *, unsigned int, void *, unsigned int); - void (*set)(struct virtio_device *, unsigned int, const void *, unsigned int); - u32 (*generation)(struct virtio_device *); - u8 (*get_status)(struct virtio_device *); - void (*set_status)(struct virtio_device *, u8); - void (*reset)(struct virtio_device *); - int (*find_vqs)(struct virtio_device *, unsigned int, struct virtqueue **, vq_callback_t **, const char * const *, const bool *, struct irq_affinity *); - void (*del_vqs)(struct virtio_device *); - void (*synchronize_cbs)(struct virtio_device *); - u64 (*get_features)(struct virtio_device *); - int (*finalize_features)(struct virtio_device *); - const char * (*bus_name)(struct virtio_device *); - int (*set_vq_affinity)(struct virtqueue *, const struct cpumask *); - const struct cpumask * (*get_vq_affinity)(struct virtio_device *, int); - bool (*get_shm_region)(struct virtio_device *, struct virtio_shm_region *, u8); - int (*disable_vq_and_reset)(struct virtqueue *); - int (*enable_vq_after_reset)(struct virtqueue *); +struct bfq_weight_counter { + unsigned int weight; + unsigned int num_active; + struct rb_node weights_node; }; -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 bfq_group_data { + struct blkcg_policy_data pd; + unsigned int weight; }; -struct virtio_shm_region { - u64 addr; - u64 len; +struct blkg_conf_ctx { + char *input; + char *body; + struct block_device *bdev; + struct blkcg_gq *blkg; }; -struct crypto_queue { - struct list_head list; - struct list_head *backlog; - unsigned int qlen; - unsigned int max_qlen; +struct io_cancel { + struct file *file; + u64 addr; + u32 flags; + s32 fd; + u8 opcode; }; -struct crypto_engine { - char name[30]; - bool idling; - bool busy; - bool running; - bool retry_support; - struct list_head list; - spinlock_t queue_lock; - struct crypto_queue queue; - struct device *dev; - bool rt; - int (*prepare_crypt_hardware)(struct crypto_engine *); - int (*unprepare_crypt_hardware)(struct crypto_engine *); - int (*do_batch_requests)(struct crypto_engine *); - struct kthread_worker *kworker; - struct kthread_work pump_requests; - void *priv_data; - struct crypto_async_request *cur_req; +struct io_uring_sync_cancel_reg { + __u64 addr; + __s32 fd; + __u32 flags; + struct __kernel_timespec timeout; + __u8 opcode; + __u8 pad[7]; + __u64 pad2[3]; }; -struct crypto_engine_op { - int (*prepare_request)(struct crypto_engine *, void *); - int (*unprepare_request)(struct crypto_engine *, void *); - int (*do_one_request)(struct crypto_engine *, void *); -}; +struct genradix_root; -struct crypto_engine_ctx { - struct crypto_engine_op op; +struct genradix_node { + union { + struct genradix_node *children[512]; + u8 data[4096]; + }; }; -struct virtio_crypto_sym_session_info { - __u64 session_id; +struct __genradix { + struct genradix_root *root; }; -struct virtio_crypto; - -struct virtio_crypto_skcipher_ctx { - struct crypto_engine_ctx enginectx; - struct virtio_crypto *vcrypto; - struct crypto_skcipher *tfm; - struct virtio_crypto_sym_session_info enc_sess_info; - struct virtio_crypto_sym_session_info dec_sess_info; +struct genradix_iter { + size_t offset; + size_t pos; }; -struct virtio_crypto { - struct virtio_device *vdev; - struct virtqueue *ctrl_vq; - struct data_queue *data_vq; - spinlock_t ctrl_lock; - u32 max_data_queues; - u32 curr_queue; - u32 crypto_services; - u32 cipher_algo_l; - u32 cipher_algo_h; - u32 hash_algo; - u32 mac_algo_l; - u32 mac_algo_h; - u32 aead_algo; - u32 akcipher_algo; - u32 max_cipher_key_len; - u32 max_auth_key_len; - u64 max_size; - unsigned long status; - atomic_t ref_count; - struct list_head list; - struct module *owner; - uint8_t dev_id; - bool affinity_hint_set; +struct seccomp_data { + int nr; + __u32 arch; + __u64 instruction_pointer; + __u64 args[6]; }; -struct virtio_crypto_ctrl_header { - __le32 opcode; - __le32 algo; - __le32 flag; - __le32 queue_id; +struct syscall_info { + __u64 sp; + struct seccomp_data data; }; -struct virtio_crypto_cipher_session_para { - __le32 algo; - __le32 keylen; - __le32 op; - __le32 padding; -}; +struct jh7110_gpio_irq_reg; -struct virtio_crypto_cipher_session_req { - struct virtio_crypto_cipher_session_para para; - __u8 padding[32]; -}; +struct jh7110_pinctrl; -struct virtio_crypto_hash_session_para { - __le32 algo; - __le32 hash_result_len; - __u8 padding[8]; -}; +struct gpio_chip; -struct virtio_crypto_mac_session_para { - __le32 algo; - __le32 hash_result_len; - __le32 auth_key_len; - __le32 padding; +struct jh7110_pinctrl_soc_info { + const struct pinctrl_pin_desc *pins; + unsigned int npins; + unsigned int ngpios; + unsigned int gc_base; + unsigned int dout_reg_base; + unsigned int dout_mask; + unsigned int doen_reg_base; + unsigned int doen_mask; + unsigned int gpi_reg_base; + unsigned int gpi_mask; + unsigned int gpioin_reg_base; + const struct jh7110_gpio_irq_reg *irq_reg; + unsigned int nsaved_regs; + int (*jh7110_set_one_pin_mux)(struct jh7110_pinctrl *, unsigned int, unsigned int, u32, u32, u32); + int (*jh7110_get_padcfg_base)(struct jh7110_pinctrl *, unsigned int); + void (*jh7110_gpio_irq_handler)(struct irq_desc *); + int (*jh7110_gpio_init_hw)(struct gpio_chip *); }; -struct virtio_crypto_alg_chain_session_para { - __le32 alg_chain_order; - __le32 hash_mode; - struct virtio_crypto_cipher_session_para cipher_param; - union { - struct virtio_crypto_hash_session_para hash_param; - struct virtio_crypto_mac_session_para mac_param; - __u8 padding[16]; - } u; - __le32 aad_len; - __le32 padding; +struct jh7110_gpio_irq_reg { + unsigned int is_reg_base; + unsigned int ic_reg_base; + unsigned int ibe_reg_base; + unsigned int iev_reg_base; + unsigned int ie_reg_base; + unsigned int ris_reg_base; + unsigned int mis_reg_base; }; -struct virtio_crypto_alg_chain_session_req { - struct virtio_crypto_alg_chain_session_para para; -}; +union gpio_irq_fwspec; -struct virtio_crypto_sym_create_session_req { +struct gpio_irq_chip { + struct irq_chip *chip; + struct irq_domain *domain; + struct fwnode_handle *fwnode; + struct irq_domain *parent_domain; + int (*child_to_parent_hwirq)(struct gpio_chip *, unsigned int, unsigned int, unsigned int *, unsigned int *); + int (*populate_parent_alloc_arg)(struct gpio_chip *, union gpio_irq_fwspec *, unsigned int, unsigned int); + unsigned int (*child_offset_to_irq)(struct gpio_chip *, unsigned int); + struct irq_domain_ops child_irq_domain_ops; + irq_flow_handler_t handler; + unsigned int default_type; + struct lock_class_key *lock_key; + struct lock_class_key *request_key; + irq_flow_handler_t parent_handler; union { - struct virtio_crypto_cipher_session_req cipher; - struct virtio_crypto_alg_chain_session_req chain; - __u8 padding[48]; - } u; - __le32 op_type; - __le32 padding; -}; - -struct virtio_crypto_hash_create_session_req { - struct virtio_crypto_hash_session_para para; - __u8 padding[40]; + void *parent_handler_data; + void **parent_handler_data_array; + }; + unsigned int num_parents; + unsigned int *parents; + unsigned int *map; + bool threaded; + bool per_parent_data; + bool initialized; + bool domain_is_allocated_externally; + int (*init_hw)(struct gpio_chip *); + void (*init_valid_mask)(struct gpio_chip *, unsigned long *, unsigned int); + unsigned long *valid_mask; + unsigned int first; + void (*irq_enable)(struct irq_data *); + void (*irq_disable)(struct irq_data *); + void (*irq_unmask)(struct irq_data *); + void (*irq_mask)(struct irq_data *); }; -struct virtio_crypto_mac_create_session_req { - struct virtio_crypto_mac_session_para para; - __u8 padding[40]; +struct gpio_chip { + const char *label; + struct gpio_device *gpiodev; + struct device *parent; + struct fwnode_handle *fwnode; + struct module *owner; + int (*request)(struct gpio_chip *, unsigned int); + void (*free)(struct gpio_chip *, unsigned int); + int (*get_direction)(struct gpio_chip *, unsigned int); + int (*direction_input)(struct gpio_chip *, unsigned int); + int (*direction_output)(struct gpio_chip *, unsigned int, int); + int (*get)(struct gpio_chip *, unsigned int); + int (*get_multiple)(struct gpio_chip *, unsigned long *, unsigned long *); + void (*set)(struct gpio_chip *, unsigned int, int); + void (*set_multiple)(struct gpio_chip *, unsigned long *, unsigned long *); + int (*set_config)(struct gpio_chip *, unsigned int, unsigned long); + int (*to_irq)(struct gpio_chip *, unsigned int); + void (*dbg_show)(struct seq_file *, struct gpio_chip *); + int (*init_valid_mask)(struct gpio_chip *, unsigned long *, unsigned int); + int (*add_pin_ranges)(struct gpio_chip *); + int (*en_hw_timestamp)(struct gpio_chip *, u32, unsigned long); + int (*dis_hw_timestamp)(struct gpio_chip *, u32, unsigned long); + int base; + u16 ngpio; + u16 offset; + const char * const *names; + bool can_sleep; + unsigned long (*read_reg)(void *); + void (*write_reg)(void *, unsigned long); + bool be_bits; + void *reg_dat; + void *reg_set; + void *reg_clr; + void *reg_dir_out; + void *reg_dir_in; + bool bgpio_dir_unreadable; + int bgpio_bits; + raw_spinlock_t bgpio_lock; + unsigned long bgpio_data; + unsigned long bgpio_dir; + struct gpio_irq_chip irq; + unsigned long *valid_mask; + unsigned int of_gpio_n_cells; + int (*of_xlate)(struct gpio_chip *, const struct of_phandle_args *, u32 *); }; -struct virtio_crypto_aead_session_para { - __le32 algo; - __le32 key_len; - __le32 hash_result_len; - __le32 aad_len; - __le32 op; - __le32 padding; +struct pinctrl_gpio_range { + struct list_head node; + const char *name; + unsigned int id; + unsigned int base; + unsigned int pin_base; + unsigned int npins; + const unsigned int *pins; + struct gpio_chip *gc; }; -struct virtio_crypto_aead_create_session_req { - struct virtio_crypto_aead_session_para para; - __u8 padding[32]; +struct jh7110_pinctrl { + struct device *dev; + struct gpio_chip gc; + struct pinctrl_gpio_range gpios; + raw_spinlock_t lock; + void *base; + struct pinctrl_dev *pctl; + struct mutex mutex; + const struct jh7110_pinctrl_soc_info *info; + u32 *saved_regs; }; -struct virtio_crypto_rsa_session_para { - __le32 padding_algo; - __le32 hash_algo; +struct msi_alloc_info { + struct msi_desc *desc; + irq_hw_number_t hwirq; + unsigned long flags; + union { + unsigned long ul; + void *ptr; + } scratchpad[2]; }; -struct virtio_crypto_ecdsa_session_para { - __le32 curve_id; - __le32 padding; -}; +typedef struct msi_alloc_info msi_alloc_info_t; -struct virtio_crypto_akcipher_session_para { - __le32 algo; - __le32 keytype; - __le32 keylen; - union { - struct virtio_crypto_rsa_session_para rsa; - struct virtio_crypto_ecdsa_session_para ecdsa; - } u; +union gpio_irq_fwspec { + struct irq_fwspec fwspec; + msi_alloc_info_t msiinfo; }; -struct virtio_crypto_akcipher_create_session_req { - struct virtio_crypto_akcipher_session_para para; - __u8 padding[36]; +struct jh7110_func_sel { + u16 offset; + u8 shift; + u8 max; }; -struct virtio_crypto_destroy_session_req { - __le64 session_id; - __u8 padding[48]; +struct jh7110_vin_group_sel { + u16 offset; + u8 shift; + u8 group; }; -struct virtio_crypto_op_ctrl_req { - struct virtio_crypto_ctrl_header header; - union { - struct virtio_crypto_sym_create_session_req sym_create_session; - struct virtio_crypto_hash_create_session_req hash_create_session; - struct virtio_crypto_mac_create_session_req mac_create_session; - struct virtio_crypto_aead_create_session_req aead_create_session; - struct virtio_crypto_akcipher_create_session_req akcipher_create_session; - struct virtio_crypto_destroy_session_req destroy_session; - __u8 padding[56]; - } u; +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); }; -struct virtio_crypto_session_input { - __le64 session_id; - __le32 status; - __le32 padding; +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, }; -struct virtio_crypto_inhdr { - __u8 status; +enum { + FB_BLANK_UNBLANK = 0, + FB_BLANK_NORMAL = 1, + FB_BLANK_VSYNC_SUSPEND = 2, + FB_BLANK_HSYNC_SUSPEND = 3, + FB_BLANK_POWERDOWN = 4, }; -struct virtio_crypto_ctrl_request { - struct virtio_crypto_op_ctrl_req ctrl; - struct virtio_crypto_session_input input; - struct virtio_crypto_inhdr ctrl_status; - struct completion compl; +typedef u32 compat_caddr_t; + +struct fb_cmap32 { + u32 start; + u32 len; + compat_caddr_t red; + compat_caddr_t green; + compat_caddr_t blue; + compat_caddr_t transp; }; -struct sunxi_sid_cfg { - u32 value_offset; - u32 size; - bool need_register_readout; +struct fb_fix_screeninfo32 { + char id[16]; + compat_caddr_t smem_start; + u32 smem_len; + u32 type; + u32 type_aux; + u32 visual; + u16 xpanstep; + u16 ypanstep; + u16 ywrapstep; + u32 line_length; + compat_caddr_t mmio_start; + u32 mmio_len; + u32 accel; + u16 reserved[3]; }; -struct sunxi_sid { - void *base; - u32 value_offset; +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, }; -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, +struct acpi_hardware_id { + struct list_head list; + const char *id; }; -typedef void (*btf_trace_netlink_extack)(void *, const char *); +typedef int (*acpi_op_add)(struct acpi_device *); -struct listeners; +typedef void (*acpi_op_remove)(struct acpi_device *); -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); - int registered; -}; +typedef void (*acpi_op_notify)(struct acpi_device *, u32); -struct listeners { - struct callback_head rcu; - unsigned long masks[0]; +struct acpi_device_ops { + acpi_op_add add; + acpi_op_remove remove; + acpi_op_notify notify; }; -struct net_proto_family { - int family; - int (*create)(struct net *, struct socket *, int, int); +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; }; -enum netlink_skb_flags { - NETLINK_SKB_DST = 8, +typedef void (*acpi_object_handler)(acpi_handle, void *); + +typedef void (*acpi_notify_handler)(acpi_handle, u32, void *); + +typedef acpi_status (*acpi_table_handler)(u32, void *, void *); + +struct acpi_dev_walk_context { + int (*fn)(struct acpi_device *, void *); + void *data; }; enum { - NETLINK_UNCONNECTED = 0, - NETLINK_CONNECTED = 1, + 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, }; -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 acpi_common_descriptor { + void *common_pointer; + u8 descriptor_type; }; -struct trace_event_raw_netlink_extack { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; -}; +union acpi_operand_object; -struct netlink_tap { - struct net_device *dev; - struct module *module; - struct list_head list; +struct acpi_object_common { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; }; -struct socket_alloc { - struct socket socket; - struct inode vfs_inode; +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 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 acpi_object_string { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + char *pointer; + u32 length; }; -struct rhlist_head { - struct rhash_head rhead; - struct rhlist_head __attribute__((btf_type_tag("rcu"))) *next; -}; +struct acpi_namespace_node; -struct sockaddr_nl { - __kernel_sa_family_t nl_family; - unsigned short nl_pad; - __u32 nl_pid; - __u32 nl_groups; +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 trace_event_data_offsets_netlink_extack { - u32 msg; +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 netlink_tap_net { - struct list_head netlink_tap_all; - struct mutex netlink_tap_lock; +struct acpi_object_event { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + void *os_semaphore; }; -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 acpi_walk_state; -struct netlink_set_err_data { - struct sock *exclude_sk; - u32 portid; - u32 group; - int code; -}; +typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *); -struct netlink_compare_arg { - possible_net_t pnet; - u32 portid; +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 scm_fp_list; +struct acpi_thread_state; -struct scm_cookie { - struct pid *pid; - struct scm_fp_list *fp; - struct scm_creds creds; - u32 secid; +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; }; -struct scm_fp_list { - short count; - short max; - struct user_struct *user; - struct file *fp[253]; +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 nl_pktinfo { - __u32 group; +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 ucred { - __u32 pid; - __u32 uid; - __u32 gid; +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 rhashtable_walker { - struct list_head list; - struct bucket_table *tbl; +struct acpi_object_power_resource { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; + u32 system_level; + u32 resource_order; }; -struct 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 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 nl_seq_iter { - struct seq_net_private p; - struct rhashtable_iter hti; - int link; +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 bpf_iter__netlink { - union { - struct bpf_iter_meta *meta; - }; - union { - struct netlink_sock *sk; - }; +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 netlink_dump_control { - int (*start)(struct netlink_callback *); - int (*dump)(struct sk_buff *, struct netlink_callback *); - int (*done)(struct netlink_callback *); - struct netlink_ext_ack *extack; - void *data; - struct module *module; - u32 min_dump_alloc; +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 nlmsgerr { - int error; - struct nlmsghdr msg; +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 netlink_notify { - struct net *net; - u32 portid; - int protocol; +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; }; -enum tcp_synack_type { - TCP_SYNACK_NORMAL = 0, - TCP_SYNACK_FASTOPEN = 1, - TCP_SYNACK_COOKIE = 2, +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; }; -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 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]; }; -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; - }; - }; -}; +typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *); -struct tcp_request_sock_ops; +typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **); -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; - u32 txhash; - u32 rcv_isn; - u32 snt_isn; - u32 ts_off; - u32 last_oow_ack_time; - u32 rcv_nxt; - u8 syn_tos; +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 tcp_request_sock_ops { - u16 mss_clamp; - struct dst_entry * (*route_req)(const struct sock *, struct sk_buff *, struct flowi *, struct request_sock *); - u32 (*init_seq)(const struct sk_buff *); - u32 (*init_ts_off)(const struct net *, const struct sk_buff *); - int (*send_synack)(const struct sock *, struct dst_entry *, struct flowi *, struct request_sock *, struct tcp_fastopen_cookie *, enum tcp_synack_type, struct sk_buff *); +struct 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; }; -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, +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; }; -enum { - ICMP6_MIB_NUM = 0, - ICMP6_MIB_INMSGS = 1, - ICMP6_MIB_INERRORS = 2, - ICMP6_MIB_OUTMSGS = 3, - ICMP6_MIB_OUTERRORS = 4, - ICMP6_MIB_CSUMERRORS = 5, - ICMP6_MIB_RATELIMITHOST = 6, - __ICMP6_MIB_MAX = 7, +struct 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; }; -enum { - NDUSEROPT_UNSPEC = 0, - NDUSEROPT_SRCADDR = 1, - __NDUSEROPT_MAX = 2, +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; }; -struct nd_msg { - struct icmp6hdr icmph; - struct in6_addr target; - __u8 opt[0]; +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 rs_msg { - struct icmp6hdr icmph; - __u8 opt[0]; +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 ra_msg { - struct icmp6hdr icmph; - __be32 reachable_time; - __be32 retrans_timer; -}; +union acpi_parse_object; -struct rd_msg { - struct icmp6hdr icmph; - struct in6_addr target; - struct in6_addr dest; - __u8 opt[0]; +union acpi_parse_value { + u64 integer; + u32 size; + char *string; + u8 *buffer; + char *name; + union acpi_parse_object *arg; }; -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 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 ipv4_addr_key { - __be32 addr; - int vif; +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 inetpeer_addr { - union { - struct ipv4_addr_key a4; - struct in6_addr a6; - u32 key[4]; - }; - __u16 family; +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]; }; -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; +union acpi_parse_object { + struct acpi_parse_obj_common common; + struct acpi_parse_obj_named named; + struct acpi_parse_obj_asl asl; }; -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; +union acpi_descriptor { + struct acpi_common_descriptor common; + union acpi_operand_object object; + struct acpi_namespace_node node; + union acpi_parse_object op; }; -struct netdev_notifier_change_info { - struct netdev_notifier_info info; - unsigned int flags_changed; +union acpi_generic_state; + +struct acpi_parse_state { + u8 *aml_start; + u8 *aml; + u8 *aml_end; + u8 *pkg_start; + u8 *pkg_end; + union acpi_parse_object *start_op; + struct acpi_namespace_node *start_node; + union acpi_generic_state *scope; + union acpi_parse_object *start_scope; + u32 aml_size; }; -typedef void (*btf_trace_rpc_xdr_sendto)(void *, const struct rpc_task *, const struct xdr_buf *); +typedef acpi_status (*acpi_parse_downwards)(struct acpi_walk_state *, union acpi_parse_object **); -typedef void (*btf_trace_rpc_xdr_recvfrom)(void *, const struct rpc_task *, const struct xdr_buf *); +typedef acpi_status (*acpi_parse_upwards)(struct acpi_walk_state *); -typedef void (*btf_trace_rpc_xdr_reply_pages)(void *, const struct rpc_task *, const struct xdr_buf *); +struct acpi_opcode_info; -typedef void (*btf_trace_rpc_clnt_free)(void *, const struct rpc_clnt *); - -typedef void (*btf_trace_rpc_clnt_killall)(void *, const struct rpc_clnt *); +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; +}; -typedef void (*btf_trace_rpc_clnt_shutdown)(void *, const struct rpc_clnt *); +struct acpi_common_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; +}; -typedef void (*btf_trace_rpc_clnt_release)(void *, const struct rpc_clnt *); +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; +}; -typedef void (*btf_trace_rpc_clnt_replace_xprt)(void *, const struct rpc_clnt *); +struct acpi_update_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + union acpi_operand_object *object; +}; -typedef void (*btf_trace_rpc_clnt_replace_xprt_err)(void *, const struct rpc_clnt *); +struct acpi_scope_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + struct acpi_namespace_node *node; +}; -struct rpc_create_args; +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; +}; -typedef void (*btf_trace_rpc_clnt_new)(void *, const struct rpc_clnt *, const struct rpc_xprt *, const struct rpc_create_args *); +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 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 xprtsec_parms xprtsec; +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; }; -typedef void (*btf_trace_rpc_clnt_new_err)(void *, const char *, const char *, int); +struct acpi_result_values { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + union acpi_operand_object *obj_desc[8]; +}; -typedef void (*btf_trace_rpc_clnt_clone_err)(void *, const struct rpc_clnt *, int); +struct acpi_global_notify_handler; -typedef void (*btf_trace_rpc_call_status)(void *, const struct rpc_task *); +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; +}; -typedef void (*btf_trace_rpc_connect_status)(void *, const struct rpc_task *); +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; +}; -typedef void (*btf_trace_rpc_timeout_status)(void *, const struct rpc_task *); +struct acpi_global_notify_handler { + acpi_notify_handler handler; + void *context; +}; -typedef void (*btf_trace_rpc_retry_refresh_status)(void *, const struct rpc_task *); +struct acpi_opcode_info { + u32 parse_args; + u32 runtime_args; + u16 flags; + u8 object_type; + u8 class; + u8 type; +}; -typedef void (*btf_trace_rpc_refresh_status)(void *, const struct rpc_task *); +struct acpi_gpe_xrupt_info; -typedef void (*btf_trace_rpc_request)(void *, const struct rpc_task *); +struct acpi_gpe_register_info; -typedef void (*btf_trace_rpc_task_begin)(void *, const struct rpc_task *, const void *); +struct acpi_gpe_event_info; -typedef void (*btf_trace_rpc_task_run_action)(void *, const struct rpc_task *, const void *); +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; +}; -typedef void (*btf_trace_rpc_task_sync_sleep)(void *, const struct rpc_task *, const void *); +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; +}; -typedef void (*btf_trace_rpc_task_sync_wake)(void *, const struct rpc_task *, const void *); +struct acpi_gpe_address { + u8 space_id; + u64 address; +}; -typedef void (*btf_trace_rpc_task_complete)(void *, const struct rpc_task *, const void *); +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; +}; -typedef void (*btf_trace_rpc_task_timeout)(void *, const struct rpc_task *, const void *); +struct acpi_gpe_handler_info; -typedef void (*btf_trace_rpc_task_signalled)(void *, const struct rpc_task *, const void *); +struct acpi_gpe_notify_info; -typedef void (*btf_trace_rpc_task_end)(void *, const struct rpc_task *, const void *); +union acpi_gpe_dispatch_info { + struct acpi_namespace_node *method_node; + struct acpi_gpe_handler_info *handler; + struct acpi_gpe_notify_info *notify_list; +}; -typedef void (*btf_trace_rpc_task_call_done)(void *, const struct rpc_task *, const void *); +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 void (*btf_trace_rpc_task_sleep)(void *, const struct rpc_task *, const struct rpc_wait_queue *); +typedef u32 (*acpi_gpe_handler)(acpi_handle, u32, void *); -typedef void (*btf_trace_rpc_task_wakeup)(void *, const struct rpc_task *, const struct rpc_wait_queue *); +struct acpi_gpe_handler_info { + acpi_gpe_handler address; + void *context; + struct acpi_namespace_node *method_node; + u8 original_flags; + u8 originally_enabled; +}; -typedef void (*btf_trace_rpc_bad_callhdr)(void *, const struct rpc_task *); +struct acpi_gpe_notify_info { + struct acpi_namespace_node *device_node; + struct acpi_gpe_notify_info *next; +}; -typedef void (*btf_trace_rpc_bad_verifier)(void *, const struct rpc_task *); +union acpi_predefined_info; -typedef void (*btf_trace_rpc__prog_unavail)(void *, const struct rpc_task *); +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; +}; -typedef void (*btf_trace_rpc__prog_mismatch)(void *, const struct rpc_task *); +struct acpi_name_info { + char name[4]; + u16 argument_list; + u8 expected_btypes; +} __attribute__((packed)); -typedef void (*btf_trace_rpc__proc_unavail)(void *, const struct rpc_task *); +struct acpi_package_info { + u8 type; + u8 object_type1; + u8 count1; + u8 object_type2; + u8 count2; + u16 reserved; +} __attribute__((packed)); -typedef void (*btf_trace_rpc__garbage_args)(void *, const struct rpc_task *); +struct acpi_package_info2 { + u8 type; + u8 count; + u8 object_type[4]; + u8 reserved; +}; -typedef void (*btf_trace_rpc__unparsable)(void *, const struct rpc_task *); +struct acpi_package_info3 { + u8 type; + u8 count; + u8 object_type[2]; + u8 tail_object_type; + u16 reserved; +} __attribute__((packed)); -typedef void (*btf_trace_rpc__mismatch)(void *, const struct rpc_task *); +struct acpi_package_info4 { + u8 type; + u8 object_type1; + u8 count1; + u8 sub_object_types; + u8 pkg_count; + u16 reserved; +} __attribute__((packed)); -typedef void (*btf_trace_rpc__stale_creds)(void *, const struct rpc_task *); +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; +}; -typedef void (*btf_trace_rpc__bad_creds)(void *, const struct rpc_task *); +struct acpi_rw_lock { + void *writer_mutex; + void *reader_mutex; + u32 num_readers; +}; -typedef void (*btf_trace_rpc__auth_tooweak)(void *, const struct rpc_task *); +typedef u32 acpi_mutex_handle; -typedef void (*btf_trace_rpcb_prog_unavail_err)(void *, const struct rpc_task *); +typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); -typedef void (*btf_trace_rpcb_timeout_err)(void *, const struct rpc_task *); +struct acpi_pnp_device_id { + u32 length; + char *string; +}; -typedef void (*btf_trace_rpcb_bind_version_err)(void *, const struct rpc_task *); +struct acpi_pnp_device_id_list { + u32 count; + u32 list_size; + struct acpi_pnp_device_id ids[0]; +}; -typedef void (*btf_trace_rpcb_unreachable_err)(void *, const struct rpc_task *); +struct acpi_get_devices_info { + acpi_walk_callback user_function; + void *context; + const char *hid; +}; -typedef void (*btf_trace_rpcb_unrecognized_err)(void *, const struct rpc_task *); +struct acpi_table_rsdp { + char signature[8]; + u8 checksum; + char oem_id[6]; + u8 revision; + u32 rsdt_physical_address; + u32 length; + u64 xsdt_physical_address; + u8 extended_checksum; + u8 reserved[3]; +} __attribute__((packed)); -typedef void (*btf_trace_rpc_buf_alloc)(void *, const struct rpc_task *, int); +typedef u8 acpi_adr_space_type; -typedef void (*btf_trace_rpc_call_rpcerror)(void *, const struct rpc_task *, int, int); +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, +}; -typedef void (*btf_trace_rpc_stats_latency)(void *, const struct rpc_task *, ktime_t, ktime_t, ktime_t); +struct dmi_strmatch { + unsigned char slot: 7; + unsigned char exact_match: 1; + char substr[79]; +}; -typedef void (*btf_trace_rpc_xdr_overflow)(void *, const struct xdr_stream *, size_t); +struct dmi_system_id { + int (*callback)(const struct dmi_system_id *); + const char *ident; + struct dmi_strmatch matches[4]; + void *driver_data; +}; -typedef void (*btf_trace_rpc_xdr_alignment)(void *, const struct xdr_stream *, size_t, unsigned int); +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, +}; -typedef void (*btf_trace_rpc_socket_state_change)(void *, struct rpc_xprt *, struct socket *); +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, +}; -typedef void (*btf_trace_rpc_socket_connect)(void *, struct rpc_xprt *, struct socket *, int); +struct power_supply; -typedef void (*btf_trace_rpc_socket_error)(void *, struct rpc_xprt *, struct socket *, int); +union power_supply_propval; -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 *); +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; +}; -typedef void (*btf_trace_rpc_socket_shutdown)(void *, struct rpc_xprt *, struct socket *); +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 sock_xprt; +struct power_supply_battery_info; -typedef void (*btf_trace_rpc_socket_nospace)(void *, const struct rpc_rqst *, const struct sock_xprt *); +struct thermal_zone_device; -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 completion handshake_done; - struct __kernel_sockaddr_storage srcaddr; - unsigned short srcport; - int xprt_err; - struct rpc_clnt *clnt; - 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 power_supply { + const struct power_supply_desc *desc; + char **supplied_to; + size_t num_supplicants; + char **supplied_from; + size_t num_supplies; + struct device_node *of_node; + void *drv_data; + struct device dev; + struct work_struct changed_work; + struct delayed_work deferred_register_work; + spinlock_t changed_lock; + bool changed; + bool initialized; + bool removing; + atomic_t use_cnt; + struct power_supply_battery_info *battery_info; + struct thermal_zone_device *tzd; + struct thermal_cooling_device *tcd; }; -typedef void (*btf_trace_xprt_create)(void *, const struct rpc_xprt *); +union power_supply_propval { + int intval; + const char *strval; +}; -typedef void (*btf_trace_xprt_connect)(void *, const struct rpc_xprt *); +struct power_supply_maintenance_charge_table; -typedef void (*btf_trace_xprt_disconnect_auto)(void *, const struct rpc_xprt *); +struct power_supply_battery_ocv_table; -typedef void (*btf_trace_xprt_disconnect_done)(void *, const struct rpc_xprt *); +struct power_supply_resistance_temp_table; -typedef void (*btf_trace_xprt_disconnect_force)(void *, const struct rpc_xprt *); +struct power_supply_vbat_ri_table; -typedef void (*btf_trace_xprt_destroy)(void *, const struct rpc_xprt *); +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; +}; -typedef void (*btf_trace_xprt_timer)(void *, const struct rpc_xprt *, __be32, int); +struct power_supply_maintenance_charge_table { + int charge_current_max_ua; + int charge_voltage_max_uv; + int charge_safety_timer_minutes; +}; -typedef void (*btf_trace_xprt_lookup_rqst)(void *, const struct rpc_xprt *, __be32, int); +struct power_supply_battery_ocv_table { + int ocv; + int capacity; +}; -typedef void (*btf_trace_xprt_transmit)(void *, const struct rpc_rqst *, int); +struct power_supply_resistance_temp_table { + int temp; + int resistance; +}; -typedef void (*btf_trace_xprt_retransmit)(void *, const struct rpc_rqst *); +struct power_supply_vbat_ri_table { + int vbat_uv; + int ri_uohm; +}; -typedef void (*btf_trace_xprt_ping)(void *, const struct rpc_xprt *, int); +struct acpi_bus_event { + struct list_head node; + acpi_device_class device_class; + acpi_bus_id bus_id; + u32 type; + u32 data; +}; -typedef void (*btf_trace_xprt_reserve_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); +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; +}; -typedef void (*btf_trace_xprt_release_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct clk_fractional_divider { + struct clk_hw hw; + void *reg; + u8 mshift; + u8 mwidth; + u8 nshift; + u8 nwidth; + u8 flags; + void (*approximation)(struct clk_hw *, unsigned long, unsigned long *, unsigned long *, unsigned long *); + spinlock_t *lock; +}; -typedef void (*btf_trace_xprt_reserve_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct u32_fract { + __u32 numerator; + __u32 denominator; +}; -typedef void (*btf_trace_xprt_release_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct pm_domain_data { + struct list_head list_node; + struct device *dev; +}; -typedef void (*btf_trace_xprt_get_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct regulator_consumer_supply { + const char *dev_name; + const char *supply; +}; -typedef void (*btf_trace_xprt_put_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct fixed_dev_type { + bool has_enable_clock; + bool has_performance_state; +}; -typedef void (*btf_trace_xprt_reserve)(void *, const struct rpc_rqst *); +struct fixed_voltage_config { + const char *supply_name; + const char *input_supply; + int microvolts; + unsigned int startup_delay; + unsigned int off_on_delay; + unsigned int enabled_at_boot: 1; + struct regulator_init_data *init_data; +}; -typedef void (*btf_trace_xs_data_ready)(void *, const struct rpc_xprt *); +struct fixed_voltage_data { + struct regulator_desc desc; + struct regulator_dev *dev; + struct clk *enable_clock; + unsigned int enable_counter; + int performance_state; +}; -typedef void (*btf_trace_xs_stream_read_data)(void *, struct rpc_xprt *, ssize_t, size_t); +struct con_driver { + const struct consw *con; + const char *desc; + struct device *dev; + int node; + int first; + int last; + int flag; +}; -typedef void (*btf_trace_xs_stream_read_request)(void *, struct sock_xprt *); +struct vc { + struct vc_data *d; + struct work_struct SAK_work; +}; -typedef void (*btf_trace_rpcb_getport)(void *, const struct rpc_clnt *, const struct rpc_task *, unsigned int); +struct interval { + uint32_t first; + uint32_t last; +}; -typedef void (*btf_trace_rpcb_setport)(void *, const struct rpc_task *, int, unsigned short); +enum { + blank_off = 0, + blank_normal_wait = 1, + blank_vesa_wait = 2, +}; -typedef void (*btf_trace_pmap_register)(void *, u32, u32, int, unsigned short); +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, +}; -typedef void (*btf_trace_rpcb_register)(void *, u32, u32, const char *, const char *); +enum { + EPecma = 0, + EPdec = 1, + EPeq = 2, + EPgt = 3, + EPlt = 4, +}; -typedef void (*btf_trace_rpcb_unregister)(void *, u32, u32, const char *); +struct tiocl_selection { + unsigned short xs; + unsigned short ys; + unsigned short xe; + unsigned short ye; + unsigned short sel_mode; +}; -typedef void (*btf_trace_rpc_tls_unavailable)(void *, const struct rpc_clnt *, const struct rpc_xprt *); +struct vt_notifier_param { + struct vc_data *vc; + unsigned int c; +}; -typedef void (*btf_trace_rpc_tls_not_started)(void *, const struct rpc_clnt *, const struct rpc_xprt *); +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; +}; -typedef void (*btf_trace_svc_xdr_recvfrom)(void *, const struct xdr_buf *); +struct vc_draw_region { + unsigned long from; + unsigned long to; + int x; +}; -typedef void (*btf_trace_svc_xdr_sendto)(void *, __be32, const struct xdr_buf *); +struct rgb { + u8 r; + u8 g; + u8 b; +}; -typedef void (*btf_trace_svc_authenticate)(void *, const struct svc_rqst *, int); +struct wake_irq { + struct device *dev; + unsigned int status; + int irq; + const char *name; +}; -typedef void (*btf_trace_svc_process)(void *, const struct svc_rqst *, const char *); +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, +}; -typedef void (*btf_trace_svc_defer)(void *, const struct svc_rqst *); +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, +}; -typedef void (*btf_trace_svc_drop)(void *, const struct svc_rqst *); +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, +}; -typedef void (*btf_trace_svc_send)(void *, const struct svc_rqst *, int); +enum ata_dev_iter_mode { + ATA_DITER_ENABLED = 0, + ATA_DITER_ENABLED_REVERSE = 1, + ATA_DITER_ALL = 2, + ATA_DITER_ALL_REVERSE = 3, +}; -typedef void (*btf_trace_svc_replace_page_err)(void *, const struct svc_rqst *); +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, + e1000_pch_nvp = 19, +}; -typedef void (*btf_trace_svc_stats_latency)(void *, const struct svc_rqst *); +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, +}; -typedef void (*btf_trace_svc_xprt_create_err)(void *, const char *, const char *, struct sockaddr *, size_t, const struct svc_xprt *); +enum e1000_1000t_rx_status { + e1000_1000t_rx_status_not_ok = 0, + e1000_1000t_rx_status_ok = 1, + e1000_1000t_rx_status_undefined = 255, +}; -typedef void (*btf_trace_svc_xprt_enqueue)(void *, const struct svc_xprt *, const struct svc_rqst *); +enum e1000_ms_type { + e1000_ms_hw_default = 0, + e1000_ms_force_master = 1, + e1000_ms_force_slave = 2, + e1000_ms_auto = 3, +}; -typedef void (*btf_trace_svc_xprt_dequeue)(void *, const struct svc_rqst *); +enum e1000_rev_polarity { + e1000_rev_polarity_normal = 0, + e1000_rev_polarity_reversed = 1, + e1000_rev_polarity_undefined = 255, +}; -typedef void (*btf_trace_svc_xprt_no_write_space)(void *, const struct svc_xprt *); +enum e1000_smart_speed { + e1000_smart_speed_default = 0, + e1000_smart_speed_on = 1, + e1000_smart_speed_off = 2, +}; -typedef void (*btf_trace_svc_xprt_close)(void *, const struct svc_xprt *); +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, +}; -typedef void (*btf_trace_svc_xprt_detach)(void *, const struct svc_xprt *); +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, +}; -typedef void (*btf_trace_svc_xprt_free)(void *, const struct svc_xprt *); +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, +}; -typedef void (*btf_trace_svc_tls_start)(void *, const struct svc_xprt *); +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, +}; -typedef void (*btf_trace_svc_tls_upcall)(void *, const struct svc_xprt *); +enum e1000_nvm_override { + e1000_nvm_override_none = 0, + e1000_nvm_override_spi_small = 1, + e1000_nvm_override_spi_large = 2, +}; -typedef void (*btf_trace_svc_tls_unavailable)(void *, const struct svc_xprt *); +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, +}; -typedef void (*btf_trace_svc_tls_not_started)(void *, const struct svc_xprt *); +enum e1000_ulp_state { + e1000_ulp_state_unknown = 0, + e1000_ulp_state_off = 1, + e1000_ulp_state_on = 2, +}; -typedef void (*btf_trace_svc_tls_timed_out)(void *, const struct svc_xprt *); +struct e1000_dev_spec_82571 { + bool laa_is_present; + u32 smb_counter; +}; -typedef void (*btf_trace_svc_xprt_accept)(void *, const struct svc_xprt *, const char *); +struct e1000_dev_spec_80003es2lan { + bool mdic_wa_enable; +}; -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)(void *, const void *, const struct socket *); - -typedef void (*btf_trace_svcsock_free)(void *, const 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); +struct e1000_shadow_ram { + u16 value; + bool modified; +}; -typedef void (*btf_trace_svc_noregister)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); +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; +}; -typedef void (*btf_trace_svc_unregister)(void *, const char *, const u32, int); +struct e1000_hw; -struct rpc_buffer { - size_t len; - char data[0]; +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 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 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 trace_event_raw_rpc_clnt_class { - struct trace_entry ent; - unsigned int client_id; - char __data[0]; +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 trace_event_raw_rpc_clnt_new { - struct trace_entry ent; - unsigned int client_id; - unsigned long xprtsec; - unsigned long flags; - u32 __data_loc_program; - u32 __data_loc_server; - u32 __data_loc_addr; - u32 __data_loc_port; - char __data[0]; +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 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 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 trace_event_raw_rpc_clnt_clone_err { - struct trace_entry ent; - unsigned int client_id; - int error; - char __data[0]; +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 trace_event_raw_rpc_task_status { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - int status; - char __data[0]; +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 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 e1000_bus_info { + enum e1000_bus_width width; + u16 func; }; -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 e1000_host_mng_dhcp_cookie { + u32 signature; + u8 status; + u8 reserved0; + u16 vlan_id; + u32 reserved1; + u16 reserved2; + u8 reserved3; + u8 checksum; }; -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 e1000_adapter; -struct trace_event_raw_rpc_failure { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - char __data[0]; +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 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 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 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 e1000_phy_stats { + u32 idle_errors; + u32 receive_errors; }; -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 e1000_phy_regs { + u16 bmcr; + u16 bmsr; + u16 advertise; + u16 lpa; + u16 expansion; + u16 ctrl1000; + u16 stat1000; + u16 estatus; }; -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 e1000_buffer; -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 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 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 hwtstamp_config { + int flags; + int tx_type; + int rx_filter; }; -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 cyclecounter { + u64 (*read)(const struct cyclecounter *); + u64 mask; + u32 mult; + u32 shift; }; -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 timecounter { + const struct cyclecounter *cc; + u64 cycle_last; + u64 nsec; + u64 mask; + u64 frac; }; -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 e1000_info; -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 msix_entry; -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 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: 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: 64; + 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; }; -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 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 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 e1000_ps_page; -struct trace_event_raw_xprt_ping { - struct trace_entry ent; - int status; - u32 __data_loc_addr; - u32 __data_loc_port; - char __data[0]; +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 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 e1000_ps_page { + struct page *page; + u64 dma; }; -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 msix_entry { + u32 vector; + u16 entry; }; -struct trace_event_raw_xprt_reserve { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - u32 xid; - char __data[0]; -}; +typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); -struct trace_event_raw_xs_data_ready { - struct trace_entry ent; - u32 __data_loc_addr; - u32 __data_loc_port; - char __data[0]; -}; +struct us_data; -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]; -}; +typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data *); -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]; -}; +typedef int (*trans_reset)(struct us_data *); -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]; -}; +typedef void (*proto_cmnd)(struct scsi_cmnd *, struct us_data *); -struct trace_event_raw_rpcb_setport { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; +struct usb_sg_request { int status; - unsigned short port; - char __data[0]; + size_t bytes; + spinlock_t lock; + struct usb_device *dev; + int pipe; + int entries; + struct urb **urbs; + int count; + struct completion complete; }; -struct trace_event_raw_pmap_register { - struct trace_entry ent; - unsigned int program; - unsigned int version; - int protocol; - unsigned int port; - char __data[0]; -}; +typedef void (*extra_data_destructor)(void *); -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]; -}; +typedef void (*pm_hook)(struct us_data *, int); -struct trace_event_raw_rpcb_unregister { - struct trace_entry ent; - unsigned int program; - unsigned int version; - u32 __data_loc_netid; - char __data[0]; -}; +struct us_unusual_dev; -struct trace_event_raw_rpc_tls_class { - struct trace_entry ent; - unsigned long requested_policy; - u32 version; - u32 __data_loc_servername; - u32 __data_loc_progname; - char __data[0]; -}; +struct usb_ctrlrequest; -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 us_data { + struct mutex dev_mutex; + struct usb_device *pusb_dev; + struct usb_interface *pusb_intf; + const struct us_unusual_dev *unusual_dev; + u64 fflags; + unsigned long dflags; + unsigned int send_bulk_pipe; + unsigned int recv_bulk_pipe; + unsigned int send_ctrl_pipe; + unsigned int recv_ctrl_pipe; + unsigned int recv_intr_pipe; + char *transport_name; + char *protocol_name; + __le32 bcs_signature; + u8 subclass; + u8 protocol; + u8 max_lun; + u8 ifnum; + u8 ep_bInterval; + trans_cmnd transport; + trans_reset transport_reset; + proto_cmnd proto_handler; + struct scsi_cmnd *srb; + unsigned int tag; + char scsi_name[32]; + struct urb *current_urb; + struct usb_ctrlrequest *cr; + struct usb_sg_request current_sg; + unsigned char *iobuf; + dma_addr_t iobuf_dma; + struct task_struct *ctl_thread; + struct completion cmnd_ready; + struct completion notify; + wait_queue_head_t delay_wait; + struct delayed_work scan_dwork; + void *extra; + extra_data_destructor extra_destructor; + pm_hook suspend_resume_hook; + int use_last_sector_hacks; + int last_sector_retries; }; -struct 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 us_unusual_dev { + const char *vendorName; + const char *productName; + __u8 useProtocol; + __u8 useTransport; + int (*initFunction)(struct us_data *); }; -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 usb_ctrlrequest { + __u8 bRequestType; + __u8 bRequest; + __le16 wValue; + __le16 wIndex; + __le16 wLength; }; -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]; +enum ps2_disposition { + PS2_PROCESS = 0, + PS2_IGNORE = 1, + PS2_ERROR = 2, }; -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 ps2dev; -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; +typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int); + +typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8); + +struct ps2dev { + struct serio *serio; + struct mutex cmd_mutex; + wait_queue_head_t wait; unsigned long flags; - char __data[0]; + u8 cmdbuf[8]; + u8 cmdcnt; + u8 nak; + ps2_pre_receive_handler_t pre_receive_handler; + ps2_receive_handler_t receive_handler; }; -struct trace_event_raw_svc_replace_page_err { - struct trace_entry ent; - u32 __data_loc_server; - u32 __data_loc_client; - unsigned int netns_ino; - u32 xid; - const void *begin; - const void *respages; - const void *nextpage; - char __data[0]; +struct vivaldi_data { + u32 function_row_physmap[24]; + unsigned int num_function_row_keys; }; -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 atkbd { + struct ps2dev ps2dev; + struct input_dev *dev; + char name[64]; + char phys[32]; + unsigned short id; + unsigned short keycode[512]; + unsigned long force_release_mask[8]; + unsigned char set; + bool translated; + bool extra; + bool write; + bool softrepeat; + bool softraw; + bool scroll; + bool enabled; + unsigned char emul; + bool resend; + bool release; + unsigned long xl_bit; + unsigned int last; + unsigned long time; + unsigned long err_count; + struct delayed_work event_work; + unsigned long event_jiffies; + unsigned long event_mask; + struct mutex mutex; + struct vivaldi_data vdata; }; -struct 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]; -}; +typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long); -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]; -}; +typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long); -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]; +typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *); + +enum thermal_device_mode { + THERMAL_DEVICE_DISABLED = 0, + THERMAL_DEVICE_ENABLED = 1, }; -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]; +enum thermal_trend { + THERMAL_TREND_STABLE = 0, + THERMAL_TREND_RAISING = 1, + THERMAL_TREND_DROPPING = 2, }; -struct trace_event_raw_svc_wake_up { - struct trace_entry ent; - int pid; - char __data[0]; -}; +struct thermal_trip; -struct trace_event_raw_svc_alloc_arg_err { - struct trace_entry ent; - unsigned int requested; - unsigned int allocated; - char __data[0]; +struct thermal_zone_device_ops { + int (*bind)(struct thermal_zone_device *, struct thermal_cooling_device *); + int (*unbind)(struct thermal_zone_device *, struct thermal_cooling_device *); + int (*get_temp)(struct thermal_zone_device *, int *); + int (*set_trips)(struct thermal_zone_device *, int, int); + int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode); + int (*set_trip_temp)(struct thermal_zone_device *, int, int); + int (*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 *, const struct thermal_trip *, enum thermal_trend *); + void (*hot)(struct thermal_zone_device *); + void (*critical)(struct thermal_zone_device *); }; -struct trace_event_raw_svc_deferred_event { - struct trace_entry ent; - const void *dr; - u32 xid; - u32 __data_loc_addr; - char __data[0]; +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 trace_event_raw_svcsock_lifetime_class { - struct trace_entry ent; - unsigned int netns_ino; - const void *svsk; - const void *sk; - unsigned long type; - unsigned long family; - unsigned long state; - char __data[0]; -}; +struct thermal_attr; -struct trace_event_raw_svcsock_marker { - struct trace_entry ent; - unsigned int length; - bool last; - u32 __data_loc_addr; - char __data[0]; -}; +struct thermal_zone_params; -struct trace_event_raw_svcsock_class { - struct trace_entry ent; - ssize_t result; - unsigned long flags; - u32 __data_loc_addr; - char __data[0]; -}; +struct thermal_governor; -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 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 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 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]; +enum thermal_trip_type { + THERMAL_TRIP_ACTIVE = 0, + THERMAL_TRIP_PASSIVE = 1, + THERMAL_TRIP_HOT = 2, + THERMAL_TRIP_CRITICAL = 3, }; -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 thermal_trip { + int temperature; + int hysteresis; + enum thermal_trip_type type; + void *priv; }; -struct trace_event_raw_cache_event { - struct trace_entry ent; - const struct cache_head *h; - u32 __data_loc_name; - char __data[0]; +struct thermal_zone_params { + char governor_name[20]; + bool no_hwmon; + u32 sustainable_power; + s32 k_po; + s32 k_pu; + s32 k_i; + s32 k_d; + s32 integral_cutoff; + int slope; + int offset; }; -struct 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 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 *, const struct thermal_trip *); + struct list_head governor_list; }; -struct trace_event_raw_svc_unregister { - struct trace_entry ent; - u32 version; - int error; - u32 __data_loc_program; - char __data[0]; +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 trace_event_data_offsets_rpc_clnt_new { - u32 program; - u32 server; - u32 addr; - u32 port; +enum hwmon_chip_attributes { + hwmon_chip_temp_reset_history = 0, + hwmon_chip_in_reset_history = 1, + hwmon_chip_curr_reset_history = 2, + hwmon_chip_power_reset_history = 3, + hwmon_chip_register_tz = 4, + hwmon_chip_update_interval = 5, + hwmon_chip_alarms = 6, + hwmon_chip_samples = 7, + hwmon_chip_curr_samples = 8, + hwmon_chip_in_samples = 9, + hwmon_chip_power_samples = 10, + hwmon_chip_temp_samples = 11, + hwmon_chip_beep_enable = 12, }; -struct trace_event_data_offsets_rpc_clnt_new_err { - u32 program; - u32 server; +enum hwmon_temp_attributes { + hwmon_temp_enable = 0, + hwmon_temp_input = 1, + hwmon_temp_type = 2, + hwmon_temp_lcrit = 3, + hwmon_temp_lcrit_hyst = 4, + hwmon_temp_min = 5, + hwmon_temp_min_hyst = 6, + hwmon_temp_max = 7, + hwmon_temp_max_hyst = 8, + hwmon_temp_crit = 9, + hwmon_temp_crit_hyst = 10, + hwmon_temp_emergency = 11, + hwmon_temp_emergency_hyst = 12, + hwmon_temp_alarm = 13, + hwmon_temp_lcrit_alarm = 14, + hwmon_temp_min_alarm = 15, + hwmon_temp_max_alarm = 16, + hwmon_temp_crit_alarm = 17, + hwmon_temp_emergency_alarm = 18, + hwmon_temp_fault = 19, + hwmon_temp_offset = 20, + hwmon_temp_label = 21, + hwmon_temp_lowest = 22, + hwmon_temp_highest = 23, + hwmon_temp_reset_history = 24, + hwmon_temp_rated_min = 25, + hwmon_temp_rated_max = 26, + hwmon_temp_beep = 27, }; -struct trace_event_data_offsets_rpc_request { - u32 progname; - u32 procname; +enum hwmon_in_attributes { + hwmon_in_enable = 0, + hwmon_in_input = 1, + hwmon_in_min = 2, + hwmon_in_max = 3, + hwmon_in_lcrit = 4, + hwmon_in_crit = 5, + hwmon_in_average = 6, + hwmon_in_lowest = 7, + hwmon_in_highest = 8, + hwmon_in_reset_history = 9, + hwmon_in_label = 10, + hwmon_in_alarm = 11, + hwmon_in_min_alarm = 12, + hwmon_in_max_alarm = 13, + hwmon_in_lcrit_alarm = 14, + hwmon_in_crit_alarm = 15, + hwmon_in_rated_min = 16, + hwmon_in_rated_max = 17, + hwmon_in_beep = 18, }; -struct trace_event_data_offsets_rpc_task_queued { - u32 q_name; +enum hwmon_curr_attributes { + hwmon_curr_enable = 0, + hwmon_curr_input = 1, + hwmon_curr_min = 2, + hwmon_curr_max = 3, + hwmon_curr_lcrit = 4, + hwmon_curr_crit = 5, + hwmon_curr_average = 6, + hwmon_curr_lowest = 7, + hwmon_curr_highest = 8, + hwmon_curr_reset_history = 9, + hwmon_curr_label = 10, + hwmon_curr_alarm = 11, + hwmon_curr_min_alarm = 12, + hwmon_curr_max_alarm = 13, + hwmon_curr_lcrit_alarm = 14, + hwmon_curr_crit_alarm = 15, + hwmon_curr_rated_min = 16, + hwmon_curr_rated_max = 17, + hwmon_curr_beep = 18, }; -struct trace_event_data_offsets_rpc_reply_event { - u32 progname; - u32 procname; - u32 servername; +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, }; -struct trace_event_data_offsets_rpc_stats_latency { - u32 progname; - u32 procname; +enum hwmon_energy_attributes { + hwmon_energy_enable = 0, + hwmon_energy_input = 1, + hwmon_energy_label = 2, }; -struct trace_event_data_offsets_rpc_xdr_overflow { - u32 progname; - u32 procedure; +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, }; -struct trace_event_data_offsets_rpc_xdr_alignment { - u32 progname; - u32 procedure; +enum hwmon_fan_attributes { + hwmon_fan_enable = 0, + hwmon_fan_input = 1, + hwmon_fan_label = 2, + hwmon_fan_min = 3, + hwmon_fan_max = 4, + hwmon_fan_div = 5, + hwmon_fan_pulses = 6, + hwmon_fan_target = 7, + hwmon_fan_alarm = 8, + hwmon_fan_min_alarm = 9, + hwmon_fan_max_alarm = 10, + hwmon_fan_fault = 11, + hwmon_fan_beep = 12, }; -struct trace_event_data_offsets_rpc_xprt_lifetime_class { - u32 addr; - u32 port; +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_data_offsets_rpc_xprt_event { - u32 addr; - u32 port; +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 trace_event_data_offsets_xprt_retransmit { - u32 progname; - u32 procname; -}; +struct hwmon_chip_info; -struct trace_event_data_offsets_xprt_ping { - u32 addr; - u32 port; +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_xs_data_ready { - u32 addr; - u32 port; -}; +struct hwmon_ops; -struct trace_event_data_offsets_xs_stream_read_data { - u32 addr; - u32 port; -}; +struct hwmon_channel_info; -struct trace_event_data_offsets_xs_stream_read_request { - u32 addr; - u32 port; +struct hwmon_chip_info { + const struct hwmon_ops *ops; + const struct hwmon_channel_info * const *info; }; -struct trace_event_data_offsets_rpcb_getport { - u32 servername; +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 trace_event_data_offsets_rpcb_register { - u32 addr; - u32 netid; +struct hwmon_channel_info { + enum hwmon_sensor_types type; + const u32 *config; }; -struct trace_event_data_offsets_rpcb_unregister { - u32 netid; +struct hwmon_thermal_data { + struct list_head node; + struct device *dev; + int index; + struct thermal_zone_device *tzd; }; -struct trace_event_data_offsets_rpc_tls_class { - u32 servername; - u32 progname; +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 trace_event_data_offsets_svc_authenticate { - u32 server; - u32 client; +struct trace_event_data_offsets_hwmon_attr_class { + u32 attr_name; }; -struct trace_event_data_offsets_svc_process { - u32 service; - u32 procedure; - u32 addr; +struct trace_event_data_offsets_hwmon_attr_show_string { + u32 attr_name; + u32 label; }; -struct trace_event_data_offsets_svc_rqst_event { - u32 server; - u32 client; +enum gpd_status { + GENPD_STATE_ON = 0, + GENPD_STATE_OFF = 1, }; -struct trace_event_data_offsets_svc_rqst_status { - u32 server; - u32 client; +struct genpd_power_state { + s64 power_off_latency_ns; + s64 power_on_latency_ns; + s64 residency_ns; + u64 usage; + u64 rejected; + struct fwnode_handle *fwnode; + u64 idle_time; + void *data; }; -struct trace_event_data_offsets_svc_replace_page_err { - u32 server; - u32 client; +struct gpd_dev_ops { + int (*start)(struct device *); + int (*stop)(struct device *); }; -struct trace_event_data_offsets_svc_stats_latency { - u32 server; - u32 client; - u32 procedure; -}; +struct dev_power_governor; -struct trace_event_data_offsets_svc_xprt_create_err { - u32 program; - u32 protocol; - u32 addr; -}; +struct genpd_governor_data; -struct trace_event_data_offsets_svc_xprt_enqueue { - u32 server; - u32 client; -}; +struct opp_table; -struct trace_event_data_offsets_svc_xprt_dequeue { - u32 server; - u32 client; -}; +struct dev_pm_opp; -struct trace_event_data_offsets_svc_xprt_event { - u32 server; - u32 client; -}; +struct genpd_lock_ops; -struct trace_event_data_offsets_svc_xprt_accept { - u32 server; - u32 client; - u32 protocol; - u32 service; +struct generic_pm_domain { + struct device dev; + struct dev_pm_domain domain; + struct list_head gpd_list_node; + struct list_head parent_links; + struct list_head child_links; + struct list_head dev_list; + struct dev_power_governor *gov; + struct genpd_governor_data *gd; + struct work_struct power_off_work; + struct fwnode_handle *provider; + bool has_provider; + const char *name; + atomic_t sd_count; + enum gpd_status status; + unsigned int device_count; + unsigned int suspended_count; + unsigned int prepared_count; + unsigned int performance_state; + cpumask_var_t cpus; + bool synced_poweroff; + int (*power_off)(struct generic_pm_domain *); + int (*power_on)(struct generic_pm_domain *); + struct raw_notifier_head power_notifiers; + struct opp_table *opp_table; + unsigned int (*opp_to_performance_state)(struct generic_pm_domain *, struct dev_pm_opp *); + int (*set_performance_state)(struct generic_pm_domain *, unsigned int); + struct gpd_dev_ops dev_ops; + int (*attach_dev)(struct generic_pm_domain *, struct device *); + void (*detach_dev)(struct generic_pm_domain *, struct device *); + unsigned int flags; + struct genpd_power_state *states; + void (*free_states)(struct genpd_power_state *, unsigned int); + unsigned int state_count; + unsigned int state_idx; + u64 on_time; + u64 accounting_time; + const struct genpd_lock_ops *lock_ops; + union { + struct mutex mlock; + struct { + spinlock_t slock; + unsigned long lock_flags; + }; + }; }; -struct trace_event_data_offsets_svc_deferred_event { - u32 addr; +struct dev_power_governor { + bool (*power_down_ok)(struct dev_pm_domain *); + bool (*suspend_ok)(struct device *); }; -struct trace_event_data_offsets_svcsock_marker { - u32 addr; +struct genpd_governor_data { + s64 max_off_time_ns; + bool max_off_time_changed; + ktime_t next_wakeup; + ktime_t next_hrtimer; + bool cached_power_down_ok; + bool cached_power_down_state_idx; }; -struct trace_event_data_offsets_svcsock_class { - u32 addr; +struct genpd_lock_ops { + void (*lock)(struct generic_pm_domain *); + void (*lock_nested)(struct generic_pm_domain *, int); + int (*lock_interruptible)(struct generic_pm_domain *); + void (*unlock)(struct generic_pm_domain *); }; -struct trace_event_data_offsets_svcsock_tcp_recv_short { - u32 addr; +struct mmc_pwrseq_ops { + void (*pre_power_on)(struct mmc_host *); + void (*post_power_on)(struct mmc_host *); + void (*power_off)(struct mmc_host *); + void (*reset)(struct mmc_host *); }; -struct trace_event_data_offsets_svcsock_tcp_state { - u32 addr; +struct mmc_pwrseq { + const struct mmc_pwrseq_ops *ops; + struct device *dev; + struct list_head pwrseq_node; + struct module *owner; }; -struct trace_event_data_offsets_svcsock_accept_class { - u32 service; +struct mmc_pwrseq_emmc { + struct mmc_pwrseq pwrseq; + struct notifier_block reset_nb; + struct gpio_desc *reset_gpio; }; -struct trace_event_data_offsets_cache_event { - u32 name; +struct clock_read_data { + u64 epoch_ns; + u64 epoch_cyc; + u64 sched_clock_mask; + u64 (*read_sched_clock)(); + u32 mult; + u32 shift; }; -struct trace_event_data_offsets_register_class { - u32 program; +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 trace_event_data_offsets_svc_unregister { - u32 program; +struct net_device_devres { + struct net_device *ndev; }; -typedef void (*rpc_action)(struct rpc_task *); - -struct trace_event_data_offsets_rpc_xdr_buf_class {}; - -struct trace_event_data_offsets_rpc_clnt_class {}; +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, +}; -struct trace_event_data_offsets_rpc_clnt_clone_err {}; +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, +}; -struct trace_event_data_offsets_rpc_task_status {}; +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, +}; -struct trace_event_data_offsets_rpc_task_running {}; +enum offload_act_command { + FLOW_ACT_REPLACE = 0, + FLOW_ACT_DESTROY = 1, + FLOW_ACT_STATS = 2, +}; -struct trace_event_data_offsets_rpc_failure {}; +enum flow_dissector_key_id { + FLOW_DISSECTOR_KEY_CONTROL = 0, + FLOW_DISSECTOR_KEY_BASIC = 1, + FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, + FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, + FLOW_DISSECTOR_KEY_PORTS = 4, + FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, + FLOW_DISSECTOR_KEY_ICMP = 6, + FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, + FLOW_DISSECTOR_KEY_TIPC = 8, + FLOW_DISSECTOR_KEY_ARP = 9, + FLOW_DISSECTOR_KEY_VLAN = 10, + FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, + FLOW_DISSECTOR_KEY_GRE_KEYID = 12, + FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, + FLOW_DISSECTOR_KEY_ENC_KEYID = 14, + FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, + FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, + FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, + FLOW_DISSECTOR_KEY_ENC_PORTS = 18, + FLOW_DISSECTOR_KEY_MPLS = 19, + FLOW_DISSECTOR_KEY_TCP = 20, + FLOW_DISSECTOR_KEY_IP = 21, + FLOW_DISSECTOR_KEY_CVLAN = 22, + FLOW_DISSECTOR_KEY_ENC_IP = 23, + FLOW_DISSECTOR_KEY_ENC_OPTS = 24, + FLOW_DISSECTOR_KEY_META = 25, + FLOW_DISSECTOR_KEY_CT = 26, + FLOW_DISSECTOR_KEY_HASH = 27, + FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28, + FLOW_DISSECTOR_KEY_PPPOE = 29, + FLOW_DISSECTOR_KEY_L2TPV3 = 30, + FLOW_DISSECTOR_KEY_CFM = 31, + FLOW_DISSECTOR_KEY_IPSEC = 32, + FLOW_DISSECTOR_KEY_MAX = 33, +}; -struct trace_event_data_offsets_rpc_buf_alloc {}; +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 trace_event_data_offsets_rpc_call_rpcerror {}; +enum flow_block_command { + FLOW_BLOCK_BIND = 0, + FLOW_BLOCK_UNBIND = 1, +}; -struct trace_event_data_offsets_xs_socket_event {}; +struct flow_block_cb; -struct trace_event_data_offsets_xs_socket_event_done {}; +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 trace_event_data_offsets_rpc_socket_nospace {}; +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 trace_event_data_offsets_xprt_transmit {}; +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 trace_event_data_offsets_xprt_writelock_event {}; +struct flow_indr_dev { + struct list_head list; + flow_indr_block_bind_cb_t *cb; + void *cb_priv; + refcount_t refcnt; +}; -struct trace_event_data_offsets_xprt_cong_event {}; +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 trace_event_data_offsets_xprt_reserve {}; +struct flow_dissector { + unsigned long long used_keys; + unsigned short offset[33]; +}; -struct trace_event_data_offsets_rpcb_setport {}; +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 trace_event_data_offsets_pmap_register {}; +struct flow_match { + struct flow_dissector *dissector; + void *mask; + void *key; +}; -struct trace_event_data_offsets_svc_xdr_msg_class {}; +typedef void (*action_destr)(void *); -struct trace_event_data_offsets_svc_xdr_buf_class {}; +struct nf_flowtable; -struct trace_event_data_offsets_svc_wake_up {}; +struct psample_group; -struct trace_event_data_offsets_svc_alloc_arg_err {}; +struct action_gate_entry; -struct trace_event_data_offsets_svcsock_lifetime_class {}; +struct flow_action_cookie; -struct taint_flag { - char c_true; - char c_false; - bool module; +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; }; -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 flow_action { + unsigned int num_entries; + struct flow_action_entry entries[0]; }; -enum con_flush_mode { - CONSOLE_FLUSH_PENDING = 0, - CONSOLE_REPLAY_ALL = 1, +struct flow_rule { + struct flow_match match; + struct flow_action action; }; -struct warn_args { - const char *fmt; - va_list args; +struct flow_action_cookie { + u32 cookie_len; + u8 cookie[0]; }; -enum umh_disable_depth { - UMH_ENABLED = 0, - UMH_FREEZING = 1, - UMH_DISABLED = 2, +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 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 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; }; -enum rtmutex_chainwalk { - RT_MUTEX_MIN_CHAINWALK = 0, - RT_MUTEX_FULL_CHAINWALK = 1, +struct flow_dissector_key_meta; + +struct flow_match_meta { + struct flow_dissector_key_meta *key; + struct flow_dissector_key_meta *mask; }; -struct rt_wake_q_head { - struct wake_q_head head; - struct task_struct *rtlock_task; +struct flow_dissector_key_meta { + int ingress_ifindex; + u16 ingress_iftype; + u8 l2_miss; }; -enum { - IRQCHIP_FWNODE_REAL = 0, - IRQCHIP_FWNODE_NAMED = 1, - IRQCHIP_FWNODE_NAMED_ID = 2, +struct flow_match_basic { + struct flow_dissector_key_basic *key; + struct flow_dissector_key_basic *mask; }; -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 flow_match_control { + struct flow_dissector_key_control *key; + struct flow_dissector_key_control *mask; }; -struct irqchip_fwid { - struct fwnode_handle fwnode; - unsigned int type; - char *name; - phys_addr_t *pa; +struct flow_dissector_key_eth_addrs; + +struct flow_match_eth_addrs { + struct flow_dissector_key_eth_addrs *key; + struct flow_dissector_key_eth_addrs *mask; }; -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, +struct flow_dissector_key_eth_addrs { + unsigned char dst[6]; + unsigned char src[6]; }; -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 flow_dissector_key_vlan; + +struct flow_match_vlan { + struct flow_dissector_key_vlan *key; + struct flow_dissector_key_vlan *mask; }; -enum tick_device_mode { - TICKDEV_MODE_PERIODIC = 0, - TICKDEV_MODE_ONESHOT = 1, +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 clock_event_device; +struct flow_dissector_key_arp; -struct tick_device { - struct clock_event_device *evtdev; - enum tick_device_mode mode; +struct flow_match_arp { + struct flow_dissector_key_arp *key; + struct flow_dissector_key_arp *mask; }; -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; +struct flow_dissector_key_arp { + __u32 sip; + __u32 tip; + __u8 op; + unsigned char sha[6]; + unsigned char tha[6]; }; -typedef int __kernel_mqd_t; - -typedef __kernel_mqd_t mqd_t; +struct flow_dissector_key_ipv4_addrs; -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 flow_match_ipv4_addrs { + struct flow_dissector_key_ipv4_addrs *key; + struct flow_dissector_key_ipv4_addrs *mask; }; -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 flow_dissector_key_ipv4_addrs { + __be32 src; + __be32 dst; }; -struct audit_ntp_val { - long long oldval; - long long newval; -}; +struct flow_dissector_key_ipv6_addrs; -struct audit_ntp_data { - struct audit_ntp_val vals[6]; +struct flow_match_ipv6_addrs { + struct flow_dissector_key_ipv6_addrs *key; + struct flow_dissector_key_ipv6_addrs *mask; }; -struct open_how { - __u64 flags; - __u64 mode; - __u64 resolve; +struct flow_dissector_key_ipv6_addrs { + struct in6_addr src; + struct in6_addr dst; }; -enum audit_state { - AUDIT_STATE_DISABLED = 0, - AUDIT_STATE_BUILD = 1, - AUDIT_STATE_RECORD = 2, -}; +struct flow_dissector_key_ip; -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 flow_match_ip { + struct flow_dissector_key_ip *key; + struct flow_dissector_key_ip *mask; }; -struct audit_proctitle { - int len; - char *value; +struct flow_dissector_key_ip { + __u8 tos; + __u8 ttl; }; -struct audit_aux_data; +struct flow_dissector_key_ports; -struct audit_tree_refs; +struct flow_match_ports { + struct flow_dissector_key_ports *key; + struct flow_dissector_key_ports *mask; +}; -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; +struct flow_dissector_key_ports { union { + __be32 ports; 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; + __be16 src; + __be16 dst; + }; }; - 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, +struct flow_dissector_key_ports_range; + +struct flow_match_ports_range { + struct flow_dissector_key_ports_range *key; + struct flow_dissector_key_ports_range *mask; }; -enum { - HASH_SIZE = 128, +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 audit_tree; +struct flow_dissector_key_tcp; -struct audit_node { - struct list_head list; - struct audit_tree *owner; - unsigned int index; +struct flow_match_tcp { + struct flow_dissector_key_tcp *key; + struct flow_dissector_key_tcp *mask; }; -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 flow_dissector_key_tcp { + __be16 flags; }; -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 flow_dissector_key_ipsec; -struct audit_tree_mark { - struct fsnotify_mark mark; - struct audit_chunk *chunk; +struct flow_match_ipsec { + struct flow_dissector_key_ipsec *key; + struct flow_dissector_key_ipsec *mask; }; -struct audit_field; - -struct audit_watch; +struct flow_dissector_key_ipsec { + __be32 spi; +}; -struct audit_fsnotify_mark; +struct flow_dissector_key_icmp; -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 flow_match_icmp { + struct flow_dissector_key_icmp *key; + struct flow_dissector_key_icmp *mask; }; -struct audit_field { - u32 type; - union { - u32 val; - kuid_t uid; - kgid_t gid; - struct { - char *lsm_str; - void *lsm_rule; - }; +struct flow_dissector_key_icmp { + struct { + u8 type; + u8 code; }; - u32 op; + u16 id; }; -struct audit_entry { - struct list_head list; - struct callback_head rcu; - struct audit_krule rule; -}; +struct flow_dissector_key_mpls; -struct trace_probe_log { - const char *subsystem; - const char **argv; - int argc; - int index; +struct flow_match_mpls { + struct flow_dissector_key_mpls *key; + struct flow_dissector_key_mpls *mask; }; -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 flow_dissector_mpls_lse { + u32 mpls_ttl: 8; + u32 mpls_bos: 1; + u32 mpls_tc: 3; + u32 mpls_label: 20; }; -struct bpf_local_storage_cache { - spinlock_t idx_lock; - u64 idx_usage_counts[16]; +struct flow_dissector_key_mpls { + struct flow_dissector_mpls_lse ls[7]; + u8 used_lses; }; -enum { - BPF_LOCAL_STORAGE_GET_F_CREATE = 1, - BPF_SK_STORAGE_GET_F_CREATE = 1, +struct flow_dissector_key_keyid; + +struct flow_match_enc_keyid { + struct flow_dissector_key_keyid *key; + struct flow_dissector_key_keyid *mask; }; -typedef u64 (*btf_bpf_cgrp_storage_get)(struct bpf_map *, struct cgroup *, void *, u64, gfp_t); +struct flow_dissector_key_keyid { + __be32 keyid; +}; -typedef u64 (*btf_bpf_cgrp_storage_delete)(struct bpf_map *, struct cgroup *); +struct flow_dissector_key_enc_opts; -struct bpf_local_storage_elem { - struct hlist_node map_node; - struct hlist_node snode; - struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *local_storage; - struct callback_head rcu; - long: 64; - struct bpf_local_storage_data sdata; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct flow_match_enc_opts { + struct flow_dissector_key_enc_opts *key; + struct flow_dissector_key_enc_opts *mask; }; -enum { - DUMP_PREFIX_NONE = 0, - DUMP_PREFIX_ADDRESS = 1, - DUMP_PREFIX_OFFSET = 2, +struct flow_dissector_key_enc_opts { + u8 data[255]; + u8 len; + __be16 dst_opt_type; }; -enum xa_lock_type { - XA_LOCK_IRQ = 1, - XA_LOCK_BH = 2, -}; +struct flow_dissector_key_ct; -struct vma_swap_readahead { - unsigned short win; - unsigned short offset; - unsigned short nr_pte; +struct flow_match_ct { + struct flow_dissector_key_ct *key; + struct flow_dissector_key_ct *mask; }; -struct inodes_stat_t { - long nr_inodes; - long nr_unused; - long dummy[5]; +struct flow_dissector_key_ct { + u16 ct_state; + u16 ct_zone; + u32 ct_mark; + u32 ct_labels[4]; }; -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, +struct flow_dissector_key_pppoe; + +struct flow_match_pppoe { + struct flow_dissector_key_pppoe *key; + struct flow_dissector_key_pppoe *mask; }; -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, +struct flow_dissector_key_pppoe { + __be16 session_id; + __be16 ppp_proto; + __be16 type; }; -enum file_time_flags { - S_ATIME = 1, - S_MTIME = 2, - S_CTIME = 4, - S_VERSION = 8, +struct flow_dissector_key_l2tpv3; + +struct flow_match_l2tpv3 { + struct flow_dissector_key_l2tpv3 *key; + struct flow_dissector_key_l2tpv3 *mask; }; -enum lru_status { - LRU_REMOVED = 0, - LRU_REMOVED_RETRY = 1, - LRU_ROTATE = 2, - LRU_SKIP = 3, - LRU_RETRY = 4, +struct flow_dissector_key_l2tpv3 { + __be32 session_id; }; -typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *); - -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, +struct tc_ratespec { + unsigned char cell_log; + __u8 linklayer; + unsigned short overhead; + short cell_align; + unsigned short mpu; + __u32 rate; }; -enum cache_type { - CACHE_TYPE_NOCACHE = 0, - CACHE_TYPE_INST = 1, - CACHE_TYPE_DATA = 2, - CACHE_TYPE_SEPARATE = 3, - CACHE_TYPE_UNIFIED = 4, +struct qdisc_rate_table { + struct tc_ratespec rate; + u32 data[256]; + struct qdisc_rate_table *next; + int refcnt; }; -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; +enum tc_link_layer { + TC_LINKLAYER_UNAWARE = 0, + TC_LINKLAYER_ETHERNET = 1, + TC_LINKLAYER_ATM = 2, }; -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; +enum qdisc_state_t { + __QDISC_STATE_SCHED = 0, + __QDISC_STATE_DEACTIVATED = 1, + __QDISC_STATE_MISSED = 2, + __QDISC_STATE_DRAINING = 3, }; -typedef struct elf32_hdr Elf32_Ehdr; - -struct memelfnote { - const char *name; - int type; - unsigned int datasz; - void *data; +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, }; -typedef struct compat_siginfo compat_siginfo_t; - -struct elf_thread_core_info; +enum { + TCA_STAB_UNSPEC = 0, + TCA_STAB_BASE = 1, + TCA_STAB_DATA = 2, + __TCA_STAB_MAX = 3, +}; -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; +enum tc_root_command { + TC_ROOT_GRAFT = 0, }; -struct compat_elf_siginfo { - compat_int_t si_signo; - compat_int_t si_code; - compat_int_t si_errno; +struct Qdisc_class_common { + u32 classid; + unsigned int filter_cnt; + struct hlist_node hnode; }; -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 qdisc_watchdog { + struct hrtimer timer; + struct Qdisc *qdisc; }; -typedef compat_ulong_t compat_elf_greg_t; +struct check_loop_arg { + struct qdisc_walker w; + struct Qdisc *p; + int depth; +}; -typedef compat_elf_greg_t compat_elf_gregset_t[32]; +struct tc_bind_class_args { + struct qdisc_walker w; + unsigned long new_cl; + u32 portid; + u32 clid; +}; -struct compat_elf_prstatus { - struct compat_elf_prstatus_common common; - compat_elf_gregset_t pr_reg; - compat_int_t pr_fpvalid; +struct qdisc_dump_args { + struct qdisc_walker w; + struct sk_buff *skb; + struct netlink_callback *cb; }; -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 tc_root_qopt_offload { + enum tc_root_command command; + u32 handle; + bool ingress; }; -struct user_regset; +struct Qdisc_class_hash { + struct hlist_head *hash; + unsigned int hashsize; + unsigned int hashmask; + unsigned int hashelems; +}; -struct user_regset_view { - const char *name; - const struct user_regset *regsets; - unsigned int n; - u32 e_flags; - u16 e_machine; - u8 ei_osabi; +struct tc_query_caps_base { + enum tc_setup_type type; + void *caps; }; -struct membuf; +struct tcf_bind_args { + struct tcf_walker w; + unsigned long base; + unsigned long cl; + u32 classid; +}; -typedef int user_regset_get2_fn(struct task_struct *, const struct user_regset *, struct membuf); +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, +}; -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"))) *); +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, +}; -typedef int user_regset_active_fn(struct task_struct *, const struct user_regset *); +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, +}; -typedef int user_regset_writeback_fn(struct task_struct *, const struct user_regset *, int); +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, +}; -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; +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, }; -struct membuf { - void *p; - size_t left; +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, }; -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]; +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, }; -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; +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, }; -struct arch_elf_state {}; +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 { - ES_WRITTEN_B = 0, - ES_UNWRITTEN_B = 1, - ES_DELAYED_B = 2, - ES_HOLE_B = 3, - ES_REFERENCED_B = 4, - ES_FLAGS = 5, + 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, }; -struct pending_reservation { - struct rb_node rb_node; - ext4_lblk_t lclu; +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, }; -struct rsvd_count { - int ndelonly; - bool first_do_lblk_found; - ext4_lblk_t first_do_lblk; - ext4_lblk_t last_do_lblk; - struct extent_status *left_es; - bool partial; - ext4_lblk_t lclu; +enum { + 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, }; -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; +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 nfs4_session_state { - NFS4_SESSION_INITING = 0, - NFS4_SESSION_ESTABLISHED = 1, +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 nfs4_slot_tbl_state { - NFS4_SLOT_TBL_DRAINING = 0, +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 sem_undo_list { - refcount_t refcnt; - spinlock_t lock; - struct list_head list_proc; +enum skb_ext_id { + SKB_EXT_BRIDGE_NF = 0, + SKB_EXT_SEC_PATH = 1, + SKB_EXT_NUM = 2, }; -struct sembuf { - unsigned short sem_num; - short sem_op; - short sem_flg; +typedef u8 dscp_t; + +struct rtgenmsg { + unsigned char rtgen_family; }; -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 flow_dissector_key_tags { + u32 flow_label; }; -struct sem { - int semval; - struct pid *sempid; - spinlock_t lock; - struct list_head pending_alter; - struct list_head pending_const; - time64_t sem_otime; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct flow_dissector_key_tipc { + __be32 key; }; -struct sem_array { - struct kern_ipc_perm sem_perm; - time64_t sem_ctime; - struct list_head pending_alter; - struct list_head pending_const; - struct list_head list_id; - int sem_nsems; - int complex_count; - unsigned int use_global_lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct sem sems[0]; +struct 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 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 flow_keys { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; + struct flow_dissector_key_tags tags; + struct flow_dissector_key_vlan vlan; + struct flow_dissector_key_vlan cvlan; + struct flow_dissector_key_keyid keyid; + struct flow_dissector_key_ports ports; + struct flow_dissector_key_icmp icmp; + struct flow_dissector_key_addrs addrs; + long: 0; }; -struct semid64_ds { - struct ipc64_perm sem_perm; - long sem_otime; - long sem_ctime; - unsigned long sem_nsems; - unsigned long __unused3; - unsigned long __unused4; +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 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 nl_info { + struct nlmsghdr *nlh; + struct net *nl_net; + u32 portid; + u8 skip_notify: 1; + u8 skip_notify_kernel: 1; }; -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 rtnexthop; -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 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 seminfo { - int semmap; - int semmni; - int semmns; - int semmnu; - int semmsl; - int semopm; - int semume; - int semusz; - int semvmx; - int semaem; +struct rtnexthop { + unsigned short rtnh_len; + unsigned char rtnh_flags; + unsigned char rtnh_hops; + int rtnh_ifindex; }; -enum aa_sfs_type { - AA_SFS_TYPE_BOOLEAN = 0, - AA_SFS_TYPE_STRING = 1, - AA_SFS_TYPE_U64 = 2, - AA_SFS_TYPE_FOPS = 3, - AA_SFS_TYPE_DIR = 4, +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 aa_sfs_entry { - const char *name; - struct dentry *dentry; - umode_t mode; - enum aa_sfs_type v_type; - union { - bool boolean; - char *string; - unsigned long u64; - struct aa_sfs_entry *files; - } v; - const struct file_operations *file_ops; +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; }; -struct aa_sk_ctx { - struct aa_label *label; - struct aa_label *peer; +struct rtvia { + __kernel_sa_family_t rtvia_family; + __u8 rtvia_addr[0]; }; -enum rq_qos_id { - RQ_QOS_WBT = 0, - RQ_QOS_LATENCY = 1, - RQ_QOS_COST = 2, +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; }; -enum bio_merge_status { - BIO_MERGE_OK = 0, - BIO_MERGE_NONE = 1, - BIO_MERGE_FAILED = 2, +struct netdev_notifier_info_ext { + struct netdev_notifier_info info; + union { + u32 mtu; + } ext; }; -enum stat_group { - STAT_READ = 0, - STAT_WRITE = 1, - STAT_DISCARD = 2, - STAT_FLUSH = 3, - NR_STAT_GROUPS = 4, +struct netdev_notifier_changeupper_info { + struct netdev_notifier_info info; + struct net_device *upper_dev; + bool master; + bool linking; + void *upper_info; }; -enum { - BIO_PAGE_PINNED = 0, - BIO_CLONED = 1, - BIO_BOUNCED = 2, - BIO_QUIET = 3, - BIO_CHAIN = 4, - BIO_REFFED = 5, - BIO_BPS_THROTTLED = 6, - BIO_TRACE_COMPLETION = 7, - BIO_CGROUP_ACCT = 8, - BIO_QOS_THROTTLED = 9, - BIO_QOS_MERGED = 10, - BIO_REMAPPED = 11, - BIO_ZONE_WRITE_LOCKED = 12, - BIO_FLAG_LAST = 13, -}; +union bpf_iter_link_info; -struct rq_qos_ops; +typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *, union bpf_iter_link_info *, struct bpf_iter_aux_info *); -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; -}; +typedef void (*bpf_iter_detach_target_t)(struct bpf_iter_aux_info *); -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; -}; +typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct seq_file *); -struct req_iterator { - struct bvec_iter iter; - struct bio *bio; -}; +struct bpf_link_info; -struct io_cache_entry { - struct io_wq_work_node node; +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; }; -struct io_rsrc_put { - u64 tag; - union { - void *rsrc; - struct file *file; - struct io_mapped_ubuf *buf; - }; +union bpf_iter_link_info { + struct { + __u32 map_fd; + } map; + struct { + enum bpf_cgroup_iter_order order; + __u32 cgroup_fd; + __u64 cgroup_id; + } cgroup; + struct { + __u32 tid; + __u32 pid; + __u32 pid_fd; + } task; }; -struct io_rsrc_node { +struct bpf_link_info { + __u32 type; + __u32 id; + __u32 prog_id; union { - struct io_cache_entry cache; - struct io_ring_ctx *ctx; + struct { + __u64 tp_name; + __u32 tp_name_len; + } raw_tracepoint; + struct { + __u32 attach_type; + __u32 target_obj_id; + __u32 target_btf_id; + } tracing; + struct { + __u64 cgroup_id; + __u32 attach_type; + } cgroup; + struct { + __u64 target_name; + __u32 target_name_len; + union { + struct { + __u32 map_id; + } map; + }; + union { + struct { + __u64 cgroup_id; + __u32 order; + } cgroup; + struct { + __u32 tid; + __u32 pid; + } task; + }; + } iter; + struct { + __u32 netns_ino; + __u32 attach_type; + } netns; + struct { + __u32 ifindex; + } xdp; + struct { + __u32 map_id; + } struct_ops; + struct { + __u32 pf; + __u32 hooknum; + __s32 priority; + __u32 flags; + } netfilter; + struct { + __u64 addrs; + __u32 count; + __u32 flags; + __u64 missed; + } kprobe_multi; + struct { + __u32 type; + union { + struct { + __u64 file_name; + __u32 name_len; + __u32 offset; + } uprobe; + struct { + __u64 func_name; + __u32 name_len; + __u32 offset; + __u64 addr; + __u64 missed; + } kprobe; + struct { + __u64 tp_name; + __u32 name_len; + } tracepoint; + struct { + __u64 config; + __u32 type; + } event; + }; + } perf_event; + struct { + __u32 ifindex; + __u32 attach_type; + } tcx; + struct { + __u32 ifindex; + __u32 attach_type; + } netkit; }; - int refs; - bool empty; - u16 type; - struct list_head node; - struct io_rsrc_put item; -}; - -struct io_mapped_ubuf { - u64 ubuf; - u64 ubuf_end; - unsigned int nr_bvecs; - unsigned long acct_pages; - struct bio_vec bvec[0]; }; -struct io_rsrc_data { - struct io_ring_ctx *ctx; - u64 **tags; - unsigned int nr; - u16 rsrc_type; - bool quiesce; +enum sock_shutdown_cmd { + SHUT_RD = 0, + SHUT_WR = 1, + SHUT_RDWR = 2, }; 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_uring_file_index_range { - __u32 off; - __u32 len; - __u64 resv; + 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, }; -typedef u32 depot_stack_handle_t; - -union handle_parts { - depot_stack_handle_t handle; - struct { - u32 pool_index: 16; - u32 offset: 10; - u32 valid: 1; - u32 extra: 5; - }; +struct socket_alloc { + struct socket socket; + struct inode vfs_inode; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct stack_record { - struct stack_record *next; - u32 hash; - u32 size; - union handle_parts handle; - unsigned long entries[0]; +struct scm_cookie { + struct pid *pid; + struct scm_fp_list *fp; + struct scm_creds creds; + u32 secid; }; -typedef u64 pci_bus_addr_t; - -struct pci_bus_region { - pci_bus_addr_t start; - pci_bus_addr_t end; +struct ucred { + __u32 pid; + __u32 uid; + __u32 gid; }; -struct pci_bus_resource { - struct list_head list; - struct resource *res; - unsigned int flags; +struct bpf_iter_meta { + union { + struct seq_file *seq; + }; + u64 session_id; + u64 seq_num; }; -struct of_pci_range { +struct bpf_iter__unix { union { - u64 pci_addr; - u64 bus_addr; + struct bpf_iter_meta *meta; }; - u64 cpu_addr; - u64 size; - u32 flags; + union { + struct unix_sock *unix_sk; + }; + uid_t uid; }; -struct of_bus; - -struct of_pci_range_parser { - struct device_node *node; - struct of_bus *bus; - const __be32 *range; - const __be32 *end; - int na; - int ns; - int pna; - bool dma; +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 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; -}; - -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 unix_stream_read_state { + int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *); + struct socket *socket; + struct msghdr *msg; + struct pipe_inode_info *pipe; + size_t size; + int flags; + unsigned int splice_flags; }; -struct acpi_madt_local_apic { - struct acpi_subtable_header header; - u8 processor_id; - u8 id; - u32 lapic_flags; +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 acpi_madt_local_x2apic { - struct acpi_subtable_header header; - u16 reserved; - u32 local_apic_id; - u32 lapic_flags; - u32 uid; +struct svc_xpt_user { + struct list_head list; + void (*callback)(struct svc_xpt_user *); }; -struct acpi_madt_io_apic { - struct acpi_subtable_header header; - u8 id; - u8 reserved; - u32 address; - u32 global_irq_base; +enum { + dns_key_data = 0, + dns_key_error = 1, }; -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; +enum { + Root_NFS = 255, + Root_CIFS = 254, + Root_Generic = 253, + Root_RAM0 = 1048576, }; -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 __call_single_data { + struct __call_single_node node; + smp_call_func_t func; + void *info; }; -struct acpi_madt_local_apic_override { - struct acpi_subtable_header header; - u16 reserved; - u64 address; -} __attribute__((packed)); +typedef struct __call_single_data call_single_data_t; -struct acpi_madt_io_sapic { - struct acpi_subtable_header header; - u8 id; - u8 reserved; - u32 global_irq_base; - u64 address; +struct cfs_rq { + struct load_weight load; + unsigned int nr_running; + unsigned int h_nr_running; + unsigned int idle_nr_running; + unsigned int idle_h_nr_running; + s64 avg_vruntime; + u64 avg_load; + u64 exec_clock; + u64 min_vruntime; + struct rb_root_cached tasks_timeline; + struct sched_entity *curr; + struct sched_entity *next; + unsigned int nr_spread_over; + long: 64; + long: 64; + long: 64; + struct sched_avg avg; + struct { + raw_spinlock_t lock; + int nr; + unsigned long load_avg; + unsigned long util_avg; + unsigned long runnable_avg; + long: 64; + } removed; + u64 last_update_tg_load_avg; + unsigned long tg_load_avg_contrib; + long propagate; + long prop_runnable_sum; + unsigned long h_load; + u64 last_h_load_update; + struct sched_entity *h_load_next; + struct rq *rq; + int on_list; + struct list_head leaf_cfs_rq_list; + struct task_group *tg; + int idle; + int runtime_enabled; + s64 runtime_remaining; + u64 throttled_pelt_idle; + u64 throttled_clock; + u64 throttled_clock_pelt; + u64 throttled_clock_pelt_time; + u64 throttled_clock_self; + u64 throttled_clock_self_time; + int throttled; + int throttle_count; + struct list_head throttled_list; + struct list_head throttled_csd_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct acpi_madt_local_sapic { - struct acpi_subtable_header header; - u8 processor_id; - u8 id; - u8 eid; - u8 reserved[3]; - u32 lapic_flags; - u32 uid; - char uid_string[0]; +struct rt_prio_array { + unsigned long bitmap[2]; + struct list_head queue[100]; }; -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 rt_rq { + struct rt_prio_array active; + unsigned int rt_nr_running; + unsigned int rr_nr_running; + struct { + int curr; + int next; + } highest_prio; + int overloaded; + struct plist_head pushable_tasks; + int rt_queued; + int rt_throttled; + u64 rt_time; + u64 rt_runtime; + raw_spinlock_t rt_runtime_lock; + unsigned int rt_nr_boosted; + struct rq *rq; + struct task_group *tg; }; -struct acpi_madt_generic_interrupt { - struct acpi_subtable_header header; - u16 reserved; - u32 cpu_interface_number; - u32 uid; - u32 flags; - u32 parking_version; - u32 performance_interrupt; - u64 parked_address; - u64 base_address; - u64 gicv_base_address; - u64 gich_base_address; - u32 vgic_interrupt; - u64 gicr_base_address; - u64 arm_mpidr; - u8 efficiency_class; - u8 reserved2[1]; - u16 spe_interrupt; - u16 trbe_interrupt; -} __attribute__((packed)); - -struct acpi_madt_generic_distributor { - struct acpi_subtable_header header; - u16 reserved; - u32 gic_id; - u64 base_address; - u32 global_irq_base; - u8 version; - u8 reserved2[3]; +struct dl_rq { + struct rb_root_cached root; + unsigned int dl_nr_running; + struct { + u64 curr; + u64 next; + } earliest_dl; + int overloaded; + struct rb_root_cached pushable_dl_tasks_root; + u64 running_bw; + u64 this_bw; + u64 extra_bw; + u64 max_bw; + u64 bw_ratio; }; -struct acpi_madt_core_pic { - struct acpi_subtable_header header; - u8 version; - u32 processor_id; - u32 core_id; - u32 flags; -} __attribute__((packed)); +struct cpu_stop_done; -struct acpi_subtable_entry { - union acpi_subtable_headers *hdr; - enum acpi_subtable_type type; +struct cpu_stop_work { + struct list_head list; + cpu_stop_fn_t fn; + unsigned long caller; + void *arg; + struct cpu_stop_done *done; }; -typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const unsigned long); +struct root_domain; -struct acpi_subtable_proc { - int id; - acpi_tbl_entry_handler handler; - acpi_tbl_entry_handler_arg handler_arg; - void *arg; - int count; -}; +struct sched_domain; -typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); +struct balance_callback; -struct acpi_data_node; +struct cpuidle_state; -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 rq { + raw_spinlock_t __lock; + unsigned int nr_running; + unsigned long last_blocked_load_update_tick; + unsigned int has_blocked_load; + long: 64; + 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; + 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; + u64 clock_task; + u64 clock_pelt; + unsigned long lost_idle_time; + u64 clock_pelt_idle; + u64 clock_idle; + atomic_t nr_iowait; + u64 last_seen_need_resched_ns; + int ticks_without_resched; + int membarrier_state; + struct root_domain *rd; + struct sched_domain __attribute__((btf_type_tag("rcu"))) *sd; + unsigned long cpu_capacity; + struct balance_callback *balance_callback; + unsigned char nohz_idle_balance; + unsigned char idle_balance; + unsigned long misfit_task_load; + int active_balance; + int push_cpu; + struct cpu_stop_work active_balance_work; + int cpu; + int online; + struct list_head cfs_tasks; + struct sched_avg avg_rt; + struct sched_avg avg_dl; + u64 idle_stamp; + u64 avg_idle; + u64 max_idle_balance_cost; + struct rcuwait hotplug_wait; + unsigned long calc_load_update; + long calc_load_active; + long: 64; + long: 64; + call_single_data_t hrtick_csd; + struct hrtimer hrtick_timer; + ktime_t hrtick_time; + struct cpuidle_state *idle_state; + unsigned int nr_pinned; + unsigned int push_busy; + struct cpu_stop_work push_work; + cpumask_var_t scratch_mask; + long: 64; + long: 64; + call_single_data_t cfsb_csd; + struct list_head cfsb_csd_list; + long: 64; + long: 64; }; -struct acpi_data_node { - const char *name; - acpi_handle handle; - struct fwnode_handle fwnode; - struct fwnode_handle *parent; - struct acpi_device_data data; - struct list_head sibling; - struct kobject kobj; - struct completion kobj_done; +struct 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; }; -enum utf16_endian { - UTF16_HOST_ENDIAN = 0, - UTF16_LITTLE_ENDIAN = 1, - UTF16_BIG_ENDIAN = 2, +struct cfs_bandwidth { + raw_spinlock_t lock; + ktime_t period; + u64 quota; + u64 runtime; + u64 burst; + u64 runtime_snap; + s64 hierarchical_quota; + u8 idle; + u8 period_active; + u8 slack_started; + struct hrtimer period_timer; + struct hrtimer slack_timer; + struct list_head throttled_cfs_rq; + int nr_periods; + int nr_throttled; + int nr_burst; + u64 throttled_time; + u64 burst_time; }; -struct acpi_hardware_id { +struct task_group { + struct cgroup_subsys_state css; + struct sched_entity **se; + struct cfs_rq **cfs_rq; + unsigned long shares; + int idle; + long: 64; + long: 64; + long: 64; + atomic_long_t load_avg; + struct sched_rt_entity **rt_se; + struct rt_rq **rt_rq; + struct rt_bandwidth rt_bandwidth; + struct callback_head rcu; struct list_head list; - const char *id; + 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; }; -typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *); +struct dl_bw { + raw_spinlock_t lock; + u64 bw; + u64 total_bw; +}; -typedef enum { - ACPI_TRACE_AML_METHOD = 0, - ACPI_TRACE_AML_OPCODE = 1, - ACPI_TRACE_AML_REGION = 2, -} acpi_trace_event_type; +struct cpudl_item; -struct devm_clk_state { - struct clk *clk; - void (*exit)(struct clk *); +struct cpudl { + raw_spinlock_t lock; + int size; + cpumask_var_t free_cpus; + struct cpudl_item *elements; }; -struct clk_bulk_devres { - struct clk_bulk_data *clks; - int num_clks; +struct cpupri_vec { + atomic_t count; + cpumask_var_t mask; }; -struct clk_div_table; - -struct ccu_div_internal { - u8 shift; - u8 width; - u32 max; - u32 offset; - u32 flags; - struct clk_div_table *table; +struct cpupri { + struct cpupri_vec pri_to_cpu[101]; + int *cpu_to_pri; }; -struct ccu_sdm_setting; +struct perf_domain; -struct ccu_sdm_internal { - struct ccu_sdm_setting *table; - u32 table_size; - u32 enable; - u32 tuning_enable; - u16 tuning_reg; +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 ccu_nm { - u32 enable; - u32 lock; - struct ccu_mult_internal n; - struct ccu_div_internal m; - struct ccu_frac_internal frac; - struct ccu_sdm_internal sdm; - unsigned int fixed_post_div; - unsigned int min_rate; - unsigned int max_rate; - struct ccu_common common; +struct cpudl_item { + u64 dl; + int cpu; + int idx; }; -struct clk_div_table { - unsigned int val; - unsigned int div; +struct perf_domain { + struct em_perf_domain *em_pd; + struct perf_domain *next; + struct callback_head rcu; }; -struct ccu_sdm_setting { - unsigned long rate; - u32 pattern; - u32 m; - u32 n; -}; +struct sched_group; -struct _ccu_nm { - unsigned long n; - unsigned long min_n; - unsigned long max_n; - unsigned long m; - unsigned long min_m; - unsigned long max_m; +struct sched_domain_shared; + +struct sched_domain { + struct sched_domain __attribute__((btf_type_tag("rcu"))) *parent; + struct sched_domain __attribute__((btf_type_tag("rcu"))) *child; + struct sched_group *groups; + unsigned long min_interval; + unsigned long max_interval; + unsigned int busy_factor; + unsigned int imbalance_pct; + unsigned int cache_nice_tries; + unsigned int imb_numa_nr; + int nohz_idle; + int flags; + int level; + unsigned long last_balance; + unsigned int balance_interval; + unsigned int nr_balance_failed; + u64 max_newidle_lb_cost; + unsigned long last_decay_max_lb_cost; + char *name; + union { + void *private; + struct callback_head rcu; + }; + struct sched_domain_shared *shared; + unsigned int span_weight; + unsigned long span[0]; }; -typedef void (*btf_trace_regulator_enable)(void *, const char *); +struct sched_group_capacity; -typedef void (*btf_trace_regulator_enable_delay)(void *, const char *); +struct sched_group { + struct sched_group *next; + atomic_t ref; + unsigned int group_weight; + unsigned int cores; + struct sched_group_capacity *sgc; + int asym_prefer_cpu; + int flags; + unsigned long cpumask[0]; +}; -typedef void (*btf_trace_regulator_enable_complete)(void *, const char *); +struct sched_group_capacity { + atomic_t ref; + unsigned long capacity; + unsigned long min_capacity; + unsigned long max_capacity; + unsigned long next_update; + int imbalance; + int id; + unsigned long cpumask[0]; +}; -typedef void (*btf_trace_regulator_disable)(void *, const char *); +struct sched_domain_shared { + atomic_t ref; + atomic_t nr_busy_cpus; + int has_idle_cores; + int nr_idle_scan; +}; -typedef void (*btf_trace_regulator_disable_complete)(void *, const char *); +struct balance_callback { + struct balance_callback *next; + void (*func)(struct rq *); +}; -typedef void (*btf_trace_regulator_bypass_enable)(void *, const char *); +struct cpuidle_device; -typedef void (*btf_trace_regulator_bypass_enable_complete)(void *, const char *); +struct cpuidle_driver; -typedef void (*btf_trace_regulator_bypass_disable)(void *, const char *); +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); +}; -typedef void (*btf_trace_regulator_bypass_disable_complete)(void *, const char *); +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; +}; -typedef void (*btf_trace_regulator_set_voltage)(void *, const char *, int, int); +struct cpuidle_state_kobj; -typedef void (*btf_trace_regulator_set_voltage_complete)(void *, const char *, unsigned int); +struct cpuidle_driver_kobj; -struct regulator_coupler { - struct list_head list; - int (*attach_regulator)(struct regulator_coupler *, struct regulator_dev *); - int (*detach_regulator)(struct regulator_coupler *, struct regulator_dev *); - int (*balance_voltage)(struct regulator_coupler *, struct regulator_dev *, suspend_state_t); -}; +struct cpuidle_device_kobj; -struct regulator_enable_gpio { - struct list_head list; - struct gpio_desc *gpiod; - u32 enable_count; - u32 request_count; +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 regulator_get_type { - NORMAL_GET = 0, - EXCLUSIVE_GET = 1, - OPTIONAL_GET = 2, - MAX_GET_TYPE = 3, +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; }; -enum regulator_status { - REGULATOR_STATUS_OFF = 0, - REGULATOR_STATUS_ON = 1, - REGULATOR_STATUS_ERROR = 2, - REGULATOR_STATUS_FAST = 3, - REGULATOR_STATUS_NORMAL = 4, - REGULATOR_STATUS_IDLE = 5, - REGULATOR_STATUS_STANDBY = 6, - REGULATOR_STATUS_BYPASS = 7, - REGULATOR_STATUS_UNDEFINED = 8, -}; +struct pin_cookie {}; -enum regulator_detection_severity { - REGULATOR_SEVERITY_PROT = 0, - REGULATOR_SEVERITY_ERR = 1, - REGULATOR_SEVERITY_WARN = 2, +struct rq_flags { + unsigned long flags; + struct pin_cookie cookie; + unsigned int clock_update_flags; }; -struct trace_event_raw_regulator_basic { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; +struct affinity_context { + const struct cpumask *new_mask; + struct cpumask *user_mask; + unsigned int flags; }; -struct trace_event_raw_regulator_range { - struct trace_entry ent; - u32 __data_loc_name; - int min; - int max; - char __data[0]; +enum dl_bw_request { + dl_bw_req_check_overflow = 0, + dl_bw_req_alloc = 1, + dl_bw_req_free = 2, }; -struct trace_event_raw_regulator_value { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int val; - char __data[0]; +enum s2idle_states { + S2IDLE_STATE_NONE = 0, + S2IDLE_STATE_ENTER = 1, + S2IDLE_STATE_WAKE = 2, }; -struct regulator_map { - struct list_head list; - const char *dev_name; - const char *supply; - struct regulator_dev *regulator; +enum { + __SCHED_FEAT_PLACE_LAG = 0, + __SCHED_FEAT_PLACE_DEADLINE_INITIAL = 1, + __SCHED_FEAT_RUN_TO_PARITY = 2, + __SCHED_FEAT_NEXT_BUDDY = 3, + __SCHED_FEAT_CACHE_HOT_BUDDY = 4, + __SCHED_FEAT_WAKEUP_PREEMPTION = 5, + __SCHED_FEAT_HRTICK = 6, + __SCHED_FEAT_HRTICK_DL = 7, + __SCHED_FEAT_DOUBLE_TICK = 8, + __SCHED_FEAT_NONTASK_CAPACITY = 9, + __SCHED_FEAT_TTWU_QUEUE = 10, + __SCHED_FEAT_SIS_UTIL = 11, + __SCHED_FEAT_WARN_DOUBLE_CLOCK = 12, + __SCHED_FEAT_RT_PUSH_IPI = 13, + __SCHED_FEAT_RT_RUNTIME_SHARE = 14, + __SCHED_FEAT_LB_MIN = 15, + __SCHED_FEAT_ATTACH_AGE_LOAD = 16, + __SCHED_FEAT_WA_IDLE = 17, + __SCHED_FEAT_WA_WEIGHT = 18, + __SCHED_FEAT_WA_BIAS = 19, + __SCHED_FEAT_UTIL_EST = 20, + __SCHED_FEAT_UTIL_EST_FASTUP = 21, + __SCHED_FEAT_LATENCY_WARN = 22, + __SCHED_FEAT_HZ_BW = 23, + __SCHED_FEAT_NR = 24, }; -struct regulator_supply_alias { - struct list_head list; - struct device *src_dev; - const char *src_supply; - struct device *alias_dev; - const char *alias_supply; +enum { + SD_BALANCE_NEWIDLE = 1, + SD_BALANCE_EXEC = 2, + SD_BALANCE_FORK = 4, + SD_BALANCE_WAKE = 8, + SD_WAKE_AFFINE = 16, + SD_ASYM_CPUCAPACITY = 32, + SD_ASYM_CPUCAPACITY_FULL = 64, + SD_SHARE_CPUCAPACITY = 128, + SD_CLUSTER = 256, + SD_SHARE_PKG_RESOURCES = 512, + SD_SERIALIZE = 1024, + SD_ASYM_PACKING = 2048, + SD_PREFER_SIBLING = 4096, + SD_OVERLAP = 8192, + SD_NUMA = 16384, }; -struct trace_event_data_offsets_regulator_basic { - u32 name; +struct idle_timer { + struct hrtimer timer; + int done; }; -struct trace_event_data_offsets_regulator_range { - u32 name; +typedef struct task_group *rt_rq_iter_t; + +struct rt_schedulable_data { + struct task_group *tg; + u64 rt_period; + u64 rt_runtime; }; -struct trace_event_data_offsets_regulator_value { - u32 name; +typedef int (*tg_visitor)(struct task_group *, void *); + +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 pre_voltage_change_data { - unsigned long old_uV; - unsigned long min_uV; - unsigned long max_uV; +struct sched_attr { + __u32 size; + __u32 sched_policy; + __u64 sched_flags; + __s32 sched_nice; + __u32 sched_priority; + __u64 sched_runtime; + __u64 sched_deadline; + __u64 sched_period; + __u32 sched_util_min; + __u32 sched_util_max; }; -struct summary_lock_data { - struct ww_acquire_ctx *ww_ctx; - struct regulator_dev **new_contended_rdev; - struct regulator_dev **old_contended_rdev; +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 summary_data { - struct seq_file *s; - struct regulator_dev *parent; - int level; +struct trace_bprintk_fmt { + struct list_head list; + const char *fmt; }; -struct class_interface { - struct list_head node; - const struct class *class; - int (*add_dev)(struct device *); - void (*remove_dev)(struct device *); +enum { + TRACE_NOP_OPT_ACCEPT = 1, + TRACE_NOP_OPT_REFUSE = 2, }; -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, +enum trace_iterator_flags { + TRACE_ITER_PRINT_PARENT = 1, + TRACE_ITER_SYM_OFFSET = 2, + TRACE_ITER_SYM_ADDR = 4, + TRACE_ITER_VERBOSE = 8, + TRACE_ITER_RAW = 16, + TRACE_ITER_HEX = 32, + TRACE_ITER_BIN = 64, + TRACE_ITER_BLOCK = 128, + TRACE_ITER_FIELDS = 256, + TRACE_ITER_PRINTK = 512, + TRACE_ITER_ANNOTATE = 1024, + TRACE_ITER_USERSTACKTRACE = 2048, + TRACE_ITER_SYM_USEROBJ = 4096, + TRACE_ITER_PRINTK_MSGONLY = 8192, + TRACE_ITER_CONTEXT_INFO = 16384, + TRACE_ITER_LATENCY_FMT = 32768, + TRACE_ITER_RECORD_CMD = 65536, + TRACE_ITER_RECORD_TGID = 131072, + TRACE_ITER_OVERWRITE = 262144, + TRACE_ITER_STOP_ON_FREE = 524288, + TRACE_ITER_IRQ_INFO = 1048576, + TRACE_ITER_MARKERS = 2097152, + TRACE_ITER_EVENT_FORK = 4194304, + TRACE_ITER_PAUSE_ON_TRACE = 8388608, + TRACE_ITER_HASH_PTR = 16777216, + TRACE_ITER_FUNCTION = 33554432, + TRACE_ITER_FUNC_FORK = 67108864, + TRACE_ITER_DISPLAY_GRAPH = 134217728, + TRACE_ITER_STACKTRACE = 268435456, }; -enum dpm_order { - DPM_ORDER_NONE = 0, - DPM_ORDER_DEV_AFTER_PARENT = 1, - DPM_ORDER_PARENT_BEFORE_DEV = 2, - DPM_ORDER_DEV_LAST = 3, +struct syscall_trace_enter { + struct trace_entry ent; + int nr; + unsigned long args[0]; }; -struct dev_ext_attribute { - struct device_attribute attr; - void *var; +struct syscall_trace_exit { + struct trace_entry ent; + int nr; + long ret; }; -struct fwnode_link { - struct fwnode_handle *supplier; - struct list_head s_hook; - struct fwnode_handle *consumer; - struct list_head c_hook; - u8 flags; +struct syscall_tp_t { + struct trace_entry ent; + int syscall_nr; + unsigned long args[6]; }; -struct class_dir { - struct kobject kobj; - const struct class *class; +struct syscall_tp_t___2 { + struct trace_entry ent; + int syscall_nr; + unsigned long ret; }; -struct root_device { - struct device dev; - struct module *owner; +struct btf_param { + __u32 name_off; + __u32 type; }; -struct klist_iter { - struct klist *i_klist; - struct klist_node *i_cur; +struct btf_member { + __u32 name_off; + __u32 type; + __u32 offset; }; -struct subsys_private { - struct kset subsys; - struct kset *devices_kset; - struct list_head interfaces; - struct mutex mutex; - struct kset *drivers_kset; - struct klist klist_devices; - struct klist klist_drivers; - struct blocking_notifier_head bus_notifier; - unsigned int drivers_autoprobe: 1; - const struct bus_type *bus; - struct device *dev_root; - struct kset glue_dirs; - const struct class *class; - struct lock_class_key lock_key; +struct btf_anon_stack { + u32 tid; + u32 offset; }; -union device_attr_group_devres { - const struct attribute_group *group; - const struct attribute_group **groups; +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 dma_resv_usage { - DMA_RESV_USAGE_KERNEL = 0, - DMA_RESV_USAGE_WRITE = 1, - DMA_RESV_USAGE_READ = 2, - DMA_RESV_USAGE_BOOKKEEP = 3, +struct fprobe { + struct ftrace_ops ops; + unsigned long nmissed; + unsigned int flags; + struct rethook *rethook; + size_t entry_data_size; + int nr_maxactive; + int (*entry_handler)(struct fprobe *, unsigned long, unsigned long, struct pt_regs *, void *); + void (*exit_handler)(struct fprobe *, unsigned long, unsigned long, struct pt_regs *, void *); }; -enum dma_fence_flag_bits { - DMA_FENCE_FLAG_SIGNALED_BIT = 0, - DMA_FENCE_FLAG_TIMESTAMP_BIT = 1, - DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2, - DMA_FENCE_FLAG_USER_BITS = 3, +struct fprobe_rethook_node { + struct rethook_node node; + unsigned long entry_ip; + unsigned long entry_parent_ip; + char data[0]; }; -struct dma_fence; +typedef void (*rethook_handler_t)(struct rethook_node *, void *, unsigned long, struct pt_regs *); -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 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 dma_fence_ops; +struct bpf_kfunc_desc { + struct btf_func_model func_model; + u32 func_id; + s32 imm; + u16 offset; + unsigned long addr; +}; -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 bpf_kfunc_desc_tab { + struct bpf_kfunc_desc descs[256]; + u32 nr_descs; }; -struct dma_fence_ops { - bool use_64bit_seqno; - const char * (*get_driver_name)(struct dma_fence *); - const char * (*get_timeline_name)(struct dma_fence *); - bool (*enable_signaling)(struct dma_fence *); - bool (*signaled)(struct dma_fence *); - long (*wait)(struct dma_fence *, bool, long); - void (*release)(struct dma_fence *); - void (*fence_value_str)(struct dma_fence *, char *, int); - void (*timeline_value_str)(struct dma_fence *, char *, int); - void (*set_deadline)(struct dma_fence *, ktime_t); +struct bpf_kfunc_btf { + struct btf *btf; + struct module *module; + u16 offset; }; -struct dma_resv { - struct ww_mutex lock; - struct dma_resv_list __attribute__((btf_type_tag("rcu"))) *fences; +struct bpf_kfunc_btf_tab { + struct bpf_kfunc_btf descs[256]; + u32 nr_descs; }; -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 bpf_reg_types { + const enum bpf_reg_type types[10]; + u32 *btf_id; }; -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 btf_func_linkage { + BTF_FUNC_STATIC = 0, + BTF_FUNC_GLOBAL = 1, + BTF_FUNC_EXTERN = 2, }; -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 special_kfunc_type { + KF_bpf_obj_new_impl = 0, + KF_bpf_obj_drop_impl = 1, + KF_bpf_refcount_acquire_impl = 2, + KF_bpf_list_push_front_impl = 3, + KF_bpf_list_push_back_impl = 4, + KF_bpf_list_pop_front = 5, + KF_bpf_list_pop_back = 6, + KF_bpf_cast_to_kern_ctx = 7, + KF_bpf_rdonly_cast = 8, + KF_bpf_rcu_read_lock = 9, + KF_bpf_rcu_read_unlock = 10, + KF_bpf_rbtree_remove = 11, + KF_bpf_rbtree_add_impl = 12, + KF_bpf_rbtree_first = 13, + KF_bpf_dynptr_from_skb = 14, + KF_bpf_dynptr_from_xdp = 15, + KF_bpf_dynptr_slice = 16, + KF_bpf_dynptr_slice_rdwr = 17, + KF_bpf_dynptr_clone = 18, + KF_bpf_percpu_obj_new_impl = 19, + KF_bpf_percpu_obj_drop_impl = 20, + KF_bpf_throw = 21, + KF_bpf_iter_css_task_new = 22, }; -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 bpf_stack_slot_type { + STACK_INVALID = 0, + STACK_SPILL = 1, + STACK_MISC = 2, + STACK_ZERO = 3, + STACK_DYNPTR = 4, + STACK_ITER = 5, }; -struct e1000_opt_list; - -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; - struct e1000_opt_list *p; - } l; - } arg; +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 e1000_opt_list { - int i; - char *str; +enum bpf_access_src { + ACCESS_DIRECT = 1, + ACCESS_HELPER = 2, }; -struct ohci_driver_overrides { - const char *product_desc; - size_t extra_priv_size; - int (*reset)(struct usb_hcd *); +enum bpf_core_relo_kind { + BPF_CORE_FIELD_BYTE_OFFSET = 0, + BPF_CORE_FIELD_BYTE_SIZE = 1, + BPF_CORE_FIELD_EXISTS = 2, + BPF_CORE_FIELD_SIGNED = 3, + BPF_CORE_FIELD_LSHIFT_U64 = 4, + BPF_CORE_FIELD_RSHIFT_U64 = 5, + BPF_CORE_TYPE_ID_LOCAL = 6, + BPF_CORE_TYPE_ID_TARGET = 7, + BPF_CORE_TYPE_EXISTS = 8, + BPF_CORE_TYPE_SIZE = 9, + BPF_CORE_ENUMVAL_EXISTS = 10, + BPF_CORE_ENUMVAL_VALUE = 11, + BPF_CORE_TYPE_MATCHES = 12, }; -enum ohci_rh_state { - OHCI_RH_HALTED = 0, - OHCI_RH_SUSPENDED = 1, - OHCI_RH_RUNNING = 2, +enum { + DISCOVERED = 16, + EXPLORED = 32, + FALLTHROUGH = 1, + BRANCH = 2, }; -struct ohci_regs; - -struct ohci_hcca; - -struct ed; - -struct td; - -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]; +enum { + DONE_EXPLORING = 0, + KEEP_EXPLORING = 1, }; -typedef __u32 __hc32; - -struct ohci_roothub_regs { - __hc32 a; - __hc32 b; - __hc32 status; - __hc32 portstatus[15]; +enum reg_arg_type { + SRC_OP = 0, + DST_OP = 1, + DST_OP_NO_MARK = 2, }; -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; +enum { + REASON_BOUNDS = -1, + REASON_TYPE = -2, + REASON_PATHS = -3, + REASON_LIMIT = -4, + REASON_STACK = -5, }; -struct ohci_hcca { - __hc32 int_table[32]; - __hc32 frame_no; - __hc32 done_head; - u8 reserved_for_hc[116]; - u8 what[4]; +enum kfunc_ptr_arg_type { + KF_ARG_PTR_TO_CTX = 0, + KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, + KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2, + KF_ARG_PTR_TO_DYNPTR = 3, + KF_ARG_PTR_TO_ITER = 4, + KF_ARG_PTR_TO_LIST_HEAD = 5, + KF_ARG_PTR_TO_LIST_NODE = 6, + KF_ARG_PTR_TO_BTF_ID = 7, + KF_ARG_PTR_TO_MEM = 8, + KF_ARG_PTR_TO_MEM_SIZE = 9, + KF_ARG_PTR_TO_CALLBACK = 10, + KF_ARG_PTR_TO_RB_ROOT = 11, + KF_ARG_PTR_TO_RB_NODE = 12, + KF_ARG_PTR_TO_NULL = 13, }; -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; +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, }; -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; +enum { + BTF_TRACING_TYPE_TASK = 0, + BTF_TRACING_TYPE_FILE = 1, + BTF_TRACING_TYPE_VMA = 2, + MAX_BTF_TRACING_TYPE = 3, }; -struct input_mt_slot { - int abs[14]; - unsigned int frame; - unsigned int key; +enum { + AT_PKT_END = -1, + BEYOND_PKT_END = -2, }; -struct input_mt { - int trkid; - int num_slots; - int slot; - unsigned int flags; - unsigned int frame; - int *red; - struct input_mt_slot slots[0]; +enum { + BPF_MAX_LOOPS = 8388608, }; -struct touchscreen_properties { - unsigned int max_x; - unsigned int max_y; - bool invert_x; - bool invert_y; - bool swap_x_y; +enum bpf_jit_poke_reason { + BPF_POKE_REASON_TAIL_CALL = 0, }; -struct input_mt_pos { - s16 x; - s16 y; +struct bpf_iter_meta__safe_trusted { + struct seq_file *seq; }; -struct thermal_hwmon_device { - char type[20]; - struct device *device; - int count; - struct list_head tz_list; - struct list_head node; +struct bpf_iter__task__safe_trusted { + struct bpf_iter_meta *meta; + struct task_struct *task; }; -struct thermal_hwmon_attr { - struct device_attribute attr; - char name[16]; +struct linux_binprm__safe_trusted { + struct file *file; }; -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 file__safe_trusted { + struct inode *f_inode; }; -struct mmc_pwrseq_ops; - -struct mmc_pwrseq { - const struct mmc_pwrseq_ops *ops; - struct device *dev; - struct list_head pwrseq_node; - struct module *owner; +struct dentry__safe_trusted { + struct inode *d_inode; }; -struct mmc_pwrseq_ops { - void (*pre_power_on)(struct mmc_host *); - void (*post_power_on)(struct mmc_host *); - void (*power_off)(struct mmc_host *); - void (*reset)(struct mmc_host *); +struct socket__safe_trusted { + struct sock *sk; }; -struct alias_prop { - struct list_head link; - const char *alias; - struct device_node *np; - int id; - char stem[0]; +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 of_phandle_iterator { - const char *cells_name; - int cell_count; - const struct device_node *parent; - const __be32 *list_end; - const __be32 *phandle_end; - const __be32 *cur; - uint32_t cur_count; - phandle phandle; - struct device_node *node; +struct cgroup__safe_rcu { + struct kernfs_node *kn; }; -struct gnet_estimator { - signed char interval; - unsigned char ewma_log; +struct css_set__safe_rcu { + struct cgroup *dfl_cgrp; }; -struct gnet_stats_rate_est64 { - __u64 bps; - __u64 pps; +struct mm_struct__safe_rcu_or_null { + struct file __attribute__((btf_type_tag("rcu"))) *exe_file; }; -struct cgroup_cls_state { - struct cgroup_subsys_state css; - u32 classid; +struct sk_buff__safe_rcu_or_null { + struct sock *sk; }; -struct update_classid_context { - u32 classid; - unsigned int batch; +struct request_sock__safe_rcu_or_null { + struct sock *sk; }; -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 btf_var_secinfo { + __u32 type; + __u32 offset; + __u32 size; }; -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 btf_array { + __u32 type; + __u32 index_type; + __u32 nelems; }; -struct linkinfo_reply_data { - struct ethnl_reply_data base; - struct ethtool_link_ksettings ksettings; - struct ethtool_link_settings *lsettings; -}; +struct bpf_iter; -typedef u32 u_int32_t; +typedef void (*bpf_insn_print_t)(void *, const char *, ...); -typedef u16 u_int16_t; +typedef const char * (*bpf_insn_revmap_call_t)(void *, const struct bpf_insn *); -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; -}; +typedef const char * (*bpf_insn_print_imm_t)(void *, const struct bpf_insn *, __u64); -struct nf_log_buf { - unsigned int count; - char buf[1020]; +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 ip_tunnel_parm { - char name[16]; - int link; - __be16 i_flags; - __be16 o_flags; - __be32 i_key; - __be32 o_key; - struct iphdr iph; +struct btf_id_set { + u32 cnt; + u32 ids[0]; }; -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; -}; +typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); -enum metadata_type { - METADATA_IP_TUNNEL = 0, - METADATA_HW_PORT_MUX = 1, - METADATA_MACSEC = 2, - METADATA_XFRM = 3, +struct bpf_core_relo { + __u32 insn_off; + __u32 type_id; + __u32 access_str_off; + enum bpf_core_relo_kind kind; }; -struct arphdr { - __be16 ar_hrd; - __be16 ar_pro; - unsigned char ar_hln; - unsigned char ar_pln; - __be16 ar_op; +struct bpf_core_ctx { + struct bpf_verifier_log *log; + const struct btf *btf; }; -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 bpf_struct_ops { + const struct bpf_verifier_ops *verifier_ops; + int (*init)(struct btf *); + int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *); + int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); + int (*reg)(void *); + void (*unreg)(void *); + int (*update)(void *, void *); + int (*validate)(void *); + 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; }; -struct ip_tunnel_encap { - u16 type; - u16 flags; - __be16 sport; - __be16 dport; +struct bpf_kfunc_call_arg_meta { + struct btf *btf; + u32 func_id; + u32 kfunc_flags; + const struct btf_type *func_proto; + const char *func_name; + u32 ref_obj_id; + u8 release_regno; + bool r0_rdonly; + u32 ret_btf_id; + u64 r0_size; + u32 subprogno; + struct { + u64 value; + bool found; + } arg_constant; + struct btf *arg_btf; + u32 arg_btf_id; + bool arg_owning_ref; + struct { + struct btf_field *field; + } arg_list_head; + struct { + struct btf_field *field; + } arg_rbtree_root; + struct { + enum bpf_dynptr_type type; + u32 id; + u32 ref_obj_id; + } initialized_dynptr; + struct { + u8 spi; + u8 frameno; + } iter; + u64 mem_size; }; -struct ip_tunnel_info { - struct ip_tunnel_key key; - struct ip_tunnel_encap encap; - struct dst_cache dst_cache; - u8 options_len; - u8 mode; +struct 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 hw_port_info { - struct net_device *lower_dev; - u32 port_id; +struct bpf_bprintf_data { + u32 *bin_args; + char *buf; + bool get_bin_args; + bool get_buf; }; -typedef u64 sci_t; - -struct macsec_info { - sci_t sci; +struct bpf_attach_target_info { + struct btf_func_model fmodel; + long tgt_addr; + struct module *tgt_mod; + const char *tgt_name; + const struct btf_type *tgt_type; }; -struct xfrm_md_info { - u32 if_id; - int link; - struct dst_entry *dst_orig; +struct bpf_sanitize_info { + struct bpf_insn_aux_data aux; + bool mask_to_left; }; -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; -}; +typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); -struct arpreq { - struct sockaddr arp_pa; - struct sockaddr arp_ha; - int arp_flags; - struct sockaddr arp_netmask; - char arp_dev[16]; -}; +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); -struct genl_split_ops; +typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void __attribute__((btf_type_tag("percpu"))) *); -struct genl_ops; +typedef void (*btf_trace_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_t); -struct genl_small_ops; +typedef void (*btf_trace_percpu_create_chunk)(void *, void *); -struct genl_multicast_group; +typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *); -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; +enum pcpu_fc { + PCPU_FC_AUTO = 0, + PCPU_FC_EMBED = 1, + PCPU_FC_PAGE = 2, + PCPU_FC_NR = 3, }; -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 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 seg6_pernet_data { - struct mutex lock; - struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src; +struct pcpu_chunk { + struct list_head list; + int free_bytes; + struct pcpu_block_md chunk_md; + unsigned long *bound_map; + void *base_addr; + unsigned long *alloc_map; + struct pcpu_block_md *md_blocks; + void *data; + bool immutable; + bool isolated; + int start_offset; + int end_offset; + struct obj_cgroup **obj_cgroups; + int nr_pages; + int nr_populated; + int nr_empty_pop_pages; + unsigned long populated[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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; +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, }; -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 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 genl_multicast_group { - char name[16]; - u8 flags; +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]; }; -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, +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]; }; -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 trace_event_raw_percpu_create_chunk { + struct trace_entry ent; + void *base_addr; + char __data[0]; }; -struct sr6_tlv { - __u8 type; - __u8 len; - __u8 data[0]; +struct trace_event_raw_percpu_destroy_chunk { + struct trace_entry ent; + void *base_addr; + char __data[0]; }; -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 pcpu_group_info { + int nr_units; + unsigned long base_offset; + unsigned int *cpu_map; }; -struct mld_msg { - struct icmp6hdr mld_hdr; - struct in6_addr mld_mca; +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 gssx_name_attr; +struct trace_event_data_offsets_percpu_alloc_percpu {}; -struct gssx_name_attr_array { - u32 count; - struct gssx_name_attr *data; -}; +struct trace_event_data_offsets_percpu_free_percpu {}; -typedef struct xdr_netobj gssx_buffer; +struct trace_event_data_offsets_percpu_alloc_percpu_fail {}; -struct gssx_option; +struct trace_event_data_offsets_percpu_create_chunk {}; -struct gssx_option_array { - u32 count; - struct gssx_option *data; -}; +struct trace_event_data_offsets_percpu_destroy_chunk {}; -struct gssx_name_attr { - gssx_buffer attr; - gssx_buffer value; - struct gssx_option_array extensions; -}; +typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); -struct gssx_option { - gssx_buffer option; - gssx_buffer value; -}; +typedef int pcpu_fc_cpu_to_node_fn_t(int); -typedef struct xdr_netobj utf8string; +typedef void (*btf_trace_alloc_vmap_area)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int); -struct gssx_call_ctx { - utf8string locale; - gssx_buffer server_ctx; - struct gssx_option_array options; -}; +typedef void (*btf_trace_purge_vmap_area_lazy)(void *, unsigned long, unsigned long, unsigned int); -typedef struct xdr_netobj gssx_OID; +typedef void (*btf_trace_free_vmap_area_noflush)(void *, unsigned long, unsigned long, unsigned long); -struct gssx_name { - gssx_buffer display_name; +struct vfree_deferred { + struct llist_head list; + struct work_struct wq; }; -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 vmap_block_queue { + spinlock_t lock; + struct list_head free; + struct xarray vmap_blocks; }; -struct gssx_cred_element; - -struct gssx_cred_element_array { - u32 count; - struct gssx_cred_element *data; +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 gssx_cred { - gssx_name desired_name; - struct gssx_cred_element_array elements; - gssx_buffer cred_handle_reference; - u32 needs_release; +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; }; -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; +enum napot_cont_order { + NAPOT_CONT64KB_ORDER = 4, + NAPOT_ORDER_MAX = 5, }; -struct gssp_in_token { - struct page **pages; - unsigned int page_base; - unsigned int page_len; +enum page_memcg_data_flags { + MEMCG_DATA_OBJCGS = 1, + MEMCG_DATA_KMEM = 2, + __NR_MEMCG_DATA_FLAGS = 4, }; -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; +enum fit_type { + NOTHING_FIT = 0, + FL_FIT_TYPE = 1, + LE_FIT_TYPE = 2, + RE_FIT_TYPE = 3, + NE_FIT_TYPE = 4, }; -struct gssx_cb; +typedef unsigned int kasan_vmalloc_flags_t; -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 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 gssx_cb { - u64 initiator_addrtype; - gssx_buffer initiator_address; - u64 acceptor_addrtype; - gssx_buffer acceptor_address; - gssx_buffer application_data; +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 gssx_res_accept_sec_context { - struct gssx_status status; - struct gssx_ctx *context_handle; - gssx_buffer *output_token; - struct gssx_option_array options; +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]; }; -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, +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; }; -enum state { - Start = 0, - Collect = 1, - GotHeader = 2, - SkipIt = 3, - GotName = 4, - CopyFile = 5, - GotSymlink = 6, - Reset = 7, +typedef unsigned int pgtbl_mod_mask; + +struct trace_event_data_offsets_alloc_vmap_area {}; + +struct trace_event_data_offsets_purge_vmap_area_lazy {}; + +struct trace_event_data_offsets_free_vmap_area_noflush {}; + +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, }; -struct hash { - int ino; - int minor; - int major; +struct encoded_page; + +struct mmu_gather_batch { + struct mmu_gather_batch *next; + unsigned int nr; + unsigned int max; + struct encoded_page *encoded_pages[0]; +}; + +struct mmu_gather { + struct mm_struct *mm; + unsigned long start; + unsigned long end; + unsigned int fullmm: 1; + unsigned int need_flush_all: 1; + unsigned int freed_tables: 1; + unsigned int delayed_rmap: 1; + unsigned int cleared_ptes: 1; + unsigned int cleared_pmds: 1; + unsigned int cleared_puds: 1; + unsigned int cleared_p4ds: 1; + unsigned int vma_exec: 1; + unsigned int vma_huge: 1; + unsigned int vma_pfn: 1; + unsigned int batch_count; + struct mmu_gather_batch *active; + struct mmu_gather_batch local; + struct page *__pages[8]; +}; + +struct open_flags { + int open_flag; umode_t mode; - struct hash *next; - char name[4098]; + int acc_mode; + int intent; + int lookup_flags; }; -struct dir_entry { - struct list_head list; - time64_t mtime; - char name[0]; +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; }; -typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *)); +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 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 iomap_readpage_ctx { + struct folio *cur_folio; + bool cur_folio_in_bio; + struct bio *bio; + struct readahead_control *rac; }; -struct param_attribute { - struct module_attribute mattr; - const struct kernel_param *param; +struct iomap_folio_state { + spinlock_t state_lock; + unsigned int read_bytes_pending; + atomic_t write_bytes_pending; + unsigned long state[0]; }; -struct module_param_attrs { - unsigned int num; - struct attribute_group grp; - struct param_attribute attrs[0]; +typedef int (*iomap_punch_t)(struct inode *, loff_t, loff_t); + +typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); + +struct iomap_writeback_ops; + +struct iomap_writepage_ctx { + struct iomap iomap; + struct iomap_ioend *ioend; + const struct iomap_writeback_ops *ops; }; -enum { - KERNEL_PARAM_OPS_FL_NOARG = 1, +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); }; -enum { - KERNEL_PARAM_FL_UNSAFE = 1, - KERNEL_PARAM_FL_HWPARAM = 2, +typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); + +struct folio_iter { + struct folio *folio; + size_t offset; + size_t length; + struct folio *_next; + size_t _seg_count; + int _i; }; -struct kmalloced_param { - struct list_head list; - char val[0]; +struct pending_reservation { + struct rb_node rb_node; + ext4_lblk_t lclu; }; -struct semaphore_waiter { - struct list_head list; - struct task_struct *task; - bool up; +struct rsvd_count { + int ndelonly; + bool first_do_lblk_found; + ext4_lblk_t first_do_lblk; + ext4_lblk_t last_do_lblk; + struct extent_status *left_es; + bool partial; + ext4_lblk_t lclu; }; enum { - 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, + PARSE_INVALID = 1, + PARSE_NOT_LONGNAME = 2, + PARSE_EOF = 3, }; -enum { - _IRQ_DEFAULT_INIT_FLAGS = 0, - _IRQ_PER_CPU = 512, - _IRQ_LEVEL = 256, - _IRQ_NOPROBE = 1024, - _IRQ_NOREQUEST = 2048, - _IRQ_NOTHREAD = 65536, - _IRQ_NOAUTOEN = 4096, - _IRQ_MOVE_PCNTXT = 16384, - _IRQ_NO_BALANCING = 8192, - _IRQ_NESTED_THREAD = 32768, - _IRQ_PER_CPU_DEVID = 131072, - _IRQ_IS_POLLED = 262144, - _IRQ_DISABLE_UNLAZY = 524288, - _IRQ_HIDDEN = 1048576, - _IRQ_NO_DEBUG = 2097152, - _IRQF_MODIFY_MASK = 2096911, +enum utf16_endian { + UTF16_HOST_ENDIAN = 0, + UTF16_LITTLE_ENDIAN = 1, + UTF16_BIG_ENDIAN = 2, }; -enum kvm_stat_kind { - KVM_STAT_VM = 0, - KVM_STAT_VCPU = 1, +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; }; -enum kvm_riscv_hfence_type { - KVM_RISCV_HFENCE_UNKNOWN = 0, - KVM_RISCV_HFENCE_GVMA_VMID_GPA = 1, - KVM_RISCV_HFENCE_VVMA_ASID_GVA = 2, - KVM_RISCV_HFENCE_VVMA_ASID_ALL = 3, - KVM_RISCV_HFENCE_VVMA_GVA = 4, +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]; }; -enum kvm_riscv_sbi_ext_status { - KVM_RISCV_SBI_EXT_UNINITIALIZED = 0, - KVM_RISCV_SBI_EXT_AVAILABLE = 1, - KVM_RISCV_SBI_EXT_UNAVAILABLE = 2, +struct __fat_dirent { + long d_ino; + __kernel_off_t d_off; + unsigned short d_reclen; + char d_name[256]; }; -typedef u64 gpa_t; +struct fat_ioctl_filldir_callback { + struct dir_context ctx; + void __attribute__((btf_type_tag("user"))) *dirent; + int result; + const char *longname; + int long_len; + const char *shortname; + int short_len; +}; -struct kvm_mmio_fragment { - gpa_t gpa; - void *data; - unsigned int len; +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 kvm_cpu_context { - unsigned long zero; - unsigned long ra; - unsigned long sp; - unsigned long gp; - unsigned long tp; - unsigned long t0; - unsigned long t1; - unsigned long t2; - unsigned long s0; - unsigned long s1; - unsigned long a0; - unsigned long a1; - unsigned long a2; - unsigned long a3; - unsigned long a4; - unsigned long a5; - unsigned long a6; - unsigned long a7; - unsigned long s2; - unsigned long s3; - unsigned long s4; - unsigned long s5; - unsigned long s6; - unsigned long s7; - unsigned long s8; - unsigned long s9; - unsigned long s10; - unsigned long s11; - unsigned long t3; - unsigned long t4; - unsigned long t5; - unsigned long t6; - unsigned long sepc; - unsigned long sstatus; - unsigned long hstatus; - long: 64; - union __riscv_fp_state fp; - struct __riscv_v_ext_state vector; +typedef s32 compat_off_t; + +struct compat_dirent { + u32 d_ino; + compat_off_t d_off; + u16 d_reclen; + char d_name[256]; }; -struct kvm_vcpu_csr { - unsigned long vsstatus; - unsigned long vsie; - unsigned long vstvec; - unsigned long vsscratch; - unsigned long vsepc; - unsigned long vscause; - unsigned long vstval; - unsigned long hvip; - unsigned long vsatp; - unsigned long scounteren; +enum xa_lock_type { + XA_LOCK_IRQ = 1, + XA_LOCK_BH = 2, }; -struct kvm_vcpu; +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, +}; -struct kvm_vcpu_timer { - bool init_done; - bool next_set; - u64 next_cycles; - struct hrtimer hrt; - bool sstc_enabled; - int (*timer_next_event)(struct kvm_vcpu *, u64); +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 kvm_riscv_hfence { - enum kvm_riscv_hfence_type type; - unsigned long asid; - unsigned long order; - gpa_t addr; - gpa_t size; +enum nfs3_createmode { + NFS3_CREATE_UNCHECKED = 0, + NFS3_CREATE_GUARDED = 1, + NFS3_CREATE_EXCLUSIVE = 2, }; -struct kvm_mmio_decode { - unsigned long insn; - int insn_len; - int len; - int shift; - int return_handled; +enum nfs3_ftype { + NF3NON = 0, + NF3REG = 1, + NF3DIR = 2, + NF3BLK = 3, + NF3CHR = 4, + NF3LNK = 5, + NF3SOCK = 6, + NF3FIFO = 7, + NF3BAD = 8, }; -struct kvm_csr_decode { - unsigned long insn; - int return_handled; +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, }; -struct kvm_vcpu_sbi_context { - int return_handled; - enum kvm_riscv_sbi_ext_status ext_status[9]; +struct nfs3_createargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + struct iattr *sattr; + enum nfs3_createmode createmode; + __be32 verifier[2]; }; -struct kvm_vcpu_aia_csr { - unsigned long vsiselect; - unsigned long hviprio1; - unsigned long hviprio2; - unsigned long vsieh; - unsigned long hviph; - unsigned long hviprio1h; - unsigned long hviprio2h; +struct nfs3_mkdirargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + struct iattr *sattr; }; -struct kvm_vcpu_aia { - struct kvm_vcpu_aia_csr guest_csr; - struct kvm_vcpu_aia_csr guest_reset_csr; - gpa_t imsic_addr; - u32 hart_index; - void *imsic_state; +struct nfs3_symlinkargs { + struct nfs_fh *fromfh; + const char *fromname; + unsigned int fromlen; + struct page **pages; + unsigned int pathlen; + struct iattr *sattr; }; -struct kvm_mmu_memory_cache { - gfp_t gfp_zero; - gfp_t gfp_custom; - struct kmem_cache *kmem_cache; - int capacity; - int nobjs; - void **objects; +struct nfs3_mknodargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + enum nfs3_ftype type; + struct iattr *sattr; + dev_t rdev; }; -union sbi_pmu_ctr_info { - unsigned long value; - struct { - unsigned long csr: 12; - unsigned long width: 6; - unsigned long reserved: 45; - unsigned long type: 1; - }; +struct nfs3_diropres { + struct nfs_fattr *dir_attr; + struct nfs_fh *fh; + struct nfs_fattr *fattr; }; -struct kvm_pmc { - u8 idx; - struct perf_event *perf_event; - u64 counter_val; - union sbi_pmu_ctr_info cinfo; - bool started; - unsigned long event_idx; +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; }; -struct kvm_fw_event { - unsigned long value; - bool started; +struct nfs3_sattrargs { + struct nfs_fh *fh; + struct iattr *sattr; + unsigned int guard; + struct timespec64 guardtime; }; -struct kvm_pmu { - struct kvm_pmc pmc[64]; - struct kvm_fw_event fw_event[32]; - int num_fw_ctrs; - int num_hw_ctrs; - bool init_done; - unsigned long pmc_in_use[1]; +struct nfs3_accessargs { + struct nfs_fh *fh; + __u32 access; }; -struct kvm_vcpu_arch { - bool ran_atleast_once; - int last_exit_cpu; - unsigned long isa[1]; - unsigned long mvendorid; - unsigned long marchid; - unsigned long mimpid; - unsigned long host_sscratch; - unsigned long host_stvec; - unsigned long host_scounteren; - struct kvm_cpu_context host_context; - struct kvm_cpu_context guest_context; - struct kvm_vcpu_csr guest_csr; - struct kvm_cpu_context guest_reset_context; - struct kvm_vcpu_csr guest_reset_csr; - unsigned long irqs_pending[1]; - unsigned long irqs_pending_mask[1]; - struct kvm_vcpu_timer timer; - spinlock_t hfence_lock; - unsigned long hfence_head; - unsigned long hfence_tail; - struct kvm_riscv_hfence hfence_queue[64]; - struct kvm_mmio_decode mmio_decode; - struct kvm_csr_decode csr_decode; - struct kvm_vcpu_sbi_context sbi_context; - struct kvm_vcpu_aia aia_context; - struct kvm_mmu_memory_cache mmu_page_cache; - bool power_off; - bool pause; - struct kvm_pmu pmu_context; +struct nfs3_accessres { + struct nfs_fattr *fattr; + __u32 access; }; -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 nfs3_readlinkargs { + struct nfs_fh *fh; + unsigned int pgbase; + unsigned int pglen; + struct page **pages; }; -struct kvm_vcpu_stat { - struct kvm_vcpu_stat_generic generic; - u64 ecall_exit_stat; - u64 wfi_exit_stat; - u64 mmio_exit_user; - u64 mmio_exit_kernel; - u64 csr_exit_user; - u64 csr_exit_kernel; - u64 signal_exits; - u64 exits; +struct nfs3_linkargs { + struct nfs_fh *fromfh; + struct nfs_fh *tofh; + const char *toname; + unsigned int tolen; }; -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 nfs3_linkres { + struct nfs_fattr *dir_attr; + struct nfs_fattr *fattr; }; -struct kvm; - -struct kvm_run; +struct nfs3_diropargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; +}; -struct kvm_memory_slot; +struct nfs3_readdirargs { + struct nfs_fh *fh; + __u64 cookie; + __be32 verf[2]; + bool plus; + unsigned int count; + struct page **pages; +}; -struct kvm_vcpu { - struct kvm *kvm; - struct preempt_notifier preempt_notifier; - 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; - long: 64; - 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 nfs3_readdirres { + struct nfs_fattr *dir_attr; + __be32 *verf; + bool plus; }; -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; +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, }; -struct kvm_vm_stat_generic { - u64 remote_tlb_flush; - u64 remote_tlb_flush_requests; +enum { + NFS_LSEG_VALID = 0, + NFS_LSEG_ROC = 1, + NFS_LSEG_LAYOUTCOMMIT = 2, + NFS_LSEG_LAYOUTRETURN = 3, + NFS_LSEG_UNAVAILABLE = 4, }; -struct kvm_vm_stat { - struct kvm_vm_stat_generic generic; +enum wb_stat_item { + WB_RECLAIMABLE = 0, + WB_WRITEBACK = 1, + WB_DIRTIED = 2, + WB_WRITTEN = 3, + NR_WB_STAT_ITEMS = 4, }; -struct kvm_vmid { - unsigned long vmid_version; - unsigned long vmid; +struct nfs4_pnfs_ds_addr { + struct __kernel_sockaddr_storage da_addr; + size_t da_addrlen; + struct list_head da_node; + char *da_remotestr; + const char *da_netid; + int da_transport; }; -struct kvm_guest_timer { - u32 nsec_mult; - u32 nsec_shift; - u64 time_delta; +struct nfs4_add_xprt_data { + struct nfs_client *clp; + const struct cred *cred; }; -struct kvm_aia { - bool in_kernel; - bool initialized; - u32 mode; - u32 nr_ids; - u32 nr_sources; - u32 nr_group_bits; - u32 nr_group_shift; - u32 nr_hart_bits; - u32 nr_guest_bits; - gpa_t aplic_addr; - void *aplic_state; +struct rpc_add_xprt_test { + void (*add_xprt_test)(struct rpc_clnt *, struct rpc_xprt *, void *); + void *data; }; -struct kvm_arch { - struct kvm_vmid vmid; - pgd_t *pgd; - phys_addr_t pgd_phys; - struct kvm_guest_timer timer; - struct kvm_aia aia; +struct utf8_table { + int cmask; + int cval; + int shift; + long lmask; + long lval; }; -struct kvm_io_bus; +typedef u32 unicode_t; -struct kvm_coalesced_mmio_ring; +enum autofs_notify { + NFY_NONE = 0, + NFY_MOUNT = 1, + NFY_EXPIRE = 2, +}; -struct kvm_irq_routing_table; +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 kvm_stat_data; +struct autofs_wait_queue; -struct kvm { - spinlock_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 { - spinlock_t lock; - struct list_head items; - struct list_head resampler_list; - struct mutex resampler_lock; - } irqfds; - struct list_head ioeventfds; - struct kvm_vm_stat stat; - struct kvm_arch arch; - refcount_t users_count; - struct kvm_coalesced_mmio_ring *coalesced_mmio_ring; - spinlock_t ring_lock; - struct list_head coalesced_zones; - struct mutex irq_lock; - struct kvm_irq_routing_table __attribute__((btf_type_tag("rcu"))) *irq_routing; - struct hlist_head irq_ack_notifier_list; - 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 autofs_sb_info { + u32 magic; + int pipefd; + struct file *pipe; + struct pid *oz_pgrp; + int version; + int sub_version; + int min_proto; + int max_proto; + unsigned int flags; + unsigned long exp_timeout; + unsigned int type; + struct super_block *sb; + struct mutex wq_mutex; + struct mutex pipe_mutex; + spinlock_t fs_lock; + struct autofs_wait_queue *queues; + spinlock_t lookup_lock; + struct list_head active_list; + struct list_head expiring_list; + struct callback_head rcu; }; -struct kvm_io_device; +typedef unsigned int autofs_wqt_t; -struct kvm_io_range { - gpa_t addr; - int len; - struct kvm_io_device *dev; +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 kvm_io_bus { - int dev_count; - int ioeventfd_count; - struct kvm_io_range range[0]; +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 kvm_coalesced_mmio { - __u64 phys_addr; - __u32 len; - union { - __u32 pad; - __u32 pio; - }; - __u8 data[8]; +struct autofs_packet_hdr { + int proto_version; + int type; }; -struct kvm_coalesced_mmio_ring { - __u32 first; - __u32 last; - struct kvm_coalesced_mmio coalesced_mmio[0]; +struct autofs_packet_expire { + struct autofs_packet_hdr hdr; + int len; + char name[256]; }; -struct kvm_irq_routing_table { - int chip[1024]; - u32 nr_rt_entries; - struct hlist_head map[0]; -}; +typedef s32 compat_key_t; -struct _kvm_stats_desc; +typedef u32 __compat_gid32_t; -struct kvm_stat_data { - struct kvm *kvm; - const struct _kvm_stats_desc *desc; - enum kvm_stat_kind kind; -}; +typedef u32 compat_mode_t; -struct kvm_stats_desc { - __u32 flags; - __s16 exponent; - __u16 size; - __u32 offset; - __u32 bucket_size; - char name[0]; +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[0]; + compat_ushort_t seq; + compat_ushort_t __pad2; + compat_ulong_t unused1; + compat_ulong_t unused2; }; -struct _kvm_stats_desc { - struct kvm_stats_desc desc; - char name[48]; +typedef int __kernel_key_t; + +typedef unsigned int __kernel_mode_t; + +struct ipc64_perm { + __kernel_key_t key; + __kernel_uid32_t uid; + __kernel_gid32_t gid; + __kernel_uid32_t cuid; + __kernel_gid32_t cgid; + __kernel_mode_t mode; + unsigned char __pad1[0]; + unsigned short seq; + unsigned short __pad2; + __kernel_ulong_t __unused1; + __kernel_ulong_t __unused2; }; -struct kvm_debug_exit_arch {}; +typedef __kernel_key_t key_t; -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; +typedef u32 __compat_uid_t; + +typedef u32 __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; }; -struct kvm_xen_exit { - __u32 type; - union { - struct { - __u32 longmode; - __u32 cpl; - __u64 input; - __u64 result; - __u64 params[6]; - } hcall; - } u; +struct ipc_ids { + int in_use; + unsigned short seq; + struct rw_semaphore rwsem; + struct idr ipcs_idr; + int max_idx; + int last_idx; + int next_id; + struct rhashtable key_ht; }; -struct kvm_sync_regs {}; +struct ipc_namespace { + struct ipc_ids ids[3]; + int sem_ctls[4]; + int used_sems; + unsigned int msg_ctlmax; + unsigned int msg_ctlmnb; + unsigned int msg_ctlmni; + struct percpu_counter percpu_msg_bytes; + struct percpu_counter percpu_msg_hdrs; + size_t shm_ctlmax; + size_t shm_ctlall; + unsigned long shm_tot; + int shm_ctlmni; + int shm_rmid_forced; + struct notifier_block ipcns_nb; + struct vfsmount *mq_mnt; + unsigned int mq_queues_count; + unsigned int mq_queues_max; + unsigned int mq_msg_max; + unsigned int mq_msgsize_max; + unsigned int mq_msg_default; + unsigned int mq_msgsize_default; + struct ctl_table_set mq_set; + struct ctl_table_header *mq_sysctls; + struct ctl_table_set ipc_set; + struct ctl_table_header *ipc_sysctls; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct llist_node mnt_llist; + struct ns_common ns; +}; -struct 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; - union { - __u64 flags; - }; - } hypercall; - struct { - __u64 rip; - __u32 is_write; - __u32 pad; - } tpr_access; - struct { - __u8 icptcode; - __u16 ipa; - __u32 ipb; - } s390_sieic; - __u64 s390_reset_flags; - struct { - __u64 trans_exc_code; - __u32 pgm_code; - } s390_ucontrol; - struct { - __u32 dcrn; - __u32 data; - __u8 is_write; - } dcr; - struct { - __u32 suberror; - __u32 ndata; - __u64 data[16]; - } internal; - struct { - __u32 suberror; - __u32 ndata; - __u64 flags; - union { - struct { - __u8 insn_size; - __u8 insn_bytes[15]; - }; - }; - } emulation_failure; - struct { - __u64 gprs[32]; - } osi; - struct { - __u64 nr; - __u64 ret; - __u64 args[9]; - } papr_hcall; - struct { - __u16 subchannel_id; - __u16 subchannel_nr; - __u32 io_int_parm; - __u32 io_int_word; - __u32 ipb; - __u8 dequeued; - } s390_tsch; - struct { - __u32 epr; - } epr; - struct { - __u32 type; - __u32 ndata; - union { - __u64 data[16]; - }; - } system_event; - struct { - __u64 addr; - __u8 ar; - __u8 reserved; - __u8 fc; - __u8 sel1; - __u16 sel2; - } s390_stsi; - struct { - __u8 vector; - } eoi; - struct kvm_hyperv_exit hyperv; - struct { - __u64 esr_iss; - __u64 fault_ipa; - } arm_nisv; - struct { - __u8 error; - __u8 pad[7]; - __u32 reason; - __u32 index; - __u64 data; - } msr; - struct kvm_xen_exit xen; - struct { - unsigned long extension_id; - unsigned long function_id; - unsigned long args[6]; - unsigned long ret[2]; - } riscv_sbi; - struct { - unsigned long csr_num; - unsigned long new_value; - unsigned long write_mask; - unsigned long ret_value; - } riscv_csr; - struct { - __u32 flags; - } notify; - char padding[256]; - }; - __u64 kvm_valid_regs; - __u64 kvm_dirty_regs; - union { - struct kvm_sync_regs regs; - char padding[2048]; - } s; -}; +struct msg_msgseg; -struct kvm_dirty_gfn { - __u32 flags; - __u32 slot; - __u64 offset; +struct msg_msg { + struct list_head m_list; + long m_type; + size_t m_ts; + struct msg_msgseg *next; + void *security; }; -typedef u64 gfn_t; - -struct kvm_arch_memory_slot {}; +struct msg_msgseg { + struct msg_msgseg *next; +}; -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; +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, }; -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 key_state { + KEY_IS_UNINSTANTIATED = 0, + KEY_IS_POSITIVE = 1, }; -enum event_trigger_type { - ETT_NONE = 0, - ETT_TRACE_ONOFF = 1, - ETT_SNAPSHOT = 2, - ETT_STACKTRACE = 4, - ETT_EVENT_ENABLE = 8, - ETT_EVENT_HIST = 16, - ETT_HIST_ENABLE = 32, - ETT_EVENT_EPROBE = 64, +struct keyring_read_iterator_context { + size_t buflen; + size_t count; + key_serial_t *buffer; }; -struct event_trigger_data; +enum path_flags { + PATH_IS_DIR = 1, + PATH_CONNECT_PATH = 4, + PATH_CHROOT_REL = 8, + PATH_CHROOT_NSCONNECT = 16, + PATH_DELEGATE_DELETED = 65536, + PATH_MEDIATE_DELETED = 131072, +}; -struct event_trigger_ops; +typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t); -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 asn1_decoder { + const unsigned char *machine; + size_t machlen; + const asn1_action_t *actions; }; -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 rsa_mpi_key { + MPI n; + MPI e; + MPI d; + MPI p; + MPI q; + MPI dp; + MPI dq; + MPI qinv; }; -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 *); +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; }; 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 event_command_flags { - EVENT_CMD_FL_POST_TRIGGER = 1, - EVENT_CMD_FL_NEEDS_REC = 2, + REQ_FSEQ_PREFLUSH = 1, + REQ_FSEQ_DATA = 2, + REQ_FSEQ_POSTFLUSH = 4, + REQ_FSEQ_DONE = 8, + REQ_FSEQ_ACTIONS = 7, + FLUSH_PENDING_TIMEOUT = 1250, }; enum { - EVENT_TRIGGER_FL_PROBE = 1, + BLK_MQ_NO_TAG = 4294967295, + BLK_MQ_TAG_MIN = 1, + BLK_MQ_TAG_MAX = 4294967294, }; -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 { + 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, }; -struct enable_trigger_data { - struct trace_event_file *file; - bool enable; - bool hist; +enum hctx_type { + HCTX_TYPE_DEFAULT = 0, + HCTX_TYPE_READ = 1, + HCTX_TYPE_POLL = 2, + HCTX_MAX_TYPES = 3, }; -struct bpf_bloom_filter { - struct bpf_map map; - u32 bitset_mask; - u32 hash_seed; - u32 nr_hash_funcs; - unsigned long bitset[0]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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; }; -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); +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 void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t); +typedef struct _gpt_header gpt_header; -enum behavior { - EXCLUSIVE = 0, - SHARED = 1, - DROP = 2, +struct _gpt_entry_attributes { + u64 required_to_function: 1; + u64 reserved: 47; + u64 type_guid_specific: 16; }; -struct cachestat_range { - __u64 off; - __u64 len; -}; +typedef struct _gpt_entry_attributes gpt_entry_attributes; -struct cachestat { - __u64 nr_cache; - __u64 nr_dirty; - __u64 nr_writeback; - __u64 nr_evicted; - __u64 nr_recently_evicted; +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]; }; -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]; -}; +typedef struct _gpt_entry gpt_entry; -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 _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; }; -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]; -}; +typedef struct _gpt_mbr_record gpt_mbr_record; -struct wait_page_key { - struct folio *folio; - int bit_nr; - int page_match; -}; +struct _legacy_mbr { + u8 boot_code[440]; + __le32 unique_mbr_signature; + __le16 unknown; + gpt_mbr_record partition_record[4]; + __le16 signature; +} __attribute__((packed)); -struct trace_event_data_offsets_mm_filemap_op_page_cache {}; +typedef struct _legacy_mbr legacy_mbr; -struct trace_event_data_offsets_filemap_set_wb_err {}; +typedef struct { + struct folio *v; +} Sector; -struct trace_event_data_offsets_file_check_and_advance_wb_err {}; +typedef __kernel_rwf_t rwf_t; -typedef int filler_t(struct file *, struct folio *); +struct io_rw { + struct kiocb kiocb; + u64 addr; + u32 len; + rwf_t flags; +}; -enum fsnotify_data_type { - FSNOTIFY_EVENT_NONE = 0, - FSNOTIFY_EVENT_PATH = 1, - FSNOTIFY_EVENT_INODE = 2, - FSNOTIFY_EVENT_DENTRY = 3, - FSNOTIFY_EVENT_ERROR = 4, +typedef s32 compat_ssize_t; + +struct compat_iovec { + compat_uptr_t iov_base; + compat_size_t iov_len; }; -enum { - Opt_uid___3 = 0, - Opt_gid___3 = 1, - Opt_mode___3 = 2, - Opt_ptmxmode = 3, - Opt_newinstance = 4, - Opt_max = 5, - Opt_err___2 = 6, +struct iov_iter_state { + size_t iov_offset; + size_t count; + unsigned long nr_segs; }; -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 io_rw_state { + struct iov_iter iter; + struct iov_iter_state iter_state; + struct iovec fast_iov[8]; }; -struct pts_fs_info { - struct ida allocated_ptys; - struct pts_mount_opts mount_opts; - struct super_block *sb; - struct dentry *ptmx_dentry; +struct io_async_rw { + struct io_rw_state s; + const struct iovec *free_iovec; + size_t bytes_done; + struct wait_page_queue wpq; }; -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 struct { + U64 rolling; + U64 stopMask; +} ldmRollingHashState_t; -enum nfs3_ftype { - NF3NON = 0, - NF3REG = 1, - NF3DIR = 2, - NF3BLK = 3, - NF3CHR = 4, - NF3LNK = 5, - NF3SOCK = 6, - NF3FIFO = 7, - NF3BAD = 8, -}; +typedef enum { + ZSTD_ps_auto = 0, + ZSTD_ps_enable = 1, + ZSTD_ps_disable = 2, +} ZSTD_paramSwitch_e; -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, -}; +typedef struct { + ZSTD_paramSwitch_e enableLdm; + U32 hashLog; + U32 bucketSizeLog; + U32 minMatchLength; + U32 hashRateLog; + U32 windowLog; +} ldmParams_t; -enum nfs3_createmode { - NFS3_CREATE_UNCHECKED = 0, - NFS3_CREATE_GUARDED = 1, - NFS3_CREATE_EXCLUSIVE = 2, -}; +typedef struct { + const BYTE *nextSrc; + const BYTE *base; + const BYTE *dictBase; + U32 dictLimit; + U32 lowLimit; + U32 nbOverflowCorrections; +} ZSTD_window_t; -struct nfs3_sattrargs { - struct nfs_fh *fh; - struct iattr *sattr; - unsigned int guard; - struct timespec64 guardtime; +typedef struct { + U32 offset; + U32 checksum; +} ldmEntry_t; + +typedef struct { + const BYTE *split; + U32 hash; + U32 checksum; + ldmEntry_t *bucket; +} ldmMatchCandidate_t; + +typedef struct { + ZSTD_window_t window; + ldmEntry_t *hashTable; + U32 loadedDictEnd; + BYTE *bucketOffsets; + size_t splitIndices[64]; + ldmMatchCandidate_t matchCandidates[64]; +} ldmState_t; + +typedef struct { + U32 off; + U32 len; +} ZSTD_match_t; + +typedef struct { + int price; + U32 off; + U32 mlen; + U32 litlen; + U32 rep[3]; +} ZSTD_optimal_t; + +typedef enum { + zop_dynamic = 0, + zop_predef = 1, +} ZSTD_OptPrice_e; + +typedef size_t HUF_CElt; + +typedef enum { + HUF_repeat_none = 0, + HUF_repeat_check = 1, + HUF_repeat_valid = 2, +} HUF_repeat; + +typedef struct { + HUF_CElt CTable[257]; + HUF_repeat repeatMode; +} ZSTD_hufCTables_t; + +typedef unsigned int FSE_CTable; + +typedef enum { + FSE_repeat_none = 0, + FSE_repeat_check = 1, + FSE_repeat_valid = 2, +} FSE_repeat; + +typedef struct { + FSE_CTable offcodeCTable[193]; + FSE_CTable matchlengthCTable[363]; + FSE_CTable litlengthCTable[329]; + FSE_repeat offcode_repeatMode; + FSE_repeat matchlength_repeatMode; + FSE_repeat litlength_repeatMode; +} ZSTD_fseCTables_t; + +typedef struct { + ZSTD_hufCTables_t huf; + ZSTD_fseCTables_t fse; +} ZSTD_entropyCTables_t; + +typedef struct { + unsigned int *litFreq; + unsigned int *litLengthFreq; + unsigned int *matchLengthFreq; + unsigned int *offCodeFreq; + ZSTD_match_t *matchTable; + ZSTD_optimal_t *priceTable; + U32 litSum; + U32 litLengthSum; + U32 matchLengthSum; + U32 offCodeSum; + U32 litSumBasePrice; + U32 litLengthSumBasePrice; + U32 matchLengthSumBasePrice; + U32 offCodeSumBasePrice; + ZSTD_OptPrice_e priceType; + const ZSTD_entropyCTables_t *symbolCosts; + ZSTD_paramSwitch_e literalCompressionMode; +} optState_t; + +typedef enum { + ZSTD_fast = 1, + ZSTD_dfast = 2, + ZSTD_greedy = 3, + ZSTD_lazy = 4, + ZSTD_lazy2 = 5, + ZSTD_btlazy2 = 6, + ZSTD_btopt = 7, + ZSTD_btultra = 8, + ZSTD_btultra2 = 9, +} ZSTD_strategy; + +typedef struct { + unsigned int windowLog; + unsigned int chainLog; + unsigned int hashLog; + unsigned int searchLog; + unsigned int minMatch; + unsigned int targetLength; + ZSTD_strategy strategy; +} ZSTD_compressionParameters; + +typedef struct { + U32 offset; + U32 litLength; + U32 matchLength; +} rawSeq; + +typedef struct { + rawSeq *seq; + size_t pos; + size_t posInSequence; + size_t size; + size_t capacity; +} rawSeqStore_t; + +struct ZSTD_matchState_t; + +typedef struct ZSTD_matchState_t ZSTD_matchState_t; + +struct ZSTD_matchState_t { + ZSTD_window_t window; + U32 loadedDictEnd; + U32 nextToUpdate; + U32 hashLog3; + U32 rowHashLog; + U16 *tagTable; + U32 hashCache[8]; + U32 *hashTable; + U32 *hashTable3; + U32 *chainTable; + U32 forceNonContiguous; + int dedicatedDictSearch; + optState_t opt; + const ZSTD_matchState_t *dictMatchState; + ZSTD_compressionParameters cParams; + const rawSeqStore_t *ldmSeqStore; }; -struct nfs3_accessargs { - struct nfs_fh *fh; - __u32 access; +typedef enum { + ZSTD_noDict = 0, + ZSTD_extDict = 1, + ZSTD_dictMatchState = 2, + ZSTD_dedicatedDictSearch = 3, +} ZSTD_dictMode_e; + +typedef enum { + ZSTD_llt_none = 0, + ZSTD_llt_literalLength = 1, + ZSTD_llt_matchLength = 2, +} ZSTD_longLengthType_e; + +struct seqDef_s; + +typedef struct seqDef_s seqDef; + +typedef struct { + seqDef *sequencesStart; + seqDef *sequences; + BYTE *litStart; + BYTE *lit; + BYTE *llCode; + BYTE *mlCode; + BYTE *ofCode; + size_t maxNbSeq; + size_t maxNbLit; + ZSTD_longLengthType_e longLengthType; + U32 longLengthPos; +} seqStore_t; + +struct seqDef_s { + U32 offBase; + U16 litLength; + U16 mlBase; }; -struct nfs3_createargs { - struct nfs_fh *fh; +typedef enum { + ZSTD_no_overlap = 0, + ZSTD_overlap_src_before_dst = 1, +} ZSTD_overlap_e; + +typedef size_t (*ZSTD_blockCompressor)(ZSTD_matchState_t *, seqStore_t *, U32 *, const void *, size_t); + +typedef enum { + ZSTD_dtlm_fast = 0, + ZSTD_dtlm_full = 1, +} ZSTD_dictTableLoadMethod_e; + +struct group_desc { const char *name; - unsigned int len; - struct iattr *sattr; - enum nfs3_createmode createmode; - __be32 verifier[2]; + int *pins; + int num_pins; + void *data; }; -struct nfs3_diropres { - struct nfs_fattr *dir_attr; - struct nfs_fh *fh; - struct nfs_fattr *fattr; +struct pci_fixup { + u16 vendor; + u16 device; + u32 class; + unsigned int class_shift; + void (*hook)(struct pci_dev *); }; -struct nfs3_symlinkargs { - struct nfs_fh *fromfh; - const char *fromname; - unsigned int fromlen; - struct page **pages; - unsigned int pathlen; - struct iattr *sattr; +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 nfs3_mknodargs { - struct nfs_fh *fh; +struct miscdevice { + int minor; const char *name; - unsigned int len; - enum nfs3_ftype type; - struct iattr *sattr; - dev_t rdev; + const struct file_operations *fops; + struct list_head list; + struct device *parent; + struct device *this_device; + const struct attribute_group **groups; + const char *nodename; + umode_t mode; }; -struct nfs3_readdirargs { - struct nfs_fh *fh; - __u64 cookie; - __be32 verf[2]; - bool plus; - unsigned int count; - struct page **pages; +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 nfs3_readdirres { - struct nfs_fattr *dir_attr; - __be32 *verf; - bool plus; +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 nfs3_diropargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; +struct vga_arb_user_card { + struct pci_dev *pdev; + unsigned int mem_cnt; + unsigned int io_cnt; }; -struct nfs3_accessres { - struct nfs_fattr *fattr; - __u32 access; +struct vga_arb_private { + struct list_head list; + struct pci_dev *target; + struct vga_arb_user_card cards[16]; + spinlock_t lock; }; -struct nfs3_readlinkargs { - struct nfs_fh *fh; - unsigned int pgbase; - unsigned int pglen; - struct page **pages; -}; +typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *); -struct nfs3_mkdirargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; - struct iattr *sattr; +struct clk_lookup { + struct list_head node; + const char *dev_id; + const char *con_id; + struct clk *clk; + struct clk_hw *clk_hw; }; -struct nfs3_linkargs { - struct nfs_fh *fromfh; - struct nfs_fh *tofh; - const char *toname; - unsigned int tolen; +struct clk_lookup_alloc { + struct clk_lookup cl; + char dev_id[20]; + char con_id[16]; }; -struct nfs3_linkres { - struct nfs_fattr *dir_attr; - struct nfs_fattr *fattr; +struct ccu_common; + +struct ccu_pll_nb { + struct notifier_block clk_nb; + struct ccu_common *common; + u32 enable; + u32 lock; }; -struct nlm_lockowner { - struct list_head list; - refcount_t count; - struct nlm_host *host; - fl_owner_t owner; - uint32_t pid; +struct ccu_common { + void *base; + u16 reg; + u16 lock_reg; + u32 prediv; + unsigned long features; + spinlock_t *lock; + struct clk_hw hw; }; -struct nsm_handle; +struct reset_control_ops; -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 reset_controller_dev { + const struct reset_control_ops *ops; + struct module *owner; + struct list_head list; + struct list_head reset_control_head; + struct device *dev; + struct device_node *of_node; + int of_reset_n_cells; + int (*of_xlate)(struct reset_controller_dev *, const struct of_phandle_args *); + unsigned int nr_resets; }; -struct nsm_private { - unsigned char data[16]; +struct reset_control_ops { + int (*reset)(struct reset_controller_dev *, unsigned long); + int (*assert)(struct reset_controller_dev *, unsigned long); + int (*deassert)(struct reset_controller_dev *, unsigned long); + int (*status)(struct reset_controller_dev *, unsigned long); }; -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 clk_hw_onecell_data; + +struct ccu_reset_map; + +struct sunxi_ccu_desc { + struct ccu_common **ccu_clks; + unsigned long num_ccu_clks; + struct clk_hw_onecell_data *hw_clks; + struct ccu_reset_map *resets; + unsigned long num_resets; }; -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 clk_hw_onecell_data { + unsigned int num; + struct clk_hw *hws[0]; }; -struct nlm_share; +struct ccu_reset_map { + u16 reg; + u32 bit; +}; -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 ccu_reset { + void *base; + struct ccu_reset_map *reset_map; + spinlock_t *lock; + struct reset_controller_dev rcdev; }; -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 sunxi_ccu { + const struct sunxi_ccu_desc *desc; + spinlock_t lock; + struct ccu_reset reset; }; -typedef int (*nlm_host_match_fn_t)(void *, struct nlm_host *); +struct fixed_regulator_data { + struct fixed_voltage_config cfg; + struct regulator_init_data init_data; + struct platform_device pdev; +}; -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; +enum tty_flow_change { + TTY_FLOW_NO_CHANGE = 0, + TTY_THROTTLE_SAFE = 1, + TTY_UNTHROTTLE_SAFE = 2, }; -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 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 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 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 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 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 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 serial_port_device { + struct device dev; + struct uart_port *port; }; -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 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 keyring_read_iterator_context { - size_t buflen; - size_t count; - key_serial_t *buffer; +struct driver_private { + struct kobject kobj; + struct klist klist_devices; + struct klist_node knode_bus; + struct module_kobject *mkobj; + struct device_driver *driver; }; -struct counted_str { - struct kref count; - char name[0]; +struct container_dev { + struct device dev; + int (*offline)(struct container_dev *); +}; + +struct regmap_async_spi { + struct regmap_async core; + struct spi_message m; + struct spi_transfer t[2]; +}; + +struct regmap_range_cfg; + +struct regmap_config { + const char *name; + int reg_bits; + int reg_stride; + int reg_shift; + 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; }; enum { - IOPRIO_WHO_PROCESS = 1, - IOPRIO_WHO_PGRP = 2, - IOPRIO_WHO_USER = 3, + Lo_unbound = 0, + Lo_bound = 1, + Lo_rundown = 2, + Lo_deleting = 3, }; enum { - IO_SQ_THREAD_SHOULD_STOP = 0, - IO_SQ_THREAD_SHOULD_PARK = 1, + DISK_EVENT_MEDIA_CHANGE = 1, + DISK_EVENT_EJECT_REQUEST = 2, }; -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; +enum { + DISK_EVENT_FLAG_POLL = 1, + DISK_EVENT_FLAG_UEVENT = 2, + DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, }; -struct io_sqring_offsets { - __u32 head; - __u32 tail; - __u32 ring_mask; - __u32 ring_entries; - __u32 flags; - __u32 dropped; - __u32 array; - __u32 resv1; - __u64 user_addr; +enum { + LO_FLAGS_READ_ONLY = 1, + LO_FLAGS_AUTOCLEAR = 4, + LO_FLAGS_PARTSCAN = 8, + LO_FLAGS_DIRECT_IO = 16, }; -struct io_cqring_offsets { - __u32 head; - __u32 tail; - __u32 ring_mask; - __u32 ring_entries; - __u32 overflow; - __u32 cqes; - __u32 flags; - __u32 resv1; - __u64 user_addr; +enum { + IOPRIO_CLASS_NONE = 0, + IOPRIO_CLASS_RT = 1, + IOPRIO_CLASS_BE = 2, + IOPRIO_CLASS_IDLE = 3, + IOPRIO_CLASS_INVALID = 7, }; -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; +enum { + IOPRIO_HINT_NONE = 0, + IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1, + IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2, + IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3, + IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4, + IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5, + IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6, + IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7, }; -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 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; +}; -typedef struct { - U16 nextState; - BYTE nbAdditionalBits; - BYTE nbBits; - U32 baseValue; -} ZSTD_seqSymbol; +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; +}; -typedef U32 HUF_DTable; +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 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 u32 compat_dev_t; -typedef enum { - ZSTD_frame = 0, - ZSTD_skippableFrame = 1, -} ZSTD_frameType_e; +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 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; +struct req_iterator { + struct bvec_iter iter; + struct bio *bio; +}; -typedef enum { - bt_raw = 0, - bt_rle = 1, - bt_compressed = 2, - bt_reserved = 3, -} blockType_e; +typedef unsigned int __kernel_old_dev_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; - -struct xxh64_state { - uint64_t total_len; - uint64_t v1; - uint64_t v2; - uint64_t v3; - uint64_t v4; - uint64_t mem64[4]; - uint32_t memsize; +struct 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]; }; -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; - -struct ZSTD_outBuffer_s { - void *dst; - size_t size; - size_t pos; +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 struct ZSTD_outBuffer_s ZSTD_outBuffer; - -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; - 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; +struct loop_config { + __u32 fd; + __u32 block_size; + struct loop_info64 info; + __u64 __reserved[8]; }; -typedef struct ZSTD_DCtx_s ZSTD_DCtx; - -typedef ZSTD_DCtx ZSTD_DStream; - -struct ZSTD_inBuffer_s { - const void *src; - size_t size; - size_t pos; +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; }; -typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; - -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 uint8_t U8; - -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 s16 int16_t; - -typedef int16_t S16; - -typedef struct { - U32 fastMode; - U32 tableLog; -} ZSTD_seqSymbol_header; - -struct ZSTD_DDict_s { - void *dictBuffer; - const void *dictContent; - size_t dictSize; - ZSTD_entropyDTables_t entropy; - U32 dictID; - U32 entropyPresent; - ZSTD_customMem cMem; +struct transport_container { + struct attribute_container ac; + const struct attribute_group *statistics; }; -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 bitContainer; - unsigned int bitsConsumed; - const char *ptr; - const char *start; - const char *limitPtr; -} BIT_DStream_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 { - BIT_DStream_unfinished = 0, - BIT_DStream_endOfBuffer = 1, - BIT_DStream_completed = 2, - BIT_DStream_overflow = 3, -} BIT_DStream_status; - -typedef struct { - blockType_e blockType; - U32 lastBlock; - U32 origSize; -} blockProperties_t; - -struct pinctrl_setting_mux; - -struct pin_desc { - struct pinctrl_dev *pctldev; - const char *name; - bool dynamic_name; - void *drv_data; - unsigned int mux_usecount; - const char *mux_owner; - const struct pinctrl_setting_mux *mux_setting; - const char *gpio_owner; +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 pinctrl_setting_mux { - unsigned int group; - unsigned int func; +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, }; -struct function_desc { +typedef void (*activate_complete)(void *, int); + +struct scsi_device_handler { + struct list_head list; + struct module *module; const char *name; - const char * const *group_names; - int num_group_names; - void *data; + 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 pinctrl_setting_configs { - unsigned int group_or_pin; - unsigned long *configs; - unsigned int num_configs; +enum scsi_scan_mode { + SCSI_SCAN_INITIAL = 0, + SCSI_SCAN_RESCAN = 1, + SCSI_SCAN_MANUAL = 2, }; -struct pinctrl_setting { - struct list_head node; - enum pinctrl_map_type type; - struct pinctrl_dev *pctldev; - const char *dev_name; - union { - struct pinctrl_setting_mux mux; - struct pinctrl_setting_configs configs; - } data; +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 pci_fixup { - u16 vendor; - u16 device; - u32 class; - unsigned int class_shift; - void (*hook)(struct pci_dev *); +struct scsi_event { + enum scsi_device_event evt_type; + struct list_head node; }; -struct acpi_device_physical_node { - unsigned int node_id; +struct class_interface { struct list_head node; - struct device *dev; - bool put_online: 1; + const struct class *class; + int (*add_dev)(struct device *); + void (*remove_dev)(struct device *); }; -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 *); +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, }; -struct find_child_walk_data { - struct acpi_device *adev; - u64 address; - int score; - bool check_sta; - bool check_children; +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, }; -struct acpi_fan_fif { - u8 revision; - u8 fine_grain_ctrl; - u8 step_size; - u8 low_speed_notification; +struct scsi_exec_args { + unsigned char *sense; + unsigned int sense_len; + struct scsi_sense_hdr *sshdr; + blk_mq_req_flags_t req_flags; + int scmd_flags; + int *resid; }; -struct acpi_fan_fps; +typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *); -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 ata_scsi_args { + struct ata_device *dev; + u16 *id; + struct scsi_cmnd *cmd; }; -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 sg_page_iter { + struct scatterlist *sg; + unsigned int sg_pgoffset; + unsigned int __nents; + int __pg_advance; }; -struct acpi_fan_fst { - u64 revision; - u64 control; - u64 speed; +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; }; -struct ccu_nk { - u16 reg; - u32 enable; - u32 lock; - struct ccu_mult_internal n; - struct ccu_mult_internal k; - unsigned int fixed_post_div; - struct ccu_common common; +struct sfdp_bfpt_read { + u32 hwcaps; + u32 supported_dword; + u32 supported_bit; + u32 settings_dword; + u32 settings_shift; + enum spi_nor_protocol proto; }; -struct _ccu_nk { - unsigned long n; - unsigned long min_n; - unsigned long max_n; - unsigned long k; - unsigned long min_k; - unsigned long max_k; +struct sfdp_bfpt_erase { + u32 dword; + u32 shift; }; -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 sfdp_4bait { + u32 hwcaps; + u32 supported_bit; +}; + +enum spi_nor_read_command_index { + SNOR_CMD_READ = 0, + SNOR_CMD_READ_FAST = 1, + SNOR_CMD_READ_1_1_1_DTR = 2, + SNOR_CMD_READ_1_1_2 = 3, + SNOR_CMD_READ_1_2_2 = 4, + SNOR_CMD_READ_2_2_2 = 5, + SNOR_CMD_READ_1_2_2_DTR = 6, + SNOR_CMD_READ_1_1_4 = 7, + SNOR_CMD_READ_1_4_4 = 8, + SNOR_CMD_READ_4_4_4 = 9, + SNOR_CMD_READ_1_4_4_DTR = 10, + SNOR_CMD_READ_1_1_8 = 11, + SNOR_CMD_READ_1_8_8 = 12, + SNOR_CMD_READ_8_8_8 = 13, + SNOR_CMD_READ_1_8_8_DTR = 14, + SNOR_CMD_READ_8_8_8_DTR = 15, + SNOR_CMD_READ_MAX = 16, +}; + +enum spi_nor_pp_command_index { + SNOR_CMD_PP = 0, + SNOR_CMD_PP_1_1_4 = 1, + SNOR_CMD_PP_1_4_4 = 2, + SNOR_CMD_PP_4_4_4 = 3, + SNOR_CMD_PP_1_1_8 = 4, + SNOR_CMD_PP_1_8_8 = 5, + SNOR_CMD_PP_8_8_8 = 6, + SNOR_CMD_PP_8_8_8_DTR = 7, + SNOR_CMD_PP_MAX = 8, +}; + +struct sfdp_header { + u32 signature; + u8 minor; + u8 major; + u8 nph; + u8 unused; + struct sfdp_parameter_header bfpt_header; }; -struct tty_file_private { - struct tty_struct *tty; - struct file *file; - struct list_head list; +struct rtl8169_private; + +typedef void (*rtl_phy_cfg_fct)(struct rtl8169_private *, struct phy_device *); + +struct phy_reg { + u16 reg; + u16 val; }; -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; +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, }; -typedef int (*iommu_fault_handler_t)(struct iommu_domain *, struct device *, unsigned long, int, void *); +struct usb_dynids { + spinlock_t lock; + struct list_head list; +}; -struct iommu_domain_geometry { - dma_addr_t aperture_start; - dma_addr_t aperture_end; - bool force_aperture; +struct usbdrv_wrap { + struct device_driver driver; + int for_devices; }; -struct iommu_dma_cookie; +struct usb_device_id; -enum iommu_page_response_code { - IOMMU_PAGE_RESP_SUCCESS = 0, - IOMMU_PAGE_RESP_INVALID = 1, - IOMMU_PAGE_RESP_FAILURE = 2, +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 iommu_fault; +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 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; - }; - }; +enum snoop_when { + SUBMIT = 0, + COMPLETE = 1, }; -struct iommu_iotlb_gather; +enum { + DUMP_PREFIX_NONE = 0, + DUMP_PREFIX_ADDRESS = 1, + DUMP_PREFIX_OFFSET = 2, +}; -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 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 iommu_iotlb_gather { - unsigned long start; - unsigned long end; - size_t pgsize; - struct list_head freelist; - bool queued; +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 iommu_fault_unrecoverable { - __u32 reason; - __u32 flags; - __u32 pasid; - __u32 perm; - __u64 addr; - __u64 fetch_addr; +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 iommu_fault_page_request { - __u32 flags; - __u32 pasid; - __u32 grpid; - __u32 perm; - __u64 addr; - __u64 private_data[2]; +struct usbdevfs_iso_packet_desc { + unsigned int length; + unsigned int actual_length; + unsigned int status; }; -struct iommu_fault { - __u32 type; - __u32 padding; +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 { - struct iommu_fault_unrecoverable event; - struct iommu_fault_page_request prm; - __u8 padding2[56]; + 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 iommu_device { - struct list_head list; - const struct iommu_ops *ops; - struct fwnode_handle *fwnode; - struct device *dev; - u32 max_pasids; +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 iommu_fault_event { - struct iommu_fault fault; - struct list_head list; +struct usbdevfs_ioctl { + int ifno; + int ioctl_code; + void __attribute__((btf_type_tag("user"))) *data; }; -struct iommu_page_response { - __u32 argsz; - __u32 version; - __u32 flags; - __u32 pasid; - __u32 grpid; - __u32 code; +struct usbdevfs_disconnectsignal { + unsigned int signr; + void __attribute__((btf_type_tag("user"))) *context; }; -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; +struct usbdevfs_getdriver { + unsigned int interface; + char driver[256]; }; -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 usbdevfs_ctrltransfer32 { + u8 bRequestType; + u8 bRequest; + u16 wValue; + u16 wIndex; + u16 wLength; + u32 timeout; + compat_caddr_t data; }; -struct iommu_fwspec { - const struct iommu_ops *ops; - struct fwnode_handle *iommu_fwnode; - u32 flags; - unsigned int num_ids; - u32 ids[0]; +struct usbdevfs_ctrltransfer { + __u8 bRequestType; + __u8 bRequest; + __u16 wValue; + __u16 wIndex; + __u16 wLength; + __u32 timeout; + void __attribute__((btf_type_tag("user"))) *data; }; -enum sun50i_iommu_aci { - SUN50I_IOMMU_ACI_DO_NOT_USE = 0, - SUN50I_IOMMU_ACI_NONE = 1, - SUN50I_IOMMU_ACI_RD = 2, - SUN50I_IOMMU_ACI_WR = 3, - SUN50I_IOMMU_ACI_RD_WR = 4, +struct usbdevfs_bulktransfer { + unsigned int ep; + unsigned int len; + unsigned int timeout; + void __attribute__((btf_type_tag("user"))) *data; }; -struct sun50i_iommu; - -struct sun50i_iommu_domain { - struct iommu_domain domain; - refcount_t refcnt; - u32 *dt; - dma_addr_t dt_dma; - struct sun50i_iommu *iommu; +struct usbdevfs_bulktransfer32 { + compat_uint_t ep; + compat_uint_t len; + compat_uint_t timeout; + compat_caddr_t data; }; -struct sun50i_iommu { - struct iommu_device iommu; - spinlock_t iommu_lock; - struct device *dev; - void *base; - struct reset_control *reset; - struct clk *clk; - struct iommu_domain *domain; - struct iommu_group *group; - struct kmem_cache *pt_pool; +struct usbdevfs_connectinfo { + unsigned int devnum; + unsigned char slow; }; -struct firmware { - size_t size; - const u8 *data; - void *priv; +struct usbdevfs_disconnect_claim { + unsigned int interface; + unsigned int flags; + char driver[256]; }; -struct builtin_fw { - char *name; - void *data; - unsigned long size; +struct usbdevfs_ioctl32 { + s32 ifno; + s32 ioctl_code; + compat_caddr_t data; }; -enum { - NSINDEX_SIG_LEN = 16, - NSINDEX_ALIGN = 256, - NSINDEX_SEQ_MASK = 3, - NSLABEL_UUID_LEN = 16, - NSLABEL_NAME_LEN = 64, - NSLABEL_FLAG_ROLABEL = 1, - NSLABEL_FLAG_LOCAL = 2, - NSLABEL_FLAG_BTT = 4, - NSLABEL_FLAG_UPDATING = 8, - BTT_ALIGN = 4096, - BTTINFO_SIG_LEN = 16, - BTTINFO_UUID_LEN = 16, - BTTINFO_FLAG_ERROR = 1, - BTTINFO_MAJOR_VERSION = 1, - ND_LABEL_MIN_SIZE = 1024, - ND_LABEL_ID_SIZE = 50, - ND_NSINDEX_INIT = 1, +struct usbdevfs_setinterface { + unsigned int interface; + unsigned int altsetting; }; -enum nvdimm_passphrase_type { - NVDIMM_USER = 0, - NVDIMM_MASTER = 1, +struct usbdevfs_disconnectsignal32 { + compat_int_t signr; + compat_caddr_t context; }; -enum nvdimm_fwa_result { - NVDIMM_FWA_RESULT_INVALID = 0, - NVDIMM_FWA_RESULT_NONE = 1, - NVDIMM_FWA_RESULT_SUCCESS = 2, - NVDIMM_FWA_RESULT_NOTSTAGED = 3, - NVDIMM_FWA_RESULT_NEEDRESET = 4, - NVDIMM_FWA_RESULT_FAIL = 5, +struct usbdevfs_conninfo_ex { + __u32 size; + __u32 busnum; + __u32 devnum; + __u32 speed; + __u8 num_ports; + __u8 ports[7]; }; -enum nvdimm_fwa_trigger { - NVDIMM_FWA_ARM = 0, - NVDIMM_FWA_DISARM = 1, +struct usbdevfs_streams { + unsigned int num_streams; + unsigned int num_eps; + unsigned char eps[0]; }; -enum nvdimm_claim_class { - NVDIMM_CCLASS_NONE = 0, - NVDIMM_CCLASS_BTT = 1, - NVDIMM_CCLASS_BTT2 = 2, - NVDIMM_CCLASS_PFN = 3, - NVDIMM_CCLASS_DAX = 4, - NVDIMM_CCLASS_UNKNOWN = 5, +enum usb_phy_type { + USB_PHY_TYPE_UNDEFINED = 0, + USB_PHY_TYPE_USB2 = 1, + USB_PHY_TYPE_USB3 = 2, }; -enum nd_label_flags { - ND_LABEL_REAP = 0, +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 nvdimm_cxl_label { - u8 type[16]; - u8 uuid[16]; - u8 name[64]; - __le32 flags; - __le16 nrange; - __le16 position; - __le64 dpa; - __le64 rawsize; - __le32 slot; - __le32 align; - u8 region_uuid[16]; - u8 abstraction_uuid[16]; - __le16 lbasize; - u8 reserved[86]; - __le64 checksum; +enum usb_charger_type { + UNKNOWN_TYPE = 0, + SDP_TYPE = 1, + DCP_TYPE = 2, + CDP_TYPE = 3, + ACA_TYPE = 4, }; -struct nvdimm_efi_label { - u8 uuid[16]; - u8 name[64]; - __le32 flags; - __le16 nlabel; - __le16 position; - __le64 isetcookie; - __le64 lbasize; - __le64 dpa; - __le64 rawsize; - __le32 slot; - u8 align; - u8 reserved[3]; - guid_t type_guid; - guid_t abstraction_guid; - u8 reserved2[88]; - __le64 checksum; +enum usb_charger_state { + USB_CHARGER_DEFAULT = 0, + USB_CHARGER_PRESENT = 1, + USB_CHARGER_ABSENT = 2, }; -struct nd_namespace_label { - union { - struct nvdimm_cxl_label cxl; - struct nvdimm_efi_label efi; - }; +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 nd_label_ent { - struct list_head list; - unsigned long flags; - struct nd_namespace_label *label; -}; +struct usb_otg; -struct nd_cmd_get_config_size { - __u32 status; - __u32 config_size; - __u32 max_xfer; -}; +struct usb_phy_io_ops; -struct nvdimm_drvdata { +struct extcon_dev; + +struct usb_phy { struct device *dev; - int nslabel_size; - struct nd_cmd_get_config_size nsarea; - void *data; - bool cxl; - int ns_current; - int ns_next; - struct resource dpa; - struct kref kref; + 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 badblocks { - struct device *dev; - int count; - int unacked_exist; - int shift; - u64 *page; - int changed; - seqlock_t lock; - sector_t sector; - sector_t size; +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 nd_namespace_index { - u8 sig[16]; - u8 flags[3]; - u8 labelsize; - __le32 seq; - __le64 myoff; - __le64 mysize; - __le64 otheroff; - __le64 labeloff; - __le32 nslot; - __le16 major; - __le16 minor; - __le64 checksum; - u8 free[0]; +struct usb_gadget; + +struct usb_otg { + u8 default_a; + struct phy *phy; + struct usb_phy *usb_phy; + struct usb_bus *host; + struct usb_gadget *gadget; + enum usb_otg_state state; + int (*set_host)(struct usb_otg *, struct usb_bus *); + int (*set_peripheral)(struct usb_otg *, struct usb_gadget *); + int (*set_vbus)(struct usb_otg *, bool); + int (*start_srp)(struct usb_otg *); + int (*start_hnp)(struct usb_otg *); }; -struct nd_label_id { - char id[50]; +struct usb_phy_io_ops { + int (*read)(struct usb_phy *, u32); + int (*write)(struct usb_phy *, u32, u32); }; -struct nd_mapping { - struct nvdimm *nvdimm; - u64 start; - u64 size; - int position; - struct list_head labels; - struct mutex lock; - struct nvdimm_drvdata *ndd; +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 nvdimm_security_ops; +struct xhci_plat_priv { + const char *firmware_name; + unsigned long long quirks; + void (*plat_start)(struct usb_hcd *); + int (*init_quirk)(struct usb_hcd *); + int (*suspend_quirk)(struct usb_hcd *); + int (*resume_quirk)(struct usb_hcd *); +}; -struct nvdimm_fw_ops; +typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); -struct nvdimm { - unsigned long flags; - void *provider_data; - unsigned long cmd_mask; - struct device dev; - atomic_t busy; - int id; - int num_flush; - struct resource *flush_wpq; - const char *dimm_id; - struct { - const struct nvdimm_security_ops *ops; - unsigned long flags; - unsigned long ext_flags; - unsigned int overwrite_tmo; - struct kernfs_node *overwrite_state; - } sec; - struct delayed_work dwork; - const struct nvdimm_fw_ops *fw_ops; +enum input_clock_type { + INPUT_CLK_REAL = 0, + INPUT_CLK_MONO = 1, + INPUT_CLK_BOOT = 2, + INPUT_CLK_MAX = 3, }; -struct nvdimm_key_data; +union input_seq_state { + struct { + unsigned short pos; + bool mutex_acquired; + }; + void *p; +}; -struct nvdimm_security_ops { - unsigned long (*get_flags)(struct nvdimm *, enum nvdimm_passphrase_type); - int (*freeze)(struct nvdimm *); - int (*change_key)(struct nvdimm *, const struct nvdimm_key_data *, const struct nvdimm_key_data *, enum nvdimm_passphrase_type); - int (*unlock)(struct nvdimm *, const struct nvdimm_key_data *); - int (*disable)(struct nvdimm *, const struct nvdimm_key_data *); - int (*erase)(struct nvdimm *, const struct nvdimm_key_data *, enum nvdimm_passphrase_type); - int (*overwrite)(struct nvdimm *, const struct nvdimm_key_data *); - int (*query_overwrite)(struct nvdimm *); - int (*disable_master)(struct nvdimm *, const struct nvdimm_key_data *); +struct input_devres { + struct input_dev *input; }; -struct nvdimm_key_data { - u8 data[32]; +enum opp_table_access { + OPP_TABLE_ACCESS_UNKNOWN = 0, + OPP_TABLE_ACCESS_EXCLUSIVE = 1, + OPP_TABLE_ACCESS_SHARED = 2, }; -struct nvdimm_fw_ops { - enum nvdimm_fwa_state (*activate_state)(struct nvdimm *); - enum nvdimm_fwa_result (*activate_result)(struct nvdimm *); - int (*arm)(struct nvdimm *, enum nvdimm_fwa_trigger); +struct opp_device { + struct list_head node; + const struct device *dev; + struct dentry *dentry; }; -struct nd_percpu_lane; +struct dev_pm_opp_supply; -struct nd_region { - struct device dev; - struct ida ns_ida; - struct ida btt_ida; - struct ida pfn_ida; - struct ida dax_ida; - unsigned long flags; - struct device *ns_seed; - struct device *btt_seed; - struct device *pfn_seed; - struct device *dax_seed; - unsigned long align; - u16 ndr_mappings; - u64 ndr_size; - u64 ndr_start; - int id; - int num_lanes; - int ro; - int numa_node; - int target_node; - void *provider_data; - struct kernfs_node *bb_state; - struct badblocks bb; - struct nd_interleave_set *nd_set; - struct nd_percpu_lane __attribute__((btf_type_tag("percpu"))) *lane; - int (*flush)(struct nd_region *, struct bio *); - struct nd_mapping mapping[0]; -}; +struct dev_pm_opp_icc_bw; -struct nd_percpu_lane { - int count; - spinlock_t lock; +struct dev_pm_opp { + struct list_head node; + struct kref kref; + bool available; + bool dynamic; + bool turbo; + bool suspend; + bool removed; + unsigned long *rates; + unsigned int level; + struct dev_pm_opp_supply *supplies; + struct dev_pm_opp_icc_bw *bandwidth; + unsigned long clock_latency_ns; + struct dev_pm_opp **required_opps; + struct opp_table *opp_table; + struct device_node *np; + struct dentry *dentry; + const char *of_name; }; -struct nd_namespace_common { - int force_raw; - struct device dev; - struct device *claim; - enum nvdimm_claim_class claim_class; - int (*rw_bytes)(struct nd_namespace_common *, resource_size_t, void *, size_t, int, unsigned long); +struct dev_pm_opp_supply { + unsigned long u_volt; + unsigned long u_volt_min; + unsigned long u_volt_max; + unsigned long u_amp; + unsigned long u_watt; }; -struct nd_namespace_io { - struct nd_namespace_common common; - struct resource res; - resource_size_t size; - void *addr; - struct badblocks bb; +struct dev_pm_opp_icc_bw { + u32 avg; + u32 peak; }; -struct nd_namespace_pmem { - struct nd_namespace_io nsio; - unsigned long lbasize; - char *alt_name; - uuid_t *uuid; - int id; -}; +typedef int (*config_clks_t)(struct device *, struct opp_table *, struct dev_pm_opp *, void *, bool); -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, +typedef int (*config_regulators_t)(struct device *, struct dev_pm_opp *, struct dev_pm_opp *, struct regulator **, unsigned int); + +struct icc_path; + +struct opp_table { + struct list_head node; + struct list_head lazy; + struct blocking_notifier_head head; + struct list_head dev_list; + struct list_head opp_list; + struct kref kref; + struct mutex lock; + struct device_node *np; + unsigned long clock_latency_ns_max; + unsigned int voltage_tolerance_v1; + unsigned int parsed_static_opps; + enum opp_table_access shared_opp; + unsigned long rate_clk_single; + struct dev_pm_opp *current_opp; + struct dev_pm_opp *suspend_opp; + struct device **genpd_virt_devs; + struct opp_table **required_opp_tables; + unsigned int required_opp_count; + unsigned int *supported_hw; + unsigned int supported_hw_count; + const char *prop_name; + config_clks_t config_clks; + struct clk **clks; + struct clk *clk; + int clk_count; + config_regulators_t config_regulators; + struct regulator **regulators; + int regulator_count; + struct icc_path **paths; + unsigned int path_count; + bool enabled; + bool is_genpd; + int (*set_required_opps)(struct device *, struct opp_table *, struct dev_pm_opp *, bool); + struct dentry *dentry; + char dentry_name[255]; }; -enum phy_media { - PHY_MEDIA_DEFAULT = 0, - PHY_MEDIA_SR = 1, - PHY_MEDIA_DAC = 2, +enum mmc_busy_cmd { + MMC_BUSY_CMD6 = 0, + MMC_BUSY_ERASE = 1, + MMC_BUSY_HPI = 2, + MMC_BUSY_EXTR_SINGLE = 3, + MMC_BUSY_IO = 4, }; -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, +struct sd_busy_data { + struct mmc_card *card; + u8 *reg_buf; }; -struct phy; +struct dw_mci; -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 dw_mci_slot; + +struct dw_mci_drv_data { + unsigned long *caps; + u32 num_caps; + u32 common_caps; + int (*init)(struct dw_mci *); + void (*set_ios)(struct dw_mci *, struct mmc_ios *); + int (*parse_dt)(struct dw_mci *); + int (*execute_tuning)(struct dw_mci_slot *, u32); + int (*prepare_hs400_tuning)(struct dw_mci *, struct mmc_ios *); + int (*switch_voltage)(struct mmc_host *, struct mmc_ios *); + void (*set_data_timeout)(struct dw_mci *, unsigned int); + u32 (*get_drto_clks)(struct dw_mci *); }; -struct phy_attrs { - u32 bus_width; - u32 max_link_rate; - enum phy_mode mode; +enum dw_mci_state { + STATE_IDLE = 0, + STATE_SENDING_CMD = 1, + STATE_SENDING_DATA = 2, + STATE_DATA_BUSY = 3, + STATE_SENDING_STOP = 4, + STATE_DATA_ERROR = 5, + STATE_SENDING_CMD11 = 6, + STATE_WAITING_CMD11_DONE = 7, }; -struct phy_ops; +struct dw_mci_dma_ops; -struct phy { - struct device dev; - int id; - const struct phy_ops *ops; - struct mutex mutex; - int init_count; - int power_count; - struct phy_attrs attrs; - struct regulator *pwr; - struct dentry *debugfs; -}; +struct dw_mci_dma_slave; -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 dw_mci_board; -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 dw_mci { + spinlock_t lock; + spinlock_t irq_lock; + void *regs; + void *fifo_reg; + u32 data_addr_override; + bool wm_aligned; + struct scatterlist *sg; + struct sg_mapping_iter sg_miter; + struct mmc_request *mrq; + struct mmc_command *cmd; + struct mmc_data *data; + struct mmc_command stop_abort; + unsigned int prev_blksz; + unsigned char timing; + int use_dma; + int using_dma; + int dma_64bit_address; + dma_addr_t sg_dma; + void *sg_cpu; + const struct dw_mci_dma_ops *dma_ops; + unsigned int ring_size; + struct dw_mci_dma_slave *dms; + resource_size_t phy_regs; + u32 cmd_status; + u32 data_status; + u32 stop_cmdr; + u32 dir_status; + struct tasklet_struct tasklet; + unsigned long pending_events; + unsigned long completed_events; + enum dw_mci_state state; + struct list_head queue; + u32 bus_hz; + u32 current_speed; + u32 minimum_speed; + u32 fifoth_val; + u16 verid; + struct device *dev; + struct dw_mci_board *pdata; + const struct dw_mci_drv_data *drv_data; + void *priv; + struct clk *biu_clk; + struct clk *ciu_clk; + struct dw_mci_slot *slot; + int fifo_depth; + int data_shift; + u8 part_buf_start; + u8 part_buf_count; + union { + u16 part_buf16; + u32 part_buf32; + u64 part_buf; + }; + void (*push_data)(struct dw_mci *, void *, int); + void (*pull_data)(struct dw_mci *, void *, int); + u32 quirks; + bool vqmmc_enabled; + unsigned long irq_flags; + int irq; + int sdio_id0; + struct timer_list cmd11_timer; + struct timer_list cto_timer; + struct timer_list dto_timer; }; -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 dw_mci_dma_ops { + int (*init)(struct dw_mci *); + int (*start)(struct dw_mci *, unsigned int); + void (*complete)(void *); + void (*stop)(struct dw_mci *); + void (*cleanup)(struct dw_mci *); + void (*exit)(struct dw_mci *); }; -struct phy_configure_opts_lvds { - unsigned int bits_per_lane_and_dclk_cycle; - unsigned long differential_clk_rate; - unsigned int lanes; - bool is_slave; +struct dw_mci_dma_slave { + struct dma_chan *ch; + enum dma_transfer_direction direction; }; -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 dma_pdata; -struct e1000_stats { - char stat_string[32]; - int type; - int sizeof_stat; - int stat_offset; +struct dw_mci_board { + unsigned int bus_hz; + u32 caps; + u32 caps2; + u32 pm_caps; + unsigned int fifo_depth; + u32 detect_delay_ms; + struct reset_control *rstc; + struct dw_mci_dma_ops *dma_ops; + struct dma_pdata *data; }; -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, +struct dw_mci_slot { + struct mmc_host *mmc; + struct dw_mci *host; + u32 ctype; + struct mmc_request *mrq; + struct list_head queue_node; + unsigned int clock; + unsigned int __clk_old; + unsigned long flags; + int id; + int sdio_id; }; -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, +struct font_desc { + int idx; + const char *name; + unsigned int width; + unsigned int height; + unsigned int charcount; + const void *data; + int pref; }; enum { - NETDEV_STATS = 0, - E1000_STATS = 1, -}; - -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, -}; - -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; + MEMREMAP_WB = 1, + MEMREMAP_WT = 2, + MEMREMAP_WC = 4, + MEMREMAP_ENC = 8, + MEMREMAP_DEC = 16, }; -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; -}; +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 usb_dynids { - spinlock_t lock; - struct list_head list; +struct rpmsg_device_id { + char name[32]; + kernel_ulong_t driver_data; }; -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 rpmsg_endpoint; -struct us_data; +struct rpmsg_device_ops; -struct us_unusual_dev { - const char *vendorName; - const char *productName; - __u8 useProtocol; - __u8 useTransport; - int (*initFunction)(struct us_data *); +struct rpmsg_device { + struct device dev; + struct rpmsg_device_id id; + const char *driver_override; + u32 src; + u32 dst; + struct rpmsg_endpoint *ept; + bool announce; + bool little_endian; + const struct rpmsg_device_ops *ops; }; -typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data *); +typedef int (*rpmsg_rx_cb_t)(struct rpmsg_device *, void *, int, void *, u32); -typedef int (*trans_reset)(struct us_data *); +typedef int (*rpmsg_flowcontrol_cb_t)(struct rpmsg_device *, void *, bool); -typedef void (*proto_cmnd)(struct scsi_cmnd *, struct us_data *); +struct rpmsg_endpoint_ops; -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; +struct rpmsg_endpoint { + struct rpmsg_device *rpdev; + struct kref refcount; + rpmsg_rx_cb_t cb; + rpmsg_flowcontrol_cb_t flow_cb; + struct mutex cb_lock; + u32 addr; + void *priv; + const struct rpmsg_endpoint_ops *ops; }; -typedef void (*extra_data_destructor)(void *); - -typedef void (*pm_hook)(struct us_data *, int); - -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 rpmsg_endpoint_ops { + void (*destroy_ept)(struct rpmsg_endpoint *); + int (*send)(struct rpmsg_endpoint *, void *, int); + int (*sendto)(struct rpmsg_endpoint *, void *, int, u32); + int (*send_offchannel)(struct rpmsg_endpoint *, u32, u32, void *, int); + int (*trysend)(struct rpmsg_endpoint *, void *, int); + int (*trysendto)(struct rpmsg_endpoint *, void *, int, u32); + int (*trysend_offchannel)(struct rpmsg_endpoint *, u32, u32, void *, int); + __poll_t (*poll)(struct rpmsg_endpoint *, struct file *, poll_table *); + int (*set_flow_control)(struct rpmsg_endpoint *, bool, u32); + ssize_t (*get_mtu)(struct rpmsg_endpoint *); }; -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, -}; +struct rpmsg_channel_info; -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; - bool upper_no_limit; +struct rpmsg_device_ops { + struct rpmsg_device * (*create_channel)(struct rpmsg_device *, struct rpmsg_channel_info *); + int (*release_channel)(struct rpmsg_device *, struct rpmsg_channel_info *); + struct rpmsg_endpoint * (*create_ept)(struct rpmsg_device *, rpmsg_rx_cb_t, void *, struct rpmsg_channel_info); + int (*announce_create)(struct rpmsg_device *); + int (*announce_destroy)(struct rpmsg_device *); }; -struct __extcon_info { - unsigned int type; - unsigned int id; - const char *name; +struct rpmsg_channel_info { + char name[32]; + u32 src; + u32 dst; }; -union extcon_property_value { - int intval; +struct rpmsg_driver { + struct device_driver drv; + const struct rpmsg_device_id *id_table; + int (*probe)(struct rpmsg_device *); + void (*remove)(struct rpmsg_device *); + int (*callback)(struct rpmsg_device *, void *, int, void *, u32); + int (*flowcontrol)(struct rpmsg_device *, void *, bool); }; -struct extcon_cable { - struct extcon_dev *edev; - int cable_index; - struct attribute_group attr_g; - struct device_attribute attr_name; - struct device_attribute attr_state; - struct attribute *attrs[3]; - union extcon_property_value usb_propval[3]; - union extcon_property_value chg_propval[1]; - union extcon_property_value jack_propval[1]; - union extcon_property_value disp_propval[2]; - unsigned long usb_bits[1]; - unsigned long chg_bits[1]; - unsigned long jack_bits[1]; - unsigned long disp_bits[1]; +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; }; -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 page_pool_params { + unsigned int flags; + unsigned int order; + unsigned int pool_size; + int nid; + struct device *dev; + struct napi_struct *napi; + enum dma_data_direction dma_dir; + unsigned int max_len; + unsigned int offset; + void (*init_callback)(struct page *, void *); + void *init_arg; }; -struct xdp_frame_bulk { - int count; - void *xa; - void *q[16]; +struct page_pool_alloc_stats { + u64 fast; + u64 slow; + u64 slow_high_order; + u64 empty; + u64 refill; + u64 waive; }; -struct xdp_attachment_info { - struct bpf_prog *prog; - u32 flags; +struct pp_alloc_cache { + u32 count; + struct page *cache[128]; }; -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 ptr_ring { + int producer; + spinlock_t producer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + int consumer_head; + int consumer_tail; + spinlock_t consumer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + int size; + int batch; + void **queue; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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, +struct page_pool_recycle_stats; + +struct page_pool { + struct page_pool_params p; + long frag_users; + struct page *frag_page; + unsigned int frag_offset; + u32 pages_state_hold_cnt; + struct delayed_work release_dw; + void (*disconnect)(void *); + unsigned long defer_start; + unsigned long defer_warn; + struct page_pool_alloc_stats alloc_stats; + u32 xdp_mem_id; + 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; }; -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 page_pool_recycle_stats { + u64 cached; + u64 cache_full; + u64 ring; + u64 ring_full; + u64 released_refcnt; }; -enum nla_policy_validation { - NLA_VALIDATE_NONE = 0, - NLA_VALIDATE_RANGE = 1, - NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2, - NLA_VALIDATE_MIN = 3, - NLA_VALIDATE_MAX = 4, - NLA_VALIDATE_MASK = 5, - NLA_VALIDATE_RANGE_PTR = 6, - NLA_VALIDATE_FUNCTION = 7, +struct page_pool_stats { + struct page_pool_alloc_stats alloc_stats; + struct page_pool_recycle_stats recycle_stats; }; -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]; +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, }; -struct link_mode_info { - int speed; - u8 lanes; - u8 duplex; +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, }; -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 *); +enum pedit_cmd { + TCA_PEDIT_KEY_EX_CMD_SET = 0, + TCA_PEDIT_KEY_EX_CMD_ADD = 1, + __PEDIT_CMD_MAX = 2, }; -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 rtnl_link_flags { + RTNL_FLAG_DOIT_UNLOCKED = 1, + RTNL_FLAG_BULK_DEL_SUPPORTED = 2, }; -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 qdisc_class_ops_flags { + QDISC_CLASS_OPS_DOIT_UNLOCKED = 1, }; -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 tcf_proto_ops_flags { + TCF_PROTO_OPS_DOIT_UNLOCKED = 1, }; -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 tcf_block_owner_item { + struct list_head list; + struct Qdisc *q; + enum flow_block_binder_type binder_type; }; -struct pse_control_status { - enum ethtool_podl_pse_admin_state podl_admin_state; - enum ethtool_podl_pse_pw_d_status podl_pw_status; +typedef struct {} local_lock_t; + +typedef void tcf_chain_head_change_t(struct tcf_proto *, void *); + +struct tcf_filter_chain_list_item { + struct list_head list; + tcf_chain_head_change_t *chain_head_change; + void *chain_head_change_priv; }; -struct pse_reply_data { - struct ethnl_reply_data base; - struct pse_control_status status; +struct tc_cookie { + u8 *data; + u32 len; + struct callback_head rcu; }; -struct pse_control_config { - enum ethtool_podl_pse_admin_state admin_cotrol; +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 ic_device { - struct ic_device *next; - struct net_device *dev; - unsigned short flags; - short able; - __be32 xid; +struct tc_pedit_key { + __u32 mask; + __u32 val; + __u32 off; + __u32 at; + __u32 offmask; + __u32 shift; }; -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 tcf_pedit_key_ex { + enum pedit_header_type htype; + enum pedit_cmd cmd; }; -struct ip6_ra_chain { - struct ip6_ra_chain *next; - struct sock *sk; - int sel; - void (*destructor)(struct sock *); +struct tcf_t { + __u64 install; + __u64 lastuse; + __u64 expires; + __u64 firstuse; }; -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); - struct sk_buff_head reader_queue; - int forward_deficit; - int forward_threshold; +struct tc_action_ops; + +struct tcf_idrinfo; + +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; }; -struct group_source_req { - __u32 gsr_interface; - struct __kernel_sockaddr_storage gsr_group; - struct __kernel_sockaddr_storage gsr_source; +struct tcf_pedit { + struct tc_action common; + struct tcf_pedit_parms __attribute__((btf_type_tag("rcu"))) *parms; + long: 64; }; -struct compat_group_source_req { - __u32 gsr_interface; - struct __kernel_sockaddr_storage gsr_group; - struct __kernel_sockaddr_storage gsr_source; -} __attribute__((packed)); +typedef void (*tc_action_priv_destructor)(void *); -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 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 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 psample_group { + struct list_head list; + struct net *net; + u32 group_num; + u32 refcount; + u32 seq; + struct callback_head rcu; }; -struct ipv6_mreq { - struct in6_addr ipv6mr_multiaddr; - int ipv6mr_ifindex; +struct tcf_idrinfo { + struct mutex lock; + struct idr action_idr; + struct net *net; }; -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 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 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)); - }; +struct tcf_net { + spinlock_t idr_lock; + struct idr idr; }; -struct ip6_mtuinfo { - struct sockaddr_in6 ip6m_addr; - __u32 ip6m_mtu; +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; }; -struct net_offload { - struct offload_callbacks callbacks; - unsigned int flags; +struct action_gate_entry { + u8 gate_state; + u32 interval; + s32 ipv; + s32 maxoctets; }; -struct skb_gso_cb { - union { - int mac_offset; - int data_offset; - }; - int encap_level; - __wsum csum; - __u16 csum_start; +struct tcf_chain_info { + struct tcf_proto __attribute__((btf_type_tag("rcu"))) **pprev; + struct tcf_proto __attribute__((btf_type_tag("rcu"))) *next; }; -struct frag_hdr { - __u8 nexthdr; - __u8 reserved; - __be16 frag_off; - __be32 identification; +struct nla_bitfield32 { + __u32 value; + __u32 selector; }; -struct hop_jumbo_hdr { - u8 nexthdr; - u8 hdrlen; - u8 tlv_type; - u8 tlv_len; - __be32 jumbo_payload_len; -}; - -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 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; }; enum { - XDP_DIAG_NONE = 0, - XDP_DIAG_INFO = 1, - XDP_DIAG_UID = 2, - XDP_DIAG_RX_RING = 3, - XDP_DIAG_TX_RING = 4, - XDP_DIAG_UMEM = 5, - XDP_DIAG_UMEM_FILL_RING = 6, - XDP_DIAG_UMEM_COMPLETION_RING = 7, - XDP_DIAG_MEMINFO = 8, - XDP_DIAG_STATS = 9, - __XDP_DIAG_MAX = 10, + 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 xdp_diag_req { - __u8 sdiag_family; - __u8 sdiag_protocol; - __u16 pad; - __u32 xdiag_ino; - __u32 xdiag_show; - __u32 xdiag_cookie[2]; +struct module_reply_data { + struct ethnl_reply_data base; + struct ethtool_module_power_mode_params power; }; -struct xdp_diag_msg { - __u8 xdiag_family; - __u8 xdiag_type; - __u16 pad; - __u32 xdiag_ino; - __u32 xdiag_cookie[2]; +struct tcp_skb_cb { + __u32 seq; + __u32 end_seq; + union { + __u32 tcp_tw_isn; + struct { + u16 tcp_gso_segs; + u16 tcp_gso_size; + }; + }; + __u8 tcp_flags; + __u8 sacked; + __u8 ip_dsfield; + __u8 txstamp_ack: 1; + __u8 eor: 1; + __u8 has_rxtstamp: 1; + __u8 unused: 5; + __u32 ack_seq; + union { + struct { + __u32 is_app_limited: 1; + __u32 delivered_ce: 20; + __u32 unused: 11; + __u32 delivered; + u64 first_tx_mstamp; + u64 delivered_mstamp; + } tx; + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + }; }; -struct xdp_diag_info { - __u32 ifindex; - __u32 queue_id; +struct seg6_pernet_data { + struct mutex lock; + struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src; }; -struct xdp_diag_ring { - __u32 entries; +struct raw_hashinfo { + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct hlist_head ht[256]; }; -struct xdp_diag_umem { - __u64 size; - __u32 id; - __u32 num_pages; - __u32 chunk_size; - __u32 headroom; - __u32 ifindex; - __u32 queue_id; - __u32 flags; - __u32 refs; +struct icmp6_err { + int err; + int fatal; }; -struct xdp_diag_stats { - __u64 n_rx_dropped; - __u64 n_rx_invalid; - __u64 n_rx_full; - __u64 n_fill_ring_empty; - __u64 n_tx_invalid; - __u64 n_tx_ring_empty; +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, }; -typedef unsigned long cycles_t; - enum { - IRQTF_RUNTHREAD = 0, - IRQTF_WARNED = 1, - IRQTF_AFFINITY = 2, - IRQTF_FORCED_THREAD = 3, - IRQTF_READY = 4, + 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 { - IRQ_SET_MASK_OK = 0, - IRQ_SET_MASK_OK_NOCOPY = 1, - IRQ_SET_MASK_OK_DONE = 2, + IPSTATS_MIB_NUM = 0, + IPSTATS_MIB_INPKTS = 1, + IPSTATS_MIB_INOCTETS = 2, + IPSTATS_MIB_INDELIVERS = 3, + IPSTATS_MIB_OUTFORWDATAGRAMS = 4, + IPSTATS_MIB_OUTREQUESTS = 5, + IPSTATS_MIB_OUTOCTETS = 6, + IPSTATS_MIB_INHDRERRORS = 7, + IPSTATS_MIB_INTOOBIGERRORS = 8, + IPSTATS_MIB_INNOROUTES = 9, + IPSTATS_MIB_INADDRERRORS = 10, + IPSTATS_MIB_INUNKNOWNPROTOS = 11, + IPSTATS_MIB_INTRUNCATEDPKTS = 12, + IPSTATS_MIB_INDISCARDS = 13, + IPSTATS_MIB_OUTDISCARDS = 14, + IPSTATS_MIB_OUTNOROUTES = 15, + IPSTATS_MIB_REASMTIMEOUT = 16, + IPSTATS_MIB_REASMREQDS = 17, + IPSTATS_MIB_REASMOKS = 18, + IPSTATS_MIB_REASMFAILS = 19, + IPSTATS_MIB_FRAGOKS = 20, + IPSTATS_MIB_FRAGFAILS = 21, + IPSTATS_MIB_FRAGCREATES = 22, + IPSTATS_MIB_INMCASTPKTS = 23, + IPSTATS_MIB_OUTMCASTPKTS = 24, + IPSTATS_MIB_INBCASTPKTS = 25, + IPSTATS_MIB_OUTBCASTPKTS = 26, + IPSTATS_MIB_INMCASTOCTETS = 27, + IPSTATS_MIB_OUTMCASTOCTETS = 28, + IPSTATS_MIB_INBCASTOCTETS = 29, + IPSTATS_MIB_OUTBCASTOCTETS = 30, + IPSTATS_MIB_CSUMERRORS = 31, + IPSTATS_MIB_NOECTPKTS = 32, + IPSTATS_MIB_ECT1PKTS = 33, + IPSTATS_MIB_ECT0PKTS = 34, + IPSTATS_MIB_CEPKTS = 35, + IPSTATS_MIB_REASM_OVERLAPS = 36, + IPSTATS_MIB_OUTPKTS = 37, + __IPSTATS_MIB_MAX = 38, }; enum { - 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, + XFRM_LOOKUP_ICMP = 1, + XFRM_LOOKUP_QUEUE = 2, + XFRM_LOOKUP_KEEP_DST_REF = 4, }; enum { - IRQC_IS_HARDIRQ = 0, - IRQC_IS_NESTED = 1, + XFRM_POLICY_IN = 0, + XFRM_POLICY_OUT = 1, + XFRM_POLICY_FWD = 2, + XFRM_POLICY_MASK = 3, + XFRM_POLICY_MAX = 3, }; -enum clocksource_ids { - CSID_GENERIC = 0, - CSID_ARM_ARCH_COUNTER = 1, - CSID_MAX = 2, +enum { + XFRM_DEV_OFFLOAD_UNSPECIFIED = 0, + XFRM_DEV_OFFLOAD_CRYPTO = 1, + XFRM_DEV_OFFLOAD_PACKET = 2, }; -enum vdso_clock_mode { - VDSO_CLOCKMODE_NONE = 0, - VDSO_CLOCKMODE_ARCHTIMER = 1, - VDSO_CLOCKMODE_MAX = 2, - VDSO_CLOCKMODE_TIMENS = 2147483647, +enum flowlabel_reflect { + FLOWLABEL_REFLECT_ESTABLISHED = 1, + FLOWLABEL_REFLECT_TCP_RESET = 2, + FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4, }; -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 module *owner; +struct icmpv6_msg { + struct sk_buff *skb; + int offset; + uint8_t type; }; -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 static_key_true { - struct static_key key; +struct ipv4_addr_key { + __be32 addr; + int vif; }; -struct kernfs_fs_context { - struct kernfs_root *root; - void *ns_tag; - unsigned long magic; - bool new_sb_created; +struct inetpeer_addr { + union { + struct ipv4_addr_key a4; + struct in6_addr a6; + u32 key[4]; + }; + __u16 family; }; -struct cgroup_fs_context { - struct kernfs_fs_context kfc; - struct cgroup_root *root; - struct cgroup_namespace *ns; - unsigned int flags; - bool cpuset_clone_children; - bool none; - bool all_ss; - u16 subsys_mask; - char *name; - char *release_agent; +struct 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 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 xfrm_offload { + struct { + __u32 low; + __u32 hi; + } seq; + __u32 flags; + __u32 status; + __u8 proto; + __u8 inner_ipproto; }; -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, +struct sec_path { + int len; + int olen; + int verified_cnt; + struct xfrm_state *xvec[6]; + struct xfrm_offload ovec[1]; }; -enum { - CGRP_NOTIFY_ON_RELEASE = 0, - CGRP_CPUSET_CLONE_CHILDREN = 1, - CGRP_FREEZE = 2, - CGRP_FROZEN = 3, - CGRP_KILL = 4, +struct xfrm_tunnel { + int (*handler)(struct sk_buff *); + int (*cb_handler)(struct sk_buff *, int); + int (*err_handler)(struct sk_buff *, u32); + struct xfrm_tunnel __attribute__((btf_type_tag("rcu"))) *next; + int priority; }; -enum 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 tnl_ptk_info { + __be16 flags; + __be16 proto; + __be32 key; + __be32 seq; + int hdr_len; }; -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, +enum tunnel_encap_types { + TUNNEL_ENCAP_NONE = 0, + TUNNEL_ENCAP_FOU = 1, + TUNNEL_ENCAP_GUE = 2, + TUNNEL_ENCAP_MPLS = 3, }; -enum cgroup2_param { - Opt_nsdelegate = 0, - Opt_favordynmods = 1, - Opt_memory_localevents = 2, - Opt_memory_recursiveprot = 3, - nr__cgroup2_params = 4, +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 cgroup_opt_features { - OPT_FEATURE_COUNT = 0, +enum { + IFLA_UNSPEC = 0, + IFLA_ADDRESS = 1, + IFLA_BROADCAST = 2, + IFLA_IFNAME = 3, + IFLA_MTU = 4, + IFLA_LINK = 5, + IFLA_QDISC = 6, + IFLA_STATS = 7, + IFLA_COST = 8, + IFLA_PRIORITY = 9, + IFLA_MASTER = 10, + IFLA_WIRELESS = 11, + IFLA_PROTINFO = 12, + IFLA_TXQLEN = 13, + IFLA_MAP = 14, + IFLA_WEIGHT = 15, + IFLA_OPERSTATE = 16, + IFLA_LINKMODE = 17, + IFLA_LINKINFO = 18, + IFLA_NET_NS_PID = 19, + IFLA_IFALIAS = 20, + IFLA_NUM_VF = 21, + IFLA_VFINFO_LIST = 22, + IFLA_STATS64 = 23, + IFLA_VF_PORTS = 24, + IFLA_PORT_SELF = 25, + IFLA_AF_SPEC = 26, + IFLA_GROUP = 27, + IFLA_NET_NS_FD = 28, + IFLA_EXT_MASK = 29, + IFLA_PROMISCUITY = 30, + IFLA_NUM_TX_QUEUES = 31, + IFLA_NUM_RX_QUEUES = 32, + IFLA_CARRIER = 33, + IFLA_PHYS_PORT_ID = 34, + IFLA_CARRIER_CHANGES = 35, + IFLA_PHYS_SWITCH_ID = 36, + IFLA_LINK_NETNSID = 37, + IFLA_PHYS_PORT_NAME = 38, + IFLA_PROTO_DOWN = 39, + IFLA_GSO_MAX_SEGS = 40, + IFLA_GSO_MAX_SIZE = 41, + IFLA_PAD = 42, + IFLA_XDP = 43, + IFLA_EVENT = 44, + IFLA_NEW_NETNSID = 45, + IFLA_IF_NETNSID = 46, + IFLA_TARGET_NETNSID = 46, + IFLA_CARRIER_UP_COUNT = 47, + IFLA_CARRIER_DOWN_COUNT = 48, + IFLA_NEW_IFINDEX = 49, + IFLA_MIN_MTU = 50, + IFLA_MAX_MTU = 51, + IFLA_PROP_LIST = 52, + IFLA_ALT_IFNAME = 53, + IFLA_PERM_ADDRESS = 54, + IFLA_PROTO_DOWN_REASON = 55, + IFLA_PARENT_DEV_NAME = 56, + IFLA_PARENT_DEV_BUS_NAME = 57, + IFLA_GRO_MAX_SIZE = 58, + IFLA_TSO_MAX_SIZE = 59, + IFLA_TSO_MAX_SEGS = 60, + IFLA_ALLMULTI = 61, + IFLA_DEVLINK_PORT = 62, + IFLA_GSO_IPV4_MAX_SIZE = 63, + IFLA_GRO_IPV4_MAX_SIZE = 64, + IFLA_DPLL_PIN = 65, + __IFLA_MAX = 66, }; -struct cgrp_cset_link { - struct cgroup *cgrp; - struct css_set *cset; - struct list_head cset_link; - struct list_head cgrp_link; -}; +struct gro_cell; -struct trace_event_raw_cgroup_root { - struct trace_entry ent; - int root; - u16 ss_mask; - u32 __data_loc_name; - char __data[0]; +struct gro_cells { + struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells; }; -struct trace_event_raw_cgroup { - struct trace_entry ent; - int root; - int level; - u64 id; - u32 __data_loc_path; - char __data[0]; -}; +struct ip_tunnel_prl_entry; -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 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 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 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 trace_event_data_offsets_cgroup_root { - u32 name; +struct gro_cell { + struct sk_buff_head napi_skbs; + struct napi_struct napi; }; -struct trace_event_data_offsets_cgroup { - u32 path; +struct ip_tunnel_encap_ops { + size_t (*encap_hlen)(struct ip_tunnel_encap *); + int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *); + int (*err_handler)(struct sk_buff *, u32); }; -struct trace_event_data_offsets_cgroup_migrate { - u32 dst_path; - u32 comm; +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 trace_event_data_offsets_cgroup_event { - u32 path; +struct ip_tunnel_prl { + __be32 addr; + __u16 flags; + __u16 __reserved; + __u32 datalen; + __u32 __reserved2; }; -struct cgroup_mgctx { - struct list_head preloaded_src_csets; - struct list_head preloaded_dst_csets; - struct cgroup_taskset tset; - u16 ss_mask; -}; +struct xdr_array2_desc; -struct cgroup_pidlist; +typedef int (*xdr_xcode_elem_t)(struct xdr_array2_desc *, void *); -struct cgroup_file_ctx { - struct cgroup_namespace *ns; - struct { - void *trigger; - } psi; - struct { - bool started; - struct css_task_iter iter; - } procs; - struct { - struct cgroup_pidlist *pidlist; - } procs1; +struct xdr_array2_desc { + unsigned int elem_size; + unsigned int array_len; + unsigned int array_maxlen; + xdr_xcode_elem_t xcode; }; -struct reuseport_array { - struct bpf_map map; - struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0]; -}; +struct p9_req_t; -struct reciprocal_value { - u32 m; - u8 sh1; - u8 sh2; +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 kmem_cache_order_objects { - unsigned int x; +struct p9_fcall { + u32 size; + u8 id; + u16 tag; + size_t offset; + size_t capacity; + struct kmem_cache *cache; + u8 *sdata; + bool zc; }; -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]; +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; }; -typedef unsigned __int128 __u128; - -typedef __u128 u128; +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, +}; -typedef u128 freelist_full_t; +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, +}; -typedef union { - struct { - void *freelist; - unsigned long counter; - }; - freelist_full_t full; -} freelist_aba_t; +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 slab; +enum handshake_msg_type { + HANDSHAKE_MSG_TYPE_UNSPEC = 0, + HANDSHAKE_MSG_TYPE_CLIENTHELLO = 1, + HANDSHAKE_MSG_TYPE_SERVERHELLO = 2, +}; -struct kmem_cache_cpu { - union { - struct { - void **freelist; - unsigned long tid; - }; - freelist_aba_t freelist_tid; - }; - struct slab *slab; - struct slab *partial; - local_lock_t lock; +enum handshake_auth { + HANDSHAKE_AUTH_UNSPEC = 0, + HANDSHAKE_AUTH_UNAUTH = 1, + HANDSHAKE_AUTH_PSK = 2, + HANDSHAKE_AUTH_X509 = 3, }; -struct slab { - unsigned long __page_flags; - struct kmem_cache *slab_cache; - union { - struct { - union { - struct list_head slab_list; - struct { - struct slab *next; - int slabs; - }; - }; - union { - struct { - void *freelist; - union { - unsigned long counters; - struct { - unsigned int inuse: 16; - unsigned int objects: 15; - unsigned int frozen: 1; - }; - }; - }; - }; - }; - struct callback_head callback_head; - }; - unsigned int __unused; - atomic_t __page_refcount; - unsigned long memcg_data; +enum hr_flags_bits { + HANDSHAKE_F_REQ_COMPLETED = 0, + HANDSHAKE_F_REQ_SESSION = 1, +}; + +enum { + TLS_ALERT_LEVEL_WARNING = 1, + TLS_ALERT_LEVEL_FATAL = 2, +}; + +enum { + TLS_ALERT_DESC_CLOSE_NOTIFY = 0, + TLS_ALERT_DESC_UNEXPECTED_MESSAGE = 10, + TLS_ALERT_DESC_BAD_RECORD_MAC = 20, + TLS_ALERT_DESC_RECORD_OVERFLOW = 22, + TLS_ALERT_DESC_HANDSHAKE_FAILURE = 40, + TLS_ALERT_DESC_BAD_CERTIFICATE = 42, + TLS_ALERT_DESC_UNSUPPORTED_CERTIFICATE = 43, + TLS_ALERT_DESC_CERTIFICATE_REVOKED = 44, + TLS_ALERT_DESC_CERTIFICATE_EXPIRED = 45, + TLS_ALERT_DESC_CERTIFICATE_UNKNOWN = 46, + TLS_ALERT_DESC_ILLEGAL_PARAMETER = 47, + TLS_ALERT_DESC_UNKNOWN_CA = 48, + TLS_ALERT_DESC_ACCESS_DENIED = 49, + TLS_ALERT_DESC_DECODE_ERROR = 50, + TLS_ALERT_DESC_DECRYPT_ERROR = 51, + TLS_ALERT_DESC_TOO_MANY_CIDS_REQUESTED = 52, + TLS_ALERT_DESC_PROTOCOL_VERSION = 70, + TLS_ALERT_DESC_INSUFFICIENT_SECURITY = 71, + TLS_ALERT_DESC_INTERNAL_ERROR = 80, + TLS_ALERT_DESC_INAPPROPRIATE_FALLBACK = 86, + TLS_ALERT_DESC_USER_CANCELED = 90, + TLS_ALERT_DESC_MISSING_EXTENSION = 109, + TLS_ALERT_DESC_UNSUPPORTED_EXTENSION = 110, + TLS_ALERT_DESC_UNRECOGNIZED_NAME = 112, + TLS_ALERT_DESC_BAD_CERTIFICATE_STATUS_RESPONSE = 113, + TLS_ALERT_DESC_UNKNOWN_PSK_IDENTITY = 115, + TLS_ALERT_DESC_CERTIFICATE_REQUIRED = 116, + TLS_ALERT_DESC_NO_APPLICATION_PROTOCOL = 120, }; -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; +enum key_lookup_flag { + KEY_LOOKUP_CREATE = 1, + KEY_LOOKUP_PARTIAL = 2, + KEY_LOOKUP_ALL = 3, }; -struct slub_flush_work { - struct work_struct work; - struct kmem_cache *s; - bool skip; +enum { + HANDSHAKE_A_X509_CERT = 1, + HANDSHAKE_A_X509_PRIVKEY = 2, + __HANDSHAKE_A_X509_MAX = 3, + HANDSHAKE_A_X509_MAX = 2, }; -struct slab_attribute { - struct attribute attr; - ssize_t (*show)(struct kmem_cache *, char *); - ssize_t (*store)(struct kmem_cache *, const char *, size_t); +struct tls_handshake_req { + void (*th_consumer_done)(void *, int, key_serial_t); + void *th_consumer_data; + int th_type; + unsigned int th_timeout_ms; + int th_auth_mode; + const char *th_peername; + key_serial_t th_keyring; + key_serial_t th_certificate; + key_serial_t th_privkey; + unsigned int th_num_peerids; + key_serial_t th_peerid[5]; }; -struct saved_alias { - struct kmem_cache *s; - const char *name; - struct saved_alias *next; +typedef void (*tls_done_func_t)(void *, int, key_serial_t); + +struct tls_handshake_args { + struct socket *ta_sock; + tls_done_func_t ta_done; + void *ta_data; + const char *ta_peername; + unsigned int ta_timeout_ms; + key_serial_t ta_keyring; + key_serial_t ta_my_cert; + key_serial_t ta_my_privkey; + unsigned int ta_num_peerids; + key_serial_t ta_my_peerids[5]; }; -enum track_item { - TRACK_ALLOC = 0, - TRACK_FREE = 1, +struct irq_devres { + unsigned int irq; + void *dev_id; }; -enum slab_state { - DOWN = 0, - PARTIAL = 1, - PARTIAL_NODE = 2, - UP = 3, - FULL = 4, +struct irq_desc_devres { + unsigned int from; + unsigned int cnt; }; -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, +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 *); }; -enum slab_modes { - M_NONE = 0, - M_PARTIAL = 1, - M_FREE = 2, - M_FULL_NOLIST = 3, +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; }; -enum slab_stat_type { - SL_ALL = 0, - SL_PARTIAL = 1, - SL_CPU = 2, - SL_OBJECTS = 3, - SL_TOTAL = 4, +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; + }; }; -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; +union msi_domain_cookie { + u64 value; + void *ptr; + void *iobase; }; -struct track { - unsigned long addr; - depot_stack_handle_t handle; - int cpu; - int pid; - unsigned long when; +union msi_instance_cookie { + u64 value; + void *ptr; }; -struct detached_freelist { - struct slab *slab; - void *tail; - void *freelist; - int cnt; - struct kmem_cache *s; +struct msi_desc_data { + union msi_domain_cookie dcookie; + union msi_instance_cookie icookie; }; -struct partial_context { - struct slab **slab; - gfp_t flags; - unsigned int orig_size; +struct arch_msi_msg_addr_lo { + u32 address_lo; }; -struct loc_track { - unsigned long max; - unsigned long count; - struct location *loc; - loff_t idx; +typedef struct arch_msi_msg_addr_lo arch_msi_msg_addr_lo_t; + +struct arch_msi_msg_addr_hi { + u32 address_hi; }; -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]; +typedef struct arch_msi_msg_addr_hi arch_msi_msg_addr_hi_t; + +struct arch_msi_msg_data { + u32 data; }; -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; +typedef struct arch_msi_msg_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 dnotify_struct; +struct msi_desc { + unsigned int irq; + unsigned int nvec_used; + struct device *dev; + struct msi_msg msg; + struct irq_affinity_desc *affinity; + struct device_attribute *sysfs_attrs; + void (*write_msi_msg)(struct msi_desc *, void *); + void *write_msi_msg_data; + u16 msi_index; + union { + struct pci_msi_desc pci; + struct msi_desc_data data; + }; +}; -struct dnotify_mark { - struct fsnotify_mark fsn_mark; - struct dnotify_struct *dn; +enum msi_domain_ids { + MSI_DEFAULT_DOMAIN = 0, + MSI_SECONDARY_DOMAIN = 1, + MSI_MAX_DEVICE_IRQDOMAINS = 2, }; -struct dnotify_struct { - struct dnotify_struct *dn_next; - __u32 dn_mask; - int dn_fd; - struct file *dn_filp; - fl_owner_t dn_owner; +enum msi_desc_filter { + MSI_DESC_ALL = 0, + MSI_DESC_NOTASSOCIATED = 1, + MSI_DESC_ASSOCIATED = 2, }; enum { - BIAS = 2147483648, + 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, }; -enum proc_hidepid { - HIDEPID_OFF = 0, - HIDEPID_NO_ACCESS = 1, - HIDEPID_INVISIBLE = 2, - HIDEPID_NOT_PTRACEABLE = 4, +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_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 proc_pidonly { - PROC_PIDONLY_OFF = 0, - PROC_PIDONLY_ON = 1, +enum { + IRQCHIP_FWNODE_REAL = 0, + IRQCHIP_FWNODE_NAMED = 1, + IRQCHIP_FWNODE_NAMED_ID = 2, }; -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 msi_domain_template { + char name[48]; + struct irq_chip chip; + struct msi_domain_ops ops; + struct msi_domain_info info; }; -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 msi_ctrl { + unsigned int domid; + unsigned int first; + unsigned int last; + unsigned int nirqs; }; -struct pde_opener { - struct list_head lh; - struct file *file; - bool closing; - struct completion *c; +struct msi_map { + int index; + int virq; }; -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; +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 kernfs_root { - struct kernfs_node *kn; - unsigned int flags; - struct idr ino_idr; - u32 last_id_lowbits; - u32 id_highbits; - struct kernfs_syscall_ops *syscall_ops; - struct list_head supers; - wait_queue_head_t deactivate_waitq; - struct rw_semaphore kernfs_rwsem; - struct rw_semaphore kernfs_iattr_rwsem; - struct rw_semaphore kernfs_supers_rwsem; +struct kcmp_epoll_slot { + __u32 efd; + __u32 tfd; + __u32 toff; }; -struct kernfs_iattrs { - kuid_t ia_uid; - kgid_t ia_gid; - struct timespec64 ia_atime; - struct timespec64 ia_mtime; - struct timespec64 ia_ctime; - struct simple_xattrs xattrs; - atomic_t nr_user_xattrs; - atomic_t user_xattr_size; +struct futex_hash_bucket { + atomic_t waiters; + spinlock_t lock; + struct plist_head chain; + long: 64; + long: 64; }; -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; +enum futex_access { + FUTEX_READ = 0, + FUTEX_WRITE = 1, }; -typedef unsigned short __kernel_uid16_t; +struct rt_waiter_node { + struct rb_node entry; + int prio; + u64 deadline; +}; -typedef __kernel_uid16_t uid16_t; +struct rt_mutex_base; -typedef unsigned short __kernel_gid16_t; +struct rt_mutex_waiter { + struct rt_waiter_node tree; + struct rt_waiter_node pi_tree; + struct task_struct *task; + struct rt_mutex_base *lock; + unsigned int wake_state; + struct ww_acquire_ctx *ww_ctx; +}; -typedef __kernel_gid16_t gid16_t; +struct rt_mutex_base { + raw_spinlock_t wait_lock; + struct rb_root_cached waiters; + struct task_struct *owner; +}; -struct ext4_xattr_ibody_header { - __le32 h_magic; +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 ext4_xattr_inode_array { - unsigned int count; - struct inode *inodes[0]; +struct futex_pi_state { + struct list_head list; + struct rt_mutex_base pi_mutex; + struct task_struct *owner; + refcount_t refcount; + union futex_key key; }; -struct ext4_io_end; +struct wake_q_head; -typedef struct ext4_io_end ext4_io_end_t; +struct futex_q; -struct ext4_io_submit { - struct writeback_control *io_wbc; - struct bio *io_bio; - ext4_io_end_t *io_end; - sector_t io_next_block; +typedef void futex_wake_fn(struct wake_q_head *, struct futex_q *); + +struct futex_q { + struct plist_node list; + struct task_struct *task; + spinlock_t *lock_ptr; + futex_wake_fn *wake; + void *wake_data; + union futex_key key; + struct futex_pi_state *pi_state; + struct rt_mutex_waiter *rt_waiter; + union futex_key *requeue_pi_key; + u32 bitset; + atomic_t requeue_state; }; -struct mpage_da_data { - struct inode *inode; - struct writeback_control *wbc; - unsigned int can_map: 1; - unsigned long first_page; - unsigned long next_page; - unsigned long last_page; - struct ext4_map_blocks map; - struct ext4_io_submit io_submit; - unsigned int do_map: 1; - unsigned int scanned_until_end: 1; - unsigned int journalled_more_data: 1; +struct wake_q_head { + struct wake_q_node *first; + struct wake_q_node **lastp; }; -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; +struct hrtimer_sleeper { + struct hrtimer timer; + struct task_struct *task; }; -struct ext4_io_end_vec { - struct list_head list; - loff_t offset; - ssize_t size; +struct bpf_link; + +struct bpf_mprog_cp { + struct bpf_link *link; }; -typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); +struct bpf_mprog_bundle { + struct bpf_mprog_entry a; + struct bpf_mprog_entry b; + struct bpf_mprog_cp cp_items[64]; + struct bpf_prog *ref; + atomic64_t revision; + u32 count; +}; -enum { - FILEID_HIGH_OFF = 0, - FILEID_LOW_OFF = 1, - FILE_I_TYPE_OFF = 2, - EMBED_FH_OFF = 3, +enum bpf_link_type { + BPF_LINK_TYPE_UNSPEC = 0, + BPF_LINK_TYPE_RAW_TRACEPOINT = 1, + BPF_LINK_TYPE_TRACING = 2, + BPF_LINK_TYPE_CGROUP = 3, + BPF_LINK_TYPE_ITER = 4, + BPF_LINK_TYPE_NETNS = 5, + BPF_LINK_TYPE_XDP = 6, + BPF_LINK_TYPE_PERF_EVENT = 7, + BPF_LINK_TYPE_KPROBE_MULTI = 8, + BPF_LINK_TYPE_STRUCT_OPS = 9, + BPF_LINK_TYPE_NETFILTER = 10, + BPF_LINK_TYPE_TCX = 11, + BPF_LINK_TYPE_UPROBE_MULTI = 12, + BPF_LINK_TYPE_NETKIT = 13, + MAX_BPF_LINK_TYPE = 14, }; -struct autofs_dev_ioctl; +struct bpf_link_ops; -typedef int (*ioctl_fn)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *); +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 args_protover { - __u32 version; +struct bpf_link_ops { + void (*release)(struct bpf_link *); + void (*dealloc)(struct bpf_link *); + int (*detach)(struct bpf_link *); + int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *); + void (*show_fdinfo)(const struct bpf_link *, struct seq_file *); + int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *); + int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *); }; -struct args_protosubver { - __u32 sub_version; +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, }; -struct args_openmount { - __u32 devid; +enum bpf_audit { + BPF_AUDIT_LOAD = 0, + BPF_AUDIT_UNLOAD = 1, + BPF_AUDIT_MAX = 2, }; -struct args_ready { - __u32 token; +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, }; -struct args_fail { - __u32 token; - __s32 status; +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, }; -struct args_setpipefd { - __s32 pipefd; +enum bpf_perf_event_type { + BPF_PERF_EVENT_UNSPEC = 0, + BPF_PERF_EVENT_UPROBE = 1, + BPF_PERF_EVENT_URETPROBE = 2, + BPF_PERF_EVENT_KPROBE = 3, + BPF_PERF_EVENT_KRETPROBE = 4, + BPF_PERF_EVENT_TRACEPOINT = 5, + BPF_PERF_EVENT_EVENT = 6, }; -struct args_timeout { - __u64 timeout; +enum bpf_stats_type { + BPF_STATS_RUN_TIME = 0, }; -struct args_requester { - __u32 uid; - __u32 gid; +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_tramp_link { + struct bpf_link link; + struct hlist_node tramp_hlist; + u64 cookie; }; -struct args_expire { - __u32 how; +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 args_askumount { - __u32 may_umount; +struct bpf_raw_tp_link { + struct bpf_link link; + struct bpf_raw_event_map *btp; }; -struct args_in { - __u32 type; +struct bpf_perf_link { + struct bpf_link link; + struct file *perf_file; }; -struct args_out { - __u32 devid; - __u32 magic; +struct bpf_spin_lock { + __u32 val; }; -struct args_ismountpoint { - union { - struct args_in in; - struct args_out out; - }; +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 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]; +struct bpf_prog_kstats { + u64 nsecs; + u64 cnt; + u64 misses; }; -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 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 security_class_mapping { - const char *name; - const char *perms[33]; +struct bpf_btf_info { + __u64 btf; + __u32 btf_size; + __u32 id; + __u64 name; + __u32 name_len; + __u32 kernel_btf; }; -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 bpf_link_primer { + struct bpf_link *link; + struct file *file; + int fd; + u32 id; }; -struct selinux_avc { - unsigned int avc_cache_threshold; - struct avc_cache avc_cache; +struct bpf_tramp_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + struct bpf_run_ctx *saved_run_ctx; }; -struct avc_callback_node { - int (*callback)(u32); - u32 events; - struct avc_callback_node *next; +enum { + XA_CHECK_SCHED = 4096, }; -struct avc_xperms_node; - -struct avc_entry { - u32 ssid; - u32 tsid; - u16 tclass; - struct av_decision avd; - struct avc_xperms_node *xp_node; +enum vmscan_throttle_state { + VMSCAN_THROTTLE_WRITEBACK = 0, + VMSCAN_THROTTLE_ISOLATED = 1, + VMSCAN_THROTTLE_NOPROGRESS = 2, + VMSCAN_THROTTLE_CONGESTED = 3, + NR_VMSCAN_THROTTLE = 4, }; -struct avc_node { - struct avc_entry ae; - struct hlist_node list; - struct callback_head rhead; +enum wb_state { + WB_registered = 0, + WB_writeback_running = 1, + WB_has_dirty_io = 2, + WB_start_all = 3, }; -struct extended_perms_data { - u32 p[8]; +struct dirty_throttle_control { + struct wb_domain *dom; + struct dirty_throttle_control *gdtc; + struct bdi_writeback *wb; + struct fprop_local_percpu *wb_completions; + unsigned long avail; + unsigned long dirty; + unsigned long thresh; + unsigned long bg_thresh; + unsigned long wb_dirty; + unsigned long wb_thresh; + unsigned long wb_bg_thresh; + unsigned long pos_ratio; }; -struct extended_perms { - u16 len; - struct extended_perms_data drivers; +struct wb_lock_cookie { + bool locked; + unsigned long flags; }; -struct avc_xperms_node { - struct extended_perms xp; - struct list_head xpd_head; +struct page_vma_mapped_walk { + unsigned long pfn; + unsigned long nr_pages; + unsigned long pgoff; + struct vm_area_struct *vma; + unsigned long address; + pmd_t *pmd; + pte_t *pte; + spinlock_t *ptl; + unsigned int flags; }; -struct 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]; +typedef union { + struct page **pages; + struct folio **folios; + struct encoded_page **encoded_pages; +} release_pages_arg; + +struct vma_swap_readahead { + unsigned short win; + unsigned short offset; + unsigned short nr_pte; }; -struct extended_perms_decision { - u8 used; - u8 driver; - struct extended_perms_data *allowed; - struct extended_perms_data *auditallow; - struct extended_perms_data *dontaudit; +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, }; -struct avc_xperms_decision_node { - struct extended_perms_decision xpd; - struct list_head xpd_list; +struct bh_lru { + struct buffer_head *bhs[16]; }; -struct trace_event_data_offsets_selinux_audited { - u32 scontext; - u32 tcontext; - u32 tclass; +struct bh_accounting { + int nr; + int ratelimit; }; -typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t); +struct postprocess_bh_ctx { + struct work_struct work; + struct buffer_head *bh; +}; -struct asn1_decoder { - const unsigned char *machine; - size_t machlen; - const asn1_action_t *actions; +enum { + MBE_REFERENCED_B = 0, + MBE_REUSABLE_B = 1, }; -struct rsa_asn1_template { - const char *name; - const u8 *data; - size_t size; +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 akcipher_instance { - void (*free)(struct akcipher_instance *); - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - union { - struct { - char head[128]; - struct crypto_instance base; - } s; - struct akcipher_alg alg; - }; +struct ext4_xattr_header { + __le32 h_magic; + __le32 h_refcount; + __le32 h_blocks; + __le32 h_hash; + __le32 h_checksum; + __u32 h_reserved[3]; }; -struct crypto_akcipher_spawn { - struct crypto_spawn base; +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 pkcs1pad_inst_ctx { - struct crypto_akcipher_spawn spawn; - const struct rsa_asn1_template *digest_info; +struct ext4_xattr_info { + const char *name; + const void *value; + size_t value_len; + int name_index; + int in_inode; }; -struct pkcs1pad_ctx { - struct crypto_akcipher *child; - unsigned int key_size; +struct ext4_xattr_search { + struct ext4_xattr_entry *first; + void *base; + void *end; + struct ext4_xattr_entry *here; + int not_found; }; -struct pkcs1pad_request { - struct scatterlist in_sg[2]; - struct scatterlist out_sg[1]; - uint8_t *in_buf; - uint8_t *out_buf; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct akcipher_request child_req; +struct ext4_xattr_ibody_find { + struct ext4_xattr_search s; + struct ext4_iloc iloc; }; -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; +struct ext4_xattr_block_find { + struct ext4_xattr_search s; + struct buffer_head *bh; }; enum { - GENHD_FL_REMOVABLE = 1, - GENHD_FL_HIDDEN = 2, - GENHD_FL_NO_PART = 4, + FILEID_HIGH_OFF = 0, + FILEID_LOW_OFF = 1, + FILE_I_TYPE_OFF = 2, + EMBED_FH_OFF = 3, }; -typedef struct { - struct folio *v; -} Sector; +struct nfs_referral_count { + struct list_head list; + const struct task_struct *task; + unsigned int referral_count; +}; -enum { - IORING_MSG_DATA = 0, - IORING_MSG_SEND_FD = 1, +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, }; -struct io_msg { - struct file *file; - struct file *src_file; - struct callback_head tw; - u64 user_data; - u32 len; - u32 cmd; - u32 src_fd; - union { - u32 dst_fd; - u32 cqe_flags; - }; - u32 flags; +struct nfs4_ff_layout_ds_err { + struct list_head list; + u64 offset; + u64 length; + int status; + enum nfs_opnum4 opnum; + nfs4_stateid stateid; + struct nfs4_deviceid deviceid; }; -struct pci_config_window; +struct nfs4_ff_ds_version; -struct pci_ecam_ops { - unsigned int bus_shift; - struct pci_ops pci_ops; - int (*init)(struct pci_config_window *); +struct nfs4_ff_layout_ds { + struct nfs4_deviceid_node id_node; + u32 ds_versions_cnt; + struct nfs4_ff_ds_version *ds_versions; + struct nfs4_pnfs_ds *ds; }; -struct pci_config_window { - struct resource res; - struct resource busr; - unsigned int bus_shift; - void *priv; - const struct pci_ecam_ops *ops; - union { - void *win; - void **winp; - }; - struct device *parent; +struct nfs4_ff_ds_version { + u32 version; + u32 minor_version; + u32 rsize; + u32 wsize; + bool tightly_coupled; }; -enum acpi_predicate { - all_versions = 0, - less_than_or_equal = 1, - equal = 2, - greater_than_or_equal = 3, +struct nfs4_flexfile_layout { + struct pnfs_layout_hdr generic_hdr; + struct pnfs_ds_commit_info commit_info; + struct list_head mirrors; + struct list_head error_list; + ktime_t last_report_time; }; -struct acpi_device_bus_id { - const char *bus_id; - struct ida instance_ida; - struct list_head node; +struct nfs4_ff_layout_mirror; + +struct nfs4_ff_layout_segment { + struct pnfs_layout_segment generic_hdr; + u64 stripe_unit; + u32 flags; + u32 mirror_array_cnt; + struct nfs4_ff_layout_mirror *mirror_array[0]; }; -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; +struct nfs4_ff_io_stat { + __u64 ops_requested; + __u64 bytes_requested; + __u64 ops_completed; + __u64 bytes_completed; + __u64 bytes_not_delivered; + ktime_t total_busy_time; + ktime_t aggregate_completion_time; }; -struct acpi_dev_match_info { - struct acpi_device_id hid[2]; - const char *uid; - s64 hrv; +struct nfs4_ff_busy_timer { + ktime_t start_time; + atomic_t n_ops; }; -struct acpi_handle_list { - u32 count; - acpi_handle handles[10]; +struct nfs4_ff_layoutstat { + struct nfs4_ff_io_stat io_stat; + struct nfs4_ff_busy_timer busy_timer; }; -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; +struct nfs4_ff_layout_mirror { + struct pnfs_layout_hdr *layout; + struct list_head mirrors; + u32 ds_count; + u32 efficiency; + struct nfs4_deviceid devid; + struct nfs4_ff_layout_ds *mirror_ds; + u32 fh_versions_cnt; + struct nfs_fh *fh_versions; + nfs4_stateid stateid; + const struct cred __attribute__((btf_type_tag("rcu"))) *ro_cred; + const struct cred __attribute__((btf_type_tag("rcu"))) *rw_cred; + refcount_t ref; + spinlock_t lock; + unsigned long flags; + struct nfs4_ff_layoutstat read_stat; + struct nfs4_ff_layoutstat write_stat; + ktime_t start_time; + u32 report_interval; }; -struct acpi_pci_device { - acpi_handle device; - struct acpi_pci_device *next; +struct match_token { + int token; + const char *pattern; }; -struct acpi_pci_id { - u16 segment; - u16 bus; - u16 device; - u16 function; +enum { + Opt_debug = 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_noxattr = 9, + Opt_directio = 10, + Opt_ignoreqv = 11, + Opt_access = 12, + Opt_posixacl = 13, + Opt_locktimeout = 14, + Opt_err = 15, }; -typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); - -struct ccu_nkmp { - u32 enable; - u32 lock; - struct ccu_mult_internal n; - struct ccu_mult_internal k; - struct ccu_div_internal m; - struct ccu_div_internal p; - unsigned int fixed_post_div; - unsigned int max_rate; - struct ccu_common common; +enum p9_cache_shortcuts { + CACHE_SC_NONE = 0, + CACHE_SC_READAHEAD = 1, + CACHE_SC_MMAP = 5, + CACHE_SC_LOOSE = 15, + CACHE_SC_FSCACHE = 143, }; -struct _ccu_nkmp { - unsigned long n; - unsigned long min_n; - unsigned long max_n; - unsigned long k; - unsigned long min_k; - unsigned long max_k; - unsigned long m; - unsigned long min_m; - unsigned long max_m; - unsigned long p; - unsigned long min_p; - unsigned long max_p; +struct aa_local_cache { + unsigned int hold; + unsigned int count; + struct list_head head; }; -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 *); +enum nf_hook_ops_type { + NF_HOOK_OP_UNDEFINED = 0, + NF_HOOK_OP_NF_TABLES = 1, + NF_HOOK_OP_BPF = 2, }; -enum virtio_balloon_vq { - VIRTIO_BALLOON_VQ_INFLATE = 0, - VIRTIO_BALLOON_VQ_DEFLATE = 1, - VIRTIO_BALLOON_VQ_STATS = 2, - VIRTIO_BALLOON_VQ_FREE_PAGE = 3, - VIRTIO_BALLOON_VQ_REPORTING = 4, - VIRTIO_BALLOON_VQ_MAX = 5, +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; }; -enum virtio_balloon_config_read { - VIRTIO_BALLOON_CONFIG_READ_CMD_ID = 0, +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, }; -typedef __u32 __virtio32; - -struct balloon_dev_info { - unsigned long isolated_pages; - spinlock_t pages_lock; - struct list_head pages; - int (*migratepage)(struct balloon_dev_info *, struct page *, struct page *, enum migrate_mode); +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, }; -typedef __u16 __virtio16; +struct timezone; -typedef __u64 __virtio64; +struct kern_ipc_perm; -struct virtio_balloon_stat { - __virtio16 tag; - __virtio64 val; -} __attribute__((packed)); +struct sembuf; -struct page_reporting_dev_info { - int (*report)(struct page_reporting_dev_info *, struct scatterlist *, unsigned int); - struct delayed_work work; - atomic_t state; - unsigned int order; -}; +struct sctp_association; -struct virtio_balloon { - struct virtio_device *vdev; - struct virtqueue *inflate_vq; - struct virtqueue *deflate_vq; - struct virtqueue *stats_vq; - struct virtqueue *free_page_vq; - struct workqueue_struct *balloon_wq; - struct work_struct report_free_page_work; - struct work_struct update_balloon_stats_work; - struct work_struct update_balloon_size_work; - spinlock_t stop_update_lock; - bool stop_update; - unsigned long config_read_bitmap; - struct list_head free_page_list; - spinlock_t free_page_list_lock; - unsigned long num_free_page_blocks; - u32 cmd_id_received_cache; - __virtio32 cmd_id_active; - __virtio32 cmd_id_stop; - wait_queue_head_t acked; - unsigned int num_pages; - struct balloon_dev_info vb_dev_info; - struct mutex balloon_lock; - unsigned int num_pfns; - __virtio32 pfns[256]; - struct virtio_balloon_stat stats[10]; - struct shrinker shrinker; - struct notifier_block oom_nb; - struct virtqueue *reporting_vq; - struct page_reporting_dev_info pr_dev_info; +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 *, const struct file *); + int (*ptrace_access_check)(struct task_struct *, unsigned int); + int (*ptrace_traceme)(struct task_struct *); + int (*capget)(const 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, const 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 *, const struct file *); + int (*bprm_check_security)(struct linux_binprm *); + void (*bprm_committing_creds)(const struct linux_binprm *); + void (*bprm_committed_creds)(const struct linux_binprm *); + int (*fs_context_submount)(struct fs_context *, struct super_block *); + 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)(const 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_unlink)(const struct path *, struct dentry *); + int (*path_mkdir)(const struct path *, struct dentry *, umode_t); + int (*path_rmdir)(const struct path *, struct dentry *); + int (*path_mknod)(const struct path *, struct dentry *, umode_t, unsigned int); + int (*path_truncate)(const struct path *); + int (*path_symlink)(const struct path *, struct dentry *, const char *); + int (*path_link)(struct dentry *, const struct path *, struct dentry *); + int (*path_rename)(const struct path *, struct dentry *, const struct path *, struct dentry *, unsigned int); + int (*path_chmod)(const struct path *, umode_t); + int (*path_chown)(const struct path *, kuid_t, kgid_t); + int (*path_chroot)(const struct path *); + 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 *, struct xattr *, int *); + 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)(const 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 (*mptcp_add_subflow)(struct sock *, struct sock *); + 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 *); }; -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 *); +struct security_hook_list { + struct hlist_node list; + struct hlist_head *head; + union security_list_options hook; + const char *lsm; }; -struct dev_pin_info { - struct pinctrl *p; - struct pinctrl_state *default_state; - struct pinctrl_state *init_state; - struct pinctrl_state *sleep_state; - struct pinctrl_state *idle_state; +struct timezone { + int tz_minuteswest; + int tz_dsttime; }; -struct device_attach_data { - struct device *dev; - bool check_async; - bool want_async; - bool have_async; +struct kern_ipc_perm { + spinlock_t lock; + bool deleted; + int id; + key_t key; + kuid_t uid; + kgid_t gid; + kuid_t cuid; + kgid_t cgid; + umode_t mode; + unsigned long seq; + void *security; + struct rhash_head khtnode; + struct callback_head rcu; + refcount_t refcount; + long: 64; + long: 64; + long: 64; }; -struct dma_buf_list { - struct list_head head; - struct mutex lock; +struct sembuf { + unsigned short sem_num; + short sem_op; + short sem_flg; }; -struct dma_buf; - -struct dma_buf_attach_ops; - -struct dma_buf_attachment { - struct dma_buf *dmabuf; - struct device *dev; - struct list_head node; - struct sg_table *sgt; - enum dma_data_direction dir; - bool peer2peer; - const struct dma_buf_attach_ops *importer_ops; - void *importer_priv; - void *priv; +enum label_flags { + FLAG_HAT = 1, + FLAG_UNCONFINED = 2, + FLAG_NULL = 4, + FLAG_IX_ON_NAME_ERROR = 8, + FLAG_IMMUTIBLE = 16, + FLAG_USER_DEFINED = 32, + FLAG_NO_LIST_REF = 64, + FLAG_NS_COUNT = 128, + FLAG_IN_TREE = 256, + FLAG_PROFILE = 512, + FLAG_EXPLICIT = 1024, + FLAG_STALE = 2048, + FLAG_RENAMED = 4096, + FLAG_REVOKED = 8192, + FLAG_DEBUG1 = 16384, + FLAG_DEBUG2 = 32768, }; -struct iosys_map { - union { - void *vaddr_iomem; - void *vaddr; +enum audit_type { + AUDIT_APPARMOR_AUDIT = 0, + AUDIT_APPARMOR_ALLOWED = 1, + AUDIT_APPARMOR_DENIED = 2, + AUDIT_APPARMOR_HINT = 3, + AUDIT_APPARMOR_STATUS = 4, + AUDIT_APPARMOR_ERROR = 5, + AUDIT_APPARMOR_KILL = 6, + AUDIT_APPARMOR_AUTO = 7, +}; + +union aa_buffer { + struct list_head list; + struct { + struct {} __empty_buffer; + char buffer[0]; }; - bool is_iomem; }; -struct dma_fence_cb; +struct aa_sk_ctx { + struct aa_label *label; + struct aa_label *peer; +}; -typedef void (*dma_fence_func_t)(struct dma_fence *, struct dma_fence_cb *); +struct path_cond { + kuid_t uid; + umode_t mode; +}; -struct dma_fence_cb { - struct list_head node; - dma_fence_func_t func; +struct aa_file_ctx { + spinlock_t lock; + struct aa_label __attribute__((btf_type_tag("rcu"))) *label; + u32 allow; }; -struct dma_buf_poll_cb_t { - struct dma_fence_cb cb; - wait_queue_head_t *poll; - __poll_t active; +struct aa_task_ctx { + struct aa_label *nnp; + struct aa_label *onexec; + struct aa_label *previous; + u64 token; }; -struct dma_buf_ops; +struct badblocks_context { + sector_t start; + sector_t len; + int ack; +}; -struct dma_buf { - size_t size; +struct io_shutdown { 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; + int how; }; -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 compat_msghdr; -struct dma_buf_attach_ops { - bool allow_peer2peer; - void (*move_notify)(struct dma_buf_attachment *); -}; +struct user_msghdr; -struct dma_buf_import_sync_file { - __u32 flags; - __s32 fd; +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; + void __attribute__((btf_type_tag("user"))) *msg_control; + struct io_kiocb *notif; }; -struct dma_fence_unwrap { - struct dma_fence *chain; - struct dma_fence *array; - unsigned int index; +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 dma_buf_export_sync_file { - __u32 flags; - __s32 fd; +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 sync_file { +struct io_accept { 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 sockaddr __attribute__((btf_type_tag("user"))) *addr; + int __attribute__((btf_type_tag("user"))) *addr_len; + int flags; + u32 file_slot; + unsigned long nofile; }; -struct dma_buf_export_info { - const char *exp_name; - struct module *owner; - const struct dma_buf_ops *ops; - size_t size; +struct io_socket { + struct file *file; + int domain; + int type; + int protocol; int flags; - struct dma_resv *resv; - void *priv; + u32 file_slot; + unsigned long nofile; }; -struct dma_buf_sync { - __u64 flags; +struct io_connect { + struct file *file; + struct sockaddr __attribute__((btf_type_tag("user"))) *addr; + int addr_len; + bool in_progress; + bool seen_econnaborted; }; -typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t); - -struct e1000_reg_info { - u32 ofs; - char *name; +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; }; -enum gro_result { - GRO_MERGED = 0, - GRO_MERGED_FREE = 1, - GRO_HELD = 2, - GRO_NORMAL = 3, - GRO_CONSUMED = 4, +struct io_notif_data { + struct file *file; + struct ubuf_info uarg; + unsigned long account_pages; + bool zc_report; + bool zc_used; + bool zc_copied; }; -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, +struct io_uring_recvmsg_out { + __u32 namelen; + __u32 controllen; + __u32 payloadlen; + __u32 flags; }; -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, +struct io_recvmsg_multishot_hdr { + struct io_uring_recvmsg_out msg; + struct __kernel_sockaddr_storage addr; }; -enum latency_range { - lowest_latency = 0, - low_latency = 1, - bulk_latency = 2, - latency_invalid = 255, +struct io_async_connect { + struct __kernel_sockaddr_storage address; }; -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 gpio_device { + struct device dev; + struct cdev chrdev; + int id; + struct device *mockdev; + struct module *owner; + struct gpio_chip *chip; + struct gpio_desc *descs; + int base; + u16 ngpio; + const char *label; + void *data; + struct list_head list; + struct blocking_notifier_head line_state_notifier; + struct blocking_notifier_head device_notifier; + struct rw_semaphore sem; + struct list_head pin_ranges; }; -struct trace_event_raw_e1000e_trace_mac_register { - struct trace_entry ent; - uint32_t reg; - char __data[0]; -}; +struct gpio_array; -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 gpio_descs { + struct gpio_array *info; + unsigned int ndescs; + struct gpio_desc *desc[0]; }; -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 gpio_array { + struct gpio_desc **desc; + unsigned int size; + struct gpio_chip *chip; + unsigned long *get_mask; + unsigned long *set_mask; + unsigned long invert_mask[0]; }; -struct my_u0 { - __le64 a; - __le64 b; -}; +struct hotplug_slot_ops; -struct my_u1 { - __le64 a; - __le64 b; - __le64 c; - __le64 d; +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; }; -typedef enum gro_result gro_result_t; - -struct trace_event_data_offsets_e1000e_trace_mac_register {}; - -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 hotplug_slot_ops { + int (*enable_slot)(struct hotplug_slot *); + int (*disable_slot)(struct hotplug_slot *); + int (*set_attention_status)(struct hotplug_slot *, u8); + int (*hardware_test)(struct hotplug_slot *, u32); + int (*get_power_status)(struct hotplug_slot *, u8 *); + int (*get_attention_status)(struct hotplug_slot *, u8 *); + int (*get_latch_status)(struct hotplug_slot *, u8 *); + int (*get_adapter_status)(struct hotplug_slot *, u8 *); + int (*reset_slot)(struct hotplug_slot *, bool); }; -struct mmc_pwrseq_emmc { - struct mmc_pwrseq pwrseq; - struct notifier_block reset_nb; - struct gpio_desc *reset_gpio; +struct hpx_type0 { + u32 revision; + u8 cache_line_size; + u8 latency_timer; + u8 enable_serr; + u8 enable_perr; }; -struct gpio_desc { - struct gpio_device *gdev; - unsigned long flags; - const char *label; - const char *name; - unsigned int debounce_period_us; +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 cmsghdr { - __kernel_size_t cmsg_len; - int cmsg_level; - int cmsg_type; +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, }; -struct scm_timestamping64 { - struct __kernel_timespec ts[3]; +enum hpx_type3_fn_type { + HPX_FN_NORMAL = 1, + HPX_FN_SRIOV_PHYS = 2, + HPX_FN_SRIOV_VIRT = 4, }; -struct scm_timestamping_internal { - struct timespec64 ts[3]; +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 __kernel_old_timespec { - __kernel_old_time_t tv_sec; - long tv_nsec; +struct hpx_type1 { + u32 revision; + u8 max_mem_read; + u8 avg_max_split; + u16 tot_max_split; }; -struct scm_timestamping { - struct __kernel_old_timespec ts[3]; +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 qdisc_walker { - int stop; - int skip; - int count; - int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *); +enum display_flags { + DISPLAY_FLAGS_HSYNC_LOW = 1, + DISPLAY_FLAGS_HSYNC_HIGH = 2, + DISPLAY_FLAGS_VSYNC_LOW = 4, + DISPLAY_FLAGS_VSYNC_HIGH = 8, + DISPLAY_FLAGS_DE_LOW = 16, + DISPLAY_FLAGS_DE_HIGH = 32, + DISPLAY_FLAGS_PIXDATA_POSEDGE = 64, + DISPLAY_FLAGS_PIXDATA_NEGEDGE = 128, + DISPLAY_FLAGS_INTERLACED = 256, + DISPLAY_FLAGS_DOUBLESCAN = 512, + DISPLAY_FLAGS_DOUBLECLK = 1024, + DISPLAY_FLAGS_SYNC_POSEDGE = 2048, + DISPLAY_FLAGS_SYNC_NEGEDGE = 4096, }; -struct tcf_walker { - int stop; - int skip; - int count; - bool nonempty; - unsigned long cookie; - int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); +struct display_timing; + +struct display_timings { + unsigned int num_timings; + unsigned int native_mode; + struct display_timing **timings; }; -struct tcf_exts { - int action; - int police; +struct timing_entry { + u32 min; + u32 typ; + u32 max; }; -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, +struct display_timing { + struct timing_entry pixelclock; + struct timing_entry hactive; + struct timing_entry hfront_porch; + struct timing_entry hback_porch; + struct timing_entry hsync_len; + struct timing_entry vactive; + struct timing_entry vfront_porch; + struct timing_entry vback_porch; + struct timing_entry vsync_len; + enum display_flags flags; }; -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, +struct videomode { + unsigned long pixelclock; + u32 hactive; + u32 hfront_porch; + u32 hback_porch; + u32 hsync_len; + u32 vactive; + u32 vfront_porch; + u32 vback_porch; + u32 vsync_len; + enum display_flags flags; }; -typedef const char (* const ethnl_string_array_t)[32]; - -struct nf_queue_entry; +typedef u64 phys_cpuid_t; -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 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 nf_queue_entry { - struct list_head list; - struct sk_buff *skb; - unsigned int id; - unsigned int hook_index; - struct net_device *physin; - struct net_device *physout; - struct nf_hook_state state; - u16 size; +struct acpi_processor_cx { + u8 valid; + u8 type; + u32 address; + u8 entry_method; + u8 index; + u32 latency; + u8 bm_sts_skip; + char desc[32]; }; -struct ip_rt_info { - __be32 daddr; - __be32 saddr; - u_int8_t tos; - u_int32_t mark; +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 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 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 igmphdr { - __u8 type; - __u8 code; - __sum16 csum; - __be32 group; -}; +struct acpi_pct_register { + u8 descriptor; + u16 length; + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 reserved; + u64 address; +} __attribute__((packed)); -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 acpi_tsd_package { + u64 num_entries; + u64 revision; + u64 domain; + u64 coord_type; + u64 num_processors; }; -struct igmpv3_grec { - __u8 grec_type; - __u8 grec_auxwords; - __be16 grec_nsrcs; - __be32 grec_mca; - __be32 grec_src[0]; +struct acpi_processor_tx { + u16 power; + u16 performance; }; -struct igmpv3_report { - __u8 type; - __u8 resv1; - __sum16 csum; - __be16 resv2; - __be16 ngrec; - struct igmpv3_grec grec[0]; -}; +struct acpi_processor_tx_tss; -struct igmp_mc_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct in_device *in_dev; -}; +struct acpi_processor; -struct igmp_mcf_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct in_device *idev; - struct ip_mc_list *im; +struct acpi_processor_throttling { + unsigned int state; + unsigned int platform_limit; + struct acpi_pct_register control_register; + struct acpi_pct_register status_register; + unsigned int state_count; + struct acpi_processor_tx_tss *states_tss; + struct acpi_tsd_package domain_info; + cpumask_var_t shared_cpu_map; + int (*acpi_processor_get_throttling)(struct acpi_processor *); + int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool); + u32 address; + u8 duty_offset; + u8 duty_width; + u8 tsd_valid_flag; + unsigned int shared_type; + struct acpi_processor_tx states[16]; }; -struct ip_mreq_source { - __be32 imr_multiaddr; - __be32 imr_interface; - __be32 imr_sourceaddr; +struct acpi_processor_lx { + int px; + int tx; }; -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 acpi_processor_limit { + struct acpi_processor_lx state; + struct acpi_processor_lx thermal; + struct acpi_processor_lx user; }; -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, -}; +struct acpi_processor_performance; -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, +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; }; -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 acpi_psd_package { + u64 num_entries; + u64 revision; + u64 domain; + u64 coord_type; + u64 num_processors; }; -struct ip_tunnel; - -struct ip6_tnl; +struct acpi_processor_px; -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 acpi_processor_performance { + unsigned int state; + unsigned int platform_limit; + struct acpi_pct_register control_register; + struct acpi_pct_register status_register; + unsigned int state_count; + struct acpi_processor_px *states; + struct acpi_psd_package domain_info; + cpumask_var_t shared_cpu_map; + unsigned int shared_type; }; -struct xfrm_skb_cb { - struct xfrm_tunnel_skb_cb header; - union { - struct { - __u32 low; - __u32 hi; - } output; - struct { - __be32 low; - __be32 hi; - } input; - } seq; +struct acpi_processor_px { + u64 core_frequency; + u64 power; + u64 transition_latency; + u64 bus_master_latency; + u64 control; + u64 status; }; -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 acpi_processor_tx_tss { + u64 freqpercentage; + u64 power; + u64 transition_latency; + u64 control; + u64 status; }; -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 acpi_processor_errata { + u8 smp; + struct { + u8 throttle: 1; + u8 fdma: 1; + u8 reserved: 6; + u32 bmisx; + } piix4; }; -struct xfrm_dst; +typedef enum { + ACPI_IMODE_LOAD_PASS1 = 1, + ACPI_IMODE_LOAD_PASS2 = 2, + ACPI_IMODE_EXECUTE = 3, +} acpi_interpreter_mode; -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 *); +struct acpi_create_field_info { + struct acpi_namespace_node *region_node; + struct acpi_namespace_node *field_node; + struct acpi_namespace_node *register_node; + struct acpi_namespace_node *data_register_node; + struct acpi_namespace_node *connection_node; + u8 *resource_buffer; + u32 bank_value; + u32 field_bit_position; + u32 field_bit_length; + u16 resource_length; + u16 pin_number_index; + u8 field_flags; + u8 attribute; + u8 field_type; + u8 access_length; }; -struct 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; +enum { + AML_FIELD_UPDATE_PRESERVE = 0, + AML_FIELD_UPDATE_WRITE_AS_ONES = 32, + AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64, }; -struct strp_msg { - int full_len; - int offset; +struct acpi_pci_device { + acpi_handle device; + struct acpi_pci_device *next; }; -struct _strp_msg { - struct strp_msg strp; - int accum_len; +struct acpi_pci_id { + u16 segment; + u16 bus; + u16 device; + u16 function; }; -struct riscv_isainfo { - unsigned long isa[1]; +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 alt_entry { - s32 old_offset; - s32 alt_offset; - u16 vendor_id; - u16 alt_len; - u32 patch_id; +struct acpi_fan_fst { + u64 revision; + u64 control; + u64 speed; }; -enum KTHREAD_BITS { - KTHREAD_IS_PER_CPU = 0, - KTHREAD_SHOULD_STOP = 1, - KTHREAD_SHOULD_PARK = 2, +struct acpi_fan_fif { + u8 revision; + u8 fine_grain_ctrl; + u8 step_size; + u8 low_speed_notification; }; -enum { - KTW_FREEZABLE = 1, +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 kthread_create_info { - char *full_name; - int (*threadfn)(void *); - void *data; - int node; - struct task_struct *result; - struct completion *done; - struct list_head list; +struct clk_gate { + struct clk_hw hw; + void *reg; + u8 bit_idx; + u8 flags; + spinlock_t *lock; }; -struct kthread_delayed_work { - struct kthread_work work; - struct timer_list timer; -}; +struct clk_div_table; -struct kthread_flush_work { - struct kthread_work work; - struct completion done; +struct ccu_div_internal { + u8 shift; + u8 width; + u32 max; + u32 offset; + u32 flags; + struct clk_div_table *table; }; -struct kthread { - unsigned long flags; - unsigned int cpu; - int result; - int (*threadfn)(void *); - void *data; - struct completion parked; - struct completion exited; - char *full_name; -}; - -enum pm_qos_req_action { - PM_QOS_ADD_REQ = 0, - PM_QOS_UPDATE_REQ = 1, - PM_QOS_REMOVE_REQ = 2, -}; +struct ccu_mux_fixed_prediv; -typedef bool (*stack_trace_consume_fn)(void *, unsigned long); +struct ccu_mux_var_prediv; -struct stacktrace_cookie { - unsigned long *store; - unsigned int size; - unsigned int skip; - unsigned int len; +struct ccu_mux_internal { + u8 shift; + u8 width; + const u8 *table; + const struct ccu_mux_fixed_prediv *fixed_predivs; + u8 n_predivs; + const struct ccu_mux_var_prediv *var_predivs; + u8 n_var_predivs; }; -struct vdso_timestamp { - u64 sec; - u64 nsec; +struct ccu_mp { + u32 enable; + struct ccu_div_internal m; + struct ccu_div_internal p; + struct ccu_mux_internal mux; + unsigned int fixed_post_div; + struct ccu_common common; }; -struct timens_offset { - s64 sec; - u64 nsec; +struct clk_div_table { + unsigned int val; + unsigned int div; }; -struct arch_vdso_data { - __u64 all_cpu_hwprobe_values[6]; - __u8 homogeneous_cpus; +struct ccu_mux_fixed_prediv { + u8 index; + u16 div; }; -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 ccu_mux_var_prediv { + u8 index; + u8 shift; + u8 width; }; -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 virtio_pci_modern_common_cfg { + struct virtio_pci_common_cfg cfg; + __le16 queue_notify_data; + __le16 queue_reset; }; -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; - long last_warning; - int underflow_seen; - int overflow_seen; -}; +struct auxiliary_device; -struct proc_timens_offset { - int clockid; - struct timespec64 val; -}; +struct auxiliary_device_id; -struct audit_fsnotify_mark { - dev_t dev; - unsigned long ino; - char *path; - struct fsnotify_mark mark; - struct audit_krule *rule; +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 user_event_group { - char *system_name; - struct hlist_node node; - struct mutex reg_mutex; - struct hlist_head register_table[256]; +struct auxiliary_device { + struct device dev; + const char *name; + u32 id; }; -enum user_reg_flag { - USER_EVENT_REG_PERSIST = 1, - USER_EVENT_REG_MAX = 2, +struct auxiliary_device_id { + char name[32]; + kernel_ulong_t driver_data; }; -struct user_event; - -struct user_event_enabler { - struct list_head mm_enablers_link; - struct user_event *event; - unsigned long addr; - unsigned long values; +struct vt_event { + unsigned int event; + unsigned int oldev; + unsigned int newev; + unsigned int pad[4]; }; -struct user_event { - struct user_event_group *group; - struct tracepoint tracepoint; - struct trace_event_call call; - struct trace_event_class class; - struct dyn_event devent; - struct hlist_node node; - struct list_head fields; - struct list_head validators; - struct work_struct put_work; - refcount_t refcnt; - int min_size; - int reg_flags; - char status; +struct vt_event_wait { + struct list_head list; + struct vt_event event; + int done; }; -struct user_event_validator { - struct list_head user_event_link; - int offset; - int flags; +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 user_event_refs { - struct callback_head rcu; - int count; - struct user_event *events[0]; +struct kbd_repeat { + int delay; + int period; }; -struct user_reg { - __u32 size; - __u8 enable_bit; - __u8 enable_size; - __u16 flags; - __u64 enable_addr; - __u64 name_args; - __u32 write_index; -} __attribute__((packed)); - -struct user_event_enabler_fault { - struct work_struct work; - struct user_event_mm *mm; - struct user_event_enabler *enabler; - int attempt; +struct unimapdesc { + unsigned short entry_ct; + struct unipair __attribute__((btf_type_tag("user"))) *entries; }; -struct user_unreg { - __u32 size; - __u8 disable_bit; - __u8 __reserved; - __u16 __reserved2; - __u64 disable_addr; +struct kbentry { + unsigned char kb_table; + unsigned char kb_index; + unsigned short kb_value; }; -struct user_event_file_info { - struct user_event_group *group; - struct user_event_refs *refs; +struct kbsentry { + unsigned char kb_func; + unsigned char kb_string[512]; }; -typedef void (*user_event_func_t)(struct user_event *, struct iov_iter *, void *, bool *); - -struct bpf_prog_offload_ops; - -struct bpf_offload_dev { - const struct bpf_prog_offload_ops *ops; - struct list_head netdevs; - void *priv; +struct kbkeycode { + unsigned int scancode; + unsigned int keycode; }; -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 *); +struct compat_unimapdesc { + unsigned short entry_ct; + compat_caddr_t entries; }; -enum { - XDP_METADATA_KFUNC_RX_TIMESTAMP = 0, - XDP_METADATA_KFUNC_RX_HASH = 1, - MAX_XDP_METADATA_KFUNC = 2, +struct vt_stat { + unsigned short v_active; + unsigned short v_signal; + unsigned short v_state; }; -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; +struct vt_sizes { + unsigned short v_rows; + unsigned short v_cols; + unsigned short v_scrollsize; }; -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 vt_setactivate { + unsigned int console; + struct vt_mode mode; }; -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 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 bpf_map_info; - -struct ns_get_path_bpf_map_args { - struct bpf_offloaded_map *offmap; - struct bpf_map_info *info; +struct timer_rand_state { + unsigned long last_time; + long last_delta; + long last_delta2; }; -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; +enum { + CRNG_EMPTY = 0, + CRNG_EARLY = 1, + CRNG_READY = 2, }; -typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool); +struct batch_u8 { + u8 entropy[96]; + local_lock_t lock; + unsigned long generation; + unsigned int position; +}; -typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool); +struct batch_u16 { + u16 entropy[48]; + local_lock_t lock; + unsigned long generation; + unsigned int position; +}; -typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool); +struct batch_u32 { + u32 entropy[24]; + local_lock_t lock; + unsigned long generation; + unsigned int position; +}; -struct memcg_path { +struct batch_u64 { + u64 entropy[12]; local_lock_t lock; - char __attribute__((btf_type_tag("rcu"))) *buf; - local_t buf_idx; + unsigned long generation; + unsigned int position; }; -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 crng { + u8 key[32]; + unsigned long generation; + local_lock_t lock; }; -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 execute_work { + struct work_struct work; }; -struct trace_event_data_offsets_mmap_lock { - u32 memcg_path; +struct blake2s_state { + u32 h[8]; + u32 t[2]; + u32 f[2]; + u8 buf[64]; + unsigned int buflen; + unsigned int outlen; }; -struct trace_event_data_offsets_mmap_lock_acquire_returned { - u32 memcg_path; +struct fast_pool { + unsigned long pool[4]; + unsigned long last; + unsigned int count; + struct timer_list mix; }; -struct hugetlb_cgroup_per_node; +enum { + MIX_INFLIGHT = 2147483648, +}; -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[3]; - struct page_counter rsvd_hugepage[3]; - atomic_long_t events[3]; - atomic_long_t events_local[3]; - struct cgroup_file events_file[3]; - struct cgroup_file events_local_file[3]; - struct hugetlb_cgroup_per_node *nodeinfo[0]; +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, }; -struct hugetlb_cgroup_per_node { - unsigned long usage[3]; +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 hugetlb_memory_event { - HUGETLB_MAX = 0, - HUGETLB_NR_MEMORY_EVENTS = 1, +enum chacha_constants { + CHACHA_CONSTANT_EXPA = 1634760805, + CHACHA_CONSTANT_ND_3 = 857760878, + CHACHA_CONSTANT_2_BY = 2036477234, + CHACHA_CONSTANT_TE_K = 1797285236, }; 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, + POOL_BITS = 256, + POOL_READY_BITS = 256, + POOL_EARLY_BITS = 128, }; -struct file_region { - struct list_head link; - long from; - long to; - struct page_counter *reservation_counter; - struct cgroup_subsys_state *css; +enum { + CRNG_RESEED_START_INTERVAL = 250, + CRNG_RESEED_INTERVAL = 15000, }; -struct splice_desc { - size_t total_len; - unsigned int len; - unsigned int flags; - union { - void __attribute__((btf_type_tag("user"))) *userptr; - struct file *file; - void *data; - } u; - void (*splice_eof)(struct splice_desc *); - loff_t pos; - loff_t *opos; - size_t num_spliced; - bool need_wakeup; +enum { + NUM_TRIAL_SAMPLES = 8192, + MAX_SAMPLES_PER_BIT = 16, }; -typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); - -struct partial_page; +struct entropy_timer_state { + unsigned long entropy; + struct timer_list timer; + atomic_t samples; + unsigned int samples_per_bit; +}; -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 driver_attribute { + struct attribute attr; + ssize_t (*show)(struct device_driver *, char *); + ssize_t (*store)(struct device_driver *, const char *, size_t); }; -struct partial_page { - unsigned int offset; - unsigned int len; - unsigned long private; +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, }; -typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); - -typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int); +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; + u64 last_hw_sleep; + u64 total_hw_sleep; + u64 max_hw_sleep; + enum suspend_stat_step failed_steps[2]; +}; -typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int); +typedef void (*async_func_t)(void *, async_cookie_t); -typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64); +typedef int (*pm_callback_t)(struct device *); -typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64); +typedef void (*btf_trace_thermal_pressure_update)(void *, int, unsigned long); -typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64); +enum scale_freq_source { + SCALE_FREQ_SOURCE_CPUFREQ = 0, + SCALE_FREQ_SOURCE_ARCH = 1, + SCALE_FREQ_SOURCE_CPPC = 2, +}; -typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); +struct scale_freq_data { + enum scale_freq_source source; + void (*set_freq_scale)(); +}; -typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64); +struct cpu_topology { + int thread_id; + int core_id; + int cluster_id; + int package_id; + cpumask_t thread_sibling; + cpumask_t core_sibling; + cpumask_t cluster_sibling; + cpumask_t llc_sibling; +}; -typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *); +struct trace_event_raw_thermal_pressure_update { + struct trace_entry ent; + unsigned long thermal_pressure; + int cpu; + char __data[0]; +}; -typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *); +struct cpu { + int node_id; + int hotpluggable; + struct device dev; +}; -typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, struct iomap *); +struct trace_event_data_offsets_thermal_pressure_update {}; -typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long); +enum scsi_ml_status { + SCSIML_STAT_OK = 0, + SCSIML_STAT_RESV_CONFLICT = 1, + SCSIML_STAT_NOSPC = 2, + SCSIML_STAT_MED_ERROR = 3, + SCSIML_STAT_TGT_FAILURE = 4, + SCSIML_STAT_DL_TIMEOUT = 5, +}; -typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t); +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, +}; -typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t); +struct scsi_driver { + struct device_driver gendrv; + void (*rescan)(struct device *); + blk_status_t (*init_command)(struct scsi_cmnd *); + void (*uninit_command)(struct scsi_cmnd *); + int (*done)(struct scsi_cmnd *); + int (*eh_action)(struct scsi_cmnd *, int); + void (*eh_reset)(struct scsi_cmnd *); +}; -struct trace_event_raw_iomap_readpage_class { - struct trace_entry ent; - dev_t dev; - u64 ino; - int nr_pages; - char __data[0]; +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 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 mtd_notifier { + void (*add)(struct mtd_info *); + void (*remove)(struct mtd_info *); + struct list_head list; }; -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 mtd_blktrans_ops; + +struct mtd_blktrans_dev { + struct mtd_blktrans_ops *tr; + struct list_head list; + struct mtd_info *mtd; + struct mutex lock; + int devnum; + bool bg_stop; + unsigned long size; + int readonly; + int open; + struct kref ref; + struct gendisk *disk; + struct attribute_group *disk_attributes; + struct request_queue *rq; + struct list_head rq_list; + struct blk_mq_tag_set *tag_set; + spinlock_t queue_lock; + void *priv; + bool writable; }; -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 mtd_blktrans_ops { + char *name; + int major; + int part_bits; + int blksize; + int blkshift; + int (*readsect)(struct mtd_blktrans_dev *, unsigned long, char *); + int (*writesect)(struct mtd_blktrans_dev *, unsigned long, char *); + int (*discard)(struct mtd_blktrans_dev *, unsigned long, unsigned int); + void (*background)(struct mtd_blktrans_dev *); + int (*getgeo)(struct mtd_blktrans_dev *, struct hd_geometry *); + int (*flush)(struct mtd_blktrans_dev *); + int (*open)(struct mtd_blktrans_dev *); + void (*release)(struct mtd_blktrans_dev *); + void (*add_mtd)(struct mtd_blktrans_ops *, struct mtd_info *); + void (*remove_dev)(struct mtd_blktrans_dev *); + struct list_head devs; + struct list_head list; + struct module *owner; }; -struct trace_event_raw_iomap_dio_rw_begin { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t isize; - loff_t pos; - size_t count; - size_t done_before; - int ki_flags; - unsigned int dio_flags; - bool aio; - char __data[0]; +struct phylib_stubs { + int (*hwtstamp_get)(struct phy_device *, struct kernel_hwtstamp_config *); + int (*hwtstamp_set)(struct phy_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); }; -struct trace_event_raw_iomap_dio_complete { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t isize; - loff_t pos; - int ki_flags; - bool aio; - int error; - ssize_t ret; - char __data[0]; +struct phy_fixup { + struct list_head list; + char bus_id[64]; + u32 phy_uid; + u32 phy_uid_mask; + int (*run)(struct phy_device *); }; -struct trace_event_data_offsets_iomap_readpage_class {}; +struct sfp_eeprom_id; -struct trace_event_data_offsets_iomap_range_class {}; +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 trace_event_data_offsets_iomap_class {}; +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; + } 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; + } active; + }; + u8 reserved62; + u8 cc_base; +}; -struct trace_event_data_offsets_iomap_iter {}; +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 trace_event_data_offsets_iomap_dio_rw_begin {}; +struct sfp_eeprom_id { + struct sfp_eeprom_base base; + struct sfp_eeprom_ext ext; +}; -struct trace_event_data_offsets_iomap_dio_complete {}; +enum usb_led_event { + USB_LED_EVENT_HOST = 0, + USB_LED_EVENT_GADGET = 1, +}; -typedef struct { - __le32 a_version; -} ext4_acl_header; +enum { + TASKLET_STATE_SCHED = 0, + TASKLET_STATE_RUN = 1, +}; -typedef struct { - __le16 e_tag; - __le16 e_perm; - __le32 e_id; -} ext4_acl_entry; +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 nfs_find_desc { - struct nfs_fh *fh; - struct nfs_fattr *fattr; +enum xhci_cancelled_td_status { + TD_DIRTY = 0, + TD_HALTED = 1, + TD_CLEARING_CACHE = 2, + TD_CLEARED = 3, }; -struct nlm_cookie { - unsigned char data[32]; - unsigned int len; +enum xhci_setup_dev { + SETUP_CONTEXT_ONLY = 0, + SETUP_CONTEXT_ADDRESS = 1, }; -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; +enum xhci_ep_reset_type { + EP_HARD_RESET = 0, + EP_SOFT_RESET = 1, }; -struct nlm_res { - struct nlm_cookie cookie; - __be32 status; - struct nlm_lock lock; +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 nlm_block; +struct urb_priv { + int num_tds; + int num_tds_done; + struct xhci_td td[0]; +}; -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 xhci_ep_ctx { + __le32 ep_info; + __le32 ep_info2; + __le64 deq; + __le32 tx_info; + __le32 reserved[3]; }; -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 xhci_slot_ctx { + __le32 dev_info; + __le32 dev_info2; + __le32 tt_info; + __le32 dev_state; + __le32 reserved[4]; }; -struct nlm_wait { - struct list_head b_list; - wait_queue_head_t b_wait; - struct nlm_host *b_host; - struct file_lock *b_lock; - __be32 b_status; +struct xhci_input_control_ctx { + __le32 drop_flags; + __le32 add_flags; + __le32 rsvd2[6]; }; -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 alps_protocol_info { + u16 version; + u8 byte0; + u8 mask0; + unsigned int flags; }; -struct p9_rdir { - int head; - int tail; - uint8_t buf[0]; +struct alps_model_info { + u8 signature[3]; + struct alps_protocol_info protocol_info; }; -struct p9_dirent { - struct p9_qid qid; - u64 d_off; - unsigned char d_type; - char d_name[256]; +struct alps_nibble_commands { + int command; + unsigned char data; }; -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_unlink; - struct hlist_head path_mkdir; - struct hlist_head path_rmdir; - struct hlist_head path_mknod; - struct hlist_head path_truncate; - struct hlist_head path_symlink; - struct hlist_head path_link; - struct hlist_head path_rename; - struct hlist_head path_chmod; - struct hlist_head path_chown; - struct hlist_head path_chroot; - 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 mptcp_add_subflow; - 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 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 lsm_order { - LSM_ORDER_FIRST = -1, - LSM_ORDER_MUTABLE = 0, - LSM_ORDER_LAST = 1, +enum psmouse_state { + PSMOUSE_IGNORE = 0, + PSMOUSE_INITIALIZING = 1, + PSMOUSE_RESYNCING = 2, + PSMOUSE_CMD_MODE = 3, + PSMOUSE_ACTIVATED = 4, }; -struct lsm_blob_sizes; +enum psmouse_scale { + PSMOUSE_SCALE11 = 0, + PSMOUSE_SCALE21 = 1, +}; -struct lsm_info { +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 psmouse; + +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; +}; + +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; - enum lsm_order order; - unsigned long flags; - int *enabled; - int (*init)(); - struct lsm_blob_sizes *blobs; + 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 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 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 timezone; +struct alps_bitmap_point { + int start_bit; + int num_bits; +}; -struct msg_msg; +struct watchdog_info { + __u32 options; + __u32 firmware_version; + __u8 identity[32]; +}; -struct sctp_association; +struct watchdog_device; -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_unlink)(const struct path *, struct dentry *); - int (*path_mkdir)(const struct path *, struct dentry *, umode_t); - int (*path_rmdir)(const struct path *, struct dentry *); - int (*path_mknod)(const struct path *, struct dentry *, umode_t, unsigned int); - int (*path_truncate)(const struct path *); - int (*path_symlink)(const struct path *, struct dentry *, const char *); - int (*path_link)(struct dentry *, const struct path *, struct dentry *); - int (*path_rename)(const struct path *, struct dentry *, const struct path *, struct dentry *, unsigned int); - int (*path_chmod)(const struct path *, umode_t); - int (*path_chown)(const struct path *, kuid_t, kgid_t); - int (*path_chroot)(const struct path *); - 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 (*mptcp_add_subflow)(struct sock *, struct sock *); - 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 watchdog_ops { + struct module *owner; + int (*start)(struct watchdog_device *); + int (*stop)(struct watchdog_device *); + int (*ping)(struct watchdog_device *); + unsigned int (*status)(struct watchdog_device *); + int (*set_timeout)(struct watchdog_device *, unsigned int); + int (*set_pretimeout)(struct watchdog_device *, unsigned int); + unsigned int (*get_timeleft)(struct watchdog_device *); + int (*restart)(struct watchdog_device *, unsigned long, void *); + long (*ioctl)(struct watchdog_device *, unsigned int, unsigned long); }; -struct security_hook_list { - struct hlist_node list; - struct hlist_head *head; - union security_list_options hook; - const char *lsm; -}; +struct watchdog_governor; -struct timezone { - int tz_minuteswest; - int tz_dsttime; -}; +struct watchdog_core_data; -struct msg_msgseg; +struct watchdog_device { + int id; + struct device *parent; + const struct attribute_group **groups; + const struct watchdog_info *info; + const struct watchdog_ops *ops; + const struct watchdog_governor *gov; + unsigned int bootstatus; + unsigned int timeout; + unsigned int pretimeout; + unsigned int min_timeout; + unsigned int max_timeout; + unsigned int min_hw_heartbeat_ms; + unsigned int max_hw_heartbeat_ms; + struct notifier_block reboot_nb; + struct notifier_block restart_nb; + struct notifier_block pm_nb; + void *driver_data; + struct watchdog_core_data *wd_data; + unsigned long status; + struct list_head deferred; +}; -struct msg_msg { - struct list_head m_list; - long m_type; - size_t m_ts; - struct msg_msgseg *next; - void *security; +struct watchdog_governor { + const char name[20]; + void (*pretimeout)(struct watchdog_device *); }; -struct aead_request { - struct crypto_async_request base; - unsigned int assoclen; - unsigned int cryptlen; - u8 *iv; - struct scatterlist *src; - struct scatterlist *dst; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - void *__ctx[0]; +struct starfive_wdt_variant { + unsigned int control; + unsigned int load; + unsigned int reload; + unsigned int enable; + unsigned int value; + unsigned int int_clr; + unsigned int unlock; + unsigned int int_status; + u32 unlock_key; + char enrst_shift; + char en_shift; + bool intclr_check; + char intclr_ava_shift; + bool double_timeout; }; -struct kpp_request { - struct crypto_async_request base; - struct scatterlist *src; - struct scatterlist *dst; - unsigned int src_len; - unsigned int dst_len; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - void *__ctx[0]; +struct starfive_wdt { + struct watchdog_device wdd; + spinlock_t lock; + void *base; + struct clk *core_clk; + struct clk *apb_clk; + const struct starfive_wdt_variant *variant; + unsigned long freq; + u32 count; + u32 reload; }; -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 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 io_sync { - struct file *file; - loff_t len; - loff_t off; - int flags; - int mode; +struct menu_device { + int needs_update; + int tick_wakeup; + u64 next_timer_ns; + unsigned int bucket; + unsigned int correction_factor[12]; + unsigned int intervals[8]; + int interval_ptr; }; -struct genradix_root; +typedef s64 int64_t; -struct genradix_node { - union { - struct genradix_node *children[512]; - u8 data[4096]; - }; -}; +typedef void (*btf_trace_mmc_request_start)(void *, struct mmc_host *, struct mmc_request *); -struct __genradix { - struct genradix_root *root; +struct led_trigger {}; + +typedef void (*btf_trace_mmc_request_done)(void *, struct mmc_host *, struct mmc_request *); + +enum mmc_err_stat { + MMC_ERR_CMD_TIMEOUT = 0, + MMC_ERR_CMD_CRC = 1, + MMC_ERR_DAT_TIMEOUT = 2, + MMC_ERR_DAT_CRC = 3, + MMC_ERR_AUTO_CMD = 4, + MMC_ERR_ADMA = 5, + MMC_ERR_TUNING = 6, + MMC_ERR_CMDQ_RED = 7, + MMC_ERR_CMDQ_GCE = 8, + MMC_ERR_CMDQ_ICCE = 9, + MMC_ERR_REQ_TIMEOUT = 10, + MMC_ERR_CMDQ_REQ_TIMEOUT = 11, + MMC_ERR_ICE_CFG = 12, + MMC_ERR_CTRL_TIMEOUT = 13, + MMC_ERR_UNEXPECTED_IRQ = 14, + MMC_ERR_MAX = 15, }; -struct genradix_iter { - size_t offset; - size_t pos; +struct trace_event_raw_mmc_request_start { + struct trace_entry ent; + u32 cmd_opcode; + u32 cmd_arg; + unsigned int cmd_flags; + unsigned int cmd_retries; + u32 stop_opcode; + u32 stop_arg; + unsigned int stop_flags; + unsigned int stop_retries; + u32 sbc_opcode; + u32 sbc_arg; + unsigned int sbc_flags; + unsigned int sbc_retries; + unsigned int blocks; + unsigned int blk_addr; + unsigned int blksz; + unsigned int data_flags; + int tag; + unsigned int can_retune; + unsigned int doing_retune; + unsigned int retune_now; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct mmc_request *mrq; + u32 __data_loc_name; + char __data[0]; }; -struct reciprocal_value_adv { - u32 m; - u8 sh; - u8 exp; - bool is_wide_m; +struct trace_event_raw_mmc_request_done { + struct trace_entry ent; + u32 cmd_opcode; + int cmd_err; + u32 cmd_resp[4]; + unsigned int cmd_retries; + u32 stop_opcode; + int stop_err; + u32 stop_resp[4]; + unsigned int stop_retries; + u32 sbc_opcode; + int sbc_err; + u32 sbc_resp[4]; + unsigned int sbc_retries; + unsigned int bytes_xfered; + int data_err; + int tag; + unsigned int can_retune; + unsigned int doing_retune; + unsigned int retune_now; + int need_retune; + int hold_retune; + unsigned int retune_period; + struct mmc_request *mrq; + u32 __data_loc_name; + char __data[0]; }; -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, +struct trace_event_data_offsets_mmc_request_start { + u32 name; }; -enum blake2s_iv { - BLAKE2S_IV0 = 1779033703, - BLAKE2S_IV1 = 3144134277, - BLAKE2S_IV2 = 1013904242, - BLAKE2S_IV3 = 2773480762, - BLAKE2S_IV4 = 1359893119, - BLAKE2S_IV5 = 2600822924, - BLAKE2S_IV6 = 528734635, - BLAKE2S_IV7 = 1541459225, +struct trace_event_data_offsets_mmc_request_done { + u32 name; }; -struct blake2s_state { - u32 h[8]; - u32 t[2]; - u32 f[2]; - u8 buf[64]; - unsigned int buflen; - unsigned int outlen; +struct supplier_bindings { + struct device_node * (*parse_prop)(struct device_node *, const char *, int); + bool optional; + bool node_not_dev; }; -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 of_endpoint { + unsigned int port; + unsigned int id; + const struct device_node *local_node; }; -typedef unsigned long (*genpool_algo_t)(unsigned long *, unsigned long, unsigned long, unsigned int, void *, struct gen_pool *, unsigned long); +struct snd_device; -struct gen_pool { - spinlock_t lock; - struct list_head chunks; - int min_alloc_order; - genpool_algo_t algo; - void *data; - const char *name; +struct snd_device_ops { + int (*dev_free)(struct snd_device *); + int (*dev_register)(struct snd_device *); + int (*dev_disconnect)(struct snd_device *); }; -struct genpool_data_align { - int align; +enum snd_device_state { + SNDRV_DEV_BUILD = 0, + SNDRV_DEV_REGISTERED = 1, + SNDRV_DEV_DISCONNECTED = 2, }; -struct genpool_data_fixed { - unsigned long offset; +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, }; -typedef void (*btf_trace_gpio_direction)(void *, unsigned int, int, int); +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; +}; -typedef void (*btf_trace_gpio_value)(void *, unsigned int, int, int); +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; +}; -enum gpio_lookup_flags { - GPIO_ACTIVE_HIGH = 0, - GPIO_ACTIVE_LOW = 1, - GPIO_OPEN_DRAIN = 2, - GPIO_OPEN_SOURCE = 4, - GPIO_PERSISTENT = 0, - GPIO_TRANSITORY = 8, - GPIO_PULL_UP = 16, - GPIO_PULL_DOWN = 32, - GPIO_PULL_DISABLE = 64, - GPIO_LOOKUP_FLAGS_DEFAULT = 0, +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 { - GPIOLINE_CHANGED_REQUESTED = 1, - GPIOLINE_CHANGED_RELEASED = 2, - GPIOLINE_CHANGED_CONFIG = 3, + 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, }; -struct gpio_device { - struct device dev; - struct cdev chrdev; - int id; - struct device *mockdev; - struct module *owner; - struct gpio_chip *chip; - struct gpio_desc *descs; - int base; - u16 ngpio; - const char *label; - void *data; - struct list_head list; - struct blocking_notifier_head notifier; - struct rw_semaphore sem; - struct list_head pin_ranges; +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, }; -struct gpio_pin_range { - struct list_head node; - struct pinctrl_dev *pctldev; - struct pinctrl_gpio_range range; +enum timer_tread_format { + TREAD_FORMAT_NONE = 0, + TREAD_FORMAT_TIME64 = 1, + TREAD_FORMAT_TIME32 = 2, }; -struct trace_event_raw_gpio_direction { - struct trace_entry ent; - unsigned int gpio; - int in; - int err; - char __data[0]; +enum { + SNDRV_TIMER_IOCTL_GPARAMS32 = 1077695492, + SNDRV_TIMER_IOCTL_INFO32 = 2162185233, + SNDRV_TIMER_IOCTL_STATUS_COMPAT32 = 1079530516, + SNDRV_TIMER_IOCTL_STATUS_COMPAT64 = 1080054804, }; -struct trace_event_raw_gpio_value { - struct trace_entry ent; - unsigned int gpio; - int get; - int value; - char __data[0]; +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 gpiod_hog { - struct list_head list; - const char *chip_label; - u16 chip_hwnum; - const char *line_name; - unsigned long lflags; - int dflags; +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 gpiod_lookup { - const char *key; - u16 chip_hwnum; - const char *con_id; - unsigned int idx; - unsigned long flags; +struct snd_timer_id { + int dev_class; + int dev_sclass; + int card; + int device; + int subdevice; }; -struct gpiod_lookup_table { - struct list_head list; - const char *dev_id; - struct gpiod_lookup table[0]; +struct snd_timer_gparams32 { + struct snd_timer_id tid; + u32 period_num; + u32 period_den; + unsigned char reserved[32]; }; -struct gpio_array; +struct snd_timer_gparams { + struct snd_timer_id tid; + unsigned long period_num; + unsigned long period_den; + unsigned char reserved[32]; +}; -struct gpio_descs { - struct gpio_array *info; - unsigned int ndescs; - struct gpio_desc *desc[0]; +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 gpio_array { - struct gpio_desc **desc; - unsigned int size; - struct gpio_chip *chip; - unsigned long *get_mask; - unsigned long *set_mask; - unsigned long invert_mask[0]; +struct snd_timer_tread64 { + int event; + u8 pad1[4]; + s64 tstamp_sec; + s64 tstamp_nsec; + unsigned int val; + u8 pad2[4]; }; -struct trace_event_data_offsets_gpio_direction {}; +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 trace_event_data_offsets_gpio_value {}; +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 acpi_comment_node { - char *comment; - struct acpi_comment_node *next; +struct snd_timer_select { + struct snd_timer_id id; + unsigned char reserved[32]; }; -struct acpi_table_list { - struct acpi_table_desc *tables; - u32 current_table_count; - u32 max_table_count; - u8 flags; +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 acpi_mutex_info { - void *mutex; - u32 use_count; - u64 thread_id; +struct snd_timer_tread32 { + int event; + s32 tstamp_sec; + s32 tstamp_nsec; + unsigned int val; }; -struct acpi_rw_lock { - void *writer_mutex; - void *reader_mutex; - u32 num_readers; +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]; }; -typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); - -typedef acpi_status (*acpi_init_handler)(acpi_handle, u32); - -typedef acpi_status (*acpi_table_handler)(u32, void *, void *); - -typedef u32 (*acpi_sci_handler)(void *); - -struct acpi_sci_handler_info { - struct acpi_sci_handler_info *next; - acpi_sci_handler address; - void *context; +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]; }; -struct acpi_interface_info { - char *name; - struct acpi_interface_info *next; - u8 flags; - u8 value; +struct compat_mmsghdr { + struct compat_msghdr msg_hdr; + compat_uint_t msg_len; }; -struct clk_fixed_rate { - struct clk_hw hw; - unsigned long fixed_rate; - unsigned long fixed_accuracy; - unsigned long 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 virtio_pci_legacy_device { - struct pci_dev *pci_dev; - u8 *isr; - void *ioaddr; - struct virtio_device_id id; +struct compat_if_settings { + unsigned int type; + unsigned int size; + compat_uptr_t ifs_ifsu; }; -struct virtio_pci_vq_info; - -struct virtio_pci_device { - struct virtio_device vdev; - struct pci_dev *pci_dev; +struct compat_ifreq { union { - struct virtio_pci_legacy_device ldev; - struct virtio_pci_modern_device mdev; - }; - bool is_legacy; - u8 *isr; - spinlock_t lock; - struct list_head virtqueues; - struct virtio_pci_vq_info **vqs; - 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); + 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 virtio_pci_vq_info { - struct virtqueue *vq; - struct list_head node; - unsigned int msix_vector; +struct sock_skb_cb { + u32 dropcount; }; -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 mmsghdr { + struct user_msghdr msg_hdr; + unsigned int msg_len; }; -struct cacheinfo; +typedef __kernel_long_t __kernel_old_time_t; -struct cpu_cacheinfo { - struct cacheinfo *info_list; - unsigned int num_levels; - unsigned int num_leaves; - bool cpu_map_populated; - bool early_ci_levels; +struct __kernel_old_timespec { + __kernel_old_time_t tv_sec; + long tv_nsec; }; -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 __kernel_sock_timeval { + __s64 tv_sec; + __s64 tv_usec; }; -struct cache_type_info { - const char *size_prop; - const char *line_size_props[2]; - const char *nr_sets_prop; +struct scm_ts_pktinfo { + __u32 if_index; + __u32 pkt_length; + __u32 reserved[2]; }; -struct nvdimm_pmu { - struct pmu pmu; - struct device *dev; - int cpu; - struct hlist_node node; - enum cpuhp_state cpuhp_state; - struct cpumask arch_cpumask; +struct scm_timestamping_internal { + struct timespec64 ts[3]; }; -typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); - -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 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 mdio_driver { - struct mdio_driver_common mdiodrv; - int (*probe)(struct mdio_device *); - void (*remove)(struct mdio_device *); - void (*shutdown)(struct mdio_device *); +struct used_address { + struct __kernel_sockaddr_storage name; + unsigned int name_len; }; -struct mdio_board_info { - const char *bus_id; - char modalias[32]; - int mdio_addr; - const void *platform_data; +struct cgroup_cls_state { + struct cgroup_subsys_state css; + u32 classid; }; -struct trace_event_data_offsets_mdio_access {}; - -struct mdio_bus_stat_attr { - int addr; - unsigned int field_offset; +struct update_classid_context { + u32 classid; + unsigned int batch; }; -struct component_ops { - int (*bind)(struct device *, struct device *, void *); - void (*unbind)(struct device *, struct device *, void *); +enum tc_fifo_command { + TC_FIFO_REPLACE = 0, + TC_FIFO_DESTROY = 1, + TC_FIFO_STATS = 2, }; -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, +struct tc_fifo_qopt { + __u32 limit; }; -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 tc_qopt_offload_stats { + struct gnet_stats_basic_sync *bstats; + struct gnet_stats_queue *qstats; }; -typedef u32 usb_port_location_t; - -struct usb_dev_state; - -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; - enum usb_device_state state; - struct kernfs_node *state_kn; - usb_port_location_t location; - struct mutex status_lock; - u32 over_current_count; - u8 portnum; - u32 quirks; - unsigned int early_stop: 1; - unsigned int ignore_event: 1; - unsigned int is_superspeed: 1; - unsigned int usb3_lpm_u1_permit: 1; - unsigned int usb3_lpm_u2_permit: 1; +struct tc_fifo_qopt_offload { + enum tc_fifo_command command; + u32 handle; + u32 parent; + union { + struct tc_qopt_offload_stats stats; + }; }; -struct usb_hub_status { - __le16 wHubStatus; - __le16 wHubChange; +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, }; -struct usb_port_status { - __le16 wPortStatus; - __le16 wPortChange; - __le32 dwExtPortStatus; +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, }; -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; +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 driver_attribute { - struct attribute attr; - ssize_t (*show)(struct device_driver *, char *); - ssize_t (*store)(struct device_driver *, const char *, size_t); +struct tsinfo_reply_data { + struct ethnl_reply_data base; + struct ethtool_ts_info ts_info; }; -enum serio_event_type { - SERIO_RESCAN_PORT = 0, - SERIO_RECONNECT_PORT = 1, - SERIO_RECONNECT_SUBTREE = 2, - SERIO_REGISTER_PORT = 3, - SERIO_ATTACH_DRIVER = 4, -}; +typedef const char (* const ethnl_string_array_t)[32]; -struct serio_event { - enum serio_event_type type; - void *object; - struct module *owner; - struct list_head node; +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, }; -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); +enum { + LWTUNNEL_XMIT_DONE = 0, + LWTUNNEL_XMIT_CONTINUE = 256, }; -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 mmpin { + struct user_struct *user; + unsigned int num_pg; }; -struct cpuidle_driver_kobj { - struct cpuidle_driver *drv; - struct completion kobj_unregister; - struct kobject kobj; +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 cpuidle_device_kobj { - struct cpuidle_device *dev; - struct completion kobj_unregister; - struct kobject kobj; +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 cpuidle_driver_attr { - struct attribute attr; - ssize_t (*show)(struct cpuidle_driver *, char *); - ssize_t (*store)(struct cpuidle_driver *, const char *, size_t); +struct ip_fraglist_iter { + struct sk_buff *frag; + struct iphdr *iph; + int offset; + unsigned int hlen; }; -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 ip_reply_arg { + struct kvec iov[1]; + int flags; + __wsum csum; + int csumoffset; + int bound_dev_if; + u8 tos; + kuid_t uid; }; -struct cpuidle_attr { - struct attribute attr; - ssize_t (*show)(struct cpuidle_device *, char *); - ssize_t (*store)(struct cpuidle_device *, const char *, size_t); +struct ip_options_data { + struct ip_options_rcu opt; + char data[40]; }; -struct efivar_operations; - -struct efivars { - struct kset *kset; - const struct efivar_operations *ops; +struct icmp_err { + int errno; + unsigned int fatal: 1; }; -typedef efi_status_t efi_query_variable_store_t(u32, unsigned long, bool); - -struct efivar_operations { - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_set_variable_t *set_variable_nonblocking; - efi_query_variable_store_t *query_variable_store; - efi_query_variable_info_t *query_variable_info; +struct icmp_control { + enum skb_drop_reason (*handler)(struct sk_buff *); + short error; }; -typedef u16 ucs2_char_t; +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 sd_flow_limit; +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 softnet_data { - struct list_head poll_list; - struct sk_buff_head process_queue; - unsigned int processed; - unsigned int time_squeeze; - struct softnet_data *rps_ipi_list; - bool in_net_rx_action; - bool in_napi_threaded_poll; - struct sd_flow_limit __attribute__((btf_type_tag("rcu"))) *flow_limit; - struct Qdisc *output_queue; - struct Qdisc **output_queue_tailp; - struct sk_buff *completion_queue; - struct { - u16 recursion; - u8 more; - u8 skip_txqueue; - } xmit; - long: 0; - unsigned int input_queue_head; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - call_single_data_t csd; - struct softnet_data *rps_ipi_next; - unsigned int cpu; - unsigned int input_queue_tail; - unsigned int received_rps; - unsigned int dropped; - struct sk_buff_head input_pkt_queue; - struct napi_struct backlog; - long: 64; - long: 64; - spinlock_t defer_lock; - int defer_count; - int defer_ipi_scheduled; - struct sk_buff *defer_list; - long: 64; - long: 64; - long: 64; - call_single_data_t defer_csd; - long: 64; - long: 64; - long: 64; - long: 64; +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, }; -struct cpu_rmap { - struct kref refcount; - u16 size; - void **obj; - struct { - u16 index; - u16 dist; - } near[0]; +union nf_inet_addr { + __u32 all[4]; + __be32 ip; + __be32 ip6[4]; + struct in_addr in; + struct in6_addr in6; }; -struct udp_tunnel_info { - unsigned short type; - sa_family_t sa_family; - __be16 port; - u8 hw_priv; +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; }; -struct udp_tunnel_nic_shared { - struct udp_tunnel_nic *udp_tunnel_nic_info; - struct list_head devices; +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 bpf_xdp_link { - struct bpf_link link; - struct net_device *dev; - int flags; +struct nf_conntrack_tuple { + struct nf_conntrack_man src; + struct { + union nf_inet_addr u3; + union { + __be16 all; + struct { + __be16 port; + } tcp; + struct { + __be16 port; + } udp; + struct { + u_int8_t type; + u_int8_t code; + } icmp; + struct { + __be16 port; + } dccp; + struct { + __be16 port; + } sctp; + struct { + __be16 key; + } gre; + } u; + u_int8_t protonum; + struct {} __nfct_hash_offsetend; + u_int8_t dir; + } dst; }; -struct ib_device; +struct nf_conntrack_tuple_hash { + struct hlist_nulls_node hnnode; + struct nf_conntrack_tuple tuple; +}; -struct devlink; +typedef u64 u_int64_t; -enum devlink_port_type { - DEVLINK_PORT_TYPE_NOTSET = 0, - DEVLINK_PORT_TYPE_AUTO = 1, - DEVLINK_PORT_TYPE_ETH = 2, - DEVLINK_PORT_TYPE_IB = 3, +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 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 ip_ct_sctp { + enum sctp_conntrack state; + __be32 vtag[2]; + u8 init[2]; + u8 last_dir; + u8 flags; }; -struct devlink_port_phys_attrs { - u32 port_number; - u32 split_subport_number; -}; +typedef u32 u_int32_t; -struct devlink_port_pci_pf_attrs { - u32 controller; - u16 pf; - u8 external: 1; +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 devlink_port_pci_vf_attrs { - u32 controller; - u16 pf; - u16 vf; - u8 external: 1; +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 devlink_port_pci_sf_attrs { - u32 controller; - u32 sf; - u16 pf; - u8 external: 1; +struct nf_ct_udp { + unsigned long stream_ts; }; -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 nf_ct_gre { + unsigned int stream_timeout; + unsigned int timeout; }; -struct devlink_linecard; +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 devlink_port_ops; +struct nf_ct_ext; -struct devlink_rate; +struct nf_conn { + struct nf_conntrack ct_general; + spinlock_t lock; + u32 timeout; + struct nf_conntrack_tuple_hash tuplehash[2]; + unsigned long status; + possible_net_t ct_net; + struct hlist_node nat_bysource; + struct {} __nfct_init_offset; + struct nf_conn *master; + struct nf_ct_ext *ext; + union nf_conntrack_proto proto; +}; -struct devlink_port { - struct list_head list; - struct list_head region_list; - struct devlink *devlink; - const struct devlink_port_ops *ops; - unsigned int index; - spinlock_t type_lock; - enum devlink_port_type type; - enum devlink_port_type desired_type; - union { - struct { - struct net_device *netdev; - int ifindex; - char ifname[16]; - } type_eth; - struct { - struct ib_device *ibdev; - } type_ib; - }; - struct devlink_port_attrs attrs; - u8 attrs_set: 1; - u8 switch_port: 1; - u8 registered: 1; - u8 initialized: 1; - struct delayed_work type_warn_dw; - struct list_head reporter_list; - struct devlink_rate *devlink_rate; - struct devlink_linecard *linecard; +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; }; -enum devlink_port_fn_state { - DEVLINK_PORT_FN_STATE_INACTIVE = 0, - DEVLINK_PORT_FN_STATE_ACTIVE = 1, +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; }; -enum devlink_port_fn_opstate { - DEVLINK_PORT_FN_OPSTATE_DETACHED = 0, - DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1, +struct icmp_extobj_hdr { + __be16 length; + __u8 class_num; + __u8 class_type; }; -struct devlink_port_ops { - int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *); - int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); - int (*port_type_set)(struct devlink_port *, enum devlink_port_type); - int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); - int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); - int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); - int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); - int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *); - int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); - int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *); - int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); - int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); +struct icmp_ext_hdr { + __u8 reserved1: 4; + __u8 version: 4; + __u8 reserved2; + __sum16 checksum; }; -enum devlink_rate_type { - DEVLINK_RATE_TYPE_LEAF = 0, - DEVLINK_RATE_TYPE_NODE = 1, +struct icmp_ext_echo_ctype3_hdr { + __be16 afi; + __u8 addrlen; + __u8 reserved; }; -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; +struct icmp_ext_echo_iio { + struct icmp_extobj_hdr extobj_hdr; union { - struct devlink_port *devlink_port; + char name[16]; + __be32 ifindex; struct { - char *name; - refcount_t refcnt; - }; - }; - u32 tx_priority; - u32 tx_weight; -}; - -struct sd_flow_limit { - u64 count; - unsigned int num_buckets; - unsigned int history_head; - u16 history[128]; - u8 buckets[0]; + struct icmp_ext_echo_ctype3_hdr ctype3_hdr; + union { + __be32 ipv4_addr; + struct in6_addr ipv6_addr; + } ip_addr; + } addr; + } ident; }; -struct rps_sock_flow_table { - u32 mask; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 ents[0]; +struct sk_psock_progs { + struct bpf_prog *msg_parser; + struct bpf_prog *stream_parser; + struct bpf_prog *stream_verdict; + struct bpf_prog *skb_verdict; }; -enum xps_map_type { - XPS_CPUS = 0, - XPS_RXQS = 1, - XPS_MAPS_MAX = 2, +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; }; -enum qdisc_state_t { - __QDISC_STATE_SCHED = 0, - __QDISC_STATE_DEACTIVATED = 1, - __QDISC_STATE_MISSED = 2, - __QDISC_STATE_DRAINING = 3, -}; +struct strparser; -enum { - SCM_TSTAMP_SND = 0, - SCM_TSTAMP_SCHED = 1, - SCM_TSTAMP_ACK = 2, +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 *); }; -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, +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; }; -enum netdev_offload_xstats_type { - NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, +struct sk_psock_work_state { + u32 len; + u32 off; }; -enum bpf_xdp_mode { - XDP_MODE_SKB = 0, - XDP_MODE_DRV = 1, - XDP_MODE_HW = 2, - __MAX_XDP_MODE = 3, -}; +struct sk_msg; -enum { - IF_OPER_UNKNOWN = 0, - IF_OPER_NOTPRESENT = 1, - IF_OPER_DOWN = 2, - IF_OPER_LOWERLAYERDOWN = 3, - IF_OPER_TESTING = 4, - IF_OPER_DORMANT = 5, - IF_OPER_UP = 6, +struct 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 delayed_work work; + struct sock *sk_pair; + struct rcu_work rwork; }; -enum nf_dev_hooks { - NF_NETDEV_INGRESS = 0, - NF_NETDEV_EGRESS = 1, - NF_NETDEV_NUMHOOKS = 2, +struct sk_msg_sg { + u32 start; + u32 curr; + u32 end; + u32 size; + u32 copybreak; + unsigned long copy[1]; + struct scatterlist data[19]; }; -enum qdisc_state2_t { - __QDISC_STATE2_RUNNING = 0, +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 { - 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; + TCP_BPF_IPV4 = 0, + TCP_BPF_IPV6 = 1, + TCP_BPF_NUM_PROTS = 2, }; -struct netdev_net_notifier { - struct list_head list; - struct notifier_block *nb; +enum { + TCP_BPF_BASE = 0, + TCP_BPF_TX = 1, + TCP_BPF_RX = 2, + TCP_BPF_TXRX = 3, + TCP_BPF_NUM_CFGS = 4, }; -struct net_device_path_stack { - int num_paths; - struct net_device_path path[5]; +enum sk_psock_state_bits { + SK_PSOCK_TX_ENABLED = 0, + SK_PSOCK_RX_STRP_ENABLED = 1, }; -struct skb_checksum_ops { - __wsum (*update)(const void *, int, __wsum); - __wsum (*combine)(__wsum, __wsum, int, int); +enum __sk_action { + __SK_DROP = 0, + __SK_PASS = 1, + __SK_REDIRECT = 2, + __SK_NONE = 3, }; -struct netdev_nested_priv { - unsigned char flags; - void *data; +struct tx_work { + struct delayed_work work; + struct sock *sk; }; -struct netdev_notifier_offload_xstats_rd; +struct tls_rec; -struct netdev_notifier_offload_xstats_ru; +struct crypto_aead; -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 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 netdev_notifier_offload_xstats_rd { - struct rtnl_hw_stats64 stats; - bool used; +struct crypto_aead { + unsigned int authsize; + unsigned int reqsize; + struct crypto_tfm base; }; -struct netdev_notifier_offload_xstats_ru { - bool used; +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; }; -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; +struct cipher_context { + char iv[20]; + char rec_seq[8]; }; -typedef struct ifslave ifslave; - -struct ifbond { - __s32 bond_mode; - __s32 num_slaves; - __s32 miimon; +struct tls_crypto_info { + __u16 version; + __u16 cipher_type; }; -typedef struct ifbond ifbond; - -struct netdev_bonding_info { - ifslave slave; - ifbond master; +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 netdev_notifier_bonding_info { - struct netdev_notifier_info info; - struct netdev_bonding_info bonding_info; +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 netdev_notifier_changelowerstate_info { - struct netdev_notifier_info info; - void *lower_state_info; +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 netdev_notifier_pre_changeaddr_info { - struct netdev_notifier_info info; - const unsigned char *dev_addr; +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]; }; -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 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]; }; -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 *); +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 ipv6_params { - __s32 disable_ipv6; - __s32 autoconf; +struct tls_context { + struct tls_prot_info prot_info; + u8 tx_conf: 3; + u8 rx_conf: 3; + u8 zerocopy_sendfile: 1; + u8 rx_no_pad: 1; + int (*push_pending_record)(struct sock *, int); + void (*sk_write_space)(struct sock *); + void *priv_ctx_tx; + void *priv_ctx_rx; + struct net_device __attribute__((btf_type_tag("rcu"))) *netdev; + struct cipher_context tx; + struct cipher_context rx; + struct scatterlist *partially_sent_record; + u16 partially_sent_offset; + bool splicing_pages; + bool pending_open_record_frags; + struct mutex tx_lock; + unsigned long flags; + struct proto *sk_proto; + struct sock *sk; + void (*sk_destruct)(struct sock *); + union tls_crypto_context crypto_send; + union tls_crypto_context crypto_recv; + struct list_head list; + refcount_t refcount; + struct callback_head rcu; }; -struct ioam6_pernet_data { - struct mutex lock; - struct rhashtable namespaces; - struct rhashtable schemas; +enum { + IP6_FH_F_FRAG = 1, + IP6_FH_F_AUTH = 2, + IP6_FH_F_SKIP_RH = 4, }; -struct fib6_result; - -struct fib6_config; +struct gssx_name_attr; -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 gssx_name_attr_array { + u32 count; + struct gssx_name_attr *data; }; -struct fib6_result { - struct fib6_nh *nh; - struct fib6_info *f6i; - u32 fib6_flags; - u8 fib6_type; - struct rt6_info *rt6; -}; +typedef struct xdr_netobj gssx_buffer; -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 gssx_option; -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); +struct gssx_option_array { + u32 count; + struct gssx_option *data; }; -enum flowlabel_reflect { - FLOWLABEL_REFLECT_ESTABLISHED = 1, - FLOWLABEL_REFLECT_TCP_RESET = 2, - FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4, +struct gssx_name_attr { + gssx_buffer attr; + gssx_buffer value; + struct gssx_option_array extensions; }; -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 gssx_option { + gssx_buffer option; + gssx_buffer value; }; -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; -}; +typedef struct xdr_netobj utf8string; -struct seg6_bpf_srh_state { - struct ipv6_sr_hdr *srh; - u16 hdrlen; - bool valid; +struct gssx_call_ctx { + utf8string locale; + gssx_buffer server_ctx; + struct gssx_option_array options; }; -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; +typedef struct xdr_netobj gssx_OID; + +struct gssx_name { + gssx_buffer display_name; }; -struct seg6_local_lwt; +typedef struct gssx_name gssx_name; -struct seg6_local_lwtunnel_ops { - int (*build_state)(struct seg6_local_lwt *, const void *, struct netlink_ext_ack *); - void (*destroy_state)(struct seg6_local_lwt *); +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 seg6_action_desc { - int action; - unsigned long attrs; - unsigned long optattrs; - int (*input)(struct sk_buff *, struct seg6_local_lwt *); - int static_headroom; - struct seg6_local_lwtunnel_ops slwt_ops; +struct gssx_cred_element; + +struct gssx_cred_element_array { + u32 count; + struct gssx_cred_element *data; }; -struct bpf_lwt_prog { - struct bpf_prog *prog; - char *name; +struct gssx_cred { + gssx_name desired_name; + struct gssx_cred_element_array elements; + gssx_buffer cred_handle_reference; + u32 needs_release; }; -enum seg6_end_dt_mode { - DT_INVALID_MODE = -22, - DT_LEGACY_MODE = 0, - DT_VRF_MODE = 1, +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 seg6_end_dt_info { - enum seg6_end_dt_mode mode; - struct net *net; - int vrf_ifindex; - int vrf_table; - u16 family; +struct gssp_in_token { + struct page **pages; + unsigned int page_base; + unsigned int page_len; }; -struct seg6_flavors_info { - __u32 flv_ops; - __u8 lcblock_bits; - __u8 lcnode_func_bits; +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 pcpu_seg6_local_counters; +struct gssx_cb; -struct seg6_local_lwt { - int action; - struct ipv6_sr_hdr *srh; - int table; - struct in_addr nh4; - struct in6_addr nh6; - int iif; - int oif; - struct bpf_lwt_prog bpf; - struct seg6_end_dt_info dt_info; - struct seg6_flavors_info flv_info; - struct pcpu_seg6_local_counters __attribute__((btf_type_tag("percpu"))) *pcpu_counters; - int headroom; - struct seg6_action_desc *desc; - unsigned long parsed_optattrs; +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 pcpu_seg6_local_counters { - u64_stats_t packets; - u64_stats_t bytes; - u64_stats_t errors; - struct u64_stats_sync syncp; +struct gssx_cb { + u64 initiator_addrtype; + gssx_buffer initiator_address; + u64 acceptor_addrtype; + gssx_buffer acceptor_address; + gssx_buffer application_data; }; -struct seg6_action_param { - int (*parse)(struct nlattr **, struct seg6_local_lwt *, struct netlink_ext_ack *); - int (*put)(struct sk_buff *, struct seg6_local_lwt *); - int (*cmp)(struct seg6_local_lwt *, struct seg6_local_lwt *); - void (*destroy)(struct seg6_local_lwt *); +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 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, -}; +typedef void (*btf_trace_handshake_submit)(void *, const struct net *, const struct handshake_req *, const struct sock *); -enum { - SEG6_LOCAL_UNSPEC = 0, - SEG6_LOCAL_ACTION = 1, - SEG6_LOCAL_SRH = 2, - SEG6_LOCAL_TABLE = 3, - SEG6_LOCAL_NH4 = 4, - SEG6_LOCAL_NH6 = 5, - SEG6_LOCAL_IIF = 6, - SEG6_LOCAL_OIF = 7, - SEG6_LOCAL_BPF = 8, - SEG6_LOCAL_VRFTABLE = 9, - SEG6_LOCAL_COUNTERS = 10, - SEG6_LOCAL_FLAVORS = 11, - __SEG6_LOCAL_MAX = 12, -}; +typedef void (*btf_trace_handshake_submit_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -enum { - IP6_FH_F_FRAG = 1, - IP6_FH_F_AUTH = 2, - IP6_FH_F_SKIP_RH = 4, -}; +typedef void (*btf_trace_handshake_cancel)(void *, const struct net *, const struct handshake_req *, const struct sock *); -enum { - SEG6_LOCAL_FLV_OP_UNSPEC = 0, - SEG6_LOCAL_FLV_OP_PSP = 1, - SEG6_LOCAL_FLV_OP_USP = 2, - SEG6_LOCAL_FLV_OP_USD = 3, - SEG6_LOCAL_FLV_OP_NEXT_CSID = 4, - __SEG6_LOCAL_FLV_OP_MAX = 5, -}; +typedef void (*btf_trace_handshake_cancel_none)(void *, const struct net *, const struct handshake_req *, const struct sock *); -enum seg6_local_flv_action { - SEG6_LOCAL_FLV_ACT_UNSPEC = 0, - SEG6_LOCAL_FLV_ACT_END = 1, - SEG6_LOCAL_FLV_ACT_PSP = 2, - SEG6_LOCAL_FLV_ACT_USP = 3, - SEG6_LOCAL_FLV_ACT_USD = 4, - __SEG6_LOCAL_FLV_ACT_MAX = 5, -}; - -enum seg6_local_pktinfo { - SEG6_LOCAL_PKTINFO_NOHDR = 0, - SEG6_LOCAL_PKTINFO_SL_ZERO = 1, - SEG6_LOCAL_PKTINFO_SL_ONE = 2, - SEG6_LOCAL_PKTINFO_SL_MORE = 3, - __SEG6_LOCAL_PKTINFO_MAX = 4, -}; +typedef void (*btf_trace_handshake_cancel_busy)(void *, const struct net *, const struct handshake_req *, const struct sock *); -enum l3mdev_type { - L3MDEV_TYPE_UNSPEC = 0, - L3MDEV_TYPE_VRF = 1, - __L3MDEV_TYPE_MAX = 2, -}; +typedef void (*btf_trace_handshake_destruct)(void *, const struct net *, const struct handshake_req *, const struct sock *); -enum bpf_ret_code { - BPF_OK = 0, - BPF_DROP = 2, - BPF_REDIRECT = 7, - BPF_LWT_REROUTE = 128, - BPF_FLOW_DISSECTOR_CONTINUE = 129, -}; +typedef void (*btf_trace_handshake_complete)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -enum { - SEG6_LOCAL_BPF_PROG_UNSPEC = 0, - SEG6_LOCAL_BPF_PROG = 1, - SEG6_LOCAL_BPF_PROG_NAME = 2, - __SEG6_LOCAL_BPF_PROG_MAX = 3, -}; +typedef void (*btf_trace_handshake_notify_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -enum { - SEG6_LOCAL_CNT_UNSPEC = 0, - SEG6_LOCAL_CNT_PAD = 1, - SEG6_LOCAL_CNT_PACKETS = 2, - SEG6_LOCAL_CNT_BYTES = 3, - SEG6_LOCAL_CNT_ERRORS = 4, - __SEG6_LOCAL_CNT_MAX = 5, -}; +typedef void (*btf_trace_handshake_cmd_accept)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -enum { - SEG6_LOCAL_FLV_UNSPEC = 0, - SEG6_LOCAL_FLV_OPERATION = 1, - SEG6_LOCAL_FLV_LCBLOCK_BITS = 2, - SEG6_LOCAL_FLV_LCNODE_FN_BITS = 3, - __SEG6_LOCAL_FLV_MAX = 4, -}; +typedef void (*btf_trace_handshake_cmd_accept_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -struct seg6_local_counters { - __u64 packets; - __u64 bytes; - __u64 errors; -}; +typedef void (*btf_trace_handshake_cmd_done)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -typedef unsigned int OM_uint32; +typedef void (*btf_trace_handshake_cmd_done_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -typedef int (*lookup_by_table_id_t)(struct net *, u32); +typedef void (*btf_trace_tls_contenttype)(void *, const struct sock *, unsigned char); -struct l3mdev_handler { - lookup_by_table_id_t dev_lookup; -}; +typedef void (*btf_trace_tls_alert_send)(void *, const struct sock *, unsigned char, unsigned char); -struct dma_sgt_handle { - struct sg_table sgt; - struct page **pages; -}; +typedef void (*btf_trace_tls_alert_recv)(void *, const struct sock *, unsigned char, unsigned char); -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 trace_event_raw_handshake_event_class { + struct trace_entry ent; + const void *req; + const void *sk; + unsigned int netns_ino; + char __data[0]; }; -struct dma_devres { - size_t size; - void *vaddr; - dma_addr_t dma_handle; - unsigned long attrs; +struct trace_event_raw_handshake_error_class { + struct trace_entry ent; + const void *req; + const void *sk; + int err; + unsigned int netns_ino; + char __data[0]; }; -struct clock_read_data { - u64 epoch_ns; - u64 epoch_cyc; - u64 sched_clock_mask; - u64 (*read_sched_clock)(); - u32 mult; - u32 shift; +struct trace_event_raw_handshake_complete { + struct trace_entry ent; + const void *req; + const void *sk; + int status; + unsigned int netns_ino; + char __data[0]; }; -struct clock_data { - seqcount_latch_t seq; - struct clock_read_data read_data[2]; - ktime_t wrap_kt; - unsigned long rate; - u64 (*actual_read_sched_clock)(); +struct trace_event_raw_handshake_fd_class { + struct trace_entry ent; + const void *req; + const void *sk; + int fd; + unsigned int netns_ino; + char __data[0]; }; -struct syscore_ops { - struct list_head node; - int (*suspend)(); - void (*resume)(); - void (*shutdown)(); +struct trace_event_raw_tls_contenttype { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + unsigned int netns_ino; + unsigned long type; + char __data[0]; }; -struct rchan_percpu_buf_dispatcher { - struct rchan_buf *buf; - struct dentry *dentry; +struct trace_event_raw_handshake_alert_class { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + unsigned int netns_ino; + unsigned long level; + unsigned long description; + char __data[0]; }; -enum dynevent_type { - DYNEVENT_TYPE_SYNTH = 1, - DYNEVENT_TYPE_KPROBE = 2, - DYNEVENT_TYPE_NONE = 3, -}; +struct trace_event_data_offsets_handshake_event_class {}; -struct dynevent_cmd; +struct trace_event_data_offsets_handshake_fd_class {}; -typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *); +struct trace_event_data_offsets_handshake_error_class {}; -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 trace_event_data_offsets_handshake_alert_class {}; -struct dynevent_arg { - const char *str; - char separator; -}; +struct trace_event_data_offsets_handshake_complete {}; -typedef int (*dynevent_check_arg_fn_t)(void *); +struct trace_event_data_offsets_tls_contenttype {}; -struct dynevent_arg_pair { - const char *lhs; - const char *rhs; - char operator; - char separator; +struct async_domain { + struct list_head pending; + unsigned int registered: 1; }; -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: 64; +enum state { + Start = 0, + Collect = 1, + GotHeader = 2, + SkipIt = 3, + GotName = 4, + CopyFile = 5, + GotSymlink = 6, + Reset = 7, }; -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 hash { + int ino; + int minor; + int major; + umode_t mode; + struct hash *next; + char name[4098]; }; -struct bpf_lpm_trie_key { - __u32 prefixlen; - __u8 data[0]; +enum umh_disable_depth { + UMH_ENABLED = 0, + UMH_FREEZING = 1, + UMH_DISABLED = 2, }; -struct simple_xattr { - struct rb_node rb_node; - char *name; - size_t size; - char value[0]; +struct dir_entry { + struct list_head list; + time64_t mtime; + char name[0]; }; -struct xattr_name { - char name[256]; +typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *)); + +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 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 platform_s2idle_ops { + int (*begin)(); + int (*prepare)(); + int (*prepare_late)(); + void (*check)(); + bool (*wake)(); + void (*restore_early)(); + void (*restore)(); + void (*end)(); }; enum { - MBE_REFERENCED_B = 0, - MBE_REUSABLE_B = 1, + TEST_NONE = 0, + TEST_CORE = 1, + TEST_CPUS = 2, + TEST_PLATFORM = 3, + TEST_DEVICES = 4, + TEST_FREEZER = 5, + __TEST_AFTER_LAST = 6, }; -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 swait_queue { + struct task_struct *task; + struct list_head task_list; }; -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 void (*btf_trace_module_load)(void *, struct module *); -struct core_name { - char *corename; - int used; - int size; -}; +typedef void (*btf_trace_module_free)(void *, struct module *); -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, -} __attribute__((mode(byte))); +typedef void (*btf_trace_module_get)(void *, struct module *, unsigned long); -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, -} __attribute__((mode(byte))); +typedef void (*btf_trace_module_put)(void *, struct module *, unsigned long); -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, -} __attribute__((mode(byte))); +typedef void (*btf_trace_module_request)(void *, char *, bool, unsigned long); -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, -} __attribute__((mode(byte))); +struct latch_tree_root { + seqcount_latch_t seq; + struct rb_root tree[2]; +}; -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, -} __attribute__((mode(byte))); +struct mod_tree_root { + struct latch_tree_root root; + unsigned long addr_min; + unsigned long addr_max; +}; -struct ext4_orphan_block_tail { - __le32 ob_magic; - __le32 ob_checksum; +enum mod_license { + NOT_GPL_ONLY = 0, + GPL_ONLY = 1, }; -struct rpc_pipe_dir_object_ops; +struct symsearch { + const struct kernel_symbol *start; + const struct kernel_symbol *stop; + const s32 *crcs; + enum mod_license license; +}; -struct rpc_pipe_dir_object { - struct list_head pdo_head; - const struct rpc_pipe_dir_object_ops *pdo_ops; - void *pdo_data; +enum mod_mem_type { + MOD_TEXT = 0, + MOD_DATA = 1, + MOD_RODATA = 2, + MOD_RO_AFTER_INIT = 3, + MOD_INIT_TEXT = 4, + MOD_INIT_DATA = 5, + MOD_INIT_RODATA = 6, + MOD_MEM_NUM_TYPES = 7, + MOD_INVALID = -1, }; -struct idmap_legacy_upcalldata; +enum fail_dup_mod_reason { + FAIL_DUP_MOD_BECOMING = 0, + FAIL_DUP_MOD_LOAD = 1, +}; -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 trace_event_raw_module_load { + struct trace_entry ent; + unsigned int taints; + u32 __data_loc_name; + char __data[0]; }; -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 trace_event_raw_module_free { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; }; -struct idmap_msg { - __u8 im_type; - __u8 im_conv; - char im_name[128]; - __u32 im_id; - __u8 im_status; +struct trace_event_raw_module_refcnt { + struct trace_entry ent; + unsigned long ip; + int refcnt; + u32 __data_loc_name; + char __data[0]; }; -struct idmap_legacy_upcalldata { - struct rpc_pipe_msg pipe_msg; - struct idmap_msg idmap_msg; - struct key *authkey; - struct idmap *idmap; +struct trace_event_raw_module_request { + struct trace_entry ent; + unsigned long ip; + bool wait; + u32 __data_loc_name; + char __data[0]; }; -enum { - Opt_find_uid = 0, - Opt_find_gid = 1, - Opt_find_user = 2, - Opt_find_group = 3, - Opt_find_err = 4, +struct module_use { + struct list_head source_list; + struct list_head target_list; + struct module *source; + struct module *target; }; -struct user_key_payload { - struct callback_head rcu; - unsigned short datalen; - long: 0; - char data[0]; +struct mod_initfree { + struct llist_node node; + void *init_text; + void *init_data; + void *init_rodata; }; -struct nlm_reboot { - char *mon; - unsigned int len; - u32 state; - struct nsm_private priv; +struct idempotent { + const void *cookie; + struct hlist_node entry; + struct completion complete; + int ret; }; -enum aafs_ns_type { - AAFS_NS_DIR = 0, - AAFS_NS_PROFS = 1, - AAFS_NS_NS = 2, - AAFS_NS_RAW_DATA = 3, - AAFS_NS_LOAD = 4, - AAFS_NS_REPLACE = 5, - AAFS_NS_REMOVE = 6, - AAFS_NS_REVISION = 7, - AAFS_NS_COUNT = 8, - AAFS_NS_MAX_COUNT = 9, - AAFS_NS_SIZE = 10, - AAFS_NS_MAX_SIZE = 11, - AAFS_NS_OWNER = 12, - AAFS_NS_SIZEOF = 13, +struct trace_event_data_offsets_module_load { + u32 name; }; -enum { - AAFS_LOADDATA_ABI = 0, - AAFS_LOADDATA_REVISION = 1, - AAFS_LOADDATA_HASH = 2, - AAFS_LOADDATA_DATA = 3, - AAFS_LOADDATA_COMPRESSED_SIZE = 4, - AAFS_LOADDATA_DIR = 5, - AAFS_LOADDATA_NDENTS = 6, +struct trace_event_data_offsets_module_free { + u32 name; }; -enum aafs_prof_type { - AAFS_PROF_DIR = 0, - AAFS_PROF_PROFS = 1, - AAFS_PROF_NAME = 2, - AAFS_PROF_MODE = 3, - AAFS_PROF_ATTACH = 4, - AAFS_PROF_HASH = 5, - AAFS_PROF_RAW_DATA = 6, - AAFS_PROF_RAW_HASH = 7, - AAFS_PROF_RAW_ABI = 8, - AAFS_PROF_SIZEOF = 9, +struct trace_event_data_offsets_module_refcnt { + u32 name; }; -struct aa_loaddata { - struct kref count; - struct list_head list; - struct work_struct work; - struct dentry *dents[6]; - struct aa_ns *ns; - char *name; - size_t size; - size_t compressed_size; - long revision; - int abi; - unsigned char *hash; - char *data; +struct trace_event_data_offsets_module_request { + u32 name; }; -struct multi_transaction { - struct kref count; - ssize_t size; - char data[0]; +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 rawdata_f_data { - struct aa_loaddata *loaddata; +struct load_info { + const char *name; + struct module *mod; + Elf64_Ehdr *hdr; + unsigned long len; + Elf64_Shdr *sechdrs; + char *secstrings; + char *strtab; + unsigned long symoffs; + unsigned long stroffs; + unsigned long init_typeoffs; + unsigned long core_typeoffs; + bool sig_ok; + unsigned long mod_kallsyms_init_off; + struct { + unsigned int sym; + unsigned int str; + unsigned int mod; + unsigned int vers; + unsigned int info; + unsigned int pcpu; + } index; }; -struct aa_data { - char *key; - u32 size; - char *data; - struct rhash_head head; +enum { + CGRP_NOTIFY_ON_RELEASE = 0, + CGRP_CPUSET_CLONE_CHILDREN = 1, + CGRP_FREEZE = 2, + CGRP_FROZEN = 3, + CGRP_KILL = 4, }; -struct path_cond { - kuid_t uid; - umode_t mode; +enum { + Blktrace_setup = 1, + Blktrace_running = 2, + Blktrace_stopped = 3, }; -struct aa_revision { - struct aa_ns *ns; - long last_read; +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 { - REQ_FSEQ_PREFLUSH = 1, - REQ_FSEQ_DATA = 2, - REQ_FSEQ_POSTFLUSH = 4, - REQ_FSEQ_DONE = 8, - REQ_FSEQ_ACTIONS = 7, - FLUSH_PENDING_TIMEOUT = 1250, +enum blktrace_notify { + __BLK_TN_PROCESS = 0, + __BLK_TN_TIMESTAMP = 1, + __BLK_TN_MESSAGE = 2, + __BLK_TN_CGROUP = 256, }; -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 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, }; -enum { - IOU_F_TWQ_LAZY_WAKE = 1, +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, }; -struct io_notif_data { - struct file *file; - struct ubuf_info uarg; - unsigned long account_pages; - bool zc_report; - bool zc_used; - bool zc_copied; +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, }; -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 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 acpi_mem_mapping { - acpi_physical_address physical_address; - u8 *logical_address; - acpi_size length; - struct acpi_mem_mapping *next_mm; +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 acpi_pnp_device_id { - u32 length; - char *string; +struct blk_io_trace_remap { + __be32 device_from; + __be32 device_to; + __be64 sector_from; }; -struct acpi_pnp_device_id_list { - u32 count; - u32 list_size; - struct acpi_pnp_device_id ids[0]; +typedef void blk_log_action_t(struct trace_iterator *, const char *, bool); + +struct trace_probe_log { + const char *subsystem; + const char **argv; + int argc; + int index; }; -struct acpi_data_table_mapping { - void *pointer; +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 acpi_exception_info { - char *name; +enum { + TP_ERR_FILE_NOT_FOUND = 0, + TP_ERR_NO_REGULAR_FILE = 1, + TP_ERR_BAD_REFCNT = 2, + TP_ERR_REFCNT_OPEN_BRACE = 3, + TP_ERR_BAD_REFCNT_SUFFIX = 4, + TP_ERR_BAD_UPROBE_OFFS = 5, + TP_ERR_BAD_MAXACT_TYPE = 6, + TP_ERR_BAD_MAXACT = 7, + TP_ERR_MAXACT_TOO_BIG = 8, + TP_ERR_BAD_PROBE_ADDR = 9, + TP_ERR_NON_UNIQ_SYMBOL = 10, + TP_ERR_BAD_RETPROBE = 11, + TP_ERR_NO_TRACEPOINT = 12, + TP_ERR_BAD_ADDR_SUFFIX = 13, + TP_ERR_NO_GROUP_NAME = 14, + TP_ERR_GROUP_TOO_LONG = 15, + TP_ERR_BAD_GROUP_NAME = 16, + TP_ERR_NO_EVENT_NAME = 17, + TP_ERR_EVENT_TOO_LONG = 18, + TP_ERR_BAD_EVENT_NAME = 19, + TP_ERR_EVENT_EXIST = 20, + TP_ERR_RETVAL_ON_PROBE = 21, + TP_ERR_NO_RETVAL = 22, + TP_ERR_BAD_STACK_NUM = 23, + TP_ERR_BAD_ARG_NUM = 24, + TP_ERR_BAD_VAR = 25, + TP_ERR_BAD_REG_NAME = 26, + TP_ERR_BAD_MEM_ADDR = 27, + TP_ERR_BAD_IMM = 28, + TP_ERR_IMMSTR_NO_CLOSE = 29, + TP_ERR_FILE_ON_KPROBE = 30, + TP_ERR_BAD_FILE_OFFS = 31, + TP_ERR_SYM_ON_UPROBE = 32, + TP_ERR_TOO_MANY_OPS = 33, + TP_ERR_DEREF_NEED_BRACE = 34, + TP_ERR_BAD_DEREF_OFFS = 35, + TP_ERR_DEREF_OPEN_BRACE = 36, + TP_ERR_COMM_CANT_DEREF = 37, + TP_ERR_BAD_FETCH_ARG = 38, + TP_ERR_ARRAY_NO_CLOSE = 39, + TP_ERR_BAD_ARRAY_SUFFIX = 40, + TP_ERR_BAD_ARRAY_NUM = 41, + TP_ERR_ARRAY_TOO_BIG = 42, + TP_ERR_BAD_TYPE = 43, + TP_ERR_BAD_STRING = 44, + TP_ERR_BAD_SYMSTRING = 45, + TP_ERR_BAD_BITFIELD = 46, + TP_ERR_ARG_NAME_TOO_LONG = 47, + TP_ERR_NO_ARG_NAME = 48, + TP_ERR_BAD_ARG_NAME = 49, + TP_ERR_USED_ARG_NAME = 50, + TP_ERR_ARG_TOO_LONG = 51, + TP_ERR_NO_ARG_BODY = 52, + TP_ERR_BAD_INSN_BNDRY = 53, + TP_ERR_FAIL_REG_PROBE = 54, + TP_ERR_DIFF_PROBE_TYPE = 55, + TP_ERR_DIFF_ARG_TYPE = 56, + TP_ERR_SAME_PROBE = 57, + TP_ERR_NO_EVENT_INFO = 58, + TP_ERR_BAD_ATTACH_EVENT = 59, + TP_ERR_BAD_ATTACH_ARG = 60, + TP_ERR_NO_EP_FILTER = 61, + TP_ERR_NOSUP_BTFARG = 62, + TP_ERR_NO_BTFARG = 63, + TP_ERR_NO_BTF_ENTRY = 64, + TP_ERR_BAD_VAR_ARGS = 65, + TP_ERR_NOFENTRY_ARGS = 66, + TP_ERR_DOUBLE_ARGS = 67, + TP_ERR_ARGS_2LONG = 68, + TP_ERR_ARGIDX_2BIG = 69, + TP_ERR_NO_PTR_STRCT = 70, + TP_ERR_NOSUP_DAT_ARG = 71, + TP_ERR_BAD_HYPHEN = 72, + TP_ERR_NO_BTF_FIELD = 73, + TP_ERR_BAD_BTF_TID = 74, + TP_ERR_BAD_TYPE4STR = 75, }; -struct ccu_mux { - u32 enable; - struct ccu_mux_internal mux; - struct ccu_common common; +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, }; -struct ccu_mux_nb { - struct notifier_block clk_nb; - struct ccu_common *common; - struct ccu_mux_internal *cm; - u32 delay_us; - u8 bypass_index; - u8 original_index; +enum probe_print_type { + PROBE_PRINT_NORMAL = 0, + PROBE_PRINT_RETURN = 1, + PROBE_PRINT_EVENT = 2, }; -typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *); +struct event_file_link { + struct trace_event_file *file; + struct list_head list; +}; -typedef void (*btf_trace_remove_device_from_group)(void *, int, struct device *); +struct fetch_insn; -typedef void (*btf_trace_attach_device_to_domain)(void *, struct device *); +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; +}; -typedef void (*btf_trace_map)(void *, unsigned long, phys_addr_t, size_t); +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 void (*btf_trace_unmap)(void *, unsigned long, size_t, size_t); +struct traceprobe_parse_context { + struct trace_event_call *event; + const char *funcname; + const struct btf_type *proto; + const struct btf_param *params; + s32 nr_params; + struct btf *btf; + const struct btf_type *last_type; + u32 last_bitoffs; + u32 last_bitsize; + unsigned int flags; + int offset; +}; -typedef void (*btf_trace_io_page_fault)(void *, struct device *, unsigned long, int); +struct trace_probe_event; -struct trace_event_raw_iommu_group_event { - struct trace_entry ent; - int gid; - u32 __data_loc_device; - char __data[0]; +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_event_raw_iommu_device_event { - struct trace_entry ent; - u32 __data_loc_device; - char __data[0]; +struct trace_uprobe_filter { + rwlock_t rwlock; + int nr_systemwide; + struct list_head perf_events; }; -struct trace_event_raw_map { - struct trace_entry ent; - u64 iova; - u64 paddr; - size_t size; - char __data[0]; +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 trace_event_raw_unmap { - struct trace_entry ent; - u64 iova; - size_t size; - size_t unmapped_size; - char __data[0]; -}; +struct bpf_prog_offload_ops; -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 bpf_offload_dev { + const struct bpf_prog_offload_ops *ops; + struct list_head netdevs; + void *priv; }; -struct trace_event_data_offsets_iommu_group_event { - u32 device; +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 *); }; -struct trace_event_data_offsets_iommu_device_event { - u32 device; +enum xdp_rx_metadata { + XDP_METADATA_KFUNC_RX_TIMESTAMP = 0, + XDP_METADATA_KFUNC_RX_HASH = 1, + MAX_XDP_METADATA_KFUNC = 2, }; -struct trace_event_data_offsets_iommu_error { - u32 device; - u32 driver; +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; }; -struct trace_event_data_offsets_map {}; +struct rhlist_head { + struct rhash_head rhead; + struct rhlist_head __attribute__((btf_type_tag("rcu"))) *next; +}; -struct trace_event_data_offsets_unmap {}; +typedef struct ns_common *ns_get_path_helper_t(void *); -enum pce_status { - PCE_STATUS_NONE = 0, - PCE_STATUS_ACQUIRED = 1, - PCE_STATUS_PREPARED = 2, - PCE_STATUS_ENABLED = 3, - PCE_STATUS_ERROR = 4, +struct ns_get_path_bpf_prog_args { + struct bpf_prog *prog; + struct bpf_prog_info *info; }; -struct pm_clock_entry { - struct list_head node; - char *con_id; - struct clk *clk; - enum pce_status status; - bool enabled_when_prepared; +struct ns_get_path_bpf_map_args { + struct bpf_offloaded_map *offmap; + struct bpf_map_info *info; }; -struct pm_clk_notifier_block { - struct notifier_block nb; - struct dev_pm_domain *pm_domain; - char *con_ids[0]; +enum page_walk_lock { + PGWALK_RDLOCK = 0, + PGWALK_WRLOCK = 1, + PGWALK_WRLOCK_VERIFY = 2, }; -struct btt; +struct mm_walk; -struct nd_btt { - struct device dev; - struct nd_namespace_common *ndns; - struct btt *btt; - unsigned long lbasize; - u64 size; - uuid_t *uuid; - int id; - int initial_offset; - u16 version_major; - u16 version_minor; +struct mm_walk_ops { + int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); + int (*p4d_entry)(p4d_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pte_hole)(unsigned long, unsigned long, int, struct mm_walk *); + int (*hugetlb_entry)(pte_t *, unsigned long, unsigned long, unsigned long, struct mm_walk *); + int (*test_walk)(unsigned long, unsigned long, struct mm_walk *); + int (*pre_vma)(unsigned long, unsigned long, struct mm_walk *); + void (*post_vma)(struct mm_walk *); + enum page_walk_lock walk_lock; }; -struct btt { - struct gendisk *btt_disk; - struct list_head arena_list; - struct dentry *debugfs_dir; - struct nd_btt *nd_btt; - u64 nlba; - unsigned long long rawsize; - u32 lbasize; - u32 sector_size; - struct nd_region *nd_region; - struct mutex init_lock; - int init_state; - int num_arenas; - struct badblocks *phys_bb; +enum page_walk_action { + ACTION_SUBTREE = 0, + ACTION_CONTINUE = 1, + ACTION_AGAIN = 2, }; -struct nd_gen_sb { - char reserved[4088]; - __le64 checksum; +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 btt_sb { - u8 signature[16]; - u8 uuid[16]; - u8 parent_uuid[16]; - __le32 flags; - __le16 version_major; - __le16 version_minor; - __le32 external_lbasize; - __le32 external_nlba; - __le32 internal_lbasize; - __le32 internal_nlba; - __le32 nfree; - __le32 infosize; - __le64 nextoff; - __le64 dataoff; - __le64 mapoff; - __le64 logoff; - __le64 info2off; - u8 padding[3968]; - __le64 checksum; +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, }; -struct hd_geometry { - unsigned char heads; - unsigned char sectors; - unsigned short cylinders; - unsigned long start; +struct swap_iocb { + struct kiocb iocb; + struct bio_vec bvec[32]; + int pages; + int len; }; -enum scsi_device_event { - SDEV_EVT_MEDIA_CHANGE = 1, - SDEV_EVT_INQUIRY_CHANGE_REPORTED = 2, - SDEV_EVT_CAPACITY_CHANGE_REPORTED = 3, - SDEV_EVT_SOFT_THRESHOLD_REACHED_REPORTED = 4, - SDEV_EVT_MODE_PARAMETER_CHANGE_REPORTED = 5, - SDEV_EVT_LUN_CHANGE_REPORTED = 6, - SDEV_EVT_ALUA_STATE_CHANGE_REPORTED = 7, - SDEV_EVT_POWER_ON_RESET_OCCURRED = 8, - SDEV_EVT_FIRST = 1, - SDEV_EVT_LAST = 8, - SDEV_EVT_MAXBITS = 9, +enum poll_time_type { + PT_TIMEVAL = 0, + PT_OLD_TIMEVAL = 1, + PT_TIMESPEC = 2, + PT_OLD_TIMESPEC = 3, }; -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 poll_table_entry { + struct file *filp; + __poll_t key; + wait_queue_entry_t wait; + wait_queue_head_t *wait_address; }; -enum usb_phy_type { - USB_PHY_TYPE_UNDEFINED = 0, - USB_PHY_TYPE_USB2 = 1, - USB_PHY_TYPE_USB3 = 2, -}; +struct poll_table_page; -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 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]; }; -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 poll_table_page { + struct poll_table_page *next; + struct poll_table_entry *entry; + struct poll_table_entry entries[0]; }; -enum usb_charger_type { - UNKNOWN_TYPE = 0, - SDP_TYPE = 1, - DCP_TYPE = 2, - CDP_TYPE = 3, - ACA_TYPE = 4, -}; +typedef struct { + unsigned long fds_bits[16]; +} __kernel_fd_set; -enum usb_charger_state { - USB_CHARGER_DEFAULT = 0, - USB_CHARGER_PRESENT = 1, - USB_CHARGER_ABSENT = 2, -}; +typedef __kernel_fd_set fd_set; -struct usb_cdc_union_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bMasterInterface0; - __u8 bSlaveInterface0; +struct poll_list { + struct poll_list *next; + int len; + struct pollfd entries[0]; }; -struct usb_cdc_country_functional_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 iCountryCodeRelDate; - __le16 wCountyCode0; +struct old_timeval32 { + old_time32_t tv_sec; + s32 tv_usec; }; -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 compat_sel_arg_struct { + compat_ulong_t n; + compat_uptr_t inp; + compat_uptr_t outp; + compat_uptr_t exp; + compat_uptr_t tvp; }; -struct usb_cdc_ether_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 iMACAddress; - __le32 bmEthernetStatistics; - __le16 wMaxSegmentSize; - __le16 wNumberMCFilters; - __u8 bNumberPowerFilters; -} __attribute__((packed)); +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 usb_cdc_call_mgmt_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bmCapabilities; - __u8 bDataInterface; +struct sigset_argpack { + sigset_t __attribute__((btf_type_tag("user"))) *p; + size_t size; }; -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 compat_sigset_argpack { + compat_uptr_t p; + compat_size_t size; +}; -struct usb_cdc_mdlm_detail_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bGuidDescriptorType; - __u8 bDetailData[0]; +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, }; -struct usb_cdc_ncm_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdNcmVersion; - __u8 bmNetworkCapabilities; -} __attribute__((packed)); +typedef __u16 Elf32_Half; -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)); +typedef __u32 Elf32_Addr; -struct usb_cdc_mbim_extended_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdMBIMExtendedVersion; - __u8 bMaxOutstandingCommandMessages; - __le16 wMTU; -} __attribute__((packed)); +typedef __u32 Elf32_Off; -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 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; }; -struct usb_otg; +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; +}; -struct usb_phy_io_ops; +typedef struct elf32_hdr Elf32_Ehdr; -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 memelfnote { + const char *name; + int type; + unsigned int datasz; + void *data; }; -struct usb_gadget; +typedef struct compat_siginfo compat_siginfo_t; -struct usb_otg { - u8 default_a; - struct phy *phy; - struct usb_phy *usb_phy; - struct usb_bus *host; - struct usb_gadget *gadget; - enum usb_otg_state state; - int (*set_host)(struct usb_otg *, struct usb_bus *); - int (*set_peripheral)(struct usb_otg *, struct usb_gadget *); - int (*set_vbus)(struct usb_otg *, bool); - int (*start_srp)(struct usb_otg *); - int (*start_hnp)(struct usb_otg *); -}; +struct elf_thread_core_info; -struct usb_phy_io_ops { - int (*read)(struct usb_phy *, u32); - int (*write)(struct usb_phy *, u32, u32); +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 set_config_request { - struct usb_device *udev; - int config; - struct work_struct work; - struct list_head node; +struct compat_elf_siginfo { + compat_int_t si_signo; + compat_int_t si_code; + compat_int_t si_errno; }; -struct api_context { - struct completion done; - int status; +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 usb_cdc_network_terminal_desc; +typedef compat_ulong_t compat_elf_greg_t; -struct usb_cdc_obex_desc; +typedef compat_elf_greg_t compat_elf_gregset_t[32]; -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 compat_elf_prstatus { + struct compat_elf_prstatus_common common; + compat_elf_gregset_t pr_reg; + compat_int_t pr_fpvalid; }; -struct usb_cdc_network_terminal_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bEntityId; - __u8 iName; - __u8 bChannelIndex; - __u8 bPhysicalInterface; +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 usb_cdc_obex_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdVersion; -} __attribute__((packed)); - -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 user_regset; -struct xhci_driver_data { - u64 quirks; - const char *firmware; +struct user_regset_view { + const char *name; + const struct user_regset *regsets; + unsigned int n; + u32 e_flags; + u16 e_machine; + u8 ei_osabi; }; -typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); +struct membuf; -typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long); +typedef int user_regset_get2_fn(struct task_struct *, const struct user_regset *, struct membuf); -typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long); +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 void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *); +typedef int user_regset_active_fn(struct task_struct *, const struct user_regset *); -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, -}; +typedef int user_regset_writeback_fn(struct task_struct *, const struct user_regset *, int); -enum hwmon_chip_attributes { - hwmon_chip_temp_reset_history = 0, - hwmon_chip_in_reset_history = 1, - hwmon_chip_curr_reset_history = 2, - hwmon_chip_power_reset_history = 3, - hwmon_chip_register_tz = 4, - hwmon_chip_update_interval = 5, - hwmon_chip_alarms = 6, - hwmon_chip_samples = 7, - hwmon_chip_curr_samples = 8, - hwmon_chip_in_samples = 9, - hwmon_chip_power_samples = 10, - hwmon_chip_temp_samples = 11, - hwmon_chip_beep_enable = 12, +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; }; -enum hwmon_temp_attributes { - hwmon_temp_enable = 0, - hwmon_temp_input = 1, - hwmon_temp_type = 2, - hwmon_temp_lcrit = 3, - hwmon_temp_lcrit_hyst = 4, - hwmon_temp_min = 5, - hwmon_temp_min_hyst = 6, - hwmon_temp_max = 7, - hwmon_temp_max_hyst = 8, - hwmon_temp_crit = 9, - hwmon_temp_crit_hyst = 10, - hwmon_temp_emergency = 11, - hwmon_temp_emergency_hyst = 12, - hwmon_temp_alarm = 13, - hwmon_temp_lcrit_alarm = 14, - hwmon_temp_min_alarm = 15, - hwmon_temp_max_alarm = 16, - hwmon_temp_crit_alarm = 17, - hwmon_temp_emergency_alarm = 18, - hwmon_temp_fault = 19, - hwmon_temp_offset = 20, - hwmon_temp_label = 21, - hwmon_temp_lowest = 22, - hwmon_temp_highest = 23, - hwmon_temp_reset_history = 24, - hwmon_temp_rated_min = 25, - hwmon_temp_rated_max = 26, - hwmon_temp_beep = 27, +struct membuf { + void *p; + size_t left; }; -enum hwmon_in_attributes { - hwmon_in_enable = 0, - hwmon_in_input = 1, - hwmon_in_min = 2, - hwmon_in_max = 3, - hwmon_in_lcrit = 4, - hwmon_in_crit = 5, - hwmon_in_average = 6, - hwmon_in_lowest = 7, - hwmon_in_highest = 8, - hwmon_in_reset_history = 9, - hwmon_in_label = 10, - hwmon_in_alarm = 11, - hwmon_in_min_alarm = 12, - hwmon_in_max_alarm = 13, - hwmon_in_lcrit_alarm = 14, - hwmon_in_crit_alarm = 15, - hwmon_in_rated_min = 16, - hwmon_in_rated_max = 17, - hwmon_in_beep = 18, +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]; }; -enum hwmon_curr_attributes { - hwmon_curr_enable = 0, - hwmon_curr_input = 1, - hwmon_curr_min = 2, - hwmon_curr_max = 3, - hwmon_curr_lcrit = 4, - hwmon_curr_crit = 5, - hwmon_curr_average = 6, - hwmon_curr_lowest = 7, - hwmon_curr_highest = 8, - hwmon_curr_reset_history = 9, - hwmon_curr_label = 10, - hwmon_curr_alarm = 11, - hwmon_curr_min_alarm = 12, - hwmon_curr_max_alarm = 13, - hwmon_curr_lcrit_alarm = 14, - hwmon_curr_crit_alarm = 15, - hwmon_curr_rated_min = 16, - hwmon_curr_rated_max = 17, - hwmon_curr_beep = 18, +struct 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; }; -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, +struct arch_elf_state {}; + +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; }; -enum hwmon_energy_attributes { - hwmon_energy_enable = 0, - hwmon_energy_input = 1, - hwmon_energy_label = 2, +enum { + EXT4_MF_MNTDIR_SAMPLED = 0, + EXT4_MF_FC_INELIGIBLE = 1, }; -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, +struct ext4_orphan_block_tail { + __le32 ob_magic; + __le32 ob_checksum; }; -enum hwmon_fan_attributes { - hwmon_fan_enable = 0, - hwmon_fan_input = 1, - hwmon_fan_label = 2, - hwmon_fan_min = 3, - hwmon_fan_max = 4, - hwmon_fan_div = 5, - hwmon_fan_pulses = 6, - hwmon_fan_target = 7, - hwmon_fan_alarm = 8, - hwmon_fan_min_alarm = 9, - hwmon_fan_max_alarm = 10, - hwmon_fan_fault = 11, - hwmon_fan_beep = 12, +struct shortname_info { + unsigned char lower: 1; + unsigned char upper: 1; + unsigned char valid: 1; }; -struct trace_event_raw_hwmon_attr_class { - struct trace_entry ent; - int index; - u32 __data_loc_attr_name; - long val; - char __data[0]; +enum pnfs_update_layout_reason { + PNFS_UPDATE_LAYOUT_UNKNOWN = 0, + PNFS_UPDATE_LAYOUT_NO_PNFS = 1, + PNFS_UPDATE_LAYOUT_RD_ZEROLEN = 2, + PNFS_UPDATE_LAYOUT_MDSTHRESH = 3, + PNFS_UPDATE_LAYOUT_NOMEM = 4, + PNFS_UPDATE_LAYOUT_BULK_RECALL = 5, + PNFS_UPDATE_LAYOUT_IO_TEST_FAIL = 6, + PNFS_UPDATE_LAYOUT_FOUND_CACHED = 7, + PNFS_UPDATE_LAYOUT_RETURN = 8, + PNFS_UPDATE_LAYOUT_RETRY = 9, + PNFS_UPDATE_LAYOUT_BLOCKED = 10, + PNFS_UPDATE_LAYOUT_INVALID_OPEN = 11, + PNFS_UPDATE_LAYOUT_SEND_LAYOUTGET = 12, + PNFS_UPDATE_LAYOUT_EXIT = 13, }; -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]; +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, }; -struct hwmon_chip_info; +enum createmode4 { + NFS4_CREATE_UNCHECKED = 0, + NFS4_CREATE_GUARDED = 1, + NFS4_CREATE_EXCLUSIVE = 2, + NFS4_CREATE_EXCLUSIVE4_1 = 3, +}; -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; +enum layoutdriver_policy_flags { + PNFS_LAYOUTRET_ON_SETATTR = 1, + PNFS_LAYOUTRET_ON_ERROR = 2, + PNFS_READ_WHOLE_PAGE = 4, + PNFS_LAYOUTGET_ON_OPEN = 8, }; -struct hwmon_ops; +struct nfs4_layoutreturn_res { + struct nfs4_sequence_res seq_res; + u32 lrs_present; + nfs4_stateid stateid; +}; -struct hwmon_channel_info; +struct nfs4_layoutreturn { + struct nfs4_layoutreturn_args args; + struct nfs4_layoutreturn_res res; + const struct cred *cred; + struct nfs_client *clp; + struct inode *inode; + int rpc_status; + struct nfs4_xdr_opaque_data ld_private; +}; -struct hwmon_chip_info { - const struct hwmon_ops *ops; - const struct hwmon_channel_info * const *info; +typedef void (*rpc_action)(struct rpc_task *); + +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 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 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 hwmon_channel_info { - enum hwmon_sensor_types type; - const u32 *config; +struct nfs4_exception { + struct nfs4_state *state; + struct inode *inode; + nfs4_stateid *stateid; + long timeout; + unsigned short retrans; + unsigned char task_is_privileged: 1; + unsigned char delay: 1; + unsigned char recovering: 1; + unsigned char retry: 1; + bool interruptible; }; -struct hwmon_thermal_data { - struct list_head node; - struct device *dev; - int index; - struct thermal_zone_device *tzd; +struct stateowner_id { + __u64 create_time; + __u32 uniquifier; }; -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 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 trace_event_data_offsets_hwmon_attr_class { - u32 attr_name; +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 trace_event_data_offsets_hwmon_attr_show_string { - u32 attr_name; - u32 label; +struct nfs_open_confirmargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + nfs4_stateid *stateid; + struct nfs_seqid *seqid; }; -enum rpmsg_ns_flags { - RPMSG_NS_CREATE = 0, - RPMSG_NS_DESTROY = 1, +struct nfs_open_confirmres { + struct nfs4_sequence_res seq_res; + nfs4_stateid stateid; + struct nfs_seqid *seqid; }; -typedef __u32 __rpmsg32; +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 rpmsg_ns_msg { - char name[32]; - __rpmsg32 addr; - __rpmsg32 flags; +struct nfs42_layoutstat_res { + struct nfs4_sequence_res seq_res; + int num_dev; + int rpc_status; }; -struct flow_dissector { - unsigned int used_keys; - unsigned short offset[32]; +struct nfs42_layoutstat_data { + struct inode *inode; + struct nfs42_layoutstat_args args; + struct nfs42_layoutstat_res res; }; -enum flow_dissector_key_id { - FLOW_DISSECTOR_KEY_CONTROL = 0, - FLOW_DISSECTOR_KEY_BASIC = 1, - FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, - FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, - FLOW_DISSECTOR_KEY_PORTS = 4, - FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, - FLOW_DISSECTOR_KEY_ICMP = 6, - FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, - FLOW_DISSECTOR_KEY_TIPC = 8, - FLOW_DISSECTOR_KEY_ARP = 9, - FLOW_DISSECTOR_KEY_VLAN = 10, - FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, - FLOW_DISSECTOR_KEY_GRE_KEYID = 12, - FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, - FLOW_DISSECTOR_KEY_ENC_KEYID = 14, - FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, - FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, - FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, - FLOW_DISSECTOR_KEY_ENC_PORTS = 18, - FLOW_DISSECTOR_KEY_MPLS = 19, - FLOW_DISSECTOR_KEY_TCP = 20, - FLOW_DISSECTOR_KEY_IP = 21, - FLOW_DISSECTOR_KEY_CVLAN = 22, - FLOW_DISSECTOR_KEY_ENC_IP = 23, - FLOW_DISSECTOR_KEY_ENC_OPTS = 24, - FLOW_DISSECTOR_KEY_META = 25, - FLOW_DISSECTOR_KEY_CT = 26, - FLOW_DISSECTOR_KEY_HASH = 27, - FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28, - FLOW_DISSECTOR_KEY_PPPOE = 29, - FLOW_DISSECTOR_KEY_L2TPV3 = 30, - FLOW_DISSECTOR_KEY_CFM = 31, - FLOW_DISSECTOR_KEY_MAX = 32, +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 flow_dissector_key { - enum flow_dissector_key_id key_id; - size_t offset; +struct aead_instance { + void (*free)(struct aead_instance *); + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct aead_alg alg; + }; }; -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 crypto_istat_aead { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t err_cnt; }; -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 crypto_aead_spawn { + struct crypto_spawn base; }; -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, +struct crypto_sig { + struct crypto_tfm base; }; -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, +struct crypto_rng { + struct crypto_tfm base; }; -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 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 _flow_keys_digest_data { - __be16 n_proto; - u8 ip_proto; - u8 padding; - __be32 ports; - __be32 src; - __be32 dst; +struct crypto_istat_rng { + atomic64_t generate_cnt; + atomic64_t generate_tlen; + atomic64_t seed_cnt; + atomic64_t err_cnt; }; -union nf_inet_addr { - __u32 all[4]; - __be32 ip; - __be32 ip6[4]; - struct in_addr in; - struct in6_addr in6; +struct blk_mq_hw_ctx_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_mq_hw_ctx *, char *); }; -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; -}; +struct statx; -struct nf_conntrack_man { - union nf_inet_addr u3; - union nf_conntrack_man_proto u; - u_int16_t l3num; +struct io_statx { + struct file *file; + int dfd; + unsigned int mask; + unsigned int flags; + struct filename *filename; + struct statx __attribute__((btf_type_tag("user"))) *buffer; }; -struct nf_conntrack_tuple { - struct nf_conntrack_man src; - struct { - union nf_inet_addr u3; - union { - __be16 all; - struct { - __be16 port; - } tcp; - struct { - __be16 port; - } udp; - struct { - u_int8_t type; - u_int8_t code; - } icmp; - struct { - __be16 port; - } dccp; - struct { - __be16 port; - } sctp; - struct { - __be16 key; - } gre; - } u; - u_int8_t protonum; - struct {} __nfct_hash_offsetend; - u_int8_t dir; - } dst; +struct statx_timestamp { + __s64 tv_sec; + __u32 tv_nsec; + __s32 __reserved; }; -struct nf_conntrack_tuple_hash { - struct hlist_nulls_node hnnode; - struct nf_conntrack_tuple tuple; +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 u64 u_int64_t; - -struct nf_ct_dccp { - u_int8_t role[2]; - u_int8_t state; - u_int8_t last_pkt; - u_int8_t last_dir; - u_int64_t handshake_seq; +struct starfive_pinctrl { + struct gpio_chip gc; + struct pinctrl_gpio_range gpios; + raw_spinlock_t lock; + void *base; + void *padctl; + struct pinctrl_dev *pctl; + struct mutex mutex; }; -struct ip_ct_sctp { - enum sctp_conntrack state; - __be32 vtag[2]; - u8 last_dir; - u8 flags; +struct bus_attribute { + struct attribute attr; + ssize_t (*show)(const struct bus_type *, char *); + ssize_t (*store)(const struct bus_type *, const char *, size_t); }; -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; +enum pci_mmap_api { + PCI_MMAP_SYSFS = 0, + PCI_MMAP_PROCFS = 1, }; -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; +enum pci_mmap_state { + pci_mmap_io = 0, + pci_mmap_mem = 1, }; -struct nf_ct_udp { - unsigned long stream_ts; +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, }; -struct nf_ct_gre { - unsigned int stream_timeout; - unsigned int timeout; +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, }; -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; +enum pcie_link_width { + PCIE_LNK_WIDTH_RESRV = 0, + PCIE_LNK_X1 = 1, + PCIE_LNK_X2 = 2, + PCIE_LNK_X4 = 4, + PCIE_LNK_X8 = 8, + PCIE_LNK_X12 = 12, + PCIE_LNK_X16 = 16, + PCIE_LNK_X32 = 32, + PCIE_LNK_WIDTH_UNKNOWN = 255, }; -struct nf_ct_ext; +struct pci_config_window; -struct nf_conn { - struct nf_conntrack ct_general; - spinlock_t lock; - u32 timeout; - struct nf_conntrack_tuple_hash tuplehash[2]; - unsigned long status; - possible_net_t ct_net; - struct hlist_node nat_bysource; - struct {} __nfct_init_offset; - struct nf_conn *master; - struct nf_ct_ext *ext; - union nf_conntrack_proto proto; +struct pci_ecam_ops { + unsigned int bus_shift; + struct pci_ops pci_ops; + int (*init)(struct pci_config_window *); }; -struct nf_ct_ext { - u8 offset[4]; - u8 len; - unsigned int gen_id; - long: 0; - char data[0]; +struct pci_config_window { + struct resource res; + struct resource busr; + unsigned int bus_shift; + void *priv; + const struct pci_ecam_ops *ops; + union { + void *win; + void **winp; + }; + struct device *parent; }; -union tcp_word_hdr { - struct tcphdr hdr; - __be32 words[5]; +struct fbcon_display { + const u_char *fontdata; + int userfont; + u_short inverse; + short yscroll; + int vrows; + int cursor_shape; + int con_rotate; + u32 xres_virtual; + u32 yres_virtual; + u32 height; + u32 width; + u32 bits_per_pixel; + u32 grayscale; + u32 nonstd; + u32 accel_flags; + u32 rotate; + struct fb_bitfield red; + struct fb_bitfield green; + struct fb_bitfield blue; + struct fb_bitfield transp; + const struct fb_videomode *mode; }; -struct mpls_label { - __be32 entry; +struct fbcon_ops { + void (*bmove)(struct vc_data *, struct fb_info *, int, int, int, int, int, int); + void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int); + void (*putcs)(struct vc_data *, struct fb_info *, const unsigned short *, int, int, int, int, int); + void (*clear_margins)(struct vc_data *, struct fb_info *, int, int); + void (*cursor)(struct vc_data *, struct fb_info *, int, int, int); + int (*update_start)(struct fb_info *); + int (*rotate_font)(struct fb_info *, struct vc_data *); + struct fb_var_screeninfo var; + struct delayed_work cursor_work; + struct fb_cursor cursor_state; + struct fbcon_display *p; + struct fb_info *info; + int currcon; + int cur_blink_jiffies; + int cursor_flash; + int cursor_reset; + int blank_state; + int graphics; + int save_graphics; + bool initialized; + int rotate; + int cur_rotate; + char *cursor_data; + u8 *fontbuffer; + u8 *fontdata; + u8 *cursor_src; + u32 cursor_size; + u32 fd_size; }; -struct flow_dissector_mpls_lse { - u32 mpls_ttl: 8; - u32 mpls_bos: 1; - u32 mpls_tc: 3; - u32 mpls_label: 20; -}; +struct apd_device_desc; -struct flow_dissector_key_mpls { - struct flow_dissector_mpls_lse ls[7]; - u8 used_lses; +struct apd_private_data { + struct clk *clk; + struct acpi_device *adev; + const struct apd_device_desc *dev_desc; }; -struct flow_dissector_key_ip { - __u8 tos; - __u8 ttl; +struct apd_device_desc { + unsigned int fixed_clk_rate; + struct property_entry *properties; + int (*setup)(struct apd_private_data *); }; -struct batadv_unicast_packet { - __u8 packet_type; - __u8 version; - __u8 ttl; - __u8 ttvn; - __u8 dest[6]; +enum { + MATCH_MTR = 0, + MATCH_MEQ = 1, + MATCH_MLE = 2, + MATCH_MLT = 3, + MATCH_MGE = 4, + MATCH_MGT = 5, }; -struct flow_dissector_key_arp { - __u32 sip; - __u32 tip; - __u8 op; - unsigned char sha[6]; - unsigned char tha[6]; -}; +struct pnp_dev; -struct pppoe_tag { - __be16 tag_type; - __be16 tag_len; - char tag_data[0]; +struct pnp_fixup { + char id[7]; + void (*quirk_function)(struct pnp_dev *); }; -struct pppoe_hdr { - __u8 type: 4; - __u8 ver: 4; - __u8 code; - __be16 sid; - __be16 length; - struct pppoe_tag tag[0]; -}; +struct pnp_protocol; -struct flow_dissector_key_cfm { - u8 mdl_ver; - u8 opcode; -}; +struct pnp_card; -struct tipc_basic_hdr { - __be32 w[4]; -}; +struct pnp_driver; -struct flow_dissector_key_tcp { - __be16 flags; -}; +struct pnp_card_link; -struct gre_base_hdr { - __be16 flags; - __be16 protocol; -}; +struct pnp_id; -struct flow_dissector_key_l2tpv3 { - __be32 session_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 flow_keys_basic { - struct flow_dissector_key_control control; - struct flow_dissector_key_basic basic; +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 flow_dissector_key_meta { - int ingress_ifindex; - u16 ingress_iftype; - u8 l2_miss; +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 nf_conn_labels { - unsigned long bits[2]; +struct pnp_id { + char id[8]; + struct pnp_id *next; }; -struct flow_dissector_key_ct { - u16 ct_state; - u16 ct_zone; - u32 ct_mark; - u32 ct_labels[4]; -}; +struct pnp_device_id; -struct flow_dissector_key_enc_opts { - u8 data[255]; - u8 len; - __be16 dst_opt_type; +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 flow_dissector_key_hash { - u32 hash; +struct pnp_device_id { + __u8 id[8]; + kernel_ulong_t driver_data; }; -struct clock_identity { - u8 id[8]; -}; +struct pnp_card_driver; -struct port_identity { - struct clock_identity clock_identity; - __be16 port_number; +struct pnp_card_link { + struct pnp_card *card; + struct pnp_card_driver *driver; + void *driver_data; + pm_message_t pm_state; }; -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 pnp_card_device_id; -struct hsr_tag { - __be16 path_and_LSDU_size; - __be16 sequence_nr; - __be16 encap_proto; +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 flow_dissector_key_eth_addrs { - unsigned char dst[6]; - unsigned char src[6]; +struct pnp_card_device_id { + __u8 id[8]; + kernel_ulong_t driver_data; + struct { + __u8 id[8]; + } devs[8]; }; -struct flow_dissector_key_num_of_vlans { - u8 num_of_vlans; +struct pnp_port { + resource_size_t min; + resource_size_t max; + resource_size_t align; + resource_size_t size; + unsigned char flags; }; -struct flow_dissector_key_pppoe { - __be16 session_id; - __be16 ppp_proto; - __be16 type; -}; +typedef struct { + unsigned long bits[4]; +} pnp_irq_mask_t; -struct flow_keys_digest { - u8 data[16]; +struct pnp_irq { + pnp_irq_mask_t map; + unsigned char flags; }; -enum { - NETLINK_DIAG_MEMINFO = 0, - NETLINK_DIAG_GROUPS = 1, - NETLINK_DIAG_RX_RING = 2, - NETLINK_DIAG_TX_RING = 3, - NETLINK_DIAG_FLAGS = 4, - __NETLINK_DIAG_MAX = 5, +struct pnp_dma { + unsigned char map; + unsigned char flags; }; -struct netlink_diag_req { - __u8 sdiag_family; - __u8 sdiag_protocol; - __u16 pad; - __u32 ndiag_ino; - __u32 ndiag_show; - __u32 ndiag_cookie[2]; +struct pnp_mem { + resource_size_t min; + resource_size_t max; + resource_size_t align; + resource_size_t size; + unsigned char flags; }; -struct netlink_diag_msg { - __u8 ndiag_family; - __u8 ndiag_type; - __u8 ndiag_protocol; - __u8 ndiag_state; - __u32 ndiag_portid; - __u32 ndiag_dst_portid; - __u32 ndiag_dst_group; - __u32 ndiag_ino; - __u32 ndiag_cookie[2]; +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; }; -enum { - ETHTOOL_STATS_ETH_PHY = 0, - ETHTOOL_STATS_ETH_MAC = 1, - ETHTOOL_STATS_ETH_CTRL = 2, - ETHTOOL_STATS_RMON = 3, - __ETHTOOL_STATS_CNT = 4, +struct pnp_resource { + struct list_head list; + struct resource res; }; -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, +struct sun6i_rtc_match_data { + bool have_ext_osc32k: 1; + bool have_iosc_calibration: 1; + bool rtc_32k_single_parent: 1; + const struct clk_parent_data *osc32k_fanout_parents; + u8 osc32k_fanout_nparents; }; -enum { - ETHTOOL_A_STATS_GRP_UNSPEC = 0, - ETHTOOL_A_STATS_GRP_PAD = 1, - ETHTOOL_A_STATS_GRP_ID = 2, - ETHTOOL_A_STATS_GRP_SS_ID = 3, - ETHTOOL_A_STATS_GRP_STAT = 4, - ETHTOOL_A_STATS_GRP_HIST_RX = 5, - ETHTOOL_A_STATS_GRP_HIST_TX = 6, - ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, - ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, - ETHTOOL_A_STATS_GRP_HIST_VAL = 9, - __ETHTOOL_A_STATS_GRP_CNT = 10, - ETHTOOL_A_STATS_GRP_MAX = 9, +struct ccu_mux { + u32 enable; + struct ccu_mux_internal mux; + struct ccu_common common; }; -enum { - ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0, - __ETHTOOL_A_STATS_ETH_PHY_CNT = 1, - ETHTOOL_A_STATS_ETH_PHY_MAX = 0, +struct ccu_gate { + u32 enable; + struct ccu_common common; }; -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, +struct vt_spawn_console { + spinlock_t lock; + struct pid *pid; + int sig; }; -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, +struct kbd_struct { + unsigned char lockstate; + unsigned char slockstate; + unsigned char ledmode: 1; + unsigned char ledflagstate: 4; + char: 3; + unsigned char default_ledflagstate: 4; + unsigned char kbdmode: 3; + int: 1; + unsigned char modeflags: 5; }; -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, -}; +typedef void k_handler_fn(struct vc_data *, unsigned char, char); -struct stats_req_info { - struct ethnl_req_info base; - unsigned long stat_mask[1]; - enum ethtool_mac_stats_src src; -}; +typedef void fn_handler_fn(struct vc_data *); -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 getset_keycode_data { + struct input_keymap_entry ke; + int error; }; -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, +struct keyboard_notifier_param { + struct vc_data *vc; + int down; + int shift; + int ledstate; + unsigned int value; }; -struct inet_diag_req_v2; - -struct inet_diag_msg; +struct kbdiacr { + unsigned char diacr; + unsigned char base; + unsigned char result; +}; -struct inet_diag_handler { - void (*dump)(struct sk_buff *, struct netlink_callback *, const struct inet_diag_req_v2 *); - int (*dump_one)(struct netlink_callback *, const struct inet_diag_req_v2 *); - void (*idiag_get_info)(struct sock *, struct inet_diag_msg *, void *); - int (*idiag_get_aux)(struct sock *, bool, struct sk_buff *); - size_t (*idiag_get_aux_size)(struct sock *, bool); - int (*destroy)(struct sk_buff *, const struct inet_diag_req_v2 *); - __u16 idiag_type; - __u16 idiag_info_size; +struct kbdiacrs { + unsigned int kb_cnt; + struct kbdiacr kbdiacr[256]; }; -struct tcpvegas_info { - __u32 tcpv_enabled; - __u32 tcpv_rttcnt; - __u32 tcpv_rtt; - __u32 tcpv_minrtt; +struct kbdiacruc { + unsigned int diacr; + unsigned int base; + unsigned int result; }; -struct tcp_dctcp_info { - __u16 dctcp_enabled; - __u16 dctcp_ce_state; - __u32 dctcp_alpha; - __u32 dctcp_ab_ecn; - __u32 dctcp_ab_tot; +struct kbdiacrsuc { + unsigned int kb_cnt; + struct kbdiacruc kbdiacruc[256]; }; -struct tcp_bbr_info { - __u32 bbr_bw_lo; - __u32 bbr_bw_hi; - __u32 bbr_min_rtt; - __u32 bbr_pacing_gain; - __u32 bbr_cwnd_gain; +struct soc_device_attribute { + const char *machine; + const char *family; + const char *revision; + const char *serial_number; + const char *soc_id; + const void *data; + const struct attribute_group *custom_attr_group; }; -union tcp_cc_info { - struct tcpvegas_info vegas; - struct tcp_dctcp_info dctcp; - struct tcp_bbr_info bbr; +struct soc_device { + struct device dev; + struct soc_device_attribute *attr; + int soc_dev_num; }; -struct inet_diag_sockid { - __be16 idiag_sport; - __be16 idiag_dport; - __be32 idiag_src[4]; - __be32 idiag_dst[4]; - __u32 idiag_if; - __u32 idiag_cookie[2]; +struct nd_cmd_desc { + int in_num; + int out_num; + u32 in_sizes[5]; + int out_sizes[5]; }; -struct inet_diag_req_v2 { - __u8 sdiag_family; - __u8 sdiag_protocol; - __u8 idiag_ext; - __u8 pad; - __u32 idiag_states; - struct inet_diag_sockid id; +enum nvdimm_event { + NVDIMM_REVALIDATE_POISON = 0, + NVDIMM_REVALIDATE_REGION = 1, }; -struct inet_diag_msg { - __u8 idiag_family; - __u8 idiag_state; - __u8 idiag_timer; - __u8 idiag_retrans; - struct inet_diag_sockid id; - __u32 idiag_expires; - __u32 idiag_rqueue; - __u32 idiag_wqueue; - __u32 idiag_uid; - __u32 idiag_inode; +struct nd_device_driver { + struct device_driver drv; + unsigned long type; + int (*probe)(struct device *); + void (*remove)(struct device *); + void (*shutdown)(struct device *); + void (*notify)(struct device *, enum nvdimm_event); }; 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, + ND_CMD_IMPLEMENTED = 0, + ND_CMD_ARS_CAP = 1, + ND_CMD_ARS_START = 2, + ND_CMD_ARS_STATUS = 3, + ND_CMD_CLEAR_ERROR = 4, + ND_CMD_SMART = 1, + ND_CMD_SMART_THRESHOLD = 2, + ND_CMD_DIMM_FLAGS = 3, + ND_CMD_GET_CONFIG_SIZE = 4, + ND_CMD_GET_CONFIG_DATA = 5, + ND_CMD_SET_CONFIG_DATA = 6, + ND_CMD_VENDOR_EFFECT_LOG_SIZE = 7, + ND_CMD_VENDOR_EFFECT_LOG = 8, + ND_CMD_VENDOR = 9, + ND_CMD_CALL = 10, }; -enum { - INET_DIAG_REQ_NONE = 0, - INET_DIAG_REQ_BYTECODE = 1, - INET_DIAG_REQ_SK_BPF_STORAGES = 2, - INET_DIAG_REQ_PROTOCOL = 3, - __INET_DIAG_REQ_MAX = 4, +enum nd_ioctl_mode { + BUS_IOCTL = 0, + DIMM_IOCTL = 1, }; -enum { - SK_MEMINFO_RMEM_ALLOC = 0, - SK_MEMINFO_RCVBUF = 1, - SK_MEMINFO_WMEM_ALLOC = 2, - SK_MEMINFO_SNDBUF = 3, - SK_MEMINFO_FWD_ALLOC = 4, - SK_MEMINFO_WMEM_QUEUED = 5, - SK_MEMINFO_OPTMEM = 6, - SK_MEMINFO_BACKLOG = 7, - SK_MEMINFO_DROPS = 8, - SK_MEMINFO_VARS = 9, +struct nd_cmd_pkg { + __u64 nd_family; + __u64 nd_command; + __u32 nd_size_in; + __u32 nd_size_out; + __u32 nd_reserved2[9]; + __u32 nd_fw_size; + unsigned char nd_payload[0]; }; -enum { - INET_DIAG_BC_NOP = 0, - INET_DIAG_BC_JMP = 1, - INET_DIAG_BC_S_GE = 2, - INET_DIAG_BC_S_LE = 3, - INET_DIAG_BC_D_GE = 4, - INET_DIAG_BC_D_LE = 5, - INET_DIAG_BC_AUTO = 6, - INET_DIAG_BC_S_COND = 7, - INET_DIAG_BC_D_COND = 8, - INET_DIAG_BC_DEV_COND = 9, - INET_DIAG_BC_MARK_COND = 10, - INET_DIAG_BC_S_EQ = 11, - INET_DIAG_BC_D_EQ = 12, - INET_DIAG_BC_CGROUP_COND = 13, +struct nd_cmd_clear_error { + __u64 address; + __u64 length; + __u32 status; + __u8 reserved[4]; + __u64 cleared; }; -struct inet_diag_hostcond { - __u8 family; - __u8 prefix_len; - int port; - __be32 addr[0]; +struct badrange_entry { + u64 start; + u64 length; + struct list_head list; }; -struct inet_diag_markcond { - __u32 mark; - __u32 mask; +struct clear_badblocks_context { + resource_size_t phys; + resource_size_t cleared; }; -struct bpf_sk_storage_diag; +struct nd_cmd_vendor_hdr { + __u32 opcode; + __u32 in_length; + __u8 in_buf[0]; +}; -struct inet_diag_dump_data { - struct nlattr *req_nlas[4]; - struct bpf_sk_storage_diag *bpf_stg_diag; +struct nd_cmd_set_config_hdr { + __u32 in_offset; + __u32 in_length; + __u8 in_buf[0]; }; -struct inet_diag_entry { - const __be32 *saddr; - const __be32 *daddr; - u16 sport; - u16 dport; - u16 family; - u16 userlocks; - u32 ifindex; - u32 mark; - u64 cgroup_id; +struct nd_cmd_ars_cap { + __u64 address; + __u64 length; + __u32 status; + __u32 max_ars_out; + __u32 clear_err_unit; + __u16 flags; + __u16 reserved; }; -struct inet_diag_bc_op { - unsigned char code; - unsigned char yes; - unsigned short no; +enum dma_fence_flag_bits { + DMA_FENCE_FLAG_SIGNALED_BIT = 0, + DMA_FENCE_FLAG_TIMESTAMP_BIT = 1, + DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2, + DMA_FENCE_FLAG_USER_BITS = 3, }; -struct inet_diag_req { - __u8 idiag_family; - __u8 idiag_src_len; - __u8 idiag_dst_len; - __u8 idiag_ext; - struct inet_diag_sockid id; - __u32 idiag_states; - __u32 idiag_dbs; +struct dma_fence; + +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 inet_diag_sockopt { - __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 unused: 5; -}; - -struct inet_diag_meminfo { - __u32 idiag_rmem; - __u32 idiag_wmem; - __u32 idiag_fmem; - __u32 idiag_tmem; -}; - -struct sock_ee_data_rfc4884 { - __u16 len; - __u8 flags; - __u8 reserved; -}; +struct dma_fence_ops; -struct sock_extended_err { - __u32 ee_errno; - __u8 ee_origin; - __u8 ee_type; - __u8 ee_code; - __u8 ee_pad; - __u32 ee_info; +struct dma_fence { + spinlock_t *lock; + const struct dma_fence_ops *ops; union { - __u32 ee_data; - struct sock_ee_data_rfc4884 ee_rfc4884; + 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 sock_exterr_skb { +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 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 dma_fence_cb cb; + struct irq_work work; + }; + spinlock_t lock; }; -struct in_pktinfo { - int ipi_ifindex; - struct in_addr ipi_spec_dst; - struct in_addr ipi_addr; +struct dma_fence_ops { + bool use_64bit_seqno; + const char * (*get_driver_name)(struct dma_fence *); + const char * (*get_timeline_name)(struct dma_fence *); + bool (*enable_signaling)(struct dma_fence *); + bool (*signaled)(struct dma_fence *); + long (*wait)(struct dma_fence *, bool, long); + void (*release)(struct dma_fence *); + void (*fence_value_str)(struct dma_fence *, char *, int); + void (*timeline_value_str)(struct dma_fence *, char *, int); + void (*set_deadline)(struct dma_fence *, ktime_t); }; -enum sock_shutdown_cmd { - SHUT_RD = 0, - SHUT_WR = 1, - SHUT_RDWR = 2, +struct dma_fence_unwrap { + struct dma_fence *chain; + struct dma_fence *array; + unsigned int index; }; -enum rpc_msg_type { - RPC_CALL = 0, - RPC_REPLY = 1, +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 { - 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, +enum scsi_timeouts { + SCSI_DEFAULT_EH_TIMEOUT = 2500, }; -struct sockaddr_un { - __kernel_sa_family_t sun_family; - char sun_path[108]; +struct async_scan_data { + struct list_head list; + struct Scsi_Host *shost; + struct completion prev_finished; }; -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 completion sk_handshake_done; - struct page *sk_pages[259]; +struct scsi_lun { + __u8 scsi_lun[8]; }; -typedef void (*tls_done_func_t)(void *, int, key_serial_t); - -struct tls_handshake_args { - struct socket *ta_sock; - tls_done_func_t ta_done; - void *ta_data; - const char *ta_peername; - unsigned int ta_timeout_ms; - key_serial_t ta_keyring; - key_serial_t ta_my_cert; - key_serial_t ta_my_privkey; - unsigned int ta_num_peerids; - key_serial_t ta_my_peerids[5]; +enum scsi_pr_type { + SCSI_PR_WRITE_EXCLUSIVE = 1, + SCSI_PR_EXCLUSIVE_ACCESS = 3, + SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5, + SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6, + SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7, + SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8, }; enum { - dns_key_data = 0, - dns_key_error = 1, + BLK_MQ_UNIQUE_TAG_BITS = 16, + BLK_MQ_UNIQUE_TAG_MASK = 65535, }; -enum efi_cmdline_option { - EFI_CMDLINE_NONE = 0, - EFI_CMDLINE_MODE_NUM = 1, - EFI_CMDLINE_RES = 2, - EFI_CMDLINE_AUTO = 3, - EFI_CMDLINE_LIST = 4, +struct virtio_scsi_event { + __virtio32 event; + __u8 lun[8]; + __virtio32 reason; }; -typedef struct { - u32 red_mask; - u32 green_mask; - u32 blue_mask; - u32 reserved_mask; -} efi_pixel_bitmask_t; - -typedef struct { - u32 version; - u32 horizontal_resolution; - u32 vertical_resolution; - int pixel_format; - efi_pixel_bitmask_t pixel_information; - u32 pixels_per_scan_line; -} efi_graphics_output_mode_info_t; - -union efi_graphics_output_protocol; - -typedef union efi_graphics_output_protocol efi_graphics_output_protocol_t; - -union efi_graphics_output_protocol_mode; - -typedef union efi_graphics_output_protocol_mode efi_graphics_output_protocol_mode_t; - -union efi_graphics_output_protocol { - struct { - efi_status_t (*query_mode)(efi_graphics_output_protocol_t *, u32, unsigned long *, efi_graphics_output_mode_info_t **); - efi_status_t (*set_mode)(efi_graphics_output_protocol_t *, u32); - void *blt; - efi_graphics_output_protocol_mode_t *mode; - }; - struct { - u32 query_mode; - u32 set_mode; - u32 blt; - u32 mode; - } mixed_mode; -}; +struct virtio_scsi; -union efi_graphics_output_protocol_mode { - struct { - u32 max_mode; - u32 mode; - efi_graphics_output_mode_info_t *info; - unsigned long size_of_info; - efi_physical_addr_t frame_buffer_base; - unsigned long frame_buffer_size; - }; - struct { - u32 max_mode; - u32 mode; - u32 info; - u32 size_of_info; - u64 frame_buffer_base; - u32 frame_buffer_size; - } mixed_mode; +struct virtio_scsi_event_node { + struct virtio_scsi *vscsi; + struct virtio_scsi_event event; + struct work_struct work; }; -struct cpu_manufacturer_info_t { - unsigned long vendor_id; - unsigned long arch_id; - unsigned long imp_id; - void (*patch_func)(struct alt_entry *, struct alt_entry *, unsigned long, unsigned long, unsigned int); - void (*feature_probe_func)(unsigned int, unsigned long, unsigned long); +struct virtio_scsi_vq { + spinlock_t vq_lock; + struct virtqueue *vq; }; -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 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 cpu_stop_done { - atomic_t nr_todo; - int ret; - struct completion completion; -}; +struct virtio_scsi_cmd_req { + __u8 lun[8]; + __virtio64 tag; + __u8 task_attr; + __u8 prio; + __u8 crn; + __u8 cdb[32]; +} __attribute__((packed)); -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 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 multi_stop_data { - cpu_stop_fn_t fn; - void *data; - unsigned int num_threads; - const struct cpumask *active_cpus; - enum multi_stop_state state; - atomic_t thread_ack; +struct virtio_scsi_ctrl_tmf_req { + __virtio32 type; + __virtio32 subtype; + __u8 lun[8]; + __virtio64 tag; }; -struct boot_triggers { - const char *event; - char *trigger; +struct virtio_scsi_ctrl_an_req { + __virtio32 type; + __u8 lun[8]; + __virtio32 event_requested; }; -struct ftrace_func_command { - struct list_head list; - char *name; - int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); +struct virtio_scsi_cmd_resp { + __virtio32 sense_len; + __virtio32 resid; + __virtio16 status_qualifier; + __u8 status; + __u8 response; + __u8 sense[96]; }; -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 virtio_scsi_ctrl_tmf_resp { + __u8 response; }; -enum { - TRACE_PIDS = 1, - TRACE_NO_PIDS = 2, -}; +struct virtio_scsi_ctrl_an_resp { + __virtio32 event_actual; + __u8 response; +} __attribute__((packed)); -enum { - TRACE_ARRAY_FL_GLOBAL = 1, -}; +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: 64; +} __attribute__((packed)); -enum { - FORMAT_HEADER = 1, - FORMAT_FIELD_SEPERATOR = 2, - FORMAT_PRINTFMT = 3, +struct mtdblk_dev { + struct mtd_blktrans_dev mbd; + int count; + struct mutex cache_mutex; + unsigned char *cache_data; + unsigned long cache_offset; + unsigned int cache_size; + enum { + STATE_EMPTY = 0, + STATE_CLEAN = 1, + STATE_DIRTY = 2, + } cache_state; }; -struct module_string { - struct list_head next; - struct module *module; - char *str; -}; +struct macb_usrio_config; -struct trace_parser { - bool cont; - char *buffer; - unsigned int idx; - unsigned int size; +struct macb_config { + u32 caps; + unsigned int dma_burst_length; + int (*clk_init)(struct platform_device *, struct clk **, struct clk **, struct clk **, struct clk **, struct clk **); + int (*init)(struct platform_device *); + unsigned int max_tx_length; + int jumbo_max_len; + const struct macb_usrio_config *usrio; }; -struct event_probe_data { - struct trace_event_file *file; - unsigned long count; - int ref; - bool enable; +struct macb_usrio_config { + u32 mii; + u32 rmii; + u32 rgmii; + u32 refclk; + u32 hdfctlen; }; -typedef int (*ftrace_mapper_func)(void *); - -struct list_lru_memcg { - struct callback_head rcu; - struct list_lru_one node[0]; +struct gem_statistic { + char stat_string[32]; + int offset; + u32 stat_bits; }; -struct list_lru_memcg_table { - struct list_lru_memcg *mlru; - struct mem_cgroup *memcg; -}; +struct phylink_pcs; -enum iter_type { - ITER_IOVEC = 0, - ITER_KVEC = 1, - ITER_BVEC = 2, - ITER_XARRAY = 3, - ITER_DISCARD = 4, - ITER_UBUF = 5, -}; +struct phylink_link_state; -struct anon_vma_name { - struct kref kref; - char name[0]; +struct phylink_pcs_ops { + int (*pcs_validate)(struct phylink_pcs *, unsigned long *, const struct phylink_link_state *); + int (*pcs_enable)(struct phylink_pcs *); + void (*pcs_disable)(struct phylink_pcs *); + void (*pcs_pre_config)(struct phylink_pcs *, phy_interface_t); + int (*pcs_post_config)(struct phylink_pcs *, phy_interface_t); + void (*pcs_get_state)(struct phylink_pcs *, struct phylink_link_state *); + int (*pcs_config)(struct phylink_pcs *, unsigned int, phy_interface_t, const unsigned long *, bool); + void (*pcs_an_restart)(struct phylink_pcs *); + void (*pcs_link_up)(struct phylink_pcs *, unsigned int, phy_interface_t, int, int); }; -struct madvise_walk_private { - struct mmu_gather *tlb; - bool pageout; +struct phylink_pcs { + const struct phylink_pcs_ops *ops; + struct phylink *phylink; + bool neg_mode; + bool poll; }; -struct zap_details { - struct folio *single_folio; - bool even_cows; - zap_flags_t zap_flags; +struct phylink_link_state { + unsigned long advertising[2]; + unsigned long lp_advertising[2]; + phy_interface_t interface; + int speed; + int duplex; + int pause; + int rate_matching; + unsigned int link: 1; + unsigned int an_complete: 1; }; -struct mempolicy {}; - -struct simple_transaction_argresp { - ssize_t size; - char data[0]; -}; +struct phylink_config; -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; +struct phylink_mac_ops { + unsigned long (*mac_get_caps)(struct phylink_config *, phy_interface_t); + struct phylink_pcs * (*mac_select_pcs)(struct phylink_config *, phy_interface_t); + int (*mac_prepare)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_config)(struct phylink_config *, unsigned int, const struct phylink_link_state *); + int (*mac_finish)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_link_down)(struct phylink_config *, unsigned int, phy_interface_t); + void (*mac_link_up)(struct phylink_config *, struct phy_device *, unsigned int, phy_interface_t, int, int, bool, bool); }; -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; +enum phylink_op_type { + PHYLINK_NETDEV = 0, + PHYLINK_DEV = 1, }; -typedef struct siginfo siginfo_t; - -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 phylink_config { + struct device *dev; + enum phylink_op_type type; + bool poll_fixed_state; + bool mac_managed_pm; + bool ovr_an_inband; + void (*get_fixed_state)(struct phylink_config *, struct phylink_link_state *); + unsigned long supported_interfaces[1]; + unsigned long mac_capabilities; }; -struct elf_siginfo { - int si_signo; - int si_code; - int si_errno; +struct sifive_fu540_macb_mgmt { + void *reg; + unsigned long rate; + struct clk_hw hw; }; -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 struct user_regs_struct elf_gregset_t; - -struct elf_prstatus { - struct elf_prstatus_common common; - elf_gregset_t pr_reg; - int pr_fpvalid; +enum { + MLO_PAUSE_NONE = 0, + MLO_PAUSE_RX = 1, + MLO_PAUSE_TX = 2, + MLO_PAUSE_TXRX_MASK = 3, + MLO_PAUSE_AN = 4, + MLO_AN_PHY = 0, + MLO_AN_FIXED = 1, + MLO_AN_INBAND = 2, + PHYLINK_PCS_NEG_NONE = 0, + PHYLINK_PCS_NEG_ENABLED = 16, + PHYLINK_PCS_NEG_OUTBAND = 32, + PHYLINK_PCS_NEG_INBAND = 64, + PHYLINK_PCS_NEG_INBAND_DISABLED = 64, + PHYLINK_PCS_NEG_INBAND_ENABLED = 80, + MAC_SYM_PAUSE = 1, + MAC_ASYM_PAUSE = 2, + MAC_10HD = 4, + MAC_10FD = 8, + MAC_10 = 12, + MAC_100HD = 16, + MAC_100FD = 32, + MAC_100 = 48, + MAC_1000HD = 64, + MAC_1000FD = 128, + MAC_1000 = 192, + MAC_2500FD = 256, + MAC_5000FD = 512, + MAC_10000FD = 1024, + MAC_20000FD = 2048, + MAC_25000FD = 4096, + MAC_40000FD = 8192, + MAC_50000FD = 16384, + MAC_56000FD = 32768, + MAC_100000FD = 65536, + MAC_200000FD = 131072, + MAC_400000FD = 262144, }; -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 pm_api_id { + PM_GET_API_VERSION = 1, + PM_REGISTER_NOTIFIER = 5, + PM_FORCE_POWERDOWN = 8, + PM_REQUEST_WAKEUP = 10, + PM_SYSTEM_SHUTDOWN = 12, + PM_REQUEST_NODE = 13, + PM_RELEASE_NODE = 14, + PM_SET_REQUIREMENT = 15, + PM_RESET_ASSERT = 17, + PM_RESET_GET_STATUS = 18, + PM_MMIO_WRITE = 19, + PM_MMIO_READ = 20, + PM_PM_INIT_FINALIZE = 21, + PM_FPGA_LOAD = 22, + PM_FPGA_GET_STATUS = 23, + PM_GET_CHIPID = 24, + PM_SECURE_SHA = 26, + PM_PINCTRL_REQUEST = 28, + PM_PINCTRL_RELEASE = 29, + PM_PINCTRL_GET_FUNCTION = 30, + PM_PINCTRL_SET_FUNCTION = 31, + PM_PINCTRL_CONFIG_PARAM_GET = 32, + PM_PINCTRL_CONFIG_PARAM_SET = 33, + PM_IOCTL = 34, + PM_QUERY_DATA = 35, + PM_CLOCK_ENABLE = 36, + PM_CLOCK_DISABLE = 37, + PM_CLOCK_GETSTATE = 38, + PM_CLOCK_SETDIVIDER = 39, + PM_CLOCK_GETDIVIDER = 40, + PM_CLOCK_SETRATE = 41, + PM_CLOCK_GETRATE = 42, + PM_CLOCK_SETPARENT = 43, + PM_CLOCK_GETPARENT = 44, + PM_FPGA_READ = 46, + PM_SECURE_AES = 47, + PM_FEATURE_CHECK = 63, }; -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]; +enum pm_ioctl_id { + IOCTL_GET_RPU_OPER_MODE = 0, + IOCTL_SET_RPU_OPER_MODE = 1, + IOCTL_RPU_BOOT_ADDR_CONFIG = 2, + IOCTL_TCM_COMB_CONFIG = 3, + IOCTL_SET_TAPDELAY_BYPASS = 4, + IOCTL_SD_DLL_RESET = 6, + IOCTL_SET_SD_TAPDELAY = 7, + IOCTL_SET_PLL_FRAC_MODE = 8, + IOCTL_GET_PLL_FRAC_MODE = 9, + IOCTL_SET_PLL_FRAC_DATA = 10, + IOCTL_GET_PLL_FRAC_DATA = 11, + IOCTL_WRITE_GGS = 12, + IOCTL_READ_GGS = 13, + IOCTL_WRITE_PGGS = 14, + IOCTL_READ_PGGS = 15, + IOCTL_SET_BOOT_HEALTH_STATUS = 17, + IOCTL_OSPI_MUX_SELECT = 21, + IOCTL_REGISTER_SGI = 25, + IOCTL_SET_FEATURE_CONFIG = 26, + IOCTL_GET_FEATURE_CONFIG = 27, + IOCTL_SET_SD_CONFIG = 30, + IOCTL_SET_GEM_CONFIG = 31, }; -struct elf64_note { - Elf64_Word n_namesz; - Elf64_Word n_descsz; - Elf64_Word n_type; +enum pm_gem_config_type { + GEM_CONFIG_SGMII_MODE = 1, + GEM_CONFIG_FIXED = 2, }; -struct partial_cluster { - ext4_fsblk_t pclu; - ext4_lblk_t lblk; - enum { - initial = 0, - tofree = 1, - nofree = 2, - } state; +struct queue_stats { + union { + unsigned long first; + unsigned long rx_packets; + }; + unsigned long rx_bytes; + unsigned long rx_dropped; + unsigned long tx_packets; + unsigned long tx_bytes; + unsigned long tx_dropped; }; -enum SHIFT_DIRECTION { - SHIFT_LEFT = 0, - SHIFT_RIGHT = 1, +struct macb; + +struct macb_dma_desc; + +struct macb_tx_skb; + +struct macb_queue { + struct macb *bp; + int irq; + unsigned int ISR; + unsigned int IER; + unsigned int IDR; + unsigned int IMR; + unsigned int TBQP; + unsigned int TBQPH; + unsigned int RBQS; + unsigned int RBQP; + unsigned int RBQPH; + spinlock_t tx_ptr_lock; + unsigned int tx_head; + unsigned int tx_tail; + struct macb_dma_desc *tx_ring; + struct macb_tx_skb *tx_skb; + dma_addr_t tx_ring_dma; + struct work_struct tx_error_task; + bool txubr_pending; + struct napi_struct napi_tx; + dma_addr_t rx_ring_dma; + dma_addr_t rx_buffers_dma; + unsigned int rx_tail; + unsigned int rx_prepared_head; + struct macb_dma_desc *rx_ring; + struct sk_buff **rx_skbuff; + void *rx_buffers; + struct napi_struct napi_rx; + struct queue_stats stats; }; -struct ext4_extent_idx { - __le32 ei_block; - __le32 ei_leaf_lo; - __le16 ei_leaf_hi; - __u16 ei_unused; +struct macb_stats { + u32 rx_pause_frames; + u32 tx_ok; + u32 tx_single_cols; + u32 tx_multiple_cols; + u32 rx_ok; + u32 rx_fcs_errors; + u32 rx_align_errors; + u32 tx_deferred; + u32 tx_late_cols; + u32 tx_excessive_cols; + u32 tx_underruns; + u32 tx_carrier_errors; + u32 rx_resource_errors; + u32 rx_overruns; + u32 rx_symbol_errors; + u32 rx_oversize_pkts; + u32 rx_jabbers; + u32 rx_undersize_pkts; + u32 sqe_test_errors; + u32 rx_length_mismatch; + u32 tx_pause_frames; }; -struct ext4_extent { - __le32 ee_block; - __le16 ee_len; - __le16 ee_start_hi; - __le32 ee_start_lo; +struct gem_stats { + u32 tx_octets_31_0; + u32 tx_octets_47_32; + u32 tx_frames; + u32 tx_broadcast_frames; + u32 tx_multicast_frames; + u32 tx_pause_frames; + u32 tx_64_byte_frames; + u32 tx_65_127_byte_frames; + u32 tx_128_255_byte_frames; + u32 tx_256_511_byte_frames; + u32 tx_512_1023_byte_frames; + u32 tx_1024_1518_byte_frames; + u32 tx_greater_than_1518_byte_frames; + u32 tx_underrun; + u32 tx_single_collision_frames; + u32 tx_multiple_collision_frames; + u32 tx_excessive_collisions; + u32 tx_late_collisions; + u32 tx_deferred_frames; + u32 tx_carrier_sense_errors; + u32 rx_octets_31_0; + u32 rx_octets_47_32; + u32 rx_frames; + u32 rx_broadcast_frames; + u32 rx_multicast_frames; + u32 rx_pause_frames; + u32 rx_64_byte_frames; + u32 rx_65_127_byte_frames; + u32 rx_128_255_byte_frames; + u32 rx_256_511_byte_frames; + u32 rx_512_1023_byte_frames; + u32 rx_1024_1518_byte_frames; + u32 rx_greater_than_1518_byte_frames; + u32 rx_undersized_frames; + u32 rx_oversize_frames; + u32 rx_jabbers; + u32 rx_frame_check_sequence_errors; + u32 rx_length_field_frame_errors; + u32 rx_symbol_errors; + u32 rx_alignment_errors; + u32 rx_resource_errors; + u32 rx_overruns; + u32 rx_ip_header_checksum_errors; + u32 rx_tcp_checksum_errors; + u32 rx_udp_checksum_errors; }; -struct ext4_extent_tail { - __le32 et_checksum; +struct macb_or_gem_ops { + int (*mog_alloc_rx_buffers)(struct macb *); + void (*mog_free_rx_buffers)(struct macb *); + void (*mog_init_rings)(struct macb *); + int (*mog_rx)(struct macb_queue *, struct napi_struct *, int); }; -struct ext4_extent_header { - __le16 eh_magic; - __le16 eh_entries; - __le16 eh_max; - __le16 eh_depth; - __le32 eh_generation; +struct macb_tx_skb { + struct sk_buff *skb; + dma_addr_t mapping; + size_t size; + bool mapped_as_page; }; -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 tsu_incr { + u32 sub_ns; + u32 ns; }; -struct nfs_open_dir_context { +struct ethtool_rx_fs_list { 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; + unsigned int count; }; -struct nfs_readdir_descriptor { - struct file *file; - struct folio *folio; - struct dir_context *ctx; - unsigned long folio_index; - unsigned long folio_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 macb_pm_data { + u32 scrt2; + u32 usrio; }; -struct nfs_cache_array_entry { - u64 cookie; - u64 ino; - const char *name; - unsigned int name_len; - unsigned char d_type; -}; +struct macb_ptp_info; -struct nfs_cache_array { - u64 change_attr; - u64 last_cookie; - unsigned int size; - unsigned char folio_full: 1; - unsigned char folio_is_eof: 1; - unsigned char cookies_are_ordered: 1; - struct nfs_cache_array_entry array[0]; +struct macb { + void *regs; + bool native_io; + u32 (*macb_reg_readl)(struct macb *, int); + void (*macb_reg_writel)(struct macb *, int, u32); + size_t rx_buffer_size; + unsigned int rx_ring_size; + unsigned int tx_ring_size; + unsigned int num_queues; + unsigned int queue_mask; + struct macb_queue queues[8]; + spinlock_t lock; + struct platform_device *pdev; + struct clk *pclk; + struct clk *hclk; + struct clk *tx_clk; + struct clk *rx_clk; + struct clk *tsu_clk; + struct net_device *dev; + union { + struct macb_stats macb; + struct gem_stats gem; + } hw_stats; + struct macb_or_gem_ops macbgem_ops; + struct mii_bus *mii_bus; + struct phylink *phylink; + struct phylink_config phylink_config; + struct phylink_pcs phylink_usx_pcs; + struct phylink_pcs phylink_sgmii_pcs; + u32 caps; + unsigned int dma_burst_length; + phy_interface_t phy_interface; + struct macb_tx_skb rm9200_txq[2]; + unsigned int max_tx_length; + u64 ethtool_stats[91]; + unsigned int rx_frm_len_mask; + unsigned int jumbo_max_len; + u32 wol; + u32 rx_watermark; + struct macb_ptp_info *ptp_info; + struct phy *sgmii_phy; + uint8_t hw_dma_cap; + spinlock_t tsu_clk_lock; + unsigned int tsu_rate; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; + struct tsu_incr tsu_incr; + struct hwtstamp_config tstamp_config; + struct ethtool_rx_fs_list rx_fs_list; + spinlock_t rx_fs_lock; + unsigned int max_tuples; + struct tasklet_struct hresp_err_tasklet; + int rx_bd_rd_prefetch; + int tx_bd_rd_prefetch; + u32 rx_intr_mask; + struct macb_pm_data pm_data; + const struct macb_usrio_config *usrio; }; -struct nlmsvc_binding { - __be32 (*fopen)(struct svc_rqst *, struct nfs_fh *, struct file **, int); - void (*fclose)(struct file *); +struct macb_ptp_info { + void (*ptp_init)(struct net_device *); + void (*ptp_remove)(struct net_device *); + s32 (*get_ptp_max_adj)(); + unsigned int (*get_tsu_rate)(struct macb *); + int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *); + int (*get_hwtst)(struct net_device *, struct ifreq *); + int (*set_hwtst)(struct net_device *, struct ifreq *, int); }; -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 macb_dma_desc { + u32 addr; + u32 ctrl; }; -enum rpc_auth_stat { - RPC_AUTH_OK = 0, - RPC_AUTH_BADCRED = 1, - RPC_AUTH_REJECTEDCRED = 2, - RPC_AUTH_BADVERF = 3, - RPC_AUTH_REJECTEDVERF = 4, - RPC_AUTH_TOOWEAK = 5, - RPCSEC_GSS_CREDPROBLEM = 13, - RPCSEC_GSS_CTXPROBLEM = 14, +struct macb_dma_desc_64 { + u32 addrh; + u32 resvd; }; -struct lock_manager { +struct ethtool_rx_fs_item { + struct ethtool_rx_flow_spec fs; struct list_head list; - bool block_opens; }; -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; +struct macb_platform_data { + struct clk *pclk; + struct clk *hclk; }; -struct hashtab_key_params { - u32 (*hash)(const void *); - int (*cmp)(const void *, const void *); +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, }; -struct hashtab_node; +struct thermal_attr { + struct device_attribute attr; + char name[20]; +}; -struct hashtab { - struct hashtab_node **htable; - u32 size; - u32 nel; +struct od_ops { + unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int); }; -struct hashtab_node { - void *key; - void *datum; - struct hashtab_node *next; +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); }; -struct symtab { - struct hashtab table; - u32 nprim; +enum { + OD_NORMAL_SAMPLE = 0, + OD_SUB_SAMPLE = 1, }; -struct ebitmap_node; +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 ebitmap { - struct ebitmap_node *node; - u32 highbit; +struct od_dbs_tuners { + unsigned int powersave_bias; }; -struct mls_level { - u32 sens; - struct ebitmap cat; -}; +typedef void sdio_irq_handler_t(struct sdio_func *); -struct ebitmap_node { - struct ebitmap_node *next; - unsigned long maps[6]; - u32 startbit; +struct sdio_func { + struct mmc_card *card; + struct device dev; + sdio_irq_handler_t *irq_handler; + unsigned int num; + unsigned char class; + unsigned short vendor; + unsigned short device; + unsigned int max_blksize; + unsigned int cur_blksize; + unsigned int enable_timeout; + unsigned int state; + u8 *tmpbuf; + u8 major_rev; + u8 minor_rev; + unsigned int num_info; + const char **info; + struct sdio_func_tuple *tuples; }; -struct avtab_node; - -struct avtab { - struct avtab_node **htable; - u32 nel; - u32 nslot; - u32 mask; +struct sdio_func_tuple { + struct sdio_func_tuple *next; + unsigned char code; + unsigned char size; + unsigned char data[0]; }; -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 sdio_device_id; -struct genfs; +struct sdio_driver { + char *name; + const struct sdio_device_id *id_table; + int (*probe)(struct sdio_func *, const struct sdio_device_id *); + void (*remove)(struct sdio_func *); + struct device_driver drv; +}; -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 sdio_device_id { + __u8 class; + __u16 vendor; + __u16 device; + kernel_ulong_t driver_data; }; -struct common_datum; +struct sunxi_mmc_clk_delay; -struct constraint_node; +struct sunxi_mmc_cfg { + u32 idma_des_size_bits; + u32 idma_des_shift; + const struct sunxi_mmc_clk_delay *clk_delays; + bool can_calibrate; + bool mask_data0; + bool needs_new_timings; + bool ccu_has_timings_switch; +}; -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 sunxi_mmc_clk_delay { + u32 output; + u32 sample; }; -struct common_datum { - u32 value; - struct symtab permissions; +struct sunxi_idma_des { + __le32 config; + __le32 buf_size; + __le32 buf_addr_ptr1; + __le32 buf_addr_ptr2; }; -struct constraint_expr; +struct sunxi_mmc_host { + struct device *dev; + struct mmc_host *mmc; + struct reset_control *reset; + const struct sunxi_mmc_cfg *cfg; + void *reg_base; + struct clk *clk_ahb; + struct clk *clk_mmc; + struct clk *clk_sample; + struct clk *clk_output; + spinlock_t lock; + int irq; + u32 int_sum; + u32 sdio_imask; + dma_addr_t sg_dma; + void *sg_cpu; + bool wait_dma; + struct mmc_request *mrq; + struct mmc_request *manual_stop_mrq; + int ferror; + bool vqmmc_enabled; + bool use_new_timings; +}; -struct constraint_node { - u32 permissions; - struct constraint_expr *expr; - struct constraint_node *next; +struct amba_cs_uci_id { + unsigned int devarch; + unsigned int devarch_mask; + unsigned int devtype; + void *data; }; -struct type_set; +struct amba_device { + struct device dev; + struct resource res; + struct clk *pclk; + struct device_dma_parameters dma_parms; + unsigned int periphid; + struct mutex periphid_lock; + unsigned int cid; + struct amba_cs_uci_id uci; + unsigned int irq[9]; + const char *driver_override; +}; -struct constraint_expr { - u32 expr_type; - u32 attr; - u32 op; - struct ebitmap names; - struct type_set *type_names; - struct constraint_expr *next; +struct of_dev_auxdata { + char *compatible; + resource_size_t phys_addr; + char *name; + void *platform_data; }; -struct type_set { - struct ebitmap types; - struct ebitmap negset; - u32 flags; +struct snd_pcm_hw_constraint_list { + const unsigned int *list; + unsigned int count; + unsigned int mask; }; -struct role_datum { - u32 value; - u32 bounds; - struct ebitmap dominates; - struct ebitmap types; +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); }; -struct mls_range { - struct mls_level level[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, }; -struct user_datum { - u32 value; - u32 bounds; - struct ebitmap roles; - struct mls_range range; - struct mls_level dfltlevel; +enum { + SNDRV_PCM_TSTAMP_NONE = 0, + SNDRV_PCM_TSTAMP_ENABLE = 1, + SNDRV_PCM_TSTAMP_LAST = 1, }; -struct type_datum { - u32 value; - u32 bounds; - unsigned char primary; - unsigned char attribute; +enum { + SNDRV_PCM_STREAM_PLAYBACK = 0, + SNDRV_PCM_STREAM_CAPTURE = 1, + SNDRV_PCM_STREAM_LAST = 1, }; -struct avtab_key { - u16 source_type; - u16 target_type; - u16 target_class; - u16 specified; +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, }; -struct avtab_extended_perms; +enum snd_dma_sync_mode { + SNDRV_DMA_SYNC_CPU = 0, + SNDRV_DMA_SYNC_DEVICE = 1, +}; -struct avtab_datum { - union { - u32 data; - struct avtab_extended_perms *xperms; - } u; +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, }; -struct avtab_node { - struct avtab_key key; - struct avtab_datum datum; - struct avtab_node *next; +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, }; -struct avtab_extended_perms { - u8 specified; - u8 driver; - struct extended_perms_data perms; +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 cond_bool_datum { - __u32 value; - int state; +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]; +}; + +typedef int snd_pcm_hw_param_t; + +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_file { + struct snd_pcm_substream *substream; + int no_compat_mmap; + unsigned int user_pversion; +}; + +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_channel_info { + unsigned int channel; + __kernel_off_t offset; + unsigned int first; + unsigned int step; }; -struct role_allow { - u32 role; - u32 new_role; - struct role_allow *next; +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 context { - u32 user; - u32 role; - u32 type; - u32 len; - struct mls_range range; - char *str; +struct snd_pcm_mmap_control32 { + u32 appl_ptr; + u32 avail_min; }; -struct ocontext { +struct snd_pcm_sync_ptr32 { + u32 flags; 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; + struct snd_pcm_mmap_status32 status; + unsigned char reserved[64]; + } s; union { - u32 sclass; - u32 behavior; - } v; - struct context context[2]; - u32 sid[2]; - struct ocontext *next; + struct snd_pcm_mmap_control32 control; + unsigned char reserved[64]; + } c; }; -struct genfs { - char *fstype; - struct ocontext *head; - struct genfs *next; +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 level_datum { - struct mls_level *level; - unsigned char isalias; +struct snd_xferi { + snd_pcm_sframes_t result; + void __attribute__((btf_type_tag("user"))) *buf; + snd_pcm_uframes_t frames; }; -struct sidtab_node_inner; - -struct sidtab_node_leaf; +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; +}; -union sidtab_entry_inner { - struct sidtab_node_inner *ptr_inner; - struct sidtab_node_leaf *ptr_leaf; +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 sidtab_str_cache; +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 sidtab_entry { - u32 sid; - u32 hash; - struct context context; - struct sidtab_str_cache __attribute__((btf_type_tag("rcu"))) *cache; - struct hlist_node list; +struct scm_timestamping64 { + struct __kernel_timespec ts[3]; }; -struct sidtab_isid_entry { - int set; - struct sidtab_entry entry; +struct scm_timestamping { + struct __kernel_old_timespec ts[3]; }; -struct sidtab_convert_params; +struct xdp_umem; -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 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; + struct list_head xskb_list; + u32 heads_cnt; + u16 queue_id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xsk_queue *fq; + struct xsk_queue *cq; + dma_addr_t *dma_pages; + struct xdp_buff_xsk *heads; + struct xdp_desc *tx_descs; + u64 chunk_mask; + u64 addrs_cnt; + u32 free_list_cnt; + u32 dma_pages_cnt; + u32 free_heads_cnt; + u32 headroom; + u32 chunk_size; + u32 chunk_shift; + u32 frame_len; + u8 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; }; -struct sidtab_node_inner { - union sidtab_entry_inner entries[512]; +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 sidtab_node_leaf { - struct sidtab_entry entries[39]; +struct xdp_buff_xsk { + struct xdp_buff xdp; + u8 cb[24]; + dma_addr_t dma; + dma_addr_t frame_dma; + struct xsk_buff_pool *pool; + u64 orig_addr; + struct list_head free_list_node; + struct list_head xskb_list_node; }; -struct sidtab_str_cache { - struct callback_head rcu_member; - struct list_head lru_member; - struct sidtab_entry *parent; - u32 len; - char str[0]; +struct xdp_desc { + __u64 addr; + __u32 len; + __u32 options; }; -struct convert_context_args; +struct xdp_frame_bulk { + int count; + void *xa; + void *q[16]; +}; -struct sidtab_convert_params { - struct convert_context_args *args; - struct sidtab *target; +struct rhashtable_walker { + struct list_head list; + struct bucket_table *tbl; }; -struct convert_context_args { - struct policydb *oldp; - struct policydb *newp; +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 range_trans { - u32 source_type; - u32 target_type; - u32 target_class; +struct xdp_attachment_info { + struct bpf_prog *prog; + u32 flags; }; -struct cat_datum { - u32 value; - unsigned char isalias; +struct bpf_local_storage_data { + struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap; + u8 data[0]; }; -struct shash_instance { - void (*free)(struct shash_instance *); +struct bpf_local_storage_map_bucket; + +struct bpf_local_storage_map { + struct bpf_map map; + struct bpf_local_storage_map_bucket *buckets; + u32 bucket_log; + u16 elem_size; + u16 cache_idx; + struct bpf_mem_alloc selem_ma; + struct bpf_mem_alloc storage_ma; + bool bpf_ma; long: 64; long: 64; long: 64; @@ -60679,5183 +62274,5832 @@ struct shash_instance { long: 64; long: 64; long: 64; - union { - struct { - char head[192]; - struct crypto_instance base; - } s; - struct shash_alg alg; - }; }; -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 bpf_local_storage_map_bucket { + struct hlist_head list; + raw_spinlock_t lock; }; -struct crypto_istat_hash { - atomic64_t hash_cnt; - atomic64_t hash_tlen; - atomic64_t err_cnt; +struct bpf_local_storage_cache { + spinlock_t idx_lock; + u64 idx_usage_counts[16]; }; -struct crypto_shash_spawn { - struct crypto_spawn base; +enum { + SK_DIAG_BPF_STORAGE_REQ_NONE = 0, + SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, + __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, }; -struct rq_wait; +enum { + BPF_LOCAL_STORAGE_GET_F_CREATE = 1, + BPF_SK_STORAGE_GET_F_CREATE = 1, +}; -typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); +enum { + SK_DIAG_BPF_STORAGE_REP_NONE = 0, + SK_DIAG_BPF_STORAGE = 1, + __SK_DIAG_BPF_STORAGE_REP_MAX = 2, +}; -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; +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, }; -struct rq_wait { - wait_queue_head_t wait; - atomic_t inflight; +struct bpf_local_storage_elem { + struct hlist_node map_node; + struct hlist_node snode; + struct bpf_local_storage __attribute__((btf_type_tag("rcu"))) *local_storage; + struct callback_head rcu; + long: 64; + struct bpf_local_storage_data sdata; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct rq_depth { - unsigned int max_depth; - int scale_step; - bool scaled_max; - unsigned int queue_depth; - unsigned int default_depth; -}; +typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t); -typedef void cleanup_cb_t(struct rq_wait *, void *); +typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *); -struct rzg2l_irqc_priv { - void *base; - struct irq_fwspec fwspec[41]; - raw_spinlock_t lock; -}; +typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t); -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, -}; +typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *); -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, +struct bpf_sk_storage_diag { + u32 nr_maps; + struct bpf_map *maps[0]; }; -enum hdmi_scan_mode { - HDMI_SCAN_MODE_NONE = 0, - HDMI_SCAN_MODE_OVERSCAN = 1, - HDMI_SCAN_MODE_UNDERSCAN = 2, - HDMI_SCAN_MODE_RESERVED = 3, +struct bpf_iter_seq_sk_storage_map_info { + struct bpf_map *map; + unsigned int bucket_id; + unsigned int skip_elems; }; -enum hdmi_colorimetry { - HDMI_COLORIMETRY_NONE = 0, - HDMI_COLORIMETRY_ITU_601 = 1, - HDMI_COLORIMETRY_ITU_709 = 2, - HDMI_COLORIMETRY_EXTENDED = 3, +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; + }; }; -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 { + 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 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 { + 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, }; -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, +struct pause_req_info { + struct ethnl_req_info base; + enum ethtool_mac_stats_src src; }; -enum hdmi_quantization_range { - HDMI_QUANTIZATION_RANGE_DEFAULT = 0, - HDMI_QUANTIZATION_RANGE_LIMITED = 1, - HDMI_QUANTIZATION_RANGE_FULL = 2, - HDMI_QUANTIZATION_RANGE_RESERVED = 3, +struct pause_reply_data { + struct ethnl_reply_data base; + struct ethtool_pauseparam pauseparam; + struct ethtool_pause_stats pausestat; }; -enum hdmi_nups { - HDMI_NUPS_UNKNOWN = 0, - HDMI_NUPS_HORIZONTAL = 1, - HDMI_NUPS_VERTICAL = 2, - HDMI_NUPS_BOTH = 3, +enum { + INET_FRAG_FIRST_IN = 1, + INET_FRAG_LAST_IN = 2, + INET_FRAG_COMPLETE = 4, + INET_FRAG_HASH_DEAD = 8, + INET_FRAG_DROP = 16, }; -enum hdmi_ycc_quantization_range { - HDMI_YCC_QUANTIZATION_RANGE_LIMITED = 0, - HDMI_YCC_QUANTIZATION_RANGE_FULL = 1, +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 hdmi_content_type { - HDMI_CONTENT_TYPE_GRAPHICS = 0, - HDMI_CONTENT_TYPE_PHOTO = 1, - HDMI_CONTENT_TYPE_CINEMA = 2, - HDMI_CONTENT_TYPE_GAME = 3, +struct ipq { + struct inet_frag_queue q; + u8 ecn; + u16 max_df_size; + int iif; + unsigned int rid; + struct inet_peer *peer; }; -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 tcp_queue { + TCP_FRAG_IN_WRITE_QUEUE = 0, + TCP_FRAG_IN_RTX_QUEUE = 1, }; -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 inet_csk_ack_state_t { + ICSK_ACK_SCHED = 1, + ICSK_ACK_TIMER = 2, + ICSK_ACK_PUSHED = 4, + ICSK_ACK_PUSHED2 = 8, + ICSK_ACK_NOW = 16, + ICSK_ACK_NOMEM = 32, }; -enum 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, -}; +struct ip6_tnl; -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, +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; }; -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, +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]; }; -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, +struct udp_sock { + struct inet_sock inet; + unsigned long udp_flags; + int pending; + __u8 encap_type; + __u16 len; + __u16 gso_size; + __u16 pcslen; + __u16 pcrlen; + int (*encap_rcv)(struct sock *, struct sk_buff *); + void (*encap_err_rcv)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *); + int (*encap_err_lookup)(struct sock *, struct sk_buff *); + void (*encap_destroy)(struct sock *); + struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *); + int (*gro_complete)(struct sock *, struct sk_buff *, int); + long: 64; + struct sk_buff_head reader_queue; + int forward_deficit; + int forward_threshold; + long: 64; }; -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, +struct xfrm_spi_skb_cb { + struct xfrm_tunnel_skb_cb header; + unsigned int daddroff; + unsigned int family; + __be32 seq; }; -enum hdmi_metadata_type { - HDMI_STATIC_METADATA_TYPE1 = 0, -}; +typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); -struct hdmi_any_infoframe { - enum hdmi_infoframe_type type; - unsigned char version; - unsigned char length; +struct skb_gso_cb { + union { + int mac_offset; + int data_offset; + }; + int encap_level; + __wsum csum; + __u16 csum_start; }; -struct hdmi_avi_infoframe { - enum hdmi_infoframe_type type; - unsigned char version; - unsigned char length; - bool itc; - unsigned char pixel_repeat; - 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; - 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 short top_bar; - unsigned short bottom_bar; - unsigned short left_bar; - unsigned short right_bar; +struct frag_hdr { + __u8 nexthdr; + __u8 reserved; + __be16 frag_off; + __be32 identification; }; -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; -}; +typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); -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 fib6_result; -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; -}; +struct fib6_config; -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; +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 *); + struct sk_buff * (*xfrm6_gro_udp_encap_rcv)(struct sock *, struct list_head *, 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 *); }; -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 fib6_result { + struct fib6_nh *nh; + struct fib6_info *f6i; + u32 fib6_flags; + u8 fib6_type; + struct rt6_info *rt6; }; -struct dp_sdp_header { - u8 HB0; - u8 HB1; - u8 HB2; - u8 HB3; +struct exit_boot_struct { + struct efi_boot_memmap *boot_memmap; + efi_memory_desc_t *runtime_map; + int runtime_entry_count; + void *new_fdt_addr; }; -struct dp_sdp { - struct dp_sdp_header sdp_header; - u8 db[32]; +struct pm_vt_switch { + struct list_head head; + struct device *dev; + bool required; }; -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; -}; +typedef void (*btf_trace_rcu_utilization)(void *, const char *); -struct acpi_table_madt { - struct acpi_table_header header; - u32 address; - u32 flags; -}; +typedef void (*btf_trace_rcu_stall_warning)(void *, const char *, const char *); -typedef u64 phys_cpuid_t; +struct rcu_tasks; -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; -}; +typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *); -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, -}; +typedef void (*pregp_func_t)(struct list_head *); -struct acpi_pci_routing_table { - u32 length; - u32 pin; - u64 address; - u32 source_index; - union { - char pad[4]; - struct { - struct {} __Empty_source; - char source[0]; - }; - }; -}; +typedef void (*pertask_func_t)(struct task_struct *, struct list_head *); -struct acpi_prt_entry { - struct acpi_pci_id id; - u8 pin; - acpi_handle link; - u32 index; -}; +typedef void (*postscan_func_t)(struct list_head *); -enum { - MATCH_MTR = 0, - MATCH_MEQ = 1, - MATCH_MLE = 2, - MATCH_MLT = 3, - MATCH_MGE = 4, - MATCH_MGT = 5, -}; +typedef void (*holdouts_func_t)(struct list_head *, bool, bool *); -struct acpi_fadt_info { - const char *name; - u16 address64; - u16 address32; - u16 length; - u8 default_length; - u8 flags; -}; +typedef void (*postgp_func_t)(struct rcu_tasks *); -struct acpi_fadt_pm_info { - struct acpi_generic_address *target; - u16 source; - u8 register_num; -}; +typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t); -struct pnp_port { - resource_size_t min; - resource_size_t max; - resource_size_t align; - resource_size_t size; - unsigned char flags; +struct rcu_tasks_percpu; + +struct rcu_tasks { + struct rcuwait cbs_wait; + raw_spinlock_t cbs_gbl_lock; + struct mutex tasks_gp_mutex; + int gp_state; + int gp_sleep; + int init_fract; + unsigned long gp_jiffies; + unsigned long gp_start; + unsigned long tasks_gp_seq; + unsigned long n_ipis; + unsigned long n_ipis_fails; + struct task_struct *kthread_ptr; + unsigned long lazy_jiffies; + rcu_tasks_gp_func_t gp_func; + pregp_func_t pregp_func; + pertask_func_t pertask_func; + postscan_func_t postscan_func; + holdouts_func_t holdouts_func; + postgp_func_t postgp_func; + call_rcu_func_t call_func; + struct rcu_tasks_percpu __attribute__((btf_type_tag("percpu"))) *rtpcpu; + int percpu_enqueue_shift; + int percpu_enqueue_lim; + int percpu_dequeue_lim; + unsigned long percpu_dequeue_gpseq; + struct mutex barrier_q_mutex; + atomic_t barrier_q_count; + struct completion barrier_q_completion; + unsigned long barrier_q_seq; + char *name; + char *kname; }; -struct pnp_irq { - pnp_irq_mask_t map; - unsigned char flags; +struct rcu_tasks_percpu { + struct rcu_segcblist cblist; + raw_spinlock_t lock; + unsigned long rtp_jiffies; + unsigned long rtp_n_lock_retries; + struct timer_list lazy_timer; + unsigned int urgent_gp; + struct work_struct rtp_work; + struct irq_work rtp_irq_work; + struct callback_head barrier_q_head; + struct list_head rtp_blkd_tasks; + int cpu; + struct rcu_tasks *rtpp; }; -struct pnp_dma { - unsigned char map; - unsigned char flags; +struct trace_event_raw_rcu_utilization { + struct trace_entry ent; + const char *s; + char __data[0]; }; -struct pnp_mem { - resource_size_t min; - resource_size_t max; - resource_size_t align; - resource_size_t size; - unsigned char flags; +struct trace_event_raw_rcu_stall_warning { + struct trace_entry ent; + const char *rcuname; + const char *msg; + char __data[0]; }; -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 trc_stall_chk_rdr { + int nesting; + int ipi_to_cpu; + u8 needqs; }; -struct ccu_reset_map; +typedef int (*task_call_f)(struct task_struct *, void *); -struct ccu_reset { - void *base; - struct ccu_reset_map *reset_map; - spinlock_t *lock; - struct reset_controller_dev rcdev; +struct trace_event_data_offsets_rcu_utilization {}; + +struct trace_event_data_offsets_rcu_stall_warning {}; + +enum tick_device_mode { + TICKDEV_MODE_PERIODIC = 0, + TICKDEV_MODE_ONESHOT = 1, }; -struct ccu_reset_map { - u16 reg; - u32 bit; +struct tick_device { + struct clock_event_device *evtdev; + enum tick_device_mode mode; }; -struct ccu_nkm { - u32 enable; - u32 lock; - struct ccu_mult_internal n; - struct ccu_mult_internal k; - struct ccu_div_internal m; - struct ccu_mux_internal mux; - unsigned int fixed_post_div; - struct ccu_common common; +enum tick_broadcast_mode { + TICK_BROADCAST_OFF = 0, + TICK_BROADCAST_ON = 1, + TICK_BROADCAST_FORCE = 2, }; -struct _ccu_nkm { - unsigned long n; - unsigned long min_n; - unsigned long max_n; - unsigned long k; - unsigned long min_k; - unsigned long max_k; - unsigned long m; - unsigned long min_m; - unsigned long max_m; +enum tick_broadcast_state { + TICK_BROADCAST_EXIT = 0, + TICK_BROADCAST_ENTER = 1, }; -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 partial_page { + unsigned int offset; + unsigned int len; + unsigned long private; }; -struct virtio_input_event { - __le16 type; - __le16 code; - __le32 value; +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 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 rchan_percpu_buf_dispatcher { + struct rchan_buf *buf; + struct dentry *dentry; }; -struct vcs_poll_data { - struct notifier_block notifier; - unsigned int cons_num; - int event; - wait_queue_head_t waitq; - struct fasync_struct *fasync; +struct bpf_iter__bpf_link { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_link *link; + }; }; -struct vt_notifier_param { - struct vc_data *vc; - unsigned int c; +struct bpf_iter_seq_link_info { + u32 link_id; }; -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 callchain_cpus_entries { + struct callback_head callback_head; + struct perf_callchain_entry *cpu_entries[0]; }; -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 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, }; -enum iommu_fault_type { - IOMMU_FAULT_DMA_UNRECOV = 1, - IOMMU_FAULT_PAGE_REQ = 2, +struct swap_cgroup_ctrl { + struct page **map; + unsigned long length; + spinlock_t lock; }; -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 swap_cgroup { + unsigned short id; }; -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 saved { + struct path link; + struct delayed_call done; + const char *name; + unsigned int seq; }; -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 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 { - IOMMU_SET_DOMAIN_MUST_SUCCEED = 1, + LAST_NORM = 0, + LAST_ROOT = 1, + LAST_DOT = 2, + LAST_DOTDOT = 3, }; -struct group_device { - struct list_head list; - struct device *dev; - char *name; +enum { + WALK_TRAILING = 1, + WALK_MORE = 2, + WALK_NOFOLLOW = 4, }; -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 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 fsl_mc_io; +struct inotify_event_info { + struct fsnotify_event fse; + u32 mask; + int wd; + u32 sync_cookie; + int name_len; + char name[0]; +}; -struct fsl_mc_device_irq; +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 fsl_mc_resource; +struct signalfd_ctx { + sigset_t sigmask; +}; -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; +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, }; -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; - }; +enum { + PROC_ENTRY_PERMANENT = 1, }; -struct fsl_mc_resource_pool; +typedef int (*proc_write_t)(struct file *, char *, size_t); -struct fsl_mc_resource { - enum fsl_mc_pool_type type; - s32 id; +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; - struct fsl_mc_resource_pool *parent_pool; - struct list_head node; + 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]; }; -struct fsl_mc_device_irq { - unsigned int virq; - struct fsl_mc_device *mc_dev; - u8 dev_irq_index; - struct fsl_mc_resource resource; +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 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 dx_entry; + +struct dx_frame { + struct buffer_head *bh; + struct dx_entry *entries; + struct dx_entry *at; }; -struct group_for_pci_data { - struct pci_dev *pdev; - struct iommu_group *group; +struct dx_entry { + __le32 hash; + __le32 block; }; -enum blk_default_limits { - BLK_MAX_SEGMENTS = 128, - BLK_SAFE_MAX_SECTORS = 255, - BLK_MAX_SEGMENT_SIZE = 65536, - BLK_SEG_BOUNDARY_MASK = 4294967295, +struct fake_dirent { + __le32 inode; + __le16 rec_len; + u8 name_len; + u8 file_type; }; -struct scsi_host_busy_iter_data { - bool (*fn)(struct scsi_cmnd *, void *); - void *priv; +struct dx_root_info { + __le32 reserved_zero; + u8 hash_version; + u8 info_length; + u8 indirect_levels; + u8 unused_flags; }; -struct usb_dev_cap_header { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; +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 usb_descriptor_header { - __u8 bLength; - __u8 bDescriptorType; +struct dx_node { + struct fake_dirent fake; + struct dx_entry entries[0]; }; -struct ehci_driver_overrides { - size_t extra_priv_size; - int (*reset)(struct usb_hcd *); - int (*port_power)(struct usb_hcd *, int, bool); +struct dx_countlimit { + __le16 limit; + __le16 count; }; -struct usb_ehci_pdata { - int caps_offset; - unsigned int has_tt: 1; - unsigned int has_synopsys_hc_bug: 1; - unsigned int big_endian_desc: 1; - unsigned int big_endian_mmio: 1; - unsigned int no_io_watchdog: 1; - unsigned int reset_on_resume: 1; - unsigned int dma_mask_64: 1; - unsigned int spurious_oc: 1; - int (*power_on)(struct platform_device *); - void (*power_off)(struct platform_device *); - void (*power_suspend)(struct platform_device *); - int (*pre_setup)(struct usb_hcd *); +struct ext4_dir_entry { + __le32 inode; + __le16 rec_len; + __le16 name_len; + char name[255]; }; -struct soc_device_attribute { - const char *machine; - const char *family; - const char *revision; - const char *serial_number; - const char *soc_id; - const void *data; - const struct attribute_group *custom_attr_group; +struct dx_tail { + u32 dt_reserved; + __le32 dt_checksum; }; -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, +struct dx_map_entry { + u32 hash; + u16 offs; + u16 size; }; -enum ehci_rh_state { - EHCI_RH_HALTED = 0, - EHCI_RH_SUSPENDED = 1, - EHCI_RH_RUNNING = 2, - EHCI_RH_STOPPING = 3, +struct dx_hash_info { + u32 hash; + u32 minor_hash; + int hash_version; + u32 *seed; }; -struct ehci_caps; - -struct ehci_regs; +struct ext4_filename { + const struct qstr *usr_fname; + struct fscrypt_str disk_name; + struct dx_hash_info hinfo; +}; -struct ehci_dbg_port; +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 ehci_qh; +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; +}; -union ehci_shadow; +typedef enum { + EITHER = 0, + INDEX = 1, + DIRENT = 2, + DIRENT_HTREE = 3, +} dirblock_type_t; -struct ehci_itd; +struct nfs_find_desc { + struct nfs_fh *fh; + struct nfs_fattr *fattr; +}; -struct ehci_sitd; +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 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 nlm_cookie { + unsigned char data[32]; + unsigned int len; }; -struct ehci_caps { - u32 hc_capbase; - u32 hcs_params; - u32 hcc_params; - u8 portroute[8]; +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 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 nlm_res { + struct nlm_cookie cookie; + __be32 status; + struct nlm_lock lock; }; -struct ehci_dbg_port { - u32 control; - u32 pids; - u32 data03; - u32 data47; - u32 address; +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 ehci_fstn; +struct ipc_params; -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 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 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 ipc_params { + key_t key; + int flg; + union { + size_t size; + int nsems; + } u; }; -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; +enum { + HUGETLB_SHMFS_INODE = 1, + HUGETLB_ANONHUGE_INODE = 2, }; -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]; +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 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 shm_file_data { + int id; + struct ipc_namespace *ns; + struct file *file; + const struct vm_operations_struct *vm_ops; }; -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; -}; +typedef unsigned int __kernel_uid_t; -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; -}; +typedef unsigned int __kernel_gid_t; -struct ehci_fstn { - __le32 hw_next; - __le32 hw_prev; - dma_addr_t fstn_dma; - union ehci_shadow fstn_next; - long: 64; +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 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; -}; +typedef int __kernel_ipc_pid_t; -struct ehci_platform_priv { - struct clk *clks[4]; - struct reset_control *rsts; - bool reset_on_resume; - bool quirk_poll; - struct timer_list poll_timer; - struct delayed_work poll_work; +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 focaltech_finger_state { - bool active; - bool valid; - unsigned int x; - unsigned int y; +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 focaltech_hw_state { - struct focaltech_finger_state fingers[5]; - unsigned int width; - bool pressed; +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 focaltech_data { - unsigned int x_max; - unsigned int y_max; - struct focaltech_hw_state state; +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; }; -enum tick_broadcast_state { - TICK_BROADCAST_EXIT = 0, - TICK_BROADCAST_ENTER = 1, +struct shminfo { + int shmmax; + int shmmin; + int shmmni; + int shmseg; + int shmall; }; -struct font_desc { - int idx; - const char *name; - unsigned int width; - unsigned int height; - unsigned int charcount; - const void *data; - int pref; +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; }; -enum { - NVMEM_ADD = 1, - NVMEM_REMOVE = 2, - NVMEM_CELL_ADD = 3, - NVMEM_CELL_REMOVE = 4, -}; +typedef s32 compat_ipc_pid_t; -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; - struct gpio_desc *wp_gpio; - struct nvmem_layout *layout; - void *priv; +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 nvmem_cell_table { - const char *nvmem_name; - const struct nvmem_cell_info *cells; - size_t ncells; - struct list_head node; +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 nvmem_cell_entry { - const char *name; - int offset; - size_t raw_len; - int bytes; - int bit_offset; - int nbits; - nvmem_cell_post_process_t read_post_process; - void *priv; - struct device_node *np; - struct nvmem_device *nvmem; - struct list_head node; +struct 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 nvmem_cell_lookup { - const char *nvmem_name; - const char *cell_name; - const char *dev_id; - const char *con_id; - struct list_head node; +struct biovec_slab { + int nr_vecs; + char *name; + struct kmem_cache *slab; }; -struct nvmem_cell { - struct nvmem_cell_entry *entry; - const char *id; - int index; +struct bvec_iter_all { + struct bio_vec bv; + int idx; + unsigned int done; }; -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 bio_slab { + struct kmem_cache *slab; + unsigned int slab_ref; + unsigned int slab_size; + char name[8]; }; -struct debug_reply_data { - struct ethnl_reply_data base; - u32 msg_mask; +enum dd_prio { + DD_RT_PRIO = 0, + DD_BE_PRIO = 1, + DD_IDLE_PRIO = 2, + DD_PRIO_MAX = 2, }; -struct devinet_sysctl_table { - struct ctl_table_header *sysctl_header; - struct ctl_table devinet_vars[34]; +enum dd_data_dir { + DD_READ = 0, + DD_WRITE = 1, }; -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 *); +struct io_stats_per_prio { + uint32_t inserted; + uint32_t merged; + uint32_t dispatched; + atomic_t completed; }; -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, +struct dd_per_prio { + struct list_head dispatch; + struct rb_root sort_list[2]; + struct list_head fifo_list[2]; + sector_t latest_pos[2]; + struct io_stats_per_prio stats; }; -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, +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 { - IFLA_INET_UNSPEC = 0, - IFLA_INET_CONF = 1, - __IFLA_INET_MAX = 2, + MAX_OPT_ARGS = 3, }; -struct ifaddrmsg { - __u8 ifa_family; - __u8 ifa_prefixlen; - __u8 ifa_flags; - __u8 ifa_scope; - __u32 ifa_index; -}; +typedef void sg_free_fn(struct scatterlist *, unsigned int); -struct ifa_cacheinfo { - __u32 ifa_prefered; - __u32 ifa_valid; - __u32 cstamp; - __u32 tstamp; -}; +typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); -struct inet_fill_args { - u32 portid; - u32 seq; - int event; - unsigned int flags; - int netnsid; - int ifindex; +struct sg_append_table { + struct sg_table sgt; + struct scatterlist *prv; + unsigned int total_nents; }; -struct netconfmsg { - __u8 ncm_family; +struct sg_dma_page_iter { + struct sg_page_iter base; }; -struct in_validator_info { - __be32 ivi_addr; - struct in_device *ivi_dev; - struct netlink_ext_ack *extack; -}; +typedef mpi_limb_t UWtype; -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, +typedef unsigned int UHWtype; + +typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); + +struct gpio { + unsigned int gpio; + unsigned long flags; + const char *label; }; enum { - XFRM_MODE_FLAG_TUNNEL = 1, + 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 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 of_pci_range { + union { + u64 pci_addr; + u64 bus_addr; + }; + u64 cpu_addr; + u64 size; + u32 flags; }; -struct ip_beet_phdr { - __u8 nexthdr; - __u8 hdrlen; - __u8 padlen; - __u8 reserved; -}; +struct of_bus; -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 of_pci_range_parser { + struct device_node *node; + struct of_bus *bus; + const __be32 *range; + const __be32 *end; + int na; + int ns; + int pna; + bool dma; }; -struct rpc_sysfs_xprt_switch { - struct kobject kobject; - struct net *net; - struct rpc_xprt_switch *xprt_switch; - struct rpc_xprt *xprt; +struct clk_multiplier { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u8 flags; + spinlock_t *lock; }; -struct rpc_sysfs_xprt { - struct kobject kobject; - struct rpc_xprt *xprt; - struct rpc_xprt_switch *xprt_switch; +struct clk_divider { + struct clk_hw hw; + void *reg; + u8 shift; + u8 width; + u8 flags; + const struct clk_div_table *table; + spinlock_t *lock; }; -struct p9_req_t; +struct mpfs_ccc_out_hw_clock { + struct clk_divider divider; + struct clk_init_data init; + unsigned int id; + u32 reg_offset; +}; -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 mpfs_ccc_pll_hw_clock { + void *base; + const char *name; + const struct clk_parent_data *parents; + unsigned int id; + u32 reg_offset; + u32 shift; + u32 width; + u32 flags; + struct clk_hw hw; + struct clk_init_data init; }; -struct p9_fcall { - u32 size; - u8 id; - u16 tag; - size_t offset; - size_t capacity; - struct kmem_cache *cache; - u8 *sdata; - bool zc; +struct mpfs_ccc_data { + void **pll_base; + struct device *dev; + struct clk_hw_onecell_data hw_data; }; -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; +struct dw8250_port_data { + int line; + struct uart_8250_dma dma; + u8 dlf_size; + bool hw_rs485_support; }; -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, +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; }; -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, +struct dw8250_platform_data { + u8 usr_reg; + u32 cpr_val; + unsigned int quirks; }; -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 platform_object { + struct platform_device pdev; + char name[0]; }; -enum die_val { - DIE_UNUSED = 0, - DIE_TRAP = 1, - DIE_OOPS = 2, +struct irq_affinity_devres { + unsigned int count; + unsigned int irq[0]; }; -enum bug_trap_type { - BUG_TRAP_TYPE_NONE = 0, - BUG_TRAP_TYPE_WARN = 1, - BUG_TRAP_TYPE_BUG = 2, +enum dax_access_mode { + DAX_ACCESS = 0, + DAX_RECOVERY_WRITE = 1, }; -typedef u32 bug_insn_t; - -struct irqentry_state { - union { - bool exit_rcu; - bool lockdep; - }; +enum dax_driver_type { + DAXDRV_KMEM_TYPE = 0, + DAXDRV_DEVICE_TYPE = 1, }; -typedef struct irqentry_state irqentry_state_t; - -typedef long (*syscall_t)(ulong, ulong, ulong, ulong, ulong, ulong, ulong); - -enum { - AFFINITY = 0, - AFFINITY_LIST = 1, - EFFECTIVE = 2, - EFFECTIVE_LIST = 3, +enum id_action { + ID_REMOVE = 0, + ID_ADD = 1, }; -struct trace_bprintk_fmt { +struct dax_id { struct list_head list; - const char *fmt; + char dev_name[30]; }; -enum bpf_audit { - BPF_AUDIT_LOAD = 0, - BPF_AUDIT_UNLOAD = 1, - BPF_AUDIT_MAX = 2, -}; +struct dax_region; -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, -}; +struct dev_dax_range; -enum bpf_stats_type { - BPF_STATS_RUN_TIME = 0, +struct dev_dax { + struct dax_region *region; + struct dax_device *dax_dev; + unsigned int align; + int target_node; + bool dyn_id; + int id; + struct ida ida; + struct device dev; + struct dev_pagemap *pgmap; + int nr_range; + struct dev_dax_range *ranges; }; -typedef u64 (*btf_bpf_sys_bpf)(int, union bpf_attr *, u32); - -typedef u64 (*btf_bpf_sys_close)(u32); +struct dax_region { + int id; + int target_node; + struct kref kref; + struct device *dev; + unsigned int align; + struct ida ida; + struct resource res; + struct device *seed; + struct device *youngest; +}; -typedef u64 (*btf_bpf_kallsyms_lookup_name)(const char *, int, int, u64 *); +struct dax_mapping; -struct bpf_tramp_link { - struct bpf_link link; - struct hlist_node tramp_hlist; - u64 cookie; +struct dev_dax_range { + unsigned long pgoff; + struct range range; + struct dax_mapping *mapping; }; -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 dax_mapping { + struct device dev; + int range_id; + int id; }; -struct bpf_raw_tp_link { - struct bpf_link link; - struct bpf_raw_event_map *btp; +struct dax_device_driver { + struct device_driver drv; + struct list_head ids; + enum dax_driver_type type; + int (*probe)(struct dev_dax *); + void (*remove)(struct dev_dax *); }; -struct bpf_perf_link { - struct bpf_link link; - struct file *perf_file; +typedef struct { + u64 val; +} pfn_t; + +struct dax_operations { + long (*direct_access)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *); + bool (*dax_supported)(struct dax_device *, struct block_device *, int, sector_t, sector_t); + int (*zero_page_range)(struct dax_device *, unsigned long, size_t); + size_t (*recovery_write)(struct dax_device *, unsigned long, void *, size_t, struct iov_iter *); }; -struct bpf_spin_lock { - __u32 val; +struct dev_dax_data { + struct dax_region *dax_region; + struct dev_pagemap *pgmap; + resource_size_t size; + int id; }; -struct bpf_prog_kstats { - u64 nsecs; - u64 cnt; - u64 misses; +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 bpf_btf_info { - __u64 btf; - __u32 btf_size; - __u32 id; - __u64 name; - __u32 name_len; - __u32 kernel_btf; +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 bpf_attach_target_info { - struct btf_func_model fmodel; - long tgt_addr; - struct module *tgt_mod; - const char *tgt_name; - const struct btf_type *tgt_type; +struct ata_show_ering_arg { + char *buf; + int written; }; -struct bpf_tramp_run_ctx { - struct bpf_run_ctx run_ctx; - u64 bpf_cookie; - struct bpf_run_ctx *saved_run_ctx; +struct spi_device_id; + +struct spi_driver { + const struct spi_device_id *id_table; + int (*probe)(struct spi_device *); + void (*remove)(struct spi_device *); + void (*shutdown)(struct spi_device *); + struct device_driver driver; }; -enum pageblock_bits { - PB_migrate = 0, - PB_migrate_end = 2, - PB_migrate_skip = 3, - NR_PAGEBLOCK_BITS = 4, +struct spi_mem_driver { + struct spi_driver spidrv; + int (*probe)(struct spi_mem *); + int (*remove)(struct spi_mem *); + void (*shutdown)(struct spi_mem *); }; -enum mminit_level { - MMINIT_WARNING = 0, - MMINIT_VERIFY = 1, - MMINIT_TRACE = 2, +struct spi_device_id { + char name[32]; + kernel_ulong_t driver_data; }; -struct file_clone_range { - __s64 src_fd; - __u64 src_offset; - __u64 src_length; - __u64 dest_offset; +enum csr_target { + MACRO_CTRL = 7, }; -struct fsxattr { - __u32 fsx_xflags; - __u32 fsx_extsize; - __u32 fsx_nextents; - __u32 fsx_projid; - __u32 fsx_cowextsize; - unsigned char fsx_pad[8]; +struct e1000_opt_list; + +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; + struct e1000_opt_list *p; + } l; + } arg; }; -struct file_dedupe_range_info { - __s64 dest_fd; - __u64 dest_offset; - __u64 bytes_deduped; - __s32 status; - __u32 reserved; +struct e1000_opt_list { + int i; + char *str; }; -struct file_dedupe_range { - __u64 src_offset; - __u64 src_length; - __u16 dest_count; - __u16 reserved1; - __u32 reserved2; - struct file_dedupe_range_info info[0]; +enum usb_phy_interface { + USBPHY_INTERFACE_MODE_UNKNOWN = 0, + USBPHY_INTERFACE_MODE_UTMI = 1, + USBPHY_INTERFACE_MODE_UTMIW = 2, + USBPHY_INTERFACE_MODE_ULPI = 3, + USBPHY_INTERFACE_MODE_SERIAL = 4, + USBPHY_INTERFACE_MODE_HSIC = 5, }; -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]; +typedef void (*btf_trace_usb_gadget_frame_number)(void *, struct usb_gadget *, int); + +struct usb_udc; + +struct usb_gadget_ops; + +struct usb_ep; + +struct usb_otg_caps; + +struct usb_gadget { + struct work_struct work; + struct usb_udc *udc; + const struct usb_gadget_ops *ops; + struct usb_ep *ep0; + struct list_head ep_list; + enum usb_device_speed speed; + enum usb_device_speed max_speed; + enum usb_ssp_rate ssp_rate; + enum usb_ssp_rate max_ssp_rate; + enum usb_device_state state; + const char *name; + struct device dev; + unsigned int isoch_delay; + unsigned int out_epnum; + unsigned int in_epnum; + unsigned int mA; + struct usb_otg_caps *otg_caps; + unsigned int sg_supported: 1; + unsigned int is_otg: 1; + unsigned int is_a_peripheral: 1; + unsigned int b_hnp_enable: 1; + unsigned int a_hnp_support: 1; + unsigned int a_alt_hnp_support: 1; + unsigned int hnp_polling_support: 1; + unsigned int host_request_flag: 1; + unsigned int quirk_ep_out_aligned_size: 1; + unsigned int quirk_altset_not_supp: 1; + unsigned int quirk_stall_not_supp: 1; + unsigned int quirk_zlp_not_supp: 1; + unsigned int quirk_avoids_skb_reserve: 1; + unsigned int is_selfpowered: 1; + unsigned int deactivated: 1; + unsigned int connected: 1; + unsigned int lpm_capable: 1; + unsigned int wakeup_capable: 1; + unsigned int wakeup_armed: 1; + int irq; + int id_number; +}; + +struct usb_dcd_config_params; + +struct usb_gadget_driver; + +struct usb_gadget_ops { + int (*get_frame)(struct usb_gadget *); + int (*wakeup)(struct usb_gadget *); + int (*func_wakeup)(struct usb_gadget *, int); + int (*set_remote_wakeup)(struct usb_gadget *, int); + int (*set_selfpowered)(struct usb_gadget *, int); + int (*vbus_session)(struct usb_gadget *, int); + int (*vbus_draw)(struct usb_gadget *, unsigned int); + int (*pullup)(struct usb_gadget *, int); + int (*ioctl)(struct usb_gadget *, unsigned int, unsigned long); + void (*get_config_params)(struct usb_gadget *, struct usb_dcd_config_params *); + int (*udc_start)(struct usb_gadget *, struct usb_gadget_driver *); + int (*udc_stop)(struct usb_gadget *); + void (*udc_set_speed)(struct usb_gadget *, enum usb_device_speed); + void (*udc_set_ssp_rate)(struct usb_gadget *, enum usb_ssp_rate); + void (*udc_async_callbacks)(struct usb_gadget *, bool); + struct usb_ep * (*match_ep)(struct usb_gadget *, struct usb_endpoint_descriptor *, struct usb_ss_ep_comp_descriptor *); + int (*check_config)(struct usb_gadget *); +}; + +struct usb_dcd_config_params { + __u8 bU1devExitLat; + __le16 bU2DevExitLat; + __u8 besl_baseline; + __u8 besl_deep; +}; + +struct usb_gadget_driver { + char *function; + enum usb_device_speed max_speed; + int (*bind)(struct usb_gadget *, struct usb_gadget_driver *); + void (*unbind)(struct usb_gadget *); + int (*setup)(struct usb_gadget *, const struct usb_ctrlrequest *); + void (*disconnect)(struct usb_gadget *); + void (*suspend)(struct usb_gadget *); + void (*resume)(struct usb_gadget *); + void (*reset)(struct usb_gadget *); + struct device_driver driver; + char *udc_name; + unsigned int match_existing_only: 1; + bool is_bound: 1; }; -enum { - DIO_LOCKING = 1, - DIO_SKIP_HOLES = 2, +struct usb_ep_caps { + unsigned int type_control: 1; + unsigned int type_iso: 1; + unsigned int type_bulk: 1; + unsigned int type_int: 1; + unsigned int dir_in: 1; + unsigned int dir_out: 1; }; -typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); +struct usb_ep_ops; -struct dio { - int flags; - blk_opf_t opf; - struct gendisk *bio_disk; - struct inode *inode; - loff_t i_size; - dio_iodone_t *end_io; - bool is_pinned; - void *private; - spinlock_t bio_lock; - int page_errors; - int is_async; - bool defer_completion; - bool should_dirty; - int io_error; - unsigned long refcount; - struct bio *bio_list; - struct task_struct *waiter; - struct kiocb *iocb; - ssize_t result; - union { - struct page *pages[64]; - struct work_struct complete_work; - }; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct usb_ep { + void *driver_data; + const char *name; + const struct usb_ep_ops *ops; + struct list_head ep_list; + struct usb_ep_caps caps; + bool claimed; + bool enabled; + unsigned int maxpacket: 16; + unsigned int maxpacket_limit: 16; + unsigned int max_streams: 16; + unsigned int mult: 2; + unsigned int maxburst: 5; + u8 address; + const struct usb_endpoint_descriptor *desc; + const struct usb_ss_ep_comp_descriptor *comp_desc; +}; + +struct usb_request; + +struct usb_ep_ops { + int (*enable)(struct usb_ep *, const struct usb_endpoint_descriptor *); + int (*disable)(struct usb_ep *); + void (*dispose)(struct usb_ep *); + struct usb_request * (*alloc_request)(struct usb_ep *, gfp_t); + void (*free_request)(struct usb_ep *, struct usb_request *); + int (*queue)(struct usb_ep *, struct usb_request *, gfp_t); + int (*dequeue)(struct usb_ep *, struct usb_request *); + int (*set_halt)(struct usb_ep *, int); + int (*set_wedge)(struct usb_ep *); + int (*fifo_status)(struct usb_ep *); + void (*fifo_flush)(struct usb_ep *); +}; + +struct usb_request { + void *buf; + unsigned int length; + dma_addr_t dma; + struct scatterlist *sg; + unsigned int num_sgs; + unsigned int num_mapped_sgs; + unsigned int stream_id: 16; + unsigned int is_last: 1; + unsigned int no_interrupt: 1; + unsigned int zero: 1; + unsigned int short_not_ok: 1; + unsigned int dma_mapped: 1; + void (*complete)(struct usb_ep *, struct usb_request *); + void *context; + struct list_head list; + unsigned int frame_number; + int status; + unsigned int actual; }; -struct dio_submit { - struct bio *bio; - unsigned int blkbits; - unsigned int blkfactor; - unsigned int start_zero_done; - int pages_in_io; - sector_t block_in_file; - unsigned int blocks_available; - int reap_counter; - sector_t final_block_in_request; - int boundary; - get_block_t *get_block; - loff_t logical_offset_in_bio; - sector_t final_block_in_bio; - sector_t next_block_for_io; - struct page *cur_page; - unsigned int cur_page_offset; - unsigned int cur_page_len; - sector_t cur_page_block; - loff_t cur_page_fs_offset; - struct iov_iter *iter; - unsigned int head; - unsigned int tail; - size_t from; - size_t to; +typedef void (*btf_trace_usb_gadget_wakeup)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_set_remote_wakeup)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_set_selfpowered)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_clear_selfpowered)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_vbus_connect)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_vbus_draw)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_vbus_disconnect)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_connect)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_disconnect)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_deactivate)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_gadget_activate)(void *, struct usb_gadget *, int); + +typedef void (*btf_trace_usb_ep_set_maxpacket_limit)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_enable)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_disable)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_set_halt)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_clear_halt)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_set_wedge)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_fifo_status)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_fifo_flush)(void *, struct usb_ep *, int); + +typedef void (*btf_trace_usb_ep_alloc_request)(void *, struct usb_ep *, struct usb_request *, int); + +typedef void (*btf_trace_usb_ep_free_request)(void *, struct usb_ep *, struct usb_request *, int); + +typedef void (*btf_trace_usb_ep_queue)(void *, struct usb_ep *, struct usb_request *, int); + +typedef void (*btf_trace_usb_ep_dequeue)(void *, struct usb_ep *, struct usb_request *, int); + +typedef void (*btf_trace_usb_gadget_giveback_request)(void *, struct usb_ep *, struct usb_request *, int); + +struct trace_event_raw_udc_log_gadget { + struct trace_entry ent; + enum usb_device_speed speed; + enum usb_device_speed max_speed; + enum usb_device_state state; + unsigned int mA; + unsigned int sg_supported; + unsigned int is_otg; + unsigned int is_a_peripheral; + unsigned int b_hnp_enable; + unsigned int a_hnp_support; + unsigned int hnp_polling_support; + unsigned int host_request_flag; + unsigned int quirk_ep_out_aligned_size; + unsigned int quirk_altset_not_supp; + unsigned int quirk_stall_not_supp; + unsigned int quirk_zlp_not_supp; + unsigned int is_selfpowered; + unsigned int deactivated; + unsigned int connected; + int ret; + char __data[0]; }; -typedef unsigned int iov_iter_extraction_t; +struct trace_event_raw_udc_log_ep { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int maxpacket; + unsigned int maxpacket_limit; + unsigned int max_streams; + unsigned int mult; + unsigned int maxburst; + u8 address; + bool claimed; + bool enabled; + int ret; + char __data[0]; +}; -enum isofs_file_format { - isofs_file_normal = 0, - isofs_file_sparse = 1, - isofs_file_compressed = 2, +struct trace_event_raw_udc_log_req { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int length; + unsigned int actual; + unsigned int num_sgs; + unsigned int num_mapped_sgs; + unsigned int stream_id; + unsigned int no_interrupt; + unsigned int zero; + unsigned int short_not_ok; + int status; + int ret; + struct usb_request *req; + char __data[0]; }; -enum { - Opt_block = 0, - Opt_check_r = 1, - Opt_check_s = 2, - Opt_cruft = 3, - Opt_gid___4 = 4, - Opt_ignore___2 = 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 = 13, - Opt_session = 14, - Opt_uid___4 = 15, - Opt_unhide = 16, - Opt_utf8 = 17, - Opt_err___3 = 18, - Opt_nocompress = 19, - Opt_hide = 20, - Opt_showassoc = 21, - Opt_dmode = 22, - Opt_overriderockperm = 23, +struct trace_event_data_offsets_udc_log_ep { + u32 name; }; -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 trace_event_data_offsets_udc_log_req { + u32 name; }; -struct isofs_iget5_callback_data { - unsigned long block; - unsigned long offset; +struct trace_event_data_offsets_udc_log_gadget {}; + +struct watchdog_core_data { + struct device dev; + struct cdev cdev; + struct watchdog_device *wdd; + struct mutex lock; + ktime_t last_keepalive; + ktime_t last_hw_keepalive; + ktime_t open_deadline; + struct hrtimer timer; + struct kthread_work work; + unsigned long status; }; -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]; +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); + +struct clocksource_mmio { + void *reg; + struct clocksource clksrc; }; -struct iso_volume_descriptor { - __u8 type[1]; - char id[5]; - __u8 version[1]; - __u8 data[2041]; +enum rpmsg_ns_flags { + RPMSG_NS_CREATE = 0, + RPMSG_NS_DESTROY = 1, }; -struct hs_volume_descriptor { - __u8 foo[8]; - __u8 type[1]; - char id[5]; - __u8 version[1]; - __u8 data[2033]; +struct virtproc_info; + +struct virtio_rpmsg_channel { + struct rpmsg_device rpdev; + struct virtproc_info *vrp; }; -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 virtproc_info { + struct virtio_device *vdev; + struct virtqueue *rvq; + struct virtqueue *svq; + void *rbufs; + void *sbufs; + unsigned int num_bufs; + unsigned int buf_size; + int last_sbuf; + dma_addr_t bufs_dma; + struct mutex tx_lock; + struct idr endpoints; + struct mutex endpoints_lock; + wait_queue_head_t sendq; + atomic_t sleepers; }; -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]; +typedef __u16 __rpmsg16; + +typedef __u32 __rpmsg32; + +struct rpmsg_hdr { + __rpmsg32 src; + __rpmsg32 dst; + __rpmsg32 reserved; + __rpmsg16 len; + __rpmsg16 flags; + u8 data[0]; }; -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 rpmsg_ns_msg { + char name[32]; + __rpmsg32 addr; + __rpmsg32 flags; }; -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 pcm_format_data { + unsigned char width; + unsigned char phys; + signed char le; + signed char signd; + unsigned char silence[8]; }; -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 netdev_name_node { + struct hlist_node hlist; + struct list_head list; + struct net_device *dev; + const char *name; }; -struct nfs4_ssc_client_ops { - struct file * (*sco_open)(struct vfsmount *, struct nfs_fh *, nfs4_stateid *); - void (*sco_close)(struct file *); +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 { - 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, + 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 netloc_type4 { - NL4_NAME = 1, - NL4_URL = 2, - NL4_NETADDR = 3, +struct class_attribute { + struct attribute attr; + ssize_t (*show)(const struct class *, const struct class_attribute *, char *); + ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t); }; -struct nfs42_netaddr { - char netid[5]; - char addr[58]; - u32 netid_len; - u32 addr_len; +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 nl4_server { - enum netloc_type4 nl4_type; - union { - struct { - int nl4_str_sz; - char nl4_str[1025]; - }; - struct nfs42_netaddr nl4_addr; - } u; +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 nfs42_copy_notify_res { - struct nfs4_sequence_res cnr_seq_res; - struct nfstime4 cnr_lease_time; - nfs4_stateid cnr_stateid; - struct nl4_server cnr_src; +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, }; -struct msg; - -struct msqid_ds { - struct ipc_perm msg_perm; - struct msg *msg_first; - struct msg *msg_last; - __kernel_old_time_t msg_stime; - __kernel_old_time_t msg_rtime; - __kernel_old_time_t msg_ctime; - unsigned long msg_lcbytes; - unsigned long msg_lqbytes; - unsigned short msg_cbytes; - unsigned short msg_qnum; - unsigned short msg_qbytes; - __kernel_ipc_pid_t msg_lspid; - __kernel_ipc_pid_t msg_lrpid; +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 msgbuf { - __kernel_long_t mtype; - char mtext[1]; +struct mm_reply_data { + struct ethnl_reply_data base; + struct ethtool_mm_state state; + struct ethtool_mm_stats stats; }; -typedef s32 compat_ssize_t; - -struct msg_queue { - struct kern_ipc_perm q_perm; - time64_t q_stime; - time64_t q_rtime; - time64_t q_ctime; - unsigned long q_cbytes; - unsigned long q_qnum; - unsigned long q_qbytes; - struct pid *q_lspid; - struct pid *q_lrpid; - struct list_head q_messages; - struct list_head q_receivers; - struct list_head q_senders; - long: 64; - long: 64; +struct tsq_tasklet { + struct tasklet_struct tasklet; + struct list_head head; }; -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; +enum tsq_flags { + TSQF_THROTTLED = 1, + TSQF_QUEUED = 2, + TCPF_TSQ_DEFERRED = 4, + TCPF_WRITE_TIMER_DEFERRED = 8, + TCPF_DELACK_TIMER_DEFERRED = 16, + TCPF_MTU_REDUCED_DEFERRED = 32, + TCPF_ACK_DEFERRED = 64, }; -struct msg_sender { - struct list_head list; - struct task_struct *tsk; - size_t msgsz; -}; +struct tcp_ao_key; -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 tcp_md5sig_key; -struct msginfo { - int msgpool; - int msgmap; - int msgmax; - int msgmnb; - int msgmni; - int msgssz; - int msgtql; - unsigned short msgseg; +struct tcp_key { + union { + struct { + struct tcp_ao_key *ao_key; + char *traffic_key; + u32 sne; + u8 rcv_next; + }; + struct tcp_md5sig_key *md5_key; + }; + enum { + TCP_KEY_NONE = 0, + TCP_KEY_MD5 = 1, + TCP_KEY_AO = 2, + } type; }; -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; +union tcp_ao_addr { + struct in_addr a4; + struct in6_addr a6; }; -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 tcp_ao_key { + struct hlist_node node; + union tcp_ao_addr addr; + u8 key[80]; + unsigned int tcp_sigpool_id; + unsigned int digest_size; + int l3index; + u8 prefixlen; + u8 family; + u8 keylen; + u8 keyflags; + u8 sndid; + u8 rcvid; + u8 maclen; + struct callback_head rcu; + atomic64_t pkt_good; + atomic64_t pkt_bad; + u8 traffic_keys[0]; }; -struct compat_msgbuf { - compat_long_t mtype; - char mtext[1]; +struct tcp_md5sig_key { + struct hlist_node node; + u8 keylen; + u8 family; + u8 prefixlen; + u8 flags; + union tcp_ao_addr addr; + int l3index; + u8 key[80]; + struct callback_head rcu; }; -struct aa_file_ctx { - spinlock_t lock; - struct aa_label __attribute__((btf_type_tag("rcu"))) *label; - u32 allow; +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, }; -typedef ZSTD_ErrorCode ERR_enum; - -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, +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, }; -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; +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, }; -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; +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, }; -struct nla_bitfield32 { - __u32 value; - __u32 selector; +enum tcp_synack_type { + TCP_SYNACK_NORMAL = 0, + TCP_SYNACK_FASTOPEN = 1, + TCP_SYNACK_COOKIE = 2, }; -struct pinctrl_maps { - struct list_head node; - const struct pinctrl_map *maps; - unsigned int num_maps; +enum tsq_enum { + TSQ_THROTTLED = 0, + TSQ_QUEUED = 1, + TCP_TSQ_DEFERRED = 2, + TCP_WRITE_TIMER_DEFERRED = 3, + TCP_DELACK_TIMER_DEFERRED = 4, + TCP_MTU_REDUCED_DEFERRED = 5, + TCP_ACK_DEFERRED = 6, }; -struct pctldev; - -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; +enum { + BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, + BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, }; -union msi_instance_cookie { - u64 value; - void *ptr; +enum { + TCP_NO_QUEUE = 0, + TCP_RECV_QUEUE = 1, + TCP_SEND_QUEUE = 2, + TCP_QUEUES_NR = 3, }; -struct msi_desc_data { - union msi_domain_cookie dcookie; - union msi_instance_cookie icookie; +enum { + SKB_FCLONE_UNAVAILABLE = 0, + SKB_FCLONE_ORIG = 1, + SKB_FCLONE_CLONE = 2, }; -struct arch_msi_msg_addr_lo { - u32 address_lo; +struct sk_buff_fclones { + struct sk_buff skb1; + struct sk_buff skb2; + refcount_t fclone_ref; }; -typedef struct arch_msi_msg_addr_lo arch_msi_msg_addr_lo_t; +struct tcp_request_sock_ops; -struct arch_msi_msg_addr_hi { - u32 address_hi; +struct tcp_request_sock { + struct inet_request_sock req; + const struct tcp_request_sock_ops *af_specific; + u64 snt_synack; + bool tfo_listener; + bool is_mptcp; + bool req_usec_ts; + u32 txhash; + u32 rcv_isn; + u32 snt_isn; + u32 ts_off; + u32 last_oow_ack_time; + u32 rcv_nxt; + u8 syn_tos; }; -typedef struct arch_msi_msg_addr_hi arch_msi_msg_addr_hi_t; - -struct arch_msi_msg_data { - u32 data; +struct tcp_request_sock_ops { + u16 mss_clamp; + 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 *); }; -typedef struct arch_msi_msg_data arch_msi_msg_data_t; +struct mptcp_out_options {}; -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 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 msi_desc { - unsigned int irq; - unsigned int nvec_used; - struct device *dev; - struct msi_msg msg; - struct irq_affinity_desc *affinity; - struct device_attribute *sysfs_attrs; - void (*write_msi_msg)(struct msi_desc *, void *); - void *write_msi_msg_data; - u16 msi_index; +struct bpf_sock_ops_kern { + struct sock *sk; union { - struct pci_msi_desc pci; - struct msi_desc_data data; + 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 msi_domain_ops; +struct udp_tunnel_info { + unsigned short type; + sa_family_t sa_family; + __be16 port; + u8 hw_priv; +}; -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 udp_tunnel_nic_shared { + struct udp_tunnel_nic *udp_tunnel_nic_info; + struct list_head devices; }; -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 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 hpx_type0 { - u32 revision; - u8 cache_line_size; - u8 latency_timer; - u8 enable_serr; - u8 enable_perr; +struct lwtunnel_encap_ops { + int (*build_state)(struct net *, struct nlattr *, unsigned int, const void *, struct lwtunnel_state **, struct netlink_ext_ack *); + void (*destroy_state)(struct lwtunnel_state *); + int (*output)(struct net *, struct sock *, struct sk_buff *); + int (*input)(struct sk_buff *); + int (*fill_encap)(struct sk_buff *, struct lwtunnel_state *); + int (*get_encap_size)(struct lwtunnel_state *); + int (*cmp_encap)(struct lwtunnel_state *, struct lwtunnel_state *); + int (*xmit)(struct sk_buff *); + struct module *owner; }; -enum 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 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 hpx_type3_fn_type { - HPX_FN_NORMAL = 1, - HPX_FN_SRIOV_PHYS = 2, - HPX_FN_SRIOV_VIRT = 4, +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, }; -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; +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, }; -struct hpx_type1 { - u32 revision; - u8 max_mem_read; - u8 avg_max_split; - u16 tot_max_split; +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, }; -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; +enum { + LWTUNNEL_IP_OPT_VXLAN_UNSPEC = 0, + LWTUNNEL_IP_OPT_VXLAN_GBP = 1, + __LWTUNNEL_IP_OPT_VXLAN_MAX = 2, }; -struct acpi_get_devices_info { - acpi_walk_callback user_function; - void *context; - const char *hid; +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, }; -struct aml_resource_small_header { - u8 descriptor_type; +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 aml_resource_large_header { - u8 descriptor_type; - u16 resource_length; -} __attribute__((packed)); +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 aml_resource_irq { - u8 descriptor_type; - u16 irq_mask; - u8 flags; -} __attribute__((packed)); +struct erspan_metadata { + int version; + union { + __be32 index; + struct erspan_md2 md2; + } u; +}; -struct aml_resource_dma { - u8 descriptor_type; - u8 dma_channel_mask; - u8 flags; +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 aml_resource_start_dependent { - u8 descriptor_type; - u8 flags; +struct vxlan_metadata { + u32 gbp; }; -struct aml_resource_end_dependent { - u8 descriptor_type; +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 aml_resource_io { - u8 descriptor_type; - u8 flags; - u16 minimum; - u16 maximum; - u8 alignment; - u8 address_length; +struct xfrm_if_decode_session_result { + struct net *net; + u32 if_id; }; -struct aml_resource_fixed_io { - u8 descriptor_type; - u16 address; - u8 address_length; -} __attribute__((packed)); +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 *); +}; -struct aml_resource_fixed_dma { - u8 descriptor_type; - u16 request_lines; - u16 channels; - u8 width; -} __attribute__((packed)); +struct flow_dissector_key { + enum flow_dissector_key_id key_id; + size_t offset; +}; -struct aml_resource_vendor_small { - u8 descriptor_type; +enum { + XFRM_POLICY_TYPE_MAIN = 0, + XFRM_POLICY_TYPE_SUB = 1, + XFRM_POLICY_TYPE_MAX = 2, + XFRM_POLICY_TYPE_ANY = 255, }; -struct aml_resource_end_tag { - u8 descriptor_type; - u8 checksum; +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 aml_resource_memory24 { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u16 minimum; - u16 maximum; - u16 alignment; - u16 address_length; -} __attribute__((packed)); +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, +}; -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)); +enum ip_conntrack_dir { + IP_CT_DIR_ORIGINAL = 0, + IP_CT_DIR_REPLY = 1, + IP_CT_DIR_MAX = 2, +}; -struct aml_resource_vendor_large { - u8 descriptor_type; - u16 resource_length; -} __attribute__((packed)); +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 aml_resource_memory32 { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u32 minimum; - u32 maximum; - u32 alignment; - u32 address_length; -} __attribute__((packed)); +struct xfrm_pol_inexact_key { + possible_net_t net; + u32 if_id; + u16 family; + u8 dir; + u8 type; +}; -struct aml_resource_fixed_memory32 { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u32 address; - u32 address_length; -} __attribute__((packed)); +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 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)); +enum nf_nat_manip_type; -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 nf_nat_hook { + int (*parse_nat_setup)(struct nf_conn *, enum nf_nat_manip_type, const struct nlattr *); + void (*decode_session)(struct sk_buff *, struct flowi *); + unsigned int (*manip_pkt)(struct sk_buff *, struct nf_conn *, enum nf_nat_manip_type, enum ip_conntrack_dir); + void (*remove_nat_bysrc)(struct nf_conn *); +}; -struct aml_resource_address64 { - u8 descriptor_type; - u16 resource_length; - u8 resource_type; +struct xfrm_flo { + struct dst_entry *dst_orig; 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 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 aml_resource_extended_irq { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u8 interrupt_count; +struct xfrm_flow_keys { + struct flow_dissector_key_basic basic; + struct flow_dissector_key_control control; union { - u32 interrupt; - struct { - struct {} __Empty_interrupts; - u32 interrupts[0]; - }; - }; -} __attribute__((packed)); - -struct aml_resource_gpio { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 connection_type; - u16 flags; - u16 int_flags; - u8 pin_config; - u16 drive_strength; - u16 debounce_timeout; - u16 pin_table_offset; - u8 res_source_index; - u16 res_source_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_i2c_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; - u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; - u32 connection_speed; - u16 slave_address; -} __attribute__((packed)); - -struct aml_resource_spi_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; - u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; - u32 connection_speed; - u8 data_bit_length; - u8 clock_phase; - u8 clock_polarity; - u16 device_selection; -} __attribute__((packed)); + struct flow_dissector_key_ipv4_addrs ipv4; + struct flow_dissector_key_ipv6_addrs ipv6; + } addrs; + struct flow_dissector_key_ip ip; + struct flow_dissector_key_icmp icmp; + struct flow_dissector_key_ports ports; + struct flow_dissector_key_keyid gre; +}; -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 xfrm_pol_inexact_candidates { + struct hlist_head *res[4]; +}; -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 xfrmk_spdinfo { + u32 incnt; + u32 outcnt; + u32 fwdcnt; + u32 inscnt; + u32 outscnt; + u32 fwdscnt; + u32 spdhcnt; + u32 spdhmcnt; +}; -struct aml_resource_common_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; +struct xfrm_policy_walk { + struct xfrm_policy_walk_entry walk; u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; -} __attribute__((packed)); - -struct aml_resource_pin_function { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u8 pin_config; - u16 function_number; - u16 pin_table_offset; - u8 res_source_index; - u16 res_source_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_pin_config { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u8 pin_config_type; - u32 pin_config_value; - u16 pin_table_offset; - u8 res_source_index; - u16 res_source_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_pin_group { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u16 pin_table_offset; - u16 label_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_pin_group_function { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u16 function_number; - u8 res_source_index; - u16 res_source_offset; - u16 res_source_label_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_pin_group_config { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u8 pin_config_type; - u32 pin_config_value; - u8 res_source_index; - u16 res_source_offset; - u16 res_source_label_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_clock_input { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u16 frequency_divisor; - u32 frequency_numerator; -} __attribute__((packed)); - -struct aml_resource_address { - u8 descriptor_type; - u16 resource_length; - u8 resource_type; - u8 flags; - u8 specific_flags; -} __attribute__((packed)); + u32 seq; +}; -union aml_resource { - u8 descriptor_type; - struct aml_resource_small_header small_header; - struct aml_resource_large_header large_header; - struct aml_resource_irq irq; - struct aml_resource_dma dma; - struct aml_resource_start_dependent start_dpf; - struct aml_resource_end_dependent end_dpf; - struct aml_resource_io io; - struct aml_resource_fixed_io fixed_io; - struct aml_resource_fixed_dma fixed_dma; - struct aml_resource_vendor_small vendor_small; - struct aml_resource_end_tag end_tag; - struct aml_resource_memory24 memory24; - struct aml_resource_generic_register generic_reg; - struct aml_resource_vendor_large vendor_large; - struct aml_resource_memory32 memory32; - struct aml_resource_fixed_memory32 fixed_memory32; - struct aml_resource_address16 address16; - struct aml_resource_address32 address32; - struct aml_resource_address64 address64; - struct aml_resource_extended_address64 ext_address64; - struct aml_resource_extended_irq extended_irq; - struct aml_resource_gpio gpio; - struct aml_resource_i2c_serialbus i2c_serial_bus; - struct aml_resource_spi_serialbus spi_serial_bus; - struct aml_resource_uart_serialbus uart_serial_bus; - struct aml_resource_csi2_serialbus csi2_serial_bus; - struct aml_resource_common_serialbus common_serial_bus; - struct aml_resource_pin_function pin_function; - struct aml_resource_pin_config pin_config; - struct aml_resource_pin_group pin_group; - struct aml_resource_pin_group_function pin_group_function; - struct aml_resource_pin_group_config pin_group_config; - struct aml_resource_clock_input clock_input; - struct aml_resource_address address; - u32 dword_item; - u16 word_item; - u8 byte_item; +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; }; -typedef u16 acpi_rs_length; +struct ioam6_pernet_data { + struct mutex lock; + struct rhashtable namespaces; + struct rhashtable schemas; +}; -typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); +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, +}; -struct wrpll_cfg { - u8 divr; - u8 divq; - u8 range; - u8 flags; - u16 divf; - u32 output_rate_cache[6]; - unsigned long parent_rate; - u8 max_r; - u8 init_r; +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 cpg_core_clk; +struct ioam6_namespace; -struct rzg2l_mod_clk; +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 rzg2l_reset; +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 rzg2l_cpg_info { - const struct cpg_core_clk *core_clks; - unsigned int num_core_clks; - unsigned int last_dt_core_clk; - unsigned int num_total_core_clks; - const struct rzg2l_mod_clk *mod_clks; - unsigned int num_mod_clks; - unsigned int num_hw_mod_clks; - const unsigned int *no_pm_mod_clks; - unsigned int num_no_pm_mod_clks; - const struct rzg2l_reset *resets; - unsigned int num_resets; - const unsigned int *crit_mod_clks; - unsigned int num_crit_mod_clks; - bool has_clk_mon_regs; +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 cpg_core_clk { - const char *name; - unsigned int id; - unsigned int parent; - unsigned int div; - unsigned int mult; - unsigned int type; - unsigned int conf; - const struct clk_div_table *dtable; - const char * const *parent_names; - int flag; - int mux_flags; - int num_parents; +enum { + TLS_RECORD_TYPE_CHANGE_CIPHER_SPEC = 20, + TLS_RECORD_TYPE_ALERT = 21, + TLS_RECORD_TYPE_HANDSHAKE = 22, + TLS_RECORD_TYPE_DATA = 23, + TLS_RECORD_TYPE_HEARTBEAT = 24, + TLS_RECORD_TYPE_TLS12_CID = 25, + TLS_RECORD_TYPE_ACK = 26, }; -struct rzg2l_mod_clk { - const char *name; - unsigned int id; - unsigned int parent; - u16 off; - u8 bit; - bool is_coupled; +enum { + SVC_HANDSHAKE_TO = 1250, }; -struct rzg2l_reset { - u16 off; - u8 bit; - s8 monbit; +struct page_frag_cache { + void *va; + __u16 offset; + __u16 size; + unsigned int pagecnt_bias; + bool pfmemalloc; }; -enum clk_types { - CLK_TYPE_IN = 0, - CLK_TYPE_FF = 1, - CLK_TYPE_SAM_PLL = 2, - CLK_TYPE_DIV = 3, - CLK_TYPE_MUX = 4, - CLK_TYPE_SD_MUX = 5, - CLK_TYPE_SIPLL5 = 6, - CLK_TYPE_PLL5_4_MUX = 7, - CLK_TYPE_DSI_DIV = 8, +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; + struct page_frag_cache sk_frag_cache; + struct completion sk_handshake_done; + struct page *sk_pages[259]; }; -struct rzg2l_cpg_priv; +typedef s8 int8_t; -struct pll_clk { - struct clk_hw hw; - unsigned int conf; - unsigned int type; - void *base; - struct rzg2l_cpg_priv *priv; -}; +typedef void (*btf_trace_9p_client_req)(void *, struct p9_client *, int8_t, int); -struct rzg2l_pll5_mux_dsi_div_param { - u8 clksrc; - u8 dsi_div_a; - u8 dsi_div_b; -}; +typedef void (*btf_trace_9p_client_res)(void *, struct p9_client *, int8_t, int, int); -struct rzg2l_cpg_priv { - struct reset_controller_dev rcdev; - struct device *dev; - void *base; - spinlock_t rmw_lock; - struct clk **clks; - unsigned int num_core_clks; - unsigned int num_mod_clks; - unsigned int num_resets; - unsigned int last_dt_core_clk; - const struct rzg2l_cpg_info *info; - struct generic_pm_domain genpd; - struct rzg2l_pll5_mux_dsi_div_param mux_dsi_div_params; -}; +typedef void (*btf_trace_9p_protocol_dump)(void *, struct p9_client *, struct p9_fcall *); -struct sipll5 { - struct clk_hw hw; - u32 conf; - unsigned long foutpostdiv_rate; - struct rzg2l_cpg_priv *priv; -}; +typedef void (*btf_trace_9p_fid_ref)(void *, struct p9_fid *, __u8); -struct sd_hw_data { - struct clk_hw hw; - u32 conf; - struct rzg2l_cpg_priv *priv; +enum p9_proto_versions { + p9_proto_legacy = 0, + p9_proto_2000u = 1, + p9_proto_2000L = 2, }; -struct pll5_mux_hw_data { - struct clk_hw hw; - u32 conf; - unsigned long rate; - struct rzg2l_cpg_priv *priv; -}; +enum p9_fid_reftype { + P9_FID_REF_CREATE = 0, + P9_FID_REF_GET = 1, + P9_FID_REF_PUT = 2, + P9_FID_REF_DESTROY = 3, +} __attribute__((mode(byte))); -struct dsi_div_hw_data { - struct clk_hw hw; - u32 conf; - unsigned long rate; - struct rzg2l_cpg_priv *priv; +enum { + Opt_msize = 0, + Opt_trans = 1, + Opt_legacy = 2, + Opt_version = 3, + Opt_err___2 = 4, }; -struct mstp_clock { - struct clk_hw hw; - u16 off; - u8 bit; - bool enabled; - struct rzg2l_cpg_priv *priv; - struct mstp_clock *sibling; +struct trace_event_raw_9p_client_req { + struct trace_entry ent; + void *clnt; + __u8 type; + __u32 tag; + char __data[0]; }; -struct clk { - struct clk_core *core; - struct device *dev; - const char *dev_id; - const char *con_id; - unsigned long min_rate; - unsigned long max_rate; - unsigned int exclusive_count; - struct hlist_node clks_node; +struct trace_event_raw_9p_client_res { + struct trace_entry ent; + void *clnt; + __u8 type; + __u32 tag; + __u32 err; + char __data[0]; }; -struct rzg2l_pll5_param { - u32 pl5_fracin; - u8 pl5_refdiv; - u8 pl5_intin; - u8 pl5_postdiv1; - u8 pl5_postdiv2; - u8 pl5_spread; +struct trace_event_raw_9p_protocol_dump { + struct trace_entry ent; + void *clnt; + __u8 type; + __u16 tag; + u32 __data_loc_line; + char __data[0]; }; -struct reset_control { - struct reset_controller_dev *rcdev; - struct list_head list; - unsigned int id; - struct kref refcnt; - bool acquired; - bool shared; - bool array; - atomic_t deassert_count; - atomic_t triggered_count; +struct trace_event_raw_9p_fid_ref { + struct trace_entry ent; + int fid; + int refcount; + __u8 type; + char __data[0]; }; -struct reset_control_array { - struct reset_control base; - unsigned int num_rstcs; - struct reset_control *rstc[0]; +struct trace_event_data_offsets_9p_protocol_dump { + u32 line; }; -struct reset_control_lookup { - struct list_head list; - const char *provider; - unsigned int index; - const char *dev_id; - const char *con_id; +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 reset_control_bulk_data { - const char *id; - struct reset_control *rstc; -}; +typedef s16 int16_t; -struct reset_control_bulk_devres { - int num_rstcs; - struct reset_control_bulk_data *rstcs; -}; +struct trace_event_data_offsets_9p_client_req {}; -struct internal_container { - struct klist_node node; - struct attribute_container *cont; - struct device classdev; +struct trace_event_data_offsets_9p_client_res {}; + +struct trace_event_data_offsets_9p_fid_ref {}; + +struct p9_rstatfs { + u32 type; + u32 bsize; + u64 blocks; + u64 bfree; + u64 bavail; + u64 files; + u64 ffree; + u64 fsid; + u32 namelen; }; -enum nd_pfn_mode { - PFN_MODE_NONE = 0, - PFN_MODE_RAM = 1, - PFN_MODE_PMEM = 2, +struct p9_flock { + u8 type; + u32 flags; + u64 start; + u64 length; + u32 proc_id; + char *client_id; }; -enum nd_async_mode { - ND_SYNC = 0, - ND_ASYNC = 1, +struct p9_getlock { + u8 type; + u64 start; + u64 length; + u32 proc_id; + char *client_id; }; -enum { - ND_MAX_LANES = 256, - INT_LBASIZE_ALIGNMENT = 64, - NVDIMM_IO_ATOMIC = 1, +enum pm_qos_req_action { + PM_QOS_ADD_REQ = 0, + PM_QOS_UPDATE_REQ = 1, + PM_QOS_REMOVE_REQ = 2, }; -struct badrange { - struct list_head list; - spinlock_t lock; +struct irqchip_fwid { + struct fwnode_handle fwnode; + unsigned int type; + char *name; + phys_addr_t *pa; }; -struct nvdimm_bus { - struct nvdimm_bus_descriptor *nd_desc; - wait_queue_head_t wait; - struct list_head list; - struct device dev; - int id; - int probe_active; - atomic_t ioctl_active; - struct list_head mapping_list; - struct mutex reconfig_mutex; - struct badrange badrange; +struct module_sect_attr { + struct bin_attribute battr; + unsigned long address; }; -struct nd_pfn_sb; +struct module_sect_attrs { + struct attribute_group grp; + unsigned int nsections; + struct module_sect_attr attrs[0]; +}; -struct nd_pfn { - int id; - uuid_t *uuid; - struct device dev; - unsigned long align; - unsigned long npfns; - enum nd_pfn_mode mode; - struct nd_pfn_sb *pfn_sb; - struct nd_namespace_common *ndns; +struct module_notes_attrs { + struct kobject *dir; + unsigned int notes; + struct bin_attribute attrs[0]; }; -struct nd_pfn_sb { - u8 signature[16]; - u8 uuid[16]; - u8 parent_uuid[16]; - __le32 flags; - __le16 version_major; - __le16 version_minor; - __le64 dataoff; - __le64 npfns; - __le32 mode; - __le32 start_pad; - __le32 end_trunc; - __le32 align; - __le32 page_size; - __le16 page_struct_size; - u8 padding[3994]; - __le64 checksum; +struct ce_unbind { + struct clock_event_device *ce; + int res; }; -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 futex_waitv { + __u64 val; + __u64 uaddr; + __u32 flags; + __u32 __reserved; }; -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 futex_vector { + struct futex_waitv w; + struct futex_q q; }; -struct ata_show_ering_arg { - char *buf; - int written; +struct trace_mark { + unsigned long long val; + char sym; }; -struct software_node { - const char *name; - const struct software_node *parent; - const struct property_entry *properties; +enum trace_iter_flags { + TRACE_FILE_LAT_FMT = 1, + TRACE_FILE_ANNOTATE = 2, + TRACE_FILE_TIME_IN_NS = 4, }; -enum tick_broadcast_mode { - TICK_BROADCAST_OFF = 0, - TICK_BROADCAST_ON = 1, - TICK_BROADCAST_FORCE = 2, +struct bputs_entry { + struct trace_entry ent; + unsigned long ip; + const char *str; }; -enum mmc_err_stat { - MMC_ERR_CMD_TIMEOUT = 0, - MMC_ERR_CMD_CRC = 1, - MMC_ERR_DAT_TIMEOUT = 2, - MMC_ERR_DAT_CRC = 3, - MMC_ERR_AUTO_CMD = 4, - MMC_ERR_ADMA = 5, - MMC_ERR_TUNING = 6, - MMC_ERR_CMDQ_RED = 7, - MMC_ERR_CMDQ_GCE = 8, - MMC_ERR_CMDQ_ICCE = 9, - MMC_ERR_REQ_TIMEOUT = 10, - MMC_ERR_CMDQ_REQ_TIMEOUT = 11, - MMC_ERR_ICE_CFG = 12, - MMC_ERR_CTRL_TIMEOUT = 13, - MMC_ERR_UNEXPECTED_IRQ = 14, - MMC_ERR_MAX = 15, +struct bprint_entry { + struct trace_entry ent; + unsigned long ip; + const char *fmt; + u32 buf[0]; }; -enum sdhci_reset_reason { - SDHCI_RESET_FOR_INIT = 0, - SDHCI_RESET_FOR_REQUEST_ERROR = 1, - SDHCI_RESET_FOR_REQUEST_ERROR_DATA_ONLY = 2, - SDHCI_RESET_FOR_TUNING_ABORT = 3, - SDHCI_RESET_FOR_CARD_REMOVED = 4, - SDHCI_RESET_FOR_CQE_RECOVERY = 5, +struct print_entry { + struct trace_entry ent; + unsigned long ip; + char buf[0]; }; -enum sdhci_cookie { - COOKIE_UNMAPPED = 0, - COOKIE_PRE_MAPPED = 1, - COOKIE_MAPPED = 2, +struct ftrace_entry { + struct trace_entry ent; + unsigned long ip; + unsigned long parent_ip; }; -struct sdhci_adma2_64_desc { - __le16 cmd; - __le16 len; - __le32 addr_lo; - __le32 addr_hi; +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 pcpu_gen_cookie; +struct stack_entry { + struct trace_entry ent; + int size; + unsigned long caller[0]; +}; -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 userstack_entry { + struct trace_entry ent; + unsigned int tgid; + unsigned long caller[8]; }; -struct pcpu_gen_cookie { - local_t nesting; - u64 last; +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; }; -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 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 net_fill_args { - u32 portid; - u32 seq; - int flags; - int cmd; - int nsid; - bool add_ref; - int ref_nsid; +struct timerlat_entry { + struct trace_entry ent; + unsigned int seqnum; + int context; + u64 timer_latency; }; -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; +struct raw_data_entry { + struct trace_entry ent; + unsigned int id; + char buf[0]; }; -struct compat_cmsghdr { - compat_size_t cmsg_len; - compat_int_t cmsg_level; - compat_int_t cmsg_type; +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; }; -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; +enum event_trigger_type { + ETT_NONE = 0, + ETT_TRACE_ONOFF = 1, + ETT_SNAPSHOT = 2, + ETT_STACKTRACE = 4, + ETT_EVENT_ENABLE = 8, + ETT_EVENT_HIST = 16, + ETT_HIST_ENABLE = 32, + ETT_EVENT_EPROBE = 64, }; -struct compat_mmsghdr { - struct compat_msghdr msg_hdr; - compat_uint_t msg_len; +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 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 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 mmsghdr { - struct user_msghdr msg_hdr; - unsigned int msg_len; +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 { - 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, + EVENT_FILE_FL_ENABLED_BIT = 0, + EVENT_FILE_FL_RECORDED_CMD_BIT = 1, + EVENT_FILE_FL_RECORDED_TGID_BIT = 2, + EVENT_FILE_FL_FILTERED_BIT = 3, + EVENT_FILE_FL_NO_SET_FILTER_BIT = 4, + EVENT_FILE_FL_SOFT_MODE_BIT = 5, + EVENT_FILE_FL_SOFT_DISABLED_BIT = 6, + EVENT_FILE_FL_TRIGGER_MODE_BIT = 7, + EVENT_FILE_FL_TRIGGER_COND_BIT = 8, + EVENT_FILE_FL_PID_FILTER_BIT = 9, + EVENT_FILE_FL_WAS_ENABLED_BIT = 10, + EVENT_FILE_FL_FREED_BIT = 11, }; -struct eeprom_req_info { - struct ethnl_req_info base; - u32 offset; - u32 length; - u8 page; - u8 bank; - u8 i2c_address; +enum event_command_flags { + EVENT_CMD_FL_POST_TRIGGER = 1, + EVENT_CMD_FL_NEEDS_REC = 2, }; -struct eeprom_reply_data { - struct ethnl_reply_data base; - u32 length; - u8 *data; +enum { + EVENT_TRIGGER_FL_PROBE = 1, }; -enum tcp_ca_state { - TCP_CA_Open = 0, - TCP_CA_Disorder = 1, - TCP_CA_CWR = 2, - TCP_CA_Recovery = 3, - TCP_CA_Loss = 4, +struct enable_trigger_data { + struct trace_event_file *file; + bool enable; + bool hist; }; -enum tcp_queue { - TCP_FRAG_IN_WRITE_QUEUE = 0, - TCP_FRAG_IN_RTX_QUEUE = 1, +struct bpf_hrtimer { + struct hrtimer timer; + struct bpf_map *map; + struct bpf_prog *prog; + void __attribute__((btf_type_tag("rcu"))) *callback_fn; + void *value; }; -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, +struct bpf_bprintf_buffers { + char bin_args[512]; + char buf[1024]; }; 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, + BPF_F_INDEX_MASK = 4294967295ULL, + BPF_F_CURRENT_CPU = 4294967295ULL, + BPF_F_CTXLEN_MASK = 4503595332403200ULL, }; -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; -}; - -struct mld2_grec { - __u8 grec_type; - __u8 grec_auxwords; - __be16 grec_nsrcs; - struct in6_addr grec_mca; - struct in6_addr grec_src[0]; +enum { + BPF_F_TIMER_ABS = 1, + BPF_F_TIMER_CPU_PIN = 2, }; -struct mld2_report { - struct icmp6hdr mld2r_hdr; - struct mld2_grec mld2r_grec[0]; -}; +typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *); -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]; -}; +typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64); -struct igmp6_mc_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct inet6_dev *idev; -}; +typedef u64 (*btf_bpf_map_delete_elem)(struct bpf_map *, void *); -struct igmp6_mcf_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct inet6_dev *idev; - struct ifmcaddr6 *im; -}; +typedef u64 (*btf_bpf_map_push_elem)(struct bpf_map *, void *, u64); -typedef struct elf32_phdr Elf32_Phdr; +typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *); -typedef struct elf64_phdr Elf64_Phdr; +typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *); -typedef struct elf32_note Elf32_Nhdr; +typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32); -struct efi_vendor_dev_path { - struct efi_generic_dev_path header; - efi_guid_t vendorguid; - u8 vendordata[0]; -}; +typedef u64 (*btf_bpf_get_smp_processor_id)(); -enum efistub_event { - EFISTUB_EVT_INITRD = 0, - EFISTUB_EVT_LOAD_OPTIONS = 1, - EFISTUB_EVT_COUNT = 2, -}; +typedef u64 (*btf_bpf_get_numa_node_id)(); -struct efi_tcg2_event { - u32 event_size; - struct { - u32 header_size; - u16 header_version; - u32 pcr_index; - u32 event_type; - } __attribute__((packed)) event_header; -} __attribute__((packed)); +typedef u64 (*btf_bpf_ktime_get_ns)(); -typedef struct efi_tcg2_event efi_tcg2_event_t; +typedef u64 (*btf_bpf_ktime_get_boot_ns)(); -struct efi_tcg2_tagged_event { - u32 tagged_event_id; - u32 tagged_event_data_size; -}; +typedef u64 (*btf_bpf_ktime_get_coarse_ns)(); -typedef struct efi_tcg2_tagged_event efi_tcg2_tagged_event_t; +typedef u64 (*btf_bpf_ktime_get_tai_ns)(); -struct efi_measured_event { - efi_tcg2_event_t event_data; - efi_tcg2_tagged_event_t tagged_event; - u8 tagged_event_data[0]; -} __attribute__((packed)); +typedef u64 (*btf_bpf_get_current_pid_tgid)(); -struct efi_boot_memmap { - unsigned long map_size; - unsigned long desc_size; - u32 desc_ver; - unsigned long map_key; - unsigned long buff_size; - efi_memory_desc_t map[0]; -}; +typedef u64 (*btf_bpf_get_current_uid_gid)(); -struct linux_efi_initrd { - unsigned long base; - unsigned long size; -}; +typedef u64 (*btf_bpf_get_current_comm)(char *, u32); -union efi_load_file_protocol; +typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *); -typedef union efi_load_file_protocol efi_load_file_protocol_t; +typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *); -union efi_load_file_protocol { - struct { - efi_status_t (*load_file)(efi_load_file_protocol_t *, efi_device_path_protocol_t *, bool, unsigned long *, void *); - }; - struct { - u32 load_file; - } mixed_mode; -}; +typedef u64 (*btf_bpf_jiffies64)(); -typedef union efi_load_file_protocol efi_load_file2_protocol_t; +typedef u64 (*btf_bpf_get_current_cgroup_id)(); -typedef union { - struct { - u32 revision; - efi_handle_t parent_handle; - efi_system_table_t *system_table; - efi_handle_t device_handle; - void *file_path; - void *reserved; - u32 load_options_size; - void *load_options; - void *image_base; - __u64 image_size; - unsigned int image_code_type; - unsigned int image_data_type; - efi_status_t (*unload)(efi_handle_t); - }; - struct { - u32 revision; - u32 parent_handle; - u32 system_table; - u32 device_handle; - u32 file_path; - u32 reserved; - u32 load_options_size; - u32 load_options; - u32 image_base; - __u64 image_size; - u32 image_code_type; - u32 image_data_type; - u32 unload; - } mixed_mode; -} efi_loaded_image_t; +typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int); -typedef struct { - u32 attributes; - u16 file_path_list_length; - u8 variable_data[0]; -} __attribute__((packed)) efi_load_option_t; +typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, long *); -typedef struct { - u32 attributes; - u16 file_path_list_length; - const efi_char16_t *description; - const efi_device_path_protocol_t *file_path_list; - u32 optional_data_size; - const void *optional_data; -} efi_load_option_unpacked_t; +typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, unsigned long *); -typedef u32 efi_tcg2_event_log_format; +typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *); -union efi_tcg2_protocol; +struct bpf_pidns_info; -typedef union efi_tcg2_protocol efi_tcg2_protocol_t; +typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32); -union efi_tcg2_protocol { - struct { - void *get_capability; - efi_status_t (*get_event_log)(efi_tcg2_protocol_t *, efi_tcg2_event_log_format, efi_physical_addr_t *, efi_physical_addr_t *, efi_bool_t *); - efi_status_t (*hash_log_extend_event)(efi_tcg2_protocol_t *, u64, efi_physical_addr_t, u64, const efi_tcg2_event_t *); - void *submit_command; - void *get_active_pcr_banks; - void *set_active_pcr_banks; - void *get_result_of_set_active_pcr_banks; - }; - struct { - u32 get_capability; - u32 get_event_log; - u32 hash_log_extend_event; - u32 submit_command; - u32 get_active_pcr_banks; - u32 set_active_pcr_banks; - u32 get_result_of_set_active_pcr_banks; - } mixed_mode; +struct bpf_pidns_info { + __u32 pid; + __u32 tgid; }; -typedef efi_status_t (*efi_exit_boot_map_processing)(struct efi_boot_memmap *, void *); +typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64); -union efi_memory_attribute_protocol; +typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); -typedef union efi_memory_attribute_protocol efi_memory_attribute_protocol_t; +typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void __attribute__((btf_type_tag("user"))) *, struct task_struct *, u64); -union efi_memory_attribute_protocol { - struct { - efi_status_t (*get_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64 *); - efi_status_t (*set_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64); - efi_status_t (*clear_memory_attributes)(efi_memory_attribute_protocol_t *, efi_physical_addr_t, u64, u64); - }; - struct { - u32 get_memory_attributes; - u32 set_memory_attributes; - u32 clear_memory_attributes; - } mixed_mode; -}; +typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32); -typedef void (*jump_kernel_func)(unsigned long, unsigned long); +typedef u64 (*btf_bpf_this_cpu_ptr)(const void *); -struct riscv_efi_boot_protocol { - u64 revision; - efi_status_t (*get_boot_hartid)(struct riscv_efi_boot_protocol *, unsigned long *); +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 void (*btf_trace_notifier_register)(void *, void *); +typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *); -typedef void (*btf_trace_notifier_unregister)(void *, void *); +typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64); -typedef void (*btf_trace_notifier_run)(void *, void *); +typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *); -struct trace_event_raw_notifier_info { - struct trace_entry ent; - void *cb; - char __data[0]; +typedef u64 (*btf_bpf_kptr_xchg)(void *, void *); + +struct bpf_dynptr_kern; + +typedef u64 (*btf_bpf_dynptr_from_mem)(void *, u32, u64, struct bpf_dynptr_kern *); + +struct bpf_dynptr_kern { + void *data; + u32 size; + u32 offset; }; -struct trace_event_data_offsets_notifier_info {}; +typedef u64 (*btf_bpf_dynptr_read)(void *, u32, const struct bpf_dynptr_kern *, u32, u64); -struct srcu_notifier_head { - struct mutex mutex; - struct srcu_usage srcuu; - struct srcu_struct srcu; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +typedef u64 (*btf_bpf_dynptr_write)(const struct bpf_dynptr_kern *, u32, void *, u32, u64); + +typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32); + +struct bpf_refcount { + int: 32; }; -struct die_args { - struct pt_regs *regs; - const char *str; - long err; - int trapnr; - int signr; +struct bpf_rb_node_kern { + struct rb_node rb_node; + void *owner; }; -struct module_sect_attr { - struct bin_attribute battr; - unsigned long address; +struct bpf_rb_node { + long: 64; + long: 64; + long: 64; + long: 64; }; -struct module_sect_attrs { - struct attribute_group grp; - unsigned int nsections; - struct module_sect_attr attrs[0]; +struct bpf_timer { + long: 64; + long: 64; }; -struct module_notes_attrs { - struct kobject *dir; - unsigned int notes; - struct bin_attribute attrs[0]; +struct bpf_dynptr { + long: 64; + long: 64; }; -enum tick_nohz_mode { - NOHZ_MODE_INACTIVE = 0, - NOHZ_MODE_LOWRES = 1, - NOHZ_MODE_HIGHRES = 2, +struct bpf_list_node_kern { + struct list_head list_head; + void *owner; }; -struct tick_sched { - 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; - unsigned int stalled_jiffies; - unsigned long last_tick_jiffies; - struct hrtimer sched_timer; - ktime_t last_tick; - ktime_t next_tick; - unsigned long idle_jiffies; - ktime_t idle_waketime; - seqcount_t idle_sleeptime_seq; - ktime_t idle_entrytime; - enum tick_nohz_mode nohz_mode; - unsigned long last_jiffies; - u64 timer_expires_base; - u64 timer_expires; - u64 next_timer; - ktime_t idle_expires; - unsigned long idle_calls; - unsigned long idle_sleeps; - ktime_t idle_exittime; - ktime_t idle_sleeptime; - ktime_t iowait_sleeptime; - atomic_t tick_dep_mask; - unsigned long check_clocks; +struct bpf_list_node { + long: 64; + long: 64; + long: 64; }; -struct eprobe_trace_entry_head { - struct trace_entry ent; +struct bpf_list_head { + long: 64; + long: 64; }; -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 bpf_rb_root { + long: 64; + long: 64; }; -struct eprobe_data { - struct trace_event_file *file; - struct trace_eprobe *ep; +struct btf_id_dtor_kfunc { + u32 btf_id; + u32 kfunc_btf_id; }; -enum { - BPF_RINGBUF_BUSY_BIT = 2147483648, - BPF_RINGBUF_DISCARD_BIT = 1073741824, - BPF_RINGBUF_HDR_SZ = 8, +struct bpf_throw_ctx { + struct bpf_prog_aux *aux; + u64 sp; + u64 bp; + int cnt; }; -enum { - BPF_RB_NO_WAKEUP = 1, - BPF_RB_FORCE_WAKEUP = 2, +typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int); + +typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int); + +typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t); + +typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, unsigned long); + +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, unsigned long); + +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, unsigned long); + +typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long, unsigned long, unsigned long long, unsigned long, int); + +typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long, long, long); + +typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, unsigned long, unsigned long, unsigned long, unsigned long, int); + +typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *); + +struct reclaim_stat; + +typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, unsigned long, unsigned long, struct reclaim_stat *, int, int); + +struct reclaim_stat { + unsigned int nr_dirty; + unsigned int nr_unqueued_dirty; + unsigned int nr_congested; + unsigned int nr_writeback; + unsigned int nr_immediate; + unsigned int nr_pageout; + unsigned int nr_activate[2]; + unsigned int nr_ref_keep; + unsigned int nr_unmap_fail; + unsigned int nr_lazyfree_fail; }; -enum { - BPF_RB_AVAIL_DATA = 0, - BPF_RB_RING_SIZE = 1, - BPF_RB_CONS_POS = 2, - BPF_RB_PROD_POS = 3, +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 folio_references { + FOLIOREF_RECLAIM = 0, + FOLIOREF_RECLAIM_CLEAN = 1, + FOLIOREF_KEEP = 2, + FOLIOREF_ACTIVATE = 3, }; -typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64); +enum pgdat_flags { + PGDAT_DIRTY = 0, + PGDAT_WRITEBACK = 1, + PGDAT_RECLAIM_LOCKED = 2, +}; -typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64); +enum ttu_flags { + TTU_SPLIT_HUGE_PMD = 4, + TTU_IGNORE_MLOCK = 8, + TTU_SYNC = 16, + TTU_HWPOISON = 32, + TTU_BATCH_FLUSH = 64, + TTU_RMAP_LOCKED = 128, +}; -typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64); +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, +}; -typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); +enum lruvec_flags { + LRUVEC_CGROUP_CONGESTED = 0, + LRUVEC_NODE_CONGESTED = 1, +}; -typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); +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, +}; -struct bpf_dynptr_kern; +enum { + CGRP_ROOT_NOPREFIX = 2, + CGRP_ROOT_XATTR = 4, + CGRP_ROOT_NS_DELEGATE = 8, + CGRP_ROOT_FAVOR_DYNMODS = 16, + CGRP_ROOT_CPUSET_V2_MODE = 65536, + CGRP_ROOT_MEMORY_LOCAL_EVENTS = 131072, + CGRP_ROOT_MEMORY_RECURSIVE_PROT = 262144, + CGRP_ROOT_MEMORY_HUGETLB_ACCOUNTING = 524288, +}; -typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); +enum scan_balance { + SCAN_EQUAL = 0, + SCAN_FRACT = 1, + SCAN_ANON = 2, + SCAN_FILE = 3, +}; -struct bpf_dynptr_kern { - void *data; - u32 size; - u32 offset; +enum { + ZONELIST_FALLBACK = 0, + MAX_ZONELISTS = 1, }; -typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64); +enum zone_flags { + ZONE_BOOSTED_WATERMARK = 0, + ZONE_RECLAIM_ACTIVE = 1, + ZONE_BELOW_HIGH = 2, +}; -typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64); +struct trace_event_raw_mm_vmscan_kswapd_sleep { + struct trace_entry ent; + int nid; + char __data[0]; +}; -typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64); +struct trace_event_raw_mm_vmscan_kswapd_wake { + struct trace_entry ent; + int nid; + int zid; + int order; + char __data[0]; +}; -struct bpf_ringbuf { - wait_queue_head_t waitq; - struct irq_work work; - u64 mask; - struct page **pages; - int nr_pages; - long: 64; - long: 64; - long: 64; - long: 64; - spinlock_t spinlock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - atomic_t busy; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - 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; +struct trace_event_raw_mm_vmscan_wakeup_kswapd { + struct trace_entry ent; + int nid; + int zid; + int order; + unsigned long gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template { + struct trace_entry ent; + int order; + unsigned long gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_direct_reclaim_end_template { + struct trace_entry ent; + unsigned long nr_reclaimed; + char __data[0]; +}; + +struct trace_event_raw_mm_shrink_slab_start { + struct trace_entry ent; + struct shrinker *shr; + void *shrink; + int nid; + long nr_objects_to_shrink; + unsigned long gfp_flags; + unsigned long cache_items; + unsigned long long delta; + unsigned long total_scan; + int priority; + char __data[0]; +}; + +struct trace_event_raw_mm_shrink_slab_end { + struct trace_entry ent; + struct shrinker *shr; + int nid; + void *shrink; + long unused_scan; + long new_scan; + int retval; + long total_scan; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_lru_isolate { + struct trace_entry ent; + int highest_zoneidx; + int order; + unsigned long nr_requested; + unsigned long nr_scanned; + unsigned long nr_skipped; + unsigned long nr_taken; + int lru; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_write_folio { + struct trace_entry ent; + unsigned long pfn; + int reclaim_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_lru_shrink_inactive { + struct trace_entry ent; + int nid; + unsigned long nr_scanned; + unsigned long nr_reclaimed; + unsigned long nr_dirty; + unsigned long nr_writeback; + unsigned long nr_congested; + unsigned long nr_immediate; + unsigned int nr_activate0; + unsigned int nr_activate1; + unsigned long nr_ref_keep; + unsigned long nr_unmap_fail; + int priority; + int reclaim_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_lru_shrink_active { + struct trace_entry ent; + int nid; + unsigned long nr_taken; + unsigned long nr_active; + unsigned long nr_deactivated; + unsigned long nr_referenced; + int priority; + int reclaim_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_node_reclaim_begin { + struct trace_entry ent; + int nid; + int order; + unsigned long gfp_flags; + char __data[0]; +}; + +struct trace_event_raw_mm_vmscan_throttled { + struct trace_entry ent; + int nid; + int usec_timeout; + int usec_delayed; + int reason; + char __data[0]; +}; + +struct migration_target_control { + int nid; + nodemask_t *nmask; + gfp_t gfp_mask; +}; + +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; +}; + +struct mem_cgroup_reclaim_cookie { + pg_data_t *pgdat; + unsigned int generation; +}; + +typedef enum { + PAGE_KEEP = 0, + PAGE_ACTIVATE = 1, + PAGE_SUCCESS = 2, + PAGE_CLEAN = 3, +} pageout_t; + +struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {}; + +struct trace_event_data_offsets_mm_vmscan_kswapd_wake {}; + +struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {}; + +struct trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {}; + +struct trace_event_data_offsets_mm_vmscan_direct_reclaim_end_template {}; + +struct trace_event_data_offsets_mm_shrink_slab_start {}; + +struct trace_event_data_offsets_mm_shrink_slab_end {}; + +struct trace_event_data_offsets_mm_vmscan_lru_isolate {}; + +struct trace_event_data_offsets_mm_vmscan_write_folio {}; + +struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {}; + +struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {}; + +struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {}; + +struct trace_event_data_offsets_mm_vmscan_throttled {}; + +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 unsigned __int128 __u128; + +typedef __u128 u128; + +typedef u128 freelist_full_t; + +typedef union { + struct { + void *freelist; + unsigned long counter; + }; + freelist_full_t full; +} freelist_aba_t; + +struct slab; + +struct kmem_cache_cpu { + union { + struct { + void **freelist; + unsigned long tid; + }; + freelist_aba_t freelist_tid; + }; + struct slab *slab; + struct slab *partial; + local_lock_t lock; +}; + +struct slab { + unsigned long __page_flags; + struct kmem_cache *slab_cache; + union { + struct { + union { + struct list_head slab_list; + struct { + struct slab *next; + int slabs; + }; + }; + union { + struct { + void *freelist; + union { + unsigned long counters; + struct { + unsigned int inuse: 16; + unsigned int objects: 15; + unsigned int frozen: 1; + }; + }; + }; + }; + }; + struct callback_head callback_head; + }; + unsigned int __unused; + atomic_t __page_refcount; + unsigned long memcg_data; +}; + +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; +}; + +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 slab_state { + DOWN = 0, + PARTIAL = 1, + PARTIAL_NODE = 2, + UP = 3, + FULL = 4, +}; + +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, +}; + +typedef struct { + unsigned long v; +} freeptr_t; + +typedef u32 depot_stack_handle_t; + +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; +}; + +typedef int (*cmp_r_func_t)(const void *, const void *, const void *); + +typedef void (*swap_r_func_t)(void *, void *, int, const void *); + +struct loc_track { + unsigned long max; + unsigned long count; + struct location *loc; + loff_t idx; +}; + +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; +}; + +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; +}; + +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, +}; + +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 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 { + Opt_direct = 0, + Opt_fd = 1, + Opt_gid___2 = 2, + Opt_ignore = 3, + Opt_indirect = 4, + Opt_maxproto = 5, + Opt_minproto = 6, + Opt_offset = 7, + Opt_pgrp = 8, + Opt_strictexpire = 9, + Opt_uid___2 = 10, +}; + +struct autofs_fs_context { + kuid_t uid; + kgid_t gid; + int pgrp; + bool pgrp_set; +}; + +struct security_class_mapping { + const char *name; + const char *perms[33]; +}; + +typedef void (*btf_trace_selinux_audited)(void *, struct selinux_audit_data *, char *, char *, const char *); + +struct selinux_audit_data { + u32 ssid; + u32 tsid; + u16 tclass; + u32 requested; + u32 audited; + u32 denied; + int result; +}; + +struct avc_cache_stats { + unsigned int lookups; + unsigned int misses; + unsigned int allocations; + unsigned int reclaims; + unsigned int frees; +}; + +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 av_decision { + u32 allowed; + u32 auditallow; + u32 auditdeny; + u32 seqno; + u32 flags; +}; + +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 extended_perms { + u16 len; + struct extended_perms_data drivers; +}; + +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 extended_perms_decision { + u8 used; + u8 driver; + struct extended_perms_data *allowed; + struct extended_perms_data *auditallow; + struct extended_perms_data *dontaudit; +}; + +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; +}; + +enum { + IORING_MSG_DATA = 0, + IORING_MSG_SEND_FD = 1, +}; + +struct io_msg { + struct file *file; + struct file *src_file; + struct callback_head tw; + u64 user_data; + u32 len; + u32 cmd; + u32 src_fd; + union { + u32 dst_fd; + u32 cqe_flags; + }; + u32 flags; +}; + +struct font_data { + unsigned int extra[4]; + const unsigned char data[0]; +}; + +typedef u16 ucs2_char_t; + +struct simple_pm_bus { + struct clk_bulk_data *clks; + int num_clks; +}; + +enum gpio_lookup_flags { + GPIO_ACTIVE_HIGH = 0, + GPIO_ACTIVE_LOW = 1, + GPIO_OPEN_DRAIN = 2, + GPIO_OPEN_SOURCE = 4, + GPIO_PERSISTENT = 0, + GPIO_TRANSITORY = 8, + GPIO_PULL_UP = 16, + GPIO_PULL_DOWN = 32, + GPIO_PULL_DISABLE = 64, + GPIO_LOOKUP_FLAGS_DEFAULT = 0, +}; + +struct acpi_gpio_event { + struct list_head node; + acpi_handle handle; + irq_handler_t handler; + unsigned int pin; + unsigned int irq; + unsigned long irqflags; + bool irq_is_wake; + bool irq_requested; + struct gpio_desc *desc; +}; + +struct acpi_gpio_connection { + struct list_head node; + unsigned int pin; + struct gpio_desc *desc; +}; + +struct acpi_connection_info { + u8 *connection; + u16 length; + u8 access_length; +}; + +struct acpi_gpio_chip { + struct acpi_connection_info conn_info; + struct list_head conns; + struct mutex conn_lock; + struct gpio_chip *chip; + struct list_head events; + struct list_head deferred_req_irqs_list_entry; +}; + +struct acpi_gpio_info { + struct acpi_device *adev; + enum gpiod_flags flags; + bool gpioint; + int pin_config; + int polarity; + int triggering; + bool wake_capable; + unsigned int debounce; + unsigned int quirks; +}; + +struct acpi_gpio_lookup { + struct acpi_gpio_info info; + int index; + u16 pin_index; + bool active_low; + struct gpio_desc *desc; + int n; +}; + +struct acpi_gpiolib_dmi_quirk { + bool no_edge_events_on_boot; + char *ignore_wake; + char *ignore_interrupt; +}; + +enum dw_pcie_ltssm { + DW_PCIE_LTSSM_DETECT_QUIET = 0, + DW_PCIE_LTSSM_DETECT_ACT = 1, + DW_PCIE_LTSSM_L0 = 17, + DW_PCIE_LTSSM_L2_IDLE = 21, + DW_PCIE_LTSSM_UNKNOWN = 4294967295, +}; + +struct dw_pcie; + +struct dw_pcie_ops { + u64 (*cpu_addr_fixup)(struct dw_pcie *, u64); + u32 (*read_dbi)(struct dw_pcie *, void *, u32, size_t); + void (*write_dbi)(struct dw_pcie *, void *, u32, size_t, u32); + void (*write_dbi2)(struct dw_pcie *, void *, u32, size_t, u32); + int (*link_up)(struct dw_pcie *); + enum dw_pcie_ltssm (*get_ltssm)(struct dw_pcie *); + int (*start_link)(struct dw_pcie *); + void (*stop_link)(struct dw_pcie *); +}; + +struct dw_pcie_host_ops; + +struct dw_pcie_rp { + bool has_msi_ctrl: 1; + bool cfg0_io_shared: 1; + u64 cfg0_base; + void *va_cfg0_base; + u32 cfg0_size; + resource_size_t io_base; + phys_addr_t io_bus_addr; + u32 io_size; + int irq; + const struct dw_pcie_host_ops *ops; + int msi_irq[8]; + struct irq_domain *irq_domain; + struct irq_domain *msi_domain; + dma_addr_t msi_data; + struct irq_chip *msi_irq_chip; + u32 num_vectors; + u32 irq_mask[8]; + struct pci_host_bridge *bridge; + raw_spinlock_t lock; + unsigned long msi_irq_in_use[4]; +}; + +struct pci_epc; + +struct dw_pcie_ep_ops; + +struct pci_epf_bar; + +struct dw_pcie_ep { + struct pci_epc *epc; + struct list_head func_list; + const struct dw_pcie_ep_ops *ops; + phys_addr_t phys_base; + size_t addr_size; + size_t page_size; + u8 bar_to_atu[6]; + phys_addr_t *outbound_addr; + unsigned long *ib_window_map; + unsigned long *ob_window_map; + void *msi_mem; + phys_addr_t msi_mem_phys; + struct pci_epf_bar *epf_bar[6]; +}; + +struct dw_edma_region { + u64 paddr; + union { + void *mem; + void *io; + } vaddr; + size_t sz; +}; + +enum dw_edma_map_format { + EDMA_MF_EDMA_LEGACY = 0, + EDMA_MF_EDMA_UNROLL = 1, + EDMA_MF_HDMA_COMPAT = 5, + EDMA_MF_HDMA_NATIVE = 7, +}; + +struct dw_edma; + +struct dw_edma_plat_ops; + +struct dw_edma_chip { + struct device *dev; + int nr_irqs; + const struct dw_edma_plat_ops *ops; + u32 flags; + void *reg_base; + u16 ll_wr_cnt; + u16 ll_rd_cnt; + struct dw_edma_region ll_region_wr[8]; + struct dw_edma_region ll_region_rd[8]; + struct dw_edma_region dt_region_wr[8]; + struct dw_edma_region dt_region_rd[8]; + enum dw_edma_map_format mf; + struct dw_edma *dw; +}; + +struct reset_control_bulk_data { + const char *id; + struct reset_control *rstc; +}; + +struct dw_pcie { + struct device *dev; + void *dbi_base; + void *dbi_base2; + void *atu_base; + size_t atu_size; + u32 num_ib_windows; + u32 num_ob_windows; + u32 region_align; + u64 region_limit; + struct dw_pcie_rp pp; + struct dw_pcie_ep ep; + const struct dw_pcie_ops *ops; + u32 version; + u32 type; + unsigned long caps; + int num_lanes; + int link_gen; + u8 n_fts[2]; + struct dw_edma_chip edma; + struct clk_bulk_data app_clks[3]; + struct clk_bulk_data core_clks[4]; + struct reset_control_bulk_data app_rsts[3]; + struct reset_control_bulk_data core_rsts[7]; + struct gpio_desc *pe_rst; + bool suspended; +}; + +struct dw_pcie_host_ops { + int (*host_init)(struct dw_pcie_rp *); + void (*host_deinit)(struct dw_pcie_rp *); + void (*host_post_init)(struct dw_pcie_rp *); + int (*msi_host_init)(struct dw_pcie_rp *); + void (*pme_turn_off)(struct dw_pcie_rp *); +}; + +struct pci_epc_ops; + +struct pci_epc_mem; + +struct config_group; + +struct pci_epc { + struct device dev; + struct list_head pci_epf; + struct mutex list_lock; + const struct pci_epc_ops *ops; + struct pci_epc_mem **windows; + struct pci_epc_mem *mem; + unsigned int num_windows; + u8 max_functions; + u8 *max_vfs; + struct config_group *group; + struct mutex lock; + unsigned long function_num_map; +}; + +enum pci_barno { + NO_BAR = -1, + BAR_0 = 0, + BAR_1 = 1, + BAR_2 = 2, + BAR_3 = 3, + BAR_4 = 4, + BAR_5 = 5, +}; + +enum pci_epc_irq_type { + PCI_EPC_IRQ_UNKNOWN = 0, + PCI_EPC_IRQ_LEGACY = 1, + PCI_EPC_IRQ_MSI = 2, + PCI_EPC_IRQ_MSIX = 3, +}; + +struct pci_epf_header; + +struct pci_epc_features; + +struct pci_epc_ops { + int (*write_header)(struct pci_epc *, u8, u8, struct pci_epf_header *); + int (*set_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); + void (*clear_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); + int (*map_addr)(struct pci_epc *, u8, u8, phys_addr_t, u64, size_t); + void (*unmap_addr)(struct pci_epc *, u8, u8, phys_addr_t); + int (*set_msi)(struct pci_epc *, u8, u8, u8); + int (*get_msi)(struct pci_epc *, u8, u8); + int (*set_msix)(struct pci_epc *, u8, u8, u16, enum pci_barno, u32); + int (*get_msix)(struct pci_epc *, u8, u8); + int (*raise_irq)(struct pci_epc *, u8, u8, enum pci_epc_irq_type, u16); + int (*map_msi_irq)(struct pci_epc *, u8, u8, phys_addr_t, u8, u32, u32 *, u32 *); + int (*start)(struct pci_epc *); + void (*stop)(struct pci_epc *); + const struct pci_epc_features * (*get_features)(struct pci_epc *, u8, u8); + struct module *owner; +}; + +enum pci_interrupt_pin { + PCI_INTERRUPT_UNKNOWN = 0, + PCI_INTERRUPT_INTA = 1, + PCI_INTERRUPT_INTB = 2, + PCI_INTERRUPT_INTC = 3, + PCI_INTERRUPT_INTD = 4, +}; + +struct pci_epf_header { + u16 vendorid; + u16 deviceid; + u8 revid; + u8 progif_code; + u8 subclass_code; + u8 baseclass_code; + u8 cache_line_size; + u16 subsys_vendor_id; + u16 subsys_id; + enum pci_interrupt_pin interrupt_pin; +}; + +struct pci_epf_bar { + dma_addr_t phys_addr; + void *addr; + size_t size; + enum pci_barno barno; + int flags; +}; + +struct pci_epc_features { + unsigned int linkup_notifier: 1; + unsigned int core_init_notifier: 1; + unsigned int msi_capable: 1; + unsigned int msix_capable: 1; + u8 reserved_bar; + u8 bar_fixed_64bit; + u64 bar_fixed_size[6]; + size_t align; +}; + +struct pci_epc_mem_window { + phys_addr_t phys_base; + size_t size; + size_t page_size; +}; + +struct pci_epc_mem { + struct pci_epc_mem_window window; + unsigned long *bitmap; + int pages; + struct mutex lock; +}; + +struct config_item_type; + +struct config_item { + char *ci_name; + char ci_namebuf[20]; + struct kref ci_kref; + struct list_head ci_entry; + struct config_item *ci_parent; + struct config_group *ci_group; + const struct config_item_type *ci_type; + struct dentry *ci_dentry; +}; + +struct configfs_subsystem; + +struct config_group { + struct config_item cg_item; + struct list_head cg_children; + struct configfs_subsystem *cg_subsys; + struct list_head default_groups; + struct list_head group_entry; +}; + +struct configfs_item_operations; + +struct configfs_group_operations; + +struct configfs_attribute; + +struct configfs_bin_attribute; + +struct config_item_type { + struct module *ct_owner; + struct configfs_item_operations *ct_item_ops; + struct configfs_group_operations *ct_group_ops; + struct configfs_attribute **ct_attrs; + struct configfs_bin_attribute **ct_bin_attrs; +}; + +struct configfs_item_operations { + void (*release)(struct config_item *); + int (*allow_link)(struct config_item *, struct config_item *); + void (*drop_link)(struct config_item *, struct config_item *); +}; + +struct configfs_group_operations { + struct config_item * (*make_item)(struct config_group *, const char *); + struct config_group * (*make_group)(struct config_group *, const char *); + void (*disconnect_notify)(struct config_group *, struct config_item *); + void (*drop_item)(struct config_group *, struct config_item *); +}; + +struct configfs_attribute { + const char *ca_name; + struct module *ca_owner; + umode_t ca_mode; + ssize_t (*show)(struct config_item *, char *); + ssize_t (*store)(struct config_item *, const char *, size_t); +}; + +struct configfs_bin_attribute { + struct configfs_attribute cb_attr; + void *cb_private; + size_t cb_max_size; + ssize_t (*read)(struct config_item *, void *, size_t); + ssize_t (*write)(struct config_item *, const void *, size_t); +}; + +struct configfs_subsystem { + struct config_group su_group; + struct mutex su_mutex; +}; + +struct dw_pcie_ep_ops { + void (*pre_init)(struct dw_pcie_ep *); + void (*ep_init)(struct dw_pcie_ep *); + void (*deinit)(struct dw_pcie_ep *); + int (*raise_irq)(struct dw_pcie_ep *, u8, enum pci_epc_irq_type, u16); + const struct pci_epc_features * (*get_features)(struct dw_pcie_ep *); + unsigned int (*func_conf_select)(struct dw_pcie_ep *, u8); + unsigned int (*get_dbi2_offset)(struct dw_pcie_ep *, u8); +}; + +struct dw_edma_plat_ops { + int (*irq_vector)(struct device *, unsigned int); + u64 (*pci_address)(struct device *, phys_addr_t); +}; + +struct fu740_pcie { + struct dw_pcie pci; + void *mgmt_base; + struct gpio_desc *reset; + struct gpio_desc *pwren; + struct clk *pcie_aux; + struct reset_control *rst; +}; + +struct acpi_data_node { + const char *name; + acpi_handle handle; + struct fwnode_handle fwnode; + struct fwnode_handle *parent; + struct acpi_device_data data; + struct list_head sibling; + struct kobject kobj; + struct completion kobj_done; +}; + +struct acpi_device_properties { + const guid_t *guid; + union acpi_object *properties; + struct list_head list; + void **bufs; +}; + +struct acpi_exception_info { + char *name; +}; + +struct jh7110_pll_preset; + +struct jh7110_pll_info { + char *name; + const struct jh7110_pll_preset *presets; + unsigned int npresets; + struct { + unsigned int pd; + unsigned int fbdiv; + unsigned int frac; + unsigned int prediv; + } offsets; + struct { + u32 dacpd; + u32 dsmpd; + u32 fbdiv; + } masks; + struct { + char dacpd; + char dsmpd; + char fbdiv; + } shifts; +}; + +struct jh7110_pll_preset { + unsigned long freq; + u32 frac; + unsigned int fbdiv: 12; + unsigned int prediv: 6; + unsigned int postdiv1: 2; + unsigned int mode: 1; +}; + +enum jh7110_pll_mode { + JH7110_PLL_MODE_FRACTION = 0, + JH7110_PLL_MODE_INTEGER = 1, +}; + +struct jh7110_pll_data { + struct clk_hw hw; + unsigned int idx; +}; + +struct jh7110_pll_priv { + struct device *dev; + struct regmap *regmap; + struct jh7110_pll_data pll[3]; +}; + +struct jh7110_pll_regvals { + u32 dacpd; + u32 dsmpd; + u32 fbdiv; + u32 frac; + u32 postdiv1; + u32 prediv; +}; + +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; +}; + +enum { + ERASE = 0, + WERASE = 1, + KILL = 2, +}; + +struct n_tty_data { + size_t read_head; + size_t commit_head; + size_t canon_head; + size_t echo_head; + size_t echo_commit; + size_t echo_mark; + unsigned long char_map[4]; + unsigned long overrun_time; + unsigned int num_overrun; + bool no_room; + unsigned char lnext: 1; + unsigned char erasing: 1; + unsigned char raw: 1; + unsigned char real_raw: 1; + unsigned char icanon: 1; + unsigned char push: 1; + u8 read_buf[4096]; + unsigned long read_flags[64]; + u8 echo_buf[4096]; + size_t read_tail; + size_t line_start; + size_t lookahead_count; + unsigned int column; + unsigned int canon_column; + size_t echo_tail; + struct mutex atomic_read_lock; + struct mutex output_lock; +}; + +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 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 *); +}; + +struct subsys_private { + struct kset subsys; + struct kset *devices_kset; + struct list_head interfaces; + struct mutex mutex; + struct kset *drivers_kset; + struct klist klist_devices; + struct klist klist_drivers; + struct blocking_notifier_head bus_notifier; + unsigned int drivers_autoprobe: 1; + const struct bus_type *bus; + struct device *dev_root; + struct kset glue_dirs; + const struct class *class; + struct lock_class_key lock_key; +}; + +struct subsys_dev_iter { + struct klist_iter ki; + const struct device_type *type; +}; + +struct nvdimm_map { + struct nvdimm_bus *nvdimm_bus; + struct list_head list; + resource_size_t offset; + unsigned long flags; + size_t size; + union { + void *mem; + void *iomem; + }; + struct kref kref; +}; + +enum { + ACTION_FAIL = 0, + ACTION_REPREP = 1, + ACTION_DELAYED_REPREP = 2, + ACTION_RETRY = 3, + ACTION_DELAYED_RETRY = 4, +}; + +enum scsi_host_prot_capabilities { + SHOST_DIF_TYPE1_PROTECTION = 1, + SHOST_DIF_TYPE2_PROTECTION = 2, + SHOST_DIF_TYPE3_PROTECTION = 4, + SHOST_DIX_TYPE0_PROTECTION = 8, + SHOST_DIX_TYPE1_PROTECTION = 16, + SHOST_DIX_TYPE2_PROTECTION = 32, + SHOST_DIX_TYPE3_PROTECTION = 64, +}; + +struct scsi_mode_data { + __u32 length; + __u16 block_descriptor_length; + __u8 medium_type; + __u8 device_specific; + __u8 header_length; + __u8 longlba: 1; +}; + +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 usb_otg_caps { + u16 otg_rev; + bool hnp_support; + bool srp_support; + bool adp_support; +}; + +struct usb_dev_cap_header { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; +}; + +struct usb_descriptor_header { + __u8 bLength; + __u8 bDescriptorType; +}; + +struct usb_phy_roothub { + struct phy *phy; + struct list_head list; +}; + +typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_quirks)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_reset_ep)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *); + +typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); + +typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *); + +typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); + +typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); + +typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); + +typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); + +typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); + +typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); + +typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); + +typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); + +typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); + +typedef void (*btf_trace_xhci_handle_port_status)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_get_port_status)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_hub_status_data)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32); + +typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); + +struct dbc_request; + +typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); + +struct xhci_dbc; + +struct dbc_request { + void *buf; + unsigned int length; + dma_addr_t dma; + void (*complete)(struct xhci_dbc *, struct dbc_request *); + struct list_head list_pool; + int status; + unsigned int actual; + struct xhci_dbc *dbc; + struct list_head list_pending; + dma_addr_t trb_dma; + union xhci_trb *trb; + unsigned int direction: 1; +}; + +enum dbc_state { + DS_DISABLED = 0, + DS_INITIALIZED = 1, + DS_ENABLED = 2, + DS_CONNECTED = 3, + DS_CONFIGURED = 4, + DS_STALLED = 5, +}; + +struct dbc_ep { + struct xhci_dbc *dbc; + struct list_head list_pending; + struct xhci_ring *ring; + unsigned int direction: 1; +}; + +struct dbc_regs; + +struct dbc_str_descs; + +struct dbc_driver; + +struct xhci_dbc { + spinlock_t lock; + struct device *dev; + struct xhci_hcd *xhci; + struct dbc_regs *regs; + struct xhci_ring *ring_evt; + struct xhci_ring *ring_in; + struct xhci_ring *ring_out; + struct xhci_erst erst; + struct xhci_container_ctx *ctx; + struct dbc_str_descs *string; + dma_addr_t string_dma; + size_t string_size; + u16 idVendor; + u16 idProduct; + u16 bcdDevice; + u8 bInterfaceProtocol; + enum dbc_state state; + struct delayed_work event_work; + unsigned int resume_required: 1; + struct dbc_ep eps[2]; + const struct dbc_driver *driver; + void *priv; +}; + +struct dbc_regs { + __le32 capability; + __le32 doorbell; + __le32 ersts; + __le32 __reserved_0; + __le64 erstba; + __le64 erdp; + __le32 control; + __le32 status; + __le32 portsc; + __le32 __reserved_1; + __le64 dccp; + __le32 devinfo1; + __le32 devinfo2; +}; + +struct dbc_str_descs { + char string0[64]; + char manufacturer[64]; + char product[64]; + char serial[64]; +}; + +struct dbc_driver { + int (*configure)(struct xhci_dbc *); + void (*disconnect)(struct xhci_dbc *); +}; + +typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *); + +typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *); + +struct trace_event_raw_xhci_log_msg { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ctx { + struct trace_entry ent; + int ctx_64; + unsigned int ctx_type; + dma_addr_t ctx_dma; + u8 *ctx_va; + unsigned int ctx_ep_num; + u32 __data_loc_ctx_data; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_trb { + struct trace_entry ent; + u32 type; + u32 field0; + u32 field1; + u32 field2; + u32 field3; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_free_virt_dev { + struct trace_entry ent; + void *vdev; + unsigned long long out_ctx; + unsigned long long in_ctx; + 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; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_slot_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u32 tt_info; + u32 state; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ctrl_ctx { + struct trace_entry ent; + u32 drop; + u32 add; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_ring { + struct trace_entry ent; + u32 type; + void *ring; + dma_addr_t enq; + dma_addr_t deq; + dma_addr_t enq_seg; + dma_addr_t deq_seg; + unsigned int num_segs; + unsigned int stream_id; + unsigned int cycle_state; + unsigned int bounce_buf_len; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_portsc { + struct trace_entry ent; + u32 busnum; + u32 portnum; + u32 portsc; + char __data[0]; +}; + +struct trace_event_raw_xhci_log_doorbell { + struct trace_entry ent; + u32 slot; + u32 doorbell; + char __data[0]; +}; + +struct trace_event_raw_xhci_dbc_log_request { + struct trace_entry ent; + struct dbc_request *req; + bool dir; + unsigned int actual; + unsigned int length; + int status; + char __data[0]; +}; + +struct trace_event_data_offsets_xhci_log_msg { + u32 msg; +}; + +struct trace_event_data_offsets_xhci_log_ctx { + u32 ctx_data; +}; + +struct trace_event_data_offsets_xhci_log_trb {}; + +struct trace_event_data_offsets_xhci_log_free_virt_dev {}; + +struct trace_event_data_offsets_xhci_log_virt_dev {}; + +struct trace_event_data_offsets_xhci_log_urb {}; + +struct trace_event_data_offsets_xhci_log_ep_ctx {}; + +struct trace_event_data_offsets_xhci_log_slot_ctx {}; + +struct trace_event_data_offsets_xhci_log_ctrl_ctx {}; + +struct trace_event_data_offsets_xhci_log_ring {}; + +struct trace_event_data_offsets_xhci_log_portsc {}; + +struct trace_event_data_offsets_xhci_log_doorbell {}; + +struct trace_event_data_offsets_xhci_dbc_log_request {}; + +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); + +typedef void (*btf_trace_thermal_power_cpu_get_power_simple)(void *, int, u32); + +typedef void (*btf_trace_thermal_power_cpu_limit)(void *, const struct cpumask *, unsigned int, unsigned long, u32); + +struct thermal_instance { + int id; + char name[20]; + struct thermal_zone_device *tz; + struct thermal_cooling_device *cdev; + const struct thermal_trip *trip; + bool initialized; + unsigned long upper; + unsigned long lower; + unsigned long target; + char attr_name[20]; + struct device_attribute attr; + char weight_attr_name[20]; + struct device_attribute weight_attr; + struct list_head tz_node; + struct list_head cdev_node; + unsigned int weight; + bool upper_no_limit; +}; + +struct 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_raw_thermal_power_cpu_get_power_simple { + struct trace_entry ent; + int cpu; + u32 power; + char __data[0]; +}; + +struct trace_event_raw_thermal_power_cpu_limit { + struct trace_entry ent; + u32 __data_loc_cpumask; + unsigned int freq; + unsigned long cdev_state; + u32 power; + 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 trace_event_data_offsets_thermal_power_cpu_limit { + u32 cpumask; +}; + +struct trace_event_data_offsets_thermal_power_cpu_get_power_simple {}; + +struct tmio_mmc_data; + +struct tmio_mmc_dma_ops; + +struct tmio_mmc_host { + void *ctl; + struct mmc_command *cmd; + struct mmc_request *mrq; + struct mmc_data *data; + struct mmc_host *mmc; + struct mmc_host_ops ops; + void (*set_pwr)(struct platform_device *, int); + struct scatterlist *sg_ptr; + struct scatterlist *sg_orig; + unsigned int sg_len; + unsigned int sg_off; + unsigned int bus_shift; + struct platform_device *pdev; + struct tmio_mmc_data *pdata; + bool dma_on; + struct dma_chan *chan_rx; + struct dma_chan *chan_tx; + struct tasklet_struct dma_issue; + struct scatterlist bounce_sg; + u8 *bounce_buf; + struct delayed_work delayed_reset_work; + struct work_struct done; + u32 sdcard_irq_mask; + u32 sdio_irq_mask; + unsigned int clk_cache; + u32 sdcard_irq_setbit_mask; + u32 sdcard_irq_mask_all; + spinlock_t lock; + unsigned long last_req_ts; + struct mutex ios_lock; + bool native_hotplug; + bool sdio_irq_enabled; + int (*clk_enable)(struct tmio_mmc_host *); + void (*set_clock)(struct tmio_mmc_host *, unsigned int); + void (*clk_disable)(struct tmio_mmc_host *); + int (*multi_io_quirk)(struct mmc_card *, unsigned int, int); + int (*write16_hook)(struct tmio_mmc_host *, int); + void (*reset)(struct tmio_mmc_host *, bool); + bool (*check_retune)(struct tmio_mmc_host *, struct mmc_request *); + void (*fixup_request)(struct tmio_mmc_host *, struct mmc_request *); + unsigned int (*get_timeout_cycles)(struct tmio_mmc_host *); + const struct tmio_mmc_dma_ops *dma_ops; +}; + +struct tmio_mmc_data { + void *chan_priv_tx; + void *chan_priv_rx; + unsigned int hclk; + unsigned long capabilities; + unsigned long capabilities2; + unsigned long flags; + u32 ocr_mask; + dma_addr_t dma_rx_offset; + unsigned int max_blk_count; + unsigned short max_segs; + void (*set_pwr)(struct platform_device *, int); + void (*set_clk_div)(struct platform_device *, int); +}; + +struct tmio_mmc_dma_ops { + void (*start)(struct tmio_mmc_host *, struct mmc_data *); + void (*enable)(struct tmio_mmc_host *, bool); + void (*request)(struct tmio_mmc_host *, struct tmio_mmc_data *); + void (*release)(struct tmio_mmc_host *); + void (*abort)(struct tmio_mmc_host *); + void (*dataend)(struct tmio_mmc_host *); + void (*end)(struct tmio_mmc_host *); + bool (*dma_irq)(struct tmio_mmc_host *); +}; + +struct efi_memory_map_data { + phys_addr_t phys_map; + unsigned long size; + unsigned long desc_version; + unsigned long desc_size; + unsigned long flags; +}; + +typedef struct { + efi_guid_t guid; + unsigned long *ptr; + const char name[16]; +} efi_config_table_type_t; + +struct crypto_engine; + +struct crypto_engine_op { + int (*do_one_request)(struct crypto_engine *, void *); +}; + +struct akcipher_engine_alg { + struct akcipher_alg base; + struct crypto_engine_op op; +}; + +struct virtio_crypto_akcipher_algo { + uint32_t algonum; + uint32_t service; + unsigned int active_devs; + struct akcipher_engine_alg algo; +}; + +struct virtio_crypto_request; + +typedef void (*virtio_crypto_data_callback)(struct virtio_crypto_request *, int); + +struct virtio_crypto_op_data_req; + +struct data_queue; + +struct virtio_crypto_request { + uint8_t status; + struct virtio_crypto_op_data_req *req_data; + struct scatterlist **sgs; + struct data_queue *dataq; + virtio_crypto_data_callback alg_cb; +}; + +struct virtio_crypto_akcipher_ctx; + +struct virtio_crypto_akcipher_request { + struct virtio_crypto_request base; + struct virtio_crypto_akcipher_ctx *akcipher_ctx; + struct akcipher_request *akcipher_req; + void *src_buf; + void *dst_buf; + uint32_t opcode; +}; + +struct virtio_crypto_cipher_para { + __le32 iv_len; + __le32 src_data_len; + __le32 dst_data_len; + __le32 padding; +}; + +struct virtio_crypto_cipher_data_req { + struct virtio_crypto_cipher_para para; + __u8 padding[24]; +}; + +struct virtio_crypto_alg_chain_data_para { + __le32 iv_len; + __le32 src_data_len; + __le32 dst_data_len; + __le32 cipher_start_src_offset; + __le32 len_to_cipher; + __le32 hash_start_src_offset; + __le32 len_to_hash; + __le32 aad_len; + __le32 hash_result_len; + __le32 reserved; +}; + +struct virtio_crypto_alg_chain_data_req { + struct virtio_crypto_alg_chain_data_para para; +}; + +struct virtio_crypto_sym_data_req { + union { + struct virtio_crypto_cipher_data_req cipher; + struct virtio_crypto_alg_chain_data_req chain; + __u8 padding[40]; + } u; + __le32 op_type; + __le32 padding; +}; + +struct virtio_crypto_hash_para { + __le32 src_data_len; + __le32 hash_result_len; +}; + +struct virtio_crypto_hash_data_req { + struct virtio_crypto_hash_para para; + __u8 padding[40]; +}; + +struct virtio_crypto_mac_para { + struct virtio_crypto_hash_para hash; +}; + +struct virtio_crypto_mac_data_req { + struct virtio_crypto_mac_para para; + __u8 padding[40]; +}; + +struct virtio_crypto_aead_para { + __le32 iv_len; + __le32 aad_len; + __le32 src_data_len; + __le32 dst_data_len; +}; + +struct virtio_crypto_aead_data_req { + struct virtio_crypto_aead_para para; + __u8 padding[32]; +}; + +struct virtio_crypto_akcipher_para { + __le32 src_data_len; + __le32 dst_data_len; +}; + +struct virtio_crypto_akcipher_data_req { + struct virtio_crypto_akcipher_para para; + __u8 padding[40]; +}; + +struct virtio_crypto_op_header { + __le32 opcode; + __le32 algo; + __le64 session_id; + __le32 flag; + __le32 padding; +}; + +struct virtio_crypto_op_data_req { + struct virtio_crypto_op_header header; + union { + struct virtio_crypto_sym_data_req sym_req; + struct virtio_crypto_hash_data_req hash_req; + struct virtio_crypto_mac_data_req mac_req; + struct virtio_crypto_aead_data_req aead_req; + struct virtio_crypto_akcipher_data_req akcipher_req; + __u8 padding[48]; + } u; +}; + +struct data_queue { + struct virtqueue *vq; + spinlock_t lock; + char name[32]; + struct crypto_engine *engine; + struct tasklet_struct done_task; +}; + +struct virtio_crypto_rsa_ctx { + MPI n; +}; + +struct virtio_crypto; + +struct virtio_crypto_akcipher_ctx { + struct virtio_crypto *vcrypto; + struct crypto_akcipher *tfm; + bool session_valid; + __u64 session_id; + union { + struct virtio_crypto_rsa_ctx rsa_ctx; + }; +}; + +struct virtio_crypto { + struct virtio_device *vdev; + struct virtqueue *ctrl_vq; + struct data_queue *data_vq; + struct work_struct config_work; + spinlock_t ctrl_lock; + u32 max_data_queues; + u32 curr_queue; + u32 crypto_services; + u32 cipher_algo_l; + u32 cipher_algo_h; + u32 hash_algo; + u32 mac_algo_l; + u32 mac_algo_h; + u32 aead_algo; + u32 akcipher_algo; + u32 max_cipher_key_len; + u32 max_auth_key_len; + u64 max_size; + unsigned long status; + atomic_t ref_count; + struct list_head list; + struct module *owner; + uint8_t dev_id; + bool affinity_hint_set; +}; + +struct virtio_crypto_ctrl_header { + __le32 opcode; + __le32 algo; + __le32 flag; + __le32 queue_id; +}; + +struct virtio_crypto_cipher_session_para { + __le32 algo; + __le32 keylen; + __le32 op; + __le32 padding; +}; + +struct virtio_crypto_cipher_session_req { + struct virtio_crypto_cipher_session_para para; + __u8 padding[32]; +}; + +struct virtio_crypto_hash_session_para { + __le32 algo; + __le32 hash_result_len; + __u8 padding[8]; +}; + +struct virtio_crypto_mac_session_para { + __le32 algo; + __le32 hash_result_len; + __le32 auth_key_len; + __le32 padding; +}; + +struct virtio_crypto_alg_chain_session_para { + __le32 alg_chain_order; + __le32 hash_mode; + struct virtio_crypto_cipher_session_para cipher_param; + union { + struct virtio_crypto_hash_session_para hash_param; + struct virtio_crypto_mac_session_para mac_param; + __u8 padding[16]; + } u; + __le32 aad_len; + __le32 padding; +}; + +struct virtio_crypto_alg_chain_session_req { + struct virtio_crypto_alg_chain_session_para para; +}; + +struct virtio_crypto_sym_create_session_req { + union { + struct virtio_crypto_cipher_session_req cipher; + struct virtio_crypto_alg_chain_session_req chain; + __u8 padding[48]; + } u; + __le32 op_type; + __le32 padding; +}; + +struct virtio_crypto_hash_create_session_req { + struct virtio_crypto_hash_session_para para; + __u8 padding[40]; +}; + +struct virtio_crypto_mac_create_session_req { + struct virtio_crypto_mac_session_para para; + __u8 padding[40]; +}; + +struct virtio_crypto_aead_session_para { + __le32 algo; + __le32 key_len; + __le32 hash_result_len; + __le32 aad_len; + __le32 op; + __le32 padding; +}; + +struct virtio_crypto_aead_create_session_req { + struct virtio_crypto_aead_session_para para; + __u8 padding[32]; +}; + +struct virtio_crypto_rsa_session_para { + __le32 padding_algo; + __le32 hash_algo; +}; + +struct virtio_crypto_ecdsa_session_para { + __le32 curve_id; + __le32 padding; +}; + +struct virtio_crypto_akcipher_session_para { + __le32 algo; + __le32 keytype; + __le32 keylen; + union { + struct virtio_crypto_rsa_session_para rsa; + struct virtio_crypto_ecdsa_session_para ecdsa; + } u; +}; + +struct virtio_crypto_akcipher_create_session_req { + struct virtio_crypto_akcipher_session_para para; + __u8 padding[36]; +}; + +struct virtio_crypto_destroy_session_req { + __le64 session_id; + __u8 padding[48]; +}; + +struct virtio_crypto_op_ctrl_req { + struct virtio_crypto_ctrl_header header; + union { + struct virtio_crypto_sym_create_session_req sym_create_session; + struct virtio_crypto_hash_create_session_req hash_create_session; + struct virtio_crypto_mac_create_session_req mac_create_session; + struct virtio_crypto_aead_create_session_req aead_create_session; + struct virtio_crypto_akcipher_create_session_req akcipher_create_session; + struct virtio_crypto_destroy_session_req destroy_session; + __u8 padding[56]; + } u; +}; + +struct virtio_crypto_session_input { + __le64 session_id; + __le32 status; + __le32 padding; +}; + +struct virtio_crypto_inhdr { + __u8 status; +}; + +struct virtio_crypto_ctrl_request { + struct virtio_crypto_op_ctrl_req ctrl; + struct virtio_crypto_session_input input; + struct virtio_crypto_inhdr ctrl_status; + struct completion compl; +}; + +enum snd_soc_dapm_direction { + SND_SOC_DAPM_DIR_IN = 0, + SND_SOC_DAPM_DIR_OUT = 1, +}; + +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 snd_soc_dapm_path { + const char *name; + union { + struct { + struct snd_soc_dapm_widget *source; + struct snd_soc_dapm_widget *sink; + }; + struct snd_soc_dapm_widget *node[2]; + }; + u32 connect: 1; + u32 walking: 1; + u32 weak: 1; + u32 is_supply: 1; + int (*connected)(struct snd_soc_dapm_widget *, struct snd_soc_dapm_widget *); + struct list_head list_node[2]; + struct list_head list_kcontrol; + struct list_head list; +}; + +struct soc_mixer_control { + int min; + int max; + int platform_max; + int reg; + int rreg; + unsigned int shift; + unsigned int rshift; + unsigned int sign_bit; + unsigned int invert: 1; + unsigned int autodisable: 1; +}; + +struct soc_enum { + int reg; + unsigned char shift_l; + unsigned char shift_r; + unsigned int items; + unsigned int mask; + const char * const *texts; + const unsigned int *values; + unsigned int autodisable: 1; +}; + +struct snd_soc_dapm_widget_list { + int num_widgets; + struct snd_soc_dapm_widget *widgets[0]; +}; + +struct dapm_kcontrol_data { + unsigned int value; + struct snd_soc_dapm_widget *widget; + struct list_head paths; + struct snd_soc_dapm_widget_list *wlist; +}; + +struct snd_soc_dapm_pinctrl_priv { + const char *active_state; + const char *sleep_state; +}; + +struct ib_device; + +struct devlink; + +enum devlink_port_type { + DEVLINK_PORT_TYPE_NOTSET = 0, + DEVLINK_PORT_TYPE_AUTO = 1, + DEVLINK_PORT_TYPE_ETH = 2, + DEVLINK_PORT_TYPE_IB = 3, +}; + +enum devlink_port_flavour { + DEVLINK_PORT_FLAVOUR_PHYSICAL = 0, + DEVLINK_PORT_FLAVOUR_CPU = 1, + DEVLINK_PORT_FLAVOUR_DSA = 2, + DEVLINK_PORT_FLAVOUR_PCI_PF = 3, + DEVLINK_PORT_FLAVOUR_PCI_VF = 4, + DEVLINK_PORT_FLAVOUR_VIRTUAL = 5, + DEVLINK_PORT_FLAVOUR_UNUSED = 6, + DEVLINK_PORT_FLAVOUR_PCI_SF = 7, +}; + +struct devlink_port_phys_attrs { + u32 port_number; + u32 split_subport_number; +}; + +struct devlink_port_pci_pf_attrs { + u32 controller; + u16 pf; + u8 external: 1; +}; + +struct devlink_port_pci_vf_attrs { + u32 controller; + u16 pf; + u16 vf; + u8 external: 1; +}; + +struct devlink_port_pci_sf_attrs { + u32 controller; + u32 sf; + u16 pf; + u8 external: 1; +}; + +struct devlink_port_attrs { + u8 split: 1; + u8 splittable: 1; + u32 lanes; + enum devlink_port_flavour flavour; + struct netdev_phys_item_id switch_id; + union { + struct devlink_port_phys_attrs phys; + struct devlink_port_pci_pf_attrs pci_pf; + struct devlink_port_pci_vf_attrs pci_vf; + struct devlink_port_pci_sf_attrs pci_sf; + }; +}; + +struct devlink_linecard; + +struct devlink_port_ops; + +struct devlink_rate; + +struct devlink_port { + struct list_head list; + struct list_head region_list; + struct devlink *devlink; + const struct devlink_port_ops *ops; + unsigned int index; + spinlock_t type_lock; + enum devlink_port_type type; + enum devlink_port_type desired_type; + union { + struct { + struct net_device *netdev; + int ifindex; + char ifname[16]; + } type_eth; + struct { + struct ib_device *ibdev; + } type_ib; + }; + struct devlink_port_attrs attrs; + u8 attrs_set: 1; + u8 switch_port: 1; + u8 registered: 1; + u8 initialized: 1; + struct delayed_work type_warn_dw; + struct list_head reporter_list; + struct devlink_rate *devlink_rate; + struct devlink_linecard *linecard; + u32 rel_index; +}; + +enum devlink_port_fn_state { + DEVLINK_PORT_FN_STATE_INACTIVE = 0, + DEVLINK_PORT_FN_STATE_ACTIVE = 1, +}; + +enum devlink_port_fn_opstate { + DEVLINK_PORT_FN_OPSTATE_DETACHED = 0, + DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1, +}; + +struct devlink_port_ops { + int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *); + int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_type_set)(struct devlink_port *, enum devlink_port_type); + int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); + int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); + int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_set)(struct devlink_port *, bool, struct netlink_ext_ack *); +}; + +enum devlink_rate_type { + DEVLINK_RATE_TYPE_LEAF = 0, + DEVLINK_RATE_TYPE_NODE = 1, +}; + +struct devlink_rate { + struct list_head list; + enum devlink_rate_type type; + struct devlink *devlink; + void *priv; + u64 tx_share; + u64 tx_max; + struct devlink_rate *parent; + union { + struct devlink_port *devlink_port; + struct { + char *name; + refcount_t refcnt; + }; + }; + u32 tx_priority; + u32 tx_weight; +}; + +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; +}; + +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; +}; + +typedef void (*btf_trace_bpf_test_finish)(void *, int *); + +struct bpf_test_timer { + enum { + NO_PREEMPT = 0, + NO_MIGRATE = 1, + } mode; + u32 i; + u64 time_start; + u64 time_spent; +}; + +enum bpf_cgroup_storage_type { + BPF_CGROUP_STORAGE_SHARED = 0, + BPF_CGROUP_STORAGE_PERCPU = 1, + __BPF_CGROUP_STORAGE_MAX = 2, +}; + +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 bpf_skb_data_end { + struct qdisc_skb_cb qdisc_cb; + void *data_meta; + void *data_end; +}; + +struct xdp_test_data { + struct xdp_buff *orig_ctx; long: 64; long: 64; long: 64; @@ -65863,27 +68107,1215 @@ struct bpf_ringbuf { 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; + union { + struct { + struct {} __empty_frame; + struct xdp_frame frame[0]; + }; + struct { + struct {} __empty_data; + u8 data[0]; + }; + }; +}; + +struct bpf_flow_keys; + +struct bpf_flow_dissector { + struct bpf_flow_keys *flow_keys; + const struct sk_buff *skb; + const void *data; + const void *data_end; +}; + +struct bpf_flow_keys { + __u16 nhoff; + __u16 thoff; + __u16 addr_proto; + __u8 is_frag; + __u8 is_first_frag; + __u8 is_encap; + __u8 ip_proto; + __be16 n_proto; + __be16 sport; + __be16 dport; + union { + struct { + __be32 ipv4_src; + __be32 ipv4_dst; + }; + struct { + __u32 ipv6_src[4]; + __u32 ipv6_dst[4]; + }; + }; + __u32 flags; + __be32 flow_label; +}; + +struct trace_event_data_offsets_bpf_test_finish {}; + +struct prog_test_member1 { + int a; +}; + +struct prog_test_member { + struct prog_test_member1 m; + int c; +}; + +struct prog_test_ref_kfunc { + int a; + int b; + struct prog_test_member memb; + struct prog_test_ref_kfunc *next; + refcount_t cnt; +}; + +struct bpf_raw_tp_test_run_info { + struct bpf_prog *prog; + void *ctx; + u32 retval; +}; + +struct bpf_sock; + +struct __sk_buff { + __u32 len; + __u32 pkt_type; + __u32 mark; + __u32 queue_mapping; + __u32 protocol; + __u32 vlan_present; + __u32 vlan_tci; + __u32 vlan_proto; + __u32 priority; + __u32 ingress_ifindex; + __u32 ifindex; + __u32 tc_index; + __u32 cb[5]; + __u32 hash; + __u32 tc_classid; + __u32 data; + __u32 data_end; + __u32 napi_id; + __u32 family; + __u32 remote_ip4; + __u32 local_ip4; + __u32 remote_ip6[4]; + __u32 local_ip6[4]; + __u32 remote_port; + __u32 local_port; + __u32 data_meta; + union { + struct bpf_flow_keys *flow_keys; + }; + __u64 tstamp; + __u32 wire_len; + __u32 gso_segs; + union { + struct bpf_sock *sk; + }; + __u32 gso_size; + __u8 tstamp_type; + __u64 hwtstamp; +}; + +struct bpf_sock { + __u32 bound_dev_if; + __u32 family; + __u32 type; + __u32 protocol; + __u32 mark; + __u32 priority; + __u32 src_ip4; + __u32 src_ip6[4]; + __u32 src_port; + __be16 dst_port; + __u32 dst_ip4; + __u32 dst_ip6[4]; + __u32 state; + __s32 rx_queue_mapping; +}; + +struct bpf_cg_run_ctx { + struct bpf_run_ctx run_ctx; + const struct bpf_prog_array_item *prog_item; + int retval; +}; + +struct bpf_sk_lookup { + union { + union { + struct bpf_sock *sk; + }; + __u64 cookie; + }; + __u32 family; + __u32 protocol; + __u32 remote_ip4; + __u32 remote_ip6[4]; + __be16 remote_port; + __u32 local_ip4; + __u32 local_ip6[4]; + __u32 local_port; + __u32 ingress_ifindex; +}; + +struct bpf_nf_ctx { + const struct nf_hook_state *state; + struct sk_buff *skb; +}; + +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; +}; + +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 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 xfrm_input_afinfo { + u8 family; + bool is_ipip; + int (*callback)(struct sk_buff *, u8, int); +}; + +struct xfrm_trans_tasklet { + struct work_struct work; + spinlock_t queue_lock; + struct sk_buff_head queue; +}; + +enum { + XFRM_MODE_FLAG_TUNNEL = 1, +}; + +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 __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_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 ip_beet_phdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 padlen; + __u8 reserved; +}; + +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 { + IPV6_SADDR_RULE_INIT = 0, + IPV6_SADDR_RULE_LOCAL = 1, + IPV6_SADDR_RULE_SCOPE = 2, + IPV6_SADDR_RULE_PREFERRED = 3, + IPV6_SADDR_RULE_OIF = 4, + IPV6_SADDR_RULE_LABEL = 5, + IPV6_SADDR_RULE_PRIVACY = 6, + IPV6_SADDR_RULE_ORCHID = 7, + IPV6_SADDR_RULE_PREFIX = 8, + IPV6_SADDR_RULE_MAX = 9, +}; + +enum { + DAD_PROCESS = 0, + DAD_BEGIN = 1, + DAD_ABORT = 2, +}; + +enum cleanup_prefix_rt_t { + CLEANUP_PREFIX_RT_NOP = 0, + CLEANUP_PREFIX_RT_DEL = 1, + CLEANUP_PREFIX_RT_EXPIRE = 2, +}; + +enum in6_addr_gen_mode { + IN6_ADDR_GEN_MODE_EUI64 = 0, + IN6_ADDR_GEN_MODE_NONE = 1, + IN6_ADDR_GEN_MODE_STABLE_PRIVACY = 2, + IN6_ADDR_GEN_MODE_RANDOM = 3, +}; + +enum { + DEVCONF_FORWARDING = 0, + DEVCONF_HOPLIMIT = 1, + DEVCONF_MTU6 = 2, + DEVCONF_ACCEPT_RA = 3, + DEVCONF_ACCEPT_REDIRECTS = 4, + DEVCONF_AUTOCONF = 5, + DEVCONF_DAD_TRANSMITS = 6, + DEVCONF_RTR_SOLICITS = 7, + DEVCONF_RTR_SOLICIT_INTERVAL = 8, + DEVCONF_RTR_SOLICIT_DELAY = 9, + DEVCONF_USE_TEMPADDR = 10, + DEVCONF_TEMP_VALID_LFT = 11, + DEVCONF_TEMP_PREFERED_LFT = 12, + DEVCONF_REGEN_MAX_RETRY = 13, + DEVCONF_MAX_DESYNC_FACTOR = 14, + DEVCONF_MAX_ADDRESSES = 15, + DEVCONF_FORCE_MLD_VERSION = 16, + DEVCONF_ACCEPT_RA_DEFRTR = 17, + DEVCONF_ACCEPT_RA_PINFO = 18, + DEVCONF_ACCEPT_RA_RTR_PREF = 19, + DEVCONF_RTR_PROBE_INTERVAL = 20, + DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN = 21, + DEVCONF_PROXY_NDP = 22, + DEVCONF_OPTIMISTIC_DAD = 23, + DEVCONF_ACCEPT_SOURCE_ROUTE = 24, + DEVCONF_MC_FORWARDING = 25, + DEVCONF_DISABLE_IPV6 = 26, + DEVCONF_ACCEPT_DAD = 27, + DEVCONF_FORCE_TLLAO = 28, + DEVCONF_NDISC_NOTIFY = 29, + DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL = 30, + DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL = 31, + DEVCONF_SUPPRESS_FRAG_NDISC = 32, + DEVCONF_ACCEPT_RA_FROM_LOCAL = 33, + DEVCONF_USE_OPTIMISTIC = 34, + DEVCONF_ACCEPT_RA_MTU = 35, + DEVCONF_STABLE_SECRET = 36, + DEVCONF_USE_OIF_ADDRS_ONLY = 37, + DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT = 38, + DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 39, + DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 40, + DEVCONF_DROP_UNSOLICITED_NA = 41, + DEVCONF_KEEP_ADDR_ON_DOWN = 42, + DEVCONF_RTR_SOLICIT_MAX_INTERVAL = 43, + DEVCONF_SEG6_ENABLED = 44, + DEVCONF_SEG6_REQUIRE_HMAC = 45, + DEVCONF_ENHANCED_DAD = 46, + DEVCONF_ADDR_GEN_MODE = 47, + DEVCONF_DISABLE_POLICY = 48, + DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49, + DEVCONF_NDISC_TCLASS = 50, + DEVCONF_RPL_SEG_ENABLED = 51, + DEVCONF_RA_DEFRTR_METRIC = 52, + DEVCONF_IOAM6_ENABLED = 53, + DEVCONF_IOAM6_ID = 54, + DEVCONF_IOAM6_ID_WIDE = 55, + DEVCONF_NDISC_EVICT_NOCARRIER = 56, + DEVCONF_ACCEPT_UNTRACKED_NA = 57, + DEVCONF_ACCEPT_RA_MIN_LFT = 58, + DEVCONF_MAX = 59, +}; + +enum { + IFLA_INET6_UNSPEC = 0, + IFLA_INET6_FLAGS = 1, + IFLA_INET6_CONF = 2, + IFLA_INET6_STATS = 3, + IFLA_INET6_MCAST = 4, + IFLA_INET6_CACHEINFO = 5, + IFLA_INET6_ICMP6STATS = 6, + IFLA_INET6_TOKEN = 7, + IFLA_INET6_ADDR_GEN_MODE = 8, + IFLA_INET6_RA_MTU = 9, + __IFLA_INET6_MAX = 10, +}; + +enum { + PREFIX_UNSPEC = 0, + PREFIX_ADDRESS = 1, + PREFIX_CACHEINFO = 2, + __PREFIX_MAX = 3, +}; + +enum addr_type_t { + UNICAST_ADDR = 0, + MULTICAST_ADDR = 1, + ANYCAST_ADDR = 2, +}; + +union fwnet_hwaddr { + u8 u[16]; + struct { + __be64 uniq_id; + u8 max_rec; + u8 sspd; + u8 fifo[6]; + } uc; +}; + +struct ipv6_saddr_dst { + const struct in6_addr *addr; + int ifindex; + int scope; + int label; + unsigned int prefs; +}; + +struct ipv6_saddr_score { + int rule; + int addr_type; + struct inet6_ifaddr *ifa; + unsigned long scorebits[1]; + int scopedist; + int matchlen; +}; + +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; +}; + +typedef __kernel_clock_t clock_t; + +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 in6_ifreq { + struct in6_addr ifr6_addr; + __u32 ifr6_prefixlen; + int ifr6_ifindex; +}; + +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 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 ifa6_config { + const struct in6_addr *pfx; + unsigned int plen; + u8 ifa_proto; + const struct in6_addr *peer_pfx; + u32 rt_priority; + u32 ifa_flags; + u32 preferred_lft; + u32 valid_lft; + u16 scope; +}; + +struct in6_validator_info { + struct in6_addr i6vi_addr; + struct inet6_dev *i6vi_dev; + struct netlink_ext_ack *extack; +}; + +struct ifla_cacheinfo { + __u32 max_reasm_len; + __u32 tstamp; + __u32 reachable_time; + __u32 retrans_time; +}; + +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 fib6_rule { + struct fib_rule common; + struct rt6key src; + struct rt6key dst; + dscp_t dscp; +}; + +typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); + +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 { + GP_IDLE = 0, + GP_ENTER = 1, + GP_PASSED = 2, + GP_EXIT = 3, + GP_REPLAY = 4, +}; + +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_node; + +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 rt_mutex { + struct rt_mutex_base rtmutex; +}; + +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: 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; +}; + +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; + int nr_fqs_jiffies_stall; + unsigned long jiffies_resched; + unsigned long n_force_qs_gpstart; + const char *name; + char abbr; long: 64; long: 64; + arch_spinlock_t ofl_lock; + int nocb_is_setup; long: 64; long: 64; long: 64; @@ -65891,2151 +69323,3737 @@ struct bpf_ringbuf { 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 rcu_gp_oldstate { + unsigned long rgos_norm; + unsigned long rgos_exp; +}; + +struct kfree_rcu_cpu; + +struct kfree_rcu_cpu_work { + struct rcu_work rcu_work; + struct callback_head *head_free; + struct rcu_gp_oldstate head_free_gp_snap; + struct list_head bulk_head_free[2]; + struct kfree_rcu_cpu *krcp; +}; + +struct kfree_rcu_cpu { + struct callback_head *head; + unsigned long head_gp_snap; + atomic_t head_count; + struct list_head bulk_head[2]; + atomic_t bulk_count[2]; + struct kfree_rcu_cpu_work krw_arr[2]; + raw_spinlock_t lock; + struct delayed_work monitor_work; + bool initialized; + struct delayed_work page_cache_work; + atomic_t backoff_page_cache_fill; + atomic_t work_in_progress; + struct hrtimer hrtimer; + struct llist_head bkvcache; + int nr_bkv_objs; +}; + +struct 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; +}; + +struct sysrq_key_op { + void (* const handler)(u8); + const char * const help_msg; + const char * const action_msg; + const int enable_mask; +}; + +enum { + CSD_FLAG_LOCK = 1, + IRQ_WORK_PENDING = 1, + IRQ_WORK_BUSY = 2, + IRQ_WORK_LAZY = 4, + IRQ_WORK_HARD_IRQ = 8, + IRQ_WORK_CLAIMED = 3, + CSD_TYPE_ASYNC = 0, + CSD_TYPE_SYNC = 16, + CSD_TYPE_IRQ_WORK = 32, + CSD_TYPE_TTWU = 48, + CSD_FLAG_TYPE_MASK = 240, +}; + +enum tick_dep_bits { + TICK_DEP_BIT_POSIX_TIMER = 0, + TICK_DEP_BIT_PERF_EVENTS = 1, + TICK_DEP_BIT_SCHED = 2, + TICK_DEP_BIT_CLOCK_UNSTABLE = 3, + TICK_DEP_BIT_RCU = 4, + TICK_DEP_BIT_RCU_EXP = 5, +}; + +enum ftrace_dump_mode { + DUMP_NONE = 0, + DUMP_ALL = 1, + DUMP_ORIG = 2, +}; + +struct kernel_stat { + unsigned long irqs_sum; + unsigned int softirqs[10]; +}; + +struct kvfree_rcu_bulk_data { + struct list_head list; + struct rcu_gp_oldstate gp_snap; + unsigned long nr_records; + void *records[0]; +}; + +struct sched_param { + int sched_priority; +}; + +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 prog_poke_elem { + struct list_head list; + struct bpf_prog_aux *aux; +}; + +struct bpf_event_entry { + struct perf_event *event; + struct file *perf_file; + struct file *map_file; + struct callback_head rcu; +}; + +struct bpf_iter__bpf_map_elem { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + void *value; + }; +}; + +struct bpf_iter_seq_array_map_info { + struct bpf_map *map; + void *percpu_value_buf; + u32 index; +}; + +typedef void (*btf_trace_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 memblock_region { + phys_addr_t base; + phys_addr_t size; + enum memblock_flags flags; +}; + +enum mminit_level { + MMINIT_WARNING = 0, + MMINIT_VERIFY = 1, + MMINIT_TRACE = 2, +}; + +enum meminit_context { + MEMINIT_EARLY = 0, + MEMINIT_HOTPLUG = 1, +}; + +enum { + PAGE_WAS_MAPPED = 1, + PAGE_WAS_MLOCKED = 2, +}; + +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 *); +}; + +typedef struct folio *new_folio_t(struct folio *, unsigned long); + +typedef void free_folio_t(struct folio *, 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; + int nr_split; +}; + +union migration_ptr { + struct anon_vma *anon_vma; + struct address_space *mapping; +}; + +struct linux_dirent { + unsigned long d_ino; + unsigned long d_off; + unsigned short d_reclen; + char d_name[0]; +}; + +struct getdents_callback { + 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[0]; +}; + +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[0]; +}; + +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; +}; + +typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *); + +typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *); + +typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int); + +typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_inode_foreign_history)(void *, struct inode *, struct writeback_control *, unsigned int); + +typedef void (*btf_trace_inode_switch_wbs)(void *, struct inode *, struct bdi_writeback *, struct bdi_writeback *); + +typedef void (*btf_trace_track_foreign_dirty)(void *, struct folio *, struct bdi_writeback *); + +typedef void (*btf_trace_flush_foreign)(void *, struct bdi_writeback *, unsigned int, unsigned int); + +typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *); + +struct wb_writeback_work; + +typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +struct wb_writeback_work { + long nr_pages; + struct super_block *sb; + enum writeback_sync_modes sync_mode; + unsigned int tagged_writepages: 1; + unsigned int for_kupdate: 1; + unsigned int range_cyclic: 1; + unsigned int for_background: 1; + unsigned int for_sync: 1; + unsigned int auto_free: 1; + enum wb_reason reason; + struct list_head list; + struct wb_completion *done; +}; + +typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_start)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +typedef void (*btf_trace_writeback_pages_written)(void *, long); + +typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *); + +typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *); + +typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *); + +typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, unsigned long, int); + +typedef void (*btf_trace_global_dirty_state)(void *, unsigned long, unsigned long); + +typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, unsigned long, unsigned long); + +typedef void (*btf_trace_balance_dirty_pages)(void *, struct bdi_writeback *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, long, unsigned long); + +typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *); + +typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, unsigned long); + +typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, unsigned long); + +typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *); + +typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *); + +typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *); + +typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *); + +typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *); + +struct trace_event_raw_writeback_folio_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + unsigned long index; + char __data[0]; +}; + +struct trace_event_raw_writeback_dirty_inode_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + unsigned long state; + unsigned long flags; + char __data[0]; +}; + +struct trace_event_raw_inode_foreign_history { + struct trace_entry ent; + char name[32]; + ino_t ino; + ino_t cgroup_ino; + unsigned int history; + char __data[0]; +}; + +struct trace_event_raw_inode_switch_wbs { + struct trace_entry ent; + char name[32]; + ino_t ino; + ino_t old_cgroup_ino; + ino_t new_cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_track_foreign_dirty { + struct trace_entry ent; + char name[32]; + u64 bdi_id; + ino_t ino; + unsigned int memcg_id; + ino_t cgroup_ino; + ino_t page_cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_flush_foreign { + struct trace_entry ent; + char name[32]; + ino_t cgroup_ino; + unsigned int frn_bdi_id; + unsigned int frn_memcg_id; + char __data[0]; +}; + +struct trace_event_raw_writeback_write_inode_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + int sync_mode; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_work_class { + struct trace_entry ent; + char name[32]; + long nr_pages; + dev_t sb_dev; + int sync_mode; + int for_kupdate; + int range_cyclic; + int for_background; + int reason; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_pages_written { + struct trace_entry ent; + long pages; + char __data[0]; +}; + +struct trace_event_raw_writeback_class { + struct trace_entry ent; + char name[32]; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_bdi_register { + struct trace_entry ent; + char name[32]; + char __data[0]; +}; + +struct trace_event_raw_wbc_class { + struct trace_entry ent; + char name[32]; + long nr_to_write; + long pages_skipped; + int sync_mode; + int for_kupdate; + int for_background; + int for_reclaim; + int range_cyclic; + long range_start; + long range_end; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_queue_io { + struct trace_entry ent; + char name[32]; + unsigned long older; + long age; + int moved; + int reason; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_global_dirty_state { + struct trace_entry ent; + unsigned long nr_dirty; + unsigned long nr_writeback; + unsigned long background_thresh; + unsigned long dirty_thresh; + unsigned long dirty_limit; + unsigned long nr_dirtied; + unsigned long nr_written; + char __data[0]; +}; + +struct trace_event_raw_bdi_dirty_ratelimit { + struct trace_entry ent; + char bdi[32]; + unsigned long write_bw; + unsigned long avg_write_bw; + unsigned long dirty_rate; + unsigned long dirty_ratelimit; + unsigned long task_ratelimit; + unsigned long balanced_dirty_ratelimit; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_balance_dirty_pages { + struct trace_entry ent; + char bdi[32]; + unsigned long limit; + unsigned long setpoint; + unsigned long dirty; + unsigned long bdi_setpoint; + unsigned long bdi_dirty; + unsigned long dirty_ratelimit; + unsigned long task_ratelimit; + unsigned int dirtied; + unsigned int dirtied_pause; + unsigned long paused; + long pause; + unsigned long period; + long think; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_sb_inodes_requeue { + struct trace_entry ent; + char name[32]; + ino_t ino; + unsigned long state; + unsigned long dirtied_when; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_single_inode_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + unsigned long state; + unsigned long dirtied_when; + unsigned long writeback_index; + long nr_to_write; + unsigned long wrote; + ino_t cgroup_ino; + char __data[0]; +}; + +struct trace_event_raw_writeback_inode_template { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long state; + __u16 mode; + unsigned long dirtied_when; + char __data[0]; +}; + +struct inode_switch_wbs_context { + struct rcu_work work; + struct bdi_writeback *new_wb; + struct inode *inodes[0]; +}; + +struct trace_event_data_offsets_writeback_folio_template {}; + +struct trace_event_data_offsets_writeback_dirty_inode_template {}; + +struct trace_event_data_offsets_inode_foreign_history {}; + +struct trace_event_data_offsets_inode_switch_wbs {}; + +struct trace_event_data_offsets_track_foreign_dirty {}; + +struct trace_event_data_offsets_flush_foreign {}; + +struct trace_event_data_offsets_writeback_write_inode_template {}; + +struct trace_event_data_offsets_writeback_work_class {}; + +struct trace_event_data_offsets_writeback_pages_written {}; + +struct trace_event_data_offsets_writeback_class {}; + +struct trace_event_data_offsets_writeback_bdi_register {}; + +struct trace_event_data_offsets_wbc_class {}; + +struct trace_event_data_offsets_writeback_queue_io {}; + +struct trace_event_data_offsets_global_dirty_state {}; + +struct trace_event_data_offsets_bdi_dirty_ratelimit {}; + +struct trace_event_data_offsets_balance_dirty_pages {}; + +struct trace_event_data_offsets_writeback_sb_inodes_requeue {}; + +struct trace_event_data_offsets_writeback_single_inode_template {}; + +struct trace_event_data_offsets_writeback_inode_template {}; + +enum proc_param { + Opt_gid___3 = 0, + Opt_hidepid = 1, + Opt_subset = 2, +}; + +struct proc_fs_context { + struct pid_namespace *pid_ns; + unsigned int mask; + enum proc_hidepid hidepid; + int gid; + enum proc_pidonly pidonly; +}; + +struct 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; +}; + +enum shrink_type { + SHRINK_DESTROY = 0, + SHRINK_BUSY_STOP = 1, + SHRINK_BUSY_SKIP = 2, +}; + +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; +}; + +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, +}; + +enum pnfs_notify_deviceid_type4 { + NOTIFY_DEVICEID4_CHANGE = 2, + NOTIFY_DEVICEID4_DELETE = 4, +}; + +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 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; +}; + +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, +} __attribute__((mode(byte))); + +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_rdir { + int head; + int tail; + uint8_t buf[0]; +}; + +struct p9_dirent { + struct p9_qid qid; + u64 d_off; + unsigned char d_type; + char d_name[256]; +}; + +struct keyctl_dh_params { + union { + __s32 private; + __s32 priv; + }; + __s32 prime; + __s32 base; +}; + +struct keyctl_kdf_params { + char __attribute__((btf_type_tag("user"))) *hashname; + char __attribute__((btf_type_tag("user"))) *otherinfo; + __u32 otherinfolen; + __u32 __spare[8]; +}; + +struct keyctl_pkey_query { + __u32 supported_ops; + __u32 key_size; + __u16 max_data_size; + __u16 max_sig_size; + __u16 max_enc_size; + __u16 max_dec_size; + __u32 __spare[10]; +}; + +struct keyctl_pkey_params { + __s32 key_id; + __u32 in_len; + union { + __u32 out_len; + __u32 in2_len; + }; + __u32 __spare[7]; +}; + +struct counted_str { + struct kref count; + char name[0]; +}; + +struct acomp_alg { + int (*compress)(struct acomp_req *); + int (*decompress)(struct acomp_req *); + void (*dst_free)(struct scatterlist *); + int (*init)(struct crypto_acomp *); + void (*exit)(struct crypto_acomp *); + unsigned int reqsize; + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; +}; + +struct crypto_istat_compress { + atomic64_t compress_cnt; + atomic64_t compress_tlen; + atomic64_t decompress_cnt; + atomic64_t decompress_tlen; + atomic64_t err_cnt; +}; + +struct rq_map_data { + struct page **pages; + unsigned long offset; + unsigned short page_order; + unsigned short nr_entries; + bool null_mapped; + bool from_user; +}; + +struct bio_map_data { + bool is_our_pages: 1; + bool is_null_mapped: 1; + struct iov_iter iter; + struct iovec iov[0]; +}; + +struct rq_wait; + +typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); + +struct rq_qos_wait_data { + struct wait_queue_entry wq; + struct task_struct *task; + struct rq_wait *rqw; + acquire_inflight_cb_t *cb; + void *private_data; + bool got_token; +}; + +struct rq_wait { + wait_queue_head_t wait; + atomic_t inflight; +}; + +struct rq_depth { + unsigned int max_depth; + int scale_step; + bool scaled_max; + unsigned int queue_depth; + unsigned int default_depth; +}; + +typedef void cleanup_cb_t(struct rq_wait *, void *); + +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 region { + unsigned int start; + unsigned int off; + unsigned int group_len; + unsigned int end; + unsigned int nbits; +}; + +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, +}; + +typedef ZSTD_ErrorCode ERR_enum; + +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]; +}; + +enum sunxi_desc_bias_voltage { + BIAS_VOLTAGE_NONE = 0, + BIAS_VOLTAGE_GRP_CONFIG = 1, + BIAS_VOLTAGE_PIO_POW_MODE_SEL = 2, + BIAS_VOLTAGE_PIO_POW_MODE_CTL = 3, +}; + +struct sunxi_desc_pin; + +struct sunxi_pinctrl_desc { + const struct sunxi_desc_pin *pins; + int npins; + unsigned int pin_base; + unsigned int irq_banks; + const unsigned int *irq_bank_map; + bool irq_read_needs_mux; + bool disable_strict_mode; + enum sunxi_desc_bias_voltage io_bias_cfg_variant; +}; + +struct sunxi_desc_function; + +struct sunxi_desc_pin { + struct pinctrl_pin_desc pin; + unsigned long variant; + struct sunxi_desc_function *functions; +}; + +struct sunxi_desc_function { + unsigned long variant; + const char *name; + u8 muxval; + u8 irqbank; + u8 irqnum; +}; + +enum pci_fixup_pass { + pci_fixup_early = 0, + pci_fixup_header = 1, + pci_fixup_final = 2, + pci_fixup_enable = 3, + pci_fixup_resume = 4, + pci_fixup_suspend = 5, + pci_fixup_resume_early = 6, + pci_fixup_suspend_late = 7, +}; + +enum { + pci_channel_io_normal = 1, + pci_channel_io_frozen = 2, + pci_channel_io_perm_failure = 3, +}; + +struct pci_dynid { + struct list_head node; + struct pci_device_id id; +}; + +struct pcie_device { + int irq; + struct pci_dev *port; + u32 service; + void *priv_data; + struct device 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 drv_dev_and_id { + struct pci_driver *drv; + struct pci_dev *dev; + const struct pci_device_id *id; +}; + +enum acpi_reconfig_event { + ACPI_RECONFIG_DEVICE_ADD = 0, + ACPI_RECONFIG_DEVICE_REMOVE = 1, +}; + +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, +}; + +typedef u16 acpi_rs_length; + +struct aml_resource_small_header { + u8 descriptor_type; +}; + +struct aml_resource_large_header { + u8 descriptor_type; + u16 resource_length; +} __attribute__((packed)); + +struct aml_resource_irq { + u8 descriptor_type; + u16 irq_mask; + u8 flags; +} __attribute__((packed)); + +struct aml_resource_dma { + u8 descriptor_type; + u8 dma_channel_mask; + u8 flags; +}; + +struct aml_resource_start_dependent { + u8 descriptor_type; + u8 flags; +}; + +struct aml_resource_end_dependent { + u8 descriptor_type; +}; + +struct aml_resource_io { + u8 descriptor_type; + u8 flags; + u16 minimum; + u16 maximum; + u8 alignment; + u8 address_length; +}; + +struct aml_resource_fixed_io { + u8 descriptor_type; + u16 address; + u8 address_length; +} __attribute__((packed)); + +struct aml_resource_fixed_dma { + u8 descriptor_type; + u16 request_lines; + u16 channels; + u8 width; +} __attribute__((packed)); + +struct aml_resource_vendor_small { + u8 descriptor_type; +}; + +struct aml_resource_end_tag { + u8 descriptor_type; + u8 checksum; +}; + +struct aml_resource_memory24 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u16 minimum; + u16 maximum; + u16 alignment; + u16 address_length; +} __attribute__((packed)); + +struct aml_resource_generic_register { + u8 descriptor_type; + u16 resource_length; + u8 address_space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); + +struct aml_resource_vendor_large { + u8 descriptor_type; + u16 resource_length; +} __attribute__((packed)); + +struct aml_resource_memory32 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u32 minimum; + u32 maximum; + u32 alignment; + u32 address_length; +} __attribute__((packed)); + +struct aml_resource_fixed_memory32 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u32 address; + u32 address_length; +} __attribute__((packed)); + +struct aml_resource_address16 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u16 granularity; + u16 minimum; + u16 maximum; + u16 translation_offset; + u16 address_length; +} __attribute__((packed)); + +struct aml_resource_address32 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u32 granularity; + u32 minimum; + u32 maximum; + u32 translation_offset; + u32 address_length; +} __attribute__((packed)); + +struct aml_resource_address64 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; +} __attribute__((packed)); + +struct aml_resource_extended_address64 { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; + u8 revision_ID; + u8 reserved; + u64 granularity; + u64 minimum; + u64 maximum; + u64 translation_offset; + u64 address_length; + u64 type_specific; +} __attribute__((packed)); + +struct aml_resource_extended_irq { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u8 interrupt_count; + union { + u32 interrupt; + struct { + struct {} __Empty_interrupts; + u32 interrupts[0]; + }; + }; +} __attribute__((packed)); + +struct aml_resource_gpio { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 connection_type; + u16 flags; + u16 int_flags; + u8 pin_config; + u16 drive_strength; + u16 debounce_timeout; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_i2c_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; + u32 connection_speed; + u16 slave_address; +} __attribute__((packed)); + +struct aml_resource_spi_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; + u32 connection_speed; + u8 data_bit_length; + u8 clock_phase; + u8 clock_polarity; + u16 device_selection; +} __attribute__((packed)); + +struct aml_resource_uart_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; + u32 default_baud_rate; + u16 rx_fifo_size; + u16 tx_fifo_size; + u8 parity; + u8 lines_enabled; +} __attribute__((packed)); + +struct aml_resource_csi2_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; +} __attribute__((packed)); + +struct aml_resource_common_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; +} __attribute__((packed)); + +struct aml_resource_pin_function { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config; + u16 function_number; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_config { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config_type; + u32 pin_config_value; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 pin_table_offset; + u16 label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group_function { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 function_number; + u8 res_source_index; + u16 res_source_offset; + u16 res_source_label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group_config { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config_type; + u32 pin_config_value; + u8 res_source_index; + u16 res_source_offset; + u16 res_source_label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_clock_input { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 frequency_divisor; + u32 frequency_numerator; +} __attribute__((packed)); + +struct aml_resource_address { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; +} __attribute__((packed)); + +union aml_resource { + u8 descriptor_type; + struct aml_resource_small_header small_header; + struct aml_resource_large_header large_header; + struct aml_resource_irq irq; + struct aml_resource_dma dma; + struct aml_resource_start_dependent start_dpf; + struct aml_resource_end_dependent end_dpf; + struct aml_resource_io io; + struct aml_resource_fixed_io fixed_io; + struct aml_resource_fixed_dma fixed_dma; + struct aml_resource_vendor_small vendor_small; + struct aml_resource_end_tag end_tag; + struct aml_resource_memory24 memory24; + struct aml_resource_generic_register generic_reg; + struct aml_resource_vendor_large vendor_large; + struct aml_resource_memory32 memory32; + struct aml_resource_fixed_memory32 fixed_memory32; + struct aml_resource_address16 address16; + struct aml_resource_address32 address32; + struct aml_resource_address64 address64; + struct aml_resource_extended_address64 ext_address64; + struct aml_resource_extended_irq extended_irq; + struct aml_resource_gpio gpio; + struct aml_resource_i2c_serialbus i2c_serial_bus; + struct aml_resource_spi_serialbus spi_serial_bus; + struct aml_resource_uart_serialbus uart_serial_bus; + struct aml_resource_csi2_serialbus csi2_serial_bus; + struct aml_resource_common_serialbus common_serial_bus; + struct aml_resource_pin_function pin_function; + struct aml_resource_pin_config pin_config; + struct aml_resource_pin_group pin_group; + struct aml_resource_pin_group_function pin_group_function; + struct aml_resource_pin_group_config pin_group_config; + struct aml_resource_clock_input clock_input; + struct aml_resource_address address; + u32 dword_item; + u16 word_item; + u8 byte_item; +}; + +typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); + +struct acpi_vendor_uuid { + u8 subtype; + u8 data[16]; +}; + +struct resource_win { + struct resource res; + resource_size_t offset; +}; + +struct acpipnp_parse_option_s { + struct pnp_dev *dev; + unsigned int option_flags; +}; + +struct jh71x0_reset_adev { + void *base; + struct auxiliary_device adev; +}; + +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 bpf_ringbuf_hdr { - u32 len; - u32 pg_off; +struct irq_info { + struct hlist_node node; + int irq; + spinlock_t lock; + struct list_head *head; }; -enum { - PAGE_REPORTING_IDLE = 0, - PAGE_REPORTING_REQUESTED = 1, - PAGE_REPORTING_ACTIVE = 2, +struct plat_serial8250_port { + unsigned long iobase; + void *membase; + resource_size_t mapbase; + resource_size_t mapsize; + unsigned int uartclk; + unsigned int irq; + unsigned long irqflags; + void *private_data; + unsigned char regshift; + unsigned char iotype; + unsigned char hub6; + unsigned char has_sysrq; + unsigned int type; + upf_t flags; + u16 bugs; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); }; -enum zone_watermarks { - WMARK_MIN = 0, - WMARK_LOW = 1, - WMARK_HIGH = 2, - WMARK_PROMO = 3, - NR_WMARK = 4, +struct dev_pin_info { + struct pinctrl *p; + struct pinctrl_state *default_state; + struct pinctrl_state *init_state; + struct pinctrl_state *sleep_state; + struct pinctrl_state *idle_state; }; -enum migratetype { - MIGRATE_UNMOVABLE = 0, - MIGRATE_MOVABLE = 1, - MIGRATE_RECLAIMABLE = 2, - MIGRATE_PCPTYPES = 3, - MIGRATE_HIGHATOMIC = 3, - MIGRATE_TYPES = 4, +struct device_attach_data { + struct device *dev; + bool check_async; + bool want_async; + bool have_async; }; -enum umount_tree_flags { - UMOUNT_SYNC = 1, - UMOUNT_PROPAGATE = 2, - UMOUNT_CONNECTED = 4, +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, }; -enum mnt_tree_flags_t { - MNT_TREE_MOVE = 1, - MNT_TREE_BENEATH = 2, +struct nd_region_data { + int ns_count; + int ns_active; + unsigned int hints_shift; + void *flush_wpq[0]; }; -struct mount_attr { - __u64 attr_set; - __u64 attr_clr; - __u64 propagation; - __u64 userns_fd; +struct pr_keys { + u32 generation; + u32 num_keys; + u64 keys[0]; }; -struct mount_kattr { - unsigned int attr_set; - unsigned int attr_clr; - unsigned int propagation; - unsigned int lookup_flags; - bool recurse; - struct user_namespace *mnt_userns; - struct mnt_idmap *mnt_idmap; +struct pr_held_reservation { + u64 key; + u32 generation; + enum pr_type type; }; -struct mnt_idmap { - struct user_namespace *owner; - refcount_t count; +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, }; -struct proc_mounts { - struct mnt_namespace *ns; - struct path root; - int (*show)(struct seq_file *, struct vfsmount *); - struct mount cursor; +enum { + SD_DEF_XFER_BLOCKS = 65535, + SD_MAX_XFER_BLOCKS = 4294967295, + SD_MAX_WS10_BLOCKS = 65535, + SD_MAX_WS16_BLOCKS = 8388607, }; -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, -} __attribute__((mode(byte))); - -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); +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, +}; -typedef void (*btf_trace_netfs_sreq_ref)(void *, unsigned int, unsigned int, int, enum netfs_sreq_ref_trace); +enum t10_dif_type { + T10_PI_TYPE0_PROTECTION = 0, + T10_PI_TYPE1_PROTECTION = 1, + T10_PI_TYPE2_PROTECTION = 2, + T10_PI_TYPE3_PROTECTION = 3, +}; -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]; +enum string_size_units { + STRING_UNITS_10 = 0, + STRING_UNITS_2 = 1, }; -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]; +enum { + SD_ZERO_WRITE = 0, + SD_ZERO_WS = 1, + SD_ZERO_WS16_UNMAP = 2, + SD_ZERO_WS10_UNMAP = 3, }; -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]; +enum { + BLK_MQ_REQ_NOWAIT = 1, + BLK_MQ_REQ_RESERVED = 2, + BLK_MQ_REQ_PM = 4, }; -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]; +enum bip_flags { + BIP_BLOCK_INTEGRITY = 1, + BIP_MAPPED_INTEGRITY = 2, + BIP_CTRL_NOCHECK = 4, + BIP_DISK_NOCHECK = 8, + BIP_IP_CHECKSUM = 16, }; -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]; +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, }; -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]; +enum { + SD_EXT_CDB_SIZE = 32, + SD_MEMPOOL_SIZE = 2, }; -struct trace_event_data_offsets_netfs_read {}; +struct opal_dev; -struct trace_event_data_offsets_netfs_rreq {}; +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; + bool suspended; + unsigned int ATO: 1; + unsigned int cache_override: 1; + unsigned int WCE: 1; + unsigned int RCD: 1; + unsigned int DPOFUA: 1; + unsigned int first_scan: 1; + unsigned int lbpme: 1; + unsigned int lbprz: 1; + unsigned int lbpu: 1; + unsigned int lbpws: 1; + unsigned int lbpws10: 1; + unsigned int lbpvpd: 1; + unsigned int ws10: 1; + unsigned int ws16: 1; + unsigned int rc_basis: 2; + unsigned int zoned: 2; + unsigned int urswrz: 1; + unsigned int security: 1; + unsigned int ignore_medium_access_errors: 1; +}; -struct trace_event_data_offsets_netfs_sreq {}; +struct map_info; -struct trace_event_data_offsets_netfs_failure {}; +struct cfi_private; -struct trace_event_data_offsets_netfs_rreq_ref {}; +struct chip_probe { + char *name; + int (*probe_chip)(struct map_info *, __u32, unsigned long *, struct cfi_private *); +}; -struct trace_event_data_offsets_netfs_sreq_ref {}; +struct mtd_chip_driver; -struct nfs4_secinfo4 { - u32 flavor; - struct rpcsec_gss_info flavor_info; +struct map_info { + const char *name; + unsigned long size; + resource_size_t phys; + void *virt; + void *cached; + int swap; + int bankwidth; + void (*inval_cache)(struct map_info *, unsigned long, ssize_t); + void (*set_vpp)(struct map_info *, int); + unsigned long pfow_base; + unsigned long map_priv_1; + unsigned long map_priv_2; + struct device_node *device_node; + void *fldrv_priv; + struct mtd_chip_driver *fldrv; +}; + +struct mtd_chip_driver { + struct mtd_info * (*probe)(struct map_info *); + void (*destroy)(struct mtd_info *); + struct module *module; + char *name; + struct list_head list; }; -struct nfs4_secinfo_flavors { - unsigned int num_flavors; - struct nfs4_secinfo4 flavors[0]; -}; +typedef union { + unsigned long x[1]; +} map_word; -enum { - Opt_debug = 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_noxattr = 9, - Opt_directio = 10, - Opt_ignoreqv = 11, - Opt_access = 12, - Opt_posixacl = 13, - Opt_locktimeout = 14, - Opt_err___4 = 15, +typedef enum { + FL_READY = 0, + FL_STATUS = 1, + FL_CFI_QUERY = 2, + FL_JEDEC_QUERY = 3, + FL_ERASING = 4, + FL_ERASE_SUSPENDING = 5, + FL_ERASE_SUSPENDED = 6, + FL_WRITING = 7, + FL_WRITING_TO_BUFFER = 8, + FL_OTP_WRITE = 9, + FL_WRITE_SUSPENDING = 10, + FL_WRITE_SUSPENDED = 11, + FL_PM_SUSPENDED = 12, + FL_SYNCING = 13, + FL_UNLOADING = 14, + FL_LOCKING = 15, + FL_UNLOCKING = 16, + FL_POINT = 17, + FL_XIP_WHILE_ERASING = 18, + FL_XIP_WHILE_WRITING = 19, + FL_SHUTDOWN = 20, + FL_READING = 21, + FL_CACHEDPRG = 22, + FL_RESETTING = 23, + FL_OTPING = 24, + FL_PREPARING_ERASE = 25, + FL_VERIFYING_ERASE = 26, + FL_UNKNOWN = 27, +} flstate_t; + +struct flchip { + unsigned long start; + int ref_point_counter; + flstate_t state; + flstate_t oldstate; + unsigned int write_suspended: 1; + unsigned int erase_suspended: 1; + unsigned long in_progress_block_addr; + unsigned long in_progress_block_mask; + struct mutex mutex; + wait_queue_head_t wq; + int word_write_time; + int buffer_write_time; + int erase_time; + int word_write_time_max; + int buffer_write_time_max; + int erase_time_max; + void *priv; }; -enum p9_cache_shortcuts { - CACHE_SC_NONE = 0, - CACHE_SC_READAHEAD = 1, - CACHE_SC_MMAP = 5, - CACHE_SC_LOOSE = 15, - CACHE_SC_FSCACHE = 143, -}; +struct cfi_ident; -struct policy_file { - char *data; - size_t len; -}; +struct cfi_private { + uint16_t cmdset; + void *cmdset_priv; + int interleave; + int device_type; + int cfi_mode; + int addr_unlock1; + int addr_unlock2; + struct mtd_info * (*cmdset_setup)(struct map_info *); + struct cfi_ident *cfiq; + int mfr; + int id; + int numchips; + map_word sector_erase_cmd; + unsigned long chipshift; + const char *im_name; + unsigned long quirks; + struct flchip chips[0]; +}; + +struct cfi_ident { + uint8_t qry[3]; + uint16_t P_ID; + uint16_t P_ADR; + uint16_t A_ID; + uint16_t A_ADR; + uint8_t VccMin; + uint8_t VccMax; + uint8_t VppMin; + uint8_t VppMax; + uint8_t WordWriteTimeoutTyp; + uint8_t BufWriteTimeoutTyp; + uint8_t BlockEraseTimeoutTyp; + uint8_t ChipEraseTimeoutTyp; + uint8_t WordWriteTimeoutMax; + uint8_t BufWriteTimeoutMax; + uint8_t BlockEraseTimeoutMax; + uint8_t ChipEraseTimeoutMax; + uint8_t DevSize; + uint16_t InterfaceDesc; + uint16_t MaxBufWriteSize; + uint8_t NumEraseRegions; + uint32_t EraseRegionInfo[0]; +} __attribute__((packed)); -struct aa_task_ctx { - struct aa_label *nnp; - struct aa_label *onexec; - struct aa_label *previous; - u64 token; +struct cfi_early_fixup { + uint16_t mfr; + uint16_t id; + void (*fixup)(struct cfi_private *); }; -struct crypto_wait { - struct completion completion; - int err; -}; +typedef unsigned long u_long; -struct crypto_akcipher_sync_data { - struct crypto_akcipher *tfm; - const void *src; - void *dst; - unsigned int slen; - unsigned int dlen; - struct akcipher_request *req; - struct crypto_wait cwait; - struct scatterlist sg; - u8 *buf; +struct spansion_nor_params { + u8 clsr; }; -struct crypto_sig { - struct crypto_tfm base; +struct netdev_lag_lower_state_info { + u8 link_up: 1; + u8 tx_enabled: 1; }; -struct io_buffer { - struct list_head list; - __u64 addr; - __u32 len; - __u16 bid; - __u16 bgid; +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 io_uring_buf_ring; +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; +}; -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; - __u8 is_mapped; - __u8 is_mmap; +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 io_uring_buf { - __u64 addr; - __u32 len; - __u16 bid; - __u16 resv; +enum synaptics_pkt_type { + SYN_NEWABS = 0, + SYN_NEWABS_STRICT = 1, + SYN_NEWABS_RELAXED = 2, + SYN_OLDABS = 3, }; -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 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 io_poll { - struct file *file; - struct wait_queue_head *head; - __poll_t events; - int retries; - struct wait_queue_entry wait; +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 async_poll { - union { - struct io_poll poll; - struct io_cache_entry cache; - }; - struct io_poll *double_poll; +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_io_uring_create)(void *, int, void *, u32, u32, u32); +struct cpufreq_policy_data; -typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long); +struct freq_attr; -typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int); +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_policy_data { + struct cpufreq_cpuinfo cpuinfo; + struct cpufreq_frequency_table *freq_table; + unsigned int cpu; + unsigned int min; + unsigned int max; +}; -typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int); +struct freq_attr { + struct attribute attr; + ssize_t (*show)(struct cpufreq_policy *, char *); + ssize_t (*store)(struct cpufreq_policy *, const char *, size_t); +}; -typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *); +struct private_data { + struct list_head node; + cpumask_var_t cpus; + struct device *cpu_dev; + struct cpufreq_frequency_table *freq_table; + bool have_static_opps; + int opp_token; +}; -typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *); +struct dev_pm_opp_config { + const char * const *clk_names; + config_clks_t config_clks; + const char *prop_name; + config_regulators_t config_regulators; + const unsigned int *supported_hw; + unsigned int supported_hw_count; + const char * const *regulator_names; + const char * const *genpd_names; + struct device ***virt_devs; +}; -typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); +struct cpufreq_dt_platform_data { + bool have_governor_per_policy; + unsigned int (*get_intermediate)(struct cpufreq_policy *, unsigned int); + int (*target_intermediate)(struct cpufreq_policy *, unsigned int); + int (*suspend)(struct cpufreq_policy *); + int (*resume)(struct cpufreq_policy *); +}; -typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *); +struct mmc_driver { + struct device_driver drv; + int (*probe)(struct mmc_card *); + void (*remove)(struct mmc_card *); + void (*shutdown)(struct mmc_card *); +}; -typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64); +struct mmc_fixup { + const char *name; + u64 rev_start; + u64 rev_end; + unsigned int manfid; + unsigned short oemid; + unsigned short year; + unsigned char month; + u16 cis_vendor; + u16 cis_device; + unsigned int ext_csd_rev; + const char *of_compatible; + void (*vendor_fixup)(struct mmc_card *, int); + int data; +}; -typedef void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *); +enum mmc_drv_op { + MMC_DRV_OP_IOCTL = 0, + MMC_DRV_OP_IOCTL_RPMB = 1, + MMC_DRV_OP_BOOT_WP = 2, + MMC_DRV_OP_GET_CARD_STATUS = 3, + MMC_DRV_OP_GET_EXT_CSD = 4, +}; -typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int); +enum mmc_issued { + MMC_REQ_STARTED = 0, + MMC_REQ_BUSY = 1, + MMC_REQ_FAILED_TO_START = 2, + MMC_REQ_FINISHED = 3, +}; -typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int); +enum mmc_issue_type { + MMC_ISSUE_SYNC = 0, + MMC_ISSUE_DCMD = 1, + MMC_ISSUE_ASYNC = 2, + MMC_ISSUE_MAX = 3, +}; -typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int); +struct mmc_blk_data; -typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, unsigned long long, s32, u32, void *); +struct mmc_queue { + struct mmc_card *card; + struct mmc_ctx ctx; + struct blk_mq_tag_set tag_set; + struct mmc_blk_data *blkdata; + struct request_queue *queue; + spinlock_t lock; + int in_flight[3]; + unsigned int cqe_busy; + bool busy; + bool recovery_needed; + bool in_recovery; + bool rw_wait; + bool waiting; + struct work_struct recovery_work; + wait_queue_head_t wait; + struct request *recovery_req; + struct request *complete_req; + struct mutex complete_lock; + struct work_struct complete_work; +}; -typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int, unsigned int); +struct mmc_blk_data { + struct device *parent; + struct gendisk *disk; + struct mmc_queue queue; + struct list_head part; + struct list_head rpmbs; + unsigned int flags; + struct kref kref; + unsigned int read_only; + unsigned int part_type; + unsigned int reset_done; + unsigned int part_curr; + int area_type; + struct dentry *status_dentry; + struct dentry *ext_csd_dentry; +}; -typedef void (*btf_trace_io_uring_short_write)(void *, void *, u64, u64, u64); +struct mmc_blk_request { + struct mmc_request mrq; + struct mmc_command sbc; + struct mmc_command cmd; + struct mmc_command stop; + struct mmc_data data; +}; -typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int); +struct mmc_queue_req { + struct mmc_blk_request brq; + struct scatterlist *sg; + enum mmc_drv_op drv_op; + int drv_op_result; + void *drv_op_data; + unsigned int ioc_count; + int retries; +}; -enum { - IO_CHECK_CQ_OVERFLOW_BIT = 0, - IO_CHECK_CQ_DROPPED_BIT = 1, +struct mmc_ioc_cmd { + int write_flag; + int is_acmd; + __u32 opcode; + __u32 arg; + __u32 response[4]; + unsigned int flags; + unsigned int blksz; + unsigned int blocks; + unsigned int postsleep_min_us; + unsigned int postsleep_max_us; + unsigned int data_timeout_ns; + unsigned int cmd_timeout_ms; + __u32 __pad; + __u64 data_ptr; }; -enum { - IO_APOLL_OK = 0, - IO_APOLL_ABORTED = 1, - IO_APOLL_READY = 2, +struct mmc_ioc_multi_cmd { + __u64 num_of_cmds; + struct mmc_ioc_cmd cmds[0]; }; -enum { - IO_EVENTFD_OP_SIGNAL_BIT = 0, - IO_EVENTFD_OP_FREE_BIT = 1, +struct mmc_rpmb_data { + struct device dev; + struct cdev chrdev; + int id; + unsigned int part_index; + struct mmc_blk_data *md; + struct list_head node; }; -enum { - IORING_CQE_BUFFER_SHIFT = 16, +struct mmc_blk_busy_data { + struct mmc_card *card; + u32 status; }; -enum { - IOSQE_FIXED_FILE_BIT = 0, - IOSQE_IO_DRAIN_BIT = 1, - IOSQE_IO_LINK_BIT = 2, - IOSQE_IO_HARDLINK_BIT = 3, - IOSQE_ASYNC_BIT = 4, - IOSQE_BUFFER_SELECT_BIT = 5, - IOSQE_CQE_SKIP_SUCCESS_BIT = 6, +struct mmc_blk_ioc_data { + struct mmc_ioc_cmd ic; + unsigned char *buf; + u64 buf_bytes; + struct mmc_rpmb_data *rpmb; }; -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 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 { - IORING_RSRC_FILE = 0, - IORING_RSRC_BUFFER = 1, +struct tpm_digest { + u16 alg_id; + u8 digest[64]; }; -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 tcg_pcr_event2_head { + u32 pcr_idx; + u32 event_type; + u32 count; + struct tpm_digest digests[0]; }; -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 tcg_efi_specid_event_algs { + u16 alg_id; + u16 digest_size; }; -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 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 trace_event_raw_io_uring_file_get { - struct trace_entry ent; - void *ctx; - void *req; - u64 user_data; - int fd; - char __data[0]; +struct tcg_event_field { + u32 event_size; + u8 event[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 tcg_pcr_event { + u32 pcr_idx; + u32 event_type; + u8 digest[20]; + u32 event_size; + u8 event[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 linux_efi_tpm_eventlog { + u32 size; + u32 final_events_preboot_size; + u8 version; + u8 log[0]; }; -struct trace_event_raw_io_uring_link { - struct trace_entry ent; - void *ctx; - void *req; - void *target_req; - char __data[0]; +struct efi_tcg2_final_events_table { + u64 version; + u64 nr_events; + u8 events[0]; }; -struct trace_event_raw_io_uring_cqring_wait { - struct trace_entry ent; - void *ctx; - int min_events; - char __data[0]; +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 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]; +enum efi_rts_ids { + EFI_NONE = 0, + EFI_GET_TIME = 1, + EFI_SET_TIME = 2, + EFI_GET_WAKEUP_TIME = 3, + EFI_SET_WAKEUP_TIME = 4, + EFI_GET_VARIABLE = 5, + EFI_GET_NEXT_VARIABLE = 6, + EFI_SET_VARIABLE = 7, + EFI_QUERY_VARIABLE_INFO = 8, + EFI_GET_NEXT_HIGH_MONO_COUNT = 9, + EFI_RESET_SYSTEM = 10, + EFI_UPDATE_CAPSULE = 11, + EFI_QUERY_CAPSULE_CAPS = 12, + EFI_ACPI_PRM_HANDLER = 13, }; -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]; +union efi_rts_args; + +struct efi_runtime_work { + union efi_rts_args *args; + efi_status_t status; + struct work_struct work; + enum efi_rts_ids efi_rts_id; + struct completion efi_rts_comp; + const void *caller; }; -struct trace_event_raw_io_uring_submit_req { - struct trace_entry ent; - void *ctx; - void *req; - unsigned long long user_data; - u8 opcode; - u32 flags; - bool sq_thread; - u32 __data_loc_op_str; - char __data[0]; +union efi_rts_args { + struct { + efi_time_t *time; + efi_time_cap_t *capabilities; + } GET_TIME; + struct { + efi_time_t *time; + } SET_TIME; + struct { + efi_bool_t *enabled; + efi_bool_t *pending; + efi_time_t *time; + } GET_WAKEUP_TIME; + struct { + efi_bool_t enable; + efi_time_t *time; + } SET_WAKEUP_TIME; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 *attr; + unsigned long *data_size; + void *data; + } GET_VARIABLE; + struct { + unsigned long *name_size; + efi_char16_t *name; + efi_guid_t *vendor; + } GET_NEXT_VARIABLE; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 attr; + unsigned long data_size; + void *data; + } SET_VARIABLE; + struct { + u32 attr; + u64 *storage_space; + u64 *remaining_space; + u64 *max_variable_size; + } QUERY_VARIABLE_INFO; + struct { + u32 *high_count; + } GET_NEXT_HIGH_MONO_COUNT; + struct { + efi_capsule_header_t **capsules; + unsigned long count; + unsigned long sg_list; + } UPDATE_CAPSULE; + struct { + efi_capsule_header_t **capsules; + unsigned long count; + u64 *max_size; + int *reset_type; + } QUERY_CAPSULE_CAPS; + struct { + efi_status_t (*acpi_prm_handler)(u64, void *); + u64 param_buffer_addr; + void *context; + } ACPI_PRM_HANDLER; }; -struct 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 memblock_type { + unsigned long cnt; + unsigned long max; + phys_addr_t total_size; + struct memblock_region *regions; + char *name; }; -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]; +enum { + SND_CTL_SUBDEV_PCM = 0, + SND_CTL_SUBDEV_RAWMIDI = 1, + SND_CTL_SUBDEV_ITEMS = 2, }; -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]; +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 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]; +typedef int (*snd_kctl_ioctl_func_t)(struct snd_card *, struct snd_ctl_file *, unsigned int, unsigned long); + +enum { + NETDEV_A_DEV_IFINDEX = 1, + NETDEV_A_DEV_PAD = 2, + NETDEV_A_DEV_XDP_FEATURES = 3, + NETDEV_A_DEV_XDP_ZC_MAX_SEGS = 4, + NETDEV_A_DEV_XDP_RX_METADATA_FEATURES = 5, + __NETDEV_A_DEV_MAX = 6, + NETDEV_A_DEV_MAX = 5, }; -struct trace_event_raw_io_uring_task_work_run { - struct trace_entry ent; - void *tctx; - unsigned int count; - unsigned int loops; - char __data[0]; +enum netdev_xdp_rx_metadata { + NETDEV_XDP_RX_METADATA_TIMESTAMP = 1, + NETDEV_XDP_RX_METADATA_HASH = 2, + NETDEV_XDP_RX_METADATA_MASK = 3, }; -struct trace_event_raw_io_uring_short_write { - struct trace_entry ent; - void *ctx; - u64 fpos; - u64 wanted; - u64 got; - char __data[0]; +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, }; -struct trace_event_raw_io_uring_local_work_run { - struct trace_entry ent; - void *ctx; - int count; - unsigned int loops; - char __data[0]; +enum { + NETDEV_NLGRP_MGMT = 0, }; -struct io_defer_entry { - struct list_head list; - struct io_kiocb *req; - u32 seq; +struct strset_info { + bool per_dev; + bool free_strings; + unsigned int count; + const char (*strings)[32]; }; -struct io_tctx_node { - struct list_head ctx_node; - struct task_struct *task; - struct io_ring_ctx *ctx; +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, }; -struct io_overflow_cqe { - struct list_head list; - struct io_uring_cqe cqe; +enum { + ETHTOOL_A_STRINGSETS_UNSPEC = 0, + ETHTOOL_A_STRINGSETS_STRINGSET = 1, + __ETHTOOL_A_STRINGSETS_CNT = 2, + ETHTOOL_A_STRINGSETS_MAX = 1, }; -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; +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, }; -struct io_tctx_exit { - struct callback_head task_work; - struct completion completion; - struct io_ring_ctx *ctx; +enum { + ETHTOOL_A_STRINGS_UNSPEC = 0, + ETHTOOL_A_STRINGS_STRING = 1, + __ETHTOOL_A_STRINGS_CNT = 2, + ETHTOOL_A_STRINGS_MAX = 1, }; -struct trace_event_data_offsets_io_uring_queue_async_work { - u32 op_str; +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 trace_event_data_offsets_io_uring_defer { - u32 op_str; +struct strset_req_info { + struct ethnl_req_info base; + u32 req_ids; + bool counts_only; }; -struct trace_event_data_offsets_io_uring_fail_link { - u32 op_str; +struct strset_reply_data { + struct ethnl_reply_data base; + struct strset_info sets[21]; }; -struct trace_event_data_offsets_io_uring_submit_req { - u32 op_str; +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 trace_event_data_offsets_io_uring_poll_arm { - u32 op_str; +struct features_reply_data { + struct ethnl_reply_data base; + u32 hw[2]; + u32 wanted[2]; + u32 active[2]; + u32 nochange[2]; + u32 all[2]; }; -struct trace_event_data_offsets_io_uring_task_add { - u32 op_str; +struct icmp6_filter { + __u32 data[8]; }; -struct trace_event_data_offsets_io_uring_req_failed { - u32 op_str; +struct raw6_sock { + struct inet_sock inet; + __u32 checksum; + __u32 offset; + struct icmp6_filter filter; + __u32 ip6mr_table; + struct ipv6_pinfo inet6; }; -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 *); +struct raw6_frag_vec { + struct msghdr *msg; + int hlen; + char c[4]; }; -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 raw_iter_state { + struct seq_net_private p; + int bucket; }; -struct io_uring_getevents_arg { - __u64 sigmask; - __u32 sigmask_sz; - __u32 pad; - __u64 ts; -}; +typedef void (*btf_trace_rpc_xdr_sendto)(void *, const struct rpc_task *, const struct xdr_buf *); -struct xa_limit { - u32 max; - u32 min; -}; +typedef void (*btf_trace_rpc_xdr_recvfrom)(void *, const struct rpc_task *, const struct xdr_buf *); -struct creds; +typedef void (*btf_trace_rpc_xdr_reply_pages)(void *, const struct rpc_task *, const struct xdr_buf *); -struct trace_event_data_offsets_io_uring_create {}; +typedef void (*btf_trace_rpc_clnt_free)(void *, const struct rpc_clnt *); -struct trace_event_data_offsets_io_uring_register {}; +typedef void (*btf_trace_rpc_clnt_killall)(void *, const struct rpc_clnt *); -struct trace_event_data_offsets_io_uring_file_get {}; +typedef void (*btf_trace_rpc_clnt_shutdown)(void *, const struct rpc_clnt *); -struct trace_event_data_offsets_io_uring_link {}; +typedef void (*btf_trace_rpc_clnt_release)(void *, const struct rpc_clnt *); -struct trace_event_data_offsets_io_uring_cqring_wait {}; +typedef void (*btf_trace_rpc_clnt_replace_xprt)(void *, const struct rpc_clnt *); -struct trace_event_data_offsets_io_uring_complete {}; +typedef void (*btf_trace_rpc_clnt_replace_xprt_err)(void *, const struct rpc_clnt *); -struct trace_event_data_offsets_io_uring_cqe_overflow {}; +typedef void (*btf_trace_rpc_clnt_new)(void *, const struct rpc_clnt *, const struct rpc_xprt *, const struct rpc_create_args *); -struct trace_event_data_offsets_io_uring_task_work_run {}; +typedef void (*btf_trace_rpc_clnt_new_err)(void *, const char *, const char *, int); -struct trace_event_data_offsets_io_uring_short_write {}; +typedef void (*btf_trace_rpc_clnt_clone_err)(void *, const struct rpc_clnt *, int); -struct trace_event_data_offsets_io_uring_local_work_run {}; +typedef void (*btf_trace_rpc_call_status)(void *, const struct rpc_task *); -struct io_task_cancel { - struct task_struct *task; - bool all; -}; +typedef void (*btf_trace_rpc_connect_status)(void *, const struct rpc_task *); -struct io_uring_probe_op { - __u8 op; - __u8 resv; - __u16 flags; - __u32 resv2; -}; +typedef void (*btf_trace_rpc_timeout_status)(void *, const struct rpc_task *); -struct io_uring_probe { - __u8 last_op; - __u8 ops_len; - __u16 resv; - __u32 resv2[3]; - struct io_uring_probe_op ops[0]; -}; +typedef void (*btf_trace_rpc_retry_refresh_status)(void *, const struct rpc_task *); -struct io_uring_restriction { - __u16 opcode; - union { - __u8 register_op; - __u8 sqe_op; - __u8 sqe_flags; - }; - __u8 resv; - __u32 resv2[3]; -}; +typedef void (*btf_trace_rpc_refresh_status)(void *, const struct rpc_task *); -struct pci_slot_attribute { - struct attribute attr; - ssize_t (*show)(struct pci_slot *, char *); - ssize_t (*store)(struct pci_slot *, const char *, size_t); -}; +typedef void (*btf_trace_rpc_request)(void *, const struct rpc_task *); -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 (*btf_trace_rpc_task_begin)(void *, const struct rpc_task *, const void *); -typedef void (*acpi_osd_exec_callback)(void *); +typedef void (*btf_trace_rpc_task_run_action)(void *, const struct rpc_task *, const void *); -struct acpi_signal_fatal_info { - u32 type; - u32 code; - u32 argument; -}; +typedef void (*btf_trace_rpc_task_sync_sleep)(void *, const struct rpc_task *, const void *); -struct acpi_vendor_walk_info { - struct acpi_vendor_uuid *uuid; - struct acpi_buffer *buffer; - acpi_status status; -}; +typedef void (*btf_trace_rpc_task_sync_wake)(void *, const struct rpc_task *, const void *); -struct clk_multiplier { - struct clk_hw hw; - void *reg; - u8 shift; - u8 width; - u8 flags; - spinlock_t *lock; -}; +typedef void (*btf_trace_rpc_task_complete)(void *, const struct rpc_task *, const void *); -struct clk_divider { - struct clk_hw hw; - void *reg; - u8 shift; - u8 width; - u8 flags; - const struct clk_div_table *table; - spinlock_t *lock; -}; +typedef void (*btf_trace_rpc_task_timeout)(void *, const struct rpc_task *, const void *); -struct mpfs_ccc_out_hw_clock { - struct clk_divider divider; - struct clk_init_data init; - unsigned int id; - u32 reg_offset; -}; +typedef void (*btf_trace_rpc_task_signalled)(void *, const struct rpc_task *, const void *); -struct mpfs_ccc_pll_hw_clock { - void *base; - const char *name; - const struct clk_parent_data *parents; - unsigned int id; - u32 reg_offset; - u32 shift; - u32 width; - u32 flags; - struct clk_hw hw; - struct clk_init_data init; -}; +typedef void (*btf_trace_rpc_task_end)(void *, const struct rpc_task *, const void *); -struct clk_hw_onecell_data { - unsigned int num; - struct clk_hw *hws[0]; -}; +typedef void (*btf_trace_rpc_task_call_done)(void *, const struct rpc_task *, const void *); -struct mpfs_ccc_data { - void **pll_base; - struct device *dev; - struct clk_hw_onecell_data hw_data; -}; +typedef void (*btf_trace_rpc_task_sleep)(void *, const struct rpc_task *, const struct rpc_wait_queue *); -struct fixed_voltage_config { - const char *supply_name; - const char *input_supply; - int microvolts; - unsigned int startup_delay; - unsigned int off_on_delay; - unsigned int enabled_at_boot: 1; - struct regulator_init_data *init_data; -}; +typedef void (*btf_trace_rpc_task_wakeup)(void *, const struct rpc_task *, const struct rpc_wait_queue *); -struct fixed_regulator_data { - struct fixed_voltage_config cfg; - struct regulator_init_data init_data; - struct platform_device pdev; -}; +typedef void (*btf_trace_rpc_bad_callhdr)(void *, const struct rpc_task *); -struct vt_spawn_console { - spinlock_t lock; - struct pid *pid; - int sig; -}; +typedef void (*btf_trace_rpc_bad_verifier)(void *, const struct rpc_task *); -struct kbd_struct { - unsigned char lockstate; - unsigned char slockstate; - unsigned char ledmode: 1; - unsigned char ledflagstate: 4; - char: 3; - unsigned char default_ledflagstate: 4; - unsigned char kbdmode: 3; - int: 1; - unsigned char modeflags: 5; -}; +typedef void (*btf_trace_rpc__prog_unavail)(void *, const struct rpc_task *); -typedef void k_handler_fn(struct vc_data *, unsigned char, char); +typedef void (*btf_trace_rpc__prog_mismatch)(void *, const struct rpc_task *); -typedef void fn_handler_fn(struct vc_data *); +typedef void (*btf_trace_rpc__proc_unavail)(void *, const struct rpc_task *); -struct getset_keycode_data { - struct input_keymap_entry ke; - int error; -}; +typedef void (*btf_trace_rpc__garbage_args)(void *, const struct rpc_task *); -struct keyboard_notifier_param { - struct vc_data *vc; - int down; - int shift; - int ledstate; - unsigned int value; -}; +typedef void (*btf_trace_rpc__unparsable)(void *, const struct rpc_task *); -struct kbd_repeat { - int delay; - int period; -}; +typedef void (*btf_trace_rpc__mismatch)(void *, const struct rpc_task *); -struct kbdiacr { - unsigned char diacr; - unsigned char base; - unsigned char result; -}; +typedef void (*btf_trace_rpc__stale_creds)(void *, const struct rpc_task *); -struct kbdiacrs { - unsigned int kb_cnt; - struct kbdiacr kbdiacr[256]; -}; +typedef void (*btf_trace_rpc__bad_creds)(void *, const struct rpc_task *); -struct kbdiacruc { - unsigned int diacr; - unsigned int base; - unsigned int result; -}; +typedef void (*btf_trace_rpc__auth_tooweak)(void *, const struct rpc_task *); -struct kbdiacrsuc { - unsigned int kb_cnt; - struct kbdiacruc kbdiacruc[256]; -}; +typedef void (*btf_trace_rpcb_prog_unavail_err)(void *, const struct rpc_task *); -struct kbkeycode { - unsigned int scancode; - unsigned int keycode; -}; +typedef void (*btf_trace_rpcb_timeout_err)(void *, const struct rpc_task *); -struct kbentry { - unsigned char kb_table; - unsigned char kb_index; - unsigned short kb_value; -}; +typedef void (*btf_trace_rpcb_bind_version_err)(void *, const struct rpc_task *); -struct kbsentry { - unsigned char kb_func; - unsigned char kb_string[512]; -}; +typedef void (*btf_trace_rpcb_unreachable_err)(void *, const struct rpc_task *); -enum genpd_notication { - GENPD_NOTIFY_PRE_OFF = 0, - GENPD_NOTIFY_OFF = 1, - GENPD_NOTIFY_PRE_ON = 2, - GENPD_NOTIFY_ON = 3, -}; +typedef void (*btf_trace_rpcb_unrecognized_err)(void *, const struct rpc_task *); -struct gpd_link { - struct generic_pm_domain *parent; - struct list_head parent_node; - struct generic_pm_domain *child; - struct list_head child_node; - unsigned int performance_state; - unsigned int prev_performance_state; -}; +typedef void (*btf_trace_rpc_buf_alloc)(void *, const struct rpc_task *, int); -typedef struct generic_pm_domain * (*genpd_xlate_t)(struct of_phandle_args *, void *); +typedef void (*btf_trace_rpc_call_rpcerror)(void *, const struct rpc_task *, int, int); -struct of_genpd_provider { - struct list_head link; - struct device_node *node; - genpd_xlate_t xlate; - void *data; -}; +typedef void (*btf_trace_rpc_stats_latency)(void *, const struct rpc_task *, ktime_t, ktime_t, ktime_t); -struct gpd_timing_data; +typedef void (*btf_trace_rpc_xdr_overflow)(void *, const struct xdr_stream *, size_t); -struct generic_pm_domain_data { - struct pm_domain_data base; - struct gpd_timing_data *td; - struct notifier_block nb; - struct notifier_block *power_nb; - int cpu; - unsigned int performance_state; - unsigned int default_pstate; - unsigned int rpm_pstate; - void *data; -}; +typedef void (*btf_trace_rpc_xdr_alignment)(void *, const struct xdr_stream *, size_t, unsigned int); -struct gpd_timing_data { - s64 suspend_latency_ns; - s64 resume_latency_ns; - s64 effective_constraint_ns; - ktime_t next_wakeup; - bool constraint_changed; - bool cached_suspend_ok; -}; +typedef void (*btf_trace_rpc_socket_state_change)(void *, struct rpc_xprt *, struct socket *); -struct genpd_onecell_data { - struct generic_pm_domain **domains; - unsigned int num_domains; - genpd_xlate_t xlate; -}; +typedef void (*btf_trace_rpc_socket_connect)(void *, struct rpc_xprt *, struct socket *, int); -enum scsi_ml_status { - SCSIML_STAT_OK = 0, - SCSIML_STAT_RESV_CONFLICT = 1, - SCSIML_STAT_NOSPC = 2, - SCSIML_STAT_MED_ERROR = 3, - SCSIML_STAT_TGT_FAILURE = 4, - SCSIML_STAT_DL_TIMEOUT = 5, -}; +typedef void (*btf_trace_rpc_socket_error)(void *, struct rpc_xprt *, struct socket *, int); -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, -}; +typedef void (*btf_trace_rpc_socket_reset_connection)(void *, struct rpc_xprt *, struct socket *, int); -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; -}; +typedef void (*btf_trace_rpc_socket_close)(void *, struct rpc_xprt *, struct socket *); -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, +typedef void (*btf_trace_rpc_socket_shutdown)(void *, struct rpc_xprt *, struct socket *); + +struct sock_xprt; + +typedef void (*btf_trace_rpc_socket_nospace)(void *, const struct rpc_rqst *, const struct sock_xprt *); + +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 completion handshake_done; + struct __kernel_sockaddr_storage srcaddr; + unsigned short srcport; + int xprt_err; + struct rpc_clnt *clnt; + 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 fw_info { - u32 magic; - char version[32]; - __le32 fw_start; - __le32 fw_len; - u8 chksum; -} __attribute__((packed)); +typedef void (*btf_trace_xprt_create)(void *, const struct rpc_xprt *); -struct rtl8169_private; +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 (*rtl_fw_write_t)(struct rtl8169_private *, int, int); +typedef void (*btf_trace_xprt_reserve)(void *, const struct rpc_rqst *); -typedef int (*rtl_fw_read_t)(struct rtl8169_private *, int); +typedef void (*btf_trace_xs_data_ready)(void *, const struct rpc_xprt *); -struct rtl_fw_phy_action { - __le32 *code; - size_t size; -}; +typedef void (*btf_trace_xs_stream_read_data)(void *, struct rpc_xprt *, ssize_t, size_t); -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 (*btf_trace_xs_stream_read_request)(void *, struct sock_xprt *); -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, -}; +typedef void (*btf_trace_rpcb_getport)(void *, const struct rpc_clnt *, const struct rpc_task *, unsigned int); -enum xhci_overhead_type { - LS_OVERHEAD_TYPE = 0, - FS_OVERHEAD_TYPE = 1, - HS_OVERHEAD_TYPE = 2, -}; +typedef void (*btf_trace_rpcb_setport)(void *, const struct rpc_task *, int, unsigned short); -struct sunxi_wdt_reg { - u8 wdt_ctrl; - u8 wdt_cfg; - u8 wdt_mode; - u8 wdt_timeout_shift; - u8 wdt_reset_mask; - u8 wdt_reset_val; - u32 wdt_key_val; -}; +typedef void (*btf_trace_pmap_register)(void *, u32, u32, int, unsigned short); -struct sunxi_wdt_dev { - struct watchdog_device wdt_dev; - void *wdt_base; - const struct sunxi_wdt_reg *wdt_regs; -}; +typedef void (*btf_trace_rpcb_register)(void *, u32, u32, const char *, const char *); -enum mmc_issue_type { - MMC_ISSUE_SYNC = 0, - MMC_ISSUE_DCMD = 1, - MMC_ISSUE_ASYNC = 2, - MMC_ISSUE_MAX = 3, -}; +typedef void (*btf_trace_rpcb_unregister)(void *, u32, u32, const char *); -enum mmc_drv_op { - MMC_DRV_OP_IOCTL = 0, - MMC_DRV_OP_IOCTL_RPMB = 1, - MMC_DRV_OP_BOOT_WP = 2, - MMC_DRV_OP_GET_CARD_STATUS = 3, - MMC_DRV_OP_GET_EXT_CSD = 4, -}; +typedef void (*btf_trace_rpc_tls_unavailable)(void *, const struct rpc_clnt *, const struct rpc_xprt *); -enum mmc_issued { - MMC_REQ_STARTED = 0, - MMC_REQ_BUSY = 1, - MMC_REQ_FAILED_TO_START = 2, - MMC_REQ_FINISHED = 3, -}; +typedef void (*btf_trace_rpc_tls_not_started)(void *, const struct rpc_clnt *, const struct rpc_xprt *); -struct mmc_blk_request { - struct mmc_request mrq; - struct mmc_command sbc; - struct mmc_command cmd; - struct mmc_command stop; - struct mmc_data data; -}; +typedef void (*btf_trace_svc_xdr_recvfrom)(void *, const struct xdr_buf *); -struct mmc_queue_req { - struct mmc_blk_request brq; - struct scatterlist *sg; - enum mmc_drv_op drv_op; - int drv_op_result; - void *drv_op_data; - unsigned int ioc_count; - int retries; -}; +typedef void (*btf_trace_svc_xdr_sendto)(void *, __be32, const struct xdr_buf *); -struct mmc_blk_data; +typedef void (*btf_trace_svc_authenticate)(void *, const struct svc_rqst *, enum svc_auth_status); -struct mmc_queue { - struct mmc_card *card; - struct mmc_ctx ctx; - struct blk_mq_tag_set tag_set; - struct mmc_blk_data *blkdata; - struct request_queue *queue; - spinlock_t lock; - int in_flight[3]; - unsigned int cqe_busy; - bool busy; - bool recovery_needed; - bool in_recovery; - bool rw_wait; - bool waiting; - struct work_struct recovery_work; - wait_queue_head_t wait; - struct request *recovery_req; - struct request *complete_req; - struct mutex complete_lock; - struct work_struct complete_work; -}; +typedef void (*btf_trace_svc_process)(void *, const struct svc_rqst *, const char *); -struct of_bus___2 { - void (*count_cells)(const void *, int, int *, int *); - u64 (*map)(__be32 *, const __be32 *, int, int, int); - int (*translate)(__be32 *, u64, int); -}; +typedef void (*btf_trace_svc_defer)(void *, const struct svc_rqst *); -typedef int (*of_irq_init_cb_t)(struct device_node *, struct device_node *); +typedef void (*btf_trace_svc_drop)(void *, const struct svc_rqst *); -struct of_intc_desc { - struct list_head list; - of_irq_init_cb_t irq_init_cb; - struct device_node *dev; - struct device_node *interrupt_parent; -}; +typedef void (*btf_trace_svc_send)(void *, const struct svc_rqst *, int); -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, -}; +typedef void (*btf_trace_svc_replace_page_err)(void *, const struct svc_rqst *); -struct broadcast_sk { - struct sock *sk; - struct work_struct work; -}; +typedef void (*btf_trace_svc_stats_latency)(void *, const struct svc_rqst *); -struct sock_diag_req { - __u8 sdiag_family; - __u8 sdiag_protocol; -}; +typedef void (*btf_trace_svc_xprt_create_err)(void *, const char *, const char *, struct sockaddr *, size_t, const struct svc_xprt *); -enum net_xmit_qdisc_t { - __NET_XMIT_STOLEN = 65536, - __NET_XMIT_BYPASS = 131072, -}; +typedef void (*btf_trace_svc_xprt_enqueue)(void *, const struct svc_xprt *, unsigned long); -enum { - ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0, - ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1, - ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2, -}; +typedef void (*btf_trace_svc_xprt_dequeue)(void *, const struct svc_rqst *); -enum { - ETHTOOL_A_RINGS_UNSPEC = 0, - ETHTOOL_A_RINGS_HEADER = 1, - ETHTOOL_A_RINGS_RX_MAX = 2, - ETHTOOL_A_RINGS_RX_MINI_MAX = 3, - ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4, - ETHTOOL_A_RINGS_TX_MAX = 5, - ETHTOOL_A_RINGS_RX = 6, - ETHTOOL_A_RINGS_RX_MINI = 7, - ETHTOOL_A_RINGS_RX_JUMBO = 8, - ETHTOOL_A_RINGS_TX = 9, - ETHTOOL_A_RINGS_RX_BUF_LEN = 10, - ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11, - ETHTOOL_A_RINGS_CQE_SIZE = 12, - ETHTOOL_A_RINGS_TX_PUSH = 13, - ETHTOOL_A_RINGS_RX_PUSH = 14, - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15, - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16, - __ETHTOOL_A_RINGS_CNT = 17, - ETHTOOL_A_RINGS_MAX = 16, -}; +typedef void (*btf_trace_svc_xprt_no_write_space)(void *, const struct svc_xprt *); -enum ethtool_supported_ring_param { - ETHTOOL_RING_USE_RX_BUF_LEN = 1, - ETHTOOL_RING_USE_CQE_SIZE = 2, - ETHTOOL_RING_USE_TX_PUSH = 4, - ETHTOOL_RING_USE_RX_PUSH = 8, - ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16, -}; +typedef void (*btf_trace_svc_xprt_close)(void *, const struct svc_xprt *); -struct rings_reply_data { - struct ethnl_reply_data base; - struct ethtool_ringparam ringparam; - struct kernel_ethtool_ringparam kernel_ringparam; - u32 supported_ring_params; -}; +typedef void (*btf_trace_svc_xprt_detach)(void *, const struct svc_xprt *); -enum { - INET_FRAG_FIRST_IN = 1, - INET_FRAG_LAST_IN = 2, - INET_FRAG_COMPLETE = 4, - INET_FRAG_HASH_DEAD = 8, - INET_FRAG_DROP = 16, -}; +typedef void (*btf_trace_svc_xprt_free)(void *, const struct svc_xprt *); -struct ipfrag_skb_cb { - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - }; - struct sk_buff *next_frag; - int frag_run_len; -}; +typedef void (*btf_trace_svc_tls_start)(void *, const struct svc_xprt *); -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, -}; +typedef void (*btf_trace_svc_tls_upcall)(void *, const struct svc_xprt *); -struct fib_notifier_info { - int family; - struct netlink_ext_ack *extack; -}; +typedef void (*btf_trace_svc_tls_unavailable)(void *, const struct svc_xprt *); -enum xprt_xid_rb_cmp { - XID_RB_EQUAL = 0, - XID_RB_LEFT = 1, - XID_RB_RIGHT = 2, -}; +typedef void (*btf_trace_svc_tls_not_started)(void *, const struct svc_xprt *); -typedef s8 int8_t; +typedef void (*btf_trace_svc_tls_timed_out)(void *, const struct svc_xprt *); -typedef void (*btf_trace_9p_client_req)(void *, struct p9_client *, int8_t, int); +typedef void (*btf_trace_svc_xprt_accept)(void *, const struct svc_xprt *, const char *); -typedef void (*btf_trace_9p_client_res)(void *, struct p9_client *, int8_t, int, int); +typedef void (*btf_trace_svc_wake_up)(void *, int); -typedef void (*btf_trace_9p_protocol_dump)(void *, struct p9_client *, struct p9_fcall *); +typedef void (*btf_trace_svc_alloc_arg_err)(void *, unsigned int, unsigned int); -typedef void (*btf_trace_9p_fid_ref)(void *, struct p9_fid *, __u8); +typedef void (*btf_trace_svc_defer_drop)(void *, const struct svc_deferred_req *); -enum p9_proto_versions { - p9_proto_legacy = 0, - p9_proto_2000u = 1, - p9_proto_2000L = 2, -}; +typedef void (*btf_trace_svc_defer_queue)(void *, const struct svc_deferred_req *); -enum p9_fid_reftype { - P9_FID_REF_CREATE = 0, - P9_FID_REF_GET = 1, - P9_FID_REF_PUT = 2, - P9_FID_REF_DESTROY = 3, -} __attribute__((mode(byte))); +typedef void (*btf_trace_svc_defer_recv)(void *, const struct svc_deferred_req *); -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, - P9L_MODE_MASK = 8191, - P9L_DIRECT = 8192, - P9L_NOWRITECACHE = 16384, - P9L_LOOSE = 32768, -}; +typedef void (*btf_trace_svcsock_new)(void *, const void *, const struct socket *); -enum { - Opt_msize = 0, - Opt_trans = 1, - Opt_legacy = 2, - Opt_version = 3, - Opt_err___5 = 4, -}; +typedef void (*btf_trace_svcsock_free)(void *, const void *, const struct socket *); -struct trace_event_raw_9p_client_req { - struct trace_entry ent; - void *clnt; - __u8 type; - __u32 tag; - char __data[0]; -}; +typedef void (*btf_trace_svcsock_marker)(void *, const struct svc_xprt *, __be32); -struct trace_event_raw_9p_client_res { - struct trace_entry ent; - void *clnt; - __u8 type; - __u32 tag; - __u32 err; - char __data[0]; -}; +typedef void (*btf_trace_svcsock_udp_send)(void *, const struct svc_xprt *, ssize_t); -struct trace_event_raw_9p_protocol_dump { - struct trace_entry ent; - void *clnt; - __u8 type; - __u16 tag; - unsigned char line[32]; - char __data[0]; -}; +typedef void (*btf_trace_svcsock_udp_recv)(void *, const struct svc_xprt *, ssize_t); -struct trace_event_raw_9p_fid_ref { - struct trace_entry ent; - int fid; - int refcount; - __u8 type; - char __data[0]; -}; +typedef void (*btf_trace_svcsock_udp_recv_err)(void *, const struct svc_xprt *, ssize_t); -struct trace_event_data_offsets_9p_client_req {}; +typedef void (*btf_trace_svcsock_tcp_send)(void *, const struct svc_xprt *, ssize_t); -struct trace_event_data_offsets_9p_client_res {}; +typedef void (*btf_trace_svcsock_tcp_recv)(void *, const struct svc_xprt *, ssize_t); -struct trace_event_data_offsets_9p_protocol_dump {}; +typedef void (*btf_trace_svcsock_tcp_recv_eagain)(void *, const struct svc_xprt *, ssize_t); -struct trace_event_data_offsets_9p_fid_ref {}; +typedef void (*btf_trace_svcsock_tcp_recv_err)(void *, const struct svc_xprt *, ssize_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; -}; +typedef void (*btf_trace_svcsock_data_ready)(void *, const struct svc_xprt *, ssize_t); -struct p9_flock { - u8 type; - u32 flags; - u64 start; - u64 length; - u32 proc_id; - char *client_id; -}; +typedef void (*btf_trace_svcsock_write_space)(void *, const struct svc_xprt *, ssize_t); -struct p9_getlock { - u8 type; - u64 start; - u64 length; - u32 proc_id; - char *client_id; -}; +typedef void (*btf_trace_svcsock_tcp_recv_short)(void *, const struct svc_xprt *, u32, u32); -struct wq_flusher; +typedef void (*btf_trace_svcsock_tcp_state)(void *, const struct svc_xprt *, const struct socket *); -struct workqueue_attrs; +typedef void (*btf_trace_svcsock_accept_err)(void *, const struct svc_xprt *, const char *, long); -struct wq_device; +typedef void (*btf_trace_svcsock_getpeername_err)(void *, const struct svc_xprt *, const char *, long); -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; - 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; -}; +typedef void (*btf_trace_cache_entry_expired)(void *, const struct cache_detail *, const struct cache_head *); -struct wq_flusher { - struct list_head list; - int flush_color; - struct completion done; -}; +typedef void (*btf_trace_cache_entry_upcall)(void *, const struct cache_detail *, const struct cache_head *); -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; - u64 stats[7]; - struct work_struct unbound_release_work; - struct callback_head rcu; -}; +typedef void (*btf_trace_cache_entry_update)(void *, const struct cache_detail *, const struct cache_head *); -struct worker_pool { - raw_spinlock_t lock; - int cpu; - int node; - int id; - unsigned int flags; - unsigned long watchdog_ts; - bool cpu_stall; - int nr_running; - struct list_head worklist; - int nr_workers; - int nr_idle; - struct list_head idle_list; - struct timer_list idle_timer; - struct work_struct idle_cull_work; - struct timer_list mayday_timer; - struct hlist_head busy_hash[64]; - struct worker *manager; - struct list_head workers; - struct list_head dying_workers; - struct completion *detach_completion; - struct ida worker_ida; - struct workqueue_attrs *attrs; - struct hlist_node hash_node; - int refcnt; - struct callback_head rcu; -}; +typedef void (*btf_trace_cache_entry_make_negative)(void *, const struct cache_detail *, const struct cache_head *); -struct workqueue_attrs { - int nice; - cpumask_var_t cpumask; - bool no_numa; -}; +typedef void (*btf_trace_cache_entry_no_listener)(void *, const struct cache_detail *, const struct cache_head *); -struct wq_device { - struct workqueue_struct *wq; - struct device dev; -}; +typedef void (*btf_trace_svc_register)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); -typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *); +typedef void (*btf_trace_svc_noregister)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); -typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *); +typedef void (*btf_trace_svc_unregister)(void *, const char *, const u32, int); -typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *); +struct rpc_buffer { + size_t len; + char data[0]; +}; -typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t); +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]; +}; -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 = 75000, - MAYDAY_INITIAL_TIMEOUT = 2, - MAYDAY_INTERVAL = 25, - CREATE_COOLDOWN = 250, - RESCUER_NICE_LEVEL = -20, - HIGHPRI_NICE_LEVEL = -20, - WQ_NAME_LEN = 24, +struct trace_event_raw_rpc_clnt_class { + struct trace_entry ent; + unsigned int client_id; + char __data[0]; }; -enum pool_workqueue_stats { - PWQ_STAT_STARTED = 0, - PWQ_STAT_COMPLETED = 1, - PWQ_STAT_CPU_TIME = 2, - PWQ_STAT_CPU_INTENSIVE = 3, - PWQ_STAT_CM_WAKEUP = 4, - PWQ_STAT_MAYDAY = 5, - PWQ_STAT_RESCUED = 6, - PWQ_NR_STATS = 7, +struct trace_event_raw_rpc_clnt_new { + struct trace_entry ent; + unsigned int client_id; + unsigned long xprtsec; + unsigned long flags; + u32 __data_loc_program; + u32 __data_loc_server; + u32 __data_loc_addr; + u32 __data_loc_port; + char __data[0]; }; -struct trace_event_raw_workqueue_queue_work { +struct trace_event_raw_rpc_clnt_new_err { struct trace_entry ent; - void *work; - void *function; - u32 __data_loc_workqueue; - int req_cpu; - int cpu; + int error; + u32 __data_loc_program; + u32 __data_loc_server; char __data[0]; }; -struct trace_event_raw_workqueue_activate_work { +struct trace_event_raw_rpc_clnt_clone_err { struct trace_entry ent; - void *work; + unsigned int client_id; + int error; char __data[0]; }; -struct trace_event_raw_workqueue_execute_start { +struct trace_event_raw_rpc_task_status { struct trace_entry ent; - void *work; - void *function; + unsigned int task_id; + unsigned int client_id; + int status; char __data[0]; }; -struct trace_event_raw_workqueue_execute_end { +struct trace_event_raw_rpc_request { struct trace_entry ent; - void *work; - void *function; + unsigned int task_id; + unsigned int client_id; + int version; + bool async; + u32 __data_loc_progname; + u32 __data_loc_procname; char __data[0]; }; -struct wq_barrier { - struct work_struct work; - struct completion done; - struct task_struct *task; +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 cwt_wait { - wait_queue_entry_t wait; - struct work_struct *work; +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 work_for_cpu { - struct work_struct work; - long (*fn)(void *); - void *arg; - long ret; +struct trace_event_raw_rpc_failure { + struct trace_entry ent; + unsigned int task_id; + unsigned int client_id; + char __data[0]; }; -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_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_data_offsets_workqueue_queue_work { - u32 workqueue; +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 pr_cont_work_struct { - bool comma; - work_func_t func; - long ctr; +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_data_offsets_workqueue_activate_work {}; +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_data_offsets_workqueue_execute_start {}; +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_data_offsets_workqueue_execute_end {}; +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 execute_work { - struct work_struct work; +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 io_tlb_area { - unsigned long used; - unsigned int index; - spinlock_t lock; +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 io_tlb_slot { - phys_addr_t orig_addr; - size_t alloc_size; - unsigned int list; +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]; }; -typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t); +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_swiotlb_bounced { +struct trace_event_raw_rpc_xprt_event { struct trace_entry ent; - u32 __data_loc_dev_name; - u64 dma_mask; - dma_addr_t dev_addr; - size_t size; - bool force; + u32 xid; + int status; + u32 __data_loc_addr; + u32 __data_loc_port; char __data[0]; }; -struct trace_event_data_offsets_swiotlb_bounced { - u32 dev_name; +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 kallsym_iter { - loff_t pos; - loff_t pos_mod_end; - loff_t pos_ftrace_mod_end; - loff_t pos_bpf_end; - unsigned long value; - unsigned int nameoff; - char type; - char name[512]; - char module_name[56]; - int exported; - int show_value; +struct 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 bpf_iter__ksym { - union { - struct bpf_iter_meta *meta; - }; - union { - struct kallsym_iter *ksym; - }; +struct trace_event_raw_xprt_ping { + struct trace_entry ent; + int status; + u32 __data_loc_addr; + u32 __data_loc_port; + char __data[0]; }; -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, +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]; }; -enum { - TRACE_CTX_NMI = 0, - TRACE_CTX_IRQ = 1, - TRACE_CTX_SOFTIRQ = 2, - TRACE_CTX_NORMAL = 3, - TRACE_CTX_TRANSITION = 4, +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]; }; -enum { - FTRACE_OPS_FL_ENABLED = 1, - FTRACE_OPS_FL_DYNAMIC = 2, - FTRACE_OPS_FL_SAVE_REGS = 4, - FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8, - FTRACE_OPS_FL_RECURSION = 16, - FTRACE_OPS_FL_STUB = 32, - FTRACE_OPS_FL_INITIALIZED = 64, - FTRACE_OPS_FL_DELETED = 128, - FTRACE_OPS_FL_ADDING = 256, - FTRACE_OPS_FL_REMOVING = 512, - FTRACE_OPS_FL_MODIFYING = 1024, - FTRACE_OPS_FL_ALLOC_TRAMP = 2048, - FTRACE_OPS_FL_IPMODIFY = 4096, - FTRACE_OPS_FL_PID = 8192, - FTRACE_OPS_FL_RCU = 16384, - FTRACE_OPS_FL_TRACE_ARRAY = 32768, - FTRACE_OPS_FL_PERMANENT = 65536, - FTRACE_OPS_FL_DIRECT = 131072, +struct trace_event_raw_xprt_reserve { + struct trace_entry ent; + unsigned int task_id; + unsigned int client_id; + u32 xid; + char __data[0]; }; -struct fprobe_rethook_node { - struct rethook_node node; - unsigned long entry_ip; - unsigned long entry_parent_ip; - 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 bpf_hrtimer { - struct hrtimer timer; - struct bpf_map *map; - struct bpf_prog *prog; - void __attribute__((btf_type_tag("rcu"))) *callback_fn; - void *value; +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 bpf_bprintf_buffers { - char bin_args[512]; - char buf[1024]; +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]; }; -enum { - BPF_F_TIMER_ABS = 1, +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]; }; -typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *); +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]; +}; -typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64); +struct trace_event_raw_pmap_register { + struct trace_entry ent; + unsigned int program; + unsigned int version; + int protocol; + unsigned int port; + char __data[0]; +}; -typedef u64 (*btf_bpf_map_delete_elem)(struct bpf_map *, void *); +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]; +}; -typedef u64 (*btf_bpf_map_push_elem)(struct bpf_map *, void *, u64); +struct trace_event_raw_rpcb_unregister { + struct trace_entry ent; + unsigned int program; + unsigned int version; + u32 __data_loc_netid; + char __data[0]; +}; -typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *); +struct trace_event_raw_rpc_tls_class { + struct trace_entry ent; + unsigned long requested_policy; + u32 version; + u32 __data_loc_servername; + u32 __data_loc_progname; + char __data[0]; +}; -typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *); +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]; +}; -typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32); +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]; +}; -typedef u64 (*btf_bpf_get_smp_processor_id)(); +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]; +}; -typedef u64 (*btf_bpf_get_numa_node_id)(); +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]; +}; -typedef u64 (*btf_bpf_ktime_get_ns)(); +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]; +}; -typedef u64 (*btf_bpf_ktime_get_boot_ns)(); +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]; +}; -typedef u64 (*btf_bpf_ktime_get_coarse_ns)(); +struct trace_event_raw_svc_replace_page_err { + struct trace_entry ent; + u32 __data_loc_server; + u32 __data_loc_client; + unsigned int netns_ino; + u32 xid; + const void *begin; + const void *respages; + const void *nextpage; + 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]; +}; -typedef u64 (*btf_bpf_ktime_get_tai_ns)(); +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]; +}; -typedef u64 (*btf_bpf_get_current_pid_tgid)(); +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; + char __data[0]; +}; -typedef u64 (*btf_bpf_get_current_uid_gid)(); +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]; +}; -typedef u64 (*btf_bpf_get_current_comm)(char *, u32); +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]; +}; -typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *); +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]; +}; -typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *); +struct trace_event_raw_svc_wake_up { + struct trace_entry ent; + int pid; + char __data[0]; +}; -typedef u64 (*btf_bpf_jiffies64)(); +struct trace_event_raw_svc_alloc_arg_err { + struct trace_entry ent; + unsigned int requested; + unsigned int allocated; + char __data[0]; +}; -typedef u64 (*btf_bpf_get_current_cgroup_id)(); +struct trace_event_raw_svc_deferred_event { + struct trace_entry ent; + const void *dr; + u32 xid; + u32 __data_loc_addr; + char __data[0]; +}; -typedef u64 (*btf_bpf_get_current_ancestor_cgroup_id)(int); +struct trace_event_raw_svcsock_lifetime_class { + struct trace_entry ent; + unsigned int netns_ino; + const void *svsk; + const void *sk; + unsigned long type; + unsigned long family; + unsigned long state; + char __data[0]; +}; -typedef u64 (*btf_bpf_strtol)(const char *, size_t, u64, long *); +struct trace_event_raw_svcsock_marker { + struct trace_entry ent; + unsigned int length; + bool last; + u32 __data_loc_addr; + char __data[0]; +}; -typedef u64 (*btf_bpf_strtoul)(const char *, size_t, u64, unsigned long *); +struct trace_event_raw_svcsock_class { + struct trace_entry ent; + ssize_t result; + unsigned long flags; + u32 __data_loc_addr; + char __data[0]; +}; -typedef u64 (*btf_bpf_strncmp)(const char *, u32, const char *); +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 bpf_pidns_info; +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]; +}; -typedef u64 (*btf_bpf_get_ns_current_pid_tgid)(u64, u64, struct bpf_pidns_info *, u32); +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 bpf_pidns_info { - __u32 pid; - __u32 tgid; +struct trace_event_raw_cache_event { + struct trace_entry ent; + const struct cache_head *h; + u32 __data_loc_name; + char __data[0]; }; -typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64); +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]; +}; -typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); +struct trace_event_raw_svc_unregister { + struct trace_entry ent; + u32 version; + int error; + u32 __data_loc_program; + char __data[0]; +}; -typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void __attribute__((btf_type_tag("user"))) *, struct task_struct *, u64); +struct trace_event_data_offsets_rpc_clnt_new { + u32 program; + u32 server; + u32 addr; + u32 port; +}; -typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32); +struct trace_event_data_offsets_rpc_clnt_new_err { + u32 program; + u32 server; +}; -typedef u64 (*btf_bpf_this_cpu_ptr)(const void *); +struct trace_event_data_offsets_rpc_request { + u32 progname; + u32 procname; +}; -typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32); +struct trace_event_data_offsets_rpc_task_queued { + u32 q_name; +}; -struct bpf_timer_kern; +struct trace_event_data_offsets_rpc_reply_event { + u32 progname; + u32 procname; + u32 servername; +}; -typedef u64 (*btf_bpf_timer_init)(struct bpf_timer_kern *, struct bpf_map *, u64); +struct trace_event_data_offsets_rpc_stats_latency { + u32 progname; + u32 procname; +}; -struct bpf_timer_kern { - struct bpf_hrtimer *timer; - struct bpf_spin_lock lock; +struct trace_event_data_offsets_rpc_xdr_overflow { + u32 progname; + u32 procedure; }; -typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *); +struct trace_event_data_offsets_rpc_xdr_alignment { + u32 progname; + u32 procedure; +}; -typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64); +struct trace_event_data_offsets_rpc_xprt_lifetime_class { + u32 addr; + u32 port; +}; -typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *); +struct trace_event_data_offsets_rpc_xprt_event { + u32 addr; + u32 port; +}; -typedef u64 (*btf_bpf_kptr_xchg)(void *, void *); +struct trace_event_data_offsets_xprt_retransmit { + u32 progname; + u32 procname; +}; -typedef u64 (*btf_bpf_dynptr_from_mem)(void *, u32, u64, struct bpf_dynptr_kern *); +struct trace_event_data_offsets_xprt_ping { + u32 addr; + u32 port; +}; -typedef u64 (*btf_bpf_dynptr_read)(void *, u32, const struct bpf_dynptr_kern *, u32, u64); +struct trace_event_data_offsets_xs_data_ready { + u32 addr; + u32 port; +}; -typedef u64 (*btf_bpf_dynptr_write)(const struct bpf_dynptr_kern *, u32, void *, u32, u64); +struct trace_event_data_offsets_xs_stream_read_data { + u32 addr; + u32 port; +}; -typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32); +struct trace_event_data_offsets_xs_stream_read_request { + u32 addr; + u32 port; +}; -struct bpf_refcount { - int: 32; +struct trace_event_data_offsets_rpcb_getport { + u32 servername; }; -struct bpf_rb_node { - long: 64; - long: 64; - long: 64; +struct trace_event_data_offsets_rpcb_register { + u32 addr; + u32 netid; }; -struct bpf_timer { - long: 64; - long: 64; +struct trace_event_data_offsets_rpcb_unregister { + u32 netid; }; -struct bpf_dynptr { - long: 64; - long: 64; +struct trace_event_data_offsets_rpc_tls_class { + u32 servername; + u32 progname; }; -struct bpf_list_node { - long: 64; - long: 64; +struct trace_event_data_offsets_svc_authenticate { + u32 server; + u32 client; }; -struct bpf_list_head { - long: 64; - long: 64; +struct trace_event_data_offsets_svc_process { + u32 service; + u32 procedure; + u32 addr; }; -struct bpf_rb_root { - long: 64; - long: 64; +struct trace_event_data_offsets_svc_rqst_event { + u32 server; + u32 client; }; -struct constant_table { - const char *name; - int value; +struct trace_event_data_offsets_svc_rqst_status { + u32 server; + u32 client; }; -enum sgp_type { - SGP_READ = 0, - SGP_NOALLOC = 1, - SGP_CACHE = 2, - SGP_WRITE = 3, - SGP_FALLOC = 4, +struct trace_event_data_offsets_svc_replace_page_err { + u32 server; + u32 client; }; -enum shmem_param { - Opt_gid___5 = 0, - Opt_huge = 1, - Opt_mode___5 = 2, - Opt_mpol = 3, - Opt_nr_blocks = 4, - Opt_nr_inodes___2 = 5, - Opt_size___2 = 6, - Opt_uid___5 = 7, - Opt_inode32 = 8, - Opt_inode64 = 9, - Opt_noswap = 10, +struct trace_event_data_offsets_svc_stats_latency { + u32 server; + u32 client; + u32 procedure; }; -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; - bool noswap; - ino_t next_ino; - ino_t __attribute__((btf_type_tag("percpu"))) *ino_batch; - struct mempolicy *mpol; - spinlock_t shrinklist_lock; - struct list_head shrinklist; - unsigned long shrinklist_len; +struct trace_event_data_offsets_svc_xprt_create_err { + u32 program; + u32 protocol; + u32 addr; }; -struct shmem_falloc { - wait_queue_head_t *waitq; - unsigned long start; - unsigned long next; - unsigned long nr_falloced; - unsigned long nr_unswapped; +struct trace_event_data_offsets_svc_xprt_enqueue { + u32 server; + u32 client; }; -struct shmem_options { - unsigned long long blocks; - unsigned long long inodes; - struct mempolicy *mpol; - kuid_t uid; - kgid_t gid; - umode_t mode; - bool full_inums; - int huge; - int seen; - bool noswap; +struct trace_event_data_offsets_svc_xprt_dequeue { + u32 server; + u32 client; }; -struct saved { - struct path link; - struct delayed_call done; - const char *name; - unsigned int seq; +struct trace_event_data_offsets_svc_xprt_event { + u32 server; + u32 client; }; -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; +struct trace_event_data_offsets_svc_xprt_accept { + u32 server; + u32 client; + u32 protocol; + u32 service; }; -enum { - LAST_NORM = 0, - LAST_ROOT = 1, - LAST_DOT = 2, - LAST_DOTDOT = 3, +struct trace_event_data_offsets_svc_deferred_event { + u32 addr; }; -enum { - WALK_TRAILING = 1, - WALK_MORE = 2, - WALK_NOFOLLOW = 4, +struct trace_event_data_offsets_svcsock_marker { + u32 addr; }; -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 trace_event_data_offsets_svcsock_class { + u32 addr; }; -struct ext4_attr { - struct attribute attr; - short attr_id; - short attr_ptr; - unsigned short attr_size; - union { - int offset; - void *explicit_ptr; - } u; +struct trace_event_data_offsets_svcsock_tcp_recv_short { + u32 addr; }; -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, +struct trace_event_data_offsets_svcsock_tcp_state { + u32 addr; }; -enum { - ptr_explicit = 0, - ptr_ext4_sb_info_offset = 1, - ptr_ext4_super_block_offset = 2, +struct trace_event_data_offsets_svcsock_accept_class { + u32 service; }; -struct isofs_fid { - u32 block; - u16 offset; - u16 parent_offset; - u32 generation; - u32 parent_block; - u32 parent_generation; +struct trace_event_data_offsets_cache_event { + u32 name; }; -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; +struct trace_event_data_offsets_register_class { + u32 program; }; -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 trace_event_data_offsets_svc_unregister { + u32 program; }; -enum { - Opt_uid___6 = 0, - Opt_gid___6 = 1, - Opt_mode___6 = 2, - Opt_err___6 = 3, -}; +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 {}; -typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *); +struct trace_event_data_offsets_svc_xdr_buf_class {}; -struct debugfs_fsdata { - const struct file_operations *real_fops; - refcount_t active_users; - struct completion active_users_drained; -}; +struct trace_event_data_offsets_svc_wake_up {}; -struct debugfs_mount_opts { - kuid_t uid; - kgid_t gid; - umode_t mode; - unsigned int opts; +struct trace_event_data_offsets_svc_alloc_arg_err {}; + +struct trace_event_data_offsets_svcsock_lifetime_class {}; + +struct printf_spec { + unsigned int type: 8; + int field_width: 24; + unsigned int flags: 8; + unsigned int base: 8; + int precision: 16; }; -struct debugfs_fs_info { - struct debugfs_mount_opts mount_opts; +struct page_flags_fields { + int width; + int shift; + int mask; + const struct printf_spec *spec; + const char *name; }; -struct nlmsg_perm { - u16 nlmsg_type; - u32 perm; +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 netif_security_struct { - struct net *ns; - int ifindex; - u32 sid; +struct alt_entry { + s32 old_offset; + s32 alt_offset; + u16 vendor_id; + u16 alt_len; + u32 patch_id; }; -struct sel_netif { - struct list_head list; - struct netif_security_struct nsec; - struct callback_head callback_head; +struct cpu_manufacturer_info_t { + unsigned long vendor_id; + unsigned long arch_id; + unsigned long imp_id; + void (*patch_func)(struct alt_entry *, struct alt_entry *, unsigned long, unsigned long, unsigned int); }; -struct crypto_aead; +typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *); -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; -}; +typedef void (*btf_trace_irq_handler_exit)(void *, int, struct irqaction *, int); -struct crypto_aead { - unsigned int authsize; - unsigned int reqsize; +typedef void (*btf_trace_softirq_entry)(void *, unsigned int); + +typedef void (*btf_trace_softirq_exit)(void *, unsigned int); + +typedef void (*btf_trace_softirq_raise)(void *, unsigned int); + +typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *); + +typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); + +typedef struct { + unsigned int __softirq_pending; long: 64; long: 64; long: 64; @@ -68043,7432 +73061,8243 @@ struct crypto_aead { long: 64; long: 64; long: 64; - struct crypto_tfm base; +} irq_cpustat_t; + +struct tasklet_head { + struct tasklet_struct *head; + struct tasklet_struct **tail; }; -struct aead_instance { - void (*free)(struct aead_instance *); - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - union { - struct { - char head[64]; - struct crypto_instance base; - } s; - struct aead_alg alg; - }; +struct trace_event_raw_irq_handler_entry { + struct trace_entry ent; + int irq; + u32 __data_loc_name; + char __data[0]; }; -struct crypto_istat_aead { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t err_cnt; +struct trace_event_raw_irq_handler_exit { + struct trace_entry ent; + int irq; + int ret; + char __data[0]; }; -struct crypto_aead_spawn { - struct crypto_spawn base; +struct trace_event_raw_softirq { + struct trace_entry ent; + unsigned int vec; + char __data[0]; }; -struct bio_map_data { - bool is_our_pages: 1; - bool is_null_mapped: 1; - struct iov_iter iter; - struct iovec iov[0]; +struct trace_event_raw_tasklet { + struct trace_entry ent; + void *tasklet; + void *func; + char __data[0]; }; -struct bvec_iter_all { - struct bio_vec bv; - int idx; - unsigned int done; +struct trace_event_data_offsets_irq_handler_entry { + u32 name; }; -struct wrapper { - cmp_func_t cmp; - swap_func_t swap; +struct trace_event_data_offsets_irq_handler_exit {}; + +struct trace_event_data_offsets_softirq {}; + +struct trace_event_data_offsets_tasklet {}; + +typedef void (*btf_trace_notifier_register)(void *, void *); + +typedef void (*btf_trace_notifier_unregister)(void *, void *); + +typedef void (*btf_trace_notifier_run)(void *, void *); + +enum die_val { + DIE_UNUSED = 0, + DIE_TRAP = 1, + DIE_OOPS = 2, }; -enum { - REG_OP_ISFREE = 0, - REG_OP_ALLOC = 1, - REG_OP_RELEASE = 2, +struct trace_event_raw_notifier_info { + struct trace_entry ent; + void *cb; + char __data[0]; }; -struct region { - unsigned int start; - unsigned int off; - unsigned int group_len; - unsigned int end; - unsigned int nbits; +struct trace_event_data_offsets_notifier_info {}; + +struct srcu_notifier_head { + struct mutex mutex; + struct srcu_usage srcuu; + struct srcu_struct srcu; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -typedef mpi_limb_t UWtype; +struct die_args { + struct pt_regs *regs; + const char *str; + long err; + int trapnr; + int signr; +}; -typedef unsigned int UHWtype; +struct __kernel_old_itimerval { + struct __kernel_old_timeval it_interval; + struct __kernel_old_timeval it_value; +}; -struct barrett_ctx_s; +struct old_itimerval32 { + struct old_timeval32 it_interval; + struct old_timeval32 it_value; +}; -typedef struct barrett_ctx_s *mpi_barrett_t; +enum cgroup_filetype { + CGROUP_FILE_PROCS = 0, + CGROUP_FILE_TASKS = 1, +}; -struct barrett_ctx_s { - MPI m; - int m_copied; - int k; - MPI y; - MPI r1; - MPI r2; - MPI r3; +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 = 8, + Opt_nofavordynmods = 9, }; -struct pci_dynid { - struct list_head node; - struct pci_device_id id; +struct cgrp_cset_link { + struct cgroup *cgrp; + struct css_set *cset; + struct list_head cset_link; + struct list_head cgrp_link; }; -struct drv_dev_and_id { - struct pci_driver *drv; - struct pci_dev *dev; - const struct pci_device_id *id; +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 fb_cvt_data { - u32 xres; - u32 yres; - u32 refresh; - u32 f_refresh; - u32 pixclock; - u32 hperiod; - u32 hblank; - u32 hfreq; - u32 htotal; - u32 vtotal; - u32 vsync; - u32 hsync; - u32 h_front_porch; - u32 h_back_porch; - u32 v_front_porch; - u32 v_back_porch; - u32 h_margin; - u32 v_margin; - u32 interlace; - u32 aspect_ratio; - u32 active_pixels; - u32 flags; - u32 status; +struct 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; }; -typedef unsigned char u_char; +struct cgroup_mgctx { + struct list_head preloaded_src_csets; + struct list_head preloaded_dst_csets; + struct cgroup_taskset tset; + u16 ss_mask; +}; -typedef unsigned short u_short; +struct cgroup_file_ctx { + struct cgroup_namespace *ns; + struct { + void *trigger; + } psi; + struct { + bool started; + struct css_task_iter iter; + } procs; + struct { + struct cgroup_pidlist *pidlist; + } procs1; +}; -struct fbcon_display { - const u_char *fontdata; - int userfont; - u_short inverse; - short yscroll; - int vrows; - int cursor_shape; - int con_rotate; - u32 xres_virtual; - u32 yres_virtual; - u32 height; - u32 width; - u32 bits_per_pixel; - u32 grayscale; - u32 nonstd; - u32 accel_flags; - u32 rotate; - struct fb_bitfield red; - struct fb_bitfield green; - struct fb_bitfield blue; - struct fb_bitfield transp; - const struct fb_videomode *mode; +struct cgroupstats { + __u64 nr_sleeping; + __u64 nr_running; + __u64 nr_stopped; + __u64 nr_uninterruptible; + __u64 nr_io_wait; }; -enum { - FBCON_LOGO_CANSHOW = -1, - FBCON_LOGO_DRAW = -2, - FBCON_LOGO_DONTSHOW = -3, +struct pcpu_freelist_node; + +struct pcpu_freelist_head { + struct pcpu_freelist_node *first; + raw_spinlock_t lock; }; -enum { - FB_BLANK_UNBLANK = 0, - FB_BLANK_NORMAL = 1, - FB_BLANK_VSYNC_SUSPEND = 2, - FB_BLANK_HSYNC_SUSPEND = 3, - FB_BLANK_POWERDOWN = 4, +struct pcpu_freelist_node { + struct pcpu_freelist_node *next; }; -struct fbcon_ops { - void (*bmove)(struct vc_data *, struct fb_info *, int, int, int, int, int, int); - void (*clear)(struct vc_data *, struct fb_info *, int, int, int, int); - void (*putcs)(struct vc_data *, struct fb_info *, const unsigned short *, int, int, int, int, int); - void (*clear_margins)(struct vc_data *, struct fb_info *, int, int); - void (*cursor)(struct vc_data *, struct fb_info *, int, int, int); - int (*update_start)(struct fb_info *); - int (*rotate_font)(struct fb_info *, struct vc_data *); - struct fb_var_screeninfo var; - struct delayed_work cursor_work; - struct fb_cursor cursor_state; - struct fbcon_display *p; - struct fb_info *info; - int currcon; - int cur_blink_jiffies; - int cursor_flash; - int cursor_reset; - int blank_state; - int graphics; - int save_graphics; - bool initialized; - int rotate; - int cur_rotate; - char *cursor_data; - u8 *fontbuffer; - u8 *fontdata; - u8 *cursor_src; - u32 cursor_size; - u32 fd_size; +struct pcpu_freelist { + struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist; + struct pcpu_freelist_head extralist; }; -struct fb_con2fbmap { - __u32 console; - __u32 framebuffer; +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, }; -typedef unsigned int u_int; +struct bpf_lru_list { + struct list_head lists[3]; + unsigned int counts[2]; + struct list_head *next_inactive_rotation; + raw_spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; -typedef acpi_status (*acpi_repair_function)(struct acpi_evaluate_info *, union acpi_operand_object **); +struct bpf_lru_locallist { + struct list_head lists[2]; + u16 next_steal; + raw_spinlock_t lock; +}; -struct acpi_repair_info { - char name[4]; - acpi_repair_function repair_function; +struct bpf_lru_node { + struct list_head list; + u16 cpu; + u8 type; + u8 ref; }; -struct regulator_bulk_devres { - struct regulator_bulk_data *consumers; - int num_consumers; +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 regulator_supply_alias_match { - struct device *dev; - const char *id; +typedef bool (*del_from_htab_func)(void *, struct bpf_lru_node *); + +struct bpf_lru { + union { + struct bpf_common_lru common_lru; + struct bpf_lru_list __attribute__((btf_type_tag("percpu"))) *percpu_lru; + }; + del_from_htab_func del_from_htab; + void *del_arg; + unsigned int hash_offset; + unsigned int nr_scans; + bool percpu; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct regulator_irq_data; +struct btf_kfunc_hook_filter { + btf_kfunc_filter_t filters[16]; + u32 nr_filters; +}; -struct regulator_irq_desc { - const char *name; - int fatal_cnt; - int reread_ms; - int irq_off_ms; - bool skip_off; - bool high_prio; - void *data; - int (*die)(struct regulator_irq_data *); - int (*map_event)(int, struct regulator_irq_data *, unsigned long *); - int (*renable)(struct regulator_irq_data *); +struct btf_kfunc_set_tab { + struct btf_id_set8 *sets[13]; + struct btf_kfunc_hook_filter hook_filters[13]; }; -struct regulator_err_state; +struct btf_id_dtor_kfunc_tab { + u32 cnt; + struct btf_id_dtor_kfunc dtors[0]; +}; -struct regulator_irq_data { - struct regulator_err_state *states; - int num_states; - void *data; - long opaque; +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 regulator_err_state { - struct regulator_dev *rdev; - unsigned long notifs; - unsigned long errors; - int possible_errs; +struct bpf_sock_addr_kern { + struct sock *sk; + struct sockaddr *uaddr; + u64 tmp_reg; + void *t_ctx; + u32 uaddrlen; }; -struct regulator_notifier_match { - struct regulator *regulator; - struct notifier_block *nb; +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 serial_ctrl_device { - struct device dev; - struct ida port_ida; +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 serial_port_device { - struct device dev; - struct uart_port *port; +struct user_regs_struct { + unsigned long pc; + unsigned long ra; + unsigned long sp; + unsigned long gp; + unsigned long tp; + unsigned long t0; + unsigned long t1; + unsigned long t2; + unsigned long s0; + unsigned long s1; + unsigned long a0; + unsigned long a1; + unsigned long a2; + unsigned long a3; + unsigned long a4; + unsigned long a5; + unsigned long a6; + unsigned long a7; + unsigned long s2; + unsigned long s3; + unsigned long s4; + unsigned long s5; + unsigned long s6; + unsigned long s7; + unsigned long s8; + unsigned long s9; + unsigned long s10; + unsigned long s11; + unsigned long t3; + unsigned long t4; + unsigned long t5; + unsigned long t6; }; -struct aggregate_device; +typedef struct user_regs_struct bpf_user_pt_regs_t; -struct component { - struct list_head node; - struct aggregate_device *adev; - bool bound; - const struct component_ops *ops; - int subcomponent; - struct device *dev; +struct bpf_perf_event_data { + bpf_user_pt_regs_t regs; + __u64 sample_period; + __u64 addr; }; -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 bpf_perf_event_data_kern { + bpf_user_pt_regs_t *regs; + struct perf_sample_data *data; + struct perf_event *event; }; -struct component_master_ops { - int (*bind)(struct device *); - void (*unbind)(struct device *); +struct bpf_raw_tracepoint_args { + __u64 args[0]; }; -struct component_match_array; - -struct component_match { - size_t alloc; - size_t num; - struct component_match_array *compare; +struct bpf_cgroup_dev_ctx { + __u32 access_type; + __u32 major; + __u32 minor; }; -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 bpf_sysctl { + __u32 write; + __u32 file_pos; }; -enum { - ND_MIN_NAMESPACE_SIZE = 4096, +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; }; -enum alloc_loc { - ALLOC_ERR = 0, - ALLOC_BEFORE = 1, - ALLOC_MID = 2, - ALLOC_AFTER = 3, +struct bpf_sockopt { + union { + struct bpf_sock *sk; + }; + union { + void *optval; + }; + union { + void *optval_end; + }; + __s32 level; + __s32 optname; + __s32 optlen; + __s32 retval; }; -struct nd_dax { - struct nd_pfn nd_pfn; +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 sun6i_spi_cfg { - unsigned long fifo_depth; - bool has_clk_ctl; +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 spi_device; - -struct spi_message; +struct sk_reuseport_kern { + struct sk_buff *skb; + struct sock *sk; + struct sock *selected_sk; + struct sock *migrating_sk; + void *data_end; + u32 hash; + u32 reuseport_id; + bool bind_inany; +}; -struct spi_transfer; +struct bpf_ctx_convert { + struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog; + struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern; + struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog; + struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern; + struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog; + struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern; + struct xdp_md BPF_PROG_TYPE_XDP_prog; + struct xdp_buff BPF_PROG_TYPE_XDP_kern; + struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog; + struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern; + struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog; + struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern; + struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog; + struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog; + struct sk_buff BPF_PROG_TYPE_LWT_IN_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog; + struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog; + struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog; + struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern; + struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog; + struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern; + struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog; + struct sk_buff BPF_PROG_TYPE_SK_SKB_kern; + struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog; + struct sk_msg BPF_PROG_TYPE_SK_MSG_kern; + struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog; + struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern; + bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog; + struct pt_regs BPF_PROG_TYPE_KPROBE_kern; + __u64 BPF_PROG_TYPE_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_TRACEPOINT_kern; + struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog; + struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern; + void *BPF_PROG_TYPE_TRACING_prog; + void *BPF_PROG_TYPE_TRACING_kern; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern; + struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog; + struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern; + struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog; + struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern; + struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog; + struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern; + struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog; + struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern; + void *BPF_PROG_TYPE_SYSCALL_prog; + void *BPF_PROG_TYPE_SYSCALL_kern; + struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_prog; + struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_kern; +}; -struct spi_controller_mem_ops; +struct btf_verifier_env; -struct spi_controller_mem_caps; +struct resolve_vertex; -struct spi_statistics; +struct btf_show; -struct spi_controller { - struct device dev; - struct list_head list; - s16 bus_num; - u16 num_chipselect; - u16 dma_alignment; - u32 mode_bits; - u32 buswidth_override_bits; - u32 bits_per_word_mask; - u32 min_speed_hz; - u32 max_speed_hz; - u16 flags; - bool devm_allocated; - union { - bool slave; - bool target; - }; - size_t (*max_transfer_size)(struct spi_device *); - size_t (*max_message_size)(struct spi_device *); - struct mutex io_mutex; - struct mutex add_lock; - spinlock_t bus_lock_spinlock; - struct mutex bus_lock_mutex; - bool bus_lock_flag; - int (*setup)(struct spi_device *); - int (*set_cs_timing)(struct spi_device *); - int (*transfer)(struct spi_device *, struct spi_message *); - void (*cleanup)(struct spi_device *); - bool (*can_dma)(struct spi_controller *, struct spi_device *, struct spi_transfer *); - struct device *dma_map_dev; - struct device *cur_rx_dma_dev; - struct device *cur_tx_dma_dev; - bool queued; - struct kthread_worker *kworker; - struct kthread_work pump_messages; - spinlock_t queue_lock; - struct list_head queue; - struct spi_message *cur_msg; - struct completion cur_msg_completion; - bool cur_msg_incomplete; - bool cur_msg_need_completion; - bool busy; - bool running; - bool rt; - bool auto_runtime_pm; - bool cur_msg_mapped; - char last_cs; - bool last_cs_mode_high; - bool fallback; - struct completion xfer_completion; - size_t max_dma_len; - int (*prepare_transfer_hardware)(struct spi_controller *); - int (*transfer_one_message)(struct spi_controller *, struct spi_message *); - int (*unprepare_transfer_hardware)(struct spi_controller *); - int (*prepare_message)(struct spi_controller *, struct spi_message *); - int (*unprepare_message)(struct spi_controller *, struct spi_message *); - union { - int (*slave_abort)(struct spi_controller *); - int (*target_abort)(struct spi_controller *); - }; - void (*set_cs)(struct spi_device *, bool); - int (*transfer_one)(struct spi_controller *, struct spi_device *, struct spi_transfer *); - void (*handle_err)(struct spi_controller *, struct spi_message *); - const struct spi_controller_mem_ops *mem_ops; - const struct spi_controller_mem_caps *mem_caps; - struct gpio_desc **cs_gpiods; - bool use_gpio_descriptors; - s8 unused_native_cs; - s8 max_native_cs; - struct spi_statistics __attribute__((btf_type_tag("percpu"))) *pcpu_statistics; - struct dma_chan *dma_tx; - struct dma_chan *dma_rx; - void *dummy_rx; - void *dummy_tx; - int (*fw_translate_cs)(struct spi_controller *, unsigned int); - bool ptp_sts_supported; - unsigned long irq_flags; - bool queue_empty; - bool must_async; +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 spi_delay { - u16 value; - u8 unit; +struct resolve_vertex { + const struct btf_type *t; + u32 type_id; + u16 next_member; }; -struct spi_device { - struct device dev; - struct spi_controller *controller; - struct spi_controller *master; - u32 max_speed_hz; - u8 chip_select; - u8 bits_per_word; - bool rt; - u32 mode; - int irq; - void *controller_state; - void *controller_data; - char modalias[32]; - const char *driver_override; - struct gpio_desc *cs_gpiod; - struct spi_delay word_delay; - struct spi_delay cs_setup; - struct spi_delay cs_hold; - struct spi_delay cs_inactive; - struct spi_statistics __attribute__((btf_type_tag("percpu"))) *pcpu_statistics; +enum verifier_phase { + CHECK_META = 0, + CHECK_TYPE = 1, }; -struct spi_statistics { - struct u64_stats_sync syncp; - u64_stats_t messages; - u64_stats_t transfers; - u64_stats_t errors; - u64_stats_t timedout; - u64_stats_t spi_sync; - u64_stats_t spi_sync_immediate; - u64_stats_t spi_async; - u64_stats_t bytes; - u64_stats_t bytes_rx; - u64_stats_t bytes_tx; - u64_stats_t transfer_bytes_histo[17]; - u64_stats_t transfers_split_maxsize; +enum resolve_mode { + RESOLVE_TBD = 0, + RESOLVE_PTR = 1, + RESOLVE_STRUCT_OR_ARRAY = 2, }; -struct spi_message { - struct list_head transfers; - struct spi_device *spi; - unsigned int is_dma_mapped: 1; - bool prepared; - int status; - void (*complete)(void *); - void *context; - unsigned int frame_length; - unsigned int actual_length; - struct list_head queue; - void *state; - struct list_head resources; +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 spi_transfer { - const void *tx_buf; - void *rx_buf; - unsigned int len; - u16 error; - dma_addr_t tx_dma; - dma_addr_t rx_dma; - struct sg_table tx_sg; - struct sg_table rx_sg; - unsigned int dummy_data: 1; - unsigned int cs_off: 1; - unsigned int cs_change: 1; - unsigned int tx_nbits: 3; - unsigned int rx_nbits: 3; - unsigned int timestamped: 1; - u8 bits_per_word; - struct spi_delay delay; - struct spi_delay cs_change_delay; - struct spi_delay word_delay; - u32 speed_hz; - u32 effective_speed_hz; - unsigned int ptp_sts_word_pre; - unsigned int ptp_sts_word_post; - struct ptp_system_timestamp *ptp_sts; - struct list_head transfer_list; +struct btf_show { + u64 flags; + void *target; + void (*showfn)(struct btf_show *, const char *, va_list); + 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 spi_mem; - -struct spi_mem_op; - -struct spi_mem_dirmap_desc; +struct bpf_cand_cache { + const char *name; + u32 name_len; + u16 kind; + u16 cnt; + struct { + const struct btf *btf; + u32 id; + } cands[0]; +}; -struct spi_controller_mem_ops { - int (*adjust_op_size)(struct spi_mem *, struct spi_mem_op *); - bool (*supports_op)(struct spi_mem *, const struct spi_mem_op *); - int (*exec_op)(struct spi_mem *, const struct spi_mem_op *); - const char * (*get_name)(struct spi_mem *); - int (*dirmap_create)(struct spi_mem_dirmap_desc *); - void (*dirmap_destroy)(struct spi_mem_dirmap_desc *); - ssize_t (*dirmap_read)(struct spi_mem_dirmap_desc *, u64, size_t, void *); - ssize_t (*dirmap_write)(struct spi_mem_dirmap_desc *, u64, size_t, const void *); - int (*poll_status)(struct spi_mem *, const struct spi_mem_op *, u16, u16, unsigned long, unsigned long, unsigned long); +enum bpf_struct_walk_result { + WALK_SCALAR = 0, + WALK_PTR = 1, + WALK_STRUCT = 2, }; -struct spi_controller_mem_caps { - bool dtr; - bool ecc; +enum { + BTF_F_COMPACT = 1, + BTF_F_NONAME = 2, + BTF_F_PTR_RAW = 4, + BTF_F_ZERO = 8, }; -struct sun6i_spi { - struct spi_controller *master; - void *base_addr; - dma_addr_t dma_addr_rx; - dma_addr_t dma_addr_tx; - struct clk *hclk; - struct clk *mclk; - struct reset_control *rstc; - struct completion done; - const u8 *tx_buf; - u8 *rx_buf; - int len; - const struct sun6i_spi_cfg *cfg; +enum { + BTF_MODULE_F_LIVE = 1, }; -enum usb_phy_interface { - USBPHY_INTERFACE_MODE_UNKNOWN = 0, - USBPHY_INTERFACE_MODE_UTMI = 1, - USBPHY_INTERFACE_MODE_UTMIW = 2, - USBPHY_INTERFACE_MODE_ULPI = 3, - USBPHY_INTERFACE_MODE_SERIAL = 4, - USBPHY_INTERFACE_MODE_HSIC = 5, +enum btf_kfunc_hook { + BTF_KFUNC_HOOK_COMMON = 0, + BTF_KFUNC_HOOK_XDP = 1, + BTF_KFUNC_HOOK_TC = 2, + BTF_KFUNC_HOOK_STRUCT_OPS = 3, + BTF_KFUNC_HOOK_TRACING = 4, + BTF_KFUNC_HOOK_SYSCALL = 5, + BTF_KFUNC_HOOK_FMODRET = 6, + BTF_KFUNC_HOOK_CGROUP_SKB = 7, + BTF_KFUNC_HOOK_SCHED_ACT = 8, + BTF_KFUNC_HOOK_SK_SKB = 9, + BTF_KFUNC_HOOK_SOCKET_FILTER = 10, + BTF_KFUNC_HOOK_LWT = 11, + BTF_KFUNC_HOOK_NETFILTER = 12, + BTF_KFUNC_HOOK_MAX = 13, }; -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; +enum { + BTF_KFUNC_SET_MAX_CNT = 256, + BTF_DTOR_KFUNC_MAX_CNT = 256, + BTF_KFUNC_FILTER_MAX_CNT = 16, }; -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; +enum { + BTF_FIELD_IGNORE = 0, + BTF_FIELD_FOUND = 1, }; -struct input_event_compat { - compat_ulong_t sec; - compat_ulong_t usec; - __u16 type; - __u16 code; - __s32 value; +enum visit_state { + NOT_VISITED = 0, + VISITED = 1, + RESOLVED = 2, }; -struct input_event { - __kernel_ulong_t __sec; - __kernel_ulong_t __usec; - __u16 type; - __u16 code; - __s32 value; +enum { + BTF_VAR_STATIC = 0, + BTF_VAR_GLOBAL_ALLOCATED = 1, + BTF_VAR_GLOBAL_EXTERN = 2, }; -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 btf_module { + struct list_head list; + struct module *module; + struct btf *btf; + struct bin_attribute *sysfs_attr; + int flags; }; -typedef void (*btf_trace_mmc_request_start)(void *, struct mmc_host *, struct mmc_request *); +typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); -typedef void (*btf_trace_mmc_request_done)(void *, struct mmc_host *, struct mmc_request *); +struct btf_decl_tag { + __s32 component_idx; +}; -enum mmc_busy_cmd { - MMC_BUSY_CMD6 = 0, - MMC_BUSY_ERASE = 1, - MMC_BUSY_HPI = 2, - MMC_BUSY_EXTR_SINGLE = 3, - MMC_BUSY_IO = 4, +struct btf_sec_info { + u32 off; + u32 len; }; -struct trace_event_raw_mmc_request_start { - struct trace_entry ent; - u32 cmd_opcode; - u32 cmd_arg; - unsigned int cmd_flags; - unsigned int cmd_retries; - u32 stop_opcode; - u32 stop_arg; - unsigned int stop_flags; - unsigned int stop_retries; - u32 sbc_opcode; - u32 sbc_arg; - unsigned int sbc_flags; - unsigned int sbc_retries; - unsigned int blocks; - unsigned int blk_addr; - unsigned int blksz; - unsigned int data_flags; - int tag; - unsigned int can_retune; - unsigned int doing_retune; - unsigned int retune_now; - int need_retune; - int hold_retune; - unsigned int retune_period; - struct mmc_request *mrq; - u32 __data_loc_name; - char __data[0]; +struct btf_enum { + __u32 name_off; + __s32 val; }; -struct trace_event_raw_mmc_request_done { - struct trace_entry ent; - u32 cmd_opcode; - int cmd_err; - u32 cmd_resp[4]; - unsigned int cmd_retries; - u32 stop_opcode; - int stop_err; - u32 stop_resp[4]; - unsigned int stop_retries; - u32 sbc_opcode; - int sbc_err; - u32 sbc_resp[4]; - unsigned int sbc_retries; - unsigned int bytes_xfered; - int data_err; - int tag; - unsigned int can_retune; - unsigned int doing_retune; - unsigned int retune_now; - int need_retune; - int hold_retune; - unsigned int retune_period; - struct mmc_request *mrq; - u32 __data_loc_name; - char __data[0]; +struct btf_var { + __u32 linkage; }; -struct trace_event_data_offsets_mmc_request_start { - u32 name; +struct btf_enum64 { + __u32 name_off; + __u32 val_lo32; + __u32 val_hi32; }; -struct trace_event_data_offsets_mmc_request_done { - u32 name; +struct btf_show_snprintf { + struct btf_show show; + int len_left; + int len; }; -struct bpf_scratchpad { +struct btf_field_info { + enum btf_field_type type; + u32 off; union { - __be32 diff[128]; - u8 buff[512]; + struct { + u32 type_id; + } kptr; + struct { + const char *node_name; + u32 value_btf_id; + } graph_root; }; }; -enum { - BPF_F_NEIGH = 2, - BPF_F_PEER = 4, - BPF_F_NEXTHOP = 8, +struct bpf_core_cand; + +struct bpf_core_cand_list { + struct bpf_core_cand *cands; + int len; }; -enum { - BPF_F_RECOMPUTE_CSUM = 1, - BPF_F_INVALIDATE_HASH = 2, +struct bpf_core_cand { + const struct btf *btf; + __u32 id; }; -enum bpf_hdr_start_off { - BPF_HDR_START_MAC = 0, - BPF_HDR_START_NET = 1, +struct bpf_core_accessor { + __u32 type_id; + __u32 idx; + const char *name; }; -enum { - BPF_F_HDR_FIELD_MASK = 15, +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; }; -enum { - BPF_F_PSEUDO_HDR = 16, - BPF_F_MARK_MANGLED_0 = 32, - BPF_F_MARK_ENFORCE = 64, +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; }; -enum { - BPF_CSUM_LEVEL_QUERY = 0, - BPF_CSUM_LEVEL_INC = 1, - BPF_CSUM_LEVEL_DEC = 2, - BPF_CSUM_LEVEL_RESET = 3, +typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool); + +typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool); + +typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool); + +struct memcg_path { + local_lock_t lock; + char __attribute__((btf_type_tag("rcu"))) *buf; + local_t buf_idx; }; -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, +struct trace_event_raw_mmap_lock { + struct trace_entry ent; + struct mm_struct *mm; + u32 __data_loc_memcg_path; + bool write; + char __data[0]; }; -enum { - BPF_ADJ_ROOM_ENCAP_L2_MASK = 255, - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56, +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]; }; -enum bpf_adj_room_mode { - BPF_ADJ_ROOM_NET = 0, - BPF_ADJ_ROOM_MAC = 1, +struct trace_event_data_offsets_mmap_lock { + u32 memcg_path; }; -enum { - BPF_F_BROADCAST = 8, - BPF_F_EXCLUDE_INGRESS = 16, +struct trace_event_data_offsets_mmap_lock_acquire_returned { + u32 memcg_path; }; -enum { - BPF_F_TUNINFO_IPV6 = 1, +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; }; -enum { - BPF_F_TUNINFO_FLAGS = 16, +struct inodes_stat_t { + long nr_inodes; + long nr_unused; + long dummy[5]; }; -enum { - BPF_F_ZERO_CSUM_TX = 2, - BPF_F_DONT_FRAGMENT = 4, - BPF_F_SEQ_NUMBER = 8, - BPF_F_NO_TUNNEL_KEY = 16, +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 { - 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, +struct posix_acl_xattr_header { + __le32 a_version; }; -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, +struct posix_acl_xattr_entry { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; }; -enum { - BPF_FIB_LOOKUP_DIRECT = 1, - BPF_FIB_LOOKUP_OUTPUT = 2, - BPF_FIB_LOOKUP_SKIP_NEIGH = 4, - BPF_FIB_LOOKUP_TBID = 8, +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; }; -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, +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; }; -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 netfs_read_trace { + netfs_read_trace_expanded = 0, + netfs_read_trace_readahead = 1, + netfs_read_trace_readpage = 2, + netfs_read_trace_write_begin = 3, +} __attribute__((mode(byte))); + +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]; }; -enum bpf_check_mtu_flags { - BPF_MTU_CHK_SEGS = 1, +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]; }; -enum bpf_lwt_encap_mode { - BPF_LWT_ENCAP_SEG6 = 0, - BPF_LWT_ENCAP_SEG6_INLINE = 1, - BPF_LWT_ENCAP_IP = 2, +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]; }; -enum { - SEG6_LOCAL_ACTION_UNSPEC = 0, - SEG6_LOCAL_ACTION_END = 1, - SEG6_LOCAL_ACTION_END_X = 2, - SEG6_LOCAL_ACTION_END_T = 3, - SEG6_LOCAL_ACTION_END_DX2 = 4, - SEG6_LOCAL_ACTION_END_DX6 = 5, - SEG6_LOCAL_ACTION_END_DX4 = 6, - SEG6_LOCAL_ACTION_END_DT6 = 7, - SEG6_LOCAL_ACTION_END_DT4 = 8, - SEG6_LOCAL_ACTION_END_B6 = 9, - SEG6_LOCAL_ACTION_END_B6_ENCAP = 10, - SEG6_LOCAL_ACTION_END_BM = 11, - SEG6_LOCAL_ACTION_END_S = 12, - SEG6_LOCAL_ACTION_END_AS = 13, - SEG6_LOCAL_ACTION_END_AM = 14, - SEG6_LOCAL_ACTION_END_BPF = 15, - SEG6_LOCAL_ACTION_END_DT46 = 16, - __SEG6_LOCAL_ACTION_MAX = 17, +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]; }; -enum { - BPF_LOAD_HDR_OPT_TCP_SYN = 1, +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]; }; -enum { - BPF_SKB_TSTAMP_UNSPEC = 0, - BPF_SKB_TSTAMP_DELIVERY_MONO = 1, +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]; }; -enum { - BPF_SK_LOOKUP_F_REPLACE = 1, - BPF_SK_LOOKUP_F_NO_REUSEPORT = 2, -}; +struct trace_event_data_offsets_netfs_read {}; -typedef u64 (*btf_bpf_skb_get_pay_offset)(struct sk_buff *); +struct trace_event_data_offsets_netfs_rreq {}; -typedef u64 (*btf_bpf_skb_get_nlattr)(struct sk_buff *, u32, u32); +struct trace_event_data_offsets_netfs_sreq {}; -typedef u64 (*btf_bpf_skb_get_nlattr_nest)(struct sk_buff *, u32, u32); +struct trace_event_data_offsets_netfs_failure {}; -typedef u64 (*btf_bpf_skb_load_helper_8)(const struct sk_buff *, const void *, int, int); +struct trace_event_data_offsets_netfs_rreq_ref {}; -typedef u64 (*btf_bpf_skb_load_helper_8_no_cache)(const struct sk_buff *, int); +struct trace_event_data_offsets_netfs_sreq_ref {}; -typedef u64 (*btf_bpf_skb_load_helper_16)(const struct sk_buff *, const void *, int, int); +struct fstrim_range { + __u64 start; + __u64 len; + __u64 minlen; +}; -typedef u64 (*btf_bpf_skb_load_helper_16_no_cache)(const struct sk_buff *, int); +struct nfs_io_completion { + void (*complete)(void *); + void *data; + struct kref refcount; +}; -typedef u64 (*btf_bpf_skb_load_helper_32)(const struct sk_buff *, const void *, int, int); +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, +}; -typedef u64 (*btf_bpf_skb_load_helper_32_no_cache)(const struct sk_buff *, int); +struct nfs4_xattr_bucket { + spinlock_t lock; + struct hlist_head hlist; + struct nfs4_xattr_cache *cache; + bool draining; +}; -typedef u64 (*btf_bpf_skb_store_bytes)(struct sk_buff *, u32, const void *, u32, u64); +struct nfs4_xattr_entry; -typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32); +struct nfs4_xattr_cache { + struct kref ref; + struct nfs4_xattr_bucket buckets[64]; + struct list_head lru; + struct list_head dispose; + atomic_long_t nent; + spinlock_t listxattr_lock; + struct inode *inode; + struct nfs4_xattr_entry *listxattr; +}; -typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32); +struct nfs4_xattr_entry { + struct kref ref; + struct hlist_node hnode; + struct list_head lru; + struct list_head dispose; + char *xattr_name; + void *xattr_value; + size_t xattr_size; + struct nfs4_xattr_bucket *bucket; + uint32_t flags; +}; -typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32); +typedef unsigned long (*count_objects_cb)(struct shrinker *, struct shrink_control *); -typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32); +typedef unsigned long (*scan_objects_cb)(struct shrinker *, struct shrink_control *); -typedef u64 (*btf_bpf_sk_fullsock)(struct sock *); +struct nlmsg_perm { + u16 nlmsg_type; + u32 perm; +}; -typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32); +struct netif_security_struct { + struct net *ns; + int ifindex; + u32 sid; +}; -typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64); +struct sel_netif { + struct list_head list; + struct netif_security_struct nsec; + struct callback_head callback_head; +}; -typedef u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64); +struct blk_rq_stat; -typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum); +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 u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum); +struct blk_rq_stat { + u64 mean; + u64 min; + u64 max; + u32 nr_samples; + u64 batch; +}; -typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64); +struct blk_queue_stats { + struct list_head callbacks; + spinlock_t lock; + int accounting; +}; -typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64); +typedef enum { + set_basic = 0, + set_rle = 1, + set_compressed = 2, + set_repeat = 3, +} symbolEncodingType_e; -typedef u64 (*btf_bpf_redirect)(u32, u64); +typedef enum { + search_hashChain = 0, + search_binaryTree = 1, + search_rowHash = 2, +} searchMethod_e; -typedef u64 (*btf_bpf_redirect_peer)(u32, u64); +typedef U64 ZSTD_VecMask; -struct bpf_redir_neigh; +enum acpi_bus_device_type { + ACPI_BUS_TYPE_DEVICE = 0, + ACPI_BUS_TYPE_POWER = 1, + ACPI_BUS_TYPE_PROCESSOR = 2, + ACPI_BUS_TYPE_THERMAL = 3, + ACPI_BUS_TYPE_POWER_BUTTON = 4, + ACPI_BUS_TYPE_SLEEP_BUTTON = 5, + ACPI_BUS_TYPE_ECDT_EC = 6, + ACPI_BUS_DEVICE_TYPE_COUNT = 7, +}; -typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64); +struct acpi_power_resource; -struct bpf_redir_neigh { - __u32 nh_family; - union { - __be32 ipv4_nh; - __u32 ipv6_nh[4]; - }; +struct acpi_power_resource_entry { + struct list_head node; + struct acpi_power_resource *resource; }; -typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32); +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; +}; -typedef u64 (*btf_bpf_msg_cork_bytes)(struct sk_msg *, u32); +struct acpi_power_dependent_device { + struct device *dev; + struct list_head node; +}; -typedef u64 (*btf_bpf_msg_pull_data)(struct sk_msg *, u32, u32, u64); +struct acpi_mem_mapping; -typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64); +struct acpi_mem_space_context { + u32 length; + acpi_physical_address address; + struct acpi_mem_mapping *cur_mm; + struct acpi_mem_mapping *first_mm; +}; -typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64); +struct acpi_mem_mapping { + acpi_physical_address physical_address; + u8 *logical_address; + acpi_size length; + struct acpi_mem_mapping *next_mm; +}; -typedef u64 (*btf_bpf_get_cgroup_classid_curr)(); +struct acpi_data_table_mapping { + void *pointer; +}; -typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *); +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; +}; -typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *); +struct acpi_rsconvert_info { + u8 opcode; + u8 resource_offset; + u8 aml_offset; + u8 value; +}; -typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *); +struct clk_composite { + struct clk_hw hw; + struct clk_ops ops; + struct clk_hw *mux_hw; + struct clk_hw *rate_hw; + struct clk_hw *gate_hw; + const struct clk_ops *mux_ops; + const struct clk_ops *rate_ops; + const struct clk_ops *gate_ops; +}; -typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *); +struct vring_desc; -typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *); +typedef struct vring_desc vring_desc_t; -typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32); +struct vring_avail; -typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16); +typedef struct vring_avail vring_avail_t; -typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *); +struct vring_used; -typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64); +typedef struct vring_used vring_used_t; -typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32); +struct vring { + unsigned int num; + vring_desc_t *desc; + vring_avail_t *avail; + vring_used_t *used; +}; -typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64); +struct vring_desc_state_split; -typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64); +struct vring_desc_extra; -typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64); +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; +}; -typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64); +struct vring_packed_desc; -typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64); +struct vring_packed_desc_event; -typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64); +struct vring_desc_state_packed; -typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *); +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; +}; -typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int); +struct vring_virtqueue { + struct virtqueue vq; + bool packed_ring; + bool use_dma_api; + bool weak_barriers; + bool broken; + bool indirect; + bool event; + bool premapped; + bool do_unmap; + unsigned int free_head; + unsigned int num_added; + u16 last_used_idx; + bool event_triggered; + union { + struct vring_virtqueue_split split; + struct vring_virtqueue_packed packed; + }; + bool (*notify)(struct virtqueue *); + bool we_own_ring; + struct device *dma_dev; +}; -typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32); +struct vring_desc { + __virtio64 addr; + __virtio32 len; + __virtio16 flags; + __virtio16 next; +}; -typedef u64 (*btf_bpf_xdp_store_bytes)(struct xdp_buff *, u32, void *, u32); +struct vring_avail { + __virtio16 flags; + __virtio16 idx; + __virtio16 ring[0]; +}; -typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int); +struct vring_used_elem { + __virtio32 id; + __virtio32 len; +}; -typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int); +typedef struct vring_used_elem vring_used_elem_t; -typedef u64 (*btf_bpf_xdp_redirect)(u32, u64); +struct vring_used { + __virtio16 flags; + __virtio16 idx; + vring_used_elem_t ring[0]; +}; -typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64); +struct vring_desc_state_split { + void *data; + struct vring_desc *indir_desc; +}; -typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64); +struct vring_desc_extra { + dma_addr_t addr; + u32 len; + u16 flags; + u16 next; +}; -struct bpf_tunnel_key; +struct vring_packed_desc { + __le64 addr; + __le32 len; + __le16 id; + __le16 flags; +}; -typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64); +struct vring_packed_desc_event { + __le16 off_wrap; + __le16 flags; +}; -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]; - }; +struct vring_desc_state_packed { + void *data; + struct vring_packed_desc *indir_desc; + u16 num; + u16 last; }; -typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32); +struct tty_file_private { + struct tty_struct *tty; + struct file *file; + struct list_head list; +}; -typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64); +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; +}; -typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32); +struct exar8250; -typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32); +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 *); +}; -typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *); +struct exar8250 { + unsigned int nr; + struct exar8250_board *board; + void *virt; + int line[0]; +}; -typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int); +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 *); +}; -typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *); +typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *); -typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int); +typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int); -typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64); +typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *); -typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *); +typedef void (*btf_trace_scsi_dispatch_cmd_timeout)(void *, struct scsi_cmnd *); -struct bpf_sock_addr_kern; +typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *); -typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); +enum scsi_vpd_parameters { + SCSI_VPD_HEADER_SIZE = 4, +}; -struct bpf_sock_addr_kern { - struct sock *sk; - struct sockaddr *uaddr; - u64 tmp_reg; - void *t_ctx; +struct trace_event_raw_scsi_dispatch_cmd_start { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + unsigned int opcode; + unsigned int cmd_len; + int driver_tag; + int scheduler_tag; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + char __data[0]; +}; + +struct trace_event_raw_scsi_dispatch_cmd_error { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + int rtn; + unsigned int opcode; + unsigned int cmd_len; + int driver_tag; + int scheduler_tag; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + char __data[0]; +}; + +struct trace_event_raw_scsi_cmd_done_timeout_template { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + int result; + unsigned int opcode; + unsigned int cmd_len; + int driver_tag; + int scheduler_tag; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + u8 sense_key; + u8 asc; + u8 ascq; + char __data[0]; }; -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 *); +struct trace_event_raw_scsi_eh_wakeup { + struct trace_entry ent; + unsigned int host_no; + char __data[0]; +}; -typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *); +struct trace_event_data_offsets_scsi_dispatch_cmd_start { + u32 cmnd; +}; -typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *); +struct trace_event_data_offsets_scsi_dispatch_cmd_error { + u32 cmnd; +}; -typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *); +struct trace_event_data_offsets_scsi_cmd_done_timeout_template { + u32 cmnd; +}; -typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); +struct trace_event_data_offsets_scsi_eh_wakeup {}; -typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); +struct cfi_extquery { + uint8_t pri[3]; + uint8_t MajorVersion; + uint8_t MinorVersion; +}; -typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); +struct cfi_fixup { + uint16_t mfr; + uint16_t id; + void (*fixup)(struct mtd_info *); +}; -typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); +typedef int (*varsize_frob_t)(struct map_info *, struct flchip *, unsigned long, int, void *); -typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int); +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); +}; -typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int); +struct ethtool_cmd { + __u32 cmd; + __u32 supported; + __u32 advertising; + __u16 speed; + __u8 duplex; + __u8 port; + __u8 phy_address; + __u8 transceiver; + __u8 autoneg; + __u8 mdio_support; + __u32 maxtxpkt; + __u32 maxrxpkt; + __u16 speed_hi; + __u8 eth_tp_mdix; + __u8 eth_tp_mdix_ctrl; + __u32 lp_advertising; + __u32 reserved[2]; +}; -typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); +struct mii_ioctl_data { + __u16 phy_id; + __u16 reg_num; + __u16 val_in; + __u16 val_out; +}; -typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); +enum xfer_buf_dir { + TO_XFER_BUF = 0, + FROM_XFER_BUF = 1, +}; -typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); +struct bulk_cb_wrap { + __le32 Signature; + __u32 Tag; + __le32 DataTransferLength; + __u8 Flags; + __u8 Lun; + __u8 Length; + __u8 CDB[16]; +}; -typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); +struct bulk_cs_wrap { + __le32 Signature; + __u32 Tag; + __le32 Residue; + __u8 Status; +}; -typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int); +struct syscon_reboot_context { + struct regmap *map; + u32 offset; + u32 value; + u32 mask; + struct notifier_block restart_handler; +}; -typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int); +enum rz_wdt_type { + WDT_RZG2L = 0, + WDT_RZV2M = 1, +}; -struct bpf_xfrm_state; +struct rzg2l_wdt_priv { + void *base; + struct watchdog_device wdev; + struct reset_control *rstc; + unsigned long osc_clk_rate; + unsigned long delay; + unsigned long minimum_assertion_period; + struct clk *pclk; + struct clk *osc_clk; + enum rz_wdt_type devtype; +}; -typedef u64 (*btf_bpf_skb_get_xfrm_state)(struct sk_buff *, u32, struct bpf_xfrm_state *, u32, u64); +struct sbi_domain_state { + bool available; + u32 state; +}; -struct bpf_xfrm_state { - __u32 reqid; - __u32 spi; - __u16 family; - __u16 ext; - union { - __u32 remote_ipv4; - __u32 remote_ipv6[4]; - }; +struct sbi_cpuidle_data { + u32 *states; + struct device *dev; }; -struct bpf_fib_lookup; +struct sbi_pd_provider { + struct list_head link; + struct device_node *node; +}; -typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32); +typedef int (*of_init_fn_1_ret)(struct device_node *); -struct bpf_fib_lookup { - __u8 family; - __u8 l4_protocol; - __be16 sport; - __be16 dport; - union { - __u16 tot_len; - __u16 mtu_result; - }; - __u32 ifindex; - union { - __u8 tos; - __be32 flowinfo; - __u32 rt_metric; - }; - union { - __be32 ipv4_src; - __u32 ipv6_src[4]; - }; - union { - __be32 ipv4_dst; - __u32 ipv6_dst[4]; - }; - union { - struct { - __be16 h_vlan_proto; - __be16 h_vlan_TCI; - }; - __u32 tbid; - }; - __u8 smac[6]; - __u8 dmac[6]; +struct of_intc_desc { + struct list_head list; + of_irq_init_cb_t irq_init_cb; + struct device_node *dev; + struct device_node *interrupt_parent; }; -typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32); +struct sd_flow_limit; -typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64); +struct softnet_data { + struct list_head poll_list; + struct sk_buff_head process_queue; + unsigned int processed; + unsigned int time_squeeze; + struct softnet_data *rps_ipi_list; + bool in_net_rx_action; + bool in_napi_threaded_poll; + struct sd_flow_limit __attribute__((btf_type_tag("rcu"))) *flow_limit; + struct Qdisc *output_queue; + struct Qdisc **output_queue_tailp; + struct sk_buff *completion_queue; + struct { + u16 recursion; + u8 more; + u8 skip_txqueue; + } xmit; + long: 0; + unsigned int input_queue_head; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + call_single_data_t csd; + struct softnet_data *rps_ipi_next; + unsigned int cpu; + unsigned int input_queue_tail; + unsigned int received_rps; + unsigned int dropped; + struct sk_buff_head input_pkt_queue; + struct napi_struct backlog; + long: 64; + long: 64; + spinlock_t defer_lock; + int defer_count; + int defer_ipi_scheduled; + struct sk_buff *defer_list; + long: 64; + long: 64; + long: 64; + call_single_data_t defer_csd; + long: 64; + long: 64; + long: 64; + long: 64; +}; -typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64); +struct sd_flow_limit { + u64 count; + unsigned int num_buckets; + unsigned int history_head; + u16 history[128]; + u8 buckets[0]; +}; -typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32); +enum qdisc_state2_t { + __QDISC_STATE2_RUNNING = 0, +}; -typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32); +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; +}; -typedef u64 (*btf_bpf_lwt_seg6_store_bytes)(struct sk_buff *, u32, const void *, u32); +struct skb_array { + struct ptr_ring ring; +}; -typedef u64 (*btf_bpf_lwt_seg6_action)(struct sk_buff *, u32, void *, u32); +struct pfifo_fast_priv { + struct skb_array q[3]; +}; -typedef u64 (*btf_bpf_lwt_seg6_adjust_srh)(struct sk_buff *, u32, s32); +struct tc_prio_qopt { + int bands; + __u8 priomap[16]; +}; -struct bpf_sock_tuple; +struct psched_ratecfg { + u64 rate_bytes_ps; + u32 mult; + u16 overhead; + u16 mpu; + u8 linklayer; + u8 shift; +}; -typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +struct psched_pktrate { + u64 rate_pkts_ps; + u32 mult; + u8 shift; +}; -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 mini_Qdisc_pair { + struct mini_Qdisc miniq1; + struct mini_Qdisc miniq2; + struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq; }; -typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +struct tcp_metrics_block; -typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +struct tcpm_hash_bucket { + struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *chain; +}; -typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +struct tcp_fastopen_metrics { + u16 mss; + u16 syn_loss: 10; + u16 try_exp: 2; + unsigned long last_syn_loss; + struct tcp_fastopen_cookie cookie; +}; -typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +struct tcp_metrics_block { + struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *tcpm_next; + struct net *tcpm_net; + struct inetpeer_addr tcpm_saddr; + struct inetpeer_addr tcpm_daddr; + unsigned long tcpm_stamp; + u32 tcpm_lock; + u32 tcpm_vals[5]; + struct tcp_fastopen_metrics tcpm_fastopen; + struct callback_head callback_head; +}; -typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +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, +}; -typedef u64 (*btf_bpf_sk_release)(struct sock *); +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, +}; -typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); +enum { + TCP_METRICS_CMD_UNSPEC = 0, + TCP_METRICS_CMD_GET = 1, + TCP_METRICS_CMD_DEL = 2, + __TCP_METRICS_CMD_MAX = 3, +}; -typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); +struct snmp_mib { + const char *name; + int entry; +}; -typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); +enum fib6_walk_state { + FWS_S = 0, + FWS_L = 1, + FWS_R = 2, + FWS_C = 3, + FWS_U = 4, +}; -typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); +enum { + FIB6_NO_SERNUM_CHANGE = 0, +}; -typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); +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; +}; -typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); +struct fib6_cleaner { + struct fib6_walker w; + struct net *net; + int (*func)(struct fib6_info *, void *); + int sernum; + void *arg; + bool skip_notify; +}; -struct bpf_tcp_sock { - __u32 snd_cwnd; - __u32 srtt_us; - __u32 rtt_min; - __u32 snd_ssthresh; - __u32 rcv_nxt; - __u32 snd_nxt; - __u32 snd_una; - __u32 mss_cache; - __u32 ecn_flags; - __u32 rate_delivered; - __u32 rate_interval_us; - __u32 packets_out; - __u32 retrans_out; - __u32 total_retrans; - __u32 segs_in; - __u32 data_segs_in; - __u32 segs_out; - __u32 data_segs_out; - __u32 lost_out; - __u32 sacked_out; - __u64 bytes_received; - __u64 bytes_acked; - __u32 dsack_dups; - __u32 delivered; - __u32 delivered_ce; - __u32 icsk_retransmits; +struct fib6_dump_arg { + struct net *net; + struct notifier_block *nb; + struct netlink_ext_ack *extack; }; -typedef u64 (*btf_bpf_tcp_sock)(struct sock *); +struct fib6_entry_notifier_info { + struct fib_notifier_info info; + struct fib6_info *rt; + unsigned int nsiblings; +}; -typedef u64 (*btf_bpf_get_listener_sock)(struct sock *); +struct fib6_gc_args { + int timeout; + int more; +}; -typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *); +struct ipv6_route_iter { + struct seq_net_private p; + struct fib6_walker w; + loff_t skip; + struct fib6_table *tbl; + int sernum; +}; -typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); +struct bpf_iter__ipv6_route { + union { + struct bpf_iter_meta *meta; + }; + union { + struct fib6_info *rt; + }; +}; -typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); +struct fib6_nh_pcpu_arg { + struct fib6_info *from; + const struct fib6_table *table; +}; -typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64); +struct lookup_args { + int offset; + const struct in6_addr *addr; +}; -typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64); +struct rt6_rtnl_dump_arg { + struct sk_buff *skb; + struct netlink_callback *cb; + struct net *net; + struct fib_dump_filter filter; +}; -typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64); +struct xdp_ring; -typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64); +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; +}; -typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32); +struct xdp_ring { + u32 producer; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 pad1; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 consumer; + 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: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; -struct sk_reuseport_kern; +struct xdp_rxtx_ring { + struct xdp_ring ptrs; + struct xdp_desc desc[0]; +}; -typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32); +struct xdp_umem_ring { + struct xdp_ring ptrs; + u64 desc[0]; +}; -struct sk_reuseport_kern { +struct xdp_sock { + struct sock sk; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct xsk_queue *rx; + struct net_device *dev; + struct xdp_umem *umem; + struct list_head flush_node; + struct xsk_buff_pool *pool; + u16 queue_id; + bool zc; + bool sg; + enum { + XSK_READY = 0, + XSK_BOUND = 1, + XSK_UNBOUND = 2, + } state; + long: 64; + struct xsk_queue *tx; + struct list_head tx_list; + u32 tx_budget_spent; + spinlock_t rx_lock; + u64 rx_dropped; + u64 rx_queue_full; struct sk_buff *skb; - struct sock *sk; - struct sock *selected_sk; - struct sock *migrating_sk; - void *data_end; - u32 hash; - u32 reuseport_id; - bool bind_inany; + struct list_head map_list; + spinlock_t map_list_lock; + struct mutex mutex; + struct xsk_queue *fq_tmp; + struct xsk_queue *cq_tmp; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 *); +struct xsk_map; -typedef u64 (*btf_bpf_skc_to_tcp_sock)(struct sock *); +struct xsk_map_node { + struct list_head node; + struct xsk_map *map; + struct xdp_sock __attribute__((btf_type_tag("rcu"))) **map_entry; +}; -typedef u64 (*btf_bpf_skc_to_tcp_timewait_sock)(struct sock *); +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; +}; -typedef u64 (*btf_bpf_skc_to_tcp_request_sock)(struct sock *); +enum { + MAX_IORES_LEVEL = 5, +}; -typedef u64 (*btf_bpf_skc_to_udp6_sock)(struct sock *); +enum { + REGION_INTERSECTS = 0, + REGION_DISJOINT = 1, + REGION_MIXED = 2, +}; -typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *); +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; +}; -typedef u64 (*btf_bpf_skc_to_mptcp_sock)(struct sock *); +struct region_devres { + struct resource *parent; + resource_size_t start; + resource_size_t n; +}; -typedef u64 (*btf_bpf_sock_from_file)(struct file *); +struct optimistic_spin_node { + struct optimistic_spin_node *next; + struct optimistic_spin_node *prev; + int locked; + int cpu; +}; -struct tls_strparser { - struct sock *sk; - u32 mark: 8; - u32 stopped: 1; - u32 copy_mode: 1; - u32 mixed_decrypted: 1; - u32 msg_ready: 1; - struct strp_msg stm; - struct sk_buff *anchor; - struct work_struct work; +enum rtmutex_chainwalk { + RT_MUTEX_MIN_CHAINWALK = 0, + RT_MUTEX_FULL_CHAINWALK = 1, }; -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 rt_wake_q_head { + struct wake_q_head head; + struct task_struct *rtlock_task; }; -struct tcp6_sock { - struct tcp_sock tcp; - struct ipv6_pinfo inet6; +struct ptrace_sud_config { + __u64 mode; + __u64 selector; + __u64 offset; + __u64 len; }; -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; +typedef __kernel_long_t __kernel_suseconds_t; + +typedef __kernel_suseconds_t suseconds_t; + +struct __kernel_timex_timeval { + __kernel_time64_t tv_sec; + long long tv_usec; }; -struct udp6_sock { - struct udp_sock udp; - struct ipv6_pinfo inet6; +struct __kernel_timex { + unsigned int modes; + long long offset; + long long freq; + long long maxerror; + long long esterror; + int status; + long long constant; + long long precision; + long long tolerance; + struct __kernel_timex_timeval time; + long long tick; + long long ppsfreq; + long long jitter; + int shift; + long long stabil; + long long jitcnt; + long long calcnt; + long long errcnt; + long long stbcnt; + int tai; + long: 64; long: 64; long: 64; long: 64; long: 64; }; -struct mptcp_sock {}; - -struct sock_fprog { - unsigned short len; - struct sock_filter __attribute__((btf_type_tag("user"))) *filter; +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: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 __kernel_itimerspec { + struct __kernel_timespec it_interval; + struct __kernel_timespec it_value; }; -struct cipher_context { - char *iv; - char *rec_seq; +struct old_itimerspec32 { + struct old_timespec32 it_interval; + struct old_timespec32 it_value; }; -struct tls_crypto_info { - __u16 version; - __u16 cipher_type; -}; +struct ftrace_graph_ret; -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]; -}; +typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); -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 ftrace_graph_ret { + unsigned long func; + unsigned long retval; + int depth; + unsigned int overrun; + unsigned long long calltime; + unsigned long long rettime; }; -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 ftrace_graph_ent; -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]; -}; +typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); -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]; +struct ftrace_graph_ent { + unsigned long func; + int depth; +} __attribute__((packed)); + +enum { + FTRACE_UPDATE_CALLS = 1, + FTRACE_DISABLE_CALLS = 2, + FTRACE_UPDATE_TRACE_FUNC = 4, + FTRACE_START_FUNC_RET = 8, + FTRACE_STOP_FUNC_RET = 16, + FTRACE_MAY_SLEEP = 32, }; -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 fgraph_ret_regs { + unsigned long a1; + unsigned long a0; + unsigned long s0; + unsigned long ra; }; -struct tls_context { - struct tls_prot_info prot_info; - u8 tx_conf: 3; - u8 rx_conf: 3; - u8 zerocopy_sendfile: 1; - u8 rx_no_pad: 1; - int (*push_pending_record)(struct sock *, int); - void (*sk_write_space)(struct sock *); - void *priv_ctx_tx; - void *priv_ctx_rx; - struct net_device __attribute__((btf_type_tag("rcu"))) *netdev; - struct cipher_context tx; - struct cipher_context rx; - struct scatterlist *partially_sent_record; - u16 partially_sent_offset; - bool splicing_pages; - bool pending_open_record_frags; - struct mutex tx_lock; - unsigned long flags; - struct proto *sk_proto; - struct sock *sk; - void (*sk_destruct)(struct sock *); - union tls_crypto_context crypto_send; - union tls_crypto_context crypto_recv; - struct list_head list; - refcount_t refcount; - struct callback_head rcu; +struct fgraph_ops { + trace_func_graph_ent_t entryfunc; + trace_func_graph_ret_t retfunc; }; -struct compat_sock_fprog { - u16 len; - compat_uptr_t filter; +enum dynevent_type { + DYNEVENT_TYPE_SYNTH = 1, + DYNEVENT_TYPE_KPROBE = 2, + DYNEVENT_TYPE_NONE = 3, }; -typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); +struct dynevent_cmd; -struct ping_table { - struct hlist_head hash[64]; - spinlock_t lock; -}; +typedef int (*dynevent_create_fn_t)(struct dynevent_cmd *); -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 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 ping_iter_state { - struct seq_net_private p; - int bucket; - sa_family_t family; +struct dynevent_arg { + const char *str; + char separator; }; -struct pingfakehdr { - struct icmphdr icmph; - struct msghdr *msg; - sa_family_t family; - __wsum wcheck; -}; +typedef int (*dynevent_check_arg_fn_t)(void *); -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 dynevent_arg_pair { + const char *lhs; + const char *rhs; + char operator; + char separator; }; -enum hp_flags_bits { - HANDSHAKE_F_PROTO_NOTIFY = 0, +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; }; -enum { - HANDSHAKE_CMD_READY = 1, - HANDSHAKE_CMD_ACCEPT = 2, - HANDSHAKE_CMD_DONE = 3, - __HANDSHAKE_CMD_MAX = 4, - HANDSHAKE_CMD_MAX = 3, +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; }; -enum { - HANDSHAKE_A_ACCEPT_SOCKFD = 1, - HANDSHAKE_A_ACCEPT_HANDLER_CLASS = 2, - HANDSHAKE_A_ACCEPT_MESSAGE_TYPE = 3, - HANDSHAKE_A_ACCEPT_TIMEOUT = 4, - HANDSHAKE_A_ACCEPT_AUTH_MODE = 5, - HANDSHAKE_A_ACCEPT_PEER_IDENTITY = 6, - HANDSHAKE_A_ACCEPT_CERTIFICATE = 7, - HANDSHAKE_A_ACCEPT_PEERNAME = 8, - __HANDSHAKE_A_ACCEPT_MAX = 9, - HANDSHAKE_A_ACCEPT_MAX = 8, -}; +typedef s64 compat_loff_t; -enum { - HANDSHAKE_A_DONE_STATUS = 1, - HANDSHAKE_A_DONE_SOCKFD = 2, - HANDSHAKE_A_DONE_REMOTE_AUTH = 3, - __HANDSHAKE_A_DONE_MAX = 4, - HANDSHAKE_A_DONE_MAX = 3, +struct file_clone_range { + __s64 src_fd; + __u64 src_offset; + __u64 src_length; + __u64 dest_offset; }; -enum hn_flags_bits { - HANDSHAKE_F_NET_DRAINING = 0, +struct fsxattr { + __u32 fsx_xflags; + __u32 fsx_extsize; + __u32 fsx_nextents; + __u32 fsx_projid; + __u32 fsx_cowextsize; + unsigned char fsx_pad[8]; }; -struct handshake_proto; - -struct handshake_req { - struct list_head hr_list; - struct rhash_head hr_rhash; - unsigned long hr_flags; - const struct handshake_proto *hr_proto; - struct sock *hr_sk; - void (*hr_odestruct)(struct sock *); - char hr_priv[0]; +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 handshake_proto { - int hp_handler_class; - size_t hp_privsize; - unsigned long hp_flags; - int (*hp_accept)(struct handshake_req *, struct genl_info *, int); - void (*hp_done)(struct handshake_req *, unsigned int, struct genl_info *); - void (*hp_destroy)(struct handshake_req *); +struct file_dedupe_range_info { + __s64 dest_fd; + __u64 dest_offset; + __u64 bytes_deduped; + __s32 status; + __u32 reserved; }; -struct handshake_net { - spinlock_t hn_lock; - int hn_pending; - int hn_pending_max; - struct list_head hn_requests; - unsigned long hn_flags; +struct file_dedupe_range { + __u64 src_offset; + __u64 src_length; + __u16 dest_count; + __u16 reserved1; + __u32 reserved2; + struct file_dedupe_range_info info[0]; }; -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 *); +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]; +}; -typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode); +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 *); +}; -typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode); +struct fs_error_report { + int error; + struct inode *inode; + struct super_block *sb; +}; -typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *); +typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *); -typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *); +typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int); -typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *); +typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int); -struct itimerspec64; +typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int); -typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, unsigned long long); +typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int); -struct itimerspec64 { - struct timespec64 it_interval; - struct timespec64 it_value; -}; +typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lock *); -typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, unsigned long long); +typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lock *); -typedef void (*btf_trace_tick_stop)(void *, int, int); +typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lock *); -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]; -}; +typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lock *); -struct trace_event_raw_timer_class { - struct trace_entry ent; - void *timer; - char __data[0]; -}; +typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lock *); -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]; -}; +typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lock *); -struct trace_event_raw_timer_expire_entry { - struct trace_entry ent; - void *timer; - unsigned long now; - void *function; - unsigned long baseclk; - char __data[0]; -}; +typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lock *, struct file_lock *); -struct trace_event_raw_hrtimer_init { - struct trace_entry ent; - void *hrtimer; - clockid_t clockid; - enum hrtimer_mode mode; - char __data[0]; +struct file_lock_list_struct { + spinlock_t lock; + struct hlist_head hlist; }; -struct trace_event_raw_hrtimer_start { +struct trace_event_raw_locks_get_lock_context { struct trace_entry ent; - void *hrtimer; - void *function; - s64 expires; - s64 softexpires; - enum hrtimer_mode mode; + unsigned long i_ino; + dev_t s_dev; + unsigned char type; + struct file_lock_context *ctx; char __data[0]; }; -struct trace_event_raw_hrtimer_expire_entry { +struct trace_event_raw_filelock_lock { struct trace_entry ent; - void *hrtimer; - s64 now; - void *function; + 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_hrtimer_class { +struct trace_event_raw_filelock_lease { struct trace_entry ent; - void *hrtimer; + 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_itimer_state { +struct trace_event_raw_generic_add_lease { struct trace_entry ent; - int which; - unsigned long long expires; - long value_sec; - long value_nsec; - long interval_sec; - long interval_nsec; + 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_itimer_expire { +struct trace_event_raw_leases_conflict { struct trace_entry ent; - int which; - pid_t pid; - unsigned long long now; + 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 trace_event_raw_tick_stop { - struct trace_entry ent; - int success; - int dependency; - 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 process_timer { - struct timer_list timer; - struct task_struct *task; +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_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_locks_get_lock_context {}; -struct trace_event_data_offsets_hrtimer_expire_entry {}; +struct trace_event_data_offsets_filelock_lock {}; -struct trace_event_data_offsets_hrtimer_class {}; +struct trace_event_data_offsets_filelock_lease {}; -struct trace_event_data_offsets_itimer_state {}; +struct trace_event_data_offsets_generic_add_lease {}; -struct trace_event_data_offsets_itimer_expire {}; +struct trace_event_data_offsets_leases_conflict {}; -struct trace_event_data_offsets_tick_stop {}; +struct locks_iterator { + int li_cpu; + loff_t li_pos; +}; enum { - TRACE_NOP_OPT_ACCEPT = 1, - TRACE_NOP_OPT_REFUSE = 2, + BLOCK_BITMAP = 0, + INODE_BITMAP = 1, + INODE_TABLE = 2, + GROUP_TABLE_COUNT = 3, }; -enum cpu_pm_event { - CPU_PM_ENTER = 0, - CPU_PM_ENTER_FAILED = 1, - CPU_PM_EXIT = 2, - CPU_CLUSTER_PM_ENTER = 3, - CPU_CLUSTER_PM_ENTER_FAILED = 4, - CPU_CLUSTER_PM_EXIT = 5, +struct ext4_rcu_ptr { + struct callback_head rcu; + void *ptr; }; -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 ext4_new_group_data { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 mdata_blocks; + __u32 free_clusters_count; }; -struct bpf_kfunc_desc { - struct btf_func_model func_model; - u32 func_id; - s32 imm; - u16 offset; - unsigned long addr; +struct ext4_new_flex_group_data { + struct ext4_new_group_data *groups; + __u16 *bg_flags; + ext4_group_t count; }; -struct bpf_kfunc_desc_tab { - struct bpf_kfunc_desc descs[256]; - u32 nr_descs; +struct proc_nfs_info { + int flag; + const char *str; + const char *nostr; }; -struct bpf_kfunc_btf { - struct btf *btf; - struct module *module; - u16 offset; +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 bpf_kfunc_btf_tab { - struct bpf_kfunc_btf descs[256]; - u32 nr_descs; +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 bpf_reg_types { - const enum bpf_reg_type types[10]; - u32 *btf_id; +enum netloc_type4 { + NL4_NAME = 1, + NL4_URL = 2, + NL4_NETADDR = 3, }; -enum btf_func_linkage { - BTF_FUNC_STATIC = 0, - BTF_FUNC_GLOBAL = 1, - BTF_FUNC_EXTERN = 2, +struct nfs42_netaddr { + char netid[5]; + char addr[58]; + u32 netid_len; + u32 addr_len; }; -enum special_kfunc_type { - KF_bpf_obj_new_impl = 0, - KF_bpf_obj_drop_impl = 1, - KF_bpf_refcount_acquire_impl = 2, - KF_bpf_list_push_front_impl = 3, - KF_bpf_list_push_back_impl = 4, - KF_bpf_list_pop_front = 5, - KF_bpf_list_pop_back = 6, - KF_bpf_cast_to_kern_ctx = 7, - KF_bpf_rdonly_cast = 8, - KF_bpf_rcu_read_lock = 9, - KF_bpf_rcu_read_unlock = 10, - KF_bpf_rbtree_remove = 11, - KF_bpf_rbtree_add_impl = 12, - KF_bpf_rbtree_first = 13, - KF_bpf_dynptr_from_skb = 14, - KF_bpf_dynptr_from_xdp = 15, - KF_bpf_dynptr_slice = 16, - KF_bpf_dynptr_slice_rdwr = 17, - KF_bpf_dynptr_clone = 18, +struct nl4_server { + enum netloc_type4 nl4_type; + union { + struct { + int nl4_str_sz; + char nl4_str[1025]; + }; + struct nfs42_netaddr nl4_addr; + } u; }; -enum bpf_stack_slot_type { - STACK_INVALID = 0, - STACK_SPILL = 1, - STACK_MISC = 2, - STACK_ZERO = 3, - STACK_DYNPTR = 4, - STACK_ITER = 5, +struct nfs42_copy_notify_res { + struct nfs4_sequence_res cnr_seq_res; + struct nfstime4 cnr_lease_time; + nfs4_stateid cnr_stateid; + struct nl4_server cnr_src; }; -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 getdents_callback___2 { + struct dir_context ctx; + char *name; + u64 ino; + int found; + int sequence; }; -enum bpf_access_src { - ACCESS_DIRECT = 1, - ACCESS_HELPER = 2, +struct ipc_proc_iface { + const char *path; + const char *header; + int ids; + int (*show)(struct seq_file *, void *); }; -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 ipc_proc_iter { + struct ipc_namespace *ns; + struct pid_namespace *pid_ns; + struct ipc_proc_iface *iface; }; -enum { - DISCOVERED = 16, - EXPLORED = 32, - FALLTHROUGH = 1, - BRANCH = 2, -}; +struct selinux_policy; -enum { - DONE_EXPLORING = 0, - KEEP_EXPLORING = 1, +struct selinux_state { + bool enforcing; + bool initialized; + bool policycap[8]; + struct page *status_page; + struct mutex status_lock; + struct selinux_policy __attribute__((btf_type_tag("rcu"))) *policy; + struct mutex policy_mutex; }; -enum reg_arg_type { - SRC_OP = 0, - DST_OP = 1, - DST_OP_NO_MARK = 2, +struct selinux_mapping; + +struct selinux_map { + struct selinux_mapping *mapping; + u16 size; }; -enum { - REASON_BOUNDS = -1, - REASON_TYPE = -2, - REASON_PATHS = -3, - REASON_LIMIT = -4, - REASON_STACK = -5, +struct selinux_policy { + struct sidtab *sidtab; + struct policydb policydb; + struct selinux_map map; + u32 latest_granting; }; -enum kfunc_ptr_arg_type { - KF_ARG_PTR_TO_CTX = 0, - KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, - KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2, - KF_ARG_PTR_TO_DYNPTR = 3, - KF_ARG_PTR_TO_ITER = 4, - KF_ARG_PTR_TO_LIST_HEAD = 5, - KF_ARG_PTR_TO_LIST_NODE = 6, - KF_ARG_PTR_TO_BTF_ID = 7, - KF_ARG_PTR_TO_MEM = 8, - KF_ARG_PTR_TO_MEM_SIZE = 9, - KF_ARG_PTR_TO_CALLBACK = 10, - KF_ARG_PTR_TO_RB_ROOT = 11, - KF_ARG_PTR_TO_RB_NODE = 12, +union sctp_addr { + struct sockaddr_in v4; + struct sockaddr_in6 v6; + struct sockaddr sa; }; -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, +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]; }; -enum { - BTF_TRACING_TYPE_TASK = 0, - BTF_TRACING_TYPE_FILE = 1, - BTF_TRACING_TYPE_VMA = 2, - MAX_BTF_TRACING_TYPE = 3, +struct sctp_inithdr_host { + __u32 init_tag; + __u32 a_rwnd; + __u16 num_outbound_streams; + __u16 num_inbound_streams; + __u32 initial_tsn; }; -enum { - AT_PKT_END = -1, - BEYOND_PKT_END = -2, +enum sctp_endpoint_type { + SCTP_EP_TYPE_SOCKET = 0, + SCTP_EP_TYPE_ASSOCIATION = 1, }; -enum { - BPF_MAX_LOOPS = 8388608, +struct sctp_chunk; + +struct sctp_inq { + struct list_head in_chunk_list; + struct sctp_chunk *in_progress; + struct work_struct immediate; }; -struct bpf_iter_meta__safe_trusted { - struct seq_file *seq; +struct sctp_bind_addr { + __u16 port; + struct list_head address_list; }; -struct bpf_iter__task__safe_trusted { - struct bpf_iter_meta *meta; - struct task_struct *task; +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; }; -struct linux_binprm__safe_trusted { - struct file *file; +typedef __s32 sctp_assoc_t; + +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 file__safe_trusted { - struct inode *f_inode; +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, }; -struct dentry__safe_trusted { - struct inode *d_inode; -}; +struct sctp_stream_out_ext; -struct socket__safe_trusted { - struct sock *sk; +struct sctp_stream_out { + union { + __u32 mid; + __u16 ssn; + }; + __u32 mid_uo; + struct sctp_stream_out_ext *ext; + __u8 state; }; -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 sctp_stream_in { + union { + __u32 mid; + __u16 ssn; + }; + __u32 mid_uo; + __u32 fsn; + __u32 fsn_uo; + char pd_mode; + char pd_mode_uo; }; -struct cgroup__safe_rcu { - struct kernfs_node *kn; -}; +struct sctp_stream_interleave; -struct css_set__safe_rcu { - struct cgroup *dfl_cgrp; +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 { + struct list_head fc_list; + }; + }; + struct sctp_stream_interleave *si; }; -struct mm_struct__safe_rcu_or_null { - struct file __attribute__((btf_type_tag("rcu"))) *exe_file; -}; +struct sctp_sched_ops; -struct sk_buff__safe_rcu_or_null { - struct sock *sk; +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 request_sock__safe_rcu_or_null { - struct sock *sk; +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 btf_member { - __u32 name_off; - __u32 type; - __u32 offset; +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 btf_var_secinfo { - __u32 type; - __u32 offset; - __u32 size; -}; +struct sctp_endpoint; -struct btf_array { - __u32 type; - __u32 index_type; - __u32 nelems; -}; +struct sctp_transport; -struct bpf_iter; +struct sctp_random_param; -typedef void (*bpf_insn_print_t)(void *, const char *, ...); +struct sctp_chunks_param; -typedef const char * (*bpf_insn_revmap_call_t)(void *, const struct bpf_insn *); +struct sctp_hmac_algo_param; -typedef const char * (*bpf_insn_print_imm_t)(void *, const struct bpf_insn *, __u64); +struct sctp_auth_bytes; -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 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 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; }; -typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); +struct sctp_paramhdr; -struct bpf_core_relo { - __u32 insn_off; - __u32 type_id; - __u32 access_str_off; - enum bpf_core_relo_kind kind; -}; +struct sctp_cookie_preserve_param; -struct bpf_core_ctx { - struct bpf_verifier_log *log; - const struct btf *btf; -}; +struct sctp_hostname_param; -struct bpf_struct_ops { - const struct bpf_verifier_ops *verifier_ops; - int (*init)(struct btf *); - int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *); - int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); - int (*reg)(void *); - void (*unreg)(void *); - int (*update)(void *, void *); - int (*validate)(void *); - 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; -}; +struct sctp_cookie_param; -struct bpf_kfunc_call_arg_meta { - struct btf *btf; - u32 func_id; - u32 kfunc_flags; - const struct btf_type *func_proto; - const char *func_name; - u32 ref_obj_id; - u8 release_regno; - bool r0_rdonly; - u32 ret_btf_id; - u64 r0_size; - u32 subprogno; - struct { - u64 value; - bool found; - } arg_constant; - struct btf *arg_btf; - u32 arg_btf_id; - bool arg_owning_ref; - struct { - struct btf_field *field; - } arg_list_head; - struct { - struct btf_field *field; - } arg_rbtree_root; - struct { - enum bpf_dynptr_type type; - u32 id; - u32 ref_obj_id; - } initialized_dynptr; - struct { - u8 spi; - u8 frameno; - } iter; - u64 mem_size; -}; +struct sctp_supported_addrs_param; -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 sctp_ipv4addr_param; -struct bpf_sanitize_info { - struct bpf_insn_aux_data aux; - bool mask_to_left; -}; +struct sctp_ipv6addr_param; -typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); +union sctp_addr_param; -struct dma_page { - struct list_head page_list; - void *vaddr; - dma_addr_t dma; -}; +struct sctp_adaptation_ind_param; -struct dma_block; +struct sctp_supported_ext_param; -struct dma_pool { - struct list_head page_list; - spinlock_t lock; - struct dma_block *next_block; - size_t nr_blocks; - size_t nr_active; - size_t nr_pages; - struct device *dev; - unsigned int size; - unsigned int allocation; - unsigned int boundary; - char name[32]; - struct list_head pools; -}; +struct sctp_addip_param; -struct dma_block { - struct dma_block *next_block; - dma_addr_t dma; +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 files_stat_struct { - unsigned long nr_files; - unsigned long nr_free_files; - unsigned long max_files; +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 backing_file { - struct file file; - struct path real_path; -}; +struct sctp_datahdr; -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 sctp_inithdr; -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, -}; +struct sctp_sackhdr; -typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); +struct sctp_heartbeathdr; -struct fd_data { - fmode_t mode; - unsigned int fd; -}; +struct sctp_sender_hb_info; -struct kernfs_global_locks { - struct mutex open_file_mutex[1024]; -}; +struct sctp_shutdownhdr; -struct kernfs_super_info { - struct super_block *sb; - struct kernfs_root *root; - const void *ns; - struct list_head node; -}; +struct sctp_signed_cookie; -struct ext4_dir_entry_2 { - __le32 inode; - __le16 rec_len; - __u8 name_len; - __u8 file_type; - char name[255]; -}; +struct sctp_ecnehdr; -struct ext4_dir_entry_hash { - __le32 hash; - __le32 minor_hash; -}; +struct sctp_cwrhdr; -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 sctp_errhdr; -struct ext4_xattr_info { - const char *name; - const void *value; - size_t value_len; - int name_index; - int in_inode; -}; +struct sctp_addiphdr; -struct ext4_xattr_search { - struct ext4_xattr_entry *first; - void *base; - void *end; - struct ext4_xattr_entry *here; - int not_found; -}; +struct sctp_fwdtsn_hdr; + +struct sctp_authhdr; + +struct sctp_idatahdr; + +struct sctp_ifwdtsn_hdr; -struct ext4_xattr_ibody_find { - struct ext4_xattr_search s; - struct ext4_iloc iloc; -}; +struct sctp_chunkhdr; -struct fscrypt_str { - unsigned char *name; - u32 len; -}; +struct sctp_datamsg; -struct ext4_filename { - const struct qstr *usr_fname; - struct fscrypt_str disk_name; - struct dx_hash_info hinfo; +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; }; -enum nfs_ftype { - NFNON = 0, - NFREG = 1, - NFDIR = 2, - NFBLK = 3, - NFCHR = 4, - NFLNK = 5, - NFSOCK = 6, - NFBAD = 7, - NFFIFO = 8, +struct sctp_shared_key { + struct list_head key_list; + struct sctp_auth_bytes *key; + refcount_t refcnt; + __u16 key_id; + __u8 deactivated; }; -enum nfs2_ftype { - NF2NON = 0, - NF2REG = 1, - NF2DIR = 2, - NF2BLK = 3, - NF2CHR = 4, - NF2LNK = 5, - NF2SOCK = 6, - NF2BAD = 7, - NF2FIFO = 8, +struct sctp_auth_bytes { + refcount_t refcnt; + __u32 len; + __u8 data[0]; }; -struct nfs_diropok { - struct nfs_fh *fh; - struct nfs_fattr *fattr; +struct sctp_paramhdr { + __be16 type; + __be16 length; }; -struct nfs_readdirargs { - struct nfs_fh *fh; - __u32 cookie; - unsigned int count; - struct page **pages; +struct sctp_cookie_preserve_param { + struct sctp_paramhdr param_hdr; + __be32 lifespan_increment; }; -struct nfs2_fsstat { - __u32 tsize; - __u32 bsize; - __u32 blocks; - __u32 bfree; - __u32 bavail; +struct sctp_hostname_param { + struct sctp_paramhdr param_hdr; + uint8_t hostname[0]; }; -struct nfs_sattrargs { - struct nfs_fh *fh; - struct iattr *sattr; +struct sctp_cookie_param { + struct sctp_paramhdr p; + __u8 body[0]; }; -struct nfs_diropargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; +struct sctp_supported_addrs_param { + struct sctp_paramhdr param_hdr; + __be16 types[0]; }; -struct nfs_readlinkargs { - struct nfs_fh *fh; - unsigned int pgbase; - unsigned int pglen; - struct page **pages; +struct sctp_ipv4addr_param { + struct sctp_paramhdr param_hdr; + struct in_addr addr; }; -struct nfs_createargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; - struct iattr *sattr; +struct sctp_ipv6addr_param { + struct sctp_paramhdr param_hdr; + struct in6_addr addr; }; -struct nfs_linkargs { - struct nfs_fh *fromfh; - struct nfs_fh *tofh; - const char *toname; - unsigned int tolen; +union sctp_addr_param { + struct sctp_paramhdr p; + struct sctp_ipv4addr_param v4; + struct sctp_ipv6addr_param v6; }; -struct nfs_symlinkargs { - struct nfs_fh *fromfh; - const char *fromname; - unsigned int fromlen; - struct page **pages; - unsigned int pathlen; - struct iattr *sattr; +struct sctp_adaptation_ind_param { + struct sctp_paramhdr param_hdr; + __be32 adaptation_ind; }; -struct getdents_callback { - struct dir_context ctx; - char *name; - u64 ino; - int found; - int sequence; +struct sctp_supported_ext_param { + struct sctp_paramhdr param_hdr; + __u8 chunks[0]; }; -enum { - NSMPROC_NULL = 0, - NSMPROC_STAT = 1, - NSMPROC_MON = 2, - NSMPROC_UNMON = 3, - NSMPROC_UNMON_ALL = 4, - NSMPROC_SIMU_CRASH = 5, - NSMPROC_NOTIFY = 6, +struct sctp_random_param { + struct sctp_paramhdr param_hdr; + __u8 random_val[0]; }; -struct nsm_args { - struct nsm_private *priv; - u32 prog; - u32 vers; - u32 proc; - char *mon_name; - const char *nodename; +struct sctp_chunks_param { + struct sctp_paramhdr param_hdr; + __u8 chunks[0]; }; -struct nsm_res { - u32 status; - u32 state; +struct sctp_hmac_algo_param { + struct sctp_paramhdr param_hdr; + __be16 hmac_ids[0]; }; -enum prep_dispatch { - PREP_DISPATCH_OK = 0, - PREP_DISPATCH_NO_TAG = 1, - PREP_DISPATCH_NO_BUDGET = 2, +struct sctp_addip_param { + struct sctp_paramhdr param_hdr; + __be32 crr_id; }; -struct blk_mq_qe_pair { - struct list_head node; - struct request_queue *q; - struct elevator_type *type; +struct sctp_datahdr { + __be32 tsn; + __be16 stream; + __be16 ssn; + __u32 ppid; }; -struct flush_busy_ctx_data { - struct blk_mq_hw_ctx *hctx; - struct list_head *list; +struct sctp_inithdr { + __be32 init_tag; + __be32 a_rwnd; + __be16 num_outbound_streams; + __be16 num_inbound_streams; + __be32 initial_tsn; }; -struct dispatch_rq_data { - struct blk_mq_hw_ctx *hctx; - struct request *rq; +struct sctp_sackhdr { + __be32 cum_tsn_ack; + __be32 a_rwnd; + __be16 num_gap_ack_blocks; + __be16 num_dup_tsns; }; -struct blk_expired_data { - bool has_timedout_rq; - unsigned long next; - unsigned long timeout_start; +struct sctp_heartbeathdr { + struct sctp_paramhdr info; }; -struct rq_iter_data { - struct blk_mq_hw_ctx *hctx; - bool has_rq; +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 mq_inflight { - struct block_device *part; - unsigned int inflight[2]; +struct sctp_shutdownhdr { + __be32 cum_tsn_ack; }; -struct blk_rq_wait { - struct completion done; - blk_status_t ret; -}; +struct sctp_signed_cookie { + __u8 signature[32]; + __u32 __pad; + struct sctp_cookie c; +} __attribute__((packed)); -enum { - PERCPU_REF_INIT_ATOMIC = 1, - PERCPU_REF_INIT_DEAD = 2, - PERCPU_REF_ALLOW_REINIT = 4, +struct sctp_ecnehdr { + __be32 lowest_tsn; }; -enum pci_interrupt_pin { - PCI_INTERRUPT_UNKNOWN = 0, - PCI_INTERRUPT_INTA = 1, - PCI_INTERRUPT_INTB = 2, - PCI_INTERRUPT_INTC = 3, - PCI_INTERRUPT_INTD = 4, +struct sctp_cwrhdr { + __be32 lowest_tsn; }; -struct xilinx_pcie { - struct device *dev; - void *reg_base; - unsigned long msi_map[2]; - struct mutex map_lock; - struct irq_domain *msi_domain; - struct irq_domain *leg_domain; - struct list_head resources; +struct sctp_errhdr { + __be16 cause; + __be16 length; }; -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 sctp_addiphdr { + __be32 serial; }; -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, +struct sctp_fwdtsn_hdr { + __be32 new_cum_tsn; }; -struct acpi_dep_data { - struct list_head node; - acpi_handle supplier; - acpi_handle consumer; - bool honor_dep; - bool met; - bool free_when_met; +struct sctp_authhdr { + __be16 shkey_id; + __be16 hmac_id; }; -struct acpi_scan_clear_dep_work { - struct work_struct work; - struct acpi_device *adev; +struct sctp_idatahdr { + __be32 tsn; + __be16 stream; + __be16 reserved; + __be32 mid; + union { + __u32 ppid; + __be32 fsn; + }; + __u8 payload[0]; }; -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 sctp_ifwdtsn_hdr { + __be32 new_cum_tsn; }; -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)); - -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 sctp_chunkhdr { + __u8 type; + __u8 flags; + __be16 length; }; -struct acpi_driver { - char name[80]; - char class[80]; - const struct acpi_device_id *ids; - unsigned int flags; - struct acpi_device_ops ops; - struct device_driver drv; - struct module *owner; +struct 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; }; -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, +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; }; -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, +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; }; -enum power_supply_usb_type { - POWER_SUPPLY_USB_TYPE_UNKNOWN = 0, - POWER_SUPPLY_USB_TYPE_SDP = 1, - POWER_SUPPLY_USB_TYPE_DCP = 2, - POWER_SUPPLY_USB_TYPE_CDP = 3, - POWER_SUPPLY_USB_TYPE_ACA = 4, - POWER_SUPPLY_USB_TYPE_C = 5, - POWER_SUPPLY_USB_TYPE_PD = 6, - POWER_SUPPLY_USB_TYPE_PD_DRP = 7, - POWER_SUPPLY_USB_TYPE_PD_PPS = 8, - POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID = 9, +enum sctp_scope { + SCTP_SCOPE_GLOBAL = 0, + SCTP_SCOPE_PRIVATE = 1, + SCTP_SCOPE_LINK = 2, + SCTP_SCOPE_LOOPBACK = 3, + SCTP_SCOPE_UNUSABLE = 4, }; -struct power_supply; +struct sctp_sock; -union power_supply_propval; +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 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; +enum sctp_socket_type { + SCTP_SOCKET_UDP = 0, + SCTP_SOCKET_UDP_HIGH_BANDWIDTH = 1, + SCTP_SOCKET_TCP = 2, }; -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 sctp_rtoinfo { + sctp_assoc_t srto_assoc_id; + __u32 srto_initial; + __u32 srto_max; + __u32 srto_min; }; -struct power_supply_battery_info; +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; + int: 0; +} __attribute__((packed)); -struct power_supply { - const struct power_supply_desc *desc; - char **supplied_to; - size_t num_supplicants; - char **supplied_from; - size_t num_supplies; - struct device_node *of_node; - void *drv_data; - struct device dev; - struct work_struct changed_work; - struct delayed_work deferred_register_work; - spinlock_t changed_lock; - bool changed; - bool initialized; - bool removing; - atomic_t use_cnt; - struct power_supply_battery_info *battery_info; - struct thermal_zone_device *tzd; - struct thermal_cooling_device *tcd; +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; }; -union power_supply_propval { - int intval; - const char *strval; +struct sctp_initmsg { + __u16 sinit_num_ostreams; + __u16 sinit_max_instreams; + __u16 sinit_max_attempts; + __u16 sinit_max_init_timeo; }; -struct power_supply_maintenance_charge_table; +struct sctp_pf; -struct power_supply_battery_ocv_table; +struct sctp_bind_bucket; -struct power_supply_resistance_temp_table; +struct sctp_sock { + struct inet_sock inet; + enum sctp_socket_type type; + 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; + __u32 default_ppid; + __u16 default_flags; + __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; + __u32 flowlabel; + __u8 dscp; + __u16 pf_retrans; + __u16 ps_retrans; + __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; + 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; + atomic_t pd_mode; + struct sk_buff_head pd_lobby; + struct list_head auto_asconf_list; + int do_auto_asconf; +}; -struct power_supply_vbat_ri_table; +struct sctp_ulpevent; -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 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 power_supply_maintenance_charge_table { - int charge_current_max_ua; - int charge_voltage_max_uv; - int charge_safety_timer_minutes; -}; +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 power_supply_battery_ocv_table { - int ocv; - int capacity; +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 power_supply_resistance_temp_table { - int temp; - int resistance; +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 power_supply_vbat_ri_table { - int vbat_uv; - int ri_uohm; -}; +struct sctp_stream_priorities; -struct acpi_bus_event { - struct list_head node; - acpi_device_class device_class; - acpi_bus_id bus_id; - u32 type; - u32 data; +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 { + struct list_head fc_list; + __u32 fc_length; + __u16 fc_weight; + }; + }; }; -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 sctp_stream_priorities { + struct list_head prio_sched; + struct list_head active; + struct sctp_stream_out_ext *next; + __u16 prio; + __u16 users; }; -struct ccu_div { - u32 enable; - struct ccu_div_internal div; - struct ccu_mux_internal mux; - struct ccu_common common; - unsigned int fixed_post_div; +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 renesas_family; - -struct renesas_soc { - const struct renesas_family *family; - u32 id; +enum label_initialized { + LABEL_INVALID = 0, + LABEL_INITIALIZED = 1, + LABEL_PENDING = 2, }; -struct renesas_family { - const char name[16]; - u32 reg; +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 renesas_id { - unsigned int offset; - u32 mask; +struct sk_security_struct { + u32 sid; + u32 peer_sid; + u16 sclass; + enum { + SCTP_ASSOC_UNSET = 0, + SCTP_ASSOC_SET = 1, + } sctp_assoc_state; }; -struct reset_simple_devdata { - u32 reg_offset; - u32 nr_resets; - bool active_low; - bool status_active_low; +enum { + Opt_error = -1, + Opt_context = 0, + Opt_defcontext = 1, + Opt_fscontext = 2, + Opt_rootcontext = 3, + Opt_seclabel = 4, }; -struct reset_simple_data { - spinlock_t lock; - void *membase; - struct reset_controller_dev rcdev; - bool active_low; - bool status_active_low; - unsigned int reset_us; +enum lsm_event { + LSM_POLICY_CHANGE = 0, }; -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 inode_security_struct { + struct inode *inode; + struct list_head list; + u32 task_sid; + u32 sid; + u16 sclass; + unsigned char initialized; + spinlock_t lock; }; -struct exar8250 { - unsigned int nr; - struct exar8250_board *board; - void *virt; - int line[0]; +struct task_security_struct { + u32 osid; + u32 sid; + u32 exec_sid; + u32 create_sid; + u32 keycreate_sid; + u32 sockcreate_sid; }; -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 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 container_dev { - struct device dev; - int (*offline)(struct container_dev *); +struct file_security_struct { + u32 sid; + u32 fown_sid; + u32 isid; + u32 pseqno; }; -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, +struct bpf_security_struct { + u32 sid; }; -enum msi_domain_ids { - MSI_DEFAULT_DOMAIN = 0, - MSI_SECONDARY_DOMAIN = 1, - MSI_MAX_DEVICE_IRQDOMAINS = 2, +struct ipc_security_struct { + u16 sclass; + u32 sid; }; -typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); +struct msg_security_struct { + u32 sid; +}; -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 selinux_mnt_opts { + u32 fscontext_sid; + u32 context_sid; + u32 rootcontext_sid; + u32 defcontext_sid; }; -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 tun_security_struct { + u32 sid; }; -struct scsi_proc_entry { - struct list_head entry; - const struct scsi_host_template *sht; - struct proc_dir_entry *proc_dir; - unsigned int present; +struct key_security_struct { + u32 sid; }; -struct swmii_regs { - u16 bmsr; - u16 lpa; - u16 lpagb; - u16 estat; +struct perf_event_security_struct { + u32 sid; }; -enum { - SWMII_SPEED_10 = 0, - SWMII_SPEED_100 = 1, - SWMII_SPEED_1000 = 2, - SWMII_DUPLEX_HALF = 0, - SWMII_DUPLEX_FULL = 1, +struct rsa_asn1_template { + const char *name; + const u8 *data; + size_t size; }; -struct fixed_phy_status { - int link; - int speed; - int duplex; - int pause; - int asym_pause; +struct pkcs1pad_inst_ctx { + struct crypto_akcipher_spawn spawn; + const struct rsa_asn1_template *digest_info; }; -struct fixed_mdio_bus { - struct mii_bus *mii_bus; - struct list_head phys; +struct pkcs1pad_ctx { + struct crypto_akcipher *child; + unsigned int key_size; }; -struct fixed_phy { - int addr; - struct phy_device *phydev; - struct fixed_phy_status status; - bool no_carrier; - int (*link_update)(struct net_device *, struct fixed_phy_status *); - struct list_head node; - struct gpio_desc *link_gpiod; +struct pkcs1pad_request { + struct scatterlist in_sg[2]; + struct scatterlist out_sg[1]; + uint8_t *in_buf; + uint8_t *out_buf; + struct akcipher_request child_req; }; -struct usb_class { - struct kref kref; - struct class *class; +enum { + ICQ_EXITED = 4, + ICQ_DESTROYED = 8, }; -struct usb_class_driver { - char *name; - char * (*devnode)(const struct device *, umode_t *); - const struct file_operations *fops; - int minor_base; +struct sg_io_v4; + +typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, 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; }; -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 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 amd_chipset_type { - enum amd_chipset_gen gen; - u8 rev; +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 amd_chipset_info { - struct pci_dev *nb_dev; - struct pci_dev *smbus_dev; - int nb_type; - struct amd_chipset_type sb_type; - int isoc_reqs; - int probe_count; - bool need_pll_quirk; +enum 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, }; -typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *); +enum asn1_method { + ASN1_PRIM = 0, + ASN1_CONS = 1, +}; -typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, unsigned long); +struct acpi_probe_entry; -typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type); +typedef bool (*acpi_probe_entry_validate_subtbl)(struct acpi_subtable_header *, struct acpi_probe_entry *); -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 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 trace_event_raw_cdev_update { - struct trace_entry ent; - u32 __data_loc_type; - unsigned long target; - char __data[0]; +enum dw_pcie_app_clk { + DW_PCIE_DBI_CLK = 0, + DW_PCIE_MSTR_CLK = 1, + DW_PCIE_SLV_CLK = 2, + DW_PCIE_NUM_APP_CLKS = 3, }; -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]; +enum dw_pcie_core_clk { + DW_PCIE_PIPE_CLK = 0, + DW_PCIE_CORE_CLK = 1, + DW_PCIE_AUX_CLK = 2, + DW_PCIE_REF_CLK = 3, + DW_PCIE_NUM_CORE_CLKS = 4, }; -struct trace_event_data_offsets_thermal_temperature { - u32 thermal_zone; +enum dw_pcie_app_rst { + DW_PCIE_DBI_RST = 0, + DW_PCIE_MSTR_RST = 1, + DW_PCIE_SLV_RST = 2, + DW_PCIE_NUM_APP_RSTS = 3, }; -struct trace_event_data_offsets_cdev_update { - u32 type; +enum dw_pcie_core_rst { + DW_PCIE_NON_STICKY_RST = 0, + DW_PCIE_STICKY_RST = 1, + DW_PCIE_CORE_RST = 2, + DW_PCIE_PIPE_RST = 3, + DW_PCIE_PHY_RST = 4, + DW_PCIE_HOT_RST = 5, + DW_PCIE_PWR_RST = 6, + DW_PCIE_NUM_CORE_RSTS = 7, }; -struct trace_event_data_offsets_thermal_zone_trip { - u32 thermal_zone; +enum dw_edma_chip_flags { + DW_EDMA_CHIP_LOCAL = 1, }; -enum tcpa_event_types { - PREBOOT = 0, - POST_CODE = 1, - UNUSED = 2, - NO_ACTION = 3, - SEPARATOR = 4, - ACTION = 5, - EVENT_TAG = 6, - SCRTM_CONTENTS = 7, - SCRTM_VERSION = 8, - CPU_MICROCODE = 9, - PLATFORM_CONFIG_FLAGS = 10, - TABLE_OF_DEVICES = 11, - COMPACT_HASH = 12, - IPL = 13, - IPL_PARTITION_DATA = 14, - NONHOST_CODE = 15, - NONHOST_CONFIG = 16, - NONHOST_INFO = 17, +struct acpi_table_madt { + struct acpi_table_header header; + u32 address; + u32 flags; }; -struct tpm_digest { - u16 alg_id; - u8 digest[64]; +enum acpi_ec_event_state { + EC_EVENT_READY = 0, + EC_EVENT_IN_PROGRESS = 1, + EC_EVENT_COMPLETE = 2, }; -struct tcg_pcr_event2_head { - u32 pcr_idx; - u32 event_type; - u32 count; - struct tpm_digest digests[0]; -}; +struct transaction; -struct tcg_efi_specid_event_algs { - u16 alg_id; - u16 digest_size; +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 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 transaction { + const u8 *wdata; + u8 *rdata; + unsigned short irq_count; + u8 command; + u8 wi; + u8 ri; + u8 wlen; + u8 rlen; + u8 flags; }; -struct tcg_event_field { - u32 event_size; - u8 event[0]; +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, }; -struct tcg_pcr_event { - u32 pcr_idx; - u32 event_type; - u8 digest[20]; - u32 event_size; - u8 event[0]; +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, }; -struct linux_efi_tpm_eventlog { - u32 size; - u32 final_events_preboot_size; - u8 version; - u8 log[0]; -}; +typedef int (*acpi_ec_query_func)(void *); -struct efi_tcg2_final_events_table { - u64 version; - u64 nr_events; - u8 events[0]; +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 efi_system_resource_table { - u32 fw_resource_count; - u32 fw_resource_count_max; - u64 fw_resource_version; - u8 entries[0]; +struct acpi_ec_query { + struct transaction transaction; + struct work_struct work; + struct acpi_ec_query_handler *handler; + struct acpi_ec *ec; }; -struct esre_entry; +struct acpi_table_ecdt { + struct acpi_table_header header; + struct acpi_generic_address control; + struct acpi_generic_address data; + u32 uid; + u8 gpe; + u8 id[0]; +} __attribute__((packed)); -struct esre_attribute { - struct attribute attr; - ssize_t (*show)(struct esre_entry *, char *); - ssize_t (*store)(struct esre_entry *, const char *, size_t); +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 efi_system_resource_entry_v1; +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 esre_entry { - union { - struct efi_system_resource_entry_v1 *esre1; - } esre; - struct kobject kobj; - struct list_head list; +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 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 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 of_bus { - const char *name; - const char *addresses; - int (*match)(struct device_node *); - void (*count_cells)(struct device_node *, int *, int *); - u64 (*map)(__be32 *, const __be32 *, int, int, int); - int (*translate)(__be32 *, u64, int); - bool has_flags; - unsigned int (*get_flags)(const __be32 *); +struct wrpll_cfg { + u8 divr; + u8 divq; + u8 range; + u8 flags; + u16 divf; + u32 output_rate_cache[6]; + unsigned long parent_rate; + u8 max_r; + u8 init_r; }; -enum hwtstamp_flags { - HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1, - HWTSTAMP_FLAG_LAST = 1, - HWTSTAMP_FLAG_MASK = 1, +struct debugfs_reg32 { + char *name; + unsigned long offset; }; -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 debugfs_regset32 { + const struct debugfs_reg32 *regs; + int nregs; + void *base; + struct device *dev; }; -struct kernel_hwtstamp_config { - int flags; - int tx_type; - int rx_filter; +struct jh7110_reset_info { + unsigned int nr_resets; + unsigned int assert_offset; + unsigned int status_offset; }; -struct compat_ifconf { - compat_int_t ifc_len; - compat_caddr_t ifcbuf; +struct anon_transport_class { + struct transport_class tclass; + struct attribute_container container; }; -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 gpd_link { + struct generic_pm_domain *parent; + struct list_head parent_node; + struct generic_pm_domain *child; + struct list_head child_node; + unsigned int performance_state; + unsigned int prev_performance_state; }; -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 gpd_timing_data; -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; +struct generic_pm_domain_data { + struct pm_domain_data base; + struct gpd_timing_data *td; + struct notifier_block nb; + struct notifier_block *power_nb; + int cpu; + unsigned int performance_state; + unsigned int default_pstate; + unsigned int rpm_pstate; + void *data; }; -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, +struct gpd_timing_data { + s64 suspend_latency_ns; + s64 resume_latency_ns; + s64 effective_constraint_ns; + ktime_t next_wakeup; + bool constraint_changed; + bool cached_suspend_ok; }; -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, +struct scsi_varlen_cdb_hdr { + __u8 opcode; + __u8 control; + __u8 misc[5]; + __u8 additional_cdb_length; + __be16 service_action; }; -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, +struct ata_timing { + unsigned short mode; + unsigned short setup; + unsigned short act8b; + unsigned short rec8b; + unsigned short cyc8b; + unsigned short active; + unsigned short recover; + unsigned short dmack_hold; + unsigned short cycle; + unsigned short udma; }; -enum { - 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, +struct usb_class_driver { + char *name; + char * (*devnode)(const struct device *, umode_t *); + const struct file_operations *fops; + int minor_base; }; -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, +struct ohci_driver_overrides { + const char *product_desc; + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); }; -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, +struct usb_ohci_pdata { + unsigned int big_endian_desc: 1; + unsigned int big_endian_mmio: 1; + unsigned int no_big_frame_no: 1; + unsigned int num_ports; + int (*power_on)(struct platform_device *); + void (*power_off)(struct platform_device *); + void (*power_suspend)(struct platform_device *); }; -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 ohci_rh_state { + OHCI_RH_HALTED = 0, + OHCI_RH_SUSPENDED = 1, + OHCI_RH_RUNNING = 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, +struct ohci_platform_priv { + struct clk *clks[4]; + struct reset_control *resets; }; -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, +struct ohci_regs; + +struct ohci_hcca; + +struct ed; + +struct td; + +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]; }; -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, +typedef __u32 __hc32; + +struct ohci_roothub_regs { + __hc32 a; + __hc32 b; + __hc32 status; + __hc32 portstatus[15]; }; -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, +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; }; -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, +struct ohci_hcca { + __hc32 int_table[32]; + __hc32 frame_no; + __hc32 done_head; + u8 reserved_for_hc[116]; + u8 what[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, +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; }; -struct tcp_metrics_block; +typedef __u16 __hc16; -struct tcpm_hash_bucket { - struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *chain; +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 tcp_fastopen_metrics { - u16 mss; - u16 syn_loss: 10; - u16 try_exp: 2; - unsigned long last_syn_loss; - struct tcp_fastopen_cookie cookie; +struct usb_udc { + struct usb_gadget_driver *driver; + struct usb_gadget *gadget; + struct device dev; + struct list_head list; + bool vbus; + bool started; + bool allow_connect; + struct work_struct vbus_work; + struct mutex connect_lock; }; -struct tcp_metrics_block { - struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *tcpm_next; - struct net *tcpm_net; - struct inetpeer_addr tcpm_saddr; - struct inetpeer_addr tcpm_daddr; - unsigned long tcpm_stamp; - u32 tcpm_lock; - u32 tcpm_vals[5]; - struct tcp_fastopen_metrics tcpm_fastopen; - struct callback_head callback_head; -}; +struct mmc_spi_platform_data; -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, +struct scratch; + +struct mmc_spi_host { + struct mmc_host *mmc; + struct spi_device *spi; + unsigned char power_mode; + u16 powerup_msecs; + struct mmc_spi_platform_data *pdata; + struct spi_transfer token; + struct spi_transfer t; + struct spi_transfer crc; + struct spi_transfer early_status; + struct spi_message m; + struct spi_transfer status; + struct spi_message readback; + struct device *dma_dev; + struct scratch *data; + dma_addr_t data_dma; + void *ones; + dma_addr_t ones_dma; }; -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, +struct mmc_spi_platform_data { + int (*init)(struct device *, irqreturn_t (*)(int, void *), void *); + void (*exit)(struct device *, void *); + unsigned long caps; + unsigned long caps2; + u16 detect_delay; + u16 powerup_msecs; + u32 ocr_mask; + void (*setpower)(struct device *, unsigned int); }; -enum { - TCP_METRICS_CMD_UNSPEC = 0, - TCP_METRICS_CMD_GET = 1, - TCP_METRICS_CMD_DEL = 2, - __TCP_METRICS_CMD_MAX = 3, +struct scratch { + u8 status[29]; + u8 data_token; + __be16 crc_val; }; -enum { - UDP_BPF_IPV4 = 0, - UDP_BPF_IPV6 = 1, - UDP_BPF_NUM_PROTS = 2, +struct efi { + const efi_runtime_services_t *runtime; + unsigned int runtime_version; + unsigned int runtime_supported_mask; + unsigned long acpi; + unsigned long acpi20; + unsigned long smbios; + unsigned long smbios3; + unsigned long esrt; + unsigned long tpm_log; + unsigned long tpm_final_log; + unsigned long mokvar_table; + unsigned long coco_secret; + unsigned long unaccepted; + efi_get_time_t *get_time; + efi_set_time_t *set_time; + efi_get_wakeup_time_t *get_wakeup_time; + efi_set_wakeup_time_t *set_wakeup_time; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_info_t *query_variable_info; + efi_query_variable_info_t *query_variable_info_nonblocking; + efi_update_capsule_t *update_capsule; + efi_query_capsule_caps_t *query_capsule_caps; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; + struct efi_memory_map memmap; + unsigned long flags; }; -typedef void (*btf_trace_handshake_submit)(void *, const struct net *, const struct handshake_req *, const struct sock *); +struct linux_efi_memreserve { + int size; + atomic_t count; + phys_addr_t next; + struct { + phys_addr_t base; + phys_addr_t size; + } entry[0]; +}; -typedef void (*btf_trace_handshake_submit_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef efi_status_t efi_query_variable_store_t(u32, unsigned long, bool); -typedef void (*btf_trace_handshake_cancel)(void *, const struct net *, const struct handshake_req *, const struct sock *); +struct efivar_operations { + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_store_t *query_variable_store; + efi_query_variable_info_t *query_variable_info; +}; -typedef void (*btf_trace_handshake_cancel_none)(void *, const struct net *, const struct handshake_req *, const struct sock *); +struct efivars { + struct kset *kset; + const struct efivar_operations *ops; +}; -typedef void (*btf_trace_handshake_cancel_busy)(void *, const struct net *, const struct handshake_req *, const struct sock *); +struct debugfs_blob_wrapper { + void *data; + unsigned long size; +}; -typedef void (*btf_trace_handshake_destruct)(void *, const struct net *, const struct handshake_req *, const struct sock *); +typedef struct { + efi_guid_t guid; + u64 table; +} efi_config_table_64_t; -typedef void (*btf_trace_handshake_complete)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +struct linux_efi_random_seed { + u32 size; + u8 bits[0]; +}; -typedef void (*btf_trace_handshake_notify_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef struct { + u16 version; + u16 length; + u32 runtime_services_supported; +} efi_rt_properties_table_t; -typedef void (*btf_trace_handshake_cmd_accept)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +struct of_timer_base { + void *base; + const char *name; + int index; +}; -typedef void (*btf_trace_handshake_cmd_accept_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +struct of_timer_irq { + int irq; + int index; + int percpu; + const char *name; + unsigned long flags; + irq_handler_t handler; +}; -typedef void (*btf_trace_handshake_cmd_done)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +struct of_timer_clk { + struct clk *clk; + const char *name; + int index; + unsigned long rate; + unsigned long period; +}; -typedef void (*btf_trace_handshake_cmd_done_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +struct timer_of { + unsigned int flags; + struct device_node *np; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct clock_event_device clkevt; + struct of_timer_base of_base; + struct of_timer_irq of_irq; + struct of_timer_clk of_clk; + void *private_data; + long: 64; + long: 64; +}; -struct trace_event_raw_handshake_event_class { - struct trace_entry ent; - const void *req; - const void *sk; - unsigned int netns_ino; - char __data[0]; +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); }; -struct trace_event_raw_handshake_error_class { - struct trace_entry ent; - const void *req; - const void *sk; - int err; - unsigned int netns_ino; - char __data[0]; +enum snd_ctl_add_mode { + CTL_ADD_EXCLUSIVE = 0, + CTL_REPLACE = 1, + CTL_ADD_ON_REPLACE = 2, }; -struct trace_event_raw_handshake_complete { - struct trace_entry ent; - const void *req; - const void *sk; - int status; - unsigned int netns_ino; - char __data[0]; +enum sndrv_ctl_event_type { + SNDRV_CTL_EVENT_ELEM = 0, + SNDRV_CTL_EVENT_LAST = 0, }; -struct trace_event_raw_handshake_fd_class { - struct trace_entry ent; - const void *req; - const void *sk; - int fd; - unsigned int netns_ino; - char __data[0]; +enum { + SNDRV_CTL_TLV_OP_READ = 0, + SNDRV_CTL_TLV_OP_WRITE = 1, + SNDRV_CTL_TLV_OP_CMD = -1, }; -struct trace_event_data_offsets_handshake_event_class {}; +enum { + SNDRV_CTL_IOCTL_ELEM_LIST32 = 3225965840, + SNDRV_CTL_IOCTL_ELEM_INFO32 = 3239073041, + SNDRV_CTL_IOCTL_ELEM_READ32 = 3267908882, + SNDRV_CTL_IOCTL_ELEM_WRITE32 = 3267908883, + SNDRV_CTL_IOCTL_ELEM_ADD32 = 3239073047, + SNDRV_CTL_IOCTL_ELEM_REPLACE32 = 3239073048, +}; -struct trace_event_data_offsets_handshake_fd_class {}; +struct snd_kctl_event { + struct list_head list; + struct snd_ctl_elem_id id; + unsigned int mask; +}; -struct trace_event_data_offsets_handshake_error_class {}; +struct snd_kctl_ioctl { + struct list_head list; + snd_kctl_ioctl_func_t fioctl; +}; -struct trace_event_data_offsets_handshake_complete {}; +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 profile_hit { - u32 pc; - u32 hits; +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]; }; -enum futex_access { - FUTEX_READ = 0, - FUTEX_WRITE = 1, +struct snd_ctl_elem_value32 { + struct snd_ctl_elem_id id; + unsigned int indirect; + union { + s32 integer[128]; + unsigned char data[512]; + s64 integer64[64]; + } value; + unsigned char reserved[128]; }; -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 snd_ctl_elem_list32 { + u32 offset; + u32 space; + u32 used; + u32 count; + u32 pids; + unsigned char reserved[50]; }; -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 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 futex_pi_state { - struct list_head list; - struct rt_mutex_base pi_mutex; - struct task_struct *owner; - refcount_t refcount; - union futex_key key; +struct snd_ctl_event { + int type; + union { + struct { + unsigned int mask; + struct snd_ctl_elem_id id; + } elem; + unsigned char data8[60]; + } data; }; -struct futex_hash_bucket { - atomic_t waiters; - spinlock_t lock; - struct plist_head chain; - long: 64; - long: 64; +struct snd_ctl_tlv { + unsigned int numid; + unsigned int length; + unsigned int tlv[0]; }; -struct futex_waitv { - __u64 val; - __u64 uaddr; - __u32 flags; - __u32 __reserved; +struct gnet_estimator { + signed char interval; + unsigned char ewma_log; }; -struct futex_vector { - struct futex_waitv w; - struct futex_q q; +struct gnet_stats_rate_est64 { + __u64 bps; + __u64 pps; }; enum { - TRACE_FUNC_NO_OPTS = 0, - TRACE_FUNC_OPT_STACK = 1, - TRACE_FUNC_OPT_NO_REPEATS = 2, - TRACE_FUNC_OPT_HIGHEST_BIT = 4, + BPF_F_INGRESS = 1, }; -struct bpf_preload_info; +typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); -struct bpf_preload_ops { - int (*preload)(struct bpf_preload_info *); - struct module *owner; -}; +typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64); -struct bpf_preload_info { - char link_name[16]; - struct bpf_link *link; -}; +typedef u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64); -enum bpf_type { - BPF_TYPE_UNSPEC = 0, - BPF_TYPE_PROG = 1, - BPF_TYPE_MAP = 2, - BPF_TYPE_LINK = 3, +typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64); + +typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); + +struct bpf_stab { + struct bpf_map map; + struct sock **sks; + struct sk_psock_progs progs; + spinlock_t lock; }; -enum { - OPT_MODE = 0, +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: 64; }; -struct map_iter { - void *key; - bool done; +struct bpf_shtab_bucket { + struct hlist_head head; + spinlock_t lock; }; -struct bpf_mount_opts { - umode_t mode; +struct sk_psock_link { + struct list_head list; + struct bpf_map *map; + void *link_raw; }; -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 bpf_shtab_elem { + struct callback_head rcu; + u32 hash; + struct sock *sk; + struct hlist_node node; + u8 key[0]; }; -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 sock_map_seq_info { + struct bpf_map *map; + struct sock *sk; + u32 index; }; -struct arch_uprobe { +struct bpf_iter__sockmap { union { - u8 insn[8]; - u8 ixol[8]; + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + struct sock *sk; }; - struct arch_probe_insn api; - unsigned long insn_size; - bool simulate; }; -struct uprobe_consumer; - -struct uprobe { - struct rb_node rb_node; - refcount_t ref; - struct rw_semaphore register_rwsem; - struct rw_semaphore consumer_rwsem; - struct list_head pending_list; - struct uprobe_consumer *consumers; - struct inode *inode; - loff_t offset; - loff_t ref_ctr_offset; - unsigned long flags; - struct arch_uprobe arch; +struct sock_hash_seq_info { + struct bpf_map *map; + struct bpf_shtab *htab; + u32 bucket_id; }; -enum uprobe_filter_ctx { - UPROBE_FILTER_REGISTER = 0, - UPROBE_FILTER_UNREGISTER = 1, - UPROBE_FILTER_MMAP = 2, +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 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 eee_reply_data { + struct ethnl_reply_data base; + struct ethtool_eee eee; }; -enum rp_check { - RP_CHECK_CALL = 0, - RP_CHECK_CHAIN_CALL = 1, - RP_CHECK_RET = 2, +enum { + UDP_FLAGS_CORK = 0, + UDP_FLAGS_NO_CHECK6_TX = 1, + UDP_FLAGS_NO_CHECK6_RX = 2, + UDP_FLAGS_GRO_ENABLED = 3, + UDP_FLAGS_ACCEPT_FRAGLIST = 4, + UDP_FLAGS_ACCEPT_L4 = 5, + UDP_FLAGS_ENCAP_ENABLED = 6, + UDP_FLAGS_UDPLITE_SEND_CC = 7, + UDP_FLAGS_UDPLITE_RECV_CC = 8, }; -typedef u32 uprobe_opcode_t; +typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); -struct delayed_uprobe { - struct list_head list; - struct uprobe *uprobe; - struct mm_struct *mm; +struct ac6_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct inet6_dev *idev; }; -struct __uprobe_key { - struct inode *inode; - loff_t offset; +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, }; -struct map_info { - struct map_info *next; - struct mm_struct *mm; - unsigned long vaddr; -}; +typedef unsigned int OM_uint32; -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 errormap { + char *name; + int val; + int namelen; + struct hlist_node list; }; -struct migration_target_control { - int nid; - nodemask_t *nmask; - gfp_t gfp_mask; +enum { + Rworksched = 1, + Rpending = 2, + Wworksched = 4, + Wpending = 8, }; -typedef struct folio *new_folio_t(struct folio *, unsigned long); +enum { + Opt_port___2 = 0, + Opt_rfdno = 1, + Opt_wfdno = 2, + Opt_err___3 = 3, + Opt_privport = 4, +}; -typedef void free_folio_t(struct folio *, unsigned long); +struct p9_conn; -struct migrate_pages_stats { - int nr_succeeded; - int nr_failed_pages; - int nr_thp_succeeded; - int nr_thp_failed; - int nr_thp_split; +struct p9_poll_wait { + struct p9_conn *conn; + wait_queue_entry_t wait; + wait_queue_head_t *wait_addr; }; -union migration_ptr { - struct anon_vma *anon_vma; - struct address_space *mapping; +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; }; -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 p9_trans_fd { + struct file *rd; + struct file *wr; + struct p9_conn conn; }; -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 p9_fd_opts { + int rfd; + int wfd; + u16 port; + bool privport; }; -struct signalfd_ctx { - sigset_t sigmask; +union efi_rng_protocol; + +typedef union efi_rng_protocol efi_rng_protocol_t; + +union efi_rng_protocol { + struct { + efi_status_t (*get_info)(efi_rng_protocol_t *, unsigned long *, efi_guid_t *); + efi_status_t (*get_rng)(efi_rng_protocol_t *, efi_guid_t *, unsigned long, u8 *); + }; + struct { + u32 get_info; + u32 get_rng; + } mixed_mode; }; -enum bio_post_read_step { - STEP_INITIAL = 0, - STEP_DECRYPT = 1, - STEP_VERITY = 2, - STEP_MAX = 3, +typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int)); + +typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *); + +typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int); + +struct cpuhp_cpu_state { + enum cpuhp_state state; + enum cpuhp_state target; + enum cpuhp_state fail; + struct task_struct *thread; + bool should_run; + bool rollback; + bool single; + bool bringup; + struct hlist_node *node; + struct hlist_node *last; + enum cpuhp_state cb_state; + int result; + atomic_t ap_sync_state; + struct completion done_up; + struct completion done_down; }; -struct bio_post_read_ctx { - struct bio *bio; - struct work_struct work; - unsigned int cur_step; - unsigned int enabled_steps; +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; }; -struct folio_iter { - struct folio *folio; - size_t offset; - size_t length; - struct folio *_next; - size_t _seg_count; - int _i; +enum cpu_mitigations { + CPU_MITIGATIONS_OFF = 0, + CPU_MITIGATIONS_AUTO = 1, + CPU_MITIGATIONS_AUTO_NOSMT = 2, }; -struct fat_boot_fsinfo { - __le32 signature1; - __le32 reserved1[120]; - __le32 signature2; - __le32 free_clusters; - __le32 next_cluster; - __le32 reserved2[4]; +enum cpuhp_sync_state { + SYNC_STATE_DEAD = 0, + SYNC_STATE_KICKED = 1, + SYNC_STATE_SHOULD_DIE = 2, + SYNC_STATE_ALIVE = 3, + SYNC_STATE_SHOULD_ONLINE = 4, + SYNC_STATE_ONLINE = 5, }; -struct tm { - int tm_sec; - int tm_min; - int tm_hour; - int tm_mday; - int tm_mon; - long tm_year; - int tm_wday; - int tm_yday; +enum cc_attr { + CC_ATTR_MEM_ENCRYPT = 0, + CC_ATTR_HOST_MEM_ENCRYPT = 1, + CC_ATTR_GUEST_MEM_ENCRYPT = 2, + CC_ATTR_GUEST_STATE_ENCRYPT = 3, + CC_ATTR_GUEST_UNROLL_STRING_IO = 4, + CC_ATTR_GUEST_SEV_SNP = 5, + CC_ATTR_HOTPLUG_DISABLED = 6, }; -enum { - MOUNTPROC3_NULL = 0, - MOUNTPROC3_MNT = 1, - MOUNTPROC3_DUMP = 2, - MOUNTPROC3_UMNT = 3, - MOUNTPROC3_UMNTALL = 4, - MOUNTPROC3_EXPORT = 5, +enum cpuhp_smt_control { + CPU_SMT_ENABLED = 0, + CPU_SMT_DISABLED = 1, + CPU_SMT_FORCE_DISABLED = 2, + CPU_SMT_NOT_SUPPORTED = 3, + CPU_SMT_NOT_IMPLEMENTED = 4, }; -enum { - MOUNTPROC_NULL = 0, - MOUNTPROC_MNT = 1, - MOUNTPROC_DUMP = 2, - MOUNTPROC_UMNT = 3, - MOUNTPROC_UMNTALL = 4, - MOUNTPROC_EXPORT = 5, +struct trace_event_raw_cpuhp_enter { + struct trace_entry ent; + unsigned int cpu; + int target; + int idx; + void *fun; + char __data[0]; }; -struct mountres { - int errno; - struct nfs_fh *fh; - unsigned int *auth_count; - rpc_authflavor_t *auth_flavors; +struct trace_event_raw_cpuhp_multi_enter { + struct trace_entry ent; + unsigned int cpu; + int target; + int idx; + void *fun; + char __data[0]; }; -struct utf8_table { - int cmask; - int cval; - int shift; - long lmask; - long lval; +struct trace_event_raw_cpuhp_exit { + struct trace_entry ent; + unsigned int cpu; + int state; + int idx; + int ret; + char __data[0]; }; -typedef u32 unicode_t; +struct trace_event_data_offsets_cpuhp_enter {}; -struct selinux_state { - bool enforcing; - bool initialized; - bool policycap[8]; - struct page *status_page; - struct mutex status_lock; - struct selinux_policy __attribute__((btf_type_tag("rcu"))) *policy; - struct mutex policy_mutex; -}; +struct trace_event_data_offsets_cpuhp_multi_enter {}; -struct selinux_mapping; +struct trace_event_data_offsets_cpuhp_exit {}; -struct selinux_map { - struct selinux_mapping *mapping; - u16 size; +struct cpu_down_work { + unsigned int cpu; + enum cpuhp_state target; }; -struct selinux_policy { - struct sidtab *sidtab; - struct policydb policydb; - struct selinux_map map; - u32 latest_granting; +enum rwsem_waiter_type { + RWSEM_WAITING_FOR_WRITE = 0, + RWSEM_WAITING_FOR_READ = 1, }; -union sctp_addr { - struct sockaddr_in v4; - struct sockaddr_in6 v6; - struct sockaddr sa; +enum rwsem_wake_type { + RWSEM_WAKE_ANY = 0, + RWSEM_WAKE_READERS = 1, + RWSEM_WAKE_READ_OWNED = 2, }; -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]; +enum owner_state { + OWNER_NULL = 1, + OWNER_WRITER = 2, + OWNER_READER = 4, + OWNER_NONSPINNABLE = 8, }; -struct sctp_inithdr_host { - __u32 init_tag; - __u32 a_rwnd; - __u16 num_outbound_streams; - __u16 num_inbound_streams; - __u32 initial_tsn; +struct rwsem_waiter { + struct list_head list; + struct task_struct *task; + enum rwsem_waiter_type type; + unsigned long timeout; + bool handoff_set; }; -enum sctp_endpoint_type { - SCTP_EP_TYPE_SOCKET = 0, - SCTP_EP_TYPE_ASSOCIATION = 1, +enum { + AFFINITY = 0, + AFFINITY_LIST = 1, + EFFECTIVE = 2, + EFFECTIVE_LIST = 3, }; -struct sctp_chunk; +typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long); -struct sctp_inq { - struct list_head in_chunk_list; - struct sctp_chunk *in_progress; - struct work_struct immediate; +typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long); + +struct trace_event_raw_sys_enter { + struct trace_entry ent; + long id; + unsigned long args[6]; + char __data[0]; }; -struct sctp_bind_addr { - __u16 port; - struct list_head address_list; +struct trace_event_raw_sys_exit { + struct trace_entry ent; + long id; + long ret; + char __data[0]; }; -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; +struct irqentry_state { + union { + bool exit_rcu; + bool lockdep; + }; }; -typedef __s32 sctp_assoc_t; +typedef struct irqentry_state irqentry_state_t; -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 trace_event_data_offsets_sys_enter {}; -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, +struct trace_event_data_offsets_sys_exit {}; + +struct clock_data { + seqcount_latch_t seq; + struct clock_read_data read_data[2]; + ktime_t wrap_kt; + unsigned long rate; + u64 (*actual_read_sched_clock)(); }; -struct sctp_stream_out_ext; +enum audit_nfcfgop { + AUDIT_XT_OP_REGISTER = 0, + AUDIT_XT_OP_REPLACE = 1, + AUDIT_XT_OP_UNREGISTER = 2, + AUDIT_NFT_OP_TABLE_REGISTER = 3, + AUDIT_NFT_OP_TABLE_UNREGISTER = 4, + AUDIT_NFT_OP_CHAIN_REGISTER = 5, + AUDIT_NFT_OP_CHAIN_UNREGISTER = 6, + AUDIT_NFT_OP_RULE_REGISTER = 7, + AUDIT_NFT_OP_RULE_UNREGISTER = 8, + AUDIT_NFT_OP_SET_REGISTER = 9, + AUDIT_NFT_OP_SET_UNREGISTER = 10, + AUDIT_NFT_OP_SETELEM_REGISTER = 11, + AUDIT_NFT_OP_SETELEM_UNREGISTER = 12, + AUDIT_NFT_OP_GEN_REGISTER = 13, + AUDIT_NFT_OP_OBJ_REGISTER = 14, + AUDIT_NFT_OP_OBJ_UNREGISTER = 15, + AUDIT_NFT_OP_OBJ_RESET = 16, + AUDIT_NFT_OP_FLOWTABLE_REGISTER = 17, + AUDIT_NFT_OP_FLOWTABLE_UNREGISTER = 18, + AUDIT_NFT_OP_SETELEM_RESET = 19, + AUDIT_NFT_OP_RULE_RESET = 20, + AUDIT_NFT_OP_INVALID = 21, +}; -struct sctp_stream_out { - union { - __u32 mid; - __u16 ssn; - }; - __u32 mid_uo; - struct sctp_stream_out_ext *ext; - __u8 state; +struct audit_nfcfgop_tab { + enum audit_nfcfgop op; + const char *s; }; -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 audit_aux_data { + struct audit_aux_data *next; + int type; }; -struct sctp_stream_interleave; +struct audit_chunk; -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 { - struct list_head fc_list; - }; - }; - struct sctp_stream_interleave *si; +struct audit_tree_refs { + struct audit_tree_refs *next; + struct audit_chunk *c[31]; }; -struct sctp_sched_ops; +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 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 cpu_vfs_cap_data { + __u32 magic_etc; + kuid_t rootid; + kernel_cap_t permitted; + kernel_cap_t inheritable; }; -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 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 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 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 sctp_endpoint; +struct sigevent { + sigval_t sigev_value; + int sigev_signo; + int sigev_notify; + union { + int _pad[12]; + int _tid; + struct { + void (*_function)(sigval_t); + void *_attribute; + } _sigev_thread; + } _sigev_un; +}; -struct sctp_transport; +struct fanotify_response_info_header { + __u8 type; + __u8 pad; + __u16 len; +}; -struct sctp_random_param; +struct fanotify_response_info_audit_rule { + struct fanotify_response_info_header hdr; + __u32 rule_number; + __u32 subj_trust; + __u32 obj_trust; +}; -struct sctp_chunks_param; +struct boot_triggers { + const char *event; + char *trigger; +}; -struct sctp_hmac_algo_param; +typedef int (*eventfs_callback)(const char *, umode_t *, void **, const struct file_operations **); -struct sctp_auth_bytes; +struct eventfs_entry { + const char *name; + eventfs_callback callback; +}; -struct sctp_shared_key; +struct ftrace_func_command { + struct list_head list; + char *name; + int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); +}; -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 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 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 sctp_paramhdr; +enum { + TRACE_PIDS = 1, + TRACE_NO_PIDS = 2, +}; -struct sctp_cookie_preserve_param; +enum { + TRACE_ARRAY_FL_GLOBAL = 1, +}; -struct sctp_hostname_param; +enum { + FORMAT_HEADER = 1, + FORMAT_FIELD_SEPERATOR = 2, + FORMAT_PRINTFMT = 3, +}; -struct sctp_cookie_param; +struct module_string { + struct list_head next; + struct module *module; + char *str; +}; -struct sctp_supported_addrs_param; +struct trace_parser { + bool cont; + char *buffer; + unsigned int idx; + unsigned int size; +}; -struct sctp_ipv4addr_param; +struct event_probe_data { + struct trace_event_file *file; + unsigned long count; + int ref; + bool enable; +}; -struct sctp_ipv6addr_param; +typedef int (*ftrace_mapper_func)(void *); -union sctp_addr_param; +struct bpf_iter__bpf_map { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; +}; -struct sctp_adaptation_ind_param; +struct bpf_iter_seq_map_info { + u32 map_id; +}; -struct sctp_supported_ext_param; +struct cgroup_iter_priv { + struct cgroup_subsys_state *start_css; + bool visited_all; + bool terminate; + int order; +}; -struct sctp_addip_param; +struct bpf_iter__cgroup { + union { + struct bpf_iter_meta *meta; + }; + union { + struct cgroup *cgroup; + }; +}; -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 bpf_iter_css { + __u64 __opaque[3]; }; -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 bpf_iter_css_kern { + struct cgroup_subsys_state *start; + struct cgroup_subsys_state *pos; + unsigned int flags; }; -struct sctp_datahdr; +struct vm_event_state { + unsigned long event[74]; +}; -struct sctp_inithdr; +enum writeback_stat_item { + NR_DIRTY_THRESHOLD = 0, + NR_DIRTY_BG_THRESHOLD = 1, + NR_VM_WRITEBACK_STAT_ITEMS = 2, +}; -struct sctp_sackhdr; +struct contig_page_info { + unsigned long free_pages; + unsigned long free_blocks_total; + unsigned long free_blocks_suitable; +}; -struct sctp_heartbeathdr; +typedef void (*btf_trace_tlb_flush)(void *, int, unsigned long); -struct sctp_sender_hb_info; +typedef void (*btf_trace_mm_migrate_pages)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, enum migrate_mode, int); -struct sctp_shutdownhdr; +typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int); -struct sctp_signed_cookie; +typedef void (*btf_trace_set_migration_pte)(void *, unsigned long, unsigned long, int); -struct sctp_ecnehdr; +typedef void (*btf_trace_remove_migration_pte)(void *, unsigned long, unsigned long, int); -struct sctp_cwrhdr; +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, +}; -struct sctp_errhdr; +struct trace_event_raw_tlb_flush { + struct trace_entry ent; + int reason; + unsigned long pages; + char __data[0]; +}; -struct sctp_addiphdr; +struct trace_event_raw_mm_migrate_pages { + struct trace_entry ent; + unsigned long succeeded; + unsigned long failed; + unsigned long thp_succeeded; + unsigned long thp_failed; + unsigned long thp_split; + unsigned long large_folio_split; + enum migrate_mode mode; + int reason; + char __data[0]; +}; -struct sctp_fwdtsn_hdr; +struct trace_event_raw_mm_migrate_pages_start { + struct trace_entry ent; + enum migrate_mode mode; + int reason; + char __data[0]; +}; -struct sctp_authhdr; +struct trace_event_raw_migration_pte { + struct trace_entry ent; + unsigned long addr; + unsigned long pte; + int order; + char __data[0]; +}; -struct sctp_idatahdr; +struct trace_event_data_offsets_tlb_flush {}; -struct sctp_ifwdtsn_hdr; +struct trace_event_data_offsets_mm_migrate_pages {}; -struct sctp_chunkhdr; +struct trace_event_data_offsets_mm_migrate_pages_start {}; -struct sctphdr; +struct trace_event_data_offsets_migration_pte {}; -struct sctp_datamsg; +struct folio_referenced_arg { + int mapcount; + int referenced; + unsigned long vm_flags; + struct mem_cgroup *memcg; +}; -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; +enum { + DIO_LOCKING = 1, + DIO_SKIP_HOLES = 2, +}; + +typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); + +struct dio { + int flags; + blk_opf_t opf; + struct gendisk *bio_disk; + struct inode *inode; + loff_t i_size; + dio_iodone_t *end_io; + bool is_pinned; + void *private; + spinlock_t bio_lock; + int page_errors; + int is_async; + bool defer_completion; + bool should_dirty; + int io_error; + unsigned long refcount; + struct bio *bio_list; + struct task_struct *waiter; + struct kiocb *iocb; + ssize_t result; union { - struct sk_buff *head_skb; - struct sctp_shared_key *shkey; + struct page *pages[64]; + struct work_struct complete_work; }; - 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; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct sctp_shared_key { - struct list_head key_list; - struct sctp_auth_bytes *key; - refcount_t refcnt; - __u16 key_id; - __u8 deactivated; +struct dio_submit { + struct bio *bio; + unsigned int blkbits; + unsigned int blkfactor; + unsigned int start_zero_done; + int pages_in_io; + sector_t block_in_file; + unsigned int blocks_available; + int reap_counter; + sector_t final_block_in_request; + int boundary; + get_block_t *get_block; + loff_t logical_offset_in_bio; + sector_t final_block_in_bio; + sector_t next_block_for_io; + struct page *cur_page; + unsigned int cur_page_offset; + unsigned int cur_page_len; + sector_t cur_page_block; + loff_t cur_page_fs_offset; + struct iov_iter *iter; + unsigned int head; + unsigned int tail; + size_t from; + size_t to; }; -struct sctp_auth_bytes { - refcount_t refcnt; - __u32 len; - __u8 data[0]; -}; +typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int); -struct sctp_paramhdr { - __be16 type; - __be16 length; -}; +typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int); -struct sctp_cookie_preserve_param { - struct sctp_paramhdr param_hdr; - __be32 lifespan_increment; -}; +typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64); -struct sctp_hostname_param { - struct sctp_paramhdr param_hdr; - uint8_t hostname[0]; -}; +typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64); -struct sctp_cookie_param { - struct sctp_paramhdr p; - __u8 body[0]; -}; +typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64); -struct sctp_supported_addrs_param { - struct sctp_paramhdr param_hdr; - __be16 types[0]; -}; +typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); -struct sctp_ipv4addr_param { - struct sctp_paramhdr param_hdr; - struct in_addr addr; +typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *); + +typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *); + +typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, struct iomap *); + +typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long); + +typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t); + +typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t); + +struct trace_event_raw_iomap_readpage_class { + struct trace_entry ent; + dev_t dev; + u64 ino; + int nr_pages; + char __data[0]; }; -struct sctp_ipv6addr_param { - struct sctp_paramhdr param_hdr; - struct in6_addr addr; +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]; }; -union sctp_addr_param { - struct sctp_paramhdr p; - struct sctp_ipv4addr_param v4; - struct sctp_ipv6addr_param v6; +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 sctp_adaptation_ind_param { - struct sctp_paramhdr param_hdr; - __be32 adaptation_ind; +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 sctp_supported_ext_param { - struct sctp_paramhdr param_hdr; - __u8 chunks[0]; +struct trace_event_raw_iomap_dio_rw_begin { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + size_t count; + size_t done_before; + int ki_flags; + unsigned int dio_flags; + bool aio; + char __data[0]; }; -struct sctp_random_param { - struct sctp_paramhdr param_hdr; - __u8 random_val[0]; +struct trace_event_raw_iomap_dio_complete { + struct trace_entry ent; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + int ki_flags; + bool aio; + int error; + ssize_t ret; + char __data[0]; }; -struct sctp_chunks_param { - struct sctp_paramhdr param_hdr; - __u8 chunks[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 trace_event_data_offsets_iomap_dio_rw_begin {}; + +struct trace_event_data_offsets_iomap_dio_complete {}; + +struct sysctl_alias { + const char *kernel_param; + const char *sysctl_param; }; -struct sctp_hmac_algo_param { - struct sctp_paramhdr param_hdr; - __be16 hmac_ids[0]; +struct ext4_extent_header { + __le16 eh_magic; + __le16 eh_entries; + __le16 eh_max; + __le16 eh_depth; + __le32 eh_generation; }; -struct sctp_addip_param { - struct sctp_paramhdr param_hdr; - __be32 crr_id; +struct ext4_extent; + +struct ext4_extent_idx; + +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 sctp_datahdr { - __be32 tsn; - __be16 stream; - __be16 ssn; - __u32 ppid; +struct ext4_extent { + __le32 ee_block; + __le16 ee_len; + __le16 ee_start_hi; + __le32 ee_start_lo; }; -struct sctp_inithdr { - __be32 init_tag; - __be32 a_rwnd; - __be16 num_outbound_streams; - __be16 num_inbound_streams; - __be32 initial_tsn; +struct ext4_extent_idx { + __le32 ei_block; + __le32 ei_leaf_lo; + __le16 ei_leaf_hi; + __u16 ei_unused; }; -struct sctp_sackhdr { - __be32 cum_tsn_ack; - __be32 a_rwnd; - __be16 num_gap_ack_blocks; - __be16 num_dup_tsns; +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; }; -struct sctp_heartbeathdr { - struct sctp_paramhdr info; -}; +typedef struct z_stream_s z_stream; -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 internal_state { + int dummy; }; -struct sctp_shutdownhdr { - __be32 cum_tsn_ack; -}; +typedef z_stream *z_streamp; -struct sctp_signed_cookie { - __u8 signature[32]; - __u32 __pad; - struct sctp_cookie c; -} __attribute__((packed)); +typedef void (*btf_trace_nfs4_setclientid)(void *, const struct nfs_client *, int); -struct sctp_ecnehdr { - __be32 lowest_tsn; -}; +typedef void (*btf_trace_nfs4_setclientid_confirm)(void *, const struct nfs_client *, int); -struct sctp_cwrhdr { - __be32 lowest_tsn; -}; +typedef void (*btf_trace_nfs4_renew)(void *, const struct nfs_client *, int); -struct sctp_errhdr { - __be16 cause; - __be16 length; -}; +typedef void (*btf_trace_nfs4_renew_async)(void *, const struct nfs_client *, int); -struct sctp_addiphdr { - __be32 serial; -}; +typedef void (*btf_trace_nfs4_exchange_id)(void *, const struct nfs_client *, int); -struct sctp_fwdtsn_hdr { - __be32 new_cum_tsn; -}; +typedef void (*btf_trace_nfs4_create_session)(void *, const struct nfs_client *, int); -struct sctp_authhdr { - __be16 shkey_id; - __be16 hmac_id; -}; +typedef void (*btf_trace_nfs4_destroy_session)(void *, const struct nfs_client *, int); -struct sctp_idatahdr { - __be32 tsn; - __be16 stream; - __be16 reserved; - __be32 mid; - union { - __u32 ppid; - __be32 fsn; - }; - __u8 payload[0]; -}; +typedef void (*btf_trace_nfs4_destroy_clientid)(void *, const struct nfs_client *, int); -struct sctp_ifwdtsn_hdr { - __be32 new_cum_tsn; -}; +typedef void (*btf_trace_nfs4_bind_conn_to_session)(void *, const struct nfs_client *, int); -struct sctp_chunkhdr { - __u8 type; - __u8 flags; - __be16 length; -}; +typedef void (*btf_trace_nfs4_sequence)(void *, const struct nfs_client *, int); -struct sctphdr { - __be16 source; - __be16 dest; - __be32 vtag; - __le32 checksum; -}; +typedef void (*btf_trace_nfs4_reclaim_complete)(void *, const struct nfs_client *, int); -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; -}; +typedef void (*btf_trace_nfs4_sequence_done)(void *, const struct nfs4_session *, const struct nfs4_sequence_res *); -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; -}; +typedef void (*btf_trace_nfs4_cb_sequence)(void *, const struct cb_sequenceargs *, const struct cb_sequenceres *, __be32); -struct sctp_af; +typedef void (*btf_trace_nfs4_cb_seqid_err)(void *, const struct cb_sequenceargs *, __be32); -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; -}; +typedef void (*btf_trace_nfs4_cb_offload)(void *, const struct nfs_fh *, const nfs4_stateid *, uint64_t, int, int); -enum sctp_scope { - SCTP_SCOPE_GLOBAL = 0, - SCTP_SCOPE_PRIVATE = 1, - SCTP_SCOPE_LINK = 2, - SCTP_SCOPE_LOOPBACK = 3, - SCTP_SCOPE_UNUSABLE = 4, -}; +typedef void (*btf_trace_nfs4_setup_sequence)(void *, const struct nfs4_session *, const struct nfs4_sequence_args *); -struct sctp_sock; +typedef void (*btf_trace_nfs4_state_mgr)(void *, const struct nfs_client *); -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; -}; +typedef void (*btf_trace_nfs4_state_mgr_failed)(void *, const struct nfs_client *, const char *, int); -enum sctp_socket_type { - SCTP_SOCKET_UDP = 0, - SCTP_SOCKET_UDP_HIGH_BANDWIDTH = 1, - SCTP_SOCKET_TCP = 2, -}; +typedef void (*btf_trace_nfs4_xdr_bad_operation)(void *, const struct xdr_stream *, u32, u32); -struct sctp_rtoinfo { - sctp_assoc_t srto_assoc_id; - __u32 srto_initial; - __u32 srto_max; - __u32 srto_min; -}; +typedef void (*btf_trace_nfs4_xdr_status)(void *, const struct xdr_stream *, u32, u32); -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; - int: 0; -} __attribute__((packed)); +typedef void (*btf_trace_nfs4_xdr_bad_filehandle)(void *, const struct xdr_stream *, u32, u32); -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; -}; +typedef void (*btf_trace_nfs_cb_no_clp)(void *, __be32, u32); -struct sctp_initmsg { - __u16 sinit_num_ostreams; - __u16 sinit_max_instreams; - __u16 sinit_max_attempts; - __u16 sinit_max_init_timeo; -}; +typedef void (*btf_trace_nfs_cb_badprinc)(void *, __be32, u32); -struct sctp_pf; +typedef void (*btf_trace_nfs4_open_reclaim)(void *, const struct nfs_open_context *, int, int); -struct sctp_bind_bucket; +typedef void (*btf_trace_nfs4_open_expired)(void *, const struct nfs_open_context *, int, int); -struct sctp_sock { - struct inet_sock inet; - enum sctp_socket_type type; - 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; - __u32 default_ppid; - __u16 default_flags; - __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; - __u32 flowlabel; - __u8 dscp; - __u16 pf_retrans; - __u16 ps_retrans; - __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; - 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; - atomic_t pd_mode; - struct sk_buff_head pd_lobby; - struct list_head auto_asconf_list; - int do_auto_asconf; -}; +typedef void (*btf_trace_nfs4_open_file)(void *, const struct nfs_open_context *, int, int); -struct sctp_ulpevent; +typedef void (*btf_trace_nfs4_cached_open)(void *, const struct nfs4_state *); -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 nfs_closeargs; -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 nfs_closeres; -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; +typedef void (*btf_trace_nfs4_close)(void *, const struct nfs4_state *, const struct nfs_closeargs *, const struct nfs_closeres *, int); + +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 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 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 sctp_stream_priorities; +typedef void (*btf_trace_nfs4_get_lock)(void *, const struct file_lock *, const struct nfs4_state *, int, int); -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 { - struct list_head fc_list; - __u32 fc_length; - __u16 fc_weight; - }; - }; -}; +typedef void (*btf_trace_nfs4_unlock)(void *, const struct file_lock *, const struct nfs4_state *, int, int); -struct sctp_stream_priorities { - struct list_head prio_sched; - struct list_head active; - struct sctp_stream_out_ext *next; - __u16 prio; - __u16 users; -}; +typedef void (*btf_trace_nfs4_set_lock)(void *, const struct file_lock *, const struct nfs4_state *, const nfs4_stateid *, int, int); -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 *); -}; +typedef void (*btf_trace_nfs4_state_lock_reclaim)(void *, const struct nfs4_state *, const struct nfs4_lock_state *); -enum nf_hook_ops_type { - NF_HOOK_OP_UNDEFINED = 0, - NF_HOOK_OP_NF_TABLES = 1, - NF_HOOK_OP_BPF = 2, -}; +typedef void (*btf_trace_nfs4_set_delegation)(void *, const struct inode *, fmode_t); -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; -}; +typedef void (*btf_trace_nfs4_reclaim_delegation)(void *, const struct inode *, fmode_t); -struct sk_security_struct { - u32 sid; - u32 peer_sid; - u16 sclass; - enum { - SCTP_ASSOC_UNSET = 0, - SCTP_ASSOC_SET = 1, - } sctp_assoc_state; -}; +struct nfs4_delegreturnargs; -enum { - Opt_error = -1, - Opt_context = 0, - Opt_defcontext = 1, - Opt_fscontext = 2, - Opt_rootcontext = 3, - Opt_seclabel = 4, -}; +struct nfs4_delegreturnres; -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; +typedef void (*btf_trace_nfs4_delegreturn_exit)(void *, const struct nfs4_delegreturnargs *, const struct nfs4_delegreturnres *, int); + +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 file_security_struct { - u32 sid; - u32 fown_sid; - u32 isid; - u32 pseqno; +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 bpf_security_struct { - u32 sid; -}; +typedef void (*btf_trace_nfs4_test_delegation_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); -struct ipc_security_struct { - u16 sclass; - u32 sid; -}; +typedef void (*btf_trace_nfs4_test_open_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); -struct msg_security_struct { - u32 sid; -}; +typedef void (*btf_trace_nfs4_test_lock_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); -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; -}; +typedef void (*btf_trace_nfs4_lookup)(void *, const struct inode *, const struct qstr *, int); -struct selinux_mnt_opts { - u32 fscontext_sid; - u32 context_sid; - u32 rootcontext_sid; - u32 defcontext_sid; -}; +typedef void (*btf_trace_nfs4_symlink)(void *, const struct inode *, const struct qstr *, int); -struct tun_security_struct { - u32 sid; -}; +typedef void (*btf_trace_nfs4_mkdir)(void *, const struct inode *, const struct qstr *, int); -struct key_security_struct { - u32 sid; -}; +typedef void (*btf_trace_nfs4_mknod)(void *, const struct inode *, const struct qstr *, int); -struct perf_event_security_struct { - u32 sid; -}; +typedef void (*btf_trace_nfs4_remove)(void *, const struct inode *, const struct qstr *, int); -struct io_xattr { - struct file *file; - struct xattr_ctx ctx; - struct filename *filename; -}; +typedef void (*btf_trace_nfs4_get_fs_locations)(void *, const struct inode *, const struct qstr *, int); -struct once_work { - struct work_struct work; - struct static_key_true *key; - struct module *module; -}; +typedef void (*btf_trace_nfs4_secinfo)(void *, const struct inode *, const struct qstr *, int); -struct mpi_ec_ctx; +typedef void (*btf_trace_nfs4_lookupp)(void *, const struct inode *, int); -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 *); -}; +typedef void (*btf_trace_nfs4_rename)(void *, const struct inode *, const struct qstr *, const struct inode *, const struct qstr *, int); -enum gcry_mpi_ec_models { - MPI_EC_WEIERSTRASS = 0, - MPI_EC_MONTGOMERY = 1, - MPI_EC_EDWARDS = 2, -}; +typedef void (*btf_trace_nfs4_access)(void *, const struct inode *, int); -enum ecc_dialects { - ECC_DIALECT_STANDARD = 0, - ECC_DIALECT_ED25519 = 1, - ECC_DIALECT_SAFECURVE = 2, -}; +typedef void (*btf_trace_nfs4_readlink)(void *, const struct inode *, int); -struct gcry_mpi_point; +typedef void (*btf_trace_nfs4_readdir)(void *, const struct inode *, int); -typedef struct gcry_mpi_point *MPI_POINT; +typedef void (*btf_trace_nfs4_get_acl)(void *, const struct inode *, int); -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 *); -}; +typedef void (*btf_trace_nfs4_set_acl)(void *, const struct inode *, int); -struct gcry_mpi_point { - MPI x; - MPI y; - MPI z; -}; +typedef void (*btf_trace_nfs4_get_security_label)(void *, const struct inode *, int); -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, -}; +typedef void (*btf_trace_nfs4_set_security_label)(void *, const struct inode *, int); -struct jh7110_pinctrl_soc_info; +typedef void (*btf_trace_nfs4_setattr)(void *, const struct inode *, const nfs4_stateid *, int); -struct jh7110_pinctrl { - struct device *dev; - struct gpio_chip gc; - struct pinctrl_gpio_range gpios; - raw_spinlock_t lock; - void *base; - struct pinctrl_dev *pctl; - struct mutex mutex; - const struct jh7110_pinctrl_soc_info *info; -}; +typedef void (*btf_trace_nfs4_delegreturn)(void *, const struct inode *, const nfs4_stateid *, int); -struct jh7110_gpio_irq_reg; +typedef void (*btf_trace_nfs4_open_stateid_update)(void *, const struct inode *, const nfs4_stateid *, int); -struct jh7110_pinctrl_soc_info { - const struct pinctrl_pin_desc *pins; - unsigned int npins; - unsigned int ngpios; - unsigned int gc_base; - unsigned int dout_reg_base; - unsigned int dout_mask; - unsigned int doen_reg_base; - unsigned int doen_mask; - unsigned int gpi_reg_base; - unsigned int gpi_mask; - unsigned int gpioin_reg_base; - const struct jh7110_gpio_irq_reg *irq_reg; - int (*jh7110_set_one_pin_mux)(struct jh7110_pinctrl *, unsigned int, unsigned int, u32, u32, u32); - int (*jh7110_get_padcfg_base)(struct jh7110_pinctrl *, unsigned int); - void (*jh7110_gpio_irq_handler)(struct irq_desc *); - int (*jh7110_gpio_init_hw)(struct gpio_chip *); -}; +typedef void (*btf_trace_nfs4_open_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int); -struct jh7110_gpio_irq_reg { - unsigned int is_reg_base; - unsigned int ic_reg_base; - unsigned int ibe_reg_base; - unsigned int iev_reg_base; - unsigned int ie_reg_base; - unsigned int ris_reg_base; - unsigned int mis_reg_base; -}; +typedef void (*btf_trace_nfs4_close_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int); -enum support_mode { - ALLOW_LEGACY = 0, - DENY_LEGACY = 1, -}; +typedef void (*btf_trace_nfs4_getattr)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); -struct msi_map { - int index; - int virq; -}; +typedef void (*btf_trace_nfs4_lookup_root)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); -struct event_counter { - u32 count; - u32 flags; -}; +typedef void (*btf_trace_nfs4_fsinfo)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); -struct acpi_data_attr; +typedef void (*btf_trace_nfs4_cb_getattr)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, int); -struct acpi_data_obj { - char *name; - int (*fn)(void *, struct acpi_data_attr *); -}; +typedef void (*btf_trace_nfs4_cb_recall)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int); -struct acpi_data_attr { - struct bin_attribute attr; - u64 addr; -}; +typedef void (*btf_trace_nfs4_cb_layoutrecall_file)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int); -struct acpi_table_attr { - struct bin_attribute attr; - char name[4]; - int instance; - char filename[8]; - struct list_head node; -}; +typedef void (*btf_trace_nfs4_map_name_to_uid)(void *, const char *, int, u32, int); -typedef u32 acpi_event_status; +typedef void (*btf_trace_nfs4_map_group_to_gid)(void *, const char *, int, u32, int); -struct acpi_table_bert { - struct acpi_table_header header; - u32 region_length; - u64 address; -}; +typedef void (*btf_trace_nfs4_map_uid_to_name)(void *, const char *, int, u32, int); -struct acpi_table_ccel { - struct acpi_table_header header; - u8 CCtype; - u8 Ccsub_type; - u16 reserved; - u64 log_area_minimum_length; - u64 log_area_start_address; -}; +typedef void (*btf_trace_nfs4_map_gid_to_group)(void *, const char *, int, u32, int); -struct acpi_rsconvert_info { - u8 opcode; - u8 resource_offset; - u8 aml_offset; - u8 value; -}; +typedef void (*btf_trace_nfs4_read)(void *, const struct nfs_pgio_header *, int); -struct ccu_gate { - u32 enable; - struct ccu_common common; -}; +typedef void (*btf_trace_nfs4_pnfs_read)(void *, const struct nfs_pgio_header *, int); -struct of_dma { - struct list_head of_dma_controllers; - struct device_node *of_node; - struct dma_chan * (*of_dma_xlate)(struct of_phandle_args *, struct of_dma *); - void * (*of_dma_route_allocate)(struct of_phandle_args *, struct of_dma *); - struct dma_router *dma_router; - void *of_dma_data; -}; +typedef void (*btf_trace_nfs4_write)(void *, const struct nfs_pgio_header *, int); -struct of_dma_filter_info { - dma_cap_mask_t dma_cap; - dma_filter_fn filter_fn; -}; +typedef void (*btf_trace_nfs4_pnfs_write)(void *, const struct nfs_pgio_header *, int); -struct pericom8250 { - void *virt; - unsigned int nr; - int line[0]; -}; +typedef void (*btf_trace_nfs4_commit)(void *, const struct nfs_commit_data *, int); -typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); +typedef void (*btf_trace_nfs4_pnfs_commit_ds)(void *, const struct nfs_commit_data *, int); -enum nvdimm_event { - NVDIMM_REVALIDATE_POISON = 0, - NVDIMM_REVALIDATE_REGION = 1, -}; +typedef void (*btf_trace_nfs4_layoutget)(void *, const struct nfs_open_context *, const struct pnfs_layout_range *, const struct pnfs_layout_range *, const nfs4_stateid *, int); -struct nd_region_data { - int ns_count; - int ns_active; - unsigned int hints_shift; - void *flush_wpq[0]; -}; +typedef void (*btf_trace_nfs4_layoutcommit)(void *, const struct inode *, const nfs4_stateid *, int); -struct conflict_context { - struct nd_region *nd_region; - resource_size_t start; - resource_size_t size; -}; +typedef void (*btf_trace_nfs4_layoutreturn)(void *, const struct inode *, const nfs4_stateid *, int); -struct sifive_spi { - void *regs; - struct clk *clk; - unsigned int fifo_depth; - u32 cs_inactive; - struct completion done; -}; +typedef void (*btf_trace_nfs4_layoutreturn_on_close)(void *, const struct inode *, const nfs4_stateid *, int); -struct macb_usrio_config; +typedef void (*btf_trace_nfs4_layouterror)(void *, const struct inode *, const nfs4_stateid *, int); -struct macb_config { - u32 caps; - unsigned int dma_burst_length; - int (*clk_init)(struct platform_device *, struct clk **, struct clk **, struct clk **, struct clk **, struct clk **); - int (*init)(struct platform_device *); - unsigned int max_tx_length; - int jumbo_max_len; - const struct macb_usrio_config *usrio; -}; +typedef void (*btf_trace_nfs4_layoutstats)(void *, const struct inode *, const nfs4_stateid *, int); -struct macb_usrio_config { - u32 mii; - u32 rmii; - u32 rgmii; - u32 refclk; - u32 hdfctlen; -}; +typedef void (*btf_trace_pnfs_update_layout)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *, enum pnfs_update_layout_reason); -struct gem_statistic { - char stat_string[32]; - int offset; - u32 stat_bits; -}; +typedef void (*btf_trace_pnfs_mds_fallback_pg_init_read)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -struct phylink_pcs; +typedef void (*btf_trace_pnfs_mds_fallback_pg_init_write)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -struct phylink_link_state; +typedef void (*btf_trace_pnfs_mds_fallback_pg_get_mirror_count)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -struct phylink_pcs_ops { - int (*pcs_validate)(struct phylink_pcs *, unsigned long *, const struct phylink_link_state *); - void (*pcs_get_state)(struct phylink_pcs *, struct phylink_link_state *); - int (*pcs_config)(struct phylink_pcs *, unsigned int, phy_interface_t, const unsigned long *, bool); - void (*pcs_an_restart)(struct phylink_pcs *); - void (*pcs_link_up)(struct phylink_pcs *, unsigned int, phy_interface_t, int, int); -}; +typedef void (*btf_trace_pnfs_mds_fallback_read_done)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -struct phylink_pcs { - const struct phylink_pcs_ops *ops; - bool neg_mode; - bool poll; -}; +typedef void (*btf_trace_pnfs_mds_fallback_write_done)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -struct phylink_link_state { - unsigned long advertising[2]; - unsigned long lp_advertising[2]; - phy_interface_t interface; - int speed; - int duplex; - int pause; - int rate_matching; - unsigned int link: 1; - unsigned int an_complete: 1; -}; +typedef void (*btf_trace_pnfs_mds_fallback_read_pagelist)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -struct phylink_config; +typedef void (*btf_trace_pnfs_mds_fallback_write_pagelist)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); -struct phylink_mac_ops { - void (*validate)(struct phylink_config *, unsigned long *, struct phylink_link_state *); - struct phylink_pcs * (*mac_select_pcs)(struct phylink_config *, phy_interface_t); - void (*mac_pcs_get_state)(struct phylink_config *, struct phylink_link_state *); - int (*mac_prepare)(struct phylink_config *, unsigned int, phy_interface_t); - void (*mac_config)(struct phylink_config *, unsigned int, const struct phylink_link_state *); - int (*mac_finish)(struct phylink_config *, unsigned int, phy_interface_t); - void (*mac_an_restart)(struct phylink_config *); - void (*mac_link_down)(struct phylink_config *, unsigned int, phy_interface_t); - void (*mac_link_up)(struct phylink_config *, struct phy_device *, unsigned int, phy_interface_t, int, int, bool, bool); -}; +typedef void (*btf_trace_nfs4_deviceid_free)(void *, const struct nfs_client *, const struct nfs4_deviceid *); -enum phylink_op_type { - PHYLINK_NETDEV = 0, - PHYLINK_DEV = 1, -}; +typedef void (*btf_trace_nfs4_getdeviceinfo)(void *, const struct nfs_server *, const struct nfs4_deviceid *, int); -struct phylink_config { - struct device *dev; - enum phylink_op_type type; - bool legacy_pre_march2020; - bool poll_fixed_state; - bool mac_managed_pm; - bool ovr_an_inband; - void (*get_fixed_state)(struct phylink_config *, struct phylink_link_state *); - unsigned long supported_interfaces[1]; - unsigned long mac_capabilities; -}; +typedef void (*btf_trace_nfs4_find_deviceid)(void *, const struct nfs_server *, const struct nfs4_deviceid *, int); -struct sifive_fu540_macb_mgmt { - void *reg; - unsigned long rate; - struct clk_hw hw; -}; +typedef void (*btf_trace_ff_layout_read_error)(void *, const struct nfs_pgio_header *); -enum { - MLO_PAUSE_NONE = 0, - MLO_PAUSE_RX = 1, - MLO_PAUSE_TX = 2, - MLO_PAUSE_TXRX_MASK = 3, - MLO_PAUSE_AN = 4, - MLO_AN_PHY = 0, - MLO_AN_FIXED = 1, - MLO_AN_INBAND = 2, - PHYLINK_PCS_NEG_NONE = 0, - PHYLINK_PCS_NEG_ENABLED = 16, - PHYLINK_PCS_NEG_OUTBAND = 32, - PHYLINK_PCS_NEG_INBAND = 64, - PHYLINK_PCS_NEG_INBAND_DISABLED = 64, - PHYLINK_PCS_NEG_INBAND_ENABLED = 80, - MAC_SYM_PAUSE = 1, - MAC_ASYM_PAUSE = 2, - MAC_10HD = 4, - MAC_10FD = 8, - MAC_10 = 12, - MAC_100HD = 16, - MAC_100FD = 32, - MAC_100 = 48, - MAC_1000HD = 64, - MAC_1000FD = 128, - MAC_1000 = 192, - MAC_2500FD = 256, - MAC_5000FD = 512, - MAC_10000FD = 1024, - MAC_20000FD = 2048, - MAC_25000FD = 4096, - MAC_40000FD = 8192, - MAC_50000FD = 16384, - MAC_56000FD = 32768, - MAC_100000FD = 65536, - MAC_200000FD = 131072, - MAC_400000FD = 262144, -}; +typedef void (*btf_trace_ff_layout_write_error)(void *, const struct nfs_pgio_header *); -enum pm_api_id { - PM_GET_API_VERSION = 1, - PM_REGISTER_NOTIFIER = 5, - PM_FORCE_POWERDOWN = 8, - PM_REQUEST_WAKEUP = 10, - PM_SYSTEM_SHUTDOWN = 12, - PM_REQUEST_NODE = 13, - PM_RELEASE_NODE = 14, - PM_SET_REQUIREMENT = 15, - PM_RESET_ASSERT = 17, - PM_RESET_GET_STATUS = 18, - PM_MMIO_WRITE = 19, - PM_MMIO_READ = 20, - PM_PM_INIT_FINALIZE = 21, - PM_FPGA_LOAD = 22, - PM_FPGA_GET_STATUS = 23, - PM_GET_CHIPID = 24, - PM_SECURE_SHA = 26, - PM_PINCTRL_REQUEST = 28, - PM_PINCTRL_RELEASE = 29, - PM_PINCTRL_GET_FUNCTION = 30, - PM_PINCTRL_SET_FUNCTION = 31, - PM_PINCTRL_CONFIG_PARAM_GET = 32, - PM_PINCTRL_CONFIG_PARAM_SET = 33, - PM_IOCTL = 34, - PM_QUERY_DATA = 35, - PM_CLOCK_ENABLE = 36, - PM_CLOCK_DISABLE = 37, - PM_CLOCK_GETSTATE = 38, - PM_CLOCK_SETDIVIDER = 39, - PM_CLOCK_GETDIVIDER = 40, - PM_CLOCK_SETRATE = 41, - PM_CLOCK_GETRATE = 42, - PM_CLOCK_SETPARENT = 43, - PM_CLOCK_GETPARENT = 44, - PM_FPGA_READ = 46, - PM_SECURE_AES = 47, - PM_FEATURE_CHECK = 63, -}; +typedef void (*btf_trace_ff_layout_commit_error)(void *, const struct nfs_commit_data *); -enum pm_ioctl_id { - IOCTL_GET_RPU_OPER_MODE = 0, - IOCTL_SET_RPU_OPER_MODE = 1, - IOCTL_RPU_BOOT_ADDR_CONFIG = 2, - IOCTL_TCM_COMB_CONFIG = 3, - IOCTL_SET_TAPDELAY_BYPASS = 4, - IOCTL_SD_DLL_RESET = 6, - IOCTL_SET_SD_TAPDELAY = 7, - IOCTL_SET_PLL_FRAC_MODE = 8, - IOCTL_GET_PLL_FRAC_MODE = 9, - IOCTL_SET_PLL_FRAC_DATA = 10, - IOCTL_GET_PLL_FRAC_DATA = 11, - IOCTL_WRITE_GGS = 12, - IOCTL_READ_GGS = 13, - IOCTL_WRITE_PGGS = 14, - IOCTL_READ_PGGS = 15, - IOCTL_SET_BOOT_HEALTH_STATUS = 17, - IOCTL_OSPI_MUX_SELECT = 21, - IOCTL_REGISTER_SGI = 25, - IOCTL_SET_FEATURE_CONFIG = 26, - IOCTL_GET_FEATURE_CONFIG = 27, - IOCTL_SET_SD_CONFIG = 30, - IOCTL_SET_GEM_CONFIG = 31, +struct nfs42_seek_args; + +struct nfs42_seek_res; + +typedef void (*btf_trace_nfs4_llseek)(void *, const struct inode *, const struct nfs42_seek_args *, const struct nfs42_seek_res *, int); + +struct nfs42_seek_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *sa_fh; + nfs4_stateid sa_stateid; + u64 sa_offset; + u32 sa_what; }; -enum pm_gem_config_type { - GEM_CONFIG_SGMII_MODE = 1, - GEM_CONFIG_FIXED = 2, +struct nfs42_seek_res { + struct nfs4_sequence_res seq_res; + unsigned int status; + u32 sr_eof; + u64 sr_offset; }; -struct queue_stats { - union { - unsigned long first; - unsigned long rx_packets; - }; - unsigned long rx_bytes; - unsigned long rx_dropped; - unsigned long tx_packets; - unsigned long tx_bytes; - unsigned long tx_dropped; +struct nfs42_falloc_args; + +typedef void (*btf_trace_nfs4_fallocate)(void *, const struct inode *, const struct nfs42_falloc_args *, int); + +struct nfs42_falloc_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *falloc_fh; + nfs4_stateid falloc_stateid; + u64 falloc_offset; + u64 falloc_length; + const u32 *falloc_bitmask; }; -struct macb; +typedef void (*btf_trace_nfs4_deallocate)(void *, const struct inode *, const struct nfs42_falloc_args *, int); -struct macb_dma_desc; +struct nfs42_copy_args; -struct macb_tx_skb; +struct nfs42_copy_res; -struct macb_queue { - struct macb *bp; - int irq; - unsigned int ISR; - unsigned int IER; - unsigned int IDR; - unsigned int IMR; - unsigned int TBQP; - unsigned int TBQPH; - unsigned int RBQS; - unsigned int RBQP; - unsigned int RBQPH; - spinlock_t tx_ptr_lock; - unsigned int tx_head; - unsigned int tx_tail; - struct macb_dma_desc *tx_ring; - struct macb_tx_skb *tx_skb; - dma_addr_t tx_ring_dma; - struct work_struct tx_error_task; - bool txubr_pending; - struct napi_struct napi_tx; - dma_addr_t rx_ring_dma; - dma_addr_t rx_buffers_dma; - unsigned int rx_tail; - unsigned int rx_prepared_head; - struct macb_dma_desc *rx_ring; - struct sk_buff **rx_skbuff; - void *rx_buffers; - struct napi_struct napi_rx; - struct queue_stats stats; -}; +typedef void (*btf_trace_nfs4_copy)(void *, const struct inode *, const struct inode *, const struct nfs42_copy_args *, const struct nfs42_copy_res *, const struct nl4_server *, int); -struct macb_stats { - u32 rx_pause_frames; - u32 tx_ok; - u32 tx_single_cols; - u32 tx_multiple_cols; - u32 rx_ok; - u32 rx_fcs_errors; - u32 rx_align_errors; - u32 tx_deferred; - u32 tx_late_cols; - u32 tx_excessive_cols; - u32 tx_underruns; - u32 tx_carrier_errors; - u32 rx_resource_errors; - u32 rx_overruns; - u32 rx_symbol_errors; - u32 rx_oversize_pkts; - u32 rx_jabbers; - u32 rx_undersize_pkts; - u32 sqe_test_errors; - u32 rx_length_mismatch; - u32 tx_pause_frames; +struct nfs42_copy_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *src_fh; + nfs4_stateid src_stateid; + u64 src_pos; + struct nfs_fh *dst_fh; + nfs4_stateid dst_stateid; + u64 dst_pos; + u64 count; + bool sync; + struct nl4_server *cp_src; }; -struct gem_stats { - u32 tx_octets_31_0; - u32 tx_octets_47_32; - u32 tx_frames; - u32 tx_broadcast_frames; - u32 tx_multicast_frames; - u32 tx_pause_frames; - u32 tx_64_byte_frames; - u32 tx_65_127_byte_frames; - u32 tx_128_255_byte_frames; - u32 tx_256_511_byte_frames; - u32 tx_512_1023_byte_frames; - u32 tx_1024_1518_byte_frames; - u32 tx_greater_than_1518_byte_frames; - u32 tx_underrun; - u32 tx_single_collision_frames; - u32 tx_multiple_collision_frames; - u32 tx_excessive_collisions; - u32 tx_late_collisions; - u32 tx_deferred_frames; - u32 tx_carrier_sense_errors; - u32 rx_octets_31_0; - u32 rx_octets_47_32; - u32 rx_frames; - u32 rx_broadcast_frames; - u32 rx_multicast_frames; - u32 rx_pause_frames; - u32 rx_64_byte_frames; - u32 rx_65_127_byte_frames; - u32 rx_128_255_byte_frames; - u32 rx_256_511_byte_frames; - u32 rx_512_1023_byte_frames; - u32 rx_1024_1518_byte_frames; - u32 rx_greater_than_1518_byte_frames; - u32 rx_undersized_frames; - u32 rx_oversize_frames; - u32 rx_jabbers; - u32 rx_frame_check_sequence_errors; - u32 rx_length_field_frame_errors; - u32 rx_symbol_errors; - u32 rx_alignment_errors; - u32 rx_resource_errors; - u32 rx_overruns; - u32 rx_ip_header_checksum_errors; - u32 rx_tcp_checksum_errors; - u32 rx_udp_checksum_errors; +struct nfs42_write_res { + nfs4_stateid stateid; + u64 count; + struct nfs_writeverf verifier; }; -struct macb_or_gem_ops { - int (*mog_alloc_rx_buffers)(struct macb *); - void (*mog_free_rx_buffers)(struct macb *); - void (*mog_init_rings)(struct macb *); - int (*mog_rx)(struct macb_queue *, struct napi_struct *, int); +struct nfs42_copy_res { + struct nfs4_sequence_res seq_res; + struct nfs42_write_res write_res; + bool consecutive; + bool synchronous; + struct nfs_commitres commit_res; }; -struct macb_tx_skb { - struct sk_buff *skb; - dma_addr_t mapping; - size_t size; - bool mapped_as_page; -}; +struct nfs42_clone_args; -struct tsu_incr { - u32 sub_ns; - u32 ns; -}; +typedef void (*btf_trace_nfs4_clone)(void *, const struct inode *, const struct inode *, const struct nfs42_clone_args *, int); -struct ethtool_rx_fs_list { - struct list_head list; - unsigned int count; +struct nfs42_clone_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *src_fh; + struct nfs_fh *dst_fh; + nfs4_stateid src_stateid; + nfs4_stateid dst_stateid; + __u64 src_offset; + __u64 dst_offset; + __u64 count; + const u32 *dst_bitmask; }; -struct macb_pm_data { - u32 scrt2; - u32 usrio; -}; +struct nfs42_copy_notify_args; -struct macb_ptp_info; +typedef void (*btf_trace_nfs4_copy_notify)(void *, const struct inode *, const struct nfs42_copy_notify_args *, const struct nfs42_copy_notify_res *, int); -struct macb { - void *regs; - bool native_io; - u32 (*macb_reg_readl)(struct macb *, int); - void (*macb_reg_writel)(struct macb *, int, u32); - size_t rx_buffer_size; - unsigned int rx_ring_size; - unsigned int tx_ring_size; - unsigned int num_queues; - unsigned int queue_mask; - struct macb_queue queues[8]; - spinlock_t lock; - struct platform_device *pdev; - struct clk *pclk; - struct clk *hclk; - struct clk *tx_clk; - struct clk *rx_clk; - struct clk *tsu_clk; - struct net_device *dev; - union { - struct macb_stats macb; - struct gem_stats gem; - } hw_stats; - struct macb_or_gem_ops macbgem_ops; - struct mii_bus *mii_bus; - struct phylink *phylink; - struct phylink_config phylink_config; - struct phylink_pcs phylink_usx_pcs; - struct phylink_pcs phylink_sgmii_pcs; - u32 caps; - unsigned int dma_burst_length; - phy_interface_t phy_interface; - struct macb_tx_skb rm9200_txq[2]; - unsigned int max_tx_length; - u64 ethtool_stats[91]; - unsigned int rx_frm_len_mask; - unsigned int jumbo_max_len; - u32 wol; - u32 rx_watermark; - struct macb_ptp_info *ptp_info; - struct phy *sgmii_phy; - uint8_t hw_dma_cap; - spinlock_t tsu_clk_lock; - unsigned int tsu_rate; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_clock_info; - struct tsu_incr tsu_incr; - struct hwtstamp_config tstamp_config; - struct ethtool_rx_fs_list rx_fs_list; - spinlock_t rx_fs_lock; - unsigned int max_tuples; - struct tasklet_struct hresp_err_tasklet; - int rx_bd_rd_prefetch; - int tx_bd_rd_prefetch; - u32 rx_intr_mask; - struct macb_pm_data pm_data; - const struct macb_usrio_config *usrio; +struct nfs42_copy_notify_args { + struct nfs4_sequence_args cna_seq_args; + struct nfs_fh *cna_src_fh; + nfs4_stateid cna_src_stateid; + struct nl4_server cna_dst; }; -struct macb_ptp_info { - void (*ptp_init)(struct net_device *); - void (*ptp_remove)(struct net_device *); - s32 (*get_ptp_max_adj)(); - unsigned int (*get_tsu_rate)(struct macb *); - int (*get_ts_info)(struct net_device *, struct ethtool_ts_info *); - int (*get_hwtst)(struct net_device *, struct ifreq *); - int (*set_hwtst)(struct net_device *, struct ifreq *, int); -}; +struct nfs42_offload_status_args; -struct macb_dma_desc { - u32 addr; - u32 ctrl; -}; +typedef void (*btf_trace_nfs4_offload_cancel)(void *, const struct nfs42_offload_status_args *, int); -struct macb_dma_desc_64 { - u32 addrh; - u32 resvd; +struct nfs42_offload_status_args { + struct nfs4_sequence_args osa_seq_args; + struct nfs_fh *osa_src_fh; + nfs4_stateid osa_stateid; }; -struct ethtool_rx_fs_item { - struct ethtool_rx_flow_spec fs; - struct list_head list; -}; +typedef void (*btf_trace_nfs4_getxattr)(void *, const struct inode *, const char *, int); -struct macb_platform_data { - struct clk *pclk; - struct clk *hclk; -}; +typedef void (*btf_trace_nfs4_setxattr)(void *, const struct inode *, const char *, int); -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; -}; +typedef void (*btf_trace_nfs4_removexattr)(void *, const struct inode *, const char *, int); -struct sun6i_rtc_clk_data; +typedef void (*btf_trace_nfs4_listxattr)(void *, const struct inode *, int); -struct sun6i_rtc_dev { - struct rtc_device *rtc; - const struct sun6i_rtc_clk_data *data; - void *base; - int irq; - time64_t alarm; - unsigned long flags; - struct clk_hw hw; - struct clk_hw *int_osc; - struct clk *losc; - struct clk *ext_losc; - spinlock_t lock; +struct trace_event_raw_nfs4_clientid_event { + struct trace_entry ent; + u32 __data_loc_dstaddr; + unsigned long error; + char __data[0]; }; -struct sun6i_rtc_clk_data { - unsigned long rc_osc_rate; - unsigned int fixed_prescaler: 16; - unsigned int has_prescaler: 1; - unsigned int has_out_clk: 1; - unsigned int has_losc_en: 1; - unsigned int has_auto_swt: 1; +struct trace_event_raw_nfs4_sequence_done { + struct trace_entry ent; + unsigned int session; + unsigned int slot_nr; + unsigned int seq_nr; + unsigned int highest_slotid; + unsigned int target_highest_slotid; + unsigned long status_flags; + unsigned long error; + char __data[0]; }; -typedef int tpl_parse_t(struct mmc_card *, struct sdio_func *, const unsigned char *, unsigned int); - -struct cis_tpl { - unsigned char code; - unsigned char min_size; - tpl_parse_t *parse; +struct trace_event_raw_nfs4_cb_sequence { + struct trace_entry ent; + unsigned int session; + unsigned int slot_nr; + unsigned int seq_nr; + unsigned int highest_slotid; + unsigned int cachethis; + unsigned long error; + char __data[0]; }; -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 trace_event_raw_nfs4_cb_seqid_err { + struct trace_entry ent; + unsigned int session; + unsigned int slot_nr; + unsigned int seq_nr; + unsigned int highest_slotid; + unsigned int cachethis; + unsigned long error; + char __data[0]; }; -struct gnet_stats_basic { - __u64 bytes; - __u32 packets; +struct trace_event_raw_nfs4_cb_offload { + struct trace_entry ent; + unsigned long error; + u32 fhandle; + loff_t cb_count; + int cb_how; + int cb_stateid_seq; + u32 cb_stateid_hash; + char __data[0]; }; -struct gnet_stats_rate_est { - __u32 bps; - __u32 pps; +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]; }; -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, +struct trace_event_raw_nfs4_state_mgr { + struct trace_entry ent; + unsigned long state; + u32 __data_loc_hostname; + char __data[0]; }; -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 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 fib_rule_uid_range { - __u32 start; - __u32 end; +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 fib_rule_notifier_info { - struct fib_notifier_info info; - struct fib_rule *rule; +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]; }; -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 trace_event_raw_nfs4_cb_error_class { + struct trace_entry ent; + u32 xid; + u32 cbident; + char __data[0]; }; -struct features_reply_data { - struct ethnl_reply_data base; - u32 hw[2]; - u32 wanted[2]; - u32 active[2]; - u32 nochange[2]; - u32 all[2]; +struct 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]; }; -enum ip_defrag_users { - IP_DEFRAG_LOCAL_DELIVER = 0, - IP_DEFRAG_CALL_RA_CHAIN = 1, - IP_DEFRAG_CONNTRACK_IN = 2, - __IP_DEFRAG_CONNTRACK_IN_END = 65537, - IP_DEFRAG_CONNTRACK_OUT = 65538, - __IP_DEFRAG_CONNTRACK_OUT_END = 131073, - IP_DEFRAG_CONNTRACK_BRIDGE_IN = 131074, - __IP_DEFRAG_CONNTRACK_BRIDGE_IN = 196609, - IP_DEFRAG_VS_IN = 196610, - IP_DEFRAG_VS_OUT = 196611, - IP_DEFRAG_VS_FWD = 196612, - IP_DEFRAG_AF_PACKET = 196613, - IP_DEFRAG_MACVLAN = 196614, +struct 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 ipq { - struct inet_frag_queue q; - u8 ecn; - u16 max_df_size; - int iif; - unsigned int rid; - struct inet_peer *peer; +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 fib_prop { - int error; - u8 scope; +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 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 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 fib_nh_notifier_info { - struct fib_notifier_info info; - struct fib_nh *fib_nh; +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 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 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 scm_stat { - atomic_t nr_fds; +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 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; - struct socket_wq peer_wq; - wait_queue_entry_t peer_wake; - struct scm_stat scm_stat; - struct sk_buff *oob_skb; - long: 64; +struct trace_event_raw_nfs4_test_stateid_event { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; + u64 fileid; + int stateid_seq; + u32 stateid_hash; + char __data[0]; }; -struct unix_address { - refcount_t refcnt; - int len; - struct sockaddr_un name[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 unix_skb_parms { - struct pid *pid; - kuid_t uid; - kgid_t gid; - struct scm_fp_list *fp; - u32 secid; - u32 consumed; +struct trace_event_raw_nfs4_lookupp { + struct trace_entry ent; + dev_t dev; + u64 ino; + unsigned long error; + char __data[0]; }; -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 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 decryptor_desc { - u8 iv[16]; - struct skcipher_request *req; - struct scatterlist frags[4]; - int fragno; - int fraglen; +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 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 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 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 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 lzma_header { - uint8_t pos; - uint32_t dict_size; - uint64_t dst_size; -} __attribute__((packed)); +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 cstate { - int state; - uint32_t rep0; - uint32_t rep1; - uint32_t rep2; - uint32_t rep3; +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 fdt_errtabent { - const char *str; +struct trace_event_raw_nfs4_idmap_event { + struct trace_entry ent; + unsigned long error; + u32 id; + u32 __data_loc_name; + char __data[0]; }; -struct printf_spec { - unsigned int type: 8; - int field_width: 24; - unsigned int flags: 8; - unsigned int base: 8; - int precision: 16; +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 page_flags_fields { - int width; - int shift; - int mask; - const struct printf_spec *spec; - const char *name; +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]; }; -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 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 pt_regs_offset { - const char *name; - int offset; +struct trace_event_raw_nfs4_layoutget { + struct trace_entry ent; + dev_t dev; + u32 fhandle; + u64 fileid; + u32 iomode; + u64 offset; + u64 count; + unsigned long error; + int stateid_seq; + u32 stateid_hash; + int layoutstateid_seq; + u32 layoutstateid_hash; + char __data[0]; }; -typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int); +struct trace_event_raw_pnfs_update_layout { + struct trace_entry ent; + dev_t dev; + u64 fileid; + u32 fhandle; + loff_t pos; + u64 count; + enum pnfs_iomode iomode; + int layoutstateid_seq; + u32 layoutstateid_hash; + long lseg; + enum pnfs_update_layout_reason reason; + char __data[0]; +}; -typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); +struct trace_event_raw_pnfs_layout_event { + struct trace_entry ent; + dev_t dev; + u64 fileid; + u32 fhandle; + loff_t pos; + u64 count; + enum pnfs_iomode iomode; + int layoutstateid_seq; + u32 layoutstateid_hash; + long lseg; + char __data[0]; +}; -enum sig_handler { - HANDLER_CURRENT = 0, - HANDLER_SIG_DFL = 1, - HANDLER_EXIT = 2, +struct trace_event_raw_nfs4_deviceid_event { + struct trace_entry ent; + u32 __data_loc_dstaddr; + unsigned char deviceid[16]; + char __data[0]; }; -enum { - TRACE_SIGNAL_DELIVERED = 0, - TRACE_SIGNAL_IGNORED = 1, - TRACE_SIGNAL_ALREADY_PENDING = 2, - TRACE_SIGNAL_OVERFLOW_FAIL = 3, - TRACE_SIGNAL_LOSE_INFO = 4, +struct trace_event_raw_nfs4_deviceid_status { + struct trace_entry ent; + dev_t dev; + int status; + u32 __data_loc_dstaddr; + unsigned char deviceid[16]; + char __data[0]; }; -struct sigqueue { - struct list_head list; - int flags; - kernel_siginfo_t info; - struct ucounts *ucounts; +struct trace_event_raw_nfs4_flexfiles_io_event { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; + u64 fileid; + loff_t offset; + u32 count; + int stateid_seq; + u32 stateid_hash; + u32 __data_loc_dstaddr; + char __data[0]; }; -struct sigaltstack { - void __attribute__((btf_type_tag("user"))) *ss_sp; - int ss_flags; - __kernel_size_t ss_size; +struct trace_event_raw_ff_layout_commit_error { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; + u64 fileid; + loff_t offset; + u32 count; + u32 __data_loc_dstaddr; + char __data[0]; }; -typedef struct sigaltstack stack_t; +struct trace_event_raw_nfs4_llseek { + struct trace_entry ent; + unsigned long error; + u32 fhandle; + u32 fileid; + dev_t dev; + int stateid_seq; + u32 stateid_hash; + loff_t offset_s; + u32 what; + loff_t offset_r; + u32 eof; + char __data[0]; +}; -struct compat_sigaction { - compat_uptr_t sa_handler; - compat_ulong_t sa_flags; - compat_sigset_t sa_mask; +struct trace_event_raw_nfs4_sparse_event { + struct trace_entry ent; + unsigned long error; + loff_t offset; + loff_t len; + dev_t dev; + u32 fhandle; + u64 fileid; + int stateid_seq; + u32 stateid_hash; + char __data[0]; }; -struct trace_event_raw_signal_generate { +struct trace_event_raw_nfs4_copy { struct trace_entry ent; - int sig; - int errno; - int code; - char comm[16]; - pid_t pid; - int group; - int result; + unsigned long error; + u32 src_fhandle; + u32 src_fileid; + u32 dst_fhandle; + u32 dst_fileid; + dev_t src_dev; + dev_t dst_dev; + int src_stateid_seq; + u32 src_stateid_hash; + int dst_stateid_seq; + u32 dst_stateid_hash; + loff_t src_offset; + loff_t dst_offset; + bool sync; + loff_t len; + int res_stateid_seq; + u32 res_stateid_hash; + loff_t res_count; + bool res_sync; + bool res_cons; + bool intra; char __data[0]; }; -struct trace_event_raw_signal_deliver { +struct trace_event_raw_nfs4_clone { struct trace_entry ent; - int sig; - int errno; - int code; - unsigned long sa_handler; - unsigned long sa_flags; + unsigned long error; + u32 src_fhandle; + u32 src_fileid; + u32 dst_fhandle; + u32 dst_fileid; + dev_t src_dev; + dev_t dst_dev; + loff_t src_offset; + loff_t dst_offset; + int src_stateid_seq; + u32 src_stateid_hash; + int dst_stateid_seq; + u32 dst_stateid_hash; + loff_t len; char __data[0]; }; -struct multiprocess_signals { - sigset_t signal; - struct hlist_node node; +struct trace_event_raw_nfs4_copy_notify { + struct trace_entry ent; + unsigned long error; + u32 fhandle; + u32 fileid; + dev_t dev; + int stateid_seq; + u32 stateid_hash; + int res_stateid_seq; + u32 res_stateid_hash; + char __data[0]; }; -struct trace_event_data_offsets_signal_generate {}; - -struct trace_event_data_offsets_signal_deliver {}; - -enum { - FUTEX_STATE_OK = 0, - FUTEX_STATE_EXITING = 1, - FUTEX_STATE_DEAD = 2, +struct trace_event_raw_nfs4_offload_cancel { + struct trace_entry ent; + unsigned long error; + u32 fhandle; + int stateid_seq; + u32 stateid_hash; + char __data[0]; }; -struct idmap_key { - bool map_up; - u32 id; - u32 count; +struct trace_event_raw_nfs4_xattr_event { + struct trace_entry ent; + unsigned long error; + dev_t dev; + u32 fhandle; + u64 fileid; + u32 __data_loc_name; + char __data[0]; }; -struct ftrace_graph_ret; - -typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); - -struct ftrace_graph_ret { - unsigned long func; - unsigned long retval; - int depth; - unsigned int overrun; - unsigned long long calltime; - unsigned long long rettime; +struct trace_event_data_offsets_nfs4_clientid_event { + u32 dstaddr; }; -struct ftrace_graph_ent; - -typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); - -struct ftrace_graph_ent { - unsigned long func; - int depth; -} __attribute__((packed)); - -enum { - FTRACE_UPDATE_CALLS = 1, - FTRACE_DISABLE_CALLS = 2, - FTRACE_UPDATE_TRACE_FUNC = 4, - FTRACE_START_FUNC_RET = 8, - FTRACE_STOP_FUNC_RET = 16, - FTRACE_MAY_SLEEP = 32, +struct trace_event_data_offsets_nfs4_state_mgr { + u32 hostname; }; -struct fgraph_ret_regs { - unsigned long a1; - unsigned long a0; - unsigned long s0; - unsigned long ra; +struct trace_event_data_offsets_nfs4_state_mgr_failed { + u32 hostname; + u32 section; }; -struct fgraph_ops { - trace_func_graph_ent_t entryfunc; - trace_func_graph_ret_t retfunc; +struct trace_event_data_offsets_nfs4_open_event { + u32 name; }; -struct pcpu_freelist_node; - -struct pcpu_freelist_head { - struct pcpu_freelist_node *first; - raw_spinlock_t lock; +struct trace_event_data_offsets_nfs4_lookup_event { + u32 name; }; -struct pcpu_freelist { - struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist; - struct pcpu_freelist_head extralist; +struct trace_event_data_offsets_nfs4_rename { + u32 oldname; + u32 newname; }; -struct bpf_lru_list { - struct list_head lists[3]; - unsigned int counts[2]; - struct list_head *next_inactive_rotation; - raw_spinlock_t lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct trace_event_data_offsets_nfs4_inode_callback_event { + u32 dstaddr; }; -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 trace_event_data_offsets_nfs4_inode_stateid_callback_event { + u32 dstaddr; }; -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: 64; - long: 64; - long: 64; - long: 64; +struct trace_event_data_offsets_nfs4_idmap_event { + u32 name; }; -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; +struct trace_event_data_offsets_nfs4_deviceid_event { + u32 dstaddr; }; -struct bucket { - struct hlist_nulls_head head; - raw_spinlock_t raw_lock; +struct trace_event_data_offsets_nfs4_deviceid_status { + u32 dstaddr; }; -struct pcpu_freelist_node { - struct pcpu_freelist_node *next; +struct trace_event_data_offsets_nfs4_flexfiles_io_event { + u32 dstaddr; }; -struct bpf_lru_locallist { - struct list_head lists[2]; - u16 next_steal; - raw_spinlock_t lock; +struct trace_event_data_offsets_ff_layout_commit_error { + u32 dstaddr; }; -struct bpf_lru_node { - struct list_head list; - u16 cpu; - u8 type; - u8 ref; +struct trace_event_data_offsets_nfs4_xattr_event { + u32 name; }; -struct htab_elem { - union { - struct hlist_nulls_node hash_node; - struct { - void *padding; - union { - struct pcpu_freelist_node fnode; - struct htab_elem *batch_flink; - }; - }; - }; - union { - void *ptr_to_pptr; - struct bpf_lru_node lru_node; - }; - u32 hash; - long: 0; - char key[0]; -}; +struct trace_event_data_offsets_nfs4_sequence_done {}; -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 trace_event_data_offsets_nfs4_cb_sequence {}; -struct vm_event_state { - unsigned long event[74]; -}; +struct trace_event_data_offsets_nfs4_cb_seqid_err {}; -enum writeback_stat_item { - NR_DIRTY_THRESHOLD = 0, - NR_DIRTY_BG_THRESHOLD = 1, - NR_VM_WRITEBACK_STAT_ITEMS = 2, -}; +struct trace_event_data_offsets_nfs4_cb_offload {}; -struct contig_page_info { - unsigned long free_pages; - unsigned long free_blocks_total; - unsigned long free_blocks_suitable; -}; +struct trace_event_data_offsets_nfs4_setup_sequence {}; -enum compound_dtor_id { - NULL_COMPOUND_DTOR = 0, - COMPOUND_PAGE_DTOR = 1, - HUGETLB_PAGE_DTOR = 2, - NR_COMPOUND_DTORS = 3, -}; +struct trace_event_data_offsets_nfs4_xdr_bad_operation {}; -enum { - FOLL_TOUCH = 65536, - FOLL_TRIED = 131072, - FOLL_REMOTE = 262144, - FOLL_PIN = 524288, - FOLL_FAST_ONLY = 1048576, - FOLL_UNLOCKABLE = 2097152, -}; +struct trace_event_data_offsets_nfs4_xdr_event {}; -enum { - ZONELIST_FALLBACK = 0, - MAX_ZONELISTS = 1, -}; +struct trace_event_data_offsets_nfs4_cb_error_class {}; -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 trace_event_data_offsets_nfs4_cached_open {}; -struct huge_bootmem_page { - struct list_head list; - struct hstate *hstate; -}; +struct trace_event_data_offsets_nfs4_close {}; -struct inotify_event_info { - struct fsnotify_event fse; - u32 mask; - int wd; - u32 sync_cookie; - int name_len; - char name[0]; -}; +struct trace_event_data_offsets_nfs4_lock_event {}; -struct inotify_event { - __s32 wd; - __u32 mask; - __u32 cookie; - __u32 len; - char name[0]; -}; +struct trace_event_data_offsets_nfs4_set_lock {}; -typedef struct { - __le32 *p; - __le32 key; - struct buffer_head *bh; -} Indirect; +struct trace_event_data_offsets_nfs4_state_lock_reclaim {}; -struct fat_cache { - struct list_head cache_list; - int nr_contig; - int fcluster; - int dcluster; -}; +struct trace_event_data_offsets_nfs4_set_delegation_event {}; -struct fat_cache_id { - unsigned int id; - int nr_contig; - int fcluster; - int dcluster; -}; +struct trace_event_data_offsets_nfs4_delegreturn_exit {}; -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 trace_event_data_offsets_nfs4_test_stateid_event {}; -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, -}; +struct trace_event_data_offsets_nfs4_lookupp {}; -struct pnfs_commit_bucket { - struct list_head written; - struct list_head committing; - struct pnfs_layout_segment *lseg; - struct nfs_writeverf direct_verf; -}; +struct trace_event_data_offsets_nfs4_inode_event {}; -struct pnfs_commit_array { - struct list_head cinfo_list; - struct list_head lseg_list; - struct pnfs_layout_segment *lseg; - struct callback_head rcu; - refcount_t refcount; - unsigned int nbuckets; - struct pnfs_commit_bucket buckets[0]; -}; +struct trace_event_data_offsets_nfs4_inode_stateid_event {}; -typedef void (*btf_trace_nfs4_setclientid)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_nfs4_getattr_event {}; -typedef void (*btf_trace_nfs4_setclientid_confirm)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_nfs4_read_event {}; -typedef void (*btf_trace_nfs4_renew)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_nfs4_write_event {}; -typedef void (*btf_trace_nfs4_renew_async)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_nfs4_commit_event {}; -typedef void (*btf_trace_nfs4_exchange_id)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_nfs4_layoutget {}; -typedef void (*btf_trace_nfs4_create_session)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_pnfs_update_layout {}; -typedef void (*btf_trace_nfs4_destroy_session)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_pnfs_layout_event {}; -typedef void (*btf_trace_nfs4_destroy_clientid)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_nfs4_llseek {}; -typedef void (*btf_trace_nfs4_bind_conn_to_session)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_nfs4_sparse_event {}; -typedef void (*btf_trace_nfs4_sequence)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_nfs4_copy {}; -typedef void (*btf_trace_nfs4_reclaim_complete)(void *, const struct nfs_client *, int); +struct trace_event_data_offsets_nfs4_clone {}; -typedef void (*btf_trace_nfs4_sequence_done)(void *, const struct nfs4_session *, const struct nfs4_sequence_res *); +struct trace_event_data_offsets_nfs4_copy_notify {}; -struct cb_sequenceargs; +struct trace_event_data_offsets_nfs4_offload_cancel {}; -struct cb_sequenceres; +struct vfs_cap_data { + __le32 magic_etc; + struct { + __le32 permitted; + __le32 inheritable; + } data[2]; +}; -typedef void (*btf_trace_nfs4_cb_sequence)(void *, const struct cb_sequenceargs *, const struct cb_sequenceres *, __be32); +struct vfs_ns_cap_data { + __le32 magic_etc; + struct { + __le32 permitted; + __le32 inheritable; + } data[2]; + __le32 rootid; +}; -struct referring_call_list; +enum { + AAFS_LOADDATA_ABI = 0, + AAFS_LOADDATA_REVISION = 1, + AAFS_LOADDATA_HASH = 2, + AAFS_LOADDATA_DATA = 3, + AAFS_LOADDATA_COMPRESSED_SIZE = 4, + AAFS_LOADDATA_DIR = 5, + AAFS_LOADDATA_NDENTS = 6, +}; -struct cb_sequenceargs { - struct sockaddr *csa_addr; - struct nfs4_sessionid csa_sessionid; - uint32_t csa_sequenceid; - uint32_t csa_slotid; - uint32_t csa_highestslotid; - uint32_t csa_cachethis; - uint32_t csa_nrclists; - struct referring_call_list *csa_rclists; +enum aa_code { + AA_U8 = 0, + AA_U16 = 1, + AA_U32 = 2, + AA_U64 = 3, + AA_NAME = 4, + AA_STRING = 5, + AA_BLOB = 6, + AA_STRUCT = 7, + AA_STRUCTEND = 8, + AA_LIST = 9, + AA_LISTEND = 10, + AA_ARRAY = 11, + AA_ARRAYEND = 12, }; -struct referring_call; +struct aa_loaddata { + struct kref count; + struct list_head list; + struct work_struct work; + struct dentry *dents[6]; + struct aa_ns *ns; + char *name; + size_t size; + size_t compressed_size; + long revision; + int abi; + unsigned char *hash; + char *data; +}; -struct referring_call_list { - struct nfs4_sessionid rcl_sessionid; - uint32_t rcl_nrefcalls; - struct referring_call *rcl_refcalls; +struct aa_load_ent { + struct list_head list; + struct aa_profile *new; + struct aa_profile *old; + struct aa_profile *rename; + const char *ns_name; }; -struct referring_call { - uint32_t rc_sequenceid; - uint32_t rc_slotid; +struct aa_ext { + void *start; + void *end; + void *pos; + u32 version; }; -struct cb_sequenceres { - __be32 csr_status; - struct nfs4_sessionid csr_sessionid; - uint32_t csr_sequenceid; - uint32_t csr_slotid; - uint32_t csr_highestslotid; - uint32_t csr_target_highestslotid; +struct aa_data { + char *key; + u32 size; + char *data; + struct rhash_head head; +}; + +typedef struct { + int contentSizeFlag; + int checksumFlag; + int noDictIDFlag; +} ZSTD_frameParameters; + +typedef struct { + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; +} ZSTD_parameters; + +typedef ZSTD_parameters zstd_parameters; + +typedef enum { + ZSTDcs_created = 0, + ZSTDcs_init = 1, + ZSTDcs_ongoing = 2, + ZSTDcs_ending = 3, +} ZSTD_compressionStage_e; + +typedef enum { + ZSTD_dictDefaultAttach = 0, + ZSTD_dictForceAttach = 1, + ZSTD_dictForceCopy = 2, + ZSTD_dictForceLoad = 3, +} ZSTD_dictAttachPref_e; + +typedef enum { + ZSTD_sf_noBlockDelimiters = 0, + ZSTD_sf_explicitBlockDelimiters = 1, +} ZSTD_sequenceFormat_e; + +struct ZSTD_CCtx_params_s { + ZSTD_format_e format; + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; + int compressionLevel; + int forceWindow; + size_t targetCBlockSize; + int srcSizeHint; + ZSTD_dictAttachPref_e attachDictPref; + ZSTD_paramSwitch_e literalCompressionMode; + int nbWorkers; + size_t jobSize; + int overlapLog; + int rsyncable; + ldmParams_t ldmParams; + int enableDedicatedDictSearch; + ZSTD_bufferMode_e inBufferMode; + ZSTD_bufferMode_e outBufferMode; + ZSTD_sequenceFormat_e blockDelimiters; + int validateSequences; + ZSTD_paramSwitch_e useBlockSplitter; + ZSTD_paramSwitch_e useRowMatchFinder; + int deterministicRefPrefix; + ZSTD_customMem customMem; }; -typedef void (*btf_trace_nfs4_cb_seqid_err)(void *, const struct cb_sequenceargs *, __be32); - -typedef void (*btf_trace_nfs4_cb_offload)(void *, const struct nfs_fh *, const nfs4_stateid *, uint64_t, int, 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 struct ZSTD_CCtx_params_s ZSTD_CCtx_params; -typedef void (*btf_trace_nfs4_xdr_status)(void *, const struct xdr_stream *, u32, u32); +typedef enum { + ZSTD_cwksp_alloc_objects = 0, + ZSTD_cwksp_alloc_buffers = 1, + ZSTD_cwksp_alloc_aligned = 2, +} ZSTD_cwksp_alloc_phase_e; -typedef void (*btf_trace_nfs4_xdr_bad_filehandle)(void *, const struct xdr_stream *, u32, u32); +typedef enum { + ZSTD_cwksp_dynamic_alloc = 0, + ZSTD_cwksp_static_alloc = 1, +} ZSTD_cwksp_static_alloc_e; -typedef void (*btf_trace_nfs_cb_no_clp)(void *, __be32, u32); +typedef struct { + void *workspace; + void *workspaceEnd; + void *objectEnd; + void *tableEnd; + void *tableValidEnd; + void *allocStart; + BYTE allocFailed; + int workspaceOversizedDuration; + ZSTD_cwksp_alloc_phase_e phase; + ZSTD_cwksp_static_alloc_e isStatic; +} ZSTD_cwksp; -typedef void (*btf_trace_nfs_cb_badprinc)(void *, __be32, u32); +struct POOL_ctx_s; -typedef void (*btf_trace_nfs4_open_reclaim)(void *, const struct nfs_open_context *, int, int); +typedef struct POOL_ctx_s ZSTD_threadPool; -typedef void (*btf_trace_nfs4_open_expired)(void *, const struct nfs_open_context *, int, int); +typedef struct { + unsigned int offset; + unsigned int litLength; + unsigned int matchLength; + unsigned int rep; +} ZSTD_Sequence; -typedef void (*btf_trace_nfs4_open_file)(void *, const struct nfs_open_context *, int, int); +typedef struct { + int collectSequences; + ZSTD_Sequence *seqStart; + size_t seqIndex; + size_t maxSequences; +} SeqCollector; -typedef void (*btf_trace_nfs4_cached_open)(void *, const struct nfs4_state *); +typedef struct { + ZSTD_entropyCTables_t entropy; + U32 rep[3]; +} ZSTD_compressedBlockState_t; -struct nfs_closeargs; +typedef struct { + ZSTD_compressedBlockState_t *prevCBlock; + ZSTD_compressedBlockState_t *nextCBlock; + ZSTD_matchState_t matchState; +} ZSTD_blockState_t; -struct nfs_closeres; +typedef enum { + ZSTDb_not_buffered = 0, + ZSTDb_buffered = 1, +} ZSTD_buffered_policy_e; -typedef void (*btf_trace_nfs4_close)(void *, const struct nfs4_state *, const struct nfs_closeargs *, const struct nfs_closeres *, int); +typedef enum { + zcss_init = 0, + zcss_load = 1, + zcss_flush = 2, +} ZSTD_cStreamStage; -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 ZSTD_CDict_s; -struct nfs4_layoutreturn_res; +typedef struct ZSTD_CDict_s ZSTD_CDict; -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; -}; +typedef struct { + void *dictBuffer; + const void *dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; + ZSTD_CDict *cdict; +} ZSTD_localDict; -struct nfs4_layoutreturn_res { - struct nfs4_sequence_res seq_res; - u32 lrs_present; - nfs4_stateid stateid; +struct ZSTD_prefixDict_s { + const void *dict; + size_t dictSize; + ZSTD_dictContentType_e dictContentType; }; -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 struct ZSTD_prefixDict_s ZSTD_prefixDict; -typedef void (*btf_trace_nfs4_reclaim_delegation)(void *, const struct inode *, fmode_t); +typedef struct { + symbolEncodingType_e hType; + BYTE hufDesBuffer[128]; + size_t hufDesSize; +} ZSTD_hufCTablesMetadata_t; -struct nfs4_delegreturnargs; +typedef struct { + symbolEncodingType_e llType; + symbolEncodingType_e ofType; + symbolEncodingType_e mlType; + BYTE fseTablesBuffer[133]; + size_t fseTablesSize; + size_t lastCountSize; +} ZSTD_fseCTablesMetadata_t; -struct nfs4_delegreturnres; +typedef struct { + ZSTD_hufCTablesMetadata_t hufMetadata; + ZSTD_fseCTablesMetadata_t fseMetadata; +} ZSTD_entropyCTablesMetadata_t; -typedef void (*btf_trace_nfs4_delegreturn_exit)(void *, const struct nfs4_delegreturnargs *, const struct nfs4_delegreturnres *, int); +typedef struct { + seqStore_t fullSeqStoreChunk; + seqStore_t firstHalfSeqStore; + seqStore_t secondHalfSeqStore; + seqStore_t currSeqStore; + seqStore_t nextSeqStore; + U32 partitions[196]; + ZSTD_entropyCTablesMetadata_t entropyMetadata; +} ZSTD_blockSplitCtx; -struct 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 ZSTD_CCtx_s { + ZSTD_compressionStage_e stage; + int cParamsChanged; + int bmi2; + ZSTD_CCtx_params requestedParams; + ZSTD_CCtx_params appliedParams; + ZSTD_CCtx_params simpleApiParams; + U32 dictID; + size_t dictContentSize; + ZSTD_cwksp workspace; + size_t blockSize; + unsigned long long pledgedSrcSizePlusOne; + unsigned long long consumedSrcSize; + unsigned long long producedCSize; + struct xxh64_state xxhState; + ZSTD_customMem customMem; + ZSTD_threadPool *pool; + size_t staticSize; + SeqCollector seqCollector; + int isFirstBlock; + int initialized; + seqStore_t seqStore; + ldmState_t ldmState; + rawSeq *ldmSequences; + size_t maxNbLdmSequences; + rawSeqStore_t externSeqStore; + ZSTD_blockState_t blockState; + U32 *entropyWorkspace; + ZSTD_buffered_policy_e bufferedPolicy; + char *inBuff; + size_t inBuffSize; + size_t inToCompress; + size_t inBuffPos; + size_t inBuffTarget; + char *outBuff; + size_t outBuffSize; + size_t outBuffContentSize; + size_t outBuffFlushedSize; + ZSTD_cStreamStage streamStage; + U32 frameEnded; + ZSTD_inBuffer expectedInBuffer; + size_t expectedOutBufferSize; + ZSTD_localDict localDict; + const ZSTD_CDict *cdict; + ZSTD_prefixDict prefixDict; + ZSTD_blockSplitCtx blockSplitCtx; }; -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; -}; +typedef struct ZSTD_CCtx_s ZSTD_CCtx; -typedef void (*btf_trace_nfs4_test_delegation_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); +typedef ZSTD_CCtx zstd_cctx; -typedef void (*btf_trace_nfs4_test_open_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); +typedef ZSTD_compressionParameters zstd_compression_parameters; -typedef void (*btf_trace_nfs4_test_lock_stateid)(void *, const struct nfs4_state *, const struct nfs4_lock_state *, int); +typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *); -typedef void (*btf_trace_nfs4_lookup)(void *, const struct inode *, const struct qstr *, int); +typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *); -typedef void (*btf_trace_nfs4_symlink)(void *, const struct inode *, const struct qstr *, int); +typedef void (*btf_trace_block_rq_requeue)(void *, struct request *); -typedef void (*btf_trace_nfs4_mkdir)(void *, const struct inode *, const struct qstr *, int); +typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int); -typedef void (*btf_trace_nfs4_mknod)(void *, const struct inode *, const struct qstr *, int); +typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int); -typedef void (*btf_trace_nfs4_remove)(void *, const struct inode *, const struct qstr *, int); +typedef void (*btf_trace_block_rq_insert)(void *, struct request *); -typedef void (*btf_trace_nfs4_get_fs_locations)(void *, const struct inode *, const struct qstr *, int); +typedef void (*btf_trace_block_rq_issue)(void *, struct request *); -typedef void (*btf_trace_nfs4_secinfo)(void *, const struct inode *, const struct qstr *, int); +typedef void (*btf_trace_block_rq_merge)(void *, struct request *); -typedef void (*btf_trace_nfs4_lookupp)(void *, const struct inode *, int); +typedef void (*btf_trace_block_io_start)(void *, struct request *); -typedef void (*btf_trace_nfs4_rename)(void *, const struct inode *, const struct qstr *, const struct inode *, const struct qstr *, int); +typedef void (*btf_trace_block_io_done)(void *, struct request *); -typedef void (*btf_trace_nfs4_access)(void *, const struct inode *, int); +typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *); -typedef void (*btf_trace_nfs4_readlink)(void *, const struct inode *, int); +typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); -typedef void (*btf_trace_nfs4_readdir)(void *, const struct inode *, int); +typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); -typedef void (*btf_trace_nfs4_get_acl)(void *, const struct inode *, int); +typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *); -typedef void (*btf_trace_nfs4_set_acl)(void *, const struct inode *, int); +typedef void (*btf_trace_block_bio_queue)(void *, struct bio *); -typedef void (*btf_trace_nfs4_get_security_label)(void *, const struct inode *, int); +typedef void (*btf_trace_block_getrq)(void *, struct bio *); -typedef void (*btf_trace_nfs4_set_security_label)(void *, const struct inode *, int); +typedef void (*btf_trace_block_plug)(void *, struct request_queue *); -typedef void (*btf_trace_nfs4_setattr)(void *, const struct inode *, const nfs4_stateid *, int); +typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); -typedef void (*btf_trace_nfs4_delegreturn)(void *, const struct inode *, const nfs4_stateid *, int); +typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int); -typedef void (*btf_trace_nfs4_open_stateid_update)(void *, const struct inode *, const nfs4_stateid *, int); +typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t); -typedef void (*btf_trace_nfs4_open_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int); +typedef void (*btf_trace_block_rq_remap)(void *, struct request *, dev_t, sector_t); -typedef void (*btf_trace_nfs4_close_stateid_update_wait)(void *, const struct inode *, const nfs4_stateid *, int); +enum { + PERCPU_REF_INIT_ATOMIC = 1, + PERCPU_REF_INIT_DEAD = 2, + PERCPU_REF_ALLOW_REINIT = 4, +}; -typedef void (*btf_trace_nfs4_getattr)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); +struct blk_plug_cb; -typedef void (*btf_trace_nfs4_lookup_root)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); +typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool); -typedef void (*btf_trace_nfs4_fsinfo)(void *, const struct nfs_server *, const struct nfs_fh *, const struct nfs_fattr *, int); +struct blk_plug_cb { + struct list_head list; + blk_plug_cb_fn callback; + void *data; +}; -typedef void (*btf_trace_nfs4_cb_getattr)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, int); +struct trace_event_raw_block_buffer { + struct trace_entry ent; + dev_t dev; + sector_t sector; + size_t size; + char __data[0]; +}; -typedef void (*btf_trace_nfs4_cb_recall)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int); +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]; +}; -typedef void (*btf_trace_nfs4_cb_layoutrecall_file)(void *, const struct nfs_client *, const struct nfs_fh *, const struct inode *, const nfs4_stateid *, int); +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]; +}; -typedef void (*btf_trace_nfs4_map_name_to_uid)(void *, const char *, int, u32, int); +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]; +}; -typedef void (*btf_trace_nfs4_map_group_to_gid)(void *, const char *, int, u32, int); +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]; +}; -typedef void (*btf_trace_nfs4_map_uid_to_name)(void *, const char *, int, u32, int); +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]; +}; -typedef void (*btf_trace_nfs4_map_gid_to_group)(void *, const char *, int, u32, int); +struct trace_event_raw_block_plug { + struct trace_entry ent; + char comm[16]; + char __data[0]; +}; -typedef void (*btf_trace_nfs4_read)(void *, const struct nfs_pgio_header *, int); +struct trace_event_raw_block_unplug { + struct trace_entry ent; + int nr_rq; + char comm[16]; + char __data[0]; +}; -typedef void (*btf_trace_nfs4_pnfs_read)(void *, const struct nfs_pgio_header *, int); +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]; +}; -typedef void (*btf_trace_nfs4_write)(void *, const struct nfs_pgio_header *, int); +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]; +}; -typedef void (*btf_trace_nfs4_pnfs_write)(void *, const struct nfs_pgio_header *, int); +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]; +}; -typedef void (*btf_trace_nfs4_commit)(void *, const struct nfs_commit_data *, int); +struct trace_event_data_offsets_block_buffer {}; -typedef void (*btf_trace_nfs4_pnfs_commit_ds)(void *, const struct nfs_commit_data *, int); +struct trace_event_data_offsets_block_rq_requeue { + u32 cmd; +}; -typedef void (*btf_trace_nfs4_layoutget)(void *, const struct nfs_open_context *, const struct pnfs_layout_range *, const struct pnfs_layout_range *, const nfs4_stateid *, int); +struct trace_event_data_offsets_block_rq_completion { + u32 cmd; +}; -typedef void (*btf_trace_nfs4_layoutcommit)(void *, const struct inode *, const nfs4_stateid *, int); +struct trace_event_data_offsets_block_rq { + u32 cmd; +}; -typedef void (*btf_trace_nfs4_layoutreturn)(void *, const struct inode *, const nfs4_stateid *, int); +struct trace_event_data_offsets_block_bio_complete {}; -typedef void (*btf_trace_nfs4_layoutreturn_on_close)(void *, const struct inode *, const nfs4_stateid *, int); +struct trace_event_data_offsets_block_bio {}; -typedef void (*btf_trace_nfs4_layouterror)(void *, const struct inode *, const nfs4_stateid *, int); +struct trace_event_data_offsets_block_plug {}; -typedef void (*btf_trace_nfs4_layoutstats)(void *, const struct inode *, const nfs4_stateid *, int); +struct trace_event_data_offsets_block_unplug {}; -enum pnfs_update_layout_reason { - PNFS_UPDATE_LAYOUT_UNKNOWN = 0, - PNFS_UPDATE_LAYOUT_NO_PNFS = 1, - PNFS_UPDATE_LAYOUT_RD_ZEROLEN = 2, - PNFS_UPDATE_LAYOUT_MDSTHRESH = 3, - PNFS_UPDATE_LAYOUT_NOMEM = 4, - PNFS_UPDATE_LAYOUT_BULK_RECALL = 5, - PNFS_UPDATE_LAYOUT_IO_TEST_FAIL = 6, - PNFS_UPDATE_LAYOUT_FOUND_CACHED = 7, - PNFS_UPDATE_LAYOUT_RETURN = 8, - PNFS_UPDATE_LAYOUT_RETRY = 9, - PNFS_UPDATE_LAYOUT_BLOCKED = 10, - PNFS_UPDATE_LAYOUT_INVALID_OPEN = 11, - PNFS_UPDATE_LAYOUT_SEND_LAYOUTGET = 12, - PNFS_UPDATE_LAYOUT_EXIT = 13, -}; +struct trace_event_data_offsets_block_split {}; -typedef void (*btf_trace_pnfs_update_layout)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *, enum pnfs_update_layout_reason); +struct trace_event_data_offsets_block_bio_remap {}; -typedef void (*btf_trace_pnfs_mds_fallback_pg_init_read)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +struct trace_event_data_offsets_block_rq_remap {}; -typedef void (*btf_trace_pnfs_mds_fallback_pg_init_write)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +typedef long mpi_limb_signed_t; -typedef void (*btf_trace_pnfs_mds_fallback_pg_get_mirror_count)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +struct karatsuba_ctx { + struct karatsuba_ctx *next; + mpi_ptr_t tspace; + mpi_size_t tspace_size; + mpi_ptr_t tp; + mpi_size_t tp_size; +}; -typedef void (*btf_trace_pnfs_mds_fallback_read_done)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +typedef struct { + int deltaFindState; + U32 deltaNbBits; +} FSE_symbolCompressionTransform; -typedef void (*btf_trace_pnfs_mds_fallback_write_done)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +typedef struct { + ptrdiff_t value; + const void *stateTable; + const void *symbolTT; + unsigned int stateLog; +} FSE_CState_t; -typedef void (*btf_trace_pnfs_mds_fallback_read_pagelist)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +typedef struct { + size_t bitContainer; + unsigned int bitPos; + char *startPtr; + char *ptr; + char *endPtr; +} BIT_CStream_t; -typedef void (*btf_trace_pnfs_mds_fallback_write_pagelist)(void *, struct inode *, loff_t, u64, enum pnfs_iomode, struct pnfs_layout_hdr *, struct pnfs_layout_segment *); +typedef uint8_t U8; -typedef void (*btf_trace_nfs4_deviceid_free)(void *, const struct nfs_client *, const struct nfs4_deviceid *); +typedef U32 (*ZSTD_getAllMatchesFn)(ZSTD_match_t *, ZSTD_matchState_t *, U32 *, const BYTE *, const BYTE *, const U32 *, const U32, const U32); -typedef void (*btf_trace_nfs4_getdeviceinfo)(void *, const struct nfs_server *, const struct nfs4_deviceid *, int); +typedef struct { + rawSeqStore_t seqStore; + U32 startPosInBlock; + U32 endPosInBlock; + U32 offset; +} ZSTD_optLdm_t; -typedef void (*btf_trace_nfs4_find_deviceid)(void *, const struct nfs_server *, const struct nfs4_deviceid *, int); +struct repcodes_s { + U32 rep[3]; +}; -typedef void (*btf_trace_ff_layout_read_error)(void *, const struct nfs_pgio_header *); +typedef struct repcodes_s repcodes_t; -typedef void (*btf_trace_ff_layout_write_error)(void *, const struct nfs_pgio_header *); +struct pci_slot_attribute { + struct attribute attr; + ssize_t (*show)(struct pci_slot *, char *); + ssize_t (*store)(struct pci_slot *, const char *, size_t); +}; -typedef void (*btf_trace_ff_layout_commit_error)(void *, const struct nfs_commit_data *); +struct nvs_region { + __u64 phys_start; + __u64 size; + struct list_head node; +}; -struct nfs42_seek_args; +enum virtio_balloon_vq { + VIRTIO_BALLOON_VQ_INFLATE = 0, + VIRTIO_BALLOON_VQ_DEFLATE = 1, + VIRTIO_BALLOON_VQ_STATS = 2, + VIRTIO_BALLOON_VQ_FREE_PAGE = 3, + VIRTIO_BALLOON_VQ_REPORTING = 4, + VIRTIO_BALLOON_VQ_MAX = 5, +}; -struct nfs42_seek_res; +enum virtio_balloon_config_read { + VIRTIO_BALLOON_CONFIG_READ_CMD_ID = 0, +}; -typedef void (*btf_trace_nfs4_llseek)(void *, const struct inode *, const struct nfs42_seek_args *, const struct nfs42_seek_res *, int); +struct virtio_balloon_stat { + __virtio16 tag; + __virtio64 val; +} __attribute__((packed)); -struct nfs42_seek_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *sa_fh; - nfs4_stateid sa_stateid; - u64 sa_offset; - u32 sa_what; +struct page_reporting_dev_info { + int (*report)(struct page_reporting_dev_info *, struct scatterlist *, unsigned int); + struct delayed_work work; + atomic_t state; + unsigned int order; }; -struct nfs42_seek_res { - struct nfs4_sequence_res seq_res; - unsigned int status; - u32 sr_eof; - u64 sr_offset; +struct virtio_balloon { + struct virtio_device *vdev; + struct virtqueue *inflate_vq; + struct virtqueue *deflate_vq; + struct virtqueue *stats_vq; + struct virtqueue *free_page_vq; + struct workqueue_struct *balloon_wq; + struct work_struct report_free_page_work; + struct work_struct update_balloon_stats_work; + struct work_struct update_balloon_size_work; + spinlock_t stop_update_lock; + bool stop_update; + unsigned long config_read_bitmap; + struct list_head free_page_list; + spinlock_t free_page_list_lock; + unsigned long num_free_page_blocks; + u32 cmd_id_received_cache; + __virtio32 cmd_id_active; + __virtio32 cmd_id_stop; + wait_queue_head_t acked; + unsigned int num_pages; + struct balloon_dev_info vb_dev_info; + struct mutex balloon_lock; + unsigned int num_pfns; + __virtio32 pfns[256]; + struct virtio_balloon_stat stats[10]; + struct shrinker *shrinker; + struct notifier_block oom_nb; + struct virtqueue *reporting_vq; + struct page_reporting_dev_info pr_dev_info; }; -struct nfs42_falloc_args; +enum mctrl_gpio_idx { + UART_GPIO_CTS = 0, + UART_GPIO_DSR = 1, + UART_GPIO_DCD = 2, + UART_GPIO_RNG = 3, + UART_GPIO_RI = 3, + UART_GPIO_RTS = 4, + UART_GPIO_DTR = 5, + UART_GPIO_MAX = 6, +}; -typedef void (*btf_trace_nfs4_fallocate)(void *, const struct inode *, const struct nfs42_falloc_args *, int); +struct mctrl_gpios { + struct uart_port *port; + struct gpio_desc *gpio[6]; + int irq[6]; + unsigned int mctrl_prev; + bool mctrl_on; +}; -struct nfs42_falloc_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *falloc_fh; - nfs4_stateid falloc_stateid; - u64 falloc_offset; - u64 falloc_length; - const u32 *falloc_bitmask; +enum pce_status { + PCE_STATUS_NONE = 0, + PCE_STATUS_ACQUIRED = 1, + PCE_STATUS_PREPARED = 2, + PCE_STATUS_ENABLED = 3, + PCE_STATUS_ERROR = 4, }; -typedef void (*btf_trace_nfs4_deallocate)(void *, const struct inode *, const struct nfs42_falloc_args *, int); +struct pm_clock_entry { + struct list_head node; + char *con_id; + struct clk *clk; + enum pce_status status; + bool enabled_when_prepared; +}; -struct nfs42_copy_args; +struct pm_clk_notifier_block { + struct notifier_block nb; + struct dev_pm_domain *pm_domain; + char *con_ids[0]; +}; -struct nfs42_copy_res; +enum scsi_devinfo_key { + SCSI_DEVINFO_GLOBAL = 0, + SCSI_DEVINFO_SPI = 1, +}; -typedef void (*btf_trace_nfs4_copy)(void *, const struct inode *, const struct inode *, const struct nfs42_copy_args *, const struct nfs42_copy_res *, const struct nl4_server *, int); +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 nfs42_copy_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *src_fh; - nfs4_stateid src_stateid; - u64 src_pos; - struct nfs_fh *dst_fh; - nfs4_stateid dst_stateid; - u64 dst_pos; - u64 count; - bool sync; - struct nl4_server *cp_src; +struct scsi_dev_info_list_table { + struct list_head node; + struct list_head scsi_dev_info_list; + const char *name; + int key; }; -struct nfs42_write_res { - nfs4_stateid stateid; - u64 count; - struct nfs_writeverf verifier; +struct double_list { + struct list_head *top; + struct list_head *bottom; }; -struct nfs42_copy_res { - struct nfs4_sequence_res seq_res; - struct nfs42_write_res write_res; - bool consecutive; - bool synchronous; - struct nfs_commitres commit_res; +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 nfs42_clone_args; +struct cdrom_tochdr { + __u8 cdth_trk0; + __u8 cdth_trk1; +}; -typedef void (*btf_trace_nfs4_clone)(void *, const struct inode *, const struct inode *, const struct nfs42_clone_args *, int); +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 nfs42_clone_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *src_fh; - struct nfs_fh *dst_fh; - nfs4_stateid src_stateid; - nfs4_stateid dst_stateid; - __u64 src_offset; - __u64 dst_offset; - __u64 count; - const u32 *dst_bitmask; +struct cdrom_ti { + __u8 cdti_trk0; + __u8 cdti_ind0; + __u8 cdti_trk1; + __u8 cdti_ind1; }; -struct nfs42_copy_notify_args; +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 void (*btf_trace_nfs4_copy_notify)(void *, const struct inode *, const struct nfs42_copy_notify_args *, const struct nfs42_copy_notify_res *, int); +typedef struct scsi_cd Scsi_CD; -struct nfs42_copy_notify_args { - struct nfs4_sequence_args cna_seq_args; - struct nfs_fh *cna_src_fh; - nfs4_stateid cna_src_stateid; - struct nl4_server cna_dst; +enum mtd_file_modes { + MTD_FILE_MODE_NORMAL = 0, + MTD_FILE_MODE_OTP_FACTORY = 1, + MTD_FILE_MODE_OTP_USER = 2, + MTD_FILE_MODE_RAW = 3, }; -struct nfs42_offload_status_args; +enum { + MTD_OPS_PLACE_OOB = 0, + MTD_OPS_AUTO_OOB = 1, + MTD_OPS_RAW = 2, +}; -typedef void (*btf_trace_nfs4_offload_cancel)(void *, const struct nfs42_offload_status_args *, int); +struct mtd_write_req { + __u64 start; + __u64 len; + __u64 ooblen; + __u64 usr_data; + __u64 usr_oob; + __u8 mode; + __u8 padding[7]; +}; -struct nfs42_offload_status_args { - struct nfs4_sequence_args osa_seq_args; - struct nfs_fh *osa_src_fh; - nfs4_stateid osa_stateid; +struct mtd_read_req_ecc_stats { + __u32 uncorrectable_errors; + __u32 corrected_bitflips; + __u32 max_bitflips; }; -typedef void (*btf_trace_nfs4_getxattr)(void *, const struct inode *, const char *, int); +struct mtd_read_req { + __u64 start; + __u64 len; + __u64 ooblen; + __u64 usr_data; + __u64 usr_oob; + __u8 mode; + __u8 padding[7]; + struct mtd_read_req_ecc_stats ecc_stats; +}; -typedef void (*btf_trace_nfs4_setxattr)(void *, const struct inode *, const char *, int); +struct mtd_file_info { + struct mtd_info *mtd; + enum mtd_file_modes mode; +}; -typedef void (*btf_trace_nfs4_removexattr)(void *, const struct inode *, const char *, int); +struct mtd_oob_buf32 { + u_int32_t start; + u_int32_t length; + compat_caddr_t ptr; +}; -typedef void (*btf_trace_nfs4_listxattr)(void *, const struct inode *, int); +struct blkpg_compat_ioctl_arg { + compat_int_t op; + compat_int_t flags; + compat_int_t datalen; + compat_uptr_t data; +}; -enum { - NFS_LAYOUT_RO_FAILED = 0, - NFS_LAYOUT_RW_FAILED = 1, - NFS_LAYOUT_BULK_RECALL = 2, - NFS_LAYOUT_RETURN = 3, - NFS_LAYOUT_RETURN_LOCK = 4, - NFS_LAYOUT_RETURN_REQUESTED = 5, - NFS_LAYOUT_INVALID_STID = 6, - NFS_LAYOUT_FIRST_LAYOUTGET = 7, - NFS_LAYOUT_INODE_FREEING = 8, - NFS_LAYOUT_HASHED = 9, - NFS_LAYOUT_DRAIN = 10, +struct blkpg_ioctl_arg { + int op; + int flags; + int datalen; + void __attribute__((btf_type_tag("user"))) *data; }; -struct trace_event_raw_nfs4_clientid_event { - struct trace_entry ent; - u32 __data_loc_dstaddr; - unsigned long error; - char __data[0]; +struct mtd_info_user { + __u8 type; + __u32 flags; + __u32 size; + __u32 erasesize; + __u32 writesize; + __u32 oobsize; + __u64 padding; }; -struct trace_event_raw_nfs4_sequence_done { - struct trace_entry ent; - unsigned int session; - unsigned int slot_nr; - unsigned int seq_nr; - unsigned int highest_slotid; - unsigned int target_highest_slotid; - unsigned long status_flags; - unsigned long error; - char __data[0]; +struct erase_info_user64 { + __u64 start; + __u64 length; }; -struct trace_event_raw_nfs4_cb_sequence { - struct trace_entry ent; - unsigned int session; - unsigned int slot_nr; - unsigned int seq_nr; - unsigned int highest_slotid; - unsigned int cachethis; - unsigned long error; - char __data[0]; +struct erase_info_user { + __u32 start; + __u32 length; }; -struct trace_event_raw_nfs4_cb_seqid_err { - struct trace_entry ent; - unsigned int session; - unsigned int slot_nr; - unsigned int seq_nr; - unsigned int highest_slotid; - unsigned int cachethis; - unsigned long error; - char __data[0]; +struct mtd_oob_buf { + __u32 start; + __u32 length; + unsigned char __attribute__((btf_type_tag("user"))) *ptr; }; -struct trace_event_raw_nfs4_cb_offload { - struct trace_entry ent; - unsigned long error; - u32 fhandle; - loff_t cb_count; - int cb_how; - int cb_stateid_seq; - u32 cb_stateid_hash; - char __data[0]; +struct mtd_oob_buf64 { + __u64 start; + __u32 pad; + __u32 length; + __u64 usr_ptr; }; -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 nand_oobinfo { + __u32 useecc; + __u32 eccbytes; + __u32 oobfree[16]; + __u32 eccpos[32]; }; -struct trace_event_raw_nfs4_state_mgr { - struct trace_entry ent; - unsigned long state; - u32 __data_loc_hostname; - char __data[0]; +struct region_info_user { + __u32 offset; + __u32 erasesize; + __u32 numblocks; + __u32 regionindex; }; -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 nand_oobfree { + __u32 offset; + __u32 length; }; -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 nand_ecclayout_user { + __u32 eccbytes; + __u32 eccpos[64]; + __u32 oobavail; + struct nand_oobfree oobfree[8]; }; -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 blkpg_partition { + long long start; + long long length; + int pno; + char devname[64]; + char volname[64]; }; -struct trace_event_raw_nfs4_cb_error_class { - struct trace_entry ent; - u32 xid; - u32 cbident; - char __data[0]; +enum phy_state_work { + PHY_STATE_WORK_NONE = 0, + PHY_STATE_WORK_ANEG = 1, + PHY_STATE_WORK_SUSPEND = 2, }; -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 phy_setting { + u32 speed; + u8 duplex; + u8 bit; }; -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 usb_cdc_union_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bMasterInterface0; + __u8 bSlaveInterface0; }; -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 usb_cdc_country_functional_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 iCountryCodeRelDate; + __le16 wCountyCode0; }; -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 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 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 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 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 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 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 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 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 api_context { + struct completion done; + int status; }; -struct trace_event_raw_nfs4_test_stateid_event { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - u64 fileid; - int stateid_seq; - u32 stateid_hash; - char __data[0]; -}; +struct usb_cdc_network_terminal_desc; -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 usb_cdc_obex_desc; -struct trace_event_raw_nfs4_lookupp { - struct trace_entry ent; - dev_t dev; - u64 ino; - unsigned long error; - char __data[0]; +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 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 usb_cdc_network_terminal_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bEntityId; + __u8 iName; + __u8 bChannelIndex; + __u8 bPhysicalInterface; }; -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 usb_cdc_obex_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdVersion; +} __attribute__((packed)); -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 ehci_driver_overrides { + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); + int (*port_power)(struct usb_hcd *, int, bool); }; -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]; +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, }; -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]; +enum ehci_rh_state { + EHCI_RH_HALTED = 0, + EHCI_RH_SUSPENDED = 1, + EHCI_RH_RUNNING = 2, + EHCI_RH_STOPPING = 3, }; -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 ehci_caps; -struct trace_event_raw_nfs4_idmap_event { - struct trace_entry ent; - unsigned long error; - u32 id; - u32 __data_loc_name; - char __data[0]; -}; +struct ehci_regs; -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 ehci_dbg_port; -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 ehci_qh; -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]; -}; +union ehci_shadow; -struct trace_event_raw_nfs4_layoutget { - struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - u32 iomode; - u64 offset; - u64 count; - unsigned long error; - int stateid_seq; - u32 stateid_hash; - int layoutstateid_seq; - u32 layoutstateid_hash; - char __data[0]; -}; +struct ehci_itd; -struct trace_event_raw_pnfs_update_layout { - struct trace_entry ent; - dev_t dev; - u64 fileid; - u32 fhandle; - loff_t pos; - u64 count; - enum pnfs_iomode iomode; - int layoutstateid_seq; - u32 layoutstateid_hash; - long lseg; - enum pnfs_update_layout_reason reason; - char __data[0]; -}; +struct ehci_sitd; -struct trace_event_raw_pnfs_layout_event { - struct trace_entry ent; - dev_t dev; - u64 fileid; - u32 fhandle; - loff_t pos; - u64 count; - enum pnfs_iomode iomode; - int layoutstateid_seq; - u32 layoutstateid_hash; - long lseg; - char __data[0]; +struct ehci_hcd { + enum ehci_hrtimer_event next_hrtimer_event; + unsigned int enabled_hrtimer_events; + ktime_t hr_timeouts[12]; + struct hrtimer hrtimer; + int PSS_poll_count; + int ASS_poll_count; + int died_poll_count; + struct ehci_caps *caps; + struct ehci_regs *regs; + struct ehci_dbg_port *debug; + __u32 hcs_params; + spinlock_t lock; + enum ehci_rh_state rh_state; + bool scanning: 1; + bool need_rescan: 1; + bool intr_unlinking: 1; + bool iaa_in_progress: 1; + bool async_unlinking: 1; + bool shutdown: 1; + struct ehci_qh *qh_scan_next; + struct ehci_qh *async; + struct ehci_qh *dummy; + struct list_head async_unlink; + struct list_head async_idle; + unsigned int async_unlink_cycle; + unsigned int async_count; + __le32 old_current; + __le32 old_token; + unsigned int periodic_size; + __le32 *periodic; + dma_addr_t periodic_dma; + struct list_head intr_qh_list; + unsigned int i_thresh; + union ehci_shadow *pshadow; + struct list_head intr_unlink_wait; + struct list_head intr_unlink; + unsigned int intr_unlink_wait_cycle; + unsigned int intr_unlink_cycle; + unsigned int now_frame; + unsigned int last_iso_frame; + unsigned int intr_count; + unsigned int isoc_count; + unsigned int periodic_count; + unsigned int uframe_periodic_max; + struct list_head cached_itd_list; + struct ehci_itd *last_itd_to_free; + struct list_head cached_sitd_list; + struct ehci_sitd *last_sitd_to_free; + unsigned long reset_done[15]; + unsigned long bus_suspended; + unsigned long companion_ports; + unsigned long owned_ports; + unsigned long port_c_suspend; + unsigned long suspended_ports; + unsigned long resuming_ports; + struct dma_pool *qh_pool; + struct dma_pool *qtd_pool; + struct dma_pool *itd_pool; + struct dma_pool *sitd_pool; + unsigned int random_frame; + unsigned long next_statechange; + ktime_t last_periodic_enable; + u32 command; + unsigned int no_selective_suspend: 1; + unsigned int has_fsl_port_bug: 1; + unsigned int has_fsl_hs_errata: 1; + unsigned int has_fsl_susp_errata: 1; + unsigned int has_ci_pec_bug: 1; + unsigned int big_endian_mmio: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_capbase: 1; + unsigned int has_amcc_usb23: 1; + unsigned int need_io_watchdog: 1; + unsigned int amd_pll_fix: 1; + unsigned int use_dummy_qh: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int frame_index_bug: 1; + unsigned int need_oc_pp_cycle: 1; + unsigned int imx28_write_fix: 1; + unsigned int spurious_oc: 1; + unsigned int is_aspeed: 1; + unsigned int zx_wakeup_clear_needed: 1; + __le32 *ohci_hcctrl_reg; + unsigned int has_hostpc: 1; + unsigned int has_tdi_phy_lpm: 1; + unsigned int has_ppcd: 1; + u8 sbrn; + u8 bandwidth[64]; + u8 tt_budget[64]; + struct list_head tt_list; + unsigned long priv[0]; }; -struct trace_event_raw_nfs4_deviceid_event { - struct trace_entry ent; - u32 __data_loc_dstaddr; - unsigned char deviceid[16]; - char __data[0]; +struct ehci_caps { + u32 hc_capbase; + u32 hcs_params; + u32 hcc_params; + u8 portroute[8]; }; -struct trace_event_raw_nfs4_deviceid_status { - struct trace_entry ent; - dev_t dev; - int status; - u32 __data_loc_dstaddr; - unsigned char deviceid[16]; - char __data[0]; +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 trace_event_raw_nfs4_flexfiles_io_event { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - u64 fileid; - loff_t offset; - u32 count; - int stateid_seq; - u32 stateid_hash; - u32 __data_loc_dstaddr; - char __data[0]; +struct ehci_dbg_port { + u32 control; + u32 pids; + u32 data03; + u32 data47; + u32 address; }; -struct trace_event_raw_ff_layout_commit_error { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - u64 fileid; - loff_t offset; - u32 count; - u32 __data_loc_dstaddr; - char __data[0]; -}; +struct ehci_fstn; -struct trace_event_raw_nfs4_llseek { - struct trace_entry ent; - unsigned long error; - u32 fhandle; - u32 fileid; - dev_t dev; - int stateid_seq; - u32 stateid_hash; - loff_t offset_s; - u32 what; - loff_t offset_r; - u32 eof; - char __data[0]; +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 trace_event_raw_nfs4_sparse_event { - struct trace_entry ent; - unsigned long error; - loff_t offset; - loff_t len; - dev_t dev; - u32 fhandle; - u64 fileid; - int stateid_seq; - u32 stateid_hash; - char __data[0]; +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 trace_event_raw_nfs4_copy { - struct trace_entry ent; - unsigned long error; - u32 src_fhandle; - u32 src_fileid; - u32 dst_fhandle; - u32 dst_fileid; - dev_t src_dev; - dev_t dst_dev; - int src_stateid_seq; - u32 src_stateid_hash; - int dst_stateid_seq; - u32 dst_stateid_hash; - loff_t src_offset; - loff_t dst_offset; - bool sync; - loff_t len; - int res_stateid_seq; - u32 res_stateid_hash; - loff_t res_count; - bool res_sync; - bool res_cons; - bool intra; - char __data[0]; -}; +struct ehci_qh_hw; -struct trace_event_raw_nfs4_clone { - struct trace_entry ent; - unsigned long error; - u32 src_fhandle; - u32 src_fileid; - u32 dst_fhandle; - u32 dst_fileid; - dev_t src_dev; - dev_t dst_dev; - loff_t src_offset; - loff_t dst_offset; - int src_stateid_seq; - u32 src_stateid_hash; - int dst_stateid_seq; - u32 dst_stateid_hash; - loff_t len; - char __data[0]; +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 trace_event_raw_nfs4_copy_notify { - struct trace_entry ent; - unsigned long error; - u32 fhandle; - u32 fileid; - dev_t dev; - int stateid_seq; - u32 stateid_hash; - int res_stateid_seq; - u32 res_stateid_hash; - char __data[0]; +struct ehci_qh_hw { + __le32 hw_next; + __le32 hw_info1; + __le32 hw_info2; + __le32 hw_current; + __le32 hw_qtd_next; + __le32 hw_alt_next; + __le32 hw_token; + __le32 hw_buf[5]; + __le32 hw_buf_hi[5]; + long: 64; + long: 64; + long: 64; }; -struct trace_event_raw_nfs4_offload_cancel { - struct trace_entry ent; - unsigned long error; - u32 fhandle; - int stateid_seq; - u32 stateid_hash; - char __data[0]; -}; +struct ehci_iso_stream; -struct trace_event_raw_nfs4_xattr_event { - struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - u64 fileid; - u32 __data_loc_name; - char __data[0]; +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 trace_event_data_offsets_nfs4_clientid_event { - u32 dstaddr; +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 trace_event_data_offsets_nfs4_state_mgr { - u32 hostname; +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 trace_event_data_offsets_nfs4_state_mgr_failed { - u32 hostname; - u32 section; +struct ehci_fstn { + __le32 hw_next; + __le32 hw_prev; + dma_addr_t fstn_dma; + union ehci_shadow fstn_next; + long: 64; }; -struct trace_event_data_offsets_nfs4_open_event { - u32 name; +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 trace_event_data_offsets_nfs4_lookup_event { - u32 name; +struct focaltech_finger_state { + bool active; + bool valid; + unsigned int x; + unsigned int y; }; -struct trace_event_data_offsets_nfs4_rename { - u32 oldname; - u32 newname; +struct focaltech_hw_state { + struct focaltech_finger_state fingers[5]; + unsigned int width; + bool pressed; }; -struct trace_event_data_offsets_nfs4_inode_callback_event { - u32 dstaddr; +struct focaltech_data { + unsigned int x_max; + unsigned int y_max; + struct focaltech_hw_state state; }; -struct trace_event_data_offsets_nfs4_inode_stateid_callback_event { - u32 dstaddr; +struct hwmon_type_attr_list { + const u32 *attrs; + size_t n_attrs; }; -struct trace_event_data_offsets_nfs4_idmap_event { - u32 name; +struct power_supply_hwmon { + struct power_supply *psy; + unsigned long *props; }; -struct trace_event_data_offsets_nfs4_deviceid_event { - u32 dstaddr; +enum dev_pm_opp_event { + OPP_EVENT_ADD = 0, + OPP_EVENT_REMOVE = 1, + OPP_EVENT_ENABLE = 2, + OPP_EVENT_DISABLE = 3, + OPP_EVENT_ADJUST_VOLTAGE = 4, }; -struct trace_event_data_offsets_nfs4_deviceid_status { - u32 dstaddr; +struct dev_pm_opp_data { + unsigned int level; + unsigned long freq; + unsigned long u_volt; }; -struct trace_event_data_offsets_nfs4_flexfiles_io_event { - u32 dstaddr; -}; +struct em_data_callback {}; -struct trace_event_data_offsets_ff_layout_commit_error { - u32 dstaddr; +struct usage_priority { + __u32 usage; + bool global; + unsigned int slot_overwrite; }; -struct trace_event_data_offsets_nfs4_xattr_event { - u32 name; +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 trace_event_data_offsets_nfs4_sequence_done {}; +typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int); -struct trace_event_data_offsets_nfs4_cb_sequence {}; +struct rps_sock_flow_table { + u32 mask; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 ents[0]; +}; -struct trace_event_data_offsets_nfs4_cb_seqid_err {}; +struct net_test { + char name[32]; + int (*fn)(struct net_device *); +}; -struct trace_event_data_offsets_nfs4_cb_offload {}; +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, +}; -struct trace_event_data_offsets_nfs4_setup_sequence {}; +struct netsfhdr { + __be32 version; + __be64 magic; + u8 id; +} __attribute__((packed)); -struct trace_event_data_offsets_nfs4_xdr_bad_operation {}; +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 trace_event_data_offsets_nfs4_xdr_event {}; +struct net_test_priv { + struct net_packet_attrs *packet; + struct packet_type pt; + struct completion comp; + int double_vlan; + int vlan_id; + int ok; +}; -struct trace_event_data_offsets_nfs4_cb_error_class {}; +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 trace_event_data_offsets_nfs4_cached_open {}; +struct wol_reply_data { + struct ethnl_reply_data base; + struct ethtool_wolinfo wol; + bool show_sopass; +}; -struct trace_event_data_offsets_nfs4_close {}; +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 trace_event_data_offsets_nfs4_lock_event {}; +struct nf_log_buf { + unsigned int count; + char buf[1020]; +}; -struct trace_event_data_offsets_nfs4_set_lock {}; +enum { + TCP_CMSG_INQ = 1, + TCP_CMSG_TS = 2, +}; -struct trace_event_data_offsets_nfs4_state_lock_reclaim {}; +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, +}; -struct trace_event_data_offsets_nfs4_set_delegation_event {}; +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 trace_event_data_offsets_nfs4_delegreturn_exit {}; +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, +}; -struct trace_event_data_offsets_nfs4_test_stateid_event {}; +struct tcp_splice_state { + struct pipe_inode_info *pipe; + size_t len; + unsigned int flags; +}; -struct trace_event_data_offsets_nfs4_lookupp {}; +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 trace_event_data_offsets_nfs4_inode_event {}; +struct tcp_repair_opt { + __u32 opt_code; + __u32 opt_val; +}; -struct trace_event_data_offsets_nfs4_inode_stateid_event {}; +struct tcp_repair_window { + __u32 snd_wl1; + __u32 snd_wnd; + __u32 max_window; + __u32 rcv_wnd; + __u32 rcv_wup; +}; -struct trace_event_data_offsets_nfs4_getattr_event {}; +struct gre_base_hdr { + __be16 flags; + __be16 protocol; +}; -struct trace_event_data_offsets_nfs4_read_event {}; +enum tpacket_versions { + TPACKET_V1 = 0, + TPACKET_V2 = 1, + TPACKET_V3 = 2, +}; -struct trace_event_data_offsets_nfs4_write_event {}; +enum packet_sock_flags { + PACKET_SOCK_ORIGDEV = 0, + PACKET_SOCK_AUXDATA = 1, + PACKET_SOCK_TX_HAS_OFF = 2, + PACKET_SOCK_TP_LOSS = 3, + PACKET_SOCK_RUNNING = 4, + PACKET_SOCK_PRESSURE = 5, + PACKET_SOCK_QDISC_BYPASS = 6, +}; -struct trace_event_data_offsets_nfs4_commit_event {}; +enum nf_dev_hooks { + NF_NETDEV_INGRESS = 0, + NF_NETDEV_EGRESS = 1, + NF_NETDEV_NUMHOOKS = 2, +}; -struct trace_event_data_offsets_nfs4_layoutget {}; +struct tpacket_stats { + unsigned int tp_packets; + unsigned int tp_drops; +}; -struct trace_event_data_offsets_pnfs_update_layout {}; +struct tpacket_stats_v3 { + unsigned int tp_packets; + unsigned int tp_drops; + unsigned int tp_freeze_q_cnt; +}; -struct trace_event_data_offsets_pnfs_layout_event {}; +union tpacket_stats_u { + struct tpacket_stats stats1; + struct tpacket_stats_v3 stats3; +}; -struct trace_event_data_offsets_nfs4_llseek {}; +struct pgv; -struct trace_event_data_offsets_nfs4_sparse_event {}; +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 trace_event_data_offsets_nfs4_copy {}; +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 trace_event_data_offsets_nfs4_clone {}; +struct packet_fanout; -struct trace_event_data_offsets_nfs4_copy_notify {}; +struct packet_rollover; -struct trace_event_data_offsets_nfs4_offload_cancel {}; +struct packet_mclist; -struct ahash_alg { - int (*init)(struct ahash_request *); - int (*update)(struct ahash_request *); - int (*final)(struct ahash_request *); - int (*finup)(struct ahash_request *); - int (*digest)(struct ahash_request *); - int (*export)(struct ahash_request *, void *); - int (*import)(struct ahash_request *, const void *); - int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int); - int (*init_tfm)(struct crypto_ahash *); - void (*exit_tfm)(struct crypto_ahash *); - int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *); +struct packet_sock { + struct sock sk; + struct packet_fanout *fanout; + union tpacket_stats_u stats; + struct packet_ring_buffer rx_ring; + struct packet_ring_buffer tx_ring; + int copy_thresh; + spinlock_t bind_lock; + struct mutex pg_vec_lock; + unsigned long flags; + int ifindex; + u8 vnet_hdr_sz; + __be16 num; + struct packet_rollover *rollover; + struct packet_mclist *mclist; + atomic_long_t mapped; + enum tpacket_versions tp_version; + unsigned int tp_hdrlen; + unsigned int tp_reserve; + unsigned int tp_tstamp; + struct completion skb_completion; + struct net_device __attribute__((btf_type_tag("rcu"))) *cached_dev; + long: 64; + long: 64; + struct packet_type prot_hook; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_t tp_drops; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct packet_fanout { + possible_net_t net; + unsigned int num_members; + u32 max_num_members; + u16 id; + u8 type; + u8 flags; + union { + atomic_t rr_cur; + struct bpf_prog __attribute__((btf_type_tag("rcu"))) *bpf_prog; + }; + struct list_head list; + spinlock_t lock; + refcount_t sk_ref; long: 64; long: 64; long: 64; long: 64; long: 64; - struct hash_alg_common halg; -}; - -struct ahash_instance { - void (*free)(struct ahash_instance *); + long: 64; + struct packet_type prot_hook; + struct sock __attribute__((btf_type_tag("rcu"))) *arr[0]; long: 64; long: 64; long: 64; @@ -75476,1727 +81305,2115 @@ struct ahash_instance { long: 64; long: 64; long: 64; - union { - struct { - char head[192]; - struct crypto_instance base; - } s; - struct ahash_alg alg; - }; }; -struct crypto_ahash_spawn { - struct crypto_spawn base; +struct pgv { + char *buffer; }; -struct blk_mq_hw_ctx_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct blk_mq_hw_ctx *, char *); +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 io_splice { - struct file *file_out; - loff_t off_out; - loff_t off_in; - u64 len; - int splice_fd_in; - unsigned int flags; +struct packet_mclist { + struct packet_mclist *next; + int ifindex; + int count; + unsigned short type; + unsigned short alen; + unsigned char addr[32]; }; -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 tpacket_bd_ts { + unsigned int ts_sec; + union { + unsigned int ts_usec; + unsigned int ts_nsec; + }; }; -typedef struct { - FSE_CTable CTable[59]; - U32 scratchBuffer[41]; - unsigned int count[13]; - S16 norm[13]; -} HUF_CompressWeightsWksp; +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; +}; -typedef struct { - HUF_CompressWeightsWksp wksp; - BYTE bitsToWeight[13]; - BYTE huffWeight[255]; -} HUF_WriteCTableWksp; +union tpacket_bd_header_u { + struct tpacket_hdr_v1 bh1; +}; -struct nodeElt_s { - U32 count; - U16 parent; - BYTE byte; - BYTE nbBits; +struct tpacket_block_desc { + __u32 version; + __u32 offset_to_priv; + union tpacket_bd_header_u hdr; }; -typedef struct nodeElt_s nodeElt; +struct tpacket_hdr_variant1 { + __u32 tp_rxhash; + __u32 tp_vlan_tci; + __u16 tp_vlan_tpid; + __u16 tp_padding; +}; -typedef nodeElt huffNodeTable[512]; +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]; +}; -typedef struct { - U16 base; - U16 curr; -} rankPos; +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]; +}; -typedef struct { - huffNodeTable huffNodeTbl; - rankPos rankPosition[192]; -} HUF_buildCTable_wksp_tables; +struct sockaddr_pkt { + unsigned short spkt_family; + unsigned char spkt_device[14]; + __be16 spkt_protocol; +}; -typedef struct { - unsigned int count[256]; - HUF_CElt CTable[257]; +struct packet_skb_cb { union { - HUF_buildCTable_wksp_tables buildCTable_wksp; - HUF_WriteCTableWksp writeCTable_wksp; - U32 hist_wksp[1024]; - } wksps; -} HUF_compress_tables_t; - -typedef struct { - size_t bitContainer[2]; - size_t bitPos[2]; - BYTE *startPtr; - BYTE *ptr; - BYTE *endPtr; -} HUF_CStream_t; + struct sockaddr_pkt pkt; + union { + unsigned int origlen; + struct sockaddr_ll ll; + }; + } sa; +}; -typedef enum { - HUF_singleStream = 0, - HUF_fourStreams = 1, -} HUF_nbStreams_e; +struct tpacket_hdr; -enum xz_mode { - XZ_SINGLE = 0, - XZ_PREALLOC = 1, - XZ_DYNALLOC = 2, -}; +struct tpacket2_hdr; -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, +union tpacket_uhdr { + struct tpacket_hdr *h1; + struct tpacket2_hdr *h2; + struct tpacket3_hdr *h3; + void *raw; }; -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 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 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 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 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 tpacket_req { + unsigned int tp_block_size; + unsigned int tp_block_nr; + unsigned int tp_frame_size; + unsigned int tp_frame_nr; }; -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 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; }; -struct lzma_len_dec { - uint16_t choice; - uint16_t choice2; - uint16_t low[128]; - uint16_t mid[128]; - uint16_t high[256]; +union tpacket_req_u { + struct tpacket_req req; + struct tpacket_req3 req3; }; -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 sock_fprog { + unsigned short len; + struct sock_filter __attribute__((btf_type_tag("user"))) *filter; }; -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; -}; +typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); -struct irq_glue { - struct irq_affinity_notify notify; - struct cpu_rmap *rmap; - u16 index; +struct packet_mreq_max { + int mr_ifindex; + unsigned short mr_type; + unsigned short mr_alen; + unsigned char mr_address[32]; }; -struct phy_lookup { - struct list_head node; - const char *dev_id; - const char *con_id; - struct phy *phy; +struct fanout_args { + __u16 id; + __u16 type_flags; + __u32 max_num_members; }; -struct phy_provider { - struct device *dev; - struct device_node *children; - struct module *owner; - struct list_head list; - struct phy * (*of_xlate)(struct device *, struct of_phandle_args *); +struct tpacket_rollover_stats { + __u64 tp_all; + __u64 tp_huge; + __u64 tp_failed; }; -struct class_dev_iter { - struct klist_iter ki; - const struct device_type *type; - struct subsys_private *sp; +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 msi_domain_template { - char name[48]; - struct irq_chip chip; - struct msi_domain_ops ops; - struct msi_domain_info info; +enum dns_payload_content_type { + DNS_PAYLOAD_IS_SERVER_LIST = 0, }; -enum { - AML_FIELD_UPDATE_PRESERVE = 0, - AML_FIELD_UPDATE_WRITE_AS_ONES = 32, - AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64, +enum dns_lookup_status { + DNS_LOOKUP_NOT_DONE = 0, + DNS_LOOKUP_GOOD = 1, + DNS_LOOKUP_GOOD_WITH_BAD = 2, + DNS_LOOKUP_BAD = 3, + DNS_LOOKUP_GOT_NOT_FOUND = 4, + DNS_LOOKUP_GOT_LOCAL_FAILURE = 5, + DNS_LOOKUP_GOT_TEMP_FAILURE = 6, + DNS_LOOKUP_GOT_NS_FAILURE = 7, + NR__dns_lookup_status = 8, }; -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)); - -struct clk_composite { - struct clk_hw hw; - struct clk_ops ops; - struct clk_hw *mux_hw; - struct clk_hw *rate_hw; - struct clk_hw *gate_hw; - const struct clk_ops *mux_ops; - const struct clk_ops *rate_ops; - const struct clk_ops *gate_ops; +struct dns_payload_header { + __u8 zero; + __u8 content; + __u8 version; }; -struct sci_port_params; - -struct plat_sci_port; - -struct sci_port { - struct uart_port port; - const struct sci_port_params *params; - const struct plat_sci_port *cfg; - unsigned int sampling_rate_mask; - resource_size_t reg_size; - struct mctrl_gpios *gpios; - struct clk *clks[4]; - unsigned long clk_rates[4]; - int irqs[6]; - char *irqstr[6]; - struct dma_chan *chan_tx; - struct dma_chan *chan_rx; - struct dma_chan *chan_tx_saved; - struct dma_chan *chan_rx_saved; - dma_cookie_t cookie_tx; - dma_cookie_t cookie_rx[2]; - dma_cookie_t active_rx; - dma_addr_t tx_dma_addr; - unsigned int tx_dma_len; - struct scatterlist sg_rx[2]; - void *rx_buf[2]; - size_t buf_len_rx; - struct work_struct work_tx; - struct hrtimer rx_timer; - unsigned int rx_timeout; - unsigned int rx_frame; - int rx_trigger; - struct timer_list rx_fifo_timer; - int rx_fifo_timeout; - u16 hscif_tot; - bool has_rtscts; - bool autorts; +struct dns_server_list_v1_header { + struct dns_payload_header hdr; + __u8 source; + __u8 status; + __u8 nr_servers; }; -struct plat_sci_reg { - u8 offset; - u8 size; +struct compress_format { + unsigned char magic[2]; + const char *name; + decompress_fn decompressor; }; -struct sci_port_params { - const struct plat_sci_reg regs[20]; - unsigned int fifosize; - unsigned int overrun_reg; - unsigned int overrun_mask; - unsigned int sampling_rate_mask; - unsigned int error_mask; - unsigned int error_clear; -}; +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 plat_sci_port_ops; +typedef struct { + unsigned char op; + unsigned char bits; + unsigned short val; +} code; -struct plat_sci_port { - unsigned int type; - upf_t flags; - unsigned int sampling_rate; - unsigned int scscr; - unsigned char regtype; - struct plat_sci_port_ops *ops; +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 plat_sci_port_ops { - void (*init_pins)(struct uart_port *, unsigned int); +struct inflate_workspace { + struct inflate_state inflate_state; + unsigned char working_window[32768]; }; -struct sci_irq_desc { - const char *desc; - irq_handler_t handler; +struct riscv_isa_ext_data { + const unsigned int id; + const char *name; + const char *property; }; -enum mctrl_gpio_idx { - UART_GPIO_CTS = 0, - UART_GPIO_DSR = 1, - UART_GPIO_DCD = 2, - UART_GPIO_RNG = 3, - UART_GPIO_RI = 3, - UART_GPIO_RTS = 4, - UART_GPIO_DTR = 5, - UART_GPIO_MAX = 6, +struct riscv_isainfo { + unsigned long isa[1]; }; -enum { - SCIx_ERI_IRQ = 0, - SCIx_RXI_IRQ = 1, - SCIx_TXI_IRQ = 2, - SCIx_BRI_IRQ = 3, - SCIx_DRI_IRQ = 4, - SCIx_TEI_IRQ = 5, - SCIx_NR_IRQS = 6, - SCIx_MUX_IRQ = 6, +enum KTHREAD_BITS { + KTHREAD_IS_PER_CPU = 0, + KTHREAD_SHOULD_STOP = 1, + KTHREAD_SHOULD_PARK = 2, }; enum { - SCIx_PROBE_REGTYPE = 0, - SCIx_SCI_REGTYPE = 1, - SCIx_IRDA_REGTYPE = 2, - SCIx_SCIFA_REGTYPE = 3, - SCIx_SCIFB_REGTYPE = 4, - SCIx_SH2_SCIF_FIFODATA_REGTYPE = 5, - SCIx_SH3_SCIF_REGTYPE = 6, - SCIx_SH4_SCIF_REGTYPE = 7, - SCIx_SH4_SCIF_BRG_REGTYPE = 8, - SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE = 9, - SCIx_SH4_SCIF_FIFODATA_REGTYPE = 10, - SCIx_SH7705_SCIF_REGTYPE = 11, - SCIx_HSCIF_REGTYPE = 12, - SCIx_RZ_SCIFA_REGTYPE = 13, - SCIx_NR_REGTYPES = 14, + KTW_FREEZABLE = 1, }; -enum { - SCSMR = 0, - SCBRR = 1, - SCSCR = 2, - SCxSR = 3, - SCFCR = 4, - SCFDR = 5, - SCxTDR = 6, - SCxRDR = 7, - SCLSR = 8, - SCTFDR = 9, - SCRFDR = 10, - SCSPTR = 11, - HSSRR = 12, - SCPCR = 13, - SCPDR = 14, - SCDL = 15, - SCCKS = 16, - HSRTRGR = 17, - HSTTRGR = 18, - SEMR = 19, - SCIx_NR_REGS = 20, +struct kthread_create_info { + char *full_name; + int (*threadfn)(void *); + void *data; + int node; + struct task_struct *result; + struct completion *done; + struct list_head list; }; -enum SCI_CLKS { - SCI_FCK = 0, - SCI_SCK = 1, - SCI_BRG_INT = 2, - SCI_SCIF_CLK = 3, - SCI_NUM_CLKS = 4, +struct kthread_delayed_work { + struct kthread_work work; + struct timer_list timer; }; -struct scsi_event { - enum scsi_device_event evt_type; - struct list_head node; +struct kthread_flush_work { + struct kthread_work work; + struct completion done; }; -struct rtl821x_priv { - u16 phycr1; - u16 phycr2; - bool has_phycr2; - struct clk *clk; +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; }; -typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); - -struct swoc_info { - __u8 rev; - __u8 reserved[8]; - __u16 LinuxSKU; - __u16 LinuxVer; - __u8 reserved2[47]; -} __attribute__((packed)); - -struct syscon_reboot_context { - struct regmap *map; - u32 offset; - u32 value; - u32 mask; - struct notifier_block restart_handler; +struct semaphore_waiter { + struct list_head list; + struct task_struct *task; + bool up; }; -struct sd_busy_data { - struct mmc_card *card; - u8 *reg_buf; +enum kvm_stat_kind { + KVM_STAT_VM = 0, + KVM_STAT_VCPU = 1, }; -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, +enum kvm_riscv_hfence_type { + KVM_RISCV_HFENCE_UNKNOWN = 0, + KVM_RISCV_HFENCE_GVMA_VMID_GPA = 1, + KVM_RISCV_HFENCE_VVMA_ASID_GVA = 2, + KVM_RISCV_HFENCE_VVMA_ASID_ALL = 3, + KVM_RISCV_HFENCE_VVMA_GVA = 4, }; -struct channels_reply_data { - struct ethnl_reply_data base; - struct ethtool_channels channels; +enum kvm_riscv_sbi_ext_status { + KVM_RISCV_SBI_EXT_UNINITIALIZED = 0, + KVM_RISCV_SBI_EXT_AVAILABLE = 1, + KVM_RISCV_SBI_EXT_UNAVAILABLE = 2, }; -struct tcp_seq_afinfo { - sa_family_t family; +struct preempt_ops; + +struct preempt_notifier { + struct hlist_node link; + struct preempt_ops *ops; }; -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, +typedef u64 gpa_t; + +struct kvm_mmio_fragment { + gpa_t gpa; + void *data; + unsigned int len; }; -enum tcp_tw_status { - TCP_TW_SUCCESS = 0, - TCP_TW_RST = 1, - TCP_TW_ACK = 2, - TCP_TW_SYN = 3, +struct kvm_cpu_context { + unsigned long zero; + unsigned long ra; + unsigned long sp; + unsigned long gp; + unsigned long tp; + unsigned long t0; + unsigned long t1; + unsigned long t2; + unsigned long s0; + unsigned long s1; + unsigned long a0; + unsigned long a1; + unsigned long a2; + unsigned long a3; + unsigned long a4; + unsigned long a5; + unsigned long a6; + unsigned long a7; + unsigned long s2; + unsigned long s3; + unsigned long s4; + unsigned long s5; + unsigned long s6; + unsigned long s7; + unsigned long s8; + unsigned long s9; + unsigned long s10; + unsigned long s11; + unsigned long t3; + unsigned long t4; + unsigned long t5; + unsigned long t6; + unsigned long sepc; + unsigned long sstatus; + unsigned long hstatus; + long: 64; + union __riscv_fp_state fp; + struct __riscv_v_ext_state vector; }; -enum tcp_seq_states { - TCP_SEQ_STATE_LISTENING = 0, - TCP_SEQ_STATE_ESTABLISHED = 1, +struct kvm_vcpu_csr { + unsigned long vsstatus; + unsigned long vsie; + unsigned long vstvec; + unsigned long vsscratch; + unsigned long vsepc; + unsigned long vscause; + unsigned long vstval; + unsigned long hvip; + unsigned long vsatp; + unsigned long scounteren; + unsigned long senvcfg; }; -union tcp_md5_addr { - struct in_addr a4; - struct in6_addr a6; +struct kvm_vcpu_smstateen_csr { + unsigned long sstateen0; }; -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 kvm_vcpu; + +struct kvm_vcpu_timer { + bool init_done; + bool next_set; + u64 next_cycles; + struct hrtimer hrt; + bool sstc_enabled; + int (*timer_next_event)(struct kvm_vcpu *, u64); }; -struct bpf_iter__tcp { - union { - struct bpf_iter_meta *meta; - }; - union { - struct sock_common *sk_common; - }; - uid_t uid; +struct kvm_riscv_hfence { + enum kvm_riscv_hfence_type type; + unsigned long asid; + unsigned long order; + gpa_t addr; + gpa_t size; }; -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 kvm_mmio_decode { + unsigned long insn; + int insn_len; + int len; + int shift; + int return_handled; }; -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 kvm_csr_decode { + unsigned long insn; + int return_handled; }; -struct xfrm_if_decode_session_result; +struct kvm_vcpu_sbi_context { + int return_handled; + enum kvm_riscv_sbi_ext_status ext_status[10]; +}; -struct xfrm_if_cb { - bool (*decode_session)(struct sk_buff *, unsigned short, struct xfrm_if_decode_session_result *); +struct kvm_vcpu_aia_csr { + unsigned long vsiselect; + unsigned long hviprio1; + unsigned long hviprio2; + unsigned long vsieh; + unsigned long hviph; + unsigned long hviprio1h; + unsigned long hviprio2h; }; -struct xfrm_if_decode_session_result { - struct net *net; - u32 if_id; +struct kvm_vcpu_aia { + struct kvm_vcpu_aia_csr guest_csr; + struct kvm_vcpu_aia_csr guest_reset_csr; + gpa_t imsic_addr; + u32 hart_index; + void *imsic_state; }; -enum { - XFRM_POLICY_TYPE_MAIN = 0, - XFRM_POLICY_TYPE_SUB = 1, - XFRM_POLICY_TYPE_MAX = 2, - XFRM_POLICY_TYPE_ANY = 255, +struct kvm_mmu_memory_cache { + gfp_t gfp_zero; + gfp_t gfp_custom; + struct kmem_cache *kmem_cache; + int capacity; + int nobjs; + void **objects; }; -enum { - XFRM_LOOKUP_ICMP = 1, - XFRM_LOOKUP_QUEUE = 2, - XFRM_LOOKUP_KEEP_DST_REF = 4, +struct kvm_pmc { + u8 idx; + struct perf_event *perf_event; + u64 counter_val; + union sbi_pmu_ctr_info cinfo; + bool started; + unsigned long event_idx; }; -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 kvm_fw_event { + unsigned long value; + bool started; }; -enum ip_conntrack_dir { - IP_CT_DIR_ORIGINAL = 0, - IP_CT_DIR_REPLY = 1, - IP_CT_DIR_MAX = 2, +struct kvm_pmu { + struct kvm_pmc pmc[64]; + struct kvm_fw_event fw_event[32]; + int num_fw_ctrs; + int num_hw_ctrs; + bool init_done; + unsigned long pmc_in_use[1]; }; -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 kvm_vcpu_config { + u64 henvcfg; + u64 hstateen0; }; -struct xfrm_pol_inexact_key { - possible_net_t net; - u32 if_id; - u16 family; - u8 dir; - u8 type; +struct kvm_vcpu_arch { + bool ran_atleast_once; + int last_exit_cpu; + unsigned long isa[1]; + unsigned long mvendorid; + unsigned long marchid; + unsigned long mimpid; + unsigned long host_sscratch; + unsigned long host_stvec; + unsigned long host_scounteren; + unsigned long host_senvcfg; + unsigned long host_sstateen0; + struct kvm_cpu_context host_context; + struct kvm_cpu_context guest_context; + struct kvm_vcpu_csr guest_csr; + struct kvm_vcpu_smstateen_csr smstateen_csr; + struct kvm_cpu_context guest_reset_context; + struct kvm_vcpu_csr guest_reset_csr; + unsigned long irqs_pending[1]; + unsigned long irqs_pending_mask[1]; + struct kvm_vcpu_timer timer; + spinlock_t hfence_lock; + unsigned long hfence_head; + unsigned long hfence_tail; + struct kvm_riscv_hfence hfence_queue[64]; + struct kvm_mmio_decode mmio_decode; + struct kvm_csr_decode csr_decode; + struct kvm_vcpu_sbi_context sbi_context; + struct kvm_vcpu_aia aia_context; + struct kvm_mmu_memory_cache mmu_page_cache; + bool power_off; + bool pause; + struct kvm_pmu pmu_context; + struct kvm_vcpu_config cfg; }; -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 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 sk_buff_fclones { - struct sk_buff skb1; - struct sk_buff skb2; - refcount_t fclone_ref; +struct kvm_vcpu_stat { + struct kvm_vcpu_stat_generic generic; + u64 ecall_exit_stat; + u64 wfi_exit_stat; + u64 mmio_exit_user; + u64 mmio_exit_kernel; + u64 csr_exit_user; + u64 csr_exit_kernel; + u64 signal_exits; + u64 exits; }; -enum nf_nat_manip_type; +struct kvm_dirty_gfn; -struct nf_nat_hook { - int (*parse_nat_setup)(struct nf_conn *, enum nf_nat_manip_type, const struct nlattr *); - void (*decode_session)(struct sk_buff *, struct flowi *); - unsigned int (*manip_pkt)(struct sk_buff *, struct nf_conn *, enum nf_nat_manip_type, enum ip_conntrack_dir); - void (*remove_nat_bysrc)(struct nf_conn *); +struct kvm_dirty_ring { + u32 dirty_index; + u32 reset_index; + u32 size; + u32 soft_limit; + struct kvm_dirty_gfn *dirty_gfns; + int index; }; -struct xfrm_flo { - struct dst_entry *dst_orig; - u8 flags; +struct kvm; + +struct kvm_run; + +struct kvm_memory_slot; + +struct kvm_vcpu { + struct kvm *kvm; + struct preempt_notifier preempt_notifier; + 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; + long: 64; + 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 xfrm_pol_inexact_candidates { - struct hlist_head *res[4]; +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 xfrmk_spdinfo { - u32 incnt; - u32 outcnt; - u32 fwdcnt; - u32 inscnt; - u32 outscnt; - u32 fwdscnt; - u32 spdhcnt; - u32 spdhmcnt; +struct kvm_vm_stat_generic { + u64 remote_tlb_flush; + u64 remote_tlb_flush_requests; }; -struct xfrm_policy_walk { - struct xfrm_policy_walk_entry walk; - u8 type; - u32 seq; +struct kvm_vm_stat { + struct kvm_vm_stat_generic generic; }; -enum { - SEG6_IPTUNNEL_UNSPEC = 0, - SEG6_IPTUNNEL_SRH = 1, - __SEG6_IPTUNNEL_MAX = 2, +struct kvm_vmid { + unsigned long vmid_version; + unsigned long vmid; }; -enum { - SEG6_IPTUN_MODE_INLINE = 0, - SEG6_IPTUN_MODE_ENCAP = 1, - SEG6_IPTUN_MODE_L2ENCAP = 2, - SEG6_IPTUN_MODE_ENCAP_RED = 3, - SEG6_IPTUN_MODE_L2ENCAP_RED = 4, +struct kvm_guest_timer { + u32 nsec_mult; + u32 nsec_shift; + u64 time_delta; }; -struct seg6_iptunnel_encap { - int mode; - struct ipv6_sr_hdr srh[0]; +struct kvm_aia { + bool in_kernel; + bool initialized; + u32 mode; + u32 nr_ids; + u32 nr_sources; + u32 nr_group_bits; + u32 nr_group_shift; + u32 nr_hart_bits; + u32 nr_guest_bits; + gpa_t aplic_addr; + void *aplic_state; }; -struct seg6_lwt { - struct dst_cache cache; - struct seg6_iptunnel_encap tuninfo[0]; +struct kvm_arch { + struct kvm_vmid vmid; + pgd_t *pgd; + phys_addr_t pgd_phys; + struct kvm_guest_timer timer; + struct kvm_aia aia; }; -struct xprt_addr { - const char *addr; +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; }; -enum handshake_handler_class { - HANDSHAKE_HANDLER_CLASS_NONE = 0, - HANDSHAKE_HANDLER_CLASS_TLSHD = 1, - HANDSHAKE_HANDLER_CLASS_MAX = 2, -}; +struct kvm_io_bus; -enum hr_flags_bits { - HANDSHAKE_F_REQ_COMPLETED = 0, -}; +struct kvm_coalesced_mmio_ring; -struct __user_cap_header_struct; +struct kvm_irq_routing_table; -typedef struct __user_cap_header_struct *cap_user_header_t; +struct kvm_stat_data; -struct __user_cap_header_struct { - __u32 version; - int pid; +struct kvm { + spinlock_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 { + spinlock_t lock; + struct list_head items; + struct list_head resampler_list; + struct mutex resampler_lock; + } irqfds; + struct list_head ioeventfds; + struct kvm_vm_stat stat; + struct kvm_arch arch; + refcount_t users_count; + struct kvm_coalesced_mmio_ring *coalesced_mmio_ring; + spinlock_t ring_lock; + struct list_head coalesced_zones; + struct mutex irq_lock; + struct kvm_irq_routing_table __attribute__((btf_type_tag("rcu"))) *irq_routing; + struct hlist_head irq_ack_notifier_list; + 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 __user_cap_data_struct; - -typedef struct __user_cap_data_struct __attribute__((btf_type_tag("user"))) *cap_user_data_t; +struct kvm_io_device; -struct __user_cap_data_struct { - __u32 effective; - __u32 permitted; - __u32 inheritable; +struct kvm_io_range { + gpa_t addr; + int len; + struct kvm_io_device *dev; }; -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 kvm_io_bus { + int dev_count; + int ioeventfd_count; + struct kvm_io_range range[0]; }; -struct __kernel_timex; - -struct k_itimer; +struct kvm_coalesced_mmio { + __u64 phys_addr; + __u32 len; + union { + __u32 pad; + __u32 pio; + }; + __u8 data[8]; +}; -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 *); +struct kvm_coalesced_mmio_ring { + __u32 first; + __u32 last; + struct kvm_coalesced_mmio coalesced_mmio[0]; }; -struct __kernel_timex_timeval { - __kernel_time64_t tv_sec; - long long tv_usec; +struct kvm_irq_routing_table { + int chip[1024]; + u32 nr_rt_entries; + struct hlist_head map[0]; }; -struct __kernel_timex { - unsigned int modes; - long long offset; - long long freq; - long long maxerror; - long long esterror; - int status; - long long constant; - long long precision; - long long tolerance; - struct __kernel_timex_timeval time; - long long tick; - long long ppsfreq; - long long jitter; - int shift; - long long stabil; - long long jitcnt; - long long calcnt; - long long errcnt; - long long stbcnt; - int tai; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct 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 (*arch_invalidate_secondary_tlbs)(struct mmu_notifier *, struct mm_struct *, unsigned long, unsigned long); + struct mmu_notifier * (*alloc_notifier)(struct mm_struct *); + void (*free_notifier)(struct mmu_notifier *); }; -enum alarmtimer_restart { - ALARMTIMER_NORESTART = 0, - ALARMTIMER_RESTART = 1, +struct _kvm_stats_desc; + +struct kvm_stat_data { + struct kvm *kvm; + const struct _kvm_stats_desc *desc; + enum kvm_stat_kind kind; }; -enum alarmtimer_type { - ALARM_REALTIME = 0, - ALARM_BOOTTIME = 1, - ALARM_NUMTYPE = 2, - ALARM_REALTIME_FREEZER = 3, - ALARM_BOOTTIME_FREEZER = 4, +struct kvm_stats_desc { + __u32 flags; + __s16 exponent; + __u16 size; + __u32 offset; + __u32 bucket_size; + char name[0]; }; -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 _kvm_stats_desc { + struct kvm_stats_desc desc; + char name[48]; }; -struct cpu_timer { - struct timerqueue_node node; - struct timerqueue_head *head; - struct pid *pid; - struct list_head elist; - int firing; - struct task_struct __attribute__((btf_type_tag("rcu"))) *handling; +struct preempt_ops { + void (*sched_in)(struct preempt_notifier *, int); + void (*sched_out)(struct preempt_notifier *, struct task_struct *); }; -typedef __kernel_timer_t timer_t; +struct kvm_debug_exit_arch {}; -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; +struct kvm_hyperv_exit { + __u32 type; + __u32 pad1; union { struct { - struct hrtimer timer; - } real; - struct cpu_timer cpu; + __u32 msr; + __u32 pad2; + __u64 control; + __u64 evt_page; + __u64 msg_page; + } synic; struct { - struct alarm alarmtimer; - } alarm; - } it; - struct callback_head rcu; + __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 __kernel_itimerspec { - struct __kernel_timespec it_interval; - struct __kernel_timespec it_value; +struct kvm_xen_exit { + __u32 type; + union { + struct { + __u32 longmode; + __u32 cpl; + __u64 input; + __u64 result; + __u64 params[6]; + } hcall; + } u; }; -struct old_itimerspec32 { - struct old_timespec32 it_interval; - struct old_timespec32 it_value; +struct kvm_sync_regs {}; + +struct kvm_run { + __u8 request_interrupt_window; + __u8 immediate_exit; + __u8 padding1[6]; + __u32 exit_reason; + __u8 ready_for_interrupt_injection; + __u8 if_flag; + __u16 flags; + __u64 cr8; + __u64 apic_base; + union { + struct { + __u64 hardware_exit_reason; + } hw; + struct { + __u64 hardware_entry_failure_reason; + __u32 cpu; + } fail_entry; + struct { + __u32 exception; + __u32 error_code; + } ex; + struct { + __u8 direction; + __u8 size; + __u16 port; + __u32 count; + __u64 data_offset; + } io; + struct { + struct kvm_debug_exit_arch arch; + } debug; + struct { + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } mmio; + struct { + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } iocsr_io; + struct { + __u64 nr; + __u64 args[6]; + __u64 ret; + union { + __u64 flags; + }; + } hypercall; + struct { + __u64 rip; + __u32 is_write; + __u32 pad; + } tpr_access; + struct { + __u8 icptcode; + __u16 ipa; + __u32 ipb; + } s390_sieic; + __u64 s390_reset_flags; + struct { + __u64 trans_exc_code; + __u32 pgm_code; + } s390_ucontrol; + struct { + __u32 dcrn; + __u32 data; + __u8 is_write; + } dcr; + struct { + __u32 suberror; + __u32 ndata; + __u64 data[16]; + } internal; + struct { + __u32 suberror; + __u32 ndata; + __u64 flags; + union { + struct { + __u8 insn_size; + __u8 insn_bytes[15]; + }; + }; + } emulation_failure; + struct { + __u64 gprs[32]; + } osi; + struct { + __u64 nr; + __u64 ret; + __u64 args[9]; + } papr_hcall; + struct { + __u16 subchannel_id; + __u16 subchannel_nr; + __u32 io_int_parm; + __u32 io_int_word; + __u32 ipb; + __u8 dequeued; + } s390_tsch; + struct { + __u32 epr; + } epr; + struct { + __u32 type; + __u32 ndata; + union { + __u64 data[16]; + }; + } system_event; + struct { + __u64 addr; + __u8 ar; + __u8 reserved; + __u8 fc; + __u8 sel1; + __u16 sel2; + } s390_stsi; + struct { + __u8 vector; + } eoi; + struct kvm_hyperv_exit hyperv; + struct { + __u64 esr_iss; + __u64 fault_ipa; + } arm_nisv; + struct { + __u8 error; + __u8 pad[7]; + __u32 reason; + __u32 index; + __u64 data; + } msr; + struct kvm_xen_exit xen; + struct { + unsigned long extension_id; + unsigned long function_id; + unsigned long args[6]; + unsigned long ret[2]; + } riscv_sbi; + struct { + unsigned long csr_num; + unsigned long new_value; + unsigned long write_mask; + unsigned long ret_value; + } riscv_csr; + struct { + __u32 flags; + } notify; + char padding[256]; + }; + __u64 kvm_valid_regs; + __u64 kvm_dirty_regs; + union { + struct kvm_sync_regs regs; + char padding[2048]; + } s; }; -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: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct kvm_dirty_gfn { + __u32 flags; + __u32 slot; + __u64 offset; }; -typedef struct sigevent sigevent_t; - -struct bpf_empty_prog_array { - struct bpf_prog_array hdr; - struct bpf_prog *null_prog; +struct interval_tree_node { + struct rb_node rb; + unsigned long start; + unsigned long last; + unsigned long __subtree_last; }; -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); - -struct xdp_cpumap_stats; +typedef u64 gfn_t; -typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); +struct kvm_arch_memory_slot {}; -struct xdp_cpumap_stats { - unsigned int redirect; - unsigned int pass; - unsigned int drop; +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; }; -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 rnd_state { - __u32 s1; - __u32 s2; - __u32 s3; - __u32 s4; +enum tick_nohz_mode { + NOHZ_MODE_INACTIVE = 0, + NOHZ_MODE_LOWRES = 1, + NOHZ_MODE_HIGHRES = 2, }; -struct bpf_prog_dummy { - struct bpf_prog prog; +struct tick_sched { + 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; + unsigned int stalled_jiffies; + unsigned long last_tick_jiffies; + struct hrtimer sched_timer; + ktime_t last_tick; + ktime_t next_tick; + unsigned long idle_jiffies; + ktime_t idle_waketime; + seqcount_t idle_sleeptime_seq; + ktime_t idle_entrytime; + enum tick_nohz_mode nohz_mode; + unsigned long last_jiffies; + u64 timer_expires_base; + u64 timer_expires; + u64 next_timer; + ktime_t idle_expires; + unsigned long idle_calls; + unsigned long idle_sleeps; + ktime_t idle_exittime; + ktime_t idle_sleeptime; + ktime_t iowait_sleeptime; + atomic_t tick_dep_mask; + unsigned long check_clocks; }; -typedef u64 (*btf_bpf_user_rnd_u32)(); +typedef void (*btf_trace_csd_queue_cpu)(void *, const unsigned int, unsigned long, smp_call_func_t, call_single_data_t *); -typedef u64 (*btf_bpf_get_raw_cpu_id)(); +typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, call_single_data_t *); -struct trace_event_raw_xdp_exception { - struct trace_entry ent; - int prog_id; - u32 act; - int ifindex; - char __data[0]; +typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, call_single_data_t *); + +struct call_function_data { + call_single_data_t __attribute__((btf_type_tag("percpu"))) *csd; + cpumask_var_t cpumask; + cpumask_var_t cpumask_ipi; }; -struct trace_event_raw_xdp_bulk_tx { +struct trace_event_raw_csd_queue_cpu { struct trace_entry ent; - int ifindex; - u32 act; - int drops; - int sent; - int err; + unsigned int cpu; + void *callsite; + void *func; + void *csd; char __data[0]; }; -struct _bpf_dtab_netdev { - struct net_device *dev; -}; - -struct trace_event_raw_xdp_redirect_template { +struct trace_event_raw_csd_function { struct trace_entry ent; - int prog_id; - u32 act; - int ifindex; - int err; - int to_ifindex; - u32 map_id; - int map_index; + void *func; + void *csd; char __data[0]; }; -struct trace_event_raw_xdp_cpumap_kthread { - struct trace_entry ent; - int map_id; - u32 act; +struct smp_call_on_cpu_struct { + struct work_struct work; + struct completion done; + int (*func)(void *); + void *data; + int ret; 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_data_offsets_csd_queue_cpu {}; + +struct trace_event_data_offsets_csd_function {}; + +struct trace_export { + struct trace_export __attribute__((btf_type_tag("rcu"))) *next; + void (*write)(struct trace_export *, const void *, unsigned int); + int flags; }; -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 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 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 ftrace_stack { + unsigned long calls[1024]; }; -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 ftrace_stacks { + struct ftrace_stack stacks[4]; }; -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_buffer_struct { + int nesting; + char buffer[4096]; }; -struct trace_event_data_offsets_xdp_exception {}; +enum ring_buffer_flags { + RB_FL_OVERWRITE = 1, +}; -struct trace_event_data_offsets_xdp_bulk_tx {}; +struct err_info { + const char **errs; + u8 type; + u16 pos; + u64 ts; +}; -struct trace_event_data_offsets_xdp_redirect_template {}; +struct tracing_log_err { + struct list_head list; + struct err_info info; + char loc[128]; + char *cmd; +}; -struct trace_event_data_offsets_xdp_cpumap_kthread {}; +struct buffer_ref { + struct trace_buffer *buffer; + void *page; + int cpu; + refcount_t refcount; +}; -struct trace_event_data_offsets_xdp_cpumap_enqueue {}; +typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *); -struct trace_event_data_offsets_xdp_devmap_xmit {}; +typedef bool (*cond_update_fn_t)(struct trace_array *, void *); -struct trace_event_data_offsets_mem_disconnect {}; +struct trace_min_max_param { + struct mutex *lock; + u64 *val; + u64 *min; + u64 *max; +}; -struct trace_event_data_offsets_mem_connect {}; +struct ftrace_buffer_info { + struct trace_iterator iter; + void *spare; + unsigned int spare_cpu; + unsigned int read; +}; -struct trace_event_data_offsets_mem_return_failed {}; +typedef unsigned long perf_trace_t[1024]; -typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); +typedef int (*objpool_init_obj_cb)(void *, void *); -typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); +struct mmap_unlock_irq_work { + struct irq_work irq_work; + struct mm_struct *mm; +}; -typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); +enum { + BPF_TASK_ITER_ALL_PROCS = 0, + BPF_TASK_ITER_ALL_THREADS = 1, + BPF_TASK_ITER_PROC_THREADS = 2, +}; -typedef void (*btf_trace_mm_compaction_migratepages)(void *, struct compact_control *, unsigned int); +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 void (*btf_trace_mm_compaction_begin)(void *, struct compact_control *, unsigned long, unsigned long, bool); +typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64); -typedef void (*btf_trace_mm_compaction_end)(void *, struct compact_control *, unsigned long, unsigned long, bool, int); +struct bpf_iter__task { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; +}; -typedef void (*btf_trace_mm_compaction_try_to_compact_pages)(void *, int, gfp_t, int); +struct bpf_iter_seq_task_common { + struct pid_namespace *ns; + enum bpf_iter_task_type type; + u32 pid; + u32 pid_visiting; +}; -typedef void (*btf_trace_mm_compaction_finished)(void *, struct zone *, int, int); +struct bpf_iter__task_file { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; + u32 fd; + union { + struct file *file; + }; +}; -typedef void (*btf_trace_mm_compaction_suitable)(void *, struct zone *, int, int); +struct bpf_iter_seq_task_file_info { + struct bpf_iter_seq_task_common common; + struct task_struct *task; + u32 tid; + u32 fd; +}; -typedef void (*btf_trace_mm_compaction_deferred)(void *, struct zone *, int); +struct bpf_iter__task_vma { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; + union { + struct vm_area_struct *vma; + }; +}; -typedef void (*btf_trace_mm_compaction_defer_compaction)(void *, struct zone *, int); +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; +}; -typedef void (*btf_trace_mm_compaction_defer_reset)(void *, struct zone *, int); +struct bpf_iter_task_vma { + __u64 __opaque[1]; +}; -typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int); +struct bpf_iter_task_vma_kern_data; -typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type); +struct bpf_iter_task_vma_kern { + struct bpf_iter_task_vma_kern_data *data; +}; -typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type); +struct bpf_iter_task_vma_kern_data { + struct task_struct *task; + struct mm_struct *mm; + struct mmap_unlock_irq_work *work; + struct vma_iterator vmi; +}; -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, +struct bpf_iter_css_task { + __u64 __opaque[1]; }; -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, +struct bpf_iter_css_task_kern { + struct css_task_iter *css_it; }; -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 bpf_iter_task { + __u64 __opaque[3]; }; -struct trace_event_raw_mm_compaction_migratepages { - struct trace_entry ent; - unsigned long nr_migrated; - unsigned long nr_failed; - char __data[0]; +struct bpf_iter_task_kern { + struct task_struct *task; + struct task_struct *pos; + unsigned int flags; }; -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 bpf_iter_seq_task_info { + struct bpf_iter_seq_task_common common; + u32 tid; }; -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 anon_vma_name { + struct kref kref; + char name[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 madvise_walk_private { + struct mmu_gather *tlb; + bool pageout; }; -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]; +enum { + PAGE_REPORTING_IDLE = 0, + PAGE_REPORTING_REQUESTED = 1, + PAGE_REPORTING_ACTIVE = 2, }; -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]; +enum fsconfig_command { + FSCONFIG_SET_FLAG = 0, + FSCONFIG_SET_STRING = 1, + FSCONFIG_SET_BINARY = 2, + FSCONFIG_SET_PATH = 3, + FSCONFIG_SET_PATH_EMPTY = 4, + FSCONFIG_SET_FD = 5, + FSCONFIG_CMD_CREATE = 6, + FSCONFIG_CMD_RECONFIGURE = 7, + FSCONFIG_CMD_CREATE_EXCL = 8, }; -struct trace_event_raw_mm_compaction_kcompactd_sleep { - struct trace_entry ent; - int nid; - char __data[0]; +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: 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; + }; + struct { + struct mutex ring_lock; + wait_queue_head_t wait; + long: 64; + long: 64; + long: 64; + }; + struct { + unsigned int tail; + unsigned int completed_events; + spinlock_t completion_lock; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct page *internal_pages[8]; + struct file *aio_ring_file; + unsigned int id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct trace_event_raw_kcompactd_wake_template { - struct trace_entry ent; - int nid; - int order; - enum zone_type highest_zoneidx; - char __data[0]; +struct kioctx_cpu { + unsigned int reqs_available; }; -typedef enum { - ISOLATE_ABORT = 0, - ISOLATE_NONE = 1, - ISOLATE_SUCCESS = 2, -} isolate_migrate_t; - -struct trace_event_data_offsets_mm_compaction_isolate_template {}; - -struct trace_event_data_offsets_mm_compaction_migratepages {}; - -struct trace_event_data_offsets_mm_compaction_begin {}; - -struct trace_event_data_offsets_mm_compaction_end {}; - -struct trace_event_data_offsets_mm_compaction_try_to_compact_pages {}; - -struct trace_event_data_offsets_mm_compaction_suitable_template {}; - -struct trace_event_data_offsets_mm_compaction_defer_template {}; - -struct trace_event_data_offsets_mm_compaction_kcompactd_sleep {}; - -struct trace_event_data_offsets_kcompactd_wake_template {}; - -struct alloc_context { - struct zonelist *zonelist; - nodemask_t *nodemask; - struct zoneref *preferred_zoneref; - int migratetype; - enum zone_type highest_zoneidx; - bool spread_dirty_pages; +struct ctx_rq_wait { + struct completion comp; + atomic_t count; }; -enum legacy_fs_param { - LEGACY_FS_UNSET_PARAMS = 0, - LEGACY_FS_MONOLITHIC_PARAMS = 1, - LEGACY_FS_INDIVIDUAL_PARAMS = 2, +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 legacy_fs_context { - char *legacy_data; - size_t data_size; - enum legacy_fs_param param_type; +struct fsync_iocb { + struct file *file; + struct work_struct work; + bool datasync; + struct cred *creds; }; -struct ext4_xattr_header { - __le32 h_magic; - __le32 h_refcount; - __le32 h_blocks; - __le32 h_hash; - __le32 h_checksum; - __u32 h_reserved[3]; +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; }; -struct ext4_xattr_block_find { - struct ext4_xattr_search s; - struct buffer_head *bh; -}; +typedef int kiocb_cancel_fn(struct kiocb *); -enum pnfs_layoutreturn_type { - RETURN_FILE = 1, - RETURN_FSID = 2, - RETURN_ALL = 3, +struct io_event { + __u64 data; + __u64 obj; + __s64 res; + __s64 res2; }; -struct cb_layoutrecallargs { - uint32_t cbl_recall_type; - uint32_t cbl_layout_type; - uint32_t cbl_layoutchanged; +struct aio_kiocb { union { - struct { - struct nfs_fh cbl_fh; - struct pnfs_layout_range cbl_range; - nfs4_stateid cbl_stateid; - }; - struct nfs_fsid cbl_fsid; + 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; }; -struct cb_offloadargs { - struct nfs_fh coa_fh; - nfs4_stateid coa_stateid; - uint32_t error; - uint64_t wr_count; - struct nfs_writeverf wr_writeverf; -}; +typedef __kernel_ulong_t aio_context_t; -struct cb_process_state { - __be32 drc_status; - struct nfs_client *clp; - struct nfs4_slot *slot; - u32 minorversion; - struct net *net; +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 cb_getattrargs { - struct nfs_fh fh; - uint32_t bitmap[2]; +struct aio_poll_table { + struct poll_table_struct pt; + struct aio_kiocb *iocb; + bool queued; + int error; }; -struct cb_getattrres { - __be32 status; - uint32_t bitmap[2]; - uint64_t size; - uint64_t change_attr; - struct timespec64 ctime; - struct timespec64 mtime; -}; +typedef u32 compat_aio_context_t; -struct cb_recallargs { - struct nfs_fh fh; - nfs4_stateid stateid; - uint32_t truncate; +struct __aio_sigset { + const sigset_t __attribute__((btf_type_tag("user"))) *sigmask; + size_t sigsetsize; }; -struct cb_devicenotifyitem; +struct __compat_aio_sigset { + compat_uptr_t sigmask; + compat_size_t sigsetsize; +}; -struct cb_devicenotifyargs { - uint32_t ndevs; - struct cb_devicenotifyitem *devs; +struct aio_ring { + unsigned int id; + unsigned int nr; + unsigned int head; + unsigned int tail; + unsigned int magic; + unsigned int compat_features; + unsigned int incompat_features; + unsigned int header_length; + struct io_event io_events[0]; }; -struct cb_devicenotifyitem { - uint32_t cbd_notify_type; - uint32_t cbd_layout_type; - struct nfs4_deviceid cbd_dev_id; - uint32_t cbd_immediate; +enum bio_post_read_step { + STEP_INITIAL = 0, + STEP_DECRYPT = 1, + STEP_VERITY = 2, + STEP_MAX = 3, }; -struct cb_recallanyargs { - uint32_t craa_objs_to_keep; - uint32_t craa_type_mask; +struct bio_post_read_ctx { + struct bio *bio; + struct work_struct work; + unsigned int cur_step; + unsigned int enabled_steps; }; -struct cb_recallslotargs { - uint32_t crsa_target_highest_slotid; +struct fat_cache { + struct list_head cache_list; + int nr_contig; + int fcluster; + int dcluster; }; -struct nfs_lowner { - __u64 clientid; - __u64 id; - dev_t s_dev; +struct fat_cache_id { + unsigned int id; + int nr_contig; + int fcluster; + int dcluster; }; -struct cb_notify_lock_args { - struct nfs_fh cbnl_fh; - struct nfs_lowner cbnl_owner; - bool cbnl_valid; +struct nfs_callback_data { + unsigned int users; + struct svc_serv *serv; }; -enum { - AUTOFS_IOC_READY_CMD = 96, - AUTOFS_IOC_FAIL_CMD = 97, - AUTOFS_IOC_CATATONIC_CMD = 98, - AUTOFS_IOC_PROTOVER_CMD = 99, - AUTOFS_IOC_SETTIMEOUT_CMD = 100, - AUTOFS_IOC_EXPIRE_CMD = 101, +enum nfs4_callback_procnum { + CB_NULL = 0, + CB_COMPOUND = 1, }; -struct vfs_cap_data { - __le32 magic_etc; - struct { - __le32 permitted; - __le32 inheritable; - } data[2]; +typedef int (*nlm_host_match_fn_t)(void *, struct nlm_host *); + +struct fscache_cookie; + +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_submount; + 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_unlink; + struct hlist_head path_mkdir; + struct hlist_head path_rmdir; + struct hlist_head path_mknod; + struct hlist_head path_truncate; + struct hlist_head path_symlink; + struct hlist_head path_link; + struct hlist_head path_rename; + struct hlist_head path_chmod; + struct hlist_head path_chown; + struct hlist_head path_chroot; + 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 mptcp_add_subflow; + 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; }; -struct vfs_ns_cap_data { - __le32 magic_etc; - struct { - __le32 permitted; - __le32 inheritable; - } data[2]; - __le32 rootid; +enum blkg_iostat_type { + BLKG_IOSTAT_READ = 0, + BLKG_IOSTAT_WRITE = 1, + BLKG_IOSTAT_DISCARD = 2, + BLKG_IOSTAT_NR = 3, }; -struct cpu_vfs_cap_data { - __u32 magic_etc; - kuid_t rootid; - kernel_cap_t permitted; - kernel_cap_t inheritable; +enum devm_ioremap_type { + DEVM_IOREMAP = 0, + DEVM_IOREMAP_UC = 1, + DEVM_IOREMAP_WC = 2, + DEVM_IOREMAP_NP = 3, }; -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 pcim_iomap_devres { + void *table[6]; }; -struct ima_digest_data; +struct arch_io_reserve_memtype_wc_devres { + resource_size_t start; + resource_size_t size; +}; -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 rcar_gen3_phy_drv_data { + const struct phy_ops *phy_usb2_ops; + bool no_adp_ctrl; }; -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]; +enum rcar_gen3_phy_index { + PHY_INDEX_BOTH_HC = 0, + PHY_INDEX_OHCI = 1, + PHY_INDEX_EHCI = 2, + PHY_INDEX_HSUSB = 3, }; -struct crypto_cipher { - struct crypto_tfm base; +struct rcar_gen3_chan; + +struct rcar_gen3_phy { + struct phy *phy; + struct rcar_gen3_chan *ch; + u32 int_enable_bits; + bool initialized; + bool otg_initialized; + bool powered; }; -struct crypto_rng { - struct crypto_tfm base; +struct rcar_gen3_chan { + void *base; + struct device *dev; + struct extcon_dev *extcon; + struct rcar_gen3_phy rphys[4]; + struct regulator *vbus; + struct work_struct work; + struct mutex lock; + enum usb_dr_mode dr_mode; + int irq; + u32 obint_enable_bits; + bool extcon_host; + bool is_otg_channel; + bool uses_otg_pins; + bool soc_no_adp_ctrl; }; -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; - long: 64; - long: 64; - long: 64; - long: 64; - struct crypto_alg base; +struct phy_provider { + struct device *dev; + struct device_node *children; + struct module *owner; + struct list_head list; + struct phy * (*of_xlate)(struct device *, struct of_phandle_args *); }; -struct crypto_istat_rng { - atomic64_t generate_cnt; - atomic64_t generate_tlen; - atomic64_t seed_cnt; - atomic64_t err_cnt; +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 sg_io_v4; +struct portdrv_service_data { + struct pcie_port_service_driver *drv; + struct device *dev; + u32 service; +}; -typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, unsigned int); +typedef int (*pcie_callback_t)(struct pcie_device *); -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 acpi_device_bus_id { + const char *bus_id; + struct ida instance_ida; + struct list_head node; }; -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 acpi_dep_data { + struct list_head node; + acpi_handle supplier; + acpi_handle consumer; + bool honor_dep; + bool met; + bool free_when_met; }; -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, +struct acpi_scan_clear_dep_work { + struct work_struct work; + struct acpi_device *adev; }; -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 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 pinctrl_dt_map { - struct list_head node; - struct pinctrl_dev *pctldev; - struct pinctrl_map *map; - unsigned int num_maps; +struct acpi_handle_list { + u32 count; + acpi_handle *handles; }; -struct aperture_range { - struct device *dev; - resource_size_t base; - resource_size_t size; - struct list_head lh; - void (*detach)(struct device *); +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_pkg_info { + u8 *free_space; + acpi_size length; + u32 object_space; + u32 num_packages; }; -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; +typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *); + +struct ccu_mult_internal { + u8 offset; + u8 shift; + u8 width; + u8 min; + u8 max; }; -struct acpi_pci_link { - struct list_head list; - struct acpi_device *device; - struct acpi_pci_link_irq irq; - int refcnt; +struct ccu_nkmp { + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_mult_internal k; + struct ccu_div_internal m; + struct ccu_div_internal p; + unsigned int fixed_post_div; + unsigned int max_rate; + struct ccu_common common; }; -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, +struct ccu_frac_internal { + u32 enable; + u32 select; + unsigned long rates[2]; }; -typedef u32 acpi_rsdesc_size; +struct ccu_sdm_setting; -struct __prci_clock; +struct ccu_sdm_internal { + struct ccu_sdm_setting *table; + u32 table_size; + u32 enable; + u32 tuning_enable; + u16 tuning_reg; +}; -struct prci_clk_desc { - struct __prci_clock *clks; - size_t num_clks; +struct ccu_nm { + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_div_internal m; + struct ccu_frac_internal frac; + struct ccu_sdm_internal sdm; + unsigned int fixed_post_div; + unsigned int min_rate; + unsigned int max_rate; + struct ccu_common common; }; -struct __prci_wrpll_data; +struct ccu_sdm_setting { + unsigned long rate; + u32 pattern; + u32 m; + u32 n; +}; -struct __prci_data; +struct ccu_div { + u32 enable; + struct ccu_div_internal div; + struct ccu_mux_internal mux; + struct ccu_common common; + unsigned int fixed_post_div; +}; -struct __prci_clock { - const char *name; - const char *parent_name; - const struct clk_ops *ops; +struct clk_fixed_factor { struct clk_hw hw; - struct __prci_wrpll_data *pwd; - struct __prci_data *pd; + unsigned int mult; + unsigned int div; }; -struct __prci_wrpll_data { - struct wrpll_cfg c; - void (*enable_bypass)(struct __prci_data *); - void (*disable_bypass)(struct __prci_data *); - u8 cfg0_offs; - u8 cfg1_offs; +struct ccu_mult { + u32 enable; + u32 lock; + struct ccu_frac_internal frac; + struct ccu_mult_internal mult; + struct ccu_mux_internal mux; + struct ccu_common common; }; -struct __prci_data { - void *va; - struct reset_simple_data reset; - struct clk_hw_onecell_data hw_clks; +struct ccu_mux_nb { + struct notifier_block clk_nb; + struct ccu_common *common; + struct ccu_mux_internal *cm; + u32 delay_us; + u8 bypass_index; + u8 original_index; }; struct serial_private; @@ -77350,9 +83567,9 @@ enum pci_board_num_t { 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, + pbn_moxa_2 = 113, + pbn_moxa_4 = 114, + pbn_moxa_8 = 115, }; struct f815xxa_data { @@ -77360,683 +83577,688 @@ struct f815xxa_data { int idx; }; -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; - u64 last_hw_sleep; - u64 total_hw_sleep; - u64 max_hw_sleep; - enum suspend_stat_step failed_steps[2]; -}; - -typedef int (*pm_callback_t)(struct device *); - -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_lpm_hints { - ATA_LPM_EMPTY = 1, - ATA_LPM_HIPM = 2, - ATA_LPM_WAKE_ONLY = 4, -}; - -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 virtio_blk_vq; -struct ahci_sg { - __le32 addr; - __le32 addr_hi; - __le32 reserved; - __le32 flags_size; +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 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; +struct virtio_blk_vq { + struct virtqueue *vq; spinlock_t lock; - u32 intr_mask; - bool fbs_supported; - bool fbs_enabled; - int fbs_last_dev; - struct ahci_em_priv em_priv[15]; - char *irq_desc; -}; - -struct ahci_cmd_hdr { - __le32 opts; - __le32 status; - __le32 tbl_addr; - __le32 tbl_addr_hi; - __le32 reserved[4]; -}; - -struct usb_dynid { - struct list_head node; - struct usb_device_id id; -}; - -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; + char name[16]; + long: 64; + long: 64; }; -struct ehci_iso_sched { - struct list_head td_list; - unsigned int span; - unsigned int first_packet; - struct ehci_iso_packet packet[0]; +struct virtio_blk_outhdr { + __virtio32 type; + __virtio32 ioprio; + __virtio64 sector; }; -enum { - SOCK_WAKE_IO = 0, - SOCK_WAKE_WAITD = 1, - SOCK_WAKE_SPACE = 2, - SOCK_WAKE_URG = 3, +struct virtblk_req { + struct virtio_blk_outhdr out_hdr; + union { + u8 status; + struct { + __virtio64 sector; + u8 status; + } zone_append; + } in_hdr; + size_t in_hdr_len; + struct sg_table sg_table; + struct scatterlist sg[0]; }; -struct net_test { - char name[32]; - int (*fn)(struct net_device *); +struct virtio_blk_discard_write_zeroes { + __le64 sector; + __le32 num_sectors; + __le32 flags; }; -struct netsfhdr { - __be32 version; - __be64 magic; - u8 id; -} __attribute__((packed)); +struct kszphy_type { + u32 led_mode_reg; + u16 interrupt_level_mask; + u16 cable_diag_reg; + unsigned long pair_mask; + u16 disable_dll_tx_bit; + u16 disable_dll_rx_bit; + u16 disable_dll_mask; + bool has_broadcast_disable; + bool has_nand_tree_disable; + bool has_rmii_ref_clk_sel; +}; -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 kszphy_hw_stat { + const char *string; + u8 reg; + u8 bits; }; -struct net_test_priv { - struct net_packet_attrs *packet; - struct packet_type pt; - struct completion comp; - int double_vlan; - int vlan_id; - int ok; +struct ksz9477_errata_write { + u8 dev_addr; + u8 reg_addr; + u16 val; }; 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, + ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC = 0, + ETHTOOL_A_CABLE_RESULT_CODE_OK = 1, + ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 2, + ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 3, + ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 4, }; -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 lan8814_shared_priv { + struct phy_device *phydev; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; + u8 ref; + struct mutex shared_lock; }; -struct pause_req_info { - struct ethnl_req_info base; - enum ethtool_mac_stats_src src; +struct kszphy_ptp_priv { + struct mii_timestamper mii_ts; + struct phy_device *phydev; + struct sk_buff_head tx_queue; + struct sk_buff_head rx_queue; + struct list_head rx_ts_list; + spinlock_t rx_ts_lock; + int hwts_tx_type; + enum hwtstamp_rx_filters rx_filter; + int layer; + int version; + struct ptp_clock *ptp_clock; + struct ptp_clock_info ptp_clock_info; + struct mutex ptp_lock; + struct ptp_pin_desc *pin_config; + s64 seconds; + spinlock_t seconds_lock; }; -struct pause_reply_data { - struct ethnl_reply_data base; - struct ethtool_pauseparam pauseparam; - struct ethtool_pause_stats pausestat; +struct kszphy_priv { + struct kszphy_ptp_priv ptp_priv; + const struct kszphy_type *type; + int led_mode; + u16 vct_ctrl1000; + bool rmii_ref_clk_sel; + bool rmii_ref_clk_sel_val; + u64 stats[2]; }; -struct tsq_tasklet { - struct tasklet_struct tasklet; - struct list_head head; +struct lan8814_ptp_rx_ts { + struct list_head list; + u32 seconds; + u32 nsec; + u16 seq_id; }; -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, +struct clock_identity { + u8 id[8]; }; -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, +struct port_identity { + struct clock_identity clock_identity; + __be16 port_number; }; -enum { - BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, - BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, +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 usb_dynid { + struct list_head node; + struct usb_device_id id; }; -enum { - TCP_NO_QUEUE = 0, - TCP_RECV_QUEUE = 1, - TCP_SEND_QUEUE = 2, - TCP_QUEUES_NR = 3, +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; }; -enum sk_pacing { - SK_PACING_NONE = 0, - SK_PACING_NEEDED = 1, - SK_PACING_FQ = 2, +struct urb_priv___2 { + struct ed *ed; + u16 length; + u16 td_cnt; + struct list_head pending; + struct td *td[0]; }; -struct mptcp_out_options {}; +typedef struct urb_priv___2 urb_priv_t; -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 debug_buffer { + ssize_t (*fill_func)(struct debug_buffer *); + struct ohci_hcd *ohci; + struct mutex mutex; + size_t count; + char *page; }; -struct rt0_hdr { - struct ipv6_rt_hdr rt_hdr; - __u32 reserved; - struct in6_addr addr[0]; +struct thermal_hwmon_device { + char type[20]; + struct device *device; + int count; + struct list_head tz_list; + struct list_head node; }; -struct ioam6_hdr { - __u8 opt_type; - __u8 opt_len; - char: 8; - __u8 type; +struct thermal_hwmon_attr { + struct device_attribute attr; + char name[16]; }; -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 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 ioam6_schema; +struct sdhci_host; -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 sdhci_ops { + u32 (*read_l)(struct sdhci_host *, int); + u16 (*read_w)(struct sdhci_host *, int); + u8 (*read_b)(struct sdhci_host *, int); + void (*write_l)(struct sdhci_host *, u32, int); + void (*write_w)(struct sdhci_host *, u16, int); + void (*write_b)(struct sdhci_host *, u8, int); + void (*set_clock)(struct sdhci_host *, unsigned int); + void (*set_power)(struct sdhci_host *, unsigned char, unsigned short); + u32 (*irq)(struct sdhci_host *, u32); + int (*set_dma_mask)(struct sdhci_host *); + int (*enable_dma)(struct sdhci_host *); + unsigned int (*get_max_clock)(struct sdhci_host *); + unsigned int (*get_min_clock)(struct sdhci_host *); + unsigned int (*get_timeout_clock)(struct sdhci_host *); + unsigned int (*get_max_timeout_count)(struct sdhci_host *); + void (*set_timeout)(struct sdhci_host *, struct mmc_command *); + void (*set_bus_width)(struct sdhci_host *, int); + void (*platform_send_init_74_clocks)(struct sdhci_host *, u8); + unsigned int (*get_ro)(struct sdhci_host *); + void (*reset)(struct sdhci_host *, u8); + int (*platform_execute_tuning)(struct sdhci_host *, u32); + void (*set_uhs_signaling)(struct sdhci_host *, unsigned int); + void (*hw_reset)(struct sdhci_host *); + void (*adma_workaround)(struct sdhci_host *, u32); + void (*card_event)(struct sdhci_host *); + void (*voltage_switch)(struct sdhci_host *); + void (*adma_write_desc)(struct sdhci_host *, void **, dma_addr_t, int, unsigned int); + void (*copy_to_bounce_buffer)(struct sdhci_host *, struct mmc_data *, unsigned int); + void (*request_done)(struct sdhci_host *, struct mmc_request *); + void (*dump_vendor_regs)(struct sdhci_host *); }; -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 sdhci_host { + const char *hw_name; + unsigned int quirks; + unsigned int quirks2; + int irq; + void *ioaddr; + phys_addr_t mapbase; + char *bounce_buffer; + dma_addr_t bounce_addr; + unsigned int bounce_buffer_size; + const struct sdhci_ops *ops; + struct mmc_host *mmc; + struct mmc_host_ops mmc_host_ops; + u64 dma_mask; + spinlock_t lock; + int flags; + unsigned int version; + unsigned int max_clk; + unsigned int timeout_clk; + u8 max_timeout_count; + unsigned int clk_mul; + unsigned int clock; + u8 pwr; + u8 drv_type; + bool reinit_uhs; + bool runtime_suspended; + bool bus_on; + bool preset_enabled; + bool pending_reset; + bool irq_wake_enabled; + bool v4_mode; + bool use_external_dma; + bool always_defer_done; + struct mmc_request *mrqs_done[2]; + struct mmc_command *cmd; + struct mmc_command *data_cmd; + struct mmc_command *deferred_cmd; + struct mmc_data *data; + unsigned int data_early: 1; + struct sg_mapping_iter sg_miter; + unsigned int blocks; + int sg_count; + int max_adma; + void *adma_table; + void *align_buffer; + size_t adma_table_sz; + size_t align_buffer_sz; + dma_addr_t adma_addr; + dma_addr_t align_addr; + unsigned int desc_sz; + unsigned int alloc_desc_sz; + struct workqueue_struct *complete_wq; + struct work_struct complete_work; + struct timer_list timer; + struct timer_list data_timer; + u32 caps; + u32 caps1; + bool read_caps; + bool sdhci_core_to_disable_vqmmc; + unsigned int ocr_avail_sdio; + unsigned int ocr_avail_sd; + unsigned int ocr_avail_mmc; + u32 ocr_mask; + unsigned int timing; + u32 thread_isr; + u32 ier; + bool cqe_on; + u32 cqe_ier; + u32 cqe_err_ier; + wait_queue_head_t buf_ready_int; + unsigned int tuning_done; + unsigned int tuning_count; + unsigned int tuning_mode; + unsigned int tuning_err; + int tuning_delay; + int tuning_loop_count; + u32 sdma_boundary; + u32 adma_table_cnt; + u64 data_timeout; + long: 64; + long: 64; + unsigned long private[0]; }; -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, +struct sdhci_pltfm_host { + struct clk *clk; + unsigned int clock; + u16 xfer_mode_shadow; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + unsigned long private[0]; }; -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, +struct sdhci_pltfm_data { + const struct sdhci_ops *ops; + unsigned int quirks; + unsigned int quirks2; }; -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; -}; +struct reserved_mem_ops; -struct fprop_local_single { - unsigned long events; - unsigned int period; - raw_spinlock_t lock; +struct reserved_mem { + const char *name; + unsigned long fdt_node; + unsigned long phandle; + const struct reserved_mem_ops *ops; + phys_addr_t base; + phys_addr_t size; + void *priv; }; -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 reserved_mem_ops { + int (*device_init)(struct reserved_mem *, struct device *); + void (*device_release)(struct reserved_mem *, struct device *); }; -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 rmem_assigned_device { + struct device *dev; + struct reserved_mem *rmem; + struct list_head list; }; -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]; +typedef int (*reservedmem_of_init_fn)(struct reserved_mem *); + +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_basic { + __u64 bytes; + __u32 packets; }; -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 gnet_stats_rate_est { + __u32 bps; + __u32 pps; }; -struct maple_pnode; +struct tso_t { + int next_frag_idx; + int size; + void *data; + u16 ip_id; + u8 tlen; + bool ipv6; + u32 tcp_seq; +}; -struct maple_metadata { - unsigned char end; - unsigned char gap; +struct percpu_free_defer { + struct callback_head rcu; + void __attribute__((btf_type_tag("percpu"))) *ptr; }; -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; - }; - }; +enum net_xmit_qdisc_t { + __NET_XMIT_STOLEN = 65536, + __NET_XMIT_BYPASS = 131072, }; -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; +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 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 linkmodes_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; + bool peer_empty; }; -struct maple_topiary { - struct maple_pnode *parent; - struct maple_enode *next; +struct link_mode_info { + int speed; + u8 lanes; + u8 duplex; }; -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; +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 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 coalesce_reply_data { + struct ethnl_reply_data base; + struct ethtool_coalesce coalesce; + struct kernel_ethtool_coalesce kernel_coalesce; + u32 supported_params; }; -struct ma_topiary; +struct nf_queue_entry; -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 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 ma_topiary { - struct maple_enode *head; - struct maple_enode *tail; - struct maple_tree *mtree; +struct nf_queue_entry { + struct list_head list; + struct sk_buff *skb; + unsigned int id; + unsigned int hook_index; + struct net_device *physin; + struct net_device *physout; + struct nf_hook_state state; + u16 size; }; -struct trace_event_data_offsets_ma_op {}; +struct ip_rt_info { + __be32 daddr; + __be32 saddr; + u_int8_t tos; + u_int32_t mark; +}; -struct trace_event_data_offsets_ma_read {}; +enum tcp_fastopen_client_fail { + TFO_STATUS_UNSPEC = 0, + TFO_COOKIE_UNAVAILABLE = 1, + TFO_DATA_NOT_ACKED = 2, + TFO_SYN_RETRANSMITTED = 3, +}; -struct trace_event_data_offsets_ma_write {}; +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 cpu { - int node_id; - int hotpluggable; - struct device dev; +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; }; -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 ipv6_params { + __s32 disable_ipv6; + __s32 autoconf; }; -struct tms { - __kernel_clock_t tms_utime; - __kernel_clock_t tms_stime; - __kernel_clock_t tms_cutime; - __kernel_clock_t tms_cstime; +struct ipv6_bpf_stub { + int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32); + struct sock * (*udp6_lib_lookup)(struct net *, const struct in6_addr *, __be16, const struct in6_addr *, __be16, int, int, struct udp_table *, struct sk_buff *); + int (*ipv6_setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*ipv6_getsockopt)(struct sock *, int, int, sockptr_t, sockptr_t); + int (*ipv6_dev_get_saddr)(struct net *, const struct net_device *, const struct in6_addr *, unsigned int, struct in6_addr *); }; -struct compat_tms { - compat_clock_t tms_utime; - compat_clock_t tms_stime; - compat_clock_t tms_cutime; - compat_clock_t tms_cstime; +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 compat_rlimit { - compat_ulong_t rlim_cur; - compat_ulong_t rlim_max; +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 rlimit64 { - __u64 rlim_cur; - __u64 rlim_max; +struct hop_jumbo_hdr { + u8 nexthdr; + u8 hdrlen; + u8 tlv_type; + u8 tlv_len; + __be32 jumbo_payload_len; }; -struct getcpu_cache { - unsigned long blob[16]; +struct rpc_sysfs_xprt_switch { + struct kobject kobject; + struct net *net; + struct rpc_xprt_switch *xprt_switch; + struct rpc_xprt *xprt; }; -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 rpc_sysfs_xprt { + struct kobject kobject; + struct rpc_xprt *xprt; + struct rpc_xprt_switch *xprt_switch; }; -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; +struct xprt_addr { + const char *addr; + struct callback_head rcu; }; -typedef int (*proc_visitor)(struct task_struct *, void *); +struct xdp_umem_reg { + __u64 addr; + __u64 len; + __u32 chunk_size; + __u32 headroom; + __u32 flags; +}; -struct irq_devres { - unsigned int irq; - void *dev_id; +enum { + HP_THREAD_NONE = 0, + HP_THREAD_ACTIVE = 1, + HP_THREAD_PARKED = 2, }; -struct irq_desc_devres { - unsigned int from; - unsigned int cnt; +struct smpboot_thread_data { + unsigned int cpu; + unsigned int status; + struct smp_hotplug_thread *ht; }; -struct irq_generic_chip_devres { - struct irq_chip_generic *gc; - u32 msk; - unsigned int clr; - unsigned int set; +struct dma_sgt_handle { + struct sg_table sgt; + struct page **pages; }; -enum kprobe_slot_state { - SLOT_CLEAN = 0, - SLOT_DIRTY = 1, - SLOT_USED = 2, +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 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 dma_devres { + size_t size; + void *vaddr; + dma_addr_t dma_handle; + unsigned long attrs; }; -struct prev_kprobe { - struct kprobe *kp; - unsigned int status; +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 kprobe_ctlblk { - unsigned int kprobe_status; - unsigned long saved_status; - struct prev_kprobe prev_kprobe; +struct idmap_key { + bool map_up; + u32 id; + u32 count; }; -struct kprobe_blacklist_entry { - struct list_head list; - unsigned long start_addr; - unsigned long end_addr; +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 kretprobe_instance; @@ -78053,606 +84275,547 @@ struct kretprobe { struct rethook *rh; }; +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]; }; -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 kretprobe_trace_entry_head { 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]; + unsigned long func; + unsigned long ret_ip; }; -struct trace_event_raw_rpm_return_int { +struct kprobe_trace_entry_head { 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; }; -struct bpf_cgroup_storage_map { - struct bpf_map map; - spinlock_t lock; - struct rb_root root; - struct list_head list; - long: 64; - long: 64; +struct sym_count_ctx { + unsigned int count; + const char *name; }; -struct memblock { - bool bottom_up; - phys_addr_t current_limit; - struct memblock_type memory; - struct memblock_type reserved; +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 char_device_struct { - struct char_device_struct *next; - unsigned int major; - unsigned int baseminor; - int minorct; - char name[64]; - struct cdev *cdev; -}; +struct uprobe_consumer; -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 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; }; -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]; +enum uprobe_filter_ctx { + UPROBE_FILTER_REGISTER = 0, + UPROBE_FILTER_UNREGISTER = 1, + UPROBE_FILTER_MMAP = 2, }; -typedef int __kernel_daddr_t; +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 ustat { - __kernel_daddr_t f_tfree; - unsigned long f_tinode; - char f_fname[6]; - char f_fpack[6]; +struct delayed_uprobe { + struct list_head list; + struct uprobe *uprobe; + struct mm_struct *mm; }; -typedef __kernel_fsid_t compat_fsid_t; +struct __uprobe_key { + struct inode *inode; + loff_t offset; +}; -struct compat_statfs { - compat_int_t f_type; - compat_int_t f_bsize; - compat_int_t f_blocks; - compat_int_t f_bfree; - compat_int_t f_bavail; - compat_int_t f_files; - compat_int_t f_ffree; - compat_fsid_t f_fsid; - compat_int_t f_namelen; - compat_int_t f_frsize; - compat_int_t f_flags; - compat_int_t f_spare[4]; +struct map_info___2 { + struct map_info___2 *next; + struct mm_struct *mm; + unsigned long vaddr; }; -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]; +struct memcg_vmstats { + long state[48]; + unsigned long events[15]; + long state_local[48]; + unsigned long events_local[15]; + long state_pending[48]; + unsigned long events_pending[15]; }; -typedef s32 compat_daddr_t; +struct mem_cgroup_tree_per_node; -typedef u32 compat_ino_t; +struct mem_cgroup_tree { + struct mem_cgroup_tree_per_node *rb_tree_per_node[1]; +}; -struct compat_ustat { - compat_daddr_t f_tfree; - compat_ino_t f_tinode; - char f_fname[6]; - char f_fpack[6]; +struct mem_cgroup_tree_per_node { + struct rb_root rb_root; + struct rb_node *rb_rightmost; + spinlock_t lock; }; -struct posix_acl_xattr_header { - __le32 a_version; +struct memory_stat { + const char *name; + unsigned int idx; }; -struct posix_acl_xattr_entry { - __le16 e_tag; - __le16 e_perm; - __le32 e_id; +struct move_charge_struct { + spinlock_t lock; + struct mm_struct *mm; + struct mem_cgroup *from; + struct mem_cgroup *to; + unsigned long flags; + unsigned long precharge; + unsigned long moved_charge; + unsigned long moved_swap; + struct task_struct *moving_task; + wait_queue_head_t waitq; }; -enum criteria { - CR_POWER2_ALIGNED = 0, - CR_GOAL_LEN_FAST = 1, - CR_BEST_AVAIL_LEN = 2, - CR_GOAL_LEN_SLOW = 3, - CR_ANY_FREE = 4, - EXT4_MB_NUM_CRS = 5, +struct memcg_stock_pcp { + local_lock_t stock_lock; + struct mem_cgroup *cached; + unsigned int nr_pages; + struct obj_cgroup *cached_objcg; + struct pglist_data *cached_pgdat; + unsigned int nr_bytes; + int nr_slab_reclaimable_b; + int nr_slab_unreclaimable_b; + struct work_struct work; + unsigned long flags; }; enum { - MB_INODE_PA = 0, - MB_GROUP_PA = 1, + CSS_TASK_ITER_PROCS = 1, + CSS_TASK_ITER_THREADED = 2, + CSS_TASK_ITER_SKIPPED = 65536, }; -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; +enum mem_cgroup_events_target { + MEM_CGROUP_TARGET_THRESH = 0, + MEM_CGROUP_TARGET_SOFTLIMIT = 1, + MEM_CGROUP_NTARGETS = 2, }; -struct ext4_prealloc_space { - union { - struct rb_node inode_node; - struct list_head lg_list; - } pa_node; - struct list_head pa_group_list; - union { - struct list_head pa_tmp_list; - struct callback_head pa_rcu; - } u; - spinlock_t pa_lock; - atomic_t pa_count; - unsigned int pa_deleted; - ext4_fsblk_t pa_pstart; - ext4_lblk_t pa_lstart; - ext4_grpblk_t pa_len; - ext4_grpblk_t pa_free; - unsigned short pa_type; - union { - rwlock_t *inode_lock; - spinlock_t *lg_lock; - } pa_node_lock; - struct inode *pa_inode; +enum oom_constraint { + CONSTRAINT_NONE = 0, + CONSTRAINT_CPUSET = 1, + CONSTRAINT_MEMORY_POLICY = 2, + CONSTRAINT_MEMCG = 3, }; -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; +enum mc_target_type { + MC_TARGET_NONE = 0, + MC_TARGET_PAGE = 1, + MC_TARGET_SWAP = 2, + MC_TARGET_DEVICE = 3, }; -struct sg { - struct ext4_group_info info; - ext4_grpblk_t counters[18]; +enum res_type { + _MEM = 0, + _MEMSWAP = 1, + _KMEM = 2, + _TCP = 3, }; -struct ext4_free_extent { - ext4_lblk_t fe_logical; - ext4_grpblk_t fe_start; - ext4_group_t fe_group; - ext4_grpblk_t fe_len; +enum { + RES_USAGE = 0, + RES_LIMIT = 1, + RES_MAX_USAGE = 2, + RES_FAILCNT = 3, + RES_SOFT_LIMIT = 4, }; -struct ext4_allocation_context { - struct inode *ac_inode; - struct super_block *ac_sb; - struct ext4_free_extent ac_o_ex; - struct ext4_free_extent ac_g_ex; - struct ext4_free_extent ac_b_ex; - struct ext4_free_extent ac_f_ex; - ext4_grpblk_t ac_orig_goal_len; - __u32 ac_groups_considered; - __u32 ac_flags; - __u16 ac_groups_scanned; - __u16 ac_groups_linear_remaining; - __u16 ac_found; - __u16 ac_cX_found[5]; - __u16 ac_tail; - __u16 ac_buddy; - __u8 ac_status; - __u8 ac_criteria; - __u8 ac_2order; - __u8 ac_op; - struct page *ac_bitmap_page; - struct page *ac_buddy_page; - struct ext4_prealloc_space *ac_pa; - struct ext4_locality_group *ac_lg; +struct oom_wait_info { + struct mem_cgroup *memcg; + wait_queue_entry_t wait; }; -typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); - -enum nfs_ftype4 { - NF4BAD = 0, - NF4REG = 1, - NF4DIR = 2, - NF4BLK = 3, - NF4CHR = 4, - NF4LNK = 5, - NF4SOCK = 6, - NF4FIFO = 7, - NF4ATTRDIR = 8, - NF4NAMEDATTR = 9, +struct mem_cgroup_eventfd_list { + struct list_head list; + struct eventfd_ctx *eventfd; }; -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, +struct mem_cgroup_event { + struct mem_cgroup *memcg; + struct eventfd_ctx *eventfd; + struct list_head list; + int (*register_event)(struct mem_cgroup *, struct eventfd_ctx *, const char *); + void (*unregister_event)(struct mem_cgroup *, struct eventfd_ctx *); + poll_table pt; + wait_queue_head_t *wqh; + wait_queue_entry_t wait; + struct work_struct remove; }; -enum createmode4 { - NFS4_CREATE_UNCHECKED = 0, - NFS4_CREATE_GUARDED = 1, - NFS4_CREATE_EXCLUSIVE = 2, - NFS4_CREATE_EXCLUSIVE4_1 = 3, +struct uncharge_gather { + struct mem_cgroup *memcg; + unsigned long nr_memory; + unsigned long pgpgout; + unsigned long nr_kmem; + int nid; }; -enum opentype4 { - NFS4_OPEN_NOCREATE = 0, - NFS4_OPEN_CREATE = 1, +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; }; -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, +union mc_target { + struct page *page; + swp_entry_t ent; }; -enum limit_by4 { - NFS4_LIMIT_SIZE = 1, - NFS4_LIMIT_BLOCKS = 2, +struct eventfd_ctx { + struct kref kref; + wait_queue_head_t wqh; + __u64 count; + unsigned int flags; + int id; }; -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, -}; +typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); -enum lock_type4 { - NFS4_UNLOCK_LT = 0, - NFS4_READ_LT = 1, - NFS4_WRITE_LT = 2, - NFS4_READW_LT = 3, - NFS4_WRITEW_LT = 4, +struct fd_data { + fmode_t mode; + unsigned int fd; }; -enum nfs4_acl_type { - NFS4ACL_NONE = 0, - NFS4ACL_ACL = 1, - NFS4ACL_DACL = 2, - NFS4ACL_SACL = 3, -}; +typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int); -enum state_protect_how4 { - SP4_NONE = 0, - SP4_MACH_CRED = 1, - SP4_SSV = 2, -}; +typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *); -enum data_content4 { - NFS4_CONTENT_DATA = 0, - NFS4_CONTENT_HOLE = 1, +typedef void (*btf_trace_jbd2_commit_locking)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *); + +typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, tid_t, unsigned int, unsigned int, int); + +typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int); + +typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int); + +typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int); + +typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); + +typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); + +typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t); + +typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, unsigned long, tid_t); + +struct jbd2_journal_block_tail { + __be32 t_checksum; }; -struct compound_hdr { - int32_t status; - uint32_t nops; - __be32 *nops_p; - uint32_t taglen; - char *tag; - uint32_t replen; - u32 minorversion; +struct trace_event_raw_jbd2_checkpoint { + struct trace_entry ent; + dev_t dev; + int result; + char __data[0]; }; -struct nfs_open_confirmargs { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - nfs4_stateid *stateid; - struct nfs_seqid *seqid; +struct trace_event_raw_jbd2_commit { + struct trace_entry ent; + dev_t dev; + char sync_commit; + tid_t transaction; + char __data[0]; }; -struct nfs_open_confirmres { - struct nfs4_sequence_res seq_res; - nfs4_stateid stateid; - struct nfs_seqid *seqid; +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 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; +struct trace_event_raw_jbd2_submit_inode_data { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; }; -typedef u64 clientid4; +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 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 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 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 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 nfs_lock_res { - struct nfs4_sequence_res seq_res; - nfs4_stateid stateid; - struct nfs_seqid *lock_seqid; - struct nfs_seqid *open_seqid; +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 nfs_lockt_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - struct file_lock *fl; - struct nfs_lowner lock_owner; +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 nfs_lockt_res { - struct nfs4_sequence_res seq_res; - struct file_lock *denied; +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 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 trace_event_raw_jbd2_write_superblock { + struct trace_entry ent; + dev_t dev; + blk_opf_t write_flags; + char __data[0]; }; -struct nfs_locku_res { - struct nfs4_sequence_res seq_res; - nfs4_stateid stateid; - struct nfs_seqid *seqid; +struct trace_event_raw_jbd2_lock_buffer_stall { + struct trace_entry ent; + dev_t dev; + unsigned long stall_ms; + char __data[0]; }; -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 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 nfs4_readlink { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - unsigned int pgbase; - unsigned int pglen; - struct page **pages; +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 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 trace_event_raw_jbd2_shrink_checkpoint_list { + struct trace_entry ent; + dev_t dev; + tid_t first_tid; + tid_t tid; + tid_t last_tid; + unsigned long nr_freed; + tid_t next_tid; + char __data[0]; }; -struct nfs4_readdir_res { - struct nfs4_sequence_res seq_res; - nfs4_verifier verifier; - unsigned int pgbase; -}; +struct trace_event_data_offsets_jbd2_checkpoint {}; -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 trace_event_data_offsets_jbd2_commit {}; -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 trace_event_data_offsets_jbd2_end_commit {}; -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 trace_event_data_offsets_jbd2_submit_inode_data {}; -struct nfs4_secinfo_res { - struct nfs4_sequence_res seq_res; - struct nfs4_secinfo_flavors *flavors; -}; +struct trace_event_data_offsets_jbd2_handle_start_class {}; -struct nfs41_exchange_id_args { - struct nfs_client *client; - nfs4_verifier verifier; - u32 flags; - struct nfs41_state_protection state_protect; -}; +struct trace_event_data_offsets_jbd2_handle_extend {}; -struct nfs41_create_session_args { - struct nfs_client *client; - u64 clientid; - uint32_t seqid; - uint32_t flags; - uint32_t cb_program; - struct nfs4_channel_attrs fc_attrs; - struct nfs4_channel_attrs bc_attrs; -}; +struct trace_event_data_offsets_jbd2_handle_stats {}; -struct nfs41_create_session_res { - struct nfs4_sessionid sessionid; - uint32_t seqid; - uint32_t flags; - struct nfs4_channel_attrs fc_attrs; - struct nfs4_channel_attrs bc_attrs; -}; +struct trace_event_data_offsets_jbd2_run_stats {}; -struct nfs41_reclaim_complete_args { - struct nfs4_sequence_args seq_args; - unsigned char one_fs: 1; -}; +struct trace_event_data_offsets_jbd2_checkpoint_stats {}; -struct nfs4_getdeviceinfo_args { - struct nfs4_sequence_args seq_args; - struct pnfs_device *pdev; - __u32 notify_types; -}; +struct trace_event_data_offsets_jbd2_update_log_tail {}; -struct nfs4_getdeviceinfo_res { - struct nfs4_sequence_res seq_res; - struct pnfs_device *pdev; - __u32 notification; -}; +struct trace_event_data_offsets_jbd2_write_superblock {}; -struct nfs41_secinfo_no_name_args { - struct nfs4_sequence_args seq_args; - int style; -}; +struct trace_event_data_offsets_jbd2_lock_buffer_stall {}; -struct nfs41_test_stateid_args { - struct nfs4_sequence_args seq_args; - nfs4_stateid *stateid; -}; +struct trace_event_data_offsets_jbd2_journal_shrink {}; -struct nfs41_test_stateid_res { - struct nfs4_sequence_res seq_res; - unsigned int status; -}; +struct trace_event_data_offsets_jbd2_shrink_scan_exit {}; -struct nfs41_free_stateid_args { - struct nfs4_sequence_args seq_args; - nfs4_stateid stateid; -}; +struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {}; -struct nfs41_free_stateid_res { - struct nfs4_sequence_res seq_res; - unsigned int status; +struct jbd2_stats_proc_session { + journal_t *journal; + struct transaction_stats_s *stats; + int start; + int max; }; -struct nfs41_bind_conn_to_session_args { - struct nfs_client *client; - struct nfs4_sessionid sessionid; - u32 dir; - bool use_conn_in_rdma_mode; - int retries; +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, }; -struct nfs41_bind_conn_to_session_res { - struct nfs4_sessionid sessionid; - u32 dir; - bool use_conn_in_rdma_mode; +enum data_content4 { + NFS4_CONTENT_DATA = 0, + NFS4_CONTENT_HOLE = 1, }; struct nfs42_falloc_res { @@ -78662,12 +84825,6 @@ struct nfs42_falloc_res { const struct nfs_server *falloc_server; }; -struct nfs42_offload_status_res { - struct nfs4_sequence_res osr_seq_res; - uint64_t osr_count; - int osr_status; -}; - struct nfs42_device_error { struct nfs4_deviceid dev_id; int status; @@ -78681,6 +84838,41 @@ struct nfs42_layout_error { struct nfs42_device_error errors[1]; }; +struct nfs42_layouterror_args { + struct nfs4_sequence_args seq_args; + struct inode *inode; + unsigned int num_errors; + struct nfs42_layout_error errors[5]; +}; + +struct nfs42_layouterror_res { + struct nfs4_sequence_res seq_res; + unsigned int num_errors; + int rpc_status; +}; + +struct nfs42_layouterror_data { + struct nfs42_layouterror_args args; + struct nfs42_layouterror_res res; + struct inode *inode; + struct pnfs_layout_segment *lseg; +}; + +struct nfs42_clone_res { + struct nfs4_sequence_res seq_res; + unsigned int rpc_status; + struct nfs_fattr *dst_fattr; + const struct nfs_server *server; +}; + +struct nfs42_getxattrargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + const char *xattr_name; + size_t xattr_len; + struct page **xattr_pages; +}; + struct nfs42_getxattrres { struct nfs4_sequence_res seq_res; size_t xattr_len; @@ -78696,6 +84888,13 @@ struct nfs42_setxattrargs { struct page **xattr_pages; }; +struct nfs42_setxattrres { + struct nfs4_sequence_res seq_res; + struct nfs4_change_info cinfo; + struct nfs_fattr *fattr; + const struct nfs_server *server; +}; + struct nfs42_listxattrsargs { struct nfs4_sequence_args seq_args; struct nfs_fh *fh; @@ -78714,687 +84913,826 @@ struct nfs42_listxattrsres { size_t copied; }; -struct read_plus_segment { - enum data_content4 type; - uint64_t offset; - union { - struct { - uint64_t length; - } hole; - struct { - uint32_t length; - unsigned int from; - } data; - }; +struct nfs42_removexattrargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + const char *xattr_name; }; -struct stateowner_id { - __u64 create_time; - __u32 uniquifier; +struct nfs42_removexattrres { + struct nfs4_sequence_res seq_res; + struct nfs4_change_info cinfo; }; -struct nfs4_layoutget_args; +struct nfs42_offload_status_res { + struct nfs4_sequence_res osr_seq_res; + uint64_t osr_count; + int osr_status; +}; -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; +struct nfs42_offloadcancel_data { + struct nfs_server *seq_server; + struct nfs42_offload_status_args args; + struct nfs42_offload_status_res res; +}; + +enum { + TRACEFS_EVENT_INODE = 2, + TRACEFS_EVENT_TOP_INODE = 4, +}; + +enum { + EVENTFS_SAVE_MODE = 65536, + EVENTFS_SAVE_UID = 131072, + EVENTFS_SAVE_GID = 262144, +}; + +struct eventfs_attr { + int mode; + kuid_t uid; + kgid_t gid; +}; + +struct eventfs_inode { + struct list_head list; + const struct eventfs_entry *entries; + const char *name; + struct list_head children; + struct dentry *dentry; + struct dentry *d_parent; + struct dentry **d_children; + struct eventfs_attr *entry_attrs; + struct eventfs_attr attr; + void *data; 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 llist_node llist; + struct callback_head rcu; + }; + unsigned int is_freed: 1; + unsigned int is_events: 1; + unsigned int nr_entries: 30; }; -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 tracefs_inode { + unsigned long flags; + void *private; + struct inode vfs_inode; }; -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 dentry_list { + void *cursor; + struct dentry **dentries; }; -struct nfs_setattrres { - struct nfs4_sequence_res seq_res; - struct nfs_fattr *fattr; - const struct nfs_server *server; +struct skcipher_alg_common { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + struct crypto_alg base; }; -struct nfs4_fsinfo_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +struct crypto_lskcipher; + +struct lskcipher_alg { + int (*setkey)(struct crypto_lskcipher *, const u8 *, unsigned int); + int (*encrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, bool); + int (*decrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, bool); + int (*init)(struct crypto_lskcipher *); + void (*exit)(struct crypto_lskcipher *); + struct skcipher_alg_common co; }; -struct nfs4_fsinfo_res { - struct nfs4_sequence_res seq_res; - struct nfs_fsinfo *fsinfo; +struct crypto_lskcipher { + struct crypto_tfm base; }; -struct nfs4_accessargs { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; - u32 access; +struct lskcipher_instance { + void (*free)(struct lskcipher_instance *); + union { + struct { + char head[56]; + struct crypto_instance base; + } s; + struct lskcipher_alg alg; + }; }; -struct nfs4_accessres { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; - u32 supported; - u32 access; +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 nfs4_getattr_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +struct crypto_lskcipher_spawn { + struct crypto_spawn base; }; -struct nfs4_getattr_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; +struct pr_preempt { + __u64 old_key; + __u64 new_key; + __u32 type; + __u32 flags; }; -struct nfs4_lookup_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *dir_fh; - const struct qstr *name; - const u32 *bitmask; +struct pr_clear { + __u64 key; + __u32 flags; + __u32 __pad; }; -struct nfs4_lookup_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; - struct nfs_fh *fh; +struct pr_reservation { + __u64 key; + __u32 type; + __u32 flags; }; -struct nfs4_lookup_root_arg { - struct nfs4_sequence_args seq_args; - const u32 *bitmask; +struct pr_registration { + __u64 old_key; + __u64 new_key; + __u32 flags; + __u32 __pad; }; -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 compat_hd_geometry { + unsigned char heads; + unsigned char sectors; + unsigned short cylinders; + u32 start; }; -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 compat_blkpg_ioctl_arg { + compat_int_t op; + compat_int_t flags; + compat_int_t datalen; + compat_caddr_t data; }; -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 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 nfs4_pathconf_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; -}; +typedef int16_t S16; -struct nfs4_pathconf_res { - struct nfs4_sequence_res seq_res; - struct nfs_pathconf *pathconf; -}; +typedef struct { + FSE_CTable CTable[59]; + U32 scratchBuffer[41]; + unsigned int count[13]; + S16 norm[13]; +} HUF_CompressWeightsWksp; -struct nfs4_statfs_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; -}; +typedef struct { + HUF_CompressWeightsWksp wksp; + BYTE bitsToWeight[13]; + BYTE huffWeight[255]; +} HUF_WriteCTableWksp; -struct nfs4_statfs_res { - struct nfs4_sequence_res seq_res; - struct nfs_fsstat *fsstat; +struct nodeElt_s { + U32 count; + U16 parent; + BYTE byte; + BYTE nbBits; }; -struct nfs4_readlink_res { - struct nfs4_sequence_res seq_res; -}; +typedef struct nodeElt_s nodeElt; -struct nfs4_server_caps_arg { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fhandle; - const u32 *bitmask; -}; +typedef nodeElt huffNodeTable[512]; -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; +typedef struct { + U16 base; + U16 curr; +} rankPos; + +typedef struct { + huffNodeTable huffNodeTbl; + rankPos rankPosition[192]; +} HUF_buildCTable_wksp_tables; + +typedef struct { + unsigned int count[256]; + HUF_CElt CTable[257]; + union { + HUF_buildCTable_wksp_tables buildCTable_wksp; + HUF_WriteCTableWksp writeCTable_wksp; + U32 hist_wksp[1024]; + } wksps; +} HUF_compress_tables_t; + +typedef struct { + size_t bitContainer[2]; + size_t bitPos[2]; + BYTE *startPtr; + BYTE *ptr; + BYTE *endPtr; +} HUF_CStream_t; + +typedef enum { + HUF_singleStream = 0, + HUF_fourStreams = 1, +} HUF_nbStreams_e; + +typedef unsigned int FSE_DTable; + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; + +typedef struct { + unsigned short newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; + +typedef struct { + short ncount[256]; + FSE_DTable dtable[0]; +} 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 cpu_rmap { + struct kref refcount; + u16 size; + void **obj; + struct { + u16 index; + u16 dist; + } near[0]; }; -struct nfs_setaclres { - struct nfs4_sequence_res seq_res; +struct irq_glue { + struct irq_affinity_notify notify; + struct cpu_rmap *rmap; + u16 index; }; -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; +enum acpi_subtable_type { + ACPI_SUBTABLE_COMMON = 0, + ACPI_SUBTABLE_HMAT = 1, + ACPI_SUBTABLE_PRMT = 2, + ACPI_SUBTABLE_CEDT = 3, }; -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 acpi_subtable_entry { + union acpi_subtable_headers *hdr; + enum acpi_subtable_type type; }; -struct nfs_release_lockowner_args { - struct nfs4_sequence_args seq_args; - struct nfs_lowner lock_owner; +enum { + RADIX_TREE_ITER_TAG_MASK = 15, + RADIX_TREE_ITER_TAGGED = 16, + RADIX_TREE_ITER_CONTIG = 32, }; -struct nfs4_secinfo_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *dir_fh; - const struct qstr *name; +struct pinctrl_maps { + struct list_head node; + const struct pinctrl_map *maps; + unsigned int num_maps; }; -struct nfs4_fsid_present_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - clientid4 clientid; - unsigned char renew: 1; +struct pinctrl_setting_mux { + unsigned int group; + unsigned int func; }; -struct nfs4_fsid_present_res { - struct nfs4_sequence_res seq_res; - struct nfs_fh *fh; - unsigned char renew: 1; +struct pinctrl_setting_configs { + unsigned int group_or_pin; + unsigned long *configs; + unsigned int num_configs; }; -struct nfs4_get_lease_time_args { - struct nfs4_sequence_args la_seq_args; +struct pinctrl_setting { + struct list_head node; + enum pinctrl_map_type type; + struct pinctrl_dev *pctldev; + const char *dev_name; + union { + struct pinctrl_setting_mux mux; + struct pinctrl_setting_configs configs; + } data; }; -struct nfs4_get_lease_time_res { - struct nfs4_sequence_res lr_seq_res; - struct nfs_fsinfo *lr_fsinfo; +struct pin_desc { + struct pinctrl_dev *pctldev; + const char *name; + bool dynamic_name; + void *drv_data; + unsigned int mux_usecount; + const char *mux_owner; + const struct pinctrl_setting_mux *mux_setting; + const char *gpio_owner; }; -struct nfs41_reclaim_complete_res { - struct nfs4_sequence_res seq_res; +struct radix_tree_iter { + unsigned long index; + unsigned long next_index; + unsigned long tags; + struct xa_node *node; }; -struct nfs42_layoutstat_res { - struct nfs4_sequence_res seq_res; - int num_dev; - int rpc_status; +struct pctldev; + +enum acpi_attr_enum { + ACPI_ATTR_LABEL_SHOW = 0, + ACPI_ATTR_INDEX_SHOW = 1, }; -struct nfs42_clone_res { - struct nfs4_sequence_res seq_res; - unsigned int rpc_status; - struct nfs_fattr *dst_fattr; - const struct nfs_server *server; +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 nfs4_lookupp_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +enum acpi_rhct_node_type { + ACPI_RHCT_NODE_TYPE_ISA_STRING = 0, + ACPI_RHCT_NODE_TYPE_CMO = 1, + ACPI_RHCT_NODE_TYPE_MMU = 2, + ACPI_RHCT_NODE_TYPE_RESERVED = 3, + ACPI_RHCT_NODE_TYPE_HART_INFO = 65535, }; -struct nfs4_lookupp_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; - struct nfs_fh *fh; +struct acpi_table_rhct { + struct acpi_table_header header; + u32 flags; + u64 time_base_freq; + u32 node_count; + u32 node_offset; }; -struct nfs42_layouterror_args { - struct nfs4_sequence_args seq_args; - struct inode *inode; - unsigned int num_errors; - struct nfs42_layout_error errors[5]; +struct acpi_rhct_node_header { + u16 type; + u16 length; + u16 revision; }; -struct nfs42_layouterror_res { - struct nfs4_sequence_res seq_res; - unsigned int num_errors; - int rpc_status; +struct acpi_rhct_hart_info { + u16 num_offsets; + u32 uid; +} __attribute__((packed)); + +struct acpi_rhct_isa_string { + u16 isa_length; + char isa[0]; }; -struct nfs42_getxattrargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - const char *xattr_name; - size_t xattr_len; - struct page **xattr_pages; +struct acpi_rhct_cmo_node { + u8 reserved; + u8 cbom_size; + u8 cbop_size; + u8 cboz_size; }; -struct nfs42_setxattrres { - struct nfs4_sequence_res seq_res; - struct nfs4_change_info cinfo; - struct nfs_fattr *fattr; - const struct nfs_server *server; +struct clk_gpio { + struct clk_hw hw; + struct gpio_desc *gpiod; }; -struct nfs42_removexattrargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - const char *xattr_name; +struct sunxi_sram_func; + +struct sunxi_sram_data { + char *name; + u8 reg; + u8 offset; + u8 width; + struct sunxi_sram_func *func; + struct list_head list; }; -struct nfs42_removexattrres { - struct nfs4_sequence_res seq_res; - struct nfs4_change_info cinfo; +struct sunxi_sram_desc { + struct sunxi_sram_data data; + bool claimed; }; -struct autofs_packet_missing { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - int len; - char name[256]; +struct sunxi_sram_func { + char *func; + u8 val; + u32 reg_val; }; -struct autofs_packet_expire_multi { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - int len; - char name[256]; +struct sunxi_sramc_variant { + int num_emac_clocks; + bool has_ldo_ctrl; }; -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 reset_control { + struct reset_controller_dev *rcdev; + struct list_head list; + unsigned int id; + struct kref refcnt; + bool acquired; + bool shared; + bool array; + atomic_t deassert_count; + atomic_t triggered_count; }; -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]; +struct reset_control_array { + struct reset_control base; + unsigned int num_rstcs; + struct reset_control *rstc[0]; }; -typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; +struct reset_control_lookup { + struct list_head list; + const char *provider; + unsigned int index; + const char *dev_id; + const char *con_id; +}; -typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; +struct reset_control_bulk_devres { + int num_rstcs; + struct reset_control_bulk_data *rstcs; +}; -typedef struct autofs_v5_packet autofs_packet_missing_direct_t; +struct vcs_poll_data { + struct notifier_block notifier; + unsigned int cons_num; + int event; + wait_queue_head_t waitq; + struct fasync_struct *fasync; +}; -typedef struct autofs_v5_packet autofs_packet_expire_direct_t; +struct pericom8250 { + void *virt; + unsigned int nr; + int line[0]; +}; -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 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 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 iommu_group_attribute { + struct attribute attr; + ssize_t (*show)(struct iommu_group *, char *); + ssize_t (*store)(struct iommu_group *, const char *, size_t); }; -struct alg_sock { - struct sock sk; - struct sock *parent; - atomic_t refcnt; - atomic_t nokey_refcnt; - const struct af_alg_type *type; - void *private; +enum iommu_fault_type { + IOMMU_FAULT_DMA_UNRECOV = 1, + IOMMU_FAULT_PAGE_REQ = 2, }; -struct af_alg_sgl { - struct sg_table sgt; - struct scatterlist sgl[17]; - bool need_unpin; +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 hash_ctx { - struct af_alg_sgl sgl; - u8 *result; - struct crypto_wait wait; - unsigned int len; - bool more; - long: 64; - struct ahash_request req; +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, }; enum { - IOU_PBUF_RING_MMAP = 1, + IOMMU_SET_DOMAIN_MUST_SUCCEED = 1, }; -struct io_provide_buf { - struct file *file; - __u64 addr; - __u32 len; - __u32 bgid; - __u16 nbufs; - __u16 bid; +struct group_device { + struct list_head list; + struct device *dev; + char *name; }; -struct io_uring_buf_reg { - __u64 ring_addr; - __u32 ring_entries; - __u16 bgid; - __u16 flags; - __u64 resv[3]; +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; }; -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]; +struct fsl_mc_io; -typedef struct { - BYTE symbol; -} sortedSymbol_t; +struct fsl_mc_device_irq; -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; +struct fsl_mc_resource; -typedef struct { - BYTE maxTableLog; - BYTE tableType; - BYTE tableLog; - BYTE reserved; -} DTableDesc; +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 font_data { - unsigned int extra[4]; - const unsigned char data[0]; +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; + }; }; -enum pci_mmap_api { - PCI_MMAP_SYSFS = 0, - PCI_MMAP_PROCFS = 1, +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; }; -enum pci_mmap_state { - pci_mmap_io = 0, - pci_mmap_mem = 1, +struct fsl_mc_device_irq { + unsigned int virq; + struct fsl_mc_device *mc_dev; + u8 dev_irq_index; + struct fsl_mc_resource resource; }; -struct fb_modelist { +struct iommu_resv_region { struct list_head list; - struct fb_videomode mode; + phys_addr_t start; + size_t length; + int prot; + enum iommu_resv_type type; + void (*free)(struct device *, struct iommu_resv_region *); }; -enum { - ACPI_GENL_CMD_UNSPEC = 0, - ACPI_GENL_CMD_EVENT = 1, - __ACPI_GENL_CMD_MAX = 2, +struct group_for_pci_data { + struct pci_dev *pdev; + struct iommu_group *group; }; -enum { - ACPI_GENL_ATTR_UNSPEC = 0, - ACPI_GENL_ATTR_EVENT = 1, - __ACPI_GENL_ATTR_MAX = 2, -}; +typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); -struct acpi_genl_event { - acpi_device_class device_class; - char bus_id[15]; - u32 type; - u32 data; +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 acpi_table_cdat { - u32 length; - u8 revision; - u8 checksum; - u8 reserved[6]; - u32 sequence; +struct perf_pmu_events_attr { + struct device_attribute attr; + u64 id; + const char *event_str; }; -struct mpfs_msspll_hw_clock { - void *base; - unsigned int id; - u32 reg_offset; - u32 shift; - u32 width; - u32 flags; - struct clk_hw hw; - struct clk_init_data init; +struct nvdimm_pmu { + struct pmu pmu; + struct device *dev; + int cpu; + struct hlist_node node; + enum cpuhp_state cpuhp_state; + struct cpumask arch_cpumask; }; -struct mpfs_cfg_hw_clock { - struct clk_divider cfg; - struct clk_init_data init; - unsigned int id; - u32 reg_offset; +enum blk_default_limits { + BLK_MAX_SEGMENTS = 128, + BLK_SAFE_MAX_SECTORS = 255, + BLK_MAX_SEGMENT_SIZE = 65536, + BLK_SEG_BOUNDARY_MASK = 4294967295, }; -struct clk_gate { - struct clk_hw hw; - void *reg; - u8 bit_idx; - u8 flags; - spinlock_t *lock; -}; +typedef bool busy_tag_iter_fn(struct request *, void *); -struct mpfs_periph_hw_clock { - struct clk_gate periph; - unsigned int id; +struct scsi_host_busy_iter_data { + bool (*fn)(struct scsi_cmnd *, void *); + void *priv; }; -struct mpfs_clock_data { - struct device *dev; - void *base; - void *msspll_base; - struct clk_hw_onecell_data hw_data; -}; +struct mtd_partition; -enum { - REGULATOR_ERROR_CLEARED = 0, - REGULATOR_FAILED_RETRY = 1, - REGULATOR_ERROR_ON = 2, -}; +struct mtd_part_parser_data; -struct regulator_irq { - struct regulator_irq_data rdata; - struct regulator_irq_desc desc; - int irq; - int retry_cnt; - struct delayed_work isr_work; +struct mtd_part_parser { + struct list_head list; + struct module *owner; + const char *name; + const struct of_device_id *of_match_table; + int (*parse_fn)(struct mtd_info *, const struct mtd_partition **, struct mtd_part_parser_data *); + void (*cleanup)(const struct mtd_partition *, int); }; -struct uart_match { - struct uart_port *port; - struct uart_driver *driver; +struct mtd_partition { + const char *name; + const char * const *types; + uint64_t size; + uint64_t offset; + uint32_t mask_flags; + uint32_t add_flags; + struct device_node *of_node; }; -struct anon_transport_class { - struct transport_class tclass; - struct attribute_container container; +struct mtd_part_parser_data { + unsigned long origin; }; -typedef void (*btf_trace_thermal_pressure_update)(void *, int, unsigned long); - -enum scale_freq_source { - SCALE_FREQ_SOURCE_CPUFREQ = 0, - SCALE_FREQ_SOURCE_ARCH = 1, - SCALE_FREQ_SOURCE_CPPC = 2, +struct mtd_partitions { + const struct mtd_partition *parts; + int nr_parts; + const struct mtd_part_parser *parser; }; -struct scale_freq_data { - enum scale_freq_source source; - void (*set_freq_scale)(); +struct spi_nor_erase_command { + struct list_head list; + u32 count; + u32 size; + u8 opcode; }; -struct cpu_topology { - int thread_id; - int core_id; - int cluster_id; - int package_id; - cpumask_t thread_sibling; - cpumask_t core_sibling; - cpumask_t cluster_sibling; - cpumask_t llc_sibling; +struct flash_platform_data { + char *name; + struct mtd_partition *parts; + unsigned int nr_parts; + char *type; }; -struct trace_event_raw_thermal_pressure_update { - struct trace_entry ent; - unsigned long thermal_pressure; - int cpu; - char __data[0]; +struct phylink { + struct net_device *netdev; + const struct phylink_mac_ops *mac_ops; + struct phylink_config *config; + struct phylink_pcs *pcs; + struct device *dev; + unsigned int old_link_state: 1; + unsigned long phylink_disable_state; + struct phy_device *phydev; + phy_interface_t link_interface; + u8 cfg_link_an_mode; + u8 cur_link_an_mode; + u8 link_port; + unsigned long supported[2]; + struct phylink_link_state link_config; + phy_interface_t cur_interface; + struct gpio_desc *link_gpio; + unsigned int link_irq; + struct timer_list link_poll; + void (*get_fixed_state)(struct net_device *, struct phylink_link_state *); + struct mutex state_mutex; + struct phylink_link_state phy_state; + struct work_struct resolve; + unsigned int pcs_neg_mode; + unsigned int pcs_state; + bool mac_link_dropped; + bool using_mac_select_pcs; + struct sfp_bus *sfp_bus; + bool sfp_may_have_phy; + unsigned long sfp_interfaces[1]; + unsigned long sfp_support[2]; + u8 sfp_port; }; -struct trace_event_data_offsets_thermal_pressure_update {}; - -enum scsi_devinfo_key { - SCSI_DEVINFO_GLOBAL = 0, - SCSI_DEVINFO_SPI = 1, +enum { + PHYLINK_DISABLE_STOPPED = 0, + PHYLINK_DISABLE_LINK = 1, + PHYLINK_DISABLE_MAC_WOL = 2, + PCS_STATE_DOWN = 0, + PCS_STATE_STARTING = 1, + PCS_STATE_STARTED = 2, }; -struct scsi_dev_info_list { - struct list_head dev_info_list; - char vendor[8]; - char model[16]; - blist_flags_t flags; - unsigned int compatible; +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 scsi_dev_info_list_table { - struct list_head node; - struct list_head scsi_dev_info_list; - const char *name; - int key; -}; +struct fw_info { + u32 magic; + char version[32]; + __le32 fw_start; + __le32 fw_len; + u8 chksum; +} __attribute__((packed)); -struct double_list { - struct list_head *top; - struct list_head *bottom; +struct firmware { + size_t size; + const u8 *data; + void *priv; }; -enum usb_led_event { - USB_LED_EVENT_HOST = 0, - USB_LED_EVENT_GADGET = 1, -}; +typedef void (*rtl_fw_write_t)(struct rtl8169_private *, int, int); -struct urb_priv___2 { - struct ed *ed; - u16 length; - u16 td_cnt; - struct list_head pending; - struct td *td[0]; +typedef int (*rtl_fw_read_t)(struct rtl8169_private *, int); + +struct rtl_fw_phy_action { + __le32 *code; + size_t size; }; -typedef struct urb_priv___2 urb_priv_t; +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; +}; -struct debug_buffer { - ssize_t (*fill_func)(struct debug_buffer *); - struct ohci_hcd *ohci; - struct mutex mutex; - size_t count; - char *page; +struct phy_devm { + struct usb_phy *phy; + struct notifier_block *nb; }; enum { @@ -79428,15 +85766,134 @@ struct psy_get_supplier_prop_data { union power_supply_propval *val; }; -struct mmc_pwrseq_simple { - struct mmc_pwrseq pwrseq; - bool clk_enabled; - u32 post_power_on_delay_ms; - u32 power_off_delay_us; - struct clk *ext_clk; - struct gpio_descs *reset_gpios; +enum { + EVENT_CMD_COMPLETE = 0, + EVENT_XFER_COMPLETE = 1, + EVENT_DATA_COMPLETE = 2, + EVENT_DATA_ERROR = 3, +}; + +enum { + TRANS_MODE_PIO = 0, + TRANS_MODE_IDMAC = 1, + TRANS_MODE_EDMAC = 2, +}; + +enum dw_mci_cookie { + COOKIE_UNMAPPED = 0, + COOKIE_PRE_MAPPED = 1, + COOKIE_MAPPED = 2, +}; + +struct idmac_desc_64addr { + u32 des0; + u32 des1; + u32 des2; + u32 des3; + u32 des4; + u32 des5; + u32 des6; + u32 des7; +}; + +struct idmac_desc { + __le32 des0; + __le32 des1; + __le32 des2; + __le32 des3; +}; + +struct quirks_list_struct { + struct hid_device_id hid_bl_item; + struct list_head node; +}; + +enum { + NVMEM_ADD = 1, + NVMEM_REMOVE = 2, + NVMEM_CELL_ADD = 3, + NVMEM_CELL_REMOVE = 4, + NVMEM_LAYOUT_ADD = 5, + NVMEM_LAYOUT_REMOVE = 6, +}; + +struct nvmem_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; + struct gpio_desc *wp_gpio; + struct nvmem_layout *layout; + void *priv; +}; + +struct nvmem_cell_table { + const char *nvmem_name; + const struct nvmem_cell_info *cells; + size_t ncells; + struct list_head node; +}; + +struct nvmem_cell_entry { + const char *name; + int offset; + size_t raw_len; + int bytes; + int bit_offset; + int nbits; + nvmem_cell_post_process_t read_post_process; + void *priv; + struct device_node *np; + struct nvmem_device *nvmem; + struct list_head node; +}; + +struct nvmem_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 ahash_request { + struct crypto_async_request base; + unsigned int nbytes; + struct scatterlist *src; + u8 *result; + void *priv; + void *__ctx[0]; +}; + +struct csum_state { + __wsum csum; + size_t off; +}; + +typedef size_t (*iov_ustep_f)(void __attribute__((btf_type_tag("user"))) *, size_t, size_t, void *, void *); + +typedef size_t (*iov_step_f)(void *, size_t, size_t, void *, void *); + typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason); typedef void (*btf_trace_consume_skb)(void *, struct sk_buff *, void *); @@ -79653,6 +86110,8 @@ struct net_bridge { struct delayed_work gc_work; struct kobject *ifobj; u32 auto_cnt; + atomic_t fdb_n_learned; + u32 fdb_max_learned; struct hlist_head fdb_list; }; @@ -79729,6 +86188,7 @@ struct net_bridge_port { unsigned long flags; struct net_bridge_vlan_group __attribute__((btf_type_tag("rcu"))) *vlgrp; struct net_bridge_port __attribute__((btf_type_tag("rcu"))) *backup_port; + u32 backup_nhid; u8 priority; u8 state; u16 port_no; @@ -80297,2977 +86757,3051 @@ struct trace_event_raw_neigh_update { 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_br_fdb_add { - u32 dev; -}; - -struct trace_event_data_offsets_br_fdb_external_learn_add { - u32 br_dev; - u32 dev; -}; - -struct trace_event_data_offsets_fdb_delete { - u32 br_dev; - u32 dev; -}; - -struct trace_event_data_offsets_br_fdb_update { - u32 br_dev; - u32 dev; -}; - -struct trace_event_data_offsets_br_mdb_full { - u32 dev; -}; - -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 {}; - -typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); - -struct xfrm_spi_skb_cb { - struct xfrm_tunnel_skb_cb header; - unsigned int daddroff; - unsigned int family; - __be32 seq; -}; - -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 __riscv_ctx_hdr { - __u32 magic; - __u32 size; -}; - -struct __riscv_extra_ext_header { - __u32 __padding[129]; - __u32 reserved; - struct __riscv_ctx_hdr hdr; -}; - -struct sigcontext { - struct user_regs_struct sc_regs; - union { - union __riscv_fp_state sc_fpregs; - struct __riscv_extra_ext_header sc_extdesc; - }; -}; - -struct ucontext { - unsigned long uc_flags; - struct ucontext *uc_link; - stack_t uc_stack; - sigset_t uc_sigmask; - __u8 __unused[120]; - long: 64; - struct sigcontext uc_mcontext; -}; - -struct rt_sigframe { - struct siginfo info; - struct ucontext uc; -}; - -typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int)); - -typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *); - -typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int); - -struct cpuhp_cpu_state { - enum cpuhp_state state; - enum cpuhp_state target; - enum cpuhp_state fail; - struct task_struct *thread; - bool should_run; - bool rollback; - bool single; - bool bringup; - struct hlist_node *node; - struct hlist_node *last; - enum cpuhp_state cb_state; - int result; - atomic_t ap_sync_state; - struct completion done_up; - struct completion done_down; -}; - -struct cpuhp_step { - const char *name; - union { - int (*single)(unsigned int); - int (*multi)(unsigned int, struct hlist_node *); - } startup; - union { - int (*single)(unsigned int); - int (*multi)(unsigned int, struct hlist_node *); - } teardown; - struct hlist_head list; - bool cant_stop; - bool multi_instance; -}; - -enum cpu_mitigations { - CPU_MITIGATIONS_OFF = 0, - CPU_MITIGATIONS_AUTO = 1, - CPU_MITIGATIONS_AUTO_NOSMT = 2, -}; - -enum cpuhp_sync_state { - SYNC_STATE_DEAD = 0, - SYNC_STATE_KICKED = 1, - SYNC_STATE_SHOULD_DIE = 2, - SYNC_STATE_ALIVE = 3, - SYNC_STATE_SHOULD_ONLINE = 4, - SYNC_STATE_ONLINE = 5, -}; - -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 trace_event_raw_cpuhp_enter { - struct trace_entry ent; - unsigned int cpu; - int target; - int idx; - void *fun; + u32 pid; char __data[0]; }; -struct trace_event_raw_cpuhp_multi_enter { +struct trace_event_raw_neigh__update { struct trace_entry ent; - unsigned int cpu; - int target; - int idx; - void *fun; + 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_raw_cpuhp_exit { - struct trace_entry ent; - unsigned int cpu; - int state; - int idx; - int ret; - char __data[0]; +struct trace_event_data_offsets_net_dev_start_xmit { + u32 name; }; -struct trace_event_data_offsets_cpuhp_enter {}; - -struct trace_event_data_offsets_cpuhp_multi_enter {}; - -struct trace_event_data_offsets_cpuhp_exit {}; - -enum { - HP_THREAD_NONE = 0, - HP_THREAD_ACTIVE = 1, - HP_THREAD_PARKED = 2, +struct trace_event_data_offsets_net_dev_xmit { + u32 name; }; -struct smpboot_thread_data { - unsigned int cpu; - unsigned int status; - struct smp_hotplug_thread *ht; +struct trace_event_data_offsets_net_dev_xmit_timeout { + u32 name; + u32 driver; }; -typedef void (*btf_trace_console)(void *, const char *, size_t); - -struct console_cmdline { - char name[16]; - int index; - bool user_specified; - char *options; +struct trace_event_data_offsets_net_dev_template { + u32 name; }; -struct printk_buffers { - char outbuf[2048]; - char scratchbuf[1024]; +struct trace_event_data_offsets_net_dev_rx_verbose_template { + u32 name; }; -struct latched_seq { - seqcount_latch_t latch; - u64 val[2]; +struct trace_event_data_offsets_napi_poll { + u32 dev_name; }; -enum devkmsg_log_masks { - DEVKMSG_LOG_MASK_ON = 1, - DEVKMSG_LOG_MASK_OFF = 2, - DEVKMSG_LOG_MASK_LOCK = 4, +struct trace_event_data_offsets_qdisc_reset { + u32 dev; + u32 kind; }; -enum printk_info_flags { - LOG_NEWLINE = 2, - LOG_CONT = 8, +struct trace_event_data_offsets_qdisc_destroy { + u32 dev; + u32 kind; }; -enum con_msg_format_flags { - MSG_FORMAT_DEFAULT = 0, - MSG_FORMAT_SYSLOG = 1, +struct trace_event_data_offsets_qdisc_create { + u32 dev; + u32 kind; }; -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_data_offsets_br_fdb_add { + u32 dev; }; -struct trace_event_raw_console { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; +struct trace_event_data_offsets_br_fdb_external_learn_add { + u32 br_dev; + u32 dev; }; -struct trace_event_data_offsets_console { - u32 msg; +struct trace_event_data_offsets_fdb_delete { + u32 br_dev; + u32 dev; }; -struct printk_message { - struct printk_buffers *pbufs; - unsigned int outbuf_len; - u64 seq; - unsigned long dropped; +struct trace_event_data_offsets_br_fdb_update { + u32 br_dev; + u32 dev; }; -struct devkmsg_user { - atomic64_t seq; - struct ratelimit_state rs; - struct mutex lock; - struct printk_buffers pbufs; +struct trace_event_data_offsets_br_mdb_full { + u32 dev; }; -struct kmsg_dump_iter { - u64 cur_seq; - u64 next_seq; +struct trace_event_data_offsets_neigh_create { + u32 dev; }; -struct __kernel_old_itimerval { - struct __kernel_old_timeval it_interval; - struct __kernel_old_timeval it_value; +struct trace_event_data_offsets_neigh_update { + u32 dev; }; -struct old_itimerval32 { - struct old_timeval32 it_interval; - struct old_timeval32 it_value; +struct trace_event_data_offsets_neigh__update { + u32 dev; }; -struct action_cache { - unsigned long allow_native[8]; -}; +struct trace_event_data_offsets_kfree_skb {}; -struct notification; +struct trace_event_data_offsets_consume_skb {}; -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 trace_event_data_offsets_skb_copy_datagram_iovec {}; -struct notification { - struct semaphore request; - u64 next_id; - struct list_head notifications; -}; +struct trace_event_data_offsets_net_dev_rx_exit_template {}; -struct seccomp_log_name { - u32 log; - const char *name; -}; +struct trace_event_data_offsets_sock_rcvqueue_full {}; -enum notify_state { - SECCOMP_NOTIFY_INIT = 0, - SECCOMP_NOTIFY_SENT = 1, - SECCOMP_NOTIFY_REPLIED = 2, -}; +struct trace_event_data_offsets_sock_exceed_buf_limit {}; -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 trace_event_data_offsets_inet_sock_set_state {}; -struct seccomp_data; +struct trace_event_data_offsets_inet_sk_error_report {}; -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 trace_event_data_offsets_sk_data_ready {}; -struct seccomp_data { - int nr; - __u32 arch; - __u64 instruction_pointer; - __u64 args[6]; -}; +struct trace_event_data_offsets_sock_msg_length {}; -struct seccomp_notif_sizes { - __u16 seccomp_notif; - __u16 seccomp_notif_resp; - __u16 seccomp_data; -}; +struct trace_event_data_offsets_udp_fail_queue_rcv_skb {}; -struct seccomp_notif_resp { - __u64 id; - __s64 val; - __s32 error; - __u32 flags; -}; +struct trace_event_data_offsets_tcp_event_sk_skb {}; -struct seccomp_notif { - __u64 id; - __u32 pid; - __u32 flags; - struct seccomp_data data; -}; +struct trace_event_data_offsets_tcp_event_sk {}; -struct seccomp_notif_addfd { - __u64 id; - __u32 flags; - __u32 srcfd; - __u32 newfd; - __u32 newfd_flags; -}; +struct trace_event_data_offsets_tcp_retransmit_synack {}; -struct seccomp_metadata { - __u64 filter_off; - __u64 flags; -}; +struct trace_event_data_offsets_tcp_probe {}; -struct bpf_dtab_netdev; +struct trace_event_data_offsets_tcp_event_skb {}; -struct bpf_dtab { - struct bpf_map map; - struct bpf_dtab_netdev __attribute__((btf_type_tag("rcu"))) **netdev_map; - struct list_head list; - struct hlist_head *dev_index_head; - spinlock_t index_lock; - unsigned int items; - u32 n_buckets; -}; +struct trace_event_data_offsets_tcp_cong_state_set {}; -struct bpf_devmap_val { - __u32 ifindex; - union { - int fd; - __u32 id; - } bpf_prog; -}; +struct trace_event_data_offsets_fib_table_lookup {}; -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 trace_event_data_offsets_qdisc_dequeue {}; -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 trace_event_data_offsets_qdisc_enqueue {}; -struct linux_dirent { - unsigned long d_ino; - unsigned long d_off; - unsigned short d_reclen; - char d_name[0]; -}; +struct trace_event_data_offsets_page_pool_release {}; -struct linux_dirent64 { - u64 d_ino; - s64 d_off; - unsigned short d_reclen; - unsigned char d_type; - char d_name[0]; -}; +struct trace_event_data_offsets_page_pool_state_release {}; -struct compat_old_linux_dirent { - compat_ulong_t d_ino; - compat_ulong_t d_offset; - unsigned short d_namlen; - char d_name[0]; -}; +struct trace_event_data_offsets_page_pool_state_hold {}; -struct compat_linux_dirent { - compat_ulong_t d_ino; - compat_ulong_t d_off; - unsigned short d_reclen; - char d_name[0]; -}; +struct trace_event_data_offsets_page_pool_update_nid {}; -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; +enum { + ETHTOOL_STATS_ETH_PHY = 0, + ETHTOOL_STATS_ETH_MAC = 1, + ETHTOOL_STATS_ETH_CTRL = 2, + ETHTOOL_STATS_RMON = 3, + __ETHTOOL_STATS_CNT = 4, }; -struct getdents_callback64 { - struct dir_context ctx; - struct linux_dirent64 __attribute__((btf_type_tag("user"))) *current_dir; - int prev_reclen; - int count; - int error; +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, }; -struct compat_readdir_callback { - struct dir_context ctx; - struct compat_old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent; - int result; +enum { + ETHTOOL_A_STATS_GRP_UNSPEC = 0, + ETHTOOL_A_STATS_GRP_PAD = 1, + ETHTOOL_A_STATS_GRP_ID = 2, + ETHTOOL_A_STATS_GRP_SS_ID = 3, + ETHTOOL_A_STATS_GRP_STAT = 4, + ETHTOOL_A_STATS_GRP_HIST_RX = 5, + ETHTOOL_A_STATS_GRP_HIST_TX = 6, + ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, + ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, + ETHTOOL_A_STATS_GRP_HIST_VAL = 9, + __ETHTOOL_A_STATS_GRP_CNT = 10, + ETHTOOL_A_STATS_GRP_MAX = 9, }; -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; +enum { + ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0, + __ETHTOOL_A_STATS_ETH_PHY_CNT = 1, + ETHTOOL_A_STATS_ETH_PHY_MAX = 0, }; -struct fs_error_report { - int error; - struct inode *inode; - struct super_block *sb; +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, }; -typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); - -struct ext4_getfsmap_info { - struct ext4_fsmap_head *gfi_head; - ext4_fsmap_format_t gfi_formatter; - void *gfi_format_arg; - ext4_fsblk_t gfi_next_fsblk; - u32 gfi_dev; - ext4_group_t gfi_agno; - struct ext4_fsmap gfi_low; - struct ext4_fsmap gfi_high; - struct ext4_fsmap gfi_lastfree; - struct list_head gfi_meta_list; - bool gfi_last; +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, }; -struct ext4_getfsmap_dev { - int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); - u32 gfd_dev; +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, }; -typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int); - -typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *); +struct stats_req_info { + struct ethnl_req_info base; + unsigned long stat_mask[1]; + enum ethtool_mac_stats_src src; +}; -typedef void (*btf_trace_jbd2_commit_locking)(void *, journal_t *, transaction_t *); +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; +}; -typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *); +enum tcp_tw_status { + TCP_TW_SUCCESS = 0, + TCP_TW_RST = 1, + TCP_TW_ACK = 2, + TCP_TW_SYN = 3, +}; -typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *); +union tcp_word_hdr { + struct tcphdr hdr; + __be32 words[5]; +}; -typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *); +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; +}; -typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *); +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; +}; -typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *); +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, +}; -typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, tid_t, unsigned int, unsigned int, int); +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, +}; -typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int); +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, +}; -typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int); +struct km_event; -typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int); +struct xfrm_migrate; -typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); +struct xfrm_kmaddress; -typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); +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 *); +}; -typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, unsigned long, unsigned long); +struct km_event { + union { + u32 hard; + u32 proto; + u32 byid; + u32 aevent; + u32 type; + } data; + u32 seq; + u32 portid; + u32 event; + struct net *net; +}; -typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t); +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; +}; -typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, unsigned long); +struct xfrm_kmaddress { + xfrm_address_t local; + xfrm_address_t remote; + u32 reserved; + u16 family; +}; -typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, unsigned long, unsigned long); +struct xfrmk_sadinfo { + u32 sadhcnt; + u32 sadhmcnt; + u32 sadcnt; +}; -typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, unsigned long, unsigned long); +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; +}; -typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, unsigned long, unsigned long, unsigned long); +struct uncached_list { + spinlock_t lock; + struct list_head head; + struct list_head quarantine; +}; -typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, unsigned long, tid_t); +typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *); -struct jbd2_journal_block_tail { - __be32 t_checksum; +enum rt6_nud_state { + RT6_NUD_FAIL_HARD = -3, + RT6_NUD_FAIL_PROBE = -2, + RT6_NUD_FAIL_DO_RR = -1, + RT6_NUD_SUCCEED = 1, }; -struct trace_event_raw_jbd2_checkpoint { - struct trace_entry ent; - dev_t dev; - int result; - char __data[0]; +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, }; -struct trace_event_raw_jbd2_commit { - struct trace_entry ent; - dev_t dev; - char sync_commit; - tid_t transaction; - char __data[0]; +struct rd_msg { + struct icmp6hdr icmph; + struct in6_addr target; + struct in6_addr dest; + __u8 opt[0]; }; -struct trace_event_raw_jbd2_end_commit { +struct trace_event_raw_fib6_table_lookup { struct trace_entry ent; - dev_t dev; - char sync_commit; - tid_t transaction; - tid_t head; + 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 trace_event_raw_jbd2_submit_inode_data { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; +struct rt6_exception { + struct hlist_node hlist; + struct rt6_info *rt6i; + unsigned long stamp; + struct callback_head rcu; }; -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 ip6rd_flowi { + struct flowi6 fl6; + struct in6_addr gateway; }; -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 arg_dev_net_ip { + struct net *net; + struct in6_addr *addr; }; -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 rt6_mtu_change_arg { + struct net_device *dev; + unsigned int mtu; + struct fib6_info *f6i; }; -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 rt6_nh { + struct fib6_info *fib6_info; + struct fib6_config r_cfg; + struct list_head next; }; -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 fib6_nh_dm_arg { + struct net *net; + const struct in6_addr *saddr; + int oif; + int flags; + struct fib6_nh *nh; }; -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 fib6_nh_match_arg { + const struct net_device *dev; + const struct in6_addr *gw; + struct fib6_nh *match; }; -struct trace_event_raw_jbd2_write_superblock { - struct trace_entry ent; - dev_t dev; - blk_opf_t write_flags; - char __data[0]; +struct fib6_nh_del_cached_rt_arg { + struct fib6_config *cfg; + struct fib6_info *f6i; }; -struct trace_event_raw_jbd2_lock_buffer_stall { - struct trace_entry ent; - dev_t dev; - unsigned long stall_ms; - char __data[0]; +struct arg_netdev_event { + const struct net_device *dev; + union { + unsigned char nh_flags; + unsigned long event; + }; }; -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_data_offsets_fib6_table_lookup {}; + +struct fib6_nh_age_excptn_arg { + struct fib6_gc_args *gc_args; + unsigned long now; }; -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 netevent_redirect { + struct dst_entry *old; + struct dst_entry *new; + struct neighbour *neigh; + const void *daddr; }; -struct trace_event_raw_jbd2_shrink_checkpoint_list { - struct trace_entry ent; - dev_t dev; - tid_t first_tid; - tid_t tid; - tid_t last_tid; - unsigned long nr_freed; - tid_t next_tid; - char __data[0]; +struct 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 trace_event_data_offsets_jbd2_checkpoint {}; +struct fib6_nh_frl_arg { + u32 flags; + int oif; + int strict; + int *mpri; + bool *do_rr; + struct fib6_nh *nh; +}; -struct trace_event_data_offsets_jbd2_commit {}; +struct fib6_nh_rd_arg { + struct fib6_result *res; + struct flowi6 *fl6; + const struct in6_addr *gw; + struct rt6_info **ret; +}; -struct trace_event_data_offsets_jbd2_end_commit {}; +struct fib6_nh_excptn_arg { + struct rt6_info *rt; + int plen; +}; -struct trace_event_data_offsets_jbd2_submit_inode_data {}; +enum xprt_xid_rb_cmp { + XID_RB_EQUAL = 0, + XID_RB_LEFT = 1, + XID_RB_RIGHT = 2, +}; -struct trace_event_data_offsets_jbd2_handle_start_class {}; +enum rseq_event_mask_bits { + RSEQ_EVENT_PREEMPT_BIT = 0, + RSEQ_EVENT_SIGNAL_BIT = 1, + RSEQ_EVENT_MIGRATE_BIT = 2, +}; -struct trace_event_data_offsets_jbd2_handle_extend {}; +struct __riscv_ctx_hdr { + __u32 magic; + __u32 size; +}; -struct trace_event_data_offsets_jbd2_handle_stats {}; +struct __riscv_extra_ext_header { + __u32 __padding[129]; + __u32 reserved; + struct __riscv_ctx_hdr hdr; +}; -struct trace_event_data_offsets_jbd2_run_stats {}; +struct sigcontext { + struct user_regs_struct sc_regs; + union { + union __riscv_fp_state sc_fpregs; + struct __riscv_extra_ext_header sc_extdesc; + }; +}; -struct trace_event_data_offsets_jbd2_checkpoint_stats {}; +struct ucontext { + unsigned long uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; + sigset_t uc_sigmask; + __u8 __unused[120]; + long: 64; + struct sigcontext uc_mcontext; +}; -struct trace_event_data_offsets_jbd2_update_log_tail {}; +struct rt_sigframe { + struct siginfo info; + struct ucontext uc; +}; -struct trace_event_data_offsets_jbd2_write_superblock {}; +struct ipi_mux_cpu { + atomic_t enable; + atomic_t bits; +}; -struct trace_event_data_offsets_jbd2_lock_buffer_stall {}; +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, +}; -struct trace_event_data_offsets_jbd2_journal_shrink {}; +struct timer_list_iter { + int cpu; + bool second_pass; + u64 now; +}; -struct trace_event_data_offsets_jbd2_shrink_scan_exit {}; +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 trace_event_data_offsets_jbd2_shrink_checkpoint_list {}; +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 jbd2_stats_proc_session { - journal_t *journal; - struct transaction_stats_s *stats; - int start; - int max; +enum kprobe_slot_state { + SLOT_CLEAN = 0, + SLOT_DIRTY = 1, + SLOT_USED = 2, }; -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 perf_record_ksymbol_type { + PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0, + PERF_RECORD_KSYMBOL_TYPE_BPF = 1, + PERF_RECORD_KSYMBOL_TYPE_OOL = 2, + PERF_RECORD_KSYMBOL_TYPE_MAX = 3, }; -struct hashtab_info { - u32 slots_used; - u32 max_chain_len; +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 aa_audit_rule { - struct aa_label *label; +struct kprobe_blacklist_entry { + struct list_head list; + unsigned long start_addr; + unsigned long end_addr; }; -struct crypto_kpp { - unsigned int reqsize; - 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; + 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; - struct crypto_tfm base; }; -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 *); - long: 64; - long: 64; - struct crypto_alg base; +struct bucket { + struct hlist_nulls_head head; + raw_spinlock_t raw_lock; }; -struct kpp_instance { - void (*free)(struct kpp_instance *); - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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 { - struct { - char head[64]; - struct crypto_instance base; - } s; - struct kpp_alg alg; + void *ptr_to_pptr; + struct bpf_lru_node lru_node; }; + u32 hash; + long: 0; + char key[0]; }; -struct crypto_istat_kpp { - atomic64_t setsecret_cnt; - atomic64_t generate_public_key_cnt; - atomic64_t compute_shared_secret_cnt; - atomic64_t err_cnt; +struct 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 crypto_kpp_spawn { - struct crypto_spawn base; +struct list_lru_memcg { + struct callback_head rcu; + struct list_lru_one node[0]; }; -struct blk_major_name { - struct blk_major_name *next; - int major; - char name[16]; - void (*probe)(dev_t); +struct list_lru_memcg_table { + struct list_lru_memcg *mlru; + struct mem_cgroup *memcg; }; -struct io_rsrc_update { - struct file *file; - u64 arg; - u32 nr_args; - u32 offset; +enum pageblock_bits { + PB_migrate = 0, + PB_migrate_end = 2, + PB_migrate_skip = 3, + NR_PAGEBLOCK_BITS = 4, }; -struct compat_iovec { - compat_uptr_t iov_base; - compat_size_t iov_len; +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, }; -struct io_uring_rsrc_update2 { - __u32 offset; - __u32 resv; - __u64 data; - __u64 tags; - __u32 nr; - __u32 resv2; +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, }; -struct io_uring_rsrc_register { - __u32 nr; - __u32 flags; - __u64 resv2; - __u64 data; - __u64 tags; -}; +typedef int fpi_t; -enum gpio_v2_line_flag { - GPIO_V2_LINE_FLAG_USED = 1, - GPIO_V2_LINE_FLAG_ACTIVE_LOW = 2, - GPIO_V2_LINE_FLAG_INPUT = 4, - GPIO_V2_LINE_FLAG_OUTPUT = 8, - GPIO_V2_LINE_FLAG_EDGE_RISING = 16, - GPIO_V2_LINE_FLAG_EDGE_FALLING = 32, - GPIO_V2_LINE_FLAG_OPEN_DRAIN = 64, - GPIO_V2_LINE_FLAG_OPEN_SOURCE = 128, - GPIO_V2_LINE_FLAG_BIAS_PULL_UP = 256, - GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN = 512, - GPIO_V2_LINE_FLAG_BIAS_DISABLED = 1024, - GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME = 2048, - GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE = 4096, +struct alloc_context { + struct zonelist *zonelist; + nodemask_t *nodemask; + struct zoneref *preferred_zoneref; + int migratetype; + enum zone_type highest_zoneidx; + bool spread_dirty_pages; }; -enum gpio_v2_line_changed_type { - GPIO_V2_LINE_CHANGED_REQUESTED = 1, - GPIO_V2_LINE_CHANGED_RELEASED = 2, - GPIO_V2_LINE_CHANGED_CONFIG = 3, +struct hugetlbfs_inode_info { + struct inode vfs_inode; + unsigned int seals; }; -enum gpio_v2_line_attr_id { - GPIO_V2_LINE_ATTR_ID_FLAGS = 1, - GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 2, - GPIO_V2_LINE_ATTR_ID_DEBOUNCE = 3, +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; }; -enum gpio_v2_line_event_id { - GPIO_V2_LINE_EVENT_RISING_EDGE = 1, - GPIO_V2_LINE_EVENT_FALLING_EDGE = 2, +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 linereq; - -struct line { - struct gpio_desc *desc; - struct linereq *req; - unsigned int irq; - u64 edflags; - u64 timestamp_ns; - u32 req_seqno; - u32 line_seqno; - struct delayed_work work; - unsigned int sw_debounced; - unsigned int level; +enum hugetlbfs_size_type { + NO_SIZE = 0, + SIZE_STD = 1, + SIZE_PERCENT = 2, }; -struct gpio_v2_line_event { - __u64 timestamp_ns; - __u32 id; - __u32 offset; - __u32 seqno; - __u32 line_seqno; - __u32 padding[6]; +enum hugetlb_param { + Opt_gid___4 = 0, + Opt_min_size = 1, + Opt_mode___3 = 2, + Opt_nr_inodes___2 = 3, + Opt_pagesize = 4, + Opt_size___2 = 5, + Opt_uid___3 = 6, }; -struct linereq { - struct gpio_device *gdev; - const char *label; - u32 num_lines; - wait_queue_head_t wait; - u32 event_buffer_size; - struct { - union { - struct __kfifo kfifo; - struct gpio_v2_line_event *type; - const struct gpio_v2_line_event *const_type; - char (*rectype)[0]; - struct gpio_v2_line_event *ptr; - const struct gpio_v2_line_event *ptr_const; - }; - struct gpio_v2_line_event buf[0]; - } events; - atomic_t seqno; - struct mutex config_mutex; - struct line lines[0]; +struct resv_map { + struct kref refs; + spinlock_t lock; + struct list_head regions; + long adds_in_progress; + struct list_head region_cache; + long region_cache_count; + struct rw_semaphore rw_sema; + struct page_counter *reservation_counter; + unsigned long pages_per_hpage; + struct cgroup_subsys_state *css; }; -struct gpio_v2_line_attribute { - __u32 id; - __u32 padding; - union { - __u64 flags; - __u64 values; - __u32 debounce_period_us; - }; +struct vm_unmapped_area_info { + unsigned long flags; + unsigned long length; + unsigned long low_limit; + unsigned long high_limit; + unsigned long align_mask; + unsigned long align_offset; }; -struct gpio_v2_line_info { - char name[32]; - char consumer[32]; - __u32 offset; - __u32 num_attrs; - __u64 flags; - struct gpio_v2_line_attribute attrs[10]; - __u32 padding[4]; +struct hugetlb_vma_lock { + struct kref refs; + struct rw_semaphore rw_sema; + struct vm_area_struct *vma; }; -struct gpio_v2_line_info_changed { - struct gpio_v2_line_info info; - __u64 timestamp_ns; - __u32 event_type; - __u32 padding[5]; +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 gpio_chardev_data { - struct gpio_device *gdev; - wait_queue_head_t wait; - struct { - union { - struct __kfifo kfifo; - struct gpio_v2_line_info_changed *type; - const struct gpio_v2_line_info_changed *const_type; - char (*rectype)[0]; - struct gpio_v2_line_info_changed *ptr; - const struct gpio_v2_line_info_changed *ptr_const; - }; - struct gpio_v2_line_info_changed buf[32]; - } events; - struct notifier_block lineinfo_changed_nb; - unsigned long *watched_lines; - atomic_t watch_abi_version; +enum { + FATTR4_MODE_UMASK = 81, }; -typedef ssize_t (*read_fn)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - -typedef __poll_t (*poll_fn)(struct file *, struct poll_table_struct *); +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 gpio_v2_line_config_attribute { - struct gpio_v2_line_attribute attr; - __u64 mask; +struct nfs_readdir_descriptor { + struct file *file; + struct folio *folio; + struct dir_context *ctx; + unsigned long folio_index; + unsigned long folio_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 gpio_v2_line_config { - __u64 flags; - __u32 num_attrs; - __u32 padding[5]; - struct gpio_v2_line_config_attribute attrs[10]; +struct nfs_cache_array_entry { + u64 cookie; + u64 ino; + const char *name; + unsigned int name_len; + unsigned char d_type; }; -struct gpio_v2_line_request { - __u32 offsets[64]; - char consumer[32]; - struct gpio_v2_line_config config; - __u32 num_lines; - __u32 event_buffer_size; - __u32 padding[5]; - __s32 fd; +struct nfs_cache_array { + u64 change_attr; + u64 last_cookie; + unsigned int size; + unsigned char folio_full: 1; + unsigned char folio_is_eof: 1; + unsigned char cookies_are_ordered: 1; + struct nfs_cache_array_entry array[0]; }; -struct gpiochip_info { - char name[32]; - char label[32]; - __u32 lines; +struct autofs_dev_ioctl; + +typedef int (*ioctl_fn)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *); + +struct args_protover { + __u32 version; }; -struct gpioevent_request { - __u32 lineoffset; - __u32 handleflags; - __u32 eventflags; - char consumer_label[32]; - int fd; +struct args_protosubver { + __u32 sub_version; }; -struct gpioevent_data { - __u64 timestamp; - __u32 id; +struct args_openmount { + __u32 devid; }; -struct lineevent_state { - struct gpio_device *gdev; - const char *label; - struct gpio_desc *desc; - u32 eflags; - int irq; - wait_queue_head_t wait; - struct { - union { - struct __kfifo kfifo; - struct gpioevent_data *type; - const struct gpioevent_data *const_type; - char (*rectype)[0]; - struct gpioevent_data *ptr; - const struct gpioevent_data *ptr_const; - }; - struct gpioevent_data buf[16]; - } events; - u64 timestamp; +struct args_ready { + __u32 token; }; -struct gpiohandle_request { - __u32 lineoffsets[64]; - __u32 flags; - __u8 default_values[64]; - char consumer_label[32]; - __u32 lines; - int fd; +struct args_fail { + __u32 token; + __s32 status; }; -struct linehandle_state { - struct gpio_device *gdev; - const char *label; - struct gpio_desc *descs[64]; - u32 num_descs; +struct args_setpipefd { + __s32 pipefd; }; -struct gpioline_info { - __u32 line_offset; - __u32 flags; - char name[32]; - char consumer[32]; +struct args_timeout { + __u64 timeout; }; -struct gpioline_info_changed { - struct gpioline_info info; - __u64 timestamp; - __u32 event_type; - __u32 padding[5]; +struct args_requester { + __u32 uid; + __u32 gid; }; -typedef long (*ioctl_fn___2)(struct file *, unsigned int, unsigned long); +struct args_expire { + __u32 how; +}; -struct gpiohandle_data { - __u8 values[64]; +struct args_askumount { + __u32 may_umount; }; -struct gpiohandle_config { - __u32 flags; - __u8 default_values[64]; - __u32 padding[4]; +struct args_in { + __u32 type; }; -struct gpio_v2_line_values { - __u64 bits; - __u64 mask; +struct args_out { + __u32 devid; + __u32 magic; }; -enum pci_barno { - NO_BAR = -1, - BAR_0 = 0, - BAR_1 = 1, - BAR_2 = 2, - BAR_3 = 3, - BAR_4 = 4, - BAR_5 = 5, +struct args_ismountpoint { + union { + struct args_in in; + struct args_out out; + }; }; -enum pci_epc_irq_type { - PCI_EPC_IRQ_UNKNOWN = 0, - PCI_EPC_IRQ_LEGACY = 1, - PCI_EPC_IRQ_MSI = 2, - PCI_EPC_IRQ_MSIX = 3, +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 dw_edma_map_format { - EDMA_MF_EDMA_LEGACY = 0, - EDMA_MF_EDMA_UNROLL = 1, - EDMA_MF_HDMA_COMPAT = 5, - EDMA_MF_HDMA_NATIVE = 7, +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 dw_pcie_host_ops; +enum { + SELNL_MSG_SETENFORCE = 16, + SELNL_MSG_POLICYLOAD = 17, + SELNL_MSG_MAX = 18, +}; -struct dw_pcie_rp { - bool has_msi_ctrl: 1; - bool cfg0_io_shared: 1; - u64 cfg0_base; - void *va_cfg0_base; - u32 cfg0_size; - resource_size_t io_base; - phys_addr_t io_bus_addr; - u32 io_size; - int irq; - const struct dw_pcie_host_ops *ops; - int msi_irq[8]; - struct irq_domain *irq_domain; - struct irq_domain *msi_domain; - dma_addr_t msi_data; - struct irq_chip *msi_irq_chip; - u32 num_vectors; - u32 irq_mask[8]; - struct pci_host_bridge *bridge; - raw_spinlock_t lock; - unsigned long msi_irq_in_use[4]; +enum selinux_nlgroups { + SELNLGRP_NONE = 0, + SELNLGRP_AVC = 1, + __SELNLGRP_MAX = 2, +}; + +struct selnl_msg_setenforce { + __s32 val; }; -struct pci_epc; +struct selnl_msg_policyload { + __u32 seqno; +}; -struct dw_pcie_ep_ops; +enum aafs_prof_type { + AAFS_PROF_DIR = 0, + AAFS_PROF_PROFS = 1, + AAFS_PROF_NAME = 2, + AAFS_PROF_MODE = 3, + AAFS_PROF_ATTACH = 4, + AAFS_PROF_HASH = 5, + AAFS_PROF_RAW_DATA = 6, + AAFS_PROF_RAW_HASH = 7, + AAFS_PROF_RAW_ABI = 8, + AAFS_PROF_SIZEOF = 9, +}; -struct pci_epf_bar; +enum aafs_ns_type { + AAFS_NS_DIR = 0, + AAFS_NS_PROFS = 1, + AAFS_NS_NS = 2, + AAFS_NS_RAW_DATA = 3, + AAFS_NS_LOAD = 4, + AAFS_NS_REPLACE = 5, + AAFS_NS_REMOVE = 6, + AAFS_NS_REVISION = 7, + AAFS_NS_COUNT = 8, + AAFS_NS_MAX_COUNT = 9, + AAFS_NS_SIZE = 10, + AAFS_NS_MAX_SIZE = 11, + AAFS_NS_OWNER = 12, + AAFS_NS_SIZEOF = 13, +}; -struct dw_pcie_ep { - struct pci_epc *epc; - struct list_head func_list; - const struct dw_pcie_ep_ops *ops; - phys_addr_t phys_base; - size_t addr_size; - size_t page_size; - u8 bar_to_atu[6]; - phys_addr_t *outbound_addr; - unsigned long *ib_window_map; - unsigned long *ob_window_map; - void *msi_mem; - phys_addr_t msi_mem_phys; - struct pci_epf_bar *epf_bar[6]; +struct bdev_inode { + struct block_device bdev; + struct inode vfs_inode; }; -struct dw_edma_region { - u64 paddr; - union { - void *mem; - void *io; - } vaddr; - size_t sz; +enum { + IOU_PBUF_RING_MMAP = 1, }; -struct dw_edma; +struct io_provide_buf { + struct file *file; + __u64 addr; + __u32 len; + __u32 bgid; + __u32 nbufs; + __u16 bid; +}; -struct dw_edma_plat_ops; +struct io_buf_free { + struct hlist_node list; + void *mem; + size_t size; + int inuse; +}; -struct dw_edma_chip { - struct device *dev; - int nr_irqs; - const struct dw_edma_plat_ops *ops; - u32 flags; - void *reg_base; - u16 ll_wr_cnt; - u16 ll_rd_cnt; - struct dw_edma_region ll_region_wr[8]; - struct dw_edma_region ll_region_rd[8]; - struct dw_edma_region dt_region_wr[8]; - struct dw_edma_region dt_region_rd[8]; - enum dw_edma_map_format mf; - struct dw_edma *dw; +struct io_uring_buf_reg { + __u64 ring_addr; + __u32 ring_entries; + __u16 bgid; + __u16 flags; + __u64 resv[3]; }; -struct dw_pcie_ops; +typedef struct { + size_t compressedSize; + unsigned long long decompressedBound; +} ZSTD_frameSizeInfo; -struct dw_pcie { - struct device *dev; - void *dbi_base; - void *dbi_base2; - void *atu_base; - size_t atu_size; - u32 num_ib_windows; - u32 num_ob_windows; - u32 region_align; - u64 region_limit; - struct dw_pcie_rp pp; - struct dw_pcie_ep ep; - const struct dw_pcie_ops *ops; - u32 version; - u32 type; - unsigned long caps; - int num_lanes; - int link_gen; - u8 n_fts[2]; - struct dw_edma_chip edma; - struct clk_bulk_data app_clks[3]; - struct clk_bulk_data core_clks[4]; - struct reset_control_bulk_data app_rsts[3]; - struct reset_control_bulk_data core_rsts[7]; - struct gpio_desc *pe_rst; -}; +typedef struct { + blockType_e blockType; + U32 lastBlock; + U32 origSize; +} blockProperties_t; -struct dw_pcie_host_ops { - int (*host_init)(struct dw_pcie_rp *); - void (*host_deinit)(struct dw_pcie_rp *); - int (*msi_host_init)(struct dw_pcie_rp *); -}; +typedef enum { + not_streaming = 0, + is_streaming = 1, +} streaming_operation; -struct pci_epc_ops; +typedef enum { + ZSTD_reset_session_only = 1, + ZSTD_reset_parameters = 2, + ZSTD_reset_session_and_parameters = 3, +} ZSTD_ResetDirective; -struct pci_epc_mem; +typedef enum { + ZSTD_d_windowLogMax = 100, + ZSTD_d_experimentalParam1 = 1000, + ZSTD_d_experimentalParam2 = 1001, + ZSTD_d_experimentalParam3 = 1002, + ZSTD_d_experimentalParam4 = 1003, +} ZSTD_dParameter; -struct config_group; +typedef struct { + size_t error; + int lowerBound; + int upperBound; +} ZSTD_bounds; -struct pci_epc { - struct device dev; - struct list_head pci_epf; - struct mutex list_lock; - const struct pci_epc_ops *ops; - struct pci_epc_mem **windows; - struct pci_epc_mem *mem; - unsigned int num_windows; - u8 max_functions; - u8 *max_vfs; - struct config_group *group; - struct mutex lock; - unsigned long function_num_map; -}; +typedef enum { + ZSTDnit_frameHeader = 0, + ZSTDnit_blockHeader = 1, + ZSTDnit_block = 2, + ZSTDnit_lastBlock = 3, + ZSTDnit_checksum = 4, + ZSTDnit_skippableFrame = 5, +} ZSTD_nextInputType_e; -struct pci_epf_header; +struct plic_priv; -struct pci_epc_features; +struct plic_handler { + bool present; + void *hart_base; + raw_spinlock_t enable_lock; + void *enable_base; + u32 *enable_save; + struct plic_priv *priv; +}; -struct pci_epc_ops { - int (*write_header)(struct pci_epc *, u8, u8, struct pci_epf_header *); - int (*set_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); - void (*clear_bar)(struct pci_epc *, u8, u8, struct pci_epf_bar *); - int (*map_addr)(struct pci_epc *, u8, u8, phys_addr_t, u64, size_t); - void (*unmap_addr)(struct pci_epc *, u8, u8, phys_addr_t); - int (*set_msi)(struct pci_epc *, u8, u8, u8); - int (*get_msi)(struct pci_epc *, u8, u8); - int (*set_msix)(struct pci_epc *, u8, u8, u16, enum pci_barno, u32); - int (*get_msix)(struct pci_epc *, u8, u8); - int (*raise_irq)(struct pci_epc *, u8, u8, enum pci_epc_irq_type, u16); - int (*map_msi_irq)(struct pci_epc *, u8, u8, phys_addr_t, u8, u32, u32 *, u32 *); - int (*start)(struct pci_epc *); - void (*stop)(struct pci_epc *); - const struct pci_epc_features * (*get_features)(struct pci_epc *, u8, u8); - struct module *owner; +struct plic_priv { + struct cpumask lmask; + struct irq_domain *irqdomain; + void *regs; + unsigned long plic_quirks; + unsigned int nr_irqs; + unsigned long *prio_save; }; -struct pci_epf_header { - u16 vendorid; - u16 deviceid; - u8 revid; - u8 progif_code; - u8 subclass_code; - u8 baseclass_code; - u8 cache_line_size; - u16 subsys_vendor_id; - u16 subsys_id; - enum pci_interrupt_pin interrupt_pin; +enum pci_bar_type { + pci_bar_unknown = 0, + pci_bar_io = 1, + pci_bar_mem32 = 2, + pci_bar_mem64 = 3, }; -struct pci_epf_bar { - dma_addr_t phys_addr; - void *addr; - size_t size; - enum pci_barno barno; - int flags; +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_epc_features { - unsigned int linkup_notifier: 1; - unsigned int core_init_notifier: 1; - unsigned int msi_capable: 1; - unsigned int msix_capable: 1; - u8 reserved_bar; - u8 bar_fixed_64bit; - u64 bar_fixed_size[6]; - size_t align; +struct pci_domain_busn_res { + struct list_head list; + struct resource res; + int domain_nr; }; -struct pci_epc_mem_window { - phys_addr_t phys_base; - size_t size; - size_t page_size; +struct pci_dev_reset_methods { + u16 vendor; + u16 device; + int (*reset)(struct pci_dev *, bool); }; -struct pci_epc_mem { - struct pci_epc_mem_window window; - unsigned long *bitmap; - int pages; - struct mutex lock; +struct pci_dev_acs_enabled { + u16 vendor; + u16 device; + int (*acs_enabled)(struct pci_dev *, u16); }; -struct config_item_type; +struct pci_dev_acs_ops { + u16 vendor; + u16 device; + int (*enable_acs)(struct pci_dev *); + int (*disable_acs_redir)(struct pci_dev *); +}; -struct config_item { - char *ci_name; - char ci_namebuf[20]; - struct kref ci_kref; - struct list_head ci_entry; - struct config_item *ci_parent; - struct config_group *ci_group; - const struct config_item_type *ci_type; - struct dentry *ci_dentry; +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, }; -struct configfs_subsystem; +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, +}; -struct config_group { - struct config_item cg_item; - struct list_head cg_children; - struct configfs_subsystem *cg_subsys; - struct list_head default_groups; - struct list_head group_entry; +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, }; -struct configfs_item_operations; +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, +}; -struct configfs_group_operations; +enum { + SWITCHTEC_NTB_REG_INFO_OFFSET = 0, + SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384, + SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600, +}; -struct configfs_attribute; +struct pci_cap_saved_data { + u16 cap_nr; + bool cap_extended; + unsigned int size; + u32 data[0]; +}; -struct configfs_bin_attribute; +struct pci_cap_saved_state { + struct hlist_node next; + struct pci_cap_saved_data cap; +}; -struct config_item_type { - struct module *ct_owner; - struct configfs_item_operations *ct_item_ops; - struct configfs_group_operations *ct_group_ops; - struct configfs_attribute **ct_attrs; - struct configfs_bin_attribute **ct_bin_attrs; +struct ntb_ctrl_regs { + u32 partition_status; + u32 partition_op; + u32 partition_ctrl; + u32 bar_setup; + u32 bar_error; + u16 lut_table_entries; + u16 lut_table_offset; + u32 lut_error; + u16 req_id_table_size; + u16 req_id_table_offset; + u32 req_id_error; + u32 reserved1[7]; + struct { + u32 ctl; + u32 win_size; + u64 xlate_addr; + } bar_entry[6]; + struct { + u32 win_size; + u32 reserved[3]; + } bar_ext_entry[6]; + u32 reserved2[192]; + u32 req_id_table[512]; + u32 reserved3[256]; + u64 lut_entry[512]; }; -struct configfs_item_operations { - void (*release)(struct config_item *); - int (*allow_link)(struct config_item *, struct config_item *); - void (*drop_link)(struct config_item *, struct config_item *); +struct nt_partition_info { + u32 xlink_enabled; + u32 target_part_low; + u32 target_part_high; + u32 reserved; }; -struct configfs_group_operations { - struct config_item * (*make_item)(struct config_group *, const char *); - struct config_group * (*make_group)(struct config_group *, const char *); - void (*disconnect_notify)(struct config_group *, struct config_item *); - void (*drop_item)(struct config_group *, struct config_item *); +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 acpi_wakeup_handler { + struct list_head list_node; + bool (*wakeup)(void *); + void *context; }; -struct configfs_attribute { - const char *ca_name; - struct module *ca_owner; - umode_t ca_mode; - ssize_t (*show)(struct config_item *, char *); - ssize_t (*store)(struct config_item *, const char *, size_t); +struct acpi_signal_fatal_info { + u32 type; + u32 code; + u32 argument; }; -struct configfs_bin_attribute { - struct configfs_attribute cb_attr; - void *cb_private; - size_t cb_max_size; - ssize_t (*read)(struct config_item *, void *, size_t); - ssize_t (*write)(struct config_item *, const void *, size_t); +struct acpi_fadt_info { + const char *name; + u16 address64; + u16 address32; + u16 length; + u8 default_length; + u8 flags; }; -struct configfs_subsystem { - struct config_group su_group; - struct mutex su_mutex; +struct acpi_fadt_pm_info { + struct acpi_generic_address *target; + u16 source; + u8 register_num; }; -struct dw_pcie_ep_ops { - void (*ep_init)(struct dw_pcie_ep *); - int (*raise_irq)(struct dw_pcie_ep *, u8, enum pci_epc_irq_type, u16); - const struct pci_epc_features * (*get_features)(struct dw_pcie_ep *); - unsigned int (*func_conf_select)(struct dw_pcie_ep *, u8); +struct dma_chan_tbl_ent { + struct dma_chan *chan; }; -struct dw_pcie_ops { - u64 (*cpu_addr_fixup)(struct dw_pcie *, u64); - u32 (*read_dbi)(struct dw_pcie *, void *, u32, size_t); - void (*write_dbi)(struct dw_pcie *, void *, u32, size_t, u32); - void (*write_dbi2)(struct dw_pcie *, void *, u32, size_t, u32); - int (*link_up)(struct dw_pcie *); - int (*start_link)(struct dw_pcie *); - void (*stop_link)(struct dw_pcie *); +struct dmaengine_unmap_pool { + struct kmem_cache *cache; + const char *name; + mempool_t *pool; + size_t size; }; -struct dw_edma_plat_ops { - int (*irq_vector)(struct device *, unsigned int); - u64 (*pci_address)(struct device *, phys_addr_t); +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, }; -struct pci_osc_bit_struct { - u32 bit; - char *desc; +struct reset_simple_data { + spinlock_t lock; + void *membase; + struct reset_controller_dev rcdev; + bool active_low; + bool status_active_low; + unsigned int reset_us; }; -enum acpi_bridge_type { - ACPI_BRIDGE_TYPE_PCIE = 1, - ACPI_BRIDGE_TYPE_CXL = 2, +struct serial_ctrl_device { + struct device dev; + struct ida port_ida; }; -struct acpi_pci_root_ops; - -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 uart_match { + struct uart_port *port; + struct uart_driver *driver; }; -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 *); +enum nvdimm_security_bits { + NVDIMM_SECURITY_DISABLED = 0, + NVDIMM_SECURITY_UNLOCKED = 1, + NVDIMM_SECURITY_LOCKED = 2, + NVDIMM_SECURITY_FROZEN = 3, + NVDIMM_SECURITY_OVERWRITE = 4, }; -struct acpi_osc_context { - char *uuid_str; - int rev; - struct acpi_buffer cap; - struct acpi_buffer ret; +struct nd_cmd_get_config_data_hdr { + __u32 in_offset; + __u32 in_length; + __u32 status; + __u8 out_buf[0]; }; -typedef void (*btf_trace_clk_enable)(void *, struct clk_core *); - -struct clk_parent_map; - -struct clk_core { - const char *name; - const struct clk_ops *ops; - struct clk_hw *hw; - struct module *owner; - struct device *dev; - struct device_node *of_node; - struct clk_core *parent; - struct clk_parent_map *parents; - u8 num_parents; - u8 new_parent_index; - unsigned long rate; - unsigned long req_rate; - unsigned long new_rate; - struct clk_core *new_parent; - struct clk_core *new_child; - unsigned long flags; - bool orphan; - bool rpm_enabled; - unsigned int enable_count; - unsigned int prepare_count; - unsigned int protect_count; - unsigned long min_rate; - unsigned long max_rate; - unsigned long accuracy; - int phase; - struct clk_duty duty; - struct hlist_head children; - struct hlist_node child_node; - struct hlist_head clks; - unsigned int notifier_count; - struct dentry *dentry; - struct hlist_node debug_node; - struct kref ref; +struct component_ops { + int (*bind)(struct device *, struct device *, void *); + void (*unbind)(struct device *, struct device *, void *); }; -struct clk_parent_map { - const struct clk_hw *hw; - struct clk_core *core; - const char *fw_name; - const char *name; - int index; +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, }; -typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_disable)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *); - -typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *); +typedef u32 usb_port_location_t; -typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *); +struct typec_connector; -typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *); +struct usb_port { + struct usb_device *child; + struct device dev; + struct usb_dev_state *port_owner; + struct usb_port *peer; + struct typec_connector *connector; + struct dev_pm_qos_request *req; + enum usb_port_connect_type connect_type; + enum usb_device_state state; + struct kernfs_node *state_kn; + usb_port_location_t location; + struct mutex status_lock; + u32 over_current_count; + u8 portnum; + u32 quirks; + unsigned int early_stop: 1; + unsigned int ignore_event: 1; + unsigned int is_superspeed: 1; + unsigned int usb3_lpm_u1_permit: 1; + unsigned int usb3_lpm_u2_permit: 1; +}; -typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *); +struct typec_connector { + void (*attach)(struct typec_connector *, struct device *); + void (*deattach)(struct typec_connector *, struct device *); +}; -typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, unsigned long); +struct usb_hub_status { + __le16 wHubStatus; + __le16 wHubChange; +}; -typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, unsigned long); +struct usb_port_status { + __le16 wPortStatus; + __le16 wPortChange; + __le32 dwExtPortStatus; +}; -typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, unsigned long); +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; +}; -typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, unsigned long); +enum { + SUBMIT_STATUS_URB = 2, + ALLOC_DATA_IN_URB = 4, + SUBMIT_DATA_IN_URB = 8, + ALLOC_DATA_OUT_URB = 16, + SUBMIT_DATA_OUT_URB = 32, + ALLOC_CMD_URB = 64, + SUBMIT_CMD_URB = 128, + COMMAND_INFLIGHT = 256, + DATA_IN_URB_INFLIGHT = 512, + DATA_OUT_URB_INFLIGHT = 1024, + COMMAND_ABORTED = 2048, + IS_IN_WORK_LIST = 4096, +}; -typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, unsigned long, unsigned long); +enum { + IU_ID_COMMAND = 1, + IU_ID_STATUS = 3, + IU_ID_RESPONSE = 4, + IU_ID_TASK_MGMT = 5, + IU_ID_READ_READY = 6, + IU_ID_WRITE_READY = 7, +}; -typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *); +enum { + RC_TMF_COMPLETE = 0, + RC_INVALID_INFO_UNIT = 2, + RC_TMF_NOT_SUPPORTED = 4, + RC_TMF_FAILED = 5, + RC_TMF_SUCCEEDED = 8, + RC_INCORRECT_LUN = 9, + RC_OVERLAPPED_TAG = 10, +}; -typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *); +enum { + CMD_PIPE_ID = 1, + STATUS_PIPE_ID = 2, + DATA_IN_PIPE_ID = 3, + DATA_OUT_PIPE_ID = 4, + UAS_SIMPLE_TAG = 0, + UAS_HEAD_TAG = 1, + UAS_ORDERED_TAG = 2, + UAS_ACA = 4, +}; -typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int); +struct uas_dev_info { + struct usb_interface *intf; + struct usb_device *udev; + struct usb_anchor cmd_urbs; + struct usb_anchor sense_urbs; + struct usb_anchor data_urbs; + u64 flags; + int qdepth; + int resetting; + unsigned int cmd_pipe; + unsigned int status_pipe; + unsigned int data_in_pipe; + unsigned int data_out_pipe; + unsigned int use_streams: 1; + unsigned int shutdown: 1; + struct scsi_cmnd *cmnd[256]; + spinlock_t lock; + struct work_struct work; + struct work_struct scan_work; +}; -typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int); +struct response_iu { + __u8 iu_id; + __u8 rsvd1; + __be16 tag; + __u8 add_response_info[3]; + __u8 response_code; +}; -typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *); +struct uas_cmd_info { + unsigned int state; + unsigned int uas_tag; + struct urb *cmd_urb; + struct urb *data_in_urb; + struct urb *data_out_urb; +}; -typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *); +struct sense_iu { + __u8 iu_id; + __u8 rsvd1; + __be16 tag; + __be16 status_qual; + __u8 status; + __u8 rsvd7[7]; + __be16 len; + __u8 sense[96]; +}; -typedef void (*btf_trace_clk_rate_request_start)(void *, struct clk_rate_request *); +struct command_iu { + __u8 iu_id; + __u8 rsvd1; + __be16 tag; + __u8 prio_attr; + __u8 rsvd5; + __u8 len; + __u8 rsvd7; + struct scsi_lun lun; + __u8 cdb[16]; +}; -typedef void (*btf_trace_clk_rate_request_done)(void *, struct clk_rate_request *); +struct iu { + __u8 iu_id; + __u8 rsvd1; + __be16 tag; +}; -struct clk_notifier { - struct clk *clk; - struct srcu_notifier_head notifier_head; - struct list_head node; +struct mousedev_hw_data { + int dx; + int dy; + int dz; + int x; + int y; + int abs_event; + unsigned long buttons; }; -struct of_clk_provider { - struct list_head link; - struct device_node *node; - struct clk * (*get)(struct of_phandle_args *, void *); - struct clk_hw * (*get_hw)(struct of_phandle_args *, void *); - void *data; +struct mousedev { + int open; + struct input_handle handle; + wait_queue_head_t wait; + struct list_head client_list; + spinlock_t client_lock; + struct mutex mutex; + struct device dev; + struct cdev cdev; + bool exist; + struct list_head mixdev_node; + bool opened_by_mixdev; + struct mousedev_hw_data packet; + unsigned int pkt_count; + int old_x[4]; + int old_y[4]; + int frac_dx; + int frac_dy; + unsigned long touch; + int (*open_device)(struct mousedev *); + void (*close_device)(struct mousedev *); }; -struct clock_provider { - void (*clk_init_cb)(struct device_node *); - struct device_node *np; - struct list_head node; +enum { + FRACTION_DENOM = 128, }; -struct trace_event_raw_clk { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; +enum mousedev_emul { + MOUSEDEV_EMUL_PS2 = 0, + MOUSEDEV_EMUL_IMPS = 1, + MOUSEDEV_EMUL_EXPS = 2, }; -struct trace_event_raw_clk_rate { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long rate; - char __data[0]; +struct mousedev_motion { + int dx; + int dy; + int dz; + unsigned long buttons; }; -struct trace_event_raw_clk_rate_range { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long min; - unsigned long max; - char __data[0]; +struct mousedev_client { + struct fasync_struct *fasync; + struct mousedev *mousedev; + struct list_head node; + struct mousedev_motion packets[16]; + unsigned int head; + unsigned int tail; + spinlock_t packet_lock; + int pos_x; + int pos_y; + u8 ps2[6]; + unsigned char ready; + unsigned char buffer; + unsigned char bufsiz; + unsigned char imexseq; + unsigned char impsseq; + enum mousedev_emul mode; + unsigned long last_buttons; }; -struct trace_event_raw_clk_parent { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_pname; - char __data[0]; +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; }; -struct trace_event_raw_clk_phase { - struct trace_entry ent; - u32 __data_loc_name; - int phase; - char __data[0]; +enum power_supply_charge_behaviour { + POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0, + POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1, + POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2, }; -struct trace_event_raw_clk_duty_cycle { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int num; - unsigned int den; - char __data[0]; +struct cpufreq_freqs { + struct cpufreq_policy *policy; + unsigned int old; + unsigned int new; + u8 flags; }; -struct trace_event_raw_clk_rate_request { - struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_pname; - unsigned long min; - unsigned long max; - unsigned long prate; - char __data[0]; +enum sdhci_reset_reason { + SDHCI_RESET_FOR_INIT = 0, + SDHCI_RESET_FOR_REQUEST_ERROR = 1, + SDHCI_RESET_FOR_REQUEST_ERROR_DATA_ONLY = 2, + SDHCI_RESET_FOR_TUNING_ABORT = 3, + SDHCI_RESET_FOR_CARD_REMOVED = 4, + SDHCI_RESET_FOR_CQE_RECOVERY = 5, }; -struct trace_event_data_offsets_clk { - u32 name; +enum sdhci_cookie { + COOKIE_UNMAPPED___2 = 0, + COOKIE_PRE_MAPPED___2 = 1, + COOKIE_MAPPED___2 = 2, }; -struct trace_event_data_offsets_clk_rate { - u32 name; +struct sdhci_adma2_64_desc { + __le16 cmd; + __le16 len; + __le32 addr_lo; + __le32 addr_hi; }; -struct trace_event_data_offsets_clk_rate_range { - u32 name; +struct iio_mount_matrix { + const char *rotation[9]; }; -struct trace_event_data_offsets_clk_parent { - u32 name; - u32 pname; +struct iio_const_attr { + const char *string; + struct device_attribute dev_attr; }; -struct trace_event_data_offsets_clk_phase { - u32 name; +struct iio_enum { + const char * const *items; + unsigned int num_items; + int (*set)(struct iio_dev *, const struct iio_chan_spec *, unsigned int); + int (*get)(struct iio_dev *, const struct iio_chan_spec *); }; -struct trace_event_data_offsets_clk_duty_cycle { - u32 name; +typedef const struct iio_mount_matrix *iio_get_mount_matrix_t(const struct iio_dev *, const struct iio_chan_spec *); + +struct iio_dev_attr { + struct device_attribute dev_attr; + u64 address; + struct list_head l; + const struct iio_chan_spec *c; + struct iio_buffer *buffer; }; -struct trace_event_data_offsets_clk_rate_request { - u32 name; - u32 pname; +struct iio_event_data { + __u64 id; + __s64 timestamp; }; -struct clk_notifier_data { - struct clk *clk; - unsigned long old_rate; - unsigned long new_rate; +struct iio_event_interface { + wait_queue_head_t wait; + struct { + union { + struct __kfifo kfifo; + struct iio_event_data *type; + const struct iio_event_data *const_type; + char (*rectype)[0]; + struct iio_event_data *ptr; + const struct iio_event_data *ptr_const; + }; + struct iio_event_data buf[16]; + } det_events; + struct list_head dev_attr_list; + unsigned long flags; + struct attribute_group group; + struct mutex read_lock; + struct iio_ioctl_handler ioctl_handler; }; -struct clk_notifier_devres { - struct clk *clk; - struct notifier_block *nb; +struct iio_dev_buffer_pair { + struct iio_dev *indio_dev; + struct iio_buffer *buffer; }; -struct clk_onecell_data { - struct clk **clks; - unsigned int clk_num; +struct snd_soc_jack_pin { + struct list_head list; + const char *pin; + int mask; + bool invert; }; -struct dw8250_port_data { - int line; - struct uart_8250_dma dma; - u8 dlf_size; - bool hw_rs485_support; +struct snd_soc_jack_zone { + unsigned int min_mv; + unsigned int max_mv; + unsigned int jack_type; + unsigned int debounce_time; + struct list_head list; }; -struct dw8250_platform_data; +struct snd_soc_jack_gpio { + unsigned int gpio; + unsigned int idx; + struct device *gpiod_dev; + const char *name; + int report; + int invert; + int debounce_time; + bool wake; + struct snd_soc_jack *jack; + struct delayed_work work; + struct notifier_block pm_notifier; + struct gpio_desc *desc; + void *data; + int (*jack_status_check)(void *); +}; -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 jack_gpio_tbl { + int count; + struct snd_soc_jack *jack; + struct snd_soc_jack_gpio *gpios; }; -struct dw8250_platform_data { - u8 usr_reg; - u32 cpr_val; - unsigned int quirks; +enum tc_mq_command { + TC_MQ_CREATE = 0, + TC_MQ_DESTROY = 1, + TC_MQ_STATS = 2, + TC_MQ_GRAFT = 3, }; -struct cpu_attr { - struct device_attribute attr; - const struct cpumask * const map; +struct tc_mq_opt_offload_graft_params { + unsigned long queue; + u32 child_handle; }; -enum dax_access_mode { - DAX_ACCESS = 0, - DAX_RECOVERY_WRITE = 1, +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; + }; }; -enum dax_driver_type { - DAXDRV_KMEM_TYPE = 0, - DAXDRV_DEVICE_TYPE = 1, +struct mq_sched { + struct Qdisc **qdiscs; }; -enum id_action { - ID_REMOVE = 0, - ID_ADD = 1, +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 dax_id { - struct list_head list; - char dev_name[30]; +struct linkinfo_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; }; -struct dax_region; - -struct dev_dax_range; - -struct dev_dax { - struct dax_region *region; - struct dax_device *dax_dev; - unsigned int align; - int target_node; - bool dyn_id; - int id; - struct ida ida; - struct device dev; - struct dev_pagemap *pgmap; - int nr_range; - struct dev_dax_range *ranges; +struct nf_queue_handler { + int (*outfn)(struct nf_queue_entry *, unsigned int); + void (*nf_hook_drop)(struct net *); }; -struct dax_region { - int id; - int target_node; - struct kref kref; - struct device *dev; - unsigned int align; - struct ida ida; - struct resource res; - struct device *seed; - struct device *youngest; +struct nf_bridge_info { + enum { + BRNF_PROTO_UNCHANGED = 0, + BRNF_PROTO_8021Q = 1, + BRNF_PROTO_PPPOE = 2, + } orig_proto: 8; + u8 pkt_otherhost: 1; + u8 in_prerouting: 1; + u8 bridged_dnat: 1; + u8 sabotage_in_done: 1; + __u16 frag_max_size; + int physinif; + struct net_device *physoutdev; + union { + __be32 ipv4_daddr; + struct in6_addr ipv6_daddr; + char neigh_header[8]; + }; }; -struct dax_mapping; +struct ip6_rt_info { + struct in6_addr daddr; + struct in6_addr saddr; + u_int32_t mark; +}; -struct dev_dax_range { - unsigned long pgoff; - struct range range; - struct dax_mapping *mapping; +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 dax_mapping { - struct device dev; - int range_id; - int id; +struct udp_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + __u16 cscov; + __u8 partial_cov; }; -struct dax_device_driver { - struct device_driver drv; - struct list_head ids; - enum dax_driver_type type; - int (*probe)(struct dev_dax *); - void (*remove)(struct dev_dax *); +struct udp_dev_scratch { + u32 _tsize_state; + u16 len; + bool is_linear; + bool csum_unnecessary; }; -typedef struct { - u64 val; -} pfn_t; +struct bpf_iter__udp { + union { + struct bpf_iter_meta *meta; + }; + union { + struct udp_sock *udp_sk; + }; + uid_t uid; + long: 0; + int bucket; +}; -struct dax_operations { - long (*direct_access)(struct dax_device *, unsigned long, long, enum dax_access_mode, void **, pfn_t *); - bool (*dax_supported)(struct dax_device *, struct block_device *, int, sector_t, sector_t); - int (*zero_page_range)(struct dax_device *, unsigned long, size_t); - size_t (*recovery_write)(struct dax_device *, unsigned long, void *, size_t, struct iov_iter *); +struct udp_iter_state { + struct seq_net_private p; + int bucket; }; -struct dev_dax_data { - struct dax_region *dax_region; - struct dev_pagemap *pgmap; - resource_size_t size; - int id; +struct bpf_udp_iter_state { + struct udp_iter_state state; + unsigned int cur_sk; + unsigned int end_sk; + unsigned int max_sk; + int offset; + struct sock **batch; + bool st_bucket_done; }; 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, + UDP_BPF_IPV4 = 0, + UDP_BPF_IPV6 = 1, + UDP_BPF_NUM_PROTS = 2, }; -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 ipv6_sr_hdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 type; + __u8 segments_left; + __u8 first_segment; + __u8 flags; + __u16 tag; + struct in6_addr segments[0]; }; -enum hub_led_mode { - INDICATOR_AUTO = 0, - INDICATOR_CYCLE = 1, - INDICATOR_GREEN_BLINK = 2, - INDICATOR_GREEN_BLINK_OFF = 3, - INDICATOR_AMBER_BLINK = 4, - INDICATOR_AMBER_BLINK_OFF = 5, - INDICATOR_ALT_BLINK = 6, - INDICATOR_ALT_BLINK_OFF = 7, -} __attribute__((mode(byte))); +typedef u32 inet6_ehashfn_t(const struct net *, const struct in6_addr *, const u16, const struct in6_addr *, const __be16); -enum hub_quiescing_type { - HUB_DISCONNECT = 0, - HUB_PRE_RESET = 1, - HUB_SUSPEND = 2, +enum { + SEG6_IPTUNNEL_UNSPEC = 0, + SEG6_IPTUNNEL_SRH = 1, + __SEG6_IPTUNNEL_MAX = 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, +enum { + SEG6_IPTUN_MODE_INLINE = 0, + SEG6_IPTUN_MODE_ENCAP = 1, + SEG6_IPTUN_MODE_L2ENCAP = 2, + SEG6_IPTUN_MODE_ENCAP_RED = 3, + SEG6_IPTUN_MODE_L2ENCAP_RED = 4, }; -struct usb_tt_clear { - struct list_head clear_list; - unsigned int tt; - u16 devinfo; - struct usb_hcd *hcd; - struct usb_host_endpoint *ep; +struct seg6_iptunnel_encap { + int mode; + struct ipv6_sr_hdr srh[0]; }; -struct usb_qualifier_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 bcdUSB; - __u8 bDeviceClass; - __u8 bDeviceSubClass; - __u8 bDeviceProtocol; - __u8 bMaxPacketSize0; - __u8 bNumConfigurations; - __u8 bRESERVED; +struct seg6_lwt { + struct dst_cache cache; + struct seg6_iptunnel_encap tuninfo[0]; }; -struct usbdevfs_hub_portinfo { - char nports; - char port[127]; +struct cache_queue { + struct list_head list; + int reader; }; -struct usb_set_sel_req { - __u8 u1_sel; - __u8 u1_pel; - __le16 u2_sel; - __le16 u2_pel; +struct cache_request { + struct cache_queue q; + struct cache_head *item; + char *buf; + int len; + int readers; }; -struct menu_device { - int needs_update; - int tick_wakeup; - u64 next_timer_ns; - unsigned int bucket; - unsigned int correction_factor[12]; - unsigned int intervals[8]; - int interval_ptr; +struct thread_deferred_req { + struct cache_deferred_req handle; + struct completion completion; }; -struct mmc_fixup { - const char *name; - u64 rev_start; - u64 rev_end; - unsigned int manfid; - unsigned short oemid; - unsigned short year; - unsigned char month; - u16 cis_vendor; - u16 cis_device; - unsigned int ext_csd_rev; - const char *of_compatible; - void (*vendor_fixup)(struct mmc_card *, int); - int data; +struct rpc_inode { + struct inode vfs_inode; + void *private; + struct rpc_pipe *pipe; + wait_queue_head_t waitq; }; -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 cache_reader { + struct cache_queue q; + int offset; }; -struct hid_control_fifo { - unsigned char dir; - struct hid_report *report; - char *raw_report; -}; +typedef int (*lookup_by_table_id_t)(struct net *, u32); -struct hid_output_fifo { - struct hid_report *report; - char *raw_report; +struct l3mdev_handler { + lookup_by_table_id_t dev_lookup; }; -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; +enum l3mdev_type { + L3MDEV_TYPE_UNSPEC = 0, + L3MDEV_TYPE_VRF = 1, + __L3MDEV_TYPE_MAX = 2, }; -struct hid_class_descriptor { - __u8 bDescriptorType; - __le16 wDescriptorLength; -} __attribute__((packed)); +typedef void (*btf_trace_ma_op)(void *, const char *, struct ma_state *); -struct hid_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 bcdHID; - __u8 bCountryCode; - __u8 bNumDescriptors; - struct hid_class_descriptor desc[1]; -} __attribute__((packed)); +typedef void (*btf_trace_ma_read)(void *, const char *, struct ma_state *); -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, -}; +typedef void (*btf_trace_ma_write)(void *, const char *, struct ma_state *, unsigned long, void *); -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 maple_type { + maple_dense = 0, + maple_leaf_64 = 1, + maple_range_64 = 2, + maple_arange_64 = 3, }; -enum { - NETDEV_NLGRP_MGMT = 0, +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]; }; -enum tc_mq_command { - TC_MQ_CREATE = 0, - TC_MQ_DESTROY = 1, - TC_MQ_STATS = 2, - TC_MQ_GRAFT = 3, +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 tc_qopt_offload_stats { - struct gnet_stats_basic_sync *bstats; - struct gnet_stats_queue *qstats; +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 tc_mq_opt_offload_graft_params { - unsigned long queue; - u32 child_handle; +struct maple_pnode; + +struct maple_metadata { + unsigned char end; + unsigned char gap; }; -struct tc_mq_qopt_offload { - enum tc_mq_command command; - u32 handle; +struct maple_range_64 { + struct maple_pnode *parent; + unsigned long pivot[15]; union { - struct tc_qopt_offload_stats stats; - struct tc_mq_opt_offload_graft_params graft_params; + void __attribute__((btf_type_tag("rcu"))) *slot[16]; + struct { + void __attribute__((btf_type_tag("rcu"))) *pad[15]; + struct maple_metadata meta; + }; }; }; -struct mq_sched { - struct Qdisc **qdiscs; +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; }; -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 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 coalesce_reply_data { - struct ethnl_reply_data base; - struct ethtool_coalesce coalesce; - struct kernel_ethtool_coalesce kernel_coalesce; - u32 supported_params; +struct maple_topiary { + struct maple_pnode *parent; + struct maple_enode *next; }; -enum nexthop_event_type { - NEXTHOP_EVENT_DEL = 0, - NEXTHOP_EVENT_REPLACE = 1, - NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, - NEXTHOP_EVENT_BUCKET_REPLACE = 3, +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; }; -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, +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; }; -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, -}; +struct ma_topiary; -enum { - NEXTHOP_GRP_TYPE_MPATH = 0, - NEXTHOP_GRP_TYPE_RES = 1, - __NEXTHOP_GRP_TYPE_MAX = 2, +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; }; -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, +struct ma_topiary { + struct maple_enode *head; + struct maple_enode *tail; + struct maple_tree *mtree; }; -enum { - NHA_RES_BUCKET_UNSPEC = 0, - NHA_RES_BUCKET_PAD = 0, - NHA_RES_BUCKET_INDEX = 1, - NHA_RES_BUCKET_IDLE_TIME = 2, - NHA_RES_BUCKET_NH_ID = 3, - __NHA_RES_BUCKET_MAX = 4, -}; +struct trace_event_data_offsets_ma_op {}; -struct nh_notifier_single_info; +struct trace_event_data_offsets_ma_read {}; -struct nh_notifier_grp_info; +struct trace_event_data_offsets_ma_write {}; -struct nh_notifier_res_table_info; +struct riscv_cpuinfo { + unsigned long mvendorid; + unsigned long marchid; + unsigned long mimpid; +}; -struct nh_notifier_res_bucket_info; +struct pageattr_masks { + pgprot_t set_mask; + pgprot_t clear_mask; +}; -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 errata_info_t { + char name[32]; + bool (*check_func)(unsigned long, unsigned long); }; -struct nh_notifier_single_info { - struct net_device *dev; - u8 gw_family; +struct ptrace_peeksiginfo_args { + __u64 off; + __u32 flags; + __s32 nr; +}; + +struct ptrace_syscall_info { + __u8 op; + __u8 pad[3]; + __u32 arch; + __u64 instruction_pointer; + __u64 stack_pointer; union { - __be32 ipv4; - struct in6_addr ipv6; + struct { + __u64 nr; + __u64 args[6]; + } entry; + struct { + __s64 rval; + __u8 is_error; + } exit; + struct { + __u64 nr; + __u64 args[6]; + __u32 ret_data; + } seccomp; }; - 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 ptrace_rseq_configuration { + __u64 rseq_abi_pointer; + __u32 rseq_abi_size; + __u32 signature; + __u32 flags; + __u32 pad; }; -struct nh_notifier_grp_info { - u16 num_nh; - bool is_fdb; - struct nh_notifier_grp_entry_info nh_entries[0]; +enum sched_tunable_scaling { + SCHED_TUNABLESCALING_NONE = 0, + SCHED_TUNABLESCALING_LOG = 1, + SCHED_TUNABLESCALING_LINEAR = 2, + SCHED_TUNABLESCALING_END = 3, }; -struct nh_notifier_res_table_info { - u16 num_nh_buckets; - struct nh_notifier_single_info nhs[0]; +enum uclamp_id { + UCLAMP_MIN = 0, + UCLAMP_MAX = 1, + UCLAMP_CNT = 2, }; -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; +enum cpu_idle_type { + CPU_IDLE = 0, + CPU_NOT_IDLE = 1, + CPU_NEWLY_IDLE = 2, + CPU_MAX_IDLE_TYPES = 3, }; -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; +enum fbq_type { + regular = 0, + remote = 1, + all = 2, }; -struct nhmsg { - unsigned char nh_family; - unsigned char nh_scope; - unsigned char nh_protocol; - unsigned char resvd; - unsigned int nh_flags; +enum migration_type { + migrate_load = 0, + migrate_util = 1, + migrate_task = 2, + migrate_misfit = 3, }; -struct nexthop_grp { - __u32 id; - __u8 weight; - __u8 resvd1; - __u16 resvd2; +enum group_type { + group_has_spare = 0, + group_fully_busy = 1, + group_misfit_task = 2, + group_smt_balance = 3, + group_asym_packing = 4, + group_imbalanced = 5, + group_overloaded = 6, }; -struct nh_dump_filter { - u32 nh_id; - int dev_idx; - int master_idx; - bool group_filter; - bool fdb_filter; - u32 res_bucket_nh_id; +enum cpu_util_type { + FREQUENCY_UTIL = 0, + ENERGY_UTIL = 1, }; -struct rtm_dump_nh_ctx { - u32 idx; +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 rtm_dump_res_bucket_ctx { - struct rtm_dump_nh_ctx nh; - u16 bucket_index; - u32 done_nh_idx; +struct sg_lb_stats { + unsigned long avg_load; + unsigned long group_load; + unsigned long group_capacity; + unsigned long group_util; + unsigned long group_runnable; + unsigned int sum_nr_running; + unsigned int sum_h_nr_running; + unsigned int idle_cpus; + unsigned int group_weight; + enum group_type group_type; + unsigned int group_asym_packing; + unsigned int group_smt_balance; + unsigned long group_misfit_task_load; }; -struct rtm_dump_nexthop_bucket_data { - struct rtm_dump_res_bucket_ctx *ctx; - struct nh_dump_filter filter; +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; }; -enum tpacket_versions { - TPACKET_V1 = 0, - TPACKET_V2 = 1, - TPACKET_V3 = 2, +struct profile_hit { + u32 pc; + u32 hits; }; -enum packet_sock_flags { - PACKET_SOCK_ORIGDEV = 0, - PACKET_SOCK_AUXDATA = 1, - PACKET_SOCK_TX_HAS_OFF = 2, - PACKET_SOCK_TP_LOSS = 3, - PACKET_SOCK_RUNNING = 4, - PACKET_SOCK_PRESSURE = 5, - PACKET_SOCK_QDISC_BYPASS = 6, -}; +struct k_itimer; -struct tpacket_stats { - unsigned int tp_packets; - unsigned int tp_drops; +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 *); }; -struct tpacket_stats_v3 { - unsigned int tp_packets; - unsigned int tp_drops; - unsigned int tp_freeze_q_cnt; +enum alarmtimer_restart { + ALARMTIMER_NORESTART = 0, + ALARMTIMER_RESTART = 1, }; -union tpacket_stats_u { - struct tpacket_stats stats1; - struct tpacket_stats_v3 stats3; +enum alarmtimer_type { + ALARM_REALTIME = 0, + ALARM_BOOTTIME = 1, + ALARM_NUMTYPE = 2, + ALARM_REALTIME_FREEZER = 3, + ALARM_BOOTTIME_FREEZER = 4, }; -struct pgv; +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 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 cpu_timer { + struct timerqueue_node node; + struct timerqueue_head *head; + struct pid *pid; + struct list_head elist; + int firing; + struct task_struct __attribute__((btf_type_tag("rcu"))) *handling; }; -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; +typedef __kernel_timer_t timer_t; + +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 { - unsigned long *rx_owner_map; - struct tpacket_kbdq_core prb_bdqc; + 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 packet_fanout; - -struct packet_rollover; - -struct packet_mclist; +struct posix_clock; -struct packet_sock { - struct sock sk; - struct packet_fanout *fanout; - union tpacket_stats_u stats; - struct packet_ring_buffer rx_ring; - struct packet_ring_buffer tx_ring; - int copy_thresh; - spinlock_t bind_lock; - struct mutex pg_vec_lock; - unsigned long flags; - int ifindex; - u8 vnet_hdr_sz; - __be16 num; - struct packet_rollover *rollover; - struct packet_mclist *mclist; - atomic_t mapped; - enum tpacket_versions tp_version; - unsigned int tp_hdrlen; - unsigned int tp_reserve; - unsigned int tp_tstamp; - struct completion skb_completion; - struct net_device __attribute__((btf_type_tag("rcu"))) *cached_dev; - long: 64; - long: 64; - struct packet_type prot_hook; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - atomic_t tp_drops; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; +struct posix_clock_context; -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; - long: 64; - long: 64; - long: 64; - long: 64; - 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 posix_clock_operations { + struct module *owner; + int (*clock_adjtime)(struct posix_clock *, struct __kernel_timex *); + int (*clock_gettime)(struct posix_clock *, struct timespec64 *); + int (*clock_getres)(struct posix_clock *, struct timespec64 *); + int (*clock_settime)(struct posix_clock *, const struct timespec64 *); + long (*ioctl)(struct posix_clock_context *, unsigned int, unsigned long); + int (*open)(struct posix_clock_context *, fmode_t); + __poll_t (*poll)(struct posix_clock_context *, struct file *, poll_table *); + int (*release)(struct posix_clock_context *); + ssize_t (*read)(struct posix_clock_context *, uint, char __attribute__((btf_type_tag("user"))) *, size_t); }; -struct pgv { - char *buffer; +struct posix_clock { + struct posix_clock_operations ops; + struct cdev cdev; + struct device *dev; + struct rw_semaphore rwsem; + bool zombie; }; -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 posix_clock_context { + struct posix_clock *clk; + void *private_clkdata; }; -struct packet_mclist { - struct packet_mclist *next; - int ifindex; - int count; - unsigned short type; - unsigned short alen; - unsigned char addr[32]; +struct posix_clock_desc { + struct file *fp; + struct posix_clock *clk; }; -struct tpacket_bd_ts { - unsigned int ts_sec; - union { - unsigned int ts_usec; - unsigned int ts_nsec; - }; +enum freezer_state_flags { + CGROUP_FREEZER_ONLINE = 1, + CGROUP_FREEZING_SELF = 2, + CGROUP_FREEZING_PARENT = 4, + CGROUP_FROZEN = 8, + CGROUP_FREEZING = 6, }; -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; +struct freezer { + struct cgroup_subsys_state css; + unsigned int state; }; -union tpacket_bd_header_u { - struct tpacket_hdr_v1 bh1; +enum { + HASH_SIZE = 128, }; -struct tpacket_block_desc { - __u32 version; - __u32 offset_to_priv; - union tpacket_bd_header_u hdr; +struct audit_node { + struct list_head list; + struct audit_tree *owner; + unsigned int index; }; -struct tpacket_hdr_variant1 { - __u32 tp_rxhash; - __u32 tp_vlan_tci; - __u16 tp_vlan_tpid; - __u16 tp_padding; +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 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 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 sockaddr_ll { - unsigned short sll_family; - __be16 sll_protocol; - int sll_ifindex; - unsigned short sll_hatype; - unsigned char sll_pkttype; - unsigned char sll_halen; - union { - unsigned char sll_addr[8]; - struct { - struct {} __empty_sll_addr_flex; - unsigned char sll_addr_flex[0]; - }; - }; +struct audit_tree_mark { + struct fsnotify_mark mark; + struct audit_chunk *chunk; }; -struct sockaddr_pkt { - unsigned short spkt_family; - unsigned char spkt_device[14]; - __be16 spkt_protocol; +typedef void (*btf_trace_cpu_idle)(void *, unsigned int, unsigned int); + +typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool); + +typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int); + +typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32); + +typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int); + +typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *); + +typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int); + +typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int); + +typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool); + +typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int); + +typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int); + +typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int); + +typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int); + +typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int); + +typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int); + +typedef void (*btf_trace_pm_qos_add_request)(void *, s32); + +typedef void (*btf_trace_pm_qos_update_request)(void *, s32); + +typedef void (*btf_trace_pm_qos_remove_request)(void *, s32); + +typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int); + +typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int); + +typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32); + +typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32); + +typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32); + +typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int); + +struct trace_event_raw_cpu { + struct trace_entry ent; + u32 state; + u32 cpu_id; + char __data[0]; }; -struct packet_skb_cb { - union { - struct sockaddr_pkt pkt; - union { - unsigned int origlen; - struct sockaddr_ll ll; - }; - } sa; +struct trace_event_raw_cpu_idle_miss { + struct trace_entry ent; + u32 cpu_id; + u32 state; + bool below; + char __data[0]; }; -struct virtio_net_hdr { - __u8 flags; - __u8 gso_type; - __virtio16 hdr_len; - __virtio16 gso_size; - __virtio16 csum_start; - __virtio16 csum_offset; +struct trace_event_raw_powernv_throttle { + struct trace_entry ent; + int chip_id; + u32 __data_loc_reason; + int pmax; + char __data[0]; }; -struct sock_skb_cb { - u32 dropcount; +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 tpacket_hdr; +struct trace_event_raw_cpu_frequency_limits { + struct trace_entry ent; + u32 min_freq; + u32 max_freq; + u32 cpu_id; + char __data[0]; +}; -struct tpacket2_hdr; +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]; +}; -union tpacket_uhdr { - struct tpacket_hdr *h1; - struct tpacket2_hdr *h2; - struct tpacket3_hdr *h3; - void *raw; +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 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 trace_event_raw_suspend_resume { + struct trace_entry ent; + const char *action; + int val; + bool start; + char __data[0]; }; -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 trace_event_raw_wakeup_source { + struct trace_entry ent; + u32 __data_loc_name; + u64 state; + char __data[0]; }; -struct virtio_net_hdr_mrg_rxbuf { - struct virtio_net_hdr hdr; - __virtio16 num_buffers; +struct trace_event_raw_clock { + struct trace_entry ent; + u32 __data_loc_name; + u64 state; + u64 cpu_id; + char __data[0]; }; -struct tpacket_req { - unsigned int tp_block_size; - unsigned int tp_block_nr; - unsigned int tp_frame_size; - unsigned int tp_frame_nr; +struct trace_event_raw_power_domain { + struct trace_entry ent; + u32 __data_loc_name; + u64 state; + u64 cpu_id; + char __data[0]; }; -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; +struct trace_event_raw_cpu_latency_qos_request { + struct trace_entry ent; + s32 value; + char __data[0]; }; -union tpacket_req_u { - struct tpacket_req req; - struct tpacket_req3 req3; +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 packet_mreq_max { - int mr_ifindex; - unsigned short mr_type; - unsigned short mr_alen; - unsigned char mr_address[32]; +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 fanout_args { - __u16 id; - __u16 type_flags; - __u32 max_num_members; +struct trace_event_raw_guest_halt_poll_ns { + struct trace_entry ent; + bool grow; + unsigned int new; + unsigned int old; + char __data[0]; }; -struct tpacket_rollover_stats { - __u64 tp_all; - __u64 tp_huge; - __u64 tp_failed; +struct trace_event_data_offsets_powernv_throttle { + u32 reason; }; -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 trace_event_data_offsets_device_pm_callback_end { + u32 device; + u32 driver; }; -enum handshake_msg_type { - HANDSHAKE_MSG_TYPE_UNSPEC = 0, - HANDSHAKE_MSG_TYPE_CLIENTHELLO = 1, - HANDSHAKE_MSG_TYPE_SERVERHELLO = 2, +struct trace_event_data_offsets_wakeup_source { + u32 name; }; -enum handshake_auth { - HANDSHAKE_AUTH_UNSPEC = 0, - HANDSHAKE_AUTH_UNAUTH = 1, - HANDSHAKE_AUTH_PSK = 2, - HANDSHAKE_AUTH_X509 = 3, +struct trace_event_data_offsets_clock { + u32 name; }; -enum { - TLS_NO_KEYRING = 0, - TLS_NO_PEERID = 0, - TLS_NO_CERT = 0, - TLS_NO_PRIVKEY = 0, +struct trace_event_data_offsets_power_domain { + u32 name; }; -enum { - HANDSHAKE_A_X509_CERT = 1, - HANDSHAKE_A_X509_PRIVKEY = 2, - __HANDSHAKE_A_X509_MAX = 3, - HANDSHAKE_A_X509_MAX = 2, +struct trace_event_data_offsets_dev_pm_qos_request { + u32 name; }; -struct tls_handshake_req { - void (*th_consumer_done)(void *, int, key_serial_t); - void *th_consumer_data; - int th_type; - unsigned int th_timeout_ms; - int th_auth_mode; - const char *th_peername; - key_serial_t th_keyring; - key_serial_t th_certificate; - key_serial_t th_privkey; - unsigned int th_num_peerids; - key_serial_t th_peerid[5]; +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; }; -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, +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_queue_stack { + struct bpf_map map; + raw_spinlock_t lock; + u32 head; + u32 tail; + u32 size; + long: 0; + char elements[0]; + long: 64; + long: 64; + long: 64; }; -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 bpf_tuple { + struct bpf_prog *prog; + struct bpf_link *link; }; -struct sys_off_data; +typedef void (*btf_trace_kmem_cache_alloc)(void *, unsigned long, const void *, struct kmem_cache *, gfp_t, int); -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; +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; }; -struct sys_off_data { - int mode; - void *cb_data; - const char *cmd; +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 ipi_mux_cpu { - atomic_t enable; - atomic_t bits; +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]; }; -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 trace_event_raw_kfree { + struct trace_entry ent; + unsigned long call_site; + const void *ptr; + char __data[0]; }; -enum freezer_state_flags { - CGROUP_FREEZER_ONLINE = 1, - CGROUP_FREEZING_SELF = 2, - CGROUP_FREEZING_PARENT = 4, - CGROUP_FROZEN = 8, - CGROUP_FREEZING = 6, +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 freezer { - struct cgroup_subsys_state css; - unsigned int state; +struct trace_event_raw_mm_page_free { + struct trace_entry ent; + unsigned long pfn; + unsigned int order; + char __data[0]; }; -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, +struct trace_event_raw_mm_page_free_batched { + struct trace_entry ent; + unsigned long pfn; + char __data[0]; }; -enum { - FTRACE_HASH_FL_MOD = 1, +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]; }; -enum { - FLAGS_FILL_FULL = 268435456, - FLAGS_FILL_START = 536870912, - FLAGS_FILL_END = 805306368, +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 fgraph_cpu_data { - pid_t last_pid; - int depth; - int depth_irq; - int ignore; - unsigned long enter_funcs[50]; +struct trace_event_raw_mm_page_pcpu_drain { + struct trace_entry ent; + unsigned long pfn; + unsigned int order; + int migratetype; + char __data[0]; }; -struct ftrace_graph_ent_entry { +struct trace_event_raw_mm_page_alloc_extfrag { struct trace_entry ent; - struct ftrace_graph_ent graph_ent; + unsigned long pfn; + int alloc_order; + int fallback_order; + int alloc_migratetype; + int fallback_migratetype; + int change_ownership; + char __data[0]; }; -struct ftrace_graph_ret_entry { +struct trace_event_raw_rss_stat { struct trace_entry ent; - struct ftrace_graph_ret ret; + unsigned int mm_id; + unsigned int curr; + int member; + long size; + char __data[0]; }; -struct ftrace_func_entry { - struct hlist_node hlist; - unsigned long ip; - unsigned long direct; +struct trace_event_data_offsets_kmem_cache_free { + u32 name; }; -struct fgraph_data { - struct fgraph_cpu_data __attribute__((btf_type_tag("percpu"))) *cpu_data; - struct ftrace_graph_ent_entry ent; - struct ftrace_graph_ret_entry ret; - int failed; - int cpu; - long: 0; -} __attribute__((packed)); +struct trace_event_data_offsets_kmem_cache_alloc {}; -struct mmap_unlock_irq_work { - struct irq_work irq_work; - struct mm_struct *mm; -}; +struct trace_event_data_offsets_kmalloc {}; -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, -}; +struct trace_event_data_offsets_kfree {}; -typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64); +struct trace_event_data_offsets_mm_page_free {}; -struct bpf_iter__task { - union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; -}; +struct trace_event_data_offsets_mm_page_free_batched {}; -struct bpf_iter_seq_task_common { - struct pid_namespace *ns; - enum bpf_iter_task_type type; - u32 pid; - u32 pid_visiting; -}; +struct trace_event_data_offsets_mm_page_alloc {}; -struct bpf_iter__task_file { - union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; - u32 fd; - union { - struct file *file; - }; +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 {}; + +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 bpf_iter_seq_task_file_info { - struct bpf_iter_seq_task_common common; - struct task_struct *task; - u32 tid; - u32 fd; +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 bpf_iter__task_vma { - union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; - union { - struct vm_area_struct *vma; - }; +struct mmu_interval_notifier_ops { + bool (*invalidate)(struct mmu_interval_notifier *, const struct mmu_notifier_range *, unsigned long); }; -struct bpf_iter_seq_task_vma_info { - struct bpf_iter_seq_task_common common; - struct task_struct *task; +struct pgtable_debug_args { struct mm_struct *mm; struct vm_area_struct *vma; - u32 tid; - unsigned long prev_vm_start; - unsigned long prev_vm_end; + pgd_t *pgdp; + p4d_t *p4dp; + pud_t *pudp; + pmd_t *pmdp; + pte_t *ptep; + p4d_t *start_p4dp; + pud_t *start_pudp; + pmd_t *start_pmdp; + pgtable_t start_ptep; + unsigned long vaddr; + pgprot_t page_prot; + pgprot_t page_prot_none; + bool is_contiguous_page; + unsigned long pud_pfn; + unsigned long pmd_pfn; + unsigned long pte_pfn; + unsigned long fixed_alignment; + unsigned long fixed_pgd_pfn; + unsigned long fixed_p4d_pfn; + unsigned long fixed_pud_pfn; + unsigned long fixed_pmd_pfn; + unsigned long fixed_pte_pfn; }; -struct bpf_iter_seq_task_info { - struct bpf_iter_seq_task_common common; - u32 tid; +enum umount_tree_flags { + UMOUNT_SYNC = 1, + UMOUNT_PROPAGATE = 2, + UMOUNT_CONNECTED = 4, }; -enum { - REGION_INTERSECTS = 0, - REGION_DISJOINT = 1, - REGION_MIXED = 2, +enum mnt_tree_flags_t { + MNT_TREE_MOVE = 1, + MNT_TREE_BENEATH = 2, }; -struct swap_extent { - struct rb_node rb_node; - unsigned long start_page; - unsigned long nr_pages; - sector_t start_block; +struct mount_attr { + __u64 attr_set; + __u64 attr_clr; + __u64 propagation; + __u64 userns_fd; }; -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 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 proc_mounts { + struct mnt_namespace *ns; + struct path root; + int (*show)(struct seq_file *, struct vfsmount *); + struct mount cursor; }; struct iomap_dio { @@ -83284,7 +89818,6 @@ struct iomap_dio { struct { struct iov_iter *iter; struct task_struct *waiter; - struct bio *poll_bio; } submit; struct { struct work_struct work; @@ -83292,11813 +89825,11882 @@ struct iomap_dio { }; }; -struct fat_floppy_defaults { - unsigned int nr_sectors; - unsigned int sec_per_clus; - unsigned int dir_entries; - unsigned int media; - unsigned int fat_length; +struct kernfs_global_locks { + struct mutex open_file_mutex[1024]; }; -enum { - Opt_check_n = 0, - Opt_check_r___2 = 1, - Opt_check_s___2 = 2, - Opt_uid___7 = 3, - Opt_gid___7 = 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___2 = 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___7 = 41, - Opt_dos1xfloppy = 42, +typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t); + +typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *); + +typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int); + +typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *); + +typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int); + +typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); + +typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, unsigned long); + +typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); + +typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int); + +typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int); + +typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); + +typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, unsigned long, struct writeback_control *); + +typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); + +typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); + +typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *); + +typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *); + +typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t); + +typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t); + +typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, unsigned long long, unsigned long long); + +struct ext4_allocation_context; + +struct ext4_prealloc_space; + +typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); + +struct ext4_free_extent { + ext4_lblk_t fe_logical; + ext4_grpblk_t fe_start; + ext4_group_t fe_group; + ext4_grpblk_t fe_len; +}; + +struct ext4_allocation_context { + struct inode *ac_inode; + struct super_block *ac_sb; + struct ext4_free_extent ac_o_ex; + struct ext4_free_extent ac_g_ex; + struct ext4_free_extent ac_b_ex; + struct ext4_free_extent ac_f_ex; + ext4_grpblk_t ac_orig_goal_len; + __u32 ac_groups_considered; + __u32 ac_flags; + __u16 ac_groups_scanned; + __u16 ac_groups_linear_remaining; + __u16 ac_found; + __u16 ac_cX_found[5]; + __u16 ac_tail; + __u16 ac_buddy; + __u8 ac_status; + __u8 ac_criteria; + __u8 ac_2order; + __u8 ac_op; + struct page *ac_bitmap_page; + struct page *ac_buddy_page; + struct ext4_prealloc_space *ac_pa; + struct ext4_locality_group *ac_lg; +}; + +struct ext4_prealloc_space { + union { + struct rb_node inode_node; + struct list_head lg_list; + } pa_node; + struct list_head pa_group_list; + union { + struct list_head pa_tmp_list; + struct callback_head pa_rcu; + } u; + spinlock_t pa_lock; + atomic_t pa_count; + unsigned int pa_deleted; + ext4_fsblk_t pa_pstart; + ext4_lblk_t pa_lstart; + ext4_grpblk_t pa_len; + ext4_grpblk_t pa_free; + unsigned short pa_type; + union { + rwlock_t *inode_lock; + spinlock_t *lg_lock; + } pa_node_lock; + struct inode *pa_inode; }; -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 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); -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 void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, unsigned long); -struct nfs_referral_count { - struct list_head list; - const struct task_struct *task; - unsigned int referral_count; -}; +typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -struct ipc_proc_iface { - const char *path; - const char *header; - int ids; - int (*show)(struct seq_file *, void *); -}; +typedef void (*btf_trace_ext4_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -struct ipc_proc_iter { - struct ipc_namespace *ns; - struct pid_namespace *pid_ns; - struct ipc_proc_iface *iface; -}; +typedef void (*btf_trace_ext4_ext_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t); -struct crypto_istat_akcipher { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t verify_cnt; - atomic64_t sign_cnt; - atomic64_t err_cnt; -}; +typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int); -struct blk_rq_stat; +typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, unsigned short); -struct blk_stat_callback { - struct list_head list; - struct timer_list timer; - struct blk_rq_stat __attribute__((btf_type_tag("percpu"))) *cpu_stat; - int (*bucket_fn)(const struct request *); - unsigned int buckets; - struct blk_rq_stat *stat; - void (*timer_fn)(struct blk_stat_callback *); - void *data; - struct callback_head rcu; -}; +struct partial_cluster; -struct blk_rq_stat { - u64 mean; - u64 min; - u64 max; - u32 nr_samples; - u64 batch; -}; +typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); -struct blk_queue_stats { - struct list_head callbacks; - spinlock_t lock; - int accounting; +struct partial_cluster { + ext4_fsblk_t pclu; + ext4_lblk_t lblk; + enum { + initial = 0, + tofree = 1, + nofree = 2, + } state; }; -struct io_rename { - struct file *file; - int old_dfd; - int new_dfd; - struct filename *oldpath; - struct filename *newpath; - int flags; -}; +typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *); -struct io_unlink { - struct file *file; - int dfd; - int flags; - struct filename *filename; -}; +typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); -struct io_mkdir { - struct file *file; - int dfd; - umode_t mode; - struct filename *filename; -}; +typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int); -struct io_link { - struct file *file; - int old_dfd; - int new_dfd; - struct filename *oldpath; - struct filename *newpath; - int flags; -}; +typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16); -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, -}; +typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *); -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; -}; +typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *); -struct assoc_array_delete_collapse_context { - struct assoc_array_node *node; - const void *skip_leaf; - int slot; -}; +typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t); -typedef struct { - ZSTD_entropyCTables_t entropy; - U32 rep[3]; -} ZSTD_compressedBlockState_t; +typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t); -typedef struct { - symbolEncodingType_e hType; - BYTE hufDesBuffer[128]; - size_t hufDesSize; -} ZSTD_hufCTablesMetadata_t; +typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *); -typedef struct { - symbolEncodingType_e llType; - symbolEncodingType_e ofType; - symbolEncodingType_e mlType; - BYTE fseTablesBuffer[133]; - size_t fseTablesSize; - size_t lastCountSize; -} ZSTD_fseCTablesMetadata_t; +typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t); -typedef struct { - ZSTD_hufCTablesMetadata_t hufMetadata; - ZSTD_fseCTablesMetadata_t fseMetadata; -} ZSTD_entropyCTablesMetadata_t; +typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int); -typedef struct { - int contentSizeFlag; - int checksumFlag; - int noDictIDFlag; -} ZSTD_frameParameters; +typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int); -typedef enum { - ZSTD_dictDefaultAttach = 0, - ZSTD_dictForceAttach = 1, - ZSTD_dictForceCopy = 2, - ZSTD_dictForceLoad = 3, -} ZSTD_dictAttachPref_e; +typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int); -typedef struct { - ZSTD_paramSwitch_e enableLdm; - U32 hashLog; - U32 bucketSizeLog; - U32 minMatchLength; - U32 hashRateLog; - U32 windowLog; -} ldmParams_t; +typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int); -typedef enum { - ZSTD_sf_noBlockDelimiters = 0, - ZSTD_sf_explicitBlockDelimiters = 1, -} ZSTD_sequenceFormat_e; +typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); -struct ZSTD_CCtx_params_s { - ZSTD_format_e format; - ZSTD_compressionParameters cParams; - ZSTD_frameParameters fParams; - int compressionLevel; - int forceWindow; - size_t targetCBlockSize; - int srcSizeHint; - ZSTD_dictAttachPref_e attachDictPref; - ZSTD_paramSwitch_e literalCompressionMode; - int nbWorkers; - size_t jobSize; - int overlapLog; - int rsyncable; - ldmParams_t ldmParams; - int enableDedicatedDictSearch; - ZSTD_bufferMode_e inBufferMode; - ZSTD_bufferMode_e outBufferMode; - ZSTD_sequenceFormat_e blockDelimiters; - int validateSequences; - ZSTD_paramSwitch_e useBlockSplitter; - ZSTD_paramSwitch_e useRowMatchFinder; - int deterministicRefPrefix; - ZSTD_customMem customMem; -}; +typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t); -typedef struct ZSTD_CCtx_params_s ZSTD_CCtx_params; +typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int); -struct repcodes_s { - U32 rep[3]; +typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool); + +typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64); + +typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); + +typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64); + +struct ext4_fsmap; + +typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *); + +struct ext4_fsmap { + struct list_head fmr_list; + dev_t fmr_device; + uint32_t fmr_flags; + uint64_t fmr_physical; + uint64_t fmr_owner; + uint64_t fmr_length; }; -typedef struct repcodes_s repcodes_t; +typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); -typedef struct { - U32 litLength; - U32 matchLength; -} ZSTD_sequenceLength; +typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *); -typedef enum { - ZSTDcs_created = 0, - ZSTDcs_init = 1, - ZSTDcs_ongoing = 2, - ZSTDcs_ending = 3, -} ZSTD_compressionStage_e; +typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, unsigned long); -typedef enum { - ZSTD_cwksp_alloc_objects = 0, - ZSTD_cwksp_alloc_buffers = 1, - ZSTD_cwksp_alloc_aligned = 2, -} ZSTD_cwksp_alloc_phase_e; +typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); -typedef enum { - ZSTD_cwksp_dynamic_alloc = 0, - ZSTD_cwksp_static_alloc = 1, -} ZSTD_cwksp_static_alloc_e; +typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); -typedef struct { - void *workspace; - void *workspaceEnd; - void *objectEnd; - void *tableEnd; - void *tableValidEnd; - void *allocStart; - BYTE allocFailed; - int workspaceOversizedDuration; - ZSTD_cwksp_alloc_phase_e phase; - ZSTD_cwksp_static_alloc_e isStatic; -} ZSTD_cwksp; +typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t); -struct POOL_ctx_s; +typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); -typedef struct POOL_ctx_s ZSTD_threadPool; +typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int); -typedef struct { - unsigned int offset; - unsigned int litLength; - unsigned int matchLength; - unsigned int rep; -} ZSTD_Sequence; +typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *, tid_t); -typedef struct { - int collectSequences; - ZSTD_Sequence *seqStart; - size_t seqIndex; - size_t maxSequences; -} SeqCollector; +typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int, tid_t); -typedef struct { - U32 offset; - U32 checksum; -} ldmEntry_t; +typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *); -typedef struct { - const BYTE *split; - U32 hash; - U32 checksum; - ldmEntry_t *bucket; -} ldmMatchCandidate_t; +typedef void (*btf_trace_ext4_fc_track_create)(void *, handle_t *, struct inode *, struct dentry *, int); -typedef struct { - ZSTD_window_t window; - ldmEntry_t *hashTable; - U32 loadedDictEnd; - BYTE *bucketOffsets; - size_t splitIndices[64]; - ldmMatchCandidate_t matchCandidates[64]; -} ldmState_t; +typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int); -typedef struct { - ZSTD_compressedBlockState_t *prevCBlock; - ZSTD_compressedBlockState_t *nextCBlock; - ZSTD_matchState_t matchState; -} ZSTD_blockState_t; +typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int); -typedef enum { - ZSTDb_not_buffered = 0, - ZSTDb_buffered = 1, -} ZSTD_buffered_policy_e; +typedef void (*btf_trace_ext4_fc_track_inode)(void *, handle_t *, struct inode *, int); -typedef enum { - zcss_init = 0, - zcss_load = 1, - zcss_flush = 2, -} ZSTD_cStreamStage; +typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long, long, int); -typedef enum { - ZSTD_dct_auto = 0, - ZSTD_dct_rawContent = 1, - ZSTD_dct_fullDict = 2, -} ZSTD_dictContentType_e; +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 { + 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___2 = 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___2 = 32, + Opt_noquota = 33, + Opt_barrier = 34, + Opt_nobarrier = 35, + Opt_err___4 = 36, + Opt_usrquota___2 = 37, + Opt_grpquota___2 = 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 = 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, +}; + +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 ZSTD_CDict_s; +struct trace_event_raw_ext4_drop_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int drop; + char __data[0]; +}; -typedef struct ZSTD_CDict_s ZSTD_CDict; +struct trace_event_raw_ext4_nfs_commit_metadata { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; +}; -typedef struct { - void *dictBuffer; - const void *dict; - size_t dictSize; - ZSTD_dictContentType_e dictContentType; - ZSTD_CDict *cdict; -} ZSTD_localDict; +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 ZSTD_prefixDict_s { - const void *dict; - size_t dictSize; - ZSTD_dictContentType_e dictContentType; +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]; }; -typedef struct ZSTD_prefixDict_s ZSTD_prefixDict; +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]; +}; -typedef struct { - seqStore_t fullSeqStoreChunk; - seqStore_t firstHalfSeqStore; - seqStore_t secondHalfSeqStore; - seqStore_t currSeqStore; - seqStore_t nextSeqStore; - U32 partitions[196]; - ZSTD_entropyCTablesMetadata_t entropyMetadata; -} ZSTD_blockSplitCtx; +struct 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 ZSTD_CCtx_s { - ZSTD_compressionStage_e stage; - int cParamsChanged; - int bmi2; - ZSTD_CCtx_params requestedParams; - ZSTD_CCtx_params appliedParams; - ZSTD_CCtx_params simpleApiParams; - U32 dictID; - size_t dictContentSize; - ZSTD_cwksp workspace; - size_t blockSize; - unsigned long long pledgedSrcSizePlusOne; - unsigned long long consumedSrcSize; - unsigned long long producedCSize; - struct xxh64_state xxhState; - ZSTD_customMem customMem; - ZSTD_threadPool *pool; - size_t staticSize; - SeqCollector seqCollector; - int isFirstBlock; - int initialized; - seqStore_t seqStore; - ldmState_t ldmState; - rawSeq *ldmSequences; - size_t maxNbLdmSequences; - rawSeqStore_t externSeqStore; - ZSTD_blockState_t blockState; - U32 *entropyWorkspace; - ZSTD_buffered_policy_e bufferedPolicy; - char *inBuff; - size_t inBuffSize; - size_t inToCompress; - size_t inBuffPos; - size_t inBuffTarget; - char *outBuff; - size_t outBuffSize; - size_t outBuffContentSize; - size_t outBuffFlushedSize; - ZSTD_cStreamStage streamStage; - U32 frameEnded; - ZSTD_inBuffer expectedInBuffer; - size_t expectedOutBufferSize; - ZSTD_localDict localDict; - const ZSTD_CDict *cdict; - ZSTD_prefixDict prefixDict; - ZSTD_blockSplitCtx blockSplitCtx; +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]; }; -typedef struct ZSTD_CCtx_s ZSTD_CCtx; +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 ZSTD_CDict_s { - const void *dictContent; - size_t dictContentSize; - ZSTD_dictContentType_e dictContentType; - U32 *entropyWorkspace; - ZSTD_cwksp workspace; - ZSTD_matchState_t matchState; - ZSTD_compressedBlockState_t cBlockState; - ZSTD_customMem customMem; - U32 dictID; - int compressionLevel; - ZSTD_paramSwitch_e useRowMatchFinder; +struct 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]; }; -typedef uint64_t vli_type; +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 xz_dec_hash { - vli_type unpadded; - vli_type uncompressed; - uint32_t crc32; +struct trace_event_raw_ext4__folio_op { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long index; + char __data[0]; }; -enum xz_check { - XZ_CHECK_NONE = 0, - XZ_CHECK_CRC32 = 1, - XZ_CHECK_CRC64 = 4, - XZ_CHECK_SHA256 = 10, +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 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; +struct trace_event_raw_ext4_discard_blocks { + struct trace_entry ent; + dev_t dev; + __u64 blk; + __u64 count; + char __data[0]; }; -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; +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 plic_priv; +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 plic_handler { - bool present; - void *hart_base; - raw_spinlock_t enable_lock; - void *enable_base; - u32 *enable_save; - struct plic_priv *priv; +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 plic_priv { - struct cpumask lmask; - struct irq_domain *irqdomain; - void *regs; - unsigned long plic_quirks; - unsigned int nr_irqs; - unsigned long *prio_save; +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 fb_cmap_user { - __u32 start; - __u32 len; - __u16 __attribute__((btf_type_tag("user"))) *red; - __u16 __attribute__((btf_type_tag("user"))) *green; - __u16 __attribute__((btf_type_tag("user"))) *blue; - __u16 __attribute__((btf_type_tag("user"))) *transp; +struct trace_event_raw_ext4_mb_discard_preallocations { + struct trace_entry ent; + dev_t dev; + int needed; + char __data[0]; }; -struct apd_device_desc; +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 apd_private_data { - struct clk *clk; - struct acpi_device *adev; - const struct apd_device_desc *dev_desc; +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 apd_device_desc { - unsigned int fixed_clk_rate; - struct property_entry *properties; - int (*setup)(struct apd_private_data *); +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 clk_lookup { - struct list_head node; - const char *dev_id; - const char *con_id; - struct clk *clk; - struct clk_hw *clk_hw; +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 clk_lookup_alloc { - struct clk_lookup cl; - char dev_id[20]; - char con_id[16]; +struct trace_event_raw_ext4_sync_file_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + char __data[0]; }; -struct sunxi_ccu_desc { - struct ccu_common **ccu_clks; - unsigned long num_ccu_clks; - struct clk_hw_onecell_data *hw_clks; - struct ccu_reset_map *resets; - unsigned long num_resets; +struct trace_event_raw_ext4_sync_fs { + struct trace_entry ent; + dev_t dev; + int wait; + char __data[0]; }; -struct clk_fixed_factor { - struct clk_hw hw; - unsigned int mult; - unsigned int div; +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 ccu_mp { - u32 enable; - struct ccu_div_internal m; - struct ccu_div_internal p; - struct ccu_mux_internal mux; - unsigned int fixed_post_div; - struct ccu_common common; +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 ldsem_waiter { - struct list_head list; - struct task_struct *task; +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 timer_rand_state { - unsigned long last_time; - long last_delta; - long last_delta2; +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]; }; -enum { - CRNG_EMPTY = 0, - CRNG_EARLY = 1, - CRNG_READY = 2, +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 batch_u8 { - u8 entropy[96]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +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 batch_u16 { - u16 entropy[48]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +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 batch_u32 { - u32 entropy[24]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +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 batch_u64 { - u64 entropy[12]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +struct trace_event_raw_ext4__bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + char __data[0]; }; -struct crng { - u8 key[32]; - unsigned long generation; - local_lock_t lock; +struct trace_event_raw_ext4_read_block_bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + bool prefetch; + char __data[0]; }; -struct fast_pool { - unsigned long pool[4]; - unsigned long last; - unsigned int count; - struct timer_list mix; +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]; }; -enum { - MIX_INFLIGHT = 2147483648, +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]; }; -enum chacha_constants { - CHACHA_CONSTANT_EXPA = 1634760805, - CHACHA_CONSTANT_ND_3 = 857760878, - CHACHA_CONSTANT_2_BY = 2036477234, - CHACHA_CONSTANT_TE_K = 1797285236, +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]; }; -enum { - POOL_BITS = 256, - POOL_READY_BITS = 256, - POOL_EARLY_BITS = 128, +struct trace_event_raw_ext4_unlink_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + char __data[0]; }; -enum { - CRNG_RESEED_START_INTERVAL = 250, - CRNG_RESEED_INTERVAL = 15000, +struct trace_event_raw_ext4__truncate { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 blocks; + char __data[0]; }; -enum { - NUM_TRIAL_SAMPLES = 8192, - MAX_SAMPLES_PER_BIT = 16, +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 entropy_timer_state { - unsigned long entropy; - struct timer_list timer; - atomic_t samples; - unsigned int samples_per_bit; +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 soc_device { - struct device dev; - struct soc_device_attribute *attr; - int soc_dev_num; +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 nd_device_driver { - struct device_driver drv; - unsigned long type; - int (*probe)(struct device *); - void (*remove)(struct device *); - void (*shutdown)(struct device *); - void (*notify)(struct device *, enum nvdimm_event); +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 pmem_device { - phys_addr_t phys_addr; - phys_addr_t data_offset; - u64 pfn_flags; - void *virt_addr; - size_t size; - u32 pfn_pad; - struct kernfs_node *bb_state; - struct badblocks bb; - struct dax_device *dax_dev; - struct gendisk *disk; - struct dev_pagemap pgmap; +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 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 trace_event_raw_ext4_load_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; }; -struct mmc_driver { - struct device_driver drv; - int (*probe)(struct mmc_card *); - void (*remove)(struct mmc_card *); - void (*shutdown)(struct mmc_card *); +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 virtio_crypto_akcipher_algo { - uint32_t algonum; - uint32_t service; - unsigned int active_devs; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct akcipher_alg algo; +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 virtio_crypto_akcipher_ctx; - -struct virtio_crypto_akcipher_request { - struct virtio_crypto_request base; - struct virtio_crypto_akcipher_ctx *akcipher_ctx; - struct akcipher_request *akcipher_req; - void *src_buf; - void *dst_buf; - uint32_t opcode; +struct trace_event_raw_ext4_journal_start_reserved { + struct trace_entry ent; + dev_t dev; + unsigned long ip; + int blocks; + char __data[0]; }; -struct virtio_crypto_rsa_ctx { - MPI n; +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 virtio_crypto_akcipher_ctx { - struct crypto_engine_ctx enginectx; - struct virtio_crypto *vcrypto; - struct crypto_akcipher *tfm; - bool session_valid; - __u64 session_id; - union { - struct virtio_crypto_rsa_ctx rsa_ctx; - }; +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 drop_reason_list { - const char * const *reasons; - size_t n_reasons; +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 page_frag_cache { - void *va; - __u16 offset; - __u16 size; - unsigned int pagecnt_bias; - bool pfmemalloc; +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 page_frag_1k { - void *va; - u16 offset; - bool pfmemalloc; +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 napi_alloc_cache { - struct page_frag_cache page; - struct page_frag_1k page_small; - unsigned int skb_count; - void *skb_cache[64]; +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]; }; -enum skb_drop_reason_subsys { - SKB_DROP_REASON_SUBSYS_CORE = 0, - SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1, - SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR = 2, - SKB_DROP_REASON_SUBSYS_NUM = 3, +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 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 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 ip_auth_hdr { - __u8 nexthdr; - __u8 hdrlen; - __be16 reserved; - __be32 spi; - __be32 seq_no; - __u8 auth_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 mpls_shim_hdr { - __be32 label_stack_entry; +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 skb_free_array { - unsigned int skb_count; - void *skb_array[16]; +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]; }; -typedef int (*sendmsg_func)(struct sock *, struct msghdr *); - -struct ts_ops; +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 ts_state; +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 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 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 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 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 ts_state { - unsigned int offset; - char cb[48]; +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]; }; -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 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 wol_reply_data { - struct ethnl_reply_data base; - struct ethtool_wolinfo wol; - bool show_sopass; +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 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 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 xfrm_migrate; +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 xfrm_kmaddress; +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 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 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 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 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 xfrm_kmaddress { - xfrm_address_t local; - xfrm_address_t remote; - u32 reserved; - u16 family; +struct trace_event_raw_ext4_shutdown { + struct trace_entry ent; + dev_t dev; + unsigned int flags; + char __data[0]; }; -struct xfrmk_sadinfo { - u32 sadhcnt; - u32 sadhmcnt; - u32 sadcnt; +struct trace_event_raw_ext4_error { + struct trace_entry ent; + dev_t dev; + const char *function; + unsigned int line; + char __data[0]; }; -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 trace_event_raw_ext4_prefetch_bitmaps { + struct trace_entry ent; + dev_t dev; + __u32 group; + __u32 next; + __u32 ios; + char __data[0]; }; -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 trace_event_raw_ext4_lazy_itable_init { + struct trace_entry ent; + dev_t dev; + __u32 group; + char __data[0]; }; -struct xfrm_input_afinfo { - u8 family; - bool is_ipip; - int (*callback)(struct sk_buff *, u8, int); +struct trace_event_raw_ext4_fc_replay_scan { + struct trace_entry ent; + dev_t dev; + int error; + int off; + char __data[0]; }; -enum { - SVC_HANDSHAKE_TO = 1250, +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]; }; -union efi_device_path_from_text_protocol { - struct { - efi_device_path_protocol_t * (*convert_text_to_device_node)(const efi_char16_t *); - efi_device_path_protocol_t * (*convert_text_to_device_path)(const efi_char16_t *); - }; - struct { - u32 convert_text_to_device_node; - u32 convert_text_to_device_path; - } mixed_mode; +struct trace_event_raw_ext4_fc_commit_start { + struct trace_entry ent; + dev_t dev; + tid_t tid; + char __data[0]; }; -typedef union efi_device_path_from_text_protocol efi_device_path_from_text_protocol_t; - -struct efi_file_path_dev_path { - struct efi_generic_dev_path header; - efi_char16_t filename[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]; }; -union efi_file_protocol; +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]; +}; -typedef union efi_file_protocol efi_file_protocol_t; +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]; +}; -union efi_file_protocol { - struct { - u64 revision; - efi_status_t (*open)(efi_file_protocol_t *, efi_file_protocol_t **, efi_char16_t *, u64, u64); - efi_status_t (*close)(efi_file_protocol_t *); - efi_status_t (*delete)(efi_file_protocol_t *); - efi_status_t (*read)(efi_file_protocol_t *, unsigned long *, void *); - efi_status_t (*write)(efi_file_protocol_t *, unsigned long, void *); - efi_status_t (*get_position)(efi_file_protocol_t *, u64 *); - efi_status_t (*set_position)(efi_file_protocol_t *, u64); - efi_status_t (*get_info)(efi_file_protocol_t *, efi_guid_t *, unsigned long *, void *); - efi_status_t (*set_info)(efi_file_protocol_t *, efi_guid_t *, unsigned long, void *); - efi_status_t (*flush)(efi_file_protocol_t *); - }; - struct { - u64 revision; - u32 open; - u32 close; - u32 delete; - u32 read; - u32 write; - u32 get_position; - u32 set_position; - u32 get_info; - u32 set_info; - u32 flush; - } mixed_mode; +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]; }; -typedef struct { - u64 size; - u64 file_size; - u64 phys_size; - efi_time_t create_time; - efi_time_t last_access_time; - efi_time_t modification_time; - __u64 attribute; - efi_char16_t filename[0]; -} efi_file_info_t; +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 finfo { - efi_file_info_t info; - efi_char16_t filename[256]; +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]; }; -union efi_simple_file_system_protocol; +struct trace_event_raw_ext4_update_sb { + struct trace_entry ent; + dev_t dev; + ext4_fsblk_t fsblk; + unsigned int flags; + char __data[0]; +}; -typedef union efi_simple_file_system_protocol efi_simple_file_system_protocol_t; +struct ext4_journal_cb_entry { + struct list_head jce_list; + void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); +}; -union efi_simple_file_system_protocol { - struct { - u64 revision; - efi_status_t (*open_volume)(efi_simple_file_system_protocol_t *, efi_file_protocol_t **); - }; - struct { - u64 revision; - u32 open_volume; - } mixed_mode; +struct ext4_fs_context { + char *s_qf_names[3]; + struct fscrypt_dummy_policy dummy_enc_policy; + int s_jquota_fmt; + unsigned short qname_spec; + unsigned long vals_s_flags; + unsigned long mask_s_flags; + unsigned long journal_devnum; + unsigned long s_commit_interval; + unsigned long s_stripe; + unsigned int s_inode_readahead_blks; + unsigned int s_want_extra_isize; + unsigned int s_li_wait_mult; + unsigned int s_max_dir_size_kb; + unsigned int journal_ioprio; + unsigned int vals_s_mount_opt; + unsigned int mask_s_mount_opt; + unsigned int vals_s_mount_opt2; + unsigned int mask_s_mount_opt2; + unsigned int opt_flags; + unsigned int spec; + u32 s_max_batch_time; + u32 s_min_batch_time; + kuid_t s_resuid; + kgid_t s_resgid; + ext4_fsblk_t s_sb_block; }; -struct riscv_hwprobe { - __s64 key; - __u64 value; +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; }; -typedef __kernel_long_t __kernel_suseconds_t; +struct trace_event_data_offsets_ext4_other_inode_update_time {}; -typedef __kernel_suseconds_t suseconds_t; +struct trace_event_data_offsets_ext4_free_inode {}; -struct fmeter { - int cnt; - int val; - time64_t time; - spinlock_t lock; -}; +struct trace_event_data_offsets_ext4_request_inode {}; -enum prs_errcode { - PERR_NONE = 0, - PERR_INVCPUS = 1, - PERR_INVPARENT = 2, - PERR_NOTPART = 3, - PERR_NOTEXCL = 4, - PERR_NOCPUS = 5, - PERR_HOTPLUG = 6, - PERR_CPUSEMPTY = 7, -}; +struct trace_event_data_offsets_ext4_allocate_inode {}; -struct cpuset { - struct cgroup_subsys_state css; - unsigned long flags; - cpumask_var_t cpus_allowed; - nodemask_t mems_allowed; - cpumask_var_t effective_cpus; - nodemask_t effective_mems; - cpumask_var_t subparts_cpus; - nodemask_t old_mems_allowed; - struct fmeter fmeter; - int attach_in_progress; - int pn; - int relax_domain_level; - int nr_subparts_cpus; - int partition_root_state; - int use_parent_ecpus; - int child_ecpus_count; - int nr_deadline_tasks; - int nr_migrate_dl_tasks; - u64 sum_migrate_dl_bw; - enum prs_errcode prs_err; - struct cgroup_file partition_file; -}; +struct trace_event_data_offsets_ext4_evict_inode {}; -enum subparts_cmd { - partcmd_enable = 0, - partcmd_disable = 1, - partcmd_update = 2, - partcmd_invalidate = 3, -}; +struct trace_event_data_offsets_ext4_drop_inode {}; -struct cpuset_migrate_mm_work { - struct work_struct work; - struct mm_struct *mm; - nodemask_t from; - nodemask_t to; -}; +struct trace_event_data_offsets_ext4_nfs_commit_metadata {}; -struct tmpmasks { - cpumask_var_t addmask; - cpumask_var_t delmask; - cpumask_var_t new_cpus; -}; +struct trace_event_data_offsets_ext4_mark_inode_dirty {}; -typedef enum { - CS_ONLINE = 0, - CS_CPU_EXCLUSIVE = 1, - CS_MEM_EXCLUSIVE = 2, - CS_MEM_HARDWALL = 3, - CS_MEMORY_MIGRATE = 4, - CS_SCHED_LOAD_BALANCE = 5, - CS_SPREAD_PAGE = 6, - CS_SPREAD_SLAB = 7, -} cpuset_flagbits_t; +struct trace_event_data_offsets_ext4_begin_ordered_truncate {}; -typedef enum { - FILE_MEMORY_MIGRATE = 0, - FILE_CPULIST = 1, - FILE_MEMLIST = 2, - FILE_EFFECTIVE_CPULIST = 3, - FILE_EFFECTIVE_MEMLIST = 4, - FILE_SUBPARTS_CPULIST = 5, - FILE_CPU_EXCLUSIVE = 6, - FILE_MEM_EXCLUSIVE = 7, - FILE_MEM_HARDWALL = 8, - FILE_SCHED_LOAD_BALANCE = 9, - FILE_PARTITION_ROOT = 10, - FILE_SCHED_RELAX_DOMAIN_LEVEL = 11, - FILE_MEMORY_PRESSURE_ENABLED = 12, - FILE_MEMORY_PRESSURE = 13, - FILE_SPREAD_PAGE = 14, - FILE_SPREAD_SLAB = 15, -} cpuset_filetype_t; +struct trace_event_data_offsets_ext4__write_begin {}; -struct uprobe_cpu_buffer { - struct mutex mutex; - void *buf; -}; +struct trace_event_data_offsets_ext4__write_end {}; -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 trace_event_data_offsets_ext4_writepages {}; -struct uprobe_trace_entry_head { - struct trace_entry ent; - unsigned long vaddr[0]; -}; +struct trace_event_data_offsets_ext4_da_write_pages {}; -struct uprobe_dispatch_data { - struct trace_uprobe *tu; - unsigned long bp_addr; -}; +struct trace_event_data_offsets_ext4_da_write_pages_extent {}; -typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); +struct trace_event_data_offsets_ext4_writepages_result {}; -enum pgt_entry { - NORMAL_PMD = 0, - HPAGE_PMD = 1, - NORMAL_PUD = 2, - HPAGE_PUD = 3, -}; +struct trace_event_data_offsets_ext4__folio_op {}; -enum vmpressure_levels { - VMPRESSURE_LOW = 0, - VMPRESSURE_MEDIUM = 1, - VMPRESSURE_CRITICAL = 2, - VMPRESSURE_NUM_LEVELS = 3, -}; +struct trace_event_data_offsets_ext4_invalidate_folio_op {}; -enum vmpressure_modes { - VMPRESSURE_NO_PASSTHROUGH = 0, - VMPRESSURE_HIERARCHY = 1, - VMPRESSURE_LOCAL = 2, - VMPRESSURE_NUM_MODES = 3, -}; +struct trace_event_data_offsets_ext4_discard_blocks {}; -struct vmpressure_event { - struct eventfd_ctx *efd; - enum vmpressure_levels level; - enum vmpressure_modes mode; - struct list_head node; -}; +struct trace_event_data_offsets_ext4__mb_new_pa {}; -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 trace_event_data_offsets_ext4_mb_release_inode_pa {}; -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 trace_event_data_offsets_ext4_mb_release_group_pa {}; -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 trace_event_data_offsets_ext4_discard_preallocations {}; -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 trace_event_data_offsets_ext4_mb_discard_preallocations {}; -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, -}; +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 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 trace_event_data_offsets_ext4_sync_file_enter {}; -struct nfs42_layouterror_data { - struct nfs42_layouterror_args args; - struct nfs42_layouterror_res res; - struct inode *inode; - struct pnfs_layout_segment *lseg; -}; +struct trace_event_data_offsets_ext4_sync_file_exit {}; -struct nfs42_offloadcancel_data { - struct nfs_server *seq_server; - struct nfs42_offload_status_args args; - struct nfs42_offload_status_res res; -}; +struct trace_event_data_offsets_ext4_sync_fs {}; -struct nfs42_layoutstat_data { - struct inode *inode; - struct nfs42_layoutstat_args args; - struct nfs42_layoutstat_res res; -}; +struct trace_event_data_offsets_ext4_alloc_da_blocks {}; -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 trace_event_data_offsets_ext4_mballoc_alloc {}; -struct ext_wait_queue { - struct task_struct *task; - struct list_head list; - struct msg_msg *msg; - int state; -}; +struct trace_event_data_offsets_ext4_mballoc_prealloc {}; -struct posix_msg_tree_node; +struct trace_event_data_offsets_ext4__mballoc {}; -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 trace_event_data_offsets_ext4_forget {}; -struct posix_msg_tree_node { - struct rb_node rb_node; - struct list_head msg_list; - int priority; -}; +struct trace_event_data_offsets_ext4_da_update_reserve_space {}; -struct mqueue_fs_context { - struct ipc_namespace *ipc_ns; - bool newns; -}; +struct trace_event_data_offsets_ext4_da_reserve_space {}; -enum { - CRYPTO_MSG_ALG_REQUEST = 0, - CRYPTO_MSG_ALG_REGISTER = 1, - CRYPTO_MSG_ALG_LOADED = 2, -}; +struct trace_event_data_offsets_ext4_da_release_space {}; -struct crypto_larval { - struct crypto_alg alg; - struct crypto_alg *adult; - struct completion completion; - u32 mask; - bool test_started; -}; +struct trace_event_data_offsets_ext4__bitmap_load {}; -struct sha1_state; +struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; -typedef void sha1_block_fn(struct sha1_state *, const u8 *, int); +struct trace_event_data_offsets_ext4__fallocate_mode {}; -struct sha1_state { - u32 state[5]; - u64 count; - u8 buffer[64]; -}; +struct trace_event_data_offsets_ext4_fallocate_exit {}; -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)); +struct trace_event_data_offsets_ext4_unlink_enter {}; -typedef struct _gpt_header gpt_header; +struct trace_event_data_offsets_ext4_unlink_exit {}; -struct _gpt_entry_attributes { - u64 required_to_function: 1; - u64 reserved: 47; - u64 type_guid_specific: 16; -}; +struct trace_event_data_offsets_ext4__truncate {}; -typedef struct _gpt_entry_attributes gpt_entry_attributes; +struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {}; -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]; -}; +struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {}; -typedef struct _gpt_entry gpt_entry; +struct trace_event_data_offsets_ext4__map_blocks_enter {}; -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; -}; +struct trace_event_data_offsets_ext4__map_blocks_exit {}; -typedef struct _gpt_mbr_record gpt_mbr_record; +struct trace_event_data_offsets_ext4_ext_load_extent {}; -struct _legacy_mbr { - u8 boot_code[440]; - __le32 unique_mbr_signature; - __le16 unknown; - gpt_mbr_record partition_record[4]; - __le16 signature; -} __attribute__((packed)); +struct trace_event_data_offsets_ext4_load_inode {}; -typedef struct _legacy_mbr legacy_mbr; +struct trace_event_data_offsets_ext4_journal_start_sb {}; -struct io_statx { - struct file *file; - int dfd; - unsigned int mask; - unsigned int flags; - struct filename *filename; - struct statx __attribute__((btf_type_tag("user"))) *buffer; -}; +struct trace_event_data_offsets_ext4_journal_start_inode {}; -typedef uintptr_t uptrval; +struct trace_event_data_offsets_ext4_journal_start_reserved {}; -typedef enum { - endOnOutputSize = 0, - endOnInputSize = 1, -} endCondition_directive; +struct trace_event_data_offsets_ext4__trim {}; -typedef enum { - decode_full_block = 0, - partial_decode = 1, -} earlyEnd_directive; +struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {}; -typedef enum { - noDict = 0, - withPrefix64k = 1, - usingExtDict = 2, -} dict_directive; +struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; -typedef struct { - const uint8_t *externalDict; - size_t extDictSize; - const uint8_t *prefixEnd; - size_t prefixSize; -} LZ4_streamDecode_t_internal; +struct trace_event_data_offsets_ext4_ext_show_extent {}; -typedef union { - unsigned long long table[4]; - LZ4_streamDecode_t_internal internal_donotuse; -} LZ4_streamDecode_t; +struct trace_event_data_offsets_ext4_remove_blocks {}; -typedef struct { - size_t compressedSize; - unsigned long long decompressedBound; -} ZSTD_frameSizeInfo; +struct trace_event_data_offsets_ext4_ext_rm_leaf {}; -typedef enum { - ZSTD_dlm_byCopy = 0, - ZSTD_dlm_byRef = 1, -} ZSTD_dictLoadMethod_e; +struct trace_event_data_offsets_ext4_ext_rm_idx {}; -typedef enum { - ZSTD_reset_session_only = 1, - ZSTD_reset_parameters = 2, - ZSTD_reset_session_and_parameters = 3, -} ZSTD_ResetDirective; +struct trace_event_data_offsets_ext4_ext_remove_space {}; -typedef enum { - ZSTD_d_windowLogMax = 100, - ZSTD_d_experimentalParam1 = 1000, - ZSTD_d_experimentalParam2 = 1001, - ZSTD_d_experimentalParam3 = 1002, - ZSTD_d_experimentalParam4 = 1003, -} ZSTD_dParameter; +struct trace_event_data_offsets_ext4_ext_remove_space_done {}; -typedef struct { - size_t error; - int lowerBound; - int upperBound; -} ZSTD_bounds; +struct trace_event_data_offsets_ext4__es_extent {}; -typedef enum { - ZSTDnit_frameHeader = 0, - ZSTDnit_blockHeader = 1, - ZSTDnit_block = 2, - ZSTDnit_lastBlock = 3, - ZSTDnit_checksum = 4, - ZSTDnit_skippableFrame = 5, -} ZSTD_nextInputType_e; +struct trace_event_data_offsets_ext4_es_remove_extent {}; -struct node_groups { - unsigned int id; - union { - unsigned int ngroups; - unsigned int ncpus; - }; -}; +struct trace_event_data_offsets_ext4_es_find_extent_range_enter {}; -struct rzg2l_dedicated_configs; +struct trace_event_data_offsets_ext4_es_find_extent_range_exit {}; -struct rzg2l_pinctrl_data { - const char * const *port_pins; - const u32 *port_pin_configs; - unsigned int n_ports; - struct rzg2l_dedicated_configs *dedicated_pins; - unsigned int n_port_pins; - unsigned int n_dedicated_pins; -}; +struct trace_event_data_offsets_ext4_es_lookup_extent_enter {}; -struct rzg2l_dedicated_configs { - const char *name; - u32 config; -}; +struct trace_event_data_offsets_ext4_es_lookup_extent_exit {}; -struct rzg2l_pinctrl { - struct pinctrl_dev *pctl; - struct pinctrl_desc desc; - struct pinctrl_pin_desc *pins; - const struct rzg2l_pinctrl_data *data; - void *base; - struct device *dev; - struct clk *clk; - struct gpio_chip gpio_chip; - struct pinctrl_gpio_range gpio_range; - unsigned long tint_slot[1]; - spinlock_t bitmap_lock; - unsigned int hwirq[32]; - spinlock_t lock; - struct mutex mutex; -}; +struct trace_event_data_offsets_ext4__es_shrink_enter {}; -enum acpi_attr_enum { - ACPI_ATTR_LABEL_SHOW = 0, - ACPI_ATTR_INDEX_SHOW = 1, -}; +struct trace_event_data_offsets_ext4_es_shrink_scan_exit {}; -struct acpi_init_walk_info { - u32 table_index; - u32 object_count; - u32 method_count; - u32 serial_method_count; - u32 non_serial_method_count; - u32 serialized_method_count; - u32 device_count; - u32 op_region_count; - u32 field_count; - u32 buffer_count; - u32 package_count; - u32 op_region_init; - u32 field_init; - u32 buffer_init; - u32 package_init; - acpi_owner_id owner_id; -}; +struct trace_event_data_offsets_ext4_collapse_range {}; -enum { - VP_MSIX_CONFIG_VECTOR = 0, - VP_MSIX_VQ_VECTOR = 1, -}; +struct trace_event_data_offsets_ext4_insert_range {}; -struct vc_selection { - struct mutex lock; - struct vc_data *cons; - char *buffer; - unsigned int buf_len; - volatile int start; - int end; -}; +struct trace_event_data_offsets_ext4_es_shrink {}; -struct tiocl_selection { - unsigned short xs; - unsigned short ys; - unsigned short xe; - unsigned short ye; - unsigned short sel_mode; -}; +struct trace_event_data_offsets_ext4_es_insert_delayed_block {}; -struct virtrng_info { - struct hwrng hwrng; - struct virtqueue *vq; - char name[25]; - int index; - bool hwrng_register_done; - bool hwrng_removed; - struct completion have_data; - unsigned int data_avail; - unsigned int data_idx; - u8 data[64]; -}; +struct trace_event_data_offsets_ext4_fsmap_class {}; -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 trace_event_data_offsets_ext4_getfsmap_class {}; -typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); +struct trace_event_data_offsets_ext4_shutdown {}; -typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *); +struct trace_event_data_offsets_ext4_error {}; -typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *); +struct trace_event_data_offsets_ext4_prefetch_bitmaps {}; -typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *); +struct trace_event_data_offsets_ext4_lazy_itable_init {}; -typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *); +struct trace_event_data_offsets_ext4_fc_replay_scan {}; -typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *); +struct trace_event_data_offsets_ext4_fc_replay {}; -typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *); +struct trace_event_data_offsets_ext4_fc_commit_start {}; -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 trace_event_data_offsets_ext4_fc_commit_stop {}; -struct default_wait_cb { - struct dma_fence_cb base; - struct task_struct *task; -}; +struct trace_event_data_offsets_ext4_fc_stats {}; -struct trace_event_data_offsets_dma_fence { - u32 driver; - u32 timeline; -}; +struct trace_event_data_offsets_ext4_fc_track_dentry {}; -struct rtl_cond { - bool (*check)(struct rtl8169_private *); - const char *msg; -}; +struct trace_event_data_offsets_ext4_fc_track_inode {}; -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, -}; +struct trace_event_data_offsets_ext4_fc_track_range {}; -enum rtl_dash_type { - RTL_DASH_NONE = 0, - RTL_DASH_DP = 1, - RTL_DASH_EP = 2, +struct trace_event_data_offsets_ext4_fc_cleanup {}; + +struct trace_event_data_offsets_ext4_update_sb {}; + +struct cond_expr_node; + +struct cond_expr { + struct cond_expr_node *nodes; + u32 len; }; -struct ring_info { - struct sk_buff *skb; +struct cond_av_list { + struct avtab_node **nodes; u32 len; }; -struct rtl8169_tc_offsets { - bool inited; - __le64 tx_errors; - __le32 tx_multi_collision; - __le16 tx_aborted; - __le16 rx_missed; +struct cond_node { + int cur_state; + struct cond_expr expr; + struct cond_av_list true_list; + struct cond_av_list false_list; }; -struct TxDesc; +struct cond_expr_node { + u32 expr_type; + u32 boolean; +}; -struct RxDesc; +struct selinux_mapping { + u16 value; + u16 num_perms; + u32 perms[32]; +}; -struct rtl8169_counters; +struct selinux_audit_rule { + u32 au_seqno; + struct context au_ctxt; +}; -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; - raw_spinlock_t config25_lock; - raw_spinlock_t mac_ocp_lock; - raw_spinlock_t cfg9346_usage_lock; - int cfg9346_usage_count; - unsigned int supports_gmii: 1; - unsigned int aspm_manageable: 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 filename_trans_key { + u32 ttype; + u16 tclass; + const char *name; +}; + +struct filename_trans_datum { + struct ebitmap stypes; + u32 otype; + struct filename_trans_datum *next; }; -struct TxDesc { - __le32 opts1; - __le32 opts2; - __le64 addr; +struct role_trans_datum { + u32 new_role; }; -struct RxDesc { - __le32 opts1; - __le32 opts2; - __le64 addr; +struct role_trans_key { + u32 role; + u32 type; + u32 tclass; }; -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; +struct policy_file { + char *data; + size_t len; }; -typedef void (*rtl_generic_fct)(struct rtl8169_private *); +struct selinux_policy_convert_data; -struct ephy_info { - unsigned int offset; - u16 mask; - u16 bits; +struct selinux_load_state { + struct selinux_policy *policy; + struct selinux_policy_convert_data *convert_data; }; -struct rtl_mac_info { - u16 mask; - u16 val; - enum mac_version ver; +struct selinux_policy_convert_data { + struct convert_context_args args; + struct sidtab_convert_params sidtab_params; }; -struct rtl_coalesce_info { - u32 speed; - u32 scale_nsecs[4]; +struct perm_datum { + u32 value; }; -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, -}; +struct sha1_state; -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, +typedef void sha1_block_fn(struct sha1_state *, const u8 *, int); + +struct sha1_state { + u32 state[5]; + u64 count; + u8 buffer[64]; }; -enum rtl_registers { - MAC0 = 0, - MAC4 = 4, - MAR0 = 8, - CounterAddrLow = 16, - CounterAddrHigh = 20, - TxDescStartAddrLow = 32, - TxDescStartAddrHigh = 36, - TxHDescStartAddrLow = 40, - TxHDescStartAddrHigh = 44, - FLASH = 48, - ERSR = 54, - ChipCmd = 55, - TxPoll = 56, - IntrMask = 60, - IntrStatus = 62, - TxConfig = 64, - RxConfig = 68, - Cfg9346 = 80, - Config0 = 81, - Config1 = 82, - Config2 = 83, - Config3 = 84, - Config4 = 85, - Config5 = 86, - PHYAR = 96, - PHYstatus = 108, - RxMaxSize = 218, - CPlusCmd = 224, - IntrMitigate = 226, - RxDescAddrLow = 228, - RxDescAddrHigh = 232, - EarlyTxThres = 236, - MaxTxPacketSize = 236, - FuncEvent = 240, - FuncEventMask = 244, - FuncPresetState = 248, - IBCR0 = 248, - IBCR2 = 249, - IBIMR0 = 250, - IBISR0 = 251, - FuncForceEvent = 252, +enum bio_merge_status { + BIO_MERGE_OK = 0, + BIO_MERGE_NONE = 1, + BIO_MERGE_FAILED = 2, }; -enum rtl_register_content { - SYSErr = 32768, - PCSTimeout = 16384, - SWInt = 256, - TxDescUnavail = 128, - RxFIFOOver = 64, - LinkChg = 32, - RxOverflow = 16, - TxErr = 8, - TxOK = 4, - RxErr = 2, - RxOK = 1, - RxRWT = 4194304, - RxRES = 2097152, - RxRUNT = 1048576, - RxCRC = 524288, - StopReq = 128, - CmdReset = 16, - CmdRxEnb = 8, - CmdTxEnb = 4, - RxBufEmpty = 1, - HPQ = 128, - NPQ = 64, - FSWInt = 1, - Cfg9346_Lock = 0, - Cfg9346_Unlock = 192, - AcceptErr = 32, - AcceptRunt = 16, - AcceptBroadcast = 8, - AcceptMulticast = 4, - AcceptMyPhys = 2, - AcceptAllPhys = 1, - TxInterFrameGapShift = 24, - TxDMAShift = 8, - LEDS1 = 128, - LEDS0 = 64, - Speed_down = 16, - MEMMAP = 8, - IOMAP = 4, - VPD = 2, - PMEnable = 1, - ClkReqEn = 128, - MSIEnable = 32, - PCI_Clock_66MHz = 1, - PCI_Clock_33MHz = 0, - MagicPacket = 32, - LinkUp = 16, - Jumbo_En0 = 4, - Rdy_to_L23 = 2, - Beacon_en = 1, - Jumbo_En1 = 2, - BWF = 64, - MWF = 32, - UWF = 16, - Spi_en = 8, - LanWake = 2, - PMEStatus = 1, - ASPM_en = 1, - EnableBist = 32768, - Mac_dbgo_oe = 16384, - EnAnaPLL = 16384, - Normal_mode = 8192, - Force_half_dup = 4096, - Force_rxflow_en = 2048, - Force_txflow_en = 1024, - Cxpl_dbg_sel = 512, - ASF = 256, - PktCntrDisable = 128, - Mac_dbgo_sel = 28, - RxVlan = 64, - RxChkSum = 32, - PCIDAC = 16, - PCIMulRW = 8, - TBI_Enable = 128, - TxFlowCtrl = 64, - RxFlowCtrl = 32, - _1000bpsF = 16, - _100bps = 8, - _10bps = 4, - LinkStatus = 2, - FullDup = 1, - CounterReset = 1, - CounterDump = 8, - MagicPacket_v2 = 65536, +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 rtl_desc_bit { - DescOwn = -2147483648, - RingEnd = 1073741824, - FirstFrag = 536870912, - LastFrag = 268435456, +enum { + KYBER_TOTAL_LATENCY = 0, + KYBER_IO_LATENCY = 1, }; -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 { + KYBER_LATENCY_SHIFT = 2, + KYBER_GOOD_BUCKETS = 4, + KYBER_LATENCY_BUCKETS = 8, }; -enum rtl8125_registers { - IntrMask_8125 = 56, - IntrStatus_8125 = 60, - TxPoll_8125 = 144, - MAC0_BKP = 6624, - EEE_TXIDLE_TIMER_8125 = 24648, +enum { + KYBER_ASYNC_PERCENT = 75, }; -enum rtl_tx_desc_bit { - TD_LSO = 134217728, - TxVlanTag = 131072, +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]; }; -enum rtl_tx_desc_bit_0 { - TD0_TCP_CS = 65536, - TD0_UDP_CS = 131072, - TD0_IP_CS = 262144, +struct trace_event_raw_kyber_adjust { + struct trace_entry ent; + dev_t dev; + char domain[16]; + unsigned int depth; + char __data[0]; }; -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, +struct trace_event_raw_kyber_throttled { + struct trace_entry ent; + dev_t dev; + char domain[16]; + char __data[0]; }; -enum rtl_rx_desc_bit { - PID1 = 262144, - PID0 = 131072, - IPFail = 65536, - UDPFail = 32768, - TCPFail = 16384, - RxVlanTag = 65536, +struct kyber_cpu_latency { + atomic_t buckets[48]; }; -struct mmc_spi_platform_data { - int (*init)(struct device *, irqreturn_t (*)(int, void *), void *); - void (*exit)(struct device *, void *); - unsigned long caps; - unsigned long caps2; - u16 detect_delay; - u16 powerup_msecs; - u32 ocr_mask; - void (*setpower)(struct device *, unsigned int); +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 of_mmc_spi { - struct mmc_spi_platform_data pdata; - int detect_irq; +struct sbq_wait { + struct sbitmap_queue *sbq; + struct wait_queue_entry wait; }; -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, +struct kyber_ctx_queue { + spinlock_t lock; + struct list_head rq_list[4]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 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 netdev_lag_upper_info { - enum netdev_lag_tx_type tx_type; - enum netdev_lag_hash hash_type; +struct flush_kcq_data { + struct kyber_hctx_data *khd; + unsigned int sched_domain; + struct list_head *list; }; +typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); + +struct trace_event_data_offsets_kyber_latency {}; + +struct trace_event_data_offsets_kyber_adjust {}; + +struct trace_event_data_offsets_kyber_throttled {}; + 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, + ZSTDbss_compress = 0, + ZSTDbss_noCompress = 1, }; -struct linkmodes_reply_data { - struct ethnl_reply_data base; - struct ethtool_link_ksettings ksettings; - struct ethtool_link_settings *lsettings; - bool peer_empty; +struct ZSTD_CDict_s { + const void *dictContent; + size_t dictContentSize; + ZSTD_dictContentType_e dictContentType; + U32 *entropyWorkspace; + ZSTD_cwksp workspace; + ZSTD_matchState_t matchState; + ZSTD_compressedBlockState_t cBlockState; + ZSTD_customMem customMem; + U32 dictID; + int compressionLevel; + ZSTD_paramSwitch_e useRowMatchFinder; }; -struct 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; -}; +typedef enum { + ZSTD_c_compressionLevel = 100, + ZSTD_c_windowLog = 101, + ZSTD_c_hashLog = 102, + ZSTD_c_chainLog = 103, + ZSTD_c_searchLog = 104, + ZSTD_c_minMatch = 105, + ZSTD_c_targetLength = 106, + ZSTD_c_strategy = 107, + ZSTD_c_enableLongDistanceMatching = 160, + ZSTD_c_ldmHashLog = 161, + ZSTD_c_ldmMinMatch = 162, + ZSTD_c_ldmBucketSizeLog = 163, + ZSTD_c_ldmHashRateLog = 164, + ZSTD_c_contentSizeFlag = 200, + ZSTD_c_checksumFlag = 201, + ZSTD_c_dictIDFlag = 202, + ZSTD_c_nbWorkers = 400, + ZSTD_c_jobSize = 401, + ZSTD_c_overlapLog = 402, + ZSTD_c_experimentalParam1 = 500, + ZSTD_c_experimentalParam2 = 10, + ZSTD_c_experimentalParam3 = 1000, + ZSTD_c_experimentalParam4 = 1001, + ZSTD_c_experimentalParam5 = 1002, + ZSTD_c_experimentalParam6 = 1003, + ZSTD_c_experimentalParam7 = 1004, + ZSTD_c_experimentalParam8 = 1005, + ZSTD_c_experimentalParam9 = 1006, + ZSTD_c_experimentalParam10 = 1007, + ZSTD_c_experimentalParam11 = 1008, + ZSTD_c_experimentalParam12 = 1009, + ZSTD_c_experimentalParam13 = 1010, + ZSTD_c_experimentalParam14 = 1011, + ZSTD_c_experimentalParam15 = 1012, +} ZSTD_cParameter; + +typedef enum { + ZSTD_cpm_noAttachDict = 0, + ZSTD_cpm_attachDict = 1, + ZSTD_cpm_createCDict = 2, + ZSTD_cpm_unknown = 3, +} ZSTD_cParamMode_e; + +typedef enum { + ZSTD_e_continue = 0, + ZSTD_e_flush = 1, + ZSTD_e_end = 2, +} ZSTD_EndDirective; + +typedef struct { + U32 LLtype; + U32 Offtype; + U32 MLtype; + size_t size; + size_t lastCountSize; +} ZSTD_symbolEncodingTypeStats_t; + +typedef struct { + U32 *splitLocations; + size_t idx; +} seqStoreSplits; + +typedef ZSTD_CCtx ZSTD_CStream; + +typedef struct { + U32 idx; + U32 posInSequence; + size_t posInSrc; +} ZSTD_sequencePosition; + +typedef size_t (*ZSTD_sequenceCopier)(ZSTD_CCtx *, ZSTD_sequencePosition *, const ZSTD_Sequence * const, size_t, const void *, size_t); + +typedef enum { + ZSTD_defaultDisallowed = 0, + ZSTD_defaultAllowed = 1, +} ZSTD_defaultPolicy_e; + +typedef struct { + unsigned long long ingested; + unsigned long long consumed; + unsigned long long produced; + unsigned long long flushed; + unsigned int currentJobID; + unsigned int nbActiveWorkers; +} ZSTD_frameProgression; + +typedef enum { + ZSTDcrp_makeClean = 0, + ZSTDcrp_leaveDirty = 1, +} ZSTD_compResetPolicy_e; + +typedef enum { + ZSTDirp_continue = 0, + ZSTDirp_reset = 1, +} ZSTD_indexResetPolicy_e; + +typedef enum { + ZSTD_resetTarget_CDict = 0, + ZSTD_resetTarget_CCtx = 1, +} ZSTD_resetTarget_e; -struct udp_seq_afinfo { - sa_family_t family; - struct udp_table *udp_table; -}; +typedef void (*btf_trace_gpio_direction)(void *, unsigned int, int, int); -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; -}; +typedef void (*btf_trace_gpio_value)(void *, unsigned int, int, int); -struct static_key_false_deferred { - struct static_key_false key; - unsigned long timeout; - struct delayed_work work; +enum { + GPIOLINE_CHANGED_REQUESTED = 1, + GPIOLINE_CHANGED_RELEASED = 2, + GPIOLINE_CHANGED_CONFIG = 3, }; -struct ip6fl_iter_state { - struct seq_net_private p; - struct pid_namespace *pid_ns; - int bucket; +struct gpio_pin_range { + struct list_head node; + struct pinctrl_dev *pctldev; + struct pinctrl_gpio_range range; }; -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 trace_event_raw_gpio_direction { + struct trace_entry ent; + unsigned int gpio; + int in; + int err; + char __data[0]; }; -enum rpc_gss_svc { - RPC_GSS_SVC_NONE = 1, - RPC_GSS_SVC_INTEGRITY = 2, - RPC_GSS_SVC_PRIVACY = 3, +struct trace_event_raw_gpio_value { + struct trace_entry ent; + unsigned int gpio; + int get; + int value; + char __data[0]; }; -struct gss_domain { - struct auth_domain h; - u32 pseudoflavor; +struct gpiod_hog { + struct list_head list; + const char *chip_label; + u16 chip_hwnum; + const char *line_name; + unsigned long lflags; + int dflags; }; -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; +struct gpiod_lookup { + const char *key; + u16 chip_hwnum; + const char *con_id; + unsigned int idx; + unsigned long flags; }; -struct gss_svc_seq_data { - u32 sd_max; - unsigned long sd_win[2]; - spinlock_t sd_lock; +struct gpiod_lookup_table { + struct list_head list; + const char *dev_id; + struct gpiod_lookup table[0]; }; -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; -}; +typedef struct { + spinlock_t *lock; + unsigned long flags; +} class_spinlock_irqsave_t; -struct rpc_gss_wire_cred { - u32 gc_v; - u32 gc_proc; - u32 gc_seq; - u32 gc_svc; - struct xdr_netobj gc_ctx; -}; +typedef struct mutex *class_mutex_t; -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 trace_event_data_offsets_gpio_direction {}; -typedef struct { - u16 version; - u16 length; - u32 runtime_services_supported; -} efi_rt_properties_table_t; +struct trace_event_data_offsets_gpio_value {}; -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 pcie_link_state { + struct pci_dev *pdev; + struct pci_dev *downstream; + struct pcie_link_state *root; + struct pcie_link_state *parent; + struct list_head sibling; + u32 aspm_support: 7; + u32 aspm_enabled: 7; + u32 aspm_capable: 7; + u32 aspm_default: 7; + int: 4; + u32 aspm_disable: 7; + u32 clkpm_capable: 1; + u32 clkpm_enabled: 1; + u32 clkpm_default: 1; + u32 clkpm_disable: 1; }; -struct acpi_table_rhct { - struct acpi_table_header header; - u32 reserved; - u64 time_base_freq; - u32 node_count; - u32 node_offset; +enum { + FBCON_LOGO_CANSHOW = -1, + FBCON_LOGO_DRAW = -2, + FBCON_LOGO_DONTSHOW = -3, }; -typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long); +struct fb_con2fbmap { + __u32 console; + __u32 framebuffer; +}; -typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long); +struct acpi_comment_node { + char *comment; + struct acpi_comment_node *next; +}; -struct trace_event_raw_sys_enter { - struct trace_entry ent; - long id; - unsigned long args[6]; - char __data[0]; +struct acpi_predefined_names { + const char *name; + u8 type; + char *val; }; -struct trace_event_raw_sys_exit { - struct trace_entry ent; - long id; - long ret; - char __data[0]; +struct acpi_table_list { + struct acpi_table_desc *tables; + u32 current_table_count; + u32 max_table_count; + u8 flags; }; -struct trace_event_data_offsets_sys_enter {}; +struct acpi_mutex_info { + void *mutex; + u32 use_count; + u64 thread_id; +}; -struct trace_event_data_offsets_sys_exit {}; +typedef u32 acpi_name; -typedef void (*btf_trace_csd_queue_cpu)(void *, const unsigned int, unsigned long, smp_call_func_t, struct __call_single_data *); +typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); -typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, struct __call_single_data *); +typedef acpi_status (*acpi_init_handler)(acpi_handle, u32); -typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, struct __call_single_data *); +typedef u32 (*acpi_interface_handler)(acpi_string, u32); -struct call_function_data { - call_single_data_t __attribute__((btf_type_tag("percpu"))) *csd; - cpumask_var_t cpumask; - cpumask_var_t cpumask_ipi; -}; +typedef u32 (*acpi_sci_handler)(void *); -struct trace_event_raw_csd_queue_cpu { - struct trace_entry ent; - unsigned int cpu; - void *callsite; - void *func; - void *csd; - char __data[0]; +struct acpi_sci_handler_info { + struct acpi_sci_handler_info *next; + acpi_sci_handler address; + void *context; }; -struct trace_event_raw_csd_function { - struct trace_entry ent; - void *func; - void *csd; - char __data[0]; +struct acpi_ged_handler_info { + struct acpi_ged_handler_info *next; + u32 int_id; + struct acpi_namespace_node *evt_method; }; -struct smp_call_on_cpu_struct { - struct work_struct work; - struct completion done; - int (*func)(void *); - void *data; - int ret; - int cpu; +struct acpi_interface_info { + char *name; + struct acpi_interface_info *next; + u8 flags; + u8 value; }; -struct trace_event_data_offsets_csd_queue_cpu {}; +struct clk_mux { + struct clk_hw hw; + void *reg; + const u32 *table; + u32 mask; + u8 shift; + u8 flags; + spinlock_t *lock; +}; -struct trace_event_data_offsets_csd_function {}; +struct acpi_dma_spec; -enum bpf_iter_feature { - BPF_ITER_RESCHED = 1, +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 bpf_iter_target_info { - struct list_head list; - const struct bpf_iter_reg *reg_info; - u32 btf_id; +struct acpi_dma_spec { + int chan_id; + int slave_id; + struct device *dev; }; -struct bpf_iter_link { - struct bpf_link link; - struct bpf_iter_aux_info aux; - struct bpf_iter_target_info *tinfo; +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 bpf_iter_priv_data { - struct bpf_iter_target_info *tinfo; - const struct bpf_iter_seq_info *seq_info; - struct bpf_prog *prog; - u64 session_id; - u64 seq_num; - bool done_stop; - long: 0; - u8 target_private[0]; +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; }; -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 acpi_table_csrt { + struct acpi_table_header header; }; -struct bpf_iter_num_kern { - int cur; - int end; +struct acpi_dma_parser_data { + struct acpi_dma_spec dma_spec; + size_t index; + size_t n; }; -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); +struct acpi_dma_filter_info { + dma_cap_mask_t dma_cap; + dma_filter_fn filter_fn; +}; -typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool); +struct gpio_regulator_state; -enum oom_constraint { - CONSTRAINT_NONE = 0, - CONSTRAINT_CPUSET = 1, - CONSTRAINT_MEMORY_POLICY = 2, - CONSTRAINT_MEMCG = 3, +struct gpio_regulator_config { + const char *supply_name; + const char *input_supply; + unsigned int enabled_at_boot: 1; + unsigned int startup_delay; + enum gpiod_flags *gflags; + int ngpios; + struct gpio_regulator_state *states; + int nr_states; + enum regulator_type type; + struct regulator_init_data *init_data; }; -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, +struct gpio_regulator_state { + int value; + int gpios; }; -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 gpio_regulator_data { + struct regulator_desc desc; + struct gpio_desc **gpiods; + int nr_gpios; + struct gpio_regulator_state *states; + int nr_states; + int state; }; -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 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 trace_event_raw_mark_victim { - struct trace_entry ent; - int pid; - char __data[0]; +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 trace_event_raw_wake_reaper { - struct trace_entry ent; - int pid; - char __data[0]; +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 trace_event_raw_start_task_reaping { - struct trace_entry ent; - int pid; - char __data[0]; +struct dev_ext_attribute { + struct device_attribute attr; + void *var; }; -struct trace_event_raw_finish_task_reaping { - struct trace_entry ent; - int pid; - char __data[0]; +struct fwnode_link { + struct fwnode_handle *supplier; + struct list_head s_hook; + struct fwnode_handle *consumer; + struct list_head c_hook; + u8 flags; }; -struct trace_event_raw_skip_task_reaping { - struct trace_entry ent; - int pid; - char __data[0]; +struct class_dir { + struct kobject kobj; + const struct class *class; }; -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 root_device { + struct device dev; + struct module *owner; }; -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; +union device_attr_group_devres { + const struct attribute_group *group; + const struct attribute_group **groups; }; -struct trace_event_data_offsets_oom_score_adj_update {}; +typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); -struct trace_event_data_offsets_reclaim_retry_zone {}; +typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *); -struct trace_event_data_offsets_mark_victim {}; +typedef void (*btf_trace_dma_fence_destroy)(void *, struct dma_fence *); -struct trace_event_data_offsets_wake_reaper {}; +typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *); -struct trace_event_data_offsets_start_task_reaping {}; +typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *); -struct trace_event_data_offsets_finish_task_reaping {}; +typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *); -struct trace_event_data_offsets_skip_task_reaping {}; +typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *); -struct trace_event_data_offsets_compact_retry {}; +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 swap_iocb { - struct kiocb iocb; - struct bio_vec bvec[32]; - int pages; - int len; +struct default_wait_cb { + struct dma_fence_cb base; + struct task_struct *task; }; -enum poll_time_type { - PT_TIMEVAL = 0, - PT_OLD_TIMEVAL = 1, - PT_TIMESPEC = 2, - PT_OLD_TIMESPEC = 3, +struct trace_event_data_offsets_dma_fence { + u32 driver; + u32 timeline; +}; + +struct mdio_driver { + struct mdio_driver_common mdiodrv; + int (*probe)(struct mdio_device *); + void (*remove)(struct mdio_device *); + void (*shutdown)(struct mdio_device *); }; -typedef struct { - unsigned long fds_bits[16]; -} __kernel_fd_set; - -typedef __kernel_fd_set fd_set; +typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t); -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; +struct e1000_reg_info { + u32 ofs; + char *name; }; -struct poll_table_entry { - struct file *filp; - __poll_t key; - wait_queue_entry_t wait; - wait_queue_head_t *wait_address; +enum e1000_state_t { + __E1000_TESTING = 0, + __E1000_RESETTING = 1, + __E1000_ACCESS_SHARED_RESOURCE = 2, + __E1000_DOWN = 3, }; -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]; +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, }; -struct poll_table_page { - struct poll_table_page *next; - struct poll_table_entry *entry; - struct poll_table_entry entries[0]; +enum latency_range { + lowest_latency = 0, + low_latency = 1, + bulk_latency = 2, + latency_invalid = 255, }; -struct poll_list { - struct poll_list *next; - int len; - struct pollfd entries[0]; +struct trace_event_raw_e1000e_trace_mac_register { + struct trace_entry ent; + uint32_t reg; + char __data[0]; }; -typedef struct { - unsigned long *in; - unsigned long *out; - unsigned long *ex; - unsigned long *res_in; - unsigned long *res_out; - unsigned long *res_ex; -} fd_set_bits; +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; +}; -struct sigset_argpack { - sigset_t __attribute__((btf_type_tag("user"))) *p; - size_t size; +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 compat_sigset_argpack { - compat_uptr_t p; - compat_size_t size; +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; }; -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 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 proc_maps_private { - struct inode *inode; - struct task_struct *task; - struct mm_struct *mm; - struct vma_iterator iter; +struct my_u0 { + __le64 a; + __le64 b; }; -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; +struct my_u1 { + __le64 a; + __le64 b; + __le64 c; + __le64 d; }; -typedef struct { - u64 pme; -} pagemap_entry_t; +struct trace_event_data_offsets_e1000e_trace_mac_register {}; -struct pagemapread { - int pos; - int len; - pagemap_entry_t *buffer; - bool show_pfn; +struct touchscreen_properties { + unsigned int max_x; + unsigned int max_y; + bool invert_x; + bool invert_y; + bool swap_x_y; }; -struct clear_refs_private { - enum clear_refs_types type; +struct sunxi_wdt_reg { + u8 wdt_ctrl; + u8 wdt_cfg; + u8 wdt_mode; + u8 wdt_timeout_shift; + u8 wdt_reset_mask; + u8 wdt_reset_val; + u32 wdt_key_val; }; -struct journal_block_tag3_s { - __be32 t_blocknr; - __be32 t_flags; - __be32 t_blocknr_high; - __be32 t_checksum; +struct sunxi_wdt_dev { + struct watchdog_device wdt_dev; + void *wdt_base; + const struct sunxi_wdt_reg *wdt_regs; }; -typedef struct journal_block_tag3_s journal_block_tag3_t; +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 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 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 jbd2_journal_revoke_header_s { - journal_header_t r_header; - __be32 r_count; +struct cpuidle_driver_kobj { + struct cpuidle_driver *drv; + struct completion kobj_unregister; + struct kobject kobj; }; -typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t; +struct cpuidle_device_kobj { + struct cpuidle_device *dev; + struct completion kobj_unregister; + struct kobject kobj; +}; -struct recovery_info { - tid_t start_transaction; - tid_t end_transaction; - unsigned long head_block; - int nr_replays; - int nr_revokes; - int nr_revoke_hits; +struct cpuidle_driver_attr { + struct attribute attr; + ssize_t (*show)(struct cpuidle_driver *, char *); + ssize_t (*store)(struct cpuidle_driver *, const char *, size_t); }; -struct journal_block_tag_s { - __be32 t_blocknr; - __be16 t_checksum; - __be16 t_flags; - __be32 t_blocknr_high; +struct cpuidle_attr { + struct attribute attr; + ssize_t (*show)(struct cpuidle_device *, char *); + ssize_t (*store)(struct cpuidle_device *, const char *, size_t); }; -typedef struct journal_block_tag_s journal_block_tag_t; +struct snd_fasync { + struct fasync_struct *fasync; + int signal; + int poll; + int on; + struct list_head list; +}; -struct nfs_page_iter_page { - const struct nfs_page *req; - size_t count; +struct snd_pci_quirk { + unsigned short subvendor; + unsigned short subdevice; + unsigned short subdevice_mask; + int value; }; -struct nfs4_xattr_bucket { - spinlock_t lock; - struct hlist_head hlist; - struct nfs4_xattr_cache *cache; - bool draining; +struct drop_reason_list { + const char * const *reasons; + size_t n_reasons; }; -struct nfs4_xattr_entry; +struct skb_checksum_ops { + __wsum (*update)(const void *, int, __wsum); + __wsum (*combine)(__wsum, __wsum, int, int); +}; -struct nfs4_xattr_cache { - struct kref ref; - struct nfs4_xattr_bucket buckets[64]; - struct list_head lru; - struct list_head dispose; - atomic_long_t nent; - spinlock_t listxattr_lock; - struct inode *inode; - struct nfs4_xattr_entry *listxattr; +struct page_frag_1k { + void *va; + u16 offset; + bool pfmemalloc; }; -struct nfs4_xattr_entry { - struct kref ref; - struct hlist_node hnode; - struct list_head lru; - struct list_head dispose; - char *xattr_name; - void *xattr_value; - size_t xattr_size; - struct nfs4_xattr_bucket *bucket; - uint32_t flags; +struct napi_alloc_cache { + struct page_frag_cache page; + struct page_frag_1k page_small; + unsigned int skb_count; + void *skb_cache[64]; }; -struct fscache_cookie; +enum skb_drop_reason_subsys { + SKB_DROP_REASON_SUBSYS_CORE = 0, + SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1, + SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR = 2, + SKB_DROP_REASON_SUBSYS_OPENVSWITCH = 3, + SKB_DROP_REASON_SUBSYS_NUM = 4, +}; enum { - SKCIPHER_WALK_PHYS = 1, - SKCIPHER_WALK_SLOW = 2, - SKCIPHER_WALK_COPY = 4, - SKCIPHER_WALK_DIFF = 8, - SKCIPHER_WALK_SLEEP = 16, + SCM_TSTAMP_SND = 0, + SCM_TSTAMP_SCHED = 1, + SCM_TSTAMP_ACK = 2, }; -struct scatter_walk { - struct scatterlist *sg; - unsigned int offset; +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 skcipher_walk_buffer { - struct list_head entry; - struct scatter_walk dst; - unsigned int len; - u8 *data; - u8 buffer[0]; +struct ip_auth_hdr { + __u8 nexthdr; + __u8 hdrlen; + __be16 reserved; + __be32 spi; + __be32 seq_no; + __u8 auth_data[0]; }; -struct skcipher_instance { - void (*free)(struct skcipher_instance *); - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - union { - struct { - char head[64]; - struct crypto_instance base; - } s; - struct skcipher_alg alg; - }; +struct mpls_shim_hdr { + __be32 label_stack_entry; }; -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 skb_free_array { + unsigned int skb_count; + void *skb_array[16]; }; -struct crypto_istat_cipher { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t err_cnt; -}; +struct ts_ops; -struct crypto_cipher_spawn { - struct crypto_spawn base; -}; +struct ts_state; -struct skcipher_ctx_simple { - struct crypto_cipher *cipher; +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 crypto_skcipher_spawn { - struct crypto_spawn base; +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 io_open { - struct file *file; - int dfd; - u32 file_slot; - struct filename *filename; - struct open_how how; - unsigned long nofile; +struct ts_state { + unsigned int offset; + char cb[48]; }; -struct io_close { - struct file *file; - int fd; - u32 file_slot; +typedef int (*sendmsg_func)(struct sock *, struct msghdr *); + +struct compat_cmsghdr { + compat_size_t cmsg_len; + compat_int_t cmsg_level; + compat_int_t cmsg_type; }; -typedef long mpi_limb_signed_t; +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, +}; -enum enable_type { - undefined = -1, - user_disabled = 0, - auto_disabled = 1, - user_enabled = 2, - auto_enabled = 3, +struct rss_req_info { + struct ethnl_req_info base; + u32 rss_context; }; -enum release_type { - leaf_only = 0, - whole_subtree = 1, +struct rss_reply_data { + struct ethnl_reply_data base; + u32 indir_size; + u32 hkey_size; + u32 hfunc; + u32 *indir_table; + u8 *hkey; }; -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 ethtool_fec_config_bits { + ETHTOOL_FEC_NONE_BIT = 0, + ETHTOOL_FEC_AUTO_BIT = 1, + ETHTOOL_FEC_OFF_BIT = 2, + ETHTOOL_FEC_RS_BIT = 3, + ETHTOOL_FEC_BASER_BIT = 4, + ETHTOOL_FEC_LLRS_BIT = 5, }; -struct 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 { + 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, }; -struct clk_fractional_divider { - struct clk_hw hw; - void *reg; - u8 mshift; - u8 mwidth; - u8 nshift; - u8 nwidth; - u8 flags; - void (*approximation)(struct clk_hw *, unsigned long, unsigned long *, unsigned long *, unsigned long *); - spinlock_t *lock; +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 u32_fract { - __u32 numerator; - __u32 denominator; +struct fec_stat_grp { + u64 stats[9]; + u8 cnt; }; -struct virtio_mmio_device { - struct virtio_device vdev; - struct platform_device *pdev; - void *base; - unsigned long version; - spinlock_t lock; - struct list_head virtqueues; +struct fec_reply_data { + struct ethnl_reply_data base; + unsigned long fec_link_modes[2]; + u32 active_fec; + u8 fec_auto; + struct fec_stat_grp corr; + struct fec_stat_grp uncorr; + struct fec_stat_grp corr_bits; }; -struct virtio_mmio_vq_info { - struct virtqueue *vq; - struct list_head node; +struct igmphdr { + __u8 type; + __u8 code; + __sum16 csum; + __be32 group; }; -struct tty_audit_buf { - struct mutex mutex; - dev_t dev; - bool icanon; - size_t valid; - unsigned char *data; +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 ports_driver_data { - struct dentry *debugfs_dir; - struct list_head portdevs; - struct list_head consoles; +struct igmpv3_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + __be32 grec_mca; + __be32 grec_src[0]; }; -struct hvc_struct; +struct igmpv3_report { + __u8 type; + __u8 resv1; + __sum16 csum; + __be16 resv2; + __be16 ngrec; + struct igmpv3_grec grec[0]; +}; -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 igmp_mc_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *in_dev; }; -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 igmp_mcf_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *idev; + struct ip_mc_list *im; }; -struct console___2 { - struct list_head list; - struct hvc_struct *hvc; - struct winsize ws; - u32 vtermno; +struct ping_iter_state { + struct seq_net_private p; + int bucket; + sa_family_t family; }; -struct port_stats { - unsigned long bytes_sent; - unsigned long bytes_received; - unsigned long bytes_discarded; +struct pingfakehdr { + struct icmphdr icmph; + struct msghdr *msg; + sa_family_t family; + __wsum wcheck; }; -struct ports_device; +struct svc_pool_map { + int count; + int mode; + unsigned int npools; + unsigned int *pool_to; + unsigned int *to_pool; +}; -struct port_buffer; +enum { + SVC_POOL_AUTO = -1, + SVC_POOL_GLOBAL = 0, + SVC_POOL_PERCPU = 1, + SVC_POOL_PERNODE = 2, +}; -struct port { - 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; +enum rpc_msg_type { + RPC_CALL = 0, + RPC_REPLY = 1, }; -struct virtio_console_control { - __virtio32 id; - __virtio16 event; - __virtio16 value; +enum rpc_reply_stat { + RPC_MSG_ACCEPTED = 0, + RPC_MSG_DENIED = 1, }; -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; +enum rpc_reject_stat { + RPC_MISMATCH = 0, + RPC_AUTH_ERROR = 1, }; -struct port_buffer { - char *buf; - size_t size; - size_t len; - size_t offset; - dma_addr_t dma; +struct xsk_dma_map { + dma_addr_t *dma_pages; struct device *dev; + struct net_device *netdev; + refcount_t users; 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; + u32 dma_pages_cnt; + bool dma_need_sync; }; -struct firmware_cache { - spinlock_t lock; - struct list_head head; - int state; - spinlock_t name_lock; - struct list_head fw_names; - struct delayed_work work; - struct notifier_block pm_notify; +struct pt_regs_offset { + const char *name; + int offset; }; -enum fw_status { - FW_STATUS_UNKNOWN = 0, - FW_STATUS_LOADING = 1, - FW_STATUS_DONE = 2, - FW_STATUS_ABORTED = 3, +struct flush_tlb_range_data { + unsigned long asid; + unsigned long start; + unsigned long size; + unsigned long stride; }; -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 taint_flag { + char c_true; + char c_false; + bool module; }; -struct fw_state { - struct completion completion; - enum fw_status status; +enum error_detector { + ERROR_DETECTOR_KFENCE = 0, + ERROR_DETECTOR_KASAN = 1, + ERROR_DETECTOR_WARN = 2, }; -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 warn_args { + const char *fmt; + va_list args; }; -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; +enum desc_state { + desc_miss = -1, + desc_reserved = 0, + desc_committed = 1, + desc_finalized = 2, + desc_reusable = 3, }; -struct fw_cache_entry { - struct list_head list; - const char *name; +struct prb_data_block { + unsigned long id; + char data[0]; }; -struct fw_name_devm { - unsigned long magic; - const char *name; +enum { + IRQ_STARTUP_NORMAL = 0, + IRQ_STARTUP_MANAGED = 1, + IRQ_STARTUP_ABORT = 2, }; -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_alarmtimer_suspend)(void *, ktime_t, int); -typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *); +typedef void (*btf_trace_alarmtimer_fired)(void *, struct alarm *, ktime_t); -enum scsi_vpd_parameters { - SCSI_VPD_HEADER_SIZE = 4, -}; +typedef void (*btf_trace_alarmtimer_start)(void *, struct alarm *, ktime_t); -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]; -}; +typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t); -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 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_scsi_cmd_done_timeout_template { +struct trace_event_raw_alarmtimer_suspend { struct trace_entry ent; - unsigned int host_no; - unsigned int channel; - unsigned int id; - unsigned int lun; - int result; - unsigned int opcode; - unsigned int cmd_len; - int driver_tag; - int scheduler_tag; - unsigned int data_sglen; - unsigned int prot_sglen; - unsigned char prot_op; - u32 __data_loc_cmnd; - u8 sense_key; - u8 asc; - u8 ascq; + s64 expires; + unsigned char alarm_type; char __data[0]; }; -struct trace_event_raw_scsi_eh_wakeup { +struct trace_event_raw_alarm_class { struct trace_entry ent; - unsigned int host_no; + void *alarm; + unsigned char alarm_type; + s64 expires; + s64 now; 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 scsi_mode_data { - __u32 length; - __u16 block_descriptor_length; - __u8 medium_type; - __u8 device_specific; - __u8 header_length; - __u8 longlba: 1; -}; - -struct trace_event_data_offsets_scsi_eh_wakeup {}; - -struct reg_val { - u16 reg; - u32 val; -}; +struct trace_event_data_offsets_alarmtimer_suspend {}; -struct vsc8531_edge_rate_table { - u32 vddmac; - u32 slowdown[8]; -}; +struct trace_event_data_offsets_alarm_class {}; -struct vsc85xx_hw_stat { - const char *string; - u8 reg; - u16 page; - u16 mask; +struct fmeter { + int cnt; + int val; + time64_t time; + spinlock_t lock; }; -enum csr_target { - MACRO_CTRL = 7, +enum prs_errcode { + PERR_NONE = 0, + PERR_INVCPUS = 1, + PERR_INVPARENT = 2, + PERR_NOTPART = 3, + PERR_NOTEXCL = 4, + PERR_NOCPUS = 5, + PERR_HOTPLUG = 6, + PERR_CPUSEMPTY = 7, + PERR_HKEEPING = 8, }; -enum rgmii_clock_delay { - RGMII_CLK_DELAY_0_2_NS = 0, - RGMII_CLK_DELAY_0_8_NS = 1, - RGMII_CLK_DELAY_1_1_NS = 2, - RGMII_CLK_DELAY_1_7_NS = 3, - RGMII_CLK_DELAY_2_0_NS = 4, - RGMII_CLK_DELAY_2_3_NS = 5, - RGMII_CLK_DELAY_2_6_NS = 6, - RGMII_CLK_DELAY_3_4_NS = 7, +struct cpuset { + struct cgroup_subsys_state css; + unsigned long flags; + cpumask_var_t cpus_allowed; + nodemask_t mems_allowed; + cpumask_var_t effective_cpus; + nodemask_t effective_mems; + cpumask_var_t effective_xcpus; + cpumask_var_t exclusive_cpus; + nodemask_t old_mems_allowed; + struct fmeter fmeter; + int attach_in_progress; + int pn; + int relax_domain_level; + int nr_subparts; + int partition_root_state; + int use_parent_ecpus; + int child_ecpus_count; + int nr_deadline_tasks; + int nr_migrate_dl_tasks; + u64 sum_migrate_dl_bw; + enum prs_errcode prs_err; + struct cgroup_file partition_file; + struct list_head remote_sibling; }; -enum phy_tunable_id { - ETHTOOL_PHY_ID_UNSPEC = 0, - ETHTOOL_PHY_DOWNSHIFT = 1, - ETHTOOL_PHY_FAST_LINK_DOWN = 2, - ETHTOOL_PHY_EDPD = 3, - __ETHTOOL_PHY_TUNABLE_COUNT = 4, +enum partition_cmd { + partcmd_enable = 0, + partcmd_disable = 1, + partcmd_update = 2, + partcmd_invalidate = 3, }; -struct vsc85xx_ptp; - -struct vsc8531_private { - int rate_magic; - u16 supp_led_modes; - u32 leds_mode[4]; - u8 nleds; - const struct vsc85xx_hw_stat *hw_stats; - u64 *stats; - int nstats; - u8 addr; - unsigned int base_addr; - struct mii_timestamper mii_ts; - bool input_clk_init; - struct vsc85xx_ptp *ptp; - struct gpio_desc *load_save; - unsigned int ts_base_addr; - u8 ts_base_phy; - struct mutex ts_lock; - struct mutex phc_lock; +struct cpuset_migrate_mm_work { + struct work_struct work; + struct mm_struct *mm; + nodemask_t from; + nodemask_t to; }; -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 *); +struct sched_domain_attr { + int relax_domain_level; +}; -typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *); +struct tmpmasks { + cpumask_var_t addmask; + cpumask_var_t delmask; + cpumask_var_t new_cpus; +}; -typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *); +typedef enum { + CS_ONLINE = 0, + CS_CPU_EXCLUSIVE = 1, + CS_MEM_EXCLUSIVE = 2, + CS_MEM_HARDWALL = 3, + CS_MEMORY_MIGRATE = 4, + CS_SCHED_LOAD_BALANCE = 5, + CS_SPREAD_PAGE = 6, + CS_SPREAD_SLAB = 7, +} cpuset_flagbits_t; -typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *); +typedef enum { + FILE_MEMORY_MIGRATE = 0, + FILE_CPULIST = 1, + FILE_MEMLIST = 2, + FILE_EFFECTIVE_CPULIST = 3, + FILE_EFFECTIVE_MEMLIST = 4, + FILE_SUBPARTS_CPULIST = 5, + FILE_EXCLUSIVE_CPULIST = 6, + FILE_EFFECTIVE_XCPULIST = 7, + FILE_CPU_EXCLUSIVE = 8, + FILE_MEM_EXCLUSIVE = 9, + FILE_MEM_HARDWALL = 10, + FILE_SCHED_LOAD_BALANCE = 11, + FILE_PARTITION_ROOT = 12, + FILE_SCHED_RELAX_DOMAIN_LEVEL = 13, + FILE_MEMORY_PRESSURE_ENABLED = 14, + FILE_MEMORY_PRESSURE = 15, + FILE_SPREAD_PAGE = 16, + FILE_SPREAD_SLAB = 17, +} cpuset_filetype_t; -typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); +struct bpf_preload_info; -typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct bpf_preload_ops { + int (*preload)(struct bpf_preload_info *); + struct module *owner; +}; -typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct bpf_preload_info { + char link_name[16]; + struct bpf_link *link; +}; -typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); +enum bpf_type { + BPF_TYPE_UNSPEC = 0, + BPF_TYPE_PROG = 1, + BPF_TYPE_MAP = 2, + BPF_TYPE_LINK = 3, +}; -typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *); +enum { + OPT_MODE = 0, +}; -typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct map_iter { + void *key; + bool done; +}; -typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct bpf_mount_opts { + umode_t mode; +}; -typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct reuseport_array { + struct bpf_map map; + struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0]; +}; -typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); +typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); +typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *); +typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *); +typedef void (*btf_trace_mm_compaction_migratepages)(void *, struct compact_control *, unsigned int); -typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); +typedef void (*btf_trace_mm_compaction_begin)(void *, struct compact_control *, unsigned long, unsigned long, bool); -typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); +typedef void (*btf_trace_mm_compaction_end)(void *, struct compact_control *, unsigned long, unsigned long, bool, int); -typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); +typedef void (*btf_trace_mm_compaction_try_to_compact_pages)(void *, int, gfp_t, int); -typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); +typedef void (*btf_trace_mm_compaction_finished)(void *, struct zone *, int, int); -typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); +typedef void (*btf_trace_mm_compaction_suitable)(void *, struct zone *, int, int); -typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); +typedef void (*btf_trace_mm_compaction_deferred)(void *, struct zone *, int); -typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *); +typedef void (*btf_trace_mm_compaction_defer_compaction)(void *, struct zone *, int); -typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); +typedef void (*btf_trace_mm_compaction_defer_reset)(void *, struct zone *, int); -typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); +typedef void (*btf_trace_mm_compaction_kcompactd_sleep)(void *, int); -typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); +typedef void (*btf_trace_mm_compaction_wakeup_kcompactd)(void *, int, int, enum zone_type); -typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); +typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type); -typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *); +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]; +}; -typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); +struct trace_event_raw_mm_compaction_migratepages { + struct trace_entry ent; + unsigned long nr_migrated; + unsigned long nr_failed; + char __data[0]; +}; -typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *); +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]; +}; -typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); +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]; +}; -typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *); +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]; +}; -typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); +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]; +}; -typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); +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]; +}; -typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); +struct trace_event_raw_mm_compaction_kcompactd_sleep { + struct trace_entry ent; + int nid; + char __data[0]; +}; -typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); +struct trace_event_raw_kcompactd_wake_template { + struct trace_entry ent; + int nid; + int order; + enum zone_type highest_zoneidx; + char __data[0]; +}; -typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); +typedef enum { + ISOLATE_ABORT = 0, + ISOLATE_NONE = 1, + ISOLATE_SUCCESS = 2, +} isolate_migrate_t; -typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); +struct trace_event_data_offsets_mm_compaction_isolate_template {}; -typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); +struct trace_event_data_offsets_mm_compaction_migratepages {}; -typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); +struct trace_event_data_offsets_mm_compaction_begin {}; -typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); +struct trace_event_data_offsets_mm_compaction_end {}; -typedef void (*btf_trace_xhci_handle_port_status)(void *, u32, u32); +struct trace_event_data_offsets_mm_compaction_try_to_compact_pages {}; -typedef void (*btf_trace_xhci_get_port_status)(void *, u32, u32); +struct trace_event_data_offsets_mm_compaction_suitable_template {}; -typedef void (*btf_trace_xhci_hub_status_data)(void *, u32, u32); +struct trace_event_data_offsets_mm_compaction_defer_template {}; -typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32); +struct trace_event_data_offsets_mm_compaction_kcompactd_sleep {}; -typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); +struct trace_event_data_offsets_kcompactd_wake_template {}; -struct dbc_request; +struct swap_extent { + struct rb_node rb_node; + unsigned long start_page; + unsigned long nr_pages; + sector_t start_block; +}; -typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); +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 xhci_dbc; +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 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; +struct page_region { + __u64 start; + __u64 end; + __u64 categories; }; -enum dbc_state { - DS_DISABLED = 0, - DS_INITIALIZED = 1, - DS_ENABLED = 2, - DS_CONNECTED = 3, - DS_CONFIGURED = 4, - DS_STALLED = 5, +struct proc_maps_private { + struct inode *inode; + struct task_struct *task; + struct mm_struct *mm; + struct vma_iterator iter; }; -struct dbc_ep { - struct xhci_dbc *dbc; - struct list_head list_pending; - struct xhci_ring *ring; - unsigned int direction: 1; +struct pm_scan_arg { + __u64 size; + __u64 flags; + __u64 start; + __u64 end; + __u64 walk_end; + __u64 vec; + __u64 vec_len; + __u64 max_pages; + __u64 category_inverted; + __u64 category_mask; + __u64 category_anyof_mask; + __u64 return_mask; +}; + +struct pagemap_scan_private { + struct pm_scan_arg arg; + unsigned long masks_of_interest; + unsigned long cur_vma_category; + struct page_region *vec_buf; + unsigned long vec_buf_len; + unsigned long vec_buf_index; + unsigned long found_pages; + struct page_region __attribute__((btf_type_tag("user"))) *vec_out; }; -struct dbc_regs; +struct mem_size_stats { + unsigned long resident; + unsigned long shared_clean; + unsigned long shared_dirty; + unsigned long private_clean; + unsigned long private_dirty; + unsigned long referenced; + unsigned long anonymous; + unsigned long lazyfree; + unsigned long anonymous_thp; + unsigned long shmem_thp; + unsigned long file_thp; + unsigned long swap; + unsigned long shared_hugetlb; + unsigned long private_hugetlb; + unsigned long ksm; + u64 pss; + u64 pss_anon; + u64 pss_file; + u64 pss_shmem; + u64 pss_dirty; + u64 pss_locked; + u64 swap_pss; +}; -struct dbc_str_descs; +typedef struct { + u64 pme; +} pagemap_entry_t; -struct dbc_driver; +struct pagemapread { + int pos; + int len; + pagemap_entry_t *buffer; + bool show_pfn; +}; -struct xhci_dbc { - spinlock_t lock; - struct device *dev; - struct xhci_hcd *xhci; - struct dbc_regs *regs; - struct xhci_ring *ring_evt; - struct xhci_ring *ring_in; - struct xhci_ring *ring_out; - struct xhci_erst erst; - struct xhci_container_ctx *ctx; - struct dbc_str_descs *string; - dma_addr_t string_dma; - size_t string_size; - u16 idVendor; - u16 idProduct; - u16 bcdDevice; - u8 bInterfaceProtocol; - enum dbc_state state; - struct delayed_work event_work; - unsigned int resume_required: 1; - struct dbc_ep eps[2]; - const struct dbc_driver *driver; - void *priv; +struct clear_refs_private { + enum clear_refs_types type; }; -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; +typedef __kernel_mode_t mode_t; + +struct orlov_stats { + __u64 free_clusters; + __u32 free_inodes; + __u32 used_dirs; }; -struct dbc_str_descs { - char string0[64]; - char manufacturer[64]; - char product[64]; - char serial[64]; +enum { + Opt_block = 0, + Opt_check_r = 1, + Opt_check_s = 2, + Opt_cruft = 3, + Opt_gid___5 = 4, + Opt_ignore___2 = 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___4 = 15, + Opt_unhide = 16, + Opt_utf8 = 17, + Opt_err___5 = 18, + Opt_nocompress = 19, + Opt_hide = 20, + Opt_showassoc = 21, + Opt_dmode = 22, + Opt_overriderockperm = 23, }; -struct dbc_driver { - int (*configure)(struct xhci_dbc *); - void (*disconnect)(struct xhci_dbc *); +struct isofs_iget5_callback_data { + unsigned long block; + unsigned long offset; }; -typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *); +struct iso_volume_descriptor { + __u8 type[1]; + char id[5]; + __u8 version[1]; + __u8 data[2041]; +}; -typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *); +struct hs_volume_descriptor { + __u8 foo[8]; + __u8 type[1]; + char id[5]; + __u8 version[1]; + __u8 data[2033]; +}; -typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *); +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 trace_event_raw_xhci_log_msg { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; +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 trace_event_raw_xhci_log_ctx { - struct trace_entry ent; - int ctx_64; - unsigned int ctx_type; - dma_addr_t ctx_dma; - u8 *ctx_va; - unsigned int ctx_ep_num; - u32 __data_loc_ctx_data; - char __data[0]; +struct 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 trace_event_raw_xhci_log_trb { - struct trace_entry ent; - u32 type; - u32 field0; - u32 field1; - u32 field2; - u32 field3; - char __data[0]; +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 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]; +enum nfs4_session_state { + NFS4_SESSION_INITING = 0, + NFS4_SESSION_ESTABLISHED = 1, }; -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]; -}; +typedef void (*btf_trace_nlmclnt_test)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); -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]; -}; +typedef void (*btf_trace_nlmclnt_lock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); -struct trace_event_raw_xhci_log_ep_ctx { - struct trace_entry ent; - u32 info; - u32 info2; - u64 deq; - u32 tx_info; - char __data[0]; -}; +typedef void (*btf_trace_nlmclnt_unlock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); -struct trace_event_raw_xhci_log_slot_ctx { - struct trace_entry ent; - u32 info; - u32 info2; - u32 tt_info; - u32 state; - char __data[0]; -}; +typedef void (*btf_trace_nlmclnt_grant)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); -struct trace_event_raw_xhci_log_ctrl_ctx { +struct trace_event_raw_nlmclnt_lock_event { struct trace_entry ent; - u32 drop; - u32 add; + u32 oh; + u32 svid; + u32 fh; + unsigned long status; + u64 start; + u64 len; + u32 __data_loc_addr; char __data[0]; }; -struct trace_event_raw_xhci_log_ring { - struct trace_entry ent; - u32 type; - void *ring; - dma_addr_t enq; - dma_addr_t deq; - dma_addr_t enq_seg; - dma_addr_t deq_seg; - unsigned int num_segs; - unsigned int stream_id; - unsigned int cycle_state; - unsigned int bounce_buf_len; - char __data[0]; +struct trace_event_data_offsets_nlmclnt_lock_event { + u32 addr; }; -struct trace_event_raw_xhci_log_portsc { - struct trace_entry ent; - u32 portnum; - u32 portsc; - char __data[0]; +struct cond_insertf_data { + struct policydb *p; + struct avtab_node **dst; + struct cond_av_list *other; }; -struct trace_event_raw_xhci_log_doorbell { - struct trace_entry ent; - u32 slot; - u32 doorbell; - char __data[0]; +struct policy_data { + struct policydb *p; + void *fp; }; -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 aa_audit_rule { + struct aa_label *label; }; -struct trace_event_data_offsets_xhci_log_msg { - u32 msg; +struct crypto_comp { + struct crypto_tfm base; }; -struct trace_event_data_offsets_xhci_log_ctx { - u32 ctx_data; +struct ahash_alg { + int (*init)(struct ahash_request *); + int (*update)(struct ahash_request *); + int (*final)(struct ahash_request *); + int (*finup)(struct ahash_request *); + int (*digest)(struct ahash_request *); + int (*export)(struct ahash_request *, void *); + int (*import)(struct ahash_request *, const void *); + int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_ahash *); + void (*exit_tfm)(struct crypto_ahash *); + int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *); + struct hash_alg_common halg; }; -struct trace_event_data_offsets_xhci_log_trb {}; - -struct trace_event_data_offsets_xhci_log_free_virt_dev {}; - -struct trace_event_data_offsets_xhci_log_virt_dev {}; - -struct trace_event_data_offsets_xhci_log_urb {}; - -struct trace_event_data_offsets_xhci_log_ep_ctx {}; - -struct trace_event_data_offsets_xhci_log_slot_ctx {}; - -struct trace_event_data_offsets_xhci_log_ctrl_ctx {}; - -struct trace_event_data_offsets_xhci_log_ring {}; - -struct trace_event_data_offsets_xhci_log_portsc {}; - -struct trace_event_data_offsets_xhci_log_doorbell {}; - -struct trace_event_data_offsets_xhci_dbc_log_request {}; - -struct starfive_wdt_variant { - unsigned int control; - unsigned int load; - unsigned int reload; - unsigned int enable; - unsigned int value; - unsigned int int_clr; - unsigned int unlock; - unsigned int int_status; - u32 unlock_key; - char enrst_shift; - char en_shift; - bool intclr_check; - char intclr_ava_shift; - bool double_timeout; +struct ahash_instance { + void (*free)(struct ahash_instance *); + union { + struct { + char head[96]; + struct crypto_instance base; + } s; + struct ahash_alg alg; + }; }; -struct starfive_wdt { - struct watchdog_device wdd; - spinlock_t lock; - void *base; - struct clk *core_clk; - struct clk *apb_clk; - const struct starfive_wdt_variant *variant; - unsigned long freq; - u32 count; - u32 reload; +struct crypto_hash_walk { + char *data; + unsigned int offset; + unsigned int flags; + struct page *pg; + unsigned int entrylen; + unsigned int total; + struct scatterlist *sg; }; -struct sunxi_mmc_clk_delay; - -struct sunxi_mmc_cfg { - u32 idma_des_size_bits; - u32 idma_des_shift; - const struct sunxi_mmc_clk_delay *clk_delays; - bool can_calibrate; - bool mask_data0; - bool needs_new_timings; - bool ccu_has_timings_switch; +struct crypto_ahash_spawn { + struct crypto_spawn base; }; -struct sunxi_mmc_clk_delay { - u32 output; - u32 sample; +struct show_busy_params { + struct seq_file *m; + struct blk_mq_hw_ctx *hctx; }; -struct sunxi_idma_des { - __le32 config; - __le32 buf_size; - __le32 buf_addr_ptr1; - __le32 buf_addr_ptr2; +enum { + IO_WQ_BIT_EXIT = 0, }; -struct sunxi_mmc_host { - struct device *dev; - struct mmc_host *mmc; - struct reset_control *reset; - const struct sunxi_mmc_cfg *cfg; - void *reg_base; - struct clk *clk_ahb; - struct clk *clk_mmc; - struct clk *clk_sample; - struct clk *clk_output; - spinlock_t lock; - int irq; - u32 int_sum; - u32 sdio_imask; - dma_addr_t sg_dma; - void *sg_cpu; - bool wait_dma; - struct mmc_request *mrq; - struct mmc_request *manual_stop_mrq; - int ferror; - bool vqmmc_enabled; - bool use_new_timings; +enum { + IO_WORKER_F_UP = 1, + IO_WORKER_F_RUNNING = 2, + IO_WORKER_F_FREE = 4, + IO_WORKER_F_BOUND = 8, }; -struct compat_if_settings { - unsigned int type; - unsigned int size; - compat_uptr_t ifs_ifsu; +enum { + IO_ACCT_STALLED_BIT = 0, }; -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; +enum { + IO_WQ_ACCT_BOUND = 0, + IO_WQ_ACCT_UNBOUND = 1, + IO_WQ_ACCT_NR = 2, }; -struct __kernel_sock_timeval { - __s64 tv_sec; - __s64 tv_usec; +struct io_worker { + refcount_t ref; + unsigned int flags; + struct hlist_nulls_node nulls_node; + struct list_head all_list; + struct task_struct *task; + struct io_wq *wq; + struct io_wq_work *cur_work; + struct io_wq_work *next_work; + raw_spinlock_t lock; + struct completion ref_done; + unsigned long create_state; + struct callback_head create_work; + int create_index; + union { + struct callback_head rcu; + struct work_struct work; + }; }; -struct scm_ts_pktinfo { - __u32 if_index; - __u32 pkt_length; - __u32 reserved[2]; -}; +typedef struct io_wq_work *free_work_fn(struct io_wq_work *); -struct used_address { - struct __kernel_sockaddr_storage name; - unsigned int name_len; -}; +typedef void io_wq_work_fn(struct io_wq_work *); -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, +struct io_wq_acct { + unsigned int nr_workers; + unsigned int max_workers; + int index; + atomic_t nr_running; + raw_spinlock_t lock; + struct io_wq_work_list work_list; + unsigned long flags; }; -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, +struct io_wq { + unsigned long state; + free_work_fn *free_work; + io_wq_work_fn *do_work; + struct io_wq_hash *hash; + atomic_t worker_refs; + struct completion worker_done; + struct hlist_node cpuhp_node; + struct task_struct *task; + struct io_wq_acct acct[2]; + raw_spinlock_t lock; + struct hlist_nulls_head free_list; + struct list_head all_list; + struct wait_queue_entry wait; + struct io_wq_work *hash_tail[64]; + cpumask_var_t cpu_mask; }; -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, +struct io_cb_cancel_data { + work_cancel_fn *fn; + void *data; + int nr_running; + int nr_pending; + bool cancel_all; }; -enum ethtool_flags { - ETH_FLAG_TXVLAN = 128, - ETH_FLAG_RXVLAN = 256, - ETH_FLAG_LRO = 32768, - ETH_FLAG_NTUPLE = 134217728, - ETH_FLAG_RXHASH = 268435456, +struct online_data { + unsigned int cpu; + bool online; }; -enum ethtool_sfeatures_retval_bits { - ETHTOOL_F_UNSUPPORTED__BIT = 0, - ETHTOOL_F_WISH__BIT = 1, - ETHTOOL_F_COMPAT__BIT = 2, +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 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, -}; +typedef enum { + CODES = 0, + LENS = 1, + DISTS = 2, +} codetype; -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, -}; +typedef unsigned int uInt; -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, -}; +typedef ZSTD_CStream zstd_cstream; -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 pinctrl_dt_map { + struct list_head node; + struct pinctrl_dev *pctldev; + struct pinctrl_map *map; + unsigned int num_maps; }; -struct ethtool_rx_flow_match { - struct flow_dissector dissector; - long: 0; - struct ethtool_rx_flow_key key; - struct ethtool_rx_flow_key mask; +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 ethtool_devlink_compat { - struct devlink *devlink; - union { - struct ethtool_flash efl; - struct ethtool_drvinfo info; - }; +struct res_proc_context { + struct list_head *list; + int (*preproc)(struct acpi_resource *, void *); + void *preproc_data; + int count; + int error; }; -struct ethtool_value { - __u32 cmd; - __u32 data; +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 flow_rule; +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; -struct ethtool_rx_flow_rule { - struct flow_rule *rule; - unsigned long priv[0]; -}; +typedef void (*acpi_osd_exec_callback)(void *); -struct flow_match { - struct flow_dissector *dissector; - void *mask; - void *key; +struct acpi_vendor_walk_info { + struct acpi_vendor_uuid *uuid; + struct acpi_buffer *buffer; + acpi_status status; }; -typedef void (*action_destr)(void *); - -struct nf_flowtable; - -struct psample_group; +struct mpfs_msspll_hw_clock { + void *base; + unsigned int id; + u32 reg_offset; + u32 shift; + u32 width; + u32 flags; + struct clk_hw hw; + struct clk_init_data init; +}; -struct action_gate_entry; +struct mpfs_cfg_hw_clock { + struct clk_divider cfg; + struct clk_init_data init; + unsigned int id; + u32 reg_offset; +}; -struct flow_action_cookie; +struct mpfs_periph_hw_clock { + struct clk_gate periph; + unsigned int id; +}; -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 mpfs_clock_data { + struct device *dev; + void *base; + void *msspll_base; + struct clk_hw_onecell_data hw_data; }; -struct flow_action { - unsigned int num_entries; - struct flow_action_entry entries[0]; +struct virtio_mmio_device { + struct virtio_device vdev; + struct platform_device *pdev; + void *base; + unsigned long version; + spinlock_t lock; + struct list_head virtqueues; }; -struct flow_rule { - struct flow_match match; - struct flow_action action; +struct virtio_mmio_vq_info { + struct virtqueue *vq; + struct list_head node; }; -struct flow_action_cookie { - u32 cookie_len; - u8 cookie[0]; +struct reset_simple_devdata { + u32 reg_offset; + u32 nr_resets; + bool active_low; + bool status_active_low; }; -struct ethtool_link_usettings { - struct ethtool_link_settings base; - struct { - __u32 supported[4]; - __u32 advertising[4]; - __u32 lp_advertising[4]; - } link_modes; +struct tty_audit_buf { + struct mutex mutex; + dev_t dev; + bool icanon; + size_t valid; + u8 *data; }; -struct ethtool_rx_flow_spec_input { - const struct ethtool_rx_flow_spec *fs; - u32 rss_ctx; +struct of_serial_info { + struct clk *clk; + struct reset_control *rst; + int type; + int line; }; -struct ethtool_gstrings { - __u32 cmd; - __u32 string_set; - __u32 len; - __u8 data[0]; +struct of_phandle_iterator { + const char *cells_name; + int cell_count; + const struct device_node *parent; + const __be32 *list_end; + const __be32 *phandle_end; + const __be32 *cur; + uint32_t cur_count; + phandle phandle; + struct device_node *node; }; -struct ethtool_perm_addr { - __u32 cmd; - __u32 size; - __u8 data[0]; +struct of_pci_iommu_alias_info { + struct device *dev; + struct device_node *np; }; -struct ethtool_sset_info { - __u32 cmd; - __u32 reserved; - __u64 sset_mask; - __u32 data[0]; +struct internal_container { + struct klist_node node; + struct attribute_container *cont; + struct device classdev; }; -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 firmware_cache { + spinlock_t lock; + struct list_head head; + int state; + spinlock_t name_lock; + struct list_head fw_names; + struct delayed_work work; + struct notifier_block pm_notify; }; -struct ethtool_get_features_block { - __u32 available; - __u32 requested; - __u32 active; - __u32 never_changed; +enum fw_status { + FW_STATUS_UNKNOWN = 0, + FW_STATUS_LOADING = 1, + FW_STATUS_DONE = 2, + FW_STATUS_ABORTED = 3, }; -struct ethtool_gfeatures { - __u32 cmd; - __u32 size; - struct ethtool_get_features_block features[0]; +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 ethtool_set_features_block { - __u32 valid; - __u32 requested; +struct fw_state { + struct completion completion; + enum fw_status status; }; -struct ethtool_sfeatures { - __u32 cmd; - __u32 size; - struct ethtool_set_features_block features[0]; +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 ethtool_per_queue_op { - __u32 cmd; - __u32 sub_command; - __u32 queue_mask[128]; - char data[0]; +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; }; -enum tcp_ca_ack_event_flags { - CA_ACK_SLOWPATH = 1, - CA_ACK_WIN_UPDATE = 2, - CA_ACK_ECE = 4, +struct fw_cache_entry { + struct list_head list; + const char *name; }; -enum tcp_fastopen_client_fail { - TFO_STATUS_UNSPEC = 0, - TFO_COOKIE_UNAVAILABLE = 1, - TFO_DATA_NOT_ACKED = 2, - TFO_SYN_RETRANSMITTED = 3, +struct fw_name_devm { + unsigned long magic; + const char *name; }; -struct tcp_sack_block_wire { - __be32 start_seq; - __be32 end_seq; +struct dma_buf_list { + struct list_head head; + struct mutex lock; }; -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; +enum dma_resv_usage { + DMA_RESV_USAGE_KERNEL = 0, + DMA_RESV_USAGE_WRITE = 1, + DMA_RESV_USAGE_READ = 2, + DMA_RESV_USAGE_BOOKKEEP = 3, }; -struct gro_cell; +struct dma_resv_list; -struct gro_cells { - struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells; +struct dma_resv { + struct ww_mutex lock; + struct dma_resv_list __attribute__((btf_type_tag("rcu"))) *fences; }; -struct gro_cell { - struct sk_buff_head napi_skbs; - struct napi_struct napi; +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 xfrm_trans_tasklet { - struct work_struct work; - spinlock_t queue_lock; - struct sk_buff_head queue; -}; +struct dma_buf; -struct ip_tunnel_prl_entry; +struct dma_buf_attach_ops; -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 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 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 iosys_map { + union { + void *vaddr_iomem; + void *vaddr; + }; + bool is_iomem; }; -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 dma_buf_poll_cb_t { + struct dma_fence_cb cb; + wait_queue_head_t *poll; + __poll_t active; }; -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 dma_buf_ops; -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 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; }; -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, +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 *); }; -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 dma_buf_attach_ops { + bool allow_peer2peer; + void (*move_notify)(struct dma_buf_attachment *); }; -struct svc_pool_map { - int count; - int mode; - unsigned int npools; - unsigned int *pool_to; - unsigned int *to_pool; +struct dma_buf_import_sync_file { + __u32 flags; + __s32 fd; }; -enum { - SVC_POOL_AUTO = -1, - SVC_POOL_GLOBAL = 0, - SVC_POOL_PERCPU = 1, - SVC_POOL_PERNODE = 2, +struct dma_buf_export_sync_file { + __u32 flags; + __s32 fd; }; -enum rpc_reply_stat { - RPC_MSG_ACCEPTED = 0, - RPC_MSG_DENIED = 1, +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; }; -enum rpc_reject_stat { - RPC_MISMATCH = 0, - RPC_AUTH_ERROR = 1, +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; }; -enum { - Rworksched = 1, - Rpending = 2, - Wworksched = 4, - Wpending = 8, +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; }; -enum { - Opt_port = 0, - Opt_rfdno = 1, - Opt_wfdno = 2, - Opt_err___8 = 3, - Opt_privport = 4, +struct dma_buf_sync { + __u64 flags; }; -struct p9_conn; +typedef struct mtd_info *cfi_cmdset_fn_t(struct map_info *, int); -struct p9_poll_wait { - struct p9_conn *conn; - wait_queue_entry_t wait; - wait_queue_head_t *wait_addr; +struct rtl821x_priv { + u16 phycr1; + u16 phycr2; + bool has_phycr2; + struct clk *clk; }; -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; +struct e1000_stats { + char stat_string[32]; + int type; + int sizeof_stat; + int stat_offset; }; -struct p9_trans_fd { - struct file *rd; - struct file *wr; - struct p9_conn conn; +enum { + NETDEV_STATS = 0, + E1000_STATS = 1, }; -struct p9_fd_opts { - int rfd; - int wfd; - u16 port; - bool privport; +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 riscv_cpuinfo { - unsigned long mvendorid; - unsigned long marchid; - unsigned long mimpid; +struct ehci_iso_packet { + u64 bufp; + __le32 transaction; + u8 cross; + u32 buf1; }; -struct riscv_isa_ext_data { - char uprop[32]; - unsigned int isa_ext_id; +struct ehci_iso_sched { + struct list_head td_list; + unsigned int span; + unsigned int first_packet; + struct ehci_iso_packet packet[0]; }; -enum { - IRQ_STARTUP_NORMAL = 0, - IRQ_STARTUP_MANAGED = 1, - IRQ_STARTUP_ABORT = 2, +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 tk_fast { - seqcount_latch_t seq; - struct tk_read_base base[2]; +struct sun6i_rtc_clk_data; + +struct sun6i_rtc_dev { + struct rtc_device *rtc; + const struct sun6i_rtc_clk_data *data; + void *base; + int irq; + time64_t alarm; + unsigned long flags; + struct clk_hw hw; + struct clk_hw *int_osc; + struct clk *losc; + struct clk *ext_losc; + spinlock_t lock; }; -enum timekeeping_adv_mode { - TK_ADV_TICK = 0, - TK_ADV_FREQ = 1, +struct sun6i_rtc_clk_data { + unsigned long rc_osc_rate; + unsigned int fixed_prescaler: 16; + unsigned int has_prescaler: 1; + unsigned int has_out_clk: 1; + unsigned int has_losc_en: 1; + unsigned int has_auto_swt: 1; }; -struct system_time_snapshot { - u64 cycles; - ktime_t real; - ktime_t raw; - enum clocksource_ids cs_id; - unsigned int clock_was_set_seq; - u8 cs_was_changed_seq; +struct of_mmc_spi { + struct mmc_spi_platform_data pdata; + int detect_irq; }; -struct ktime_timestamps { - u64 mono; - u64 boot; - u64 real; +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 system_counterval_t { - u64 cycles; - struct clocksource *cs; +struct sys_off_data { + int mode; + void *cb_data; + const char *cmd; + struct device *dev; }; -struct ftrace_page; +struct __extcon_info { + unsigned int type; + unsigned int id; + const char *name; +}; -struct ftrace_rec_iter { - struct ftrace_page *pg; - int index; +struct extcon_cable; + +struct extcon_dev { + const char *name; + const unsigned int *supported_cable; + const u32 *mutually_exclusive; + struct device dev; + unsigned int id; + struct raw_notifier_head nh_all; + struct raw_notifier_head *nh; + struct list_head entry; + int max_supported; + spinlock_t lock; + u32 state; + struct device_type extcon_dev_type; + struct extcon_cable *cables; + struct attribute_group attr_g_muex; + struct attribute **attrs_muex; + struct device_attribute *d_attrs_muex; }; -struct ftrace_page { - struct ftrace_page *next; - struct dyn_ftrace *records; - int index; - int order; +union extcon_property_value { + int intval; }; -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 extcon_cable { + struct extcon_dev *edev; + int cable_index; + struct attribute_group attr_g; + struct device_attribute attr_name; + struct device_attribute attr_state; + struct attribute *attrs[3]; + union extcon_property_value usb_propval[3]; + union extcon_property_value chg_propval[1]; + union extcon_property_value jack_propval[1]; + union extcon_property_value disp_propval[2]; + unsigned long usb_bits[1]; + unsigned long chg_bits[1]; + unsigned long jack_bits[1]; + unsigned long disp_bits[1]; }; -struct ftrace_profile_page; +struct snd_monitor_file { + struct file *file; + const struct file_operations *disconnected_f_op; + struct list_head shutdown_list; + struct list_head list; +}; -struct ftrace_profile_stat { - atomic_t disabled; - struct hlist_head *hash; - struct ftrace_profile_page *pages; - struct ftrace_profile_page *start; - struct tracer_stat stat; +enum { + IF_LINK_MODE_DEFAULT = 0, + IF_LINK_MODE_DORMANT = 1, + IF_LINK_MODE_TESTING = 2, }; -struct ftrace_profile { - struct hlist_node node; - unsigned long ip; - unsigned long counter; - unsigned long long time; - unsigned long long time_squared; +enum lw_bits { + LW_URGENT = 0, }; -struct ftrace_profile_page { - struct ftrace_profile_page *next; - unsigned long index; - struct ftrace_profile records[0]; +struct fib_rule_uid_range { + __u32 start; + __u32 end; }; -enum { - FTRACE_FL_ENABLED = 2147483648, - FTRACE_FL_REGS = 1073741824, - FTRACE_FL_REGS_EN = 536870912, - FTRACE_FL_TRAMP = 268435456, - FTRACE_FL_TRAMP_EN = 134217728, - FTRACE_FL_IPMODIFY = 67108864, - FTRACE_FL_DISABLED = 33554432, - FTRACE_FL_DIRECT = 16777216, - FTRACE_FL_DIRECT_EN = 8388608, - FTRACE_FL_CALL_OPS = 4194304, - FTRACE_FL_CALL_OPS_EN = 2097152, - FTRACE_FL_TOUCHED = 1048576, - FTRACE_FL_MODIFIED = 524288, +struct fib_rule_notifier_info { + struct fib_notifier_info info; + struct fib_rule *rule; }; -enum { - FTRACE_MODIFY_ENABLE_FL = 1, - FTRACE_MODIFY_MAY_SLEEP_FL = 2, +typedef void (*btf_trace_netlink_extack)(void *, const char *); + +struct listeners; + +struct netlink_table { + struct rhashtable hash; + struct hlist_head mc_list; + struct listeners __attribute__((btf_type_tag("rcu"))) *listeners; + unsigned int flags; + unsigned int groups; + struct mutex *cb_mutex; + struct module *module; + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, unsigned long *); + int registered; }; -enum { - FTRACE_ITER_FILTER = 1, - FTRACE_ITER_NOTRACE = 2, - FTRACE_ITER_PRINTALL = 4, - FTRACE_ITER_DO_PROBES = 8, - FTRACE_ITER_PROBE = 16, - FTRACE_ITER_MOD = 32, - FTRACE_ITER_ENABLED = 64, - FTRACE_ITER_TOUCHED = 128, - FTRACE_ITER_ADDRS = 256, +struct listeners { + struct callback_head rcu; + unsigned long masks[0]; }; -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 netlink_skb_flags { + NETLINK_SKB_DST = 8, }; enum { - FTRACE_UPDATE_IGNORE = 0, - FTRACE_UPDATE_MAKE_CALL = 1, - FTRACE_UPDATE_MODIFY_CALL = 2, - FTRACE_UPDATE_MAKE_NOP = 3, + NETLINK_F_KERNEL_SOCKET = 0, + NETLINK_F_RECV_PKTINFO = 1, + NETLINK_F_BROADCAST_SEND_ERROR = 2, + NETLINK_F_RECV_NO_ENOBUFS = 3, + NETLINK_F_LISTEN_ALL_NSID = 4, + NETLINK_F_CAP_ACK = 5, + NETLINK_F_EXT_ACK = 6, + NETLINK_F_STRICT_CHK = 7, }; -enum graph_filter_type { - GRAPH_FILTER_NOTRACE = 0, - GRAPH_FILTER_FUNCTION = 1, +enum { + NETLINK_UNCONNECTED = 0, + NETLINK_CONNECTED = 1, }; -struct ftrace_func_mapper { - struct ftrace_hash hash; +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 ftrace_func_map { - struct ftrace_func_entry entry; - void *data; +struct trace_event_raw_netlink_extack { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -struct ftrace_func_probe { - struct ftrace_probe_ops *probe_ops; - struct ftrace_ops ops; - struct trace_array *tr; +struct netlink_tap { + struct net_device *dev; + struct module *module; struct list_head list; - void *data; - int ref; }; -struct ftrace_mod_map { +struct netlink_sock { + struct sock sk; + unsigned long flags; + u32 portid; + u32 dst_portid; + u32 dst_group; + u32 subscriptions; + u32 ngroups; + unsigned long *groups; + unsigned long state; + size_t max_recvmsg_len; + wait_queue_head_t wait; + bool bound; + bool cb_running; + int dump_done_errno; + struct netlink_callback cb; + struct mutex *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); + void (*netlink_release)(struct sock *, unsigned long *); + struct module *module; + struct rhash_head node; 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 work_struct work; }; -struct ftrace_init_func { - struct list_head list; - unsigned long ip; +struct sockaddr_nl { + __kernel_sa_family_t nl_family; + unsigned short nl_pad; + __u32 nl_pid; + __u32 nl_groups; }; -struct ftrace_mod_load { - struct list_head list; - char *func; - char *module; - int enable; +struct trace_event_data_offsets_netlink_extack { + u32 msg; }; -struct ftrace_iterator { - loff_t pos; - loff_t func_pos; - loff_t mod_pos; - struct ftrace_page *pg; - struct dyn_ftrace *func; - struct ftrace_func_probe *probe; - struct ftrace_func_entry *probe_entry; - struct trace_parser parser; - struct ftrace_hash *hash; - struct ftrace_ops *ops; - struct trace_array *tr; - struct list_head *mod_list; - int pidx; - int idx; - unsigned int flags; +struct netlink_tap_net { + struct list_head netlink_tap_all; + struct mutex netlink_tap_lock; }; -struct ftrace_glob { - char *search; - unsigned int len; - int type; +struct netlink_broadcast_data { + struct sock *exclude_sk; + struct net *net; + u32 portid; + u32 group; + int failure; + int delivery_failure; + int congested; + int delivered; + gfp_t allocation; + struct sk_buff *skb; + struct sk_buff *skb2; + int (*tx_filter)(struct sock *, struct sk_buff *, void *); + void *tx_data; }; -struct ftrace_graph_data { - struct ftrace_hash *hash; - struct ftrace_func_entry *entry; - int idx; - enum graph_filter_type type; - struct ftrace_hash *new_hash; - const struct seq_operations *seq_ops; - struct trace_parser parser; +struct netlink_set_err_data { + struct sock *exclude_sk; + u32 portid; + u32 group; + int code; }; -struct kallsyms_data { - unsigned long *addrs; - const char **syms; - size_t cnt; - size_t found; +struct netlink_compare_arg { + possible_net_t pnet; + u32 portid; }; -struct bpf_cpu_map_entry; +struct nl_pktinfo { + __u32 group; +}; -struct xdp_bulk_queue { - void *q[8]; - struct list_head flush_node; - struct bpf_cpu_map_entry *obj; - unsigned int count; +struct nl_seq_iter { + struct seq_net_private p; + struct rhashtable_iter hti; + int link; }; -struct bpf_cpumap_val { - __u32 qsize; +struct bpf_iter__netlink { union { - int fd; - __u32 id; - } bpf_prog; + struct bpf_iter_meta *meta; + }; + union { + struct netlink_sock *sk; + }; }; -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 completion kthread_running; +struct nlmsgerr { + int error; + struct nlmsghdr msg; }; -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 netlink_notify { + struct net *net; + u32 portid; + int protocol; }; -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 *); +enum nf_ip_hook_priorities { + NF_IP_PRI_FIRST = -2147483648, + NF_IP_PRI_RAW_BEFORE_DEFRAG = -450, + NF_IP_PRI_CONNTRACK_DEFRAG = -400, + NF_IP_PRI_RAW = -300, + NF_IP_PRI_SELINUX_FIRST = -225, + NF_IP_PRI_CONNTRACK = -200, + NF_IP_PRI_MANGLE = -150, + NF_IP_PRI_NAT_DST = -100, + NF_IP_PRI_FILTER = 0, + NF_IP_PRI_SECURITY = 50, + NF_IP_PRI_NAT_SRC = 100, + NF_IP_PRI_SELINUX_LAST = 225, + NF_IP_PRI_CONNTRACK_HELPER = 300, + NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647, + NF_IP_PRI_LAST = 2147483647, +}; -typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *); +struct nf_defrag_hook; -enum pcpu_fc { - PCPU_FC_AUTO = 0, - PCPU_FC_EMBED = 1, - PCPU_FC_PAGE = 2, - PCPU_FC_NR = 3, +struct bpf_nf_link { + struct bpf_link link; + struct nf_hook_ops hook_ops; + struct net *net; + u32 dead; + const struct nf_defrag_hook *defrag_hook; }; -struct 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 nf_defrag_hook { + struct module *owner; + int (*enable)(struct net *); + void (*disable)(struct net *); }; -struct pcpu_chunk { - struct list_head list; - int free_bytes; - struct pcpu_block_md chunk_md; - unsigned long *bound_map; - void *base_addr; - unsigned long *alloc_map; - struct pcpu_block_md *md_blocks; - void *data; - bool immutable; - bool isolated; - int start_offset; - int end_offset; - struct obj_cgroup **obj_cgroups; - int nr_pages; - int nr_populated; - int nr_empty_pop_pages; - unsigned long populated[0]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct ping_table { + struct hlist_head hash[64]; + spinlock_t lock; }; -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, +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 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 ip6addrlbl_init_table { + const struct in6_addr *prefix; + int prefixlen; + u32 label; }; -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]; +enum { + IFAL_ADDRESS = 1, + IFAL_LABEL = 2, + __IFAL_MAX = 3, }; -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 ip6addrlbl_entry { + struct in6_addr prefix; + int prefixlen; + int ifindex; + int addrtype; + u32 label; + struct hlist_node list; + struct callback_head rcu; }; -struct trace_event_raw_percpu_create_chunk { - struct trace_entry ent; - void *base_addr; - char __data[0]; +struct ifaddrlblmsg { + __u8 ifal_family; + __u8 __ifal_reserved; + __u8 ifal_prefixlen; + __u8 ifal_flags; + __u32 ifal_index; + __u32 ifal_seq; }; -struct trace_event_raw_percpu_destroy_chunk { - struct trace_entry ent; - void *base_addr; - char __data[0]; +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, }; -struct pcpu_group_info { - int nr_units; - unsigned long base_offset; - unsigned int *cpu_map; +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 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 sr6_tlv { + __u8 type; + __u8 len; + __u8 data[0]; }; -struct trace_event_data_offsets_percpu_alloc_percpu {}; - -struct trace_event_data_offsets_percpu_free_percpu {}; - -struct trace_event_data_offsets_percpu_alloc_percpu_fail {}; - -struct trace_event_data_offsets_percpu_create_chunk {}; - -struct trace_event_data_offsets_percpu_destroy_chunk {}; - -typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); - -typedef int pcpu_fc_cpu_to_node_fn_t(int); - -struct memcg_vmstats { - long state[48]; - unsigned long events[15]; - long state_pending[48]; - unsigned long events_pending[15]; +struct seg6_bpf_srh_state { + struct ipv6_sr_hdr *srh; + u16 hdrlen; + bool valid; }; -struct mem_cgroup_tree_per_node; +struct seg6_local_lwt; -struct mem_cgroup_tree { - struct mem_cgroup_tree_per_node *rb_tree_per_node[1]; +struct seg6_local_lwtunnel_ops { + int (*build_state)(struct seg6_local_lwt *, const void *, struct netlink_ext_ack *); + void (*destroy_state)(struct seg6_local_lwt *); }; -struct mem_cgroup_tree_per_node { - struct rb_root rb_root; - struct rb_node *rb_rightmost; - spinlock_t lock; +struct seg6_action_desc { + int action; + unsigned long attrs; + unsigned long optattrs; + int (*input)(struct sk_buff *, struct seg6_local_lwt *); + int static_headroom; + struct seg6_local_lwtunnel_ops slwt_ops; }; -struct memory_stat { - const char *name; - unsigned int idx; +struct bpf_lwt_prog { + struct bpf_prog *prog; + char *name; }; -struct move_charge_struct { - spinlock_t lock; - struct mm_struct *mm; - struct mem_cgroup *from; - struct mem_cgroup *to; - unsigned long flags; - unsigned long precharge; - unsigned long moved_charge; - unsigned long moved_swap; - struct task_struct *moving_task; - wait_queue_head_t waitq; +enum seg6_end_dt_mode { + DT_INVALID_MODE = -22, + DT_LEGACY_MODE = 0, + DT_VRF_MODE = 1, }; -struct memcg_stock_pcp { - local_lock_t stock_lock; - struct mem_cgroup *cached; - unsigned int nr_pages; - struct obj_cgroup *cached_objcg; - struct pglist_data *cached_pgdat; - unsigned int nr_bytes; - int nr_slab_reclaimable_b; - int nr_slab_unreclaimable_b; - struct work_struct work; - unsigned long flags; +struct seg6_end_dt_info { + enum seg6_end_dt_mode mode; + struct net *net; + int vrf_ifindex; + int vrf_table; + u16 family; }; -enum mc_target_type { - MC_TARGET_NONE = 0, - MC_TARGET_PAGE = 1, - MC_TARGET_SWAP = 2, - MC_TARGET_DEVICE = 3, +struct seg6_flavors_info { + __u32 flv_ops; + __u8 lcblock_bits; + __u8 lcnode_func_bits; }; -enum res_type { - _MEM = 0, - _MEMSWAP = 1, - _KMEM = 2, - _TCP = 3, -}; +struct pcpu_seg6_local_counters; -enum { - RES_USAGE___2 = 0, - RES_LIMIT___2 = 1, - RES_MAX_USAGE___2 = 2, - RES_FAILCNT___2 = 3, - RES_SOFT_LIMIT = 4, +struct seg6_local_lwt { + int action; + struct ipv6_sr_hdr *srh; + int table; + struct in_addr nh4; + struct in6_addr nh6; + int iif; + int oif; + struct bpf_lwt_prog bpf; + struct seg6_end_dt_info dt_info; + struct seg6_flavors_info flv_info; + struct pcpu_seg6_local_counters __attribute__((btf_type_tag("percpu"))) *pcpu_counters; + int headroom; + struct seg6_action_desc *desc; + unsigned long parsed_optattrs; }; -enum mem_cgroup_events_target { - MEM_CGROUP_TARGET_THRESH = 0, - MEM_CGROUP_TARGET_SOFTLIMIT = 1, - MEM_CGROUP_NTARGETS = 2, +struct pcpu_seg6_local_counters { + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t errors; + struct u64_stats_sync syncp; }; -struct oom_wait_info { - struct mem_cgroup *memcg; - wait_queue_entry_t wait; +struct seg6_action_param { + int (*parse)(struct nlattr **, struct seg6_local_lwt *, struct netlink_ext_ack *); + int (*put)(struct sk_buff *, struct seg6_local_lwt *); + int (*cmp)(struct seg6_local_lwt *, struct seg6_local_lwt *); + void (*destroy)(struct seg6_local_lwt *); }; -struct mem_cgroup_eventfd_list { - struct list_head list; - struct eventfd_ctx *eventfd; +enum { + SEG6_LOCAL_UNSPEC = 0, + SEG6_LOCAL_ACTION = 1, + SEG6_LOCAL_SRH = 2, + SEG6_LOCAL_TABLE = 3, + SEG6_LOCAL_NH4 = 4, + SEG6_LOCAL_NH6 = 5, + SEG6_LOCAL_IIF = 6, + SEG6_LOCAL_OIF = 7, + SEG6_LOCAL_BPF = 8, + SEG6_LOCAL_VRFTABLE = 9, + SEG6_LOCAL_COUNTERS = 10, + SEG6_LOCAL_FLAVORS = 11, + __SEG6_LOCAL_MAX = 12, }; -struct mem_cgroup_event { - struct mem_cgroup *memcg; - struct eventfd_ctx *eventfd; - struct list_head list; - int (*register_event)(struct mem_cgroup *, struct eventfd_ctx *, const char *); - void (*unregister_event)(struct mem_cgroup *, struct eventfd_ctx *); - poll_table pt; - wait_queue_head_t *wqh; - wait_queue_entry_t wait; - struct work_struct remove; +enum { + SEG6_LOCAL_FLV_OP_UNSPEC = 0, + SEG6_LOCAL_FLV_OP_PSP = 1, + SEG6_LOCAL_FLV_OP_USP = 2, + SEG6_LOCAL_FLV_OP_USD = 3, + SEG6_LOCAL_FLV_OP_NEXT_CSID = 4, + __SEG6_LOCAL_FLV_OP_MAX = 5, }; -struct mem_cgroup_reclaim_cookie { - pg_data_t *pgdat; - unsigned int generation; +enum seg6_local_flv_action { + SEG6_LOCAL_FLV_ACT_UNSPEC = 0, + SEG6_LOCAL_FLV_ACT_END = 1, + SEG6_LOCAL_FLV_ACT_PSP = 2, + SEG6_LOCAL_FLV_ACT_USP = 3, + SEG6_LOCAL_FLV_ACT_USD = 4, + __SEG6_LOCAL_FLV_ACT_MAX = 5, }; -struct uncharge_gather { - struct mem_cgroup *memcg; - unsigned long nr_memory; - unsigned long pgpgout; - unsigned long nr_kmem; - int nid; +enum seg6_local_pktinfo { + SEG6_LOCAL_PKTINFO_NOHDR = 0, + SEG6_LOCAL_PKTINFO_SL_ZERO = 1, + SEG6_LOCAL_PKTINFO_SL_ONE = 2, + SEG6_LOCAL_PKTINFO_SL_MORE = 3, + __SEG6_LOCAL_PKTINFO_MAX = 4, }; -union mc_target { - struct page *page; - swp_entry_t ent; +enum bpf_ret_code { + BPF_OK = 0, + BPF_DROP = 2, + BPF_REDIRECT = 7, + BPF_LWT_REROUTE = 128, + BPF_FLOW_DISSECTOR_CONTINUE = 129, }; -struct ext4_dir_entry_tail { - __le32 det_reserved_zero1; - __le16 det_rec_len; - __u8 det_reserved_zero2; - __u8 det_reserved_ft; - __le32 det_checksum; +enum { + SEG6_LOCAL_BPF_PROG_UNSPEC = 0, + SEG6_LOCAL_BPF_PROG = 1, + SEG6_LOCAL_BPF_PROG_NAME = 2, + __SEG6_LOCAL_BPF_PROG_MAX = 3, }; -struct dx_entry; - -struct dx_frame { - struct buffer_head *bh; - struct dx_entry *entries; - struct dx_entry *at; +enum { + SEG6_LOCAL_CNT_UNSPEC = 0, + SEG6_LOCAL_CNT_PAD = 1, + SEG6_LOCAL_CNT_PACKETS = 2, + SEG6_LOCAL_CNT_BYTES = 3, + SEG6_LOCAL_CNT_ERRORS = 4, + __SEG6_LOCAL_CNT_MAX = 5, }; -struct dx_entry { - __le32 hash; - __le32 block; +enum { + SEG6_LOCAL_FLV_UNSPEC = 0, + SEG6_LOCAL_FLV_OPERATION = 1, + SEG6_LOCAL_FLV_LCBLOCK_BITS = 2, + SEG6_LOCAL_FLV_LCNODE_FN_BITS = 3, + __SEG6_LOCAL_FLV_MAX = 4, }; -struct fake_dirent { - __le32 inode; - __le16 rec_len; - u8 name_len; - u8 file_type; +enum { + SEG6_LOCAL_ACTION_UNSPEC = 0, + SEG6_LOCAL_ACTION_END = 1, + SEG6_LOCAL_ACTION_END_X = 2, + SEG6_LOCAL_ACTION_END_T = 3, + SEG6_LOCAL_ACTION_END_DX2 = 4, + SEG6_LOCAL_ACTION_END_DX6 = 5, + SEG6_LOCAL_ACTION_END_DX4 = 6, + SEG6_LOCAL_ACTION_END_DT6 = 7, + SEG6_LOCAL_ACTION_END_DT4 = 8, + SEG6_LOCAL_ACTION_END_B6 = 9, + SEG6_LOCAL_ACTION_END_B6_ENCAP = 10, + SEG6_LOCAL_ACTION_END_BM = 11, + SEG6_LOCAL_ACTION_END_S = 12, + SEG6_LOCAL_ACTION_END_AS = 13, + SEG6_LOCAL_ACTION_END_AM = 14, + SEG6_LOCAL_ACTION_END_BPF = 15, + SEG6_LOCAL_ACTION_END_DT46 = 16, + __SEG6_LOCAL_ACTION_MAX = 17, }; -struct dx_root_info { - __le32 reserved_zero; - u8 hash_version; - u8 info_length; - u8 indirect_levels; - u8 unused_flags; +struct seg6_local_counters { + __u64 packets; + __u64 bytes; + __u64 errors; }; -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 sockaddr_xdp { + __u16 sxdp_family; + __u16 sxdp_flags; + __u32 sxdp_ifindex; + __u32 sxdp_queue_id; + __u32 sxdp_shared_umem_fd; }; -struct dx_node { - struct fake_dirent fake; - struct dx_entry entries[0]; +struct xdp_ring_offset_v1 { + __u64 producer; + __u64 consumer; + __u64 desc; }; -struct dx_countlimit { - __le16 limit; - __le16 count; +struct parsed_desc { + u32 mb; + u32 valid; }; -struct ext4_dir_entry { - __le32 inode; - __le16 rec_len; - __le16 name_len; - char name[255]; +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 dx_tail { - u32 dt_reserved; - __le32 dt_checksum; +struct xdp_ring_offset { + __u64 producer; + __u64 consumer; + __u64 desc; + __u64 flags; }; -struct dx_map_entry { - u32 hash; - u16 offs; - u16 size; +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 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 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 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; +struct xdp_options { + __u32 flags; }; -typedef enum { - EITHER = 0, - INDEX = 1, - DIRENT = 2, - DIRENT_HTREE = 3, -} dirblock_type_t; +struct wq_flusher; -struct nfs_callback_data { - unsigned int users; - struct svc_serv *serv; -}; +struct worker; -enum nfs4_callback_procnum { - CB_NULL = 0, - CB_COMPOUND = 1, -}; +struct workqueue_attrs; -struct sel_netport_bkt { - int size; - struct list_head list; -}; +struct pool_workqueue; -struct netport_security_struct { - u32 sid; - u16 port; - u8 protocol; -}; +struct wq_device; -struct sel_netport { - struct netport_security_struct psec; +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; + unsigned int flags; + struct pool_workqueue __attribute__((btf_type_tag("percpu"))) __attribute__((btf_type_tag("rcu"))) **cpu_pwq; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -enum { - DIO_SHOULD_DIRTY = 1, - DIO_IS_SYNC = 2, +struct wq_flusher { + struct list_head list; + int flush_color; + struct completion done; }; -enum { - BIOSET_NEED_BVECS = 1, - BIOSET_NEED_RESCUER = 2, - BIOSET_PERCPU_CACHE = 4, -}; +struct worker_pool; -struct blkdev_dio { +struct worker { union { - struct kiocb *iocb; - struct task_struct *waiter; + struct list_head entry; + struct hlist_node hentry; }; - size_t size; - atomic_t ref; + struct work_struct *current_work; + work_func_t current_func; + struct pool_workqueue *current_pwq; + u64 current_at; + unsigned int current_color; + int sleeping; + work_func_t last_func; + struct list_head scheduled; + struct task_struct *task; + struct worker_pool *pool; + struct list_head node; + unsigned long last_active; unsigned int flags; + int id; + char desc[24]; + struct workqueue_struct *rescue_wq; +}; + +struct 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; + u64 stats[8]; + struct kthread_work release_work; + struct callback_head rcu; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; - struct bio bio; long: 64; long: 64; long: 64; long: 64; }; -struct show_busy_params { - struct seq_file *m; - struct blk_mq_hw_ctx *hctx; -}; - -union nested_table { - union nested_table __attribute__((btf_type_tag("rcu"))) *table; - struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket; -}; - -struct rhltable { - struct rhashtable ht; -}; - -typedef size_t (*ZSTD_blockCompressor)(ZSTD_matchState_t *, seqStore_t *, U32 *, const void *, size_t); - -enum { - ZSTDbss_compress = 0, - ZSTDbss_noCompress = 1, -}; - -typedef enum { - ZSTD_c_compressionLevel = 100, - ZSTD_c_windowLog = 101, - ZSTD_c_hashLog = 102, - ZSTD_c_chainLog = 103, - ZSTD_c_searchLog = 104, - ZSTD_c_minMatch = 105, - ZSTD_c_targetLength = 106, - ZSTD_c_strategy = 107, - ZSTD_c_enableLongDistanceMatching = 160, - ZSTD_c_ldmHashLog = 161, - ZSTD_c_ldmMinMatch = 162, - ZSTD_c_ldmBucketSizeLog = 163, - ZSTD_c_ldmHashRateLog = 164, - ZSTD_c_contentSizeFlag = 200, - ZSTD_c_checksumFlag = 201, - ZSTD_c_dictIDFlag = 202, - ZSTD_c_nbWorkers = 400, - ZSTD_c_jobSize = 401, - ZSTD_c_overlapLog = 402, - ZSTD_c_experimentalParam1 = 500, - ZSTD_c_experimentalParam2 = 10, - ZSTD_c_experimentalParam3 = 1000, - ZSTD_c_experimentalParam4 = 1001, - ZSTD_c_experimentalParam5 = 1002, - ZSTD_c_experimentalParam6 = 1003, - ZSTD_c_experimentalParam7 = 1004, - ZSTD_c_experimentalParam8 = 1005, - ZSTD_c_experimentalParam9 = 1006, - ZSTD_c_experimentalParam10 = 1007, - ZSTD_c_experimentalParam11 = 1008, - ZSTD_c_experimentalParam12 = 1009, - ZSTD_c_experimentalParam13 = 1010, - ZSTD_c_experimentalParam14 = 1011, - ZSTD_c_experimentalParam15 = 1012, -} ZSTD_cParameter; - -typedef struct { - ZSTD_compressionParameters cParams; - ZSTD_frameParameters fParams; -} ZSTD_parameters; - -typedef enum { - ZSTD_cpm_noAttachDict = 0, - ZSTD_cpm_attachDict = 1, - ZSTD_cpm_createCDict = 2, - ZSTD_cpm_unknown = 3, -} ZSTD_cParamMode_e; - -typedef enum { - ZSTD_e_continue = 0, - ZSTD_e_flush = 1, - ZSTD_e_end = 2, -} ZSTD_EndDirective; - -typedef struct { - U32 LLtype; - U32 Offtype; - U32 MLtype; - size_t size; - size_t lastCountSize; -} ZSTD_symbolEncodingTypeStats_t; - -typedef struct { - U32 *splitLocations; - size_t idx; -} seqStoreSplits; - -typedef enum { - ZSTD_dtlm_fast = 0, - ZSTD_dtlm_full = 1, -} ZSTD_dictTableLoadMethod_e; - -typedef ZSTD_CCtx ZSTD_CStream; - -typedef struct { - U32 idx; - U32 posInSequence; - size_t posInSrc; -} ZSTD_sequencePosition; - -typedef size_t (*ZSTD_sequenceCopier)(ZSTD_CCtx *, ZSTD_sequencePosition *, const ZSTD_Sequence * const, size_t, const void *, size_t); - -typedef enum { - ZSTD_defaultDisallowed = 0, - ZSTD_defaultAllowed = 1, -} ZSTD_defaultPolicy_e; - -typedef struct { - unsigned long long ingested; - unsigned long long consumed; - unsigned long long produced; - unsigned long long flushed; - unsigned int currentJobID; - unsigned int nbActiveWorkers; -} ZSTD_frameProgression; - -typedef enum { - ZSTDcrp_makeClean = 0, - ZSTDcrp_leaveDirty = 1, -} ZSTD_compResetPolicy_e; - -typedef enum { - ZSTDirp_continue = 0, - ZSTDirp_reset = 1, -} ZSTD_indexResetPolicy_e; - -typedef enum { - ZSTD_resetTarget_CDict = 0, - ZSTD_resetTarget_CCtx = 1, -} ZSTD_resetTarget_e; - -enum pci_bar_type { - pci_bar_unknown = 0, - pci_bar_io = 1, - pci_bar_mem32 = 2, - pci_bar_mem64 = 3, +struct worker_pool { + raw_spinlock_t lock; + int cpu; + int node; + int id; + unsigned int flags; + unsigned long watchdog_ts; + bool cpu_stall; + int nr_running; + struct list_head worklist; + int nr_workers; + int nr_idle; + struct list_head idle_list; + struct timer_list idle_timer; + struct work_struct idle_cull_work; + struct timer_list mayday_timer; + struct hlist_head busy_hash[64]; + struct worker *manager; + struct list_head workers; + struct list_head dying_workers; + struct completion *detach_completion; + struct ida worker_ida; + struct workqueue_attrs *attrs; + struct hlist_node hash_node; + int refcnt; + struct callback_head rcu; }; -struct pci_domain_busn_res { - struct list_head list; - struct resource res; - int domain_nr; +enum wq_affn_scope { + WQ_AFFN_DFL = 0, + WQ_AFFN_CPU = 1, + WQ_AFFN_SMT = 2, + WQ_AFFN_CACHE = 3, + WQ_AFFN_NUMA = 4, + WQ_AFFN_SYSTEM = 5, + WQ_AFFN_NR_TYPES = 6, }; -struct fb_cmap32 { - u32 start; - u32 len; - compat_caddr_t red; - compat_caddr_t green; - compat_caddr_t blue; - compat_caddr_t transp; +struct workqueue_attrs { + int nice; + cpumask_var_t cpumask; + cpumask_var_t __pod_cpumask; + bool affn_strict; + enum wq_affn_scope affn_scope; + bool ordered; }; -struct fb_fix_screeninfo32 { - char id[16]; - compat_caddr_t smem_start; - u32 smem_len; - u32 type; - u32 type_aux; - u32 visual; - u16 xpanstep; - u16 ypanstep; - u16 ywrapstep; - u32 line_length; - compat_caddr_t mmio_start; - u32 mmio_len; - u32 accel; - u16 reserved[3]; +struct wq_device { + struct workqueue_struct *wq; + struct device dev; }; -struct fb_event { - struct fb_info *info; - void *data; -}; +typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *); -struct acpi_ged_event { - struct list_head node; - struct device *dev; - unsigned int gsi; - unsigned int irq; - acpi_handle handle; -}; +typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *); -struct acpi_ged_device { - struct device *dev; - struct list_head event_list; -}; +typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *); -struct clk_gpio { - struct clk_hw hw; - struct gpio_desc *gpiod; -}; +typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t); -struct sun6i_rtc_match_data { - bool have_ext_osc32k: 1; - bool have_iosc_calibration: 1; - bool rtc_32k_single_parent: 1; - const struct clk_parent_data *osc32k_fanout_parents; - u8 osc32k_fanout_nparents; +struct wq_pod_type { + int nr_pods; + cpumask_var_t *pod_cpus; + int *pod_node; + int *cpu_pod; }; -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]; +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 = 75000, + MAYDAY_INITIAL_TIMEOUT = 2, + MAYDAY_INTERVAL = 25, + CREATE_COOLDOWN = 250, + RESCUER_NICE_LEVEL = -20, + HIGHPRI_NICE_LEVEL = -20, + WQ_NAME_LEN = 24, }; -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; +enum pool_workqueue_stats { + PWQ_STAT_STARTED = 0, + PWQ_STAT_COMPLETED = 1, + PWQ_STAT_CPU_TIME = 2, + PWQ_STAT_CPU_INTENSIVE = 3, + PWQ_STAT_CM_WAKEUP = 4, + PWQ_STAT_REPATRIATED = 5, + PWQ_STAT_MAYDAY = 6, + PWQ_STAT_RESCUED = 7, + PWQ_NR_STATS = 8, }; -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 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]; }; -enum { - ND_CMD_IMPLEMENTED = 0, - ND_CMD_ARS_CAP = 1, - ND_CMD_ARS_START = 2, - ND_CMD_ARS_STATUS = 3, - ND_CMD_CLEAR_ERROR = 4, - ND_CMD_SMART = 1, - ND_CMD_SMART_THRESHOLD = 2, - ND_CMD_DIMM_FLAGS = 3, - ND_CMD_GET_CONFIG_SIZE = 4, - ND_CMD_GET_CONFIG_DATA = 5, - ND_CMD_SET_CONFIG_DATA = 6, - ND_CMD_VENDOR_EFFECT_LOG_SIZE = 7, - ND_CMD_VENDOR_EFFECT_LOG = 8, - ND_CMD_VENDOR = 9, - ND_CMD_CALL = 10, +struct trace_event_raw_workqueue_activate_work { + struct trace_entry ent; + void *work; + char __data[0]; }; -enum nvdimm_security_bits { - NVDIMM_SECURITY_DISABLED = 0, - NVDIMM_SECURITY_UNLOCKED = 1, - NVDIMM_SECURITY_LOCKED = 2, - NVDIMM_SECURITY_FROZEN = 3, - NVDIMM_SECURITY_OVERWRITE = 4, +struct trace_event_raw_workqueue_execute_start { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; }; -struct nd_cmd_get_config_data_hdr { - __u32 in_offset; - __u32 in_length; - __u32 status; - __u8 out_buf[0]; +struct trace_event_raw_workqueue_execute_end { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; }; -struct nd_cmd_set_config_hdr { - __u32 in_offset; - __u32 in_length; - __u8 in_buf[0]; +struct wq_barrier { + struct work_struct work; + struct completion done; + struct task_struct *task; }; -enum { - DISK_EVENT_MEDIA_CHANGE = 1, - DISK_EVENT_EJECT_REQUEST = 2, +struct cwt_wait { + wait_queue_entry_t wait; + struct work_struct *work; }; -enum { - DISK_EVENT_FLAG_POLL = 1, - DISK_EVENT_FLAG_UEVENT = 2, - DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, +struct work_for_cpu { + struct work_struct work; + long (*fn)(void *); + void *arg; + long ret; }; -enum { - mechtype_caddy = 0, - mechtype_tray = 1, - mechtype_popup = 2, - mechtype_individual_changer = 4, - mechtype_cartridge_changer = 5, +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 event_header { - __be16 data_len; - __u8 notification_class: 3; - __u8 reserved1: 4; - __u8 nea: 1; - __u8 supp_event_class; +struct trace_event_data_offsets_workqueue_queue_work { + u32 workqueue; }; -enum snoop_when { - SUBMIT = 0, - COMPLETE = 1, +struct pr_cont_work_struct { + bool comma; + work_func_t func; + long ctr; }; -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 trace_event_data_offsets_workqueue_activate_work {}; + +struct trace_event_data_offsets_workqueue_execute_start {}; + +struct trace_event_data_offsets_workqueue_execute_end {}; + +struct nbcon_state { + union { + unsigned int atom; + struct { + unsigned int prio: 2; + unsigned int req_prio: 2; + unsigned int unsafe: 1; + unsigned int unsafe_takeover: 1; + unsigned int cpu: 24; + }; + }; }; -struct usb_memory; +typedef bool (*stack_trace_consume_fn)(void *, unsigned long); -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 stacktrace_cookie { + unsigned long *store; + unsigned int size; + unsigned int skip; + unsigned int len; }; -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 ftrace_page; + +struct ftrace_rec_iter { + struct ftrace_page *pg; + int index; }; -struct usbdevfs_iso_packet_desc { - unsigned int length; - unsigned int actual_length; - unsigned int status; +struct ftrace_page { + struct ftrace_page *next; + struct dyn_ftrace *records; + int index; + int order; }; -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]; +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 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 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 usbdevfs_ioctl { - int ifno; - int ioctl_code; - void __attribute__((btf_type_tag("user"))) *data; +struct ftrace_profile_page; + +struct ftrace_profile_stat { + atomic_t disabled; + struct hlist_head *hash; + struct ftrace_profile_page *pages; + struct ftrace_profile_page *start; + struct tracer_stat stat; }; -struct usbdevfs_disconnectsignal { - unsigned int signr; - void __attribute__((btf_type_tag("user"))) *context; +struct ftrace_profile { + struct hlist_node node; + unsigned long ip; + unsigned long counter; + unsigned long long time; + unsigned long long time_squared; }; -struct usbdevfs_getdriver { - unsigned int interface; - char driver[256]; +struct ftrace_profile_page { + struct ftrace_profile_page *next; + unsigned long index; + struct ftrace_profile records[0]; }; -struct usbdevfs_ctrltransfer32 { - u8 bRequestType; - u8 bRequest; - u16 wValue; - u16 wIndex; - u16 wLength; - u32 timeout; - compat_caddr_t data; +enum { + FTRACE_FL_ENABLED = 2147483648, + FTRACE_FL_REGS = 1073741824, + FTRACE_FL_REGS_EN = 536870912, + FTRACE_FL_TRAMP = 268435456, + FTRACE_FL_TRAMP_EN = 134217728, + FTRACE_FL_IPMODIFY = 67108864, + FTRACE_FL_DISABLED = 33554432, + FTRACE_FL_DIRECT = 16777216, + FTRACE_FL_DIRECT_EN = 8388608, + FTRACE_FL_CALL_OPS = 4194304, + FTRACE_FL_CALL_OPS_EN = 2097152, + FTRACE_FL_TOUCHED = 1048576, + FTRACE_FL_MODIFIED = 524288, }; -struct usbdevfs_ctrltransfer { - __u8 bRequestType; - __u8 bRequest; - __u16 wValue; - __u16 wIndex; - __u16 wLength; - __u32 timeout; - void __attribute__((btf_type_tag("user"))) *data; +enum { + FTRACE_MODIFY_ENABLE_FL = 1, + FTRACE_MODIFY_MAY_SLEEP_FL = 2, }; -struct usbdevfs_bulktransfer { - unsigned int ep; - unsigned int len; - unsigned int timeout; - void __attribute__((btf_type_tag("user"))) *data; +enum { + FTRACE_ITER_FILTER = 1, + FTRACE_ITER_NOTRACE = 2, + FTRACE_ITER_PRINTALL = 4, + FTRACE_ITER_DO_PROBES = 8, + FTRACE_ITER_PROBE = 16, + FTRACE_ITER_MOD = 32, + FTRACE_ITER_ENABLED = 64, + FTRACE_ITER_TOUCHED = 128, + FTRACE_ITER_ADDRS = 256, }; -struct usbdevfs_bulktransfer32 { - compat_uint_t ep; - compat_uint_t len; - compat_uint_t timeout; - compat_caddr_t data; +enum regex_type { + MATCH_FULL = 0, + MATCH_FRONT_ONLY = 1, + MATCH_MIDDLE_ONLY = 2, + MATCH_END_ONLY = 3, + MATCH_GLOB = 4, + MATCH_INDEX = 5, }; -struct usbdevfs_connectinfo { - unsigned int devnum; - unsigned char slow; +enum { + FTRACE_HASH_FL_MOD = 1, }; -struct usbdevfs_disconnect_claim { - unsigned int interface; - unsigned int flags; - char driver[256]; +enum { + FTRACE_UPDATE_IGNORE = 0, + FTRACE_UPDATE_MAKE_CALL = 1, + FTRACE_UPDATE_MODIFY_CALL = 2, + FTRACE_UPDATE_MAKE_NOP = 3, }; -struct usbdevfs_ioctl32 { - s32 ifno; - s32 ioctl_code; - compat_caddr_t data; +enum graph_filter_type { + GRAPH_FILTER_NOTRACE = 0, + GRAPH_FILTER_FUNCTION = 1, }; -struct usbdevfs_setinterface { - unsigned int interface; - unsigned int altsetting; +struct ftrace_func_mapper { + struct ftrace_hash hash; }; -struct usbdevfs_disconnectsignal32 { - compat_int_t signr; - compat_caddr_t context; +struct ftrace_func_entry { + struct hlist_node hlist; + unsigned long ip; + unsigned long direct; }; -struct usbdevfs_conninfo_ex { - __u32 size; - __u32 busnum; - __u32 devnum; - __u32 speed; - __u8 num_ports; - __u8 ports[7]; +struct ftrace_func_map { + struct ftrace_func_entry entry; + void *data; }; -struct usbdevfs_streams { - unsigned int num_streams; - unsigned int num_eps; - unsigned char eps[0]; +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 mmc_clk_phase { - bool valid; - u16 in_deg; - u16 out_deg; +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 mmc_clk_phase_map { - struct mmc_clk_phase phase[11]; +struct ftrace_mod_func { + struct list_head list; + char *name; + unsigned long ip; + unsigned int size; }; -typedef int (*of_init_fn_1_ret)(struct device_node *); +struct ftrace_init_func { + struct list_head list; + unsigned long ip; +}; -struct hw_gen_event { - uint32_t event_code: 16; - uint32_t event_type: 4; - uint32_t reserved: 12; +struct ftrace_mod_load { + struct list_head list; + char *func; + char *module; + int enable; }; -struct hw_cache_event { - uint32_t result_id: 1; - uint32_t op_id: 2; - uint32_t cache_id: 13; - uint32_t event_type: 4; - uint32_t reserved: 12; +struct ftrace_iterator { + loff_t pos; + loff_t func_pos; + loff_t mod_pos; + struct ftrace_page *pg; + struct dyn_ftrace *func; + struct ftrace_func_probe *probe; + struct ftrace_func_entry *probe_entry; + struct trace_parser parser; + struct ftrace_hash *hash; + struct ftrace_ops *ops; + struct trace_array *tr; + struct list_head *mod_list; + int pidx; + int idx; + unsigned int flags; }; -struct sbi_pmu_event_data { - union { - union { - struct hw_gen_event hw_gen_event; - struct hw_cache_event hw_cache_event; - }; - uint32_t event_idx; - }; +struct ftrace_glob { + char *search; + unsigned int len; + int type; }; -enum sbi_pmu_ctr_type { - SBI_PMU_CTR_TYPE_HW = 0, - SBI_PMU_CTR_TYPE_FW = 1, +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; }; -enum sbi_ext_pmu_fid { - SBI_EXT_PMU_NUM_COUNTERS = 0, - SBI_EXT_PMU_COUNTER_GET_INFO = 1, - SBI_EXT_PMU_COUNTER_CFG_MATCH = 2, - SBI_EXT_PMU_COUNTER_START = 3, - SBI_EXT_PMU_COUNTER_STOP = 4, - SBI_EXT_PMU_COUNTER_FW_READ = 5, +struct kallsyms_data { + unsigned long *addrs; + const char **syms; + size_t cnt; + size_t found; }; -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, +struct uprobe_cpu_buffer { + struct mutex mutex; + void *buf; }; -enum sbi_pmu_event_type { - SBI_PMU_EVENT_TYPE_HW = 0, - SBI_PMU_EVENT_TYPE_CACHE = 1, - SBI_PMU_EVENT_TYPE_RAW = 2, - SBI_PMU_EVENT_TYPE_FW = 15, +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; }; -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, +struct uprobe_trace_entry_head { + struct trace_entry ent; + unsigned long vaddr[0]; }; -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, +struct uprobe_dispatch_data { + struct trace_uprobe *tu; + unsigned long bp_addr; }; -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, +typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); + +struct bpf_trace_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + bool is_uprobe; }; -struct cpu_hw_events; +typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); -struct riscv_pmu { - struct pmu pmu; - char *name; - irqreturn_t (*handle_irq)(int, void *); - unsigned long cmask; - u64 (*ctr_read)(struct perf_event *); - int (*ctr_get_idx)(struct perf_event *); - int (*ctr_get_width)(int); - void (*ctr_clear_idx)(struct perf_event *); - void (*ctr_start)(struct perf_event *, u64); - void (*ctr_stop)(struct perf_event *, unsigned long); - int (*event_map)(struct perf_event *, u64 *); - struct cpu_hw_events __attribute__((btf_type_tag("percpu"))) *hw_events; - struct hlist_node node; - struct notifier_block riscv_pm_nb; +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, }; -struct cpu_hw_events { - int n_events; - int irq; - struct perf_event *events[64]; - unsigned long used_hw_ctrs[1]; - unsigned long used_fw_ctrs[1]; -}; +enum bpf_stack_build_id_status { + BPF_STACK_BUILD_ID_EMPTY = 0, + BPF_STACK_BUILD_ID_VALID = 1, + BPF_STACK_BUILD_ID_IP = 2, +}; + +typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64); + +typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64); + +struct stack_map_bucket; -struct page_pool_stats { - struct page_pool_alloc_stats alloc_stats; - struct page_pool_recycle_stats recycle_stats; +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; }; -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, +struct stack_map_bucket { + struct pcpu_freelist_node fnode; + u32 hash; + u32 nr; + u64 data[0]; }; -enum genl_validate_flags { - GENL_DONT_VALIDATE_STRICT = 1, - GENL_DONT_VALIDATE_DUMP = 2, - GENL_DONT_VALIDATE_DUMP_STRICT = 4, +struct bpf_stack_build_id { + __s32 status; + unsigned char build_id[20]; + union { + __u64 offset; + __u64 ip; + }; }; -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, -}; +typedef unsigned long pte_marker; -enum { - CTRL_ATTR_OP_UNSPEC = 0, - CTRL_ATTR_OP_ID = 1, - CTRL_ATTR_OP_FLAGS = 2, - __CTRL_ATTR_OP_MAX = 3, +struct copy_subpage_arg { + struct page *dst; + struct page *src; + struct vm_area_struct *vma; }; -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, +struct xattr_name { + char name[256]; }; -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 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 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 proc_fs_opts { + int flag; + const char *str; }; -struct genl_dumpit_info { - const struct genl_family *family; - struct genl_split_ops op; - struct nlattr **attrs; +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 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 limit_names { + const char *name; + const char *unit; }; -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; +struct map_files_info { + unsigned long start; + unsigned long end; + fmode_t mode; }; -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 tgid_iter { + unsigned int tgid; + struct task_struct *task; }; -struct plca_reply_data { - struct ethnl_reply_data base; - struct phy_plca_cfg plca_cfg; - struct phy_plca_status plca_st; +struct timers_private { + struct pid *pid; + struct task_struct *task; + struct sighand_struct *sighand; + struct pid_namespace *ns; + unsigned long flags; }; -struct icmp_filter { - __u32 data; +struct move_extent { + __u32 reserved; + __u32 donor_fd; + __u64 orig_start; + __u64 donor_start; + __u64 len; + __u64 moved_len; }; -struct raw_sock { - struct inet_sock inet; - struct icmp_filter filter; - u32 ipmr_table; +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 raw_frag_vec { - struct msghdr *msg; - union { - struct icmphdr icmph; - char c[1]; - } hdr; - int hlen; +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 udp_skb_cb { - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - } header; - __u16 cscov; - __u8 partial_cov; +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 udp_iter_state { - struct seq_net_private p; - int bucket; +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 udp_dev_scratch { - u32 _tsize_state; - u16 len; - bool is_linear; - bool csum_unnecessary; +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 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 fsuuid { + __u32 fsu_len; + __u32 fsu_flags; + __u8 fsu_uuid[0]; }; -struct inflate_workspace { - struct inflate_state inflate_state; - unsigned char working_window[32768]; -}; +typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *); -typedef struct { - void *read; - void *write; -} efi_pci_io_protocol_access_t; +typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *); -typedef enum { - EfiPciIoWidthUint8 = 0, - EfiPciIoWidthUint16 = 1, - EfiPciIoWidthUint32 = 2, - EfiPciIoWidthUint64 = 3, - EfiPciIoWidthFifoUint8 = 4, - EfiPciIoWidthFifoUint16 = 5, - EfiPciIoWidthFifoUint32 = 6, - EfiPciIoWidthFifoUint64 = 7, - EfiPciIoWidthFillUint8 = 8, - EfiPciIoWidthFillUint16 = 9, - EfiPciIoWidthFillUint32 = 10, - EfiPciIoWidthFillUint64 = 11, - EfiPciIoWidthMaximum = 12, -} EFI_PCI_IO_PROTOCOL_WIDTH; +typedef u64 compat_u64; -union efi_pci_io_protocol; +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; +}; -typedef union efi_pci_io_protocol efi_pci_io_protocol_t; +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; +}; -typedef efi_status_t (*efi_pci_io_protocol_cfg_t)(efi_pci_io_protocol_t *, EFI_PCI_IO_PROTOCOL_WIDTH, u32, unsigned long, void *); +struct nlm_wait { + struct list_head b_list; + wait_queue_head_t b_wait; + struct nlm_host *b_host; + struct file_lock *b_lock; + __be32 b_status; +}; -typedef struct { - efi_pci_io_protocol_cfg_t read; - efi_pci_io_protocol_cfg_t write; -} efi_pci_io_protocol_config_access_t; +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, +}; -typedef struct { - u32 read; - u32 write; -} efi_pci_io_protocol_access_32_t; +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 super_block *sb; +}; -union efi_pci_io_protocol { - struct { - void *poll_mem; - void *poll_io; - efi_pci_io_protocol_access_t mem; - efi_pci_io_protocol_access_t io; - efi_pci_io_protocol_config_access_t pci; - void *copy_mem; - void *map; - void *unmap; - void *allocate_buffer; - void *free_buffer; - void *flush; - efi_status_t (*get_location)(efi_pci_io_protocol_t *, unsigned long *, unsigned long *, unsigned long *, unsigned long *); - void *attributes; - void *get_bar_attributes; - void *set_bar_attributes; - uint64_t romsize; - void *romimage; - }; - struct { - u32 poll_mem; - u32 poll_io; - efi_pci_io_protocol_access_32_t mem; - efi_pci_io_protocol_access_32_t io; - efi_pci_io_protocol_access_32_t pci; - u32 copy_mem; - u32 map; - u32 unmap; - u32 allocate_buffer; - u32 free_buffer; - u32 flush; - u32 get_location; - u32 attributes; - u32 get_bar_attributes; - u32 set_bar_attributes; - u64 romsize; - u32 romimage; - } mixed_mode; +struct policy_load_memory { + size_t len; + void *data; }; -struct flush_tlb_range_data { - unsigned long asid; - unsigned long start; - unsigned long size; - unsigned long stride; +enum devcg_behavior { + DEVCG_DEFAULT_NONE = 0, + DEVCG_DEFAULT_ALLOW = 1, + DEVCG_DEFAULT_DENY = 2, }; -struct errata_info_t { - char name[32]; - bool (*check_func)(unsigned long, unsigned long); +struct dev_cgroup { + struct cgroup_subsys_state css; + struct list_head exceptions; + enum devcg_behavior behavior; }; -typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, unsigned long); +struct dev_exception_item { + u32 major; + u32 minor; + short type; + short access; + struct list_head list; + struct callback_head rcu; +}; -typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *); +struct shash_instance { + void (*free)(struct shash_instance *); + union { + struct { + char head[104]; + struct crypto_instance base; + } s; + struct shash_alg alg; + }; +}; -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 crypto_istat_hash { + atomic64_t hash_cnt; + atomic64_t hash_tlen; + atomic64_t err_cnt; }; -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 crypto_shash_spawn { + struct crypto_spawn base; }; -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 chksum_ctx { + u32 key; }; -struct vm_stack { - struct callback_head rcu; - struct vm_struct *stack_vm_area; +struct chksum_desc_ctx { + u32 crc; }; -struct trace_event_data_offsets_task_newtask {}; +enum prep_dispatch { + PREP_DISPATCH_OK = 0, + PREP_DISPATCH_NO_TAG = 1, + PREP_DISPATCH_NO_BUDGET = 2, +}; -struct trace_event_data_offsets_task_rename {}; +struct blk_mq_qe_pair { + struct list_head node; + struct request_queue *q; + struct elevator_type *type; +}; -struct sd_flag_debug { - unsigned int meta_flags; - char *name; +struct flush_busy_ctx_data { + struct blk_mq_hw_ctx *hctx; + struct list_head *list; }; -typedef const struct cpumask * (*sched_domain_mask_f)(int); +struct dispatch_rq_data { + struct blk_mq_hw_ctx *hctx; + struct request *rq; +}; -typedef int (*sched_domain_flags_f)(); +struct blk_expired_data { + bool has_timedout_rq; + unsigned long next; + unsigned long timeout_start; +}; -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 rq_iter_data { + struct blk_mq_hw_ctx *hctx; + bool has_rq; }; -struct sched_domain_topology_level { - sched_domain_mask_f mask; - sched_domain_flags_f sd_flags; - int flags; - int numa_level; - struct sd_data data; - char *name; +struct mq_inflight { + struct block_device *part; + unsigned int inflight[2]; }; -struct housekeeping { - cpumask_var_t cpumasks[9]; - unsigned long flags; +struct blk_rq_wait { + struct completion done; + blk_status_t ret; +}; + +struct io_epoll { + struct file *file; + int epfd; + int op; + int fd; + struct epoll_event event; }; -struct cpuacct { - struct cgroup_subsys_state css; - u64 __attribute__((btf_type_tag("percpu"))) *cpuusage; - struct kernel_cpustat __attribute__((btf_type_tag("percpu"))) *cpustat; +struct wrapper { + cmp_func_t cmp; + swap_func_t swap; }; -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, -}; +typedef enum { + ZSTD_lo_isRegularOffset = 0, + ZSTD_lo_isLongOffset = 1, +} ZSTD_longOffset_e; -enum cpuacct_stat_index { - CPUACCT_STAT_USER = 0, - CPUACCT_STAT_SYSTEM = 1, - CPUACCT_STAT_NSTATS = 2, +typedef struct { + U32 fastMode; + U32 tableLog; +} ZSTD_seqSymbol_header; + +typedef struct { + size_t litLength; + size_t matchLength; + size_t offset; +} seq_t; + +typedef struct { + size_t state; + const ZSTD_seqSymbol *table; +} ZSTD_fseState; + +typedef struct { + BIT_DStream_t DStream; + ZSTD_fseState stateLL; + ZSTD_fseState stateOffb; + ZSTD_fseState stateML; + size_t prevOffset[3]; +} seqState_t; + +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 sched_tunable_scaling { - SCHED_TUNABLESCALING_NONE = 0, - SCHED_TUNABLESCALING_LOG = 1, - SCHED_TUNABLESCALING_LINEAR = 2, - SCHED_TUNABLESCALING_END = 3, +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 { - __SD_BALANCE_NEWIDLE = 0, - __SD_BALANCE_EXEC = 1, - __SD_BALANCE_FORK = 2, - __SD_BALANCE_WAKE = 3, - __SD_WAKE_AFFINE = 4, - __SD_ASYM_CPUCAPACITY = 5, - __SD_ASYM_CPUCAPACITY_FULL = 6, - __SD_SHARE_CPUCAPACITY = 7, - __SD_SHARE_PKG_RESOURCES = 8, - __SD_SERIALIZE = 9, - __SD_ASYM_PACKING = 10, - __SD_PREFER_SIBLING = 11, - __SD_OVERLAP = 12, - __SD_NUMA = 13, - __SD_FLAG_CNT = 14, +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 s_alloc { - sa_rootdomain = 0, - sa_sd = 1, - sa_sd_storage = 2, - sa_none = 3, +enum hdmi_colorimetry { + HDMI_COLORIMETRY_NONE = 0, + HDMI_COLORIMETRY_ITU_601 = 1, + HDMI_COLORIMETRY_ITU_709 = 2, + HDMI_COLORIMETRY_EXTENDED = 3, }; -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 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 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 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 membarrier_cmd_flag { - MEMBARRIER_CMD_FLAG_CPU = 1, +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 { - MEMBARRIER_FLAG_SYNC_CORE = 1, - MEMBARRIER_FLAG_RSEQ = 2, +enum hdmi_quantization_range { + HDMI_QUANTIZATION_RANGE_DEFAULT = 0, + HDMI_QUANTIZATION_RANGE_LIMITED = 1, + HDMI_QUANTIZATION_RANGE_FULL = 2, + HDMI_QUANTIZATION_RANGE_RESERVED = 3, }; -struct asym_cap_data { - struct list_head link; - unsigned long capacity; - unsigned long cpus[0]; +enum hdmi_nups { + HDMI_NUPS_UNKNOWN = 0, + HDMI_NUPS_HORIZONTAL = 1, + HDMI_NUPS_VERTICAL = 2, + HDMI_NUPS_BOTH = 3, }; -struct s_data { - struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; - struct root_domain *rd; +enum hdmi_ycc_quantization_range { + HDMI_YCC_QUANTIZATION_RANGE_LIMITED = 0, + HDMI_YCC_QUANTIZATION_RANGE_FULL = 1, }; -struct audit_parent { - struct list_head watches; - struct fsnotify_mark mark; +enum hdmi_content_type { + HDMI_CONTENT_TYPE_GRAPHICS = 0, + HDMI_CONTENT_TYPE_PHOTO = 1, + HDMI_CONTENT_TYPE_CINEMA = 2, + HDMI_CONTENT_TYPE_GAME = 3, }; -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; +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, }; -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; +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, }; -struct kretprobe_trace_entry_head { - struct trace_entry ent; - unsigned long func; - unsigned long ret_ip; +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, }; -struct kprobe_trace_entry_head { - struct trace_entry ent; - unsigned long ip; +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, }; -struct callchain_cpus_entries { - struct callback_head callback_head; - struct perf_callchain_entry *cpu_entries[0]; +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 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, +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 meminit_context { - MEMINIT_EARLY = 0, - MEMINIT_HOTPLUG = 1, +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, }; -struct swap_cgroup_ctrl { - struct page **map; - unsigned long length; - spinlock_t lock; +enum hdmi_metadata_type { + HDMI_STATIC_METADATA_TYPE1 = 0, }; -struct swap_cgroup { - unsigned short id; +struct hdmi_any_infoframe { + enum hdmi_infoframe_type type; + unsigned char version; + unsigned char length; }; -enum proc_param { - Opt_gid___8 = 0, - Opt_hidepid = 1, - Opt_subset = 2, +struct hdmi_avi_infoframe { + enum hdmi_infoframe_type type; + unsigned char version; + unsigned char length; + bool itc; + unsigned char pixel_repeat; + 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; + 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 short top_bar; + unsigned short bottom_bar; + unsigned short left_bar; + unsigned short right_bar; }; -struct proc_fs_context { - struct pid_namespace *pid_ns; - unsigned int mask; - enum proc_hidepid hidepid; - int gid; - enum proc_pidonly pidonly; +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 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 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; }; -enum { - PARSE_INVALID = 1, - PARSE_NOT_LONGNAME = 2, - PARSE_EOF = 3, +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; }; -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 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; }; -struct __fat_dirent { - long d_ino; - __kernel_off_t d_off; - unsigned short d_reclen; - char d_name[256]; +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 fat_ioctl_filldir_callback { - struct dir_context ctx; - void __attribute__((btf_type_tag("user"))) *dirent; - int result; - const char *longname; - int long_len; - const char *shortname; - int short_len; +struct dp_sdp_header { + u8 HB0; + u8 HB1; + u8 HB2; + u8 HB3; }; -typedef s32 compat_off_t; +struct dp_sdp { + struct dp_sdp_header sdp_header; + u8 db[32]; +}; -struct compat_dirent { - u32 d_ino; - compat_off_t d_off; - u16 d_reclen; - char d_name[256]; +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; }; enum { - NFS_LSEG_VALID = 0, - NFS_LSEG_ROC = 1, - NFS_LSEG_LAYOUTCOMMIT = 2, - NFS_LSEG_LAYOUTRETURN = 3, - NFS_LSEG_UNAVAILABLE = 4, + ACPI_GENL_CMD_UNSPEC = 0, + ACPI_GENL_CMD_EVENT = 1, + __ACPI_GENL_CMD_MAX = 2, }; -struct nfs4_layoutreturn { - struct nfs4_layoutreturn_args args; - struct nfs4_layoutreturn_res res; - const struct cred *cred; - struct nfs_client *clp; - struct inode *inode; - int rpc_status; - struct nfs4_xdr_opaque_data ld_private; +enum { + ACPI_GENL_ATTR_UNSPEC = 0, + ACPI_GENL_ATTR_EVENT = 1, + __ACPI_GENL_ATTR_MAX = 2, }; -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 acpi_genl_event { + acpi_device_class device_class; + char bus_id[15]; + u32 type; + u32 data; }; -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; -}; +typedef enum { + ACPI_TRACE_AML_METHOD = 0, + ACPI_TRACE_AML_OPCODE = 1, + ACPI_TRACE_AML_REGION = 2, +} acpi_trace_event_type; enum { - CRYPTOA_UNSPEC = 0, - CRYPTOA_ALG = 1, - CRYPTOA_TYPE = 2, - __CRYPTOA_MAX = 3, + 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, }; -struct rtattr { - unsigned short rta_len; - unsigned short rta_type; -}; +typedef u32 acpi_rsdesc_size; -struct crypto_attr_type { - u32 type; - u32 mask; +struct clk_fixed_rate { + struct clk_hw hw; + unsigned long fixed_rate; + unsigned long fixed_accuracy; + unsigned long flags; }; -struct crypto_attr_alg { - char name[128]; +struct _ccu_nkmp { + unsigned long n; + unsigned long min_n; + unsigned long max_n; + unsigned long k; + unsigned long min_k; + unsigned long max_k; + unsigned long m; + unsigned long min_m; + unsigned long max_m; + unsigned long p; + unsigned long min_p; + unsigned long max_p; }; -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 jh71xx_domain_info; -typedef void (*btf_trace_kyber_latency)(void *, dev_t, const char *, const char *, unsigned int, unsigned int, unsigned int, unsigned int); +struct jh71xx_pmu; -typedef void (*btf_trace_kyber_adjust)(void *, dev_t, const char *, unsigned int); +struct jh71xx_pmu_dev; -typedef void (*btf_trace_kyber_throttled)(void *, dev_t, const char *); +struct jh71xx_pmu_match_data { + const struct jh71xx_domain_info *domain_info; + int num_domains; + unsigned int pmu_status; + int (*pmu_parse_irq)(struct platform_device *, struct jh71xx_pmu *); + int (*pmu_set_state)(struct jh71xx_pmu_dev *, u32, bool); +}; -enum { - KYBER_READ = 0, - KYBER_WRITE = 1, - KYBER_DISCARD = 2, - KYBER_OTHER = 3, - KYBER_NUM_DOMAINS = 4, +struct jh71xx_domain_info { + const char * const name; + unsigned int flags; + u8 bit; }; -enum { - KYBER_TOTAL_LATENCY = 0, - KYBER_IO_LATENCY = 1, +typedef struct generic_pm_domain * (*genpd_xlate_t)(struct of_phandle_args *, void *); + +struct genpd_onecell_data { + struct generic_pm_domain **domains; + unsigned int num_domains; + genpd_xlate_t xlate; }; -enum { - KYBER_LATENCY_SHIFT = 2, - KYBER_GOOD_BUCKETS = 4, - KYBER_LATENCY_BUCKETS = 8, +struct jh71xx_pmu { + struct device *dev; + const struct jh71xx_pmu_match_data *match_data; + void *base; + struct generic_pm_domain **genpd; + struct genpd_onecell_data genpd_data; + int irq; + spinlock_t lock; }; -enum { - KYBER_ASYNC_PERCENT = 75, +struct jh71xx_pmu_dev { + const struct jh71xx_domain_info *domain_info; + struct jh71xx_pmu *pmu; + struct generic_pm_domain genpd; }; -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 virtrng_info { + struct hwrng hwrng; + struct virtqueue *vq; + char name[25]; + int index; + bool hwrng_register_done; + bool hwrng_removed; + struct completion have_data; + unsigned int data_avail; + unsigned int data_idx; + u8 data[64]; }; -struct trace_event_raw_kyber_adjust { - struct trace_entry ent; - dev_t dev; - char domain[16]; - unsigned int depth; - char __data[0]; +enum sun50i_iommu_aci { + SUN50I_IOMMU_ACI_DO_NOT_USE = 0, + SUN50I_IOMMU_ACI_NONE = 1, + SUN50I_IOMMU_ACI_RD = 2, + SUN50I_IOMMU_ACI_WR = 3, + SUN50I_IOMMU_ACI_RD_WR = 4, }; -struct trace_event_raw_kyber_throttled { - struct trace_entry ent; - dev_t dev; - char domain[16]; - char __data[0]; +struct sun50i_iommu; + +struct sun50i_iommu_domain { + struct iommu_domain domain; + refcount_t refcnt; + u32 *dt; + dma_addr_t dt_dma; + struct sun50i_iommu *iommu; }; -struct kyber_cpu_latency { - atomic_t buckets[48]; +struct sun50i_iommu { + struct iommu_device iommu; + spinlock_t iommu_lock; + struct device *dev; + void *base; + struct reset_control *reset; + struct clk *clk; + struct iommu_domain *domain; + struct kmem_cache *pt_pool; }; -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 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 kyber_ctx_queue { - spinlock_t lock; - struct list_head rq_list[4]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct ata_acpi_hotplug_context { + struct acpi_hotplug_context hp; + union { + struct ata_port *ap; + struct ata_device *dev; + } data; }; -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 ata_acpi_gtf { + u8 tf[7]; }; -struct flush_kcq_data { - struct kyber_hctx_data *khd; - unsigned int sched_domain; - struct list_head *list; +struct reg_val { + u16 reg; + u32 val; }; -struct trace_event_data_offsets_kyber_latency {}; +struct vsc8531_edge_rate_table { + u32 vddmac; + u32 slowdown[8]; +}; -struct trace_event_data_offsets_kyber_adjust {}; +struct vsc85xx_hw_stat { + const char *string; + u8 reg; + u16 page; + u16 mask; +}; -struct trace_event_data_offsets_kyber_throttled {}; +enum rgmii_clock_delay { + RGMII_CLK_DELAY_0_2_NS = 0, + RGMII_CLK_DELAY_0_8_NS = 1, + RGMII_CLK_DELAY_1_1_NS = 2, + RGMII_CLK_DELAY_1_7_NS = 3, + RGMII_CLK_DELAY_2_0_NS = 4, + RGMII_CLK_DELAY_2_3_NS = 5, + RGMII_CLK_DELAY_2_6_NS = 6, + RGMII_CLK_DELAY_3_4_NS = 7, +}; -typedef enum { - CODES = 0, - LENS = 1, - DISTS = 2, -} codetype; +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, +}; -typedef ZSTD_parameters zstd_parameters; +struct vsc85xx_ptp; -typedef ZSTD_CCtx zstd_cctx; +struct vsc8531_private { + int rate_magic; + u16 supp_led_modes; + u32 leds_mode[4]; + u8 nleds; + const struct vsc85xx_hw_stat *hw_stats; + u64 *stats; + int nstats; + u8 addr; + unsigned int base_addr; + struct mii_timestamper mii_ts; + bool input_clk_init; + struct vsc85xx_ptp *ptp; + struct gpio_desc *load_save; + unsigned int ts_base_addr; + u8 ts_base_phy; + struct mutex ts_lock; + struct mutex phc_lock; +}; -typedef ZSTD_CStream zstd_cstream; +struct each_dev_arg { + void *data; + int (*fn)(struct usb_device *, void *); +}; -typedef ZSTD_compressionParameters zstd_compression_parameters; +struct find_interface_arg { + int minor; + struct device_driver *drv; +}; -struct sunxi_pinctrl_regulator { - struct regulator *regulator; - refcount_t refcount; +struct usb_ehci_pdata { + int caps_offset; + unsigned int has_tt: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_mmio: 1; + unsigned int no_io_watchdog: 1; + unsigned int reset_on_resume: 1; + unsigned int dma_mask_64: 1; + unsigned int spurious_oc: 1; + int (*power_on)(struct platform_device *); + void (*power_off)(struct platform_device *); + void (*power_suspend)(struct platform_device *); + int (*pre_setup)(struct usb_hcd *); }; -struct sunxi_pinctrl_function; +struct ehci_platform_priv { + struct clk *clks[4]; + struct reset_control *rsts; + bool reset_on_resume; + bool quirk_poll; + struct timer_list poll_timer; + struct delayed_work poll_work; +}; -struct sunxi_pinctrl_group; +struct swoc_info { + __u8 rev; + __u8 reserved[8]; + __u16 LinuxSKU; + __u16 LinuxVer; + __u8 reserved2[47]; +} __attribute__((packed)); -struct sunxi_pinctrl { - void *membase; - struct gpio_chip *chip; - const struct sunxi_pinctrl_desc *desc; - struct device *dev; - struct sunxi_pinctrl_regulator regulators[9]; - struct irq_domain *domain; - struct sunxi_pinctrl_function *functions; - unsigned int nfunctions; - struct sunxi_pinctrl_group *groups; - unsigned int ngroups; - int *irq; - unsigned int *irq_array; - raw_spinlock_t lock; - struct pinctrl_dev *pctl_dev; - unsigned long variant; - u32 bank_mem_size; - u32 pull_regs_offset; - u32 dlevel_field_width; +struct trackpoint_attr_data { + size_t field_offset; + u8 command; + u8 mask; + bool inverted; + u8 power_on_default; }; -struct sunxi_pinctrl_function { - const char *name; - const char **groups; - unsigned int ngroups; +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 sunxi_pinctrl_group { - const char *name; - unsigned int pin; +struct rzg2l_thermal_priv { + struct device *dev; + void *base; + struct thermal_zone_device *zone; + struct reset_control *rstc; + u32 calib0; + u32 calib1; }; -enum dw_pcie_app_clk { - DW_PCIE_DBI_CLK = 0, - DW_PCIE_MSTR_CLK = 1, - DW_PCIE_SLV_CLK = 2, - DW_PCIE_NUM_APP_CLKS = 3, -}; +typedef int tpl_parse_t(struct mmc_card *, struct sdio_func *, const unsigned char *, unsigned int); -enum dw_pcie_core_clk { - DW_PCIE_PIPE_CLK = 0, - DW_PCIE_CORE_CLK = 1, - DW_PCIE_AUX_CLK = 2, - DW_PCIE_REF_CLK = 3, - DW_PCIE_NUM_CORE_CLKS = 4, +struct cis_tpl { + unsigned char code; + unsigned char min_size; + tpl_parse_t *parse; }; -enum dw_pcie_app_rst { - DW_PCIE_DBI_RST = 0, - DW_PCIE_MSTR_RST = 1, - DW_PCIE_SLV_RST = 2, - DW_PCIE_NUM_APP_RSTS = 3, +struct hid_control_fifo { + unsigned char dir; + struct hid_report *report; + char *raw_report; }; -enum dw_pcie_core_rst { - DW_PCIE_NON_STICKY_RST = 0, - DW_PCIE_STICKY_RST = 1, - DW_PCIE_CORE_RST = 2, - DW_PCIE_PIPE_RST = 3, - DW_PCIE_PHY_RST = 4, - DW_PCIE_HOT_RST = 5, - DW_PCIE_PWR_RST = 6, - DW_PCIE_NUM_CORE_RSTS = 7, +struct hid_output_fifo { + struct hid_report *report; + char *raw_report; }; -enum dw_edma_chip_flags { - DW_EDMA_CHIP_LOCAL = 1, +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; }; -enum acpi_ec_event_state { - EC_EVENT_READY = 0, - EC_EVENT_IN_PROGRESS = 1, - EC_EVENT_COMPLETE = 2, -}; +struct hid_class_descriptor { + __u8 bDescriptorType; + __le16 wDescriptorLength; +} __attribute__((packed)); -struct transaction; +struct hid_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdHID; + __u8 bCountryCode; + __u8 bNumDescriptors; + struct hid_class_descriptor desc[1]; +} __attribute__((packed)); -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 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 transaction { - const u8 *wdata; - u8 *rdata; - unsigned short irq_count; - u8 command; - u8 wi; - u8 ri; - u8 wlen; - u8 rlen; - u8 flags; +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 *); }; -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, +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; }; -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, +struct pcpu_gen_cookie { + local_t nesting; + u64 last; }; -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; +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 acpi_ec_query { - struct transaction transaction; +struct broadcast_sk { + struct sock *sk; struct work_struct work; - struct acpi_ec_query_handler *handler; - struct acpi_ec *ec; }; -struct acpi_table_ecdt { - struct acpi_table_header header; - struct acpi_generic_address control; - struct acpi_generic_address data; - u32 uid; - u8 gpe; - u8 id[0]; -} __attribute__((packed)); - -struct ccu_pll_nb { - struct notifier_block clk_nb; - struct ccu_common *common; - u32 enable; - u32 lock; +struct sock_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; }; -struct sunxi_ccu { - const struct sunxi_ccu_desc *desc; - spinlock_t lock; - struct ccu_reset reset; +struct ethtool_forced_speed_map { + u32 speed; + unsigned long caps[2]; + const u32 *cap_arr; + u32 arr_size; }; -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; +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 virtio_blk_vq; +struct privflags_reply_data { + struct ethnl_reply_data base; + const char (*priv_flag_names)[32]; + unsigned int n_priv_flags; + u32 priv_flags; +}; -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 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 virtio_blk_vq { - struct virtqueue *vq; - spinlock_t lock; - char name[16]; - long: 64; - long: 64; +struct ipfrag_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + }; + struct sk_buff *next_frag; + int frag_run_len; }; -struct virtio_blk_outhdr { - __virtio32 type; - __virtio32 ioprio; - __virtio64 sector; +enum { + NDUSEROPT_UNSPEC = 0, + NDUSEROPT_SRCADDR = 1, + __NDUSEROPT_MAX = 2, }; -struct virtblk_req { - struct virtio_blk_outhdr out_hdr; - union { - u8 status; - struct { - __virtio64 sector; - u8 status; - } zone_append; - } in_hdr; - size_t in_hdr_len; - struct sg_table sg_table; - struct scatterlist sg[0]; +struct nd_msg { + struct icmp6hdr icmph; + struct in6_addr target; + __u8 opt[0]; }; -struct virtio_blk_discard_write_zeroes { - __le64 sector; - __le32 num_sectors; - __le32 flags; +struct rs_msg { + struct icmp6hdr icmph; + __u8 opt[0]; }; -struct sfp_eeprom_id; +struct ra_msg { + struct icmp6hdr icmph; + __be32 reachable_time; + __be32 retrans_timer; +}; -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 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 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 br_input_skb_cb { + struct net_device *brdev; + u16 frag_max_size; + u8 igmp; + u8 mrouters_only: 1; + u8 proxyarp_replied: 1; + u8 src_port_isolated: 1; + u8 vlan_filtered: 1; + u8 br_netfilter_broute: 1; + u32 backup_nhid; }; -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 ip6_fraglist_iter { + struct ipv6hdr *tmp_hdr; + struct sk_buff *frag; + int offset; + unsigned int hlen; + __be32 frag_id; + u8 nexthdr; }; -struct sfp_eeprom_id { - struct sfp_eeprom_base base; - struct sfp_eeprom_ext ext; +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 phylink { - struct net_device *netdev; - const struct phylink_mac_ops *mac_ops; - struct phylink_config *config; - struct phylink_pcs *pcs; - struct device *dev; - unsigned int old_link_state: 1; - unsigned long phylink_disable_state; - struct phy_device *phydev; - phy_interface_t link_interface; - u8 cfg_link_an_mode; - u8 cur_link_an_mode; - u8 link_port; - unsigned long supported[2]; - struct phylink_link_state link_config; - phy_interface_t cur_interface; - struct gpio_desc *link_gpio; - unsigned int link_irq; - struct timer_list link_poll; - void (*get_fixed_state)(struct net_device *, struct phylink_link_state *); - struct mutex state_mutex; - struct phylink_link_state phy_state; - struct work_struct resolve; - unsigned int pcs_neg_mode; - bool mac_link_dropped; - bool using_mac_select_pcs; - struct sfp_bus *sfp_bus; - bool sfp_may_have_phy; - unsigned long sfp_interfaces[1]; - unsigned long sfp_support[2]; - u8 sfp_port; +struct nf_bridge_frag_data; + +struct rpcb_info { + u32 rpc_vers; + const struct rpc_procinfo *rpc_proc; }; enum { - PHYLINK_DISABLE_STOPPED = 0, - PHYLINK_DISABLE_LINK = 1, - PHYLINK_DISABLE_MAC_WOL = 2, + 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 xhci_plat_priv { - const char *firmware_name; - unsigned long long quirks; - void (*plat_start)(struct usb_hcd *); - int (*init_quirk)(struct usb_hcd *); - int (*suspend_quirk)(struct usb_hcd *); - int (*resume_quirk)(struct usb_hcd *); +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 goldfish_rtc { - void *base; - int irq; - struct rtc_device *rtc; +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 mmc_op_cond_busy_data { - struct mmc_host *host; - u32 ocr; - struct mmc_command *cmd; +struct decryptor_desc { + u8 iv[16]; + struct skcipher_request *req; + struct scatterlist frags[4]; + int fragno; + int fraglen; }; -struct mmc_busy_data { - struct mmc_card *card; - bool retry_crc_err; - enum mmc_busy_cmd busy_cmd; +struct group_data { + int limit[21]; + int base[20]; + int permute[258]; + int minLen; + int maxLen; }; -struct clocksource_mmio { - void *reg; - struct clocksource clksrc; +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 tc_ratespec { - unsigned char cell_log; - __u8 linklayer; - unsigned short overhead; - short cell_align; - unsigned short mpu; - __u32 rate; +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 qdisc_rate_table { - struct tc_ratespec rate; - u32 data[256]; - struct qdisc_rate_table *next; - int refcnt; -}; +struct lzma_header; -enum tc_link_layer { - TC_LINKLAYER_UNAWARE = 0, - TC_LINKLAYER_ETHERNET = 1, - TC_LINKLAYER_ATM = 2, +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; }; -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 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 { - TCA_STAB_UNSPEC = 0, - TCA_STAB_BASE = 1, - TCA_STAB_DATA = 2, - __TCA_STAB_MAX = 3, +enum cpio_fields { + C_MAGIC = 0, + C_INO = 1, + C_MODE = 2, + C_UID = 3, + C_GID = 4, + C_NLINK = 5, + C_MTIME = 6, + C_FILESIZE = 7, + C_MAJ = 8, + C_MIN = 9, + C_RMAJ = 10, + C_RMIN = 11, + C_NAMESIZE = 12, + C_CHKSUM = 13, + C_NFIELDS = 14, }; -enum tc_root_command { - TC_ROOT_GRAFT = 0, +struct cpio_data { + void *data; + size_t size; + char name[18]; }; -struct Qdisc_class_common { - u32 classid; - struct hlist_node hnode; +struct tms { + __kernel_clock_t tms_utime; + __kernel_clock_t tms_stime; + __kernel_clock_t tms_cutime; + __kernel_clock_t tms_cstime; }; -struct qdisc_watchdog { - struct hrtimer timer; - struct Qdisc *qdisc; +struct compat_tms { + compat_clock_t tms_utime; + compat_clock_t tms_stime; + compat_clock_t tms_cutime; + compat_clock_t tms_cstime; }; -struct check_loop_arg { - struct qdisc_walker w; - struct Qdisc *p; - int depth; +struct compat_rlimit { + compat_ulong_t rlim_cur; + compat_ulong_t rlim_max; }; -struct tc_bind_class_args { - struct qdisc_walker w; - unsigned long new_cl; - u32 portid; - u32 clid; +struct rlimit64 { + __u64 rlim_cur; + __u64 rlim_max; }; -struct qdisc_dump_args { - struct qdisc_walker w; - struct sk_buff *skb; - struct netlink_callback *cb; +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 tc_root_qopt_offload { - enum tc_root_command command; - u32 handle; - bool ingress; +struct getcpu_cache { + unsigned long blob[16]; }; -struct Qdisc_class_hash { - struct hlist_head *hash; - unsigned int hashsize; - unsigned int hashmask; - unsigned int hashelems; +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 tc_query_caps_base { - enum tc_setup_type type; - void *caps; +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; }; -struct tcf_bind_args { - struct tcf_walker w; - unsigned long base; - unsigned long cl; - u32 classid; +struct io_tlb_area { + unsigned long used; + unsigned int index; + spinlock_t lock; }; -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 io_tlb_slot { + phys_addr_t orig_addr; + size_t alloc_size; + unsigned int list; }; -struct module_reply_data { - struct ethnl_reply_data base; - struct ethtool_module_power_mode_params power; -}; +typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t); -enum fib6_walk_state { - FWS_S = 0, - FWS_L = 1, - FWS_R = 2, - FWS_C = 3, - FWS_U = 4, +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]; }; -enum { - FIB6_NO_SERNUM_CHANGE = 0, +struct trace_event_data_offsets_swiotlb_bounced { + u32 dev_name; }; -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 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 fib6_cleaner { - struct fib6_walker w; - struct net *net; - int (*func)(struct fib6_info *, void *); - int sernum; - void *arg; - bool skip_notify; +typedef struct sigevent sigevent_t; + +struct action_cache { + unsigned long allow_native[8]; }; -struct fib6_dump_arg { - struct net *net; - struct notifier_block *nb; - struct netlink_ext_ack *extack; +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 fib6_entry_notifier_info { - struct fib_notifier_info info; - struct fib6_info *rt; - unsigned int nsiblings; +struct notification { + atomic_t requests; + u32 flags; + u64 next_id; + struct list_head notifications; }; -struct fib6_gc_args { - int timeout; - int more; +struct seccomp_log_name { + u32 log; + const char *name; }; -struct ipv6_route_iter { - struct seq_net_private p; - struct fib6_walker w; - loff_t skip; - struct fib6_table *tbl; - int sernum; +enum notify_state { + SECCOMP_NOTIFY_INIT = 0, + SECCOMP_NOTIFY_SENT = 1, + SECCOMP_NOTIFY_REPLIED = 2, }; -struct bpf_iter__ipv6_route { - union { - struct bpf_iter_meta *meta; - }; +struct seccomp_kaddfd { + struct file *file; + int fd; + unsigned int flags; + __u32 ioctl_flags; union { - struct fib6_info *rt; + bool setfd; + int ret; }; + struct completion completion; + struct list_head list; }; -struct fib6_nh_pcpu_arg { - struct fib6_info *from; - const struct fib6_table *table; +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 lookup_args { - int offset; - const struct in6_addr *addr; +struct compat_sock_fprog { + u16 len; + compat_uptr_t filter; }; -struct rt6_rtnl_dump_arg { - struct sk_buff *skb; - struct netlink_callback *cb; - struct net *net; - struct fib_dump_filter filter; +struct seccomp_notif_sizes { + __u16 seccomp_notif; + __u16 seccomp_notif_resp; + __u16 seccomp_data; }; -struct xsk_map; +struct seccomp_notif { + __u64 id; + __u32 pid; + __u32 flags; + struct seccomp_data data; +}; -struct xsk_map_node { - struct list_head node; - struct xsk_map *map; - struct xdp_sock __attribute__((btf_type_tag("rcu"))) **map_entry; +struct seccomp_notif_resp { + __u64 id; + __s64 val; + __s32 error; + __u32 flags; }; -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; +struct seccomp_notif_addfd { + __u64 id; + __u32 flags; + __u32 srcfd; + __u32 newfd; + __u32 newfd_flags; }; -struct sockaddr_xdp { - __u16 sxdp_family; - __u16 sxdp_flags; - __u32 sxdp_ifindex; - __u32 sxdp_queue_id; - __u32 sxdp_shared_umem_fd; +struct seccomp_metadata { + __u64 filter_off; + __u64 flags; }; -struct xdp_ring_offset_v1 { - __u64 producer; - __u64 consumer; - __u64 desc; +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 xdp_umem_reg { - __u64 addr; - __u64 len; - __u32 chunk_size; - __u32 headroom; - __u32 flags; +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 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 swevent_hlist; + +struct swevent_htable { + struct swevent_hlist *swevent_hlist; + struct mutex hlist_mutex; + int hlist_refcount; + int recursion[4]; }; -struct xdp_ring_offset { - __u64 producer; - __u64 consumer; - __u64 desc; - __u64 flags; +struct swevent_hlist { + struct hlist_head heads[256]; + struct callback_head callback_head; }; -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 min_heap_callbacks { + int elem_size; + bool (*less)(const void *, const void *); + void (*swp)(void *, void *); }; -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 pmu_event_list { + raw_spinlock_t lock; + struct list_head list; }; -struct xdp_options { - __u32 flags; +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 posix_clock; +enum event_type_t { + EVENT_FLEXIBLE = 1, + EVENT_PINNED = 2, + EVENT_TIME = 4, + EVENT_CPU = 8, + EVENT_CGROUP = 16, + EVENT_ALL = 3, +}; -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); +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 posix_clock { - struct posix_clock_operations ops; - struct cdev cdev; - struct device *dev; - struct rw_semaphore rwsem; - bool zombie; +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, }; -struct posix_clock_desc { - struct file *fp; - struct posix_clock *clk; +enum perf_event_task_context { + perf_invalid_context = -1, + perf_hw_context = 0, + perf_sw_context = 1, + perf_nr_task_contexts = 2, }; -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 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_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 { - RB_LEN_TIME_EXTEND = 8, - RB_LEN_TIME_STAMP = 8, +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 ring_buffer_flags { - RB_FL_OVERWRITE = 1, +enum perf_event_ioc_flags { + PERF_IOC_FLAG_GROUP = 1, }; enum { - RB_CTX_TRANSITION = 0, - RB_CTX_NMI = 1, - RB_CTX_IRQ = 2, - RB_CTX_SOFTIRQ = 3, - RB_CTX_NORMAL = 4, - RB_CTX_MAX = 5, + IF_STATE_ACTION = 0, + IF_STATE_SOURCE = 1, + IF_STATE_END = 2, }; enum { - RB_ADD_STAMP_NONE = 0, - RB_ADD_STAMP_EXTEND = 2, - RB_ADD_STAMP_ABSOLUTE = 4, - RB_ADD_STAMP_FORCE = 8, + 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, }; -struct buffer_data_page; +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 buffer_page { - struct list_head list; - local_t write; - unsigned int read; - local_t entries; - unsigned long real_end; - struct buffer_data_page *page; +typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *); + +struct perf_event_header { + __u32 type; + __u16 misc; + __u16 size; }; -struct buffer_data_page { - u64 time_stamp; - local_t commit; - unsigned char data[0]; +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; }; -struct ring_buffer_per_cpu; +typedef void perf_iterate_f(struct perf_event *, void *); -struct ring_buffer_iter { - struct ring_buffer_per_cpu *cpu_buffer; - unsigned long head; - unsigned long next_event; - struct buffer_page *head_page; - struct buffer_page *cache_reader_page; - unsigned long cache_read; - unsigned long cache_pages_removed; - u64 read_stamp; - u64 page_stamp; - struct ring_buffer_event *event; - int missed_events; +struct stop_event_data { + struct perf_event *event; + unsigned int restart; }; -struct rb_time_struct { - local64_t time; -}; +typedef int (*remote_function_f)(void *); -typedef struct rb_time_struct rb_time_t; +struct remote_function_call { + struct task_struct *p; + remote_function_f func; + void *info; + int ret; +}; -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 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 ring_buffer_per_cpu { - int cpu; - atomic_t record_disabled; - atomic_t resize_disabled; - struct trace_buffer *buffer; - raw_spinlock_t reader_lock; - arch_spinlock_t lock; - struct lock_class_key lock_key; - struct buffer_data_page *free_page; - unsigned long nr_pages; - unsigned int current_context; - struct list_head *pages; - struct buffer_page *head_page; - struct buffer_page *tail_page; - struct buffer_page *commit_page; - struct buffer_page *reader_page; - unsigned long lost_events; - unsigned long last_overrun; - unsigned long nest; - local_t entries_bytes; - local_t entries; - local_t overrun; - local_t commit_overrun; - local_t dropped_events; - local_t committing; - local_t commits; - local_t pages_touched; - local_t pages_lost; - local_t pages_read; - long last_pages_touch; - size_t shortest_full; - unsigned long read; - unsigned long read_bytes; - rb_time_t write_stamp; - rb_time_t before_stamp; - u64 event_stamp[5]; - u64 read_stamp; - unsigned long pages_removed; - long nr_pages_to_update; - struct list_head new_pages; - struct work_struct update_pages_work; - struct completion update_done; - struct rb_irq_work irq_work; +struct perf_ns_link_info { + __u64 dev; + __u64 ino; }; -struct trace_buffer { - unsigned int flags; - int cpus; - atomic_t record_disabled; - atomic_t resizing; - cpumask_var_t cpumask; - struct lock_class_key *reader_lock_key; - struct mutex mutex; - struct ring_buffer_per_cpu **buffers; - struct hlist_node node; - u64 (*clock)(); - struct rb_irq_work irq_work; - bool time_stamp_abs; +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 rb_event_info { - u64 ts; - u64 delta; - u64 before; - u64 after; - unsigned long length; - struct buffer_page *tail_page; - int add_timestamp; +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 btf_kfunc_hook_filter { - btf_kfunc_filter_t filters[16]; - u32 nr_filters; +struct perf_aux_event { + struct perf_event_header header; + u64 offset; + u64 size; + u64 flags; }; -struct btf_kfunc_set_tab { - struct btf_id_set8 *sets[13]; - struct btf_kfunc_hook_filter hook_filters[13]; +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 btf_id_dtor_kfunc_tab { - u32 cnt; - struct btf_id_dtor_kfunc dtors[0]; +struct perf_aux_event___2 { + struct perf_event_header header; + u64 hw_id; }; -struct btf_struct_metas { - u32 cnt; - struct btf_struct_meta types[0]; +struct __group_key { + int cpu; + struct pmu *pmu; + struct cgroup *cgroup; }; -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 perf_cgroup_event { + char *path; + int path_size; + struct { + struct perf_event_header header; + u64 id; + char path[0]; + } event_id; }; -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 min_heap { + void *data; + int nr; + int size; }; -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 perf_aux_event___3 { + struct perf_event_header header; + u32 pid; + u32 tid; }; -struct bpf_perf_event_data { - bpf_user_pt_regs_t regs; - __u64 sample_period; - __u64 addr; +struct perf_read_event { + struct perf_event_header header; + u32 pid; + u32 tid; }; -struct bpf_cgroup_dev_ctx { - __u32 access_type; - __u32 major; - __u32 minor; +struct remote_output { + struct perf_buffer *rb; + int err; }; -struct bpf_sysctl { - __u32 write; - __u32 file_pos; +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 bpf_sysctl_kern { - struct ctl_table_header *head; - struct ctl_table *table; - void *cur_val; - size_t cur_len; - void *new_val; - size_t new_len; - int new_updated; - int write; - loff_t *ppos; - u64 tmp_reg; +struct 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 bpf_sockopt { - union { - struct bpf_sock *sk; - }; - union { - void *optval; - }; - union { - void *optval_end; - }; - __s32 level; - __s32 optname; - __s32 optlen; - __s32 retval; +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 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 event_function_struct { + struct perf_event *event; + event_f func; + void *data; }; -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 perf_read_data { + struct perf_event *event; + bool group; + int ret; }; -struct bpf_ctx_convert { - struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog; - struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern; - struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog; - struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern; - struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog; - struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern; - struct xdp_md BPF_PROG_TYPE_XDP_prog; - struct xdp_buff BPF_PROG_TYPE_XDP_kern; - struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog; - struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern; - struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog; - struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern; - struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog; - struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog; - struct sk_buff BPF_PROG_TYPE_LWT_IN_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog; - struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog; - struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog; - struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern; - struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog; - struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern; - struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog; - struct sk_buff BPF_PROG_TYPE_SK_SKB_kern; - struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog; - struct sk_msg BPF_PROG_TYPE_SK_MSG_kern; - struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog; - struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern; - bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog; - struct pt_regs BPF_PROG_TYPE_KPROBE_kern; - __u64 BPF_PROG_TYPE_TRACEPOINT_prog; - u64 BPF_PROG_TYPE_TRACEPOINT_kern; - struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog; - struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern; - struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog; - u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern; - struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog; - u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern; - void *BPF_PROG_TYPE_TRACING_prog; - void *BPF_PROG_TYPE_TRACING_kern; - struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog; - struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern; - struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog; - struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern; - struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog; - struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern; - struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog; - struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern; - struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog; - struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern; - void *BPF_PROG_TYPE_SYSCALL_prog; - void *BPF_PROG_TYPE_SYSCALL_kern; - struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_prog; - struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_kern; +struct inotify_event { + __s32 wd; + __u32 mask; + __u32 cookie; + __u32 len; + char name[0]; }; -struct btf_verifier_env; +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 resolve_vertex; +enum { + Opt_uid___5 = 0, + Opt_gid___6 = 1, + Opt_mode___5 = 2, + Opt_ptmxmode = 3, + Opt_newinstance = 4, + Opt_max = 5, + Opt_err___6 = 6, +}; -struct btf_show; +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 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 pts_fs_info { + struct ida allocated_ptys; + struct pts_mount_opts mount_opts; + struct super_block *sb; + struct dentry *ptmx_dentry; }; -struct resolve_vertex { - const struct btf_type *t; - u32 type_id; - u16 next_member; +typedef struct { + __le32 *p; + __le32 key; + struct buffer_head *bh; +} Indirect; + +typedef struct { + __le32 a_version; +} ext4_acl_header; + +typedef struct { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; +} ext4_acl_entry; + +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; }; -enum verifier_phase { - CHECK_META = 0, - CHECK_TYPE = 1, +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; }; -enum resolve_mode { - RESOLVE_TBD = 0, - RESOLVE_PTR = 1, - RESOLVE_STRUCT_OR_ARRAY = 2, +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 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 idmap_msg { + __u8 im_type; + __u8 im_conv; + char im_name[128]; + __u32 im_id; + __u8 im_status; }; -struct btf_show { - u64 flags; - void *target; - void (*showfn)(struct btf_show *, const char *, va_list); - 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 idmap_legacy_upcalldata { + struct rpc_pipe_msg pipe_msg; + struct idmap_msg idmap_msg; + struct key *authkey; + struct idmap *idmap; }; -struct bpf_cand_cache { - const char *name; - u32 name_len; - u16 kind; - u16 cnt; - struct { - const struct btf *btf; - u32 id; - } cands[0]; +enum { + Opt_find_uid = 0, + Opt_find_gid = 1, + Opt_find_user = 2, + Opt_find_group = 3, + Opt_find_err = 4, }; -enum bpf_struct_walk_result { - WALK_SCALAR = 0, - WALK_PTR = 1, - WALK_STRUCT = 2, +enum aa_sfs_type { + AA_SFS_TYPE_BOOLEAN = 0, + AA_SFS_TYPE_STRING = 1, + AA_SFS_TYPE_U64 = 2, + AA_SFS_TYPE_FOPS = 3, + AA_SFS_TYPE_DIR = 4, }; -enum { - BTF_MODULE_F_LIVE = 1, +struct aa_sfs_entry { + const char *name; + struct dentry *dentry; + umode_t mode; + enum aa_sfs_type v_type; + union { + bool boolean; + char *string; + unsigned long u64; + struct aa_sfs_entry *files; + } v; + const struct file_operations *file_ops; }; -enum btf_kfunc_hook { - BTF_KFUNC_HOOK_COMMON = 0, - BTF_KFUNC_HOOK_XDP = 1, - BTF_KFUNC_HOOK_TC = 2, - BTF_KFUNC_HOOK_STRUCT_OPS = 3, - BTF_KFUNC_HOOK_TRACING = 4, - BTF_KFUNC_HOOK_SYSCALL = 5, - BTF_KFUNC_HOOK_FMODRET = 6, - BTF_KFUNC_HOOK_CGROUP_SKB = 7, - BTF_KFUNC_HOOK_SCHED_ACT = 8, - BTF_KFUNC_HOOK_SK_SKB = 9, - BTF_KFUNC_HOOK_SOCKET_FILTER = 10, - BTF_KFUNC_HOOK_LWT = 11, - BTF_KFUNC_HOOK_NETFILTER = 12, - BTF_KFUNC_HOOK_MAX = 13, +struct multi_transaction { + struct kref count; + ssize_t size; + char data[0]; }; -enum { - BTF_KFUNC_SET_MAX_CNT = 256, - BTF_DTOR_KFUNC_MAX_CNT = 256, - BTF_KFUNC_FILTER_MAX_CNT = 16, +struct rawdata_f_data { + struct aa_loaddata *loaddata; }; -enum { - BTF_FIELD_IGNORE = 0, - BTF_FIELD_FOUND = 1, +struct aa_revision { + struct aa_ns *ns; + long last_read; }; -enum visit_state { - NOT_VISITED = 0, - VISITED = 1, - RESOLVED = 2, +struct crypto_cipher_spawn { + struct crypto_spawn base; }; -enum { - BTF_VAR_STATIC = 0, - BTF_VAR_GLOBAL_ALLOCATED = 1, - BTF_VAR_GLOBAL_EXTERN = 2, +struct disk_events { + struct list_head node; + struct gendisk *disk; + spinlock_t lock; + struct mutex block_mutex; + int block; + unsigned int pending; + unsigned int clearing; + long poll_msecs; + struct delayed_work dwork; }; -struct btf_module { - struct list_head list; - struct module *module; - struct btf *btf; - struct bin_attribute *sysfs_attr; +struct io_sync { + struct file *file; + loff_t len; + loff_t off; int flags; + int mode; }; -typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); +enum gpio_v2_line_flag { + GPIO_V2_LINE_FLAG_USED = 1, + GPIO_V2_LINE_FLAG_ACTIVE_LOW = 2, + GPIO_V2_LINE_FLAG_INPUT = 4, + GPIO_V2_LINE_FLAG_OUTPUT = 8, + GPIO_V2_LINE_FLAG_EDGE_RISING = 16, + GPIO_V2_LINE_FLAG_EDGE_FALLING = 32, + GPIO_V2_LINE_FLAG_OPEN_DRAIN = 64, + GPIO_V2_LINE_FLAG_OPEN_SOURCE = 128, + GPIO_V2_LINE_FLAG_BIAS_PULL_UP = 256, + GPIO_V2_LINE_FLAG_BIAS_PULL_DOWN = 512, + GPIO_V2_LINE_FLAG_BIAS_DISABLED = 1024, + GPIO_V2_LINE_FLAG_EVENT_CLOCK_REALTIME = 2048, + GPIO_V2_LINE_FLAG_EVENT_CLOCK_HTE = 4096, +}; -struct btf_decl_tag { - __s32 component_idx; +enum gpio_v2_line_changed_type { + GPIO_V2_LINE_CHANGED_REQUESTED = 1, + GPIO_V2_LINE_CHANGED_RELEASED = 2, + GPIO_V2_LINE_CHANGED_CONFIG = 3, }; -struct btf_sec_info { - u32 off; - u32 len; +enum gpio_v2_line_attr_id { + GPIO_V2_LINE_ATTR_ID_FLAGS = 1, + GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 2, + GPIO_V2_LINE_ATTR_ID_DEBOUNCE = 3, }; -struct btf_enum { - __u32 name_off; - __s32 val; +enum gpio_v2_line_event_id { + GPIO_V2_LINE_EVENT_RISING_EDGE = 1, + GPIO_V2_LINE_EVENT_FALLING_EDGE = 2, }; -struct btf_var { - __u32 linkage; +struct gpioevent_data { + __u64 timestamp; + __u32 id; }; -struct btf_enum64 { - __u32 name_off; - __u32 val_lo32; - __u32 val_hi32; +struct lineevent_state { + struct gpio_device *gdev; + const char *label; + struct gpio_desc *desc; + u32 eflags; + int irq; + wait_queue_head_t wait; + struct notifier_block device_unregistered_nb; + struct { + union { + struct __kfifo kfifo; + struct gpioevent_data *type; + const struct gpioevent_data *const_type; + char (*rectype)[0]; + struct gpioevent_data *ptr; + const struct gpioevent_data *ptr_const; + }; + struct gpioevent_data buf[16]; + } events; + u64 timestamp; }; -struct btf_show_snprintf { - struct btf_show show; - int len_left; - int len; +struct linereq; + +struct line { + struct gpio_desc *desc; + struct linereq *req; + unsigned int irq; + u64 edflags; + u64 timestamp_ns; + u32 req_seqno; + u32 line_seqno; + struct delayed_work work; + unsigned int sw_debounced; + unsigned int level; }; -struct btf_field_info { - enum btf_field_type type; - u32 off; +struct gpio_v2_line_event { + __u64 timestamp_ns; + __u32 id; + __u32 offset; + __u32 seqno; + __u32 line_seqno; + __u32 padding[6]; +}; + +struct linereq { + struct gpio_device *gdev; + const char *label; + u32 num_lines; + wait_queue_head_t wait; + struct notifier_block device_unregistered_nb; + u32 event_buffer_size; + struct { + union { + struct __kfifo kfifo; + struct gpio_v2_line_event *type; + const struct gpio_v2_line_event *const_type; + char (*rectype)[0]; + struct gpio_v2_line_event *ptr; + const struct gpio_v2_line_event *ptr_const; + }; + struct gpio_v2_line_event buf[0]; + } events; + atomic_t seqno; + struct mutex config_mutex; + struct line lines[0]; +}; + +struct gpio_v2_line_attribute { + __u32 id; + __u32 padding; union { - struct { - u32 type_id; - } kptr; - struct { - const char *node_name; - u32 value_btf_id; - } graph_root; + __u64 flags; + __u64 values; + __u32 debounce_period_us; }; }; -struct bpf_core_cand; +struct gpio_v2_line_info { + char name[32]; + char consumer[32]; + __u32 offset; + __u32 num_attrs; + __u64 flags; + struct gpio_v2_line_attribute attrs[10]; + __u32 padding[4]; +}; -struct bpf_core_cand_list { - struct bpf_core_cand *cands; - int len; +struct gpio_v2_line_info_changed { + struct gpio_v2_line_info info; + __u64 timestamp_ns; + __u32 event_type; + __u32 padding[5]; }; -struct bpf_core_cand { - const struct btf *btf; - __u32 id; +struct gpio_chardev_data { + struct gpio_device *gdev; + wait_queue_head_t wait; + struct { + union { + struct __kfifo kfifo; + struct gpio_v2_line_info_changed *type; + const struct gpio_v2_line_info_changed *const_type; + char (*rectype)[0]; + struct gpio_v2_line_info_changed *ptr; + const struct gpio_v2_line_info_changed *ptr_const; + }; + struct gpio_v2_line_info_changed buf[32]; + } events; + struct notifier_block lineinfo_changed_nb; + struct notifier_block device_unregistered_nb; + unsigned long *watched_lines; + atomic_t watch_abi_version; }; -struct bpf_core_accessor { - __u32 type_id; - __u32 idx; - const char *name; +typedef ssize_t (*read_fn)(struct file *, char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + +typedef __poll_t (*poll_fn)(struct file *, struct poll_table_struct *); + +typedef long (*ioctl_fn___2)(struct file *, unsigned int, unsigned long); + +struct gpio_v2_line_config_attribute { + struct gpio_v2_line_attribute attr; + __u64 mask; }; -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 gpio_v2_line_config { + __u64 flags; + __u32 num_attrs; + __u32 padding[5]; + struct gpio_v2_line_config_attribute attrs[10]; }; -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 gpio_v2_line_request { + __u32 offsets[64]; + char consumer[32]; + struct gpio_v2_line_config config; + __u32 num_lines; + __u32 event_buffer_size; + __u32 padding[5]; + __s32 fd; }; -struct dentry_stat_t { - long nr_dentry; - long nr_unused; - long age_limit; - long want_pages; - long nr_negative; - long dummy; +struct gpiochip_info { + char name[32]; + char label[32]; + __u32 lines; }; -enum d_walk_ret { - D_WALK_CONTINUE = 0, - D_WALK_QUIT = 1, - D_WALK_NORETRY = 2, - D_WALK_SKIP = 3, +struct gpioevent_request { + __u32 lineoffset; + __u32 handleflags; + __u32 eventflags; + char consumer_label[32]; + int fd; }; -struct external_name { - union { - atomic_t count; - struct callback_head head; - } u; - unsigned char name[0]; +struct gpiohandle_request { + __u32 lineoffsets[64]; + __u32 flags; + __u8 default_values[64]; + char consumer_label[32]; + __u32 lines; + int fd; }; -struct check_mount { - struct vfsmount *mnt; - unsigned int mounted; +struct linehandle_state { + struct gpio_device *gdev; + const char *label; + struct gpio_desc *descs[64]; + u32 num_descs; }; -struct select_data { - struct dentry *start; - union { - long found; - struct dentry *victim; - }; - struct list_head dispose; +struct gpioline_info { + __u32 line_offset; + __u32 flags; + char name[32]; + char consumer[32]; }; -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 gpioline_info_changed { + struct gpioline_info info; + __u64 timestamp; + __u32 event_type; + __u32 padding[5]; }; -struct iomap_readpage_ctx { - struct folio *cur_folio; - bool cur_folio_in_bio; - struct bio *bio; - struct readahead_control *rac; +struct gpiohandle_data { + __u8 values[64]; }; -struct iomap_page { - atomic_t read_bytes_pending; - atomic_t write_bytes_pending; - spinlock_t uptodate_lock; - unsigned long uptodate[0]; +struct gpiohandle_config { + __u32 flags; + __u8 default_values[64]; + __u32 padding[4]; }; -struct iomap_writeback_ops; +struct gpio_v2_line_values { + __u64 bits; + __u64 mask; +}; -struct iomap_writepage_ctx { - struct iomap iomap; - struct iomap_ioend *ioend; - const struct iomap_writeback_ops *ops; +struct walk_rcec_data { + struct pci_dev *rcec; + int (*user_callback)(struct pci_dev *, void *); + void *user_data; }; -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); +struct fb_cvt_data { + u32 xres; + u32 yres; + u32 refresh; + u32 f_refresh; + u32 pixclock; + u32 hperiod; + u32 hblank; + u32 hfreq; + u32 htotal; + u32 vtotal; + u32 vsync; + u32 hsync; + u32 h_front_porch; + u32 h_back_porch; + u32 v_front_porch; + u32 v_back_porch; + u32 h_margin; + u32 v_margin; + u32 interlace; + u32 aspect_ratio; + u32 active_pixels; + u32 flags; + u32 status; }; -typedef __kernel_mode_t mode_t; +typedef void (*btf_trace_clk_enable)(void *, struct clk_core *); -struct orlov_stats { - __u64 free_clusters; - __u32 free_inodes; - __u32 used_dirs; -}; +struct clk_parent_map; -struct nfs_createdata { - struct nfs_createargs arg; - struct nfs_diropok res; - struct nfs_fh fhandle; - struct nfs_fattr fattr; +struct clk_core { + const char *name; + const struct clk_ops *ops; + struct clk_hw *hw; + struct module *owner; + struct device *dev; + struct device_node *of_node; + struct clk_core *parent; + struct clk_parent_map *parents; + u8 num_parents; + u8 new_parent_index; + unsigned long rate; + unsigned long req_rate; + unsigned long new_rate; + struct clk_core *new_parent; + struct clk_core *new_child; + unsigned long flags; + bool orphan; + bool rpm_enabled; + unsigned int enable_count; + unsigned int prepare_count; + unsigned int protect_count; + unsigned long min_rate; + unsigned long max_rate; + unsigned long accuracy; + int phase; + struct clk_duty duty; + struct hlist_head children; + struct hlist_node child_node; + struct hlist_head clks; + unsigned int notifier_count; + struct dentry *dentry; + struct hlist_node debug_node; + struct kref ref; }; -enum p9_qid_t { - P9_QTDIR = 128, - P9_QTAPPEND = 64, - P9_QTEXCL = 32, - P9_QTMOUNT = 16, - P9_QTAUTH = 8, - P9_QTTMP = 4, - P9_QTSYMLINK = 2, - P9_QTLINK = 1, - P9_QTFILE = 0, +struct clk { + struct clk_core *core; + struct device *dev; + const char *dev_id; + const char *con_id; + unsigned long min_rate; + unsigned long max_rate; + unsigned int exclusive_count; + struct hlist_node clks_node; }; -struct dotl_openflag_map { - int open_flag; - int dotl_flag; +struct clk_parent_map { + const struct clk_hw *hw; + struct clk_core *core; + const char *fw_name; + const char *name; + int index; }; -struct dotl_iattr_map { - int iattr_valid; - int p9_iattr_valid; -}; +typedef void (*btf_trace_clk_enable_complete)(void *, struct clk_core *); -struct sel_netnode_bkt { - unsigned int size; - struct list_head list; -}; +typedef void (*btf_trace_clk_disable)(void *, struct clk_core *); -struct netnode_security_struct { - union { - __be32 ipv4; - struct in6_addr ipv6; - } addr; - u32 sid; - u16 family; -}; +typedef void (*btf_trace_clk_disable_complete)(void *, struct clk_core *); -struct sel_netnode { - struct netnode_security_struct nsec; - struct list_head list; - struct callback_head rcu; -}; +typedef void (*btf_trace_clk_prepare)(void *, struct clk_core *); -struct uuidcmp { - const char *uuid; - int len; -}; +typedef void (*btf_trace_clk_prepare_complete)(void *, struct clk_core *); -struct io_timeout { - struct file *file; - u32 off; - u32 target_seq; - u32 repeats; - struct list_head list; - struct io_kiocb *head; - struct io_kiocb *prev; -}; +typedef void (*btf_trace_clk_unprepare)(void *, struct clk_core *); -struct io_timeout_rem { - struct file *file; - u64 addr; - struct timespec64 ts; - u32 flags; - bool ltimeout; -}; +typedef void (*btf_trace_clk_unprepare_complete)(void *, struct clk_core *); -struct io_timeout_data { - struct io_kiocb *req; - struct hrtimer timer; - struct timespec64 ts; - enum hrtimer_mode mode; - u32 flags; -}; +typedef void (*btf_trace_clk_set_rate)(void *, struct clk_core *, unsigned long); -struct io_cancel_data { - struct io_ring_ctx *ctx; - union { - u64 data; - struct file *file; - }; - u32 flags; - int seq; -}; +typedef void (*btf_trace_clk_set_rate_complete)(void *, struct clk_core *, unsigned long); -struct portdrv_service_data { - struct pcie_port_service_driver *drv; - struct device *dev; - u32 service; -}; +typedef void (*btf_trace_clk_set_min_rate)(void *, struct clk_core *, unsigned long); -typedef int (*pcie_callback_t)(struct pcie_device *); +typedef void (*btf_trace_clk_set_max_rate)(void *, struct clk_core *, unsigned long); -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, -}; +typedef void (*btf_trace_clk_set_rate_range)(void *, struct clk_core *, unsigned long, unsigned long); -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; -}; +typedef void (*btf_trace_clk_set_parent)(void *, struct clk_core *, struct clk_core *); -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, -}; +typedef void (*btf_trace_clk_set_parent_complete)(void *, struct clk_core *, struct clk_core *); -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; -}; +typedef void (*btf_trace_clk_set_phase)(void *, struct clk_core *, int); -struct dma_chan_tbl_ent { - struct dma_chan *chan; +typedef void (*btf_trace_clk_set_phase_complete)(void *, struct clk_core *, int); + +typedef void (*btf_trace_clk_set_duty_cycle)(void *, struct clk_core *, struct clk_duty *); + +typedef void (*btf_trace_clk_set_duty_cycle_complete)(void *, struct clk_core *, struct clk_duty *); + +typedef void (*btf_trace_clk_rate_request_start)(void *, struct clk_rate_request *); + +typedef void (*btf_trace_clk_rate_request_done)(void *, struct clk_rate_request *); + +struct clk_notifier { + struct clk *clk; + struct srcu_notifier_head notifier_head; + struct list_head node; }; -struct dmaengine_unmap_pool { - struct kmem_cache *cache; - const char *name; - mempool_t *pool; - size_t size; +struct of_clk_provider { + struct list_head link; + struct device_node *node; + struct clk * (*get)(struct of_phandle_args *, void *); + struct clk_hw * (*get_hw)(struct of_phandle_args *, void *); + void *data; }; -struct subsys_interface { - const char *name; - struct bus_type *subsys; +struct clock_provider { + void (*clk_init_cb)(struct device_node *); + struct device_node *np; struct list_head node; - int (*add_dev)(struct device *, struct subsys_interface *); - void (*remove_dev)(struct device *, struct subsys_interface *); }; -struct subsys_dev_iter { - struct klist_iter ki; - const struct device_type *type; +struct trace_event_raw_clk { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; }; -struct regmap_debugfs_node { - struct regmap *map; - struct list_head link; +struct trace_event_raw_clk_rate { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long rate; + char __data[0]; }; -struct regmap_debugfs_off_cache { - struct list_head list; - off_t min; - off_t max; - unsigned int base_reg; - unsigned int max_reg; +struct trace_event_raw_clk_rate_range { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long min; + unsigned long max; + char __data[0]; }; -struct dma_fence_array_cb { - struct dma_fence_cb cb; - struct dma_fence_array *array; +struct trace_event_raw_clk_parent { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_pname; + char __data[0]; }; -struct mdio_board_entry { - struct list_head list; - struct mdio_board_info board_info; +struct trace_event_raw_clk_phase { + struct trace_entry ent; + u32 __data_loc_name; + int phase; + char __data[0]; }; -struct vivaldi_data { - u32 function_row_physmap[24]; - unsigned int num_function_row_keys; +struct trace_event_raw_clk_duty_cycle { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int num; + unsigned int den; + char __data[0]; }; -struct atkbd { - struct ps2dev ps2dev; - struct input_dev *dev; - char name[64]; - char phys[32]; - unsigned short id; - unsigned short keycode[512]; - unsigned long force_release_mask[8]; - unsigned char set; - bool translated; - bool extra; - bool write; - bool softrepeat; - bool softraw; - bool scroll; - bool enabled; - unsigned char emul; - bool resend; - bool release; - unsigned long xl_bit; - unsigned int last; - unsigned long time; - unsigned long err_count; - struct delayed_work event_work; - unsigned long event_jiffies; - unsigned long event_mask; - struct mutex mutex; - struct vivaldi_data vdata; +struct trace_event_raw_clk_rate_request { + struct trace_entry ent; + u32 __data_loc_name; + u32 __data_loc_pname; + unsigned long min; + unsigned long max; + unsigned long prate; + char __data[0]; }; -struct dm_kobject_holder { - struct kobject kobj; - struct completion completion; +struct trace_event_data_offsets_clk { + u32 name; }; -typedef struct { - u32 version; - u32 num_entries; - u32 desc_size; - u32 flags; - efi_memory_desc_t entry[0]; -} efi_memory_attributes_table_t; +struct trace_event_data_offsets_clk_rate { + u32 name; +}; -struct supplier_bindings { - struct device_node * (*parse_prop)(struct device_node *, const char *, int); - bool optional; - bool node_not_dev; +struct trace_event_data_offsets_clk_rate_range { + u32 name; }; -struct of_endpoint { - unsigned int port; - unsigned int id; - const struct device_node *local_node; +struct trace_event_data_offsets_clk_parent { + u32 name; + u32 pname; }; -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, +struct trace_event_data_offsets_clk_phase { + u32 name; }; -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 trace_event_data_offsets_clk_duty_cycle { + u32 name; }; -struct fec_stat_grp { - u64 stats[9]; - u8 cnt; +struct trace_event_data_offsets_clk_rate_request { + u32 name; + u32 pname; }; -struct fec_reply_data { - struct ethnl_reply_data base; - unsigned long fec_link_modes[2]; - u32 active_fec; - u8 fec_auto; - struct fec_stat_grp corr; - struct fec_stat_grp uncorr; - struct fec_stat_grp corr_bits; +struct clk_notifier_devres { + struct clk *clk; + struct notifier_block *nb; }; -struct icmp6_err { - int err; - int fatal; +struct clk_onecell_data { + struct clk **clks; + unsigned int clk_num; }; -struct icmpv6_msg { - struct sk_buff *skb; - int offset; - uint8_t type; +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 gss_pipe; +struct probe; -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 kobj_map { + struct probe *probes[255]; + struct mutex *lock; }; -struct gss_pipe { - struct rpc_pipe_dir_object pdo; - struct rpc_pipe *pipe; - struct rpc_clnt *clnt; - const char *name; - struct kref kref; -}; +typedef struct kobject *kobj_probe_t(dev_t, int *, void *); -struct gss_cl_ctx; +struct probe { + struct probe *next; + dev_t dev; + unsigned long range; + struct module *owner; + kobj_probe_t *get; + int (*lock)(dev_t, void *); + void *data; +}; -struct 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 regmap_mmio_context { + void *regs; + unsigned int val_bytes; + bool big_endian; + bool attached_clk; + struct clk *clk; + void (*reg_write)(struct regmap_mmio_context *, unsigned int, unsigned int); + unsigned int (*reg_read)(struct regmap_mmio_context *, unsigned int); }; -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_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 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; +struct trace_event_data_offsets_devres { + u32 devname; }; -struct gss_alloc_pdo { - struct rpc_clnt *clnt; - const char *name; - const struct rpc_pipe_ops *upcall_ops; +struct dma_fence_array_cb { + struct dma_fence_cb cb; + struct dma_fence_array *array; }; -struct exit_boot_struct { - struct efi_boot_memmap *boot_memmap; - efi_memory_desc_t *runtime_map; - int runtime_entry_count; - void *new_fdt_addr; +struct msdos_partition { + u8 boot_ind; + u8 head; + u8 sector; + u8 cyl; + u8 sys_ind; + u8 end_head; + u8 end_sector; + u8 end_cyl; + __le32 start_sect; + __le32 nr_sects; }; -struct riscv_cacheinfo_ops { - const struct attribute_group * (*get_priv_group)(struct cacheinfo *); +typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); + +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]; }; -enum { - MAX_IORES_LEVEL = 5, +struct mdio_board_info { + const char *bus_id; + char modalias[32]; + int mdio_addr; + const void *platform_data; }; -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 trace_event_data_offsets_mdio_access {}; + +struct mdio_bus_stat_attr { + int addr; + unsigned int field_offset; }; -struct region_devres { - struct resource *parent; - resource_size_t start; - resource_size_t n; +enum hub_led_mode { + INDICATOR_AUTO = 0, + INDICATOR_CYCLE = 1, + INDICATOR_GREEN_BLINK = 2, + INDICATOR_GREEN_BLINK_OFF = 3, + INDICATOR_AMBER_BLINK = 4, + INDICATOR_AMBER_BLINK_OFF = 5, + INDICATOR_ALT_BLINK = 6, + INDICATOR_ALT_BLINK_OFF = 7, +} __attribute__((mode(byte))); + +enum hub_quiescing_type { + HUB_DISCONNECT = 0, + HUB_PRE_RESET = 1, + HUB_SUSPEND = 2, }; -enum rwsem_waiter_type { - RWSEM_WAITING_FOR_WRITE = 0, - RWSEM_WAITING_FOR_READ = 1, +enum hub_activation_type { + HUB_INIT = 0, + HUB_INIT2 = 1, + HUB_INIT3 = 2, + HUB_POST_RESET = 3, + HUB_RESUME = 4, + HUB_RESET_RESUME = 5, }; -enum rwsem_wake_type { - RWSEM_WAKE_ANY = 0, - RWSEM_WAKE_READERS = 1, - RWSEM_WAKE_READ_OWNED = 2, +struct usb_tt_clear { + struct list_head clear_list; + unsigned int tt; + u16 devinfo; + struct usb_hcd *hcd; + struct usb_host_endpoint *ep; }; -enum owner_state { - OWNER_NULL = 1, - OWNER_WRITER = 2, - OWNER_READER = 4, - OWNER_NONSPINNABLE = 8, +struct usb_otg_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bmAttributes; }; -struct rwsem_waiter { - struct list_head list; - struct task_struct *task; - enum rwsem_waiter_type type; - unsigned long timeout; - bool handoff_set; +struct usb_qualifier_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __u8 bNumConfigurations; + __u8 bRESERVED; }; -enum msi_desc_filter { - MSI_DESC_ALL = 0, - MSI_DESC_NOTASSOCIATED = 1, - MSI_DESC_ASSOCIATED = 2, +struct usbdevfs_hub_portinfo { + char nports; + char port[127]; }; -struct msi_ctrl { - unsigned int domid; - unsigned int first; - unsigned int last; - unsigned int nirqs; +struct usb_set_sel_req { + __u8 u1_sel; + __u8 u1_pel; + __le16 u2_sel; + __le16 u2_pel; }; -struct timer_list_iter { - int cpu; - bool second_pass; - u64 now; +struct xhci_driver_data { + u64 quirks; + const char *firmware; }; -enum cgroup_filetype { - CGROUP_FILE_PROCS = 0, - CGROUP_FILE_TASKS = 1, +struct dm_kobject_holder { + struct kobject kobj; + struct completion completion; }; -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 mmc_op_cond_busy_data { + struct mmc_host *host; + u32 ocr; + struct mmc_command *cmd; }; -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 mmc_busy_data { + struct mmc_card *card; + bool retry_crc_err; + enum mmc_busy_cmd busy_cmd; }; -struct cgroupstats { - __u64 nr_sleeping; - __u64 nr_running; - __u64 nr_stopped; - __u64 nr_uninterruptible; - __u64 nr_io_wait; +struct renesas_sdhi_dma { + unsigned long end_flags; + enum dma_slave_buswidth dma_buswidth; + bool (*filter)(struct dma_chan *, void *); + void (*enable)(struct tmio_mmc_host *, bool); + struct completion dma_dataend; + struct tasklet_struct dma_complete; }; -struct syscall_trace_enter { - struct trace_entry ent; - int nr; - unsigned long args[0]; +struct renesas_sdhi_quirks; + +struct renesas_sdhi { + struct clk *clk; + struct clk *clkh; + struct clk *clk_cd; + struct tmio_mmc_data mmc_data; + struct renesas_sdhi_dma dma_priv; + const struct renesas_sdhi_quirks *quirks; + struct pinctrl *pinctrl; + struct pinctrl_state *pins_default; + struct pinctrl_state *pins_uhs; + void *scc_ctl; + u32 scc_tappos; + u32 scc_tappos_hs400; + const u8 *adjust_hs400_calib_table; + bool needs_adjust_hs400; + unsigned long taps[1]; + unsigned long smpcmp[1]; + unsigned int tap_num; + unsigned int tap_set; + struct reset_control *rstc; }; -struct syscall_trace_exit { - struct trace_entry ent; - int nr; - long ret; +struct renesas_sdhi_quirks { + bool hs400_disabled; + bool hs400_4taps; + bool fixed_addr_mode; + bool dma_one_rx_only; + bool manual_tap_correction; + bool old_info1_layout; + u32 hs400_bad_taps; + const u8 (*hs400_calib_table)[32]; }; -struct syscall_tp_t { - unsigned long long regs; - unsigned long syscall_nr; - unsigned long args[6]; +struct renesas_sdhi_scc; + +struct renesas_sdhi_of_data { + unsigned long tmio_flags; + u32 tmio_ocr_mask; + unsigned long capabilities; + unsigned long capabilities2; + enum dma_slave_buswidth dma_buswidth; + dma_addr_t dma_rx_offset; + unsigned int bus_shift; + int scc_offset; + struct renesas_sdhi_scc *taps; + int taps_num; + unsigned int max_blk_count; + unsigned short max_segs; + unsigned long sdhi_flags; }; -struct syscall_tp_t___2 { - unsigned long long regs; - unsigned long syscall_nr; - unsigned long ret; +struct renesas_sdhi_scc { + unsigned long clk_rate; + u32 tap; + u32 tap_hs400_4tap; }; -struct bpf_iter__bpf_prog { - union { - struct bpf_iter_meta *meta; - }; +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 walksize; union { - struct bpf_prog *prog; + struct { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + struct crypto_alg base; + }; + struct skcipher_alg_common co; }; }; -struct bpf_iter_seq_prog_info { - u32 prog_id; +struct skcipher_engine_alg { + struct skcipher_alg base; + struct crypto_engine_op op; }; -typedef void (*btf_trace_rseq_update)(void *, struct task_struct *); +struct virtio_crypto_algo { + uint32_t algonum; + uint32_t service; + unsigned int active_devs; + struct skcipher_engine_alg algo; +}; -typedef void (*btf_trace_rseq_ip_fixup)(void *, unsigned long, unsigned long, unsigned long, unsigned long); +struct virtio_crypto_skcipher_ctx; -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, +struct virtio_crypto_sym_request { + struct virtio_crypto_request base; + uint32_t type; + struct virtio_crypto_skcipher_ctx *skcipher_ctx; + struct skcipher_request *skcipher_req; + uint8_t *iv; + bool encrypt; }; -enum rseq_flags { - RSEQ_FLAG_UNREGISTER = 1, +struct virtio_crypto_sym_session_info { + __u64 session_id; }; -enum rseq_cpu_id_state { - RSEQ_CPU_ID_UNINITIALIZED = -1, - RSEQ_CPU_ID_REGISTRATION_FAILED = -2, +struct virtio_crypto_skcipher_ctx { + struct virtio_crypto *vcrypto; + struct crypto_skcipher *tfm; + struct virtio_crypto_sym_session_info enc_sess_info; + struct virtio_crypto_sym_session_info dec_sess_info; }; -struct trace_event_raw_rseq_update { - struct trace_entry ent; - s32 cpu_id; - s32 node_id; - s32 mm_cid; - char __data[0]; +struct of_bus___2 { + void (*count_cells)(const void *, int, int *, int *); + u64 (*map)(__be32 *, const __be32 *, int, int, int); + int (*translate)(__be32 *, u64, int); }; -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 rpmsg_eptdev { + struct device dev; + struct cdev cdev; + struct rpmsg_device *rpdev; + struct rpmsg_channel_info chinfo; + struct mutex ept_lock; + struct rpmsg_endpoint *ept; + struct rpmsg_endpoint *default_ept; + spinlock_t queue_lock; + struct sk_buff_head queue; + wait_queue_head_t readq; + bool remote_flow_restricted; + bool remote_flow_updated; }; -struct rseq_cs { - __u32 version; - __u32 flags; - __u64 start_ip; - __u64 post_commit_offset; - __u64 abort_ip; +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 trace_event_data_offsets_rseq_update {}; - -struct trace_event_data_offsets_rseq_ip_fixup {}; - -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]; +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 trace_event_raw_vma_mas_szero { - struct trace_entry ent; - struct maple_tree *mt; - unsigned long start; - unsigned long end; - char __data[0]; +struct net_fill_args { + u32 portid; + u32 seq; + int flags; + int cmd; + int nsid; + bool add_ref; + int ref_nsid; }; -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 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; }; -struct trace_event_raw_exit_mmap { - struct trace_entry ent; - struct mm_struct *mm; - struct maple_tree *mt; - char __data[0]; +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, }; -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; +enum { + LWT_BPF_PROG_UNSPEC = 0, + LWT_BPF_PROG_FD = 1, + LWT_BPF_PROG_NAME = 2, + __LWT_BPF_PROG_MAX = 3, }; -struct trace_event_data_offsets_vm_unmapped_area {}; - -struct trace_event_data_offsets_vma_mas_szero {}; - -struct trace_event_data_offsets_vma_store {}; +struct bpf_lwt { + struct bpf_lwt_prog in; + struct bpf_lwt_prog out; + struct bpf_lwt_prog xmit; + int family; +}; -struct trace_event_data_offsets_exit_mmap {}; +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, +}; -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]; +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, }; -struct jbd2_revoke_table_s { - int hash_size; - int hash_shift; - struct list_head *hash_table; +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, }; -struct jbd2_revoke_record_s { - struct list_head hash; - tid_t sequence; - unsigned long long blocknr; +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, }; -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; +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 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, +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, }; -enum pnfs_notify_deviceid_type4 { - NOTIFY_DEVICEID4_CHANGE = 2, - NOTIFY_DEVICEID4_DELETE = 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 cb_compound_hdr_arg { - unsigned int taglen; - const char *tag; - unsigned int minorversion; - unsigned int cb_ident; - unsigned int nops; +struct pse_reply_data { + struct ethnl_reply_data base; + struct pse_control_status status; }; -struct cb_compound_hdr_res { - __be32 *status; - unsigned int taglen; - const char *tag; - __be32 *nops; +struct pse_control_config { + enum ethtool_podl_pse_admin_state admin_cotrol; }; -struct msg_msgseg { - struct msg_msgseg *next; +struct fib_prop { + int error; + u8 scope; }; -union aa_buffer { - struct list_head list; - struct { - struct {} __empty_buffer; - char buffer[0]; - }; +struct fib_nh_notifier_info { + struct fib_notifier_info info; + struct fib_nh *fib_nh; }; -enum dd_prio { - DD_RT_PRIO = 0, - DD_BE_PRIO = 1, - DD_IDLE_PRIO = 2, - DD_PRIO_MAX = 2, +struct tcp_seq_afinfo { + sa_family_t family; }; -enum dd_data_dir { - DD_READ = 0, - DD_WRITE = 1, +enum tcp_seq_states { + TCP_SEQ_STATE_LISTENING = 0, + TCP_SEQ_STATE_ESTABLISHED = 1, }; -struct io_stats_per_prio { - uint32_t inserted; - uint32_t merged; - uint32_t dispatched; - atomic_t completed; +struct tcp6_sock { + struct tcp_sock tcp; + struct ipv6_pinfo inet6; }; -struct dd_per_prio { - struct list_head dispatch; - struct rb_root sort_list[2]; - struct list_head fifo_list[2]; - sector_t latest_pos[2]; - struct io_stats_per_prio stats; +struct tcp_ao_hdr { + u8 kind; + u8 length; + u8 keyid; + u8 rnext_keyid; }; -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; +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; }; enum { - MAX_OPT_ARGS = 3, + RPC_PIPEFS_MOUNT = 0, + RPC_PIPEFS_UMOUNT = 1, }; -struct csum_state { - __wsum csum; - size_t off; +struct rpc_cb_add_xprt_calldata { + struct rpc_xprt_switch *xps; + struct rpc_xprt *xprt; }; -struct iov_iter_state { - size_t iov_offset; - size_t count; - unsigned long nr_segs; +struct connect_timeout_data { + unsigned long connect_timeout; + unsigned long reconnect_timeout; }; -struct jh7110_func_sel { - u16 offset; - u8 shift; - u8 max; +struct gss_domain { + struct auth_domain h; + u32 pseudoflavor; }; -struct jh7110_vin_group_sel { - u16 offset; - u8 shift; - u8 group; +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; }; -struct acpi_create_field_info { - struct acpi_namespace_node *region_node; - struct acpi_namespace_node *field_node; - struct acpi_namespace_node *register_node; - struct acpi_namespace_node *data_register_node; - struct acpi_namespace_node *connection_node; - u8 *resource_buffer; - u32 bank_value; - u32 field_bit_position; - u32 field_bit_length; - u16 resource_length; - u16 pin_number_index; - u8 field_flags; - u8 attribute; - u8 field_type; - u8 access_length; +struct gss_svc_seq_data { + u32 sd_max; + unsigned long sd_win[2]; + spinlock_t sd_lock; }; -struct ccu_phase { - u8 shift; - u8 width; - struct ccu_common common; +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 jh71xx_domain_info; - -struct jh71xx_pmu_match_data { - const struct jh71xx_domain_info *domain_info; - int num_domains; +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 jh71xx_domain_info { - const char * const name; - unsigned int flags; - u8 bit; +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; }; -struct jh71xx_pmu; +typedef void (*jump_kernel_func)(unsigned long, unsigned long); -struct jh71xx_pmu_dev { - const struct jh71xx_domain_info *domain_info; - struct jh71xx_pmu *pmu; - struct generic_pm_domain genpd; +struct riscv_efi_boot_protocol { + u64 revision; + efi_status_t (*get_boot_hartid)(struct riscv_efi_boot_protocol *, unsigned long *); }; -struct jh71xx_pmu { - struct device *dev; - const struct jh71xx_pmu_match_data *match_data; - void *base; - struct generic_pm_domain **genpd; - struct genpd_onecell_data genpd_data; - int irq; - spinlock_t lock; -}; +typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *); -struct memdev { - const char *name; - umode_t mode; - const struct file_operations *fops; - fmode_t fmode; -}; +typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int); -enum dax_device_flags { - DAXDEV_ALIVE = 0, - DAXDEV_WRITE_CACHE = 1, - DAXDEV_SYNC = 2, - DAXDEV_NOCACHE = 3, - DAXDEV_NOMC = 4, -}; +typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); -struct dax_holder_operations; +typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *); -struct dax_device { - struct inode inode; - struct cdev cdev; - void *private; - unsigned long flags; - const struct dax_operations *ops; - void *holder_data; - const struct dax_holder_operations *holder_ops; -}; +typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t); -struct dax_holder_operations { - int (*notify_failure)(struct dax_device *, u64, u64, int); -}; +typedef void (*btf_trace_sched_waking)(void *, struct task_struct *); -struct virtio_scsi_event { - __virtio32 event; - __u8 lun[8]; - __virtio32 reason; -}; +typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *); -struct virtio_scsi; +typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *); -struct virtio_scsi_event_node { - struct virtio_scsi *vscsi; - struct virtio_scsi_event event; - struct work_struct work; -}; +typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int); -struct virtio_scsi_vq { - spinlock_t vq_lock; - struct virtqueue *vq; -}; +typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int); -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]; -}; +typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *); -struct virtio_scsi_cmd_req { - __u8 lun[8]; - __virtio64 tag; - __u8 task_attr; - __u8 prio; - __u8 crn; - __u8 cdb[32]; -} __attribute__((packed)); +typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *); -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)); +typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *); -struct virtio_scsi_ctrl_tmf_req { - __virtio32 type; - __virtio32 subtype; - __u8 lun[8]; - __virtio64 tag; -}; +typedef void (*btf_trace_sched_process_wait)(void *, struct pid *); -struct virtio_scsi_ctrl_an_req { - __virtio32 type; - __u8 lun[8]; - __virtio32 event_requested; -}; +typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *); -struct virtio_scsi_cmd_resp { - __virtio32 sense_len; - __virtio32 resid; - __virtio16 status_qualifier; - __u8 status; - __u8 response; - __u8 sense[96]; -}; +typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *); -struct virtio_scsi_ctrl_tmf_resp { - __u8 response; +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_process_hang)(void *, struct task_struct *); + +typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int); + +typedef void (*btf_trace_sched_stick_numa)(void *, struct task_struct *, int, struct task_struct *, int); + +typedef void (*btf_trace_sched_swap_numa)(void *, struct task_struct *, int, struct task_struct *, int); + +typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int); + +typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *); + +typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *); + +typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *); + +typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *); + +typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool); + +typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *); + +typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *); + +typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int); + +typedef void (*btf_trace_sched_compute_energy_tp)(void *, struct task_struct *, int, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *); + +typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, unsigned long, void *); + +typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, unsigned long, void *); + +typedef void (*btf_trace_ipi_entry)(void *, const char *); + +typedef void (*btf_trace_ipi_exit)(void *, const char *); + +enum { + cpuset = 0, + possible = 1, + fail = 2, }; -struct virtio_scsi_ctrl_an_resp { - __virtio32 event_actual; - __u8 response; -} __attribute__((packed)); +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, +}; -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: 64; -} __attribute__((packed)); +union cpumask_rcuhead { + cpumask_t cpumask; + struct callback_head rcu; +}; -struct virtnet_stat_desc { - char desc[32]; - size_t offset; +struct trace_event_raw_sched_kthread_stop { + struct trace_entry ent; + char comm[16]; + pid_t pid; + char __data[0]; }; -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 trace_event_raw_sched_kthread_stop_ret { + struct trace_entry ent; + int ret; + char __data[0]; }; -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 trace_event_raw_sched_kthread_work_queue_work { + struct trace_entry ent; + void *work; + void *function; + void *worker; + char __data[0]; }; -struct send_queue; +struct trace_event_raw_sched_kthread_work_execute_start { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; +}; -struct receive_queue; +struct trace_event_raw_sched_kthread_work_execute_end { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; +}; -struct control_buf; +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 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 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 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 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 send_queue { - struct virtqueue *vq; - struct scatterlist sg[19]; - char name[16]; - struct virtnet_sq_stats stats; - struct napi_struct napi; - bool reset; +struct trace_event_raw_sched_process_template { + struct trace_entry ent; + char comm[16]; + pid_t pid; + int prio; + char __data[0]; }; -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 trace_event_raw_sched_process_wait { + struct trace_entry ent; + char comm[16]; + pid_t pid; + int prio; + char __data[0]; }; -struct ewma_pkt_len { - unsigned long internal; +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 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: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct xdp_rxq_info xdp_rxq; +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 virtio_net_ctrl_hdr { - __u8 class; - __u8 cmd; +struct trace_event_raw_sched_stat_runtime { + struct trace_entry ent; + char comm[16]; + pid_t pid; + u64 runtime; + u64 vruntime; + char __data[0]; }; -typedef __u8 virtio_net_ctrl_ack; +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 virtio_net_ctrl_mq { - __virtio16 virtqueue_pairs; +struct trace_event_raw_sched_process_hang { + struct trace_entry ent; + char comm[16]; + pid_t pid; + char __data[0]; }; -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 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 virtio_net_ctrl_coal_tx { - __le32 tx_max_packets; - __le32 tx_usecs; +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 virtio_net_ctrl_coal_rx { - __le32 rx_max_packets; - __le32 rx_usecs; +struct trace_event_raw_sched_wake_idle_without_ipi { + struct trace_entry ent; + int cpu; + char __data[0]; }; -struct control_buf { - struct virtio_net_ctrl_hdr hdr; - virtio_net_ctrl_ack status; - struct virtio_net_ctrl_mq mq; - u8 promisc; - u8 allmulti; - __virtio16 vid; - __virtio64 offloads; - struct virtio_net_ctrl_rss rss; - struct virtio_net_ctrl_coal_tx coal_tx; - struct virtio_net_ctrl_coal_rx coal_rx; +struct trace_event_raw_ipi_raise { + struct trace_entry ent; + u32 __data_loc_target_cpus; + const char *reason; + char __data[0]; }; -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 trace_event_raw_ipi_send_cpu { + struct trace_entry ent; + unsigned int cpu; + void *callsite; + void *callback; + char __data[0]; }; -struct virtio_net_hdr_v1_hash { - struct virtio_net_hdr_v1 hdr; - __le32 hash_value; - __le16 hash_report; - __le16 padding; +struct trace_event_raw_ipi_send_cpumask { + struct trace_entry ent; + u32 __data_loc_cpumask; + void *callsite; + void *callback; + char __data[0]; }; -struct virtio_net_ctrl_mac { - __virtio32 entries; - __u8 macs[0]; +struct trace_event_raw_ipi_handler { + struct trace_entry ent; + const char *reason; + char __data[0]; }; -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; +struct trace_event_data_offsets_sched_process_exec { + u32 filename; }; -enum power_supply_charge_behaviour { - POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0, - POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1, - POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2, +struct trace_event_data_offsets_ipi_raise { + u32 target_cpus; }; -struct of_timer_base { - void *base; - const char *name; - int index; +struct trace_event_data_offsets_ipi_send_cpumask { + u32 cpumask; }; -struct of_timer_irq { - int irq; - int index; - int percpu; - const char *name; +typedef struct { + void *lock; +} class_rcu_t; + +typedef struct { + raw_spinlock_t *lock; +} class_raw_spinlock_irq_t; + +typedef struct { + void *lock; +} class_preempt_t; + +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irqsave_t; + +typedef struct { + raw_spinlock_t *lock; unsigned long flags; - irq_handler_t handler; -}; +} class_raw_spinlock_irqsave_t; -struct of_timer_clk { - struct clk *clk; - const char *name; - int index; - unsigned long rate; - unsigned long period; -}; +typedef struct { + struct task_struct *lock; + struct rq *rq; + struct rq_flags rf; +} class_task_rq_lock_t; -struct timer_of { - unsigned int flags; - struct device_node *np; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct clock_event_device clkevt; - struct of_timer_base of_base; - struct of_timer_irq of_irq; - struct of_timer_clk of_clk; - void *private_data; - long: 64; - long: 64; -}; +typedef struct task_struct *class_find_get_task_t; -enum offload_act_command { - FLOW_ACT_REPLACE = 0, - FLOW_ACT_DESTROY = 1, - FLOW_ACT_STATS = 2, -}; +typedef struct { + void *lock; + unsigned long flags; +} class_irqsave_t; -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, +typedef struct { + struct rq *lock; + struct rq *lock2; +} class_double_rq_lock_t; + +struct set_affinity_pending; + +struct migration_arg { + struct task_struct *task; + int dest_cpu; + struct set_affinity_pending *pending; }; -enum flow_block_command { - FLOW_BLOCK_BIND = 0, - FLOW_BLOCK_UNBIND = 1, +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 flow_block_cb; +typedef struct { + void *lock; +} class_cpus_read_lock_t; -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 cfs_schedulable_data { + struct task_group *tg; + u64 period; + u64 quota; }; -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; -}; +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irq_t; -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 trace_event_data_offsets_sched_kthread_stop {}; -struct flow_indr_dev { - struct list_head list; - flow_indr_block_bind_cb_t *cb; - void *cb_priv; - refcount_t refcnt; -}; +struct trace_event_data_offsets_sched_kthread_stop_ret {}; -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 trace_event_data_offsets_sched_kthread_work_queue_work {}; -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 trace_event_data_offsets_sched_kthread_work_execute_start {}; -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 trace_event_data_offsets_sched_kthread_work_execute_end {}; -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 trace_event_data_offsets_sched_wakeup_template {}; -struct flow_match_meta { - struct flow_dissector_key_meta *key; - struct flow_dissector_key_meta *mask; -}; +struct trace_event_data_offsets_sched_switch {}; -struct flow_match_basic { - struct flow_dissector_key_basic *key; - struct flow_dissector_key_basic *mask; -}; +struct trace_event_data_offsets_sched_migrate_task {}; -struct flow_match_control { - struct flow_dissector_key_control *key; - struct flow_dissector_key_control *mask; -}; +struct trace_event_data_offsets_sched_process_template {}; -struct flow_match_eth_addrs { - struct flow_dissector_key_eth_addrs *key; - struct flow_dissector_key_eth_addrs *mask; -}; +struct trace_event_data_offsets_sched_process_wait {}; -struct flow_match_vlan { - struct flow_dissector_key_vlan *key; - struct flow_dissector_key_vlan *mask; -}; +struct trace_event_data_offsets_sched_process_fork {}; -struct flow_match_arp { - struct flow_dissector_key_arp *key; - struct flow_dissector_key_arp *mask; -}; +struct trace_event_data_offsets_sched_stat_runtime {}; -struct flow_match_ipv4_addrs { - struct flow_dissector_key_ipv4_addrs *key; - struct flow_dissector_key_ipv4_addrs *mask; -}; +struct trace_event_data_offsets_sched_pi_setprio {}; -struct flow_match_ipv6_addrs { - struct flow_dissector_key_ipv6_addrs *key; - struct flow_dissector_key_ipv6_addrs *mask; +struct trace_event_data_offsets_sched_process_hang {}; + +struct trace_event_data_offsets_sched_move_numa {}; + +struct trace_event_data_offsets_sched_numa_pair_template {}; + +struct trace_event_data_offsets_sched_wake_idle_without_ipi {}; + +struct trace_event_data_offsets_ipi_send_cpu {}; + +struct trace_event_data_offsets_ipi_handler {}; + +struct misc_res { + u64 max; + atomic64_t usage; + atomic64_t events; }; -struct flow_match_ip { - struct flow_dissector_key_ip *key; - struct flow_dissector_key_ip *mask; +struct misc_cg { + struct cgroup_subsys_state css; + struct cgroup_file events_file; + struct misc_res res[0]; }; -struct flow_match_ports { - struct flow_dissector_key_ports *key; - struct flow_dissector_key_ports *mask; +enum misc_res_type { + MISC_CG_RES_TYPES = 0, }; -struct flow_dissector_key_ports_range; +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, +}; -struct flow_match_ports_range { - struct flow_dissector_key_ports_range *key; - struct flow_dissector_key_ports_range *mask; +enum { + RB_LEN_TIME_EXTEND = 8, + RB_LEN_TIME_STAMP = 8, }; -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; - }; - }; +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, }; -struct flow_match_tcp { - struct flow_dissector_key_tcp *key; - struct flow_dissector_key_tcp *mask; +enum { + RB_ADD_STAMP_NONE = 0, + RB_ADD_STAMP_EXTEND = 2, + RB_ADD_STAMP_ABSOLUTE = 4, + RB_ADD_STAMP_FORCE = 8, }; -struct flow_match_icmp { - struct flow_dissector_key_icmp *key; - struct flow_dissector_key_icmp *mask; +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 flow_match_mpls { - struct flow_dissector_key_mpls *key; - struct flow_dissector_key_mpls *mask; +struct buffer_data_page { + u64 time_stamp; + local_t commit; + unsigned char data[0]; }; -struct flow_match_enc_keyid { - struct flow_dissector_key_keyid *key; - struct flow_dissector_key_keyid *mask; +struct ring_buffer_per_cpu; + +struct ring_buffer_iter { + struct ring_buffer_per_cpu *cpu_buffer; + unsigned long head; + unsigned long next_event; + struct buffer_page *head_page; + struct buffer_page *cache_reader_page; + unsigned long cache_read; + unsigned long cache_pages_removed; + u64 read_stamp; + u64 page_stamp; + struct ring_buffer_event *event; + int missed_events; }; -struct flow_match_enc_opts { - struct flow_dissector_key_enc_opts *key; - struct flow_dissector_key_enc_opts *mask; +struct rb_time_struct { + local64_t time; }; -struct flow_match_ct { - struct flow_dissector_key_ct *key; - struct flow_dissector_key_ct *mask; +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 flow_match_pppoe { - struct flow_dissector_key_pppoe *key; - struct flow_dissector_key_pppoe *mask; +struct ring_buffer_per_cpu { + int cpu; + atomic_t record_disabled; + atomic_t resize_disabled; + struct trace_buffer *buffer; + raw_spinlock_t reader_lock; + arch_spinlock_t lock; + struct lock_class_key lock_key; + struct buffer_data_page *free_page; + unsigned long nr_pages; + unsigned int current_context; + struct list_head *pages; + struct buffer_page *head_page; + struct buffer_page *tail_page; + struct buffer_page *commit_page; + struct buffer_page *reader_page; + unsigned long lost_events; + unsigned long last_overrun; + unsigned long nest; + local_t entries_bytes; + local_t entries; + local_t overrun; + local_t commit_overrun; + local_t dropped_events; + local_t committing; + local_t commits; + local_t pages_touched; + local_t pages_lost; + local_t pages_read; + long last_pages_touch; + size_t shortest_full; + unsigned long read; + unsigned long read_bytes; + rb_time_t write_stamp; + rb_time_t before_stamp; + u64 event_stamp[5]; + u64 read_stamp; + unsigned long pages_removed; + long nr_pages_to_update; + struct list_head new_pages; + struct work_struct update_pages_work; + struct completion update_done; + struct rb_irq_work irq_work; }; -struct flow_match_l2tpv3 { - struct flow_dissector_key_l2tpv3 *key; - struct flow_dissector_key_l2tpv3 *mask; +struct trace_buffer { + unsigned int flags; + int cpus; + atomic_t record_disabled; + atomic_t resizing; + cpumask_var_t cpumask; + struct lock_class_key *reader_lock_key; + struct mutex mutex; + struct ring_buffer_per_cpu **buffers; + struct hlist_node node; + u64 (*clock)(); + struct rb_irq_work irq_work; + bool time_stamp_abs; }; -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 rb_event_info { + u64 ts; + u64 delta; + u64 before; + u64 after; + unsigned long length; + struct buffer_page *tail_page; + int add_timestamp; }; -struct skb_array { - struct ptr_ring ring; -}; +typedef void (*btf_trace_error_report_end)(void *, enum error_detector, unsigned long); -struct pfifo_fast_priv { - struct skb_array q[3]; +struct trace_event_raw_error_report_template { + struct trace_entry ent; + enum error_detector error_detector; + unsigned long id; + char __data[0]; }; -struct tc_prio_qopt { - int bands; - __u8 priomap[16]; -}; +struct trace_event_data_offsets_error_report_template {}; -struct psched_ratecfg { - u64 rate_bytes_ps; - u32 mult; - u16 overhead; - u16 mpu; - u8 linklayer; - u8 shift; +struct bpf_iter__bpf_prog { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_prog *prog; + }; }; -struct psched_pktrate { - u64 rate_pkts_ps; - u32 mult; - u8 shift; +struct bpf_iter_seq_prog_info { + u32 prog_id; }; -struct mini_Qdisc_pair { - struct mini_Qdisc miniq1; - struct mini_Qdisc miniq2; - struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq; +struct vmemmap_remap_walk { + void (*remap_pte)(pte_t *, unsigned long, struct vmemmap_remap_walk *); + unsigned long nr_walked; + struct page *reuse_page; + unsigned long reuse_addr; + struct list_head *vmemmap_pages; + unsigned long flags; }; -struct nf_conntrack_zone { - u16 id; - u8 flags; - u8 dir; +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 nfnl_ct_hook { - size_t (*build_size)(const struct nf_conn *); - int (*build)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, u_int16_t, u_int16_t); - int (*parse)(const struct nlattr *, struct nf_conn *); - int (*attach_expect)(const struct nlattr *, struct nf_conn *, u32, u32); - void (*seq_adjust)(struct sk_buff *, struct nf_conn *, enum ip_conntrack_info, s32); +enum SHIFT_DIRECTION { + SHIFT_LEFT = 0, + SHIFT_RIGHT = 1, }; -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 ext4_extent_tail { + __le32 et_checksum; }; -struct nf_hook_entries_rcu_head { - struct callback_head head; - void *allocation; +struct journal_block_tag_s { + __be32 t_blocknr; + __be16 t_checksum; + __be16 t_flags; + __be32 t_blocknr_high; }; -typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); +typedef struct journal_block_tag_s journal_block_tag_t; -typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); +struct journal_block_tag3_s { + __be32 t_blocknr; + __be32 t_flags; + __be32 t_blocknr_high; + __be32 t_checksum; +}; -struct rpcb_info { - u32 rpc_vers; - const struct rpc_procinfo *rpc_proc; +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; }; 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, + 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, }; -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 autofs_packet_missing { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[256]; }; -struct patch_insn { - void *addr; - u32 *insns; - int ninsns; - atomic_t cpu_count; +struct autofs_packet_expire_multi { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[256]; }; -struct pm_vt_switch { - struct list_head head; - struct device *dev; - bool required; +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 reserved_mem; - -struct reserved_mem_ops { - int (*device_init)(struct reserved_mem *, struct device *); - void (*device_release)(struct reserved_mem *, struct device *); +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]; }; -struct reserved_mem { - const char *name; - unsigned long fdt_node; - unsigned long phandle; - const struct reserved_mem_ops *ops; - phys_addr_t base; - phys_addr_t size; - void *priv; -}; +typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; -struct dma_coherent_mem { - void *virt_base; - dma_addr_t device_base; - unsigned long pfn_base; - int size; - unsigned long *bitmap; - spinlock_t spinlock; - bool use_dev_dma_pfn_offset; -}; +typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; -struct ce_unbind { - struct clock_event_device *ce; - int res; -}; +typedef struct autofs_v5_packet autofs_packet_missing_direct_t; -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, -}; +typedef struct autofs_v5_packet autofs_packet_expire_direct_t; -struct audit_nfcfgop_tab { - enum audit_nfcfgop op; - const char *s; +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 audit_aux_data { - struct audit_aux_data *next; - int type; +struct debugfs_fsdata { + const struct file_operations *real_fops; + union { + debugfs_automount_t automount; + struct { + refcount_t active_users; + struct completion active_users_drained; + struct mutex cancellations_mtx; + struct list_head cancellations; + }; + }; }; -struct audit_tree_refs { - struct audit_tree_refs *next; - struct audit_chunk *c[31]; +struct debugfs_cancellation { + struct list_head list; + void (*cancel)(struct dentry *, void *); + void *cancel_data; }; -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, +struct debugfs_u32_array { + u32 *array; + u32 n_elements; }; -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 debugfs_devm_entry { + int (*read)(struct seq_file *, void *); + struct device *dev; }; -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 selinux_kernel_status { + u32 version; + u32 sequence; + u32 enforcing; + u32 policyload; + u32 deny_unknown; }; -struct fanotify_response_info_header { - __u8 type; - __u8 pad; - __u16 len; +struct hash_ctx { + struct af_alg_sgl sgl; + u8 *result; + struct crypto_wait wait; + unsigned int len; + bool more; + struct ahash_request req; }; -struct fanotify_response_info_audit_rule { - struct fanotify_response_info_header hdr; - __u32 rule_number; - __u32 subj_trust; - __u32 obj_trust; +struct io_xattr { + struct file *file; + struct xattr_ctx ctx; + struct filename *filename; }; -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 *); - -typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int); - -typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int); - -typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t); - -typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, unsigned long); - -typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, unsigned long); - -typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, unsigned long); - -typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long, unsigned long, unsigned long long, unsigned long, int); - -typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long, long, long); - -typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, unsigned long, unsigned long, unsigned long, unsigned long, 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; +struct io_uring_rsrc_update { + __u32 offset; + __u32 resv; + __u64 data; }; -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 folio_references { - FOLIOREF_RECLAIM = 0, - FOLIOREF_RECLAIM_CLEAN = 1, - FOLIOREF_KEEP = 2, - FOLIOREF_ACTIVATE = 3, +struct reciprocal_value_adv { + u32 m; + u8 sh; + u8 exp; + bool is_wide_m; }; -enum pgdat_flags { - PGDAT_DIRTY = 0, - PGDAT_WRITEBACK = 1, - PGDAT_RECLAIM_LOCKED = 2, +union uu { + unsigned short us; + unsigned char b[2]; }; -enum lruvec_flags { - LRUVEC_CGROUP_CONGESTED = 0, - LRUVEC_NODE_CONGESTED = 1, -}; +typedef enum { + trustInput = 0, + checkMaxSymbolValue = 1, +} HIST_checkInput_e; -enum scan_balance { - SCAN_EQUAL = 0, - SCAN_FRACT = 1, - SCAN_ANON = 2, - SCAN_FILE = 3, -}; +typedef struct { + U32 litLength; + U32 matchLength; +} ZSTD_sequenceLength; -enum zone_flags { - ZONE_BOOSTED_WATERMARK = 0, - ZONE_RECLAIM_ACTIVE = 1, +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 trace_event_raw_mm_vmscan_kswapd_sleep { - struct trace_entry ent; - int nid; - char __data[0]; +enum { + EI_ETYPE_NULL = 0, + EI_ETYPE_ERRNO = 1, + EI_ETYPE_ERRNO_NULL = 2, + EI_ETYPE_TRUE = 3, }; -struct trace_event_raw_mm_vmscan_kswapd_wake { - struct trace_entry ent; - int nid; - int zid; - int order; - char __data[0]; +struct ei_entry { + struct list_head list; + unsigned long start_addr; + unsigned long end_addr; + int etype; + void *priv; }; -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 sunxi_pinctrl_regulator { + struct regulator *regulator; + refcount_t refcount; }; -struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template { - struct trace_entry ent; - int order; - unsigned long gfp_flags; - char __data[0]; -}; +struct sunxi_pinctrl_function; -struct trace_event_raw_mm_vmscan_direct_reclaim_end_template { - struct trace_entry ent; - unsigned long nr_reclaimed; - char __data[0]; -}; +struct sunxi_pinctrl_group; -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 sunxi_pinctrl { + void *membase; + struct gpio_chip *chip; + const struct sunxi_pinctrl_desc *desc; + struct device *dev; + struct sunxi_pinctrl_regulator regulators[9]; + struct irq_domain *domain; + struct sunxi_pinctrl_function *functions; + unsigned int nfunctions; + struct sunxi_pinctrl_group *groups; + unsigned int ngroups; + int *irq; + unsigned int *irq_array; + raw_spinlock_t lock; + struct pinctrl_dev *pctl_dev; + unsigned long variant; + u32 bank_mem_size; + u32 pull_regs_offset; + u32 dlevel_field_width; }; -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 sunxi_pinctrl_function { + const char *name; + const char **groups; + unsigned int ngroups; }; -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 sunxi_pinctrl_group { + const char *name; + unsigned int pin; }; -struct trace_event_raw_mm_vmscan_write_folio { - struct trace_entry ent; - unsigned long pfn; - int reclaim_flags; - char __data[0]; +enum support_mode { + ALLOW_LEGACY = 0, + DENY_LEGACY = 1, }; -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 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 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 acpi_osi_entry { + char string[64]; + bool enable; }; -struct trace_event_raw_mm_vmscan_node_reclaim_begin { - struct trace_entry ent; - int nid; - int order; - unsigned long gfp_flags; - char __data[0]; +enum acpi_predicate { + all_versions = 0, + less_than_or_equal = 1, + equal = 2, + greater_than_or_equal = 3, }; -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 acpi_dev_match_info { + struct acpi_device_id hid[2]; + const char *uid; + s64 hrv; }; -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; +struct acpi_platform_list { + char oem_id[7]; + char oem_table_id[9]; + u32 oem_revision; + char *table; + enum acpi_predicate pred; + char *reason; + u32 data; }; -typedef enum { - PAGE_KEEP = 0, - PAGE_ACTIVATE = 1, - PAGE_SUCCESS = 2, - PAGE_CLEAN = 3, -} pageout_t; +typedef acpi_status (*acpi_object_converter)(struct acpi_namespace_node *, union acpi_operand_object *, union acpi_operand_object **); -struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {}; +struct acpi_simple_repair_info { + char name[4]; + u32 unexpected_btypes; + u32 package_index; + acpi_object_converter object_converter; +}; -struct trace_event_data_offsets_mm_vmscan_kswapd_wake {}; +struct acpi_pci_routing_table { + u32 length; + u32 pin; + u64 address; + u32 source_index; + union { + char pad[4]; + struct { + struct {} __Empty_source; + char source[0]; + }; + }; +}; -struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {}; +typedef void (*btf_trace_regulator_enable)(void *, const char *); -struct trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {}; +typedef void (*btf_trace_regulator_enable_delay)(void *, const char *); -struct trace_event_data_offsets_mm_vmscan_direct_reclaim_end_template {}; +typedef void (*btf_trace_regulator_enable_complete)(void *, const char *); -struct trace_event_data_offsets_mm_shrink_slab_start {}; +typedef void (*btf_trace_regulator_disable)(void *, const char *); -struct trace_event_data_offsets_mm_shrink_slab_end {}; +typedef void (*btf_trace_regulator_disable_complete)(void *, const char *); -struct trace_event_data_offsets_mm_vmscan_lru_isolate {}; +typedef void (*btf_trace_regulator_bypass_enable)(void *, const char *); -struct trace_event_data_offsets_mm_vmscan_write_folio {}; +typedef void (*btf_trace_regulator_bypass_enable_complete)(void *, const char *); -struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {}; +typedef void (*btf_trace_regulator_bypass_disable)(void *, const char *); -struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {}; +typedef void (*btf_trace_regulator_bypass_disable_complete)(void *, const char *); -struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {}; +typedef void (*btf_trace_regulator_set_voltage)(void *, const char *, int, int); -struct trace_event_data_offsets_mm_vmscan_throttled {}; +typedef void (*btf_trace_regulator_set_voltage_complete)(void *, const char *, unsigned int); -struct sysctl_alias { - const char *kernel_param; - const char *sysctl_param; +struct regulator_coupler { + struct list_head list; + int (*attach_regulator)(struct regulator_coupler *, struct regulator_dev *); + int (*detach_regulator)(struct regulator_coupler *, struct regulator_dev *); + int (*balance_voltage)(struct regulator_coupler *, struct regulator_dev *, suspend_state_t); }; -struct shortname_info { - unsigned char lower: 1; - unsigned char upper: 1; - unsigned char valid: 1; +struct regulator_enable_gpio { + struct list_head list; + struct gpio_desc *gpiod; + u32 enable_count; + u32 request_count; }; -struct nfs4_add_xprt_data { - struct nfs_client *clp; - const struct cred *cred; +enum regulator_status { + REGULATOR_STATUS_OFF = 0, + REGULATOR_STATUS_ON = 1, + REGULATOR_STATUS_ERROR = 2, + REGULATOR_STATUS_FAST = 3, + REGULATOR_STATUS_NORMAL = 4, + REGULATOR_STATUS_IDLE = 5, + REGULATOR_STATUS_STANDBY = 6, + REGULATOR_STATUS_BYPASS = 7, + REGULATOR_STATUS_UNDEFINED = 8, }; -struct rpc_add_xprt_test { - void (*add_xprt_test)(struct rpc_clnt *, struct rpc_xprt *, void *); - void *data; +enum regulator_detection_severity { + REGULATOR_SEVERITY_PROT = 0, + REGULATOR_SEVERITY_ERR = 1, + REGULATOR_SEVERITY_WARN = 2, }; -struct cond_expr_node; - -struct cond_expr { - struct cond_expr_node *nodes; - u32 len; +enum regulator_active_discharge { + REGULATOR_ACTIVE_DISCHARGE_DEFAULT = 0, + REGULATOR_ACTIVE_DISCHARGE_DISABLE = 1, + REGULATOR_ACTIVE_DISCHARGE_ENABLE = 2, }; -struct cond_av_list { - struct avtab_node **nodes; - u32 len; +struct trace_event_raw_regulator_basic { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; }; -struct cond_node { - int cur_state; - struct cond_expr expr; - struct cond_av_list true_list; - struct cond_av_list false_list; +struct trace_event_raw_regulator_range { + struct trace_entry ent; + u32 __data_loc_name; + int min; + int max; + char __data[0]; }; -struct cond_expr_node { - u32 expr_type; - u32 boolean; +struct trace_event_raw_regulator_value { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int val; + char __data[0]; }; -struct selinux_mapping { - u16 value; - unsigned int num_perms; - u32 perms[32]; +struct regulator_map { + struct list_head list; + const char *dev_name; + const char *supply; + struct regulator_dev *regulator; }; -struct selinux_audit_rule { - u32 au_seqno; - struct context au_ctxt; +struct regulator_supply_alias { + struct list_head list; + struct device *src_dev; + const char *src_supply; + struct device *alias_dev; + const char *alias_supply; }; -struct filename_trans_key { - u32 ttype; - u16 tclass; - const char *name; +struct trace_event_data_offsets_regulator_basic { + u32 name; }; -struct filename_trans_datum { - struct ebitmap stypes; - u32 otype; - struct filename_trans_datum *next; +struct trace_event_data_offsets_regulator_range { + u32 name; }; -struct role_trans_datum { - u32 new_role; +struct trace_event_data_offsets_regulator_value { + u32 name; }; -struct role_trans_key { - u32 role; - u32 type; - u32 tclass; +struct pre_voltage_change_data { + unsigned long old_uV; + unsigned long min_uV; + unsigned long max_uV; }; -struct selinux_policy_convert_data { - struct convert_context_args args; - struct sidtab_convert_params sidtab_params; +struct summary_lock_data { + struct ww_acquire_ctx *ww_ctx; + struct regulator_dev **new_contended_rdev; + struct regulator_dev **old_contended_rdev; }; -struct perm_datum { - u32 value; +struct summary_data { + struct seq_file *s; + struct regulator_dev *parent; + int level; }; -typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *); - -typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *); - -typedef void (*btf_trace_block_rq_requeue)(void *, struct request *); - -typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int); - -typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int); - -typedef void (*btf_trace_block_rq_insert)(void *, struct request *); - -typedef void (*btf_trace_block_rq_issue)(void *, struct request *); - -typedef void (*btf_trace_block_rq_merge)(void *, struct request *); - -typedef void (*btf_trace_block_io_start)(void *, struct request *); - -typedef void (*btf_trace_block_io_done)(void *, struct request *); - -typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *); - -typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); - -typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); +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; +}; -typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *); +struct software_node_ref_args { + const struct software_node *node; + unsigned int nargs; + u64 args[8]; +}; -typedef void (*btf_trace_block_bio_queue)(void *, struct bio *); +struct syscon { + struct device_node *np; + struct regmap *regmap; + struct reset_control *reset; + struct list_head list; +}; -typedef void (*btf_trace_block_getrq)(void *, struct bio *); +struct syscon_platform_data { + const char *label; +}; -typedef void (*btf_trace_block_plug)(void *, struct request_queue *); +enum dax_device_flags { + DAXDEV_ALIVE = 0, + DAXDEV_WRITE_CACHE = 1, + DAXDEV_SYNC = 2, + DAXDEV_NOCACHE = 3, + DAXDEV_NOMC = 4, +}; -typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); +struct dax_holder_operations; -typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int); +struct dax_device { + struct inode inode; + struct cdev cdev; + void *private; + unsigned long flags; + const struct dax_operations *ops; + void *holder_data; + const struct dax_holder_operations *holder_ops; +}; -typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t); +struct dax_holder_operations { + int (*notify_failure)(struct dax_device *, u64, u64, int); +}; -typedef void (*btf_trace_block_rq_remap)(void *, struct request *, dev_t, sector_t); +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 blk_plug_cb; +struct fixed_partitions_quirks { + int (*post_parse)(struct mtd_info *, struct mtd_partition *, int); +}; -typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool); +struct sifive_spi { + void *regs; + struct clk *clk; + unsigned int fifo_depth; + u32 cs_inactive; + struct completion done; +}; -struct blk_plug_cb { - struct list_head list; - blk_plug_cb_fn callback; - void *data; +struct cdrom_sysctl_settings { + char info[1000]; + int autoclose; + int autoeject; + int debug; + int lock; + int check; }; -struct trace_event_raw_block_buffer { - struct trace_entry ent; - dev_t dev; - sector_t sector; - size_t size; - char __data[0]; +enum cdrom_print_option { + CTL_NAME = 0, + CTL_SPEED = 1, + CTL_SLOTS = 2, + CTL_CAPABILITY = 3, }; -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 event_header { + __be16 data_len; + __u8 notification_class: 3; + __u8 reserved1: 4; + __u8 nea: 1; + __u8 supp_event_class; }; -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 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 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 mode_page_header { + __be16 mode_data_length; + __u8 medium_type; + __u8 reserved1; + __u8 reserved2; + __u8 reserved3; + __be16 desc_length; }; -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 cdrom_timed_media_change_info { + __s64 last_media_change; + __u64 media_flags; }; -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 cdrom_msf { + __u8 cdmsf_min0; + __u8 cdmsf_sec0; + __u8 cdmsf_frame0; + __u8 cdmsf_min1; + __u8 cdmsf_sec1; + __u8 cdmsf_frame1; }; -struct trace_event_raw_block_plug { - struct trace_entry ent; - char comm[16]; - char __data[0]; +struct cdrom_read_audio { + union cdrom_addr addr; + __u8 addr_format; + int nframes; + __u8 __attribute__((btf_type_tag("user"))) *buf; }; -struct trace_event_raw_block_unplug { - struct trace_entry ent; - int nr_rq; - char comm[16]; - char __data[0]; +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 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 cdrom_blk { + unsigned int from; + unsigned short len; }; -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 cdrom_volctrl { + __u8 channel0; + __u8 channel1; + __u8 channel2; + __u8 channel3; }; -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 dvd_lu_send_agid { + __u8 type; + unsigned int agid: 2; }; -struct trace_event_data_offsets_block_buffer {}; +typedef __u8 dvd_challenge[10]; -struct trace_event_data_offsets_block_rq_requeue { - u32 cmd; +struct dvd_host_send_challenge { + __u8 type; + unsigned int agid: 2; + dvd_challenge chal; }; -struct trace_event_data_offsets_block_rq_completion { - u32 cmd; +typedef __u8 dvd_key[5]; + +struct dvd_send_key { + __u8 type; + unsigned int agid: 2; + dvd_key key; }; -struct trace_event_data_offsets_block_rq { - u32 cmd; +struct dvd_lu_send_challenge { + __u8 type; + unsigned int agid: 2; + dvd_challenge chal; }; -struct trace_event_data_offsets_block_bio_complete {}; +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 trace_event_data_offsets_block_bio {}; +struct dvd_lu_send_asf { + __u8 type; + unsigned int agid: 2; + unsigned int asf: 1; +}; -struct trace_event_data_offsets_block_plug {}; +struct dvd_host_send_rpcstate { + __u8 type; + __u8 pdrc; +}; -struct trace_event_data_offsets_block_unplug {}; +struct dvd_lu_send_rpcstate { + __u8 type: 2; + __u8 vra: 3; + __u8 ucca: 3; + __u8 region_mask; + __u8 rpc_scheme; +}; -struct trace_event_data_offsets_block_split {}; +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; -struct trace_event_data_offsets_block_bio_remap {}; +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; -struct trace_event_data_offsets_block_rq_remap {}; +typedef struct { + int data; + int audio; + int cdi; + int xa; + long error; +} tracktype; -struct sg_append_table { - struct sg_table sgt; - struct scatterlist *prv; - unsigned int total_nents; +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 sg_dma_page_iter { - struct sg_page_iter base; +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; }; -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, +struct cdrom_slot { + __u8 change: 1; + __u8 reserved1: 6; + __u8 disc_present: 1; + __u8 reserved2[3]; }; -enum asn1_method { - ASN1_PRIM = 0, - ASN1_CONS = 1, +struct cdrom_changer_info { + struct cdrom_mechstat_header hdr; + struct cdrom_slot slots[256]; }; -struct fu740_pcie { - struct dw_pcie pci; - void *mgmt_base; - struct gpio_desc *reset; - struct gpio_desc *pwren; - struct clk *pcie_aux; - struct reset_control *rst; -}; +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 acpi_dev_walk_context { - int (*fn)(struct acpi_device *, void *); - void *data; +struct compat_cdrom_read_audio { + union cdrom_addr addr; + u8 addr_format; + compat_int_t nframes; + compat_caddr_t buf; }; -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 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 jh71x0_reset { - struct reset_controller_dev rcdev; - spinlock_t lock; - void *assert; - void *status; - const u32 *asserted; +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 platform_object { - struct platform_device pdev; - char name[0]; +struct dvd_physical { + __u8 type; + __u8 layer_num; + struct dvd_layer layer[4]; }; -struct irq_affinity_devres { - unsigned int count; - unsigned int irq[0]; +struct dvd_copyright { + __u8 type; + __u8 layer_num; + __u8 cpst; + __u8 rmi; }; -struct syscon { - struct device_node *np; - struct regmap *regmap; - struct reset_control *reset; - struct list_head list; +struct dvd_disckey { + __u8 type; + unsigned int agid: 2; + __u8 value[2048]; }; -struct syscon_platform_data { - const char *label; +struct dvd_bca { + __u8 type; + int len; + __u8 value[188]; }; -enum { - ACTION_FAIL = 0, - ACTION_REPREP = 1, - ACTION_DELAYED_REPREP = 2, - ACTION_RETRY = 3, - ACTION_DELAYED_RETRY = 4, +struct dvd_manufact { + __u8 type; + __u8 layer_num; + int len; + __u8 value[2048]; }; -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, +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 ep_device { + struct usb_endpoint_descriptor *desc; + struct usb_device *udev; + struct device dev; }; -struct each_dev_arg { - void *data; - int (*fn)(struct usb_device *, void *); +struct acpi_bus_type { + struct list_head list; + const char *name; + bool (*match)(struct device *); + struct acpi_device * (*find_companion)(struct device *); + void (*setup)(struct device *); }; -struct find_interface_arg { - int minor; - struct device_driver *drv; +struct xhci_file_map { + const char *name; + int (*show)(struct seq_file *, void *); }; -enum input_clock_type { - INPUT_CLK_REAL = 0, - INPUT_CLK_MONO = 1, - INPUT_CLK_BOOT = 2, - INPUT_CLK_MAX = 3, +struct xhci_regset { + char name[32]; + struct debugfs_regset32 regset; + size_t nregs; + struct list_head list; }; -union input_seq_state { - struct { - unsigned short pos; - bool mutex_acquired; - }; - void *p; +struct xhci_ep_priv; + +struct xhci_slot_priv { + char name[32]; + struct dentry *root; + struct xhci_ep_priv *eps[31]; + struct xhci_virt_device *dev; }; -struct input_devres { - struct input_dev *input; +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 mmc_blk_data { - struct device *parent; - struct gendisk *disk; - struct mmc_queue queue; - struct list_head part; - struct list_head rpmbs; - unsigned int flags; - struct kref kref; - unsigned int read_only; - unsigned int part_type; - unsigned int reset_done; - unsigned int part_curr; - int area_type; - struct dentry *status_dentry; - struct dentry *ext_csd_dentry; +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 mmc_ioc_cmd { - int write_flag; - int is_acmd; - __u32 opcode; - __u32 arg; - __u32 response[4]; - unsigned int flags; - unsigned int blksz; - unsigned int blocks; - unsigned int postsleep_min_us; - unsigned int postsleep_max_us; - unsigned int data_timeout_ns; - unsigned int cmd_timeout_ms; - __u32 __pad; - __u64 data_ptr; +struct cytp_contact { + int x; + int y; + int z; }; -struct mmc_ioc_multi_cmd { - __u64 num_of_cmds; - struct mmc_ioc_cmd cmds[0]; +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 mmc_rpmb_data { - struct device dev; - struct cdev chrdev; +typedef void (*btf_trace_watchdog_start)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_watchdog_ping)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_watchdog_stop)(void *, struct watchdog_device *, int); + +typedef void (*btf_trace_watchdog_set_timeout)(void *, struct watchdog_device *, unsigned int, int); + +struct trace_event_raw_watchdog_template { + struct trace_entry ent; int id; - unsigned int part_index; - struct mmc_blk_data *md; - struct list_head node; + int err; + char __data[0]; }; -struct mmc_blk_busy_data { - struct mmc_card *card; - u32 status; +struct trace_event_raw_watchdog_set_timeout { + struct trace_entry ent; + int id; + unsigned int timeout; + int err; + char __data[0]; }; -struct mmc_blk_ioc_data { - struct mmc_ioc_cmd ic; - unsigned char *buf; - u64 buf_bytes; - struct mmc_rpmb_data *rpmb; -}; +struct trace_event_data_offsets_watchdog_template {}; -enum txtime_flags { - SOF_TXTIME_DEADLINE_MODE = 1, - SOF_TXTIME_REPORT_ERRORS = 2, - SOF_TXTIME_FLAGS_LAST = 2, - SOF_TXTIME_FLAGS_MASK = 3, -}; +struct trace_event_data_offsets_watchdog_set_timeout {}; -struct linger { - int l_onoff; - int l_linger; -}; +typedef void (*btf_trace_snd_soc_bias_level_start)(void *, struct snd_soc_card *, int); -struct sock_txtime { - __kernel_clockid_t clockid; - __u32 flags; -}; +typedef void (*btf_trace_snd_soc_bias_level_done)(void *, struct snd_soc_card *, int); -struct so_timestamping { - int flags; - int bind_phc; -}; +typedef void (*btf_trace_snd_soc_dapm_start)(void *, struct snd_soc_card *); -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, -}; +typedef void (*btf_trace_snd_soc_dapm_done)(void *, struct snd_soc_card *); -struct rss_req_info { - struct ethnl_req_info base; - u32 rss_context; -}; +typedef void (*btf_trace_snd_soc_dapm_widget_power)(void *, struct snd_soc_dapm_widget *, int); -struct rss_reply_data { - struct ethnl_reply_data base; - u32 indir_size; - u32 hkey_size; - u32 hfunc; - u32 *indir_table; - u8 *hkey; -}; +typedef void (*btf_trace_snd_soc_dapm_widget_event_start)(void *, struct snd_soc_dapm_widget *, int); -struct nf_queue_handler { - int (*outfn)(struct nf_queue_entry *, unsigned int); - void (*nf_hook_drop)(struct net *); -}; +typedef void (*btf_trace_snd_soc_dapm_widget_event_done)(void *, struct snd_soc_dapm_widget *, int); -struct nf_bridge_info { - enum { - BRNF_PROTO_UNCHANGED = 0, - BRNF_PROTO_8021Q = 1, - BRNF_PROTO_PPPOE = 2, - } orig_proto: 8; - u8 pkt_otherhost: 1; - u8 in_prerouting: 1; - u8 bridged_dnat: 1; - u8 sabotage_in_done: 1; - __u16 frag_max_size; - struct net_device *physindev; - struct net_device *physoutdev; - union { - __be32 ipv4_daddr; - struct in6_addr ipv6_daddr; - char neigh_header[8]; - }; -}; +typedef void (*btf_trace_snd_soc_dapm_walk_done)(void *, struct snd_soc_card *); -struct ip6_rt_info { - struct in6_addr daddr; - struct in6_addr saddr; - u_int32_t mark; -}; +typedef void (*btf_trace_snd_soc_dapm_path)(void *, struct snd_soc_dapm_widget *, enum snd_soc_dapm_direction, struct snd_soc_dapm_path *); -typedef unsigned int t_key; +typedef void (*btf_trace_snd_soc_dapm_connected)(void *, int, int); -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]; - }; - }; -}; +typedef void (*btf_trace_snd_soc_jack_irq)(void *, const char *); -struct trie { - struct key_vector kv[1]; -}; +typedef void (*btf_trace_snd_soc_jack_report)(void *, struct snd_soc_jack *, int, int); -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]; -}; +typedef void (*btf_trace_snd_soc_jack_notify)(void *, struct snd_soc_jack *, int); -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 trace_event_raw_snd_soc_card { + struct trace_entry ent; + u32 __data_loc_name; + int val; + char __data[0]; }; -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 trace_event_raw_snd_soc_dapm_basic { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; }; -struct fib_trie_iter { - struct seq_net_private p; - struct fib_table *tb; - struct key_vector *tnode; - unsigned int index; - unsigned int depth; +struct trace_event_raw_snd_soc_dapm_widget { + struct trace_entry ent; + u32 __data_loc_name; + int val; + char __data[0]; }; -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 trace_event_raw_snd_soc_dapm_walk_done { + struct trace_entry ent; + u32 __data_loc_name; + int power_checks; + int path_checks; + int neighbour_checks; + char __data[0]; }; -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 trace_event_raw_snd_soc_dapm_path { + struct trace_entry ent; + u32 __data_loc_wname; + u32 __data_loc_pname; + u32 __data_loc_pnname; + int path_node; + int path_connect; + int path_dir; + char __data[0]; }; -struct ip6_fraglist_iter { - struct ipv6hdr *tmp_hdr; - struct sk_buff *frag; - int offset; - unsigned int hlen; - __be32 frag_id; - u8 nexthdr; +struct trace_event_raw_snd_soc_dapm_connected { + struct trace_entry ent; + int paths; + int stream; + char __data[0]; }; -enum { - RPC_PIPEFS_MOUNT = 0, - RPC_PIPEFS_UMOUNT = 1, +struct trace_event_raw_snd_soc_jack_irq { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; }; -struct rpc_cb_add_xprt_calldata { - struct rpc_xprt_switch *xps; - struct rpc_xprt *xprt; +struct trace_event_raw_snd_soc_jack_report { + struct trace_entry ent; + u32 __data_loc_name; + int mask; + int val; + char __data[0]; }; -struct connect_timeout_data { - unsigned long connect_timeout; - unsigned long reconnect_timeout; +struct trace_event_raw_snd_soc_jack_notify { + struct trace_entry ent; + u32 __data_loc_name; + int val; + char __data[0]; }; -enum probe_insn { - INSN_REJECTED = 0, - INSN_GOOD_NO_SLOT = 1, - INSN_GOOD = 2, +struct trace_event_data_offsets_snd_soc_card { + u32 name; }; -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 trace_event_data_offsets_snd_soc_dapm_basic { + u32 name; }; -struct pci_p2pdma_map_state { - struct dev_pagemap *pgmap; - int map; - u64 bus_off; +struct trace_event_data_offsets_snd_soc_dapm_widget { + u32 name; }; -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 trace_event_data_offsets_snd_soc_dapm_walk_done { + u32 name; }; -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); - -struct cpufreq_policy; - -typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *); - -struct cpufreq_cpuinfo { - unsigned int max_freq; - unsigned int min_freq; - unsigned int transition_latency; +struct trace_event_data_offsets_snd_soc_dapm_path { + u32 wname; + u32 pname; + u32 pnname; }; -enum cpufreq_table_sorting { - CPUFREQ_TABLE_UNSORTED = 0, - CPUFREQ_TABLE_SORTED_ASCENDING = 1, - CPUFREQ_TABLE_SORTED_DESCENDING = 2, +struct trace_event_data_offsets_snd_soc_jack_irq { + u32 name; }; -struct cpufreq_stats; +struct trace_event_data_offsets_snd_soc_jack_report { + u32 name; +}; -struct cpufreq_governor; +struct trace_event_data_offsets_snd_soc_jack_notify { + u32 name; +}; -struct cpufreq_frequency_table; +struct trace_event_data_offsets_snd_soc_dapm_connected {}; -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 neigh_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table neigh_vars[22]; }; -struct cpufreq_governor { - char name[16]; - int (*init)(struct cpufreq_policy *); - void (*exit)(struct cpufreq_policy *); - int (*start)(struct cpufreq_policy *); - void (*stop)(struct cpufreq_policy *); - void (*limits)(struct cpufreq_policy *); - ssize_t (*show_setspeed)(struct cpufreq_policy *, char *); - int (*store_setspeed)(struct cpufreq_policy *, unsigned int); - struct list_head governor_list; - struct module *owner; - u8 flags; +enum { + 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, }; -struct cpufreq_frequency_table { - unsigned int flags; - unsigned int driver_data; - unsigned int frequency; +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, }; -typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int); +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, +}; -typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int); +struct neigh_dump_filter { + int master_idx; + int dev_idx; +}; -typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool); +struct ndtmsg { + __u8 ndtm_family; + __u8 ndtm_pad1; + __u16 ndtm_pad2; +}; -typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int); +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; +}; -typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int); +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; +}; -typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int); +struct nda_cacheinfo { + __u32 ndm_confirmed; + __u32 ndm_used; + __u32 ndm_updated; + __u32 ndm_refcnt; +}; -typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int); +enum netlink_attribute_type { + NL_ATTR_TYPE_INVALID = 0, + NL_ATTR_TYPE_FLAG = 1, + NL_ATTR_TYPE_U8 = 2, + NL_ATTR_TYPE_U16 = 3, + NL_ATTR_TYPE_U32 = 4, + NL_ATTR_TYPE_U64 = 5, + NL_ATTR_TYPE_S8 = 6, + NL_ATTR_TYPE_S16 = 7, + NL_ATTR_TYPE_S32 = 8, + NL_ATTR_TYPE_S64 = 9, + NL_ATTR_TYPE_BINARY = 10, + NL_ATTR_TYPE_STRING = 11, + NL_ATTR_TYPE_NUL_STRING = 12, + NL_ATTR_TYPE_NESTED = 13, + NL_ATTR_TYPE_NESTED_ARRAY = 14, + NL_ATTR_TYPE_BITFIELD32 = 15, + NL_ATTR_TYPE_SINT = 16, + NL_ATTR_TYPE_UINT = 17, +}; -typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int); +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, +}; -typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int); +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, +}; -typedef void (*btf_trace_pm_qos_add_request)(void *, s32); +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_pm_qos_update_request)(void *, s32); +enum ethtool_flags { + ETH_FLAG_TXVLAN = 128, + ETH_FLAG_RXVLAN = 256, + ETH_FLAG_LRO = 32768, + ETH_FLAG_NTUPLE = 134217728, + ETH_FLAG_RXHASH = 268435456, +}; -typedef void (*btf_trace_pm_qos_remove_request)(void *, s32); +enum ethtool_sfeatures_retval_bits { + ETHTOOL_F_UNSUPPORTED__BIT = 0, + ETHTOOL_F_WISH__BIT = 1, + ETHTOOL_F_COMPAT__BIT = 2, +}; -typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int); +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, +}; -typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int); +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, +}; -typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32); +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; +}; -typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32); +struct ethtool_rx_flow_match { + struct flow_dissector dissector; + struct ethtool_rx_flow_key key; + struct ethtool_rx_flow_key mask; +}; -typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32); +struct ethtool_devlink_compat { + struct devlink *devlink; + union { + struct ethtool_flash efl; + struct ethtool_drvinfo info; + }; +}; -typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int); +struct ethtool_value { + __u32 cmd; + __u32 data; +}; -struct trace_event_raw_cpu { - struct trace_entry ent; - u32 state; - u32 cpu_id; - char __data[0]; +struct ethtool_rx_flow_rule { + struct flow_rule *rule; + unsigned long priv[0]; }; -struct trace_event_raw_cpu_idle_miss { - struct trace_entry ent; - u32 cpu_id; - u32 state; - bool below; - char __data[0]; +struct ethtool_link_usettings { + struct ethtool_link_settings base; + struct { + __u32 supported[4]; + __u32 advertising[4]; + __u32 lp_advertising[4]; + } link_modes; }; -struct trace_event_raw_powernv_throttle { - struct trace_entry ent; - int chip_id; - u32 __data_loc_reason; - int pmax; - char __data[0]; +struct ethtool_rx_flow_spec_input { + const struct ethtool_rx_flow_spec *fs; + u32 rss_ctx; }; -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 ethtool_gstrings { + __u32 cmd; + __u32 string_set; + __u32 len; + __u8 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 ethtool_perm_addr { + __u32 cmd; + __u32 size; + __u8 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 ethtool_sset_info { + __u32 cmd; + __u32 reserved; + __u64 sset_mask; + __u32 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 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 trace_event_raw_suspend_resume { - struct trace_entry ent; - const char *action; - int val; - bool start; - char __data[0]; +struct ethtool_get_features_block { + __u32 available; + __u32 requested; + __u32 active; + __u32 never_changed; }; -struct trace_event_raw_wakeup_source { - struct trace_entry ent; - u32 __data_loc_name; - u64 state; - char __data[0]; +struct ethtool_gfeatures { + __u32 cmd; + __u32 size; + struct ethtool_get_features_block features[0]; }; -struct trace_event_raw_clock { - struct trace_entry ent; - u32 __data_loc_name; - u64 state; - u64 cpu_id; - char __data[0]; +struct ethtool_set_features_block { + __u32 valid; + __u32 requested; }; -struct trace_event_raw_power_domain { - struct trace_entry ent; - u32 __data_loc_name; - u64 state; - u64 cpu_id; - char __data[0]; +struct ethtool_sfeatures { + __u32 cmd; + __u32 size; + struct ethtool_set_features_block features[0]; }; -struct trace_event_raw_cpu_latency_qos_request { - struct trace_entry ent; - s32 value; - char __data[0]; +struct ethtool_per_queue_op { + __u32 cmd; + __u32 sub_command; + __u32 queue_mask[128]; + 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 tcp_plb_state { + u8 consec_cong_rounds: 5; + u8 unused: 3; + u32 pause_until; }; -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 ip6_ra_chain { + struct ip6_ra_chain *next; + struct sock *sk; + int sel; + void (*destructor)(struct sock *); }; -struct trace_event_raw_guest_halt_poll_ns { - struct trace_entry ent; - bool grow; - unsigned int new; - unsigned int old; - char __data[0]; +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 trace_event_data_offsets_powernv_throttle { - u32 reason; +struct rpc_cred_cache { + struct hlist_head *hashtable; + unsigned int hashbits; + spinlock_t lock; }; -struct trace_event_data_offsets_device_pm_callback_end { - u32 device; - u32 driver; +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, }; -struct trace_event_data_offsets_wakeup_source { - u32 name; +struct ida_bitmap { + unsigned long bitmap[16]; }; -struct trace_event_data_offsets_clock { - u32 name; +typedef struct { + unsigned long key[2]; +} hsiphash_key_t; + +union efi_device_path_from_text_protocol { + struct { + efi_device_path_protocol_t * (*convert_text_to_device_node)(const efi_char16_t *); + efi_device_path_protocol_t * (*convert_text_to_device_path)(const efi_char16_t *); + }; + struct { + u32 convert_text_to_device_node; + u32 convert_text_to_device_path; + } mixed_mode; }; -struct trace_event_data_offsets_power_domain { - u32 name; +typedef union efi_device_path_from_text_protocol efi_device_path_from_text_protocol_t; + +struct efi_file_path_dev_path { + struct efi_generic_dev_path header; + efi_char16_t filename[0]; }; -struct trace_event_data_offsets_dev_pm_qos_request { - u32 name; +union efi_file_protocol; + +typedef union efi_file_protocol efi_file_protocol_t; + +union efi_file_protocol { + struct { + u64 revision; + efi_status_t (*open)(efi_file_protocol_t *, efi_file_protocol_t **, efi_char16_t *, u64, u64); + efi_status_t (*close)(efi_file_protocol_t *); + efi_status_t (*delete)(efi_file_protocol_t *); + efi_status_t (*read)(efi_file_protocol_t *, unsigned long *, void *); + efi_status_t (*write)(efi_file_protocol_t *, unsigned long, void *); + efi_status_t (*get_position)(efi_file_protocol_t *, u64 *); + efi_status_t (*set_position)(efi_file_protocol_t *, u64); + efi_status_t (*get_info)(efi_file_protocol_t *, efi_guid_t *, unsigned long *, void *); + efi_status_t (*set_info)(efi_file_protocol_t *, efi_guid_t *, unsigned long, void *); + efi_status_t (*flush)(efi_file_protocol_t *); + }; + struct { + u64 revision; + u32 open; + u32 close; + u32 delete; + u32 read; + u32 write; + u32 get_position; + u32 set_position; + u32 get_info; + u32 set_info; + u32 flush; + } mixed_mode; }; -struct trace_event_data_offsets_cpu {}; +typedef struct { + u64 size; + u64 file_size; + u64 phys_size; + efi_time_t create_time; + efi_time_t last_access_time; + efi_time_t modification_time; + __u64 attribute; + efi_char16_t filename[0]; +} efi_file_info_t; -struct trace_event_data_offsets_cpu_idle_miss {}; +struct finfo { + efi_file_info_t info; + efi_char16_t filename[256]; +}; -struct trace_event_data_offsets_pstate_sample {}; +union efi_simple_file_system_protocol; -struct trace_event_data_offsets_cpu_frequency_limits {}; +typedef union efi_simple_file_system_protocol efi_simple_file_system_protocol_t; -struct trace_event_data_offsets_device_pm_callback_start { - u32 device; - u32 driver; - u32 parent; - u32 pm_ops; +union efi_simple_file_system_protocol { + struct { + u64 revision; + efi_status_t (*open_volume)(efi_simple_file_system_protocol_t *, efi_file_protocol_t **); + }; + struct { + u64 revision; + u32 open_volume; + } mixed_mode; }; -struct trace_event_data_offsets_suspend_resume {}; +enum proc_cn_event { + PROC_EVENT_NONE = 0, + PROC_EVENT_FORK = 1, + PROC_EVENT_EXEC = 2, + PROC_EVENT_UID = 4, + PROC_EVENT_GID = 64, + PROC_EVENT_SID = 128, + PROC_EVENT_PTRACE = 256, + PROC_EVENT_COMM = 512, + PROC_EVENT_NONZERO_EXIT = 536870912, + PROC_EVENT_COREDUMP = 1073741824, + PROC_EVENT_EXIT = 2147483648, +}; -struct trace_event_data_offsets_cpu_latency_qos_request {}; +struct mutex_waiter { + struct list_head list; + struct task_struct *task; + struct ww_acquire_ctx *ww_ctx; + void *magic; +}; -struct trace_event_data_offsets_pm_qos_update {}; +struct dma_coherent_mem { + void *virt_base; + dma_addr_t device_base; + unsigned long pfn_base; + int size; + unsigned long *bitmap; + spinlock_t spinlock; + bool use_dev_dma_pfn_offset; +}; -struct trace_event_data_offsets_guest_halt_poll_ns {}; +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; +}; -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, +struct tk_fast { + seqcount_latch_t seq; + struct tk_read_base base[2]; }; -enum bpf_stack_build_id_status { - BPF_STACK_BUILD_ID_EMPTY = 0, - BPF_STACK_BUILD_ID_VALID = 1, - BPF_STACK_BUILD_ID_IP = 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; + long last_warning; + int underflow_seen; + int overflow_seen; }; -typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64); +enum timekeeping_adv_mode { + TK_ADV_TICK = 0, + TK_ADV_FREQ = 1, +}; -typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); +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; +}; -typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64); +struct ktime_timestamps { + u64 mono; + u64 boot; + u64 real; +}; -typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64); +struct system_counterval_t { + u64 cycles; + struct clocksource *cs; +}; -typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64); +struct auditd_connection { + struct pid *pid; + u32 portid; + struct net *net; + struct callback_head rcu; +}; -struct stack_map_bucket; +struct audit_ctl_mutex { + struct mutex lock; + void *owner; +}; -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; +struct audit_features { + __u32 vers; + __u32 mask; + __u32 features; + __u32 lock; }; -struct stack_map_bucket { - struct pcpu_freelist_node fnode; - u32 hash; - u32 nr; - u64 data[0]; +enum audit_nlgrps { + AUDIT_NLGRP_NONE = 0, + AUDIT_NLGRP_READLOG = 1, + __AUDIT_NLGRP_MAX = 2, }; -struct bpf_stack_build_id { - __s32 status; - unsigned char build_id[20]; - union { - __u64 offset; - __u64 ip; - }; +struct audit_reply { + __u32 portid; + struct net *net; + struct sk_buff *skb; }; -typedef unsigned int pgtbl_mod_mask; +struct audit_net { + struct sock *sk; +}; -struct copy_subpage_arg { - struct page *dst; - struct page *src; - struct vm_area_struct *vma; +struct audit_buffer { + struct sk_buff *skb; + struct audit_context *ctx; + gfp_t gfp_mask; }; -struct ns_get_path_task_args { - const struct proc_ns_operations *ns_ops; - struct task_struct *task; +struct audit_sig_info { + uid_t uid; + pid_t pid; + char ctx[0]; +}; + +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 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 audit_tty_status { + __u32 enabled; + __u32 log_passwd; }; -struct limit_names { - const char *name; - const char *unit; +struct bpf_cgroup_storage_map { + struct bpf_map map; + spinlock_t lock; + struct rb_root root; + struct list_head list; + long: 64; + long: 64; }; -struct map_files_info { - unsigned long start; - unsigned long end; - fmode_t mode; -}; +struct bpf_cpu_map_entry; -struct syscall_info { - __u64 sp; - struct seccomp_data data; +struct xdp_bulk_queue { + void *q[8]; + struct list_head flush_node; + struct bpf_cpu_map_entry *obj; + unsigned int count; }; -struct tgid_iter { - unsigned int tgid; - struct task_struct *task; +struct bpf_cpumap_val { + __u32 qsize; + union { + int fd; + __u32 id; + } bpf_prog; }; -struct timers_private { - struct pid *pid; - struct task_struct *task; - struct sighand_struct *sighand; - struct pid_namespace *ns; - unsigned long flags; +struct bpf_cpu_map_entry { + u32 cpu; + int map_id; + struct xdp_bulk_queue __attribute__((btf_type_tag("percpu"))) *bulkq; + struct ptr_ring *queue; + struct task_struct *kthread; + struct bpf_cpumap_val value; + struct bpf_prog *prog; + struct completion kthread_running; + struct rcu_work free_work; }; -struct internal_state { - int dummy; +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; }; -enum { - NFS_OWNER_RECLAIM_REBOOT = 0, - NFS_OWNER_RECLAIM_NOGRACE = 1, -}; +typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *); -typedef void (*btf_trace_nlmclnt_test)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); +typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, unsigned long, unsigned long, unsigned long, int, bool); -typedef void (*btf_trace_nlmclnt_lock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); +typedef void (*btf_trace_mark_victim)(void *, int); -typedef void (*btf_trace_nlmclnt_unlock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); +typedef void (*btf_trace_wake_reaper)(void *, int); -typedef void (*btf_trace_nlmclnt_grant)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); +typedef void (*btf_trace_start_task_reaping)(void *, int); -struct trace_event_raw_nlmclnt_lock_event { +typedef void (*btf_trace_finish_task_reaping)(void *, int); + +typedef void (*btf_trace_skip_task_reaping)(void *, int); + +typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool); + +struct trace_event_raw_oom_score_adj_update { struct trace_entry ent; - u32 oh; - u32 svid; - u32 fh; - unsigned long status; - u64 start; - u64 len; - u32 __data_loc_addr; + pid_t pid; + char comm[16]; + short oom_score_adj; char __data[0]; }; -struct trace_event_data_offsets_nlmclnt_lock_event { - u32 addr; +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]; }; -enum aa_code { - AA_U8 = 0, - AA_U16 = 1, - AA_U32 = 2, - AA_U64 = 3, - AA_NAME = 4, - AA_STRING = 5, - AA_BLOB = 6, - AA_STRUCT = 7, - AA_STRUCTEND = 8, - AA_LIST = 9, - AA_LISTEND = 10, - AA_ARRAY = 11, - AA_ARRAYEND = 12, +struct trace_event_raw_mark_victim { + struct trace_entry ent; + int pid; + char __data[0]; }; -struct aa_load_ent { - struct list_head list; - struct aa_profile *new; - struct aa_profile *old; - struct aa_profile *rename; - const char *ns_name; +struct trace_event_raw_wake_reaper { + struct trace_entry ent; + int pid; + char __data[0]; }; -struct aa_ext { - void *start; - void *end; - void *pos; - u32 version; +struct trace_event_raw_start_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; }; -enum bfqq_state_flags { - BFQQF_just_created = 0, - BFQQF_busy = 1, - BFQQF_wait_request = 2, - BFQQF_non_blocking_wait_rq = 3, - BFQQF_fifo_expire = 4, - BFQQF_has_short_ttime = 5, - BFQQF_sync = 6, - BFQQF_IO_bound = 7, - BFQQF_in_large_burst = 8, - BFQQF_softrt_update = 9, - BFQQF_coop = 10, - BFQQF_split_coop = 11, +struct trace_event_raw_finish_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; }; -enum bfqq_expiration { - BFQQE_TOO_IDLE = 0, - BFQQE_BUDGET_TIMEOUT = 1, - BFQQE_BUDGET_EXHAUSTED = 2, - BFQQE_NO_MORE_REQUESTS = 3, - BFQQE_PREEMPTED = 4, +struct trace_event_raw_skip_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; }; -struct acpi_gpio_event { - struct list_head node; - acpi_handle handle; - irq_handler_t handler; - unsigned int pin; - unsigned int irq; - unsigned long irqflags; - bool irq_is_wake; - bool irq_requested; - struct gpio_desc *desc; +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 acpi_gpio_connection { - struct list_head node; - unsigned int pin; - struct gpio_desc *desc; -}; +struct trace_event_data_offsets_oom_score_adj_update {}; -struct acpi_connection_info { - u8 *connection; - u16 length; - u8 access_length; -}; +struct trace_event_data_offsets_reclaim_retry_zone {}; -struct acpi_gpio_chip { - struct acpi_connection_info conn_info; - struct list_head conns; - struct mutex conn_lock; - struct gpio_chip *chip; - struct list_head events; - struct list_head deferred_req_irqs_list_entry; -}; +struct trace_event_data_offsets_mark_victim {}; -struct acpi_gpio_info { - struct acpi_device *adev; - enum gpiod_flags flags; - bool gpioint; - int pin_config; - int polarity; - int triggering; - bool wake_capable; - unsigned int debounce; - unsigned int quirks; -}; +struct trace_event_data_offsets_wake_reaper {}; -struct acpi_gpio_lookup { - struct acpi_gpio_info info; - int index; - u16 pin_index; - bool active_low; - struct gpio_desc *desc; - int n; -}; +struct trace_event_data_offsets_start_task_reaping {}; -struct acpi_gpiolib_dmi_quirk { - bool no_edge_events_on_boot; - char *ignore_wake; - char *ignore_interrupt; -}; +struct trace_event_data_offsets_finish_task_reaping {}; -struct acpi_lpat { - int temp; - int raw; -}; +struct trace_event_data_offsets_skip_task_reaping {}; -struct acpi_lpat_conversion_table { - struct acpi_lpat *lpat; - int lpat_count; -}; +struct trace_event_data_offsets_compact_retry {}; -struct acpi_port_info { - char *name; - u16 start; - u16 end; - u8 osi_dependency; -}; +typedef void (*btf_trace_vm_unmapped_area)(void *, unsigned long, struct vm_unmapped_area_info *); -enum acpi_rhct_node_type { - ACPI_RHCT_NODE_TYPE_ISA_STRING = 0, - ACPI_RHCT_NODE_TYPE_HART_INFO = 65535, +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 acpi_rhct_node_header { - u16 type; - u16 length; - u16 revision; +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 acpi_rhct_hart_info { - u16 num_offsets; - u32 uid; -} __attribute__((packed)); +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 acpi_rhct_isa_string { - u16 isa_length; - char isa[0]; +struct trace_event_raw_exit_mmap { + struct trace_entry ent; + struct mm_struct *mm; + struct maple_tree *mt; + char __data[0]; }; -struct pnp_info_buffer { - char *buffer; - char *curr; - unsigned long size; - unsigned long len; - int stop; - int error; +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; }; -typedef struct pnp_info_buffer pnp_info_buffer_t; +struct trace_event_data_offsets_vm_unmapped_area {}; -struct acpi_dma_spec; +struct trace_event_data_offsets_vma_mas_szero {}; -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 trace_event_data_offsets_vma_store {}; + +struct trace_event_data_offsets_exit_mmap {}; + +struct files_stat_struct { + unsigned long nr_files; + unsigned long nr_free_files; + unsigned long max_files; }; -struct acpi_dma_spec { - int chan_id; - int slave_id; - struct device *dev; +struct backing_file { + struct file file; + struct path user_path; }; -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 f_owner_ex { + int type; + __kernel_pid_t pid; }; -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 compat_flock64 { + short l_type; + short l_whence; + compat_loff_t l_start; + compat_loff_t l_len; + compat_pid_t l_pid; }; -struct acpi_table_csrt { - struct acpi_table_header header; +struct compat_flock { + short l_type; + short l_whence; + compat_off_t l_start; + compat_off_t l_len; + compat_pid_t l_pid; }; -struct acpi_dma_parser_data { - struct acpi_dma_spec dma_spec; - size_t index; - size_t n; +struct elf64_phdr { + Elf64_Word p_type; + Elf64_Word p_flags; + Elf64_Off p_offset; + Elf64_Addr p_vaddr; + Elf64_Addr p_paddr; + Elf64_Xword p_filesz; + Elf64_Xword p_memsz; + Elf64_Xword p_align; }; -struct acpi_dma_filter_info { - dma_cap_mask_t dma_cap; - dma_filter_fn filter_fn; +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 vt_event { - unsigned int event; - unsigned int oldev; - unsigned int newev; - unsigned int pad[4]; +struct elf_siginfo { + int si_signo; + int si_code; + int si_errno; }; -struct vt_event_wait { - struct list_head list; - struct vt_event event; - int done; +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; }; -struct vc { - struct vc_data *d; - struct work_struct SAK_work; +typedef struct user_regs_struct elf_gregset_t; + +struct elf_prstatus { + struct elf_prstatus_common common; + elf_gregset_t pr_reg; + int pr_fpvalid; }; -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 elf_thread_core_info___2 { + struct elf_thread_core_info___2 *next; + struct task_struct *task; + struct elf_prstatus prstatus; + struct memelfnote notes[0]; }; -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 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 unipair; +struct elf64_note { + Elf64_Word n_namesz; + Elf64_Word n_descsz; + Elf64_Word n_type; +}; -struct unimapdesc { - unsigned short entry_ct; - struct unipair __attribute__((btf_type_tag("user"))) *entries; +enum { + MOUNTPROC3_NULL = 0, + MOUNTPROC3_MNT = 1, + MOUNTPROC3_DUMP = 2, + MOUNTPROC3_UMNT = 3, + MOUNTPROC3_UMNTALL = 4, + MOUNTPROC3_EXPORT = 5, }; -struct unipair { - unsigned short unicode; - unsigned short fontpos; +enum { + MOUNTPROC_NULL = 0, + MOUNTPROC_MNT = 1, + MOUNTPROC_DUMP = 2, + MOUNTPROC_UMNT = 3, + MOUNTPROC_UMNTALL = 4, + MOUNTPROC_EXPORT = 5, }; -struct compat_unimapdesc { - unsigned short entry_ct; - compat_caddr_t entries; +struct mountres { + int errno; + struct nfs_fh *fh; + unsigned int *auth_count; + rpc_authflavor_t *auth_flavors; }; -struct vt_stat { - unsigned short v_active; - unsigned short v_signal; - unsigned short v_state; +enum { + NFS_OWNER_RECLAIM_REBOOT = 0, + NFS_OWNER_RECLAIM_NOGRACE = 1, }; -struct vt_sizes { - unsigned short v_rows; - unsigned short v_cols; - unsigned short v_scrollsize; +struct nfs4_setclientid_res { + u64 clientid; + nfs4_verifier confirm; }; -struct vt_setactivate { - unsigned int console; - struct vt_mode mode; +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 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 sem_undo_list { + refcount_t refcnt; + spinlock_t lock; + struct list_head list_proc; }; -struct class_attribute { - struct attribute attr; - ssize_t (*show)(const struct class *, const struct class_attribute *, char *); - ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t); +struct sem_undo { + struct list_head list_proc; + struct callback_head rcu; + struct sem_undo_list *ulp; + struct list_head list_id; + int semid; + short semadj[0]; }; -struct class_attribute_string { - struct class_attribute attr; - char *str; +struct sem { + int semval; + struct pid *sempid; + spinlock_t lock; + struct list_head pending_alter; + struct list_head pending_const; + time64_t sem_otime; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct class_compat { - struct kobject *kobj; +struct sem_array { + struct kern_ipc_perm sem_perm; + time64_t sem_ctime; + struct list_head pending_alter; + struct list_head pending_const; + struct list_head list_id; + int sem_nsems; + int complex_count; + unsigned int use_global_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sem sems[0]; }; -struct regmap_mmio_context { - void *regs; - unsigned int val_bytes; - bool big_endian; - bool attached_clk; - struct clk *clk; - void (*reg_write)(struct regmap_mmio_context *, unsigned int, unsigned int); - unsigned int (*reg_read)(struct regmap_mmio_context *, unsigned int); +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 sync_merge_data { - char name[32]; - __s32 fd2; - __s32 fence; - __u32 flags; - __u32 pad; +struct semid64_ds { + struct ipc64_perm sem_perm; + long sem_otime; + long sem_ctime; + unsigned long sem_nsems; + unsigned long __unused3; + unsigned long __unused4; }; -struct sync_file_info { - char name[32]; - __s32 status; - __u32 flags; - __u32 num_fences; - __u32 pad; - __u64 sync_fence_info; +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 sync_fence_info { - char obj_name[32]; - char driver_name[32]; - __s32 status; - __u32 flags; - __u64 timestamp_ns; +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; }; -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 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 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 seminfo { + int semmap; + int semmni; + int semmns; + int semmnu; + int semmsl; + int semopm; + int semume; + int semusz; + int semvmx; + int semaem; }; -struct ata_force_ent { - int port; - int device; - struct ata_force_param param; +struct level_datum { + struct mls_level *level; + unsigned char isalias; }; -struct ata_xfer_ent { - int shift; - int bits; - u8 base; +struct range_trans { + u32 source_type; + u32 target_type; + u32 target_class; }; -struct ata_blacklist_entry { - const char *model_num; - const char *model_rev; - unsigned long horkage; +struct cat_datum { + u32 value; + unsigned char isalias; }; -enum ata_xfer_mask { - ATA_MASK_PIO = 127, - ATA_MASK_MWDMA = 3968, - ATA_MASK_UDMA = 1044480, +struct audit_cache { + struct aa_profile *profile; + kernel_cap_t caps; }; 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, + CRYPTO_MSG_ALG_REQUEST = 0, + CRYPTO_MSG_ALG_REGISTER = 1, + CRYPTO_MSG_ALG_LOADED = 2, }; -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 crypto_larval { + struct crypto_alg alg; + struct crypto_alg *adult; + struct completion completion; + u32 mask; + bool test_started; }; -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]; +enum { + CRYPTOA_UNSPEC = 0, + CRYPTOA_ALG = 1, + CRYPTOA_TYPE = 2, + __CRYPTOA_MAX = 3, }; -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 rtattr { + unsigned short rta_len; + unsigned short rta_type; }; -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 crypto_attr_type { + u32 type; + u32 mask; }; -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 crypto_attr_alg { + char name[128]; }; -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 crypto_queue { + struct list_head list; + struct list_head *backlog; + unsigned int qlen; + unsigned int max_qlen; }; -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 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 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 blk_major_name { + struct blk_major_name *next; + int major; + char name[16]; + void (*probe)(dev_t); }; -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 bd_holder_disk { + struct list_head list; + struct kobject *holder_dir; + int refcnt; }; -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 io_timeout { + struct file *file; + u32 off; + u32 target_seq; + u32 repeats; + struct list_head list; + struct io_kiocb *head; + struct io_kiocb *prev; }; -struct trace_event_raw_ata_port_eh_begin_template { - struct trace_entry ent; - unsigned int ata_port; - char __data[0]; +struct io_timeout_rem { + struct file *file; + u64 addr; + struct timespec64 ts; + u32 flags; + bool ltimeout; }; -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 io_timeout_data { + struct io_kiocb *req; + struct hrtimer timer; + struct timespec64 ts; + enum hrtimer_mode mode; + u32 flags; }; -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]; +union nested_table { + union nested_table __attribute__((btf_type_tag("rcu"))) *table; + struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket; }; -struct trace_event_raw_ata_sff_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned char hsm_state; - char __data[0]; +struct rhltable { + struct rhashtable ht; }; -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 mpi_ec_ctx; -struct trace_event_data_offsets_ata_bmdma_status {}; +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 trace_event_data_offsets_ata_eh_link_autopsy {}; +enum gcry_mpi_ec_models { + MPI_EC_WEIERSTRASS = 0, + MPI_EC_MONTGOMERY = 1, + MPI_EC_EDWARDS = 2, +}; -struct trace_event_data_offsets_ata_eh_link_autopsy_qc {}; +enum ecc_dialects { + ECC_DIALECT_STANDARD = 0, + ECC_DIALECT_ED25519 = 1, + ECC_DIALECT_SAFECURVE = 2, +}; -struct trace_event_data_offsets_ata_eh_action_template {}; +struct gcry_mpi_point; -struct trace_event_data_offsets_ata_link_reset_begin_template {}; +typedef struct gcry_mpi_point *MPI_POINT; -struct trace_event_data_offsets_ata_link_reset_end_template {}; +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 trace_event_data_offsets_ata_port_eh_begin_template {}; +struct gcry_mpi_point { + MPI x; + MPI y; + MPI z; +}; -struct trace_event_data_offsets_ata_sff_hsm_template {}; +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 trace_event_data_offsets_ata_transfer_data_template {}; +struct genpool_data_align { + int align; +}; -struct trace_event_data_offsets_ata_sff_template {}; +struct genpool_data_fixed { + unsigned long offset; +}; -struct pci_bits { - unsigned int reg; - unsigned int width; - unsigned long mask; - unsigned long val; +struct xilinx_pcie { + struct device *dev; + void *reg_base; + unsigned long msi_map[2]; + struct mutex map_lock; + struct irq_domain *msi_domain; + struct irq_domain *leg_domain; + struct list_head resources; }; -typedef void (*btf_trace_rtc_set_time)(void *, time64_t, int); +struct acpi_ged_event { + struct list_head node; + struct device *dev; + unsigned int gsi; + unsigned int irq; + acpi_handle handle; +}; -typedef void (*btf_trace_rtc_read_time)(void *, time64_t, int); +struct acpi_ged_device { + struct device *dev; + struct list_head event_list; +}; -typedef void (*btf_trace_rtc_set_alarm)(void *, time64_t, int); +struct acpi_port_info { + char *name; + u16 start; + u16 end; + u8 osi_dependency; +}; -typedef void (*btf_trace_rtc_read_alarm)(void *, time64_t, int); +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; +}; -typedef void (*btf_trace_rtc_irq_set_freq)(void *, int, int); +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; +}; -typedef void (*btf_trace_rtc_irq_set_state)(void *, int, int); +struct acpi_offsets { + size_t offset; + u8 mode; +}; -typedef void (*btf_trace_rtc_alarm_irq_enable)(void *, unsigned int, int); +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, +}; -typedef void (*btf_trace_rtc_set_offset)(void *, long, int); +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, +}; -typedef void (*btf_trace_rtc_read_offset)(void *, long, int); +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, +}; -typedef void (*btf_trace_rtc_timer_enqueue)(void *, struct rtc_timer *); +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, +}; -typedef void (*btf_trace_rtc_timer_dequeue)(void *, struct rtc_timer *); +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; +}; -typedef void (*btf_trace_rtc_timer_fired)(void *, struct rtc_timer *); +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; +}; -enum { - none = 0, - day = 1, - month = 2, - year = 3, +struct ccu_phase { + u8 shift; + u8 width; + struct ccu_common common; }; -struct trace_event_raw_rtc_time_alarm_class { - struct trace_entry ent; - time64_t secs; - int err; - char __data[0]; +struct _ccu_nm { + unsigned long n; + unsigned long min_n; + unsigned long max_n; + unsigned long m; + unsigned long min_m; + unsigned long max_m; }; -struct trace_event_raw_rtc_irq_set_freq { - struct trace_entry ent; - int freq; - int err; - char __data[0]; +struct jh71x0_reset { + struct reset_controller_dev rcdev; + spinlock_t lock; + void *assert; + void *status; + const u32 *asserted; }; -struct trace_event_raw_rtc_irq_set_state { - struct trace_entry ent; - int enabled; - int err; - char __data[0]; +struct cpu_attr { + struct device_attribute attr; + const struct cpumask * const map; }; -struct trace_event_raw_rtc_alarm_irq_enable { - struct trace_entry ent; - unsigned int enabled; - int err; - char __data[0]; +enum genpd_notication { + GENPD_NOTIFY_PRE_OFF = 0, + GENPD_NOTIFY_OFF = 1, + GENPD_NOTIFY_PRE_ON = 2, + GENPD_NOTIFY_ON = 3, }; -struct trace_event_raw_rtc_offset_class { - struct trace_entry ent; - long offset; - int err; - char __data[0]; +struct of_genpd_provider { + struct list_head link; + struct device_node *node; + genpd_xlate_t xlate; + void *data; }; -struct trace_event_raw_rtc_timer_class { - struct trace_entry ent; - struct rtc_timer *timer; - ktime_t expires; - ktime_t period; - char __data[0]; +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 trace_event_data_offsets_rtc_time_alarm_class {}; +struct request_sense; -struct trace_event_data_offsets_rtc_irq_set_freq {}; +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 trace_event_data_offsets_rtc_irq_set_state {}; +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 trace_event_data_offsets_rtc_alarm_irq_enable {}; +struct scsi_ioctl_command { + unsigned int inlen; + unsigned int outlen; + unsigned char data[0]; +}; -struct trace_event_data_offsets_rtc_offset_class {}; +struct scsi_idlun { + __u32 dev_id; + __u32 host_unique_id; +}; -struct trace_event_data_offsets_rtc_timer_class {}; +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 spi_device_id; +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 spi_driver { - const struct spi_device_id *id_table; - int (*probe)(struct spi_device *); - void (*remove)(struct spi_device *); - void (*shutdown)(struct spi_device *); - struct device_driver driver; +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 spi_device_id { - char name[32]; - kernel_ulong_t driver_data; +struct mtd_concat { + struct mtd_info mtd; + int num_subdev; + struct mtd_info **subdev; }; -struct scratch; +struct sun6i_spi_cfg { + unsigned long fifo_depth; + bool has_clk_ctl; + u32 mode_bits; +}; -struct mmc_spi_host { - struct mmc_host *mmc; - struct spi_device *spi; - unsigned char power_mode; - u16 powerup_msecs; - struct mmc_spi_platform_data *pdata; - struct spi_transfer token; - struct spi_transfer t; - struct spi_transfer crc; - struct spi_transfer early_status; - struct spi_message m; - struct spi_transfer status; - struct spi_message readback; - struct device *dma_dev; - struct scratch *data; - dma_addr_t data_dma; - void *ones; - dma_addr_t ones_dma; +struct sun6i_spi { + struct spi_controller *master; + void *base_addr; + dma_addr_t dma_addr_rx; + dma_addr_t dma_addr_tx; + struct clk *hclk; + struct clk *mclk; + struct reset_control *rstc; + struct completion done; + struct completion dma_rx_done; + const u8 *tx_buf; + u8 *rx_buf; + int len; + const struct sun6i_spi_cfg *cfg; }; -struct scratch { - u8 status[29]; - u8 data_token; - __be16 crc_val; +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; }; -struct rpmsg_ctrldev { - struct rpmsg_device *rpdev; - struct cdev cdev; - struct device dev; - struct mutex ctrl_lock; +struct extcon_dev_notifier_devres { + struct extcon_dev *edev; + unsigned int id; + struct notifier_block *nb; }; -struct rpmsg_endpoint_info { - char name[32]; - __u32 src; - __u32 dst; +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 snd_jack_kctl { + struct snd_kcontrol *kctl; + struct list_head list; + unsigned int mask_bits; + struct snd_jack *jack; + bool sw_inject_enable; }; struct rtnl_link { @@ -95109,76 +101711,6 @@ struct rtnl_link { struct callback_head rcu; }; -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_BRIDGE_FLAGS = 0, IFLA_BRIDGE_MODE = 1, @@ -95235,7 +101767,8 @@ enum { IFLA_BRPORT_MCAST_N_GROUPS = 41, IFLA_BRPORT_MCAST_MAX_GROUPS = 42, IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 43, - __IFLA_BRPORT_MAX = 44, + IFLA_BRPORT_BACKUP_NHID = 44, + __IFLA_BRPORT_MAX = 45, }; enum { @@ -95363,2012 +101896,1538 @@ enum { __IFLA_XDP_MAX = 9, }; +enum bpf_xdp_mode { + XDP_MODE_SKB = 0, + XDP_MODE_DRV = 1, + XDP_MODE_HW = 2, + __MAX_XDP_MODE = 3, +}; + 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, -}; - -enum { - MDBA_SET_ENTRY_UNSPEC = 0, - MDBA_SET_ENTRY = 1, - MDBA_SET_ENTRY_ATTRS = 2, - __MDBA_SET_ENTRY_MAX = 3, -}; - -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 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[44]; -}; - -struct if_stats_msg { - __u8 family; - __u8 pad1; - __u16 pad2; - __u32 ifindex; - __u32 filter_mask; -}; - -struct br_port_msg { - __u8 family; - __u32 ifindex; -}; - -struct rtnl_link_stats { - __u32 rx_packets; - __u32 tx_packets; - __u32 rx_bytes; - __u32 tx_bytes; - __u32 rx_errors; - __u32 tx_errors; - __u32 rx_dropped; - __u32 tx_dropped; - __u32 multicast; - __u32 collisions; - __u32 rx_length_errors; - __u32 rx_over_errors; - __u32 rx_crc_errors; - __u32 rx_frame_errors; - __u32 rx_fifo_errors; - __u32 rx_missed_errors; - __u32 tx_aborted_errors; - __u32 tx_carrier_errors; - __u32 tx_fifo_errors; - __u32 tx_heartbeat_errors; - __u32 tx_window_errors; - __u32 rx_compressed; - __u32 tx_compressed; - __u32 rx_nohandler; -}; - -struct ifla_vf_mac { - __u32 vf; - __u8 mac[32]; -}; - -struct ifla_vf_vlan { - __u32 vf; - __u32 vlan; - __u32 qos; -}; - -struct ifla_vf_vlan_info { - __u32 vf; - __u32 vlan; - __u32 qos; - __be16 vlan_proto; -}; - -struct ifla_vf_tx_rate { - __u32 vf; - __u32 rate; -}; - -struct ifla_vf_rate { - __u32 vf; - __u32 min_tx_rate; - __u32 max_tx_rate; -}; - -struct ifla_vf_spoofchk { - __u32 vf; - __u32 setting; -}; - -struct ifla_vf_link_state { - __u32 vf; - __u32 link_state; -}; - -struct ifla_vf_rss_query_en { - __u32 vf; - __u32 setting; -}; - -struct ifla_vf_trust { - __u32 vf; - __u32 setting; -}; - -struct rtnl_stats_dump_filters { - u32 mask[6]; -}; - -struct rta_cacheinfo { - __u32 rta_clntref; - __u32 rta_lastuse; - __s32 rta_expires; - __u32 rta_error; - __u32 rta_used; - __u32 rta_id; - __u32 rta_ts; - __u32 rta_tsage; -}; - -struct rtnl_mdb_dump_ctx { - long idx; -}; - -struct rtnl_link_ifmap { - __u64 mem_start; - __u64 mem_end; - __u64 base_addr; - __u16 irq; - __u8 dma; - __u8 port; -}; - -struct ifla_vf_broadcast { - __u8 broadcast[32]; -}; - -struct br_mdb_entry { - __u32 ifindex; - __u8 state; - __u8 flags; - __u16 vid; - struct { - union { - __be32 ip4; - struct in6_addr ip6; - unsigned char mac_addr[6]; - } u; - __be16 proto; - } addr; -}; - -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; -}; - -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 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 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 ac6_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct inet6_dev *idev; -}; - -struct br_input_skb_cb { - struct net_device *brdev; - u16 frag_max_size; - u8 igmp; - u8 mrouters_only: 1; - u8 proxyarp_replied: 1; - u8 src_port_isolated: 1; - u8 vlan_filtered: 1; - u8 br_netfilter_broute: 1; -}; - -struct nf_bridge_frag_data; - -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 compress_format { - unsigned char magic[2]; - const char *name; - decompress_fn decompressor; -}; - -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]; -}; - -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, + IFLA_INFO_SLAVE_KIND = 4, + IFLA_INFO_SLAVE_DATA = 5, + __IFLA_INFO_MAX = 6, }; -struct cpio_data { - void *data; - size_t size; - char name[18]; +enum netdev_offload_xstats_type { + NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, }; -typedef void (*btf_trace_rcu_utilization)(void *, const char *); - -typedef void (*btf_trace_rcu_stall_warning)(void *, const char *, const char *); - -struct rcu_tasks; - -typedef void (*rcu_tasks_gp_func_t)(struct rcu_tasks *); - -typedef void (*pregp_func_t)(struct list_head *); +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, +}; -typedef void (*pertask_func_t)(struct task_struct *, struct list_head *); +enum { + IFLA_STATS_GETSET_UNSPEC = 0, + IFLA_STATS_GET_FILTERS = 1, + IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 2, + __IFLA_STATS_GETSET_MAX = 3, +}; -typedef void (*postscan_func_t)(struct list_head *); +enum { + MDBA_GET_ENTRY_UNSPEC = 0, + MDBA_GET_ENTRY = 1, + MDBA_GET_ENTRY_ATTRS = 2, + __MDBA_GET_ENTRY_MAX = 3, +}; -typedef void (*holdouts_func_t)(struct list_head *, bool, bool *); +enum { + MDBA_SET_ENTRY_UNSPEC = 0, + MDBA_SET_ENTRY = 1, + MDBA_SET_ENTRY_ATTRS = 2, + __MDBA_SET_ENTRY_MAX = 3, +}; -typedef void (*postgp_func_t)(struct rcu_tasks *); +struct rtnl_offload_xstats_request_used { + bool request; + bool used; +}; -struct rcu_tasks_percpu; +struct rtnl_newlink_tbs { + struct nlattr *tb[66]; + struct nlattr *attr[51]; + struct nlattr *slave_attr[45]; +}; -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 if_stats_msg { + __u8 family; + __u8 pad1; + __u16 pad2; + __u32 ifindex; + __u32 filter_mask; }; -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 br_port_msg { + __u8 family; + __u32 ifindex; }; -struct trace_event_raw_rcu_utilization { - struct trace_entry ent; - const char *s; - char __data[0]; +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 trace_event_raw_rcu_stall_warning { - struct trace_entry ent; - const char *rcuname; - const char *msg; - char __data[0]; +struct ifla_vf_mac { + __u32 vf; + __u8 mac[32]; }; -struct trc_stall_chk_rdr { - int nesting; - int ipi_to_cpu; - u8 needqs; +struct ifla_vf_vlan { + __u32 vf; + __u32 vlan; + __u32 qos; }; -struct trace_event_data_offsets_rcu_utilization {}; +struct ifla_vf_vlan_info { + __u32 vf; + __u32 vlan; + __u32 qos; + __be16 vlan_proto; +}; -struct trace_event_data_offsets_rcu_stall_warning {}; +struct ifla_vf_tx_rate { + __u32 vf; + __u32 rate; +}; -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 ifla_vf_rate { + __u32 vf; + __u32 min_tx_rate; + __u32 max_tx_rate; }; -struct audit_netlink_list { - __u32 portid; - struct net *net; - struct sk_buff_head q; +struct ifla_vf_spoofchk { + __u32 vf; + __u32 setting; }; -struct bpf_iter__bpf_map { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; +struct ifla_vf_link_state { + __u32 vf; + __u32 link_state; }; -struct bpf_iter_seq_map_info { - u32 map_id; +struct ifla_vf_rss_query_en { + __u32 vf; + __u32 setting; }; -struct follow_page_context { - struct dev_pagemap *pgmap; - unsigned int page_mask; +struct ifla_vf_trust { + __u32 vf; + __u32 setting; }; -struct pgtable_debug_args { - struct mm_struct *mm; - struct vm_area_struct *vma; - pgd_t *pgdp; - p4d_t *p4dp; - pud_t *pudp; - pmd_t *pmdp; - pte_t *ptep; - p4d_t *start_p4dp; - pud_t *start_pudp; - pmd_t *start_pmdp; - pgtable_t start_ptep; - unsigned long vaddr; - pgprot_t page_prot; - pgprot_t page_prot_none; - bool is_contiguous_page; - unsigned long pud_pfn; - unsigned long pmd_pfn; - unsigned long pte_pfn; - unsigned long fixed_alignment; - unsigned long fixed_pgd_pfn; - unsigned long fixed_p4d_pfn; - unsigned long fixed_pud_pfn; - unsigned long fixed_pmd_pfn; - unsigned long fixed_pte_pfn; +struct rtnl_stats_dump_filters { + u32 mask[6]; }; -typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *); +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; +}; -typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *); +struct rtnl_mdb_dump_ctx { + long idx; +}; -typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int); +struct rtnl_link_ifmap { + __u64 mem_start; + __u64 mem_end; + __u64 base_addr; + __u16 irq; + __u8 dma; + __u8 port; +}; -typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int); +struct ifla_vf_broadcast { + __u8 broadcast[32]; +}; -typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int); +struct br_mdb_entry { + __u32 ifindex; + __u8 state; + __u8 flags; + __u16 vid; + struct { + union { + __be32 ip4; + struct in6_addr ip6; + unsigned char mac_addr[6]; + } u; + __be16 proto; + } addr; +}; -typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *); +struct nf_conntrack_zone { + u16 id; + u8 flags; + u8 dir; +}; -typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *); +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 wb_writeback_work; +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 *); +}; -typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *); +struct nf_hook_entries_rcu_head { + struct callback_head head; + void *allocation; +}; -struct wb_completion; +struct ic_device { + struct ic_device *next; + struct net_device *dev; + unsigned short flags; + short able; + __be32 xid; +}; -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 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 wb_completion { - atomic_t cnt; - wait_queue_head_t *waitq; +enum { + XDP_DIAG_NONE = 0, + XDP_DIAG_INFO = 1, + XDP_DIAG_UID = 2, + XDP_DIAG_RX_RING = 3, + XDP_DIAG_TX_RING = 4, + XDP_DIAG_UMEM = 5, + XDP_DIAG_UMEM_FILL_RING = 6, + XDP_DIAG_UMEM_COMPLETION_RING = 7, + XDP_DIAG_MEMINFO = 8, + XDP_DIAG_STATS = 9, + __XDP_DIAG_MAX = 10, }; -typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *); +struct xdp_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u16 pad; + __u32 xdiag_ino; + __u32 xdiag_show; + __u32 xdiag_cookie[2]; +}; -typedef void (*btf_trace_writeback_start)(void *, struct bdi_writeback *, struct wb_writeback_work *); +struct xdp_diag_msg { + __u8 xdiag_family; + __u8 xdiag_type; + __u16 pad; + __u32 xdiag_ino; + __u32 xdiag_cookie[2]; +}; -typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *); +struct xdp_diag_info { + __u32 ifindex; + __u32 queue_id; +}; -typedef void (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *); +struct xdp_diag_ring { + __u32 entries; +}; -typedef void (*btf_trace_writeback_pages_written)(void *, long); +struct xdp_diag_umem { + __u64 size; + __u32 id; + __u32 num_pages; + __u32 chunk_size; + __u32 headroom; + __u32 ifindex; + __u32 queue_id; + __u32 flags; + __u32 refs; +}; -typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *); +struct xdp_diag_stats { + __u64 n_rx_dropped; + __u64 n_rx_invalid; + __u64 n_rx_full; + __u64 n_fill_ring_empty; + __u64 n_tx_invalid; + __u64 n_tx_ring_empty; +}; -typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *); +typedef struct elf32_phdr Elf32_Phdr; -typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *); +typedef struct elf64_phdr Elf64_Phdr; -typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, unsigned long, int); +typedef struct elf32_note Elf32_Nhdr; -typedef void (*btf_trace_global_dirty_state)(void *, unsigned long, unsigned long); +struct fdt_errtabent { + const char *str; +}; -typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, unsigned long, unsigned long); +struct fprop_local_single { + unsigned long events; + unsigned int period; + raw_spinlock_t lock; +}; -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); +enum { + LOGIC_PIO_INDIRECT = 0, + LOGIC_PIO_CPU_MMIO = 1, +}; -typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *); +struct logic_pio_host_ops; -typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, unsigned long); +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; +}; -typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, unsigned long); +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); +}; -typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *); +struct riscv_hwprobe { + __s64 key; + __u64 value; +}; -typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *); +struct param_attribute { + struct module_attribute mattr; + const struct kernel_param *param; +}; -typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *); +struct module_param_attrs { + unsigned int num; + struct attribute_group grp; + struct param_attribute attrs[0]; +}; -typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *); +enum { + KERNEL_PARAM_OPS_FL_NOARG = 1, +}; -typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *); +enum { + KERNEL_PARAM_FL_UNSAFE = 1, + KERNEL_PARAM_FL_HWPARAM = 2, +}; -struct trace_event_raw_writeback_folio_template { - struct trace_entry ent; - char name[32]; - ino_t ino; - unsigned long index; - char __data[0]; +struct kmalloced_param { + struct list_head list; + char val[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 sd_flag_debug { + unsigned int meta_flags; + char *name; }; -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]; +typedef const struct cpumask * (*sched_domain_mask_f)(int); + +typedef int (*sched_domain_flags_f)(); + +struct sd_data { + struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; + struct sched_domain_shared * __attribute__((btf_type_tag("percpu"))) *sds; + struct sched_group * __attribute__((btf_type_tag("percpu"))) *sg; + struct sched_group_capacity * __attribute__((btf_type_tag("percpu"))) *sgc; }; -struct 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 sched_domain_topology_level { + sched_domain_mask_f mask; + sched_domain_flags_f sd_flags; + int flags; + int numa_level; + struct sd_data data; + char *name; }; -struct trace_event_raw_writeback_pages_written { - struct trace_entry ent; - long pages; - char __data[0]; +struct housekeeping { + cpumask_var_t cpumasks[9]; + unsigned long flags; }; -struct trace_event_raw_writeback_class { - struct trace_entry ent; - char name[32]; - ino_t cgroup_ino; - char __data[0]; +struct cpuacct { + struct cgroup_subsys_state css; + u64 __attribute__((btf_type_tag("percpu"))) *cpuusage; + struct kernel_cpustat __attribute__((btf_type_tag("percpu"))) *cpustat; }; -struct trace_event_raw_writeback_bdi_register { - struct trace_entry ent; - char name[32]; - char __data[0]; +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, }; -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]; +enum cpuacct_stat_index { + CPUACCT_STAT_USER = 0, + CPUACCT_STAT_SYSTEM = 1, + CPUACCT_STAT_NSTATS = 2, }; -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]; +enum { + __SD_BALANCE_NEWIDLE = 0, + __SD_BALANCE_EXEC = 1, + __SD_BALANCE_FORK = 2, + __SD_BALANCE_WAKE = 3, + __SD_WAKE_AFFINE = 4, + __SD_ASYM_CPUCAPACITY = 5, + __SD_ASYM_CPUCAPACITY_FULL = 6, + __SD_SHARE_CPUCAPACITY = 7, + __SD_CLUSTER = 8, + __SD_SHARE_PKG_RESOURCES = 9, + __SD_SERIALIZE = 10, + __SD_ASYM_PACKING = 11, + __SD_PREFER_SIBLING = 12, + __SD_OVERLAP = 13, + __SD_NUMA = 14, + __SD_FLAG_CNT = 15, }; -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]; +enum s_alloc { + sa_rootdomain = 0, + sa_sd = 1, + sa_sd_storage = 2, + sa_none = 3, }; -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]; +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, }; -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]; +enum membarrier_cmd_flag { + MEMBARRIER_CMD_FLAG_CPU = 1, }; -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]; +enum { + MEMBARRIER_FLAG_SYNC_CORE = 1, + MEMBARRIER_FLAG_RSEQ = 2, }; -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 asym_cap_data { + struct list_head link; + unsigned long capacity; + unsigned long cpus[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 s_data { + struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; + struct root_domain *rd; }; -struct trace_event_data_offsets_writeback_folio_template {}; +typedef u64 (*btf_bpf_task_storage_get_recur)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t); -struct trace_event_data_offsets_writeback_dirty_inode_template {}; +typedef u64 (*btf_bpf_task_storage_get)(struct bpf_map *, struct task_struct *, void *, u64, gfp_t); -struct trace_event_data_offsets_writeback_write_inode_template {}; +typedef u64 (*btf_bpf_task_storage_delete_recur)(struct bpf_map *, struct task_struct *); -struct trace_event_data_offsets_writeback_work_class {}; +typedef u64 (*btf_bpf_task_storage_delete)(struct bpf_map *, struct task_struct *); -struct trace_event_data_offsets_writeback_pages_written {}; +enum { + FOLL_TOUCH = 65536, + FOLL_TRIED = 131072, + FOLL_REMOTE = 262144, + FOLL_PIN = 524288, + FOLL_FAST_ONLY = 1048576, + FOLL_UNLOCKABLE = 2097152, +}; -struct trace_event_data_offsets_writeback_class {}; +struct follow_page_context { + struct dev_pagemap *pgmap; + unsigned int page_mask; +}; -struct trace_event_data_offsets_writeback_bdi_register {}; +struct dma_page { + struct list_head page_list; + void *vaddr; + dma_addr_t dma; +}; -struct trace_event_data_offsets_wbc_class {}; +struct dma_block; -struct trace_event_data_offsets_writeback_queue_io {}; +struct dma_pool { + struct list_head page_list; + spinlock_t lock; + struct dma_block *next_block; + size_t nr_blocks; + size_t nr_active; + size_t nr_pages; + struct device *dev; + unsigned int size; + unsigned int allocation; + unsigned int boundary; + char name[32]; + struct list_head pools; +}; -struct trace_event_data_offsets_global_dirty_state {}; +struct dma_block { + struct dma_block *next_block; + dma_addr_t dma; +}; -struct trace_event_data_offsets_bdi_dirty_ratelimit {}; +struct hugetlb_cgroup_per_node; -struct trace_event_data_offsets_balance_dirty_pages {}; +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[3]; + struct page_counter rsvd_hugepage[3]; + atomic_long_t events[3]; + atomic_long_t events_local[3]; + struct cgroup_file events_file[3]; + struct cgroup_file events_local_file[3]; + struct hugetlb_cgroup_per_node *nodeinfo[0]; +}; -struct trace_event_data_offsets_writeback_sb_inodes_requeue {}; +struct hugetlb_cgroup_per_node { + unsigned long usage[3]; +}; -struct trace_event_data_offsets_writeback_single_inode_template {}; +enum hugetlb_memory_event { + HUGETLB_MAX = 0, + HUGETLB_NR_MEMORY_EVENTS = 1, +}; -struct trace_event_data_offsets_writeback_inode_template {}; +enum { + RES_USAGE___2 = 0, + RES_RSVD_USAGE = 1, + RES_LIMIT___2 = 2, + RES_RSVD_LIMIT = 3, + RES_MAX_USAGE___2 = 4, + RES_RSVD_MAX_USAGE = 5, + RES_FAILCNT___2 = 6, + RES_RSVD_FAILCNT = 7, +}; -struct ext4_system_zone { - struct rb_node node; - ext4_fsblk_t start_blk; - unsigned int count; - u32 ino; +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 cond_insertf_data { - struct policydb *p; - struct avtab_node **dst; - struct cond_av_list *other; +struct file_region { + struct list_head link; + long from; + long to; + struct page_counter *reservation_counter; + struct cgroup_subsys_state *css; }; -struct policy_data { - struct policydb *p; - void *fp; +struct prepend_buffer { + char *buf; + int len; }; -struct match_workbuf { - unsigned int count; - unsigned int pos; - unsigned int len; - unsigned int size; - unsigned int history[24]; +struct fat_floppy_defaults { + unsigned int nr_sectors; + unsigned int sec_per_clus; + unsigned int dir_entries; + unsigned int media; + unsigned int fat_length; }; -struct biovec_slab { - int nr_vecs; - char *name; - struct kmem_cache *slab; +enum { + Opt_check_n = 0, + Opt_check_r___2 = 1, + Opt_check_s___2 = 2, + Opt_uid___6 = 3, + Opt_gid___7 = 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___3 = 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___2 = 36, + Opt_nfs = 37, + Opt_time_offset = 38, + Opt_nfs_stale_rw = 39, + Opt_nfs_nostale_ro = 40, + Opt_err___7 = 41, + Opt_dos1xfloppy = 42, }; -struct bio_slab { - struct kmem_cache *slab; - unsigned int slab_ref; - unsigned int slab_size; - char name[8]; +struct fat_boot_sector { + __u8 ignored[3]; + __u8 system_id[8]; + __u8 sector_size[2]; + __u8 sec_per_clus; + __le16 reserved; + __u8 fats; + __u8 dir_entries[2]; + __u8 sectors[2]; + __u8 media; + __le16 fat_length; + __le16 secs_track; + __le16 heads; + __le32 hidden; + __le32 total_sect; + union { + struct { + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat16; + struct { + __le32 length; + __le16 flags; + __u8 version[2]; + __le32 root_cluster; + __le16 info_sector; + __le16 backup_boot; + __le16 reserved2[6]; + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat32; + }; }; -struct io_epoll { - struct file *file; - int epfd; - int op; - int fd; - struct epoll_event event; +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 unsigned int uInt; +typedef void (*btf_trace_nfs_set_inode_stale)(void *, const struct inode *); -typedef struct { - S16 norm[53]; - U32 wksp[285]; -} ZSTD_BuildCTableWksp; +typedef void (*btf_trace_nfs_refresh_inode_enter)(void *, const struct inode *); -typedef struct { - int deltaFindState; - U32 deltaNbBits; -} FSE_symbolCompressionTransform; +typedef void (*btf_trace_nfs_refresh_inode_exit)(void *, const struct inode *, int); -typedef struct { - ptrdiff_t value; - const void *stateTable; - const void *symbolTT; - unsigned int stateLog; -} FSE_CState_t; +typedef void (*btf_trace_nfs_revalidate_inode_enter)(void *, const struct inode *); -typedef struct { - size_t bitContainer; - unsigned int bitPos; - char *startPtr; - char *ptr; - char *endPtr; -} BIT_CStream_t; +typedef void (*btf_trace_nfs_revalidate_inode_exit)(void *, const struct inode *, int); -struct gpio { - unsigned int gpio; - unsigned long flags; - const char *label; -}; +typedef void (*btf_trace_nfs_invalidate_mapping_enter)(void *, const struct inode *); -struct acpi_irq_parse_one_ctx { - int rc; - unsigned int index; - unsigned long *res_flags; - struct irq_fwspec *fwspec; -}; +typedef void (*btf_trace_nfs_invalidate_mapping_exit)(void *, const struct inode *, int); -struct pnp_fixup { - char id[7]; - void (*quirk_function)(struct pnp_dev *); -}; +typedef void (*btf_trace_nfs_getattr_enter)(void *, const struct inode *); -struct of_serial_info { - struct clk *clk; - struct reset_control *rst; - int type; - int line; -}; +typedef void (*btf_trace_nfs_getattr_exit)(void *, const struct inode *, int); -struct nd_cmd_desc { - int in_num; - int out_num; - u32 in_sizes[5]; - int out_sizes[5]; -}; +typedef void (*btf_trace_nfs_setattr_enter)(void *, const struct inode *); -enum nd_ioctl_mode { - BUS_IOCTL = 0, - DIMM_IOCTL = 1, -}; +typedef void (*btf_trace_nfs_setattr_exit)(void *, const struct inode *, int); -struct nd_cmd_pkg { - __u64 nd_family; - __u64 nd_command; - __u32 nd_size_in; - __u32 nd_size_out; - __u32 nd_reserved2[9]; - __u32 nd_fw_size; - unsigned char nd_payload[0]; -}; +typedef void (*btf_trace_nfs_writeback_inode_enter)(void *, const struct inode *); -struct nd_cmd_clear_error { - __u64 address; - __u64 length; - __u32 status; - __u8 reserved[4]; - __u64 cleared; -}; +typedef void (*btf_trace_nfs_writeback_inode_exit)(void *, const struct inode *, int); -struct badrange_entry { - u64 start; - u64 length; - struct list_head list; -}; +typedef void (*btf_trace_nfs_fsync_enter)(void *, const struct inode *); -struct clear_badblocks_context { - resource_size_t phys; - resource_size_t cleared; -}; +typedef void (*btf_trace_nfs_fsync_exit)(void *, const struct inode *, int); -struct nd_cmd_vendor_hdr { - __u32 opcode; - __u32 in_length; - __u8 in_buf[0]; -}; +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 *); -struct nd_cmd_ars_cap { - __u64 address; - __u64 length; - __u32 status; - __u32 max_ars_out; - __u32 clear_err_unit; - __u16 flags; - __u16 reserved; -}; +typedef void (*btf_trace_nfs_readdir_cache_fill_done)(void *, const struct inode *, int); -struct pr_keys { - u32 generation; - u32 num_keys; - u64 keys[0]; -}; +typedef void (*btf_trace_nfs_readdir_uncached_done)(void *, const struct inode *, int); -struct pr_held_reservation { - u64 key; - u32 generation; - enum pr_type type; -}; +typedef void (*btf_trace_nfs_access_exit)(void *, const struct inode *, unsigned int, unsigned int, int); -enum scsi_pr_type { - SCSI_PR_WRITE_EXCLUSIVE = 1, - SCSI_PR_EXCLUSIVE_ACCESS = 3, - SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5, - SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6, - SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7, - SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8, -}; +typedef void (*btf_trace_nfs_size_truncate)(void *, const struct inode *, loff_t); -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, -}; +typedef void (*btf_trace_nfs_size_wcc)(void *, const struct inode *, loff_t); -enum { - SD_DEF_XFER_BLOCKS = 65535, - SD_MAX_XFER_BLOCKS = 4294967295, - SD_MAX_WS10_BLOCKS = 65535, - SD_MAX_WS16_BLOCKS = 8388607, -}; +typedef void (*btf_trace_nfs_size_update)(void *, const struct inode *, loff_t); -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, -}; +typedef void (*btf_trace_nfs_size_grow)(void *, const struct inode *, loff_t); -enum t10_dif_type { - T10_PI_TYPE0_PROTECTION = 0, - T10_PI_TYPE1_PROTECTION = 1, - T10_PI_TYPE2_PROTECTION = 2, - T10_PI_TYPE3_PROTECTION = 3, -}; +typedef void (*btf_trace_nfs_readdir_invalidate_cache_range)(void *, const struct inode *, loff_t, loff_t); -enum { - SD_ZERO_WRITE = 0, - SD_ZERO_WS = 1, - SD_ZERO_WS16_UNMAP = 2, - SD_ZERO_WS10_UNMAP = 3, -}; +typedef void (*btf_trace_nfs_readdir_cache_fill)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); -enum bip_flags { - BIP_BLOCK_INTEGRITY = 1, - BIP_MAPPED_INTEGRITY = 2, - BIP_CTRL_NOCHECK = 4, - BIP_DISK_NOCHECK = 8, - BIP_IP_CHECKSUM = 16, -}; +typedef void (*btf_trace_nfs_readdir_uncached)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); -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, -}; +typedef void (*btf_trace_nfs_lookup_enter)(void *, const struct inode *, const struct dentry *, unsigned int); -enum { - SD_EXT_CDB_SIZE = 32, - SD_MEMPOOL_SIZE = 2, -}; +typedef void (*btf_trace_nfs_lookup_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); -struct opal_dev; +typedef void (*btf_trace_nfs_lookup_revalidate_enter)(void *, const struct inode *, const struct dentry *, unsigned int); -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; -}; +typedef void (*btf_trace_nfs_lookup_revalidate_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); -enum xfer_buf_dir { - TO_XFER_BUF = 0, - FROM_XFER_BUF = 1, -}; +typedef void (*btf_trace_nfs_readdir_lookup)(void *, const struct inode *, const struct dentry *, unsigned int); -struct bulk_cb_wrap { - __le32 Signature; - __u32 Tag; - __le32 DataTransferLength; - __u8 Flags; - __u8 Lun; - __u8 Length; - __u8 CDB[16]; -}; +typedef void (*btf_trace_nfs_readdir_lookup_revalidate_failed)(void *, const struct inode *, const struct dentry *, unsigned int); -struct bulk_cs_wrap { - __le32 Signature; - __u32 Tag; - __le32 Residue; - __u8 Status; -}; +typedef void (*btf_trace_nfs_readdir_lookup_revalidate)(void *, const struct inode *, const struct dentry *, unsigned int, int); -struct hwmon_type_attr_list { - const u32 *attrs; - size_t n_attrs; -}; +typedef void (*btf_trace_nfs_atomic_open_enter)(void *, const struct inode *, const struct nfs_open_context *, unsigned int); -struct power_supply_hwmon { - struct power_supply *psy; - unsigned long *props; -}; +typedef void (*btf_trace_nfs_atomic_open_exit)(void *, const struct inode *, const struct nfs_open_context *, unsigned int, int); -struct virtproc_info; +typedef void (*btf_trace_nfs_create_enter)(void *, const struct inode *, const struct dentry *, unsigned int); -struct virtio_rpmsg_channel { - struct rpmsg_device rpdev; - struct virtproc_info *vrp; -}; +typedef void (*btf_trace_nfs_create_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); -struct virtproc_info { - struct virtio_device *vdev; - struct virtqueue *rvq; - struct virtqueue *svq; - void *rbufs; - void *sbufs; - unsigned int num_bufs; - unsigned int buf_size; - int last_sbuf; - dma_addr_t bufs_dma; - struct mutex tx_lock; - struct idr endpoints; - struct mutex endpoints_lock; - wait_queue_head_t sendq; - atomic_t sleepers; -}; +typedef void (*btf_trace_nfs_mknod_enter)(void *, const struct inode *, const struct dentry *); -typedef __u16 __rpmsg16; +typedef void (*btf_trace_nfs_mknod_exit)(void *, const struct inode *, const struct dentry *, int); -struct rpmsg_hdr { - __rpmsg32 src; - __rpmsg32 dst; - __rpmsg32 reserved; - __rpmsg16 len; - __rpmsg16 flags; - u8 data[0]; -}; +typedef void (*btf_trace_nfs_mkdir_enter)(void *, const struct inode *, const struct dentry *); -enum tc_fifo_command { - TC_FIFO_REPLACE = 0, - TC_FIFO_DESTROY = 1, - TC_FIFO_STATS = 2, -}; +typedef void (*btf_trace_nfs_mkdir_exit)(void *, const struct inode *, const struct dentry *, int); -struct tc_fifo_qopt { - __u32 limit; -}; +typedef void (*btf_trace_nfs_rmdir_enter)(void *, const struct inode *, const struct dentry *); -struct tc_fifo_qopt_offload { - enum tc_fifo_command command; - u32 handle; - u32 parent; - union { - struct tc_qopt_offload_stats stats; - }; -}; +typedef void (*btf_trace_nfs_rmdir_exit)(void *, const struct inode *, const struct dentry *, int); -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, -}; +typedef void (*btf_trace_nfs_remove_enter)(void *, const struct inode *, const struct dentry *); -struct eee_reply_data { - struct ethnl_reply_data base; - struct ethtool_eee eee; -}; +typedef void (*btf_trace_nfs_remove_exit)(void *, const struct inode *, const struct dentry *, int); -enum { - TCP_CMSG_INQ = 1, - TCP_CMSG_TS = 2, -}; +typedef void (*btf_trace_nfs_unlink_enter)(void *, const struct inode *, const struct dentry *); -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, -}; +typedef void (*btf_trace_nfs_unlink_exit)(void *, const struct inode *, const struct dentry *, int); -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, -}; +typedef void (*btf_trace_nfs_symlink_enter)(void *, const struct inode *, const struct dentry *); -struct tcp_splice_state { - struct pipe_inode_info *pipe; - size_t len; - unsigned int flags; -}; +typedef void (*btf_trace_nfs_symlink_exit)(void *, const struct inode *, const struct dentry *, int); -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; -}; +typedef void (*btf_trace_nfs_link_enter)(void *, const struct inode *, const struct inode *, const struct dentry *); -struct tcp_repair_opt { - __u32 opt_code; - __u32 opt_val; -}; +typedef void (*btf_trace_nfs_link_exit)(void *, const struct inode *, const struct inode *, const struct dentry *, int); -struct tcp_repair_window { - __u32 snd_wl1; - __u32 snd_wnd; - __u32 max_window; - __u32 rcv_wnd; - __u32 rcv_wup; -}; +typedef void (*btf_trace_nfs_rename_enter)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *); -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; -}; +typedef void (*btf_trace_nfs_rename_exit)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); -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_nfs_sillyrename_rename)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); -struct frag_queue { - struct inet_frag_queue q; - int iif; - __u16 nhoffset; - u8 ecn; -}; +typedef void (*btf_trace_nfs_sillyrename_unlink)(void *, const struct nfs_unlinkdata *, int); -struct radix_tree_preload { - local_lock_t lock; - unsigned int nr; - struct xa_node *nodes; -}; +typedef void (*btf_trace_nfs_aop_readpage)(void *, const struct inode *, struct folio *); -struct latch_tree_ops { - bool (*less)(struct latch_tree_node *, struct latch_tree_node *); - int (*comp)(void *, struct latch_tree_node *); -}; +typedef void (*btf_trace_nfs_aop_readpage_done)(void *, const struct inode *, struct folio *, int); -struct trace_export { - struct trace_export __attribute__((btf_type_tag("rcu"))) *next; - void (*write)(struct trace_export *, const void *, unsigned int); - int flags; -}; +typedef void (*btf_trace_nfs_writeback_folio)(void *, const struct inode *, struct folio *); -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; -}; +typedef void (*btf_trace_nfs_writeback_folio_done)(void *, const struct inode *, struct folio *, int); -struct ftrace_stack { - unsigned long calls[1024]; -}; +typedef void (*btf_trace_nfs_invalidate_folio)(void *, const struct inode *, struct folio *); -struct ftrace_stacks { - struct ftrace_stack stacks[4]; -}; +typedef void (*btf_trace_nfs_launder_folio_done)(void *, const struct inode *, struct folio *, int); -struct trace_buffer_struct { - int nesting; - char buffer[4096]; -}; +typedef void (*btf_trace_nfs_aop_readahead)(void *, const struct inode *, loff_t, unsigned int); -enum trace_iter_flags { - TRACE_FILE_LAT_FMT = 1, - TRACE_FILE_ANNOTATE = 2, - TRACE_FILE_TIME_IN_NS = 4, -}; +typedef void (*btf_trace_nfs_aop_readahead_done)(void *, const struct inode *, unsigned int, int); -struct err_info { - const char **errs; - u8 type; - u16 pos; - u64 ts; -}; +typedef void (*btf_trace_nfs_initiate_read)(void *, const struct nfs_pgio_header *); -struct tracing_log_err { - struct list_head list; - struct err_info info; - char loc[128]; - char *cmd; -}; +typedef void (*btf_trace_nfs_readpage_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); -struct buffer_ref { - struct trace_buffer *buffer; - void *page; - int cpu; - refcount_t refcount; -}; +typedef void (*btf_trace_nfs_readpage_short)(void *, const struct rpc_task *, const struct nfs_pgio_header *); -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 void (*btf_trace_nfs_pgio_error)(void *, const struct nfs_pgio_header *, int, loff_t); -struct print_entry { - struct trace_entry ent; - unsigned long ip; - char buf[0]; -}; +typedef void (*btf_trace_nfs_initiate_write)(void *, const struct nfs_pgio_header *); -struct bputs_entry { - struct trace_entry ent; - unsigned long ip; - const char *str; -}; +typedef void (*btf_trace_nfs_writeback_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); -typedef bool (*cond_update_fn_t)(struct trace_array *, void *); +typedef void (*btf_trace_nfs_write_error)(void *, const struct inode *, const struct nfs_page *, int); -struct ftrace_entry { - struct trace_entry ent; - unsigned long ip; - unsigned long parent_ip; -}; +typedef void (*btf_trace_nfs_comp_error)(void *, const struct inode *, const struct nfs_page *, int); -struct stack_entry { - struct trace_entry ent; - int size; - unsigned long caller[8]; -}; +typedef void (*btf_trace_nfs_commit_error)(void *, const struct inode *, const struct nfs_page *, int); -struct bprint_entry { - struct trace_entry ent; - unsigned long ip; - const char *fmt; - u32 buf[0]; -}; +typedef void (*btf_trace_nfs_initiate_commit)(void *, const struct nfs_commit_data *); -struct trace_min_max_param { - struct mutex *lock; - u64 *val; - u64 *min; - u64 *max; -}; +typedef void (*btf_trace_nfs_commit_done)(void *, const struct rpc_task *, const struct nfs_commit_data *); -struct raw_data_entry { - struct trace_entry ent; - unsigned int id; - char buf[0]; -}; +typedef void (*btf_trace_nfs_direct_commit_complete)(void *, const struct nfs_direct_req *); -struct ftrace_buffer_info { - struct trace_iterator iter; - void *spare; - unsigned int spare_cpu; - unsigned int read; -}; +typedef void (*btf_trace_nfs_direct_resched_write)(void *, const struct nfs_direct_req *); -enum { - BPF_F_SYSCTL_BASE_NAME = 1, -}; +typedef void (*btf_trace_nfs_direct_write_complete)(void *, const struct nfs_direct_req *); -typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64); +typedef void (*btf_trace_nfs_direct_write_completion)(void *, const struct nfs_direct_req *); -typedef u64 (*btf_bpf_get_retval)(); +typedef void (*btf_trace_nfs_direct_write_schedule_iovec)(void *, const struct nfs_direct_req *); -typedef u64 (*btf_bpf_set_retval)(int); +typedef void (*btf_trace_nfs_direct_write_reschedule_io)(void *, const struct nfs_direct_req *); -typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64); +typedef void (*btf_trace_nfs_fh_to_dentry)(void *, const struct super_block *, const struct nfs_fh *, u64, int); -typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t); +typedef void (*btf_trace_nfs_mount_assign)(void *, const char *, const char *); -typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t); +typedef void (*btf_trace_nfs_mount_option)(void *, const struct fs_parameter *); -typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t); +typedef void (*btf_trace_nfs_mount_path)(void *, const char *); -typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *); +typedef void (*btf_trace_nfs_xdr_status)(void *, const struct xdr_stream *, int); -struct bpf_cgroup_link; +typedef void (*btf_trace_nfs_xdr_bad_filehandle)(void *, const struct xdr_stream *, int); -struct bpf_prog_list { - struct hlist_node node; - struct bpf_prog *prog; - struct bpf_cgroup_link *link; - struct bpf_cgroup_storage *storage[2]; +struct trace_event_raw_nfs_inode_event { + struct trace_entry ent; + dev_t dev; + u32 fhandle; + u64 fileid; + u64 version; + char __data[0]; }; -struct bpf_cgroup_link { - struct bpf_link link; - struct cgroup *cgroup; - enum bpf_attach_type type; +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 bpf_sockopt_buf { - u8 data[32]; +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]; }; -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 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 vfree_deferred { - struct llist_head list; - struct work_struct wq; +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 vmap_block_queue { - spinlock_t lock; - struct list_head free; - struct xarray vmap_blocks; +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 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; - }; +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]; }; -enum fit_type { - NOTHING_FIT = 0, - FL_FIT_TYPE = 1, - LE_FIT_TYPE = 2, - RE_FIT_TYPE = 3, - NE_FIT_TYPE = 4, +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]; }; -typedef unsigned int kasan_vmalloc_flags_t; - -struct trace_event_raw_alloc_vmap_area { +struct trace_event_raw_nfs_atomic_open_enter { struct trace_entry ent; - unsigned long addr; - unsigned long size; - unsigned long align; - unsigned long vstart; - unsigned long vend; - int failed; + unsigned long flags; + unsigned long fmode; + dev_t dev; + u64 dir; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_purge_vmap_area_lazy { +struct trace_event_raw_nfs_atomic_open_exit { struct trace_entry ent; - unsigned long start; - unsigned long end; - unsigned int npurged; + 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_free_vmap_area_noflush { +struct trace_event_raw_nfs_create_enter { struct trace_entry ent; - unsigned long va_start; - unsigned long nr_lazy; - unsigned long nr_lazy_max; + unsigned long flags; + dev_t dev; + u64 dir; + u32 __data_loc_name; 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; +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_data_offsets_alloc_vmap_area {}; +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_data_offsets_purge_vmap_area_lazy {}; +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_data_offsets_free_vmap_area_noflush {}; +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 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 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 SU_SP_s { - __u8 magic[2]; - __u8 skip; +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 SU_CE_s { - __u8 extent[8]; - __u8 offset[8]; - __u8 size[8]; +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 SU_ER_s { - __u8 len_id; - __u8 len_des; - __u8 len_src; - __u8 ext_ver; - __u8 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 RR_RR_s { - __u8 flags[1]; +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 RR_PX_s { - __u8 mode[8]; - __u8 n_links[8]; - __u8 uid[8]; - __u8 gid[8]; +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 RR_PN_s { - __u8 dev_high[8]; - __u8 dev_low[8]; +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 SL_component { - __u8 flags; - __u8 len; - __u8 text[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 RR_SL_s { - __u8 flags; - struct SL_component link; +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 RR_NM_s { - __u8 flags; - char name[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 RR_CL_s { - __u8 location[8]; +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 RR_PL_s { - __u8 location[8]; +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 stamp { - __u8 time[7]; +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 RR_TF_s { - __u8 flags; - struct stamp times[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 RR_ZF_s { - __u8 algorithm[2]; - __u8 parms[2]; - __u8 real_size[8]; +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 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 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 rock_state { - void *buffer; - unsigned char *chr; - int len; - int cont_size; - int cont_extent; - int cont_offset; - int cont_loops; - struct inode *inode; +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 nfs4_cached_acl { - enum nfs4_acl_type type; - int cached; - size_t len; - 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 nfs41_exchange_id_data { - struct nfs41_exchange_id_res res; - struct nfs41_exchange_id_args args; +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 nfs4_get_lease_time_data { - struct nfs4_get_lease_time_args *args; - struct nfs4_get_lease_time_res *res; - struct nfs_client *clp; +struct trace_event_raw_nfs_mount_assign { + struct trace_entry ent; + u32 __data_loc_option; + u32 __data_loc_value; + char __data[0]; }; -struct nfs4_lock_waiter { - struct inode *inode; - struct nfs_lowner owner; - wait_queue_entry_t wait; +struct trace_event_raw_nfs_mount_option { + struct trace_entry ent; + u32 __data_loc_option; + char __data[0]; }; -struct nfs4_call_sync_data { - const struct nfs_server *seq_server; - struct nfs4_sequence_args *seq_args; - struct nfs4_sequence_res *seq_res; +struct trace_event_raw_nfs_mount_path { + struct trace_entry ent; + u32 __data_loc_path; + char __data[0]; }; -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 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 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 trace_event_data_offsets_nfs_lookup_event { + u32 name; }; -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 trace_event_data_offsets_nfs_lookup_event_done { + u32 name; }; -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 trace_event_data_offsets_nfs_atomic_open_enter { + u32 name; }; -struct nfs4_open_createattrs { - struct nfs4_label *label; - struct iattr *sattr; - const __u32 verf[2]; +struct trace_event_data_offsets_nfs_atomic_open_exit { + u32 name; }; -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 trace_event_data_offsets_nfs_create_enter { + u32 name; }; -struct rpc_bind_conn_calldata { - struct nfs_client *clp; - const struct cred *cred; +struct trace_event_data_offsets_nfs_create_exit { + u32 name; }; -struct nfs4_sequence_data { - struct nfs_client *clp; - struct nfs4_sequence_args args; - struct nfs4_sequence_res res; +struct trace_event_data_offsets_nfs_directory_event { + u32 name; }; -struct nfs_release_lockowner_res { - struct nfs4_sequence_res seq_res; +struct trace_event_data_offsets_nfs_directory_event_done { + u32 name; }; -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 trace_event_data_offsets_nfs_link_enter { + u32 name; }; -struct nfs4_renewdata { - struct nfs_client *client; - unsigned long timestamp; +struct trace_event_data_offsets_nfs_link_exit { + u32 name; }; -struct nfs_free_stateid_data { - struct nfs_server *server; - struct nfs41_free_stateid_args args; - struct nfs41_free_stateid_res res; +struct trace_event_data_offsets_nfs_rename_event { + u32 old_name; + u32 new_name; }; -struct nfs4_reclaim_complete_data { - struct nfs_client *clp; - struct nfs41_reclaim_complete_args arg; - struct nfs41_reclaim_complete_res res; +struct trace_event_data_offsets_nfs_rename_event_done { + u32 old_name; + u32 new_name; }; -struct debugfs_blob_wrapper { - void *data; - unsigned long size; +struct trace_event_data_offsets_nfs_sillyrename_unlink { + u32 name; }; -struct debugfs_u32_array { - u32 *array; - u32 n_elements; +struct trace_event_data_offsets_nfs_mount_assign { + u32 option; + u32 value; }; -struct debugfs_devm_entry { - int (*read)(struct seq_file *, void *); - struct device *dev; +struct trace_event_data_offsets_nfs_mount_option { + u32 option; }; -struct scomp_scratch { - spinlock_t lock; - void *src; - void *dst; +struct trace_event_data_offsets_nfs_mount_path { + u32 path; }; -struct acomp_req; +struct trace_event_data_offsets_nfs_xdr_event { + u32 program; + u32 procedure; +}; -struct crypto_acomp { - int (*compress)(struct acomp_req *); - int (*decompress)(struct acomp_req *); - void (*dst_free)(struct scatterlist *); - unsigned int reqsize; - long: 64; - long: 64; - long: 64; - long: 64; - struct crypto_tfm base; +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_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 {}; + +enum nfs4_ff_op_type { + NFS4_FF_OP_LAYOUTSTATS = 0, + NFS4_FF_OP_LAYOUTRETURN = 1, }; -struct acomp_req { - struct crypto_async_request base; - struct scatterlist *src; - struct scatterlist *dst; - unsigned int slen; - unsigned int dlen; - u32 flags; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - void *__ctx[0]; +enum pnfs_layouttype { + LAYOUT_NFSV4_1_FILES = 1, + LAYOUT_OSD2_OBJECTS = 2, + LAYOUT_BLOCK_VOLUME = 3, + LAYOUT_FLEX_FILES = 4, + LAYOUT_SCSI = 5, + LAYOUT_TYPE_MAX = 6, }; -struct comp_alg_common { - struct crypto_alg base; +struct nfs4_flexfile_layoutreturn_args { + struct list_head errors; + struct nfs42_layoutstat_devinfo devinfo[4]; + unsigned int num_errors; + unsigned int num_dev; + struct page *pages[1]; }; -struct crypto_scomp; +enum { + Opt_uid___7 = 0, + Opt_gid___8 = 1, + Opt_mode___6 = 2, + Opt_err___8 = 3, +}; -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 *); - long: 64; - long: 64; - long: 64; - long: 64; - union { - struct { - struct crypto_alg base; - }; - struct comp_alg_common calg; - }; +struct debugfs_mount_opts { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; }; -struct crypto_scomp { - struct crypto_tfm base; +struct debugfs_fs_info { + struct debugfs_mount_opts mount_opts; }; -struct disk_events { - struct list_head node; - struct gendisk *disk; - spinlock_t lock; - struct mutex block_mutex; - int block; - unsigned int pending; - unsigned int clearing; - long poll_msecs; - struct delayed_work dwork; +struct sel_netnode_bkt { + unsigned int size; + struct list_head list; }; -enum { - IOU_POLL_DONE = 0, - IOU_POLL_NO_ACTION = 1, - IOU_POLL_REMOVE_POLL_USE_RES = 2, - IOU_POLL_REISSUE = 3, +struct netnode_security_struct { + union { + __be32 ipv4; + struct in6_addr ipv6; + } addr; + u32 sid; + u16 family; }; -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 sel_netnode { + struct netnode_security_struct nsec; + struct list_head list; + struct callback_head rcu; }; -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 bt_iter_data { + struct blk_mq_hw_ctx *hctx; + struct request_queue *q; + busy_tag_iter_fn *fn; + void *data; + bool reserved; }; -typedef struct { - U64 rolling; - U64 stopMask; -} ldmRollingHashState_t; +struct bt_tags_iter_data { + struct blk_mq_tags *tags; + busy_tag_iter_fn *fn; + void *data; + unsigned int flags; +}; -enum { - EI_ETYPE_NULL = 0, - EI_ETYPE_ERRNO = 1, - EI_ETYPE_ERRNO_NULL = 2, - EI_ETYPE_TRUE = 3, +enum bfqq_state_flags { + BFQQF_just_created = 0, + BFQQF_busy = 1, + BFQQF_wait_request = 2, + BFQQF_non_blocking_wait_rq = 3, + BFQQF_fifo_expire = 4, + BFQQF_has_short_ttime = 5, + BFQQF_sync = 6, + BFQQF_IO_bound = 7, + BFQQF_in_large_burst = 8, + BFQQF_softrt_update = 9, + BFQQF_coop = 10, + BFQQF_split_coop = 11, }; -struct ei_entry { - struct list_head list; - unsigned long start_addr; - unsigned long end_addr; - int etype; - void *priv; +struct io_futex { + struct file *file; + union { + u32 __attribute__((btf_type_tag("user"))) *uaddr; + struct futex_waitv __attribute__((btf_type_tag("user"))) *uwaitv; + }; + unsigned long futex_val; + unsigned long futex_mask; + unsigned long futexv_owned; + u32 futex_flags; + unsigned int futex_nr; + bool futexv_unqueued; +}; + +struct io_futex_data { + union { + struct futex_q q; + struct io_cache_entry cache; + }; + struct io_kiocb *req; }; struct sifive_gpio { @@ -97380,477 +103439,707 @@ struct sifive_gpio { unsigned int irq_number[32]; }; -struct vga_device { +struct fb_modelist { 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 fb_videomode mode; }; -struct vga_arb_user_card { - struct pci_dev *pdev; - unsigned int mem_cnt; - unsigned int io_cnt; +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 vga_arb_private { - struct list_head list; - struct pci_dev *target; - struct vga_arb_user_card cards[16]; - spinlock_t lock; +struct acpi_lpat { + int temp; + int raw; }; -typedef u32 (*acpi_osd_handler)(void *); - -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_lpat_conversion_table { + struct acpi_lpat *lpat; + int lpat_count; }; -struct acpi_os_dpc { - acpi_osd_exec_callback function; - void *context; - struct work_struct work; +struct acpi_irq_parse_one_ctx { + int rc; + unsigned int index; + unsigned long *res_flags; + struct irq_fwspec *fwspec; }; -struct acpi_hp_work { - struct work_struct work; - struct acpi_device *adev; - u32 src; +struct of_regulator_match { + const char *name; + void *driver_data; + struct regulator_init_data *init_data; + struct device_node *of_node; + const struct regulator_desc *desc; }; -struct acpi_reg_walk_info { - u32 function; - u32 reg_run_count; - acpi_adr_space_type space_id; +struct devm_of_regulator_matches { + struct of_regulator_match *matches; + unsigned int num_matches; }; -struct acpi_pcc_info { - u8 subspace_id; - u16 length; - u8 *internal_buffer; +struct memdev { + const char *name; + const struct file_operations *fops; + fmode_t fmode; + umode_t mode; }; -struct acpi_ffh_info { - u64 offset; - u64 length; -}; +struct splice_desc; -enum translation_map { - LAT1_MAP = 0, - GRAF_MAP = 1, - IBMPC_MAP = 2, - USER_MAP = 3, - FIRST_MAP = 0, - LAST_MAP = 3, -}; +typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); -struct uni_pagedict { - u16 **uni_pgdir[32]; - unsigned long refcount; - unsigned long sum; - unsigned char *inverse_translations[4]; - u16 *inverse_trans_unicode; +struct splice_desc { + size_t total_len; + unsigned int len; + unsigned int flags; + union { + void __attribute__((btf_type_tag("user"))) *userptr; + struct file *file; + void *data; + } u; + void (*splice_eof)(struct splice_desc *); + loff_t pos; + loff_t *opos; + size_t num_spliced; + bool need_wakeup; }; -struct of_pci_iommu_alias_info { - struct device *dev; - struct device_node *np; -}; +typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *); -enum btt_init_state { - INIT_UNCHECKED = 0, - INIT_NOTFOUND = 1, - INIT_READY = 2, +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]; }; -enum log_ent_request { - LOG_NEW_ENT = 0, - LOG_OLD_ENT = 1, +struct trace_event_raw_iommu_device_event { + struct trace_entry ent; + u32 __data_loc_device; + char __data[0]; }; -struct free_entry; +struct trace_event_raw_map { + struct trace_entry ent; + u64 iova; + u64 paddr; + size_t size; + char __data[0]; +}; -struct aligned_lock; +struct trace_event_raw_unmap { + struct trace_entry ent; + u64 iova; + size_t size; + size_t unmapped_size; + char __data[0]; +}; -struct arena_info { - u64 size; - u64 external_lba_start; - u32 internal_nlba; - u32 internal_lbasize; - u32 external_nlba; - u32 external_lbasize; - u32 nfree; - u16 version_major; - u16 version_minor; - u32 sector_size; - u64 nextoff; - u64 infooff; - u64 dataoff; - u64 mapoff; - u64 logoff; - u64 info2off; - struct free_entry *freelist; - u32 *rtt; - struct aligned_lock *map_locks; - struct nd_btt *nd_btt; - struct list_head list; - struct dentry *debugfs_dir; - u32 flags; - struct mutex err_lock; - int log_index[2]; +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 free_entry { - u32 block; - u8 sub; - u8 seq; - u8 has_err; +struct trace_event_data_offsets_iommu_group_event { + u32 device; }; -struct aligned_lock { - union { - spinlock_t lock; - u8 cacheline_padding[64]; - }; +struct trace_event_data_offsets_iommu_device_event { + u32 device; }; -struct log_entry { - __le32 lba; - __le32 old_map; - __le32 new_map; - __le32 seq; +struct trace_event_data_offsets_iommu_error { + u32 device; + u32 driver; }; -struct log_group { - struct log_entry ent[4]; +struct trace_event_data_offsets_map {}; + +struct trace_event_data_offsets_unmap {}; + +struct devres_node { + struct list_head entry; + dr_release_t release; + const char *name; + size_t size; }; -struct bio_integrity_payload { - struct bio *bip_bio; - struct bvec_iter bip_iter; - unsigned short bip_vcnt; - unsigned short bip_max_vcnt; - unsigned short bip_flags; - struct bvec_iter bio_iter; - struct work_struct bip_work; - struct bio_vec *bip_vec; - struct bio_vec bip_inline_vecs[0]; +struct devres { + struct devres_node node; + long: 64; + long: 64; + long: 64; + u8 data[0]; }; -typedef void (*btf_trace_spi_controller_idle)(void *, struct spi_controller *); +struct devres_group { + struct devres_node node[2]; + void *id; + int color; +}; -struct spi_mem { - struct spi_device *spi; - void *drvpriv; - const char *name; +struct action_devres { + void *data; + void (*action)(void *); }; -enum spi_mem_data_dir { - SPI_MEM_NO_DATA = 0, - SPI_MEM_DATA_IN = 1, - SPI_MEM_DATA_OUT = 2, +struct pages_devres { + unsigned long addr; + unsigned int order; }; -struct spi_mem_op { - struct { - u8 nbytes; - u8 buswidth; - u8 dtr: 1; - u8 __pad: 7; - u16 opcode; - } cmd; - struct { - u8 nbytes; - u8 buswidth; - u8 dtr: 1; - u8 __pad: 7; - u64 val; - } addr; - struct { - u8 nbytes; - u8 buswidth; - u8 dtr: 1; - u8 __pad: 7; - } dummy; - struct { - u8 buswidth; - u8 dtr: 1; - u8 ecc: 1; - u8 __pad: 6; - enum spi_mem_data_dir dir; - unsigned int nbytes; - union { - void *in; - const void *out; - } buf; - } data; +struct pmem_device { + phys_addr_t phys_addr; + phys_addr_t data_offset; + u64 pfn_flags; + void *virt_addr; + size_t size; + u32 pfn_pad; + struct kernfs_node *bb_state; + struct badblocks bb; + struct dax_device *dax_dev; + struct gendisk *disk; + struct dev_pagemap pgmap; }; -struct spi_mem_dirmap_info { - struct spi_mem_op op_tmpl; - u64 offset; - u64 length; +enum hsm_task_states { + HSM_ST_IDLE = 0, + HSM_ST_FIRST = 1, + HSM_ST = 2, + HSM_ST_LAST = 3, + HSM_ST_ERR = 4, }; -struct spi_mem_dirmap_desc { - struct spi_mem *mem; - struct spi_mem_dirmap_info info; - unsigned int nodirmap; - void *priv; +struct mdio_board_entry { + struct list_head list; + struct mdio_board_info board_info; }; -typedef void (*btf_trace_spi_controller_busy)(void *, struct spi_controller *); +enum RAVB_QUEUE { + RAVB_BE = 0, + RAVB_NC = 1, +}; + +enum DIE_DT { + DT_FMID = 64, + DT_FSTART = 80, + DT_FEND = 96, + DT_FSINGLE = 112, + DT_LINK = 128, + DT_LINKFIX = 144, + DT_EOS = 160, + DT_FEMPTY = 192, + DT_FEMPTY_IS = 208, + DT_FEMPTY_IC = 224, + DT_FEMPTY_ND = 240, + DT_LEMPTY = 32, + DT_EEMPTY = 48, +}; + +enum CSR_BIT { + CSR_OPS = 15, + CSR_OPS_RESET = 1, + CSR_OPS_CONFIG = 2, + CSR_OPS_OPERATION = 4, + CSR_OPS_STANDBY = 8, + CSR_DTS = 256, + CSR_TPO0 = 65536, + CSR_TPO1 = 131072, + CSR_TPO2 = 262144, + CSR_TPO3 = 524288, + CSR_RPO = 1048576, +}; + +enum CCC_BIT { + CCC_OPC = 3, + CCC_OPC_RESET = 0, + CCC_OPC_CONFIG = 1, + CCC_OPC_OPERATION = 2, + CCC_GAC = 128, + CCC_DTSR = 256, + CCC_CSEL = 196608, + CCC_CSEL_HPB = 65536, + CCC_CSEL_ETH_TX = 131072, + CCC_CSEL_GMII_REF = 196608, + CCC_LBME = 16777216, +}; + +enum ECMR_BIT { + ECMR_PRM = 1, + ECMR_DM = 2, + ECMR_TE = 32, + ECMR_RE = 64, + ECMR_MPDE = 512, + ECMR_TXF = 65536, + ECMR_RXF = 131072, + ECMR_PFR = 262144, + ECMR_ZPF = 524288, + ECMR_RZPF = 1048576, + ECMR_DPAD = 2097152, + ECMR_RCSC = 8388608, + ECMR_RCPT = 33554432, + ECMR_TRCCM = 67108864, +}; + +enum TX_DS_TAGL_BIT { + TX_DS = 4095, + TX_TAGL = 61440, +}; + +enum ISS_BIT { + ISS_FRS = 1, + ISS_FTS = 4, + ISS_ES = 64, + ISS_MS = 128, + ISS_TFUS = 256, + ISS_TFWS = 512, + ISS_RFWS = 4096, + ISS_CGIS = 8192, + ISS_DPS1 = 131072, + ISS_DPS2 = 262144, + ISS_DPS3 = 524288, + ISS_DPS4 = 1048576, + ISS_DPS5 = 2097152, + ISS_DPS6 = 4194304, + ISS_DPS7 = 8388608, + ISS_DPS8 = 16777216, + ISS_DPS9 = 33554432, + ISS_DPS10 = 67108864, + ISS_DPS11 = 134217728, + ISS_DPS12 = 268435456, + ISS_DPS13 = 536870912, + ISS_DPS14 = 1073741824, + ISS_DPS15 = 2147483648, +}; + +enum TIS_BIT { + TIS_FTF0 = 1, + TIS_FTF1 = 2, + TIS_TFUF = 256, + TIS_TFWF = 512, + TIS_RESERVED = 4293980400, +}; + +enum TSR_BIT { + TSR_CCS0 = 3, + TSR_CCS1 = 12, + TSR_TFFL = 1792, +}; + +enum TFA2_BIT { + TFA2_TSV = 65535, + TFA2_TST = 67043328, +}; + +enum TCCR_BIT { + TCCR_TSRQ0 = 1, + TCCR_TSRQ1 = 2, + TCCR_TSRQ2 = 4, + TCCR_TSRQ3 = 8, + TCCR_TFEN = 256, + TCCR_TFR = 512, +}; + +enum ECSR_BIT { + ECSR_ICD = 1, + ECSR_MPD = 2, + ECSR_LCHNG = 4, + ECSR_PHYI = 8, + ECSR_PFRI = 16, +}; + +enum PSR_BIT { + PSR_LMON = 1, +}; + +enum EIS_BIT { + EIS_MREF = 1, + EIS_MTEF = 2, + EIS_QEF = 4, + EIS_SEF = 8, + EIS_CLLF0 = 16, + EIS_CLLF1 = 32, + EIS_CULF0 = 64, + EIS_CULF1 = 128, + EIS_TFFF = 256, + EIS_QFS = 65536, + EIS_RESERVED = 4294899712, +}; + +enum RIS2_BIT { + RIS2_QFF0 = 1, + RIS2_QFF1 = 2, + RIS2_QFF2 = 4, + RIS2_QFF3 = 8, + RIS2_QFF4 = 16, + RIS2_QFF5 = 32, + RIS2_QFF6 = 64, + RIS2_QFF7 = 128, + RIS2_QFF8 = 256, + RIS2_QFF9 = 512, + RIS2_QFF10 = 1024, + RIS2_QFF11 = 2048, + RIS2_QFF12 = 4096, + RIS2_QFF13 = 8192, + RIS2_QFF14 = 16384, + RIS2_QFF15 = 32768, + RIS2_QFF16 = 65536, + RIS2_QFF17 = 131072, + RIS2_RFFF = 2147483648, + RIS2_RESERVED = 2147221504, +}; + +enum TX_TAGH_TSR_BIT { + TX_TAGH = 63, + TX_TSR = 64, +}; + +enum APSR_BIT { + APSR_MEMS = 2, + APSR_CMSW = 16, + APSR_RDM = 8192, + APSR_TDM = 16384, +}; + +enum PIR_BIT { + PIR_MDC = 1, + PIR_MMD = 2, + PIR_MDO = 4, + PIR_MDI = 8, +}; + +enum RIS0_BIT { + RIS0_FRF0 = 1, + RIS0_FRF1 = 2, + RIS0_FRF2 = 4, + RIS0_FRF3 = 8, + RIS0_FRF4 = 16, + RIS0_FRF5 = 32, + RIS0_FRF6 = 64, + RIS0_FRF7 = 128, + RIS0_FRF8 = 256, + RIS0_FRF9 = 512, + RIS0_FRF10 = 1024, + RIS0_FRF11 = 2048, + RIS0_FRF12 = 4096, + RIS0_FRF13 = 8192, + RIS0_FRF14 = 16384, + RIS0_FRF15 = 32768, + RIS0_FRF16 = 65536, + RIS0_FRF17 = 131072, + RIS0_RESERVED = 4294705152, +}; + +enum RX_DS_CC_BIT { + RX_DS = 4095, + RX_TR = 4096, + RX_EI = 8192, + RX_PS = 49152, +}; + +enum MSC_BIT { + MSC_CRC = 1, + MSC_RFE = 2, + MSC_RTSF = 4, + MSC_RTLF = 8, + MSC_FRE = 16, + MSC_CRL = 32, + MSC_CEEF = 64, + MSC_MC = 128, +}; + +enum GECMR_BIT { + GECMR_SPEED = 1, + GECMR_SPEED_100 = 0, + GECMR_SPEED_1000 = 1, + GBETH_GECMR_SPEED = 48, + GBETH_GECMR_SPEED_10 = 0, + GBETH_GECMR_SPEED_100 = 16, + GBETH_GECMR_SPEED_1000 = 32, +}; + +enum RCR_BIT { + RCR_EFFS = 1, + RCR_ENCF = 2, + RCR_ESF = 12, + RCR_ETS0 = 16, + RCR_ETS2 = 32, + RCR_RFCL = 536805376, +}; + +enum TGC_BIT { + TGC_TSM0 = 1, + TGC_TSM1 = 2, + TGC_TSM2 = 4, + TGC_TSM3 = 8, + TGC_TQP = 48, + TGC_TQP_NONAVB = 0, + TGC_TQP_AVBMODE1 = 16, + TGC_TQP_AVBMODE2 = 48, + TGC_TBD0 = 768, + TGC_TBD1 = 12288, + TGC_TBD2 = 196608, + TGC_TBD3 = 3145728, +}; + +enum CIE_BIT { + CIE_CRIE = 1, + CIE_CTIE = 256, + CIE_RQFM = 65536, + CIE_CL0M = 131072, + CIE_RFWL = 262144, + CIE_RFFL = 524288, +}; + +enum RIC0_BIT { + RIC0_FRE0 = 1, + RIC0_FRE1 = 2, + RIC0_FRE2 = 4, + RIC0_FRE3 = 8, + RIC0_FRE4 = 16, + RIC0_FRE5 = 32, + RIC0_FRE6 = 64, + RIC0_FRE7 = 128, + RIC0_FRE8 = 256, + RIC0_FRE9 = 512, + RIC0_FRE10 = 1024, + RIC0_FRE11 = 2048, + RIC0_FRE12 = 4096, + RIC0_FRE13 = 8192, + RIC0_FRE14 = 16384, + RIC0_FRE15 = 32768, + RIC0_FRE16 = 65536, + RIC0_FRE17 = 131072, +}; + +enum RIC2_BIT { + RIC2_QFE0 = 1, + RIC2_QFE1 = 2, + RIC2_QFE2 = 4, + RIC2_QFE3 = 8, + RIC2_QFE4 = 16, + RIC2_QFE5 = 32, + RIC2_QFE6 = 64, + RIC2_QFE7 = 128, + RIC2_QFE8 = 256, + RIC2_QFE9 = 512, + RIC2_QFE10 = 1024, + RIC2_QFE11 = 2048, + RIC2_QFE12 = 4096, + RIC2_QFE13 = 8192, + RIC2_QFE14 = 16384, + RIC2_QFE15 = 32768, + RIC2_QFE16 = 65536, + RIC2_QFE17 = 131072, + RIC2_RFFE = 2147483648, +}; + +enum TIC_BIT { + TIC_FTE0 = 1, + TIC_FTE1 = 2, + TIC_TFUE = 256, + TIC_TFWE = 512, +}; + +enum ECSIPR_BIT { + ECSIPR_ICDIP = 1, + ECSIPR_MPDIP = 2, + ECSIPR_LCHNGIP = 4, +}; + +enum CXR35_BIT { + CXR35_SEL_XMII = 3, + CXR35_SEL_XMII_RGMII = 0, + CXR35_SEL_XMII_MII = 2, + CXR35_HALFCYC_CLKSW = 4294901760, +}; + +enum CXR31_BIT { + CXR31_SEL_LINK0 = 1, + CXR31_SEL_LINK1 = 8, +}; + +enum CSR0_BIT { + CSR0_TPE = 16, + CSR0_RPE = 32, +}; + +struct ravb_tstamp_skb { + struct list_head list; + struct sk_buff *skb; + u16 tag; +}; -typedef void (*btf_trace_spi_setup)(void *, struct spi_device *, int); +typedef void (*btf_trace_rtc_set_time)(void *, time64_t, int); -typedef void (*btf_trace_spi_set_cs)(void *, struct spi_device *, bool); +typedef void (*btf_trace_rtc_read_time)(void *, time64_t, int); -typedef void (*btf_trace_spi_message_submit)(void *, struct spi_message *); +typedef void (*btf_trace_rtc_set_alarm)(void *, time64_t, int); -typedef void (*btf_trace_spi_message_start)(void *, struct spi_message *); +typedef void (*btf_trace_rtc_read_alarm)(void *, time64_t, int); -typedef void (*btf_trace_spi_message_done)(void *, struct spi_message *); +typedef void (*btf_trace_rtc_irq_set_freq)(void *, int, int); -typedef void (*btf_trace_spi_transfer_start)(void *, struct spi_message *, struct spi_transfer *); +typedef void (*btf_trace_rtc_irq_set_state)(void *, int, int); -typedef void (*btf_trace_spi_transfer_stop)(void *, struct spi_message *, struct spi_transfer *); +typedef void (*btf_trace_rtc_alarm_irq_enable)(void *, unsigned int, int); -struct spi_board_info { - char modalias[32]; - const void *platform_data; - const struct software_node *swnode; - void *controller_data; - int irq; - u32 max_speed_hz; - u16 bus_num; - u16 chip_select; - u32 mode; -}; +typedef void (*btf_trace_rtc_set_offset)(void *, long, int); -struct boardinfo { - struct list_head list; - struct spi_board_info board_info; +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_spi_controller { +struct trace_event_raw_rtc_time_alarm_class { struct trace_entry ent; - int bus_num; + time64_t secs; + int err; char __data[0]; }; -struct trace_event_raw_spi_setup { +struct trace_event_raw_rtc_irq_set_freq { struct trace_entry ent; - int bus_num; - int chip_select; - unsigned long mode; - unsigned int bits_per_word; - unsigned int max_speed_hz; - int status; + int freq; + int err; char __data[0]; }; -struct trace_event_raw_spi_set_cs { +struct trace_event_raw_rtc_irq_set_state { struct trace_entry ent; - int bus_num; - int chip_select; - unsigned long mode; - bool enable; + int enabled; + int err; char __data[0]; }; -struct trace_event_raw_spi_message { +struct trace_event_raw_rtc_alarm_irq_enable { struct trace_entry ent; - int bus_num; - int chip_select; - struct spi_message *msg; + unsigned int enabled; + int err; char __data[0]; }; -struct trace_event_raw_spi_message_done { +struct trace_event_raw_rtc_offset_class { struct trace_entry ent; - int bus_num; - int chip_select; - struct spi_message *msg; - unsigned int frame; - unsigned int actual; + long offset; + int err; char __data[0]; }; -struct trace_event_raw_spi_transfer { +struct trace_event_raw_rtc_timer_class { struct trace_entry ent; - int bus_num; - int chip_select; - struct spi_transfer *xfer; - int len; - u32 __data_loc_rx_buf; - u32 __data_loc_tx_buf; + struct rtc_timer *timer; + ktime_t expires; + ktime_t period; char __data[0]; }; -typedef void (*spi_res_release_t)(struct spi_controller *, struct spi_message *, void *); - -struct spi_res { - struct list_head entry; - spi_res_release_t release; - unsigned long long data[0]; -}; - -struct trace_event_data_offsets_spi_transfer { - u32 rx_buf; - u32 tx_buf; -}; - -struct spi_replaced_transfers; - -typedef void (*spi_replaced_release_t)(struct spi_controller *, struct spi_message *, struct spi_replaced_transfers *); - -struct spi_replaced_transfers { - spi_replaced_release_t release; - void *extradata; - struct list_head replaced_transfers; - struct list_head *replaced_after; - size_t inserted; - struct spi_transfer inserted_transfers[0]; -}; - -struct trace_event_data_offsets_spi_controller {}; +struct trace_event_data_offsets_rtc_time_alarm_class {}; -struct trace_event_data_offsets_spi_setup {}; +struct trace_event_data_offsets_rtc_irq_set_freq {}; -struct trace_event_data_offsets_spi_set_cs {}; +struct trace_event_data_offsets_rtc_irq_set_state {}; -struct trace_event_data_offsets_spi_message {}; +struct trace_event_data_offsets_rtc_alarm_irq_enable {}; -struct trace_event_data_offsets_spi_message_done {}; +struct trace_event_data_offsets_rtc_offset_class {}; -struct acpi_spi_lookup { - struct spi_controller *ctlr; - u32 max_speed_hz; - u32 mode; - int irq; - u8 bits_per_word; - u8 chip_select; - int n; - int index; -}; +struct trace_event_data_offsets_rtc_timer_class {}; -struct ep_device { - struct usb_endpoint_descriptor *desc; - struct usb_device *udev; - struct device dev; +struct cpufreq_stats { + unsigned int total_trans; + unsigned long long last_time; + unsigned int max_state; + unsigned int state_num; + unsigned int last_index; + u64 *time_in_state; + unsigned int *freq_table; + unsigned int *trans_table; + unsigned int reset_pending; + unsigned long long reset_time; }; -struct usb_ohci_pdata { - unsigned int big_endian_desc: 1; - unsigned int big_endian_mmio: 1; - unsigned int no_big_frame_no: 1; - unsigned int num_ports; - int (*power_on)(struct platform_device *); - void (*power_off)(struct platform_device *); - void (*power_suspend)(struct platform_device *); +struct mmc_clk_phase { + bool valid; + u16 in_deg; + u16 out_deg; }; -struct ohci_platform_priv { - struct clk *clks[4]; - struct reset_control *resets; +struct mmc_clk_phase_map { + struct mmc_clk_phase phase[11]; }; -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; +struct renesas_sdhi_of_data_with_quirks { + const struct renesas_sdhi_of_data *of_data; + const struct renesas_sdhi_quirks *quirks; }; -enum synaptics_pkt_type { - SYN_NEWABS = 0, - SYN_NEWABS_STRICT = 1, - SYN_NEWABS_RELAXED = 2, - SYN_OLDABS = 3, +enum renesas_sdhi_dma_cookie { + COOKIE_UNMAPPED___3 = 0, + COOKIE_PRE_MAPPED___3 = 1, + COOKIE_MAPPED___3 = 2, }; -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 efi_system_resource_table { + u32 fw_resource_count; + u32 fw_resource_count_max; + u64 fw_resource_version; + u8 entries[0]; }; -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 esre_entry; -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; +struct esre_attribute { + struct attribute attr; + ssize_t (*show)(struct esre_entry *, char *); + ssize_t (*store)(struct esre_entry *, const char *, size_t); }; -struct sdio_device_id; +struct efi_system_resource_entry_v1; -struct sdio_driver { - char *name; - const struct sdio_device_id *id_table; - int (*probe)(struct sdio_func *, const struct sdio_device_id *); - void (*remove)(struct sdio_func *); - struct device_driver drv; +struct esre_entry { + union { + struct efi_system_resource_entry_v1 *esre1; + } esre; + struct kobject kobj; + struct list_head list; }; -struct sdio_device_id { - __u8 class; - __u16 vendor; - __u16 device; - kernel_ulong_t driver_data; +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 hid_usage_entry { @@ -97877,6912 +104166,8273 @@ struct hid_debug_list { struct mutex read_mutex; }; -struct netdev_queue_attribute { - struct attribute attr; - ssize_t (*show)(struct netdev_queue *, char *); - ssize_t (*store)(struct netdev_queue *, const char *, size_t); +struct bpf_xdp_link { + struct bpf_link link; + struct net_device *dev; + int flags; }; -struct strset_info { - bool per_dev; - bool free_strings; - unsigned int count; - const char (*strings)[32]; +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 { - 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 tcx_action_base { + TCX_NEXT = -1, + TCX_PASS = 0, + TCX_DROP = 2, + TCX_REDIRECT = 7, }; -enum { - ETHTOOL_A_STRINGSETS_UNSPEC = 0, - ETHTOOL_A_STRINGSETS_STRINGSET = 1, - __ETHTOOL_A_STRINGSETS_CNT = 2, - ETHTOOL_A_STRINGSETS_MAX = 1, +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; }; -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, +struct dev_kfree_skb_cb { + enum skb_drop_reason reason; }; -enum { - ETHTOOL_A_STRINGS_UNSPEC = 0, - ETHTOOL_A_STRINGS_STRING = 1, - __ETHTOOL_A_STRINGS_CNT = 2, - ETHTOOL_A_STRINGS_MAX = 1, +struct tcx_entry { + struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) *miniq; + struct bpf_mprog_bundle bundle; + bool miniq_active; + struct callback_head rcu; }; -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 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 netdev_nested_priv { + unsigned char flags; + void *data; +}; + +struct netdev_notifier_offload_xstats_rd; + +struct netdev_notifier_offload_xstats_ru; + +struct netdev_notifier_offload_xstats_info { + struct netdev_notifier_info info; + enum netdev_offload_xstats_type type; + union { + struct netdev_notifier_offload_xstats_rd *report_delta; + struct netdev_notifier_offload_xstats_ru *report_used; + }; +}; + +struct netdev_notifier_offload_xstats_rd { + struct rtnl_hw_stats64 stats; + bool used; }; -struct strset_req_info { - struct ethnl_req_info base; - u32 req_ids; - bool counts_only; +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; }; -struct strset_reply_data { - struct ethnl_reply_data base; - struct strset_info sets[21]; +typedef struct ifbond ifbond; + +struct netdev_bonding_info { + ifslave slave; + ifbond master; }; -struct uncached_list { - spinlock_t lock; - struct list_head head; - struct list_head quarantine; +struct netdev_notifier_bonding_info { + struct netdev_notifier_info info; + struct netdev_bonding_info bonding_info; }; -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 netdev_notifier_changelowerstate_info { + struct netdev_notifier_info info; + void *lower_state_info; }; -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 netdev_notifier_pre_changeaddr_info { + struct netdev_notifier_info info; + const unsigned char *dev_addr; }; -typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *); +struct dpll_pin; -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 { + 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 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 phc_vclocks_reply_data { + struct ethnl_reply_data base; + int num; + int *index; }; -struct rt6_exception { - struct hlist_node hlist; - struct rt6_info *rt6i; - unsigned long stamp; - struct callback_head rcu; +enum tcp_ca_ack_event_flags { + CA_ACK_SLOWPATH = 1, + CA_ACK_WIN_UPDATE = 2, + CA_ACK_ECE = 4, }; -struct ip6rd_flowi { - struct flowi6 fl6; - struct in6_addr gateway; +struct tcp_sack_block_wire { + __be32 start_seq; + __be32 end_seq; }; -struct arg_dev_net_ip { - struct net_device *dev; - struct net *net; - struct in6_addr *addr; +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 rt6_mtu_change_arg { - struct net_device *dev; - unsigned int mtu; - struct fib6_info *f6i; +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 rt6_nh { - struct fib6_info *fib6_info; - struct fib6_config r_cfg; - struct list_head next; +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; }; -typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); - -struct fib6_nh_dm_arg { - struct net *net; - const struct in6_addr *saddr; - int oif; - int flags; - struct fib6_nh *nh; +struct ipv6_mreq { + struct in6_addr ipv6mr_multiaddr; + int ipv6mr_ifindex; }; -struct fib6_nh_match_arg { - const struct net_device *dev; - const struct in6_addr *gw; - struct fib6_nh *match; +struct mld_msg { + struct icmp6hdr mld_hdr; + struct in6_addr mld_mca; }; -struct fib6_nh_del_cached_rt_arg { - struct fib6_config *cfg; - struct fib6_info *f6i; +struct rpc_filelist { + const char *name; + const struct file_operations *i_fop; + umode_t mode; }; -struct arg_netdev_event { - const struct net_device *dev; - union { - unsigned char nh_flags; - unsigned long event; - }; +enum { + RPCAUTH_info = 0, + RPCAUTH_EOF = 1, }; -struct trace_event_data_offsets_fib6_table_lookup {}; - -struct fib6_nh_age_excptn_arg { - struct fib6_gc_args *gc_args; - unsigned long now; +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 netevent_redirect { - struct dst_entry *old; - struct dst_entry *new; - struct neighbour *neigh; - const void *daddr; +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 fib6_nh_exception_dump_walker { - struct rt6_rtnl_dump_arg *dump; - struct fib6_info *rt; - unsigned int flags; - unsigned int skip; - unsigned int count; -}; +typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int); -struct fib6_nh_frl_arg { - u32 flags; - int oif; - int strict; - int *mpri; - bool *do_rr; - struct fib6_nh *nh; -}; +typedef void (*btf_trace_contention_end)(void *, void *, int); -struct fib6_nh_rd_arg { - struct fib6_result *res; - struct flowi6 *fl6; - const struct in6_addr *gw; - struct rt6_info **ret; +struct trace_event_raw_contention_begin { + struct trace_entry ent; + void *lock_addr; + unsigned int flags; + char __data[0]; }; -struct fib6_nh_excptn_arg { - struct rt6_info *rt; - int plen; +struct trace_event_raw_contention_end { + struct trace_entry ent; + void *lock_addr; + int ret; + char __data[0]; }; -typedef struct rpc_xprt * (*xprt_switch_find_xprt_t)(struct rpc_xprt_switch *, const struct rpc_xprt *); +struct trace_event_data_offsets_contention_begin {}; -enum dl_bw_request { - dl_bw_req_check_overflow = 0, - dl_bw_req_alloc = 1, - dl_bw_req_free = 2, +struct trace_event_data_offsets_contention_end {}; + +struct kallsym_iter { + loff_t pos; + loff_t pos_mod_end; + loff_t pos_ftrace_mod_end; + loff_t pos_bpf_end; + unsigned long value; + unsigned int nameoff; + char type; + char name[512]; + char module_name[56]; + int exported; + int show_value; }; -struct idle_timer { - struct hrtimer timer; - int done; +struct bpf_iter__ksym { + union { + struct bpf_iter_meta *meta; + }; + union { + struct kallsym_iter *ksym; + }; }; -typedef struct task_group *rt_rq_iter_t; +typedef void (*btf_trace_bpf_trace_printk)(void *, const char *); -struct rt_schedulable_data { - struct task_group *tg; - u64 rt_period; - u64 rt_runtime; +struct bpf_nested_pt_regs { + struct pt_regs regs[3]; }; -struct ustring_buffer { - char buffer[1024]; +struct bpf_trace_sample_data { + struct perf_sample_data sds[3]; }; -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, +struct send_signal_irq_work { + struct irq_work irq_work; + struct task_struct *task; + u32 sig; + enum pid_type type; }; -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, +struct bpf_raw_tp_regs { + struct pt_regs regs[3]; }; enum { - TOO_MANY_CLOSE = -1, - TOO_MANY_OPEN = -2, - MISSING_QUOTE = -3, + BPF_F_KPROBE_MULTI_RETURN = 1, }; 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, + BPF_F_UPROBE_MULTI_RETURN = 1, }; enum { - INVERT = 1, - PROCESS_AND = 2, - PROCESS_OR = 4, + BPF_F_GET_BRANCH_RECORDS_SIZE = 1, }; -struct regex; +typedef u64 (*btf_bpf_override_return)(struct pt_regs *, unsigned long); -typedef int (*regex_match_func)(char *, struct regex *, int); +typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); -struct regex { - char pattern[256]; - int len; - int field_len; - regex_match_func match; -}; +typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); -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; -}; +typedef u64 (*btf_bpf_probe_read_kernel)(void *, u32, const void *); -struct filter_list { - struct list_head list; - struct event_filter *filter; -}; +typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *); -struct filter_parse_error { - int lasterr; - int lasterr_pos; -}; +typedef u64 (*btf_bpf_probe_read_compat)(void *, u32, const void *); -struct function_filter_data { - struct ftrace_ops *ops; - int first_filter; - int first_notrace; -}; +typedef u64 (*btf_bpf_probe_read_compat_str)(void *, u32, const void *); -typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **); +typedef u64 (*btf_bpf_probe_write_user)(void __attribute__((btf_type_tag("user"))) *, const void *, u32); -typedef void compound_page_dtor(struct page *); +typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64); -typedef int fpi_t; +typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32); -enum { - BLOCK_BITMAP = 0, - INODE_BITMAP = 1, - INODE_TABLE = 2, - GROUP_TABLE_COUNT = 3, -}; +typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32); -struct ext4_rcu_ptr { - struct callback_head rcu; +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; }; -struct ext4_new_flex_group_data { - struct ext4_new_group_data *groups; - __u16 *bg_flags; - ext4_group_t count; +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; }; -struct nfs4_filelayout { - struct pnfs_layout_hdr generic_hdr; - struct pnfs_ds_commit_info commit_info; +typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_get_current_task)(); + +typedef u64 (*btf_bpf_get_current_task_btf)(); + +typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *); + +typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32); + +typedef u64 (*btf_bpf_send_signal)(u32); + +typedef u64 (*btf_bpf_send_signal_thread)(u32); + +typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32); + +typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64); + +typedef u64 (*btf_bpf_get_func_ip_tracing)(void *); + +typedef u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_func_ip_kprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_func_ip_uprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_attach_cookie_uprobe_multi)(struct pt_regs *); + +typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *); + +typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *); + +typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *); + +typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64); + +typedef u64 (*btf_get_func_arg)(void *, u32, u64 *); + +typedef u64 (*btf_get_func_ret)(void *, u64 *); + +typedef u64 (*btf_get_func_arg_cnt)(void *); + +typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64); + +typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32); + +typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64); + +typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64); + +typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64); + +struct trace_event_raw_bpf_trace_printk { + struct trace_entry ent; + u32 __data_loc_bpf_string; + char __data[0]; }; -struct crypto_comp { - struct crypto_tfm base; +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 chksum_ctx { - u32 key; +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; + u32 flags; }; -struct chksum_desc_ctx { - u32 crc; +struct bpf_uprobe; + +struct bpf_uprobe_multi_run_ctx { + struct bpf_run_ctx run_ctx; + unsigned long entry_ip; + struct bpf_uprobe *uprobe; }; -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 bpf_uprobe_multi_link; + +struct bpf_uprobe { + struct bpf_uprobe_multi_link *link; + loff_t offset; + u64 cookie; + struct uprobe_consumer consumer; }; -struct io_shutdown { - struct file *file; - int how; +struct bpf_uprobe_multi_link { + struct path path; + struct bpf_link link; + u32 cnt; + struct bpf_uprobe *uprobes; + struct task_struct *task; }; -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; - void __attribute__((btf_type_tag("user"))) *msg_control; - struct io_kiocb *notif; +struct bpf_trace_module { + struct module *module; + struct list_head list; }; -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 trace_event_data_offsets_bpf_trace_printk { + u32 bpf_string; }; -struct io_socket { - struct file *file; - int domain; - int type; - int protocol; - int flags; - u32 file_slot; - unsigned long nofile; +struct user_syms { + const char **syms; + char *buf; }; -struct io_connect { - struct file *file; - struct sockaddr __attribute__((btf_type_tag("user"))) *addr; - int addr_len; - bool in_progress; - bool seen_econnaborted; +struct modules_array { + struct module **mods; + int mods_cnt; + int mods_cap; }; -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 bpf_key { + struct key *key; + bool has_ref; }; -struct io_uring_recvmsg_out { - __u32 namelen; - __u32 controllen; - __u32 payloadlen; - __u32 flags; +struct perf_event_query_bpf { + __u32 ids_len; + __u32 prog_cnt; + __u32 ids[0]; }; -struct io_recvmsg_multishot_hdr { - struct io_uring_recvmsg_out msg; - struct __kernel_sockaddr_storage addr; +struct multi_symbols_sort { + const char **funcs; + u64 *cookies; }; -struct io_async_connect { - struct __kernel_sockaddr_storage address; +struct static_key_deferred { + struct static_key key; + unsigned long timeout; + struct delayed_work work; }; -struct acpi_power_resource; +struct static_key_mod { + struct static_key_mod *next; + struct jump_entry *entries; + struct module *mod; +}; -struct acpi_power_resource_entry { - struct list_head node; - struct acpi_power_resource *resource; +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 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 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 acpi_power_dependent_device { - struct device *dev; - struct list_head node; +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 acpi_offsets { - size_t offset; - u8 mode; +struct trace_event_raw_mm_lru_activate { + struct trace_entry ent; + struct folio *folio; + unsigned long pfn; + char __data[0]; }; -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, +struct trace_event_data_offsets_mm_lru_insertion {}; + +struct trace_event_data_offsets_mm_lru_activate {}; + +typedef void (*move_fn_t)(struct lruvec *, struct folio *); + +struct stat { + unsigned long st_dev; + unsigned long st_ino; + unsigned int st_mode; + unsigned int st_nlink; + unsigned int st_uid; + unsigned int st_gid; + unsigned long st_rdev; + unsigned long __pad1; + long st_size; + int st_blksize; + int __pad2; + long st_blocks; + long st_atime; + unsigned long st_atime_nsec; + long st_mtime; + unsigned long st_mtime_nsec; + long st_ctime; + unsigned long st_ctime_nsec; + unsigned int __unused4; + unsigned int __unused5; }; -enum dmi_entry_type { - DMI_ENTRY_BIOS = 0, - DMI_ENTRY_SYSTEM = 1, - DMI_ENTRY_BASEBOARD = 2, - DMI_ENTRY_CHASSIS = 3, - DMI_ENTRY_PROCESSOR = 4, - DMI_ENTRY_MEM_CONTROLLER = 5, - DMI_ENTRY_MEM_MODULE = 6, - DMI_ENTRY_CACHE = 7, - DMI_ENTRY_PORT_CONNECTOR = 8, - DMI_ENTRY_SYSTEM_SLOT = 9, - DMI_ENTRY_ONBOARD_DEVICE = 10, - DMI_ENTRY_OEMSTRINGS = 11, - DMI_ENTRY_SYSCONF = 12, - DMI_ENTRY_BIOS_LANG = 13, - DMI_ENTRY_GROUP_ASSOC = 14, - DMI_ENTRY_SYSTEM_EVENT_LOG = 15, - DMI_ENTRY_PHYS_MEM_ARRAY = 16, - DMI_ENTRY_MEM_DEVICE = 17, - DMI_ENTRY_32_MEM_ERROR = 18, - DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19, - DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20, - DMI_ENTRY_BUILTIN_POINTING_DEV = 21, - DMI_ENTRY_PORTABLE_BATTERY = 22, - DMI_ENTRY_SYSTEM_RESET = 23, - DMI_ENTRY_HW_SECURITY = 24, - DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25, - DMI_ENTRY_VOLTAGE_PROBE = 26, - DMI_ENTRY_COOLING_DEV = 27, - DMI_ENTRY_TEMP_PROBE = 28, - DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29, - DMI_ENTRY_OOB_REMOTE_ACCESS = 30, - DMI_ENTRY_BIS_ENTRY = 31, - DMI_ENTRY_SYSTEM_BOOT = 32, - DMI_ENTRY_MGMT_DEV = 33, - DMI_ENTRY_MGMT_DEV_COMPONENT = 34, - DMI_ENTRY_MGMT_DEV_THRES = 35, - DMI_ENTRY_MEM_CHANNEL = 36, - DMI_ENTRY_IPMI_DEV = 37, - DMI_ENTRY_SYS_POWER_SUPPLY = 38, - DMI_ENTRY_ADDITIONAL = 39, - DMI_ENTRY_ONBOARD_DEV_EXT = 40, - DMI_ENTRY_MGMT_CONTROLLER_HOST = 41, - DMI_ENTRY_INACTIVE = 126, - DMI_ENTRY_END_OF_TABLE = 127, +struct 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]; }; -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, +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]; }; -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, +typedef int __kernel_daddr_t; + +struct ustat { + __kernel_daddr_t f_tfree; + unsigned long f_tinode; + char f_fname[6]; + char f_fpack[6]; }; -struct 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; +typedef __kernel_fsid_t compat_fsid_t; + +struct compat_statfs { + compat_int_t f_type; + compat_int_t f_bsize; + compat_int_t f_blocks; + compat_int_t f_bfree; + compat_int_t f_bavail; + compat_int_t f_files; + compat_int_t f_ffree; + compat_fsid_t f_fsid; + compat_int_t f_namelen; + compat_int_t f_frsize; + compat_int_t f_flags; + compat_int_t f_spare[4]; }; -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; +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]; }; -struct fixed_dev_type { - bool has_enable_clock; - bool has_performance_state; +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]; }; -struct fixed_voltage_data { - struct regulator_desc desc; - struct regulator_dev *dev; - struct clk *enable_clock; - unsigned int enable_counter; - int performance_state; +struct dnotify_struct; + +struct dnotify_mark { + struct fsnotify_mark fsn_mark; + struct dnotify_struct *dn; }; -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, +struct dnotify_struct { + struct dnotify_struct *dn_next; + __u32 dn_mask; + int dn_fd; + struct file *dn_filp; + fl_owner_t dn_owner; }; -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, +struct ext4_system_zone { + struct rb_node node; + ext4_fsblk_t start_blk; + unsigned int count; + u32 ino; }; -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, +struct jbd2_revoke_table_s { + int hash_size; + int hash_shift; + struct list_head *hash_table; }; -enum mipi_dsi_dcs_tear_mode { - MIPI_DSI_DCS_TEAR_MODE_VBLANK = 0, - MIPI_DSI_DCS_TEAR_MODE_VHBLANK = 1, +struct jbd2_revoke_record_s { + struct list_head hash; + tid_t sequence; + unsigned long long blocknr; }; -struct mipi_dsi_host; +struct jbd2_journal_revoke_header_s { + journal_header_t r_header; + __be32 r_count; +}; -struct drm_dsc_config; +typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t; -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 nfs_createdata { + struct nfs_createargs arg; + struct nfs_diropok res; + struct nfs_fh fhandle; + struct nfs_fattr fattr; }; -struct mipi_dsi_host_ops; - -struct mipi_dsi_host { - struct device *dev; - const struct mipi_dsi_host_ops *ops; +struct nfs4_ds_server { struct list_head list; + struct rpc_clnt *rpc_clnt; }; -struct mipi_dsi_msg; +struct nfs4_op_map { + union { + unsigned long longs[2]; + u32 words[4]; + } u; +}; -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 nfs41_state_protection { + u32 how; + struct nfs4_op_map enforce; + struct nfs4_op_map allow; +}; + +struct nfs41_exchange_id_res { + u64 clientid; + u32 seqid; + u32 flags; + struct nfs41_server_owner *server_owner; + struct nfs41_server_scope *server_scope; + struct nfs41_impl_id *impl_id; + struct nfs41_state_protection state_protect; }; -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 tracefs_dir_ops { + int (*mkdir)(const char *); + int (*rmdir)(const char *); }; -struct drm_dsc_rc_range_parameters { - u8 range_min_qp; - u8 range_max_qp; - u8 range_bpg_offset; +struct tracefs_mount_opts { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; }; -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 tracefs_fs_info { + struct tracefs_mount_opts mount_opts; }; -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 cred_label { + const struct cred *cred; + struct aa_label *label; }; -struct mipi_dsi_device_info { - char type[20]; - u32 channel; - struct device_node *node; +struct blk_ia_range_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_independent_access_range *, char *); }; -struct mipi_dsi_packet { - size_t size; - u8 header[4]; - size_t payload_length; - const u8 *payload; +struct io_rename { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; }; -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 ata_eh_cmd_timeout_ent { - const u8 *commands; - const unsigned int *timeouts; +struct io_unlink { + struct file *file; + int dfd; + int flags; + struct filename *filename; }; -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 io_mkdir { + struct file *file; + int dfd; + umode_t mode; + struct filename *filename; }; -struct speed_down_verdict_arg { - u64 since; - int xfer_ok; - int nr_errors[8]; +struct io_link { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; }; -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 io_rsrc_update { + struct file *file; + u64 arg; + u32 nr_args; + u32 offset; }; -struct usb_otg_caps { - u16 otg_rev; - bool hnp_support; - bool srp_support; - bool adp_support; +struct io_uring_rsrc_update2 { + __u32 offset; + __u32 resv; + __u64 data; + __u64 tags; + __u32 nr; + __u32 resv2; }; -struct class_info { - int class; - char *class_name; +struct io_uring_rsrc_register { + __u32 nr; + __u32 flags; + __u64 resv2; + __u64 data; + __u64 tags; }; -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; +enum of_gpio_flags { + OF_GPIO_ACTIVE_LOW = 1, + OF_GPIO_SINGLE_ENDED = 2, + OF_GPIO_OPEN_DRAIN = 4, + OF_GPIO_TRANSITORY = 8, + OF_GPIO_PULL_UP = 16, + OF_GPIO_PULL_DOWN = 32, + OF_GPIO_PULL_DISABLE = 64, }; -struct cytp_contact { - int x; - int y; - int z; +typedef struct gpio_desc * (*of_find_gpio_quirk)(struct device_node *, const char *, unsigned int, enum of_gpio_flags *); + +struct of_rename_gpio { + const char *con_id; + const char *legacy_id; + const char *compatible; }; -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 find_child_walk_data { + struct acpi_device *adev; + u64 address; + int score; + bool check_sta; + bool check_children; }; -struct net_device_devres { - struct net_device *ndev; +struct pnp_info_buffer { + char *buffer; + char *curr; + unsigned long size; + unsigned long len; + int stop; + int error; }; -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 struct pnp_info_buffer pnp_info_buffer_t; + +struct __prci_clock; + +struct prci_clk_desc { + struct __prci_clock *clks; + size_t num_clks; }; -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, +struct __prci_wrpll_data; + +struct __prci_data; + +struct __prci_clock { + const char *name; + const char *parent_name; + const struct clk_ops *ops; + struct clk_hw hw; + struct __prci_wrpll_data *pwd; + struct __prci_data *pd; }; -enum pedit_cmd { - TCA_PEDIT_KEY_EX_CMD_SET = 0, - TCA_PEDIT_KEY_EX_CMD_ADD = 1, - __PEDIT_CMD_MAX = 2, +struct __prci_wrpll_data { + struct wrpll_cfg c; + void (*enable_bypass)(struct __prci_data *); + void (*disable_bypass)(struct __prci_data *); + u8 cfg0_offs; + u8 cfg1_offs; }; -enum qdisc_class_ops_flags { - QDISC_CLASS_OPS_DOIT_UNLOCKED = 1, +struct __prci_data { + void *va; + struct reset_simple_data reset; + struct clk_hw_onecell_data hw_clks; }; -enum tcf_proto_ops_flags { - TCF_PROTO_OPS_DOIT_UNLOCKED = 1, +struct ports_driver_data { + struct dentry *debugfs_dir; + struct list_head portdevs; + struct list_head consoles; }; -struct tcf_block_owner_item { +struct console___2 { struct list_head list; - struct Qdisc *q; - enum flow_block_binder_type binder_type; + struct hvc_struct *hvc; + struct winsize ws; + u32 vtermno; }; -typedef void tcf_chain_head_change_t(struct tcf_proto *, void *); +struct port_stats { + unsigned long bytes_sent; + unsigned long bytes_received; + unsigned long bytes_discarded; +}; -struct tcf_filter_chain_list_item { +struct ports_device; + +struct port_buffer; + +struct port { struct list_head list; - tcf_chain_head_change_t *chain_head_change; - void *chain_head_change_priv; + 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 tc_cookie { - u8 *data; - u32 len; - struct callback_head rcu; +struct virtio_console_control { + __virtio32 id; + __virtio16 event; + __virtio16 value; }; -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 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 tc_pedit_key { - __u32 mask; - __u32 val; - __u32 off; - __u32 at; - __u32 offmask; - __u32 shift; +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 tcf_pedit_key_ex { - enum pedit_header_type htype; - enum pedit_cmd cmd; +struct sg_list { + unsigned int n; + unsigned int size; + size_t len; + struct scatterlist *sg; }; -struct tcf_t { - __u64 install; - __u64 lastuse; - __u64 expires; - __u64 firstuse; +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 tc_action_ops; +struct component_master_ops; -struct tcf_idrinfo; +struct component_match; -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; +struct aggregate_device { + struct list_head node; + bool bound; + const struct component_master_ops *ops; + struct device *parent; + struct component_match *match; }; -struct tcf_pedit { - struct tc_action common; - struct tcf_pedit_parms __attribute__((btf_type_tag("rcu"))) *parms; - long: 64; +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; }; -typedef void (*tc_action_priv_destructor)(void *); +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 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 sync_merge_data { + char name[32]; + __s32 fd2; + __s32 fence; + __u32 flags; + __u32 pad; }; -struct psample_group { - struct list_head list; - struct net *net; - u32 group_num; - u32 refcount; - u32 seq; - struct callback_head rcu; +struct sync_file_info { + char name[32]; + __s32 status; + __u32 flags; + __u32 num_fences; + __u32 pad; + __u64 sync_fence_info; }; -struct tcf_idrinfo { - struct mutex lock; - struct idr action_idr; - struct net *net; +struct sync_fence_info { + char obj_name[32]; + char driver_name[32]; + __s32 status; + __u32 flags; + __u64 timestamp_ns; }; -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 scsi_proc_entry { + struct list_head entry; + const struct scsi_host_template *sht; + struct proc_dir_entry *proc_dir; + unsigned int present; }; -struct tcf_net { - spinlock_t idr_lock; - struct idr idr; +struct ata_eh_cmd_timeout_ent { + const u8 *commands; + const unsigned int *timeouts; }; -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 { + 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 action_gate_entry { - u8 gate_state; - u32 interval; - s32 ipv; - s32 maxoctets; +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 tcf_chain_info { - struct tcf_proto __attribute__((btf_type_tag("rcu"))) **pprev; - struct tcf_proto __attribute__((btf_type_tag("rcu"))) *next; +struct speed_down_verdict_arg { + u64 since; + int xfer_ok; + int nr_errors[8]; }; -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 mdiobus_devres { + struct mii_bus *mii; }; -enum nf_ip_hook_priorities { - NF_IP_PRI_FIRST = -2147483648, - NF_IP_PRI_RAW_BEFORE_DEFRAG = -450, - NF_IP_PRI_CONNTRACK_DEFRAG = -400, - NF_IP_PRI_RAW = -300, - NF_IP_PRI_SELINUX_FIRST = -225, - NF_IP_PRI_CONNTRACK = -200, - NF_IP_PRI_MANGLE = -150, - NF_IP_PRI_NAT_DST = -100, - NF_IP_PRI_FILTER = 0, - NF_IP_PRI_SECURITY = 50, - NF_IP_PRI_NAT_SRC = 100, - NF_IP_PRI_SELINUX_LAST = 225, - NF_IP_PRI_CONNTRACK_HELPER = 300, - NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647, - NF_IP_PRI_LAST = 2147483647, +struct ich8_hsflctl { + u16 flcgo: 1; + u16 flcycle: 2; + u16 reserved: 5; + u16 fldbcount: 2; + u16 flockdn: 6; }; -struct bpf_nf_link { - struct bpf_link link; - struct nf_hook_ops hook_ops; - struct net *net; - u32 dead; +union ich8_hws_flash_ctrl { + struct ich8_hsflctl hsf_ctrl; + u16 regval; }; -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 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; }; -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, +union ich8_hws_flash_status { + struct ich8_hsfsts hsf_status; + u16 regval; }; -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, +struct ich8_pr { + u32 base: 13; + u32 reserved1: 2; + u32 rpe: 1; + u32 limit: 13; + u32 reserved2: 2; + u32 wpe: 1; }; -enum { - DAD_PROCESS = 0, - DAD_BEGIN = 1, - DAD_ABORT = 2, +union ich8_flash_protected_range { + struct ich8_pr range; + u32 regval; }; -enum cleanup_prefix_rt_t { - CLEANUP_PREFIX_RT_NOP = 0, - CLEANUP_PREFIX_RT_DEL = 1, - CLEANUP_PREFIX_RT_EXPIRE = 2, +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; }; -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, +struct sdhci_cdns_drv_data { + int (*init)(struct platform_device *); + const struct sdhci_pltfm_data pltfm_data; }; -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, +struct sdhci_cdns_phy_cfg { + const char *property; + u8 addr; }; -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, +struct sdhci_cdns_phy_param { + u8 addr; + u8 data; }; -enum { - PREFIX_UNSPEC = 0, - PREFIX_ADDRESS = 1, - PREFIX_CACHEINFO = 2, - __PREFIX_MAX = 3, +struct sdhci_cdns_priv { + void *hrs_addr; + void *ctl_addr; + spinlock_t wrlock; + bool enhanced_strobe; + void (*priv_writel)(struct sdhci_cdns_priv *, u32, void *); + struct reset_control *rst_hw; + unsigned int nr_phy_params; + struct sdhci_cdns_phy_param phy_params[0]; }; -enum addr_type_t { - UNICAST_ADDR = 0, - MULTICAST_ADDR = 1, - ANYCAST_ADDR = 2, +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; }; -union fwnet_hwaddr { - u8 u[16]; - struct { - __be64 uniq_id; - u8 max_rec; - u8 sspd; - u8 fifo[6]; - } uc; +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 ipv6_saddr_dst { - const struct in6_addr *addr; - int ifindex; - int scope; - int label; - unsigned int prefs; +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 ipv6_saddr_score { - int rule; - int addr_type; - struct inet6_ifaddr *ifa; - unsigned long scorebits[1]; - int scopedist; - int matchlen; +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 prefix_cacheinfo { - __u32 preferred_time; - __u32 valid_time; +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 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 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 in6_ifreq { - struct in6_addr ifr6_addr; - __u32 ifr6_prefixlen; - int ifr6_ifindex; +struct hid_dynid { + struct list_head list; + struct hid_device_id id; }; -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 snd_pcm_chmap_elem { + unsigned char channels; + unsigned char map[15]; +}; + +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 int (*pcm_transfer_f)(struct snd_pcm_substream *, int, unsigned long, struct iov_iter *, unsigned long); + +struct snd_ratden { + unsigned int num_min; + unsigned int num_max; + unsigned int num_step; + unsigned int den; }; -struct if6_iter_state { - struct seq_net_private p; - int bucket; - int offset; +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 inet6_fill_args { - u32 portid; - u32 seq; - int event; - unsigned int flags; - int netnsid; - int ifindex; - enum addr_type_t type; +struct snd_ratnum { + unsigned int num; + unsigned int den_min; + unsigned int den_max; + unsigned int den_step; }; -struct in6_validator_info { - struct in6_addr i6vi_addr; - struct inet6_dev *i6vi_dev; - struct netlink_ext_ack *extack; +struct snd_pcm_hw_constraint_ranges { + unsigned int count; + const struct snd_interval *ranges; + unsigned int mask; }; -struct ifla_cacheinfo { - __u32 max_reasm_len; - __u32 tstamp; - __u32 reachable_time; - __u32 retrans_time; +struct snd_pcm_hw_constraint_ratnums { + int nrats; + const struct snd_ratnum *rats; }; -struct unix_domain { - struct auth_domain h; +struct snd_pcm_hw_constraint_ratdens { + int nrats; + const struct snd_ratden *rats; }; -struct unix_gid { - struct cache_head h; - kuid_t uid; - struct group_info *gi; - struct callback_head rcu; +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, bool); + +enum txtime_flags { + SOF_TXTIME_DEADLINE_MODE = 1, + SOF_TXTIME_REPORT_ERRORS = 2, + SOF_TXTIME_FLAGS_LAST = 2, + SOF_TXTIME_FLAGS_MASK = 3, }; -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 { + 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 dns_payload_content_type { - DNS_PAYLOAD_IS_SERVER_LIST = 0, +struct linger { + int l_onoff; + int l_linger; }; -struct dns_payload_header { - __u8 zero; - __u8 content; - __u8 version; +struct sock_txtime { + __kernel_clockid_t clockid; + __u32 flags; }; -struct uevent_sock { - struct list_head list; - struct sock *sk; +struct so_timestamping { + int flags; + int bind_phc; }; enum { - Blktrace_setup = 1, - Blktrace_running = 2, - Blktrace_stopped = 3, + 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, }; -enum blktrace_notify { - __BLK_TN_PROCESS = 0, - __BLK_TN_TIMESTAMP = 1, - __BLK_TN_MESSAGE = 2, - __BLK_TN_CGROUP = 256, +struct channels_reply_data { + struct ethnl_reply_data base; + struct ethtool_channels channels; }; -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, +enum nexthop_event_type { + NEXTHOP_EVENT_DEL = 0, + NEXTHOP_EVENT_REPLACE = 1, + NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, + NEXTHOP_EVENT_BUCKET_REPLACE = 3, }; -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; +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, }; -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; +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, }; -struct blk_io_trace_remap { - __be32 device_from; - __be32 device_to; - __be64 sector_from; +enum { + NEXTHOP_GRP_TYPE_MPATH = 0, + NEXTHOP_GRP_TYPE_RES = 1, + __NEXTHOP_GRP_TYPE_MAX = 2, }; -typedef void blk_log_action_t(struct trace_iterator *, const char *, bool); - -struct static_key_deferred { - struct static_key key; - unsigned long timeout; - struct delayed_work work; +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, }; -struct static_key_mod { - struct static_key_mod *next; - struct jump_entry *entries; - struct module *mod; +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, }; -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); +struct nh_notifier_single_info; -typedef void (*btf_trace_mm_page_alloc_zone_locked)(void *, struct page *, unsigned int, int, int); +struct nh_notifier_grp_info; -typedef void (*btf_trace_mm_page_pcpu_drain)(void *, struct page *, unsigned int, int); +struct nh_notifier_res_table_info; -typedef void (*btf_trace_mm_page_alloc_extfrag)(void *, struct page *, int, int, int, int); +struct nh_notifier_res_bucket_info; -typedef void (*btf_trace_rss_stat)(void *, struct mm_struct *, int); +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 kmalloc_info_struct { - const char *name[3]; - unsigned int size; +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 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 nh_notifier_grp_entry_info { + u8 weight; + u32 id; + struct nh_notifier_single_info nh; }; -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 nh_notifier_grp_info { + u16 num_nh; + bool is_fdb; + struct nh_notifier_grp_entry_info nh_entries[0]; }; -struct trace_event_raw_kfree { - struct trace_entry ent; - unsigned long call_site; - const void *ptr; - char __data[0]; +struct nh_notifier_res_table_info { + u16 num_nh_buckets; + struct nh_notifier_single_info nhs[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 nh_notifier_res_bucket_info { + u16 bucket_index; + unsigned int idle_timer_ms; + bool force; + struct nh_notifier_single_info old_nh; + struct nh_notifier_single_info new_nh; }; -struct trace_event_raw_mm_page_free { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - char __data[0]; +struct nh_config { + u32 nh_id; + u8 nh_family; + u8 nh_protocol; + u8 nh_blackhole; + u8 nh_fdb; + u32 nh_flags; + int nh_ifindex; + struct net_device *dev; + union { + __be32 ipv4; + struct in6_addr ipv6; + } gw; + struct nlattr *nh_grp; + u16 nh_grp_type; + u16 nh_grp_res_num_buckets; + unsigned long nh_grp_res_idle_timer; + unsigned long nh_grp_res_unbalanced_timer; + bool nh_grp_res_has_num_buckets; + bool nh_grp_res_has_idle_timer; + bool nh_grp_res_has_unbalanced_timer; + struct nlattr *nh_encap; + u16 nh_encap_type; + u32 nlflags; + struct nl_info nlinfo; }; -struct trace_event_raw_mm_page_free_batched { - struct trace_entry ent; - unsigned long pfn; - char __data[0]; +struct nhmsg { + unsigned char nh_family; + unsigned char nh_scope; + unsigned char nh_protocol; + unsigned char resvd; + unsigned int nh_flags; }; -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 nexthop_grp { + __u32 id; + __u8 weight; + __u8 resvd1; + __u16 resvd2; }; -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 nh_dump_filter { + u32 nh_id; + int dev_idx; + int master_idx; + bool group_filter; + bool fdb_filter; + u32 res_bucket_nh_id; }; -struct trace_event_raw_mm_page_pcpu_drain { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - int migratetype; - char __data[0]; +struct rtm_dump_nh_ctx { + u32 idx; }; -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 rtm_dump_res_bucket_ctx { + struct rtm_dump_nh_ctx nh; + u16 bucket_index; }; -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 rtm_dump_nexthop_bucket_data { + struct rtm_dump_res_bucket_ctx *ctx; + struct nh_dump_filter filter; }; -struct trace_event_data_offsets_kmem_cache_free { - u32 name; +struct static_key_false_deferred { + struct static_key_false key; + unsigned long timeout; + struct delayed_work work; }; -struct trace_event_data_offsets_kmem_cache_alloc {}; +struct ip6fl_iter_state { + struct seq_net_private p; + struct pid_namespace *pid_ns; + int bucket; +}; -struct trace_event_data_offsets_kmalloc {}; +struct strp_msg { + int full_len; + int offset; +}; -struct trace_event_data_offsets_kfree {}; +struct _strp_msg { + struct strp_msg strp; + int accum_len; +}; -struct trace_event_data_offsets_mm_page_free {}; +struct radix_tree_preload { + local_lock_t lock; + unsigned int nr; + struct xa_node *nodes; +}; -struct trace_event_data_offsets_mm_page_free_batched {}; +enum efi_cmdline_option { + EFI_CMDLINE_NONE = 0, + EFI_CMDLINE_MODE_NUM = 1, + EFI_CMDLINE_RES = 2, + EFI_CMDLINE_AUTO = 3, + EFI_CMDLINE_LIST = 4, +}; -struct trace_event_data_offsets_mm_page_alloc {}; +typedef struct { + u32 red_mask; + u32 green_mask; + u32 blue_mask; + u32 reserved_mask; +} efi_pixel_bitmask_t; -struct trace_event_data_offsets_mm_page {}; +typedef struct { + u32 version; + u32 horizontal_resolution; + u32 vertical_resolution; + int pixel_format; + efi_pixel_bitmask_t pixel_information; + u32 pixels_per_scan_line; +} efi_graphics_output_mode_info_t; -struct trace_event_data_offsets_mm_page_pcpu_drain {}; +union efi_graphics_output_protocol; -struct trace_event_data_offsets_mm_page_alloc_extfrag {}; +typedef union efi_graphics_output_protocol efi_graphics_output_protocol_t; -struct trace_event_data_offsets_rss_stat {}; +union efi_graphics_output_protocol_mode; -struct f_owner_ex { - int type; - __kernel_pid_t pid; -}; +typedef union efi_graphics_output_protocol_mode efi_graphics_output_protocol_mode_t; -struct flock { - short l_type; - short l_whence; - __kernel_off_t l_start; - __kernel_off_t l_len; - __kernel_pid_t l_pid; +union efi_graphics_output_protocol { + struct { + efi_status_t (*query_mode)(efi_graphics_output_protocol_t *, u32, unsigned long *, efi_graphics_output_mode_info_t **); + efi_status_t (*set_mode)(efi_graphics_output_protocol_t *, u32); + void *blt; + efi_graphics_output_protocol_mode_t *mode; + }; + struct { + u32 query_mode; + u32 set_mode; + u32 blt; + u32 mode; + } mixed_mode; }; -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; +union efi_graphics_output_protocol_mode { + struct { + u32 max_mode; + u32 mode; + efi_graphics_output_mode_info_t *info; + unsigned long size_of_info; + efi_physical_addr_t frame_buffer_base; + unsigned long frame_buffer_size; + }; + struct { + u32 max_mode; + u32 mode; + u32 info; + u32 size_of_info; + u64 frame_buffer_base; + u32 frame_buffer_size; + } mixed_mode; }; -struct compat_flock { - short l_type; - short l_whence; - compat_off_t l_start; - compat_off_t l_len; - compat_pid_t l_pid; +struct tcpa_event { + u32 pcr_index; + u32 event_type; + u8 pcr_value[20]; + u32 event_size; + u8 event_data[0]; }; -struct bh_lru { - struct buffer_head *bhs[16]; +enum bug_trap_type { + BUG_TRAP_TYPE_NONE = 0, + BUG_TRAP_TYPE_WARN = 1, + BUG_TRAP_TYPE_BUG = 2, }; -struct bh_accounting { - int nr; - int ratelimit; -}; +typedef u32 bug_insn_t; -struct postprocess_bh_ctx { - struct work_struct work; - struct buffer_head *bh; -}; +typedef long (*syscall_t)(const struct pt_regs *); -enum { - EXT4_FC_STATUS_OK = 0, - EXT4_FC_STATUS_INELIGIBLE = 1, - EXT4_FC_STATUS_SKIPPED = 2, - EXT4_FC_STATUS_FAILED = 3, -}; +struct __user_cap_header_struct; -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; -}; +typedef struct __user_cap_header_struct *cap_user_header_t; -struct __track_dentry_update_args { - struct dentry *dentry; - int op; +struct __user_cap_header_struct { + __u32 version; + int pid; }; -struct __track_range_args { - ext4_lblk_t start; - ext4_lblk_t end; -}; +struct __user_cap_data_struct; -struct ext4_fc_tl { - __le16 fc_tag; - __le16 fc_len; -}; +typedef struct __user_cap_data_struct __attribute__((btf_type_tag("user"))) *cap_user_data_t; -struct ext4_fc_head { - __le32 fc_features; - __le32 fc_tid; +struct __user_cap_data_struct { + __u32 effective; + __u32 permitted; + __u32 inheritable; }; -struct ext4_fc_dentry_info { - __le32 fc_parent_ino; - __le32 fc_ino; - __u8 fc_dname[0]; +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, }; -struct ext4_fc_tail { - __le32 fc_tid; - __le32 fc_crc; +struct sys_off_handler { + struct notifier_block nb; + int (*sys_off_cb)(struct sys_off_data *); + void *cb_data; + enum sys_off_mode mode; + bool blocking; + void *list; + struct device *dev; }; -struct ext4_fc_tl_mem { - u16 fc_tag; - u16 fc_len; +struct latch_tree_ops { + bool (*less)(struct latch_tree_node *, struct latch_tree_node *); + int (*comp)(void *, struct latch_tree_node *); }; -struct ext4_fc_add_range { - __le32 fc_ino; - __u8 fc_ex[12]; +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 ext4_fc_del_range { - __le32 fc_ino; - __le32 fc_lblk; - __le32 fc_len; +struct cpu_stop_done { + atomic_t nr_todo; + int ret; + struct completion completion; }; -struct dentry_info_args { - int parent_ino; - int dname_len; - int ino; - int inode_len; - char *dname; +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 ext4_fc_inode { - __le32 fc_ino; - __u8 fc_raw_inode[0]; +struct multi_stop_data { + cpu_stop_fn_t fn; + void *data; + unsigned int num_threads; + const struct cpumask *active_cpus; + enum multi_stop_state state; + atomic_t thread_ack; }; -struct policydb_compat_info { - int version; - int sym_num; - int ocon_num; +enum { + FLAGS_FILL_FULL = 268435456, + FLAGS_FILL_START = 536870912, + FLAGS_FILL_END = 805306368, }; -struct bdev_inode { - struct block_device bdev; - struct inode vfs_inode; +struct fgraph_cpu_data { + pid_t last_pid; + int depth; + int depth_irq; + int ignore; + unsigned long enter_funcs[50]; }; -struct bd_holder_disk { - struct list_head list; - struct kobject *holder_dir; - int refcnt; +struct ftrace_graph_ent_entry { + struct trace_entry ent; + struct ftrace_graph_ent graph_ent; }; -enum of_gpio_flags { - OF_GPIO_ACTIVE_LOW = 1, - OF_GPIO_SINGLE_ENDED = 2, - OF_GPIO_OPEN_DRAIN = 4, - OF_GPIO_TRANSITORY = 8, - OF_GPIO_PULL_UP = 16, - OF_GPIO_PULL_DOWN = 32, - OF_GPIO_PULL_DISABLE = 64, +struct ftrace_graph_ret_entry { + struct trace_entry ent; + struct ftrace_graph_ret ret; }; -typedef struct gpio_desc * (*of_find_gpio_quirk)(struct device_node *, const char *, unsigned int, enum of_gpio_flags *); +struct fgraph_data { + struct fgraph_cpu_data __attribute__((btf_type_tag("percpu"))) *cpu_data; + struct ftrace_graph_ent_entry ent; + struct ftrace_graph_ret_entry ret; + int failed; + int cpu; + long: 0; +} __attribute__((packed)); -struct of_rename_gpio { - const char *con_id; - const char *legacy_id; - const char *compatible; -}; +typedef void (*btf_trace_rpm_suspend)(void *, struct device *, int); -struct pcie_link_state { - struct pci_dev *pdev; - struct pci_dev *downstream; - struct pcie_link_state *root; - struct pcie_link_state *parent; - struct list_head sibling; - u32 aspm_support: 7; - u32 aspm_enabled: 7; - u32 aspm_capable: 7; - u32 aspm_default: 7; - int: 4; - u32 aspm_disable: 7; - u32 clkpm_capable: 1; - u32 clkpm_enabled: 1; - u32 clkpm_default: 1; - u32 clkpm_disable: 1; -}; +typedef void (*btf_trace_rpm_resume)(void *, struct device *, int); -enum display_flags { - DISPLAY_FLAGS_HSYNC_LOW = 1, - DISPLAY_FLAGS_HSYNC_HIGH = 2, - DISPLAY_FLAGS_VSYNC_LOW = 4, - DISPLAY_FLAGS_VSYNC_HIGH = 8, - DISPLAY_FLAGS_DE_LOW = 16, - DISPLAY_FLAGS_DE_HIGH = 32, - DISPLAY_FLAGS_PIXDATA_POSEDGE = 64, - DISPLAY_FLAGS_PIXDATA_NEGEDGE = 128, - DISPLAY_FLAGS_INTERLACED = 256, - DISPLAY_FLAGS_DOUBLESCAN = 512, - DISPLAY_FLAGS_DOUBLECLK = 1024, - DISPLAY_FLAGS_SYNC_POSEDGE = 2048, - DISPLAY_FLAGS_SYNC_NEGEDGE = 4096, -}; +typedef void (*btf_trace_rpm_idle)(void *, struct device *, int); -struct display_timing; +typedef void (*btf_trace_rpm_usage)(void *, struct device *, int); -struct display_timings { - unsigned int num_timings; - unsigned int native_mode; - struct display_timing **timings; -}; +typedef void (*btf_trace_rpm_return_int)(void *, struct device *, unsigned long, int); -struct timing_entry { - u32 min; - u32 typ; - u32 max; +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 display_timing { - struct timing_entry pixelclock; - struct timing_entry hactive; - struct timing_entry hfront_porch; - struct timing_entry hback_porch; - struct timing_entry hsync_len; - struct timing_entry vactive; - struct timing_entry vfront_porch; - struct timing_entry vback_porch; - struct timing_entry vsync_len; - enum display_flags flags; +struct trace_event_raw_rpm_return_int { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long ip; + int ret; + char __data[0]; }; -struct videomode { - unsigned long pixelclock; - u32 hactive; - u32 hfront_porch; - u32 hback_porch; - u32 hsync_len; - u32 vactive; - u32 vfront_porch; - u32 vback_porch; - u32 vsync_len; - enum display_flags flags; +struct trace_event_data_offsets_rpm_internal { + u32 name; }; -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 trace_event_data_offsets_rpm_return_int { + u32 name; }; -struct acpi_processor_cx { - u8 valid; - u8 type; - u32 address; - u8 entry_method; - u8 index; - u32 latency; - u8 bm_sts_skip; - char desc[32]; +enum { + BPF_RINGBUF_BUSY_BIT = 2147483648, + BPF_RINGBUF_DISCARD_BIT = 1073741824, + BPF_RINGBUF_HDR_SZ = 8, }; -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]; +enum { + BPF_RB_NO_WAKEUP = 1, + BPF_RB_FORCE_WAKEUP = 2, }; -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; +enum { + BPF_RB_AVAIL_DATA = 0, + BPF_RB_RING_SIZE = 1, + BPF_RB_CONS_POS = 2, + BPF_RB_PROD_POS = 3, }; -struct acpi_pct_register { - u8 descriptor; - u16 length; - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 reserved; - u64 address; -} __attribute__((packed)); +typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64); -struct acpi_tsd_package { - u64 num_entries; - u64 revision; - u64 domain; - u64 coord_type; - u64 num_processors; -}; +typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64); -struct acpi_processor_tx { - u16 power; - u16 performance; -}; +typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64); -struct acpi_processor_tx_tss; +typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); -struct acpi_processor; +typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); -struct acpi_processor_throttling { - unsigned int state; - unsigned int platform_limit; - struct acpi_pct_register control_register; - struct acpi_pct_register status_register; - unsigned int state_count; - struct acpi_processor_tx_tss *states_tss; - struct acpi_tsd_package domain_info; - cpumask_var_t shared_cpu_map; - int (*acpi_processor_get_throttling)(struct acpi_processor *); - int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool); - u32 address; - u8 duty_offset; - u8 duty_width; - u8 tsd_valid_flag; - unsigned int shared_type; - struct acpi_processor_tx states[16]; -}; +typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); -struct acpi_processor_lx { - int px; - int tx; -}; +typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64); -struct acpi_processor_limit { - struct acpi_processor_lx state; - struct acpi_processor_lx thermal; - struct acpi_processor_lx user; -}; +typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64); -struct acpi_processor_performance; +typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64); -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 bpf_ringbuf { + wait_queue_head_t waitq; + struct irq_work work; + u64 mask; + struct page **pages; + int nr_pages; + long: 64; + long: 64; + long: 64; + long: 64; + spinlock_t spinlock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_t busy; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + 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 acpi_psd_package { - u64 num_entries; - u64 revision; - u64 domain; - u64 coord_type; - u64 num_processors; +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 acpi_processor_px; - -struct acpi_processor_performance { - unsigned int state; - unsigned int platform_limit; - struct acpi_pct_register control_register; - struct acpi_pct_register status_register; - unsigned int state_count; - struct acpi_processor_px *states; - struct acpi_psd_package domain_info; - cpumask_var_t shared_cpu_map; - unsigned int shared_type; +struct bpf_ringbuf_hdr { + u32 len; + u32 pg_off; }; -struct acpi_processor_px { - u64 core_frequency; - u64 power; - u64 transition_latency; - u64 bus_master_latency; - u64 control; - u64 status; +struct tcx_link { + struct bpf_link link; + struct net_device *dev; + u32 location; }; -struct acpi_processor_tx_tss { - u64 freqpercentage; - u64 power; - u64 transition_latency; - u64 control; - u64 status; +struct memblock { + bool bottom_up; + phys_addr_t current_limit; + struct memblock_type memory; + struct memblock_type reserved; }; -struct acpi_processor_errata { - u8 smp; - struct { - u8 throttle: 1; - u8 fdma: 1; - u8 reserved: 6; - u32 bmisx; - } piix4; +enum vmpressure_levels { + VMPRESSURE_LOW = 0, + VMPRESSURE_MEDIUM = 1, + VMPRESSURE_CRITICAL = 2, + VMPRESSURE_NUM_LEVELS = 3, }; -struct clk_mux { - struct clk_hw hw; - void *reg; - const u32 *table; - u32 mask; - u8 shift; - u8 flags; - spinlock_t *lock; +enum vmpressure_modes { + VMPRESSURE_NO_PASSTHROUGH = 0, + VMPRESSURE_HIERARCHY = 1, + VMPRESSURE_LOCAL = 2, + VMPRESSURE_NUM_MODES = 3, }; -struct sunxi_sram_func; - -struct sunxi_sram_data { - char *name; - u8 reg; - u8 offset; - u8 width; - struct sunxi_sram_func *func; - struct list_head list; +struct vmpressure_event { + struct eventfd_ctx *efd; + enum vmpressure_levels level; + enum vmpressure_modes mode; + struct list_head node; }; -struct sunxi_sram_desc { - struct sunxi_sram_data data; - bool claimed; +struct char_device_struct { + struct char_device_struct *next; + unsigned int major; + unsigned int baseminor; + int minorct; + char name[64]; + struct cdev *cdev; }; -struct sunxi_sram_func { - char *func; - u8 val; - u32 reg_val; +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 sunxi_sramc_variant { - int num_emac_clocks; - bool has_ldo_ctrl; +struct recovery_info { + tid_t start_transaction; + tid_t end_transaction; + unsigned long head_block; + int nr_replays; + int nr_revokes; + int nr_revoke_hits; }; -struct sifive_serial_port { - struct uart_port port; - struct device *dev; - unsigned char ier; - unsigned long baud_rate; - struct clk *clk; - struct notifier_block clk_notifier; +struct nfs4_secinfo4 { + u32 flavor; + struct rpcsec_gss_info flavor_info; }; -struct nvdimm_map { - struct nvdimm_bus *nvdimm_bus; - struct list_head list; - resource_size_t offset; - unsigned long flags; - size_t size; - union { - void *mem; - void *iomem; - }; - struct kref kref; +struct nfs4_secinfo_flavors { + unsigned int num_flavors; + struct nfs4_secinfo4 flavors[0]; }; -struct phy_fixup { +struct ext_wait_queue { + struct task_struct *task; struct list_head list; - char bus_id[64]; - u32 phy_uid; - u32 phy_uid_mask; - int (*run)(struct phy_device *); -}; - -struct quirk_entry { - u16 vid; - u16 pid; - u32 flags; -}; - -enum { - SUBMIT_STATUS_URB = 2, - ALLOC_DATA_IN_URB = 4, - SUBMIT_DATA_IN_URB = 8, - ALLOC_DATA_OUT_URB = 16, - SUBMIT_DATA_OUT_URB = 32, - ALLOC_CMD_URB = 64, - SUBMIT_CMD_URB = 128, - COMMAND_INFLIGHT = 256, - DATA_IN_URB_INFLIGHT = 512, - DATA_OUT_URB_INFLIGHT = 1024, - COMMAND_ABORTED = 2048, - IS_IN_WORK_LIST = 4096, -}; - -enum { - IU_ID_COMMAND = 1, - IU_ID_STATUS = 3, - IU_ID_RESPONSE = 4, - IU_ID_TASK_MGMT = 5, - IU_ID_READ_READY = 6, - IU_ID_WRITE_READY = 7, -}; - -enum { - RC_TMF_COMPLETE = 0, - RC_INVALID_INFO_UNIT = 2, - RC_TMF_NOT_SUPPORTED = 4, - RC_TMF_FAILED = 5, - RC_TMF_SUCCEEDED = 8, - RC_INCORRECT_LUN = 9, - RC_OVERLAPPED_TAG = 10, + struct msg_msg *msg; + int state; }; -enum { - CMD_PIPE_ID = 1, - STATUS_PIPE_ID = 2, - DATA_IN_PIPE_ID = 3, - DATA_OUT_PIPE_ID = 4, - UAS_SIMPLE_TAG = 0, - UAS_HEAD_TAG = 1, - UAS_ORDERED_TAG = 2, - UAS_ACA = 4, -}; +struct posix_msg_tree_node; -struct uas_dev_info { - struct usb_interface *intf; - struct usb_device *udev; - struct usb_anchor cmd_urbs; - struct usb_anchor sense_urbs; - struct usb_anchor data_urbs; - unsigned long flags; - int qdepth; - int resetting; - unsigned int cmd_pipe; - unsigned int status_pipe; - unsigned int data_in_pipe; - unsigned int data_out_pipe; - unsigned int use_streams: 1; - unsigned int shutdown: 1; - struct scsi_cmnd *cmnd[256]; +struct mqueue_inode_info { spinlock_t lock; - struct work_struct work; - struct work_struct scan_work; + 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 response_iu { - __u8 iu_id; - __u8 rsvd1; - __be16 tag; - __u8 add_response_info[3]; - __u8 response_code; +struct posix_msg_tree_node { + struct rb_node rb_node; + struct list_head msg_list; + int priority; }; -struct uas_cmd_info { - unsigned int state; - unsigned int uas_tag; - struct urb *cmd_urb; - struct urb *data_in_urb; - struct urb *data_out_urb; +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 sense_iu { - __u8 iu_id; - __u8 rsvd1; - __be16 tag; - __be16 status_qual; - __u8 status; - __u8 rsvd7[7]; - __be16 len; - __u8 sense[96]; +struct mqueue_fs_context { + struct ipc_namespace *ipc_ns; + bool newns; }; -struct command_iu { - __u8 iu_id; - __u8 rsvd1; - __be16 tag; - __u8 prio_attr; - __u8 rsvd5; - __u8 len; - __u8 rsvd7; - struct scsi_lun lun; - __u8 cdb[16]; +struct crypto_engine { + char name[30]; + bool idling; + bool busy; + bool running; + bool retry_support; + struct list_head list; + spinlock_t queue_lock; + struct crypto_queue queue; + struct device *dev; + bool rt; + int (*prepare_crypt_hardware)(struct crypto_engine *); + int (*unprepare_crypt_hardware)(struct crypto_engine *); + int (*do_batch_requests)(struct crypto_engine *); + struct kthread_worker *kworker; + struct kthread_work pump_requests; + void *priv_data; + struct crypto_async_request *cur_req; }; -struct iu { - __u8 iu_id; - __u8 rsvd1; - __be16 tag; +struct crypto_engine_alg { + struct crypto_alg base; + struct crypto_engine_op op; }; -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 aead_engine_alg { + struct aead_alg base; + struct crypto_engine_op op; }; -struct i2c_devinfo { - struct list_head list; - int busnum; - struct i2c_board_info board_info; +struct ahash_engine_alg { + struct ahash_alg base; + struct crypto_engine_op op; }; -struct mmc_gpio { - struct gpio_desc *ro_gpio; - struct gpio_desc *cd_gpio; - irqreturn_t (*cd_gpio_isr)(int, void *); - char *ro_label; - char *cd_label; - u32 cd_debounce_delay_ms; - int cd_irq; +struct kpp_engine_alg { + struct kpp_alg base; + struct crypto_engine_op op; }; -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; +enum { + SKCIPHER_WALK_PHYS = 1, + SKCIPHER_WALK_SLOW = 2, + SKCIPHER_WALK_COPY = 4, + SKCIPHER_WALK_DIFF = 8, + SKCIPHER_WALK_SLEEP = 16, }; -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 skcipher_walk_buffer { + struct list_head entry; + struct scatter_walk dst; + unsigned int len; + u8 *data; + u8 buffer[0]; }; -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 skcipher_instance { + void (*free)(struct skcipher_instance *); + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct skcipher_alg alg; + }; }; -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 crypto_istat_cipher { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t err_cnt; }; -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 skcipher_ctx_simple { + struct crypto_cipher *cipher; }; -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 crypto_skcipher_spawn { + struct crypto_spawn base; }; -struct hid_dynid { - struct list_head list; - struct hid_device_id id; +enum { + IOPRIO_WHO_PROCESS = 1, + IOPRIO_WHO_PGRP = 2, + IOPRIO_WHO_USER = 3, }; -struct fib_notifier_net { - struct list_head fib_notifier_ops; - struct atomic_notifier_head fib_chain; +enum { + IO_SQ_THREAD_SHOULD_STOP = 0, + IO_SQ_THREAD_SHOULD_PARK = 1, }; -struct percpu_free_defer { - struct callback_head rcu; - void __attribute__((btf_type_tag("percpu"))) *ptr; +struct once_work { + struct work_struct work; + struct static_key_true *key; + struct module *module; }; -typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *); +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 { - 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 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, }; -enum ethtool_multicast_groups { - ETHNL_MCGRP_MONITOR = 0, +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 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 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 icmp_err { - int errno; - unsigned int fatal: 1; +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 icmp_control { - enum skb_drop_reason (*handler)(struct sk_buff *); - short error; +struct lzma_len_dec { + uint16_t choice; + uint16_t choice2; + uint16_t low[128]; + uint16_t mid[128]; + uint16_t high[256]; }; -struct icmp_bxm { - struct sk_buff *skb; - int offset; - int data_len; +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 { - struct icmphdr icmph; - __be32 times[3]; - } data; - int head_len; - struct ip_options_data replyopts; + uint32_t size; + uint8_t buf[63]; + } temp; }; -struct icmp_extobj_hdr { - __be16 length; - __u8 class_num; - __u8 class_type; +struct function_desc { + const char *name; + const char * const *group_names; + int num_group_names; + void *data; }; -struct icmp_ext_hdr { - __u8 reserved1: 4; - __u8 version: 4; - __u8 reserved2; - __sum16 checksum; +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; }; -struct icmp_ext_echo_ctype3_hdr { - __be16 afi; - __u8 addrlen; - __u8 reserved; +enum pcie_reset_state { + pcie_deassert_reset = 1, + pcie_warm_reset = 2, + pcie_hot_reset = 3, }; -struct icmp_ext_echo_iio { - struct icmp_extobj_hdr extobj_hdr; - union { - char name[16]; - __be32 ifindex; - struct { - struct icmp_ext_echo_ctype3_hdr ctype3_hdr; - union { - __be32 ipv4_addr; - struct in6_addr ipv6_addr; - } ip_addr; - } addr; - } ident; +struct pci_pme_device { + struct list_head list; + struct pci_dev *dev; }; -struct bpf_iter__unix { - union { - struct bpf_iter_meta *meta; - }; - union { - struct unix_sock *unix_sk; - }; - uid_t uid; +struct pci_saved_state { + u32 config_space[16]; + struct pci_cap_saved_data cap[0]; }; -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 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 unix_stream_read_state { - int (*recv_actor)(struct sk_buff *, int, int, struct unix_stream_read_state *); - struct socket *socket; - struct msghdr *msg; - struct pipe_inode_info *pipe; - size_t size; - int flags; - unsigned int splice_flags; +struct fb_event { + struct fb_info *info; + void *data; }; -struct svc_xpt_user { +typedef u32 (*acpi_osd_handler)(void *); + +struct acpi_ioremap { struct list_head list; - void (*callback)(struct svc_xpt_user *); + void *virt; + acpi_physical_address phys; + acpi_size size; + union { + unsigned long refcount; + struct rcu_work rwork; + } track; }; -struct ptrace_sud_config { - __u64 mode; - __u64 selector; - __u64 offset; - __u64 len; +struct acpi_os_dpc { + acpi_osd_exec_callback function; + void *context; + struct work_struct work; }; -typedef void (*btf_trace_alarmtimer_suspend)(void *, ktime_t, int); - -typedef void (*btf_trace_alarmtimer_fired)(void *, struct alarm *, ktime_t); +struct acpi_hp_work { + struct work_struct work; + struct acpi_device *adev; + u32 src; +}; -typedef void (*btf_trace_alarmtimer_start)(void *, struct alarm *, ktime_t); +struct acpi_reg_walk_info { + u32 function; + u32 reg_run_count; + acpi_adr_space_type space_id; +}; -typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t); +struct acpi_pcc_info { + u8 subspace_id; + u16 length; + u8 *internal_buffer; +}; -struct alarm_base { - spinlock_t lock; - struct timerqueue_head timerqueue; - ktime_t (*get_ktime)(); - void (*get_timespec)(struct timespec64 *); - clockid_t base_clockid; +struct acpi_ffh_info { + u64 offset; + u64 length; }; -struct trace_event_raw_alarmtimer_suspend { - struct trace_entry ent; - s64 expires; - unsigned char alarm_type; - char __data[0]; +struct ccu_nkm { + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_mult_internal k; + struct ccu_div_internal m; + struct ccu_mux_internal mux; + unsigned int fixed_post_div; + struct ccu_common common; }; -struct trace_event_raw_alarm_class { - struct trace_entry ent; - void *alarm; - unsigned char alarm_type; - s64 expires; - s64 now; - char __data[0]; +struct _ccu_nkm { + unsigned long n; + unsigned long min_n; + unsigned long max_n; + unsigned long k; + unsigned long min_k; + unsigned long max_k; + unsigned long m; + unsigned long min_m; + unsigned long max_m; }; -struct trace_event_data_offsets_alarmtimer_suspend {}; +struct renesas_id { + unsigned int offset; + u32 mask; +}; -struct trace_event_data_offsets_alarm_class {}; +struct renesas_family; -struct trace_mark { - unsigned long long val; - char sym; +struct renesas_soc { + const struct renesas_family *family; + u32 id; }; -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 renesas_family { + const char name[16]; + u32 reg; }; -struct userstack_entry { - struct trace_entry ent; - unsigned int tgid; - unsigned long caller[8]; +enum { + REGULATOR_ERROR_CLEARED = 0, + REGULATOR_FAILED_RETRY = 1, + REGULATOR_ERROR_ON = 2, }; -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 regulator_irq { + struct regulator_irq_data rdata; + struct regulator_irq_desc desc; + int irq; + int retry_cnt; + struct delayed_work isr_work; }; -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 vc_selection { + struct mutex lock; + struct vc_data *cons; + char *buffer; + unsigned int buf_len; + volatile int start; + int end; }; -struct timerlat_entry { - struct trace_entry ent; - unsigned int seqnum; - int context; - u64 timer_latency; -}; +struct sci_port_params; -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 plat_sci_port; -struct mpage_data { - struct bio *bio; - sector_t last_block_in_bio; - get_block_t *get_block; +struct sci_port { + struct uart_port port; + const struct sci_port_params *params; + const struct plat_sci_port *cfg; + unsigned int sampling_rate_mask; + resource_size_t reg_size; + struct mctrl_gpios *gpios; + struct clk *clks[4]; + unsigned long clk_rates[4]; + int irqs[6]; + char *irqstr[6]; + struct dma_chan *chan_tx; + struct dma_chan *chan_rx; + struct dma_chan *chan_tx_saved; + struct dma_chan *chan_rx_saved; + dma_cookie_t cookie_tx; + dma_cookie_t cookie_rx[2]; + dma_cookie_t active_rx; + dma_addr_t tx_dma_addr; + unsigned int tx_dma_len; + struct scatterlist sg_rx[2]; + void *rx_buf[2]; + size_t buf_len_rx; + struct work_struct work_tx; + struct hrtimer rx_timer; + unsigned int rx_timeout; + unsigned int rx_frame; + int rx_trigger; + struct timer_list rx_fifo_timer; + int rx_fifo_timeout; + u16 hscif_tot; + bool has_rtscts; + bool autorts; }; -typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t); - -typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *); +struct plat_sci_reg { + u8 offset; + u8 size; +}; -typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int); +struct sci_port_params { + const struct plat_sci_reg regs[20]; + unsigned int fifosize; + unsigned int overrun_reg; + unsigned int overrun_mask; + unsigned int sampling_rate_mask; + unsigned int error_mask; + unsigned int error_clear; +}; -typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int); +struct plat_sci_port_ops; -typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *); +struct plat_sci_port { + unsigned int type; + upf_t flags; + unsigned int sampling_rate; + unsigned int scscr; + unsigned char regtype; + struct plat_sci_port_ops *ops; +}; -typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int); +struct plat_sci_port_ops { + void (*init_pins)(struct uart_port *, unsigned int); +}; -typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); +struct sci_irq_desc { + const char *desc; + irq_handler_t handler; +}; -typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, unsigned long); +enum { + SCIx_ERI_IRQ = 0, + SCIx_RXI_IRQ = 1, + SCIx_TXI_IRQ = 2, + SCIx_BRI_IRQ = 3, + SCIx_DRI_IRQ = 4, + SCIx_TEI_IRQ = 5, + SCIx_NR_IRQS = 6, + SCIx_MUX_IRQ = 6, +}; -typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); +enum { + SCIx_PROBE_REGTYPE = 0, + SCIx_SCI_REGTYPE = 1, + SCIx_IRDA_REGTYPE = 2, + SCIx_SCIFA_REGTYPE = 3, + SCIx_SCIFB_REGTYPE = 4, + SCIx_SH2_SCIF_FIFODATA_REGTYPE = 5, + SCIx_SH3_SCIF_REGTYPE = 6, + SCIx_SH4_SCIF_REGTYPE = 7, + SCIx_SH4_SCIF_BRG_REGTYPE = 8, + SCIx_SH4_SCIF_NO_SCSPTR_REGTYPE = 9, + SCIx_SH4_SCIF_FIFODATA_REGTYPE = 10, + SCIx_SH7705_SCIF_REGTYPE = 11, + SCIx_HSCIF_REGTYPE = 12, + SCIx_RZ_SCIFA_REGTYPE = 13, + SCIx_NR_REGTYPES = 14, +}; -typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int); +enum { + SCSMR = 0, + SCBRR = 1, + SCSCR = 2, + SCxSR = 3, + SCFCR = 4, + SCFDR = 5, + SCxTDR = 6, + SCxRDR = 7, + SCLSR = 8, + SCTFDR = 9, + SCRFDR = 10, + SCSPTR = 11, + HSSRR = 12, + SCPCR = 13, + SCPDR = 14, + SCDL = 15, + SCCKS = 16, + HSRTRGR = 17, + HSTTRGR = 18, + SEMR = 19, + SCIx_NR_REGS = 20, +}; -typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int); +enum SCI_CLKS { + SCI_FCK = 0, + SCI_SCK = 1, + SCI_BRG_INT = 2, + SCI_SCIF_CLK = 3, + SCI_NUM_CLKS = 4, +}; -typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); +struct builtin_fw { + char *name; + void *data; + unsigned long size; +}; -typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); +typedef void (*btf_trace_regmap_reg_write)(void *, struct regmap *, 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_regmap_reg_read)(void *, struct regmap *, unsigned int, unsigned int); -typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *); +typedef void (*btf_trace_regmap_reg_read_cache)(void *, struct regmap *, unsigned int, unsigned int); -typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, unsigned long, struct writeback_control *); +typedef void (*btf_trace_regmap_bulk_write)(void *, struct regmap *, unsigned int, const void *, int); -typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); +typedef void (*btf_trace_regmap_bulk_read)(void *, struct regmap *, unsigned int, const void *, int); -typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); +typedef void (*btf_trace_regmap_hw_read_start)(void *, struct regmap *, unsigned int, int); -typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *); +typedef void (*btf_trace_regmap_hw_read_done)(void *, struct regmap *, unsigned int, int); -typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *); +typedef void (*btf_trace_regmap_hw_write_start)(void *, struct regmap *, unsigned int, int); -typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t); +typedef void (*btf_trace_regmap_hw_write_done)(void *, struct regmap *, unsigned int, int); -typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t); +typedef void (*btf_trace_regcache_sync)(void *, struct regmap *, const char *, const char *); -typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, unsigned long long, unsigned long long); +typedef void (*btf_trace_regmap_cache_only)(void *, struct regmap *, bool); -typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); +typedef void (*btf_trace_regmap_cache_bypass)(void *, struct regmap *, bool); -typedef void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); +typedef void (*btf_trace_regmap_async_write_start)(void *, struct regmap *, unsigned int, int); -typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, unsigned long long, unsigned int); +typedef void (*btf_trace_regmap_async_io_complete)(void *, struct regmap *); -typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *); +typedef void (*btf_trace_regmap_async_complete_start)(void *, struct regmap *); -typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int, unsigned int); +typedef void (*btf_trace_regmap_async_complete_done)(void *, struct regmap *); -typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int); +typedef void (*btf_trace_regcache_drop_region)(void *, struct regmap *, unsigned int, unsigned int); -typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *); +struct trace_event_raw_regmap_reg { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int reg; + unsigned int val; + char __data[0]; +}; -typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, unsigned long long); +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]; +}; -typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, unsigned long, int); +struct trace_event_raw_regmap_block { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int reg; + int count; + char __data[0]; +}; -typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int); +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]; +}; -typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int); +struct trace_event_raw_regmap_bool { + struct trace_entry ent; + u32 __data_loc_name; + int flag; + char __data[0]; +}; -typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int); +struct trace_event_raw_regmap_async { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; +}; -typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *); +struct trace_event_raw_regcache_drop_region { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int from; + unsigned int to; + char __data[0]; +}; -typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *); +struct trace_event_data_offsets_regmap_reg { + u32 name; +}; -typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *); +struct trace_event_data_offsets_regmap_bulk { + u32 name; + u32 buf; +}; -typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); +struct trace_event_data_offsets_regmap_block { + u32 name; +}; -typedef void (*btf_trace_ext4_mballoc_free)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); +struct trace_event_data_offsets_regcache_sync { + u32 name; + u32 status; + u32 type; +}; -typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64); +struct trace_event_data_offsets_regmap_bool { + u32 name; +}; -typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); +struct trace_event_data_offsets_regmap_async { + u32 name; +}; -typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *); +struct trace_event_data_offsets_regcache_drop_region { + u32 name; +}; -typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); +struct regmap_field { + struct regmap *regmap; + unsigned int mask; + unsigned int shift; + unsigned int reg; + unsigned int id_size; + unsigned int id_offset; +}; -typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, unsigned long); +struct reg_field { + unsigned int reg; + unsigned int lsb; + unsigned int msb; + unsigned int id_size; + unsigned int id_offset; +}; -typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, unsigned long); +typedef void (*btf_trace_spi_controller_idle)(void *, struct spi_controller *); -typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, unsigned long); +typedef void (*btf_trace_spi_controller_busy)(void *, struct spi_controller *); -typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, unsigned long, bool); +typedef void (*btf_trace_spi_setup)(void *, struct spi_device *, int); -typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int); +typedef void (*btf_trace_spi_set_cs)(void *, struct spi_device *, bool); -typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int); +typedef void (*btf_trace_spi_message_submit)(void *, struct spi_message *); -typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int); +typedef void (*btf_trace_spi_message_start)(void *, struct spi_message *); -typedef void (*btf_trace_ext4_fallocate_exit)(void *, struct inode *, loff_t, unsigned int, int); +typedef void (*btf_trace_spi_message_done)(void *, struct spi_message *); -typedef void (*btf_trace_ext4_unlink_enter)(void *, struct inode *, struct dentry *); +typedef void (*btf_trace_spi_transfer_start)(void *, struct spi_message *, struct spi_transfer *); -typedef void (*btf_trace_ext4_unlink_exit)(void *, struct dentry *, int); +typedef void (*btf_trace_spi_transfer_stop)(void *, struct spi_message *, struct spi_transfer *); -typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *); +struct spi_board_info { + char modalias[32]; + const void *platform_data; + const struct software_node *swnode; + void *controller_data; + int irq; + u32 max_speed_hz; + u16 bus_num; + u16 chip_select; + u32 mode; +}; -typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *); +struct boardinfo { + struct list_head list; + struct spi_board_info board_info; +}; -typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *); +struct trace_event_raw_spi_controller { + struct trace_entry ent; + int bus_num; + char __data[0]; +}; -typedef void (*btf_trace_ext4_ext_convert_to_initialized_fastpath)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *, struct ext4_extent *); +struct trace_event_raw_spi_setup { + struct trace_entry ent; + int bus_num; + int chip_select; + unsigned long mode; + unsigned int bits_per_word; + unsigned int max_speed_hz; + int status; + char __data[0]; +}; -typedef void (*btf_trace_ext4_ext_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); +struct trace_event_raw_spi_set_cs { + struct trace_entry ent; + int bus_num; + int chip_select; + unsigned long mode; + bool enable; + char __data[0]; +}; -typedef void (*btf_trace_ext4_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); +struct trace_event_raw_spi_message { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_message *msg; + char __data[0]; +}; -typedef void (*btf_trace_ext4_ext_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); +struct trace_event_raw_spi_message_done { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_message *msg; + unsigned int frame; + unsigned int actual; + char __data[0]; +}; -typedef void (*btf_trace_ext4_ind_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); +struct trace_event_raw_spi_transfer { + struct trace_entry ent; + int bus_num; + int chip_select; + struct spi_transfer *xfer; + int len; + u32 __data_loc_rx_buf; + u32 __data_loc_tx_buf; + char __data[0]; +}; -typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t); +typedef void (*spi_res_release_t)(struct spi_controller *, struct spi_message *, void *); -typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, unsigned long); +struct spi_res { + struct list_head entry; + spi_res_release_t release; + unsigned long long data[0]; +}; -typedef void (*btf_trace_ext4_journal_start_sb)(void *, struct super_block *, int, int, int, int, unsigned long); +struct trace_event_data_offsets_spi_transfer { + u32 rx_buf; + u32 tx_buf; +}; -typedef void (*btf_trace_ext4_journal_start_inode)(void *, struct inode *, int, int, int, int, unsigned long); +struct spi_replaced_transfers; -typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, unsigned long); +typedef void (*spi_replaced_release_t)(struct spi_controller *, struct spi_message *, struct spi_replaced_transfers *); -typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); +struct spi_replaced_transfers { + spi_replaced_release_t release; + void *extradata; + struct list_head replaced_transfers; + struct list_head *replaced_after; + size_t inserted; + struct spi_transfer inserted_transfers[0]; +}; -typedef void (*btf_trace_ext4_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); +struct trace_event_data_offsets_spi_controller {}; -typedef void (*btf_trace_ext4_ext_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t); +struct trace_event_data_offsets_spi_setup {}; -typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int); +struct trace_event_data_offsets_spi_set_cs {}; -typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, unsigned short); +struct trace_event_data_offsets_spi_message {}; -typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); +struct trace_event_data_offsets_spi_message_done {}; -typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *); +struct acpi_spi_lookup { + struct spi_controller *ctlr; + u32 max_speed_hz; + u32 mode; + int irq; + u8 bits_per_word; + u8 chip_select; + int n; + int index; +}; -typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); +struct rtl_cond { + bool (*check)(struct rtl8169_private *); + const char *msg; +}; -typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int); +enum rtl_dash_type { + RTL_DASH_NONE = 0, + RTL_DASH_DP = 1, + RTL_DASH_EP = 2, +}; -typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16); +struct ring_info { + struct sk_buff *skb; + u32 len; +}; -typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *); +struct rtl8169_tc_offsets { + bool inited; + __le64 tx_errors; + __le32 tx_multi_collision; + __le16 tx_aborted; + __le16 rx_missed; +}; -typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *); +struct TxDesc; -typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t); +struct RxDesc; -typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t); +struct rtl8169_counters; -typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *); +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; + raw_spinlock_t config25_lock; + raw_spinlock_t mac_ocp_lock; + raw_spinlock_t cfg9346_usage_lock; + int cfg9346_usage_count; + unsigned int supports_gmii: 1; + unsigned int aspm_manageable: 1; + unsigned int dash_enabled: 1; + dma_addr_t counters_phys_addr; + struct rtl8169_counters *counters; + struct rtl8169_tc_offsets tc_offset; + u32 saved_wolopts; + int eee_adv; + const char *fw_name; + struct rtl_fw *rtl_fw; + u32 ocp_base; +}; -typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t); +struct TxDesc { + __le32 opts1; + __le32 opts2; + __le64 addr; +}; -typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int); +struct RxDesc { + __le32 opts1; + __le32 opts2; + __le64 addr; +}; -typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int); +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 (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int); +typedef void (*rtl_generic_fct)(struct rtl8169_private *); -typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int); +struct ephy_info { + unsigned int offset; + u16 mask; + u16 bits; +}; -typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); +struct rtl_mac_info { + u16 mask; + u16 val; + enum mac_version ver; +}; -typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t); +struct rtl_coalesce_info { + u32 speed; + u32 scale_nsecs[4]; +}; -typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int); +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, +}; -typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool); +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, +}; -typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64); +enum rtl_registers { + MAC0 = 0, + MAC4 = 4, + MAR0 = 8, + CounterAddrLow = 16, + CounterAddrHigh = 20, + TxDescStartAddrLow = 32, + TxDescStartAddrHigh = 36, + TxHDescStartAddrLow = 40, + TxHDescStartAddrHigh = 44, + FLASH = 48, + ERSR = 54, + ChipCmd = 55, + TxPoll = 56, + IntrMask = 60, + IntrStatus = 62, + TxConfig = 64, + RxConfig = 68, + Cfg9346 = 80, + Config0 = 81, + Config1 = 82, + Config2 = 83, + Config3 = 84, + Config4 = 85, + Config5 = 86, + PHYAR = 96, + PHYstatus = 108, + RxMaxSize = 218, + CPlusCmd = 224, + IntrMitigate = 226, + RxDescAddrLow = 228, + RxDescAddrHigh = 232, + EarlyTxThres = 236, + MaxTxPacketSize = 236, + FuncEvent = 240, + FuncEventMask = 244, + FuncPresetState = 248, + IBCR0 = 248, + IBCR2 = 249, + IBIMR0 = 250, + IBISR0 = 251, + FuncForceEvent = 252, +}; -typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); +enum rtl_register_content { + SYSErr = 32768, + PCSTimeout = 16384, + SWInt = 256, + TxDescUnavail = 128, + RxFIFOOver = 64, + LinkChg = 32, + RxOverflow = 16, + TxErr = 8, + TxOK = 4, + RxErr = 2, + RxOK = 1, + RxRWT = 4194304, + RxRES = 2097152, + RxRUNT = 1048576, + RxCRC = 524288, + StopReq = 128, + CmdReset = 16, + CmdRxEnb = 8, + CmdTxEnb = 4, + RxBufEmpty = 1, + HPQ = 128, + NPQ = 64, + FSWInt = 1, + Cfg9346_Lock = 0, + Cfg9346_Unlock = 192, + AcceptErr = 32, + AcceptRunt = 16, + AcceptBroadcast = 8, + AcceptMulticast = 4, + AcceptMyPhys = 2, + AcceptAllPhys = 1, + TxInterFrameGapShift = 24, + TxDMAShift = 8, + LEDS1 = 128, + LEDS0 = 64, + Speed_down = 16, + MEMMAP = 8, + IOMAP = 4, + VPD = 2, + PMEnable = 1, + ClkReqEn = 128, + MSIEnable = 32, + PCI_Clock_66MHz = 1, + PCI_Clock_33MHz = 0, + MagicPacket = 32, + LinkUp = 16, + Jumbo_En0 = 4, + Rdy_to_L23 = 2, + Beacon_en = 1, + Jumbo_En1 = 2, + BWF = 64, + MWF = 32, + UWF = 16, + Spi_en = 8, + LanWake = 2, + PMEStatus = 1, + ASPM_en = 1, + EnableBist = 32768, + Mac_dbgo_oe = 16384, + EnAnaPLL = 16384, + Normal_mode = 8192, + Force_half_dup = 4096, + Force_rxflow_en = 2048, + Force_txflow_en = 1024, + Cxpl_dbg_sel = 512, + ASF = 256, + PktCntrDisable = 128, + Mac_dbgo_sel = 28, + RxVlan = 64, + RxChkSum = 32, + PCIDAC = 16, + PCIMulRW = 8, + TBI_Enable = 128, + TxFlowCtrl = 64, + RxFlowCtrl = 32, + _1000bpsF = 16, + _100bps = 8, + _10bps = 4, + LinkStatus = 2, + FullDup = 1, + CounterReset = 1, + CounterDump = 8, + MagicPacket_v2 = 65536, +}; -typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64); +enum rtl_desc_bit { + DescOwn = -2147483648, + RingEnd = 1073741824, + FirstFrag = 536870912, + LastFrag = 268435456, +}; -typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *); +enum rtl_flag { + RTL_FLAG_TASK_ENABLED = 0, + RTL_FLAG_TASK_RESET_PENDING = 1, + RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE = 2, + RTL_FLAG_TASK_TX_TIMEOUT = 3, + RTL_FLAG_MAX = 4, +}; -typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); +enum rtl8125_registers { + IntrMask_8125 = 56, + IntrStatus_8125 = 60, + TxPoll_8125 = 144, + MAC0_BKP = 6624, + EEE_TXIDLE_TIMER_8125 = 24648, +}; -typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *); +enum rtl_tx_desc_bit { + TD_LSO = 134217728, + TxVlanTag = 131072, +}; -typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, unsigned long); +enum rtl_tx_desc_bit_0 { + TD0_TCP_CS = 65536, + TD0_UDP_CS = 131072, + TD0_IP_CS = 262144, +}; -typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); +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, +}; -typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); +enum rtl_rx_desc_bit { + PID1 = 262144, + PID0 = 131072, + IPFail = 65536, + UDPFail = 32768, + TCPFail = 16384, + RxVlanTag = 65536, +}; -typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t); +struct ignore_entry { + u16 vid; + u16 pid; + u16 bcdmin; + u16 bcdmax; +}; -typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); +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; +}; -typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int); +struct i2c_devinfo { + struct list_head list; + int busnum; + struct i2c_board_info board_info; +}; -typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *, tid_t); +struct userspace_policy { + unsigned int is_managed; + unsigned int setspeed; + struct mutex mutex; +}; -typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int, tid_t); +struct rpmsg_ctrldev { + struct rpmsg_device *rpdev; + struct cdev cdev; + struct device dev; + struct mutex ctrl_lock; +}; -typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *); +struct rpmsg_endpoint_info { + char name[32]; + __u32 src; + __u32 dst; +}; -typedef void (*btf_trace_ext4_fc_track_create)(void *, handle_t *, struct inode *, struct dentry *, int); +struct sunxi_sid_cfg { + u32 value_offset; + u32 size; + bool need_register_readout; +}; -typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int); +struct sunxi_sid { + void *base; + u32 value_offset; +}; -typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int); +enum snd_soc_dpcm_link_state { + SND_SOC_DPCM_LINK_STATE_NEW = 0, + SND_SOC_DPCM_LINK_STATE_FREE = 1, +}; -typedef void (*btf_trace_ext4_fc_track_inode)(void *, handle_t *, struct inode *, int); +struct snd_soc_dpcm { + struct snd_soc_pcm_runtime *be; + struct snd_soc_pcm_runtime *fe; + enum snd_soc_dpcm_link_state state; + struct list_head list_be; + struct list_head list_fe; + struct dentry *debugfs_state; +}; -typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long, long, int); +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, +}; -typedef void (*btf_trace_ext4_fc_cleanup)(void *, journal_t *, int, tid_t); +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, +}; -typedef void (*btf_trace_ext4_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int); +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 ext4_lazy_init { - unsigned long li_state; - struct list_head li_request_list; - struct mutex li_list_mtx; +struct _flow_keys_digest_data { + __be16 n_proto; + u8 ip_proto; + u8 padding; + __be32 ports; + __be32 src; + __be32 dst; }; -struct ext4_err_translation { - int code; - int errno; +struct nf_ct_ext { + u8 offset[4]; + u8 len; + unsigned int gen_id; + long: 0; + char data[0]; }; -struct mount_opts { - int token; - int mount_opt; - int flags; +struct mpls_label { + __be32 entry; }; -enum { - Opt_bsd_df = 0, - Opt_minix_df = 1, - Opt_grpid = 2, - Opt_nogrpid = 3, - Opt_resgid = 4, - Opt_resuid = 5, - Opt_sb___2 = 6, - Opt_nouid32 = 7, - Opt_debug___3 = 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___9 = 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, +struct batadv_unicast_packet { + __u8 packet_type; + __u8 version; + __u8 ttl; + __u8 ttvn; + __u8 dest[6]; }; -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 tipc_basic_hdr { + __be32 w[4]; }; -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 pppoe_tag { + __be16 tag_type; + __be16 tag_len; + char tag_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 pppoe_hdr { + __u8 type: 4; + __u8 ver: 4; + __u8 code; + __be16 sid; + __be16 length; + struct pppoe_tag tag[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 flow_dissector_key_cfm { + u8 mdl_ver; + u8 opcode; }; -struct trace_event_raw_ext4_evict_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int nlink; - char __data[0]; +struct ip_esp_hdr { + __be32 spi; + __be32 seq_no; + __u8 enc_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 nf_conn_labels { + unsigned long bits[2]; }; -struct trace_event_raw_ext4_nfs_commit_metadata { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; +struct flow_dissector_key_hash { + u32 hash; }; -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 hsr_tag { + __be16 path_and_LSDU_size; + __be16 sequence_nr; + __be16 encap_proto; }; -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 flow_dissector_key_num_of_vlans { + u8 num_of_vlans; }; -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 flow_keys_digest { + u8 data[16]; }; -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]; +enum { + NETLINK_DIAG_MEMINFO = 0, + NETLINK_DIAG_GROUPS = 1, + NETLINK_DIAG_RX_RING = 2, + NETLINK_DIAG_TX_RING = 3, + NETLINK_DIAG_FLAGS = 4, + __NETLINK_DIAG_MAX = 5, }; -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 netlink_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u16 pad; + __u32 ndiag_ino; + __u32 ndiag_show; + __u32 ndiag_cookie[2]; }; -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 netlink_diag_msg { + __u8 ndiag_family; + __u8 ndiag_type; + __u8 ndiag_protocol; + __u8 ndiag_state; + __u32 ndiag_portid; + __u32 ndiag_dst_portid; + __u32 ndiag_dst_group; + __u32 ndiag_ino; + __u32 ndiag_cookie[2]; }; -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]; +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, }; -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]; +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 trace_event_raw_ext4__folio_op { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long index; - char __data[0]; +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, }; -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]; +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, }; -struct trace_event_raw_ext4_discard_blocks { - struct trace_entry ent; - dev_t dev; - __u64 blk; - __u64 count; - char __data[0]; +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, }; -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]; +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 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 ethnl_tunnel_info_dump_ctx { + struct ethnl_req_info req_info; + unsigned long ifindex; }; -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 mld2_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + struct in6_addr grec_mca; + struct in6_addr grec_src[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 mld2_report { + struct icmp6hdr mld2r_hdr; + struct mld2_grec mld2r_grec[0]; }; -struct trace_event_raw_ext4_mb_discard_preallocations { - struct trace_entry ent; - dev_t dev; - int needed; - char __data[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 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 igmp6_mc_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct inet6_dev *idev; }; -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 igmp6_mcf_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct inet6_dev *idev; + struct ifmcaddr6 *im; }; -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]; +typedef struct rpc_xprt * (*xprt_switch_find_xprt_t)(struct rpc_xprt_switch *, const struct rpc_xprt *); + +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 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 stat_node { + struct rb_node node; + void *stat; }; -struct trace_event_raw_ext4_sync_file_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int ret; - char __data[0]; +enum { + TRACE_FUNC_NO_OPTS = 0, + TRACE_FUNC_OPT_STACK = 1, + TRACE_FUNC_OPT_NO_REPEATS = 2, + TRACE_FUNC_OPT_HIGHEST_BIT = 4, }; -struct trace_event_raw_ext4_sync_fs { +struct eprobe_trace_entry_head { 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_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 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 eprobe_data { + struct trace_event_file *file; + struct trace_eprobe *ep; }; -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]; +enum bpf_iter_feature { + BPF_ITER_RESCHED = 1, }; -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 bpf_iter_target_info { + struct list_head list; + const struct bpf_iter_reg *reg_info; + u32 btf_id; }; -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 bpf_iter_link { + struct bpf_link link; + struct bpf_iter_aux_info aux; + struct bpf_iter_target_info *tinfo; }; -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 bpf_iter_priv_data { + struct bpf_iter_target_info *tinfo; + const struct bpf_iter_seq_info *seq_info; + struct bpf_prog *prog; + u64 session_id; + u64 seq_num; + bool done_stop; + long: 0; + u8 target_private[0]; }; -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]; +typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64); + +typedef u64 (*btf_bpf_loop)(u32, void *, void *, u64); + +struct bpf_iter_num { + __u64 __opaque[1]; }; -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 bpf_iter_num_kern { + int cur; + int end; +}; + +enum { + BPF_F_SYSCTL_BASE_NAME = 1, +}; + +typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64); + +typedef u64 (*btf_bpf_get_retval)(); + +typedef u64 (*btf_bpf_set_retval)(int); + +typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64); + +typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t); + +typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t); + +typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t); + +typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *); + +struct bpf_cgroup_link; + +struct bpf_prog_list { + struct hlist_node node; + struct bpf_prog *prog; + struct bpf_cgroup_link *link; + struct bpf_cgroup_storage *storage[2]; +}; + +struct bpf_cgroup_link { + struct bpf_link link; + struct cgroup *cgroup; + enum bpf_attach_type type; }; -struct trace_event_raw_ext4__bitmap_load { - struct trace_entry ent; - dev_t dev; - __u32 group; - char __data[0]; +struct bpf_sockopt_buf { + u8 data[32]; }; -struct trace_event_raw_ext4_read_block_bitmap_load { - struct trace_entry ent; - dev_t dev; - __u32 group; - bool prefetch; - char __data[0]; +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 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 huge_bootmem_page { + struct list_head list; + struct hstate *hstate; }; -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 ns_get_path_task_args { + const struct proc_ns_operations *ns_ops; + struct task_struct *task; }; -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 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 trace_event_raw_ext4_unlink_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int ret; - char __data[0]; +struct mpage_data { + struct bio *bio; + sector_t last_block_in_bio; + get_block_t *get_block; }; -struct trace_event_raw_ext4__truncate { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 blocks; - char __data[0]; +enum { + BIAS = 2147483648, }; -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 pde_opener { + struct list_head lh; + struct file *file; + bool closing; + struct completion *c; }; -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]; -}; +typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); -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 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 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 ext4_getfsmap_dev { + int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); + u32 gfd_dev; }; -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]; +enum { + EXT4_FC_STATUS_OK = 0, + EXT4_FC_STATUS_INELIGIBLE = 1, + EXT4_FC_STATUS_SKIPPED = 2, + EXT4_FC_STATUS_FAILED = 3, }; -struct trace_event_raw_ext4_load_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; +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 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 __track_dentry_update_args { + struct dentry *dentry; + int op; }; -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 __track_range_args { + ext4_lblk_t start; + ext4_lblk_t end; }; -struct trace_event_raw_ext4_journal_start_reserved { - struct trace_entry ent; - dev_t dev; - unsigned long ip; - int blocks; - char __data[0]; +struct ext4_fc_tl { + __le16 fc_tag; + __le16 fc_len; }; -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 ext4_fc_head { + __le32 fc_features; + __le32 fc_tid; }; -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 ext4_fc_dentry_info { + __le32 fc_parent_ino; + __le32 fc_ino; + __u8 fc_dname[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 ext4_fc_tail { + __le32 fc_tid; + __le32 fc_crc; }; -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 ext4_fc_tl_mem { + u16 fc_tag; + u16 fc_len; }; -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 ext4_fc_add_range { + __le32 fc_ino; + __u8 fc_ex[12]; }; -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 ext4_fc_del_range { + __le32 fc_ino; + __le32 fc_lblk; + __le32 fc_len; }; -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 dentry_info_args { + int parent_ino; + int dname_len; + int ino; + int inode_len; + char *dname; }; -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 ext4_fc_inode { + __le32 fc_ino; + __u8 fc_raw_inode[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]; +enum nfs_ftype4 { + NF4BAD = 0, + NF4REG = 1, + NF4DIR = 2, + NF4BLK = 3, + NF4CHR = 4, + NF4LNK = 5, + NF4SOCK = 6, + NF4FIFO = 7, + NF4ATTRDIR = 8, + NF4NAMEDATTR = 9, }; -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]; +enum { + FATTR4_DIR_NOTIF_DELAY = 56, + FATTR4_DIRENT_NOTIF_DELAY = 57, + FATTR4_DACL = 58, + FATTR4_SACL = 59, + FATTR4_CHANGE_POLICY = 60, + FATTR4_FS_STATUS = 61, + FATTR4_FS_LAYOUT_TYPES = 62, + FATTR4_LAYOUT_HINT = 63, + FATTR4_LAYOUT_TYPES = 64, + FATTR4_LAYOUT_BLKSIZE = 65, + FATTR4_LAYOUT_ALIGNMENT = 66, + FATTR4_FS_LOCATIONS_INFO = 67, + FATTR4_MDSTHRESHOLD = 68, + FATTR4_RETENTION_GET = 69, + FATTR4_RETENTION_SET = 70, + FATTR4_RETENTEVT_GET = 71, + FATTR4_RETENTEVT_SET = 72, + FATTR4_RETENTION_HOLD = 73, + FATTR4_MODE_SET_MASKED = 74, + FATTR4_SUPPATTR_EXCLCREAT = 75, + FATTR4_FS_CHARSET_CAP = 76, }; -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]; +enum { + FATTR4_CLONE_BLKSIZE = 77, + FATTR4_SPACE_FREED = 78, + FATTR4_CHANGE_ATTR_TYPE = 79, + FATTR4_SEC_LABEL = 80, }; -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]; +enum opentype4 { + NFS4_OPEN_NOCREATE = 0, + NFS4_OPEN_CREATE = 1, }; -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]; +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, }; -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]; +enum limit_by4 { + NFS4_LIMIT_SIZE = 1, + NFS4_LIMIT_BLOCKS = 2, }; -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]; +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, }; -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]; +enum { + FATTR4_XATTR_SUPPORT = 82, }; -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]; +enum lock_type4 { + NFS4_UNLOCK_LT = 0, + NFS4_READ_LT = 1, + NFS4_WRITE_LT = 2, + NFS4_READW_LT = 3, + NFS4_WRITEW_LT = 4, }; -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]; +enum nfs4_acl_type { + NFS4ACL_NONE = 0, + NFS4ACL_ACL = 1, + NFS4ACL_DACL = 2, + NFS4ACL_SACL = 3, }; -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]; +enum state_protect_how4 { + SP4_NONE = 0, + SP4_MACH_CRED = 1, + SP4_SSV = 2, }; -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 compound_hdr { + int32_t status; + uint32_t nops; + __be32 *nops_p; + uint32_t taglen; + char *tag; + uint32_t replen; + u32 minorversion; }; -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 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; }; -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]; +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 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 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 trace_event_raw_ext4_shutdown { - struct trace_entry ent; - dev_t dev; - unsigned int flags; - char __data[0]; +struct nfs_lock_res { + struct nfs4_sequence_res seq_res; + nfs4_stateid stateid; + struct nfs_seqid *lock_seqid; + struct nfs_seqid *open_seqid; }; -struct trace_event_raw_ext4_error { - struct trace_entry ent; - dev_t dev; - const char *function; - unsigned int line; - char __data[0]; +struct nfs_lockt_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + struct file_lock *fl; + struct nfs_lowner lock_owner; }; -struct trace_event_raw_ext4_prefetch_bitmaps { - struct trace_entry ent; - dev_t dev; - __u32 group; - __u32 next; - __u32 ios; - char __data[0]; +struct nfs_lockt_res { + struct nfs4_sequence_res seq_res; + struct file_lock *denied; }; -struct trace_event_raw_ext4_lazy_itable_init { - struct trace_entry ent; - dev_t dev; - __u32 group; - char __data[0]; +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 trace_event_raw_ext4_fc_replay_scan { - struct trace_entry ent; - dev_t dev; - int error; - int off; - char __data[0]; +struct nfs_locku_res { + struct nfs4_sequence_res seq_res; + nfs4_stateid stateid; + struct nfs_seqid *seqid; }; -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 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 trace_event_raw_ext4_fc_commit_start { - struct trace_entry ent; - dev_t dev; - tid_t tid; - char __data[0]; +struct nfs4_readlink { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + unsigned int pgbase; + unsigned int pglen; + struct page **pages; }; -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 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 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 nfs4_readdir_res { + struct nfs4_sequence_res seq_res; + nfs4_verifier verifier; + unsigned int pgbase; }; -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 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 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 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 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 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 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 nfs4_secinfo_res { + struct nfs4_sequence_res seq_res; + struct nfs4_secinfo_flavors *flavors; }; -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 nfs41_exchange_id_args { + struct nfs_client *client; + nfs4_verifier verifier; + u32 flags; + struct nfs41_state_protection state_protect; }; -struct ext4_journal_cb_entry { - struct list_head jce_list; - void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); +struct nfs41_create_session_args { + struct nfs_client *client; + u64 clientid; + uint32_t seqid; + uint32_t flags; + uint32_t cb_program; + struct nfs4_channel_attrs fc_attrs; + struct nfs4_channel_attrs bc_attrs; }; -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 nfs41_create_session_res { + struct nfs4_sessionid sessionid; + uint32_t seqid; + uint32_t flags; + struct nfs4_channel_attrs fc_attrs; + struct nfs4_channel_attrs bc_attrs; }; -struct ext4_mount_options { - unsigned long s_mount_opt; - unsigned long s_mount_opt2; - kuid_t s_resuid; - kgid_t s_resgid; - unsigned long s_commit_interval; - u32 s_min_batch_time; - u32 s_max_batch_time; +struct nfs41_reclaim_complete_args { + struct nfs4_sequence_args seq_args; + unsigned char one_fs: 1; }; -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 nfs4_getdeviceinfo_args { + struct nfs4_sequence_args seq_args; + struct pnfs_device *pdev; + __u32 notify_types; +}; -struct trace_event_data_offsets_ext4_begin_ordered_truncate {}; +struct nfs4_getdeviceinfo_res { + struct nfs4_sequence_res seq_res; + struct pnfs_device *pdev; + __u32 notification; +}; -struct trace_event_data_offsets_ext4__write_begin {}; +struct nfs41_secinfo_no_name_args { + struct nfs4_sequence_args seq_args; + int style; +}; -struct trace_event_data_offsets_ext4__write_end {}; +struct nfs41_test_stateid_args { + struct nfs4_sequence_args seq_args; + nfs4_stateid *stateid; +}; -struct trace_event_data_offsets_ext4_writepages {}; +struct nfs41_test_stateid_res { + struct nfs4_sequence_res seq_res; + unsigned int status; +}; -struct trace_event_data_offsets_ext4_da_write_pages {}; +struct nfs41_free_stateid_args { + struct nfs4_sequence_args seq_args; + nfs4_stateid stateid; +}; -struct trace_event_data_offsets_ext4_da_write_pages_extent {}; +struct nfs41_free_stateid_res { + struct nfs4_sequence_res seq_res; + unsigned int status; +}; -struct trace_event_data_offsets_ext4_writepages_result {}; +struct nfs41_bind_conn_to_session_args { + struct nfs_client *client; + struct nfs4_sessionid sessionid; + u32 dir; + bool use_conn_in_rdma_mode; + int retries; +}; -struct trace_event_data_offsets_ext4__folio_op {}; +struct nfs41_bind_conn_to_session_res { + struct nfs4_sessionid sessionid; + u32 dir; + bool use_conn_in_rdma_mode; +}; -struct trace_event_data_offsets_ext4_invalidate_folio_op {}; +struct read_plus_segment { + enum data_content4 type; + uint64_t offset; + union { + struct { + uint64_t length; + } hole; + struct { + uint32_t length; + unsigned int from; + } data; + }; +}; -struct trace_event_data_offsets_ext4_discard_blocks {}; +struct nfs_setattrres { + struct nfs4_sequence_res seq_res; + struct nfs_fattr *fattr; + const struct nfs_server *server; +}; -struct trace_event_data_offsets_ext4__mb_new_pa {}; +struct nfs4_fsinfo_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; +}; -struct trace_event_data_offsets_ext4_mb_release_inode_pa {}; +struct nfs4_fsinfo_res { + struct nfs4_sequence_res seq_res; + struct nfs_fsinfo *fsinfo; +}; -struct trace_event_data_offsets_ext4_mb_release_group_pa {}; +struct nfs4_accessargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; + u32 access; +}; -struct trace_event_data_offsets_ext4_discard_preallocations {}; +struct nfs4_accessres { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; + u32 supported; + u32 access; +}; -struct trace_event_data_offsets_ext4_mb_discard_preallocations {}; +struct nfs4_getattr_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; +}; -struct trace_event_data_offsets_ext4_request_blocks {}; +struct nfs4_getattr_res { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; +}; -struct trace_event_data_offsets_ext4_allocate_blocks {}; +struct nfs4_lookup_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *dir_fh; + const struct qstr *name; + const u32 *bitmask; +}; -struct trace_event_data_offsets_ext4_free_blocks {}; +struct nfs4_lookup_res { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; + struct nfs_fh *fh; +}; -struct trace_event_data_offsets_ext4_sync_file_enter {}; +struct nfs4_lookup_root_arg { + struct nfs4_sequence_args seq_args; + const u32 *bitmask; +}; -struct trace_event_data_offsets_ext4_sync_file_exit {}; +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 trace_event_data_offsets_ext4_sync_fs {}; +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 trace_event_data_offsets_ext4_alloc_da_blocks {}; +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 trace_event_data_offsets_ext4_mballoc_alloc {}; +struct nfs4_pathconf_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; +}; -struct trace_event_data_offsets_ext4_mballoc_prealloc {}; +struct nfs4_pathconf_res { + struct nfs4_sequence_res seq_res; + struct nfs_pathconf *pathconf; +}; -struct trace_event_data_offsets_ext4__mballoc {}; +struct nfs4_statfs_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; +}; -struct trace_event_data_offsets_ext4_forget {}; +struct nfs4_statfs_res { + struct nfs4_sequence_res seq_res; + struct nfs_fsstat *fsstat; +}; -struct trace_event_data_offsets_ext4_da_update_reserve_space {}; +struct nfs4_readlink_res { + struct nfs4_sequence_res seq_res; +}; -struct trace_event_data_offsets_ext4_da_reserve_space {}; +struct nfs4_server_caps_arg { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fhandle; + const u32 *bitmask; +}; -struct trace_event_data_offsets_ext4_da_release_space {}; +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 trace_event_data_offsets_ext4__bitmap_load {}; +struct nfs_setaclres { + struct nfs4_sequence_res seq_res; +}; -struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; +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 trace_event_data_offsets_ext4__fallocate_mode {}; +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 trace_event_data_offsets_ext4_fallocate_exit {}; +struct nfs_release_lockowner_args { + struct nfs4_sequence_args seq_args; + struct nfs_lowner lock_owner; +}; -struct trace_event_data_offsets_ext4_unlink_enter {}; +struct nfs4_secinfo_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *dir_fh; + const struct qstr *name; +}; -struct trace_event_data_offsets_ext4_unlink_exit {}; +struct nfs4_fsid_present_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + clientid4 clientid; + unsigned char renew: 1; +}; -struct trace_event_data_offsets_ext4__truncate {}; +struct nfs4_fsid_present_res { + struct nfs4_sequence_res seq_res; + struct nfs_fh *fh; + unsigned char renew: 1; +}; -struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {}; +struct nfs4_get_lease_time_args { + struct nfs4_sequence_args la_seq_args; +}; -struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {}; +struct nfs4_get_lease_time_res { + struct nfs4_sequence_res lr_seq_res; + struct nfs_fsinfo *lr_fsinfo; +}; -struct trace_event_data_offsets_ext4__map_blocks_enter {}; +struct nfs41_reclaim_complete_res { + struct nfs4_sequence_res seq_res; +}; -struct trace_event_data_offsets_ext4__map_blocks_exit {}; +struct nfs4_lookupp_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; +}; -struct trace_event_data_offsets_ext4_ext_load_extent {}; +struct nfs4_lookupp_res { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; + struct nfs_fh *fh; +}; -struct trace_event_data_offsets_ext4_load_inode {}; +struct msg_queue { + struct kern_ipc_perm q_perm; + time64_t q_stime; + time64_t q_rtime; + time64_t q_ctime; + unsigned long q_cbytes; + unsigned long q_qnum; + unsigned long q_qbytes; + struct pid *q_lspid; + struct pid *q_lrpid; + struct list_head q_messages; + struct list_head q_receivers; + struct list_head q_senders; + long: 64; + long: 64; +}; -struct trace_event_data_offsets_ext4_journal_start_sb {}; +struct msg; -struct trace_event_data_offsets_ext4_journal_start_inode {}; +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 trace_event_data_offsets_ext4_journal_start_reserved {}; +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 trace_event_data_offsets_ext4__trim {}; +struct msg_sender { + struct list_head list; + struct task_struct *tsk; + size_t msgsz; +}; -struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {}; +struct msgbuf { + __kernel_long_t mtype; + char mtext[1]; +}; -struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; +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 trace_event_data_offsets_ext4_ext_show_extent {}; +struct msginfo { + int msgpool; + int msgmap; + int msgmax; + int msgmnb; + int msgmni; + int msgssz; + int msgtql; + unsigned short msgseg; +}; -struct trace_event_data_offsets_ext4_remove_blocks {}; +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; +}; -struct trace_event_data_offsets_ext4_ext_rm_leaf {}; +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 trace_event_data_offsets_ext4_ext_rm_idx {}; +struct compat_msgbuf { + compat_long_t mtype; + char mtext[1]; +}; -struct trace_event_data_offsets_ext4_ext_remove_space {}; +struct sel_netport_bkt { + int size; + struct list_head list; +}; -struct trace_event_data_offsets_ext4_ext_remove_space_done {}; +struct netport_security_struct { + u32 sid; + u16 port; + u8 protocol; +}; -struct trace_event_data_offsets_ext4__es_extent {}; +struct sel_netport { + struct netport_security_struct psec; + struct list_head list; + struct callback_head rcu; +}; -struct trace_event_data_offsets_ext4_es_remove_extent {}; +enum { + IOU_POLL_DONE = 0, + IOU_POLL_NO_ACTION = 1, + IOU_POLL_REMOVE_POLL_USE_RES = 2, + IOU_POLL_REISSUE = 3, +}; -struct trace_event_data_offsets_ext4_es_find_extent_range_enter {}; +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 trace_event_data_offsets_ext4_es_find_extent_range_exit {}; +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 trace_event_data_offsets_ext4_es_lookup_extent_enter {}; +struct strarray { + char **array; + size_t n; +}; -struct trace_event_data_offsets_ext4_es_lookup_extent_exit {}; +struct sg_pool { + size_t size; + char *name; + struct kmem_cache *slab; + mempool_t *pool; +}; -struct trace_event_data_offsets_ext4__es_shrink_enter {}; +struct phy_lookup { + struct list_head node; + const char *dev_id; + const char *con_id; + struct phy *phy; +}; -struct trace_event_data_offsets_ext4_es_shrink_scan_exit {}; +struct pci_bus_resource { + struct list_head list; + struct resource *res; + unsigned int flags; +}; -struct trace_event_data_offsets_ext4_collapse_range {}; +struct prt_quirk { + const struct dmi_system_id *system; + unsigned int segment; + unsigned int bus; + unsigned int device; + unsigned char pin; + const char *source; + const char *actual_source; +}; -struct trace_event_data_offsets_ext4_insert_range {}; +struct acpi_prt_entry { + struct acpi_pci_id id; + u8 pin; + acpi_handle link; + u32 index; +}; -struct trace_event_data_offsets_ext4_es_shrink {}; +struct amba_id; -struct trace_event_data_offsets_ext4_es_insert_delayed_block {}; +struct amba_driver { + struct device_driver drv; + int (*probe)(struct amba_device *, const struct amba_id *); + void (*remove)(struct amba_device *); + void (*shutdown)(struct amba_device *); + const struct amba_id *id_table; + bool driver_managed_dma; +}; -struct trace_event_data_offsets_ext4_fsmap_class {}; +struct amba_id { + unsigned int id; + unsigned int mask; + void *data; +}; -struct trace_event_data_offsets_ext4_getfsmap_class {}; +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, +}; -struct trace_event_data_offsets_ext4_shutdown {}; +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, +}; -struct trace_event_data_offsets_ext4_error {}; +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, +}; -struct trace_event_data_offsets_ext4_prefetch_bitmaps {}; +enum mipi_dsi_dcs_tear_mode { + MIPI_DSI_DCS_TEAR_MODE_VBLANK = 0, + MIPI_DSI_DCS_TEAR_MODE_VHBLANK = 1, +}; -struct trace_event_data_offsets_ext4_lazy_itable_init {}; +struct mipi_dsi_host; -struct trace_event_data_offsets_ext4_fc_replay_scan {}; +struct drm_dsc_config; -struct trace_event_data_offsets_ext4_fc_replay {}; +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 trace_event_data_offsets_ext4_fc_commit_start {}; +struct mipi_dsi_host_ops; -struct trace_event_data_offsets_ext4_fc_commit_stop {}; +struct mipi_dsi_host { + struct device *dev; + const struct mipi_dsi_host_ops *ops; + struct list_head list; +}; -struct trace_event_data_offsets_ext4_fc_stats {}; +struct mipi_dsi_msg; -struct trace_event_data_offsets_ext4_fc_track_dentry {}; +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 trace_event_data_offsets_ext4_fc_track_inode {}; +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 trace_event_data_offsets_ext4_fc_track_range {}; +struct drm_dsc_rc_range_parameters { + u8 range_min_qp; + u8 range_max_qp; + u8 range_bpg_offset; +}; -struct trace_event_data_offsets_ext4_fc_cleanup {}; +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 trace_event_data_offsets_ext4_update_sb {}; +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 audit_cache { - struct aa_profile *profile; - kernel_cap_t caps; +struct mipi_dsi_device_info { + char type[20]; + u32 channel; + struct device_node *node; }; -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; - long: 64; - long: 64; - union { - struct { - struct crypto_alg base; - }; - struct comp_alg_common calg; - }; +struct mipi_dsi_packet { + size_t size; + u8 header[4]; + size_t payload_length; + const u8 *payload; }; -struct crypto_istat_compress { - atomic64_t compress_cnt; - atomic64_t compress_tlen; - atomic64_t decompress_cnt; - atomic64_t decompress_tlen; - atomic64_t err_cnt; +struct 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 cache_type_info { + const char *size_prop; + const char *line_size_props[2]; + const char *nr_sets_prop; }; -struct blk_ia_range_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct blk_independent_access_range *, char *); +struct nd_mapping_desc; + +struct nd_region_desc { + struct resource *res; + struct nd_mapping_desc *mapping; + u16 num_mappings; + const struct attribute_group **attr_groups; + struct nd_interleave_set *nd_set; + void *provider_data; + int num_lanes; + int numa_node; + int target_node; + unsigned long flags; + int memregion; + struct device_node *of_node; + int (*flush)(struct nd_region *, struct bio *); }; -struct io_cancel { - struct file *file; - u64 addr; - u32 flags; - s32 fd; +struct nd_mapping_desc { + struct nvdimm *nvdimm; + u64 start; + u64 size; + int position; }; -struct io_uring_sync_cancel_reg { - __u64 addr; - __s32 fd; - __u32 flags; - struct __kernel_timespec timeout; - __u64 pad[4]; +struct of_pmem_private { + struct nvdimm_bus_descriptor bus_desc; + struct nvdimm_bus *bus; }; -typedef unsigned int FSE_DTable; +typedef void (*btf_trace_ata_qc_prep)(void *, struct ata_queued_cmd *); -typedef struct { - U16 tableLog; - U16 fastMode; -} FSE_DTableHeader; +typedef void (*btf_trace_ata_qc_issue)(void *, struct ata_queued_cmd *); -typedef struct { - unsigned short newState; - unsigned char symbol; - unsigned char nbBits; -} FSE_decode_t; +typedef void (*btf_trace_ata_qc_complete_internal)(void *, struct ata_queued_cmd *); -typedef struct { - short ncount[256]; - FSE_DTable dtable[1]; -} FSE_DecompressWksp; +typedef void (*btf_trace_ata_qc_complete_failed)(void *, struct ata_queued_cmd *); -typedef struct { - size_t state; - const void *table; -} FSE_DState_t; +typedef void (*btf_trace_ata_qc_complete_done)(void *, struct ata_queued_cmd *); -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, -}; +typedef void (*btf_trace_ata_tf_load)(void *, struct ata_port *, const struct ata_taskfile *); -struct irq_override_cmp { - const struct dmi_system_id *system; - unsigned char irq; - unsigned char triggering; - unsigned char polarity; - unsigned char shareable; - bool override; -}; +typedef void (*btf_trace_ata_exec_command)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); -struct res_proc_context { - struct list_head *list; - int (*preproc)(struct acpi_resource *, void *); - void *preproc_data; - int count; - int error; -}; +typedef void (*btf_trace_ata_bmdma_setup)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); -struct con_driver { - const struct consw *con; - const char *desc; - struct device *dev; - int node; - int first; - int last; - int flag; -}; +typedef void (*btf_trace_ata_bmdma_start)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); -struct interval { - uint32_t first; - uint32_t last; -}; +typedef void (*btf_trace_ata_bmdma_stop)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); -enum { - blank_off = 0, - blank_normal_wait = 1, - blank_vesa_wait = 2, -}; +typedef void (*btf_trace_ata_bmdma_status)(void *, struct ata_port *, unsigned int); -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, -}; +typedef void (*btf_trace_ata_eh_link_autopsy)(void *, struct ata_device *, unsigned int, unsigned int); -enum { - EPecma = 0, - EPdec = 1, - EPeq = 2, - EPgt = 3, - EPlt = 4, -}; +typedef void (*btf_trace_ata_eh_link_autopsy_qc)(void *, struct ata_queued_cmd *); -struct vc_draw_region { - unsigned long from; - unsigned long to; - int x; -}; +typedef void (*btf_trace_ata_eh_about_to_do)(void *, struct ata_link *, unsigned int, unsigned int); -struct rgb { - u8 r; - u8 g; - u8 b; -}; +typedef void (*btf_trace_ata_eh_done)(void *, struct ata_link *, unsigned int, unsigned int); -struct devres_node { - struct list_head entry; - dr_release_t release; - const char *name; - size_t size; -}; +typedef void (*btf_trace_ata_link_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); -struct devres { - struct devres_node node; - long: 64; - long: 64; - long: 64; - u8 data[0]; -}; +typedef void (*btf_trace_ata_slave_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); -struct devres_group { - struct devres_node node[2]; - void *id; - int color; -}; +typedef void (*btf_trace_ata_link_softreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); -struct action_devres { - void *data; - void (*action)(void *); -}; +typedef void (*btf_trace_ata_link_hardreset_end)(void *, struct ata_link *, unsigned int *, int); -struct pages_devres { - unsigned long addr; - unsigned int order; -}; +typedef void (*btf_trace_ata_slave_hardreset_end)(void *, struct ata_link *, unsigned int *, int); -enum { - Lo_unbound = 0, - Lo_bound = 1, - Lo_rundown = 2, - Lo_deleting = 3, -}; +typedef void (*btf_trace_ata_link_softreset_end)(void *, struct ata_link *, unsigned int *, int); -enum { - LO_FLAGS_READ_ONLY = 1, - LO_FLAGS_AUTOCLEAR = 4, - LO_FLAGS_PARTSCAN = 8, - LO_FLAGS_DIRECT_IO = 16, -}; +typedef void (*btf_trace_ata_link_postreset)(void *, struct ata_link *, unsigned int *, int); -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; -}; +typedef void (*btf_trace_ata_slave_postreset)(void *, struct ata_link *, unsigned int *, int); -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; -}; +typedef void (*btf_trace_ata_std_sched_eh)(void *, struct ata_port *); -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 void (*btf_trace_ata_port_freeze)(void *, struct ata_port *); -typedef u32 compat_dev_t; +typedef void (*btf_trace_ata_port_thaw)(void *, struct ata_port *); -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 void (*btf_trace_ata_sff_hsm_state)(void *, struct ata_queued_cmd *, unsigned char); -typedef unsigned int __kernel_old_dev_t; +typedef void (*btf_trace_ata_sff_hsm_command_complete)(void *, struct ata_queued_cmd *, unsigned char); -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]; +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 loop_info64 { - __u64 lo_device; - __u64 lo_inode; - __u64 lo_rdevice; - __u64 lo_offset; - __u64 lo_sizelimit; - __u32 lo_number; - __u32 lo_encrypt_type; - __u32 lo_encrypt_key_size; - __u32 lo_flags; - __u8 lo_file_name[64]; - __u8 lo_crypt_name[64]; - __u8 lo_encrypt_key[32]; - __u64 lo_init[2]; +struct ata_force_ent { + int port; + int device; + struct ata_force_param param; }; -struct loop_config { - __u32 fd; - __u32 block_size; - struct loop_info64 info; - __u64 __reserved[8]; +struct ata_xfer_ent { + int shift; + int bits; + u8 base; }; -enum hsm_task_states { - HSM_ST_IDLE = 0, - HSM_ST_FIRST = 1, - HSM_ST = 2, - HSM_ST_LAST = 3, - HSM_ST_ERR = 4, +struct ata_blacklist_entry { + const char *model_num; + const char *model_rev; + unsigned long horkage; }; -struct cdrom_sysctl_settings { - char info[1000]; - int autoclose; - int autoeject; - int debug; - int lock; - int check; +enum ata_xfer_mask { + ATA_MASK_PIO = 127, + ATA_MASK_MWDMA = 3968, + ATA_MASK_UDMA = 1044480, }; -enum cdrom_print_option { - CTL_NAME = 0, - CTL_SPEED = 1, - CTL_SLOTS = 2, - CTL_CAPABILITY = 3, +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 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 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 mode_page_header { - __be16 mode_data_length; - __u8 medium_type; - __u8 reserved1; - __u8 reserved2; - __u8 reserved3; - __be16 desc_length; +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 cdrom_timed_media_change_info { - __s64 last_media_change; - __u64 media_flags; +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 cdrom_msf { - __u8 cdmsf_min0; - __u8 cdmsf_sec0; - __u8 cdmsf_frame0; - __u8 cdmsf_min1; - __u8 cdmsf_sec1; - __u8 cdmsf_frame1; +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 cdrom_read_audio { - union cdrom_addr addr; - __u8 addr_format; - int nframes; - __u8 __attribute__((btf_type_tag("user"))) *buf; +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 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 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 cdrom_blk { - unsigned int from; - unsigned short len; +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 cdrom_volctrl { - __u8 channel0; - __u8 channel1; - __u8 channel2; - __u8 channel3; +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 dvd_lu_send_agid { - __u8 type; - unsigned int agid: 2; +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]; }; -typedef __u8 dvd_challenge[10]; - -struct dvd_host_send_challenge { - __u8 type; - unsigned int agid: 2; - dvd_challenge chal; +struct trace_event_raw_ata_port_eh_begin_template { + struct trace_entry ent; + unsigned int ata_port; + char __data[0]; }; -typedef __u8 dvd_key[5]; - -struct dvd_send_key { - __u8 type; - unsigned int agid: 2; - dvd_key key; +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 dvd_lu_send_challenge { - __u8 type; - unsigned int agid: 2; - dvd_challenge chal; +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 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 trace_event_raw_ata_sff_template { + struct trace_entry ent; + unsigned int ata_port; + unsigned char hsm_state; + char __data[0]; }; -struct dvd_lu_send_asf { - __u8 type; - unsigned int agid: 2; - unsigned int asf: 1; -}; +struct trace_event_data_offsets_ata_qc_issue_template {}; -struct dvd_host_send_rpcstate { - __u8 type; - __u8 pdrc; -}; +struct trace_event_data_offsets_ata_qc_complete_template {}; -struct dvd_lu_send_rpcstate { - __u8 type: 2; - __u8 vra: 3; - __u8 ucca: 3; - __u8 region_mask; - __u8 rpc_scheme; -}; +struct trace_event_data_offsets_ata_tf_load {}; -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; +struct trace_event_data_offsets_ata_exec_command_template {}; -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; +struct trace_event_data_offsets_ata_bmdma_status {}; -typedef struct { - int data; - int audio; - int cdi; - int xa; - long error; -} tracktype; +struct trace_event_data_offsets_ata_eh_link_autopsy {}; -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 trace_event_data_offsets_ata_eh_link_autopsy_qc {}; -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 trace_event_data_offsets_ata_eh_action_template {}; -struct cdrom_slot { - __u8 change: 1; - __u8 reserved1: 6; - __u8 disc_present: 1; - __u8 reserved2[3]; -}; +struct trace_event_data_offsets_ata_link_reset_begin_template {}; -struct cdrom_changer_info { - struct cdrom_mechstat_header hdr; - struct cdrom_slot slots[256]; -}; +struct trace_event_data_offsets_ata_link_reset_end_template {}; -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 trace_event_data_offsets_ata_port_eh_begin_template {}; -struct compat_cdrom_read_audio { - union cdrom_addr addr; - u8 addr_format; - compat_int_t nframes; - compat_caddr_t buf; -}; +struct trace_event_data_offsets_ata_sff_hsm_template {}; -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 trace_event_data_offsets_ata_transfer_data_template {}; + +struct trace_event_data_offsets_ata_sff_template {}; + +struct pci_bits { + unsigned int reg; + unsigned int width; + unsigned long mask; + unsigned long val; }; -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; +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 dvd_physical { - __u8 type; - __u8 layer_num; - struct dvd_layer layer[4]; +struct e1000_host_mng_command_header { + u8 command_id; + u8 checksum; + u16 reserved1; + u16 reserved2; + u16 command_length; }; -struct dvd_copyright { - __u8 type; - __u8 layer_num; - __u8 cpst; - __u8 rmi; +struct ps2pp_info { + u8 model; + u8 kind; + u16 features; }; -struct dvd_disckey { - __u8 type; - unsigned int agid: 2; - __u8 value[2048]; +struct mmc_pwrseq_simple { + struct mmc_pwrseq pwrseq; + bool clk_enabled; + u32 post_power_on_delay_ms; + u32 power_off_delay_us; + struct clk *ext_clk; + struct gpio_descs *reset_gpios; }; -struct dvd_bca { - __u8 type; - int len; - __u8 value[188]; +struct of_bus { + const char *name; + const char *addresses; + int (*match)(struct device_node *); + void (*count_cells)(struct device_node *, int *, int *); + u64 (*map)(__be32 *, const __be32 *, int, int, int, int); + int (*translate)(__be32 *, u64, int); + int flag_cells; + unsigned int (*get_flags)(const __be32 *); }; -struct dvd_manufact { - __u8 type; - __u8 layer_num; - int len; - __u8 value[2048]; +struct soc_mreg_control { + long min; + long max; + unsigned int regbase; + unsigned int regcount; + unsigned int nbits; + unsigned int invert; }; -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; +struct soc_bytes { + int base; + int num_regs; + u32 mask; +}; -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 soc_bytes_ext { + int max; + int (*get)(struct snd_kcontrol *, unsigned int __attribute__((btf_type_tag("user"))) *, unsigned int); + int (*put)(struct snd_kcontrol *, const unsigned int __attribute__((btf_type_tag("user"))) *, unsigned int); +}; -struct phy_devm { - struct usb_phy *phy; - struct notifier_block *nb; +struct bpf_scratchpad { + union { + __be32 diff[128]; + u8 buff[512]; + }; }; -struct ignore_entry { - u16 vid; - u16 pid; - u16 bcdmin; - u16 bcdmax; +enum { + BPF_F_NEIGH = 2, + BPF_F_PEER = 4, + BPF_F_NEXTHOP = 8, }; -struct trackpoint_attr_data { - size_t field_offset; - u8 command; - u8 mask; - bool inverted; - u8 power_on_default; +enum { + BPF_F_RECOMPUTE_CSUM = 1, + BPF_F_INVALIDATE_HASH = 2, }; -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; +enum bpf_hdr_start_off { + BPF_HDR_START_MAC = 0, + BPF_HDR_START_NET = 1, }; -struct efi_memory_map { - phys_addr_t phys_map; - void *map; - void *map_end; - int nr_map; - unsigned long desc_version; - unsigned long desc_size; - unsigned long flags; +enum { + BPF_F_HDR_FIELD_MASK = 15, }; -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, +enum { + BPF_F_PSEUDO_HDR = 16, + BPF_F_MARK_MANGLED_0 = 32, + BPF_F_MARK_ENFORCE = 64, }; -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; +enum { + BPF_CSUM_LEVEL_QUERY = 0, + BPF_CSUM_LEVEL_INC = 1, + BPF_CSUM_LEVEL_DEC = 2, + BPF_CSUM_LEVEL_RESET = 3, }; 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, + 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 { - LWT_BPF_PROG_UNSPEC = 0, - LWT_BPF_PROG_FD = 1, - LWT_BPF_PROG_NAME = 2, - __LWT_BPF_PROG_MAX = 3, + BPF_ADJ_ROOM_ENCAP_L2_MASK = 255, + BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56, }; -struct bpf_lwt { - struct bpf_lwt_prog in; - struct bpf_lwt_prog out; - struct bpf_lwt_prog xmit; - int family; +enum bpf_adj_room_mode { + BPF_ADJ_ROOM_NET = 0, + BPF_ADJ_ROOM_MAC = 1, }; 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, + BPF_F_TUNINFO_IPV6 = 1, }; -struct tsinfo_reply_data { - struct ethnl_reply_data base; - struct ethtool_ts_info ts_info; +enum { + BPF_F_TUNINFO_FLAGS = 16, }; -enum tunnel_encap_types { - TUNNEL_ENCAP_NONE = 0, - TUNNEL_ENCAP_FOU = 1, - TUNNEL_ENCAP_GUE = 2, - TUNNEL_ENCAP_MPLS = 3, +enum { + BPF_F_ZERO_CSUM_TX = 2, + BPF_F_DONT_FRAGMENT = 4, + BPF_F_SEQ_NUMBER = 8, + BPF_F_NO_TUNNEL_KEY = 16, }; -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; +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, }; -struct tnl_ptk_info { - __be16 flags; - __be16 proto; - __be32 key; - __be32 seq; - int hdr_len; +enum { + BPF_FIB_LOOKUP_DIRECT = 1, + BPF_FIB_LOOKUP_OUTPUT = 2, + BPF_FIB_LOOKUP_SKIP_NEIGH = 4, + BPF_FIB_LOOKUP_TBID = 8, + BPF_FIB_LOOKUP_SRC = 16, }; -struct sit_net { - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_r_l[16]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_r[16]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_l[16]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) *tunnels_wc[1]; - struct ip_tunnel __attribute__((btf_type_tag("rcu"))) **tunnels[4]; - struct net_device *fb_tunnel_dev; +enum { + BPF_FIB_LKUP_RET_SUCCESS = 0, + BPF_FIB_LKUP_RET_BLACKHOLE = 1, + BPF_FIB_LKUP_RET_UNREACHABLE = 2, + BPF_FIB_LKUP_RET_PROHIBIT = 3, + BPF_FIB_LKUP_RET_NOT_FWDED = 4, + BPF_FIB_LKUP_RET_FWD_DISABLED = 5, + BPF_FIB_LKUP_RET_UNSUPP_LWT = 6, + BPF_FIB_LKUP_RET_NO_NEIGH = 7, + BPF_FIB_LKUP_RET_FRAG_NEEDED = 8, + BPF_FIB_LKUP_RET_NO_SRC_ADDR = 9, }; -struct ip_tunnel_prl { - __be32 addr; - __u16 flags; - __u16 __reserved; - __u32 datalen; - __u32 __reserved2; +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, }; -typedef void (*btf_trace_rpcgss_import_ctx)(void *, int); - -typedef void (*btf_trace_rpcgss_get_mic)(void *, const struct rpc_task *, u32); +enum bpf_check_mtu_flags { + BPF_MTU_CHK_SEGS = 1, +}; -typedef void (*btf_trace_rpcgss_verify_mic)(void *, const struct rpc_task *, u32); +enum bpf_lwt_encap_mode { + BPF_LWT_ENCAP_SEG6 = 0, + BPF_LWT_ENCAP_SEG6_INLINE = 1, + BPF_LWT_ENCAP_IP = 2, +}; -typedef void (*btf_trace_rpcgss_wrap)(void *, const struct rpc_task *, u32); +enum { + BPF_LOAD_HDR_OPT_TCP_SYN = 1, +}; -typedef void (*btf_trace_rpcgss_unwrap)(void *, const struct rpc_task *, u32); +enum { + BPF_SKB_TSTAMP_UNSPEC = 0, + BPF_SKB_TSTAMP_DELIVERY_MONO = 1, +}; -typedef void (*btf_trace_rpcgss_ctx_init)(void *, const struct gss_cred *); +enum { + BPF_SK_LOOKUP_F_REPLACE = 1, + BPF_SK_LOOKUP_F_NO_REUSEPORT = 2, +}; -typedef void (*btf_trace_rpcgss_ctx_destroy)(void *, const struct gss_cred *); +typedef u64 (*btf_bpf_skb_get_pay_offset)(struct sk_buff *); -typedef void (*btf_trace_rpcgss_svc_wrap)(void *, const struct svc_rqst *, u32); +typedef u64 (*btf_bpf_skb_get_nlattr)(struct sk_buff *, u32, u32); -typedef void (*btf_trace_rpcgss_svc_unwrap)(void *, const struct svc_rqst *, u32); +typedef u64 (*btf_bpf_skb_get_nlattr_nest)(struct sk_buff *, u32, u32); -typedef void (*btf_trace_rpcgss_svc_mic)(void *, const struct svc_rqst *, u32); +typedef u64 (*btf_bpf_skb_load_helper_8)(const struct sk_buff *, const void *, int, int); -typedef void (*btf_trace_rpcgss_svc_get_mic)(void *, const struct svc_rqst *, u32); +typedef u64 (*btf_bpf_skb_load_helper_8_no_cache)(const struct sk_buff *, int); -typedef void (*btf_trace_rpcgss_svc_wrap_failed)(void *, const struct svc_rqst *); +typedef u64 (*btf_bpf_skb_load_helper_16)(const struct sk_buff *, const void *, int, int); -typedef void (*btf_trace_rpcgss_svc_unwrap_failed)(void *, const struct svc_rqst *); +typedef u64 (*btf_bpf_skb_load_helper_16_no_cache)(const struct sk_buff *, int); -typedef void (*btf_trace_rpcgss_svc_seqno_bad)(void *, const struct svc_rqst *, u32, u32); +typedef u64 (*btf_bpf_skb_load_helper_32)(const struct sk_buff *, const void *, int, int); -typedef void (*btf_trace_rpcgss_svc_accept_upcall)(void *, const struct svc_rqst *, u32, u32); +typedef u64 (*btf_bpf_skb_load_helper_32_no_cache)(const struct sk_buff *, int); -typedef void (*btf_trace_rpcgss_svc_authenticate)(void *, const struct svc_rqst *, const struct rpc_gss_wire_cred *); +typedef u64 (*btf_bpf_skb_store_bytes)(struct sk_buff *, u32, const void *, u32, u64); -typedef void (*btf_trace_rpcgss_unwrap_failed)(void *, const struct rpc_task *); +typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32); -typedef void (*btf_trace_rpcgss_bad_seqno)(void *, const struct rpc_task *, u32, u32); +typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32); -typedef void (*btf_trace_rpcgss_seqno)(void *, const struct rpc_task *); +typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32); -typedef void (*btf_trace_rpcgss_need_reencode)(void *, const struct rpc_task *, u32, bool); +typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32); -typedef void (*btf_trace_rpcgss_update_slack)(void *, const struct rpc_task *, const struct rpc_auth *); +typedef u64 (*btf_bpf_sk_fullsock)(struct sock *); -typedef void (*btf_trace_rpcgss_svc_seqno_large)(void *, const struct svc_rqst *, u32); +typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32); -typedef void (*btf_trace_rpcgss_svc_seqno_seen)(void *, const struct svc_rqst *, u32); +typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64); -typedef void (*btf_trace_rpcgss_svc_seqno_low)(void *, const struct svc_rqst *, u32, u32, u32); +typedef u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64); -typedef void (*btf_trace_rpcgss_upcall_msg)(void *, const char *); +typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum); -typedef void (*btf_trace_rpcgss_upcall_result)(void *, u32, int); +typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum); -typedef void (*btf_trace_rpcgss_context)(void *, u32, unsigned long, unsigned long, unsigned int, unsigned int, const u8 *); +typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64); -typedef void (*btf_trace_rpcgss_createauth)(void *, unsigned int, int); +typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64); -typedef void (*btf_trace_rpcgss_oid_to_mech)(void *, const char *); +typedef u64 (*btf_bpf_redirect)(u32, u64); -struct trace_event_raw_rpcgss_import_ctx { - struct trace_entry ent; - int status; - char __data[0]; -}; +typedef u64 (*btf_bpf_redirect_peer)(u32, u64); -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 bpf_redir_neigh; -struct trace_event_raw_rpcgss_ctx_class { - struct trace_entry ent; - const void *cred; - unsigned long service; - u32 __data_loc_principal; - char __data[0]; -}; +typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64); -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 bpf_redir_neigh { + __u32 nh_family; + union { + __be32 ipv4_nh; + __u32 ipv6_nh[4]; + }; }; -struct trace_event_raw_rpcgss_svc_wrap_failed { - struct trace_entry ent; - u32 xid; - u32 __data_loc_addr; - char __data[0]; -}; +typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32); -struct trace_event_raw_rpcgss_svc_unwrap_failed { - struct trace_entry ent; - u32 xid; - u32 __data_loc_addr; - char __data[0]; -}; +typedef u64 (*btf_bpf_msg_cork_bytes)(struct sk_msg *, u32); -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]; -}; +typedef u64 (*btf_bpf_msg_pull_data)(struct sk_msg *, u32, u32, u64); -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]; -}; +typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64); -struct trace_event_raw_rpcgss_svc_authenticate { - struct trace_entry ent; - u32 seqno; - u32 xid; - u32 __data_loc_addr; - char __data[0]; -}; +typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64); -struct trace_event_raw_rpcgss_unwrap_failed { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - char __data[0]; -}; +typedef u64 (*btf_bpf_get_cgroup_classid_curr)(); -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]; -}; +typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *); -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]; -}; +typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *); -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]; -}; +typedef u64 (*btf_bpf_get_route_realm)(const struct sk_buff *); -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]; -}; +typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *); -struct trace_event_raw_rpcgss_svc_seqno_class { - struct trace_entry ent; - u32 xid; - u32 seqno; - char __data[0]; -}; +typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *); -struct trace_event_raw_rpcgss_svc_seqno_low { - struct trace_entry ent; - u32 xid; - u32 seqno; - u32 min; - u32 max; - char __data[0]; -}; +typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32); -struct trace_event_raw_rpcgss_upcall_msg { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; -}; +typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16); -struct trace_event_raw_rpcgss_upcall_result { - struct trace_entry ent; - u32 uid; - int result; - char __data[0]; -}; +typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *); -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]; -}; +typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64); -struct trace_event_raw_rpcgss_createauth { - struct trace_entry ent; - unsigned int flavor; - int error; - char __data[0]; -}; +typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32); -struct trace_event_raw_rpcgss_oid_to_mech { - struct trace_entry ent; - u32 __data_loc_oid; - char __data[0]; -}; +typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64); -struct trace_event_data_offsets_rpcgss_ctx_class { - u32 principal; -}; +typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64); -struct trace_event_data_offsets_rpcgss_svc_gssapi_class { - u32 addr; -}; +typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64); -struct trace_event_data_offsets_rpcgss_svc_wrap_failed { - u32 addr; -}; +typedef u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64); -struct trace_event_data_offsets_rpcgss_svc_unwrap_failed { - u32 addr; -}; +typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64); -struct trace_event_data_offsets_rpcgss_svc_seqno_bad { - u32 addr; -}; +typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64); -struct trace_event_data_offsets_rpcgss_svc_accept_upcall { - u32 addr; -}; +typedef u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *); -struct trace_event_data_offsets_rpcgss_svc_authenticate { - u32 addr; -}; +typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int); -struct trace_event_data_offsets_rpcgss_upcall_msg { - u32 msg; -}; +typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32); -struct trace_event_data_offsets_rpcgss_context { - u32 acceptor; -}; +typedef u64 (*btf_bpf_xdp_store_bytes)(struct xdp_buff *, u32, void *, u32); -struct trace_event_data_offsets_rpcgss_oid_to_mech { - u32 oid; -}; +typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int); -struct trace_event_data_offsets_rpcgss_gssapi_event {}; +typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int); -struct trace_event_data_offsets_rpcgss_import_ctx {}; +typedef u64 (*btf_bpf_xdp_redirect)(u32, u64); -struct trace_event_data_offsets_rpcgss_unwrap_failed {}; +typedef u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64); -struct trace_event_data_offsets_rpcgss_bad_seqno {}; +typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64); -struct trace_event_data_offsets_rpcgss_seqno {}; +struct bpf_tunnel_key; -struct trace_event_data_offsets_rpcgss_need_reencode {}; +typedef u64 (*btf_bpf_skb_get_tunnel_key)(struct sk_buff *, struct bpf_tunnel_key *, u32, u64); -struct trace_event_data_offsets_rpcgss_update_slack {}; +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]; + }; +}; -struct trace_event_data_offsets_rpcgss_svc_seqno_class {}; +typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32); -struct trace_event_data_offsets_rpcgss_svc_seqno_low {}; +typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64); -struct trace_event_data_offsets_rpcgss_upcall_result {}; +typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32); -struct trace_event_data_offsets_rpcgss_createauth {}; +typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32); -enum sysctl_writes_mode { - SYSCTL_WRITES_LEGACY = -1, - SYSCTL_WRITES_WARN = 0, - SYSCTL_WRITES_STRICT = 1, -}; +typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *); -struct do_proc_dointvec_minmax_conv_param { - int *min; - int *max; -}; +typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int); -struct do_proc_douintvec_minmax_conv_param { - unsigned int *min; - unsigned int *max; -}; +typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *); -struct auditd_connection { - struct pid *pid; - u32 portid; - struct net *net; - struct callback_head rcu; -}; +typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int); -struct audit_ctl_mutex { - struct mutex lock; - void *owner; -}; +typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64); -struct audit_features { - __u32 vers; - __u32 mask; - __u32 features; - __u32 lock; -}; +typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *); -enum audit_nlgrps { - AUDIT_NLGRP_NONE = 0, - AUDIT_NLGRP_READLOG = 1, - __AUDIT_NLGRP_MAX = 2, -}; +typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); -struct audit_reply { - __u32 portid; - struct net *net; - struct sk_buff *skb; -}; +typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *); -struct audit_net { - struct sock *sk; -}; +typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *); -struct audit_buffer { - struct sk_buff *skb; - struct audit_context *ctx; - gfp_t gfp_mask; -}; +typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *); -struct audit_sig_info { - uid_t uid; - pid_t pid; - char ctx[0]; -}; +typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *); -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; -}; +typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *); -struct audit_tty_status { - __u32 enabled; - __u32 log_passwd; -}; +typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *); -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, -}; +typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); -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; -}; +typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); -typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *); +typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); -typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int); +typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); -typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int); +typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int); -typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int); +typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int); -typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int); +typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); -typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lock *); +typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); -typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lock *); +typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); -typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lock *); +typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); -typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lock *); +typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int); -typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lock *); +typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int); -typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lock *); +struct bpf_xfrm_state; -typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lock *, struct file_lock *); +typedef u64 (*btf_bpf_skb_get_xfrm_state)(struct sk_buff *, u32, struct bpf_xfrm_state *, u32, u64); -struct file_lock_list_struct { - spinlock_t lock; - struct hlist_head hlist; +struct bpf_xfrm_state { + __u32 reqid; + __u32 spi; + __u16 family; + __u16 ext; + union { + __u32 remote_ipv4; + __u32 remote_ipv6[4]; + }; }; -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 bpf_fib_lookup; -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]; -}; +typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32); -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 bpf_fib_lookup { + __u8 family; + __u8 l4_protocol; + __be16 sport; + __be16 dport; + union { + __u16 tot_len; + __u16 mtu_result; + }; + __u32 ifindex; + union { + __u8 tos; + __be32 flowinfo; + __u32 rt_metric; + }; + union { + __be32 ipv4_src; + __u32 ipv6_src[4]; + }; + union { + __be32 ipv4_dst; + __u32 ipv6_dst[4]; + }; + union { + struct { + __be16 h_vlan_proto; + __be16 h_vlan_TCI; + }; + __u32 tbid; + }; + __u8 smac[6]; + __u8 dmac[6]; }; -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]; -}; +typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32); -struct trace_event_raw_leases_conflict { - struct trace_entry ent; - void *lease; - void *breaker; - unsigned int l_fl_flags; - unsigned int b_fl_flags; - unsigned char l_fl_type; - unsigned char b_fl_type; - bool conflict; - char __data[0]; -}; +typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64); -struct flock64 { - short l_type; - short l_whence; - __kernel_loff_t l_start; - __kernel_loff_t l_len; - __kernel_pid_t l_pid; -}; +typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64); -struct trace_event_data_offsets_locks_get_lock_context {}; +typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32); -struct trace_event_data_offsets_filelock_lock {}; +typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32); -struct trace_event_data_offsets_filelock_lease {}; +typedef u64 (*btf_bpf_lwt_seg6_store_bytes)(struct sk_buff *, u32, const void *, u32); -struct trace_event_data_offsets_generic_add_lease {}; +typedef u64 (*btf_bpf_lwt_seg6_action)(struct sk_buff *, u32, void *, u32); -struct trace_event_data_offsets_leases_conflict {}; +typedef u64 (*btf_bpf_lwt_seg6_adjust_srh)(struct sk_buff *, u32, s32); -struct locks_iterator { - int li_cpu; - loff_t li_pos; -}; +struct bpf_sock_tuple; -struct nfs_io_completion { - void (*complete)(void *); - void *data; - struct kref refcount; -}; +typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct tracefs_dir_ops { - int (*mkdir)(const char *); - int (*rmdir)(const char *); +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 tracefs_mount_opts { - kuid_t uid; - kgid_t gid; - umode_t mode; - unsigned int opts; -}; +typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct tracefs_fs_info { - struct tracefs_mount_opts mount_opts; -}; +typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct selinux_kernel_status { - u32 version; - u32 sequence; - u32 enforcing; - u32 policyload; - u32 deny_unknown; -}; +typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct alg_type_list { - const struct af_alg_type *type; - struct list_head list; -}; +typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct af_alg_tsgl { - struct list_head list; - unsigned int cur; - struct scatterlist sg[0]; -}; +typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct af_alg_rsgl { - struct af_alg_sgl sgl; - struct list_head list; - size_t sg_num_bytes; -}; +typedef u64 (*btf_bpf_sk_release)(struct sock *); -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; -}; +typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); -struct af_alg_iv; +typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); -struct af_alg_control { - struct af_alg_iv *iv; - int op; - unsigned int aead_assoclen; -}; +typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); -struct af_alg_iv { - __u32 ivlen; - __u8 iv[0]; -}; +typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); -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; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - union { - struct aead_request aead_req; - struct skcipher_request skcipher_req; - } cra_u; -}; +typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); -struct sockaddr_alg_new { - __u16 salg_family; - __u8 salg_type[14]; - __u32 salg_feat; - __u32 salg_mask; - __u8 salg_name[0]; -}; +typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); -struct io_rw { - struct kiocb kiocb; - u64 addr; - u32 len; - rwf_t flags; +struct bpf_tcp_sock { + __u32 snd_cwnd; + __u32 srtt_us; + __u32 rtt_min; + __u32 snd_ssthresh; + __u32 rcv_nxt; + __u32 snd_nxt; + __u32 snd_una; + __u32 mss_cache; + __u32 ecn_flags; + __u32 rate_delivered; + __u32 rate_interval_us; + __u32 packets_out; + __u32 retrans_out; + __u32 total_retrans; + __u32 segs_in; + __u32 data_segs_in; + __u32 segs_out; + __u32 data_segs_out; + __u32 lost_out; + __u32 sacked_out; + __u64 bytes_received; + __u64 bytes_acked; + __u32 dsack_dups; + __u32 delivered; + __u32 delivered_ce; + __u32 icsk_retransmits; }; -struct io_rw_state { - struct iov_iter iter; - struct iov_iter_state iter_state; - struct iovec fast_iov[8]; -}; +typedef u64 (*btf_bpf_tcp_sock)(struct sock *); -struct io_async_rw { - struct io_rw_state s; - const struct iovec *free_iovec; - size_t bytes_done; - struct wait_page_queue wpq; -}; +typedef u64 (*btf_bpf_get_listener_sock)(struct sock *); -struct walk_rcec_data { - struct pci_dev *rcec; - int (*user_callback)(struct pci_dev *, void *); - void *user_data; -}; +typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *); -struct vring_desc; +typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); -typedef struct vring_desc vring_desc_t; +typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); -struct vring_avail; +typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64); -typedef struct vring_avail vring_avail_t; +typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64); -struct vring_used; +typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64); -typedef struct vring_used vring_used_t; +typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64); -struct vring { - unsigned int num; - vring_desc_t *desc; - vring_avail_t *avail; - vring_used_t *used; -}; +typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32); -struct vring_desc_state_split; +typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32); -struct vring_desc_extra; +typedef u64 (*btf_sk_reuseport_load_bytes)(const struct sk_reuseport_kern *, u32, void *, u32); -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; -}; +typedef u64 (*btf_sk_reuseport_load_bytes_relative)(const struct sk_reuseport_kern *, u32, void *, u32, u32); -struct vring_packed_desc; +typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, u64); -struct vring_packed_desc_event; +typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *); -struct vring_desc_state_packed; +typedef u64 (*btf_bpf_skc_to_tcp_sock)(struct sock *); -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; -}; +typedef u64 (*btf_bpf_skc_to_tcp_timewait_sock)(struct sock *); -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 (*btf_bpf_skc_to_tcp_request_sock)(struct sock *); -struct vring_desc { - __virtio64 addr; - __virtio32 len; - __virtio16 flags; - __virtio16 next; -}; +typedef u64 (*btf_bpf_skc_to_udp6_sock)(struct sock *); -struct vring_avail { - __virtio16 flags; - __virtio16 idx; - __virtio16 ring[0]; -}; +typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *); -struct vring_used_elem { - __virtio32 id; - __virtio32 len; -}; +typedef u64 (*btf_bpf_skc_to_mptcp_sock)(struct sock *); -typedef struct vring_used_elem vring_used_elem_t; +typedef u64 (*btf_bpf_sock_from_file)(struct file *); -struct vring_used { - __virtio16 flags; - __virtio16 idx; - vring_used_elem_t ring[0]; +struct tls_strparser { + struct sock *sk; + u32 mark: 8; + u32 stopped: 1; + u32 copy_mode: 1; + u32 mixed_decrypted: 1; + u32 msg_ready: 1; + struct strp_msg stm; + struct sk_buff *anchor; + struct work_struct work; }; -struct vring_desc_state_split { - void *data; - struct vring_desc *indir_desc; +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 vring_desc_extra { - dma_addr_t addr; - u32 len; - u16 flags; - u16 next; +struct udp6_sock { + struct udp_sock udp; + struct ipv6_pinfo inet6; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct vring_packed_desc { - __le64 addr; - __le32 len; - __le16 id; - __le16 flags; -}; +struct mptcp_sock {}; -struct vring_packed_desc_event { - __le16 off_wrap; - __le16 flags; -}; +typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *); -struct vring_desc_state_packed { - void *data; - struct vring_packed_desc *indir_desc; - u16 num; - u16 last; +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, }; -struct scsi_varlen_cdb_hdr { - __u8 opcode; - __u8 control; - __u8 misc[5]; - __u8 additional_cdb_length; - __be16 service_action; +enum ethtool_multicast_groups { + ETHNL_MCGRP_MONITOR = 0, }; -struct alps_protocol_info { - u16 version; - u8 byte0; - u8 mask0; - unsigned int flags; +struct ethnl_dump_ctx { + const struct ethnl_request_ops *ops; + struct ethnl_req_info *req_info; + struct ethnl_reply_data *reply_data; + unsigned long pos_ifindex; }; -struct alps_model_info { - u8 signature[3]; - struct alps_protocol_info protocol_info; +struct icmp_filter { + __u32 data; }; -struct alps_nibble_commands { - int command; - unsigned char data; +struct raw_sock { + struct inet_sock inet; + struct icmp_filter filter; + u32 ipmr_table; }; -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, +struct raw_frag_vec { + struct msghdr *msg; + union { + struct icmphdr icmph; + char c[1]; + } hdr; + int hlen; }; -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 rt0_hdr { + struct ipv6_rt_hdr rt_hdr; + __u32 reserved; + struct in6_addr addr[0]; }; -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 ioam6_hdr { + __u8 opt_type; + __u8 opt_len; + char: 8; + __u8 type; }; -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 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 alps_bitmap_point { - int start_bit; - int num_bits; +struct gss_pipe { + struct rpc_pipe_dir_object pdo; + struct rpc_pipe *pipe; + struct rpc_clnt *clnt; + const char *name; + struct kref kref; }; -struct usage_priority { - __u32 usage; - bool global; - unsigned int slot_overwrite; +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]; }; -typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int); +struct gss_alloc_pdo { + struct rpc_clnt *clnt; + const char *name; + const struct rpc_pipe_ops *upcall_ops; +}; -enum { - IF_LINK_MODE_DEFAULT = 0, - IF_LINK_MODE_DORMANT = 1, - IF_LINK_MODE_TESTING = 2, +enum handshake_handler_class { + HANDSHAKE_HANDLER_CLASS_NONE = 0, + HANDSHAKE_HANDLER_CLASS_TLSHD = 1, + HANDSHAKE_HANDLER_CLASS_MAX = 2, }; -enum lw_bits { - LW_URGENT = 0, +enum sysctl_writes_mode { + SYSCTL_WRITES_LEGACY = -1, + SYSCTL_WRITES_WARN = 0, + SYSCTL_WRITES_STRICT = 1, }; -enum { - SK_DIAG_BPF_STORAGE_REQ_NONE = 0, - SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, - __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, +struct do_proc_dointvec_minmax_conv_param { + int *min; + int *max; }; -enum { - SK_DIAG_BPF_STORAGE_REP_NONE = 0, - SK_DIAG_BPF_STORAGE = 1, - __SK_DIAG_BPF_STORAGE_REP_MAX = 2, +struct do_proc_douintvec_minmax_conv_param { + unsigned int *min; + unsigned int *max; }; -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 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, }; -typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t); +struct pci_p2pdma_map_state { + struct dev_pagemap *pgmap; + int map; + u64 bus_off; +}; -typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *); +typedef void (*btf_trace_cgroup_setup_root)(void *, struct cgroup_root *); -typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t); +typedef void (*btf_trace_cgroup_destroy_root)(void *, struct cgroup_root *); -typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *); +typedef void (*btf_trace_cgroup_remount)(void *, struct cgroup_root *); -struct bpf_sk_storage_diag { - u32 nr_maps; - struct bpf_map *maps[0]; -}; +typedef void (*btf_trace_cgroup_mkdir)(void *, struct cgroup *, const char *); -struct bpf_iter_seq_sk_storage_map_info { - struct bpf_map *map; - unsigned int bucket_id; - unsigned int skip_elems; -}; +typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *); -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; - }; -}; +typedef void (*btf_trace_cgroup_release)(void *, struct cgroup *, const char *); -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, -}; +typedef void (*btf_trace_cgroup_rename)(void *, struct cgroup *, const char *); -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, -}; +typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *); -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, -}; +typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *); -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, -}; +typedef void (*btf_trace_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool); -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, -}; +typedef void (*btf_trace_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool); -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, +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); + +enum cgroup2_param { + Opt_nsdelegate = 0, + Opt_favordynmods___2 = 1, + Opt_memory_localevents = 2, + Opt_memory_recursiveprot = 3, + Opt_memory_hugetlb_accounting = 4, + nr__cgroup2_params = 5, }; -struct ethnl_tunnel_info_dump_ctx { - struct ethnl_req_info req_info; - int pos_hash; - int pos_idx; +enum cgroup_opt_features { + OPT_FEATURE_COUNT = 0, }; -struct bpf_iter__udp { - union { - struct bpf_iter_meta *meta; - }; - union { - struct udp_sock *udp_sk; - }; - uid_t uid; - long: 0; - int bucket; +struct trace_event_raw_cgroup_root { + struct trace_entry ent; + int root; + u16 ss_mask; + u32 __data_loc_name; + char __data[0]; }; -struct bpf_udp_iter_state { - struct udp_iter_state state; - unsigned int cur_sk; - unsigned int end_sk; - unsigned int max_sk; - int offset; - struct sock **batch; - bool st_bucket_done; +struct trace_event_raw_cgroup { + struct trace_entry ent; + int root; + int level; + u64 id; + u32 __data_loc_path; + char __data[0]; }; -struct fib6_rule { - struct fib_rule common; - struct rt6key src; - struct rt6key dst; - dscp_t dscp; +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 errormap { - char *name; +struct trace_event_raw_cgroup_event { + struct trace_entry ent; + int root; + int level; + u64 id; + u32 __data_loc_path; int val; - int namelen; - struct hlist_node list; + char __data[0]; }; -struct klist_waiter { - struct list_head list; - struct klist_node *node; - struct task_struct *process; - int woken; +struct trace_event_data_offsets_cgroup_root { + u32 name; }; -struct __vdso_info { - const char *name; - const char *vdso_code_start; - const char *vdso_code_end; - unsigned long vdso_pages; - struct vm_special_mapping *dm; - struct vm_special_mapping *cm; +struct trace_event_data_offsets_cgroup { + u32 path; }; -enum vvar_pages { - VVAR_DATA_PAGE_OFFSET = 0, - VVAR_TIMENS_PAGE_OFFSET = 1, - VVAR_NR_PAGES = 2, +struct trace_event_data_offsets_cgroup_migrate { + u32 dst_path; + u32 comm; }; -struct ptrace_peeksiginfo_args { - __u64 off; - __u32 flags; - __s32 nr; +struct trace_event_data_offsets_cgroup_event { + u32 path; }; -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 ustring_buffer { + char buffer[1024]; }; -struct ptrace_rseq_configuration { - __u64 rseq_abi_pointer; - __u32 rseq_abi_size; - __u32 signature; - __u32 flags; - __u32 pad; +enum filter_pred_fn { + FILTER_PRED_FN_NOP = 0, + FILTER_PRED_FN_64 = 1, + FILTER_PRED_FN_64_CPUMASK = 2, + FILTER_PRED_FN_S64 = 3, + FILTER_PRED_FN_U64 = 4, + FILTER_PRED_FN_32 = 5, + FILTER_PRED_FN_32_CPUMASK = 6, + FILTER_PRED_FN_S32 = 7, + FILTER_PRED_FN_U32 = 8, + FILTER_PRED_FN_16 = 9, + FILTER_PRED_FN_16_CPUMASK = 10, + FILTER_PRED_FN_S16 = 11, + FILTER_PRED_FN_U16 = 12, + FILTER_PRED_FN_8 = 13, + FILTER_PRED_FN_8_CPUMASK = 14, + FILTER_PRED_FN_S8 = 15, + FILTER_PRED_FN_U8 = 16, + FILTER_PRED_FN_COMM = 17, + FILTER_PRED_FN_STRING = 18, + FILTER_PRED_FN_STRLOC = 19, + FILTER_PRED_FN_STRRELLOC = 20, + FILTER_PRED_FN_PCHAR_USER = 21, + FILTER_PRED_FN_PCHAR = 22, + FILTER_PRED_FN_CPU = 23, + FILTER_PRED_FN_CPU_CPUMASK = 24, + FILTER_PRED_FN_CPUMASK = 25, + FILTER_PRED_FN_CPUMASK_CPU = 26, + FILTER_PRED_FN_FUNCTION = 27, + FILTER_PRED_FN_ = 28, + FILTER_PRED_TEST_VISITED = 29, }; -enum uclamp_id { - UCLAMP_MIN = 0, - UCLAMP_MAX = 1, - UCLAMP_CNT = 2, +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 cpu_idle_type { - CPU_IDLE = 0, - CPU_NOT_IDLE = 1, - CPU_NEWLY_IDLE = 2, - CPU_MAX_IDLE_TYPES = 3, +enum { + TOO_MANY_CLOSE = -1, + TOO_MANY_OPEN = -2, + MISSING_QUOTE = -3, }; -enum fbq_type { - regular = 0, - remote = 1, - all = 2, +enum { + FILT_ERR_NONE = 0, + FILT_ERR_INVALID_OP = 1, + FILT_ERR_TOO_MANY_OPEN = 2, + FILT_ERR_TOO_MANY_CLOSE = 3, + FILT_ERR_MISSING_QUOTE = 4, + FILT_ERR_MISSING_BRACE_OPEN = 5, + FILT_ERR_MISSING_BRACE_CLOSE = 6, + FILT_ERR_OPERAND_TOO_LONG = 7, + FILT_ERR_EXPECT_STRING = 8, + FILT_ERR_EXPECT_DIGIT = 9, + FILT_ERR_ILLEGAL_FIELD_OP = 10, + FILT_ERR_FIELD_NOT_FOUND = 11, + FILT_ERR_ILLEGAL_INTVAL = 12, + FILT_ERR_BAD_SUBSYS_FILTER = 13, + FILT_ERR_TOO_MANY_PREDS = 14, + FILT_ERR_INVALID_FILTER = 15, + FILT_ERR_INVALID_CPULIST = 16, + FILT_ERR_IP_FIELD_ONLY = 17, + FILT_ERR_INVALID_VALUE = 18, + FILT_ERR_NO_FUNCTION = 19, + FILT_ERR_ERRNO = 20, + FILT_ERR_NO_FILTER = 21, }; -enum migration_type { - migrate_load = 0, - migrate_util = 1, - migrate_task = 2, - migrate_misfit = 3, +enum { + INVERT = 1, + PROCESS_AND = 2, + PROCESS_OR = 4, }; -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, -}; +struct regex; -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 filter_pred { + struct regex *regex; + struct cpumask *mask; + unsigned short *ops; + struct ftrace_event_field *field; + u64 val; + u64 val2; + enum filter_pred_fn fn_num; + int offset; + int not; + int op; }; -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; -}; +typedef int (*regex_match_func)(char *, struct regex *, int); -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 regex { + char pattern[256]; + int len; + int field_len; + regex_match_func match; }; -struct tp_transition_snapshot { - unsigned long rcu; - unsigned long srcu; - bool ongoing; +struct filter_list { + struct list_head list; + struct event_filter *filter; }; -enum tp_func_state { - TP_FUNC_0 = 0, - TP_FUNC_1 = 1, - TP_FUNC_2 = 2, - TP_FUNC_N = 3, +struct filter_parse_error { + int lasterr; + int lasterr_pos; }; -enum tp_transition_sync { - TP_TRANSITION_SYNC_1_0_1 = 0, - TP_TRANSITION_SYNC_N_2_1 = 1, - _NR_TP_TRANSITION_SYNC = 2, +struct function_filter_data { + struct ftrace_ops *ops; + int first_filter; + int first_notrace; }; -struct tp_probes { - struct callback_head rcu; - struct tracepoint_func probes[0]; +typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **); + +struct trace_fprobe { + struct dyn_event devent; + struct fprobe fp; + const char *symbol; + struct tracepoint *tpoint; + struct module *mod; + struct trace_probe tp; }; -typedef unsigned long perf_trace_t[1024]; +struct fexit_trace_entry_head { + struct trace_entry ent; + unsigned long func; + unsigned long ret_ip; +}; -struct bpf_iter__bpf_link { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_link *link; - }; +struct fentry_trace_entry_head { + struct trace_entry ent; + unsigned long ip; }; -struct bpf_iter_seq_link_info { - u32 link_id; +struct __find_tracepoint_cb_data { + const char *tp_name; + struct tracepoint *tpoint; }; +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 *); + struct mlock_fbatch { local_lock_t lock; struct folio_batch fbatch; }; -struct proc_fs_opts { - int flag; - const char *str; -}; - -struct nfs_ssc_client_ops_tbl { - const struct nfs4_ssc_client_ops *ssc_nfs4_ops; - const struct nfs_ssc_client_ops *ssc_nfs_ops; -}; +typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); -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, - Opt_xprtsec = 54, +struct core_name { + char *corename; + int used; + int size; }; -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 criteria { + CR_POWER2_ALIGNED = 0, + CR_GOAL_LEN_FAST = 1, + CR_BEST_AVAIL_LEN = 2, + CR_GOAL_LEN_SLOW = 3, + CR_ANY_FREE = 4, + EXT4_MB_NUM_CRS = 5, }; enum { - Opt_lookupcache_all = 0, - Opt_lookupcache_none = 1, - Opt_lookupcache_positive = 2, + MB_INODE_PA = 0, + MB_GROUP_PA = 1, }; -enum { - Opt_local_lock_all = 0, - Opt_local_lock_flock = 1, - Opt_local_lock_none = 2, - Opt_local_lock_posix = 3, +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; }; -enum { - Opt_write_lazy = 0, - Opt_write_eager = 1, - Opt_write_wait = 2, +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; }; -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, +struct sg { + struct ext4_group_info info; + ext4_grpblk_t counters[18]; }; -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 isofs_fid { + u32 block; + u16 offset; + u16 parent_offset; + u32 generation; + u32 parent_block; + u32 parent_generation; }; -enum { - Opt_xprtsec_none = 0, - Opt_xprtsec_tls = 1, - Opt_xprtsec_mtls = 2, - nr__Opt_xprtsec = 3, +struct nfs_page_iter_page { + const struct nfs_page *req; + size_t count; }; -struct compat_nfs_string { - compat_uint_t len; - compat_uptr_t data; +struct nfs4_cached_acl { + enum nfs4_acl_type type; + int cached; + size_t len; + char data[0]; }; -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 nfs41_exchange_id_data { + struct nfs41_exchange_id_res res; + struct nfs41_exchange_id_args args; }; -struct nfs2_fh { - char data[32]; +struct nfs4_get_lease_time_data { + struct nfs4_get_lease_time_args *args; + struct nfs4_get_lease_time_res *res; + struct nfs_client *clp; }; -struct nfs3_fh { - unsigned short size; - unsigned char data[64]; +struct nfs4_lock_waiter { + struct inode *inode; + struct nfs_lowner owner; + wait_queue_entry_t wait; }; -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 nfs4_call_sync_data { + const struct nfs_server *seq_server; + struct nfs4_sequence_args *seq_args; + struct nfs4_sequence_res *seq_res; }; -struct nfs_string { - unsigned int len; - const char __attribute__((btf_type_tag("user"))) *data; +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_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; +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; }; -enum nfs4_ff_op_type { - NFS4_FF_OP_LAYOUTSTATS = 0, - NFS4_FF_OP_LAYOUTRETURN = 1, +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; }; -enum pnfs_layouttype { - LAYOUT_NFSV4_1_FILES = 1, - LAYOUT_OSD2_OBJECTS = 2, - LAYOUT_BLOCK_VOLUME = 3, - LAYOUT_FLEX_FILES = 4, - LAYOUT_SCSI = 5, - LAYOUT_TYPE_MAX = 6, +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_flexfile_layoutreturn_args { - struct list_head errors; - struct nfs42_layoutstat_devinfo devinfo[4]; - unsigned int num_errors; - unsigned int num_dev; - struct page *pages[1]; +struct nfs4_open_createattrs { + struct nfs4_label *label; + struct iattr *sattr; + const __u32 verf[2]; }; -struct blkpg_partition { - long long start; - long long length; - int pno; - char devname[64]; - char volname[64]; +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 blkpg_ioctl_arg { - int op; - int flags; - int datalen; - void __attribute__((btf_type_tag("user"))) *data; +struct rpc_bind_conn_calldata { + struct nfs_client *clp; + const struct cred *cred; }; -struct pr_preempt { - __u64 old_key; - __u64 new_key; - __u32 type; - __u32 flags; +struct nfs4_sequence_data { + struct nfs_client *clp; + struct nfs4_sequence_args args; + struct nfs4_sequence_res res; }; -struct pr_clear { - __u64 key; - __u32 flags; - __u32 __pad; +struct nfs_release_lockowner_res { + struct nfs4_sequence_res seq_res; }; -struct pr_reservation { - __u64 key; - __u32 type; - __u32 flags; +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 pr_registration { - __u64 old_key; - __u64 new_key; - __u32 flags; - __u32 __pad; +struct nfs4_renewdata { + struct nfs_client *client; + unsigned long timestamp; }; -struct compat_hd_geometry { - unsigned char heads; - unsigned char sectors; - unsigned short cylinders; - u32 start; +struct nfs_free_stateid_data { + struct nfs_server *server; + struct nfs41_free_stateid_args args; + struct nfs41_free_stateid_res res; }; -struct compat_blkpg_ioctl_arg { - compat_int_t op; - compat_int_t flags; - compat_int_t datalen; - compat_caddr_t data; +struct nfs4_reclaim_complete_data { + struct nfs_client *clp; + struct nfs41_reclaim_complete_args arg; + struct nfs41_reclaim_complete_res res; }; -struct io_uring_rsrc_update { - __u32 offset; - __u32 resv; - __u64 data; +struct hashtab_key_params { + u32 (*hash)(const void *); + int (*cmp)(const void *, const void *); }; -typedef U32 (*ZSTD_getAllMatchesFn)(ZSTD_match_t *, ZSTD_matchState_t *, U32 *, const BYTE *, const BYTE *, const U32 *, const U32, const U32); +struct policydb_compat_info { + unsigned int version; + unsigned int sym_num; + unsigned int ocon_num; +}; -typedef struct { - rawSeqStore_t seqStore; - U32 startPosInBlock; - U32 endPosInBlock; - U32 offset; -} ZSTD_optLdm_t; +struct match_workbuf { + unsigned int count; + unsigned int pos; + unsigned int len; + unsigned int size; + unsigned int history[24]; +}; -struct pci_dev_reset_methods { - u16 vendor; - u16 device; - int (*reset)(struct pci_dev *, bool); +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 pci_dev_acs_enabled { - u16 vendor; - u16 device; - int (*acs_enabled)(struct pci_dev *, u16); +enum { + SOCKET_URING_OP_SIOCINQ = 0, + SOCKET_URING_OP_SIOCOUTQ = 1, + SOCKET_URING_OP_GETSOCKOPT = 2, + SOCKET_URING_OP_SETSOCKOPT = 3, }; -struct pci_dev_acs_ops { - u16 vendor; - u16 device; - int (*enable_acs)(struct pci_dev *); - int (*disable_acs_redir)(struct pci_dev *); +typedef struct { + S16 norm[53]; + U32 wksp[285]; +} ZSTD_BuildCTableWksp; + +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; + +struct node_groups { + unsigned int id; + union { + unsigned int ngroups; + unsigned int ncpus; + }; }; -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, +struct pcie_pme_service_data { + spinlock_t lock; + struct pcie_device *srv; + struct work_struct work; + bool noirq; }; -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, +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; }; -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, +struct acpi_pci_link { + struct list_head list; + struct acpi_device *device; + struct acpi_pci_link_irq irq; + int refcnt; +}; + +struct acpi_table_cdat { + u32 length; + u8 revision; + u8 checksum; + u8 reserved[6]; + u32 sequence; }; -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, +struct _ccu_mult { + unsigned long mult; + unsigned long min; + unsigned long max; }; -enum { - SWITCHTEC_NTB_REG_INFO_OFFSET = 0, - SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384, - SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600, +struct ccu_nk { + u16 reg; + u32 enable; + u32 lock; + struct ccu_mult_internal n; + struct ccu_mult_internal k; + unsigned int fixed_post_div; + struct ccu_common common; }; -struct ntb_ctrl_regs { - u32 partition_status; - u32 partition_op; - u32 partition_ctrl; - u32 bar_setup; - u32 bar_error; - u16 lut_table_entries; - u16 lut_table_offset; - u32 lut_error; - u16 req_id_table_size; - u16 req_id_table_offset; - u32 req_id_error; - u32 reserved1[7]; - struct { - u32 ctl; - u32 win_size; - u64 xlate_addr; - } bar_entry[6]; - struct { - u32 win_size; - u32 reserved[3]; - } bar_ext_entry[6]; - u32 reserved2[192]; - u32 req_id_table[512]; - u32 reserved3[256]; - u64 lut_entry[512]; +struct _ccu_nk { + unsigned long n; + unsigned long min_n; + unsigned long max_n; + unsigned long k; + unsigned long min_k; + unsigned long max_k; }; -struct nt_partition_info { - u32 xlink_enabled; - u32 target_part_low; - u32 target_part_high; - u32 reserved; +struct class_attribute_string { + struct class_attribute attr; + char *str; }; -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 class_compat { + struct kobject *kobj; +}; -struct acpi_device_properties { - const guid_t *guid; - union acpi_object *properties; - struct list_head list; - void **bufs; +struct conflict_context { + struct nd_region *nd_region; + resource_size_t start; + resource_size_t size; }; enum { - ERASE = 0, - WERASE = 1, - KILL = 2, + mechtype_caddy = 0, + mechtype_tray = 1, + mechtype_popup = 2, + mechtype_individual_changer = 4, + mechtype_cartridge_changer = 5, }; -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 quirk_entry { + u16 vid; + u16 pid; + u32 flags; }; -struct mctrl_gpios { - struct uart_port *port; - struct gpio_desc *gpio[6]; - int irq[6]; - unsigned int mctrl_prev; - bool mctrl_on; +enum xhci_overhead_type { + LS_OVERHEAD_TYPE = 0, + FS_OVERHEAD_TYPE = 1, + HS_OVERHEAD_TYPE = 2, }; -struct swnode { - struct kobject kobj; - struct fwnode_handle fwnode; - const struct software_node *node; - int id; - struct ida child_ids; - struct list_head entry; - struct list_head children; - struct swnode *parent; - unsigned int allocated: 1; - unsigned int managed: 1; +struct goldfish_rtc { + void *base; + int irq; + struct rtc_device *rtc; }; -struct software_node_ref_args { - const struct software_node *node; - unsigned int nargs; - u64 args[8]; +struct opp_config_data { + struct opp_table *opp_table; + unsigned int flags; }; -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; +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, }; -typedef void (*rtl_phy_cfg_fct)(struct rtl8169_private *, struct phy_device *); +struct debug_reply_data { + struct ethnl_reply_data base; + u32 msg_mask; +}; -struct phy_reg { - u16 reg; - u16 val; +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 usb_phy_roothub { - struct phy *phy; - struct list_head list; +struct eeprom_req_info { + struct ethnl_req_info base; + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; }; -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 eeprom_reply_data { + struct ethnl_reply_data base; + u32 length; + u8 *data; }; -struct efi { - const efi_runtime_services_t *runtime; - unsigned int runtime_version; - unsigned int runtime_supported_mask; - unsigned long acpi; - unsigned long acpi20; - unsigned long smbios; - unsigned long smbios3; - unsigned long esrt; - unsigned long tpm_log; - unsigned long tpm_final_log; - unsigned long mokvar_table; - unsigned long coco_secret; - unsigned long unaccepted; - efi_get_time_t *get_time; - efi_set_time_t *set_time; - efi_get_wakeup_time_t *get_wakeup_time; - efi_set_wakeup_time_t *set_wakeup_time; - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_set_variable_t *set_variable_nonblocking; - efi_query_variable_info_t *query_variable_info; - efi_query_variable_info_t *query_variable_info_nonblocking; - efi_update_capsule_t *update_capsule; - efi_query_capsule_caps_t *query_capsule_caps; - efi_get_next_high_mono_count_t *get_next_high_mono_count; - efi_reset_system_t *reset_system; - struct efi_memory_map memmap; - unsigned long flags; +struct bpf_iter__tcp { + union { + struct bpf_iter_meta *meta; + }; + union { + struct sock_common *sk_common; + }; + uid_t uid; }; -typedef struct { - efi_guid_t guid; - u64 table; -} efi_config_table_64_t; +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 linux_efi_random_seed { - u32 size; - u8 bits[0]; +enum { + INET_DIAG_REQ_NONE = 0, + INET_DIAG_REQ_BYTECODE = 1, + INET_DIAG_REQ_SK_BPF_STORAGES = 2, + INET_DIAG_REQ_PROTOCOL = 3, + __INET_DIAG_REQ_MAX = 4, }; -struct rmem_assigned_device { - struct device *dev; - struct reserved_mem *rmem; - struct list_head list; +enum { + INET_DIAG_BC_NOP = 0, + INET_DIAG_BC_JMP = 1, + INET_DIAG_BC_S_GE = 2, + INET_DIAG_BC_S_LE = 3, + INET_DIAG_BC_D_GE = 4, + INET_DIAG_BC_D_LE = 5, + INET_DIAG_BC_AUTO = 6, + INET_DIAG_BC_S_COND = 7, + INET_DIAG_BC_D_COND = 8, + INET_DIAG_BC_DEV_COND = 9, + INET_DIAG_BC_MARK_COND = 10, + INET_DIAG_BC_S_EQ = 11, + INET_DIAG_BC_D_EQ = 12, + INET_DIAG_BC_CGROUP_COND = 13, }; -typedef int (*reservedmem_of_init_fn)(struct reserved_mem *); +struct inet_diag_hostcond { + __u8 family; + __u8 prefix_len; + int port; + __be32 addr[0]; +}; -enum __sk_action { - __SK_DROP = 0, - __SK_PASS = 1, - __SK_REDIRECT = 2, - __SK_NONE = 3, +struct inet_diag_markcond { + __u32 mark; + __u32 mask; }; -enum sk_psock_state_bits { - SK_PSOCK_TX_ENABLED = 0, - SK_PSOCK_RX_STRP_ENABLED = 1, +struct inet_diag_dump_data { + struct nlattr *req_nlas[4]; + struct bpf_sk_storage_diag *bpf_stg_diag; }; -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, +struct inet_diag_entry { + const __be32 *saddr; + const __be32 *daddr; + u16 sport; + u16 dport; + u16 family; + u16 userlocks; + u32 ifindex; + u32 mark; + u64 cgroup_id; }; -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 inet_diag_bc_op { + unsigned char code; + unsigned char yes; + unsigned short no; }; -struct mm_reply_data { - struct ethnl_reply_data base; - struct ethtool_mm_state state; - struct ethtool_mm_stats stats; +struct inet_diag_req { + __u8 idiag_family; + __u8 idiag_src_len; + __u8 idiag_dst_len; + __u8 idiag_ext; + struct inet_diag_sockid id; + __u32 idiag_states; + __u32 idiag_dbs; }; -struct tcp_plb_state { - u8 consec_cong_rounds: 5; - u8 unused: 3; - u32 pause_until; +struct inet_diag_sockopt { + __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 unused: 5; }; -enum { - TCP_BPF_IPV4 = 0, - TCP_BPF_IPV6 = 1, - TCP_BPF_NUM_PROTS = 2, +struct inet_diag_meminfo { + __u32 idiag_rmem; + __u32 idiag_wmem; + __u32 idiag_fmem; + __u32 idiag_tmem; }; -enum { - TCP_BPF_BASE = 0, - TCP_BPF_TX = 1, - TCP_BPF_RX = 2, - TCP_BPF_TXRX = 3, - TCP_BPF_NUM_CFGS = 4, +enum ip6_defrag_users { + IP6_DEFRAG_LOCAL_DELIVER = 0, + IP6_DEFRAG_CONNTRACK_IN = 1, + __IP6_DEFRAG_CONNTRACK_IN = 65536, + IP6_DEFRAG_CONNTRACK_OUT = 65537, + __IP6_DEFRAG_CONNTRACK_OUT = 131072, + IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 131073, + __IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 196608, }; -struct tx_work { - struct delayed_work work; - struct sock *sk; +struct frag_queue { + struct inet_frag_queue q; + int iif; + __u16 nhoffset; + u8 ecn; }; -struct tls_rec; +typedef struct { + void *read; + void *write; +} efi_pci_io_protocol_access_t; -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; -}; +typedef enum { + EfiPciIoWidthUint8 = 0, + EfiPciIoWidthUint16 = 1, + EfiPciIoWidthUint32 = 2, + EfiPciIoWidthUint64 = 3, + EfiPciIoWidthFifoUint8 = 4, + EfiPciIoWidthFifoUint16 = 5, + EfiPciIoWidthFifoUint32 = 6, + EfiPciIoWidthFifoUint64 = 7, + EfiPciIoWidthFillUint8 = 8, + EfiPciIoWidthFillUint16 = 9, + EfiPciIoWidthFillUint32 = 10, + EfiPciIoWidthFillUint64 = 11, + EfiPciIoWidthMaximum = 12, +} EFI_PCI_IO_PROTOCOL_WIDTH; -union efi_rng_protocol; +union efi_pci_io_protocol; -typedef union efi_rng_protocol efi_rng_protocol_t; +typedef union efi_pci_io_protocol efi_pci_io_protocol_t; -union efi_rng_protocol { +typedef efi_status_t (*efi_pci_io_protocol_cfg_t)(efi_pci_io_protocol_t *, EFI_PCI_IO_PROTOCOL_WIDTH, u32, unsigned long, void *); + +typedef struct { + efi_pci_io_protocol_cfg_t read; + efi_pci_io_protocol_cfg_t write; +} efi_pci_io_protocol_config_access_t; + +typedef struct { + u32 read; + u32 write; +} efi_pci_io_protocol_access_32_t; + +union efi_pci_io_protocol { struct { - efi_status_t (*get_info)(efi_rng_protocol_t *, unsigned long *, efi_guid_t *); - efi_status_t (*get_rng)(efi_rng_protocol_t *, efi_guid_t *, unsigned long, u8 *); + void *poll_mem; + void *poll_io; + efi_pci_io_protocol_access_t mem; + efi_pci_io_protocol_access_t io; + efi_pci_io_protocol_config_access_t pci; + void *copy_mem; + void *map; + void *unmap; + void *allocate_buffer; + void *free_buffer; + void *flush; + efi_status_t (*get_location)(efi_pci_io_protocol_t *, unsigned long *, unsigned long *, unsigned long *, unsigned long *); + void *attributes; + void *get_bar_attributes; + void *set_bar_attributes; + uint64_t romsize; + void *romimage; }; struct { - u32 get_info; - u32 get_rng; + u32 poll_mem; + u32 poll_io; + efi_pci_io_protocol_access_32_t mem; + efi_pci_io_protocol_access_32_t io; + efi_pci_io_protocol_access_32_t pci; + u32 copy_mem; + u32 map; + u32 unmap; + u32 allocate_buffer; + u32 free_buffer; + u32 flush; + u32 get_location; + u32 attributes; + u32 get_bar_attributes; + u32 set_bar_attributes; + u64 romsize; + u32 romimage; } mixed_mode; }; -struct tcpa_event { - u32 pcr_index; - u32 event_type; - u8 pcr_value[20]; - u32 event_size; - u8 event_data[0]; -}; - #ifndef BPF_NO_PRESERVE_ACCESS_INDEX #pragma clang attribute pop #endif diff --git a/crates/bpf-builder/include/x86_64/vmlinux.h b/crates/bpf-builder/include/x86_64/vmlinux.h index 545efbd9..e38f7d98 120000 --- a/crates/bpf-builder/include/x86_64/vmlinux.h +++ b/crates/bpf-builder/include/x86_64/vmlinux.h @@ -1 +1 @@ -vmlinux_6_5_2.h \ No newline at end of file +vmlinux_6_7_2.h \ No newline at end of file diff --git a/crates/bpf-builder/include/x86_64/vmlinux_6_5_2.h b/crates/bpf-builder/include/x86_64/vmlinux_6_7_2.h similarity index 96% rename from crates/bpf-builder/include/x86_64/vmlinux_6_5_2.h rename to crates/bpf-builder/include/x86_64/vmlinux_6_7_2.h index df2d017f..c7c95687 100644 --- a/crates/bpf-builder/include/x86_64/vmlinux_6_5_2.h +++ b/crates/bpf-builder/include/x86_64/vmlinux_6_7_2.h @@ -1,5 +1,5 @@ // File autogenerated with `cargo xtask vmlinux`. DO NOT EDIT MANUALLY! -// Kernel 6.5.2 compiled with clang +// Kernel 6.7.2 compiled with clang-15 #ifndef __VMLINUX_H__ #define __VMLINUX_H__ @@ -8,457 +8,63 @@ #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; +struct obs_kernel_param { + const char *str; + int (*setup_func)(char *); + int early; }; -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; +typedef unsigned long long __u64; -struct extra_reg; +typedef __u64 u64; -struct perf_guest_switch_msr; +typedef u64 phys_addr_t; -struct pmu; +typedef unsigned short umode_t; -struct x86_hybrid_pmu; +typedef unsigned long __kernel_ulong_t; -typedef unsigned char __u8; +typedef __kernel_ulong_t __kernel_size_t; -typedef __u8 u8; +typedef __kernel_size_t size_t; -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 ctl_table; -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; -}; +typedef long long __kernel_loff_t; -struct list_head { - struct list_head *next; - struct list_head *prev; -}; +typedef __kernel_loff_t loff_t; -struct rb_node { - unsigned long __rb_parent_color; - struct rb_node *rb_right; - struct rb_node *rb_left; -}; +typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *); -struct hlist_node { - struct hlist_node *next; - struct hlist_node **pprev; -}; +struct ctl_table_poll; -enum perf_event_state { - PERF_EVENT_STATE_DEAD = -4, - PERF_EVENT_STATE_EXIT = -3, - PERF_EVENT_STATE_ERROR = -2, - PERF_EVENT_STATE_OFF = -1, - PERF_EVENT_STATE_INACTIVE = 0, - PERF_EVENT_STATE_ACTIVE = 1, +struct ctl_table { + const char *procname; + void *data; + int maxlen; + umode_t mode; + enum { + SYSCTL_TABLE_TYPE_DEFAULT = 0, + SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY = 1, + } type; + proc_handler *proc_handler; + struct ctl_table_poll *poll; + void *extra1; + void *extra2; }; 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; + int counter; +} atomic_t; -typedef unsigned int __u32; +typedef unsigned char __u8; -typedef int __s32; +typedef __u8 u8; 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; @@ -479,19 +85,6 @@ 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; @@ -500,6 +93,11 @@ struct spinlock { typedef struct spinlock spinlock_t; +struct list_head { + struct list_head *next; + struct list_head *prev; +}; + struct wait_queue_head { spinlock_t lock; struct list_head head; @@ -507,187 +105,49 @@ struct wait_queue_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; +struct ctl_table_poll { + atomic_t event; + wait_queue_head_t wait; }; -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, +enum { + Root_NFS = 255, + Root_CIFS = 254, + Root_Generic = 253, + Root_RAM0 = 1048576, }; -typedef int (*ftrace_ops_func_t)(struct ftrace_ops *, enum ftrace_ops_cmd); - -struct ftrace_ops { - ftrace_func_t func; - struct ftrace_ops __attribute__((btf_type_tag("rcu"))) *next; - unsigned long flags; - void *private; - ftrace_func_t saved_func; - struct ftrace_ops_hash local_hash; - struct ftrace_ops_hash *func_hash; - struct ftrace_ops_hash old_hash; - unsigned long trampoline; - unsigned long trampoline_size; - struct list_head list; - ftrace_ops_func_t ops_func; - unsigned long direct_call; +enum { + false = 0, + true = 1, }; -struct perf_event_context; - -struct perf_buffer; - -struct fasync_struct; - -struct perf_addr_filter_range; - -struct pid_namespace; +typedef unsigned int gfp_t; -struct bpf_prog; +typedef _Bool bool; -struct trace_event_call; +typedef unsigned int __u32; -struct event_filter; +typedef __u32 u32; -struct perf_cgroup; +typedef u32 __kernel_dev_t; -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; - __u32 orig_type; -}; +typedef __kernel_dev_t dev_t; struct module; struct device; +struct attribute_group; + struct perf_cpu_pmu_context; +struct perf_event; + struct mm_struct; +struct perf_event_pmu_context; + struct kmem_cache; struct perf_output_handle; @@ -735,6 +195,24 @@ struct pmu { int (*check_period)(struct perf_event *, u64); }; +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); +}; + enum module_state { MODULE_STATE_LIVE = 0, MODULE_STATE_COMING = 1, @@ -785,8 +263,39 @@ struct module_kobject { struct completion *kobj_completion; }; +typedef int __s32; + typedef __s32 s32; +typedef long long __s64; + +typedef __s64 s64; + +typedef struct { + s64 counter; +} atomic64_t; + +typedef atomic64_t atomic_long_t; + +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 rb_node { + unsigned long __rb_parent_color; + struct rb_node *rb_right; + struct rb_node *rb_left; +}; + struct latch_tree_node { struct rb_node node[2]; }; @@ -843,6 +352,8 @@ struct bpf_raw_event_map; struct jump_entry; +struct trace_event_call; + struct trace_eval_map; struct static_call_site; @@ -985,19 +496,19 @@ struct kobj_type { void (*get_ownership)(const struct kobject *, kuid_t *, kgid_t *); }; -typedef unsigned long __kernel_ulong_t; +typedef long __kernel_long_t; -typedef __kernel_ulong_t __kernel_size_t; +typedef __kernel_long_t __kernel_ssize_t; -typedef __kernel_size_t size_t; +typedef __kernel_ssize_t ssize_t; + +struct attribute; struct sysfs_ops { ssize_t (*show)(struct kobject *, struct attribute *, char *); ssize_t (*store)(struct kobject *, struct attribute *, const char *, size_t); }; -typedef unsigned short umode_t; - struct attribute { const char *name; umode_t mode; @@ -1013,10 +524,6 @@ struct attribute_group { struct bin_attribute **bin_attrs; }; -typedef long long __kernel_loff_t; - -typedef __kernel_loff_t loff_t; - struct address_space; struct file; @@ -1030,11 +537,10 @@ struct bin_attribute { struct address_space * (*f_mapping)(); ssize_t (*read)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); ssize_t (*write)(struct file *, struct kobject *, struct bin_attribute *, char *, loff_t, size_t); + loff_t (*llseek)(struct file *, struct kobject *, struct bin_attribute *, loff_t, int); int (*mmap)(struct file *, struct kobject *, struct bin_attribute *, struct vm_area_struct *); }; -typedef unsigned int gfp_t; - struct xarray { spinlock_t xa_lock; gfp_t xa_flags; @@ -1058,8 +564,6 @@ struct rb_root_cached { struct rb_node *rb_leftmost; }; -typedef __u32 u32; - typedef u32 errseq_t; struct inode; @@ -1073,24 +577,27 @@ struct address_space { 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; + struct rw_semaphore i_mmap_rwsem; errseq_t wb_err; spinlock_t private_lock; struct list_head private_list; void *private_data; }; +struct hlist_node; + struct hlist_head { struct hlist_node *first; }; -typedef u32 __kernel_dev_t; - -typedef __kernel_dev_t dev_t; +struct callback_head { + struct callback_head *next; + void (*func)(struct callback_head *); +}; typedef __s64 time64_t; @@ -1101,12 +608,19 @@ struct timespec64 { typedef u64 blkcnt_t; +struct hlist_node { + struct hlist_node *next; + struct hlist_node **pprev; +}; + struct posix_acl; struct inode_operations; struct super_block; +struct bdi_writeback; + struct file_operations; struct file_lock_context; @@ -1136,9 +650,9 @@ struct inode { }; dev_t i_rdev; loff_t i_size; - struct timespec64 i_atime; - struct timespec64 i_mtime; - struct timespec64 i_ctime; + struct timespec64 __i_atime; + struct timespec64 __i_mtime; + struct timespec64 __i_ctime; spinlock_t i_lock; unsigned short i_bytes; u8 i_blkbits; @@ -1150,6 +664,10 @@ struct inode { unsigned long dirtied_time_when; struct hlist_node i_hash; struct list_head i_io_list; + struct bdi_writeback *i_wb; + int i_wb_frn_winner; + u16 i_wb_frn_avg_time; + u16 i_wb_frn_history; struct list_head i_lru; struct list_head i_sb_list; struct list_head i_wb_list; @@ -1198,6 +716,8 @@ struct fiemap_extent_info; struct fileattr; +struct offset_ctx; + struct inode_operations { struct dentry * (*lookup)(struct inode *, struct dentry *, unsigned int); const char * (*get_link)(struct dentry *, struct inode *, struct delayed_call *); @@ -1216,13 +736,21 @@ struct inode_operations { 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 (*update_time)(struct inode *, int); int (*atomic_open)(struct inode *, struct dentry *, struct file *, unsigned int, umode_t); int (*tmpfile)(struct mnt_idmap *, struct inode *, struct file *, umode_t); struct posix_acl * (*get_acl)(struct mnt_idmap *, struct dentry *, int); int (*set_acl)(struct mnt_idmap *, struct dentry *, struct posix_acl *, int); int (*fileattr_set)(struct mnt_idmap *, struct dentry *, struct fileattr *); int (*fileattr_get)(struct dentry *, struct fileattr *); + struct offset_ctx * (*get_offset_ctx)(struct inode *); + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; struct hlist_bl_node { @@ -1358,6 +886,12 @@ struct rcu_sync { struct callback_head cb_head; }; +struct task_struct; + +struct rcuwait { + struct task_struct __attribute__((btf_type_tag("rcu"))) *task; +}; + struct percpu_rw_semaphore { struct rcu_sync rss; unsigned int __attribute__((btf_type_tag("percpu"))) *read_count; @@ -1367,7 +901,8 @@ struct percpu_rw_semaphore { }; struct sb_writers { - int frozen; + unsigned short frozen; + unsigned short freeze_holders; struct percpu_rw_semaphore rw_sem[3]; }; @@ -1375,22 +910,14 @@ typedef struct { __u8 b[16]; } uuid_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 list_head list; + int shrinker_id; + bool memcg_aware; + struct xarray xa; }; struct work_struct; @@ -1417,8 +944,12 @@ struct xattr_handler; struct block_device; +struct bdev_handle; + struct backing_dev_info; +struct shrinker; + struct workqueue_struct; struct user_namespace; @@ -1442,10 +973,11 @@ struct super_block { int s_count; atomic_t s_active; void *s_security; - const struct xattr_handler **s_xattr; + const struct xattr_handler * const *s_xattr; struct hlist_bl_head s_roots; struct list_head s_mounts; struct block_device *s_bdev; + struct bdev_handle *s_bdev_handle; struct backing_dev_info *s_bdi; struct mtd_info *s_mtd; struct hlist_node s_instances; @@ -1464,7 +996,7 @@ struct super_block { struct mutex s_vfs_rename_mutex; const char *s_subtype; const struct dentry_operations *s_d_op; - struct shrinker s_shrink; + struct shrinker *s_shrink; atomic_long_t s_remove_count; atomic_long_t s_fsnotify_connectors; int s_readonly_remount; @@ -1478,7 +1010,9 @@ struct super_block { struct work_struct destroy_work; struct mutex s_sync_lock; int s_stack_depth; - long: 0; + long: 64; + long: 64; + long: 64; spinlock_t s_inode_list_lock; struct list_head s_inodes; spinlock_t s_inode_wblist_lock; @@ -1529,6 +1063,11 @@ struct fs_parameter_spec { const void *data; }; +enum freeze_holder { + FREEZE_HOLDER_KERNEL = 1, + FREEZE_HOLDER_USERSPACE = 2, +}; + struct writeback_control; struct kstatfs; @@ -1537,6 +1076,8 @@ struct seq_file; struct dquot; +struct shrink_control; + struct super_operations { struct inode * (*alloc_inode)(struct super_block *); void (*destroy_inode)(struct inode *); @@ -1547,9 +1088,9 @@ struct super_operations { 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_super)(struct super_block *, enum freeze_holder); int (*freeze_fs)(struct super_block *); - int (*thaw_super)(struct super_block *); + int (*thaw_super)(struct super_block *, enum freeze_holder); int (*unfreeze_fs)(struct super_block *); int (*statfs)(struct dentry *, struct kstatfs *); int (*remount_fs)(struct super_block *, int *, char *); @@ -1590,6 +1131,10 @@ struct seq_operations { int (*show)(struct seq_file *, void *); }; +struct llist_node { + struct llist_node *next; +}; + typedef unsigned int fmode_t; struct qrwlock { @@ -1671,6 +1216,8 @@ struct file { errseq_t f_sb_err; }; +struct pid_namespace; + struct upid { int nr; struct pid_namespace *ns; @@ -1729,6 +1276,16 @@ struct thread_info { u32 cpu; }; +struct __call_single_node { + struct llist_node llist; + union { + unsigned int u_flags; + atomic_t a_flags; + }; + u16 src; + u16 dst; +}; + struct load_weight { unsigned long weight; u32 inv_weight; @@ -1756,12 +1313,16 @@ struct cfs_rq; struct sched_entity { struct load_weight load; struct rb_node run_node; + u64 deadline; + u64 min_deadline; struct list_head group_node; unsigned int on_rq; u64 exec_start; u64 sum_exec_runtime; - u64 vruntime; u64 prev_sum_exec_runtime; + u64 vruntime; + s64 vlag; + u64 slice; u64 nr_migrations; int depth; struct sched_entity *parent; @@ -1770,10 +1331,6 @@ struct sched_entity { unsigned long runnable_weight; long: 64; long: 64; - long: 64; - long: 64; - long: 64; - long: 64; struct sched_avg avg; }; @@ -1787,6 +1344,31 @@ struct sched_rt_entity { struct sched_rt_entity *back; }; +typedef s64 ktime_t; + +struct timerqueue_node { + struct rb_node node; + ktime_t expires; +}; + +enum hrtimer_restart { + HRTIMER_NORESTART = 0, + HRTIMER_RESTART = 1, +}; + +struct hrtimer_clock_base; + +struct hrtimer { + struct timerqueue_node node; + ktime_t _softexpires; + enum hrtimer_restart (*function)(struct hrtimer *); + struct hrtimer_clock_base *base; + u8 state; + u8 is_rel; + u8 is_soft; + u8 is_hard; +}; + struct sched_dl_entity { struct rb_node rb_node; u64 dl_runtime; @@ -2238,6 +1820,8 @@ struct compat_robust_list_head; struct futex_pi_state; +struct perf_event_context; + struct mempolicy; struct rseq; @@ -2246,6 +1830,10 @@ struct task_delay_info; struct ftrace_ret_stack; +struct mem_cgroup; + +struct obj_cgroup; + struct gendisk; struct uprobe_task; @@ -2261,6 +1849,7 @@ struct user_event_mm; struct task_struct { struct thread_info thread_info; unsigned int __state; + unsigned int saved_state; void *stack; refcount_t usage; unsigned int flags; @@ -2317,6 +1906,7 @@ struct task_struct { struct rb_node pushable_dl_tasks; struct mm_struct *mm; struct mm_struct *active_mm; + struct address_space *faults_disabled_mapping; int exit_state; int exit_code; int exit_signal; @@ -2328,9 +1918,11 @@ struct task_struct { unsigned int sched_migrated: 1; long: 29; unsigned int sched_remote_wakeup: 1; + unsigned int sched_rt_mutex: 1; unsigned int in_execve: 1; unsigned int in_iowait: 1; unsigned int restore_sigmask: 1; + unsigned int in_user_fault: 1; unsigned int no_cgroup_migration: 1; unsigned int frozen: 1; unsigned int use_memdelay: 1; @@ -2351,7 +1943,6 @@ struct task_struct { 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; @@ -2459,6 +2050,12 @@ struct task_struct { atomic_t trace_overrun; atomic_t tracing_graph_pause; unsigned long trace_recursion; + struct mem_cgroup *memcg_in_oom; + gfp_t memcg_oom_gfp_mask; + int memcg_oom_order; + unsigned int memcg_nr_pages_over_high; + struct mem_cgroup *active_memcg; + struct obj_cgroup *objcg; struct gendisk *throttle_disk; struct uprobe_task *utask; struct kmap_ctrl kmap_ctrl; @@ -2488,6 +2085,10 @@ struct task_struct { long: 64; long: 64; long: 64; + long: 64; + long: 64; + long: 64; + long: 64; struct thread_struct thread; }; @@ -2541,7 +2142,7 @@ struct sched_class { 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); + void (*wakeup_preempt)(struct rq *, struct task_struct *, int); struct task_struct * (*pick_next_task)(struct rq *); void (*put_prev_task)(struct rq *, struct task_struct *); void (*set_next_task)(struct rq *, struct task_struct *, bool); @@ -2572,8 +2173,8 @@ struct maple_tree { spinlock_t ma_lock; lockdep_map_p ma_external_lock; }; - void __attribute__((btf_type_tag("rcu"))) *ma_root; unsigned int ma_flags; + void __attribute__((btf_type_tag("rcu"))) *ma_root; }; typedef unsigned long pgdval_t; @@ -2684,6 +2285,7 @@ struct mm_struct { unsigned long flags; spinlock_t ioctx_lock; struct kioctx_table __attribute__((btf_type_tag("rcu"))) *ioctx_table; + struct task_struct __attribute__((btf_type_tag("rcu"))) *owner; struct user_namespace *user_ns; struct file __attribute__((btf_type_tag("rcu"))) *exe_file; struct mmu_notifier_subscriptions *notifier_subscriptions; @@ -2754,8 +2356,6 @@ struct uid_gid_map { }; }; -struct ctl_table; - struct ctl_table_root; struct ctl_table_set; @@ -2768,6 +2368,7 @@ struct ctl_table_header { union { struct { struct ctl_table *ctl_table; + int ctl_table_size; int used; int count; int nreg; @@ -2793,6 +2394,8 @@ struct ctl_table_set { struct ctl_dir dir; }; +struct binfmt_misc; + struct user_namespace { struct uid_gid_map uid_map; struct uid_gid_map gid_map; @@ -2813,6 +2416,7 @@ struct user_namespace { struct ucounts *ucounts; long ucount_max[10]; long rlimit_max[4]; + struct binfmt_misc *binfmt_misc; }; struct nsset; @@ -2960,30 +2564,6 @@ struct key_type { struct lock_class_key lock_class; }; -typedef int proc_handler(struct ctl_table *, int, void *, size_t *, loff_t *); - -struct ctl_table_poll; - -struct ctl_table { - const char *procname; - void *data; - int maxlen; - umode_t mode; - enum { - SYSCTL_TABLE_TYPE_DEFAULT = 0, - SYSCTL_TABLE_TYPE_PERMANENTLY_EMPTY = 1, - } type; - proc_handler *proc_handler; - struct ctl_table_poll *poll; - void *extra1; - void *extra2; -}; - -struct ctl_table_poll { - atomic_t event; - wait_queue_head_t wait; -}; - struct swait_queue_head { raw_spinlock_t lock; struct list_head task_list; @@ -3044,7 +2624,7 @@ struct user_struct; struct group_info; struct cred { - atomic_t usage; + atomic_long_t usage; kuid_t uid; kgid_t gid; kuid_t suid; @@ -3097,7 +2677,7 @@ struct user_struct { }; struct group_info { - atomic_t usage; + refcount_t usage; int ngroups; kgid_t gid[0]; }; @@ -3115,7 +2695,7 @@ struct time_namespace; struct cgroup_namespace; struct nsproxy { - atomic_t count; + refcount_t count; struct uts_namespace *uts_ns; struct ipc_namespace *ipc_ns; struct mnt_namespace *mnt_ns; @@ -3138,7 +2718,7 @@ struct cgroup_subsys_state; struct cgroup; struct css_set { - struct cgroup_subsys_state *subsys[14]; + struct cgroup_subsys_state *subsys[15]; refcount_t refcount; struct css_set *dom_cset; struct cgroup *dfl_cgrp; @@ -3147,7 +2727,7 @@ struct css_set { struct list_head mg_tasks; struct list_head dying_tasks; struct list_head task_iters; - struct list_head e_cset_node[14]; + struct list_head e_cset_node[15]; struct list_head threaded_csets; struct list_head threaded_csets_node; struct hlist_node hlist; @@ -3212,9 +2792,9 @@ struct cgroup_base_stat { struct bpf_prog_array; struct cgroup_bpf { - struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *effective[23]; - struct hlist_head progs[23]; - u8 flags[23]; + struct bpf_prog_array __attribute__((btf_type_tag("rcu"))) *effective[28]; + struct hlist_head progs[28]; + u8 flags[28]; struct list_head storages; struct bpf_prog_array *inactive; struct percpu_ref refcnt; @@ -3254,10 +2834,10 @@ struct cgroup { u16 subtree_ss_mask; u16 old_subtree_control; u16 old_subtree_ss_mask; - struct cgroup_subsys_state __attribute__((btf_type_tag("rcu"))) *subsys[14]; + struct cgroup_subsys_state __attribute__((btf_type_tag("rcu"))) *subsys[15]; struct cgroup_root *root; struct list_head cset_links; - struct list_head e_csets[14]; + struct list_head e_csets[15]; struct cgroup *dom_cgrp; struct cgroup *old_dom_cgrp; struct cgroup_rstat_cpu __attribute__((btf_type_tag("percpu"))) *rstat_cpu; @@ -3342,6 +2922,7 @@ struct kernfs_ops { ssize_t (*write)(struct kernfs_open_file *, char *, size_t, loff_t); __poll_t (*poll)(struct kernfs_open_file *, struct poll_table_struct *); int (*mmap)(struct kernfs_open_file *, struct vm_area_struct *); + loff_t (*llseek)(struct kernfs_open_file *, loff_t, int); }; struct vm_operations_struct; @@ -3364,12 +2945,6 @@ struct kernfs_open_file { 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 { @@ -3379,7 +2954,7 @@ struct vm_operations_struct { 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 (*huge_fault)(struct vm_fault *, unsigned int); vm_fault_t (*map_pages)(struct vm_fault *, unsigned long, unsigned long); unsigned long (*pagesize)(struct vm_area_struct *); vm_fault_t (*page_mkwrite)(struct vm_fault *); @@ -3387,7 +2962,7 @@ struct vm_operations_struct { int (*access)(struct vm_area_struct *, unsigned long, void *, int, int); const char * (*name)(struct vm_area_struct *); int (*set_policy)(struct vm_area_struct *, struct mempolicy *); - struct mempolicy * (*get_policy)(struct vm_area_struct *, unsigned long); + struct mempolicy * (*get_policy)(struct vm_area_struct *, unsigned long, unsigned long *); struct page * (*find_special_page)(struct vm_area_struct *, unsigned long); }; @@ -3530,24 +3105,11 @@ struct page { 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; - }; + 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; @@ -3559,7 +3121,7 @@ struct page { unsigned int page_type; }; atomic_t _refcount; - long: 64; + unsigned long memcg_data; }; struct range { @@ -3651,12 +3213,16 @@ struct cgroup_rstat_cpu { struct u64_stats_sync bsync; struct cgroup_base_stat bstat; struct cgroup_base_stat last_bstat; + struct cgroup_base_stat subtree_bstat; + struct cgroup_base_stat last_subtree_bstat; struct cgroup *updated_children; struct cgroup *updated_next; }; struct psi_group {}; +struct bpf_prog; + struct bpf_cgroup_storage; struct bpf_prog_array_item { @@ -3698,6 +3264,7 @@ struct cgroup_subsys { void (*css_reset)(struct cgroup_subsys_state *); void (*css_rstat_flush)(struct cgroup_subsys_state *, int); int (*css_extra_stat_show)(struct seq_file *, struct cgroup_subsys_state *); + int (*css_local_stat_show)(struct seq_file *, struct cgroup_subsys_state *); int (*can_attach)(struct cgroup_taskset *); void (*cancel_attach)(struct cgroup_taskset *); void (*attach)(struct cgroup_taskset *); @@ -4061,6 +3628,10 @@ struct perf_event_groups { u64 index; }; +typedef struct { + atomic_long_t a; +} local_t; + struct perf_event_context { raw_spinlock_t lock; struct mutex mutex; @@ -4151,6 +3722,536 @@ struct return_instance { struct return_instance *next; }; +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; +}; + +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 { + local_t a; +} local64_t; + +struct perf_event_attr { + __u32 type; + __u32 size; + __u64 config; + union { + __u64 sample_period; + __u64 sample_freq; + }; + __u64 sample_type; + __u64 read_format; + __u64 disabled: 1; + __u64 inherit: 1; + __u64 pinned: 1; + __u64 exclusive: 1; + __u64 exclude_user: 1; + __u64 exclude_kernel: 1; + __u64 exclude_hv: 1; + __u64 exclude_idle: 1; + __u64 mmap: 1; + __u64 comm: 1; + __u64 freq: 1; + __u64 inherit_stat: 1; + __u64 enable_on_exec: 1; + __u64 task: 1; + __u64 watermark: 1; + __u64 precise_ip: 2; + __u64 mmap_data: 1; + __u64 sample_id_all: 1; + __u64 exclude_host: 1; + __u64 exclude_guest: 1; + __u64 exclude_callchain_kernel: 1; + __u64 exclude_callchain_user: 1; + __u64 mmap2: 1; + __u64 comm_exec: 1; + __u64 use_clockid: 1; + __u64 context_switch: 1; + __u64 write_backward: 1; + __u64 namespaces: 1; + __u64 ksymbol: 1; + __u64 bpf_event: 1; + __u64 aux_output: 1; + __u64 cgroup: 1; + __u64 text_poke: 1; + __u64 build_id: 1; + __u64 inherit_thread: 1; + __u64 remove_on_exec: 1; + __u64 sigtrap: 1; + __u64 __reserved_1: 26; + union { + __u32 wakeup_events; + __u32 wakeup_watermark; + }; + __u32 bp_type; + union { + __u64 bp_addr; + __u64 kprobe_func; + __u64 uprobe_path; + __u64 config1; + }; + union { + __u64 bp_len; + __u64 kprobe_addr; + __u64 probe_offset; + __u64 config2; + }; + __u64 branch_sample_type; + __u64 sample_regs_user; + __u32 sample_stack_user; + __s32 clockid; + __u64 sample_regs_intr; + __u32 aux_watermark; + __u16 sample_max_stack; + __u16 __reserved_2; + __u32 aux_sample_size; + __u32 __reserved_3; + __u64 sig_data; + __u64 config3; +}; + +struct hw_perf_event_extra { + u64 config; + unsigned int reg; + int alloc; + int idx; +}; + +struct arch_hw_breakpoint { + unsigned long address; + unsigned long mask; + u8 len; + u8 type; +}; + +struct 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 hw_perf_event { + union { + struct { + u64 config; + u64 last_tag; + unsigned long config_base; + unsigned long event_base; + int event_base_rdpmc; + int idx; + int last_cpu; + int flags; + struct hw_perf_event_extra extra_reg; + struct hw_perf_event_extra branch_reg; + }; + struct { + struct hrtimer hrtimer; + }; + struct { + struct list_head tp_list; + }; + struct { + u64 pwr_acc; + u64 ptsc; + }; + struct { + struct arch_hw_breakpoint info; + struct rhlist_head bp_list; + }; + struct { + u8 iommu_bank; + u8 iommu_cntr; + u16 padding; + u64 conf; + u64 conf1; + }; + }; + struct task_struct *target; + void *addr_filters; + unsigned long addr_filters_gen; + int state; + local64_t prev_count; + u64 sample_period; + union { + struct { + u64 last_period; + local64_t period_left; + }; + struct { + u64 saved_metric; + u64 saved_slots; + }; + }; + u64 interrupts_seq; + u64 interrupts; + u64 freq_time_stamp; + u64 freq_count_stamp; +}; + +struct irq_work { + struct __call_single_node node; + void (*func)(struct irq_work *); + struct rcuwait irqwait; +}; + +struct perf_addr_filters_head { + struct list_head list; + raw_spinlock_t lock; + unsigned int nr_file_filters; +}; + +struct perf_sample_data; + +struct pt_regs; + +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; + unsigned long direct_call; +}; + +struct perf_buffer; + +struct fasync_struct; + +struct perf_addr_filter_range; + +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; + unsigned int group_generation; + struct perf_event *group_leader; + struct pmu *pmu; + void *pmu_private; + enum perf_event_state state; + unsigned int attach_state; + local64_t count; + atomic64_t child_count; + u64 total_time_enabled; + u64 total_time_running; + u64 tstamp; + struct perf_event_attr attr; + u16 header_size; + u16 id_header_size; + u16 read_size; + struct hw_perf_event hw; + struct perf_event_context *ctx; + struct perf_event_pmu_context *pmu_ctx; + atomic_long_t refcount; + atomic64_t child_total_time_enabled; + atomic64_t child_total_time_running; + struct mutex child_mutex; + struct list_head child_list; + struct perf_event *parent; + int oncpu; + int cpu; + struct list_head owner_entry; + struct task_struct *owner; + struct mutex mmap_mutex; + atomic_t mmap_count; + struct perf_buffer *rb; + struct list_head rb_entry; + unsigned long rcu_batches; + int rcu_pending; + wait_queue_head_t waitq; + struct fasync_struct *fasync; + unsigned int pending_wakeup; + unsigned int pending_kill; + unsigned int pending_disable; + unsigned int pending_sigtrap; + unsigned long pending_addr; + struct irq_work pending_irq; + struct callback_head pending_task; + unsigned int pending_work; + atomic_t event_limit; + struct perf_addr_filters_head addr_filters; + struct perf_addr_filter_range *addr_filter_ranges; + unsigned long addr_filters_gen; + struct perf_event *aux_event; + void (*destroy)(struct perf_event *); + struct callback_head callback_head; + struct pid_namespace *ns; + u64 id; + atomic64_t lost_samples; + u64 (*clock)(); + perf_overflow_handler_t overflow_handler; + void *overflow_handler_context; + perf_overflow_handler_t orig_overflow_handler; + struct bpf_prog *prog; + u64 bpf_cookie; + struct trace_event_call *tp_event; + struct event_filter *filter; + struct ftrace_ops ftrace_ops; + struct perf_cgroup *cgrp; + void *security; + struct list_head sb_list; + __u32 orig_type; +}; + +struct perf_event_pmu_context { + struct pmu *pmu; + struct perf_event_context *ctx; + struct list_head pmu_ctx_entry; + struct list_head pinned_active; + struct list_head flexible_active; + unsigned int embedded: 1; + unsigned int nr_events; + unsigned int nr_cgroups; + atomic_t refcount; + struct callback_head callback_head; + void *task_ctx_data; + int rotate_necessary; +}; + +struct 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 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 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 math_emu_info { long ___orig_eip; struct pt_regs *regs; @@ -4196,7 +4297,7 @@ struct file_operations { ssize_t (*splice_write)(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); ssize_t (*splice_read)(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); void (*splice_eof)(struct file *); - int (*setlease)(struct file *, long, struct file_lock **, void **); + int (*setlease)(struct file *, int, 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); @@ -4215,7 +4316,10 @@ struct kiocb { void *private; int ki_flags; u16 ki_ioprio; - struct wait_page_queue *ki_waitq; + union { + struct wait_page_queue *ki_waitq; + ssize_t (*dio_complete)(void *); + }; }; struct iovec { @@ -4232,11 +4336,7 @@ struct iov_iter { bool copy_mc; bool nofault; bool data_source; - bool user_backed; - union { - size_t iov_offset; - int last_offset; - }; + size_t iov_offset; union { struct iovec __ubuf_iovec; struct { @@ -4322,8 +4422,6 @@ struct dquot { struct mem_dqblk dq_dqb; }; -struct mem_cgroup; - struct shrink_control { gfp_t gfp_mask; int nid; @@ -4476,6 +4574,21 @@ struct fsnotify_mark_connector { struct hlist_head list; }; +struct shrinker { + unsigned long (*count_objects)(struct shrinker *, struct shrink_control *); + unsigned long (*scan_objects)(struct shrinker *, struct shrink_control *); + long batch; + int seeks; + unsigned int flags; + refcount_t refcount; + struct completion done; + struct callback_head rcu; + void *private_data; + struct list_head list; + int id; + atomic_long_t *nr_deferred; +}; + struct list_lru_one { struct list_head list; long nr_items; @@ -4545,6 +4658,11 @@ struct kstat { u64 change_cookie; }; +struct offset_ctx { + struct xarray xa; + u32 next_offset; +}; + typedef u64 sector_t; enum migrate_mode { @@ -4583,6 +4701,10 @@ struct address_space_operations { int (*swap_rw)(struct kiocb *, struct iov_iter *); }; +typedef struct { + unsigned long val; +} swp_entry_t; + struct folio { union { struct { @@ -4596,9 +4718,13 @@ struct folio { }; struct address_space *mapping; unsigned long index; - void *private; + union { + void *private; + swp_entry_t swap; + }; atomic_t _mapcount; atomic_t _refcount; + unsigned long memcg_data; }; struct page page; }; @@ -4606,8 +4732,7 @@ struct folio { struct { unsigned long _flags_1; unsigned long _head_1; - unsigned char _folio_dtor; - unsigned char _folio_order; + unsigned long _folio_avail; atomic_t _entire_mapcount; atomic_t _nr_pages_mapped; atomic_t _pincount; @@ -5275,6 +5400,7 @@ enum iommu_cap { IOMMU_CAP_PRE_BOOT_PROTECTION = 2, IOMMU_CAP_ENFORCE_CACHE_COHERENCY = 3, IOMMU_CAP_DEFERRED_FLUSH = 4, + IOMMU_CAP_DIRTY_TRACKING = 5, }; enum iommu_dev_features { @@ -5286,6 +5412,8 @@ typedef unsigned int ioasid_t; struct iommu_domain; +struct iommu_user_data; + struct iommu_device; struct of_phandle_args; @@ -5298,11 +5426,13 @@ struct iommu_domain_ops; struct iommu_ops { bool (*capable)(struct device *, enum iommu_cap); + void * (*hw_info)(struct device *, u32 *, u32 *); struct iommu_domain * (*domain_alloc)(unsigned int); + struct iommu_domain * (*domain_alloc_user)(struct device *, u32, struct iommu_domain *, const struct iommu_user_data *); + struct iommu_domain * (*domain_alloc_paging)(struct device *); 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 *); @@ -5315,6 +5445,9 @@ struct iommu_ops { const struct iommu_domain_ops *default_domain_ops; unsigned long pgsize_bitmap; struct module *owner; + struct iommu_domain *identity_domain; + struct iommu_domain *blocked_domain; + struct iommu_domain *default_domain; }; struct wakeup_source { @@ -5352,6 +5485,7 @@ struct dev_pm_domain { int (*activate)(struct device *); void (*sync)(struct device *); void (*dismiss)(struct device *); + int (*set_performance_state)(struct device *, unsigned int); }; typedef u64 dma_addr_t; @@ -5363,8 +5497,6 @@ enum dma_data_direction { DMA_NONE = 3, }; -typedef u64 phys_addr_t; - struct sg_table; struct scatterlist; @@ -5410,6 +5542,64 @@ struct device_dma_parameters { unsigned long segment_boundary_mask; }; +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; +}; + +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 class { const char *name; const struct attribute_group **class_groups; @@ -5455,20 +5645,6 @@ struct device_physical_location { 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; @@ -5495,422 +5671,1806 @@ struct perf_output_handle { 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 cpu_perf_ibs { + struct perf_event *event; + unsigned long state[1]; }; -struct perf_addr_filter_range { - unsigned long start; - unsigned long size; +struct syscore_ops { + struct list_head node; + int (*suspend)(); + void (*resume)(); + void (*shutdown)(); }; -union perf_sample_weight { - __u64 full; +typedef int (*nmi_handler_t)(unsigned int, struct pt_regs *); + +struct nmiaction { + struct list_head list; + nmi_handler_t handler; + u64 max_duration; + unsigned long flags; + const char *name; +}; + +struct 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); +}; + +struct perf_pmu_events_attr { + struct device_attribute attr; + u64 id; + const char *event_str; +}; + +enum perf_type_id { + PERF_TYPE_HARDWARE = 0, + PERF_TYPE_SOFTWARE = 1, + PERF_TYPE_TRACEPOINT = 2, + PERF_TYPE_HW_CACHE = 3, + PERF_TYPE_RAW = 4, + PERF_TYPE_BREAKPOINT = 5, + PERF_TYPE_MAX = 6, +}; + +enum perf_hw_id { + PERF_COUNT_HW_CPU_CYCLES = 0, + PERF_COUNT_HW_INSTRUCTIONS = 1, + PERF_COUNT_HW_CACHE_REFERENCES = 2, + PERF_COUNT_HW_CACHE_MISSES = 3, + PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 4, + PERF_COUNT_HW_BRANCH_MISSES = 5, + PERF_COUNT_HW_BUS_CYCLES = 6, + PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 7, + PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 8, + PERF_COUNT_HW_REF_CPU_CYCLES = 9, + PERF_COUNT_HW_MAX = 10, +}; + +enum ibs_states { + IBS_ENABLED = 0, + IBS_STARTED = 1, + IBS_STOPPING = 2, + IBS_STOPPED = 3, + IBS_MAX_STATES = 4, +}; + +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 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_PERCPU_CNT_DEAD = 31, + CPUHP_RADIX_DEAD = 32, + CPUHP_PAGE_ALLOC = 33, + CPUHP_NET_DEV_DEAD = 34, + CPUHP_PCI_XGENE_DEAD = 35, + CPUHP_IOMMU_IOVA_DEAD = 36, + CPUHP_LUSTRE_CFS_DEAD = 37, + CPUHP_AP_ARM_CACHE_B15_RAC_DEAD = 38, + CPUHP_PADATA_DEAD = 39, + CPUHP_AP_DTPM_CPU_DEAD = 40, + CPUHP_RANDOM_PREPARE = 41, + CPUHP_WORKQUEUE_PREP = 42, + CPUHP_POWER_NUMA_PREPARE = 43, + CPUHP_HRTIMERS_PREPARE = 44, + CPUHP_PROFILE_PREPARE = 45, + CPUHP_X2APIC_PREPARE = 46, + CPUHP_SMPCFD_PREPARE = 47, + CPUHP_RELAY_PREPARE = 48, + CPUHP_SLAB_PREPARE = 49, + CPUHP_MD_RAID5_PREPARE = 50, + CPUHP_RCUTREE_PREP = 51, + CPUHP_CPUIDLE_COUPLED_PREPARE = 52, + CPUHP_POWERPC_PMAC_PREPARE = 53, + CPUHP_POWERPC_MMU_CTX_PREPARE = 54, + CPUHP_XEN_PREPARE = 55, + CPUHP_XEN_EVTCHN_PREPARE = 56, + CPUHP_ARM_SHMOBILE_SCU_PREPARE = 57, + CPUHP_SH_SH3X_PREPARE = 58, + CPUHP_NET_FLOW_PREPARE = 59, + CPUHP_TOPOLOGY_PREPARE = 60, + CPUHP_NET_IUCV_PREPARE = 61, + CPUHP_ARM_BL_PREPARE = 62, + CPUHP_TRACE_RB_PREPARE = 63, + CPUHP_MM_ZS_PREPARE = 64, + CPUHP_MM_ZSWP_MEM_PREPARE = 65, + CPUHP_MM_ZSWP_POOL_PREPARE = 66, + CPUHP_KVM_PPC_BOOK3S_PREPARE = 67, + CPUHP_ZCOMP_PREPARE = 68, + CPUHP_TIMERS_PREPARE = 69, + CPUHP_MIPS_SOC_PREPARE = 70, + CPUHP_BP_PREPARE_DYN = 71, + CPUHP_BP_PREPARE_DYN_END = 91, + CPUHP_BP_KICK_AP = 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_VFP_STARTING = 118, + CPUHP_AP_ARM64_DEBUG_MONITORS_STARTING = 119, + CPUHP_AP_PERF_ARM_HW_BREAKPOINT_STARTING = 120, + CPUHP_AP_PERF_ARM_ACPI_STARTING = 121, + CPUHP_AP_PERF_ARM_STARTING = 122, + CPUHP_AP_PERF_RISCV_STARTING = 123, + CPUHP_AP_ARM_L2X0_STARTING = 124, + CPUHP_AP_EXYNOS4_MCT_TIMER_STARTING = 125, + CPUHP_AP_ARM_ARCH_TIMER_STARTING = 126, + CPUHP_AP_ARM_ARCH_TIMER_EVTSTRM_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_XEN_RUNSTATE_STARTING = 144, + CPUHP_AP_ARM_CORESIGHT_STARTING = 145, + CPUHP_AP_ARM_CORESIGHT_CTI_STARTING = 146, + CPUHP_AP_ARM64_ISNDEP_STARTING = 147, + CPUHP_AP_SMPCFD_DYING = 148, + CPUHP_AP_HRTIMERS_DYING = 149, + CPUHP_AP_X86_TBOOT_DYING = 150, + CPUHP_AP_ARM_CACHE_B15_RAC_DYING = 151, + CPUHP_AP_ONLINE = 152, + CPUHP_TEARDOWN_CPU = 153, + CPUHP_AP_ONLINE_IDLE = 154, + CPUHP_AP_HYPERV_ONLINE = 155, + CPUHP_AP_KVM_ONLINE = 156, + CPUHP_AP_SCHED_WAIT_EMPTY = 157, + CPUHP_AP_SMPBOOT_THREADS = 158, + CPUHP_AP_IRQ_AFFINITY_ONLINE = 159, + CPUHP_AP_BLK_MQ_ONLINE = 160, + CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 161, + CPUHP_AP_X86_INTEL_EPB_ONLINE = 162, + CPUHP_AP_PERF_ONLINE = 163, + CPUHP_AP_PERF_X86_ONLINE = 164, + CPUHP_AP_PERF_X86_UNCORE_ONLINE = 165, + CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 166, + CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 167, + CPUHP_AP_PERF_X86_RAPL_ONLINE = 168, + CPUHP_AP_PERF_X86_CQM_ONLINE = 169, + CPUHP_AP_PERF_X86_CSTATE_ONLINE = 170, + CPUHP_AP_PERF_X86_IDXD_ONLINE = 171, + CPUHP_AP_PERF_S390_CF_ONLINE = 172, + CPUHP_AP_PERF_S390_SF_ONLINE = 173, + CPUHP_AP_PERF_ARM_CCI_ONLINE = 174, + CPUHP_AP_PERF_ARM_CCN_ONLINE = 175, + CPUHP_AP_PERF_ARM_HISI_CPA_ONLINE = 176, + CPUHP_AP_PERF_ARM_HISI_DDRC_ONLINE = 177, + CPUHP_AP_PERF_ARM_HISI_HHA_ONLINE = 178, + CPUHP_AP_PERF_ARM_HISI_L3_ONLINE = 179, + CPUHP_AP_PERF_ARM_HISI_PA_ONLINE = 180, + CPUHP_AP_PERF_ARM_HISI_SLLC_ONLINE = 181, + CPUHP_AP_PERF_ARM_HISI_PCIE_PMU_ONLINE = 182, + CPUHP_AP_PERF_ARM_HNS3_PMU_ONLINE = 183, + CPUHP_AP_PERF_ARM_L2X0_ONLINE = 184, + CPUHP_AP_PERF_ARM_QCOM_L2_ONLINE = 185, + CPUHP_AP_PERF_ARM_QCOM_L3_ONLINE = 186, + CPUHP_AP_PERF_ARM_APM_XGENE_ONLINE = 187, + CPUHP_AP_PERF_ARM_CAVIUM_TX2_UNCORE_ONLINE = 188, + CPUHP_AP_PERF_ARM_MARVELL_CN10K_DDR_ONLINE = 189, + CPUHP_AP_PERF_POWERPC_NEST_IMC_ONLINE = 190, + CPUHP_AP_PERF_POWERPC_CORE_IMC_ONLINE = 191, + CPUHP_AP_PERF_POWERPC_THREAD_IMC_ONLINE = 192, + CPUHP_AP_PERF_POWERPC_TRACE_IMC_ONLINE = 193, + CPUHP_AP_PERF_POWERPC_HV_24x7_ONLINE = 194, + CPUHP_AP_PERF_POWERPC_HV_GPCI_ONLINE = 195, + CPUHP_AP_PERF_CSKY_ONLINE = 196, + CPUHP_AP_WATCHDOG_ONLINE = 197, + CPUHP_AP_WORKQUEUE_ONLINE = 198, + CPUHP_AP_RANDOM_ONLINE = 199, + CPUHP_AP_RCUTREE_ONLINE = 200, + CPUHP_AP_BASE_CACHEINFO_ONLINE = 201, + CPUHP_AP_ONLINE_DYN = 202, + CPUHP_AP_ONLINE_DYN_END = 232, + CPUHP_AP_MM_DEMOTION_ONLINE = 233, + CPUHP_AP_X86_HPET_ONLINE = 234, + CPUHP_AP_X86_KVM_CLK_ONLINE = 235, + CPUHP_AP_ACTIVE = 236, + CPUHP_ONLINE = 237, +}; + +enum { + NMI_LOCAL = 0, + NMI_UNKNOWN = 1, + NMI_SERR = 2, + NMI_IO_CHECK = 3, + NMI_MAX = 4, +}; + +union ibs_fetch_ctl { + __u64 val; struct { - __u32 var1_dw; - __u16 var2_w; - __u16 var3_w; + __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 perf_mem_data_src { +typedef unsigned long uintptr_t; + +union ibs_op_ctl { __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; + __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_regs { - __u64 abi; - struct pt_regs *regs; +struct perf_ibs_data { + u32 size; + union { + u32 data[0]; + u32 caps; + }; + u64 regs[8]; }; -struct perf_callchain_entry; - -struct perf_raw_record; - -struct perf_branch_stack; +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; + }; +}; -struct perf_sample_data { - u64 sample_flags; - u64 period; - u64 dyn_size; - u64 type; +union ibs_op_data2 { + __u64 val; struct { - u32 pid; - u32 tid; - } tid_entry; - u64 time; - u64 id; + __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 { - 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; + __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 perf_callchain_entry { - __u64 nr; - __u64 ip[0]; +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 long (*perf_copy_f)(void *, const void *, unsigned long, unsigned long); +typedef unsigned short pci_dev_flags_t; -struct perf_raw_frag { +struct pci_vpd { + struct mutex lock; + unsigned int len; + u8 cap; +}; + +struct pci_bus; + +struct proc_dir_entry; + +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; + u8 pm_cap; + unsigned int imm_ready: 1; + unsigned int pme_support: 5; + unsigned int pme_poll: 1; + unsigned int d1_support: 1; + unsigned int d2_support: 1; + unsigned int no_d1d2: 1; + unsigned int no_d3cold: 1; + unsigned int bridge_d3: 1; + unsigned int d3cold_allowed: 1; + unsigned int mmio_always_on: 1; + unsigned int wakeup_prepared: 1; + unsigned int skip_bus_pm: 1; + unsigned int ignore_hotplug: 1; + unsigned int hotplug_user_indicators: 1; + unsigned int clear_retrain_link: 1; + unsigned int d3hot_delay; + unsigned int d3cold_delay; + struct pcie_link_state *link_state; + u16 l1ss; + unsigned int ltr_path: 1; + unsigned int pasid_no_tlp: 1; + unsigned int eetlp_prefix_path: 1; + pci_channel_state_t error_state; + struct device dev; + int cfg_size; + unsigned int irq; + struct resource resource[11]; + struct resource driver_exclusive_resource; + bool match_driver; + unsigned int transparent: 1; + unsigned int io_window: 1; + unsigned int pref_window: 1; + unsigned int pref_64_window: 1; + unsigned int multifunction: 1; + unsigned int is_busmaster: 1; + unsigned int no_msi: 1; + unsigned int no_64bit_msi: 1; + unsigned int block_cfg_access: 1; + unsigned int broken_parity_status: 1; + unsigned int irq_reroute_variant: 2; + unsigned int msi_enabled: 1; + unsigned int msix_enabled: 1; + unsigned int ari_enabled: 1; + unsigned int ats_enabled: 1; + unsigned int pasid_enabled: 1; + unsigned int pri_enabled: 1; + unsigned int is_managed: 1; + unsigned int is_msi_managed: 1; + unsigned int needs_freset: 1; + unsigned int state_saved: 1; + unsigned int is_physfn: 1; + unsigned int is_virtfn: 1; + unsigned int is_hotplug_bridge: 1; + unsigned int shpc_managed: 1; + unsigned int is_thunderbolt: 1; + unsigned int untrusted: 1; + unsigned int external_facing: 1; + unsigned int broken_intx_masking: 1; + unsigned int io_window_1k: 1; + unsigned int irq_managed: 1; + unsigned int non_compliant_bars: 1; + unsigned int is_probed: 1; + unsigned int link_active_reporting: 1; + unsigned int no_vf_scan: 1; + unsigned int no_command_memory: 1; + unsigned int rom_bar_overlap: 1; + unsigned int rom_attr_enabled: 1; + pci_dev_flags_t dev_flags; + atomic_t enable_cnt; + spinlock_t pcie_cap_lock; + u32 saved_config_space[16]; + struct hlist_head saved_cap_space; + struct bin_attribute *res_attr[11]; + struct bin_attribute *res_attr_wc[11]; + void *msix_base; + raw_spinlock_t msi_lock; + struct pci_vpd vpd; union { - struct perf_raw_frag *next; - unsigned long pad; + struct pci_sriov *sriov; + struct pci_dev *physfn; }; - perf_copy_f copy; - void *data; - u32 size; -} __attribute__((packed)); + 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]; +}; -struct perf_raw_record { - struct perf_raw_frag frag; - u32 size; +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 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 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); }; -struct perf_branch_stack { - __u64 nr; - __u64 hw_idx; - struct perf_branch_entry entries[0]; +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 ftrace_regs { - struct pt_regs regs; +struct pci_dynids { + spinlock_t lock; + struct list_head list; }; -struct ftrace_hash { - unsigned long size_bits; - struct hlist_head *buckets; - unsigned long count; - unsigned long flags; - struct callback_head rcu; +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 perf_cgroup_info; +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; +}; -struct perf_cgroup { - struct cgroup_subsys_state css; - struct perf_cgroup_info __attribute__((btf_type_tag("percpu"))) *info; +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 perf_cgroup_info { - u64 time; - u64 timestamp; - u64 timeoffset; - int active; +typedef void (*exitcall_t)(); + +union amd_uncore_info; + +struct amd_uncore_pmu; + +struct amd_uncore { + union amd_uncore_info *info; + struct amd_uncore_pmu *pmus; + unsigned int num_pmus; + bool init_done; + void (*scan)(struct amd_uncore *, unsigned int); + int (*init)(struct amd_uncore *, unsigned int); + void (*move)(struct amd_uncore *, unsigned int); + void (*free)(struct amd_uncore *, unsigned int); }; -struct perf_guest_switch_msr { - unsigned int msr; - u64 host; - u64 guest; +union amd_uncore_info { + struct { + u64 aux_data: 32; + u64 num_pmcs: 8; + u64 gid: 8; + u64 cid: 8; + } split; + u64 full; }; -struct debug_store; +struct amd_uncore_ctx; -struct er_account; +struct amd_uncore_pmu { + char name[16]; + int num_counters; + int rdpmc_base; + u32 msr_base; + int group; + cpumask_t active_mask; + struct pmu pmu; + struct amd_uncore_ctx * __attribute__((btf_type_tag("percpu"))) *ctx; +}; -struct intel_shared_regs; +struct amd_uncore_ctx { + int refcnt; + int cpu; + struct perf_event **events; + struct hlist_node node; +}; -struct intel_excl_cntrs; +enum { + UNCORE_TYPE_DF = 0, + UNCORE_TYPE_L3 = 1, + UNCORE_TYPE_UMC = 2, + UNCORE_TYPE_MAX = 3, +}; -struct amd_nb; +enum perf_event_task_context { + perf_invalid_context = -1, + perf_hw_context = 0, + perf_sw_context = 1, + perf_nr_task_contexts = 2, +}; -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; +enum kmalloc_cache_type { + KMALLOC_NORMAL = 0, + KMALLOC_RANDOM_START = 0, + KMALLOC_RANDOM_END = 0, + KMALLOC_RECLAIM = 1, + KMALLOC_DMA = 2, + KMALLOC_CGROUP = 3, + NR_KMALLOC_TYPES = 4, }; -struct event_constraint { +struct cpuinfo_topology { + u32 apicid; + u32 initial_apicid; + u32 pkg_id; + u32 die_id; + u32 cu_id; + u32 core_id; + u32 logical_pkg_id; + u32 logical_die_id; + u32 llc_id; + u32 l2c_id; +}; + +struct cpuinfo_x86 { + __u8 x86; + __u8 x86_vendor; + __u8 x86_model; + __u8 x86_stepping; + int x86_tlbsize; + __u32 vmx_capability[5]; + __u8 x86_virt_bits; + __u8 x86_phys_bits; + __u8 x86_coreid_bits; + __u32 extended_cpuid_level; + int cpuid_level; union { - unsigned long idxmsk[1]; - u64 idxmsk64; + __u32 x86_capability[23]; + unsigned long x86_capability_alignment; }; - u64 code; - u64 cmask; - int weight; - int overlap; - int flags; - unsigned int size; + char x86_vendor_id[16]; + char x86_model_id[64]; + struct cpuinfo_topology topo; + unsigned int x86_cache_size; + int x86_cache_alignment; + int x86_cache_max_rmid; + int x86_cache_occ_scale; + int x86_cache_mbm_width_offset; + int x86_power; + unsigned long loops_per_jiffy; + u64 ppin; + u16 x86_max_cores; + u16 x86_clflush_size; + u16 booted_cores; + u16 cpu_index; + bool smt_active; + u32 microcode; + u8 x86_cache_bits; + unsigned int initialized: 1; }; -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; +union cpuid_0x80000022_ebx { + struct { + unsigned int num_core_pmc: 4; + unsigned int lbr_v2_stack_sz: 6; + unsigned int num_df_pmc: 6; + unsigned int num_umc_pmc: 6; + } split; + unsigned int full; +}; + +struct 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; +}; + +struct perf_msr { + u64 msr; + struct attribute_group *grp; + bool (*test)(int, void *); + bool no_check; + u64 mask; +}; + +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 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, +}; + +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 *); +}; + +typedef u32 phandle; + +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; +}; + +struct property { + char *name; + int length; + void *value; + struct property *next; +}; + +struct irq_fwspec { + struct fwnode_handle *fwnode; + int param_count; + u32 param[16]; +}; + +struct irq_common_data; + +struct irq_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; +}; + +typedef struct cpumask cpumask_var_t[1]; + +struct msi_desc; + +struct irq_common_data { + unsigned int state_use_accessors; + unsigned int node; + void *handler_data; + struct msi_desc *msi_desc; + cpumask_var_t affinity; + cpumask_var_t effective_affinity; +}; + +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; +}; + +enum irqchip_irq_state { + IRQCHIP_STATE_PENDING = 0, + IRQCHIP_STATE_ACTIVE = 1, + IRQCHIP_STATE_MASKED = 2, + IRQCHIP_STATE_LINE_LEVEL = 3, +}; + +struct irq_chip { + const char *name; + unsigned int (*irq_startup)(struct irq_data *); + void (*irq_shutdown)(struct irq_data *); + void (*irq_enable)(struct irq_data *); + void (*irq_disable)(struct irq_data *); + void (*irq_ack)(struct irq_data *); + void (*irq_mask)(struct irq_data *); + void (*irq_mask_ack)(struct irq_data *); + void (*irq_unmask)(struct irq_data *); + void (*irq_eoi)(struct irq_data *); + int (*irq_set_affinity)(struct irq_data *, const struct cpumask *, bool); + int (*irq_retrigger)(struct irq_data *); + int (*irq_set_type)(struct irq_data *, unsigned int); + int (*irq_set_wake)(struct irq_data *, unsigned int); + void (*irq_bus_lock)(struct irq_data *); + void (*irq_bus_sync_unlock)(struct irq_data *); + void (*irq_suspend)(struct irq_data *); + void (*irq_resume)(struct irq_data *); + void (*irq_pm_shutdown)(struct irq_data *); + void (*irq_calc_mask)(struct irq_data *); + void (*irq_print_chip)(struct irq_data *, struct seq_file *); + int (*irq_request_resources)(struct irq_data *); + void (*irq_release_resources)(struct irq_data *); + void (*irq_compose_msi_msg)(struct irq_data *, struct msi_msg *); + void (*irq_write_msi_msg)(struct irq_data *, struct msi_msg *); + int (*irq_get_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool *); + int (*irq_set_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool); + int (*irq_set_vcpu_affinity)(struct irq_data *, void *); + void (*ipi_send_single)(struct irq_data *, unsigned int); + void (*ipi_send_mask)(struct irq_data *, const struct cpumask *); + int (*irq_nmi_setup)(struct irq_data *); + void (*irq_nmi_teardown)(struct irq_data *); + unsigned long flags; +}; + +enum irq_gc_flags { + IRQ_GC_INIT_MASK_CACHE = 1, + IRQ_GC_INIT_NESTED_LOCK = 2, + IRQ_GC_MASK_CACHE_PER_TYPE = 4, + IRQ_GC_NO_MASK = 8, + IRQ_GC_BE_IO = 16, +}; + +struct irq_chip_generic; + +struct irq_domain_chip_generic { + unsigned int irqs_per_chip; + unsigned int num_chips; + unsigned int irq_flags_to_clear; + unsigned int irq_flags_to_set; + enum irq_gc_flags gc_flags; + struct irq_chip_generic *gc[0]; +}; + +struct irq_chip_regs { + unsigned long enable; + unsigned long disable; + unsigned long mask; + unsigned long ack; + unsigned long eoi; + unsigned long type; + unsigned long polarity; +}; + +struct irq_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; + struct hlist_node resend_node; + long: 64; + long: 64; + long: 64; +}; + +enum irqreturn { + IRQ_NONE = 0, + IRQ_HANDLED = 1, + IRQ_WAKE_THREAD = 2, +}; + +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 *); +}; + +enum irq_alloc_type { + X86_IRQ_ALLOC_TYPE_IOAPIC = 1, + X86_IRQ_ALLOC_TYPE_HPET = 2, + X86_IRQ_ALLOC_TYPE_PCI_MSI = 3, + X86_IRQ_ALLOC_TYPE_PCI_MSIX = 4, + X86_IRQ_ALLOC_TYPE_DMAR = 5, + X86_IRQ_ALLOC_TYPE_AMDVI = 6, + X86_IRQ_ALLOC_TYPE_UV = 7, +}; + +struct ioapic_alloc_info { + int pin; + int node; + u32 is_level: 1; + u32 active_low: 1; + u32 valid: 1; +}; + +struct uv_alloc_info { + int limit; + int blade; + unsigned long offset; + char *name; +}; + +struct irq_alloc_info { + enum irq_alloc_type type; + u32 flags; + u32 devid; + irq_hw_number_t hwirq; + const struct cpumask *mask; + struct msi_desc *desc; + void *data; + union { + struct ioapic_alloc_info ioapic; + struct uv_alloc_info uv; + }; +}; + +struct 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 trace_eval_map { + const char *system; + const char *eval_string; + unsigned long eval_value; +}; + +struct x86_pmu_quirk { + struct x86_pmu_quirk *next; + void (*func)(); +}; + +union perf_capabilities { + struct { + u64 lbr_format: 6; + u64 pebs_trap: 1; + u64 pebs_arch_reg: 1; + u64 pebs_format: 4; + u64 smm_freeze: 1; + u64 full_width_write: 1; + u64 pebs_baseline: 1; + u64 perf_metrics: 1; + u64 pebs_output_pt_available: 1; + u64 pebs_timing_info: 1; + u64 anythread_deprecated: 1; + }; + u64 capabilities; +}; + +enum hybrid_cpu_type { + HYBRID_INTEL_NONE = 0, + HYBRID_INTEL_ATOM = 32, + HYBRID_INTEL_CORE = 64, +}; + +struct cpu_hw_events; + +struct event_constraint; + +struct extra_reg; + +struct perf_guest_switch_msr; + +struct x86_hybrid_pmu; + +struct x86_pmu { + const char *name; + int version; + int (*handle_irq)(struct pt_regs *); + void (*disable_all)(); + void (*enable_all)(int); + void (*enable)(struct perf_event *); + void (*disable)(struct perf_event *); + void (*assign)(struct perf_event *, int); + void (*add)(struct perf_event *); + void (*del)(struct perf_event *); + void (*read)(struct perf_event *); + int (*set_period)(struct perf_event *); + u64 (*update)(struct perf_event *); + int (*hw_config)(struct perf_event *); + int (*schedule_events)(struct cpu_hw_events *, int, int *); + unsigned int eventsel; + unsigned int perfctr; + int (*addr_offset)(int, bool); + int (*rdpmc_index)(int); + u64 (*event_map)(int); + int max_events; + int num_counters; + int num_counters_fixed; + int cntval_bits; + u64 cntval_mask; + union { + unsigned long events_maskl; + unsigned long events_mask[1]; + }; + int events_mask_len; + int apic; + u64 max_period; + struct event_constraint * (*get_event_constraints)(struct cpu_hw_events *, int, struct perf_event *); + void (*put_event_constraints)(struct cpu_hw_events *, struct perf_event *); + void (*start_scheduling)(struct cpu_hw_events *); + void (*commit_scheduling)(struct cpu_hw_events *, int, int); + void (*stop_scheduling)(struct cpu_hw_events *); + struct event_constraint *event_constraints; + struct x86_pmu_quirk *quirks; + void (*limit_period)(struct perf_event *, s64 *); + unsigned int late_ack: 1; + unsigned int mid_ack: 1; + unsigned int enabled_ack: 1; + int attr_rdpmc_broken; + int attr_rdpmc; + struct attribute **format_attrs; + ssize_t (*events_sysfs_show)(char *, u64); + const struct attribute_group **attr_update; + unsigned long attr_freeze_on_smi; + int (*cpu_prepare)(int); + void (*cpu_starting)(int); + void (*cpu_dying)(int); + void (*cpu_dead)(int); + void (*check_microcode)(); + void (*sched_task)(struct perf_event_pmu_context *, bool); + u64 intel_ctrl; + union perf_capabilities intel_cap; + unsigned int bts: 1; + unsigned int bts_active: 1; + unsigned int pebs: 1; + unsigned int pebs_active: 1; + unsigned int pebs_broken: 1; + unsigned int pebs_prec_dist: 1; + unsigned int pebs_no_tlb: 1; + unsigned int pebs_no_isolation: 1; + unsigned int pebs_block: 1; + unsigned int pebs_ept: 1; + int pebs_record_size; + int pebs_buffer_size; + int max_pebs_events; + void (*drain_pebs)(struct pt_regs *, struct perf_sample_data *); + struct event_constraint *pebs_constraints; + void (*pebs_aliases)(struct perf_event *); + u64 (*pebs_latency_data)(struct perf_event *, u64); + unsigned long large_pebs_flags; + u64 rtm_abort_event; + u64 pebs_capable; + unsigned int lbr_tos; + unsigned int lbr_from; + unsigned int lbr_to; + unsigned int lbr_info; + unsigned int lbr_nr; + union { + u64 lbr_sel_mask; + u64 lbr_ctl_mask; + }; + union { + const int *lbr_sel_map; + int *lbr_ctl_map; + }; + bool lbr_double_abort; + bool lbr_pt_coexist; + unsigned int lbr_has_info: 1; + unsigned int lbr_has_tsx: 1; + unsigned int lbr_from_flags: 1; + unsigned int lbr_to_cycles: 1; + unsigned int lbr_depth_mask: 8; + unsigned int lbr_deep_c_reset: 1; + unsigned int lbr_lip: 1; + unsigned int lbr_cpl: 1; + unsigned int lbr_filter: 1; + unsigned int lbr_call_stack: 1; + unsigned int lbr_mispred: 1; + unsigned int lbr_timed_lbr: 1; + unsigned int lbr_br_type: 1; + void (*lbr_reset)(); + void (*lbr_read)(struct cpu_hw_events *); + void (*lbr_save)(void *); + void (*lbr_restore)(void *); + atomic_t lbr_exclusive[3]; + int num_topdown_events; + void (*swap_task_ctx)(struct perf_event_pmu_context *, struct perf_event_pmu_context *); + unsigned int amd_nb_constraints: 1; + u64 perf_ctr_pair_en; + struct extra_reg *extra_regs; + unsigned int flags; + struct perf_guest_switch_msr * (*guest_get_msrs)(int *, void *); + int (*check_period)(struct perf_event *, u64); + int (*aux_output_match)(struct perf_event *); + void (*filter)(struct pmu *, int, bool *); + int num_hybrid_pmus; + struct x86_hybrid_pmu *hybrid_pmu; + enum hybrid_cpu_type (*get_hybrid_cpu_type)(); +}; + +struct 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; @@ -6254,11 +7814,6 @@ struct amd_nb { 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; @@ -6268,10 +7823,17 @@ struct extra_reg { bool extra_msr_access; }; +enum hybrid_pmu_type { + not_hybrid = 0, + hybrid_small = 1, + hybrid_big = 2, + hybrid_big_small = 3, +}; + struct x86_hybrid_pmu { struct pmu pmu; const char *name; - u8 cpu_type; + enum hybrid_pmu_type pmu_type; cpumask_t supported_cpus; union perf_capabilities intel_cap; u64 intel_ctrl; @@ -6290,2612 +7852,1680 @@ struct x86_hybrid_pmu { 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 x86_cpu_desc { + u8 x86_family; + u8 x86_vendor; + u8 x86_model; + u8 x86_stepping; + u32 x86_microcode_rev; }; -struct p4_pebs_bind { - unsigned int metric_pebs; - unsigned int metric_vert; -}; +struct perf_pmu_events_ht_attr { + struct device_attribute attr; + u64 id; + const char *event_str_ht; + const char *event_str_noht; +}; -struct p4_event_alias { - u64 original; - u64 alternative; +struct perf_pmu_events_hybrid_attr { + struct device_attribute attr; + u64 id; + const char *event_str; + u64 pmu_type; }; -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); +struct perf_pmu_format_hybrid_attr { + struct device_attribute attr; + u64 pmu_type; }; enum { - false = 0, - true = 1, + 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 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 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 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_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_type_id { - PERF_TYPE_HARDWARE = 0, - PERF_TYPE_SOFTWARE = 1, - PERF_TYPE_TRACEPOINT = 2, - PERF_TYPE_HW_CACHE = 3, - PERF_TYPE_RAW = 4, - PERF_TYPE_BREAKPOINT = 5, - PERF_TYPE_MAX = 6, +enum perf_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 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, +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, }; -typedef unsigned long uintptr_t; - -struct pt_filter { - unsigned long msr_a; - unsigned long msr_b; - unsigned long config; +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, }; -struct pt_filters { - struct pt_filter filter[4]; - unsigned int nr_filters; +enum { + x86_lbr_exclusive_lbr = 0, + x86_lbr_exclusive_bts = 1, + x86_lbr_exclusive_pt = 2, + x86_lbr_exclusive_max = 3, }; -struct pt { - struct perf_output_handle handle; - struct pt_filters filters; - int handle_nmi; - int vmx_on; - u64 output_base; - u64 output_mask; +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, }; -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; +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, }; -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; +enum pmc_type { + KVM_PMC_GP = 0, + KVM_PMC_FIXED = 1, }; -enum dev_dma_attr { - DEV_DMA_NOT_SUPPORTED = 0, - DEV_DMA_NON_COHERENT = 1, - DEV_DMA_COHERENT = 2, +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, }; -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 *); +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, }; -struct fwnode_reference_args { - struct fwnode_handle *fwnode; - unsigned int nargs; - u64 args[8]; +enum pfn_cache_usage { + KVM_GUEST_USES_PFN = 1, + KVM_HOST_USES_PFN = 2, + KVM_GUEST_AND_HOST_USE_PFN = 3, }; -struct fwnode_endpoint { - unsigned int port; - unsigned int id; - const struct fwnode_handle *local_fwnode; +enum kvm_irqchip_mode { + KVM_IRQCHIP_NONE = 0, + KVM_IRQCHIP_KERNEL = 1, + KVM_IRQCHIP_SPLIT = 2, }; -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; +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 pt_cap_desc { - const char *name; - u32 leaf; - u8 reg; - u32 mask; +enum kvm_stat_kind { + KVM_STAT_VM = 0, + KVM_STAT_VCPU = 1, }; -struct perf_pmu_events_attr { - struct device_attribute attr; - u64 id; - const char *event_str; -}; +struct kvm_vcpu; -struct pt_address_range { - unsigned long msr_a; - unsigned long msr_b; - unsigned int reg_off; +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; }; -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, +struct kvm_pmu { + u8 version; + unsigned int nr_arch_gp_counters; + unsigned int nr_arch_fixed_counters; + unsigned int available_event_types; + u64 fixed_ctr_ctrl; + u64 fixed_ctr_ctrl_mask; + u64 global_ctrl; + u64 global_status; + u64 counter_bitmask[2]; + u64 global_ctrl_mask; + u64 global_status_mask; + u64 reserved_bits; + u64 raw_event_mask; + struct kvm_pmc gp_counters[8]; + struct kvm_pmc fixed_counters[3]; + union { + unsigned long reprogram_pmi[1]; + atomic64_t __reprogram_pmi; + }; + unsigned long all_valid_pmc_idx[1]; + unsigned long pmc_in_use[1]; + u64 ds_area; + u64 pebs_enable; + u64 pebs_enable_mask; + u64 pebs_data_cfg; + u64 pebs_data_cfg_mask; + u64 host_cross_mapped_mask; + bool need_cleanup; + u8 event_count; }; -enum { - x86_lbr_exclusive_lbr = 0, - x86_lbr_exclusive_bts = 1, - x86_lbr_exclusive_pt = 2, - x86_lbr_exclusive_max = 3, -}; +typedef u64 gpa_t; -enum perf_event_task_context { - perf_invalid_context = -1, - perf_hw_context = 0, - perf_sw_context = 1, - perf_nr_task_contexts = 2, +struct kvm_mmio_fragment { + gpa_t gpa; + void *data; + unsigned int len; }; -enum cpuid_regs_idx { - CPUID_EAX = 0, - CPUID_EBX = 1, - CPUID_ECX = 2, - CPUID_EDX = 3, -}; +struct kvm_lapic; -enum kmalloc_cache_type { - KMALLOC_NORMAL = 0, - KMALLOC_CGROUP = 0, - KMALLOC_RECLAIM = 1, - KMALLOC_DMA = 2, - NR_KMALLOC_TYPES = 3, -}; +struct kvm_page_fault; -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_isolated = 18, - PG_reported = 2, -}; +struct x86_exception; -enum node_states { - N_POSSIBLE = 0, - N_ONLINE = 1, - N_NORMAL_MEMORY = 2, - N_HIGH_MEMORY = 2, - N_MEMORY = 3, - N_CPU = 4, - N_GENERIC_INITIATOR = 5, - NR_NODE_STATES = 6, -}; +struct kvm_mmu_page; -enum perf_addr_filter_action_t { - PERF_ADDR_FILTER_ACTION_STOP = 0, - PERF_ADDR_FILTER_ACTION_START = 1, - PERF_ADDR_FILTER_ACTION_FILTER = 2, -}; +typedef u64 hpa_t; -struct topa { - struct list_head list; - u64 offset; - size_t size; - int last; - unsigned int z_count; +struct kvm_mmu_root_info { + gpa_t pgd; + hpa_t hpa; }; -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; +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; + }; }; -struct topa_page { - struct topa_entry table[507]; - struct topa topa; +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; + }; }; -struct dev_ext_attribute { - struct device_attribute attr; - void *var; +union kvm_cpu_role { + u64 as_u64; + struct { + union kvm_mmu_page_role base; + union kvm_mmu_extended_role ext; + }; }; -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 rsvd_bits_validate { + u64 rsvd_bits_mask[10]; + u64 bad_mt_xwr; }; -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 kvm_mmu { + unsigned long (*get_guest_pgd)(struct kvm_vcpu *); + u64 (*get_pdptr)(struct kvm_vcpu *, int); + int (*page_fault)(struct kvm_vcpu *, struct kvm_page_fault *); + void (*inject_page_fault)(struct kvm_vcpu *, struct x86_exception *); + gpa_t (*gva_to_gpa)(struct kvm_vcpu *, struct kvm_mmu *, gpa_t, u64, struct x86_exception *); + int (*sync_spte)(struct kvm_vcpu *, struct kvm_mmu_page *, int); + struct kvm_mmu_root_info root; + union kvm_cpu_role cpu_role; + union kvm_mmu_page_role root_role; + u32 pkru_mask; + struct kvm_mmu_root_info prev_roots[3]; + u8 permissions[16]; + u64 *pae_root; + u64 *pml4_root; + u64 *pml5_root; + struct rsvd_bits_validate shadow_zero_check; + struct rsvd_bits_validate guest_rsvd_check; + u64 pdptrs[4]; }; -struct intel_uncore_pmu; - -struct intel_uncore_ops; - -struct uncore_event_desc; - -struct freerunning_counters; - -struct intel_uncore_topology; - -struct intel_uncore_type { - const char *name; - int num_counters; - int num_boxes; - int perf_ctr_bits; - int fixed_ctr_bits; - int num_freerunning_types; - int type_id; - unsigned int perf_ctr; - unsigned int event_ctl; - unsigned int event_mask; - unsigned int event_mask_ext; - unsigned int fixed_ctr; - unsigned int fixed_ctl; - unsigned int box_ctl; - u64 *box_ctls; - union { - unsigned int msr_offset; - unsigned int mmio_offset; - }; - unsigned int mmio_map_size; - unsigned int num_shared_regs: 8; - unsigned int single_fixed: 1; - unsigned int pair_ctr_ctl: 1; - union { - 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 kvm_mmu_memory_cache { + gfp_t gfp_zero; + gfp_t gfp_custom; + struct kmem_cache *kmem_cache; + int capacity; + int nobjs; + void **objects; }; -struct intel_uncore_box; - -struct intel_uncore_pmu { - struct pmu pmu; - char name[32]; - int pmu_idx; - int func_id; - bool registered; - atomic_t activeboxes; - struct intel_uncore_type *type; - struct intel_uncore_box **boxes; +struct fpu_guest { + u64 xfeatures; + u64 perm; + u64 xfd_err; + unsigned int uabi_size; + struct fpstate *fpstate; }; -struct intel_uncore_extra_reg { - raw_spinlock_t lock; - u64 config; - u64 config1; - u64 config2; - atomic_t ref; +struct kvm_pio_request { + unsigned long linear_rip; + unsigned long count; + int in; + int port; + int size; }; -struct pci_dev; - -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 kvm_queued_exception { + bool pending; + bool injected; + bool has_error_code; + u8 vector; + u32 error_code; + unsigned long payload; + bool has_payload; }; -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; +struct kvm_queued_interrupt { + bool injected; + bool soft; + u8 nr; }; -typedef unsigned short pci_dev_flags_t; - -struct pci_vpd { - struct mutex lock; - unsigned int len; - u8 cap; +struct kvm_hypervisor_cpuid { + u32 base; + u32 limit; }; -struct pci_bus; - -struct proc_dir_entry; - -struct pci_slot; - -struct rcec_ea; - -struct pci_driver; - -struct pcie_link_state; - -struct pci_sriov; +struct x86_emulate_ctxt; -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]; +struct pvclock_vcpu_time_info { + u32 version; + u32 pad0; + u64 tsc_timestamp; + u64 system_time; + u32 tsc_to_system_mul; + s8 tsc_shift; + u8 flags; + u8 pad[2]; }; -typedef unsigned short pci_bus_flags_t; - -struct pci_ops; +typedef u64 hfn_t; -struct pci_bus { - struct list_head node; - struct pci_bus *parent; - struct list_head children; - struct list_head devices; - struct pci_dev *self; - struct list_head slots; - struct resource *resource[4]; - struct list_head resources; - struct resource busn_res; - struct pci_ops *ops; - void *sysdata; - struct proc_dir_entry *procdir; - unsigned char number; - unsigned char primary; - unsigned char max_bus_speed; - unsigned char cur_bus_speed; - char name[48]; - unsigned short bridge_ctl; - pci_bus_flags_t bus_flags; - struct device *bridge; - struct device dev; - struct bin_attribute *legacy_io; - struct bin_attribute *legacy_mem; - unsigned int is_added: 1; - unsigned int unsafe_warn: 1; -}; +typedef hfn_t kvm_pfn_t; -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); -}; +struct kvm_memory_slot; -struct hotplug_slot; +struct kvm; -struct pci_slot { - struct pci_bus *bus; +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; - struct hotplug_slot *hotplug; - unsigned char number; - struct kobject kobj; + rwlock_t lock; + struct mutex refresh_lock; + void *khva; + kvm_pfn_t pfn; + enum pfn_cache_usage usage; + bool active; + bool valid; }; -struct pci_dynids { - spinlock_t lock; - struct list_head list; +struct gfn_to_hva_cache { + u64 generation; + gpa_t gpa; + unsigned long hva; + unsigned long len; + struct kvm_memory_slot *memslot; }; -struct pci_device_id; - -struct pci_error_handlers; - -struct pci_driver { +struct kvm_mtrr_range { + u64 base; + u64 mask; 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 __u8 mtrr_type; + +struct kvm_mtrr { + struct kvm_mtrr_range var_ranges[8]; + mtrr_type fixed_ranges[88]; + u64 deftype; + struct list_head head; }; -typedef unsigned int pci_ers_result_t; +typedef u64 gfn_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 kvm_cpuid_entry2; -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 kvm_vcpu_hv; -struct uncore_event_desc { - struct device_attribute attr; - const char *config; +struct kvm_vcpu_arch { + unsigned long regs[17]; + u32 regs_avail; + u32 regs_dirty; + unsigned long cr0; + unsigned long cr0_guest_owned_bits; + unsigned long cr2; + unsigned long cr3; + unsigned long cr4; + unsigned long cr4_guest_owned_bits; + unsigned long cr4_guest_rsvd_bits; + unsigned long cr8; + u32 host_pkru; + u32 pkru; + u32 hflags; + u64 efer; + u64 apic_base; + struct kvm_lapic *apic; + bool load_eoi_exitmap_pending; + unsigned long ioapic_handled_vectors[4]; + unsigned long apic_attention; + int32_t apic_arb_prio; + int mp_state; + u64 ia32_misc_enable_msr; + u64 smbase; + u64 smi_count; + bool at_instruction_boundary; + bool tpr_access_reporting; + bool xfd_no_write_intercept; + u64 ia32_xss; + u64 microcode_version; + u64 arch_capabilities; + u64 perf_capabilities; + struct kvm_mmu *mmu; + struct kvm_mmu root_mmu; + struct kvm_mmu guest_mmu; + struct kvm_mmu nested_mmu; + struct kvm_mmu *walk_mmu; + struct kvm_mmu_memory_cache mmu_pte_list_desc_cache; + struct kvm_mmu_memory_cache mmu_shadow_page_cache; + struct kvm_mmu_memory_cache mmu_shadowed_info_cache; + struct kvm_mmu_memory_cache mmu_page_header_cache; + struct fpu_guest guest_fpu; + u64 xcr0; + u64 guest_supported_xcr0; + struct kvm_pio_request pio; + void *pio_data; + void *sev_pio_data; + unsigned int sev_pio_count; + u8 event_exit_inst_len; + bool exception_from_userspace; + struct kvm_queued_exception exception; + struct kvm_queued_exception exception_vmexit; + struct kvm_queued_interrupt interrupt; + int halt_request; + int cpuid_nent; + struct kvm_cpuid_entry2 *cpuid_entries; + struct kvm_hypervisor_cpuid kvm_cpuid; + struct { + unsigned long enabled[1]; + } governed_features; + u64 reserved_gpa_bits; + int maxphyaddr; + struct x86_emulate_ctxt *emulate_ctxt; + bool emulate_regs_need_sync_to_vcpu; + bool emulate_regs_need_sync_from_vcpu; + int (*complete_userspace_io)(struct kvm_vcpu *); + gpa_t time; + struct pvclock_vcpu_time_info hv_clock; + unsigned int hw_tsc_khz; + struct gfn_to_pfn_cache pv_time; + bool pvclock_set_guest_stopped_request; + struct { + u8 preempted; + u64 msr_val; + u64 last_steal; + struct gfn_to_hva_cache cache; + } st; + u64 l1_tsc_offset; + u64 tsc_offset; + u64 last_guest_tsc; + u64 last_host_tsc; + u64 tsc_offset_adjustment; + u64 this_tsc_nsec; + u64 this_tsc_write; + u64 this_tsc_generation; + bool tsc_catchup; + bool tsc_always_catchup; + s8 virtual_tsc_shift; + u32 virtual_tsc_mult; + u32 virtual_tsc_khz; + s64 ia32_tsc_adjust_msr; + u64 msr_ia32_power_ctl; + u64 l1_tsc_scaling_ratio; + u64 tsc_scaling_ratio; + atomic_t nmi_queued; + unsigned int nmi_pending; + bool nmi_injected; + bool smi_pending; + u8 handling_intr_from_guest; + struct kvm_mtrr mtrr_state; + u64 pat; + unsigned int switch_db_regs; + unsigned long db[4]; + unsigned long dr6; + unsigned long dr7; + unsigned long eff_db[4]; + unsigned long guest_debug_dr7; + u64 msr_platform_info; + u64 msr_misc_features_enables; + u64 mcg_cap; + u64 mcg_status; + u64 mcg_ctl; + u64 mcg_ext_ctl; + u64 *mce_banks; + u64 *mci_ctl2_banks; + u64 mmio_gva; + unsigned int mmio_access; + gfn_t mmio_gfn; + u64 mmio_gen; + struct kvm_pmu pmu; + unsigned long singlestep_rip; + bool hyperv_enabled; + struct kvm_vcpu_hv *hyperv; + cpumask_var_t wbinvd_dirty_mask; + unsigned long last_retry_eip; + unsigned long last_retry_addr; + struct { + bool halted; + gfn_t gfns[64]; + struct gfn_to_hva_cache data; + u64 msr_en_val; + u64 msr_int_val; + u16 vec; + u32 id; + bool send_user_only; + u32 host_apf_flags; + bool delivery_as_pf_vmexit; + bool pageready_pending; + } apf; + struct { + u64 length; + u64 status; + } osvw; + struct { + u64 msr_val; + struct gfn_to_hva_cache data; + } pv_eoi; + u64 msr_kvm_poll_control; + unsigned long exit_qualification; + struct { + bool pv_unhalted; + } pv; + int pending_ioapic_eoi; + int pending_external_vector; + bool preempted_in_kernel; + bool l1tf_flush_l1d; + int last_vmentry_cpu; + u64 msr_hwcr; + struct { + u32 features; + bool enforce; + } pv_cpuid; + bool guest_state_protected; + bool pdptrs_from_userspace; }; -struct 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 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 uncore_iio_topology; +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 uncore_upi_topology; +struct kvm_dirty_gfn; -struct intel_uncore_topology { - int pmu_idx; - union { - void *untyped; - struct uncore_iio_topology *iio; - struct uncore_upi_topology *upi; - }; +struct kvm_dirty_ring { + u32 dirty_index; + u32 reset_index; + u32 size; + u32 soft_limit; + struct kvm_dirty_gfn *dirty_gfns; + int index; }; -struct uncore_iio_topology { - int pci_bus_no; - int segment; -}; +struct kvm_run; -struct uncore_upi_topology { - int die_to; - int pmu_idx_to; - int enabled; +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; }; -typedef void (*exitcall_t)(); - -struct pci_extra_dev { - struct pci_dev *dev[4]; +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 x86_cpu_id { - __u16 vendor; - __u16 family; - __u16 model; - __u16 steppings; - __u16 feature; - kernel_ulong_t driver_data; +struct kvm_vm_stat_generic { + u64 remote_tlb_flush; + u64 remote_tlb_flush_requests; }; -struct intel_uncore_init_fun { - void (*cpu_init)(); - int (*pci_init)(); - void (*mmio_init)(); - bool use_discovery; - int *uncore_units_ignore; +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 notifier_block; +struct kvm_pic; -typedef int (*notifier_fn_t)(struct notifier_block *, unsigned long, void *); +struct kvm_ioapic; -struct notifier_block { - notifier_fn_t notifier_call; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *next; - int priority; -}; +struct kvm_pit; -enum extra_reg_type { - EXTRA_REG_NONE = -1, - EXTRA_REG_RSP_0 = 0, - EXTRA_REG_RSP_1 = 1, - EXTRA_REG_LBR = 2, - EXTRA_REG_LDLAT = 3, - EXTRA_REG_FE = 4, - EXTRA_REG_SNOOP_0 = 5, - EXTRA_REG_SNOOP_1 = 6, - EXTRA_REG_MAX = 7, +struct 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]; }; -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 ms_hyperv_tsc_page { + volatile u32 tsc_sequence; + u32 reserved1; + volatile u64 tsc_scale; + volatile s64 tsc_offset; }; -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_BP_KICK_AP = 93, - CPUHP_BRINGUP_CPU = 94, - CPUHP_AP_IDLE_DEAD = 95, - CPUHP_AP_OFFLINE = 96, - CPUHP_AP_CACHECTRL_STARTING = 97, - CPUHP_AP_SCHED_STARTING = 98, - CPUHP_AP_RCUTREE_DYING = 99, - CPUHP_AP_CPU_PM_STARTING = 100, - CPUHP_AP_IRQ_GIC_STARTING = 101, - CPUHP_AP_IRQ_HIP04_STARTING = 102, - CPUHP_AP_IRQ_APPLE_AIC_STARTING = 103, - CPUHP_AP_IRQ_ARMADA_XP_STARTING = 104, - CPUHP_AP_IRQ_BCM2836_STARTING = 105, - CPUHP_AP_IRQ_MIPS_GIC_STARTING = 106, - CPUHP_AP_IRQ_RISCV_STARTING = 107, - CPUHP_AP_IRQ_LOONGARCH_STARTING = 108, - CPUHP_AP_IRQ_SIFIVE_PLIC_STARTING = 109, - CPUHP_AP_ARM_MVEBU_COHERENCY = 110, - CPUHP_AP_MICROCODE_LOADER = 111, - CPUHP_AP_PERF_X86_AMD_UNCORE_STARTING = 112, - CPUHP_AP_PERF_X86_STARTING = 113, - CPUHP_AP_PERF_X86_AMD_IBS_STARTING = 114, - CPUHP_AP_PERF_X86_CQM_STARTING = 115, - CPUHP_AP_PERF_X86_CSTATE_STARTING = 116, - CPUHP_AP_PERF_XTENSA_STARTING = 117, - CPUHP_AP_MIPS_OP_LOONGSON3_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_HYPERV_ONLINE = 153, - CPUHP_AP_KVM_ONLINE = 154, - CPUHP_AP_SCHED_WAIT_EMPTY = 155, - CPUHP_AP_SMPBOOT_THREADS = 156, - CPUHP_AP_X86_VDSO_VMA_ONLINE = 157, - CPUHP_AP_IRQ_AFFINITY_ONLINE = 158, - CPUHP_AP_BLK_MQ_ONLINE = 159, - CPUHP_AP_ARM_MVEBU_SYNC_CLOCKS = 160, - CPUHP_AP_X86_INTEL_EPB_ONLINE = 161, - CPUHP_AP_PERF_ONLINE = 162, - CPUHP_AP_PERF_X86_ONLINE = 163, - CPUHP_AP_PERF_X86_UNCORE_ONLINE = 164, - CPUHP_AP_PERF_X86_AMD_UNCORE_ONLINE = 165, - CPUHP_AP_PERF_X86_AMD_POWER_ONLINE = 166, - CPUHP_AP_PERF_X86_RAPL_ONLINE = 167, - CPUHP_AP_PERF_X86_CQM_ONLINE = 168, - CPUHP_AP_PERF_X86_CSTATE_ONLINE = 169, - CPUHP_AP_PERF_X86_IDXD_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 kvm_hv_syndbg { + struct { + u64 control; + u64 status; + u64 send_page; + u64 recv_page; + u64 pending_page; + } control; + u64 options; }; -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 hv_partition_assist_pg; -struct pci2phy_map { - struct list_head list; - int segment; - int pbus_to_dieid[256]; +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 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[23]; - 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 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]; }; -typedef struct cpumask cpumask_var_t[1]; +struct kvm_apic_map; -struct acpi_device; +struct kvm_x86_msr_filter; -struct pci_sysdata { - int domain; - int node; - struct acpi_device *companion; - void *iommu; - void *fwnode; -}; +struct kvm_x86_pmu_event_filter; -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, +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; + spinlock_t mmu_unsync_pages_lock; + struct iommu_domain *iommu_domain; + bool iommu_noncoherent; + atomic_t noncoherent_dma_count; + atomic_t assigned_device_count; + struct kvm_pic *vpic; + struct kvm_ioapic *vioapic; + struct kvm_pit *vpit; + atomic_t vapics_in_nmi_mode; + struct mutex apic_map_lock; + struct kvm_apic_map __attribute__((btf_type_tag("rcu"))) *apic_map; + atomic_t apic_map_dirty; + bool apic_access_memslot_enabled; + bool apic_access_memslot_inhibited; + struct rw_semaphore apicv_update_lock; + unsigned long apicv_inhibit_reasons; + gpa_t wall_clock; + bool mwait_in_guest; + bool hlt_in_guest; + bool pause_in_guest; + bool cstate_in_guest; + unsigned long irq_sources_bitmap; + s64 kvmclock_offset; + raw_spinlock_t tsc_write_lock; + u64 last_tsc_nsec; + u64 last_tsc_write; + u32 last_tsc_khz; + u64 last_tsc_offset; + u64 cur_tsc_nsec; + u64 cur_tsc_write; + u64 cur_tsc_offset; + u64 cur_tsc_generation; + int nr_vcpus_matched_tsc; + u32 default_tsc_khz; + bool user_set_tsc; + seqcount_raw_spinlock_t pvclock_sc; + bool use_master_clock; + u64 master_kernel_ns; + u64 master_cycle_now; + struct delayed_work kvmclock_update_work; + struct delayed_work kvmclock_sync_work; + struct kvm_xen_hvm_config xen_hvm_config; + struct hlist_head mask_notifier_list; + 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; + 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 imc_uncore_pci_dev { - __u32 pci_id; - struct pci_driver *driver; -}; +struct mmu_notifier_ops; -enum uncore_access_type { - UNCORE_ACCESS_MSR = 0, - UNCORE_ACCESS_MMIO = 1, - UNCORE_ACCESS_PCI = 2, - UNCORE_ACCESS_MAX = 3, +struct mmu_notifier { + struct hlist_node hlist; + const struct mmu_notifier_ops *ops; + struct mm_struct *mm; + struct callback_head rcu; + unsigned int users; }; -enum { - SNBEP_PCI_QPI_PORT0_FILTER = 0, - SNBEP_PCI_QPI_PORT1_FILTER = 1, - BDX_PCI_QPI_PORT2_FILTER = 2, -}; +struct kvm_io_bus; -enum { - IIO_TOPOLOGY_TYPE = 0, - UPI_TOPOLOGY_TYPE = 1, - TOPOLOGY_MAX = 2, +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 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 kvm_io_device; + +struct kvm_io_range { + gpa_t addr; + int len; + struct kvm_io_device *dev; }; -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 kvm_io_bus { + int dev_count; + int ioeventfd_count; + struct kvm_io_range range[0]; }; -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; +struct kvm_apic_map { + struct callback_head rcu; + enum kvm_apic_logical_mode logical_mode; + u32 max_apic_id; union { - u64 table3; - struct { - u64 box_type: 16; - u64 box_id: 16; - u64 __reserved_2: 32; - }; + struct kvm_lapic *xapic_flat_map[8]; + struct kvm_lapic *xapic_cluster_map[64]; }; + struct kvm_lapic *phys_map[0]; }; -struct cstate_model { - unsigned long core_events; - unsigned long pkg_events; - unsigned long quirks; +struct hv_partition_assist_pg { + u32 tlb_lock_count; }; -struct perf_msr { - u64 msr; - struct attribute_group *grp; - bool (*test)(int, void *); - bool no_check; - u64 mask; +struct interval_tree_node { + struct rb_node rb; + unsigned long start; + unsigned long last; + unsigned long __subtree_last; }; -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, -}; +struct kvm_rmap_head; -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, -}; +struct kvm_lpage_info; -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, +struct kvm_arch_memory_slot { + struct kvm_rmap_head *rmap[3]; + struct kvm_lpage_info *lpage_info[2]; + unsigned short *gfn_write_track; }; -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, +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; }; -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; +struct kvm_rmap_head { + unsigned long val; }; -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; +struct kvm_lpage_info { + int disallow_lpage; }; -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 msr_bitmap_range { + u32 flags; + u32 nmsrs; + u32 base; + unsigned long *bitmap; }; -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 kvm_x86_msr_filter { + u8 count; + bool default_allow: 1; + struct msr_bitmap_range ranges[16]; }; -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 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 trampoline_header { - u64 start; - u64 efer; - u32 cr4; - u32 flags; - u32 lock; -}; +struct mmu_notifier_range; -struct idt_bits { - u16 ist: 3; - u16 zero: 5; - u16 type: 5; - u16 dpl: 2; - u16 p: 1; +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 (*arch_invalidate_secondary_tlbs)(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 gate_struct { - u16 offset_low; - u16 segment; - struct idt_bits bits; - u16 offset_middle; - u32 offset_high; - u32 reserved; +struct mmu_notifier_range { + struct mm_struct *mm; + unsigned long start; + unsigned long end; + unsigned int flags; + enum mmu_notifier_event event; + void *owner; }; -typedef struct gate_struct gate_desc; +struct _kvm_stats_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 kvm_stat_data { + struct kvm *kvm; + const struct _kvm_stats_desc *desc; + enum kvm_stat_kind kind; +}; -struct apm_bios_info { - __u16 version; - __u16 cseg; +struct kvm_stats_desc { + __u32 flags; + __s16 exponent; + __u16 size; __u32 offset; - __u16 cseg_16; - __u16 dseg; - __u16 flags; - __u16 cseg_len; - __u16 cseg_16_len; - __u16 dseg_len; + __u32 bucket_size; + char name[0]; }; -struct ist_info { - __u32 signature; - __u32 command; - __u32 event; - __u32 perf_level; +struct _kvm_stats_desc { + struct kvm_stats_desc desc; + char name[48]; }; -struct sys_desc_table { - __u16 length; - __u8 table[14]; +struct kvm_debug_exit_arch { + __u32 exception; + __u32 pad; + __u64 pc; + __u64 dr6; + __u64 dr7; }; -struct olpc_ofw_header { - __u32 ofw_magic; - __u32 ofw_version; - __u32 cif_handler; - __u32 irq_desc_table; +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 edid_info { - unsigned char dummy[128]; +struct kvm_xen_exit { + __u32 type; + union { + struct { + __u32 longmode; + __u32 cpl; + __u64 input; + __u64 result; + __u64 params[6]; + } hcall; + } u; }; -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 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 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 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 boot_e820_entry { - __u64 addr; - __u64 size; - __u32 type; -} __attribute__((packed)); +struct kvm_dtable { + __u64 base; + __u16 limit; + __u16 padding[3]; +}; -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]; +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 { - __u16 base_address; - __u16 reserved1; - __u32 reserved2; - } isa; + __u64 hardware_exit_reason; + } hw; struct { - __u8 bus; - __u8 slot; - __u8 function; - __u8 channel; - __u32 reserved; - } pci; + __u64 hardware_entry_failure_reason; + __u32 cpu; + } fail_entry; struct { - __u64 reserved; - } ibnd; + __u32 exception; + __u32 error_code; + } ex; struct { - __u64 reserved; - } xprs; + __u8 direction; + __u8 size; + __u16 port; + __u32 count; + __u64 data_offset; + } io; struct { - __u64 reserved; - } htpt; + struct kvm_debug_exit_arch arch; + } debug; struct { - __u64 reserved; - } unknown; - } interface_path; - union { + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } mmio; struct { - __u8 device; - __u8 reserved1; - __u16 reserved2; - __u32 reserved3; - __u64 reserved4; - } ata; + __u64 phys_addr; + __u8 data[8]; + __u32 len; + __u8 is_write; + } iocsr_io; struct { - __u8 device; - __u8 lun; - __u8 reserved1; - __u8 reserved2; - __u32 reserved3; - __u64 reserved4; - } atapi; + __u64 nr; + __u64 args[6]; + __u64 ret; + union { + __u64 flags; + }; + } hypercall; struct { - __u16 id; - __u64 lun; - __u16 reserved1; - __u32 reserved2; - } __attribute__((packed)) scsi; + __u64 rip; + __u32 is_write; + __u32 pad; + } tpr_access; struct { - __u64 serial_number; - __u64 reserved; - } usb; + __u8 icptcode; + __u16 ipa; + __u32 ipb; + } s390_sieic; + __u64 s390_reset_flags; struct { - __u64 eui; - __u64 reserved; - } i1394; + __u64 trans_exc_code; + __u32 pgm_code; + } s390_ucontrol; struct { - __u64 wwid; - __u64 lun; - } fibre; + __u32 dcrn; + __u32 data; + __u8 is_write; + } dcr; struct { - __u64 identity_tag; - __u64 reserved; - } i2o; + __u32 suberror; + __u32 ndata; + __u64 data[16]; + } internal; struct { - __u32 array_number; - __u32 reserved1; - __u64 reserved2; - } raid; + __u32 suberror; + __u32 ndata; + __u64 flags; + union { + struct { + __u8 insn_size; + __u8 insn_bytes[15]; + }; + }; + } emulation_failure; struct { - __u8 device; - __u8 reserved1; - __u16 reserved2; - __u32 reserved3; - __u64 reserved4; - } sata; + __u64 gprs[32]; + } osi; struct { - __u64 reserved1; - __u64 reserved2; - } unknown; - } device_path; - __u8 reserved4; - __u8 checksum; -} __attribute__((packed)); - -struct edd_info { - __u8 device; - __u8 version; - __u16 interface_support; - __u16 legacy_max_cylinder; - __u8 legacy_max_head; - __u8 legacy_sectors_per_track; - struct edd_device_params params; -}; - -struct boot_params { - struct screen_info screen_info; - struct apm_bios_info apm_bios_info; - __u8 _pad2[4]; - __u64 tboot_addr; - struct ist_info ist_info; - __u64 acpi_rsdp_addr; - __u8 _pad3[8]; - __u8 hd0_info[16]; - __u8 hd1_info[16]; - struct sys_desc_table sys_desc_table; - struct olpc_ofw_header olpc_ofw_header; - __u32 ext_ramdisk_image; - __u32 ext_ramdisk_size; - __u32 ext_cmd_line_ptr; - __u8 _pad4[112]; - __u32 cc_blob_address; - struct edid_info edid_info; - struct efi_info efi_info; - __u32 alt_mem_k; - __u32 scratch; - __u8 e820_entries; - __u8 eddbuf_entries; - __u8 edd_mbr_sig_buf_entries; - __u8 kbd_status; - __u8 secure_boot; - __u8 _pad5[2]; - __u8 sentinel; - __u8 _pad6[1]; - struct setup_header hdr; - __u8 _pad7[36]; - __u32 edd_mbr_sig_buffer[16]; - struct boot_e820_entry e820_table[128]; - __u8 _pad8[48]; - struct edd_info eddbuf[6]; - __u8 _pad9[276]; -}; - -struct 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, -}; - -typedef unsigned long p4dval_t; - -struct boot_params_to_save { - unsigned int start; - unsigned int len; -}; - -enum x86_legacy_i8042_state { - X86_LEGACY_I8042_PLATFORM_ABSENT = 0, - X86_LEGACY_I8042_FIRMWARE_ABSENT = 1, - X86_LEGACY_I8042_EXPECTED_PRESENT = 2, -}; - -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; + __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]; }; - struct trace_event event; - char *print_fmt; - struct event_filter *filter; + __u64 kvm_valid_regs; + __u64 kvm_dirty_regs; 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 *); + struct kvm_sync_regs regs; + char padding[2048]; + } s; }; -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 kvm_cpuid_entry2 { + __u32 function; + __u32 index; + __u32 flags; + __u32 eax; + __u32 ebx; + __u32 ecx; + __u32 edx; + __u32 padding[3]; }; -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 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; }; -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 *); +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; }; }; -struct ldt_struct { - struct desc_struct *entries; - unsigned int nr_entries; - int slot; -}; - -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; -}; - -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; - }; +union hv_message_flags { + __u8 asu8; + struct { + __u8 msg_pending: 1; + __u8 reserved: 7; }; }; -struct iommu_iotlb_gather; - -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_iotlb_gather { - unsigned long start; - unsigned long end; - size_t pgsize; - struct list_head freelist; - bool queued; -}; - -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]; +union hv_port_id { + __u32 asu32; + struct { + __u32 id: 24; + __u32 reserved: 8; + } u; }; -struct iommu_fault { - __u32 type; - __u32 padding; +struct hv_message_header { + __u32 message_type; + __u8 payload_size; + union hv_message_flags message_flags; + __u8 reserved[2]; union { - struct iommu_fault_unrecoverable event; - struct iommu_fault_page_request prm; - __u8 padding2[56]; + __u64 sender; + union hv_port_id port; }; }; -struct iommu_device { - struct list_head list; - const struct iommu_ops *ops; - struct fwnode_handle *fwnode; - struct device *dev; - u32 max_pasids; +struct hv_message { + struct hv_message_header header; + union { + __u64 payload[30]; + } u; }; -struct of_phandle_args { - struct device_node *np; - int args_count; - uint32_t args[16]; +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; }; -typedef u32 phandle; - -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; +struct __kfifo { + unsigned int in; + unsigned int out; + unsigned int mask; + unsigned int esize; void *data; }; -struct property { - char *name; - int length; - void *value; - struct property *next; -}; - -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; -}; - -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, +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; }; -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 hv_nested_enlightenments_control { + struct { + __u32 directhypercall: 1; + __u32 reserved: 31; + } features; + struct { + __u32 inter_partition_comm: 1; + __u32 reserved: 31; + } hypercallControls; }; -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 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 irq_fwspec { - struct fwnode_handle *fwnode; - int param_count; - u32 param[16]; +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 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 kvm_dirty_gfn { + __u32 flags; + __u32 slot; + __u64 offset; }; -struct msi_desc; +typedef void (*smp_call_func_t)(void *); -struct irq_common_data { - unsigned int state_use_accessors; - unsigned int node; - void *handler_data; - struct msi_desc *msi_desc; - cpumask_var_t affinity; - cpumask_var_t effective_affinity; -}; +typedef bool (*smp_cond_func_t)(int, void *); -struct pci_msi_desc { - union { - u32 msi_mask; - u32 msix_ctrl; - }; +union cpuid10_edx { 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; + 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; }; -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; - }; - }; +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; }; -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; +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; }; -typedef struct x86_msi_addr_hi arch_msi_msg_addr_hi_t; +typedef int perf_snapshot_branch_stack_t(struct perf_branch_entry *, unsigned int); -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; -}; - -enum irqchip_irq_state { - IRQCHIP_STATE_PENDING = 0, - IRQCHIP_STATE_ACTIVE = 1, - IRQCHIP_STATE_MASKED = 2, - IRQCHIP_STATE_LINE_LEVEL = 3, -}; - -struct irq_chip { - const char *name; - unsigned int (*irq_startup)(struct irq_data *); - void (*irq_shutdown)(struct irq_data *); - void (*irq_enable)(struct irq_data *); - void (*irq_disable)(struct irq_data *); - void (*irq_ack)(struct irq_data *); - void (*irq_mask)(struct irq_data *); - void (*irq_mask_ack)(struct irq_data *); - void (*irq_unmask)(struct irq_data *); - void (*irq_eoi)(struct irq_data *); - int (*irq_set_affinity)(struct irq_data *, const struct cpumask *, bool); - int (*irq_retrigger)(struct irq_data *); - int (*irq_set_type)(struct irq_data *, unsigned int); - int (*irq_set_wake)(struct irq_data *, unsigned int); - void (*irq_bus_lock)(struct irq_data *); - void (*irq_bus_sync_unlock)(struct irq_data *); - void (*irq_suspend)(struct irq_data *); - void (*irq_resume)(struct irq_data *); - void (*irq_pm_shutdown)(struct irq_data *); - void (*irq_calc_mask)(struct irq_data *); - void (*irq_print_chip)(struct irq_data *, struct seq_file *); - int (*irq_request_resources)(struct irq_data *); - void (*irq_release_resources)(struct irq_data *); - void (*irq_compose_msi_msg)(struct irq_data *, struct msi_msg *); - void (*irq_write_msi_msg)(struct irq_data *, struct msi_msg *); - int (*irq_get_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool *); - int (*irq_set_irqchip_state)(struct irq_data *, enum irqchip_irq_state, bool); - int (*irq_set_vcpu_affinity)(struct irq_data *, void *); - void (*ipi_send_single)(struct irq_data *, unsigned int); - void (*ipi_send_mask)(struct irq_data *, const struct cpumask *); - int (*irq_nmi_setup)(struct irq_data *); - void (*irq_nmi_teardown)(struct irq_data *); - unsigned long flags; -}; - -enum irq_gc_flags { - IRQ_GC_INIT_MASK_CACHE = 1, - IRQ_GC_INIT_NESTED_LOCK = 2, - IRQ_GC_MASK_CACHE_PER_TYPE = 4, - IRQ_GC_NO_MASK = 8, - IRQ_GC_BE_IO = 16, -}; - -struct irq_chip_generic; - -struct irq_domain_chip_generic { - unsigned int irqs_per_chip; - unsigned int num_chips; - unsigned int irq_flags_to_clear; - unsigned int irq_flags_to_set; - enum irq_gc_flags gc_flags; - struct irq_chip_generic *gc[0]; -}; - -struct irq_chip_regs { - unsigned long enable; - unsigned long disable; - unsigned long mask; - unsigned long ack; - unsigned long eoi; - unsigned long type; - unsigned long polarity; -}; - -struct irq_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; - struct hlist_node resend_node; +struct bts_ctx { + struct perf_output_handle handle; long: 64; long: 64; long: 64; -}; - -enum irqreturn { - IRQ_NONE = 0, - IRQ_HANDLED = 1, - IRQ_WAKE_THREAD = 2, -}; - -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 *); -}; - -enum irq_alloc_type { - X86_IRQ_ALLOC_TYPE_IOAPIC = 1, - X86_IRQ_ALLOC_TYPE_HPET = 2, - X86_IRQ_ALLOC_TYPE_PCI_MSI = 3, - X86_IRQ_ALLOC_TYPE_PCI_MSIX = 4, - X86_IRQ_ALLOC_TYPE_DMAR = 5, - X86_IRQ_ALLOC_TYPE_AMDVI = 6, - X86_IRQ_ALLOC_TYPE_UV = 7, -}; - -struct ioapic_alloc_info { - int pin; - int node; - u32 is_level: 1; - u32 active_low: 1; - u32 valid: 1; -}; - -struct uv_alloc_info { - int limit; - int blade; - unsigned long offset; - char *name; -}; - -struct irq_alloc_info { - enum irq_alloc_type type; - u32 flags; - u32 devid; - irq_hw_number_t hwirq; - const struct cpumask *mask; - struct msi_desc *desc; - void *data; - union { - struct ioapic_alloc_info ioapic; - struct uv_alloc_info uv; - }; -}; - -struct 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 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 trace_eval_map { - const char *system; - const char *eval_string; - unsigned long eval_value; -}; - -enum print_line_t { - TRACE_TYPE_PARTIAL_LINE = 0, - TRACE_TYPE_HANDLED = 1, - TRACE_TYPE_UNHANDLED = 2, - TRACE_TYPE_NO_CONSUME = 3, -}; - -struct trace_iterator; - -typedef enum print_line_t (*trace_print_func)(struct trace_iterator *, int, struct trace_event *); - -struct trace_event_functions { - trace_print_func trace; - trace_print_func raw; - trace_print_func hex; - trace_print_func binary; -}; - -struct seq_buf { - char *buffer; - size_t size; - size_t len; - loff_t readpos; -}; - -struct trace_seq { - char buffer[4096]; - struct seq_buf seq; - int full; -}; - -struct trace_array; - -struct tracer; - -struct array_buffer; - -struct ring_buffer_iter; - -struct trace_entry; - -struct trace_iterator { - struct trace_array *tr; - struct tracer *trace; - struct array_buffer *array_buffer; - void *private; - int cpu_file; - struct mutex mutex; - struct ring_buffer_iter **buffer_iter; - unsigned long iter_flags; - void *temp; - unsigned int temp_size; - char *fmt; - unsigned int fmt_size; - 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 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 show_regs_mode { - SHOW_REGS_SHORT = 0, - SHOW_REGS_USER = 1, - SHOW_REGS_ALL = 2, -}; - -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 which_selector { - FS = 0, - GS = 1, -}; - -struct gdt_page { - struct desc_struct gdt[16]; long: 64; long: 64; long: 64; @@ -9392,691 +10022,677 @@ struct gdt_page { long: 64; long: 64; long: 64; -}; - -struct obs_kernel_param { - const char *str; - int (*setup_func)(char *); - int early; -}; - -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 io_bitmap { - u64 sequence; - refcount_t refcnt; - unsigned int max; - unsigned long bitmap[1024]; -}; - -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 ksignal { - struct k_sigaction ka; - kernel_siginfo_t info; - int sig; -}; - -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; -}; - -typedef struct siginfo siginfo_t; - -enum stack_type { - STACK_TYPE_UNKNOWN = 0, - STACK_TYPE_TASK = 1, - STACK_TYPE_IRQ = 2, - STACK_TYPE_SOFTIRQ = 3, - STACK_TYPE_ENTRY = 4, - STACK_TYPE_EXCEPTION = 5, - STACK_TYPE_EXCEPTION_LAST = 10, -}; - -enum die_val { - DIE_OOPS = 1, - DIE_INT3 = 2, - DIE_DEBUG = 3, - DIE_PANIC = 4, - DIE_NMI = 5, - DIE_DIE = 6, - DIE_KERNELDEBUG = 7, - DIE_TRAP = 8, - DIE_GPF = 9, - DIE_CALL = 10, - DIE_PAGE_FAULT = 11, - DIE_NMIUNKNOWN = 12, -}; - -enum cp_error_code { - CP_EC = 32767, - CP_RET = 1, - CP_IRET = 2, - CP_ENDBR = 3, - CP_RSTRORSSP = 4, - CP_SETSSBSY = 5, - CP_ENCL = 32768, -}; - -enum bug_trap_type { - BUG_TRAP_TYPE_NONE = 0, - BUG_TRAP_TYPE_WARN = 1, - BUG_TRAP_TYPE_BUG = 2, -}; - -enum kernel_gp_hint { - GP_NO_HINT = 0, - GP_NON_CANONICAL = 1, - GP_CANONICAL = 2, -}; - -enum insn_mode { - INSN_MODE_32 = 0, - INSN_MODE_64 = 1, - INSN_MODE_KERN = 2, - INSN_NUM_MODES = 3, -}; - -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 irqentry_state { - union { - bool exit_rcu; - bool lockdep; - }; -}; - -typedef struct irqentry_state irqentry_state_t; - -struct stack_info { - enum stack_type type; - unsigned long *begin; - unsigned long *end; - unsigned long *next_sp; -}; - -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 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: 64; long: 64; + struct debug_store ds_back; + int state; long: 64; long: 64; long: 64; long: 64; long: 64; -} irq_cpustat_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_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_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 prog_entry; - -struct event_filter { - struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog; - char *filter_string; -}; - -struct trace_buffer; - -struct ring_buffer_event; - -struct trace_event_buffer { - struct trace_buffer *buffer; - struct ring_buffer_event *event; - struct trace_event_file *trace_file; - void *entry; - unsigned int trace_ctx; - struct pt_regs *regs; -}; - -struct ring_buffer_event { - u32 type_len: 5; - u32 time_delta: 27; - u32 array[0]; -}; - -struct 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 {}; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + 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 irq_stack { - char stack[16384]; +enum { + BTS_STATE_STOPPED = 0, + BTS_STATE_INACTIVE = 1, + BTS_STATE_ACTIVE = 2, }; -struct estack_pages { - u32 offs; - u16 size; - u16 type; +enum pageflags { + PG_locked = 0, + PG_writeback = 1, + PG_referenced = 2, + PG_uptodate = 3, + PG_dirty = 4, + PG_lru = 5, + PG_head = 6, + PG_waiters = 7, + PG_active = 8, + PG_workingset = 9, + PG_error = 10, + PG_slab = 11, + PG_owner_priv_1 = 12, + PG_arch_1 = 13, + PG_reserved = 14, + PG_private = 15, + PG_private_2 = 16, + PG_mappedtodisk = 17, + PG_reclaim = 18, + PG_swapbacked = 19, + PG_unevictable = 20, + PG_mlocked = 21, + PG_uncached = 22, + __NR_PAGEFLAGS = 23, + PG_readahead = 18, + PG_anon_exclusive = 17, + PG_checked = 12, + PG_swapcache = 12, + PG_fscache = 16, + PG_pinned = 12, + PG_savepinned = 4, + PG_foreign = 12, + PG_xen_remapped = 12, + PG_isolated = 18, + PG_reported = 3, + PG_has_hwpoisoned = 10, + PG_hugetlb = 8, + PG_large_rmappable = 9, }; -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 bts_phys { + struct page *page; + unsigned long size; + unsigned long offset; + unsigned long displacement; }; -enum clocksource_ids { - CSID_GENERIC = 0, - CSID_ARM_ARCH_COUNTER = 1, - CSID_MAX = 2, +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 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, +enum node_states { + N_POSSIBLE = 0, + N_ONLINE = 1, + N_NORMAL_MEMORY = 2, + N_HIGH_MEMORY = 2, + N_MEMORY = 3, + N_CPU = 4, + N_GENERIC_INITIATOR = 5, + NR_NODE_STATES = 6, }; -struct 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; +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, }; -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, +struct bts_record { + u64 from; + u64 to; + u64 flags; }; -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, +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; }; -enum lockdep_ok { - LOCKDEP_STILL_OK = 0, - LOCKDEP_NOW_UNRELIABLE = 1, +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 new_utsname { - char sysname[65]; - char nodename[65]; - char release[65]; - char version[65]; - char machine[65]; - char domainname[65]; +struct pebs_basic { + u64 format_size; + u64 ip; + u64 applicable_counters; + u64 tsc; }; -struct uts_namespace { - struct new_utsname name; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct ns_common ns; +struct x86_perf_regs { + struct pt_regs regs; + u64 *xmm_regs; }; struct entry_stack { @@ -10607,6 +11223,22 @@ struct tss_struct { long: 64; }; +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 debug_store_buffers { char bts_buffer[65536]; char pebs_buffer[65536]; @@ -10621,1404 +11253,1059 @@ struct cpu_entry_area { struct debug_store_buffers cpu_debug_buffers; }; -struct unwind_state { - struct stack_info stack_info; - unsigned long stack_mask; - struct task_struct *task; - int graph_idx; - struct llist_node *kr_cur; - bool error; - bool signal; - bool full_regs; - unsigned long sp; - unsigned long bp; - unsigned long ip; - struct pt_regs *regs; - struct pt_regs *prev_regs; +struct perf_event_header { + __u32 type; + __u16 misc; + __u16 size; }; -typedef void (*btf_trace_nmi_handler)(void *, void *, s64, int); +typedef int insn_value_t; -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; -}; +typedef unsigned char insn_byte_t; -enum nmi_states { - NMI_NOT_RUNNING = 0, - NMI_EXECUTING = 1, - NMI_LATCHED = 2, +struct insn_field { + union { + insn_value_t value; + insn_byte_t bytes[4]; + }; + unsigned char got; + unsigned char nbytes; }; -struct nmi_desc { - raw_spinlock_t lock; - struct list_head head; -}; +typedef unsigned int insn_attr_t; -enum { - NMI_LOCAL = 0, - NMI_UNKNOWN = 1, - NMI_SERR = 2, - NMI_IO_CHECK = 3, - NMI_MAX = 4, +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; }; -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; +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 trace_event_raw_nmi_handler { - struct trace_entry ent; - void *handler; - s64 delta_ns; - int handled; - char __data[0]; +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; }; -typedef u64 uint64_t; - -struct trace_event_data_offsets_nmi_handler {}; - -enum writeback_sync_modes { - WB_SYNC_NONE = 0, - WB_SYNC_ALL = 1, +struct lbr_entry { + u64 from; + u64 to; + u64 info; }; -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; - struct swap_iocb **swap_plug; +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 reclaim_state { - unsigned long reclaimed; +struct pebs_meminfo { + u64 address; + u64 aux; + u64 latency; + u64 tsx_tuning; }; -struct wait_queue_entry; - -typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *); +struct pebs_xmm { + u64 xmm[32]; +}; -struct wait_queue_entry { - unsigned int flags; - void *private; - wait_queue_func_t func; - struct list_head entry; +struct static_key_false { + struct static_key key; }; -typedef struct wait_queue_entry wait_queue_entry_t; +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 wait_page_queue { - struct folio *folio; - int bit_nr; - wait_queue_entry_t wait; +enum { + LBR_NONE = 0, + LBR_VALID = 1, }; -struct request_queue; +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, +}; -struct disk_stats; - -struct blk_holder_ops; - -struct partition_meta_info; - -struct block_device { - sector_t bd_start_sect; - sector_t bd_nr_sectors; - struct gendisk *bd_disk; - struct request_queue *bd_queue; - struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats; - unsigned long bd_stamp; - bool bd_read_only; - u8 bd_partno; - bool bd_write_holder; - bool bd_has_submit_bio; - dev_t bd_dev; - atomic_t bd_openers; - spinlock_t bd_size_lock; - struct inode *bd_inode; - struct super_block *bd_super; - void *bd_claiming; - void *bd_holder; - const struct blk_holder_ops *bd_holder_ops; - struct mutex bd_holder_lock; - int bd_fsfreeze_count; - int bd_holders; - struct kobject *bd_holder_dir; - struct mutex bd_fsfreeze_mutex; - struct super_block *bd_fsfreeze_sb; - struct partition_meta_info *bd_meta_info; - struct device bd_device; +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, }; -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]; +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 blk_holder_ops { - void (*mark_dead)(struct block_device *); +enum xfeature { + XFEATURE_FP = 0, + XFEATURE_SSE = 1, + XFEATURE_YMM = 2, + XFEATURE_BNDREGS = 3, + XFEATURE_BNDCSR = 4, + XFEATURE_OPMASK = 5, + XFEATURE_ZMM_Hi256 = 6, + XFEATURE_Hi16_ZMM = 7, + XFEATURE_PT_UNIMPLEMENTED_SO_FAR = 8, + XFEATURE_PKRU = 9, + XFEATURE_PASID = 10, + XFEATURE_CET_USER = 11, + XFEATURE_CET_KERNEL_UNUSED = 12, + XFEATURE_RSRVD_COMP_13 = 13, + XFEATURE_RSRVD_COMP_14 = 14, + XFEATURE_LBR = 15, + XFEATURE_RSRVD_COMP_16 = 16, + XFEATURE_XTILE_CFG = 17, + XFEATURE_XTILE_DATA = 18, + XFEATURE_MAX = 19, }; -struct fprop_local_percpu { - struct percpu_counter events; - unsigned int period; - raw_spinlock_t lock; +struct x86_perf_task_context_opt { + int lbr_callstack_users; + int lbr_stack_state; + int log_id; }; -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 x86_perf_task_context_arch_lbr { + struct x86_perf_task_context_opt opt; + struct lbr_entry entries[0]; }; -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 x86_perf_task_context { + u64 lbr_sel; + int tos; + int valid_lbrs; + struct x86_perf_task_context_opt opt; + struct lbr_entry lbr[32]; }; -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; -}; +typedef unsigned int slab_flags_t; -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; +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; }; -struct swap_cluster_info { - spinlock_t lock; - unsigned int data: 24; - unsigned int flags: 8; +union cpuid28_ebx { + struct { + unsigned int lbr_cpl: 1; + unsigned int lbr_filter: 1; + unsigned int lbr_call_stack: 1; + } split; + unsigned int full; }; -struct swap_cluster_list { - struct swap_cluster_info head; - struct swap_cluster_info tail; +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 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 arch_lbr_state { + u64 lbr_ctl; + u64 lbr_depth; + u64 ler_from; + u64 ler_to; + u64 ler_info; + struct lbr_entry entries[0]; }; -struct percpu_cluster { - struct swap_cluster_info index; - unsigned int next; +struct x86_perf_task_context_arch_lbr_xsave { + struct x86_perf_task_context_opt opt; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + union { + struct xregs_state xsave; + struct { + struct fxregs_state i387; + struct xstate_header header; + struct arch_lbr_state lbr; + long: 64; + long: 64; + long: 64; + }; + }; }; -enum { - DESC_TSS = 9, - DESC_LDT = 2, - DESCTYPE_S = 16, +struct x86_pmu_lbr { + unsigned int nr; + unsigned int from; + unsigned int to; + unsigned int info; }; -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; +struct p4_event_bind { + unsigned int opcode; + unsigned int escr_msr[2]; + unsigned int escr_emask; + unsigned int shared; + signed char cntr[6]; }; -typedef struct ldttss_desc ldt_desc; - -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 p4_pebs_bind { + unsigned int metric_pebs; + unsigned int metric_vert; }; -struct mmu_table_batch; - -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 p4_event_alias { + u64 original; + u64 alternative; }; -struct mmu_table_batch { - struct callback_head rcu; - unsigned int nr; - void *tables[0]; +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, }; -struct user_desc { - unsigned int entry_number; - unsigned int base_addr; - unsigned int limit; - unsigned int seg_32bit: 1; - unsigned int contents: 2; - unsigned int read_exec_only: 1; - unsigned int limit_in_pages: 1; - unsigned int seg_not_present: 1; - unsigned int useable: 1; - unsigned int lm: 1; +enum 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 void (*smp_call_func_t)(void *); - -typedef bool (*smp_cond_func_t)(int, void *); - -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 pt_filter { + unsigned long msr_a; + unsigned long msr_b; + unsigned long config; }; -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, +struct pt_filters { + struct pt_filter filter[4]; + unsigned int nr_filters; }; -struct setup_indirect { - __u32 type; - __u32 reserved; - __u64 len; - __u64 addr; +struct pt { + struct perf_output_handle handle; + struct pt_filters filters; + int handle_nmi; + int vmx_on; + u64 output_base; + u64 output_mask; }; -struct e820_entry { - u64 addr; - u64 size; - enum e820_type type; -} __attribute__((packed)); - -struct e820_table { - __u32 nr_entries; - struct e820_entry entries[320]; +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 atomic_notifier_head { - spinlock_t lock; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +struct pt_cap_desc { + const char *name; + u32 leaf; + u8 reg; + u32 mask; }; -struct setup_data { - __u64 next; - __u32 type; - __u32 len; - __u8 data[0]; +struct pt_address_range { + unsigned long msr_a; + unsigned long msr_b; + unsigned int reg_off; }; -struct x86_init_resources { - void (*probe_roms)(); - void (*reserve_resources)(); - char * (*memory_setup)(); +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, }; -struct x86_init_mpparse { - void (*setup_ioapic_ids)(); - void (*find_smp_config)(); - void (*get_smp_config)(unsigned int); +enum cpuid_regs_idx { + CPUID_EAX = 0, + CPUID_EBX = 1, + CPUID_ECX = 2, + CPUID_EDX = 3, }; -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)(); +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 x86_init_oem { - void (*arch_setup)(); - void (*banner)(); +struct topa { + struct list_head list; + u64 offset; + size_t size; + int last; + unsigned int z_count; }; -struct x86_init_paging { - void (*pagetable_init)(); +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 x86_init_timers { - void (*setup_percpu_clockev)(); - void (*timer_init)(); - void (*wallclock_init)(); +struct topa_page { + struct topa_entry table[507]; + struct topa topa; }; -struct x86_init_iommu { - int (*iommu_init)(); +struct dev_ext_attribute { + struct device_attribute attr; + void *var; }; -struct x86_init_pci { - int (*arch_init)(); - int (*init)(); - void (*init_irq)(); - void (*fixup_irqs)(); +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 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 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 x86_init_acpi { - void (*set_root_pointer)(u64); - u64 (*get_root_pointer)(); - void (*reduced_hw_early_init)(); -}; +struct intel_uncore_pmu; -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 intel_uncore_ops; -struct x86_cpuinit_ops { - void (*setup_percpu_clockev)(); - void (*early_percpu_clock_init)(); - void (*fixup_cpu_id)(struct cpuinfo_x86 *, int); - bool parallel_bringup; -}; +struct uncore_event_desc; -struct x86_legacy_devices { - int pnpbios; -}; +struct freerunning_counters; -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 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 ghcb; +struct intel_uncore_box; -struct x86_hyper_runtime { - void (*pin_vcpu)(int); - void (*sev_es_hcall_prepare)(struct ghcb *, struct pt_regs *); - bool (*sev_es_hcall_finish)(struct ghcb *, struct pt_regs *); - bool (*is_private_mmio)(u64); +struct 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 x86_guest { - bool (*enc_status_change_prepare)(unsigned long, int, bool); - bool (*enc_status_change_finish)(unsigned long, int, bool); - bool (*enc_tlb_flush_required)(bool); - bool (*enc_cache_flush_required)(); +struct intel_uncore_extra_reg { + raw_spinlock_t lock; + u64 config; + u64 config1; + u64 config2; + atomic_t ref; }; -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 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 x86_apic_ops { - unsigned int (*io_apic_read)(unsigned int, unsigned int); - void (*restore)(); +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 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 uncore_event_desc { + struct device_attribute attr; + const char *config; }; -struct syscore_ops { - struct list_head node; - int (*suspend)(); - void (*resume)(); - void (*shutdown)(); +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; }; -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 uncore_iio_topology; -typedef struct irq_desc *vector_irq_t[256]; +struct uncore_upi_topology; -union text_poke_insn { - u8 text[5]; - struct { - u8 opcode; - s32 disp; - } __attribute__((packed)); +struct intel_uncore_topology { + int pmu_idx; + union { + void *untyped; + struct uncore_iio_topology *iio; + struct uncore_upi_topology *upi; + }; }; -enum jump_label_type { - JUMP_LABEL_NOP = 0, - JUMP_LABEL_JMP = 1, +struct uncore_iio_topology { + int pci_bus_no; + int segment; }; -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, +struct uncore_upi_topology { + int die_to; + int pmu_idx_to; + int enabled; }; -struct jump_label_patch { - const void *code; - int size; +struct pci_extra_dev { + struct pci_dev *dev[4]; }; -enum psc_op { - SNP_PAGE_STATE_PRIVATE = 1, - SNP_PAGE_STATE_SHARED = 2, +struct x86_cpu_id { + __u16 vendor; + __u16 family; + __u16 model; + __u16 steppings; + __u16 feature; + kernel_ulong_t driver_data; }; -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 intel_uncore_init_fun { + void (*cpu_init)(); + int (*pci_init)(); + void (*mmio_init)(); + bool use_discovery; + int *uncore_units_ignore; }; -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 notifier_block; -struct mmap_arg_struct32 { - unsigned int addr; - unsigned int len; - unsigned int prot; - unsigned int flags; - unsigned int fd; - unsigned int offset; +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 kernel_clone_args { - u64 flags; - int __attribute__((btf_type_tag("user"))) *pidfd; - int __attribute__((btf_type_tag("user"))) *child_tid; - int __attribute__((btf_type_tag("user"))) *parent_tid; - const char *name; - int exit_signal; - u32 kthread: 1; - u32 io_thread: 1; - u32 user_worker: 1; - u32 no_files: 1; - unsigned long stack; - unsigned long stack_size; - unsigned long tls; - pid_t *set_tid; - size_t set_tid_size; - int cgroup; - int idle; - int (*fn)(void *); - void *fn_arg; - struct cgroup *cgrp; - struct css_set *cset; +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, }; -typedef u32 compat_sigset_word; +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, +}; -typedef struct { - compat_sigset_word sig[2]; -} compat_sigset_t; +struct pci2phy_map { + struct list_head list; + int segment; + int pbus_to_dieid[256]; +}; -typedef u32 compat_size_t; +struct acpi_device; -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 pci_sysdata { + int domain; + int node; + struct acpi_device *companion; + void *iommu; + void *fwnode; }; -struct _fpreg { - __u16 significand[4]; - __u16 exponent; +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, }; -struct _fpxreg { - __u16 significand[4]; - __u16 exponent; - __u16 padding[3]; +struct imc_uncore_pci_dev { + __u32 pci_id; + struct pci_driver *driver; }; -struct _xmmreg { - __u32 element[4]; +enum uncore_access_type { + UNCORE_ACCESS_MSR = 0, + UNCORE_ACCESS_MMIO = 1, + UNCORE_ACCESS_PCI = 2, + UNCORE_ACCESS_MAX = 3, }; -struct _fpx_sw_bytes { - __u32 magic1; - __u32 extended_size; - __u64 xfeatures; - __u32 xstate_size; - __u32 padding[7]; +enum { + SNBEP_PCI_QPI_PORT0_FILTER = 0, + SNBEP_PCI_QPI_PORT1_FILTER = 1, + BDX_PCI_QPI_PORT2_FILTER = 2, }; -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]; +enum { + IIO_TOPOLOGY_TYPE = 0, + UPI_TOPOLOGY_TYPE = 1, + TOPOLOGY_MAX = 2, }; -typedef s32 compat_pid_t; - -typedef u32 __compat_uid32_t; - -typedef s32 compat_timer_t; - -typedef s32 compat_int_t; +typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *); -union compat_sigval { - compat_int_t sival_int; - compat_uptr_t sival_ptr; +struct poll_table_struct { + poll_queue_proc _qproc; + __poll_t _key; }; -typedef union compat_sigval compat_sigval_t; +struct trace_event_functions; -typedef s32 compat_clock_t; +struct trace_event { + struct hlist_node node; + int type; + struct trace_event_functions *funcs; +}; -typedef u32 compat_ulong_t; +struct trace_event_class; -struct compat_siginfo { - int si_signo; - int si_errno; - int si_code; +struct trace_event_call { + struct list_head list; + struct trace_event_class *class; 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; + 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 *); }; -typedef struct compat_siginfo compat_siginfo_t; - -struct compat_sigaltstack { - compat_uptr_t ss_sp; - int ss_flags; - compat_size_t ss_size; +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, }; -typedef struct compat_sigaltstack compat_stack_t; +struct trace_event_fields; -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 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 rt_sigframe_ia32 { - u32 pretcode; - int sig; - u32 pinfo; - u32 puc; - compat_siginfo_t info; - struct ucontext_ia32 uc; - char retcode[8]; +struct trace_event_fields { + const char *type; + union { + struct { + const char *name; + const int size; + const int align; + const int is_signed; + const int filter_type; + const int len; + }; + int (*define_fields)(struct trace_event_call *); + }; }; -struct 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; +enum print_line_t { + TRACE_TYPE_PARTIAL_LINE = 0, + TRACE_TYPE_HANDLED = 1, + TRACE_TYPE_UNHANDLED = 2, + TRACE_TYPE_NO_CONSUME = 3, }; -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 trace_iterator; -enum align_flags { - ALIGN_VA_32 = 1, - ALIGN_VA_64 = 2, -}; +typedef enum print_line_t (*trace_print_func)(struct trace_iterator *, int, struct trace_event *); -struct vm_unmapped_area_info { - unsigned long flags; - unsigned long length; - unsigned long low_limit; - unsigned long high_limit; - unsigned long align_mask; - unsigned long align_offset; +struct trace_event_functions { + trace_print_func trace; + trace_print_func raw; + trace_print_func hex; + trace_print_func binary; }; -typedef struct { - p4dval_t p4d; -} p4d_t; - -struct ref_tracker_dir {}; - -struct raw_notifier_head { - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +struct seq_buf { + char *buffer; + size_t size; + size_t len; }; -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 trace_seq { + char buffer[4096]; + struct seq_buf seq; + size_t readpos; + int full; }; -struct ipstats_mib; - -struct tcp_mib; - -struct linux_mib; - -struct udp_mib; +struct trace_array; -struct icmp_mib; +struct tracer; -struct icmpmsg_mib; +struct array_buffer; -struct icmpv6_mib; +struct ring_buffer_iter; -struct icmpv6msg_mib; +struct trace_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 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 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 netns_packet { - struct mutex sklist_lock; - struct hlist_head sklist; +struct trace_entry { + unsigned short type; + unsigned char flags; + unsigned char preempt_count; + int pid; }; -struct unix_table { - spinlock_t *locks; - struct hlist_head *buckets; +struct io_bitmap { + u64 sequence; + refcount_t refcnt; + unsigned int max; + unsigned long bitmap[1024]; }; -struct netns_unix { - struct unix_table table; - int sysctl_max_dgram_qlen; - struct ctl_table_header *ctl; -}; +typedef void (*btf_trace_local_timer_entry)(void *, int); -struct blocking_notifier_head { - struct rw_semaphore rwsem; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; -}; +typedef void (*btf_trace_local_timer_exit)(void *, int); -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; -}; +typedef void (*btf_trace_spurious_apic_entry)(void *, int); -struct inet_hashinfo; +typedef void (*btf_trace_spurious_apic_exit)(void *, int); -struct inet_timewait_death_row { - refcount_t tw_refcount; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct inet_hashinfo *hashinfo; - int sysctl_max_tw_buckets; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; +typedef void (*btf_trace_error_apic_entry)(void *, int); -struct local_ports { - seqlock_t lock; - int range[2]; - bool warned; -}; +typedef void (*btf_trace_error_apic_exit)(void *, int); -struct ping_group_range { - seqlock_t lock; - kgid_t range[2]; -}; +typedef void (*btf_trace_x86_platform_ipi_entry)(void *, int); -typedef struct { - u64 key[2]; -} siphash_key_t; +typedef void (*btf_trace_x86_platform_ipi_exit)(void *, int); -struct udp_table; +typedef void (*btf_trace_irq_work_entry)(void *, int); -struct ipv4_devconf; +typedef void (*btf_trace_irq_work_exit)(void *, int); -struct ip_ra_chain; +typedef void (*btf_trace_reschedule_entry)(void *, int); -struct fib_rules_ops; +typedef void (*btf_trace_reschedule_exit)(void *, int); -struct fib_table; +typedef void (*btf_trace_call_function_entry)(void *, int); -struct inet_peer_base; +typedef void (*btf_trace_call_function_exit)(void *, int); -struct fqdir; +typedef void (*btf_trace_call_function_single_entry)(void *, int); -struct tcp_congestion_ops; +typedef void (*btf_trace_call_function_single_exit)(void *, int); -struct tcp_fastopen_context; +typedef void (*btf_trace_threshold_apic_entry)(void *, int); -struct mr_table; +typedef void (*btf_trace_threshold_apic_exit)(void *, int); -struct fib_notifier_ops; +typedef void (*btf_trace_deferred_error_apic_entry)(void *, int); -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; - u8 sysctl_tcp_shrink_window; - struct hlist_head *fib_table_hash; - struct sock *fibnl; - struct sock *mc_autojoin_sk; - struct inet_peer_base *peers; - struct fqdir *fqdir; - u8 sysctl_icmp_echo_ignore_all; - u8 sysctl_icmp_echo_enable_probe; - u8 sysctl_icmp_echo_ignore_broadcasts; - u8 sysctl_icmp_ignore_bogus_error_responses; - u8 sysctl_icmp_errors_use_inbound_ifaddr; - int sysctl_icmp_ratelimit; - int sysctl_icmp_ratemask; - u32 ip_rt_min_pmtu; - int ip_rt_mtu_expires; - int ip_rt_min_advmss; - struct local_ports ip_local_ports; - u8 sysctl_tcp_ecn; - u8 sysctl_tcp_ecn_fallback; - u8 sysctl_ip_default_ttl; - u8 sysctl_ip_no_pmtu_disc; - u8 sysctl_ip_fwd_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_tcp_syn_linear_timeouts; - u8 sysctl_igmp_llm_reports; - int sysctl_igmp_max_memberships; - int sysctl_igmp_max_msf; - int sysctl_igmp_qrv; - struct ping_group_range ping_group_range; - atomic_t dev_addr_genid; - unsigned int sysctl_udp_child_hash_entries; - unsigned long *sysctl_local_reserved_ports; - int sysctl_ip_prot_sock; - struct 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; -}; +typedef void (*btf_trace_deferred_error_apic_exit)(void *, int); -struct dst_entry; +typedef void (*btf_trace_thermal_apic_entry)(void *, int); -struct net_device; +typedef void (*btf_trace_thermal_apic_exit)(void *, int); -struct sk_buff; +typedef void (*btf_trace_vector_config)(void *, unsigned int, unsigned int, unsigned int, unsigned int); -struct neighbour; +typedef void (*btf_trace_vector_update)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); -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; -}; +typedef void (*btf_trace_vector_clear)(void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); -struct netns_sysctl_ipv6 { - struct ctl_table_header *hdr; - struct ctl_table_header *route_hdr; - struct ctl_table_header *icmp_hdr; - struct ctl_table_header *frags_hdr; - struct ctl_table_header *xfrm6_hdr; - int flush_delay; - int ip6_rt_max_size; - int ip6_rt_gc_min_interval; - int ip6_rt_gc_timeout; - int ip6_rt_gc_interval; - int ip6_rt_gc_elasticity; - int ip6_rt_mtu_expires; - int ip6_rt_min_advmss; - u32 multipath_hash_fields; - u8 multipath_hash_policy; - u8 bindv6only; - u8 flowlabel_consistency; - u8 auto_flowlabels; - int icmpv6_time; - u8 icmpv6_echo_ignore_all; - u8 icmpv6_echo_ignore_multicast; - u8 icmpv6_echo_ignore_anycast; - unsigned long icmpv6_ratemask[4]; - unsigned long *icmpv6_ratemask_ptr; - u8 anycast_src_echo_reply; - u8 ip_nonlocal_bind; - u8 fwmark_reflect; - u8 flowlabel_state_ranges; - int idgen_retries; - int idgen_delay; - int flowlabel_reflect; - int max_dst_opts_cnt; - int max_hbh_opts_cnt; - int max_dst_opts_len; - int max_hbh_opts_len; - int seg6_flowlabel; - u32 ioam6_id; - u64 ioam6_id_wide; - u8 skip_notify_on_dev_down; - u8 fib_notify_on_flag_change; - u8 icmpv6_error_anycast_as_unicast; -}; +typedef void (*btf_trace_vector_reserve_managed)(void *, unsigned int, int); -struct ipv6_devconf; +typedef void (*btf_trace_vector_reserve)(void *, unsigned int, int); -struct fib6_info; +typedef void (*btf_trace_vector_alloc)(void *, unsigned int, unsigned int, bool, int); -struct rt6_info; +typedef void (*btf_trace_vector_alloc_managed)(void *, unsigned int, unsigned int, int); -struct rt6_statistics; +typedef void (*btf_trace_vector_activate)(void *, unsigned int, bool, bool, bool); -struct fib6_table; +typedef void (*btf_trace_vector_deactivate)(void *, unsigned int, bool, bool, bool); -struct seg6_pernet_data; +typedef void (*btf_trace_vector_teardown)(void *, unsigned int, bool, bool); -struct ioam6_pernet_data; +typedef void (*btf_trace_vector_setup)(void *, unsigned int, bool, int); -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; - bool fib6_has_custom_rules; - unsigned int fib6_rules_require_fldissect; - unsigned int fib6_routes_require_src; - struct rt6_info *ip6_prohibit_entry; - struct rt6_info *ip6_blk_hole_entry; - struct fib6_table *fib6_local_tbl; - struct fib_rules_ops *fib6_rules_ops; - 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; +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: 64; long: 64; long: 64; @@ -12026,2663 +12313,3605 @@ struct netns_ipv6 { 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_ct_event_notifier; +} irq_cpustat_t; -struct nf_generic_net { - unsigned int timeout; +enum { + EVENT_FILE_FL_ENABLED = 1, + EVENT_FILE_FL_RECORDED_CMD = 2, + EVENT_FILE_FL_RECORDED_TGID = 4, + EVENT_FILE_FL_FILTERED = 8, + EVENT_FILE_FL_NO_SET_FILTER = 16, + EVENT_FILE_FL_SOFT_MODE = 32, + EVENT_FILE_FL_SOFT_DISABLED = 64, + EVENT_FILE_FL_TRIGGER_MODE = 128, + EVENT_FILE_FL_TRIGGER_COND = 256, + EVENT_FILE_FL_PID_FILTER = 512, + EVENT_FILE_FL_WAS_ENABLED = 1024, + EVENT_FILE_FL_FREED = 2048, }; -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 trace_event_raw_x86_irq_vector { + struct trace_entry ent; + int vector; + char __data[0]; }; -struct nf_udp_net { - unsigned int timeouts[2]; +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 nf_icmp_net { - unsigned int timeout; +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 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 trace_event_raw_vector_reserve { + struct trace_entry ent; + unsigned int irq; + int ret; + char __data[0]; }; -struct ip_conntrack_stat; - -struct netns_ct { - u8 sysctl_log_invalid; - u8 sysctl_events; - u8 sysctl_acct; - u8 sysctl_tstamp; - u8 sysctl_checksum; - struct ip_conntrack_stat __attribute__((btf_type_tag("percpu"))) *stat; - struct nf_ct_event_notifier __attribute__((btf_type_tag("rcu"))) *nf_conntrack_event_cb; - struct nf_ip_net nf_ct_proto; +struct trace_event_raw_vector_alloc { + struct trace_entry ent; + unsigned int irq; + unsigned int vector; + bool reserved; + int ret; + char __data[0]; }; -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 trace_event_raw_vector_alloc_managed { + struct trace_entry ent; + unsigned int irq; + unsigned int vector; + int ret; + char __data[0]; }; -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 trace_event_raw_vector_activate { + struct trace_entry ent; + unsigned int irq; + bool is_managed; + bool can_reserve; + bool reserve; + char __data[0]; }; -struct xfrm_policy_hthresh { - struct work_struct work; - seqlock_t lock; - u8 lbits4; - u8 rbits4; - u8 lbits6; - u8 rbits6; +struct trace_event_raw_vector_teardown { + struct trace_entry ent; + unsigned int irq; + bool is_managed; + bool has_reserved; + char __data[0]; }; -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 trace_event_raw_vector_setup { + struct trace_entry ent; + unsigned int irq; + bool is_legacy; + int ret; + char __data[0]; }; -struct netns_xdp { - struct mutex lock; - struct hlist_head list; +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 uevent_sock; +struct eventfs_inode; -struct net_generic; +struct trace_subsystem_dir; -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 trace_event_file { 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; - long: 64; - 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; - struct netns_xfrm xfrm; - u64 net_cookie; - struct netns_xdp xdp; - struct sock *diag_nlsk; - long: 64; -}; - -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 trace_event_call *event_call; + struct event_filter __attribute__((btf_type_tag("rcu"))) *filter; + struct eventfs_inode *ei; + struct trace_array *tr; + struct trace_subsystem_dir *system; + struct list_head triggers; + unsigned long flags; + atomic_t ref; + atomic_t sm_ref; + atomic_t tm_ref; }; -struct linux_mib { - unsigned long mibs[127]; -}; +struct prog_entry; -struct udp_mib { - unsigned long mibs[10]; +struct event_filter { + struct prog_entry __attribute__((btf_type_tag("rcu"))) *prog; + char *filter_string; }; -struct icmp_mib { - unsigned long mibs[30]; -}; +struct trace_buffer; -struct icmpmsg_mib { - atomic_long_t mibs[512]; -}; +struct ring_buffer_event; -struct icmpv6_mib { - unsigned long mibs[7]; +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 icmpv6msg_mib { - atomic_long_t mibs[512]; +struct ring_buffer_event { + u32 type_len: 5; + u32 time_delta: 27; + u32 array[0]; }; -struct ip_ra_chain { - struct ip_ra_chain __attribute__((btf_type_tag("rcu"))) *next; - struct sock *sk; +struct irqentry_state { union { - void (*destructor)(struct sock *); - struct sock *saved_sk; + bool exit_rcu; + bool lockdep; }; - 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 struct irqentry_state irqentry_state_t; -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 trace_event_data_offsets_x86_irq_vector {}; -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 trace_event_data_offsets_vector_config {}; -struct bucket_table; +struct trace_event_data_offsets_vector_mod {}; -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 trace_event_data_offsets_vector_reserve {}; -struct inet_frags; +struct trace_event_data_offsets_vector_alloc {}; -struct fqdir { - long high_thresh; - long low_thresh; - int timeout; - int max_dist; - struct inet_frags *f; - struct net *net; - bool dead; - long: 64; - long: 64; - struct rhashtable rhashtable; - long: 64; - long: 64; - long: 64; - long: 64; - 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 trace_event_data_offsets_vector_alloc_managed {}; -struct inet_frag_queue; +struct trace_event_data_offsets_vector_activate {}; -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 trace_event_data_offsets_vector_teardown {}; -typedef __u32 __be32; +struct trace_event_data_offsets_vector_setup {}; -typedef __u16 __be16; +struct trace_event_data_offsets_vector_free_moved {}; -struct frag_v4_compare_key { - __be32 saddr; - __be32 daddr; - u32 user; - u32 vif; - __be16 id; - u16 protocol; +enum psc_op { + SNP_PAGE_STATE_PRIVATE = 1, + SNP_PAGE_STATE_SHARED = 2, }; -struct in6_addr { - union { - __u8 u6_addr8[16]; - __be16 u6_addr16[8]; - __be32 u6_addr32[4]; - } in6_u; +struct dmi_strmatch { + unsigned char slot: 7; + unsigned char exact_match: 1; + char substr[79]; }; -struct frag_v6_compare_key { - struct in6_addr saddr; - struct in6_addr daddr; - u32 user; - __be32 id; - u32 iif; +struct dmi_system_id { + int (*callback)(const struct dmi_system_id *); + const char *ident; + struct dmi_strmatch matches[4]; + void *driver_data; }; -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; +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, }; -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 dst_pending_confirm: 1; - __u8 ip_summed: 2; - __u8 ooo_okay: 1; - __u8 __mono_tc_offset[0]; - __u8 mono_delivery_time: 1; - __u8 tc_at_ingress: 1; - __u8 tc_skip_classify: 1; - __u8 remcsum_offload: 1; - __u8 csum_complete_sw: 1; - __u8 csum_level: 2; - __u8 inner_protocol_type: 1; - __u8 l4_hash: 1; - __u8 sw_hash: 1; - __u8 wifi_acked_valid: 1; - __u8 wifi_acked: 1; - __u8 no_fcs: 1; - __u8 encapsulation: 1; - __u8 encap_hdr_csum: 1; - __u8 csum_valid: 1; - __u8 ndisc_nodetype: 2; - __u8 redirected: 1; - __u8 nf_skip_egress: 1; - __u8 slow_gro: 1; - __u16 tc_index; - u16 alloc_cpu; - union { - __wsum csum; - struct { - __u16 csum_start; - __u16 csum_offset; - }; - }; - __u32 priority; - int skb_iif; - __u32 hash; - union { - u32 vlan_all; - struct { - __be16 vlan_proto; - __u16 vlan_tci; - }; - }; - union { - unsigned int napi_id; - unsigned int sender_cpu; - }; - __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 dst_pending_confirm: 1; - __u8 ip_summed: 2; - __u8 ooo_okay: 1; - __u8 __mono_tc_offset[0]; - __u8 mono_delivery_time: 1; - __u8 tc_at_ingress: 1; - __u8 tc_skip_classify: 1; - __u8 remcsum_offload: 1; - __u8 csum_complete_sw: 1; - __u8 csum_level: 2; - __u8 inner_protocol_type: 1; - __u8 l4_hash: 1; - __u8 sw_hash: 1; - __u8 wifi_acked_valid: 1; - __u8 wifi_acked: 1; - __u8 no_fcs: 1; - __u8 encapsulation: 1; - __u8 encap_hdr_csum: 1; - __u8 csum_valid: 1; - __u8 ndisc_nodetype: 2; - __u8 redirected: 1; - __u8 nf_skip_egress: 1; - __u8 slow_gro: 1; - __u16 tc_index; - u16 alloc_cpu; - union { - __wsum csum; - struct { - __u16 csum_start; - __u16 csum_offset; - }; - }; - __u32 priority; - int skb_iif; - __u32 hash; - union { - u32 vlan_all; - struct { - __be16 vlan_proto; - __u16 vlan_tci; - }; - }; - union { - unsigned int napi_id; - unsigned int sender_cpu; - }; - __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 e820_entry { + u64 addr; + u64 size; + enum e820_type type; +} __attribute__((packed)); -struct skb_ext { - refcount_t refcnt; - u8 offset[1]; - u8 chunks; - long: 0; - char data[0]; +union text_poke_insn { + u8 text[5]; + struct { + u8 opcode; + s32 disp; + } __attribute__((packed)); }; -struct rhashtable_compare_arg { - struct rhashtable *ht; - const void *key; +enum insn_type { + CALL = 0, + NOP = 1, + JMP = 2, + RET = 3, + JCC = 4, }; -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 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, }; -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, -}; +typedef void (*btf_trace_x86_fpu_before_save)(void *, struct fpu *); -struct ack_sample; +typedef void (*btf_trace_x86_fpu_after_save)(void *, struct fpu *); -struct rate_sample; +typedef void (*btf_trace_x86_fpu_before_restore)(void *, struct fpu *); -union tcp_cc_info; +typedef void (*btf_trace_x86_fpu_after_restore)(void *, struct fpu *); -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; -}; +typedef void (*btf_trace_x86_fpu_regs_activated)(void *, struct fpu *); -struct tcp_fastopen_context { - siphash_key_t key[2]; - int num; - struct callback_head rcu; -}; +typedef void (*btf_trace_x86_fpu_regs_deactivated)(void *, struct fpu *); -typedef struct { - atomic_t refcnt; -} rcuref_t; +typedef void (*btf_trace_x86_fpu_init_state)(void *, struct fpu *); -typedef struct {} netdevice_tracker; +typedef void (*btf_trace_x86_fpu_dropped)(void *, struct fpu *); -struct xfrm_state; +typedef void (*btf_trace_x86_fpu_copy_src)(void *, struct fpu *); -struct uncached_list; +typedef void (*btf_trace_x86_fpu_copy_dst)(void *, struct fpu *); -struct lwtunnel_state; +typedef void (*btf_trace_x86_fpu_xstate_check_failed)(void *, struct fpu *); -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; - rcuref_t __rcuref; - int __use; - unsigned long lastuse; - struct callback_head callback_head; - short error; - short __pad; - __u32 tclassid; - netdevice_tracker dev_tracker; - struct list_head rt_uncached; - struct uncached_list *rt_uncached_list; - struct lwtunnel_state *lwtstate; +struct fpu_state_config { + unsigned int max_size; + unsigned int default_size; + u64 max_features; + u64 default_features; + u64 legacy_features; }; -enum nf_log_type { - NF_LOG_TYPE_LOG = 0, - NF_LOG_TYPE_ULOG = 1, - NF_LOG_TYPE_MAX = 2, +struct trace_event_raw_x86_fpu { + struct trace_entry ent; + struct fpu *fpu; + bool load_fpu; + u64 xfeatures; + u64 xcomp_bv; + char __data[0]; }; -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 trace_event_data_offsets_x86_fpu {}; -struct nf_logger { - char *name; - enum nf_log_type type; - nf_logfn *logfn; - struct module *me; +struct mtrr_ops { + u32 var_regs; + void (*set)(unsigned int, unsigned long, unsigned long, mtrr_type); + void (*get)(unsigned int, unsigned long *, unsigned long *, mtrr_type *); + int (*get_free_region)(unsigned long, unsigned long, int); + int (*validate_add_page)(unsigned long, unsigned long, unsigned int); + int (*have_wrcomb)(); }; -struct nf_hook_state; +struct set_mtrr_data { + unsigned long smp_base; + unsigned long smp_size; + unsigned int smp_reg; + mtrr_type smp_type; +}; -typedef unsigned int nf_hookfn(void *, struct sk_buff *, const struct nf_hook_state *); +typedef int (*cpu_stop_fn_t)(void *); -struct nf_hook_entry { - nf_hookfn *hook; - void *priv; +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 nf_hook_entries { - u16 num_hook_entries; - struct nf_hook_entry hooks[0]; +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_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, }; -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; +enum { + IRQCHIP_SET_TYPE_MASKED = 1, + IRQCHIP_EOI_IF_HANDLED = 2, + IRQCHIP_MASK_ON_SUSPEND = 4, + IRQCHIP_ONOFFLINE_ENABLED = 8, + IRQCHIP_SKIP_SET_WAKE = 16, + IRQCHIP_ONESHOT_SAFE = 32, + IRQCHIP_EOI_THREADED = 64, + IRQCHIP_SUPPORTS_LEVEL_MSI = 128, + IRQCHIP_SUPPORTS_NMI = 256, + IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, + IRQCHIP_AFFINITY_PRE_STARTUP = 1024, + IRQCHIP_IMMUTABLE = 2048, }; -struct net_generic { - union { - struct { - unsigned int len; - struct callback_head rcu; - } s; - struct { - struct {} __empty_ptr; - void *ptr[0]; - }; - }; +enum { + IRQ_SET_MASK_OK = 0, + IRQ_SET_MASK_OK_NOCOPY = 1, + IRQ_SET_MASK_OK_DONE = 2, }; -struct napi_struct; - -struct page_pool_params { - unsigned int flags; - unsigned int order; - unsigned int pool_size; - int nid; - struct device *dev; - struct napi_struct *napi; - enum dma_data_direction dma_dir; - unsigned int max_len; - unsigned int offset; - void (*init_callback)(struct page *, void *); - void *init_arg; +enum { + IRQD_TRIGGER_MASK = 15, + IRQD_SETAFFINITY_PENDING = 256, + IRQD_ACTIVATED = 512, + IRQD_NO_BALANCING = 1024, + IRQD_PER_CPU = 2048, + IRQD_AFFINITY_SET = 4096, + IRQD_LEVEL = 8192, + IRQD_WAKEUP_STATE = 16384, + IRQD_MOVE_PCNTXT = 32768, + IRQD_IRQ_DISABLED = 65536, + IRQD_IRQ_MASKED = 131072, + IRQD_IRQ_INPROGRESS = 262144, + IRQD_WAKEUP_ARMED = 524288, + IRQD_FORWARDED_TO_VCPU = 1048576, + IRQD_AFFINITY_MANAGED = 2097152, + IRQD_IRQ_STARTED = 4194304, + IRQD_MANAGED_SHUTDOWN = 8388608, + IRQD_SINGLE_TARGET = 16777216, + IRQD_DEFAULT_TRIGGER_SET = 33554432, + IRQD_CAN_RESERVE = 67108864, + IRQD_HANDLE_ENFORCE_IRQCTX = 134217728, + IRQD_AFFINITY_ON_ACTIVATE = 268435456, + IRQD_IRQ_ENABLED_ON_SUSPEND = 536870912, + IRQD_RESEND_WHEN_IN_PROGRESS = 1073741824, }; -struct page_pool_alloc_stats { - u64 fast; - u64 slow; - u64 slow_high_order; - u64 empty; - u64 refill; - u64 waive; +enum { + IRQCHIP_FWNODE_REAL = 0, + IRQCHIP_FWNODE_NAMED = 1, + IRQCHIP_FWNODE_NAMED_ID = 2, }; -struct pp_alloc_cache { - u32 count; - struct page *cache[128]; +struct irq_cfg { + unsigned int dest_apicid; + unsigned int vector; }; -struct ptr_ring { - int producer; - spinlock_t producer_lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - int consumer_head; - int consumer_tail; - spinlock_t consumer_lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - int size; - int batch; - void **queue; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct plist_head { + struct list_head node_list; }; -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; - 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; +enum pm_qos_type { + PM_QOS_UNITIALIZED = 0, + PM_QOS_MAX = 1, + PM_QOS_MIN = 2, }; -struct page_pool_recycle_stats { - u64 cached; - u64 cache_full; - u64 ring; - u64 ring_full; - u64 released_refcnt; -}; +struct blocking_notifier_head; -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 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; }; -enum { - MEMREMAP_WB = 1, - MEMREMAP_WT = 2, - MEMREMAP_WC = 4, - MEMREMAP_ENC = 8, - MEMREMAP_DEC = 16, +struct blocking_notifier_head { + struct rw_semaphore rwsem; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -struct change_member { - struct e820_entry *entry; - unsigned long long addr; +struct freq_constraints { + struct pm_qos_constraints min_freq; + struct blocking_notifier_head min_freq_notifiers; + struct pm_qos_constraints max_freq; + struct blocking_notifier_head max_freq_notifiers; }; -enum { - IORES_DESC_NONE = 0, - IORES_DESC_CRASH_KERNEL = 1, - IORES_DESC_ACPI_TABLES = 2, - IORES_DESC_ACPI_NV_STORAGE = 3, - IORES_DESC_PERSISTENT_MEMORY = 4, - IORES_DESC_PERSISTENT_MEMORY_LEGACY = 5, - IORES_DESC_DEVICE_PRIVATE_MEMORY = 6, - IORES_DESC_RESERVED = 7, - IORES_DESC_SOFT_RESERVED = 8, - IORES_DESC_CXL = 9, +struct pm_qos_flags { + struct list_head list; + s32 effective_flags; }; -typedef int (*cmp_func_t)(const void *, const void *); - -typedef void (*swap_func_t)(void *, void *, int); - -struct io_tlb_area; - -struct io_tlb_slot; +struct dev_pm_qos_request; -struct io_tlb_mem { - phys_addr_t start; - phys_addr_t end; - void *vaddr; - unsigned long nslabs; - 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; - atomic_long_t total_used; - atomic_long_t used_hiwater; +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 sg_table { - struct scatterlist *sgl; - unsigned int nents; - unsigned int orig_nents; +struct pm_qos_flags_request { + struct list_head node; + s32 flags; }; -struct scatterlist { - unsigned long page_link; - unsigned int offset; - unsigned int length; - dma_addr_t dma_address; - unsigned int dma_length; - unsigned int dma_flags; +enum freq_qos_req_type { + FREQ_QOS_MIN = 1, + FREQ_QOS_MAX = 2, }; -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, +struct freq_qos_request { + enum freq_qos_req_type type; + struct plist_node pnode; + struct freq_constraints *qos; }; -enum dmi_field { - DMI_NONE = 0, - DMI_BIOS_VENDOR = 1, - DMI_BIOS_VERSION = 2, - DMI_BIOS_DATE = 3, - DMI_BIOS_RELEASE = 4, - DMI_EC_FIRMWARE_RELEASE = 5, - DMI_SYS_VENDOR = 6, - DMI_PRODUCT_NAME = 7, - DMI_PRODUCT_VERSION = 8, - DMI_PRODUCT_SERIAL = 9, - DMI_PRODUCT_UUID = 10, - DMI_PRODUCT_SKU = 11, - DMI_PRODUCT_FAMILY = 12, - DMI_BOARD_VENDOR = 13, - DMI_BOARD_NAME = 14, - DMI_BOARD_VERSION = 15, - DMI_BOARD_SERIAL = 16, - DMI_BOARD_ASSET_TAG = 17, - DMI_CHASSIS_VENDOR = 18, - DMI_CHASSIS_TYPE = 19, - DMI_CHASSIS_VERSION = 20, - DMI_CHASSIS_SERIAL = 21, - DMI_CHASSIS_ASSET_TAG = 22, - DMI_STRING_MAX = 23, - DMI_OEM_STRING = 24, +enum 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 cpu { - int node_id; - int hotpluggable; - struct device dev; +struct dev_pm_qos_request { + enum dev_pm_qos_req_type type; + union { + struct plist_node pnode; + struct pm_qos_flags_request flr; + struct freq_qos_request freq; + } data; + struct device *dev; }; -struct x86_cpu { - struct cpu cpu; +struct pm_qos_request { + struct plist_node node; + struct pm_qos_constraints *qos; }; -struct debugfs_blob_wrapper { - void *data; - unsigned long size; -}; +struct wait_queue_entry; -struct setup_data_node { - u64 paddr; - u32 type; - u32 len; -}; +typedef int (*wait_queue_func_t)(struct wait_queue_entry *, unsigned int, int, void *); -struct text_poke_loc { - s32 rel_addr; - s32 disp; - u8 len; - u8 opcode; - const u8 text[5]; - u8 old; +struct wait_queue_entry { + unsigned int flags; + void *private; + wait_queue_func_t func; + struct list_head entry; }; -struct bp_patching_desc { - struct text_poke_loc *vec; - int nr_entries; - atomic_t refs; +enum sysctl_writes_mode { + SYSCTL_WRITES_LEGACY = -1, + SYSCTL_WRITES_WARN = 0, + SYSCTL_WRITES_STRICT = 1, }; -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; +enum writeback_sync_modes { + WB_SYNC_NONE = 0, + WB_SYNC_ALL = 1, }; -typedef u8 retpoline_thunk_t[32]; - -typedef struct { - struct mm_struct *mm; -} temp_mm_state_t; - -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 paravirt_patch_site { - u8 *instr; - u8 type; - u8 len; +enum netdev_tx { + __NETDEV_TX_MIN = -2147483648, + NETDEV_TX_OK = 0, + NETDEV_TX_BUSY = 16, }; -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; +enum bpf_prog_type { + BPF_PROG_TYPE_UNSPEC = 0, + BPF_PROG_TYPE_SOCKET_FILTER = 1, + BPF_PROG_TYPE_KPROBE = 2, + BPF_PROG_TYPE_SCHED_CLS = 3, + BPF_PROG_TYPE_SCHED_ACT = 4, + BPF_PROG_TYPE_TRACEPOINT = 5, + BPF_PROG_TYPE_XDP = 6, + BPF_PROG_TYPE_PERF_EVENT = 7, + BPF_PROG_TYPE_CGROUP_SKB = 8, + BPF_PROG_TYPE_CGROUP_SOCK = 9, + BPF_PROG_TYPE_LWT_IN = 10, + BPF_PROG_TYPE_LWT_OUT = 11, + BPF_PROG_TYPE_LWT_XMIT = 12, + BPF_PROG_TYPE_SOCK_OPS = 13, + BPF_PROG_TYPE_SK_SKB = 14, + BPF_PROG_TYPE_CGROUP_DEVICE = 15, + BPF_PROG_TYPE_SK_MSG = 16, + BPF_PROG_TYPE_RAW_TRACEPOINT = 17, + BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18, + BPF_PROG_TYPE_LWT_SEG6LOCAL = 19, + BPF_PROG_TYPE_LIRC_MODE2 = 20, + BPF_PROG_TYPE_SK_REUSEPORT = 21, + BPF_PROG_TYPE_FLOW_DISSECTOR = 22, + BPF_PROG_TYPE_CGROUP_SYSCTL = 23, + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24, + BPF_PROG_TYPE_CGROUP_SOCKOPT = 25, + BPF_PROG_TYPE_TRACING = 26, + BPF_PROG_TYPE_STRUCT_OPS = 27, + BPF_PROG_TYPE_EXT = 28, + BPF_PROG_TYPE_LSM = 29, + BPF_PROG_TYPE_SK_LOOKUP = 30, + BPF_PROG_TYPE_SYSCALL = 31, + BPF_PROG_TYPE_NETFILTER = 32, }; -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, +enum bpf_attach_type { + BPF_CGROUP_INET_INGRESS = 0, + BPF_CGROUP_INET_EGRESS = 1, + BPF_CGROUP_INET_SOCK_CREATE = 2, + BPF_CGROUP_SOCK_OPS = 3, + BPF_SK_SKB_STREAM_PARSER = 4, + BPF_SK_SKB_STREAM_VERDICT = 5, + BPF_CGROUP_DEVICE = 6, + BPF_SK_MSG_VERDICT = 7, + BPF_CGROUP_INET4_BIND = 8, + BPF_CGROUP_INET6_BIND = 9, + BPF_CGROUP_INET4_CONNECT = 10, + BPF_CGROUP_INET6_CONNECT = 11, + BPF_CGROUP_INET4_POST_BIND = 12, + BPF_CGROUP_INET6_POST_BIND = 13, + BPF_CGROUP_UDP4_SENDMSG = 14, + BPF_CGROUP_UDP6_SENDMSG = 15, + BPF_LIRC_MODE2 = 16, + BPF_FLOW_DISSECTOR = 17, + BPF_CGROUP_SYSCTL = 18, + BPF_CGROUP_UDP4_RECVMSG = 19, + BPF_CGROUP_UDP6_RECVMSG = 20, + BPF_CGROUP_GETSOCKOPT = 21, + BPF_CGROUP_SETSOCKOPT = 22, + BPF_TRACE_RAW_TP = 23, + BPF_TRACE_FENTRY = 24, + BPF_TRACE_FEXIT = 25, + BPF_MODIFY_RETURN = 26, + BPF_LSM_MAC = 27, + BPF_TRACE_ITER = 28, + BPF_CGROUP_INET4_GETPEERNAME = 29, + BPF_CGROUP_INET6_GETPEERNAME = 30, + BPF_CGROUP_INET4_GETSOCKNAME = 31, + BPF_CGROUP_INET6_GETSOCKNAME = 32, + BPF_XDP_DEVMAP = 33, + BPF_CGROUP_INET_SOCK_RELEASE = 34, + BPF_XDP_CPUMAP = 35, + BPF_SK_LOOKUP = 36, + BPF_XDP = 37, + BPF_SK_SKB_VERDICT = 38, + BPF_SK_REUSEPORT_SELECT = 39, + BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40, + BPF_PERF_EVENT = 41, + BPF_TRACE_KPROBE_MULTI = 42, + BPF_LSM_CGROUP = 43, + BPF_STRUCT_OPS = 44, + BPF_NETFILTER = 45, + BPF_TCX_INGRESS = 46, + BPF_TCX_EGRESS = 47, + BPF_TRACE_UPROBE_MULTI = 48, + BPF_CGROUP_UNIX_CONNECT = 49, + BPF_CGROUP_UNIX_SENDMSG = 50, + BPF_CGROUP_UNIX_RECVMSG = 51, + BPF_CGROUP_UNIX_GETPEERNAME = 52, + BPF_CGROUP_UNIX_GETSOCKNAME = 53, + BPF_NETKIT_PRIMARY = 54, + BPF_NETKIT_PEER = 55, + __MAX_BPF_ATTACH_TYPE = 56, }; -struct 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 { - HW_BREAKPOINT_EMPTY = 0, - HW_BREAKPOINT_R = 1, - HW_BREAKPOINT_W = 2, - HW_BREAKPOINT_RW = 3, - HW_BREAKPOINT_X = 4, - HW_BREAKPOINT_INVALID = 7, -}; - -enum { - HW_BREAKPOINT_LEN_1 = 1, - HW_BREAKPOINT_LEN_2 = 2, - HW_BREAKPOINT_LEN_3 = 3, - HW_BREAKPOINT_LEN_4 = 4, - HW_BREAKPOINT_LEN_5 = 5, - HW_BREAKPOINT_LEN_6 = 6, - HW_BREAKPOINT_LEN_7 = 7, - HW_BREAKPOINT_LEN_8 = 8, -}; - -struct tlb_context { - u64 ctx_id; - u64 tlb_gen; +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 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 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, }; -struct cyc2ns_data { - u32 cyc2ns_mul; - u32 cyc2ns_shift; - u64 cyc2ns_offset; +enum bpf_iter_task_type { + BPF_TASK_ITER_ALL = 0, + BPF_TASK_ITER_TID = 1, + BPF_TASK_ITER_TGID = 2, }; -typedef struct { - seqcount_t seqcount; -} seqcount_latch_t; - -struct cyc2ns { - struct cyc2ns_data data[2]; - seqcount_latch_t seq; +enum bpf_map_type { + BPF_MAP_TYPE_UNSPEC = 0, + BPF_MAP_TYPE_HASH = 1, + BPF_MAP_TYPE_ARRAY = 2, + BPF_MAP_TYPE_PROG_ARRAY = 3, + BPF_MAP_TYPE_PERF_EVENT_ARRAY = 4, + BPF_MAP_TYPE_PERCPU_HASH = 5, + BPF_MAP_TYPE_PERCPU_ARRAY = 6, + BPF_MAP_TYPE_STACK_TRACE = 7, + BPF_MAP_TYPE_CGROUP_ARRAY = 8, + BPF_MAP_TYPE_LRU_HASH = 9, + BPF_MAP_TYPE_LRU_PERCPU_HASH = 10, + BPF_MAP_TYPE_LPM_TRIE = 11, + BPF_MAP_TYPE_ARRAY_OF_MAPS = 12, + BPF_MAP_TYPE_HASH_OF_MAPS = 13, + BPF_MAP_TYPE_DEVMAP = 14, + BPF_MAP_TYPE_SOCKMAP = 15, + BPF_MAP_TYPE_CPUMAP = 16, + BPF_MAP_TYPE_XSKMAP = 17, + BPF_MAP_TYPE_SOCKHASH = 18, + BPF_MAP_TYPE_CGROUP_STORAGE_DEPRECATED = 19, + BPF_MAP_TYPE_CGROUP_STORAGE = 19, + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 20, + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE_DEPRECATED = 21, + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 21, + BPF_MAP_TYPE_QUEUE = 22, + BPF_MAP_TYPE_STACK = 23, + BPF_MAP_TYPE_SK_STORAGE = 24, + BPF_MAP_TYPE_DEVMAP_HASH = 25, + BPF_MAP_TYPE_STRUCT_OPS = 26, + BPF_MAP_TYPE_RINGBUF = 27, + BPF_MAP_TYPE_INODE_STORAGE = 28, + BPF_MAP_TYPE_TASK_STORAGE = 29, + BPF_MAP_TYPE_BLOOM_FILTER = 30, + BPF_MAP_TYPE_USER_RINGBUF = 31, + BPF_MAP_TYPE_CGRP_STORAGE = 32, }; -struct static_key_false { - struct static_key key; +enum btf_field_type { + BPF_SPIN_LOCK = 1, + BPF_TIMER = 2, + BPF_KPTR_UNREF = 4, + BPF_KPTR_REF = 8, + BPF_KPTR_PERCPU = 16, + BPF_KPTR = 28, + BPF_LIST_HEAD = 32, + BPF_LIST_NODE = 64, + BPF_RB_ROOT = 128, + BPF_RB_NODE = 256, + BPF_GRAPH_NODE_OR_ROOT = 480, + BPF_REFCOUNT = 512, }; -enum pm_qos_type { - PM_QOS_UNITIALIZED = 0, - PM_QOS_MAX = 1, - PM_QOS_MIN = 2, +enum zone_type { + ZONE_DMA = 0, + ZONE_DMA32 = 1, + ZONE_NORMAL = 2, + ZONE_MOVABLE = 3, + __MAX_NR_ZONES = 4, }; -enum freq_qos_req_type { - FREQ_QOS_MIN = 1, - FREQ_QOS_MAX = 2, +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, }; -enum cpufreq_table_sorting { - CPUFREQ_TABLE_UNSORTED = 0, - CPUFREQ_TABLE_SORTED_ASCENDING = 1, - CPUFREQ_TABLE_SORTED_DESCENDING = 2, +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, }; -enum { - WORK_STRUCT_PENDING_BIT = 0, - WORK_STRUCT_INACTIVE_BIT = 1, - WORK_STRUCT_PWQ_BIT = 2, - WORK_STRUCT_LINKED_BIT = 3, - WORK_STRUCT_COLOR_SHIFT = 4, - WORK_STRUCT_COLOR_BITS = 4, - WORK_STRUCT_PENDING = 1, - WORK_STRUCT_INACTIVE = 2, - WORK_STRUCT_PWQ = 4, - WORK_STRUCT_LINKED = 8, - WORK_STRUCT_STATIC = 0, - WORK_NR_COLORS = 16, - WORK_CPU_UNBOUND = 64, - WORK_STRUCT_FLAG_BITS = 8, - WORK_OFFQ_FLAG_BASE = 4, - __WORK_OFFQ_CANCELING = 4, - WORK_OFFQ_FLAG_BITS = 1, - WORK_OFFQ_POOL_SHIFT = 5, - WORK_OFFQ_LEFT = 59, - WORK_OFFQ_POOL_BITS = 31, - WORK_BUSY_PENDING = 1, - WORK_BUSY_RUNNING = 2, - WORKER_DESC_LEN = 24, +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, }; -typedef unsigned long long cycles_t; - -typedef unsigned int u_int; - -struct system_counterval_t { - u64 cycles; - struct clocksource *cs; -}; +typedef __u16 __be16; -struct cpufreq_policy; +struct net_device; -struct cpufreq_freqs { - struct cpufreq_policy *policy; - unsigned int old; - unsigned int new; - u8 flags; +struct net_device_path { + enum net_device_path_type type; + const struct net_device *dev; + union { + struct { + u16 id; + __be16 proto; + u8 h_dest[6]; + } encap; + struct { + enum { + DEV_PATH_BR_VLAN_KEEP = 0, + DEV_PATH_BR_VLAN_TAG = 1, + DEV_PATH_BR_VLAN_UNTAG = 2, + DEV_PATH_BR_VLAN_UNTAG_HW = 3, + } vlan_mode; + u16 vlan_id; + __be16 vlan_proto; + } bridge; + struct { + int port; + u16 proto; + } dsa; + struct { + u8 wdma_idx; + u8 queue; + u16 wcid; + u8 bss; + u8 amsdu; + } mtk_wdma; + }; }; -struct clk; +typedef u32 xdp_features_t; -struct cpufreq_cpuinfo { - unsigned int max_freq; - unsigned int min_freq; - unsigned int transition_latency; -}; +typedef u64 netdev_features_t; -struct plist_head { - struct list_head node_list; +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 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 netdev_hw_addr_list { + struct list_head list; + int count; + struct rb_root tree; }; -struct freq_constraints { - struct pm_qos_constraints min_freq; - struct blocking_notifier_head min_freq_notifiers; - struct pm_qos_constraints max_freq; - struct blocking_notifier_head max_freq_notifiers; +enum rx_handler_result { + RX_HANDLER_CONSUMED = 0, + RX_HANDLER_ANOTHER = 1, + RX_HANDLER_EXACT = 2, + RX_HANDLER_PASS = 3, }; -struct cpufreq_stats; - -struct cpufreq_governor; +typedef enum rx_handler_result rx_handler_result_t; -struct freq_qos_request; +struct sk_buff; -struct cpufreq_frequency_table; +typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **); -struct thermal_cooling_device; +struct ref_tracker_dir {}; -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; -}; +typedef struct { + struct net __attribute__((btf_type_tag("rcu"))) *net; +} possible_net_t; -struct cpufreq_governor { - char name[16]; - int (*init)(struct cpufreq_policy *); - void (*exit)(struct cpufreq_policy *); - int (*start)(struct cpufreq_policy *); - void (*stop)(struct cpufreq_policy *); - void (*limits)(struct cpufreq_policy *); - ssize_t (*show_setspeed)(struct cpufreq_policy *, char *); - int (*store_setspeed)(struct cpufreq_policy *, unsigned int); - struct list_head governor_list; - struct module *owner; - u8 flags; +enum netdev_ml_priv_type { + ML_PRIV_NONE = 0, + ML_PRIV_CAN = 1, }; -struct freq_qos_request { - enum freq_qos_req_type type; - struct plist_node pnode; - struct freq_constraints *qos; +enum netdev_stat_type { + NETDEV_PCPU_STAT_NONE = 0, + NETDEV_PCPU_STAT_LSTATS = 1, + NETDEV_PCPU_STAT_TSTATS = 2, + NETDEV_PCPU_STAT_DSTATS = 3, }; -struct cpufreq_frequency_table { - unsigned int flags; - unsigned int driver_data; - unsigned int frequency; +struct netdev_tc_txq { + u16 count; + u16 offset; }; -struct muldiv { - u32 multiplier; - u32 divider; -}; +struct sfp_bus; -struct freq_desc { - bool use_msr_plat; - struct muldiv muldiv[16]; - u32 freqs[16]; - u32 mask; -}; +struct udp_tunnel_nic; -struct dmi_strmatch { - unsigned char slot: 7; - unsigned char exact_match: 1; - char substr[79]; -}; +struct bpf_xdp_link; -struct dmi_system_id { - int (*callback)(const struct dmi_system_id *); - const char *ident; - struct dmi_strmatch matches[4]; - void *driver_data; +struct bpf_xdp_entity { + struct bpf_prog *prog; + struct bpf_xdp_link *link; }; -struct mfd_cell; +typedef struct {} netdevice_tracker; -struct pdev_archdata {}; +struct netdev_name_node; -struct platform_device_id; +struct dev_ifalias; -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 net_device_ops; -struct cdev { - struct kobject kobj; - struct module *owner; - const struct file_operations *ops; - struct list_head list; - dev_t dev; - unsigned int count; -}; +struct xdp_metadata_ops; -struct platform_device_id { - char name[20]; - kernel_ulong_t driver_data; -}; +struct net_device_core_stats; -struct pnp_protocol; +struct ethtool_ops; -struct pnp_card; +struct ndisc_ops; -struct pnp_driver; +struct header_ops; -struct pnp_card_link; +struct in_device; -struct pnp_id; +struct inet6_dev; -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 wireless_dev; -struct pnp_protocol { - struct list_head protocol_list; - char *name; - int (*get)(struct pnp_dev *); - int (*set)(struct pnp_dev *); - int (*disable)(struct pnp_dev *); - bool (*can_wakeup)(struct pnp_dev *); - int (*suspend)(struct pnp_dev *, pm_message_t); - int (*resume)(struct pnp_dev *); - unsigned char number; - struct device dev; - struct list_head cards; - struct list_head devices; -}; +struct netdev_rx_queue; -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 bpf_mprog_entry; -struct pnp_id { - char id[8]; - struct pnp_id *next; -}; +struct netdev_queue; -struct pnp_device_id; +struct nf_hook_entries; -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 cpu_rmap; -struct pnp_device_id { - __u8 id[8]; - kernel_ulong_t driver_data; -}; +struct Qdisc; -struct pnp_card_driver; +struct xdp_dev_bulk_queue; -struct pnp_card_link { - struct pnp_card *card; - struct pnp_card_driver *driver; - void *driver_data; - pm_message_t pm_state; -}; +struct xps_dev_maps; -struct pnp_card_device_id; +struct netpoll_info; -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 pcpu_lstats; -struct pnp_card_device_id { - __u8 id[8]; - kernel_ulong_t driver_data; - struct { - __u8 id[8]; - } devs[8]; -}; +struct pcpu_sw_netstats; -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 pcpu_dstats; -enum insn_type { - CALL = 0, - NOP = 1, - JMP = 2, - RET = 3, - JCC = 4, -}; +struct rtnl_link_ops; -struct pm_qos_flags { - struct list_head list; - s32 effective_flags; -}; +struct netprio_map; -struct dev_pm_qos_request; +struct phy_device; -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 udp_tunnel_nic_info; -struct pm_qos_flags_request { - struct list_head node; - s32 flags; -}; +struct rtnl_hw_stats64; -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 devlink_port; -struct dev_pm_qos_request { - enum dev_pm_qos_req_type type; +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; + 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; + unsigned int xdp_zc_max_segs; + rx_handler_func_t __attribute__((btf_type_tag("rcu"))) *rx_handler; + void __attribute__((btf_type_tag("rcu"))) *rx_handler_data; + struct bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_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; + long: 64; + 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 bpf_mprog_entry __attribute__((btf_type_tag("rcu"))) *tcx_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; + enum netdev_stat_type pcpu_stat_type: 8; union { - struct plist_node pnode; - struct pm_qos_flags_request flr; - struct freq_qos_request freq; - } data; - struct device *dev; -}; - -struct ssb_state { - struct ssb_state *shared_state; - raw_spinlock_t lock; - unsigned int disable_state; - unsigned long local_state; -}; - -enum idle_boot_override { - IDLE_NO_OVERRIDE = 0, - IDLE_HALT = 1, - IDLE_NOMWAIT = 2, - IDLE_POLL = 3, -}; - -enum tick_broadcast_state { - TICK_BROADCAST_EXIT = 0, - TICK_BROADCAST_ENTER = 1, -}; - -enum tick_broadcast_mode { - TICK_BROADCAST_OFF = 0, - TICK_BROADCAST_ON = 1, - TICK_BROADCAST_FORCE = 2, -}; - -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 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 fork_frame { - struct inactive_task_frame frame; - struct pt_regs regs; +struct dev_ifalias { + struct callback_head rcuhead; + char ifalias[0]; }; -typedef struct ldttss_desc tss_desc; - -typedef void (*btf_trace_x86_fpu_before_save)(void *, struct fpu *); +typedef enum netdev_tx netdev_tx_t; -typedef void (*btf_trace_x86_fpu_after_save)(void *, struct fpu *); +struct ifreq; -typedef void (*btf_trace_x86_fpu_before_restore)(void *, struct fpu *); +struct if_settings; -typedef void (*btf_trace_x86_fpu_after_restore)(void *, struct fpu *); +struct ifmap; -typedef void (*btf_trace_x86_fpu_regs_activated)(void *, struct fpu *); +struct neigh_parms; -typedef void (*btf_trace_x86_fpu_regs_deactivated)(void *, struct fpu *); +struct rtnl_link_stats64; -typedef void (*btf_trace_x86_fpu_init_state)(void *, struct fpu *); +struct ifla_vf_info; -typedef void (*btf_trace_x86_fpu_dropped)(void *, struct fpu *); +struct ifla_vf_stats; -typedef void (*btf_trace_x86_fpu_copy_src)(void *, struct fpu *); +struct nlattr; -typedef void (*btf_trace_x86_fpu_copy_dst)(void *, struct fpu *); +struct ifla_vf_guid; -typedef void (*btf_trace_x86_fpu_xstate_check_failed)(void *, struct fpu *); +struct netlink_ext_ack; -struct fpu_state_config { - unsigned int max_size; - unsigned int default_size; - u64 max_features; - u64 default_features; - u64 legacy_features; -}; +struct neighbour; -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 ndmsg; -struct trace_event_data_offsets_x86_fpu {}; +struct nlmsghdr; -enum xstate_copy_mode { - XSTATE_COPY_FP = 0, - XSTATE_COPY_FX = 1, - XSTATE_COPY_XSAVE = 2, -}; +struct netlink_callback; -struct membuf { - void *p; - size_t left; -}; +struct netdev_phys_item_id; -struct user_i387_ia32_struct { - u32 cwd; - u32 swd; - u32 twd; - u32 fip; - u32 fcs; - u32 foo; - u32 fos; - u32 st_space[20]; -}; +struct netdev_bpf; -struct user_regset; +struct xdp_frame; -typedef int user_regset_get2_fn(struct task_struct *, const struct user_regset *, struct membuf); +struct xdp_buff; -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"))) *); +struct ip_tunnel_parm; -typedef int user_regset_active_fn(struct task_struct *, const struct user_regset *); +struct net_device_path_ctx; -typedef int user_regset_writeback_fn(struct task_struct *, const struct user_regset *, int); +struct skb_shared_hwtstamps; -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 kernel_hwtstamp_config; -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 pt_regs_offset { - const char *name; - int offset; +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 nlmsghdr *, struct net_device *, struct netlink_ext_ack *); + int (*ndo_fdb_dump)(struct sk_buff *, struct netlink_callback *, struct net_device *, struct net_device *, int *); + int (*ndo_fdb_get)(struct sk_buff *, struct nlattr **, struct net_device *, const unsigned char *, u16, u32, u32, struct netlink_ext_ack *); + int (*ndo_mdb_add)(struct net_device *, struct nlattr **, u16, struct netlink_ext_ack *); + int (*ndo_mdb_del)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); + int (*ndo_mdb_dump)(struct net_device *, struct sk_buff *, struct netlink_callback *); + int (*ndo_mdb_get)(struct net_device *, struct nlattr **, u32, u32, struct netlink_ext_ack *); + int (*ndo_bridge_setlink)(struct net_device *, struct nlmsghdr *, u16, struct netlink_ext_ack *); + int (*ndo_bridge_getlink)(struct sk_buff *, u32, u32, struct net_device *, u32, int); + int (*ndo_bridge_dellink)(struct net_device *, struct nlmsghdr *, u16); + int (*ndo_change_carrier)(struct net_device *, bool); + int (*ndo_get_phys_port_id)(struct net_device *, struct netdev_phys_item_id *); + int (*ndo_get_port_parent_id)(struct net_device *, struct netdev_phys_item_id *); + int (*ndo_get_phys_port_name)(struct net_device *, char *, size_t); + void * (*ndo_dfwd_add_station)(struct net_device *, struct net_device *); + void (*ndo_dfwd_del_station)(struct net_device *, void *); + int (*ndo_set_tx_maxrate)(struct net_device *, int, u32); + int (*ndo_get_iflink)(const struct net_device *); + int (*ndo_fill_metadata_dst)(struct net_device *, struct sk_buff *); + void (*ndo_set_rx_headroom)(struct net_device *, int); + int (*ndo_bpf)(struct net_device *, struct netdev_bpf *); + int (*ndo_xdp_xmit)(struct net_device *, int, struct xdp_frame **, u32); + struct net_device * (*ndo_xdp_get_xmit_slave)(struct net_device *, struct xdp_buff *); + int (*ndo_xsk_wakeup)(struct net_device *, u32, u32); + int (*ndo_tunnel_ctl)(struct net_device *, struct ip_tunnel_parm *, int); + struct net_device * (*ndo_get_peer_dev)(struct net_device *); + int (*ndo_fill_forward_path)(struct net_device_path_ctx *, struct net_device_path *); + ktime_t (*ndo_get_tstamp)(struct net_device *, const struct skb_shared_hwtstamps *, bool); + int (*ndo_hwtstamp_get)(struct net_device *, struct kernel_hwtstamp_config *); + int (*ndo_hwtstamp_set)(struct net_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); }; -struct user_regset_view { - const char *name; - const struct user_regset *regsets; - unsigned int n; - u32 e_flags; - u16 e_machine; - u8 ei_osabi; -}; +typedef __u32 __wsum; -enum x86_regset_32 { - REGSET32_GENERAL = 0, - REGSET32_FP = 1, - REGSET32_XFP = 2, - REGSET32_XSTATE = 3, - REGSET32_TLS = 4, - REGSET32_IOPERM = 5, -}; +typedef unsigned int sk_buff_data_t; -enum x86_regset_64 { - REGSET64_GENERAL = 0, - REGSET64_FP = 1, - REGSET64_IOPERM = 2, - REGSET64_XSTATE = 3, -}; +struct skb_ext; -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 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 dst_pending_confirm: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 __mono_tc_offset[0]; + __u8 mono_delivery_time: 1; + __u8 tc_at_ingress: 1; + __u8 tc_skip_classify: 1; + __u8 remcsum_offload: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 inner_protocol_type: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 ndisc_nodetype: 2; + __u8 redirected: 1; + __u8 nf_skip_egress: 1; + __u8 slow_gro: 1; + __u16 tc_index; + u16 alloc_cpu; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + union { + u32 vlan_all; + struct { + __be16 vlan_proto; + __u16 vlan_tci; + }; + }; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + __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 dst_pending_confirm: 1; + __u8 ip_summed: 2; + __u8 ooo_okay: 1; + __u8 __mono_tc_offset[0]; + __u8 mono_delivery_time: 1; + __u8 tc_at_ingress: 1; + __u8 tc_skip_classify: 1; + __u8 remcsum_offload: 1; + __u8 csum_complete_sw: 1; + __u8 csum_level: 2; + __u8 inner_protocol_type: 1; + __u8 l4_hash: 1; + __u8 sw_hash: 1; + __u8 wifi_acked_valid: 1; + __u8 wifi_acked: 1; + __u8 no_fcs: 1; + __u8 encapsulation: 1; + __u8 encap_hdr_csum: 1; + __u8 csum_valid: 1; + __u8 ndisc_nodetype: 2; + __u8 redirected: 1; + __u8 nf_skip_egress: 1; + __u8 slow_gro: 1; + __u16 tc_index; + u16 alloc_cpu; + union { + __wsum csum; + struct { + __u16 csum_start; + __u16 csum_offset; + }; + }; + __u32 priority; + int skb_iif; + __u32 hash; + union { + u32 vlan_all; + struct { + __be16 vlan_proto; + __u16 vlan_tci; + }; + }; + union { + unsigned int napi_id; + unsigned int sender_cpu; + }; + __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; }; -enum { - FOLL_WRITE = 1, - FOLL_GET = 2, - FOLL_DUMP = 4, - FOLL_FORCE = 8, - FOLL_NOWAIT = 16, - FOLL_NOFAULT = 32, - FOLL_HWPOISON = 64, - FOLL_ANON = 128, - FOLL_LONGTERM = 256, - FOLL_SPLIT_PMD = 512, - FOLL_PCI_P2PDMA = 1024, - FOLL_INTERRUPTIBLE = 2048, - FOLL_HONOR_NUMA_FAULT = 4096, -}; +typedef __u64 __addrpair; -struct stack_frame_user { - const void __attribute__((btf_type_tag("user"))) *next_fp; - unsigned long ret_addr; -}; +typedef __u32 __be32; -typedef bool (*stack_trace_consume_fn)(void *, unsigned long); +typedef __u32 __portpair; -struct _cache_table { - unsigned char descriptor; - char cache_type; - short size; +struct in6_addr { + union { + __u8 u6_addr8[16]; + __be16 u6_addr16[8]; + __be32 u6_addr32[4]; + } in6_u; }; -enum cache_type { - CACHE_TYPE_NOCACHE = 0, - CACHE_TYPE_INST = 1, - CACHE_TYPE_DATA = 2, - CACHE_TYPE_SEPARATE = 3, - CACHE_TYPE_UNIFIED = 4, +struct hlist_nulls_node { + struct hlist_nulls_node *next; + struct hlist_nulls_node **pprev; }; -enum _cache_type { - CTYPE_NULL = 0, - CTYPE_DATA = 1, - CTYPE_INST = 2, - CTYPE_UNIFIED = 3, -}; +struct proto; -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; -}; +struct inet_timewait_death_row; -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; +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; + }; }; -union _cpuid4_leaf_ecx { - struct { - unsigned int number_of_sets: 32; - } split; - u32 full; +typedef struct { + spinlock_t slock; + int owned; + wait_queue_head_t wq; +} socket_lock_t; + +struct sk_buff_list { + struct sk_buff *next; + struct sk_buff *prev; }; -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; +struct sk_buff_head { + union { + struct { + struct sk_buff *next; + struct sk_buff *prev; + }; + struct sk_buff_list list; }; - unsigned int val; + __u32 qlen; + spinlock_t lock; }; -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; +struct sock_cgroup_data { + struct cgroup *cgroup; + u32 classid; + u16 prioidx; }; -union l3_cache { +typedef struct {} netns_tracker; + +struct dst_entry; + +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 { - unsigned int line_size: 8; - unsigned int lines_per_tag: 4; - unsigned int assoc: 4; - unsigned int res: 2; - unsigned int size_encoded: 14; + 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; + int sk_disconnects; + 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; }; - unsigned int val; + 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 cacheinfo; +struct smc_hashinfo; -struct cpu_cacheinfo { - struct cacheinfo *info_list; - unsigned int num_levels; - unsigned int num_leaves; - bool cpu_map_populated; - bool early_ci_levels; -}; +typedef struct { + union { + void *kernel; + void __attribute__((btf_type_tag("user"))) *user; + }; + bool is_kernel: 1; +} sockptr_t; -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 sockaddr; -struct amd_northbridge; +struct msghdr; -struct _cpuid4_info_regs { - union _cpuid4_leaf_eax eax; - union _cpuid4_leaf_ebx ebx; - union _cpuid4_leaf_ecx ecx; - unsigned int id; - unsigned long size; - struct amd_northbridge *nb; -}; +struct sk_psock; -struct amd_l3_cache { - unsigned int indices; - u8 subcaches[4]; -}; +struct request_sock_ops; -struct threshold_bank; +struct timewait_sock_ops; -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 inet_hashinfo; -struct threshold_block; +struct udp_table; -struct threshold_bank { - struct kobject *kobj; - struct threshold_block *blocks; - refcount_t cpus; - unsigned int shared; -}; +struct raw_hashinfo; -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 proto { + void (*close)(struct sock *, long); + int (*pre_connect)(struct sock *, struct sockaddr *, int); + int (*connect)(struct sock *, struct sockaddr *, int); + int (*disconnect)(struct sock *, int); + struct sock * (*accept)(struct sock *, int, int *, bool); + int (*ioctl)(struct sock *, int, int *); + int (*init)(struct sock *); + void (*destroy)(struct sock *); + void (*shutdown)(struct sock *, int); + int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); + void (*keepalive)(struct sock *, int); + int (*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 *); + void (*splice_eof)(struct socket *); + int (*bind)(struct sock *, struct sockaddr *, int); + int (*bind_add)(struct sock *, struct sockaddr *, int); + int (*backlog_rcv)(struct sock *, struct sk_buff *); + bool (*bpf_bypass_getsockopt)(int, int); + void (*release_cb)(struct sock *); + int (*hash)(struct sock *); + void (*unhash)(struct sock *); + void (*rehash)(struct sock *); + int (*get_port)(struct sock *, unsigned short); + void (*put_port)(struct sock *); + int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); + unsigned int inuse_idx; + bool (*stream_memory_free)(const struct sock *, int); + bool (*sock_is_readable)(struct sock *); + void (*enter_memory_pressure)(struct sock *); + void (*leave_memory_pressure)(struct sock *); + atomic_long_t *memory_allocated; + int __attribute__((btf_type_tag("percpu"))) *per_cpu_fw_alloc; + struct percpu_counter *sockets_allocated; + unsigned long *memory_pressure; + long *sysctl_mem; + int *sysctl_wmem; + int *sysctl_rmem; + u32 sysctl_wmem_offset; + u32 sysctl_rmem_offset; + int max_header; + bool no_autobind; + struct kmem_cache *slab; + unsigned int obj_size; + unsigned int ipv6_pinfo_offset; + slab_flags_t slab_flags; + unsigned int useroffset; + unsigned int usersize; + unsigned int __attribute__((btf_type_tag("percpu"))) *orphan_count; + struct request_sock_ops *rsk_prot; + struct timewait_sock_ops *twsk_prot; + union { + struct inet_hashinfo *hashinfo; + struct udp_table *udp_table; + struct raw_hashinfo *raw_hash; + struct smc_hashinfo *smc_hash; + } h; + struct module *owner; + char name[32]; + struct list_head node; + int (*diag_destroy)(struct sock *, int); }; -typedef int (*cpu_stop_fn_t)(void *); +typedef unsigned short __kernel_sa_family_t; -struct cpuid_bit { - u16 feature; - u8 reg; - u8 bit; - u32 level; - u32 sub_leaf; -}; +typedef __kernel_sa_family_t sa_family_t; -struct pcpu_hot { +struct sockaddr { + sa_family_t sa_family; union { + char sa_data_min[14]; 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; + struct {} __empty_sa_data; + char sa_data[0]; }; - u8 pad[64]; }; }; -struct fixed_percpu_data { - char gs_base[40]; - unsigned long stack_canary; -}; +struct ubuf_info; -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 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 cpuid_dependent_feature { - u32 feature; - u32 level; +struct posix_acl_entry { + short e_tag; + unsigned short e_perm; + union { + kuid_t e_uid; + kgid_t e_gid; + }; }; -struct ppin_info { - int feature; - int msr_ppin_ctl; - int msr_ppin; +struct posix_acl { + refcount_t a_refcount; + struct callback_head a_rcu; + unsigned int a_count; + struct posix_acl_entry a_entries[0]; }; -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 linux_binprm; -enum tlb_infos { - ENTRIES = 0, - NR_INFO = 1, -}; +struct coredump_params; -enum { - SAMPLES = 8, - MIN_CHANGE = 5, +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 x86_cpu_desc { - u8 x86_family; - u8 x86_vendor; - u8 x86_model; - u8 x86_stepping; - u32 x86_microcode_rev; +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]; }; -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, +struct binfmt_misc { + struct list_head entries; + rwlock_t entries_lock; + bool enabled; }; -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 new_utsname { + char sysname[65]; + char nodename[65]; + char release[65]; + char version[65]; + char machine[65]; + char domainname[65]; }; -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, +struct uts_namespace { + struct new_utsname name; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct ns_common ns; }; -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, +struct raw_notifier_head { + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; }; -enum l1d_flush_mitigations { - L1D_FLUSH_OFF = 0, - L1D_FLUSH_ON = 1, +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; }; -enum gds_mitigations { - GDS_MITIGATION_OFF = 0, - GDS_MITIGATION_UCODE_NEEDED = 1, - GDS_MITIGATION_FORCE = 2, - GDS_MITIGATION_FULL = 3, - GDS_MITIGATION_FULL_LOCKED = 4, - GDS_MITIGATION_HYPERVISOR = 5, +struct ipstats_mib; + +struct tcp_mib; + +struct linux_mib; + +struct udp_mib; + +struct icmp_mib; + +struct icmpmsg_mib; + +struct icmpv6_mib; + +struct icmpv6msg_mib; + +struct netns_mib { + struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ip_statistics; + struct ipstats_mib __attribute__((btf_type_tag("percpu"))) *ipv6_statistics; + struct tcp_mib __attribute__((btf_type_tag("percpu"))) *tcp_statistics; + struct linux_mib __attribute__((btf_type_tag("percpu"))) *net_statistics; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_statistics; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udp_stats_in6; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_statistics; + struct udp_mib __attribute__((btf_type_tag("percpu"))) *udplite_stats_in6; + struct icmp_mib __attribute__((btf_type_tag("percpu"))) *icmp_statistics; + struct icmpmsg_mib *icmpmsg_statistics; + struct icmpv6_mib __attribute__((btf_type_tag("percpu"))) *icmpv6_statistics; + struct icmpv6msg_mib *icmpv6msg_statistics; + struct proc_dir_entry *proc_net_devsnmp6; }; -enum spectre_v1_mitigation { - SPECTRE_V1_MITIGATION_NONE = 0, - SPECTRE_V1_MITIGATION_AUTO = 1, +struct netns_packet { + struct mutex sklist_lock; + struct hlist_head sklist; }; -enum retbleed_mitigation_cmd { - RETBLEED_CMD_OFF = 0, - RETBLEED_CMD_AUTO = 1, - RETBLEED_CMD_UNRET = 2, - RETBLEED_CMD_IBPB = 3, - RETBLEED_CMD_STUFF = 4, +struct unix_table { + spinlock_t *locks; + struct hlist_head *buckets; }; -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, +struct netns_unix { + struct unix_table table; + int sysctl_max_dgram_qlen; + struct ctl_table_header *ctl; }; -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, +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; }; -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, +struct inet_timewait_death_row { + refcount_t tw_refcount; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct inet_hashinfo *hashinfo; + int sysctl_max_tw_buckets; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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, +struct local_ports { + seqlock_t lock; + int range[2]; + bool warned; }; -enum mds_mitigations { - MDS_MITIGATION_OFF = 0, - MDS_MITIGATION_FULL = 1, - MDS_MITIGATION_VMWERV = 2, +struct ping_group_range { + seqlock_t lock; + kgid_t range[2]; }; -enum taa_mitigations { - TAA_MITIGATION_OFF = 0, - TAA_MITIGATION_UCODE_NEEDED = 1, - TAA_MITIGATION_VERW = 2, - TAA_MITIGATION_TSX_DISABLED = 3, -}; +typedef struct { + u64 key[2]; +} siphash_key_t; -enum mmio_mitigations { - MMIO_MITIGATION_OFF = 0, - MMIO_MITIGATION_UCODE_NEEDED = 1, - MMIO_MITIGATION_VERW = 2, -}; +struct ipv4_devconf; -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, -}; +struct ip_ra_chain; -enum ssb_mitigation { - SPEC_STORE_BYPASS_NONE = 0, - SPEC_STORE_BYPASS_DISABLE = 1, - SPEC_STORE_BYPASS_PRCTL = 2, - SPEC_STORE_BYPASS_SECCOMP = 3, -}; +struct fib_rules_ops; -enum srso_mitigation_cmd { - SRSO_CMD_OFF = 0, - SRSO_CMD_MICROCODE = 1, - SRSO_CMD_SAFE_RET = 2, - SRSO_CMD_IBPB = 3, - SRSO_CMD_IBPB_ON_VMEXIT = 4, -}; +struct fib_table; -enum srso_mitigation { - SRSO_MITIGATION_NONE = 0, - SRSO_MITIGATION_MICROCODE = 1, - SRSO_MITIGATION_SAFE_RET = 2, - SRSO_MITIGATION_IBPB = 3, - SRSO_MITIGATION_IBPB_ON_VMEXIT = 4, -}; +struct inet_peer_base; -enum bpf_prog_type { - BPF_PROG_TYPE_UNSPEC = 0, - BPF_PROG_TYPE_SOCKET_FILTER = 1, - BPF_PROG_TYPE_KPROBE = 2, - BPF_PROG_TYPE_SCHED_CLS = 3, - BPF_PROG_TYPE_SCHED_ACT = 4, - BPF_PROG_TYPE_TRACEPOINT = 5, - BPF_PROG_TYPE_XDP = 6, - BPF_PROG_TYPE_PERF_EVENT = 7, - BPF_PROG_TYPE_CGROUP_SKB = 8, - BPF_PROG_TYPE_CGROUP_SOCK = 9, - BPF_PROG_TYPE_LWT_IN = 10, - BPF_PROG_TYPE_LWT_OUT = 11, - BPF_PROG_TYPE_LWT_XMIT = 12, - BPF_PROG_TYPE_SOCK_OPS = 13, - BPF_PROG_TYPE_SK_SKB = 14, - BPF_PROG_TYPE_CGROUP_DEVICE = 15, - BPF_PROG_TYPE_SK_MSG = 16, - BPF_PROG_TYPE_RAW_TRACEPOINT = 17, - BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 18, - BPF_PROG_TYPE_LWT_SEG6LOCAL = 19, - BPF_PROG_TYPE_LIRC_MODE2 = 20, - BPF_PROG_TYPE_SK_REUSEPORT = 21, - BPF_PROG_TYPE_FLOW_DISSECTOR = 22, - BPF_PROG_TYPE_CGROUP_SYSCTL = 23, - BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 24, - BPF_PROG_TYPE_CGROUP_SOCKOPT = 25, - BPF_PROG_TYPE_TRACING = 26, - BPF_PROG_TYPE_STRUCT_OPS = 27, - BPF_PROG_TYPE_EXT = 28, - BPF_PROG_TYPE_LSM = 29, - BPF_PROG_TYPE_SK_LOOKUP = 30, - BPF_PROG_TYPE_SYSCALL = 31, - BPF_PROG_TYPE_NETFILTER = 32, -}; +struct fqdir; -enum bpf_attach_type { - BPF_CGROUP_INET_INGRESS = 0, - BPF_CGROUP_INET_EGRESS = 1, - BPF_CGROUP_INET_SOCK_CREATE = 2, - BPF_CGROUP_SOCK_OPS = 3, - BPF_SK_SKB_STREAM_PARSER = 4, - BPF_SK_SKB_STREAM_VERDICT = 5, - BPF_CGROUP_DEVICE = 6, - BPF_SK_MSG_VERDICT = 7, - BPF_CGROUP_INET4_BIND = 8, - BPF_CGROUP_INET6_BIND = 9, - BPF_CGROUP_INET4_CONNECT = 10, - BPF_CGROUP_INET6_CONNECT = 11, - BPF_CGROUP_INET4_POST_BIND = 12, - BPF_CGROUP_INET6_POST_BIND = 13, - BPF_CGROUP_UDP4_SENDMSG = 14, - BPF_CGROUP_UDP6_SENDMSG = 15, - BPF_LIRC_MODE2 = 16, - BPF_FLOW_DISSECTOR = 17, - BPF_CGROUP_SYSCTL = 18, - BPF_CGROUP_UDP4_RECVMSG = 19, - BPF_CGROUP_UDP6_RECVMSG = 20, - BPF_CGROUP_GETSOCKOPT = 21, - BPF_CGROUP_SETSOCKOPT = 22, - BPF_TRACE_RAW_TP = 23, - BPF_TRACE_FENTRY = 24, - BPF_TRACE_FEXIT = 25, - BPF_MODIFY_RETURN = 26, - BPF_LSM_MAC = 27, - BPF_TRACE_ITER = 28, - BPF_CGROUP_INET4_GETPEERNAME = 29, - BPF_CGROUP_INET6_GETPEERNAME = 30, - BPF_CGROUP_INET4_GETSOCKNAME = 31, - BPF_CGROUP_INET6_GETSOCKNAME = 32, - BPF_XDP_DEVMAP = 33, - BPF_CGROUP_INET_SOCK_RELEASE = 34, - BPF_XDP_CPUMAP = 35, - BPF_SK_LOOKUP = 36, - BPF_XDP = 37, - BPF_SK_SKB_VERDICT = 38, - BPF_SK_REUSEPORT_SELECT = 39, - BPF_SK_REUSEPORT_SELECT_OR_MIGRATE = 40, - BPF_PERF_EVENT = 41, - BPF_TRACE_KPROBE_MULTI = 42, - BPF_LSM_CGROUP = 43, - BPF_STRUCT_OPS = 44, - BPF_NETFILTER = 45, - __MAX_BPF_ATTACH_TYPE = 46, -}; +struct tcp_congestion_ops; -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 tcp_fastopen_context; -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, -}; +struct mr_table; -enum bpf_iter_task_type { - BPF_TASK_ITER_ALL = 0, - BPF_TASK_ITER_TID = 1, - BPF_TASK_ITER_TGID = 2, -}; +struct fib_notifier_ops; -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 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; + u8 sysctl_tcp_shrink_window; + struct hlist_head *fib_table_hash; + struct sock *fibnl; + struct sock *mc_autojoin_sk; + struct inet_peer_base *peers; + struct fqdir *fqdir; + u8 sysctl_icmp_echo_ignore_all; + u8 sysctl_icmp_echo_enable_probe; + u8 sysctl_icmp_echo_ignore_broadcasts; + u8 sysctl_icmp_ignore_bogus_error_responses; + u8 sysctl_icmp_errors_use_inbound_ifaddr; + int sysctl_icmp_ratelimit; + int sysctl_icmp_ratemask; + u32 ip_rt_min_pmtu; + int ip_rt_mtu_expires; + int ip_rt_min_advmss; + struct local_ports ip_local_ports; + u8 sysctl_tcp_ecn; + u8 sysctl_tcp_ecn_fallback; + u8 sysctl_ip_default_ttl; + u8 sysctl_ip_no_pmtu_disc; + u8 sysctl_ip_fwd_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; + u8 sysctl_tcp_backlog_ack_defer; + u8 sysctl_tcp_pingpong_thresh; + 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_tcp_syn_linear_timeouts; + u8 sysctl_igmp_llm_reports; + int sysctl_igmp_max_memberships; + int sysctl_igmp_max_msf; + int sysctl_igmp_qrv; + struct ping_group_range ping_group_range; + atomic_t dev_addr_genid; + unsigned int sysctl_udp_child_hash_entries; + unsigned long *sysctl_local_reserved_ports; + int sysctl_ip_prot_sock; + struct 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; }; -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, - BPF_REFCOUNT = 256, +struct dst_ops { + unsigned short family; + unsigned int gc_thresh; + void (*gc)(struct dst_ops *); + struct dst_entry * (*check)(struct dst_entry *, __u32); + unsigned int (*default_advmss)(const struct dst_entry *); + unsigned int (*mtu)(const struct dst_entry *); + u32 * (*cow_metrics)(struct dst_entry *, unsigned long); + void (*destroy)(struct dst_entry *); + void (*ifdown)(struct dst_entry *, struct net_device *); + struct dst_entry * (*negative_advice)(struct dst_entry *); + void (*link_failure)(struct sk_buff *); + void (*update_pmtu)(struct dst_entry *, struct sock *, struct sk_buff *, u32, bool); + void (*redirect)(struct dst_entry *, struct sock *, struct sk_buff *); + int (*local_out)(struct net *, struct sock *, struct sk_buff *); + struct neighbour * (*neigh_lookup)(const struct dst_entry *, struct sk_buff *, const void *); + void (*confirm_neigh)(const struct dst_entry *, const void *); + struct kmem_cache *kmem_cachep; + struct percpu_counter pcpuc_entries; + long: 64; + long: 64; + long: 64; }; -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 netns_sysctl_ipv6 { + struct ctl_table_header *hdr; + struct ctl_table_header *route_hdr; + struct ctl_table_header *icmp_hdr; + struct ctl_table_header *frags_hdr; + struct ctl_table_header *xfrm6_hdr; + int flush_delay; + int ip6_rt_max_size; + int ip6_rt_gc_min_interval; + int ip6_rt_gc_timeout; + int ip6_rt_gc_interval; + int ip6_rt_gc_elasticity; + int ip6_rt_mtu_expires; + int ip6_rt_min_advmss; + u32 multipath_hash_fields; + u8 multipath_hash_policy; + u8 bindv6only; + u8 flowlabel_consistency; + u8 auto_flowlabels; + int icmpv6_time; + u8 icmpv6_echo_ignore_all; + u8 icmpv6_echo_ignore_multicast; + u8 icmpv6_echo_ignore_anycast; + unsigned long icmpv6_ratemask[4]; + unsigned long *icmpv6_ratemask_ptr; + u8 anycast_src_echo_reply; + u8 ip_nonlocal_bind; + u8 fwmark_reflect; + u8 flowlabel_state_ranges; + int idgen_retries; + int idgen_delay; + int flowlabel_reflect; + int max_dst_opts_cnt; + int max_hbh_opts_cnt; + int max_dst_opts_len; + int max_hbh_opts_len; + int seg6_flowlabel; + u32 ioam6_id; + u64 ioam6_id_wide; + u8 skip_notify_on_dev_down; + u8 fib_notify_on_flag_change; + u8 icmpv6_error_anycast_as_unicast; }; -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, -}; +struct ipv6_devconf; -struct sock_filter { - __u16 code; - __u8 jt; - __u8 jf; - __u32 k; -}; +struct fib6_info; -struct bpf_insn { - __u8 code; - __u8 dst_reg: 4; - __u8 src_reg: 4; - __s16 off; - __s32 imm; -}; +struct rt6_info; -struct bpf_prog_stats; +struct rt6_statistics; -struct bpf_prog_aux; +struct fib6_table; -struct sock_fprog_kern; +struct seg6_pernet_data; -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]; - }; - }; +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; + bool fib6_has_custom_rules; + unsigned int fib6_rules_require_fldissect; + unsigned int fib6_routes_require_src; + struct rt6_info *ip6_prohibit_entry; + struct rt6_info *ip6_blk_hole_entry; + struct fib6_table *fib6_local_tbl; + struct fib_rules_ops *fib6_rules_ops; + struct sock *ndisc_sk; + struct sock *tcp_sk; + struct sock *igmp_sk; + struct sock *mc_autojoin_sk; + struct hlist_head *inet6_addr_lst; + spinlock_t addrconf_hash_lock; + struct delayed_work addr_chk_work; + atomic_t dev_addr_genid; + atomic_t fib6_sernum; + struct seg6_pernet_data *seg6_data; + struct fib_notifier_ops *notifier_ops; + struct fib_notifier_ops *ip6mr_notifier_ops; + unsigned int ipmr_seq; + struct { + struct hlist_head head; + spinlock_t lock; + u32 seq; + } ip6addrlbl_table; + struct ioam6_pernet_data *ioam6_data; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -typedef struct { - local64_t v; -} u64_stats_t; +struct nf_logger; -struct bpf_prog_stats { - u64_stats_t cnt; - u64_stats_t nsecs; - u64_stats_t misses; - struct u64_stats_sync syncp; - long: 64; +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 bpf_ksym { - unsigned long start; - unsigned long end; - char name[512]; - struct list_head lnode; - struct latch_tree_node tnode; - bool prog; +struct nf_ct_event_notifier; + +struct nf_generic_net { + unsigned int timeout; }; -struct btf; +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 bpf_ctx_arg_aux; +struct nf_udp_net { + unsigned int timeouts[2]; +}; -struct bpf_trampoline; +struct nf_icmp_net { + unsigned int timeout; +}; -struct btf_type; +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 bpf_jit_poke_descriptor; +struct ip_conntrack_stat; -struct bpf_kfunc_desc_tab; +struct netns_ct { + u8 sysctl_log_invalid; + u8 sysctl_events; + u8 sysctl_acct; + u8 sysctl_tstamp; + u8 sysctl_checksum; + struct ip_conntrack_stat __attribute__((btf_type_tag("percpu"))) *stat; + struct nf_ct_event_notifier __attribute__((btf_type_tag("rcu"))) *nf_conntrack_event_cb; + struct nf_ip_net nf_ct_proto; +}; -struct bpf_kfunc_btf_tab; +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 bpf_prog_ops; +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 bpf_map; +struct xfrm_policy_hthresh { + struct work_struct work; + seqlock_t lock; + u8 lbits4; + u8 rbits4; + u8 lbits6; + u8 rbits6; +}; -struct btf_mod_pair; +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; + unsigned int idx_generator; + 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 bpf_prog_offload; +struct netns_xdp { + struct mutex lock; + struct hlist_head list; +}; -struct bpf_func_info; +struct uevent_sock; -struct bpf_func_info_aux; +struct net_generic; -struct bpf_line_info; +struct net { + refcount_t passive; + spinlock_t rules_mod_lock; + atomic_t dev_unreg_count; + unsigned int dev_base_seq; + u32 ifindex; + spinlock_t nsid_lock; + atomic_t fnhe_genid; + struct list_head list; + struct list_head exit_list; + struct llist_node cleanup_list; + struct key_tag *key_domain; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct idr netns_ids; + struct ns_common ns; + struct ref_tracker_dir refcnt_tracker; + struct ref_tracker_dir notrefcnt_tracker; + struct list_head dev_base_head; + struct proc_dir_entry *proc_net; + struct proc_dir_entry *proc_net_stat; + struct ctl_table_set sysctls; + struct sock *rtnl; + struct sock *genl_sock; + struct uevent_sock *uevent_sock; + struct hlist_head *dev_name_head; + struct hlist_head *dev_index_head; + struct xarray dev_by_index; + struct raw_notifier_head netdev_chain; + u32 hash_mix; + struct net_device *loopback_dev; + struct list_head rules_ops; + struct netns_core core; + struct netns_mib mib; + struct netns_packet packet; + struct netns_unix unx; + struct netns_nexthop nexthop; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + 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; + struct netns_xfrm xfrm; + u64 net_cookie; + struct netns_xdp xdp; + struct sock *diag_nlsk; + long: 64; +}; -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; - struct module *mod; - u32 num_exentries; - struct exception_table_entry *extable; - union { - struct work_struct work; - struct callback_head rcu; - }; +struct prot_inuse { + int all; + int val[64]; }; -struct bpf_ctx_arg_aux { - u32 offset; - enum bpf_reg_type reg_type; - u32 btf_id; +struct ipstats_mib { + u64 mibs[38]; + struct u64_stats_sync syncp; }; -struct btf_func_model { - u8 ret_size; - u8 ret_flags; - u8 nr_args; - u8 arg_size[12]; - u8 arg_flags[12]; +struct tcp_mib { + unsigned long mibs[16]; }; -struct bpf_tramp_image; +struct linux_mib { + unsigned long mibs[132]; +}; -struct bpf_trampoline { - struct hlist_node hlist; - struct ftrace_ops *fops; - struct mutex mutex; - refcount_t refcnt; - u32 flags; - u64 key; - struct { - struct btf_func_model model; - void *addr; - bool ftrace_managed; - } func; - struct bpf_prog *extension_prog; - struct hlist_head progs_hlist[3]; - int progs_cnt[3]; - struct bpf_tramp_image *cur_image; - struct module *mod; +struct udp_mib { + unsigned long mibs[10]; }; -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 icmp_mib { + unsigned long mibs[30]; }; -struct btf_type { - __u32 name_off; - __u32 info; - union { - __u32 size; - __u32 type; - }; +struct icmpmsg_mib { + atomic_long_t mibs[512]; }; -struct bpf_jit_poke_descriptor { - void *tailcall_target; - void *tailcall_bypass; - void *bypass_addr; - void *aux; +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 { - struct { - struct bpf_map *map; - u32 key; - } tail_call; + void (*destructor)(struct sock *); + struct sock *saved_sk; }; - bool tailcall_target_stable; - u8 adj_off; - u16 reason; - u32 insn_idx; + struct callback_head rcu; }; -struct bpf_map_ops; +struct fib_rule; -struct btf_record; +struct flowi; -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]; - long: 64; - 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: 64; - long: 64; - long: 64; -}; +struct fib_lookup_arg; -typedef u64 (*bpf_callback_t)(u64, u64, u64, u64, u64); +struct fib_rule_hdr; -union bpf_attr; +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; +}; -struct bpf_verifier_env; +typedef __u64 __be64; -struct bpf_func_state; +struct fib_kuid_range { + kuid_t start; + kuid_t end; +}; -struct bpf_iter_seq_info; +struct fib_rule_port_range { + __u16 start; + __u16 end; +}; -struct bpf_map_ops { - int (*map_alloc_check)(union bpf_attr *); +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; + __u32 flowic_multipath_hash; + struct flowi_tunnel flowic_tun_key; +}; + +union flowi_uli { + struct { + __be16 dport; + __be16 sport; + } ports; + struct { + __u8 type; + __u8 code; + } icmpt; + __be32 gre_key; + struct { + __u8 type; + } mht; +}; + +struct flowi4 { + struct flowi_common __fl_common; + __be32 saddr; + __be32 daddr; + union flowi_uli uli; +}; + +struct flowi6 { + struct flowi_common __fl_common; + struct in6_addr daddr; + struct in6_addr saddr; + __be32 flowlabel; + union flowi_uli uli; + __u32 mp_hash; +}; + +struct flowi { + union { + struct flowi_common __fl_common; + struct flowi4 ip4; + struct flowi6 ip6; + } u; +}; + +struct 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 nlattr { + __u16 nla_len; + __u16 nla_type; +}; + +struct nla_policy; + +struct netlink_ext_ack { + const char *_msg; + const struct nlattr *bad_attr; + const struct nla_policy *policy; + const struct nlattr *miss_nest; + u16 miss_type; + u8 cookie[20]; + u8 cookie_len; + char _msg_buf[80]; +}; + +struct netlink_range_validation; + +struct netlink_range_validation_signed; + +struct nla_policy { + u8 type; + u8 validation_type; + u16 len; + union { + u16 strict_start_type; + const u32 bitfield32_valid; + const u32 mask; + const char *reject_message; + const struct nla_policy *nested_policy; + const struct netlink_range_validation *range; + const struct netlink_range_validation_signed *range_signed; + struct { + s16 min; + s16 max; + }; + int (*validate)(const struct nlattr *, struct netlink_ext_ack *); + }; +}; + +struct netlink_range_validation { + u64 min; + u64 max; +}; + +struct netlink_range_validation_signed { + s64 min; + s64 max; +}; + +struct 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: 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 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; +}; + +typedef struct { + atomic_t refcnt; +} rcuref_t; + +struct xfrm_state; + +struct uncached_list; + +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; + rcuref_t __rcuref; + int __use; + unsigned long lastuse; + struct callback_head callback_head; + short error; + short __pad; + __u32 tclassid; + netdevice_tracker dev_tracker; + struct list_head rt_uncached; + struct uncached_list *rt_uncached_list; + struct lwtunnel_state *lwtstate; +}; + +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; + long: 0; + 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 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; + u32 key[0]; +}; + +struct neigh_statistics { + unsigned long allocs; + unsigned long destroys; + unsigned long hash_grows; + unsigned long res_failed; + unsigned long lookups; + unsigned long hits; + unsigned long rcv_probes_mcast; + unsigned long rcv_probes_ucast; + unsigned long periodic_gc_runs; + unsigned long forced_gc_runs; + unsigned long unres_discards; + unsigned long table_fulls; +}; + +struct neigh_hash_table { + struct neighbour __attribute__((btf_type_tag("rcu"))) **hash_buckets; + unsigned int hash_shift; + __u32 hash_rnd[4]; + struct callback_head rcu; +}; + +struct neigh_ops { + int family; + void (*solicit)(struct neighbour *, struct sk_buff *); + void (*error_report)(struct neighbour *, struct sk_buff *); + int (*output)(struct neighbour *, struct sk_buff *); + int (*connected_output)(struct neighbour *, struct sk_buff *); +}; + +struct 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_min_lft; + __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; + __u8 ra_honor_pio_life; + struct ctl_table_header *sysctl_header; +}; + +enum nf_log_type { + NF_LOG_TYPE_LOG = 0, + NF_LOG_TYPE_ULOG = 1, + NF_LOG_TYPE_MAX = 2, +}; + +typedef u8 u_int8_t; + +struct nf_loginfo; + +typedef void nf_logfn(struct net *, u_int8_t, unsigned int, const struct sk_buff *, const struct net_device *, const struct net_device *, const struct nf_loginfo *, const char *); + +struct nf_logger { + char *name; + enum nf_log_type type; + nf_logfn *logfn; + struct module *me; +}; + +struct nf_hook_state; + +typedef unsigned int nf_hookfn(void *, struct sk_buff *, const struct nf_hook_state *); + +struct nf_hook_entry { + nf_hookfn *hook; + void *priv; +}; + +struct nf_hook_entries { + u16 num_hook_entries; + struct nf_hook_entry hooks[0]; +}; + +struct ip_conntrack_stat { + unsigned int found; + unsigned int invalid; + unsigned int insert; + unsigned int insert_failed; + unsigned int clash_resolve; + unsigned int drop; + unsigned int early_drop; + unsigned int error; + unsigned int expect_new; + unsigned int expect_create; + unsigned int expect_delete; + unsigned int search_restart; + unsigned int chaintoolong; +}; + +struct net_generic { + union { + struct { + unsigned int len; + struct callback_head rcu; + } s; + struct { + struct {} __empty_ptr; + void *ptr[0]; + }; + }; +}; + +struct 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; +}; + +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 real_func_cnt; + u32 func_idx; + u32 attach_btf_id; + u32 ctx_arg_info_size; + u32 max_rdonly_access; + u32 max_rdwr_access; + struct btf *attach_btf; + const struct bpf_ctx_arg_aux *ctx_arg_info; + struct mutex dst_mutex; + struct bpf_prog *dst_prog; + struct bpf_trampoline *dst_trampoline; + enum bpf_prog_type saved_dst_prog_type; + enum bpf_attach_type saved_dst_attach_type; + bool verifier_zext; + bool dev_bound; + bool offload_requested; + bool attach_btf_trace; + bool func_proto_unreliable; + bool sleepable; + bool tail_call_reachable; + bool xdp_has_frags; + bool exception_cb; + bool exception_boundary; + 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]; + unsigned int (*bpf_exception_cb)(u64, u64, u64); + 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; + struct module *mod; + u32 num_exentries; + struct exception_table_entry *extable; + union { + struct work_struct work; + struct callback_head rcu; + }; +}; + +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; + 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; +}; + +struct bpf_map_ops; + +struct btf_record; + +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; + struct obj_cgroup *objcg; + char name[16]; + long: 64; + long: 64; + atomic64_t refcnt; + atomic64_t usercnt; + union { + struct work_struct work; + struct callback_head rcu; + }; + 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; + bool free_after_mult_rcu_gp; + s64 __attribute__((btf_type_tag("percpu"))) *elem_count; + 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 *); @@ -14702,7 +15931,7 @@ struct bpf_map_ops { long (*map_peek_elem)(struct bpf_map *, void *); void * (*map_lookup_percpu_elem)(struct bpf_map *, void *, u32); void * (*map_fd_get_ptr)(struct bpf_map *, struct file *, int); - void (*map_fd_put_ptr)(void *); + void (*map_fd_put_ptr)(struct bpf_map *, void *, bool); int (*map_gen_lookup)(struct bpf_map *, struct bpf_insn *); u32 (*map_fd_sys_lookup_elem)(void *); void (*map_seq_show_elem)(struct bpf_map *, void *, struct seq_file *); @@ -14800,11 +16029,19 @@ union bpf_attr { __s32 path_fd; }; struct { - __u32 target_fd; + union { + __u32 target_fd; + __u32 target_ifindex; + }; __u32 attach_bpf_fd; __u32 attach_type; __u32 attach_flags; __u32 replace_bpf_fd; + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; }; struct { __u32 prog_fd; @@ -14840,13 +16077,22 @@ union bpf_attr { __u64 info; } info; struct { - __u32 target_fd; + union { + __u32 target_fd; + __u32 target_ifindex; + }; __u32 attach_type; __u32 query_flags; __u32 attach_flags; __u64 prog_ids; - __u32 prog_cnt; + union { + __u32 prog_cnt; + __u32 count; + }; __u64 prog_attach_flags; + __u64 link_ids; + __u64 link_attach_flags; + __u64 revision; } query; struct { __u64 name; @@ -14908,6 +16154,29 @@ union bpf_attr { __s32 priority; __u32 flags; } netfilter; + struct { + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + } tcx; + struct { + __u64 path; + __u64 offsets; + __u64 ref_ctr_offsets; + __u64 cookies; + __u32 cnt; + __u32 flags; + __u32 pid; + } uprobe_multi; + struct { + union { + __u32 relative_fd; + __u32 relative_id; + }; + __u64 expected_revision; + } netkit; }; } link_create; struct { @@ -15040,4663 +16309,4799 @@ struct btf_record { struct btf_field fields[0]; }; -struct bpf_prog_ops { - int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); +struct obj_cgroup { + struct percpu_ref refcnt; + struct mem_cgroup *memcg; + atomic_t nr_charged_bytes; + union { + struct list_head list; + struct callback_head rcu; + }; }; -struct btf_mod_pair { - struct btf *btf; - struct module *module; +struct cacheline_padding { + char x[0]; }; -struct bpf_offload_dev; +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 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 mem_cgroup_id { + int id; + refcount_t ref; }; -struct bpf_line_info { - __u32 insn_off; - __u32 file_name_off; - __u32 line_off; - __u32 line_col; +struct vmpressure { + unsigned long scanned; + unsigned long reclaimed; + unsigned long tree_scanned; + unsigned long tree_reclaimed; + spinlock_t sr_lock; + struct list_head events; + struct mutex events_lock; + struct work_struct work; }; -struct bpf_run_ctx {}; - -struct aperfmperf { - seqcount_t seq; - unsigned long last_update; - u64 acnt; - u64 mcnt; - u64 aperf; - u64 mperf; -}; +struct mem_cgroup_threshold_ary; -struct cpuid_dep { - unsigned int feature; - unsigned int depends; +struct mem_cgroup_thresholds { + struct mem_cgroup_threshold_ary *primary; + struct mem_cgroup_threshold_ary *spare; }; -enum vmx_feature_leafs { - MISC_FEATURES = 0, - PRIMARY_CTLS = 1, - SECONDARY_CTLS = 2, - TERTIARY_CTLS_LOW = 3, - TERTIARY_CTLS_HIGH = 4, - NR_VMX_FEATURE_WORDS = 5, +struct fprop_global { + struct percpu_counter events; + unsigned int period; + seqcount_t sequence; }; -struct sku_microcode { - u8 model; - u8 stepping; - u32 microcode; +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 _tlb_table { - unsigned char descriptor; - char tlb_type; - unsigned int entries; - char info[128]; +struct wb_completion { + atomic_t cnt; + wait_queue_head_t *waitq; }; -enum split_lock_detect_state { - sld_off = 0, - sld_warn = 1, - sld_fatal = 2, - sld_ratelimit = 3, +struct memcg_cgwb_frn { + u64 bdi_id; + int memcg_id; + u64 at; + struct wb_completion done; }; -struct semaphore { - raw_spinlock_t lock; - unsigned int count; - struct list_head wait_list; -}; +struct memcg_vmstats; -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 memcg_vmstats_percpu; -struct microcode_intel { - struct microcode_header_intel hdr; - unsigned int bits[0]; -}; +struct mem_cgroup_per_node; -struct cpu_signature { - unsigned int sig; - unsigned int pf; - unsigned int rev; +struct mem_cgroup { + struct cgroup_subsys_state css; + struct mem_cgroup_id id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct page_counter memory; + union { + struct page_counter swap; + struct page_counter memsw; + }; + struct page_counter kmem; + struct page_counter tcpmem; + struct work_struct high_work; + unsigned long soft_limit; + struct vmpressure vmpressure; + bool oom_group; + bool oom_lock; + int under_oom; + int swappiness; + int oom_kill_disable; + struct cgroup_file events_file; + struct cgroup_file events_local_file; + struct cgroup_file swap_events_file; + struct mutex thresholds_lock; + struct mem_cgroup_thresholds thresholds; + struct mem_cgroup_thresholds memsw_thresholds; + struct list_head oom_notify; + unsigned long move_charge_at_immigrate; + spinlock_t move_lock; + unsigned long move_lock_flags; + struct cacheline_padding _pad1_; + struct memcg_vmstats *vmstats; + atomic_long_t memory_events[9]; + atomic_long_t memory_events_local[9]; + unsigned long socket_pressure; + bool tcpmem_active; + int tcpmem_pressure; + int kmemcg_id; + struct obj_cgroup __attribute__((btf_type_tag("rcu"))) *objcg; + struct obj_cgroup *orig_objcg; + struct list_head objcg_list; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad2_; + atomic_t moving_account; + struct task_struct *move_lock_task; + struct memcg_vmstats_percpu __attribute__((btf_type_tag("percpu"))) *vmstats_percpu; + struct list_head cgwb_list; + struct wb_domain cgwb_domain; + struct memcg_cgwb_frn cgwb_frn[4]; + struct list_head event_list; + spinlock_t event_list_lock; + struct mem_cgroup_per_node *nodeinfo[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct ucode_cpu_info { - struct cpu_signature cpu_sig; - void *mc; -}; +struct eventfd_ctx; -struct extended_signature { - unsigned int sig; - unsigned int pf; - unsigned int cksum; +struct mem_cgroup_threshold { + struct eventfd_ctx *eventfd; + unsigned long threshold; }; -struct extended_sigtable { - unsigned int count; - unsigned int cksum; - unsigned int reserved[3]; - struct extended_signature sigs[0]; +struct mem_cgroup_threshold_ary { + int current_threshold; + unsigned int size; + struct mem_cgroup_threshold entries[0]; }; -enum pconfig_target { - INVALID_TARGET = 0, - MKTME_TARGET = 1, - PCONFIG_TARGET_NR = 2, +struct memcg_vmstats_percpu { + long state[48]; + unsigned long events[15]; + long state_prev[48]; + unsigned long events_prev[15]; + unsigned long nr_page_events; + unsigned long targets[2]; }; -enum { - PCONFIG_CPUID_SUBLEAF_INVALID = 0, - PCONFIG_CPUID_SUBLEAF_TARGETID = 1, -}; +struct pglist_data; -struct cpuid_regs { - u32 eax; - u32 ebx; - u32 ecx; - u32 edx; +struct lruvec { + struct list_head lists[5]; + spinlock_t lru_lock; + unsigned long anon_cost; + unsigned long file_cost; + atomic_long_t nonresident_age; + unsigned long refaults[2]; + unsigned long flags; + struct pglist_data *pgdat; }; -enum tsx_ctrl_states { - TSX_CTRL_ENABLE = 0, - TSX_CTRL_DISABLE = 1, - TSX_CTRL_RTM_ALWAYS_ABORT = 2, - TSX_CTRL_NOT_SUPPORTED = 3, +struct lruvec_stats { + long state[41]; + long state_local[41]; + long state_pending[41]; }; -enum energy_perf_value_index { - EPB_INDEX_PERFORMANCE = 0, - EPB_INDEX_BALANCE_PERFORMANCE = 1, - EPB_INDEX_NORMAL = 2, - EPB_INDEX_BALANCE_POWERSAVE = 3, - EPB_INDEX_POWERSAVE = 4, +struct mem_cgroup_reclaim_iter { + struct mem_cgroup *position; + unsigned int generation; }; -struct mce; +struct lruvec_stats_percpu; -typedef void (*btf_trace_mce_record)(void *, struct mce *); +struct shrinker_info; -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 mem_cgroup_per_node { + struct lruvec lruvec; + struct lruvec_stats_percpu __attribute__((btf_type_tag("percpu"))) *lruvec_stats_percpu; + struct lruvec_stats lruvec_stats; + unsigned long lru_zone_size[20]; + struct mem_cgroup_reclaim_iter iter; + struct shrinker_info __attribute__((btf_type_tag("rcu"))) *shrinker_info; + struct rb_node tree_node; + unsigned long usage_in_excess; + bool on_tree; + struct mem_cgroup *memcg; }; -struct 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 free_area { + struct list_head free_list[4]; + unsigned long nr_free; }; -typedef unsigned long mce_banks_t[1]; +struct per_cpu_pages; -struct mce_bank { - u64 ctl; - __u64 init: 1; - __u64 lsb_in_status: 1; - __u64 __reserved_1: 62; -}; +struct per_cpu_zonestat; -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 zone { + unsigned long _watermark[4]; + unsigned long watermark_boost; + unsigned long nr_reserved_highatomic; + long lowmem_reserve[4]; + int node; + struct pglist_data *zone_pgdat; + struct per_cpu_pages __attribute__((btf_type_tag("percpu"))) *per_cpu_pageset; + struct per_cpu_zonestat __attribute__((btf_type_tag("percpu"))) *per_cpu_zonestats; + int pageset_high_min; + int pageset_high_max; + int pageset_batch; + unsigned long zone_start_pfn; + atomic_long_t managed_pages; + unsigned long spanned_pages; + unsigned long present_pages; + const char *name; + int initialized; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct free_area free_area[11]; + unsigned long flags; + spinlock_t lock; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad2_; + unsigned long percpu_drift_mark; + unsigned long compact_cached_free_pfn; + unsigned long compact_cached_migrate_pfn[2]; + unsigned long compact_init_migrate_pfn; + unsigned long compact_init_free_pfn; + unsigned int compact_considered; + unsigned int compact_defer_shift; + int compact_order_failed; + bool compact_blockskip_flush; + bool contiguous; + long: 0; + struct cacheline_padding _pad3_; + atomic_long_t vm_stat[10]; + atomic_long_t vm_numa_event[6]; }; -struct mce_bank_dev { - struct device_attribute attr; - char attrname[16]; - u8 bank; +struct zoneref { + struct zone *zone; + int zone_idx; }; -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, +struct zonelist { + struct zoneref _zonerefs[257]; }; -enum mcp_flags { - MCP_TIMESTAMP = 1, - MCP_UC = 2, - MCP_DONTLOG = 4, - MCP_QUEUE_LOG = 8, -}; +struct per_cpu_nodestat; -enum mca_msr { - MCA_CTL = 0, - MCA_STATUS = 1, - MCA_ADDR = 2, - MCA_MISC = 3, -}; +struct memory_tier; -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, +struct pglist_data { + struct zone node_zones[4]; + struct zonelist node_zonelists[2]; + int nr_zones; + unsigned long node_start_pfn; + unsigned long node_present_pages; + unsigned long node_spanned_pages; + int node_id; + wait_queue_head_t kswapd_wait; + wait_queue_head_t pfmemalloc_wait; + wait_queue_head_t reclaim_wait[4]; + atomic_t nr_writeback_throttled; + unsigned long nr_reclaim_start; + struct task_struct *kswapd; + int kswapd_order; + enum zone_type kswapd_highest_zoneidx; + int kswapd_failures; + int kcompactd_max_order; + enum zone_type kcompactd_highest_zoneidx; + wait_queue_head_t kcompactd_wait; + struct task_struct *kcompactd; + bool proactive_compact_trigger; + unsigned long totalreserve_pages; + unsigned long min_unmapped_pages; + unsigned long min_slab_pages; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cacheline_padding _pad1_; + struct lruvec __lruvec; + unsigned long flags; + 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]; + struct memory_tier __attribute__((btf_type_tag("rcu"))) *memtier; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 per_cpu_pages { + spinlock_t lock; + int count; + int high; + int high_min; + int high_max; + int batch; + u8 flags; + u8 alloc_factor; + u8 expire; + short free_count; + struct list_head lists[12]; + 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 per_cpu_zonestat { + s8 vm_stat_diff[10]; + s8 stat_threshold; + unsigned long vm_numa_event[6]; }; -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 per_cpu_nodestat { + s8 stat_threshold; + s8 vm_node_stat_diff[41]; }; -struct mce_evt_llist { - struct llist_node llnode; - struct mce mce; +struct memory_tier { + struct list_head list; + struct list_head memory_types; + int adistance_start; + struct device dev; + nodemask_t lower_tier_mask; }; -struct trace_event_data_offsets_mce_record {}; +struct lruvec_stats_percpu { + long state[41]; + long state_prev[41]; +}; -struct gen_pool; +struct shrinker_info_unit; -typedef unsigned long (*genpool_algo_t)(unsigned long *, unsigned long, unsigned long, unsigned int, void *, struct gen_pool *, unsigned long); +struct shrinker_info { + struct callback_head rcu; + int map_nr_max; + struct shrinker_info_unit *unit[0]; +}; -struct gen_pool { - spinlock_t lock; - struct list_head chunks; - int min_alloc_order; - genpool_algo_t algo; - void *data; - const char *name; +struct shrinker_info_unit { + atomic_long_t nr_deferred[64]; + unsigned long map[1]; }; -typedef __u8 mtrr_type; +struct bpf_prog_ops { + int (*test_run)(struct bpf_prog *, const union bpf_attr *, union bpf_attr __attribute__((btf_type_tag("user"))) *); +}; -struct mtrr_ops { - u32 var_regs; - void (*set)(unsigned int, unsigned long, unsigned long, mtrr_type); - void (*get)(unsigned int, unsigned long *, unsigned long *, mtrr_type *); - int (*get_free_region)(unsigned long, unsigned long, int); - int (*validate_add_page)(unsigned long, unsigned long, unsigned int); - int (*have_wrcomb)(); +struct btf_mod_pair { + struct btf *btf; + struct module *module; }; -struct set_mtrr_data { - unsigned long smp_base; - unsigned long smp_size; - unsigned int smp_reg; - mtrr_type smp_type; +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 var_mtrr_range_state { - unsigned long base_pfn; - unsigned long size_pfn; - mtrr_type type; +struct bpf_func_info { + __u32 insn_off; + __u32 type_id; }; -enum ucode_state { - UCODE_OK = 0, - UCODE_NEW = 1, - UCODE_UPDATED = 2, - UCODE_NFOUND = 3, - UCODE_ERROR = 4, +struct bpf_func_info_aux { + u16 linkage; + bool unreliable; }; -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 bpf_line_info { + __u32 insn_off; + __u32 file_name_off; + __u32 line_off; + __u32 line_col; }; -struct cpio_data { - void *data; - size_t size; - char name[18]; +struct sock_fprog_kern { + u16 len; + struct sock_filter *filter; }; -struct property_entry; +struct bio; -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 bio_list { + struct bio *head; + struct bio *tail; }; -enum dev_prop_type { - DEV_PROP_U8 = 0, - DEV_PROP_U16 = 1, - DEV_PROP_U32 = 2, - DEV_PROP_U64 = 3, - DEV_PROP_STRING = 4, - DEV_PROP_REF = 5, -}; +typedef __u32 blk_opf_t; -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; - }; -}; +typedef u8 blk_status_t; -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; +struct bvec_iter { + sector_t bi_sector; + unsigned int bi_size; + unsigned int bi_idx; + unsigned int bi_bvec_done; } __attribute__((packed)); -typedef u32 acpi_status; +typedef unsigned int blk_qc_t; -struct machine_ops { - void (*restart)(char *); - void (*halt)(); - void (*power_off)(); - void (*shutdown)(); - void (*crash_shutdown)(struct pt_regs *); - void (*emergency_restart)(); +typedef void bio_end_io_t(struct bio *); + +struct bio_issue { + u64 value; }; -typedef void (*nmi_shootdown_cb)(int, struct pt_regs *); +struct blkcg_gq; -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, -}; +struct bio_set; -enum reboot_mode { - REBOOT_UNDEFINED = -1, - REBOOT_COLD = 0, - REBOOT_WARM = 1, - REBOOT_HARD = 2, - REBOOT_SOFT = 3, - REBOOT_GPIO = 4, +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 chipset { - u32 vendor; - u32 device; - u32 class; - u32 class_mask; - u32 flags; - void (*f)(int, int, int); -}; +struct request_queue; -struct intel_early_ops { - resource_size_t (*stolen_size)(int, int, int); - resource_size_t (*stolen_base)(int, int, int, resource_size_t); -}; +struct disk_stats; -struct acpi_table_header; +struct blk_holder_ops; -typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); +struct partition_meta_info; -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 block_device { + sector_t bd_start_sect; + sector_t bd_nr_sectors; + struct gendisk *bd_disk; + struct request_queue *bd_queue; + struct disk_stats __attribute__((btf_type_tag("percpu"))) *bd_stats; + unsigned long bd_stamp; + bool bd_read_only; + u8 bd_partno; + bool bd_write_holder; + bool bd_has_submit_bio; + dev_t bd_dev; + struct inode *bd_inode; + atomic_t bd_openers; + spinlock_t bd_size_lock; + void *bd_claiming; + void *bd_holder; + const struct blk_holder_ops *bd_holder_ops; + struct mutex bd_holder_lock; + int bd_fsfreeze_count; + int bd_holders; + struct kobject *bd_holder_dir; + struct mutex bd_fsfreeze_mutex; + struct super_block *bd_fsfreeze_sb; + struct partition_meta_info *bd_meta_info; + bool bd_ro_warned; + struct device bd_device; }; -struct smp_ops { - void (*smp_prepare_boot_cpu)(); - void (*smp_prepare_cpus)(unsigned int); - void (*smp_cpus_done)(unsigned int); - void (*stop_other_cpus)(int); - void (*crash_stop_other_cpus)(); - void (*smp_send_reschedule)(int); - void (*cleanup_dead_cpu)(unsigned int); - void (*poll_sync_state)(); - int (*kick_ap_alive)(unsigned int, struct task_struct *); - int (*cpu_disable)(); - void (*cpu_die)(unsigned int); - void (*play_dead)(); - void (*send_call_func_ipi)(const struct cpumask *); - void (*send_call_func_single_ipi)(int); +struct 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 physid_mask { - unsigned long mask[512]; +struct blk_holder_ops { + void (*mark_dead)(struct block_device *, bool); + void (*sync)(struct block_device *); }; -typedef struct physid_mask physid_mask_t; - -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, -}; +typedef void *mempool_alloc_t(gfp_t, void *); -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; -}; +typedef void mempool_free_t(void *, void *); -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 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; }; -enum { - FTRACE_UPDATE_IGNORE = 0, - FTRACE_UPDATE_MAKE_CALL = 1, - FTRACE_UPDATE_MODIFY_CALL = 2, - FTRACE_UPDATE_MAKE_NOP = 3, -}; +typedef struct mempool_s mempool_t; -enum { - FTRACE_OPS_FL_ENABLED = 1, - FTRACE_OPS_FL_DYNAMIC = 2, - FTRACE_OPS_FL_SAVE_REGS = 4, - FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8, - FTRACE_OPS_FL_RECURSION = 16, - FTRACE_OPS_FL_STUB = 32, - FTRACE_OPS_FL_INITIALIZED = 64, - FTRACE_OPS_FL_DELETED = 128, - FTRACE_OPS_FL_ADDING = 256, - FTRACE_OPS_FL_REMOVING = 512, - FTRACE_OPS_FL_MODIFYING = 1024, - FTRACE_OPS_FL_ALLOC_TRAMP = 2048, - FTRACE_OPS_FL_IPMODIFY = 4096, - FTRACE_OPS_FL_PID = 8192, - FTRACE_OPS_FL_RCU = 16384, - FTRACE_OPS_FL_TRACE_ARRAY = 32768, - FTRACE_OPS_FL_PERMANENT = 65536, - FTRACE_OPS_FL_DIRECT = 131072, -}; +struct bio_alloc_cache; -enum { - FTRACE_FL_ENABLED = 2147483648, - FTRACE_FL_REGS = 1073741824, - FTRACE_FL_REGS_EN = 536870912, - FTRACE_FL_TRAMP = 268435456, - FTRACE_FL_TRAMP_EN = 134217728, - FTRACE_FL_IPMODIFY = 67108864, - FTRACE_FL_DISABLED = 33554432, - FTRACE_FL_DIRECT = 16777216, - FTRACE_FL_DIRECT_EN = 8388608, - FTRACE_FL_CALL_OPS = 4194304, - FTRACE_FL_CALL_OPS_EN = 2097152, - FTRACE_FL_TOUCHED = 1048576, - FTRACE_FL_MODIFIED = 524288, +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; }; -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, +struct bio_alloc_cache { + struct bio *free_list; + struct bio *free_list_irq; + unsigned int nr; + unsigned int nr_irq; }; -enum { - TRACE_CTX_NMI = 0, - TRACE_CTX_IRQ = 1, - TRACE_CTX_SOFTIRQ = 2, - TRACE_CTX_NORMAL = 3, - TRACE_CTX_TRANSITION = 4, +struct reclaim_state { + unsigned long reclaimed; }; -struct dyn_arch_ftrace {}; +struct bpf_run_ctx {}; -struct dyn_ftrace { - unsigned long ip; - unsigned long flags; - struct dyn_arch_ftrace arch; -}; +typedef struct wait_queue_entry wait_queue_entry_t; -union ftrace_op_code_union { - char code[7]; - struct { - char op[3]; - int offset; - } __attribute__((packed)); +struct wait_page_queue { + struct folio *folio; + int bit_nr; + wait_queue_entry_t wait; }; -typedef void crash_vmclear_fn(); - -struct prev_kprobe { - struct kprobe *kp; - unsigned long status; - unsigned long old_flags; - unsigned long saved_flags; -}; +struct swap_iocb; -struct kprobe_ctlblk { - unsigned long kprobe_status; - unsigned long kprobe_old_flags; - unsigned long kprobe_saved_flags; - struct prev_kprobe prev_kprobe; +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; + struct swap_iocb **swap_plug; + struct bdi_writeback *wb; + struct inode *inode; + int wb_id; + int wb_lcand_id; + int wb_tcand_id; + size_t wb_bytes; + size_t wb_lcand_bytes; + size_t wb_tcand_bytes; }; -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 fprop_local_percpu { + struct percpu_counter events; + unsigned int period; + raw_spinlock_t lock; }; -struct pvclock_vsyscall_time_info { - struct pvclock_vcpu_time_info pvti; - long: 64; - long: 64; - long: 64; - long: 64; +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 pvclock_wall_clock { - u32 version; - u32 sec; - u32 nsec; +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 percpu_ref refcnt; + struct fprop_local_percpu memcg_completions; + struct cgroup_subsys_state *memcg_css; + struct cgroup_subsys_state *blkcg_css; + struct list_head memcg_node; + struct list_head blkcg_node; + struct list_head b_attached; + struct list_head offline_node; + union { + struct work_struct release_work; + struct callback_head rcu; + }; }; -struct scan_area { - u64 addr; - u64 size; +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; + struct xarray cgwb_tree; + struct mutex cgwb_release_mutex; + struct rw_semaphore wb_switch_rwsem; + wait_queue_head_t wb_waitq; + struct device *dev; + char dev_name[64]; + struct device *owner; + struct timer_list laptop_mode_wb_timer; + struct dentry *debug_dir; }; -enum memblock_flags { - MEMBLOCK_NONE = 0, - MEMBLOCK_HOTPLUG = 1, - MEMBLOCK_MIRROR = 2, - MEMBLOCK_NOMAP = 4, - MEMBLOCK_DRIVER_MANAGED = 8, +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 memblock_region; - -struct memblock_type { - unsigned long cnt; - unsigned long max; - phys_addr_t total_size; - struct memblock_region *regions; - char *name; +struct swap_cluster_info { + spinlock_t lock; + unsigned int data: 24; + unsigned int flags: 8; }; -struct memblock_region { - phys_addr_t base; - phys_addr_t size; - enum memblock_flags flags; - int nid; +struct swap_cluster_list { + struct swap_cluster_info head; + struct swap_cluster_info tail; }; -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 percpu_cluster; -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; - }; +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 bdev_handle *bdev_handle; + 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]; }; -enum rp_check { - RP_CHECK_CALL = 0, - RP_CHECK_CHAIN_CALL = 1, - RP_CHECK_RET = 2, +struct percpu_cluster { + struct swap_cluster_info index; + unsigned int next; }; -struct core_text { - unsigned long base; - unsigned long end; - const char *name; +struct ubuf_info { + void (*callback)(struct sk_buff *, struct ubuf_info *, bool); + refcount_t refcnt; + u8 flags; }; -enum mod_mem_type { - MOD_TEXT = 0, - MOD_DATA = 1, - MOD_RODATA = 2, - MOD_RO_AFTER_INIT = 3, - MOD_INIT_TEXT = 4, - MOD_INIT_DATA = 5, - MOD_INIT_RODATA = 6, - MOD_MEM_NUM_TYPES = 7, - MOD_INVALID = -1, +typedef enum { + SS_FREE = 0, + SS_UNCONNECTED = 1, + SS_CONNECTING = 2, + SS_CONNECTED = 3, + SS_DISCONNECTING = 4, +} socket_state; + +struct socket_wq { + wait_queue_head_t wait; + struct fasync_struct *fasync_list; + unsigned long flags; + struct callback_head rcu; + long: 64; }; -struct callthunk_sites { - s32 *call_start; - s32 *call_end; - struct paravirt_patch_site *pv_start; - struct paravirt_patch_site *pv_end; +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; }; -struct mempolicy { - atomic_t refcnt; - unsigned short mode; - unsigned short flags; - nodemask_t nodes; - int home_node; +typedef struct { + size_t written; + size_t count; union { - nodemask_t cpuset_mems_allowed; - nodemask_t user_nodemask; - } w; -}; + char __attribute__((btf_type_tag("user"))) *buf; + void *data; + } arg; + int error; +} read_descriptor_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[64]; - unsigned int max_huge_pages_node[64]; - unsigned int nr_huge_pages_node[64]; - unsigned int free_huge_pages_node[64]; - unsigned int surplus_huge_pages_node[64]; - struct cftype cgroup_files_dfl[8]; - struct cftype cgroup_files_legacy[10]; - char name[32]; -}; +typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t); -struct hugepage_subpool; +typedef int (*skb_read_actor_t)(struct sock *, struct sk_buff *); -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 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 (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); + void (*splice_eof)(struct socket *); + int (*set_peek_off)(struct sock *, int); + int (*peek_len)(struct socket *); + int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t); + int (*read_skb)(struct sock *, skb_read_actor_t); + int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); + int (*set_rcvlowat)(struct sock *, int); }; -struct hugepage_subpool { - spinlock_t lock; - long count; - long max_hpages; - long used_hpages; - struct hstate *hstate; - long min_hpages; - long rsv_hpages; -}; +struct request_sock; -typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int)); +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 *); +}; -typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *); +struct saved_syn; -typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int); +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 cpuhp_cpu_state { - enum cpuhp_state state; - enum cpuhp_state target; - enum cpuhp_state fail; - struct task_struct *thread; - bool should_run; - bool rollback; - bool single; - bool bringup; - struct hlist_node *node; - struct hlist_node *last; - enum cpuhp_state cb_state; - int result; - atomic_t ap_sync_state; - struct completion done_up; - struct completion done_down; +struct saved_syn { + u32 mac_hdrlen; + u32 network_hdrlen; + u32 tcp_hdrlen; + u8 data[0]; }; -struct smp_hotplug_thread { - struct task_struct * __attribute__((btf_type_tag("percpu"))) *store; - struct list_head list; - int (*thread_should_run)(unsigned int); - void (*thread_fn)(unsigned int); - void (*create)(unsigned int); - void (*setup)(unsigned int); - void (*cleanup)(unsigned int, bool); - void (*park)(unsigned int); - void (*unpark)(unsigned int); - bool selfparking; - const char *thread_comm; +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 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; +struct sk_filter { + refcount_t refcnt; + struct callback_head rcu; + struct bpf_prog *prog; }; -enum cpu_mitigations { - CPU_MITIGATIONS_OFF = 0, - CPU_MITIGATIONS_AUTO = 1, - CPU_MITIGATIONS_AUTO_NOSMT = 2, +struct xfrm_mark { + __u32 v; + __u32 m; }; -enum cpuhp_sync_state { - SYNC_STATE_DEAD = 0, - SYNC_STATE_KICKED = 1, - SYNC_STATE_SHOULD_DIE = 2, - SYNC_STATE_ALIVE = 3, - SYNC_STATE_SHOULD_ONLINE = 4, - SYNC_STATE_ONLINE = 5, +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; }; -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, +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; }; -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 xfrm_lifetime_cur { + __u64 bytes; + __u64 packets; + __u64 add_time; + __u64 use_time; }; -struct trace_event_raw_cpuhp_enter { - struct trace_entry ent; - unsigned int cpu; - int target; - int idx; - void *fun; - char __data[0]; +struct xfrm_policy_walk_entry { + struct list_head all; + u8 dead; }; -struct trace_event_raw_cpuhp_multi_enter { - struct trace_entry ent; - unsigned int cpu; - int target; - int idx; - void *fun; - char __data[0]; +struct xfrm_policy_queue { + struct sk_buff_head hold_queue; + struct timer_list hold_timer; + unsigned long timeout; }; -struct trace_event_raw_cpuhp_exit { - struct trace_entry ent; - unsigned int cpu; - int state; - int idx; - int ret; - char __data[0]; +struct xfrm_id { + xfrm_address_t daddr; + __be32 spi; + __u8 proto; }; -struct trace_event_data_offsets_cpuhp_enter {}; +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 trace_event_data_offsets_cpuhp_multi_enter {}; +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; + u8 flags: 2; +}; -struct trace_event_data_offsets_cpuhp_exit {}; +struct xfrm_sec_ctx; -struct linked_page; +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; +}; -struct chain_allocator { - struct linked_page *chain; - unsigned int used_space; - gfp_t gfp_mask; - int safe_needed; +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 linked_page { - struct linked_page *next; - char data[4088]; +struct skb_ext { + refcount_t refcnt; + u8 offset[1]; + u8 chunks; + long: 0; + char data[0]; }; -struct pbe { - void *address; - void *orig_address; - struct pbe *next; +struct ifmap { + unsigned long mem_start; + unsigned long mem_end; + unsigned short base_addr; + unsigned char irq; + unsigned char dma; + unsigned char port; }; -struct mem_zone_bm_rtree; +typedef struct { + unsigned short encoding; + unsigned short parity; +} raw_hdlc_proto; -struct rtree_node; +typedef struct { + unsigned int interval; + unsigned int timeout; +} cisco_proto; -struct bm_position { - struct mem_zone_bm_rtree *zone; - struct rtree_node *node; - unsigned long node_pfn; - int node_bit; +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 memory_bitmap { - struct list_head zones; - struct linked_page *p_list; - struct bm_position cur; +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 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 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 rtree_node { - struct list_head list; - unsigned long *data; +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; }; -enum zone_type { - ZONE_DMA = 0, - ZONE_DMA32 = 1, - ZONE_NORMAL = 2, - ZONE_MOVABLE = 3, - __MAX_NR_ZONES = 4, +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; }; -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, +struct ifla_vf_guid { + __u32 vf; + __u64 guid; }; -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, +struct ndmsg { + __u8 ndm_family; + __u8 ndm_pad1; + __u16 ndm_pad2; + __s32 ndm_ifindex; + __u16 ndm_state; + __u8 ndm_flags; + __u8 ndm_type; }; -enum migratetype { - MIGRATE_UNMOVABLE = 0, - MIGRATE_MOVABLE = 1, - MIGRATE_RECLAIMABLE = 2, - MIGRATE_PCPTYPES = 3, - MIGRATE_HIGHATOMIC = 3, - MIGRATE_TYPES = 4, +struct nlmsghdr { + __u32 nlmsg_len; + __u16 nlmsg_type; + __u16 nlmsg_flags; + __u32 nlmsg_seq; + __u32 nlmsg_pid; }; -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 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 nosave_region { - struct list_head list; - unsigned long start_pfn; - unsigned long end_pfn; +struct netdev_phys_item_id { + unsigned char id[32]; + unsigned char id_len; }; -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; +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; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct mem_extent { - struct list_head hook; - unsigned long start; - unsigned long end; -}; - -struct 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]; -}; - -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]; - int node; - struct pglist_data *zone_pgdat; - struct per_cpu_pages __attribute__((btf_type_tag("percpu"))) *per_cpu_pageset; - struct per_cpu_zonestat __attribute__((btf_type_tag("percpu"))) *per_cpu_zonestats; - int pageset_high; - int pageset_batch; - unsigned long zone_start_pfn; - atomic_long_t managed_pages; - unsigned long spanned_pages; - unsigned long present_pages; - const char *name; - int initialized; - long: 64; - long: 64; - long: 64; - struct cacheline_padding _pad1_; - struct free_area free_area[11]; - unsigned long flags; - spinlock_t lock; - long: 64; - long: 64; - long: 64; - struct cacheline_padding _pad2_; - unsigned long percpu_drift_mark; - unsigned long compact_cached_free_pfn; - unsigned long compact_cached_migrate_pfn[2]; - unsigned long compact_init_migrate_pfn; - unsigned long compact_init_free_pfn; - unsigned int compact_considered; - unsigned int compact_defer_shift; - int compact_order_failed; - bool compact_blockskip_flush; - bool contiguous; - long: 0; - struct cacheline_padding _pad3_; - atomic_long_t vm_stat[10]; - atomic_long_t vm_numa_event[6]; +struct 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 zoneref { - struct zone *zone; - int zone_idx; +struct net_device_path_ctx { + const struct net_device *dev; + u8 daddr[6]; + int num_vlans; + struct { + u16 id; + __be16 proto; + } vlan[2]; }; -struct zonelist { - struct zoneref _zonerefs[257]; +struct skb_shared_hwtstamps { + union { + ktime_t hwtstamp; + void *netdev_data; + }; }; -struct lruvec { - struct list_head lists[5]; - spinlock_t lru_lock; - unsigned long anon_cost; - unsigned long file_cost; - atomic_long_t nonresident_age; - unsigned long refaults[2]; - unsigned long flags; +enum hwtstamp_source { + HWTSTAMP_SOURCE_NETDEV = 0, + HWTSTAMP_SOURCE_PHYLIB = 1, }; -struct per_cpu_nodestat; - -struct memory_tier; - -struct pglist_data { - struct zone node_zones[4]; - struct zonelist node_zonelists[2]; - int nr_zones; - unsigned long node_start_pfn; - unsigned long node_present_pages; - unsigned long node_spanned_pages; - int node_id; - wait_queue_head_t kswapd_wait; - wait_queue_head_t pfmemalloc_wait; - wait_queue_head_t reclaim_wait[4]; - atomic_t nr_writeback_throttled; - unsigned long nr_reclaim_start; - struct task_struct *kswapd; - int kswapd_order; - enum zone_type kswapd_highest_zoneidx; - int kswapd_failures; - int kcompactd_max_order; - enum zone_type kcompactd_highest_zoneidx; - wait_queue_head_t kcompactd_wait; - struct task_struct *kcompactd; - bool proactive_compact_trigger; - unsigned long totalreserve_pages; - unsigned long min_unmapped_pages; - unsigned long min_slab_pages; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - 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]; - struct memory_tier __attribute__((btf_type_tag("rcu"))) *memtier; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct kernel_hwtstamp_config { + int flags; + int tx_type; + int rx_filter; + struct ifreq *ifr; + bool copied_to_user; + enum hwtstamp_source source; }; -struct per_cpu_nodestat { - s8 stat_threshold; - s8 vm_node_stat_diff[41]; +enum xdp_rss_hash_type { + XDP_RSS_L3_IPV4 = 1, + XDP_RSS_L3_IPV6 = 2, + XDP_RSS_L3_DYNHDR = 4, + XDP_RSS_L4 = 8, + XDP_RSS_L4_TCP = 16, + XDP_RSS_L4_UDP = 32, + XDP_RSS_L4_SCTP = 64, + XDP_RSS_L4_IPSEC = 128, + XDP_RSS_TYPE_NONE = 0, + XDP_RSS_TYPE_L2 = 0, + XDP_RSS_TYPE_L3_IPV4 = 1, + XDP_RSS_TYPE_L3_IPV6 = 2, + XDP_RSS_TYPE_L3_IPV4_OPT = 5, + XDP_RSS_TYPE_L3_IPV6_EX = 6, + XDP_RSS_TYPE_L4_ANY = 8, + XDP_RSS_TYPE_L4_IPV4_TCP = 25, + XDP_RSS_TYPE_L4_IPV4_UDP = 41, + XDP_RSS_TYPE_L4_IPV4_SCTP = 73, + XDP_RSS_TYPE_L4_IPV4_IPSEC = 137, + XDP_RSS_TYPE_L4_IPV6_TCP = 26, + XDP_RSS_TYPE_L4_IPV6_UDP = 42, + XDP_RSS_TYPE_L4_IPV6_SCTP = 74, + XDP_RSS_TYPE_L4_IPV6_IPSEC = 138, + XDP_RSS_TYPE_L4_IPV6_TCP_EX = 30, + XDP_RSS_TYPE_L4_IPV6_UDP_EX = 46, + XDP_RSS_TYPE_L4_IPV6_SCTP_EX = 78, }; -struct memory_tier { - struct list_head list; - struct list_head memory_types; - int adistance_start; - struct device dev; - nodemask_t lower_tier_mask; -}; +struct xdp_md; -struct per_cpu_pages { - spinlock_t lock; - int count; - int high; - int batch; - short free_factor; - short expire; - struct list_head lists[12]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct xdp_metadata_ops { + int (*xmo_rx_timestamp)(const struct xdp_md *, u64 *); + int (*xmo_rx_hash)(const struct xdp_md *, u32 *, enum xdp_rss_hash_type *); }; -struct per_cpu_zonestat { - s8 vm_stat_diff[10]; - s8 stat_threshold; - unsigned long vm_numa_event[6]; +struct net_device_core_stats { + unsigned long rx_dropped; + unsigned long tx_dropped; + unsigned long rx_nohandler; + unsigned long rx_otherhost_dropped; }; -struct snapshot_handle { - unsigned int cur; - void *buffer; - int sync_read; +enum ethtool_phys_id_state { + ETHTOOL_ID_INACTIVE = 0, + ETHTOOL_ID_ACTIVE = 1, + ETHTOOL_ID_ON = 2, + ETHTOOL_ID_OFF = 3, }; -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); +struct ethtool_drvinfo; -typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *); +struct ethtool_regs; -typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *); +struct ethtool_wolinfo; -typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode); +struct ethtool_link_ext_state_info; -typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode); +struct ethtool_link_ext_stats; -typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *); +struct ethtool_eeprom; -typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *); +struct ethtool_coalesce; -typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *); +struct kernel_ethtool_coalesce; -struct itimerspec64; +struct ethtool_ringparam; -typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, unsigned long long); +struct kernel_ethtool_ringparam; -struct itimerspec64 { - struct timespec64 it_interval; - struct timespec64 it_value; -}; +struct ethtool_pause_stats; -typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, unsigned long long); +struct ethtool_pauseparam; -typedef void (*btf_trace_tick_stop)(void *, int, int); +struct ethtool_test; -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 ethtool_stats; -struct trace_print_flags { - unsigned long mask; - const char *name; -}; +struct ethtool_rxnfc; -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 ethtool_flash; -struct trace_event_raw_timer_class { - struct trace_entry ent; - void *timer; - char __data[0]; -}; +struct ethtool_channels; -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 ethtool_dump; -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 ethtool_ts_info; -struct trace_event_raw_hrtimer_init { - struct trace_entry ent; - void *hrtimer; - clockid_t clockid; - enum hrtimer_mode mode; - char __data[0]; -}; +struct ethtool_modinfo; -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 ethtool_eee; -struct trace_event_raw_hrtimer_expire_entry { - struct trace_entry ent; - void *hrtimer; - s64 now; - void *function; - char __data[0]; -}; +struct ethtool_tunable; -struct trace_event_raw_hrtimer_class { - struct trace_entry ent; - void *hrtimer; - char __data[0]; -}; +struct ethtool_link_ksettings; -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 ethtool_fec_stats; -struct trace_event_raw_itimer_expire { - struct trace_entry ent; - int which; - pid_t pid; - unsigned long long now; - char __data[0]; -}; +struct ethtool_fecparam; -struct trace_event_raw_tick_stop { - struct trace_entry ent; - int success; - int dependency; - char __data[0]; -}; +struct ethtool_module_eeprom; -struct process_timer { - struct timer_list timer; - struct task_struct *task; -}; +struct ethtool_eth_phy_stats; -struct softirq_action { - void (*action)(struct softirq_action *); -}; +struct ethtool_eth_mac_stats; -struct trace_event_data_offsets_timer_class {}; +struct ethtool_eth_ctrl_stats; -struct trace_event_data_offsets_timer_start {}; +struct ethtool_rmon_stats; -struct trace_event_data_offsets_timer_expire_entry {}; +struct ethtool_rmon_hist_range; -struct trace_event_data_offsets_hrtimer_init {}; +struct ethtool_module_power_mode_params; -struct trace_event_data_offsets_hrtimer_start {}; +struct ethtool_mm_state; -struct trace_event_data_offsets_hrtimer_expire_entry {}; +struct ethtool_mm_cfg; -struct trace_event_data_offsets_hrtimer_class {}; +struct ethtool_mm_stats; -struct trace_event_data_offsets_itimer_state {}; +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 trace_event_data_offsets_itimer_expire {}; +struct nd_opt_hdr; -struct trace_event_data_offsets_tick_stop {}; +struct ndisc_options; -struct pipe_buffer; +struct prefix_info; -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 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 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 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 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 *); +struct ipv4_devconf { + void *sysctl; + int data[33]; + unsigned long state[1]; }; -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 in_ifaddr; -struct rchan; +struct ip_mc_list; -struct rchan_buf { - void *start; - void *data; - size_t offset; - size_t subbufs_produced; - size_t subbufs_consumed; - struct rchan *chan; - wait_queue_head_t read_wait; - struct irq_work wakeup_work; - struct dentry *dentry; - struct kref kref; - struct page **page_array; - unsigned int page_count; - unsigned int finalized; - size_t *padding; - size_t prev_padding; - size_t bytes_consumed; - size_t early_bytes; - unsigned int cpu; - long: 64; - long: 64; +struct in_device { + struct net_device *dev; + netdevice_tracker dev_tracker; + refcount_t refcnt; + int dead; + struct in_ifaddr __attribute__((btf_type_tag("rcu"))) *ifa_list; + struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *mc_list; + struct ip_mc_list __attribute__((btf_type_tag("rcu"))) * __attribute__((btf_type_tag("rcu"))) *mc_hash; + int mc_count; + spinlock_t mc_tomb_lock; + struct ip_mc_list *mc_tomb; + unsigned long mr_v1_seen; + unsigned long mr_v2_seen; + unsigned long mr_maxdelay; + unsigned long mr_qi; + unsigned long mr_qri; + unsigned char mr_qrv; + unsigned char mr_gq_running; + u32 mr_ifc_count; + struct timer_list mr_gq_timer; + struct timer_list mr_ifc_timer; + struct neigh_parms *arp_parms; + struct ipv4_devconf cnf; + struct callback_head callback_head; }; -struct rchan_callbacks; +struct icmpv6_mib_device; -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 icmpv6msg_mib_device; -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 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; }; -typedef struct poll_table_struct poll_table; - -struct partial_page { - unsigned int offset; - unsigned int len; - unsigned long private; -}; +struct ifmcaddr6; -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 ifacaddr6; -struct rchan_percpu_buf_dispatcher { - struct rchan_buf *buf; - struct dentry *dentry; +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; }; -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 ip6_sf_list; -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 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 trace_event_raw_rpm_return_int { - struct trace_entry ent; - u32 __data_loc_name; - unsigned long ip; - int ret; - char __data[0]; +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 trace_event_data_offsets_rpm_internal { - u32 name; +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 trace_event_data_offsets_rpm_return_int { - u32 name; +struct icmpv6_mib_device { + atomic_long_t mibs[7]; }; -struct pcpu_freelist_node; - -struct pcpu_freelist_head { - struct pcpu_freelist_node *first; - raw_spinlock_t lock; +struct icmpv6msg_mib_device { + atomic_long_t mibs[512]; }; -struct pcpu_freelist_node { - struct pcpu_freelist_node *next; +struct bpf_mprog_fp { + struct bpf_prog *prog; }; -struct pcpu_freelist { - struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist; - struct pcpu_freelist_head extralist; -}; +struct bpf_mprog_bundle; -struct bpf_array_aux; +struct bpf_mprog_entry { + struct bpf_mprog_fp fp_items[64]; + struct bpf_mprog_bundle *parent; +}; -struct bpf_array { - struct bpf_map map; - u32 elem_size; - u32 index_mask; - struct bpf_array_aux *aux; - union { - struct { - struct {} __empty_value; - char value[0]; - }; - struct { - struct {} __empty_ptrs; - void *ptrs[0]; - }; - struct { - struct {} __empty_pptrs; - void __attribute__((btf_type_tag("percpu"))) *pptrs[0]; - }; - }; +struct dql { + unsigned int num_queued; + unsigned int adj_limit; + unsigned int last_obj_cnt; 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: 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; -}; - -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 netdev_queue { + struct net_device *dev; + netdevice_tracker dev_tracker; + struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc; + struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc_sleeping; + struct kobject kobj; + int numa_node; + unsigned long tx_maxrate; + atomic_long_t trans_timeout; + struct net_device *sb_dev; + struct xsk_buff_pool *pool; + 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; }; -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 qdisc_skb_head { + struct sk_buff *head; + struct sk_buff *tail; + __u32 qlen; + spinlock_t lock; }; -struct btf_array { - __u32 type; - __u32 index_type; - __u32 nelems; +struct gnet_stats_basic_sync { + u64_stats_t bytes; + u64_stats_t packets; + struct u64_stats_sync syncp; }; -struct btf_param { - __u32 name_off; - __u32 type; +struct gnet_stats_queue { + __u32 qlen; + __u32 backlog; + __u32 drops; + __u32 requeues; + __u32 overlimits; }; -struct btf_enum { - __u32 name_off; - __s32 val; -}; +struct Qdisc_ops; -struct btf_enum64 { - __u32 name_off; - __u32 val_lo32; - __u32 val_hi32; -}; +struct qdisc_size_table; -struct btf_member { - __u32 name_off; - __u32 type; - __u32 offset; -}; +struct net_rate_estimator; -struct bpf_verifier_log { - u64 start_pos; - u64 end_pos; - char __attribute__((btf_type_tag("user"))) *ubuf; - u32 level; - u32 len_total; - u32 len_max; - char kbuf[1024]; +struct 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 bpf_core_accessor { - __u32 type_id; - __u32 idx; - const char *name; +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 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 tcmsg; + +struct qdisc_walker; + +struct tcf_block; + +struct Qdisc_class_ops { + unsigned int flags; + struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *); + int (*graft)(struct Qdisc *, unsigned long, struct Qdisc *, struct Qdisc **, struct netlink_ext_ack *); + struct Qdisc * (*leaf)(struct Qdisc *, unsigned long); + void (*qlen_notify)(struct Qdisc *, unsigned long); + unsigned long (*find)(struct Qdisc *, u32); + int (*change)(struct Qdisc *, u32, u32, struct nlattr **, unsigned long *, struct netlink_ext_ack *); + int (*delete)(struct Qdisc *, unsigned long, struct netlink_ext_ack *); + void (*walk)(struct Qdisc *, struct qdisc_walker *); + struct tcf_block * (*tcf_block)(struct Qdisc *, unsigned long, struct netlink_ext_ack *); + unsigned long (*bind_tcf)(struct Qdisc *, unsigned long, u32); + void (*unbind_tcf)(struct Qdisc *, unsigned long); + int (*dump)(struct Qdisc *, unsigned long, struct sk_buff *, struct tcmsg *); + int (*dump_stats)(struct Qdisc *, unsigned long, struct gnet_dump *); }; -struct bpf_core_relo { - __u32 insn_off; - __u32 type_id; - __u32 access_str_off; - enum bpf_core_relo_kind kind; +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 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 flow_block { + struct list_head cb_list; }; -struct bpf_core_cand; +struct tcf_chain; -struct bpf_core_cand_list { - struct bpf_core_cand *cands; - int len; +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 bpf_core_cand { - const struct btf *btf; - __u32 id; -}; +struct tcf_proto; -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 tcf_proto_ops; + +struct tcf_chain { + struct mutex filter_chain_lock; + struct tcf_proto __attribute__((btf_type_tag("rcu"))) *filter_chain; + struct list_head list; + struct tcf_block *block; + u32 index; + unsigned int refcnt; + unsigned int action_refcnt; + bool explicitly_created; + bool flushing; + const struct tcf_proto_ops *tmplt_ops; + void *tmplt_priv; + struct callback_head rcu; }; -struct perf_event_mmap_page; +struct tcf_result; -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 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 perf_event_mmap_page { - __u32 version; - __u32 compat_version; - __u32 lock; - __u32 index; - __s64 offset; - __u64 time_enabled; - __u64 time_running; +enum skb_drop_reason { + SKB_NOT_DROPPED_YET = 0, + SKB_CONSUMED = 1, + SKB_DROP_REASON_NOT_SPECIFIED = 2, + SKB_DROP_REASON_NO_SOCKET = 3, + SKB_DROP_REASON_PKT_TOO_SMALL = 4, + SKB_DROP_REASON_TCP_CSUM = 5, + SKB_DROP_REASON_SOCKET_FILTER = 6, + SKB_DROP_REASON_UDP_CSUM = 7, + SKB_DROP_REASON_NETFILTER_DROP = 8, + SKB_DROP_REASON_OTHERHOST = 9, + SKB_DROP_REASON_IP_CSUM = 10, + SKB_DROP_REASON_IP_INHDR = 11, + SKB_DROP_REASON_IP_RPFILTER = 12, + SKB_DROP_REASON_UNICAST_IN_L2_MULTICAST = 13, + SKB_DROP_REASON_XFRM_POLICY = 14, + SKB_DROP_REASON_IP_NOPROTO = 15, + SKB_DROP_REASON_SOCKET_RCVBUFF = 16, + SKB_DROP_REASON_PROTO_MEM = 17, + SKB_DROP_REASON_TCP_AUTH_HDR = 18, + SKB_DROP_REASON_TCP_MD5NOTFOUND = 19, + SKB_DROP_REASON_TCP_MD5UNEXPECTED = 20, + SKB_DROP_REASON_TCP_MD5FAILURE = 21, + SKB_DROP_REASON_TCP_AONOTFOUND = 22, + SKB_DROP_REASON_TCP_AOUNEXPECTED = 23, + SKB_DROP_REASON_TCP_AOKEYNOTFOUND = 24, + SKB_DROP_REASON_TCP_AOFAILURE = 25, + SKB_DROP_REASON_SOCKET_BACKLOG = 26, + SKB_DROP_REASON_TCP_FLAGS = 27, + SKB_DROP_REASON_TCP_ZEROWINDOW = 28, + SKB_DROP_REASON_TCP_OLD_DATA = 29, + SKB_DROP_REASON_TCP_OVERWINDOW = 30, + SKB_DROP_REASON_TCP_OFOMERGE = 31, + SKB_DROP_REASON_TCP_RFC7323_PAWS = 32, + SKB_DROP_REASON_TCP_OLD_SEQUENCE = 33, + SKB_DROP_REASON_TCP_INVALID_SEQUENCE = 34, + SKB_DROP_REASON_TCP_RESET = 35, + SKB_DROP_REASON_TCP_INVALID_SYN = 36, + SKB_DROP_REASON_TCP_CLOSE = 37, + SKB_DROP_REASON_TCP_FASTOPEN = 38, + SKB_DROP_REASON_TCP_OLD_ACK = 39, + SKB_DROP_REASON_TCP_TOO_OLD_ACK = 40, + SKB_DROP_REASON_TCP_ACK_UNSENT_DATA = 41, + SKB_DROP_REASON_TCP_OFO_QUEUE_PRUNE = 42, + SKB_DROP_REASON_TCP_OFO_DROP = 43, + SKB_DROP_REASON_IP_OUTNOROUTES = 44, + SKB_DROP_REASON_BPF_CGROUP_EGRESS = 45, + SKB_DROP_REASON_IPV6DISABLED = 46, + SKB_DROP_REASON_NEIGH_CREATEFAIL = 47, + SKB_DROP_REASON_NEIGH_FAILED = 48, + SKB_DROP_REASON_NEIGH_QUEUEFULL = 49, + SKB_DROP_REASON_NEIGH_DEAD = 50, + SKB_DROP_REASON_TC_EGRESS = 51, + SKB_DROP_REASON_QDISC_DROP = 52, + SKB_DROP_REASON_CPU_BACKLOG = 53, + SKB_DROP_REASON_XDP = 54, + SKB_DROP_REASON_TC_INGRESS = 55, + SKB_DROP_REASON_UNHANDLED_PROTO = 56, + SKB_DROP_REASON_SKB_CSUM = 57, + SKB_DROP_REASON_SKB_GSO_SEG = 58, + SKB_DROP_REASON_SKB_UCOPY_FAULT = 59, + SKB_DROP_REASON_DEV_HDR = 60, + SKB_DROP_REASON_DEV_READY = 61, + SKB_DROP_REASON_FULL_RING = 62, + SKB_DROP_REASON_NOMEM = 63, + SKB_DROP_REASON_HDR_TRUNC = 64, + SKB_DROP_REASON_TAP_FILTER = 65, + SKB_DROP_REASON_TAP_TXFILTER = 66, + SKB_DROP_REASON_ICMP_CSUM = 67, + SKB_DROP_REASON_INVALID_PROTO = 68, + SKB_DROP_REASON_IP_INADDRERRORS = 69, + SKB_DROP_REASON_IP_INNOROUTES = 70, + SKB_DROP_REASON_PKT_TOO_BIG = 71, + SKB_DROP_REASON_DUP_FRAG = 72, + SKB_DROP_REASON_FRAG_REASM_TIMEOUT = 73, + SKB_DROP_REASON_FRAG_TOO_FAR = 74, + SKB_DROP_REASON_TCP_MINTTL = 75, + SKB_DROP_REASON_IPV6_BAD_EXTHDR = 76, + SKB_DROP_REASON_IPV6_NDISC_FRAG = 77, + SKB_DROP_REASON_IPV6_NDISC_HOP_LIMIT = 78, + SKB_DROP_REASON_IPV6_NDISC_BAD_CODE = 79, + SKB_DROP_REASON_IPV6_NDISC_BAD_OPTIONS = 80, + SKB_DROP_REASON_IPV6_NDISC_NS_OTHERHOST = 81, + SKB_DROP_REASON_QUEUE_PURGE = 82, + SKB_DROP_REASON_TC_ERROR = 83, + SKB_DROP_REASON_MAX = 84, + SKB_DROP_REASON_SUBSYS_MASK = 4294901760, +}; + +struct tcf_result { 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; + unsigned long class; + u32 classid; }; + const struct tcf_proto *goto_tp; }; - __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; + enum skb_drop_reason drop_reason; }; -struct perf_event_header { - __u32 type; - __u16 misc; - __u16 size; -}; +typedef int flow_setup_cb_t(enum tc_setup_type, void *, void *); -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 tcf_walker; -struct compact_control; +struct tcf_exts; -struct capture_control { - struct compact_control *cc; - struct page *page; +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 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 tc_stats { + __u64 bytes; + __u32 packets; + __u32 drops; + __u32 overlimits; + __u32 bps; + __u32 pps; + __u32 qlen; + __u32 backlog; }; -typedef void (*btf_trace_percpu_alloc_percpu)(void *, unsigned long, bool, bool, size_t, size_t, void *, int, void __attribute__((btf_type_tag("percpu"))) *, size_t, gfp_t); - -typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void __attribute__((btf_type_tag("percpu"))) *); - -typedef void (*btf_trace_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_t); - -typedef void (*btf_trace_percpu_create_chunk)(void *, void *); - -typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *); - -enum pcpu_fc { - PCPU_FC_AUTO = 0, - PCPU_FC_EMBED = 1, - PCPU_FC_PAGE = 2, - PCPU_FC_NR = 3, +struct 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 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 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 pcpu_chunk { +struct qdisc_size_table { + struct callback_head rcu; struct list_head list; - int free_bytes; - struct pcpu_block_md chunk_md; - unsigned long *bound_map; - void *base_addr; - unsigned long *alloc_map; - struct pcpu_block_md *md_blocks; - void *data; - bool immutable; - bool isolated; - int start_offset; - int end_offset; - int nr_pages; - int nr_populated; - int nr_empty_pop_pages; - unsigned long populated[0]; - long: 64; + struct tc_sizespec szopts; + int refcnt; + u16 data[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 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 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 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 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 xps_map; -struct trace_event_raw_percpu_create_chunk { - struct trace_entry ent; - void *base_addr; - char __data[0]; +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 trace_event_raw_percpu_destroy_chunk { - struct trace_entry ent; - void *base_addr; - char __data[0]; +struct xps_map { + unsigned int len; + unsigned int alloc_len; + struct callback_head rcu; + u16 queues[0]; }; -struct pcpu_group_info { - int nr_units; - unsigned long base_offset; - unsigned int *cpu_map; +struct semaphore { + raw_spinlock_t lock; + unsigned int count; + struct list_head wait_list; }; -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 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 trace_event_data_offsets_percpu_alloc_percpu {}; +struct pcpu_lstats { + u64_stats_t packets; + u64_stats_t bytes; + struct u64_stats_sync syncp; +}; -struct trace_event_data_offsets_percpu_free_percpu {}; +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 trace_event_data_offsets_percpu_alloc_percpu_fail {}; +struct pcpu_dstats { + u64 rx_packets; + u64 rx_bytes; + u64 rx_drops; + u64 tx_packets; + u64 tx_bytes; + u64 tx_drops; + struct u64_stats_sync syncp; + long: 64; + long: 64; +}; -struct trace_event_data_offsets_percpu_create_chunk {}; +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 trace_event_data_offsets_percpu_destroy_chunk {}; +struct netprio_map { + struct callback_head rcu; + u32 priomap_len; + u32 priomap[0]; +}; -struct obj_cgroup; +struct udp_tunnel_nic_table_info { + unsigned int n_entries; + unsigned int tunnel_types; +}; -typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); +struct udp_tunnel_info; -typedef int pcpu_fc_cpu_to_node_fn_t(int); +struct udp_tunnel_nic_shared; -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 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 fc_log; +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 p_log { - const char *prefix; - struct fc_log *log; +enum lockdep_ok { + LOCKDEP_STILL_OK = 0, + LOCKDEP_NOW_UNRELIABLE = 1, }; -enum fs_context_purpose { - FS_CONTEXT_FOR_MOUNT = 0, - FS_CONTEXT_FOR_SUBMOUNT = 1, - FS_CONTEXT_FOR_RECONFIGURE = 2, +typedef __kernel_clock_t clock_t; + +struct do_proc_dointvec_minmax_conv_param { + int *min; + int *max; }; -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 do_proc_douintvec_minmax_conv_param { + unsigned int *min; + unsigned int *max; }; -struct fs_context_operations; +struct timens_offsets { + struct timespec64 monotonic; + struct timespec64 boottime; +}; -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 time_namespace { struct user_namespace *user_ns; - struct net *net_ns; - const struct cred *cred; - struct p_log log; - const char *source; - void *security; - void *s_fs_info; - unsigned int sb_flags; - unsigned int sb_flags_mask; - unsigned int s_iflags; - enum fs_context_purpose purpose: 8; - enum fs_context_phase phase: 8; - bool need_free: 1; - bool global: 1; - bool oldapi: 1; + struct ucounts *ucounts; + struct ns_common ns; + struct timens_offsets offsets; + struct page *vvar_page; + bool frozen_offsets; }; -struct fs_context_operations { - void (*free)(struct fs_context *); - int (*dup)(struct fs_context *, struct fs_context *); - int (*parse_param)(struct fs_context *, struct fs_parameter *); - int (*parse_monolithic)(struct fs_context *, void *); - int (*get_tree)(struct fs_context *); - int (*reconfigure)(struct fs_context *); +struct cdev { + struct kobject kobj; + struct module *owner; + const struct file_operations *ops; + struct list_head list; + dev_t dev; + unsigned int count; }; -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 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; }; -struct filename; +struct __kernel_timex; -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 k_itimer; -struct audit_names; +struct itimerspec64; -struct filename { - const char *name; - const char __attribute__((btf_type_tag("user"))) *uptr; - int refcnt; - struct audit_names *aname; - const char iname[0]; +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 *); }; -struct fc_log { - refcount_t usage; - u8 head; - u8 tail; - u8 need_free; - struct module *owner; - char *buffer[8]; +struct __kernel_timex_timeval { + __kernel_time64_t tv_sec; + long long tv_usec; }; -struct fs_parse_result { - bool negated; - union { - bool boolean; - int int_32; - unsigned int uint_32; - u64 uint_64; - }; +struct __kernel_timex { + unsigned int modes; + long long offset; + long long freq; + long long maxerror; + long long esterror; + int status; + long long constant; + long long precision; + long long tolerance; + struct __kernel_timex_timeval time; + long long tick; + long long ppsfreq; + long long jitter; + int shift; + long long stabil; + long long jitcnt; + long long calcnt; + long long errcnt; + long long stbcnt; + int tai; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -enum { - XA_CHECK_SCHED = 4096, +enum alarmtimer_restart { + ALARMTIMER_NORESTART = 0, + ALARMTIMER_RESTART = 1, }; -enum { - HUGETLB_SHMFS_INODE = 1, - HUGETLB_ANONHUGE_INODE = 2, +enum alarmtimer_type { + ALARM_REALTIME = 0, + ALARM_BOOTTIME = 1, + ALARM_NUMTYPE = 2, + ALARM_REALTIME_FREEZER = 3, + ALARM_BOOTTIME_FREEZER = 4, }; -struct shared_policy { - struct rb_root root; - rwlock_t lock; +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 simple_xattrs { - struct rb_root rb_root; - rwlock_t lock; +struct cpu_timer { + struct timerqueue_node node; + struct timerqueue_head *head; + struct pid *pid; + struct list_head elist; + int firing; + struct task_struct __attribute__((btf_type_tag("rcu"))) *handling; }; -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; -}; +typedef __kernel_timer_t timer_t; -struct hugetlbfs_inode_info { - struct shared_policy policy; - struct inode vfs_inode; - unsigned int seals; -}; +struct sigqueue; -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]; +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 { - unsigned long tags[3]; - unsigned long marks[3]; + 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; }; -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 sigqueue { + struct list_head list; + int flags; + kernel_siginfo_t info; + struct ucounts *ucounts; }; -enum fsnotify_obj_type { - FSNOTIFY_OBJ_TYPE_ANY = -1, - FSNOTIFY_OBJ_TYPE_INODE = 0, - FSNOTIFY_OBJ_TYPE_VFSMOUNT = 1, - FSNOTIFY_OBJ_TYPE_SB = 2, - FSNOTIFY_OBJ_TYPE_COUNT = 3, - FSNOTIFY_OBJ_TYPE_DETACHED = 3, +struct itimerspec64 { + struct timespec64 it_interval; + struct timespec64 it_value; }; -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 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, }; -struct fsnotify_group; - -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; +enum tk_offsets { + TK_OFFS_REAL = 0, + TK_OFFS_BOOT = 1, + TK_OFFS_TAI = 2, + TK_OFFS_MAX = 3, }; -struct inotify_group_private_data { - spinlock_t idr_lock; - struct idr idr; - 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; }; -struct fsnotify_ops; +typedef s32 compat_int_t; -struct fsnotify_event; +union compat_sigval { + compat_int_t sival_int; + compat_uptr_t sival_ptr; +}; -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; +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 { - void *private; - struct inotify_group_private_data inotify_data; - }; + compat_int_t _pad[13]; + compat_int_t _tid; + struct { + compat_uptr_t _function; + compat_uptr_t _attribute; + } _sigev_thread; + } _sigev_un; }; -struct fsnotify_iter_info; +struct __kernel_itimerspec { + struct __kernel_timespec it_interval; + struct __kernel_timespec it_value; +}; -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 old_itimerspec32 { + struct old_timespec32 it_interval; + struct old_timespec32 it_value; }; -struct mount; +struct old_timeval32 { + old_time32_t tv_sec; + s32 tv_usec; +}; -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 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: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct mnt_pcp; +typedef struct sigevent sigevent_t; -struct mountpoint; +typedef void (*rcu_callback_t)(struct callback_head *); -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 timezone { + int tz_minuteswest; + int tz_dsttime; }; -struct mnt_pcp { - int mnt_count; - int mnt_writers; +enum tick_device_mode { + TICKDEV_MODE_PERIODIC = 0, + TICKDEV_MODE_ONESHOT = 1, }; -struct mountpoint { - struct hlist_node m_hash; - struct dentry *m_dentry; - struct hlist_head m_list; - int m_count; -}; +struct clock_event_device; -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 tick_device { + struct clock_event_device *evtdev; + enum tick_device_mode mode; }; -struct fsnotify_iter_info { - struct fsnotify_mark *marks[5]; - struct fsnotify_group *current_group; - unsigned int report_mask; - int srcu_idx; +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 fsnotify_event { +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; }; -struct nsset { - unsigned int flags; - struct nsproxy *nsproxy; - struct fs_struct *fs; - const struct cred *cred; -}; - -enum { - BIAS = 2147483648, -}; - -enum proc_hidepid { - HIDEPID_OFF = 0, - HIDEPID_NO_ACCESS = 1, - HIDEPID_INVISIBLE = 2, - HIDEPID_NOT_PTRACEABLE = 4, +enum tick_broadcast_mode { + TICK_BROADCAST_OFF = 0, + TICK_BROADCAST_ON = 1, + TICK_BROADCAST_FORCE = 2, }; -enum proc_pidonly { - PROC_PIDONLY_OFF = 0, - PROC_PIDONLY_ON = 1, +enum tick_broadcast_state { + TICK_BROADCAST_EXIT = 0, + TICK_BROADCAST_ENTER = 1, }; -enum { - PROC_ENTRY_PERMANENT = 1, +struct __large_struct { + unsigned long buf[100]; }; -typedef unsigned int slab_flags_t; +typedef u32 compat_ulong_t; -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; -}; +typedef u32 compat_old_sigset_t; -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 mempolicy { + atomic_t refcnt; + unsigned short mode; + unsigned short flags; + nodemask_t nodes; + int home_node; + union { + nodemask_t cpuset_mems_allowed; + nodemask_t user_nodemask; + } w; }; -typedef int (*proc_write_t)(struct file *, char *, size_t); +typedef s32 compat_pid_t; -typedef u32 nlink_t; +typedef unsigned long old_sigset_t; -struct proc_ops; +typedef u32 compat_sigset_word; -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]; +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 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); +struct __kernel_old_timeval { + __kernel_long_t tv_sec; + __kernel_long_t tv_usec; }; -struct pde_opener { - struct list_head lh; - struct file *file; - bool closing; - struct completion *c; +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 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; -}; +typedef struct { + compat_sigset_word sig[2]; +} compat_sigset_t; -struct posix_acl_entry { - short e_tag; - unsigned short e_perm; - union { - kuid_t e_uid; - kgid_t e_gid; - }; -}; +struct trace_array_cpu; -struct posix_acl { - refcount_t a_refcount; - struct callback_head a_rcu; - unsigned int a_count; - struct posix_acl_entry a_entries[0]; +struct array_buffer { + struct trace_array *tr; + struct trace_buffer *buffer; + struct trace_array_cpu __attribute__((btf_type_tag("percpu"))) *data; + u64 time_start; + int cpu; }; -struct bio; +struct trace_pid_list; -struct bio_list { - struct bio *head; - struct bio *tail; -}; +struct trace_options; -typedef __u32 blk_opf_t; +struct trace_func_repeats; -typedef u8 blk_status_t; +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[457]; + struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[457]; + 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 eventfs_inode *event_dir; + struct trace_options *topts; + struct list_head systems; + struct list_head events; + struct trace_event_file *trace_marker_file; + cpumask_var_t tracing_cpumask; + cpumask_var_t pipe_cpumask; + int ref; + int trace_ref; + struct ftrace_ops *ops; + struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_pids; + struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_no_pids; + struct list_head func_probes; + struct list_head mod_trace; + struct list_head mod_notrace; + int function_enabled; + int no_filter_buffering_ref; + struct list_head hist_vars; + struct trace_func_repeats __attribute__((btf_type_tag("percpu"))) *last_func_repeats; + bool ring_buffer_expanded; +}; -struct bvec_iter { - sector_t bi_sector; - unsigned int bi_size; - unsigned int bi_idx; - unsigned int bi_bvec_done; -} __attribute__((packed)); +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; +}; -typedef unsigned int blk_qc_t; +union upper_chunk; -typedef void bio_end_io_t(struct bio *); +union lower_chunk; -struct bio_issue { - u64 value; +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; }; -struct blkcg_gq; - -struct bio_set; +struct tracer_flags; -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 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; }; -typedef void *mempool_alloc_t(gfp_t, void *); - -typedef void mempool_free_t(void *, void *); +struct tracer_opt; -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; +struct tracer_flags { + u32 val; + struct tracer_opt *opts; + struct tracer *trace; }; -typedef struct mempool_s mempool_t; +struct tracer_opt { + const char *name; + u32 bit; +}; -struct bio_alloc_cache; +struct filter_pred; -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 prog_entry { + int target; + int when_to_branch; + struct filter_pred *pred; }; -typedef unsigned int blk_mode_t; +union upper_chunk { + union upper_chunk *next; + union lower_chunk *data[256]; +}; -struct block_device_operations; +union lower_chunk { + union lower_chunk *next; + unsigned long data[256]; +}; -struct timer_rand_state; +struct event_subsystem; -struct disk_events; +struct trace_subsystem_dir { + struct list_head list; + struct event_subsystem *subsystem; + struct trace_array *tr; + struct eventfs_inode *ei; + int ref_count; + int nr_events; +}; -struct cdrom_device_info; +struct event_subsystem { + struct list_head list; + const char *name; + struct event_filter *filter; + int ref_count; +}; -struct badblocks; +struct trace_option_dentry; -struct blk_independent_access_ranges; +struct trace_options { + struct tracer *tracer; + struct trace_option_dentry *topts; +}; -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; - blk_mode_t open_mode; - struct blk_independent_access_ranges *ia_ranges; +struct trace_option_dentry { + struct tracer_opt *opt; + struct tracer_flags *flags; + struct trace_array *tr; + struct dentry *entry; }; -struct blk_zone; +struct trace_func_repeats { + unsigned long ip; + unsigned long parent_ip; + unsigned long count; + u64 ts_last_call; +}; -typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); +struct ftrace_graph_ent; -enum blk_unique_id { - BLK_UID_T10 = 1, - BLK_UID_EUI64 = 2, - BLK_UID_NAA = 3, -}; +typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); -struct hd_geometry; +struct ftrace_graph_ret; -struct pr_ops; +typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); -struct block_device_operations { - void (*submit_bio)(struct bio *); - int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int); - int (*open)(struct gendisk *, blk_mode_t); - void (*release)(struct gendisk *); - int (*ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); - int (*compat_ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); - unsigned int (*check_events)(struct gendisk *, unsigned int); - void (*unlock_native_capacity)(struct gendisk *); - int (*getgeo)(struct block_device *, struct hd_geometry *); - int (*set_read_only)(struct block_device *, bool); - void (*free_disk)(struct gendisk *); - void (*swap_slot_free_notify)(struct block_device *, unsigned long); - int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *); - char * (*devnode)(struct gendisk *, umode_t *); - int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id); - struct module *owner; - const struct pr_ops *pr_ops; - int (*alternative_gpt_sector)(struct gendisk *, sector_t *); +struct fgraph_ops { + trace_func_graph_ent_t entryfunc; + trace_func_graph_ret_t retfunc; }; -struct request; +struct ftrace_graph_ent { + unsigned long func; + int depth; +} __attribute__((packed)); -struct io_comp_batch { - struct request *req_list; - bool need_ts; - void (*complete)(struct io_comp_batch *); +struct ftrace_graph_ret { + unsigned long func; + unsigned long retval; + int depth; + unsigned int overrun; + unsigned long long calltime; + unsigned long long rettime; }; -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 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 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, +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, }; -struct pr_keys; - -struct pr_held_reservation; - -struct pr_ops { - int (*pr_register)(struct block_device *, u64, u64, u32); - int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32); - int (*pr_release)(struct block_device *, u64, enum pr_type); - int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool); - int (*pr_clear)(struct block_device *, u64); - int (*pr_read_keys)(struct block_device *, struct pr_keys *); - int (*pr_read_reservation)(struct block_device *, struct pr_held_reservation *); +enum trace_iterator_flags { + TRACE_ITER_PRINT_PARENT = 1, + TRACE_ITER_SYM_OFFSET = 2, + TRACE_ITER_SYM_ADDR = 4, + TRACE_ITER_VERBOSE = 8, + TRACE_ITER_RAW = 16, + TRACE_ITER_HEX = 32, + TRACE_ITER_BIN = 64, + TRACE_ITER_BLOCK = 128, + TRACE_ITER_FIELDS = 256, + TRACE_ITER_PRINTK = 512, + TRACE_ITER_ANNOTATE = 1024, + TRACE_ITER_USERSTACKTRACE = 2048, + TRACE_ITER_SYM_USEROBJ = 4096, + TRACE_ITER_PRINTK_MSGONLY = 8192, + TRACE_ITER_CONTEXT_INFO = 16384, + TRACE_ITER_LATENCY_FMT = 32768, + TRACE_ITER_RECORD_CMD = 65536, + TRACE_ITER_RECORD_TGID = 131072, + TRACE_ITER_OVERWRITE = 262144, + TRACE_ITER_STOP_ON_FREE = 524288, + TRACE_ITER_IRQ_INFO = 1048576, + TRACE_ITER_MARKERS = 2097152, + TRACE_ITER_EVENT_FORK = 4194304, + TRACE_ITER_PAUSE_ON_TRACE = 8388608, + TRACE_ITER_HASH_PTR = 16777216, + TRACE_ITER_FUNCTION = 33554432, + TRACE_ITER_FUNC_FORK = 67108864, + TRACE_ITER_DISPLAY_GRAPH = 134217728, + TRACE_ITER_STACKTRACE = 268435456, }; -enum blk_bounce { - BLK_BOUNCE_NONE = 0, - BLK_BOUNCE_HIGH = 1, +enum { + FTRACE_HASH_FL_MOD = 1, }; -enum blk_zoned_model { - BLK_ZONED_NONE = 0, - BLK_ZONED_HA = 1, - BLK_ZONED_HM = 2, +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, }; -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; +enum { + FLAGS_FILL_FULL = 268435456, + FLAGS_FILL_START = 536870912, + FLAGS_FILL_END = 805306368, }; -struct elevator_queue; - -struct blk_queue_stats; +typedef u64 uint64_t; -struct rq_qos; +struct fgraph_cpu_data { + pid_t last_pid; + int depth; + int depth_irq; + int ignore; + unsigned long enter_funcs[50]; +}; -struct blk_mq_ops; +struct ftrace_graph_ent_entry { + struct trace_entry ent; + struct ftrace_graph_ent graph_ent; +}; -struct blk_mq_ctx; +struct ftrace_graph_ret_entry { + struct trace_entry ent; + struct ftrace_graph_ret ret; +}; -struct blk_mq_tags; +struct ftrace_func_entry { + struct hlist_node hlist; + unsigned long ip; + unsigned long direct; +}; -struct blk_trace; +struct fgraph_data { + struct fgraph_cpu_data __attribute__((btf_type_tag("percpu"))) *cpu_data; + struct ftrace_graph_ent_entry ent; + struct ftrace_graph_ret_entry ret; + int failed; + int cpu; + long: 0; +} __attribute__((packed)); -struct blk_flush_queue; +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 blk_mq_tag_set; +struct bpf_array_aux; -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; - struct mutex rq_qos_mutex; - 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; - 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 flush_list; - 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; +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; }; -enum blk_eh_timer_return { - BLK_EH_DONE = 0, - BLK_EH_RESET_TIMER = 1, +struct bpf_array_aux { + struct list_head poke_progs; + struct bpf_map *map; + struct mutex poke_mutex; + struct work_struct work; }; -struct blk_mq_hw_ctx; - -struct blk_mq_queue_data; +struct fd { + struct file *file; + unsigned int flags; +}; -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 bpf_local_storage_data { + struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap; + u8 data[0]; }; -struct blk_mq_ctxs; +struct bpf_mem_caches; -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 bpf_mem_cache; + +struct bpf_mem_alloc { + struct bpf_mem_caches __attribute__((btf_type_tag("percpu"))) *caches; + struct bpf_mem_cache __attribute__((btf_type_tag("percpu"))) *cache; + bool percpu; + struct work_struct work; }; -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 bpf_local_storage_map_bucket; + +struct bpf_local_storage_map { + struct bpf_map map; + struct bpf_local_storage_map_bucket *buckets; + u32 bucket_log; + u16 elem_size; + u16 cache_idx; + struct bpf_mem_alloc selem_ma; + struct bpf_mem_alloc storage_ma; + bool bpf_ma; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct bio_alloc_cache { - struct bio *free_list; - struct bio *free_list_irq; - unsigned int nr; - unsigned int nr_irq; +struct bpf_local_storage_map_bucket { + struct hlist_head list; + raw_spinlock_t lock; }; -struct blk_independent_access_range { - struct kobject kobj; - sector_t sector; - sector_t nr_sectors; +struct bpf_mem_cache { + struct llist_head free_llist; + local_t active; + struct llist_head free_llist_extra; + struct irq_work refill_work; + struct obj_cgroup *objcg; + int unit_size; + int free_cnt; + int low_watermark; + int high_watermark; + int batch; + int percpu_size; + bool draining; + struct bpf_mem_cache *tgt; + struct llist_head free_by_rcu; + struct llist_node *free_by_rcu_tail; + struct llist_head waiting_for_gp; + struct llist_node *waiting_for_gp_tail; + struct callback_head rcu; + atomic_t call_rcu_in_progress; + struct llist_head free_llist_extra_rcu; + struct llist_head free_by_rcu_ttrace; + struct llist_head waiting_for_gp_ttrace; + struct callback_head rcu_ttrace; + atomic_t call_rcu_ttrace_in_progress; }; -struct blk_independent_access_ranges { - struct kobject kobj; - bool sysfs_registered; - unsigned int nr_ia_ranges; - struct blk_independent_access_range ia_range[0]; +struct bpf_mem_caches { + struct bpf_mem_cache cache[11]; }; -struct partition_meta_info { - char uuid[37]; - u8 volname[64]; +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, }; -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; - struct list_head cb_list; +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 fid { +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 { - u32 ino; - u32 gen; - u32 parent_ino; - u32 parent_gen; - } i32; + 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 block; - u16 partref; - u16 parent_partref; - u32 generation; - u32 parent_block; - u32 parent_generation; - } udf; + 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 { - struct {} __empty_raw; - __u32 raw[0]; + size_t arg1_size; + size_t arg2_size; + size_t arg3_size; + size_t arg4_size; + size_t arg5_size; }; + size_t arg_size[5]; }; + int *ret_btf_id; + bool (*allowed)(const struct bpf_prog *); }; -struct 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 bpf_local_storage_cache { + spinlock_t idx_lock; + u64 idx_usage_counts[16]; }; -struct fiemap_extent { - __u64 fe_logical; - __u64 fe_physical; - __u64 fe_length; - __u64 fe_reserved64[2]; - __u32 fe_flags; - __u32 fe_reserved[3]; +enum { + BPF_LOCAL_STORAGE_GET_F_CREATE = 1, + BPF_SK_STORAGE_GET_F_CREATE = 1, }; -typedef __kernel_ulong_t ino_t; +enum { + BPF_ANY = 0, + BPF_NOEXIST = 1, + BPF_EXIST = 2, + BPF_F_LOCK = 4, +}; -typedef void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t); +enum { + __PERCPU_REF_ATOMIC = 1, + __PERCPU_REF_DEAD = 2, + __PERCPU_REF_ATOMIC_DEAD = 3, + __PERCPU_REF_FLAG_BITS = 2, +}; -typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *); +enum { + CSS_NO_REF = 1, + CSS_ONLINE = 2, + CSS_RELEASED = 4, + CSS_VISIBLE = 8, + CSS_DYING = 16, +}; -typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int); +typedef u64 (*btf_bpf_cgrp_storage_get)(struct bpf_map *, struct cgroup *, void *, u64, gfp_t); -typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int); +typedef u64 (*btf_bpf_cgrp_storage_delete)(struct bpf_map *, struct cgroup *); -typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *); +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 void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int); +struct ldt_struct { + struct desc_struct *entries; + unsigned int nr_entries; + int slot; +}; -typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); +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; +}; -typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, unsigned long); +struct reciprocal_value { + u32 m; + u8 sh1; + u8 sh2; +}; -typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); +struct kmem_cache_order_objects { + unsigned int x; +}; -typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int); +struct kmem_cache_cpu; -typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int); +struct kmem_cache_node; -typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); +struct kmem_cache { + struct kmem_cache_cpu __attribute__((btf_type_tag("percpu"))) *cpu_slab; + slab_flags_t flags; + unsigned long min_partial; + unsigned int size; + unsigned int object_size; + struct reciprocal_value reciprocal_size; + unsigned int offset; + unsigned int cpu_partial; + unsigned int cpu_partial_slabs; + struct kmem_cache_order_objects oo; + struct kmem_cache_order_objects min; + gfp_t allocflags; + int refcount; + void (*ctor)(void *); + unsigned int inuse; + unsigned int align; + unsigned int red_left_pad; + const char *name; + struct list_head list; + struct kobject kobj; + unsigned int remote_node_defrag_ratio; + struct kmem_cache_node *node[64]; +}; -typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); +typedef unsigned __int128 __u128; -typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); +typedef __u128 u128; -typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *); +typedef u128 freelist_full_t; -typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, unsigned long, struct writeback_control *); +typedef union { + struct { + void *freelist; + unsigned long counter; + }; + freelist_full_t full; +} freelist_aba_t; -struct ext4_map_blocks; +typedef struct {} local_lock_t; -typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); +struct slab; -typedef unsigned long long ext4_fsblk_t; +struct kmem_cache_cpu { + union { + struct { + void **freelist; + unsigned long tid; + }; + freelist_aba_t freelist_tid; + }; + struct slab *slab; + struct slab *partial; + local_lock_t lock; +}; -typedef __u32 ext4_lblk_t; +struct slab { + unsigned long __page_flags; + struct kmem_cache *slab_cache; + union { + struct { + union { + struct list_head slab_list; + struct { + struct slab *next; + int slabs; + }; + }; + union { + struct { + void *freelist; + union { + unsigned long counters; + struct { + unsigned int inuse: 16; + unsigned int objects: 15; + unsigned int frozen: 1; + }; + }; + }; + freelist_aba_t freelist_counter; + }; + }; + struct callback_head callback_head; + }; + unsigned int __unused; + atomic_t __page_refcount; + unsigned long memcg_data; +}; -struct ext4_map_blocks { - ext4_fsblk_t m_pblk; - ext4_lblk_t m_lblk; - unsigned int m_len; - unsigned int m_flags; +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_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); +struct compact_control; -typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *); +struct capture_control { + struct compact_control *cc; + struct page *page; +}; -typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *); +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; +}; -typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t); +typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *); -typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t); +typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, unsigned long, unsigned long, unsigned long, int, bool); -typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, unsigned long long, unsigned long long); +typedef void (*btf_trace_mark_victim)(void *, int); -struct ext4_allocation_context; +typedef void (*btf_trace_wake_reaper)(void *, int); -struct ext4_prealloc_space; +typedef void (*btf_trace_start_task_reaping)(void *, int); -typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); +typedef void (*btf_trace_finish_task_reaping)(void *, int); -typedef int ext4_grpblk_t; +typedef void (*btf_trace_skip_task_reaping)(void *, int); -typedef unsigned int ext4_group_t; +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, +}; -struct ext4_free_extent { - ext4_lblk_t fe_logical; - ext4_grpblk_t fe_start; - ext4_group_t fe_group; - ext4_grpblk_t fe_len; +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, }; -struct ext4_locality_group; +typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool); -struct ext4_allocation_context { - struct inode *ac_inode; - struct super_block *ac_sb; - struct ext4_free_extent ac_o_ex; - struct ext4_free_extent ac_g_ex; - struct ext4_free_extent ac_b_ex; - struct ext4_free_extent ac_f_ex; - ext4_grpblk_t ac_orig_goal_len; - __u32 ac_groups_considered; - __u32 ac_flags; - __u16 ac_groups_scanned; - __u16 ac_groups_linear_remaining; - __u16 ac_found; - __u16 ac_cX_found[5]; - __u16 ac_tail; - __u16 ac_buddy; - __u8 ac_status; - __u8 ac_criteria; - __u8 ac_2order; - __u8 ac_op; - struct page *ac_bitmap_page; - struct page *ac_buddy_page; - struct ext4_prealloc_space *ac_pa; - struct ext4_locality_group *ac_lg; +struct trace_print_flags { + unsigned long mask; + const char *name; }; -struct ext4_prealloc_space { - union { - struct rb_node inode_node; - struct list_head lg_list; - } pa_node; - struct list_head pa_group_list; - union { - struct list_head pa_tmp_list; - struct callback_head pa_rcu; - } u; - spinlock_t pa_lock; - atomic_t pa_count; - unsigned int pa_deleted; - ext4_fsblk_t pa_pstart; - ext4_lblk_t pa_lstart; - ext4_grpblk_t pa_len; - ext4_grpblk_t pa_free; - unsigned short pa_type; - union { - rwlock_t *inode_lock; - spinlock_t *lg_lock; - } pa_node_lock; - struct inode *pa_inode; +enum { + MM_FILEPAGES = 0, + MM_ANONPAGES = 1, + MM_SWAPENTS = 2, + MM_SHMEMPAGES = 3, + NR_MM_COUNTERS = 4, }; -struct ext4_locality_group { - struct mutex lg_mutex; - struct list_head lg_prealloc_list[10]; - spinlock_t lg_prealloc_lock; +enum oom_constraint { + CONSTRAINT_NONE = 0, + CONSTRAINT_CPUSET = 1, + CONSTRAINT_MEMORY_POLICY = 2, + CONSTRAINT_MEMCG = 3, }; -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); +enum { + TASK_COMM_LEN = 16, +}; -struct ext4_allocation_request; +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, +}; -typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *); +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, + PGSCAN_ZONE_RECLAIM_FAILED = 39, + PGINODESTEAL = 40, + SLABS_SCANNED = 41, + KSWAPD_INODESTEAL = 42, + KSWAPD_LOW_WMARK_HIT_QUICKLY = 43, + KSWAPD_HIGH_WMARK_HIT_QUICKLY = 44, + PAGEOUTRUN = 45, + PGROTATED = 46, + DROP_PAGECACHE = 47, + DROP_SLAB = 48, + OOM_KILL = 49, + PGMIGRATE_SUCCESS = 50, + PGMIGRATE_FAIL = 51, + THP_MIGRATION_SUCCESS = 52, + THP_MIGRATION_FAIL = 53, + THP_MIGRATION_SPLIT = 54, + COMPACTMIGRATE_SCANNED = 55, + COMPACTFREE_SCANNED = 56, + COMPACTISOLATED = 57, + COMPACTSTALL = 58, + COMPACTFAIL = 59, + COMPACTSUCCESS = 60, + KCOMPACTD_WAKE = 61, + KCOMPACTD_MIGRATE_SCANNED = 62, + KCOMPACTD_FREE_SCANNED = 63, + HTLB_BUDDY_PGALLOC = 64, + HTLB_BUDDY_PGALLOC_FAIL = 65, + UNEVICTABLE_PGCULLED = 66, + UNEVICTABLE_PGSCANNED = 67, + UNEVICTABLE_PGRESCUED = 68, + UNEVICTABLE_PGMLOCKED = 69, + UNEVICTABLE_PGMUNLOCKED = 70, + UNEVICTABLE_PGCLEARED = 71, + UNEVICTABLE_PGSTRANDED = 72, + SWAP_RA = 73, + SWAP_RA_HIT = 74, + DIRECT_MAP_LEVEL2_SPLIT = 75, + DIRECT_MAP_LEVEL3_SPLIT = 76, + NR_VM_EVENT_ITEMS = 77, +}; -struct ext4_allocation_request { - struct inode *inode; - unsigned int len; - ext4_lblk_t logical; - ext4_lblk_t lleft; - ext4_lblk_t lright; - ext4_fsblk_t goal; - ext4_fsblk_t pleft; - ext4_fsblk_t pright; - unsigned int flags; +enum { + CGRP_ROOT_NOPREFIX = 2, + CGRP_ROOT_XATTR = 4, + CGRP_ROOT_NS_DELEGATE = 8, + CGRP_ROOT_FAVOR_DYNMODS = 16, + CGRP_ROOT_CPUSET_V2_MODE = 65536, + CGRP_ROOT_MEMORY_LOCAL_EVENTS = 131072, + CGRP_ROOT_MEMORY_RECURSIVE_PROT = 262144, + CGRP_ROOT_MEMORY_HUGETLB_ACCOUNTING = 524288, }; -typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, unsigned long 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, +}; -typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, unsigned long, int); +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]; +}; -typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int); +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]; +}; -typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int); +struct trace_event_raw_mark_victim { + struct trace_entry ent; + int pid; + char __data[0]; +}; -typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int); +struct trace_event_raw_wake_reaper { + struct trace_entry ent; + int pid; + char __data[0]; +}; -typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *); +struct trace_event_raw_start_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; +}; -typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *); +struct trace_event_raw_finish_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; +}; -typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *); +struct trace_event_raw_skip_task_reaping { + struct trace_entry ent; + int pid; + char __data[0]; +}; -typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); +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]; +}; -typedef void (*btf_trace_ext4_mballoc_free)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); +struct maple_enode; -typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64); +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; +}; -typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); +struct maple_alloc; -typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *); +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; +}; -typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); +struct vma_iterator { + struct ma_state mas; +}; -typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, unsigned long); +struct maple_alloc { + unsigned long total; + unsigned char node_count; + unsigned int request_count; + struct maple_alloc *slot[30]; +}; -typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, unsigned long); +struct encoded_page; -typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, unsigned long); +struct mmu_gather_batch { + struct mmu_gather_batch *next; + unsigned int nr; + unsigned int max; + struct encoded_page *encoded_pages[0]; +}; -typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, unsigned long, bool); +struct mmu_table_batch; -typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int); +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]; +}; -typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int); +struct mmu_table_batch { + struct callback_head rcu; + unsigned int nr; + void *tables[0]; +}; -typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int); +typedef unsigned int zap_flags_t; -typedef void (*btf_trace_ext4_fallocate_exit)(void *, struct inode *, loff_t, unsigned int, int); +struct zap_details { + struct folio *single_folio; + bool even_cows; + zap_flags_t zap_flags; +}; -typedef void (*btf_trace_ext4_unlink_enter)(void *, struct inode *, struct dentry *); +struct trace_event_data_offsets_oom_score_adj_update {}; -typedef void (*btf_trace_ext4_unlink_exit)(void *, struct dentry *, int); +struct trace_event_data_offsets_reclaim_retry_zone {}; -typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *); +struct trace_event_data_offsets_mark_victim {}; -typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *); +struct trace_event_data_offsets_wake_reaper {}; -struct ext4_extent; +struct trace_event_data_offsets_start_task_reaping {}; -typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *); +struct trace_event_data_offsets_finish_task_reaping {}; -typedef __u32 __le32; +struct trace_event_data_offsets_skip_task_reaping {}; -typedef __u16 __le16; +struct trace_event_data_offsets_compact_retry {}; -struct ext4_extent { - __le32 ee_block; - __le16 ee_len; - __le16 ee_start_hi; - __le32 ee_start_lo; +struct task_delay_info { + raw_spinlock_t lock; + u64 blkio_start; + u64 blkio_delay; + u64 swapin_start; + u64 swapin_delay; + u32 blkio_count; + u32 swapin_count; + u64 freepages_start; + u64 freepages_delay; + u64 thrashing_start; + u64 thrashing_delay; + u64 compact_start; + u64 compact_delay; + u64 wpcopy_start; + u64 wpcopy_delay; + u64 irq_delay; + u32 freepages_count; + u32 thrashing_count; + u32 compact_count; + u32 wpcopy_count; + u32 irq_count; }; -typedef void (*btf_trace_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); +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, +}; -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); +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, +}; -typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, unsigned short); +enum { + FOLL_WRITE = 1, + FOLL_GET = 2, + FOLL_DUMP = 4, + FOLL_FORCE = 8, + FOLL_NOWAIT = 16, + FOLL_NOFAULT = 32, + FOLL_HWPOISON = 64, + FOLL_ANON = 128, + FOLL_LONGTERM = 256, + FOLL_SPLIT_PMD = 512, + FOLL_PCI_P2PDMA = 1024, + FOLL_INTERRUPTIBLE = 2048, + FOLL_HONOR_NUMA_FAULT = 4096, +}; -struct partial_cluster; +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, +}; -typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); +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, +}; -struct partial_cluster { - ext4_fsblk_t pclu; - ext4_lblk_t lblk; - enum { - initial = 0, - tofree = 1, - nofree = 2, - } state; +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, }; -typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *); +typedef int rmap_t; -typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); +typedef unsigned long p4dval_t; -typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int); +typedef struct { + p4dval_t p4d; +} p4d_t; -typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16); +struct ptdesc { + unsigned long __page_flags; + union { + struct callback_head pt_rcu_head; + struct list_head pt_list; + struct { + unsigned long _pt_pad_1; + pgtable_t pmd_huge_pte; + }; + }; + unsigned long __page_mapping; + union { + struct mm_struct *pt_mm; + atomic_t pt_frag_refcount; + }; + union { + unsigned long _pt_pad_2; + spinlock_t ptl; + }; + unsigned int __page_type; + atomic_t _refcount; + unsigned long pt_memcg_data; +}; -struct extent_status; +typedef unsigned long pte_marker; -typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *); +struct mem_section_usage; -struct extent_status { - struct rb_node rb_node; - ext4_lblk_t es_lblk; - ext4_lblk_t es_len; - ext4_fsblk_t es_pblk; +struct mem_section { + unsigned long section_mem_map; + struct mem_section_usage *usage; }; -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); +struct mem_section_usage { + unsigned long subsection_map[1]; + unsigned long pageblock_flags[0]; +}; -typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t); +typedef struct { + u64 val; +} pfn_t; -typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *); +typedef int (*pte_fn_t)(pte_t *, unsigned long, void *); -typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t); +typedef unsigned int pgtbl_mod_mask; -typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int); +struct copy_subpage_arg { + struct page *dst; + struct page *src; + struct vm_area_struct *vma; +}; -typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int); +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; +}; -typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int); +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; +}; -typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int); +struct nlm_lockowner; -typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); +struct nfs_lock_info { + u32 state; + struct nlm_lockowner *owner; + struct list_head list; +}; -typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t); +struct nfs4_lock_state; -typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int); +struct nfs4_lock_info { + struct nfs4_lock_state *owner; +}; -typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool); +struct file_lock_operations; -typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64); +struct lock_manager_operations; -typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); +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; +}; -typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64); +struct file_lock_operations { + void (*fl_copy_lock)(struct file_lock *, struct file_lock *); + void (*fl_release_private)(struct file_lock *); +}; -struct ext4_fsmap; +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)(); +}; -typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *); +struct file_lock_context { + spinlock_t flc_lock; + struct list_head flc_flock; + struct list_head flc_posix; + struct list_head flc_lease; +}; -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 files_stat_struct { + unsigned long nr_files; + unsigned long nr_free_files; + unsigned long max_files; }; -typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); +enum task_work_notify_mode { + TWA_NONE = 0, + TWA_RESUME = 1, + TWA_SIGNAL = 2, + TWA_SIGNAL_NO_IPI = 3, +}; -typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *); +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, +}; -typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, unsigned long); +enum { + WORK_STRUCT_PENDING_BIT = 0, + WORK_STRUCT_INACTIVE_BIT = 1, + WORK_STRUCT_PWQ_BIT = 2, + WORK_STRUCT_LINKED_BIT = 3, + WORK_STRUCT_COLOR_SHIFT = 4, + WORK_STRUCT_COLOR_BITS = 4, + WORK_STRUCT_PENDING = 1, + WORK_STRUCT_INACTIVE = 2, + WORK_STRUCT_PWQ = 4, + WORK_STRUCT_LINKED = 8, + WORK_STRUCT_STATIC = 0, + WORK_NR_COLORS = 16, + WORK_CPU_UNBOUND = 64, + WORK_STRUCT_FLAG_BITS = 8, + WORK_OFFQ_FLAG_BASE = 4, + __WORK_OFFQ_CANCELING = 4, + WORK_OFFQ_FLAG_BITS = 1, + WORK_OFFQ_POOL_SHIFT = 5, + WORK_OFFQ_LEFT = 59, + WORK_OFFQ_POOL_BITS = 31, + WORK_BUSY_PENDING = 1, + WORK_BUSY_RUNNING = 2, + WORKER_DESC_LEN = 24, +}; -typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); +enum fsnotify_data_type { + FSNOTIFY_EVENT_NONE = 0, + FSNOTIFY_EVENT_PATH = 1, + FSNOTIFY_EVENT_INODE = 2, + FSNOTIFY_EVENT_DENTRY = 3, + FSNOTIFY_EVENT_ERROR = 4, +}; -typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); +struct backing_file { + struct file file; + struct path user_path; +}; -typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t); +typedef int __kernel_rwf_t; -typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); +typedef void (*task_work_func_t)(struct callback_head *); -typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int); +typedef __kernel_long_t __kernel_old_time_t; -typedef unsigned int tid_t; +struct utimbuf { + __kernel_old_time_t actime; + __kernel_old_time_t modtime; +}; -typedef void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *, tid_t); +struct old_utimbuf32 { + old_time32_t actime; + old_time32_t modtime; +}; -typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int, tid_t); +struct fc_log; -typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *); +struct p_log { + const char *prefix; + struct fc_log *log; +}; -struct jbd2_journal_handle; +enum fs_context_purpose { + FS_CONTEXT_FOR_MOUNT = 0, + FS_CONTEXT_FOR_SUBMOUNT = 1, + FS_CONTEXT_FOR_RECONFIGURE = 2, +}; -typedef struct jbd2_journal_handle handle_t; +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, +}; -typedef void (*btf_trace_ext4_fc_track_create)(void *, handle_t *, struct inode *, struct dentry *, int); +struct fs_context_operations; -struct transaction_s; +struct fs_context { + const struct fs_context_operations *ops; + struct mutex uapi_mutex; + struct file_system_type *fs_type; + void *fs_private; + void *sget_key; + struct dentry *root; + struct user_namespace *user_ns; + struct net *net_ns; + const struct cred *cred; + struct p_log log; + const char *source; + void *security; + void *s_fs_info; + unsigned int sb_flags; + unsigned int sb_flags_mask; + unsigned int s_iflags; + enum fs_context_purpose purpose: 8; + enum fs_context_phase phase: 8; + bool need_free: 1; + bool global: 1; + bool oldapi: 1; + bool exclusive: 1; +}; -typedef struct transaction_s transaction_t; +struct fs_context_operations { + void (*free)(struct fs_context *); + int (*dup)(struct fs_context *, struct fs_context *); + int (*parse_param)(struct fs_context *, struct fs_parameter *); + int (*parse_monolithic)(struct fs_context *, void *); + int (*get_tree)(struct fs_context *); + int (*reconfigure)(struct fs_context *); +}; -struct journal_s; +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, +}; -typedef struct journal_s journal_t; +struct filename; -struct jbd2_journal_handle { +struct fs_parameter { + const char *key; + enum fs_value_type type: 8; union { - transaction_t *h_transaction; - journal_t *h_journal; + char *string; + void *blob; + struct filename *name; + struct file *file; }; - 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; + size_t size; + int dirfd; }; -struct transaction_chp_stats_s { - unsigned long cs_chp_time; - __u32 cs_forced_to_close; - __u32 cs_written; - __u32 cs_dropped; +struct audit_names; + +struct filename { + const char *name; + const char __attribute__((btf_type_tag("user"))) *uptr; + atomic_t refcnt; + struct audit_names *aname; + const char iname[0]; }; -struct journal_head; +struct kioctx_cpu; -struct transaction_s { - journal_t *t_journal; - tid_t t_tid; - enum { - T_RUNNING = 0, - T_LOCKED = 1, - T_SWITCH = 2, - T_FLUSH = 3, - T_COMMIT = 4, - T_COMMIT_DFLUSH = 5, - T_COMMIT_JFLUSH = 6, - T_COMMIT_CALLBACK = 7, - T_FINISHED = 8, - } t_state; - unsigned long t_log_start; - int t_nr_buffers; - struct journal_head *t_reserved_list; - struct journal_head *t_buffers; - struct journal_head *t_forget; - struct journal_head *t_checkpoint_list; - struct journal_head *t_shadow_list; - struct list_head t_inode_list; - 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 ctx_rq_wait; -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 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: 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: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + }; + struct page *internal_pages[8]; + struct file *aio_ring_file; + unsigned int id; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct transaction_stats_s { - unsigned long ts_tid; - unsigned long ts_requested; - struct transaction_run_stats_s run; +struct kioctx_cpu { + unsigned int reqs_available; }; -enum passtype { - PASS_SCAN = 0, - PASS_REVOKE = 1, - PASS_REPLAY = 2, +struct ctx_rq_wait { + struct completion comp; + atomic_t count; }; -struct buffer_head; +typedef unsigned int blk_mode_t; -struct journal_superblock_s; +struct block_device_operations; -typedef struct journal_superblock_s journal_superblock_t; +struct timer_rand_state; -struct jbd2_revoke_table_s; +struct disk_events; -struct jbd2_inode; +struct cdrom_device_info; -struct crypto_shash; +struct badblocks; -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; - 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); - int (*j_bmap)(struct journal_s *, sector_t *); +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; + blk_mode_t open_mode; + struct blk_independent_access_ranges *ia_ranges; }; -typedef void bh_end_io_t(struct buffer_head *, int); +struct blk_zone; -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; -}; +typedef int (*report_zones_cb)(struct blk_zone *, unsigned int, void *); -struct journal_header_s { - __be32 h_magic; - __be32 h_blocktype; - __be32 h_sequence; +enum blk_unique_id { + BLK_UID_T10 = 1, + BLK_UID_EUI64 = 2, + BLK_UID_NAA = 3, }; -typedef struct journal_header_s journal_header_t; +struct hd_geometry; -struct journal_superblock_s { - journal_header_t s_header; - __be32 s_blocksize; - __be32 s_maxlen; - __be32 s_first; - __be32 s_sequence; - __be32 s_start; - __be32 s_errno; - __be32 s_feature_compat; - __be32 s_feature_incompat; - __be32 s_feature_ro_compat; - __u8 s_uuid[16]; - __be32 s_nr_users; - __be32 s_dynsuper; - __be32 s_max_transaction; - __be32 s_max_trans_data; - __u8 s_checksum_type; - __u8 s_padding2[3]; - __be32 s_num_fc_blks; - __be32 s_head; - __u32 s_padding[40]; - __be32 s_checksum; - __u8 s_users[768]; -}; +struct pr_ops; -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 block_device_operations { + void (*submit_bio)(struct bio *); + int (*poll_bio)(struct bio *, struct io_comp_batch *, unsigned int); + int (*open)(struct gendisk *, blk_mode_t); + void (*release)(struct gendisk *); + int (*ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); + int (*compat_ioctl)(struct block_device *, blk_mode_t, unsigned int, unsigned long); + unsigned int (*check_events)(struct gendisk *, unsigned int); + void (*unlock_native_capacity)(struct gendisk *); + int (*getgeo)(struct block_device *, struct hd_geometry *); + int (*set_read_only)(struct block_device *, bool); + void (*free_disk)(struct gendisk *); + void (*swap_slot_free_notify)(struct block_device *, unsigned long); + int (*report_zones)(struct gendisk *, sector_t, unsigned int, report_zones_cb, void *); + char * (*devnode)(struct gendisk *, umode_t *); + int (*get_unique_id)(struct gendisk *, u8 *, enum blk_unique_id); + struct module *owner; + const struct pr_ops *pr_ops; + int (*alternative_gpt_sector)(struct gendisk *, sector_t *); }; -struct crypto_alg; +struct request; -struct crypto_tfm { - refcount_t refcnt; - u32 crt_flags; - int node; - void (*exit)(struct crypto_tfm *); - struct crypto_alg *__crt_alg; - void *__crt_ctx[0]; +struct io_comp_batch { + struct request *req_list; + bool need_ts; + void (*complete)(struct io_comp_batch *); }; -struct crypto_shash { - unsigned int descsize; - struct crypto_tfm base; +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]; }; -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 *); +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 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 pr_keys; -struct crypto_type; +struct pr_held_reservation; -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 pr_ops { + int (*pr_register)(struct block_device *, u64, u64, u32); + int (*pr_reserve)(struct block_device *, u64, enum pr_type, u32); + int (*pr_release)(struct block_device *, u64, enum pr_type); + int (*pr_preempt)(struct block_device *, u64, u64, enum pr_type, bool); + int (*pr_clear)(struct block_device *, u64); + int (*pr_read_keys)(struct block_device *, struct pr_keys *); + int (*pr_read_reservation)(struct block_device *, struct pr_held_reservation *); }; -struct crypto_instance; - -struct crypto_type { - unsigned int (*ctxsize)(struct crypto_alg *, u32, u32); - unsigned int (*extsize)(struct crypto_alg *); - int (*init_tfm)(struct crypto_tfm *); - void (*show)(struct seq_file *, struct crypto_alg *); - int (*report)(struct sk_buff *, struct crypto_alg *); - void (*free)(struct crypto_instance *); - unsigned int type; - unsigned int maskclear; - unsigned int maskset; - unsigned int tfmsize; +enum blk_bounce { + BLK_BOUNCE_NONE = 0, + BLK_BOUNCE_HIGH = 1, }; -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; +enum blk_zoned_model { + BLK_ZONED_NONE = 0, + BLK_ZONED_HA = 1, + BLK_ZONED_HM = 2, }; -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 *); +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; }; -typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int); +struct elevator_queue; -typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int); +struct blk_queue_stats; -typedef void (*btf_trace_ext4_fc_track_inode)(void *, handle_t *, struct inode *, int); +struct rq_qos; -typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long, long, int); +struct blk_mq_ops; -typedef void (*btf_trace_ext4_fc_cleanup)(void *, journal_t *, int, tid_t); +struct blk_mq_ctx; -typedef void (*btf_trace_ext4_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int); +struct blk_mq_tags; -struct ext4_lazy_init { - unsigned long li_state; - struct list_head li_request_list; - struct mutex li_list_mtx; -}; +struct blk_trace; -struct ext4_err_translation { - int code; - int errno; -}; +struct blk_flush_queue; -struct mount_opts { - int token; - int mount_opt; - int flags; -}; +struct blk_mq_tag_set; -struct constant_table { - const char *name; - int value; +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; + struct mutex rq_qos_mutex; + 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; + 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 flush_list; + 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 req_flag_bits { - __REQ_FAILFAST_DEV = 8, - __REQ_FAILFAST_TRANSPORT = 9, - __REQ_FAILFAST_DRIVER = 10, - __REQ_SYNC = 11, - __REQ_META = 12, - __REQ_PRIO = 13, - __REQ_NOMERGE = 14, - __REQ_IDLE = 15, - __REQ_INTEGRITY = 16, - __REQ_FUA = 17, - __REQ_PREFLUSH = 18, - __REQ_RAHEAD = 19, - __REQ_BACKGROUND = 20, - __REQ_NOWAIT = 21, - __REQ_POLLED = 22, - __REQ_ALLOC_CACHE = 23, - __REQ_SWAP = 24, - __REQ_DRV = 25, - __REQ_FS_PRIVATE = 26, - __REQ_NOUNMAP = 27, - __REQ_NR_BITS = 28, -}; - -enum ext4_li_mode { - EXT4_LI_MODE_PREFETCH_BBITMAP = 0, - EXT4_LI_MODE_ITABLE = 1, -}; - -enum { - _DQUOT_USAGE_ENABLED = 0, - _DQUOT_LIMITS_ENABLED = 1, - _DQUOT_SUSPENDED = 2, - _DQUOT_STATE_FLAGS = 3, -}; - -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 blk_eh_timer_return { + BLK_EH_DONE = 0, + BLK_EH_RESET_TIMER = 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 blk_mq_hw_ctx; -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, -}; +struct blk_mq_queue_data; -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, +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 *); }; -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 blk_mq_ctxs; -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 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; }; -enum { - EXT4_MF_MNTDIR_SAMPLED = 0, - EXT4_MF_FS_ABORTED = 1, - EXT4_MF_FC_INELIGIBLE = 2, -}; +struct rchan; -enum stat_group { - STAT_READ = 0, - STAT_WRITE = 1, - STAT_DISCARD = 2, - STAT_FLUSH = 3, - NR_STAT_GROUPS = 4, +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; }; -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 = 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 = 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 = 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, +struct blk_independent_access_range { + struct kobject kobj; + sector_t sector; + sector_t nr_sectors; }; -enum { - IOPRIO_CLASS_NONE = 0, - IOPRIO_CLASS_RT = 1, - IOPRIO_CLASS_BE = 2, - IOPRIO_CLASS_IDLE = 3, - IOPRIO_CLASS_INVALID = 7, +struct blk_independent_access_ranges { + struct kobject kobj; + bool sysfs_registered; + unsigned int nr_ia_ranges; + struct blk_independent_access_range ia_range[0]; }; -enum { - IOPRIO_HINT_NONE = 0, - IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1, - IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2, - IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3, - IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4, - IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5, - IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6, - IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7, +struct partition_meta_info { + char uuid[37]; + u8 volname[64]; }; -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, +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; + struct list_head cb_list; }; -enum ext4_journal_trigger_type { - EXT4_JTR_ORPHAN_FILE = 0, - EXT4_JTR_NONE = 1, +struct fc_log { + refcount_t usage; + u8 head; + u8 tail; + u8 need_free; + struct module *owner; + char *buffer[8]; }; -enum { - DUMP_PREFIX_NONE = 0, - DUMP_PREFIX_ADDRESS = 1, - DUMP_PREFIX_OFFSET = 2, +struct fs_parse_result { + bool negated; + union { + bool boolean; + int int_32; + unsigned int uint_32; + u64 uint_64; + }; }; -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, +struct bdev_handle { + struct block_device *bdev; + void *holder; + blk_mode_t mode; }; enum { - I_DATA_SEM_NORMAL = 0, - I_DATA_SEM_OTHER = 1, - I_DATA_SEM_QUOTA = 2, - I_DATA_SEM_EA = 3, -}; - -enum positive_aop_returns { - AOP_WRITEPAGE_ACTIVATE = 524288, - AOP_TRUNCATED_PAGE = 524289, + 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, }; enum { @@ -19707,1095 +21112,850 @@ enum { SB_FREEZE_COMPLETE = 4, }; -enum tk_offsets { - TK_OFFS_REAL = 0, - TK_OFFS_BOOT = 1, - TK_OFFS_TAI = 2, - TK_OFFS_MAX = 3, +struct fsync_iocb { + struct file *file; + struct work_struct work; + bool datasync; + struct cred *creds; }; -struct ext4_es_tree { - struct rb_root root; - struct extent_status *cache_es; +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; }; -struct ext4_pending_tree { - struct rb_root root; +typedef int kiocb_cancel_fn(struct kiocb *); + +struct io_event { + __u64 data; + __u64 obj; + __s64 res; + __s64 res2; }; -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; +struct aio_kiocb { union { - struct list_head i_orphan; - unsigned int i_orphan_idx; + struct file *ki_filp; + struct kiocb rw; + struct fsync_iocb fsync; + struct poll_iocb poll; }; - struct list_head i_fc_dilist; - struct list_head i_fc_list; - ext4_lblk_t i_fc_lblk_start; - ext4_lblk_t i_fc_lblk_len; - atomic_t i_fc_updates; - wait_queue_head_t i_fc_wait; - struct mutex i_fc_lock; - loff_t i_disksize; - struct rw_semaphore i_data_sem; - struct inode vfs_inode; - struct jbd2_inode *jinode; - spinlock_t i_raw_lock; - struct timespec64 i_crtime; - atomic_t i_prealloc_active; - struct rb_root i_prealloc_node; - rwlock_t i_prealloc_lock; - struct ext4_es_tree i_es_tree; - rwlock_t i_es_lock; - struct list_head i_es_list; - unsigned int i_es_all_nr; - unsigned int i_es_shk_nr; - ext4_lblk_t i_es_shrink_lblk; - ext4_group_t i_last_alloc_group; - unsigned int i_reserved_data_blocks; - struct ext4_pending_tree i_pending_tree; - __u16 i_extra_isize; - u16 i_inline_off; - u16 i_inline_size; - 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 flex_groups { - atomic64_t free_clusters; - atomic_t free_inodes; - atomic_t used_dirs; -}; - -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 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; }; -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]; -}; +typedef __kernel_ulong_t aio_context_t; -struct trace_event_raw_ext4_request_inode { - struct trace_entry ent; - dev_t dev; - ino_t dir; - __u16 mode; - char __data[0]; -}; +typedef unsigned int fgf_t; -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 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 trace_event_raw_ext4_evict_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int nlink; - char __data[0]; +struct aio_poll_table { + struct poll_table_struct pt; + struct aio_kiocb *iocb; + bool queued; + int error; }; -struct trace_event_raw_ext4_drop_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int drop; - char __data[0]; -}; +typedef u32 compat_aio_context_t; -struct trace_event_raw_ext4_nfs_commit_metadata { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; +struct __aio_sigset { + const sigset_t __attribute__((btf_type_tag("user"))) *sigmask; + size_t sigsetsize; }; -struct trace_event_raw_ext4_mark_inode_dirty { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long ip; - char __data[0]; -}; +typedef u32 compat_size_t; -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 __compat_aio_sigset { + compat_uptr_t sigmask; + compat_size_t sigsetsize; }; -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 pseudo_fs_context { + const struct super_operations *ops; + const struct xattr_handler * const *xattr; + const struct dentry_operations *dops; + unsigned long magic; }; -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 aio_ring { + unsigned int id; + unsigned int nr; + unsigned int head; + unsigned int tail; + unsigned int magic; + unsigned int compat_features; + unsigned int incompat_features; + unsigned int header_length; + struct io_event io_events[0]; }; -struct 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]; -}; +typedef __kernel_rwf_t rwf_t; -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 hrtimer_sleeper { + struct hrtimer timer; + struct task_struct *task; }; -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 fid { + union { + struct { + u32 ino; + u32 gen; + u32 parent_ino; + u32 parent_gen; + } i32; + struct { + u64 ino; + u32 gen; + } __attribute__((packed)) i64; + struct { + u32 block; + u16 partref; + u16 parent_partref; + u32 generation; + u32 parent_block; + u32 parent_generation; + } udf; + struct { + struct {} __empty_raw; + __u32 raw[0]; + }; + }; }; -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 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 trace_event_raw_ext4__folio_op { - struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long index; - char __data[0]; +struct kernfs_global_locks { + struct mutex open_file_mutex[1024]; }; -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]; +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 trace_event_raw_ext4_discard_blocks { - struct trace_entry ent; - dev_t dev; - __u64 blk; - __u64 count; - char __data[0]; +enum fid_type { + FILEID_ROOT = 0, + FILEID_INO32_GEN = 1, + FILEID_INO32_GEN_PARENT = 2, + FILEID_BTRFS_WITHOUT_PARENT = 77, + FILEID_BTRFS_WITH_PARENT = 78, + FILEID_BTRFS_WITH_PARENT_ROOT = 79, + FILEID_UDF_WITHOUT_PARENT = 81, + FILEID_UDF_WITH_PARENT = 82, + FILEID_NILFS_WITHOUT_PARENT = 97, + FILEID_NILFS_WITH_PARENT = 98, + FILEID_FAT_WITHOUT_PARENT = 113, + FILEID_FAT_WITH_PARENT = 114, + FILEID_INO64_GEN = 129, + FILEID_INO64_GEN_PARENT = 130, + FILEID_LUSTRE = 151, + FILEID_BCACHEFS_WITHOUT_PARENT = 177, + FILEID_BCACHEFS_WITH_PARENT = 178, + FILEID_KERNFS = 254, + FILEID_INVALID = 255, }; -struct 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 kernfs_super_info { + struct super_block *sb; + struct kernfs_root *root; + const void *ns; + struct list_head node; }; -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 kernfs_syscall_ops; -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 kernfs_root { + struct kernfs_node *kn; + unsigned int flags; + struct idr ino_idr; + u32 last_id_lowbits; + u32 id_highbits; + struct kernfs_syscall_ops *syscall_ops; + struct list_head supers; + wait_queue_head_t deactivate_waitq; + struct rw_semaphore kernfs_rwsem; + struct rw_semaphore kernfs_iattr_rwsem; + struct rw_semaphore kernfs_supers_rwsem; }; -struct 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 simple_xattrs { + struct rb_root rb_root; + rwlock_t lock; }; -struct trace_event_raw_ext4_mb_discard_preallocations { - struct trace_entry ent; - dev_t dev; - int needed; - char __data[0]; +struct kernfs_iattrs { + kuid_t ia_uid; + kgid_t ia_gid; + struct timespec64 ia_atime; + struct timespec64 ia_mtime; + struct timespec64 ia_ctime; + struct simple_xattrs xattrs; + atomic_t nr_user_xattrs; + atomic_t user_xattr_size; }; -struct 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 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 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]; -}; +typedef __u64 __le64; -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 kernfs_fs_context { + struct kernfs_root *root; + void *ns_tag; + unsigned long magic; + bool new_sb_created; }; -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]; +enum netfs_read_from_hole { + NETFS_READ_HOLE_IGNORE = 0, + NETFS_READ_HOLE_CLEAR = 1, + NETFS_READ_HOLE_FAIL = 2, }; -struct trace_event_raw_ext4_sync_file_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int ret; - char __data[0]; -}; +enum netfs_io_source { + NETFS_FILL_WITH_ZEROES = 0, + NETFS_DOWNLOAD_FROM_SERVER = 1, + NETFS_READ_FROM_CACHE = 2, + NETFS_INVALID_READ = 3, +} __attribute__((mode(byte))); -struct trace_event_raw_ext4_sync_fs { - struct trace_entry ent; - dev_t dev; - int wait; - char __data[0]; -}; +enum netfs_io_origin { + NETFS_READAHEAD = 0, + NETFS_READPAGE = 1, + NETFS_READ_FOR_WRITE = 2, +} __attribute__((mode(byte))); -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]; -}; +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, +} __attribute__((mode(byte))); -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]; -}; +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, +} __attribute__((mode(byte))); -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]; -}; +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, +} __attribute__((mode(byte))); -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]; -}; +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, +} __attribute__((mode(byte))); -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 xa_node { + unsigned char shift; + unsigned char offset; + unsigned char count; + unsigned char nr_values; + struct xa_node __attribute__((btf_type_tag("rcu"))) *parent; + struct xarray *array; + union { + struct list_head private_list; + struct callback_head callback_head; + }; + void __attribute__((btf_type_tag("rcu"))) *slots[64]; + union { + unsigned long tags[3]; + unsigned long marks[3]; + }; }; -struct 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 netfs_io_request; -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 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 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 netfs_cache_ops; -struct trace_event_raw_ext4__bitmap_load { - struct trace_entry ent; - dev_t dev; - __u32 group; - char __data[0]; +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 trace_event_raw_ext4_read_block_bitmap_load { - struct trace_entry ent; - dev_t dev; - __u32 group; - bool prefetch; - char __data[0]; -}; +struct netfs_request_ops; -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 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; }; -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]; -}; +typedef void (*netfs_io_terminated_t)(void *, ssize_t, bool); -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]; -}; +typedef __kernel_ulong_t ino_t; -struct trace_event_raw_ext4_unlink_exit { - struct trace_entry ent; - dev_t dev; - ino_t ino; - int ret; - char __data[0]; +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 trace_event_raw_ext4__truncate { - struct trace_entry ent; - dev_t dev; - ino_t ino; - __u64 blocks; - char __data[0]; +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 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 netfs_inode { + struct inode inode; + const struct netfs_request_ops *ops; + loff_t remote_i_size; }; -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]; -}; +typedef void (*xa_update_node_t)(struct xa_node *); -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 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 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]; -}; +typedef unsigned int tid_t; -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 transaction_chp_stats_s { + unsigned long cs_chp_time; + __u32 cs_forced_to_close; + __u32 cs_written; + __u32 cs_dropped; }; -struct trace_event_raw_ext4_load_inode { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; -}; +struct journal_s; -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]; -}; +typedef struct journal_s journal_t; -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 journal_head; -struct trace_event_raw_ext4_journal_start_reserved { - struct trace_entry ent; - dev_t dev; - unsigned long ip; - int blocks; - char __data[0]; -}; +struct transaction_s; -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]; -}; +typedef struct transaction_s transaction_t; -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 transaction_s { + journal_t *t_journal; + tid_t t_tid; + enum { + T_RUNNING = 0, + T_LOCKED = 1, + T_SWITCH = 2, + T_FLUSH = 3, + T_COMMIT = 4, + T_COMMIT_DFLUSH = 5, + T_COMMIT_JFLUSH = 6, + T_COMMIT_CALLBACK = 7, + T_FINISHED = 8, + } t_state; + unsigned long t_log_start; + int t_nr_buffers; + struct journal_head *t_reserved_list; + struct journal_head *t_buffers; + struct journal_head *t_forget; + struct journal_head *t_checkpoint_list; + struct journal_head *t_shadow_list; + struct list_head t_inode_list; + unsigned long t_max_wait; + unsigned long t_start; + unsigned long t_requested; + struct transaction_chp_stats_s t_chp_stats; + atomic_t t_updates; + atomic_t t_outstanding_credits; + atomic_t t_outstanding_revokes; + atomic_t t_handle_count; + transaction_t *t_cpnext; + transaction_t *t_cpprev; + unsigned long t_expires; + ktime_t t_start_time; + unsigned int t_synchronous_commit: 1; + int t_need_data_flush; + struct list_head t_private_list; }; -struct 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 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 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 transaction_stats_s { + unsigned long ts_tid; + unsigned long ts_requested; + struct transaction_run_stats_s run; }; -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]; +enum passtype { + PASS_SCAN = 0, + PASS_REVOKE = 1, + PASS_REPLAY = 2, }; -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 buffer_head; -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 journal_superblock_s; -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]; -}; +typedef struct journal_superblock_s journal_superblock_t; -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 jbd2_revoke_table_s; -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 jbd2_inode; -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 crypto_shash; -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 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; + 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); + int (*j_bmap)(struct journal_s *, sector_t *); }; -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]; -}; +typedef void bh_end_io_t(struct buffer_head *, int); -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 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 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 fiemap_extent; -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 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 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 fiemap_extent { + __u64 fe_logical; + __u64 fe_physical; + __u64 fe_length; + __u64 fe_reserved64[2]; + __u32 fe_flags; + __u32 fe_reserved[3]; }; -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 journal_header_s { + __be32 h_magic; + __be32 h_blocktype; + __be32 h_sequence; }; -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]; -}; +typedef struct journal_header_s journal_header_t; -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 journal_superblock_s { + journal_header_t s_header; + __be32 s_blocksize; + __be32 s_maxlen; + __be32 s_first; + __be32 s_sequence; + __be32 s_start; + __be32 s_errno; + __be32 s_feature_compat; + __be32 s_feature_incompat; + __be32 s_feature_ro_compat; + __u8 s_uuid[16]; + __be32 s_nr_users; + __be32 s_dynsuper; + __be32 s_max_transaction; + __be32 s_max_trans_data; + __u8 s_checksum_type; + __u8 s_padding2[3]; + __be32 s_num_fc_blks; + __be32 s_head; + __u32 s_padding[40]; + __be32 s_checksum; + __u8 s_users[768]; }; -struct 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 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 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 crypto_alg; -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 crypto_tfm { + refcount_t refcnt; + u32 crt_flags; + int node; + void (*exit)(struct crypto_tfm *); + struct crypto_alg *__crt_alg; + void *__crt_ctx[0]; }; -struct trace_event_raw_ext4_shutdown { - struct trace_entry ent; - dev_t dev; - unsigned int flags; - char __data[0]; +struct crypto_shash { + unsigned int descsize; + struct crypto_tfm base; }; -struct trace_event_raw_ext4_error { - struct trace_entry ent; - dev_t dev; - const char *function; - unsigned int line; - char __data[0]; +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 trace_event_raw_ext4_prefetch_bitmaps { - struct trace_entry ent; - dev_t dev; - __u32 group; - __u32 next; - __u32 ios; - char __data[0]; +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 trace_event_raw_ext4_lazy_itable_init { - struct trace_entry ent; - dev_t dev; - __u32 group; - char __data[0]; -}; +struct crypto_type; -struct trace_event_raw_ext4_fc_replay_scan { - struct trace_entry ent; - dev_t dev; - int error; - int off; - char __data[0]; +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 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 crypto_instance; -struct trace_event_raw_ext4_fc_commit_start { - struct trace_entry ent; - dev_t dev; - tid_t tid; - char __data[0]; +struct crypto_type { + unsigned int (*ctxsize)(struct crypto_alg *, u32, u32); + unsigned int (*extsize)(struct crypto_alg *); + int (*init_tfm)(struct crypto_tfm *); + void (*show)(struct seq_file *, struct crypto_alg *); + int (*report)(struct sk_buff *, struct crypto_alg *); + void (*free)(struct crypto_instance *); + unsigned int type; + unsigned int maskclear; + unsigned int maskset; + unsigned int tfmsize; }; -struct 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 jbd2_buffer_trigger_type; -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 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 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 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 *); }; -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]; +enum ext4_li_mode { + EXT4_LI_MODE_PREFETCH_BBITMAP = 0, + EXT4_LI_MODE_ITABLE = 1, }; -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]; +enum req_flag_bits { + __REQ_FAILFAST_DEV = 8, + __REQ_FAILFAST_TRANSPORT = 9, + __REQ_FAILFAST_DRIVER = 10, + __REQ_SYNC = 11, + __REQ_META = 12, + __REQ_PRIO = 13, + __REQ_NOMERGE = 14, + __REQ_IDLE = 15, + __REQ_INTEGRITY = 16, + __REQ_FUA = 17, + __REQ_PREFLUSH = 18, + __REQ_RAHEAD = 19, + __REQ_BACKGROUND = 20, + __REQ_NOWAIT = 21, + __REQ_POLLED = 22, + __REQ_ALLOC_CACHE = 23, + __REQ_SWAP = 24, + __REQ_DRV = 25, + __REQ_FS_PRIVATE = 26, + __REQ_NOUNMAP = 27, + __REQ_NR_BITS = 28, }; -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]; +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, }; -struct trace_event_raw_ext4_update_sb { - struct trace_entry ent; - dev_t dev; - ext4_fsblk_t fsblk; - unsigned int flags; - char __data[0]; +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, }; -typedef __u64 __le64; +typedef __u16 __le16; -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; +typedef __u32 __le32; + +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; }; +typedef unsigned long long ext4_fsblk_t; + +typedef unsigned int ext4_group_t; + struct ext4_orphan_block; struct ext4_orphan_info { @@ -20850,12 +22010,18 @@ struct ext4_fc_replay_state { int fc_modified_inodes_size; }; +struct ext4_super_block; + struct blockgroup_lock; struct ext4_system_blocks; struct ext4_group_info; +struct ext4_locality_group; + +struct flex_groups; + struct ext4_li_request; struct mb_cache; @@ -20917,7 +22083,7 @@ struct ext4_sb_info { unsigned long s_commit_interval; u32 s_max_batch_time; u32 s_min_batch_time; - struct block_device *s_journal_bdev; + struct bdev_handle *s_journal_bdev_handle; char __attribute__((btf_type_tag("rcu"))) *s_qf_names[3]; int s_jquota_fmt; unsigned int s_want_extra_isize; @@ -20929,7 +22095,7 @@ struct ext4_sb_info { 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_freed_data_list[2]; struct list_head s_discard_list; struct work_struct s_discard_work; atomic_t s_retry_alloc_pending; @@ -20988,17 +22154,13 @@ struct ext4_sb_info { unsigned long s_last_trim_minblks; struct crypto_shash *s_chksum_driver; __u32 s_csum_seed; - struct shrinker s_es_shrinker; + struct shrinker *s_es_shrinker; struct list_head s_es_list; long s_es_nr_inode; struct ext4_es_stats s_es_stats; struct mb_cache *s_ea_block_cache; struct mb_cache *s_ea_inode_cache; long: 64; - long: 64; - long: 64; - long: 64; - long: 64; spinlock_t s_es_lock; struct ext4_journal_trigger s_journal_triggers[1]; struct ratelimit_state s_err_ratelimit_state; @@ -21026,7 +22188,7 @@ struct ext4_sb_info { __u64 s_last_error_block; const char *s_last_error_func; time64_t s_last_error_time; - struct work_struct s_error_work; + struct work_struct s_sb_upd_work; atomic_t s_fc_subtid; struct list_head s_fc_q[2]; struct list_head s_fc_dentry_q[2]; @@ -21045,506 +22207,1005 @@ struct ext4_sb_info { long: 64; }; -struct bgl_lock { - spinlock_t lock; - 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; -}; - -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_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 ext4_journal_cb_entry { - struct list_head jce_list; - void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); -}; - -struct shash_desc { - struct crypto_shash *tfm; - void *__ctx[0]; +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 fs_error_report { - int error; - struct inode *inode; - struct super_block *sb; +struct bgl_lock { + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 blockgroup_lock { + struct bgl_lock locks[128]; }; -typedef enum { - EXT4_IGET_NORMAL = 0, - EXT4_IGET_SPECIAL = 1, - EXT4_IGET_HANDLE = 2, - EXT4_IGET_BAD = 4, - EXT4_IGET_EA_INODE = 8, -} ext4_iget_flags; - -struct ext4_fs_context { - char *s_qf_names[3]; - struct fscrypt_dummy_policy dummy_enc_policy; - int s_jquota_fmt; - unsigned short qname_spec; - unsigned long vals_s_flags; - unsigned long mask_s_flags; - unsigned long journal_devnum; - unsigned long s_commit_interval; - unsigned long s_stripe; - unsigned int s_inode_readahead_blks; - unsigned int s_want_extra_isize; - unsigned int s_li_wait_mult; - unsigned int s_max_dir_size_kb; - unsigned int journal_ioprio; - unsigned int vals_s_mount_opt; - unsigned int mask_s_mount_opt; - unsigned int vals_s_mount_opt2; - unsigned int mask_s_mount_opt2; - unsigned 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_orphan_block { + atomic_t ob_free_entries; + struct buffer_head *ob_bh; }; -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 ext4_system_blocks { + struct rb_root root; + struct callback_head rcu; }; -typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); - -struct trace_event_data_offsets_ext4_other_inode_update_time {}; - -struct trace_event_data_offsets_ext4_free_inode {}; +typedef int ext4_grpblk_t; -struct trace_event_data_offsets_ext4_request_inode {}; +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 trace_event_data_offsets_ext4_allocate_inode {}; +struct ext4_locality_group { + struct mutex lg_mutex; + struct list_head lg_prealloc_list[10]; + spinlock_t lg_prealloc_lock; +}; -struct trace_event_data_offsets_ext4_evict_inode {}; +struct flex_groups { + atomic64_t free_clusters; + atomic_t free_inodes; + atomic_t used_dirs; +}; -struct trace_event_data_offsets_ext4_drop_inode {}; +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 trace_event_data_offsets_ext4_nfs_commit_metadata {}; +typedef __u32 ext4_lblk_t; -struct trace_event_data_offsets_ext4_mark_inode_dirty {}; +struct ext4_fc_alloc_region { + ext4_lblk_t lblk; + ext4_fsblk_t pblk; + int ino; + int len; +}; -struct trace_event_data_offsets_ext4_begin_ordered_truncate {}; +struct shash_desc { + struct crypto_shash *tfm; + void *__ctx[0]; +}; -struct trace_event_data_offsets_ext4__write_begin {}; +struct rpc_timer { + struct list_head list; + unsigned long expires; + struct delayed_work dwork; +}; -struct trace_event_data_offsets_ext4__write_end {}; +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 trace_event_data_offsets_ext4_writepages {}; +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 trace_event_data_offsets_ext4_da_write_pages {}; +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; +}; -struct trace_event_data_offsets_ext4_da_write_pages_extent {}; +typedef struct nfs4_stateid_struct nfs4_stateid; -struct trace_event_data_offsets_ext4_writepages_result {}; +struct nfs4_state; -struct trace_event_data_offsets_ext4__folio_op {}; +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 trace_event_data_offsets_ext4_invalidate_folio_op {}; +struct nfs4_state_owner; -struct trace_event_data_offsets_ext4_discard_blocks {}; +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 trace_event_data_offsets_ext4__mb_new_pa {}; +struct nfs_server; -struct trace_event_data_offsets_ext4_mb_release_inode_pa {}; +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 trace_event_data_offsets_ext4_mb_release_group_pa {}; +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 trace_event_data_offsets_ext4_discard_preallocations {}; +struct nfs_fsid { + uint64_t major; + uint64_t minor; +}; -struct trace_event_data_offsets_ext4_mb_discard_preallocations {}; +typedef u32 rpc_authflavor_t; -struct trace_event_data_offsets_ext4_request_blocks {}; +struct nfs_auth_info { + unsigned int flavor_len; + rpc_authflavor_t flavors[12]; +}; -struct trace_event_data_offsets_ext4_allocate_blocks {}; +struct pnfs_layoutdriver_type; -struct trace_event_data_offsets_ext4_free_blocks {}; +struct ida { + struct xarray xa; +}; -struct trace_event_data_offsets_ext4_sync_file_enter {}; +struct __kernel_sockaddr_storage { + union { + struct { + __kernel_sa_family_t ss_family; + char __data[126]; + }; + void *__align; + }; +}; -struct trace_event_data_offsets_ext4_sync_file_exit {}; +struct nfs_client; -struct trace_event_data_offsets_ext4_sync_fs {}; +struct rpc_clnt; -struct trace_event_data_offsets_ext4_alloc_da_blocks {}; +struct nlm_host; -struct trace_event_data_offsets_ext4_mballoc_alloc {}; +struct nfs_iostats; -struct trace_event_data_offsets_ext4_mballoc_prealloc {}; +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; + int s_sysfs_id; + __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 delegation_gen; + 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; + struct kobject kobj; +}; -struct trace_event_data_offsets_ext4__mballoc {}; +enum xprtsec_policies { + RPC_XPRTSEC_NONE = 0, + RPC_XPRTSEC_TLS_ANON = 1, + RPC_XPRTSEC_TLS_X509 = 2, +}; -struct trace_event_data_offsets_ext4_forget {}; +struct xprtsec_parms { + enum xprtsec_policies policy; + key_serial_t cert_serial; + key_serial_t privkey_serial; +}; -struct trace_event_data_offsets_ext4_da_update_reserve_space {}; +typedef struct { + char data[8]; +} nfs4_verifier; -struct trace_event_data_offsets_ext4_da_reserve_space {}; +struct nfs41_server_owner; -struct trace_event_data_offsets_ext4_da_release_space {}; +struct nfs41_server_scope; -struct trace_event_data_offsets_ext4__bitmap_load {}; +struct nfs41_impl_id; -struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; +struct nfs_rpc_ops; -struct trace_event_data_offsets_ext4__fallocate_mode {}; +struct nfs_subversion; -struct trace_event_data_offsets_ext4_fallocate_exit {}; +struct idmap; -struct trace_event_data_offsets_ext4_unlink_enter {}; +struct nfs4_minor_version_ops; -struct trace_event_data_offsets_ext4_unlink_exit {}; +struct nfs4_slot_table; -struct trace_event_data_offsets_ext4__truncate {}; +struct nfs4_session; -struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {}; +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 xprtsec_parms cl_xprtsec; + 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 trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {}; +struct rpc_xprt_switch; -struct trace_event_data_offsets_ext4__map_blocks_enter {}; +struct rpc_xprt; -struct trace_event_data_offsets_ext4__map_blocks_exit {}; +struct rpc_xprt_iter_ops; -struct trace_event_data_offsets_ext4_ext_load_extent {}; +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 trace_event_data_offsets_ext4_load_inode {}; +struct rpc_pipe_dir_head { + struct list_head pdh_entries; + struct dentry *pdh_dentry; +}; -struct trace_event_data_offsets_ext4_journal_start_sb {}; +struct rpc_rtt { + unsigned long timeo; + unsigned long srtt[5]; + unsigned long sdrtt[5]; + int ntimeouts[5]; +}; -struct trace_event_data_offsets_ext4_journal_start_inode {}; +struct rpc_timeout { + unsigned long to_initval; + unsigned long to_maxval; + unsigned long to_increment; + unsigned int to_retries; + unsigned char to_exponential; +}; -struct trace_event_data_offsets_ext4_journal_start_reserved {}; +struct rpc_procinfo; -struct trace_event_data_offsets_ext4__trim {}; +struct rpc_auth; -struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {}; +struct rpc_stat; -struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; +struct rpc_iostats; -struct trace_event_data_offsets_ext4_ext_show_extent {}; +struct rpc_program; -struct trace_event_data_offsets_ext4_remove_blocks {}; +struct rpc_sysfs_client; -struct trace_event_data_offsets_ext4_ext_rm_leaf {}; +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; + unsigned int cl_shutdown: 1; + struct xprtsec_parms cl_xprtsec; + 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 super_block *pipefs_sb; +}; -struct trace_event_data_offsets_ext4_ext_rm_idx {}; +struct rpc_xprt_ops; -struct trace_event_data_offsets_ext4_ext_remove_space {}; +struct rpc_task; -struct trace_event_data_offsets_ext4_ext_remove_space_done {}; +struct svc_xprt; -struct trace_event_data_offsets_ext4__es_extent {}; +struct xprt_class; -struct trace_event_data_offsets_ext4_es_remove_extent {}; +struct rpc_sysfs_xprt; -struct trace_event_data_offsets_ext4_es_find_extent_range_enter {}; +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; + struct xprtsec_parms xprtsec; + 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 trace_event_data_offsets_ext4_es_find_extent_range_exit {}; +struct rpc_rqst; -struct trace_event_data_offsets_ext4_es_lookup_extent_enter {}; +struct xdr_buf; -struct trace_event_data_offsets_ext4_es_lookup_extent_exit {}; +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 trace_event_data_offsets_ext4__es_shrink_enter {}; +struct rpc_wait { + struct list_head list; + struct list_head links; + struct list_head timer_list; +}; -struct trace_event_data_offsets_ext4_es_shrink_scan_exit {}; +struct rpc_message { + const struct rpc_procinfo *rpc_proc; + void *rpc_argp; + void *rpc_resp; + const struct cred *rpc_cred; +}; -struct trace_event_data_offsets_ext4_collapse_range {}; +struct rpc_call_ops; -struct trace_event_data_offsets_ext4_insert_range {}; +struct rpc_cred; -struct trace_event_data_offsets_ext4_es_shrink {}; +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; +}; -struct trace_event_data_offsets_ext4_es_insert_delayed_block {}; +struct xdr_stream; -struct trace_event_data_offsets_ext4_fsmap_class {}; +typedef void (*kxdreproc_t)(struct rpc_rqst *, struct xdr_stream *, const void *); -struct trace_event_data_offsets_ext4_getfsmap_class {}; +typedef int (*kxdrdproc_t)(struct rpc_rqst *, struct xdr_stream *, void *); -struct trace_event_data_offsets_ext4_shutdown {}; +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 trace_event_data_offsets_ext4_error {}; +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 trace_event_data_offsets_ext4_prefetch_bitmaps {}; +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 trace_event_data_offsets_ext4_lazy_itable_init {}; +struct rpc_credops; -struct trace_event_data_offsets_ext4_fc_replay_scan {}; +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 trace_event_data_offsets_ext4_fc_replay {}; +struct rpc_authops; -struct trace_event_data_offsets_ext4_fc_commit_start {}; +struct rpc_cred_cache; -struct trace_event_data_offsets_ext4_fc_commit_stop {}; +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 trace_event_data_offsets_ext4_fc_stats {}; +struct rpc_auth_create_args; -struct trace_event_data_offsets_ext4_fc_track_dentry {}; +struct auth_cred; -struct trace_event_data_offsets_ext4_fc_track_inode {}; +struct rpcsec_gss_info; -struct trace_event_data_offsets_ext4_fc_track_range {}; +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 *); + int (*ping)(struct rpc_clnt *); +}; -struct trace_event_data_offsets_ext4_fc_cleanup {}; +struct rpc_auth_create_args { + rpc_authflavor_t pseudoflavor; + const char *target_name; +}; -struct trace_event_data_offsets_ext4_update_sb {}; +struct auth_cred { + const struct cred *cred; + const char *principal; +}; -struct __va_list_tag { - unsigned int gp_offset; - unsigned int fp_offset; - void *overflow_arg_area; - void *reg_save_area; +struct rpcsec_gss_oid { + unsigned int len; + u8 data[32]; }; -typedef __builtin_va_list va_list; +struct rpcsec_gss_info { + struct rpcsec_gss_oid oid; + u32 qop; + u32 service; +}; -struct va_format { - const char *fmt; - va_list *va; +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 *); }; -enum autofs_notify { - NFY_NONE = 0, - NFY_MOUNT = 1, - NFY_EXPIRE = 2, +struct xdr_stream { + __be32 *p; + struct xdr_buf *buf; + __be32 *end; + struct kvec *iov; + struct kvec scratch; + struct page **page_ptr; + void *page_kaddr; + unsigned int nwords; + struct rpc_rqst *rqst; }; -enum dentry_d_lock_class { - DENTRY_D_LOCK_NORMAL = 0, - DENTRY_D_LOCK_NESTED = 1, +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 autofs_wait_queue; +struct xprt_create; -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; +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; - unsigned long exp_timeout; - unsigned int type; - struct super_block *sb; - struct mutex wq_mutex; - struct mutex pipe_mutex; - spinlock_t fs_lock; - struct autofs_wait_queue *queues; - spinlock_t lookup_lock; - struct list_head active_list; - struct list_head expiring_list; - struct callback_head rcu; + struct xprtsec_parms xprtsec; + unsigned long connect_timeout; + unsigned long reconnect_timeout; }; -typedef unsigned int autofs_wqt_t; +struct rpc_sysfs_xprt_switch; -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 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 autofs_packet_hdr { - int proto_version; - int type; +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 autofs_packet_expire { - struct autofs_packet_hdr hdr; - int len; - char name[256]; +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 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 rpc_version; -struct ipc_namespace { - struct ipc_ids ids[3]; - int sem_ctls[4]; - int used_sems; - unsigned int msg_ctlmax; - unsigned int msg_ctlmnb; - unsigned int msg_ctlmni; - struct percpu_counter percpu_msg_bytes; - struct percpu_counter percpu_msg_hdrs; - size_t shm_ctlmax; - size_t shm_ctlall; - unsigned long shm_tot; - int shm_ctlmni; - int shm_rmid_forced; - struct notifier_block ipcns_nb; - struct vfsmount *mq_mnt; - unsigned int mq_queues_count; - unsigned int mq_queues_max; - unsigned int mq_msg_max; - unsigned int mq_msgsize_max; - unsigned int mq_msg_default; - unsigned int mq_msgsize_default; - struct ctl_table_set mq_set; - struct ctl_table_header *mq_sysctls; - struct ctl_table_set ipc_set; - struct ctl_table_header *ipc_sysctls; - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct llist_node mnt_llist; - struct ns_common ns; +struct rpc_program { + const char *name; + u32 number; + unsigned int nrvers; + const struct rpc_version **version; + struct rpc_stat *stats; + const char *pipe_dir_name; }; -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, +struct rpc_version { + u32 number; + unsigned int nrprocs; + const struct rpc_procinfo *procs; + unsigned int *counts; }; -typedef int __kernel_key_t; - -typedef __kernel_key_t key_t; - -struct kern_ipc_perm { - spinlock_t lock; - bool deleted; - int id; - key_t key; - kuid_t uid; - kgid_t gid; - kuid_t cuid; - kgid_t cgid; - umode_t mode; - unsigned long seq; - void *security; - struct rhash_head khtnode; - struct callback_head rcu; - refcount_t refcount; +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; @@ -21552,791 +23213,718 @@ struct kern_ipc_perm { long: 64; }; -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 rpc_sysfs_client { + struct kobject kobject; + struct net *net; + struct rpc_clnt *clnt; + struct rpc_xprt_switch *xprt_switch; }; -struct class_datum; +struct nlmclnt_operations; -struct role_datum; +struct nfs_fh; -struct user_datum; +struct nfs_fsinfo; -struct type_datum; +struct nfs_fattr; -struct cond_bool_datum; +struct nfs_access_entry; -struct cond_node; +struct nfs_unlinkdata; -struct role_allow; +struct nfs_renamedata; -struct ocontext; +struct nfs_readdir_arg; -struct genfs; +struct nfs_readdir_res; -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 nfs_fsstat; -struct hashtab_node { - void *key; - void *datum; - struct hashtab_node *next; -}; +struct nfs_pathconf; -struct common_datum; +struct nfs_entry; -struct constraint_node; +struct nfs_pgio_header; -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 nfs_commit_data; -struct common_datum { - u32 value; - struct symtab permissions; -}; +struct nfs_open_context; -struct constraint_expr; +struct nfs_client_initdata; -struct constraint_node { - u32 permissions; - struct constraint_expr *expr; - struct constraint_node *next; +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 folio *, 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 *); }; -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 nlmclnt_operations { + void (*nlmclnt_alloc_call)(void *); + bool (*nlmclnt_unlock_prepare)(struct rpc_task *, void *); + void (*nlmclnt_release_call)(void *); }; -struct ebitmap_node { - struct ebitmap_node *next; - unsigned long maps[6]; - u32 startbit; +struct nfs_fh { + unsigned short size; + unsigned char data[128]; }; -struct type_set { - struct ebitmap types; - struct ebitmap negset; - u32 flags; +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 role_datum { - u32 value; - u32 bounds; - struct ebitmap dominates; - struct ebitmap types; -}; +struct nfs4_string; -struct mls_level { - u32 sens; - struct ebitmap cat; -}; +struct nfs4_threshold; -struct mls_range { - struct mls_level level[2]; -}; +struct nfs4_label; -struct user_datum { - u32 value; - u32 bounds; - struct ebitmap roles; - struct mls_range range; - struct mls_level dfltlevel; +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 type_datum { - u32 value; - u32 bounds; - unsigned char primary; - unsigned char attribute; +struct nfs4_string { + unsigned int len; + char *data; }; -struct avtab_key { - u16 source_type; - u16 target_type; - u16 target_class; - u16 specified; +struct nfs4_threshold { + __u32 bm; + __u32 l_type; + __u64 rd_sz; + __u64 wr_sz; + __u64 rd_io_sz; + __u64 wr_io_sz; }; -struct avtab_extended_perms; - -struct avtab_datum { - union { - u32 data; - struct avtab_extended_perms *xperms; - } u; +struct nfs4_label { + uint32_t lfs; + uint32_t pi; + u32 len; + char *label; }; -struct avtab_node { - struct avtab_key key; - struct avtab_datum datum; - struct avtab_node *next; +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 extended_perms_data { - u32 p[8]; -}; +struct nfs4_slot; -struct avtab_extended_perms { - u8 specified; - u8 driver; - struct extended_perms_data perms; +struct nfs4_sequence_args { + struct nfs4_slot *sa_slot; + u8 sa_cache_this: 1; + u8 sa_privileged: 1; }; -struct cond_bool_datum { - __u32 value; - int state; +struct nfs_removeargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + struct qstr name; }; -struct cond_expr_node; - -struct cond_expr { - struct cond_expr_node *nodes; - u32 len; +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 cond_av_list { - struct avtab_node **nodes; - u32 len; +struct nfs4_change_info { + u32 atomic; + u64 before; + u64 after; }; -struct cond_node { - int cur_state; - struct cond_expr expr; - struct cond_av_list true_list; - struct cond_av_list false_list; +struct nfs_removeres { + struct nfs4_sequence_res seq_res; + struct nfs_server *server; + struct nfs_fattr *dir_attr; + struct nfs4_change_info cinfo; }; -struct cond_expr_node { - u32 expr_type; - u32 boolean; +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 role_allow { - u32 role; - u32 new_role; - struct role_allow *next; +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 context { - u32 user; - u32 role; - u32 type; - u32 len; - struct mls_range range; - char *str; +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 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 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 genfs { - char *fstype; - struct ocontext *head; - struct genfs *next; +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 policy_file { - char *data; - size_t len; +struct nfs_readdir_res { + __be32 *verf; }; -struct cond_insertf_data { - struct policydb *p; - struct avtab_node **dst; - struct cond_av_list *other; +struct nfs_fsstat { + struct nfs_fattr *fattr; + __u64 tbytes; + __u64 fbytes; + __u64 abytes; + __u64 tfiles; + __u64 ffiles; + __u64 afiles; }; -struct extended_perms_decision { - u8 used; - u8 driver; - struct extended_perms_data *allowed; - struct extended_perms_data *auditallow; - struct extended_perms_data *dontaudit; +struct nfs_pathconf { + struct nfs_fattr *fattr; + __u32 max_link; + __u32 max_namelen; }; -struct extended_perms { - u16 len; - struct extended_perms_data drivers; +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 policy_data { - struct policydb *p; - void *fp; +struct nfs_write_verifier { + char data[8]; }; -struct av_decision { - u32 allowed; - u32 auditallow; - u32 auditdeny; - u32 seqno; - u32 flags; +enum nfs3_stable_how { + NFS_UNSTABLE = 0, + NFS_DATA_SYNC = 1, + NFS_FILE_SYNC = 2, + NFS_INVALID_STABLE_HOW = -1, }; -struct crypto_template; - -struct crypto_spawn; - -struct crypto_instance { - struct crypto_alg alg; - struct crypto_template *tmpl; - union { - struct hlist_node list; - struct crypto_spawn *spawns; - }; - void *__ctx[0]; +struct nfs_writeverf { + struct nfs_write_verifier verifier; + enum nfs3_stable_how committed; }; -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 nfs_lock_context; -struct crypto_spawn { - struct list_head list; - struct crypto_alg *alg; +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 { - struct crypto_instance *inst; - struct crypto_spawn *next; + unsigned int replen; + struct { + const u32 *bitmask; + u32 bitmask_store[3]; + enum nfs3_stable_how stable; + }; }; - const struct crypto_type *frontend; - u32 mask; - bool dead; - bool registered; -}; - -struct hash_alg_common { - unsigned int digestsize; - unsigned int statesize; - struct crypto_alg base; }; -struct shash_alg { - int (*init)(struct shash_desc *); - int (*update)(struct shash_desc *, const u8 *, unsigned int); - int (*final)(struct shash_desc *, u8 *); - int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); - int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); - int (*export)(struct shash_desc *, void *); - int (*import)(struct shash_desc *, const void *); - int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); - int (*init_tfm)(struct crypto_shash *); - void (*exit_tfm)(struct crypto_shash *); - int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *); - unsigned int descsize; +struct nfs_pgio_res { + struct nfs4_sequence_res seq_res; + struct nfs_fattr *fattr; + __u64 count; + __u32 op_status; union { struct { - unsigned int digestsize; - unsigned int statesize; - struct crypto_alg base; + unsigned int replen; + int eof; + void *scratch; + }; + struct { + struct nfs_writeverf *verf; + const struct nfs_server *server; }; - struct hash_alg_common halg; }; }; -struct md5_state { - u32 hash[4]; - u32 block[16]; - u64 byte_count; -}; - -struct crypto_skcipher; - -struct skcipher_request; - -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 nfs_page_array { + struct page **pagevec; + unsigned int npages; + struct page *page_array[8]; }; -struct crypto_skcipher { - unsigned int reqsize; - struct crypto_tfm base; -}; +struct nfs_page; -typedef void (*crypto_completion_t)(void *, int); +struct pnfs_layout_segment; -struct crypto_async_request { - struct list_head list; - crypto_completion_t complete; - void *data; - struct crypto_tfm *tfm; - u32 flags; -}; +struct nfs_pgio_completion_ops; -struct skcipher_request { - unsigned int cryptlen; - u8 *iv; - struct scatterlist *src; - struct scatterlist *dst; - struct crypto_async_request base; - void *__ctx[0]; -}; +struct nfs_rw_ops; -struct crypto_aead; +struct nfs_io_completion; -struct aead_request; +struct nfs_direct_req; -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 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 aead_instance { - void (*free)(struct aead_instance *); +struct nfs_page { + struct list_head wb_list; union { - struct { - char head[64]; - struct crypto_instance base; - } s; - struct aead_alg alg; + 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 crypto_aead { - unsigned int authsize; - unsigned int reqsize; - struct crypto_tfm base; -}; - -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 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 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 statesize; - unsigned int reqsize; - struct crypto_tfm base; +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 ahash_request { - struct crypto_async_request base; - unsigned int nbytes; - struct scatterlist *src; - u8 *result; - void *priv; - void *__ctx[0]; +struct pnfs_layout_range { + u32 iomode; + u64 offset; + u64 length; }; -typedef __u64 __be64; +struct pnfs_layout_hdr; -struct crypto_aead_spawn { - struct crypto_spawn base; +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 crypto_rfc4543_instance_ctx { - struct crypto_aead_spawn aead; +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 crypto_ahash_spawn { - struct crypto_spawn base; +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 crypto_skcipher_spawn { - struct crypto_spawn base; +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 gcm_instance_ctx { - struct crypto_skcipher_spawn ctr; - struct crypto_ahash_spawn ghash; +struct nfs_mds_commit_info { + atomic_t rpcs_out; + atomic_long_t ncommit; + struct list_head list; }; -struct crypto_wait { +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; - int err; + struct nfs_mds_commit_info mds_cinfo; + struct pnfs_ds_commit_info ds_cinfo; + struct work_struct work; + int flags; }; -typedef struct { - __be64 a; - __be64 b; -} be128; +struct nfs_commitargs { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + __u64 offset; + __u32 count; + const u32 *bitmask; +}; -struct crypto_gcm_ghash_ctx { - unsigned int cryptlen; - struct scatterlist *src; - int (*complete)(struct aead_request *, u32); +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 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 nfs_commit_completion_ops; -struct crypto_sync_skcipher { - struct crypto_skcipher base; +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 crypto_rfc4543_ctx { - struct crypto_aead *child; - struct crypto_sync_skcipher *null; - u8 nonce[4]; -}; +struct nfs_commit_info; -struct crypto_rfc4106_ctx { - struct crypto_aead *child; - u8 nonce[4]; +struct nfs_commit_completion_ops { + void (*completion)(struct nfs_commit_data *); + void (*resched_write)(struct nfs_commit_info *, struct nfs_page *); }; -struct crypto_rfc4106_req_ctx { - struct scatterlist src[3]; - struct scatterlist dst[3]; - struct aead_request subreq; +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 crypto_rfc4543_req_ctx { - struct aead_request subreq; +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 xprtsec_parms xprtsec; + unsigned long connect_timeout; + unsigned long reconnect_timeout; }; -enum mq_rq_state { - MQ_RQ_IDLE = 0, - MQ_RQ_IN_FLIGHT = 1, - MQ_RQ_COMPLETE = 2, +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 * const *xattr; + struct list_head list; }; -enum rq_end_io_ret { - RQ_END_IO_NONE = 0, - RQ_END_IO_FREE = 1, -}; +struct nfs_seqid; -enum rq_qos_id { - RQ_QOS_WBT = 0, - RQ_QOS_LATENCY = 1, - RQ_QOS_COST = 2, -}; +struct nfs4_state_recovery_ops; -struct rq_wait; +struct nfs4_state_maintenance_ops; -typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); +struct nfs4_mig_recovery_ops; -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 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; }; -typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t); - -struct __call_single_data { - struct __call_single_node node; - smp_call_func_t func; - void *info; +struct nfs_seqid { + struct nfs_seqid_counter *sequence; + struct list_head list; + struct rpc_task *task; }; -typedef __u32 req_flags_t; - -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; - }; - 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 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 rq_qos_ops; - -struct rq_qos { - const struct rq_qos_ops *ops; - struct gendisk *disk; - enum rq_qos_id id; - struct rq_qos *next; - struct dentry *debugfs_dir; +struct 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 blk_mq_debugfs_attr; +struct nfs4_fs_locations; -struct rq_qos_ops { - void (*throttle)(struct rq_qos *, struct bio *); - void (*track)(struct rq_qos *, struct request *, struct bio *); - void (*merge)(struct rq_qos *, struct request *, struct bio *); - void (*issue)(struct rq_qos *, struct request *); - void (*requeue)(struct rq_qos *, struct request *); - void (*done)(struct rq_qos *, struct request *); - void (*done_bio)(struct rq_qos *, struct bio *); - void (*cleanup)(struct rq_qos *, struct bio *); - void (*queue_depth_changed)(struct rq_qos *); - void (*exit)(struct rq_qos *); - const struct blk_mq_debugfs_attr *debugfs_attrs; +struct 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 blk_mq_debugfs_attr { - const char *name; - umode_t mode; - int (*show)(void *, struct seq_file *); - ssize_t (*write)(void *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); - const struct seq_operations *seq_ops; +struct nfs4_pathname { + unsigned int ncomponents; + struct nfs4_string components[512]; }; -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 nfs4_fs_location { + unsigned int nservers; + struct nfs4_string servers[10]; + struct nfs4_pathname rootpath; }; -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 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; - long: 64; +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 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; +struct nfs_iostats { + unsigned long long bytes[8]; + unsigned long events[27]; long: 64; long: 64; long: 64; @@ -22344,1092 +23932,1647 @@ struct sbitmap_word { long: 64; }; -struct sbq_wait_state; - -struct sbitmap_queue { - struct sbitmap sb; - unsigned int wake_batch; - atomic_t wake_index; - struct sbq_wait_state *ws; - atomic_t ws_active; - unsigned int min_shallow_depth; - atomic_t completion_cnt; - atomic_t wakeup_cnt; -}; - -struct blk_mq_tags { - unsigned int nr_tags; - unsigned int nr_reserved_tags; - unsigned int active_queues; - struct sbitmap_queue bitmap_tags; - struct sbitmap_queue breserved_tags; - struct request **rqs; - struct request **static_rqs; - struct list_head page_list; - spinlock_t lock; +struct 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; }; -struct sbq_wait_state { - wait_queue_head_t wait; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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, }; -struct blk_mq_queue_data { - struct request *rq; - bool last; +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_UNBOUND_MAX_ACTIVE = 512, + WQ_DFL_ACTIVE = 256, }; -struct blk_mq_queue_map { - unsigned int *mq_map; - unsigned int nr_queues; - unsigned int queue_offset; -}; +struct nfs4_cached_acl; -struct blk_mq_tag_set { - const struct blk_mq_ops *ops; - struct blk_mq_queue_map map[3]; - unsigned int nr_maps; - unsigned int nr_hw_queues; - unsigned int queue_depth; - unsigned int reserved_tags; - unsigned int cmd_size; - int numa_node; - unsigned int timeout; - unsigned int flags; - void *driver_data; - struct blk_mq_tags **tags; - struct blk_mq_tags *shared_tags; - struct mutex tag_list_lock; - struct list_head tag_list; - struct srcu_struct *srcu; -}; +struct nfs_delegation; -struct io_cq { - struct request_queue *q; - struct io_context *ioc; +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 list_head q_node; - struct kmem_cache *__rcu_icq_cache; + 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 { + int cnt; + struct { + u64 start; + u64 end; + } gap[16]; + } *ooo; + 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; union { - struct hlist_node ioc_node; - struct callback_head __rcu_head; + struct inode vfs_inode; }; - unsigned int flags; }; -struct rq_wait { - wait_queue_head_t wait; - atomic_t inflight; +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 test_gen; + unsigned long flags; + refcount_t refcount; + spinlock_t lock; + struct callback_head rcu; }; -struct rq_depth { - unsigned int max_depth; - int scale_step; - bool scaled_max; - unsigned int queue_depth; - unsigned int default_depth; -}; +struct wait_bit_key; -typedef void cleanup_cb_t(struct rq_wait *, void *); +typedef int wait_bit_action_f(struct wait_bit_key *, int); -enum netdev_tx { - __NETDEV_TX_MIN = -2147483648, - NETDEV_TX_OK = 0, - NETDEV_TX_BUSY = 16, +struct wait_bit_key { + void *flags; + int bit_nr; + unsigned long timeout; }; -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 nfs_find_desc { + struct nfs_fh *fh; + struct nfs_fattr *fattr; }; -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 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; }; -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 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 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 nfs4_sessionid { + unsigned char data[16]; }; -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 nfs4_channel_attrs { + u32 max_rqst_sz; + u32 max_resp_sz; + u32 max_resp_sz_cached; + u32 max_ops; + u32 max_reqs; }; -struct netdev_hw_addr_list { - struct list_head list; - int count; - struct rb_root tree; +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 rx_handler_result { - RX_HANDLER_CONSUMED = 0, - RX_HANDLER_ANOTHER = 1, - RX_HANDLER_EXACT = 2, - RX_HANDLER_PASS = 3, +enum { + FATTR4_SUPPORTED_ATTRS = 0, + FATTR4_TYPE = 1, + FATTR4_FH_EXPIRE_TYPE = 2, + FATTR4_CHANGE = 3, + FATTR4_SIZE = 4, + FATTR4_LINK_SUPPORT = 5, + FATTR4_SYMLINK_SUPPORT = 6, + FATTR4_NAMED_ATTR = 7, + FATTR4_FSID = 8, + FATTR4_UNIQUE_HANDLES = 9, + FATTR4_LEASE_TIME = 10, + FATTR4_RDATTR_ERROR = 11, + FATTR4_ACL = 12, + FATTR4_ACLSUPPORT = 13, + FATTR4_ARCHIVE = 14, + FATTR4_CANSETTIME = 15, + FATTR4_CASE_INSENSITIVE = 16, + FATTR4_CASE_PRESERVING = 17, + FATTR4_CHOWN_RESTRICTED = 18, + FATTR4_FILEHANDLE = 19, + FATTR4_FILEID = 20, + FATTR4_FILES_AVAIL = 21, + FATTR4_FILES_FREE = 22, + FATTR4_FILES_TOTAL = 23, + FATTR4_FS_LOCATIONS = 24, + FATTR4_HIDDEN = 25, + FATTR4_HOMOGENEOUS = 26, + FATTR4_MAXFILESIZE = 27, + FATTR4_MAXLINK = 28, + FATTR4_MAXNAME = 29, + FATTR4_MAXREAD = 30, + FATTR4_MAXWRITE = 31, + FATTR4_MIMETYPE = 32, + FATTR4_MODE = 33, + FATTR4_NO_TRUNC = 34, + FATTR4_NUMLINKS = 35, + FATTR4_OWNER = 36, + FATTR4_OWNER_GROUP = 37, + FATTR4_QUOTA_AVAIL_HARD = 38, + FATTR4_QUOTA_AVAIL_SOFT = 39, + FATTR4_QUOTA_USED = 40, + FATTR4_RAWDEV = 41, + FATTR4_SPACE_AVAIL = 42, + FATTR4_SPACE_FREE = 43, + FATTR4_SPACE_TOTAL = 44, + FATTR4_SPACE_USED = 45, + FATTR4_SYSTEM = 46, + FATTR4_TIME_ACCESS = 47, + FATTR4_TIME_ACCESS_SET = 48, + FATTR4_TIME_BACKUP = 49, + FATTR4_TIME_CREATE = 50, + FATTR4_TIME_DELTA = 51, + FATTR4_TIME_METADATA = 52, + FATTR4_TIME_MODIFY = 53, + FATTR4_TIME_MODIFY_SET = 54, + FATTR4_MOUNTED_ON_FILEID = 55, }; -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, +enum nfs_ftype4 { + NF4BAD = 0, + NF4REG = 1, + NF4DIR = 2, + NF4BLK = 3, + NF4CHR = 4, + NF4LNK = 5, + NF4SOCK = 6, + NF4FIFO = 7, + NF4ATTRDIR = 8, + NF4NAMEDATTR = 9, }; -struct pcpu_dstats; - -struct netdev_tc_txq { - u16 count; - u16 offset; +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, }; -struct sfp_bus; - -struct udp_tunnel_nic; - -struct bpf_xdp_link; - -struct bpf_xdp_entity { - struct bpf_prog *prog; - struct bpf_xdp_link *link; +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, }; -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 netdev_rx_queue; +enum { + FATTR4_DIR_NOTIF_DELAY = 56, + FATTR4_DIRENT_NOTIF_DELAY = 57, + FATTR4_DACL = 58, + FATTR4_SACL = 59, + FATTR4_CHANGE_POLICY = 60, + FATTR4_FS_STATUS = 61, + FATTR4_FS_LAYOUT_TYPES = 62, + FATTR4_LAYOUT_HINT = 63, + FATTR4_LAYOUT_TYPES = 64, + FATTR4_LAYOUT_BLKSIZE = 65, + FATTR4_LAYOUT_ALIGNMENT = 66, + FATTR4_FS_LOCATIONS_INFO = 67, + FATTR4_MDSTHRESHOLD = 68, + FATTR4_RETENTION_GET = 69, + FATTR4_RETENTION_SET = 70, + FATTR4_RETENTEVT_GET = 71, + FATTR4_RETENTEVT_SET = 72, + FATTR4_RETENTION_HOLD = 73, + FATTR4_MODE_SET_MASKED = 74, + FATTR4_SUPPATTR_EXCLCREAT = 75, + FATTR4_FS_CHARSET_CAP = 76, +}; -struct mini_Qdisc; +enum { + FATTR4_CLONE_BLKSIZE = 77, + FATTR4_SPACE_FREED = 78, + FATTR4_CHANGE_ATTR_TYPE = 79, + FATTR4_SEC_LABEL = 80, +}; -struct netdev_queue; +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, +}; -struct cpu_rmap; +enum createmode4 { + NFS4_CREATE_UNCHECKED = 0, + NFS4_CREATE_GUARDED = 1, + NFS4_CREATE_EXCLUSIVE = 2, + NFS4_CREATE_EXCLUSIVE4_1 = 3, +}; -struct Qdisc; +enum { + FATTR4_MODE_UMASK = 81, +}; -struct xdp_dev_bulk_queue; +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, +}; -struct xps_dev_maps; +enum limit_by4 { + NFS4_LIMIT_SIZE = 1, + NFS4_LIMIT_BLOCKS = 2, +}; -struct netpoll_info; +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, +}; -struct pcpu_lstats; +enum { + FATTR4_XATTR_SUPPORT = 82, +}; -struct pcpu_sw_netstats; - -struct rtnl_link_ops; - -struct netprio_map; - -struct phy_device; - -struct udp_tunnel_nic_info; - -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; - 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; - long: 64; - 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; +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, }; -struct dev_ifalias { - struct callback_head rcuhead; - char ifalias[0]; +enum lock_type4 { + NFS4_UNLOCK_LT = 0, + NFS4_READ_LT = 1, + NFS4_WRITE_LT = 2, + NFS4_READW_LT = 3, + NFS4_WRITEW_LT = 4, }; -typedef enum netdev_tx netdev_tx_t; +enum nfs4_acl_type { + NFS4ACL_NONE = 0, + NFS4ACL_ACL = 1, + NFS4ACL_DACL = 2, + NFS4ACL_SACL = 3, +}; -struct ifreq; +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 if_settings; +struct compound_hdr { + int32_t status; + uint32_t nops; + __be32 *nops_p; + uint32_t taglen; + char *tag; + uint32_t replen; + u32 minorversion; +}; -struct ifmap; +struct nfs_open_confirmargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + nfs4_stateid *stateid; + struct nfs_seqid *seqid; +}; -struct neigh_parms; +struct nfs_open_confirmres { + struct nfs4_sequence_res seq_res; + nfs4_stateid stateid; + struct nfs_seqid *seqid; +}; -struct rtnl_link_stats64; +struct nfs4_layoutreturn_args; -struct ifla_vf_info; +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 ifla_vf_stats; +struct nfs4_xdr_opaque_data; -struct nlattr; +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 ifla_vf_guid; +struct nfs4_xdr_opaque_ops; -struct netlink_ext_ack; +struct nfs4_xdr_opaque_data { + const struct nfs4_xdr_opaque_ops *ops; + void *data; +}; -struct ndmsg; +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 netlink_callback; +struct nfs4_layoutreturn_res; -struct nlmsghdr; +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 netdev_phys_item_id; +struct nfs4_layoutreturn_res { + struct nfs4_sequence_res seq_res; + u32 lrs_present; + nfs4_stateid stateid; +}; -struct netdev_bpf; +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; +}; -struct xdp_frame; +typedef u64 clientid4; -struct xdp_buff; +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 ip_tunnel_parm; +struct nfs4_setclientid_res { + u64 clientid; + nfs4_verifier confirm; +}; -struct net_device_path_ctx; +struct nfs_lowner { + __u64 clientid; + __u64 id; + dev_t s_dev; +}; -struct skb_shared_hwtstamps; +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 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_mdb_add)(struct net_device *, struct nlattr **, u16, struct netlink_ext_ack *); - int (*ndo_mdb_del)(struct net_device *, struct nlattr **, struct netlink_ext_ack *); - int (*ndo_mdb_dump)(struct net_device *, struct sk_buff *, struct netlink_callback *); - 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); +struct nfs_lock_res { + struct nfs4_sequence_res seq_res; + nfs4_stateid stateid; + struct nfs_seqid *lock_seqid; + struct nfs_seqid *open_seqid; }; -typedef __u64 __addrpair; +struct nfs_lockt_args { + struct nfs4_sequence_args seq_args; + struct nfs_fh *fh; + struct file_lock *fl; + struct nfs_lowner lock_owner; +}; -typedef __u32 __portpair; +struct nfs_lockt_res { + struct nfs4_sequence_res seq_res; + struct file_lock *denied; +}; -struct hlist_nulls_node { - struct hlist_nulls_node *next; - struct hlist_nulls_node **pprev; +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 proto; +struct nfs_locku_res { + struct nfs4_sequence_res seq_res; + nfs4_stateid stateid; + struct nfs_seqid *seqid; +}; -struct sock_common { +struct nfs4_create_arg { + struct nfs4_sequence_args seq_args; + u32 ftype; 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 page **pages; + unsigned int len; + } symlink; 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; - }; + 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; }; -typedef struct { - spinlock_t slock; - int owned; - wait_queue_head_t wq; -} socket_lock_t; +struct nfs4_readlink { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + unsigned int pgbase; + unsigned int pglen; + struct page **pages; +}; -struct sk_buff_list { - struct sk_buff *next; - struct sk_buff *prev; +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 sk_buff_head { - union { - struct { - struct sk_buff *next; - struct sk_buff *prev; - }; - struct sk_buff_list list; - }; - __u32 qlen; - spinlock_t lock; +struct nfs4_readdir_res { + struct nfs4_sequence_res seq_res; + nfs4_verifier verifier; + unsigned int pgbase; }; -struct sock_cgroup_data { - struct cgroup *cgroup; - u32 classid; - u16 prioidx; +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; }; -typedef struct {} netns_tracker; +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 sk_filter; +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 socket_wq; +struct nfs4_secinfo_flavors; -struct xfrm_policy; +struct nfs4_secinfo_res { + struct nfs4_sequence_res seq_res; + struct nfs4_secinfo_flavors *flavors; +}; -struct socket; +struct nfs4_secinfo4 { + u32 flavor; + struct rpcsec_gss_info flavor_info; +}; -struct sock_reuseport; +struct nfs4_secinfo_flavors { + unsigned int num_flavors; + struct nfs4_secinfo4 flavors[0]; +}; -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; - int sk_wait_pending; - 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 stateowner_id { + __u64 create_time; + __u32 uniquifier; }; -struct smc_hashinfo; +struct nfs4_layoutget_args; -typedef struct { +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 { - void *kernel; - void __attribute__((btf_type_tag("user"))) *user; - }; - bool is_kernel: 1; -} sockptr_t; - -struct sockaddr; - -struct msghdr; + 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 sk_psock; +struct nfs4_layoutdriver_data { + struct page **pages; + __u32 pglen; + __u32 len; +}; -struct request_sock_ops; +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 timewait_sock_ops; +struct nfs4_layoutget_res; -struct raw_hashinfo; +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 proto { - void (*close)(struct sock *, long); - int (*pre_connect)(struct sock *, struct sockaddr *, int); - int (*connect)(struct sock *, struct sockaddr *, int); - int (*disconnect)(struct sock *, int); - struct sock * (*accept)(struct sock *, int, int *, bool); - int (*ioctl)(struct sock *, int, int *); - int (*init)(struct sock *); - void (*destroy)(struct sock *); - void (*shutdown)(struct sock *, int); - int (*setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); - int (*getsockopt)(struct sock *, int, int, char __attribute__((btf_type_tag("user"))) *, int __attribute__((btf_type_tag("user"))) *); - void (*keepalive)(struct sock *, int); - int (*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 *); - void (*splice_eof)(struct socket *); - int (*bind)(struct sock *, struct sockaddr *, int); - int (*bind_add)(struct sock *, struct sockaddr *, int); - int (*backlog_rcv)(struct sock *, struct sk_buff *); - bool (*bpf_bypass_getsockopt)(int, int); - void (*release_cb)(struct sock *); - int (*hash)(struct sock *); - void (*unhash)(struct sock *); - void (*rehash)(struct sock *); - int (*get_port)(struct sock *, unsigned short); - void (*put_port)(struct sock *); - int (*psock_update_sk_prot)(struct sock *, struct sk_psock *, bool); - unsigned int inuse_idx; - bool (*stream_memory_free)(const struct sock *, int); - bool (*sock_is_readable)(struct sock *); - void (*enter_memory_pressure)(struct sock *); - void (*leave_memory_pressure)(struct sock *); - atomic_long_t *memory_allocated; - int __attribute__((btf_type_tag("percpu"))) *per_cpu_fw_alloc; - struct percpu_counter *sockets_allocated; - unsigned long *memory_pressure; - long *sysctl_mem; - int *sysctl_wmem; - int *sysctl_rmem; - u32 sysctl_wmem_offset; - u32 sysctl_rmem_offset; - int max_header; - bool no_autobind; - struct kmem_cache *slab; - unsigned int obj_size; - unsigned int ipv6_pinfo_offset; - slab_flags_t slab_flags; - unsigned int useroffset; - unsigned int usersize; - unsigned int __attribute__((btf_type_tag("percpu"))) *orphan_count; - struct request_sock_ops *rsk_prot; - struct timewait_sock_ops *twsk_prot; - union { - struct inet_hashinfo *hashinfo; - struct udp_table *udp_table; - struct raw_hashinfo *raw_hash; - struct smc_hashinfo *smc_hash; - } h; - struct module *owner; - char name[32]; - struct list_head node; - int (*diag_destroy)(struct sock *, int); +struct 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; }; -typedef unsigned short __kernel_sa_family_t; +struct nfs_setattrres { + struct nfs4_sequence_res seq_res; + struct nfs_fattr *fattr; + const struct nfs_server *server; +}; -typedef __kernel_sa_family_t sa_family_t; +struct nfs4_fsinfo_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; +}; -struct sockaddr { - sa_family_t sa_family; - union { - char sa_data_min[14]; - struct { - struct {} __empty_sa_data; - char sa_data[0]; - }; - }; +struct nfs4_fsinfo_res { + struct nfs4_sequence_res seq_res; + struct nfs_fsinfo *fsinfo; }; -struct ubuf_info; +struct nfs4_accessargs { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; + u32 access; +}; -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 nfs4_accessres { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; + u32 supported; + u32 access; }; -struct io_uring_sqe; +struct nfs4_getattr_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *fh; + const u32 *bitmask; +}; -struct io_uring_cmd { - struct file *file; - const struct io_uring_sqe *sqe; - union { - void (*task_work_cb)(struct io_uring_cmd *, unsigned int); - void *cookie; - }; - u32 cmd_op; - u32 flags; - u8 pdu[32]; +struct nfs4_getattr_res { + struct nfs4_sequence_res seq_res; + const struct nfs_server *server; + struct nfs_fattr *fattr; }; -typedef int __kernel_rwf_t; +struct nfs4_lookup_arg { + struct nfs4_sequence_args seq_args; + const struct nfs_fh *dir_fh; + const struct qstr *name; + const u32 *bitmask; +}; -struct io_uring_sqe { - __u8 opcode; - __u8 flags; - __u16 ioprio; - __s32 fd; +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 crypto_comp { + struct crypto_tfm base; +}; + +struct crypto_template; + +struct crypto_spawn; + +struct crypto_instance { + struct crypto_alg alg; + struct crypto_template *tmpl; union { - __u64 off; - __u64 addr2; - struct { - __u32 cmd_op; - __u32 __pad1; - }; + struct hlist_node list; + struct crypto_spawn *spawns; }; + struct work_struct free_work; + void *__ctx[0]; +}; + +struct rtattr; + +struct crypto_template { + struct list_head list; + struct hlist_head instances; + struct module *module; + int (*create)(struct crypto_template *, struct rtattr **); + char name[128]; +}; + +struct crypto_spawn { + struct list_head list; + struct crypto_alg *alg; union { - __u64 addr; - __u64 splice_off_in; + struct crypto_instance *inst; + struct crypto_spawn *next; }; - __u32 len; + 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; + unsigned int dma_flags; +}; + +struct crypto_akcipher { + unsigned int reqsize; + struct crypto_tfm base; +}; + +struct crypto_wait { + struct completion completion; + int err; +}; + +struct crypto_akcipher_sync_data { + struct crypto_akcipher *tfm; + const void *src; + void *dst; + unsigned int slen; + unsigned int dlen; + struct akcipher_request *req; + struct crypto_wait cwait; + struct scatterlist sg; + u8 *buf; +}; + +struct crypto_sig { + struct crypto_tfm base; +}; + +struct crypto_aes_ctx { + u32 key_enc[60]; + u32 key_dec[60]; + u32 key_length; +}; + +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, +}; + +enum rq_qos_id { + RQ_QOS_WBT = 0, + RQ_QOS_LATENCY = 1, + RQ_QOS_COST = 2, +}; + +enum blk_default_limits { + BLK_MAX_SEGMENTS = 128, + BLK_SAFE_MAX_SECTORS = 255, + BLK_MAX_SEGMENT_SIZE = 65536, + BLK_SEG_BOUNDARY_MASK = 4294967295, +}; + +typedef enum rq_end_io_ret rq_end_io_fn(struct request *, blk_status_t); + +typedef __u32 req_flags_t; + +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 { - __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; + struct list_head queuelist; + struct request *rq_next; }; - __u64 user_data; + 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 { - __u16 buf_index; - __u16 buf_group; + struct hlist_node hash; + struct llist_node ipi_list; }; - __u16 personality; union { - __s32 splice_fd_in; - __u32 file_index; - struct { - __u16 addr_len; - __u16 __pad3[1]; - }; + struct rb_node rb_node; + struct bio_vec special_vec; + }; + struct { + struct io_cq *icq; + void *priv[2]; + } elv; + struct { + unsigned int seq; + rq_end_io_fn *saved_end_io; + } flush; + u64 fifo_time; + rq_end_io_fn *end_io; + void *end_io_data; +}; + +struct sbitmap_word; + +struct sbitmap { + unsigned int depth; + unsigned int shift; + unsigned int map_nr; + bool round_robin; + struct sbitmap_word *map; + unsigned int __attribute__((btf_type_tag("percpu"))) *alloc_hint; +}; + +struct blk_mq_hw_ctx { + struct { + spinlock_t lock; + struct list_head dispatch; + unsigned long state; + long: 64; + long: 64; + long: 64; + long: 64; + }; + 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 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; + long: 64; +}; + +struct blk_flush_queue { + spinlock_t mq_flush_lock; + unsigned int flush_pending_idx: 1; + unsigned int flush_running_idx: 1; + blk_status_t rq_status; + unsigned long flush_pending_since; + struct list_head flush_queue[2]; + unsigned long flush_data_in_flight; + struct request *flush_rq; +}; + +struct sbitmap_word { + unsigned long word; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + unsigned long cleared; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +struct sbq_wait_state; + +struct sbitmap_queue { + struct sbitmap sb; + unsigned int wake_batch; + atomic_t wake_index; + struct sbq_wait_state *ws; + atomic_t ws_active; + unsigned int min_shallow_depth; + atomic_t completion_cnt; + atomic_t wakeup_cnt; +}; + +struct blk_mq_tags { + unsigned int nr_tags; + unsigned int nr_reserved_tags; + unsigned int active_queues; + struct sbitmap_queue bitmap_tags; + struct sbitmap_queue breserved_tags; + struct request **rqs; + struct request **static_rqs; + struct list_head page_list; + spinlock_t lock; +}; + +struct sbq_wait_state { + wait_queue_head_t wait; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; + +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 { - __u64 addr3; - __u64 __pad2[1]; - }; - __u8 cmd[0]; + struct hlist_node ioc_node; + struct callback_head __rcu_head; }; + unsigned int flags; +}; + +struct rq_qos_ops; + +struct rq_qos { + const struct rq_qos_ops *ops; + struct gendisk *disk; + enum rq_qos_id id; + struct rq_qos *next; + struct dentry *debugfs_dir; +}; + +struct blk_mq_debugfs_attr; + +struct rq_qos_ops { + void (*throttle)(struct rq_qos *, struct bio *); + void (*track)(struct rq_qos *, struct request *, struct bio *); + void (*merge)(struct rq_qos *, struct request *, struct bio *); + void (*issue)(struct rq_qos *, struct request *); + void (*requeue)(struct rq_qos *, struct request *); + void (*done)(struct rq_qos *, struct request *); + void (*done_bio)(struct rq_qos *, struct bio *); + void (*cleanup)(struct rq_qos *, struct bio *); + void (*queue_depth_changed)(struct rq_qos *); + void (*exit)(struct rq_qos *); + const struct blk_mq_debugfs_attr *debugfs_attrs; +}; + +struct blk_mq_debugfs_attr { + const char *name; + umode_t mode; + int (*show)(void *, struct seq_file *); + ssize_t (*write)(void *, const char __attribute__((btf_type_tag("user"))) *, size_t, loff_t *); + const struct seq_operations *seq_ops; +}; + +struct blk_mq_queue_data { + struct request *rq; + bool last; +}; + +struct blk_mq_queue_map { + unsigned int *mq_map; + unsigned int nr_queues; + unsigned int queue_offset; +}; + +struct blk_mq_tag_set { + const struct blk_mq_ops *ops; + struct blk_mq_queue_map map[3]; + unsigned int nr_maps; + unsigned int nr_hw_queues; + unsigned int queue_depth; + unsigned int reserved_tags; + unsigned int cmd_size; + int numa_node; + unsigned int timeout; + unsigned int flags; + void *driver_data; + struct blk_mq_tags **tags; + struct blk_mq_tags *shared_tags; + struct mutex tag_list_lock; + struct list_head tag_list; + struct srcu_struct *srcu; +}; + +enum { + GENHD_FL_REMOVABLE = 1, + GENHD_FL_HIDDEN = 2, + GENHD_FL_NO_PART = 4, +}; + +typedef unsigned int xa_mark_t; + +struct klist; + +struct klist_node; + +struct klist_iter { + struct klist *i_klist; + struct klist_node *i_cur; +}; + +struct subsys_private; + +struct class_dev_iter { + struct klist_iter ki; + const struct device_type *type; + struct subsys_private *sp; +}; + +struct klist { + spinlock_t k_lock; + struct list_head k_list; + void (*get)(struct klist_node *); + void (*put)(struct klist_node *); +}; + +struct klist_node { + void *n_klist; + struct list_head n_node; + struct kref n_ref; +}; + +struct uuidcmp { + const char *uuid; + int len; }; struct io_ring_ctx; @@ -23483,13 +25626,6 @@ struct io_submit_link { 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; @@ -23499,7 +25635,6 @@ struct io_submit_state { unsigned short submit_nr; unsigned int cqes_count; struct blk_plug plug; - struct io_uring_cqe cqes[16]; }; struct io_hash_bucket; @@ -23516,6 +25651,13 @@ struct io_alloc_cache { size_t elem_size; }; +struct io_uring_cqe { + __u64 user_data; + __s32 res; + __u32 flags; + __u64 big_cqe[0]; +}; + struct io_restriction { unsigned long register_op[1]; unsigned long sqe_op[1]; @@ -23526,16 +25668,18 @@ struct io_restriction { struct io_rings; +struct io_uring_sqe; + struct io_rsrc_node; struct io_mapped_ubuf; struct io_buffer_list; -struct io_sq_data; - struct io_ev_fd; +struct io_sq_data; + struct io_rsrc_data; struct io_wq_hash; @@ -23549,18 +25693,17 @@ struct io_ring_ctx { unsigned int drain_active: 1; unsigned int has_evfd: 1; unsigned int task_complete: 1; + unsigned int lockless_cq: 1; unsigned int syscall_iopoll: 1; unsigned int poll_activated: 1; unsigned int drain_disabled: 1; unsigned int compat: 1; - enum task_work_notify_mode notify_method; - unsigned short n_ring_pages; - unsigned short n_sqe_pages; - struct page **ring_pages; - struct page **sqe_pages; - struct io_rings *rings; struct task_struct *submitter_task; + struct io_rings *rings; struct percpu_ref refs; + enum task_work_notify_mode notify_method; + long: 64; + long: 64; }; struct { struct mutex uring_lock; @@ -23577,58 +25720,61 @@ struct io_ring_ctx { 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; + struct io_wq_work_list iopoll_list; + bool poll_multi_queue; + struct hlist_head cancelable_uring_cmd; }; - 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: 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; - atomic_t cq_wait_nr; - struct io_wq_work_list iopoll_list; - struct io_hash_table cancel_table; - struct llist_head work_llist; - struct list_head io_buffers_comp; - long: 64; - long: 64; long: 64; long: 64; long: 64; + }; + struct { + struct llist_head work_llist; + unsigned long check_cq; + atomic_t cq_wait_nr; + atomic_t cq_timeouts; + struct wait_queue_head cq_wait; long: 64; long: 64; }; 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: 64; long: 64; }; + struct io_uring_cqe completion_cqes[16]; + spinlock_t completion_lock; + struct io_wq_work_list locked_free_list; + unsigned int locked_free_nr; + struct list_head io_buffers_comp; + struct list_head cq_overflow_list; + struct io_hash_table cancel_table; + struct hlist_head waitid_list; + struct hlist_head futex_list; + struct io_alloc_cache futex_cache; + const struct cred *sq_creds; + struct io_sq_data *sq_data; + struct wait_queue_head sqo_sq_wait; + struct list_head sqd_list; + unsigned int file_alloc_start; + unsigned int file_alloc_end; + struct xarray personalities; + u32 pers_next; + struct list_head io_buffers_cache; + struct hlist_head io_buf_list; struct wait_queue_head poll_wq; struct io_restriction restrictions; struct io_mapped_ubuf *dummy_ubuf; @@ -23638,7 +25784,6 @@ struct io_ring_ctx { struct io_alloc_cache rsrc_node_cache; struct wait_queue_head rsrc_quiesce_wq; unsigned int rsrc_quiesce; - struct list_head io_buffers_pages; struct socket *ring_sock; struct io_wq_hash *hash_map; struct user_struct *user; @@ -23654,6 +25799,12 @@ struct io_ring_ctx { struct list_head defer_list; unsigned int sq_thread_idle; unsigned int evfd_last_cq_tail; + unsigned short n_ring_pages; + unsigned short n_sqe_pages; + struct page **ring_pages; + struct page **sqe_pages; + long: 64; + long: 64; long: 64; long: 64; long: 64; @@ -23661,21 +25812,7 @@ struct io_ring_ctx { struct io_uring { u32 head; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; u32 tail; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; }; struct io_rings { @@ -23691,11 +25828,79 @@ struct io_rings { 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; + struct { + __u32 level; + __u32 optname; + }; + }; + __u32 len; + union { + __kernel_rwf_t rw_flags; + __u32 fsync_flags; + __u16 poll_events; + __u32 poll32_events; + __u32 sync_range_flags; + __u32 msg_flags; + __u32 timeout_flags; + __u32 accept_flags; + __u32 cancel_flags; + __u32 open_flags; + __u32 statx_flags; + __u32 fadvise_advice; + __u32 splice_flags; + __u32 rename_flags; + __u32 unlink_flags; + __u32 hardlink_flags; + __u32 xattr_flags; + __u32 msg_ring_flags; + __u32 uring_cmd_flags; + __u32 waitid_flags; + __u32 futex_flags; + }; + __u64 user_data; + union { + __u16 buf_index; + __u16 buf_group; + }; + __u16 personality; + union { + __s32 splice_fd_in; + __u32 file_index; + __u32 optlen; + struct { + __u16 addr_len; + __u16 __pad3[1]; + }; + }; + union { + struct { + __u64 addr3; + __u64 __pad2[1]; + }; + __u64 optval; + __u8 cmd[0]; + }; +}; + struct io_cache_entry { struct io_wq_work_node node; }; @@ -23792,18 +25997,16 @@ struct io_kiocb { atomic_t poll_refs; struct io_task_work io_task_work; unsigned int nr_tw; - union { - struct hlist_node hash_node; - struct { - u64 extra1; - u64 extra2; - }; - }; + struct hlist_node hash_node; struct async_poll *apoll; void *async_data; struct io_kiocb *link; const struct cred *creds; struct io_wq_work work; + struct { + u64 extra1; + u64 extra2; + } big_cqe; }; struct io_buffer { @@ -23823,6 +26026,7 @@ struct io_buffer_list { struct page **buf_pages; struct io_uring_buf_ring *buf_ring; }; + struct callback_head rcu; }; __u16 bgid; __u16 buf_nr_pages; @@ -23831,6 +26035,7 @@ struct io_buffer_list { __u16 mask; __u8 is_mapped; __u8 is_mmap; + __u8 is_ready; }; struct io_uring_buf { @@ -23859,6 +26064,22 @@ struct io_tw_state { bool locked; }; +struct io_poll { + struct file *file; + struct wait_queue_head *head; + __poll_t events; + int retries; + struct wait_queue_entry wait; +}; + +struct async_poll { + union { + struct io_poll poll; + struct io_cache_entry cache; + }; + struct io_poll *double_poll; +}; + struct io_hash_bucket { spinlock_t lock; struct hlist_head list; @@ -23870,8 +26091,6 @@ struct io_hash_bucket { long: 64; }; -struct eventfd_ctx; - struct io_ev_fd { struct eventfd_ctx *cq_ev_fd; unsigned int eventfd_async: 1; @@ -23880,6 +26099,21 @@ struct io_ev_fd { atomic_t ops; }; +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 io_rsrc_data { struct io_ring_ctx *ctx; u64 **tags; @@ -23888,2201 +26122,2281 @@ struct io_rsrc_data { bool quiesce; }; -typedef enum { - SS_FREE = 0, - SS_UNCONNECTED = 1, - SS_CONNECTING = 2, - SS_CONNECTED = 3, - SS_DISCONNECTING = 4, -} socket_state; - -struct socket_wq { - wait_queue_head_t wait; - struct fasync_struct *fasync_list; - unsigned long flags; - struct callback_head rcu; - long: 64; +struct io_wq_hash { + refcount_t refs; + unsigned long map; + struct wait_queue_head wait; }; -struct proto_ops; - -struct socket { - socket_state state; - short type; - unsigned long flags; +struct io_uring_cmd { struct file *file; - struct sock *sk; - const struct proto_ops *ops; - long: 64; - long: 64; - long: 64; - struct socket_wq wq; + const struct io_uring_sqe *sqe; + union { + void (*task_work_cb)(struct io_uring_cmd *, unsigned int); + void *cookie; + }; + u32 cmd_op; + u32 flags; + u8 pdu[32]; }; -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 void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); -typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t); +typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long); -typedef int (*skb_read_actor_t)(struct sock *, struct sk_buff *); +typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int); -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 (*splice_read)(struct socket *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); - void (*splice_eof)(struct socket *); - int (*set_peek_off)(struct sock *, int); - int (*peek_len)(struct socket *); - int (*read_sock)(struct sock *, read_descriptor_t *, sk_read_actor_t); - int (*read_skb)(struct sock *, skb_read_actor_t); - int (*sendmsg_locked)(struct sock *, struct msghdr *, size_t); - int (*set_rcvlowat)(struct sock *, int); -}; +typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int); -struct io_wq_hash { - refcount_t refs; - unsigned long map; - struct wait_queue_head wait; -}; +typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *); -struct fib_rule; +typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *); -struct flowi; +typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); -struct fib_lookup_arg; +typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *); -struct fib_rule_hdr; +typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64); -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 void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *); -struct fib_kuid_range { - kuid_t start; - kuid_t end; -}; +typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int); -struct fib_rule_port_range { - __u16 start; - __u16 end; -}; +typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int); -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; -}; +typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int); -struct flowi_tunnel { - __be64 tun_id; -}; +typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, unsigned long long, s32, u32, void *); -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; -}; +typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int, unsigned int); -union flowi_uli { - struct { - __be16 dport; - __be16 sport; - } ports; - struct { - __u8 type; - __u8 code; - } icmpt; - __be32 gre_key; - struct { - __u8 type; - } mht; -}; +typedef void (*btf_trace_io_uring_short_write)(void *, void *, u64, u64, u64); -struct flowi4 { - struct flowi_common __fl_common; - __be32 saddr; - __be32 daddr; - union flowi_uli uli; -}; +typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int); -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 creds; -struct flowi { - union { - struct flowi_common __fl_common; - struct flowi4 ip4; - struct flowi6 ip6; - } u; +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 = 536870912, + REQ_F_ISREG = 1073741824, + 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 = 67108864, + REQ_F_CLEAR_POLLIN = 134217728, + REQ_F_HASH_LOCKED = 268435456, + REQ_F_POLL_NO_LAZY = 2147483648, }; -struct fib_lookup_arg { - void *lookup_ptr; - const void *lookup_data; - void *result; - struct fib_rule *rule; - u32 table; - int flags; +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, }; -struct fib_rule_hdr { - __u8 family; - __u8 dst_len; - __u8 src_len; - __u8 tos; - __u8 table; - __u8 res1; - __u8 res2; - __u8 action; - __u32 flags; +enum { + IO_CHECK_CQ_OVERFLOW_BIT = 0, + IO_CHECK_CQ_DROPPED_BIT = 1, }; -struct nlattr { - __u16 nla_len; - __u16 nla_type; +enum io_uring_cmd_flags { + IO_URING_F_COMPLETE_DEFER = 1, + IO_URING_F_UNLOCKED = 2, + IO_URING_F_MULTISHOT = 4, + IO_URING_F_IOWQ = 8, + IO_URING_F_NONBLOCK = -2147483648, + IO_URING_F_SQE128 = 256, + IO_URING_F_CQE32 = 512, + IO_URING_F_IOPOLL = 1024, + IO_URING_F_CANCEL = 2048, + IO_URING_F_COMPAT = 4096, }; -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]; +enum { + IO_APOLL_OK = 0, + IO_APOLL_ABORTED = 1, + IO_APOLL_READY = 2, }; -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 *); - }; +enum { + IO_EVENTFD_OP_SIGNAL_BIT = 0, + IO_EVENTFD_OP_FREE_BIT = 1, }; -struct netlink_range_validation { - u64 min; - u64 max; +enum { + IORING_CQE_BUFFER_SHIFT = 16, }; -struct netlink_range_validation_signed { - s64 min; - s64 max; +enum { + IOU_F_TWQ_LAZY_WAKE = 1, }; -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; +enum { + IOU_OK = 0, + IOU_ISSUE_SKIP_COMPLETE = -529, + IOU_STOP_MULTISHOT = -125, }; -struct hh_cache { - unsigned int hh_len; - seqlock_t hh_lock; - unsigned long hh_data[12]; +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_APOLL_MULTISHOT_BIT = 26, + REQ_F_CLEAR_POLLIN_BIT = 27, + REQ_F_HASH_LOCKED_BIT = 28, + REQ_F_SUPPORT_NOWAIT_BIT = 29, + REQ_F_ISREG_BIT = 30, + REQ_F_POLL_NO_LAZY_BIT = 31, + __REQ_F_LAST_BIT = 32, }; -struct neigh_table; +enum io_uring_op { + IORING_OP_NOP = 0, + IORING_OP_READV = 1, + IORING_OP_WRITEV = 2, + IORING_OP_FSYNC = 3, + IORING_OP_READ_FIXED = 4, + IORING_OP_WRITE_FIXED = 5, + IORING_OP_POLL_ADD = 6, + IORING_OP_POLL_REMOVE = 7, + IORING_OP_SYNC_FILE_RANGE = 8, + IORING_OP_SENDMSG = 9, + IORING_OP_RECVMSG = 10, + IORING_OP_TIMEOUT = 11, + IORING_OP_TIMEOUT_REMOVE = 12, + IORING_OP_ACCEPT = 13, + IORING_OP_ASYNC_CANCEL = 14, + IORING_OP_LINK_TIMEOUT = 15, + IORING_OP_CONNECT = 16, + IORING_OP_FALLOCATE = 17, + IORING_OP_OPENAT = 18, + IORING_OP_CLOSE = 19, + IORING_OP_FILES_UPDATE = 20, + IORING_OP_STATX = 21, + IORING_OP_READ = 22, + IORING_OP_WRITE = 23, + IORING_OP_FADVISE = 24, + IORING_OP_MADVISE = 25, + IORING_OP_SEND = 26, + IORING_OP_RECV = 27, + IORING_OP_OPENAT2 = 28, + IORING_OP_EPOLL_CTL = 29, + IORING_OP_SPLICE = 30, + IORING_OP_PROVIDE_BUFFERS = 31, + IORING_OP_REMOVE_BUFFERS = 32, + IORING_OP_TEE = 33, + IORING_OP_SHUTDOWN = 34, + IORING_OP_RENAMEAT = 35, + IORING_OP_UNLINKAT = 36, + IORING_OP_MKDIRAT = 37, + IORING_OP_SYMLINKAT = 38, + IORING_OP_LINKAT = 39, + IORING_OP_MSG_RING = 40, + IORING_OP_FSETXATTR = 41, + IORING_OP_SETXATTR = 42, + IORING_OP_FGETXATTR = 43, + IORING_OP_GETXATTR = 44, + IORING_OP_SOCKET = 45, + IORING_OP_URING_CMD = 46, + IORING_OP_SEND_ZC = 47, + IORING_OP_SENDMSG_ZC = 48, + IORING_OP_READ_MULTISHOT = 49, + IORING_OP_WAITID = 50, + IORING_OP_FUTEX_WAIT = 51, + IORING_OP_FUTEX_WAKE = 52, + IORING_OP_FUTEX_WAITV = 53, + IORING_OP_LAST = 54, +}; -struct neigh_ops; +enum { + IOSQE_FIXED_FILE_BIT = 0, + IOSQE_IO_DRAIN_BIT = 1, + IOSQE_IO_LINK_BIT = 2, + IOSQE_IO_HARDLINK_BIT = 3, + IOSQE_ASYNC_BIT = 4, + IOSQE_BUFFER_SELECT_BIT = 5, + IOSQE_CQE_SKIP_SUCCESS_BIT = 6, +}; -struct 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; - long: 0; - 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]; +enum io_wq_cancel { + IO_WQ_CANCEL_OK = 0, + IO_WQ_CANCEL_RUNNING = 1, + IO_WQ_CANCEL_NOTFOUND = 2, }; -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]; +enum sock_type { + SOCK_STREAM = 1, + SOCK_DGRAM = 2, + SOCK_RAW = 3, + SOCK_RDM = 4, + SOCK_SEQPACKET = 5, + SOCK_DCCP = 6, + SOCK_PACKET = 10, }; -struct pneigh_entry; +enum { + IPPROTO_IP = 0, + IPPROTO_ICMP = 1, + IPPROTO_IGMP = 2, + IPPROTO_IPIP = 4, + IPPROTO_TCP = 6, + IPPROTO_EGP = 8, + IPPROTO_PUP = 12, + IPPROTO_UDP = 17, + IPPROTO_IDP = 22, + IPPROTO_TP = 29, + IPPROTO_DCCP = 33, + IPPROTO_IPV6 = 41, + IPPROTO_RSVP = 46, + IPPROTO_GRE = 47, + IPPROTO_ESP = 50, + IPPROTO_AH = 51, + IPPROTO_MTP = 92, + IPPROTO_BEETPH = 94, + IPPROTO_ENCAP = 98, + IPPROTO_PIM = 103, + IPPROTO_COMP = 108, + IPPROTO_L2TP = 115, + IPPROTO_SCTP = 132, + IPPROTO_UDPLITE = 136, + IPPROTO_MPLS = 137, + IPPROTO_ETHERNET = 143, + IPPROTO_RAW = 255, + IPPROTO_MPTCP = 262, + IPPROTO_MAX = 263, +}; -struct neigh_statistics; +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, +}; -struct neigh_hash_table; +enum { + IORING_RSRC_FILE = 0, + IORING_RSRC_BUFFER = 1, +}; -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; +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 pneigh_entry { - struct pneigh_entry *next; - possible_net_t net; - struct net_device *dev; - netdevice_tracker dev_tracker; +struct trace_event_raw_io_uring_create { + struct trace_entry ent; + int fd; + void *ctx; + u32 sq_entries; + u32 cq_entries; u32 flags; - u8 protocol; - u32 key[0]; + char __data[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 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 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 trace_event_raw_io_uring_file_get { + struct trace_entry ent; + void *ctx; + void *req; + u64 user_data; + int fd; + char __data[0]; }; -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 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 gro_list { - struct list_head list; - int count; +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 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; - int list_owner; - struct net_device *dev; - struct gro_list gro_hash[8]; - struct sk_buff *skb; - struct list_head rx_list; - int rx_count; - unsigned int napi_id; - struct hrtimer timer; - struct task_struct *thread; - struct list_head dev_list; - struct hlist_node napi_hash_node; +struct trace_event_raw_io_uring_link { + struct trace_entry ent; + void *ctx; + void *req; + void *target_req; + char __data[0]; }; -struct ubuf_info { - void (*callback)(struct sk_buff *, struct ubuf_info *, bool); - refcount_t refcnt; - u8 flags; +struct trace_event_raw_io_uring_cqring_wait { + struct trace_entry ent; + void *ctx; + int min_events; + char __data[0]; }; -struct sk_filter { - refcount_t refcnt; - struct callback_head rcu; - struct bpf_prog *prog; +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 xfrm_mark { - __u32 v; - __u32 m; +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]; }; -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 trace_event_raw_io_uring_submit_req { + struct trace_entry ent; + void *ctx; + void *req; + unsigned long long user_data; + u8 opcode; + u32 flags; + bool sq_thread; + u32 __data_loc_op_str; + char __data[0]; }; -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 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 xfrm_lifetime_cur { - __u64 bytes; - __u64 packets; - __u64 add_time; - __u64 use_time; +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 xfrm_policy_walk_entry { - struct list_head all; - u8 dead; +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 xfrm_policy_queue { - struct sk_buff_head hold_queue; - struct timer_list hold_timer; - unsigned long timeout; +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 xfrm_id { - xfrm_address_t daddr; - __be32 spi; - __u8 proto; +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 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 trace_event_raw_io_uring_short_write { + struct trace_entry ent; + void *ctx; + u64 fpos; + u64 wanted; + u64 got; + char __data[0]; }; -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; - u8 flags: 2; +struct trace_event_raw_io_uring_local_work_run { + struct trace_entry ent; + void *ctx; + int count; + unsigned int loops; + char __data[0]; }; -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; +struct io_defer_entry { + struct list_head list; + struct io_kiocb *req; + u32 seq; }; -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 io_tctx_node { + struct list_head ctx_node; + struct task_struct *task; + struct io_ring_ctx *ctx; }; -struct ifmap { - unsigned long mem_start; - unsigned long mem_end; - unsigned short base_addr; - unsigned char irq; - unsigned char dma; - unsigned char port; +struct io_overflow_cqe { + struct list_head list; + struct io_uring_cqe cqe; }; -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; +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; +}; -typedef struct { - unsigned short dce; - unsigned int modulo; - unsigned int window; - unsigned int t1; - unsigned int t2; - unsigned int n2; -} x25_hdlc_proto; +struct io_tctx_exit { + struct callback_head task_work; + struct completion completion; + struct io_ring_ctx *ctx; +}; -typedef struct { - unsigned int clock_rate; - unsigned int clock_type; - unsigned short loopback; -} sync_serial_settings; +struct io_sqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 flags; + __u32 dropped; + __u32 array; + __u32 resv1; + __u64 user_addr; +}; -typedef struct { - unsigned int clock_rate; - unsigned int clock_type; - unsigned short loopback; - unsigned int slot_map; -} te1_settings; +struct io_cqring_offsets { + __u32 head; + __u32 tail; + __u32 ring_mask; + __u32 ring_entries; + __u32 overflow; + __u32 cqes; + __u32 flags; + __u32 resv1; + __u64 user_addr; +}; -struct 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 io_uring_params { + __u32 sq_entries; + __u32 cq_entries; + __u32 flags; + __u32 sq_thread_cpu; + __u32 sq_thread_idle; + __u32 features; + __u32 wq_fd; + __u32 resv[3]; + struct io_sqring_offsets sq_off; + struct io_cqring_offsets cq_off; }; -struct 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 trace_event_data_offsets_io_uring_queue_async_work { + u32 op_str; }; -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 trace_event_data_offsets_io_uring_defer { + u32 op_str; }; -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 trace_event_data_offsets_io_uring_fail_link { + u32 op_str; }; -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 trace_event_data_offsets_io_uring_submit_req { + u32 op_str; }; -struct ifla_vf_guid { - __u32 vf; - __u64 guid; +struct trace_event_data_offsets_io_uring_poll_arm { + u32 op_str; }; -struct ndmsg { - __u8 ndm_family; - __u8 ndm_pad1; - __u16 ndm_pad2; - __s32 ndm_ifindex; - __u16 ndm_state; - __u8 ndm_flags; - __u8 ndm_type; +struct trace_event_data_offsets_io_uring_task_add { + u32 op_str; }; -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 trace_event_data_offsets_io_uring_req_failed { + u32 op_str; }; -struct nlmsghdr { - __u32 nlmsg_len; - __u16 nlmsg_type; - __u16 nlmsg_flags; - __u32 nlmsg_seq; - __u32 nlmsg_pid; +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 *); }; -struct netdev_phys_item_id { - unsigned char id[32]; - unsigned char id_len; +struct io_issue_def { + unsigned int needs_file: 1; + unsigned int plug: 1; + unsigned int hash_reg_file: 1; + unsigned int unbound_nonreg_file: 1; + unsigned int pollin: 1; + unsigned int pollout: 1; + unsigned int poll_exclusive: 1; + unsigned int buffer_select: 1; + unsigned int not_supported: 1; + unsigned int audit_skip: 1; + unsigned int ioprio: 1; + unsigned int iopoll: 1; + unsigned int iopoll_queue: 1; + unsigned int manual_alloc: 1; + unsigned int vectored: 1; + int (*issue)(struct io_kiocb *, unsigned int); + int (*prep)(struct io_kiocb *, const struct io_uring_sqe *); }; -struct bpf_offloaded_map; +struct ksignal { + struct k_sigaction ka; + kernel_siginfo_t info; + int sig; +}; -struct xsk_buff_pool; +typedef bool work_cancel_fn(struct io_wq_work *, void *); -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 io_uring_getevents_arg { + __u64 sigmask; + __u32 sigmask_sz; + __u32 pad; + __u64 ts; }; -struct xdp_mem_info { - u32 type; - u32 id; +struct xa_limit { + u32 max; + u32 min; }; -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 io_uring_file_index_range { + __u32 off; + __u32 len; + __u64 resv; }; -struct xdp_rxq_info; +typedef struct poll_table_struct poll_table; -struct xdp_txq_info; +struct trace_event_data_offsets_io_uring_create {}; -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 trace_event_data_offsets_io_uring_register {}; -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 trace_event_data_offsets_io_uring_file_get {}; -struct xdp_txq_info { - struct net_device *dev; -}; +struct trace_event_data_offsets_io_uring_link {}; -struct net_device_path_ctx { - const struct net_device *dev; - u8 daddr[6]; - int num_vlans; - struct { - u16 id; - __be16 proto; - } vlan[2]; -}; +struct trace_event_data_offsets_io_uring_cqring_wait {}; -struct skb_shared_hwtstamps { - union { - ktime_t hwtstamp; - void *netdev_data; - }; -}; +struct trace_event_data_offsets_io_uring_complete {}; -enum xdp_rss_hash_type { - XDP_RSS_L3_IPV4 = 1, - XDP_RSS_L3_IPV6 = 2, - XDP_RSS_L3_DYNHDR = 4, - XDP_RSS_L4 = 8, - XDP_RSS_L4_TCP = 16, - XDP_RSS_L4_UDP = 32, - XDP_RSS_L4_SCTP = 64, - XDP_RSS_L4_IPSEC = 128, - XDP_RSS_TYPE_NONE = 0, - XDP_RSS_TYPE_L2 = 0, - XDP_RSS_TYPE_L3_IPV4 = 1, - XDP_RSS_TYPE_L3_IPV6 = 2, - XDP_RSS_TYPE_L3_IPV4_OPT = 5, - XDP_RSS_TYPE_L3_IPV6_EX = 6, - XDP_RSS_TYPE_L4_ANY = 8, - XDP_RSS_TYPE_L4_IPV4_TCP = 25, - XDP_RSS_TYPE_L4_IPV4_UDP = 41, - XDP_RSS_TYPE_L4_IPV4_SCTP = 73, - XDP_RSS_TYPE_L4_IPV4_IPSEC = 137, - XDP_RSS_TYPE_L4_IPV6_TCP = 26, - XDP_RSS_TYPE_L4_IPV6_UDP = 42, - XDP_RSS_TYPE_L4_IPV6_SCTP = 74, - XDP_RSS_TYPE_L4_IPV6_IPSEC = 138, - XDP_RSS_TYPE_L4_IPV6_TCP_EX = 30, - XDP_RSS_TYPE_L4_IPV6_UDP_EX = 46, - XDP_RSS_TYPE_L4_IPV6_SCTP_EX = 78, -}; +struct trace_event_data_offsets_io_uring_cqe_overflow {}; -struct xdp_md; +struct trace_event_data_offsets_io_uring_task_work_run {}; -struct xdp_metadata_ops { - int (*xmo_rx_timestamp)(const struct xdp_md *, u64 *); - int (*xmo_rx_hash)(const struct xdp_md *, u32 *, enum xdp_rss_hash_type *); -}; +struct trace_event_data_offsets_io_uring_short_write {}; -struct xdp_md { - __u32 data; - __u32 data_end; - __u32 data_meta; - __u32 ingress_ifindex; - __u32 rx_queue_index; - __u32 egress_ifindex; -}; +struct trace_event_data_offsets_io_uring_local_work_run {}; -struct net_device_core_stats { - unsigned long rx_dropped; - unsigned long tx_dropped; - unsigned long rx_nohandler; - unsigned long rx_otherhost_dropped; +struct io_task_cancel { + struct task_struct *task; + bool all; }; -enum ethtool_phys_id_state { - ETHTOOL_ID_INACTIVE = 0, - ETHTOOL_ID_ACTIVE = 1, - ETHTOOL_ID_ON = 2, - ETHTOOL_ID_OFF = 3, +struct io_uring_probe_op { + __u8 op; + __u8 resv; + __u16 flags; + __u32 resv2; }; -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 io_uring_probe { + __u8 last_op; + __u8 ops_len; + __u16 resv; + __u32 resv2[3]; + struct io_uring_probe_op ops[0]; +}; -struct kernel_ethtool_ringparam; +struct io_uring_restriction { + __u16 opcode; + union { + __u8 register_op; + __u8 sqe_op; + __u8 sqe_flags; + }; + __u8 resv; + __u32 resv2[3]; +}; -struct ethtool_pause_stats; +struct rcec_ea { + u8 nextbusn; + u8 lastbusn; + u32 bitmap; +}; -struct ethtool_pauseparam; +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; +}; -struct ethtool_test; +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, +}; -struct ethtool_stats; +struct acpi_power_resource; -struct ethtool_rxnfc; +struct acpi_power_resource_entry { + struct list_head node; + struct acpi_power_resource *resource; +}; -struct ethtool_flash; +typedef void *acpi_handle; -struct ethtool_channels; +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 ethtool_dump; +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; +}; -struct ethtool_ts_info; +typedef char acpi_bus_id[8]; -struct ethtool_modinfo; +struct acpi_pnp_type { + u32 hardware_id: 1; + u32 bus_address: 1; + u32 platform_id: 1; + u32 backlight: 1; + u32 reserved: 28; +}; -struct ethtool_eee; +typedef u64 acpi_bus_address; -struct ethtool_tunable; +typedef char acpi_device_name[40]; -struct ethtool_link_ksettings; +typedef char acpi_device_class[20]; -struct ethtool_fec_stats; +union acpi_object; -struct ethtool_fecparam; +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 ethtool_module_eeprom; +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 ethtool_eth_phy_stats; +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 ethtool_eth_mac_stats; +struct acpi_device_power { + int state; + struct acpi_device_power_flags flags; + struct acpi_device_power_state states[5]; + u8 state_for_enumeration; +}; -struct ethtool_eth_ctrl_stats; +struct acpi_device_wakeup_flags { + u8 valid: 1; + u8 notifier_present: 1; +}; -struct ethtool_rmon_stats; +struct acpi_device_wakeup_context { + void (*func)(struct acpi_device_wakeup_context *); + struct device *dev; +}; -struct ethtool_rmon_hist_range; +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 ethtool_module_power_mode_params; +struct acpi_device_perf_flags { + u8 reserved; +}; -struct ethtool_mm_state; +struct acpi_device_perf_state; -struct ethtool_mm_cfg; +struct acpi_device_perf { + int state; + struct acpi_device_perf_flags flags; + int state_count; + struct acpi_device_perf_state *states; +}; -struct ethtool_mm_stats; +struct acpi_device_dir { + struct proc_dir_entry *entry; +}; -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 acpi_device_data { + const union acpi_object *pointer; + struct list_head properties; + const union acpi_object *of_compatible; + struct list_head subnodes; }; -struct nd_opt_hdr; +struct acpi_scan_handler; -struct ndisc_options; +struct acpi_hotplug_context; -struct prefix_info; +struct acpi_gpio_mapping; -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 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 *); }; -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 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 ipv4_devconf { - void *sysctl; - int data[33]; - unsigned long state[1]; -}; +typedef u32 acpi_object_type; -struct in_ifaddr; +typedef u64 acpi_io_address; -struct ip_mc_list; +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 in_device { - struct net_device *dev; - netdevice_tracker dev_tracker; - refcount_t refcnt; - int dead; - struct in_ifaddr __attribute__((btf_type_tag("rcu"))) *ifa_list; - struct ip_mc_list __attribute__((btf_type_tag("rcu"))) *mc_list; - struct ip_mc_list __attribute__((btf_type_tag("rcu"))) * __attribute__((btf_type_tag("rcu"))) *mc_hash; - int mc_count; - spinlock_t mc_tomb_lock; - struct ip_mc_list *mc_tomb; - unsigned long mr_v1_seen; - unsigned long mr_v2_seen; - unsigned long mr_maxdelay; - unsigned long mr_qi; - unsigned long mr_qri; - unsigned char mr_qrv; - unsigned char mr_gq_running; - u32 mr_ifc_count; - struct timer_list mr_gq_timer; - struct timer_list mr_ifc_timer; - struct neigh_parms *arp_parms; - struct ipv4_devconf cnf; - struct callback_head callback_head; +struct acpi_device_perf_state { + struct { + u8 valid: 1; + u8 reserved: 7; + } flags; + u8 power; + u8 performance; + int latency; }; -struct ipv6_stable_secret { - bool initialized; - struct in6_addr secret; +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 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 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 icmpv6_mib_device; +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 icmpv6msg_mib_device; +struct acpi_gpio_params; -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 acpi_gpio_mapping { + const char *name; + const struct acpi_gpio_params *data; + unsigned int size; + unsigned int quirks; }; -struct ifmcaddr6; - -struct ifacaddr6; +typedef u32 acpi_status; -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 acpi_power_dependent_device { + struct device *dev; + struct list_head node; }; -struct rps_map; - -struct rps_dev_flow_table; +typedef char *acpi_string; -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 acpi_object_list { + u32 count; + union acpi_object *pointer; }; -struct rps_map { - unsigned int len; - struct callback_head rcu; - u16 cpus[0]; -}; +typedef u64 acpi_size; -struct rps_dev_flow { - u16 cpu; - u16 filter; - unsigned int last_qtail; +struct acpi_buffer { + acpi_size length; + void *pointer; }; -struct rps_dev_flow_table { - unsigned int mask; - struct callback_head rcu; - struct rps_dev_flow flows[0]; +union acpi_name_union { + u32 integer; + char ascii[4]; }; -struct tcf_proto; - -struct tcf_block; - -struct gnet_stats_basic_sync; +typedef u16 acpi_owner_id; -struct gnet_stats_queue; +union acpi_operand_object; -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 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 dql { - unsigned int num_queued; - unsigned int adj_limit; - unsigned int last_obj_cnt; - 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: 64; - long: 64; +struct acpi_object_common { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; }; -struct netdev_queue { - struct net_device *dev; - netdevice_tracker dev_tracker; - struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc; - struct Qdisc __attribute__((btf_type_tag("rcu"))) *qdisc_sleeping; - struct kobject kobj; - int numa_node; - unsigned long tx_maxrate; - atomic_long_t trans_timeout; - struct net_device *sb_dev; - struct xsk_buff_pool *pool; - 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 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 qdisc_skb_head { - struct sk_buff *head; - struct sk_buff *tail; - __u32 qlen; - spinlock_t lock; +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 gnet_stats_basic_sync { - u64_stats_t bytes; - u64_stats_t packets; - struct u64_stats_sync syncp; +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 gnet_stats_queue { - __u32 qlen; - __u32 backlog; - __u32 drops; - __u32 requeues; - __u32 overlimits; +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 Qdisc_ops; +struct acpi_object_event { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + void *os_semaphore; +}; -struct qdisc_size_table; +struct acpi_walk_state; -struct net_rate_estimator; +typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *); -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 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 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 acpi_thread_state; + +struct acpi_object_mutex { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + u8 sync_level; + u16 acquisition_depth; + void *os_mutex; + u64 thread_id; + struct acpi_thread_state *owner_thread; + union acpi_operand_object *prev; + union acpi_operand_object *next; + struct acpi_namespace_node *node; + u8 original_sync_level; }; -struct xps_map; +typedef u64 acpi_physical_address; -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 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 xps_map { - unsigned int len; - unsigned int alloc_len; - struct callback_head rcu; - u16 queues[0]; +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 netpoll; +struct acpi_gpe_block_info; -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 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 pcpu_lstats { - u64_stats_t packets; - u64_stats_t bytes; - struct u64_stats_sync syncp; +struct acpi_object_power_resource { + union acpi_operand_object *next_object; + u8 descriptor_type; + u8 type; + u16 reference_count; + u8 flags; + union acpi_operand_object *notify_list[2]; + union acpi_operand_object *handler; + u32 system_level; + u32 resource_order; }; -struct 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 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 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 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 netprio_map { - struct callback_head rcu; - u32 priomap_len; - u32 priomap[0]; +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 udp_tunnel_nic_table_info { - unsigned int n_entries; - unsigned int tunnel_types; +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 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 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 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 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; }; -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, +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; }; -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, -}; +typedef void (*acpi_notify_handler)(acpi_handle, u32, void *); -enum { - IOU_OK = 0, - IOU_ISSUE_SKIP_COMPLETE = -529, - IOU_STOP_MULTISHOT = -125, +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]; }; -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, +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; }; -enum iter_type { - ITER_IOVEC = 0, - ITER_KVEC = 1, - ITER_BVEC = 2, - ITER_XARRAY = 3, - ITER_DISCARD = 4, - ITER_UBUF = 5, +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; }; -enum sock_type { - SOCK_STREAM = 1, - SOCK_DGRAM = 2, - SOCK_RAW = 3, - SOCK_RDM = 4, - SOCK_SEQPACKET = 5, - SOCK_DCCP = 6, - SOCK_PACKET = 10, +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; }; -enum { - IOU_F_TWQ_LAZY_WAKE = 1, +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; }; -enum { - SKBFL_ZEROCOPY_ENABLE = 1, - SKBFL_SHARED_FRAG = 2, - SKBFL_PURE_ZEROCOPY = 4, - SKBFL_DONT_ORPHAN = 8, - SKBFL_MANAGED_FRAG_REFS = 16, +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; }; -struct io_shutdown { - struct file *file; - int how; +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 compat_msghdr; +union acpi_parse_object; -struct user_msghdr; +union acpi_generic_state; -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; - void __attribute__((btf_type_tag("user"))) *msg_control; - struct io_kiocb *notif; +struct acpi_parse_state { + u8 *aml_start; + u8 *aml; + u8 *aml_end; + u8 *pkg_start; + u8 *pkg_end; + union acpi_parse_object *start_op; + struct acpi_namespace_node *start_node; + union acpi_generic_state *scope; + union acpi_parse_object *start_scope; + u32 aml_size; }; -typedef u32 compat_uint_t; +typedef acpi_status (*acpi_parse_downwards)(struct acpi_walk_state *, union acpi_parse_object **); -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; -}; +typedef acpi_status (*acpi_parse_upwards)(struct acpi_walk_state *); -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 acpi_opcode_info; -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 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; }; -struct io_socket { - struct file *file; - int domain; - int type; - int protocol; - int flags; - u32 file_slot; - unsigned long nofile; +union acpi_parse_value { + u64 integer; + u32 size; + char *string; + u8 *buffer; + char *name; + union acpi_parse_object *arg; }; -struct io_connect { - struct file *file; - struct sockaddr __attribute__((btf_type_tag("user"))) *addr; - int addr_len; - bool in_progress; - bool seen_econnaborted; +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 __kernel_sockaddr_storage { - union { - struct { - __kernel_sa_family_t ss_family; - char __data[126]; - }; - void *__align; - }; +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 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 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]; }; -struct io_notif_data { - struct file *file; - struct ubuf_info uarg; - unsigned long account_pages; - bool zc_report; - bool zc_used; - bool zc_copied; +union acpi_parse_object { + struct acpi_parse_obj_common common; + struct acpi_parse_obj_named named; + struct acpi_parse_obj_asl asl; }; -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 acpi_common_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; }; -struct compat_iovec { - compat_uptr_t iov_base; - compat_size_t iov_len; +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; }; -typedef s32 compat_ssize_t; +struct acpi_update_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + union acpi_operand_object *object; +}; -struct io_uring_recvmsg_out { - __u32 namelen; - __u32 controllen; - __u32 payloadlen; - __u32 flags; +struct acpi_scope_state { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + struct acpi_namespace_node *node; }; -struct io_recvmsg_multishot_hdr { - struct io_uring_recvmsg_out msg; - struct __kernel_sockaddr_storage addr; +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 io_async_connect { - struct __kernel_sockaddr_storage address; +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 pcie_device; +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 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 acpi_result_values { + void *next; + u8 descriptor_type; + u8 flags; + u16 value; + u16 state; + union acpi_operand_object *obj_desc[8]; }; -struct pcie_device { - int irq; - struct pci_dev *port; - u32 service; - void *priv_data; - struct device device; +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; }; -struct rcec_ea { - u8 nextbusn; - u8 lastbusn; - u32 bitmap; +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 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; +struct acpi_global_notify_handler { + acpi_notify_handler handler; + void *context; }; -struct pcie_pme_service_data { - spinlock_t lock; - struct pcie_device *srv; - struct work_struct work; - bool noirq; +struct acpi_opcode_info { + u32 parse_args; + u32 runtime_args; + u16 flags; + u8 object_type; + u8 class; + u8 type; }; -typedef void *acpi_handle; +struct acpi_gpe_xrupt_info; -typedef u64 acpi_size; +struct acpi_gpe_register_info; -union acpi_object; +struct acpi_gpe_event_info; -struct acpi_object_list { - u32 count; - union acpi_object *pointer; +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; }; -typedef u32 acpi_object_type; - -typedef u64 acpi_io_address; - -union acpi_object { - acpi_object_type type; - struct { - acpi_object_type type; - u64 value; - } integer; - struct { - acpi_object_type type; - u32 length; - char *pointer; - } string; - struct { - acpi_object_type type; - u32 length; - u8 *pointer; - } buffer; - struct { - acpi_object_type type; - u32 count; - union acpi_object *elements; - } package; - struct { - acpi_object_type type; - acpi_object_type actual_type; - acpi_handle handle; - } reference; - struct { - acpi_object_type type; - u32 proc_id; - acpi_io_address pblk_address; - u32 pblk_length; - } processor; - struct { - acpi_object_type type; - u32 system_level; - u32 resource_order; - } power_resource; +struct acpi_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; }; -typedef char *acpi_string; +struct acpi_gpe_address { + u8 space_id; + u64 address; +}; -struct acpi_buffer { - acpi_size length; - void *pointer; +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; }; -typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); +struct acpi_gpe_handler_info; -enum acpi_reconfig_event { - ACPI_RECONFIG_DEVICE_ADD = 0, - ACPI_RECONFIG_DEVICE_REMOVE = 1, +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 resource_entry { - struct list_head node; - struct resource *res; - resource_size_t offset; - struct resource __res; +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; }; -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; +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_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; +struct acpi_gpe_notify_info { + struct acpi_namespace_node *device_node; + struct acpi_gpe_notify_info *next; }; -typedef char acpi_bus_id[8]; +typedef enum { + ACPI_IMODE_LOAD_PASS1 = 1, + ACPI_IMODE_LOAD_PASS2 = 2, + ACPI_IMODE_EXECUTE = 3, +} acpi_interpreter_mode; -struct acpi_pnp_type { - u32 hardware_id: 1; - u32 bus_address: 1; - u32 platform_id: 1; - u32 backlight: 1; - u32 reserved: 28; +struct acpi_rsconvert_info { + u8 opcode; + u8 resource_offset; + u8 aml_offset; + u8 value; }; -typedef u64 acpi_bus_address; +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 char acpi_device_name[40]; +typedef u16 acpi_rs_length; -typedef char acpi_device_class[20]; +struct acpi_resource_source { + u8 index; + u16 string_length; + char *string_ptr; +} __attribute__((packed)); -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 aml_resource_small_header { + u8 descriptor_type; }; -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 aml_resource_large_header { + u8 descriptor_type; + u16 resource_length; +} __attribute__((packed)); -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 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 acpi_device_power { - int state; - struct acpi_device_power_flags flags; - struct acpi_device_power_state states[5]; - u8 state_for_enumeration; +struct aml_resource_start_dependent { + u8 descriptor_type; + u8 flags; }; -struct acpi_device_wakeup_flags { - u8 valid: 1; - u8 notifier_present: 1; +struct aml_resource_end_dependent { + u8 descriptor_type; }; -struct acpi_device_wakeup_context { - void (*func)(struct acpi_device_wakeup_context *); - struct device *dev; +struct aml_resource_io { + u8 descriptor_type; + u8 flags; + u16 minimum; + u16 maximum; + u8 alignment; + u8 address_length; }; -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 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 acpi_device_perf_flags { - u8 reserved: 8; +struct aml_resource_end_tag { + u8 descriptor_type; + u8 checksum; }; -struct acpi_device_perf_state; +struct aml_resource_memory24 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u16 minimum; + u16 maximum; + u16 alignment; + u16 address_length; +} __attribute__((packed)); -struct acpi_device_perf { - int state; - struct acpi_device_perf_flags flags; - int state_count; - struct acpi_device_perf_state *states; -}; +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 acpi_device_dir { - struct proc_dir_entry *entry; -}; +struct aml_resource_vendor_large { + u8 descriptor_type; + u16 resource_length; +} __attribute__((packed)); -struct acpi_device_data { - const union acpi_object *pointer; - struct list_head properties; - const union acpi_object *of_compatible; - struct list_head subnodes; -}; +struct aml_resource_memory32 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u32 minimum; + u32 maximum; + u32 alignment; + u32 address_length; +} __attribute__((packed)); -struct acpi_scan_handler; +struct aml_resource_fixed_memory32 { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u32 address; + u32 address_length; +} __attribute__((packed)); -struct acpi_hotplug_context; +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 acpi_gpio_mapping; +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 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 *); -}; +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 acpi_device_perf_state { - struct { - u8 valid: 1; - u8 reserved: 7; - } flags; - u8 power; - u8 performance; - int latency; -}; +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 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 aml_resource_extended_irq { + u8 descriptor_type; + u16 resource_length; + u8 flags; + u8 interrupt_count; + union { + u32 interrupt; + struct { + struct {} __Empty_interrupts; + u32 interrupts[0]; + }; + }; +} __attribute__((packed)); -struct 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 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 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 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 acpi_gpio_params; +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 acpi_gpio_mapping { - const char *name; - const struct acpi_gpio_params *data; - unsigned int size; - unsigned int quirks; -}; +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 acpi_resource; +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)); -typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); +struct aml_resource_common_serialbus { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u8 res_source_index; + u8 type; + u8 flags; + u16 type_specific_flags; + u8 type_revision_id; + u16 type_data_length; +} __attribute__((packed)); + +struct aml_resource_pin_function { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config; + u16 function_number; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_config { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config_type; + u32 pin_config_value; + u16 pin_table_offset; + u8 res_source_index; + u16 res_source_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 pin_table_offset; + u16 label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group_function { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 function_number; + u8 res_source_index; + u16 res_source_offset; + u16 res_source_label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_pin_group_config { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u8 pin_config_type; + u32 pin_config_value; + u8 res_source_index; + u16 res_source_offset; + u16 res_source_label_offset; + u16 vendor_offset; + u16 vendor_length; +} __attribute__((packed)); + +struct aml_resource_clock_input { + u8 descriptor_type; + u16 resource_length; + u8 revision_id; + u16 flags; + u16 frequency_divisor; + u32 frequency_numerator; +} __attribute__((packed)); + +struct aml_resource_address { + u8 descriptor_type; + u16 resource_length; + u8 resource_type; + u8 flags; + u8 specific_flags; +} __attribute__((packed)); + +union aml_resource { + u8 descriptor_type; + struct aml_resource_small_header small_header; + struct aml_resource_large_header large_header; + struct aml_resource_irq irq; + struct aml_resource_dma dma; + struct aml_resource_start_dependent start_dpf; + struct aml_resource_end_dependent end_dpf; + struct aml_resource_io io; + struct aml_resource_fixed_io fixed_io; + struct aml_resource_fixed_dma fixed_dma; + struct aml_resource_vendor_small vendor_small; + struct aml_resource_end_tag end_tag; + struct aml_resource_memory24 memory24; + struct aml_resource_generic_register generic_reg; + struct aml_resource_vendor_large vendor_large; + struct aml_resource_memory32 memory32; + struct aml_resource_fixed_memory32 fixed_memory32; + struct aml_resource_address16 address16; + struct aml_resource_address32 address32; + struct aml_resource_address64 address64; + struct aml_resource_extended_address64 ext_address64; + struct aml_resource_extended_irq extended_irq; + struct aml_resource_gpio gpio; + struct aml_resource_i2c_serialbus i2c_serial_bus; + struct aml_resource_spi_serialbus spi_serial_bus; + struct aml_resource_uart_serialbus uart_serial_bus; + struct aml_resource_csi2_serialbus csi2_serial_bus; + struct aml_resource_common_serialbus common_serial_bus; + struct aml_resource_pin_function pin_function; + struct aml_resource_pin_config pin_config; + struct aml_resource_pin_group pin_group; + struct aml_resource_pin_group_function pin_group_function; + struct aml_resource_pin_group_config pin_group_config; + struct aml_resource_clock_input clock_input; + struct aml_resource_address address; + u32 dword_item; + u16 word_item; + u8 byte_item; +}; struct acpi_resource_irq { u8 descriptor_length; @@ -26205,12 +28519,6 @@ struct acpi_address16_attribute { 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; @@ -26523,1965 +28831,894 @@ struct acpi_resource { union acpi_resource_data data; }; -struct acpi_namespace_node; - -union acpi_operand_object; - -union acpi_predefined_info; +typedef u32 acpi_rsdesc_size; -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_common_descriptor { + void *common_pointer; + u8 descriptor_type; }; -union acpi_name_union { - u32 integer; - char ascii[4]; +union acpi_descriptor { + struct acpi_common_descriptor common; + union acpi_operand_object object; + struct acpi_namespace_node node; + union acpi_parse_object op; }; -typedef u16 acpi_owner_id; +typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *); -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; +enum cpufreq_table_sorting { + CPUFREQ_TABLE_UNSORTED = 0, + CPUFREQ_TABLE_SORTED_ASCENDING = 1, + CPUFREQ_TABLE_SORTED_DESCENDING = 2, }; -struct acpi_object_common { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; +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_object_integer { - union acpi_operand_object *next_object; - u8 descriptor_type; +struct acpi_processor_cx { + u8 valid; u8 type; - u16 reference_count; - u8 flags; - u8 fill[3]; - u64 value; + u32 address; + u8 entry_method; + u8 index; + u32 latency; + u8 bm_sts_skip; + char desc[32]; }; -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_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_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_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_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_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_object_event { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - void *os_semaphore; +struct acpi_processor_tx { + u16 power; + u16 performance; }; -struct acpi_walk_state; +struct acpi_processor_tx_tss; -typedef acpi_status (*acpi_internal_method)(struct acpi_walk_state *); +struct acpi_processor; -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_processor_throttling { + unsigned int state; + unsigned int platform_limit; + struct acpi_pct_register control_register; + struct acpi_pct_register status_register; + unsigned int state_count; + struct acpi_processor_tx_tss *states_tss; + struct acpi_tsd_package domain_info; + cpumask_var_t shared_cpu_map; + int (*acpi_processor_get_throttling)(struct acpi_processor *); + int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool); + u32 address; + u8 duty_offset; + u8 duty_width; + u8 tsd_valid_flag; + unsigned int shared_type; + struct acpi_processor_tx states[16]; }; -struct acpi_thread_state; - -struct acpi_object_mutex { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - u8 sync_level; - u16 acquisition_depth; - void *os_mutex; - u64 thread_id; - struct acpi_thread_state *owner_thread; - union acpi_operand_object *prev; - union acpi_operand_object *next; - struct acpi_namespace_node *node; - u8 original_sync_level; +struct acpi_processor_lx { + int px; + int tx; }; -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_processor_limit { + struct acpi_processor_lx state; + struct acpi_processor_lx thermal; + struct acpi_processor_lx user; }; -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_processor_performance; -struct acpi_gpe_block_info; +struct thermal_cooling_device; -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_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_object_power_resource { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; - u8 flags; - union acpi_operand_object *notify_list[2]; - union acpi_operand_object *handler; - u32 system_level; - u32 resource_order; +struct acpi_psd_package { + u64 num_entries; + u64 revision; + u64 domain; + u64 coord_type; + u64 num_processors; }; -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_processor_px; -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_processor_performance { + unsigned int state; + unsigned int platform_limit; + struct acpi_pct_register control_register; + struct acpi_pct_register status_register; + unsigned int state_count; + struct acpi_processor_px *states; + struct acpi_psd_package domain_info; + cpumask_var_t shared_cpu_map; + unsigned int shared_type; }; -struct acpi_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_processor_px { + u64 core_frequency; + u64 power; + u64 transition_latency; + u64 bus_master_latency; + u64 control; + u64 status; }; -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_processor_tx_tss { + u64 freqpercentage; + u64 power; + u64 transition_latency; + u64 control; + u64 status; }; -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 thermal_cooling_device_ops; -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 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 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; +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 *); }; -typedef void (*acpi_notify_handler)(acpi_handle, u32, void *); +struct clk; -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]; +struct cpufreq_cpuinfo { + unsigned int max_freq; + unsigned int min_freq; + unsigned int transition_latency; }; -typedef acpi_status (*acpi_adr_space_handler)(u32, acpi_physical_address, u32, u64 *, void *, void *); +struct cpufreq_stats; -typedef acpi_status (*acpi_adr_space_setup)(acpi_handle, u32, void *, void **); +struct cpufreq_governor; -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 cpufreq_frequency_table; -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 cpufreq_policy { + cpumask_var_t cpus; + cpumask_var_t related_cpus; + cpumask_var_t real_cpus; + unsigned int shared_type; + unsigned int cpu; + struct clk *clk; + struct cpufreq_cpuinfo cpuinfo; + unsigned int min; + unsigned int max; + unsigned int cur; + unsigned int suspend_freq; + unsigned int policy; + unsigned int last_policy; + struct cpufreq_governor *governor; + void *governor_data; + char last_governor[16]; + struct work_struct update; + struct freq_constraints constraints; + struct freq_qos_request *min_freq_req; + struct freq_qos_request *max_freq_req; + struct cpufreq_frequency_table *freq_table; + enum cpufreq_table_sorting freq_table_sorted; + struct list_head policy_list; + struct kobject kobj; + struct completion kobj_unregister; + struct rw_semaphore rwsem; + bool fast_switch_possible; + bool fast_switch_enabled; + bool strict_target; + bool efficiencies_available; + unsigned int transition_delay_us; + bool dvfs_possible_from_any_cpu; + bool boost_enabled; + unsigned int cached_target_freq; + unsigned int cached_resolved_idx; + bool transition_ongoing; + spinlock_t transition_lock; + wait_queue_head_t transition_wait; + struct task_struct *transition_task; + struct cpufreq_stats *stats; + void *driver_data; + struct thermal_cooling_device *cdev; + struct notifier_block nb_min; + struct notifier_block nb_max; }; -struct acpi_object_extra { - union acpi_operand_object *next_object; - u8 descriptor_type; - u8 type; - u16 reference_count; +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 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 cpufreq_frequency_table { + unsigned int flags; + unsigned int driver_data; + unsigned int frequency; +}; -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_vendor_uuid { + u8 subtype; + u8 data[16]; }; -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; -}; - -union acpi_parse_object; - -union acpi_generic_state; +struct pnp_protocol; -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; -}; +struct pnp_card; -typedef acpi_status (*acpi_parse_downwards)(struct acpi_walk_state *, union acpi_parse_object **); +struct pnp_driver; -typedef acpi_status (*acpi_parse_upwards)(struct acpi_walk_state *); +struct pnp_card_link; -struct acpi_opcode_info; +struct pnp_id; -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; +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; }; -union acpi_parse_value { - u64 integer; - u32 size; - char *string; - u8 *buffer; +struct pnp_protocol { + struct list_head protocol_list; char *name; - union acpi_parse_object *arg; + 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 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 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 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 pnp_id { + char id[8]; + struct pnp_id *next; }; -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]; -}; +struct pnp_device_id; -union acpi_parse_object { - struct acpi_parse_obj_common common; - struct acpi_parse_obj_named named; - struct acpi_parse_obj_asl asl; +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 acpi_common_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; +struct pnp_device_id { + __u8 id[8]; + kernel_ulong_t driver_data; }; -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 pnp_card_driver; -struct acpi_update_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - union acpi_operand_object *object; +struct pnp_card_link { + struct pnp_card *card; + struct pnp_card_driver *driver; + void *driver_data; + pm_message_t pm_state; }; -struct acpi_scope_state { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - struct acpi_namespace_node *node; -}; +struct pnp_card_device_id; -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 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 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 pnp_card_device_id { + __u8 id[8]; + kernel_ulong_t driver_data; + struct { + __u8 id[8]; + } devs[8]; }; -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; +typedef acpi_status (*acpi_walk_resource_callback)(struct acpi_resource *, void *); + +struct resource_win { + struct resource res; + resource_size_t offset; }; -struct acpi_result_values { - void *next; - u8 descriptor_type; - u8 flags; - u16 value; - u16 state; - union acpi_operand_object *obj_desc[8]; +struct pnp_resource { + struct list_head list; + struct resource res; }; -struct acpi_global_notify_handler; +typedef struct { + unsigned long bits[4]; +} pnp_irq_mask_t; -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; +struct acpipnp_parse_option_s { + struct pnp_dev *dev; + unsigned int option_flags; }; -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 ld_semaphore { + atomic_long_t count; + raw_spinlock_t wait_lock; + unsigned int wait_readers; + struct list_head read_wait; + struct list_head write_wait; }; -struct acpi_global_notify_handler { - acpi_notify_handler handler; - void *context; +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 acpi_opcode_info { - u32 parse_args; - u32 runtime_args; - u16 flags; - u8 object_type; - u8 class; - u8 type; +struct winsize { + unsigned short ws_row; + unsigned short ws_col; + unsigned short ws_xpixel; + unsigned short ws_ypixel; }; -struct acpi_gpe_xrupt_info; +struct tty_driver; -struct acpi_gpe_register_info; +struct tty_port; -struct acpi_gpe_event_info; +struct tty_operations; -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 tty_ldisc; -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 tty_struct { + struct kref kref; + int index; + struct device *dev; + struct tty_driver *driver; + struct tty_port *port; + const struct tty_operations *ops; + struct tty_ldisc *ldisc; + struct ld_semaphore ldisc_sem; + struct mutex atomic_write_lock; + struct mutex legacy_mutex; + struct mutex throttle_mutex; + struct rw_semaphore termios_rwsem; + struct mutex winsize_mutex; + struct ktermios termios; + struct ktermios termios_locked; + char name[64]; + unsigned long flags; + int count; + unsigned int receive_room; + struct winsize winsize; + struct { + spinlock_t lock; + bool stopped; + bool tco_stopped; + unsigned long unused[0]; + } flow; + struct { + struct pid *pgrp; + struct pid *session; + spinlock_t lock; + unsigned char pktstatus; + bool packet; + unsigned long unused[0]; + } ctrl; + bool hw_stopped; + bool closing; + int flow_change; + struct tty_struct *link; + struct fasync_struct *fasync; + wait_queue_head_t write_wait; + wait_queue_head_t read_wait; + struct work_struct hangup_work; + void *disc_data; + void *driver_data; + spinlock_t files_lock; + int write_cnt; + unsigned char *write_buf; + struct list_head tty_files; + struct work_struct SAK_work; }; -struct acpi_gpe_address { - u8 space_id; - u64 address; +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 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 tty_buffer { + union { + struct tty_buffer *next; + struct llist_node free; + }; + unsigned int used; + unsigned int size; + unsigned int commit; + unsigned int lookahead; + unsigned int read; + bool flags; + long: 0; + u8 data[0]; }; -struct acpi_gpe_handler_info; +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 acpi_gpe_notify_info; +struct tty_port_operations; -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 tty_port_client_operations; -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; +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; }; -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 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 acpi_gpe_notify_info { - struct acpi_namespace_node *device_node; - struct acpi_gpe_notify_info *next; +struct tty_port_client_operations { + size_t (*receive_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_port *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_port *); }; -struct acpi_name_info { - char name[4]; - u16 argument_list; - u8 expected_btypes; -} __attribute__((packed)); +struct serial_icounter_struct; -struct acpi_package_info { - u8 type; - u8 object_type1; - u8 count1; - u8 object_type2; - u8 count2; - u16 reserved; -} __attribute__((packed)); +struct serial_struct; -struct acpi_package_info2 { - u8 type; - u8 count; - u8 object_type[4]; - u8 reserved; +struct tty_operations { + struct tty_struct * (*lookup)(struct tty_driver *, struct file *, int); + int (*install)(struct tty_driver *, struct tty_struct *); + void (*remove)(struct tty_driver *, struct tty_struct *); + int (*open)(struct tty_struct *, struct file *); + void (*close)(struct tty_struct *, struct file *); + void (*shutdown)(struct tty_struct *); + void (*cleanup)(struct tty_struct *); + ssize_t (*write)(struct tty_struct *, const u8 *, size_t); + int (*put_char)(struct tty_struct *, u8); + void (*flush_chars)(struct tty_struct *); + unsigned int (*write_room)(struct tty_struct *); + unsigned int (*chars_in_buffer)(struct tty_struct *); + int (*ioctl)(struct tty_struct *, unsigned int, unsigned long); + long (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long); + void (*set_termios)(struct tty_struct *, const struct ktermios *); + void (*throttle)(struct tty_struct *); + void (*unthrottle)(struct tty_struct *); + void (*stop)(struct tty_struct *); + void (*start)(struct tty_struct *); + void (*hangup)(struct tty_struct *); + int (*break_ctl)(struct tty_struct *, int); + void (*flush_buffer)(struct tty_struct *); + void (*set_ldisc)(struct tty_struct *); + void (*wait_until_sent)(struct tty_struct *, int); + void (*send_xchar)(struct tty_struct *, 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 acpi_package_info3 { - u8 type; - u8 count; - u8 object_type[2]; - u8 tail_object_type; - u16 reserved; -} __attribute__((packed)); +struct tty_ldisc_ops; -struct acpi_package_info4 { - u8 type; - u8 object_type1; - u8 count1; - u8 sub_object_types; - u8 pkg_count; - u16 reserved; -} __attribute__((packed)); +struct tty_ldisc { + struct tty_ldisc_ops *ops; + struct tty_struct *tty; +}; -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 tty_ldisc_ops { + char *name; + int num; + int (*open)(struct tty_struct *); + void (*close)(struct tty_struct *); + void (*flush_buffer)(struct tty_struct *); + ssize_t (*read)(struct tty_struct *, struct file *, u8 *, size_t, void **, unsigned long); + ssize_t (*write)(struct tty_struct *, struct file *, const u8 *, size_t); + int (*ioctl)(struct tty_struct *, unsigned int, unsigned long); + int (*compat_ioctl)(struct tty_struct *, unsigned int, unsigned long); + void (*set_termios)(struct tty_struct *, const struct ktermios *); + __poll_t (*poll)(struct tty_struct *, struct file *, struct poll_table_struct *); + void (*hangup)(struct tty_struct *); + void (*receive_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*write_wakeup)(struct tty_struct *); + void (*dcd_change)(struct tty_struct *, bool); + size_t (*receive_buf2)(struct tty_struct *, const u8 *, const u8 *, size_t); + void (*lookahead_buf)(struct tty_struct *, const u8 *, const u8 *, size_t); + struct module *owner; }; -struct acpi_rsconvert_info { - u8 opcode; - u8 resource_offset; - u8 aml_offset; - u8 value; +struct ldsem_waiter { + struct list_head list; + struct task_struct *task; }; -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, +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]; }; -typedef u16 acpi_rs_length; +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 aml_resource_small_header { - u8 descriptor_type; +enum uart_pm_state { + UART_PM_STATE_ON = 0, + UART_PM_STATE_OFF = 3, + UART_PM_STATE_UNDEFINED = 4, }; -struct aml_resource_large_header { - u8 descriptor_type; - u16 resource_length; -} __attribute__((packed)); +enum nbcon_prio { + NBCON_PRIO_NONE = 0, + NBCON_PRIO_NORMAL = 1, + NBCON_PRIO_EMERGENCY = 2, + NBCON_PRIO_PANIC = 3, + NBCON_PRIO_MAX = 4, +}; -struct aml_resource_irq { - u8 descriptor_type; - u16 irq_mask; - u8 flags; -} __attribute__((packed)); +enum dma_desc_metadata_mode { + DESC_METADATA_NONE = 0, + DESC_METADATA_CLIENT = 1, + DESC_METADATA_ENGINE = 2, +}; -struct aml_resource_dma { - u8 descriptor_type; - u8 dma_channel_mask; - u8 flags; +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, }; -struct aml_resource_start_dependent { - u8 descriptor_type; - u8 flags; +enum dma_residue_granularity { + DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, + DMA_RESIDUE_GRANULARITY_SEGMENT = 1, + DMA_RESIDUE_GRANULARITY_BURST = 2, }; -struct aml_resource_end_dependent { - u8 descriptor_type; +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, }; -struct aml_resource_io { - u8 descriptor_type; - u8 flags; - u16 minimum; - u16 maximum; - u8 alignment; - u8 address_length; +enum dmaengine_tx_result { + DMA_TRANS_NOERROR = 0, + DMA_TRANS_READ_FAILED = 1, + DMA_TRANS_WRITE_FAILED = 2, + DMA_TRANS_ABORTED = 3, }; -struct aml_resource_fixed_io { - u8 descriptor_type; - u16 address; - u8 address_length; -} __attribute__((packed)); +enum sum_check_flags { + SUM_CHECK_P_RESULT = 1, + SUM_CHECK_Q_RESULT = 2, +}; -struct aml_resource_fixed_dma { - u8 descriptor_type; - u16 request_lines; - u16 channels; - u8 width; -} __attribute__((packed)); +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, +}; -struct aml_resource_vendor_small { - u8 descriptor_type; +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, }; -struct aml_resource_end_tag { - u8 descriptor_type; - u8 checksum; +enum dma_status { + DMA_COMPLETE = 0, + DMA_IN_PROGRESS = 1, + DMA_PAUSED = 2, + DMA_ERROR = 3, + DMA_OUT_OF_ORDER = 4, }; -struct aml_resource_memory24 { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u16 minimum; - u16 maximum; - u16 alignment; - u16 address_length; -} __attribute__((packed)); +typedef u64 upf_t; -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 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; +}; -struct aml_resource_vendor_large { - u8 descriptor_type; - u16 resource_length; -} __attribute__((packed)); +typedef unsigned int upstat_t; -struct aml_resource_memory32 { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u32 minimum; - u32 maximum; - u32 alignment; - u32 address_length; -} __attribute__((packed)); +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 aml_resource_fixed_memory32 { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u32 address; - u32 address_length; -} __attribute__((packed)); +struct gpio_desc; -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 serial_iso7816 { + __u32 flags; + __u32 tg; + __u32 sc_fi; + __u32 sc_di; + __u32 clk; + __u32 reserved[5]; +}; -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 uart_state; -struct aml_resource_address64 { - u8 descriptor_type; - u16 resource_length; - u8 resource_type; - u8 flags; - u8 specific_flags; - u64 granularity; - u64 minimum; - u64 maximum; - u64 translation_offset; - u64 address_length; -} __attribute__((packed)); - -struct aml_resource_extended_address64 { - u8 descriptor_type; - u16 resource_length; - u8 resource_type; - u8 flags; - u8 specific_flags; - u8 revision_ID; - u8 reserved; - u64 granularity; - u64 minimum; - u64 maximum; - u64 translation_offset; - u64 address_length; - u64 type_specific; -} __attribute__((packed)); - -struct aml_resource_extended_irq { - u8 descriptor_type; - u16 resource_length; - u8 flags; - u8 interrupt_count; - union { - u32 interrupt; - struct { - struct {} __Empty_interrupts; - u32 interrupts[0]; - }; - }; -} __attribute__((packed)); - -struct aml_resource_gpio { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 connection_type; - u16 flags; - u16 int_flags; - u8 pin_config; - u16 drive_strength; - u16 debounce_timeout; - u16 pin_table_offset; - u8 res_source_index; - u16 res_source_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_i2c_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; - u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; - u32 connection_speed; - u16 slave_address; -} __attribute__((packed)); - -struct aml_resource_spi_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; - u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; - u32 connection_speed; - u8 data_bit_length; - u8 clock_phase; - u8 clock_polarity; - u16 device_selection; -} __attribute__((packed)); - -struct aml_resource_uart_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; - u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; - u32 default_baud_rate; - u16 rx_fifo_size; - u16 tx_fifo_size; - u8 parity; - u8 lines_enabled; -} __attribute__((packed)); - -struct aml_resource_csi2_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; - u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; -} __attribute__((packed)); - -struct aml_resource_common_serialbus { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u8 res_source_index; - u8 type; - u8 flags; - u16 type_specific_flags; - u8 type_revision_id; - u16 type_data_length; -} __attribute__((packed)); - -struct aml_resource_pin_function { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u8 pin_config; - u16 function_number; - u16 pin_table_offset; - u8 res_source_index; - u16 res_source_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_pin_config { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u8 pin_config_type; - u32 pin_config_value; - u16 pin_table_offset; - u8 res_source_index; - u16 res_source_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_pin_group { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u16 pin_table_offset; - u16 label_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_pin_group_function { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u16 function_number; - u8 res_source_index; - u16 res_source_offset; - u16 res_source_label_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_pin_group_config { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u8 pin_config_type; - u32 pin_config_value; - u8 res_source_index; - u16 res_source_offset; - u16 res_source_label_offset; - u16 vendor_offset; - u16 vendor_length; -} __attribute__((packed)); - -struct aml_resource_clock_input { - u8 descriptor_type; - u16 resource_length; - u8 revision_id; - u16 flags; - u16 frequency_divisor; - u32 frequency_numerator; -} __attribute__((packed)); - -struct aml_resource_address { - u8 descriptor_type; - u16 resource_length; - u8 resource_type; - u8 flags; - u8 specific_flags; -} __attribute__((packed)); - -union aml_resource { - u8 descriptor_type; - struct aml_resource_small_header small_header; - struct aml_resource_large_header large_header; - struct aml_resource_irq irq; - struct aml_resource_dma dma; - struct aml_resource_start_dependent start_dpf; - struct aml_resource_end_dependent end_dpf; - struct aml_resource_io io; - struct aml_resource_fixed_io fixed_io; - struct aml_resource_fixed_dma fixed_dma; - struct aml_resource_vendor_small vendor_small; - struct aml_resource_end_tag end_tag; - struct aml_resource_memory24 memory24; - struct aml_resource_generic_register generic_reg; - struct aml_resource_vendor_large vendor_large; - struct aml_resource_memory32 memory32; - struct aml_resource_fixed_memory32 fixed_memory32; - struct aml_resource_address16 address16; - struct aml_resource_address32 address32; - struct aml_resource_address64 address64; - struct aml_resource_extended_address64 ext_address64; - struct aml_resource_extended_irq extended_irq; - struct aml_resource_gpio gpio; - struct aml_resource_i2c_serialbus i2c_serial_bus; - struct aml_resource_spi_serialbus spi_serial_bus; - struct aml_resource_uart_serialbus uart_serial_bus; - struct aml_resource_csi2_serialbus csi2_serial_bus; - struct aml_resource_common_serialbus common_serial_bus; - struct aml_resource_pin_function pin_function; - struct aml_resource_pin_config pin_config; - struct aml_resource_pin_group pin_group; - struct aml_resource_pin_group_function pin_group_function; - struct aml_resource_pin_group_config pin_group_config; - struct aml_resource_clock_input clock_input; - struct aml_resource_address address; - u32 dword_item; - u16 word_item; - u8 byte_item; -}; - -typedef u32 acpi_rsdesc_size; - -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; - unsigned int state_count; - struct acpi_processor_tx_tss *states_tss; - struct acpi_tsd_package domain_info; - cpumask_var_t shared_cpu_map; - int (*acpi_processor_get_throttling)(struct acpi_processor *); - int (*acpi_processor_set_throttling)(struct acpi_processor *, int, bool); - u32 address; - u8 duty_offset; - u8 duty_width; - u8 tsd_valid_flag; - unsigned int shared_type; - struct acpi_processor_tx states[16]; -}; - -struct acpi_processor_lx { - int px; - int tx; -}; - -struct acpi_processor_limit { - struct acpi_processor_lx state; - struct acpi_processor_lx thermal; - struct acpi_processor_lx user; -}; - -struct acpi_processor_performance; - -struct acpi_processor { - acpi_handle handle; - u32 acpi_id; - phys_cpuid_t phys_id; - u32 id; - u32 pblk; - int performance_platform_limit; - int throttling_platform_limit; - struct acpi_processor_flags flags; - struct acpi_processor_power power; - struct acpi_processor_performance *performance; - struct acpi_processor_throttling throttling; - struct acpi_processor_limit limit; - struct thermal_cooling_device *cdev; - struct device *dev; - struct freq_qos_request perflib_req; - struct freq_qos_request thermal_req; -}; - -struct acpi_psd_package { - u64 num_entries; - u64 revision; - u64 domain; - u64 coord_type; - u64 num_processors; -}; - -struct acpi_processor_px; - -struct acpi_processor_performance { - unsigned int state; - unsigned int platform_limit; - struct acpi_pct_register control_register; - struct acpi_pct_register status_register; - unsigned int state_count; - struct acpi_processor_px *states; - struct acpi_psd_package domain_info; - cpumask_var_t shared_cpu_map; - unsigned int shared_type; -}; - -struct acpi_processor_px { - u64 core_frequency; - u64 power; - u64 transition_latency; - u64 bus_master_latency; - u64 control; - u64 status; -}; - -struct acpi_processor_tx_tss { - u64 freqpercentage; - u64 power; - u64 transition_latency; - u64 control; - u64 status; -}; - -struct thermal_cooling_device_ops; - -struct thermal_cooling_device { - int id; - 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 *); -}; - -typedef unsigned int tcflag_t; - -typedef unsigned char cc_t; - -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]; -}; - -typedef unsigned int speed_t; - -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 ld_semaphore { - atomic_long_t count; - raw_spinlock_t wait_lock; - unsigned int wait_readers; - struct list_head read_wait; - struct list_head write_wait; -}; - -struct 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; - bool 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 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 mid8250; - -struct uart_port; - -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 dma_chan; - -typedef bool (*dma_filter_fn)(struct dma_chan *, void *); - -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, -}; - -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_port; - -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 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 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 console; struct uart_ops; @@ -28538,7 +29775,7 @@ struct uart_port { struct device *dev; struct serial_port_device *port_dev; unsigned long sysrq; - unsigned int sysrq_ch; + u8 sysrq_ch; unsigned char has_sysrq; unsigned char sysrq_seq; unsigned char hub6; @@ -28557,6 +29794,8 @@ struct uart_port { struct mctrl_gpios; +struct uart_8250_dma; + struct uart_8250_ops; struct uart_8250_em485; @@ -28592,12 +29831,6 @@ struct uart_8250_port { u32 overrun_backoff_time_ms; }; -enum uart_pm_state { - UART_PM_STATE_ON = 0, - UART_PM_STATE_OFF = 3, - UART_PM_STATE_UNDEFINED = 4, -}; - struct circ_buf { char *buf; int head; @@ -28615,6 +29848,10 @@ struct uart_state { typedef unsigned int uint; +struct nbcon_write_context; + +struct printk_buffers; + struct console { char name[16]; void (*write)(struct console *, const char *, unsigned int); @@ -28633,6 +29870,27 @@ struct console { unsigned long dropped; void *data; struct hlist_node node; + bool (*write_atomic)(struct console *, struct nbcon_write_context *); + atomic_t nbcon_state; + atomic_long_t nbcon_seq; + struct printk_buffers *pbufs; +}; + +struct nbcon_context { + struct console *console; + unsigned int spinwait_max_us; + enum nbcon_prio prio; + unsigned int allow_unsafe_takeover: 1; + unsigned int backlog: 1; + struct printk_buffers *pbufs; + u64 seq; +}; + +struct nbcon_write_context { + struct nbcon_context ctxt; + char *outbuf; + unsigned int len; + bool unsafe_takeover; }; struct uart_ops { @@ -28662,18 +29920,51 @@ struct uart_ops { int (*ioctl)(struct uart_port *, unsigned int, unsigned long); }; -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 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; }; -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; +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; @@ -28714,47 +30005,6 @@ typedef struct { unsigned long bits[1]; } dma_cap_mask_t; -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, -}; - -struct ida { - struct xarray xa; -}; - -enum dma_residue_granularity { - DMA_RESIDUE_GRANULARITY_DESCRIPTOR = 0, - DMA_RESIDUE_GRANULARITY_SEGMENT = 1, - DMA_RESIDUE_GRANULARITY_BURST = 2, -}; - -enum sum_check_flags { - SUM_CHECK_P_RESULT = 1, - SUM_CHECK_Q_RESULT = 2, -}; - -enum dma_status { - DMA_COMPLETE = 0, - DMA_IN_PROGRESS = 1, - DMA_PAUSED = 2, - DMA_ERROR = 3, - DMA_OUT_OF_ORDER = 4, -}; - struct dma_async_tx_descriptor; struct dma_interleaved_template; @@ -28824,19 +30074,6 @@ struct dma_slave_map { void *param; }; -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, -}; - typedef void (*dma_async_tx_callback)(void *); struct dmaengine_result; @@ -28862,13 +30099,6 @@ struct dma_async_tx_descriptor { struct dma_descriptor_metadata_ops *metadata_ops; }; -enum dmaengine_tx_result { - DMA_TRANS_NOERROR = 0, - DMA_TRANS_READ_FAILED = 1, - DMA_TRANS_WRITE_FAILED = 2, - DMA_TRANS_ABORTED = 3, -}; - struct dmaengine_result { enum dmaengine_tx_result result; u32 residue; @@ -28949,9 +30179,90 @@ struct dma_router { void (*route_free)(struct device *, void *); }; -struct hsu_dma_slave { - struct device *dma_dev; - int chan_id; +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_gem_object_status { + DRM_GEM_OBJECT_RESIDENT = 1, + DRM_GEM_OBJECT_PURGEABLE = 2, +}; + +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 switch_power_state { @@ -28961,6 +30272,175 @@ enum switch_power_state { DRM_SWITCH_POWER_DYNAMIC_OFF = 3, }; +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_colorspace { + DRM_MODE_COLORIMETRY_DEFAULT = 0, + DRM_MODE_COLORIMETRY_NO_DATA = 0, + DRM_MODE_COLORIMETRY_SMPTE_170M_YCC = 1, + DRM_MODE_COLORIMETRY_BT709_YCC = 2, + DRM_MODE_COLORIMETRY_XVYCC_601 = 3, + DRM_MODE_COLORIMETRY_XVYCC_709 = 4, + DRM_MODE_COLORIMETRY_SYCC_601 = 5, + DRM_MODE_COLORIMETRY_OPYCC_601 = 6, + DRM_MODE_COLORIMETRY_OPRGB = 7, + DRM_MODE_COLORIMETRY_BT2020_CYCC = 8, + DRM_MODE_COLORIMETRY_BT2020_RGB = 9, + DRM_MODE_COLORIMETRY_BT2020_YCC = 10, + DRM_MODE_COLORIMETRY_DCI_P3_RGB_D65 = 11, + DRM_MODE_COLORIMETRY_DCI_P3_RGB_THEATER = 12, + DRM_MODE_COLORIMETRY_RGB_WIDE_FIXED = 13, + DRM_MODE_COLORIMETRY_RGB_WIDE_FLOAT = 14, + DRM_MODE_COLORIMETRY_BT601_YCC = 15, + DRM_MODE_COLORIMETRY_COUNT = 16, +}; + +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 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_GEM_GPUVA = 256, + DRIVER_USE_AGP = 33554432, + DRIVER_LEGACY = 67108864, + DRIVER_PCI_DMA = 134217728, + DRIVER_SG = 268435456, + DRIVER_HAVE_DMA = 536870912, + DRIVER_HAVE_IRQ = 1073741824, +}; + +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, +}; + +struct drm_device; + +struct drm_client_funcs; + +struct drm_file; + +struct drm_mode_set; + +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 ww_acquire_ctx; struct ww_mutex { @@ -29146,12 +30626,9 @@ struct drm_device { 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 dentry *debugfs_root; }; -struct drm_file; - struct drm_gem_object; struct dma_buf; @@ -29179,7 +30656,6 @@ struct drm_driver { 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 *); void (*show_fdinfo)(struct drm_printer *, struct drm_file *); @@ -29195,38 +30671,45 @@ struct drm_driver { const struct file_operations *fops; }; -struct drm_mode_create_dumb { - __u32 height; - __u32 width; - __u32 bpp; - __u32 flags; - __u32 handle; - __u32 pitch; - __u64 size; -}; - -struct drm_printer { - void (*printfn)(struct drm_printer *, struct va_format *); - void (*puts)(struct drm_printer *, const char *); - void *arg; - const char *prefix; -}; +typedef unsigned int drm_magic_t; -enum drm_ioctl_flags { - DRM_AUTH = 1, - DRM_MASTER = 2, - DRM_ROOT_ONLY = 4, - DRM_UNLOCKED = 16, - DRM_RENDER_ALLOW = 32, +struct drm_prime_file_private { + struct mutex lock; + struct rb_root dmabufs; + struct rb_root handles; }; -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 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 __attribute__((btf_type_tag("rcu"))) *pid; + u64 client_id; + 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 { @@ -29244,6 +30727,81 @@ struct drm_master { struct idr lessee_idr; }; +struct drm_minor { + int index; + int type; + struct device *kdev; + struct drm_device *dev; + struct dentry *debugfs_symlink; + struct dentry *debugfs_root; +}; + +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_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 { + 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; + struct { + struct list_head list; + } gpuva; + const struct drm_gem_object_funcs *funcs; + struct list_head lru_node; + struct drm_gem_lru *lru; +}; + +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 ww_acquire_ctx { struct task_struct *task; unsigned long stamp; @@ -29252,116 +30810,95 @@ struct ww_acquire_ctx { unsigned short is_wait_die; }; -typedef u32 depot_stack_handle_t; +struct dma_fence; -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 dma_resv_list { + struct callback_head rcu; + u32 num_fences; + u32 max_fences; + struct dma_fence __attribute__((btf_type_tag("rcu"))) *table[0]; }; -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, +struct iosys_map; + +struct drm_gem_object_funcs { + 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 *); + int (*evict)(struct drm_gem_object *); + enum drm_gem_object_status (*status)(struct drm_gem_object *); + size_t (*rss)(struct drm_gem_object *); + const struct vm_operations_struct *vm_ops; }; -struct drm_framebuffer; +struct va_format; -struct drm_mode_fb_cmd2; +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_format_info; +struct __va_list_tag { + unsigned int gp_offset; + unsigned int fp_offset; + void *overflow_arg_area; + void *reg_save_area; +}; -struct drm_display_mode; +typedef __builtin_va_list va_list; -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 va_format { + const char *fmt; + va_list *va; }; -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 sg_table { + struct scatterlist *sgl; + unsigned int nents; + unsigned int orig_nents; }; -struct drm_format_info { - u32 format; - u8 depth; - u8 num_planes; +struct iosys_map { union { - u8 cpp[4]; - u8 char_per_block[4]; + void *vaddr_iomem; + void *vaddr; }; - u8 block_w[4]; - u8 block_h[4]; - u8 hsub; - u8 vsub; - bool has_alpha; - bool is_yuv; - bool is_color_indexed; + bool is_iomem; }; -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, +struct drm_gem_lru { + struct mutex *lock; + long count; + struct list_head list; +}; + +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 drm_display_mode { @@ -29401,158 +30938,76 @@ struct drm_display_mode { enum hdmi_picture_aspect picture_aspect_ratio; }; -struct drm_mode_config_helper_funcs { - void (*atomic_commit_tail)(struct drm_atomic_state *); - int (*atomic_commit_setup)(struct drm_atomic_state *); -}; - -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, -}; +struct kthread_worker; -enum drm_colorspace { - DRM_MODE_COLORIMETRY_DEFAULT = 0, - DRM_MODE_COLORIMETRY_NO_DATA = 0, - DRM_MODE_COLORIMETRY_SMPTE_170M_YCC = 1, - DRM_MODE_COLORIMETRY_BT709_YCC = 2, - DRM_MODE_COLORIMETRY_XVYCC_601 = 3, - DRM_MODE_COLORIMETRY_XVYCC_709 = 4, - DRM_MODE_COLORIMETRY_SYCC_601 = 5, - DRM_MODE_COLORIMETRY_OPYCC_601 = 6, - DRM_MODE_COLORIMETRY_OPRGB = 7, - DRM_MODE_COLORIMETRY_BT2020_CYCC = 8, - DRM_MODE_COLORIMETRY_BT2020_RGB = 9, - DRM_MODE_COLORIMETRY_BT2020_YCC = 10, - DRM_MODE_COLORIMETRY_DCI_P3_RGB_D65 = 11, - DRM_MODE_COLORIMETRY_DCI_P3_RGB_THEATER = 12, - DRM_MODE_COLORIMETRY_RGB_WIDE_FIXED = 13, - DRM_MODE_COLORIMETRY_RGB_WIDE_FLOAT = 14, - DRM_MODE_COLORIMETRY_BT601_YCC = 15, - DRM_MODE_COLORIMETRY_COUNT = 16, +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; }; -enum drm_privacy_screen_status { - PRIVACY_SCREEN_DISABLED = 0, - PRIVACY_SCREEN_ENABLED = 1, - PRIVACY_SCREEN_DISABLED_LOCKED = 2, - PRIVACY_SCREEN_ENABLED_LOCKED = 3, -}; +struct kthread_work; -enum drm_connector_force { - DRM_FORCE_UNSPECIFIED = 0, - DRM_FORCE_OFF = 1, - DRM_FORCE_ON = 2, - DRM_FORCE_ON_DIGITAL = 3, +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; }; -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, -}; +typedef void (*kthread_work_func_t)(struct kthread_work *); -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, +struct kthread_work { + struct list_head node; + kthread_work_func_t func; + struct kthread_worker *worker; + int canceling; }; -enum drm_scaling_filter { - DRM_SCALING_FILTER_DEFAULT = 0, - DRM_SCALING_FILTER_NEAREST_NEIGHBOR = 1, -}; +typedef u32 depot_stack_handle_t; -enum drm_color_encoding { - DRM_COLOR_YCBCR_BT601 = 0, - DRM_COLOR_YCBCR_BT709 = 1, - DRM_COLOR_YCBCR_BT2020 = 2, - DRM_COLOR_ENCODING_MAX = 3, +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; }; -enum drm_color_range { - DRM_COLOR_YCBCR_LIMITED_RANGE = 0, - DRM_COLOR_YCBCR_FULL_RANGE = 1, - DRM_COLOR_RANGE_MAX = 2, -}; +struct drm_framebuffer; -enum drm_plane_type { - DRM_PLANE_TYPE_OVERLAY = 0, - DRM_PLANE_TYPE_PRIMARY = 1, - DRM_PLANE_TYPE_CURSOR = 2, -}; +struct drm_mode_fb_cmd2; -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, -}; +struct drm_format_info; -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_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_object_properties; @@ -29565,317 +31020,186 @@ struct drm_mode_object { void (*free_cb)(struct kref *); }; -struct drm_scrambling { - bool supported; - bool low_rates; -}; +struct drm_framebuffer_funcs; -struct drm_scdc { - bool supported; - bool read_request; - struct drm_scrambling scrambling; +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_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_object_properties { + int count; + struct drm_property *properties[24]; + uint64_t values[24]; }; -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_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_monitor_range_info { - u16 min_vfreq; - u16 max_vfreq; +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_luminance_range_info { - u32 min_luminance; - u32 max_luminance; -}; +struct drm_clip_rect; -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_audio; - 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_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_object_properties { - int count; - struct drm_property *properties[24]; - uint64_t values[24]; +struct drm_clip_rect { + unsigned short x1; + unsigned short y1; + unsigned short x2; + unsigned short y2; }; -struct drm_privacy_screen; +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]; +}; -typedef u8 uint8_t; +struct drm_mode_config_helper_funcs { + void (*atomic_commit_tail)(struct drm_atomic_state *); + int (*atomic_commit_setup)(struct drm_atomic_state *); +}; -struct drm_connector_tv_margins { - unsigned int bottom; - unsigned int left; - unsigned int right; - unsigned int top; +struct drm_vma_offset_manager { + rwlock_t vm_lock; + struct drm_mm vm_addr_space_mm; }; -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 drm_client_funcs { + struct module *owner; + void (*unregister)(struct drm_client_dev *); + int (*restore)(struct drm_client_dev *); + int (*hotplug)(struct drm_client_dev *); }; -typedef u16 uint16_t; +struct drm_crtc; -struct hdr_static_metadata { - __u8 eotf; - __u8 metadata_type; - __u16 max_cll; - __u16 max_fall; - __u16 min_cll; -}; +struct drm_connector; -struct hdr_sink_metadata { - __u32 metadata_type; - union { - struct hdr_static_metadata hdmi_type1; - }; +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; }; -struct drm_connector_funcs; +typedef u16 uint16_t; -struct drm_property_blob; +struct drm_crtc_crc_entry; -struct drm_connector_helper_funcs; +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_edid; +struct drm_plane; -struct drm_encoder; +struct drm_crtc_funcs; -struct i2c_adapter; +struct drm_crtc_helper_funcs; -struct drm_connector_state; +struct drm_crtc_state; -struct drm_tile_group; +struct drm_self_refresh_data; -struct drm_connector { +struct drm_crtc { struct drm_device *dev; - struct device *kdev; - struct device_attribute *attr; - struct fwnode_handle *fwnode; + struct device_node *port; struct list_head head; - struct list_head global_connector_list_entry; - struct drm_mode_object base; char *name; - struct mutex mutex; + struct drm_modeset_lock mutex; + struct drm_mode_object base; + struct drm_plane *primary; + struct drm_plane *cursor; 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; + 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_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 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_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; -}; - -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; - u64 client_id; - 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_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 __drm_planes_state; - -struct __drm_crtcs_state; - -struct __drm_connnectors_state; - -struct __drm_private_objs_state; - -struct drm_crtc_commit; - -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; - -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_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_crtc; - struct drm_plane_funcs; struct drm_plane_helper_funcs; +struct drm_plane_state; + struct drm_plane { struct drm_device *dev; struct list_head head; @@ -29906,75 +31230,113 @@ struct drm_plane { struct drm_property *scaling_filter_property; }; -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_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_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_rect { + int x1; + int y1; + int x2; + int y2; }; -struct drm_crtc_funcs; +struct drm_property_blob; -struct drm_crtc_helper_funcs; +struct drm_crtc_commit; -struct drm_crtc_state; +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 drm_self_refresh_data; +struct dma_fence_ops; -struct drm_crtc { - struct drm_device *dev; - struct device_node *port; - struct list_head head; - char *name; - struct drm_modeset_lock mutex; +struct dma_fence { + spinlock_t *lock; + const struct dma_fence_ops *ops; + union { + struct list_head cb_list; + ktime_t timestamp; + struct callback_head rcu; + }; + u64 context; + u64 seqno; + unsigned long flags; + struct kref refcount; + int error; +}; + +struct dma_fence_ops { + bool use_64bit_seqno; + const char * (*get_driver_name)(struct dma_fence *); + const char * (*get_timeline_name)(struct dma_fence *); + bool (*enable_signaling)(struct dma_fence *); + bool (*signaled)(struct dma_fence *); + long (*wait)(struct dma_fence *, bool, long); + void (*release)(struct dma_fence *); + void (*fence_value_str)(struct dma_fence *, char *, int); + void (*timeline_value_str)(struct dma_fence *, char *, int); + void (*set_deadline)(struct dma_fence *, ktime_t); +}; + +struct drm_property_blob { 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_device *dev; + struct list_head head_global; + struct list_head head_file; + size_t length; + void *data; }; -struct drm_mode_set; +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_enable)(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_pending_vblank_event; @@ -30005,14 +31367,46 @@ struct drm_crtc_funcs { 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; +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_crtc_state { @@ -30045,26 +31439,6 @@ struct drm_crtc_state { struct drm_atomic_state *state; }; -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_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; -}; - enum mode_set_atomic { LEAVE_ATOMIC_MODE_SET = 0, ENTER_ATOMIC_MODE_SET = 1, @@ -30095,89 +31469,229 @@ struct drm_crtc_crc_entry { uint32_t crcs[10]; }; -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_scrambling { + bool supported; + bool low_rates; }; -struct drm_rect { - int x1; - int y1; - int x2; - int y2; +struct drm_scdc { + bool supported; + bool read_request; + struct drm_scrambling scrambling; }; -struct dma_fence; +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_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 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_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_enable)(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_monitor_range_info { + u16 min_vfreq; + u16 max_vfreq; }; -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_luminance_range_info { + u32 min_luminance; + u32 max_luminance; }; -struct __drm_connnectors_state { - struct drm_connector *ptr; +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_audio; + 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; + u16 source_physical_address; +}; + +struct drm_privacy_screen; + +typedef u8 uint8_t; + +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_connector_state; + +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_connector_state *old_state; - struct drm_connector_state *new_state; - s32 __attribute__((btf_type_tag("user"))) *out_fence_ptr; + 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 *, enum drm_connector_status); + void (*debugfs_init)(struct drm_connector *, struct dentry *); }; struct drm_tv_connector_state { @@ -30218,56 +31732,6 @@ struct drm_connector_state { struct drm_property_blob *hdr_output_metadata; }; -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_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_writeback_connector; struct drm_connector_helper_funcs { @@ -30299,321 +31763,276 @@ struct drm_tile_group { u8 group_data[8]; }; -struct static_key_true { - struct static_key key; +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 _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_debugfs_entry { + struct drm_device *dev; + struct drm_debugfs_info file; + struct list_head list; }; -struct drm_mode_obj_get_properties { - __u64 props_ptr; - __u64 prop_values_ptr; - __u32 count_props; - __u32 obj_id; - __u32 obj_type; +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 drm_mode_obj_set_property { - __u64 value; - __u32 prop_id; - __u32 obj_id; - __u32 obj_type; +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 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, +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; }; -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, +struct analog_param_range { + unsigned int min; + unsigned int typ; + unsigned int max; }; -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, +struct analog_param_field { + unsigned int even; + unsigned int odd; }; -enum mipi_dsi_dcs_tear_mode { - MIPI_DSI_DCS_TEAR_MODE_VBLANK = 0, - MIPI_DSI_DCS_TEAR_MODE_VHBLANK = 1, +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 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 drm_named_mode { + const char *name; + unsigned int pixel_clock_khz; + unsigned int xres; + unsigned int yres; + unsigned int flags; + unsigned int tv_mode; }; -struct mipi_dsi_host_ops; - -struct mipi_dsi_host { - struct device *dev; - const struct mipi_dsi_host_ops *ops; - struct list_head list; +enum drm_mode_analog { + DRM_MODE_ANALOG_NTSC = 0, + DRM_MODE_ANALOG_PAL = 1, }; -struct mipi_dsi_msg; +typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); -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 rt_mutex_base { + raw_spinlock_t wait_lock; + struct rb_root_cached waiters; + struct task_struct *owner; }; -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 rt_mutex { + struct rt_mutex_base rtmutex; }; -struct drm_dsc_rc_range_parameters { - u8 range_min_qp; - u8 range_max_qp; - u8 range_bpg_offset; -}; +struct regulator; -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 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 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 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 mipi_dsi_device_info { - char type[20]; - u32 channel; - struct device_node *node; +struct i2c_msg { + __u16 addr; + __u16 flags; + __u16 len; + __u8 *buf; }; -struct mipi_dsi_packet { - size_t size; - u8 header[4]; - size_t payload_length; - const u8 *payload; +union i2c_smbus_data { + __u8 byte; + __u16 word; + __u8 block[34]; }; -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 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); +}; -enum drm_gem_object_status { - DRM_GEM_OBJECT_RESIDENT = 1, - DRM_GEM_OBJECT_PURGEABLE = 2, +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 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]; +}; + +enum ttm_caching { + ttm_uncached = 0, + ttm_write_combined = 1, + ttm_cached = 2, +}; + +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; +}; + +struct agp_memory; + +struct agp_bridge_data; + +struct ttm_agp_backend { + struct ttm_tt ttm; + struct agp_memory *mem; + struct agp_bridge_data *bridge; +}; + +typedef __kernel_long_t __kernel_off_t; + +typedef __kernel_off_t off_t; + +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 ttm_bus_placement { + void *addr; + phys_addr_t offset; + bool is_iomem; + enum ttm_caching caching; +}; + +struct ttm_buffer_object; + +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 intel_global_state; @@ -30647,6 +32066,23 @@ typedef depot_stack_handle_t intel_wakeref_t; struct intel_fbdev; +struct intel_display_runtime_info { + struct { + u16 ver; + u16 rel; + u16 step; + } ip; + u8 pipe_mask; + u8 cpu_transcoder_mask; + u16 port_mask; + u8 num_sprites[4]; + u8 num_scalers[4]; + u8 fbc_mask; + bool has_hdcp; + bool has_dmc; + bool has_dsc; +}; + struct intel_power_domain_mask { unsigned long bits[2]; }; @@ -30663,10 +32099,11 @@ struct i915_power_domains { intel_wakeref_t init_wakeref; intel_wakeref_t disable_wakeref; struct mutex lock; - int domain_use_count[77]; + int domain_use_count[76]; struct delayed_work async_put_work; intel_wakeref_t async_put_wakeref; struct intel_power_domain_mask async_put_domains[2]; + int async_put_next_delay; struct i915_power_well *power_wells; }; @@ -30684,6 +32121,8 @@ struct intel_audio_state { struct i915_audio_component; +struct platform_device; + struct intel_audio { struct i915_audio_component *component; bool component_registered; @@ -30743,6 +32182,7 @@ struct dpll_info; struct intel_shared_dpll { struct intel_shared_dpll_state state; + u8 index; u8 active_mask; bool on; const struct dpll_info *info; @@ -30792,6 +32232,7 @@ struct intel_hotplug { bool poll_enabled; unsigned int hpd_storm_threshold; u8 hpd_short_storm_enabled; + unsigned long oob_hotplug_last_state; struct workqueue_struct *dp_wq; bool ignore_long_hpd; }; @@ -30832,8 +32273,6 @@ struct sdvo_device_mapping { u8 ddc_pin; }; -struct intel_bios_encoder_data; - struct intel_vbt_data { u16 version; unsigned int int_tv_support: 1; @@ -30849,7 +32288,6 @@ struct intel_vbt_data { 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]; }; @@ -30939,6 +32377,8 @@ struct i915_hdcp_arbiter; struct intel_hdcp_gsc_message; +struct intel_display_device_info; + struct intel_fbc; struct intel_overlay; @@ -31016,6 +32456,10 @@ struct intel_display { struct { u32 state; } hti; + struct { + const struct intel_display_device_info *__device_info; + struct intel_display_runtime_info __runtime_info; + } info; struct { bool false_color; } ips; @@ -31061,7 +32505,7 @@ struct intel_display { } wq; struct intel_audio audio; struct intel_dpll dpll; - struct intel_fbc *fbc[2]; + struct intel_fbc *fbc[4]; struct intel_frontbuffer_tracking fb_tracking; struct intel_hotplug hotplug; struct intel_opregion opregion; @@ -31160,7 +32604,6 @@ struct i915_params { 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; @@ -31177,58 +32620,12 @@ struct i915_params { bool enable_gvt; }; -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; @@ -31251,85 +32648,14 @@ struct intel_runtime_info { } media; 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 intel_gt_definition; - -struct intel_display_device_info; - -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_oam: 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; - const struct intel_display_device_info *display; - const struct intel_runtime_info __runtime; - u32 cachelevel_to_pat[4]; - u32 max_pat_index; -}; - -struct intel_display_runtime_info { - struct { - u16 ver; - u16 rel; - u16 step; - } ip; - 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_driver_caps { unsigned int scheduler; bool has_logical_contexts: 1; @@ -31436,11 +32762,6 @@ struct i915_virtual_gpu { 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, @@ -31455,34 +32776,7 @@ enum intel_pch { 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; + PCH_LNL = 1026, }; struct intel_memory_region; @@ -31501,7 +32795,7 @@ struct i915_gem_mm { struct intel_memory_region *regions[7]; struct notifier_block oom_notifier; struct notifier_block vmap_notifier; - struct shrinker shrinker; + struct shrinker *shrinker; rwlock_t notifier_lock; u64 shrink_memory; u32 shrink_count; @@ -31520,7 +32814,7 @@ struct i915_gpu_error { struct i915_gpu_coredump *first_error; atomic_t pending_fb_pin; atomic_t reset_count; - atomic_t reset_engine_count[27]; + atomic_t reset_engine_count[5]; }; struct i915_suspend_saved_registers { @@ -31562,7 +32856,6 @@ 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; @@ -31607,12 +32900,285 @@ struct i915_perf { atomic64_t noa_programming_delay; }; +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; + unsigned int unparked; + struct hrtimer timer; + u32 enable; + ktime_t timer_last; + unsigned int enable_count[9]; + bool timer_enabled; + struct i915_pmu_sample sample[8]; + ktime_t sleep_last[2]; + unsigned long irq_count; + struct attribute_group events_attr_group; + void *i915_attr; + void *pmu_attr; +}; + +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; +}; + +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; + int nid; + 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; + const 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 intel_device_info; + +struct drm_i915_clock_gating_funcs; + +struct vlv_s0ix_state; + +struct i915_hwmon; + +struct intel_pxp; + +struct drm_i915_private { + struct drm_device 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; + union { + struct llist_head uabi_engines_llist; + struct list_head uabi_engines_list; + 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; + struct workqueue_struct *unordered_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 *gt[2]; + 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 ttm_device bdev; +}; + +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, +}; + +typedef u32 intel_engine_mask_t; + +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; + intel_engine_mask_t platform_engine_mask; + u32 memory_regions; + 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_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_guc_tlb_invalidation: 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_oam: 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; + const struct intel_runtime_info __runtime; + u32 cachelevel_to_pat[4]; + u32 max_pat_index; +}; + 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 seqcount_mutex { + seqcount_t seqcount; +}; + +typedef struct seqcount_mutex seqcount_mutex_t; + enum intel_uc_fw_type { INTEL_UC_FW_TYPE_GUC = 0, INTEL_UC_FW_TYPE_HUC = 1, @@ -31638,6 +33204,7 @@ struct intel_uc_fw_ver { u32 major; u32 minor; u32 patch; + u32 build; }; struct intel_uc_fw_file { @@ -31645,23 +33212,6 @@ struct intel_uc_fw_file { struct intel_uc_fw_ver ver; }; -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; -}; - enum i915_sw_fence_notify { FENCE_COMPLETE = 0, FENCE_FREE = 1, @@ -31755,7 +33305,10 @@ struct i915_gsc_proxy_component; struct intel_gsc_uc { struct intel_uc_fw fw; + struct intel_uc_fw_ver release; + u32 security_version; struct i915_vma *local; + void *local_vaddr; struct intel_context *ce; struct workqueue_struct *wq; struct work_struct work; @@ -31863,14 +33416,6 @@ struct intel_guc_slpc { u32 num_boosts; }; -struct iosys_map { - union { - void *vaddr_iomem; - void *vaddr; - }; - bool is_iomem; -}; - struct intel_guc_state_capture; struct i915_sched_engine; @@ -31897,6 +33442,9 @@ struct intel_guc { spinlock_t irq_lock; unsigned int msg_enabled_mask; atomic_t outstanding_submission_g2h; + struct xarray tlb_lookup; + u32 serial_slot; + u32 next_seqno; struct { bool enabled; void (*reset)(struct intel_guc *); @@ -31951,6 +33499,8 @@ struct intel_guc { u32 shift; unsigned long last_stat_jiffies; } timestamp; + struct work_struct dead_guc_worker; + unsigned long last_dead_guc_jiffies; }; enum intel_huc_delayed_load_status { @@ -32009,12 +33559,6 @@ struct intel_wopcm { } guc; }; -struct seqcount_mutex { - seqcount_t seqcount; -}; - -typedef struct seqcount_mutex seqcount_mutex_t; - struct i915_wa; struct i915_wa_list { @@ -32190,6 +33734,8 @@ struct intel_gt_info { struct gt_defaults { u32 min_freq; u32 max_freq; + u8 rps_up_threshold; + u8 rps_down_threshold; }; struct intel_sseu { @@ -32283,282 +33829,6 @@ struct intel_gt { 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; - unsigned int unparked; - struct hrtimer timer; - u32 enable; - ktime_t timer_last; - unsigned int enable_count[9]; - bool timer_enabled; - struct i915_pmu_sample sample[8]; - ktime_t sleep_last[2]; - unsigned long irq_count; - struct attribute_group events_attr_group; - void *i915_attr; - void *pmu_attr; -}; - -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; - int nid; - 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; - const 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 { - struct drm_device 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_display_runtime_info __display_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; - struct workqueue_struct *unordered_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[2]; - 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 ttm_device bdev; -}; - -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 { - 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 *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 *); - 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 *); - int (*evict)(struct drm_gem_object *); - enum drm_gem_object_status (*status)(struct drm_gem_object *); - const struct vm_operations_struct *vm_ops; -}; - -struct drm_gem_lru { - struct mutex *lock; - long count; - struct list_head list; -}; - -struct drm_vma_offset_manager { - rwlock_t vm_lock; - struct drm_mm vm_addr_space_mm; -}; - -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_display_device_info { - const struct intel_display_runtime_info __runtime_defaults; - 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_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; -}; - struct i915_vm_pt_stash; struct i915_vma_ops { @@ -32649,10 +33919,6 @@ enum ttm_bo_type { ttm_bo_type_sg = 2, }; -struct ttm_resource; - -struct ttm_tt; - struct ttm_lru_bulk_move; struct ttm_buffer_object { @@ -32679,13 +33945,6 @@ struct i915_gem_object_page_iter { 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 { @@ -32763,7 +34022,7 @@ struct drm_i915_gem_object { struct list_head link; unsigned int madv: 2; bool dirty: 1; - u32 tlb; + u32 tlb[2]; } mm; struct { struct i915_refct_sgt *cached_io_rsgt; @@ -32823,23 +34082,6 @@ struct ttm_place { 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 *); @@ -32848,19 +34090,6 @@ struct ttm_resource_manager_func { void (*debug)(struct ttm_resource_manager *, struct drm_printer *); }; -struct dma_fence_ops { - bool use_64bit_seqno; - const char * (*get_driver_name)(struct dma_fence *); - const char * (*get_timeline_name)(struct dma_fence *); - bool (*enable_signaling)(struct dma_fence *); - bool (*signaled)(struct dma_fence *); - long (*wait)(struct dma_fence *, bool, long); - void (*release)(struct dma_fence *); - void (*fence_value_str)(struct dma_fence *, char *, int); - void (*timeline_value_str)(struct dma_fence *, char *, int); - void (*set_deadline)(struct dma_fence *, ktime_t); -}; - struct ttm_lru_bulk_move_pos { struct ttm_resource *first; struct ttm_resource *last; @@ -32987,6 +34216,7 @@ struct intel_frontbuffer { struct i915_active write; struct drm_i915_gem_object *obj; struct callback_head rcu; + struct work_struct flush_work; }; struct i915_refct_sgt_ops; @@ -33002,32 +34232,10 @@ 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; @@ -33378,6 +34586,11 @@ struct intel_engine_execlists { 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; @@ -33404,13 +34617,19 @@ struct intel_engine_cs { enum forcewake_domains fw_domain; unsigned int fw_active; unsigned long context_tag; - struct rb_node uabi_node; + union { + struct llist_node uabi_llist; + struct list_head uabi_list; + 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 intel_context *bind_context; + bool bind_context_ready; struct list_head pinned_contexts_list; intel_engine_mask_t saturated; struct { @@ -33750,7 +34969,6 @@ struct i915_perf_stream { } oa_buffer; struct i915_vma *noa_wait; u64 poll_oa_period; - bool override_gucrc; }; enum report_header { @@ -33834,6 +35052,12 @@ struct i915_perf_stream_ops { 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 { @@ -33858,6 +35082,56 @@ struct i915_oa_reg { u32 value; }; +struct rchan_callbacks; + +struct rchan_buf; + +struct rchan { + u32 version; + size_t subbuf_size; + size_t n_subbufs; + size_t alloc_size; + const struct rchan_callbacks *cb; + struct kref kref; + void *private_data; + size_t last_toobig; + struct rchan_buf * __attribute__((btf_type_tag("percpu"))) *buf; + int is_global; + struct list_head list; + struct dentry *parent; + int has_base_filename; + char base_filename[255]; +}; + +struct rchan_callbacks { + int (*subbuf_start)(struct rchan_buf *, void *, void *, size_t); + struct dentry * (*create_buf_file)(const char *, struct dentry *, umode_t, struct rchan_buf *, int *); + int (*remove_buf_file)(struct dentry *); +}; + +struct rchan_buf { + void *start; + void *data; + size_t offset; + size_t subbufs_produced; + size_t subbufs_consumed; + struct rchan *chan; + wait_queue_head_t read_wait; + struct irq_work wakeup_work; + struct dentry *dentry; + struct kref kref; + struct page **page_array; + unsigned int page_count; + unsigned int finalized; + size_t *padding; + size_t prev_padding; + size_t bytes_consumed; + size_t early_bytes; + unsigned int cpu; + long: 64; + long: 64; +}; + struct guc_ct_buffer_desc { u32 head; u32 tail; @@ -33965,6 +35239,41 @@ struct drm_i915_clock_gating_funcs { void (*init_clock_gating)(struct drm_i915_private *); }; +struct intel_display_device_info { + const struct intel_display_runtime_info __runtime_defaults; + 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_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; +}; + struct intel_gt_coredump; struct intel_overlay_error_state; @@ -33986,6 +35295,8 @@ struct i915_gpu_coredump { u32 suspend_count; struct intel_device_info device_info; struct intel_runtime_info runtime_info; + struct intel_display_device_info display_device_info; + struct intel_display_runtime_info display_runtime_info; struct intel_driver_caps driver_caps; struct i915_params params; struct intel_overlay_error_state *overlay; @@ -34164,6 +35475,7 @@ struct intel_color_funcs { 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); void (*read_csc)(struct intel_crtc_state *); + void (*get_config)(struct intel_crtc_state *); }; struct intel_audio_funcs { @@ -34248,11 +35560,50 @@ struct intel_dpll_mgr { void (*dump_hw_state)(struct drm_i915_private *, const struct intel_dpll_hw_state *); }; +enum { + INTEL_WAKEREF_PUT_ASYNC_BIT = 0, + __INTEL_WAKEREF_PUT_LAST_BIT__ = 1, +}; + +struct wait_bit_queue_entry { + struct wait_bit_key key; + struct wait_queue_entry wq_entry; +}; + struct intel_wakeref_lockclass { struct lock_class_key mutex; struct lock_class_key work; }; +struct cb_kernel { + const void *data; + u32 size; +}; + +enum i915_map_type { + I915_MAP_WB = 0, + I915_MAP_WC = 1, + I915_MAP_FORCE_WB = 2147483648, + I915_MAP_FORCE_WC = 2147483649, +}; + +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_ring { struct kref ref; struct i915_vma *vma; @@ -34267,376 +35618,366 @@ struct intel_ring { u32 effective_size; }; -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 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 { - INTEL_WAKEREF_PUT_ASYNC_BIT = 0, - __INTEL_WAKEREF_PUT_LAST_BIT__ = 1, -}; +struct intel_renderstate_rodata; -enum i915_cache_level { - I915_CACHE_NONE = 0, - I915_CACHE_LLC = 1, - I915_CACHE_L3_LLC = 2, - I915_CACHE_WT = 3, - I915_MAX_CACHE_LEVEL = 4, +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; }; -enum i915_map_type { - I915_MAP_WB = 0, - I915_MAP_WC = 1, - I915_MAP_FORCE_WB = 2147483648, - I915_MAP_FORCE_WC = 2147483649, +struct intel_renderstate_rodata { + const u32 *reloc; + const u32 *batch; + const u32 batch_items; }; -enum dma_fence_flag_bits { - DMA_FENCE_FLAG_SIGNALED_BIT = 0, - DMA_FENCE_FLAG_TIMESTAMP_BIT = 1, - DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2, - DMA_FENCE_FLAG_USER_BITS = 3, +struct i915_user_extension; + +typedef int (*i915_user_extension_fn)(struct i915_user_extension __attribute__((btf_type_tag("user"))) *, void *); + +struct i915_user_extension { + __u64 next_extension; + __u32 name; + __u32 flags; + __u32 rsvd[4]; }; -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, +struct drm_i915_file_private { + struct drm_i915_private *i915; + 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 *client; }; -typedef void (*rcu_callback_t)(struct callback_head *); +struct drm_syncobj { + struct kref refcount; + struct dma_fence __attribute__((btf_type_tag("rcu"))) *fence; + struct list_head cb_list; + struct list_head ev_fd_list; + spinlock_t lock; + struct file *file; +}; -struct active_node { - struct rb_node node; - struct i915_active_fence base; - struct i915_active *ref; - u64 timeline; +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 auto_active { - struct i915_active base; - struct kref ref; +enum { + I915_PRIORITY_MIN = -1024, + I915_PRIORITY_NORMAL = 0, + I915_PRIORITY_MAX = 1024, + I915_PRIORITY_HEARTBEAT = 1025, + I915_PRIORITY_DISPLAY = 1026, }; -struct wait_barrier { - struct wait_queue_entry base; - struct i915_active *ref; +enum { + RADIX_TREE_ITER_TAG_MASK = 15, + RADIX_TREE_ITER_TAGGED = 16, + RADIX_TREE_ITER_CONTIG = 32, }; -struct wait_bit_key { - void *flags; - int bit_nr; - unsigned long timeout; +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, }; -struct wait_bit_queue_entry { - struct wait_bit_key key; - struct wait_queue_entry wq_entry; +struct i915_lut_handle { + struct list_head obj_link; + struct i915_gem_context *ctx; + u32 handle; }; -struct kthread_worker; +struct i915_engine_class_instance { + __u16 engine_class; + __u16 engine_instance; +}; -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 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 kthread_work; +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 kthread_worker { - unsigned int flags; - raw_spinlock_t lock; - struct list_head work_list; - struct list_head delayed_work_list; - struct task_struct *task; - struct kthread_work *current_work; +struct 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]; }; -typedef void (*kthread_work_func_t)(struct kthread_work *); +struct i915_gem_proto_engine; -struct kthread_work { - struct list_head node; - kthread_work_func_t func; - struct kthread_worker *worker; - int canceling; +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 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; +struct i915_gem_proto_engine { + enum i915_gem_engine_type type; + struct intel_engine_cs *engine; + unsigned int num_siblings; 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 intel_engine_cs **siblings; + struct intel_sseu sseu; }; -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 i915_gem_engines_iter { + unsigned int idx; + const struct i915_gem_engines *engines; }; -struct drm_clip_rect { - unsigned short x1; - unsigned short y1; - unsigned short x2; - unsigned short y2; +struct radix_tree_iter { + unsigned long index; + unsigned long next_index; + unsigned long tags; + struct xa_node *node; }; -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_i915_gem_context_param { + __u32 ctx_id; + __u32 size; + __u64 param; + __u64 value; }; -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_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 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 set_proto_ctx_engines { + struct drm_i915_private *i915; + unsigned int num_engines; + struct i915_gem_proto_engine *engines; }; -struct drm_event { - __u32 type; - __u32 length; +struct i915_context_param_engines { + __u64 extensions; + struct i915_engine_class_instance engines[0]; }; -struct drm_event_vblank { - struct drm_event base; - __u64 user_data; - __u32 tv_sec; - __u32 tv_usec; - __u32 sequence; - __u32 crtc_id; +struct gsccs_session_resources { + u64 host_session_handle; + struct intel_context *ce; + struct i915_vma *pkt_vma; + void *pkt_vaddr; + struct i915_vma *bb_vma; + void *bb_vaddr; }; -struct drm_event_crtc_sequence { - struct drm_event base; - __u64 user_data; - __s64 time_ns; - __u64 sequence; -}; +struct i915_pxp_component; -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 device_link; + +struct intel_pxp { + struct intel_gt *ctrl_gt; + bool platform_cfg_is_bad; + u32 kcr_base; + struct gsccs_session_resources gsccs_res; + struct i915_pxp_component *pxp_component; + struct device_link *dev_link; + 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_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_i915_gem_vm_control { + __u64 extensions; + __u32 flags; + __u32 vm_id; }; -struct rt_mutex_base { - raw_spinlock_t wait_lock; - struct rb_root_cached waiters; - struct task_struct *owner; +struct create_ext { + struct i915_gem_proto_context *pc; + struct drm_i915_file_private *fpriv; }; -struct rt_mutex { - struct rt_mutex_base rtmutex; +struct drm_i915_gem_context_create_ext { + __u32 ctx_id; + __u32 flags; + __u64 extensions; }; -struct regulator; +struct drm_i915_gem_context_destroy { + __u32 ctx_id; + __u32 pad; +}; -struct i2c_algorithm; +struct drm_i915_reset_stats { + __u32 ctx_id; + __u32 flags; + __u32 reset_count; + __u32 batch_active; + __u32 batch_pending; + __u32 pad; +}; -struct i2c_lock_operations; +struct drm_i915_gem_context_create_ext_setparam { + struct i915_user_extension base; + struct drm_i915_gem_context_param param; +}; -struct i2c_bus_recovery_info; +struct dma_buf_poll_cb_t { + struct dma_fence_cb cb; + wait_queue_head_t *poll; + __poll_t active; +}; -struct i2c_adapter_quirks; +struct dma_buf_ops; -struct i2c_adapter { +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; - 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 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 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 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 i2c_msg { - __u16 addr; - __u16 flags; - __u16 len; - __u8 *buf; -}; +struct dma_buf_attach_ops; -union i2c_smbus_data { - __u8 byte; - __u16 word; - __u8 block[34]; +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 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 dma_buf_attach_ops { + bool allow_peer2peer; + void (*move_notify)(struct dma_buf_attachment *); }; -struct pinctrl; - -struct pinctrl_state; +enum i915_cache_level { + I915_CACHE_NONE = 0, + I915_CACHE_LLC = 1, + I915_CACHE_L3_LLC = 2, + I915_CACHE_WT = 3, + I915_MAX_CACHE_LEVEL = 4, +}; -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; +enum fb_op_origin { + ORIGIN_CPU = 0, + ORIGIN_CS = 1, + ORIGIN_FLIP = 2, + ORIGIN_DIRTYFB = 3, + ORIGIN_CURSOR_UPDATE = 4, }; -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 drm_i915_gem_get_aperture { + __u64 aper_size; + __u64 aper_available_size; }; -enum i9xx_plane_id { - PLANE_A = 0, - PLANE_B = 1, - PLANE_C = 2, +struct drm_i915_gem_sw_finish { + __u32 handle; }; -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, +struct drm_i915_gem_madvise { + __u32 handle; + __u32 madv; + __u32 retained; }; enum transcoder { @@ -35010,6 +36351,141 @@ struct intel_crtc { struct intel_pipe_crc pipe_crc; }; +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_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_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 __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_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_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_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 intel_mpllb_state { u32 clock; u32 ref_control; @@ -35160,6 +36636,57 @@ struct drm_dp_vsc_sdp { enum dp_content_type content_type; }; +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 intel_csc_matrix { u16 coeff[9]; u16 preoff[3]; @@ -35286,6 +36813,8 @@ struct intel_crtc_state { unsigned long quirks; unsigned int fb_bits; bool update_pipe; + bool update_m_n; + bool update_lrr; bool disable_cxsr; bool update_wm_pre; bool update_wm_post; @@ -35319,11 +36848,11 @@ struct intel_crtc_state { u32 ctrl; u32 div; } dsi_pll; + int max_link_bpp_x16; 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; @@ -35404,6 +36933,7 @@ struct intel_crtc_state { } dsc; u16 linetime; u16 ips_linetime; + bool enhanced_framing; bool fec_enable; bool sdp_split_enable; enum transcoder master_transcoder; @@ -35413,6 +36943,7 @@ struct intel_crtc_state { u32 psr2_man_track_ctl; struct { bool enable; + bool in_range; u8 pipeline_full; u16 flipline; u16 vmin; @@ -35766,19 +37297,20 @@ enum intel_display_power_domain { 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, + POWER_DOMAIN_GT_IRQ = 72, + POWER_DOMAIN_DC_OFF = 73, + POWER_DOMAIN_TC_COLD_OFF = 74, + POWER_DOMAIN_INIT = 75, + POWER_DOMAIN_NUM = 76, + POWER_DOMAIN_INVALID = 76, }; struct intel_connector; struct intel_ddi_buf_trans; +struct intel_bios_encoder_data; + struct intel_encoder { struct drm_encoder base; enum intel_output_type type; @@ -35989,6 +37521,8 @@ struct drm_dp_mst_port; struct intel_dp; +struct drm_dp_aux; + struct intel_connector { struct drm_connector base; struct intel_encoder *encoder; @@ -36000,6 +37534,11 @@ struct intel_connector { u8 polled; struct drm_dp_mst_port *port; struct intel_dp *mst_port; + struct { + struct drm_dp_aux *dsc_decompression_aux; + u8 dsc_dpcd[16]; + u8 fec_capability; + } dp; struct work_struct modeset_retry_work; struct intel_hdcp hdcp; }; @@ -36017,7 +37556,6 @@ struct pwm_device { 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; @@ -36028,6 +37566,7 @@ struct pwm_ops; struct pwm_chip { struct device *dev; const struct pwm_ops *ops; + struct module *owner; int base; unsigned int npwm; struct pwm_device * (*of_xlate)(struct pwm_chip *, const struct of_phandle_args *); @@ -36044,7 +37583,6 @@ struct pwm_ops { 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 { @@ -36052,6 +37590,12 @@ struct pwm_capture { 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); @@ -36379,7 +37923,7 @@ struct cec_adapter { u32 tx_timeouts; struct dentry *cec_dir; u32 sequence; - char input_phys[32]; + char input_phys[40]; }; struct input_id { @@ -36811,12 +38355,14 @@ struct cec_adap_ops { 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); + void (*adap_unconfigured)(struct cec_adapter *); int (*adap_transmit)(struct cec_adapter *, u8, u32, struct cec_msg *); + void (*adap_nb_transmit_canceled)(struct cec_adapter *, const 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 *); + void (*configured)(struct cec_adapter *); int (*received)(struct cec_adapter *, struct cec_msg *); }; @@ -36938,10 +38484,8 @@ struct intel_dp { u8 psr_dpcd[2]; u8 downstream_ports[16]; u8 edp_dpcd[3]; - u8 dsc_dpcd[16]; 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; @@ -37019,7 +38563,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; @@ -37115,10 +38658,10 @@ struct intel_hdcp_shim { 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 (*hdcp_2_2_capable)(struct intel_connector *, bool *); + int (*write_2_2_msg)(struct intel_connector *, void *, size_t); + int (*read_2_2_msg)(struct intel_connector *, u8, void *, size_t); + int (*config_stream_type)(struct intel_connector *, bool, u8); int (*stream_2_2_encryption)(struct intel_connector *, bool); int (*check_2_2_link)(struct intel_digital_port *, struct intel_connector *); }; @@ -37227,116 +38770,50 @@ struct intel_bios_encoder_data { struct list_head node; }; -enum dma_resv_usage { - DMA_RESV_USAGE_KERNEL = 0, - DMA_RESV_USAGE_WRITE = 1, - DMA_RESV_USAGE_READ = 2, - DMA_RESV_USAGE_BOOKKEEP = 3, -}; - -struct drm_intel_sprite_colorkey { - __u32 plane_id; - __u32 min_value; - __u32 channel_mask; - __u32 max_value; - __u32 flags; +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, }; -struct intel_plane; - -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 *ggtt_vma; - struct i915_vma *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 i915_dpt { + struct i915_address_space vm; + struct drm_i915_gem_object *obj; + struct i915_vma *vma; + void *iomem; }; -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 *); -}; +typedef u64 gen8_pte_t; -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; +struct sgt_iter { + struct scatterlist *sgp; + union { + unsigned long pfn; + dma_addr_t dma; + }; + unsigned int curr; + unsigned int max; }; -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; +enum intel_sbi_destination { + SBI_ICLK = 0, + SBI_MPHY = 1, }; -enum phy { - 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, +struct iclkip_params { + u32 iclk_virtual_root_freq; + u32 iclk_pi_range; + u32 divsel; + u32 phaseinc; + u32 auxdiv; + u32 phasedir; + u32 desired_divisor; }; enum { @@ -37355,582 +38832,540 @@ struct drm_connector_list_iter { struct drm_connector *conn; }; -struct gsccs_session_resources { - u64 host_session_handle; - struct intel_context *ce; - struct i915_vma *pkt_vma; - void *pkt_vaddr; - struct i915_vma *bb_vma; - void *bb_vaddr; +struct hsw_ddi_buf_trans { + u32 trans1; + u32 trans2; + u8 i_boost; }; -struct i915_pxp_component; - -struct device_link; - -struct intel_pxp { - struct intel_gt *ctrl_gt; - u32 kcr_base; - struct gsccs_session_resources gsccs_res; - struct i915_pxp_component *pxp_component; - struct device_link *dev_link; - 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 bxt_ddi_buf_trans { + u8 margin; + u8 scale; + u8 enable; + u8 deemphasis; }; -enum device_link_state { - DL_STATE_NONE = -1, - DL_STATE_DORMANT = 0, - DL_STATE_AVAILABLE = 1, - DL_STATE_CONSUMER_PROBE = 2, - DL_STATE_ACTIVE = 3, - DL_STATE_SUPPLIER_UNBIND = 4, +struct 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 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 icl_mg_phy_ddi_buf_trans { + u8 cri_txdeemph_override_11_6; + u8 cri_txdeemph_override_5_0; + u8 cri_txdeemph_override_17_12; }; -enum pxp_status { - PXP_STATUS_SUCCESS = 0, - PXP_STATUS_ERROR_API_VERSION = 4098, - PXP_STATUS_NOT_READY = 4110, - PXP_STATUS_PLATFCONFIG_KF1_NOVERIF = 4122, - PXP_STATUS_PLATFCONFIG_KF1_BAD = 4127, - PXP_STATUS_OP_NOT_PERMITTED = 16403, +struct tgl_dkl_phy_ddi_buf_trans { + u8 vswing; + u8 preshoot; + u8 de_emphasis; }; -struct pxp_cmd_header { - u32 api_version; - u32 command_id; - union { - u32 status; - u32 stream_id; - }; - u32 buffer_len; +struct dg2_snps_phy_buf_trans { + u8 vswing; + u8 pre_cursor; + u8 post_cursor; }; -struct pxp43_start_huc_auth_in { - struct pxp_cmd_header header; - __le64 huc_base_address; +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 pxp43_huc_auth_out { - struct pxp_cmd_header header; +enum phy { + 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, }; -struct klist_node; +typedef enum { + PHY_INTERFACE_MODE_NA = 0, + PHY_INTERFACE_MODE_INTERNAL = 1, + PHY_INTERFACE_MODE_MII = 2, + PHY_INTERFACE_MODE_GMII = 3, + PHY_INTERFACE_MODE_SGMII = 4, + PHY_INTERFACE_MODE_TBI = 5, + PHY_INTERFACE_MODE_REVMII = 6, + PHY_INTERFACE_MODE_RMII = 7, + PHY_INTERFACE_MODE_REVRMII = 8, + PHY_INTERFACE_MODE_RGMII = 9, + PHY_INTERFACE_MODE_RGMII_ID = 10, + PHY_INTERFACE_MODE_RGMII_RXID = 11, + PHY_INTERFACE_MODE_RGMII_TXID = 12, + PHY_INTERFACE_MODE_RTBI = 13, + PHY_INTERFACE_MODE_SMII = 14, + PHY_INTERFACE_MODE_XGMII = 15, + PHY_INTERFACE_MODE_XLGMII = 16, + PHY_INTERFACE_MODE_MOCA = 17, + PHY_INTERFACE_MODE_PSGMII = 18, + PHY_INTERFACE_MODE_QSGMII = 19, + PHY_INTERFACE_MODE_TRGMII = 20, + PHY_INTERFACE_MODE_100BASEX = 21, + PHY_INTERFACE_MODE_1000BASEX = 22, + PHY_INTERFACE_MODE_2500BASEX = 23, + PHY_INTERFACE_MODE_5GBASER = 24, + PHY_INTERFACE_MODE_RXAUI = 25, + PHY_INTERFACE_MODE_XAUI = 26, + PHY_INTERFACE_MODE_10GBASER = 27, + PHY_INTERFACE_MODE_25GBASER = 28, + PHY_INTERFACE_MODE_USXGMII = 29, + PHY_INTERFACE_MODE_10GKR = 30, + PHY_INTERFACE_MODE_QUSGMII = 31, + PHY_INTERFACE_MODE_1000BASEKX = 32, + PHY_INTERFACE_MODE_MAX = 33, +} phy_interface_t; -struct klist { - spinlock_t k_lock; - struct list_head k_list; - void (*get)(struct klist_node *); - void (*put)(struct klist_node *); -}; +typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); -struct klist_node { - void *n_klist; - struct list_head n_node; - struct kref n_ref; +enum regcache_type { + REGCACHE_NONE = 0, + REGCACHE_RBTREE = 1, + REGCACHE_FLAT = 2, + REGCACHE_MAPLE = 3, }; -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 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); }; -struct driver_private { - struct kobject kobj; - struct klist klist_devices; - struct klist_node knode_bus; - struct module_kobject *mkobj; - struct device_driver *driver; +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 val_bytes; + s8 reg_shift; + 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 wake_irq { +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; - unsigned int status; - int irq; + 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; + bool force_write_field; + 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 u64 async_cookie_t; +typedef int (*regmap_hw_write)(void *, const void *, size_t); -typedef void (*async_func_t)(void *, async_cookie_t); +typedef int (*regmap_hw_gather_write)(void *, const void *, size_t, const void *, size_t); -struct device_attach_data { - struct device *dev; - bool check_async; - bool want_async; - bool have_async; -}; +struct regmap_async; -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; -}; +typedef int (*regmap_hw_async_write)(void *, const void *, size_t, const void *, size_t, struct regmap_async *); -struct sync_merge_data { - char name[32]; - __s32 fd2; - __s32 fence; - __u32 flags; - __u32 pad; -}; +typedef int (*regmap_hw_reg_write)(void *, unsigned int, unsigned int); -struct dma_fence_unwrap { - struct dma_fence *chain; - struct dma_fence *array; - unsigned int index; +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 sync_file_info { - char name[32]; - __s32 status; - __u32 flags; - __u32 num_fences; - __u32 pad; - __u64 sync_fence_info; +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 sync_fence_info { - char obj_name[32]; - char driver_name[32]; - __s32 status; - __u32 flags; - __u64 timestamp_ns; +struct regmap_async { + struct list_head list; + struct regmap *map; + void *work_buf; }; -struct cdrom_device_ops; +struct regmap_range; -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 (*exit)(struct cdrom_device_info *); - int mrw_mode_page; - bool opened_for_data; - __s64 last_media_change_ms; +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 cdrom_multisession; +struct regmap_range { + unsigned int range_min; + unsigned int range_max; +}; -struct cdrom_mcn; +struct reg_default { + unsigned int reg; + unsigned int def; +}; -struct packet_command; +struct reg_sequence { + unsigned int reg; + unsigned int def; + unsigned int delay_us; +}; -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 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 cdrom_msf0 { - __u8 minute; - __u8 second; - __u8 frame; +enum dma_resv_usage { + DMA_RESV_USAGE_KERNEL = 0, + DMA_RESV_USAGE_WRITE = 1, + DMA_RESV_USAGE_READ = 2, + DMA_RESV_USAGE_BOOKKEEP = 3, }; -union cdrom_addr { - struct cdrom_msf0 msf; - int lba; +enum dma_fence_flag_bits { + DMA_FENCE_FLAG_SIGNALED_BIT = 0, + DMA_FENCE_FLAG_TIMESTAMP_BIT = 1, + DMA_FENCE_FLAG_ENABLE_SIGNAL_BIT = 2, + DMA_FENCE_FLAG_USER_BITS = 3, }; -struct cdrom_multisession { - union cdrom_addr addr; - __u8 xa_flag; - __u8 addr_format; +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 cdrom_mcn { - __u8 medium_catalog_number[14]; +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; }; -struct scsi_sense_hdr; +struct virtio_device_id; -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 virtio_device; + +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 scsi_sense_hdr { - u8 response_code; - u8 sense_key; - u8 asc; - u8 ascq; - u8 byte4; - u8 byte5; - u8 byte6; - u8 additional_length; +struct virtio_device_id { + __u32 device; + __u32 vendor; }; -struct ata_queued_cmd; +struct vringh_config_ops; -typedef void (*btf_trace_ata_qc_prep)(void *, struct ata_queued_cmd *); +struct virtio_config_ops; -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; +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 (*ata_qc_cb_t)(struct ata_queued_cmd *); - -struct ata_port; +struct virtqueue; -struct ata_device; +typedef void vq_callback_t(struct virtqueue *); -struct scsi_cmnd; +struct irq_affinity; -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 virtio_shm_region; -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 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 *); }; -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, +struct virtqueue { + struct list_head list; + void (*callback)(struct virtqueue *); + const char *name; + struct virtio_device *vdev; + unsigned int index; + unsigned int num_free; + unsigned int num_max; + bool reset; + void *priv; }; -struct 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 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 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 virtio_shm_region { + u64 addr; + u64 len; }; -struct ata_ering_entry { - unsigned int eflags; - unsigned int err_mask; - u64 timestamp; +enum scsi_timeout_action { + SCSI_EH_DONE = 0, + SCSI_EH_RESET_TIMER = 1, + SCSI_EH_NOT_HANDLED = 2, }; -struct ata_ering { - int cursor; - struct ata_ering_entry ring[32]; -}; +struct Scsi_Host; -struct ata_link; +struct scsi_cmnd; struct scsi_device; -struct ata_cpr_log; +struct scsi_target; -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; +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 cdb_len; - unsigned int pio_mask; - unsigned int mwdma_mask; - unsigned int udma_mask; - u16 cylinders; - u16 heads; - u16 sectors; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - union { - u16 id[256]; - u32 gscr[128]; - }; - u8 devslp_timing[8]; - u8 ncq_send_recv_cmds[20]; - u8 ncq_non_data_cmds[64]; - u32 zac_zoned_cap; - u32 zac_zones_optimal_open; - u32 zac_zones_optimal_nonseq; - u32 zac_zones_max_open; - struct ata_cpr_log *cpr_log; - u8 cdl[512]; - int spdn_cnt; - struct ata_ering ering; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -struct ata_link { - struct ata_port *ap; - int pmp; - struct device tdev; - unsigned int active_tag; - u32 sactive; - unsigned int flags; - u32 saved_scontrol; - unsigned int hw_sata_spd_limit; - unsigned int sata_spd_limit; - unsigned int sata_spd; - enum ata_lpm_policy lpm_policy; - struct ata_eh_info eh_info; - struct ata_eh_context eh_context; - long: 64; - long: 64; - long: 64; - long: 64; - 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 Scsi_Host; - -struct ata_port_operations; - -struct ata_bmdma_prd; - -struct ata_host; - -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: 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 delayed_work scsi_rescan_task; - unsigned int hsm_task_state; - struct list_head eh_done_q; - wait_queue_head_t eh_wait_q; - int eh_tries; - struct completion park_req_pending; - pm_message_t pm_mesg; - enum ata_lpm_policy target_lpm_policy; - struct timer_list fastdrain_timer; - unsigned int fastdrain_cnt; - async_cookie_t cookie; - int em_message_type; - void *private_data; - struct ata_acpi_gtm __acpi_init_gtm; - u8 *ncq_sense_buf; - long: 64; - u8 sector_buf[512]; + unsigned int max_segment_size; + unsigned long dma_boundary; + unsigned long virt_boundary_mask; + short cmd_per_lun; + int tag_alloc_policy; + unsigned int track_queue_depth: 1; + unsigned int supported_mode: 2; + unsigned int emulated: 1; + unsigned int skip_settle_delay: 1; + unsigned int no_write_same: 1; + unsigned int host_tagset: 1; + unsigned int queuecommand_may_block: 1; + unsigned int max_host_blocked; + const struct attribute_group **shost_groups; + const struct attribute_group **sdev_groups; + u64 vendor_id; + int rpm_autosuspend_delay; }; enum scsi_host_state { @@ -37943,8 +39378,6 @@ enum scsi_host_state { SHOST_DEL_RECOVERY = 7, }; -struct scsi_host_template; - struct scsi_transport_template; struct Scsi_Host { @@ -38017,73 +39450,6 @@ struct Scsi_Host { unsigned long hostdata[0]; }; -enum scsi_timeout_action { - SCSI_EH_DONE = 0, - SCSI_EH_RESET_TIMER = 1, - SCSI_EH_NOT_HANDLED = 2, -}; - -struct scsi_target; - -struct scsi_host_template { - unsigned int cmd_size; - int (*queuecommand)(struct Scsi_Host *, struct scsi_cmnd *); - void (*commit_rqs)(struct Scsi_Host *, u16); - struct module *module; - const char *name; - const char * (*info)(struct Scsi_Host *); - int (*ioctl)(struct scsi_device *, unsigned int, void __attribute__((btf_type_tag("user"))) *); - int (*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 queuecommand_may_block: 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; -}; - enum scsi_cmnd_submitter { SUBMITTED_BY_BLOCK_LAYER = 0, SUBMITTED_BY_SCSI_ERROR_HANDLER = 1, @@ -38188,6 +39554,10 @@ struct scsi_device { struct scsi_target *sdev_target; blist_flags_t sdev_bflags; unsigned int eh_timeout; + unsigned int manage_system_start_stop: 1; + unsigned int manage_runtime_start_stop: 1; + unsigned int manage_shutdown: 1; + unsigned int force_runtime_start_on_system_start: 1; unsigned int removable: 1; unsigned int changed: 1; unsigned int busy: 1; @@ -38217,8 +39587,6 @@ struct scsi_device { 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 no_start_on_resume: 1; unsigned int start_stop_pwr_cond: 1; unsigned int no_uld_attach: 1; unsigned int select_no_atn: 1; @@ -38308,7251 +39676,5738 @@ struct scsi_target { unsigned long starget_data[0]; }; -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, +enum { + BLK_MQ_UNIQUE_TAG_BITS = 16, + BLK_MQ_UNIQUE_TAG_MASK = 65535, }; -typedef int (*ata_prereset_fn_t)(struct ata_link *, unsigned long); +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, +}; -typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, unsigned long); +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, +}; -typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); +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 sw_activity { - OFF = 0, - BLINK_ON = 1, - BLINK_OFF = 2, +enum hctx_type { + HCTX_TYPE_DEFAULT = 0, + HCTX_TYPE_READ = 1, + HCTX_TYPE_POLL = 2, + HCTX_MAX_TYPES = 3, }; -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; +enum scsi_scan_mode { + SCSI_SCAN_INITIAL = 0, + SCSI_SCAN_RESCAN = 1, + SCSI_SCAN_MANUAL = 2, }; -struct ata_cpr { - u8 num; - u8 num_storage_elements; - u64 start_lba; - u64 num_lbas; +typedef __u64 __virtio64; + +typedef __u32 __virtio32; + +struct virtio_scsi_event { + __virtio32 event; + __u8 lun[8]; + __virtio32 reason; }; -struct ata_cpr_log { - u8 nr_cpr; - struct ata_cpr cpr[0]; +struct virtio_scsi; + +struct virtio_scsi_event_node { + struct virtio_scsi *vscsi; + struct virtio_scsi_event event; + struct work_struct work; }; -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]; +struct virtio_scsi_vq { + spinlock_t vq_lock; + struct virtqueue *vq; }; -struct ata_bmdma_prd { - __le32 addr; - __le32 flags_len; +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]; }; -typedef void (*btf_trace_ata_qc_issue)(void *, struct ata_queued_cmd *); +struct virtio_scsi_cmd_req { + __u8 lun[8]; + __virtio64 tag; + __u8 task_attr; + __u8 prio; + __u8 crn; + __u8 cdb[32]; +} __attribute__((packed)); -typedef void (*btf_trace_ata_qc_complete_internal)(void *, struct ata_queued_cmd *); +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)); -typedef void (*btf_trace_ata_qc_complete_failed)(void *, struct ata_queued_cmd *); +struct virtio_scsi_ctrl_tmf_req { + __virtio32 type; + __virtio32 subtype; + __u8 lun[8]; + __virtio64 tag; +}; -typedef void (*btf_trace_ata_qc_complete_done)(void *, struct ata_queued_cmd *); +struct virtio_scsi_ctrl_an_req { + __virtio32 type; + __u8 lun[8]; + __virtio32 event_requested; +}; -typedef void (*btf_trace_ata_tf_load)(void *, struct ata_port *, const struct ata_taskfile *); +typedef __u16 __virtio16; -typedef void (*btf_trace_ata_exec_command)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); +struct virtio_scsi_cmd_resp { + __virtio32 sense_len; + __virtio32 resid; + __virtio16 status_qualifier; + __u8 status; + __u8 response; + __u8 sense[96]; +}; -typedef void (*btf_trace_ata_bmdma_setup)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); +struct virtio_scsi_ctrl_tmf_resp { + __u8 response; +}; -typedef void (*btf_trace_ata_bmdma_start)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); +struct virtio_scsi_ctrl_an_resp { + __virtio32 event_actual; + __u8 response; +} __attribute__((packed)); -typedef void (*btf_trace_ata_bmdma_stop)(void *, struct ata_port *, const struct ata_taskfile *, unsigned int); +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: 64; +} __attribute__((packed)); -typedef void (*btf_trace_ata_bmdma_status)(void *, struct ata_port *, unsigned int); +typedef __u32 blk_mq_req_flags_t; -typedef void (*btf_trace_ata_eh_link_autopsy)(void *, struct ata_device *, unsigned int, unsigned int); +struct scsi_sense_hdr; -typedef void (*btf_trace_ata_eh_link_autopsy_qc)(void *, struct ata_queued_cmd *); +struct scsi_exec_args { + unsigned char *sense; + unsigned int sense_len; + struct scsi_sense_hdr *sshdr; + blk_mq_req_flags_t req_flags; + int scmd_flags; + int *resid; +}; -typedef void (*btf_trace_ata_eh_about_to_do)(void *, struct ata_link *, unsigned int, unsigned int); +struct scsi_sense_hdr { + u8 response_code; + u8 sense_key; + u8 asc; + u8 ascq; + u8 byte4; + u8 byte5; + u8 byte6; + u8 additional_length; +}; -typedef void (*btf_trace_ata_eh_done)(void *, struct ata_link *, unsigned int, unsigned int); +struct phylib_stubs { + int (*hwtstamp_get)(struct phy_device *, struct kernel_hwtstamp_config *); + int (*hwtstamp_set)(struct phy_device *, struct kernel_hwtstamp_config *, struct netlink_ext_ack *); +}; -typedef void (*btf_trace_ata_link_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); +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; +}; -typedef void (*btf_trace_ata_slave_hardreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); +struct mdio_device; -typedef void (*btf_trace_ata_link_softreset_begin)(void *, struct ata_link *, unsigned int *, unsigned long); +struct phy_package_shared; -typedef void (*btf_trace_ata_link_hardreset_end)(void *, struct ata_link *, unsigned int *, int); +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]; +}; -typedef void (*btf_trace_ata_slave_hardreset_end)(void *, struct ata_link *, unsigned int *, int); +struct reset_control; -typedef void (*btf_trace_ata_link_softreset_end)(void *, struct ata_link *, unsigned int *, int); +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; +}; -typedef void (*btf_trace_ata_link_postreset)(void *, struct ata_link *, unsigned int *, int); +struct phy_package_shared { + int addr; + refcount_t refcnt; + unsigned long flags; + size_t priv_size; + void *priv; +}; -typedef void (*btf_trace_ata_slave_postreset)(void *, struct ata_link *, unsigned int *, int); +typedef void (*dr_release_t)(struct device *, void *); -typedef void (*btf_trace_ata_std_sched_eh)(void *, struct ata_port *); +typedef int (*dr_match_t)(struct device *, void *, void *); -typedef void (*btf_trace_ata_port_freeze)(void *, struct ata_port *); +struct mdiobus_devres { + struct mii_bus *mii; +}; -typedef void (*btf_trace_ata_port_thaw)(void *, struct ata_port *); +struct xdp_mem_info { + u32 type; + u32 id; +}; -typedef void (*btf_trace_ata_sff_hsm_state)(void *, struct ata_queued_cmd *, unsigned char); +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; +}; -typedef void (*btf_trace_ata_sff_hsm_command_complete)(void *, struct ata_queued_cmd *, unsigned char); +struct xdp_rxq_info; -typedef void (*btf_trace_ata_sff_port_intr)(void *, struct ata_queued_cmd *, unsigned char); +struct xdp_txq_info; -typedef void (*btf_trace_ata_sff_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); +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; +}; -typedef void (*btf_trace_atapi_pio_transfer_data)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); +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; +}; -typedef void (*btf_trace_atapi_send_cdb)(void *, struct ata_queued_cmd *, unsigned int, unsigned int); +struct xdp_txq_info { + struct net_device *dev; +}; -typedef void (*btf_trace_ata_sff_flush_pio_task)(void *, struct ata_port *); +struct xdp_md { + __u32 data; + __u32 data_end; + __u32 data_meta; + __u32 ingress_ifindex; + __u32 rx_queue_index; + __u32 egress_ifindex; +}; -struct module_version_attribute { - struct module_attribute mattr; - const char *module_name; - const char *version; +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 ata_port_info { - unsigned long flags; - unsigned long link_flags; - unsigned int pio_mask; - unsigned int mwdma_mask; - unsigned int udma_mask; - struct ata_port_operations *port_ops; - void *private_data; +struct ethtool_regs { + __u32 cmd; + __u32 version; + __u32 len; + __u8 data[0]; }; -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 ethtool_wolinfo { + __u32 cmd; + __u32 supported; + __u32 wolopts; + __u8 sopass[6]; }; -struct ata_force_ent { - int port; - int device; - struct ata_force_param param; +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, }; -struct ata_xfer_ent { - int shift; - int bits; - u8 base; +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, }; -struct ata_blacklist_entry { - const char *model_num; - const char *model_rev; - unsigned long horkage; +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 ata_link_iter_mode { - ATA_LITER_EDGE = 0, - ATA_LITER_HOST_FIRST = 1, - ATA_LITER_PMP_FIRST = 2, +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 ata_dev_iter_mode { - ATA_DITER_ENABLED = 0, - ATA_DITER_ENABLED_REVERSE = 1, - ATA_DITER_ALL = 2, - ATA_DITER_ALL_REVERSE = 3, +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 { - ATA_MAX_DEVICES = 2, - ATA_MAX_PRD = 256, - ATA_SECT_SIZE = 512, - ATA_MAX_SECTORS_128 = 128, - ATA_MAX_SECTORS = 256, - ATA_MAX_SECTORS_1024 = 1024, - ATA_MAX_SECTORS_LBA48 = 65535, - ATA_MAX_SECTORS_TAPE = 65535, - ATA_MAX_TRIM_RNUM = 64, - ATA_ID_WORDS = 256, - ATA_ID_CONFIG = 0, - ATA_ID_CYLS = 1, - ATA_ID_HEADS = 3, - ATA_ID_SECTORS = 6, - ATA_ID_SERNO = 10, - ATA_ID_BUF_SIZE = 21, - ATA_ID_FW_REV = 23, - ATA_ID_PROD = 27, - ATA_ID_MAX_MULTSECT = 47, - ATA_ID_DWORD_IO = 48, - ATA_ID_TRUSTED = 48, - ATA_ID_CAPABILITY = 49, - ATA_ID_OLD_PIO_MODES = 51, - ATA_ID_OLD_DMA_MODES = 52, - ATA_ID_FIELD_VALID = 53, - ATA_ID_CUR_CYLS = 54, - ATA_ID_CUR_HEADS = 55, - ATA_ID_CUR_SECTORS = 56, - ATA_ID_MULTSECT = 59, - ATA_ID_LBA_CAPACITY = 60, - ATA_ID_SWDMA_MODES = 62, - ATA_ID_MWDMA_MODES = 63, - ATA_ID_PIO_MODES = 64, - ATA_ID_EIDE_DMA_MIN = 65, - ATA_ID_EIDE_DMA_TIME = 66, - ATA_ID_EIDE_PIO = 67, - ATA_ID_EIDE_PIO_IORDY = 68, - ATA_ID_ADDITIONAL_SUPP = 69, - ATA_ID_QUEUE_DEPTH = 75, - ATA_ID_SATA_CAPABILITY = 76, - ATA_ID_SATA_CAPABILITY_2 = 77, - ATA_ID_FEATURE_SUPP = 78, - ATA_ID_MAJOR_VER = 80, - ATA_ID_COMMAND_SET_1 = 82, - ATA_ID_COMMAND_SET_2 = 83, - ATA_ID_CFSSE = 84, - ATA_ID_CFS_ENABLE_1 = 85, - ATA_ID_CFS_ENABLE_2 = 86, - ATA_ID_CSF_DEFAULT = 87, - ATA_ID_UDMA_MODES = 88, - ATA_ID_HW_CONFIG = 93, - ATA_ID_SPG = 98, - ATA_ID_LBA_CAPACITY_2 = 100, - ATA_ID_SECTOR_SIZE = 106, - ATA_ID_WWN = 108, - ATA_ID_LOGICAL_SECTOR_SIZE = 117, - ATA_ID_COMMAND_SET_3 = 119, - ATA_ID_COMMAND_SET_4 = 120, - ATA_ID_LAST_LUN = 126, - ATA_ID_DLF = 128, - ATA_ID_CSFO = 129, - ATA_ID_CFA_POWER = 160, - ATA_ID_CFA_KEY_MGMT = 162, - ATA_ID_CFA_MODES = 163, - ATA_ID_DATA_SET_MGMT = 169, - ATA_ID_SCT_CMD_XPORT = 206, - ATA_ID_ROT_SPEED = 217, - ATA_ID_PIO4 = 2, - ATA_ID_SERNO_LEN = 20, - ATA_ID_FW_REV_LEN = 8, - ATA_ID_PROD_LEN = 40, - ATA_ID_WWN_LEN = 8, - ATA_PCI_CTL_OFS = 2, - ATA_PIO0 = 1, - ATA_PIO1 = 3, - ATA_PIO2 = 7, - ATA_PIO3 = 15, - ATA_PIO4 = 31, - ATA_PIO5 = 63, - ATA_PIO6 = 127, - ATA_PIO4_ONLY = 16, - ATA_SWDMA0 = 1, - ATA_SWDMA1 = 3, - ATA_SWDMA2 = 7, - ATA_SWDMA2_ONLY = 4, - ATA_MWDMA0 = 1, - ATA_MWDMA1 = 3, - ATA_MWDMA2 = 7, - ATA_MWDMA3 = 15, - ATA_MWDMA4 = 31, - ATA_MWDMA12_ONLY = 6, - ATA_MWDMA2_ONLY = 4, - ATA_UDMA0 = 1, - ATA_UDMA1 = 3, - ATA_UDMA2 = 7, - ATA_UDMA3 = 15, - ATA_UDMA4 = 31, - ATA_UDMA5 = 63, - ATA_UDMA6 = 127, - ATA_UDMA7 = 255, - ATA_UDMA24_ONLY = 20, - ATA_UDMA_MASK_40C = 7, - ATA_PRD_SZ = 8, - ATA_PRD_TBL_SZ = 2048, - ATA_PRD_EOT = -2147483648, - ATA_DMA_TABLE_OFS = 4, - ATA_DMA_STATUS = 2, - ATA_DMA_CMD = 0, - ATA_DMA_WR = 8, - ATA_DMA_START = 1, - ATA_DMA_INTR = 4, - ATA_DMA_ERR = 2, - ATA_DMA_ACTIVE = 1, - ATA_HOB = 128, - ATA_NIEN = 2, - ATA_LBA = 64, - ATA_DEV1 = 16, - ATA_DEVICE_OBS = 160, - ATA_DEVCTL_OBS = 8, - ATA_BUSY = 128, - ATA_DRDY = 64, - ATA_DF = 32, - ATA_DSC = 16, - ATA_DRQ = 8, - ATA_CORR = 4, - ATA_SENSE = 2, - ATA_ERR = 1, - ATA_SRST = 4, - ATA_ICRC = 128, - ATA_BBK = 128, - ATA_UNC = 64, - ATA_MC = 32, - ATA_IDNF = 16, - ATA_MCR = 8, - ATA_ABORTED = 4, - ATA_TRK0NF = 2, - ATA_AMNF = 1, - ATAPI_LFS = 240, - ATAPI_EOM = 2, - ATAPI_ILI = 1, - ATAPI_IO = 2, - ATAPI_COD = 1, - ATA_REG_DATA = 0, - ATA_REG_ERR = 1, - ATA_REG_NSECT = 2, - ATA_REG_LBAL = 3, - ATA_REG_LBAM = 4, - ATA_REG_LBAH = 5, - ATA_REG_DEVICE = 6, - ATA_REG_STATUS = 7, - ATA_REG_FEATURE = 1, - ATA_REG_CMD = 7, - ATA_REG_BYTEL = 4, - ATA_REG_BYTEH = 5, - ATA_REG_DEVSEL = 6, - ATA_REG_IRQ = 2, - ATA_CMD_DEV_RESET = 8, - ATA_CMD_CHK_POWER = 229, - ATA_CMD_STANDBY = 226, - ATA_CMD_IDLE = 227, - ATA_CMD_EDD = 144, - ATA_CMD_DOWNLOAD_MICRO = 146, - ATA_CMD_DOWNLOAD_MICRO_DMA = 147, - ATA_CMD_NOP = 0, - ATA_CMD_FLUSH = 231, - ATA_CMD_FLUSH_EXT = 234, - ATA_CMD_ID_ATA = 236, - ATA_CMD_ID_ATAPI = 161, - ATA_CMD_SERVICE = 162, - ATA_CMD_READ = 200, - ATA_CMD_READ_EXT = 37, - ATA_CMD_READ_QUEUED = 38, - ATA_CMD_READ_STREAM_EXT = 43, - ATA_CMD_READ_STREAM_DMA_EXT = 42, - ATA_CMD_WRITE = 202, - ATA_CMD_WRITE_EXT = 53, - ATA_CMD_WRITE_QUEUED = 54, - ATA_CMD_WRITE_STREAM_EXT = 59, - ATA_CMD_WRITE_STREAM_DMA_EXT = 58, - ATA_CMD_WRITE_FUA_EXT = 61, - ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, - ATA_CMD_FPDMA_READ = 96, - ATA_CMD_FPDMA_WRITE = 97, - ATA_CMD_NCQ_NON_DATA = 99, - ATA_CMD_FPDMA_SEND = 100, - ATA_CMD_FPDMA_RECV = 101, - ATA_CMD_PIO_READ = 32, - ATA_CMD_PIO_READ_EXT = 36, - ATA_CMD_PIO_WRITE = 48, - ATA_CMD_PIO_WRITE_EXT = 52, - ATA_CMD_READ_MULTI = 196, - ATA_CMD_READ_MULTI_EXT = 41, - ATA_CMD_WRITE_MULTI = 197, - ATA_CMD_WRITE_MULTI_EXT = 57, - ATA_CMD_WRITE_MULTI_FUA_EXT = 206, - ATA_CMD_SET_FEATURES = 239, - ATA_CMD_SET_MULTI = 198, - ATA_CMD_PACKET = 160, - ATA_CMD_VERIFY = 64, - ATA_CMD_VERIFY_EXT = 66, - ATA_CMD_WRITE_UNCORR_EXT = 69, - ATA_CMD_STANDBYNOW1 = 224, - ATA_CMD_IDLEIMMEDIATE = 225, - ATA_CMD_SLEEP = 230, - ATA_CMD_INIT_DEV_PARAMS = 145, - ATA_CMD_READ_NATIVE_MAX = 248, - ATA_CMD_READ_NATIVE_MAX_EXT = 39, - ATA_CMD_SET_MAX = 249, - ATA_CMD_SET_MAX_EXT = 55, - ATA_CMD_READ_LOG_EXT = 47, - ATA_CMD_WRITE_LOG_EXT = 63, - ATA_CMD_READ_LOG_DMA_EXT = 71, - ATA_CMD_WRITE_LOG_DMA_EXT = 87, - ATA_CMD_TRUSTED_NONDATA = 91, - ATA_CMD_TRUSTED_RCV = 92, - ATA_CMD_TRUSTED_RCV_DMA = 93, - ATA_CMD_TRUSTED_SND = 94, - ATA_CMD_TRUSTED_SND_DMA = 95, - ATA_CMD_PMP_READ = 228, - ATA_CMD_PMP_READ_DMA = 233, - ATA_CMD_PMP_WRITE = 232, - ATA_CMD_PMP_WRITE_DMA = 235, - ATA_CMD_CONF_OVERLAY = 177, - ATA_CMD_SEC_SET_PASS = 241, - ATA_CMD_SEC_UNLOCK = 242, - ATA_CMD_SEC_ERASE_PREP = 243, - ATA_CMD_SEC_ERASE_UNIT = 244, - ATA_CMD_SEC_FREEZE_LOCK = 245, - ATA_CMD_SEC_DISABLE_PASS = 246, - ATA_CMD_CONFIG_STREAM = 81, - ATA_CMD_SMART = 176, - ATA_CMD_MEDIA_LOCK = 222, - ATA_CMD_MEDIA_UNLOCK = 223, - ATA_CMD_DSM = 6, - ATA_CMD_CHK_MED_CRD_TYP = 209, - ATA_CMD_CFA_REQ_EXT_ERR = 3, - ATA_CMD_CFA_WRITE_NE = 56, - ATA_CMD_CFA_TRANS_SECT = 135, - ATA_CMD_CFA_ERASE = 192, - ATA_CMD_CFA_WRITE_MULT_NE = 205, - ATA_CMD_REQ_SENSE_DATA = 11, - ATA_CMD_SANITIZE_DEVICE = 180, - ATA_CMD_ZAC_MGMT_IN = 74, - ATA_CMD_ZAC_MGMT_OUT = 159, - ATA_CMD_RESTORE = 16, - ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, - ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, - ATA_SUBCMD_FPDMA_SEND_DSM = 0, - ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, - ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, - ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, - ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, - ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, - ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, - ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, - ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, - ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, - ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, - ATA_LOG_DIRECTORY = 0, - ATA_LOG_SATA_NCQ = 16, - ATA_LOG_NCQ_NON_DATA = 18, - ATA_LOG_NCQ_SEND_RECV = 19, - ATA_LOG_CDL = 24, - ATA_LOG_CDL_SIZE = 512, - ATA_LOG_IDENTIFY_DEVICE = 48, - ATA_LOG_SENSE_NCQ = 15, - ATA_LOG_SENSE_NCQ_SIZE = 1024, - ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, - ATA_LOG_SUPPORTED_CAPABILITIES = 3, - ATA_LOG_CURRENT_SETTINGS = 4, - ATA_LOG_SECURITY = 6, - ATA_LOG_SATA_SETTINGS = 8, - ATA_LOG_ZONED_INFORMATION = 9, - ATA_LOG_DEVSLP_OFFSET = 48, - ATA_LOG_DEVSLP_SIZE = 8, - ATA_LOG_DEVSLP_MDAT = 0, - ATA_LOG_DEVSLP_MDAT_MASK = 31, - ATA_LOG_DEVSLP_DETO = 1, - ATA_LOG_DEVSLP_VALID = 7, - ATA_LOG_DEVSLP_VALID_MASK = 128, - ATA_LOG_NCQ_PRIO_OFFSET = 9, - ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, - ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, - ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, - ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, - ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, - ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, - ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, - ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, - ATA_LOG_NCQ_SEND_RECV_SIZE = 20, - ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, - ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, - ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, - ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, - ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, - ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, - ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, - ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, - ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, - ATA_LOG_NCQ_NON_DATA_SIZE = 64, - ATA_CMD_READ_LONG = 34, - ATA_CMD_READ_LONG_ONCE = 35, - ATA_CMD_WRITE_LONG = 50, - ATA_CMD_WRITE_LONG_ONCE = 51, - SETFEATURES_XFER = 3, - XFER_UDMA_7 = 71, - XFER_UDMA_6 = 70, - XFER_UDMA_5 = 69, - XFER_UDMA_4 = 68, - XFER_UDMA_3 = 67, - XFER_UDMA_2 = 66, - XFER_UDMA_1 = 65, - XFER_UDMA_0 = 64, - XFER_MW_DMA_4 = 36, - XFER_MW_DMA_3 = 35, - XFER_MW_DMA_2 = 34, - XFER_MW_DMA_1 = 33, - XFER_MW_DMA_0 = 32, - XFER_SW_DMA_2 = 18, - XFER_SW_DMA_1 = 17, - XFER_SW_DMA_0 = 16, - XFER_PIO_6 = 14, - XFER_PIO_5 = 13, - XFER_PIO_4 = 12, - XFER_PIO_3 = 11, - XFER_PIO_2 = 10, - XFER_PIO_1 = 9, - XFER_PIO_0 = 8, - XFER_PIO_SLOW = 0, - SETFEATURES_WC_ON = 2, - SETFEATURES_WC_OFF = 130, - SETFEATURES_RA_ON = 170, - SETFEATURES_RA_OFF = 85, - SETFEATURES_AAM_ON = 66, - SETFEATURES_AAM_OFF = 194, - SETFEATURES_SPINUP = 7, - SETFEATURES_SPINUP_TIMEOUT = 30000, - SETFEATURES_SATA_ENABLE = 16, - SETFEATURES_SATA_DISABLE = 144, - SETFEATURES_CDL = 13, - SATA_FPDMA_OFFSET = 1, - SATA_FPDMA_AA = 2, - SATA_DIPM = 3, - SATA_FPDMA_IN_ORDER = 4, - SATA_AN = 5, - SATA_SSP = 6, - SATA_DEVSLP = 9, - SETFEATURE_SENSE_DATA = 195, - SETFEATURE_SENSE_DATA_SUCC_NCQ = 196, - ATA_SET_MAX_ADDR = 0, - ATA_SET_MAX_PASSWD = 1, - ATA_SET_MAX_LOCK = 2, - ATA_SET_MAX_UNLOCK = 3, - ATA_SET_MAX_FREEZE_LOCK = 4, - ATA_SET_MAX_PASSWD_DMA = 5, - ATA_SET_MAX_UNLOCK_DMA = 6, - ATA_DCO_RESTORE = 192, - ATA_DCO_FREEZE_LOCK = 193, - ATA_DCO_IDENTIFY = 194, - ATA_DCO_SET = 195, - ATA_SMART_ENABLE = 216, - ATA_SMART_READ_VALUES = 208, - ATA_SMART_READ_THRESHOLDS = 209, - ATA_DSM_TRIM = 1, - ATA_SMART_LBAM_PASS = 79, - ATA_SMART_LBAH_PASS = 194, - ATAPI_PKT_DMA = 1, - ATAPI_DMADIR = 4, - ATAPI_CDB_LEN = 16, - SATA_PMP_MAX_PORTS = 15, - SATA_PMP_CTRL_PORT = 15, - SATA_PMP_GSCR_DWORDS = 128, - SATA_PMP_GSCR_PROD_ID = 0, - SATA_PMP_GSCR_REV = 1, - SATA_PMP_GSCR_PORT_INFO = 2, - SATA_PMP_GSCR_ERROR = 32, - SATA_PMP_GSCR_ERROR_EN = 33, - SATA_PMP_GSCR_FEAT = 64, - SATA_PMP_GSCR_FEAT_EN = 96, - SATA_PMP_PSCR_STATUS = 0, - SATA_PMP_PSCR_ERROR = 1, - SATA_PMP_PSCR_CONTROL = 2, - SATA_PMP_FEAT_BIST = 1, - SATA_PMP_FEAT_PMREQ = 2, - SATA_PMP_FEAT_DYNSSC = 4, - SATA_PMP_FEAT_NOTIFY = 8, - ATA_CBL_NONE = 0, - ATA_CBL_PATA40 = 1, - ATA_CBL_PATA80 = 2, - ATA_CBL_PATA40_SHORT = 3, - ATA_CBL_PATA_UNK = 4, - ATA_CBL_PATA_IGN = 5, - ATA_CBL_SATA = 6, - SCR_STATUS = 0, - SCR_ERROR = 1, - SCR_CONTROL = 2, - SCR_ACTIVE = 3, - SCR_NOTIFICATION = 4, - SERR_DATA_RECOVERED = 1, - SERR_COMM_RECOVERED = 2, - SERR_DATA = 256, - SERR_PERSISTENT = 512, - SERR_PROTOCOL = 1024, - SERR_INTERNAL = 2048, - SERR_PHYRDY_CHG = 65536, - SERR_PHY_INT_ERR = 131072, - SERR_COMM_WAKE = 262144, - SERR_10B_8B_ERR = 524288, - SERR_DISPARITY = 1048576, - SERR_CRC = 2097152, - SERR_HANDSHAKE = 4194304, - SERR_LINK_SEQ_ERR = 8388608, - SERR_TRANS_ST_ERROR = 16777216, - SERR_UNRECOG_FIS = 33554432, - SERR_DEV_XCHG = 67108864, +enum ethtool_link_ext_substate_module { + ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1, }; -enum { - LIBATA_MAX_PRD = 128, - LIBATA_DUMB_MAX_PRD = 64, - ATA_DEF_QUEUE = 1, - ATA_MAX_QUEUE = 32, - ATA_TAG_INTERNAL = 32, - ATA_SHORT_PAUSE = 16, - ATAPI_MAX_DRAIN = 16384, - ATA_ALL_DEVICES = 3, - ATA_SHT_EMULATED = 1, - ATA_SHT_THIS_ID = -1, - ATA_TFLAG_LBA48 = 1, - ATA_TFLAG_ISADDR = 2, - ATA_TFLAG_DEVICE = 4, - ATA_TFLAG_WRITE = 8, - ATA_TFLAG_LBA = 16, - ATA_TFLAG_FUA = 32, - ATA_TFLAG_POLLING = 64, - ATA_DFLAG_LBA = 1, - ATA_DFLAG_LBA48 = 2, - ATA_DFLAG_CDB_INTR = 4, - ATA_DFLAG_NCQ = 8, - ATA_DFLAG_FLUSH_EXT = 16, - ATA_DFLAG_ACPI_PENDING = 32, - ATA_DFLAG_ACPI_FAILED = 64, - ATA_DFLAG_AN = 128, - ATA_DFLAG_TRUSTED = 256, - ATA_DFLAG_FUA = 512, - ATA_DFLAG_DMADIR = 1024, - ATA_DFLAG_NCQ_SEND_RECV = 2048, - ATA_DFLAG_NCQ_PRIO = 4096, - ATA_DFLAG_CDL = 8192, - ATA_DFLAG_CFG_MASK = 16383, - ATA_DFLAG_PIO = 16384, - ATA_DFLAG_NCQ_OFF = 32768, - ATA_DFLAG_SLEEPING = 65536, - ATA_DFLAG_DUBIOUS_XFER = 131072, - ATA_DFLAG_NO_UNLOAD = 262144, - ATA_DFLAG_UNLOCK_HPA = 524288, - ATA_DFLAG_INIT_MASK = 1048575, - ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576, - ATA_DFLAG_CDL_ENABLED = 2097152, - ATA_DFLAG_DETACH = 16777216, - ATA_DFLAG_DETACHED = 33554432, - ATA_DFLAG_DA = 67108864, - ATA_DFLAG_DEVSLP = 134217728, - ATA_DFLAG_ACPI_DISABLED = 268435456, - ATA_DFLAG_D_SENSE = 536870912, - ATA_DFLAG_ZAC = 1073741824, - ATA_DFLAG_FEATURES_MASK = 201341696, - ATA_DEV_UNKNOWN = 0, - ATA_DEV_ATA = 1, - ATA_DEV_ATA_UNSUP = 2, - ATA_DEV_ATAPI = 3, - ATA_DEV_ATAPI_UNSUP = 4, - ATA_DEV_PMP = 5, - ATA_DEV_PMP_UNSUP = 6, - ATA_DEV_SEMB = 7, - ATA_DEV_SEMB_UNSUP = 8, - ATA_DEV_ZAC = 9, - ATA_DEV_ZAC_UNSUP = 10, - ATA_DEV_NONE = 11, - ATA_LFLAG_NO_HRST = 2, - ATA_LFLAG_NO_SRST = 4, - ATA_LFLAG_ASSUME_ATA = 8, - ATA_LFLAG_ASSUME_SEMB = 16, - ATA_LFLAG_ASSUME_CLASS = 24, - ATA_LFLAG_NO_RETRY = 32, - ATA_LFLAG_DISABLED = 64, - ATA_LFLAG_SW_ACTIVITY = 128, - ATA_LFLAG_NO_LPM = 256, - ATA_LFLAG_RST_ONCE = 512, - ATA_LFLAG_CHANGED = 1024, - ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, - ATA_FLAG_SLAVE_POSS = 1, - ATA_FLAG_SATA = 2, - ATA_FLAG_NO_LPM = 4, - ATA_FLAG_NO_LOG_PAGE = 32, - ATA_FLAG_NO_ATAPI = 64, - ATA_FLAG_PIO_DMA = 128, - ATA_FLAG_PIO_LBA48 = 256, - ATA_FLAG_PIO_POLLING = 512, - ATA_FLAG_NCQ = 1024, - ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, - ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, - ATA_FLAG_DEBUGMSG = 8192, - ATA_FLAG_FPDMA_AA = 16384, - ATA_FLAG_IGN_SIMPLEX = 32768, - ATA_FLAG_NO_IORDY = 65536, - ATA_FLAG_ACPI_SATA = 131072, - ATA_FLAG_AN = 262144, - ATA_FLAG_PMP = 524288, - ATA_FLAG_FPDMA_AUX = 1048576, - ATA_FLAG_EM = 2097152, - ATA_FLAG_SW_ACTIVITY = 4194304, - ATA_FLAG_NO_DIPM = 8388608, - ATA_FLAG_SAS_HOST = 16777216, - ATA_PFLAG_EH_PENDING = 1, - ATA_PFLAG_EH_IN_PROGRESS = 2, - ATA_PFLAG_FROZEN = 4, - ATA_PFLAG_RECOVERED = 8, - ATA_PFLAG_LOADING = 16, - ATA_PFLAG_SCSI_HOTPLUG = 64, - ATA_PFLAG_INITIALIZING = 128, - ATA_PFLAG_RESETTING = 256, - ATA_PFLAG_UNLOADING = 512, - ATA_PFLAG_UNLOADED = 1024, - ATA_PFLAG_SUSPENDED = 131072, - ATA_PFLAG_PM_PENDING = 262144, - ATA_PFLAG_INIT_GTM_VALID = 524288, - ATA_PFLAG_PIO32 = 1048576, - ATA_PFLAG_PIO32CHANGE = 2097152, - ATA_PFLAG_EXTERNAL = 4194304, - ATA_QCFLAG_ACTIVE = 1, - ATA_QCFLAG_DMAMAP = 2, - ATA_QCFLAG_RTF_FILLED = 4, - ATA_QCFLAG_IO = 8, - ATA_QCFLAG_RESULT_TF = 16, - ATA_QCFLAG_CLEAR_EXCL = 32, - ATA_QCFLAG_QUIET = 64, - ATA_QCFLAG_RETRY = 128, - ATA_QCFLAG_HAS_CDL = 256, - ATA_QCFLAG_EH = 65536, - ATA_QCFLAG_SENSE_VALID = 131072, - ATA_QCFLAG_EH_SCHEDULED = 262144, - ATA_QCFLAG_EH_SUCCESS_CMD = 524288, - ATA_HOST_SIMPLEX = 1, - ATA_HOST_STARTED = 2, - ATA_HOST_PARALLEL_SCAN = 4, - ATA_HOST_IGNORE_ATA = 8, - ATA_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_GET_SUCCESS_SENSE = 64, - ATA_EH_PERDEV_MASK = 97, - 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 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, }; -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 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; + }; }; -enum ata_xfer_mask { - ATA_MASK_PIO = 127, - ATA_MASK_MWDMA = 3968, - ATA_MASK_UDMA = 1044480, +struct ethtool_link_ext_stats { + u64 link_down_events; }; -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 ethtool_eeprom { + __u32 cmd; + __u32 magic; + __u32 offset; + __u32 len; + __u8 data[0]; }; -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 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 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 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 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 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 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 kernel_ethtool_ringparam { + u32 rx_buf_len; + u8 tcp_data_split; + u8 tx_push; + u8 rx_push; + u32 cqe_size; + u32 tx_push_buf_len; + u32 tx_push_buf_max_len; }; -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]; +enum ethtool_mac_stats_src { + ETHTOOL_MAC_STATS_SRC_AGGREGATE = 0, + ETHTOOL_MAC_STATS_SRC_EMAC = 1, + ETHTOOL_MAC_STATS_SRC_PMAC = 2, }; -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 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 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 ethtool_pauseparam { + __u32 cmd; + __u32 autoneg; + __u32 rx_pause; + __u32 tx_pause; }; -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 ethtool_test { + __u32 cmd; + __u32 flags; + __u32 reserved; + __u32 len; + __u64 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 ethtool_stats { + __u32 cmd; + __u32 n_stats; + __u64 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 ethtool_tcpip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be16 psrc; + __be16 pdst; + __u8 tos; }; -struct trace_event_raw_ata_port_eh_begin_template { - struct trace_entry ent; - unsigned int ata_port; - char __data[0]; +struct ethtool_ah_espip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 spi; + __u8 tos; }; -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 ethtool_usrip4_spec { + __be32 ip4src; + __be32 ip4dst; + __be32 l4_4_bytes; + __u8 tos; + __u8 ip_ver; + __u8 proto; }; -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 ethtool_tcpip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be16 psrc; + __be16 pdst; + __u8 tclass; }; -struct trace_event_raw_ata_sff_template { - struct trace_entry ent; - unsigned int ata_port; - unsigned char hsm_state; - char __data[0]; +struct ethtool_ah_espip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be32 spi; + __u8 tclass; }; -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 ethtool_usrip6_spec { + __be32 ip6src[4]; + __be32 ip6dst[4]; + __be32 l4_4_bytes; + __u8 tclass; + __u8 l4_proto; }; -typedef void (*dr_release_t)(struct device *, void *); - -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 pci_bits { - unsigned int reg; - unsigned int width; - unsigned long mask; - unsigned long val; +struct ethhdr { + unsigned char h_dest[6]; + unsigned char h_source[6]; + __be16 h_proto; }; -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 *); +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]; }; -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; +struct ethtool_flow_ext { + __u8 padding[2]; + unsigned char h_dest[6]; + __be16 vlan_etype; + __be16 vlan_tci; + __be32 data[2]; }; -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; +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; }; -typedef struct pccard_mem_map pccard_mem_map; - -struct io_window_t { - u_int InUse; - u_int Config; - struct resource *res; +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]; }; -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 ethtool_flash { + __u32 cmd; + __u32 region; + char data[128]; }; -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 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 pccard_io_map { - u_char map; - u_char flags; - u_short speed; - phys_addr_t start; - phys_addr_t stop; +struct ethtool_dump { + __u32 cmd; + __u32 version; + __u32 flag; + __u32 len; + __u8 data[0]; }; -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 *); +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 class_info { - int class; - char *class_name; +struct ethtool_modinfo { + __u32 cmd; + __u32 type; + __u32 eeprom_len; + __u32 reserved[8]; }; -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, +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]; }; -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, +struct ethtool_tunable { + __u32 cmd; + __u32 id; + __u32 type_id; + __u32 len; + void *data[0]; }; -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 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]; }; -enum usb_interface_condition { - USB_INTERFACE_UNBOUND = 0, - USB_INTERFACE_BINDING = 1, - USB_INTERFACE_BOUND = 2, - USB_INTERFACE_UNBINDING = 3, +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; }; -enum usb_wireless_status { - USB_WIRELESS_STATUS_NA = 0, - USB_WIRELESS_STATUS_DISCONNECTED = 1, - USB_WIRELESS_STATUS_CONNECTED = 2, +struct ethtool_fec_stat { + u64 total; + u64 lanes[8]; }; -enum usb3_link_state { - USB3_LPM_U0 = 0, - USB3_LPM_U1 = 1, - USB3_LPM_U2 = 2, - USB3_LPM_U3 = 3, +struct ethtool_fec_stats { + struct ethtool_fec_stat corrected_blocks; + struct ethtool_fec_stat uncorrectable_blocks; + struct ethtool_fec_stat corrected_bits; }; -enum usb_dev_authorize_policy { - USB_DEVICE_AUTHORIZE_NONE = 0, - USB_DEVICE_AUTHORIZE_ALL = 1, - USB_DEVICE_AUTHORIZE_INTERNAL = 2, +struct ethtool_fecparam { + __u32 cmd; + __u32 active_fec; + __u32 fec; + __u32 reserved; }; -struct usb_devmap { - unsigned long devicemap[2]; +struct ethtool_module_eeprom { + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; + u8 *data; }; -struct usb_device; +struct ethtool_eth_phy_stats { + enum ethtool_mac_stats_src src; + union { + struct { + u64 SymbolErrorDuringCarrier; + }; + struct { + u64 SymbolErrorDuringCarrier; + } stats; + }; +}; -struct mon_bus; +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 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 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 usb_host_endpoint; +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 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 ethtool_rmon_hist_range { + u16 low; + u16 high; }; -struct urb; +enum ethtool_module_power_mode_policy { + ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1, + ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2, +}; -struct hc_driver; +enum ethtool_module_power_mode { + ETHTOOL_MODULE_POWER_MODE_LOW = 1, + ETHTOOL_MODULE_POWER_MODE_HIGH = 2, +}; -struct usb_phy; +struct ethtool_module_power_mode_params { + enum ethtool_module_power_mode_policy policy; + enum ethtool_module_power_mode mode; +}; -struct usb_phy_roothub; +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 dma_pool; +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 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]; +struct ethtool_mm_cfg { + u32 verify_time; + bool verify_enabled; + bool tx_enabled; + bool pmac_enabled; + u32 tx_min_frag_size; }; -struct usb_endpoint_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bEndpointAddress; - __u8 bmAttributes; - __le16 wMaxPacketSize; - __u8 bInterval; - __u8 bRefresh; - __u8 bSynchAddress; -} __attribute__((packed)); +struct ethtool_mm_stats { + u64 MACMergeFrameAssErrorCount; + u64 MACMergeFrameSmdErrorCount; + u64 MACMergeFrameAssOkCount; + u64 MACMergeFragCountRx; + u64 MACMergeFragCountTx; + u64 MACMergeHoldCount; +}; -struct usb_ss_ep_comp_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bMaxBurst; - __u8 bmAttributes; - __le16 wBytesPerInterval; +struct nd_opt_hdr { + __u8 nd_opt_type; + __u8 nd_opt_len; }; -struct usb_ssp_isoc_ep_comp_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wReseved; - __le32 dwBytesPerInterval; +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 ep_device; +struct prefix_info { + __u8 type; + __u8 length; + __u8 prefix_len; + union { + __u8 flags; + struct { + __u8 reserved: 6; + __u8 autoconf: 1; + __u8 onlink: 1; + }; + }; + __be32 valid; + __be32 prefered; + __be32 reserved2; + struct in6_addr prefix; +}; -struct usb_host_endpoint { - struct usb_endpoint_descriptor desc; - struct usb_ss_ep_comp_descriptor ss_ep_comp; - struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp; - long: 0; - struct list_head urb_list; - void *hcpriv; - struct ep_device *ep_dev; - unsigned char *extra; - int extralen; - int enabled; - int streams; - long: 0; -} __attribute__((packed)); +struct rps_map; -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 rps_dev_flow_table; -struct wusb_dev; +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 usb2_lpm_parameters { - unsigned int besl; - int timeout; +struct rps_map { + unsigned int len; + struct callback_head rcu; + u16 cpus[0]; }; -struct usb3_lpm_parameters { - unsigned int mel; - unsigned int pel; - unsigned int sel; - int timeout; +struct rps_dev_flow { + u16 cpu; + u16 filter; + unsigned int last_qtail; }; -struct usb_tt; +struct rps_dev_flow_table { + unsigned int mask; + struct callback_head rcu; + struct rps_dev_flow flows[0]; +}; -struct usb_host_bos; +struct inet_peer_base { + struct rb_root rb_root; + seqlock_t lock; + int total; +}; -struct usb_host_config; +struct rhash_lock_head {}; -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 virtnet_stat_desc { + char desc[32]; + size_t offset; }; -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 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 usb_bos_descriptor; +enum xps_map_type { + XPS_CPUS = 0, + XPS_RXQS = 1, + XPS_MAPS_MAX = 2, +}; -struct usb_ext_cap_descriptor; +enum netdev_priv_flags { + IFF_802_1Q_VLAN = 1ULL, + IFF_EBRIDGE = 2ULL, + IFF_BONDING = 4ULL, + IFF_ISATAP = 8ULL, + IFF_WAN_HDLC = 16ULL, + IFF_XMIT_DST_RELEASE = 32ULL, + IFF_DONT_BRIDGE = 64ULL, + IFF_DISABLE_NETPOLL = 128ULL, + IFF_MACVLAN_PORT = 256ULL, + IFF_BRIDGE_PORT = 512ULL, + IFF_OVS_DATAPATH = 1024ULL, + IFF_TX_SKB_SHARING = 2048ULL, + IFF_UNICAST_FLT = 4096ULL, + IFF_TEAM_PORT = 8192ULL, + IFF_SUPP_NOFCS = 16384ULL, + IFF_LIVE_ADDR_CHANGE = 32768ULL, + IFF_MACVLAN = 65536ULL, + IFF_XMIT_DST_RELEASE_PERM = 131072ULL, + IFF_L3MDEV_MASTER = 262144ULL, + IFF_NO_QUEUE = 524288ULL, + IFF_OPENVSWITCH = 1048576ULL, + IFF_L3MDEV_SLAVE = 2097152ULL, + IFF_TEAM = 4194304ULL, + IFF_RXFH_CONFIGURED = 8388608ULL, + IFF_PHONY_HEADROOM = 16777216ULL, + IFF_MACSEC = 33554432ULL, + IFF_NO_RX_HANDLER = 67108864ULL, + IFF_FAILOVER = 134217728ULL, + IFF_FAILOVER_SLAVE = 268435456ULL, + IFF_L3MDEV_RX_HANDLER = 536870912ULL, + IFF_NO_ADDRCONF = 1073741824ULL, + IFF_TX_SKB_NO_LINEAR = 2147483648ULL, + IFF_CHANGE_PROTO_DOWN = 4294967296ULL, + IFF_SEE_ALL_HWTSTAMP_REQUESTS = 8589934592ULL, +}; -struct usb_ss_cap_descriptor; +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, +}; -struct usb_ssp_cap_descriptor; +enum netdev_xdp_act { + NETDEV_XDP_ACT_BASIC = 1, + NETDEV_XDP_ACT_REDIRECT = 2, + NETDEV_XDP_ACT_NDO_XMIT = 4, + NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, + NETDEV_XDP_ACT_HW_OFFLOAD = 16, + NETDEV_XDP_ACT_RX_SG = 32, + NETDEV_XDP_ACT_NDO_XMIT_SG = 64, + NETDEV_XDP_ACT_MASK = 127, +}; -struct usb_ss_container_id_descriptor; +enum xdp_mem_type { + MEM_TYPE_PAGE_SHARED = 0, + MEM_TYPE_PAGE_ORDER0 = 1, + MEM_TYPE_PAGE_POOL = 2, + MEM_TYPE_XSK_BUFF_POOL = 3, + MEM_TYPE_MAX = 4, +}; -struct usb_ptm_cap_descriptor; +enum xdp_buff_flags { + XDP_FLAGS_HAS_FRAGS = 1, + XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, +}; -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; +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, }; -struct usb_bos_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wTotalLength; - __u8 bNumDeviceCaps; -} __attribute__((packed)); +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, +}; -struct usb_ext_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __le32 bmAttributes; -} __attribute__((packed)); +enum netdev_queue_state_t { + __QUEUE_STATE_DRV_XOFF = 0, + __QUEUE_STATE_STACK_XOFF = 1, + __QUEUE_STATE_FROZEN = 2, +}; -struct usb_ss_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bmAttributes; - __le16 wSpeedSupported; - __u8 bFunctionalitySupport; - __u8 bU1devExitLat; - __le16 bU2DevExitLat; +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, }; -struct usb_ssp_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bReserved; - __le32 bmAttributes; - __le16 wFunctionalitySupport; - __le16 wReserved; - union { - __le32 legacy_padding; - struct { - struct {} __empty_bmSublinkSpeedAttr; - __le32 bmSublinkSpeedAttr[0]; - }; - }; +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 usb_ss_container_id_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; - __u8 bReserved; - __u8 ContainerID[16]; +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, }; -struct usb_ptm_cap_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; +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 usb_config_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 wTotalLength; - __u8 bNumInterfaces; - __u8 bConfigurationValue; - __u8 iConfiguration; - __u8 bmAttributes; - __u8 bMaxPower; -} __attribute__((packed)); +enum gro_result { + GRO_MERGED = 0, + GRO_MERGED_FREE = 1, + GRO_HELD = 2, + GRO_NORMAL = 3, + GRO_CONSUMED = 4, +}; -struct usb_interface_assoc_descriptor; +enum xdp_action { + XDP_ABORTED = 0, + XDP_DROP = 1, + XDP_PASS = 2, + XDP_TX = 3, + XDP_REDIRECT = 4, +}; -struct usb_interface; +enum { + SKBFL_ZEROCOPY_ENABLE = 1, + SKBFL_SHARED_FRAG = 2, + SKBFL_PURE_ZEROCOPY = 4, + SKBFL_DONT_ORPHAN = 8, + SKBFL_MANAGED_FRAG_REFS = 16, +}; -struct usb_interface_cache; +enum pkt_hash_types { + PKT_HASH_TYPE_NONE = 0, + PKT_HASH_TYPE_L2 = 1, + PKT_HASH_TYPE_L3 = 2, + PKT_HASH_TYPE_L4 = 3, +}; -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; +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, }; -struct usb_interface_assoc_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bFirstInterface; - __u8 bInterfaceCount; - __u8 bFunctionClass; - __u8 bFunctionSubClass; - __u8 bFunctionProtocol; - __u8 iFunction; +struct virtnet_interrupt_coalesce { + u32 max_packets; + u32 max_usecs; }; -struct usb_host_interface; +struct send_queue; -struct usb_interface { - struct usb_host_interface *altsetting; - struct usb_host_interface *cur_altsetting; - unsigned int num_altsetting; - struct usb_interface_assoc_descriptor *intf_assoc; - int minor; - enum usb_interface_condition condition; - unsigned int sysfs_files_created: 1; - unsigned int ep_devs_created: 1; - unsigned int unregistering: 1; - unsigned int needs_remote_wakeup: 1; - unsigned int needs_altsetting0: 1; - unsigned int needs_binding: 1; - unsigned int resetting_device: 1; - unsigned int authorized: 1; - enum usb_wireless_status wireless_status; - struct work_struct wireless_status_work; - struct device dev; - struct device *usb_dev; - struct work_struct reset_ws; +struct 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; + struct virtnet_interrupt_coalesce intr_coal_tx; + struct virtnet_interrupt_coalesce intr_coal_rx; + unsigned long guest_offloads; + unsigned long guest_offloads_capable; + struct failover *failover; }; -struct usb_interface_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bInterfaceNumber; - __u8 bAlternateSetting; - __u8 bNumEndpoints; - __u8 bInterfaceClass; - __u8 bInterfaceSubClass; - __u8 bInterfaceProtocol; - __u8 iInterface; +struct virtnet_sq_stats { + struct u64_stats_sync syncp; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t xdp_tx; + u64_stats_t xdp_tx_drops; + u64_stats_t kicks; + u64_stats_t tx_timeouts; }; -struct usb_host_interface { - struct usb_interface_descriptor desc; - int extralen; - unsigned char *extra; - struct usb_host_endpoint *endpoint; - char *string; +struct gro_list { + struct list_head list; + int count; }; -struct usb_interface_cache { - unsigned int num_altsetting; - struct kref ref; - struct usb_host_interface altsetting[0]; +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; + int list_owner; + struct net_device *dev; + struct gro_list gro_hash[8]; + struct sk_buff *skb; + struct list_head rx_list; + int rx_count; + unsigned int napi_id; + struct hrtimer timer; + struct task_struct *thread; + struct list_head dev_list; + struct hlist_node napi_hash_node; }; -typedef void (*usb_complete_t)(struct urb *); +struct send_queue { + struct virtqueue *vq; + struct scatterlist sg[19]; + char name[16]; + struct virtnet_sq_stats stats; + struct virtnet_interrupt_coalesce intr_coal; + struct napi_struct napi; + bool reset; +}; -struct usb_iso_packet_descriptor { - unsigned int offset; - unsigned int length; - unsigned int actual_length; - int status; +struct virtnet_rq_stats { + struct u64_stats_sync syncp; + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t drops; + u64_stats_t xdp_packets; + u64_stats_t xdp_tx; + u64_stats_t xdp_redirects; + u64_stats_t xdp_drops; + u64_stats_t kicks; }; -struct usb_anchor; +struct ewma_pkt_len { + unsigned long internal; +}; -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 virtnet_rq_dma; + +struct receive_queue { + struct virtqueue *vq; + struct napi_struct napi; + struct bpf_prog __attribute__((btf_type_tag("rcu"))) *xdp_prog; + struct virtnet_rq_stats stats; + struct virtnet_interrupt_coalesce intr_coal; + struct page *pages; + struct ewma_pkt_len mrg_avg_pkt_len; + struct page_frag alloc_frag; + struct scatterlist sg[19]; + unsigned int min_buf_len; + char name[16]; + long: 64; + struct xdp_rxq_info xdp_rxq; + struct virtnet_rq_dma *last_dma; + bool do_dma; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct usb_anchor { - struct list_head urb_list; - wait_queue_head_t wait; - spinlock_t lock; - atomic_t suspend_wakeups; - unsigned int poisoned: 1; +struct virtnet_rq_dma { + dma_addr_t addr; + u32 ref; + u16 len; + u16 need_sync; }; -struct hc_driver { - const char *description; - const char *product_desc; - size_t hcd_priv_size; - irqreturn_t (*irq)(struct usb_hcd *); - int flags; - int (*reset)(struct usb_hcd *); - int (*start)(struct usb_hcd *); - int (*pci_suspend)(struct usb_hcd *, bool); - int (*pci_resume)(struct usb_hcd *, pm_message_t); - int (*pci_poweroff_late)(struct usb_hcd *, bool); - void (*stop)(struct usb_hcd *); - void (*shutdown)(struct usb_hcd *); - int (*get_frame_number)(struct usb_hcd *); - int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t); - int (*urb_dequeue)(struct usb_hcd *, struct urb *, int); - int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t); - void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *); - void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *); - void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *); - int (*hub_status_data)(struct usb_hcd *, char *); - int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); - int (*bus_suspend)(struct usb_hcd *); - int (*bus_resume)(struct usb_hcd *); - int (*start_port_reset)(struct usb_hcd *, unsigned int); - unsigned long (*get_resuming_ports)(struct usb_hcd *); - void (*relinquish_port)(struct usb_hcd *, int); - int (*port_handed_over)(struct usb_hcd *, int); - void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *); - int (*alloc_dev)(struct usb_hcd *, struct usb_device *); - void (*free_dev)(struct usb_hcd *, struct usb_device *); - int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t); - int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t); - int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); - int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); - int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); - void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); - int (*address_device)(struct usb_hcd *, struct usb_device *); - 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 virtio_net_ctrl_hdr { + __u8 class; + __u8 cmd; }; -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, -}; +typedef __u8 virtio_net_ctrl_ack; -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, +struct virtio_net_ctrl_mq { + __virtio16 virtqueue_pairs; }; -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, +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]; }; -enum xfer_buf_dir { - TO_XFER_BUF = 0, - FROM_XFER_BUF = 1, +struct virtio_net_ctrl_coal_tx { + __le32 tx_max_packets; + __le32 tx_usecs; }; -struct bulk_cb_wrap { - __le32 Signature; - __u32 Tag; - __le32 DataTransferLength; - __u8 Flags; - __u8 Lun; - __u8 Length; - __u8 CDB[16]; +struct virtio_net_ctrl_coal_rx { + __le32 rx_max_packets; + __le32 rx_usecs; }; -struct bulk_cs_wrap { - __le32 Signature; - __u32 Tag; - __le32 Residue; - __u8 Status; +struct virtio_net_ctrl_coal { + __le32 max_packets; + __le32 max_usecs; }; -struct us_data; +struct virtio_net_ctrl_coal_vq { + __le16 vqn; + __le16 reserved; + struct virtio_net_ctrl_coal coal; +}; -typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data *); +struct control_buf { + struct virtio_net_ctrl_hdr hdr; + virtio_net_ctrl_ack status; + struct virtio_net_ctrl_mq mq; + u8 promisc; + u8 allmulti; + __virtio16 vid; + __virtio64 offloads; + struct virtio_net_ctrl_rss rss; + struct virtio_net_ctrl_coal_tx coal_tx; + struct virtio_net_ctrl_coal_rx coal_rx; + struct virtio_net_ctrl_coal_vq coal_vq; +}; -typedef int (*trans_reset)(struct us_data *); +struct failover_ops; -typedef void (*proto_cmnd)(struct scsi_cmnd *, struct us_data *); +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 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; +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 **); }; -typedef void (*extra_data_destructor)(void *); +typedef struct bio_vec skb_frag_t; -typedef void (*pm_hook)(struct us_data *, int); +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 us_unusual_dev; +struct virtio_net_hdr { + __u8 flags; + __u8 gso_type; + __virtio16 hdr_len; + __virtio16 gso_size; + __virtio16 csum_start; + __virtio16 csum_offset; +}; -struct usb_ctrlrequest; +struct virtio_net_hdr_mrg_rxbuf { + struct virtio_net_hdr hdr; + __virtio16 num_buffers; +}; -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 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 us_unusual_dev { - const char *vendorName; - const char *productName; - __u8 useProtocol; - __u8 useTransport; - int (*initFunction)(struct us_data *); +struct virtio_net_hdr_v1_hash { + struct virtio_net_hdr_v1 hdr; + __le32 hash_value; + __le16 hash_report; + __le16 padding; }; -struct usb_ctrlrequest { - __u8 bRequestType; - __u8 bRequest; - __le16 wValue; - __le16 wIndex; - __le16 wLength; +struct virtio_net_common_hdr { + union { + struct virtio_net_hdr hdr; + struct virtio_net_hdr_mrg_rxbuf mrg_hdr; + struct virtio_net_hdr_v1_hash hash_v1_hdr; + }; }; -struct opal_dev; +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 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 nf_conntrack { + refcount_t use; }; -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 flow_dissector_key_control { + u16 thoff; + u16 addr_type; + u32 flags; }; -struct mc146818_get_time_callback_param { - struct rtc_time *time; - unsigned char ctrl; - unsigned char century; +struct flow_dissector_key_basic { + __be16 n_proto; + u8 ip_proto; + u8 padding; }; -typedef void (*btf_trace_i2c_write)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); +struct flow_keys_basic { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; +}; -typedef void (*btf_trace_i2c_read)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); +typedef enum gro_result gro_result_t; -typedef void (*btf_trace_i2c_reply)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); +typedef unsigned int (*bpf_dispatcher_fn)(const void *, const struct bpf_insn *, unsigned int (*)(const void *, const struct bpf_insn *)); -typedef void (*btf_trace_i2c_result)(void *, const struct i2c_adapter *, int, int); +typedef unsigned int (*bpf_func_t)(const void *, const struct bpf_insn *); -enum i2c_alert_protocol { - I2C_PROTOCOL_SMBUS_ALERT = 0, - I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1, +struct virtio_net_ctrl_mac { + __virtio32 entries; + __u8 macs[0]; }; -struct i2c_client; +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, +}; -struct i2c_device_id; +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, +}; -struct i2c_board_info; +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 i2c_driver { - unsigned int class; - union { - int (*probe)(struct i2c_client *); - int (*probe_new)(struct i2c_client *); - }; - void (*remove)(struct i2c_client *); - void (*shutdown)(struct i2c_client *); - void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int); - int (*command)(struct i2c_client *, unsigned int, void *); - struct device_driver driver; - const struct i2c_device_id *id_table; - int (*detect)(struct i2c_client *, struct i2c_board_info *); - const unsigned short *address_list; - struct list_head clients; - u32 flags; +enum usb_interface_condition { + USB_INTERFACE_UNBOUND = 0, + USB_INTERFACE_BINDING = 1, + USB_INTERFACE_BOUND = 2, + USB_INTERFACE_UNBINDING = 3, }; -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; +enum usb_wireless_status { + USB_WIRELESS_STATUS_NA = 0, + USB_WIRELESS_STATUS_DISCONNECTED = 1, + USB_WIRELESS_STATUS_CONNECTED = 2, }; -struct i2c_device_id { - char name[20]; - kernel_ulong_t driver_data; +enum utf16_endian { + UTF16_HOST_ENDIAN = 0, + UTF16_LITTLE_ENDIAN = 1, + UTF16_BIG_ENDIAN = 2, }; -struct software_node; +enum usb3_link_state { + USB3_LPM_U0 = 0, + USB3_LPM_U1 = 1, + USB3_LPM_U2 = 2, + USB3_LPM_U3 = 3, +}; -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; +enum usb_phy_type { + USB_PHY_TYPE_UNDEFINED = 0, + USB_PHY_TYPE_USB2 = 1, + USB_PHY_TYPE_USB3 = 2, }; -struct software_node { - const char *name; - const struct software_node *parent; - const struct property_entry *properties; +enum usb_phy_events { + USB_EVENT_NONE = 0, + USB_EVENT_VBUS = 1, + USB_EVENT_ID = 2, + USB_EVENT_CHARGER = 3, + USB_EVENT_ENUMERATED = 4, }; -enum { - 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, - IRQD_RESEND_WHEN_IN_PROGRESS = 2147483648, +enum phy_mode { + PHY_MODE_INVALID = 0, + PHY_MODE_USB_HOST = 1, + PHY_MODE_USB_HOST_LS = 2, + PHY_MODE_USB_HOST_FS = 3, + PHY_MODE_USB_HOST_HS = 4, + PHY_MODE_USB_HOST_SS = 5, + PHY_MODE_USB_DEVICE = 6, + PHY_MODE_USB_DEVICE_LS = 7, + PHY_MODE_USB_DEVICE_FS = 8, + PHY_MODE_USB_DEVICE_HS = 9, + PHY_MODE_USB_DEVICE_SS = 10, + PHY_MODE_USB_OTG = 11, + PHY_MODE_UFS_HS_A = 12, + PHY_MODE_UFS_HS_B = 13, + PHY_MODE_PCIE = 14, + PHY_MODE_ETHERNET = 15, + PHY_MODE_MIPI_DPHY = 16, + PHY_MODE_SATA = 17, + PHY_MODE_LVDS = 18, + PHY_MODE_DP = 19, }; -enum 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, +enum phy_media { + PHY_MEDIA_DEFAULT = 0, + PHY_MEDIA_SR = 1, + PHY_MEDIA_DAC = 2, }; -struct acpi_gpio_params { - unsigned int crs_entry_index; - unsigned int line_index; - bool active_low; +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 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]; +enum usb_charger_type { + UNKNOWN_TYPE = 0, + SDP_TYPE = 1, + DCP_TYPE = 2, + CDP_TYPE = 3, + ACA_TYPE = 4, }; -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]; +enum usb_charger_state { + USB_CHARGER_DEFAULT = 0, + USB_CHARGER_PRESENT = 1, + USB_CHARGER_ABSENT = 2, }; -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]; +enum usb_dev_authorize_policy { + USB_DEVICE_AUTHORIZE_NONE = 0, + USB_DEVICE_AUTHORIZE_ALL = 1, + USB_DEVICE_AUTHORIZE_INTERNAL = 2, }; -struct trace_event_raw_i2c_result { - struct trace_entry ent; - int adapter_nr; - __u16 nr_msgs; - __s16 ret; - char __data[0]; +typedef u16 wchar_t; + +struct usb_cdc_union_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bMasterInterface0; + __u8 bSlaveInterface0; }; -struct i2c_devinfo { - struct list_head list; - int busnum; - struct i2c_board_info board_info; +struct usb_cdc_country_functional_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 iCountryCodeRelDate; + __le16 wCountyCode0; }; -struct trace_event_data_offsets_i2c_write { - u32 buf; +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 trace_event_data_offsets_i2c_reply { - u32 buf; +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 trace_event_data_offsets_i2c_read {}; +struct usb_cdc_dmm_desc { + __u8 bFunctionLength; + __u8 bDescriptorType; + __u8 bDescriptorSubtype; + __u16 bcdVersion; + __le16 wMaxCommand; +} __attribute__((packed)); -struct trace_event_data_offsets_i2c_result {}; +struct usb_cdc_mdlm_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdVersion; + __u8 bGUID[16]; +} __attribute__((packed)); -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 usb_cdc_mdlm_detail_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bGuidDescriptorType; + __u8 bDetailData[0]; }; -struct i2c_cmd_arg { - unsigned int cmd; - void *arg; -}; +struct usb_cdc_ncm_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdNcmVersion; + __u8 bmNetworkCapabilities; +} __attribute__((packed)); -struct i2c_device_identity { - u16 manufacturer_id; - u16 part_id; - u8 die_revision; -}; +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 dmi_memdev_info { - const char *device; - const char *bank; - u64 size; - u16 handle; - u8 type; -}; +struct usb_cdc_mbim_extended_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdMBIMExtendedVersion; + __u8 bMaxOutstandingCommandMessages; + __le16 wMTU; +} __attribute__((packed)); -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 usb_devmap { + unsigned long devicemap[2]; }; -enum dmi_entry_type { - DMI_ENTRY_BIOS = 0, - DMI_ENTRY_SYSTEM = 1, - DMI_ENTRY_BASEBOARD = 2, - DMI_ENTRY_CHASSIS = 3, - DMI_ENTRY_PROCESSOR = 4, - DMI_ENTRY_MEM_CONTROLLER = 5, - DMI_ENTRY_MEM_MODULE = 6, - DMI_ENTRY_CACHE = 7, - DMI_ENTRY_PORT_CONNECTOR = 8, - DMI_ENTRY_SYSTEM_SLOT = 9, - DMI_ENTRY_ONBOARD_DEVICE = 10, - DMI_ENTRY_OEMSTRINGS = 11, - DMI_ENTRY_SYSCONF = 12, - DMI_ENTRY_BIOS_LANG = 13, - DMI_ENTRY_GROUP_ASSOC = 14, - DMI_ENTRY_SYSTEM_EVENT_LOG = 15, - DMI_ENTRY_PHYS_MEM_ARRAY = 16, - DMI_ENTRY_MEM_DEVICE = 17, - DMI_ENTRY_32_MEM_ERROR = 18, - DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19, - DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20, - DMI_ENTRY_BUILTIN_POINTING_DEV = 21, - DMI_ENTRY_PORTABLE_BATTERY = 22, - DMI_ENTRY_SYSTEM_RESET = 23, - DMI_ENTRY_HW_SECURITY = 24, - DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25, - DMI_ENTRY_VOLTAGE_PROBE = 26, - DMI_ENTRY_COOLING_DEV = 27, - DMI_ENTRY_TEMP_PROBE = 28, - DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29, - DMI_ENTRY_OOB_REMOTE_ACCESS = 30, - DMI_ENTRY_BIS_ENTRY = 31, - DMI_ENTRY_SYSTEM_BOOT = 32, - DMI_ENTRY_MGMT_DEV = 33, - DMI_ENTRY_MGMT_DEV_COMPONENT = 34, - DMI_ENTRY_MGMT_DEV_THRES = 35, - DMI_ENTRY_MEM_CHANNEL = 36, - DMI_ENTRY_IPMI_DEV = 37, - DMI_ENTRY_SYS_POWER_SUPPLY = 38, - DMI_ENTRY_ADDITIONAL = 39, - DMI_ENTRY_ONBOARD_DEV_EXT = 40, - DMI_ENTRY_MGMT_CONTROLLER_HOST = 41, - DMI_ENTRY_INACTIVE = 126, - DMI_ENTRY_END_OF_TABLE = 127, -}; +struct usb_device; -struct dmi_device { - struct list_head list; - int type; - const char *name; - void *device_data; -}; +struct mon_bus; -struct dmi_header { - u8 type; - u8 length; - u16 handle; +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 dmi_dev_onboard { - struct dmi_device dev; - int instance; - int segment; - int bus; - int devfn; +struct usb_host_endpoint; + +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 hid_device_id; +struct urb; -struct hid_device; +struct hc_driver; -struct hid_report_id; +struct usb_phy; -struct hid_report; +struct usb_phy_roothub; -struct hid_usage_id; +struct dma_pool; -struct hid_field; +struct gen_pool; -struct hid_usage; +struct usb_hcd { + struct usb_bus self; + struct kref kref; + const char *product_desc; + int speed; + char irq_descr[24]; + struct timer_list rh_timer; + struct urb *status_urb; + struct work_struct wakeup_work; + struct work_struct died_work; + const struct hc_driver *driver; + struct usb_phy *usb_phy; + struct usb_phy_roothub *phy_roothub; + unsigned long flags; + enum usb_dev_authorize_policy dev_policy; + unsigned int rh_registered: 1; + unsigned int rh_pollable: 1; + unsigned int msix_enabled: 1; + unsigned int msi_enabled: 1; + unsigned int skip_phy_initialization: 1; + unsigned int uses_new_polling: 1; + unsigned int has_tt: 1; + unsigned int amd_resume_bug: 1; + unsigned int can_do_streams: 1; + unsigned int tpl_support: 1; + unsigned int cant_recv_wakeups: 1; + unsigned int irq; + void *regs; + resource_size_t rsrc_start; + resource_size_t rsrc_len; + unsigned int power_budget; + struct giveback_urb_bh high_prio_bh; + struct giveback_urb_bh low_prio_bh; + struct mutex *address0_mutex; + struct mutex *bandwidth_mutex; + struct usb_hcd *shared_hcd; + struct usb_hcd *primary_hcd; + struct dma_pool *pool[4]; + int state; + struct gen_pool *localmem_pool; + unsigned long hcd_priv[0]; +}; -struct hid_input; +struct usb_endpoint_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bEndpointAddress; + __u8 bmAttributes; + __le16 wMaxPacketSize; + __u8 bInterval; + __u8 bRefresh; + __u8 bSynchAddress; +} __attribute__((packed)); -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 usb_ss_ep_comp_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bMaxBurst; + __u8 bmAttributes; + __le16 wBytesPerInterval; }; -struct hid_device_id { - __u16 bus; - __u16 group; - __u32 vendor; - __u32 product; - kernel_ulong_t driver_data; +struct usb_ssp_isoc_ep_comp_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wReseved; + __le32 dwBytesPerInterval; }; -enum hid_type { - HID_TYPE_OTHER = 0, - HID_TYPE_USBMOUSE = 1, - HID_TYPE_USBNONE = 2, -}; +struct ep_device; -struct hid_report_enum { - unsigned int numbered; - struct list_head report_list; - struct hid_report *report_id_hash[256]; +struct usb_host_endpoint { + struct usb_endpoint_descriptor desc; + struct usb_ss_ep_comp_descriptor ss_ep_comp; + struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp; + long: 0; + struct list_head urb_list; + void *hcpriv; + struct ep_device *ep_dev; + unsigned char *extra; + int extralen; + int enabled; + int streams; + long: 0; +} __attribute__((packed)); + +struct usb_device_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __le16 idVendor; + __le16 idProduct; + __le16 bcdDevice; + __u8 iManufacturer; + __u8 iProduct; + __u8 iSerialNumber; + __u8 bNumConfigurations; }; -struct hid_bpf_prog_list; +struct usb2_lpm_parameters { + unsigned int besl; + int timeout; +}; -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 usb3_lpm_parameters { + unsigned int mel; + unsigned int pel; + unsigned int sel; + int timeout; }; -struct hid_collection; +struct usb_tt; -struct hid_ll_driver; +struct usb_host_bos; -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 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 hid_driver *driver; - void *devres_group_id; - const struct hid_ll_driver *ll_driver; - struct mutex ll_open_lock; - unsigned int ll_open_count; - unsigned long status; - unsigned int claimed; - unsigned int quirks; - unsigned int initial_quirks; - bool io_started; - struct list_head inputs; - void *hiddev; - void *hidraw; - char name[128]; - char phys[64]; - char uniq[64]; - void *driver_data; - int (*ff_init)(struct hid_device *); - int (*hiddev_connect)(struct hid_device *, unsigned int); - void (*hiddev_disconnect)(struct hid_device *); - void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); - void (*hiddev_report_event)(struct hid_device *, struct hid_report *); - unsigned short debug; - struct dentry *debug_dir; - struct dentry *debug_rdesc; - struct dentry *debug_events; - struct list_head debug_list; - spinlock_t debug_list_lock; - wait_queue_head_t debug_wait; - unsigned int id; - struct hid_bpf bpf; + struct usb_device_descriptor descriptor; + struct usb_host_bos *bos; + struct usb_host_config *config; + struct usb_host_config *actconfig; + struct usb_host_endpoint *ep_in[16]; + struct usb_host_endpoint *ep_out[16]; + char **rawdescriptors; + unsigned short bus_mA; + u8 portnum; + u8 level; + u8 devaddr; + unsigned int can_submit: 1; + unsigned int persist_enabled: 1; + unsigned int reset_in_progress: 1; + unsigned int have_langid: 1; + unsigned int authorized: 1; + unsigned int authenticated: 1; + unsigned int lpm_capable: 1; + unsigned int lpm_devinit_allow: 1; + unsigned int usb2_hw_lpm_capable: 1; + unsigned int usb2_hw_lpm_besl_capable: 1; + unsigned int usb2_hw_lpm_enabled: 1; + unsigned int usb2_hw_lpm_allowed: 1; + unsigned int usb3_lpm_u1_enabled: 1; + unsigned int usb3_lpm_u2_enabled: 1; + int string_langid; + char *product; + char *manufacturer; + char *serial; + struct list_head filelist; + int maxchild; + u32 quirks; + atomic_t urbnum; + unsigned long active_duration; + unsigned long connect_time; + unsigned int do_remote_wakeup: 1; + unsigned int reset_resume: 1; + unsigned int port_is_suspended: 1; + int slot_id; + struct usb2_lpm_parameters l1_params; + struct usb3_lpm_parameters u1_params; + struct usb3_lpm_parameters u2_params; + unsigned int lpm_disable_count; + u16 hub_delay; + unsigned int use_generic_driver: 1; }; -struct hid_collection { - int parent_idx; - unsigned int type; - unsigned int usage; - unsigned int level; +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; }; -enum hid_report_type { - HID_INPUT_REPORT = 0, - HID_OUTPUT_REPORT = 1, - HID_FEATURE_REPORT = 2, - HID_REPORT_TYPES = 3, -}; +struct usb_bos_descriptor; -struct hid_field_entry; +struct usb_ext_cap_descriptor; -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 usb_ss_cap_descriptor; -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 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 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 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 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 usb_ssp_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __le32 bmAttributes; + __le16 wFunctionalitySupport; + __le16 wReserved; + union { + __le32 legacy_padding; + struct { + struct {} __empty_bmSublinkSpeedAttr; + __le32 bmSublinkSpeedAttr[0]; + }; + }; }; -struct hid_field_entry { - struct list_head list; - struct hid_field *field; - unsigned int index; - __s32 priority; +struct usb_ss_container_id_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; + __u8 bReserved; + __u8 ContainerID[16]; }; -struct hid_ll_driver { - int (*start)(struct hid_device *); - void (*stop)(struct hid_device *); - int (*open)(struct hid_device *); - void (*close)(struct hid_device *); - int (*power)(struct hid_device *, int); - int (*parse)(struct hid_device *); - void (*request)(struct hid_device *, struct hid_report *, int); - int (*wait)(struct hid_device *); - int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int); - int (*output_report)(struct hid_device *, __u8 *, size_t); - int (*idle)(struct hid_device *, int, int, int); - bool (*may_wakeup)(struct hid_device *); - unsigned int max_buffer_size; +struct usb_ptm_cap_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; }; -struct hid_bpf_prog_list { - u16 prog_idx[64]; - u8 prog_cnt; +struct usb_config_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 wTotalLength; + __u8 bNumInterfaces; + __u8 bConfigurationValue; + __u8 iConfiguration; + __u8 bmAttributes; + __u8 bMaxPower; +} __attribute__((packed)); + +struct usb_interface_assoc_descriptor; + +struct usb_interface; + +struct usb_interface_cache; + +struct usb_host_config { + struct usb_config_descriptor desc; + char *string; + struct usb_interface_assoc_descriptor *intf_assoc[16]; + struct usb_interface *interface[32]; + struct usb_interface_cache *intf_cache[32]; + unsigned char *extra; + int extralen; }; -struct hid_report_id { - __u32 report_type; +struct usb_interface_assoc_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bFirstInterface; + __u8 bInterfaceCount; + __u8 bFunctionClass; + __u8 bFunctionSubClass; + __u8 bFunctionProtocol; + __u8 iFunction; }; -struct hid_usage_id { - __u32 usage_hid; - __u32 usage_type; - __u32 usage_code; +struct usb_host_interface; + +struct usb_interface { + struct usb_host_interface *altsetting; + struct usb_host_interface *cur_altsetting; + unsigned int num_altsetting; + struct usb_interface_assoc_descriptor *intf_assoc; + int minor; + enum usb_interface_condition condition; + unsigned int sysfs_files_created: 1; + unsigned int ep_devs_created: 1; + unsigned int unregistering: 1; + unsigned int needs_remote_wakeup: 1; + unsigned int needs_altsetting0: 1; + unsigned int needs_binding: 1; + unsigned int resetting_device: 1; + unsigned int authorized: 1; + enum usb_wireless_status wireless_status; + struct work_struct wireless_status_work; + struct device dev; + struct device *usb_dev; + struct work_struct reset_ws; }; -struct snd_pcm_chmap_elem { - unsigned char channels; - unsigned char map[15]; +struct usb_interface_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bInterfaceNumber; + __u8 bAlternateSetting; + __u8 bNumEndpoints; + __u8 bInterfaceClass; + __u8 bInterfaceSubClass; + __u8 bInterfaceProtocol; + __u8 iInterface; }; -enum snd_dma_sync_mode { - SNDRV_DMA_SYNC_CPU = 0, - SNDRV_DMA_SYNC_DEVICE = 1, +struct usb_host_interface { + struct usb_interface_descriptor desc; + int extralen; + unsigned char *extra; + struct usb_host_endpoint *endpoint; + char *string; }; -enum { - SNDRV_PCM_TSTAMP_NONE = 0, - SNDRV_PCM_TSTAMP_ENABLE = 1, - SNDRV_PCM_TSTAMP_LAST = 1, +struct usb_interface_cache { + unsigned int num_altsetting; + struct kref ref; + struct usb_host_interface altsetting[0]; }; -enum { - SNDRV_PCM_STREAM_PLAYBACK = 0, - SNDRV_PCM_STREAM_CAPTURE = 1, - SNDRV_PCM_STREAM_LAST = 1, +typedef void (*usb_complete_t)(struct urb *); + +struct usb_iso_packet_descriptor { + unsigned int offset; + unsigned int length; + unsigned int actual_length; + int status; }; -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, +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]; }; -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, +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 { - 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, +struct hc_driver { + const char *description; + const char *product_desc; + size_t hcd_priv_size; + irqreturn_t (*irq)(struct usb_hcd *); + int flags; + int (*reset)(struct usb_hcd *); + int (*start)(struct usb_hcd *); + int (*pci_suspend)(struct usb_hcd *, bool); + int (*pci_resume)(struct usb_hcd *, pm_message_t); + int (*pci_poweroff_late)(struct usb_hcd *, bool); + void (*stop)(struct usb_hcd *); + void (*shutdown)(struct usb_hcd *); + int (*get_frame_number)(struct usb_hcd *); + int (*urb_enqueue)(struct usb_hcd *, struct urb *, gfp_t); + int (*urb_dequeue)(struct usb_hcd *, struct urb *, int); + int (*map_urb_for_dma)(struct usb_hcd *, struct urb *, gfp_t); + void (*unmap_urb_for_dma)(struct usb_hcd *, struct urb *); + void (*endpoint_disable)(struct usb_hcd *, struct usb_host_endpoint *); + void (*endpoint_reset)(struct usb_hcd *, struct usb_host_endpoint *); + int (*hub_status_data)(struct usb_hcd *, char *); + int (*hub_control)(struct usb_hcd *, u16, u16, u16, char *, u16); + int (*bus_suspend)(struct usb_hcd *); + int (*bus_resume)(struct usb_hcd *); + int (*start_port_reset)(struct usb_hcd *, unsigned int); + unsigned long (*get_resuming_ports)(struct usb_hcd *); + void (*relinquish_port)(struct usb_hcd *, int); + int (*port_handed_over)(struct usb_hcd *, int); + void (*clear_tt_buffer_complete)(struct usb_hcd *, struct usb_host_endpoint *); + int (*alloc_dev)(struct usb_hcd *, struct usb_device *); + void (*free_dev)(struct usb_hcd *, struct usb_device *); + int (*alloc_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, unsigned int, gfp_t); + int (*free_streams)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint **, unsigned int, gfp_t); + int (*add_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*drop_endpoint)(struct usb_hcd *, struct usb_device *, struct usb_host_endpoint *); + int (*check_bandwidth)(struct usb_hcd *, struct usb_device *); + void (*reset_bandwidth)(struct usb_hcd *, struct usb_device *); + int (*address_device)(struct usb_hcd *, struct usb_device *); + int (*enable_device)(struct usb_hcd *, struct usb_device *); + int (*update_hub_device)(struct usb_hcd *, struct usb_device *, struct usb_tt *, gfp_t); + int (*reset_device)(struct usb_hcd *, struct usb_device *); + int (*update_device)(struct usb_hcd *, struct usb_device *); + int (*set_usb2_hw_lpm)(struct usb_hcd *, struct usb_device *, int); + int (*enable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); + int (*disable_usb3_lpm_timeout)(struct usb_hcd *, struct usb_device *, enum usb3_link_state); + int (*find_raw_port_number)(struct usb_hcd *, int); + int (*port_power)(struct usb_hcd *, int, bool); + int (*submit_single_step_set_feature)(struct usb_hcd *, struct urb *, int); }; -typedef long snd_pcm_sframes_t; +struct extcon_dev; -typedef int snd_pcm_state_t; +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; +}; -typedef u32 u_int32_t; +struct usb_otg; -typedef int snd_pcm_access_t; +struct usb_phy_io_ops; -struct snd_pcm_substream; +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 *); +}; -typedef int (*pcm_transfer_f)(struct snd_pcm_substream *, int, unsigned long, void *, unsigned long); +struct usb_gadget; -struct snd_dma_device { - int type; - enum dma_data_direction dir; - bool need_sync; - struct device *dev; +struct phy___2; + +struct usb_otg { + u8 default_a; + struct phy___2 *phy; + struct usb_phy *usb_phy; + struct usb_bus *host; + struct usb_gadget *gadget; + enum usb_otg_state state; + int (*set_host)(struct usb_otg *, struct usb_bus *); + int (*set_peripheral)(struct usb_otg *, struct usb_gadget *); + int (*set_vbus)(struct usb_otg *, bool); + int (*start_srp)(struct usb_otg *); + int (*start_hnp)(struct usb_otg *); }; -struct snd_dma_buffer { - struct snd_dma_device dev; - unsigned char *area; - dma_addr_t addr; - size_t bytes; - void *private_data; +struct phy_attrs { + u32 bus_width; + u32 max_link_rate; + enum phy_mode mode; }; -struct snd_pcm_group { - spinlock_t lock; +struct phy_ops; + +struct phy___2 { + struct device dev; + int id; + const struct phy_ops *ops; struct mutex mutex; - struct list_head substreams; - refcount_t refs; + int init_count; + int power_count; + struct phy_attrs attrs; + struct regulator *pwr; + struct dentry *debugfs; }; -struct snd_pcm; +union phy_configure_opts; -struct snd_pcm_str; +struct phy_ops { + int (*init)(struct phy___2 *); + int (*exit)(struct phy___2 *); + int (*power_on)(struct phy___2 *); + int (*power_off)(struct phy___2 *); + int (*set_mode)(struct phy___2 *, enum phy_mode, int); + int (*set_media)(struct phy___2 *, enum phy_media); + int (*set_speed)(struct phy___2 *, int); + int (*configure)(struct phy___2 *, union phy_configure_opts *); + int (*validate)(struct phy___2 *, enum phy_mode, int, union phy_configure_opts *); + int (*reset)(struct phy___2 *); + int (*calibrate)(struct phy___2 *); + void (*release)(struct phy___2 *); + struct module *owner; +}; -struct snd_pcm_ops; +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 snd_pcm_runtime; +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 snd_timer; +struct phy_configure_opts_lvds { + unsigned int bits_per_lane_and_dclk_cycle; + unsigned long differential_clk_rate; + unsigned int lanes; + bool is_slave; +}; -struct snd_info_entry; +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 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 usb_phy_io_ops { + int (*read)(struct usb_phy *, u32); + int (*write)(struct usb_phy *, u32, u32); }; -struct snd_kcontrol; +struct set_config_request { + struct usb_device *udev; + int config; + struct work_struct work; + struct list_head node; +}; -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 usb_ctrlrequest { + __u8 bRequestType; + __u8 bRequest; + __le16 wValue; + __le16 wIndex; + __le16 wLength; }; -struct snd_card; +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; +}; -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 api_context { + struct completion done; + int status; }; -struct snd_shutdown_f_ops; +struct usb_cdc_network_terminal_desc; -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 usb_cdc_obex_desc; -struct snd_info_buffer; +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 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 usb_cdc_network_terminal_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __u8 bEntityId; + __u8 iName; + __u8 bChannelIndex; + __u8 bPhysicalInterface; }; -struct snd_info_entry_ops; +struct usb_cdc_obex_desc { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDescriptorSubType; + __le16 bcdVersion; +} __attribute__((packed)); -struct snd_info_entry { +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, +}; + +struct property_entry { const char *name; - umode_t mode; - long size; - unsigned short content; + size_t length; + bool is_inline; + enum dev_prop_type type; 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; + 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 snd_info_buffer { - char *buffer; - unsigned int curr; - unsigned int size; - unsigned int len; - int stop; - int error; +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 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 *); +struct s3_save { + u32 command; + u32 dev_nt; + u64 dcbaa_ptr; + u32 config_reg; }; -typedef int snd_kcontrol_tlv_rw_t(struct snd_kcontrol *, int, unsigned int, unsigned int __attribute__((btf_type_tag("user"))) *); +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; +}; -typedef int snd_ctl_elem_iface_t; +struct xhci_port; -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 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 snd_ctl_elem_info; +struct xhci_cap_regs; -typedef int snd_kcontrol_info_t(struct snd_kcontrol *, struct snd_ctl_elem_info *); +struct xhci_op_regs; -struct snd_ctl_elem_value; +struct xhci_run_regs; -typedef int snd_kcontrol_get_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); +struct xhci_doorbell_array; -typedef int snd_kcontrol_put_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); +struct xhci_device_context_array; -struct snd_ctl_file; +struct xhci_interrupter; -struct snd_kcontrol_volatile { - struct snd_ctl_file *owner; - unsigned int access; -}; +struct xhci_ring; -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]; -}; +struct xhci_command; -typedef int snd_ctl_elem_type_t; +struct xhci_scratchpad; -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 xhci_virt_device; -struct snd_aes_iec958 { - unsigned char status[24]; - unsigned char subcode[147]; - unsigned char pad; - unsigned char dig_subframe[4]; -}; +struct xhci_root_port_bw_info; -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 xhci_port_cap; -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 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]; }; -typedef unsigned long snd_pcm_uframes_t; - -struct snd_pcm_hw_params; - -struct snd_pcm_audio_tstamp_config; +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 snd_pcm_audio_tstamp_report; +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 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 xhci_intr_reg { + __le32 irq_pending; + __le32 irq_control; + __le32 erst_size; + __le32 rsvd; + __le64 erst_base; + __le64 erst_dequeue; }; -struct snd_mask { - __u32 bits[8]; +struct xhci_run_regs { + __le32 microframe_index; + __le32 rsvd[7]; + struct xhci_intr_reg ir_set[128]; }; -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 xhci_doorbell_array { + __le32 doorbell[256]; }; -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 xhci_device_context_array { + __le64 dev_context_ptrs[256]; + dma_addr_t dma; }; -struct snd_pcm_audio_tstamp_config { - u32 type_requested: 4; - u32 report_delay: 1; +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 snd_pcm_audio_tstamp_report { - u32 valid: 1; - u32 actual_type: 4; - u32 accuracy_report: 1; - u32 accuracy; +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; }; -typedef int snd_pcm_format_t; +struct xhci_segment; -typedef int snd_pcm_subformat_t; +union xhci_trb; -union snd_pcm_sync_id { - unsigned char id[16]; - unsigned short id16[8]; - unsigned int id32[4]; +struct xhci_ring { + struct xhci_segment *first_seg; + struct xhci_segment *last_seg; + union xhci_trb *enqueue; + struct xhci_segment *enq_seg; + union xhci_trb *dequeue; + struct xhci_segment *deq_seg; + struct list_head td_list; + u32 cycle_state; + unsigned int stream_id; + unsigned int num_segs; + unsigned int num_trbs_free; + unsigned int bounce_buf_len; + enum xhci_ring_type type; + bool last_td_was_short; + struct xarray *trb_address_map; }; -struct 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 xhci_segment { + union xhci_trb *trbs; + struct xhci_segment *next; + unsigned int num; + dma_addr_t dma; + dma_addr_t bounce_dma; + void *bounce_buf; + unsigned int bounce_offs; + unsigned int bounce_len; }; -struct snd_pcm_hw_rule; +struct xhci_link_trb { + __le64 segment_ptr; + __le32 intr_target; + __le32 control; +}; -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 xhci_transfer_event { + __le64 buffer; + __le32 transfer_len; + __le32 flags; }; -struct snd_pcm_mmap_status; +struct xhci_event_cmd { + __le64 cmd_trb; + __le32 status; + __le32 flags; +}; -struct snd_pcm_mmap_control; +struct xhci_generic_trb { + __le32 field[4]; +}; -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; +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; }; -typedef char __pad_before_uframe[0]; +struct xhci_erst_entry { + __le64 seg_addr; + __le32 seg_size; + __le32 rsvd; +}; -typedef char __pad_after_uframe[0]; +struct xhci_container_ctx; -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 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 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; +struct xhci_container_ctx { + unsigned int type; + int size; + u8 *bytes; + dma_addr_t dma; }; -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 xhci_scratchpad { + u64 *sp_array; + dma_addr_t sp_dma; + void **sp_buffers; }; -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 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 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; +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; }; -typedef u64 u_int64_t; +struct xhci_interval_bw_table; -typedef int snd_pcm_hw_param_t; +struct xhci_tt_bw_info; -struct snd_ratden { - unsigned int num_min; - unsigned int num_max; - unsigned int num_step; - unsigned int den; +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; }; -typedef __kernel_long_t __kernel_off_t; +struct xhci_stream_ctx; -struct snd_pcm_channel_info { - unsigned int channel; - __kernel_off_t offset; - unsigned int first; - unsigned int step; +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 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 xhci_stream_ctx { + __le64 stream_ring; + __le32 reserved[2]; }; -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 xhci_interval_bw { + unsigned int num_packets; + struct list_head endpoints; + unsigned int overhead[3]; }; -struct snd_ratnum { - unsigned int num; - unsigned int den_min; - unsigned int den_max; - unsigned int den_step; +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 snd_pcm_hw_constraint_list { - const unsigned int *list; - unsigned int count; - unsigned int mask; +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 snd_pcm_hw_constraint_ranges { - unsigned int count; - const struct snd_interval *ranges; - unsigned int mask; +struct xhci_root_port_bw_info { + struct list_head tts; + unsigned int num_active_tts; + struct xhci_interval_bw_table bw_table; }; -struct snd_pcm_hw_constraint_ratnums { - int nrats; - const struct snd_ratnum *rats; +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 snd_pcm_hw_constraint_ratdens { - int nrats; - const struct snd_ratden *rats; +struct xhci_port_cap { + u32 *psi; + u8 psi_count; + u8 psi_uid_count; + u8 maj_rev; + u8 min_rev; }; -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 mfd_cell; -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 pdev_archdata {}; -struct gnet_estimator { - signed char interval; - unsigned char ewma_log; -}; +struct platform_device_id; -struct gnet_stats_rate_est64 { - __u64 bps; - __u64 pps; +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; }; -typedef struct __call_single_data call_single_data_t; - -struct sd_flow_limit; - -struct softnet_data { - struct list_head poll_list; - struct sk_buff_head process_queue; - unsigned int processed; - unsigned int time_squeeze; - struct softnet_data *rps_ipi_list; - bool in_net_rx_action; - bool in_napi_threaded_poll; - struct sd_flow_limit __attribute__((btf_type_tag("rcu"))) *flow_limit; - struct Qdisc *output_queue; - struct Qdisc **output_queue_tailp; - struct sk_buff *completion_queue; - struct { - u16 recursion; - u8 more; - u8 skip_txqueue; - } xmit; - long: 64; - long: 64; - long: 64; - unsigned int input_queue_head; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - call_single_data_t csd; - struct softnet_data *rps_ipi_next; - unsigned int cpu; - unsigned int input_queue_tail; - unsigned int received_rps; - unsigned int dropped; - struct sk_buff_head input_pkt_queue; - struct napi_struct backlog; - long: 64; - long: 64; - long: 64; - long: 64; - 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 platform_device_id { + char name[20]; + kernel_ulong_t driver_data; }; -struct netdev_name_node { - struct hlist_node hlist; - struct list_head list; - struct net_device *dev; +struct software_node { const char *name; + const struct software_node *parent; + const struct property_entry *properties; }; -struct sock_fprog_kern { - u16 len; - struct sock_filter *filter; +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); }; -struct request_sock; +enum input_clock_type { + INPUT_CLK_REAL = 0, + INPUT_CLK_MONO = 1, + INPUT_CLK_BOOT = 2, + INPUT_CLK_MAX = 3, +}; -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 input_mt_slot { + int abs[14]; + unsigned int frame; + unsigned int key; }; -struct saved_syn; +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 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; +union input_seq_state { + struct { + unsigned short pos; + bool mutex_acquired; + }; + void *p; }; -struct saved_syn { - u32 mac_hdrlen; - u32 network_hdrlen; - u32 tcp_hdrlen; - u8 data[0]; +struct input_devres { + struct input_dev *input; }; -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 pps_device; + +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 udp_hslot; +struct pps_ktime { + __s64 sec; + __s32 nsec; + __u32 flags; +}; -struct udp_table { - struct udp_hslot *hash; - struct udp_hslot *hash2; - unsigned int mask; - unsigned int log; +struct pps_kparams { + int api_version; + int mode; + struct pps_ktime assert_off_tu; + struct pps_ktime clear_off_tu; }; -struct udp_hslot { - struct hlist_head head; - int count; +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 xfrm_address_filter; - -struct xfrm_state_walk { - struct list_head all; - u8 state; - u8 dying; - u8 proto; - u32 seq; - struct xfrm_address_filter *filter; +enum thermal_device_mode { + THERMAL_DEVICE_DISABLED = 0, + THERMAL_DEVICE_ENABLED = 1, }; -struct xfrm_replay_state { - __u32 oseq; - __u32 seq; - __u32 bitmap; +enum thermal_trip_type { + THERMAL_TRIP_ACTIVE = 0, + THERMAL_TRIP_PASSIVE = 1, + THERMAL_TRIP_HOT = 2, + THERMAL_TRIP_CRITICAL = 3, }; -enum xfrm_replay_mode { - XFRM_REPLAY_MODE_LEGACY = 0, - XFRM_REPLAY_MODE_BMP = 1, - XFRM_REPLAY_MODE_ESN = 2, +enum thermal_trend { + THERMAL_TREND_STABLE = 0, + THERMAL_TREND_RAISING = 1, + THERMAL_TREND_DROPPING = 2, }; -struct xfrm_stats { - __u32 replay_window; - __u32 replay; - __u32 integrity_failed; +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 xfrm_mode { - u8 encap; - u8 family; - u8 flags; +struct thermal_hwmon_device { + char type[20]; + struct device *device; + int count; + struct list_head tz_list; + struct list_head node; }; -struct xfrm_algo_auth; +struct thermal_hwmon_attr { + struct device_attribute attr; + char name[16]; +}; -struct xfrm_algo; +struct thermal_zone_device; -struct xfrm_algo_aead; +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 xfrm_encap_tmpl; +struct thermal_attr; -struct xfrm_replay_state_esn; +struct thermal_trip; -struct xfrm_type; +struct thermal_zone_device_ops; -struct xfrm_type_offload; +struct thermal_zone_params; -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 thermal_governor; -struct xfrm_address_filter { - xfrm_address_t saddr; - xfrm_address_t daddr; - __u16 family; - __u8 splen; - __u8 dplen; +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 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 xfrm_algo_auth { - char alg_name[64]; - unsigned int alg_key_len; - unsigned int alg_trunc_len; - char alg_key[0]; +struct thermal_attr { + struct device_attribute attr; + char name[20]; }; -struct xfrm_algo { - char alg_name[64]; - unsigned int alg_key_len; - char alg_key[0]; +struct thermal_trip { + int temperature; + int hysteresis; + enum thermal_trip_type type; + void *priv; }; -struct xfrm_algo_aead { - char alg_name[64]; - unsigned int alg_key_len; - unsigned int alg_icv_len; - char alg_key[0]; +struct thermal_zone_device_ops { + int (*bind)(struct thermal_zone_device *, struct thermal_cooling_device *); + int (*unbind)(struct thermal_zone_device *, struct thermal_cooling_device *); + int (*get_temp)(struct thermal_zone_device *, int *); + int (*set_trips)(struct thermal_zone_device *, int, int); + int (*change_mode)(struct thermal_zone_device *, enum thermal_device_mode); + int (*set_trip_temp)(struct thermal_zone_device *, int, int); + int (*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 *, const struct thermal_trip *, enum thermal_trend *); + void (*hot)(struct thermal_zone_device *); + void (*critical)(struct thermal_zone_device *); }; -struct xfrm_encap_tmpl { - __u16 encap_type; - __be16 encap_sport; - __be16 encap_dport; - xfrm_address_t encap_oa; +struct thermal_zone_params { + char governor_name[20]; + bool no_hwmon; + u32 sustainable_power; + s32 k_po; + s32 k_pu; + s32 k_i; + s32 k_d; + s32 integral_cutoff; + int slope; + int offset; }; -struct 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 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 *, const struct thermal_trip *); + struct list_head governor_list; }; -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 freq_attr { + struct attribute attr; + ssize_t (*show)(struct cpufreq_policy *, char *); + ssize_t (*store)(struct cpufreq_policy *, const char *, size_t); }; -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 cpufreq_policy_data { + struct cpufreq_cpuinfo cpuinfo; + struct cpufreq_frequency_table *freq_table; + unsigned int cpu; + unsigned int min; + unsigned int max; }; -struct xfrm_sec_ctx { - __u8 ctx_doi; - __u8 ctx_alg; - __u16 ctx_len; - __u32 ctx_sid; - char ctx_str[0]; -}; +struct cpuidle_device; -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 cpuidle_driver; -struct inet_peer_base { - struct rb_root rb_root; - seqlock_t lock; - int total; +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 rhash_lock_head {}; +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 rt6key { - struct in6_addr addr; - int plen; +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 rtable; +struct cpuidle_driver_kobj; -struct fnhe_hash_bucket; +struct cpuidle_state_kobj; -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 cpuidle_device_kobj; -struct rt6_exception_bucket; +struct cpuidle_device { + unsigned int registered: 1; + unsigned int enabled: 1; + unsigned int poll_time_limit: 1; + unsigned int cpu; + ktime_t next_hrtimer; + int last_state_idx; + u64 last_residency_ns; + u64 poll_limit_ns; + u64 forced_idle_latency_limit_ns; + struct cpuidle_state_usage states_usage[10]; + struct cpuidle_state_kobj *kobjs[10]; + struct cpuidle_driver_kobj *kobj_driver; + struct cpuidle_device_kobj *kobj_dev; + struct list_head device_list; +}; -struct 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; +enum { + MEMREMAP_WB = 1, + MEMREMAP_WT = 2, + MEMREMAP_WC = 4, + MEMREMAP_ENC = 8, + MEMREMAP_DEC = 16, }; -struct fib6_node; +typedef struct { + u32 type; + u32 pad; + u64 phys_addr; + u64 virt_addr; + u64 num_pages; + u64 attribute; +} efi_memory_desc_t; -struct dst_metrics; +typedef struct { + u32 version; + u32 num_entries; + u32 desc_size; + u32 flags; + efi_memory_desc_t entry[0]; +} efi_memory_attributes_table_t; -struct nexthop; +typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool); -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 hid_usage_entry { + unsigned int page; + unsigned int usage; + const char *description; }; -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_node __attribute__((btf_type_tag("rcu"))) *subtree; - 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; +enum hid_report_type { + HID_INPUT_REPORT = 0, + HID_OUTPUT_REPORT = 1, + HID_FEATURE_REPORT = 2, + HID_REPORT_TYPES = 3, }; -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; +enum hid_type { + HID_TYPE_OTHER = 0, + HID_TYPE_USBMOUSE = 1, + HID_TYPE_USBNONE = 2, }; -struct dst_metrics { - u32 metrics[17]; - refcount_t refcnt; -}; +struct hid_field; -struct nh_info; +struct hid_field_entry; -struct nh_group; +struct hid_device; -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 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 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 hid_usage; -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 hid_input; -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 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 fib_nh_exception; - -struct fnhe_hash_bucket { - struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *chain; +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 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 hid_input { + struct list_head list; + struct hid_report *report; + struct input_dev *input; + const char *name; + struct list_head reports; + unsigned int application; + bool registered; }; -struct 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 hid_field_entry { + struct list_head list; + struct hid_field *field; + unsigned int index; + __s32 priority; }; -struct rt6_info { - struct dst_entry dst; - struct fib6_info __attribute__((btf_type_tag("rcu"))) *from; - int sernum; - struct rt6key rt6i_dst; - struct rt6key rt6i_src; - struct in6_addr rt6i_gateway; - struct inet6_dev *rt6i_idev; - u32 rt6i_flags; - unsigned short rt6i_nfheader_len; +struct hid_report_enum { + unsigned int numbered; + struct list_head report_list; + struct hid_report *report_id_hash[256]; }; -struct ip6_sf_list; +struct hid_bpf_prog_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 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 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 hid_collection; -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 hid_driver; -struct icmpv6_mib_device { - atomic_long_t mibs[7]; -}; +struct hid_ll_driver; -struct icmpv6msg_mib_device { - atomic_long_t mibs[512]; +struct hid_device { + __u8 *dev_rdesc; + unsigned int dev_rsize; + __u8 *rdesc; + unsigned int rsize; + struct hid_collection *collection; + unsigned int collection_size; + unsigned int maxcollection; + unsigned int maxapplication; + __u16 bus; + __u16 group; + __u32 vendor; + __u32 product; + __u32 version; + enum hid_type type; + unsigned int country; + struct hid_report_enum report_enum[3]; + struct work_struct led_work; + struct semaphore driver_input_lock; + struct device dev; + struct hid_driver *driver; + void *devres_group_id; + const struct hid_ll_driver *ll_driver; + struct mutex ll_open_lock; + unsigned int ll_open_count; + unsigned long status; + unsigned int claimed; + unsigned int quirks; + unsigned int initial_quirks; + bool io_started; + struct list_head inputs; + void *hiddev; + void *hidraw; + char name[128]; + char phys[64]; + char uniq[64]; + void *driver_data; + int (*ff_init)(struct hid_device *); + int (*hiddev_connect)(struct hid_device *, unsigned int); + void (*hiddev_disconnect)(struct hid_device *); + void (*hiddev_hid_event)(struct hid_device *, struct hid_field *, struct hid_usage *, __s32); + void (*hiddev_report_event)(struct hid_device *, struct hid_report *); + unsigned short debug; + struct dentry *debug_dir; + struct dentry *debug_rdesc; + struct dentry *debug_events; + struct list_head debug_list; + spinlock_t debug_list_lock; + wait_queue_head_t debug_wait; + struct kref ref; + unsigned int id; + struct hid_bpf bpf; }; -struct rt6_exception_bucket { - struct hlist_head chain; - int depth; +struct hid_collection { + int parent_idx; + unsigned int type; + unsigned int usage; + unsigned int level; }; -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 hid_device_id; -struct nh_res_table; +struct hid_report_id; -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 hid_usage_id; -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 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 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 hid_device_id { + __u16 bus; + __u16 group; + __u32 vendor; + __u32 product; + kernel_ulong_t driver_data; }; -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 hid_report_id { + __u32 report_type; }; -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 hid_usage_id { + __u32 usage_hid; + __u32 usage_type; + __u32 usage_code; }; -struct in_addr { - __be32 s_addr; +struct hid_ll_driver { + int (*start)(struct hid_device *); + void (*stop)(struct hid_device *); + int (*open)(struct hid_device *); + void (*close)(struct hid_device *); + int (*power)(struct hid_device *, int); + int (*parse)(struct hid_device *); + void (*request)(struct hid_device *, struct hid_report *, int); + int (*wait)(struct hid_device *); + int (*raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, unsigned char, int); + int (*output_report)(struct hid_device *, __u8 *, size_t); + int (*idle)(struct hid_device *, int, int, int); + bool (*may_wakeup)(struct hid_device *); + unsigned int max_buffer_size; }; -union inet_addr { - __u32 all[4]; - __be32 ip; - __be32 ip6[4]; - struct in_addr in; - struct in6_addr in6; +struct hid_bpf_prog_list { + u16 prog_idx[64]; + u8 prog_cnt; }; -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 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 bpf_map_dev_ops; +typedef int (*acpi_op_add)(struct acpi_device *); -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; +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 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 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 __u16 __sum16; +struct fb_info; -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 backlight_ops { + unsigned int options; + int (*update_status)(struct backlight_device *); + int (*get_brightness)(struct backlight_device *); + int (*check_fb)(struct backlight_device *, struct fb_info *); }; -struct ip_tunnel_parm { - char name[16]; - int link; - __be16 i_flags; - __be16 o_flags; - __be32 i_key; - __be32 o_key; - struct iphdr iph; +enum backlight_type { + BACKLIGHT_RAW = 1, + BACKLIGHT_PLATFORM = 2, + BACKLIGHT_FIRMWARE = 3, + BACKLIGHT_TYPE_MAX = 4, }; -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; +enum backlight_scale { + BACKLIGHT_SCALE_UNKNOWN = 0, + BACKLIGHT_SCALE_LINEAR = 1, + BACKLIGHT_SCALE_NON_LINEAR = 2, }; -struct ethtool_regs { - __u32 cmd; - __u32 version; - __u32 len; - __u8 data[0]; +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 ethtool_wolinfo { - __u32 cmd; - __u32 supported; - __u32 wolopts; - __u8 sopass[6]; +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; }; -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, +struct fb_bitfield { + __u32 offset; + __u32 length; + __u32 msb_right; }; -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, +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]; }; -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, +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]; }; -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, +struct fb_chroma { + __u32 redx; + __u32 greenx; + __u32 bluex; + __u32 whitex; + __u32 redy; + __u32 greeny; + __u32 bluey; + __u32 whitey; }; -enum ethtool_link_ext_substate_cable_issue { - ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1, - ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 2, +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; }; -enum ethtool_link_ext_substate_module { - ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1, +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); }; -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 fb_cmap { + __u32 start; + __u32 len; + __u16 *red; + __u16 *green; + __u16 *blue; + __u16 *transp; }; -struct ethtool_link_ext_state_info { - enum ethtool_link_ext_state link_ext_state; +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; + int class_flag; 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; + 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 ethtool_link_ext_stats { - u64 link_down_events; +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 ethtool_eeprom { - __u32 cmd; - __u32 magic; - __u32 offset; - __u32 len; - __u8 data[0]; -}; +struct fb_fillrect; -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 fb_copyarea; -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 fb_image; -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 fb_cursor; -struct kernel_ethtool_ringparam { - u32 rx_buf_len; - u8 tcp_data_split; - u8 tx_push; - u8 rx_push; - u32 cqe_size; - u32 tx_push_buf_len; - u32 tx_push_buf_max_len; -}; +struct fb_blit_caps; -enum ethtool_mac_stats_src { - ETHTOOL_MAC_STATS_SRC_AGGREGATE = 0, - ETHTOOL_MAC_STATS_SRC_EMAC = 1, - ETHTOOL_MAC_STATS_SRC_PMAC = 2, +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 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 fb_fillrect { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 color; + __u32 rop; }; -struct ethtool_pauseparam { - __u32 cmd; - __u32 autoneg; - __u32 rx_pause; - __u32 tx_pause; +struct fb_copyarea { + __u32 dx; + __u32 dy; + __u32 width; + __u32 height; + __u32 sx; + __u32 sy; }; -struct ethtool_test { - __u32 cmd; - __u32 flags; - __u32 reserved; - __u32 len; - __u64 data[0]; +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 ethtool_stats { - __u32 cmd; - __u32 n_stats; - __u64 data[0]; +struct fbcurpos { + __u16 x; + __u16 y; }; -struct ethtool_tcpip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be16 psrc; - __be16 pdst; - __u8 tos; +struct fb_cursor { + __u16 set; + __u16 enable; + __u16 rop; + const char *mask; + struct fbcurpos hot; + struct fb_image image; }; -struct ethtool_ah_espip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be32 spi; - __u8 tos; +struct fb_blit_caps { + u32 x; + u32 y; + u32 len; + u32 flags; }; -struct ethtool_usrip4_spec { - __be32 ip4src; - __be32 ip4dst; - __be32 l4_4_bytes; - __u8 tos; - __u8 ip_ver; - __u8 proto; +struct key_entry { + int type; + u32 code; + union { + u16 keycode; + struct { + u8 code; + u8 value; + } sw; + }; }; -struct ethtool_tcpip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be16 psrc; - __be16 pdst; - __u8 tclass; -}; +struct rfkill; -struct ethtool_ah_espip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be32 spi; - __u8 tclass; +struct rfkill_ops { + void (*poll)(struct rfkill *, void *); + void (*query)(struct rfkill *, void *); + int (*set_block)(void *, bool); }; -struct ethtool_usrip6_spec { - __be32 ip6src[4]; - __be32 ip6dst[4]; - __be32 l4_4_bytes; - __u8 tclass; - __u8 l4_proto; +struct hotplug_slot_ops { + int (*enable_slot)(struct hotplug_slot *); + int (*disable_slot)(struct hotplug_slot *); + int (*set_attention_status)(struct hotplug_slot *, u8); + int (*hardware_test)(struct hotplug_slot *, u32); + int (*get_power_status)(struct hotplug_slot *, u8 *); + int (*get_attention_status)(struct hotplug_slot *, u8 *); + int (*get_latch_status)(struct hotplug_slot *, u8 *); + int (*get_adapter_status)(struct hotplug_slot *, u8 *); + int (*reset_slot)(struct hotplug_slot *, bool); }; -struct ethhdr { - unsigned char h_dest[6]; - unsigned char h_source[6]; - __be16 h_proto; +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; }; -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 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 ethtool_flow_ext { - __u8 padding[2]; - unsigned char h_dest[6]; - __be16 vlan_etype; - __be16 vlan_tci; - __be32 data[2]; +enum led_brightness { + LED_OFF = 0, + LED_ON = 1, + LED_HALF = 127, + LED_FULL = 255, }; -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; +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 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]; +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 ethtool_flash { - __u32 cmd; - __u32 region; - char data[128]; +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, }; -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; +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, }; -struct ethtool_dump { - __u32 cmd; - __u32 version; - __u32 flag; - __u32 len; - __u8 data[0]; +enum { + FB_BLANK_UNBLANK = 0, + FB_BLANK_NORMAL = 1, + FB_BLANK_VSYNC_SUSPEND = 2, + FB_BLANK_HSYNC_SUSPEND = 3, + FB_BLANK_POWERDOWN = 4, }; -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]; +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 ethtool_modinfo { - __u32 cmd; - __u32 type; - __u32 eeprom_len; - __u32 reserved[8]; +enum backlight_update_reason { + BACKLIGHT_UPDATE_HOTKEY = 0, + BACKLIGHT_UPDATE_SYSFS = 1, }; -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 led_pattern; -struct ethtool_tunable { - __u32 cmd; - __u32 id; - __u32 type_id; - __u32 len; - void *data[0]; +struct led_trigger; + +struct led_hw_trigger_type; + +struct led_classdev { + const char *name; + unsigned int brightness; + unsigned int max_brightness; + unsigned int color; + 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; + unsigned long delayed_delay_on; + unsigned long delayed_delay_off; + 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; + const char *hw_control_trigger; + int (*hw_control_is_supported)(struct led_classdev *, unsigned long); + int (*hw_control_set)(struct led_classdev *, unsigned long); + int (*hw_control_get)(struct led_classdev *, unsigned long *); + struct device * (*hw_control_get_device)(struct led_classdev *); + struct mutex led_access; }; -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 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 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 led_pattern { + u32 delta_t; + int brightness; }; -struct ethtool_fec_stat { - u64 total; - u64 lanes[8]; +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 ethtool_fec_stats { - struct ethtool_fec_stat corrected_blocks; - struct ethtool_fec_stat uncorrectable_blocks; - struct ethtool_fec_stat corrected_bits; +struct led_hw_trigger_type { + int dummy; }; -struct ethtool_fecparam { - __u32 cmd; - __u32 active_fec; - __u32 fec; - __u32 reserved; +struct led_init_data { + struct fwnode_handle *fwnode; + const char *default_label; + const char *devicename; + bool devname_mandatory; }; -struct ethtool_module_eeprom { - u32 offset; - u32 length; - u8 page; - u8 bank; - u8 i2c_address; - u8 *data; +struct eeepc_cpufv { + int num; + int cur; }; -struct ethtool_eth_phy_stats { - enum ethtool_mac_stats_src src; - union { - struct { - u64 SymbolErrorDuringCarrier; - }; - struct { - u64 SymbolErrorDuringCarrier; - } stats; - }; +struct sdw_intel_acpi_info { + acpi_handle handle; + int count; + u32 link_mask; }; -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; - }; +typedef acpi_status (*acpi_walk_callback)(acpi_handle, u32, void *, void **); + +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 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 cmsghdr { + __kernel_size_t cmsg_len; + int cmsg_level; + int cmsg_type; }; -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 scm_fp_list { + short count; + short max; + struct user_struct *user; + struct file *fp[253]; }; -struct ethtool_rmon_hist_range { - u16 low; - u16 high; +struct ucred { + __u32 pid; + __u32 uid; + __u32 gid; }; -enum ethtool_module_power_mode_policy { - ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1, - ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO = 2, +struct scm_creds { + u32 pid; + kuid_t uid; + kgid_t gid; }; -enum ethtool_module_power_mode { - ETHTOOL_MODULE_POWER_MODE_LOW = 1, - ETHTOOL_MODULE_POWER_MODE_HIGH = 2, +struct scm_cookie { + struct pid *pid; + struct scm_fp_list *fp; + struct scm_creds creds; + u32 secid; }; -struct ethtool_module_power_mode_params { - enum ethtool_module_power_mode_policy policy; - enum ethtool_module_power_mode mode; +struct scm_timestamping64 { + struct __kernel_timespec ts[3]; }; -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 scm_timestamping_internal { + struct timespec64 ts[3]; }; -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 __kernel_old_timespec { + __kernel_old_time_t tv_sec; + long tv_nsec; }; -struct ethtool_mm_cfg { - u32 verify_time; - bool verify_enabled; - bool tx_enabled; - bool pmac_enabled; - u32 tx_min_frag_size; +struct scm_timestamping { + struct __kernel_old_timespec ts[3]; }; -struct ethtool_mm_stats { - u64 MACMergeFrameAssErrorCount; - u64 MACMergeFrameSmdErrorCount; - u64 MACMergeFrameAssOkCount; - u64 MACMergeFragCountRx; - u64 MACMergeFragCountTx; - u64 MACMergeHoldCount; +typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32); + +struct btf_id_set8; + +struct btf_kfunc_id_set { + struct module *owner; + struct btf_id_set8 *set; + btf_kfunc_filter_t filter; }; -struct nd_opt_hdr { - __u8 nd_opt_type; - __u8 nd_opt_len; +struct page_pool_params { + unsigned int flags; + unsigned int order; + unsigned int pool_size; + int nid; + struct device *dev; + struct napi_struct *napi; + enum dma_data_direction dma_dir; + unsigned int max_len; + unsigned int offset; + void (*init_callback)(struct page *, void *); + void *init_arg; }; -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 page_pool_alloc_stats { + u64 fast; + u64 slow; + u64 slow_high_order; + u64 empty; + u64 refill; + u64 waive; }; -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 pp_alloc_cache { + u32 count; + struct page *cache[128]; }; -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 ptr_ring { + int producer; + spinlock_t producer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + int consumer_head; + int consumer_tail; + spinlock_t consumer_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + int size; + int batch; + void **queue; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct ip_sf_list; +struct page_pool_recycle_stats; -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 page_pool { + struct page_pool_params p; + long frag_users; + struct page *frag_page; + unsigned int frag_offset; + u32 pages_state_hold_cnt; + struct delayed_work release_dw; + void (*disconnect)(void *); + unsigned long defer_start; + unsigned long defer_warn; + struct page_pool_alloc_stats alloc_stats; + u32 xdp_mem_id; + 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 tcf_result; +struct xdp_umem; -struct tcf_proto_ops; +struct xsk_queue; -struct tcf_chain; +struct xdp_buff_xsk; -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 xdp_desc; -struct tcf_result { - union { - struct { - unsigned long class; - u32 classid; - }; - const struct tcf_proto *goto_tp; - }; +struct xsk_buff_pool { + struct device *dev; + struct net_device *netdev; + struct list_head xsk_tx_list; + spinlock_t xsk_tx_list_lock; + refcount_t users; + struct xdp_umem *umem; + struct work_struct work; + struct list_head free_list; + struct list_head xskb_list; + u32 heads_cnt; + u16 queue_id; + long: 64; + 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; }; -typedef int flow_setup_cb_t(enum tc_setup_type, void *, void *); - -struct tcf_walker; - -struct tcf_exts; - -struct tcmsg; +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 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 xdp_buff_xsk { + struct xdp_buff xdp; + u8 cb[24]; + dma_addr_t dma; + dma_addr_t frame_dma; + struct xsk_buff_pool *pool; + u64 orig_addr; + struct list_head free_list_node; + struct list_head xskb_list_node; }; -struct tcf_walker { - int stop; - int skip; - int count; - bool nonempty; - unsigned long cookie; - int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); +struct xdp_desc { + __u64 addr; + __u32 len; + __u32 options; }; -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 page_pool_recycle_stats { + u64 cached; + u64 cache_full; + u64 ring; + u64 ring_full; + u64 released_refcnt; }; -struct flow_block { - struct list_head cb_list; +struct btf_id_set8 { + u32 cnt; + u32 flags; + struct { + u32 id; + u32 flags; + } pairs[0]; }; -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; +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 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 __una_u32 { + u32 x; }; -struct qdisc_walker; +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 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 bpf_nh_params { + u32 nh_family; + union { + u32 ipv4_nh; + struct in6_addr ipv6_nh; + }; }; -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 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 qdisc_walker { - int stop; - int skip; +struct xdp_frame_bulk { int count; - int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *); + void *xa; + void *q[16]; }; -struct tc_stats { - __u64 bytes; - __u32 packets; - __u32 drops; - __u32 overlimits; - __u32 bps; - __u32 pps; - __u32 qlen; - __u32 backlog; -}; +typedef int (*cmp_func_t)(const void *, const void *); -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 rhashtable_walker { + struct list_head list; + struct bucket_table *tbl; }; -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 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 qdisc_size_table { - struct callback_head rcu; - struct list_head list; - struct tc_sizespec szopts; - int refcnt; - u16 data[0]; +struct xdp_attachment_info { + struct bpf_prog *prog; + u32 flags; }; -struct tc_action; - -struct tcf_exts_miss_cookie_node; +struct gro_cell { + struct sk_buff_head napi_skbs; + struct napi_struct napi; +}; -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 percpu_free_defer { + struct callback_head rcu; + void __attribute__((btf_type_tag("percpu"))) *ptr; }; -struct tcf_t { - __u64 install; - __u64 lastuse; - __u64 expires; - __u64 firstuse; +struct gro_cells { + struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells; }; -struct tc_action_ops; +struct genl_split_ops; -struct tcf_idrinfo; +struct genl_info; -struct tc_cookie; +struct genl_ops; -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; -}; +struct genl_small_ops; -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, +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; }; -typedef void (*tc_action_priv_destructor)(void *); +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 psample_group; +struct genlmsghdr; -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 genl_info { + u32 snd_seq; + u32 snd_portid; + const struct genl_family *family; + const struct nlmsghdr *nlhdr; + struct genlmsghdr *genlhdr; + struct nlattr **attrs; + possible_net_t _net; + void *user_ptr[2]; + struct netlink_ext_ack *extack; }; -struct tcf_idrinfo { - struct mutex lock; - struct idr action_idr; - struct net *net; +struct genlmsghdr { + __u8 cmd; + __u8 version; + __u16 reserved; }; -struct tc_cookie { - u8 *data; - u32 len; - struct callback_head rcu; +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 cpu_rmap { - struct kref refcount; - u16 size; - void **obj; - struct { - u16 index; - u16 dist; - } near[0]; +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 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 genl_multicast_group { + char name[16]; + u8 flags; + u8 cap_sys_admin: 1; }; -struct phy_c45_device_ids { - u32 devices_in_package; - u32 mmds_present; - u32 device_ids[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 phy_state { - PHY_DOWN = 0, - PHY_READY = 1, - PHY_HALTED = 2, - PHY_ERROR = 3, - PHY_UP = 4, - PHY_RUNNING = 5, - PHY_NOLINK = 6, - PHY_CABLETEST = 7, +enum genl_validate_flags { + GENL_DONT_VALIDATE_STRICT = 1, + GENL_DONT_VALIDATE_DUMP = 2, + GENL_DONT_VALIDATE_DUMP_STRICT = 4, }; -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 wol_enabled: 1; - unsigned int autoneg: 1; - unsigned int link: 1; - unsigned int autoneg_complete: 1; - unsigned int interrupts: 1; - unsigned int irq_suspended: 1; - unsigned int irq_rerun: 1; - int rate_matching; - enum phy_state state; - u32 dev_flags; - phy_interface_t interface; - 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; - struct list_head leds; - int irq; - void *priv; - struct phy_package_shared *shared; - struct sk_buff *skb; - void *ehdr; - struct nlattr *nest; - struct delayed_work state_queue; - struct mutex lock; - bool sfp_bus_attached; - struct sfp_bus *sfp_bus; - struct phylink *phylink; - struct net_device *attached_dev; - struct mii_timestamper *mii_ts; - struct pse_control *psec; - u8 mdix; - u8 mdix_ctrl; - int pma_extable; - unsigned int link_down_events; - void (*phy_link_change)(struct phy_device *, bool); - void (*adjust_link)(struct net_device *); +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, }; -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; +enum { + CTRL_ATTR_OP_UNSPEC = 0, + CTRL_ATTR_OP_ID = 1, + CTRL_ATTR_OP_FLAGS = 2, + __CTRL_ATTR_OP_MAX = 3, }; -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]; +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, }; -struct phy_package_shared { - int addr; - refcount_t refcnt; - unsigned long flags; - size_t priv_size; - void *priv; +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 mdio_driver_common { - struct device_driver driver; - int flags; +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 led_brightness { - LED_OFF = 0, - LED_ON = 1, - LED_HALF = 127, - LED_FULL = 255, +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 phy_tdr_config; - -struct phy_plca_cfg; - -struct phy_plca_status; - -struct phy_driver { - struct mdio_driver_common mdiodrv; - u32 phy_id; - char *name; - u32 phy_id_mask; - const unsigned long * const features; - u32 flags; - const void *driver_data; - int (*soft_reset)(struct phy_device *); - int (*config_init)(struct phy_device *); - int (*probe)(struct phy_device *); - int (*get_features)(struct phy_device *); - int (*get_rate_matching)(struct phy_device *, phy_interface_t); - int (*suspend)(struct phy_device *); - int (*resume)(struct phy_device *); - int (*config_aneg)(struct phy_device *); - int (*aneg_done)(struct phy_device *); - int (*read_status)(struct phy_device *); - int (*config_intr)(struct phy_device *); - irqreturn_t (*handle_interrupt)(struct phy_device *); - void (*remove)(struct phy_device *); - int (*match_phy_device)(struct phy_device *); - int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *); - void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *); - void (*link_change_notify)(struct phy_device *); - int (*read_mmd)(struct phy_device *, int, u16); - int (*write_mmd)(struct phy_device *, int, u16, u16); - int (*read_page)(struct phy_device *); - int (*write_page)(struct phy_device *, int); - int (*module_info)(struct phy_device *, struct ethtool_modinfo *); - int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *); - int (*cable_test_start)(struct phy_device *); - int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *); - int (*cable_test_get_status)(struct phy_device *, bool *); - int (*get_sset_count)(struct phy_device *); - void (*get_strings)(struct phy_device *, u8 *); - void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); - int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); - int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); - int (*set_loopback)(struct phy_device *, bool); - int (*get_sqi)(struct phy_device *); - int (*get_sqi_max)(struct phy_device *); - int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); - int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *); - int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); - int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness); - int (*led_blink_set)(struct phy_device *, u8, unsigned long *, unsigned long *); +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 phy_tdr_config { - u32 first; - u32 last; - u32 step; - s8 pair; +struct genl_dumpit_info { + struct genl_split_ops op; + struct genl_info info; }; -struct phy_plca_cfg { - int version; - int enabled; - int node_id; - int node_cnt; - int to_tmr; - int burst_cnt; - int burst_tmr; -}; +struct netlink_policy_dump_state; -struct phy_plca_status { - bool pst; +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 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; +struct netlink_kernel_cfg { + unsigned int groups; + unsigned int flags; + void (*input)(struct sk_buff *); + struct mutex *cb_mutex; + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, unsigned long *); }; -struct udp_tunnel_info { - unsigned short type; - sa_family_t sa_family; - __be16 port; - u8 hw_priv; +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; }; -struct udp_tunnel_nic_shared { - struct udp_tunnel_nic *udp_tunnel_nic_info; - struct list_head devices; +struct netlink_dump_control { + int (*start)(struct netlink_callback *); + int (*dump)(struct sk_buff *, struct netlink_callback *); + int (*done)(struct netlink_callback *); + struct netlink_ext_ack *extack; + void *data; + struct module *module; + u32 min_dump_alloc; }; -enum bpf_link_type { - BPF_LINK_TYPE_UNSPEC = 0, - BPF_LINK_TYPE_RAW_TRACEPOINT = 1, - BPF_LINK_TYPE_TRACING = 2, - BPF_LINK_TYPE_CGROUP = 3, - BPF_LINK_TYPE_ITER = 4, - BPF_LINK_TYPE_NETNS = 5, - BPF_LINK_TYPE_XDP = 6, - BPF_LINK_TYPE_PERF_EVENT = 7, - BPF_LINK_TYPE_KPROBE_MULTI = 8, - BPF_LINK_TYPE_STRUCT_OPS = 9, - BPF_LINK_TYPE_NETFILTER = 10, - MAX_BPF_LINK_TYPE = 11, -}; +struct ethnl_req_info; -struct bpf_link_ops; +struct ethnl_reply_data; -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 ethnl_request_ops { + u8 request_cmd; + u8 reply_cmd; + u16 hdr_attr; + unsigned int req_info_size; + unsigned int reply_data_size; + bool allow_nodev_do; + u8 set_ntf_cmd; + int (*parse_request)(struct ethnl_req_info *, struct nlattr **, struct netlink_ext_ack *); + int (*prepare_data)(const struct ethnl_req_info *, struct ethnl_reply_data *, const struct genl_info *); + int (*reply_size)(const struct ethnl_req_info *, const struct ethnl_reply_data *); + int (*fill_reply)(struct sk_buff *, const struct ethnl_req_info *, const struct ethnl_reply_data *); + void (*cleanup_data)(struct ethnl_reply_data *); + int (*set_validate)(struct ethnl_req_info *, struct genl_info *); + int (*set)(struct ethnl_req_info *, struct genl_info *); }; -struct bpf_xdp_link { - struct bpf_link link; +struct ethnl_req_info { struct net_device *dev; - int flags; + netdevice_tracker dev_tracker; + u32 flags; }; -struct bpf_link_info; +struct ethnl_reply_data { + struct net_device *dev; +}; -struct bpf_link_ops { - void (*release)(struct bpf_link *); - void (*dealloc)(struct bpf_link *); - int (*detach)(struct bpf_link *); - int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *); - void (*show_fdinfo)(const struct bpf_link *, struct seq_file *); - int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *); - int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *); +enum { + 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 bpf_link_info { - __u32 type; - __u32 id; - __u32 prog_id; +struct phc_vclocks_reply_data { + struct ethnl_reply_data base; + int num; + int *index; +}; + +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 { - __u64 tp_name; - __u32 tp_name_len; - } raw_tracepoint; - struct { - __u32 attach_type; - __u32 target_obj_id; - __u32 target_btf_id; - } tracing; - struct { - __u64 cgroup_id; - __u32 attach_type; - } cgroup; - struct { - __u64 target_name; - __u32 target_name_len; - union { - struct { - __u32 map_id; - } map; - }; - union { - struct { - __u64 cgroup_id; - __u32 order; - } cgroup; - struct { - __u32 tid; - __u32 pid; - } task; - }; - } iter; - struct { - __u32 netns_ino; - __u32 attach_type; - } netns; - struct { - __u32 ifindex; - } xdp; - struct { - __u32 map_id; - } struct_ops; + __be32 saddr; + __be32 daddr; + }; struct { - __u32 pf; - __u32 hooknum; - __s32 priority; - __u32 flags; - } netfilter; + __be32 saddr; + __be32 daddr; + } addrs; }; }; -struct ib_device; - -struct devlink; - -enum devlink_port_type { - DEVLINK_PORT_TYPE_NOTSET = 0, - DEVLINK_PORT_TYPE_AUTO = 1, - DEVLINK_PORT_TYPE_ETH = 2, - DEVLINK_PORT_TYPE_IB = 3, +struct ip_tunnel_parm { + char name[16]; + int link; + __be16 i_flags; + __be16 o_flags; + __be32 i_key; + __be32 o_key; + struct iphdr iph; }; -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 rt6key { + struct in6_addr addr; + int plen; }; -struct devlink_port_phys_attrs { - u32 port_number; - u32 split_subport_number; -}; +struct rtable; -struct devlink_port_pci_pf_attrs { - u32 controller; - u16 pf; - u8 external: 1; -}; +struct fnhe_hash_bucket; -struct devlink_port_pci_vf_attrs { - u32 controller; - u16 pf; - u16 vf; - u8 external: 1; +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 devlink_port_pci_sf_attrs { - u32 controller; - u32 sf; - u16 pf; - u8 external: 1; -}; +struct rt6_exception_bucket; -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 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 devlink_linecard; +struct fib6_node; -struct devlink_port_ops; +struct dst_metrics; -struct devlink_rate; +struct nexthop; -struct devlink_port { - struct list_head list; - struct list_head region_list; - struct devlink *devlink; - const struct devlink_port_ops *ops; - unsigned int index; - spinlock_t type_lock; - enum devlink_port_type type; - enum devlink_port_type desired_type; +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 { - struct net_device *netdev; - int ifindex; - char ifname[16]; - } type_eth; - struct { - struct ib_device *ibdev; - } type_ib; + struct list_head fib6_siblings; + struct list_head nh_list; }; - 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_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, + 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 devlink_port_ops { - int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *); - int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); - int (*port_type_set)(struct devlink_port *, enum devlink_port_type); - int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); - int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); - int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); - int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); - int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *); - int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); - int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *); - int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); - int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); +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_node __attribute__((btf_type_tag("rcu"))) *subtree; + 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; }; -enum devlink_rate_type { - DEVLINK_RATE_TYPE_LEAF = 0, - DEVLINK_RATE_TYPE_NODE = 1, +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 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 dst_metrics { + u32 metrics[17]; + refcount_t refcnt; }; -struct sd_flow_limit { - u64 count; - unsigned int num_buckets; - unsigned int history_head; - u16 history[128]; - u8 buckets[0]; -}; +struct nh_info; -struct rps_sock_flow_table { - u32 mask; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 ents[0]; -}; +struct nh_group; -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; +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; + }; }; -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, -}; +struct fib_info; -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 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; }; -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, +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; + }; }; -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, +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; }; -enum xps_map_type { - XPS_CPUS = 0, - XPS_RXQS = 1, - XPS_MAPS_MAX = 2, -}; +struct fib_nh_exception; -enum qdisc_state_t { - __QDISC_STATE_SCHED = 0, - __QDISC_STATE_DEACTIVATED = 1, - __QDISC_STATE_MISSED = 2, - __QDISC_STATE_DRAINING = 3, +struct fnhe_hash_bucket { + struct fib_nh_exception __attribute__((btf_type_tag("rcu"))) *chain; }; -enum netdev_queue_state_t { - __QUEUE_STATE_DRV_XOFF = 0, - __QUEUE_STATE_STACK_XOFF = 1, - __QUEUE_STATE_FROZEN = 2, +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; }; -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, - SKB_DROP_REASON_SUBSYS_MASK = 4294901760, +struct fib_info { + struct hlist_node fib_hash; + struct hlist_node fib_lhash; + struct list_head nh_list; + struct net *fib_net; + refcount_t fib_treeref; + refcount_t fib_clntref; + unsigned int fib_flags; + unsigned char fib_dead; + unsigned char fib_protocol; + unsigned char fib_scope; + unsigned char fib_type; + __be32 fib_prefsrc; + u32 fib_tb_id; + u32 fib_priority; + struct dst_metrics *fib_metrics; + int fib_nhs; + bool fib_nh_is_v6; + bool nh_updated; + bool pfsrc_removed; + struct nexthop *nh; + struct callback_head rcu; + struct fib_nh fib_nh[0]; }; -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 rt6_info { + struct dst_entry dst; + struct fib6_info __attribute__((btf_type_tag("rcu"))) *from; + int sernum; + struct rt6key rt6i_dst; + struct rt6key rt6i_src; + struct in6_addr rt6i_gateway; + struct inet6_dev *rt6i_idev; + u32 rt6i_flags; + unsigned short rt6i_nfheader_len; }; -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, +struct rt6_exception_bucket { + struct hlist_head chain; + int depth; }; -enum { - SCM_TSTAMP_SND = 0, - SCM_TSTAMP_SCHED = 1, - SCM_TSTAMP_ACK = 2, +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; }; -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 nh_res_table; -enum xdp_action { - XDP_ABORTED = 0, - XDP_DROP = 1, - XDP_PASS = 2, - XDP_TX = 3, - XDP_REDIRECT = 4, +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]; }; -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, +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; }; -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, +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]; }; -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, +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 *); }; -enum netdev_offload_xstats_type { - NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, +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; }; -enum bpf_xdp_mode { - XDP_MODE_SKB = 0, - XDP_MODE_DRV = 1, - XDP_MODE_HW = 2, - __MAX_XDP_MODE = 3, -}; +struct inet_ehash_bucket; -enum { - IF_OPER_UNKNOWN = 0, - IF_OPER_NOTPRESENT = 1, - IF_OPER_DOWN = 2, - IF_OPER_LOWERLAYERDOWN = 3, - IF_OPER_TESTING = 4, - IF_OPER_DORMANT = 5, - IF_OPER_UP = 6, -}; +struct inet_bind_hashbucket; -enum metadata_type { - METADATA_IP_TUNNEL = 0, - METADATA_HW_PORT_MUX = 1, - METADATA_MACSEC = 2, - METADATA_XFRM = 3, -}; +struct inet_listen_hashbucket; -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, +struct inet_hashinfo { + struct inet_ehash_bucket *ehash; + spinlock_t *ehash_locks; + unsigned int ehash_mask; + unsigned int ehash_locks_mask; + struct kmem_cache *bind_bucket_cachep; + struct inet_bind_hashbucket *bhash; + struct kmem_cache *bind2_bucket_cachep; + struct inet_bind_hashbucket *bhash2; + unsigned int bhash_size; + unsigned int lhash2_mask; + struct inet_listen_hashbucket *lhash2; + bool pernet; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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, +struct hlist_nulls_head { + struct hlist_nulls_node *first; }; -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 inet_ehash_bucket { + struct hlist_nulls_head chain; }; -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, +struct inet_bind_hashbucket { + spinlock_t lock; + struct hlist_head chain; }; -enum nf_dev_hooks { - NF_NETDEV_INGRESS = 0, - NF_NETDEV_EGRESS = 1, - NF_NETDEV_NUMHOOKS = 2, +struct inet_listen_hashbucket { + spinlock_t lock; + struct hlist_nulls_head nulls_head; }; -enum qdisc_state2_t { - __QDISC_STATE2_RUNNING = 0, +struct ack_sample { + u32 pkts_acked; + s32 rtt_us; + u32 in_flight; }; -enum { - SKB_FCLONE_UNAVAILABLE = 0, - SKB_FCLONE_ORIG = 1, - SKB_FCLONE_CLONE = 2, +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 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 bpf_cgroup_storage_key { + __u64 cgroup_inode_id; + __u32 attach_type; }; -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 bpf_storage_buffer; -struct ip_tunnel_key { - __be64 tun_id; +struct bpf_cgroup_storage_map; + +struct bpf_cgroup_storage { 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 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 ip_tunnel_encap { - u16 type; - u16 flags; - __be16 sport; - __be16 dport; +struct bpf_storage_buffer { + struct callback_head rcu; + char data[0]; }; -struct dst_cache_pcpu; +struct ip_options; -struct dst_cache { - struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache; - unsigned long reset_ts; +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 ip_tunnel_info { - struct ip_tunnel_key key; - struct ip_tunnel_encap encap; - struct dst_cache dst_cache; - u8 options_len; - u8 mode; +struct inet_cork_full { + struct inet_cork base; + struct flowi fl; }; -struct hw_port_info { - struct net_device *lower_dev; - u32 port_id; -}; +struct ipv6_pinfo; -typedef u64 sci_t; +struct ip_options_rcu; -struct macsec_info { - sci_t sci; -}; +struct ip_mc_socklist; -struct xfrm_md_info { - u32 if_id; - int link; - struct dst_entry *dst_orig; +struct inet_sock { + struct sock sk; + struct ipv6_pinfo *pinet6; + unsigned long inet_flags; + __be32 inet_saddr; + __s16 uc_ttl; + __be16 inet_sport; + struct ip_options_rcu __attribute__((btf_type_tag("rcu"))) *inet_opt; + atomic_t inet_id; + __u8 tos; + __u8 min_ttl; + __u8 mc_ttl; + __u8 pmtudisc; + __u8 rcv_tos; + __u8 convert_csum; + int uc_index; + int mc_index; + __be32 mc_addr; + struct { + __u16 lo; + __u16 hi; + } local_port_range; + struct ip_mc_socklist __attribute__((btf_type_tag("rcu"))) *mc_list; + struct inet_cork_full cork; }; -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 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 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 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 dev_kfree_skb_cb { - enum skb_drop_reason reason; -}; +struct inet_bind_bucket; -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 qdisc_skb_cb { - struct { - unsigned int pkt_len; - u16 slave_dev_queue_mapping; - u16 tc_classid; - }; - unsigned char data[20]; -}; - -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; -}; - -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 netdev_notifier_info { - struct net_device *dev; - struct netlink_ext_ack *extack; -}; - -struct skb_checksum_ops { - __wsum (*update)(const void *, int, __wsum); - __wsum (*combine)(__wsum, __wsum, int, int); -}; - -struct vlan_hdr { - __be16 h_vlan_TCI; - __be16 h_vlan_encapsulated_proto; -}; - -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 udphdr { - __be16 source; - __be16 dest; - __be16 len; - __sum16 check; -}; - -typedef unsigned int (*bpf_dispatcher_fn)(const void *, const struct bpf_insn *, unsigned int (*)(const void *, const struct bpf_insn *)); - -typedef unsigned int (*bpf_func_t)(const void *, const struct bpf_insn *); - -struct netdev_nested_priv { - unsigned char flags; - void *data; -}; - -struct netdev_notifier_offload_xstats_rd; - -struct netdev_notifier_offload_xstats_ru; - -struct netdev_notifier_offload_xstats_info { - struct netdev_notifier_info info; - enum netdev_offload_xstats_type type; - union { - struct netdev_notifier_offload_xstats_rd *report_delta; - struct netdev_notifier_offload_xstats_ru *report_used; - }; -}; - -struct netdev_notifier_offload_xstats_rd { - struct rtnl_hw_stats64 stats; - bool used; -}; - -struct netdev_notifier_offload_xstats_ru { - bool used; -}; - -struct bpf_link_primer { - struct bpf_link *link; - struct file *file; - int fd; - u32 id; -}; - -typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *); - -struct netdev_notifier_change_info { - struct netdev_notifier_info info; - unsigned int flags_changed; -}; - -struct netdev_notifier_changeupper_info { - struct netdev_notifier_info info; - struct net_device *upper_dev; - bool master; - bool linking; - void *upper_info; -}; - -struct ifslave { - __s32 slave_id; - char slave_name[16]; - __s8 link; - __s8 state; - __u32 link_failure_count; -}; - -typedef struct ifslave ifslave; - -struct ifbond { - __s32 bond_mode; - __s32 num_slaves; - __s32 miimon; -}; - -typedef struct ifbond ifbond; - -struct netdev_bonding_info { - ifslave slave; - ifbond master; -}; - -struct netdev_notifier_bonding_info { - struct netdev_notifier_info info; - struct netdev_bonding_info bonding_info; -}; - -struct netdev_notifier_changelowerstate_info { - struct netdev_notifier_info info; - void *lower_state_info; -}; - -struct netdev_notifier_info_ext { - struct netdev_notifier_info info; - union { - u32 mtu; - } ext; -}; - -struct netdev_notifier_pre_changeaddr_info { - struct netdev_notifier_info info; - const unsigned char *dev_addr; -}; - -struct nf_conn; - -struct nf_conntrack_tuple; - -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; -}; +struct inet_bind2_bucket; -struct nf_conntrack { - refcount_t use; -}; +struct inet_connection_sock_af_ops; -union nf_inet_addr { - __u32 all[4]; - __be32 ip; - __be32 ip6[4]; - struct in_addr in; - struct in6_addr in6; -}; +struct tcp_ulp_ops; -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 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 { - __be16 key; - } gre; -}; - -typedef u16 u_int16_t; - -struct nf_conntrack_man { - union nf_inet_addr u3; - union nf_conntrack_man_proto u; - u_int16_t l3num; -}; - -struct nf_conntrack_tuple { - struct nf_conntrack_man src; + __u8 pending; + __u8 quick; + __u8 pingpong; + __u8 retry; + __u32 ato: 8; + __u32 lrcv_flowlabel: 20; + __u32 unused: 4; + unsigned long timeout; + __u32 lrcvtime; + __u16 last_seg_size; + __u16 rcv_mss; + } icsk_ack; struct { - union nf_inet_addr u3; - union { - __be16 all; - struct { - __be16 port; - } tcp; - struct { - __be16 port; - } udp; - struct { - u_int8_t type; - u_int8_t code; - } icmp; - struct { - __be16 port; - } dccp; - struct { - __be16 port; - } sctp; - struct { - __be16 key; - } gre; - } u; - u_int8_t protonum; - struct {} __nfct_hash_offsetend; - u_int8_t dir; - } dst; -}; - -struct nf_conntrack_tuple_hash { - struct hlist_nulls_node hnnode; - struct nf_conntrack_tuple tuple; -}; - -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_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 secmark; - struct nf_ct_ext *ext; - union nf_conntrack_proto proto; -}; - -struct bpf_cgroup_storage_key { - __u64 cgroup_inode_id; - __u32 attach_type; -}; - -struct bpf_storage_buffer; - -struct bpf_cgroup_storage_map; - -struct bpf_cgroup_storage { - union { - struct bpf_storage_buffer *buf; - void __attribute__((btf_type_tag("percpu"))) *percpu_buf; - }; - struct bpf_cgroup_storage_map *map; - struct bpf_cgroup_storage_key key; - struct list_head list_map; - struct list_head list_cg; - struct rb_node node; - struct callback_head rcu; -}; - -struct bpf_storage_buffer { - struct callback_head rcu; - char data[0]; -}; - -struct 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 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_ct_ext { - u8 offset[4]; - u8 len; - unsigned int gen_id; - long: 0; - char data[0]; -}; - -enum ip_conntrack_info { - IP_CT_ESTABLISHED = 0, - IP_CT_RELATED = 1, - IP_CT_NEW = 2, - IP_CT_IS_REPLY = 3, - IP_CT_ESTABLISHED_REPLY = 3, - IP_CT_RELATED_REPLY = 4, - IP_CT_NUMBER = 5, - IP_CT_UNTRACKED = 7, -}; - -enum ip_conntrack_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 udp_conntrack { - UDP_CT_UNREPLIED = 0, - UDP_CT_REPLIED = 1, - UDP_CT_MAX = 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, -}; - -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 { - 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, + 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]; }; -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, +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; }; -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 minmax_sample { + u32 t; + u32 v; }; -enum sk_action { - SK_DROP = 0, - SK_PASS = 1, +struct minmax { + struct minmax_sample s[3]; }; -struct ip_options; - -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 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 inet_cork_full { - struct inet_cork base; - struct flowi fl; +struct tcp_sack_block { + u32 start_seq; + u32 end_seq; }; -struct ipv6_pinfo; +struct tcp_sock_af_ops; -struct ip_options_rcu; +struct tcp_md5sig_info; -struct ip_mc_socklist; +struct tcp_fastopen_request; -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; - atomic_t inet_id; - __be16 inet_sport; - __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 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; + u8 scaling_ratio; + struct tcp_rack rack; + u16 advmss; + u8 compressed_ack; + u8 dup_ack_counter: 2; + u8 tlp_retrans: 1; + u8 tcp_usec_ts: 1; + u8 unused: 4; + 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 rto_stamp; + u16 total_rto; + u16 total_rto_recoveries; + u32 total_rto_time; + u32 urg_seq; + unsigned int keepalive_time; + unsigned int keepalive_intvl; + int linger2; + u8 bpf_sock_ops_cb_flags; + u8 bpf_chg_cc_inprogress: 1; + u16 timeout_rehash; + u32 rcv_ooopack; + u32 rcv_rtt_last_tsecr; struct { - __u16 lo; - __u16 hi; - } local_port_range; + 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; + 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 in6_pktinfo { @@ -45581,11 +45436,8 @@ struct ipv6_pinfo { const struct in6_addr *saddr_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; + s16 hop_limit; + u8 mcast_hops; int ucast_oif; int mcast_oif; union { @@ -45608,18 +45460,8 @@ struct ipv6_pinfo { } 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 srcprefs; + __u8 pmtudisc; __u8 min_hopcount; __u8 tclass; __be32 rcv_flowinfo; @@ -45735,6 +45577,10 @@ struct ip_options_rcu { struct ip_options opt; }; +struct in_addr { + __be32 s_addr; +}; + struct ip_mreqn { struct in_addr imr_multiaddr; struct in_addr imr_address; @@ -45780,81 +45626,6 @@ struct inet_bind2_bucket { struct hlist_head deathrow; }; -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 *); @@ -45863,7 +45634,6 @@ struct inet_connection_sock_af_ops { 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"))) *); @@ -45883,329 +45653,683 @@ struct tcp_ulp_ops { struct module *owner; }; -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 tcp_md5sig_key; + +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 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; +union tcp_ao_addr { + struct in_addr a4; + struct in6_addr a6; }; -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 tcp_md5sig_key { + struct hlist_node node; + u8 keylen; + u8 family; + u8 prefixlen; + u8 flags; + union tcp_ao_addr addr; + int l3index; + u8 key[80]; + struct callback_head rcu; }; -struct net_offload { - struct offload_callbacks callbacks; - unsigned int flags; +struct tcp_md5sig_info { + struct hlist_head head; + struct callback_head rcu; }; -struct skb_gso_cb { - union { - int mac_offset; - int data_offset; - }; - int encap_level; - __wsum csum; - __u16 csum_start; +struct tcp_fastopen_cookie { + __le64 val[2]; + s8 len; + bool exp; }; -struct gre_base_hdr { - __be16 flags; - __be16 protocol; +struct tcp_fastopen_request { + struct tcp_fastopen_cookie cookie; + struct msghdr *data; + size_t size; + int copied; + struct ubuf_info *uarg; }; -struct napi_gro_cb { +struct inet_skb_parm { + int iif; + struct ip_options opt; + u16 flags; + u16 frag_max_size; +}; + +struct inet6_skb_parm { + int iif; + __be16 ra; + __u16 dst0; + __u16 srcrt; + __u16 dst1; + __u16 lastopt; + __u16 nhoff; + __u16 flags; + __u16 frag_max_size; + __u16 srhoff; +}; + +struct tcp_skb_cb { + __u32 seq; + __u32 end_seq; union { + __u32 tcp_tw_isn; struct { - void *frag0; - unsigned int frag0_len; - }; - struct { - struct sk_buff *last; - unsigned long age; + u16 tcp_gso_segs; + u16 tcp_gso_size; }; }; - int data_offset; - u16 flush; - u16 flush_id; - u16 count; - u16 proto; + __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 { - 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; + __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; }; - __wsum csum; }; -typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); - -struct packet_offload { - __be16 type; - u16 priority; - struct offload_callbacks callbacks; - struct list_head list; +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 xfrm_input_afinfo { - u8 family; - bool is_ipip; - int (*callback)(struct sk_buff *, u8, int); +struct ipfrag_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + }; + struct sk_buff *next_frag; + int frag_run_len; }; -struct gro_cell; +enum nf_hook_ops_type { + NF_HOOK_OP_UNDEFINED = 0, + NF_HOOK_OP_NF_TABLES = 1, + NF_HOOK_OP_BPF = 2, +}; -struct gro_cells { - struct gro_cell __attribute__((btf_type_tag("percpu"))) *cells; +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 gro_cell { - struct sk_buff_head napi_skbs; - struct napi_struct napi; +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 xfrm_trans_tasklet { - struct work_struct work; - spinlock_t queue_lock; - struct sk_buff_head queue; +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]; }; -enum skb_ext_id { - SKB_EXT_SEC_PATH = 0, - SKB_EXT_NUM = 1, +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; }; -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, +struct xt_counters { + __u64 pcnt; + __u64 bcnt; }; -enum { - XFRM_MODE_FLAG_TUNNEL = 1, +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]; }; -enum { - INET_ECN_NOT_ECT = 0, - INET_ECN_ECT_1 = 1, - INET_ECN_ECT_0 = 2, - INET_ECN_CE = 3, - INET_ECN_MASK = 3, +struct xt_target; + +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 inet_skb_parm { - int iif; - struct ip_options opt; - u16 flags; - u16 frag_max_size; +struct xt_standard_target { + struct xt_entry_target target; + int verdict; }; -struct inet6_skb_parm { - int iif; - __be16 ra; - __u16 dst0; - __u16 srcrt; - __u16 dst1; - __u16 lastopt; - __u16 nhoff; - __u16 flags; - __u16 frag_max_size; - __u16 srhoff; +struct ipt_standard { + struct ipt_entry entry; + struct xt_standard_target target; }; -struct ip_tunnel; +struct xt_action_param; -struct ip6_tnl; +struct xt_tgchk_param; -struct xfrm_tunnel_skb_cb { +struct xt_tgdtor_param; + +struct xt_target { + struct list_head list; + const char name[29]; + u_int8_t revision; + unsigned int (*target)(struct sk_buff *, const struct xt_action_param *); + int (*checkentry)(const struct xt_tgchk_param *); + void (*destroy)(const struct xt_tgdtor_param *); + struct module *me; + const char *table; + unsigned int targetsize; + unsigned int usersize; + unsigned int hooks; + unsigned short proto; + unsigned short family; +}; + +struct xt_match; + +struct xt_action_param { union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - } header; + const struct xt_match *match; + const struct xt_target *target; + }; union { - struct ip_tunnel *ip4; - struct ip6_tnl *ip6; - } tunnel; + const void *matchinfo; + const void *targinfo; + }; + const struct nf_hook_state *state; + unsigned int thoff; + u16 fragoff; + bool hotdrop; }; -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 xt_mtchk_param; + +struct xt_mtdtor_param; + +struct xt_match { + struct list_head list; + const char name[29]; + u_int8_t revision; + bool (*match)(const struct sk_buff *, struct xt_action_param *); + int (*checkentry)(const struct xt_mtchk_param *); + void (*destroy)(const struct xt_mtdtor_param *); + struct module *me; + const char *table; + unsigned int matchsize; + unsigned int usersize; + unsigned int hooks; + unsigned short proto; + unsigned short family; }; -struct ip_tunnel_prl_entry; +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 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 xt_mtdtor_param { 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; + const struct xt_match *match; + void *matchinfo; + u_int8_t family; }; -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 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 __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 xt_tgdtor_param { + struct net *net; + const struct xt_target *target; + void *targinfo; + u_int8_t family; }; -struct ip6_tnl { - struct ip6_tnl __attribute__((btf_type_tag("rcu"))) *next; - struct net_device *dev; +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 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 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; - 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; + 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 xfrm_spi_skb_cb { - struct xfrm_tunnel_skb_cb header; - unsigned int daddroff; - unsigned int family; - __be32 seq; +struct rhltable { + struct rhashtable ht; }; -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 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; }; -struct xfrm_trans_cb { +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 inet_skb_parm h4; - struct inet6_skb_parm h6; - } header; - int (*finish)(struct net *, struct sock *, struct sk_buff *); - struct net *net; + 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 raw_hashinfo { + spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct hlist_head ht[256]; +}; + +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 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 { + XFRM_POLICY_IN = 0, + XFRM_POLICY_OUT = 1, + XFRM_POLICY_FWD = 2, + XFRM_POLICY_MASK = 3, + XFRM_POLICY_MAX = 3, +}; + +enum { + IPSTATS_MIB_NUM = 0, + IPSTATS_MIB_INPKTS = 1, + IPSTATS_MIB_INOCTETS = 2, + IPSTATS_MIB_INDELIVERS = 3, + IPSTATS_MIB_OUTFORWDATAGRAMS = 4, + IPSTATS_MIB_OUTREQUESTS = 5, + IPSTATS_MIB_OUTOCTETS = 6, + IPSTATS_MIB_INHDRERRORS = 7, + IPSTATS_MIB_INTOOBIGERRORS = 8, + IPSTATS_MIB_INNOROUTES = 9, + IPSTATS_MIB_INADDRERRORS = 10, + IPSTATS_MIB_INUNKNOWNPROTOS = 11, + IPSTATS_MIB_INTRUNCATEDPKTS = 12, + IPSTATS_MIB_INDISCARDS = 13, + IPSTATS_MIB_OUTDISCARDS = 14, + IPSTATS_MIB_OUTNOROUTES = 15, + IPSTATS_MIB_REASMTIMEOUT = 16, + IPSTATS_MIB_REASMREQDS = 17, + IPSTATS_MIB_REASMOKS = 18, + IPSTATS_MIB_REASMFAILS = 19, + IPSTATS_MIB_FRAGOKS = 20, + IPSTATS_MIB_FRAGFAILS = 21, + IPSTATS_MIB_FRAGCREATES = 22, + IPSTATS_MIB_INMCASTPKTS = 23, + IPSTATS_MIB_OUTMCASTPKTS = 24, + IPSTATS_MIB_INBCASTPKTS = 25, + IPSTATS_MIB_OUTBCASTPKTS = 26, + IPSTATS_MIB_INMCASTOCTETS = 27, + IPSTATS_MIB_OUTMCASTOCTETS = 28, + IPSTATS_MIB_INBCASTOCTETS = 29, + IPSTATS_MIB_OUTBCASTOCTETS = 30, + IPSTATS_MIB_CSUMERRORS = 31, + IPSTATS_MIB_NOECTPKTS = 32, + IPSTATS_MIB_ECT1PKTS = 33, + IPSTATS_MIB_ECT0PKTS = 34, + IPSTATS_MIB_CEPKTS = 35, + IPSTATS_MIB_REASM_OVERLAPS = 36, + IPSTATS_MIB_OUTPKTS = 37, + __IPSTATS_MIB_MAX = 38, +}; + +enum { + INET_ECN_NOT_ECT = 0, + INET_ECN_ECT_1 = 1, + INET_ECN_ECT_0 = 2, + INET_ECN_CE = 3, + INET_ECN_MASK = 3, +}; + +enum { + XFRM_DEV_OFFLOAD_UNSPECIFIED = 0, + XFRM_DEV_OFFLOAD_CRYPTO = 1, + XFRM_DEV_OFFLOAD_PACKET = 2, +}; + +enum skb_ext_id { + SKB_EXT_SEC_PATH = 0, + SKB_EXT_NUM = 1, +}; + +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 ipv6hdr { @@ -46227,11 +46351,41 @@ struct ipv6hdr { }; }; -struct ip_beet_phdr { - __u8 nexthdr; - __u8 hdrlen; - __u8 padlen; - __u8 reserved; +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 xfrm_offload { @@ -46253,107 +46407,711 @@ struct sec_path { 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 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 hop_jumbo_hdr { - u8 nexthdr; - u8 hdrlen; - u8 tlv_type; - u8 tlv_len; - __be32 jumbo_payload_len; +struct ioam6_pernet_data { + struct mutex lock; + struct rhashtable namespaces; + struct rhashtable schemas; }; -struct frag_hdr { - __u8 nexthdr; - __u8 reserved; - __be16 frag_off; - __be32 identification; +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, }; -typedef unsigned int OM_uint32; - -struct xdr_netobj { - unsigned int len; - u8 *data; +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 gss_krb5_enctype; +struct ioam6_namespace; -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 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 xdr_buf; +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 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 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 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; +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 packet_offload { + __be16 type; + u16 priority; + struct offload_callbacks callbacks; + struct list_head list; +}; + +struct net_offload { + struct offload_callbacks callbacks; unsigned int flags; - unsigned int buflen; +}; + +struct napi_gro_cb { + union { + struct { + void *frag0; + unsigned int frag0_len; + }; + struct { + struct sk_buff *last; + unsigned long age; + }; + }; + int data_offset; + u16 flush; + u16 flush_id; + u16 count; + u16 proto; + union { + struct { + u16 gro_remcsum_start; + u8 same_flow: 1; + u8 encap_mark: 1; + u8 csum_valid: 1; + u8 csum_cnt: 3; + u8 free: 2; + u8 is_ipv6: 1; + u8 is_fou: 1; + u8 is_atomic: 1; + u8 recursion_counter: 4; + u8 is_flist: 1; + }; + struct { + u16 gro_remcsum_start; + u8 same_flow: 1; + u8 encap_mark: 1; + u8 csum_valid: 1; + u8 csum_cnt: 3; + u8 free: 2; + u8 is_ipv6: 1; + u8 is_fou: 1; + u8 is_atomic: 1; + u8 recursion_counter: 4; + u8 is_flist: 1; + } zeroed; + }; + __wsum csum; +}; + +struct hop_jumbo_hdr { + u8 nexthdr; + u8 hdrlen; + u8 tlv_type; + u8 tlv_len; + __be32 jumbo_payload_len; +}; + +struct skb_gso_cb { + union { + int mac_offset; + int data_offset; + }; + int encap_level; + __wsum csum; + __u16 csum_start; +}; + +struct frag_hdr { + __u8 nexthdr; + __u8 reserved; + __be16 frag_off; + __be32 identification; +}; + +struct cache_head; + +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 cache_head { + struct hlist_node cache_list; + time64_t expiry_time; + time64_t last_refresh; + struct kref ref; + unsigned long flags; +}; + +enum { + CACHE_VALID = 0, + CACHE_NEGATIVE = 1, + CACHE_PENDING = 2, + CACHE_CLEANED = 3, +}; + +enum svc_auth_status { + SVC_GARBAGE = 1, + SVC_SYSERR = 2, + SVC_VALID = 3, + SVC_NEGATIVE = 4, + SVC_OK = 5, + SVC_DROP = 6, + SVC_CLOSE = 7, + SVC_DENIED = 8, + SVC_PENDING = 9, + SVC_COMPLETE = 10, +}; + +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 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 rpc_pipe; + +struct rpc_inode { + struct inode vfs_inode; + void *private; + struct rpc_pipe *pipe; + wait_queue_head_t waitq; +}; + +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 cache_req { + struct cache_deferred_req * (*defer)(struct cache_req *); + unsigned long thread_wait; +}; + +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 lwq_node { + struct llist_node node; +}; + +struct svc_xprt_class; + +struct svc_xprt_ops; + +struct svc_serv; + +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 lwq_node 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_rqst; + +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_ctxt)(struct svc_xprt *, void *); + void (*xpo_detach)(struct svc_xprt *); + void (*xpo_free)(struct svc_xprt *); + void (*xpo_kill_temp_xprt)(struct svc_xprt *); + void (*xpo_handshake)(struct svc_xprt *); +}; + +struct svc_program; + +struct svc_stat; + +struct svc_pool; + +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; + enum svc_auth_status (*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_procedure; + +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 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 folio_batch { + unsigned char nr; + bool percpu_pvec_drained; + struct folio *folios[15]; +}; + +struct auth_ops; + +struct svc_deferred_req; + +struct auth_domain; + +struct svc_rqst { + struct list_head rq_all; + struct llist_node rq_idle; + 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 folio_batch rq_fbatch; + 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 task_struct *rq_task; + struct net *rq_bc_net; + void **rq_lease_breaker; + unsigned int rq_status_counter; +}; + +struct lwq { + spinlock_t lock; + struct llist_node *ready; + struct llist_head new; +}; + +struct svc_pool { + unsigned int sp_id; + struct lwq sp_xprts; + atomic_t sp_nrthreads; + struct list_head sp_all_threads; + struct llist_head sp_idle_threads; + struct percpu_counter sp_messages_arrived; + struct percpu_counter sp_sockets_queued; + struct percpu_counter sp_threads_woken; + unsigned long sp_flags; +}; + +struct auth_ops { + char *name; + struct module *owner; + int flavour; + enum svc_auth_status (*accept)(struct svc_rqst *); + int (*release)(struct svc_rqst *); + void (*domain_release)(struct auth_domain *); + enum svc_auth_status (*set_client)(struct svc_rqst *); +}; + +struct auth_domain { + struct kref ref; + struct hlist_node hash; + char *name; + struct auth_ops *flavour; + struct callback_head callback_head; +}; + +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 xdr_netobj; + +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 xdr_netobj { unsigned int len; + u8 *data; +}; + +struct pf_desc { + u32 pseudoflavor; + u32 qop; + u32 service; + char *name; + char *auth_domain_name; + struct auth_domain *domain; + bool datatouch; +}; + +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 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 cache_reader { + struct cache_queue q; + int offset; +}; + +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, +}; + +enum nl80211_dfs_state { + NL80211_DFS_USABLE = 0, + NL80211_DFS_UNAVAILABLE = 1, + NL80211_DFS_AVAILABLE = 2, }; enum nl80211_chan_width { @@ -46388,6 +47146,20 @@ enum ieee80211_edmg_bw_config { IEEE80211_EDMG_BW_CONFIG_15 = 15, }; +enum ieee80211_smps_mode { + IEEE80211_SMPS_AUTOMATIC = 0, + IEEE80211_SMPS_OFF = 1, + IEEE80211_SMPS_STATIC = 2, + IEEE80211_SMPS_DYNAMIC = 3, + IEEE80211_SMPS_NUM_MODES = 4, +}; + +enum cfg80211_signal_type { + CFG80211_SIGNAL_TYPE_NONE = 0, + CFG80211_SIGNAL_TYPE_MBM = 1, + CFG80211_SIGNAL_TYPE_UNSPEC = 2, +}; + struct ieee80211_edmg { u8 channels; enum ieee80211_edmg_bw_config bw_config; @@ -46432,6 +47204,15 @@ enum ieee80211_bss_type { struct wiphy; +struct wiphy_work; + +typedef void (*wiphy_work_func_t)(struct wiphy *, struct wiphy_work *); + +struct wiphy_work { + struct list_head entry; + wiphy_work_func_t func; +}; + struct cfg80211_conn; struct cfg80211_cached_keys; @@ -46448,11 +47229,11 @@ struct wireless_dev { 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; + short: 0; u8 address[6]; struct cfg80211_conn *conn; struct cfg80211_cached_keys *connect_keys; @@ -46471,7 +47252,8 @@ struct wireless_dev { bool cac_started; unsigned long cac_start_time; unsigned int cac_time_ms; - struct cfg80211_cqm_config *cqm_config; + struct wiphy_work cqm_rssi_work; + struct cfg80211_cqm_config __attribute__((btf_type_tag("rcu"))) *cqm_config; struct list_head pmsr_list; spinlock_t pmsr_lock; struct work_struct pmsr_free_wk; @@ -46522,12 +47304,6 @@ struct wireless_dev { 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; @@ -46562,8 +47338,6 @@ struct cfg80211_pmsr_capabilities; struct cfg80211_sar_capa; -struct rfkill; - struct wiphy { struct mutex mtx; u8 perm_addr[6]; @@ -46779,24 +47553,6 @@ struct cfg80211_wowlan_tcp { 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; @@ -46813,7 +47569,6 @@ struct cfg80211_sched_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; u32 flags; @@ -46856,12 +47611,6 @@ struct cfg80211_sched_scan_plan { 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; @@ -46878,6 +47627,7 @@ struct ieee80211_channel { enum nl80211_dfs_state dfs_state; unsigned long dfs_state_entered; unsigned int dfs_cac_ms; + s8 psd; }; struct wiphy_iftype_ext_capab { @@ -47100,6 +47850,7 @@ struct ieee80211_reg_rule { u32 flags; u32 dfs_cac_ms; bool has_wmm; + s8 psd; }; struct ieee80211_regdomain { @@ -47184,338 +47935,26 @@ struct cfg80211_sar_freq_ranges { 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; +enum nl80211_cqm_rssi_threshold_event { + NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW = 0, + NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH = 1, + NL80211_CQM_RSSI_BEACON_LOSS_EVENT = 2, }; struct cfg80211_cqm_config { + struct callback_head callback_head; u32 rssi_hyst; s32 last_rssi_event_value; + enum nl80211_cqm_rssi_threshold_event last_rssi_event_type; + bool use_range_api; int n_rssi_thresholds; s32 rssi_thresholds[0]; }; -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; - long: 0; - 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 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 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_tx_power_setting { + NL80211_TX_POWER_AUTOMATIC = 0, + NL80211_TX_POWER_LIMITED = 1, + NL80211_TX_POWER_FIXED = 2, }; enum nl80211_txrate_gi { @@ -47536,6 +47975,41 @@ enum nl80211_he_ltf { NL80211_RATE_INFO_HE_4XLTF = 2, }; +enum ieee80211_ap_reg_power { + IEEE80211_REG_UNSET_AP = 0, + IEEE80211_REG_LPI_AP = 1, + IEEE80211_REG_SP_AP = 2, + IEEE80211_REG_VLP_AP = 3, + IEEE80211_REG_AP_POWER_AFTER_LAST = 4, + IEEE80211_REG_AP_POWER_MAX = 3, +}; + +enum ieee80211_sta_rx_bandwidth { + IEEE80211_STA_RX_BW_20 = 0, + IEEE80211_STA_RX_BW_40 = 1, + IEEE80211_STA_RX_BW_80 = 2, + IEEE80211_STA_RX_BW_160 = 3, + IEEE80211_STA_RX_BW_320 = 4, +}; + +enum 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 nl80211_mesh_power_mode { NL80211_MESH_POWER_UNKNOWN = 0, NL80211_MESH_POWER_ACTIVE = 1, @@ -47545,54 +48019,59 @@ enum nl80211_mesh_power_mode { 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 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 nl80211_ac { - NL80211_AC_VO = 0, - NL80211_AC_VI = 1, - NL80211_AC_BE = 2, - NL80211_AC_BK = 3, - NL80211_NUM_ACS = 4, +enum ieee80211_roc_type { + IEEE80211_ROC_TYPE_NORMAL = 0, + IEEE80211_ROC_TYPE_MGMT_TX = 1, }; -enum nl80211_mfp { - NL80211_MFP_NO = 0, - NL80211_MFP_REQUIRED = 1, - NL80211_MFP_OPTIONAL = 2, +enum ieee80211_event_type { + RSSI_EVENT = 0, + MLME_EVENT = 1, + BAR_RX_EVENT = 2, + BA_FRAME_TIMEOUT = 3, }; -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 ieee80211_rssi_event_data { + RSSI_EVENT_HIGH = 0, + RSSI_EVENT_LOW = 1, }; -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 ieee80211_mlme_event_data { + AUTH_EVENT = 0, + ASSOC_EVENT = 1, + DEAUTH_RX_EVENT = 2, + DEAUTH_TX_EVENT = 3, }; -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 ieee80211_mlme_event_status { + MLME_SUCCESS = 0, + MLME_DENIED = 1, + MLME_TIMEOUT = 2, }; -enum nl80211_coalesce_condition { - NL80211_COALESCE_CONDITION_MATCH = 0, - NL80211_COALESCE_CONDITION_NO_MATCH = 1, +enum ieee80211_frame_release_type { + IEEE80211_FRAME_RELEASE_PSPOLL = 0, + IEEE80211_FRAME_RELEASE_UAPSD = 1, +}; + +enum ieee80211_chanctx_switch_mode { + CHANCTX_SWMODE_REASSIGN_VIF = 0, + CHANCTX_SWMODE_SWAP_CONTEXTS = 1, +}; + +enum ieee80211_reconfig_type { + IEEE80211_RECONFIG_TYPE_RESTART = 0, + IEEE80211_RECONFIG_TYPE_SUSPEND = 1, }; enum nl80211_nan_function_type { @@ -47603,11 +48082,6 @@ enum nl80211_nan_function_type { 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, @@ -47627,1243 +48101,1388 @@ enum nl80211_tx_rate_setting { 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 ieee80211_internal_tkip_state { + TKIP_STATE_NOT_INIT = 0, + TKIP_STATE_PHASE1_DONE = 1, + TKIP_STATE_PHASE1_HW_UPLOADED = 2, }; -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, +struct ieee80211_s1g_cap { + u8 capab_info[10]; + u8 supp_mcs_nss[5]; }; -enum nl80211_commands { - NL80211_CMD_UNSPEC = 0, - NL80211_CMD_GET_WIPHY = 1, - NL80211_CMD_SET_WIPHY = 2, - NL80211_CMD_NEW_WIPHY = 3, - NL80211_CMD_DEL_WIPHY = 4, - NL80211_CMD_GET_INTERFACE = 5, - NL80211_CMD_SET_INTERFACE = 6, - NL80211_CMD_NEW_INTERFACE = 7, - NL80211_CMD_DEL_INTERFACE = 8, - NL80211_CMD_GET_KEY = 9, - NL80211_CMD_SET_KEY = 10, - NL80211_CMD_NEW_KEY = 11, - NL80211_CMD_DEL_KEY = 12, - NL80211_CMD_GET_BEACON = 13, - NL80211_CMD_SET_BEACON = 14, - NL80211_CMD_START_AP = 15, - NL80211_CMD_NEW_BEACON = 15, - NL80211_CMD_STOP_AP = 16, - NL80211_CMD_DEL_BEACON = 16, - NL80211_CMD_GET_STATION = 17, - NL80211_CMD_SET_STATION = 18, - NL80211_CMD_NEW_STATION = 19, - NL80211_CMD_DEL_STATION = 20, - NL80211_CMD_GET_MPATH = 21, - NL80211_CMD_SET_MPATH = 22, - NL80211_CMD_NEW_MPATH = 23, - NL80211_CMD_DEL_MPATH = 24, - NL80211_CMD_SET_BSS = 25, - NL80211_CMD_SET_REG = 26, - NL80211_CMD_REQ_SET_REG = 27, - NL80211_CMD_GET_MESH_CONFIG = 28, - NL80211_CMD_SET_MESH_CONFIG = 29, - NL80211_CMD_SET_MGMT_EXTRA_IE = 30, - NL80211_CMD_GET_REG = 31, - NL80211_CMD_GET_SCAN = 32, - NL80211_CMD_TRIGGER_SCAN = 33, - NL80211_CMD_NEW_SCAN_RESULTS = 34, - NL80211_CMD_SCAN_ABORTED = 35, - NL80211_CMD_REG_CHANGE = 36, - NL80211_CMD_AUTHENTICATE = 37, - NL80211_CMD_ASSOCIATE = 38, - NL80211_CMD_DEAUTHENTICATE = 39, - NL80211_CMD_DISASSOCIATE = 40, - NL80211_CMD_MICHAEL_MIC_FAILURE = 41, - NL80211_CMD_REG_BEACON_HINT = 42, - NL80211_CMD_JOIN_IBSS = 43, - NL80211_CMD_LEAVE_IBSS = 44, - NL80211_CMD_TESTMODE = 45, - NL80211_CMD_CONNECT = 46, - NL80211_CMD_ROAM = 47, - NL80211_CMD_DISCONNECT = 48, - NL80211_CMD_SET_WIPHY_NETNS = 49, - NL80211_CMD_GET_SURVEY = 50, - NL80211_CMD_NEW_SURVEY_RESULTS = 51, - NL80211_CMD_SET_PMKSA = 52, - NL80211_CMD_DEL_PMKSA = 53, - NL80211_CMD_FLUSH_PMKSA = 54, - NL80211_CMD_REMAIN_ON_CHANNEL = 55, - NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL = 56, - NL80211_CMD_SET_TX_BITRATE_MASK = 57, - NL80211_CMD_REGISTER_FRAME = 58, - NL80211_CMD_REGISTER_ACTION = 58, - NL80211_CMD_FRAME = 59, - NL80211_CMD_ACTION = 59, - NL80211_CMD_FRAME_TX_STATUS = 60, - NL80211_CMD_ACTION_TX_STATUS = 60, - NL80211_CMD_SET_POWER_SAVE = 61, - NL80211_CMD_GET_POWER_SAVE = 62, - NL80211_CMD_SET_CQM = 63, - NL80211_CMD_NOTIFY_CQM = 64, - NL80211_CMD_SET_CHANNEL = 65, - NL80211_CMD_SET_WDS_PEER = 66, - NL80211_CMD_FRAME_WAIT_CANCEL = 67, - NL80211_CMD_JOIN_MESH = 68, - NL80211_CMD_LEAVE_MESH = 69, - NL80211_CMD_UNPROT_DEAUTHENTICATE = 70, - NL80211_CMD_UNPROT_DISASSOCIATE = 71, - NL80211_CMD_NEW_PEER_CANDIDATE = 72, - NL80211_CMD_GET_WOWLAN = 73, - NL80211_CMD_SET_WOWLAN = 74, - NL80211_CMD_START_SCHED_SCAN = 75, - NL80211_CMD_STOP_SCHED_SCAN = 76, - NL80211_CMD_SCHED_SCAN_RESULTS = 77, - NL80211_CMD_SCHED_SCAN_STOPPED = 78, - NL80211_CMD_SET_REKEY_OFFLOAD = 79, - NL80211_CMD_PMKSA_CANDIDATE = 80, - NL80211_CMD_TDLS_OPER = 81, - NL80211_CMD_TDLS_MGMT = 82, - NL80211_CMD_UNEXPECTED_FRAME = 83, - NL80211_CMD_PROBE_CLIENT = 84, - NL80211_CMD_REGISTER_BEACONS = 85, - NL80211_CMD_UNEXPECTED_4ADDR_FRAME = 86, - NL80211_CMD_SET_NOACK_MAP = 87, - NL80211_CMD_CH_SWITCH_NOTIFY = 88, - NL80211_CMD_START_P2P_DEVICE = 89, - NL80211_CMD_STOP_P2P_DEVICE = 90, - NL80211_CMD_CONN_FAILED = 91, - NL80211_CMD_SET_MCAST_RATE = 92, - NL80211_CMD_SET_MAC_ACL = 93, - NL80211_CMD_RADAR_DETECT = 94, - NL80211_CMD_GET_PROTOCOL_FEATURES = 95, - NL80211_CMD_UPDATE_FT_IES = 96, - NL80211_CMD_FT_EVENT = 97, - NL80211_CMD_CRIT_PROTOCOL_START = 98, - NL80211_CMD_CRIT_PROTOCOL_STOP = 99, - NL80211_CMD_GET_COALESCE = 100, - NL80211_CMD_SET_COALESCE = 101, - NL80211_CMD_CHANNEL_SWITCH = 102, - NL80211_CMD_VENDOR = 103, - NL80211_CMD_SET_QOS_MAP = 104, - NL80211_CMD_ADD_TX_TS = 105, - NL80211_CMD_DEL_TX_TS = 106, - NL80211_CMD_GET_MPP = 107, - NL80211_CMD_JOIN_OCB = 108, - NL80211_CMD_LEAVE_OCB = 109, - NL80211_CMD_CH_SWITCH_STARTED_NOTIFY = 110, - NL80211_CMD_TDLS_CHANNEL_SWITCH = 111, - NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH = 112, - NL80211_CMD_WIPHY_REG_CHANGE = 113, - NL80211_CMD_ABORT_SCAN = 114, - NL80211_CMD_START_NAN = 115, - NL80211_CMD_STOP_NAN = 116, - NL80211_CMD_ADD_NAN_FUNCTION = 117, - NL80211_CMD_DEL_NAN_FUNCTION = 118, - NL80211_CMD_CHANGE_NAN_CONFIG = 119, - NL80211_CMD_NAN_MATCH = 120, - NL80211_CMD_SET_MULTICAST_TO_UNICAST = 121, - NL80211_CMD_UPDATE_CONNECT_PARAMS = 122, - NL80211_CMD_SET_PMK = 123, - NL80211_CMD_DEL_PMK = 124, - NL80211_CMD_PORT_AUTHORIZED = 125, - NL80211_CMD_RELOAD_REGDB = 126, - NL80211_CMD_EXTERNAL_AUTH = 127, - NL80211_CMD_STA_OPMODE_CHANGED = 128, - NL80211_CMD_CONTROL_PORT_FRAME = 129, - NL80211_CMD_GET_FTM_RESPONDER_STATS = 130, - NL80211_CMD_PEER_MEASUREMENT_START = 131, - NL80211_CMD_PEER_MEASUREMENT_RESULT = 132, - NL80211_CMD_PEER_MEASUREMENT_COMPLETE = 133, - NL80211_CMD_NOTIFY_RADAR = 134, - NL80211_CMD_UPDATE_OWE_INFO = 135, - NL80211_CMD_PROBE_MESH_LINK = 136, - NL80211_CMD_SET_TID_CONFIG = 137, - NL80211_CMD_UNPROT_BEACON = 138, - NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS = 139, - NL80211_CMD_SET_SAR_SPECS = 140, - NL80211_CMD_OBSS_COLOR_COLLISION = 141, - NL80211_CMD_COLOR_CHANGE_REQUEST = 142, - NL80211_CMD_COLOR_CHANGE_STARTED = 143, - NL80211_CMD_COLOR_CHANGE_ABORTED = 144, - NL80211_CMD_COLOR_CHANGE_COMPLETED = 145, - NL80211_CMD_SET_FILS_AAD = 146, - NL80211_CMD_ASSOC_COMEBACK = 147, - NL80211_CMD_ADD_LINK = 148, - NL80211_CMD_REMOVE_LINK = 149, - NL80211_CMD_ADD_LINK_STA = 150, - NL80211_CMD_MODIFY_LINK_STA = 151, - NL80211_CMD_REMOVE_LINK_STA = 152, - NL80211_CMD_SET_HW_TIMESTAMP = 153, - NL80211_CMD_LINKS_REMOVED = 154, - __NL80211_CMD_AFTER_LAST = 155, - NL80211_CMD_MAX = 154, +struct wiphy_delayed_work { + struct wiphy_work work; + struct wiphy *wiphy; + struct timer_list timer; }; -enum ieee80211_privacy { - IEEE80211_PRIVACY_ON = 0, - IEEE80211_PRIVACY_OFF = 1, - IEEE80211_PRIVACY_ANY = 2, +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; }; -enum cfg80211_bss_frame_type { - CFG80211_BSS_FTYPE_UNKNOWN = 0, - CFG80211_BSS_FTYPE_BEACON = 1, - CFG80211_BSS_FTYPE_PRESP = 2, +struct ieee80211_adv_ttlm_info { + u16 switch_time; + u32 duration; + u16 map; + bool active; }; -struct cfg80211_inform_bss; +struct ieee80211_mgd_auth_data; -struct cfg80211_inform_single_bss_data { - struct cfg80211_inform_bss *drv_data; - enum cfg80211_bss_frame_type ftype; - struct ieee80211_channel *channel; - u8 bssid[6]; - u64 tsf; - u16 capability; - u16 beacon_interval; - const u8 *ie; - size_t ielen; +struct ieee80211_mgd_assoc_data; + +struct ieee80211_if_managed { + struct timer_list timer; + struct timer_list conn_mon_timer; + struct timer_list bcn_mon_timer; + struct wiphy_work monitor_work; + struct wiphy_work beacon_connection_loss_work; + struct wiphy_work csa_connection_drop_work; + unsigned long beacon_timeout; + unsigned long probe_timeout; + int probe_send_count; + bool nullfunc_failed; + u8 connection_loss: 1; + u8 driver_disconnect: 1; + u8 reconnect: 1; + u8 associated: 1; + struct ieee80211_mgd_auth_data *auth_data; + struct ieee80211_mgd_assoc_data *assoc_data; + bool powersave; + bool broken_ap; + unsigned int flags; + bool status_acked; + bool status_received; + __le16 status_fc; enum { - BSS_SOURCE_DIRECT = 0, - BSS_SOURCE_MBSSID = 1, - BSS_SOURCE_STA_PROFILE = 2, - } bss_source; - struct cfg80211_bss *source_bss; - u8 max_bssid_indicator; - u8 bssid_index; + IEEE80211_MFP_DISABLED = 0, + IEEE80211_MFP_OPTIONAL = 1, + IEEE80211_MFP_REQUIRED = 2, + } mfp; + unsigned int uapsd_queues; + unsigned int uapsd_max_sp_len; + u8 use_4addr; + int rssi_min_thold; + int rssi_max_thold; + struct ieee80211_ht_cap ht_capa; + struct ieee80211_ht_cap ht_capa_mask; + struct ieee80211_vht_cap vht_capa; + struct ieee80211_vht_cap vht_capa_mask; + struct ieee80211_s1g_cap s1g_capa; + struct ieee80211_s1g_cap s1g_capa_mask; + u8 tdls_peer[6]; + struct wiphy_delayed_work tdls_peer_del_work; + struct sk_buff *orig_teardown_skb; + struct sk_buff *teardown_skb; + spinlock_t teardown_lock; + bool tdls_wider_bw_prohibited; + struct ieee80211_sta_tx_tspec tx_tspec[4]; + struct wiphy_delayed_work tx_tspec_wk; + u8 *assoc_req_ies; + size_t assoc_req_ies_len; + struct wiphy_delayed_work ml_reconf_work; + u16 removed_links; + struct wiphy_delayed_work ttlm_work; + struct ieee80211_adv_ttlm_info ttlm_info; }; -struct cfg80211_inform_bss { - struct ieee80211_channel *chan; - enum nl80211_bss_scan_width scan_width; +struct cfg80211_bss; + +struct ieee80211_mgd_auth_data { + struct cfg80211_bss *bss; + unsigned long timeout; + int tries; + u16 algorithm; + u16 expected_transaction; + u8 key[13]; + u8 key_len; + u8 key_idx; + bool done; + bool waiting; + bool peer_confirmed; + bool timeout_started; + int link_id; + u8 ap_addr[6]; + u16 sae_trans; + u16 sae_status; + size_t data_len; + u8 data[0]; +}; + +struct cfg80211_bss_ies; + +struct cfg80211_bss { + struct ieee80211_channel *channel; + const struct cfg80211_bss_ies __attribute__((btf_type_tag("rcu"))) *ies; + const struct cfg80211_bss_ies __attribute__((btf_type_tag("rcu"))) *beacon_ies; + const struct cfg80211_bss_ies __attribute__((btf_type_tag("rcu"))) *proberesp_ies; + struct cfg80211_bss *hidden_beacon_bss; + struct cfg80211_bss *transmitted_bss; + struct list_head nontrans_list; s32 signal; - u64 boottime_ns; - u64 parent_tsf; - u8 parent_bssid[6]; + u16 beacon_interval; + u16 capability; + u8 bssid[6]; u8 chains; s8 chain_signal[4]; - void *drv_data; + u8 bssid_index; + u8 max_bssid_indicator; + long: 0; + u8 priv[0]; }; -enum bss_compare_mode { - BSS_CMP_REGULAR = 0, - BSS_CMP_HIDE_ZLEN = 1, - BSS_CMP_HIDE_NUL = 2, +struct cfg80211_bss_ies { + u64 tsf; + struct callback_head callback_head; + int len; + bool from_beacon; + u8 data[0]; }; -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, +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: 0; + size_t elems_len; + u8 *elems; + ieee80211_conn_flags_t conn_flags; + u16 status; + bool disabled; + long: 0; + } __attribute__((packed)) link[15]; + u8 ap_addr[6]; + const u8 *supp_rates; + u8 supp_rates_len; + unsigned long timeout; + int tries; + u8 prev_ap_addr[6]; + u8 ssid[32]; + u8 ssid_len; + bool wmm; + bool uapsd; + bool need_beacon; + bool synced; + bool timeout_started; + bool 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]; }; -enum ieee80211_mle_subelems { - IEEE80211_MLE_SUBELEM_PER_STA_PROFILE = 0, - IEEE80211_MLE_SUBELEM_FRAGMENT = 254, +struct beacon_data; + +struct ieee80211_if_ibss { + struct timer_list timer; + struct wiphy_work csa_connection_drop_work; + unsigned long last_scan_completed; + u32 basic_rates; + bool fixed_bssid; + bool fixed_channel; + bool privacy; + bool control_port; + bool userspace_handles_dfs; + short: 0; + u8 bssid[6]; + u8 ssid[32]; + u8 ssid_len; + u8 ie_len; + u8 *ie; + struct cfg80211_chan_def chandef; + unsigned long ibss_join_req; + struct beacon_data __attribute__((btf_type_tag("rcu"))) *presp; + struct ieee80211_ht_cap ht_capa; + struct ieee80211_ht_cap ht_capa_mask; + spinlock_t incomplete_lock; + struct list_head incomplete_stations; + enum { + IEEE80211_IBSS_MLME_SEARCH = 0, + IEEE80211_IBSS_MLME_JOINED = 1, + } state; }; -struct rfkill_ops { - void (*poll)(struct rfkill *, void *); - void (*query)(struct rfkill *, void *); - int (*set_block)(void *, bool); +struct ieee80211_meshconf_ie; + +struct cfg80211_mbssid_elems; + +struct cfg80211_rnr_elems; + +struct beacon_data { + u8 *head; + u8 *tail; + int head_len; + int tail_len; + struct ieee80211_meshconf_ie *meshconf; + u16 cntdwn_counter_offsets[2]; + u8 cntdwn_current_counter; + struct cfg80211_mbssid_elems *mbssid_ies; + struct cfg80211_rnr_elems *rnr_ies; + struct callback_head callback_head; }; -struct wiphy_work; +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; +}; -typedef void (*wiphy_work_func_t)(struct wiphy *, struct wiphy_work *); +struct cfg80211_mbssid_elems { + u8 cnt; + struct { + const u8 *data; + size_t len; + } elem[0]; +}; -struct wiphy_work { - struct list_head entry; - wiphy_work_func_t func; +struct cfg80211_rnr_elems { + u8 cnt; + struct { + const u8 *data; + size_t len; + } elem[0]; }; -struct cfg80211_ops; +struct mesh_preq_queue { + struct list_head list; + u8 dst[6]; + u8 flags; +}; -struct cfg80211_scan_request; +struct mesh_stats { + __u32 fwded_mcast; + __u32 fwded_unicast; + __u32 fwded_frames; + __u32 dropped_frames_ttl; + __u32 dropped_frames_no_route; +}; -struct genl_info; +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 cfg80211_coalesce; +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 cfg80211_registered_device { - const struct cfg80211_ops *ops; - struct list_head list; - struct rfkill_ops rfkill_ops; - struct work_struct rfkill_block; - char country_ie_alpha2[2]; - const struct ieee80211_regdomain *requested_regd; - enum environment_cap env; - int wiphy_idx; - int devlist_generation; - int wdev_id; - int opencount; - wait_queue_head_t dev_wait; - struct list_head beacon_registrations; - spinlock_t beacon_registrations_lock; - int num_running_ifaces; - int num_running_monitor_ifaces; - u64 cookie_counter; - spinlock_t bss_lock; - struct list_head bss_list; - struct rb_root bss_tree; - u32 bss_generation; - u32 bss_entries; - struct cfg80211_scan_request *scan_req; - struct cfg80211_scan_request *int_scan_req; - struct sk_buff *scan_msg; - struct list_head sched_scan_req_list; - time64_t suspend_at; - struct wiphy_work scan_done_wk; - struct genl_info *cur_cmd_info; - struct work_struct conn_work; - struct work_struct event_work; - struct delayed_work dfs_update_channels_wk; - struct wireless_dev *background_radar_wdev; - struct cfg80211_chan_def background_radar_chandef; - struct delayed_work background_cac_done_wk; - struct work_struct background_cac_abort_wk; - u32 crit_proto_nlportid; - struct cfg80211_coalesce *coalesce; - struct work_struct destroy_work; - struct wiphy_work sched_scan_stop_wk; - struct work_struct sched_scan_res_wk; - struct cfg80211_chan_def radar_chandef; - struct work_struct propagate_radar_detect_wk; - struct cfg80211_chan_def cac_done_chandef; - struct work_struct propagate_cac_done_wk; - struct work_struct mgmt_registrations_update_wk; - spinlock_t mgmt_registrations_lock; - struct work_struct wiphy_work; - struct list_head wiphy_work_list; - spinlock_t wiphy_work_lock; - bool suspended; - long: 64; - long: 64; - struct wiphy wiphy; +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 vif_params; +struct mesh_tx_cache { + struct rhashtable rht; + struct hlist_head walk_head; + spinlock_t walk_lock; +}; -struct cfg80211_ap_settings; +struct mesh_rmc; -struct cfg80211_beacon_data; +struct ieee80211_mesh_sync_ops; -struct station_parameters; +struct mesh_csa_settings; -struct station_del_parameters; +struct ieee80211_if_mesh { + struct timer_list housekeeping_timer; + struct timer_list mesh_path_timer; + struct timer_list mesh_path_root_timer; + unsigned long wrkq_flags; + unsigned long mbss_changed[1]; + bool userspace_handles_dfs; + u8 mesh_id[32]; + size_t mesh_id_len; + u8 mesh_pp_id; + u8 mesh_pm_id; + u8 mesh_cc_id; + u8 mesh_sp_id; + u8 mesh_auth_id; + u32 sn; + u32 preq_id; + atomic_t mpaths; + unsigned long last_sn_update; + unsigned long next_perr; + unsigned long last_preq; + struct mesh_rmc *rmc; + spinlock_t mesh_preq_queue_lock; + struct mesh_preq_queue preq_queue; + int preq_queue_len; + struct mesh_stats mshstats; + struct mesh_config mshcfg; + atomic_t estab_plinks; + atomic_t mesh_seqnum; + bool accepting_plinks; + int num_gates; + struct beacon_data __attribute__((btf_type_tag("rcu"))) *beacon; + const u8 *ie; + u8 ie_len; + enum { + IEEE80211_MESH_SEC_NONE = 0, + IEEE80211_MESH_SEC_AUTHED = 1, + IEEE80211_MESH_SEC_SECURED = 2, + } security; + bool user_mpm; + const struct ieee80211_mesh_sync_ops *sync_ops; + s64 sync_offset_clockdrift_max; + spinlock_t sync_offset_lock; + enum nl80211_mesh_power_mode nonpeer_pm; + int ps_peers_light_sleep; + int ps_peers_deep_sleep; + struct ps_data ps; + struct mesh_csa_settings __attribute__((btf_type_tag("rcu"))) *csa; + enum { + IEEE80211_MESH_CSA_ROLE_NONE = 0, + IEEE80211_MESH_CSA_ROLE_INIT = 1, + IEEE80211_MESH_CSA_ROLE_REPEATER = 2, + } csa_role; + u8 chsw_ttl; + u16 pre_value; + int meshconf_offset; + struct mesh_table mesh_paths; + struct mesh_table mpp_paths; + int mesh_paths_generation; + int mpp_paths_generation; + struct mesh_tx_cache tx_cache; +}; -struct station_info; +struct ieee80211_sub_if_data; -struct mpath_info; +struct ieee80211_mgmt; -struct mesh_config; +struct ieee80211_rx_status; -struct mesh_setup; +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 ocb_setup; +struct ieee80211_if_ap { + struct list_head vlans; + struct ps_data ps; + atomic_t num_mcast_sta; + bool multicast_to_unicast; + bool active; +}; -struct bss_parameters; +struct sta_info; -struct ieee80211_txq_params; +struct ieee80211_if_vlan { + struct list_head list; + struct sta_info __attribute__((btf_type_tag("rcu"))) *sta; + atomic_t num_mcast_sta; +}; -struct cfg80211_auth_request; +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 cfg80211_assoc_request; +struct ieee80211_if_mntr { + u32 flags; + u8 mu_follow_addr[6]; + struct list_head list; +}; -struct cfg80211_deauth_request; +struct cfg80211_nan_conf { + u8 master_pref; + u8 bands; +}; -struct cfg80211_disassoc_request; +struct ieee80211_if_nan { + struct cfg80211_nan_conf conf; + spinlock_t func_lock; + struct idr function_inst_ids; +}; -struct cfg80211_connect_params; +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 cfg80211_ibss_params; +struct ieee80211_fragment_cache { + struct ieee80211_fragment_entry entries[4]; + unsigned int next; +}; -struct cfg80211_bitrate_mask; +struct ewma_beacon_signal { + unsigned long internal; +}; -struct survey_info; +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 wiphy_delayed_work chswitch_work; + struct wiphy_work request_smps_work; + struct wiphy_work recalc_smps; + bool beacon_crc_valid; + u32 beacon_crc; + struct ewma_beacon_signal ave_beacon_signal; + int last_ave_beacon_signal; + unsigned int count_beacon_signal; + unsigned int beacon_loss_count; + int last_cqm_event_signal; + int wmm_last_param_set; + int mu_edca_last_param_set; + u8 bss_param_ch_cnt; + struct cfg80211_bss *bss; +}; -struct cfg80211_pmksa; +struct probe_resp; -struct cfg80211_mgmt_tx_params; +struct fils_discovery_data; -struct mgmt_frame_regs; +struct unsol_bcast_probe_resp_data; -struct cfg80211_gtk_rekey_data; +struct cfg80211_beacon_data; -struct cfg80211_acl_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 cfg80211_update_ft_ies_params; +struct ieee80211_he_mu_edca_param_ac_rec { + u8 aifsn; + u8 ecw_min_max; + u8 mu_edca_timer; +}; -struct cfg80211_csa_settings; +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 cfg80211_qos_map; +struct ieee80211_key; -struct cfg80211_nan_conf; +struct ieee80211_chanctx; -struct cfg80211_nan_func; +struct ieee80211_bss_conf; -struct cfg80211_txq_stats; +struct ieee80211_link_data { + struct ieee80211_sub_if_data *sdata; + unsigned int link_id; + struct list_head assigned_chanctx_list; + struct list_head reserved_chanctx_list; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *gtk[8]; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_multicast_key; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_mgmt_key; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_beacon_key; + struct wiphy_work csa_finalize_work; + bool csa_block_tx; + bool operating_11g_mode; + struct cfg80211_chan_def csa_chandef; + struct wiphy_work 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 wiphy_delayed_work dfs_cac_timer_work; + union { + struct ieee80211_link_data_managed mgd; + struct ieee80211_link_data_ap ap; + } u; + struct ieee80211_tx_queue_params tx_conf[4]; + struct ieee80211_bss_conf *conf; +}; -struct cfg80211_pmk_conf; +struct ieee80211_vif_cfg { + bool assoc; + bool ibss_joined; + bool ibss_creator; + bool ps; + u16 aid; + u16 eml_cap; + u16 eml_med_sync_delay; + __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 cfg80211_external_auth_params; +struct ieee80211_mu_group_data { + u8 membership[8]; + u8 position[16]; +}; -struct cfg80211_ftm_responder_stats; +struct ieee80211_p2p_noa_desc { + u8 count; + __le32 duration; + __le32 interval; + __le32 start_time; +} __attribute__((packed)); -struct cfg80211_pmsr_request; +struct ieee80211_p2p_noa_attr { + u8 index; + u8 oppps_ctwindow; + struct ieee80211_p2p_noa_desc desc[4]; +}; -struct cfg80211_update_owe_info; +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_tid_config; +struct cfg80211_he_bss_color { + u8 color; + bool enabled; + bool partial; +}; -struct cfg80211_sar_specs; +struct ieee80211_fils_discovery { + u32 min_interval; + u32 max_interval; +}; -struct cfg80211_color_change_settings; +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 cfg80211_fils_aad; +struct ieee80211_tx_pwr_env { + u8 tx_power_info; + s8 tx_power[8]; +}; -struct link_station_parameters; +struct ieee80211_vif; -struct link_station_del_parameters; +struct ieee80211_ftm_responder_params; -struct cfg80211_set_hw_timestamp; +struct ieee80211_chanctx_conf; -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 *); - void (*inform_bss)(struct wiphy *, struct cfg80211_bss *, const struct cfg80211_bss_ies *, void *); - int (*set_txq_params)(struct wiphy *, struct net_device *, struct ieee80211_txq_params *); - int (*libertas_set_mesh_channel)(struct wiphy *, struct net_device *, struct ieee80211_channel *); - int (*set_monitor_channel)(struct wiphy *, struct cfg80211_chan_def *); - int (*scan)(struct wiphy *, struct cfg80211_scan_request *); - void (*abort_scan)(struct wiphy *, struct wireless_dev *); - int (*auth)(struct wiphy *, struct net_device *, struct cfg80211_auth_request *); - int (*assoc)(struct wiphy *, struct net_device *, struct cfg80211_assoc_request *); - int (*deauth)(struct wiphy *, struct net_device *, struct cfg80211_deauth_request *); - int (*disassoc)(struct wiphy *, struct net_device *, struct cfg80211_disassoc_request *); - int (*connect)(struct wiphy *, struct net_device *, struct cfg80211_connect_params *); - int (*update_connect_params)(struct wiphy *, struct net_device *, struct cfg80211_connect_params *, u32); - int (*disconnect)(struct wiphy *, struct net_device *, u16); - int (*join_ibss)(struct wiphy *, struct net_device *, struct cfg80211_ibss_params *); - int (*leave_ibss)(struct wiphy *, struct net_device *); - int (*set_mcast_rate)(struct wiphy *, struct net_device *, int *); - int (*set_wiphy_params)(struct wiphy *, u32); - int (*set_tx_power)(struct wiphy *, struct wireless_dev *, enum nl80211_tx_power_setting, int); - int (*get_tx_power)(struct wiphy *, struct wireless_dev *, int *); - void (*rfkill_poll)(struct wiphy *); - int (*set_bitrate_mask)(struct wiphy *, struct net_device *, unsigned int, const u8 *, const struct cfg80211_bitrate_mask *); - int (*dump_survey)(struct wiphy *, struct net_device *, int, struct survey_info *); - int (*set_pmksa)(struct wiphy *, struct net_device *, struct cfg80211_pmksa *); - int (*del_pmksa)(struct wiphy *, struct net_device *, struct cfg80211_pmksa *); - int (*flush_pmksa)(struct wiphy *, struct net_device *); - int (*remain_on_channel)(struct wiphy *, struct wireless_dev *, struct ieee80211_channel *, unsigned int, u64 *); - int (*cancel_remain_on_channel)(struct wiphy *, struct wireless_dev *, u64); - int (*mgmt_tx)(struct wiphy *, struct wireless_dev *, struct cfg80211_mgmt_tx_params *, u64 *); - int (*mgmt_tx_cancel_wait)(struct wiphy *, struct wireless_dev *, u64); - int (*set_power_mgmt)(struct wiphy *, struct net_device *, bool, int); - int (*set_cqm_rssi_config)(struct wiphy *, struct net_device *, s32, u32); - int (*set_cqm_rssi_range_config)(struct wiphy *, struct net_device *, s32, s32); - int (*set_cqm_txe_config)(struct wiphy *, struct net_device *, u32, u32, u32); - void (*update_mgmt_frame_registrations)(struct wiphy *, struct wireless_dev *, struct mgmt_frame_regs *); - int (*set_antenna)(struct wiphy *, u32, u32); - int (*get_antenna)(struct wiphy *, u32 *, u32 *); - int (*sched_scan_start)(struct wiphy *, struct net_device *, struct cfg80211_sched_scan_request *); - int (*sched_scan_stop)(struct wiphy *, struct net_device *, u64); - int (*set_rekey_data)(struct wiphy *, struct net_device *, struct cfg80211_gtk_rekey_data *); - int (*tdls_mgmt)(struct wiphy *, struct net_device *, const u8 *, int, u8, u8, u16, u32, bool, const u8 *, size_t); - int (*tdls_oper)(struct wiphy *, struct net_device *, const u8 *, enum nl80211_tdls_operation); - int (*probe_client)(struct wiphy *, struct net_device *, const u8 *, u64 *); - int (*set_noack_map)(struct wiphy *, struct net_device *, u16); - int (*get_channel)(struct wiphy *, struct wireless_dev *, unsigned int, struct cfg80211_chan_def *); - int (*start_p2p_device)(struct wiphy *, struct wireless_dev *); - void (*stop_p2p_device)(struct wiphy *, struct wireless_dev *); - int (*set_mac_acl)(struct wiphy *, struct net_device *, const struct cfg80211_acl_data *); - int (*start_radar_detection)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32); - void (*end_cac)(struct wiphy *, struct net_device *); - int (*update_ft_ies)(struct wiphy *, struct net_device *, struct cfg80211_update_ft_ies_params *); - int (*crit_proto_start)(struct wiphy *, struct wireless_dev *, enum nl80211_crit_proto_id, u16); - void (*crit_proto_stop)(struct wiphy *, struct wireless_dev *); - int (*set_coalesce)(struct wiphy *, struct cfg80211_coalesce *); - int (*channel_switch)(struct wiphy *, struct net_device *, struct cfg80211_csa_settings *); - int (*set_qos_map)(struct wiphy *, struct net_device *, struct cfg80211_qos_map *); - int (*set_ap_chanwidth)(struct wiphy *, struct net_device *, unsigned int, struct cfg80211_chan_def *); - int (*add_tx_ts)(struct wiphy *, struct net_device *, u8, const u8 *, u8, u16); - int (*del_tx_ts)(struct wiphy *, struct net_device *, u8, const u8 *); - int (*tdls_channel_switch)(struct wiphy *, struct net_device *, const u8 *, u8, struct cfg80211_chan_def *); - void (*tdls_cancel_channel_switch)(struct wiphy *, struct net_device *, const u8 *); - int (*start_nan)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *); - void (*stop_nan)(struct wiphy *, struct wireless_dev *); - int (*add_nan_func)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_func *); - void (*del_nan_func)(struct wiphy *, struct wireless_dev *, u64); - int (*nan_change_conf)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *, u32); - int (*set_multicast_to_unicast)(struct wiphy *, struct net_device *, const bool); - int (*get_txq_stats)(struct wiphy *, struct wireless_dev *, struct cfg80211_txq_stats *); - int (*set_pmk)(struct wiphy *, struct net_device *, const struct cfg80211_pmk_conf *); - int (*del_pmk)(struct wiphy *, struct net_device *, const u8 *); - int (*external_auth)(struct wiphy *, struct net_device *, struct cfg80211_external_auth_params *); - int (*tx_control_port)(struct wiphy *, struct net_device *, const u8 *, size_t, const u8 *, const __be16, const bool, int, u64 *); - int (*get_ftm_responder_stats)(struct wiphy *, struct net_device *, struct cfg80211_ftm_responder_stats *); - int (*start_pmsr)(struct wiphy *, struct wireless_dev *, struct cfg80211_pmsr_request *); - void (*abort_pmsr)(struct wiphy *, struct wireless_dev *, struct cfg80211_pmsr_request *); - int (*update_owe_info)(struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *); - int (*probe_mesh_link)(struct wiphy *, struct net_device *, const u8 *, size_t); - int (*set_tid_config)(struct wiphy *, struct net_device *, struct cfg80211_tid_config *); - int (*reset_tid_config)(struct wiphy *, struct net_device *, const u8 *, u8); - int (*set_sar_specs)(struct wiphy *, struct cfg80211_sar_specs *); - int (*color_change)(struct wiphy *, struct net_device *, struct cfg80211_color_change_settings *); - int (*set_fils_aad)(struct wiphy *, struct net_device *, struct cfg80211_fils_aad *); - int (*set_radar_background)(struct wiphy *, struct cfg80211_chan_def *); - int (*add_link_station)(struct wiphy *, struct net_device *, struct link_station_parameters *); - int (*mod_link_station)(struct wiphy *, struct net_device *, struct link_station_parameters *); - int (*del_link_station)(struct wiphy *, struct net_device *, struct link_station_del_parameters *); - int (*set_hw_timestamp)(struct wiphy *, struct net_device *, struct cfg80211_set_hw_timestamp *); -}; - -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_rnr_elems; - -struct cfg80211_beacon_data { +struct ieee80211_bss_conf { + struct ieee80211_vif *vif; + const u8 *bssid; unsigned int link_id; - const u8 *head; - const u8 *tail; - const u8 *beacon_ies; - const u8 *proberesp_ies; - const u8 *assocresp_ies; - const u8 *probe_resp; - const u8 *lci; - const u8 *civicloc; - struct cfg80211_mbssid_elems *mbssid_ies; - struct cfg80211_rnr_elems *rnr_ies; - s8 ftm_responder; - size_t head_len; - size_t tail_len; - size_t beacon_ies_len; - size_t proberesp_ies_len; - size_t assocresp_ies_len; - size_t probe_resp_len; - size_t lci_len; - size_t civicloc_len; + 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; - 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 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 ht_ldpc; + bool vht_ldpc; + bool he_ldpc; + bool vht_su_beamformer; + bool vht_su_beamformee; + bool vht_mu_beamformer; + bool vht_mu_beamformee; + bool he_su_beamformer; + bool he_su_beamformee; + bool he_mu_beamformer; + bool he_full_ul_mumimo; + bool eht_su_beamformer; + bool eht_su_beamformee; + bool eht_mu_beamformer; }; -struct 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_txq; -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 ieee80211_vif { + enum nl80211_iftype type; + struct ieee80211_vif_cfg cfg; + struct ieee80211_bss_conf bss_conf; + struct ieee80211_bss_conf __attribute__((btf_type_tag("rcu"))) *link_conf[15]; + u16 valid_links; + u16 active_links; + u16 dormant_links; + u8 addr[6]; + bool p2p; + u8 cab_queue; + u8 hw_queue[4]; + struct ieee80211_txq *txq; + netdev_features_t netdev_features; + u32 driver_flags; + u32 offload_flags; + bool probe_req_reg; + bool rx_mcast_action_reg; + struct ieee80211_vif *mbssid_tx_vif; + u8 drv_priv[0]; }; -struct cfg80211_fils_discovery { - u32 min_interval; - u32 max_interval; - size_t tmpl_len; - const u8 *tmpl; -}; +struct ieee80211_local; -struct cfg80211_unsol_bcast_probe_resp { - u32 interval; - size_t tmpl_len; - const u8 *tmpl; -}; +struct mac80211_qos_map; -struct cfg80211_mbssid_config { - struct wireless_dev *tx_wdev; - u8 index; - bool ema; +struct ieee80211_sub_if_data { + struct list_head list; + struct wireless_dev wdev; + struct list_head key_list; + int crypto_tx_tailroom_needed_cnt; + int crypto_tx_tailroom_pending_dec; + struct wiphy_delayed_work dec_tailroom_needed_wk; + struct net_device *dev; + struct ieee80211_local *local; + unsigned int flags; + unsigned long state; + char name[16]; + struct ieee80211_fragment_cache frags; + u16 noack_map; + u8 wmm_acm; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *keys[4]; + struct ieee80211_key __attribute__((btf_type_tag("rcu"))) *default_unicast_key; + u16 sequence_number; + u16 mld_mcast_seq; + __be16 control_port_protocol; + bool control_port_no_encrypt; + bool control_port_no_preauth; + bool control_port_over_nl80211; + atomic_t num_tx_queued; + struct mac80211_qos_map __attribute__((btf_type_tag("rcu"))) *qos_map; + struct wiphy_work work; + struct sk_buff_head skb_queue; + struct sk_buff_head status_queue; + struct ieee80211_if_ap *bss; + u32 rc_rateidx_mask[6]; + bool rc_has_mcs_mask[6]; + u8 rc_rateidx_mcs_mask[60]; + bool rc_has_vht_mcs_mask[6]; + u16 rc_rateidx_vht_mcs_mask[48]; + u32 beacon_rateidx_mask[6]; + bool beacon_rate_set; + union { + struct ieee80211_if_ap ap; + struct ieee80211_if_vlan vlan; + struct ieee80211_if_managed mgd; + struct ieee80211_if_ibss ibss; + struct ieee80211_if_mesh mesh; + struct ieee80211_if_ocb ocb; + struct ieee80211_if_mntr mntr; + struct ieee80211_if_nan nan; + } u; + struct ieee80211_link_data deflink; + struct ieee80211_link_data __attribute__((btf_type_tag("rcu"))) *link[15]; + struct wiphy_work activate_links_work; + u16 desired_active_links; + struct ieee80211_vif vif; }; -struct 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; +struct ieee80211_conf { 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; + 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 cfg80211_mbssid_elems { - u8 cnt; +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 { - const u8 *data; - size_t len; - } elem[0]; + 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 cfg80211_rnr_elems { - u8 cnt; - struct { - const u8 *data; - size_t len; - } elem[0]; -}; +struct fq_flow; -struct cfg80211_acl_data { - enum nl80211_acl_policy acl_policy; - int n_acl_entries; - struct mac_address mac_addrs[0]; +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; }; -struct ieee80211_he_operation { - __le32 he_oper_params; - __le16 he_mcs_nss_set; - u8 optional[0]; -} __attribute__((packed)); +typedef u32 codel_time_t; -struct ieee80211_eht_cap_elem { - struct ieee80211_eht_cap_elem_fixed fixed; - u8 optional[0]; +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 ieee80211_eht_operation { - u8 params; - struct ieee80211_eht_mcs_nss_supp_20mhz_only basic_mcs_nss; - u8 optional[0]; +struct arc4_ctx { + u32 S[256]; + u32 x; + u32 y; }; -struct sta_txpwr { - s16 power; - enum nl80211_tx_power_setting type; +struct cfg80211_scan_info { + u64 scan_start_tsf; + u8 tsf_bssid[6]; + bool aborted; }; -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; +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 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 codel_vars; -struct station_del_parameters { - const u8 *mac; - u8 subtype; - u16 reason_code; -}; +struct ieee80211_ops; -struct rate_info { - u16 flags; - u16 legacy; - u8 mcs; - u8 nss; - u8 bw; - u8 he_gi; - u8 he_dcm; - u8 he_ru_alloc; - u8 n_bonded_ch; - u8 eht_gi; - u8 eht_ru_alloc; -}; +struct rate_control_ref; -struct sta_bss_parameters { - u8 flags; - u8 dtim_period; - u16 beacon_interval; -}; +struct cfg80211_scan_request; -struct nl80211_sta_flag_update { - __u32 mask; - __u32 set; +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]; + spinlock_t handle_wake_tx_queue_lock; + u16 airtime_flags; + u32 aql_txq_limit_low[4]; + u32 aql_txq_limit_high[4]; + u32 aql_threshold; + atomic_t aql_total_pending_airtime; + atomic_t aql_ac_pending_airtime[4]; + const struct ieee80211_ops *ops; + struct workqueue_struct *workqueue; + unsigned long queue_stop_reasons[16]; + int q_stop_reasons[176]; + spinlock_t queue_stop_reason_lock; + int open_count; + int monitors; + int cooked_mntrs; + int fif_fcsfail; + int fif_plcpfail; + int fif_control; + int fif_other_bss; + int fif_pspoll; + int fif_probe_req; + bool probe_req_reg; + bool rx_mcast_action_reg; + unsigned int filter_flags; + bool wiphy_ciphers_allocated; + bool use_chanctx; + spinlock_t filter_lock; + struct wiphy_work reconfig_filter; + struct netdev_hw_addr_list mc_list; + bool tim_in_locked_section; + bool suspended; + bool suspending; + bool resuming; + bool quiescing; + bool started; + bool in_reconfig; + bool reconfig_failure; + bool wowlan; + struct wiphy_work radar_detected_work; + u8 rx_chains; + u8 sband_allocated; + int tx_headroom; + struct tasklet_struct tasklet; + struct sk_buff_head skb_queue; + struct sk_buff_head skb_queue_unreliable; + spinlock_t rx_path_lock; + spinlock_t tim_lock; + unsigned long num_sta; + struct list_head sta_list; + struct rhltable sta_hash; + struct rhltable link_sta_hash; + struct timer_list sta_cleanup; + int sta_generation; + struct sk_buff_head pending[16]; + struct tasklet_struct tx_pending_tasklet; + struct tasklet_struct wake_txqs_tasklet; + atomic_t agg_queue_stop[16]; + atomic_t iff_allmultis; + struct rate_control_ref *rate_ctrl; + struct arc4_ctx wep_tx_ctx; + struct arc4_ctx wep_rx_ctx; + u32 wep_iv; + struct list_head interfaces; + struct list_head mon_list; + struct mutex iflist_mtx; + unsigned long scanning; + struct cfg80211_ssid scan_ssid; + struct cfg80211_scan_request *int_scan_req; + struct cfg80211_scan_request __attribute__((btf_type_tag("rcu"))) *scan_req; + struct ieee80211_scan_request *hw_scan_req; + struct cfg80211_chan_def scan_chandef; + enum nl80211_band hw_scan_band; + int scan_channel_idx; + int scan_ies_len; + int hw_scan_ies_bufsize; + struct cfg80211_scan_info scan_info; + struct wiphy_work sched_scan_stopped_work; + struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *sched_scan_sdata; + struct cfg80211_sched_scan_request __attribute__((btf_type_tag("rcu"))) *sched_scan_req; + u8 scan_addr[6]; + unsigned long leave_oper_channel_time; + enum mac80211_scan_state next_scan_state; + struct wiphy_delayed_work scan_work; + struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *scan_sdata; + struct cfg80211_chan_def _oper_chandef; + struct ieee80211_channel *tmp_channel; + struct list_head chanctx_list; + 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 wiphy_work dynamic_ps_enable_work; + struct wiphy_work dynamic_ps_disable_work; + struct timer_list dynamic_ps_timer; + struct notifier_block ifa_notifier; + struct notifier_block ifa6_notifier; + int dynamic_ps_forced_timeout; + int user_power_level; + enum ieee80211_smps_mode smps_mode; + struct work_struct restart_work; + struct wiphy_delayed_work roc_work; + struct list_head roc_list; + struct wiphy_work hw_roc_start; + struct wiphy_work hw_roc_done; + unsigned long hw_roc_start_time; + u64 roc_cookie_counter; + struct idr ack_status_frames; + spinlock_t ack_status_lock; + struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *p2p_sdata; + struct ieee80211_sub_if_data __attribute__((btf_type_tag("rcu"))) *monitor_sdata; + struct cfg80211_chan_def monitor_chandef; + u8 ext_capa[8]; }; -struct cfg80211_tid_stats; +struct fq_tin; -struct station_info { - u64 filled; - u32 connected_time; - u32 inactive_time; - u64 assoc_at; - u64 rx_bytes; - u64 tx_bytes; - u16 llid; - u16 plid; - u8 plink_state; - s8 signal; - s8 signal_avg; - u8 chains; - s8 chain_signal[4]; - s8 chain_signal_avg[4]; - struct rate_info txrate; - struct rate_info rxrate; - u32 rx_packets; - u32 tx_packets; - u32 tx_retries; - u32 tx_failed; - u32 rx_dropped_misc; - struct sta_bss_parameters bss_param; - struct nl80211_sta_flag_update sta_flags; - int generation; - const u8 *assoc_req_ies; - size_t assoc_req_ies_len; - u32 beacon_loss_count; - s64 t_offset; - enum nl80211_mesh_power_mode local_pm; - enum nl80211_mesh_power_mode peer_pm; - enum nl80211_mesh_power_mode nonpeer_pm; - u32 expected_throughput; - u64 tx_duration; - u64 rx_duration; - u64 rx_beacon; - u8 rx_beacon_signal_avg; - u8 connected_to_gate; - struct cfg80211_tid_stats *pertid; - s8 ack_signal; - s8 avg_ack_signal; - u16 airtime_weight; - u32 rx_mpdu_count; - u32 fcs_err_count; - u32 airtime_link_metric; - u8 connected_to_as; - bool mlo_params_valid; - u8 assoc_link_id; - int: 0; - u8 mld_addr[6]; - const u8 *assoc_resp_ies; - size_t assoc_resp_ies_len; +struct fq_flow { + struct fq_tin *tin; + struct list_head flowchain; + struct sk_buff_head queue; + u32 backlog; + int deficit; }; -struct cfg80211_txq_stats { - u32 filled; +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 flows; - u32 drops; - u32 ecn_marks; u32 overlimit; - u32 overmemory; u32 collisions; + u32 flows; 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 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 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 ieee80211_tx_control; -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 ieee80211_sta; -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 ieee80211_key_conf; -struct ocb_setup { - struct cfg80211_chan_def chandef; -}; +struct cfg80211_gtk_rekey_data; -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_scan_ies; -struct ieee80211_txq_params { - enum nl80211_ac ac; - u16 txop; - u16 cwmin; - u16 cwmax; - u8 aifs; - int link_id; -}; +struct ieee80211_low_level_stats; -struct cfg80211_scan_info { - u64 scan_start_tsf; - u8 tsf_bssid[6]; - bool aborted; -}; +struct ieee80211_key_seq; -struct cfg80211_scan_6ghz_params; +struct station_info; -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 ieee80211_ampdu_params; -struct cfg80211_scan_6ghz_params { - u32 short_ssid; - u32 channel_idx; - u8 bssid[6]; - bool unsolicited_probe; - bool short_ssid_valid; - bool psc_no_listen; - s8 psd_20; -}; +struct survey_info; -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_channel_switch; -struct ieee80211_s1g_cap { - u8 capab_info[10]; - u8 supp_mcs_nss[5]; -}; +struct ieee80211_event; -struct cfg80211_assoc_link { - struct cfg80211_bss *bss; - const u8 *elems; - size_t elems_len; - bool disabled; -}; +struct ieee80211_prep_tx_info; -struct cfg80211_assoc_request { - struct cfg80211_bss *bss; - const u8 *ie; - const u8 *prev_bssid; - size_t ie_len; - struct cfg80211_crypto_settings crypto; - bool use_mfp; - u32 flags; - struct ieee80211_ht_cap ht_capa; - struct ieee80211_ht_cap ht_capa_mask; - struct ieee80211_vht_cap vht_capa; - struct ieee80211_vht_cap vht_capa_mask; - const u8 *fils_kek; - size_t fils_kek_len; - const u8 *fils_nonces; - struct ieee80211_s1g_cap s1g_capa; - struct ieee80211_s1g_cap s1g_capa_mask; - struct cfg80211_assoc_link links[15]; - const u8 *ap_mld_addr; - s8 link_id; -}; +struct ieee80211_vif_chanctx_switch; -struct cfg80211_deauth_request { - const u8 *bssid; - const u8 *ie; - size_t ie_len; - u16 reason_code; - bool local_state_change; -}; +struct ieee80211_tdls_ch_sw_params; -struct cfg80211_disassoc_request { - const u8 *ap_addr; - const u8 *ie; - size_t ie_len; - u16 reason_code; - bool local_state_change; -}; +struct cfg80211_nan_func; -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_ftm_responder_stats; -struct cfg80211_connect_params { - struct ieee80211_channel *channel; - struct ieee80211_channel *channel_hint; - const u8 *bssid; - const u8 *bssid_hint; - const u8 *ssid; - size_t ssid_len; - enum nl80211_auth_type auth_type; - const u8 *ie; - size_t ie_len; - bool privacy; - enum nl80211_mfp mfp; - struct cfg80211_crypto_settings crypto; - const u8 *key; - u8 key_len; - u8 key_idx; - u32 flags; - int bg_scan_period; - struct ieee80211_ht_cap ht_capa; - struct ieee80211_ht_cap ht_capa_mask; - struct ieee80211_vht_cap vht_capa; - struct ieee80211_vht_cap vht_capa_mask; - bool pbss; - struct cfg80211_bss_selection bss_select; - const u8 *prev_bssid; - const u8 *fils_erp_username; - size_t fils_erp_username_len; - const u8 *fils_erp_realm; - size_t fils_erp_realm_len; - u16 fils_erp_next_seq_num; - const u8 *fils_erp_rrk; - size_t fils_erp_rrk_len; - bool want_1x; - struct ieee80211_edmg edmg; -}; +struct cfg80211_pmsr_request; -struct cfg80211_ibss_params { - const u8 *ssid; - const u8 *bssid; - struct cfg80211_chan_def chandef; - const u8 *ie; - u8 ssid_len; - u8 ie_len; - u16 beacon_interval; - u32 basic_rates; - bool channel_fixed; - bool privacy; - bool control_port; - bool control_port_over_nl80211; - bool userspace_handles_dfs; - int mcast_rate[6]; - struct ieee80211_ht_cap ht_capa; - struct ieee80211_ht_cap ht_capa_mask; - struct key_params *wep_keys; - int wep_tx_key; +struct cfg80211_tid_config; + +struct cfg80211_sar_specs; + +struct ieee80211_twt_setup; + +struct cfg80211_set_hw_timestamp; + +struct ieee80211_ops { + void (*tx)(struct ieee80211_hw *, struct ieee80211_tx_control *, struct sk_buff *); + int (*start)(struct ieee80211_hw *); + void (*stop)(struct ieee80211_hw *); + int (*suspend)(struct ieee80211_hw *, struct cfg80211_wowlan *); + int (*resume)(struct ieee80211_hw *); + void (*set_wakeup)(struct ieee80211_hw *, bool); + int (*add_interface)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*change_interface)(struct ieee80211_hw *, struct ieee80211_vif *, enum nl80211_iftype, bool); + void (*remove_interface)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*config)(struct ieee80211_hw *, u32); + void (*bss_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64); + void (*vif_cfg_changed)(struct ieee80211_hw *, struct ieee80211_vif *, u64); + void (*link_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64); + int (*start_ap)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); + void (*stop_ap)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); + u64 (*prepare_multicast)(struct ieee80211_hw *, struct netdev_hw_addr_list *); + void (*configure_filter)(struct ieee80211_hw *, unsigned int, unsigned int *, u64); + void (*config_iface_filter)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int, unsigned int); + int (*set_tim)(struct ieee80211_hw *, struct ieee80211_sta *, bool); + int (*set_key)(struct ieee80211_hw *, enum set_key_cmd, struct ieee80211_vif *, struct ieee80211_sta *, struct ieee80211_key_conf *); + void (*update_tkip_key)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_key_conf *, struct ieee80211_sta *, u32, u16 *); + void (*set_rekey_data)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_gtk_rekey_data *); + void (*set_default_unicast_key)(struct ieee80211_hw *, struct ieee80211_vif *, int); + int (*hw_scan)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_scan_request *); + void (*cancel_hw_scan)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*sched_scan_start)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_sched_scan_request *, struct ieee80211_scan_ies *); + int (*sched_scan_stop)(struct ieee80211_hw *, struct ieee80211_vif *); + void (*sw_scan_start)(struct ieee80211_hw *, struct ieee80211_vif *, const u8 *); + void (*sw_scan_complete)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*get_stats)(struct ieee80211_hw *, struct ieee80211_low_level_stats *); + void (*get_key_seq)(struct ieee80211_hw *, struct ieee80211_key_conf *, struct ieee80211_key_seq *); + int (*set_frag_threshold)(struct ieee80211_hw *, u32); + int (*set_rts_threshold)(struct ieee80211_hw *, u32); + int (*sta_add)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + int (*sta_remove)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + void (*sta_notify)(struct ieee80211_hw *, struct ieee80211_vif *, enum sta_notify_cmd, struct ieee80211_sta *); + int (*sta_set_txpwr)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + int (*sta_state)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, enum ieee80211_sta_state, enum ieee80211_sta_state); + void (*sta_pre_rcu_remove)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + void (*sta_rc_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u32); + void (*sta_rate_tbl_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + void (*sta_statistics)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct station_info *); + int (*conf_tx)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int, u16, const struct ieee80211_tx_queue_params *); + u64 (*get_tsf)(struct ieee80211_hw *, struct ieee80211_vif *); + void (*set_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, u64); + void (*offset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, s64); + void (*reset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*tx_last_beacon)(struct ieee80211_hw *); + int (*ampdu_action)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_ampdu_params *); + int (*get_survey)(struct ieee80211_hw *, int, struct survey_info *); + void (*rfkill_poll)(struct ieee80211_hw *); + void (*set_coverage_class)(struct ieee80211_hw *, s16); + void (*flush)(struct ieee80211_hw *, struct ieee80211_vif *, u32, bool); + void (*flush_sta)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); + void (*channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *); + int (*set_antenna)(struct ieee80211_hw *, u32, u32); + int (*get_antenna)(struct ieee80211_hw *, u32 *, u32 *); + int (*remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel *, int, enum ieee80211_roc_type); + int (*cancel_remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *); + int (*set_ringparam)(struct ieee80211_hw *, u32, u32); + void (*get_ringparam)(struct ieee80211_hw *, u32 *, u32 *, u32 *, u32 *); + bool (*tx_frames_pending)(struct ieee80211_hw *); + int (*set_bitrate_mask)(struct ieee80211_hw *, struct ieee80211_vif *, const struct cfg80211_bitrate_mask *); + void (*event_callback)(struct ieee80211_hw *, struct ieee80211_vif *, const struct ieee80211_event *); + void (*allow_buffered_frames)(struct ieee80211_hw *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool); + void (*release_buffered_frames)(struct ieee80211_hw *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool); + int (*get_et_sset_count)(struct ieee80211_hw *, struct ieee80211_vif *, int); + void (*get_et_stats)(struct ieee80211_hw *, struct ieee80211_vif *, struct ethtool_stats *, u64 *); + void (*get_et_strings)(struct ieee80211_hw *, struct ieee80211_vif *, u32, u8 *); + void (*mgd_prepare_tx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_prep_tx_info *); + void (*mgd_complete_tx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_prep_tx_info *); + void (*mgd_protect_tdls_discover)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int); + int (*add_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *); + void (*remove_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *); + void (*change_chanctx)(struct ieee80211_hw *, struct ieee80211_chanctx_conf *, u32); + int (*assign_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *); + void (*unassign_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, struct ieee80211_chanctx_conf *); + int (*switch_vif_chanctx)(struct ieee80211_hw *, struct ieee80211_vif_chanctx_switch *, int, enum ieee80211_chanctx_switch_mode); + void (*reconfig_complete)(struct ieee80211_hw *, enum ieee80211_reconfig_type); + void (*ipv6_addr_change)(struct ieee80211_hw *, struct ieee80211_vif *, struct inet6_dev *); + void (*channel_switch_beacon)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_chan_def *); + int (*pre_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *); + int (*post_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); + void (*abort_channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *); + 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); + int (*set_hw_timestamp)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_set_hw_timestamp *); + int (*net_setup_tc)(struct ieee80211_hw *, struct ieee80211_vif *, struct net_device *, enum tc_setup_type, void *); }; -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 ieee80211_tx_control { + struct ieee80211_sta *sta; }; -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 ieee80211_sta_aggregates { + u16 max_amsdu_len; + u16 max_rc_amsdu_len; + u16 max_tid_amsdu_len[16]; }; -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 ieee80211_sta_txpwr { + s16 power; + enum nl80211_tx_power_setting type; }; -struct mgmt_frame_regs { - u32 global_stypes; - u32 interface_stypes; - u32 global_mcast_stypes; - u32 interface_mcast_stypes; +struct ieee80211_link_sta { + struct ieee80211_sta *sta; + u8 addr[6]; + u8 link_id; + long: 0; + enum ieee80211_smps_mode smps_mode; + u32 supp_rates[6]; + struct ieee80211_sta_ht_cap ht_cap; + int: 0; + struct ieee80211_sta_vht_cap vht_cap; + struct ieee80211_sta_he_cap he_cap; + struct ieee80211_he_6ghz_capa he_6ghz_capa; + struct ieee80211_sta_eht_cap eht_cap; + struct ieee80211_sta_aggregates agg; + u8 rx_nss; + long: 0; + enum ieee80211_sta_rx_bandwidth bandwidth; + struct ieee80211_sta_txpwr txpwr; + long: 0; +} __attribute__((packed)); + +struct ieee80211_sta_rates; + +struct ieee80211_sta { + u8 addr[6]; + u16 aid; + u16 max_rx_aggregation_subframes; + bool wme; + u8 uapsd_queues; + u8 max_sp; + struct ieee80211_sta_rates __attribute__((btf_type_tag("rcu"))) *rates; + bool tdls; + bool tdls_initiator; + bool mfp; + bool mlo; + u8 max_amsdu_subframes; + struct ieee80211_sta_aggregates *cur; + bool support_p2p_ps; + struct ieee80211_txq *txq[17]; + u16 valid_links; + long: 0; + struct ieee80211_link_sta deflink; + struct ieee80211_link_sta __attribute__((btf_type_tag("rcu"))) *link[15]; + u8 drv_priv[0]; +}; + +struct ieee80211_sta_rates { + struct callback_head callback_head; + struct { + s8 idx; + u8 count; + u8 count_cts; + u8 count_rts; + u16 flags; + } rate[4]; +}; + +struct ieee80211_txq { + struct ieee80211_vif *vif; + struct ieee80211_sta *sta; + u8 tid; + u8 ac; + long: 0; + 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: 0; + 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 cfg80211_gtk_rekey_data { @@ -48875,59 +49494,273 @@ struct cfg80211_gtk_rekey_data { u8 kck_len; }; -struct cfg80211_update_ft_ies_params { - u16 md; +struct ieee80211_scan_ies { + const u8 *ies[6]; + size_t len[6]; + const u8 *common_ies; + size_t common_ie_len; +}; + +struct cfg80211_scan_6ghz_params; + +struct cfg80211_scan_request { + struct cfg80211_ssid *ssids; + int n_ssids; + u32 n_channels; const u8 *ie; size_t ie_len; + u16 duration; + bool duration_mandatory; + u32 flags; + u32 rates[6]; + struct wireless_dev *wdev; + u8 mac_addr[6]; + u8 mac_addr_mask[6]; + u8 bssid[6]; + struct wiphy *wiphy; + unsigned long scan_start; + struct cfg80211_scan_info info; + bool notified; + bool no_cck; + bool scan_6ghz; + u32 n_6ghz_params; + struct cfg80211_scan_6ghz_params *scan_6ghz_params; + struct ieee80211_channel *channels[0]; }; -struct cfg80211_coalesce_rules; +struct ieee80211_scan_request { + struct ieee80211_scan_ies ies; + struct cfg80211_scan_request req; +}; -struct cfg80211_coalesce { - struct cfg80211_coalesce_rules *rules; - int n_rules; +struct cfg80211_scan_6ghz_params { + u32 short_ssid; + u32 channel_idx; + u8 bssid[6]; + bool unsolicited_probe; + bool short_ssid_valid; + bool psc_no_listen; + s8 psd_20; }; -struct cfg80211_coalesce_rules { - int delay; - enum nl80211_coalesce_condition condition; - struct cfg80211_pkt_pattern *patterns; - int n_patterns; +struct ieee80211_low_level_stats { + unsigned int dot11ACKFailureCount; + unsigned int dot11RTSFailureCount; + unsigned int dot11FCSErrorCount; + unsigned int dot11RTSSuccessCount; }; -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; +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 rate_info { + u16 flags; + u16 legacy; + u8 mcs; + u8 nss; + u8 bw; + u8 he_gi; + u8 he_dcm; + u8 he_ru_alloc; + u8 n_bonded_ch; + u8 eht_gi; + u8 eht_ru_alloc; +}; + +struct sta_bss_parameters { + u8 flags; + u8 dtim_period; + u16 beacon_interval; +}; + +struct nl80211_sta_flag_update { + __u32 mask; + __u32 set; +}; + +struct cfg80211_tid_stats; + +struct station_info { + u64 filled; + u32 connected_time; + u32 inactive_time; + u64 assoc_at; + u64 rx_bytes; + u64 tx_bytes; + u16 llid; + u16 plid; + u8 plink_state; + s8 signal; + s8 signal_avg; + u8 chains; + s8 chain_signal[4]; + s8 chain_signal_avg[4]; + struct rate_info txrate; + struct rate_info rxrate; + u32 rx_packets; + u32 tx_packets; + u32 tx_retries; + u32 tx_failed; + u32 rx_dropped_misc; + struct sta_bss_parameters bss_param; + struct nl80211_sta_flag_update sta_flags; + int generation; + const u8 *assoc_req_ies; + size_t assoc_req_ies_len; + u32 beacon_loss_count; + s64 t_offset; + enum nl80211_mesh_power_mode local_pm; + enum nl80211_mesh_power_mode peer_pm; + enum nl80211_mesh_power_mode nonpeer_pm; + u32 expected_throughput; + u64 tx_duration; + u64 rx_duration; + u64 rx_beacon; + u8 rx_beacon_signal_avg; + u8 connected_to_gate; + struct cfg80211_tid_stats *pertid; + s8 ack_signal; + s8 avg_ack_signal; + u16 airtime_weight; + u32 rx_mpdu_count; + u32 fcs_err_count; + u32 airtime_link_metric; + u8 connected_to_as; + bool mlo_params_valid; + u8 assoc_link_id; + int: 0; + u8 mld_addr[6]; + const u8 *assoc_resp_ies; + size_t assoc_resp_ies_len; +}; + +struct cfg80211_txq_stats { + u32 filled; + u32 backlog_bytes; + u32 backlog_packets; + u32 flows; + u32 drops; + u32 ecn_marks; + u32 overlimit; + u32 overmemory; + u32 collisions; + u32 tx_bytes; + u32 tx_packets; + u32 max_flows; +}; + +struct cfg80211_tid_stats { + u32 filled; + u64 rx_msdu; + u64 tx_msdu; + u64 tx_msdu_retries; + u64 tx_msdu_failed; + struct cfg80211_txq_stats txq_stats; +}; + +struct 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 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 ieee80211_channel_switch { + u64 timestamp; + u32 device_timestamp; bool block_tx; + struct cfg80211_chan_def chandef; u8 count; - u16 punct_bitmap; + u32 delay; }; -struct cfg80211_dscp_exception { - u8 dscp; - u8 up; +struct ieee80211_rssi_event { + enum ieee80211_rssi_event_data data; }; -struct cfg80211_dscp_range { - u8 low; - u8 high; +struct ieee80211_mlme_event { + enum ieee80211_mlme_event_data data; + enum ieee80211_mlme_event_status status; + u16 reason; }; -struct cfg80211_qos_map { - u8 num_des; - struct cfg80211_dscp_exception dscp_exception[21]; - struct cfg80211_dscp_range up[8]; +struct ieee80211_ba_event { + struct ieee80211_sta *sta; + u16 tid; + u16 ssn; }; -struct cfg80211_nan_conf { - u8 master_pref; - u8 bands; +struct ieee80211_event { + enum ieee80211_event_type type; + union { + struct ieee80211_rssi_event rssi; + struct ieee80211_mlme_event mlme; + struct ieee80211_ba_event ba; + } u; +}; + +struct ieee80211_prep_tx_info { + u16 duration; + u16 subtype; + u8 success: 1; + int link_id; +}; + +struct ieee80211_vif_chanctx_switch { + struct ieee80211_vif *vif; + struct ieee80211_bss_conf *link_conf; + struct ieee80211_chanctx_conf *old_ctx; + struct ieee80211_chanctx_conf *new_ctx; +}; + +struct ieee80211_tdls_ch_sw_params { + struct ieee80211_sta *sta; + struct cfg80211_chan_def *chandef; + u8 action_code; + u32 status; + u32 timestamp; + u16 switch_time; + u16 switch_timeout; + struct sk_buff *tmpl_skb; + u32 ch_sw_tm_ie; }; struct cfg80211_nan_func_filter; @@ -48964,23 +49797,6 @@ struct cfg80211_nan_func_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; @@ -49030,15 +49846,6 @@ struct cfg80211_pmsr_request { 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; @@ -49070,203 +49877,470 @@ struct cfg80211_sar_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 ieee80211_twt_setup { + u8 dialog_token; + u8 element_id; + u8 length; + u8 control; + u8 params[0]; }; -struct cfg80211_fils_aad { +struct cfg80211_set_hw_timestamp { const u8 *macaddr; - const u8 *kek; - u8 kek_len; - const u8 *snonce; - const u8 *anonce; + bool enable; }; -struct link_station_del_parameters { - const u8 *mld_mac; - u32 link_id; +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 cfg80211_set_hw_timestamp { - const u8 *macaddr; - bool enable; +struct ieee80211_tpt_blink { + int throughput; + int blink_time; }; -struct genlmsghdr; +struct tkip_ctx { + u16 p1k[5]; + u32 p1k_iv32; + enum ieee80211_internal_tkip_state state; +}; -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 tkip_ctx_rx { + struct tkip_ctx ctx; + u32 iv32; + u16 iv16; }; -struct genlmsghdr { - __u8 cmd; - __u8 version; - __u16 reserved; +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 element { - u8 id; - u8 datalen; - u8 data[0]; +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 cfg80211_colocated_ap { - struct list_head list; - u8 bssid[6]; - u8 ssid[32]; - size_t ssid_len; - u32 short_ssid; - u32 center_freq; - u8 unsolicited_probe: 1; - u8 oct_recommended: 1; - u8 same_ssid: 1; - u8 multi_bss: 1; - u8 transmitted_bssid: 1; - u8 colocated_ess: 1; - u8 short_ssid_valid: 1; - s8 psd_20; +struct tid_ampdu_rx; + +struct tid_ampdu_tx; + +struct sta_ampdu_mlme { + struct tid_ampdu_rx __attribute__((btf_type_tag("rcu"))) *tid_rx[16]; + u8 tid_rx_token[16]; + unsigned long tid_rx_timer_expired[1]; + unsigned long tid_rx_stop_requested[1]; + unsigned long tid_rx_manage_offl[1]; + unsigned long agg_session_valid[1]; + unsigned long unexpected_agg[1]; + struct wiphy_work work; + struct tid_ampdu_tx __attribute__((btf_type_tag("rcu"))) *tid_tx[16]; + struct tid_ampdu_tx *tid_start_tx[16]; + unsigned long last_addba_req_time[16]; + u8 addba_req_num[16]; + u8 dialog_token_allocator; }; -struct ieee80211_neighbor_ap_info { - u8 tbtt_info_hdr; - u8 tbtt_info_len; - u8 op_class; - u8 channel; +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 ieee80211_rnr_mld_params { - u8 mld_id; - __le16 params; -} __attribute__((packed)); +struct ewma_signal { + unsigned long internal; +}; -struct ieee80211_tbtt_info_ge_11 { - u8 tbtt_offset; - u8 bssid[6]; - __le32 short_ssid; - u8 bss_params; - s8 psd_20; - struct ieee80211_rnr_mld_params mld_params; +struct ewma_avg_signal { + unsigned long internal; +}; + +struct ieee80211_tx_rate { + s8 idx; + u16 count: 5; + u16 flags: 11; } __attribute__((packed)); -struct ieee80211_tbtt_info_7_8_9 { - u8 tbtt_offset; - u8 bssid[6]; - u8 bss_params; - s8 psd_20; +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_he_6ghz_oper { - u8 primary; - u8 control; - u8 ccfs0; - u8 ccfs1; - u8 minrate; +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_multi_link_elem { - __le16 control; - u8 variable[0]; +struct ieee80211_fast_tx { + struct ieee80211_key *key; + u8 hdr_len; + u8 sa_offs; + u8 da_offs; + u8 pn_offs; + u8 band; + short: 0; + u8 hdr[56]; + struct callback_head callback_head; }; -struct ieee80211_mle_per_sta_profile; +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 cfg80211_mle { - struct ieee80211_multi_link_elem *mle; - struct ieee80211_mle_per_sta_profile *sta_prof[15]; - ssize_t sta_prof_len[15]; - u8 data[0]; +struct 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 ieee80211_mle_per_sta_profile { - __le16 control; - u8 sta_info_len; - u8 variable[0]; -} __attribute__((packed)); +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 ieee80211_ext_chansw_ie { - u8 mode; - u8 new_operating_class; - u8 new_ch_num; - u8 count; +struct cfg80211_dscp_exception { + u8 dscp; + u8 up; }; -struct ieee80211_msrment_ie { - u8 token; - u8 mode; - u8 type; - u8 request[0]; +struct cfg80211_dscp_range { + u8 low; + u8 high; }; -struct ieee80211_tpc_report_ie { - u8 tx_power; - u8 link_margin; +struct cfg80211_qos_map { + u8 num_des; + struct cfg80211_dscp_exception dscp_exception[21]; + struct cfg80211_dscp_range up[8]; }; -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; +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 cfg80211_beacon_data { + unsigned int link_id; + const u8 *head; + const u8 *tail; + const u8 *beacon_ies; + const u8 *proberesp_ies; + const u8 *assocresp_ies; + const u8 *probe_resp; + const u8 *lci; + const u8 *civicloc; + struct cfg80211_mbssid_elems *mbssid_ies; + struct cfg80211_rnr_elems *rnr_ies; + s8 ftm_responder; + size_t head_len; + size_t tail_len; + size_t beacon_ies_len; + size_t proberesp_ies_len; + size_t assocresp_ies_len; + size_t probe_resp_len; + size_t lci_len; + size_t civicloc_len; + struct cfg80211_he_bss_color he_bss_color; + bool he_bss_color_valid; +}; + +struct 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; @@ -49405,4685 +50479,3420 @@ struct ieee80211_mgmt { } u; }; -struct ieee80211_ext { - __le16 frame_control; - __le16 duration; +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 sa[6]; - __le32 timestamp; - u8 change_seq; - u8 variable[0]; - } __attribute__((packed)) s1g_beacon; + u8 he_ru: 3; + u8 he_gi: 2; + u8 he_dcm: 1; + }; struct { - u8 sa[6]; - __le32 timestamp; - u8 change_seq; - u8 next_tbtt[3]; - u8 variable[0]; - } __attribute__((packed)) s1g_short_beacon; - } u; + 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 ieee80211_s1g_bcn_compat_ie { - __le16 compat_info; - __le16 beacon_int; - __le32 tsf_completion; +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 ieee80211_s1g_oper_ie { - u8 ch_width; - u8 oper_class; - u8 primary_ch; - u8 oper_ch; - __le16 basic_mcs_nss; +struct mesh_csa_settings { + struct callback_head callback_head; + struct cfg80211_csa_settings settings; }; -struct ieee80211_ht_operation { - u8 primary_chan; - u8 ht_param; - __le16 operation_mode; - __le16 stbc_param; - u8 basic_set[16]; +enum mac80211_drop_reason { + RX_CONTINUE = 1, + RX_QUEUED = 0, + RX_DROP_MONITOR = 131072, + RX_DROP_M_UNEXPECTED_4ADDR_FRAME = 131073, + RX_DROP_M_BAD_BCN_KEYIDX = 131074, + RX_DROP_M_BAD_MGMT_KEYIDX = 131075, + RX_DROP_U_MIC_FAIL = 65537, + RX_DROP_U_REPLAY = 65538, + RX_DROP_U_BAD_MMIE = 65539, + RX_DROP_U_DUP = 65540, + RX_DROP_U_SPURIOUS = 65541, + RX_DROP_U_DECRYPT_FAIL = 65542, + RX_DROP_U_NO_KEY_ID = 65543, + RX_DROP_U_BAD_CIPHER = 65544, + RX_DROP_U_OOM = 65545, + RX_DROP_U_NONSEQ_PN = 65546, + RX_DROP_U_BAD_KEY_COLOR = 65547, + RX_DROP_U_BAD_4ADDR = 65548, + RX_DROP_U_BAD_AMSDU = 65549, + RX_DROP_U_BAD_AMSDU_CIPHER = 65550, + RX_DROP_U_INVALID_8023 = 65551, + RX_DROP_U_RUNT_ACTION = 65552, + RX_DROP_U_UNPROT_ACTION = 65553, + RX_DROP_U_UNPROT_DUAL = 65554, + RX_DROP_U_UNPROT_UCAST_MGMT = 65555, + RX_DROP_U_UNPROT_MCAST_MGMT = 65556, + RX_DROP_U_UNPROT_BEACON = 65557, + RX_DROP_U_UNPROT_UNICAST_PUB_ACTION = 65558, + RX_DROP_U_UNPROT_ROBUST_ACTION = 65559, + RX_DROP_U_ACTION_UNKNOWN_SRC = 65560, + RX_DROP_U_REJECTED_ACTION_RESPONSE = 65561, + RX_DROP_U_EXPECT_DEFRAG_PROT = 65562, + RX_DROP_U_WEP_DEC_FAIL = 65563, + RX_DROP_U_NO_IV = 65564, + RX_DROP_U_NO_ICV = 65565, + RX_DROP_U_AP_RX_GROUPCAST = 65566, + RX_DROP_U_SHORT_MMIC = 65567, + RX_DROP_U_MMIC_FAIL = 65568, + RX_DROP_U_SHORT_TKIP = 65569, + RX_DROP_U_TKIP_FAIL = 65570, + RX_DROP_U_SHORT_CCMP = 65571, + RX_DROP_U_SHORT_CCMP_MIC = 65572, + RX_DROP_U_SHORT_GCMP = 65573, + RX_DROP_U_SHORT_GCMP_MIC = 65574, + RX_DROP_U_SHORT_CMAC = 65575, + RX_DROP_U_SHORT_CMAC256 = 65576, + RX_DROP_U_SHORT_GMAC = 65577, + RX_DROP_U_UNEXPECTED_VLAN_4ADDR = 65578, + RX_DROP_U_UNEXPECTED_STA_4ADDR = 65579, + RX_DROP_U_UNEXPECTED_VLAN_MCAST = 65580, + RX_DROP_U_NOT_PORT_CONTROL = 65581, }; -enum ieee80211_smps_mode { - IEEE80211_SMPS_AUTOMATIC = 0, - IEEE80211_SMPS_OFF = 1, - IEEE80211_SMPS_STATIC = 2, - IEEE80211_SMPS_DYNAMIC = 3, - IEEE80211_SMPS_NUM_MODES = 4, +enum 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_TLV_AT_END = 1048576, + RX_FLAG_MIC_STRIPPED = 2097152, + RX_FLAG_ALLOW_SAME_PN = 4194304, + RX_FLAG_ICV_STRIPPED = 8388608, + RX_FLAG_AMPDU_EOF_BIT = 16777216, + RX_FLAG_AMPDU_EOF_BIT_KNOWN = 33554432, + RX_FLAG_RADIOTAP_HE = 67108864, + RX_FLAG_RADIOTAP_HE_MU = 134217728, + RX_FLAG_RADIOTAP_LSIG = 268435456, + RX_FLAG_NO_PSDU = 536870912, + RX_FLAG_8023 = 1073741824, }; -enum 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_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_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, +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]; }; -enum set_key_cmd { - SET_KEY = 0, - DISABLE_KEY = 1, -}; +typedef unsigned int ieee80211_tx_result; -enum sta_notify_cmd { - STA_NOTIFY_SLEEP = 0, - STA_NOTIFY_AWAKE = 1, +struct ieee80211_tx_info { + u32 flags; + u32 band: 3; + u32 status_data_idr: 1; + u32 status_data: 13; + u32 hw_queue: 4; + u32 tx_time_est: 10; + union { + struct { + union { + struct { + struct ieee80211_tx_rate rates[4]; + s8 rts_cts_rate_idx; + u8 use_rts: 1; + u8 use_cts_prot: 1; + u8 short_preamble: 1; + u8 skip_table: 1; + u8 antennas: 2; + }; + unsigned long jiffies; + }; + struct ieee80211_vif *vif; + struct ieee80211_key_conf *hw_key; + u32 flags; + codel_time_t enqueue_time; + } control; + struct { + u64 cookie; + } ack; + struct { + struct ieee80211_tx_rate rates[4]; + s32 ack_signal; + u8 ampdu_ack_len; + u8 ampdu_len; + u8 antenna; + u8 pad; + u16 tx_time; + u8 flags; + u8 pad2; + void *status_driver_data[2]; + } status; + struct { + struct ieee80211_tx_rate driver_rates[4]; + u8 pad[4]; + void *rate_driver_data[3]; + }; + void *driver_data[5]; + }; }; -enum ieee80211_sta_state { - IEEE80211_STA_NOTEXIST = 0, - IEEE80211_STA_NONE = 1, - IEEE80211_STA_AUTH = 2, - IEEE80211_STA_ASSOC = 3, - IEEE80211_STA_AUTHORIZED = 4, +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; }; -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, -}; +typedef unsigned int ieee80211_rx_result; -enum ieee80211_roc_type { - IEEE80211_ROC_TYPE_NORMAL = 0, - IEEE80211_ROC_TYPE_MGMT_TX = 1, +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; + }; }; -enum ieee80211_event_type { - RSSI_EVENT = 0, - MLME_EVENT = 1, - BAR_RX_EVENT = 2, - BA_FRAME_TIMEOUT = 3, +enum ieee80211_eid_ext { + WLAN_EID_EXT_ASSOC_DELAY_INFO = 1, + WLAN_EID_EXT_FILS_REQ_PARAMS = 2, + WLAN_EID_EXT_FILS_KEY_CONFIRM = 3, + WLAN_EID_EXT_FILS_SESSION = 4, + WLAN_EID_EXT_FILS_HLP_CONTAINER = 5, + WLAN_EID_EXT_FILS_IP_ADDR_ASSIGN = 6, + WLAN_EID_EXT_KEY_DELIVERY = 7, + WLAN_EID_EXT_FILS_WRAPPED_DATA = 8, + WLAN_EID_EXT_FILS_PUBLIC_KEY = 12, + WLAN_EID_EXT_FILS_NONCE = 13, + WLAN_EID_EXT_FUTURE_CHAN_GUIDANCE = 14, + WLAN_EID_EXT_HE_CAPABILITY = 35, + WLAN_EID_EXT_HE_OPERATION = 36, + WLAN_EID_EXT_UORA = 37, + WLAN_EID_EXT_HE_MU_EDCA = 38, + WLAN_EID_EXT_HE_SPR = 39, + WLAN_EID_EXT_NDP_FEEDBACK_REPORT_PARAMSET = 41, + WLAN_EID_EXT_BSS_COLOR_CHG_ANN = 42, + WLAN_EID_EXT_QUIET_TIME_PERIOD_SETUP = 43, + WLAN_EID_EXT_ESS_REPORT = 45, + WLAN_EID_EXT_OPS = 46, + WLAN_EID_EXT_HE_BSS_LOAD = 47, + WLAN_EID_EXT_MAX_CHANNEL_SWITCH_TIME = 52, + WLAN_EID_EXT_MULTIPLE_BSSID_CONFIGURATION = 55, + WLAN_EID_EXT_NON_INHERITANCE = 56, + WLAN_EID_EXT_KNOWN_BSSID = 57, + WLAN_EID_EXT_SHORT_SSID_LIST = 58, + WLAN_EID_EXT_HE_6GHZ_CAPA = 59, + WLAN_EID_EXT_UL_MU_POWER_CAPA = 60, + WLAN_EID_EXT_EHT_OPERATION = 106, + WLAN_EID_EXT_EHT_MULTI_LINK = 107, + WLAN_EID_EXT_EHT_CAPABILITY = 108, + WLAN_EID_EXT_TID_TO_LINK_MAPPING = 109, + WLAN_EID_EXT_BANDWIDTH_INDICATION = 135, }; -enum ieee80211_rssi_event_data { - RSSI_EVENT_HIGH = 0, - RSSI_EVENT_LOW = 1, +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 ieee80211_mlme_event_data { - AUTH_EVENT = 0, - ASSOC_EVENT = 1, - DEAUTH_RX_EVENT = 2, - DEAUTH_TX_EVENT = 3, +struct hash_alg_common { + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; }; -enum ieee80211_mlme_event_status { - MLME_SUCCESS = 0, - MLME_DENIED = 1, - MLME_TIMEOUT = 2, +struct shash_alg { + int (*init)(struct shash_desc *); + int (*update)(struct shash_desc *, const u8 *, unsigned int); + int (*final)(struct shash_desc *, u8 *); + int (*finup)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*digest)(struct shash_desc *, const u8 *, unsigned int, u8 *); + int (*export)(struct shash_desc *, void *); + int (*import)(struct shash_desc *, const void *); + int (*setkey)(struct crypto_shash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_shash *); + void (*exit_tfm)(struct crypto_shash *); + int (*clone_tfm)(struct crypto_shash *, struct crypto_shash *); + unsigned int descsize; + union { + struct { + unsigned int digestsize; + unsigned int statesize; + struct crypto_alg base; + }; + struct hash_alg_common halg; + }; }; -enum ieee80211_frame_release_type { - IEEE80211_FRAME_RELEASE_PSPOLL = 0, - IEEE80211_FRAME_RELEASE_UAPSD = 1, +struct element { + u8 id; + u8 datalen; + u8 data[0]; }; -enum ieee80211_chanctx_switch_mode { - CHANCTX_SWMODE_REASSIGN_VIF = 0, - CHANCTX_SWMODE_SWAP_CONTEXTS = 1, +struct crypto_skcipher { + unsigned int reqsize; + struct crypto_tfm base; }; -enum ieee80211_reconfig_type { - IEEE80211_RECONFIG_TYPE_RESTART = 0, - IEEE80211_RECONFIG_TYPE_SUSPEND = 1, +struct skcipher_request { + unsigned int cryptlen; + u8 *iv; + struct scatterlist *src; + struct scatterlist *dst; + struct crypto_async_request base; + void *__ctx[0]; }; -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 netlbl_domhsh_tbl { + struct list_head *tbl; + u32 size; }; -enum ieee80211_internal_tkip_state { - TKIP_STATE_NOT_INIT = 0, - TKIP_STATE_PHASE1_DONE = 1, - TKIP_STATE_PHASE1_HW_UPLOADED = 2, -}; +struct netlbl_domaddr_map; -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 cipso_v4_doi; + +struct calipso_doi; + +struct netlbl_dommap_def { + u32 type; + union { + struct netlbl_domaddr_map *addrsel; + struct cipso_v4_doi *cipso; + struct calipso_doi *calipso; + }; }; -struct wiphy_delayed_work { - struct wiphy_work work; - struct wiphy *wiphy; - struct timer_list timer; +struct netlbl_dom_map { + char *domain; + struct netlbl_dommap_def def; + u16 family; + u32 valid; + struct list_head list; + struct callback_head rcu; }; -struct ieee80211_mgd_auth_data; +struct netlbl_domaddr_map { + struct list_head list4; + struct list_head list6; +}; -struct ieee80211_mgd_assoc_data; +struct cipso_v4_std_map_tbl; -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 wiphy_work beacon_connection_loss_work; - struct wiphy_work csa_connection_drop_work; - unsigned long beacon_timeout; - unsigned long probe_timeout; - int probe_send_count; - bool nullfunc_failed; - u8 connection_loss: 1; - u8 driver_disconnect: 1; - u8 reconnect: 1; - u8 associated: 1; - struct ieee80211_mgd_auth_data *auth_data; - struct ieee80211_mgd_assoc_data *assoc_data; - bool powersave; - bool broken_ap; - unsigned int flags; - bool status_acked; - bool status_received; - __le16 status_fc; - enum { - IEEE80211_MFP_DISABLED = 0, - IEEE80211_MFP_OPTIONAL = 1, - IEEE80211_MFP_REQUIRED = 2, - } mfp; - unsigned int uapsd_queues; - unsigned int uapsd_max_sp_len; - u8 use_4addr; - int rssi_min_thold; - int rssi_max_thold; - struct ieee80211_ht_cap ht_capa; - struct ieee80211_ht_cap ht_capa_mask; - struct ieee80211_vht_cap vht_capa; - struct ieee80211_vht_cap vht_capa_mask; - struct ieee80211_s1g_cap s1g_capa; - struct ieee80211_s1g_cap s1g_capa_mask; - u8 tdls_peer[6]; - struct delayed_work tdls_peer_del_work; - struct sk_buff *orig_teardown_skb; - struct sk_buff *teardown_skb; - spinlock_t teardown_lock; - bool tdls_wider_bw_prohibited; - struct ieee80211_sta_tx_tspec tx_tspec[4]; - struct delayed_work tx_tspec_wk; - u8 *assoc_req_ies; - size_t assoc_req_ies_len; - struct wiphy_delayed_work ml_reconf_work; - u16 removed_links; +struct 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 ieee80211_mgd_auth_data { - struct cfg80211_bss *bss; - unsigned long timeout; - int tries; - u16 algorithm; - u16 expected_transaction; - u8 key[13]; - u8 key_len; - u8 key_idx; - bool done; - bool waiting; - bool peer_confirmed; - bool timeout_started; - int link_id; - u8 ap_addr[6]; - u16 sae_trans; - u16 sae_status; - size_t data_len; - u8 data[0]; +struct 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; }; -typedef u32 ieee80211_conn_flags_t; +struct calipso_doi { + u32 doi; + u32 type; + refcount_t refcount; + struct list_head list; + struct callback_head rcu; +}; -struct ieee80211_mgd_assoc_data { - struct { - struct cfg80211_bss *bss; - u8 addr[6]; - u8 ap_ht_param; - struct ieee80211_vht_cap ap_vht_cap; - long: 0; - size_t elems_len; - u8 *elems; - ieee80211_conn_flags_t conn_flags; - u16 status; - bool disabled; - long: 0; - } __attribute__((packed)) link[15]; - u8 ap_addr[6]; - const u8 *supp_rates; - u8 supp_rates_len; - unsigned long timeout; - int tries; - u8 prev_ap_addr[6]; - u8 ssid[32]; - u8 ssid_len; - bool wmm; - bool uapsd; - bool need_beacon; - bool synced; - bool timeout_started; - bool 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 netlbl_af4list { + __be32 addr; + __be32 mask; + u32 valid; + struct list_head list; }; -struct beacon_data; +struct netlbl_domaddr4_map { + struct netlbl_dommap_def def; + struct netlbl_af4list list; +}; -struct ieee80211_if_ibss { - struct timer_list timer; - struct wiphy_work csa_connection_drop_work; - unsigned long last_scan_completed; - u32 basic_rates; - bool fixed_bssid; - bool fixed_channel; - bool privacy; - bool control_port; - bool userspace_handles_dfs; - short: 0; - u8 bssid[6]; - u8 ssid[32]; - u8 ssid_len; - u8 ie_len; - u8 *ie; - struct cfg80211_chan_def chandef; - unsigned long ibss_join_req; - struct beacon_data __attribute__((btf_type_tag("rcu"))) *presp; - struct ieee80211_ht_cap ht_capa; - struct ieee80211_ht_cap ht_capa_mask; - spinlock_t incomplete_lock; - struct list_head incomplete_stations; - enum { - IEEE80211_IBSS_MLME_SEARCH = 0, - IEEE80211_IBSS_MLME_JOINED = 1, - } state; +struct netlbl_af6list { + struct in6_addr addr; + struct in6_addr mask; + u32 valid; + struct list_head list; }; -struct ieee80211_meshconf_ie; +struct netlbl_domaddr6_map { + struct netlbl_dommap_def def; + struct netlbl_af6list list; +}; -struct beacon_data { - u8 *head; - u8 *tail; - int head_len; - int tail_len; - struct ieee80211_meshconf_ie *meshconf; - u16 cntdwn_counter_offsets[2]; - u8 cntdwn_current_counter; - struct cfg80211_mbssid_elems *mbssid_ies; - struct cfg80211_rnr_elems *rnr_ies; - struct callback_head callback_head; +struct netlbl_audit { + u32 secid; + kuid_t loginuid; + unsigned int sessionid; }; -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 netlbl_unlhsh_tbl { + struct list_head *tbl; + u32 size; }; -struct mesh_preq_queue { +struct netlbl_unlhsh_iface { + int ifindex; + struct list_head addr4_list; + struct list_head addr6_list; + u32 valid; struct list_head list; - u8 dst[6]; - u8 flags; + struct callback_head rcu; }; -struct mesh_stats { - __u32 fwded_mcast; - __u32 fwded_unicast; - __u32 fwded_frames; - __u32 dropped_frames_ttl; - __u32 dropped_frames_no_route; +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, }; -struct ps_data { - u8 tim[256]; - struct sk_buff_head bc_buf; - atomic_t num_sta_ps; - int dtim_count; - bool dtim_bc_mc; +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 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 netlbl_unlhsh_addr4 { + u32 secid; + struct netlbl_af4list list; + struct callback_head rcu; }; -struct mesh_tx_cache { - struct rhashtable rht; - struct hlist_head walk_head; - spinlock_t walk_lock; +struct netlbl_unlhsh_addr6 { + u32 secid; + struct netlbl_af6list list; + struct callback_head rcu; }; -struct mesh_rmc; +struct netlbl_lsm_cache; -struct ieee80211_mesh_sync_ops; +struct netlbl_lsm_catmap; -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; - atomic_t mesh_seqnum; - bool accepting_plinks; - int num_gates; - struct beacon_data __attribute__((btf_type_tag("rcu"))) *beacon; - const u8 *ie; - u8 ie_len; - enum { - IEEE80211_MESH_SEC_NONE = 0, - IEEE80211_MESH_SEC_AUTHED = 1, - IEEE80211_MESH_SEC_SECURED = 2, - } security; - bool user_mpm; - const struct ieee80211_mesh_sync_ops *sync_ops; - s64 sync_offset_clockdrift_max; - spinlock_t sync_offset_lock; - enum nl80211_mesh_power_mode nonpeer_pm; - int ps_peers_light_sleep; - int ps_peers_deep_sleep; - struct ps_data ps; - struct mesh_csa_settings __attribute__((btf_type_tag("rcu"))) *csa; - enum { - IEEE80211_MESH_CSA_ROLE_NONE = 0, - IEEE80211_MESH_CSA_ROLE_INIT = 1, - IEEE80211_MESH_CSA_ROLE_REPEATER = 2, - } csa_role; - u8 chsw_ttl; - u16 pre_value; - int meshconf_offset; - struct mesh_table mesh_paths; - struct mesh_table mpp_paths; - int mesh_paths_generation; - int mpp_paths_generation; - struct mesh_tx_cache tx_cache; +struct 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 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 netlbl_lsm_cache { + refcount_t refcount; + void (*free)(const void *); + void *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 netlbl_lsm_catmap { + u32 startbit; + u64 bitmap[4]; + struct netlbl_lsm_catmap *next; }; -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 netlbl_unlhsh_walk_arg { + struct netlink_callback *nl_cb; + struct sk_buff *skb; + u32 seq; }; -struct ieee80211_if_ocb { - struct timer_list housekeeping_timer; - unsigned long wrkq_flags; - spinlock_t incomplete_lock; - struct list_head incomplete_stations; - bool joined; +enum handshake_handler_class { + HANDSHAKE_HANDLER_CLASS_NONE = 0, + HANDSHAKE_HANDLER_CLASS_TLSHD = 1, + HANDSHAKE_HANDLER_CLASS_MAX = 2, }; -struct ieee80211_if_mntr { - u32 flags; - u8 mu_follow_addr[6]; - struct list_head list; +enum hn_flags_bits { + HANDSHAKE_F_NET_DRAINING = 0, }; -struct ieee80211_if_nan { - struct cfg80211_nan_conf conf; - spinlock_t func_lock; - struct idr function_inst_ids; +enum hr_flags_bits { + HANDSHAKE_F_REQ_COMPLETED = 0, + HANDSHAKE_F_REQ_SESSION = 1, }; -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 handshake_proto; -struct ieee80211_fragment_cache { - struct ieee80211_fragment_entry entries[4]; - unsigned int next; +struct handshake_req { + struct list_head hr_list; + struct rhash_head hr_rhash; + unsigned long hr_flags; + const struct handshake_proto *hr_proto; + struct sock *hr_sk; + void (*hr_odestruct)(struct sock *); + char hr_priv[0]; }; -struct ewma_beacon_signal { - unsigned long internal; +struct handshake_proto { + int hp_handler_class; + size_t hp_privsize; + unsigned long hp_flags; + int (*hp_accept)(struct handshake_req *, struct genl_info *, int); + void (*hp_done)(struct handshake_req *, unsigned int, struct genl_info *); + void (*hp_destroy)(struct handshake_req *); }; -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 wiphy_delayed_work chswitch_work; - struct wiphy_work 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; - u8 bss_param_ch_cnt; - struct cfg80211_bss *bss; +struct handshake_net { + spinlock_t hn_lock; + int hn_pending; + int hn_pending_max; + struct list_head hn_requests; + unsigned long hn_flags; }; -struct probe_resp; - -struct fils_discovery_data; +typedef enum { + ZSTD_frame = 0, + ZSTD_skippableFrame = 1, +} ZSTD_frameType_e; -struct unsol_bcast_probe_resp_data; +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; -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; -}; +typedef ZSTD_frameHeader zstd_frame_header; -struct ieee80211_he_mu_edca_param_ac_rec { - u8 aifsn; - u8 ecw_min_max; - u8 mu_edca_timer; -}; +typedef uint16_t U16; -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; -}; +typedef uint8_t BYTE; -struct ieee80211_key; +typedef uint32_t U32; -struct ieee80211_chanctx; +typedef struct { + U16 nextState; + BYTE nbAdditionalBits; + BYTE nbBits; + U32 baseValue; +} ZSTD_seqSymbol; -struct ieee80211_bss_conf; +typedef U32 HUF_DTable; -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; -}; +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; -struct ieee80211_vif_cfg { - bool assoc; - bool ibss_joined; - bool ibss_creator; - bool ps; - u16 aid; - u16 eml_cap; - u16 eml_med_sync_delay; - __be32 arp_addr_list[4]; - int arp_addr_cnt; - u8 ssid[32]; - size_t ssid_len; - bool s1g; - bool idle; - u8 ap_addr[6]; -}; +typedef uint64_t U64; -struct ieee80211_mu_group_data { - u8 membership[8]; - u8 position[16]; -}; +typedef enum { + bt_raw = 0, + bt_rle = 1, + bt_compressed = 2, + bt_reserved = 3, +} blockType_e; -struct ieee80211_p2p_noa_desc { - u8 count; - __le32 duration; - __le32 interval; - __le32 start_time; -} __attribute__((packed)); +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; -struct ieee80211_p2p_noa_attr { - u8 index; - u8 oppps_ctwindow; - struct ieee80211_p2p_noa_desc desc[4]; +struct xxh64_state { + uint64_t total_len; + uint64_t v1; + uint64_t v2; + uint64_t v3; + uint64_t v4; + uint64_t mem64[4]; + uint32_t memsize; }; -struct ieee80211_fils_discovery { - u32 min_interval; - u32 max_interval; -}; +typedef enum { + ZSTD_f_zstd1 = 0, + ZSTD_f_zstd1_magicless = 1, +} ZSTD_format_e; -struct ieee80211_tx_pwr_env { - u8 tx_power_info; - s8 tx_power[8]; -}; +typedef enum { + ZSTD_d_validateChecksum = 0, + ZSTD_d_ignoreChecksum = 1, +} ZSTD_forceIgnoreChecksum_e; -struct ieee80211_vif; +typedef void * (*ZSTD_allocFunction)(void *, size_t); -struct ieee80211_ftm_responder_params; +typedef void (*ZSTD_freeFunction)(void *, void *); -struct ieee80211_chanctx_conf; +typedef struct { + ZSTD_allocFunction customAlloc; + ZSTD_freeFunction customFree; + void *opaque; +} ZSTD_customMem; -struct ieee80211_bss_conf { - struct ieee80211_vif *vif; - 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 ht_ldpc; - bool vht_ldpc; - bool he_ldpc; - bool vht_su_beamformer; - bool vht_su_beamformee; - bool vht_mu_beamformer; - bool vht_mu_beamformee; - bool he_su_beamformer; - bool he_su_beamformee; - bool he_mu_beamformer; - bool he_full_ul_mumimo; - bool eht_su_beamformer; - bool eht_su_beamformee; - bool eht_mu_beamformer; -}; +typedef enum { + ZSTD_use_indefinitely = -1, + ZSTD_dont_use = 0, + ZSTD_use_once = 1, +} ZSTD_dictUses_e; -struct ieee80211_txq; +struct ZSTD_DDict_s; -struct ieee80211_vif { - enum nl80211_iftype type; - struct ieee80211_vif_cfg cfg; - struct ieee80211_bss_conf bss_conf; - struct ieee80211_bss_conf __attribute__((btf_type_tag("rcu"))) *link_conf[15]; - u16 valid_links; - u16 active_links; - u16 dormant_links; - 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]; -}; +typedef struct ZSTD_DDict_s ZSTD_DDict; -struct ieee80211_local; +typedef struct { + const ZSTD_DDict **ddictPtrTable; + size_t ddictPtrTableSize; + size_t ddictPtrCount; +} ZSTD_DDictHashSet; -struct mac80211_qos_map; +typedef enum { + ZSTD_rmd_refSingleDDict = 0, + ZSTD_rmd_refMultipleDDicts = 1, +} ZSTD_refMultipleDDicts_e; -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 wiphy_work work; - struct sk_buff_head skb_queue; - struct sk_buff_head status_queue; - struct ieee80211_if_ap *bss; - u32 rc_rateidx_mask[6]; - bool rc_has_mcs_mask[6]; - u8 rc_rateidx_mcs_mask[60]; - bool rc_has_vht_mcs_mask[6]; - u16 rc_rateidx_vht_mcs_mask[48]; - u32 beacon_rateidx_mask[6]; - bool beacon_rate_set; - union { - struct ieee80211_if_ap ap; - struct ieee80211_if_vlan vlan; - struct ieee80211_if_managed mgd; - struct ieee80211_if_ibss ibss; - struct ieee80211_if_mesh mesh; - struct ieee80211_if_ocb ocb; - struct ieee80211_if_mntr mntr; - struct ieee80211_if_nan nan; - } u; - struct ieee80211_link_data deflink; - struct ieee80211_link_data __attribute__((btf_type_tag("rcu"))) *link[15]; - struct work_struct activate_links_work; - u16 desired_active_links; - struct ieee80211_vif vif; -}; +typedef enum { + zdss_init = 0, + zdss_loadHeader = 1, + zdss_read = 2, + zdss_load = 3, + zdss_flush = 4, +} ZSTD_dStreamStage; -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; -}; +typedef enum { + ZSTD_bm_buffered = 0, + ZSTD_bm_stable = 1, +} ZSTD_bufferMode_e; -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 ZSTD_outBuffer_s { + void *dst; + size_t size; + size_t pos; }; -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 struct ZSTD_outBuffer_s ZSTD_outBuffer; -typedef u32 codel_time_t; +typedef enum { + ZSTD_not_in_dst = 0, + ZSTD_in_dst = 1, + ZSTD_split = 2, +} ZSTD_litLocation_e; -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 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; }; -struct rhltable { - struct rhashtable ht; -}; +typedef struct ZSTD_DCtx_s ZSTD_DCtx; -struct arc4_ctx { - u32 S[256]; - u32 x; - u32 y; -}; +typedef ZSTD_DCtx ZSTD_DStream; -struct led_classdev; +typedef ZSTD_DStream zstd_dstream; -struct led_hw_trigger_type; +typedef ZSTD_outBuffer zstd_out_buffer; -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 ZSTD_inBuffer_s { + const void *src; + size_t size; + size_t pos; }; -struct codel_vars; +typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; -struct ieee80211_ops; +typedef ZSTD_inBuffer zstd_in_buffer; -struct rate_control_ref; +typedef ZSTD_DCtx zstd_dctx; -struct ieee80211_scan_request; +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 tpt_led_trigger; +typedef ZSTD_ErrorCode zstd_error_code; -struct ieee80211_local { - struct ieee80211_hw hw; - struct fq fq; - struct codel_vars *cvars; - struct codel_params cparams; - spinlock_t active_txq_lock[4]; - struct list_head active_txqs[4]; - u16 schedule_round[4]; - spinlock_t handle_wake_tx_queue_lock; - u16 airtime_flags; - u32 aql_txq_limit_low[4]; - u32 aql_txq_limit_high[4]; - u32 aql_threshold; - atomic_t aql_total_pending_airtime; - atomic_t aql_ac_pending_airtime[4]; - const struct ieee80211_ops *ops; - struct workqueue_struct *workqueue; - unsigned long queue_stop_reasons[16]; - int q_stop_reasons[176]; - spinlock_t queue_stop_reason_lock; - int open_count; - int monitors; - int cooked_mntrs; - int fif_fcsfail; - int fif_plcpfail; - int fif_control; - int fif_other_bss; - int fif_pspoll; - int fif_probe_req; - bool probe_req_reg; - bool rx_mcast_action_reg; - unsigned int filter_flags; - bool wiphy_ciphers_allocated; - 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 reconfig_failure; - 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 ida_bitmap { + unsigned long bitmap[16]; }; -struct fq_tin; - -struct fq_flow { - struct fq_tin *tin; - struct list_head flowchain; - struct sk_buff_head queue; - u32 backlog; - int deficit; +struct uevent_sock { + struct list_head list; + struct sock *sk; }; -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; +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 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 nsset { + unsigned int flags; + struct nsproxy *nsproxy; + struct fs_struct *fs; + const struct cred *cred; }; -struct ieee80211_tx_control; +typedef void (*btf_trace_initcall_level)(void *, const char *); -struct ieee80211_sta; +typedef int (*initcall_t)(); -struct ieee80211_key_conf; +typedef void (*btf_trace_initcall_start)(void *, initcall_t); -struct ieee80211_scan_ies; +typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int); -struct ieee80211_low_level_stats; +typedef int initcall_entry_t; -struct ieee80211_key_seq; +struct trace_event_raw_initcall_level { + struct trace_entry ent; + u32 __data_loc_level; + char __data[0]; +}; -struct ieee80211_ampdu_params; +struct trace_event_raw_initcall_start { + struct trace_entry ent; + initcall_t func; + char __data[0]; +}; -struct ieee80211_channel_switch; +struct trace_event_raw_initcall_finish { + struct trace_entry ent; + initcall_t func; + int ret; + char __data[0]; +}; -struct ieee80211_event; +struct blacklist_entry { + struct list_head next; + char *buf; +}; -struct ieee80211_prep_tx_info; +struct trace_event_data_offsets_initcall_level { + u32 level; +}; -struct ieee80211_vif_chanctx_switch; +struct trace_event_data_offsets_initcall_start {}; -struct ieee80211_tdls_ch_sw_params; +struct trace_event_data_offsets_initcall_finish {}; -struct ieee80211_twt_setup; +enum insn_mode { + INSN_MODE_32 = 0, + INSN_MODE_64 = 1, + INSN_MODE_KERN = 2, + INSN_NUM_MODES = 3, +}; -struct ieee80211_ops { - void (*tx)(struct ieee80211_hw *, struct ieee80211_tx_control *, struct sk_buff *); - int (*start)(struct ieee80211_hw *); - void (*stop)(struct ieee80211_hw *); - int (*suspend)(struct ieee80211_hw *, struct cfg80211_wowlan *); - int (*resume)(struct ieee80211_hw *); - void (*set_wakeup)(struct ieee80211_hw *, bool); - int (*add_interface)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*change_interface)(struct ieee80211_hw *, struct ieee80211_vif *, enum nl80211_iftype, bool); - void (*remove_interface)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*config)(struct ieee80211_hw *, u32); - void (*bss_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64); - void (*vif_cfg_changed)(struct ieee80211_hw *, struct ieee80211_vif *, u64); - void (*link_info_changed)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *, u64); - int (*start_ap)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); - void (*stop_ap)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_bss_conf *); - u64 (*prepare_multicast)(struct ieee80211_hw *, struct netdev_hw_addr_list *); - void (*configure_filter)(struct ieee80211_hw *, unsigned int, unsigned int *, u64); - void (*config_iface_filter)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int, unsigned int); - int (*set_tim)(struct ieee80211_hw *, struct ieee80211_sta *, bool); - int (*set_key)(struct ieee80211_hw *, enum set_key_cmd, struct ieee80211_vif *, struct ieee80211_sta *, struct ieee80211_key_conf *); - void (*update_tkip_key)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_key_conf *, struct ieee80211_sta *, u32, u16 *); - void (*set_rekey_data)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_gtk_rekey_data *); - void (*set_default_unicast_key)(struct ieee80211_hw *, struct ieee80211_vif *, int); - int (*hw_scan)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_scan_request *); - void (*cancel_hw_scan)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*sched_scan_start)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_sched_scan_request *, struct ieee80211_scan_ies *); - int (*sched_scan_stop)(struct ieee80211_hw *, struct ieee80211_vif *); - void (*sw_scan_start)(struct ieee80211_hw *, struct ieee80211_vif *, const u8 *); - void (*sw_scan_complete)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*get_stats)(struct ieee80211_hw *, struct ieee80211_low_level_stats *); - void (*get_key_seq)(struct ieee80211_hw *, struct ieee80211_key_conf *, struct ieee80211_key_seq *); - int (*set_frag_threshold)(struct ieee80211_hw *, u32); - int (*set_rts_threshold)(struct ieee80211_hw *, u32); - int (*sta_add)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - int (*sta_remove)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - void (*sta_notify)(struct ieee80211_hw *, struct ieee80211_vif *, enum sta_notify_cmd, struct ieee80211_sta *); - int (*sta_set_txpwr)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - int (*sta_state)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, enum ieee80211_sta_state, enum ieee80211_sta_state); - void (*sta_pre_rcu_remove)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - void (*sta_rc_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, u32); - void (*sta_rate_tbl_update)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - void (*sta_statistics)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *, struct station_info *); - int (*conf_tx)(struct ieee80211_hw *, struct ieee80211_vif *, unsigned int, u16, const struct ieee80211_tx_queue_params *); - u64 (*get_tsf)(struct ieee80211_hw *, struct ieee80211_vif *); - void (*set_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, u64); - void (*offset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *, s64); - void (*reset_tsf)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*tx_last_beacon)(struct ieee80211_hw *); - int (*ampdu_action)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_ampdu_params *); - int (*get_survey)(struct ieee80211_hw *, int, struct survey_info *); - void (*rfkill_poll)(struct ieee80211_hw *); - void (*set_coverage_class)(struct ieee80211_hw *, s16); - void (*flush)(struct ieee80211_hw *, struct ieee80211_vif *, u32, bool); - void (*flush_sta)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_sta *); - void (*channel_switch)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel_switch *); - int (*set_antenna)(struct ieee80211_hw *, u32, u32); - int (*get_antenna)(struct ieee80211_hw *, u32 *, u32 *); - int (*remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_channel *, int, enum ieee80211_roc_type); - int (*cancel_remain_on_channel)(struct ieee80211_hw *, struct ieee80211_vif *); - int (*set_ringparam)(struct ieee80211_hw *, u32, u32); - void (*get_ringparam)(struct ieee80211_hw *, u32 *, u32 *, u32 *, u32 *); - bool (*tx_frames_pending)(struct ieee80211_hw *); - int (*set_bitrate_mask)(struct ieee80211_hw *, struct ieee80211_vif *, const struct cfg80211_bitrate_mask *); - void (*event_callback)(struct ieee80211_hw *, struct ieee80211_vif *, const struct ieee80211_event *); - void (*allow_buffered_frames)(struct ieee80211_hw *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool); - void (*release_buffered_frames)(struct ieee80211_hw *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool); - int (*get_et_sset_count)(struct ieee80211_hw *, struct ieee80211_vif *, int); - void (*get_et_stats)(struct ieee80211_hw *, struct ieee80211_vif *, struct ethtool_stats *, u64 *); - void (*get_et_strings)(struct ieee80211_hw *, struct ieee80211_vif *, u32, u8 *); - void (*mgd_prepare_tx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_prep_tx_info *); - void (*mgd_complete_tx)(struct ieee80211_hw *, struct ieee80211_vif *, struct ieee80211_prep_tx_info *); - void (*mgd_protect_tdls_discover)(struct ieee80211_hw *, struct ieee80211_vif *); - 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); - int (*set_hw_timestamp)(struct ieee80211_hw *, struct ieee80211_vif *, struct cfg80211_set_hw_timestamp *); - int (*net_setup_tc)(struct ieee80211_hw *, struct ieee80211_vif *, struct net_device *, enum tc_setup_type, void *); -}; - -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]; +enum jump_label_type { + JUMP_LABEL_NOP = 0, + JUMP_LABEL_JMP = 1, }; -struct ieee80211_sta_txpwr { - s16 power; - enum nl80211_tx_power_setting type; +struct jump_label_patch { + const void *code; + int size; }; -struct ieee80211_link_sta { - struct ieee80211_sta *sta; - u8 addr[6]; - u8 link_id; - long: 0; - enum ieee80211_smps_mode smps_mode; - u32 supp_rates[6]; - struct ieee80211_sta_ht_cap ht_cap; - int: 0; - struct ieee80211_sta_vht_cap vht_cap; - struct ieee80211_sta_he_cap he_cap; - struct ieee80211_he_6ghz_capa he_6ghz_capa; - struct ieee80211_sta_eht_cap eht_cap; - struct ieee80211_sta_aggregates agg; - u8 rx_nss; - long: 0; - enum ieee80211_sta_rx_bandwidth bandwidth; - struct ieee80211_sta_txpwr txpwr; - long: 0; +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 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; - long: 0; - struct ieee80211_link_sta deflink; - struct ieee80211_link_sta __attribute__((btf_type_tag("rcu"))) *link[15]; - u8 drv_priv[0]; +struct mmap_arg_struct32 { + unsigned int addr; + unsigned int len; + unsigned int prot; + unsigned int flags; + unsigned int fd; + unsigned int offset; }; -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 kernel_clone_args { + u64 flags; + int __attribute__((btf_type_tag("user"))) *pidfd; + int __attribute__((btf_type_tag("user"))) *child_tid; + int __attribute__((btf_type_tag("user"))) *parent_tid; + const char *name; + int exit_signal; + u32 kthread: 1; + u32 io_thread: 1; + u32 user_worker: 1; + u32 no_files: 1; + unsigned long stack; + unsigned long stack_size; + unsigned long tls; + pid_t *set_tid; + size_t set_tid_size; + int cgroup; + int idle; + int (*fn)(void *); + void *fn_arg; + struct cgroup *cgrp; + struct css_set *cset; }; -struct ieee80211_txq { - struct ieee80211_vif *vif; - struct ieee80211_sta *sta; - u8 tid; - u8 ac; - long: 0; - u8 drv_priv[0]; +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 ieee80211_ftm_responder_params { - const u8 *lci; - const u8 *civicloc; - size_t lci_len; - size_t civicloc_len; +struct stack_info { + enum stack_type type; + unsigned long *begin; + unsigned long *end; + unsigned long *next_sp; }; -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: 0; - u8 drv_priv[0]; +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 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 stack_frame_user { + const void __attribute__((btf_type_tag("user"))) *next_fp; + unsigned long ret_addr; }; -struct ieee80211_scan_ies { - const u8 *ies[6]; - size_t len[6]; - const u8 *common_ies; - size_t common_ie_len; +typedef bool (*stack_trace_consume_fn)(void *, unsigned long); + +struct var_mtrr_range_state { + unsigned long base_pfn; + unsigned long size_pfn; + mtrr_type type; }; -struct ieee80211_scan_request { - struct ieee80211_scan_ies ies; - struct cfg80211_scan_request req; +struct microcode_header_intel { + unsigned int hdrver; + unsigned int rev; + unsigned int date; + unsigned int sig; + unsigned int cksum; + unsigned int ldrver; + unsigned int pf; + unsigned int datasize; + unsigned int totalsize; + unsigned int metasize; + unsigned int min_req_ver; + unsigned int reserved; }; -struct ieee80211_low_level_stats { - unsigned int dot11ACKFailureCount; - unsigned int dot11RTSFailureCount; - unsigned int dot11FCSErrorCount; - unsigned int dot11RTSSuccessCount; +struct microcode_intel { + struct microcode_header_intel hdr; + unsigned int bits[0]; }; -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; - }; +enum ucode_state { + UCODE_OK = 0, + UCODE_NEW = 1, + UCODE_NEW_SAFE = 2, + UCODE_UPDATED = 3, + UCODE_NFOUND = 4, + UCODE_ERROR = 5, + UCODE_TIMEOUT = 6, + UCODE_OFFLINE = 7, }; -struct 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 cpu_signature; + +struct microcode_ops { + enum ucode_state (*request_microcode_fw)(int, struct device *); + void (*microcode_fini_cpu)(int); + enum ucode_state (*apply_microcode)(int); + int (*collect_cpu_info)(int, struct cpu_signature *); + void (*finalize_late_load)(int); + unsigned int nmi_safe: 1; + unsigned int use_nmi: 1; }; -struct ieee80211_channel_switch { - u64 timestamp; - u32 device_timestamp; - bool block_tx; - struct cfg80211_chan_def chandef; - u8 count; - u32 delay; +struct cpu_signature { + unsigned int sig; + unsigned int pf; + unsigned int rev; }; -struct ieee80211_rssi_event { - enum ieee80211_rssi_event_data data; +struct extended_signature { + unsigned int sig; + unsigned int pf; + unsigned int cksum; }; -struct ieee80211_mlme_event { - enum ieee80211_mlme_event_data data; - enum ieee80211_mlme_event_status status; - u16 reason; +struct extended_sigtable { + unsigned int count; + unsigned int cksum; + unsigned int reserved[3]; + struct extended_signature sigs[0]; }; -struct ieee80211_ba_event { - struct ieee80211_sta *sta; - u16 tid; - u16 ssn; +struct cpio_data { + void *data; + size_t size; + char name[18]; }; -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 ucode_cpu_info { + struct cpu_signature cpu_sig; + void *mc; }; -struct ieee80211_prep_tx_info { - u16 duration; - u16 subtype; - u8 success: 1; +struct firmware { + size_t size; + const u8 *data; + void *priv; }; -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 early_load_data { + u32 old_rev; + u32 new_rev; }; -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; +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, }; -struct ieee80211_twt_setup { - u8 dialog_token; - u8 element_id; - u8 length; - u8 control; - u8 params[0]; +struct pci_hostbridge_probe { + u32 bus; + u32 slot; + u32 vendor; + u32 device; }; -struct rate_control_ops; +typedef void (*swap_func_t)(void *, void *, int); -struct rate_control_ref { - const struct rate_control_ops *ops; - void *priv; +struct kcore_list { + struct list_head list; + unsigned long addr; + size_t size; + int type; }; -struct ieee80211_tx_status; - -struct ieee80211_tx_rate_control; +enum page_cache_mode { + _PAGE_CACHE_MODE_WB = 0, + _PAGE_CACHE_MODE_WC = 1, + _PAGE_CACHE_MODE_UC_MINUS = 2, + _PAGE_CACHE_MODE_UC = 3, + _PAGE_CACHE_MODE_WT = 4, + _PAGE_CACHE_MODE_WP = 5, + _PAGE_CACHE_MODE_NUM = 8, +}; -struct 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 *); +enum kcore_type { + KCORE_TEXT = 0, + KCORE_VMALLOC = 1, + KCORE_RAM = 2, + KCORE_VMEMMAP = 3, + KCORE_USER = 4, }; -struct ieee80211_tx_info; +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, +}; -struct ieee80211_rate_status; +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 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; +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 ieee80211_tx_rate { - s8 idx; - u16 count: 5; - u16 flags: 11; -} __attribute__((packed)); +typedef u32 __compat_uid32_t; -struct ieee80211_tx_info { - u32 flags; - u32 band: 3; - u32 ack_frame_id: 13; - u32 hw_queue: 4; - u32 tx_time_est: 10; +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 { - 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; + 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; }; - struct ieee80211_vif *vif; - struct ieee80211_key_conf *hw_key; - u32 flags; - codel_time_t enqueue_time; - } control; - struct { - u64 cookie; - } ack; + } _sigfault; 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; + compat_long_t _band; + int _fd; + } _sigpoll; struct { - struct ieee80211_tx_rate driver_rates[4]; - u8 pad[4]; - void *rate_driver_data[3]; - }; - void *driver_data[5]; - }; + compat_uptr_t _call_addr; + int _syscall; + unsigned int _arch; + } _sigsys; + } _sifields; }; -struct ieee80211_rate_status { - struct rate_info rate_idx; - u8 try_count; - u8 tx_power_idx; +struct compat_iovec { + compat_uptr_t iov_base; + compat_size_t iov_len; }; -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; +struct siginfo { + union { + struct { + int si_signo; + int si_errno; + int si_code; + union __sifields _sifields; + }; + int _si_pad[32]; + }; }; -struct led_pattern; +typedef struct siginfo siginfo_t; -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; - unsigned long delayed_delay_on; - unsigned long delayed_delay_off; - 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; - const char *hw_control_trigger; - int (*hw_control_is_supported)(struct led_classdev *, unsigned long); - int (*hw_control_set)(struct led_classdev *, unsigned long); - int (*hw_control_get)(struct led_classdev *, unsigned long *); - struct device * (*hw_control_get_device)(struct led_classdev *); - struct mutex led_access; +struct ptrace_rseq_configuration { + __u64 rseq_abi_pointer; + __u32 rseq_abi_size; + __u32 signature; + __u32 flags; + __u32 pad; }; -struct led_pattern { - u32 delta_t; - int brightness; +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 led_hw_trigger_type { - int dummy; +struct ptrace_peeksiginfo_args { + __u64 off; + __u32 flags; + __s32 nr; }; -struct ieee80211_tpt_blink; +typedef struct compat_siginfo compat_siginfo_t; -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 user_regset; -struct ieee80211_tpt_blink { - int throughput; - int blink_time; -}; +struct membuf; -struct tkip_ctx { - u16 p1k[5]; - u32 p1k_iv32; - enum ieee80211_internal_tkip_state state; +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 tkip_ctx_rx { - struct tkip_ctx ctx; - u32 iv32; - u16 iv16; +struct membuf { + void *p; + size_t left; }; -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 user_regset_view { + const char *name; + const struct user_regset *regsets; + unsigned int n; + u32 e_flags; + u16 e_machine; + u8 ei_osabi; }; -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; +enum cons_flags { + CON_PRINTBUFFER = 1, + CON_CONSDEV = 2, + CON_ENABLED = 4, + CON_BOOT = 8, + CON_ANYTIME = 16, + CON_BRL = 32, + CON_EXTENDED = 64, + CON_SUSPENDED = 128, + CON_NBCON = 256, }; -struct tid_ampdu_rx; +struct prb_desc; -struct tid_ampdu_tx; +struct printk_info; -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 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 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 prb_data_ring { + unsigned int size_bits; + char *data; + atomic_long_t head_lpos; + atomic_long_t tail_lpos; }; -struct ewma_signal { - unsigned long internal; +struct printk_ringbuffer { + struct prb_desc_ring desc_ring; + struct prb_data_ring text_data_ring; + atomic_long_t fail; }; -struct ewma_avg_signal { - unsigned long internal; +struct prb_data_blk_lpos { + unsigned long begin; + unsigned long next; }; -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 prb_desc { + atomic_long_t state_var; + struct prb_data_blk_lpos text_blk_lpos; }; -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 dev_printk_info { + char subsystem[16]; + char device[48]; }; -struct ieee80211_fast_tx { - struct ieee80211_key *key; - u8 hdr_len; - u8 sa_offs; - u8 da_offs; - u8 pn_offs; - u8 band; - short: 0; - u8 hdr[56]; - struct callback_head callback_head; +struct 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 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 printk_buffers { + char outbuf[2048]; + char scratchbuf[1024]; }; -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 nbcon_state { + union { + unsigned int atom; + struct { + unsigned int prio: 2; + unsigned int req_prio: 2; + unsigned int unsafe: 1; + unsigned int unsafe_takeover: 1; + unsigned int cpu: 24; + }; + }; }; -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; +enum { + IRQTF_RUNTHREAD = 0, + IRQTF_WARNED = 1, + IRQTF_AFFINITY = 2, + IRQTF_FORCED_THREAD = 3, + IRQTF_READY = 4, }; -struct mac80211_qos_map { - struct cfg80211_qos_map qos_map; - struct callback_head callback_head; +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 ieee80211_chanctx_replace_state { - IEEE80211_CHANCTX_REPLACE_NONE = 0, - IEEE80211_CHANCTX_WILL_BE_REPLACED = 1, - IEEE80211_CHANCTX_REPLACES_OTHER = 2, +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 ieee80211_chanctx_mode { - IEEE80211_CHANCTX_SHARED = 0, - IEEE80211_CHANCTX_EXCLUSIVE = 1, +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 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; +enum { + IRQC_IS_HARDIRQ = 0, + IRQC_IS_NESTED = 1, }; -struct probe_resp { - struct callback_head callback_head; - int len; - u16 cntdwn_counter_offsets[2]; - u8 data[0]; +enum { + _IRQ_DEFAULT_INIT_FLAGS = 0, + _IRQ_PER_CPU = 512, + _IRQ_LEVEL = 256, + _IRQ_NOPROBE = 1024, + _IRQ_NOREQUEST = 2048, + _IRQ_NOTHREAD = 65536, + _IRQ_NOAUTOEN = 4096, + _IRQ_MOVE_PCNTXT = 16384, + _IRQ_NO_BALANCING = 8192, + _IRQ_NESTED_THREAD = 32768, + _IRQ_PER_CPU_DEVID = 131072, + _IRQ_IS_POLLED = 262144, + _IRQ_DISABLE_UNLAZY = 524288, + _IRQ_HIDDEN = 1048576, + _IRQ_NO_DEBUG = 2097152, + _IRQF_MODIFY_MASK = 2096911, }; -struct fils_discovery_data { - struct callback_head callback_head; - int len; - u8 data[0]; -}; +struct io_tlb_area; -struct unsol_bcast_probe_resp_data { - struct callback_head callback_head; - int len; - u8 data[0]; -}; +struct io_tlb_slot; -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 io_tlb_pool { + phys_addr_t start; + phys_addr_t end; + void *vaddr; + unsigned long nslabs; + bool late_alloc; + unsigned int nareas; + unsigned int area_nslabs; + struct io_tlb_area *areas; + struct io_tlb_slot *slots; }; -struct mesh_csa_settings { - struct callback_head callback_head; - struct cfg80211_csa_settings settings; +struct io_tlb_mem { + struct io_tlb_pool defpool; + unsigned long nslabs; + struct dentry *debugfs; + bool force_bounce; + bool for_alloc; + atomic_long_t total_used; + atomic_long_t used_hiwater; }; -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, +struct io_tlb_area { + unsigned long used; + unsigned int index; + spinlock_t lock; }; -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, +struct io_tlb_slot { + phys_addr_t orig_addr; + size_t alloc_size; + unsigned int list; }; -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, -}; +typedef void (*btf_trace_swiotlb_bounced)(void *, struct device *, dma_addr_t, size_t); -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 cc_attr { + CC_ATTR_MEM_ENCRYPT = 0, + CC_ATTR_HOST_MEM_ENCRYPT = 1, + CC_ATTR_GUEST_MEM_ENCRYPT = 2, + CC_ATTR_GUEST_STATE_ENCRYPT = 3, + CC_ATTR_GUEST_UNROLL_STRING_IO = 4, + CC_ATTR_GUEST_SEV_SNP = 5, + CC_ATTR_HOTPLUG_DISABLED = 6, }; -enum 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, +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]; }; -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, +struct trace_event_data_offsets_swiotlb_bounced { + u32 dev_name; }; -enum ieee80211_pub_actioncode { - WLAN_PUB_ACTION_20_40_BSS_COEX = 0, - WLAN_PUB_ACTION_DSE_ENABLEMENT = 1, - WLAN_PUB_ACTION_DSE_DEENABLEMENT = 2, - WLAN_PUB_ACTION_DSE_REG_LOC_ANN = 3, - WLAN_PUB_ACTION_EXT_CHANSW_ANN = 4, - WLAN_PUB_ACTION_DSE_MSMT_REQ = 5, - WLAN_PUB_ACTION_DSE_MSMT_RESP = 6, - WLAN_PUB_ACTION_MSMT_PILOT = 7, - WLAN_PUB_ACTION_DSE_PC = 8, - WLAN_PUB_ACTION_VENDOR_SPECIFIC = 9, - WLAN_PUB_ACTION_GAS_INITIAL_REQ = 10, - WLAN_PUB_ACTION_GAS_INITIAL_RESP = 11, - WLAN_PUB_ACTION_GAS_COMEBACK_REQ = 12, - WLAN_PUB_ACTION_GAS_COMEBACK_RESP = 13, - WLAN_PUB_ACTION_TDLS_DISCOVER_RES = 14, - WLAN_PUB_ACTION_LOC_TRACK_NOTI = 15, - WLAN_PUB_ACTION_QAB_REQUEST_FRAME = 16, - WLAN_PUB_ACTION_QAB_RESPONSE_FRAME = 17, - WLAN_PUB_ACTION_QMF_POLICY = 18, - WLAN_PUB_ACTION_QMF_POLICY_CHANGE = 19, - WLAN_PUB_ACTION_QLOAD_REQUEST = 20, - WLAN_PUB_ACTION_QLOAD_REPORT = 21, - WLAN_PUB_ACTION_HCCA_TXOP_ADVERT = 22, - WLAN_PUB_ACTION_HCCA_TXOP_RESPONSE = 23, - WLAN_PUB_ACTION_PUBLIC_KEY = 24, - WLAN_PUB_ACTION_CHANNEL_AVAIL_QUERY = 25, - WLAN_PUB_ACTION_CHANNEL_SCHEDULE_MGMT = 26, - WLAN_PUB_ACTION_CONTACT_VERI_SIGNAL = 27, - WLAN_PUB_ACTION_GDD_ENABLEMENT_REQ = 28, - WLAN_PUB_ACTION_GDD_ENABLEMENT_RESP = 29, - WLAN_PUB_ACTION_NETWORK_CHANNEL_CONTROL = 30, - WLAN_PUB_ACTION_WHITE_SPACE_MAP_ANN = 31, - WLAN_PUB_ACTION_FTM_REQUEST = 32, - WLAN_PUB_ACTION_FTM_RESPONSE = 33, - WLAN_PUB_ACTION_FILS_DISCOVERY = 34, -}; +typedef unsigned short __kernel_old_uid_t; -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, -}; +typedef __kernel_old_uid_t old_uid_t; -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, -}; +typedef unsigned short __kernel_old_gid_t; -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, -}; +typedef __kernel_old_gid_t old_gid_t; -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, -}; +typedef void (*btf_trace_cpu_idle)(void *, unsigned int, unsigned int); -enum nl80211_channel_type { - NL80211_CHAN_NO_HT = 0, - NL80211_CHAN_HT20 = 1, - NL80211_CHAN_HT40MINUS = 2, - NL80211_CHAN_HT40PLUS = 3, -}; +typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool); -enum ieee80211_ac_numbers { - IEEE80211_AC_VO = 0, - IEEE80211_AC_VI = 1, - IEEE80211_AC_BE = 2, - IEEE80211_AC_BK = 3, -}; +typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int); -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, -}; +typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32); -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, -}; +typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int); -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, -}; +typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *); -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; -}; +typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int); -struct ieee80211_sec_chan_offs_ie { - u8 sec_chan_offs; -}; +typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int); -struct ieee80211_ch_switch_timing { - __le16 switch_time; - __le16 switch_timeout; -}; +typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool); -struct ieee80211_tdls_lnkie; +typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int); -struct ieee80211_tim_ie; +typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int); -struct ieee80211_vht_operation; +typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int); -struct ieee80211_he_spr; +typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int); -struct ieee80211_mu_edca_param_set; +typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int); -struct ieee80211_rann_ie; +typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int); -struct ieee80211_channel_sw_ie; +typedef void (*btf_trace_pm_qos_add_request)(void *, s32); -struct ieee80211_wide_bw_chansw_ie; +typedef void (*btf_trace_pm_qos_update_request)(void *, s32); -struct ieee80211_timeout_interval_ie; +typedef void (*btf_trace_pm_qos_remove_request)(void *, s32); -struct ieee80211_mesh_chansw_params_ie; +enum pm_qos_req_action { + PM_QOS_ADD_REQ = 0, + PM_QOS_UPDATE_REQ = 1, + PM_QOS_REMOVE_REQ = 2, +}; -struct ieee80211_bss_max_idle_period_ie; +typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int); -struct ieee80211_multiple_bssid_configuration; +typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int); -struct ieee80211_bssid_index; +typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32); -struct ieee80211_addba_ext_ie; +typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32); -struct ieee80211_aid_response_ie; +typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32); -struct ieee802_11_elems { - const u8 *ie_start; - size_t total_len; - u32 crc; - const struct ieee80211_tdls_lnkie *lnk_id; - const struct ieee80211_ch_switch_timing *ch_sw_timing; - const u8 *ext_capab; - const u8 *ssid; - const u8 *supp_rates; - const u8 *ds_params; - const struct ieee80211_tim_ie *tim; - const u8 *rsn; - const u8 *rsnx; - const u8 *erp_info; - const u8 *ext_supp_rates; - const u8 *wmm_info; - const u8 *wmm_param; - const struct ieee80211_ht_cap *ht_cap_elem; - const struct ieee80211_ht_operation *ht_operation; - const struct ieee80211_vht_cap *vht_cap_elem; - const struct ieee80211_vht_operation *vht_operation; - const struct ieee80211_meshconf_ie *mesh_config; - const u8 *he_cap; - const struct ieee80211_he_operation *he_operation; - const struct ieee80211_he_spr *he_spr; - const struct ieee80211_mu_edca_param_set *mu_edca_param_set; - const struct ieee80211_he_6ghz_capa *he_6ghz_capa; - const struct ieee80211_tx_pwr_env *tx_pwr_env[8]; - const u8 *uora_element; - const u8 *mesh_id; - const u8 *peering; - const __le16 *awake_window; - const u8 *preq; - const u8 *prep; - const u8 *perr; - const struct ieee80211_rann_ie *rann; - const struct ieee80211_channel_sw_ie *ch_switch_ie; - const struct ieee80211_ext_chansw_ie *ext_chansw_ie; - const struct ieee80211_wide_bw_chansw_ie *wide_bw_chansw_ie; - const u8 *max_channel_switch_time; - const u8 *country_elem; - const u8 *pwr_constr_elem; - const u8 *cisco_dtpc_elem; - const struct ieee80211_timeout_interval_ie *timeout_int; - const u8 *opmode_notif; - const struct ieee80211_sec_chan_offs_ie *sec_chan_offs; - struct ieee80211_mesh_chansw_params_ie *mesh_chansw_params_ie; - const struct ieee80211_bss_max_idle_period_ie *max_idle_period_ie; - const struct ieee80211_multiple_bssid_configuration *mbssid_config_ie; - const struct ieee80211_bssid_index *bssid_index; - u8 max_bssid_indicator; - u8 dtim_count; - u8 dtim_period; - const struct ieee80211_addba_ext_ie *addba_ext_ie; - const struct ieee80211_s1g_cap *s1g_capab; - const struct ieee80211_s1g_oper_ie *s1g_oper; - const struct ieee80211_s1g_bcn_compat_ie *s1g_bcn_compat; - const struct ieee80211_aid_response_ie *aid_resp; - const struct ieee80211_eht_cap_elem *eht_cap; - const struct ieee80211_eht_operation *eht_operation; - const struct ieee80211_multi_link_elem *ml_basic; - const struct ieee80211_multi_link_elem *ml_reconf; - u8 ext_capab_len; - u8 ssid_len; - u8 supp_rates_len; - u8 tim_len; - u8 rsn_len; - u8 rsnx_len; - u8 ext_supp_rates_len; - u8 wmm_info_len; - u8 wmm_param_len; - u8 he_cap_len; - u8 mesh_id_len; - u8 peering_len; - u8 preq_len; - u8 prep_len; - u8 perr_len; - u8 country_elem_len; - u8 bssid_index_len; - u8 tx_pwr_env_len[8]; - u8 tx_pwr_env_num; - u8 eht_cap_len; - size_t ml_basic_len; - size_t ml_reconf_len; - const struct element *ml_basic_elem; - const struct element *ml_reconf_elem; - 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]; -}; +typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int); -struct ieee80211_tdls_lnkie { - u8 ie_type; - u8 ie_len; - u8 bssid[6]; - u8 init_sta[6]; - u8 resp_sta[6]; +struct trace_event_raw_cpu { + struct trace_entry ent; + u32 state; + u32 cpu_id; + char __data[0]; }; -struct ieee80211_tim_ie { - u8 dtim_count; - u8 dtim_period; - u8 bitmap_ctrl; - u8 virtual_map[1]; +struct trace_event_raw_cpu_idle_miss { + struct trace_entry ent; + u32 cpu_id; + u32 state; + bool below; + char __data[0]; }; -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 trace_event_raw_powernv_throttle { + struct trace_entry ent; + int chip_id; + u32 __data_loc_reason; + int pmax; + char __data[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 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 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 trace_event_raw_cpu_frequency_limits { + struct trace_entry ent; + u32 min_freq; + u32 max_freq; + u32 cpu_id; + char __data[0]; }; -struct ieee80211_wide_bw_chansw_ie { - u8 new_channel_width; - u8 new_center_freq_seg0; - u8 new_center_freq_seg1; +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 ieee80211_timeout_interval_ie { - u8 type; - __le32 value; -} __attribute__((packed)); - -struct ieee80211_mesh_chansw_params_ie { - u8 mesh_ttl; - u8 mesh_flags; - __le16 mesh_reason; - __le16 mesh_pre_value; +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 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 trace_event_raw_suspend_resume { + struct trace_entry ent; + const char *action; + int val; + bool start; + char __data[0]; }; -struct ieee80211_bssid_index { - u8 bssid_index; - u8 dtim_period; - u8 dtim_count; +struct trace_event_raw_wakeup_source { + struct trace_entry ent; + u32 __data_loc_name; + u64 state; + char __data[0]; }; -struct ieee80211_addba_ext_ie { - u8 data; +struct trace_event_raw_clock { + struct trace_entry ent; + u32 __data_loc_name; + u64 state; + u64 cpu_id; + char __data[0]; }; -struct ieee80211_aid_response_ie { - __le16 aid; - u8 switch_count; - __le16 response_int; -} __attribute__((packed)); +struct trace_event_raw_power_domain { + struct trace_entry ent; + u32 __data_loc_name; + u64 state; + u64 cpu_id; + char __data[0]; +}; -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; +struct trace_event_raw_cpu_latency_qos_request { + struct trace_entry ent; + s32 value; + char __data[0]; }; -struct ieee80211_wmm_ac_param { - u8 aci_aifsn; - u8 cw; - __le16 txop_limit; +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 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 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]; }; -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 trace_event_raw_guest_halt_poll_ns { + struct trace_entry ent; + bool grow; + unsigned int new; + unsigned int old; + char __data[0]; }; -struct minmax_sample { - u32 t; - u32 v; +struct trace_event_data_offsets_powernv_throttle { + u32 reason; }; -struct minmax { - struct minmax_sample s[3]; +struct trace_event_data_offsets_device_pm_callback_end { + u32 device; + u32 driver; }; -enum xa_lock_type { - XA_LOCK_IRQ = 1, - XA_LOCK_BH = 2, +struct trace_event_data_offsets_wakeup_source { + u32 name; }; -struct xa_limit { - u32 max; - u32 min; +struct trace_event_data_offsets_clock { + u32 name; }; -struct task_delay_info { - raw_spinlock_t lock; - u64 blkio_start; - u64 blkio_delay; - u64 swapin_start; - u64 swapin_delay; - u32 blkio_count; - u32 swapin_count; - u64 freepages_start; - u64 freepages_delay; - u64 thrashing_start; - u64 thrashing_delay; - u64 compact_start; - u64 compact_delay; - u64 wpcopy_start; - u64 wpcopy_delay; - u64 irq_delay; - u32 freepages_count; - u32 thrashing_count; - u32 compact_count; - u32 wpcopy_count; - u32 irq_count; +struct trace_event_data_offsets_power_domain { + u32 name; }; -typedef void (*btf_trace_initcall_level)(void *, const char *); +struct trace_event_data_offsets_dev_pm_qos_request { + u32 name; +}; -typedef int (*initcall_t)(); +struct trace_event_data_offsets_cpu {}; -typedef void (*btf_trace_initcall_start)(void *, initcall_t); +struct trace_event_data_offsets_cpu_idle_miss {}; -typedef void (*btf_trace_initcall_finish)(void *, initcall_t, int); +struct trace_event_data_offsets_pstate_sample {}; -typedef int initcall_entry_t; +struct trace_event_data_offsets_cpu_frequency_limits {}; -struct trace_event_raw_initcall_level { - struct trace_entry ent; - u32 __data_loc_level; - char __data[0]; +struct trace_event_data_offsets_device_pm_callback_start { + u32 device; + u32 driver; + u32 parent; + u32 pm_ops; }; -struct trace_event_raw_initcall_start { - struct trace_entry ent; - initcall_t func; - char __data[0]; -}; +struct trace_event_data_offsets_suspend_resume {}; -struct trace_event_raw_initcall_finish { - struct trace_entry ent; - initcall_t func; - int ret; - char __data[0]; -}; +struct trace_event_data_offsets_cpu_latency_qos_request {}; -struct blacklist_entry { - struct list_head next; - char *buf; -}; +struct trace_event_data_offsets_pm_qos_update {}; -struct trace_event_data_offsets_initcall_level { - u32 level; -}; +struct trace_event_data_offsets_guest_halt_poll_ns {}; -struct trace_event_data_offsets_initcall_start {}; +enum { + BPF_F_NO_PREALLOC = 1, + BPF_F_NO_COMMON_LRU = 2, + BPF_F_NUMA_NODE = 4, + BPF_F_RDONLY = 8, + BPF_F_WRONLY = 16, + BPF_F_STACK_BUILD_ID = 32, + BPF_F_ZERO_SEED = 64, + BPF_F_RDONLY_PROG = 128, + BPF_F_WRONLY_PROG = 256, + BPF_F_CLONE = 512, + BPF_F_MMAPABLE = 1024, + BPF_F_PRESERVE_ELEMS = 2048, + BPF_F_INNER_MAP = 4096, + BPF_F_LINK = 8192, + BPF_F_PATH_FD = 16384, +}; -struct trace_event_data_offsets_initcall_finish {}; +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, +}; -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: 64; - long: 64; - long: 64; - long: 64; +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 rt_prio_array { - unsigned long bitmap[2]; - struct list_head queue[100]; +enum bpf_jit_poke_reason { + BPF_POKE_REASON_TAIL_CALL = 0, }; -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 prog_poke_elem { + struct list_head list; + struct bpf_prog_aux *aux; }; -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 max_bw; - u64 bw_ratio; +struct bpf_event_entry { + struct perf_event *event; + struct file *perf_file; + struct file *map_file; + struct callback_head rcu; }; -struct cpu_stop_done; +struct bpf_iter_meta; -struct cpu_stop_work { - struct list_head list; - cpu_stop_fn_t fn; - unsigned long caller; - void *arg; - struct cpu_stop_done *done; +struct bpf_iter__bpf_map_elem { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + void *value; + }; }; -struct root_domain; +struct bpf_iter_meta { + union { + struct seq_file *seq; + }; + u64 session_id; + u64 seq_num; +}; -struct sched_domain; +struct bpf_iter_seq_array_map_info { + struct bpf_map *map; + void *percpu_value_buf; + u32 index; +}; -struct balance_callback; +typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int); -struct cpuidle_state; +typedef void (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int); -struct rq { - raw_spinlock_t __lock; - unsigned int nr_running; - unsigned long last_blocked_load_update_tick; - unsigned int has_blocked_load; - long: 64; - call_single_data_t nohz_csd; - unsigned int nohz_tick_stopped; - atomic_t nohz_flags; - unsigned int ttwu_pending; - u64 nr_switches; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct cfs_rq cfs; - struct rt_rq rt; - struct dl_rq dl; - struct 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; - 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; -}; +typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t); -struct dl_bw { - raw_spinlock_t lock; - u64 bw; - u64 total_bw; -}; +typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t); -struct cpudl_item; +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_begin)(void *, int, gfp_t); -struct cpudl { - raw_spinlock_t lock; - int size; - cpumask_var_t free_cpus; - struct cpudl_item *elements; -}; +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_begin)(void *, int, gfp_t); -struct cpupri_vec { - atomic_t count; - cpumask_var_t mask; -}; +typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, unsigned long); -struct cpupri { - struct cpupri_vec pri_to_cpu[101]; - int *cpu_to_pri; -}; +typedef void (*btf_trace_mm_vmscan_memcg_reclaim_end)(void *, unsigned long); -struct perf_domain; +typedef void (*btf_trace_mm_vmscan_memcg_softlimit_reclaim_end)(void *, unsigned long); -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; -}; +typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long, unsigned long, unsigned long long, unsigned long, int); -struct cpudl_item { - u64 dl; - int cpu; - int idx; -}; +typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long, long, long); -struct em_perf_domain; +typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, unsigned long, unsigned long, unsigned long, unsigned long, int); -struct perf_domain { - struct em_perf_domain *em_pd; - struct perf_domain *next; - struct callback_head rcu; -}; +typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *); -struct em_perf_state; +struct reclaim_stat; -struct em_perf_domain { - struct em_perf_state *table; - int nr_perf_states; - unsigned long flags; - unsigned long cpus[0]; -}; +typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, unsigned long, unsigned long, struct reclaim_stat *, int, int); -struct em_perf_state { - unsigned long frequency; - unsigned long power; - unsigned long cost; - unsigned long flags; +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; }; -struct sched_group; +typedef void (*btf_trace_mm_vmscan_lru_shrink_active)(void *, int, unsigned long, unsigned long, unsigned long, unsigned long, int, int); -struct sched_domain_shared; +typedef void (*btf_trace_mm_vmscan_node_reclaim_begin)(void *, int, int, gfp_t); -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]; -}; +typedef void (*btf_trace_mm_vmscan_node_reclaim_end)(void *, unsigned long); -struct sched_group_capacity; +typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int); -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]; +enum vmscan_throttle_state { + VMSCAN_THROTTLE_WRITEBACK = 0, + VMSCAN_THROTTLE_ISOLATED = 1, + VMSCAN_THROTTLE_NOPROGRESS = 2, + VMSCAN_THROTTLE_CONGESTED = 3, + NR_VMSCAN_THROTTLE = 4, }; -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]; +enum pgdat_flags { + PGDAT_DIRTY = 0, + PGDAT_WRITEBACK = 1, + PGDAT_RECLAIM_LOCKED = 2, }; -struct sched_domain_shared { - atomic_t ref; - atomic_t nr_busy_cpus; - int has_idle_cores; - int nr_idle_scan; +enum mapping_flags { + AS_EIO = 0, + AS_ENOSPC = 1, + AS_MM_ALL_LOCKS = 2, + AS_UNEVICTABLE = 3, + AS_EXITING = 4, + AS_NO_WRITEBACK_TAGS = 5, + AS_LARGE_FOLIO_SUPPORT = 6, + AS_RELEASE_ALWAYS = 7, + AS_STABLE_WRITES = 8, }; -struct balance_callback { - struct balance_callback *next; - void (*func)(struct rq *); +enum folio_references { + FOLIOREF_RECLAIM = 0, + FOLIOREF_RECLAIM_CLEAN = 1, + FOLIOREF_KEEP = 2, + FOLIOREF_ACTIVATE = 3, }; -struct cfs_bandwidth {}; - -struct task_group { - struct cgroup_subsys_state css; - struct sched_entity **se; - struct cfs_rq **cfs_rq; - unsigned long shares; - int idle; - long: 64; - 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; +enum ttu_flags { + TTU_SPLIT_HUGE_PMD = 4, + TTU_IGNORE_MLOCK = 8, + TTU_SYNC = 16, + TTU_HWPOISON = 32, + TTU_BATCH_FLUSH = 64, + TTU_RMAP_LOCKED = 128, }; -struct rq_flags { - unsigned long flags; - struct pin_cookie cookie; +enum positive_aop_returns { + AOP_WRITEPAGE_ACTIVATE = 524288, + AOP_TRUNCATED_PAGE = 524289, }; -struct affinity_context { - const struct cpumask *new_mask; - struct cpumask *user_mask; - unsigned int flags; +enum page_memcg_data_flags { + MEMCG_DATA_OBJCGS = 1, + MEMCG_DATA_KMEM = 2, + __NR_MEMCG_DATA_FLAGS = 4, }; -struct update_util_data { - void (*func)(struct update_util_data *, u64, unsigned int); +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, }; -enum numa_topology_type { - NUMA_DIRECT = 0, - NUMA_GLUELESS_MESH = 1, - NUMA_BACKPLANE = 2, +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, }; -typedef const struct cpumask * (*sched_domain_mask_f)(int); - -typedef int (*sched_domain_flags_f)(); - -struct sd_data { - struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; - struct sched_domain_shared * __attribute__((btf_type_tag("percpu"))) *sds; - struct sched_group * __attribute__((btf_type_tag("percpu"))) *sg; - struct sched_group_capacity * __attribute__((btf_type_tag("percpu"))) *sgc; +enum zone_watermarks { + WMARK_MIN = 0, + WMARK_LOW = 1, + WMARK_HIGH = 2, + WMARK_PROMO = 3, + NR_WMARK = 4, }; -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; +enum lruvec_flags { + LRUVEC_CGROUP_CONGESTED = 0, + LRUVEC_NODE_CONGESTED = 1, }; -struct sched_domain_attr { - int relax_domain_level; +enum scan_balance { + SCAN_EQUAL = 0, + SCAN_FRACT = 1, + SCAN_ANON = 2, + SCAN_FILE = 3, }; -struct housekeeping { - cpumask_var_t cpumasks[9]; - unsigned long flags; +enum { + ZONELIST_FALLBACK = 0, + ZONELIST_NOFALLBACK = 1, + MAX_ZONELISTS = 2, }; -struct sched_clock_data { - u64 tick_raw; - u64 tick_gtod; - u64 clock; +enum zone_flags { + ZONE_BOOSTED_WATERMARK = 0, + ZONE_RECLAIM_ACTIVE = 1, + ZONE_BELOW_HIGH = 2, }; -struct kernel_cpustat; - -struct cpuacct { - struct cgroup_subsys_state css; - u64 __attribute__((btf_type_tag("percpu"))) *cpuusage; - struct kernel_cpustat __attribute__((btf_type_tag("percpu"))) *cpustat; +struct trace_event_raw_mm_vmscan_kswapd_sleep { + struct trace_entry ent; + int nid; + char __data[0]; }; -struct kernel_cpustat { - u64 cpustat[10]; +struct trace_event_raw_mm_vmscan_kswapd_wake { + struct trace_entry ent; + int nid; + int zid; + int order; + char __data[0]; }; -struct gov_attr_set { - struct kobject kobj; - struct list_head policy_list; - struct mutex update_lock; - int usage_count; +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 sugov_tunables { - struct gov_attr_set attr_set; - unsigned int rate_limit_us; +struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template { + struct trace_entry ent; + int order; + unsigned long gfp_flags; + char __data[0]; }; -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); +struct trace_event_raw_mm_vmscan_direct_reclaim_end_template { + struct trace_entry ent; + unsigned long nr_reclaimed; + char __data[0]; }; -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 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 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; +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]; }; -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, +struct trace_event_raw_mm_vmscan_lru_isolate { + struct trace_entry ent; + int highest_zoneidx; + int order; + unsigned long nr_requested; + unsigned long nr_scanned; + unsigned long nr_skipped; + unsigned long nr_taken; + int lru; + char __data[0]; }; -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 trace_event_raw_mm_vmscan_write_folio { + struct trace_entry ent; + unsigned long pfn; + int reclaim_flags; + char __data[0]; }; -enum cgroup_subsys_id { - cpuset_cgrp_id = 0, - cpu_cgrp_id = 1, - cpuacct_cgrp_id = 2, - io_cgrp_id = 3, - devices_cgrp_id = 4, - freezer_cgrp_id = 5, - net_cls_cgrp_id = 6, - perf_event_cgrp_id = 7, - net_prio_cgrp_id = 8, - hugetlb_cgrp_id = 9, - pids_cgrp_id = 10, - rdma_cgrp_id = 11, - misc_cgrp_id = 12, - debug_cgrp_id = 13, - CGROUP_SUBSYS_COUNT = 14, +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]; }; -enum cpuacct_stat_index { - CPUACCT_STAT_USER = 0, - CPUACCT_STAT_SYSTEM = 1, - CPUACCT_STAT_NSTATS = 2, +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]; }; -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, +struct trace_event_raw_mm_vmscan_node_reclaim_begin { + struct trace_entry ent; + int nid; + int order; + unsigned long gfp_flags; + char __data[0]; }; -enum cpu_util_type { - FREQUENCY_UTIL = 0, - ENERGY_UTIL = 1, +struct trace_event_raw_mm_vmscan_throttled { + struct trace_entry ent; + int nid; + int usec_timeout; + int usec_delayed; + int reason; + char __data[0]; }; -enum cpu_idle_type { - CPU_IDLE = 0, - CPU_NOT_IDLE = 1, - CPU_NEWLY_IDLE = 2, - CPU_MAX_IDLE_TYPES = 3, +struct migration_target_control { + int nid; + nodemask_t *nmask; + gfp_t gfp_mask; }; -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, +typedef struct pglist_data pg_data_t; + +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; }; -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, +struct mem_cgroup_reclaim_cookie { + pg_data_t *pgdat; + unsigned int generation; }; -enum s_alloc { - sa_rootdomain = 0, - sa_sd = 1, - sa_sd_storage = 2, - sa_none = 3, +typedef enum { + PAGE_KEEP = 0, + PAGE_ACTIVATE = 1, + PAGE_SUCCESS = 2, + PAGE_CLEAN = 3, +} pageout_t; + +typedef struct folio *new_folio_t(struct folio *, unsigned long); + +typedef void free_folio_t(struct folio *, unsigned long); + +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 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[64]; + unsigned int max_huge_pages_node[64]; + unsigned int nr_huge_pages_node[64]; + unsigned int free_huge_pages_node[64]; + unsigned int surplus_huge_pages_node[64]; + struct cftype cgroup_files_dfl[8]; + struct cftype cgroup_files_legacy[10]; + char name[32]; }; -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, +struct node_hstate { + struct kobject *hugepages_kobj; + struct kobject *hstate_kobjs[2]; }; -enum membarrier_cmd_flag { - MEMBARRIER_CMD_FLAG_CPU = 1, +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 { - MEMBARRIER_FLAG_SYNC_CORE = 1, - MEMBARRIER_FLAG_RSEQ = 2, +enum vma_resv_mode { + VMA_NEEDS_RESV = 0, + VMA_COMMIT_RESV = 1, + VMA_END_RESV = 2, + VMA_ADD_RESV = 3, + VMA_DEL_RESV = 4, }; enum { - 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, + MPOL_DEFAULT = 0, + MPOL_PREFERRED = 1, + MPOL_BIND = 2, + MPOL_INTERLEAVE = 3, + MPOL_LOCAL = 4, + MPOL_PREFERRED_MANY = 5, + MPOL_MAX = 6, }; -struct swait_queue { - struct task_struct *task; - struct list_head task_list; +enum string_size_units { + STRING_UNITS_10 = 0, + STRING_UNITS_2 = 1, }; -struct __cmp_key { - const struct cpumask *cpus; - struct cpumask ***masks; - int node; - int cpu; - int w; +enum { + FOLL_TOUCH = 65536, + FOLL_TRIED = 131072, + FOLL_REMOTE = 262144, + FOLL_PIN = 524288, + FOLL_FAST_ONLY = 1048576, + FOLL_UNLOCKABLE = 2097152, }; -struct asym_cap_data { - struct list_head link; - unsigned long capacity; - unsigned long cpus[0]; +struct hugetlb_vma_lock { + struct kref refs; + struct rw_semaphore rw_sema; + struct vm_area_struct *vma; }; -struct sched_attr { - __u32 size; - __u32 sched_policy; - __u64 sched_flags; - __s32 sched_nice; - __u32 sched_priority; - __u64 sched_runtime; - __u64 sched_deadline; - __u64 sched_period; - __u32 sched_util_min; - __u32 sched_util_max; +struct resv_map { + struct kref refs; + spinlock_t lock; + struct list_head regions; + long adds_in_progress; + struct list_head region_cache; + long region_cache_count; + struct rw_semaphore rw_sema; + struct page_counter *reservation_counter; + unsigned long pages_per_hpage; + struct cgroup_subsys_state *css; }; -struct s_data { - struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; - struct root_domain *rd; +struct file_region { + struct list_head link; + long from; + long to; + struct page_counter *reservation_counter; + struct cgroup_subsys_state *css; }; -typedef int wait_bit_action_f(struct wait_bit_key *, int); - -struct timens_offsets { - struct timespec64 monotonic; - struct timespec64 boottime; +struct huge_bootmem_page { + struct list_head list; + struct hstate *hstate; }; -struct time_namespace { - struct user_namespace *user_ns; - struct ucounts *ucounts; - struct ns_common ns; - struct timens_offsets offsets; - struct page *vvar_page; - bool frozen_offsets; +struct hugepage_subpool { + spinlock_t lock; + long count; + long max_hpages; + long used_hpages; + struct hstate *hstate; + long min_hpages; + long rsv_hpages; }; -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 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 futex_pi_state { - struct list_head list; - struct rt_mutex_base pi_mutex; - struct task_struct *owner; - refcount_t refcount; - union futex_key key; -}; +struct hugetlb_cgroup_per_node; -struct futex_waitv { - __u64 val; - __u64 uaddr; - __u32 flags; - __u32 __reserved; +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 hrtimer_sleeper { - struct hrtimer timer; - struct task_struct *task; +struct hugetlb_cgroup_per_node { + unsigned long usage[2]; }; -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 node { + struct device dev; + struct list_head access_list; }; -struct futex_vector { - struct futex_waitv w; - struct futex_q q; -}; +typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *); -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; -}; +typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *); -struct trace_array_cpu; +typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int); -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 void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int); -struct trace_pid_list; +typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int); -struct trace_options; +typedef void (*btf_trace_inode_foreign_history)(void *, struct inode *, struct writeback_control *, unsigned int); -struct trace_func_repeats; +typedef void (*btf_trace_inode_switch_wbs)(void *, struct inode *, struct bdi_writeback *, struct bdi_writeback *); -struct trace_array { +typedef void (*btf_trace_track_foreign_dirty)(void *, struct folio *, struct bdi_writeback *); + +typedef void (*btf_trace_flush_foreign)(void *, struct bdi_writeback *, unsigned int, unsigned int); + +typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *); + +typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *); + +struct wb_writeback_work; + +typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *); + +struct wb_writeback_work { + long nr_pages; + struct super_block *sb; + enum writeback_sync_modes sync_mode; + unsigned int tagged_writepages: 1; + unsigned int for_kupdate: 1; + unsigned int range_cyclic: 1; + unsigned int for_background: 1; + unsigned int for_sync: 1; + unsigned int auto_free: 1; + enum wb_reason reason; struct list_head list; - 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[452]; - struct trace_event_file __attribute__((btf_type_tag("rcu"))) *exit_syscall_files[452]; - 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; - cpumask_var_t pipe_cpumask; - int ref; - int trace_ref; - struct ftrace_ops *ops; - struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_pids; - struct trace_pid_list __attribute__((btf_type_tag("rcu"))) *function_no_pids; - struct list_head func_probes; - struct list_head mod_trace; - struct list_head mod_notrace; - int function_enabled; - int no_filter_buffering_ref; - struct list_head hist_vars; - struct trace_func_repeats __attribute__((btf_type_tag("percpu"))) *last_func_repeats; + struct wb_completion *done; }; -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; -}; +typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *); -union upper_chunk; +typedef void (*btf_trace_writeback_start)(void *, struct bdi_writeback *, struct wb_writeback_work *); -union lower_chunk; +typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *); -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 (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *); -union upper_chunk { - union upper_chunk *next; - union lower_chunk *data[256]; -}; +typedef void (*btf_trace_writeback_pages_written)(void *, long); -union lower_chunk { - union lower_chunk *next; - unsigned long data[256]; -}; +typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *); -struct filter_pred; +typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *); -struct prog_entry { - int target; - int when_to_branch; - struct filter_pred *pred; -}; +typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *); -struct event_subsystem; +typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, unsigned long, int); -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; -}; +typedef void (*btf_trace_global_dirty_state)(void *, unsigned long, unsigned long); -struct event_subsystem { - struct list_head list; - const char *name; - struct event_filter *filter; - int ref_count; -}; +typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, unsigned long, unsigned long); -struct tracer_flags; +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); -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; -}; +typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *); -struct tracer_opt; +typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, unsigned long); -struct tracer_flags { - u32 val; - struct tracer_opt *opts; - struct tracer *trace; -}; +typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, unsigned long); -struct tracer_opt { - const char *name; - u32 bit; -}; +typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *); -struct trace_option_dentry; +typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *); -struct trace_options { - struct tracer *tracer; - struct trace_option_dentry *topts; -}; +typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *); -struct trace_option_dentry { - struct tracer_opt *opt; - struct tracer_flags *flags; - struct trace_array *tr; - struct dentry *entry; -}; +typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *); -struct trace_func_repeats { - unsigned long ip; - unsigned long parent_ip; - unsigned long count; - u64 ts_last_call; -}; +typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *); -enum { - Blktrace_setup = 1, - Blktrace_running = 2, - Blktrace_stopped = 3, +enum cgroup_subsys_id { + cpuset_cgrp_id = 0, + cpu_cgrp_id = 1, + cpuacct_cgrp_id = 2, + io_cgrp_id = 3, + memory_cgrp_id = 4, + devices_cgrp_id = 5, + freezer_cgrp_id = 6, + net_cls_cgrp_id = 7, + perf_event_cgrp_id = 8, + net_prio_cgrp_id = 9, + hugetlb_cgrp_id = 10, + pids_cgrp_id = 11, + rdma_cgrp_id = 12, + misc_cgrp_id = 13, + debug_cgrp_id = 14, + CGROUP_SUBSYS_COUNT = 15, }; -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 wb_state { + WB_registered = 0, + WB_writeback_running = 1, + WB_has_dirty_io = 2, + WB_start_all = 3, }; -enum blktrace_notify { - __BLK_TN_PROCESS = 0, - __BLK_TN_TIMESTAMP = 1, - __BLK_TN_MESSAGE = 2, - __BLK_TN_CGROUP = 256, +enum wb_stat_item { + WB_RECLAIMABLE = 0, + WB_WRITEBACK = 1, + WB_DIRTIED = 2, + WB_WRITTEN = 3, + NR_WB_STAT_ITEMS = 4, }; -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 trace_event_raw_writeback_folio_template { + struct trace_entry ent; + char name[32]; + ino_t ino; + unsigned long index; + char __data[0]; }; -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, +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]; }; -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, +struct trace_event_raw_inode_foreign_history { + struct trace_entry ent; + char name[32]; + ino_t ino; + ino_t cgroup_ino; + unsigned int history; + char __data[0]; }; -enum trace_iterator_flags { - TRACE_ITER_PRINT_PARENT = 1, - TRACE_ITER_SYM_OFFSET = 2, - TRACE_ITER_SYM_ADDR = 4, - TRACE_ITER_VERBOSE = 8, - TRACE_ITER_RAW = 16, - TRACE_ITER_HEX = 32, - TRACE_ITER_BIN = 64, - TRACE_ITER_BLOCK = 128, - TRACE_ITER_FIELDS = 256, - TRACE_ITER_PRINTK = 512, - TRACE_ITER_ANNOTATE = 1024, - TRACE_ITER_USERSTACKTRACE = 2048, - TRACE_ITER_SYM_USEROBJ = 4096, - TRACE_ITER_PRINTK_MSGONLY = 8192, - TRACE_ITER_CONTEXT_INFO = 16384, - TRACE_ITER_LATENCY_FMT = 32768, - TRACE_ITER_RECORD_CMD = 65536, - TRACE_ITER_RECORD_TGID = 131072, - TRACE_ITER_OVERWRITE = 262144, - TRACE_ITER_STOP_ON_FREE = 524288, - TRACE_ITER_IRQ_INFO = 1048576, - TRACE_ITER_MARKERS = 2097152, - TRACE_ITER_EVENT_FORK = 4194304, - TRACE_ITER_PAUSE_ON_TRACE = 8388608, - TRACE_ITER_HASH_PTR = 16777216, - TRACE_ITER_FUNCTION = 33554432, - TRACE_ITER_FUNC_FORK = 67108864, - TRACE_ITER_DISPLAY_GRAPH = 134217728, - TRACE_ITER_STACKTRACE = 268435456, +struct trace_event_raw_inode_switch_wbs { + struct trace_entry ent; + char name[32]; + ino_t ino; + ino_t old_cgroup_ino; + ino_t new_cgroup_ino; + char __data[0]; }; -struct 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 trace_event_raw_track_foreign_dirty { + struct trace_entry ent; + char name[32]; + u64 bdi_id; + ino_t ino; + unsigned int memcg_id; + ino_t cgroup_ino; + ino_t page_cgroup_ino; + char __data[0]; }; -struct blk_user_trace_setup { +struct trace_event_raw_flush_foreign { + struct trace_entry ent; char name[32]; - __u16 act_mask; - __u32 buf_size; - __u32 buf_nr; - __u64 start_lba; - __u64 end_lba; - __u32 pid; + ino_t cgroup_ino; + unsigned int frn_bdi_id; + unsigned int frn_memcg_id; + char __data[0]; }; -typedef u64 compat_u64; - -struct compat_blk_user_trace_setup { +struct trace_event_raw_writeback_write_inode_template { + struct trace_entry ent; char name[32]; - u16 act_mask; - int: 0; - u32 buf_size; - u32 buf_nr; - compat_u64 start_lba; - compat_u64 end_lba; - u32 pid; -} __attribute__((packed)); + ino_t ino; + int sync_mode; + ino_t cgroup_ino; + char __data[0]; +}; -struct blk_io_trace_remap { - __be32 device_from; - __be32 device_to; - __be64 sector_from; +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]; }; -typedef void blk_log_action_t(struct trace_iterator *, const char *, bool); +struct trace_event_raw_writeback_pages_written { + struct trace_entry ent; + long pages; + char __data[0]; +}; -enum { - BPF_F_NO_PREALLOC = 1, - BPF_F_NO_COMMON_LRU = 2, - BPF_F_NUMA_NODE = 4, - BPF_F_RDONLY = 8, - BPF_F_WRONLY = 16, - BPF_F_STACK_BUILD_ID = 32, - BPF_F_ZERO_SEED = 64, - BPF_F_RDONLY_PROG = 128, - BPF_F_WRONLY_PROG = 256, - BPF_F_CLONE = 512, - BPF_F_MMAPABLE = 1024, - BPF_F_PRESERVE_ELEMS = 2048, - BPF_F_INNER_MAP = 4096, - BPF_F_LINK = 8192, - BPF_F_PATH_FD = 16384, +struct trace_event_raw_writeback_class { + struct trace_entry ent; + char name[32]; + ino_t cgroup_ino; + char __data[0]; }; -enum { - BPF_ANY = 0, - BPF_NOEXIST = 1, - BPF_EXIST = 2, - BPF_F_LOCK = 4, +struct trace_event_raw_writeback_bdi_register { + struct trace_entry ent; + char name[32]; + char __data[0]; }; -struct lpm_trie_node; +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 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: 64; - long: 64; - long: 64; +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 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 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 bpf_lpm_trie_key { - __u32 prefixlen; - __u8 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 reciprocal_value { - u32 m; - u8 sh1; - u8 sh2; +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 kmem_cache_order_objects { - unsigned int x; +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 kmem_cache_cpu; +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 kmem_cache_node; +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 kmem_cache { - struct kmem_cache_cpu __attribute__((btf_type_tag("percpu"))) *cpu_slab; - slab_flags_t flags; - unsigned long min_partial; - unsigned int size; - unsigned int object_size; - struct reciprocal_value reciprocal_size; - unsigned int offset; - unsigned int cpu_partial; - unsigned int cpu_partial_slabs; - struct kmem_cache_order_objects oo; - struct kmem_cache_order_objects min; - gfp_t allocflags; - int refcount; - void (*ctor)(void *); - unsigned int inuse; - unsigned int align; - unsigned int red_left_pad; - const char *name; - struct list_head list; - struct kobject kobj; - unsigned int remote_node_defrag_ratio; - struct kmem_cache_node *node[64]; +struct inode_switch_wbs_context { + struct rcu_work work; + struct bdi_writeback *new_wb; + struct inode *inodes[0]; }; -typedef unsigned __int128 __u128; +struct trace_event_data_offsets_writeback_folio_template {}; -typedef __u128 u128; +struct trace_event_data_offsets_writeback_dirty_inode_template {}; -typedef u128 freelist_full_t; +struct trace_event_data_offsets_inode_foreign_history {}; -typedef union { - struct { - void *freelist; - unsigned long counter; - }; - freelist_full_t full; -} freelist_aba_t; +struct trace_event_data_offsets_inode_switch_wbs {}; -typedef struct {} local_lock_t; +struct trace_event_data_offsets_track_foreign_dirty {}; -struct slab; +struct trace_event_data_offsets_flush_foreign {}; -struct kmem_cache_cpu { - union { - struct { - void **freelist; - unsigned long tid; - }; - freelist_aba_t freelist_tid; - }; - struct slab *slab; - struct slab *partial; - local_lock_t lock; -}; +struct trace_event_data_offsets_writeback_write_inode_template {}; -struct slab { - unsigned long __page_flags; - struct kmem_cache *slab_cache; - union { - struct { - union { - struct list_head slab_list; - struct { - struct slab *next; - int slabs; - }; - }; - union { - struct { - void *freelist; - union { - unsigned long counters; - struct { - unsigned int inuse: 16; - unsigned int objects: 15; - unsigned int frozen: 1; - }; - }; - }; - freelist_aba_t freelist_counter; - }; - }; - struct callback_head callback_head; - }; - unsigned int __unused; - atomic_t __page_refcount; - long: 64; -}; +struct trace_event_data_offsets_writeback_work_class {}; -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; -}; +struct trace_event_data_offsets_writeback_pages_written {}; -struct folio_batch { - unsigned char nr; - bool percpu_pvec_drained; - struct folio *folios[15]; -}; +struct trace_event_data_offsets_writeback_class {}; -struct mlock_fbatch { - local_lock_t lock; - struct folio_batch fbatch; -}; +struct trace_event_data_offsets_writeback_bdi_register {}; -enum page_walk_lock { - PGWALK_RDLOCK = 0, - PGWALK_WRLOCK = 1, - PGWALK_WRLOCK_VERIFY = 2, -}; +struct trace_event_data_offsets_wbc_class {}; -struct mm_walk; +struct trace_event_data_offsets_writeback_queue_io {}; -struct mm_walk_ops { - int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); - int (*p4d_entry)(p4d_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); - int (*pte_hole)(unsigned long, unsigned long, int, struct mm_walk *); - int (*hugetlb_entry)(pte_t *, unsigned long, unsigned long, unsigned long, struct mm_walk *); - int (*test_walk)(unsigned long, unsigned long, struct mm_walk *); - int (*pre_vma)(unsigned long, unsigned long, struct mm_walk *); - void (*post_vma)(struct mm_walk *); - enum page_walk_lock walk_lock; -}; +struct trace_event_data_offsets_global_dirty_state {}; -enum page_walk_action { - ACTION_SUBTREE = 0, - ACTION_CONTINUE = 1, - ACTION_AGAIN = 2, -}; +struct trace_event_data_offsets_bdi_dirty_ratelimit {}; -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 trace_event_data_offsets_balance_dirty_pages {}; -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, - PGSCAN_ZONE_RECLAIM_FAILED = 39, - PGINODESTEAL = 40, - SLABS_SCANNED = 41, - KSWAPD_INODESTEAL = 42, - KSWAPD_LOW_WMARK_HIT_QUICKLY = 43, - KSWAPD_HIGH_WMARK_HIT_QUICKLY = 44, - PAGEOUTRUN = 45, - PGROTATED = 46, - DROP_PAGECACHE = 47, - DROP_SLAB = 48, - OOM_KILL = 49, - PGMIGRATE_SUCCESS = 50, - PGMIGRATE_FAIL = 51, - THP_MIGRATION_SUCCESS = 52, - THP_MIGRATION_FAIL = 53, - THP_MIGRATION_SPLIT = 54, - COMPACTMIGRATE_SCANNED = 55, - COMPACTFREE_SCANNED = 56, - COMPACTISOLATED = 57, - COMPACTSTALL = 58, - COMPACTFAIL = 59, - COMPACTSUCCESS = 60, - KCOMPACTD_WAKE = 61, - KCOMPACTD_MIGRATE_SCANNED = 62, - KCOMPACTD_FREE_SCANNED = 63, - HTLB_BUDDY_PGALLOC = 64, - HTLB_BUDDY_PGALLOC_FAIL = 65, - UNEVICTABLE_PGCULLED = 66, - UNEVICTABLE_PGSCANNED = 67, - UNEVICTABLE_PGRESCUED = 68, - UNEVICTABLE_PGMLOCKED = 69, - UNEVICTABLE_PGMUNLOCKED = 70, - UNEVICTABLE_PGCLEARED = 71, - UNEVICTABLE_PGSTRANDED = 72, - SWAP_RA = 73, - SWAP_RA_HIT = 74, - DIRECT_MAP_LEVEL2_SPLIT = 75, - DIRECT_MAP_LEVEL3_SPLIT = 76, - NR_VM_EVENT_ITEMS = 77, -}; +struct trace_event_data_offsets_writeback_sb_inodes_requeue {}; -enum rlimit_type { - UCOUNT_RLIMIT_NPROC = 0, - UCOUNT_RLIMIT_MSGQUEUE = 1, - UCOUNT_RLIMIT_SIGPENDING = 2, - UCOUNT_RLIMIT_MEMLOCK = 3, - UCOUNT_RLIMIT_COUNTS = 4, -}; +struct trace_event_data_offsets_writeback_single_inode_template {}; -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, -}; +struct trace_event_data_offsets_writeback_inode_template {}; -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 { + _DQUOT_USAGE_ENABLED = 0, + _DQUOT_LIMITS_ENABLED = 1, + _DQUOT_SUSPENDED = 2, + _DQUOT_STATE_FLAGS = 3, }; -struct maple_enode; - -typedef struct pglist_data pg_data_t; - -typedef union { - struct page **pages; - struct folio **folios; - struct encoded_page **encoded_pages; -} release_pages_arg; - -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; +enum { + DQF_ROOT_SQUASH_B = 0, + DQF_SYS_FILE_B = 16, + DQF_PRIVATE = 17, }; -struct vma_iterator { - struct ma_state mas; +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, }; -struct maple_alloc { - unsigned long total; - unsigned char node_count; - unsigned int request_count; - struct maple_alloc *slot[30]; -}; +typedef __kernel_uid32_t qid_t; -struct anon_vma_name { - struct kref kref; - char name[0]; +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 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; -}; +typedef u32 compat_uint_t; -struct ptdump_range { - unsigned long start; - unsigned long end; +struct fs_qfilestat { + __u64 qfs_ino; + __u64 qfs_nblks; + __u32 qfs_nextents; }; -struct nlm_lockowner; +typedef struct fs_qfilestat fs_qfilestat_t; -struct nfs_lock_info { - u32 state; - struct nlm_lockowner *owner; - struct list_head list; +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 nfs4_lock_state; +typedef u64 compat_u64; -struct nfs4_lock_info { - struct nfs4_lock_state *owner; -}; - -struct file_lock_operations; - -struct lock_manager_operations; +struct compat_fs_qfilestat { + compat_u64 dqb_bhardlimit; + compat_u64 qfs_nblks; + compat_uint_t qfs_nextents; +} __attribute__((packed)); -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 compat_fs_quota_stat { + __s8 qs_version; + __u16 qs_flags; + __s8 qs_pad; + long: 0; + 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; }; -struct file_lock_operations { - void (*fl_copy_lock)(struct file_lock *, struct file_lock *); - void (*fl_release_private)(struct file_lock *); +struct fs_qfilestatv { + __u64 qfs_ino; + __u64 qfs_nblks; + __u32 qfs_nextents; + __u32 qfs_pad; }; -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 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 file_lock_context { - spinlock_t flc_lock; - struct list_head flc_flock; - struct list_head flc_posix; - struct list_head flc_lease; +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 fs_struct { - int users; - spinlock_t lock; - seqcount_spinlock_t seq; - int umask; - int in_exec; - struct path root; - struct path pwd; +struct if_dqinfo { + __u64 dqi_bgrace; + __u64 dqi_igrace; + __u32 dqi_flags; + __u32 dqi_valid; }; -struct eventfd_ctx { - struct kref kref; - wait_queue_head_t wqh; - __u64 count; - unsigned int flags; - int id; -}; +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)); -enum kernfs_node_type { - KERNFS_DIR = 1, - KERNFS_FILE = 2, - KERNFS_LINK = 4, +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_STATE_NEW = 0, - EXT4_STATE_XATTR = 1, - EXT4_STATE_NO_EXPAND = 2, - EXT4_STATE_DA_ALLOC_CLOSE = 3, - EXT4_STATE_EXT_MIGRATE = 4, - EXT4_STATE_NEWENTRY = 5, - EXT4_STATE_MAY_INLINE_DATA = 6, - EXT4_STATE_EXT_PRECACHED = 7, - EXT4_STATE_LUSTRE_EA_INODE = 8, - EXT4_STATE_VERITY_IN_PROGRESS = 9, - EXT4_STATE_FC_COMMITTING = 10, - EXT4_STATE_ORPHAN_FILE = 11, -}; - -struct ext4_dir_entry_2 { - __le32 inode; - __le16 rec_len; - __u8 name_len; - __u8 file_type; - char name[255]; + 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, }; -struct ext4_dir_entry_hash { - __le32 hash; - __le32 minor_hash; -}; +struct extent_status; -struct ext4_xattr_ibody_header { - __le32 h_magic; +struct ext4_es_tree { + struct rb_root root; + struct extent_status *cache_es; }; -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_pending_tree { + struct rb_root root; }; -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; +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 { - __le16 l_i_blocks_high; - __le16 l_i_file_acl_high; - __le16 l_i_uid_high; - __le16 l_i_gid_high; - __le16 l_i_checksum_lo; - __le16 l_i_reserved; - } linux2; - struct { - __le16 h_i_reserved1; - __u16 h_i_mode_high; - __u16 h_i_uid_high; - __u16 h_i_gid_high; - __u32 h_i_author; - } hurd2; - struct { - __le16 h_i_reserved1; - __le16 m_i_file_acl_high; - __u32 m_i_reserved2[2]; - } masix2; - } osd2; - __le16 i_extra_isize; - __le16 i_checksum_hi; - __le32 i_ctime_extra; - __le32 i_mtime_extra; - __le32 i_atime_extra; - __le32 i_crtime; - __le32 i_crtime_extra; - __le32 i_version_hi; - __le32 i_projid; -}; - -struct ext4_iloc { - struct buffer_head *bh; - unsigned long offset; - ext4_group_t block_group; + struct list_head i_orphan; + unsigned int i_orphan_idx; + }; + struct list_head i_fc_dilist; + struct list_head i_fc_list; + ext4_lblk_t i_fc_lblk_start; + ext4_lblk_t i_fc_lblk_len; + atomic_t i_fc_updates; + wait_queue_head_t i_fc_wait; + struct mutex i_fc_lock; + loff_t i_disksize; + struct rw_semaphore i_data_sem; + struct inode vfs_inode; + struct jbd2_inode *jinode; + spinlock_t i_raw_lock; + struct timespec64 i_crtime; + atomic_t i_prealloc_active; + struct rb_root i_prealloc_node; + rwlock_t i_prealloc_lock; + struct ext4_es_tree i_es_tree; + rwlock_t i_es_lock; + struct list_head i_es_list; + unsigned int i_es_all_nr; + unsigned int i_es_shk_nr; + ext4_lblk_t i_es_shrink_lblk; + ext4_group_t i_last_alloc_group; + unsigned int i_reserved_data_blocks; + struct ext4_pending_tree i_pending_tree; + __u16 i_extra_isize; + u16 i_inline_off; + u16 i_inline_size; + 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 ext4_xattr_info { - const char *name; - const void *value; - size_t value_len; - int name_index; - int in_inode; +struct extent_status { + struct rb_node rb_node; + ext4_lblk_t es_lblk; + ext4_lblk_t es_len; + ext4_fsblk_t es_pblk; }; -struct ext4_xattr_search { - struct ext4_xattr_entry *first; - void *base; - void *end; - struct ext4_xattr_entry *here; - int not_found; +struct ext4_extent_header { + __le16 eh_magic; + __le16 eh_entries; + __le16 eh_max; + __le16 eh_depth; + __le32 eh_generation; }; -struct ext4_xattr_ibody_find { - struct ext4_xattr_search s; - struct ext4_iloc iloc; +struct ext4_extent { + __le32 ee_block; + __le16 ee_len; + __le16 ee_start_hi; + __le32 ee_start_lo; }; -typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); +struct ext4_extent_idx; -struct fscrypt_str { - unsigned char *name; - u32 len; +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 dx_hash_info { - u32 hash; - u32 minor_hash; - int hash_version; - u32 *seed; +struct ext4_extent_idx { + __le32 ei_block; + __le32 ei_leaf_lo; + __le16 ei_leaf_hi; + __u16 ei_unused; }; -struct ext4_filename { - const struct qstr *usr_fname; - struct fscrypt_str disk_name; - struct dx_hash_info hinfo; -}; +struct jbd2_journal_handle; -struct iomap_folio_ops; +typedef struct jbd2_journal_handle handle_t; -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 jbd2_journal_handle { + union { + transaction_t *h_transaction; + journal_t *h_journal; + }; + handle_t *h_rsv_handle; + int h_total_credits; + int h_revoke_credits; + int h_revoke_credits_requested; + int h_ref; + int h_err; + unsigned int h_sync: 1; + unsigned int h_jdata: 1; + unsigned int h_reserved: 1; + unsigned int h_aborted: 1; + unsigned int h_type: 8; + unsigned int h_line_no: 16; + unsigned long h_start_jiffies; + unsigned int h_requested_credits; + unsigned int saved_alloc_context; }; -struct 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 fat_cache { + struct list_head cache_list; + int nr_contig; + int fcluster; + int dcluster; }; -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 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; }; -enum utf16_endian { - UTF16_HOST_ENDIAN = 0, - UTF16_LITTLE_ENDIAN = 1, - UTF16_BIG_ENDIAN = 2, +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; }; -typedef u16 wchar_t; - struct nls_table; -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 fatent_operations; + +struct msdos_sb_info { + unsigned short sec_per_clus; + unsigned short cluster_bits; + unsigned int cluster_size; + unsigned char fats; + unsigned char fat_bits; + unsigned short fat_start; + unsigned long fat_length; + unsigned long dir_start; + unsigned short dir_entries; + unsigned long data_start; + unsigned long max_cluster; + unsigned long root_cluster; + unsigned long fsinfo_sector; + struct mutex fat_lock; + struct mutex nfs_build_inode_lock; + struct mutex s_lock; + unsigned int prev_free; + unsigned int free_clusters; + unsigned int free_clus_valid; + struct fat_mount_options options; + struct nls_table *nls_disk; + struct nls_table *nls_io; + const void *dir_ops; + int dir_per_block; + int dir_per_block_bits; + unsigned int vol_id; + int fatent_shift; + const struct fatent_operations *fatent_ops; + struct inode *fat_inode; + struct inode *fsinfo_inode; + struct ratelimit_state ratelimit; + spinlock_t inode_hash_lock; + struct hlist_head inode_hashtable[256]; + spinlock_t dir_hash_lock; + struct hlist_head dir_hashtable[256]; + unsigned int dirty; + struct callback_head rcu; }; struct nls_table { @@ -54097,5235 +53906,5068 @@ struct nls_table { struct nls_table *next; }; -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 rpc_rqst; - -struct xdr_stream; - -typedef void (*kxdreproc_t)(struct rpc_rqst *, struct xdr_stream *, const void *); - -typedef int (*kxdrdproc_t)(struct rpc_rqst *, struct xdr_stream *, void *); +struct fat_entry; -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 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 *); }; -struct rpc_xprt; - -struct rpc_task; - -struct rpc_cred; +struct fat_cache_id { + unsigned int id; + int nr_contig; + int fcluster; + int dcluster; +}; -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 *); +struct fat_entry { + int entry; 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; + u8 *ent12_p[2]; + __le16 *ent16_p; + __le32 *ent32_p; + } u; + int nr_bhs; + struct buffer_head *bhs[2]; + struct inode *fat_inode; }; -struct rpc_timer { - struct list_head list; - unsigned long expires; - struct delayed_work dwork; +struct match_token { + int token; + const char *pattern; }; -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 fat_floppy_defaults { + unsigned int nr_sectors; + unsigned int sec_per_clus; + unsigned int dir_entries; + unsigned int media; + unsigned int fat_length; }; -enum xprtsec_policies { - RPC_XPRTSEC_NONE = 0, - RPC_XPRTSEC_TLS_ANON = 1, - RPC_XPRTSEC_TLS_X509 = 2, +enum file_time_flags { + S_ATIME = 1, + S_MTIME = 2, + S_CTIME = 4, + S_VERSION = 8, }; -struct xprtsec_parms { - enum xprtsec_policies policy; - key_serial_t cert_serial; - key_serial_t privkey_serial; +enum { + DIO_LOCKING = 1, + DIO_SKIP_HOLES = 2, }; -struct rpc_xprt_ops; - -struct rpc_timeout; - -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; - struct xprtsec_parms xprtsec; - 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; +enum { + Opt_check_n = 0, + Opt_check_r = 1, + Opt_check_s = 2, + Opt_uid = 3, + Opt_gid = 4, + Opt_umask = 5, + Opt_dmask = 6, + Opt_fmask = 7, + Opt_allow_utime = 8, + Opt_codepage = 9, + Opt_usefree = 10, + Opt_nocase = 11, + Opt_quiet = 12, + Opt_showexec = 13, + Opt_debug = 14, + Opt_immutable = 15, + Opt_dots = 16, + Opt_nodots = 17, + Opt_charset = 18, + Opt_shortname_lower = 19, + Opt_shortname_win95 = 20, + Opt_shortname_winnt = 21, + Opt_shortname_mixed = 22, + Opt_utf8_no = 23, + Opt_utf8_yes = 24, + Opt_uni_xl_no = 25, + Opt_uni_xl_yes = 26, + Opt_nonumtail_no = 27, + Opt_nonumtail_yes = 28, + Opt_obsolete = 29, + Opt_flush = 30, + Opt_tz_utc = 31, + Opt_rodir = 32, + Opt_err_cont = 33, + Opt_err_panic = 34, + Opt_err_ro = 35, + Opt_discard = 36, + Opt_nfs = 37, + Opt_time_offset = 38, + Opt_nfs_stale_rw = 39, + Opt_nfs_nostale_ro = 40, + Opt_err = 41, + Opt_dos1xfloppy = 42, }; -struct 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 fat_boot_sector { + __u8 ignored[3]; + __u8 system_id[8]; + __u8 sector_size[2]; + __u8 sec_per_clus; + __le16 reserved; + __u8 fats; + __u8 dir_entries[2]; + __u8 sectors[2]; + __u8 media; + __le16 fat_length; + __le16 secs_track; + __le16 heads; + __le32 hidden; + __le32 total_sect; + union { + struct { + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat16; + struct { + __le32 length; + __le16 flags; + __u8 version[2]; + __le32 root_cluster; + __le16 info_sector; + __le16 backup_boot; + __le16 reserved2[6]; + __u8 drive_number; + __u8 state; + __u8 signature; + __u8 vol_id[4]; + __u8 vol_label[11]; + __u8 fs_type[8]; + } fat32; + }; }; -struct rpc_wait { - struct list_head list; - struct list_head links; - struct list_head timer_list; +struct fat_boot_fsinfo { + __le32 signature1; + __le32 reserved1[120]; + __le32 signature2; + __le32 free_clusters; + __le32 next_cluster; + __le32 reserved2[4]; }; -struct rpc_message { - const struct rpc_procinfo *rpc_proc; - void *rpc_argp; - void *rpc_resp; - const struct cred *rpc_cred; +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 rpc_call_ops; +typedef int get_block_t(struct inode *, sector_t, struct buffer_head *, int); -struct rpc_clnt; +typedef struct { + char *from; + char *to; +} substring_t; -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; +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; }; -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 *); +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, }; -struct rpc_xprt_switch; - -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; +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 rpc_pipe_dir_head { - struct list_head pdh_entries; - struct dentry *pdh_dentry; +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, }; -struct rpc_rtt { - unsigned long timeo; - unsigned long srtt[5]; - unsigned long sdrtt[5]; - int ntimeouts[5]; +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 rpc_timeout { - unsigned long to_initval; - unsigned long to_maxval; - unsigned long to_increment; - unsigned int to_retries; - unsigned char to_exponential; -}; +struct nfs_pageio_ops; -struct rpc_auth; +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 rpc_stat; +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); +}; -struct rpc_iostats; +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, +}; -struct rpc_program; +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, +}; -struct rpc_sysfs_client; +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 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; - unsigned int cl_shutdown: 1; - struct xprtsec_parms cl_xprtsec; - 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; +enum nfs4_slot_tbl_state { + NFS4_SLOT_TBL_DRAINING = 0, }; -typedef u32 rpc_authflavor_t; +struct utf8_table { + int cmask; + int cval; + int shift; + long lmask; + long lval; +}; -struct rpc_authops; +typedef u32 unicode_t; -struct rpc_cred_cache; +enum autofs_notify { + NFY_NONE = 0, + NFY_MOUNT = 1, + NFY_EXPIRE = 2, +}; -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; +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 rpc_auth_create_args; +struct autofs_wait_queue; -struct auth_cred; +struct autofs_sb_info { + u32 magic; + int pipefd; + struct file *pipe; + struct pid *oz_pgrp; + int version; + int sub_version; + int min_proto; + int max_proto; + unsigned int flags; + unsigned long exp_timeout; + unsigned int type; + struct super_block *sb; + struct mutex wq_mutex; + struct mutex pipe_mutex; + spinlock_t fs_lock; + struct autofs_wait_queue *queues; + spinlock_t lookup_lock; + struct list_head active_list; + struct list_head expiring_list; + struct callback_head rcu; +}; -struct rpcsec_gss_info; +typedef unsigned int autofs_wqt_t; -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 *); - int (*ping)(struct rpc_clnt *); +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 nfs_seqid_counter { - ktime_t create_time; - int owner_id; +struct autofs_info { + struct dentry *dentry; int flags; - u32 counter; - spinlock_t lock; - struct list_head list; - struct rpc_wait_queue wait; + 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 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; +struct autofs_packet_hdr { + int proto_version; + int type; }; -typedef struct nfs4_stateid_struct nfs4_stateid; +struct autofs_packet_expire { + struct autofs_packet_hdr hdr; + int len; + char name[256]; +}; -struct nfs4_state; +enum p9_trans_status { + Connected = 0, + BeginDisconnect = 1, + Disconnected = 2, + Hung = 3, +}; -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; +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, + V9FS_NO_XATTR = 64, + V9FS_IGNORE_QV = 128, + V9FS_DIRECT_IO = 256, + V9FS_SYNC = 512, }; -struct nfs4_state_owner; +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, + P9L_MODE_MASK = 8191, + P9L_DIRECT = 8192, + P9L_NOWRITECACHE = 16384, + P9L_LOOSE = 32768, +}; -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 p9_qid { + u8 type; + u32 version; + u64 path; }; -struct nfs_server; +struct p9_client; -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 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; }; -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 p9_trans_module; -struct nfs_fsid { - uint64_t major; - uint64_t minor; +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]; }; -struct nfs_auth_info { - unsigned int flavor_len; - rpc_authflavor_t flavors[12]; +struct v9fs_session_info { + unsigned int 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 pnfs_layoutdriver_type; - -struct nfs_client; +struct tree_descr { + const char *name; + const struct file_operations *ops; + int mode; +}; -struct nlm_host; +enum label_initialized { + LABEL_INVALID = 0, + LABEL_INITIALIZED = 1, + LABEL_PENDING = 2, +}; -struct nfs_iostats; +enum lsm_event { + LSM_POLICY_CHANGE = 0, +}; -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; - int s_sysfs_id; - __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; - struct kobject kobj; +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, }; -typedef struct { - char data[8]; -} nfs4_verifier; +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 nfs41_server_owner; +struct avc_cache_stats { + unsigned int lookups; + unsigned int misses; + unsigned int allocations; + unsigned int reclaims; + unsigned int frees; +}; -struct nfs41_server_scope; +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 super_block *sb; +}; -struct nfs41_impl_id; +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 nfs_rpc_ops; +struct task_security_struct { + u32 osid; + u32 sid; + u32 exec_sid; + u32 create_sid; + u32 keycreate_sid; + u32 sockcreate_sid; +}; -struct nfs_subversion; +struct lsm_network_audit; -struct idmap; +struct lsm_ioctlop_audit; -struct nfs4_minor_version_ops; +struct lsm_ibpkey_audit; -struct nfs4_slot_table; +struct lsm_ibendport_audit; -struct nfs4_session; +struct selinux_audit_data; -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 xprtsec_parms cl_xprtsec; - 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 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 nlmclnt_operations; +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 nfs_fh; +struct lsm_ioctlop_audit { + struct path path; + u16 cmd; +}; -struct nfs_fsinfo; +struct lsm_ibpkey_audit { + u64 subnet_prefix; + u16 pkey; +}; -struct nfs_fattr; +struct lsm_ibendport_audit { + const char *dev_name; + u8 port; +}; -struct nfs_access_entry; +struct selinux_audit_data { + u32 ssid; + u32 tsid; + u16 tclass; + u32 requested; + u32 audited; + u32 denied; + int result; +}; -struct nfs_unlinkdata; +struct selinux_policy; -struct nfs_renamedata; +struct selinux_policy_convert_data; -struct nfs_readdir_arg; +struct selinux_load_state { + struct selinux_policy *policy; + struct selinux_policy_convert_data *convert_data; +}; -struct nfs_readdir_res; +struct av_decision { + u32 allowed; + u32 auditallow; + u32 auditdeny; + u32 seqno; + u32 flags; +}; -struct nfs_fsstat; +struct policy_load_memory { + size_t len; + void *data; +}; -struct nfs_pathconf; +enum { + SKCIPHER_WALK_PHYS = 1, + SKCIPHER_WALK_SLOW = 2, + SKCIPHER_WALK_COPY = 4, + SKCIPHER_WALK_DIFF = 8, + SKCIPHER_WALK_SLEEP = 16, +}; -struct nfs_entry; +struct scatter_walk { + struct scatterlist *sg; + unsigned int offset; +}; -struct nfs_pgio_header; +struct skcipher_walk_buffer { + struct list_head entry; + struct scatter_walk dst; + unsigned int len; + u8 *data; + u8 buffer[0]; +}; -struct nfs_commit_data; +struct crypto_sync_skcipher { + struct crypto_skcipher base; +}; -struct nfs_open_context; +struct skcipher_alg_common { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + struct crypto_alg base; +}; -struct nfs_client_initdata; +struct aead_request; -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 *); +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 nlmclnt_operations { - void (*nlmclnt_alloc_call)(void *); - bool (*nlmclnt_unlock_prepare)(struct rpc_task *, void *); - void (*nlmclnt_release_call)(void *); +struct crypto_aead { + unsigned int authsize; + unsigned int reqsize; + struct crypto_tfm base; }; -struct nfs_fh { - unsigned short size; - unsigned char data[128]; +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 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 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 walksize; + union { + struct { + unsigned int min_keysize; + unsigned int max_keysize; + unsigned int ivsize; + unsigned int chunksize; + struct crypto_alg base; + }; + struct skcipher_alg_common co; + }; }; -struct nfs4_string; - -struct nfs4_threshold; +struct skcipher_instance { + void (*free)(struct skcipher_instance *); + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct skcipher_alg alg; + }; +}; -struct nfs4_label; +struct crypto_cipher { + struct crypto_tfm base; +}; -struct nfs_fattr { - unsigned int valid; - umode_t mode; - __u32 nlink; - kuid_t uid; - kgid_t gid; - dev_t rdev; - __u64 size; +struct skcipher_walk { union { struct { - __u32 blocksize; - __u32 blocks; - } nfs2; + struct page *page; + unsigned long offset; + } phys; 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; + 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 nfs4_string { - unsigned int len; - char *data; +struct crypto_lskcipher { + struct crypto_tfm base; }; -struct nfs4_threshold { - __u32 bm; - __u32 l_type; - __u64 rd_sz; - __u64 wr_sz; - __u64 rd_io_sz; - __u64 wr_io_sz; +struct crypto_istat_cipher { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t err_cnt; }; -struct nfs4_label { - uint32_t lfs; - uint32_t pi; - u32 len; - char *label; +struct crypto_cipher_spawn { + struct crypto_spawn base; }; -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 skcipher_ctx_simple { + struct crypto_cipher *cipher; }; -struct nfs4_slot; - -struct nfs4_sequence_args { - struct nfs4_slot *sa_slot; - u8 sa_cache_this: 1; - u8 sa_privileged: 1; +struct crypto_skcipher_spawn { + struct crypto_spawn base; }; -struct nfs_removeargs { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - struct qstr name; +struct asymmetric_key_id { + unsigned short len; + unsigned char data[0]; }; -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; +enum kernel_pkey_operation { + kernel_pkey_encrypt = 0, + kernel_pkey_decrypt = 1, + kernel_pkey_sign = 2, + kernel_pkey_verify = 3, }; -struct nfs4_change_info { - u32 atomic; - u64 before; - u64 after; +enum asymmetric_payload_bits { + asym_crypto = 0, + asym_subtype = 1, + asym_key_ids = 2, + asym_auth = 3, }; -struct nfs_removeres { - struct nfs4_sequence_res seq_res; - struct nfs_server *server; - struct nfs_fattr *dir_attr; - struct nfs4_change_info cinfo; +enum OID { + OID_id_dsa = 0, + OID_id_ecPublicKey = 1, + OID_id_prime192v1 = 2, + OID_id_prime256v1 = 3, + OID_id_ecdsa_with_sha224 = 4, + OID_id_ecdsa_with_sha256 = 5, + OID_id_ecdsa_with_sha384 = 6, + OID_id_ecdsa_with_sha512 = 7, + OID_rsaEncryption = 8, + OID_sha256WithRSAEncryption = 9, + OID_sha384WithRSAEncryption = 10, + OID_sha512WithRSAEncryption = 11, + OID_sha224WithRSAEncryption = 12, + OID_data = 13, + OID_signed_data = 14, + OID_email_address = 15, + OID_contentType = 16, + OID_messageDigest = 17, + OID_signingTime = 18, + OID_smimeCapabilites = 19, + OID_smimeAuthenticatedAttrs = 20, + OID_mskrb5 = 21, + OID_krb5 = 22, + OID_krb5u2u = 23, + OID_msIndirectData = 24, + OID_msStatementType = 25, + OID_msSpOpusInfo = 26, + OID_msPeImageDataObjId = 27, + OID_msIndividualSPKeyPurpose = 28, + OID_msOutlookExpress = 29, + OID_ntlmssp = 30, + OID_negoex = 31, + OID_spnego = 32, + OID_IAKerb = 33, + OID_PKU2U = 34, + OID_Scram = 35, + OID_certAuthInfoAccess = 36, + OID_id_ansip384r1 = 37, + OID_sha256 = 38, + OID_sha384 = 39, + OID_sha512 = 40, + OID_sha224 = 41, + OID_commonName = 42, + OID_surname = 43, + OID_countryName = 44, + OID_locality = 45, + OID_stateOrProvinceName = 46, + OID_organizationName = 47, + OID_organizationUnitName = 48, + OID_title = 49, + OID_description = 50, + OID_name = 51, + OID_givenName = 52, + OID_initials = 53, + OID_generationalQualifier = 54, + OID_subjectKeyIdentifier = 55, + OID_keyUsage = 56, + OID_subjectAltName = 57, + OID_issuerAltName = 58, + OID_basicConstraints = 59, + OID_crlDistributionPoints = 60, + OID_certPolicies = 61, + OID_authorityKeyIdentifier = 62, + OID_extKeyUsage = 63, + OID_NetlogonMechanism = 64, + OID_appleLocalKdcSupported = 65, + OID_gostCPSignA = 66, + OID_gostCPSignB = 67, + OID_gostCPSignC = 68, + OID_gost2012PKey256 = 69, + OID_gost2012PKey512 = 70, + OID_gost2012Digest256 = 71, + OID_gost2012Digest512 = 72, + OID_gost2012Signature256 = 73, + OID_gost2012Signature512 = 74, + OID_gostTC26Sign256A = 75, + OID_gostTC26Sign256B = 76, + OID_gostTC26Sign256C = 77, + OID_gostTC26Sign256D = 78, + OID_gostTC26Sign512A = 79, + OID_gostTC26Sign512B = 80, + OID_gostTC26Sign512C = 81, + OID_sm2 = 82, + OID_sm3 = 83, + OID_SM2_with_SM3 = 84, + OID_sm3WithRSAEncryption = 85, + OID_TPMLoadableKey = 86, + OID_TPMImportableKey = 87, + OID_TPMSealedData = 88, + OID_sha3_256 = 89, + OID_sha3_384 = 90, + OID_sha3_512 = 91, + OID_id_ecdsa_with_sha3_256 = 92, + OID_id_ecdsa_with_sha3_384 = 93, + OID_id_ecdsa_with_sha3_512 = 94, + OID_id_rsassa_pkcs1_v1_5_with_sha3_256 = 95, + OID_id_rsassa_pkcs1_v1_5_with_sha3_384 = 96, + OID_id_rsassa_pkcs1_v1_5_with_sha3_512 = 97, + OID__NR = 98, }; -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 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 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 key_match_data { + bool (*cmp)(const struct key *, const struct key_match_data *); + const void *raw_data; + void *preparsed; + unsigned int lookup_type; }; -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 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 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 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 nfs_readdir_arg { - struct dentry *dentry; - const struct cred *cred; - __be32 *verf; - u64 cookie; - struct page **pages; - unsigned int page_len; - bool plus; +struct public_key_signature { + struct asymmetric_key_id *auth_ids[3]; + u8 *s; + u8 *digest; + u32 s_size; + u32 digest_size; + const char *pkey_algo; + const char *hash_algo; + const char *encoding; }; -struct nfs_readdir_res { - __be32 *verf; +struct asymmetric_key_ids { + void *id[3]; }; -struct nfs_fsstat { - struct nfs_fattr *fattr; - __u64 tbytes; - __u64 fbytes; - __u64 abytes; - __u64 tfiles; - __u64 ffiles; - __u64 afiles; +struct public_key { + void *key; + u32 keylen; + enum OID algo; + void *params; + u32 paramlen; + bool key_is_private; + const char *id_type; + const char *pkey_algo; + unsigned long key_eflags; }; -struct nfs_pathconf { - struct nfs_fattr *fattr; - __u32 max_link; - __u32 max_namelen; -}; +typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t); -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 asn1_decoder { + const unsigned char *machine; + size_t machlen; + const asn1_action_t *actions; }; -struct nfs_entry { - __u64 ino; - __u64 cookie; +struct asymmetric_key_parser { + struct list_head link; + struct module *owner; const char *name; - unsigned int len; - int eof; - struct nfs_fh *fh; - struct nfs_fattr *fattr; - unsigned char d_type; - struct nfs_server *server; + int (*parse)(struct key_preparsed_payload *); }; -struct nfs_write_verifier { - char data[8]; +enum blacklist_hash_type { + BLACKLIST_HASH_X509_TBS = 1, + BLACKLIST_HASH_BINARY = 2, }; -enum nfs3_stable_how { - NFS_UNSTABLE = 0, - NFS_DATA_SYNC = 1, - NFS_FILE_SYNC = 2, - NFS_INVALID_STABLE_HOW = -1, +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 nfs_writeverf { - struct nfs_write_verifier verifier; - enum nfs3_stable_how committed; +enum { + IOPRIO_CLASS_NONE = 0, + IOPRIO_CLASS_RT = 1, + IOPRIO_CLASS_BE = 2, + IOPRIO_CLASS_IDLE = 3, + IOPRIO_CLASS_INVALID = 7, }; -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; - }; - }; +enum { + IOPRIO_HINT_NONE = 0, + IOPRIO_HINT_DEV_DURATION_LIMIT_1 = 1, + IOPRIO_HINT_DEV_DURATION_LIMIT_2 = 2, + IOPRIO_HINT_DEV_DURATION_LIMIT_3 = 3, + IOPRIO_HINT_DEV_DURATION_LIMIT_4 = 4, + IOPRIO_HINT_DEV_DURATION_LIMIT_5 = 5, + IOPRIO_HINT_DEV_DURATION_LIMIT_6 = 6, + IOPRIO_HINT_DEV_DURATION_LIMIT_7 = 7, }; -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; - void *scratch; - }; - struct { - struct nfs_writeverf *verf; - const struct nfs_server *server; - }; - }; +enum { + IOPRIO_WHO_PROCESS = 1, + IOPRIO_WHO_PGRP = 2, + IOPRIO_WHO_USER = 3, }; -struct nfs_page_array { - struct page **pagevec; - unsigned int npages; - struct page *page_array[8]; +enum iter_type { + ITER_UBUF = 0, + ITER_IOVEC = 1, + ITER_BVEC = 2, + ITER_KVEC = 3, + ITER_XARRAY = 4, + ITER_DISCARD = 5, }; -struct nfs_page; - -struct pnfs_layout_segment; - -struct nfs_pgio_completion_ops; - -struct nfs_rw_ops; - -struct nfs_io_completion; +struct io_shutdown { + struct file *file; + int how; +}; -struct nfs_direct_req; +struct compat_msghdr; -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 user_msghdr; -struct nfs_page { - struct list_head wb_list; +struct io_sr_msg { + struct file *file; union { - struct page *wb_page; - struct folio *wb_folio; + 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; }; - 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; + 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; + void __attribute__((btf_type_tag("user"))) *msg_control; + struct io_kiocb *notif; }; -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 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 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 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 rpc_credops; +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 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 io_socket { + struct file *file; + int domain; + int type; + int protocol; + int flags; + u32 file_slot; + unsigned long nofile; }; -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 io_connect { + struct file *file; + struct sockaddr __attribute__((btf_type_tag("user"))) *addr; + int addr_len; + bool in_progress; + bool seen_econnaborted; }; -struct auth_cred { - const struct cred *cred; - const char *principal; +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 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 io_notif_data { + struct file *file; + struct ubuf_info uarg; + unsigned long account_pages; + bool zc_report; + bool zc_used; + bool zc_copied; }; -struct rpc_task_setup; +typedef s32 compat_ssize_t; -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 io_uring_recvmsg_out { + __u32 namelen; + __u32 controllen; + __u32 payloadlen; + __u32 flags; }; -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 io_recvmsg_multishot_hdr { + struct io_uring_recvmsg_out msg; + struct __kernel_sockaddr_storage addr; }; -struct nfs_mds_commit_info { - atomic_t rpcs_out; - atomic_long_t ncommit; - struct list_head list; +struct io_async_connect { + struct __kernel_sockaddr_storage address; }; -struct pnfs_ds_commit_info {}; +typedef void (*swap_r_func_t)(void *, void *, int, const void *); -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 wrapper { + cmp_func_t cmp; + swap_func_t swap; }; -struct nfs_commitargs { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - __u64 offset; - __u32 count; - const u32 *bitmask; -}; +typedef int (*cmp_r_func_t)(const void *, const void *, const void *); -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; +typedef struct { + __u8 b[16]; +} guid_t; + +enum { + DUMP_PREFIX_NONE = 0, + DUMP_PREFIX_ADDRESS = 1, + DUMP_PREFIX_OFFSET = 2, }; -struct nfs_commit_completion_ops; +typedef unsigned long mpi_limb_t; -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; +typedef mpi_limb_t *mpi_ptr_t; + +typedef int mpi_size_t; + +typedef mpi_limb_t UWtype; + +typedef unsigned int UHWtype; + +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; }; -struct nfs_commit_info; +typedef unsigned long ulong; -struct nfs_commit_completion_ops { - void (*completion)(struct nfs_commit_data *); - void (*resched_write)(struct nfs_commit_info *, struct nfs_page *); +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, }; -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; +typedef u64 pci_bus_addr_t; + +struct pci_bus_region { + pci_bus_addr_t start; + pci_bus_addr_t end; }; -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 xprtsec_parms xprtsec; +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 nfs_seqid; +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, +}; -struct nfs4_state_recovery_ops; +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 nfs4_state_maintenance_ops; +struct acpi_table_madt { + struct acpi_table_header header; + u32 address; + u32 flags; +}; -struct nfs4_mig_recovery_ops; +enum acpi_madt_type { + ACPI_MADT_TYPE_LOCAL_APIC = 0, + ACPI_MADT_TYPE_IO_APIC = 1, + ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2, + ACPI_MADT_TYPE_NMI_SOURCE = 3, + ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4, + ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5, + ACPI_MADT_TYPE_IO_SAPIC = 6, + ACPI_MADT_TYPE_LOCAL_SAPIC = 7, + ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8, + ACPI_MADT_TYPE_LOCAL_X2APIC = 9, + ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, + ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, + ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, + ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, + ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, + ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, + ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, + ACPI_MADT_TYPE_CORE_PIC = 17, + ACPI_MADT_TYPE_LIO_PIC = 18, + ACPI_MADT_TYPE_HT_PIC = 19, + ACPI_MADT_TYPE_EIO_PIC = 20, + ACPI_MADT_TYPE_MSI_PIC = 21, + ACPI_MADT_TYPE_BIO_PIC = 22, + ACPI_MADT_TYPE_LPC_PIC = 23, + ACPI_MADT_TYPE_RINTC = 24, + ACPI_MADT_TYPE_IMSIC = 25, + ACPI_MADT_TYPE_APLIC = 26, + ACPI_MADT_TYPE_PLIC = 27, + ACPI_MADT_TYPE_RESERVED = 28, + ACPI_MADT_TYPE_OEM_RESERVED = 128, +}; -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 acpi_subtable_header { + u8 type; + u8 length; }; -struct nfs_seqid { - struct nfs_seqid_counter *sequence; - struct list_head list; - struct rpc_task *task; +struct acpi_madt_local_apic { + struct acpi_subtable_header header; + u8 processor_id; + u8 id; + u32 lapic_flags; }; -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 acpi_madt_local_x2apic { + struct acpi_subtable_header header; + u16 reserved; + u32 local_apic_id; + u32 lapic_flags; + u32 uid; }; -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 acpi_madt_local_sapic { + struct acpi_subtable_header header; + u8 processor_id; + u8 id; + u8 eid; + u8 reserved[3]; + u32 lapic_flags; + u32 uid; + char uid_string[0]; }; -struct nfs4_fs_locations; +struct acpi_madt_generic_interrupt { + struct acpi_subtable_header header; + u16 reserved; + u32 cpu_interface_number; + u32 uid; + u32 flags; + u32 parking_version; + u32 performance_interrupt; + u64 parked_address; + u64 base_address; + u64 gicv_base_address; + u64 gich_base_address; + u32 vgic_interrupt; + u64 gicr_base_address; + u64 arm_mpidr; + u8 efficiency_class; + u8 reserved2[1]; + u16 spe_interrupt; + u16 trbe_interrupt; +} __attribute__((packed)); -struct 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 acpi_madt_rintc { + struct acpi_subtable_header header; + u8 version; + u8 reserved; + u32 flags; + u64 hart_id; + u32 uid; + u32 ext_intc_id; + u64 imsic_addr; + u32 imsic_size; +} __attribute__((packed)); + +struct acpi_madt_core_pic { + struct acpi_subtable_header header; + u8 version; + u32 processor_id; + u32 core_id; + u32 flags; +} __attribute__((packed)); + +struct acpi_madt_io_apic { + struct acpi_subtable_header header; + u8 id; + u8 reserved; + u32 address; + u32 global_irq_base; }; -struct nfs4_pathname { - unsigned int ncomponents; - struct nfs4_string components[512]; +struct pci_osc_bit_struct { + u32 bit; + char *desc; }; -struct nfs4_fs_location { - unsigned int nservers; - struct nfs4_string servers[10]; - struct nfs4_pathname rootpath; +enum acpi_bridge_type { + ACPI_BRIDGE_TYPE_PCIE = 1, + ACPI_BRIDGE_TYPE_CXL = 2, }; -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 acpi_device_physical_node { + unsigned int node_id; + struct list_head node; + struct device *dev; + bool put_online: 1; }; -struct nfs_iostats { - unsigned long long bytes[8]; - unsigned long events[27]; +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]; }; -struct rpc_auth_create_args { - rpc_authflavor_t pseudoflavor; - const char *target_name; +struct acpi_pci_root; + +struct acpi_pci_root_ops; + +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 rpcsec_gss_oid { - unsigned int len; - u8 data[32]; +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 rpcsec_gss_info { - struct rpcsec_gss_oid oid; - u32 qop; - u32 service; +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 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 acpi_osc_context { + char *uuid_str; + int rev; + struct acpi_buffer cap; + struct acpi_buffer ret; }; -struct rpc_version; +union acpi_predefined_info; -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 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 rpc_version { - u32 number; - unsigned int nrprocs; - const struct rpc_procinfo *procs; - unsigned int *counts; -}; +struct acpi_name_info { + char name[4]; + u16 argument_list; + u8 expected_btypes; +} __attribute__((packed)); -struct rpc_sysfs_client { - struct kobject kobject; - struct net *net; - struct rpc_clnt *clnt; - struct rpc_xprt_switch *xprt_switch; +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 rpc_sysfs_xprt_switch; +struct acpi_package_info3 { + u8 type; + u8 count; + u8 object_type[2]; + u8 tail_object_type; + u16 reserved; +} __attribute__((packed)); -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 acpi_package_info4 { + u8 type; + u8 object_type1; + u8 count1; + u8 sub_object_types; + u8 pkg_count; + u16 reserved; +} __attribute__((packed)); -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 *); +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 xprt_create; +typedef u8 acpi_adr_space_type; -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]; +enum acpi_return_package_types { + ACPI_PTYPE1_FIXED = 1, + ACPI_PTYPE1_VAR = 2, + ACPI_PTYPE1_OPTION = 3, + ACPI_PTYPE2 = 4, + ACPI_PTYPE2_COUNT = 5, + ACPI_PTYPE2_PKG_COUNT = 6, + ACPI_PTYPE2_FIXED = 7, + ACPI_PTYPE2_MIN = 8, + ACPI_PTYPE2_REV_FIXED = 9, + ACPI_PTYPE2_FIX_VAR = 10, + ACPI_PTYPE2_VAR_VAR = 11, + ACPI_PTYPE2_UUID_PAIR = 12, + ACPI_PTYPE_CUSTOM = 13, }; -struct 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 xprtsec_parms xprtsec; +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, }; -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 acpi_video_level_idx { + ACPI_VIDEO_AC_LEVEL = 0, + ACPI_VIDEO_BATTERY_LEVEL = 1, + ACPI_VIDEO_FIRST_LEVEL = 2, }; -enum nfs_ftype { - NFNON = 0, - NFREG = 1, - NFDIR = 2, - NFBLK = 3, - NFCHR = 4, - NFLNK = 5, - NFSOCK = 6, - NFBAD = 7, - NFFIFO = 8, +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; }; -enum nfs2_ftype { - NF2NON = 0, - NF2REG = 1, - NF2DIR = 2, - NF2BLK = 3, - NF2CHR = 4, - NF2LNK = 5, - NF2SOCK = 6, - NF2BAD = 7, - NF2FIFO = 8, +struct acpi_video_bus_flags { + u8 multihead: 1; + u8 rom: 1; + u8 post: 1; + u8 reserved: 5; }; -struct nfs_diropok { - struct nfs_fh *fh; - struct nfs_fattr *fattr; +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 nfs_readdirargs { - struct nfs_fh *fh; - __u32 cookie; - unsigned int count; - struct page **pages; +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 nfs2_fsstat { - __u32 tsize; - __u32 bsize; - __u32 blocks; - __u32 bfree; - __u32 bavail; +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 nfs_sattrargs { - struct nfs_fh *fh; - struct iattr *sattr; +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 nfs_diropargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; +struct acpi_video_device_cap { + u8 _ADR: 1; + u8 _BCL: 1; + u8 _BCM: 1; + u8 _BQC: 1; + u8 _BCQ: 1; + u8 _DDC: 1; }; -struct nfs_readlinkargs { - struct nfs_fh *fh; - unsigned int pgbase; - unsigned int pglen; - struct page **pages; +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 nfs_createargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; - struct iattr *sattr; +struct acpi_video_brightness_flags { + u8 _BCL_no_ac_battery_levels: 1; + u8 _BCL_reversed: 1; + u8 _BQC_use_index: 1; }; -struct nfs_linkargs { - struct nfs_fh *fromfh; - struct nfs_fh *tofh; - const char *toname; - unsigned int tolen; +struct acpi_video_device_brightness { + int curr; + int count; + int *levels; + struct acpi_video_brightness_flags flags; }; -struct nfs_symlinkargs { - struct nfs_fh *fromfh; - const char *fromname; - unsigned int fromlen; - struct page **pages; - unsigned int pathlen; - struct iattr *sattr; +struct module_version_attribute { + struct module_attribute mattr; + const char *module_name; + const char *version; }; -struct nlm_lockowner { - struct list_head list; - refcount_t count; - struct nlm_host *host; - fl_owner_t owner; - uint32_t pid; +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 nsm_handle; +struct virtio_pci_modern_common_cfg { + struct virtio_pci_common_cfg cfg; + __le16 queue_notify_data; + __le16 queue_reset; +}; -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 virtio_pci_modern_device { + struct pci_dev *pci_dev; + struct virtio_pci_common_cfg *common; + void *device; + void *notify_base; + resource_size_t notify_pa; + u8 *isr; + size_t notify_len; + size_t device_len; + size_t common_len; + int notify_map_cap; + u32 notify_offset_multiplier; + int modern_bars; + struct virtio_device_id id; + int (*device_id_check)(struct pci_dev *); + u64 dma_mask; }; -struct nsm_private { - unsigned char data[16]; +struct miscdevice { + int minor; + const char *name; + const struct file_operations *fops; + struct list_head list; + struct device *parent; + struct device *this_device; + const struct attribute_group **groups; + const char *nodename; + umode_t mode; }; -struct 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 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 nlm_cookie { - unsigned char data[32]; - unsigned int len; +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 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; +enum chipset_type { + NOT_SUPPORTED = 0, + SUPPORTED = 1, }; -struct nlm_res { - struct nlm_cookie cookie; - __be32 status; - struct nlm_lock lock; +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 gss_api_mech; +struct agp_version { + u16 major; + u16 minor; +}; -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; +enum aper_size_type { + U8_APER_SIZE = 0, + U16_APER_SIZE = 1, + U32_APER_SIZE = 2, + LVL2_APER_SIZE = 3, + FIXED_APER_SIZE = 4, }; -struct cache_deferred_req; +struct gatt_mask; -struct cache_req { - struct cache_deferred_req * (*defer)(struct cache_req *); - unsigned long thread_wait; +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 svc_cacherep; +struct gatt_mask { + unsigned long mask; + u32 type; +}; -struct svc_serv; +typedef int (*iommu_fault_handler_t)(struct iommu_domain *, struct device *, unsigned long, int, void *); -struct svc_pool; +struct iommu_domain_geometry { + dma_addr_t aperture_start; + dma_addr_t aperture_end; + bool force_aperture; +}; -struct svc_procedure; +enum iommu_page_response_code { + IOMMU_PAGE_RESP_SUCCESS = 0, + IOMMU_PAGE_RESP_INVALID = 1, + IOMMU_PAGE_RESP_FAILURE = 2, +}; -struct auth_ops; +struct iommu_dirty_ops; -struct svc_deferred_req; +struct iommu_dma_cookie; -struct auth_domain; +struct iommu_fault; -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 folio_batch rq_fbatch; - 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 iommu_domain { + unsigned int type; + const struct iommu_domain_ops *ops; + const struct iommu_dirty_ops *dirty_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 svc_program; - -struct svc_stat; +struct iommu_iotlb_gather; -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 iommu_domain_ops { + int (*attach_dev)(struct iommu_domain *, struct device *); + int (*set_dev_pasid)(struct iommu_domain *, struct device *, ioasid_t); + int (*map_pages)(struct iommu_domain *, unsigned long, phys_addr_t, size_t, size_t, int, gfp_t, size_t *); + size_t (*unmap_pages)(struct iommu_domain *, unsigned long, size_t, size_t, struct iommu_iotlb_gather *); + void (*flush_iotlb_all)(struct iommu_domain *); + int (*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 svc_version; +struct iommu_iotlb_gather { + unsigned long start; + unsigned long end; + size_t pgsize; + struct list_head freelist; + bool queued; +}; -struct svc_process_info; +struct iommu_dirty_bitmap; -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 iommu_dirty_ops { + int (*set_dirty_tracking)(struct iommu_domain *, bool); + int (*read_and_clear_dirty)(struct iommu_domain *, unsigned long, size_t, unsigned long, struct iommu_dirty_bitmap *); }; -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 iova_bitmap; + +struct iommu_dirty_bitmap { + struct iova_bitmap *bitmap; + struct iommu_iotlb_gather *gather; }; -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 iommu_fault_unrecoverable { + __u32 reason; + __u32 flags; + __u32 pasid; + __u32 perm; + __u64 addr; + __u64 fetch_addr; }; -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 iommu_fault_page_request { + __u32 flags; + __u32 pasid; + __u32 grpid; + __u32 perm; + __u64 addr; + __u64 private_data[2]; }; -struct svc_process_info { +struct iommu_fault { + __u32 type; + __u32 padding; union { - int (*dispatch)(struct svc_rqst *); - struct { - unsigned int lovers; - unsigned int hivers; - } mismatch; + struct iommu_fault_unrecoverable event; + struct iommu_fault_page_request prm; + __u8 padding2[56]; }; }; -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 iommu_user_data { + unsigned int type; + void __attribute__((btf_type_tag("user"))) *uptr; + size_t len; }; -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 iommu_device { + struct list_head list; + const struct iommu_ops *ops; + struct fwnode_handle *fwnode; + struct device *dev; + struct iommu_group *singleton_group; + u32 max_pasids; }; -struct auth_domain { - struct kref ref; - struct hlist_node hash; - char *name; - struct auth_ops *flavour; - struct callback_head callback_head; +struct iommu_fault_event { + struct iommu_fault fault; + struct list_head list; }; -struct gss_api_ops; +struct iommu_page_response { + __u32 argsz; + __u32 version; + __u32 flags; + __u32 pasid; + __u32 grpid; + __u32 code; +}; -struct pf_desc; +struct iopf_device_param; -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 iommu_fault_param; -struct gss_ctx; +struct iommu_fwspec; -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 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; + u32 pci_32bit_workaround: 1; + u32 require_direct: 1; + u32 shadow_on_flush: 1; }; -struct gss_ctx { - struct gss_api_mech *mech_type; - void *internal_ctx_id; - unsigned int slack; - unsigned int align; +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 pf_desc { - u32 pseudoflavor; - u32 qop; - u32 service; - char *name; - char *auth_domain_name; - struct auth_domain *domain; - bool datatouch; +struct iommu_fwspec { + const struct iommu_ops *ops; + struct fwnode_handle *iommu_fwnode; + u32 flags; + unsigned int num_ids; + u32 ids[0]; }; -struct cache_head; +struct intel_iommu; -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); -}; +typedef void (*btf_trace_qi_submit)(void *, struct intel_iommu *, u64, u64, u64, u64); -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 iommu_flush { + void (*flush_context)(struct intel_iommu *, u16, u16, u8, u64); + void (*flush_iotlb)(struct intel_iommu *, u16, u64, unsigned int, u64); }; -struct cache_head { - struct hlist_node cache_list; - time64_t expiry_time; - time64_t last_refresh; - struct kref ref; - unsigned long flags; -}; +struct iopf_queue; -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 root_entry; -struct nlm_reboot { - char *mon; - unsigned int len; - u32 state; - struct nsm_private priv; -}; +struct q_inval; -struct keyctl_pkey_params { - __s32 key_id; - __u32 in_len; - union { - __u32 out_len; - __u32 in2_len; - }; - __u32 __spare[7]; +struct dmar_drhd_unit; + +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[4]; + struct iommu_device iommu; + int node; + u32 flags; + struct dmar_drhd_unit *drhd; + void *perf_statistic; + struct iommu_pmu *pmu; }; -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 root_entry { + u64 lo; + u64 hi; }; -enum lsm_order { - LSM_ORDER_FIRST = -1, - LSM_ORDER_MUTABLE = 0, - LSM_ORDER_LAST = 1, +struct q_inval { + raw_spinlock_t q_lock; + void *desc; + int *desc_status; + int free_head; + int free_tail; + int free_cnt; }; -struct lsm_blob_sizes; +struct acpi_dmar_header; -struct lsm_info { - const char *name; - enum lsm_order order; - unsigned long flags; - int *enabled; - int (*init)(); - struct lsm_blob_sizes *blobs; -}; +struct dmar_dev_scope; -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 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; }; -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, +struct acpi_dmar_header { + u16 type; + u16 length; }; -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 dmar_dev_scope { + struct device __attribute__((btf_type_tag("rcu"))) *dev; + u8 bus; + u8 devfn; }; -struct __key_reference_with_attributes; +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 hlist_node cpuhp_node; + int cpu; +}; -typedef struct __key_reference_with_attributes *key_ref_t; +typedef void (*btf_trace_prq_report)(void *, struct intel_iommu *, struct device *, u64, u64, u64, u64, unsigned long); -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, +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 timezone; +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 msg_msg; +struct trace_event_data_offsets_qi_submit { + u32 iommu; +}; -struct sembuf; +struct trace_event_data_offsets_prq_report { + u32 iommu; + u32 dev; + u32 buff; +}; -struct sctp_association; +struct drm_mode_map_dumb { + __u32 handle; + __u32 pad; + __u64 offset; +}; -struct audit_krule; +struct drm_mode_destroy_dumb { + __u32 handle; +}; -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 (*mptcp_add_subflow)(struct sock *, struct sock *); - 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 drm_prime_member { + struct dma_buf *dma_buf; + uint32_t handle; + struct rb_node dmabuf_rb; + struct rb_node handle_rb; }; -struct security_hook_list { - struct hlist_node list; - struct hlist_head *head; - union security_list_options hook; - const char *lsm; +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 timezone { - int tz_minuteswest; - int tz_dsttime; +struct sg_page_iter { + struct scatterlist *sg; + unsigned int sg_pgoffset; + unsigned int __nents; + int __pg_advance; }; -struct sembuf { - unsigned short sem_num; - short sem_op; - short sem_flg; +struct sg_dma_page_iter { + struct sg_page_iter base; }; -struct audit_field; +struct drm_prime_handle { + __u32 handle; + __u32 flags; + __s32 fd; +}; -struct audit_watch; +enum drm_bridge_attach_flags { + DRM_BRIDGE_ATTACH_NO_CONNECTOR = 1, +}; -struct audit_tree; +enum drm_bridge_ops { + DRM_BRIDGE_OP_DETECT = 1, + DRM_BRIDGE_OP_EDID = 2, + DRM_BRIDGE_OP_HPD = 4, + DRM_BRIDGE_OP_MODES = 8, +}; -struct audit_fsnotify_mark; +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 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 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_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 device_node *of_node; struct list_head list; - u64 prio; + 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 audit_field { - u32 type; - union { - u32 val; - kuid_t uid; - kgid_t gid; - struct { - char *lsm_str; - void *lsm_rule; - }; - }; - u32 op; +struct drm_bridge_timings { + u32 input_bus_flags; + u32 setup_time_ps; + u32 hold_time_ps; + bool dual_link; }; -struct vfs_cap_data { - __le32 magic_etc; - struct { - __le32 permitted; - __le32 inheritable; - } data[2]; +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 vfs_ns_cap_data { - __le32 magic_etc; - struct { - __le32 permitted; - __le32 inheritable; - } data[2]; - __le32 rootid; +struct drm_bus_cfg { + u32 format; + u32 flags; }; -struct cpu_vfs_cap_data { - __u32 magic_etc; - kuid_t rootid; - kernel_cap_t permitted; - kernel_cap_t inheritable; +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 sha3_state { - u64 st[25]; - unsigned int rsiz; - unsigned int rsizw; - unsigned int partial; - u8 buf[144]; +struct remap_pfn { + struct mm_struct *mm; + unsigned long pfn; + pgprot_t prot; + struct sgt_iter sgt; + resource_size_t iobase; }; -struct chksum_ctx { - u32 key; +struct engine_mmio_base { + u32 graphics_ver: 8; + u32 base: 24; }; -struct chksum_desc_ctx { - u32 crc; +struct engine_info { + u8 class; + u8 instance; + struct engine_mmio_base mmio_bases[3]; }; -struct asymmetric_key_parser { - struct list_head link; - struct module *owner; +struct pmap { + size_t offset; const char *name; - int (*parse)(struct key_preparsed_payload *); }; -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 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 *); }; -struct key_match_data { - bool (*cmp)(const struct key *, const struct key_match_data *); - const void *raw_data; - void *preparsed; - unsigned int lookup_type; +enum i915_request_state { + I915_REQUEST_UNKNOWN = 0, + I915_REQUEST_COMPLETE = 1, + I915_REQUEST_PENDING = 2, + I915_REQUEST_QUEUED = 3, + I915_REQUEST_ACTIVE = 4, }; -enum kernel_pkey_operation { - kernel_pkey_encrypt = 0, - kernel_pkey_decrypt = 1, - kernel_pkey_sign = 2, - kernel_pkey_verify = 3, +enum { + TASKLET_STATE_SCHED = 0, + TASKLET_STATE_RUN = 1, }; -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 measure_breadcrumb { + struct i915_request rq; + struct intel_ring ring; + u32 cs[2048]; }; -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 lri { + i915_reg_t reg; + u32 value; }; -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 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 blacklist_hash_type { - BLACKLIST_HASH_X509_TBS = 1, - BLACKLIST_HASH_BINARY = 2, +enum { + INTEL_ADVANCED_CONTEXT = 0, + INTEL_LEGACY_32B_CONTEXT = 1, + INTEL_ADVANCED_AD_CONTEXT = 2, + INTEL_LEGACY_64B_CONTEXT = 3, }; -enum asymmetric_payload_bits { - asym_crypto = 0, - asym_subtype = 1, - asym_key_ids = 2, - asym_auth = 3, +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 public_key { - void *key; - u32 keylen; - enum OID algo; - void *params; - u32 paramlen; - bool key_is_private; - const char *id_type; - const char *pkey_algo; - unsigned long key_eflags; +typedef u32 * (*wa_bb_func_t)(struct intel_engine_cs *, u32 *); + +enum intel_huc_authentication_type { + INTEL_HUC_AUTH_BY_GUC = 0, + INTEL_HUC_AUTH_BY_GSC = 1, + INTEL_HUC_AUTH_MAX_MODES = 2, }; -struct asymmetric_key_id; +enum hdmi_force_audio { + HDMI_AUDIO_OFF_DVI = -2, + HDMI_AUDIO_OFF = -1, + HDMI_AUDIO_AUTO = 0, + HDMI_AUDIO_ON = 1, +}; -struct public_key_signature { - struct asymmetric_key_id *auth_ids[3]; - u8 *s; - u8 *digest; - u32 s_size; - u32 digest_size; - const char *pkey_algo; - const char *hash_algo; - const char *encoding; +struct intel_digital_connector_state { + struct drm_connector_state base; + enum hdmi_force_audio force_audio; + int broadcast_rgb; }; -struct asymmetric_key_id { - unsigned short len; - unsigned char data[0]; +enum i9xx_plane_id { + PLANE_A = 0, + PLANE_B = 1, + PLANE_C = 2, }; -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 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 asymmetric_key_ids { - void *id[3]; +struct drm_intel_sprite_colorkey { + __u32 plane_id; + __u32 min_value; + __u32 channel_mask; + __u32 max_value; + __u32 flags; }; -struct blkcg_policy_data; +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 *ggtt_vma; + struct i915_vma *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; +}; -typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t); +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, +}; -typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *); +struct intel_sdvo; -struct blkg_policy_data; +struct intel_sdvo_ddc { + struct i2c_adapter ddc; + struct intel_sdvo *sdvo; + u8 ddc_bus; +}; -struct blkcg; +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_num_inputs: 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; +}; -typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(struct gendisk *, struct blkcg *, gfp_t); +struct intel_sdvo { + struct intel_encoder base; + struct i2c_adapter *i2c; + u8 slave_addr; + struct intel_sdvo_ddc ddc[3]; + i915_reg_t sdvo_reg; + struct intel_sdvo_caps caps; + u8 colorimetry_cap; + int pixel_clock_min; + int pixel_clock_max; + u16 hotplug_active; + u8 dtd_sdvo_flags; +}; -typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *); +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; +}; -typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *); +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; +}; -typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *); +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; +}; -typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *); +struct intel_sdvo_set_target_input_args { + unsigned int target_1: 1; + unsigned int pad: 7; +} __attribute__((packed)); -typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *); +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)); -typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *); +struct intel_sdvo_get_trained_inputs_response { + unsigned int input0_trained: 1; + unsigned int input1_trained: 1; + unsigned int pad: 6; +} __attribute__((packed)); -struct blkcg_policy { - int plid; - struct cftype *dfl_cftypes; - struct cftype *legacy_cftypes; - blkcg_pol_alloc_cpd_fn *cpd_alloc_fn; - blkcg_pol_free_cpd_fn *cpd_free_fn; - blkcg_pol_alloc_pd_fn *pd_alloc_fn; - blkcg_pol_init_pd_fn *pd_init_fn; - blkcg_pol_online_pd_fn *pd_online_fn; - blkcg_pol_offline_pd_fn *pd_offline_fn; - blkcg_pol_free_pd_fn *pd_free_fn; - blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn; - blkcg_pol_stat_pd_fn *pd_stat_fn; +struct intel_sdvo_encode { + u8 dvi_rev; + u8 hdmi_rev; }; -struct blkg_iostat { - u64 bytes[3]; - u64 ios[3]; -}; +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 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 intel_sdvo_preferred_input_timing_args { + u16 clock; + u16 width; + u16 height; + u8 interlace: 1; + u8 scaled: 1; + u8 pad: 6; +} __attribute__((packed)); -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]; - 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 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 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 intel_sdvo_pixel_clock_range { + u16 min; + u16 max; }; -struct blkcg_policy_data { - struct blkcg *blkcg; - int plid; +struct dma_buf_list { + struct list_head head; + struct mutex lock; }; -struct blkg_policy_data { - struct blkcg_gq *blkg; - int plid; - bool online; +struct dma_buf_import_sync_file { + __u32 flags; + __s32 fd; }; -enum prio_policy { - POLICY_NO_CHANGE = 0, - POLICY_PROMOTE_TO_RT = 1, - POLICY_RESTRICT_TO_BE = 2, - POLICY_ALL_TO_IDLE = 3, - POLICY_NONE_TO_RT = 4, +struct dma_fence_unwrap { + struct dma_fence *chain; + struct dma_fence *array; + unsigned int index; }; -struct ioprio_blkcg { - struct blkcg_policy_data cpd; - enum prio_policy prio_policy; +struct dma_buf_export_sync_file { + __u32 flags; + __s32 fd; }; -struct ioprio_blkg { - struct blkg_policy_data pd; +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; }; -enum { - IOU_PBUF_RING_MMAP = 1, +struct dma_buf_sync { + __u64 flags; }; -enum { - IORING_CQE_BUFFER_SHIFT = 16, +struct scsi_driver { + struct device_driver gendrv; + void (*rescan)(struct device *); + blk_status_t (*init_command)(struct scsi_cmnd *); + void (*uninit_command)(struct scsi_cmnd *); + int (*done)(struct scsi_cmnd *); + int (*eh_action)(struct scsi_cmnd *, int); + void (*eh_reset)(struct scsi_cmnd *); }; -struct io_provide_buf { - struct file *file; - __u64 addr; - __u32 len; - __u32 bgid; - __u16 nbufs; - __u16 bid; -}; +struct cdrom_device_ops; -struct io_uring_buf_reg { - __u64 ring_addr; - __u32 ring_entries; - __u16 bgid; - __u16 flags; - __u64 resv[3]; +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 (*exit)(struct cdrom_device_info *); + int mrw_mode_page; + bool opened_for_data; + __s64 last_media_change_ms; }; -enum { - EI_ETYPE_NULL = 0, - EI_ETYPE_ERRNO = 1, - EI_ETYPE_ERRNO_NULL = 2, - EI_ETYPE_TRUE = 3, -}; +struct cdrom_multisession; -struct ei_entry { - struct list_head list; - unsigned long start_addr; - unsigned long end_addr; - int etype; - void *priv; -}; +struct cdrom_mcn; -struct pcie_link_state { - struct pci_dev *pdev; - struct pci_dev *downstream; - struct pcie_link_state *root; - struct pcie_link_state *parent; - struct list_head sibling; - u32 aspm_support: 7; - u32 aspm_enabled: 7; - u32 aspm_capable: 7; - u32 aspm_default: 7; - int: 4; - u32 aspm_disable: 7; - u32 clkpm_capable: 1; - u32 clkpm_enabled: 1; - u32 clkpm_default: 1; - u32 clkpm_disable: 1; -}; +struct packet_command; -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 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 acpi_ged_event { - struct list_head node; - struct device *dev; - unsigned int gsi; - unsigned int irq; - acpi_handle handle; +struct cdrom_msf0 { + __u8 minute; + __u8 second; + __u8 frame; }; -struct acpi_ged_device { - struct device *dev; - struct list_head event_list; +union cdrom_addr { + struct cdrom_msf0 msf; + int lba; }; -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 cdrom_multisession { + union cdrom_addr addr; + __u8 xa_flag; + __u8 addr_format; }; -typedef u8 acpi_adr_space_type; - -struct acpi_common_descriptor { - void *common_pointer; - u8 descriptor_type; +struct cdrom_mcn { + __u8 medium_catalog_number[14]; }; -union acpi_descriptor { - struct acpi_common_descriptor common; - union acpi_operand_object object; - struct acpi_namespace_node node; - union acpi_parse_object op; +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]; }; -typedef u32 acpi_mutex_handle; - -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; +enum { + DISK_EVENT_MEDIA_CHANGE = 1, + DISK_EVENT_EJECT_REQUEST = 2, }; 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, + DISK_EVENT_FLAG_POLL = 1, + DISK_EVENT_FLAG_UEVENT = 2, + DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, }; -struct acpi_pkg_info { - u8 *free_space; - acpi_size length; - u32 object_space; - u32 num_packages; +enum { + mechtype_caddy = 0, + mechtype_tray = 1, + mechtype_popup = 2, + mechtype_individual_changer = 4, + mechtype_cartridge_changer = 5, }; -typedef acpi_status (*acpi_pkg_callback)(u8, union acpi_operand_object *, union acpi_generic_state *, void *); - -struct acpi_hardware_id { - struct list_head list; - const char *id; +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 virtio_device_id; +struct scsi_mode_data { + __u32 length; + __u16 block_descriptor_length; + __u8 medium_type; + __u8 device_specific; + __u8 header_length; + __u8 longlba: 1; +}; -struct virtio_device; +typedef struct scsi_cd Scsi_CD; -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 event_header { + __be16 data_len; + __u8 notification_class: 3; + __u8 reserved1: 4; + __u8 nea: 1; + __u8 supp_event_class; }; -struct virtio_device_id { - __u32 device; - __u32 vendor; +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 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; +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 virtqueue; - -typedef void vq_callback_t(struct virtqueue *); - -struct irq_affinity; +struct e1000_stats { + char stat_string[32]; + int type; + int sizeof_stat; + int stat_offset; +}; -struct virtio_shm_region; +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, + e1000_pch_nvp = 19, +}; -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 *); +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, }; -struct virtqueue { - struct list_head list; - void (*callback)(struct virtqueue *); - const char *name; - struct virtio_device *vdev; - unsigned int index; - unsigned int num_free; - unsigned int num_max; - bool reset; - void *priv; +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, }; -struct virtio_shm_region { - u64 addr; - u64 len; +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 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, +enum e1000_1000t_rx_status { + e1000_1000t_rx_status_not_ok = 0, + e1000_1000t_rx_status_ok = 1, + e1000_1000t_rx_status_undefined = 255, }; -struct virtio_input_event { - __le16 type; - __le16 code; - __le32 value; +enum e1000_ms_type { + e1000_ms_hw_default = 0, + e1000_ms_force_master = 1, + e1000_ms_force_slave = 2, + e1000_ms_auto = 3, }; -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; +enum e1000_rev_polarity { + e1000_rev_polarity_normal = 0, + e1000_rev_polarity_reversed = 1, + e1000_rev_polarity_undefined = 255, }; -struct input_mt_slot { - int abs[14]; - unsigned int frame; - unsigned int key; +enum e1000_smart_speed { + e1000_smart_speed_default = 0, + e1000_smart_speed_on = 1, + e1000_smart_speed_off = 2, }; -struct input_mt { - int trkid; - int num_slots; - int slot; - unsigned int flags; - unsigned int frame; - int *red; - struct input_mt_slot slots[0]; +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, }; -struct serial_private; +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, +}; -struct pciserial_board; +enum e1000_nvm_override { + e1000_nvm_override_none = 0, + e1000_nvm_override_spi_small = 1, + e1000_nvm_override_spi_large = 2, +}; -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 *); +enum e1000_bus_width { + e1000_bus_width_unknown = 0, + e1000_bus_width_pcie_x1 = 1, + e1000_bus_width_pcie_x2 = 2, + e1000_bus_width_pcie_x4 = 4, + e1000_bus_width_pcie_x8 = 8, + e1000_bus_width_32 = 9, + e1000_bus_width_64 = 10, + e1000_bus_width_reserved = 11, }; -struct serial_private { - struct pci_dev *dev; - unsigned int nr; - struct pci_serial_quirk *quirk; - const struct pciserial_board *board; - int line[0]; +enum e1000_ulp_state { + e1000_ulp_state_unknown = 0, + e1000_ulp_state_off = 1, + e1000_ulp_state_on = 2, }; -struct pciserial_board { +struct ptp_extts_request { + unsigned int index; unsigned int flags; - unsigned int num_ports; - unsigned int base_baud; - unsigned int uart_offset; - unsigned int reg_shift; - unsigned int first_offset; + unsigned int rsv[2]; }; -struct timedia_struct { - int num; - const unsigned short *ids; +struct ptp_clock_time { + __s64 sec; + __u32 nsec; + __u32 reserved; }; -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 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]; + }; }; -enum { - pci_channel_io_normal = 1, - pci_channel_io_frozen = 2, - pci_channel_io_perm_failure = 3, +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 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, +enum ptp_pin_function { + PTP_PF_NONE = 0, + PTP_PF_EXTTS = 1, + PTP_PF_PEROUT = 2, + PTP_PF_PHYSYNC = 3, }; -typedef u64 pci_bus_addr_t; - -struct pci_bus_region { - pci_bus_addr_t start; - pci_bus_addr_t end; +enum e1000_state_t { + __E1000_TESTING = 0, + __E1000_RESETTING = 1, + __E1000_ACCESS_SHARED_RESOURCE = 2, + __E1000_DOWN = 3, }; -struct f815xxa_data { - spinlock_t lock; - int idx; +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 drm_color_lut_tests { - DRM_COLOR_LUT_EQUAL_CHANNELS = 1, - DRM_COLOR_LUT_NON_DECREASING = 2, +enum { + NETDEV_STATS = 0, + E1000_STATS = 1, }; -struct drm_color_lut { - __u16 red; - __u16 green; - __u16 blue; - __u16 reserved; +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, }; -struct drm_prop_enum_list { - int type; - const char *name; +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, }; -struct drm_mode_crtc_lut { - __u32 crtc_id; - __u32 gamma_size; - __u64 red; - __u64 green; - __u64 blue; +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, }; -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 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 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 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 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; +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; }; -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 e1000_dev_spec_82571 { + bool laa_is_present; + u32 smb_counter; }; -struct drm_unique32 { - u32 unique_len; - u32 unique; +struct e1000_dev_spec_80003es2lan { + bool mdic_wa_enable; }; -typedef struct drm_unique32 drm_unique32_t; - -struct drm_unique { - __kernel_size_t unique_len; - char __attribute__((btf_type_tag("user"))) *unique; +struct e1000_shadow_ram { + u16 value; + bool modified; }; -struct drm_client32 { - int idx; - int auth; - u32 pid; - u32 uid; - u32 magic; - u32 iocs; +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; }; -typedef struct drm_client32 drm_client32_t; +struct e1000_hw; -struct drm_client { - int idx; - int auth; - unsigned long pid; - unsigned long uid; - unsigned long magic; - unsigned long iocs; +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 drm_stats32 { - u32 count; - struct { - u32 value; - enum drm_stat_type type; - } data[15]; +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; }; -typedef struct drm_stats32 drm_stats32_t; +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 drm_wait_vblank_request32 { - enum drm_vblank_seq_type type; - unsigned int sequence; - u32 signal; +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 drm_wait_vblank_reply32 { - enum drm_vblank_seq_type type; - unsigned int sequence; - s32 tval_sec; - s32 tval_usec; +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; }; -union drm_wait_vblank32 { - struct drm_wait_vblank_request32 request; - struct drm_wait_vblank_reply32 reply; +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 *); }; -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 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 drm_wait_vblank_reply { - enum drm_vblank_seq_type type; - unsigned int sequence; - long tval_sec; - long tval_usec; +struct e1000_bus_info { + enum e1000_bus_width width; + u16 func; }; -union drm_wait_vblank { - struct drm_wait_vblank_request request; - struct drm_wait_vblank_reply reply; +struct e1000_host_mng_dhcp_cookie { + u32 signature; + u8 status; + u8 reserved0; + u16 vlan_id; + u32 reserved1; + u16 reserved2; + u8 reserved3; + u8 checksum; }; -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)); +struct e1000_adapter; -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; +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 ttm_placement { - unsigned int num_placement; - const struct ttm_place *placement; - unsigned int num_busy_placement; - const struct ttm_place *busy_placement; +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 ttm_resource_cursor { - unsigned int priority; +struct e1000_phy_stats { + u32 idle_errors; + u32 receive_errors; }; -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 e1000_phy_regs { + u16 bmcr; + u16 bmsr; + u16 advertise; + u16 lpa; + u16 expansion; + u16 ctrl1000; + u16 stat1000; + u16 estatus; }; -struct i915_user_extension; - -typedef int (*i915_user_extension_fn)(struct i915_user_extension __attribute__((btf_type_tag("user"))) *, void *); +struct e1000_buffer; -struct i915_user_extension { - __u64 next_extension; - __u32 name; - __u32 flags; - __u32 rsvd[4]; +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; }; -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, +struct hwtstamp_config { + int flags; + int tx_type; + int rx_filter; }; -struct drm_i915_gem_create_ext_memory_regions { - struct i915_user_extension base; - __u32 pad; - __u32 num_regions; - __u64 regions; +struct cyclecounter { + u64 (*read)(const struct cyclecounter *); + u64 mask; + u32 mult; + u32 shift; }; -struct create_ext { - struct drm_i915_private *i915; - struct intel_memory_region *placements[7]; - unsigned int n_placements; - unsigned int placement_mask; - unsigned long flags; - unsigned int pat_index; +struct timecounter { + const struct cyclecounter *cc; + u64 cycle_last; + u64 nsec; + u64 mask; + u64 frac; }; -struct drm_i915_gem_memory_class_instance { - __u16 memory_class; - __u16 memory_instance; -}; +struct ptp_pin_desc; -struct drm_i915_gem_create { - __u64 size; - __u32 handle; - __u32 pad; -}; +struct ptp_system_timestamp; -struct drm_i915_gem_create_ext { - __u64 size; - __u32 handle; - __u32 flags; - __u64 extensions; -}; +struct system_device_crosststamp; -struct drm_i915_gem_create_ext_protected_content { - struct i915_user_extension base; - __u32 flags; +struct ptp_clock_info { + struct module *owner; + char name[32]; + s32 max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int n_pins; + int pps; + struct ptp_pin_desc *pin_config; + int (*adjfine)(struct ptp_clock_info *, long); + int (*adjphase)(struct ptp_clock_info *, s32); + s32 (*getmaxphase)(struct ptp_clock_info *); + int (*adjtime)(struct ptp_clock_info *, s64); + int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); + int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); + int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *); + int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); + int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *); + int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); + int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); + long (*do_aux_work)(struct ptp_clock_info *); }; -struct drm_i915_gem_create_ext_set_pat { - struct i915_user_extension base; - __u32 pat_index; - __u32 rsvd; -}; +struct e1000_info; -enum { - I915_PRIORITY_MIN = -1024, - I915_PRIORITY_NORMAL = 0, - I915_PRIORITY_MAX = 1024, - I915_PRIORITY_HEARTBEAT = 1025, - I915_PRIORITY_DISPLAY = 1026, -}; +struct msix_entry; -struct sched_cache { - struct list_head *priolist; -}; +struct ptp_clock; -struct intel_sa_info { - u16 displayrtids; - u8 deburst; - u8 deprogbwlimit; - u8 derating; +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: 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: 64; + 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: 64; + long: 64; + long: 64; + long: 64; }; -enum dbuf_slice { - DBUF_S1 = 0, - DBUF_S2 = 1, - DBUF_S3 = 2, - DBUF_S4 = 3, - I915_MAX_DBUF_SLICES = 4, +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 intel_dbuf_bw { - unsigned int max_bw[4]; - u8 active_planes[4]; -}; +struct e1000_ps_page; -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_point_peakbw; - u16 qgv_points_mask; - int min_cdclk[4]; - unsigned int data_rate[4]; - u8 num_active_planes[4]; +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 intel_qgv_point { - u16 dclk; - u16 t_rp; - u16 t_rdpre; - u16 t_rc; - u16 t_ras; - u16 t_rcd; +struct e1000_ps_page { + struct page *page; + u64 dma; }; -struct intel_psf_gv_point { - u8 clk; +struct msix_entry { + u32 vector; + u16 entry; }; -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 ptp_pin_desc { + char name[64]; + unsigned int index; + unsigned int func; + unsigned int chan; + unsigned int rsv[5]; }; -struct intel_dvo_device; +struct ptp_system_timestamp { + struct timespec64 pre_ts; + struct timespec64 post_ts; +}; -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 system_device_crosststamp { + ktime_t device; + ktime_t sys_realtime; + ktime_t sys_monoraw; }; -struct intel_dvo_device { +struct xhci_file_map { 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; + int (*show)(struct seq_file *, void *); }; -struct ns2501_reg { - u8 offset; - u8 value; +struct debugfs_reg32 { + char *name; + unsigned long offset; }; -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; +struct debugfs_regset32 { + const struct debugfs_reg32 *regs; + int nregs; + void *base; + struct device *dev; }; -enum { - MODE_640x480 = 0, - MODE_800x600 = 1, - MODE_1024x768 = 2, +struct xhci_regset { + char name[32]; + struct debugfs_regset32 regset; + size_t nregs; + struct list_head list; }; -struct ns2501_priv { - bool quiet; - const struct ns2501_configuration *conf; +struct xhci_slot_ctx { + __le32 dev_info; + __le32 dev_info2; + __le32 tt_info; + __le32 dev_state; + __le32 reserved[4]; }; -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, +struct xhci_ep_ctx { + __le32 ep_info; + __le32 ep_info2; + __le64 deq; + __le32 tx_info; + __le32 reserved[3]; }; -enum intel_fbc_id { - INTEL_FBC_A = 0, - INTEL_FBC_B = 1, - I915_MAX_FBCS = 2, +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 component_ops { - int (*bind)(struct device *, struct device *, void *); - void (*unbind)(struct device *, struct device *, void *); +struct xhci_slot_priv { + char name[32]; + struct dentry *root; + struct xhci_ep_priv *eps[31]; + struct xhci_virt_device *dev; }; -struct i915_pxp_component_ops; - -struct i915_pxp_component { - struct device *tee_dev; - const struct i915_pxp_component_ops *ops; - struct mutex mutex; +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 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 posix_clock; -struct drm_audio_component_ops; +struct posix_clock_context; -struct drm_audio_component_audio_ops; +struct posix_clock_operations { + struct module *owner; + int (*clock_adjtime)(struct posix_clock *, struct __kernel_timex *); + int (*clock_gettime)(struct posix_clock *, struct timespec64 *); + int (*clock_getres)(struct posix_clock *, struct timespec64 *); + int (*clock_settime)(struct posix_clock *, const struct timespec64 *); + long (*ioctl)(struct posix_clock_context *, unsigned int, unsigned long); + int (*open)(struct posix_clock_context *, fmode_t); + __poll_t (*poll)(struct posix_clock_context *, struct file *, poll_table *); + int (*release)(struct posix_clock_context *); + ssize_t (*read)(struct posix_clock_context *, uint, char __attribute__((btf_type_tag("user"))) *, size_t); +}; -struct drm_audio_component { +struct posix_clock { + struct posix_clock_operations ops; + struct cdev cdev; 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 rw_semaphore rwsem; + bool zombie; }; -struct i915_audio_component { - struct drm_audio_component base; - int aud_sample_rate[9]; +struct kthread_delayed_work { + struct kthread_work work; + struct timer_list timer; }; -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 ptp_clock { + struct posix_clock clock; + struct device dev; + struct ptp_clock_info *info; + dev_t devid; + int index; + struct pps_device *pps_source; + long dialed_frequency; + struct list_head tsevqs; + spinlock_t tsevqs_lock; + struct mutex pincfg_mux; + wait_queue_head_t tsev_wq; + int defunct; + struct device_attribute *pin_dev_attr; + struct attribute **pin_attr; + struct attribute_group pin_attr_group; + const struct attribute_group *pin_attr_groups[2]; + struct kthread_worker *kworker; + struct kthread_delayed_work aux_work; + unsigned int max_vclocks; + unsigned int n_vclocks; + int *vclock_index; + struct mutex n_vclocks_mux; + bool is_virtual_clock; + bool has_cycles; + struct dentry *debugfs_root; }; -struct 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 posix_clock_context { + struct posix_clock *clk; + void *private_clkdata; }; -enum i915_component_type { - I915_COMPONENT_AUDIO = 1, - I915_COMPONENT_HDCP = 2, - I915_COMPONENT_PXP = 3, - I915_COMPONENT_GSC_PROXY = 4, -}; +struct dm_target; -struct pxp42_create_arb_in { - struct pxp_cmd_header header; - u32 protection_mode; - u32 session_id; +typedef int (*dm_ctr_fn)(struct dm_target *, unsigned int, char **); + +typedef void (*dm_dtr_fn)(struct dm_target *); + +typedef int (*dm_map_fn)(struct dm_target *, struct bio *); + +union map_info; + +typedef int (*dm_clone_and_map_request_fn)(struct dm_target *, struct request *, union map_info *, struct request **); + +typedef void (*dm_release_clone_request_fn)(struct request *, union map_info *); + +typedef int (*dm_endio_fn)(struct dm_target *, struct bio *, blk_status_t *); + +typedef int (*dm_request_endio_fn)(struct dm_target *, struct request *, blk_status_t, union map_info *); + +typedef void (*dm_presuspend_fn)(struct dm_target *); + +typedef void (*dm_presuspend_undo_fn)(struct dm_target *); + +typedef void (*dm_postsuspend_fn)(struct dm_target *); + +typedef int (*dm_preresume_fn)(struct dm_target *); + +typedef void (*dm_resume_fn)(struct dm_target *); + +typedef enum { + STATUSTYPE_INFO = 0, + STATUSTYPE_TABLE = 1, + STATUSTYPE_IMA = 2, +} status_type_t; + +typedef void (*dm_status_fn)(struct dm_target *, status_type_t, unsigned int, char *, unsigned int); + +typedef int (*dm_message_fn)(struct dm_target *, unsigned int, char **, char *, unsigned int); + +typedef int (*dm_prepare_ioctl_fn)(struct dm_target *, struct block_device **); + +typedef int (*dm_report_zones_fn)(struct dm_target *); + +typedef int (*dm_busy_fn)(struct dm_target *); + +struct dm_dev; + +typedef int (*iterate_devices_callout_fn)(struct dm_target *, struct dm_dev *, sector_t, sector_t, void *); + +typedef int (*dm_iterate_devices_fn)(struct dm_target *, iterate_devices_callout_fn, void *); + +typedef void (*dm_io_hints_fn)(struct dm_target *, struct queue_limits *); + +enum dax_access_mode { + DAX_ACCESS = 0, + DAX_RECOVERY_WRITE = 1, }; -struct pxp42_create_arb_out { - struct pxp_cmd_header header; +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; }; -struct pxp42_inv_stream_key_in { - struct pxp_cmd_header header; - u32 rsvd[3]; +struct hd_geometry { + unsigned char heads; + unsigned char sectors; + unsigned short cylinders; + unsigned long start; }; -struct pxp42_inv_stream_key_out { - struct pxp_cmd_header header; - u32 rsvd; +struct dm_table; + +struct dm_target { + struct dm_table *table; + struct target_type *type; + sector_t begin; + sector_t len; + uint32_t max_io_len; + unsigned int num_flush_bios; + unsigned int num_discard_bios; + unsigned int num_secure_erase_bios; + unsigned int num_write_zeroes_bios; + unsigned int per_io_data_size; + void *private; + char *error; + bool flush_supported: 1; + bool discards_supported: 1; + bool max_discard_granularity: 1; + bool max_secure_erase_granularity: 1; + bool max_write_zeroes_granularity: 1; + bool limit_swap_bios: 1; + bool emulate_zone_append: 1; + bool accounts_remapped_io: 1; + bool needs_bio_set_dev: 1; }; -struct class_interface { - struct list_head node; - const struct class *class; - int (*add_dev)(struct device *); - void (*remove_dev)(struct device *); +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 dpm_order { - DPM_ORDER_NONE = 0, - DPM_ORDER_DEV_AFTER_PARENT = 1, - DPM_ORDER_PARENT_BEFORE_DEV = 2, - DPM_ORDER_DEV_LAST = 3, +struct mapped_device; + +struct dm_md_mempools; + +struct dm_table { + struct mapped_device *md; + enum dm_queue_mode type; + unsigned int depth; + unsigned int counts[16]; + sector_t *index[16]; + unsigned int num_targets; + unsigned int num_allocated; + sector_t *highs; + struct dm_target *targets; + struct target_type *immutable_target_type; + bool integrity_supported: 1; + bool singleton: 1; + unsigned int integrity_added: 1; + blk_mode_t mode; + struct list_head devices; + struct rw_semaphore devices_lock; + void (*event_fn)(void *); + void *event_context; + struct dm_md_mempools *mempools; }; -struct fwnode_link { - struct fwnode_handle *supplier; - struct list_head s_hook; - struct fwnode_handle *consumer; - struct list_head c_hook; - u8 flags; +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 class_dir { +struct dm_kobject_holder { struct kobject kobj; - const struct class *class; + struct completion completion; }; -struct root_device { - struct device dev; - struct module *owner; -}; +struct dm_io; -struct klist_iter { - struct klist *i_klist; - struct klist_node *i_cur; +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 subsys_private { - struct kset subsys; - struct kset *devices_kset; - struct list_head interfaces; - struct mutex mutex; - struct kset *drivers_kset; - struct klist klist_devices; - struct klist klist_drivers; - struct blocking_notifier_head bus_notifier; - unsigned int drivers_autoprobe: 1; - const struct bus_type *bus; - struct device *dev_root; - struct kset glue_dirs; - const struct class *class; - struct lock_class_key lock_key; -}; +typedef u16 blk_short_t; -struct dev_printk_info { - char subsystem[16]; - char device[48]; +struct dm_stats_aux { + bool merged; + unsigned long long duration_ns; }; -union device_attr_group_devres { - const struct attribute_group *group; - const struct attribute_group **groups; +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; }; -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 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; }; -enum phy_media { - PHY_MEDIA_DEFAULT = 0, - PHY_MEDIA_SR = 1, - PHY_MEDIA_DAC = 2, +struct dm_stats_last_position { + sector_t last_sector; + unsigned int last_rw; }; -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, +struct dm_md_mempools { + struct bio_set bs; + struct bio_set io_bs; }; -enum ata_lpm_hints { - ATA_LPM_EMPTY = 1, - ATA_LPM_HIPM = 2, - ATA_LPM_WAKE_ONLY = 4, +union map_info { + void *ptr; }; -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 dm_dev { + struct block_device *bdev; + struct bdev_handle *bdev_handle; + struct dax_device *dax_dev; + blk_mode_t mode; + char name[16]; }; -struct ahci_sg { - __le32 addr; - __le32 addr_hi; - __le32 reserved; - __le32 flags_size; +struct io_err_c { + struct dm_dev *dev; + sector_t start; }; -struct ahci_cmd_hdr; +struct snd_device; -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 snd_device_ops { + int (*dev_free)(struct snd_device *); + int (*dev_register)(struct snd_device *); + int (*dev_disconnect)(struct snd_device *); }; -struct ahci_cmd_hdr { - __le32 opts; - __le32 status; - __le32 tbl_addr; - __le32 tbl_addr_hi; - __le32 reserved[4]; +enum snd_device_state { + SNDRV_DEV_BUILD = 0, + SNDRV_DEV_REGISTERED = 1, + SNDRV_DEV_DISCONNECTED = 2, }; -struct clk_bulk_data; - -struct phy___2; - -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___2 **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); +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 clk_bulk_data { - const char *id; - struct clk *clk; -}; +struct snd_card; -struct phy_attrs { - u32 bus_width; - u32 max_link_rate; - enum phy_mode mode; +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 phy_ops; - -struct phy___2 { - struct device dev; - int id; - const struct phy_ops *ops; - struct mutex mutex; - int init_count; - int power_count; - struct phy_attrs attrs; - struct regulator *pwr; - struct dentry *debugfs; -}; +struct snd_shutdown_f_ops; -union phy_configure_opts; +struct snd_info_entry; -struct phy_ops { - int (*init)(struct phy___2 *); - int (*exit)(struct phy___2 *); - int (*power_on)(struct phy___2 *); - int (*power_off)(struct phy___2 *); - int (*set_mode)(struct phy___2 *, enum phy_mode, int); - int (*set_media)(struct phy___2 *, enum phy_media); - int (*set_speed)(struct phy___2 *, int); - int (*configure)(struct phy___2 *, union phy_configure_opts *); - int (*validate)(struct phy___2 *, enum phy_mode, int, union phy_configure_opts *); - int (*reset)(struct phy___2 *); - int (*calibrate)(struct phy___2 *); - void (*release)(struct phy___2 *); - struct module *owner; +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 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; +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 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 snd_kcontrol; -struct phy_configure_opts_lvds { - unsigned int bits_per_lane_and_dclk_cycle; - unsigned long differential_clk_rate; - unsigned int lanes; - bool is_slave; -}; +struct snd_jack; -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 snd_jack_kctl { + struct snd_kcontrol *kctl; + struct list_head list; + unsigned int mask_bits; + struct snd_jack *jack; + bool sw_inject_enable; }; -struct config_t; +typedef int snd_kcontrol_tlv_rw_t(struct snd_kcontrol *, int, unsigned int, unsigned int __attribute__((btf_type_tag("user"))) *); -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; -}; +typedef int snd_ctl_elem_iface_t; -struct config_t { - struct kref ref; - unsigned int state; - struct resource io[2]; - struct resource mem[4]; +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; }; -typedef __kernel_off_t off_t; +struct snd_ctl_elem_info; -typedef struct config_t config_t; +typedef int snd_kcontrol_info_t(struct snd_kcontrol *, struct snd_ctl_elem_info *); -typedef unsigned long u_long; +struct snd_ctl_elem_value; -typedef struct pccard_io_map pccard_io_map; +typedef int snd_kcontrol_get_t(struct snd_kcontrol *, struct snd_ctl_elem_value *); -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, +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 amd_chipset_type { - enum amd_chipset_gen gen; - u8 rev; +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]; }; -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; +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]; }; -enum input_clock_type { - INPUT_CLK_REAL = 0, - INPUT_CLK_MONO = 1, - INPUT_CLK_BOOT = 2, - INPUT_CLK_MAX = 3, +struct snd_aes_iec958 { + unsigned char status[24]; + unsigned char subcode[147]; + unsigned char pad; + unsigned char dig_subframe[4]; }; -union input_seq_state { - struct { - unsigned short pos; - bool mutex_acquired; - }; - void *p; +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]; }; -typedef int (*dr_match_t)(struct device *, void *, void *); +struct snd_fasync; -struct input_devres { - struct input_dev *input; +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; }; -enum ptp_pin_function { - PTP_PF_NONE = 0, - PTP_PF_EXTTS = 1, - PTP_PF_PEROUT = 2, - PTP_PF_PHYSYNC = 3, +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 ptp_pin_desc; - -struct ptp_system_timestamp; +typedef unsigned char snd_seq_event_type_t; -struct system_device_crosststamp; +typedef unsigned int snd_seq_tick_time_t; -struct ptp_clock_request; +struct snd_seq_real_time { + unsigned int tv_sec; + unsigned int tv_nsec; +}; -struct ptp_clock_info { - struct module *owner; - char name[32]; - s32 max_adj; - int n_alarm; - int n_ext_ts; - int n_per_out; - int n_pins; - int pps; - struct ptp_pin_desc *pin_config; - int (*adjfine)(struct ptp_clock_info *, long); - int (*adjphase)(struct ptp_clock_info *, s32); - s32 (*getmaxphase)(struct ptp_clock_info *); - int (*adjtime)(struct ptp_clock_info *, s64); - int (*gettime64)(struct ptp_clock_info *, struct timespec64 *); - int (*gettimex64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); - int (*getcrosststamp)(struct ptp_clock_info *, struct system_device_crosststamp *); - int (*settime64)(struct ptp_clock_info *, const struct timespec64 *); - int (*getcycles64)(struct ptp_clock_info *, struct timespec64 *); - int (*getcyclesx64)(struct ptp_clock_info *, struct timespec64 *, struct ptp_system_timestamp *); - int (*getcrosscycles)(struct ptp_clock_info *, struct system_device_crosststamp *); - int (*enable)(struct ptp_clock_info *, struct ptp_clock_request *, int); - int (*verify)(struct ptp_clock_info *, unsigned int, enum ptp_pin_function, unsigned int); - long (*do_aux_work)(struct ptp_clock_info *); +union snd_seq_timestamp { + snd_seq_tick_time_t tick; + struct snd_seq_real_time time; }; -struct ptp_pin_desc { - char name[64]; - unsigned int index; - unsigned int func; - unsigned int chan; - unsigned int rsv[5]; +struct snd_seq_addr { + unsigned char client; + unsigned char port; }; -struct ptp_system_timestamp { - struct timespec64 pre_ts; - struct timespec64 post_ts; +struct snd_seq_ev_note { + unsigned char channel; + unsigned char note; + unsigned char velocity; + unsigned char off_velocity; + unsigned int duration; }; -struct system_device_crosststamp { - ktime_t device; - ktime_t sys_realtime; - ktime_t sys_monoraw; +struct snd_seq_ev_ctrl { + unsigned char channel; + unsigned char unused1; + unsigned char unused2; + unsigned char unused3; + unsigned int param; + int value; }; -struct ptp_extts_request { - unsigned int index; - unsigned int flags; - unsigned int rsv[2]; +struct snd_seq_ev_raw8 { + unsigned char d[12]; }; -struct ptp_clock_time { - __s64 sec; - __u32 nsec; - __u32 reserved; +struct snd_seq_ev_raw32 { + unsigned int d[3]; }; -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 snd_seq_ev_ext { + unsigned int len; + void *ptr; +} __attribute__((packed)); + +struct snd_seq_queue_skew { + unsigned int value; + unsigned int base; }; -struct ptp_clock_request { - enum { - PTP_CLK_REQ_EXTTS = 0, - PTP_CLK_REQ_PEROUT = 1, - PTP_CLK_REQ_PPS = 2, - } type; +struct snd_seq_ev_queue_control { + unsigned char queue; + unsigned char pad[3]; union { - struct ptp_extts_request extts; - struct ptp_perout_request perout; - }; + 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 cyclecounter { - u64 (*read)(const struct cyclecounter *); - u64 mask; - u32 mult; - u32 shift; +struct snd_seq_connect { + struct snd_seq_addr sender; + struct snd_seq_addr dest; }; -struct timecounter { - const struct cyclecounter *cc; - u64 cycle_last; - u64 nsec; - u64 mask; - u64 frac; +struct snd_seq_result { + int event; + int result; }; -struct ptp_clock; - -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 snd_seq_event; -struct posix_clock; +struct snd_seq_ev_quote { + struct snd_seq_addr origin; + unsigned short value; + struct snd_seq_event *event; +} __attribute__((packed)); -struct __kernel_timex; +union snd_seq_event_data { + 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; +}; -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 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 snd_seq_event_data data; }; -struct posix_clock { - struct posix_clock_operations ops; - struct cdev cdev; - struct device *dev; - struct rw_semaphore rwsem; - bool zombie; +union __snd_seq_event { + struct snd_seq_event legacy; + struct { + struct snd_seq_event event; + } raw; }; -struct ptp_extts_event { - struct ptp_clock_time t; - unsigned int index; - unsigned int flags; - unsigned int rsv[2]; +struct snd_seq_pool; + +struct snd_seq_event_cell { + union { + struct snd_seq_event event; + union __snd_seq_event ump; + }; + struct snd_seq_pool *pool; + struct snd_seq_event_cell *next; }; -struct timestamp_event_queue { - struct ptp_extts_event buf[128]; - int head; - int tail; +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; }; -struct kthread_delayed_work { - struct kthread_work work; - struct timer_list timer; +struct snd_seq_prioq { + struct snd_seq_event_cell *head; + struct snd_seq_event_cell *tail; + int cells; + spinlock_t lock; }; -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; -}; +typedef struct snd_seq_real_time snd_seq_real_time_t; -struct __kernel_timex_timeval { - __kernel_time64_t tv_sec; - long long tv_usec; +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 __kernel_timex { - unsigned int modes; - long long offset; - long long freq; - long long maxerror; - long long esterror; - int status; - long long constant; - long long precision; - long long tolerance; - struct __kernel_timex_timeval time; - long long tick; - long long ppsfreq; - long long jitter; - int shift; - long long stabil; - long long jitcnt; - long long calcnt; - long long errcnt; - long long stbcnt; - int tai; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; +struct snd_seq_port_subscribe; -struct pps_source_info { - char name[32]; - char path[32]; - int mode; - void (*echo)(struct pps_device *, int, void *); +struct snd_seq_port_callback { struct module *owner; - struct device *dev; -}; - -struct pps_ktime { - __s64 sec; - __s32 nsec; - __u32 flags; + 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 pps_kparams { - int api_version; - int mode; - struct pps_ktime assert_off_tu; - struct pps_ktime clear_off_tu; +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 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 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 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; -}; - -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 dmi_device_attribute { - struct device_attribute dev_attr; - int field; -}; - -struct mafield { - const char *prefix; - int field; -}; - -enum nvmem_type { - NVMEM_TYPE_UNKNOWN = 0, - NVMEM_TYPE_EEPROM = 1, - NVMEM_TYPE_OTP = 2, - NVMEM_TYPE_BATTERY_BACKED = 3, - NVMEM_TYPE_FRAM = 4, +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; + unsigned char direction; + unsigned char ump_group; + char reserved[57]; }; 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); - -struct nvmem_keepout; - -struct nvmem_layout; - -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; - struct gpio_desc *wp_gpio; - struct nvmem_layout *layout; - void *priv; -}; - -struct nvmem_keepout { - unsigned int start; - unsigned int end; - unsigned char value; -}; - -struct nvmem_cell_info; - -struct nvmem_layout { - const char *name; - const struct of_device_id *of_match_table; - int (*add_cells)(struct device *, struct nvmem_device *, struct nvmem_layout *); - void (*fixup_cell_info)(struct nvmem_device *, struct nvmem_layout *, struct nvmem_cell_info *); - struct module *owner; - struct list_head node; -}; - -typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); - -struct nvmem_cell_info { - const char *name; - unsigned int offset; - size_t raw_len; - unsigned int bytes; - unsigned int bit_offset; - unsigned int nbits; - struct device_node *np; - nvmem_cell_post_process_t read_post_process; - void *priv; -}; - -struct nvmem_cell_table { - const char *nvmem_name; - const struct nvmem_cell_info *cells; - size_t ncells; - struct list_head node; -}; - -struct nvmem_cell_entry { - const char *name; - int offset; - size_t raw_len; - int bytes; - int bit_offset; - int nbits; - nvmem_cell_post_process_t read_post_process; - void *priv; - struct device_node *np; - struct nvmem_device *nvmem; - struct list_head node; -}; - -struct nvmem_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 nvmem_layout *layout; - struct device_node *of_node; - bool no_of_node; - nvmem_reg_read_t reg_read; - nvmem_reg_write_t reg_write; - int size; - int word_size; - int stride; - void *priv; - bool compat; - struct device *base_dev; -}; - -typedef void (*regmap_lock)(void *); - -typedef void (*regmap_unlock)(void *); - -enum regcache_type { - REGCACHE_NONE = 0, - REGCACHE_RBTREE = 1, - REGCACHE_FLAT = 2, - REGCACHE_MAPLE = 3, -}; - -enum regmap_endian { - REGMAP_ENDIAN_DEFAULT = 0, - REGMAP_ENDIAN_BIG = 1, - REGMAP_ENDIAN_LITTLE = 2, - REGMAP_ENDIAN_NATIVE = 3, -}; - -struct regmap_access_table; - -struct reg_default; - -struct regmap_range_cfg; - -struct regmap_config { - const char *name; - int reg_bits; - int reg_stride; - int reg_shift; - 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; - -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 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; -}; - -typedef u16 hda_nid_t; - -struct snd_array { - unsigned int used; - unsigned int alloced; - unsigned int elem_size; - unsigned int alloc_align; - void *list; -}; - -struct hdac_bus; - -struct hdac_widget_tree; - -struct regmap; - -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 hdac_rb { - __le32 *buf; - dma_addr_t addr; - unsigned short rp; - unsigned short wp; - int cmds[8]; - u32 res[8]; -}; - -struct hdac_bus_ops; - -struct hdac_ext_bus_ops; - -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; - bool not_use_interrupts: 1; - bool access_sdnctl_in_dword: 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; + SKB_FCLONE_UNAVAILABLE = 0, + SKB_FCLONE_ORIG = 1, + SKB_FCLONE_CLONE = 2, }; -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); +enum metadata_type { + METADATA_IP_TUNNEL = 0, + METADATA_HW_PORT_MUX = 1, + METADATA_MACSEC = 2, + METADATA_XFRM = 3, }; -struct hdac_ext_bus_ops { - int (*hdev_attach)(struct hdac_device *); - int (*hdev_detach)(struct hdac_device *); +struct ip_tunnel_key { + __be64 tun_id; + union { + struct { + __be32 src; + __be32 dst; + } ipv4; + struct { + struct in6_addr src; + struct in6_addr dst; + } ipv6; + } u; + __be16 tun_flags; + u8 tos; + u8 ttl; + __be32 label; + u32 nhid; + __be16 tp_src; + __be16 tp_dst; + __u8 flow_flags; }; -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)(); - -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 ip_tunnel_encap { + u16 type; + u16 flags; + __be16 sport; + __be16 dport; }; -struct tso_t { - int next_frag_idx; - int size; - void *data; - u16 ip_id; - u8 tlen; - bool ipv6; - u32 tcp_seq; -}; +struct dst_cache_pcpu; -struct cmsghdr { - __kernel_size_t cmsg_len; - int cmsg_level; - int cmsg_type; +struct dst_cache { + struct dst_cache_pcpu __attribute__((btf_type_tag("percpu"))) *cache; + unsigned long reset_ts; }; -struct compat_cmsghdr { - compat_size_t cmsg_len; - compat_int_t cmsg_level; - compat_int_t cmsg_type; +struct ip_tunnel_info { + struct ip_tunnel_key key; + struct ip_tunnel_encap encap; + struct dst_cache dst_cache; + u8 options_len; + u8 mode; }; -struct __kernel_old_timeval { - __kernel_long_t tv_sec; - __kernel_long_t tv_usec; +struct hw_port_info { + struct net_device *lower_dev; + u32 port_id; }; -struct compat_mmsghdr { - struct compat_msghdr msg_hdr; - compat_uint_t msg_len; -}; +typedef u64 sci_t; -struct mmsghdr { - struct user_msghdr msg_hdr; - unsigned int msg_len; +struct macsec_info { + sci_t sci; }; -struct scm_creds { - u32 pid; - kuid_t uid; - kgid_t gid; +struct xfrm_md_info { + u32 if_id; + int link; + struct dst_entry *dst_orig; }; -struct scm_fp_list; - -struct scm_cookie { - struct pid *pid; - struct scm_fp_list *fp; - struct scm_creds creds; - u32 secid; +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 scm_fp_list { - short count; - short max; - struct user_struct *user; - struct file *fp[253]; +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 old_timeval32 { - old_time32_t tv_sec; - s32 tv_usec; +struct qdisc_walker { + int stop; + int skip; + int count; + int (*fn)(struct Qdisc *, unsigned long, struct qdisc_walker *); }; -typedef __kernel_long_t __kernel_old_time_t; - -struct __kernel_old_timespec { - __kernel_old_time_t tv_sec; - long tv_nsec; +enum net_xmit_qdisc_t { + __NET_XMIT_STOLEN = 65536, + __NET_XMIT_BYPASS = 131072, }; 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, + 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, }; enum { @@ -59377,135 +59019,174 @@ enum { ETHTOOL_MSG_KERNEL_MAX = 43, }; -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, +struct features_reply_data { + struct ethnl_reply_data base; + u32 hw[2]; + u32 wanted[2]; + u32 active[2]; + u32 nochange[2]; + u32 all[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, -}; +typedef const char (* const ethnl_string_array_t)[32]; -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, +union nf_inet_addr { + __u32 all[4]; + __be32 ip; + __be32 ip6[4]; + struct in_addr in; + struct in6_addr in6; }; -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, +struct static_key_true { + struct static_key key; }; -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 sctp_conntrack { + SCTP_CONNTRACK_NONE = 0, + SCTP_CONNTRACK_CLOSED = 1, + SCTP_CONNTRACK_COOKIE_WAIT = 2, + SCTP_CONNTRACK_COOKIE_ECHOED = 3, + SCTP_CONNTRACK_ESTABLISHED = 4, + SCTP_CONNTRACK_SHUTDOWN_SENT = 5, + SCTP_CONNTRACK_SHUTDOWN_RECD = 6, + SCTP_CONNTRACK_SHUTDOWN_ACK_SENT = 7, + SCTP_CONNTRACK_HEARTBEAT_SENT = 8, + SCTP_CONNTRACK_HEARTBEAT_ACKED = 9, + SCTP_CONNTRACK_MAX = 10, }; -enum { - 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 ip_conntrack_info { + IP_CT_ESTABLISHED = 0, + IP_CT_RELATED = 1, + IP_CT_NEW = 2, + IP_CT_IS_REPLY = 3, + IP_CT_ESTABLISHED_REPLY = 3, + IP_CT_RELATED_REPLY = 4, + IP_CT_NUMBER = 5, + IP_CT_UNTRACKED = 7, }; -enum { - 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 ip_conntrack_dir { + IP_CT_DIR_ORIGINAL = 0, + IP_CT_DIR_REPLY = 1, + IP_CT_DIR_MAX = 2, }; -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 ip_conntrack_expect_events { + IPEXP_NEW = 0, + IPEXP_DESTROY = 1, }; -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 nf_ct_ext_id { + NF_CT_EXT_HELPER = 0, + NF_CT_EXT_NAT = 1, + NF_CT_EXT_SEQADJ = 2, + NF_CT_EXT_ACCT = 3, + NF_CT_EXT_NUM = 4, }; -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 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 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, +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; }; -struct ethnl_req_info { - struct net_device *dev; - netdevice_tracker dev_tracker; - u32 flags; -}; +typedef u16 u_int16_t; -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 nf_conntrack_man { + union nf_inet_addr u3; + union nf_conntrack_man_proto u; + u_int16_t l3num; }; -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_tuple { + struct nf_conntrack_man src; + struct { + union nf_inet_addr u3; + union { + __be16 all; + struct { + __be16 port; + } tcp; + struct { + __be16 port; + } udp; + struct { + u_int8_t type; + u_int8_t code; + } icmp; + struct { + __be16 port; + } dccp; + struct { + __be16 port; + } sctp; + struct { + __be16 key; + } gre; + } u; + u_int8_t protonum; + struct {} __nfct_hash_offsetend; + u_int8_t dir; + } dst; }; struct nf_conntrack_tuple_mask { @@ -59515,11 +59196,7 @@ struct nf_conntrack_tuple_mask { } src; }; -enum ip_conntrack_dir { - IP_CT_DIR_ORIGINAL = 0, - IP_CT_DIR_REPLY = 1, - IP_CT_DIR_MAX = 2, -}; +struct nf_conn; struct nf_conntrack_helper; @@ -59541,6 +59218,97 @@ struct nf_conntrack_expect { struct callback_head rcu; }; +struct nf_conntrack_tuple_hash { + struct hlist_nulls_node hnnode; + struct nf_conntrack_tuple tuple; +}; + +typedef u32 u_int32_t; + +typedef u64 u_int64_t; + +struct nf_ct_dccp { + u_int8_t role[2]; + u_int8_t state; + u_int8_t last_pkt; + u_int8_t last_dir; + u_int64_t handshake_seq; +}; + +struct ip_ct_sctp { + enum sctp_conntrack state; + __be32 vtag[2]; + u8 init[2]; + u8 last_dir; + u8 flags; +}; + +struct ip_ct_tcp_state { + u_int32_t td_end; + u_int32_t td_maxend; + u_int32_t td_maxwin; + u_int32_t td_maxack; + u_int8_t td_scale; + u_int8_t flags; +}; + +struct ip_ct_tcp { + struct ip_ct_tcp_state seen[2]; + u_int8_t state; + u_int8_t last_dir; + u_int8_t retrans; + u_int8_t last_index; + u_int32_t last_seq; + u_int32_t last_ack; + u_int32_t last_end; + u_int16_t last_win; + u_int8_t last_wscale; + u_int8_t last_flags; +}; + +struct nf_ct_udp { + unsigned long stream_ts; +}; + +struct nf_ct_gre { + unsigned int stream_timeout; + unsigned int timeout; +}; + +union nf_conntrack_proto { + struct nf_ct_dccp dccp; + struct ip_ct_sctp sctp; + struct ip_ct_tcp tcp; + struct nf_ct_udp udp; + struct nf_ct_gre gre; + unsigned int tmpl_padto; +}; + +struct nf_ct_ext; + +struct nf_conn { + struct nf_conntrack ct_general; + spinlock_t lock; + u32 timeout; + struct nf_conntrack_tuple_hash tuplehash[2]; + unsigned long status; + possible_net_t ct_net; + struct hlist_node nat_bysource; + struct {} __nfct_init_offset; + struct nf_conn *master; + u_int32_t secmark; + struct nf_ct_ext *ext; + union nf_conntrack_proto proto; +}; + +struct nf_ct_ext { + u8 offset[4]; + u8 len; + unsigned int gen_id; + long: 0; + char data[0]; +}; + struct nf_conntrack_expect_policy; struct nf_conntrack_helper { @@ -59567,147 +59335,479 @@ struct nf_conntrack_expect_policy { char name[16]; }; -enum nf_nat_manip_type { - NF_NAT_MANIP_SRC = 0, - NF_NAT_MANIP_DST = 1, +struct nf_conn_help { + struct nf_conntrack_helper __attribute__((btf_type_tag("rcu"))) *helper; + struct hlist_head expectations; + u8 expecting[4]; + long: 0; + char data[32]; }; -struct nf_nat_hook { - int (*parse_nat_setup)(struct nf_conn *, enum nf_nat_manip_type, const struct nlattr *); - void (*decode_session)(struct sk_buff *, struct flowi *); - unsigned int (*manip_pkt)(struct sk_buff *, struct nf_conn *, enum nf_nat_manip_type, enum ip_conntrack_dir); - void (*remove_nat_bysrc)(struct nf_conn *); +struct 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; }; -enum nf_ct_ext_id { - NF_CT_EXT_HELPER = 0, - NF_CT_EXT_NAT = 1, - NF_CT_EXT_SEQADJ = 2, - NF_CT_EXT_ACCT = 3, - NF_CT_EXT_NUM = 4, +struct nf_conntrack_zone { + u16 id; + u8 flags; + u8 dir; }; -enum nf_hook_ops_type { - NF_HOOK_OP_UNDEFINED = 0, - NF_HOOK_OP_NF_TABLES = 1, - NF_HOOK_OP_BPF = 2, +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; }; -enum tcp_conntrack { - TCP_CONNTRACK_NONE = 0, - TCP_CONNTRACK_SYN_SENT = 1, - TCP_CONNTRACK_SYN_RECV = 2, - TCP_CONNTRACK_ESTABLISHED = 3, - TCP_CONNTRACK_FIN_WAIT = 4, - TCP_CONNTRACK_CLOSE_WAIT = 5, - TCP_CONNTRACK_LAST_ACK = 6, - TCP_CONNTRACK_TIME_WAIT = 7, - TCP_CONNTRACK_CLOSE = 8, - TCP_CONNTRACK_LISTEN = 9, - TCP_CONNTRACK_MAX = 10, - TCP_CONNTRACK_IGNORE = 11, - TCP_CONNTRACK_RETRANS = 12, - TCP_CONNTRACK_UNACK = 13, - TCP_CONNTRACK_TIMEOUT_MAX = 14, +struct xt_tcp { + __u16 spts[2]; + __u16 dpts[2]; + __u8 option; + __u8 flg_mask; + __u8 flg_cmp; + __u8 invflags; }; -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, +struct udphdr { + __be16 source; + __be16 dest; + __be16 len; + __sum16 check; }; -enum ctattr_protonat { - CTA_PROTONAT_UNSPEC = 0, - CTA_PROTONAT_PORT_MIN = 1, - CTA_PROTONAT_PORT_MAX = 2, - __CTA_PROTONAT_MAX = 3, +struct xt_udp { + __u16 spts[2]; + __u16 dpts[2]; + __u8 invflags; }; -union nf_conntrack_nat_help {}; +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 nf_conn_nat { - union nf_conntrack_nat_help help; - int masq_index; +struct ipt_icmp { + __u8 type; + __u8 code[2]; + __u8 invflags; }; -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 ip6t_icmp { + __u8 type; + __u8 code[2]; + __u8 invflags; }; -struct nf_conntrack_zone { - u16 id; - u8 flags; - u8 dir; +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, }; -struct nf_conn_help { - struct nf_conntrack_helper __attribute__((btf_type_tag("rcu"))) *helper; - struct hlist_head expectations; - u8 expecting[4]; - long: 0; - char data[32]; +enum { + LINUX_MIB_NUM = 0, + LINUX_MIB_SYNCOOKIESSENT = 1, + LINUX_MIB_SYNCOOKIESRECV = 2, + LINUX_MIB_SYNCOOKIESFAILED = 3, + LINUX_MIB_EMBRYONICRSTS = 4, + LINUX_MIB_PRUNECALLED = 5, + LINUX_MIB_RCVPRUNED = 6, + LINUX_MIB_OFOPRUNED = 7, + LINUX_MIB_OUTOFWINDOWICMPS = 8, + LINUX_MIB_LOCKDROPPEDICMPS = 9, + LINUX_MIB_ARPFILTER = 10, + LINUX_MIB_TIMEWAITED = 11, + LINUX_MIB_TIMEWAITRECYCLED = 12, + LINUX_MIB_TIMEWAITKILLED = 13, + LINUX_MIB_PAWSACTIVEREJECTED = 14, + LINUX_MIB_PAWSESTABREJECTED = 15, + LINUX_MIB_DELAYEDACKS = 16, + LINUX_MIB_DELAYEDACKLOCKED = 17, + LINUX_MIB_DELAYEDACKLOST = 18, + LINUX_MIB_LISTENOVERFLOWS = 19, + LINUX_MIB_LISTENDROPS = 20, + LINUX_MIB_TCPHPHITS = 21, + LINUX_MIB_TCPPUREACKS = 22, + LINUX_MIB_TCPHPACKS = 23, + LINUX_MIB_TCPRENORECOVERY = 24, + LINUX_MIB_TCPSACKRECOVERY = 25, + LINUX_MIB_TCPSACKRENEGING = 26, + LINUX_MIB_TCPSACKREORDER = 27, + LINUX_MIB_TCPRENOREORDER = 28, + LINUX_MIB_TCPTSREORDER = 29, + LINUX_MIB_TCPFULLUNDO = 30, + LINUX_MIB_TCPPARTIALUNDO = 31, + LINUX_MIB_TCPDSACKUNDO = 32, + LINUX_MIB_TCPLOSSUNDO = 33, + LINUX_MIB_TCPLOSTRETRANSMIT = 34, + LINUX_MIB_TCPRENOFAILURES = 35, + LINUX_MIB_TCPSACKFAILURES = 36, + LINUX_MIB_TCPLOSSFAILURES = 37, + LINUX_MIB_TCPFASTRETRANS = 38, + LINUX_MIB_TCPSLOWSTARTRETRANS = 39, + LINUX_MIB_TCPTIMEOUTS = 40, + LINUX_MIB_TCPLOSSPROBES = 41, + LINUX_MIB_TCPLOSSPROBERECOVERY = 42, + LINUX_MIB_TCPRENORECOVERYFAIL = 43, + LINUX_MIB_TCPSACKRECOVERYFAIL = 44, + LINUX_MIB_TCPRCVCOLLAPSED = 45, + LINUX_MIB_TCPDSACKOLDSENT = 46, + LINUX_MIB_TCPDSACKOFOSENT = 47, + LINUX_MIB_TCPDSACKRECV = 48, + LINUX_MIB_TCPDSACKOFORECV = 49, + LINUX_MIB_TCPABORTONDATA = 50, + LINUX_MIB_TCPABORTONCLOSE = 51, + LINUX_MIB_TCPABORTONMEMORY = 52, + LINUX_MIB_TCPABORTONTIMEOUT = 53, + LINUX_MIB_TCPABORTONLINGER = 54, + LINUX_MIB_TCPABORTFAILED = 55, + LINUX_MIB_TCPMEMORYPRESSURES = 56, + LINUX_MIB_TCPMEMORYPRESSURESCHRONO = 57, + LINUX_MIB_TCPSACKDISCARD = 58, + LINUX_MIB_TCPDSACKIGNOREDOLD = 59, + LINUX_MIB_TCPDSACKIGNOREDNOUNDO = 60, + LINUX_MIB_TCPSPURIOUSRTOS = 61, + LINUX_MIB_TCPMD5NOTFOUND = 62, + LINUX_MIB_TCPMD5UNEXPECTED = 63, + LINUX_MIB_TCPMD5FAILURE = 64, + LINUX_MIB_SACKSHIFTED = 65, + LINUX_MIB_SACKMERGED = 66, + LINUX_MIB_SACKSHIFTFALLBACK = 67, + LINUX_MIB_TCPBACKLOGDROP = 68, + LINUX_MIB_PFMEMALLOCDROP = 69, + LINUX_MIB_TCPMINTTLDROP = 70, + LINUX_MIB_TCPDEFERACCEPTDROP = 71, + LINUX_MIB_IPRPFILTER = 72, + LINUX_MIB_TCPTIMEWAITOVERFLOW = 73, + LINUX_MIB_TCPREQQFULLDOCOOKIES = 74, + LINUX_MIB_TCPREQQFULLDROP = 75, + LINUX_MIB_TCPRETRANSFAIL = 76, + LINUX_MIB_TCPRCVCOALESCE = 77, + LINUX_MIB_TCPBACKLOGCOALESCE = 78, + LINUX_MIB_TCPOFOQUEUE = 79, + LINUX_MIB_TCPOFODROP = 80, + LINUX_MIB_TCPOFOMERGE = 81, + LINUX_MIB_TCPCHALLENGEACK = 82, + LINUX_MIB_TCPSYNCHALLENGE = 83, + LINUX_MIB_TCPFASTOPENACTIVE = 84, + LINUX_MIB_TCPFASTOPENACTIVEFAIL = 85, + LINUX_MIB_TCPFASTOPENPASSIVE = 86, + LINUX_MIB_TCPFASTOPENPASSIVEFAIL = 87, + LINUX_MIB_TCPFASTOPENLISTENOVERFLOW = 88, + LINUX_MIB_TCPFASTOPENCOOKIEREQD = 89, + LINUX_MIB_TCPFASTOPENBLACKHOLE = 90, + LINUX_MIB_TCPSPURIOUS_RTX_HOSTQUEUES = 91, + LINUX_MIB_BUSYPOLLRXPACKETS = 92, + LINUX_MIB_TCPAUTOCORKING = 93, + LINUX_MIB_TCPFROMZEROWINDOWADV = 94, + LINUX_MIB_TCPTOZEROWINDOWADV = 95, + LINUX_MIB_TCPWANTZEROWINDOWADV = 96, + LINUX_MIB_TCPSYNRETRANS = 97, + LINUX_MIB_TCPORIGDATASENT = 98, + LINUX_MIB_TCPHYSTARTTRAINDETECT = 99, + LINUX_MIB_TCPHYSTARTTRAINCWND = 100, + LINUX_MIB_TCPHYSTARTDELAYDETECT = 101, + LINUX_MIB_TCPHYSTARTDELAYCWND = 102, + LINUX_MIB_TCPACKSKIPPEDSYNRECV = 103, + LINUX_MIB_TCPACKSKIPPEDPAWS = 104, + LINUX_MIB_TCPACKSKIPPEDSEQ = 105, + LINUX_MIB_TCPACKSKIPPEDFINWAIT2 = 106, + LINUX_MIB_TCPACKSKIPPEDTIMEWAIT = 107, + LINUX_MIB_TCPACKSKIPPEDCHALLENGE = 108, + LINUX_MIB_TCPWINPROBE = 109, + LINUX_MIB_TCPKEEPALIVE = 110, + LINUX_MIB_TCPMTUPFAIL = 111, + LINUX_MIB_TCPMTUPSUCCESS = 112, + LINUX_MIB_TCPDELIVERED = 113, + LINUX_MIB_TCPDELIVEREDCE = 114, + LINUX_MIB_TCPACKCOMPRESSED = 115, + LINUX_MIB_TCPZEROWINDOWDROP = 116, + LINUX_MIB_TCPRCVQDROP = 117, + LINUX_MIB_TCPWQUEUETOOBIG = 118, + LINUX_MIB_TCPFASTOPENPASSIVEALTKEY = 119, + LINUX_MIB_TCPTIMEOUTREHASH = 120, + LINUX_MIB_TCPDUPLICATEDATAREHASH = 121, + LINUX_MIB_TCPDSACKRECVSEGS = 122, + LINUX_MIB_TCPDSACKIGNOREDDUBIOUS = 123, + LINUX_MIB_TCPMIGRATEREQSUCCESS = 124, + LINUX_MIB_TCPMIGRATEREQFAILURE = 125, + LINUX_MIB_TCPPLBREHASH = 126, + LINUX_MIB_TCPAOREQUIRED = 127, + LINUX_MIB_TCPAOBAD = 128, + LINUX_MIB_TCPAOKEYNOTFOUND = 129, + LINUX_MIB_TCPAOGOOD = 130, + LINUX_MIB_TCPAODROPPEDICMPS = 131, + __LINUX_MIB_MAX = 132, }; -struct nf_ct_seqadj { - u32 correction_pos; - s32 offset_before; - s32 offset_after; +enum tcp_ca_state { + TCP_CA_Open = 0, + TCP_CA_Disorder = 1, + TCP_CA_CWR = 2, + TCP_CA_Recovery = 3, + TCP_CA_Loss = 4, }; -struct nf_conn_seqadj { - struct nf_ct_seqadj seq[2]; +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 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; +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, }; -struct nf_nat_proto_clean { - u8 l3proto; - u8 l4proto; +enum { + SOCK_WAKE_IO = 0, + SOCK_WAKE_WAITD = 1, + SOCK_WAKE_SPACE = 2, + SOCK_WAKE_URG = 3, }; -struct nf_nat_lookup_hook_priv { - struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *entries; - struct callback_head callback_head; +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, }; -struct nf_nat_hooks_net { - struct nf_hook_ops *nat_hook_ops; - unsigned int users; +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, }; -struct nat_net { - struct nf_nat_hooks_net nat_proto_net[11]; +enum { + TCP_MIB_NUM = 0, + TCP_MIB_RTOALGORITHM = 1, + TCP_MIB_RTOMIN = 2, + TCP_MIB_RTOMAX = 3, + TCP_MIB_MAXCONN = 4, + TCP_MIB_ACTIVEOPENS = 5, + TCP_MIB_PASSIVEOPENS = 6, + TCP_MIB_ATTEMPTFAILS = 7, + TCP_MIB_ESTABRESETS = 8, + TCP_MIB_CURRESTAB = 9, + TCP_MIB_INSEGS = 10, + TCP_MIB_OUTSEGS = 11, + TCP_MIB_RETRANSSEGS = 12, + TCP_MIB_INERRS = 13, + TCP_MIB_OUTRSTS = 14, + TCP_MIB_CSUMERRORS = 15, + __TCP_MIB_MAX = 16, }; -enum tcp_ca_state { - TCP_CA_Open = 0, - TCP_CA_Disorder = 1, - TCP_CA_CWR = 2, - TCP_CA_Recovery = 3, - TCP_CA_Loss = 4, +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 tcp_queue { - TCP_FRAG_IN_WRITE_QUEUE = 0, - TCP_FRAG_IN_RTX_QUEUE = 1, +enum tcp_synack_type { + TCP_SYNACK_NORMAL = 0, + TCP_SYNACK_FASTOPEN = 1, + TCP_SYNACK_COOKIE = 2, +}; + +enum { + INET_FLAGS_PKTINFO = 0, + INET_FLAGS_TTL = 1, + INET_FLAGS_TOS = 2, + INET_FLAGS_RECVOPTS = 3, + INET_FLAGS_RETOPTS = 4, + INET_FLAGS_PASSSEC = 5, + INET_FLAGS_ORIGDSTADDR = 6, + INET_FLAGS_CHECKSUM = 7, + INET_FLAGS_RECVFRAGSIZE = 8, + INET_FLAGS_RECVERR = 9, + INET_FLAGS_RECVERR_RFC4884 = 10, + INET_FLAGS_FREEBIND = 11, + INET_FLAGS_HDRINCL = 12, + INET_FLAGS_MC_LOOP = 13, + INET_FLAGS_MC_ALL = 14, + INET_FLAGS_TRANSPARENT = 15, + INET_FLAGS_IS_ICSK = 16, + INET_FLAGS_NODEFRAG = 17, + INET_FLAGS_BIND_ADDRESS_NO_PORT = 18, + INET_FLAGS_DEFER_CONNECT = 19, + INET_FLAGS_MC6_LOOP = 20, + INET_FLAGS_RECVERR6_RFC4884 = 21, + INET_FLAGS_MC6_ALL = 22, + INET_FLAGS_AUTOFLOWLABEL_SET = 23, + INET_FLAGS_AUTOFLOWLABEL = 24, + INET_FLAGS_DONTFRAG = 25, + INET_FLAGS_RECVERR6 = 26, + INET_FLAGS_REPFLOW = 27, + INET_FLAGS_RTALERT_ISOLATE = 28, + INET_FLAGS_SNDFLOW = 29, +}; + +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_UNIX_CONNECT = 9, + CGROUP_INET4_POST_BIND = 10, + CGROUP_INET6_POST_BIND = 11, + CGROUP_UDP4_SENDMSG = 12, + CGROUP_UDP6_SENDMSG = 13, + CGROUP_UNIX_SENDMSG = 14, + CGROUP_SYSCTL = 15, + CGROUP_UDP4_RECVMSG = 16, + CGROUP_UDP6_RECVMSG = 17, + CGROUP_UNIX_RECVMSG = 18, + CGROUP_GETSOCKOPT = 19, + CGROUP_SETSOCKOPT = 20, + CGROUP_INET4_GETPEERNAME = 21, + CGROUP_INET6_GETPEERNAME = 22, + CGROUP_UNIX_GETPEERNAME = 23, + CGROUP_INET4_GETSOCKNAME = 24, + CGROUP_INET6_GETSOCKNAME = 25, + CGROUP_UNIX_GETSOCKNAME = 26, + CGROUP_INET_SOCK_RELEASE = 27, + CGROUP_LSM_START = 28, + CGROUP_LSM_END = 27, + MAX_CGROUP_BPF_ATTACH_TYPE = 28, +}; + +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 inet_csk_ack_state_t { @@ -59716,868 +59816,989 @@ enum inet_csk_ack_state_t { ICSK_ACK_PUSHED = 4, ICSK_ACK_PUSHED2 = 8, ICSK_ACK_NOW = 16, + ICSK_ACK_NOMEM = 32, }; -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; +enum tcp_ca_ack_event_flags { + CA_ACK_SLOWPATH = 1, + CA_ACK_WIN_UPDATE = 2, + CA_ACK_ECE = 4, }; -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; +enum tcp_queue { + TCP_FRAG_IN_WRITE_QUEUE = 0, + TCP_FRAG_IN_RTX_QUEUE = 1, }; -struct tcp_sack_block { - u32 start_seq; - u32 end_seq; +enum { + SCM_TSTAMP_SND = 0, + SCM_TSTAMP_SCHED = 1, + SCM_TSTAMP_ACK = 2, }; -struct tcp_sock_af_ops; +enum tsq_enum { + TSQ_THROTTLED = 0, + TSQ_QUEUED = 1, + TCP_TSQ_DEFERRED = 2, + TCP_WRITE_TIMER_DEFERRED = 3, + TCP_DELACK_TIMER_DEFERRED = 4, + TCP_MTU_REDUCED_DEFERRED = 5, + TCP_ACK_DEFERRED = 6, +}; -struct tcp_md5sig_info; +enum tcp_fastopen_client_fail { + TFO_STATUS_UNSPEC = 0, + TFO_COOKIE_UNAVAILABLE = 1, + TFO_DATA_NOT_ACKED = 2, + TFO_SYN_RETRANSMITTED = 3, +}; -struct tcp_fastopen_request; +union tcp_word_hdr { + struct tcphdr hdr; + __be32 words[5]; +}; -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; - 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 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_md5sig_key; +struct tcp_request_sock_ops; -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_request_sock { + struct inet_request_sock req; + const struct tcp_request_sock_ops *af_specific; + u64 snt_synack; + bool tfo_listener; + bool is_mptcp; + bool req_usec_ts; + u32 txhash; + u32 rcv_isn; + u32 snt_isn; + u32 ts_off; + u32 last_oow_ack_time; + u32 rcv_nxt; + u8 syn_tos; }; -union tcp_md5_addr { - struct in_addr a4; - struct in6_addr a6; +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 *); }; -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_sack_block_wire { + __be32 start_seq; + __be32 end_seq; }; -struct tcp_md5sig_info { - struct hlist_head head; - struct callback_head rcu; +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 tcp_fastopen_cookie { - __le64 val[2]; - s8 len; - bool exp; +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 tcp_fastopen_request { - struct tcp_fastopen_cookie cookie; - struct msghdr *data; - size_t size; - int copied; - struct ubuf_info *uarg; +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 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; +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 { - __u32 is_app_limited: 1; - __u32 delivered_ce: 20; - __u32 unused: 11; - __u32 delivered; - u64 first_tx_mstamp; - u64 delivered_mstamp; - } tx; - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - } header; + struct 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 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 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 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; +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, }; -struct sk_psock_progs { - struct bpf_prog *msg_parser; - struct bpf_prog *stream_parser; - struct bpf_prog *stream_verdict; - struct bpf_prog *skb_verdict; +enum rt_scope_t { + RT_SCOPE_UNIVERSE = 0, + RT_SCOPE_SITE = 200, + RT_SCOPE_LINK = 253, + RT_SCOPE_HOST = 254, + RT_SCOPE_NOWHERE = 255, }; -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 ip_sf_socklist { + unsigned int sl_max; + unsigned int sl_count; + struct callback_head rcu; + __be32 sl_addr[0]; }; -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 sockaddr_in { + __kernel_sa_family_t sin_family; + __be16 sin_port; + struct in_addr sin_addr; + unsigned char __pad[8]; }; -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 igmphdr { + __u8 type; + __u8 code; + __sum16 csum; + __be32 group; }; -struct sk_psock_work_state { - u32 len; - u32 off; +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 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 delayed_work work; - struct rcu_work rwork; +struct igmpv3_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + __be32 grec_mca; + __be32 grec_src[0]; }; -struct sk_msg_sg { - u32 start; - u32 curr; - u32 end; - u32 size; - u32 copybreak; - unsigned long copy[1]; - struct scatterlist data[19]; +struct igmpv3_report { + __u8 type; + __u8 resv1; + __sum16 csum; + __be16 resv2; + __be16 ngrec; + struct igmpv3_grec grec[0]; }; -struct sk_msg { - struct sk_msg_sg sg; - void *data; - void *data_end; - u32 apply_bytes; - u32 cork_bytes; - u32 flags; - struct sk_buff *skb; - struct sock *sk_redir; - struct sock *sk; - struct list_head list; +struct seq_net_private { + struct net *net; + netns_tracker ns_tracker; }; -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 igmp_mc_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *in_dev; }; -struct sockaddr_un { - __kernel_sa_family_t sun_family; - char sun_path[108]; +struct igmp_mcf_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct in_device *idev; + struct ip_mc_list *im; }; -struct unix_address { - refcount_t refcnt; - int len; - struct sockaddr_un name[0]; +struct netdev_notifier_info { + struct net_device *dev; + struct netlink_ext_ack *extack; }; -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 ip_mreq_source { + __be32 imr_multiaddr; + __be32 imr_interface; + __be32 imr_sourceaddr; }; -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_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]; + }; + }; }; -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, +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 br_input_skb_cb { - struct net_device *brdev; - u16 frag_max_size; - u8 proxyarp_replied: 1; - u8 src_port_isolated: 1; -}; +struct xfrm_dst; -struct flow_dissector_key_control { - u16 thoff; - u16 addr_type; - u32 flags; +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 *); }; -struct flow_dissector_key_basic { - __be16 n_proto; - u8 ip_proto; - u8 padding; +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 flow_dissector_key_tags { - u32 flow_label; +enum { + ICMP6_MIB_NUM = 0, + ICMP6_MIB_INMSGS = 1, + ICMP6_MIB_INERRORS = 2, + ICMP6_MIB_OUTMSGS = 3, + ICMP6_MIB_OUTERRORS = 4, + ICMP6_MIB_CSUMERRORS = 5, + ICMP6_MIB_RATELIMITHOST = 6, + __ICMP6_MIB_MAX = 7, }; -struct 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 sockaddr_in6 { + unsigned short sin6_family; + __be16 sin6_port; + __be32 sin6_flowinfo; + struct in6_addr sin6_addr; + __u32 sin6_scope_id; }; -struct flow_dissector_key_keyid { - __be32 keyid; +struct mld2_grec { + __u8 grec_type; + __u8 grec_auxwords; + __be16 grec_nsrcs; + struct in6_addr grec_mca; + struct in6_addr grec_src[0]; }; -struct flow_dissector_key_ports { - union { - __be32 ports; - struct { - __be16 src; - __be16 dst; - }; - }; +struct mld2_report { + struct icmp6hdr mld2r_hdr; + struct mld2_grec mld2r_grec[0]; }; -struct flow_dissector_key_icmp { - struct { - u8 type; - u8 code; - }; - u16 id; +struct mld_msg { + struct icmp6hdr mld_hdr; + struct in6_addr mld_mca; }; -struct flow_dissector_key_ipv4_addrs { - __be32 src; - __be32 dst; +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 flow_dissector_key_ipv6_addrs { - struct in6_addr src; - struct in6_addr dst; +struct igmp6_mc_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct inet6_dev *idev; }; -struct flow_dissector_key_tipc { - __be32 key; +struct igmp6_mcf_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct inet6_dev *idev; + struct ifmcaddr6 *im; }; -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 group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; }; -struct flow_keys { - struct flow_dissector_key_control control; - struct flow_dissector_key_basic basic; - struct flow_dissector_key_tags tags; - struct flow_dissector_key_vlan vlan; - struct flow_dissector_key_vlan cvlan; - struct flow_dissector_key_keyid keyid; - struct flow_dissector_key_ports ports; - struct flow_dissector_key_icmp icmp; - struct flow_dissector_key_addrs addrs; - long: 0; +enum nl80211_key_mode { + NL80211_KEY_RX_TX = 0, + NL80211_KEY_NO_TX = 1, + NL80211_KEY_SET_TX = 2, }; -struct flow_dissector { - unsigned int used_keys; - unsigned short offset[32]; +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 ip6_fraglist_iter { - struct ipv6hdr *tmp_hdr; - struct sk_buff *frag; - int offset; - unsigned int hlen; - __be32 frag_id; - u8 nexthdr; +struct cfg80211_cached_keys { + struct key_params params[4]; + u8 data[52]; + int def; }; -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 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 nf_bridge_frag_data; - -struct ip6_rt_info { - struct in6_addr daddr; - struct in6_addr saddr; - u_int32_t mark; +enum nl80211_hidden_ssid { + NL80211_HIDDEN_SSID_NOT_IN_USE = 0, + NL80211_HIDDEN_SSID_ZERO_LEN = 1, + NL80211_HIDDEN_SSID_ZERO_CONTENTS = 2, }; -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, +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 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 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 ieee80211_regulatory_flags { - REGULATORY_CUSTOM_REG = 1, - REGULATORY_STRICT_REG = 2, - REGULATORY_DISABLE_BEACON_HINTS = 4, - REGULATORY_COUNTRY_IE_FOLLOW_POWER = 8, - REGULATORY_COUNTRY_IE_IGNORE = 16, - REGULATORY_ENABLE_RELAX_NO_IR = 32, - REGULATORY_WIPHY_SELF_MANAGED = 128, +enum 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_ext_feature_index { - NL80211_EXT_FEATURE_VHT_IBSS = 0, - NL80211_EXT_FEATURE_RRM = 1, - NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER = 2, - NL80211_EXT_FEATURE_SCAN_START_TIME = 3, - NL80211_EXT_FEATURE_BSS_PARENT_TSF = 4, - NL80211_EXT_FEATURE_SET_SCAN_DWELL = 5, - NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 6, - NL80211_EXT_FEATURE_BEACON_RATE_HT = 7, - NL80211_EXT_FEATURE_BEACON_RATE_VHT = 8, - NL80211_EXT_FEATURE_FILS_STA = 9, - NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA = 10, - NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED = 11, - NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 12, - NL80211_EXT_FEATURE_CQM_RSSI_LIST = 13, - NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 14, - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK = 15, - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X = 16, - NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 17, - NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP = 18, - NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 19, - NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 20, - NL80211_EXT_FEATURE_MFP_OPTIONAL = 21, - NL80211_EXT_FEATURE_LOW_SPAN_SCAN = 22, - NL80211_EXT_FEATURE_LOW_POWER_SCAN = 23, - NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN = 24, - NL80211_EXT_FEATURE_DFS_OFFLOAD = 25, - NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 = 26, - NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT = 27, - NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 27, - NL80211_EXT_FEATURE_TXQS = 28, - NL80211_EXT_FEATURE_SCAN_RANDOM_SN = 29, - NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT = 30, - NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 31, - NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 32, - NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 33, - NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 34, - NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 35, - NL80211_EXT_FEATURE_EXT_KEY_ID = 36, - NL80211_EXT_FEATURE_STA_TX_PWR = 37, - NL80211_EXT_FEATURE_SAE_OFFLOAD = 38, - NL80211_EXT_FEATURE_VLAN_OFFLOAD = 39, - NL80211_EXT_FEATURE_AQL = 40, - NL80211_EXT_FEATURE_BEACON_PROTECTION = 41, - NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 42, - NL80211_EXT_FEATURE_PROTECTED_TWT = 43, - NL80211_EXT_FEATURE_DEL_IBSS_STA = 44, - NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS = 45, - NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 46, - NL80211_EXT_FEATURE_SCAN_FREQ_KHZ = 47, - NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 48, - NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 49, - NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 50, - NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 51, - NL80211_EXT_FEATURE_FILS_DISCOVERY = 52, - NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 53, - NL80211_EXT_FEATURE_BEACON_RATE_HE = 54, - NL80211_EXT_FEATURE_SECURE_LTF = 55, - NL80211_EXT_FEATURE_SECURE_RTT = 56, - NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 57, - NL80211_EXT_FEATURE_BSS_COLOR = 58, - NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 59, - NL80211_EXT_FEATURE_RADAR_BACKGROUND = 60, - NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 61, - NL80211_EXT_FEATURE_PUNCT = 62, - NL80211_EXT_FEATURE_SECURE_NAN = 63, - NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA = 64, - NUM_NL80211_EXT_FEATURES = 65, - MAX_NL80211_EXT_FEATURES = 64, +enum nl80211_acl_policy { + NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED = 0, + NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 1, }; -enum rfkill_hard_block_reasons { - RFKILL_HARD_BLOCK_SIGNAL = 1, - RFKILL_HARD_BLOCK_NOT_OWNER = 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 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_mfp { + NL80211_MFP_NO = 0, + NL80211_MFP_REQUIRED = 1, + NL80211_MFP_OPTIONAL = 2, }; -enum nl80211_timeout_reason { - NL80211_TIMEOUT_UNSPECIFIED = 0, - NL80211_TIMEOUT_SCAN = 1, - NL80211_TIMEOUT_AUTH = 2, - NL80211_TIMEOUT_ASSOC = 3, +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_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 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, }; -struct cfg80211_beacon_registration { - struct list_head list; - u32 nlportid; +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, }; -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; +enum nl80211_coalesce_condition { + NL80211_COALESCE_CONDITION_MATCH = 0, + NL80211_COALESCE_CONDITION_NO_MATCH = 1, }; -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]; +enum nl80211_external_auth_action { + NL80211_EXTERNAL_AUTH_START = 0, + NL80211_EXTERNAL_AUTH_ABORT = 1, }; -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]; +enum nl80211_attrs { + NL80211_ATTR_UNSPEC = 0, + NL80211_ATTR_WIPHY = 1, + NL80211_ATTR_WIPHY_NAME = 2, + NL80211_ATTR_IFINDEX = 3, + NL80211_ATTR_IFNAME = 4, + NL80211_ATTR_IFTYPE = 5, + NL80211_ATTR_MAC = 6, + NL80211_ATTR_KEY_DATA = 7, + NL80211_ATTR_KEY_IDX = 8, + NL80211_ATTR_KEY_CIPHER = 9, + NL80211_ATTR_KEY_SEQ = 10, + NL80211_ATTR_KEY_DEFAULT = 11, + NL80211_ATTR_BEACON_INTERVAL = 12, + NL80211_ATTR_DTIM_PERIOD = 13, + NL80211_ATTR_BEACON_HEAD = 14, + NL80211_ATTR_BEACON_TAIL = 15, + NL80211_ATTR_STA_AID = 16, + NL80211_ATTR_STA_FLAGS = 17, + NL80211_ATTR_STA_LISTEN_INTERVAL = 18, + NL80211_ATTR_STA_SUPPORTED_RATES = 19, + NL80211_ATTR_STA_VLAN = 20, + NL80211_ATTR_STA_INFO = 21, + NL80211_ATTR_WIPHY_BANDS = 22, + NL80211_ATTR_MNTR_FLAGS = 23, + NL80211_ATTR_MESH_ID = 24, + NL80211_ATTR_STA_PLINK_ACTION = 25, + NL80211_ATTR_MPATH_NEXT_HOP = 26, + NL80211_ATTR_MPATH_INFO = 27, + NL80211_ATTR_BSS_CTS_PROT = 28, + NL80211_ATTR_BSS_SHORT_PREAMBLE = 29, + NL80211_ATTR_BSS_SHORT_SLOT_TIME = 30, + NL80211_ATTR_HT_CAPABILITY = 31, + NL80211_ATTR_SUPPORTED_IFTYPES = 32, + NL80211_ATTR_REG_ALPHA2 = 33, + NL80211_ATTR_REG_RULES = 34, + NL80211_ATTR_MESH_CONFIG = 35, + NL80211_ATTR_BSS_BASIC_RATES = 36, + NL80211_ATTR_WIPHY_TXQ_PARAMS = 37, + NL80211_ATTR_WIPHY_FREQ = 38, + NL80211_ATTR_WIPHY_CHANNEL_TYPE = 39, + NL80211_ATTR_KEY_DEFAULT_MGMT = 40, + NL80211_ATTR_MGMT_SUBTYPE = 41, + NL80211_ATTR_IE = 42, + NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 43, + NL80211_ATTR_SCAN_FREQUENCIES = 44, + NL80211_ATTR_SCAN_SSIDS = 45, + NL80211_ATTR_GENERATION = 46, + NL80211_ATTR_BSS = 47, + NL80211_ATTR_REG_INITIATOR = 48, + NL80211_ATTR_REG_TYPE = 49, + NL80211_ATTR_SUPPORTED_COMMANDS = 50, + NL80211_ATTR_FRAME = 51, + NL80211_ATTR_SSID = 52, + NL80211_ATTR_AUTH_TYPE = 53, + NL80211_ATTR_REASON_CODE = 54, + NL80211_ATTR_KEY_TYPE = 55, + NL80211_ATTR_MAX_SCAN_IE_LEN = 56, + NL80211_ATTR_CIPHER_SUITES = 57, + NL80211_ATTR_FREQ_BEFORE = 58, + NL80211_ATTR_FREQ_AFTER = 59, + NL80211_ATTR_FREQ_FIXED = 60, + NL80211_ATTR_WIPHY_RETRY_SHORT = 61, + NL80211_ATTR_WIPHY_RETRY_LONG = 62, + NL80211_ATTR_WIPHY_FRAG_THRESHOLD = 63, + NL80211_ATTR_WIPHY_RTS_THRESHOLD = 64, + NL80211_ATTR_TIMED_OUT = 65, + NL80211_ATTR_USE_MFP = 66, + NL80211_ATTR_STA_FLAGS2 = 67, + NL80211_ATTR_CONTROL_PORT = 68, + NL80211_ATTR_TESTDATA = 69, + NL80211_ATTR_PRIVACY = 70, + NL80211_ATTR_DISCONNECTED_BY_AP = 71, + NL80211_ATTR_STATUS_CODE = 72, + NL80211_ATTR_CIPHER_SUITES_PAIRWISE = 73, + NL80211_ATTR_CIPHER_SUITE_GROUP = 74, + NL80211_ATTR_WPA_VERSIONS = 75, + NL80211_ATTR_AKM_SUITES = 76, + NL80211_ATTR_REQ_IE = 77, + NL80211_ATTR_RESP_IE = 78, + NL80211_ATTR_PREV_BSSID = 79, + NL80211_ATTR_KEY = 80, + NL80211_ATTR_KEYS = 81, + NL80211_ATTR_PID = 82, + NL80211_ATTR_4ADDR = 83, + NL80211_ATTR_SURVEY_INFO = 84, + NL80211_ATTR_PMKID = 85, + NL80211_ATTR_MAX_NUM_PMKIDS = 86, + NL80211_ATTR_DURATION = 87, + NL80211_ATTR_COOKIE = 88, + NL80211_ATTR_WIPHY_COVERAGE_CLASS = 89, + NL80211_ATTR_TX_RATES = 90, + NL80211_ATTR_FRAME_MATCH = 91, + NL80211_ATTR_ACK = 92, + NL80211_ATTR_PS_STATE = 93, + NL80211_ATTR_CQM = 94, + NL80211_ATTR_LOCAL_STATE_CHANGE = 95, + NL80211_ATTR_AP_ISOLATE = 96, + NL80211_ATTR_WIPHY_TX_POWER_SETTING = 97, + NL80211_ATTR_WIPHY_TX_POWER_LEVEL = 98, + NL80211_ATTR_TX_FRAME_TYPES = 99, + NL80211_ATTR_RX_FRAME_TYPES = 100, + NL80211_ATTR_FRAME_TYPE = 101, + NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 102, + NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT = 103, + NL80211_ATTR_SUPPORT_IBSS_RSN = 104, + NL80211_ATTR_WIPHY_ANTENNA_TX = 105, + NL80211_ATTR_WIPHY_ANTENNA_RX = 106, + NL80211_ATTR_MCAST_RATE = 107, + NL80211_ATTR_OFFCHANNEL_TX_OK = 108, + NL80211_ATTR_BSS_HT_OPMODE = 109, + NL80211_ATTR_KEY_DEFAULT_TYPES = 110, + NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION = 111, + NL80211_ATTR_MESH_SETUP = 112, + NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX = 113, + NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX = 114, + NL80211_ATTR_SUPPORT_MESH_AUTH = 115, + NL80211_ATTR_STA_PLINK_STATE = 116, + NL80211_ATTR_WOWLAN_TRIGGERS = 117, + NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED = 118, + NL80211_ATTR_SCHED_SCAN_INTERVAL = 119, + NL80211_ATTR_INTERFACE_COMBINATIONS = 120, + NL80211_ATTR_SOFTWARE_IFTYPES = 121, + NL80211_ATTR_REKEY_DATA = 122, + NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS = 123, + NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 124, + NL80211_ATTR_SCAN_SUPP_RATES = 125, + NL80211_ATTR_HIDDEN_SSID = 126, + NL80211_ATTR_IE_PROBE_RESP = 127, + NL80211_ATTR_IE_ASSOC_RESP = 128, + NL80211_ATTR_STA_WME = 129, + NL80211_ATTR_SUPPORT_AP_UAPSD = 130, + NL80211_ATTR_ROAM_SUPPORT = 131, + NL80211_ATTR_SCHED_SCAN_MATCH = 132, + NL80211_ATTR_MAX_MATCH_SETS = 133, + NL80211_ATTR_PMKSA_CANDIDATE = 134, + NL80211_ATTR_TX_NO_CCK_RATE = 135, + NL80211_ATTR_TDLS_ACTION = 136, + NL80211_ATTR_TDLS_DIALOG_TOKEN = 137, + NL80211_ATTR_TDLS_OPERATION = 138, + NL80211_ATTR_TDLS_SUPPORT = 139, + NL80211_ATTR_TDLS_EXTERNAL_SETUP = 140, + NL80211_ATTR_DEVICE_AP_SME = 141, + NL80211_ATTR_DONT_WAIT_FOR_ACK = 142, + NL80211_ATTR_FEATURE_FLAGS = 143, + NL80211_ATTR_PROBE_RESP_OFFLOAD = 144, + NL80211_ATTR_PROBE_RESP = 145, + NL80211_ATTR_DFS_REGION = 146, + NL80211_ATTR_DISABLE_HT = 147, + NL80211_ATTR_HT_CAPABILITY_MASK = 148, + NL80211_ATTR_NOACK_MAP = 149, + NL80211_ATTR_INACTIVITY_TIMEOUT = 150, + NL80211_ATTR_RX_SIGNAL_DBM = 151, + NL80211_ATTR_BG_SCAN_PERIOD = 152, + NL80211_ATTR_WDEV = 153, + NL80211_ATTR_USER_REG_HINT_TYPE = 154, + NL80211_ATTR_CONN_FAILED_REASON = 155, + NL80211_ATTR_AUTH_DATA = 156, + NL80211_ATTR_VHT_CAPABILITY = 157, + NL80211_ATTR_SCAN_FLAGS = 158, + NL80211_ATTR_CHANNEL_WIDTH = 159, + NL80211_ATTR_CENTER_FREQ1 = 160, + NL80211_ATTR_CENTER_FREQ2 = 161, + NL80211_ATTR_P2P_CTWINDOW = 162, + NL80211_ATTR_P2P_OPPPS = 163, + NL80211_ATTR_LOCAL_MESH_POWER_MODE = 164, + NL80211_ATTR_ACL_POLICY = 165, + NL80211_ATTR_MAC_ADDRS = 166, + NL80211_ATTR_MAC_ACL_MAX = 167, + NL80211_ATTR_RADAR_EVENT = 168, + NL80211_ATTR_EXT_CAPA = 169, + NL80211_ATTR_EXT_CAPA_MASK = 170, + NL80211_ATTR_STA_CAPABILITY = 171, + NL80211_ATTR_STA_EXT_CAPABILITY = 172, + NL80211_ATTR_PROTOCOL_FEATURES = 173, + NL80211_ATTR_SPLIT_WIPHY_DUMP = 174, + NL80211_ATTR_DISABLE_VHT = 175, + NL80211_ATTR_VHT_CAPABILITY_MASK = 176, + NL80211_ATTR_MDID = 177, + NL80211_ATTR_IE_RIC = 178, + NL80211_ATTR_CRIT_PROT_ID = 179, + NL80211_ATTR_MAX_CRIT_PROT_DURATION = 180, + NL80211_ATTR_PEER_AID = 181, + NL80211_ATTR_COALESCE_RULE = 182, + NL80211_ATTR_CH_SWITCH_COUNT = 183, + NL80211_ATTR_CH_SWITCH_BLOCK_TX = 184, + NL80211_ATTR_CSA_IES = 185, + NL80211_ATTR_CNTDWN_OFFS_BEACON = 186, + NL80211_ATTR_CNTDWN_OFFS_PRESP = 187, + NL80211_ATTR_RXMGMT_FLAGS = 188, + NL80211_ATTR_STA_SUPPORTED_CHANNELS = 189, + NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES = 190, + NL80211_ATTR_HANDLE_DFS = 191, + NL80211_ATTR_SUPPORT_5_MHZ = 192, + NL80211_ATTR_SUPPORT_10_MHZ = 193, + NL80211_ATTR_OPMODE_NOTIF = 194, + NL80211_ATTR_VENDOR_ID = 195, + NL80211_ATTR_VENDOR_SUBCMD = 196, + NL80211_ATTR_VENDOR_DATA = 197, + NL80211_ATTR_VENDOR_EVENTS = 198, + NL80211_ATTR_QOS_MAP = 199, + NL80211_ATTR_MAC_HINT = 200, + NL80211_ATTR_WIPHY_FREQ_HINT = 201, + NL80211_ATTR_MAX_AP_ASSOC_STA = 202, + NL80211_ATTR_TDLS_PEER_CAPABILITY = 203, + NL80211_ATTR_SOCKET_OWNER = 204, + NL80211_ATTR_CSA_C_OFFSETS_TX = 205, + NL80211_ATTR_MAX_CSA_COUNTERS = 206, + NL80211_ATTR_TDLS_INITIATOR = 207, + NL80211_ATTR_USE_RRM = 208, + NL80211_ATTR_WIPHY_DYN_ACK = 209, + NL80211_ATTR_TSID = 210, + NL80211_ATTR_USER_PRIO = 211, + NL80211_ATTR_ADMITTED_TIME = 212, + NL80211_ATTR_SMPS_MODE = 213, + NL80211_ATTR_OPER_CLASS = 214, + NL80211_ATTR_MAC_MASK = 215, + NL80211_ATTR_WIPHY_SELF_MANAGED_REG = 216, + NL80211_ATTR_EXT_FEATURES = 217, + NL80211_ATTR_SURVEY_RADIO_STATS = 218, + NL80211_ATTR_NETNS_FD = 219, + NL80211_ATTR_SCHED_SCAN_DELAY = 220, + NL80211_ATTR_REG_INDOOR = 221, + NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 222, + NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 223, + NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 224, + NL80211_ATTR_SCHED_SCAN_PLANS = 225, + NL80211_ATTR_PBSS = 226, + NL80211_ATTR_BSS_SELECT = 227, + NL80211_ATTR_STA_SUPPORT_P2P_PS = 228, + NL80211_ATTR_PAD = 229, + NL80211_ATTR_IFTYPE_EXT_CAPA = 230, + NL80211_ATTR_MU_MIMO_GROUP_DATA = 231, + NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR = 232, + NL80211_ATTR_SCAN_START_TIME_TSF = 233, + NL80211_ATTR_SCAN_START_TIME_TSF_BSSID = 234, + NL80211_ATTR_MEASUREMENT_DURATION = 235, + NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY = 236, + NL80211_ATTR_MESH_PEER_AID = 237, + NL80211_ATTR_NAN_MASTER_PREF = 238, + NL80211_ATTR_BANDS = 239, + NL80211_ATTR_NAN_FUNC = 240, + NL80211_ATTR_NAN_MATCH = 241, + NL80211_ATTR_FILS_KEK = 242, + NL80211_ATTR_FILS_NONCES = 243, + NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED = 244, + NL80211_ATTR_BSSID = 245, + NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI = 246, + NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST = 247, + NL80211_ATTR_TIMEOUT_REASON = 248, + NL80211_ATTR_FILS_ERP_USERNAME = 249, + NL80211_ATTR_FILS_ERP_REALM = 250, + NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM = 251, + NL80211_ATTR_FILS_ERP_RRK = 252, + NL80211_ATTR_FILS_CACHE_ID = 253, + NL80211_ATTR_PMK = 254, + NL80211_ATTR_SCHED_SCAN_MULTI = 255, + NL80211_ATTR_SCHED_SCAN_MAX_REQS = 256, + NL80211_ATTR_WANT_1X_4WAY_HS = 257, + NL80211_ATTR_PMKR0_NAME = 258, + NL80211_ATTR_PORT_AUTHORIZED = 259, + NL80211_ATTR_EXTERNAL_AUTH_ACTION = 260, + NL80211_ATTR_EXTERNAL_AUTH_SUPPORT = 261, + NL80211_ATTR_NSS = 262, + NL80211_ATTR_ACK_SIGNAL = 263, + NL80211_ATTR_CONTROL_PORT_OVER_NL80211 = 264, + NL80211_ATTR_TXQ_STATS = 265, + NL80211_ATTR_TXQ_LIMIT = 266, + NL80211_ATTR_TXQ_MEMORY_LIMIT = 267, + NL80211_ATTR_TXQ_QUANTUM = 268, + NL80211_ATTR_HE_CAPABILITY = 269, + NL80211_ATTR_FTM_RESPONDER = 270, + NL80211_ATTR_FTM_RESPONDER_STATS = 271, + NL80211_ATTR_TIMEOUT = 272, + NL80211_ATTR_PEER_MEASUREMENTS = 273, + NL80211_ATTR_AIRTIME_WEIGHT = 274, + NL80211_ATTR_STA_TX_POWER_SETTING = 275, + NL80211_ATTR_STA_TX_POWER = 276, + NL80211_ATTR_SAE_PASSWORD = 277, + NL80211_ATTR_TWT_RESPONDER = 278, + NL80211_ATTR_HE_OBSS_PD = 279, + NL80211_ATTR_WIPHY_EDMG_CHANNELS = 280, + NL80211_ATTR_WIPHY_EDMG_BW_CONFIG = 281, + NL80211_ATTR_VLAN_ID = 282, + NL80211_ATTR_HE_BSS_COLOR = 283, + NL80211_ATTR_IFTYPE_AKM_SUITES = 284, + NL80211_ATTR_TID_CONFIG = 285, + NL80211_ATTR_CONTROL_PORT_NO_PREAUTH = 286, + NL80211_ATTR_PMK_LIFETIME = 287, + NL80211_ATTR_PMK_REAUTH_THRESHOLD = 288, + NL80211_ATTR_RECEIVE_MULTICAST = 289, + NL80211_ATTR_WIPHY_FREQ_OFFSET = 290, + NL80211_ATTR_CENTER_FREQ1_OFFSET = 291, + NL80211_ATTR_SCAN_FREQ_KHZ = 292, + NL80211_ATTR_HE_6GHZ_CAPABILITY = 293, + NL80211_ATTR_FILS_DISCOVERY = 294, + NL80211_ATTR_UNSOL_BCAST_PROBE_RESP = 295, + NL80211_ATTR_S1G_CAPABILITY = 296, + NL80211_ATTR_S1G_CAPABILITY_MASK = 297, + NL80211_ATTR_SAE_PWE = 298, + NL80211_ATTR_RECONNECT_REQUESTED = 299, + NL80211_ATTR_SAR_SPEC = 300, + NL80211_ATTR_DISABLE_HE = 301, + NL80211_ATTR_OBSS_COLOR_BITMAP = 302, + NL80211_ATTR_COLOR_CHANGE_COUNT = 303, + NL80211_ATTR_COLOR_CHANGE_COLOR = 304, + NL80211_ATTR_COLOR_CHANGE_ELEMS = 305, + NL80211_ATTR_MBSSID_CONFIG = 306, + NL80211_ATTR_MBSSID_ELEMS = 307, + NL80211_ATTR_RADAR_BACKGROUND = 308, + NL80211_ATTR_AP_SETTINGS_FLAGS = 309, + NL80211_ATTR_EHT_CAPABILITY = 310, + NL80211_ATTR_DISABLE_EHT = 311, + NL80211_ATTR_MLO_LINKS = 312, + NL80211_ATTR_MLO_LINK_ID = 313, + NL80211_ATTR_MLD_ADDR = 314, + NL80211_ATTR_MLO_SUPPORT = 315, + NL80211_ATTR_MAX_NUM_AKM_SUITES = 316, + NL80211_ATTR_EML_CAPABILITY = 317, + NL80211_ATTR_MLD_CAPA_AND_OPS = 318, + NL80211_ATTR_TX_HW_TIMESTAMP = 319, + NL80211_ATTR_RX_HW_TIMESTAMP = 320, + NL80211_ATTR_TD_BITMAP = 321, + NL80211_ATTR_PUNCT_BITMAP = 322, + NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS = 323, + NL80211_ATTR_HW_TIMESTAMP_ENABLED = 324, + NL80211_ATTR_EMA_RNR_ELEMS = 325, + NL80211_ATTR_MLO_LINK_DISABLED = 326, + __NL80211_ATTR_AFTER_LAST = 327, + NUM_NL80211_ATTR = 327, + NL80211_ATTR_MAX = 326, }; -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; - }; +enum ieee80211_channel_flags { + IEEE80211_CHAN_DISABLED = 1, + IEEE80211_CHAN_NO_IR = 2, + IEEE80211_CHAN_PSD = 4, + IEEE80211_CHAN_RADAR = 8, + IEEE80211_CHAN_NO_HT40PLUS = 16, + IEEE80211_CHAN_NO_HT40MINUS = 32, + IEEE80211_CHAN_NO_OFDM = 64, + IEEE80211_CHAN_NO_80MHZ = 128, + IEEE80211_CHAN_NO_160MHZ = 256, + IEEE80211_CHAN_INDOOR_ONLY = 512, + IEEE80211_CHAN_IR_CONCURRENT = 1024, + IEEE80211_CHAN_NO_20MHZ = 2048, + IEEE80211_CHAN_NO_10MHZ = 4096, + IEEE80211_CHAN_NO_HE = 8192, + IEEE80211_CHAN_1MHZ = 16384, + IEEE80211_CHAN_2MHZ = 32768, + IEEE80211_CHAN_4MHZ = 65536, + IEEE80211_CHAN_8MHZ = 131072, + IEEE80211_CHAN_16MHZ = 262144, + IEEE80211_CHAN_NO_320MHZ = 524288, + IEEE80211_CHAN_NO_EHT = 1048576, }; -struct mesh_rmc { - struct hlist_head bucket[256]; - u32 idx_mask; +enum nl80211_channel_type { + NL80211_CHAN_NO_HT = 0, + NL80211_CHAN_HT20 = 1, + NL80211_CHAN_HT40MINUS = 2, + NL80211_CHAN_HT40PLUS = 3, }; -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 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, + WIPHY_FLAG_CHANNEL_CHANGE_ON_BEACON = 33554432, }; -enum rate_info_flags { - RATE_INFO_FLAGS_MCS = 1, - RATE_INFO_FLAGS_VHT_MCS = 2, - RATE_INFO_FLAGS_SHORT_GI = 4, - RATE_INFO_FLAGS_DMG = 8, - RATE_INFO_FLAGS_HE_MCS = 16, - RATE_INFO_FLAGS_EDMG = 32, - RATE_INFO_FLAGS_EXTENDED_SC_DMG = 64, - RATE_INFO_FLAGS_EHT_MCS = 128, - RATE_INFO_FLAGS_S1G_MCS = 256, +enum nl80211_rate_info { + __NL80211_RATE_INFO_INVALID = 0, + NL80211_RATE_INFO_BITRATE = 1, + NL80211_RATE_INFO_MCS = 2, + NL80211_RATE_INFO_40_MHZ_WIDTH = 3, + NL80211_RATE_INFO_SHORT_GI = 4, + NL80211_RATE_INFO_BITRATE32 = 5, + NL80211_RATE_INFO_VHT_MCS = 6, + NL80211_RATE_INFO_VHT_NSS = 7, + NL80211_RATE_INFO_80_MHZ_WIDTH = 8, + NL80211_RATE_INFO_80P80_MHZ_WIDTH = 9, + NL80211_RATE_INFO_160_MHZ_WIDTH = 10, + NL80211_RATE_INFO_10_MHZ_WIDTH = 11, + NL80211_RATE_INFO_5_MHZ_WIDTH = 12, + NL80211_RATE_INFO_HE_MCS = 13, + NL80211_RATE_INFO_HE_NSS = 14, + NL80211_RATE_INFO_HE_GI = 15, + NL80211_RATE_INFO_HE_DCM = 16, + NL80211_RATE_INFO_HE_RU_ALLOC = 17, + NL80211_RATE_INFO_320_MHZ_WIDTH = 18, + NL80211_RATE_INFO_EHT_MCS = 19, + NL80211_RATE_INFO_EHT_NSS = 20, + NL80211_RATE_INFO_EHT_GI = 21, + NL80211_RATE_INFO_EHT_RU_ALLOC = 22, + NL80211_RATE_INFO_S1G_MCS = 23, + NL80211_RATE_INFO_S1G_NSS = 24, + NL80211_RATE_INFO_1_MHZ_WIDTH = 25, + NL80211_RATE_INFO_2_MHZ_WIDTH = 26, + NL80211_RATE_INFO_4_MHZ_WIDTH = 27, + NL80211_RATE_INFO_8_MHZ_WIDTH = 28, + NL80211_RATE_INFO_16_MHZ_WIDTH = 29, + __NL80211_RATE_INFO_AFTER_LAST = 30, + NL80211_RATE_INFO_MAX = 29, }; enum rate_info_bw { @@ -60597,73 +60818,28 @@ enum rate_info_bw { RATE_INFO_BW_16 = 13, }; -enum nl80211_nan_func_term_reason { - NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST = 0, - NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED = 1, - NL80211_NAN_FUNC_TERM_REASON_ERROR = 2, +enum rate_info_flags { + RATE_INFO_FLAGS_MCS = 1, + RATE_INFO_FLAGS_VHT_MCS = 2, + RATE_INFO_FLAGS_SHORT_GI = 4, + RATE_INFO_FLAGS_DMG = 8, + RATE_INFO_FLAGS_HE_MCS = 16, + RATE_INFO_FLAGS_EDMG = 32, + RATE_INFO_FLAGS_EXTENDED_SC_DMG = 64, + RATE_INFO_FLAGS_EHT_MCS = 128, + RATE_INFO_FLAGS_S1G_MCS = 256, }; -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 ieee80211_sdata_state_bits { - SDATA_STATE_RUNNING = 0, - SDATA_STATE_OFFCHANNEL = 1, - SDATA_STATE_OFFCHANNEL_BEACON_STOPPED = 2, -}; - -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 monitor_flags { - MONITOR_FLAG_CHANGED = 1, - MONITOR_FLAG_FCSFAIL = 2, - MONITOR_FLAG_PLCPFAIL = 4, - MONITOR_FLAG_CONTROL = 8, - MONITOR_FLAG_OTHER_BSS = 16, - MONITOR_FLAG_COOK_FRAMES = 32, - MONITOR_FLAG_ACTIVE = 64, -}; - -enum ieee80211_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 cfg80211_station_type { + CFG80211_STA_AP_CLIENT = 0, + CFG80211_STA_AP_CLIENT_UNASSOC = 1, + CFG80211_STA_AP_MLME_CLIENT = 2, + CFG80211_STA_AP_STA = 3, + CFG80211_STA_IBSS = 4, + CFG80211_STA_TDLS_PEER_SETUP = 5, + CFG80211_STA_TDLS_PEER_ACTIVE = 6, + CFG80211_STA_MESH_PEER_KERNEL = 7, + CFG80211_STA_MESH_PEER_USER = 8, }; enum nl80211_sta_flags { @@ -60679,39290 +60855,41416 @@ enum nl80211_sta_flags { NL80211_STA_FLAG_MAX = 7, }; +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 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 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_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 nl80211_commands { + NL80211_CMD_UNSPEC = 0, + NL80211_CMD_GET_WIPHY = 1, + NL80211_CMD_SET_WIPHY = 2, + NL80211_CMD_NEW_WIPHY = 3, + NL80211_CMD_DEL_WIPHY = 4, + NL80211_CMD_GET_INTERFACE = 5, + NL80211_CMD_SET_INTERFACE = 6, + NL80211_CMD_NEW_INTERFACE = 7, + NL80211_CMD_DEL_INTERFACE = 8, + NL80211_CMD_GET_KEY = 9, + NL80211_CMD_SET_KEY = 10, + NL80211_CMD_NEW_KEY = 11, + NL80211_CMD_DEL_KEY = 12, + NL80211_CMD_GET_BEACON = 13, + NL80211_CMD_SET_BEACON = 14, + NL80211_CMD_START_AP = 15, + NL80211_CMD_NEW_BEACON = 15, + NL80211_CMD_STOP_AP = 16, + NL80211_CMD_DEL_BEACON = 16, + NL80211_CMD_GET_STATION = 17, + NL80211_CMD_SET_STATION = 18, + NL80211_CMD_NEW_STATION = 19, + NL80211_CMD_DEL_STATION = 20, + NL80211_CMD_GET_MPATH = 21, + NL80211_CMD_SET_MPATH = 22, + NL80211_CMD_NEW_MPATH = 23, + NL80211_CMD_DEL_MPATH = 24, + NL80211_CMD_SET_BSS = 25, + NL80211_CMD_SET_REG = 26, + NL80211_CMD_REQ_SET_REG = 27, + NL80211_CMD_GET_MESH_CONFIG = 28, + NL80211_CMD_SET_MESH_CONFIG = 29, + NL80211_CMD_SET_MGMT_EXTRA_IE = 30, + NL80211_CMD_GET_REG = 31, + NL80211_CMD_GET_SCAN = 32, + NL80211_CMD_TRIGGER_SCAN = 33, + NL80211_CMD_NEW_SCAN_RESULTS = 34, + NL80211_CMD_SCAN_ABORTED = 35, + NL80211_CMD_REG_CHANGE = 36, + NL80211_CMD_AUTHENTICATE = 37, + NL80211_CMD_ASSOCIATE = 38, + NL80211_CMD_DEAUTHENTICATE = 39, + NL80211_CMD_DISASSOCIATE = 40, + NL80211_CMD_MICHAEL_MIC_FAILURE = 41, + NL80211_CMD_REG_BEACON_HINT = 42, + NL80211_CMD_JOIN_IBSS = 43, + NL80211_CMD_LEAVE_IBSS = 44, + NL80211_CMD_TESTMODE = 45, + NL80211_CMD_CONNECT = 46, + NL80211_CMD_ROAM = 47, + NL80211_CMD_DISCONNECT = 48, + NL80211_CMD_SET_WIPHY_NETNS = 49, + NL80211_CMD_GET_SURVEY = 50, + NL80211_CMD_NEW_SURVEY_RESULTS = 51, + NL80211_CMD_SET_PMKSA = 52, + NL80211_CMD_DEL_PMKSA = 53, + NL80211_CMD_FLUSH_PMKSA = 54, + NL80211_CMD_REMAIN_ON_CHANNEL = 55, + NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL = 56, + NL80211_CMD_SET_TX_BITRATE_MASK = 57, + NL80211_CMD_REGISTER_FRAME = 58, + NL80211_CMD_REGISTER_ACTION = 58, + NL80211_CMD_FRAME = 59, + NL80211_CMD_ACTION = 59, + NL80211_CMD_FRAME_TX_STATUS = 60, + NL80211_CMD_ACTION_TX_STATUS = 60, + NL80211_CMD_SET_POWER_SAVE = 61, + NL80211_CMD_GET_POWER_SAVE = 62, + NL80211_CMD_SET_CQM = 63, + NL80211_CMD_NOTIFY_CQM = 64, + NL80211_CMD_SET_CHANNEL = 65, + NL80211_CMD_SET_WDS_PEER = 66, + NL80211_CMD_FRAME_WAIT_CANCEL = 67, + NL80211_CMD_JOIN_MESH = 68, + NL80211_CMD_LEAVE_MESH = 69, + NL80211_CMD_UNPROT_DEAUTHENTICATE = 70, + NL80211_CMD_UNPROT_DISASSOCIATE = 71, + NL80211_CMD_NEW_PEER_CANDIDATE = 72, + NL80211_CMD_GET_WOWLAN = 73, + NL80211_CMD_SET_WOWLAN = 74, + NL80211_CMD_START_SCHED_SCAN = 75, + NL80211_CMD_STOP_SCHED_SCAN = 76, + NL80211_CMD_SCHED_SCAN_RESULTS = 77, + NL80211_CMD_SCHED_SCAN_STOPPED = 78, + NL80211_CMD_SET_REKEY_OFFLOAD = 79, + NL80211_CMD_PMKSA_CANDIDATE = 80, + NL80211_CMD_TDLS_OPER = 81, + NL80211_CMD_TDLS_MGMT = 82, + NL80211_CMD_UNEXPECTED_FRAME = 83, + NL80211_CMD_PROBE_CLIENT = 84, + NL80211_CMD_REGISTER_BEACONS = 85, + NL80211_CMD_UNEXPECTED_4ADDR_FRAME = 86, + NL80211_CMD_SET_NOACK_MAP = 87, + NL80211_CMD_CH_SWITCH_NOTIFY = 88, + NL80211_CMD_START_P2P_DEVICE = 89, + NL80211_CMD_STOP_P2P_DEVICE = 90, + NL80211_CMD_CONN_FAILED = 91, + NL80211_CMD_SET_MCAST_RATE = 92, + NL80211_CMD_SET_MAC_ACL = 93, + NL80211_CMD_RADAR_DETECT = 94, + NL80211_CMD_GET_PROTOCOL_FEATURES = 95, + NL80211_CMD_UPDATE_FT_IES = 96, + NL80211_CMD_FT_EVENT = 97, + NL80211_CMD_CRIT_PROTOCOL_START = 98, + NL80211_CMD_CRIT_PROTOCOL_STOP = 99, + NL80211_CMD_GET_COALESCE = 100, + NL80211_CMD_SET_COALESCE = 101, + NL80211_CMD_CHANNEL_SWITCH = 102, + NL80211_CMD_VENDOR = 103, + NL80211_CMD_SET_QOS_MAP = 104, + NL80211_CMD_ADD_TX_TS = 105, + NL80211_CMD_DEL_TX_TS = 106, + NL80211_CMD_GET_MPP = 107, + NL80211_CMD_JOIN_OCB = 108, + NL80211_CMD_LEAVE_OCB = 109, + NL80211_CMD_CH_SWITCH_STARTED_NOTIFY = 110, + NL80211_CMD_TDLS_CHANNEL_SWITCH = 111, + NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH = 112, + NL80211_CMD_WIPHY_REG_CHANGE = 113, + NL80211_CMD_ABORT_SCAN = 114, + NL80211_CMD_START_NAN = 115, + NL80211_CMD_STOP_NAN = 116, + NL80211_CMD_ADD_NAN_FUNCTION = 117, + NL80211_CMD_DEL_NAN_FUNCTION = 118, + NL80211_CMD_CHANGE_NAN_CONFIG = 119, + NL80211_CMD_NAN_MATCH = 120, + NL80211_CMD_SET_MULTICAST_TO_UNICAST = 121, + NL80211_CMD_UPDATE_CONNECT_PARAMS = 122, + NL80211_CMD_SET_PMK = 123, + NL80211_CMD_DEL_PMK = 124, + NL80211_CMD_PORT_AUTHORIZED = 125, + NL80211_CMD_RELOAD_REGDB = 126, + NL80211_CMD_EXTERNAL_AUTH = 127, + NL80211_CMD_STA_OPMODE_CHANGED = 128, + NL80211_CMD_CONTROL_PORT_FRAME = 129, + NL80211_CMD_GET_FTM_RESPONDER_STATS = 130, + NL80211_CMD_PEER_MEASUREMENT_START = 131, + NL80211_CMD_PEER_MEASUREMENT_RESULT = 132, + NL80211_CMD_PEER_MEASUREMENT_COMPLETE = 133, + NL80211_CMD_NOTIFY_RADAR = 134, + NL80211_CMD_UPDATE_OWE_INFO = 135, + NL80211_CMD_PROBE_MESH_LINK = 136, + NL80211_CMD_SET_TID_CONFIG = 137, + NL80211_CMD_UNPROT_BEACON = 138, + NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS = 139, + NL80211_CMD_SET_SAR_SPECS = 140, + NL80211_CMD_OBSS_COLOR_COLLISION = 141, + NL80211_CMD_COLOR_CHANGE_REQUEST = 142, + NL80211_CMD_COLOR_CHANGE_STARTED = 143, + NL80211_CMD_COLOR_CHANGE_ABORTED = 144, + NL80211_CMD_COLOR_CHANGE_COMPLETED = 145, + NL80211_CMD_SET_FILS_AAD = 146, + NL80211_CMD_ASSOC_COMEBACK = 147, + NL80211_CMD_ADD_LINK = 148, + NL80211_CMD_REMOVE_LINK = 149, + NL80211_CMD_ADD_LINK_STA = 150, + NL80211_CMD_MODIFY_LINK_STA = 151, + NL80211_CMD_REMOVE_LINK_STA = 152, + NL80211_CMD_SET_HW_TIMESTAMP = 153, + NL80211_CMD_LINKS_REMOVED = 154, + __NL80211_CMD_AFTER_LAST = 155, + NL80211_CMD_MAX = 154, }; -enum ieee80211_vif_flags { - IEEE80211_VIF_BEACON_FILTER = 1, - IEEE80211_VIF_SUPPORTS_CQM_RSSI = 2, - IEEE80211_VIF_SUPPORTS_UAPSD = 4, - IEEE80211_VIF_GET_NOA_UPDATE = 8, - IEEE80211_VIF_DISABLE_SMPS_OVERRIDE = 16, +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 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 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 cfg80211_nan_conf_changes { - CFG80211_NAN_CONF_CHANGED_PREF = 1, - CFG80211_NAN_CONF_CHANGED_BANDS = 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, }; -struct codel_stats { - u32 maxpacket; - u32 drop_count; - u32 drop_len; - u32 ecn_mark; - u32 ce_mark; +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 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; +enum nl80211_timeout_reason { + NL80211_TIMEOUT_UNSPECIFIED = 0, + NL80211_TIMEOUT_SCAN = 1, + NL80211_TIMEOUT_AUTH = 2, + NL80211_TIMEOUT_ASSOC = 3, }; -struct ieee80211_csa_settings { - const u16 *counter_offsets_beacon; - const u16 *counter_offsets_presp; - int n_counter_offsets_beacon; - int n_counter_offsets_presp; - u8 count; +enum 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, }; -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; +enum nl80211_key_type { + NL80211_KEYTYPE_GROUP = 0, + NL80211_KEYTYPE_PAIRWISE = 1, + NL80211_KEYTYPE_PEERKEY = 2, + NUM_NL80211_KEYTYPES = 3, }; -struct ieee80211_color_change_settings { - u16 counter_offset_beacon; - u16 counter_offset_presp; - u8 count; +enum nl80211_connect_failed_reason { + NL80211_CONN_FAIL_MAX_CLIENTS = 0, + NL80211_CONN_FAIL_BLOCKED_CLIENT = 1, }; -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; +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 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, +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 xz_mode { - XZ_SINGLE = 0, - XZ_PREALLOC = 1, - XZ_DYNALLOC = 2, +enum wiphy_opmode_flag { + STA_OPMODE_MAX_BW_CHANGED = 1, + STA_OPMODE_SMPS_MODE_CHANGED = 2, + STA_OPMODE_N_SS_CHANGED = 4, }; -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; +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, }; -struct radix_tree_preload { - local_lock_t lock; - unsigned int nr; - struct xa_node *nodes; +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 { - RADIX_TREE_ITER_TAG_MASK = 15, - RADIX_TREE_ITER_TAGGED = 16, - RADIX_TREE_ITER_CONTIG = 32, +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, }; -struct radix_tree_iter { - unsigned long index; - unsigned long next_index; - unsigned long tags; - struct xa_node *node; +enum nl80211_ext_feature_index { + NL80211_EXT_FEATURE_VHT_IBSS = 0, + NL80211_EXT_FEATURE_RRM = 1, + NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER = 2, + NL80211_EXT_FEATURE_SCAN_START_TIME = 3, + NL80211_EXT_FEATURE_BSS_PARENT_TSF = 4, + NL80211_EXT_FEATURE_SET_SCAN_DWELL = 5, + NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 6, + NL80211_EXT_FEATURE_BEACON_RATE_HT = 7, + NL80211_EXT_FEATURE_BEACON_RATE_VHT = 8, + NL80211_EXT_FEATURE_FILS_STA = 9, + NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA = 10, + NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED = 11, + NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 12, + NL80211_EXT_FEATURE_CQM_RSSI_LIST = 13, + NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 14, + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK = 15, + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X = 16, + NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 17, + NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP = 18, + NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 19, + NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 20, + NL80211_EXT_FEATURE_MFP_OPTIONAL = 21, + NL80211_EXT_FEATURE_LOW_SPAN_SCAN = 22, + NL80211_EXT_FEATURE_LOW_POWER_SCAN = 23, + NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN = 24, + NL80211_EXT_FEATURE_DFS_OFFLOAD = 25, + NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 = 26, + NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT = 27, + NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 27, + NL80211_EXT_FEATURE_TXQS = 28, + NL80211_EXT_FEATURE_SCAN_RANDOM_SN = 29, + NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT = 30, + NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 31, + NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 32, + NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 33, + NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 34, + NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 35, + NL80211_EXT_FEATURE_EXT_KEY_ID = 36, + NL80211_EXT_FEATURE_STA_TX_PWR = 37, + NL80211_EXT_FEATURE_SAE_OFFLOAD = 38, + NL80211_EXT_FEATURE_VLAN_OFFLOAD = 39, + NL80211_EXT_FEATURE_AQL = 40, + NL80211_EXT_FEATURE_BEACON_PROTECTION = 41, + NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 42, + NL80211_EXT_FEATURE_PROTECTED_TWT = 43, + NL80211_EXT_FEATURE_DEL_IBSS_STA = 44, + NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS = 45, + NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 46, + NL80211_EXT_FEATURE_SCAN_FREQ_KHZ = 47, + NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 48, + NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 49, + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 50, + NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 51, + NL80211_EXT_FEATURE_FILS_DISCOVERY = 52, + NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 53, + NL80211_EXT_FEATURE_BEACON_RATE_HE = 54, + NL80211_EXT_FEATURE_SECURE_LTF = 55, + NL80211_EXT_FEATURE_SECURE_RTT = 56, + NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 57, + NL80211_EXT_FEATURE_BSS_COLOR = 58, + NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 59, + NL80211_EXT_FEATURE_RADAR_BACKGROUND = 60, + NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 61, + NL80211_EXT_FEATURE_PUNCT = 62, + NL80211_EXT_FEATURE_SECURE_NAN = 63, + NL80211_EXT_FEATURE_AUTH_AND_DEAUTH_RANDOM_TA = 64, + NL80211_EXT_FEATURE_OWE_OFFLOAD = 65, + NL80211_EXT_FEATURE_OWE_OFFLOAD_AP = 66, + NUM_NL80211_EXT_FEATURES = 67, + MAX_NL80211_EXT_FEATURES = 66, }; -typedef __u32 Elf32_Word; - -struct elf32_note { - Elf32_Word n_namesz; - Elf32_Word n_descsz; - Elf32_Word n_type; +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, }; -struct mpc_ioapic { - unsigned char type; - unsigned char apicid; - unsigned char apicver; - unsigned char flags; - unsigned int apicaddr; +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, }; -struct mp_ioapic_gsi { - u32 gsi_base; - u32 gsi_end; +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 ioapic_domain_type { - IOAPIC_DOMAIN_INVALID = 0, - IOAPIC_DOMAIN_LEGACY = 1, - IOAPIC_DOMAIN_STRICT = 2, - IOAPIC_DOMAIN_DYNAMIC = 3, +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, }; -struct ioapic_domain_cfg { - enum ioapic_domain_type type; - const struct irq_domain_ops *ops; - struct device_node *dev; +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, }; -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; +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, }; -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; - }; - }; +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, }; -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 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 mp_irq_source_types { - mp_INT = 0, - mp_NMI = 1, - mp_SMI = 2, - mp_ExtINT = 3, +enum nl80211_ap_settings_flags { + NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1, + NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 2, }; -enum { - X86_IRQ_ALLOC_LEGACY = 1, +enum nl80211_wpa_versions { + NL80211_WPA_VERSION_1 = 1, + NL80211_WPA_VERSION_2 = 2, + NL80211_WPA_VERSION_3 = 4, }; -enum { - IRQ_SET_MASK_OK = 0, - IRQ_SET_MASK_OK_NOCOPY = 1, - IRQ_SET_MASK_OK_DONE = 2, +enum nl80211_tx_rate_attributes { + __NL80211_TXRATE_INVALID = 0, + NL80211_TXRATE_LEGACY = 1, + NL80211_TXRATE_HT = 2, + NL80211_TXRATE_VHT = 3, + NL80211_TXRATE_GI = 4, + NL80211_TXRATE_HE = 5, + NL80211_TXRATE_HE_GI = 6, + NL80211_TXRATE_HE_LTF = 7, + __NL80211_TXRATE_AFTER_LAST = 8, + NL80211_TXRATE_MAX = 7, }; -enum { - IRQCHIP_FWNODE_REAL = 0, - IRQCHIP_FWNODE_NAMED = 1, - IRQCHIP_FWNODE_NAMED_ID = 2, +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 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 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, }; -struct irq_pin_list { - struct list_head list; - int apic; - int pin; +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, }; -struct io_apic { - unsigned int index; - unsigned int unused[3]; - unsigned int data; - unsigned int unused2[11]; - unsigned int eoi; +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, }; -struct irq_cfg { - unsigned int dest_apicid; - unsigned int vector; +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, }; -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; +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, }; -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; +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, }; -union IO_APIC_reg_02 { - u32 raw; - struct { - u32 __reserved_2: 24; - u32 arbitration: 4; - u32 __reserved_1: 4; - } bits; +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, }; -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; +enum ieee80211_regulatory_flags { + REGULATORY_CUSTOM_REG = 1, + REGULATORY_STRICT_REG = 2, + REGULATORY_DISABLE_BEACON_HINTS = 4, + REGULATORY_COUNTRY_IE_FOLLOW_POWER = 8, + REGULATORY_COUNTRY_IE_IGNORE = 16, + REGULATORY_ENABLE_RELAX_NO_IR = 32, + REGULATORY_WIPHY_SELF_MANAGED = 128, }; -union IO_APIC_reg_03 { - u32 raw; - struct { - u32 boot_DT: 1; - u32 __reserved_1: 31; - } bits; +enum nl80211_reg_rule_attr { + __NL80211_REG_RULE_ATTR_INVALID = 0, + NL80211_ATTR_REG_RULE_FLAGS = 1, + NL80211_ATTR_FREQ_RANGE_START = 2, + NL80211_ATTR_FREQ_RANGE_END = 3, + NL80211_ATTR_FREQ_RANGE_MAX_BW = 4, + NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 5, + NL80211_ATTR_POWER_RULE_MAX_EIRP = 6, + NL80211_ATTR_DFS_CAC_TIME = 7, + NL80211_ATTR_POWER_RULE_PSD = 8, + __NL80211_REG_RULE_ATTR_AFTER_LAST = 9, + NL80211_REG_RULE_ATTR_MAX = 8, }; -struct tlb_state_shared { - bool is_lazy; +enum nl80211_reg_rule_flags { + NL80211_RRF_NO_OFDM = 1, + NL80211_RRF_NO_CCK = 2, + NL80211_RRF_NO_INDOOR = 4, + NL80211_RRF_NO_OUTDOOR = 8, + NL80211_RRF_DFS = 16, + NL80211_RRF_PTP_ONLY = 32, + NL80211_RRF_PTMP_ONLY = 64, + NL80211_RRF_NO_IR = 128, + __NL80211_RRF_NO_IBSS = 256, + NL80211_RRF_AUTO_BW = 2048, + NL80211_RRF_IR_CONCURRENT = 4096, + NL80211_RRF_NO_HT40MINUS = 8192, + NL80211_RRF_NO_HT40PLUS = 16384, + NL80211_RRF_NO_80MHZ = 32768, + NL80211_RRF_NO_160MHZ = 65536, + NL80211_RRF_NO_HE = 131072, + NL80211_RRF_NO_320MHZ = 262144, + NL80211_RRF_NO_EHT = 524288, + NL80211_RRF_PSD = 1048576, }; -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 ieee80211_regd_source { + REGD_SOURCE_INTERNAL_DB = 0, + REGD_SOURCE_CRDA = 1, + REGD_SOURCE_CACHED = 2, }; -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, +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, }; -struct irq_devres { - unsigned int irq; - void *dev_id; +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, }; -struct irq_desc_devres { - unsigned int from; - unsigned int cnt; +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, }; -struct io_tlb_area { - unsigned long used; - unsigned int index; - spinlock_t lock; +enum nl80211_bss_status { + NL80211_BSS_STATUS_AUTHENTICATED = 0, + NL80211_BSS_STATUS_ASSOCIATED = 1, + NL80211_BSS_STATUS_IBSS_JOINED = 2, }; -struct io_tlb_slot { - phys_addr_t orig_addr; - size_t alloc_size; - unsigned int list; +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, }; -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]; +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, }; -struct trace_event_data_offsets_swiotlb_bounced { - u32 dev_name; +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, }; -typedef u32 note_buf_t[92]; - -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; +enum ieee80211_privacy { + IEEE80211_PRIVACY_ON = 0, + IEEE80211_PRIVACY_OFF = 1, + IEEE80211_PRIVACY_ANY = 2, }; -struct kimage_arch { - p4d_t *p4d; - pud_t *pud; - pmd_t *pmd; - pte_t *pte; +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, }; -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; +enum cfg80211_connect_params_changed { + UPDATE_ASSOC_IES = 1, + UPDATE_FILS_ERP_INFO = 2, + UPDATE_AUTH_TYPE = 4, }; -struct kexec_load_limit { - struct mutex mutex; - int limit; +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 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, +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 unsigned long elf_greg_t; - -typedef elf_greg_t elf_gregset_t[27]; - -struct elf_siginfo { - int si_signo; - int si_code; - int si_errno; +enum nl80211_ps_state { + NL80211_PS_DISABLED = 0, + NL80211_PS_ENABLED = 1, }; -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; +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, }; -struct elf_prstatus { - struct elf_prstatus_common common; - elf_gregset_t pr_reg; - int pr_fpvalid; +enum ieee80211_mesh_sync_method { + IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET = 1, + IEEE80211_SYNC_METHOD_VENDOR = 255, }; -enum { - TRACE_NOP_OPT_ACCEPT = 1, - TRACE_NOP_OPT_REFUSE = 2, +enum ieee80211_mesh_path_protocol { + IEEE80211_PATH_PROTOCOL_HWMP = 1, + IEEE80211_PATH_PROTOCOL_VENDOR = 255, }; -struct bpf_empty_prog_array { - struct bpf_prog_array hdr; - struct bpf_prog *null_prog; +enum ieee80211_mesh_path_metric { + IEEE80211_PATH_METRIC_AIRTIME = 1, + IEEE80211_PATH_METRIC_VENDOR = 255, }; -struct bpf_id_pair { - u32 old; - u32 cur; +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, }; -struct bpf_idmap { - u32 tmp_id_gen; - struct bpf_id_pair map[600]; +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, }; -struct bpf_idset { - u32 count; - u32 ids[600]; +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, }; -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; +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, }; -struct backtrack_state { - struct bpf_verifier_env *env; - u32 frame; - u32 reg_masks[8]; - u64 stack_masks[8]; +enum nl80211_nan_publish_type { + NL80211_NAN_SOLICITED_PUBLISH = 1, + NL80211_NAN_UNSOLICITED_PUBLISH = 2, }; -typedef sockptr_t bpfptr_t; - -struct bpf_verifier_ops; - -struct bpf_verifier_stack_elem; - -struct bpf_verifier_state; - -struct bpf_verifier_state_list; - -struct bpf_insn_aux_data; - -struct bpf_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]; - union { - struct bpf_idmap idmap_scratch; - struct bpf_idset idset_scratch; - }; - struct { - int *insn_state; - int *insn_stack; - int cur_stack; - } cfg; - struct backtrack_state bt; - u32 pass_cnt; - u32 subprog_cnt; - u32 prev_insn_processed; - u32 insn_processed; - u32 prev_jmps_processed; - u32 jmps_processed; - u64 verification_time; - u32 max_states_per_insn; - u32 total_states; - u32 peak_states; - u32 longest_mark_read_walk; - bpfptr_t fd_array; - u32 scratched_regs; - u64 scratched_stack_slots; - u64 prev_log_pos; - u64 prev_insn_print_pos; - char tmp_str_buf[320]; +enum 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 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 cfg80211_nan_conf_changes { + CFG80211_NAN_CONF_CHANGED_PREF = 1, + CFG80211_NAN_CONF_CHANGED_BANDS = 2, }; -enum bpf_access_type { - BPF_READ = 1, - BPF_WRITE = 2, +enum nl80211_protocol_features { + NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 1, }; -struct bpf_func_proto; - -struct bpf_insn_access_aux; - -struct bpf_reg_state; - -struct bpf_verifier_ops { - const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *); - bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *); - int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *); - int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *); - u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); - int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int); +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 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 wiphy_vendor_command_flags { + WIPHY_VENDOR_CMD_NEED_WDEV = 1, + WIPHY_VENDOR_CMD_NEED_NETDEV = 2, + WIPHY_VENDOR_CMD_NEED_RUNNING = 4, }; -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, +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, }; -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 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, }; -struct bpf_insn_access_aux { - enum bpf_reg_type reg_type; - union { - int ctx_field_size; - struct { - struct btf *btf; - u32 btf_id; - }; - }; - struct bpf_verifier_log *log; +enum 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 bpf_dynptr_type { - BPF_DYNPTR_TYPE_INVALID = 0, - BPF_DYNPTR_TYPE_LOCAL = 1, - BPF_DYNPTR_TYPE_RINGBUF = 2, - BPF_DYNPTR_TYPE_SKB = 3, - BPF_DYNPTR_TYPE_XDP = 4, +enum 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 bpf_iter_state { - BPF_ITER_STATE_INVALID = 0, - BPF_ITER_STATE_ACTIVE = 1, - BPF_ITER_STATE_DRAINED = 2, +enum nl80211_band_attr { + __NL80211_BAND_ATTR_INVALID = 0, + NL80211_BAND_ATTR_FREQS = 1, + NL80211_BAND_ATTR_RATES = 2, + NL80211_BAND_ATTR_HT_MCS_SET = 3, + NL80211_BAND_ATTR_HT_CAPA = 4, + NL80211_BAND_ATTR_HT_AMPDU_FACTOR = 5, + NL80211_BAND_ATTR_HT_AMPDU_DENSITY = 6, + NL80211_BAND_ATTR_VHT_MCS_SET = 7, + NL80211_BAND_ATTR_VHT_CAPA = 8, + NL80211_BAND_ATTR_IFTYPE_DATA = 9, + NL80211_BAND_ATTR_EDMG_CHANNELS = 10, + NL80211_BAND_ATTR_EDMG_BW_CONFIG = 11, + NL80211_BAND_ATTR_S1G_MCS_NSS_SET = 12, + NL80211_BAND_ATTR_S1G_CAPA = 13, + __NL80211_BAND_ATTR_AFTER_LAST = 14, + NL80211_BAND_ATTR_MAX = 13, }; -struct tnum { - u64 value; - u64 mask; +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 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, +enum ieee80211_rate_flags { + IEEE80211_RATE_SHORT_PREAMBLE = 1, + IEEE80211_RATE_MANDATORY_A = 2, + IEEE80211_RATE_MANDATORY_B = 4, + IEEE80211_RATE_MANDATORY_G = 8, + IEEE80211_RATE_ERP_G = 16, + IEEE80211_RATE_SUPPORTS_5MHZ = 32, + IEEE80211_RATE_SUPPORTS_10MHZ = 64, }; -struct 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; +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, }; -struct bpf_active_lock { - void *ptr; - u32 id; +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, }; -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 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, }; -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; +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, }; -struct bpf_reference_state { - int id; - int insn_idx; - int callback_ref; +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, }; -struct bpf_stack_state { - struct bpf_reg_state spilled_ptr; - u8 slot_type[8]; +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, }; -struct bpf_idx_pair { - u32 prev_idx; - u32 idx; +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, }; -struct bpf_verifier_state_list { - struct bpf_verifier_state state; - struct bpf_verifier_state_list *next; - int miss_cnt; - int hit_cnt; +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, }; -struct bpf_loop_inline_state { - unsigned int initialized: 1; - unsigned int fit_for_inline: 1; - u32 callback_subprogno; +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, }; -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; - }; - union { - u64 obj_new_size; - u64 insert_off; - }; - struct btf_struct_meta *kptr_struct_meta; - u64 map_key_state; - int ctx_field_size; - u32 seen; - bool sanitize_stack_spill; - bool zext_dst; - bool storage_get_func_atomic; - bool is_iter_next; - u8 alu_state; - unsigned int orig_idx; - bool jmp_point; - bool prune_point; - bool force_checkpoint; +enum nl80211_frequency_attr { + __NL80211_FREQUENCY_ATTR_INVALID = 0, + NL80211_FREQUENCY_ATTR_FREQ = 1, + NL80211_FREQUENCY_ATTR_DISABLED = 2, + NL80211_FREQUENCY_ATTR_NO_IR = 3, + __NL80211_FREQUENCY_ATTR_NO_IBSS = 4, + NL80211_FREQUENCY_ATTR_RADAR = 5, + NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 6, + NL80211_FREQUENCY_ATTR_DFS_STATE = 7, + NL80211_FREQUENCY_ATTR_DFS_TIME = 8, + NL80211_FREQUENCY_ATTR_NO_HT40_MINUS = 9, + NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 10, + NL80211_FREQUENCY_ATTR_NO_80MHZ = 11, + NL80211_FREQUENCY_ATTR_NO_160MHZ = 12, + NL80211_FREQUENCY_ATTR_DFS_CAC_TIME = 13, + NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 14, + NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 15, + NL80211_FREQUENCY_ATTR_NO_20MHZ = 16, + NL80211_FREQUENCY_ATTR_NO_10MHZ = 17, + NL80211_FREQUENCY_ATTR_WMM = 18, + NL80211_FREQUENCY_ATTR_NO_HE = 19, + NL80211_FREQUENCY_ATTR_OFFSET = 20, + NL80211_FREQUENCY_ATTR_1MHZ = 21, + NL80211_FREQUENCY_ATTR_2MHZ = 22, + NL80211_FREQUENCY_ATTR_4MHZ = 23, + NL80211_FREQUENCY_ATTR_8MHZ = 24, + NL80211_FREQUENCY_ATTR_16MHZ = 25, + NL80211_FREQUENCY_ATTR_NO_320MHZ = 26, + NL80211_FREQUENCY_ATTR_NO_EHT = 27, + NL80211_FREQUENCY_ATTR_PSD = 28, + __NL80211_FREQUENCY_ATTR_AFTER_LAST = 29, + NL80211_FREQUENCY_ATTR_MAX = 28, }; -struct btf_struct_meta { - u32 btf_id; - struct btf_record *record; +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, }; -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); - -struct xdp_cpumap_stats; - -typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); - -struct xdp_cpumap_stats { - unsigned int redirect; - unsigned int pass; - unsigned int drop; +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, }; -typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int); - -typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int); - -struct xdp_mem_allocator; - -typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *); - -struct xdp_mem_allocator { - struct xdp_mem_info mem; - union { - void *allocator; - struct page_pool *page_pool; - }; - struct rhash_head node; - struct callback_head rcu; +enum bss_param_flags { + BSS_PARAM_FLAGS_CTS_PROT = 1, + BSS_PARAM_FLAGS_SHORT_PREAMBLE = 2, + BSS_PARAM_FLAGS_SHORT_SLOT_TIME = 4, }; -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 bpf_mem_caches; - -struct bpf_mem_cache; - -struct bpf_mem_alloc { - struct bpf_mem_caches __attribute__((btf_type_tag("percpu"))) *caches; - struct bpf_mem_cache __attribute__((btf_type_tag("percpu"))) *cache; - struct work_struct work; +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, }; -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; +enum nl80211_tid_stats { + __NL80211_TID_STATS_INVALID = 0, + NL80211_TID_STATS_RX_MSDU = 1, + NL80211_TID_STATS_TX_MSDU = 2, + NL80211_TID_STATS_TX_MSDU_RETRIES = 3, + NL80211_TID_STATS_TX_MSDU_FAILED = 4, + NL80211_TID_STATS_PAD = 5, + NL80211_TID_STATS_TXQ_STATS = 6, + NUM_NL80211_TID_STATS = 7, + NL80211_TID_STATS_MAX = 6, }; -struct bpf_mem_caches { - struct bpf_mem_cache cache[11]; +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 rnd_state { - __u32 s1; - __u32 s2; - __u32 s3; - __u32 s4; +struct cfg80211_beacon_registration { + struct list_head list; + u32 nlportid; }; -struct bpf_prog_dummy { - struct bpf_prog prog; -}; +struct cfg80211_ops; -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 = 22, - MAX_CGROUP_BPF_ATTACH_TYPE = 23, -}; +struct cfg80211_coalesce; -enum bpf_text_poke_type { - BPF_MOD_CALL = 0, - BPF_MOD_JUMP = 1, +struct cfg80211_registered_device { + const struct cfg80211_ops *ops; + struct list_head list; + struct rfkill_ops rfkill_ops; + struct work_struct rfkill_block; + char country_ie_alpha2[2]; + const struct ieee80211_regdomain *requested_regd; + enum environment_cap env; + int wiphy_idx; + int devlist_generation; + int wdev_id; + int opencount; + wait_queue_head_t dev_wait; + struct list_head beacon_registrations; + spinlock_t beacon_registrations_lock; + int num_running_ifaces; + int num_running_monitor_ifaces; + u64 cookie_counter; + spinlock_t bss_lock; + struct list_head bss_list; + struct rb_root bss_tree; + u32 bss_generation; + u32 bss_entries; + struct cfg80211_scan_request *scan_req; + struct cfg80211_scan_request *int_scan_req; + struct sk_buff *scan_msg; + struct list_head sched_scan_req_list; + time64_t suspend_at; + struct wiphy_work scan_done_wk; + struct genl_info *cur_cmd_info; + struct work_struct conn_work; + struct work_struct event_work; + struct delayed_work dfs_update_channels_wk; + struct wireless_dev *background_radar_wdev; + struct cfg80211_chan_def background_radar_chandef; + struct delayed_work background_cac_done_wk; + struct work_struct background_cac_abort_wk; + u32 crit_proto_nlportid; + struct cfg80211_coalesce *coalesce; + struct work_struct destroy_work; + struct wiphy_work sched_scan_stop_wk; + struct work_struct sched_scan_res_wk; + struct cfg80211_chan_def radar_chandef; + struct work_struct propagate_radar_detect_wk; + struct cfg80211_chan_def cac_done_chandef; + struct work_struct propagate_cac_done_wk; + struct work_struct mgmt_registrations_update_wk; + spinlock_t mgmt_registrations_lock; + struct work_struct wiphy_work; + struct list_head wiphy_work_list; + spinlock_t wiphy_work_lock; + bool suspended; + long: 64; + long: 64; + struct wiphy wiphy; }; -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, -}; +struct vif_params; -typedef u64 (*btf_bpf_user_rnd_u32)(); +struct cfg80211_ap_settings; -typedef u64 (*btf_bpf_get_raw_cpu_id)(); +struct cfg80211_ap_update; -struct trace_event_raw_xdp_exception { - struct trace_entry ent; - int prog_id; - u32 act; - int ifindex; - char __data[0]; -}; +struct station_parameters; -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 station_del_parameters; -struct _bpf_dtab_netdev { - struct net_device *dev; -}; +struct mpath_info; -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 mesh_setup; -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 ocb_setup; -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 bss_parameters; -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 ieee80211_txq_params; -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 cfg80211_auth_request; -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 cfg80211_assoc_request; -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 cfg80211_deauth_request; -typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long); +struct cfg80211_disassoc_request; -struct trace_event_data_offsets_xdp_exception {}; +struct cfg80211_connect_params; -struct trace_event_data_offsets_xdp_bulk_tx {}; +struct cfg80211_ibss_params; -struct trace_event_data_offsets_xdp_redirect_template {}; +struct cfg80211_pmksa; -struct trace_event_data_offsets_xdp_cpumap_kthread {}; +struct cfg80211_mgmt_tx_params; -struct trace_event_data_offsets_xdp_cpumap_enqueue {}; +struct mgmt_frame_regs; -struct trace_event_data_offsets_xdp_devmap_xmit {}; +struct cfg80211_acl_data; -struct trace_event_data_offsets_mem_disconnect {}; +struct cfg80211_update_ft_ies_params; -struct trace_event_data_offsets_mem_connect {}; +struct cfg80211_pmk_conf; -struct trace_event_data_offsets_mem_return_failed {}; +struct cfg80211_external_auth_params; -struct mminit_pfnnid_cache { - unsigned long last_start; - unsigned long last_end; - int last_nid; -}; +struct cfg80211_update_owe_info; -enum mminit_level { - MMINIT_WARNING = 0, - MMINIT_VERIFY = 1, - MMINIT_TRACE = 2, -}; +struct cfg80211_color_change_settings; -enum { - ZONELIST_FALLBACK = 0, - ZONELIST_NOFALLBACK = 1, - MAX_ZONELISTS = 2, -}; +struct cfg80211_fils_aad; -enum meminit_context { - MEMINIT_EARLY = 0, - MEMINIT_HOTPLUG = 1, -}; +struct link_station_parameters; -enum vmscan_throttle_state { - VMSCAN_THROTTLE_WRITEBACK = 0, - VMSCAN_THROTTLE_ISOLATED = 1, - VMSCAN_THROTTLE_NOPROGRESS = 2, - VMSCAN_THROTTLE_CONGESTED = 3, - NR_VMSCAN_THROTTLE = 4, -}; +struct link_station_del_parameters; -struct pseudo_fs_context { - const struct super_operations *ops; - const struct xattr_handler **xattr; - const struct dentry_operations *dops; - unsigned long magic; +struct cfg80211_ops { + int (*suspend)(struct wiphy *, struct cfg80211_wowlan *); + int (*resume)(struct wiphy *); + void (*set_wakeup)(struct wiphy *, bool); + struct wireless_dev * (*add_virtual_intf)(struct wiphy *, const char *, unsigned char, enum nl80211_iftype, struct vif_params *); + int (*del_virtual_intf)(struct wiphy *, struct wireless_dev *); + int (*change_virtual_intf)(struct wiphy *, struct net_device *, enum nl80211_iftype, struct vif_params *); + int (*add_intf_link)(struct wiphy *, struct wireless_dev *, unsigned int); + void (*del_intf_link)(struct wiphy *, struct wireless_dev *, unsigned int); + int (*add_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *, struct key_params *); + int (*get_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *, void *, void (*)(void *, struct key_params *)); + int (*del_key)(struct wiphy *, struct net_device *, int, u8, bool, const u8 *); + int (*set_default_key)(struct wiphy *, struct net_device *, int, u8, bool, bool); + int (*set_default_mgmt_key)(struct wiphy *, struct net_device *, int, u8); + int (*set_default_beacon_key)(struct wiphy *, struct net_device *, int, u8); + int (*start_ap)(struct wiphy *, struct net_device *, struct cfg80211_ap_settings *); + int (*change_beacon)(struct wiphy *, struct net_device *, struct cfg80211_ap_update *); + int (*stop_ap)(struct wiphy *, struct net_device *, unsigned int); + int (*add_station)(struct wiphy *, struct net_device *, const u8 *, struct station_parameters *); + int (*del_station)(struct wiphy *, struct net_device *, struct station_del_parameters *); + int (*change_station)(struct wiphy *, struct net_device *, const u8 *, struct station_parameters *); + int (*get_station)(struct wiphy *, struct net_device *, const u8 *, struct station_info *); + int (*dump_station)(struct wiphy *, struct net_device *, int, u8 *, struct station_info *); + int (*add_mpath)(struct wiphy *, struct net_device *, const u8 *, const u8 *); + int (*del_mpath)(struct wiphy *, struct net_device *, const u8 *); + int (*change_mpath)(struct wiphy *, struct net_device *, const u8 *, const u8 *); + int (*get_mpath)(struct wiphy *, struct net_device *, u8 *, u8 *, struct mpath_info *); + int (*dump_mpath)(struct wiphy *, struct net_device *, int, u8 *, u8 *, struct mpath_info *); + int (*get_mpp)(struct wiphy *, struct net_device *, u8 *, u8 *, struct mpath_info *); + int (*dump_mpp)(struct wiphy *, struct net_device *, int, u8 *, u8 *, struct mpath_info *); + int (*get_mesh_config)(struct wiphy *, struct net_device *, struct mesh_config *); + int (*update_mesh_config)(struct wiphy *, struct net_device *, u32, const struct mesh_config *); + int (*join_mesh)(struct wiphy *, struct net_device *, const struct mesh_config *, const struct mesh_setup *); + int (*leave_mesh)(struct wiphy *, struct net_device *); + int (*join_ocb)(struct wiphy *, struct net_device *, struct ocb_setup *); + int (*leave_ocb)(struct wiphy *, struct net_device *); + int (*change_bss)(struct wiphy *, struct net_device *, struct bss_parameters *); + void (*inform_bss)(struct wiphy *, struct cfg80211_bss *, const struct cfg80211_bss_ies *, void *); + int (*set_txq_params)(struct wiphy *, struct net_device *, struct ieee80211_txq_params *); + int (*libertas_set_mesh_channel)(struct wiphy *, struct net_device *, struct ieee80211_channel *); + int (*set_monitor_channel)(struct wiphy *, struct cfg80211_chan_def *); + int (*scan)(struct wiphy *, struct cfg80211_scan_request *); + void (*abort_scan)(struct wiphy *, struct wireless_dev *); + int (*auth)(struct wiphy *, struct net_device *, struct cfg80211_auth_request *); + int (*assoc)(struct wiphy *, struct net_device *, struct cfg80211_assoc_request *); + int (*deauth)(struct wiphy *, struct net_device *, struct cfg80211_deauth_request *); + int (*disassoc)(struct wiphy *, struct net_device *, struct cfg80211_disassoc_request *); + int (*connect)(struct wiphy *, struct net_device *, struct cfg80211_connect_params *); + int (*update_connect_params)(struct wiphy *, struct net_device *, struct cfg80211_connect_params *, u32); + int (*disconnect)(struct wiphy *, struct net_device *, u16); + int (*join_ibss)(struct wiphy *, struct net_device *, struct cfg80211_ibss_params *); + int (*leave_ibss)(struct wiphy *, struct net_device *); + int (*set_mcast_rate)(struct wiphy *, struct net_device *, int *); + int (*set_wiphy_params)(struct wiphy *, u32); + int (*set_tx_power)(struct wiphy *, struct wireless_dev *, enum nl80211_tx_power_setting, int); + int (*get_tx_power)(struct wiphy *, struct wireless_dev *, int *); + void (*rfkill_poll)(struct wiphy *); + int (*set_bitrate_mask)(struct wiphy *, struct net_device *, unsigned int, const u8 *, const struct cfg80211_bitrate_mask *); + int (*dump_survey)(struct wiphy *, struct net_device *, int, struct survey_info *); + int (*set_pmksa)(struct wiphy *, struct net_device *, struct cfg80211_pmksa *); + int (*del_pmksa)(struct wiphy *, struct net_device *, struct cfg80211_pmksa *); + int (*flush_pmksa)(struct wiphy *, struct net_device *); + int (*remain_on_channel)(struct wiphy *, struct wireless_dev *, struct ieee80211_channel *, unsigned int, u64 *); + int (*cancel_remain_on_channel)(struct wiphy *, struct wireless_dev *, u64); + int (*mgmt_tx)(struct wiphy *, struct wireless_dev *, struct cfg80211_mgmt_tx_params *, u64 *); + int (*mgmt_tx_cancel_wait)(struct wiphy *, struct wireless_dev *, u64); + int (*set_power_mgmt)(struct wiphy *, struct net_device *, bool, int); + int (*set_cqm_rssi_config)(struct wiphy *, struct net_device *, s32, u32); + int (*set_cqm_rssi_range_config)(struct wiphy *, struct net_device *, s32, s32); + int (*set_cqm_txe_config)(struct wiphy *, struct net_device *, u32, u32, u32); + void (*update_mgmt_frame_registrations)(struct wiphy *, struct wireless_dev *, struct mgmt_frame_regs *); + int (*set_antenna)(struct wiphy *, u32, u32); + int (*get_antenna)(struct wiphy *, u32 *, u32 *); + int (*sched_scan_start)(struct wiphy *, struct net_device *, struct cfg80211_sched_scan_request *); + int (*sched_scan_stop)(struct wiphy *, struct net_device *, u64); + int (*set_rekey_data)(struct wiphy *, struct net_device *, struct cfg80211_gtk_rekey_data *); + int (*tdls_mgmt)(struct wiphy *, struct net_device *, const u8 *, int, u8, u8, u16, u32, bool, const u8 *, size_t); + int (*tdls_oper)(struct wiphy *, struct net_device *, const u8 *, enum nl80211_tdls_operation); + int (*probe_client)(struct wiphy *, struct net_device *, const u8 *, u64 *); + int (*set_noack_map)(struct wiphy *, struct net_device *, u16); + int (*get_channel)(struct wiphy *, struct wireless_dev *, unsigned int, struct cfg80211_chan_def *); + int (*start_p2p_device)(struct wiphy *, struct wireless_dev *); + void (*stop_p2p_device)(struct wiphy *, struct wireless_dev *); + int (*set_mac_acl)(struct wiphy *, struct net_device *, const struct cfg80211_acl_data *); + int (*start_radar_detection)(struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32); + void (*end_cac)(struct wiphy *, struct net_device *); + int (*update_ft_ies)(struct wiphy *, struct net_device *, struct cfg80211_update_ft_ies_params *); + int (*crit_proto_start)(struct wiphy *, struct wireless_dev *, enum nl80211_crit_proto_id, u16); + void (*crit_proto_stop)(struct wiphy *, struct wireless_dev *); + int (*set_coalesce)(struct wiphy *, struct cfg80211_coalesce *); + int (*channel_switch)(struct wiphy *, struct net_device *, struct cfg80211_csa_settings *); + int (*set_qos_map)(struct wiphy *, struct net_device *, struct cfg80211_qos_map *); + int (*set_ap_chanwidth)(struct wiphy *, struct net_device *, unsigned int, struct cfg80211_chan_def *); + int (*add_tx_ts)(struct wiphy *, struct net_device *, u8, const u8 *, u8, u16); + int (*del_tx_ts)(struct wiphy *, struct net_device *, u8, const u8 *); + int (*tdls_channel_switch)(struct wiphy *, struct net_device *, const u8 *, u8, struct cfg80211_chan_def *); + void (*tdls_cancel_channel_switch)(struct wiphy *, struct net_device *, const u8 *); + int (*start_nan)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *); + void (*stop_nan)(struct wiphy *, struct wireless_dev *); + int (*add_nan_func)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_func *); + void (*del_nan_func)(struct wiphy *, struct wireless_dev *, u64); + int (*nan_change_conf)(struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *, u32); + int (*set_multicast_to_unicast)(struct wiphy *, struct net_device *, const bool); + int (*get_txq_stats)(struct wiphy *, struct wireless_dev *, struct cfg80211_txq_stats *); + int (*set_pmk)(struct wiphy *, struct net_device *, const struct cfg80211_pmk_conf *); + int (*del_pmk)(struct wiphy *, struct net_device *, const u8 *); + int (*external_auth)(struct wiphy *, struct net_device *, struct cfg80211_external_auth_params *); + int (*tx_control_port)(struct wiphy *, struct net_device *, const u8 *, size_t, const u8 *, const __be16, const bool, int, u64 *); + int (*get_ftm_responder_stats)(struct wiphy *, struct net_device *, struct cfg80211_ftm_responder_stats *); + int (*start_pmsr)(struct wiphy *, struct wireless_dev *, struct cfg80211_pmsr_request *); + void (*abort_pmsr)(struct wiphy *, struct wireless_dev *, struct cfg80211_pmsr_request *); + int (*update_owe_info)(struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *); + int (*probe_mesh_link)(struct wiphy *, struct net_device *, const u8 *, size_t); + int (*set_tid_config)(struct wiphy *, struct net_device *, struct cfg80211_tid_config *); + int (*reset_tid_config)(struct wiphy *, struct net_device *, const u8 *, u8); + int (*set_sar_specs)(struct wiphy *, struct cfg80211_sar_specs *); + int (*color_change)(struct wiphy *, struct net_device *, struct cfg80211_color_change_settings *); + int (*set_fils_aad)(struct wiphy *, struct net_device *, struct cfg80211_fils_aad *); + int (*set_radar_background)(struct wiphy *, struct cfg80211_chan_def *); + int (*add_link_station)(struct wiphy *, struct net_device *, struct link_station_parameters *); + int (*mod_link_station)(struct wiphy *, struct net_device *, struct link_station_parameters *); + int (*del_link_station)(struct wiphy *, struct net_device *, struct link_station_del_parameters *); + int (*set_hw_timestamp)(struct wiphy *, struct net_device *, struct cfg80211_set_hw_timestamp *); }; -struct utimbuf { - __kernel_old_time_t actime; - __kernel_old_time_t modtime; +struct vif_params { + u32 flags; + int use_4addr; + u8 macaddr[6]; + const u8 *vht_mumimo_groups; + const u8 *vht_mumimo_follow_addr; }; -struct old_utimbuf32 { - old_time32_t actime; - old_time32_t modtime; +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; }; -enum { - MBE_REFERENCED_B = 0, - MBE_REUSABLE_B = 1, +struct cfg80211_fils_discovery { + bool update; + u32 min_interval; + u32 max_interval; + size_t tmpl_len; + const u8 *tmpl; }; -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 cfg80211_unsol_bcast_probe_resp { + bool update; + u32 interval; + size_t tmpl_len; + const u8 *tmpl; }; -struct mb_cache { - struct hlist_bl_head *c_hash; - int c_bucket_bits; - unsigned long c_max_entries; - spinlock_t c_list_lock; - struct list_head c_list; - unsigned long c_entry_count; - struct shrinker c_shrink; - struct work_struct c_shrink_work; +struct cfg80211_mbssid_config { + struct wireless_dev *tx_wdev; + u8 index; + bool ema; }; -typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int); - -typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int); - -typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64); - -typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *); - -typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *); - -typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, struct iomap *); - -typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long); +struct ieee80211_he_operation; -typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t); +struct ieee80211_eht_cap_elem; -typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t); +struct ieee80211_eht_operation; -struct trace_event_raw_iomap_readpage_class { - struct trace_entry ent; - dev_t dev; - u64 ino; - int nr_pages; - char __data[0]; +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 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 cfg80211_acl_data { + enum nl80211_acl_policy acl_policy; + int n_acl_entries; + struct mac_address mac_addrs[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 ieee80211_he_operation { + __le32 he_oper_params; + __le16 he_mcs_nss_set; + u8 optional[0]; +} __attribute__((packed)); -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 ieee80211_eht_cap_elem { + struct ieee80211_eht_cap_elem_fixed fixed; + u8 optional[0]; }; -struct trace_event_raw_iomap_dio_rw_begin { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t isize; - loff_t pos; - size_t count; - size_t done_before; - int ki_flags; - unsigned int dio_flags; - bool aio; - char __data[0]; +struct ieee80211_eht_operation { + u8 params; + struct ieee80211_eht_mcs_nss_supp_20mhz_only basic_mcs_nss; + u8 optional[0]; }; -struct trace_event_raw_iomap_dio_complete { - struct trace_entry ent; - dev_t dev; - ino_t ino; - loff_t isize; - loff_t pos; - int ki_flags; - bool aio; - int error; - ssize_t ret; - char __data[0]; +struct cfg80211_ap_update { + struct cfg80211_beacon_data beacon; + struct cfg80211_fils_discovery fils_discovery; + struct cfg80211_unsol_bcast_probe_resp unsol_bcast_probe_resp; }; -struct 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 trace_event_data_offsets_iomap_dio_rw_begin {}; - -struct trace_event_data_offsets_iomap_dio_complete {}; - -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, +struct sta_txpwr { + s16 power; + enum nl80211_tx_power_setting type; }; -struct ext4_dir_entry_tail { - __le32 det_reserved_zero1; - __le16 det_rec_len; - __u8 det_reserved_zero2; - __u8 det_reserved_ft; - __le32 det_checksum; +struct 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 dx_entry; - -struct dx_frame { - struct buffer_head *bh; - struct dx_entry *entries; - struct dx_entry *at; +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 dx_entry { - __le32 hash; - __le32 block; +struct station_del_parameters { + const u8 *mac; + u8 subtype; + u16 reason_code; }; -struct fake_dirent { - __le32 inode; - __le16 rec_len; - u8 name_len; - u8 file_type; +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 dx_root_info { - __le32 reserved_zero; - u8 hash_version; - u8 info_length; - u8 indirect_levels; - u8 unused_flags; +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 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 ocb_setup { + struct cfg80211_chan_def chandef; }; -struct dx_node { - struct fake_dirent fake; - struct dx_entry entries[0]; +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 dx_countlimit { - __le16 limit; - __le16 count; +struct ieee80211_txq_params { + enum nl80211_ac ac; + u16 txop; + u16 cwmin; + u16 cwmax; + u8 aifs; + int link_id; }; -struct ext4_dir_entry { - __le32 inode; - __le16 rec_len; - __le16 name_len; - char name[255]; +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 dx_tail { - u32 dt_reserved; - __le32 dt_checksum; +struct cfg80211_assoc_link { + struct cfg80211_bss *bss; + const u8 *elems; + size_t elems_len; + bool disabled; + int error; }; -struct dx_map_entry { - u32 hash; - u16 offs; - u16 size; +struct cfg80211_assoc_request { + struct cfg80211_bss *bss; + const u8 *ie; + const u8 *prev_bssid; + size_t ie_len; + struct cfg80211_crypto_settings crypto; + bool use_mfp; + u32 flags; + struct ieee80211_ht_cap ht_capa; + struct ieee80211_ht_cap ht_capa_mask; + struct ieee80211_vht_cap vht_capa; + struct ieee80211_vht_cap vht_capa_mask; + const u8 *fils_kek; + size_t fils_kek_len; + const u8 *fils_nonces; + struct ieee80211_s1g_cap s1g_capa; + struct ieee80211_s1g_cap s1g_capa_mask; + struct cfg80211_assoc_link links[15]; + const u8 *ap_mld_addr; + s8 link_id; }; -struct 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 cfg80211_deauth_request { + const u8 *bssid; + const u8 *ie; + size_t ie_len; + u16 reason_code; + bool local_state_change; }; -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; +struct cfg80211_disassoc_request { + const u8 *ap_addr; + const u8 *ie; + size_t ie_len; + u16 reason_code; + bool local_state_change; }; -typedef enum { - EITHER = 0, - INDEX = 1, - DIRENT = 2, - DIRENT_HTREE = 3, -} dirblock_type_t; - -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 { - int cnt; - struct { - u64 start; - u64 end; - } gap[16]; - } *ooo; - 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 cfg80211_bss_selection { + enum nl80211_bss_select_attr behaviour; union { - struct inode vfs_inode; - }; + enum nl80211_band band_pref; + struct cfg80211_bss_select_adjust adjust; + } param; }; -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 cfg80211_connect_params { + struct ieee80211_channel *channel; + struct ieee80211_channel *channel_hint; + const u8 *bssid; + const u8 *bssid_hint; + const u8 *ssid; + size_t ssid_len; + enum nl80211_auth_type auth_type; + const u8 *ie; + size_t ie_len; + bool privacy; + enum nl80211_mfp mfp; + struct cfg80211_crypto_settings crypto; + const u8 *key; + u8 key_len; + u8 key_idx; + u32 flags; + int bg_scan_period; + struct ieee80211_ht_cap ht_capa; + struct ieee80211_ht_cap ht_capa_mask; + struct ieee80211_vht_cap vht_capa; + struct ieee80211_vht_cap vht_capa_mask; + bool pbss; + struct cfg80211_bss_selection bss_select; + const u8 *prev_bssid; + const u8 *fils_erp_username; + size_t fils_erp_username_len; + const u8 *fils_erp_realm; + size_t fils_erp_realm_len; + u16 fils_erp_next_seq_num; + const u8 *fils_erp_rrk; + size_t fils_erp_rrk_len; + bool want_1x; + struct ieee80211_edmg edmg; }; -struct 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 cfg80211_ibss_params { + const u8 *ssid; + const u8 *bssid; + struct cfg80211_chan_def chandef; + const u8 *ie; + u8 ssid_len; + u8 ie_len; + u16 beacon_interval; + u32 basic_rates; + bool channel_fixed; + bool privacy; + bool control_port; + bool control_port_over_nl80211; + bool userspace_handles_dfs; + int mcast_rate[6]; + struct ieee80211_ht_cap ht_capa; + struct ieee80211_ht_cap ht_capa_mask; + struct key_params *wep_keys; + int wep_tx_key; }; -struct rpc_pipe; - -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 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 rpc_pipe_dir_object_ops { - int (*create)(struct dentry *, struct rpc_pipe_dir_object *); - void (*destroy)(struct dentry *, struct rpc_pipe_dir_object *); +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 rpc_pipe_ops; +struct mgmt_frame_regs { + u32 global_stypes; + u32 interface_stypes; + u32 global_mcast_stypes; + u32 interface_mcast_stypes; +}; -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 cfg80211_update_ft_ies_params { + u16 md; + const u8 *ie; + size_t ie_len; }; -struct rpc_pipe_msg; +struct cfg80211_coalesce_rules; -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 cfg80211_coalesce { + struct cfg80211_coalesce_rules *rules; + int n_rules; }; -struct rpc_pipe_msg { - struct list_head list; - void *data; - size_t len; - size_t copied; - int errno; +struct cfg80211_coalesce_rules { + int delay; + enum nl80211_coalesce_condition condition; + struct cfg80211_pkt_pattern *patterns; + int n_patterns; }; -struct idmap_msg { - __u8 im_type; - __u8 im_conv; - char im_name[128]; - __u32 im_id; - __u8 im_status; +struct cfg80211_pmk_conf { + const u8 *aa; + u8 pmk_len; + const u8 *pmk; + const u8 *pmk_r0_name; }; -struct idmap_legacy_upcalldata { - struct rpc_pipe_msg pipe_msg; - struct idmap_msg idmap_msg; - struct key *authkey; - struct idmap *idmap; +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 match_token { - int token; - const char *pattern; +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]; }; -enum { - Opt_find_uid = 0, - Opt_find_gid = 1, - Opt_find_user = 2, - Opt_find_group = 3, - Opt_find_err = 4, +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 rpc_inode { - struct inode vfs_inode; - void *private; - struct rpc_pipe *pipe; - wait_queue_head_t waitq; +struct cfg80211_fils_aad { + const u8 *macaddr; + const u8 *kek; + u8 kek_len; + const u8 *snonce; + const u8 *anonce; }; -struct user_key_payload { - struct callback_head rcu; - unsigned short datalen; - long: 0; - char data[0]; +struct link_station_del_parameters { + const u8 *mld_mac; + u32 link_id; }; -typedef struct { - char *from; - char *to; -} substring_t; +struct cfg80211_wowlan_nd_info; -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 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; }; -enum p9_trans_status { - Connected = 0, - BeginDisconnect = 1, - Disconnected = 2, - Hung = 3, -}; +struct cfg80211_wowlan_nd_match; -enum netfs_read_from_hole { - NETFS_READ_HOLE_IGNORE = 0, - NETFS_READ_HOLE_CLEAR = 1, - NETFS_READ_HOLE_FAIL = 2, +struct cfg80211_wowlan_nd_info { + int n_matches; + struct cfg80211_wowlan_nd_match *matches[0]; }; -enum netfs_io_source { - NETFS_FILL_WITH_ZEROES = 0, - NETFS_DOWNLOAD_FROM_SERVER = 1, - NETFS_READ_FROM_CACHE = 2, - NETFS_INVALID_READ = 3, -} __attribute__((mode(byte))); - -enum netfs_io_origin { - NETFS_READAHEAD = 0, - NETFS_READPAGE = 1, - NETFS_READ_FOR_WRITE = 2, -} __attribute__((mode(byte))); - -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, - V9FS_NO_XATTR = 64, - V9FS_IGNORE_QV = 128, - V9FS_DIRECT_IO = 256, - V9FS_SYNC = 512, +struct cfg80211_wowlan_nd_match { + struct cfg80211_ssid ssid; + int n_channels; + u32 channels[0]; }; -struct netfs_request_ops; - -struct netfs_inode { - struct inode inode; - const struct netfs_request_ops *ops; - loff_t remote_i_size; +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 p9_qid { - u8 type; - u32 version; - u64 path; +struct key_parse { + struct key_params p; + int idx; + int type; + bool def; + bool defmgmt; + bool defbeacon; + bool def_uni; + bool def_multi; }; -struct v9fs_inode { - struct netfs_inode netfs; - struct p9_qid qid; - unsigned int cache_validity; - struct mutex v_mutex; +struct nl80211_txrate_vht { + __u16 mcs[8]; }; -struct netfs_io_request; - -struct netfs_io_subrequest; - -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 nl80211_txrate_he { + __u16 mcs[8]; }; -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 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 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; +struct nl80211_dump_wiphy_state { + s64 filter_wiphy; + long start; + long split_start; + long band_start; + long chan_start; + long capa_start; + bool split; }; -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 get_key_cookie { + struct sk_buff *msg; + int error; + int idx; }; -struct netfs_io_subrequest { - struct netfs_io_request *rreq; - struct list_head rreq_link; - loff_t start; +struct cfg80211_rx_assoc_resp_data { + const u8 *buf; size_t len; - size_t transferred; - refcount_t ref; - short error; - unsigned short debug_index; - enum netfs_io_source source; - unsigned long flags; + const u8 *req_ies; + size_t req_ies_len; + int uapsd_queues; + const u8 *ap_mld_addr; + struct { + u8 addr[6]; + struct cfg80211_bss *bss; + u16 status; + } links[15]; }; -struct 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 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 p9_trans_module; +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 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]; +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 v9fs_session_info { - unsigned int 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 cfg80211_rx_info { + int freq; + int sig_dbm; + bool have_link_id; + u8 link_id; + const u8 *buf; + size_t len; + u32 flags; + u64 rx_tstamp; + u64 ack_tstamp; }; -struct sel_netnode_bkt { - unsigned int size; - struct list_head list; +struct cfg80211_tx_status { + u64 cookie; + u64 tx_tstamp; + u64 ack_tstamp; + const u8 *buf; + size_t len; + bool ack; }; -struct netnode_security_struct { - union { - __be32 ipv4; - struct in6_addr ipv6; - } addr; - u32 sid; - u16 family; +struct sta_opmode_info { + u32 changed; + enum nl80211_smps_mode smps_mode; + enum nl80211_chan_width bw; + u8 rx_nss; }; -struct sel_netnode { - struct netnode_security_struct nsec; - struct list_head list; - struct callback_head rcu; +struct nl80211_bss_select_rssi_adjust { + __u8 band; + __s8 delta; }; -struct sidtab_str_cache; +struct nl80211_pattern_support { + __u32 max_patterns; + __u32 min_pattern_len; + __u32 max_pattern_len; + __u32 max_pkt_offset; +}; -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 nl80211_coalesce_rule_support { + __u32 max_rules; + struct nl80211_pattern_support pat; + __u32 max_delay; }; -struct sidtab_str_cache { - struct callback_head rcu_member; - struct list_head lru_member; - struct sidtab_entry *parent; - u32 len; - char str[0]; +struct netlink_notify { + struct net *net; + u32 portid; + int protocol; }; -struct sidtab_node_inner; +typedef void (*btf_trace_handshake_submit)(void *, const struct net *, const struct handshake_req *, const struct sock *); -struct sidtab_node_leaf; +typedef void (*btf_trace_handshake_submit_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -union sidtab_entry_inner { - struct sidtab_node_inner *ptr_inner; - struct sidtab_node_leaf *ptr_leaf; -}; +typedef void (*btf_trace_handshake_cancel)(void *, const struct net *, const struct handshake_req *, const struct sock *); -struct sidtab_isid_entry { - int set; - struct sidtab_entry entry; -}; +typedef void (*btf_trace_handshake_cancel_none)(void *, const struct net *, const struct handshake_req *, const struct sock *); -struct sidtab_convert_params; +typedef void (*btf_trace_handshake_cancel_busy)(void *, const struct net *, const struct handshake_req *, const struct sock *); -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]; -}; +typedef void (*btf_trace_handshake_destruct)(void *, const struct net *, const struct handshake_req *, const struct sock *); -struct sidtab_node_inner { - union sidtab_entry_inner entries[512]; -}; +typedef void (*btf_trace_handshake_complete)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -struct sidtab_node_leaf { - struct sidtab_entry entries[39]; -}; +typedef void (*btf_trace_handshake_notify_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -struct convert_context_args; +typedef void (*btf_trace_handshake_cmd_accept)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -struct sidtab_convert_params { - struct convert_context_args *args; - struct sidtab *target; -}; +typedef void (*btf_trace_handshake_cmd_accept_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -struct convert_context_args { - struct policydb *oldp; - struct policydb *newp; -}; +typedef void (*btf_trace_handshake_cmd_done)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -struct crypto_comp { - struct crypto_tfm base; -}; +typedef void (*btf_trace_handshake_cmd_done_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); -struct shash_instance { - void (*free)(struct shash_instance *); - union { - struct { - char head[104]; - struct crypto_instance base; - } s; - struct shash_alg alg; - }; -}; +typedef void (*btf_trace_tls_contenttype)(void *, const struct sock *, unsigned char); -struct crypto_cipher { - struct crypto_tfm base; -}; +typedef void (*btf_trace_tls_alert_send)(void *, const struct sock *, unsigned char, unsigned char); -struct crypto_cipher_spawn { - struct crypto_spawn base; -}; +typedef void (*btf_trace_tls_alert_recv)(void *, const struct sock *, unsigned char, unsigned char); -struct cmac_desc_ctx { - unsigned int len; - u8 ctx[0]; +struct trace_event_raw_handshake_event_class { + struct trace_entry ent; + const void *req; + const void *sk; + unsigned int netns_ino; + char __data[0]; }; -struct cmac_tfm_ctx { - struct crypto_cipher *child; - u8 ctx[0]; +struct trace_event_raw_handshake_error_class { + struct trace_entry ent; + const void *req; + const void *sk; + int err; + unsigned int netns_ino; + char __data[0]; }; -struct skcipher_instance { - void (*free)(struct skcipher_instance *); - union { - struct { - char head[64]; - struct crypto_instance base; - } s; - struct skcipher_alg alg; - }; +struct trace_event_raw_handshake_complete { + struct trace_entry ent; + const void *req; + const void *sk; + int status; + unsigned int netns_ino; + char __data[0]; }; -struct skcipher_ctx_simple { - struct crypto_cipher *cipher; +struct trace_event_raw_handshake_fd_class { + struct trace_entry ent; + const void *req; + const void *sk; + int fd; + unsigned int netns_ino; + char __data[0]; }; -struct scatter_walk { - struct scatterlist *sg; - unsigned int offset; +struct trace_event_raw_tls_contenttype { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + unsigned int netns_ino; + unsigned long type; + char __data[0]; }; -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 trace_event_raw_handshake_alert_class { + struct trace_entry ent; + __u8 saddr[28]; + __u8 daddr[28]; + unsigned int netns_ino; + unsigned long level; + unsigned long description; + char __data[0]; }; -struct crypto_rfc3686_ctx { - struct crypto_skcipher *child; - u8 nonce[4]; -}; +struct trace_event_data_offsets_handshake_event_class {}; -struct crypto_rfc3686_req_ctx { - u8 iv[16]; - struct skcipher_request subreq; -}; +struct trace_event_data_offsets_handshake_fd_class {}; -struct asymmetric_key_subtype { - struct module *owner; - const char *name; - unsigned short name_len; - void (*describe)(const struct key *, struct seq_file *); - void (*destroy)(void *, void *); - int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *); - int (*eds_op)(struct kernel_pkey_params *, const void *, void *); - int (*verify_signature)(const struct key *, const struct public_key_signature *); -}; +struct trace_event_data_offsets_handshake_error_class {}; -struct akcipher_request; +struct trace_event_data_offsets_handshake_alert_class {}; -struct crypto_akcipher; +struct trace_event_data_offsets_handshake_complete {}; -struct akcipher_alg { - int (*sign)(struct akcipher_request *); - int (*verify)(struct akcipher_request *); - int (*encrypt)(struct akcipher_request *); - int (*decrypt)(struct akcipher_request *); - int (*set_pub_key)(struct crypto_akcipher *, const void *, unsigned int); - int (*set_priv_key)(struct crypto_akcipher *, const void *, unsigned int); - unsigned int (*max_size)(struct crypto_akcipher *); - int (*init)(struct crypto_akcipher *); - void (*exit)(struct crypto_akcipher *); - struct crypto_alg base; -}; +struct trace_event_data_offsets_tls_contenttype {}; -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]; -}; +typedef __u32 Elf32_Word; -struct crypto_akcipher { - unsigned int reqsize; - struct crypto_tfm base; +struct elf32_note { + Elf32_Word n_namesz; + Elf32_Word n_descsz; + Elf32_Word n_type; }; -struct crypto_sig { - struct crypto_tfm base; +struct __call_single_data { + struct __call_single_node node; + smp_call_func_t func; + void *info; }; -enum { - BIO_PAGE_PINNED = 0, - BIO_CLONED = 1, - BIO_BOUNCED = 2, - BIO_QUIET = 3, - BIO_CHAIN = 4, - BIO_REFFED = 5, - BIO_BPS_THROTTLED = 6, - BIO_TRACE_COMPLETION = 7, - BIO_CGROUP_ACCT = 8, - BIO_QOS_THROTTLED = 9, - BIO_QOS_MERGED = 10, - BIO_REMAPPED = 11, - BIO_ZONE_WRITE_LOCKED = 12, - BIO_FLAG_LAST = 13, +typedef struct __call_single_data call_single_data_t; + +struct cfs_rq { + struct load_weight load; + unsigned int nr_running; + unsigned int h_nr_running; + unsigned int idle_nr_running; + unsigned int idle_h_nr_running; + s64 avg_vruntime; + u64 avg_load; + u64 exec_clock; + u64 min_vruntime; + struct rb_root_cached tasks_timeline; + struct sched_entity *curr; + struct sched_entity *next; + 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; + u64 last_update_tg_load_avg; + unsigned long tg_load_avg_contrib; + long propagate; + long prop_runnable_sum; + unsigned long h_load; + u64 last_h_load_update; + struct sched_entity *h_load_next; + struct rq *rq; + int on_list; + struct list_head leaf_cfs_rq_list; + struct task_group *tg; + int idle; + long: 64; + long: 64; + long: 64; }; -enum blkg_iostat_type { - BLKG_IOSTAT_READ = 0, - BLKG_IOSTAT_WRITE = 1, - BLKG_IOSTAT_DISCARD = 2, - BLKG_IOSTAT_NR = 3, +struct rt_prio_array { + unsigned long bitmap[2]; + struct list_head queue[100]; }; -enum { - CSS_NO_REF = 1, - CSS_ONLINE = 2, - CSS_RELEASED = 4, - CSS_VISIBLE = 8, - CSS_DYING = 16, +struct rt_rq { + struct rt_prio_array active; + unsigned int rt_nr_running; + unsigned int rr_nr_running; + struct { + int curr; + int next; + } highest_prio; + int overloaded; + struct plist_head pushable_tasks; + int rt_queued; + int rt_throttled; + u64 rt_time; + u64 rt_runtime; + raw_spinlock_t rt_runtime_lock; }; -enum { - __PERCPU_REF_ATOMIC = 1, - __PERCPU_REF_DEAD = 2, - __PERCPU_REF_ATOMIC_DEAD = 3, - __PERCPU_REF_FLAG_BITS = 2, +struct dl_rq { + struct rb_root_cached root; + unsigned int dl_nr_running; + struct { + u64 curr; + u64 next; + } earliest_dl; + int overloaded; + struct rb_root_cached pushable_dl_tasks_root; + u64 running_bw; + u64 this_bw; + u64 extra_bw; + u64 max_bw; + u64 bw_ratio; }; -typedef __u32 blk_mq_req_flags_t; +struct cpu_stop_done; -struct class_dev_iter { - struct klist_iter ki; - const struct device_type *type; - struct subsys_private *sp; +struct cpu_stop_work { + struct list_head list; + cpu_stop_fn_t fn; + unsigned long caller; + void *arg; + struct cpu_stop_done *done; }; -struct blkg_conf_ctx { - char *input; - char *body; - struct block_device *bdev; - struct blkcg_gq *blkg; -}; +struct root_domain; -enum { - MAX_OPT_ARGS = 3, -}; - -typedef unsigned int iov_iter_extraction_t; - -struct csum_state { - __wsum csum; - size_t off; -}; +struct sched_domain; -struct iov_iter_state { - size_t iov_offset; - size_t count; - unsigned long nr_segs; -}; +struct balance_callback; -struct portdrv_service_data { - struct pcie_port_service_driver *drv; - struct device *dev; - u32 service; +struct rq { + raw_spinlock_t __lock; + unsigned int nr_running; + unsigned long last_blocked_load_update_tick; + unsigned int has_blocked_load; + long: 64; + call_single_data_t nohz_csd; + unsigned int nohz_tick_stopped; + atomic_t nohz_flags; + unsigned int ttwu_pending; + u64 nr_switches; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct cfs_rq cfs; + struct rt_rq rt; + struct dl_rq dl; + struct 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; + 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; + long: 64; + struct sched_avg avg_rt; + struct sched_avg avg_dl; + u64 idle_stamp; + u64 avg_idle; + u64 max_idle_balance_cost; + struct rcuwait hotplug_wait; + u64 prev_steal_time; + unsigned long calc_load_update; + long calc_load_active; + 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; }; -typedef int (*pcie_callback_t)(struct pcie_device *); +struct cfs_bandwidth {}; -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); +struct task_group { + struct cgroup_subsys_state css; + struct sched_entity **se; + struct cfs_rq **cfs_rq; + unsigned long shares; + int idle; + 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; - unsigned long private[0]; }; -union acpi_subtable_headers; - -typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const unsigned long); - -struct acpi_subtable_header; - -struct acpi_probe_entry; +struct dl_bw { + raw_spinlock_t lock; + u64 bw; + u64 total_bw; +}; -typedef bool (*acpi_probe_entry_validate_subtbl)(struct acpi_subtable_header *, struct acpi_probe_entry *); +struct cpudl_item; -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 cpudl { + raw_spinlock_t lock; + int size; + cpumask_var_t free_cpus; + struct cpudl_item *elements; }; -struct acpi_subtable_header { - u8 type; - u8 length; +struct cpupri_vec { + atomic_t count; + cpumask_var_t mask; }; -struct acpi_hmat_structure { - u16 type; - u16 reserved; - u32 length; +struct cpupri { + struct cpupri_vec pri_to_cpu[101]; + int *cpu_to_pri; }; -struct acpi_prmt_module_header { - u16 revision; - u16 length; -}; +struct perf_domain; -struct acpi_cedt_header { - u8 type; - u8 reserved; - u16 length; +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; }; -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 cpudl_item { + u64 dl; + int cpu; + int idx; }; -enum acpi_madt_type { - ACPI_MADT_TYPE_LOCAL_APIC = 0, - ACPI_MADT_TYPE_IO_APIC = 1, - ACPI_MADT_TYPE_INTERRUPT_OVERRIDE = 2, - ACPI_MADT_TYPE_NMI_SOURCE = 3, - ACPI_MADT_TYPE_LOCAL_APIC_NMI = 4, - ACPI_MADT_TYPE_LOCAL_APIC_OVERRIDE = 5, - ACPI_MADT_TYPE_IO_SAPIC = 6, - ACPI_MADT_TYPE_LOCAL_SAPIC = 7, - ACPI_MADT_TYPE_INTERRUPT_SOURCE = 8, - ACPI_MADT_TYPE_LOCAL_X2APIC = 9, - ACPI_MADT_TYPE_LOCAL_X2APIC_NMI = 10, - ACPI_MADT_TYPE_GENERIC_INTERRUPT = 11, - ACPI_MADT_TYPE_GENERIC_DISTRIBUTOR = 12, - ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, - ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, - ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, - ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, - ACPI_MADT_TYPE_CORE_PIC = 17, - ACPI_MADT_TYPE_LIO_PIC = 18, - ACPI_MADT_TYPE_HT_PIC = 19, - ACPI_MADT_TYPE_EIO_PIC = 20, - ACPI_MADT_TYPE_MSI_PIC = 21, - ACPI_MADT_TYPE_BIO_PIC = 22, - ACPI_MADT_TYPE_LPC_PIC = 23, - ACPI_MADT_TYPE_RINTC = 24, - ACPI_MADT_TYPE_RESERVED = 25, - ACPI_MADT_TYPE_OEM_RESERVED = 128, -}; +struct em_perf_domain; -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, +struct perf_domain { + struct em_perf_domain *em_pd; + struct perf_domain *next; + struct callback_head rcu; }; -struct acpi_device_physical_node { - unsigned int node_id; - struct list_head node; - struct device *dev; - bool put_online: 1; -}; +struct em_perf_state; -struct acpi_device_bus_id { - const char *bus_id; - struct ida instance_ida; - struct list_head node; +struct em_perf_domain { + struct em_perf_state *table; + int nr_perf_states; + unsigned long flags; + unsigned long cpus[0]; }; -struct acpi_dep_data { - struct list_head node; - acpi_handle supplier; - acpi_handle consumer; - bool honor_dep; - bool met; - bool free_when_met; +struct em_perf_state { + unsigned long frequency; + unsigned long power; + unsigned long cost; + unsigned long flags; }; -struct acpi_scan_clear_dep_work { - struct work_struct work; - struct acpi_device *adev; -}; +struct sched_group; -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; -}; +struct sched_domain_shared; -struct acpi_pnp_device_id { - u32 length; - char *string; +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; + 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 acpi_pnp_device_id_list { - u32 count; - u32 list_size; - struct acpi_pnp_device_id ids[0]; -}; +struct sched_group_capacity; -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 sched_group { + struct sched_group *next; + atomic_t ref; + unsigned int group_weight; + unsigned int cores; + struct sched_group_capacity *sgc; + int asym_prefer_cpu; + int flags; + unsigned long cpumask[0]; }; -struct acpi_handle_list { - u32 count; - acpi_handle handles[10]; +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 acpi_table_stao { - struct acpi_table_header header; - u8 ignore_uart; -} __attribute__((packed)); - -struct acpi_generic_address { - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 access_width; - u64 address; -} __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)); - -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 sched_domain_shared { + atomic_t ref; + atomic_t nr_busy_cpus; + int has_idle_cores; + int nr_idle_scan; }; -enum wmi_brightness_method { - WMI_BRIGHTNESS_METHOD_LEVEL = 1, - WMI_BRIGHTNESS_METHOD_SOURCE = 2, - WMI_BRIGHTNESS_METHOD_MAX = 3, +struct balance_callback { + struct balance_callback *next; + void (*func)(struct rq *); }; -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 rq_flags { + unsigned long flags; + struct pin_cookie cookie; }; -struct wmi_brightness_args { - u32 mode; - u32 val; - u32 ret; - u32 ignored[3]; +struct affinity_context { + const struct cpumask *new_mask; + struct cpumask *user_mask; + unsigned int flags; }; -struct tty_audit_buf { - struct mutex mutex; - dev_t dev; - bool icanon; - size_t valid; - unsigned char *data; +enum { + SD_BALANCE_NEWIDLE = 1, + SD_BALANCE_EXEC = 2, + SD_BALANCE_FORK = 4, + SD_BALANCE_WAKE = 8, + SD_WAKE_AFFINE = 16, + SD_ASYM_CPUCAPACITY = 32, + SD_ASYM_CPUCAPACITY_FULL = 64, + SD_SHARE_CPUCAPACITY = 128, + SD_CLUSTER = 256, + SD_SHARE_PKG_RESOURCES = 512, + SD_SERIALIZE = 1024, + SD_ASYM_PACKING = 2048, + SD_PREFER_SIBLING = 4096, + SD_OVERLAP = 8192, + SD_NUMA = 16384, }; -enum chipset_type { - NOT_SUPPORTED = 0, - SUPPORTED = 1, +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 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; +enum sched_tunable_scaling { + SCHED_TUNABLESCALING_NONE = 0, + SCHED_TUNABLESCALING_LOG = 1, + SCHED_TUNABLESCALING_LINEAR = 2, + SCHED_TUNABLESCALING_END = 3, }; -struct agp_version { - u16 major; - u16 minor; +enum uclamp_id { + UCLAMP_MIN = 0, + UCLAMP_MAX = 1, + UCLAMP_CNT = 2, }; -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 cpu_idle_type { + CPU_IDLE = 0, + CPU_NOT_IDLE = 1, + CPU_NEWLY_IDLE = 2, + CPU_MAX_IDLE_TYPES = 3, }; -struct gatt_mask; - -struct agp_memory; - -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); +enum fbq_type { + regular = 0, + remote = 1, + all = 2, }; -struct gatt_mask { - unsigned long mask; - u32 type; +enum migration_type { + migrate_load = 0, + migrate_util = 1, + migrate_task = 2, + migrate_misfit = 3, }; -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; +enum group_type { + group_has_spare = 0, + group_fully_busy = 1, + group_misfit_task = 2, + group_smt_balance = 3, + group_asym_packing = 4, + group_imbalanced = 5, + group_overloaded = 6, }; -struct drm_client_funcs; +enum cpu_util_type { + FREQUENCY_UTIL = 0, + ENERGY_UTIL = 1, +}; -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 sched_entity_stats { + struct sched_entity se; + struct sched_statistics stats; }; -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 update_util_data { + void (*func)(struct update_util_data *, u64, unsigned int); }; -struct drm_client_offset { - int x; - int y; +struct softirq_action { + void (*action)(struct softirq_action *); }; -enum drm_bridge_attach_flags { - DRM_BRIDGE_ATTACH_NO_CONNECTOR = 1, +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; }; -enum drm_bridge_ops { - DRM_BRIDGE_OP_DETECT = 1, - DRM_BRIDGE_OP_EDID = 2, - DRM_BRIDGE_OP_HPD = 4, - DRM_BRIDGE_OP_MODES = 8, +struct sg_lb_stats { + unsigned long avg_load; + unsigned long group_load; + unsigned long group_capacity; + unsigned long group_util; + unsigned long group_runnable; + unsigned int sum_nr_running; + unsigned int sum_h_nr_running; + unsigned int idle_cpus; + unsigned int group_weight; + enum group_type group_type; + unsigned int group_asym_packing; + unsigned int group_smt_balance; + unsigned long group_misfit_task_load; }; -struct 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 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 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 rcu_cblist { + struct callback_head *head; + struct callback_head **tail; + long len; }; -struct drm_bridge_timings; +struct klp_object; -struct drm_bridge_funcs; +struct klp_state; -struct drm_bridge { - struct drm_private_obj base; - struct drm_device *dev; - struct drm_encoder *encoder; - struct list_head chain_node; +struct klp_patch { + struct module *mod; + struct klp_object *objs; + struct klp_state *states; + bool replace; 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 kobject kobj; + struct list_head obj_list; + bool enabled; + bool forced; + struct work_struct free_work; + struct completion finish; }; -struct drm_bridge_timings { - u32 input_bus_flags; - u32 setup_time_ps; - u32 hold_time_ps; - bool dual_link; +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 drm_bridge_state; +struct klp_func; -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 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 drm_bus_cfg { - u32 format; - u32 flags; +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 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 klp_state { + unsigned long id; + unsigned int version; + void *data; }; -struct intel_gt_debugfs_file { - const char *name; - const struct file_operations *fops; - bool (*eval)(void *); +typedef __s64 Elf64_Sxword; + +struct elf64_rela { + Elf64_Addr r_offset; + Elf64_Xword r_info; + Elf64_Sxword r_addend; }; -struct dma_fence_work; +typedef struct elf64_rela Elf64_Rela; -struct dma_fence_work_ops { +struct klp_find_arg { const char *name; - void (*work)(struct dma_fence_work *); - void (*release)(struct dma_fence_work *); + unsigned long addr; + unsigned long count; + unsigned long pos; }; -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 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 fb_op_origin { - ORIGIN_CPU = 0, - ORIGIN_CS = 1, - ORIGIN_FLIP = 2, - ORIGIN_DIRTYFB = 3, - ORIGIN_CURSOR_UPDATE = 4, -}; +typedef void (*btf_trace_csd_queue_cpu)(void *, const unsigned int, unsigned long, smp_call_func_t, call_single_data_t *); -struct clflush { - struct dma_fence_work base; - struct drm_i915_gem_object *obj; -}; +typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, call_single_data_t *); -enum i915_request_state { - I915_REQUEST_UNKNOWN = 0, - I915_REQUEST_COMPLETE = 1, - I915_REQUEST_PENDING = 2, - I915_REQUEST_QUEUED = 3, - I915_REQUEST_ACTIVE = 4, +typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, call_single_data_t *); + +struct call_function_data { + call_single_data_t __attribute__((btf_type_tag("percpu"))) *csd; + cpumask_var_t cpumask; + cpumask_var_t cpumask_ipi; }; -enum intel_huc_authentication_type { - INTEL_HUC_AUTH_BY_GUC = 0, - INTEL_HUC_AUTH_BY_GSC = 1, - INTEL_HUC_AUTH_MAX_MODES = 2, +struct trace_event_raw_csd_queue_cpu { + struct trace_entry ent; + unsigned int cpu; + void *callsite; + void *func; + void *csd; + char __data[0]; }; -struct execute_cb { - struct irq_work work; - struct i915_sw_fence *fence; - struct i915_request *signal; +struct trace_event_raw_csd_function { + struct trace_entry ent; + void *func; + void *csd; + char __data[0]; }; -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; +struct smp_call_on_cpu_struct { + struct work_struct work; + struct completion done; + int (*func)(void *); + void *data; + int ret; + int cpu; }; -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 trace_event_data_offsets_csd_queue_cpu {}; + +struct trace_event_data_offsets_csd_function {}; + +struct ftrace_page; + +struct ftrace_rec_iter { + struct ftrace_page *pg; + int index; }; -struct request_wait { - struct dma_fence_cb cb; - struct task_struct *tsk; +struct dyn_ftrace; + +struct ftrace_page { + struct ftrace_page *next; + struct dyn_ftrace *records; + int index; + int order; }; -struct i915_deps { - struct dma_fence *single; - struct dma_fence **fences; - unsigned int num_deps; - unsigned int fences_size; - gfp_t gfp; +struct dyn_arch_ftrace {}; + +struct dyn_ftrace { + unsigned long ip; + unsigned long flags; + struct dyn_arch_ftrace arch; }; -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, +enum ftrace_bug_type { + FTRACE_BUG_UNKNOWN = 0, + FTRACE_BUG_INIT = 1, + FTRACE_BUG_NOP = 2, + FTRACE_BUG_CALL = 3, + FTRACE_BUG_UPDATE = 4, }; -enum 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 ftrace_func_command { + struct list_head list; + char *name; + int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); }; -struct intel_dkl_phy_reg { - u32 reg: 24; - u32 bank_idx: 4; +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 drm_i915_error_state_buf { - struct drm_i915_private *i915; - struct scatterlist *sgl; - struct scatterlist *cur; - struct scatterlist *end; - char *buf; - size_t bytes; - size_t size; - loff_t iter; - int err; -}; +struct ftrace_profile_page; -struct intel_engine_capture_vma { - struct intel_engine_capture_vma *next; - struct i915_vma_resource *vma_res; - char name[16]; - bool lockdep_cookie; +struct ftrace_profile_stat { + atomic_t disabled; + struct hlist_head *hash; + struct ftrace_profile_page *pages; + struct ftrace_profile_page *start; + struct tracer_stat stat; }; -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; +struct ftrace_profile { + struct hlist_node node; + unsigned long ip; + unsigned long counter; + unsigned long long time; + unsigned long long time_squared; }; -struct i915_vma_compress { - struct folio_batch pool; - struct z_stream_s zstream; - void *tmp; +struct ftrace_profile_page { + struct ftrace_profile_page *next; + unsigned long index; + struct ftrace_profile records[0]; }; -struct internal_state { - int dummy; +enum { + FTRACE_OPS_FL_ENABLED = 1, + FTRACE_OPS_FL_DYNAMIC = 2, + FTRACE_OPS_FL_SAVE_REGS = 4, + FTRACE_OPS_FL_SAVE_REGS_IF_SUPPORTED = 8, + FTRACE_OPS_FL_RECURSION = 16, + FTRACE_OPS_FL_STUB = 32, + FTRACE_OPS_FL_INITIALIZED = 64, + FTRACE_OPS_FL_DELETED = 128, + FTRACE_OPS_FL_ADDING = 256, + FTRACE_OPS_FL_REMOVING = 512, + FTRACE_OPS_FL_MODIFYING = 1024, + FTRACE_OPS_FL_ALLOC_TRAMP = 2048, + FTRACE_OPS_FL_IPMODIFY = 4096, + FTRACE_OPS_FL_PID = 8192, + FTRACE_OPS_FL_RCU = 16384, + FTRACE_OPS_FL_TRACE_ARRAY = 32768, + FTRACE_OPS_FL_PERMANENT = 65536, + FTRACE_OPS_FL_DIRECT = 131072, }; -struct sgt_iter { - struct scatterlist *sgp; - union { - unsigned long pfn; - dma_addr_t dma; - }; - unsigned int curr; - unsigned int max; +enum { + FTRACE_FL_ENABLED = 2147483648, + FTRACE_FL_REGS = 1073741824, + FTRACE_FL_REGS_EN = 536870912, + FTRACE_FL_TRAMP = 268435456, + FTRACE_FL_TRAMP_EN = 134217728, + FTRACE_FL_IPMODIFY = 67108864, + FTRACE_FL_DISABLED = 33554432, + FTRACE_FL_DIRECT = 16777216, + FTRACE_FL_DIRECT_EN = 8388608, + FTRACE_FL_CALL_OPS = 4194304, + FTRACE_FL_CALL_OPS_EN = 2097152, + FTRACE_FL_TOUCHED = 1048576, + FTRACE_FL_MODIFIED = 524288, }; -typedef struct z_stream_s z_stream; - -typedef z_stream *z_streamp; +enum { + FTRACE_MODIFY_ENABLE_FL = 1, + FTRACE_MODIFY_MAY_SLEEP_FL = 2, +}; -typedef void * (*devcon_match_fn_t)(const struct fwnode_handle *, const char *, void *); +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 scsi_devinfo_key { - SCSI_DEVINFO_GLOBAL = 0, - SCSI_DEVINFO_SPI = 1, +enum { + FTRACE_ITER_FILTER = 1, + FTRACE_ITER_NOTRACE = 2, + FTRACE_ITER_PRINTALL = 4, + FTRACE_ITER_DO_PROBES = 8, + FTRACE_ITER_PROBE = 16, + FTRACE_ITER_MOD = 32, + FTRACE_ITER_ENABLED = 64, + FTRACE_ITER_TOUCHED = 128, + FTRACE_ITER_ADDRS = 256, }; -struct scsi_dev_info_list { - struct list_head dev_info_list; - char vendor[8]; - char model[16]; - blist_flags_t flags; - unsigned int compatible; +enum regex_type { + MATCH_FULL = 0, + MATCH_FRONT_ONLY = 1, + MATCH_MIDDLE_ONLY = 2, + MATCH_END_ONLY = 3, + MATCH_GLOB = 4, + MATCH_INDEX = 5, }; -struct scsi_dev_info_list_table { - struct list_head node; - struct list_head scsi_dev_info_list; - const char *name; - int key; +enum { + TRACE_ARRAY_FL_GLOBAL = 1, }; -struct double_list { - struct list_head *top; - struct list_head *bottom; +enum { + TRACE_PIDS = 1, + TRACE_NO_PIDS = 2, }; -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 { + FTRACE_UPDATE_IGNORE = 0, + FTRACE_UPDATE_MAKE_CALL = 1, + FTRACE_UPDATE_MODIFY_CALL = 2, + FTRACE_UPDATE_MAKE_NOP = 3, }; -struct mii_ioctl_data { - __u16 phy_id; - __u16 reg_num; - __u16 val_in; - __u16 val_out; +enum perf_record_ksymbol_type { + PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0, + PERF_RECORD_KSYMBOL_TYPE_BPF = 1, + PERF_RECORD_KSYMBOL_TYPE_OOL = 2, + PERF_RECORD_KSYMBOL_TYPE_MAX = 3, }; -struct phy_setting { - u32 speed; - u8 duplex; - u8 bit; +enum mod_mem_type { + MOD_TEXT = 0, + MOD_DATA = 1, + MOD_RODATA = 2, + MOD_RO_AFTER_INIT = 3, + MOD_INIT_TEXT = 4, + MOD_INIT_DATA = 5, + MOD_INIT_RODATA = 6, + MOD_MEM_NUM_TYPES = 7, + MOD_INVALID = -1, }; -struct resource_map { - u_long base; - u_long num; - struct resource_map *next; +enum { + TRACE_CTX_NMI = 0, + TRACE_CTX_IRQ = 1, + TRACE_CTX_SOFTIRQ = 2, + TRACE_CTX_NORMAL = 3, + TRACE_CTX_TRANSITION = 4, }; -struct socket_data { - struct resource_map mem_db; - struct resource_map mem_db_valid; - struct resource_map io_db; +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, }; -struct pcmcia_align_data { - unsigned long mask; - unsigned long offset; - struct resource_map *map; +enum graph_filter_type { + GRAPH_FILTER_NOTRACE = 0, + GRAPH_FILTER_FUNCTION = 1, }; -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, +struct ftrace_func_mapper { + struct ftrace_hash hash; }; -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 ftrace_func_map { + struct ftrace_func_entry entry; + void *data; }; -typedef u32 usb_port_location_t; +struct ftrace_probe_ops; -struct usb_dev_state; +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 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; - enum usb_device_state state; - struct kernfs_node *state_kn; - usb_port_location_t location; - struct mutex status_lock; - u32 over_current_count; - u8 portnum; - u32 quirks; - unsigned int early_stop: 1; - unsigned int ignore_event: 1; - unsigned int is_superspeed: 1; - unsigned int usb3_lpm_u1_permit: 1; - unsigned int usb3_lpm_u2_permit: 1; +struct 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 usb_hub_status { - __le16 wHubStatus; - __le16 wHubChange; +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 usb_port_status { - __le16 wPortStatus; - __le16 wPortChange; - __le32 dwExtPortStatus; +struct ftrace_mod_func { + struct list_head list; + char *name; + unsigned long ip; + unsigned int size; }; -struct usb_hub_descriptor; +struct ftrace_init_func { + struct list_head list; + unsigned long ip; +}; -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 ftrace_mod_load { + struct list_head list; + char *func; + char *module; + int enable; }; -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 trace_parser { + bool cont; + char *buffer; + unsigned int idx; + unsigned int size; +}; -struct driver_attribute { - struct attribute attr; - ssize_t (*show)(struct device_driver *, char *); - ssize_t (*store)(struct device_driver *, const char *, size_t); +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; }; -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 ftrace_glob { + char *search; + unsigned int len; + int type; }; -struct serio_device_id { - __u8 type; - __u8 extra; - __u8 id; - __u8 proto; +struct ftrace_graph_data { + struct ftrace_hash *hash; + struct ftrace_func_entry *entry; + int idx; + enum graph_filter_type type; + struct ftrace_hash *new_hash; + const struct seq_operations *seq_ops; + struct trace_parser parser; }; -struct serio_driver; +typedef int (*ftrace_mapper_func)(void *); -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 kallsyms_data { + unsigned long *addrs; + const char **syms; + size_t cnt; + size_t found; }; -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 bpf_hrtimer { + struct hrtimer timer; + struct bpf_map *map; + struct bpf_prog *prog; + void __attribute__((btf_type_tag("rcu"))) *callback_fn; + void *value; }; -struct serio_event { - enum serio_event_type type; - void *object; - struct module *owner; - struct list_head node; +struct bpf_bprintf_buffers { + char bin_args[512]; + char buf[1024]; }; -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 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, }; -struct psmouse; +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, +}; -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 *); +enum { + BPF_F_INDEX_MASK = 4294967295ULL, + BPF_F_CURRENT_CPU = 4294967295ULL, + BPF_F_CTXLEN_MASK = 4503595332403200ULL, }; -enum ps2_disposition { - PS2_PROCESS = 0, - PS2_IGNORE = 1, - PS2_ERROR = 2, +enum { + BPF_F_TIMER_ABS = 1, + BPF_F_TIMER_CPU_PIN = 2, }; -struct ps2dev; +typedef u64 (*btf_bpf_map_lookup_elem)(struct bpf_map *, void *); -typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int); +typedef u64 (*btf_bpf_map_update_elem)(struct bpf_map *, void *, void *, u64); -typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8); +typedef u64 (*btf_bpf_map_delete_elem)(struct bpf_map *, void *); -struct ps2dev { - struct serio *serio; - struct mutex cmd_mutex; - wait_queue_head_t wait; - unsigned long flags; - u8 cmdbuf[8]; - u8 cmdcnt; - u8 nak; - ps2_pre_receive_handler_t pre_receive_handler; - ps2_receive_handler_t receive_handler; -}; +typedef u64 (*btf_bpf_map_push_elem)(struct bpf_map *, void *, u64); -enum psmouse_state { - PSMOUSE_IGNORE = 0, - PSMOUSE_INITIALIZING = 1, - PSMOUSE_RESYNCING = 2, - PSMOUSE_CMD_MODE = 3, - PSMOUSE_ACTIVATED = 4, -}; +typedef u64 (*btf_bpf_map_pop_elem)(struct bpf_map *, void *); -typedef enum { - PSMOUSE_BAD_DATA = 0, - PSMOUSE_GOOD_DATA = 1, - PSMOUSE_FULL_PACKET = 2, -} psmouse_ret_t; +typedef u64 (*btf_bpf_map_peek_elem)(struct bpf_map *, void *); -enum psmouse_scale { - PSMOUSE_SCALE11 = 0, - PSMOUSE_SCALE21 = 1, -}; +typedef u64 (*btf_bpf_map_lookup_percpu_elem)(struct bpf_map *, void *, u32); -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 *); -}; +typedef u64 (*btf_bpf_get_smp_processor_id)(); -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; -}; +typedef u64 (*btf_bpf_get_numa_node_id)(); -enum thermal_device_mode { - THERMAL_DEVICE_DISABLED = 0, - THERMAL_DEVICE_ENABLED = 1, -}; +typedef u64 (*btf_bpf_ktime_get_ns)(); -enum thermal_trip_type { - THERMAL_TRIP_ACTIVE = 0, - THERMAL_TRIP_PASSIVE = 1, - THERMAL_TRIP_HOT = 2, - THERMAL_TRIP_CRITICAL = 3, -}; +typedef u64 (*btf_bpf_ktime_get_boot_ns)(); -enum thermal_trend { - THERMAL_TREND_STABLE = 0, - THERMAL_TREND_RAISING = 1, - THERMAL_TREND_DROPPING = 2, -}; +typedef u64 (*btf_bpf_ktime_get_coarse_ns)(); -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, +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); + +struct bpf_spin_lock; + +typedef u64 (*btf_bpf_spin_lock)(struct bpf_spin_lock *); + +struct bpf_spin_lock { + __u32 val; }; -struct thermal_zone_device; +typedef u64 (*btf_bpf_spin_unlock)(struct bpf_spin_lock *); -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; - bool upper_no_limit; +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; }; -struct thermal_attr; +typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64); -struct thermal_trip; +typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); -struct thermal_zone_device_ops; +typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void __attribute__((btf_type_tag("user"))) *, struct task_struct *, u64); -struct thermal_zone_params; +typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32); -struct thermal_governor; +typedef u64 (*btf_bpf_this_cpu_ptr)(const void *); -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; -}; +typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32); -struct thermal_attr { - struct device_attribute attr; - char name[20]; -}; +struct bpf_timer_kern; -struct thermal_trip { - int temperature; - int hysteresis; - enum thermal_trip_type type; -}; +typedef u64 (*btf_bpf_timer_init)(struct bpf_timer_kern *, struct bpf_map *, u64); -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 bpf_timer_kern { + struct bpf_hrtimer *timer; + struct bpf_spin_lock lock; }; -struct thermal_zone_params { - char governor_name[20]; - bool no_hwmon; - u32 sustainable_power; - s32 k_po; - s32 k_pu; - s32 k_i; - s32 k_d; - s32 integral_cutoff; - int slope; - int offset; -}; +typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *); -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; -}; +typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64); -enum dm_queue_mode { - DM_TYPE_NONE = 0, - DM_TYPE_BIO_BASED = 1, - DM_TYPE_REQUEST_BASED = 2, - DM_TYPE_DAX_BIO_BASED = 3, -}; +typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *); -struct hd_geometry { - unsigned char heads; - unsigned char sectors; - unsigned short cylinders; - unsigned long start; -}; +typedef u64 (*btf_bpf_kptr_xchg)(void *, void *); -typedef u16 blk_short_t; +struct bpf_dynptr_kern; -struct dm_stats_aux { - bool merged; - unsigned long long duration_ns; -}; +typedef u64 (*btf_bpf_dynptr_from_mem)(void *, u32, u64, struct bpf_dynptr_kern *); -struct dm_io; +struct bpf_dynptr_kern { + void *data; + u32 size; + u32 offset; +}; -struct dm_target; +typedef u64 (*btf_bpf_dynptr_read)(void *, u32, const struct bpf_dynptr_kern *, u32, u64); -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; -}; +typedef u64 (*btf_bpf_dynptr_write)(const struct bpf_dynptr_kern *, u32, void *, u32, u64); -struct mapped_device; +typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32); -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 bpf_refcount { + int: 32; }; -struct dm_stats_last_position; +struct bpf_rb_node_kern { + struct rb_node rb_node; + void *owner; +}; -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 bpf_rb_node { + long: 64; + long: 64; + long: 64; + long: 64; }; -struct dm_kobject_holder { - struct kobject kobj; - struct completion completion; +struct bpf_timer { + long: 64; + long: 64; }; -struct target_type; +struct bpf_dynptr { + long: 64; + long: 64; +}; -struct dm_md_mempools; +struct bpf_list_node_kern { + struct list_head list_head; + void *owner; +}; -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 bpf_list_node { + long: 64; + long: 64; + long: 64; }; -struct dm_table; +typedef unsigned long (*bpf_ctx_copy_t)(void *, const void *, unsigned long, unsigned long); -struct dm_target { - struct dm_table *table; - struct target_type *type; - sector_t begin; - sector_t len; - uint32_t max_io_len; - unsigned int num_flush_bios; - unsigned int num_discard_bios; - unsigned int num_secure_erase_bios; - unsigned int num_write_zeroes_bios; - unsigned int per_io_data_size; - void *private; - char *error; - bool flush_supported: 1; - bool discards_supported: 1; - bool max_discard_granularity: 1; - bool max_secure_erase_granularity: 1; - bool max_write_zeroes_granularity: 1; - bool limit_swap_bios: 1; - bool emulate_zone_append: 1; - bool accounts_remapped_io: 1; - bool needs_bio_set_dev: 1; +struct bpf_bprintf_data { + u32 *bin_args; + char *buf; + bool get_bin_args; + bool get_buf; }; -struct dm_table { - struct mapped_device *md; - enum dm_queue_mode type; - unsigned int depth; - unsigned int counts[16]; - sector_t *index[16]; - unsigned int num_targets; - unsigned int num_allocated; - sector_t *highs; - struct dm_target *targets; - struct target_type *immutable_target_type; - bool integrity_supported: 1; - bool singleton: 1; - unsigned int integrity_added: 1; - blk_mode_t mode; - struct list_head devices; - void (*event_fn)(void *); - void *event_context; - struct dm_md_mempools *mempools; +struct bpf_list_head { + long: 64; + long: 64; }; -typedef int (*dm_ctr_fn)(struct dm_target *, unsigned int, char **); - -typedef void (*dm_dtr_fn)(struct dm_target *); +struct bpf_rb_root { + long: 64; + long: 64; +}; -typedef int (*dm_map_fn)(struct dm_target *, struct bio *); +struct btf_id_dtor_kfunc { + u32 btf_id; + u32 kfunc_btf_id; +}; -union map_info; +struct btf_struct_meta { + u32 btf_id; + struct btf_record *record; +}; -typedef int (*dm_clone_and_map_request_fn)(struct dm_target *, struct request *, union map_info *, struct request **); +struct bpf_throw_ctx { + struct bpf_prog_aux *aux; + u64 sp; + u64 bp; + int cnt; +}; -typedef void (*dm_release_clone_request_fn)(struct request *, union map_info *); +struct bp_slots_histogram { + atomic_t count[4]; +}; -typedef int (*dm_endio_fn)(struct dm_target *, struct bio *, blk_status_t *); +struct bp_cpuinfo { + unsigned int cpu_pinned; + struct bp_slots_histogram tsk_pinned; +}; -typedef int (*dm_request_endio_fn)(struct dm_target *, struct request *, blk_status_t, union map_info *); +enum bp_type_idx { + TYPE_INST = 0, + TYPE_DATA = 0, + TYPE_MAX = 1, +}; -typedef void (*dm_presuspend_fn)(struct dm_target *); +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 (*dm_presuspend_undo_fn)(struct dm_target *); +struct mminit_pfnnid_cache { + unsigned long last_start; + unsigned long last_end; + int last_nid; +}; -typedef void (*dm_postsuspend_fn)(struct dm_target *); +enum memblock_flags { + MEMBLOCK_NONE = 0, + MEMBLOCK_HOTPLUG = 1, + MEMBLOCK_MIRROR = 2, + MEMBLOCK_NOMAP = 4, + MEMBLOCK_DRIVER_MANAGED = 8, + MEMBLOCK_RSRV_NOINIT = 16, +}; -typedef int (*dm_preresume_fn)(struct dm_target *); +struct memblock_region { + phys_addr_t base; + phys_addr_t size; + enum memblock_flags flags; + int nid; +}; -typedef void (*dm_resume_fn)(struct dm_target *); +enum mminit_level { + MMINIT_WARNING = 0, + MMINIT_VERIFY = 1, + MMINIT_TRACE = 2, +}; -typedef enum { - STATUSTYPE_INFO = 0, - STATUSTYPE_TABLE = 1, - STATUSTYPE_IMA = 2, -} status_type_t; +enum meminit_context { + MEMINIT_EARLY = 0, + MEMINIT_HOTPLUG = 1, +}; -typedef void (*dm_status_fn)(struct dm_target *, status_type_t, unsigned int, char *, unsigned int); +enum migratetype { + MIGRATE_UNMOVABLE = 0, + MIGRATE_MOVABLE = 1, + MIGRATE_RECLAIMABLE = 2, + MIGRATE_PCPTYPES = 3, + MIGRATE_HIGHATOMIC = 3, + MIGRATE_TYPES = 4, +}; -typedef int (*dm_message_fn)(struct dm_target *, unsigned int, char **, char *, unsigned int); +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; +}; -typedef int (*dm_prepare_ioctl_fn)(struct dm_target *, struct block_device **); +enum hugetlb_memory_event { + HUGETLB_MAX = 0, + HUGETLB_NR_MEMORY_EVENTS = 1, +}; -typedef int (*dm_report_zones_fn)(struct dm_target *); +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, +}; -typedef int (*dm_busy_fn)(struct dm_target *); +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 dm_dev; +struct mount; -typedef int (*iterate_devices_callout_fn)(struct dm_target *, struct dm_dev *, sector_t, sector_t, void *); +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; +}; -typedef int (*dm_iterate_devices_fn)(struct dm_target *, iterate_devices_callout_fn, void *); +struct mnt_pcp; -typedef void (*dm_io_hints_fn)(struct dm_target *, struct queue_limits *); +struct mountpoint; -enum dax_access_mode { - DAX_ACCESS = 0, - DAX_RECOVERY_WRITE = 1, +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; }; -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 *); +struct mnt_pcp { + int mnt_count; + int mnt_writers; +}; -typedef int (*dm_dax_zero_page_range_fn)(struct dm_target *, unsigned long, size_t); +struct mountpoint { + struct hlist_node m_hash; + struct dentry *m_dentry; + struct hlist_head m_list; + int m_count; +}; -typedef size_t (*dm_dax_recovery_write_fn)(struct dm_target *, unsigned long, void *, size_t, struct iov_iter *); +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 target_type { - uint64_t features; +struct constant_table { 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; + int value; }; -union map_info { - void *ptr; +enum legacy_fs_param { + LEGACY_FS_UNSET_PARAMS = 0, + LEGACY_FS_MONOLITHIC_PARAMS = 1, + LEGACY_FS_INDIVIDUAL_PARAMS = 2, }; -struct dm_dev { - struct block_device *bdev; - struct dax_device *dax_dev; - blk_mode_t mode; - char name[16]; +struct legacy_fs_context { + char *legacy_data; + size_t data_size; + enum legacy_fs_param param_type; }; -struct dm_md_mempools { - struct bio_set bs; - struct bio_set io_bs; +struct qtree_fmt_operations { + void (*mem2disk_dqblk)(void *, struct dquot *); + void (*disk2mem_dqblk)(struct dquot *, void *); + int (*is_id)(void *, struct dquot *); }; -struct dm_stats_last_position { - sector_t last_sector; - unsigned int last_rw; +enum { + DQF_INFO_DIRTY_B = 17, }; -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 v2_disk_dqheader { + __le32 dqh_magic; + __le32 dqh_version; }; -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 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 hidraw_report { - __u8 *value; - int len; +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 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 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 hidraw_devinfo { - __u32 bustype; - __s16 vendor; - __s16 product; +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; }; -typedef int (*acpi_op_add)(struct acpi_device *); +enum { + PROC_ENTRY_PERMANENT = 1, +}; -typedef void (*acpi_op_remove)(struct acpi_device *); +typedef int (*proc_write_t)(struct file *, char *, size_t); -typedef void (*acpi_op_notify)(struct acpi_device *, u32); +typedef u32 nlink_t; -struct acpi_device_ops { - acpi_op_add add; - acpi_op_remove remove; - acpi_op_notify notify; +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]; }; -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 void (*btf_trace_ext4_other_inode_update_time)(void *, struct inode *, ino_t); -struct fb_info; +typedef void (*btf_trace_ext4_free_inode)(void *, struct inode *); -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 *); -}; +typedef void (*btf_trace_ext4_request_inode)(void *, struct inode *, int); -enum backlight_type { - BACKLIGHT_RAW = 1, - BACKLIGHT_PLATFORM = 2, - BACKLIGHT_FIRMWARE = 3, - BACKLIGHT_TYPE_MAX = 4, -}; +typedef void (*btf_trace_ext4_allocate_inode)(void *, struct inode *, struct inode *, int); -enum backlight_scale { - BACKLIGHT_SCALE_UNKNOWN = 0, - BACKLIGHT_SCALE_LINEAR = 1, - BACKLIGHT_SCALE_NON_LINEAR = 2, -}; +typedef void (*btf_trace_ext4_evict_inode)(void *, struct inode *); -struct backlight_properties { - int brightness; - int max_brightness; - int power; - int fb_blank; - enum backlight_type type; - unsigned int state; - enum backlight_scale scale; -}; +typedef void (*btf_trace_ext4_drop_inode)(void *, struct inode *, int); -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; -}; +typedef void (*btf_trace_ext4_nfs_commit_metadata)(void *, struct inode *); -struct fb_bitfield { - __u32 offset; - __u32 length; - __u32 msb_right; -}; +typedef void (*btf_trace_ext4_mark_inode_dirty)(void *, struct inode *, unsigned long); -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]; -}; +typedef void (*btf_trace_ext4_begin_ordered_truncate)(void *, struct inode *, loff_t); -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]; -}; +typedef void (*btf_trace_ext4_write_begin)(void *, struct inode *, loff_t, unsigned int); -struct fb_chroma { - __u32 redx; - __u32 greenx; - __u32 bluex; - __u32 whitex; - __u32 redy; - __u32 greeny; - __u32 bluey; - __u32 whitey; -}; +typedef void (*btf_trace_ext4_da_write_begin)(void *, struct inode *, loff_t, unsigned int); -struct fb_videomode; +typedef void (*btf_trace_ext4_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); -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; -}; +typedef void (*btf_trace_ext4_journalled_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); -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); -}; +typedef void (*btf_trace_ext4_da_write_end)(void *, struct inode *, loff_t, unsigned int, unsigned int); -struct fb_cmap { - __u32 start; - __u32 len; - __u16 *red; - __u16 *green; - __u16 *blue; - __u16 *transp; -}; +typedef void (*btf_trace_ext4_writepages)(void *, struct inode *, struct writeback_control *); -struct fb_ops; +typedef void (*btf_trace_ext4_da_write_pages)(void *, struct inode *, unsigned long, struct writeback_control *); -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 ext4_map_blocks; -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; -}; +typedef void (*btf_trace_ext4_da_write_pages_extent)(void *, struct inode *, struct ext4_map_blocks *); -struct fb_fillrect; +struct ext4_map_blocks { + ext4_fsblk_t m_pblk; + ext4_lblk_t m_lblk; + unsigned int m_len; + unsigned int m_flags; +}; -struct fb_copyarea; +typedef void (*btf_trace_ext4_writepages_result)(void *, struct inode *, struct writeback_control *, int, int); -struct fb_image; +typedef void (*btf_trace_ext4_read_folio)(void *, struct inode *, struct folio *); -struct fb_cursor; +typedef void (*btf_trace_ext4_release_folio)(void *, struct inode *, struct folio *); -struct fb_blit_caps; +typedef void (*btf_trace_ext4_invalidate_folio)(void *, struct folio *, size_t, size_t); -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 *); -}; +typedef void (*btf_trace_ext4_journalled_invalidate_folio)(void *, struct folio *, size_t, size_t); -struct fb_fillrect { - __u32 dx; - __u32 dy; - __u32 width; - __u32 height; - __u32 color; - __u32 rop; -}; +typedef void (*btf_trace_ext4_discard_blocks)(void *, struct super_block *, unsigned long long, unsigned long long); -struct fb_copyarea { - __u32 dx; - __u32 dy; - __u32 width; - __u32 height; - __u32 sx; - __u32 sy; -}; +struct ext4_allocation_context; -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 ext4_prealloc_space; -struct fbcurpos { - __u16 x; - __u16 y; -}; +typedef void (*btf_trace_ext4_mb_new_inode_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); -struct fb_cursor { - __u16 set; - __u16 enable; - __u16 rop; - const char *mask; - struct fbcurpos hot; - struct fb_image image; +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 fb_blit_caps { - u32 x; - u32 y; - u32 len; - u32 flags; +struct ext4_allocation_context { + struct inode *ac_inode; + struct super_block *ac_sb; + struct ext4_free_extent ac_o_ex; + struct ext4_free_extent ac_g_ex; + struct ext4_free_extent ac_b_ex; + struct ext4_free_extent ac_f_ex; + ext4_grpblk_t ac_orig_goal_len; + __u32 ac_groups_considered; + __u32 ac_flags; + __u16 ac_groups_scanned; + __u16 ac_groups_linear_remaining; + __u16 ac_found; + __u16 ac_cX_found[5]; + __u16 ac_tail; + __u16 ac_buddy; + __u8 ac_status; + __u8 ac_criteria; + __u8 ac_2order; + __u8 ac_op; + struct page *ac_bitmap_page; + struct page *ac_buddy_page; + struct ext4_prealloc_space *ac_pa; + struct ext4_locality_group *ac_lg; }; -struct key_entry { - int type; - u32 code; +struct ext4_prealloc_space { union { - u16 keycode; - struct { - u8 code; - u8 value; - } sw; - }; + struct rb_node inode_node; + struct list_head lg_list; + } pa_node; + struct list_head pa_group_list; + union { + struct list_head pa_tmp_list; + struct callback_head pa_rcu; + } u; + spinlock_t pa_lock; + atomic_t pa_count; + unsigned int pa_deleted; + ext4_fsblk_t pa_pstart; + ext4_lblk_t pa_lstart; + ext4_grpblk_t pa_len; + ext4_grpblk_t pa_free; + unsigned short pa_type; + union { + rwlock_t *inode_lock; + spinlock_t *lg_lock; + } pa_node_lock; + struct inode *pa_inode; }; -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 void (*btf_trace_ext4_mb_new_group_pa)(void *, struct ext4_allocation_context *, struct ext4_prealloc_space *); -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; -}; +typedef void (*btf_trace_ext4_mb_release_inode_pa)(void *, struct ext4_prealloc_space *, unsigned long long, unsigned int); -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, -}; +typedef void (*btf_trace_ext4_mb_release_group_pa)(void *, struct super_block *, struct ext4_prealloc_space *); -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, -}; +typedef void (*btf_trace_ext4_discard_preallocations)(void *, struct inode *, unsigned int, unsigned int); -enum { - FB_BLANK_UNBLANK = 0, - FB_BLANK_NORMAL = 1, - FB_BLANK_VSYNC_SUSPEND = 2, - FB_BLANK_HSYNC_SUSPEND = 3, - FB_BLANK_POWERDOWN = 4, -}; +typedef void (*btf_trace_ext4_mb_discard_preallocations)(void *, struct super_block *, int); -enum backlight_update_reason { - BACKLIGHT_UPDATE_HOTKEY = 0, - BACKLIGHT_UPDATE_SYSFS = 1, -}; +struct ext4_allocation_request; -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; -}; +typedef void (*btf_trace_ext4_request_blocks)(void *, struct ext4_allocation_request *); -struct led_init_data { - struct fwnode_handle *fwnode; - const char *default_label; - const char *devicename; - bool devname_mandatory; +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 eeepc_cpufv { - int num; - int cur; -}; +typedef void (*btf_trace_ext4_allocate_blocks)(void *, struct ext4_allocation_request *, unsigned long long); -struct sdw_intel_acpi_info { - acpi_handle handle; - int count; - u32 link_mask; -}; +typedef void (*btf_trace_ext4_free_blocks)(void *, struct inode *, __u64, unsigned long, int); -enum flow_dissector_key_id { - FLOW_DISSECTOR_KEY_CONTROL = 0, - FLOW_DISSECTOR_KEY_BASIC = 1, - FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, - FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, - FLOW_DISSECTOR_KEY_PORTS = 4, - FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, - FLOW_DISSECTOR_KEY_ICMP = 6, - FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, - FLOW_DISSECTOR_KEY_TIPC = 8, - FLOW_DISSECTOR_KEY_ARP = 9, - FLOW_DISSECTOR_KEY_VLAN = 10, - FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, - FLOW_DISSECTOR_KEY_GRE_KEYID = 12, - FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, - FLOW_DISSECTOR_KEY_ENC_KEYID = 14, - FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, - FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, - FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, - FLOW_DISSECTOR_KEY_ENC_PORTS = 18, - FLOW_DISSECTOR_KEY_MPLS = 19, - FLOW_DISSECTOR_KEY_TCP = 20, - FLOW_DISSECTOR_KEY_IP = 21, - FLOW_DISSECTOR_KEY_CVLAN = 22, - FLOW_DISSECTOR_KEY_ENC_IP = 23, - FLOW_DISSECTOR_KEY_ENC_OPTS = 24, - FLOW_DISSECTOR_KEY_META = 25, - FLOW_DISSECTOR_KEY_CT = 26, - FLOW_DISSECTOR_KEY_HASH = 27, - FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28, - FLOW_DISSECTOR_KEY_PPPOE = 29, - FLOW_DISSECTOR_KEY_L2TPV3 = 30, - FLOW_DISSECTOR_KEY_CFM = 31, - FLOW_DISSECTOR_KEY_MAX = 32, -}; +typedef void (*btf_trace_ext4_sync_file_enter)(void *, struct file *, int); -struct flow_dissector_key { - enum flow_dissector_key_id key_id; - size_t offset; -}; +typedef void (*btf_trace_ext4_sync_file_exit)(void *, struct inode *, int); -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, -}; +typedef void (*btf_trace_ext4_sync_fs)(void *, struct super_block *, int); -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, -}; +typedef void (*btf_trace_ext4_alloc_da_blocks)(void *, struct inode *); -enum bpf_ret_code { - BPF_OK = 0, - BPF_DROP = 2, - BPF_REDIRECT = 7, - BPF_LWT_REROUTE = 128, - BPF_FLOW_DISSECTOR_CONTINUE = 129, -}; +typedef void (*btf_trace_ext4_mballoc_alloc)(void *, struct ext4_allocation_context *); -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, -}; +typedef void (*btf_trace_ext4_mballoc_prealloc)(void *, struct ext4_allocation_context *); -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, -}; +typedef void (*btf_trace_ext4_mballoc_discard)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -struct _flow_keys_digest_data { - __be16 n_proto; - u8 ip_proto; - u8 padding; - __be32 ports; - __be32 src; - __be32 dst; -}; +typedef void (*btf_trace_ext4_mballoc_free)(void *, struct super_block *, struct inode *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -union tcp_word_hdr { - struct tcphdr hdr; - __be32 words[5]; -}; +typedef void (*btf_trace_ext4_forget)(void *, struct inode *, int, __u64); -struct mpls_label { - __be32 entry; -}; +typedef void (*btf_trace_ext4_da_update_reserve_space)(void *, struct inode *, int, int); -struct flow_dissector_mpls_lse { - u32 mpls_ttl: 8; - u32 mpls_bos: 1; - u32 mpls_tc: 3; - u32 mpls_label: 20; -}; +typedef void (*btf_trace_ext4_da_reserve_space)(void *, struct inode *); -struct flow_dissector_key_mpls { - struct flow_dissector_mpls_lse ls[7]; - u8 used_lses; -}; +typedef void (*btf_trace_ext4_da_release_space)(void *, struct inode *, int); -struct flow_dissector_key_ip { - __u8 tos; - __u8 ttl; -}; +typedef void (*btf_trace_ext4_mb_bitmap_load)(void *, struct super_block *, unsigned long); -struct batadv_unicast_packet { - __u8 packet_type; - __u8 version; - __u8 ttl; - __u8 ttvn; - __u8 dest[6]; -}; +typedef void (*btf_trace_ext4_mb_buddy_bitmap_load)(void *, struct super_block *, unsigned long); -struct arphdr { - __be16 ar_hrd; - __be16 ar_pro; - unsigned char ar_hln; - unsigned char ar_pln; - __be16 ar_op; -}; +typedef void (*btf_trace_ext4_load_inode_bitmap)(void *, struct super_block *, unsigned long); -struct flow_dissector_key_arp { - __u32 sip; - __u32 tip; - __u8 op; - unsigned char sha[6]; - unsigned char tha[6]; -}; +typedef void (*btf_trace_ext4_read_block_bitmap_load)(void *, struct super_block *, unsigned long, bool); -struct tipc_basic_hdr { - __be32 w[4]; -}; +typedef void (*btf_trace_ext4_fallocate_enter)(void *, struct inode *, loff_t, loff_t, int); -struct pppoe_tag { - __be16 tag_type; - __be16 tag_len; - char tag_data[0]; -}; +typedef void (*btf_trace_ext4_punch_hole)(void *, struct inode *, loff_t, loff_t, int); -struct pppoe_hdr { - __u8 type: 4; - __u8 ver: 4; - __u8 code; - __be16 sid; - __be16 length; - struct pppoe_tag tag[0]; -}; +typedef void (*btf_trace_ext4_zero_range)(void *, struct inode *, loff_t, loff_t, int); -struct flow_dissector_key_cfm { - u8 mdl_ver; - u8 opcode; -}; +typedef void (*btf_trace_ext4_fallocate_exit)(void *, struct inode *, loff_t, unsigned int, int); -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; -}; +typedef void (*btf_trace_ext4_unlink_enter)(void *, struct inode *, struct dentry *); -struct flow_dissector_key_tcp { - __be16 flags; -}; +typedef void (*btf_trace_ext4_unlink_exit)(void *, struct dentry *, int); -struct flow_dissector_key_l2tpv3 { - __be32 session_id; -}; +typedef void (*btf_trace_ext4_truncate_enter)(void *, struct inode *); -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; -}; +typedef void (*btf_trace_ext4_truncate_exit)(void *, struct inode *); -struct flow_keys_basic { - struct flow_dissector_key_control control; - struct flow_dissector_key_basic basic; -}; +typedef void (*btf_trace_ext4_ext_convert_to_initialized_enter)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *); -struct flow_dissector_key_meta { - int ingress_ifindex; - u16 ingress_iftype; - u8 l2_miss; -}; +typedef void (*btf_trace_ext4_ext_convert_to_initialized_fastpath)(void *, struct inode *, struct ext4_map_blocks *, struct ext4_extent *, struct ext4_extent *); -struct flow_dissector_key_ct { - u16 ct_state; - u16 ct_zone; - u32 ct_mark; - u32 ct_labels[4]; -}; +typedef void (*btf_trace_ext4_ext_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); -struct nf_conn_labels { - unsigned long bits[2]; -}; +typedef void (*btf_trace_ext4_ind_map_blocks_enter)(void *, struct inode *, ext4_lblk_t, unsigned int, unsigned int); -struct flow_dissector_key_enc_opts { - u8 data[255]; - u8 len; - __be16 dst_opt_type; -}; +typedef void (*btf_trace_ext4_ext_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); -struct flow_dissector_key_hash { - u32 hash; -}; +typedef void (*btf_trace_ext4_ind_map_blocks_exit)(void *, struct inode *, unsigned int, struct ext4_map_blocks *, int); -struct bpf_flow_dissector { - struct bpf_flow_keys *flow_keys; - const struct sk_buff *skb; - const void *data; - const void *data_end; -}; +typedef void (*btf_trace_ext4_ext_load_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t); -struct clock_identity { - u8 id[8]; -}; +typedef void (*btf_trace_ext4_load_inode)(void *, struct super_block *, unsigned long); -struct port_identity { - struct clock_identity clock_identity; - __be16 port_number; -}; +typedef void (*btf_trace_ext4_journal_start_sb)(void *, struct super_block *, int, int, int, int, unsigned long); -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)); +typedef void (*btf_trace_ext4_journal_start_inode)(void *, struct inode *, int, int, int, int, unsigned long); -struct hsr_tag { - __be16 path_and_LSDU_size; - __be16 sequence_nr; - __be16 encap_proto; -}; +typedef void (*btf_trace_ext4_journal_start_reserved)(void *, struct super_block *, int, unsigned long); -struct flow_dissector_key_eth_addrs { - unsigned char dst[6]; - unsigned char src[6]; -}; +typedef void (*btf_trace_ext4_trim_extent)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -struct flow_dissector_key_num_of_vlans { - u8 num_of_vlans; -}; +typedef void (*btf_trace_ext4_trim_all_free)(void *, struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t); -struct flow_dissector_key_pppoe { - __be16 session_id; - __be16 ppp_proto; - __be16 type; -}; +typedef void (*btf_trace_ext4_ext_handle_unwritten_extents)(void *, struct inode *, struct ext4_map_blocks *, int, unsigned int, ext4_fsblk_t); -struct flow_keys_digest { - u8 data[16]; -}; +typedef void (*btf_trace_ext4_get_implied_cluster_alloc_exit)(void *, struct super_block *, struct ext4_map_blocks *, int); -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, -}; +typedef void (*btf_trace_ext4_ext_show_extent)(void *, struct inode *, ext4_lblk_t, ext4_fsblk_t, unsigned short); -enum { - TCA_CGROUP_UNSPEC = 0, - TCA_CGROUP_ACT = 1, - TCA_CGROUP_POLICE = 2, - TCA_CGROUP_EMATCHES = 3, - __TCA_CGROUP_MAX = 4, -}; +struct partial_cluster; -struct tcf_ematch_tree_hdr { - __u16 nmatches; - __u16 progid; +typedef void (*btf_trace_ext4_remove_blocks)(void *, struct inode *, struct ext4_extent *, ext4_lblk_t, ext4_fsblk_t, struct partial_cluster *); + +struct partial_cluster { + ext4_fsblk_t pclu; + ext4_lblk_t lblk; + enum { + initial = 0, + tofree = 1, + nofree = 2, + } state; }; -struct tcf_ematch; +typedef void (*btf_trace_ext4_ext_rm_leaf)(void *, struct inode *, ext4_lblk_t, struct ext4_extent *, struct partial_cluster *); -struct tcf_ematch_tree { - struct tcf_ematch_tree_hdr hdr; - struct tcf_ematch *matches; -}; +typedef void (*btf_trace_ext4_ext_rm_idx)(void *, struct inode *, ext4_fsblk_t); -struct cls_cgroup_head { - u32 handle; - struct tcf_exts exts; - struct tcf_ematch_tree ematches; - struct tcf_proto *tp; - struct rcu_work rwork; -}; +typedef void (*btf_trace_ext4_ext_remove_space)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int); -struct tcf_ematch_ops; +typedef void (*btf_trace_ext4_ext_remove_space_done)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t, int, struct partial_cluster *, __le16); -struct tcf_ematch { - struct tcf_ematch_ops *ops; - unsigned long data; - unsigned int datalen; - u16 matchid; - u16 flags; - struct net *net; -}; +typedef void (*btf_trace_ext4_es_insert_extent)(void *, struct inode *, struct extent_status *); -struct tcf_pkt_info; +typedef void (*btf_trace_ext4_es_cache_extent)(void *, struct inode *, struct extent_status *); -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; -}; +typedef void (*btf_trace_ext4_es_remove_extent)(void *, struct inode *, ext4_lblk_t, ext4_lblk_t); -struct tcf_pkt_info { - unsigned char *ptr; - int nexthdr; -}; +typedef void (*btf_trace_ext4_es_find_extent_range_enter)(void *, struct inode *, ext4_lblk_t); -struct cgroup_cls_state { - struct cgroup_subsys_state css; - u32 classid; -}; +typedef void (*btf_trace_ext4_es_find_extent_range_exit)(void *, struct inode *, struct extent_status *); -struct ethnl_reply_data; +typedef void (*btf_trace_ext4_es_lookup_extent_enter)(void *, struct inode *, ext4_lblk_t); -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 *); -}; +typedef void (*btf_trace_ext4_es_lookup_extent_exit)(void *, struct inode *, struct extent_status *, int); -struct ethnl_reply_data { - struct net_device *dev; -}; +typedef void (*btf_trace_ext4_es_shrink_count)(void *, struct super_block *, int, int); -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, -}; +typedef void (*btf_trace_ext4_es_shrink_scan_enter)(void *, struct super_block *, int, int); -struct phc_vclocks_reply_data { - struct ethnl_reply_data base; - int num; - int *index; -}; +typedef void (*btf_trace_ext4_es_shrink_scan_exit)(void *, struct super_block *, int, int); -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 *); -}; +typedef void (*btf_trace_ext4_collapse_range)(void *, struct inode *, loff_t, loff_t); -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, -}; +typedef void (*btf_trace_ext4_insert_range)(void *, struct inode *, loff_t, loff_t); -struct fib_notifier_info { - int family; - struct netlink_ext_ack *extack; -}; +typedef void (*btf_trace_ext4_es_shrink)(void *, struct super_block *, int, u64, int, int); -struct fib6_result; +typedef void (*btf_trace_ext4_es_insert_delayed_block)(void *, struct inode *, struct extent_status *, bool); -struct fib6_config; +typedef void (*btf_trace_ext4_fsmap_low_key)(void *, struct super_block *, u32, u32, u64, u64, u64); -struct nl_info; +typedef void (*btf_trace_ext4_fsmap_high_key)(void *, struct super_block *, u32, u32, u64, u64, u64); -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 *); -}; +typedef void (*btf_trace_ext4_fsmap_mapping)(void *, struct super_block *, u32, u32, u64, u64, u64); -struct fib6_result { - struct fib6_nh *nh; - struct fib6_info *f6i; - u32 fib6_flags; - u8 fib6_type; - struct rt6_info *rt6; -}; +struct ext4_fsmap; -struct nl_info { - struct nlmsghdr *nlh; - struct net *nl_net; - u32 portid; - u8 skip_notify: 1; - u8 skip_notify_kernel: 1; +typedef void (*btf_trace_ext4_getfsmap_low_key)(void *, struct super_block *, struct ext4_fsmap *); + +struct ext4_fsmap { + struct list_head fmr_list; + dev_t fmr_device; + uint32_t fmr_flags; + uint64_t fmr_physical; + uint64_t fmr_owner; + uint64_t fmr_length; }; -struct svc_xprt_class; +typedef void (*btf_trace_ext4_getfsmap_high_key)(void *, struct super_block *, struct ext4_fsmap *); -struct svc_xprt_ops; +typedef void (*btf_trace_ext4_getfsmap_mapping)(void *, struct super_block *, struct ext4_fsmap *); -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; -}; +typedef void (*btf_trace_ext4_shutdown)(void *, struct super_block *, unsigned long); -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; -}; +typedef void (*btf_trace_ext4_error)(void *, struct super_block *, const char *, unsigned int); -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_ctxt)(struct svc_xprt *, void *); - void (*xpo_detach)(struct svc_xprt *); - void (*xpo_free)(struct svc_xprt *); - void (*xpo_kill_temp_xprt)(struct svc_xprt *); - void (*xpo_handshake)(struct svc_xprt *); -}; +typedef void (*btf_trace_ext4_prefetch_bitmaps)(void *, struct super_block *, ext4_group_t, ext4_group_t, unsigned int); -struct sockaddr_in { - __kernel_sa_family_t sin_family; - __be16 sin_port; - struct in_addr sin_addr; - unsigned char __pad[8]; -}; +typedef void (*btf_trace_ext4_lazy_itable_init)(void *, struct super_block *, ext4_group_t); -struct rpcb_info { - u32 rpc_vers; - const struct rpc_procinfo *rpc_proc; -}; +typedef void (*btf_trace_ext4_fc_replay_scan)(void *, struct super_block *, int, int); -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, -}; +typedef void (*btf_trace_ext4_fc_replay)(void *, struct super_block *, int, int, int, int); -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 void (*btf_trace_ext4_fc_commit_start)(void *, struct super_block *, tid_t); -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, - XPRT_TRANSPORT_TCP_TLS = 258, -}; +typedef void (*btf_trace_ext4_fc_commit_stop)(void *, struct super_block *, int, int, tid_t); -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, -}; +typedef void (*btf_trace_ext4_fc_stats)(void *, struct super_block *); -struct sockaddr_in6 { - unsigned short sin6_family; - __be16 sin6_port; - __be32 sin6_flowinfo; - struct in6_addr sin6_addr; - __u32 sin6_scope_id; -}; +typedef void (*btf_trace_ext4_fc_track_create)(void *, handle_t *, struct inode *, struct dentry *, int); -struct cache_detail; +typedef void (*btf_trace_ext4_fc_track_link)(void *, handle_t *, struct inode *, struct dentry *, int); -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; -}; +typedef void (*btf_trace_ext4_fc_track_unlink)(void *, handle_t *, struct inode *, struct dentry *, int); -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; -}; +typedef void (*btf_trace_ext4_fc_track_inode)(void *, handle_t *, struct inode *, int); -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 xprtsec_parms xprtsec; -}; +typedef void (*btf_trace_ext4_fc_track_range)(void *, handle_t *, struct inode *, long, long, int); -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; -}; +typedef void (*btf_trace_ext4_fc_cleanup)(void *, journal_t *, int, tid_t); -typedef void (*rpc_action)(struct rpc_task *); +typedef void (*btf_trace_ext4_update_sb)(void *, struct super_block *, ext4_fsblk_t, unsigned int); -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 ext4_lazy_init { + unsigned long li_state; + struct list_head li_request_list; + struct mutex li_list_mtx; }; -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 ext4_err_translation { + int code; + int errno; }; -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 mount_opts { + int token; + int mount_opt; + int flags; }; -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: 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; +enum { + ES_WRITTEN_B = 0, + ES_UNWRITTEN_B = 1, + ES_DELAYED_B = 2, + ES_HOLE_B = 3, + ES_REFERENCED_B = 4, + ES_FLAGS = 5, }; -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; +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 xdp_ring; +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 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; +enum stat_group { + STAT_READ = 0, + STAT_WRITE = 1, + STAT_DISCARD = 2, + STAT_FLUSH = 3, + NR_STAT_GROUPS = 4, }; -struct xdp_ring { - u32 producer; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 pad1; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - u32 consumer; - 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: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; - -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; +enum { + Opt_bsd_df = 0, + Opt_minix_df = 1, + Opt_grpid = 2, + Opt_nogrpid = 3, + Opt_resgid = 4, + Opt_resuid = 5, + Opt_sb = 6, + Opt_nouid32 = 7, + Opt_debug___2 = 8, + Opt_removed = 9, + Opt_user_xattr = 10, + Opt_acl = 11, + Opt_auto_da_alloc = 12, + Opt_noauto_da_alloc = 13, + Opt_noload = 14, + Opt_commit = 15, + Opt_min_batch_time = 16, + Opt_max_batch_time = 17, + Opt_journal_dev = 18, + Opt_journal_path = 19, + Opt_journal_checksum = 20, + Opt_journal_async_commit = 21, + Opt_abort = 22, + Opt_data_journal = 23, + Opt_data_ordered = 24, + Opt_data_writeback = 25, + Opt_data_err_abort = 26, + Opt_data_err_ignore = 27, + Opt_test_dummy_encryption = 28, + Opt_inlinecrypt = 29, + Opt_usrjquota = 30, + Opt_grpjquota = 31, + Opt_quota = 32, + Opt_noquota = 33, + Opt_barrier = 34, + Opt_nobarrier = 35, + Opt_err___2 = 36, + Opt_usrquota = 37, + Opt_grpquota = 38, + Opt_prjquota = 39, + Opt_dax = 40, + Opt_dax_always = 41, + Opt_dax_inode = 42, + Opt_dax_never = 43, + Opt_stripe = 44, + Opt_delalloc = 45, + Opt_nodelalloc = 46, + Opt_warn_on_error = 47, + Opt_nowarn_on_error = 48, + Opt_mblk_io_submit = 49, + Opt_debug_want_extra_isize = 50, + Opt_nomblk_io_submit = 51, + Opt_block_validity = 52, + Opt_noblock_validity = 53, + Opt_inode_readahead_blks = 54, + Opt_journal_ioprio = 55, + Opt_dioread_nolock = 56, + Opt_dioread_lock = 57, + Opt_discard___2 = 58, + Opt_nodiscard = 59, + Opt_init_itable = 60, + Opt_noinit_itable = 61, + Opt_max_dir_size_kb = 62, + Opt_nojournal_checksum = 63, + Opt_nombcache = 64, + Opt_no_prefetch_block_bitmaps = 65, + Opt_mb_optimize_scan = 66, + Opt_errors = 67, + Opt_data = 68, + Opt_data_err = 69, + Opt_jqfmt = 70, + Opt_dax_type = 71, }; -struct xdp_desc { - __u64 addr; - __u32 len; - __u32 options; +enum ext4_journal_trigger_type { + EXT4_JTR_ORPHAN_FILE = 0, + EXT4_JTR_NONE = 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 { + I_DATA_SEM_NORMAL = 0, + I_DATA_SEM_OTHER = 1, + I_DATA_SEM_QUOTA = 2, + I_DATA_SEM_EA = 3, }; enum { - XDP_DIAG_NONE = 0, - XDP_DIAG_INFO = 1, - XDP_DIAG_UID = 2, - XDP_DIAG_RX_RING = 3, - XDP_DIAG_TX_RING = 4, - XDP_DIAG_UMEM = 5, - XDP_DIAG_UMEM_FILL_RING = 6, - XDP_DIAG_UMEM_COMPLETION_RING = 7, - XDP_DIAG_MEMINFO = 8, - XDP_DIAG_STATS = 9, - __XDP_DIAG_MAX = 10, + EXT4_MF_MNTDIR_SAMPLED = 0, + EXT4_MF_FC_INELIGIBLE = 1, }; -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 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 netlink_dump_control { - int (*start)(struct netlink_callback *); - int (*dump)(struct sk_buff *, struct netlink_callback *); - int (*done)(struct netlink_callback *); - struct netlink_ext_ack *extack; - void *data; - struct module *module; - u32 min_dump_alloc; +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 xdp_diag_req { - __u8 sdiag_family; - __u8 sdiag_protocol; - __u16 pad; - __u32 xdiag_ino; - __u32 xdiag_show; - __u32 xdiag_cookie[2]; +struct trace_event_raw_ext4_request_inode { + struct trace_entry ent; + dev_t dev; + ino_t dir; + __u16 mode; + char __data[0]; }; -struct xdp_diag_msg { - __u8 xdiag_family; - __u8 xdiag_type; - __u16 pad; - __u32 xdiag_ino; - __u32 xdiag_cookie[2]; +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 xdp_diag_info { - __u32 ifindex; - __u32 queue_id; +struct trace_event_raw_ext4_evict_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int nlink; + char __data[0]; }; -struct xdp_diag_ring { - __u32 entries; +struct trace_event_raw_ext4_drop_inode { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int drop; + char __data[0]; }; -struct xdp_diag_umem { - __u64 size; - __u32 id; - __u32 num_pages; - __u32 chunk_size; - __u32 headroom; - __u32 ifindex; - __u32 queue_id; - __u32 flags; - __u32 refs; +struct trace_event_raw_ext4_nfs_commit_metadata { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; }; -struct xdp_diag_stats { - __u64 n_rx_dropped; - __u64 n_rx_invalid; - __u64 n_rx_full; - __u64 n_fill_ring_empty; - __u64 n_tx_invalid; - __u64 n_tx_ring_empty; +struct trace_event_raw_ext4_mark_inode_dirty { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long ip; + char __data[0]; }; -enum { - Root_NFS = 255, - Root_CIFS = 254, - Root_Generic = 253, - Root_RAM0 = 1048576, +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]; }; -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 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 sys_off_data; - -struct sys_off_handler { - struct notifier_block nb; - int (*sys_off_cb)(struct sys_off_data *); - void *cb_data; - enum sys_off_mode mode; - bool blocking; - void *list; +struct 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 sys_off_data { - int mode; - void *cb_data; - const char *cmd; +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]; }; -enum umh_disable_depth { - UMH_ENABLED = 0, - UMH_FREEZING = 1, - UMH_DISABLED = 2, +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]; }; -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, +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]; }; -enum { - _IRQ_DEFAULT_INIT_FLAGS = 0, - _IRQ_PER_CPU = 512, - _IRQ_LEVEL = 256, - _IRQ_NOPROBE = 1024, - _IRQ_NOREQUEST = 2048, - _IRQ_NOTHREAD = 65536, - _IRQ_NOAUTOEN = 4096, - _IRQ_MOVE_PCNTXT = 16384, - _IRQ_NO_BALANCING = 8192, - _IRQ_NESTED_THREAD = 32768, - _IRQ_PER_CPU_DEVID = 131072, - _IRQ_IS_POLLED = 262144, - _IRQ_DISABLE_UNLAZY = 524288, - _IRQ_HIDDEN = 1048576, - _IRQ_NO_DEBUG = 2097152, - _IRQF_MODIFY_MASK = 2096911, +struct 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]; }; -enum { - TASKLET_STATE_SCHED = 0, - TASKLET_STATE_RUN = 1, +struct trace_event_raw_ext4__folio_op { + struct trace_entry ent; + dev_t dev; + ino_t ino; + unsigned long index; + char __data[0]; }; -enum msi_domain_ids { - MSI_DEFAULT_DOMAIN = 0, - MSI_SECONDARY_DOMAIN = 1, - MSI_MAX_DEVICE_IRQDOMAINS = 2, +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]; }; -enum msi_desc_filter { - MSI_DESC_ALL = 0, - MSI_DESC_NOTASSOCIATED = 1, - MSI_DESC_ASSOCIATED = 2, +struct trace_event_raw_ext4_discard_blocks { + struct trace_entry ent; + dev_t dev; + __u64 blk; + __u64 count; + char __data[0]; }; -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 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]; }; -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, +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]; }; -enum { - IRQCHIP_SET_TYPE_MASKED = 1, - IRQCHIP_EOI_IF_HANDLED = 2, - IRQCHIP_MASK_ON_SUSPEND = 4, - IRQCHIP_ONOFFLINE_ENABLED = 8, - IRQCHIP_SKIP_SET_WAKE = 16, - IRQCHIP_ONESHOT_SAFE = 32, - IRQCHIP_EOI_THREADED = 64, - IRQCHIP_SUPPORTS_LEVEL_MSI = 128, - IRQCHIP_SUPPORTS_NMI = 256, - IRQCHIP_ENABLE_WAKEUP_ON_SUSPEND = 512, - IRQCHIP_AFFINITY_PRE_STARTUP = 1024, - IRQCHIP_IMMUTABLE = 2048, +struct 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 msi_domain_template { - char name[48]; - struct irq_chip chip; - struct msi_domain_ops ops; - struct msi_domain_info info; +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 msi_ctrl { - unsigned int domid; - unsigned int first; - unsigned int last; - unsigned int nirqs; +struct trace_event_raw_ext4_mb_discard_preallocations { + struct trace_entry ent; + dev_t dev; + int needed; + char __data[0]; }; -struct msi_map { - int index; - int virq; +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]; }; -enum tick_device_mode { - TICKDEV_MODE_PERIODIC = 0, - TICKDEV_MODE_ONESHOT = 1, +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]; }; -typedef s64 int64_t; - -struct tick_device { - struct clock_event_device *evtdev; - enum tick_device_mode mode; +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 ce_unbind { - struct clock_event_device *ce; - int res; +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]; }; -typedef u32 compat_old_sigset_t; - -typedef unsigned long old_sigset_t; - -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 trace_event_raw_ext4_sync_file_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + char __data[0]; }; -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 trace_event_raw_ext4_sync_fs { + struct trace_entry ent; + dev_t dev; + int wait; + char __data[0]; }; -struct sigevent { - sigval_t sigev_value; - int sigev_signo; - int sigev_notify; - union { - int _pad[12]; - int _tid; - struct { - void (*_function)(sigval_t); - void *_attribute; - } _sigev_thread; - } _sigev_un; +struct 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 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 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 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 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 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 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]; }; -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, +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]; }; -enum bpf_audit { - BPF_AUDIT_LOAD = 0, - BPF_AUDIT_UNLOAD = 1, - BPF_AUDIT_MAX = 2, +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]; }; -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, +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]; }; -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, +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]; }; -enum bpf_stats_type { - BPF_STATS_RUN_TIME = 0, +struct trace_event_raw_ext4__bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + char __data[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_tramp_link { - struct bpf_link link; - struct hlist_node tramp_hlist; - u64 cookie; +struct trace_event_raw_ext4_read_block_bitmap_load { + struct trace_entry ent; + dev_t dev; + __u32 group; + bool prefetch; + char __data[0]; }; -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 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 bpf_raw_tp_link { - struct bpf_link link; - struct bpf_raw_event_map *btp; +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 bpf_perf_link { - struct bpf_link link; - struct file *perf_file; +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 bpf_spin_lock { - __u32 val; +struct trace_event_raw_ext4_unlink_exit { + struct trace_entry ent; + dev_t dev; + ino_t ino; + int ret; + char __data[0]; }; -struct bpf_prog_kstats { - u64 nsecs; - u64 cnt; - u64 misses; +struct trace_event_raw_ext4__truncate { + struct trace_entry ent; + dev_t dev; + ino_t ino; + __u64 blocks; + char __data[0]; }; -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 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 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 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 bpf_btf_info { - __u64 btf; - __u32 btf_size; - __u32 id; - __u64 name; - __u32 name_len; - __u32 kernel_btf; +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 bpf_attach_target_info { - struct btf_func_model fmodel; - long tgt_addr; - struct module *tgt_mod; - const char *tgt_name; - const struct btf_type *tgt_type; +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 bpf_tramp_run_ctx { - struct bpf_run_ctx run_ctx; - u64 bpf_cookie; - struct bpf_run_ctx *saved_run_ctx; +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]; }; -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_event_raw_ext4_load_inode { struct trace_entry ent; - struct mm_struct *mm; - u32 __data_loc_memcg_path; - bool write; + dev_t dev; + ino_t ino; char __data[0]; }; -struct trace_event_raw_mmap_lock_acquire_returned { +struct trace_event_raw_ext4_journal_start_sb { struct trace_entry ent; - struct mm_struct *mm; - u32 __data_loc_memcg_path; - bool write; - bool success; + dev_t dev; + unsigned long ip; + int blocks; + int rsv_blocks; + int revoke_creds; + int type; char __data[0]; }; -struct trace_event_data_offsets_mmap_lock { - u32 memcg_path; +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_data_offsets_mmap_lock_acquire_returned { - u32 memcg_path; -}; +struct trace_event_raw_ext4_journal_start_reserved { + struct trace_entry ent; + dev_t dev; + unsigned long ip; + int blocks; + char __data[0]; +}; -struct node_hstate { - struct kobject *hugepages_kobj; - struct kobject *hstate_kobjs[2]; +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]; }; -enum compound_dtor_id { - NULL_COMPOUND_DTOR = 0, - COMPOUND_PAGE_DTOR = 1, - HUGETLB_PAGE_DTOR = 2, - NR_COMPOUND_DTORS = 3, +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]; }; -enum { - FOLL_TOUCH = 65536, - FOLL_TRIED = 131072, - FOLL_REMOTE = 262144, - FOLL_PIN = 524288, - FOLL_FAST_ONLY = 1048576, - FOLL_UNLOCKABLE = 2097152, +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]; }; -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, +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]; }; -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 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]; }; -enum { - MPOL_DEFAULT = 0, - MPOL_PREFERRED = 1, - MPOL_BIND = 2, - MPOL_INTERLEAVE = 3, - MPOL_LOCAL = 4, - MPOL_PREFERRED_MANY = 5, - MPOL_MAX = 6, +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]; }; -enum string_size_units { - STRING_UNITS_10 = 0, - STRING_UNITS_2 = 1, +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 hugetlb_vma_lock { - struct kref refs; - struct rw_semaphore rw_sema; - struct vm_area_struct *vma; +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 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 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 file_region { - struct list_head link; - long from; - long to; - struct page_counter *reservation_counter; - struct cgroup_subsys_state *css; +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]; }; -typedef unsigned int zap_flags_t; +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 huge_bootmem_page { - struct list_head list; - struct hstate *hstate; +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 hugetlb_cgroup_per_node; +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 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 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 hugetlb_cgroup_per_node { - unsigned long usage[2]; +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]; }; -typedef struct { - unsigned long val; -} swp_entry_t; +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 node { - struct device dev; - struct list_head access_list; +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 tree_descr { - const char *name; - const struct file_operations *ops; - int mode; +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]; }; -enum { - Enabled = 0, - Magic = 1, +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]; }; -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; +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 kernel_stat { - unsigned long irqs_sum; - unsigned int softirqs[10]; +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]; }; -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, -} __attribute__((mode(byte))); +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]; +}; -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, -} __attribute__((mode(byte))); +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]; +}; -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, -} __attribute__((mode(byte))); +struct trace_event_raw_ext4_shutdown { + struct trace_entry ent; + dev_t dev; + unsigned int flags; + char __data[0]; +}; -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, -} __attribute__((mode(byte))); +struct trace_event_raw_ext4_error { + struct trace_entry ent; + dev_t dev; + const char *function; + unsigned int line; + char __data[0]; +}; -struct ext4_orphan_block_tail { - __le32 ob_magic; - __le32 ob_checksum; +struct trace_event_raw_ext4_prefetch_bitmaps { + struct trace_entry ent; + dev_t dev; + __u32 group; + __u32 next; + __u32 ios; + char __data[0]; }; -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; +struct trace_event_raw_ext4_lazy_itable_init { + struct trace_entry ent; + dev_t dev; + __u32 group; + char __data[0]; }; -struct pnfs_layout_range { - u32 iomode; - u64 offset; - u64 length; +struct trace_event_raw_ext4_fc_replay_scan { + struct trace_entry ent; + dev_t dev; + int error; + int off; + char __data[0]; }; -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 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 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 trace_event_raw_ext4_fc_commit_start { + struct trace_entry ent; + dev_t dev; + tid_t tid; + char __data[0]; }; -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, +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 nfs_find_desc { - struct nfs_fh *fh; - struct nfs_fattr *fattr; +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 nlm_wait { - struct list_head b_list; - wait_queue_head_t b_wait; - struct nlm_host *b_host; - struct file_lock *b_lock; - __be32 b_status; +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 nlm_block; +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 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 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 nlm_file; +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 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 trace_event_raw_ext4_update_sb { + struct trace_entry ent; + dev_t dev; + ext4_fsblk_t fsblk; + unsigned int flags; + char __data[0]; }; -struct nlm_share; +struct ext4_journal_cb_entry { + struct list_head jce_list; + void (*jce_func)(struct super_block *, struct ext4_journal_cb_entry *, int); +}; -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 fs_error_report { + int error; + struct inode *inode; + struct super_block *sb; }; -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 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; }; -typedef unsigned short __kernel_old_uid_t; +struct ext4_fs_context { + char *s_qf_names[3]; + struct fscrypt_dummy_policy dummy_enc_policy; + int s_jquota_fmt; + unsigned short qname_spec; + unsigned long vals_s_flags; + unsigned long mask_s_flags; + unsigned long journal_devnum; + unsigned long s_commit_interval; + unsigned long s_stripe; + unsigned int s_inode_readahead_blks; + unsigned int s_want_extra_isize; + unsigned int s_li_wait_mult; + unsigned int s_max_dir_size_kb; + unsigned int journal_ioprio; + unsigned int vals_s_mount_opt; + unsigned int mask_s_mount_opt; + unsigned int vals_s_mount_opt2; + unsigned int mask_s_mount_opt2; + unsigned int opt_flags; + unsigned int spec; + u32 s_max_batch_time; + u32 s_min_batch_time; + kuid_t s_resuid; + kgid_t s_resgid; + ext4_fsblk_t s_sb_block; +}; -typedef __kernel_old_uid_t old_uid_t; +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]; +}; -typedef unsigned short __kernel_old_gid_t; +typedef int (*writepage_t)(struct folio *, struct writeback_control *, void *); -typedef __kernel_old_gid_t old_gid_t; +struct trace_event_data_offsets_ext4_other_inode_update_time {}; -typedef s32 compat_key_t; +struct trace_event_data_offsets_ext4_free_inode {}; -typedef u32 __compat_gid32_t; +struct trace_event_data_offsets_ext4_request_inode {}; -typedef u16 compat_mode_t; +struct trace_event_data_offsets_ext4_allocate_inode {}; -typedef u16 compat_ushort_t; +struct trace_event_data_offsets_ext4_evict_inode {}; -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; -}; +struct trace_event_data_offsets_ext4_drop_inode {}; -typedef unsigned int __kernel_mode_t; +struct trace_event_data_offsets_ext4_nfs_commit_metadata {}; -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 trace_event_data_offsets_ext4_mark_inode_dirty {}; -typedef u16 __compat_uid_t; +struct trace_event_data_offsets_ext4_begin_ordered_truncate {}; -typedef u16 __compat_gid_t; +struct trace_event_data_offsets_ext4__write_begin {}; -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; -}; +struct trace_event_data_offsets_ext4__write_end {}; -struct __una_u32 { - u32 x; -}; +struct trace_event_data_offsets_ext4_writepages {}; -struct ipc_params; +struct trace_event_data_offsets_ext4_da_write_pages {}; -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 trace_event_data_offsets_ext4_da_write_pages_extent {}; -struct ipc_params { - key_t key; - int flg; - union { - size_t size; - int nsems; - } u; -}; +struct trace_event_data_offsets_ext4_writepages_result {}; -struct ipc_proc_iface { - const char *path; - const char *header; - int ids; - int (*show)(struct seq_file *, void *); -}; +struct trace_event_data_offsets_ext4__folio_op {}; -typedef unsigned int __kernel_uid_t; +struct trace_event_data_offsets_ext4_invalidate_folio_op {}; -typedef unsigned int __kernel_gid_t; +struct trace_event_data_offsets_ext4_discard_blocks {}; -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 trace_event_data_offsets_ext4__mb_new_pa {}; -struct ipc_proc_iter { - struct ipc_namespace *ns; - struct pid_namespace *pid_ns; - struct ipc_proc_iface *iface; -}; +struct trace_event_data_offsets_ext4_mb_release_inode_pa {}; -struct aead_geniv_ctx { - spinlock_t lock; - struct crypto_aead *child; - struct crypto_sync_skcipher *sknull; - u8 salt[0]; -}; +struct trace_event_data_offsets_ext4_mb_release_group_pa {}; -struct rtattr { - unsigned short rta_len; - unsigned short rta_type; -}; +struct trace_event_data_offsets_ext4_discard_preallocations {}; -struct authenc_esn_instance_ctx { - struct crypto_ahash_spawn auth; - struct crypto_skcipher_spawn enc; -}; +struct trace_event_data_offsets_ext4_mb_discard_preallocations {}; -struct crypto_authenc_keys { - const u8 *authkey; - const u8 *enckey; - unsigned int authkeylen; - unsigned int enckeylen; -}; +struct trace_event_data_offsets_ext4_request_blocks {}; -struct crypto_authenc_esn_ctx { - unsigned int reqoff; - struct crypto_ahash *auth; - struct crypto_skcipher *enc; - struct crypto_sync_skcipher *null; -}; +struct trace_event_data_offsets_ext4_allocate_blocks {}; -struct authenc_esn_request_ctx { - struct scatterlist src[2]; - struct scatterlist dst[2]; - char tail[0]; -}; +struct trace_event_data_offsets_ext4_free_blocks {}; -struct io_rename { - struct file *file; - int old_dfd; - int new_dfd; - struct filename *oldpath; - struct filename *newpath; - int flags; -}; +struct trace_event_data_offsets_ext4_sync_file_enter {}; -struct io_unlink { - struct file *file; - int dfd; - int flags; - struct filename *filename; -}; +struct trace_event_data_offsets_ext4_sync_file_exit {}; -struct io_mkdir { - struct file *file; - int dfd; - umode_t mode; - struct filename *filename; -}; +struct trace_event_data_offsets_ext4_sync_fs {}; -struct io_link { - struct file *file; - int old_dfd; - int new_dfd; - struct filename *oldpath; - struct filename *newpath; - int flags; -}; +struct trace_event_data_offsets_ext4_alloc_da_blocks {}; -typedef unsigned long mpi_limb_t; +struct trace_event_data_offsets_ext4_mballoc_alloc {}; -typedef mpi_limb_t UWtype; +struct trace_event_data_offsets_ext4_mballoc_prealloc {}; -typedef mpi_limb_t *mpi_ptr_t; +struct trace_event_data_offsets_ext4__mballoc {}; -typedef int mpi_size_t; +struct trace_event_data_offsets_ext4_forget {}; -typedef unsigned int UHWtype; +struct trace_event_data_offsets_ext4_da_update_reserve_space {}; -struct gcry_mpi; +struct trace_event_data_offsets_ext4_da_reserve_space {}; -typedef struct gcry_mpi *MPI; +struct trace_event_data_offsets_ext4_da_release_space {}; -struct gcry_mpi { - int alloced; - int nlimbs; - int nbits; - int sign; - unsigned int flags; - mpi_limb_t *d; -}; +struct trace_event_data_offsets_ext4__bitmap_load {}; -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, -}; +struct trace_event_data_offsets_ext4_read_block_bitmap_load {}; -struct sbq_wait { - struct sbitmap_queue *sbq; - struct wait_queue_entry wait; -}; +struct trace_event_data_offsets_ext4__fallocate_mode {}; -enum smbios_attr_enum { - SMBIOS_ATTR_NONE = 0, - SMBIOS_ATTR_LABEL_SHOW = 1, - SMBIOS_ATTR_INSTANCE_SHOW = 2, -}; +struct trace_event_data_offsets_ext4_fallocate_exit {}; -enum acpi_attr_enum { - ACPI_ATTR_LABEL_SHOW = 0, - ACPI_ATTR_INDEX_SHOW = 1, -}; +struct trace_event_data_offsets_ext4_unlink_enter {}; -typedef struct { - __u8 b[16]; -} guid_t; +struct trace_event_data_offsets_ext4_unlink_exit {}; -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 trace_event_data_offsets_ext4__truncate {}; -struct acpi_fadt_info { - const char *name; - u16 address64; - u16 address32; - u16 length; - u8 default_length; - u8 flags; -}; +struct trace_event_data_offsets_ext4_ext_convert_to_initialized_enter {}; -struct acpi_fadt_pm_info { - struct acpi_generic_address *target; - u16 source; - u8 register_num; -}; +struct trace_event_data_offsets_ext4_ext_convert_to_initialized_fastpath {}; -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 trace_event_data_offsets_ext4__map_blocks_enter {}; -struct acpi_table_cdat { - u32 length; - u8 revision; - u8 checksum; - u8 reserved[6]; - u32 sequence; -}; +struct trace_event_data_offsets_ext4__map_blocks_exit {}; -enum { - ERASE = 0, - WERASE = 1, - KILL = 2, -}; +struct trace_event_data_offsets_ext4_ext_load_extent {}; -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 trace_event_data_offsets_ext4_load_inode {}; -struct memdev { - const char *name; - umode_t mode; - const struct file_operations *fops; - fmode_t fmode; -}; +struct trace_event_data_offsets_ext4_journal_start_sb {}; -struct splice_desc; +struct trace_event_data_offsets_ext4_journal_start_inode {}; -typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); +struct trace_event_data_offsets_ext4_journal_start_reserved {}; -struct splice_desc { - size_t total_len; - unsigned int len; - unsigned int flags; - union { - void __attribute__((btf_type_tag("user"))) *userptr; - struct file *file; - void *data; - } u; - void (*splice_eof)(struct splice_desc *); - loff_t pos; - loff_t *opos; - size_t num_spliced; - bool need_wakeup; -}; +struct trace_event_data_offsets_ext4__trim {}; -struct drm_debugfs_info { - const char *name; - int (*show)(struct seq_file *, void *); - u32 driver_features; - void *data; -}; +struct trace_event_data_offsets_ext4_ext_handle_unwritten_extents {}; -enum { - TASK_COMM_LEN = 16, -}; +struct trace_event_data_offsets_ext4_get_implied_cluster_alloc_exit {}; -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 trace_event_data_offsets_ext4_ext_show_extent {}; -struct drm_mode_fb_cmd { - __u32 fb_id; - __u32 width; - __u32 height; - __u32 pitch; - __u32 bpp; - __u32 depth; - __u32 handle; -}; +struct trace_event_data_offsets_ext4_remove_blocks {}; -struct drm_debugfs_entry { - struct drm_device *dev; - struct drm_debugfs_info file; - struct list_head list; -}; +struct trace_event_data_offsets_ext4_ext_rm_leaf {}; -struct drm_info_list; +struct trace_event_data_offsets_ext4_ext_rm_idx {}; -struct drm_info_node { - struct drm_minor *minor; - const struct drm_info_list *info_ent; - struct list_head list; - struct dentry *dent; -}; +struct trace_event_data_offsets_ext4_ext_remove_space {}; -struct drm_info_list { - const char *name; - int (*show)(struct seq_file *, void *); - u32 driver_features; - void *data; -}; +struct trace_event_data_offsets_ext4_ext_remove_space_done {}; -struct drm_i915_file_private { - struct drm_i915_private *i915; - 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 *client; -}; +struct trace_event_data_offsets_ext4__es_extent {}; -typedef void (*drmres_release_t)(struct drm_device *, void *); +struct trace_event_data_offsets_ext4_es_remove_extent {}; -struct icl_procmon { - const char *name; - u32 dw1; - u32 dw9; - u32 dw10; -}; +struct trace_event_data_offsets_ext4_es_find_extent_range_enter {}; -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 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 nlm_lockowner { + struct list_head list; + refcount_t count; + struct nlm_host *host; + fl_owner_t owner; + uint32_t pid; }; -struct intel_hdmi_lpe_audio_port_pdata { - u8 eld[128]; - int port; - int pipe; - int ls_clock; - bool dp_output; +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 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 nsm_private { + unsigned char data[16]; }; -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, +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 intel_dsi_host; +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 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; +struct nlm_cookie { + unsigned char data[32]; + unsigned int len; }; -struct intel_dsi_host { - struct mipi_dsi_host base; - struct intel_dsi *intel_dsi; - enum port port; - struct mipi_dsi_device *device; +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 _balloon_info_ { - struct drm_mm_node space[4]; +struct nlm_res { + struct nlm_cookie cookie; + __be32 status; + struct nlm_lock lock; }; -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 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 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 void (*btf_trace_nlmclnt_test)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); + +typedef void (*btf_trace_nlmclnt_lock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); + +typedef void (*btf_trace_nlmclnt_unlock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); + +typedef void (*btf_trace_nlmclnt_grant)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); + +struct trace_event_raw_nlmclnt_lock_event { + struct trace_entry ent; + u32 oh; + u32 svid; + u32 fh; + unsigned long status; + u64 start; + u64 len; + u32 __data_loc_addr; + char __data[0]; }; -struct pr_keys { - u32 generation; - u32 num_keys; - u64 keys[0]; +struct trace_event_data_offsets_nlmclnt_lock_event { + u32 addr; }; -struct pr_held_reservation { - u64 key; - u32 generation; - enum pr_type type; +enum p9_cache_bits { + CACHE_NONE = 0, + CACHE_FILE = 1, + CACHE_META = 2, + CACHE_WRITEBACK = 4, + CACHE_LOOSE = 8, + CACHE_FSCACHE = 128, }; -enum { - GENHD_FL_REMOVABLE = 1, - GENHD_FL_HIDDEN = 2, - GENHD_FL_NO_PART = 4, +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, }; -enum { - DISK_EVENT_MEDIA_CHANGE = 1, - DISK_EVENT_EJECT_REQUEST = 2, +enum p9_qid_t { + P9_QTDIR = 128, + P9_QTAPPEND = 64, + P9_QTEXCL = 32, + P9_QTMOUNT = 16, + P9_QTAUTH = 8, + P9_QTTMP = 4, + P9_QTSYMLINK = 2, + P9_QTLINK = 1, + P9_QTFILE = 0, }; -enum { - DISK_EVENT_FLAG_POLL = 1, - DISK_EVENT_FLAG_UEVENT = 2, - DISK_EVENT_FLAG_BLOCK_ON_EXCL_WRITE = 4, +struct v9fs_inode { + struct netfs_inode netfs; + struct p9_qid qid; + unsigned int cache_validity; + struct mutex v_mutex; }; -enum scsi_pr_type { - SCSI_PR_WRITE_EXCLUSIVE = 1, - SCSI_PR_EXCLUSIVE_ACCESS = 3, - SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5, - SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6, - SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7, - SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8, +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; }; -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 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 { - SD_DEF_XFER_BLOCKS = 65535, - SD_MAX_XFER_BLOCKS = 4294967295, - SD_MAX_WS10_BLOCKS = 65535, - SD_MAX_WS16_BLOCKS = 8388607, +struct key_user { + struct rb_node node; + struct mutex cons_lock; + spinlock_t lock; + refcount_t usage; + atomic_t nkeys; + atomic_t nikeys; + kuid_t uid; + int qnkeys; + int qnbytes; }; +struct __key_reference_with_attributes; + +typedef struct __key_reference_with_attributes *key_ref_t; + 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, + Opt_err___3 = 0, + Opt_enc = 1, + Opt_hash = 2, }; -enum t10_dif_type { - T10_PI_TYPE0_PROTECTION = 0, - T10_PI_TYPE1_PROTECTION = 1, - T10_PI_TYPE2_PROTECTION = 2, - T10_PI_TYPE3_PROTECTION = 3, +struct keyctl_pkey_params { + __s32 key_id; + __u32 in_len; + union { + __u32 out_len; + __u32 in2_len; + }; + __u32 __spare[7]; }; -enum { - SD_ZERO_WRITE = 0, - SD_ZERO_WS = 1, - SD_ZERO_WS16_UNMAP = 2, - SD_ZERO_WS10_UNMAP = 3, +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]; }; enum { - BLK_MQ_REQ_NOWAIT = 1, - BLK_MQ_REQ_RESERVED = 2, - BLK_MQ_REQ_PM = 4, + SELNL_MSG_SETENFORCE = 16, + SELNL_MSG_POLICYLOAD = 17, + SELNL_MSG_MAX = 18, }; -enum bip_flags { - BIP_BLOCK_INTEGRITY = 1, - BIP_MAPPED_INTEGRITY = 2, - BIP_CTRL_NOCHECK = 4, - BIP_DISK_NOCHECK = 8, - BIP_IP_CHECKSUM = 16, +enum selinux_nlgroups { + SELNLGRP_NONE = 0, + SELNLGRP_AVC = 1, + __SELNLGRP_MAX = 2, }; -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, +struct selnl_msg_setenforce { + __s32 val; }; -enum { - SD_EXT_CDB_SIZE = 32, - SD_MEMPOOL_SIZE = 2, +struct selnl_msg_policyload { + __u32 seqno; }; -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, +struct md5_state { + u32 hash[4]; + u32 block[16]; + u64 byte_count; }; -struct scsi_exec_args { - unsigned char *sense; - unsigned int sense_len; - struct scsi_sense_hdr *sshdr; - blk_mq_req_flags_t req_flags; - int scmd_flags; - int *resid; +struct asymmetric_key_subtype { + struct module *owner; + const char *name; + unsigned short name_len; + void (*describe)(const struct key *, struct seq_file *); + void (*destroy)(void *, void *); + int (*query)(const struct kernel_pkey_params *, struct kernel_pkey_query *); + int (*eds_op)(struct kernel_pkey_params *, const void *, void *); + int (*verify_signature)(const struct key *, const struct public_key_signature *); }; -struct scsi_mode_data { - __u32 length; - __u16 block_descriptor_length; - __u8 medium_type; - __u8 device_specific; - __u8 header_length; - __u8 longlba: 1; +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 e1000_stats { - char stat_string[32]; - int type; - int sizeof_stat; - int stat_offset; +struct badblocks_context { + sector_t start; + sector_t len; + int ack; }; -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, +struct rq_wait; + +typedef bool acquire_inflight_cb_t(struct rq_wait *, void *); + +struct rq_qos_wait_data { + struct wait_queue_entry wq; + struct task_struct *task; + struct rq_wait *rqw; + acquire_inflight_cb_t *cb; + void *private_data; + bool got_token; }; -enum e1000_state_t { - __E1000_TESTING = 0, - __E1000_RESETTING = 1, - __E1000_DOWN = 2, - __E1000_DISABLED = 3, +struct rq_wait { + wait_queue_head_t wait; + atomic_t inflight; }; -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, +struct rq_depth { + unsigned int max_depth; + int scale_step; + bool scaled_max; + unsigned int queue_depth; + unsigned int default_depth; }; -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, +typedef void cleanup_cb_t(struct rq_wait *, void *); + +struct blk_mq_ctxs { + struct kobject kobj; + struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx; }; enum { - NETDEV_STATS = 0, - E1000_STATS = 1, + IOU_POLL_DONE = 0, + IOU_POLL_NO_ACTION = 1, + IOU_POLL_REMOVE_POLL_USE_RES = 2, + IOU_POLL_REISSUE = 3, }; -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 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 e1000_rx_desc { - __le64 buffer_addr; - __le16 length; - __le16 csum; - u8 status; - u8 errors; - __le16 special; +struct io_poll_table { + struct poll_table_struct pt; + struct io_kiocb *req; + int nr_entries; + int error; + bool owning; + __poll_t result_mask; }; -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 = 0, - e1000_phy_igp = 1, - e1000_phy_8211 = 2, - e1000_phy_8201 = 3, - e1000_phy_undefined = 255, -} e1000_phy_type; +struct io_cancel_data { + struct io_ring_ctx *ctx; + union { + u64 data; + struct file *file; + }; + u8 opcode; + u32 flags; + int seq; +}; -typedef enum { - e1000_media_type_copper = 0, - e1000_media_type_fiber = 1, - e1000_media_type_internal_serdes = 2, - e1000_num_media_types = 3, -} e1000_media_type; +struct z_stream_s; -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 struct z_stream_s z_stream; -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 z_stream *z_streamp; -typedef enum { - e1000_bus_width_unknown = 0, - e1000_bus_width_32 = 1, - e1000_bus_width_64 = 2, - e1000_bus_width_reserved = 3, -} e1000_bus_width; +typedef unsigned char Byte; -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 unsigned long uLong; -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 internal_state; -struct e1000_eeprom_info { - e1000_eeprom_type type; - u16 word_size; - u16 opcode_bits; - u16 address_bits; - u16 delay_usec; - u16 page_size; +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 { - e1000_ms_hw_default = 0, - e1000_ms_force_master = 1, - e1000_ms_force_slave = 2, - e1000_ms_auto = 3, -} e1000_ms_type; +typedef uintptr_t uptrval; typedef enum { - e1000_ffe_config_enabled = 0, - e1000_ffe_config_active = 1, - e1000_ffe_config_blocked = 2, -} e1000_ffe_config; - -struct e1000_host_mng_dhcp_cookie { - u32 signature; - u8 status; - u8 reserved0; - u16 vlan_id; - u32 reserved1; - u16 reserved2; - u8 reserved3; - u8 checksum; -}; + endOnOutputSize = 0, + endOnInputSize = 1, +} endCondition_directive; typedef enum { - e1000_smart_speed_default = 0, - e1000_smart_speed_on = 1, - e1000_smart_speed_off = 2, -} e1000_smart_speed; + decode_full_block = 0, + partial_decode = 1, +} earlyEnd_directive; 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; + noDict = 0, + withPrefix64k = 1, + usingExtDict = 2, +} dict_directive; -struct e1000_shadow_ram; +typedef struct { + const uint8_t *externalDict; + size_t extDictSize; + const uint8_t *prefixEnd; + size_t prefixSize; +} LZ4_streamDecode_t_internal; -struct e1000_hw { - 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 *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; -}; +typedef union { + unsigned long long table[4]; + LZ4_streamDecode_t_internal internal_donotuse; +} LZ4_streamDecode_t; -struct e1000_shadow_ram { - u16 eeprom_word; - bool modified; -}; +typedef unsigned int FSE_DTable; -struct e1000_hw_stats { - 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 struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; -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 struct { + unsigned short newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; -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 s16 int16_t; -typedef enum { - e1000_rev_polarity_normal = 0, - e1000_rev_polarity_reversed = 1, - e1000_rev_polarity_undefined = 255, -} e1000_rev_polarity; +typedef int16_t S16; -typedef enum { - e1000_downshift_normal = 0, - e1000_downshift_activated = 1, - e1000_downshift_undefined = 255, -} e1000_downshift; +typedef struct { + short ncount[256]; + FSE_DTable dtable[0]; +} FSE_DecompressWksp; -typedef enum { - e1000_polarity_reversal_enabled = 0, - e1000_polarity_reversal_disabled = 1, - e1000_polarity_reversal_undefined = 255, -} e1000_polarity_reversal; +typedef struct { + size_t bitContainer; + unsigned int bitsConsumed; + const char *ptr; + const char *start; + const char *limitPtr; +} BIT_DStream_t; -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 struct { + size_t state; + const void *table; +} FSE_DState_t; typedef enum { - e1000_1000t_rx_status_not_ok = 0, - e1000_1000t_rx_status_ok = 1, - e1000_1000t_rx_status_undefined = 255, -} e1000_1000t_rx_status; + BIT_DStream_unfinished = 0, + BIT_DStream_endOfBuffer = 1, + BIT_DStream_completed = 2, + BIT_DStream_overflow = 3, +} BIT_DStream_status; -struct e1000_phy_info { - 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 word_at_a_time { + const unsigned long one_bits; + const unsigned long high_bits; }; -struct e1000_phy_stats { - u32 idle_errors; - u32 receive_errors; +struct font_desc { + int idx; + const char *name; + unsigned int width; + unsigned int height; + unsigned int charcount; + const void *data; + int pref; }; -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 font_data { + unsigned int extra[4]; + const unsigned char data[0]; }; -struct e1000_rx_buffer; +typedef u16 ucs2_char_t; -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; +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, }; -struct e1000_adapter { - 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 *, struct e1000_rx_ring *, int *, int); - void (*alloc_rx_buf)(struct e1000_adapter *, 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_bus_resource { + struct list_head list; + struct resource *res; + unsigned int flags; +}; + +struct pcie_link_state { struct pci_dev *pdev; - struct e1000_hw hw; - struct e1000_hw_stats stats; - struct e1000_phy_info 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 pci_dev *downstream; + struct pcie_link_state *root; + struct pcie_link_state *parent; + struct list_head sibling; + u32 aspm_support: 7; + u32 aspm_enabled: 7; + u32 aspm_capable: 7; + u32 aspm_default: 7; + int: 4; + u32 aspm_disable: 7; + u32 clkpm_capable: 1; + u32 clkpm_enabled: 1; + u32 clkpm_default: 1; + u32 clkpm_disable: 1; }; -struct 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 irq_override_cmp { + const struct dmi_system_id *system; + unsigned char irq; + unsigned char triggering; + unsigned char polarity; + unsigned char shareable; + bool override; }; -struct e1000_rx_buffer { - union { - struct page *page; - u8 *data; - } rxbuf; - dma_addr_t dma; +struct res_proc_context { + struct list_head *list; + int (*preproc)(struct acpi_resource *, void *); + void *preproc_data; + int count; + int error; }; -struct quirk_entry { - u16 vid; - u16 pid; - u32 flags; +typedef u32 acpi_mutex_handle; + +struct acpi_port_info { + char *name; + u16 start; + u16 end; + u8 osi_dependency; }; -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 acpi_predefined_names { + const char *name; + u8 type; + char *val; }; -struct rtc_device; +typedef u32 acpi_name; -struct rtc_timer { - struct timerqueue_node node; - ktime_t period; - void (*func)(struct rtc_device *); - struct rtc_device *rtc; - int enabled; +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; }; -typedef __u64 timeu64_t; - -struct rtc_class_ops; +struct acpi_generic_address { + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_width; + u64 address; +} __attribute__((packed)); -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 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 rtc_wkalrm; +struct dw_dma_chan; -struct rtc_param; +struct dw_dma_platform_data; -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 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 rtc_wkalrm { - unsigned char enabled; - unsigned char pending; - struct rtc_time time; +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 rtc_param { - __u64 param; - union { - __u64 uvalue; - __s64 svalue; - __u64 ptr; - }; - __u32 index; - __u32 __pad; +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 dm_kcopyd_throttle { - unsigned int throttle; - unsigned int num_io_jobs; - unsigned int io_period; - unsigned int total_period; - unsigned int last_jiffies; +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; }; -enum dm_io_mem_type { - DM_IO_PAGE_LIST = 0, - DM_IO_BIO = 1, - DM_IO_VMA = 2, - DM_IO_KMEM = 3, +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; }; -enum dm_raid1_error { - DM_RAID1_WRITE_ERROR = 0, - DM_RAID1_FLUSH_ERROR = 1, - DM_RAID1_SYNC_ERROR = 2, - DM_RAID1_READ_ERROR = 3, +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; }; -enum dm_rh_region_states { - DM_RH_CLEAN = 1, - DM_RH_DIRTY = 2, - DM_RH_NOSYNC = 4, - DM_RH_RECOVERING = 8, +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; }; -typedef sector_t region_t; +struct intel_gtt_driver; -struct mirror_set; +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 mirror { - struct mirror_set *ms; - atomic_t error_count; - unsigned long error_type; - struct dm_dev *dev; - sector_t offset; +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 dm_region_hash; +struct intel_gtt_driver_description { + unsigned int gmch_chip_id; + char *name; + const struct intel_gtt_driver *gtt_driver; +}; -struct dm_kcopyd_client; +struct aper_size_info_fixed { + int size; + int num_entries; + int page_order; +}; -struct dm_io_client; +typedef int drm_ioctl_compat_t(struct file *, unsigned int, unsigned long); -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]; +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, }; -struct dm_dirty_log_type; - -struct dm_dirty_log { - struct dm_dirty_log_type *type; - int (*flush_callback_fn)(struct dm_target *); - void *context; +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 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 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; }; -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; +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 dm_io_region { - struct block_device *bdev; - sector_t sector; - sector_t count; +struct drm_unique32 { + u32 unique_len; + u32 unique; }; -struct page_list; +typedef struct drm_unique32 drm_unique32_t; -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; +struct drm_unique { + __kernel_size_t unique_len; + char __attribute__((btf_type_tag("user"))) *unique; }; -typedef void (*io_notify_fn)(unsigned long, void *); - -struct dm_io_notify { - io_notify_fn fn; - void *context; +struct drm_client32 { + int idx; + int auth; + u32 pid; + u32 uid; + u32 magic; + u32 iocs; }; -struct dm_io_request { - blk_opf_t bi_opf; - struct dm_io_memory mem; - struct dm_io_notify notify; - struct dm_io_client *client; +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 page_list { - struct page_list *next; - struct page *page; +struct drm_stats32 { + u32 count; + struct { + u32 value; + enum drm_stat_type type; + } data[15]; }; -typedef void (*dm_kcopyd_notify_fn)(int, unsigned long, void *); +typedef struct drm_stats32 drm_stats32_t; -struct dm_raid1_bio_record { - struct mirror *m; - struct dm_bio_details details; - region_t write_region; +struct drm_wait_vblank_request32 { + enum drm_vblank_seq_type type; + unsigned int sequence; + u32 signal; }; -struct dev_type { - u16 idVendor; - u16 idProduct; - const short *ff; +struct drm_wait_vblank_reply32 { + enum drm_vblank_seq_type type; + unsigned int sequence; + s32 tval_sec; + s32 tval_usec; }; -struct snd_info_private_data { - struct snd_info_buffer *rbuffer; - struct snd_info_buffer *wbuffer; - struct snd_info_entry *entry; - void *file_private_data; +union drm_wait_vblank32 { + struct drm_wait_vblank_request32 request; + struct drm_wait_vblank_reply32 reply; }; -struct azx; +typedef union drm_wait_vblank32 drm_wait_vblank32_t; -typedef void (*btf_trace_azx_suspend)(void *, struct azx *); +struct drm_wait_vblank_request { + enum drm_vblank_seq_type type; + unsigned int sequence; + unsigned long signal; +}; -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; +struct drm_wait_vblank_reply { + enum drm_vblank_seq_type type; + unsigned int sequence; + long tval_sec; + long tval_usec; }; -struct azx_dev; +union drm_wait_vblank { + struct drm_wait_vblank_request request; + struct drm_wait_vblank_reply reply; +}; -typedef unsigned int (*azx_get_pos_callback_t)(struct azx *, struct azx_dev *); +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)); -typedef int (*azx_get_delay_callback_t)(struct azx *, struct azx_dev *, unsigned int); +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]; +}; -struct hda_controller_ops; +struct rc_parameters_data { + u8 bpp; + u8 bpc; + struct rc_parameters params; +}; -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; +enum drm_dsc_params_type { + DRM_DSC_1_2_444 = 0, + DRM_DSC_1_1_PRE_SCR = 1, + DRM_DSC_1_2_422 = 2, + DRM_DSC_1_2_420 = 3, }; -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 dp_sdp_header { + u8 HB0; + u8 HB1; + u8 HB2; + u8 HB3; }; -struct snd_compr_stream; +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 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 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 azx_dev { - struct hdac_stream core; - unsigned int irq_pending: 1; - unsigned int insufficient: 1; +struct hdr_output_metadata { + __u32 metadata_type; + union { + struct hdr_metadata_infoframe hdmi_metadata_type1; + }; }; -typedef void (*btf_trace_azx_resume)(void *, struct azx *); +struct ttm_placement { + unsigned int num_placement; + const struct ttm_place *placement; + unsigned int num_busy_placement; + const struct ttm_place *busy_placement; +}; -typedef void (*btf_trace_azx_runtime_suspend)(void *, struct azx *); +struct ttm_range_mgr_node { + struct ttm_resource base; + struct drm_mm_node mm_nodes[0]; +}; -typedef void (*btf_trace_azx_runtime_resume)(void *, struct azx *); +enum { + PERF_GROUP_OAG = 0, + PERF_GROUP_OAM_SAMEDIA_0 = 0, + PERF_GROUP_MAX = 1, + PERF_GROUP_INVALID = 4294967295, +}; -struct snd_device; +struct i915_gem_apply_to_region_ops; -struct snd_device_ops { - int (*dev_free)(struct snd_device *); - int (*dev_register)(struct snd_device *); - int (*dev_disconnect)(struct snd_device *); +struct i915_gem_apply_to_region { + const struct i915_gem_apply_to_region_ops *ops; + struct i915_gem_ww_ctx *ww; + u32 interruptible: 1; }; -enum snd_device_state { - SNDRV_DEV_BUILD = 0, - SNDRV_DEV_REGISTERED = 1, - SNDRV_DEV_DISCONNECTED = 2, +struct i915_gem_apply_to_region_ops { + int (*process_obj)(struct i915_gem_apply_to_region *, struct drm_i915_gem_object *); }; -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, +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_TLB_INVALIDATION = 28672, + INTEL_GUC_ACTION_TLB_INVALIDATION_DONE = 28673, + 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 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; +enum { + GUC_CAPTURE_LIST_INDEX_PF = 0, + GUC_CAPTURE_LIST_INDEX_VF = 1, + GUC_CAPTURE_LIST_INDEX_MAX = 2, }; -struct snd_pci_quirk { - unsigned short subvendor; - unsigned short subdevice; - unsigned short subdevice_mask; - int value; +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 { - 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, + GUC_CAPTURE_LIST_CLASS_RENDER_COMPUTE = 0, + GUC_CAPTURE_LIST_CLASS_VIDEO = 1, + GUC_CAPTURE_LIST_CLASS_VIDEOENHANCE = 2, + GUC_CAPTURE_LIST_CLASS_BLITTER = 3, + GUC_CAPTURE_LIST_CLASS_GSC_OTHER = 4, }; -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_GFHDMI = 8, - AZX_DRIVER_VIA = 9, - AZX_DRIVER_SIS = 10, - AZX_DRIVER_ULI = 11, - AZX_DRIVER_NVIDIA = 12, - AZX_DRIVER_TERA = 13, - AZX_DRIVER_CTX = 14, - AZX_DRIVER_CTHDA = 15, - AZX_DRIVER_CMEDIA = 16, - AZX_DRIVER_ZHAOXIN = 17, - AZX_DRIVER_LOONGSON = 18, - AZX_DRIVER_GENERIC = 19, - AZX_NUM_DRIVERS = 20, +struct guc_mmio_reg_set { + u32 address; + u16 count; + u16 reserved; }; -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, +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]; }; -enum { - AZX_SNOOP_TYPE_NONE = 0, - AZX_SNOOP_TYPE_SCH = 1, - AZX_SNOOP_TYPE_ATI = 2, - AZX_SNOOP_TYPE_NVIDIA = 3, +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 trace_event_raw_hda_pm { - struct trace_entry ent; - int dev_index; - char __data[0]; +struct guc_gt_system_info { + u8 mapping_table[512]; + u32 engine_enabled_masks[16]; + u32 generic_gt_sysinfo[16]; }; -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 guc_engine_usage_record { + u32 current_context_index; + u32 last_switch_in_stamp; + u32 reserved0; + u32 total_runtime; + u32 reserved1[4]; }; -struct hda_codec; - -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 guc_engine_usage { + struct guc_engine_usage_record engines[512]; }; -struct hda_device_id; - -struct hda_beep; +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 snd_hwdep; +struct temp_regset { + struct guc_mmio_reg *registers; + struct guc_mmio_reg *storage; + u32 storage_used; + u32 storage_max; +}; -struct hda_fixup; +struct i915_power_well_regs; -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 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 hda_device_id { - __u32 vendor_id; - __u32 rev_id; - __u8 api_version; - const char *name; - unsigned long driver_data; +struct i915_power_well_regs { + i915_reg_t bios; + i915_reg_t driver; + i915_reg_t kvmr; + i915_reg_t debug; }; -struct snd_hwdep_dsp_status; - -struct snd_hwdep_dsp_image; +struct i915_power_well_desc; -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 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 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 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; + u16 enable_timeout; }; -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 i915_power_well_instance; + +struct i915_power_well_instance_list { + const struct i915_power_well_instance *list; + u8 count; }; -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; +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, }; -struct hda_pintbl; +enum dpio_phy { + DPIO_PHY0 = 0, + DPIO_PHY1 = 1, + DPIO_PHY2 = 2, +}; -struct hda_verb; +struct i915_power_domain_list; -struct hda_fixup { - int type; - bool chained: 1; - bool chained_before: 1; - int chain_id; +struct i915_power_well_instance { + const char *name; + const struct i915_power_domain_list *domain_list; + enum i915_power_well_id id; union { - const struct hda_pintbl *pins; - const struct hda_verb *verbs; - void (*func)(struct hda_codec *, const struct hda_fixup *, int); - } v; + struct { + u8 idx; + } vlv; + struct { + enum dpio_phy phy; + } bxt; + struct { + u8 idx; + } hsw; + struct { + u8 aux_ch; + } xelpdp; + }; }; -struct trace_event_data_offsets_hda_pm {}; - -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 i915_power_domain_list { + const enum intel_display_power_domain *list; + u8 count; }; -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 dpio_channel { + DPIO_CH0 = 0, + DPIO_CH1 = 1, }; -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 skl_power_gate { + SKL_PG0 = 0, + SKL_PG1 = 1, + SKL_PG2 = 2, + ICL_PG3 = 3, + ICL_PG4 = 4, }; -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 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, }; -typedef const char (* const ethnl_string_array_t)[32]; - -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 intel_dkl_phy_reg { + u32 reg: 24; + u32 bank_idx: 4; }; -struct xt_action_param; - -struct xt_tgchk_param; - -struct xt_tgdtor_param; - -struct xt_target { - struct list_head list; - const char name[29]; - u_int8_t revision; - unsigned int (*target)(struct sk_buff *, const struct xt_action_param *); - int (*checkentry)(const struct xt_tgchk_param *); - void (*destroy)(const struct xt_tgdtor_param *); - struct module *me; - const char *table; - unsigned int targetsize; - unsigned int usersize; - unsigned int hooks; - unsigned short proto; - unsigned short family; +struct 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 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 intel_watermark_params { + u16 fifo_size; + u16 max_wm; + u8 default_wm; + u8 guard_size; + u8 cacheline_size; }; -struct xt_mtchk_param; - -struct xt_mtdtor_param; +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 xt_match { - struct list_head list; - const char name[29]; - u_int8_t revision; - bool (*match)(const struct sk_buff *, struct xt_action_param *); - int (*checkentry)(const struct xt_mtchk_param *); - void (*destroy)(const struct xt_mtdtor_param *); - struct module *me; - const char *table; - unsigned int matchsize; - unsigned int usersize; - unsigned int hooks; - unsigned short proto; - unsigned short family; +enum g4x_wm_level { + G4X_WM_LEVEL_NORMAL = 0, + G4X_WM_LEVEL_SR = 1, + G4X_WM_LEVEL_HPLL = 2, + NUM_G4X_WM_LEVELS = 3, }; -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 ilk_wm_maximums { + u16 pri; + u16 spr; + u16 cur; + u16 fbc; }; -struct xt_mtdtor_param { - struct net *net; - const struct xt_match *match; - void *matchinfo; - u_int8_t family; +struct intel_wm_config { + unsigned int num_pipes_active; + bool sprites_enabled; + bool sprites_scaled; }; -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 intel_dvo_dev_ops; + +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 xt_tgdtor_param { - struct net *net; - const struct xt_target *target; - void *targinfo; - u_int8_t family; +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 *); }; -enum { - CONNSECMARK_SAVE = 1, - CONNSECMARK_RESTORE = 2, +struct intel_dvo { + struct intel_encoder base; + struct intel_dvo_device dev; + struct intel_connector *attached_connector; }; -struct xt_connsecmark_target_info { - __u8 mode; +struct drm_gem_shmem_object { + struct drm_gem_object base; + struct page **pages; + unsigned int pages_use_count; + int madv; + struct list_head madv_list; + struct sg_table *sgt; + void *vaddr; + unsigned int vmap_use_count; + bool pages_mark_dirty_on_put: 1; + bool pages_mark_accessed_on_put: 1; + bool map_wc: 1; }; -enum rt_scope_t { - RT_SCOPE_UNIVERSE = 0, - RT_SCOPE_SITE = 200, - RT_SCOPE_LINK = 253, - RT_SCOPE_HOST = 254, - RT_SCOPE_NOWHERE = 255, +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 mr_table_ops { - const struct rhashtable_params *rht_params; - void *cmparg_any; +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 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 virtio_gpu_object_array { + struct ww_acquire_ctx ticket; + struct list_head next; + u32 nents; + u32 total; + struct drm_gem_object *objs[0]; }; -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; +struct virtio_gpu_rect { + __le32 x; + __le32 y; + __le32 width; + __le32 height; }; -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 virtio_gpu_display_one { + struct virtio_gpu_rect r; + __le32 enabled; + __le32 flags; }; -enum { - MFC_STATIC = 1, - MFC_OFFLOAD = 2, +struct virtio_gpu_ctrl_hdr { + __le32 type; + __le32 flags; + __le64 fence_id; + __le32 ctx_id; + __u8 ring_idx; + __u8 padding[3]; }; -enum { - RTN_UNSPEC = 0, - RTN_UNICAST = 1, - RTN_LOCAL = 2, - RTN_BROADCAST = 3, - RTN_ANYCAST = 4, - RTN_MULTICAST = 5, - RTN_BLACKHOLE = 6, - RTN_UNREACHABLE = 7, - RTN_PROHIBIT = 8, - RTN_THROW = 9, - RTN_NAT = 10, - RTN_XRESOLVE = 11, - __RTN_MAX = 12, +struct virtio_gpu_cursor_pos { + __le32 scanout_id; + __le32 x; + __le32 y; + __le32 padding; }; -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 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 seq_net_private { - struct net *net; - netns_tracker ns_tracker; +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 mr_vif_iter { - struct seq_net_private p; - struct mr_table *mrt; - int ct; +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 mr_mfc_iter { - struct seq_net_private p; - struct mr_table *mrt; - struct list_head *cache; - spinlock_t *lock; +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; }; -typedef __kernel_clock_t clock_t; +struct virtio_gpu_drv_capset; -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 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 mfc_entry_notifier_info { - struct fib_notifier_info info; - struct mr_mfc *mfc; - u32 tb_id; +struct virtio_gpu_drv_capset { + uint32_t id; + uint32_t max_version; + uint32_t max_size; }; -struct rta_mfc_stats { - __u64 mfcs_packets; - __u64 mfcs_bytes; - __u64 mfcs_wrong_if; +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 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 virtio_gpu_mem_entry { + __le64 addr; + __le32 length; + __le32 padding; }; -struct rtnexthop { - unsigned short rtnh_len; - unsigned char rtnh_flags; - unsigned char rtnh_hops; - int rtnh_ifindex; +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 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 driver_private { + struct kobject kobj; + struct klist klist_devices; + struct klist_node knode_bus; + struct module_kobject *mkobj; + struct device_driver *driver; }; -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 container_dev { + struct device dev; + int (*offline)(struct container_dev *); }; -struct ioam6_pernet_data { - struct mutex lock; - struct rhashtable namespaces; - struct rhashtable schemas; +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, }; -struct genl_split_ops; - -struct genl_ops; - -struct genl_small_ops; +struct virtio_blk_vq; -struct genl_multicast_group; +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 genl_family { - unsigned int hdrsize; +struct virtio_blk_vq { + struct virtqueue *vq; + spinlock_t lock; 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; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 virtio_blk_outhdr { + __virtio32 type; + __virtio32 ioprio; + __virtio64 sector; }; -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 virtblk_req { + struct virtio_blk_outhdr out_hdr; + union { + u8 status; + struct { + __virtio64 sector; + u8 status; + } zone_append; + } in_hdr; + size_t in_hdr_len; + struct sg_table sg_table; + struct scatterlist sg[0]; }; -struct 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 virtio_blk_discard_write_zeroes { + __le64 sector; + __le32 num_sectors; + __le32 flags; }; -struct genl_multicast_group { - char name[16]; - u8 flags; +struct class_interface { + struct list_head node; + const struct class *class; + int (*add_dev)(struct device *); + void (*remove_dev)(struct device *); }; -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 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___2 = 8, + MSG_PARITY_ERROR = 9, + LINKED_CMD_COMPLETE = 10, + LINKED_FLG_CMD_COMPLETE = 11, + TARGET_RESET = 12, + ABORT_TASK = 13, + CLEAR_TASK_SET = 14, + INITIATE_RECOVERY = 15, + RELEASE_RECOVERY = 16, + TERMINATE_IO_PROC = 17, + CLEAR_ACA = 22, + LOGICAL_UNIT_RESET = 23, + SIMPLE_QUEUE_TAG = 32, + HEAD_OF_QUEUE_TAG = 33, + ORDERED_QUEUE_TAG = 34, + IGNORE_WIDE_RESIDUE = 35, + ACA = 36, + QAS_REQUEST = 85, + BUS_DEVICE_RESET = 12, + ABORT = 6, }; -enum { - 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 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; }; -struct ioam6_namespace; +typedef struct sg_scatter_hold Sg_scatter_hold; -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 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 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; -}; +typedef struct sg_io_hdr sg_io_hdr_t; -struct rhashtable_walker { - struct list_head list; - struct bucket_table *tbl; +struct execute_work { + struct work_struct work; }; -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 sg_fd; -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 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; }; -struct icmpv6_echo { - __be16 identifier; - __be16 sequence; -}; +typedef struct sg_request Sg_request; -struct icmpv6_nd_advt { - __u32 reserved: 5; - __u32 override: 1; - __u32 solicited: 1; - __u32 router: 1; - __u32 reserved2: 24; -}; +struct sg_device; -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 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; }; -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; -}; +typedef struct sg_fd Sg_fd; -struct mld_msg { - struct icmp6hdr mld_hdr; - struct in6_addr mld_mca; +struct sg_device { + struct scsi_device *device; + wait_queue_head_t open_wait; + struct mutex open_rel_lock; + int sg_tablesize; + u32 index; + struct list_head sfds; + rwlock_t sfd_lock; + atomic_t detaching; + bool exclude; + int open_cnt; + char sgdebug; + char name[32]; + struct cdev *cdev; + struct kref d_ref; }; -typedef 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 sg_proc_deviter { + loff_t index; + size_t max; }; -struct gss_cl_ctx; - -struct gss_upcall_msg; +typedef struct sg_device Sg_device; -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; +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]; }; -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 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 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; +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 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 *); +typedef struct sg_req_info sg_req_info_t; -struct rpc_gss_wire_cred { - u32 gc_v; - u32 gc_proc; - u32 gc_seq; - u32 gc_svc; - struct xdr_netobj gc_ctx; +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 void (*btf_trace_rpcgss_unwrap_failed)(void *, const struct rpc_task *); +typedef struct sg_scsi_id sg_scsi_id_t; -typedef void (*btf_trace_rpcgss_bad_seqno)(void *, const struct rpc_task *, u32, u32); +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; +}; -typedef void (*btf_trace_rpcgss_seqno)(void *, const struct rpc_task *); +struct phy_c45_device_ids { + u32 devices_in_package; + u32 mmds_present; + u32 device_ids[32]; +}; -typedef void (*btf_trace_rpcgss_need_reencode)(void *, const struct rpc_task *, u32, bool); +enum phy_state { + PHY_DOWN = 0, + PHY_READY = 1, + PHY_HALTED = 2, + PHY_ERROR = 3, + PHY_UP = 4, + PHY_RUNNING = 5, + PHY_NOLINK = 6, + PHY_CABLETEST = 7, +}; -typedef void (*btf_trace_rpcgss_update_slack)(void *, const struct rpc_task *, const struct rpc_auth *); +struct phylink; -typedef void (*btf_trace_rpcgss_svc_seqno_large)(void *, const struct svc_rqst *, u32); +struct pse_control; -typedef void (*btf_trace_rpcgss_svc_seqno_seen)(void *, const struct svc_rqst *, u32); +struct phy_driver; -typedef void (*btf_trace_rpcgss_svc_seqno_low)(void *, const struct svc_rqst *, u32, u32, u32); +struct mii_timestamper; -typedef void (*btf_trace_rpcgss_upcall_msg)(void *, const char *); +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 wol_enabled: 1; + unsigned int autoneg: 1; + unsigned int link: 1; + unsigned int autoneg_complete: 1; + unsigned int interrupts: 1; + unsigned int irq_suspended: 1; + unsigned int irq_rerun: 1; + int rate_matching; + enum phy_state state; + u32 dev_flags; + phy_interface_t interface; + 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; + struct list_head leds; + int irq; + void *priv; + struct phy_package_shared *shared; + struct sk_buff *skb; + void *ehdr; + struct nlattr *nest; + struct delayed_work state_queue; + struct mutex lock; + bool sfp_bus_attached; + struct sfp_bus *sfp_bus; + struct phylink *phylink; + struct net_device *attached_dev; + struct mii_timestamper *mii_ts; + struct pse_control *psec; + u8 mdix; + u8 mdix_ctrl; + int pma_extable; + unsigned int link_down_events; + void (*phy_link_change)(struct phy_device *, bool); + void (*adjust_link)(struct net_device *); +}; -typedef void (*btf_trace_rpcgss_upcall_result)(void *, u32, int); +struct mdio_driver_common { + struct device_driver driver; + int flags; +}; -typedef void (*btf_trace_rpcgss_context)(void *, u32, unsigned long, unsigned long, unsigned int, unsigned int, const u8 *); +struct phy_tdr_config; -typedef void (*btf_trace_rpcgss_createauth)(void *, unsigned int, int); +struct phy_plca_cfg; -typedef void (*btf_trace_rpcgss_oid_to_mech)(void *, const char *); +struct phy_plca_status; -struct trace_event_raw_rpcgss_import_ctx { - struct trace_entry ent; - int status; - char __data[0]; +struct phy_driver { + struct mdio_driver_common mdiodrv; + u32 phy_id; + char *name; + u32 phy_id_mask; + const unsigned long * const features; + u32 flags; + const void *driver_data; + int (*soft_reset)(struct phy_device *); + int (*config_init)(struct phy_device *); + int (*probe)(struct phy_device *); + int (*get_features)(struct phy_device *); + int (*get_rate_matching)(struct phy_device *, phy_interface_t); + int (*suspend)(struct phy_device *); + int (*resume)(struct phy_device *); + int (*config_aneg)(struct phy_device *); + int (*aneg_done)(struct phy_device *); + int (*read_status)(struct phy_device *); + int (*config_intr)(struct phy_device *); + irqreturn_t (*handle_interrupt)(struct phy_device *); + void (*remove)(struct phy_device *); + int (*match_phy_device)(struct phy_device *); + int (*set_wol)(struct phy_device *, struct ethtool_wolinfo *); + void (*get_wol)(struct phy_device *, struct ethtool_wolinfo *); + void (*link_change_notify)(struct phy_device *); + int (*read_mmd)(struct phy_device *, int, u16); + int (*write_mmd)(struct phy_device *, int, u16, u16); + int (*read_page)(struct phy_device *); + int (*write_page)(struct phy_device *, int); + int (*module_info)(struct phy_device *, struct ethtool_modinfo *); + int (*module_eeprom)(struct phy_device *, struct ethtool_eeprom *, u8 *); + int (*cable_test_start)(struct phy_device *); + int (*cable_test_tdr_start)(struct phy_device *, const struct phy_tdr_config *); + int (*cable_test_get_status)(struct phy_device *, bool *); + int (*get_sset_count)(struct phy_device *); + void (*get_strings)(struct phy_device *, u8 *); + void (*get_stats)(struct phy_device *, struct ethtool_stats *, u64 *); + int (*get_tunable)(struct phy_device *, struct ethtool_tunable *, void *); + int (*set_tunable)(struct phy_device *, struct ethtool_tunable *, const void *); + int (*set_loopback)(struct phy_device *, bool); + int (*get_sqi)(struct phy_device *); + int (*get_sqi_max)(struct phy_device *); + int (*get_plca_cfg)(struct phy_device *, struct phy_plca_cfg *); + int (*set_plca_cfg)(struct phy_device *, const struct phy_plca_cfg *); + int (*get_plca_status)(struct phy_device *, struct phy_plca_status *); + int (*led_brightness_set)(struct phy_device *, u8, enum led_brightness); + int (*led_blink_set)(struct phy_device *, u8, unsigned long *, unsigned long *); + int (*led_hw_is_supported)(struct phy_device *, u8, unsigned long); + int (*led_hw_control_set)(struct phy_device *, u8, unsigned long); + int (*led_hw_control_get)(struct phy_device *, u8, unsigned long *); }; -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 phy_tdr_config { + u32 first; + u32 last; + u32 step; + s8 pair; }; -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 phy_plca_cfg { + int version; + int enabled; + int node_id; + int node_cnt; + int to_tmr; + int burst_cnt; + int burst_tmr; }; -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 phy_plca_status { + bool pst; }; -struct trace_event_raw_rpcgss_svc_wrap_failed { - struct trace_entry ent; - u32 xid; - u32 __data_loc_addr; - char __data[0]; +enum device_link_state { + DL_STATE_NONE = -1, + DL_STATE_DORMANT = 0, + DL_STATE_AVAILABLE = 1, + DL_STATE_CONSUMER_PROBE = 2, + DL_STATE_ACTIVE = 3, + DL_STATE_SUPPLIER_UNBIND = 4, }; -struct trace_event_raw_rpcgss_svc_unwrap_failed { - struct trace_entry ent; - u32 xid; - u32 __data_loc_addr; - char __data[0]; +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 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 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; }; -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]; +enum phy_state_work { + PHY_STATE_WORK_NONE = 0, + PHY_STATE_WORK_ANEG = 1, + PHY_STATE_WORK_SUSPEND = 2, }; -struct trace_event_raw_rpcgss_svc_authenticate { - struct trace_entry ent; - u32 seqno; - u32 xid; - u32 __data_loc_addr; - char __data[0]; +struct mii_ioctl_data { + __u16 phy_id; + __u16 reg_num; + __u16 val_in; + __u16 val_out; }; -struct trace_event_raw_rpcgss_unwrap_failed { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - char __data[0]; +struct phy_setting { + u32 speed; + u8 duplex; + u8 bit; }; -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 rtl8169_private; -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]; -}; +typedef void (*rtl_phy_cfg_fct)(struct rtl8169_private *, struct phy_device *); -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 phy_reg { + u16 reg; + u16 val; }; -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]; +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, }; -struct trace_event_raw_rpcgss_svc_seqno_class { - struct trace_entry ent; - u32 xid; - u32 seqno; - char __data[0]; -}; +typedef unsigned int u_int; -struct trace_event_raw_rpcgss_svc_seqno_low { - struct trace_entry ent; - u32 xid; - u32 seqno; - u32 min; - u32 max; - char __data[0]; -}; +typedef unsigned char u_char; -struct trace_event_raw_rpcgss_upcall_msg { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; +struct socket_state_t { + u_int flags; + u_int csc_mask; + u_char Vcc; + u_char Vpp; + u_char io_irq; }; -struct trace_event_raw_rpcgss_upcall_result { - struct trace_entry ent; - u32 uid; - int result; - char __data[0]; -}; +typedef struct socket_state_t socket_state_t; -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]; -}; +typedef unsigned short u_short; -struct trace_event_raw_rpcgss_createauth { - struct trace_entry ent; - unsigned int flavor; - int error; - char __data[0]; +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; }; -struct trace_event_raw_rpcgss_oid_to_mech { - struct trace_entry ent; - u32 __data_loc_oid; - char __data[0]; -}; +typedef struct pccard_mem_map pccard_mem_map; -struct trace_event_data_offsets_rpcgss_ctx_class { - u32 principal; +struct io_window_t { + u_int InUse; + u_int Config; + struct resource *res; }; -struct trace_event_data_offsets_rpcgss_svc_gssapi_class { - u32 addr; -}; +typedef struct io_window_t io_window_t; -struct trace_event_data_offsets_rpcgss_svc_wrap_failed { - u32 addr; -}; +struct pccard_operations; -struct trace_event_data_offsets_rpcgss_svc_unwrap_failed { - u32 addr; -}; +struct pccard_resource_ops; -struct trace_event_data_offsets_rpcgss_svc_seqno_bad { - u32 addr; -}; +struct pcmcia_callback; -struct trace_event_data_offsets_rpcgss_svc_accept_upcall { - u32 addr; +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 trace_event_data_offsets_rpcgss_svc_authenticate { - u32 addr; +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 trace_event_data_offsets_rpcgss_upcall_msg { - u32 msg; +struct pccard_io_map { + u_char map; + u_char flags; + u_short speed; + phys_addr_t start; + phys_addr_t stop; }; -struct trace_event_data_offsets_rpcgss_context { - u32 acceptor; +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 *); }; -struct trace_event_data_offsets_rpcgss_oid_to_mech { - u32 oid; +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 *); }; -struct trace_event_data_offsets_rpcgss_gssapi_event {}; +struct usb_class_driver { + char *name; + char * (*devnode)(const struct device *, umode_t *); + const struct file_operations *fops; + int minor_base; +}; -struct trace_event_data_offsets_rpcgss_import_ctx {}; +struct snap { + int slen; + char str[80]; +}; -struct trace_event_data_offsets_rpcgss_unwrap_failed {}; +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; +}; -struct trace_event_data_offsets_rpcgss_bad_seqno {}; +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, +}; -struct trace_event_data_offsets_rpcgss_seqno {}; +struct us_data; -struct trace_event_data_offsets_rpcgss_need_reencode {}; +typedef int (*trans_cmnd)(struct scsi_cmnd *, struct us_data *); -struct trace_event_data_offsets_rpcgss_update_slack {}; +typedef int (*trans_reset)(struct us_data *); -struct trace_event_data_offsets_rpcgss_svc_seqno_class {}; +typedef void (*proto_cmnd)(struct scsi_cmnd *, struct us_data *); -struct trace_event_data_offsets_rpcgss_svc_seqno_low {}; +typedef void (*extra_data_destructor)(void *); -struct trace_event_data_offsets_rpcgss_upcall_result {}; +typedef void (*pm_hook)(struct us_data *, int); -struct trace_event_data_offsets_rpcgss_createauth {}; +struct us_unusual_dev; -struct link_container { - struct ieee80211_link_data data; - struct ieee80211_bss_conf conf; +struct us_data { + struct mutex dev_mutex; + struct usb_device *pusb_dev; + struct usb_interface *pusb_intf; + const struct us_unusual_dev *unusual_dev; + u64 fflags; + unsigned long dflags; + unsigned int send_bulk_pipe; + unsigned int recv_bulk_pipe; + unsigned int send_ctrl_pipe; + unsigned int recv_ctrl_pipe; + unsigned int recv_intr_pipe; + char *transport_name; + char *protocol_name; + __le32 bcs_signature; + u8 subclass; + u8 protocol; + u8 max_lun; + u8 ifnum; + u8 ep_bInterval; + trans_cmnd transport; + trans_reset transport_reset; + proto_cmnd proto_handler; + struct scsi_cmnd *srb; + unsigned int tag; + char scsi_name[32]; + struct urb *current_urb; + struct usb_ctrlrequest *cr; + struct usb_sg_request current_sg; + unsigned char *iobuf; + dma_addr_t iobuf_dma; + struct task_struct *ctl_thread; + struct completion cmnd_ready; + struct completion notify; + wait_queue_head_t delay_wait; + struct delayed_work scan_dwork; + void *extra; + extra_data_destructor extra_destructor; + pm_hook suspend_resume_hook; + int use_last_sector_hacks; + int last_sector_retries; }; -struct calipso_doi; +struct us_unusual_dev { + const char *vendorName; + const char *productName; + __u8 useProtocol; + __u8 useTransport; + int (*initFunction)(struct us_data *); +}; -struct netlbl_audit; +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; +}; -struct netlbl_lsm_secattr; +struct psmouse; -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 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 calipso_doi { - u32 doi; - u32 type; - refcount_t refcount; - struct list_head list; - struct callback_head rcu; +enum ps2_disposition { + PS2_PROCESS = 0, + PS2_IGNORE = 1, + PS2_ERROR = 2, }; -struct netlbl_audit { - u32 secid; - kuid_t loginuid; - unsigned int sessionid; -}; +struct ps2dev; -struct netlbl_lsm_cache; +typedef enum ps2_disposition (*ps2_pre_receive_handler_t)(struct ps2dev *, u8, unsigned int); -struct netlbl_lsm_catmap; +typedef void (*ps2_receive_handler_t)(struct ps2dev *, u8); -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 serio; -struct netlbl_lsm_cache { - refcount_t refcount; - void (*free)(const void *); - void *data; +struct ps2dev { + struct serio *serio; + struct mutex cmd_mutex; + wait_queue_head_t wait; + unsigned long flags; + u8 cmdbuf[8]; + u8 cmdcnt; + u8 nak; + ps2_pre_receive_handler_t pre_receive_handler; + ps2_receive_handler_t receive_handler; }; -struct netlbl_lsm_catmap { - u32 startbit; - u64 bitmap[4]; - struct netlbl_lsm_catmap *next; +enum psmouse_state { + PSMOUSE_IGNORE = 0, + PSMOUSE_INITIALIZING = 1, + PSMOUSE_RESYNCING = 2, + PSMOUSE_CMD_MODE = 3, + PSMOUSE_ACTIVATED = 4, }; -enum { - NLBL_CALIPSO_A_UNSPEC = 0, - NLBL_CALIPSO_A_DOI = 1, - NLBL_CALIPSO_A_MTYPE = 2, - __NLBL_CALIPSO_A_MAX = 3, -}; +typedef enum { + PSMOUSE_BAD_DATA = 0, + PSMOUSE_GOOD_DATA = 1, + PSMOUSE_FULL_PACKET = 2, +} psmouse_ret_t; -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, +enum psmouse_scale { + PSMOUSE_SCALE11 = 0, + PSMOUSE_SCALE21 = 1, }; -struct netlbl_domaddr_map; - -struct cipso_v4_doi; +struct psmouse_protocol; -struct netlbl_dommap_def { - u32 type; - union { - struct netlbl_domaddr_map *addrsel; - struct cipso_v4_doi *cipso; - struct calipso_doi *calipso; - }; +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 netlbl_dom_map { - char *domain; - struct netlbl_dommap_def def; - u16 family; - u32 valid; - struct list_head list; - struct callback_head rcu; +struct serio_device_id { + __u8 type; + __u8 extra; + __u8 id; + __u8 proto; }; -struct netlbl_domaddr_map { - struct list_head list4; - struct list_head list6; -}; +struct serio_driver; -struct netlbl_domhsh_walk_arg { - struct netlbl_audit *audit_info; - u32 doi; +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 netlbl_calipso_doiwalk_arg { - struct netlink_callback *nl_cb; - struct sk_buff *skb; - u32 seq; +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; }; -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 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, }; -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; +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 *); +}; -typedef unsigned long efi_status_t; +enum synaptics_pkt_type { + SYN_NEWABS = 0, + SYN_NEWABS_STRICT = 1, + SYN_NEWABS_RELAXED = 2, + SYN_OLDABS = 3, +}; -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; +enum rmi_sensor_type { + rmi_sensor_default = 0, + rmi_sensor_touchscreen = 1, + rmi_sensor_touchpad = 2, +}; -typedef struct { - u32 resolution; - u32 accuracy; - u8 sets_to_zero; -} efi_time_cap_t; +enum rmi_reg_state { + RMI_REG_STATE_DEFAULT = 0, + RMI_REG_STATE_OFF = 1, + RMI_REG_STATE_ON = 2, +}; -typedef u8 efi_bool_t; +enum { + SYNAPTICS_INTERTOUCH_NOT_SET = -1, + SYNAPTICS_INTERTOUCH_OFF = 0, + SYNAPTICS_INTERTOUCH_ON = 1, +}; -typedef struct { - u32 type; - u32 pad; - u64 phys_addr; - u64 virt_addr; - u64 num_pages; - u64 attribute; -} efi_memory_desc_t; +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; +}; -typedef u16 efi_char16_t; +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); +}; -typedef struct { - efi_guid_t guid; - u32 headersize; - u32 flags; - u32 imagesize; -} efi_capsule_header_t; +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; +}; -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; +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; +}; -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 rmi_f01_power_management { + enum rmi_reg_state nosleep; + u8 wakeup_threshold; + u8 doze_holdoff; + u8 doze_interval; +}; -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 rmi_gpio_data { + bool buttonpad; + bool trackstick_buttons; + bool disable; }; -typedef struct { - efi_guid_t guid; - u32 table; -} efi_config_table_32_t; +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; +}; -typedef union { - struct { - efi_guid_t guid; - void *table; - }; - efi_config_table_32_t mixed_mode; -} efi_config_table_t; +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; +}; -typedef struct { - u32 version; - u32 length; - u64 memory_protection_attribute; -} efi_properties_table_t; +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; +}; -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; +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 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 input_mt_pos { + s16 x; + s16 y; +}; -struct efi_setup_data { - u64 fw_vendor; - u64 __unused; - u64 tables; - u64 smbios; - u64 reserved[8]; +struct ptp_extts_event { + struct ptp_clock_time t; + unsigned int index; + unsigned int flags; + unsigned int rsv[2]; }; -typedef void (*btf_trace_notifier_register)(void *, void *); +struct debugfs_u32_array { + u32 *array; + u32 n_elements; +}; -typedef void (*btf_trace_notifier_unregister)(void *, void *); +struct timestamp_event_queue { + struct ptp_extts_event buf[128]; + int head; + int tail; + spinlock_t lock; + struct list_head qlist; + unsigned long *mask; + struct dentry *debugfs_instance; + struct debugfs_u32_array dfs_bitmap; +}; -typedef void (*btf_trace_notifier_run)(void *, void *); +struct mddev; -struct trace_event_raw_notifier_info { - struct trace_entry ent; - void *cb; - char __data[0]; +struct md_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct mddev *, char *); + ssize_t (*store)(struct mddev *, const char *, size_t); }; -struct trace_event_data_offsets_notifier_info {}; +struct md_cluster_info; -struct srcu_notifier_head { - struct mutex mutex; - struct srcu_usage srcuu; - struct srcu_struct srcu; - struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; -}; +struct md_personality; -typedef void (*btf_trace_console)(void *, const char *, size_t); +struct md_thread; -struct prb_desc; +struct bitmap; -struct printk_info; +struct md_rdev; -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 mddev { + void *private; + struct md_personality *pers; + dev_t unit; + int md_minor; + struct list_head disks; + unsigned long flags; + unsigned long sb_flags; + int suspended; + struct mutex suspend_mutex; + struct percpu_ref active_io; + int ro; + int sysfs_active; + struct gendisk *gendisk; + struct kobject kobj; + int hold_active; + int major_version; + int minor_version; + int patch_version; + int persistent; + int external; + char metadata_type[17]; + int chunk_sectors; + time64_t ctime; + time64_t utime; + int level; + int layout; + char clevel[16]; + int raid_disks; + int max_disks; + sector_t dev_sectors; + sector_t array_sectors; + int external_size; + __u64 events; + int can_decrease_events; + char uuid[16]; + sector_t reshape_position; + int delta_disks; + int new_level; + int new_layout; + int new_chunk_sectors; + int reshape_backwards; + struct md_thread __attribute__((btf_type_tag("rcu"))) *thread; + struct md_thread __attribute__((btf_type_tag("rcu"))) *sync_thread; + char *last_sync_action; + sector_t curr_resync; + sector_t curr_resync_completed; + unsigned long resync_mark; + sector_t resync_mark_cnt; + sector_t curr_mark_cnt; + sector_t resync_max_sectors; + atomic64_t resync_mismatches; + sector_t suspend_lo; + sector_t suspend_hi; + int sync_speed_min; + int sync_speed_max; + int parallel_resync; + int ok_start_degraded; + unsigned long recovery; + int recovery_disabled; + int in_sync; + struct mutex open_mutex; + struct mutex reconfig_mutex; + atomic_t active; + atomic_t openers; + int changed; + int degraded; + atomic_t recovery_active; + wait_queue_head_t recovery_wait; + sector_t recovery_cp; + sector_t resync_min; + sector_t resync_max; + struct kernfs_node *sysfs_state; + struct kernfs_node *sysfs_action; + struct kernfs_node *sysfs_completed; + struct kernfs_node *sysfs_degraded; + struct kernfs_node *sysfs_level; + struct work_struct del_work; + struct work_struct sync_work; + spinlock_t lock; + wait_queue_head_t sb_wait; + atomic_t pending_writes; + unsigned int safemode; + unsigned int safemode_delay; + struct timer_list safemode_timer; + struct percpu_ref writes_pending; + int sync_checkers; + struct 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_clone_set; + struct bio *flush_bio; + atomic_t flush_pending; + ktime_t start_flush; + ktime_t prev_flush_start; + struct work_struct flush_work; + struct work_struct event_work; + mempool_t *serial_info_pool; + void (*sync_super)(struct mddev *, struct md_rdev *); + struct md_cluster_info *cluster_info; + unsigned int good_device_nr; + unsigned int noio_flag; + struct list_head deleting; + struct mutex sync_mutex; + atomic_t sync_seq; + bool has_superblocks: 1; + bool fail_last_dev: 1; + bool serialize_policy: 1; }; -struct prb_data_ring { - unsigned int size_bits; - char *data; - atomic_long_t head_lpos; - atomic_long_t tail_lpos; +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 printk_ringbuffer { - struct prb_desc_ring desc_ring; - struct prb_data_ring text_data_ring; - atomic_long_t fail; -}; +struct serial_in_rdev; -struct prb_data_blk_lpos { - unsigned long begin; - unsigned long next; +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 bdev_handle *bdev_handle; + struct page *sb_page; + struct page *bb_page; + int sb_loaded; + __u64 sb_events; + sector_t data_offset; + sector_t new_data_offset; + sector_t sb_start; + int sb_size; + int preferred_minor; + struct kobject kobj; + unsigned long flags; + wait_queue_head_t blocked_wait; + int desc_nr; + int raid_disk; + int new_raid_disk; + int saved_raid_disk; + union { + sector_t recovery_offset; + sector_t journal_tail; + }; + atomic_t nr_pending; + atomic_t read_errors; + time64_t last_read_error; + atomic_t corrected_errors; + struct serial_in_rdev *serial; + struct kernfs_node *sysfs_state; + struct kernfs_node *sysfs_unack_badblocks; + struct kernfs_node *sysfs_badblocks; + struct badblocks badblocks; + struct { + short offset; + unsigned int size; + sector_t sector; + } ppl; }; -struct prb_desc { - atomic_long_t state_var; - struct prb_data_blk_lpos text_blk_lpos; +struct serial_in_rdev { + struct rb_root_cached serial_rb; + spinlock_t serial_lock; + wait_queue_head_t serial_io_wait; }; -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 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 latched_seq { - seqcount_latch_t latch; - u64 val[2]; -}; +struct bitmap_page; -struct console_cmdline { - char name[16]; - int index; - bool user_specified; - char *options; +struct bitmap_counts { + spinlock_t lock; + struct bitmap_page *bp; + unsigned long pages; + unsigned long missing_pages; + unsigned long chunkshift; + unsigned long chunks; }; -struct printk_buffers { - char outbuf[2048]; - char scratchbuf[1024]; +struct bitmap_storage { + struct file *file; + struct page *sb_page; + unsigned long sb_index; + struct page **filemap; + unsigned long *filemap_attr; + unsigned long file_pages; + unsigned long bytes; }; -enum devkmsg_log_masks { - DEVKMSG_LOG_MASK_ON = 1, - DEVKMSG_LOG_MASK_OFF = 2, - DEVKMSG_LOG_MASK_LOCK = 4, +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; }; -enum printk_info_flags { - LOG_NEWLINE = 2, - LOG_CONT = 8, +struct bitmap_page { + char *map; + unsigned int hijacked: 1; + unsigned int pending: 1; + unsigned int count: 30; }; -enum cons_flags { - CON_PRINTBUFFER = 1, - CON_CONSDEV = 2, - CON_ENABLED = 4, - CON_BOOT = 8, - CON_ANYTIME = 16, - CON_BRL = 32, - CON_EXTENDED = 64, +enum bitmap_state { + BITMAP_STALE = 1, + BITMAP_WRITE_ERROR = 2, + BITMAP_HOSTENDIAN = 15, }; -enum con_flush_mode { - CONSOLE_FLUSH_PENDING = 0, - CONSOLE_REPLAY_ALL = 1, +enum bitmap_page_attr { + BITMAP_PAGE_DIRTY = 0, + BITMAP_PAGE_PENDING = 1, + BITMAP_PAGE_NEEDWRITE = 2, }; -enum con_msg_format_flags { - MSG_FORMAT_DEFAULT = 0, - MSG_FORMAT_SYSLOG = 1, +enum mddev_sb_flags { + MD_SB_CHANGE_DEVS = 0, + MD_SB_CHANGE_CLEAN = 1, + MD_SB_CHANGE_PENDING = 2, + MD_SB_NEED_REWRITE = 3, }; -struct kmsg_dumper { - struct list_head list; - void (*dump)(struct kmsg_dumper *, enum kmsg_dump_reason); - enum kmsg_dump_reason max_reason; - bool registered; +enum mddev_flags { + MD_ARRAY_FIRST_USE = 0, + MD_CLOSING = 1, + MD_JOURNAL_CLEAN = 2, + MD_HAS_JOURNAL = 3, + MD_CLUSTER_RESYNC_LOCKED = 4, + MD_FAILFAST_SUPPORTED = 5, + MD_HAS_PPL = 6, + MD_HAS_MULTIPLE_PPLS = 7, + MD_NOT_READY = 8, + MD_BROKEN = 9, + MD_DELETED = 10, }; -struct trace_event_raw_console { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; +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, }; -struct trace_event_data_offsets_console { - u32 msg; +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, }; -struct printk_record { - struct printk_info *info; - char *text_buf; - unsigned int text_buf_size; -}; +typedef __u16 bitmap_counter_t; -struct prb_reserved_entry { - struct printk_ringbuffer *rb; - unsigned long irqflags; - unsigned long id; - unsigned int text_space; +struct bitmap_unplug_work { + struct work_struct work; + struct bitmap *bitmap; + struct completion *done; }; -struct printk_message { - struct printk_buffers *pbufs; - unsigned int outbuf_len; - u64 seq; - unsigned long dropped; +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]; }; -struct devkmsg_user { - atomic64_t seq; - struct ratelimit_state rs; - struct mutex lock; - struct printk_buffers pbufs; +typedef struct bitmap_super_s bitmap_super_t; + +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 kmsg_dump_iter { - u64 cur_seq; - u64 next_seq; +struct vid_data { + int min; + int max; + int turbo; + int32_t ratio; }; -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; +struct sample { + int32_t core_avg_perf; + int32_t busy_scaled; + u64 aperf; + u64 mperf; + u64 tsc; + u64 time; }; -union bpf_iter_link_info { - struct { - __u32 map_fd; - } map; - struct { - enum bpf_cgroup_iter_order order; - __u32 cgroup_fd; - __u64 cgroup_id; - } cgroup; - struct { - __u32 tid; - __u32 pid; - __u32 pid_fd; - } task; +struct 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 kallsym_iter { - loff_t pos; - loff_t pos_mod_end; - loff_t pos_ftrace_mod_end; - loff_t pos_bpf_end; - unsigned long value; - unsigned int nameoff; - char type; - char name[512]; - char module_name[56]; - int exported; - int show_value; +struct 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 bpf_iter_meta; - -struct bpf_iter__ksym { - union { - struct bpf_iter_meta *meta; - }; - union { - struct kallsym_iter *ksym; - }; +struct global_params { + bool no_turbo; + bool turbo_disabled; + bool turbo_disabled_mf; + int max_perf_pct; + int min_perf_pct; }; -struct bpf_iter_meta { - union { - struct seq_file *seq; - }; - u64 session_id; - u64 seq_num; +struct cpufreq_driver { + char name[16]; + u16 flags; + void *driver_data; + int (*init)(struct cpufreq_policy *); + int (*verify)(struct cpufreq_policy_data *); + int (*setpolicy)(struct cpufreq_policy *); + int (*target)(struct cpufreq_policy *, unsigned int, unsigned int); + int (*target_index)(struct cpufreq_policy *, unsigned int); + unsigned int (*fast_switch)(struct cpufreq_policy *, unsigned int); + void (*adjust_perf)(unsigned int, unsigned long, unsigned long, unsigned long); + unsigned int (*get_intermediate)(struct cpufreq_policy *, unsigned int); + int (*target_intermediate)(struct cpufreq_policy *, unsigned int); + unsigned int (*get)(unsigned int); + void (*update_limits)(unsigned int); + int (*bios_limit)(int, unsigned int *); + int (*online)(struct cpufreq_policy *); + int (*offline)(struct cpufreq_policy *); + int (*exit)(struct cpufreq_policy *); + int (*suspend)(struct cpufreq_policy *); + int (*resume)(struct cpufreq_policy *); + void (*ready)(struct cpufreq_policy *); + struct freq_attr **attr; + bool boost_enabled; + int (*set_boost)(struct cpufreq_policy *, int); + void (*register_em)(struct cpufreq_policy *); }; -enum { - TRACE_EVENT_FL_FILTERED = 1, - TRACE_EVENT_FL_CAP_ANY = 2, - TRACE_EVENT_FL_NO_SET_FILTER = 4, - TRACE_EVENT_FL_IGNORE_ENABLE = 8, - TRACE_EVENT_FL_TRACEPOINT = 16, - TRACE_EVENT_FL_DYNAMIC = 32, - TRACE_EVENT_FL_KPROBE = 64, - TRACE_EVENT_FL_UPROBE = 128, - TRACE_EVENT_FL_EPROBE = 256, - TRACE_EVENT_FL_FPROBE = 512, - TRACE_EVENT_FL_CUSTOM = 1024, +enum acpi_predicate { + all_versions = 0, + less_than_or_equal = 1, + equal = 2, + greater_than_or_equal = 3, }; -enum dynevent_type { - DYNEVENT_TYPE_SYNTH = 1, - DYNEVENT_TYPE_KPROBE = 2, - DYNEVENT_TYPE_NONE = 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; }; -struct dyn_event_operations; - -struct dyn_event { - struct list_head list; - struct dyn_event_operations *ops; +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, }; -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 *); +enum acpi_preferred_pm_profiles { + PM_UNSPECIFIED = 0, + PM_DESKTOP = 1, + PM_MOBILE = 2, + PM_WORKSTATION = 3, + PM_ENTERPRISE_SERVER = 4, + PM_SOHO_SERVER = 5, + PM_APPLIANCE_PC = 6, + PM_PERFORMANCE_SERVER = 7, + PM_TABLET = 8, + NR_PM_PROFILES = 9, }; -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; +enum { + PSS = 0, + PPC = 1, }; -struct dynevent_arg { - const char *str; - char separator; -}; +typedef s64 int64_t; -typedef int (*dynevent_check_arg_fn_t)(void *); +struct cppc_perf_caps { + u32 guaranteed_perf; + u32 highest_perf; + u32 nominal_perf; + u32 lowest_perf; + u32 lowest_nonlinear_perf; + u32 lowest_freq; + u32 nominal_freq; + u32 energy_perf; + bool auto_sel; +}; -struct dynevent_arg_pair { - const char *lhs; - const char *rhs; - char operator; - char separator; +struct cpufreq_freqs { + struct cpufreq_policy *policy; + unsigned int old; + unsigned int new; + u8 flags; }; -struct vm_special_mapping { +struct lg4ff_alternate_mode { + const u16 product_id; + const char *tag; const char *name; - struct page **pages; - vm_fault_t (*fault)(const struct vm_special_mapping *, struct vm_area_struct *, struct vm_fault *); - int (*mremap)(const struct vm_special_mapping *, struct vm_area_struct *); }; -struct xol_area { - wait_queue_head_t wq; - atomic_t slot_count; - unsigned long *bitmap; - struct vm_special_mapping xol_mapping; - struct page *pages[2]; - unsigned long vaddr; +struct lg4ff_wheel_ident_info { + const u32 modes; + const u16 mask; + const u16 result; + const u16 real_product_id; }; -struct uprobe_consumer; - -struct uprobe { - struct rb_node rb_node; - refcount_t ref; - struct rw_semaphore register_rwsem; - struct rw_semaphore consumer_rwsem; - struct list_head pending_list; - struct uprobe_consumer *consumers; - struct inode *inode; - loff_t offset; - loff_t ref_ctr_offset; - unsigned long flags; - struct arch_uprobe arch; +struct lg4ff_compat_mode_switch { + const u8 cmd_count; + const u8 cmd[0]; }; -enum uprobe_filter_ctx { - UPROBE_FILTER_REGISTER = 0, - UPROBE_FILTER_UNREGISTER = 1, - UPROBE_FILTER_MMAP = 2, +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 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 lg4ff_multimode_wheel { + const u16 product_id; + const u32 alternate_modes; + const char *real_tag; + const char *real_name; }; -enum { - MM_FILEPAGES = 0, - MM_ANONPAGES = 1, - MM_SWAPENTS = 2, - MM_SHMEMPAGES = 3, - NR_MM_COUNTERS = 4, +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, }; -typedef u8 uprobe_opcode_t; - -struct delayed_uprobe { - struct list_head list; - struct uprobe *uprobe; - struct mm_struct *mm; +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 page_vma_mapped_walk { - unsigned long pfn; - unsigned long nr_pages; - unsigned long pgoff; - struct vm_area_struct *vma; - unsigned long address; - pmd_t *pmd; - pte_t *pte; - spinlock_t *ptl; - unsigned int flags; +struct lg_drv_data { + unsigned long quirks; + void *device_props; }; -struct __uprobe_key { - struct inode *inode; - loff_t offset; +struct lg4ff_device_entry { + spinlock_t report_lock; + struct hid_report *report; + struct lg4ff_wheel_data wdata; }; -struct map_info___2 { - struct map_info___2 *next; - struct mm_struct *mm; - unsigned long vaddr; +struct hiddev_usage_ref { + __u32 report_type; + __u32 report_id; + __u32 field_index; + __u32 usage_index; + __u32 usage_code; + __s32 value; }; -typedef int filler_t(struct file *, struct folio *); - -typedef void (*task_work_func_t)(struct callback_head *); +struct hiddev; -enum pgt_entry { - NORMAL_PMD = 0, - HPAGE_PMD = 1, - NORMAL_PUD = 2, - HPAGE_PUD = 3, +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; }; -typedef s32 compat_off_t; - -typedef __kernel_rwf_t rwf_t; - -typedef s64 compat_loff_t; - -enum alarmtimer_restart { - ALARMTIMER_NORESTART = 0, - ALARMTIMER_RESTART = 1, +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; }; -enum alarmtimer_type { - ALARM_REALTIME = 0, - ALARM_BOOTTIME = 1, - ALARM_NUMTYPE = 2, - ALARM_REALTIME_FREEZER = 3, - ALARM_BOOTTIME_FREEZER = 4, +struct hiddev_report_info { + __u32 report_type; + __u32 report_id; + __u32 num_fields; }; -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 hid_control_fifo { + unsigned char dir; + struct hid_report *report; + char *raw_report; }; -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 hid_output_fifo { + struct hid_report *report; + char *raw_report; }; -struct __kernel_itimerspec { - struct __kernel_timespec it_interval; - struct __kernel_timespec it_value; +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 old_itimerspec32 { - struct old_timespec32 it_interval; - struct old_timespec32 it_value; +struct hiddev_event { + unsigned int hid; + int value; }; -enum { - Opt_uid = 0, - Opt_gid = 1, - Opt_mode = 2, - Opt_ptmxmode = 3, - Opt_newinstance = 4, - Opt_max = 5, - Opt_err___2 = 6, +struct hiddev_collection_info { + __u32 index; + __u32 type; + __u32 usage; + __u32 level; }; -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 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 pts_fs_info { - struct ida allocated_ptys; - struct pts_mount_opts mount_opts; - struct super_block *sb; - struct dentry *ptmx_dentry; +struct hiddev_devinfo { + __u32 bustype; + __u32 busnum; + __u32 devnum; + __u32 ifnum; + __s16 vendor; + __s16 product; + __s16 version; + __u32 num_applications; }; -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, +struct hiddev_usage_ref_multi { + struct hiddev_usage_ref uref; + __u32 num_values; + __s32 values[1024]; }; -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; +enum snd_dma_sync_mode { + SNDRV_DMA_SYNC_CPU = 0, + SNDRV_DMA_SYNC_DEVICE = 1, }; -struct isofs_fid { - u32 block; - u16 offset; - u16 parent_offset; - u32 generation; - u32 parent_block; - u32 parent_generation; -}; +struct snd_dma_buffer; -enum nfs3_createmode { - NFS3_CREATE_UNCHECKED = 0, - NFS3_CREATE_GUARDED = 1, - NFS3_CREATE_EXCLUSIVE = 2, +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); }; -enum nfs3_ftype { - NF3NON = 0, - NF3REG = 1, - NF3DIR = 2, - NF3BLK = 3, - NF3CHR = 4, - NF3LNK = 5, - NF3SOCK = 6, - NF3FIFO = 7, - NF3BAD = 8, +struct snd_dma_device { + int type; + enum dma_data_direction dir; + bool need_sync; + struct device *dev; }; -struct nfs3_createargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; - struct iattr *sattr; - enum nfs3_createmode createmode; - __be32 verifier[2]; +struct snd_dma_buffer { + struct snd_dma_device dev; + unsigned char *area; + dma_addr_t addr; + size_t bytes; + void *private_data; }; -struct nfs3_mkdirargs { - struct nfs_fh *fh; +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; - unsigned int len; - struct iattr *sattr; }; -struct nfs3_symlinkargs { - struct nfs_fh *fromfh; - const char *fromname; - unsigned int fromlen; +struct snd_dma_sg_fallback { + bool use_dma_alloc_coherent; + size_t count; struct page **pages; - unsigned int pathlen; - struct iattr *sattr; + dma_addr_t *addrs; }; -struct nfs3_mknodargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; - enum nfs3_ftype type; - struct iattr *sattr; - dev_t rdev; -}; +struct azx; -struct nfs3_diropres { - struct nfs_fattr *dir_attr; - struct nfs_fh *fh; - struct nfs_fattr *fattr; -}; +struct azx_dev; -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; -}; +typedef void (*btf_trace_azx_pcm_trigger)(void *, struct azx *, struct azx_dev *, int); -struct nfs3_sattrargs { - struct nfs_fh *fh; - struct iattr *sattr; - unsigned int guard; - struct timespec64 guardtime; +struct hdac_rb { + __le32 *buf; + dma_addr_t addr; + unsigned short rp; + unsigned short wp; + int cmds[8]; + u32 res[8]; }; -struct nfs3_accessargs { - struct nfs_fh *fh; - __u32 access; -}; +struct hdac_bus_ops; -struct nfs3_accessres { - struct nfs_fattr *fattr; - __u32 access; -}; +struct hdac_ext_bus_ops; -struct nfs3_readlinkargs { - struct nfs_fh *fh; - unsigned int pgbase; - unsigned int pglen; - struct page **pages; -}; +struct hdac_device; -struct nfs3_linkargs { - struct nfs_fh *fromfh; - struct nfs_fh *tofh; - const char *toname; - unsigned int tolen; -}; +struct drm_audio_component; -struct nfs3_linkres { - struct nfs_fattr *dir_attr; - struct nfs_fattr *fattr; +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; + bool not_use_interrupts: 1; + bool access_sdnctl_in_dword: 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 nfs3_diropargs { - struct nfs_fh *fh; - const char *name; - unsigned int len; +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; }; -struct nfs3_readdirargs { - struct nfs_fh *fh; - __u64 cookie; - __be32 verf[2]; - bool plus; - unsigned int count; - struct page **pages; -}; +typedef unsigned int (*azx_get_pos_callback_t)(struct azx *, struct azx_dev *); -struct nfs3_readdirres { - struct nfs_fattr *dir_attr; - __be32 *verf; - bool plus; -}; +typedef int (*azx_get_delay_callback_t)(struct azx *, struct azx_dev *, unsigned int); -struct lock_manager { - struct list_head list; - bool block_opens; -}; +struct hda_controller_ops; -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; +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 miscdevice { - int minor; - const char *name; - const struct file_operations *fops; - struct list_head list; - struct device *parent; - struct device *this_device; - const struct attribute_group **groups; - const char *nodename; - umode_t mode; +struct 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 autofs_dev_ioctl; - -typedef int (*ioctl_fn)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *); +typedef u16 hda_nid_t; -struct args_protover { - __u32 version; +struct snd_array { + unsigned int used; + unsigned int alloced; + unsigned int elem_size; + unsigned int alloc_align; + void *list; }; -struct args_protosubver { - __u32 sub_version; -}; +struct hdac_widget_tree; -struct args_openmount { - __u32 devid; +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 args_ready { - __u32 token; +struct hdac_ext_bus_ops { + int (*hdev_attach)(struct hdac_device *); + int (*hdev_detach)(struct hdac_device *); }; -struct args_fail { - __u32 token; - __s32 status; -}; +struct drm_audio_component_ops; -struct args_setpipefd { - __s32 pipefd; -}; +struct drm_audio_component_audio_ops; -struct args_timeout { - __u64 timeout; +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 args_requester { - __u32 uid; - __u32 gid; +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 args_expire { - __u32 how; +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 args_askumount { - __u32 may_umount; -}; +struct snd_info_buffer; -struct args_in { - __u32 type; +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 args_out { - __u32 devid; - __u32 magic; -}; +struct snd_info_entry_ops; -struct args_ismountpoint { +struct snd_info_entry { + const char *name; + umode_t mode; + long size; + unsigned short content; union { - struct args_in in; - struct args_out out; - }; + 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 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]; +struct snd_info_buffer { + char *buffer; + unsigned int curr; + unsigned int size; + unsigned int len; + int stop; + int error; }; -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 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 *); }; -struct key_user { - struct rb_node node; - struct mutex cons_lock; - spinlock_t lock; - refcount_t usage; - atomic_t nkeys; - atomic_t nikeys; - kuid_t uid; - int qnkeys; - int qnbytes; +struct 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 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 snd_pcm_substream; -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 snd_compr_stream; -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 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 crypto_istat_hash { - atomic64_t hash_cnt; - atomic64_t hash_tlen; - atomic64_t err_cnt; +struct azx_dev { + struct hdac_stream core; + unsigned int irq_pending: 1; + unsigned int insufficient: 1; }; -struct crypto_shash_spawn { - struct crypto_spawn base; +struct snd_pcm_group { + spinlock_t lock; + struct mutex mutex; + struct list_head substreams; + refcount_t refs; }; -enum asn1_class { - ASN1_UNIV = 0, - ASN1_APPL = 1, - ASN1_CONT = 2, - ASN1_PRIV = 3, -}; +struct snd_pcm; -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 snd_pcm_str; -struct pkcs7_signed_info { - struct pkcs7_signed_info *next; - struct x509_certificate *signer; - unsigned int index; - bool unsupported_crypto; - bool blacklisted; - const void *msgdigest; - unsigned int msgdigest_len; - unsigned int authattrs_len; - const void *authattrs; - unsigned long aa_set; - time64_t signing_time; - struct public_key_signature *sig; -}; +struct snd_pcm_ops; -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 snd_pcm_runtime; -typedef int (*asn1_action_t)(void *, size_t, unsigned char, const void *, size_t); +struct snd_timer; -struct asn1_decoder { - const unsigned char *machine; - size_t machlen; - const asn1_action_t *actions; +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 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 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; }; -enum elv_merge { - ELEVATOR_NO_MERGE = 0, - ELEVATOR_FRONT_MERGE = 1, - ELEVATOR_BACK_MERGE = 2, - ELEVATOR_DISCARD_MERGE = 3, +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; }; -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, +typedef unsigned long snd_pcm_uframes_t; + +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)(struct snd_pcm_substream *, int, unsigned long, struct iov_iter *, 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 *); }; -enum { - BLK_MQ_NO_TAG = 4294967295, - BLK_MQ_TAG_MIN = 1, - BLK_MQ_TAG_MAX = 4294967294, +struct snd_mask { + __u32 bits[8]; }; -enum { - BLK_MQ_UNIQUE_TAG_BITS = 16, - BLK_MQ_UNIQUE_TAG_MASK = 65535, +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; }; -enum hctx_type { - HCTX_TYPE_DEFAULT = 0, - HCTX_TYPE_READ = 1, - HCTX_TYPE_POLL = 2, - HCTX_MAX_TYPES = 3, +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 elevator_type; +struct snd_pcm_audio_tstamp_config { + u32 type_requested: 4; + u32 report_delay: 1; +}; -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 snd_pcm_audio_tstamp_report { + u32 valid: 1; + u32 actual_type: 4; + u32 accuracy_report: 1; + u32 accuracy; }; -typedef unsigned int blk_insert_t; +typedef int snd_pcm_state_t; -struct blk_mq_alloc_data; +typedef long snd_pcm_sframes_t; -struct elevator_mq_ops { - int (*init_sched)(struct request_queue *, struct elevator_type *); - void (*exit_sched)(struct elevator_queue *); - int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int); - void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int); - void (*depth_updated)(struct blk_mq_hw_ctx *); - bool (*allow_merge)(struct request_queue *, struct request *, struct bio *); - bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int); - int (*request_merge)(struct request_queue *, struct request **, struct bio *); - void (*request_merged)(struct request_queue *, struct request *, enum elv_merge); - void (*requests_merged)(struct request_queue *, struct request *, struct request *); - void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *); - void (*prepare_request)(struct request *); - void (*finish_request)(struct request *); - void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, blk_insert_t); - struct request * (*dispatch_request)(struct blk_mq_hw_ctx *); - bool (*has_work)(struct blk_mq_hw_ctx *); - void (*completed_request)(struct request *, u64); - void (*requeue_request)(struct request *); - struct request * (*former_request)(struct request_queue *, struct request *); - struct request * (*next_request)(struct request_queue *, struct request *); - void (*init_icq)(struct io_cq *); - void (*exit_icq)(struct io_cq *); -}; +typedef int snd_pcm_access_t; -struct elv_fs_entry; +typedef int snd_pcm_format_t; -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; -}; +typedef int snd_pcm_subformat_t; -struct blk_mq_ctxs { - struct kobject kobj; - struct blk_mq_ctx __attribute__((btf_type_tag("percpu"))) *queue_ctx; +union snd_pcm_sync_id { + unsigned char id[16]; + unsigned short id16[8]; + unsigned int id32[4]; }; -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 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 elv_fs_entry { - struct attribute attr; - ssize_t (*show)(struct elevator_queue *, char *); - ssize_t (*store)(struct elevator_queue *, const char *, size_t); +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; }; -typedef bool busy_tag_iter_fn(struct request *, void *); +struct snd_pcm_mmap_status; -typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); +struct snd_pcm_mmap_control; -struct bt_iter_data { - struct blk_mq_hw_ctx *hctx; - struct request_queue *q; - busy_tag_iter_fn *fn; - void *data; - bool reserved; +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; }; -struct bt_tags_iter_data { - struct blk_mq_tags *tags; - busy_tag_iter_fn *fn; - void *data; - unsigned int flags; +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 io_sync { - struct file *file; - loff_t len; - loff_t off; - int flags; - int mode; +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; }; -enum devm_ioremap_type { - DEVM_IOREMAP = 0, - DEVM_IOREMAP_UC = 1, - DEVM_IOREMAP_WC = 2, - DEVM_IOREMAP_NP = 3, +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 pcim_iomap_devres { - void *table[6]; +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 { + SNDRV_PCM_STREAM_PLAYBACK = 0, + SNDRV_PCM_STREAM_CAPTURE = 1, + SNDRV_PCM_STREAM_LAST = 1, }; -struct arch_io_reserve_memtype_wc_devres { - resource_size_t start; - resource_size_t size; +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 support_mode { - ALLOW_LEGACY = 0, - DENY_LEGACY = 1, +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 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; +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, }; -struct msix_entry { - u32 vector; - u16 entry; +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, }; -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 *); +enum clocksource_ids { + CSID_GENERIC = 0, + CSID_ARM_ARCH_COUNTER = 1, + CSID_MAX = 2, }; -struct find_child_walk_data { - struct acpi_device *adev; - u64 address; - int score; - bool check_sta; - bool check_children; +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 u32 (*acpi_osd_handler)(void *); +struct hda_codec; -typedef acpi_status (*acpi_gpe_callback)(struct acpi_gpe_xrupt_info *, struct acpi_gpe_block_info *, void *); +struct hda_pcm; -struct acpi_gpe_device_info { - u32 index; - u32 next_block_base_index; - acpi_status status; - struct acpi_namespace_node *gpe_device; +struct azx_pcm { + struct azx *chip; + struct snd_pcm *pcm; + struct hda_codec *codec; + struct hda_pcm *info; + struct list_head list; }; -enum acpi_return_package_types { - ACPI_PTYPE1_FIXED = 1, - ACPI_PTYPE1_VAR = 2, - ACPI_PTYPE1_OPTION = 3, - ACPI_PTYPE2 = 4, - ACPI_PTYPE2_COUNT = 5, - ACPI_PTYPE2_PKG_COUNT = 6, - ACPI_PTYPE2_FIXED = 7, - ACPI_PTYPE2_MIN = 8, - ACPI_PTYPE2_REV_FIXED = 9, - ACPI_PTYPE2_FIX_VAR = 10, - ACPI_PTYPE2_VAR_VAR = 11, - ACPI_PTYPE2_UUID_PAIR = 12, - ACPI_PTYPE_CUSTOM = 13, +struct 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 throttling_tstate { - unsigned int cpu; - int target_state; -}; +struct hda_device_id; -struct acpi_processor_throttling_arg { - struct acpi_processor *pr; - int target_state; - bool force; -}; +struct hda_beep; -struct iova { - struct rb_node node; - unsigned long pfn_hi; - unsigned long pfn_lo; -}; +struct snd_hwdep; -struct iova_rcache; +struct hda_fixup; -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; +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; }; -enum iommu_dma_cookie_type { - IOMMU_DMA_IOVA_COOKIE = 0, - IOMMU_DMA_MSI_COOKIE = 1, +struct hda_device_id { + __u32 vendor_id; + __u32 rev_id; + __u8 api_version; + const char *name; + unsigned long driver_data; }; -struct iova_fq; +struct snd_hwdep_dsp_status; -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 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 iova_fq_entry { - unsigned long iova_pfn; - unsigned long pages; - struct list_head freelist; - u64 counter; +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 iova_fq { - struct iova_fq_entry entries[256]; - unsigned int head; - unsigned int tail; - spinlock_t lock; +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]; }; -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 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; }; -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 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 iommu_dma_msi_page { - struct list_head list; - dma_addr_t iova; - phys_addr_t phys; +struct hda_pintbl { + hda_nid_t nid; + u32 val; }; -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 hda_verb { + hda_nid_t nid; + u32 verb; + u32 param; }; -struct dma_sgt_handle { - struct sg_table sgt; - struct page **pages; +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 *); }; -typedef int (*list_cmp_func_t)(void *, const struct list_head *, const struct list_head *); +struct snd_pcm_chmap_elem; -struct pci_p2pdma_map_state { - struct dev_pagemap *pgmap; - int map; - u64 bus_off; +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 ttm_validate_buffer { - struct list_head head; - struct ttm_buffer_object *bo; - unsigned int num_shared; +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 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 snd_pcm_chmap_elem { + unsigned char channels; + unsigned char map[15]; }; -enum ack_type { - ACK_CLEAR = 0, - ACK_SET = 1, +struct trace_event_raw_azx_pcm_trigger { + struct trace_entry ent; + int card; + int idx; + int cmd; + char __data[0]; }; -struct drm_i915_mocs_entry { - u32 control_value; - u16 l3cc_value; - u16 used; +struct trace_event_raw_azx_get_position { + struct trace_entry ent; + int card; + int idx; + unsigned int pos; + unsigned int delay; + char __data[0]; }; -enum { - HAS_GLOBAL_MOCS = 1, - HAS_ENGINE_MOCS = 2, - HAS_RENDER_L3CC = 4, +struct trace_event_raw_azx_pcm { + struct trace_entry ent; + unsigned char stream_tag; + char __data[0]; }; -enum i915_mocs_table_index { - I915_MOCS_UNCACHED = 0, - I915_MOCS_PTE = 1, - I915_MOCS_CACHED = 2, +typedef int snd_pcm_hw_param_t; + +struct hda_spdif_out { + hda_nid_t nid; + unsigned int status; + unsigned short ctls; }; -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 clocksource; + +struct system_counterval_t { + u64 cycles; + struct clocksource *cs; }; -struct guc_log_section { - u32 max; - u32 flag; - u32 default_val; +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; }; -enum { - GUC_LOG_SECTIONS_CRASH = 0, - GUC_LOG_SECTIONS_DEBUG = 1, - GUC_LOG_SECTIONS_CAPTURE = 2, - GUC_LOG_SECTIONS_LIMIT = 3, +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; }; -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 trace_event_data_offsets_azx_pcm_trigger {}; -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 trace_event_data_offsets_azx_get_position {}; -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 trace_event_data_offsets_azx_pcm {}; + +struct netdev_name_node { + struct hlist_node hlist; + struct list_head list; + struct net_device *dev; + const char *name; }; -enum dsb_id { - INVALID_DSB = -1, - DSB1 = 0, - DSB2 = 1, - DSB3 = 2, - MAX_DSB_PER_PIPE = 3, +struct ib_device; + +struct devlink; + +enum devlink_port_type { + DEVLINK_PORT_TYPE_NOTSET = 0, + DEVLINK_PORT_TYPE_AUTO = 1, + DEVLINK_PORT_TYPE_ETH = 2, + DEVLINK_PORT_TYPE_IB = 3, }; -struct intel_dsb { - enum dsb_id id; - u32 *cmd_buf; - struct i915_vma *vma; - struct intel_crtc *crtc; - unsigned int size; - unsigned int free_pos; - unsigned int ins_start_offset; +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 intel_tc_phy_ops { - enum intel_display_power_domain (*cold_off_domain)(struct intel_tc_port *); - u32 (*hpd_live_status)(struct intel_tc_port *); - bool (*is_ready)(struct intel_tc_port *); - bool (*is_owned)(struct intel_tc_port *); - void (*get_hw_state)(struct intel_tc_port *); - bool (*connect)(struct intel_tc_port *, int); - void (*disconnect)(struct intel_tc_port *); - void (*init)(struct intel_tc_port *); +struct devlink_port_phys_attrs { + u32 port_number; + u32 split_subport_number; }; -enum tc_port_mode { - TC_PORT_DISCONNECTED = 0, - TC_PORT_TBT_ALT = 1, - TC_PORT_DP_ALT = 2, - TC_PORT_LEGACY = 3, +struct devlink_port_pci_pf_attrs { + u32 controller; + u16 pf; + u8 external: 1; }; -enum phy_fia { - FIA1 = 0, - FIA2 = 1, - FIA3 = 2, +struct devlink_port_pci_vf_attrs { + u32 controller; + u16 pf; + u16 vf; + u8 external: 1; }; -struct intel_tc_port { - struct intel_digital_port *dig_port; - const struct intel_tc_phy_ops *phy_ops; - struct mutex lock; - intel_wakeref_t lock_wakeref; - struct delayed_work disconnect_phy_work; - struct delayed_work link_reset_work; - int link_refcount; - bool legacy_port: 1; - char port_name[8]; - enum tc_port_mode mode; - enum tc_port_mode init_mode; - enum phy_fia phy_fia; - u8 phy_fia_idx; +struct devlink_port_pci_sf_attrs { + u32 controller; + u32 sf; + u16 pf; + u8 external: 1; }; -struct hsw_ddi_buf_trans { - u32 trans1; - u32 trans2; - u8 i_boost; +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 bxt_ddi_buf_trans { - u8 margin; - u8 scale; - u8 enable; - u8 deemphasis; +struct devlink_linecard; + +struct devlink_port_ops; + +struct devlink_rate; + +struct devlink_port { + struct list_head list; + struct list_head region_list; + struct devlink *devlink; + const struct devlink_port_ops *ops; + unsigned int index; + spinlock_t type_lock; + enum devlink_port_type type; + enum devlink_port_type desired_type; + union { + struct { + struct net_device *netdev; + int ifindex; + char ifname[16]; + } type_eth; + struct { + struct ib_device *ibdev; + } type_ib; + }; + struct devlink_port_attrs attrs; + u8 attrs_set: 1; + u8 switch_port: 1; + u8 registered: 1; + u8 initialized: 1; + struct delayed_work type_warn_dw; + struct list_head reporter_list; + struct devlink_rate *devlink_rate; + struct devlink_linecard *linecard; + u32 rel_index; }; -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; +enum devlink_port_fn_state { + DEVLINK_PORT_FN_STATE_INACTIVE = 0, + DEVLINK_PORT_FN_STATE_ACTIVE = 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; +enum devlink_port_fn_opstate { + DEVLINK_PORT_FN_OPSTATE_DETACHED = 0, + DEVLINK_PORT_FN_OPSTATE_ATTACHED = 1, }; -struct tgl_dkl_phy_ddi_buf_trans { - u8 vswing; - u8 preshoot; - u8 de_emphasis; +struct devlink_port_ops { + int (*port_split)(struct devlink *, struct devlink_port *, unsigned int, struct netlink_ext_ack *); + int (*port_unsplit)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_type_set)(struct devlink_port *, enum devlink_port_type); + int (*port_del)(struct devlink *, struct devlink_port *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_get)(struct devlink_port *, u8 *, int *, struct netlink_ext_ack *); + int (*port_fn_hw_addr_set)(struct devlink_port *, const u8 *, int, struct netlink_ext_ack *); + int (*port_fn_roce_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_roce_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_migratable_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_migratable_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_state_get)(struct devlink_port *, enum devlink_port_fn_state *, enum devlink_port_fn_opstate *, struct netlink_ext_ack *); + int (*port_fn_state_set)(struct devlink_port *, enum devlink_port_fn_state, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_crypto_set)(struct devlink_port *, bool, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_get)(struct devlink_port *, bool *, struct netlink_ext_ack *); + int (*port_fn_ipsec_packet_set)(struct devlink_port *, bool, struct netlink_ext_ack *); }; -struct dg2_snps_phy_buf_trans { - u8 vswing; - u8 pre_cursor; - u8 post_cursor; +enum devlink_rate_type { + DEVLINK_RATE_TYPE_LEAF = 0, + DEVLINK_RATE_TYPE_NODE = 1, }; -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 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; }; -typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t); +typedef int (*rtnl_doit_func)(struct sk_buff *, struct nlmsghdr *, struct netlink_ext_ack *); -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]; +typedef int (*rtnl_dumpit_func)(struct sk_buff *, struct netlink_callback *); + +struct rtnl_link { + rtnl_doit_func doit; + rtnl_dumpit_func dumpit; + struct module *owner; + unsigned int flags; + struct callback_head rcu; }; -struct trace_event_data_offsets_devres { - u32 devname; +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, }; -struct ata_acpi_hotplug_context { - struct acpi_hotplug_context hp; - union { - struct ata_port *ap; - struct ata_device *dev; - } data; +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 ata_acpi_gtf { - u8 tf[7]; +enum { + IFLA_UNSPEC = 0, + IFLA_ADDRESS = 1, + IFLA_BROADCAST = 2, + IFLA_IFNAME = 3, + IFLA_MTU = 4, + IFLA_LINK = 5, + IFLA_QDISC = 6, + IFLA_STATS = 7, + IFLA_COST = 8, + IFLA_PRIORITY = 9, + IFLA_MASTER = 10, + IFLA_WIRELESS = 11, + IFLA_PROTINFO = 12, + IFLA_TXQLEN = 13, + IFLA_MAP = 14, + IFLA_WEIGHT = 15, + IFLA_OPERSTATE = 16, + IFLA_LINKMODE = 17, + IFLA_LINKINFO = 18, + IFLA_NET_NS_PID = 19, + IFLA_IFALIAS = 20, + IFLA_NUM_VF = 21, + IFLA_VFINFO_LIST = 22, + IFLA_STATS64 = 23, + IFLA_VF_PORTS = 24, + IFLA_PORT_SELF = 25, + IFLA_AF_SPEC = 26, + IFLA_GROUP = 27, + IFLA_NET_NS_FD = 28, + IFLA_EXT_MASK = 29, + IFLA_PROMISCUITY = 30, + IFLA_NUM_TX_QUEUES = 31, + IFLA_NUM_RX_QUEUES = 32, + IFLA_CARRIER = 33, + IFLA_PHYS_PORT_ID = 34, + IFLA_CARRIER_CHANGES = 35, + IFLA_PHYS_SWITCH_ID = 36, + IFLA_LINK_NETNSID = 37, + IFLA_PHYS_PORT_NAME = 38, + IFLA_PROTO_DOWN = 39, + IFLA_GSO_MAX_SEGS = 40, + IFLA_GSO_MAX_SIZE = 41, + IFLA_PAD = 42, + IFLA_XDP = 43, + IFLA_EVENT = 44, + IFLA_NEW_NETNSID = 45, + IFLA_IF_NETNSID = 46, + IFLA_TARGET_NETNSID = 46, + IFLA_CARRIER_UP_COUNT = 47, + IFLA_CARRIER_DOWN_COUNT = 48, + IFLA_NEW_IFINDEX = 49, + IFLA_MIN_MTU = 50, + IFLA_MAX_MTU = 51, + IFLA_PROP_LIST = 52, + IFLA_ALT_IFNAME = 53, + IFLA_PERM_ADDRESS = 54, + IFLA_PROTO_DOWN_REASON = 55, + IFLA_PARENT_DEV_NAME = 56, + IFLA_PARENT_DEV_BUS_NAME = 57, + IFLA_GRO_MAX_SIZE = 58, + IFLA_TSO_MAX_SIZE = 59, + IFLA_TSO_MAX_SEGS = 60, + IFLA_ALLMULTI = 61, + IFLA_DEVLINK_PORT = 62, + IFLA_GSO_IPV4_MAX_SIZE = 63, + IFLA_GRO_IPV4_MAX_SIZE = 64, + IFLA_DPLL_PIN = 65, + __IFLA_MAX = 66, }; -enum 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 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 e1000_phy_type { - e1000_phy_unknown = 0, - e1000_phy_none = 1, - e1000_phy_m88___2 = 2, - e1000_phy_igp___2 = 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 { + 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 e1000_1000t_rx_status { - e1000_1000t_rx_status_not_ok___2 = 0, - e1000_1000t_rx_status_ok___2 = 1, - e1000_1000t_rx_status_undefined___2 = 255, +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 e1000_ms_type { - e1000_ms_hw_default___2 = 0, - e1000_ms_force_master___2 = 1, - e1000_ms_force_slave___2 = 2, - e1000_ms_auto___2 = 3, +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 e1000_rev_polarity { - e1000_rev_polarity_normal___2 = 0, - e1000_rev_polarity_reversed___2 = 1, - e1000_rev_polarity_undefined___2 = 255, +enum { + IFLA_BRPORT_UNSPEC = 0, + IFLA_BRPORT_STATE = 1, + IFLA_BRPORT_PRIORITY = 2, + IFLA_BRPORT_COST = 3, + IFLA_BRPORT_MODE = 4, + IFLA_BRPORT_GUARD = 5, + IFLA_BRPORT_PROTECT = 6, + IFLA_BRPORT_FAST_LEAVE = 7, + IFLA_BRPORT_LEARNING = 8, + IFLA_BRPORT_UNICAST_FLOOD = 9, + IFLA_BRPORT_PROXYARP = 10, + IFLA_BRPORT_LEARNING_SYNC = 11, + IFLA_BRPORT_PROXYARP_WIFI = 12, + IFLA_BRPORT_ROOT_ID = 13, + IFLA_BRPORT_BRIDGE_ID = 14, + IFLA_BRPORT_DESIGNATED_PORT = 15, + IFLA_BRPORT_DESIGNATED_COST = 16, + IFLA_BRPORT_ID = 17, + IFLA_BRPORT_NO = 18, + IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19, + IFLA_BRPORT_CONFIG_PENDING = 20, + IFLA_BRPORT_MESSAGE_AGE_TIMER = 21, + IFLA_BRPORT_FORWARD_DELAY_TIMER = 22, + IFLA_BRPORT_HOLD_TIMER = 23, + IFLA_BRPORT_FLUSH = 24, + IFLA_BRPORT_MULTICAST_ROUTER = 25, + IFLA_BRPORT_PAD = 26, + IFLA_BRPORT_MCAST_FLOOD = 27, + IFLA_BRPORT_MCAST_TO_UCAST = 28, + IFLA_BRPORT_VLAN_TUNNEL = 29, + IFLA_BRPORT_BCAST_FLOOD = 30, + IFLA_BRPORT_GROUP_FWD_MASK = 31, + IFLA_BRPORT_NEIGH_SUPPRESS = 32, + IFLA_BRPORT_ISOLATED = 33, + IFLA_BRPORT_BACKUP_PORT = 34, + IFLA_BRPORT_MRP_RING_OPEN = 35, + IFLA_BRPORT_MRP_IN_OPEN = 36, + IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37, + IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38, + IFLA_BRPORT_LOCKED = 39, + IFLA_BRPORT_MAB = 40, + IFLA_BRPORT_MCAST_N_GROUPS = 41, + IFLA_BRPORT_MCAST_MAX_GROUPS = 42, + IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 43, + IFLA_BRPORT_BACKUP_NHID = 44, + __IFLA_BRPORT_MAX = 45, }; -enum e1000_smart_speed { - e1000_smart_speed_default___2 = 0, - e1000_smart_speed_on___2 = 1, - e1000_smart_speed_off___2 = 2, +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 e1000_media_type { - e1000_media_type_unknown = 0, - e1000_media_type_copper___2 = 1, - e1000_media_type_fiber___2 = 2, - e1000_media_type_internal_serdes___2 = 3, - e1000_num_media_types___2 = 4, +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 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 rtnl_link_flags { + RTNL_FLAG_DOIT_UNLOCKED = 1, + RTNL_FLAG_BULK_DEL_SUPPORTED = 2, }; -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 rtnl_kinds { + RTNL_KIND_NEW = 0, + RTNL_KIND_DEL = 1, + RTNL_KIND_GET = 2, + RTNL_KIND_SET = 3, }; -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 { + 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 e1000_nvm_override { - e1000_nvm_override_none = 0, - e1000_nvm_override_spi_small = 1, - e1000_nvm_override_spi_large = 2, +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 e1000_bus_width { - e1000_bus_width_unknown___2 = 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___2 = 9, - e1000_bus_width_64___2 = 10, - e1000_bus_width_reserved___2 = 11, +enum { + IFLA_VF_INFO_UNSPEC = 0, + IFLA_VF_INFO = 1, + __IFLA_VF_INFO_MAX = 2, }; -enum e1000_ulp_state { - e1000_ulp_state_unknown = 0, - e1000_ulp_state_off = 1, - e1000_ulp_state_on = 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 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, +enum { + IFLA_VF_VLAN_INFO_UNSPEC = 0, + IFLA_VF_VLAN_INFO = 1, + __IFLA_VF_VLAN_INFO_MAX = 2, }; -struct e1000_dev_spec_82571 { - bool laa_is_present; - u32 smb_counter; +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, }; -struct e1000_dev_spec_80003es2lan { - bool mdic_wa_enable; +enum { + IFLA_VF_PORT_UNSPEC = 0, + IFLA_VF_PORT = 1, + __IFLA_VF_PORT_MAX = 2, }; -struct e1000_shadow_ram___2 { - u16 value; - bool modified; +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, }; -struct e1000_dev_spec_ich8lan { - bool kmrn_lock_loss_workaround_enabled; - struct e1000_shadow_ram___2 shadow_ram[2048]; - bool nvm_k1_enabled; - bool eee_disable; - u16 eee_lp_ability; - enum e1000_ulp_state ulp_state; +enum { + XDP_ATTACHED_NONE = 0, + XDP_ATTACHED_DRV = 1, + XDP_ATTACHED_SKB = 2, + XDP_ATTACHED_HW = 3, + XDP_ATTACHED_MULTI = 4, }; -struct e1000_hw___2; +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, +}; -struct e1000_mac_operations { - s32 (*id_led_init)(struct e1000_hw___2 *); - s32 (*blink_led)(struct e1000_hw___2 *); - bool (*check_mng_mode)(struct e1000_hw___2 *); - s32 (*check_for_link)(struct e1000_hw___2 *); - s32 (*cleanup_led)(struct e1000_hw___2 *); - void (*clear_hw_cntrs)(struct e1000_hw___2 *); - void (*clear_vfta)(struct e1000_hw___2 *); - s32 (*get_bus_info)(struct e1000_hw___2 *); - void (*set_lan_id)(struct e1000_hw___2 *); - s32 (*get_link_up_info)(struct e1000_hw___2 *, u16 *, u16 *); - s32 (*led_on)(struct e1000_hw___2 *); - s32 (*led_off)(struct e1000_hw___2 *); - void (*update_mc_addr_list)(struct e1000_hw___2 *, u8 *, u32); - s32 (*reset_hw)(struct e1000_hw___2 *); - s32 (*init_hw)(struct e1000_hw___2 *); - s32 (*setup_link)(struct e1000_hw___2 *); - s32 (*setup_physical_interface)(struct e1000_hw___2 *); - s32 (*setup_led)(struct e1000_hw___2 *); - void (*write_vfta)(struct e1000_hw___2 *, u32, u32); - void (*config_collision_dist)(struct e1000_hw___2 *); - int (*rar_set)(struct e1000_hw___2 *, u8 *, u32); - s32 (*read_mac_addr)(struct e1000_hw___2 *); - u32 (*rar_get_count)(struct e1000_hw___2 *); +enum bpf_xdp_mode { + XDP_MODE_SKB = 0, + XDP_MODE_DRV = 1, + XDP_MODE_HW = 2, + __MAX_XDP_MODE = 3, }; -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; +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, }; -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; +enum netdev_offload_xstats_type { + NETDEV_OFFLOAD_XSTATS_TYPE_L3 = 1, }; -struct e1000_phy_operations { - s32 (*acquire)(struct e1000_hw___2 *); - s32 (*cfg_on_link_up)(struct e1000_hw___2 *); - s32 (*check_polarity)(struct e1000_hw___2 *); - s32 (*check_reset_block)(struct e1000_hw___2 *); - s32 (*commit)(struct e1000_hw___2 *); - s32 (*force_speed_duplex)(struct e1000_hw___2 *); - s32 (*get_cfg_done)(struct e1000_hw___2 *); - s32 (*get_cable_length)(struct e1000_hw___2 *); - s32 (*get_info)(struct e1000_hw___2 *); - s32 (*set_page)(struct e1000_hw___2 *, u16); - s32 (*read_reg)(struct e1000_hw___2 *, u32, u16 *); - s32 (*read_reg_locked)(struct e1000_hw___2 *, u32, u16 *); - s32 (*read_reg_page)(struct e1000_hw___2 *, u32, u16 *); - void (*release)(struct e1000_hw___2 *); - s32 (*reset)(struct e1000_hw___2 *); - s32 (*set_d0_lplu_state)(struct e1000_hw___2 *, bool); - s32 (*set_d3_lplu_state)(struct e1000_hw___2 *, bool); - s32 (*write_reg)(struct e1000_hw___2 *, u32, u16); - s32 (*write_reg_locked)(struct e1000_hw___2 *, u32, u16); - s32 (*write_reg_page)(struct e1000_hw___2 *, u32, u16); - void (*power_up)(struct e1000_hw___2 *); - void (*power_down)(struct e1000_hw___2 *); +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, }; -struct e1000_phy_info___2 { - 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; +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 e1000_nvm_operations { - s32 (*acquire)(struct e1000_hw___2 *); - s32 (*read)(struct e1000_hw___2 *, u16, u16, u16 *); - void (*release)(struct e1000_hw___2 *); - void (*reload)(struct e1000_hw___2 *); - s32 (*update)(struct e1000_hw___2 *); - s32 (*valid_led_default)(struct e1000_hw___2 *, u16 *); - s32 (*validate)(struct e1000_hw___2 *); - s32 (*write)(struct e1000_hw___2 *, u16, u16, u16 *); +enum { + MDBA_GET_ENTRY_UNSPEC = 0, + MDBA_GET_ENTRY = 1, + MDBA_GET_ENTRY_ATTRS = 2, + __MDBA_GET_ENTRY_MAX = 3, }; -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; +enum { + MDBA_SET_ENTRY_UNSPEC = 0, + MDBA_SET_ENTRY = 1, + MDBA_SET_ENTRY_ATTRS = 2, + __MDBA_SET_ENTRY_MAX = 3, }; -struct e1000_bus_info { - enum e1000_bus_width width; - u16 func; +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 *); }; -struct e1000_adapter___2; +struct rtgenmsg { + unsigned char rtgen_family; +}; -struct e1000_hw___2 { - struct e1000_adapter___2 *adapter; - void *hw_addr; - void *flash_address; - struct e1000_mac_info mac; - struct e1000_fc_info fc; - struct e1000_phy_info___2 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 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 e1000_hw_stats___2 { - u64 crcerrs; - u64 algnerrc; - u64 symerrs; - u64 rxerrc; - u64 mpc; - u64 scc; - u64 ecol; - u64 mcc; - u64 latecol; - u64 colc; - u64 dc; - u64 tncrs; - u64 sec; - u64 cexterr; - u64 rlec; - u64 xonrxc; - u64 xontxc; - u64 xoffrxc; - u64 xofftxc; - u64 fcruc; - u64 prc64; - u64 prc127; - u64 prc255; - u64 prc511; - u64 prc1023; - u64 prc1522; - u64 gprc; - u64 bprc; - u64 mprc; - u64 gptc; - u64 gorc; - u64 gotc; - u64 rnbc; - u64 ruc; - u64 rfc; - u64 roc; - u64 rjc; - u64 mgprc; - u64 mgpdc; - u64 mgptc; - u64 tor; - u64 tot; - u64 tpr; - u64 tpt; - u64 ptc64; - u64 ptc127; - u64 ptc255; - u64 ptc511; - u64 ptc1023; - u64 ptc1522; - u64 mptc; - u64 bptc; - u64 tsctc; - u64 tsctfc; - u64 iac; - u64 icrxptc; - u64 icrxatc; - u64 ictxptc; - u64 ictxatc; - u64 ictxqec; - u64 ictxqmtc; - u64 icrxdmtc; - u64 icrxoc; +struct rtnl_offload_xstats_request_used { + bool request; + bool used; }; -struct e1000_phy_regs { - u16 bmcr; - u16 bmsr; - u16 advertise; - u16 lpa; - u16 expansion; - u16 ctrl1000; - u16 stat1000; - u16 estatus; +struct rtnl_newlink_tbs { + struct nlattr *tb[66]; + struct nlattr *attr[51]; + struct nlattr *slave_attr[45]; }; -struct e1000_buffer; +struct if_stats_msg { + __u8 family; + __u8 pad1; + __u16 pad2; + __u32 ifindex; + __u32 filter_mask; +}; -struct e1000_ring { - struct e1000_adapter___2 *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 br_port_msg { + __u8 family; + __u32 ifindex; }; -struct hwtstamp_config { - int flags; - int tx_type; - int rx_filter; +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 e1000_info; - -struct e1000_adapter___2 { - 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: 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: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - bool (*clean_rx)(struct e1000_ring *, int *, int); - void (*alloc_rx_buf)(struct e1000_ring *, int, gfp_t); - struct e1000_ring *rx_ring; - u32 rx_int_delay; - u32 rx_abs_int_delay; - u64 hw_csum_err; - u64 hw_csum_good; - u64 rx_hdr_split; - u32 gorc; - u64 gorc_old; - u32 alloc_rx_buff_failed; - u32 rx_dma_failed; - u32 rx_hwtstamp_cleared; - unsigned int rx_ps_pages; - u16 rx_ps_bsize0; - u32 max_frame_size; - u32 min_frame_size; - struct net_device *netdev; - struct pci_dev *pdev; - struct e1000_hw___2 hw; - spinlock_t stats64_lock; - struct e1000_hw_stats___2 stats; - struct e1000_phy_info___2 phy_info; - struct e1000_phy_stats phy_stats; - struct e1000_phy_regs phy_regs; - struct e1000_ring test_tx_ring; - struct e1000_ring test_rx_ring; - u32 test_icr; - u32 msg_enable; - unsigned int num_vectors; - struct msix_entry *msix_entries; - int int_mode; - u32 eiac_mask; - u32 eeprom_wol; - u32 wol; - u32 pba; - u32 max_hw_frame_size; - bool fc_autoneg; - unsigned int flags; - unsigned int flags2; - struct work_struct downshift_task; - struct work_struct update_phy_task; - struct work_struct print_hang_task; - int phy_hang_count; - u16 tx_ring_count; - u16 rx_ring_count; - struct hwtstamp_config hwtstamp_config; - struct delayed_work systim_overflow_work; - struct sk_buff *tx_hwtstamp_skb; - unsigned long tx_hwtstamp_start; - struct work_struct tx_hwtstamp_work; - spinlock_t systim_lock; - struct cyclecounter cc; - struct timecounter tc; - struct ptp_clock *ptp_clock; - struct ptp_clock_info ptp_clock_info; - struct pm_qos_request pm_qos_req; - long ptp_delta; - u16 eee_advert; - long: 64; - long: 64; - long: 64; - long: 64; +struct ifla_vf_mac { + __u32 vf; + __u8 mac[32]; }; -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___2 *); - const struct e1000_mac_operations *mac_ops; - const struct e1000_phy_operations *phy_ops; - const struct e1000_nvm_operations *nvm_ops; +struct ifla_vf_vlan { + __u32 vf; + __u32 vlan; + __u32 qos; }; -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 ifla_vf_vlan_info { + __u32 vf; + __u32 vlan; + __u32 qos; + __be16 vlan_proto; }; -struct e1000_ps_page { - struct page *page; - u64 dma; +struct ifla_vf_tx_rate { + __u32 vf; + __u32 rate; }; -struct e1000_host_mng_command_header { - u8 command_id; - u8 checksum; - u16 reserved1; - u16 reserved2; - u16 command_length; +struct ifla_vf_rate { + __u32 vf; + __u32 min_tx_rate; + __u32 max_tx_rate; }; -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 ifla_vf_spoofchk { + __u32 vf; + __u32 setting; }; -struct xhci_slot_ctx { - __le32 dev_info; - __le32 dev_info2; - __le32 tt_info; - __le32 dev_state; - __le32 reserved[4]; +struct ifla_vf_link_state { + __u32 vf; + __u32 link_state; }; -struct s3_save { - u32 command; - u32 dev_nt; - u64 dcbaa_ptr; - u32 config_reg; +struct ifla_vf_rss_query_en { + __u32 vf; + __u32 setting; }; -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 ifla_vf_trust { + __u32 vf; + __u32 setting; }; -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 rtnl_stats_dump_filters { + u32 mask[6]; }; -struct xhci_cap_regs; +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 xhci_op_regs; +struct rtnl_mdb_dump_ctx { + long idx; +}; -struct xhci_run_regs; +struct rtnl_link_ifmap { + __u64 mem_start; + __u64 mem_end; + __u64 base_addr; + __u16 irq; + __u8 dma; + __u8 port; +}; -struct xhci_doorbell_array; +struct ifla_vf_broadcast { + __u8 broadcast[32]; +}; -struct xhci_device_context_array; +struct br_mdb_entry { + __u32 ifindex; + __u8 state; + __u8 flags; + __u16 vid; + struct { + union { + __be32 ip4; + struct in6_addr ip6; + unsigned char mac_addr[6]; + } u; + __be16 proto; + } addr; +}; -struct xhci_interrupter; +union bpf_iter_link_info; -struct xhci_ring; +typedef int (*bpf_iter_attach_target_t)(struct bpf_prog *, union bpf_iter_link_info *, struct bpf_iter_aux_info *); -struct xhci_command; +typedef void (*bpf_iter_detach_target_t)(struct bpf_iter_aux_info *); -struct xhci_scratchpad; +typedef void (*bpf_iter_show_fdinfo_t)(const struct bpf_iter_aux_info *, struct seq_file *); -struct xhci_virt_device; +struct bpf_link_info; -struct xhci_root_port_bw_info; +typedef int (*bpf_iter_fill_link_info_t)(const struct bpf_iter_aux_info *, struct bpf_link_info *); -struct xhci_port_cap; +typedef const struct bpf_func_proto * (*bpf_iter_get_func_proto_t)(enum bpf_func_id, const struct bpf_prog *); -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 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; }; -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; +union bpf_iter_link_info { + struct { + __u32 map_fd; + } map; + struct { + enum bpf_cgroup_iter_order order; + __u32 cgroup_fd; + __u64 cgroup_id; + } cgroup; + struct { + __u32 tid; + __u32 pid; + __u32 pid_fd; + } task; }; -struct 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 bpf_link_info { + __u32 type; + __u32 id; + __u32 prog_id; + union { + struct { + __u64 tp_name; + __u32 tp_name_len; + } raw_tracepoint; + struct { + __u32 attach_type; + __u32 target_obj_id; + __u32 target_btf_id; + } tracing; + struct { + __u64 cgroup_id; + __u32 attach_type; + } cgroup; + struct { + __u64 target_name; + __u32 target_name_len; + union { + struct { + __u32 map_id; + } map; + }; + union { + struct { + __u64 cgroup_id; + __u32 order; + } cgroup; + struct { + __u32 tid; + __u32 pid; + } task; + }; + } iter; + struct { + __u32 netns_ino; + __u32 attach_type; + } netns; + struct { + __u32 ifindex; + } xdp; + struct { + __u32 map_id; + } struct_ops; + struct { + __u32 pf; + __u32 hooknum; + __s32 priority; + __u32 flags; + } netfilter; + struct { + __u64 addrs; + __u32 count; + __u32 flags; + __u64 missed; + } kprobe_multi; + struct { + __u32 type; + union { + struct { + __u64 file_name; + __u32 name_len; + __u32 offset; + } uprobe; + struct { + __u64 func_name; + __u32 name_len; + __u32 offset; + __u64 addr; + __u64 missed; + } kprobe; + struct { + __u64 tp_name; + __u32 name_len; + } tracepoint; + struct { + __u64 config; + __u32 type; + } event; + }; + } perf_event; + struct { + __u32 ifindex; + __u32 attach_type; + } tcx; + struct { + __u32 ifindex; + __u32 attach_type; + } netkit; + }; }; -struct xhci_intr_reg { - __le32 irq_pending; - __le32 irq_control; - __le32 erst_size; - __le32 rsvd; - __le64 erst_base; - __le64 erst_dequeue; +enum { + SK_DIAG_BPF_STORAGE_REQ_NONE = 0, + SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, + __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, }; -struct xhci_run_regs { - __le32 microframe_index; - __le32 rsvd[7]; - struct xhci_intr_reg ir_set[128]; +enum { + SK_DIAG_BPF_STORAGE_REP_NONE = 0, + SK_DIAG_BPF_STORAGE = 1, + __SK_DIAG_BPF_STORAGE_REP_MAX = 2, }; -struct xhci_doorbell_array { - __le32 doorbell[256]; +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, }; -struct xhci_device_context_array { - __le64 dev_context_ptrs[256]; - dma_addr_t dma; +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 xhci_erst_entry; +typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t); -struct xhci_erst { - struct xhci_erst_entry *entries; - unsigned int num_entries; - dma_addr_t erst_dma_addr; - unsigned int erst_size; -}; +typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *); -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; -}; +typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t); -struct xhci_segment; +typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *); -union xhci_trb; +struct bpf_sk_storage_diag { + u32 nr_maps; + struct bpf_map *maps[0]; +}; -struct xhci_ring { - struct xhci_segment *first_seg; - struct xhci_segment *last_seg; - union xhci_trb *enqueue; - struct xhci_segment *enq_seg; - union xhci_trb *dequeue; - struct xhci_segment *deq_seg; - struct list_head td_list; - u32 cycle_state; - unsigned int stream_id; - unsigned int num_segs; - unsigned int num_trbs_free; - unsigned int bounce_buf_len; - enum xhci_ring_type type; - bool last_td_was_short; - struct xarray *trb_address_map; +struct bpf_iter_seq_sk_storage_map_info { + struct bpf_map *map; + unsigned int bucket_id; + unsigned int skip_elems; }; -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 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 xhci_link_trb { - __le64 segment_ptr; - __le32 intr_target; - __le32 control; +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 xhci_transfer_event { - __le64 buffer; - __le32 transfer_len; - __le32 flags; +struct linkmodes_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; + bool peer_empty; }; -struct xhci_event_cmd { - __le64 cmd_trb; - __le32 status; - __le32 flags; +struct link_mode_info { + int speed; + u8 lanes; + u8 duplex; }; -struct xhci_generic_trb { - __le32 field[4]; +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, }; -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 module_reply_data { + struct ethnl_reply_data base; + struct ethtool_module_power_mode_params power; }; -struct xhci_erst_entry { - __le64 seg_addr; - __le32 seg_size; - __le32 rsvd; +struct nf_ct_seqadj { + u32 correction_pos; + s32 offset_before; + s32 offset_after; }; -struct xhci_container_ctx; +struct nf_conn_seqadj { + struct nf_ct_seqadj seq[2]; +}; -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; +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 xhci_container_ctx { - unsigned int type; - int size; - u8 *bytes; - dma_addr_t dma; +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 xhci_scratchpad { - u64 *sp_array; - dma_addr_t sp_dma; - void **sp_buffers; +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 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 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 xhci_stream_info; +enum tunnel_encap_types { + TUNNEL_ENCAP_NONE = 0, + TUNNEL_ENCAP_FOU = 1, + TUNNEL_ENCAP_GUE = 2, + TUNNEL_ENCAP_MPLS = 3, +}; -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; +enum lwtunnel_encap_types { + LWTUNNEL_ENCAP_NONE = 0, + LWTUNNEL_ENCAP_MPLS = 1, + LWTUNNEL_ENCAP_IP = 2, + LWTUNNEL_ENCAP_ILA = 3, + LWTUNNEL_ENCAP_IP6 = 4, + LWTUNNEL_ENCAP_SEG6 = 5, + LWTUNNEL_ENCAP_BPF = 6, + LWTUNNEL_ENCAP_SEG6_LOCAL = 7, + LWTUNNEL_ENCAP_RPL = 8, + LWTUNNEL_ENCAP_IOAM6 = 9, + LWTUNNEL_ENCAP_XFRM = 10, + __LWTUNNEL_ENCAP_MAX = 11, }; -struct xhci_interval_bw_table; +struct ip_tunnel_prl_entry; -struct xhci_tt_bw_info; +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 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 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 xhci_stream_ctx; +struct ip_tunnel_encap_ops { + size_t (*encap_hlen)(struct ip_tunnel_encap *); + int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *); + int (*err_handler)(struct sk_buff *, u32); +}; -struct 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 vlan_hdr { + __be16 h_vlan_TCI; + __be16 h_vlan_encapsulated_proto; }; -struct xhci_stream_ctx { - __le64 stream_ring; - __le32 reserved[2]; +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 xhci_interval_bw { - unsigned int num_packets; - struct list_head endpoints; - unsigned int overhead[3]; +struct tnl_ptk_info { + __be16 flags; + __be16 proto; + __be32 key; + __be32 seq; + int hdr_len; }; -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 ip6addrlbl_init_table { + const struct in6_addr *prefix; + int prefixlen; + u32 label; }; -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; +enum { + IFAL_ADDRESS = 1, + IFAL_LABEL = 2, + __IFAL_MAX = 3, }; -struct xhci_root_port_bw_info { - struct list_head tts; - unsigned int num_active_tts; - struct xhci_interval_bw_table bw_table; +struct ip6addrlbl_entry { + struct in6_addr prefix; + int prefixlen; + int ifindex; + int addrtype; + u32 label; + struct hlist_node list; + struct callback_head rcu; }; -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 ifaddrlblmsg { + __u8 ifal_family; + __u8 __ifal_reserved; + __u8 ifal_prefixlen; + __u8 ifal_flags; + __u32 ifal_index; + __u32 ifal_seq; }; -struct xhci_port_cap { - u32 *psi; - u8 psi_count; - u8 psi_uid_count; - u8 maj_rev; - u8 min_rev; +struct rpc_filelist { + const char *name; + const struct file_operations *i_fop; + umode_t mode; }; -struct input_event { - __kernel_ulong_t __sec; - __kernel_ulong_t __usec; - __u16 type; - __u16 code; - __s32 value; +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, }; -struct evdev; +enum { + RPCAUTH_info = 0, + RPCAUTH_EOF = 1, +}; -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]; +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, }; -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; +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 input_mask { - __u32 type; - __u32 codes_size; - __u64 codes_ptr; +enum { + RPC_PIPEFS_MOUNT = 0, + RPC_PIPEFS_UMOUNT = 1, }; -struct hwmon_ops; - -struct hwmon_channel_info; +struct rpc_pipe_dir_object_ops; -struct hwmon_chip_info { - const struct hwmon_ops *ops; - const struct hwmon_channel_info * const *info; +struct rpc_pipe_dir_object { + struct list_head pdo_head; + const struct rpc_pipe_dir_object_ops *pdo_ops; + void *pdo_data; }; -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 rpc_pipe_dir_object_ops { + int (*create)(struct dentry *, struct rpc_pipe_dir_object *); + void (*destroy)(struct dentry *, struct rpc_pipe_dir_object *); }; -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); +enum rfkill_hard_block_reasons { + RFKILL_HARD_BLOCK_SIGNAL = 1, + RFKILL_HARD_BLOCK_NOT_OWNER = 2, }; -struct hwmon_channel_info { - enum hwmon_sensor_types type; - const u32 *config; +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, }; -struct hwmon_type_attr_list { - const u32 *attrs; - size_t n_attrs; +struct cfg80211_event { + struct list_head list; + enum cfg80211_event_type type; + union { + struct cfg80211_connect_resp_params cr; + struct cfg80211_roam_info rm; + struct { + const u8 *ie; + size_t ie_len; + u16 reason; + bool locally_generated; + } dc; + struct { + u8 bssid[6]; + struct ieee80211_channel *channel; + } ij; + struct { + u8 peer_addr[6]; + const u8 *td_bitmap; + u8 td_bitmap_len; + } pa; + }; }; -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, +struct mesh_rmc { + struct hlist_head bucket[256]; + u32 idx_mask; }; -enum power_supply_usb_type { - POWER_SUPPLY_USB_TYPE_UNKNOWN = 0, - POWER_SUPPLY_USB_TYPE_SDP = 1, - POWER_SUPPLY_USB_TYPE_DCP = 2, - POWER_SUPPLY_USB_TYPE_CDP = 3, - POWER_SUPPLY_USB_TYPE_ACA = 4, - POWER_SUPPLY_USB_TYPE_C = 5, - POWER_SUPPLY_USB_TYPE_PD = 6, - POWER_SUPPLY_USB_TYPE_PD_DRP = 7, - POWER_SUPPLY_USB_TYPE_PD_PPS = 8, - POWER_SUPPLY_USB_TYPE_APPLE_BRICK_ID = 9, +enum ieee80211_bss_corrupt_data_flags { + IEEE80211_BSS_CORRUPT_BEACON = 1, + IEEE80211_BSS_CORRUPT_PROBE_RESP = 2, }; -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 ieee80211_bss_valid_data_flags { + IEEE80211_BSS_VALID_WMM = 2, + IEEE80211_BSS_VALID_RATES = 4, + IEEE80211_BSS_VALID_ERP = 8, }; -enum hwmon_temp_attributes { - hwmon_temp_enable = 0, - hwmon_temp_input = 1, - hwmon_temp_type = 2, - hwmon_temp_lcrit = 3, - hwmon_temp_lcrit_hyst = 4, - hwmon_temp_min = 5, - hwmon_temp_min_hyst = 6, - hwmon_temp_max = 7, - hwmon_temp_max_hyst = 8, - hwmon_temp_crit = 9, - hwmon_temp_crit_hyst = 10, - hwmon_temp_emergency = 11, - hwmon_temp_emergency_hyst = 12, - hwmon_temp_alarm = 13, - hwmon_temp_lcrit_alarm = 14, - hwmon_temp_min_alarm = 15, - hwmon_temp_max_alarm = 16, - hwmon_temp_crit_alarm = 17, - hwmon_temp_emergency_alarm = 18, - hwmon_temp_fault = 19, - hwmon_temp_offset = 20, - hwmon_temp_label = 21, - hwmon_temp_lowest = 22, - hwmon_temp_highest = 23, - hwmon_temp_reset_history = 24, - hwmon_temp_rated_min = 25, - hwmon_temp_rated_max = 26, - hwmon_temp_beep = 27, +enum mac80211_rx_encoding { + RX_ENC_LEGACY = 0, + RX_ENC_HT = 1, + RX_ENC_VHT = 2, + RX_ENC_HE = 3, + RX_ENC_EHT = 4, }; -enum hwmon_in_attributes { - hwmon_in_enable = 0, - hwmon_in_input = 1, - hwmon_in_min = 2, - hwmon_in_max = 3, - hwmon_in_lcrit = 4, - hwmon_in_crit = 5, - hwmon_in_average = 6, - hwmon_in_lowest = 7, - hwmon_in_highest = 8, - hwmon_in_reset_history = 9, - hwmon_in_label = 10, - hwmon_in_alarm = 11, - hwmon_in_min_alarm = 12, - hwmon_in_max_alarm = 13, - hwmon_in_lcrit_alarm = 14, - hwmon_in_crit_alarm = 15, - hwmon_in_rated_min = 16, - hwmon_in_rated_max = 17, - hwmon_in_beep = 18, +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 hwmon_curr_attributes { - hwmon_curr_enable = 0, - hwmon_curr_input = 1, - hwmon_curr_min = 2, - hwmon_curr_max = 3, - hwmon_curr_lcrit = 4, - hwmon_curr_crit = 5, - hwmon_curr_average = 6, - hwmon_curr_lowest = 7, - hwmon_curr_highest = 8, - hwmon_curr_reset_history = 9, - hwmon_curr_label = 10, - hwmon_curr_alarm = 11, - hwmon_curr_min_alarm = 12, - hwmon_curr_max_alarm = 13, - hwmon_curr_lcrit_alarm = 14, - hwmon_curr_crit_alarm = 15, - hwmon_curr_rated_min = 16, - hwmon_curr_rated_max = 17, - hwmon_curr_beep = 18, +enum mac80211_scan_flags { + SCAN_SW_SCANNING = 0, + SCAN_HW_SCANNING = 1, + SCAN_ONCHANNEL_SCANNING = 2, + SCAN_COMPLETED = 3, + SCAN_ABORTED = 4, + SCAN_HW_CANCELLED = 5, + SCAN_BEACON_WAIT = 6, + SCAN_BEACON_DONE = 7, }; -struct power_supply; +enum { + IEEE80211_PROBE_FLAG_DIRECTED = 1, + IEEE80211_PROBE_FLAG_MIN_CONTENT = 2, + IEEE80211_PROBE_FLAG_RANDOM_SN = 4, +}; -struct power_supply_hwmon { - struct power_supply *psy; - unsigned long *props; +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, }; -struct power_supply_desc; +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, +}; -struct power_supply_battery_info; +enum ieee80211_sdata_state_bits { + SDATA_STATE_RUNNING = 0, + SDATA_STATE_OFFCHANNEL = 1, + SDATA_STATE_OFFCHANNEL_BEACON_STOPPED = 2, +}; -struct power_supply { - const struct power_supply_desc *desc; - char **supplied_to; - size_t num_supplicants; - char **supplied_from; - size_t num_supplies; - struct device_node *of_node; - void *drv_data; - struct device dev; - struct work_struct changed_work; - struct delayed_work deferred_register_work; - spinlock_t changed_lock; - bool changed; - bool initialized; - bool removing; - atomic_t use_cnt; - struct power_supply_battery_info *battery_info; - struct thermal_zone_device *tzd; - struct thermal_cooling_device *tcd; - 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; +enum qdisc_state_t { + __QDISC_STATE_SCHED = 0, + __QDISC_STATE_DEACTIVATED = 1, + __QDISC_STATE_MISSED = 2, + __QDISC_STATE_DRAINING = 3, }; -union power_supply_propval; +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, +}; -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; +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, }; -union power_supply_propval { - int intval; - const char *strval; +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, }; -struct power_supply_maintenance_charge_table; +struct ieee80211_tdls_lnkie; -struct power_supply_battery_ocv_table; +struct ieee80211_ch_switch_timing; -struct power_supply_resistance_temp_table; +struct ieee80211_tim_ie; -struct power_supply_vbat_ri_table; +struct ieee80211_ht_operation; -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 ieee80211_vht_operation; -struct power_supply_maintenance_charge_table { - int charge_current_max_ua; - int charge_voltage_max_uv; - int charge_safety_timer_minutes; -}; +struct ieee80211_he_spr; -struct power_supply_battery_ocv_table { - int ocv; - int capacity; -}; +struct ieee80211_mu_edca_param_set; -struct power_supply_resistance_temp_table { - int temp; - int resistance; -}; +struct ieee80211_rann_ie; -struct power_supply_vbat_ri_table { - int vbat_uv; - int ri_uohm; +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_s1g_oper_ie; + +struct ieee80211_s1g_bcn_compat_ie; + +struct ieee80211_aid_response_ie; + +struct ieee80211_multi_link_elem; + +struct ieee80211_bandwidth_indication; + +struct ieee80211_ttlm_elem; + +struct ieee80211_mle_per_sta_profile; + +struct ieee802_11_elems { + const u8 *ie_start; + size_t total_len; + u32 crc; + const struct ieee80211_tdls_lnkie *lnk_id; + const struct ieee80211_ch_switch_timing *ch_sw_timing; + const u8 *ext_capab; + const u8 *ssid; + const u8 *supp_rates; + const u8 *ds_params; + const struct ieee80211_tim_ie *tim; + const u8 *rsn; + const u8 *rsnx; + const u8 *erp_info; + const u8 *ext_supp_rates; + const u8 *wmm_info; + const u8 *wmm_param; + const struct ieee80211_ht_cap *ht_cap_elem; + const struct ieee80211_ht_operation *ht_operation; + const struct ieee80211_vht_cap *vht_cap_elem; + const struct ieee80211_vht_operation *vht_operation; + const struct ieee80211_meshconf_ie *mesh_config; + const u8 *he_cap; + const struct ieee80211_he_operation *he_operation; + const struct ieee80211_he_spr *he_spr; + const struct ieee80211_mu_edca_param_set *mu_edca_param_set; + const struct ieee80211_he_6ghz_capa *he_6ghz_capa; + const struct ieee80211_tx_pwr_env *tx_pwr_env[8]; + const u8 *uora_element; + const u8 *mesh_id; + const u8 *peering; + const __le16 *awake_window; + const u8 *preq; + const u8 *prep; + const u8 *perr; + const struct ieee80211_rann_ie *rann; + const struct ieee80211_channel_sw_ie *ch_switch_ie; + const struct ieee80211_ext_chansw_ie *ext_chansw_ie; + const struct ieee80211_wide_bw_chansw_ie *wide_bw_chansw_ie; + const u8 *max_channel_switch_time; + const u8 *country_elem; + const u8 *pwr_constr_elem; + const u8 *cisco_dtpc_elem; + const struct ieee80211_timeout_interval_ie *timeout_int; + const u8 *opmode_notif; + const struct ieee80211_sec_chan_offs_ie *sec_chan_offs; + struct ieee80211_mesh_chansw_params_ie *mesh_chansw_params_ie; + const struct ieee80211_bss_max_idle_period_ie *max_idle_period_ie; + const struct ieee80211_multiple_bssid_configuration *mbssid_config_ie; + const struct ieee80211_bssid_index *bssid_index; + u8 max_bssid_indicator; + u8 dtim_count; + u8 dtim_period; + const struct ieee80211_addba_ext_ie *addba_ext_ie; + const struct ieee80211_s1g_cap *s1g_capab; + const struct ieee80211_s1g_oper_ie *s1g_oper; + const struct ieee80211_s1g_bcn_compat_ie *s1g_bcn_compat; + const struct ieee80211_aid_response_ie *aid_resp; + const struct ieee80211_eht_cap_elem *eht_cap; + const struct ieee80211_eht_operation *eht_operation; + const struct ieee80211_multi_link_elem *ml_basic; + const struct ieee80211_multi_link_elem *ml_reconf; + const struct ieee80211_bandwidth_indication *bandwidth_indication; + const struct ieee80211_ttlm_elem *ttlm[2]; + u8 ext_capab_len; + u8 ssid_len; + u8 supp_rates_len; + u8 tim_len; + u8 rsn_len; + u8 rsnx_len; + u8 ext_supp_rates_len; + u8 wmm_info_len; + u8 wmm_param_len; + u8 he_cap_len; + u8 mesh_id_len; + u8 peering_len; + u8 preq_len; + u8 prep_len; + u8 perr_len; + u8 country_elem_len; + u8 bssid_index_len; + u8 tx_pwr_env_len[8]; + u8 tx_pwr_env_num; + u8 eht_cap_len; + size_t ml_basic_len; + size_t ml_reconf_len; + const struct element *ml_basic_elem; + const struct element *ml_reconf_elem; + u8 ttlm_num; + 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]; }; -enum { - BIOSET_NEED_BVECS = 1, - BIOSET_NEED_RESCUER = 2, - BIOSET_PERCPU_CACHE = 4, +struct ieee80211_tdls_lnkie { + u8 ie_type; + u8 ie_len; + u8 bssid[6]; + u8 init_sta[6]; + u8 resp_sta[6]; }; -struct dm_io_client { - mempool_t pool; - struct bio_set bios; +struct ieee80211_ch_switch_timing { + __le16 switch_time; + __le16 switch_timeout; }; -struct dpages { - void (*get_page)(struct dpages *, struct page **, unsigned long *, unsigned int *); - void (*next_page)(struct dpages *); +struct ieee80211_tim_ie { + u8 dtim_count; + u8 dtim_period; + u8 bitmap_ctrl; union { - unsigned int context_u; - struct bvec_iter context_bi; + u8 required_octet; + struct { + struct {} __empty_virtual_map; + u8 virtual_map[0]; + }; }; - 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 ieee80211_ht_operation { + u8 primary_chan; + u8 ht_param; + __le16 operation_mode; + __le16 stbc_param; + u8 basic_set[16]; }; -struct sync_io { - unsigned long error_bits; - struct completion wait; +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 efi_system_resource_table { - u32 fw_resource_count; - u32 fw_resource_count_max; - u64 fw_resource_version; - u8 entries[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 esre_entry; +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 esre_attribute { - struct attribute attr; - ssize_t (*show)(struct esre_entry *, char *); - ssize_t (*store)(struct esre_entry *, const char *, size_t); +struct ieee80211_channel_sw_ie { + u8 mode; + u8 new_ch_num; + u8 count; }; -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 ieee80211_wide_bw_chansw_ie { + u8 new_channel_width; + u8 new_center_freq_seg0; + u8 new_center_freq_seg1; }; -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 ieee80211_timeout_interval_ie { + u8 type; + __le32 value; +} __attribute__((packed)); + +struct ieee80211_sec_chan_offs_ie { + u8 sec_chan_offs; }; -struct sixaxis_rumble { - u8 padding; - u8 right_duration; - u8 right_motor_on; - u8 left_duration; - u8 left_motor_force; +struct ieee80211_mesh_chansw_params_ie { + u8 mesh_ttl; + u8 mesh_flags; + __le16 mesh_reason; + __le16 mesh_pre_value; }; -struct sixaxis_led { - u8 time_enabled; - u8 duty_length; - u8 enabled; - u8 duty_off; - u8 duty_on; +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 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; +struct ieee80211_bssid_index { + u8 bssid_index; + u8 dtim_period; + u8 dtim_count; }; -union sixaxis_output_report_01 { - struct sixaxis_output_report data; - u8 buf[36]; +struct ieee80211_addba_ext_ie { + u8 data; }; -enum sony_worker { - SONY_WORKER_STATE = 0, +struct ieee80211_s1g_oper_ie { + u8 ch_width; + u8 oper_class; + u8 primary_ch; + u8 oper_ch; + __le16 basic_mcs_nss; }; -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, +struct ieee80211_s1g_bcn_compat_ie { + __le16 compat_info; + __le16 beacon_int; + __le32 tsf_completion; }; -enum { - POWER_SUPPLY_SCOPE_UNKNOWN = 0, - POWER_SUPPLY_SCOPE_SYSTEM = 1, - POWER_SUPPLY_SCOPE_DEVICE = 2, +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 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 ieee80211_eht_operation_info { + u8 control; + u8 ccfs0; + u8 ccfs1; + u8 optional[0]; }; -struct motion_output_report_02 { - u8 type; - u8 zero; - u8 r; - u8 g; - u8 b; - u8 zero2; - u8 rumble; +struct ieee80211_bandwidth_indication { + u8 params; + struct ieee80211_eht_operation_info info; }; -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 ieee80211_ttlm_elem { + u8 control; + u8 optional[0]; }; -struct hda_pintbl { - hda_nid_t nid; - u32 val; +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; }; -struct hda_verb { - hda_nid_t nid; - u32 verb; - u32 param; +struct cfg80211_inform_bss { + struct ieee80211_channel *chan; + s32 signal; + u64 boottime_ns; + u64 parent_tsf; + u8 parent_bssid[6]; + u8 chains; + s8 chain_signal[4]; + void *drv_data; }; -struct hda_pincfg { - hda_nid_t nid; - unsigned char ctrl; - unsigned char target; - unsigned int cfg; +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 neigh_sysctl_table { - struct ctl_table_header *sysctl_header; - struct ctl_table neigh_vars[22]; +struct inform_bss_update_data { + struct ieee80211_rx_status *rx_status; + bool beacon; }; -enum { - NEIGH_VAR_MCAST_PROBES = 0, - NEIGH_VAR_UCAST_PROBES = 1, - NEIGH_VAR_APP_PROBES = 2, - NEIGH_VAR_MCAST_REPROBES = 3, - NEIGH_VAR_RETRANS_TIME = 4, - NEIGH_VAR_BASE_REACHABLE_TIME = 5, - NEIGH_VAR_DELAY_PROBE_TIME = 6, - NEIGH_VAR_INTERVAL_PROBE_TIME_MS = 7, - NEIGH_VAR_GC_STALETIME = 8, - NEIGH_VAR_QUEUE_LEN_BYTES = 9, - NEIGH_VAR_PROXY_QLEN = 10, - NEIGH_VAR_ANYCAST_DELAY = 11, - NEIGH_VAR_PROXY_DELAY = 12, - NEIGH_VAR_LOCKTIME = 13, - NEIGH_VAR_QUEUE_LEN = 14, - NEIGH_VAR_RETRANS_TIME_MS = 15, - NEIGH_VAR_BASE_REACHABLE_TIME_MS = 16, - NEIGH_VAR_GC_INTERVAL = 17, - NEIGH_VAR_GC_THRESH1 = 18, - NEIGH_VAR_GC_THRESH2 = 19, - NEIGH_VAR_GC_THRESH3 = 20, - NEIGH_VAR_MAX = 21, +struct rate_control_ops; + +struct rate_control_ref { + const struct rate_control_ops *ops; + void *priv; }; -enum { - NEIGH_ARP_TABLE = 0, - NEIGH_ND_TABLE = 1, - NEIGH_DN_TABLE = 2, - NEIGH_NR_TABLES = 3, - NEIGH_LINK_TABLE = 3, +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 *); }; -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, +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; }; -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, +struct ieee80211_rate_status { + struct rate_info rate_idx; + u8 try_count; + u8 tx_power_idx; }; -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, +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 { - 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 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 { - 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, +enum ieee80211_max_queues { + IEEE80211_MAX_QUEUES = 16, + IEEE80211_MAX_QUEUE_MAP = 65535, }; -struct neighbour_cb { - unsigned long sched_next; - unsigned int flags; +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, }; -struct rtgenmsg { - unsigned char rtgen_family; +enum ieee80211_ac_numbers { + IEEE80211_AC_VO = 0, + IEEE80211_AC_VI = 1, + IEEE80211_AC_BE = 2, + IEEE80211_AC_BK = 3, }; -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; +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, + BSS_CHANGED_MLD_VALID_LINKS = 8589934592LL, }; -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 neigh_dump_filter { - int master_idx; - int dev_idx; +enum ieee80211_tpt_led_trigger_flags { + IEEE80211_TPT_LEDTRIG_FL_RADIO = 1, + IEEE80211_TPT_LEDTRIG_FL_WORK = 2, + IEEE80211_TPT_LEDTRIG_FL_CONNECTED = 4, }; -struct ndtmsg { - __u8 ndtm_family; - __u8 ndtm_pad1; - __u16 ndtm_pad2; +enum ieee80211_conf_flags { + IEEE80211_CONF_MONITOR = 1, + IEEE80211_CONF_PS = 2, + IEEE80211_CONF_IDLE = 4, + IEEE80211_CONF_OFFCHANNEL = 8, }; -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; +enum ieee80211_agg_stop_reason { + AGG_STOP_DECLINED = 0, + AGG_STOP_LOCAL_REQUEST = 1, + AGG_STOP_PEER_REQUEST = 2, + AGG_STOP_DESTROY_STA = 3, }; -struct ndt_stats { - __u64 ndts_allocs; - __u64 ndts_destroys; - __u64 ndts_hash_grows; - __u64 ndts_res_failed; - __u64 ndts_lookups; - __u64 ndts_hits; - __u64 ndts_rcv_probes_mcast; - __u64 ndts_rcv_probes_ucast; - __u64 ndts_periodic_gc_runs; - __u64 ndts_forced_gc_runs; - __u64 ndts_table_fulls; +enum 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, }; -struct nda_cacheinfo { - __u32 ndm_confirmed; - __u32 ndm_used; - __u32 ndm_updated; - __u32 ndm_refcnt; +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 { - 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 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 genl_validate_flags { - GENL_DONT_VALIDATE_STRICT = 1, - GENL_DONT_VALIDATE_DUMP = 2, - GENL_DONT_VALIDATE_DUMP_STRICT = 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 { - 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 mac80211_rx_encoding_flags { + RX_ENC_FLAG_SHORTPRE = 1, + RX_ENC_FLAG_SHORT_GI = 4, + RX_ENC_FLAG_HT_GF = 8, + RX_ENC_FLAG_STBC_MASK = 48, + RX_ENC_FLAG_LDPC = 64, + RX_ENC_FLAG_BF = 128, }; -enum { - CTRL_ATTR_OP_UNSPEC = 0, - CTRL_ATTR_OP_ID = 1, - CTRL_ATTR_OP_FLAGS = 2, - __CTRL_ATTR_OP_MAX = 3, +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 { - 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 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, }; -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, +enum txq_info_flags { + IEEE80211_TXQ_STOP = 0, + IEEE80211_TXQ_AMPDU = 1, + IEEE80211_TXQ_NO_AMSDU = 2, + IEEE80211_TXQ_DIRTY = 3, }; -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; +enum ieee80211_mle_subelems { + IEEE80211_MLE_SUBELEM_PER_STA_PROFILE = 0, + IEEE80211_MLE_SUBELEM_FRAGMENT = 254, }; -struct genl_dumpit_info { - const struct genl_family *family; - struct genl_split_ops op; - struct nlattr **attrs; +enum ieee80211_internal_key_flags { + KEY_FLAG_UPLOADED_TO_HARDWARE = 1, + KEY_FLAG_TAINTED = 2, }; -struct netlink_policy_dump_state; +struct ieee80211_he_6ghz_oper { + u8 primary; + u8 control; + u8 ccfs0; + u8 ccfs1; + u8 minrate; +}; -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 codel_stats { + u32 maxpacket; + u32 drop_count; + u32 drop_len; + u32 ecn_mark; + u32 ce_mark; }; -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); +struct txq_info { + struct fq_tin tin; + struct codel_vars def_cvars; + struct codel_stats cstats; + u16 schedule_round; + struct list_head schedule_order; + struct sk_buff_head frags; + unsigned long flags; + struct ieee80211_txq txq; }; -struct genl_start_context { - const struct genl_family *family; - struct nlmsghdr *nlh; - struct netlink_ext_ack *extack; - const struct genl_split_ops *ops; - int hdrlen; +struct ieee80211_mle_basic_common_info { + u8 len; + u8 mld_mac_addr[6]; + u8 variable[0]; }; -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 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 plca_reply_data { - struct ethnl_reply_data base; - struct phy_plca_cfg plca_cfg; - struct phy_plca_status plca_st; +struct iface_combination_params { + int num_different_channels; + u8 radar_detect; + int iftype_num[13]; + u32 new_beacon_int; }; -struct nf_conntrack_nat_helper { - struct list_head list; - char mod_name[16]; - struct module *module; +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; + bool sg; + enum { + XSK_READY = 0, + XSK_BOUND = 1, + XSK_UNBOUND = 2, + } state; + long: 64; + struct xsk_queue *tx; + struct list_head tx_list; + u32 tx_budget_spent; + spinlock_t rx_lock; + u64 rx_dropped; + u64 rx_queue_full; + struct sk_buff *skb; + struct list_head map_list; + spinlock_t map_list_lock; + struct mutex mutex; + struct xsk_queue *fq_tmp; + struct xsk_queue *cq_tmp; }; -enum sdp_header_types { - SDP_HDR_UNSPEC = 0, - SDP_HDR_VERSION = 1, - SDP_HDR_OWNER = 2, - SDP_HDR_CONNECTION = 3, - SDP_HDR_MEDIA = 4, +enum { + BPF_F_BROADCAST = 8, + BPF_F_EXCLUDE_INGRESS = 16, }; -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 xsk_map; + +struct xsk_map_node { + struct list_head node; + struct xsk_map *map; + struct xdp_sock __attribute__((btf_type_tag("rcu"))) **map_entry; }; -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 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; }; -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 fs_struct { + int users; + spinlock_t lock; + seqcount_spinlock_t seq; + int umask; + int in_exec; + struct path root; + struct path pwd; }; -struct nf_ct_sip_master { - unsigned int register_cseq; - unsigned int invite_cseq; - __be16 forced_dport; +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 tcp_plb_state { - u8 consec_cong_rounds: 5; - u8 unused: 3; - u32 pause_until; +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]; }; -struct ic_device { - struct ic_device *next; - struct net_device *dev; - unsigned short flags; - short able; - __be32 xid; +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 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 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 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 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 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 *); +struct trace_event_data_offsets_irq_matrix_global {}; + +struct trace_event_data_offsets_irq_matrix_global_update {}; + +struct trace_event_data_offsets_irq_matrix_cpu {}; + +enum 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, }; -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, +struct pci_p2pdma_map_state { + struct dev_pagemap *pgmap; + int map; + u64 bus_off; }; -enum rtnl_link_flags { - RTNL_FLAG_DOIT_UNLOCKED = 1, - RTNL_FLAG_BULK_DEL_SUPPORTED = 2, +struct module_use { + struct list_head source_list; + struct list_head target_list; + struct module *source; + struct module *target; }; -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, +struct posix_clock_desc { + struct file *fp; + struct posix_clock *clk; }; -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 freezer_state_flags { + CGROUP_FREEZER_ONLINE = 1, + CGROUP_FREEZING_SELF = 2, + CGROUP_FREEZING_PARENT = 4, + CGROUP_FROZEN = 8, + CGROUP_FREEZING = 6, }; -enum { - DAD_PROCESS = 0, - DAD_BEGIN = 1, - DAD_ABORT = 2, +struct freezer { + struct cgroup_subsys_state css; + unsigned int state; }; -enum cleanup_prefix_rt_t { - CLEANUP_PREFIX_RT_NOP = 0, - CLEANUP_PREFIX_RT_DEL = 1, - CLEANUP_PREFIX_RT_EXPIRE = 2, +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; }; -enum rt_class_t { - RT_TABLE_UNSPEC = 0, - RT_TABLE_COMPAT = 252, - RT_TABLE_DEFAULT = 253, - RT_TABLE_MAIN = 254, - RT_TABLE_LOCAL = 255, - RT_TABLE_MAX = 4294967295, +enum 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, }; -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, +struct listener_list { + struct rw_semaphore sem; + struct list_head list; }; 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, + TASKSTATS_CMD_UNSPEC = 0, + TASKSTATS_CMD_GET = 1, + TASKSTATS_CMD_NEW = 2, + __TASKSTATS_CMD_MAX = 3, }; 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, + 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 { - 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, + 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 { - 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 actions { + REGISTER = 0, + DEREGISTER = 1, + CPU_DONT_CARE = 2, }; enum { - PREFIX_UNSPEC = 0, - PREFIX_ADDRESS = 1, - PREFIX_CACHEINFO = 2, - __PREFIX_MAX = 3, + CGROUPSTATS_CMD_ATTR_UNSPEC = 0, + CGROUPSTATS_CMD_ATTR_FD = 1, + __CGROUPSTATS_CMD_ATTR_MAX = 2, }; -enum addr_type_t { - UNICAST_ADDR = 0, - MULTICAST_ADDR = 1, - ANYCAST_ADDR = 2, +enum { + CGROUPSTATS_CMD_UNSPEC = 3, + CGROUPSTATS_CMD_GET = 4, + CGROUPSTATS_CMD_NEW = 5, + __CGROUPSTATS_CMD_MAX = 6, }; 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, + CGROUPSTATS_TYPE_UNSPEC = 0, + CGROUPSTATS_TYPE_CGROUP_STATS = 1, + __CGROUPSTATS_TYPE_MAX = 2, }; -union fwnet_hwaddr { - u8 u[16]; - struct { - __be64 uniq_id; - u8 max_rec; - u8 sspd; - u8 fifo[6]; - } uc; +struct listener { + struct list_head list; + pid_t pid; + char valid; }; -struct prefix_cacheinfo { - __u32 preferred_time; - __u32 valid_time; +struct cgroupstats { + __u64 nr_sleeping; + __u64 nr_running; + __u64 nr_stopped; + __u64 nr_uninterruptible; + __u64 nr_io_wait; }; -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 pcpu_freelist_node; + +struct pcpu_freelist_head { + struct pcpu_freelist_node *first; + raw_spinlock_t lock; }; -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 pcpu_freelist { + struct pcpu_freelist_head __attribute__((btf_type_tag("percpu"))) *freelist; + struct pcpu_freelist_head extralist; }; -struct in6_ifreq { - struct in6_addr ifr6_addr; - __u32 ifr6_prefixlen; - int ifr6_ifindex; +struct bpf_lru_list { + struct list_head lists[3]; + unsigned int counts[2]; + struct list_head *next_inactive_rotation; + raw_spinlock_t lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 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 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 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: 64; + long: 64; + long: 64; + long: 64; }; -struct ifaddrmsg { - __u8 ifa_family; - __u8 ifa_prefixlen; - __u8 ifa_flags; - __u8 ifa_scope; - __u32 ifa_index; +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; + 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 if6_iter_state { - struct seq_net_private p; - int bucket; - int offset; +struct bucket { + struct hlist_nulls_head head; + raw_spinlock_t raw_lock; }; -struct inet6_fill_args { - u32 portid; - u32 seq; - int event; - unsigned int flags; - int netnsid; - int ifindex; - enum addr_type_t type; +struct pcpu_freelist_node { + struct pcpu_freelist_node *next; }; -struct ifa_cacheinfo { - __u32 ifa_prefered; - __u32 ifa_valid; - __u32 cstamp; - __u32 tstamp; +struct bpf_lru_locallist { + struct list_head lists[2]; + u16 next_steal; + raw_spinlock_t lock; }; -struct netconfmsg { - __u8 ncm_family; +struct bpf_lru_node { + struct list_head list; + u16 cpu; + u8 type; + u8 ref; }; -struct ipv6_saddr_score { - int rule; - int addr_type; - struct inet6_ifaddr *ifa; - unsigned long scorebits[1]; - int scopedist; - int matchlen; +struct htab_elem { + union { + struct hlist_nulls_node hash_node; + struct { + void *padding; + union { + struct pcpu_freelist_node fnode; + struct htab_elem *batch_flink; + }; + }; + }; + union { + void *ptr_to_pptr; + struct bpf_lru_node lru_node; + }; + u32 hash; + long: 0; + char key[0]; }; -struct ipv6_saddr_dst { - const struct in6_addr *addr; - int ifindex; - int scope; - int label; - unsigned int prefs; +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 in6_validator_info { - struct in6_addr i6vi_addr; - struct inet6_dev *i6vi_dev; - struct netlink_ext_ack *extack; +struct callchain_cpus_entries { + struct callback_head callback_head; + struct perf_callchain_entry *cpu_entries[0]; }; -struct ifla_cacheinfo { - __u32 max_reasm_len; - __u32 tstamp; - __u32 reachable_time; - __u32 retrans_time; +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 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 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 decryptor_desc { - u8 iv[16]; - struct skcipher_request *req; - struct scatterlist frags[4]; - int fragno; - int fraglen; +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; }; -enum ieee80211_max_queues { - IEEE80211_MAX_QUEUES = 16, - IEEE80211_MAX_QUEUE_MAP = 65535, +struct perf_callchain_entry_ctx { + struct perf_callchain_entry *entry; + u32 max_stack; + u32 nr; + short contexts; + bool contexts_maxed; }; -enum ieee80211_conf_flags { - IEEE80211_CONF_MONITOR = 1, - IEEE80211_CONF_PS = 2, - IEEE80211_CONF_IDLE = 4, - IEEE80211_CONF_OFFCHANNEL = 8, +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 ieee80211_roc_work { - struct list_head list; - struct ieee80211_sub_if_data *sdata; - struct ieee80211_channel *chan; - bool started; - bool abort; - bool hw_begun; - bool notified; - bool on_channel; - unsigned long start_time; - u32 duration; - u32 req_duration; - struct sk_buff *frame; - u64 cookie; - u64 mgmt_tx_cookie; - enum ieee80211_roc_type type; +struct 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 cfg80211_tx_status { - u64 cookie; - u64 tx_tstamp; - u64 ack_tstamp; - const u8 *buf; - size_t len; - bool ack; +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 cppc_perf_caps { - u32 guaranteed_perf; - u32 highest_perf; - u32 nominal_perf; - u32 lowest_perf; - u32 lowest_nonlinear_perf; - u32 lowest_freq; - u32 nominal_freq; - u32 energy_perf; - bool auto_sel; +struct trace_event_raw_mm_lru_activate { + struct trace_entry ent; + struct folio *folio; + unsigned long pfn; + char __data[0]; }; -struct cpc_reg { - u8 descriptor; - u16 length; - u8 space_id; - u8 bit_width; - u8 bit_offset; - u8 access_width; - u64 address; -} __attribute__((packed)); +typedef void (*move_fn_t)(struct lruvec *, struct folio *); -struct cstate_entry { - struct { - unsigned int eax; - unsigned int ecx; - } states[8]; -}; +struct trace_event_data_offsets_mm_lru_insertion {}; -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 trace_event_data_offsets_mm_lru_activate {}; -enum allow_write_msrs { - MSR_WRITES_ON = 0, - MSR_WRITES_OFF = 1, - MSR_WRITES_DEFAULT = 2, -}; +typedef union { + struct page **pages; + struct folio **folios; + struct encoded_page **encoded_pages; +} release_pages_arg; -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 mempolicy_operations { + int (*create)(struct mempolicy *, const nodemask_t *); + void (*rebind)(struct mempolicy *, const nodemask_t *); }; -struct mpc_bus { - unsigned char type; - unsigned char busid; - unsigned char bustype[6]; +enum page_walk_lock { + PGWALK_RDLOCK = 0, + PGWALK_WRLOCK = 1, + PGWALK_WRLOCK_VERIFY = 2, }; -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 mm_walk; -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 mm_walk_ops { + int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); + int (*p4d_entry)(p4d_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); + int (*pte_hole)(unsigned long, unsigned long, int, struct mm_walk *); + int (*hugetlb_entry)(pte_t *, unsigned long, unsigned long, unsigned long, struct mm_walk *); + int (*test_walk)(unsigned long, unsigned long, struct mm_walk *); + int (*pre_vma)(unsigned long, unsigned long, struct mm_walk *); + void (*post_vma)(struct mm_walk *); + enum page_walk_lock walk_lock; }; -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; +enum page_walk_action { + ACTION_SUBTREE = 0, + ACTION_CONTINUE = 1, + ACTION_AGAIN = 2, }; -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 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; }; -typedef unsigned long ulong; +enum numa_stat_item { + NUMA_HIT = 0, + NUMA_MISS = 1, + NUMA_FOREIGN = 2, + NUMA_INTERLEAVE_HIT = 3, + NUMA_LOCAL = 4, + NUMA_OTHER = 5, + NR_VM_NUMA_EVENT_ITEMS = 6, +}; -enum 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, +struct sp_node { + struct rb_node nd; + unsigned long start; + unsigned long end; + struct mempolicy *policy; }; -struct va_alignment { - int flags; - unsigned long mask; - unsigned long bits; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct migration_mpol { + struct mempolicy *pol; + unsigned long ilx; }; -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, +struct queue_pages { + struct list_head *pagelist; + unsigned long flags; + nodemask_t *nmask; + unsigned long start; + unsigned long end; + struct vm_area_struct *first; + struct folio *large; + long nr_failed; }; -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 nodemask_scratch { + nodemask_t mask1; + nodemask_t mask2; }; -struct tms { - __kernel_clock_t tms_utime; - __kernel_clock_t tms_stime; - __kernel_clock_t tms_cutime; - __kernel_clock_t tms_cstime; +struct shared_policy { + struct rb_root root; + rwlock_t lock; }; -struct compat_tms { - compat_clock_t tms_utime; - compat_clock_t tms_stime; - compat_clock_t tms_cutime; - compat_clock_t tms_cstime; +struct anon_vma_name { + struct kref kref; + char name[0]; }; -struct old_utsname { - char sysname[65]; - char nodename[65]; - char release[65]; - char version[65]; - char machine[65]; +enum dentry_d_lock_class { + DENTRY_D_LOCK_NORMAL = 0, + DENTRY_D_LOCK_NESTED = 1, }; -struct oldold_utsname { - char sysname[9]; - char nodename[9]; - char release[9]; - char version[9]; - char machine[9]; +struct simple_transaction_argresp { + ssize_t size; + char data[0]; }; -struct compat_rlimit { - compat_ulong_t rlim_cur; - compat_ulong_t rlim_max; +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; }; -struct rlimit64 { - __u64 rlim_cur; - __u64 rlim_max; +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 getcpu_cache { - unsigned long blob[16]; +enum { + EXT4_STATE_NEW = 0, + EXT4_STATE_XATTR = 1, + EXT4_STATE_NO_EXPAND = 2, + EXT4_STATE_DA_ALLOC_CLOSE = 3, + EXT4_STATE_EXT_MIGRATE = 4, + EXT4_STATE_NEWENTRY = 5, + EXT4_STATE_MAY_INLINE_DATA = 6, + EXT4_STATE_EXT_PRECACHED = 7, + EXT4_STATE_LUSTRE_EA_INODE = 8, + EXT4_STATE_VERITY_IN_PROGRESS = 9, + EXT4_STATE_FC_COMMITTING = 10, + EXT4_STATE_ORPHAN_FILE = 11, }; -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 ext4_dir_entry_tail { + __le32 det_reserved_zero1; + __le16 det_rec_len; + __u8 det_reserved_zero2; + __u8 det_reserved_ft; + __le32 det_checksum; }; -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 ext4_dir_entry_2 { + __le32 inode; + __le16 rec_len; + __u8 name_len; + __u8 file_type; + char name[255]; }; -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; +struct ext4_dir_entry_hash { + __le32 hash; + __le32 minor_hash; }; -typedef int (*proc_visitor)(struct task_struct *, void *); +struct dx_entry; -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 dx_frame { + struct buffer_head *bh; + struct dx_entry *entries; + struct dx_entry *at; }; -struct audit_ntp_val { - long long oldval; - long long newval; +struct dx_entry { + __le32 hash; + __le32 block; }; -struct audit_ntp_data { - struct audit_ntp_val vals[6]; +struct fake_dirent { + __le32 inode; + __le16 rec_len; + u8 name_len; + u8 file_type; }; -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 dx_root_info { + __le32 reserved_zero; + u8 hash_version; + u8 info_length; + u8 indirect_levels; + u8 unused_flags; }; -struct tp_transition_snapshot { - unsigned long rcu; - unsigned long srcu; - bool ongoing; +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]; }; -enum tp_func_state { - TP_FUNC_0 = 0, - TP_FUNC_1 = 1, - TP_FUNC_2 = 2, - TP_FUNC_N = 3, +struct dx_node { + struct fake_dirent fake; + struct dx_entry entries[0]; }; -enum tp_transition_sync { - TP_TRANSITION_SYNC_1_0_1 = 0, - TP_TRANSITION_SYNC_N_2_1 = 1, - _NR_TP_TRANSITION_SYNC = 2, +struct dx_countlimit { + __le16 limit; + __le16 count; }; -struct tp_module { - struct list_head list; - struct module *mod; +struct ext4_dir_entry { + __le32 inode; + __le16 rec_len; + __le16 name_len; + char name[255]; }; -struct tp_probes { - struct callback_head rcu; - struct tracepoint_func probes[0]; +struct dx_tail { + u32 dt_reserved; + __le32 dt_checksum; }; -struct event_trigger_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 *); +struct dx_map_entry { + u32 hash; + u16 offs; + u16 size; }; -struct event_command; - -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 dx_hash_info { + u32 hash; + u32 minor_hash; + int hash_version; + u32 *seed; }; -enum event_trigger_type { - ETT_NONE = 0, - ETT_TRACE_ONOFF = 1, - ETT_SNAPSHOT = 2, - ETT_STACKTRACE = 4, - ETT_EVENT_ENABLE = 8, - ETT_EVENT_HIST = 16, - ETT_HIST_ENABLE = 32, - ETT_EVENT_EPROBE = 64, +struct fscrypt_str { + unsigned char *name; + u32 len; }; -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 ext4_filename { + const struct qstr *usr_fname; + struct fscrypt_str disk_name; + struct dx_hash_info hinfo; }; -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, +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; }; -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, - FILTER_STACKTRACE = 8, +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; }; -enum { - TP_ERR_FILE_NOT_FOUND = 0, - TP_ERR_NO_REGULAR_FILE = 1, - TP_ERR_BAD_REFCNT = 2, - TP_ERR_REFCNT_OPEN_BRACE = 3, - TP_ERR_BAD_REFCNT_SUFFIX = 4, - TP_ERR_BAD_UPROBE_OFFS = 5, - TP_ERR_BAD_MAXACT_TYPE = 6, - TP_ERR_BAD_MAXACT = 7, - TP_ERR_MAXACT_TOO_BIG = 8, - TP_ERR_BAD_PROBE_ADDR = 9, - TP_ERR_BAD_RETPROBE = 10, - TP_ERR_NO_TRACEPOINT = 11, - TP_ERR_BAD_ADDR_SUFFIX = 12, - TP_ERR_NO_GROUP_NAME = 13, - TP_ERR_GROUP_TOO_LONG = 14, - TP_ERR_BAD_GROUP_NAME = 15, - TP_ERR_NO_EVENT_NAME = 16, - TP_ERR_EVENT_TOO_LONG = 17, - TP_ERR_BAD_EVENT_NAME = 18, - TP_ERR_EVENT_EXIST = 19, - TP_ERR_RETVAL_ON_PROBE = 20, - TP_ERR_NO_RETVAL = 21, - TP_ERR_BAD_STACK_NUM = 22, - TP_ERR_BAD_ARG_NUM = 23, - TP_ERR_BAD_VAR = 24, - TP_ERR_BAD_REG_NAME = 25, - TP_ERR_BAD_MEM_ADDR = 26, - TP_ERR_BAD_IMM = 27, - TP_ERR_IMMSTR_NO_CLOSE = 28, - TP_ERR_FILE_ON_KPROBE = 29, - TP_ERR_BAD_FILE_OFFS = 30, - TP_ERR_SYM_ON_UPROBE = 31, - TP_ERR_TOO_MANY_OPS = 32, - TP_ERR_DEREF_NEED_BRACE = 33, - TP_ERR_BAD_DEREF_OFFS = 34, - TP_ERR_DEREF_OPEN_BRACE = 35, - TP_ERR_COMM_CANT_DEREF = 36, - TP_ERR_BAD_FETCH_ARG = 37, - TP_ERR_ARRAY_NO_CLOSE = 38, - TP_ERR_BAD_ARRAY_SUFFIX = 39, - TP_ERR_BAD_ARRAY_NUM = 40, - TP_ERR_ARRAY_TOO_BIG = 41, - TP_ERR_BAD_TYPE = 42, - TP_ERR_BAD_STRING = 43, - TP_ERR_BAD_SYMSTRING = 44, - TP_ERR_BAD_BITFIELD = 45, - TP_ERR_ARG_NAME_TOO_LONG = 46, - TP_ERR_NO_ARG_NAME = 47, - TP_ERR_BAD_ARG_NAME = 48, - TP_ERR_USED_ARG_NAME = 49, - TP_ERR_ARG_TOO_LONG = 50, - TP_ERR_NO_ARG_BODY = 51, - TP_ERR_BAD_INSN_BNDRY = 52, - TP_ERR_FAIL_REG_PROBE = 53, - TP_ERR_DIFF_PROBE_TYPE = 54, - TP_ERR_DIFF_ARG_TYPE = 55, - TP_ERR_SAME_PROBE = 56, - TP_ERR_NO_EVENT_INFO = 57, - TP_ERR_BAD_ATTACH_EVENT = 58, - TP_ERR_BAD_ATTACH_ARG = 59, - TP_ERR_NO_EP_FILTER = 60, - TP_ERR_NOSUP_BTFARG = 61, - TP_ERR_NO_BTFARG = 62, - TP_ERR_NO_BTF_ENTRY = 63, - TP_ERR_BAD_VAR_ARGS = 64, - TP_ERR_NOFENTRY_ARGS = 65, - TP_ERR_DOUBLE_ARGS = 66, - TP_ERR_ARGS_2LONG = 67, -}; +typedef enum { + EITHER = 0, + INDEX = 1, + DIRENT = 2, + DIRENT_HTREE = 3, +} dirblock_type_t; -enum probe_print_type { - PROBE_PRINT_NORMAL = 0, - PROBE_PRINT_RETURN = 1, - PROBE_PRINT_EVENT = 2, +enum isofs_file_format { + isofs_file_normal = 0, + isofs_file_sparse = 1, + isofs_file_compressed = 2, }; enum { - TRACE_ARRAY_FL_GLOBAL = 1, + Opt_block = 0, + Opt_check_r___2 = 1, + Opt_check_s___2 = 2, + Opt_cruft = 3, + Opt_gid___2 = 4, + Opt_ignore = 5, + Opt_iocharset = 6, + Opt_map_a = 7, + Opt_map_n = 8, + Opt_map_o = 9, + Opt_mode = 10, + Opt_nojoliet = 11, + Opt_norock = 12, + Opt_sb___2 = 13, + Opt_session = 14, + Opt_uid___2 = 15, + Opt_unhide = 16, + Opt_utf8 = 17, + Opt_err___4 = 18, + Opt_nocompress = 19, + Opt_hide = 20, + Opt_showassoc = 21, + Opt_dmode = 22, + Opt_overriderockperm = 23, }; -enum { - EVENT_TRIGGER_FL_PROBE = 1, +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 eprobe_trace_entry_head { - struct trace_entry ent; +struct isofs_iget5_callback_data { + unsigned long block; + unsigned long offset; }; -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 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 trace_probe_event; +struct iso_volume_descriptor { + __u8 type[1]; + char id[5]; + __u8 version[1]; + __u8 data[2041]; +}; -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 hs_volume_descriptor { + __u8 foo[8]; + __u8 type[1]; + char id[5]; + __u8 version[1]; + __u8 data[2033]; }; -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 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 trace_uprobe_filter { - rwlock_t rwlock; - int nr_systemwide; - struct list_head perf_events; +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 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 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 fetch_insn { - enum fetch_op op; - union { - unsigned int param; - struct { - unsigned int size; - int offset; - }; - struct { - unsigned char basesize; - unsigned char lshift; - unsigned char rshift; - }; - unsigned long immediate; - void *data; - }; +struct 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; }; -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 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 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 cdrom_tocentry { + __u8 cdte_track; + __u8 cdte_adr: 4; + __u8 cdte_ctrl: 4; + __u8 cdte_format; + union cdrom_addr cdte_addr; + __u8 cdte_datamode; }; -struct traceprobe_parse_context { - struct trace_event_call *event; - const struct btf_param *params; - s32 nr_params; - const char *funcname; - unsigned int flags; - int offset; +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 eprobe_data { - struct trace_event_file *file; - struct trace_eprobe *ep; +struct nfs_readdir_descriptor { + struct file *file; + struct folio *folio; + struct dir_context *ctx; + unsigned long folio_index; + unsigned long folio_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 event_file_link { - struct trace_event_file *file; - struct list_head list; +struct nfs_cache_array_entry { + u64 cookie; + u64 ino; + const char *name; + unsigned int name_len; + unsigned char d_type; }; -struct bpf_local_storage_map_bucket; - -struct bpf_local_storage_map { - struct bpf_map map; - struct bpf_local_storage_map_bucket *buckets; - u32 bucket_log; - u16 elem_size; - u16 cache_idx; - struct bpf_mem_alloc selem_ma; - struct bpf_mem_alloc storage_ma; - bool bpf_ma; - long: 64; +struct nfs_cache_array { + u64 change_attr; + u64 last_cookie; + unsigned int size; + unsigned char folio_full: 1; + unsigned char folio_is_eof: 1; + unsigned char cookies_are_ordered: 1; + struct nfs_cache_array_entry array[0]; }; -struct bpf_local_storage_map_bucket { - struct hlist_head list; - raw_spinlock_t lock; +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 bpf_local_storage_data { - struct bpf_local_storage_map __attribute__((btf_type_tag("rcu"))) *smap; - u8 data[0]; +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 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; +enum key_state { + KEY_IS_UNINSTANTIATED = 0, + KEY_IS_POSITIVE = 1, }; -struct bpf_local_storage_cache { - spinlock_t idx_lock; - u64 idx_usage_counts[16]; +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]; }; -enum wb_state { - WB_registered = 0, - WB_writeback_running = 1, - WB_has_dirty_io = 2, - WB_start_all = 3, +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; }; -enum wb_stat_item { - WB_RECLAIMABLE = 0, - WB_WRITEBACK = 1, - WB_DIRTIED = 2, - WB_WRITTEN = 3, - NR_WB_STAT_ITEMS = 4, +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]; }; -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 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 vmap_block_queue { - spinlock_t lock; - struct list_head free; - struct xarray vmap_blocks; +struct keyring_read_iterator_context { + size_t buflen; + size_t count; + key_serial_t *buffer; }; -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 hashtab_node; -struct vmap_area { - unsigned long va_start; - unsigned long va_end; - struct rb_node rb_node; - struct list_head list; - union { - unsigned long subtree_max_size; - struct vm_struct *vm; - }; - unsigned long flags; +struct hashtab { + struct hashtab_node **htable; + u32 size; + u32 nel; }; -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, +struct symtab { + struct hashtab table; + u32 nprim; }; -enum fit_type { - NOTHING_FIT = 0, - FL_FIT_TYPE = 1, - LE_FIT_TYPE = 2, - RE_FIT_TYPE = 3, - NE_FIT_TYPE = 4, +struct avtab_node; + +struct avtab { + struct avtab_node **htable; + u32 nel; + u32 nslot; + u32 mask; }; -typedef unsigned int kasan_vmalloc_flags_t; +struct ebitmap_node; -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 ebitmap { + struct ebitmap_node *node; + u32 highbit; }; -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 class_datum; -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 role_datum; -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; -}; +struct user_datum; -typedef unsigned int pgtbl_mod_mask; +struct type_datum; -typedef int (*pte_fn_t)(pte_t *, unsigned long, void *); +struct cond_bool_datum; -struct trace_event_data_offsets_alloc_vmap_area {}; +struct cond_node; -struct trace_event_data_offsets_purge_vmap_area_lazy {}; +struct role_allow; -struct trace_event_data_offsets_free_vmap_area_noflush {}; +struct ocontext; -struct vmap_pfn_data { - unsigned long *pfns; - pgprot_t prot; - unsigned int idx; +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 ns_get_path_task_args { - const struct proc_ns_operations *ns_ops; - struct task_struct *task; +struct hashtab_node { + void *key; + void *datum; + struct hashtab_node *next; }; -typedef struct ns_common *ns_get_path_helper_t(void *); +struct common_datum; -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 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 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 common_datum { + u32 value; + struct symtab permissions; }; -struct signalfd_ctx { - sigset_t sigmask; +struct constraint_expr; + +struct constraint_node { + u32 permissions; + struct constraint_expr *expr; + struct constraint_node *next; }; -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 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 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 ebitmap_node { + struct ebitmap_node *next; + unsigned long maps[6]; + u32 startbit; }; -struct kernfs_fs_context { - struct kernfs_root *root; - void *ns_tag; - unsigned long magic; - bool new_sb_created; +struct type_set { + struct ebitmap types; + struct ebitmap negset; + u32 flags; }; -enum file_time_flags { - S_ATIME = 1, - S_MTIME = 2, - S_CTIME = 4, - S_VERSION = 8, +struct role_datum { + u32 value; + u32 bounds; + struct ebitmap dominates; + struct ebitmap types; }; -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 mls_level { + u32 sens; + struct ebitmap cat; }; -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 mls_range { + struct mls_level level[2]; }; -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 user_datum { + u32 value; + u32 bounds; + struct ebitmap roles; + struct mls_range range; + struct mls_level dfltlevel; }; -struct fatent_operations; +struct type_datum { + u32 value; + u32 bounds; + unsigned char primary; + unsigned char attribute; +}; -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; +struct avtab_key { + u16 source_type; + u16 target_type; + u16 target_class; + u16 specified; }; -struct fat_entry; +struct avtab_extended_perms; -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 *); +struct avtab_datum { + union { + u32 data; + struct avtab_extended_perms *xperms; + } u; }; -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 avtab_node { + struct avtab_key key; + struct avtab_datum datum; + struct avtab_node *next; }; -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 extended_perms_data { + u32 p[8]; }; -struct shortname_info { - unsigned char lower: 1; - unsigned char upper: 1; - unsigned char valid: 1; +struct avtab_extended_perms { + u8 specified; + u8 driver; + struct extended_perms_data perms; }; -struct nlmsvc_binding { - __be32 (*fopen)(struct svc_rqst *, struct nfs_fh *, struct file **, int); - void (*fclose)(struct file *); +struct cond_bool_datum { + __u32 value; + int state; }; -struct msg_msgseg; +struct cond_expr_node; -struct msg_msg { - struct list_head m_list; - long m_type; - size_t m_ts; - struct msg_msgseg *next; - void *security; +struct cond_expr { + struct cond_expr_node *nodes; + u32 len; }; -struct msg_msgseg { - struct msg_msgseg *next; +struct cond_av_list { + struct avtab_node **nodes; + u32 len; }; -struct nlmsg_perm { - u16 nlmsg_type; - u32 perm; +struct cond_node { + int cur_state; + struct cond_expr expr; + struct cond_av_list true_list; + struct cond_av_list false_list; }; -struct sel_netport_bkt { - int size; - struct list_head list; +struct cond_expr_node { + u32 expr_type; + u32 boolean; }; -struct netport_security_struct { - u32 sid; - u16 port; - u8 protocol; +struct role_allow { + u32 role; + u32 new_role; + struct role_allow *next; }; -struct sel_netport { - struct netport_security_struct psec; - struct list_head list; - struct callback_head rcu; +struct context { + u32 user; + u32 role; + u32 type; + u32 len; + struct mls_range range; + char *str; }; -struct hashtab_info { - u32 slots_used; - u32 max_chain_len; +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 level_datum { - struct mls_level *level; - unsigned char isalias; +struct genfs { + char *fstype; + struct ocontext *head; + struct genfs *next; }; -struct range_trans { - u32 source_type; - u32 target_type; - u32 target_class; +struct policy_file { + char *data; + size_t len; }; -struct cat_datum { - u32 value; - unsigned char isalias; +struct cond_insertf_data { + struct policydb *p; + struct avtab_node **dst; + struct cond_av_list *other; }; -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, +struct extended_perms_decision { + u8 used; + u8 driver; + struct extended_perms_data *allowed; + struct extended_perms_data *auditallow; + struct extended_perms_data *dontaudit; }; -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 extended_perms { + u16 len; + struct extended_perms_data drivers; }; -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 policy_data { + struct policydb *p; + void *fp; }; -struct io_poll { - struct file *file; - struct wait_queue_head *head; - __poll_t events; - int retries; - struct wait_queue_entry wait; +enum { + CRYPTO_MSG_ALG_REQUEST = 0, + CRYPTO_MSG_ALG_REGISTER = 1, + CRYPTO_MSG_ALG_LOADED = 2, }; -struct async_poll { - union { - struct io_poll poll; - struct io_cache_entry cache; - }; - struct io_poll *double_poll; +struct crypto_larval { + struct crypto_alg alg; + struct crypto_alg *adult; + struct completion completion; + u32 mask; + bool test_started; }; -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 { + CRYPTOA_UNSPEC = 0, + CRYPTOA_ALG = 1, + CRYPTOA_TYPE = 2, + __CRYPTOA_MAX = 3, }; -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 rtattr { + unsigned short rta_len; + unsigned short rta_type; }; -struct acpi_data_node { - const char *name; - acpi_handle handle; - struct fwnode_handle fwnode; - struct fwnode_handle *parent; - struct acpi_device_data data; - struct list_head sibling; - struct kobject kobj; - struct completion kobj_done; +struct crypto_attr_type { + u32 type; + u32 mask; }; -struct acpi_device_properties { - const guid_t *guid; - union acpi_object *properties; - struct list_head list; - void **bufs; +struct crypto_attr_alg { + char name[128]; }; -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 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; +}; -typedef enum { - ACPI_IMODE_LOAD_PASS1 = 1, - ACPI_IMODE_LOAD_PASS2 = 2, - ACPI_IMODE_EXECUTE = 3, -} acpi_interpreter_mode; +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; +}; -struct acpi_table_rsdp { - char signature[8]; - u8 checksum; - char oem_id[6]; - u8 revision; - u32 rsdt_physical_address; - u32 length; - u64 xsdt_physical_address; - u8 extended_checksum; - u8 reserved[3]; -} __attribute__((packed)); +typedef int filler_t(struct file *, struct folio *); -struct pnp_resource { +typedef struct { + struct folio *v; +} Sector; + +struct bd_holder_disk { struct list_head list; - struct resource res; + struct kobject *holder_dir; + int refcnt; }; -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)(); -}; +typedef void sg_free_fn(struct scatterlist *, unsigned int); -struct drm_auth { - drm_magic_t magic; -}; +typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); -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 sg_append_table { + struct sg_table sgt; + struct scatterlist *prv; + unsigned int total_nents; }; -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; +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; }; -struct drm_syncobj_transfer { - __u32 src_handle; - __u32 dst_handle; - __u64 src_point; - __u64 dst_point; - __u32 flags; - __u32 pad; -}; +typedef unsigned int iov_iter_extraction_t; -struct drm_syncobj_wait { - __u64 handles; - __s64 timeout_nsec; - __u32 count_handles; - __u32 flags; - __u32 first_signaled; - __u32 pad; +struct once_work { + struct work_struct work; + struct static_key_true *key; + struct module *module; }; -struct drm_syncobj_timeline_wait { - __u64 handles; - __u64 points; - __s64 timeout_nsec; - __u32 count_handles; - __u32 flags; - __u32 first_signaled; - __u32 pad; +struct reciprocal_value_adv { + u32 m; + u8 sh; + u8 exp; + bool is_wide_m; }; -struct drm_syncobj_create { - __u32 handle; - __u32 flags; -}; +struct mpi_ec_ctx; -struct drm_syncobj_destroy { - __u32 handle; - __u32 pad; +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 drm_syncobj_handle { - __u32 handle; - __u32 flags; - __s32 fd; - __u32 pad; -}; +struct barrett_ctx_s; -struct drm_syncobj_array { - __u64 handles; - __u32 count_handles; - __u32 pad; -}; +typedef struct barrett_ctx_s *mpi_barrett_t; -struct drm_syncobj_timeline_array { - __u64 handles; - __u64 points; - __u32 count_handles; - __u32 flags; +enum gcry_mpi_ec_models { + MPI_EC_WEIERSTRASS = 0, + MPI_EC_MONTGOMERY = 1, + MPI_EC_EDWARDS = 2, }; -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 *bo; +enum ecc_dialects { + ECC_DIALECT_STANDARD = 0, + ECC_DIALECT_ED25519 = 1, + ECC_DIALECT_SAFECURVE = 2, }; -struct ttm_transfer_obj { - struct ttm_buffer_object base; - struct ttm_buffer_object *bo; -}; +struct gcry_mpi_point; -struct ttm_kmap_iter_ops; +typedef struct gcry_mpi_point *MPI_POINT; -struct ttm_kmap_iter { - const struct ttm_kmap_iter_ops *ops; +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 ttm_kmap_iter_tt { - struct ttm_kmap_iter base; - struct ttm_tt *tt; - pgprot_t prot; +struct gcry_mpi_point { + MPI x; + MPI y; + MPI z; }; -struct ttm_kmap_iter_linear_io { - struct ttm_kmap_iter base; - struct iosys_map dmap; - bool needs_unmap; +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, }; -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; -}; +typedef struct { + unsigned char op; + unsigned char bits; + unsigned short val; +} code; -enum { - DEBUG_FENCE_IDLE = 0, - DEBUG_FENCE_NOTIFY = 1, -}; +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 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 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]; }; -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 inflate_workspace { + struct inflate_state inflate_state; + unsigned char working_window[32768]; }; -struct ct_incoming_msg { - struct list_head link; - u32 size; - u32 msg[0]; -}; +typedef enum { + CODES = 0, + LENS = 1, + DISTS = 2, +} codetype; -struct ct_request { - struct list_head link; - u32 fence; - u32 status; - u32 response_len; - u32 *response_buf; -}; +typedef unsigned int uInt; + +typedef uint8_t U8; + +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 __kernel_long_t __kernel_ptrdiff_t; typedef __kernel_ptrdiff_t ptrdiff_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 ZSTD_DDict_s { + void *dictBuffer; + const void *dictContent; + size_t dictSize; + ZSTD_entropyDTables_t entropy; + U32 dictID; + U32 entropyPresent; + ZSTD_customMem cMem; }; -struct intel_dmc { - struct drm_i915_private *i915; - struct work_struct work; - const char *fw_path; - u32 max_fw_size; - u32 version; - struct dmc_fw_info dmc_info[5]; -}; +typedef enum { + not_streaming = 0, + is_streaming = 1, +} streaming_operation; -enum intel_dmc_id { - DMC_FW_MAIN = 0, - DMC_FW_PIPEA = 1, - DMC_FW_PIPEB = 2, - DMC_FW_PIPEC = 3, - DMC_FW_PIPED = 4, - DMC_FW_MAX = 5, -}; +typedef struct { + size_t litLength; + size_t matchLength; + size_t offset; +} seq_t; -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; -}; +typedef struct { + size_t state; + const ZSTD_seqSymbol *table; +} ZSTD_fseState; -struct intel_package_header { - u8 header_len; - u8 header_ver; - u8 reserved[10]; - u32 num_entries; -}; +typedef struct { + BIT_DStream_t DStream; + ZSTD_fseState stateLL; + ZSTD_fseState stateOffb; + ZSTD_fseState stateML; + size_t prevOffset[3]; +} seqState_t; -struct intel_dmc_header_base { - u32 signature; - u8 header_len; - u8 header_ver; - u16 dmcc_ver; - u32 project; - u32 fw_size; - u32 fw_version; +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 acpi_processor_errata { + u8 smp; + struct { + u8 throttle: 1; + u8 fdma: 1; + u8 reserved: 6; + u32 bmisx; + } piix4; }; -struct intel_fw_info { - u8 reserved1; - u8 dmc_id; - char stepping; - char substepping; - u32 offset; - u32 reserved2; +enum idle_boot_override { + IDLE_NO_OVERRIDE = 0, + IDLE_HALT = 1, + IDLE_NOMWAIT = 2, + IDLE_POLL = 3, }; -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 acpi_power_register { + u8 descriptor; + u16 length; + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_size; + u64 address; +} __attribute__((packed)); + +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 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]; +typedef u64 async_cookie_t; + +struct acpi_offsets { + size_t offset; + u8 mode; }; -struct firmware { - size_t size; - const u8 *data; - void *priv; +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, }; -struct stepping_info { - char stepping; - char substepping; +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, }; -struct virtio_gpu_rect { - __le32 x; - __le32 y; - __le32 width; - __le32 height; +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 virtio_gpu_display_one { - struct virtio_gpu_rect r; - __le32 enabled; - __le32 flags; +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, }; -struct virtio_gpu_ctrl_hdr { - __le32 type; - __le32 flags; - __le64 fence_id; - __le32 ctx_id; - __u8 ring_idx; - __u8 padding[3]; +enum dmi_entry_type { + DMI_ENTRY_BIOS = 0, + DMI_ENTRY_SYSTEM = 1, + DMI_ENTRY_BASEBOARD = 2, + DMI_ENTRY_CHASSIS = 3, + DMI_ENTRY_PROCESSOR = 4, + DMI_ENTRY_MEM_CONTROLLER = 5, + DMI_ENTRY_MEM_MODULE = 6, + DMI_ENTRY_CACHE = 7, + DMI_ENTRY_PORT_CONNECTOR = 8, + DMI_ENTRY_SYSTEM_SLOT = 9, + DMI_ENTRY_ONBOARD_DEVICE = 10, + DMI_ENTRY_OEMSTRINGS = 11, + DMI_ENTRY_SYSCONF = 12, + DMI_ENTRY_BIOS_LANG = 13, + DMI_ENTRY_GROUP_ASSOC = 14, + DMI_ENTRY_SYSTEM_EVENT_LOG = 15, + DMI_ENTRY_PHYS_MEM_ARRAY = 16, + DMI_ENTRY_MEM_DEVICE = 17, + DMI_ENTRY_32_MEM_ERROR = 18, + DMI_ENTRY_MEM_ARRAY_MAPPED_ADDR = 19, + DMI_ENTRY_MEM_DEV_MAPPED_ADDR = 20, + DMI_ENTRY_BUILTIN_POINTING_DEV = 21, + DMI_ENTRY_PORTABLE_BATTERY = 22, + DMI_ENTRY_SYSTEM_RESET = 23, + DMI_ENTRY_HW_SECURITY = 24, + DMI_ENTRY_SYSTEM_POWER_CONTROLS = 25, + DMI_ENTRY_VOLTAGE_PROBE = 26, + DMI_ENTRY_COOLING_DEV = 27, + DMI_ENTRY_TEMP_PROBE = 28, + DMI_ENTRY_ELECTRICAL_CURRENT_PROBE = 29, + DMI_ENTRY_OOB_REMOTE_ACCESS = 30, + DMI_ENTRY_BIS_ENTRY = 31, + DMI_ENTRY_SYSTEM_BOOT = 32, + DMI_ENTRY_MGMT_DEV = 33, + DMI_ENTRY_MGMT_DEV_COMPONENT = 34, + DMI_ENTRY_MGMT_DEV_THRES = 35, + DMI_ENTRY_MEM_CHANNEL = 36, + DMI_ENTRY_IPMI_DEV = 37, + DMI_ENTRY_SYS_POWER_SUPPLY = 38, + DMI_ENTRY_ADDITIONAL = 39, + DMI_ENTRY_ONBOARD_DEV_EXT = 40, + DMI_ENTRY_MGMT_CONTROLLER_HOST = 41, + DMI_ENTRY_INACTIVE = 126, + DMI_ENTRY_END_OF_TABLE = 127, }; -struct virtio_gpu_cursor_pos { - __le32 scanout_id; - __le32 x; - __le32 y; - __le32 padding; +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, }; -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; +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, }; -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; +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 virtio_gpu_queue { - struct virtqueue *vq; - spinlock_t qlock; - wait_queue_head_t ack_queue; - struct work_struct dequeue_work; - uint32_t seqno; +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 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 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 virtio_gpu_drv_capset; +struct power_supply_battery_info; -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 power_supply { + const struct power_supply_desc *desc; + char **supplied_to; + size_t num_supplicants; + char **supplied_from; + size_t num_supplies; + struct device_node *of_node; + void *drv_data; + struct device dev; + struct work_struct changed_work; + struct delayed_work deferred_register_work; + spinlock_t changed_lock; + bool changed; + bool initialized; + bool removing; + atomic_t use_cnt; + struct power_supply_battery_info *battery_info; + struct thermal_zone_device *tzd; + struct thermal_cooling_device *tcd; + 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; }; -struct virtio_gpu_drv_capset { - uint32_t id; - uint32_t max_version; - uint32_t max_size; +union power_supply_propval { + int intval; + const char *strval; }; -struct transport_container; +struct power_supply_maintenance_charge_table; -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 power_supply_battery_ocv_table; + +struct power_supply_resistance_temp_table; + +struct power_supply_vbat_ri_table; + +struct power_supply_battery_info { + unsigned int technology; + int energy_full_design_uwh; + int charge_full_design_uah; + int voltage_min_design_uv; + int voltage_max_design_uv; + int tricklecharge_current_ua; + int precharge_current_ua; + int precharge_voltage_max_uv; + int charge_term_current_ua; + int charge_restart_voltage_uv; + int overvoltage_limit_uv; + int constant_charge_current_max_ua; + int constant_charge_voltage_max_uv; + struct power_supply_maintenance_charge_table *maintenance_charge; + int maintenance_charge_size; + int alert_low_temp_charge_current_ua; + int alert_low_temp_charge_voltage_uv; + int alert_high_temp_charge_current_ua; + int alert_high_temp_charge_voltage_uv; + int factory_internal_resistance_uohm; + int factory_internal_resistance_charging_uohm; + int ocv_temp[20]; + int temp_ambient_alert_min; + int temp_ambient_alert_max; + int temp_alert_min; + int temp_alert_max; + int temp_min; + int temp_max; + struct power_supply_battery_ocv_table *ocv_table[20]; + int ocv_table_size[20]; + struct power_supply_resistance_temp_table *resist_table; + int resist_table_size; + struct power_supply_vbat_ri_table *vbat2ri_discharging; + int vbat2ri_discharging_size; + struct power_supply_vbat_ri_table *vbat2ri_charging; + int vbat2ri_charging_size; + int bti_resistance_ohm; + int bti_resistance_tolerance; }; -struct 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 power_supply_maintenance_charge_table { + int charge_current_max_ua; + int charge_voltage_max_uv; + int charge_safety_timer_minutes; }; -struct transport_container { - struct attribute_container ac; - const struct attribute_group *statistics; +struct power_supply_battery_ocv_table { + int ocv; + int capacity; }; -struct anon_transport_class { - struct transport_class tclass; - struct attribute_container container; +struct power_supply_resistance_temp_table { + int temp; + int resistance; }; -struct ata_eh_cmd_timeout_ent { - const u8 *commands; - const unsigned int *timeouts; +struct power_supply_vbat_ri_table { + int vbat_uv; + int ri_uohm; }; -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 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; }; -struct speed_down_verdict_arg { - u64 since; - int xfer_ok; - int nr_errors[8]; +typedef void (*async_func_t)(void *, async_cookie_t); + +struct dmi_header { + u8 type; + u8 length; + u16 handle; }; -struct rtl8169_private; +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; +}; -typedef void (*rtl_phy_cfg_fct)(struct rtl8169_private *, struct phy_device *); +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, +}; -struct phy_reg { - u16 reg; - u16 val; +struct acpi_dma_spec { + int chan_id; + int slave_id; + struct device *dev; }; -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, +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; }; -enum usb_phy_type { - USB_PHY_TYPE_UNDEFINED = 0, - USB_PHY_TYPE_USB2 = 1, - USB_PHY_TYPE_USB3 = 2, +struct acpi_dma_filter_info { + dma_cap_mask_t dma_cap; + dma_filter_fn filter_fn; }; -enum usb_phy_events { - USB_EVENT_NONE = 0, - USB_EVENT_VBUS = 1, - USB_EVENT_ID = 2, - USB_EVENT_CHARGER = 3, - USB_EVENT_ENUMERATED = 4, +enum cap_audit_type { + CAP_AUDIT_STATIC_DMAR = 0, + CAP_AUDIT_STATIC_IRQR = 1, + CAP_AUDIT_HOTPLUG_DMAR = 2, + CAP_AUDIT_HOTPLUG_IRQR = 3, }; -struct extcon_dev; +struct drm_mode_rmfb_work { + struct work_struct work; + struct list_head fbs; +}; -enum usb_charger_type { - UNKNOWN_TYPE = 0, - SDP_TYPE = 1, - DCP_TYPE = 2, - CDP_TYPE = 3, - ACA_TYPE = 4, +struct drm_mode_fb_cmd { + __u32 fb_id; + __u32 width; + __u32 height; + __u32 pitch; + __u32 bpp; + __u32 depth; + __u32 handle; }; -enum usb_charger_state { - USB_CHARGER_DEFAULT = 0, - USB_CHARGER_PRESENT = 1, - USB_CHARGER_ABSENT = 2, +struct drm_mode_fb_dirty_cmd { + __u32 fb_id; + __u32 flags; + __u32 color; + __u32 num_clips; + __u64 clips_ptr; }; -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 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 *bo; }; -struct usb_otg; +struct ttm_transfer_obj { + struct ttm_buffer_object base; + struct ttm_buffer_object *bo; +}; -struct usb_phy_io_ops; +struct ttm_kmap_iter_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 ttm_kmap_iter { + const struct ttm_kmap_iter_ops *ops; }; -struct usb_gadget; +struct ttm_kmap_iter_tt { + struct ttm_kmap_iter base; + struct ttm_tt *tt; + pgprot_t prot; +}; -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 ttm_kmap_iter_linear_io { + struct ttm_kmap_iter base; + struct iosys_map dmap; + bool needs_unmap; }; -struct usb_otg { - u8 default_a; - struct phy___2 *phy; - struct usb_phy *usb_phy; - struct usb_bus *host; - struct usb_gadget *gadget; - enum usb_otg_state state; - int (*set_host)(struct usb_otg *, struct usb_bus *); - int (*set_peripheral)(struct usb_otg *, struct usb_gadget *); - int (*set_vbus)(struct usb_otg *, bool); - int (*start_srp)(struct usb_otg *); - int (*start_hnp)(struct usb_otg *); +struct 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 usb_phy_io_ops { - int (*read)(struct usb_phy *, u32); - int (*write)(struct usb_phy *, u32, u32); +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, }; -enum ohci_rh_state { - OHCI_RH_HALTED = 0, - OHCI_RH_SUSPENDED = 1, - OHCI_RH_RUNNING = 2, +struct intel_gt_debugfs_file { + const char *name; + const struct file_operations *fops; + bool (*eval)(void *); }; -struct ed; +struct hwmon_ops; -struct td; +struct hwmon_channel_info; -struct urb_priv { - struct ed *ed; - u16 length; - u16 td_cnt; - struct list_head pending; - struct td *td[0]; +struct hwmon_chip_info { + const struct hwmon_ops *ops; + const struct hwmon_channel_info * const *info; }; -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; +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, }; -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 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 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 hwmon_channel_info { + enum hwmon_sensor_types type; + const u32 *config; }; -struct ohci_roothub_regs { - __hc32 a; - __hc32 b; - __hc32 status; - __hc32 portstatus[15]; +struct sensor_device_attribute { + struct device_attribute dev_attr; + int index; }; -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 hwm_energy_info { + u32 reg_val_prev; + long accum_energy; }; -struct ohci_hcca { - __hc32 int_table[32]; - __hc32 frame_no; - __hc32 done_head; - u8 reserved_for_hc[116]; - u8 what[4]; +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; + bool reset_in_progress; + wait_queue_head_t waitq; }; -typedef struct urb_priv urb_priv_t; +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 debug_buffer { - ssize_t (*fill_func)(struct debug_buffer *); - struct ohci_hcd *ohci; - struct mutex mutex; - size_t count; - char *page; +struct i915_hwmon { + struct hwm_drvdata ddat; + struct hwm_drvdata ddat_gt[2]; + struct mutex hwmon_lock; + struct hwm_reg rg; + int scl_shift_power; + int scl_shift_energy; + int scl_shift_time; }; -struct ohci_driver_overrides { - const char *product_desc; - size_t extra_priv_size; - int (*reset)(struct usb_hcd *); +enum hwmon_energy_attributes { + hwmon_energy_enable = 0, + hwmon_energy_input = 1, + hwmon_energy_label = 2, }; -struct lifebook_data { - struct input_dev *dev2; - char phys[32]; +enum hwmon_in_attributes { + hwmon_in_enable = 0, + hwmon_in_input = 1, + hwmon_in_min = 2, + hwmon_in_max = 3, + hwmon_in_lcrit = 4, + hwmon_in_crit = 5, + hwmon_in_average = 6, + hwmon_in_lowest = 7, + hwmon_in_highest = 8, + hwmon_in_reset_history = 9, + hwmon_in_label = 10, + hwmon_in_alarm = 11, + hwmon_in_min_alarm = 12, + hwmon_in_max_alarm = 13, + hwmon_in_lcrit_alarm = 14, + hwmon_in_crit_alarm = 15, + hwmon_in_rated_min = 16, + hwmon_in_rated_max = 17, + hwmon_in_beep = 18, }; -struct thermal_hwmon_device { - char type[20]; - struct device *device; - int count; - struct list_head tz_list; - struct list_head node; +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, }; -struct thermal_hwmon_attr { - struct device_attribute attr; - char name[16]; +enum hwmon_curr_attributes { + hwmon_curr_enable = 0, + hwmon_curr_input = 1, + hwmon_curr_min = 2, + hwmon_curr_max = 3, + hwmon_curr_lcrit = 4, + hwmon_curr_crit = 5, + hwmon_curr_average = 6, + hwmon_curr_lowest = 7, + hwmon_curr_highest = 8, + hwmon_curr_reset_history = 9, + hwmon_curr_label = 10, + hwmon_curr_alarm = 11, + hwmon_curr_min_alarm = 12, + hwmon_curr_max_alarm = 13, + hwmon_curr_lcrit_alarm = 14, + hwmon_curr_crit_alarm = 15, + hwmon_curr_rated_min = 16, + hwmon_curr_rated_max = 17, + hwmon_curr_beep = 18, }; -struct 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 ch7017_priv { + u8 dummy; }; -struct dm_rq_target_io; +struct intel_dsi; -struct dm_rq_clone_bio_info { - struct bio *orig; - struct dm_rq_target_io *tio; - struct bio clone; -}; +typedef const u8 * (*fn_mipi_elem_exec)(struct intel_dsi *, const u8 *); -struct dm_rq_target_io { - struct mapped_device *md; - struct dm_target *ti; - struct request *orig; - struct request *clone; - struct kthread_work work; - blk_status_t error; - union map_info info; - struct dm_stats_aux stats_aux; - unsigned long duration_jiffies; - unsigned int n_sectors; - unsigned int completed; +enum 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, }; -struct wmi_device_id; +struct intel_dsi_host; -struct wmi_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; +}; -struct wmi_ioctl_buffer; +struct mipi_dsi_host_ops; -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 mipi_dsi_host { + struct device *dev; + const struct mipi_dsi_host_ops *ops; + struct list_head list; }; -struct wmi_device_id { - const char guid_string[37]; - const void *context; -}; +struct mipi_dsi_device; -struct wmi_device { - struct device dev; - bool setable; +struct intel_dsi_host { + struct mipi_dsi_host base; + struct intel_dsi *intel_dsi; + enum port port; + struct mipi_dsi_device *device; }; -struct wmi_ioctl_buffer { - __u64 length; - __u8 data[0]; -}; +struct mipi_dsi_msg; -struct bmof_priv { - union acpi_object *bmofdata; - struct bin_attribute bmof_bin_attr; +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 *); }; -enum { - HDA_DEV_CORE = 0, - HDA_DEV_LEGACY = 1, - HDA_DEV_ASOC = 2, +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; }; -typedef int (*hda_codec_patch_t)(struct hda_codec *); - -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 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 hda_codec_driver { - struct hdac_driver core; - const struct hda_device_id *id; +struct gpio_map { + u16 base_offset; + bool init; }; -struct pcpu_gen_cookie; +struct gpiod_lookup { + const char *key; + u16 chip_hwnum; + const char *con_id; + unsigned int idx; + unsigned long flags; +}; -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 gpiod_lookup_table { + struct list_head list; + const char *dev_id; + struct gpiod_lookup table[0]; }; -struct pcpu_gen_cookie { - local_t nesting; - u64 last; +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, }; -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 pinctrl_map_mux { + const char *group; + const char *function; }; -struct net_fill_args { - u32 portid; - u32 seq; - int flags; - int cmd; - int nsid; - bool add_ref; - int ref_nsid; +struct pinctrl_map_configs { + const char *group_or_pin; + unsigned long *configs; + unsigned int num_configs; }; -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; +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 gro_result { - GRO_MERGED = 0, - GRO_MERGED_FREE = 1, - GRO_HELD = 2, - GRO_NORMAL = 3, - GRO_CONSUMED = 4, +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, }; -struct percpu_free_defer { - struct callback_head rcu; - void __attribute__((btf_type_tag("percpu"))) *ptr; +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, }; -typedef enum gro_result gro_result_t; +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, +}; 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, + 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, }; -struct linkstate_reply_data { - struct ethnl_reply_data base; - int link; - int sqi; - int sqi_max; - struct ethtool_link_ext_stats link_stats; - bool link_ext_state_provided; - struct ethtool_link_ext_state_info ethtool_link_ext_state_info; +enum { + 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 nf_ct_bridge_info { - struct nf_hook_ops *ops; - unsigned int ops_size; - struct module *me; +struct acpi_gpio_params { + unsigned int crs_entry_index; + unsigned int line_index; + bool active_low; }; -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 i2c_adapter_lookup { + u16 slave_addr; + struct intel_dsi *intel_dsi; + acpi_handle dev_handle; }; -struct nf_ct_iter_data { - struct net *net; - void *data; - u32 portid; - int report; +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_OA_ENGINE_CLASS = 9, + DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE = 10, + DRM_I915_PERF_PROP_MAX = 11, }; -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; +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_OAM_FORMAT_MPEC8u64_B8_C8 = 13, + I915_OAM_FORMAT_MPEC8u32_B8_C8 = 14, + I915_OA_FORMAT_MAX = 15, }; 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, + START_TS = 0, + NOW_TS = 1, + DELTA_TS = 2, + JUMP_PREDICATE = 3, + DELTA_TARGET = 4, + N_CS_GPR = 5, }; -struct ip_sf_socklist { - unsigned int sl_max; - unsigned int sl_count; - struct callback_head rcu; - __be32 sl_addr[0]; +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 in_pktinfo { - int ipi_ifindex; - struct in_addr ipi_spec_dst; - struct in_addr ipi_addr; +struct i915_oa_config_bo { + struct llist_node node; + struct i915_oa_config *oa_config; + struct i915_vma *vma; }; -struct sock_ee_data_rfc4884 { - __u16 len; - __u8 flags; - __u8 reserved; +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 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 drm_i915_perf_open_param { + __u32 flags; + __u32 num_properties; + __u64 properties_ptr; }; -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 drm_i915_perf_record_header { + __u32 type; + __u16 pad; + __u16 size; }; -struct sockcm_cookie { - u64 transmit_time; - u32 mark; - u32 tsflags; +struct flex { + i915_reg_t reg; + u32 offset; + u32 value; }; -struct ip_mreq_source { - __be32 imr_multiaddr; - __be32 imr_interface; - __be32 imr_sourceaddr; +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 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 attribute_container; -struct group_source_req { - __u32 gsr_interface; - struct __kernel_sockaddr_storage gsr_group; - struct __kernel_sockaddr_storage gsr_source; +struct internal_container { + struct klist_node node; + struct attribute_container *cont; + struct device classdev; }; -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 ipcm_cookie { - struct sockcm_cookie sockc; - __be32 addr; - int oif; - struct ip_options_rcu *opt; - __u8 protocol; - __u8 ttl; - __s16 tos; - char priority; - __u16 gso_size; -}; - -struct 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 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 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)); - }; +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 ip_tunnel_encap_ops { - size_t (*encap_hlen)(struct ip_tunnel_encap *); - int (*build_header)(struct sk_buff *, struct ip_tunnel_encap *, u8 *, struct flowi4 *); - int (*err_handler)(struct sk_buff *, u32); -}; +struct ata_link; -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); -}; +typedef int (*ata_prereset_fn_t)(struct ata_link *, unsigned long); -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; -}; +typedef int (*ata_reset_fn_t)(struct ata_link *, unsigned int *, unsigned long); -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, -}; +typedef void (*ata_postreset_fn_t)(struct ata_link *, unsigned int *); -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 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 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 sw_activity { + OFF = 0, + BLINK_ON = 1, + BLINK_OFF = 2, }; -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, -}; +struct ata_queued_cmd; -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, -}; +struct ata_port; -enum { - LWTUNNEL_IP_OPT_VXLAN_UNSPEC = 0, - LWTUNNEL_IP_OPT_VXLAN_GBP = 1, - __LWTUNNEL_IP_OPT_VXLAN_MAX = 2, -}; +struct ata_device; -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, -}; +struct ata_taskfile; -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 ata_host; -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 ata_port_operations { + int (*qc_defer)(struct ata_queued_cmd *); + int (*check_atapi_dma)(struct ata_queued_cmd *); + enum ata_completion_errors (*qc_prep)(struct ata_queued_cmd *); + unsigned int (*qc_issue)(struct ata_queued_cmd *); + void (*qc_fill_rtf)(struct ata_queued_cmd *); + void (*qc_ncq_fill_rtf)(struct ata_port *, u64); + int (*cable_detect)(struct ata_port *); + unsigned int (*mode_filter)(struct ata_device *, unsigned int); + void (*set_piomode)(struct ata_port *, struct ata_device *); + void (*set_dmamode)(struct ata_port *, struct ata_device *); + int (*set_mode)(struct ata_link *, struct ata_device **); + unsigned int (*read_id)(struct ata_device *, struct ata_taskfile *, __le16 *); + void (*dev_config)(struct ata_device *); + void (*freeze)(struct ata_port *); + void (*thaw)(struct ata_port *); + ata_prereset_fn_t prereset; + ata_reset_fn_t softreset; + ata_reset_fn_t hardreset; + ata_postreset_fn_t postreset; + ata_prereset_fn_t pmp_prereset; + ata_reset_fn_t pmp_softreset; + ata_reset_fn_t pmp_hardreset; + ata_postreset_fn_t pmp_postreset; + void (*error_handler)(struct ata_port *); + void (*lost_interrupt)(struct ata_port *); + void (*post_internal_cmd)(struct ata_queued_cmd *); + void (*sched_eh)(struct ata_port *); + void (*end_eh)(struct ata_port *); + int (*scr_read)(struct ata_link *, unsigned int, u32 *); + int (*scr_write)(struct ata_link *, unsigned int, u32); + void (*pmp_attach)(struct ata_port *); + void (*pmp_detach)(struct ata_port *); + int (*set_lpm)(struct ata_link *, enum ata_lpm_policy, unsigned int); + int (*port_suspend)(struct ata_port *, pm_message_t); + int (*port_resume)(struct ata_port *); + int (*port_start)(struct ata_port *); + void (*port_stop)(struct ata_port *); + void (*host_stop)(struct ata_host *); + void (*sff_dev_select)(struct ata_port *, unsigned int); + void (*sff_set_devctl)(struct ata_port *, u8); + u8 (*sff_check_status)(struct ata_port *); + u8 (*sff_check_altstatus)(struct ata_port *); + void (*sff_tf_load)(struct ata_port *, const struct ata_taskfile *); + void (*sff_tf_read)(struct ata_port *, struct ata_taskfile *); + void (*sff_exec_command)(struct ata_port *, const struct ata_taskfile *); + unsigned int (*sff_data_xfer)(struct ata_queued_cmd *, unsigned char *, unsigned int, int); + void (*sff_irq_on)(struct ata_port *); + bool (*sff_irq_check)(struct ata_port *); + void (*sff_irq_clear)(struct ata_port *); + void (*sff_drain_fifo)(struct ata_queued_cmd *); + void (*bmdma_setup)(struct ata_queued_cmd *); + void (*bmdma_start)(struct ata_queued_cmd *); + void (*bmdma_stop)(struct ata_queued_cmd *); + u8 (*bmdma_status)(struct ata_port *); + ssize_t (*em_show)(struct ata_port *, char *); + ssize_t (*em_store)(struct ata_port *, const char *, size_t); + ssize_t (*sw_activity_show)(struct ata_device *, char *); + ssize_t (*sw_activity_store)(struct ata_device *, enum sw_activity); + ssize_t (*transmit_led_message)(struct ata_port *, u32, ssize_t); + const struct ata_port_operations *inherits; }; -struct erspan_metadata { - int version; +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 { - __be32 index; - struct erspan_md2 md2; - } u; -}; - -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 xfrm_algo_desc; - -struct xfrm_algo_list { - struct xfrm_algo_desc *algs; - int entries; - u32 type; - u32 mask; + u8 error; + u8 feature; + }; + u8 nsect; + u8 lbal; + u8 lbam; + u8 lbah; + u8 device; + union { + u8 status; + u8 command; + }; + u32 auxiliary; }; -struct xfrm_algo_aead_info { - char *geniv; - u16 icv_truncbits; -}; +typedef void (*ata_qc_cb_t)(struct ata_queued_cmd *); -struct xfrm_algo_auth_info { - u16 icv_truncbits; - u16 icv_fullbits; +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 xfrm_algo_encr_info { - char *geniv; - u16 blockbits; - u16 defkeybits; +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 xfrm_algo_comp_info { - u16 threshold; +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 sadb_alg { - __u8 sadb_alg_id; - __u8 sadb_alg_ivlen; - __u16 sadb_alg_minbits; - __u16 sadb_alg_maxbits; - __u16 sadb_alg_reserved; +struct ata_eh_context { + struct ata_eh_info i; + int tries[2]; + int cmd_timeout_idx[16]; + unsigned int classes[2]; + unsigned int did_probe_mask; + unsigned int unloaded_mask; + unsigned int saved_ncq_enabled; + u8 saved_xfer_mode[2]; + unsigned long last_reset; }; -struct 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; +struct ata_ering_entry { + unsigned int eflags; + unsigned int err_mask; + u64 timestamp; }; -struct xfrm_aead_name { - const char *name; - int icvbits; +struct ata_ering { + int cursor; + struct ata_ering_entry ring[32]; }; -struct km_event; - -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 ata_cpr_log; -struct km_event { +struct ata_device { + struct ata_link *link; + unsigned int devno; + unsigned int horkage; + unsigned long flags; + struct scsi_device *sdev; + void *private_data; + union acpi_object *gtf_cache; + unsigned int gtf_filter; + struct device tdev; + u64 n_sectors; + u64 n_native_sectors; + unsigned int class; + unsigned long unpark_deadline; + u8 pio_mode; + u8 dma_mode; + u8 xfer_mode; + unsigned int xfer_shift; + unsigned int multi_count; + unsigned int max_sectors; + unsigned int cdb_len; + unsigned int pio_mask; + unsigned int mwdma_mask; + unsigned int udma_mask; + u16 cylinders; + u16 heads; + u16 sectors; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; union { - u32 hard; - u32 proto; - u32 byid; - u32 aevent; - u32 type; - } data; - u32 seq; - u32 portid; - u32 event; - struct net *net; + u16 id[256]; + u32 gscr[128]; + }; + u8 devslp_timing[8]; + u8 ncq_send_recv_cmds[20]; + u8 ncq_non_data_cmds[64]; + u32 zac_zoned_cap; + u32 zac_zones_optimal_open; + u32 zac_zones_optimal_nonseq; + u32 zac_zones_max_open; + struct ata_cpr_log *cpr_log; + u8 cdl[512]; + int spdn_cnt; + struct ata_ering ering; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct 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 ata_link { + struct ata_port *ap; + int pmp; + struct device tdev; + unsigned int active_tag; + u32 sactive; + unsigned int flags; + u32 saved_scontrol; + unsigned int hw_sata_spd_limit; + unsigned int sata_spd_limit; + unsigned int sata_spd; + enum ata_lpm_policy lpm_policy; + struct ata_eh_info eh_info; + struct ata_eh_context eh_context; + long: 64; + long: 64; + long: 64; + long: 64; + struct ata_device device[2]; + unsigned long last_lpm_change; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct xfrm_kmaddress { - xfrm_address_t local; - xfrm_address_t remote; - u32 reserved; - u16 family; +struct ata_port_stats { + unsigned long unhandled_irq; + unsigned long idle_irq; + unsigned long rw_reqbuf; }; -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; +struct ata_acpi_drive { + u32 pio; + u32 dma; }; -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, +struct ata_acpi_gtm { + struct ata_acpi_drive drive[2]; + u32 flags; }; -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 ata_bmdma_prd; -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, +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: 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 delayed_work scsi_rescan_task; + unsigned int hsm_task_state; + struct list_head eh_done_q; + wait_queue_head_t eh_wait_q; + int eh_tries; + struct completion park_req_pending; + pm_message_t pm_mesg; + enum ata_lpm_policy target_lpm_policy; + struct timer_list fastdrain_timer; + unsigned int fastdrain_cnt; + async_cookie_t cookie; + int em_message_type; + void *private_data; + struct ata_acpi_gtm __acpi_init_gtm; + u8 *ncq_sense_buf; + long: 64; + u8 sector_buf[512]; }; -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, +struct ata_cpr { + u8 num; + u8 num_storage_elements; + u64 start_lba; + u64 num_lbas; }; -enum { - XFRM_DEV_OFFLOAD_IN = 1, - XFRM_DEV_OFFLOAD_OUT = 2, - XFRM_DEV_OFFLOAD_FWD = 3, +struct ata_cpr_log { + u8 nr_cpr; + struct ata_cpr cpr[0]; }; -enum { - XFRM_DEV_OFFLOAD_UNSPECIFIED = 0, - XFRM_DEV_OFFLOAD_CRYPTO = 1, - XFRM_DEV_OFFLOAD_PACKET = 2, +struct ata_bmdma_prd { + __le32 addr; + __le32 flags_len; }; -enum { - XFRM_POLICY_IN = 0, - XFRM_POLICY_OUT = 1, - XFRM_POLICY_FWD = 2, - XFRM_POLICY_MASK = 3, - XFRM_POLICY_MAX = 3, +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 { - XFRM_SHARE_ANY = 0, - XFRM_SHARE_SESSION = 1, - XFRM_SHARE_USER = 2, - XFRM_SHARE_UNIQUE = 3, + LIBATA_MAX_PRD = 128, + LIBATA_DUMB_MAX_PRD = 64, + ATA_DEF_QUEUE = 1, + ATA_MAX_QUEUE = 32, + ATA_TAG_INTERNAL = 32, + ATA_SHORT_PAUSE = 16, + ATAPI_MAX_DRAIN = 16384, + ATA_ALL_DEVICES = 3, + ATA_SHT_EMULATED = 1, + ATA_SHT_THIS_ID = -1, + ATA_TFLAG_LBA48 = 1, + ATA_TFLAG_ISADDR = 2, + ATA_TFLAG_DEVICE = 4, + ATA_TFLAG_WRITE = 8, + ATA_TFLAG_LBA = 16, + ATA_TFLAG_FUA = 32, + ATA_TFLAG_POLLING = 64, + ATA_DFLAG_LBA = 1, + ATA_DFLAG_LBA48 = 2, + ATA_DFLAG_CDB_INTR = 4, + ATA_DFLAG_NCQ = 8, + ATA_DFLAG_FLUSH_EXT = 16, + ATA_DFLAG_ACPI_PENDING = 32, + ATA_DFLAG_ACPI_FAILED = 64, + ATA_DFLAG_AN = 128, + ATA_DFLAG_TRUSTED = 256, + ATA_DFLAG_FUA = 512, + ATA_DFLAG_DMADIR = 1024, + ATA_DFLAG_NCQ_SEND_RECV = 2048, + ATA_DFLAG_NCQ_PRIO = 4096, + ATA_DFLAG_CDL = 8192, + ATA_DFLAG_CFG_MASK = 16383, + ATA_DFLAG_PIO = 16384, + ATA_DFLAG_NCQ_OFF = 32768, + ATA_DFLAG_SLEEPING = 65536, + ATA_DFLAG_DUBIOUS_XFER = 131072, + ATA_DFLAG_NO_UNLOAD = 262144, + ATA_DFLAG_UNLOCK_HPA = 524288, + ATA_DFLAG_INIT_MASK = 1048575, + ATA_DFLAG_NCQ_PRIO_ENABLED = 1048576, + ATA_DFLAG_CDL_ENABLED = 2097152, + ATA_DFLAG_DETACH = 16777216, + ATA_DFLAG_DETACHED = 33554432, + ATA_DFLAG_DA = 67108864, + ATA_DFLAG_DEVSLP = 134217728, + ATA_DFLAG_ACPI_DISABLED = 268435456, + ATA_DFLAG_D_SENSE = 536870912, + ATA_DFLAG_ZAC = 1073741824, + ATA_DFLAG_FEATURES_MASK = 201341696, + ATA_DEV_UNKNOWN = 0, + ATA_DEV_ATA = 1, + ATA_DEV_ATA_UNSUP = 2, + ATA_DEV_ATAPI = 3, + ATA_DEV_ATAPI_UNSUP = 4, + ATA_DEV_PMP = 5, + ATA_DEV_PMP_UNSUP = 6, + ATA_DEV_SEMB = 7, + ATA_DEV_SEMB_UNSUP = 8, + ATA_DEV_ZAC = 9, + ATA_DEV_ZAC_UNSUP = 10, + ATA_DEV_NONE = 11, + ATA_LFLAG_NO_HRST = 2, + ATA_LFLAG_NO_SRST = 4, + ATA_LFLAG_ASSUME_ATA = 8, + ATA_LFLAG_ASSUME_SEMB = 16, + ATA_LFLAG_ASSUME_CLASS = 24, + ATA_LFLAG_NO_RETRY = 32, + ATA_LFLAG_DISABLED = 64, + ATA_LFLAG_SW_ACTIVITY = 128, + ATA_LFLAG_NO_LPM = 256, + ATA_LFLAG_RST_ONCE = 512, + ATA_LFLAG_CHANGED = 1024, + ATA_LFLAG_NO_DEBOUNCE_DELAY = 2048, + ATA_FLAG_SLAVE_POSS = 1, + ATA_FLAG_SATA = 2, + ATA_FLAG_NO_LPM = 4, + ATA_FLAG_NO_LOG_PAGE = 32, + ATA_FLAG_NO_ATAPI = 64, + ATA_FLAG_PIO_DMA = 128, + ATA_FLAG_PIO_LBA48 = 256, + ATA_FLAG_PIO_POLLING = 512, + ATA_FLAG_NCQ = 1024, + ATA_FLAG_NO_POWEROFF_SPINDOWN = 2048, + ATA_FLAG_NO_HIBERNATE_SPINDOWN = 4096, + ATA_FLAG_DEBUGMSG = 8192, + ATA_FLAG_FPDMA_AA = 16384, + ATA_FLAG_IGN_SIMPLEX = 32768, + ATA_FLAG_NO_IORDY = 65536, + ATA_FLAG_ACPI_SATA = 131072, + ATA_FLAG_AN = 262144, + ATA_FLAG_PMP = 524288, + ATA_FLAG_FPDMA_AUX = 1048576, + ATA_FLAG_EM = 2097152, + ATA_FLAG_SW_ACTIVITY = 4194304, + ATA_FLAG_NO_DIPM = 8388608, + ATA_FLAG_SAS_HOST = 16777216, + ATA_PFLAG_EH_PENDING = 1, + ATA_PFLAG_EH_IN_PROGRESS = 2, + ATA_PFLAG_FROZEN = 4, + ATA_PFLAG_RECOVERED = 8, + ATA_PFLAG_LOADING = 16, + ATA_PFLAG_SCSI_HOTPLUG = 64, + ATA_PFLAG_INITIALIZING = 128, + ATA_PFLAG_RESETTING = 256, + ATA_PFLAG_UNLOADING = 512, + ATA_PFLAG_UNLOADED = 1024, + ATA_PFLAG_RESUMING = 65536, + ATA_PFLAG_SUSPENDED = 131072, + ATA_PFLAG_PM_PENDING = 262144, + ATA_PFLAG_INIT_GTM_VALID = 524288, + ATA_PFLAG_PIO32 = 1048576, + ATA_PFLAG_PIO32CHANGE = 2097152, + ATA_PFLAG_EXTERNAL = 4194304, + ATA_QCFLAG_ACTIVE = 1, + ATA_QCFLAG_DMAMAP = 2, + ATA_QCFLAG_RTF_FILLED = 4, + ATA_QCFLAG_IO = 8, + ATA_QCFLAG_RESULT_TF = 16, + ATA_QCFLAG_CLEAR_EXCL = 32, + ATA_QCFLAG_QUIET = 64, + ATA_QCFLAG_RETRY = 128, + ATA_QCFLAG_HAS_CDL = 256, + ATA_QCFLAG_EH = 65536, + ATA_QCFLAG_SENSE_VALID = 131072, + ATA_QCFLAG_EH_SCHEDULED = 262144, + ATA_QCFLAG_EH_SUCCESS_CMD = 524288, + ATA_HOST_SIMPLEX = 1, + ATA_HOST_STARTED = 2, + ATA_HOST_PARALLEL_SCAN = 4, + ATA_HOST_IGNORE_ATA = 8, + ATA_HOST_NO_PART = 16, + ATA_HOST_NO_SSC = 32, + ATA_HOST_NO_DEVSLP = 64, + ATA_TMOUT_BOOT = 30000, + ATA_TMOUT_BOOT_QUICK = 7000, + ATA_TMOUT_INTERNAL_QUICK = 5000, + ATA_TMOUT_MAX_PARK = 30000, + ATA_TMOUT_FF_WAIT_LONG = 2000, + ATA_TMOUT_FF_WAIT = 800, + ATA_WAIT_AFTER_RESET = 150, + ATA_TMOUT_PMP_SRST_WAIT = 10000, + ATA_TMOUT_SPURIOUS_PHY = 10000, + BUS_UNKNOWN = 0, + BUS_DMA = 1, + BUS_IDLE = 2, + BUS_NOINTR = 3, + BUS_NODATA = 4, + BUS_TIMER = 5, + BUS_PIO = 6, + BUS_EDD = 7, + BUS_IDENTIFY = 8, + BUS_PACKET = 9, + PORT_UNKNOWN = 0, + PORT_ENABLED = 1, + PORT_DISABLED = 2, + ATA_NR_PIO_MODES = 7, + ATA_NR_MWDMA_MODES = 5, + ATA_NR_UDMA_MODES = 8, + ATA_SHIFT_PIO = 0, + ATA_SHIFT_MWDMA = 7, + ATA_SHIFT_UDMA = 12, + ATA_SHIFT_PRIO = 6, + ATA_PRIO_HIGH = 2, + ATA_DMA_PAD_SZ = 4, + ATA_ERING_SIZE = 32, + ATA_DEFER_LINK = 1, + ATA_DEFER_PORT = 2, + ATA_EH_DESC_LEN = 80, + ATA_EH_REVALIDATE = 1, + ATA_EH_SOFTRESET = 2, + ATA_EH_HARDRESET = 4, + ATA_EH_RESET = 6, + ATA_EH_ENABLE_LINK = 8, + ATA_EH_PARK = 32, + ATA_EH_GET_SUCCESS_SENSE = 64, + ATA_EH_SET_ACTIVE = 128, + ATA_EH_PERDEV_MASK = 225, + ATA_EH_ALL_ACTIONS = 15, + ATA_EHI_HOTPLUGGED = 1, + ATA_EHI_NO_AUTOPSY = 4, + ATA_EHI_QUIET = 8, + ATA_EHI_NO_RECOVERY = 16, + ATA_EHI_DID_SOFTRESET = 65536, + ATA_EHI_DID_HARDRESET = 131072, + ATA_EHI_PRINTINFO = 262144, + ATA_EHI_SETMODE = 524288, + ATA_EHI_POST_SETMODE = 1048576, + ATA_EHI_DID_RESET = 196608, + ATA_EHI_TO_SLAVE_MASK = 12, + ATA_EH_MAX_TRIES = 5, + ATA_LINK_RESUME_TRIES = 5, + ATA_EH_DEV_TRIES = 3, + ATA_EH_PMP_TRIES = 5, + ATA_EH_PMP_LINK_TRIES = 3, + SATA_PMP_RW_TIMEOUT = 3000, + ATA_EH_CMD_TIMEOUT_TABLE_SIZE = 8, + ATA_HORKAGE_DIAGNOSTIC = 1, + ATA_HORKAGE_NODMA = 2, + ATA_HORKAGE_NONCQ = 4, + ATA_HORKAGE_MAX_SEC_128 = 8, + ATA_HORKAGE_BROKEN_HPA = 16, + ATA_HORKAGE_DISABLE = 32, + ATA_HORKAGE_HPA_SIZE = 64, + ATA_HORKAGE_IVB = 256, + ATA_HORKAGE_STUCK_ERR = 512, + ATA_HORKAGE_BRIDGE_OK = 1024, + ATA_HORKAGE_ATAPI_MOD16_DMA = 2048, + ATA_HORKAGE_FIRMWARE_WARN = 4096, + ATA_HORKAGE_1_5_GBPS = 8192, + ATA_HORKAGE_NOSETXFER = 16384, + ATA_HORKAGE_BROKEN_FPDMA_AA = 32768, + ATA_HORKAGE_DUMP_ID = 65536, + ATA_HORKAGE_MAX_SEC_LBA48 = 131072, + ATA_HORKAGE_ATAPI_DMADIR = 262144, + ATA_HORKAGE_NO_NCQ_TRIM = 524288, + ATA_HORKAGE_NOLPM = 1048576, + ATA_HORKAGE_WD_BROKEN_LPM = 2097152, + ATA_HORKAGE_ZERO_AFTER_TRIM = 4194304, + ATA_HORKAGE_NO_DMA_LOG = 8388608, + ATA_HORKAGE_NOTRIM = 16777216, + ATA_HORKAGE_MAX_SEC_1024 = 33554432, + ATA_HORKAGE_MAX_TRIM_128M = 67108864, + ATA_HORKAGE_NO_NCQ_ON_ATI = 134217728, + ATA_HORKAGE_NO_ID_DEV_LOG = 268435456, + ATA_HORKAGE_NO_LOG_DIR = 536870912, + ATA_HORKAGE_NO_FUA = 1073741824, + ATA_DMA_MASK_ATA = 1, + ATA_DMA_MASK_ATAPI = 2, + ATA_DMA_MASK_CFA = 4, + ATAPI_READ = 0, + ATAPI_WRITE = 1, + ATAPI_READ_CD = 2, + ATAPI_PASS_THRU = 3, + ATAPI_MISC = 4, + ATA_TIMING_SETUP = 1, + ATA_TIMING_ACT8B = 2, + ATA_TIMING_REC8B = 4, + ATA_TIMING_CYC8B = 8, + ATA_TIMING_8BIT = 14, + ATA_TIMING_ACTIVE = 16, + ATA_TIMING_RECOVER = 32, + ATA_TIMING_DMACK_HOLD = 64, + ATA_TIMING_CYCLE = 128, + ATA_TIMING_UDMA = 256, + ATA_TIMING_ALL = 511, + ATA_ACPI_FILTER_SETXFER = 1, + ATA_ACPI_FILTER_LOCK = 2, + ATA_ACPI_FILTER_DIPM = 4, + ATA_ACPI_FILTER_FPDMA_OFFSET = 8, + ATA_ACPI_FILTER_FPDMA_AA = 16, + ATA_ACPI_FILTER_DEFAULT = 7, }; enum { - XFRM_POLICY_TYPE_MAIN = 0, - XFRM_POLICY_TYPE_SUB = 1, - XFRM_POLICY_TYPE_MAX = 2, - XFRM_POLICY_TYPE_ANY = 255, -}; - -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; + ATA_MAX_DEVICES = 2, + ATA_MAX_PRD = 256, + ATA_SECT_SIZE = 512, + ATA_MAX_SECTORS_128 = 128, + ATA_MAX_SECTORS = 256, + ATA_MAX_SECTORS_1024 = 1024, + ATA_MAX_SECTORS_LBA48 = 65535, + ATA_MAX_SECTORS_TAPE = 65535, + ATA_MAX_TRIM_RNUM = 64, + ATA_ID_WORDS = 256, + ATA_ID_CONFIG = 0, + ATA_ID_CYLS = 1, + ATA_ID_HEADS = 3, + ATA_ID_SECTORS = 6, + ATA_ID_SERNO = 10, + ATA_ID_BUF_SIZE = 21, + ATA_ID_FW_REV = 23, + ATA_ID_PROD = 27, + ATA_ID_MAX_MULTSECT = 47, + ATA_ID_DWORD_IO = 48, + ATA_ID_TRUSTED = 48, + ATA_ID_CAPABILITY = 49, + ATA_ID_OLD_PIO_MODES = 51, + ATA_ID_OLD_DMA_MODES = 52, + ATA_ID_FIELD_VALID = 53, + ATA_ID_CUR_CYLS = 54, + ATA_ID_CUR_HEADS = 55, + ATA_ID_CUR_SECTORS = 56, + ATA_ID_MULTSECT = 59, + ATA_ID_LBA_CAPACITY = 60, + ATA_ID_SWDMA_MODES = 62, + ATA_ID_MWDMA_MODES = 63, + ATA_ID_PIO_MODES = 64, + ATA_ID_EIDE_DMA_MIN = 65, + ATA_ID_EIDE_DMA_TIME = 66, + ATA_ID_EIDE_PIO = 67, + ATA_ID_EIDE_PIO_IORDY = 68, + ATA_ID_ADDITIONAL_SUPP = 69, + ATA_ID_QUEUE_DEPTH = 75, + ATA_ID_SATA_CAPABILITY = 76, + ATA_ID_SATA_CAPABILITY_2 = 77, + ATA_ID_FEATURE_SUPP = 78, + ATA_ID_MAJOR_VER = 80, + ATA_ID_COMMAND_SET_1 = 82, + ATA_ID_COMMAND_SET_2 = 83, + ATA_ID_CFSSE = 84, + ATA_ID_CFS_ENABLE_1 = 85, + ATA_ID_CFS_ENABLE_2 = 86, + ATA_ID_CSF_DEFAULT = 87, + ATA_ID_UDMA_MODES = 88, + ATA_ID_HW_CONFIG = 93, + ATA_ID_SPG = 98, + ATA_ID_LBA_CAPACITY_2 = 100, + ATA_ID_SECTOR_SIZE = 106, + ATA_ID_WWN = 108, + ATA_ID_LOGICAL_SECTOR_SIZE = 117, + ATA_ID_COMMAND_SET_3 = 119, + ATA_ID_COMMAND_SET_4 = 120, + ATA_ID_LAST_LUN = 126, + ATA_ID_DLF = 128, + ATA_ID_CSFO = 129, + ATA_ID_CFA_POWER = 160, + ATA_ID_CFA_KEY_MGMT = 162, + ATA_ID_CFA_MODES = 163, + ATA_ID_DATA_SET_MGMT = 169, + ATA_ID_SCT_CMD_XPORT = 206, + ATA_ID_ROT_SPEED = 217, + ATA_ID_PIO4 = 2, + ATA_ID_SERNO_LEN = 20, + ATA_ID_FW_REV_LEN = 8, + ATA_ID_PROD_LEN = 40, + ATA_ID_WWN_LEN = 8, + ATA_PCI_CTL_OFS = 2, + ATA_PIO0 = 1, + ATA_PIO1 = 3, + ATA_PIO2 = 7, + ATA_PIO3 = 15, + ATA_PIO4 = 31, + ATA_PIO5 = 63, + ATA_PIO6 = 127, + ATA_PIO4_ONLY = 16, + ATA_SWDMA0 = 1, + ATA_SWDMA1 = 3, + ATA_SWDMA2 = 7, + ATA_SWDMA2_ONLY = 4, + ATA_MWDMA0 = 1, + ATA_MWDMA1 = 3, + ATA_MWDMA2 = 7, + ATA_MWDMA3 = 15, + ATA_MWDMA4 = 31, + ATA_MWDMA12_ONLY = 6, + ATA_MWDMA2_ONLY = 4, + ATA_UDMA0 = 1, + ATA_UDMA1 = 3, + ATA_UDMA2 = 7, + ATA_UDMA3 = 15, + ATA_UDMA4 = 31, + ATA_UDMA5 = 63, + ATA_UDMA6 = 127, + ATA_UDMA7 = 255, + ATA_UDMA24_ONLY = 20, + ATA_UDMA_MASK_40C = 7, + ATA_PRD_SZ = 8, + ATA_PRD_TBL_SZ = 2048, + ATA_PRD_EOT = -2147483648, + ATA_DMA_TABLE_OFS = 4, + ATA_DMA_STATUS = 2, + ATA_DMA_CMD = 0, + ATA_DMA_WR = 8, + ATA_DMA_START = 1, + ATA_DMA_INTR = 4, + ATA_DMA_ERR = 2, + ATA_DMA_ACTIVE = 1, + ATA_HOB = 128, + ATA_NIEN = 2, + ATA_LBA = 64, + ATA_DEV1 = 16, + ATA_DEVICE_OBS = 160, + ATA_DEVCTL_OBS = 8, + ATA_BUSY = 128, + ATA_DRDY = 64, + ATA_DF = 32, + ATA_DSC = 16, + ATA_DRQ = 8, + ATA_CORR = 4, + ATA_SENSE = 2, + ATA_ERR = 1, + ATA_SRST = 4, + ATA_ICRC = 128, + ATA_BBK = 128, + ATA_UNC = 64, + ATA_MC = 32, + ATA_IDNF = 16, + ATA_MCR = 8, + ATA_ABORTED = 4, + ATA_TRK0NF = 2, + ATA_AMNF = 1, + ATAPI_LFS = 240, + ATAPI_EOM = 2, + ATAPI_ILI = 1, + ATAPI_IO = 2, + ATAPI_COD = 1, + ATA_REG_DATA = 0, + ATA_REG_ERR = 1, + ATA_REG_NSECT = 2, + ATA_REG_LBAL = 3, + ATA_REG_LBAM = 4, + ATA_REG_LBAH = 5, + ATA_REG_DEVICE = 6, + ATA_REG_STATUS = 7, + ATA_REG_FEATURE = 1, + ATA_REG_CMD = 7, + ATA_REG_BYTEL = 4, + ATA_REG_BYTEH = 5, + ATA_REG_DEVSEL = 6, + ATA_REG_IRQ = 2, + ATA_CMD_DEV_RESET = 8, + ATA_CMD_CHK_POWER = 229, + ATA_CMD_STANDBY = 226, + ATA_CMD_IDLE = 227, + ATA_CMD_EDD = 144, + ATA_CMD_DOWNLOAD_MICRO = 146, + ATA_CMD_DOWNLOAD_MICRO_DMA = 147, + ATA_CMD_NOP = 0, + ATA_CMD_FLUSH = 231, + ATA_CMD_FLUSH_EXT = 234, + ATA_CMD_ID_ATA = 236, + ATA_CMD_ID_ATAPI = 161, + ATA_CMD_SERVICE = 162, + ATA_CMD_READ = 200, + ATA_CMD_READ_EXT = 37, + ATA_CMD_READ_QUEUED = 38, + ATA_CMD_READ_STREAM_EXT = 43, + ATA_CMD_READ_STREAM_DMA_EXT = 42, + ATA_CMD_WRITE = 202, + ATA_CMD_WRITE_EXT = 53, + ATA_CMD_WRITE_QUEUED = 54, + ATA_CMD_WRITE_STREAM_EXT = 59, + ATA_CMD_WRITE_STREAM_DMA_EXT = 58, + ATA_CMD_WRITE_FUA_EXT = 61, + ATA_CMD_WRITE_QUEUED_FUA_EXT = 62, + ATA_CMD_FPDMA_READ = 96, + ATA_CMD_FPDMA_WRITE = 97, + ATA_CMD_NCQ_NON_DATA = 99, + ATA_CMD_FPDMA_SEND = 100, + ATA_CMD_FPDMA_RECV = 101, + ATA_CMD_PIO_READ = 32, + ATA_CMD_PIO_READ_EXT = 36, + ATA_CMD_PIO_WRITE = 48, + ATA_CMD_PIO_WRITE_EXT = 52, + ATA_CMD_READ_MULTI = 196, + ATA_CMD_READ_MULTI_EXT = 41, + ATA_CMD_WRITE_MULTI = 197, + ATA_CMD_WRITE_MULTI_EXT = 57, + ATA_CMD_WRITE_MULTI_FUA_EXT = 206, + ATA_CMD_SET_FEATURES = 239, + ATA_CMD_SET_MULTI = 198, + ATA_CMD_PACKET = 160, + ATA_CMD_VERIFY = 64, + ATA_CMD_VERIFY_EXT = 66, + ATA_CMD_WRITE_UNCORR_EXT = 69, + ATA_CMD_STANDBYNOW1 = 224, + ATA_CMD_IDLEIMMEDIATE = 225, + ATA_CMD_SLEEP = 230, + ATA_CMD_INIT_DEV_PARAMS = 145, + ATA_CMD_READ_NATIVE_MAX = 248, + ATA_CMD_READ_NATIVE_MAX_EXT = 39, + ATA_CMD_SET_MAX = 249, + ATA_CMD_SET_MAX_EXT = 55, + ATA_CMD_READ_LOG_EXT = 47, + ATA_CMD_WRITE_LOG_EXT = 63, + ATA_CMD_READ_LOG_DMA_EXT = 71, + ATA_CMD_WRITE_LOG_DMA_EXT = 87, + ATA_CMD_TRUSTED_NONDATA = 91, + ATA_CMD_TRUSTED_RCV = 92, + ATA_CMD_TRUSTED_RCV_DMA = 93, + ATA_CMD_TRUSTED_SND = 94, + ATA_CMD_TRUSTED_SND_DMA = 95, + ATA_CMD_PMP_READ = 228, + ATA_CMD_PMP_READ_DMA = 233, + ATA_CMD_PMP_WRITE = 232, + ATA_CMD_PMP_WRITE_DMA = 235, + ATA_CMD_CONF_OVERLAY = 177, + ATA_CMD_SEC_SET_PASS = 241, + ATA_CMD_SEC_UNLOCK = 242, + ATA_CMD_SEC_ERASE_PREP = 243, + ATA_CMD_SEC_ERASE_UNIT = 244, + ATA_CMD_SEC_FREEZE_LOCK = 245, + ATA_CMD_SEC_DISABLE_PASS = 246, + ATA_CMD_CONFIG_STREAM = 81, + ATA_CMD_SMART = 176, + ATA_CMD_MEDIA_LOCK = 222, + ATA_CMD_MEDIA_UNLOCK = 223, + ATA_CMD_DSM = 6, + ATA_CMD_CHK_MED_CRD_TYP = 209, + ATA_CMD_CFA_REQ_EXT_ERR = 3, + ATA_CMD_CFA_WRITE_NE = 56, + ATA_CMD_CFA_TRANS_SECT = 135, + ATA_CMD_CFA_ERASE = 192, + ATA_CMD_CFA_WRITE_MULT_NE = 205, + ATA_CMD_REQ_SENSE_DATA = 11, + ATA_CMD_SANITIZE_DEVICE = 180, + ATA_CMD_ZAC_MGMT_IN = 74, + ATA_CMD_ZAC_MGMT_OUT = 159, + ATA_CMD_RESTORE = 16, + ATA_SUBCMD_FPDMA_RECV_RD_LOG_DMA_EXT = 1, + ATA_SUBCMD_FPDMA_RECV_ZAC_MGMT_IN = 2, + ATA_SUBCMD_FPDMA_SEND_DSM = 0, + ATA_SUBCMD_FPDMA_SEND_WR_LOG_DMA_EXT = 2, + ATA_SUBCMD_NCQ_NON_DATA_ABORT_QUEUE = 0, + ATA_SUBCMD_NCQ_NON_DATA_SET_FEATURES = 5, + ATA_SUBCMD_NCQ_NON_DATA_ZERO_EXT = 6, + ATA_SUBCMD_NCQ_NON_DATA_ZAC_MGMT_OUT = 7, + ATA_SUBCMD_ZAC_MGMT_IN_REPORT_ZONES = 0, + ATA_SUBCMD_ZAC_MGMT_OUT_CLOSE_ZONE = 1, + ATA_SUBCMD_ZAC_MGMT_OUT_FINISH_ZONE = 2, + ATA_SUBCMD_ZAC_MGMT_OUT_OPEN_ZONE = 3, + ATA_SUBCMD_ZAC_MGMT_OUT_RESET_WRITE_POINTER = 4, + ATA_LOG_DIRECTORY = 0, + ATA_LOG_SATA_NCQ = 16, + ATA_LOG_NCQ_NON_DATA = 18, + ATA_LOG_NCQ_SEND_RECV = 19, + ATA_LOG_CDL = 24, + ATA_LOG_CDL_SIZE = 512, + ATA_LOG_IDENTIFY_DEVICE = 48, + ATA_LOG_SENSE_NCQ = 15, + ATA_LOG_SENSE_NCQ_SIZE = 1024, + ATA_LOG_CONCURRENT_POSITIONING_RANGES = 71, + ATA_LOG_SUPPORTED_CAPABILITIES = 3, + ATA_LOG_CURRENT_SETTINGS = 4, + ATA_LOG_SECURITY = 6, + ATA_LOG_SATA_SETTINGS = 8, + ATA_LOG_ZONED_INFORMATION = 9, + ATA_LOG_DEVSLP_OFFSET = 48, + ATA_LOG_DEVSLP_SIZE = 8, + ATA_LOG_DEVSLP_MDAT = 0, + ATA_LOG_DEVSLP_MDAT_MASK = 31, + ATA_LOG_DEVSLP_DETO = 1, + ATA_LOG_DEVSLP_VALID = 7, + ATA_LOG_DEVSLP_VALID_MASK = 128, + ATA_LOG_NCQ_PRIO_OFFSET = 9, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_SEND_RECV_SUBCMDS_DSM = 1, + ATA_LOG_NCQ_SEND_RECV_DSM_OFFSET = 4, + ATA_LOG_NCQ_SEND_RECV_DSM_TRIM = 1, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_OFFSET = 8, + ATA_LOG_NCQ_SEND_RECV_RD_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_OFFSET = 12, + ATA_LOG_NCQ_SEND_RECV_WR_LOG_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OFFSET = 16, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_OUT_SUPPORTED = 1, + ATA_LOG_NCQ_SEND_RECV_ZAC_MGMT_IN_SUPPORTED = 2, + ATA_LOG_NCQ_SEND_RECV_SIZE = 20, + ATA_LOG_NCQ_NON_DATA_SUBCMDS_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_OFFSET = 0, + ATA_LOG_NCQ_NON_DATA_ABORT_NCQ = 1, + ATA_LOG_NCQ_NON_DATA_ABORT_ALL = 2, + ATA_LOG_NCQ_NON_DATA_ABORT_STREAMING = 4, + ATA_LOG_NCQ_NON_DATA_ABORT_NON_STREAMING = 8, + ATA_LOG_NCQ_NON_DATA_ABORT_SELECTED = 16, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OFFSET = 28, + ATA_LOG_NCQ_NON_DATA_ZAC_MGMT_OUT = 1, + ATA_LOG_NCQ_NON_DATA_SIZE = 64, + ATA_CMD_READ_LONG = 34, + ATA_CMD_READ_LONG_ONCE = 35, + ATA_CMD_WRITE_LONG = 50, + ATA_CMD_WRITE_LONG_ONCE = 51, + SETFEATURES_XFER = 3, + XFER_UDMA_7 = 71, + XFER_UDMA_6 = 70, + XFER_UDMA_5 = 69, + XFER_UDMA_4 = 68, + XFER_UDMA_3 = 67, + XFER_UDMA_2 = 66, + XFER_UDMA_1 = 65, + XFER_UDMA_0 = 64, + XFER_MW_DMA_4 = 36, + XFER_MW_DMA_3 = 35, + XFER_MW_DMA_2 = 34, + XFER_MW_DMA_1 = 33, + XFER_MW_DMA_0 = 32, + XFER_SW_DMA_2 = 18, + XFER_SW_DMA_1 = 17, + XFER_SW_DMA_0 = 16, + XFER_PIO_6 = 14, + XFER_PIO_5 = 13, + XFER_PIO_4 = 12, + XFER_PIO_3 = 11, + XFER_PIO_2 = 10, + XFER_PIO_1 = 9, + XFER_PIO_0 = 8, + XFER_PIO_SLOW = 0, + SETFEATURES_WC_ON = 2, + SETFEATURES_WC_OFF = 130, + SETFEATURES_RA_ON = 170, + SETFEATURES_RA_OFF = 85, + SETFEATURES_AAM_ON = 66, + SETFEATURES_AAM_OFF = 194, + SETFEATURES_SPINUP = 7, + SETFEATURES_SPINUP_TIMEOUT = 30000, + SETFEATURES_SATA_ENABLE = 16, + SETFEATURES_SATA_DISABLE = 144, + SETFEATURES_CDL = 13, + SATA_FPDMA_OFFSET = 1, + SATA_FPDMA_AA = 2, + SATA_DIPM = 3, + SATA_FPDMA_IN_ORDER = 4, + SATA_AN = 5, + SATA_SSP = 6, + SATA_DEVSLP = 9, + SETFEATURE_SENSE_DATA = 195, + SETFEATURE_SENSE_DATA_SUCC_NCQ = 196, + ATA_SET_MAX_ADDR = 0, + ATA_SET_MAX_PASSWD = 1, + ATA_SET_MAX_LOCK = 2, + ATA_SET_MAX_UNLOCK = 3, + ATA_SET_MAX_FREEZE_LOCK = 4, + ATA_SET_MAX_PASSWD_DMA = 5, + ATA_SET_MAX_UNLOCK_DMA = 6, + ATA_DCO_RESTORE = 192, + ATA_DCO_FREEZE_LOCK = 193, + ATA_DCO_IDENTIFY = 194, + ATA_DCO_SET = 195, + ATA_SMART_ENABLE = 216, + ATA_SMART_READ_VALUES = 208, + ATA_SMART_READ_THRESHOLDS = 209, + ATA_DSM_TRIM = 1, + ATA_SMART_LBAM_PASS = 79, + ATA_SMART_LBAH_PASS = 194, + ATAPI_PKT_DMA = 1, + ATAPI_DMADIR = 4, + ATAPI_CDB_LEN = 16, + SATA_PMP_MAX_PORTS = 15, + SATA_PMP_CTRL_PORT = 15, + SATA_PMP_GSCR_DWORDS = 128, + SATA_PMP_GSCR_PROD_ID = 0, + SATA_PMP_GSCR_REV = 1, + SATA_PMP_GSCR_PORT_INFO = 2, + SATA_PMP_GSCR_ERROR = 32, + SATA_PMP_GSCR_ERROR_EN = 33, + SATA_PMP_GSCR_FEAT = 64, + SATA_PMP_GSCR_FEAT_EN = 96, + SATA_PMP_PSCR_STATUS = 0, + SATA_PMP_PSCR_ERROR = 1, + SATA_PMP_PSCR_CONTROL = 2, + SATA_PMP_FEAT_BIST = 1, + SATA_PMP_FEAT_PMREQ = 2, + SATA_PMP_FEAT_DYNSSC = 4, + SATA_PMP_FEAT_NOTIFY = 8, + ATA_CBL_NONE = 0, + ATA_CBL_PATA40 = 1, + ATA_CBL_PATA80 = 2, + ATA_CBL_PATA40_SHORT = 3, + ATA_CBL_PATA_UNK = 4, + ATA_CBL_PATA_IGN = 5, + ATA_CBL_SATA = 6, + SCR_STATUS = 0, + SCR_ERROR = 1, + SCR_CONTROL = 2, + SCR_ACTIVE = 3, + SCR_NOTIFICATION = 4, + SERR_DATA_RECOVERED = 1, + SERR_COMM_RECOVERED = 2, + SERR_DATA = 256, + SERR_PERSISTENT = 512, + SERR_PROTOCOL = 1024, + SERR_INTERNAL = 2048, + SERR_PHYRDY_CHG = 65536, + SERR_PHY_INT_ERR = 131072, + SERR_COMM_WAKE = 262144, + SERR_10B_8B_ERR = 524288, + SERR_DISPARITY = 1048576, + SERR_CRC = 2097152, + SERR_HANDSHAKE = 4194304, + SERR_LINK_SEQ_ERR = 8388608, + SERR_TRANS_ST_ERROR = 16777216, + SERR_UNRECOG_FIS = 33554432, + SERR_DEV_XCHG = 67108864, }; -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; +enum ata_link_iter_mode { + ATA_LITER_EDGE = 0, + ATA_LITER_HOST_FIRST = 1, + ATA_LITER_PMP_FIRST = 2, }; -struct xfrm_policy_walk { - struct xfrm_policy_walk_entry walk; - u8 type; - u32 seq; +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 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; +enum ata_dev_iter_mode { + ATA_DITER_ENABLED = 0, + ATA_DITER_ENABLED_REVERSE = 1, + ATA_DITER_ALL = 2, + ATA_DITER_ALL_REVERSE = 3, }; -struct xfrm_user_expire { - struct xfrm_usersa_info state; - __u8 hard; +struct swmii_regs { + u16 bmsr; + u16 lpa; + u16 lpagb; + u16 estat; }; -struct xfrm_usersa_id { - xfrm_address_t daddr; - __be32 spi; - __u16 family; - __u8 proto; +enum { + SWMII_SPEED_10 = 0, + SWMII_SPEED_100 = 1, + SWMII_SPEED_1000 = 2, + SWMII_DUPLEX_HALF = 0, + SWMII_DUPLEX_FULL = 1, }; -struct xfrm_usersa_flush { - __u8 proto; +struct fixed_phy_status { + int link; + int speed; + int duplex; + int pause; + int asym_pause; }; -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 rtl821x_priv { + u16 phycr1; + u16 phycr2; + bool has_phycr2; + struct clk *clk; }; -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 rtl_cond { + bool (*check)(struct rtl8169_private *); + const char *msg; }; -struct xfrm_user_sec_ctx { - __u16 len; - __u16 exttype; - __u8 ctx_alg; - __u8 ctx_doi; - __u16 ctx_len; +enum rtl_dash_type { + RTL_DASH_NONE = 0, + RTL_DASH_DP = 1, + RTL_DASH_EP = 2, }; -struct xfrm_user_offload { - int ifindex; - __u8 flags; +struct ring_info { + struct sk_buff *skb; + u32 len; }; -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 rtl8169_tc_offsets { + bool inited; + __le64 tx_errors; + __le32 tx_multi_collision; + __le16 tx_aborted; + __le16 rx_missed; }; -struct xfrm_userpolicy_id { - struct xfrm_selector sel; - __u32 index; - __u8 dir; -}; +struct TxDesc; -struct xfrm_user_polexpire { - struct xfrm_userpolicy_info pol; - __u8 hard; -}; +struct RxDesc; -struct xfrm_user_report { - __u8 proto; - struct xfrm_selector sel; -}; +struct rtl8169_counters; -struct xfrm_dump_info { - struct sk_buff *in_skb; - struct sk_buff *out_skb; - u32 nlmsg_seq; - u16 nlmsg_flags; -}; +struct rtl_fw; -struct xfrm_userpolicy_type { - __u8 type; - __u16 reserved1; - __u8 reserved2; +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; + raw_spinlock_t config25_lock; + raw_spinlock_t mac_ocp_lock; + raw_spinlock_t cfg9346_usage_lock; + int cfg9346_usage_count; + unsigned int supports_gmii: 1; + unsigned int aspm_manageable: 1; + unsigned int dash_enabled: 1; + dma_addr_t counters_phys_addr; + struct rtl8169_counters *counters; + struct rtl8169_tc_offsets tc_offset; + u32 saved_wolopts; + int eee_adv; + const char *fw_name; + struct rtl_fw *rtl_fw; + u32 ocp_base; }; -struct xfrmk_sadinfo { - u32 sadhcnt; - u32 sadhmcnt; - u32 sadcnt; +struct TxDesc { + __le32 opts1; + __le32 opts2; + __le64 addr; }; -struct xfrmu_sadhinfo { - __u32 sadhcnt; - __u32 sadhmcnt; +struct RxDesc { + __le32 opts1; + __le32 opts2; + __le64 addr; }; -struct xfrmk_spdinfo { - u32 incnt; - u32 outcnt; - u32 fwdcnt; - u32 inscnt; - u32 outscnt; - u32 fwdscnt; - u32 spdhcnt; - u32 spdhmcnt; +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; }; -struct xfrmu_spdinfo { - __u32 incnt; - __u32 outcnt; - __u32 fwdcnt; - __u32 inscnt; - __u32 outscnt; - __u32 fwdscnt; -}; +typedef void (*rtl_fw_write_t)(struct rtl8169_private *, int, int); -struct xfrmu_spdhinfo { - __u32 spdhcnt; - __u32 spdhmcnt; +typedef int (*rtl_fw_read_t)(struct rtl8169_private *, int); + +struct rtl_fw_phy_action { + __le32 *code; + size_t size; }; -struct xfrmu_spdhthresh { - __u8 lbits; - __u8 rbits; +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; }; -struct xfrm_userpolicy_default { - __u8 in; - __u8 fwd; - __u8 out; +typedef void (*rtl_generic_fct)(struct rtl8169_private *); + +struct ephy_info { + unsigned int offset; + u16 mask; + u16 bits; }; -struct xfrm_aevent_id { - struct xfrm_usersa_id sa_id; - xfrm_address_t saddr; - __u32 flags; - __u32 reqid; +struct rtl_mac_info { + u16 mask; + u16 val; + enum mac_version ver; }; -struct xfrm_userspi_info { - struct xfrm_usersa_info info; - __u32 min; - __u32 max; +struct rtl_coalesce_info { + u32 speed; + u32 scale_nsecs[4]; }; -struct calipso_map_cache_bkt { - spinlock_t lock; - u32 size; - struct list_head list; +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, }; -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; - }; - }; +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, }; -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 rtl_registers { + MAC0 = 0, + MAC4 = 4, + MAR0 = 8, + CounterAddrLow = 16, + CounterAddrHigh = 20, + TxDescStartAddrLow = 32, + TxDescStartAddrHigh = 36, + TxHDescStartAddrLow = 40, + TxHDescStartAddrHigh = 44, + FLASH = 48, + ERSR = 54, + ChipCmd = 55, + TxPoll = 56, + IntrMask = 60, + IntrStatus = 62, + TxConfig = 64, + RxConfig = 68, + Cfg9346 = 80, + Config0 = 81, + Config1 = 82, + Config2 = 83, + Config3 = 84, + Config4 = 85, + Config5 = 86, + PHYAR = 96, + PHYstatus = 108, + RxMaxSize = 218, + CPlusCmd = 224, + IntrMitigate = 226, + RxDescAddrLow = 228, + RxDescAddrHigh = 232, + EarlyTxThres = 236, + MaxTxPacketSize = 236, + FuncEvent = 240, + FuncEventMask = 244, + FuncPresetState = 248, + IBCR0 = 248, + IBCR2 = 249, + IBIMR0 = 250, + IBISR0 = 251, + FuncForceEvent = 252, }; -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 rtl_register_content { + SYSErr = 32768, + PCSTimeout = 16384, + SWInt = 256, + TxDescUnavail = 128, + RxFIFOOver = 64, + LinkChg = 32, + RxOverflow = 16, + TxErr = 8, + TxOK = 4, + RxErr = 2, + RxOK = 1, + RxRWT = 4194304, + RxRES = 2097152, + RxRUNT = 1048576, + RxCRC = 524288, + StopReq = 128, + CmdReset = 16, + CmdRxEnb = 8, + CmdTxEnb = 4, + RxBufEmpty = 1, + HPQ = 128, + NPQ = 64, + FSWInt = 1, + Cfg9346_Lock = 0, + Cfg9346_Unlock = 192, + AcceptErr = 32, + AcceptRunt = 16, + AcceptBroadcast = 8, + AcceptMulticast = 4, + AcceptMyPhys = 2, + AcceptAllPhys = 1, + TxInterFrameGapShift = 24, + TxDMAShift = 8, + LEDS1 = 128, + LEDS0 = 64, + Speed_down = 16, + MEMMAP = 8, + IOMAP = 4, + VPD = 2, + PMEnable = 1, + ClkReqEn = 128, + MSIEnable = 32, + PCI_Clock_66MHz = 1, + PCI_Clock_33MHz = 0, + MagicPacket = 32, + LinkUp = 16, + Jumbo_En0 = 4, + Rdy_to_L23 = 2, + Beacon_en = 1, + Jumbo_En1 = 2, + BWF = 64, + MWF = 32, + UWF = 16, + Spi_en = 8, + LanWake = 2, + PMEStatus = 1, + ASPM_en = 1, + EnableBist = 32768, + Mac_dbgo_oe = 16384, + EnAnaPLL = 16384, + Normal_mode = 8192, + Force_half_dup = 4096, + Force_rxflow_en = 2048, + Force_txflow_en = 1024, + Cxpl_dbg_sel = 512, + ASF = 256, + PktCntrDisable = 128, + Mac_dbgo_sel = 28, + RxVlan = 64, + RxChkSum = 32, + PCIDAC = 16, + PCIMulRW = 8, + TBI_Enable = 128, + TxFlowCtrl = 64, + RxFlowCtrl = 32, + _1000bpsF = 16, + _100bps = 8, + _10bps = 4, + LinkStatus = 2, + FullDup = 1, + CounterReset = 1, + CounterDump = 8, + MagicPacket_v2 = 65536, }; -enum 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 rtl_desc_bit { + DescOwn = -2147483648, + RingEnd = 1073741824, + FirstFrag = 536870912, + LastFrag = 268435456, }; -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 rtl_flag { + RTL_FLAG_TASK_ENABLED = 0, + RTL_FLAG_TASK_RESET_PENDING = 1, + RTL_FLAG_TASK_RESET_NO_QUEUE_WAKE = 2, + RTL_FLAG_TASK_TX_TIMEOUT = 3, + RTL_FLAG_MAX = 4, }; -enum ieee80211_agg_stop_reason { - AGG_STOP_DECLINED = 0, - AGG_STOP_LOCAL_REQUEST = 1, - AGG_STOP_PEER_REQUEST = 2, - AGG_STOP_DESTROY_STA = 3, +enum rtl8125_registers { + IntrMask_8125 = 56, + IntrStatus_8125 = 60, + TxPoll_8125 = 144, + MAC0_BKP = 6624, + EEE_TXIDLE_TIMER_8125 = 24648, }; -enum hp_flags_bits { - HANDSHAKE_F_PROTO_NOTIFY = 0, +enum rtl_tx_desc_bit { + TD_LSO = 134217728, + TxVlanTag = 131072, }; -enum { - HANDSHAKE_CMD_READY = 1, - HANDSHAKE_CMD_ACCEPT = 2, - HANDSHAKE_CMD_DONE = 3, - __HANDSHAKE_CMD_MAX = 4, - HANDSHAKE_CMD_MAX = 3, +enum rtl_tx_desc_bit_0 { + TD0_TCP_CS = 65536, + TD0_UDP_CS = 131072, + TD0_IP_CS = 262144, }; -enum { - HANDSHAKE_A_ACCEPT_SOCKFD = 1, - HANDSHAKE_A_ACCEPT_HANDLER_CLASS = 2, - HANDSHAKE_A_ACCEPT_MESSAGE_TYPE = 3, - HANDSHAKE_A_ACCEPT_TIMEOUT = 4, - HANDSHAKE_A_ACCEPT_AUTH_MODE = 5, - HANDSHAKE_A_ACCEPT_PEER_IDENTITY = 6, - HANDSHAKE_A_ACCEPT_CERTIFICATE = 7, - HANDSHAKE_A_ACCEPT_PEERNAME = 8, - __HANDSHAKE_A_ACCEPT_MAX = 9, - HANDSHAKE_A_ACCEPT_MAX = 8, -}; - -enum { - HANDSHAKE_A_DONE_STATUS = 1, - HANDSHAKE_A_DONE_SOCKFD = 2, - HANDSHAKE_A_DONE_REMOTE_AUTH = 3, - __HANDSHAKE_A_DONE_MAX = 4, - HANDSHAKE_A_DONE_MAX = 3, -}; - -enum hn_flags_bits { - HANDSHAKE_F_NET_DRAINING = 0, +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, }; -struct handshake_proto; - -struct handshake_req { - struct list_head hr_list; - struct rhash_head hr_rhash; - unsigned long hr_flags; - const struct handshake_proto *hr_proto; - struct sock *hr_sk; - void (*hr_odestruct)(struct sock *); - char hr_priv[0]; +enum rtl_rx_desc_bit { + PID1 = 262144, + PID0 = 131072, + IPFail = 65536, + UDPFail = 32768, + TCPFail = 16384, + RxVlanTag = 65536, }; -struct handshake_proto { - int hp_handler_class; - size_t hp_privsize; - unsigned long hp_flags; - int (*hp_accept)(struct handshake_req *, struct genl_info *, int); - void (*hp_done)(struct handshake_req *, unsigned int, struct genl_info *); - void (*hp_destroy)(struct handshake_req *); +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 handshake_net { - spinlock_t hn_lock; - int hn_pending; - int hn_pending_max; - struct list_head hn_requests; - unsigned long hn_flags; +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, }; -enum futex_access { - FUTEX_READ = 0, - FUTEX_WRITE = 1, +struct amd_chipset_type { + enum amd_chipset_gen gen; + u8 rev; }; -struct wake_q_head { - struct wake_q_node *first; - struct wake_q_node **lastp; +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 futex_hash_bucket { - atomic_t waiters; - spinlock_t lock; - struct plist_head chain; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct ehci_caps { + u32 hc_capbase; + u32 hcs_params; + u32 hcc_params; + u8 portroute[8]; }; -enum rdmacg_resource_type { - RDMACG_RESOURCE_HCA_HANDLE = 0, - RDMACG_RESOURCE_HCA_OBJECT = 1, - RDMACG_RESOURCE_MAX = 2, +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; }; -enum rdmacg_file_type { - RDMACG_RESOURCE_TYPE_MAX = 0, - RDMACG_RESOURCE_TYPE_STAT = 1, +struct ehci_dbg_port { + u32 control; + u32 pids; + u32 data03; + u32 data47; + u32 address; }; -struct rdmacg_resource { - int max; - int usage; +struct ehci_dev { + u32 bus; + u32 slot; + u32 func; }; -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; -}; +typedef void (*set_debug_port_t)(int); -struct rdmacg_device { - struct list_head dev_node; - struct list_head rpools; - char *name; +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 rdma_cgroup { - struct cgroup_subsys_state css; - struct list_head rpools; +struct usb_debug_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDebugInEndpoint; + __u8 bDebugOutEndpoint; }; -enum ftrace_dump_mode { - DUMP_NONE = 0, - DUMP_ALL = 1, - DUMP_ORIG = 2, +struct pps_kinfo { + __u32 assert_sequence; + __u32 clear_sequence; + struct pps_ktime assert_tu; + struct pps_ktime clear_tu; + int current_mode; }; -struct trace_export { - struct trace_export __attribute__((btf_type_tag("rcu"))) *next; - void (*write)(struct trace_export *, const void *, unsigned int); - int flags; +struct pps_fdata { + struct pps_kinfo info; + struct pps_ktime timeout; }; -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 pps_bind_args { + int tsformat; + int edge; + int consumer; }; -struct ftrace_stack { - unsigned long calls[1024]; +struct pps_ktime_compat { + __s64 sec; + __s32 nsec; + __u32 flags; }; -struct ftrace_stacks { - struct ftrace_stack stacks[4]; -}; +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 trace_buffer_struct { - int nesting; - char buffer[4096]; -}; +struct pps_fdata_compat { + struct pps_kinfo_compat info; + struct pps_ktime_compat timeout; +} __attribute__((packed)); -enum trace_iter_flags { - TRACE_FILE_LAT_FMT = 1, - TRACE_FILE_ANNOTATE = 2, - TRACE_FILE_TIME_IN_NS = 4, +struct thermal_instance { + int id; + char name[20]; + struct thermal_zone_device *tz; + struct thermal_cooling_device *cdev; + const struct thermal_trip *trip; + bool initialized; + unsigned long upper; + unsigned long lower; + unsigned long target; + char attr_name[20]; + struct device_attribute attr; + char weight_attr_name[20]; + struct device_attribute weight_attr; + struct list_head tz_node; + struct list_head cdev_node; + unsigned int weight; + bool upper_no_limit; }; -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 dm_rh_region_states { + DM_RH_CLEAN = 1, + DM_RH_DIRTY = 2, + DM_RH_NOSYNC = 4, + DM_RH_RECOVERING = 8, }; -enum ring_buffer_flags { - RB_FL_OVERWRITE = 1, -}; +typedef sector_t region_t; -struct err_info { - const char **errs; - u8 type; - u16 pos; - u64 ts; -}; +struct dm_region_hash; -struct tracing_log_err { +struct dm_region { + struct dm_region_hash *rh; + region_t key; + int state; + struct list_head hash_list; 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 trace_parser { - bool cont; - char *buffer; - unsigned int idx; - unsigned int size; + atomic_t pending; + struct bio_list delayed_bios; }; -struct userstack_entry { - struct trace_entry ent; - unsigned int tgid; - unsigned long caller[8]; -}; +struct dm_dirty_log; -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; +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 *); }; -typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *); - -struct print_entry { - struct trace_entry ent; - unsigned long ip; - char buf[0]; -}; +struct dm_dirty_log_type; -struct bputs_entry { - struct trace_entry ent; - unsigned long ip; - const char *str; +struct dm_dirty_log { + struct dm_dirty_log_type *type; + int (*flush_callback_fn)(struct dm_target *); + void *context; }; -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 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 stack_entry { - struct trace_entry ent; - int size; - unsigned long caller[8]; -}; +struct efivar_operations; -struct bprint_entry { - struct trace_entry ent; - unsigned long ip; - const char *fmt; - u32 buf[0]; +struct efivars { + struct kset *kset; + const struct efivar_operations *ops; }; -struct trace_min_max_param { - struct mutex *lock; - u64 *val; - u64 *min; - u64 *max; -}; +typedef unsigned long efi_status_t; -struct raw_data_entry { - struct trace_entry ent; - unsigned int id; - char buf[0]; -}; +typedef u16 efi_char16_t; -struct ftrace_buffer_info { - struct trace_iterator iter; - void *spare; - unsigned int spare_cpu; - unsigned int read; -}; +typedef guid_t efi_guid_t; -struct reuseport_array { - struct bpf_map map; - struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0]; -}; +typedef efi_status_t efi_get_variable_t(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *); -typedef void (*btf_trace_vm_unmapped_area)(void *, unsigned long, struct vm_unmapped_area_info *); +typedef efi_status_t efi_get_next_variable_t(unsigned long *, efi_char16_t *, efi_guid_t *); -typedef void (*btf_trace_vma_mas_szero)(void *, struct maple_tree *, unsigned long, unsigned long); +typedef efi_status_t efi_set_variable_t(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *); -typedef void (*btf_trace_vma_store)(void *, struct maple_tree *, struct vm_area_struct *); +typedef efi_status_t efi_query_variable_store_t(u32, unsigned long, bool); -typedef void (*btf_trace_exit_mmap)(void *, struct mm_struct *); +typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *); -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 efivar_operations { + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_store_t *query_variable_store; + efi_query_variable_info_t *query_variable_info; }; -struct 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]; +enum { + WMI_READ_TAKES_NO_ARGS = 0, + WMI_PROBED = 1, }; -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 wmi_device { + struct device dev; + bool setable; }; -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 guid_block { + guid_t guid; + union { + char object_id[2]; + struct { + unsigned char notify_id; + unsigned char reserved; + }; + }; + u8 instance_count; + u8 flags; }; -struct trace_event_raw_exit_mmap { - struct trace_entry ent; - struct mm_struct *mm; - struct maple_tree *mt; - char __data[0]; -}; +typedef void (*wmi_notify_handler)(u32, void *); -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 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 trace_event_data_offsets_vm_unmapped_area {}; - -struct trace_event_data_offsets_vma_mas_szero {}; - -struct trace_event_data_offsets_vma_store {}; +struct wmi_device_id; -struct trace_event_data_offsets_exit_mmap {}; +struct wmi_ioctl_buffer; -struct saved { - struct path link; - struct delayed_call done; - const char *name; - unsigned int seq; +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 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; +struct wmi_device_id { + const char guid_string[37]; + const void *context; }; -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, +struct wmi_ioctl_buffer { + __u64 length; + __u8 data[0]; }; -enum { - LAST_NORM = 0, - LAST_ROOT = 1, - LAST_DOT = 2, - LAST_DOTDOT = 3, +struct acpi_pnp_device_id { + u32 length; + char *string; }; -enum { - WALK_TRAILING = 1, - WALK_MORE = 2, - WALK_NOFOLLOW = 4, +struct acpi_pnp_device_id_list { + u32 count; + u32 list_size; + struct acpi_pnp_device_id ids[0]; }; -struct word_at_a_time { - const unsigned long one_bits; - const unsigned long high_bits; +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 open_flags { - int open_flag; - umode_t mode; - int acc_mode; - int intent; - int lookup_flags; +struct snd_dma_data { + int dma; }; -struct name_snapshot { - struct qstr name; - unsigned char inline_name[32]; +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 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 snd_seq_driver { + struct device_driver driver; + char *id; + int argsize; }; -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 ahash_request { + struct crypto_async_request base; + unsigned int nbytes; + struct scatterlist *src; + u8 *result; + void *priv; + void *__ctx[0]; }; -struct iomap_ops { - int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap *, struct iomap *); - int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap *); +struct csum_state { + __wsum csum; + size_t off; }; -struct vmcore { - struct list_head list; - unsigned long long paddr; - unsigned long long size; - loff_t offset; -}; +typedef size_t (*iov_ustep_f)(void __attribute__((btf_type_tag("user"))) *, size_t, size_t, void *, void *); -struct vmcore_cb { - bool (*pfn_is_ram)(struct vmcore_cb *, unsigned long); - struct list_head next; -}; +typedef size_t (*iov_step_f)(void *, size_t, size_t, void *, void *); -struct elf64_phdr { - Elf64_Word p_type; - Elf64_Word p_flags; - Elf64_Off p_offset; - Elf64_Addr p_vaddr; - Elf64_Addr p_paddr; - Elf64_Xword p_filesz; - Elf64_Xword p_memsz; - Elf64_Xword p_align; +struct net_test { + char name[32]; + int (*fn)(struct net_device *); }; -typedef struct elf64_phdr Elf64_Phdr; +struct netsfhdr { + __be32 version; + __be64 magic; + u8 id; +} __attribute__((packed)); -struct elf64_note { - Elf64_Word n_namesz; - Elf64_Word n_descsz; - Elf64_Word n_type; +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; }; -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; +struct net_test_priv { + struct net_packet_attrs *packet; + struct packet_type pt; + struct completion comp; + int double_vlan; + int vlan_id; + int ok; }; -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; +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 *); }; -typedef struct elf32_phdr Elf32_Phdr; - -typedef struct elf32_note Elf32_Nhdr; - -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 ethtool_cmd { + __u32 cmd; + __u32 supported; + __u32 advertising; + __u16 speed; + __u8 duplex; + __u8 port; + __u8 phy_address; + __u8 transceiver; + __u8 autoneg; + __u8 mdio_support; + __u32 maxtxpkt; + __u32 maxrxpkt; + __u16 speed_hi; + __u8 eth_tp_mdix; + __u8 eth_tp_mdix_ctrl; + __u32 lp_advertising; + __u32 reserved[2]; }; -struct fstrim_range { - __u64 start; - __u64 len; - __u64 minlen; +struct ethtool_forced_speed_map { + u32 speed; + unsigned long caps[2]; + const u32 *cap_arr; + u32 arr_size; }; -struct fat_entry { - int entry; +struct nf_loginfo { + u_int8_t type; union { - u8 *ent12_p[2]; - __le16 *ent16_p; - __le32 *ent32_p; + 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; - int nr_bhs; - struct buffer_head *bhs[2]; - struct inode *fat_inode; }; -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 nf_log_buf { + unsigned int count; + char buf[1020]; }; -struct tracefs_dir_ops { - int (*mkdir)(const char *); - int (*rmdir)(const char *); +struct bpf_id_pair { + u32 old; + u32 cur; }; -enum { - Opt_uid___2 = 0, - Opt_gid___2 = 1, - Opt_mode___2 = 2, - Opt_err___3 = 3, +struct bpf_idmap { + u32 tmp_id_gen; + struct bpf_id_pair map[600]; }; -struct tracefs_mount_opts { - kuid_t uid; - kgid_t gid; - umode_t mode; - unsigned int opts; +struct bpf_idset { + u32 count; + u32 ids[600]; }; -struct tracefs_fs_info { - struct tracefs_mount_opts mount_opts; +struct bpf_verifier_log { + u64 start_pos; + u64 end_pos; + char __attribute__((btf_type_tag("user"))) *ubuf; + u32 level; + u32 len_total; + u32 len_max; + char kbuf[1024]; }; -enum devcg_behavior { - DEVCG_DEFAULT_NONE = 0, - DEVCG_DEFAULT_ALLOW = 1, - DEVCG_DEFAULT_DENY = 2, +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_cb; + bool is_async_cb; + bool is_exception_cb; }; -struct dev_cgroup { - struct cgroup_subsys_state css; - struct list_head exceptions; - enum devcg_behavior behavior; +struct backtrack_state { + struct bpf_verifier_env *env; + u32 frame; + u32 reg_masks[8]; + u64 stack_masks[8]; }; -struct dev_exception_item { - u32 major; - u32 minor; - short type; - short access; - struct list_head list; - struct callback_head rcu; -}; +typedef sockptr_t bpfptr_t; -enum pci_mmap_state { - pci_mmap_io = 0, - pci_mmap_mem = 1, -}; +struct bpf_verifier_ops; -enum pci_mmap_api { - PCI_MMAP_SYSFS = 0, - PCI_MMAP_PROCFS = 1, -}; +struct bpf_verifier_stack_elem; -struct pci_filp_private { - enum pci_mmap_state mmap_state; - int write_combine; -}; +struct bpf_verifier_state; -struct acpi_power_resource; +struct bpf_verifier_state_list; -struct acpi_power_resource_entry { - struct list_head node; - struct acpi_power_resource *resource; +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; + u32 hidden_subprog_cnt; + int exception_callback_subprog; + bool explore_alu_limits; + bool allow_ptr_leaks; + bool allow_uninit_stack; + bool bpf_capable; + bool bypass_spec_v1; + bool bypass_spec_v4; + bool seen_direct_write; + bool seen_exception; + struct bpf_insn_aux_data *insn_aux_data; + const struct bpf_line_info *prev_linfo; + struct bpf_verifier_log log; + struct bpf_subprog_info subprog_info[258]; + union { + struct bpf_idmap idmap_scratch; + struct bpf_idset idset_scratch; + }; + struct { + int *insn_state; + int *insn_stack; + int cur_stack; + } cfg; + struct backtrack_state bt; + u32 pass_cnt; + u32 subprog_cnt; + u32 prev_insn_processed; + u32 insn_processed; + u32 prev_jmps_processed; + u32 jmps_processed; + u64 verification_time; + u32 max_states_per_insn; + u32 total_states; + u32 peak_states; + u32 longest_mark_read_walk; + bpfptr_t fd_array; + u32 scratched_regs; + u64 scratched_stack_slots; + u64 prev_log_pos; + u64 prev_insn_print_pos; + char tmp_str_buf[320]; }; -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; +enum bpf_access_type { + BPF_READ = 1, + BPF_WRITE = 2, }; -struct acpi_power_dependent_device { - struct device *dev; - struct list_head node; +struct bpf_insn_access_aux; + +struct bpf_reg_state; + +struct bpf_verifier_ops { + const struct bpf_func_proto * (*get_func_proto)(enum bpf_func_id, const struct bpf_prog *); + bool (*is_valid_access)(int, int, enum bpf_access_type, const struct bpf_prog *, struct bpf_insn_access_aux *); + int (*gen_prologue)(struct bpf_insn *, bool, const struct bpf_prog *); + int (*gen_ld_abs)(const struct bpf_insn *, struct bpf_insn *); + u32 (*convert_ctx_access)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); + int (*btf_struct_access)(struct bpf_verifier_log *, const struct bpf_reg_state *, int, int); }; -struct acpi_offsets { - size_t offset; - u8 mode; +struct bpf_insn_access_aux { + enum bpf_reg_type reg_type; + union { + int ctx_field_size; + struct { + struct btf *btf; + u32 btf_id; + }; + }; + struct bpf_verifier_log *log; }; -enum { - 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 bpf_iter_state { + BPF_ITER_STATE_INVALID = 0, + BPF_ITER_STATE_ACTIVE = 1, + BPF_ITER_STATE_DRAINED = 2, }; -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, +struct tnum { + u64 value; + u64 mask; }; -enum { - POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0, - POWER_SUPPLY_TECHNOLOGY_NiMH = 1, - POWER_SUPPLY_TECHNOLOGY_LION = 2, - POWER_SUPPLY_TECHNOLOGY_LIPO = 3, - POWER_SUPPLY_TECHNOLOGY_LiFe = 4, - POWER_SUPPLY_TECHNOLOGY_NiCd = 5, - POWER_SUPPLY_TECHNOLOGY_LiMn = 6, +enum 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 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 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 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; +struct bpf_active_lock { + void *ptr; + u32 id; }; -enum translation_map { - LAT1_MAP = 0, - GRAF_MAP = 1, - IBMPC_MAP = 2, - USER_MAP = 3, - FIRST_MAP = 0, - LAST_MAP = 3, -}; +struct bpf_idx_pair; -struct uni_pagedict { - u16 **uni_pgdir[32]; - unsigned long refcount; - unsigned long sum; - unsigned char *inverse_translations[4]; - u16 *inverse_trans_unicode; +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; + bool used_as_loop_entry; + u32 first_insn_idx; + u32 last_insn_idx; + struct bpf_verifier_state *loop_entry; + struct bpf_idx_pair *jmp_history; + u32 jmp_history_cnt; + u32 dfs_depth; + u32 callback_unroll_depth; }; -enum vc_intensity { - VCI_HALF_BRIGHT = 0, - VCI_NORMAL = 1, - VCI_BOLD = 2, - VCI_MASK = 3, -}; +struct bpf_reference_state; -enum con_scroll { - SM_UP = 0, - SM_DOWN = 1, +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; + bool in_exception_callback_fn; + u32 callback_depth; + int acquired_refs; + struct bpf_reference_state *refs; + int allocated_stack; + struct bpf_stack_state *stack; }; -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 bpf_reference_state { + int id; + int insn_idx; + int callback_ref; }; -struct console_font { - unsigned int width; - unsigned int height; - unsigned int charcount; - unsigned char *data; +struct bpf_stack_state { + struct bpf_reg_state spilled_ptr; + u8 slot_type[8]; }; -struct vt_mode { - char mode; - char waitv; - short relsig; - short acqsig; - short frsig; +struct bpf_idx_pair { + u32 prev_idx; + u32 idx; }; -struct consw; +struct bpf_verifier_state_list { + struct bpf_verifier_state state; + struct bpf_verifier_state_list *next; + int miss_cnt; + int hit_cnt; +}; -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; +struct bpf_loop_inline_state { + unsigned int initialized: 1; + unsigned int fit_for_inline: 1; + u32 callback_subprogno; }; -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 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; + }; + union { + u64 obj_new_size; + u64 insert_off; + }; + struct btf_struct_meta *kptr_struct_meta; + u64 map_key_state; + int ctx_field_size; + u32 seen; + bool sanitize_stack_spill; + bool zext_dst; + bool storage_get_func_atomic; + bool is_iter_next; + bool call_with_percpu_alloc_ptr; + u8 alu_state; + unsigned int orig_idx; + bool jmp_point; + bool prune_point; + bool force_checkpoint; + bool calls_callback; }; -typedef unsigned short ushort; +enum { + NF_BPF_CT_OPTS_SZ = 12, +}; -struct unipair { - unsigned short unicode; - unsigned short fontpos; +enum { + BPF_F_CURRENT_NETNS = -1, }; -struct intel_gtt_driver; +struct nf_conn___init { + struct nf_conn ct; +}; -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 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 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 bpf_ct_opts { + s32 netns_id; + s32 error; + u8 l4proto; + u8 dir; + u8 reserved[2]; }; -struct intel_gtt_driver_description { - unsigned int gmch_chip_id; - char *name; - const struct intel_gtt_driver *gtt_driver; +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 aper_size_info_fixed { - int size; - int num_entries; - int page_order; +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 dma_buf_poll_cb_t { - struct dma_fence_cb cb; - wait_queue_head_t *poll; - __poll_t active; +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 dma_buf_ops; +struct cipso_v4_map_cache_bkt { + spinlock_t lock; + u32 size; + struct list_head list; +}; -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 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 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 *); +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 dma_buf_attach_ops; +struct fib_notifier_info { + int family; + struct netlink_ext_ack *extack; +}; -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 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 dma_buf_attach_ops { - bool allow_peer2peer; - void (*move_notify)(struct dma_buf_attachment *); +enum { + RTN_UNSPEC = 0, + RTN_UNICAST = 1, + RTN_LOCAL = 2, + RTN_BROADCAST = 3, + RTN_ANYCAST = 4, + RTN_MULTICAST = 5, + RTN_BLACKHOLE = 6, + RTN_UNREACHABLE = 7, + RTN_PROHIBIT = 8, + RTN_THROW = 9, + RTN_NAT = 10, + RTN_XRESOLVE = 11, + __RTN_MAX = 12, }; -struct drm_gem_close { - __u32 handle; - __u32 pad; +enum { + IFLA_IPTUN_UNSPEC = 0, + IFLA_IPTUN_LINK = 1, + IFLA_IPTUN_LOCAL = 2, + IFLA_IPTUN_REMOTE = 3, + IFLA_IPTUN_TTL = 4, + IFLA_IPTUN_TOS = 5, + IFLA_IPTUN_ENCAP_LIMIT = 6, + IFLA_IPTUN_FLOWINFO = 7, + IFLA_IPTUN_FLAGS = 8, + IFLA_IPTUN_PROTO = 9, + IFLA_IPTUN_PMTUDISC = 10, + IFLA_IPTUN_6RD_PREFIX = 11, + IFLA_IPTUN_6RD_RELAY_PREFIX = 12, + IFLA_IPTUN_6RD_PREFIXLEN = 13, + IFLA_IPTUN_6RD_RELAY_PREFIXLEN = 14, + IFLA_IPTUN_ENCAP_TYPE = 15, + IFLA_IPTUN_ENCAP_FLAGS = 16, + IFLA_IPTUN_ENCAP_SPORT = 17, + IFLA_IPTUN_ENCAP_DPORT = 18, + IFLA_IPTUN_COLLECT_METADATA = 19, + IFLA_IPTUN_FWMARK = 20, + __IFLA_IPTUN_MAX = 21, }; -struct drm_gem_flink { - __u32 handle; - __u32 name; +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 drm_gem_open { - __u32 name; - __u32 handle; - __u64 size; +struct ip_tunnel_prl { + __be32 addr; + __u16 flags; + __u16 __reserved; + __u32 datalen; + __u32 __reserved2; }; -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]; +typedef unsigned int OM_uint32; + +struct gss_krb5_enctype; + +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 rc_parameters_data { - u8 bpp; - u8 bpc; - struct rc_parameters params; +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 (*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 *); }; -enum drm_dsc_params_type { - DRM_DSC_1_2_444 = 0, - DRM_DSC_1_1_PRE_SCR = 1, - DRM_DSC_1_2_422 = 2, - DRM_DSC_1_2_420 = 3, +struct drop_reason_list { + const char * const *reasons; + size_t n_reasons; }; -struct dp_sdp_header { - u8 HB0; - u8 HB1; - u8 HB2; - u8 HB3; +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, }; -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; +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, }; -struct hdr_output_metadata { - __u32 metadata_type; - union { - struct hdr_metadata_infoframe hdmi_metadata_type1; - }; +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, }; -struct ttm_range_mgr_node { - struct ttm_resource base; - struct drm_mm_node mm_nodes[0]; +enum rate_control_capabilities { + RATE_CTRL_CAPA_VHT_EXT_NSS_BW = 1, + RATE_CTRL_CAPA_AMPDU_TRIGGER = 2, }; -enum intel_steering_type { - L3BANK = 0, - MSLICE = 1, - LNCF = 2, - GAM = 3, - DSS = 4, - OADDRM = 5, - INSTANCE0 = 6, - NUM_STEERING_TYPES = 7, +enum skb_drop_reason_subsys { + SKB_DROP_REASON_SUBSYS_CORE = 0, + SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1, + SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR = 2, + SKB_DROP_REASON_SUBSYS_OPENVSWITCH = 3, + SKB_DROP_REASON_SUBSYS_NUM = 4, }; enum { - GUC_CAPTURE_LIST_INDEX_PF = 0, - GUC_CAPTURE_LIST_INDEX_VF = 1, - GUC_CAPTURE_LIST_INDEX_MAX = 2, + IEEE80211_RX_MSG = 1, + IEEE80211_TX_STATUS_MSG = 2, }; -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, +struct inet6_ifaddr { + struct in6_addr addr; + __u32 prefix_len; + __u32 rt_priority; + __u32 valid_lft; + __u32 prefered_lft; + refcount_t refcnt; + spinlock_t lock; + int state; + __u32 flags; + __u8 dad_probes; + __u8 stable_privacy_retry; + __u16 scope; + __u64 dad_nonce; + unsigned long cstamp; + unsigned long tstamp; + struct delayed_work dad_work; + struct inet6_dev *idev; + struct fib6_info *rt; + struct hlist_node addr_lst; + struct list_head if_list; + struct list_head if_list_aux; + struct list_head tmp_list; + struct inet6_ifaddr *ifpub; + int regen_count; + bool tokenized; + u8 ifa_proto; + struct callback_head rcu; + struct in6_addr peer_addr; }; enum { - GUC_CAPTURE_LIST_CLASS_RENDER_COMPUTE = 0, - GUC_CAPTURE_LIST_CLASS_VIDEO = 1, - GUC_CAPTURE_LIST_CLASS_VIDEOENHANCE = 2, - GUC_CAPTURE_LIST_CLASS_BLITTER = 3, - GUC_CAPTURE_LIST_CLASS_GSC_OTHER = 4, + 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, }; -struct guc_mmio_reg_set { - u32 address; - u16 count; - u16 reserved; +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 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 netlbl_domhsh_walk_arg { + struct netlbl_audit *audit_info; + u32 doi; }; -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 netlbl_cipsov4_doiwalk_arg { + struct netlink_callback *nl_cb; + struct sk_buff *skb; + u32 seq; }; -struct guc_gt_system_info { - u8 mapping_table[512]; - u32 engine_enabled_masks[16]; - u32 generic_gt_sysinfo[16]; +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 guc_engine_usage_record { - u32 current_context_index; - u32 last_switch_in_stamp; - u32 reserved0; - u32 total_runtime; - u32 reserved1[4]; -}; +struct xdp_ring; -struct guc_engine_usage { - struct guc_engine_usage_record engines[512]; +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 __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 xdp_ring { + u32 producer; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 pad1; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 consumer; + 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: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct temp_regset { - struct guc_mmio_reg *registers; - struct guc_mmio_reg *storage; - u32 storage_used; - u32 storage_max; +enum { + XDP_DIAG_NONE = 0, + XDP_DIAG_INFO = 1, + XDP_DIAG_UID = 2, + XDP_DIAG_RX_RING = 3, + XDP_DIAG_TX_RING = 4, + XDP_DIAG_UMEM = 5, + XDP_DIAG_UMEM_FILL_RING = 6, + XDP_DIAG_UMEM_COMPLETION_RING = 7, + XDP_DIAG_MEMINFO = 8, + XDP_DIAG_STATS = 9, + __XDP_DIAG_MAX = 10, }; -enum dpio_phy { - DPIO_PHY0 = 0, - DPIO_PHY1 = 1, - DPIO_PHY2 = 2, +struct xdp_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; + __u16 pad; + __u32 xdiag_ino; + __u32 xdiag_show; + __u32 xdiag_cookie[2]; }; -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 xdp_diag_msg { + __u8 xdiag_family; + __u8 xdiag_type; + __u16 pad; + __u32 xdiag_ino; + __u32 xdiag_cookie[2]; }; -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 xdp_diag_info { + __u32 ifindex; + __u32 queue_id; }; -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; - u16 enable_timeout; +struct xdp_diag_ring { + __u32 entries; }; -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 xdp_diag_umem { + __u64 size; + __u32 id; + __u32 num_pages; + __u32 chunk_size; + __u32 headroom; + __u32 ifindex; + __u32 queue_id; + __u32 flags; + __u32 refs; }; -struct i915_power_well_instance; - -struct i915_power_well_instance_list { - const struct i915_power_well_instance *list; - u8 count; +struct xdp_diag_stats { + __u64 n_rx_dropped; + __u64 n_rx_invalid; + __u64 n_rx_full; + __u64 n_fill_ring_empty; + __u64 n_tx_invalid; + __u64 n_tx_ring_empty; }; -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, +struct async_domain { + struct list_head pending; + unsigned int registered: 1; }; -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; - }; +enum state { + Start = 0, + Collect = 1, + GotHeader = 2, + SkipIt = 3, + GotName = 4, + CopyFile = 5, + GotSymlink = 6, + Reset = 7, }; -struct i915_power_domain_list { - const enum intel_display_power_domain *list; - u8 count; +struct hash { + int ino; + int minor; + int major; + umode_t mode; + struct hash *next; + char name[4098]; }; -enum dpio_channel { - DPIO_CH0 = 0, - DPIO_CH1 = 1, +enum umh_disable_depth { + UMH_ENABLED = 0, + UMH_FREEZING = 1, + UMH_DISABLED = 2, }; -struct hdcp2_dp_msg_data { - u8 msg_id; - u32 offset; - bool msg_detectable; - u32 timeout; - u32 timeout2; - u32 msg_read_timeout; +struct dir_entry { + struct list_head list; + time64_t mtime; + char name[0]; }; -enum check_link_response { - HDCP_LINK_PROTECTED = 0, - HDCP_TOPOLOGY_CHANGE = 1, - HDCP_LINK_INTEGRITY_FAILURE = 2, - HDCP_REAUTH_REQUEST = 3, -}; +typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *)); -struct hdcp2_dp_errata_stream_type { - u8 msg_id; - u8 stream_type; +struct mcs_spinlock { + struct mcs_spinlock *next; + int locked; + int count; }; -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 qnode { + struct mcs_spinlock mcs; }; -struct est_timings { - u8 t1; - u8 t2; - u8 mfg_rsvd; +struct module_sect_attr { + struct bin_attribute battr; + unsigned long address; }; -struct std_timing { - u8 hsize; - u8 vfreq_aspect; +struct module_sect_attrs { + struct attribute_group grp; + unsigned int nsections; + struct module_sect_attr attrs[0]; }; -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 module_notes_attrs { + struct kobject *dir; + unsigned int notes; + struct bin_attribute attrs[0]; }; -struct detailed_data_string { - u8 str[13]; +struct load_info { + const char *name; + struct module *mod; + Elf64_Ehdr *hdr; + unsigned long len; + Elf64_Shdr *sechdrs; + char *secstrings; + char *strtab; + unsigned long symoffs; + unsigned long stroffs; + unsigned long init_typeoffs; + unsigned long core_typeoffs; + bool sig_ok; + unsigned long mod_kallsyms_init_off; + struct { + unsigned int sym; + unsigned int str; + unsigned int mod; + unsigned int vers; + unsigned int info; + unsigned int pcpu; + } index; }; -struct 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; +enum rdmacg_resource_type { + RDMACG_RESOURCE_HCA_HANDLE = 0, + RDMACG_RESOURCE_HCA_OBJECT = 1, + RDMACG_RESOURCE_MAX = 2, }; -struct detailed_data_wpindex { - u8 white_yx_lo; - u8 white_x_hi; - u8 white_y_hi; - u8 gamma; +enum rdmacg_file_type { + RDMACG_RESOURCE_TYPE_MAX = 0, + RDMACG_RESOURCE_TYPE_STAT = 1, }; -struct cvt_timing { - u8 code[3]; +struct rdmacg_resource { + int max; + int usage; }; -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; -}; +struct rdmacg_device; -struct detailed_timing { - __le16 pixel_clock; - union { - struct detailed_pixel_timing pixel_data; - struct detailed_non_pixel other_data; - } data; +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 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 rdmacg_device { + struct list_head dev_node; + struct list_head rpools; + char *name; }; -struct virtio_gpu_vbuffer; +struct rdma_cgroup { + struct cgroup_subsys_state css; + struct list_head rpools; +}; -typedef void (*virtio_gpu_resp_cb)(struct virtio_gpu_device *, struct virtio_gpu_vbuffer *); +struct inotify_group_private_data { + spinlock_t idr_lock; + struct idr idr; + struct ucounts *ucounts; +}; -struct virtio_gpu_object_array; +struct fsnotify_ops; -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 fsnotify_event; -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 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 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; - struct sg_table *sgt; - struct mutex vmap_lock; - void *vaddr; - unsigned int vmap_use_count; - bool pages_mark_dirty_on_put: 1; - bool pages_mark_accessed_on_put: 1; - bool map_wc: 1; -}; +struct fsnotify_iter_info; -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 fsnotify_mark; -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 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 virtio_gpu_command; +typedef int __kernel_mqd_t; -struct virtio_gpu_resp_display_info { - struct virtio_gpu_ctrl_hdr hdr; - struct virtio_gpu_display_one pmodes[16]; -}; +typedef __kernel_mqd_t mqd_t; -struct virtio_gpu_get_capset_info { - struct virtio_gpu_ctrl_hdr hdr; - __le32 capset_index; - __le32 padding; +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 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 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 virtio_gpu_get_capset { - struct virtio_gpu_ctrl_hdr hdr; - __le32 capset_id; - __le32 capset_version; +struct audit_ntp_val { + long long oldval; + long long newval; }; -struct virtio_gpu_resp_capset { - struct virtio_gpu_ctrl_hdr hdr; - __u8 capset_data[0]; +struct audit_ntp_data { + struct audit_ntp_val vals[6]; }; -struct virtio_gpu_cmd_get_edid { - struct virtio_gpu_ctrl_hdr hdr; - __le32 scanout; - __le32 padding; +struct open_how { + __u64 flags; + __u64 mode; + __u64 resolve; }; -struct virtio_gpu_resp_edid { - struct virtio_gpu_ctrl_hdr hdr; - __le32 size; - __le32 padding; - __u8 edid[1024]; +enum audit_state { + AUDIT_STATE_DISABLED = 0, + AUDIT_STATE_BUILD = 1, + AUDIT_STATE_RECORD = 2, }; -struct virtio_gpu_resp_resource_uuid { - struct virtio_gpu_ctrl_hdr hdr; - __u8 uuid[16]; +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 virtio_gpu_resp_map_info { - struct virtio_gpu_ctrl_hdr hdr; - __u32 map_info; - __u32 padding; +struct audit_proctitle { + int len; + char *value; }; -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 audit_aux_data; -struct virtio_gpu_fence_event; +struct audit_tree_refs; -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 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; }; -struct virtio_gpu_fence_event { - struct drm_pending_event base; - struct drm_event event; +struct fsnotify_iter_info { + struct fsnotify_mark *marks[5]; + struct fsnotify_group *current_group; + unsigned int report_mask; + int srcu_idx; }; -struct virtio_gpu_box { - __le32 x; - __le32 y; - __le32 z; - __le32 w; - __le32 h; - __le32 d; +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 drm_virtgpu_3d_box { - __u32 x; - __u32 y; - __u32 z; - __u32 w; - __u32 h; - __u32 d; +struct fsnotify_event { + struct list_head list; }; -struct virtio_gpu_mem_entry { - __le64 addr; - __le32 length; - __le32 padding; +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, }; -struct virtio_gpu_resource_attach_backing { - struct virtio_gpu_ctrl_hdr hdr; - __le32 resource_id; - __le32 nr_entries; +enum fsnotify_obj_type { + FSNOTIFY_OBJ_TYPE_ANY = -1, + FSNOTIFY_OBJ_TYPE_INODE = 0, + FSNOTIFY_OBJ_TYPE_VFSMOUNT = 1, + FSNOTIFY_OBJ_TYPE_SB = 2, + FSNOTIFY_OBJ_TYPE_COUNT = 3, + FSNOTIFY_OBJ_TYPE_DETACHED = 3, }; -struct 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 audit_parent { + struct list_head watches; + struct fsnotify_mark mark; }; -struct virtio_gpu_resource_create_2d { - struct virtio_gpu_ctrl_hdr hdr; - __le32 resource_id; - __le32 format; - __le32 width; - __le32 height; +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 virtio_gpu_resource_unref { - struct virtio_gpu_ctrl_hdr hdr; - __le32 resource_id; - __le32 padding; -}; +struct audit_field; -struct virtio_gpu_set_scanout { - struct virtio_gpu_ctrl_hdr hdr; - struct virtio_gpu_rect r; - __le32 scanout_id; - __le32 resource_id; -}; +struct audit_tree; -struct virtio_gpu_resource_flush { - struct virtio_gpu_ctrl_hdr hdr; - struct virtio_gpu_rect r; - __le32 resource_id; - __le32 padding; -}; +struct audit_fsnotify_mark; -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 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 virtio_gpu_ctx_create { - struct virtio_gpu_ctrl_hdr hdr; - __le32 nlen; - __le32 context_init; - char debug_name[64]; +struct audit_field { + u32 type; + union { + u32 val; + kuid_t uid; + kgid_t gid; + struct { + char *lsm_str; + void *lsm_rule; + }; + }; + u32 op; }; -struct virtio_gpu_ctx_destroy { - struct virtio_gpu_ctrl_hdr hdr; +struct audit_entry { + struct list_head list; + struct callback_head rcu; + struct audit_krule rule; }; -struct virtio_gpu_ctx_resource { - struct virtio_gpu_ctrl_hdr hdr; - __le32 resource_id; - __le32 padding; -}; +typedef void (*btf_trace_bpf_trace_printk)(void *, const char *); -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 bpf_nested_pt_regs { + struct pt_regs regs[3]; }; -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 bpf_trace_sample_data { + struct perf_sample_data sds[3]; }; -struct virtio_gpu_cmd_submit { - struct virtio_gpu_ctrl_hdr hdr; - __le32 size; - __le32 padding; +struct send_signal_irq_work { + struct irq_work irq_work; + struct task_struct *task; + u32 sig; + enum pid_type type; }; -struct virtio_gpu_resource_assign_uuid { - struct virtio_gpu_ctrl_hdr hdr; - __le32 resource_id; - __le32 padding; +struct bpf_raw_tp_regs { + struct pt_regs regs[3]; }; -struct virtio_gpu_resource_map_blob { - struct virtio_gpu_ctrl_hdr hdr; - __le32 resource_id; - __le32 padding; - __le64 offset; -}; +struct bpf_link; -struct virtio_gpu_resource_unmap_blob { - struct virtio_gpu_ctrl_hdr hdr; - __le32 resource_id; - __le32 padding; +struct bpf_link_ops { + void (*release)(struct bpf_link *); + void (*dealloc)(struct bpf_link *); + int (*detach)(struct bpf_link *); + int (*update_prog)(struct bpf_link *, struct bpf_prog *, struct bpf_prog *); + void (*show_fdinfo)(const struct bpf_link *, struct seq_file *); + int (*fill_link_info)(const struct bpf_link *, struct bpf_link_info *); + int (*update_map)(struct bpf_link *, struct bpf_map *, struct bpf_map *); }; -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; +enum bpf_link_type { + BPF_LINK_TYPE_UNSPEC = 0, + BPF_LINK_TYPE_RAW_TRACEPOINT = 1, + BPF_LINK_TYPE_TRACING = 2, + BPF_LINK_TYPE_CGROUP = 3, + BPF_LINK_TYPE_ITER = 4, + BPF_LINK_TYPE_NETNS = 5, + BPF_LINK_TYPE_XDP = 6, + BPF_LINK_TYPE_PERF_EVENT = 7, + BPF_LINK_TYPE_KPROBE_MULTI = 8, + BPF_LINK_TYPE_STRUCT_OPS = 9, + BPF_LINK_TYPE_NETFILTER = 10, + BPF_LINK_TYPE_TCX = 11, + BPF_LINK_TYPE_UPROBE_MULTI = 12, + BPF_LINK_TYPE_NETKIT = 13, + MAX_BPF_LINK_TYPE = 14, }; -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 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 dma_fence_array_cb { - struct dma_fence_cb cb; - struct dma_fence_array *array; +enum key_lookup_flag { + KEY_LOOKUP_CREATE = 1, + KEY_LOOKUP_PARTIAL = 2, + KEY_LOOKUP_ALL = 3, }; -enum scsi_scan_mode { - SCSI_SCAN_INITIAL = 0, - SCSI_SCAN_RESCAN = 1, - SCSI_SCAN_MANUAL = 2, +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 scsi_timeouts { - SCSI_DEFAULT_EH_TIMEOUT = 10000, +enum { + TRACE_EVENT_FL_FILTERED = 1, + TRACE_EVENT_FL_CAP_ANY = 2, + TRACE_EVENT_FL_NO_SET_FILTER = 4, + TRACE_EVENT_FL_IGNORE_ENABLE = 8, + TRACE_EVENT_FL_TRACEPOINT = 16, + TRACE_EVENT_FL_DYNAMIC = 32, + TRACE_EVENT_FL_KPROBE = 64, + TRACE_EVENT_FL_UPROBE = 128, + TRACE_EVENT_FL_EPROBE = 256, + TRACE_EVENT_FL_FPROBE = 512, + TRACE_EVENT_FL_CUSTOM = 1024, }; -struct async_scan_data { - struct list_head list; - struct Scsi_Host *shost; - struct completion prev_finished; +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, }; -typedef void (*activate_complete)(void *, int); - -struct scsi_device_handler { - struct list_head list; - struct module *module; - const char *name; - enum scsi_disposition (*check_sense)(struct scsi_device *, struct scsi_sense_hdr *); - int (*attach)(struct scsi_device *); - void (*detach)(struct scsi_device *); - int (*activate)(struct scsi_device *, activate_complete, void *); - blk_status_t (*prep_fn)(struct scsi_device *, struct request *); - int (*set_params)(struct scsi_device *, const char *); - void (*rescan)(struct scsi_device *); +enum { + BPF_F_KPROBE_MULTI_RETURN = 1, }; -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 *); +enum uprobe_filter_ctx { + UPROBE_FILTER_REGISTER = 0, + UPROBE_FILTER_UNREGISTER = 1, + UPROBE_FILTER_MMAP = 2, }; -struct scsi_lun { - __u8 scsi_lun[8]; +enum { + BPF_F_UPROBE_MULTI_RETURN = 1, }; -struct cdrom_sysctl_settings { - char info[1000]; - int autoclose; - int autoeject; - int debug; - int lock; - int check; +enum { + BTF_F_COMPACT = 1, + BTF_F_NONAME = 2, + BTF_F_PTR_RAW = 4, + BTF_F_ZERO = 8, }; -enum cdrom_print_option { - CTL_NAME = 0, - CTL_SPEED = 1, - CTL_SLOTS = 2, - CTL_CAPABILITY = 3, +enum { + BPF_F_GET_BRANCH_RECORDS_SIZE = 1, }; -struct event_header { - __be16 data_len; - __u8 notification_class: 3; - __u8 reserved1: 4; - __u8 nea: 1; - __u8 supp_event_class; -}; +typedef u64 (*btf_bpf_override_return)(struct pt_regs *, unsigned long); -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; -}; +typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); -struct mode_page_header { - __be16 mode_data_length; - __u8 medium_type; - __u8 reserved1; - __u8 reserved2; - __u8 reserved3; - __be16 desc_length; -}; +typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); -struct cdrom_timed_media_change_info { - __s64 last_media_change; - __u64 media_flags; -}; +typedef u64 (*btf_bpf_probe_read_kernel)(void *, u32, const void *); -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; -}; +typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *); -struct dvd_lu_send_agid { - __u8 type; - unsigned int agid: 2; -}; +typedef u64 (*btf_bpf_probe_read_compat)(void *, u32, const void *); -typedef __u8 dvd_challenge[10]; +typedef u64 (*btf_bpf_probe_read_compat_str)(void *, u32, const void *); -struct dvd_host_send_challenge { - __u8 type; - unsigned int agid: 2; - dvd_challenge chal; -}; +typedef u64 (*btf_bpf_probe_write_user)(void __attribute__((btf_type_tag("user"))) *, const void *, u32); -typedef __u8 dvd_key[5]; +typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64); -struct dvd_send_key { - __u8 type; - unsigned int agid: 2; - dvd_key key; -}; +typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32); -struct dvd_lu_send_challenge { - __u8 type; - unsigned int agid: 2; - dvd_challenge chal; -}; +typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32); -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; -}; +typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32); -struct dvd_lu_send_asf { - __u8 type; - unsigned int agid: 2; - unsigned int asf: 1; -}; +struct btf_ptr; -struct dvd_host_send_rpcstate { - __u8 type; - __u8 pdrc; -}; +typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64); -struct dvd_lu_send_rpcstate { - __u8 type: 2; - __u8 vra: 3; - __u8 ucca: 3; - __u8 region_mask; - __u8 rpc_scheme; +struct btf_ptr { + void *ptr; + __u32 type_id; + __u32 flags; }; -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 u64 (*btf_bpf_perf_event_read)(struct bpf_map *, u64); -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; +struct bpf_perf_event_value; -typedef struct { - int data; - int audio; - int cdi; - int xa; - long error; -} tracktype; +typedef u64 (*btf_bpf_perf_event_read_value)(struct bpf_map *, u64, struct bpf_perf_event_value *, u32); -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 bpf_perf_event_value { + __u64 counter; + __u64 enabled; + __u64 running; }; -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; -}; +typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64); -struct cdrom_slot { - __u8 change: 1; - __u8 reserved1: 6; - __u8 disc_present: 1; - __u8 reserved2[3]; -}; +typedef u64 (*btf_bpf_get_current_task)(); -struct cdrom_changer_info { - struct cdrom_mechstat_header hdr; - struct cdrom_slot slots[256]; -}; +typedef u64 (*btf_bpf_get_current_task_btf)(); -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; +typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *); -typedef u32 compat_caddr_t; +typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32); -struct compat_cdrom_read_audio { - union cdrom_addr addr; - u8 addr_format; - compat_int_t nframes; - compat_caddr_t buf; -}; +typedef u64 (*btf_bpf_send_signal)(u32); -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 u64 (*btf_bpf_send_signal_thread)(u32); -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; -}; +typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32); -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; -}; +typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64); -struct dvd_physical { - __u8 type; - __u8 layer_num; - struct dvd_layer layer[4]; -}; +typedef u64 (*btf_bpf_get_func_ip_tracing)(void *); -struct dvd_copyright { - __u8 type; - __u8 layer_num; - __u8 cpst; - __u8 rmi; -}; +typedef u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *); -struct dvd_disckey { - __u8 type; - unsigned int agid: 2; - __u8 value[2048]; -}; +typedef u64 (*btf_bpf_get_func_ip_kprobe_multi)(struct pt_regs *); -struct dvd_bca { - __u8 type; - int len; - __u8 value[188]; -}; +typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *); -struct dvd_manufact { - __u8 type; - __u8 layer_num; - int len; - __u8 value[2048]; -}; +typedef u64 (*btf_bpf_get_func_ip_uprobe_multi)(struct pt_regs *); -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 u64 (*btf_bpf_get_attach_cookie_uprobe_multi)(struct pt_regs *); -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; +typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *); -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 bpf_perf_event_data_kern; -struct cdrom_tochdr { - __u8 cdth_trk0; - __u8 cdth_trk1; -}; +typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *); -struct cdrom_ti { - __u8 cdti_trk0; - __u8 cdti_ind0; - __u8 cdti_trk1; - __u8 cdti_ind1; -}; +typedef struct pt_regs bpf_user_pt_regs_t; -struct usb_dynid { - struct list_head node; - struct usb_device_id id; +struct bpf_perf_event_data_kern { + bpf_user_pt_regs_t *regs; + struct perf_sample_data *data; + struct perf_event *event; }; -struct usb_dynids { - spinlock_t lock; - struct list_head list; -}; +typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *); -struct usbdrv_wrap { - struct device_driver driver; - int for_devices; -}; +typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64); -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; -}; +typedef u64 (*btf_get_func_arg)(void *, u32, u64 *); -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; -}; +typedef u64 (*btf_get_func_ret)(void *, u64 *); -typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *); +typedef u64 (*btf_get_func_arg_cnt)(void *); -typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *); +typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64); -typedef void (*btf_trace_xhci_dbg_quirks)(void *, struct va_format *); +typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64); -typedef void (*btf_trace_xhci_dbg_reset_ep)(void *, struct va_format *); +typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64); -typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *); +typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32); -typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *); +typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64); -typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *); +struct bpf_raw_tracepoint_args; -typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); +typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64); -typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct bpf_raw_tracepoint_args { + __u64 args[0]; +}; -typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *); +typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64); -typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); +typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64); -typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct trace_event_raw_bpf_trace_printk { + struct trace_entry ent; + u32 __data_loc_bpf_string; + char __data[0]; +}; -typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct bpf_trace_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + bool is_uprobe; +}; -typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct trace_uprobe; -typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *); +struct uprobe_dispatch_data { + struct trace_uprobe *tu; + unsigned long bp_addr; +}; -typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); +typedef u8 kprobe_opcode_t; -typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); +struct kprobe; -typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *); +typedef int (*kprobe_pre_handler_t)(struct kprobe *, struct pt_regs *); -typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *); +typedef void (*kprobe_post_handler_t)(struct kprobe *, struct pt_regs *, unsigned long); -typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); +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; +}; -typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); +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; +}; -typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); +struct bpf_kprobe_multi_link; -typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); +struct bpf_kprobe_multi_run_ctx { + struct bpf_run_ctx run_ctx; + struct bpf_kprobe_multi_link *link; + unsigned long entry_ip; +}; -struct xhci_ep_ctx; +struct rethook; -typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); +struct fprobe { + struct ftrace_ops ops; + unsigned long nmissed; + unsigned int flags; + struct rethook *rethook; + size_t entry_data_size; + int nr_maxactive; + int (*entry_handler)(struct fprobe *, unsigned long, unsigned long, struct pt_regs *, void *); + void (*exit_handler)(struct fprobe *, unsigned long, unsigned long, struct pt_regs *, void *); +}; -struct xhci_ep_ctx { - __le32 ep_info; - __le32 ep_info2; - __le64 deq; - __le32 tx_info; - __le32 reserved[3]; +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; + u32 flags; }; -typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); +struct objpool_head; -typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *); +typedef int (*objpool_fini_cb)(struct objpool_head *, void *); -typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); +struct objpool_slot; -typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); +struct objpool_head { + int obj_size; + int nr_objs; + int nr_cpus; + int capacity; + gfp_t gfp; + refcount_t ref; + unsigned long flags; + struct objpool_slot **cpu_slots; + objpool_fini_cb release; + void *context; +}; -typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); +struct rethook_node; -typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); +struct rethook { + void *data; + void (*handler)(struct rethook_node *, void *, unsigned long, struct pt_regs *); + struct objpool_head pool; + struct callback_head rcu; +}; -typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *); +struct rethook_node { + struct callback_head rcu; + struct llist_node llist; + struct rethook *rethook; + unsigned long ret_addr; + unsigned long frame; +}; -typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); +struct objpool_slot { + uint32_t head; + uint32_t tail; + uint32_t last; + uint32_t mask; + void *entries[0]; +}; -typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *); +struct bpf_uprobe; -typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); +struct bpf_uprobe_multi_run_ctx { + struct bpf_run_ctx run_ctx; + unsigned long entry_ip; + struct bpf_uprobe *uprobe; +}; -typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *); +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; +}; -typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); +struct bpf_uprobe_multi_link; -typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); +struct bpf_uprobe { + struct bpf_uprobe_multi_link *link; + loff_t offset; + u64 cookie; + struct uprobe_consumer consumer; +}; -struct xhci_input_control_ctx; +struct bpf_uprobe_multi_link { + struct path path; + struct bpf_link link; + u32 cnt; + struct bpf_uprobe *uprobes; + struct task_struct *task; +}; -typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); +struct bpf_trace_module { + struct module *module; + struct list_head list; +}; -struct xhci_input_control_ctx { - __le32 drop_flags; - __le32 add_flags; - __le32 rsvd2[6]; +struct trace_event_data_offsets_bpf_trace_printk { + u32 bpf_string; }; -typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); +typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); -typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); +struct user_syms { + const char **syms; + char *buf; +}; -typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); +struct bpf_link_primer { + struct bpf_link *link; + struct file *file; + int fd; + u32 id; +}; -typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); +struct modules_array { + struct module **mods; + int mods_cnt; + int mods_cap; +}; -typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); +struct btf_id_set { + u32 cnt; + u32 ids[0]; +}; -typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); +struct bpf_key { + struct key *key; + bool has_ref; +}; -typedef void (*btf_trace_xhci_handle_port_status)(void *, u32, u32); +struct perf_event_query_bpf { + __u32 ids_len; + __u32 prog_cnt; + __u32 ids[0]; +}; -typedef void (*btf_trace_xhci_get_port_status)(void *, u32, u32); +struct multi_symbols_sort { + const char **funcs; + u64 *cookies; +}; -typedef void (*btf_trace_xhci_hub_status_data)(void *, u32, u32); +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; +}; -typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32); +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; +}; -typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); +enum bpf_cgroup_storage_type { + BPF_CGROUP_STORAGE_SHARED = 0, + BPF_CGROUP_STORAGE_PERCPU = 1, + __BPF_CGROUP_STORAGE_MAX = 2, +}; -struct dbc_request; +struct btf_member { + __u32 name_off; + __u32 type; + __u32 offset; +}; -typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); +struct static_call_tramp_key { + s32 tramp; + s32 key; +}; -struct xhci_dbc; +enum { + XA_CHECK_SCHED = 4096, +}; -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; +struct dirty_throttle_control { + struct wb_domain *dom; + struct dirty_throttle_control *gdtc; + struct bdi_writeback *wb; + struct fprop_local_percpu *wb_completions; + unsigned long avail; + unsigned long dirty; + unsigned long thresh; + unsigned long bg_thresh; + unsigned long wb_dirty; + unsigned long wb_thresh; + unsigned long wb_bg_thresh; + unsigned long pos_ratio; }; -enum dbc_state { - DS_DISABLED = 0, - DS_INITIALIZED = 1, - DS_ENABLED = 2, - DS_CONNECTED = 3, - DS_CONFIGURED = 4, - DS_STALLED = 5, +struct wb_lock_cookie { + bool locked; + unsigned long flags; }; -struct dbc_ep { - struct xhci_dbc *dbc; - struct list_head list_pending; - struct xhci_ring *ring; - unsigned int direction: 1; +struct page_vma_mapped_walk { + unsigned long pfn; + unsigned long nr_pages; + unsigned long pgoff; + struct vm_area_struct *vma; + unsigned long address; + pmd_t *pmd; + pte_t *pte; + spinlock_t *ptl; + unsigned int flags; }; -struct dbc_regs; +struct memcg_vmstats { + long state[48]; + unsigned long events[15]; + long state_local[48]; + unsigned long events_local[15]; + long state_pending[48]; + unsigned long events_pending[15]; +}; -struct dbc_str_descs; +struct mem_cgroup_tree_per_node; -struct dbc_driver; +struct mem_cgroup_tree { + struct mem_cgroup_tree_per_node *rb_tree_per_node[64]; +}; -struct xhci_dbc { +struct mem_cgroup_tree_per_node { + struct rb_root rb_root; + struct rb_node *rb_rightmost; spinlock_t lock; - struct device *dev; - struct xhci_hcd *xhci; - struct dbc_regs *regs; - struct xhci_ring *ring_evt; - struct xhci_ring *ring_in; - struct xhci_ring *ring_out; - struct xhci_erst erst; - struct xhci_container_ctx *ctx; - struct dbc_str_descs *string; - dma_addr_t string_dma; - size_t string_size; - u16 idVendor; - u16 idProduct; - u16 bcdDevice; - u8 bInterfaceProtocol; - enum dbc_state state; - struct delayed_work event_work; - unsigned int 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 memory_stat { + const char *name; + unsigned int idx; }; -struct dbc_str_descs { - char string0[64]; - char manufacturer[64]; - char product[64]; - char serial[64]; +struct move_charge_struct { + spinlock_t lock; + struct mm_struct *mm; + struct mem_cgroup *from; + struct mem_cgroup *to; + unsigned long flags; + unsigned long precharge; + unsigned long moved_charge; + unsigned long moved_swap; + struct task_struct *moving_task; + wait_queue_head_t waitq; }; -struct dbc_driver { - int (*configure)(struct xhci_dbc *); - void (*disconnect)(struct xhci_dbc *); +struct memcg_stock_pcp { + local_lock_t stock_lock; + struct mem_cgroup *cached; + unsigned int nr_pages; + struct obj_cgroup *cached_objcg; + struct pglist_data *cached_pgdat; + unsigned int nr_bytes; + int nr_slab_reclaimable_b; + int nr_slab_unreclaimable_b; + struct work_struct work; + unsigned long flags; }; -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 numa_stat { + const char *name; + unsigned int lru_mask; +}; -struct trace_event_raw_xhci_log_msg { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; +enum { + CSS_TASK_ITER_PROCS = 1, + CSS_TASK_ITER_THREADED = 2, + CSS_TASK_ITER_SKIPPED = 65536, }; -struct trace_event_raw_xhci_log_ctx { - struct trace_entry ent; - int ctx_64; - unsigned int ctx_type; - dma_addr_t ctx_dma; - u8 *ctx_va; - unsigned int ctx_ep_num; - u32 __data_loc_ctx_data; - char __data[0]; +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, }; -struct trace_event_raw_xhci_log_trb { - struct trace_entry ent; - u32 type; - u32 field0; - u32 field1; - u32 field2; - u32 field3; - char __data[0]; +enum writeback_stat_item { + NR_DIRTY_THRESHOLD = 0, + NR_DIRTY_BG_THRESHOLD = 1, + NR_VM_WRITEBACK_STAT_ITEMS = 2, }; -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]; +enum mem_cgroup_events_target { + MEM_CGROUP_TARGET_THRESH = 0, + MEM_CGROUP_TARGET_SOFTLIMIT = 1, + MEM_CGROUP_NTARGETS = 2, }; -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]; +enum mc_target_type { + MC_TARGET_NONE = 0, + MC_TARGET_PAGE = 1, + MC_TARGET_SWAP = 2, + MC_TARGET_DEVICE = 3, }; -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]; +enum res_type { + _MEM = 0, + _MEMSWAP = 1, + _KMEM = 2, + _TCP = 3, }; -struct trace_event_raw_xhci_log_ep_ctx { - struct trace_entry ent; - u32 info; - u32 info2; - u64 deq; - u32 tx_info; - char __data[0]; +enum { + RES_USAGE___2 = 0, + RES_LIMIT___2 = 1, + RES_MAX_USAGE___2 = 2, + RES_FAILCNT___2 = 3, + RES_SOFT_LIMIT = 4, }; -struct trace_event_raw_xhci_log_slot_ctx { - struct trace_entry ent; - u32 info; - u32 info2; - u32 tt_info; - u32 state; - char __data[0]; +struct oom_wait_info { + struct mem_cgroup *memcg; + wait_queue_entry_t wait; }; -struct trace_event_raw_xhci_log_ctrl_ctx { - struct trace_entry ent; - u32 drop; - u32 add; - char __data[0]; +struct mem_cgroup_eventfd_list { + struct list_head list; + struct eventfd_ctx *eventfd; }; -struct trace_event_raw_xhci_log_ring { - struct trace_entry ent; - u32 type; - void *ring; - dma_addr_t enq; - dma_addr_t deq; - dma_addr_t enq_seg; - dma_addr_t deq_seg; - unsigned int num_segs; - unsigned int stream_id; - unsigned int cycle_state; - unsigned int bounce_buf_len; - char __data[0]; +struct mem_cgroup_event { + struct mem_cgroup *memcg; + struct eventfd_ctx *eventfd; + struct list_head list; + int (*register_event)(struct mem_cgroup *, struct eventfd_ctx *, const char *); + void (*unregister_event)(struct mem_cgroup *, struct eventfd_ctx *); + poll_table pt; + wait_queue_head_t *wqh; + wait_queue_entry_t wait; + struct work_struct remove; }; -struct trace_event_raw_xhci_log_portsc { - struct trace_entry ent; - u32 portnum; - u32 portsc; - char __data[0]; +struct uncharge_gather { + struct mem_cgroup *memcg; + unsigned long nr_memory; + unsigned long pgpgout; + unsigned long nr_kmem; + int nid; }; -struct trace_event_raw_xhci_log_doorbell { - struct trace_entry ent; - u32 slot; - u32 doorbell; - char __data[0]; +union mc_target { + struct page *page; + swp_entry_t ent; }; -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 posix_acl_xattr_header { + __le32 a_version; }; -struct trace_event_data_offsets_xhci_log_msg { - u32 msg; +struct posix_acl_xattr_entry { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; }; -struct trace_event_data_offsets_xhci_log_ctx { - u32 ctx_data; +enum rlimit_type { + UCOUNT_RLIMIT_NPROC = 0, + UCOUNT_RLIMIT_MSGQUEUE = 1, + UCOUNT_RLIMIT_SIGPENDING = 2, + UCOUNT_RLIMIT_MEMLOCK = 3, + UCOUNT_RLIMIT_COUNTS = 4, }; -struct trace_event_data_offsets_xhci_log_trb {}; +struct kernel_stat { + unsigned long irqs_sum; + unsigned int softirqs[10]; +}; -struct trace_event_data_offsets_xhci_log_free_virt_dev {}; +enum bio_post_read_step { + STEP_INITIAL = 0, + STEP_DECRYPT = 1, + STEP_VERITY = 2, + STEP_MAX = 3, +}; -struct trace_event_data_offsets_xhci_log_virt_dev {}; +enum { + BIO_PAGE_PINNED = 0, + BIO_CLONED = 1, + BIO_BOUNCED = 2, + BIO_QUIET = 3, + BIO_CHAIN = 4, + BIO_REFFED = 5, + BIO_BPS_THROTTLED = 6, + BIO_TRACE_COMPLETION = 7, + BIO_CGROUP_ACCT = 8, + BIO_QOS_THROTTLED = 9, + BIO_QOS_MERGED = 10, + BIO_REMAPPED = 11, + BIO_ZONE_WRITE_LOCKED = 12, + BIO_FLAG_LAST = 13, +}; -struct trace_event_data_offsets_xhci_log_urb {}; +struct bio_post_read_ctx { + struct bio *bio; + struct work_struct work; + unsigned int cur_step; + unsigned int enabled_steps; +}; -struct trace_event_data_offsets_xhci_log_ep_ctx {}; +struct folio_iter { + struct folio *folio; + size_t offset; + size_t length; + struct folio *_next; + size_t _seg_count; + int _i; +}; -struct trace_event_data_offsets_xhci_log_slot_ctx {}; +struct idmap_legacy_upcalldata; -struct trace_event_data_offsets_xhci_log_ctrl_ctx {}; +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 trace_event_data_offsets_xhci_log_ring {}; +struct idmap_msg { + __u8 im_type; + __u8 im_conv; + char im_name[128]; + __u32 im_id; + __u8 im_status; +}; -struct trace_event_data_offsets_xhci_log_portsc {}; +struct idmap_legacy_upcalldata { + struct rpc_pipe_msg pipe_msg; + struct idmap_msg idmap_msg; + struct key *authkey; + struct idmap *idmap; +}; -struct trace_event_data_offsets_xhci_log_doorbell {}; +enum { + Opt_find_uid = 0, + Opt_find_gid = 1, + Opt_find_user = 2, + Opt_find_group = 3, + Opt_find_err = 4, +}; -struct trace_event_data_offsets_xhci_dbc_log_request {}; +struct user_key_payload { + struct callback_head rcu; + unsigned short datalen; + long: 0; + char data[0]; +}; -enum power_supply_notifier_events { - PSY_EVENT_PROP_CHANGED = 0, +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 psy_am_i_supplied_data { - struct power_supply *psy; - unsigned int count; +struct getdents_callback { + struct dir_context ctx; + char *name; + u64 ino; + int found; + int sequence; }; -struct psy_get_supplier_prop_data { - struct power_supply *psy; - enum power_supply_property psp; - union power_supply_propval *val; +struct keyctl_dh_params { + union { + __s32 private; + __s32 priv; + }; + __s32 prime; + __s32 base; }; -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 keyctl_kdf_params { + char __attribute__((btf_type_tag("user"))) *hashname; + char __attribute__((btf_type_tag("user"))) *otherinfo; + __u32 otherinfolen; + __u32 __spare[8]; }; -enum { - WMI_READ_TAKES_NO_ARGS = 0, - WMI_PROBED = 1, +struct level_datum { + struct mls_level *level; + unsigned char isalias; }; -struct guid_block { - guid_t guid; - union { - char object_id[2]; - struct { - unsigned char notify_id; - unsigned char reserved; - }; - }; - u8 instance_count; - u8 flags; -}; +struct sidtab_node_inner; -typedef void (*wmi_notify_handler)(u32, void *); +struct sidtab_node_leaf; -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; +union sidtab_entry_inner { + struct sidtab_node_inner *ptr_inner; + struct sidtab_node_leaf *ptr_leaf; }; -typedef void (*btf_trace_azx_pcm_trigger)(void *, struct azx *, struct azx_dev *, int); - -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 *); +struct sidtab_str_cache; -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, +struct sidtab_entry { + u32 sid; + u32 hash; + struct context context; + struct sidtab_str_cache __attribute__((btf_type_tag("rcu"))) *cache; + struct hlist_node list; }; -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 sidtab_isid_entry { + int set; + struct sidtab_entry entry; }; -struct hda_pcm; +struct sidtab_convert_params; -struct azx_pcm { - struct azx *chip; - struct snd_pcm *pcm; - struct hda_codec *codec; - struct hda_pcm *info; - struct list_head list; +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 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 sidtab_node_inner { + union sidtab_entry_inner entries[512]; }; -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 sidtab_node_leaf { + struct sidtab_entry entries[39]; }; -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 sidtab_str_cache { + struct callback_head rcu_member; + struct list_head lru_member; + struct sidtab_entry *parent; + u32 len; + char str[0]; }; -struct trace_event_raw_azx_pcm_trigger { - struct trace_entry ent; - int card; - int idx; - int cmd; - char __data[0]; +struct convert_context_args; + +struct sidtab_convert_params { + struct convert_context_args *args; + struct sidtab *target; }; -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 convert_context_args { + struct policydb *oldp; + struct policydb *newp; }; -struct trace_event_raw_azx_pcm { - struct trace_entry ent; - unsigned char stream_tag; - char __data[0]; +struct range_trans { + u32 source_type; + u32 target_type; + u32 target_class; }; -struct hda_spdif_out { - hda_nid_t nid; - unsigned int status; - unsigned short ctls; +struct cat_datum { + u32 value; + unsigned char isalias; }; -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 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 trace_event_data_offsets_azx_pcm_trigger {}; +struct sctphdr { + __be16 source; + __be16 dest; + __be32 vtag; + __le32 checksum; +}; -struct trace_event_data_offsets_azx_get_position {}; +struct scm_stat { + atomic_t nr_fds; +}; -struct trace_event_data_offsets_azx_pcm {}; +struct unix_address; -struct page_pool_stats { - struct page_pool_alloc_stats alloc_stats; - struct page_pool_recycle_stats recycle_stats; +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; }; -enum { - TCA_EMATCH_TREE_UNSPEC = 0, - TCA_EMATCH_TREE_HDR = 1, - TCA_EMATCH_TREE_LIST = 2, - __TCA_EMATCH_TREE_MAX = 3, +struct sockaddr_un { + __kernel_sa_family_t sun_family; + char sun_path[108]; }; -struct tcf_ematch_hdr { - __u16 matchid; - __u16 kind; - __u16 flags; - __u16 pad; +struct unix_address { + refcount_t refcnt; + int len; + struct sockaddr_un name[0]; }; -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, +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; }; -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, +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 { - 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 futex_waitv; -struct fec_stat_grp { - u64 stats[9]; - u8 cnt; +struct io_futex { + struct file *file; + union { + u32 __attribute__((btf_type_tag("user"))) *uaddr; + struct futex_waitv __attribute__((btf_type_tag("user"))) *uwaitv; + }; + unsigned long futex_val; + unsigned long futex_mask; + unsigned long futexv_owned; + u32 futex_flags; + unsigned int futex_nr; + bool futexv_unqueued; }; -struct fec_reply_data { - struct ethnl_reply_data base; - unsigned long fec_link_modes[2]; - u32 active_fec; - u8 fec_auto; - struct fec_stat_grp corr; - struct fec_stat_grp uncorr; - struct fec_stat_grp corr_bits; +struct futex_waitv { + __u64 val; + __u64 uaddr; + __u32 flags; + __u32 __reserved; }; -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 wake_q_head; -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); -}; +struct futex_q; -struct sdp_media_type { - const char *name; - unsigned int len; - enum sip_expectation_classes class; +typedef void futex_wake_fn(struct wake_q_head *, struct futex_q *); + +struct futex_q { + struct plist_node list; + struct task_struct *task; + spinlock_t *lock_ptr; + futex_wake_fn *wake; + void *wake_data; + union futex_key key; + struct futex_pi_state *pi_state; + struct rt_mutex_waiter *rt_waiter; + union futex_key *requeue_pi_key; + u32 bitset; + atomic_t requeue_state; }; -struct inet_protosw { - struct list_head list; - unsigned short type; - unsigned short protocol; - struct proto *prot; - const struct proto_ops *ops; - unsigned char flags; +struct io_futex_data { + union { + struct futex_q q; + struct io_cache_entry cache; + }; + struct io_kiocb *req; }; -struct udp_seq_afinfo { - sa_family_t family; - struct udp_table *udp_table; +struct wake_q_head { + struct wake_q_node *first; + struct wake_q_node **lastp; }; -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; - struct sk_buff_head reader_queue; - int forward_deficit; - int forward_threshold; - long: 64; - long: 64; - long: 64; - long: 64; +struct futex_vector { + struct futex_waitv w; + struct futex_q q; }; -struct raw_hashinfo { +struct futex_hash_bucket { + atomic_t waiters; spinlock_t lock; + struct plist_head chain; long: 64; long: 64; long: 64; long: 64; long: 64; - long: 64; - long: 64; - struct hlist_head ht[256]; }; -enum { - LWTUNNEL_XMIT_DONE = 0, - LWTUNNEL_XMIT_CONTINUE = 1, +enum pci_bar_type { + pci_bar_unknown = 0, + pci_bar_io = 1, + pci_bar_mem32 = 2, + pci_bar_mem64 = 3, }; -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; +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, }; -struct mmpin { - struct user_struct *user; - unsigned int num_pg; +enum { + pci_channel_io_normal = 1, + pci_channel_io_frozen = 2, + pci_channel_io_perm_failure = 3, }; -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; +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 ipv4_addr_key { - __be32 addr; - int vif; +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 inetpeer_addr { - union { - struct ipv4_addr_key a4; - struct in6_addr a6; - u32 key[4]; - }; - __u16 family; +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 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 pci_domain_busn_res { + struct list_head list; + struct resource res; + int domain_nr; }; -struct ip6_ra_chain { - struct ip6_ra_chain *next; - struct sock *sk; - int sel; - void (*destructor)(struct sock *); +enum backlight_notification { + BACKLIGHT_REGISTERED = 0, + BACKLIGHT_UNREGISTERED = 1, }; -struct ipcm6_cookie { - struct sockcm_cookie sockc; - __s16 hlimit; - __s16 tclass; - __u16 gso_size; - __s8 dontfrag; - struct ipv6_txoptions *opt; +struct acpi_hardware_id { + struct list_head list; + const char *id; }; -enum ip6_defrag_users { - IP6_DEFRAG_LOCAL_DELIVER = 0, - IP6_DEFRAG_CONNTRACK_IN = 1, - __IP6_DEFRAG_CONNTRACK_IN = 65536, - IP6_DEFRAG_CONNTRACK_OUT = 65537, - __IP6_DEFRAG_CONNTRACK_OUT = 131072, - IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 131073, - __IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 196608, +struct 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 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, +struct acpi_device_properties { + const guid_t *guid; + union acpi_object *properties; + struct list_head list; + void **bufs; }; -enum bss_param_flags { - BSS_PARAM_FLAGS_CTS_PROT = 1, - BSS_PARAM_FLAGS_SHORT_PREAMBLE = 2, - BSS_PARAM_FLAGS_SHORT_SLOT_TIME = 4, +struct acpi_rw_lock { + void *writer_mutex; + void *reader_mutex; + u32 num_readers; }; -enum ieee80211_rate_flags { - IEEE80211_RATE_SHORT_PREAMBLE = 1, - IEEE80211_RATE_MANDATORY_A = 2, - IEEE80211_RATE_MANDATORY_B = 4, - IEEE80211_RATE_MANDATORY_G = 8, - IEEE80211_RATE_ERP_G = 16, - IEEE80211_RATE_SUPPORTS_5MHZ = 32, - IEEE80211_RATE_SUPPORTS_10MHZ = 64, +struct acpi_get_devices_info { + acpi_walk_callback user_function; + void *context; + const char *hid; }; -enum txq_info_flags { - IEEE80211_TXQ_STOP = 0, - IEEE80211_TXQ_AMPDU = 1, - IEEE80211_TXQ_NO_AMSDU = 2, - IEEE80211_TXQ_DIRTY = 3, -}; +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 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, +struct acpi_table_cdat { + u32 length; + u8 revision; + u8 checksum; + u8 reserved[6]; + u32 sequence; }; -enum nl80211_tid_stats { - __NL80211_TID_STATS_INVALID = 0, - NL80211_TID_STATS_RX_MSDU = 1, - NL80211_TID_STATS_TX_MSDU = 2, - NL80211_TID_STATS_TX_MSDU_RETRIES = 3, - NL80211_TID_STATS_TX_MSDU_FAILED = 4, - NL80211_TID_STATS_PAD = 5, - NL80211_TID_STATS_TXQ_STATS = 6, - NUM_NL80211_TID_STATS = 7, - NL80211_TID_STATS_MAX = 6, +struct pnp_port { + resource_size_t min; + resource_size_t max; + resource_size_t align; + resource_size_t size; + unsigned char flags; }; -struct sta_link_alloc { - struct link_sta_info info; - struct ieee80211_link_sta sta; - struct callback_head callback_head; +struct pnp_irq { + pnp_irq_mask_t map; + unsigned char flags; }; -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 pnp_dma { + unsigned char map; + unsigned char flags; }; -struct p9_req_t; +struct pnp_mem { + resource_size_t min; + resource_size_t max; + resource_size_t align; + resource_size_t size; + unsigned char flags; +}; -struct p9_trans_module { +struct pnp_option { 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 *); + 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 p9_fcall { - u32 size; - u8 id; - u16 tag; - size_t offset; - size_t capacity; - struct kmem_cache *cache; - u8 *sdata; - bool zc; +struct virtio_pci_legacy_device { + struct pci_dev *pci_dev; + u8 *isr; + void *ioaddr; + struct virtio_device_id id; }; -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; -}; +struct virtio_pci_vq_info; -enum dns_payload_content_type { - DNS_PAYLOAD_IS_SERVER_LIST = 0, +struct virtio_pci_device { + struct virtio_device vdev; + struct pci_dev *pci_dev; + union { + struct virtio_pci_legacy_device ldev; + struct virtio_pci_modern_device mdev; + }; + bool is_legacy; + u8 *isr; + spinlock_t lock; + struct list_head virtqueues; + struct virtio_pci_vq_info **vqs; + 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); }; -enum { - dns_key_data = 0, - dns_key_error = 1, +struct virtio_pci_vq_info { + struct virtqueue *vq; + struct list_head node; + unsigned int msix_vector; }; -enum key_state { - KEY_IS_UNINSTANTIATED = 0, - KEY_IS_POSITIVE = 1, +struct vt_spawn_console { + spinlock_t lock; + struct pid *pid; + int sig; }; -struct dns_payload_header { - __u8 zero; - __u8 content; - __u8 version; +struct kbd_struct { + unsigned char lockstate; + unsigned char slockstate; + unsigned char ledmode: 1; + unsigned char ledflagstate: 4; + char: 3; + unsigned char default_ledflagstate: 4; + unsigned char kbdmode: 3; + int: 1; + unsigned char modeflags: 5; }; -enum handshake_msg_type { - HANDSHAKE_MSG_TYPE_UNSPEC = 0, - HANDSHAKE_MSG_TYPE_CLIENTHELLO = 1, - HANDSHAKE_MSG_TYPE_SERVERHELLO = 2, -}; +struct vc_data; -enum handshake_auth { - HANDSHAKE_AUTH_UNSPEC = 0, - HANDSHAKE_AUTH_UNAUTH = 1, - HANDSHAKE_AUTH_PSK = 2, - HANDSHAKE_AUTH_X509 = 3, -}; +typedef void k_handler_fn(struct vc_data *, unsigned char, char); -enum { - TLS_NO_KEYRING = 0, - TLS_NO_PEERID = 0, - TLS_NO_CERT = 0, - TLS_NO_PRIVKEY = 0, +enum vc_intensity { + VCI_HALF_BRIGHT = 0, + VCI_NORMAL = 1, + VCI_BOLD = 2, + VCI_MASK = 3, }; -enum key_lookup_flag { - KEY_LOOKUP_CREATE = 1, - KEY_LOOKUP_PARTIAL = 2, - KEY_LOOKUP_ALL = 3, +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; }; -enum { - HANDSHAKE_A_X509_CERT = 1, - HANDSHAKE_A_X509_PRIVKEY = 2, - __HANDSHAKE_A_X509_MAX = 3, - HANDSHAKE_A_X509_MAX = 2, +struct console_font { + unsigned int width; + unsigned int height; + unsigned int charcount; + unsigned char *data; }; -struct tls_handshake_req { - void (*th_consumer_done)(void *, int, key_serial_t); - void *th_consumer_data; - int th_type; - unsigned int th_timeout_ms; - int th_auth_mode; - const char *th_peername; - key_serial_t th_keyring; - key_serial_t th_certificate; - key_serial_t th_privkey; - unsigned int th_num_peerids; - key_serial_t th_peerid[5]; +struct vt_mode { + char mode; + char waitv; + short relsig; + short acqsig; + short frsig; }; -typedef void (*tls_done_func_t)(void *, int, key_serial_t); +struct consw; -struct tls_handshake_args { - struct socket *ta_sock; - tls_done_func_t ta_done; - void *ta_data; - const char *ta_peername; - unsigned int ta_timeout_ms; - key_serial_t ta_keyring; - key_serial_t ta_my_cert; - key_serial_t ta_my_privkey; - unsigned int ta_num_peerids; - key_serial_t ta_my_peerids[5]; +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; }; -struct irq_matrix; +enum con_scroll { + SM_UP = 0, + SM_DOWN = 1, +}; -typedef void (*btf_trace_irq_matrix_online)(void *, struct irq_matrix *); +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 cpumap; +typedef void fn_handler_fn(struct vc_data *); -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 kbd_led_trigger { + struct led_trigger trigger; + unsigned int mask; }; -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]; +struct getset_keycode_data { + struct input_keymap_entry ke; + int error; }; -typedef void (*btf_trace_irq_matrix_offline)(void *, struct irq_matrix *); +struct keyboard_notifier_param { + struct vc_data *vc; + int down; + int shift; + int ledstate; + unsigned int value; +}; -typedef void (*btf_trace_irq_matrix_reserve)(void *, struct irq_matrix *); +struct kbd_repeat { + int delay; + int period; +}; -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 *); +struct kbdiacr { + unsigned char diacr; + unsigned char base; + unsigned char result; +}; -typedef void (*btf_trace_irq_matrix_alloc_managed)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); +struct kbdiacrs { + unsigned int kb_cnt; + struct kbdiacr kbdiacr[256]; +}; -typedef void (*btf_trace_irq_matrix_assign)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); +struct kbdiacruc { + unsigned int diacr; + unsigned int base; + unsigned int result; +}; -typedef void (*btf_trace_irq_matrix_alloc)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); +struct kbdiacrsuc { + unsigned int kb_cnt; + struct kbdiacruc kbdiacruc[256]; +}; -typedef void (*btf_trace_irq_matrix_free)(void *, int, unsigned int, struct irq_matrix *, struct cpumap *); +struct kbkeycode { + unsigned int scancode; + unsigned int keycode; +}; -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 kbentry { + unsigned char kb_table; + unsigned char kb_index; + unsigned short kb_value; }; -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 kbsentry { + unsigned char kb_func; + unsigned char kb_string[512]; }; -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]; +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 trace_event_data_offsets_irq_matrix_global {}; +struct amd_iommu_pci_seg; -struct trace_event_data_offsets_irq_matrix_global_update {}; +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; + 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; + unsigned char evt_irq_name[16]; + u8 *ppr_log; + unsigned char ppr_irq_name[16]; + u8 *ga_log; + unsigned char ga_irq_name[16]; + u8 *ga_log_tail; + bool int_enabled; + bool need_sync; + bool irtcachedis_enabled; + 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; + atomic64_t cmd_sem_val; +}; -struct trace_event_data_offsets_irq_matrix_cpu {}; +struct dev_table_entry; -struct rt_waiter_node { - struct rb_node entry; - int prio; - u64 deadline; -}; +struct irq_remap_table; -struct rt_mutex_waiter { - struct rt_waiter_node tree; - struct rt_waiter_node pi_tree; - struct task_struct *task; - struct rt_mutex_base *lock; - unsigned int wake_state; - struct ww_acquire_ctx *ww_ctx; +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; }; -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 dev_table_entry { + u64 data[4]; }; -enum freezer_state_flags { - CGROUP_FREEZER_ONLINE = 1, - CGROUP_FREEZING_SELF = 2, - CGROUP_FREEZING_PARENT = 4, - CGROUP_FROZEN = 8, - CGROUP_FREEZING = 6, +struct irq_remap_table { + raw_spinlock_t lock; + unsigned int min_index; + u32 *table; }; -struct freezer { - struct cgroup_subsys_state css; - unsigned int state; +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 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 devid_map { + struct list_head list; + u8 id; + u32 devid; + bool cmd_line; }; -struct trace_bprintk_fmt { +struct acpihid_map_entry { struct list_head list; - const char *fmt; + u8 uid[256]; + u8 hid[9]; + u32 devid; + u32 root_devid; + bool cmd_line; + struct iommu_group *group; }; -struct rethook; +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, +}; -struct fprobe { - struct ftrace_ops ops; - unsigned long nmissed; - unsigned int flags; - struct rethook *rethook; - size_t entry_data_size; - int nr_maxactive; - int (*entry_handler)(struct fprobe *, unsigned long, unsigned long, struct pt_regs *, void *); - void (*exit_handler)(struct fprobe *, unsigned long, unsigned long, struct pt_regs *, void *); +enum { + IRQ_REMAP_XAPIC_MODE = 0, + IRQ_REMAP_X2APIC_MODE = 1, }; -struct rethook_node; +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; +}; -typedef void (*rethook_handler_t)(struct rethook_node *, void *, unsigned long, struct pt_regs *); +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 freelist_node; +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; +}; -struct freelist_head { - struct freelist_node *head; +struct unity_map_entry { + struct list_head list; + u16 devid_start; + u16 devid_end; + u64 address_start; + u64 address_end; + int prot; }; -struct rethook { - void *data; - rethook_handler_t handler; - struct freelist_head pool; - refcount_t ref; - struct callback_head rcu; +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 freelist_node { - atomic_t refs; - struct freelist_node *next; +struct drm_conn_prop_enum_list { + int type; + const char *name; + struct ida ida; }; -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; +struct drm_prop_enum_list { + int type; + const char *name; }; -struct fprobe_rethook_node { - struct rethook_node node; - unsigned long entry_ip; - unsigned long entry_parent_ip; - char data[0]; +enum xa_lock_type { + XA_LOCK_IRQ = 1, + XA_LOCK_BH = 2, }; -struct bpf_prog_offload_ops; +struct drm_panel_funcs; -struct bpf_offload_dev { - const struct bpf_prog_offload_ops *ops; - struct list_head netdevs; - void *priv; +struct drm_panel { + struct device *dev; + struct backlight_device *backlight; + const struct drm_panel_funcs *funcs; + int connector_type; + struct list_head list; + struct list_head followers; + struct mutex follower_lock; + bool prepare_prev_first; + bool prepared; + bool enabled; }; -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 *); -}; +struct display_timing; -enum { - XDP_METADATA_KFUNC_RX_TIMESTAMP = 0, - XDP_METADATA_KFUNC_RX_HASH = 1, - MAX_XDP_METADATA_KFUNC = 2, +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 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; +struct drm_mode_obj_set_property { + __u64 value; + __u32 prop_id; + __u32 obj_id; + __u32 obj_type; }; -struct ns_get_path_bpf_prog_args { - struct bpf_prog *prog; - struct bpf_prog_info *info; +struct drm_mode_connector_set_property { + __u64 value; + __u32 prop_id; + __u32 connector_id; }; -struct ns_get_path_bpf_map_args { - struct bpf_offloaded_map *offmap; - struct bpf_map_info *info; +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; }; -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 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 follow_page_context { - struct dev_pagemap *pgmap; - unsigned int page_mask; +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 migration_target_control { - int nid; - nodemask_t *nmask; - gfp_t gfp_mask; +struct drm_mode_rect { + __s32 x1; + __s32 y1; + __s32 x2; + __s32 y2; }; -typedef struct folio *new_folio_t(struct folio *, unsigned long); - -typedef void free_folio_t(struct folio *, unsigned long); - -struct char_device_struct { - struct char_device_struct *next; - unsigned int major; - unsigned int baseminor; - int minorct; - char name[64]; - struct cdev *cdev; +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; }; -typedef struct kobject *kobj_probe_t(dev_t, int *, void *); - -struct prepend_buffer { - char *buf; - int len; +struct ttm_global { + struct page *dummy_read_page; + struct list_head device_list; + atomic_t bo_count; }; -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 ttm_resource_cursor { + unsigned int priority; }; -struct core_vma_metadata { - unsigned long start; - unsigned long end; - unsigned long flags; - unsigned long dump_size; - unsigned long pgoff; - struct file *file; +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 memelfnote { - const char *name; - int type; - unsigned int datasz; - void *data; +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; }; -struct elf_thread_core_info; - -struct elf_note_info { - struct elf_thread_core_info *thread; - struct memelfnote psinfo; - struct memelfnote signote; - struct memelfnote auxv; - struct memelfnote files; - siginfo_t csigdata; - size_t size; - int thread_notes; +enum intel_gt_sysfs_op { + INTEL_GT_SYSFS_MIN = 0, + INTEL_GT_SYSFS_MAX = 1, }; -struct elf_thread_core_info { - struct elf_thread_core_info *next; - struct task_struct *task; - struct elf_prstatus prstatus; - struct memelfnote notes[0]; +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, }; -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]; +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 arch_elf_state {}; - -typedef __kernel_mode_t mode_t; - -struct orlov_stats { - __u64 free_clusters; - __u32 free_inodes; - __u32 used_dirs; +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, }; -typedef unsigned long long llu; +struct drm_i915_gem_exec_object2; -struct fat_fid { - u32 i_gen; - u32 i_pos_low; - u16 i_pos_hi; - u16 parent_i_pos_hi; - u32 parent_i_pos_low; - u32 parent_i_gen; +struct 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; }; -typedef void (*btf_trace_nfs_set_inode_stale)(void *, const struct inode *); +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; +}; -typedef void (*btf_trace_nfs_refresh_inode_enter)(void *, const struct inode *); +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; +}; -typedef void (*btf_trace_nfs_refresh_inode_exit)(void *, const struct inode *, int); +struct drm_i915_gem_execbuffer2; -typedef void (*btf_trace_nfs_revalidate_inode_enter)(void *, const struct inode *); +struct intel_gt_buffer_pool_node; -typedef void (*btf_trace_nfs_revalidate_inode_exit)(void *, const struct inode *, int); +struct eb_fence; -typedef void (*btf_trace_nfs_invalidate_mapping_enter)(void *, const struct inode *); +struct i915_execbuffer { + struct drm_i915_private *i915; + struct drm_file *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]; +}; -typedef void (*btf_trace_nfs_invalidate_mapping_exit)(void *, const struct inode *, int); +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; +}; -typedef void (*btf_trace_nfs_getattr_enter)(void *, const struct inode *); +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; +}; -typedef void (*btf_trace_nfs_getattr_exit)(void *, const struct inode *, int); +struct dma_fence_chain; -typedef void (*btf_trace_nfs_setattr_enter)(void *, const struct inode *); +struct eb_fence { + struct drm_syncobj *syncobj; + struct dma_fence *dma_fence; + u64 value; + struct dma_fence_chain *chain_fence; +}; -typedef void (*btf_trace_nfs_setattr_exit)(void *, const struct inode *, int); +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; +}; -typedef void (*btf_trace_nfs_writeback_inode_enter)(void *, const struct inode *); +struct drm_i915_gem_relocation_entry { + __u32 target_handle; + __u32 delta; + __u64 offset; + __u64 presumed_offset; + __u32 read_domains; + __u32 write_domain; +}; -typedef void (*btf_trace_nfs_writeback_inode_exit)(void *, const struct inode *, int); +struct drm_i915_gem_exec_fence { + __u32 handle; + __u32 flags; +}; -typedef void (*btf_trace_nfs_fsync_enter)(void *, const struct inode *); +struct drm_i915_gem_execbuffer_ext_timeline_fences { + struct i915_user_extension base; + __u64 fence_count; + __u64 handles_ptr; + __u64 values_ptr; +}; -typedef void (*btf_trace_nfs_fsync_exit)(void *, const struct inode *, int); +struct dma_fence_work; -typedef void (*btf_trace_nfs_access_enter)(void *, const struct inode *); +struct dma_fence_work_ops { + const char *name; + void (*work)(struct dma_fence_work *); + void (*release)(struct dma_fence_work *); +}; -typedef void (*btf_trace_nfs_set_cache_invalid)(void *, const struct inode *, int); +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; +}; -typedef void (*btf_trace_nfs_readdir_force_readdirplus)(void *, const struct inode *); +enum { + DMA_FENCE_WORK_IMM = 3, +}; -typedef void (*btf_trace_nfs_readdir_cache_fill_done)(void *, const struct inode *, int); +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; + unsigned int pat_index; + unsigned int flags; +}; -typedef void (*btf_trace_nfs_readdir_uncached_done)(void *, const struct inode *, int); +enum pxp_status { + PXP_STATUS_SUCCESS = 0, + PXP_STATUS_ERROR_API_VERSION = 4098, + PXP_STATUS_NOT_READY = 4110, + PXP_STATUS_PLATFCONFIG_KF1_NOVERIF = 4122, + PXP_STATUS_PLATFCONFIG_KF1_BAD = 4127, + PXP_STATUS_OP_NOT_PERMITTED = 16403, +}; -typedef void (*btf_trace_nfs_access_exit)(void *, const struct inode *, unsigned int, unsigned int, int); +struct intel_gsc_mtl_header { + u32 validity_marker; + u8 heci_client_id; + u8 reserved1; + u16 header_version; + u64 host_session_handle; + u64 gsc_message_handle; + u32 message_size; + u32 flags; + u32 status; +} __attribute__((packed)); -typedef void (*btf_trace_nfs_size_truncate)(void *, const struct inode *, loff_t); +struct intel_gsc_cpd_entry { + u8 name[12]; + u32 offset; + u32 length; + u8 reserved[4]; +}; -typedef void (*btf_trace_nfs_size_wcc)(void *, const struct inode *, loff_t); +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; +}; -typedef void (*btf_trace_nfs_size_update)(void *, const struct inode *, loff_t); +struct pxp_cmd_header { + u32 api_version; + u32 command_id; + union { + u32 status; + u32 stream_id; + }; + u32 buffer_len; +}; -typedef void (*btf_trace_nfs_size_grow)(void *, const struct inode *, loff_t); +struct pxp43_new_huc_auth_in { + struct pxp_cmd_header header; + u64 huc_base_address; + u32 huc_size; +} __attribute__((packed)); -typedef void (*btf_trace_nfs_readdir_invalidate_cache_range)(void *, const struct inode *, loff_t, loff_t); +struct mtl_huc_auth_msg_in { + struct intel_gsc_mtl_header header; + struct pxp43_new_huc_auth_in huc_in; +}; -typedef void (*btf_trace_nfs_readdir_cache_fill)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); +struct pxp43_huc_auth_out { + struct pxp_cmd_header header; +}; -typedef void (*btf_trace_nfs_readdir_uncached)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); +struct mtl_huc_auth_msg_out { + struct intel_gsc_mtl_header header; + struct pxp43_huc_auth_out huc_out; +}; -typedef void (*btf_trace_nfs_lookup_enter)(void *, const struct inode *, const struct dentry *, unsigned int); +struct intel_gsc_cpd_header_v2 { + u32 header_marker; + u32 num_of_entries; + u8 header_version; + u8 entry_version; + u8 header_length; + u8 flags; + u32 partition_name; + u32 crc32; +}; -typedef void (*btf_trace_nfs_lookup_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); +enum intel_fbc_id { + INTEL_FBC_A = 0, + INTEL_FBC_B = 1, + INTEL_FBC_C = 2, + INTEL_FBC_D = 3, + I915_MAX_FBCS = 4, +}; -typedef void (*btf_trace_nfs_lookup_revalidate_enter)(void *, const struct inode *, const struct dentry *, unsigned int); +struct intel_hdmi_lpe_audio_port_pdata { + u8 eld[128]; + int port; + int pipe; + int ls_clock; + bool dp_output; +}; -typedef void (*btf_trace_nfs_lookup_revalidate_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); +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; +}; -typedef void (*btf_trace_nfs_readdir_lookup)(void *, const struct inode *, const struct dentry *, unsigned int); +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, +}; -typedef void (*btf_trace_nfs_readdir_lookup_revalidate_failed)(void *, const struct inode *, const struct dentry *, unsigned int); +struct drm_i915_error_state_buf { + struct drm_i915_private *i915; + struct scatterlist *sgl; + struct scatterlist *cur; + struct scatterlist *end; + char *buf; + size_t bytes; + size_t size; + loff_t iter; + int err; +}; -typedef void (*btf_trace_nfs_readdir_lookup_revalidate)(void *, const struct inode *, const struct dentry *, unsigned int, int); +struct intel_engine_capture_vma { + struct intel_engine_capture_vma *next; + struct i915_vma_resource *vma_res; + char name[16]; + bool lockdep_cookie; +}; -typedef void (*btf_trace_nfs_atomic_open_enter)(void *, const struct inode *, const struct nfs_open_context *, unsigned int); +struct i915_vma_compress { + struct folio_batch pool; + struct z_stream_s zstream; + void *tmp; +}; -typedef void (*btf_trace_nfs_atomic_open_exit)(void *, const struct inode *, const struct nfs_open_context *, unsigned int, int); +struct internal_state { + int dummy; +}; -typedef void (*btf_trace_nfs_create_enter)(void *, const struct inode *, const struct dentry *, unsigned int); +struct wake_irq { + struct device *dev; + unsigned int status; + int irq; + const char *name; +}; -typedef void (*btf_trace_nfs_create_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); +struct platform_object { + struct platform_device pdev; + char name[0]; +}; -typedef void (*btf_trace_nfs_mknod_enter)(void *, const struct inode *, const struct dentry *); +struct irq_affinity_devres { + unsigned int count; + unsigned int irq[0]; +}; -typedef void (*btf_trace_nfs_mknod_exit)(void *, const struct inode *, const struct dentry *, int); +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; +}; -typedef void (*btf_trace_nfs_mkdir_enter)(void *, const struct inode *, const struct dentry *); +enum fw_status { + FW_STATUS_UNKNOWN = 0, + FW_STATUS_LOADING = 1, + FW_STATUS_DONE = 2, + FW_STATUS_ABORTED = 3, +}; -typedef void (*btf_trace_nfs_mkdir_exit)(void *, const struct inode *, const struct dentry *, int); +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, +}; -typedef void (*btf_trace_nfs_rmdir_enter)(void *, const struct inode *, const struct dentry *); +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, +}; -typedef void (*btf_trace_nfs_rmdir_exit)(void *, const struct inode *, const struct dentry *, int); +struct fw_state { + struct completion completion; + enum fw_status status; +}; -typedef void (*btf_trace_nfs_remove_enter)(void *, const struct inode *, const struct dentry *); +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; +}; -typedef void (*btf_trace_nfs_remove_exit)(void *, const struct inode *, const struct dentry *, int); +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; +}; -typedef void (*btf_trace_nfs_unlink_enter)(void *, const struct inode *, const struct dentry *); +struct fw_cache_entry { + struct list_head list; + const char *name; +}; -typedef void (*btf_trace_nfs_unlink_exit)(void *, const struct inode *, const struct dentry *, int); +struct fw_name_devm { + unsigned long magic; + const char *name; +}; -typedef void (*btf_trace_nfs_symlink_enter)(void *, const struct inode *, const struct dentry *); +enum scsi_pr_type { + SCSI_PR_WRITE_EXCLUSIVE = 1, + SCSI_PR_EXCLUSIVE_ACCESS = 3, + SCSI_PR_WRITE_EXCLUSIVE_REG_ONLY = 5, + SCSI_PR_EXCLUSIVE_ACCESS_REG_ONLY = 6, + SCSI_PR_WRITE_EXCLUSIVE_ALL_REGS = 7, + SCSI_PR_EXCLUSIVE_ACCESS_ALL_REGS = 8, +}; -typedef void (*btf_trace_nfs_symlink_exit)(void *, const struct inode *, const struct dentry *, int); +struct scsi_lun { + __u8 scsi_lun[8]; +}; -typedef void (*btf_trace_nfs_link_enter)(void *, const struct inode *, const struct inode *, const struct dentry *); +struct pr_keys { + u32 generation; + u32 num_keys; + u64 keys[0]; +}; -typedef void (*btf_trace_nfs_link_exit)(void *, const struct inode *, const struct inode *, const struct dentry *, int); +struct pr_held_reservation { + u64 key; + u32 generation; + enum pr_type type; +}; -typedef void (*btf_trace_nfs_rename_enter)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *); +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, +}; -typedef void (*btf_trace_nfs_rename_exit)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); +enum { + SD_DEF_XFER_BLOCKS = 65535, + SD_MAX_XFER_BLOCKS = 4294967295, + SD_MAX_WS10_BLOCKS = 65535, + SD_MAX_WS16_BLOCKS = 8388607, +}; -typedef void (*btf_trace_nfs_sillyrename_rename)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); +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, +}; -typedef void (*btf_trace_nfs_sillyrename_unlink)(void *, const struct nfs_unlinkdata *, int); +enum t10_dif_type { + T10_PI_TYPE0_PROTECTION = 0, + T10_PI_TYPE1_PROTECTION = 1, + T10_PI_TYPE2_PROTECTION = 2, + T10_PI_TYPE3_PROTECTION = 3, +}; -typedef void (*btf_trace_nfs_aop_readpage)(void *, const struct inode *, struct folio *); +enum { + SD_ZERO_WRITE = 0, + SD_ZERO_WS = 1, + SD_ZERO_WS16_UNMAP = 2, + SD_ZERO_WS10_UNMAP = 3, +}; -typedef void (*btf_trace_nfs_aop_readpage_done)(void *, const struct inode *, struct folio *, int); +enum { + BLK_MQ_REQ_NOWAIT = 1, + BLK_MQ_REQ_RESERVED = 2, + BLK_MQ_REQ_PM = 4, +}; -typedef void (*btf_trace_nfs_writeback_folio)(void *, const struct inode *, struct folio *); +enum bip_flags { + BIP_BLOCK_INTEGRITY = 1, + BIP_MAPPED_INTEGRITY = 2, + BIP_CTRL_NOCHECK = 4, + BIP_DISK_NOCHECK = 8, + BIP_IP_CHECKSUM = 16, +}; -typedef void (*btf_trace_nfs_writeback_folio_done)(void *, const struct inode *, struct folio *, int); +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, +}; -typedef void (*btf_trace_nfs_invalidate_folio)(void *, const struct inode *, struct folio *); +enum { + SD_EXT_CDB_SIZE = 32, + SD_MEMPOOL_SIZE = 2, +}; -typedef void (*btf_trace_nfs_launder_folio_done)(void *, const struct inode *, struct folio *, int); +struct opal_dev; -typedef void (*btf_trace_nfs_aop_readahead)(void *, const struct inode *, loff_t, unsigned int); +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; + bool suspended; + unsigned int ATO: 1; + unsigned int cache_override: 1; + unsigned int WCE: 1; + unsigned int RCD: 1; + unsigned int DPOFUA: 1; + unsigned int first_scan: 1; + unsigned int lbpme: 1; + unsigned int lbprz: 1; + unsigned int lbpu: 1; + unsigned int lbpws: 1; + unsigned int lbpws10: 1; + unsigned int lbpvpd: 1; + unsigned int ws10: 1; + unsigned int ws16: 1; + unsigned int rc_basis: 2; + unsigned int zoned: 2; + unsigned int urswrz: 1; + unsigned int security: 1; + unsigned int ignore_medium_access_errors: 1; +}; -typedef void (*btf_trace_nfs_aop_readahead_done)(void *, const struct inode *, unsigned int, int); +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, +}; -typedef void (*btf_trace_nfs_initiate_read)(void *, const struct nfs_pgio_header *); +struct e1000_host_mng_command_header { + u8 command_id; + u8 checksum; + u16 reserved1; + u16 reserved2; + u16 command_length; +}; -typedef void (*btf_trace_nfs_readpage_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); +struct cis_cache_entry { + struct list_head node; + unsigned int addr; + unsigned int len; + unsigned int attr; + unsigned char cache[0]; +}; -typedef void (*btf_trace_nfs_readpage_short)(void *, const struct rpc_task *, const struct nfs_pgio_header *); +struct tuple_flags { + u_int link_space: 4; + u_int has_link: 1; + u_int mfc_fn: 3; + u_int space: 4; +}; -typedef void (*btf_trace_nfs_pgio_error)(void *, const struct nfs_pgio_header *, int, loff_t); +typedef unsigned long u_long; -typedef void (*btf_trace_nfs_initiate_write)(void *, const struct nfs_pgio_header *); +typedef unsigned char cisdata_t; -typedef void (*btf_trace_nfs_writeback_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); +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 void (*btf_trace_nfs_write_error)(void *, const struct inode *, const struct nfs_page *, int); +typedef struct tuple_t tuple_t; -typedef void (*btf_trace_nfs_comp_error)(void *, const struct inode *, const struct nfs_page *, int); +struct cistpl_funcid_t { + u_char func; + u_char sysinit; +}; -typedef void (*btf_trace_nfs_commit_error)(void *, const struct inode *, const struct nfs_page *, int); +typedef struct cistpl_funcid_t cistpl_funcid_t; -typedef void (*btf_trace_nfs_initiate_commit)(void *, const struct nfs_commit_data *); +struct cistpl_checksum_t { + u_short addr; + u_short len; + u_char sum; +}; -typedef void (*btf_trace_nfs_commit_done)(void *, const struct rpc_task *, const struct nfs_commit_data *); +typedef struct cistpl_checksum_t cistpl_checksum_t; -typedef void (*btf_trace_nfs_direct_commit_complete)(void *, const struct nfs_direct_req *); +struct cistpl_format_t { + u_char type; + u_char edc; + u_int offset; + u_int length; +}; -typedef void (*btf_trace_nfs_direct_resched_write)(void *, const struct nfs_direct_req *); +typedef struct cistpl_format_t cistpl_format_t; -typedef void (*btf_trace_nfs_direct_write_complete)(void *, const struct nfs_direct_req *); +struct cistpl_vers_1_t { + u_char major; + u_char minor; + u_char ns; + u_char ofs[4]; + char str[254]; +}; -typedef void (*btf_trace_nfs_direct_write_completion)(void *, const struct nfs_direct_req *); +typedef struct cistpl_vers_1_t cistpl_vers_1_t; -typedef void (*btf_trace_nfs_direct_write_schedule_iovec)(void *, const struct nfs_direct_req *); +struct cistpl_power_t { + u_char present; + u_char flags; + u_int param[7]; +}; -typedef void (*btf_trace_nfs_direct_write_reschedule_io)(void *, const struct nfs_direct_req *); +typedef struct cistpl_power_t cistpl_power_t; -typedef void (*btf_trace_nfs_fh_to_dentry)(void *, const struct super_block *, const struct nfs_fh *, u64, int); +struct cistpl_timing_t { + u_int wait; + u_int waitscale; + u_int ready; + u_int rdyscale; + u_int reserved; + u_int rsvscale; +}; -typedef void (*btf_trace_nfs_mount_assign)(void *, const char *, const char *); +typedef struct cistpl_timing_t cistpl_timing_t; -typedef void (*btf_trace_nfs_mount_option)(void *, const struct fs_parameter *); +struct cistpl_io_t { + u_char flags; + u_char nwin; + struct { + u_int base; + u_int len; + } win[16]; +}; -typedef void (*btf_trace_nfs_mount_path)(void *, const char *); +typedef struct cistpl_io_t cistpl_io_t; -typedef void (*btf_trace_nfs_xdr_status)(void *, const struct xdr_stream *, int); +struct cistpl_irq_t { + u_int IRQInfo1; + u_int IRQInfo2; +}; -typedef void (*btf_trace_nfs_xdr_bad_filehandle)(void *, const struct xdr_stream *, int); +typedef struct cistpl_irq_t cistpl_irq_t; -struct trace_event_raw_nfs_inode_event { - struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - u64 version; - char __data[0]; +struct cistpl_mem_t { + u_char flags; + u_char nwin; + struct { + u_int len; + u_int card_addr; + u_int host_addr; + } win[8]; }; -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]; -}; +typedef struct cistpl_mem_t cistpl_mem_t; -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 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; }; -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]; -}; +typedef struct cistpl_cftable_entry_t cistpl_cftable_entry_t; -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 cistpl_longlink_t { + u_int addr; }; -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]; -}; +typedef struct cistpl_longlink_t cistpl_longlink_t; -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 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]; }; -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]; -}; +typedef struct cistpl_vers_2_t cistpl_vers_2_t; -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 cistpl_jedec_t { + u_char nid; + struct { + u_char mfr; + u_char info; + } id[4]; }; -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]; -}; +typedef struct cistpl_jedec_t cistpl_jedec_t; -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 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]; }; -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]; +typedef struct cistpl_device_geo_t cistpl_device_geo_t; + +struct cistpl_device_t { + u_char ndev; + struct { + u_char type; + u_char wp; + u_int speed; + u_int size; + } dev[4]; }; -struct trace_event_raw_nfs_directory_event { - struct trace_entry ent; - dev_t dev; - u64 dir; - u32 __data_loc_name; - char __data[0]; +typedef struct cistpl_device_t cistpl_device_t; + +struct cistpl_altstr_t { + u_char ns; + u_char ofs[4]; + char str[254]; }; -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]; +typedef struct cistpl_altstr_t cistpl_altstr_t; + +struct cistpl_manfid_t { + u_short manf; + u_short card; }; -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]; +typedef struct cistpl_manfid_t cistpl_manfid_t; + +struct cistpl_longlink_mfc_t { + u_char nfn; + struct { + u_char space; + u_int addr; + } fn[8]; }; -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]; +typedef struct cistpl_longlink_mfc_t cistpl_longlink_mfc_t; + +struct cistpl_org_t { + u_char data_org; + char desc[30]; }; -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]; +typedef struct cistpl_org_t cistpl_org_t; + +struct cistpl_config_t { + u_char last_idx; + u_int base; + u_int rmask[4]; + u_char subtuples; }; -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]; +typedef struct cistpl_config_t cistpl_config_t; + +struct cistpl_funce_t { + u_char type; + u_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]; +typedef struct cistpl_funce_t cistpl_funce_t; + +struct cistpl_bar_t { + u_char attr; + u_int size; }; -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]; +typedef struct cistpl_bar_t cistpl_bar_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; }; -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]; +typedef struct cistpl_cftable_entry_cb_t cistpl_cftable_entry_cb_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; }; -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]; +typedef union cisparse_t cisparse_t; + +struct ep_device { + struct usb_endpoint_descriptor *desc; + struct usb_device *udev; + struct device dev; }; -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]; +enum xhci_overhead_type { + LS_OVERHEAD_TYPE = 0, + FS_OVERHEAD_TYPE = 1, + HS_OVERHEAD_TYPE = 2, }; -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]; +enum xhci_cancelled_td_status { + TD_DIRTY = 0, + TD_HALTED = 1, + TD_CLEARING_CACHE = 2, + TD_CLEARED = 3, }; -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]; +enum xhci_setup_dev { + SETUP_CONTEXT_ONLY = 0, + SETUP_CONTEXT_ADDRESS = 1, }; -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 usb_dynids { + spinlock_t lock; + struct list_head list; }; -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 usbdrv_wrap { + struct device_driver driver; + int for_devices; }; -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 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 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 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 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 xhci_input_control_ctx { + __le32 drop_flags; + __le32 add_flags; + __le32 rsvd2[6]; }; -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 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 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 urb_priv { + int num_tds; + int num_tds_done; + struct xhci_td td[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]; +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 trace_event_raw_nfs_fh_to_dentry { - struct trace_entry ent; - int error; - dev_t dev; - u32 fhandle; - u64 fileid; - char __data[0]; +struct trackpoint_attr_data { + size_t field_offset; + u8 command; + u8 mask; + bool inverted; + u8 power_on_default; }; -struct trace_event_raw_nfs_mount_assign { - struct trace_entry ent; - u32 __data_loc_option; - u32 __data_loc_value; - char __data[0]; +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 trace_event_raw_nfs_mount_option { +typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *); + +typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, unsigned long); + +typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type); + +struct trace_event_raw_thermal_temperature { struct trace_entry ent; - u32 __data_loc_option; + u32 __data_loc_thermal_zone; + int id; + int temp_prev; + int temp; char __data[0]; }; -struct trace_event_raw_nfs_mount_path { +struct trace_event_raw_cdev_update { struct trace_entry ent; - u32 __data_loc_path; + u32 __data_loc_type; + unsigned long target; char __data[0]; }; -struct trace_event_raw_nfs_xdr_event { +struct trace_event_raw_thermal_zone_trip { 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; + u32 __data_loc_thermal_zone; + int id; + int trip; + enum thermal_trip_type trip_type; char __data[0]; }; -struct trace_event_data_offsets_nfs_lookup_event { - u32 name; +struct trace_event_data_offsets_thermal_temperature { + u32 thermal_zone; }; -struct trace_event_data_offsets_nfs_lookup_event_done { - u32 name; +struct trace_event_data_offsets_cdev_update { + u32 type; }; -struct trace_event_data_offsets_nfs_atomic_open_enter { - u32 name; +struct trace_event_data_offsets_thermal_zone_trip { + u32 thermal_zone; }; -struct trace_event_data_offsets_nfs_atomic_open_exit { - u32 name; -}; +struct gov_attr_set; -struct trace_event_data_offsets_nfs_create_enter { - u32 name; +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); }; -struct trace_event_data_offsets_nfs_create_exit { - u32 name; +struct gov_attr_set { + struct kobject kobj; + struct list_head policy_list; + struct mutex update_lock; + int usage_count; }; -struct trace_event_data_offsets_nfs_directory_event { - u32 name; +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 trace_event_data_offsets_nfs_directory_event_done { - u32 name; +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 trace_event_data_offsets_nfs_link_enter { - u32 name; +struct pcm_format_data { + unsigned char width; + unsigned char phys; + signed char le; + signed char signd; + unsigned char silence[8]; }; -struct trace_event_data_offsets_nfs_link_exit { - u32 name; -}; +struct snd_seq_fifo; -struct trace_event_data_offsets_nfs_rename_event { - u32 old_name; - u32 new_name; +struct snd_seq_user_client { + struct file *file; + struct pid *owner; + struct snd_seq_fifo *fifo; + int fifo_pool_size; }; -struct trace_event_data_offsets_nfs_rename_event_done { - u32 old_name; - u32 new_name; +struct snd_seq_kernel_client { + struct snd_card *card; }; -struct trace_event_data_offsets_nfs_sillyrename_unlink { - u32 name; +typedef int snd_seq_client_type_t; + +typedef atomic_t snd_use_lock_t; + +struct snd_seq_client { + snd_seq_client_type_t type; + unsigned int accept_input: 1; + unsigned int accept_output: 1; + unsigned int midi_version; + unsigned int user_pversion; + char name[64]; + int number; + unsigned int filter; + unsigned long event_filter[4]; + unsigned short group_filter; + 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; + int ump_endpoint_port; + struct snd_seq_pool *pool; + union { + struct snd_seq_user_client user; + struct snd_seq_kernel_client kernel; + } data; + void **ump_info; }; -struct trace_event_data_offsets_nfs_mount_assign { - u32 option; - u32 value; +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 trace_event_data_offsets_nfs_mount_option { - u32 option; +struct snd_seq_dummy_port { + int client; + int port; + int duplex; + int connect; }; -struct trace_event_data_offsets_nfs_mount_path { - u32 path; +struct component_master_ops { + int (*bind)(struct device *); + void (*unbind)(struct device *); }; -struct trace_event_data_offsets_nfs_xdr_event { - u32 program; - u32 procedure; +struct net_device_devres { + struct net_device *ndev; }; -struct trace_event_data_offsets_nfs_inode_event {}; - -struct trace_event_data_offsets_nfs_inode_event_done {}; +struct neigh_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table neigh_vars[22]; +}; -struct trace_event_data_offsets_nfs_access_exit {}; +enum { + NEIGH_VAR_MCAST_PROBES = 0, + NEIGH_VAR_UCAST_PROBES = 1, + NEIGH_VAR_APP_PROBES = 2, + NEIGH_VAR_MCAST_REPROBES = 3, + NEIGH_VAR_RETRANS_TIME = 4, + NEIGH_VAR_BASE_REACHABLE_TIME = 5, + NEIGH_VAR_DELAY_PROBE_TIME = 6, + NEIGH_VAR_INTERVAL_PROBE_TIME_MS = 7, + NEIGH_VAR_GC_STALETIME = 8, + NEIGH_VAR_QUEUE_LEN_BYTES = 9, + NEIGH_VAR_PROXY_QLEN = 10, + NEIGH_VAR_ANYCAST_DELAY = 11, + NEIGH_VAR_PROXY_DELAY = 12, + NEIGH_VAR_LOCKTIME = 13, + NEIGH_VAR_QUEUE_LEN = 14, + NEIGH_VAR_RETRANS_TIME_MS = 15, + NEIGH_VAR_BASE_REACHABLE_TIME_MS = 16, + NEIGH_VAR_GC_INTERVAL = 17, + NEIGH_VAR_GC_THRESH1 = 18, + NEIGH_VAR_GC_THRESH2 = 19, + NEIGH_VAR_GC_THRESH3 = 20, + NEIGH_VAR_MAX = 21, +}; -struct trace_event_data_offsets_nfs_update_size_class {}; +enum { + NEIGH_ARP_TABLE = 0, + NEIGH_ND_TABLE = 1, + NEIGH_DN_TABLE = 2, + NEIGH_NR_TABLES = 3, + NEIGH_LINK_TABLE = 3, +}; -struct trace_event_data_offsets_nfs_inode_range_event {}; +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, +}; -struct trace_event_data_offsets_nfs_readdir_event {}; +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, +}; -struct trace_event_data_offsets_nfs_folio_event {}; +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 trace_event_data_offsets_nfs_folio_event_done {}; +struct neighbour_cb { + unsigned long sched_next; + unsigned int flags; +}; -struct trace_event_data_offsets_nfs_aop_readahead {}; +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 trace_event_data_offsets_nfs_aop_readahead_done {}; +struct neigh_dump_filter { + int master_idx; + int dev_idx; +}; -struct trace_event_data_offsets_nfs_initiate_read {}; +struct ndtmsg { + __u8 ndtm_family; + __u8 ndtm_pad1; + __u16 ndtm_pad2; +}; -struct trace_event_data_offsets_nfs_readpage_done {}; +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 trace_event_data_offsets_nfs_readpage_short {}; +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 trace_event_data_offsets_nfs_pgio_error {}; +struct nda_cacheinfo { + __u32 ndm_confirmed; + __u32 ndm_used; + __u32 ndm_updated; + __u32 ndm_refcnt; +}; -struct trace_event_data_offsets_nfs_initiate_write {}; +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, +}; -struct trace_event_data_offsets_nfs_writeback_done {}; +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 trace_event_data_offsets_nfs_page_error_class {}; +struct netdev_lag_upper_info { + enum netdev_lag_tx_type tx_type; + enum netdev_lag_hash hash_type; +}; -struct trace_event_data_offsets_nfs_initiate_commit {}; +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, +}; -struct trace_event_data_offsets_nfs_commit_done {}; +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, +}; -struct trace_event_data_offsets_nfs_direct_req_class {}; +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, +}; -struct trace_event_data_offsets_nfs_fh_to_dentry {}; +struct nf_queue_entry; -struct security_class_mapping { - const char *name; - const char *perms[33]; +struct nf_queue_handler { + int (*outfn)(struct nf_queue_entry *, unsigned int); + void (*nf_hook_drop)(struct net *); }; -struct selinux_audit_data; - -typedef void (*btf_trace_selinux_audited)(void *, struct selinux_audit_data *, char *, char *, const char *); +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 selinux_audit_data { - u32 ssid; - u32 tsid; - u16 tclass; - u32 requested; - u32 audited; - u32 denied; - int result; +struct ip_rt_info { + __be32 daddr; + __be32 saddr; + u_int8_t tos; + u_int32_t mark; }; -struct avc_cache_stats { - unsigned int lookups; - unsigned int misses; - unsigned int allocations; - unsigned int reclaims; - unsigned int frees; +struct ip6_rt_info { + struct in6_addr daddr; + struct in6_addr saddr; + u_int32_t mark; }; -struct avc_cache { - struct hlist_head slots[512]; - spinlock_t slots_lock[512]; - atomic_t lru_hint; - atomic_t active_nodes; - u32 latest_notif; +enum nf_nat_manip_type { + NF_NAT_MANIP_SRC = 0, + NF_NAT_MANIP_DST = 1, }; -struct selinux_avc { - unsigned int avc_cache_threshold; - struct avc_cache avc_cache; +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 avc_callback_node { - int (*callback)(u32); - u32 events; - struct avc_callback_node *next; +struct net_proto_family { + int family; + int (*create)(struct net *, struct socket *, int, int); + struct module *owner; }; -struct avc_xperms_node; +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 avc_entry { - u32 ssid; - u32 tsid; - u16 tclass; - struct av_decision avd; - struct avc_xperms_node *xp_node; +struct inet_protosw { + struct list_head list; + unsigned short type; + unsigned short protocol; + struct proto *prot; + const struct proto_ops *ops; + unsigned char flags; }; -struct avc_node { - struct avc_entry ae; - struct hlist_node list; - struct callback_head rhead; +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 avc_xperms_node { - struct extended_perms xp; - struct list_head xpd_head; +struct rps_sock_flow_table { + u32 mask; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + u32 ents[0]; }; -struct 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 socket_alloc { + struct socket socket; + struct inode vfs_inode; + long: 64; + long: 64; + long: 64; }; -struct avc_xperms_decision_node { - struct extended_perms_decision xpd; - struct list_head xpd_list; +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 trace_event_data_offsets_selinux_audited { - u32 scontext; - u32 tcontext; - u32 tclass; +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 lsm_network_audit; +struct pipe_buffer; -struct lsm_ioctlop_audit; +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 lsm_ibpkey_audit; +struct pipe_buf_operations; -struct lsm_ibendport_audit; +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 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 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 *); }; -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; +enum sock_shutdown_cmd { + SHUT_RD = 0, + SHUT_WR = 1, + SHUT_RDWR = 2, }; -struct lsm_ioctlop_audit { - struct path path; - u16 cmd; +struct unix_skb_parms { + struct pid *pid; + kuid_t uid; + kgid_t gid; + struct scm_fp_list *fp; + u32 secid; + u32 consumed; }; -struct lsm_ibpkey_audit { - u64 subnet_prefix; - u16 pkey; +struct bpf_iter__unix { + union { + struct bpf_iter_meta *meta; + }; + union { + struct unix_sock *unix_sk; + }; + uid_t uid; }; -struct lsm_ibendport_audit { - const char *dev_name; - u8 port; +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; }; -enum { - IOPRIO_WHO_PROCESS = 1, - IOPRIO_WHO_PGRP = 2, - IOPRIO_WHO_USER = 3, +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; }; -typedef void io_wq_work_fn(struct io_wq_work *); +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); +}; -typedef struct io_wq_work *free_work_fn(struct io_wq_work *); +struct ipv6_sr_hdr; -struct io_wq_data { - struct io_wq_hash *hash; - struct task_struct *task; - io_wq_work_fn *do_work; - free_work_fn *free_work; +struct seg6_bpf_srh_state { + struct ipv6_sr_hdr *srh; + u16 hdrlen; + bool valid; }; -struct io_tctx_node { - struct list_head ctx_node; - struct task_struct *task; - struct io_ring_ctx *ctx; +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 io_uring_rsrc_update { - __u32 offset; - __u32 resv; - __u64 data; +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; }; -typedef uint32_t U32; - -typedef struct { - U32 tableTime; - U32 decode256Time; -} algo_time_t; - -typedef uint8_t BYTE; - -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 uint16_t U16; +struct seg6_pernet_data { + struct mutex lock; + struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src; +}; -typedef struct { - U16 sequence; - BYTE nbBits; - BYTE length; -} HUF_DEltX2; +struct seg6_local_lwt; -typedef U32 rankValCol_t[13]; +struct seg6_local_lwtunnel_ops { + int (*build_state)(struct seg6_local_lwt *, const void *, struct netlink_ext_ack *); + void (*destroy_state)(struct seg6_local_lwt *); +}; -typedef struct { - BYTE symbol; -} sortedSymbol_t; +struct seg6_action_desc { + int action; + unsigned long attrs; + unsigned long optattrs; + int (*input)(struct sk_buff *, struct seg6_local_lwt *); + int static_headroom; + struct seg6_local_lwtunnel_ops slwt_ops; +}; -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; +struct bpf_lwt_prog { + struct bpf_prog *prog; + char *name; +}; -typedef uint64_t U64; +struct seg6_flavors_info { + __u32 flv_ops; + __u8 lcblock_bits; + __u8 lcnode_func_bits; +}; -typedef struct { - BYTE maxTableLog; - BYTE tableType; - BYTE tableLog; - BYTE reserved; -} DTableDesc; +struct pcpu_seg6_local_counters; -typedef U32 HUF_DTable; +struct seg6_local_lwt { + int action; + struct ipv6_sr_hdr *srh; + int table; + struct in_addr nh4; + struct in6_addr nh6; + int iif; + int oif; + struct bpf_lwt_prog bpf; + struct seg6_flavors_info flv_info; + struct pcpu_seg6_local_counters __attribute__((btf_type_tag("percpu"))) *pcpu_counters; + int headroom; + struct seg6_action_desc *desc; + unsigned long parsed_optattrs; +}; -typedef struct { - size_t bitContainer; - unsigned int bitsConsumed; - const char *ptr; - const char *start; - const char *limitPtr; -} BIT_DStream_t; +struct pcpu_seg6_local_counters { + u64_stats_t packets; + u64_stats_t bytes; + u64_stats_t errors; + struct u64_stats_sync syncp; +}; -typedef enum { - BIT_DStream_unfinished = 0, - BIT_DStream_endOfBuffer = 1, - BIT_DStream_completed = 2, - BIT_DStream_overflow = 3, -} BIT_DStream_status; +struct seg6_action_param { + int (*parse)(struct nlattr **, struct seg6_local_lwt *, struct netlink_ext_ack *); + int (*put)(struct sk_buff *, struct seg6_local_lwt *); + int (*cmp)(struct seg6_local_lwt *, struct seg6_local_lwt *); + void (*destroy)(struct seg6_local_lwt *); +}; -struct nvs_region { - __u64 phys_start; - __u64 size; - struct list_head node; +enum { + SEG6_LOCAL_UNSPEC = 0, + SEG6_LOCAL_ACTION = 1, + SEG6_LOCAL_SRH = 2, + SEG6_LOCAL_TABLE = 3, + SEG6_LOCAL_NH4 = 4, + SEG6_LOCAL_NH6 = 5, + SEG6_LOCAL_IIF = 6, + SEG6_LOCAL_OIF = 7, + SEG6_LOCAL_BPF = 8, + SEG6_LOCAL_VRFTABLE = 9, + SEG6_LOCAL_COUNTERS = 10, + SEG6_LOCAL_FLAVORS = 11, + __SEG6_LOCAL_MAX = 12, }; -struct nvs_page { - unsigned long phys_start; - unsigned int size; - void *kaddr; - void *data; - bool unmap; - struct list_head node; +enum { + IP6_FH_F_FRAG = 1, + IP6_FH_F_AUTH = 2, + IP6_FH_F_SKIP_RH = 4, }; -struct acpi_bit_register_info { - u8 parent_register; - u8 bit_position; - u16 access_bit_mask; +enum { + SEG6_LOCAL_FLV_OP_UNSPEC = 0, + SEG6_LOCAL_FLV_OP_PSP = 1, + SEG6_LOCAL_FLV_OP_USP = 2, + SEG6_LOCAL_FLV_OP_USD = 3, + SEG6_LOCAL_FLV_OP_NEXT_CSID = 4, + __SEG6_LOCAL_FLV_OP_MAX = 5, }; -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; +enum seg6_local_flv_action { + SEG6_LOCAL_FLV_ACT_UNSPEC = 0, + SEG6_LOCAL_FLV_ACT_END = 1, + SEG6_LOCAL_FLV_ACT_PSP = 2, + SEG6_LOCAL_FLV_ACT_USP = 3, + SEG6_LOCAL_FLV_ACT_USD = 4, + __SEG6_LOCAL_FLV_ACT_MAX = 5, }; -struct resource_win { - struct resource res; - resource_size_t offset; +enum seg6_local_pktinfo { + SEG6_LOCAL_PKTINFO_NOHDR = 0, + SEG6_LOCAL_PKTINFO_SL_ZERO = 1, + SEG6_LOCAL_PKTINFO_SL_ONE = 2, + SEG6_LOCAL_PKTINFO_SL_MORE = 3, + __SEG6_LOCAL_PKTINFO_MAX = 4, }; -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; +enum bpf_ret_code { + BPF_OK = 0, + BPF_DROP = 2, + BPF_REDIRECT = 7, + BPF_LWT_REROUTE = 128, + BPF_FLOW_DISSECTOR_CONTINUE = 129, }; -struct hpets; +enum { + SEG6_LOCAL_BPF_PROG_UNSPEC = 0, + SEG6_LOCAL_BPF_PROG = 1, + SEG6_LOCAL_BPF_PROG_NAME = 2, + __SEG6_LOCAL_BPF_PROG_MAX = 3, +}; -struct hpet; +enum seg6_end_dt_mode { + DT_INVALID_MODE = -22, + DT_LEGACY_MODE = 0, + DT_VRF_MODE = 1, +}; -struct hpet_timer; +enum { + SEG6_LOCAL_CNT_UNSPEC = 0, + SEG6_LOCAL_CNT_PAD = 1, + SEG6_LOCAL_CNT_PACKETS = 2, + SEG6_LOCAL_CNT_BYTES = 3, + SEG6_LOCAL_CNT_ERRORS = 4, + __SEG6_LOCAL_CNT_MAX = 5, +}; -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]; +enum { + SEG6_LOCAL_FLV_UNSPEC = 0, + SEG6_LOCAL_FLV_OPERATION = 1, + SEG6_LOCAL_FLV_LCBLOCK_BITS = 2, + SEG6_LOCAL_FLV_LCNODE_FN_BITS = 3, + __SEG6_LOCAL_FLV_MAX = 4, }; -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]; +enum { + SEG6_LOCAL_ACTION_UNSPEC = 0, + SEG6_LOCAL_ACTION_END = 1, + SEG6_LOCAL_ACTION_END_X = 2, + SEG6_LOCAL_ACTION_END_T = 3, + SEG6_LOCAL_ACTION_END_DX2 = 4, + SEG6_LOCAL_ACTION_END_DX6 = 5, + SEG6_LOCAL_ACTION_END_DX4 = 6, + SEG6_LOCAL_ACTION_END_DT6 = 7, + SEG6_LOCAL_ACTION_END_DT4 = 8, + SEG6_LOCAL_ACTION_END_B6 = 9, + SEG6_LOCAL_ACTION_END_B6_ENCAP = 10, + SEG6_LOCAL_ACTION_END_BM = 11, + SEG6_LOCAL_ACTION_END_S = 12, + SEG6_LOCAL_ACTION_END_AS = 13, + SEG6_LOCAL_ACTION_END_AM = 14, + SEG6_LOCAL_ACTION_END_BPF = 15, + SEG6_LOCAL_ACTION_END_DT46 = 16, + __SEG6_LOCAL_ACTION_MAX = 17, }; -struct hpet_timer { - u64 hpet_config; - union { - u64 _hpet_hc64; - u32 _hpet_hc32; - unsigned long _hpet_compare; - } _u1; - u64 hpet_fsb[2]; +struct qdisc_skb_cb { + struct { + unsigned int pkt_len; + u16 slave_dev_queue_mapping; + u16 tc_classid; + }; + unsigned char data[20]; }; -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]; +struct bpf_skb_data_end { + struct qdisc_skb_cb qdisc_cb; + void *data_meta; + void *data_end; }; -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 seg6_local_counters { + __u64 packets; + __u64 bytes; + __u64 errors; }; -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 seg6_end_dt_info { + enum seg6_end_dt_mode mode; + struct net *net; + int vrf_ifindex; + int vrf_table; + u16 family; }; -struct hpet_info { - unsigned long hi_ireqfreq; - unsigned long hi_flags; - unsigned short hi_hpet; - unsigned short hi_timer; +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 compat_hpet_info { - compat_ulong_t hi_ireqfreq; - compat_ulong_t hi_flags; - unsigned short hi_hpet; - unsigned short hi_timer; +enum rpc_gss_svc { + RPC_GSS_SVC_NONE = 1, + RPC_GSS_SVC_INTEGRITY = 2, + RPC_GSS_SVC_PRIVACY = 3, }; -enum drm_minor_type { - DRM_MINOR_PRIMARY = 0, - DRM_MINOR_CONTROL = 1, - DRM_MINOR_RENDER = 2, - DRM_MINOR_ACCEL = 32, +enum { + RQ_SECURE = 0, + RQ_LOCAL = 1, + RQ_USEDEFERRAL = 2, + RQ_DROPME = 3, + RQ_SPLICE_OK = 4, + RQ_VICTIM = 5, + RQ_DATA = 6, }; -struct reg_whitelist { - i915_reg_t offset_ldw; - i915_reg_t offset_udw; - u8 min_graphics_ver; - u8 max_graphics_ver; - u8 size; +struct gss_domain { + struct auth_domain h; + u32 pseudoflavor; }; -struct drm_i915_reg_read { - __u64 offset; - __u64 val; +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; }; -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 gss_svc_seq_data { + u32 sd_max; + unsigned long sd_win[2]; + spinlock_t sd_lock; }; -struct sgt_dma { - struct scatterlist *sg; - dma_addr_t dma; - dma_addr_t max; +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; }; -typedef u64 gen8_pte_t; +struct rpc_gss_wire_cred { + u32 gc_v; + u32 gc_proc; + u32 gc_seq; + u32 gc_svc; + struct xdr_netobj gc_ctx; +}; -struct i915_gem_apply_to_region; +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 i915_gem_apply_to_region_ops { - int (*process_obj)(struct i915_gem_apply_to_region *, struct drm_i915_gem_object *); +struct gssp_in_token { + struct page **pages; + unsigned int page_base; + unsigned int page_len; }; -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 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; }; -struct i915_gem_ttm_pm_apply { - struct i915_gem_apply_to_region base; - bool allow_gpu: 1; - bool backup_pinned: 1; +enum ieee80211_back_parties { + WLAN_BACK_RECIPIENT = 0, + WLAN_BACK_INITIATOR = 1, }; -struct auxiliary_device { - struct device dev; - const char *name; - u32 id; +enum ieee80211_back_actioncode { + WLAN_ACTION_ADDBA_REQ = 0, + WLAN_ACTION_ADDBA_RESP = 1, + WLAN_ACTION_DELBA = 2, }; -struct mei_aux_device { - struct auxiliary_device aux_dev; - int irq; - struct resource bar; - struct resource ext_op_mem; - bool slow_firmware; +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, }; -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; +enum ieee80211_status_data { + IEEE80211_STATUS_TYPE_MASK = 15, + IEEE80211_STATUS_TYPE_INVALID = 0, + IEEE80211_STATUS_TYPE_SMPS = 1, + IEEE80211_STATUS_SUBDATA_MASK = 4080, }; -struct intel_watermark_params { - u16 fifo_size; - u16 max_wm; - u8 default_wm; - u8 guard_size; - u8 cacheline_size; +enum ocb_deferred_task_flags { + OCB_WORK_HOUSEKEEPING = 0, }; -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 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); }; -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 pci_bf_sort_state { + pci_bf_sort_default = 0, + pci_force_nobf = 1, + pci_force_bf = 2, + pci_dmi_bf = 3, }; -struct ilk_wm_maximums { - u16 pri; - u16 spr; - u16 cur; - u16 fbc; +struct setup_data { + __u64 next; + __u32 type; + __u32 len; + __u8 data[0]; }; -struct intel_wm_config { - unsigned int num_pipes_active; - bool sprites_enabled; - bool sprites_scaled; +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 node_attr { - struct device_attribute attr; - enum node_states state; +struct cstate_model { + unsigned long core_events; + unsigned long pkg_events; + unsigned long quirks; }; -enum numa_stat_item { - NUMA_HIT = 0, - NUMA_MISS = 1, - NUMA_FOREIGN = 2, - NUMA_INTERLEAVE_HIT = 3, - NUMA_LOCAL = 4, - NUMA_OTHER = 5, - NR_VM_NUMA_EVENT_ITEMS = 6, +enum 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, }; -struct node_access_nodes { - struct device dev; - struct list_head list_node; - unsigned int access; +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 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___2 = 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 desc_ptr { + unsigned short size; + unsigned long address; +} __attribute__((packed)); -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; +struct idt_bits { + u16 ist: 3; + u16 zero: 5; + u16 type: 5; + u16 dpl: 2; + u16 p: 1; }; -typedef struct sg_scatter_hold Sg_scatter_hold; - -struct sg_io_hdr { - int interface_id; - int dxfer_direction; - unsigned char cmd_len; - unsigned char mx_sb_len; - unsigned short iovec_count; - unsigned int dxfer_len; - void __attribute__((btf_type_tag("user"))) *dxferp; - unsigned char __attribute__((btf_type_tag("user"))) *cmdp; - void __attribute__((btf_type_tag("user"))) *sbp; - unsigned int timeout; - unsigned int flags; - int pack_id; - void __attribute__((btf_type_tag("user"))) *usr_ptr; - unsigned char status; - unsigned char masked_status; - unsigned char msg_status; - unsigned char sb_len_wr; - unsigned short host_status; - unsigned short driver_status; - int resid; - unsigned int duration; - unsigned int info; +struct gate_struct { + u16 offset_low; + u16 segment; + struct idt_bits bits; + u16 offset_middle; + u32 offset_high; + u32 reserved; }; -typedef struct sg_io_hdr sg_io_hdr_t; +typedef struct gate_struct gate_desc; -struct execute_work { - struct work_struct work; +struct idt_data { + unsigned int vector; + unsigned int segment; + struct idt_bits bits; + const void *addr; }; -struct sg_fd; +enum { + GATE_INTERRUPT = 14, + GATE_TRAP = 15, + GATE_CALL = 12, + GATE_TASK = 5, +}; -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; +struct irq_stack { + char stack[16384]; }; -typedef struct sg_request Sg_request; +enum { + DESC_TSS = 9, + DESC_LDT = 2, + DESCTYPE_S = 16, +}; -struct sg_device; +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 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; +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 sg_fd Sg_fd; +typedef struct ldttss_desc ldt_desc; -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 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; }; -struct sg_proc_deviter { - loff_t index; - size_t max; +enum xstate_copy_mode { + XSTATE_COPY_FP = 0, + XSTATE_COPY_FX = 1, + XSTATE_COPY_XSAVE = 2, }; -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 _fpreg { + __u16 significand[4]; + __u16 exponent; }; -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 _fpxreg { + __u16 significand[4]; + __u16 exponent; + __u16 padding[3]; }; -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; +struct user_i387_ia32_struct { + u32 cwd; + u32 swd; + u32 twd; + u32 fip; + u32 fcs; + u32 foo; + u32 fos; + u32 st_space[20]; }; -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]; +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; }; -typedef struct sg_scsi_id sg_scsi_id_t; +struct sku_microcode { + u8 model; + u8 stepping; + u32 microcode; +}; -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; +struct _tlb_table { + unsigned char descriptor; + char tlb_type; + unsigned int entries; + char info[128]; }; -struct rq_map_data { - struct page **pages; - unsigned long offset; - unsigned short page_order; - unsigned short nr_entries; - bool null_mapped; - bool from_user; +enum split_lock_detect_state { + sld_off = 0, + sld_warn = 1, + sld_fatal = 2, + sld_ratelimit = 3, }; -enum { - e1000_10_half = 0, - e1000_10_full = 1, - e1000_100_half = 2, - e1000_100_full = 3, +enum tlb_infos { + ENTRIES = 0, + NR_INFO = 1, }; -enum { - e1000_igp_cable_length_10 = 10, - e1000_igp_cable_length_20 = 20, - e1000_igp_cable_length_30 = 30, - e1000_igp_cable_length_40 = 40, - e1000_igp_cable_length_50 = 50, - e1000_igp_cable_length_60 = 60, - e1000_igp_cable_length_70 = 70, - e1000_igp_cable_length_80 = 80, - e1000_igp_cable_length_90 = 90, - e1000_igp_cable_length_100 = 100, - e1000_igp_cable_length_110 = 110, - e1000_igp_cable_length_115 = 115, - e1000_igp_cable_length_120 = 120, - e1000_igp_cable_length_130 = 130, - e1000_igp_cable_length_140 = 140, - e1000_igp_cable_length_150 = 150, - e1000_igp_cable_length_160 = 160, - e1000_igp_cable_length_170 = 170, - e1000_igp_cable_length_180 = 180, +enum 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, }; -typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); +struct physid_mask; -struct ignore_entry { - u16 vid; - u16 pid; - u16 bcdmin; - u16 bcdmax; -}; +typedef struct physid_mask physid_mask_t; -struct focaltech_finger_state { - bool active; - bool valid; - unsigned int x; - unsigned int y; +struct apic { + void (*eoi)(); + void (*native_eoi)(); + void (*write)(u32, u32); + u32 (*read)(u32); + void (*wait_icr_idle)(); + u32 (*safe_wait_icr_idle)(); + void (*send_IPI)(int, int); + void (*send_IPI_mask)(const struct cpumask *, int); + void (*send_IPI_mask_allbutself)(const struct cpumask *, int); + void (*send_IPI_allbutself)(int); + void (*send_IPI_all)(int); + void (*send_IPI_self)(int); + enum apic_delivery_modes delivery_mode; + u32 disable_esr: 1; + u32 dest_mode_logical: 1; + u32 x2apic_set_max_apicid: 1; + u32 nmi_to_offline_cpu: 1; + u32 (*calc_dest_apicid)(unsigned int); + u64 (*icr_read)(); + void (*icr_write)(u32, u32); + u32 max_apic_id; + int (*probe)(); + int (*acpi_madt_oem_check)(char *, char *); + bool (*apic_id_registered)(); + bool (*check_apicid_used)(physid_mask_t *, u32); + void (*init_apic_ldr)(); + void (*ioapic_phys_id_map)(physid_mask_t *, physid_mask_t *); + u32 (*cpu_present_to_apicid)(int); + u32 (*phys_pkg_id)(u32, int); + u32 (*get_apic_id)(u32); + u32 (*set_apic_id)(u32); + int (*wakeup_secondary_cpu)(u32, unsigned long); + int (*wakeup_secondary_cpu_64)(u32, unsigned long); + char *name; }; -struct focaltech_hw_state { - struct focaltech_finger_state fingers[5]; - unsigned int width; - bool pressed; +struct physid_mask { + unsigned long mask[512]; }; -struct focaltech_data { - unsigned int x_max; - unsigned int y_max; - struct focaltech_hw_state state; -}; +typedef unsigned long kimage_entry_t; -struct kvm_ptp_clock { - struct ptp_clock *ptp_clock; - struct ptp_clock_info caps; +struct kexec_segment { + union { + void __attribute__((btf_type_tag("user"))) *buf; + void *kbuf; + }; + size_t bufsz; + unsigned long mem; + size_t memsz; }; -struct cpuidle_device; - -struct cpuidle_driver; +struct kimage_arch { + p4d_t *p4d; + pud_t *pud; + pmd_t *pmd; + pte_t *pte; +}; -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 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; + unsigned int update_elfcorehdr: 1; + struct kimage_arch arch; + int hp_action; + int elfcorehdr_index; + bool elfcorehdr_updated; + void *elf_headers; + unsigned long elf_headers_sz; + unsigned long elf_load_addr; }; -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 init_pgtable_data { + struct x86_mapping_info *info; + pgd_t *level4p; }; -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; +enum { + MEMTYPE_EXACT_MATCH = 0, + MEMTYPE_END_MATCH = 1, }; -struct cpuidle_driver_kobj; +struct memtype { + u64 start; + u64 end; + u64 subtree_max_end; + enum page_cache_mode type; + struct rb_node rb; +}; -struct cpuidle_state_kobj; +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 cpuidle_device_kobj; +struct ipc_namespace { + struct ipc_ids ids[3]; + int sem_ctls[4]; + int used_sems; + unsigned int msg_ctlmax; + unsigned int msg_ctlmnb; + unsigned int msg_ctlmni; + struct percpu_counter percpu_msg_bytes; + struct percpu_counter percpu_msg_hdrs; + size_t shm_ctlmax; + size_t shm_ctlall; + unsigned long shm_tot; + int shm_ctlmni; + int shm_rmid_forced; + struct notifier_block ipcns_nb; + struct vfsmount *mq_mnt; + unsigned int mq_queues_count; + unsigned int mq_queues_max; + unsigned int mq_msg_max; + unsigned int mq_msgsize_max; + unsigned int mq_msg_default; + unsigned int mq_msgsize_default; + struct ctl_table_set mq_set; + struct ctl_table_header *mq_sysctls; + struct ctl_table_set ipc_set; + struct ctl_table_header *ipc_sysctls; + struct user_namespace *user_ns; + struct ucounts *ucounts; + struct llist_node mnt_llist; + struct ns_common ns; +}; -struct 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 { + AFFINITY = 0, + AFFINITY_LIST = 1, + EFFECTIVE = 2, + EFFECTIVE_LIST = 3, }; -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); +enum { + CGRP_NOTIFY_ON_RELEASE = 0, + CGRP_CPUSET_CLONE_CHILDREN = 1, + CGRP_FREEZE = 2, + CGRP_FROZEN = 3, + CGRP_KILL = 4, }; -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); +struct audit_fsnotify_mark { + dev_t dev; + unsigned long ino; + char *path; + struct fsnotify_mark mark; + struct audit_krule *rule; }; -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, +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 *); }; -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, +struct dyn_event { + struct list_head list; + struct dyn_event_operations *ops; }; -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, +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, }; -typedef char __pad_before_u32[0]; +enum dynevent_type { + DYNEVENT_TYPE_SYNTH = 1, + DYNEVENT_TYPE_KPROBE = 2, + DYNEVENT_TYPE_NONE = 3, +}; -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; +enum probe_print_type { + PROBE_PRINT_NORMAL = 0, + PROBE_PRINT_RETURN = 1, + PROBE_PRINT_EVENT = 2, }; -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]; +enum { + TP_ERR_FILE_NOT_FOUND = 0, + TP_ERR_NO_REGULAR_FILE = 1, + TP_ERR_BAD_REFCNT = 2, + TP_ERR_REFCNT_OPEN_BRACE = 3, + TP_ERR_BAD_REFCNT_SUFFIX = 4, + TP_ERR_BAD_UPROBE_OFFS = 5, + TP_ERR_BAD_MAXACT_TYPE = 6, + TP_ERR_BAD_MAXACT = 7, + TP_ERR_MAXACT_TOO_BIG = 8, + TP_ERR_BAD_PROBE_ADDR = 9, + TP_ERR_NON_UNIQ_SYMBOL = 10, + TP_ERR_BAD_RETPROBE = 11, + TP_ERR_NO_TRACEPOINT = 12, + TP_ERR_BAD_ADDR_SUFFIX = 13, + TP_ERR_NO_GROUP_NAME = 14, + TP_ERR_GROUP_TOO_LONG = 15, + TP_ERR_BAD_GROUP_NAME = 16, + TP_ERR_NO_EVENT_NAME = 17, + TP_ERR_EVENT_TOO_LONG = 18, + TP_ERR_BAD_EVENT_NAME = 19, + TP_ERR_EVENT_EXIST = 20, + TP_ERR_RETVAL_ON_PROBE = 21, + TP_ERR_NO_RETVAL = 22, + TP_ERR_BAD_STACK_NUM = 23, + TP_ERR_BAD_ARG_NUM = 24, + TP_ERR_BAD_VAR = 25, + TP_ERR_BAD_REG_NAME = 26, + TP_ERR_BAD_MEM_ADDR = 27, + TP_ERR_BAD_IMM = 28, + TP_ERR_IMMSTR_NO_CLOSE = 29, + TP_ERR_FILE_ON_KPROBE = 30, + TP_ERR_BAD_FILE_OFFS = 31, + TP_ERR_SYM_ON_UPROBE = 32, + TP_ERR_TOO_MANY_OPS = 33, + TP_ERR_DEREF_NEED_BRACE = 34, + TP_ERR_BAD_DEREF_OFFS = 35, + TP_ERR_DEREF_OPEN_BRACE = 36, + TP_ERR_COMM_CANT_DEREF = 37, + TP_ERR_BAD_FETCH_ARG = 38, + TP_ERR_ARRAY_NO_CLOSE = 39, + TP_ERR_BAD_ARRAY_SUFFIX = 40, + TP_ERR_BAD_ARRAY_NUM = 41, + TP_ERR_ARRAY_TOO_BIG = 42, + TP_ERR_BAD_TYPE = 43, + TP_ERR_BAD_STRING = 44, + TP_ERR_BAD_SYMSTRING = 45, + TP_ERR_BAD_BITFIELD = 46, + TP_ERR_ARG_NAME_TOO_LONG = 47, + TP_ERR_NO_ARG_NAME = 48, + TP_ERR_BAD_ARG_NAME = 49, + TP_ERR_USED_ARG_NAME = 50, + TP_ERR_ARG_TOO_LONG = 51, + TP_ERR_NO_ARG_BODY = 52, + TP_ERR_BAD_INSN_BNDRY = 53, + TP_ERR_FAIL_REG_PROBE = 54, + TP_ERR_DIFF_PROBE_TYPE = 55, + TP_ERR_DIFF_ARG_TYPE = 56, + TP_ERR_SAME_PROBE = 57, + TP_ERR_NO_EVENT_INFO = 58, + TP_ERR_BAD_ATTACH_EVENT = 59, + TP_ERR_BAD_ATTACH_ARG = 60, + TP_ERR_NO_EP_FILTER = 61, + TP_ERR_NOSUP_BTFARG = 62, + TP_ERR_NO_BTFARG = 63, + TP_ERR_NO_BTF_ENTRY = 64, + TP_ERR_BAD_VAR_ARGS = 65, + TP_ERR_NOFENTRY_ARGS = 66, + TP_ERR_DOUBLE_ARGS = 67, + TP_ERR_ARGS_2LONG = 68, + TP_ERR_ARGIDX_2BIG = 69, + TP_ERR_NO_PTR_STRCT = 70, + TP_ERR_NOSUP_DAT_ARG = 71, + TP_ERR_BAD_HYPHEN = 72, + TP_ERR_NO_BTF_FIELD = 73, + TP_ERR_BAD_BTF_TID = 74, + TP_ERR_BAD_TYPE4STR = 75, }; -struct snd_pcm_file { - struct snd_pcm_substream *substream; - int no_compat_mmap; - unsigned int user_pversion; +enum { + FILTER_OTHER = 0, + FILTER_STATIC_STRING = 1, + FILTER_DYN_STRING = 2, + FILTER_RDYN_STRING = 3, + FILTER_PTR_STRING = 4, + FILTER_TRACE_FN = 5, + FILTER_CPUMASK = 6, + FILTER_COMM = 7, + FILTER_CPU = 8, + FILTER_STACKTRACE = 9, }; -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 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 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 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 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 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 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 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 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 kretprobe_instance { + struct rethook_node node; + char data[0]; }; -struct snd_pcm_mmap_control32 { - u32 appl_ptr; - u32 avail_min; +struct trace_uprobe_filter { + rwlock_t rwlock; + int nr_systemwide; + struct list_head perf_events; }; -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 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 snd_pcm_sync_ptr { - __u32 flags; - __u32 pad1; - union { - struct snd_pcm_mmap_status status; - unsigned char reserved[64]; - } s; +struct fetch_insn { + enum fetch_op op; union { - struct snd_pcm_mmap_control control; - unsigned char reserved[64]; - } c; + unsigned int param; + struct { + unsigned int size; + int offset; + }; + struct { + unsigned char basesize; + unsigned char lshift; + unsigned char rshift; + }; + unsigned long immediate; + void *data; + }; }; -struct snd_xferi { - snd_pcm_sframes_t result; - void __attribute__((btf_type_tag("user"))) *buf; - snd_pcm_uframes_t frames; +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 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 event_file_link { + struct trace_event_file *file; + struct list_head list; }; -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 kretprobe_trace_entry_head { + struct trace_entry ent; + unsigned long func; + unsigned long ret_ip; }; -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 kprobe_trace_entry_head { + struct trace_entry ent; + unsigned long ip; }; -struct snd_pcm_channel_info32 { - u32 channel; - u32 offset; - u32 first; - u32 step; +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 snd_xferi32 { - s32 result; - u32 buf; - u32 frames; +struct dynevent_arg { + const char *str; + char separator; }; -struct snd_xfern32 { - s32 result; - u32 bufs; - u32 frames; +typedef int (*dynevent_check_arg_fn_t)(void *); + +struct sym_count_ctx { + unsigned int count; + const char *name; }; -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 btf_param; + +struct traceprobe_parse_context { + struct trace_event_call *event; + const char *funcname; + const struct btf_type *proto; + const struct btf_param *params; + s32 nr_params; + struct btf *btf; + const struct btf_type *last_type; + u32 last_bitoffs; + u32 last_bitsize; + unsigned int flags; + int offset; }; -enum { - IF_LINK_MODE_DEFAULT = 0, - IF_LINK_MODE_DORMANT = 1, - IF_LINK_MODE_TESTING = 2, +struct btf_param { + __u32 name_off; + __u32 type; }; -enum lw_bits { - LW_URGENT = 0, +struct bpf_preload_info; + +struct bpf_preload_ops { + int (*preload)(struct bpf_preload_info *); + struct module *owner; }; -enum { - SK_DIAG_BPF_STORAGE_REQ_NONE = 0, - SK_DIAG_BPF_STORAGE_REQ_MAP_FD = 1, - __SK_DIAG_BPF_STORAGE_REQ_MAX = 2, +struct bpf_preload_info { + char link_name[16]; + struct bpf_link *link; }; -enum { - BPF_LOCAL_STORAGE_GET_F_CREATE = 1, - BPF_SK_STORAGE_GET_F_CREATE = 1, +enum bpf_type { + BPF_TYPE_UNSPEC = 0, + BPF_TYPE_PROG = 1, + BPF_TYPE_MAP = 2, + BPF_TYPE_LINK = 3, }; enum { - SK_DIAG_BPF_STORAGE_REP_NONE = 0, - SK_DIAG_BPF_STORAGE = 1, - __SK_DIAG_BPF_STORAGE_REP_MAX = 2, + OPT_MODE = 0, }; -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, +struct map_iter { + void *key; + bool done; }; -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_mount_opts { + umode_t mode; }; -typedef u64 (*btf_bpf_sk_storage_get)(struct bpf_map *, struct sock *, void *, u64, gfp_t); +struct pkcs7_signed_info; -typedef u64 (*btf_bpf_sk_storage_delete)(struct bpf_map *, struct sock *); +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; +}; -typedef u64 (*btf_bpf_sk_storage_get_tracing)(struct bpf_map *, struct sock *, void *, u64, gfp_t); +struct vm_unmapped_area_info; -typedef u64 (*btf_bpf_sk_storage_delete_tracing)(struct bpf_map *, struct sock *); +typedef void (*btf_trace_vm_unmapped_area)(void *, unsigned long, struct vm_unmapped_area_info *); -struct bpf_sk_storage_diag { - u32 nr_maps; - struct bpf_map *maps[0]; +struct vm_unmapped_area_info { + unsigned long flags; + unsigned long length; + unsigned long low_limit; + unsigned long high_limit; + unsigned long align_mask; + unsigned long align_offset; }; -struct bpf_iter_seq_sk_storage_map_info { - struct bpf_map *map; - unsigned int bucket_id; - unsigned int skip_elems; +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 *); + +enum { + HUGETLB_SHMFS_INODE = 1, + HUGETLB_ANONHUGE_INODE = 2, }; -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 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; }; -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, +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]; }; -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 trace_event_raw_vma_mas_szero { + struct trace_entry ent; + struct maple_tree *mt; + unsigned long start; + unsigned long end; + char __data[0]; }; -struct pause_req_info { - struct ethnl_req_info base; - enum ethtool_mac_stats_src src; +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 pause_reply_data { - struct ethnl_reply_data base; - struct ethtool_pauseparam pauseparam; - struct ethtool_pause_stats pausestat; +struct trace_event_raw_exit_mmap { + struct trace_entry ent; + struct mm_struct *mm; + struct maple_tree *mt; + char __data[0]; }; -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, +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 *); }; -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, +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 rd_msg { - struct icmp6hdr icmph; - struct in6_addr target; - struct in6_addr dest; - __u8 opt[0]; +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 dma_page { + struct list_head page_list; + void *vaddr; + dma_addr_t dma; }; -struct tcpvegas_info { - __u32 tcpv_enabled; - __u32 tcpv_rttcnt; - __u32 tcpv_rtt; - __u32 tcpv_minrtt; +struct dma_block; + +struct dma_pool { + struct list_head page_list; + spinlock_t lock; + struct dma_block *next_block; + size_t nr_blocks; + size_t nr_active; + size_t nr_pages; + struct device *dev; + unsigned int size; + unsigned int allocation; + unsigned int boundary; + char name[32]; + struct list_head pools; }; -struct tcp_dctcp_info { - __u16 dctcp_enabled; - __u16 dctcp_ce_state; - __u32 dctcp_alpha; - __u32 dctcp_ab_ecn; - __u32 dctcp_ab_tot; +struct dma_block { + struct dma_block *next_block; + dma_addr_t dma; }; -struct tcp_bbr_info { - __u32 bbr_bw_lo; - __u32 bbr_bw_hi; - __u32 bbr_min_rtt; - __u32 bbr_pacing_gain; - __u32 bbr_cwnd_gain; +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; }; -union tcp_cc_info { - struct tcpvegas_info vegas; - struct tcp_dctcp_info dctcp; - struct tcp_bbr_info bbr; +struct ptdump_range { + unsigned long start; + unsigned long end; }; -struct tcp_md5sig_pool { - struct ahash_request *md5_req; - void *scratch; +enum poll_time_type { + PT_TIMEVAL = 0, + PT_OLD_TIMEVAL = 1, + PT_TIMESPEC = 2, + PT_OLD_TIMESPEC = 3, }; -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, +struct poll_table_entry { + struct file *filp; + __poll_t key; + wait_queue_entry_t wait; + wait_queue_head_t *wait_address; }; -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, +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]; }; -enum { - TCP_NO_QUEUE = 0, - TCP_RECV_QUEUE = 1, - TCP_SEND_QUEUE = 2, - TCP_QUEUES_NR = 3, +struct poll_table_page { + struct poll_table_page *next; + struct poll_table_entry *entry; + struct poll_table_entry entries[0]; }; -enum { - TCP_CMSG_INQ = 1, - TCP_CMSG_TS = 2, +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]; }; -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, +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; }; -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, +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; }; -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, +struct compat_sigset_argpack { + compat_uptr_t p; + compat_size_t size; }; -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, +struct lock_manager { + struct list_head list; + bool block_opens; +}; + +struct file_handle { + __u32 handle_bytes; + int handle_type; + unsigned char f_handle[0]; }; 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, + BIAS = 2147483648, }; -struct tcp_splice_state { - struct pipe_inode_info *pipe; - size_t len; - unsigned int flags; +enum proc_hidepid { + HIDEPID_OFF = 0, + HIDEPID_NO_ACCESS = 1, + HIDEPID_INVISIBLE = 2, + HIDEPID_NOT_PTRACEABLE = 4, }; -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; +enum proc_pidonly { + PROC_PIDONLY_OFF = 0, + PROC_PIDONLY_ON = 1, }; -struct scm_timestamping_internal { - struct timespec64 ts[3]; +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 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; -}; - -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 zap_details { - struct folio *single_folio; - bool even_cows; - zap_flags_t zap_flags; -}; - -struct __kernel_sock_timeval { - __s64 tv_sec; - __s64 tv_usec; -}; - -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; -}; - -enum { - UDP_BPF_IPV4 = 0, - UDP_BPF_IPV6 = 1, - UDP_BPF_NUM_PROTS = 2, -}; - -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; -}; - -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 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 ip6t_reject_info { - __u32 with; +struct pde_opener { + struct list_head lh; + struct file *file; + bool closing; + struct completion *c; }; -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 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 xt_counters { - __u64 pcnt; - __u64 bcnt; +struct sysctl_alias { + const char *kernel_param; + const char *sysctl_param; }; -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]; -}; +typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); -struct gss_domain { - struct auth_domain h; - u32 pseudoflavor; -}; +typedef int (*ext4_fsmap_format_t)(struct ext4_fsmap *, void *); -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; -}; +struct ext4_fsmap_head; -struct gss_svc_seq_data { - u32 sd_max; - unsigned long sd_win[2]; - spinlock_t sd_lock; +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 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 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 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 fsmap { + __u32 fmr_device; + __u32 fmr_flags; + __u64 fmr_physical; + __u64 fmr_owner; + __u64 fmr_offset; + __u64 fmr_length; + __u64 fmr_reserved[3]; }; -struct gssp_in_token { - struct page **pages; - unsigned int page_base; - unsigned int page_len; +struct ext4_getfsmap_dev { + int (*gfd_fn)(struct super_block *, struct ext4_fsmap *, struct ext4_getfsmap_info *); + u32 gfd_dev; }; -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 hugetlbfs_size_type { + NO_SIZE = 0, + SIZE_STD = 1, + SIZE_PERCENT = 2, }; -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 hugetlb_param { + Opt_gid___3 = 0, + Opt_min_size = 1, + Opt_mode___2 = 2, + Opt_nr_inodes = 3, + Opt_pagesize = 4, + Opt_size = 5, + Opt_uid___3 = 6, }; -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 hugetlbfs_inode_info { + struct inode vfs_inode; + unsigned int seals; }; -struct ieee80211_twt_params { - __le16 req_type; - __le64 twt; - u8 min_twt_dur; - __le16 mantissa; - u8 channel; -} __attribute__((packed)); - -struct netlbl_af4list { - __be32 addr; - __be32 mask; - u32 valid; - struct list_head list; +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 netlbl_af6list { - struct in6_addr addr; - struct in6_addr mask; - u32 valid; - struct list_head list; -}; +typedef struct vfsmount * (*debugfs_automount_t)(struct dentry *, void *); -struct netlbl_unlhsh_tbl { - struct list_head *tbl; - u32 size; +struct debugfs_fsdata { + const struct file_operations *real_fops; + union { + debugfs_automount_t automount; + struct { + refcount_t active_users; + struct completion active_users_drained; + struct mutex cancellations_mtx; + struct list_head cancellations; + }; + }; }; -struct netlbl_unlhsh_iface { - int ifindex; - struct list_head addr4_list; - struct list_head addr6_list; - u32 valid; +struct debugfs_cancellation { 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, + void (*cancel)(struct dentry *, void *); + void *cancel_data; }; -struct netlbl_unlhsh_addr4 { - u32 secid; - struct netlbl_af4list list; - struct callback_head rcu; +struct debugfs_blob_wrapper { + void *data; + unsigned long size; }; -struct netlbl_unlhsh_addr6 { - u32 secid; - struct netlbl_af6list list; - struct callback_head rcu; +struct debugfs_devm_entry { + int (*read)(struct seq_file *, void *); + struct device *dev; }; -struct netlbl_unlhsh_walk_arg { - struct netlink_callback *nl_cb; - struct sk_buff *skb; - u32 seq; +struct sha3_state { + u64 st[25]; + unsigned int rsiz; + unsigned int rsizw; + unsigned int partial; + u8 buf[144]; }; -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 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 pci_bf_sort_state { - pci_bf_sort_default = 0, - pci_force_nobf = 1, - pci_force_bf = 2, - pci_dmi_bf = 3, +struct sg_pool { + size_t size; + char *name; + struct kmem_cache *slab; + mempool_t *pool; }; -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 msr { + union { + struct { + u32 l; + u32 h; + }; + u64 q; + }; }; -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 msr_info { + u32 msr_no; + struct msr reg; + struct msr *msrs; + int err; }; -struct async_domain { - struct list_head pending; - unsigned int registered: 1; +struct msr_info_completion { + struct msr_info msr; + struct completion done; }; -enum state { - Start = 0, - Collect = 1, - GotHeader = 2, - SkipIt = 3, - GotName = 4, - CopyFile = 5, - GotSymlink = 6, - Reset = 7, +struct msr_regs_info { + u32 *regs; + int err; }; -struct hash { - int ino; - int minor; - int major; - umode_t mode; - struct hash *next; - char name[4098]; +struct walk_rcec_data { + struct pci_dev *rcec; + int (*user_callback)(struct pci_dev *, void *); + void *user_data; }; -struct dir_entry { - struct list_head list; - time64_t mtime; - char name[0]; +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); }; -typedef int (*decompress_fn)(unsigned char *, long, long (*)(void *, unsigned long), long (*)(void *, unsigned long), unsigned char *, long *, void (*)(char *)); - -enum { - IRQ_STARTUP_NORMAL = 0, - IRQ_STARTUP_MANAGED = 1, - IRQ_STARTUP_ABORT = 2, -}; +typedef u32 (*acpi_osd_handler)(void *); -struct latch_tree_ops { - bool (*less)(struct latch_tree_node *, struct latch_tree_node *); - int (*comp)(void *, struct latch_tree_node *); -}; +typedef acpi_status (*acpi_gpe_callback)(struct acpi_gpe_xrupt_info *, struct acpi_gpe_block_info *, void *); -struct latch_tree_root { - seqcount_latch_t seq; - struct rb_root tree[2]; +struct acpi_gpe_device_info { + u32 index; + u32 next_block_base_index; + acpi_status status; + struct acpi_namespace_node *gpe_device; }; -struct mod_tree_root { - struct latch_tree_root root; - unsigned long addr_min; - unsigned long addr_max; +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 dma_chan___2 { - int lock; - const char *device_id; +struct acpi_init_walk_info { + u32 table_index; + u32 object_count; + u32 method_count; + u32 serial_method_count; + u32 non_serial_method_count; + u32 serialized_method_count; + u32 device_count; + u32 op_region_count; + u32 field_count; + u32 buffer_count; + u32 package_count; + u32 op_region_init; + u32 field_init; + u32 buffer_init; + u32 package_init; + acpi_owner_id owner_id; }; -struct 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 acpi_device_walk_info { + struct acpi_table_desc *table_desc; + struct acpi_evaluate_info *evaluate_info; + u32 device_count; + u32 num_STA; + u32 num_INI; }; -struct cgrp_cset_link { - struct cgroup *cgrp; - struct css_set *cset; - struct list_head cset_link; - struct list_head cgrp_link; -}; +typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); -struct ftrace_func_command { +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; - char *name; - int (*func)(struct trace_array *, struct ftrace_hash *, char *, char *, char *, int); }; -struct ftrace_probe_ops { - void (*func)(unsigned long, unsigned long, struct trace_array *, struct ftrace_probe_ops *, void *); - int (*init)(struct ftrace_probe_ops *, struct trace_array *, unsigned long, void *, void **); - void (*free)(struct ftrace_probe_ops *, struct trace_array *, unsigned long, void *); - int (*print)(struct seq_file *, unsigned long, struct ftrace_probe_ops *, void *); +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; }; -enum { - TRACE_FUNC_NO_OPTS = 0, - TRACE_FUNC_OPT_STACK = 1, - TRACE_FUNC_OPT_NO_REPEATS = 2, - TRACE_FUNC_OPT_HIGHEST_BIT = 4, +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; }; -typedef int (*ftrace_mapper_func)(void *); - -struct bpf_preload_info; - -struct bpf_preload_ops { - int (*preload)(struct bpf_preload_info *); - struct module *owner; +struct acpi_table_csrt { + struct acpi_table_header header; }; -struct bpf_preload_info { - char link_name[16]; - struct bpf_link *link; +struct acpi_dma_parser_data { + struct acpi_dma_spec dma_spec; + size_t index; + size_t n; }; -enum bpf_type { - BPF_TYPE_UNSPEC = 0, - BPF_TYPE_PROG = 1, - BPF_TYPE_MAP = 2, - BPF_TYPE_LINK = 3, +struct dw8250_port_data { + int line; + struct uart_8250_dma dma; + u8 dlf_size; + bool hw_rs485_support; }; -enum { - OPT_MODE = 0, -}; +struct dw8250_platform_data; -struct map_iter { - void *key; - bool done; +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 bpf_mount_opts { - umode_t mode; +struct dw8250_platform_data { + u8 usr_reg; + u32 cpr_val; + unsigned int quirks; }; -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, +struct iova { + struct rb_node node; + unsigned long pfn_hi; + unsigned long pfn_lo; }; -enum rseq_flags { - RSEQ_FLAG_UNREGISTER = 1, -}; +struct iova_magazine; -enum rseq_cpu_id_state { - RSEQ_CPU_ID_UNINITIALIZED = -1, - RSEQ_CPU_ID_REGISTRATION_FAILED = -2, +struct iova_cpu_rcache { + spinlock_t lock; + struct iova_magazine *loaded; + struct iova_magazine *prev; }; -struct trace_event_raw_rseq_update { - struct trace_entry ent; - s32 cpu_id; - s32 node_id; - s32 mm_cid; - char __data[0]; +struct iova_magazine { + union { + unsigned long size; + struct iova_magazine *next; + }; + unsigned long pfns[127]; }; -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 iova_rcache; -struct rseq_cs { - __u32 version; - __u32 flags; - __u64 start_ip; - __u64 post_commit_offset; - __u64 abort_ip; +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; }; -struct trace_event_data_offsets_rseq_update {}; - -struct trace_event_data_offsets_rseq_ip_fixup {}; - -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 iova_rcache { + spinlock_t lock; + unsigned int depot_size; + struct iova_magazine *depot; + struct iova_cpu_rcache __attribute__((btf_type_tag("percpu"))) *cpu_rcaches; + struct iova_domain *iovad; + struct delayed_work work; }; -struct old_linux_dirent { - unsigned long d_ino; - unsigned long d_offset; - unsigned short d_namlen; - char d_name[0]; +struct drm_auth { + drm_magic_t magic; }; -struct readdir_callback { - struct dir_context ctx; - struct old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent; - int result; +struct drm_print_iterator { + void *data; + ssize_t start; + ssize_t remain; + ssize_t offset; }; -struct linux_dirent { - unsigned long d_ino; - unsigned long d_off; - unsigned short d_reclen; - char d_name[0]; +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 getdents_callback { - struct dir_context ctx; - struct linux_dirent __attribute__((btf_type_tag("user"))) *current_dir; - int prev_reclen; - int count; - int error; +struct drm_dmi_panel_orientation_data { + int width; + int height; + const char * const *bios_dates; + int orientation; }; -struct linux_dirent64 { - u64 d_ino; - s64 d_off; - unsigned short d_reclen; - unsigned char d_type; - char d_name[0]; +enum class_map_type { + DD_CLASS_TYPE_DISJOINT_BITS = 0, + DD_CLASS_TYPE_LEVEL_NUM = 1, + DD_CLASS_TYPE_DISJOINT_NAMES = 2, + DD_CLASS_TYPE_LEVEL_NAMES = 3, }; -struct getdents_callback64 { - struct dir_context ctx; - struct linux_dirent64 __attribute__((btf_type_tag("user"))) *current_dir; - int prev_reclen; - int count; - int error; +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 compat_old_linux_dirent { - compat_ulong_t d_ino; - compat_ulong_t d_offset; - unsigned short d_namlen; - char d_name[0]; +struct ct_incoming_msg { + struct list_head link; + u32 size; + u32 msg[0]; }; -struct compat_readdir_callback { - struct dir_context ctx; - struct compat_old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent; - int result; +struct ct_request { + struct list_head link; + u32 fence; + u32 status; + u32 response_len; + u32 *response_buf; }; -struct compat_linux_dirent { - compat_ulong_t d_ino; - compat_ulong_t d_off; - unsigned short d_reclen; - char d_name[0]; +struct icl_procmon { + const char *name; + u32 dw1; + u32 dw9; + u32 dw10; }; -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; +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 proc_fs_opts { - int flag; - const char *str; +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; }; -struct proc_mounts { - struct mnt_namespace *ns; - struct path root; - int (*show)(struct seq_file *, struct vfsmount *); - struct mount cursor; +struct frontbuffer_fence_cb { + struct dma_fence_cb base; + struct intel_frontbuffer *front; }; -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 fb_plane_view_dims { + unsigned int width; + unsigned int height; + unsigned int tile_width; + unsigned int tile_height; }; -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 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 nfsacl_decode_desc { - struct xdr_array2_desc desc; - unsigned int count; - struct posix_acl *acl; +struct software_node_ref_args { + const struct software_node *node; + unsigned int nargs; + u64 args[8]; }; -struct nfsacl_simple_acl { - struct posix_acl acl; - struct posix_acl_entry ace[4]; -}; +typedef void (*btf_trace_devres_log)(void *, struct device *, const char *, void *, const char *, size_t); -struct kcore_list { - struct list_head list; - unsigned long addr; +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; - int type; -}; - -enum kcore_type { - KCORE_TEXT = 0, - KCORE_VMALLOC = 1, - KCORE_RAM = 2, - KCORE_VMEMMAP = 3, - KCORE_USER = 4, -}; - -struct ext4_extent_header { - __le16 eh_magic; - __le16 eh_entries; - __le16 eh_max; - __le16 eh_depth; - __le32 eh_generation; + char __data[0]; }; -struct ext4_extent_idx { - __le32 ei_block; - __le32 ei_leaf_lo; - __le16 ei_leaf_hi; - __u16 ei_unused; +struct trace_event_data_offsets_devres { + u32 devname; }; -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 scsi_proc_entry { + struct list_head entry; + const struct scsi_host_template *sht; + struct proc_dir_entry *proc_dir; + unsigned int present; }; -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 transport_container { + struct attribute_container ac; + const struct attribute_group *statistics; }; -struct fat_boot_fsinfo { - __le32 signature1; - __le32 reserved1[120]; - __le32 signature2; - __le32 free_clusters; - __le32 next_cluster; - __le32 reserved2[4]; +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 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 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 { - FILEID_HIGH_OFF = 0, - FILEID_LOW_OFF = 1, - FILE_I_TYPE_OFF = 2, - EMBED_FH_OFF = 3, -}; - -typedef void (*btf_trace_nlmclnt_test)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); - -typedef void (*btf_trace_nlmclnt_lock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); - -typedef void (*btf_trace_nlmclnt_unlock)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); - -typedef void (*btf_trace_nlmclnt_grant)(void *, const struct nlm_lock *, const struct sockaddr *, unsigned int, __be32); - -struct trace_event_raw_nlmclnt_lock_event { - struct trace_entry ent; - u32 oh; - u32 svid; - u32 fh; - unsigned long status; - u64 start; - u64 len; - u32 __data_loc_addr; - char __data[0]; -}; - -struct trace_event_data_offsets_nlmclnt_lock_event { - u32 addr; + 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 { - Opt_err___4 = 0, - Opt_enc = 1, - Opt_hash = 2, -}; - -enum label_initialized { - LABEL_INVALID = 0, - LABEL_INITIALIZED = 1, - LABEL_PENDING = 2, -}; - -enum lsm_event { - LSM_POLICY_CHANGE = 0, -}; - -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, + 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 { - 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, +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 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 super_block *sb; -}; +struct clk_bulk_data; -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 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___2 **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 task_security_struct { - u32 osid; - u32 sid; - u32 exec_sid; - u32 create_sid; - u32 keycreate_sid; - u32 sockcreate_sid; +struct clk_bulk_data { + const char *id; + struct clk *clk; }; -struct selinux_policy; +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 selinux_policy_convert_data; +struct ahci_cmd_hdr; -struct selinux_load_state { - struct selinux_policy *policy; - struct selinux_policy_convert_data *convert_data; +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 policy_load_memory { - size_t len; - void *data; +struct ahci_cmd_hdr { + __le32 opts; + __le32 status; + __le32 tbl_addr; + __le32 tbl_addr_hi; + __le32 reserved[4]; }; -struct blkpg_ioctl_arg { - int op; - int flags; - int datalen; - void __attribute__((btf_type_tag("user"))) *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; }; -struct blkpg_partition { - long long start; - long long length; - int pno; - char devname[64]; - char volname[64]; +union ich8_hws_flash_status { + struct ich8_hsfsts hsf_status; + u16 regval; }; -struct pr_preempt { - __u64 old_key; - __u64 new_key; - __u32 type; - __u32 flags; +struct ich8_hsflctl { + u16 flcgo: 1; + u16 flcycle: 2; + u16 reserved: 5; + u16 fldbcount: 2; + u16 flockdn: 6; }; -struct pr_clear { - __u64 key; - __u32 flags; - __u32 __pad; +union ich8_hws_flash_ctrl { + struct ich8_hsflctl hsf_ctrl; + u16 regval; }; -struct pr_reservation { - __u64 key; - __u32 type; - __u32 flags; +struct ich8_pr { + u32 base: 13; + u32 reserved1: 2; + u32 rpe: 1; + u32 limit: 13; + u32 reserved2: 2; + u32 wpe: 1; }; -struct pr_registration { - __u64 old_key; - __u64 new_key; - __u32 flags; - __u32 __pad; +union ich8_flash_protected_range { + struct ich8_pr range; + u32 regval; }; -struct compat_hd_geometry { - unsigned char heads; - unsigned char sectors; - unsigned short cylinders; - u32 start; -}; +struct yenta_socket; -struct compat_blkpg_ioctl_arg { - compat_int_t op; - compat_int_t flags; - compat_int_t datalen; - compat_caddr_t data; +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 open_how { - __u64 flags; - __u64 mode; - __u64 resolve; +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]; }; -struct io_open { - struct file *file; - int dfd; - u32 file_slot; - struct filename *filename; - struct open_how how; - unsigned long nofile; +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, }; -struct io_close { - struct file *file; - int fd; - u32 file_slot; -}; +typedef struct pccard_io_map pccard_io_map; -union handle_parts { - depot_stack_handle_t handle; - struct { - u32 pool_index: 16; - u32 offset: 10; - u32 valid: 1; - u32 extra: 5; - }; -}; +typedef void (*btf_trace_xhci_dbg_address)(void *, struct va_format *); -struct stack_record { - struct stack_record *next; - u32 hash; - u32 size; - union handle_parts handle; - unsigned long entries[0]; -}; +typedef void (*btf_trace_xhci_dbg_context_change)(void *, struct va_format *); -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, -}; +typedef void (*btf_trace_xhci_dbg_quirks)(void *, struct va_format *); -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; -}; +typedef void (*btf_trace_xhci_dbg_reset_ep)(void *, struct va_format *); -enum pci_irq_reroute_variant { - INTEL_IRQ_REROUTE_VARIANT = 1, - MAX_IRQ_REROUTE_VARIANTS = 3, -}; +typedef void (*btf_trace_xhci_dbg_cancel_urb)(void *, struct va_format *); -struct acpi_pci_routing_table { - u32 length; - u32 pin; - u64 address; - u32 source_index; - union { - char pad[4]; - struct { - struct {} __Empty_source; - char source[0]; - }; - }; -}; +typedef void (*btf_trace_xhci_dbg_init)(void *, struct va_format *); -struct acpi_pci_id { - u16 segment; - u16 bus; - u16 device; - u16 function; -}; +typedef void (*btf_trace_xhci_dbg_ring_expansion)(void *, struct va_format *); -struct acpi_prt_entry { - struct acpi_pci_id id; - u8 pin; - acpi_handle link; - u32 index; -}; +typedef void (*btf_trace_xhci_address_ctx)(void *, struct xhci_hcd *, struct xhci_container_ctx *, unsigned int); -struct acpi_predefined_names { - const char *name; - u8 type; - char *val; -}; +typedef void (*btf_trace_xhci_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); -typedef u32 acpi_name; +typedef void (*btf_trace_xhci_handle_command)(void *, struct xhci_ring *, struct xhci_generic_trb *); -enum acpi_video_level_idx { - ACPI_VIDEO_AC_LEVEL = 0, - ACPI_VIDEO_BATTERY_LEVEL = 1, - ACPI_VIDEO_FIRST_LEVEL = 2, -}; +typedef void (*btf_trace_xhci_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); -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; -}; +typedef void (*btf_trace_xhci_queue_trb)(void *, struct xhci_ring *, struct xhci_generic_trb *); -struct acpi_video_bus_flags { - u8 multihead: 1; - u8 rom: 1; - u8 post: 1; - u8 reserved: 5; -}; +typedef void (*btf_trace_xhci_dbc_handle_event)(void *, struct xhci_ring *, struct xhci_generic_trb *); -struct acpi_video_enumerated_device; +typedef void (*btf_trace_xhci_dbc_handle_transfer)(void *, struct xhci_ring *, struct xhci_generic_trb *); -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; -}; +typedef void (*btf_trace_xhci_dbc_gadget_ep_queue)(void *, struct xhci_ring *, struct xhci_generic_trb *); -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; -}; +typedef void (*btf_trace_xhci_free_virt_device)(void *, struct xhci_virt_device *); -struct acpi_video_device; +typedef void (*btf_trace_xhci_alloc_virt_device)(void *, struct xhci_virt_device *); -struct acpi_video_enumerated_device { - union { - u32 int_val; - struct acpi_video_device_attrib attrib; - } value; - struct acpi_video_device *bind_info; -}; +typedef void (*btf_trace_xhci_setup_device)(void *, struct xhci_virt_device *); -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; -}; +typedef void (*btf_trace_xhci_setup_addressable_virt_device)(void *, struct xhci_virt_device *); -struct acpi_video_device_cap { - u8 _ADR: 1; - u8 _BCL: 1; - u8 _BCM: 1; - u8 _BQC: 1; - u8 _BCQ: 1; - u8 _DDC: 1; -}; +typedef void (*btf_trace_xhci_stop_device)(void *, struct xhci_virt_device *); -struct acpi_video_device_brightness; +typedef void (*btf_trace_xhci_urb_enqueue)(void *, struct urb *); -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; -}; +typedef void (*btf_trace_xhci_urb_giveback)(void *, struct urb *); -struct acpi_video_brightness_flags { - u8 _BCL_no_ac_battery_levels: 1; - u8 _BCL_reversed: 1; - u8 _BQC_use_index: 1; -}; +typedef void (*btf_trace_xhci_urb_dequeue)(void *, struct urb *); -struct acpi_video_device_brightness { - int curr; - int count; - int *levels; - struct acpi_video_brightness_flags flags; -}; +typedef void (*btf_trace_xhci_handle_cmd_stop_ep)(void *, struct xhci_ep_ctx *); -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; -}; +typedef void (*btf_trace_xhci_handle_cmd_set_deq_ep)(void *, struct xhci_ep_ctx *); -struct drm_panel; +typedef void (*btf_trace_xhci_handle_cmd_reset_ep)(void *, struct xhci_ep_ctx *); -struct panel_bridge { - struct drm_bridge bridge; - struct drm_connector connector; - struct drm_panel *panel; - u32 connector_type; -}; +typedef void (*btf_trace_xhci_handle_cmd_config_ep)(void *, struct xhci_ep_ctx *); -struct drm_panel_funcs; +typedef void (*btf_trace_xhci_add_endpoint)(void *, struct xhci_ep_ctx *); -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; -}; +typedef void (*btf_trace_xhci_alloc_dev)(void *, struct xhci_slot_ctx *); -struct display_timing; +typedef void (*btf_trace_xhci_free_dev)(void *, struct xhci_slot_ctx *); -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 *); -}; +typedef void (*btf_trace_xhci_handle_cmd_disable_slot)(void *, struct xhci_slot_ctx *); -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, -}; +typedef void (*btf_trace_xhci_discover_or_reset_device)(void *, struct xhci_slot_ctx *); -typedef u32 gen6_pte_t; +typedef void (*btf_trace_xhci_setup_device_slot)(void *, struct xhci_slot_ctx *); -struct insert_entries { - struct i915_address_space *vm; - struct i915_vma_resource *vma_res; - unsigned int pat_index; - u32 flags; -}; +typedef void (*btf_trace_xhci_handle_cmd_addr_dev)(void *, struct xhci_slot_ctx *); -struct insert_page { - struct i915_address_space *vm; - dma_addr_t addr; - u64 offset; - unsigned int pat_index; -}; +typedef void (*btf_trace_xhci_handle_cmd_reset_dev)(void *, struct xhci_slot_ctx *); -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, -}; +typedef void (*btf_trace_xhci_handle_cmd_set_deq)(void *, struct xhci_slot_ctx *); -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, -}; +typedef void (*btf_trace_xhci_configure_endpoint)(void *, struct xhci_slot_ctx *); -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, -}; +typedef void (*btf_trace_xhci_address_ctrl_ctx)(void *, struct xhci_input_control_ctx *); -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, -}; +typedef void (*btf_trace_xhci_configure_endpoint_ctrl_ctx)(void *, struct xhci_input_control_ctx *); -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, -}; +typedef void (*btf_trace_xhci_ring_alloc)(void *, struct xhci_ring *); -struct intel_rps_freq_caps { - u8 rp0_freq; - u8 rp1_freq; - u8 min_freq; -}; +typedef void (*btf_trace_xhci_ring_free)(void *, struct xhci_ring *); -struct video_levels; +typedef void (*btf_trace_xhci_ring_expansion)(void *, struct xhci_ring *); -struct color_conversion; +typedef void (*btf_trace_xhci_inc_enq)(void *, struct xhci_ring *); -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; -}; +typedef void (*btf_trace_xhci_inc_deq)(void *, struct xhci_ring *); -struct video_levels { - u16 blank; - u16 black; - u8 burst; +typedef void (*btf_trace_xhci_handle_port_status)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_get_port_status)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_hub_status_data)(void *, struct xhci_port *, u32); + +typedef void (*btf_trace_xhci_ring_ep_doorbell)(void *, u32, u32); + +typedef void (*btf_trace_xhci_ring_host_doorbell)(void *, u32, u32); + +struct dbc_request; + +typedef void (*btf_trace_xhci_dbc_alloc_request)(void *, struct dbc_request *); + +struct xhci_dbc; + +struct dbc_request { + void *buf; + unsigned int length; + dma_addr_t dma; + void (*complete)(struct xhci_dbc *, struct dbc_request *); + struct list_head list_pool; + int status; + unsigned int actual; + struct xhci_dbc *dbc; + struct list_head list_pending; + dma_addr_t trb_dma; + union xhci_trb *trb; + unsigned int direction: 1; }; -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; +enum dbc_state { + DS_DISABLED = 0, + DS_INITIALIZED = 1, + DS_ENABLED = 2, + DS_CONNECTED = 3, + DS_CONFIGURED = 4, + DS_STALLED = 5, }; -struct input_res { - u16 w; - u16 h; +struct dbc_ep { + struct xhci_dbc *dbc; + struct list_head list_pending; + struct xhci_ring *ring; + unsigned int direction: 1; }; -struct intel_tv_connector_state { - struct drm_connector_state base; - struct { - u16 top; - u16 bottom; - } margins; - bool bypass_vfilter; +struct dbc_regs; + +struct dbc_str_descs; + +struct dbc_driver; + +struct xhci_dbc { + spinlock_t lock; + struct device *dev; + struct xhci_hcd *xhci; + struct dbc_regs *regs; + struct xhci_ring *ring_evt; + struct xhci_ring *ring_in; + struct xhci_ring *ring_out; + struct xhci_erst erst; + struct xhci_container_ctx *ctx; + struct dbc_str_descs *string; + dma_addr_t string_dma; + size_t string_size; + u16 idVendor; + u16 idProduct; + u16 bcdDevice; + u8 bInterfaceProtocol; + enum dbc_state state; + struct delayed_work event_work; + unsigned int resume_required: 1; + struct dbc_ep eps[2]; + const struct dbc_driver *driver; + void *priv; }; -struct intel_tv { - struct intel_encoder base; - int type; +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 container_dev { - struct device dev; - int (*offline)(struct container_dev *); +struct dbc_str_descs { + char string0[64]; + char manufacturer[64]; + char product[64]; + char serial[64]; }; -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 dbc_driver { + int (*configure)(struct xhci_dbc *); + void (*disconnect)(struct xhci_dbc *); }; -typedef struct scsi_cd Scsi_CD; +typedef void (*btf_trace_xhci_dbc_free_request)(void *, struct dbc_request *); -enum e1000_state_t___2 { - __E1000_TESTING___2 = 0, - __E1000_RESETTING___2 = 1, - __E1000_ACCESS_SHARED_RESOURCE = 2, - __E1000_DOWN___2 = 3, -}; +typedef void (*btf_trace_xhci_dbc_queue_request)(void *, struct dbc_request *); -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, -}; +typedef void (*btf_trace_xhci_dbc_giveback_request)(void *, struct dbc_request *); -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, +struct trace_event_raw_xhci_log_msg { + struct trace_entry ent; + u32 __data_loc_msg; + 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; +struct trace_event_raw_xhci_log_ctx { + struct trace_entry ent; + int ctx_64; + unsigned int ctx_type; + dma_addr_t ctx_dma; + u8 *ctx_va; + unsigned int ctx_ep_num; + u32 __data_loc_ctx_data; + char __data[0]; }; -struct ehci_driver_overrides { - size_t extra_priv_size; - int (*reset)(struct usb_hcd *); - int (*port_power)(struct usb_hcd *, int, bool); +struct trace_event_raw_xhci_log_trb { + struct trace_entry ent; + u32 type; + u32 field0; + u32 field1; + u32 field2; + u32 field3; + char __data[0]; }; -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, +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]; }; -enum ehci_rh_state { - EHCI_RH_HALTED = 0, - EHCI_RH_SUSPENDED = 1, - EHCI_RH_RUNNING = 2, - EHCI_RH_STOPPING = 3, +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 ehci_caps; - -struct ehci_regs; +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 ehci_dbg_port; +struct trace_event_raw_xhci_log_ep_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u64 deq; + u32 tx_info; + char __data[0]; +}; -struct ehci_qh; +struct trace_event_raw_xhci_log_slot_ctx { + struct trace_entry ent; + u32 info; + u32 info2; + u32 tt_info; + u32 state; + char __data[0]; +}; -union ehci_shadow; +struct trace_event_raw_xhci_log_ctrl_ctx { + struct trace_entry ent; + u32 drop; + u32 add; + char __data[0]; +}; -struct ehci_itd; +struct trace_event_raw_xhci_log_ring { + struct trace_entry ent; + u32 type; + void *ring; + dma_addr_t enq; + dma_addr_t deq; + dma_addr_t enq_seg; + dma_addr_t deq_seg; + unsigned int num_segs; + unsigned int stream_id; + unsigned int cycle_state; + unsigned int bounce_buf_len; + char __data[0]; +}; -struct ehci_sitd; +struct trace_event_raw_xhci_log_portsc { + struct trace_entry ent; + u32 busnum; + u32 portnum; + u32 portsc; + char __data[0]; +}; -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 trace_event_raw_xhci_log_doorbell { + struct trace_entry ent; + u32 slot; + u32 doorbell; + char __data[0]; }; -struct ehci_caps { - u32 hc_capbase; - u32 hcs_params; - u32 hcc_params; - u8 portroute[8]; +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 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 trace_event_data_offsets_xhci_log_msg { + u32 msg; }; -struct ehci_dbg_port { - u32 control; - u32 pids; - u32 data03; - u32 data47; - u32 address; +struct trace_event_data_offsets_xhci_log_ctx { + u32 ctx_data; }; -struct ehci_fstn; +struct trace_event_data_offsets_xhci_log_trb {}; -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 trace_event_data_offsets_xhci_log_free_virt_dev {}; -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 trace_event_data_offsets_xhci_log_virt_dev {}; -struct ehci_qh_hw; +struct trace_event_data_offsets_xhci_log_urb {}; -struct ehci_qtd; +struct trace_event_data_offsets_xhci_log_ep_ctx {}; -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 trace_event_data_offsets_xhci_log_slot_ctx {}; + +struct trace_event_data_offsets_xhci_log_ctrl_ctx {}; + +struct trace_event_data_offsets_xhci_log_ring {}; + +struct trace_event_data_offsets_xhci_log_portsc {}; + +struct trace_event_data_offsets_xhci_log_doorbell {}; + +struct trace_event_data_offsets_xhci_dbc_log_request {}; + +struct rtc_device; + +struct rtc_timer { + struct timerqueue_node node; + ktime_t period; + void (*func)(struct rtc_device *); + struct rtc_device *rtc; + int enabled; }; -struct ehci_qh_hw { - __le32 hw_next; - __le32 hw_info1; - __le32 hw_info2; - __le32 hw_current; - __le32 hw_qtd_next; - __le32 hw_alt_next; - __le32 hw_token; - __le32 hw_buf[5]; - __le32 hw_buf_hi[5]; - long: 64; - long: 64; - long: 64; +typedef __u64 timeu64_t; + +struct rtc_class_ops; + +struct rtc_device { + struct device dev; + struct module *owner; + int id; + const struct rtc_class_ops *ops; + struct mutex ops_lock; + struct cdev char_dev; + unsigned long flags; + unsigned long irq_data; + spinlock_t irq_lock; + wait_queue_head_t irq_queue; + struct fasync_struct *async_queue; + int irq_freq; + int max_user_freq; + struct timerqueue_head timerqueue; + struct rtc_timer aie_timer; + struct rtc_timer uie_rtctimer; + struct hrtimer pie_timer; + int pie_enabled; + struct work_struct irqwork; + unsigned long set_offset_nsec; + unsigned long features[1]; + time64_t range_min; + timeu64_t range_max; + timeu64_t alarm_offset_max; + time64_t start_secs; + time64_t offset_secs; + bool set_start_time; }; -struct ehci_iso_stream; +struct rtc_time; -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 rtc_wkalrm; + +struct rtc_param; + +struct rtc_class_ops { + int (*ioctl)(struct device *, unsigned int, unsigned long); + int (*read_time)(struct device *, struct rtc_time *); + int (*set_time)(struct device *, struct rtc_time *); + int (*read_alarm)(struct device *, struct rtc_wkalrm *); + int (*set_alarm)(struct device *, struct rtc_wkalrm *); + int (*proc)(struct device *, struct seq_file *); + int (*alarm_irq_enable)(struct device *, unsigned int); + int (*read_offset)(struct device *, long *); + int (*set_offset)(struct device *, long); + int (*param_get)(struct device *, struct rtc_param *); + int (*param_set)(struct device *, struct rtc_param *); }; -struct 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 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 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 rtc_wkalrm { + unsigned char enabled; + unsigned char pending; + struct rtc_time time; }; -struct ehci_fstn { - __le32 hw_next; - __le32 hw_prev; - dma_addr_t fstn_dma; - union ehci_shadow fstn_next; - long: 64; +struct rtc_param { + __u64 param; + union { + __u64 uvalue; + __s64 svalue; + __u64 ptr; + }; + __u32 index; + __u32 __pad; }; -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 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; }; -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; +enum power_supply_charge_behaviour { + POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0, + POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1, + POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2, }; -struct 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 sync { + DEFAULTSYNC = 0, + NOSYNC = 1, + FORCESYNC = 2, }; -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; +enum dm_io_mem_type { + DM_IO_PAGE_LIST = 0, + DM_IO_BIO = 1, + DM_IO_VMA = 2, + DM_IO_KMEM = 3, }; -struct firmware_map_entry; +struct page_list; -struct memmap_attribute { - struct attribute attr; - ssize_t (*show)(struct firmware_map_entry *, char *); +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; }; -struct firmware_map_entry { - u64 start; - u64 end; - const char *type; - struct list_head list; - struct kobject kobj; +typedef void (*io_notify_fn)(unsigned long, void *); + +struct dm_io_notify { + io_notify_fn fn; + void *context; }; -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 dm_io_client; + +struct dm_io_request { + blk_opf_t bi_opf; + struct dm_io_memory mem; + struct dm_io_notify notify; + struct dm_io_client *client; }; -struct channel_map_table { - unsigned char map; - int spk_mask; +struct log_header_core { + uint32_t magic; + uint32_t version; + uint64_t nr_regions; }; -struct hdac_cea_channel_speaker_allocation { - int ca_index; - int speakers[8]; - int channels; - int spk_mask; +struct dm_io_region { + struct block_device *bdev; + sector_t sector; + sector_t count; }; -struct hdac_chmap; +struct log_header_disk; -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 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 hdac_chmap { - unsigned int channels_max; - struct hdac_chmap_ops ops; - struct hdac_device *hdac; +struct page_list { + struct page_list *next; + struct page *page; }; -enum offload_act_command { - FLOW_ACT_REPLACE = 0, - FLOW_ACT_DESTROY = 1, - FLOW_ACT_STATS = 2, +struct log_header_disk { + __le32 magic; + __le32 version; + __le64 nr_regions; }; -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, +struct quirks_list_struct { + struct hid_device_id hid_bl_item; + struct list_head node; }; -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, +struct dev_type { + u16 idVendor; + u16 idProduct; + const short *ff; }; -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, +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 { - 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, + HDA_DEV_CORE = 0, + HDA_DEV_LEGACY = 1, + HDA_DEV_ASOC = 2, }; -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, +enum { + AC_GRP_AUDIO_FUNCTION = 1, + AC_GRP_MODEM_FUNCTION = 2, }; -enum flow_block_command { - FLOW_BLOCK_BIND = 0, - FLOW_BLOCK_UNBIND = 1, +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, }; -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, +struct tcf_walker { + int stop; + int skip; + int count; + bool nonempty; + unsigned long cookie; + int (*fn)(struct tcf_proto *, void *, struct tcf_walker *); }; -enum pedit_cmd { - TCA_PEDIT_KEY_EX_CMD_SET = 0, - TCA_PEDIT_KEY_EX_CMD_ADD = 1, - __PEDIT_CMD_MAX = 2, +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; }; -enum { - TCA_ROOT_UNSPEC = 0, - TCA_ROOT_TAB = 1, - TCA_ROOT_FLAGS = 2, - TCA_ROOT_COUNT = 3, - TCA_ROOT_TIME_DELTA = 4, - TCA_ROOT_EXT_WARN_MSG = 5, - __TCA_ROOT_MAX = 6, +struct tcf_t { + __u64 install; + __u64 lastuse; + __u64 expires; + __u64 firstuse; }; -struct tc_act_pernet_id { - struct list_head list; - unsigned int id; +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; }; -struct tc_pedit_key; +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, +}; -struct tcf_pedit_key_ex; +typedef void (*tc_action_priv_destructor)(void *); -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 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; }; -struct tc_pedit_key { - __u32 mask; - __u32 val; - __u32 off; - __u32 at; - __u32 offmask; - __u32 shift; +enum tc_mq_command { + TC_MQ_CREATE = 0, + TC_MQ_DESTROY = 1, + TC_MQ_STATS = 2, + TC_MQ_GRAFT = 3, }; -struct tcf_pedit_key_ex { - enum pedit_header_type htype; - enum pedit_cmd cmd; +struct tc_qopt_offload_stats { + struct gnet_stats_basic_sync *bstats; + struct gnet_stats_queue *qstats; }; -struct tcf_pedit { - struct tc_action common; - struct tcf_pedit_parms __attribute__((btf_type_tag("rcu"))) *parms; - long: 64; +struct tc_mq_opt_offload_graft_params { + unsigned long queue; + u32 child_handle; }; -struct tcamsg { - unsigned char tca_family; - unsigned char tca__pad1; - unsigned short tca__pad2; +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 flow_stats { - u64 pkts; - u64 bytes; - u64 drops; - u64 lastused; - enum flow_action_hw_stats used_hw_stats; - bool used_hw_stats_valid; +struct mq_sched { + struct Qdisc **qdiscs; }; -typedef void (*action_destr)(void *); +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, +}; -struct nf_flowtable; +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, +}; -struct action_gate_entry; +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, +}; -struct flow_action_cookie; +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, +}; -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_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_action_cookie { - u32 cookie_len; - u8 cookie[0]; +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, }; -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 *); +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, }; -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; +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, }; -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; +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, }; -struct nla_bitfield32 { - __u32 value; - __u32 selector; +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, }; -struct tc_action_net { - struct tcf_idrinfo *idrinfo; - const struct tc_action_ops *ops; +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_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_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_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_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_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, + ETHTOOL_A_CABLE_PAIR_A = 0, + ETHTOOL_A_CABLE_PAIR_B = 1, + ETHTOOL_A_CABLE_PAIR_C = 2, + ETHTOOL_A_CABLE_PAIR_D = 3, }; -struct pse_control_status { - enum ethtool_podl_pse_admin_state podl_admin_state; - enum ethtool_podl_pse_pw_d_status podl_pw_status; +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, }; -struct pse_reply_data { - struct ethnl_reply_data base; - struct pse_control_status status; +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 pse_control_config { - enum ethtool_podl_pse_admin_state admin_cotrol; +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 xt_af { - struct mutex mutex; - struct list_head match; - struct list_head target; +struct xt_secmark_target_info_v1 { + __u8 mode; + char secctx[256]; + __u32 secid; }; -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, +struct xt_secmark_target_info { + __u8 mode; + __u32 secid; + char secctx[256]; }; enum { - MTTG_TRAV_INIT = 0, - MTTG_TRAV_NFP_UNSPEC = 1, - MTTG_TRAV_NFP_SPEC = 2, - MTTG_TRAV_DONE = 3, -}; - -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]; + UDP_FLAGS_CORK = 0, + UDP_FLAGS_NO_CHECK6_TX = 1, + UDP_FLAGS_NO_CHECK6_RX = 2, + UDP_FLAGS_GRO_ENABLED = 3, + UDP_FLAGS_ACCEPT_FRAGLIST = 4, + UDP_FLAGS_ACCEPT_L4 = 5, + UDP_FLAGS_ENCAP_ENABLED = 6, + UDP_FLAGS_UDPLITE_SEND_CC = 7, + UDP_FLAGS_UDPLITE_RECV_CC = 8, }; -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 udp_sock { + struct inet_sock inet; + unsigned long udp_flags; + int pending; + __u8 encap_type; + __u16 len; + __u16 gso_size; + __u16 pcslen; + __u16 pcrlen; + int (*encap_rcv)(struct sock *, struct sk_buff *); + void (*encap_err_rcv)(struct sock *, struct sk_buff *, int, __be16, u32, u8 *); + int (*encap_err_lookup)(struct sock *, struct sk_buff *); + void (*encap_destroy)(struct sock *); + struct sk_buff * (*gro_receive)(struct sock *, struct list_head *, struct sk_buff *); + int (*gro_complete)(struct sock *, struct sk_buff *, int); + long: 64; + 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 nf_mttg_trav { - struct list_head *head; - struct list_head *curr; - uint8_t class; -}; +typedef struct sk_buff * (*gro_receive_t)(struct list_head *, struct sk_buff *); -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]; -}; +typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); -struct xt_error_target { - struct xt_entry_target target; - char errorname[30]; -}; +typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); -struct xt_standard_target { - struct xt_entry_target target; - int verdict; +struct mfc_cache_cmp_arg { + __be32 mfc_mcastgrp; + __be32 mfc_origin; }; -struct xt_counters_info { - char name[32]; - unsigned int num_counters; - struct xt_counters counters[0]; +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, }; -struct xt_pernet { - struct list_head tables[11]; +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, }; -struct xt_percpu_counter_alloc_state { - unsigned int off; - const char __attribute__((btf_type_tag("percpu"))) *mem; +enum { + MFC_STATIC = 1, + MFC_OFFLOAD = 2, }; -struct icmp_err { - int errno; - unsigned int fatal: 1; +enum { + PIM_TYPE_HELLO = 0, + PIM_TYPE_REGISTER = 1, + PIM_TYPE_REGISTER_STOP = 2, + PIM_TYPE_JOIN_PRUNE = 3, + PIM_TYPE_BOOTSTRAP = 4, + PIM_TYPE_ASSERT = 5, + PIM_TYPE_GRAFT = 6, + PIM_TYPE_GRAFT_ACK = 7, + PIM_TYPE_CANDIDATE_RP_ADV = 8, }; -struct icmp_control { - enum skb_drop_reason (*handler)(struct sk_buff *); - short error; +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 { - 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, + IPMRA_VIF_UNSPEC = 0, + IPMRA_VIF = 1, + __IPMRA_VIF_MAX = 2, }; enum { - XFRM_LOOKUP_ICMP = 1, - XFRM_LOOKUP_QUEUE = 2, - XFRM_LOOKUP_KEEP_DST_REF = 4, + 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, }; -struct ip_options_data { - struct ip_options_rcu opt; - char data[40]; +struct icmp_filter { + __u32 data; }; -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 raw_sock { + struct inet_sock inet; + struct icmp_filter filter; + u32 ipmr_table; }; -struct icmp_extobj_hdr { - __be16 length; - __u8 class_num; - __u8 class_type; +typedef unsigned short vifi_t; + +struct sioc_vif_req { + vifi_t vifi; + unsigned long icount; + unsigned long ocount; + unsigned long ibytes; + unsigned long obytes; }; -struct icmp_ext_hdr { - __u8 reserved1: 4; - __u8 version: 4; - __u8 reserved2; - __sum16 checksum; +struct sioc_sg_req { + struct in_addr src; + struct in_addr grp; + unsigned long pktcnt; + unsigned long bytecnt; + unsigned long wrong_if; }; -struct icmp_ext_echo_ctype3_hdr { - __be16 afi; - __u8 addrlen; - __u8 reserved; +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 icmp_ext_echo_iio { - struct icmp_extobj_hdr extobj_hdr; +struct mr_mfc { + struct rhlist_head mnode; + unsigned short mfc_parent; + int mfc_flags; 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; + 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 cipso_v4_map_cache_bkt { - spinlock_t lock; - u32 size; - struct list_head list; +struct mfc_cache { + struct mr_mfc _c; + union { + struct { + __be32 mfc_mcastgrp; + __be32 mfc_origin; + }; + struct mfc_cache_cmp_arg cmparg; + }; }; -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 pimreghdr { + __u8 type; + __u8 reserved; + __be16 csum; + __be32 flags; }; -struct cipso_v4_std_map_tbl; +struct rtnexthop { + unsigned short rtnh_len; + unsigned char rtnh_flags; + unsigned char rtnh_hops; + int rtnh_ifindex; +}; -struct cipso_v4_doi { - u32 doi; - u32 type; +struct vifctl { + vifi_t vifc_vifi; + unsigned char vifc_flags; + unsigned char vifc_threshold; + unsigned int vifc_rate_limit; union { - struct cipso_v4_std_map_tbl *std; - } map; - u8 tags[5]; - refcount_t refcount; - struct list_head list; - struct callback_head rcu; + struct in_addr vifc_lcl_addr; + int vifc_lcl_ifindex; + }; + struct in_addr vifc_rmt_addr; }; -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 vif_entry_notifier_info { + struct fib_notifier_info info; + struct net_device *dev; + unsigned short vif_index; + unsigned short vif_flags; + u32 tb_id; }; -typedef struct sock * (*udp_lookup_t)(const struct sk_buff *, __be16, __be16); - -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 mfc_entry_notifier_info { + struct fib_notifier_info info; + struct mr_mfc *mfc; + u32 tb_id; }; -enum ieee80211_back_parties { - WLAN_BACK_RECIPIENT = 0, - WLAN_BACK_INITIATOR = 1, +struct nlmsgerr { + int error; + struct nlmsghdr msg; }; -enum ieee80211_back_actioncode { - WLAN_ACTION_ADDBA_REQ = 0, - WLAN_ACTION_ADDBA_RESP = 1, - WLAN_ACTION_DELBA = 2, +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; }; -typedef long (*sys_call_ptr_t)(const struct pt_regs *); - -struct swsusp_header { - char reserved[4056]; - u32 hw_sig; - u32 crc32; - sector_t image; +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; - char orig_sig[10]; - char sig[10]; + struct net_device *dev; }; -struct swsusp_extent { - struct rb_node node; - unsigned long start; - unsigned long end; +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 swap_map_page { - sector_t entries[511]; - sector_t next_swap; +struct mr_vif_iter { + struct seq_net_private p; + struct mr_table *mrt; + int ct; }; -struct swap_map_page_list; +struct mr_mfc_iter { + struct seq_net_private p; + struct mr_table *mrt; + struct list_head *cache; + spinlock_t *lock; +}; -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 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 swap_map_page_list { - struct swap_map_page *map; - struct swap_map_page_list *next; +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 hib_bio_batch { - atomic_t count; - wait_queue_head_t wait; - blk_status_t error; - struct blk_plug plug; +enum fib6_walk_state { + FWS_S = 0, + FWS_L = 1, + FWS_R = 2, + FWS_C = 3, + FWS_U = 4, }; -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]; +enum { + FIB6_NO_SERNUM_CHANGE = 0, }; -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 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 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 fib6_cleaner { + struct fib6_walker w; + struct net *net; + int (*func)(struct fib6_info *, void *); + int sernum; + void *arg; + bool skip_notify; }; -struct stacktrace_cookie { - unsigned long *store; - unsigned int size; - unsigned int skip; - unsigned int len; +struct fib6_dump_arg { + struct net *net; + struct notifier_block *nb; + struct netlink_ext_ack *extack; }; -enum bpf_jit_poke_reason { - BPF_POKE_REASON_TAIL_CALL = 0, +struct fib6_entry_notifier_info { + struct fib_notifier_info info; + struct fib6_info *rt; + unsigned int nsiblings; }; -struct prog_poke_elem { - struct list_head list; - struct bpf_prog_aux *aux; +struct nl_info { + struct nlmsghdr *nlh; + struct net *nl_net; + u32 portid; + u8 skip_notify: 1; + u8 skip_notify_kernel: 1; }; -struct bpf_event_entry { - struct perf_event *event; - struct file *perf_file; - struct file *map_file; - struct callback_head rcu; +struct fib6_gc_args { + int timeout; + int more; }; -struct bpf_iter__bpf_map_elem { +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 bpf_map *map; - }; - union { - void *key; - }; - union { - void *value; + struct fib6_info *rt; }; }; -struct bpf_iter_seq_array_map_info { - struct bpf_map *map; - void *percpu_value_buf; - u32 index; +struct fib6_nh_pcpu_arg { + struct fib6_info *from; + const struct fib6_table *table; }; -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); +struct lookup_args { + int offset; + const struct in6_addr *addr; +}; -typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int); +struct rt6_rtnl_dump_arg { + struct sk_buff *skb; + struct netlink_callback *cb; + struct net *net; + struct fib_dump_filter filter; +}; -typedef void (*btf_trace_set_migration_pte)(void *, unsigned long, unsigned long, int); +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, +}; -typedef void (*btf_trace_remove_migration_pte)(void *, unsigned long, unsigned long, int); +struct ip6_tnl; -enum ttu_flags { - TTU_SPLIT_HUGE_PMD = 4, - TTU_IGNORE_MLOCK = 8, - TTU_SYNC = 16, - TTU_HWPOISON = 32, - TTU_BATCH_FLUSH = 64, - TTU_RMAP_LOCKED = 128, +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; }; -typedef int rmap_t; +struct xfrm_spi_skb_cb { + struct xfrm_tunnel_skb_cb header; + unsigned int daddroff; + unsigned int family; + __be32 seq; +}; -struct trace_event_raw_tlb_flush { - struct trace_entry ent; - int reason; - unsigned long pages; - char __data[0]; +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 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]; +typedef __be32 rpc_fraghdr; + +struct xdr_skb_reader { + struct sk_buff *skb; + unsigned int offset; + size_t count; + __wsum csum; }; -struct trace_event_raw_mm_migrate_pages_start { - struct trace_entry ent; - enum migrate_mode mode; - int reason; - char __data[0]; +typedef size_t (*xdr_skb_read_actor)(struct xdr_skb_reader *, void *, size_t); + +enum { + XPT_BUSY = 0, + XPT_CONN = 1, + XPT_CLOSE = 2, + XPT_DATA = 3, + XPT_TEMP = 4, + XPT_DEAD = 5, + XPT_CHNGBUF = 6, + XPT_DEFERRED = 7, + XPT_OLD = 8, + XPT_LISTENER = 9, + XPT_CACHE_AUTH = 10, + XPT_LOCAL = 11, + XPT_KILL_TEMP = 12, + XPT_CONG_CTRL = 13, + XPT_HANDSHAKE = 14, + XPT_TLS_SESSION = 15, + XPT_PEER_AUTH = 16, }; -struct trace_event_raw_migration_pte { - struct trace_entry ent; - unsigned long addr; - unsigned long pte; - int order; - char __data[0]; +enum { + SP_TASK_PENDING = 0, + SP_NEED_VICTIM = 1, + SP_VICTIM_REMAINS = 2, }; -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 svc_xpt_user { + struct list_head list; + void (*callback)(struct svc_xpt_user *); }; -struct trace_event_data_offsets_tlb_flush {}; +struct ieee80211_bar { + __le16 frame_control; + __le16 duration; + __u8 ra[6]; + __u8 ta[6]; + __le16 control; + __le16 start_seq_num; +}; -struct trace_event_data_offsets_mm_migrate_pages {}; +enum { + TLS_RECORD_TYPE_CHANGE_CIPHER_SPEC = 20, + TLS_RECORD_TYPE_ALERT = 21, + TLS_RECORD_TYPE_HANDSHAKE = 22, + TLS_RECORD_TYPE_DATA = 23, + TLS_RECORD_TYPE_HEARTBEAT = 24, + TLS_RECORD_TYPE_TLS12_CID = 25, + TLS_RECORD_TYPE_ACK = 26, +}; -struct trace_event_data_offsets_mm_migrate_pages_start {}; +struct equiv_cpu_entry; -struct trace_event_data_offsets_migration_pte {}; +struct equiv_cpu_table { + unsigned int num_entries; + struct equiv_cpu_entry *entry; +}; -struct folio_referenced_arg { - int mapcount; - int referenced; - unsigned long vm_flags; - struct mem_cgroup *memcg; +struct equiv_cpu_entry { + u32 installed_cpu; + u32 fixed_errata_mask; + u32 fixed_errata_compare; + u16 equiv_cpu; + u16 res; }; -struct bh_lru { - struct buffer_head *bhs[16]; +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 bh_accounting { - int nr; - int ratelimit; +struct microcode_amd { + struct microcode_header_amd hdr; + unsigned int mpb[0]; }; -struct postprocess_bh_ctx { - struct work_struct work; - struct buffer_head *bh; +struct ucode_patch { + struct list_head plist; + void *data; + unsigned int size; + u32 patch_id; + u16 equiv_cpu; }; -struct kernfs_global_locks { - struct mutex open_file_mutex[1024]; +struct cont_desc { + struct microcode_amd *mc; + u32 cpuid_1_eax; + u32 psize; + u8 *data; + size_t size; }; -struct kernfs_super_info { - struct super_block *sb; - struct kernfs_root *root; - const void *ns; - struct list_head node; +struct apic_override { + void (*eoi)(); + void (*native_eoi)(); + void (*write)(u32, u32); + u32 (*read)(u32); + void (*send_IPI)(int, int); + void (*send_IPI_mask)(const struct cpumask *, int); + void (*send_IPI_mask_allbutself)(const struct cpumask *, int); + void (*send_IPI_allbutself)(int); + void (*send_IPI_all)(int); + void (*send_IPI_self)(int); + u64 (*icr_read)(); + void (*icr_write)(u32, u32); + int (*wakeup_secondary_cpu)(u32, unsigned long); + int (*wakeup_secondary_cpu_64)(u32, unsigned long); }; -struct kernfs_root { - struct kernfs_node *kn; - unsigned int flags; - struct idr ino_idr; - u32 last_id_lowbits; - u32 id_highbits; - struct kernfs_syscall_ops *syscall_ops; - struct list_head supers; - wait_queue_head_t deactivate_waitq; - struct rw_semaphore kernfs_rwsem; - struct rw_semaphore kernfs_iattr_rwsem; - struct rw_semaphore kernfs_supers_rwsem; +struct amd_nb_bus_dev_range { + u8 bus; + u8 dev_base; + u8 dev_limit; }; -struct kernfs_iattrs { - kuid_t ia_uid; - kgid_t ia_gid; - struct timespec64 ia_atime; - struct timespec64 ia_mtime; - struct timespec64 ia_ctime; - struct simple_xattrs xattrs; - atomic_t nr_user_xattrs; - atomic_t user_xattr_size; +struct amd_northbridge; + +struct amd_northbridge_info { + u16 num; + u64 flags; + struct amd_northbridge *nb; }; -typedef unsigned short __kernel_uid16_t; +struct amd_l3_cache { + unsigned int indices; + u8 subcaches[4]; +}; -typedef __kernel_uid16_t uid16_t; +struct threshold_bank; -typedef unsigned short __kernel_gid16_t; +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; +}; -typedef __kernel_gid16_t gid16_t; +struct threshold_block; -struct ext4_xattr_inode_array { - unsigned int count; - struct inode *inodes[0]; +struct threshold_bank { + struct kobject *kobj; + struct threshold_block *blocks; + refcount_t cpus; + unsigned int shared; }; -struct ext4_io_end; - -typedef struct ext4_io_end ext4_io_end_t; +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 ext4_io_submit { - struct writeback_control *io_wbc; - struct bio *io_bio; - ext4_io_end_t *io_end; - sector_t io_next_block; +struct core_text { + unsigned long base; + unsigned long end; + const char *name; }; -struct mpage_da_data { - struct inode *inode; - struct writeback_control *wbc; - unsigned int can_map: 1; - unsigned long first_page; - unsigned long next_page; - unsigned long last_page; - struct ext4_map_blocks map; - struct ext4_io_submit io_submit; - unsigned int do_map: 1; - unsigned int scanned_until_end: 1; - unsigned int journalled_more_data: 1; +struct paravirt_patch_site { + u8 *instr; + u8 type; + u8 len; }; -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; +struct callthunk_sites { + s32 *call_start; + s32 *call_end; + struct paravirt_patch_site *pv_start; + struct paravirt_patch_site *pv_end; }; -struct ext4_io_end_vec { - struct list_head list; - loff_t offset; - ssize_t size; +struct user_event_mm { + struct list_head mms_link; + struct list_head enablers; + struct mm_struct *mm; + struct user_event_mm *next; + refcount_t refcnt; + refcount_t tasks; + struct rcu_work put_rwork; }; -struct nfs3_getaclargs { - struct nfs_fh *fh; - int mask; - struct page **pages; +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 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 waitid_info { + pid_t pid; + uid_t uid; + int status; + int cause; }; -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; +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, }; -struct crypto_rng; +typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *); -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; -}; +typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int); -struct crypto_rng { - struct crypto_tfm base; -}; +typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); -enum blk_default_limits { - BLK_MAX_SEGMENTS = 128, - BLK_SAFE_MAX_SECTORS = 255, - BLK_MAX_SEGMENT_SIZE = 65536, - BLK_SEG_BOUNDARY_MASK = 4294967295, -}; +typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *); -typedef void (*btf_trace_io_uring_create)(void *, int, void *, u32, u32, u32); +typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t); -typedef void (*btf_trace_io_uring_register)(void *, void *, unsigned int, unsigned int, unsigned int, long); +typedef void (*btf_trace_sched_waking)(void *, struct task_struct *); -typedef void (*btf_trace_io_uring_file_get)(void *, struct io_kiocb *, int); +typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *); -typedef void (*btf_trace_io_uring_queue_async_work)(void *, struct io_kiocb *, int); +typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *); -typedef void (*btf_trace_io_uring_defer)(void *, struct io_kiocb *); +typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int); -typedef void (*btf_trace_io_uring_link)(void *, struct io_kiocb *, struct io_kiocb *); +typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int); -typedef void (*btf_trace_io_uring_cqring_wait)(void *, void *, int); +typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *); -typedef void (*btf_trace_io_uring_fail_link)(void *, struct io_kiocb *, struct io_kiocb *); +typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *); -typedef void (*btf_trace_io_uring_complete)(void *, void *, void *, u64, int, unsigned int, u64, u64); +typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *); -typedef void (*btf_trace_io_uring_submit_req)(void *, struct io_kiocb *); +typedef void (*btf_trace_sched_process_wait)(void *, struct pid *); -typedef void (*btf_trace_io_uring_poll_arm)(void *, struct io_kiocb *, int, int); +typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *); -typedef void (*btf_trace_io_uring_task_add)(void *, struct io_kiocb *, int); +typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *); -typedef void (*btf_trace_io_uring_req_failed)(void *, const struct io_uring_sqe *, struct io_kiocb *, int); +typedef void (*btf_trace_sched_stat_wait)(void *, struct task_struct *, u64); -typedef void (*btf_trace_io_uring_cqe_overflow)(void *, void *, unsigned long long, s32, u32, void *); +typedef void (*btf_trace_sched_stat_sleep)(void *, struct task_struct *, u64); -typedef void (*btf_trace_io_uring_task_work_run)(void *, void *, unsigned int, unsigned int); +typedef void (*btf_trace_sched_stat_iowait)(void *, struct task_struct *, u64); -typedef void (*btf_trace_io_uring_short_write)(void *, void *, u64, u64, u64); +typedef void (*btf_trace_sched_stat_blocked)(void *, struct task_struct *, u64); -typedef void (*btf_trace_io_uring_local_work_run)(void *, void *, int, unsigned int); +typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64, u64); -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, +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); + +typedef void (*btf_trace_sched_compute_energy_tp)(void *, struct task_struct *, int, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *); + +typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, unsigned long, void *); + +typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, unsigned long, void *); + +typedef void (*btf_trace_ipi_entry)(void *, const char *); + +typedef void (*btf_trace_ipi_exit)(void *, const char *); + +struct kernel_cpustat { + u64 cpustat[10]; }; -enum { - IO_CHECK_CQ_OVERFLOW_BIT = 0, - IO_CHECK_CQ_DROPPED_BIT = 1, +enum ctx_state { + CONTEXT_DISABLED = -1, + CONTEXT_KERNEL = 0, + CONTEXT_IDLE = 1, + CONTEXT_USER = 2, + CONTEXT_GUEST = 3, + CONTEXT_MAX = 4, }; enum { - IO_APOLL_OK = 0, - IO_APOLL_ABORTED = 1, - IO_APOLL_READY = 2, + preempt_dynamic_undefined = -1, + preempt_dynamic_none = 0, + preempt_dynamic_voluntary = 1, + preempt_dynamic_full = 2, }; -enum { - IO_EVENTFD_OP_SIGNAL_BIT = 0, - IO_EVENTFD_OP_FREE_BIT = 1, +enum rseq_event_mask_bits { + RSEQ_EVENT_PREEMPT_BIT = 0, + RSEQ_EVENT_SIGNAL_BIT = 1, + RSEQ_EVENT_MIGRATE_BIT = 2, }; 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, + cpuset = 0, + possible = 1, + fail = 2, }; 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, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_READY = 1, + MEMBARRIER_STATE_PRIVATE_EXPEDITED = 2, + MEMBARRIER_STATE_GLOBAL_EXPEDITED_READY = 4, + MEMBARRIER_STATE_GLOBAL_EXPEDITED = 8, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE_READY = 16, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_SYNC_CORE = 32, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ_READY = 64, + MEMBARRIER_STATE_PRIVATE_EXPEDITED_RSEQ = 128, }; -enum io_wq_cancel { - IO_WQ_CANCEL_OK = 0, - IO_WQ_CANCEL_RUNNING = 1, - IO_WQ_CANCEL_NOTFOUND = 2, +enum mm_cid_state { + MM_CID_UNSET = 4294967295, + MM_CID_LAZY_PUT = 2147483648, }; -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, +union cpumask_rcuhead { + cpumask_t cpumask; + struct callback_head rcu; }; -enum { - IORING_RSRC_FILE = 0, - IORING_RSRC_BUFFER = 1, +struct trace_event_raw_sched_kthread_stop { + struct trace_entry ent; + char comm[16]; + pid_t pid; + char __data[0]; }; -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_sched_kthread_stop_ret { + struct trace_entry ent; + int ret; + char __data[0]; }; -struct trace_event_raw_io_uring_create { +struct trace_event_raw_sched_kthread_work_queue_work { struct trace_entry ent; - int fd; - void *ctx; - u32 sq_entries; - u32 cq_entries; - u32 flags; + void *work; + void *function; + void *worker; char __data[0]; }; -struct trace_event_raw_io_uring_register { +struct trace_event_raw_sched_kthread_work_execute_start { struct trace_entry ent; - void *ctx; - unsigned int opcode; - unsigned int nr_files; - unsigned int nr_bufs; - long ret; + void *work; + void *function; char __data[0]; }; -struct trace_event_raw_io_uring_file_get { +struct trace_event_raw_sched_kthread_work_execute_end { struct trace_entry ent; - void *ctx; - void *req; - u64 user_data; - int fd; + void *work; + void *function; char __data[0]; }; -struct trace_event_raw_io_uring_queue_async_work { +struct trace_event_raw_sched_wakeup_template { 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 comm[16]; + pid_t pid; + int prio; + int target_cpu; char __data[0]; }; -struct trace_event_raw_io_uring_defer { +struct trace_event_raw_sched_switch { struct trace_entry ent; - void *ctx; - void *req; - unsigned long long data; - u8 opcode; - u32 __data_loc_op_str; + 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_io_uring_link { +struct trace_event_raw_sched_migrate_task { struct trace_entry ent; - void *ctx; - void *req; - void *target_req; + char comm[16]; + pid_t pid; + int prio; + int orig_cpu; + int dest_cpu; char __data[0]; }; -struct trace_event_raw_io_uring_cqring_wait { +struct trace_event_raw_sched_process_template { struct trace_entry ent; - void *ctx; - int min_events; + char comm[16]; + pid_t pid; + int prio; char __data[0]; }; -struct trace_event_raw_io_uring_fail_link { +struct trace_event_raw_sched_process_wait { struct trace_entry ent; - void *ctx; - void *req; - unsigned long long user_data; - u8 opcode; - void *link; - u32 __data_loc_op_str; + char comm[16]; + pid_t pid; + int prio; char __data[0]; }; -struct trace_event_raw_io_uring_complete { +struct trace_event_raw_sched_process_fork { struct trace_entry ent; - void *ctx; - void *req; - u64 user_data; - int res; - unsigned int cflags; - u64 extra1; - u64 extra2; + char parent_comm[16]; + pid_t parent_pid; + char child_comm[16]; + pid_t child_pid; char __data[0]; }; -struct trace_event_raw_io_uring_submit_req { +struct trace_event_raw_sched_process_exec { struct trace_entry ent; - void *ctx; - void *req; - unsigned long long user_data; - u8 opcode; - u32 flags; - bool sq_thread; - u32 __data_loc_op_str; + u32 __data_loc_filename; + pid_t pid; + pid_t old_pid; char __data[0]; }; -struct trace_event_raw_io_uring_poll_arm { +struct trace_event_raw_sched_stat_template { 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 comm[16]; + pid_t pid; + u64 delay; char __data[0]; }; -struct trace_event_raw_io_uring_task_add { +struct trace_event_raw_sched_stat_runtime { struct trace_entry ent; - void *ctx; - void *req; - unsigned long long user_data; - u8 opcode; - int mask; - u32 __data_loc_op_str; + char comm[16]; + pid_t pid; + u64 runtime; + u64 vruntime; char __data[0]; }; -struct trace_event_raw_io_uring_req_failed { +struct trace_event_raw_sched_pi_setprio { 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 comm[16]; + pid_t pid; + int oldprio; + int newprio; char __data[0]; }; -struct trace_event_raw_io_uring_cqe_overflow { +struct trace_event_raw_sched_move_numa { struct trace_entry ent; - void *ctx; - unsigned long long user_data; - s32 res; - u32 cflags; - void *ocqe; + 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_io_uring_task_work_run { +struct trace_event_raw_sched_numa_pair_template { struct trace_entry ent; - void *tctx; - unsigned int count; - unsigned int loops; + 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_io_uring_short_write { +struct trace_event_raw_sched_wake_idle_without_ipi { struct trace_entry ent; - void *ctx; - u64 fpos; - u64 wanted; - u64 got; + int cpu; char __data[0]; }; -struct trace_event_raw_io_uring_local_work_run { +struct trace_event_raw_ipi_raise { struct trace_entry ent; - void *ctx; - int count; - unsigned int loops; + u32 __data_loc_target_cpus; + const char *reason; char __data[0]; }; -struct io_defer_entry { - struct list_head list; - struct io_kiocb *req; - u32 seq; +struct trace_event_raw_ipi_send_cpu { + struct trace_entry ent; + unsigned int cpu; + void *callsite; + void *callback; + char __data[0]; }; -struct io_overflow_cqe { - struct list_head list; - struct io_uring_cqe cqe; +struct trace_event_raw_ipi_send_cpumask { + struct trace_entry ent; + u32 __data_loc_cpumask; + void *callsite; + void *callback; + char __data[0]; }; -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 trace_event_raw_ipi_handler { + struct trace_entry ent; + const char *reason; + char __data[0]; }; -struct io_tctx_exit { - struct callback_head task_work; - struct completion completion; - struct io_ring_ctx *ctx; +struct sched_param { + int sched_priority; }; -struct io_sqring_offsets { - __u32 head; - __u32 tail; - __u32 ring_mask; - __u32 ring_entries; - __u32 flags; - __u32 dropped; - __u32 array; - __u32 resv1; - __u64 user_addr; +struct sched_attr { + __u32 size; + __u32 sched_policy; + __u64 sched_flags; + __s32 sched_nice; + __u32 sched_priority; + __u64 sched_runtime; + __u64 sched_deadline; + __u64 sched_period; + __u32 sched_util_min; + __u32 sched_util_max; }; -struct io_cqring_offsets { - __u32 head; - __u32 tail; - __u32 ring_mask; - __u32 ring_entries; - __u32 overflow; - __u32 cqes; - __u32 flags; - __u32 resv1; - __u64 user_addr; +struct trace_event_data_offsets_sched_process_exec { + u32 filename; }; -struct io_uring_params { - __u32 sq_entries; - __u32 cq_entries; - __u32 flags; - __u32 sq_thread_cpu; - __u32 sq_thread_idle; - __u32 features; - __u32 wq_fd; - __u32 resv[3]; - struct io_sqring_offsets sq_off; - struct io_cqring_offsets cq_off; +struct trace_event_data_offsets_ipi_raise { + u32 target_cpus; }; -struct trace_event_data_offsets_io_uring_queue_async_work { - u32 op_str; +struct trace_event_data_offsets_ipi_send_cpumask { + u32 cpumask; }; -struct trace_event_data_offsets_io_uring_defer { - u32 op_str; -}; +typedef struct { + void *lock; +} class_rcu_t; -struct trace_event_data_offsets_io_uring_fail_link { - u32 op_str; -}; +typedef struct { + raw_spinlock_t *lock; +} class_raw_spinlock_irq_t; -struct trace_event_data_offsets_io_uring_submit_req { - u32 op_str; -}; +typedef struct { + void *lock; +} class_preempt_t; -struct trace_event_data_offsets_io_uring_poll_arm { - u32 op_str; -}; +typedef struct { + struct rq *lock; + struct rq_flags rf; +} class_rq_lock_irqsave_t; -struct trace_event_data_offsets_io_uring_task_add { - u32 op_str; +typedef struct { + raw_spinlock_t *lock; + unsigned long flags; +} class_raw_spinlock_irqsave_t; + +typedef struct { + struct task_struct *lock; + struct rq *rq; + struct rq_flags rf; +} class_task_rq_lock_t; + +typedef struct task_struct *class_find_get_task_t; + +typedef struct { + void *lock; + unsigned long flags; +} class_irqsave_t; + +typedef struct { + struct rq *lock; + struct rq *lock2; +} class_double_rq_lock_t; + +struct sched_domain_attr { + int relax_domain_level; }; -struct trace_event_data_offsets_io_uring_req_failed { - u32 op_str; +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; }; -typedef bool work_cancel_fn(struct io_wq_work *, void *); +struct set_affinity_pending; -struct io_uring_getevents_arg { - __u64 sigmask; - __u32 sigmask_sz; - __u32 pad; - __u64 ts; +struct migration_arg { + struct task_struct *task; + int dest_cpu; + struct set_affinity_pending *pending; }; -struct io_uring_file_index_range { - __u32 off; - __u32 len; - __u64 resv; +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 creds; +struct trace_event_data_offsets_sched_kthread_stop {}; -struct trace_event_data_offsets_io_uring_create {}; +struct trace_event_data_offsets_sched_kthread_stop_ret {}; -struct trace_event_data_offsets_io_uring_register {}; +struct trace_event_data_offsets_sched_kthread_work_queue_work {}; -struct trace_event_data_offsets_io_uring_file_get {}; +struct trace_event_data_offsets_sched_kthread_work_execute_start {}; -struct trace_event_data_offsets_io_uring_link {}; +struct trace_event_data_offsets_sched_kthread_work_execute_end {}; -struct trace_event_data_offsets_io_uring_cqring_wait {}; +struct trace_event_data_offsets_sched_wakeup_template {}; -struct trace_event_data_offsets_io_uring_complete {}; +struct trace_event_data_offsets_sched_switch {}; -struct trace_event_data_offsets_io_uring_cqe_overflow {}; +struct trace_event_data_offsets_sched_migrate_task {}; -struct trace_event_data_offsets_io_uring_task_work_run {}; +struct trace_event_data_offsets_sched_process_template {}; -struct trace_event_data_offsets_io_uring_short_write {}; +struct trace_event_data_offsets_sched_process_wait {}; -struct trace_event_data_offsets_io_uring_local_work_run {}; +struct trace_event_data_offsets_sched_process_fork {}; -struct io_task_cancel { - struct task_struct *task; - bool all; -}; +struct trace_event_data_offsets_sched_stat_template {}; -struct io_uring_probe_op { - __u8 op; - __u8 resv; - __u16 flags; - __u32 resv2; -}; +struct trace_event_data_offsets_sched_stat_runtime {}; -struct io_uring_probe { - __u8 last_op; - __u8 ops_len; - __u16 resv; - __u32 resv2[3]; - struct io_uring_probe_op ops[0]; -}; +struct trace_event_data_offsets_sched_pi_setprio {}; -struct io_uring_restriction { - __u16 opcode; - union { - __u8 register_op; - __u8 sqe_op; - __u8 sqe_flags; - }; - __u8 resv; - __u32 resv2[3]; -}; +struct trace_event_data_offsets_sched_move_numa {}; -enum acpi_ec_event_state { - EC_EVENT_READY = 0, - EC_EVENT_IN_PROGRESS = 1, - EC_EVENT_COMPLETE = 2, -}; +struct trace_event_data_offsets_sched_numa_pair_template {}; -struct transaction; +struct trace_event_data_offsets_sched_wake_idle_without_ipi {}; -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 trace_event_data_offsets_ipi_send_cpu {}; + +struct trace_event_data_offsets_ipi_handler {}; + +typedef int (*tg_visitor)(struct task_group *, void *); + +typedef int (*task_call_f)(struct task_struct *, void *); + +enum tick_nohz_mode { + NOHZ_MODE_INACTIVE = 0, + NOHZ_MODE_LOWRES = 1, + NOHZ_MODE_HIGHRES = 2, }; -struct transaction { - const u8 *wdata; - u8 *rdata; - unsigned short irq_count; - u8 command; - u8 wi; - u8 ri; - u8 wlen; - u8 rlen; - u8 flags; +struct tick_sched { + 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; + unsigned int stalled_jiffies; + unsigned long last_tick_jiffies; + struct hrtimer sched_timer; + ktime_t last_tick; + ktime_t next_tick; + unsigned long idle_jiffies; + ktime_t idle_waketime; + seqcount_t idle_sleeptime_seq; + ktime_t idle_entrytime; + enum tick_nohz_mode nohz_mode; + unsigned long last_jiffies; + u64 timer_expires_base; + u64 timer_expires; + u64 next_timer; + ktime_t idle_expires; + unsigned long idle_calls; + unsigned long idle_sleeps; + ktime_t idle_exittime; + ktime_t idle_sleeptime; + ktime_t iowait_sleeptime; + atomic_t tick_dep_mask; + unsigned long check_clocks; }; -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, +struct fmeter { + int cnt; + int val; + time64_t time; + spinlock_t lock; }; -enum { - EC_FLAGS_QUERY_ENABLED = 0, - EC_FLAGS_EVENT_HANDLER_INSTALLED = 1, - EC_FLAGS_EC_HANDLER_INSTALLED = 2, - EC_FLAGS_EC_REG_CALLED = 3, - EC_FLAGS_QUERY_METHODS_INSTALLED = 4, - EC_FLAGS_STARTED = 5, - EC_FLAGS_STOPPED = 6, - EC_FLAGS_EVENTS_MASKED = 7, +enum prs_errcode { + PERR_NONE = 0, + PERR_INVCPUS = 1, + PERR_INVPARENT = 2, + PERR_NOTPART = 3, + PERR_NOTEXCL = 4, + PERR_NOCPUS = 5, + PERR_HOTPLUG = 6, + PERR_CPUSEMPTY = 7, + PERR_HKEEPING = 8, }; -typedef int (*acpi_ec_query_func)(void *); +struct cpuset { + struct cgroup_subsys_state css; + unsigned long flags; + cpumask_var_t cpus_allowed; + nodemask_t mems_allowed; + cpumask_var_t effective_cpus; + nodemask_t effective_mems; + cpumask_var_t effective_xcpus; + cpumask_var_t exclusive_cpus; + nodemask_t old_mems_allowed; + struct fmeter fmeter; + int attach_in_progress; + int pn; + int relax_domain_level; + int nr_subparts; + int partition_root_state; + int use_parent_ecpus; + int child_ecpus_count; + int nr_deadline_tasks; + int nr_migrate_dl_tasks; + u64 sum_migrate_dl_bw; + enum prs_errcode prs_err; + struct cgroup_file partition_file; + struct list_head remote_sibling; +}; -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; +enum partition_cmd { + partcmd_enable = 0, + partcmd_disable = 1, + partcmd_update = 2, + partcmd_invalidate = 3, }; -struct acpi_ec_query { - struct transaction transaction; +struct cpuset_migrate_mm_work { struct work_struct work; - struct acpi_ec_query_handler *handler; - struct acpi_ec *ec; + struct mm_struct *mm; + nodemask_t from; + nodemask_t to; }; -typedef u32 acpi_event_status; +struct tmpmasks { + cpumask_var_t addmask; + cpumask_var_t delmask; + cpumask_var_t new_cpus; +}; -struct acpi_table_ecdt { - struct acpi_table_header header; - struct acpi_generic_address control; - struct acpi_generic_address data; - u32 uid; - u8 gpe; - u8 id[0]; -} __attribute__((packed)); +typedef enum { + CS_ONLINE = 0, + CS_CPU_EXCLUSIVE = 1, + CS_MEM_EXCLUSIVE = 2, + CS_MEM_HARDWALL = 3, + CS_MEMORY_MIGRATE = 4, + CS_SCHED_LOAD_BALANCE = 5, + CS_SPREAD_PAGE = 6, + CS_SPREAD_SLAB = 7, +} cpuset_flagbits_t; -struct vcs_poll_data { - struct notifier_block notifier; - unsigned int cons_num; - int event; - wait_queue_head_t waitq; - struct fasync_struct *fasync; +typedef enum { + FILE_MEMORY_MIGRATE = 0, + FILE_CPULIST = 1, + FILE_MEMLIST = 2, + FILE_EFFECTIVE_CPULIST = 3, + FILE_EFFECTIVE_MEMLIST = 4, + FILE_SUBPARTS_CPULIST = 5, + FILE_EXCLUSIVE_CPULIST = 6, + FILE_EFFECTIVE_XCPULIST = 7, + FILE_CPU_EXCLUSIVE = 8, + FILE_MEM_EXCLUSIVE = 9, + FILE_MEM_HARDWALL = 10, + FILE_SCHED_LOAD_BALANCE = 11, + FILE_PARTITION_ROOT = 12, + FILE_SCHED_RELAX_DOMAIN_LEVEL = 13, + FILE_MEMORY_PRESSURE_ENABLED = 14, + FILE_MEMORY_PRESSURE = 15, + FILE_SPREAD_PAGE = 16, + FILE_SPREAD_SLAB = 17, +} cpuset_filetype_t; + +struct ustring_buffer { + char buffer[1024]; }; -struct vt_notifier_param { - struct vc_data *vc; - unsigned int c; +enum filter_pred_fn { + FILTER_PRED_FN_NOP = 0, + FILTER_PRED_FN_64 = 1, + FILTER_PRED_FN_64_CPUMASK = 2, + FILTER_PRED_FN_S64 = 3, + FILTER_PRED_FN_U64 = 4, + FILTER_PRED_FN_32 = 5, + FILTER_PRED_FN_32_CPUMASK = 6, + FILTER_PRED_FN_S32 = 7, + FILTER_PRED_FN_U32 = 8, + FILTER_PRED_FN_16 = 9, + FILTER_PRED_FN_16_CPUMASK = 10, + FILTER_PRED_FN_S16 = 11, + FILTER_PRED_FN_U16 = 12, + FILTER_PRED_FN_8 = 13, + FILTER_PRED_FN_8_CPUMASK = 14, + FILTER_PRED_FN_S8 = 15, + FILTER_PRED_FN_U8 = 16, + FILTER_PRED_FN_COMM = 17, + FILTER_PRED_FN_STRING = 18, + FILTER_PRED_FN_STRLOC = 19, + FILTER_PRED_FN_STRRELLOC = 20, + FILTER_PRED_FN_PCHAR_USER = 21, + FILTER_PRED_FN_PCHAR = 22, + FILTER_PRED_FN_CPU = 23, + FILTER_PRED_FN_CPU_CPUMASK = 24, + FILTER_PRED_FN_CPUMASK = 25, + FILTER_PRED_FN_CPUMASK_CPU = 26, + FILTER_PRED_FN_FUNCTION = 27, + FILTER_PRED_FN_ = 28, + FILTER_PRED_TEST_VISITED = 29, }; -struct ivrs_quirk_entry { - u8 id; - u32 devid; +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 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 { + TOO_MANY_CLOSE = -1, + TOO_MANY_OPEN = -2, + MISSING_QUOTE = -3, }; -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 { + FILT_ERR_NONE = 0, + FILT_ERR_INVALID_OP = 1, + FILT_ERR_TOO_MANY_OPEN = 2, + FILT_ERR_TOO_MANY_CLOSE = 3, + FILT_ERR_MISSING_QUOTE = 4, + FILT_ERR_MISSING_BRACE_OPEN = 5, + FILT_ERR_MISSING_BRACE_CLOSE = 6, + FILT_ERR_OPERAND_TOO_LONG = 7, + FILT_ERR_EXPECT_STRING = 8, + FILT_ERR_EXPECT_DIGIT = 9, + FILT_ERR_ILLEGAL_FIELD_OP = 10, + FILT_ERR_FIELD_NOT_FOUND = 11, + FILT_ERR_ILLEGAL_INTVAL = 12, + FILT_ERR_BAD_SUBSYS_FILTER = 13, + FILT_ERR_TOO_MANY_PREDS = 14, + FILT_ERR_INVALID_FILTER = 15, + FILT_ERR_INVALID_CPULIST = 16, + FILT_ERR_IP_FIELD_ONLY = 17, + FILT_ERR_INVALID_VALUE = 18, + FILT_ERR_NO_FUNCTION = 19, + FILT_ERR_ERRNO = 20, + FILT_ERR_NO_FILTER = 21, }; enum { - QI_FREE = 0, - QI_IN_USE = 1, - QI_DONE = 2, - QI_ABORT = 3, + INVERT = 1, + PROCESS_AND = 2, + PROCESS_OR = 4, }; -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, +struct regex; + +struct ftrace_event_field; + +struct filter_pred { + struct regex *regex; + struct cpumask *mask; + unsigned short *ops; + struct ftrace_event_field *field; + u64 val; + u64 val2; + enum filter_pred_fn fn_num; + int offset; + int not; + int op; }; -enum faulttype { - DMA_REMAP = 0, - INTR_REMAP = 1, - UNKNOWN = 2, +typedef int (*regex_match_func)(char *, struct regex *, int); + +struct regex { + char pattern[256]; + int len; + int field_len; + regex_match_func match; }; -struct acpi_dmar_pci_path { - u8 device; - u8 function; +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 acpi_dmar_header; +struct filter_list { + struct list_head list; + struct event_filter *filter; +}; -struct dmar_dev_scope; +struct filter_parse_error { + int lasterr; + int lasterr_pos; +}; -struct intel_iommu; +struct function_filter_data { + struct ftrace_ops *ops; + int first_filter; + int first_notrace; +}; -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; +typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **); + +struct btf_kfunc_hook_filter { + btf_kfunc_filter_t filters[16]; + u32 nr_filters; }; -struct acpi_dmar_header { - u16 type; - u16 length; +struct btf_kfunc_set_tab { + struct btf_id_set8 *sets[13]; + struct btf_kfunc_hook_filter hook_filters[13]; }; -struct dmar_dev_scope { - struct device __attribute__((btf_type_tag("rcu"))) *dev; - u8 bus; - u8 devfn; +struct btf_id_dtor_kfunc_tab { + u32 cnt; + struct btf_id_dtor_kfunc dtors[0]; }; -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 btf_struct_metas { + u32 cnt; + struct btf_struct_meta types[0]; }; -struct iopf_queue; +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 root_entry; +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 q_inval; +struct strparser; -struct iommu_pmu; +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 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 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 root_entry { - u64 lo; - u64 hi; +struct sk_psock_work_state { + u32 len; + u32 off; }; -struct q_inval { - raw_spinlock_t q_lock; - void *desc; - int *desc_status; - int free_head; - int free_tail; - int free_cnt; +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 delayed_work work; + struct sock *sk_pair; + struct rcu_work rwork; }; -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 hlist_node cpuhp_node; - int cpu; +struct sk_msg_sg { + u32 start; + u32 curr; + u32 end; + u32 size; + u32 copybreak; + unsigned long copy[1]; + struct scatterlist data[19]; }; -struct acpi_dmar_hardware_unit { - struct acpi_dmar_header header; - u8 flags; - u8 size; - u16 segment; - u64 address; +struct sk_msg { + struct sk_msg_sg sg; + void *data; + void *data_end; + u32 apply_bytes; + u32 cork_bytes; + u32 flags; + struct sk_buff *skb; + struct sock *sk_redir; + struct sock *sk; + struct list_head list; }; -struct acpi_table_dmar { - struct acpi_table_header header; - u8 width; - u8 flags; - u8 reserved[10]; +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 dmar_pci_path { - u8 bus; - u8 device; - u8 function; +struct bpf_sock_addr_kern { + struct sock *sk; + struct sockaddr *uaddr; + u64 tmp_reg; + void *t_ctx; + u32 uaddrlen; }; -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 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 acpi_dmar_rhsa { - struct acpi_dmar_header header; - u32 reserved; - u64 base_address; - u32 proximity_domain; -} __attribute__((packed)); +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 acpi_dmar_reserved_memory { - struct acpi_dmar_header header; - u16 reserved; - u16 segment; - u64 base_address; - u64 end_address; +struct bpf_flow_dissector { + struct bpf_flow_keys *flow_keys; + const struct sk_buff *skb; + const void *data; + const void *data_end; }; -struct acpi_dmar_atsr { - struct acpi_dmar_header header; - u8 flags; - u8 reserved; - u16 segment; +struct bpf_perf_event_data { + bpf_user_pt_regs_t regs; + __u64 sample_period; + __u64 addr; }; -struct acpi_dmar_satc { - struct acpi_dmar_header header; - u8 flags; - u8 reserved; - u16 segment; +struct bpf_cgroup_dev_ctx { + __u32 access_type; + __u32 major; + __u32 minor; }; -typedef int (*dmar_res_handler_t)(struct acpi_dmar_header *, void *); +struct bpf_sysctl { + __u32 write; + __u32 file_pos; +}; -struct dmar_res_callback { - dmar_res_handler_t cb[6]; - void *arg[6]; - bool ignore_unhandled; - bool print_entry; +struct bpf_sysctl_kern { + struct ctl_table_header *head; + struct ctl_table *table; + void *cur_val; + size_t cur_len; + void *new_val; + size_t new_len; + int new_updated; + int write; + loff_t *ppos; + u64 tmp_reg; }; -struct qi_desc { - u64 qw0; - u64 qw1; - u64 qw2; - u64 qw3; +struct bpf_sockopt { + union { + struct bpf_sock *sk; + }; + union { + void *optval; + }; + union { + void *optval_end; + }; + __s32 level; + __s32 optname; + __s32 optlen; + __s32 retval; }; -struct acpi_dmar_device_scope { - u8 entry_type; - u8 length; - u16 reserved; - u8 enumeration_id; - u8 bus; +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 acpi_dmar_andd { - struct acpi_dmar_header header; - u8 reserved[3]; - u8 device_number; +struct sk_reuseport_md { union { - char __pad; - struct { - struct {} __Empty_device_name; - char device_name[0]; + void *data; + }; + union { + void *data_end; + }; + __u32 len; + __u32 eth_protocol; + __u32 ip_protocol; + __u32 bind_inany; + __u32 hash; + union { + struct bpf_sock *sk; + }; + union { + struct bpf_sock *migrating_sk; + }; +}; + +struct sk_reuseport_kern { + struct sk_buff *skb; + struct sock *sk; + struct sock *selected_sk; + struct sock *migrating_sk; + void *data_end; + u32 hash; + u32 reuseport_id; + bool bind_inany; +}; + +struct bpf_sk_lookup { + union { + union { + struct bpf_sock *sk; }; + __u64 cookie; }; -} __attribute__((packed)); + __u32 family; + __u32 protocol; + __u32 remote_ip4; + __u32 remote_ip6[4]; + __be16 remote_port; + __u32 local_ip4; + __u32 local_ip6[4]; + __u32 local_port; + __u32 ingress_ifindex; +}; -struct ttm_global { - struct page *dummy_read_page; - struct list_head device_list; - atomic_t bo_count; +struct bpf_sk_lookup_kern { + u16 family; + u16 protocol; + __be16 sport; + u16 dport; + struct { + __be32 saddr; + __be32 daddr; + } v4; + struct { + const struct in6_addr *saddr; + const struct in6_addr *daddr; + } v6; + struct sock *selected_sk; + u32 ingress_ifindex; + bool no_reuseport; }; -struct drm_i915_getparam32 { - s32 param; - u32 value; +struct bpf_nf_ctx { + const struct nf_hook_state *state; + struct sk_buff *skb; }; -struct drm_i915_getparam { - __s32 param; - int __attribute__((btf_type_tag("user"))) *value; +struct bpf_ctx_convert { + struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog; + struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern; + struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog; + struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern; + struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog; + struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern; + struct xdp_md BPF_PROG_TYPE_XDP_prog; + struct xdp_buff BPF_PROG_TYPE_XDP_kern; + struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog; + struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern; + struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog; + struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern; + struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog; + struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog; + struct sk_buff BPF_PROG_TYPE_LWT_IN_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog; + struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog; + struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern; + struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog; + struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern; + struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog; + struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern; + struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog; + struct sk_buff BPF_PROG_TYPE_SK_SKB_kern; + struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog; + struct sk_msg BPF_PROG_TYPE_SK_MSG_kern; + struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog; + struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern; + bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog; + struct pt_regs BPF_PROG_TYPE_KPROBE_kern; + __u64 BPF_PROG_TYPE_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_TRACEPOINT_kern; + struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog; + struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern; + struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog; + u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern; + void *BPF_PROG_TYPE_TRACING_prog; + void *BPF_PROG_TYPE_TRACING_kern; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog; + struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern; + struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog; + struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern; + struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog; + struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern; + struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog; + struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern; + struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog; + struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern; + void *BPF_PROG_TYPE_SYSCALL_prog; + void *BPF_PROG_TYPE_SYSCALL_kern; + struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_prog; + struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_kern; }; -enum { - PERF_GROUP_OAG = 0, - PERF_GROUP_OAM_SAMEDIA_0 = 0, - PERF_GROUP_MAX = 1, - PERF_GROUP_INVALID = 4294967295, +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 drm_i915_cmd_descriptor; +struct resolve_vertex { + const struct btf_type *t; + u32 type_id; + u16 next_member; +}; -struct drm_i915_cmd_table { - const struct drm_i915_cmd_descriptor *table; - int count; +enum verifier_phase { + CHECK_META = 0, + CHECK_TYPE = 1, }; -struct drm_i915_cmd_descriptor { - u32 flags; +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 { - u32 value; - u32 mask; - } cmd; - union { - u32 fixed; - u32 mask; - } length; + 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 offset; - u32 mask; - u32 step; - } reg; + 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 { - u32 offset; - u32 mask; - u32 expected; - u32 condition_offset; - u32 condition_mask; - } bits[3]; + const struct btf *btf; + u32 id; + } cands[0]; }; -struct drm_i915_reg_descriptor { - i915_reg_t addr; - u32 mask; - u32 value; +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 cmd_node { - const struct drm_i915_cmd_descriptor *desc; - struct hlist_node node; +enum bpf_struct_walk_result { + WALK_SCALAR = 0, + WALK_PTR = 1, + WALK_STRUCT = 2, }; -struct dp_aud_n_m { - int sample_rate; - int clock; - u16 m; - u16 n; +enum btf_func_linkage { + BTF_FUNC_STATIC = 0, + BTF_FUNC_GLOBAL = 1, + BTF_FUNC_EXTERN = 2, }; -struct hdmi_aud_ncts { - int sample_rate; - int clock; - int n; - int cts; +enum { + BTF_MODULE_F_LIVE = 1, }; -struct aud_ts_cdclk_m_n { - u8 m; - u16 n; +enum btf_kfunc_hook { + BTF_KFUNC_HOOK_COMMON = 0, + BTF_KFUNC_HOOK_XDP = 1, + BTF_KFUNC_HOOK_TC = 2, + BTF_KFUNC_HOOK_STRUCT_OPS = 3, + BTF_KFUNC_HOOK_TRACING = 4, + BTF_KFUNC_HOOK_SYSCALL = 5, + BTF_KFUNC_HOOK_FMODRET = 6, + BTF_KFUNC_HOOK_CGROUP_SKB = 7, + BTF_KFUNC_HOOK_SCHED_ACT = 8, + BTF_KFUNC_HOOK_SK_SKB = 9, + BTF_KFUNC_HOOK_SOCKET_FILTER = 10, + BTF_KFUNC_HOOK_LWT = 11, + BTF_KFUNC_HOOK_NETFILTER = 12, + BTF_KFUNC_HOOK_MAX = 13, }; -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; +enum { + BTF_KFUNC_SET_MAX_CNT = 256, + BTF_DTOR_KFUNC_MAX_CNT = 256, + BTF_KFUNC_FILTER_MAX_CNT = 16, }; -struct intel_crt { - struct intel_encoder base; - struct intel_connector *connector; - bool force_hotplug_required; - i915_reg_t adpa_reg; +enum bpf_core_relo_kind { + BPF_CORE_FIELD_BYTE_OFFSET = 0, + BPF_CORE_FIELD_BYTE_SIZE = 1, + BPF_CORE_FIELD_EXISTS = 2, + BPF_CORE_FIELD_SIGNED = 3, + BPF_CORE_FIELD_LSHIFT_U64 = 4, + BPF_CORE_FIELD_RSHIFT_U64 = 5, + BPF_CORE_TYPE_ID_LOCAL = 6, + BPF_CORE_TYPE_ID_TARGET = 7, + BPF_CORE_TYPE_EXISTS = 8, + BPF_CORE_TYPE_SIZE = 9, + BPF_CORE_ENUMVAL_EXISTS = 10, + BPF_CORE_ENUMVAL_VALUE = 11, + BPF_CORE_TYPE_MATCHES = 12, }; -enum virtio_gpu_shm_id { - VIRTIO_GPU_SHM_ID_UNDEFINED = 0, - VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1, +enum { + BTF_FIELD_IGNORE = 0, + BTF_FIELD_FOUND = 1, }; -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; +enum visit_state { + NOT_VISITED = 0, + VISITED = 1, + RESOLVED = 2, }; -struct class_attribute { - struct attribute attr; - ssize_t (*show)(const struct class *, const struct class_attribute *, char *); - ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t); +enum { + BTF_VAR_STATIC = 0, + BTF_VAR_GLOBAL_ALLOCATED = 1, + BTF_VAR_GLOBAL_EXTERN = 2, }; -struct class_attribute_string { - struct class_attribute attr; - char *str; +struct btf_module { + struct list_head list; + struct module *module; + struct btf *btf; + struct bin_attribute *sysfs_attr; + int flags; }; -struct class_compat { - struct kobject *kobj; +typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); + +struct btf_array { + __u32 type; + __u32 index_type; + __u32 nelems; }; -struct snap { - int slen; - char str[80]; +struct btf_decl_tag { + __s32 component_idx; }; -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; +struct btf_var_secinfo { + __u32 type; + __u32 offset; + __u32 size; }; -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 btf_sec_info { + u32 off; + u32 len; }; -struct mddev; +struct btf_enum { + __u32 name_off; + __s32 val; +}; -struct md_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct mddev *, char *); - ssize_t (*store)(struct mddev *, const char *, size_t); +struct btf_var { + __u32 linkage; }; -struct md_cluster_info; +struct btf_enum64 { + __u32 name_off; + __u32 val_lo32; + __u32 val_hi32; +}; -struct md_personality; +struct btf_show_snprintf { + struct btf_show show; + int len_left; + int len; +}; -struct md_thread; +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 bitmap; +struct bpf_core_ctx { + struct bpf_verifier_log *log; + const struct btf *btf; +}; -struct md_rdev; +struct bpf_core_relo { + __u32 insn_off; + __u32 type_id; + __u32 access_str_off; + enum bpf_core_relo_kind kind; +}; -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 __attribute__((btf_type_tag("rcu"))) *thread; - struct md_thread __attribute__((btf_type_tag("rcu"))) *sync_thread; - char *last_sync_action; - sector_t curr_resync; - sector_t curr_resync_completed; - unsigned long resync_mark; - sector_t resync_mark_cnt; - sector_t curr_mark_cnt; - sector_t resync_max_sectors; - atomic64_t resync_mismatches; - sector_t suspend_lo; - sector_t suspend_hi; - int sync_speed_min; - int sync_speed_max; - int parallel_resync; - int ok_start_degraded; - unsigned long recovery; - int recovery_disabled; - int in_sync; - struct mutex open_mutex; - struct mutex reconfig_mutex; - atomic_t active; - atomic_t openers; - int changed; - int degraded; - atomic_t recovery_active; - wait_queue_head_t recovery_wait; - sector_t recovery_cp; - sector_t resync_min; - sector_t resync_max; - struct kernfs_node *sysfs_state; - struct kernfs_node *sysfs_action; - struct kernfs_node *sysfs_completed; - struct kernfs_node *sysfs_degraded; - struct kernfs_node *sysfs_level; - struct work_struct del_work; - 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; - struct list_head deleting; - bool has_superblocks: 1; - bool fail_last_dev: 1; - bool serialize_policy: 1; +struct bpf_core_cand; + +struct bpf_core_cand_list { + struct bpf_core_cand *cands; + int len; }; -struct md_personality { - char *name; - int level; - struct list_head list; - struct module *owner; - bool (*make_request)(struct mddev *, struct bio *); - int (*run)(struct mddev *); - int (*start)(struct mddev *); - void (*free)(struct mddev *, void *); - void (*status)(struct seq_file *, struct mddev *); - void (*error_handler)(struct mddev *, struct md_rdev *); - int (*hot_add_disk)(struct mddev *, struct md_rdev *); - int (*hot_remove_disk)(struct mddev *, struct md_rdev *); - int (*spare_active)(struct mddev *); - sector_t (*sync_request)(struct mddev *, sector_t, int *); - int (*resize)(struct mddev *, sector_t); - sector_t (*size)(struct mddev *, sector_t, int); - int (*check_reshape)(struct mddev *); - int (*start_reshape)(struct mddev *); - void (*finish_reshape)(struct mddev *); - void (*update_reshape_pos)(struct mddev *); - void (*prepare_suspend)(struct mddev *); - void (*quiesce)(struct mddev *, int); - void * (*takeover)(struct mddev *); - int (*change_consistency_policy)(struct mddev *, const char *); +struct bpf_core_cand { + const struct btf *btf; + __u32 id; }; -struct serial_in_rdev; +struct bpf_core_accessor { + __u32 type_id; + __u32 idx; + const char *name; +}; -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 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 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 serial_in_rdev { - struct rb_root_cached serial_rb; - spinlock_t serial_lock; - wait_queue_head_t serial_io_wait; +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 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 bpf_btf_info { + __u64 btf; + __u32 btf_size; + __u32 id; + __u64 name; + __u32 name_len; + __u32 kernel_btf; }; -struct bitmap_page; +typedef void (*btf_trace_tlb_flush)(void *, int, unsigned long); -struct bitmap_counts { - spinlock_t lock; - struct bitmap_page *bp; +typedef void (*btf_trace_mm_migrate_pages)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, enum migrate_mode, int); + +typedef void (*btf_trace_mm_migrate_pages_start)(void *, enum migrate_mode, int); + +typedef void (*btf_trace_set_migration_pte)(void *, unsigned long, unsigned long, int); + +typedef void (*btf_trace_remove_migration_pte)(void *, unsigned long, unsigned long, int); + +struct trace_event_raw_tlb_flush { + struct trace_entry ent; + int reason; unsigned long pages; - unsigned long missing_pages; - unsigned long chunkshift; - unsigned long chunks; + char __data[0]; }; -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 trace_event_raw_mm_migrate_pages { + struct trace_entry ent; + unsigned long succeeded; + unsigned long failed; + unsigned long thp_succeeded; + unsigned long thp_failed; + unsigned long thp_split; + unsigned long large_folio_split; + enum migrate_mode mode; + int reason; + char __data[0]; }; -struct 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 trace_event_raw_mm_migrate_pages_start { + struct trace_entry ent; + enum migrate_mode mode; + int reason; + char __data[0]; }; -struct bitmap_page { - char *map; - unsigned int hijacked: 1; - unsigned int pending: 1; - unsigned int count: 30; +struct trace_event_raw_migration_pte { + struct trace_entry ent; + unsigned long addr; + unsigned long pte; + int order; + char __data[0]; }; -enum bitmap_state { - BITMAP_STALE = 1, - BITMAP_WRITE_ERROR = 2, - BITMAP_HOSTENDIAN = 15, +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 *); }; -enum bitmap_page_attr { - BITMAP_PAGE_DIRTY = 0, - BITMAP_PAGE_PENDING = 1, - BITMAP_PAGE_NEEDWRITE = 2, +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; }; -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 { + BIOSET_NEED_BVECS = 1, + BIOSET_NEED_RESCUER = 2, + BIOSET_PERCPU_CACHE = 4, }; -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, +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; }; -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, +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; }; -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, +struct iomap_iter { + struct inode *inode; + loff_t pos; + u64 len; + s64 processed; + unsigned int flags; + struct iomap iomap; + struct iomap srcmap; + void *private; }; -typedef __u16 bitmap_counter_t; +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 bitmap_unplug_work { - struct work_struct work; - struct bitmap *bitmap; - struct completion *done; +struct iomap_ops { + int (*iomap_begin)(struct inode *, loff_t, loff_t, unsigned int, struct iomap *, struct iomap *); + int (*iomap_end)(struct inode *, loff_t, loff_t, ssize_t, unsigned int, struct iomap *); }; -struct 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]; +struct iomap_readpage_ctx { + struct folio *cur_folio; + bool cur_folio_in_bio; + struct bio *bio; + struct readahead_control *rac; }; -typedef struct bitmap_super_s bitmap_super_t; +struct iomap_folio_state { + spinlock_t state_lock; + unsigned int read_bytes_pending; + atomic_t write_bytes_pending; + unsigned long state[0]; +}; -enum { - HDA_JACK_NOT_PRESENT = 0, - HDA_JACK_PRESENT = 1, - HDA_JACK_PHANTOM = 2, +typedef int (*iomap_punch_t)(struct inode *, loff_t, loff_t); + +struct iomap_writeback_ops; + +struct iomap_writepage_ctx { + struct iomap iomap; + struct iomap_ioend *ioend; + const struct iomap_writeback_ops *ops; }; -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 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); }; -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 kernfs_node_type { + KERNFS_DIR = 1, + KERNFS_FILE = 2, + KERNFS_LINK = 4, }; -enum { - AUTO_PIN_LINE_OUT = 0, - AUTO_PIN_SPEAKER_OUT = 1, - AUTO_PIN_HP_OUT = 2, +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 { - AC_JACK_PORT_COMPLEX = 0, - AC_JACK_PORT_NONE = 1, - AC_JACK_PORT_FIXED = 2, - AC_JACK_PORT_BOTH = 3, +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 hda_jack_callback; +typedef unsigned short __kernel_uid16_t; -struct snd_jack; +typedef __kernel_uid16_t uid16_t; -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 unsigned short __kernel_gid16_t; -typedef void (*hda_jack_callback_fn)(struct hda_codec *, struct hda_jack_callback *); +typedef __kernel_gid16_t gid16_t; -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 ext4_xattr_ibody_header { + __le32 h_magic; }; -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 ext4_xattr_inode_array { + unsigned int count; + struct inode *inodes[0]; }; -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 ext4_iloc { + struct buffer_head *bh; + unsigned long offset; + ext4_group_t block_group; }; -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 ext4_io_end; + +typedef struct ext4_io_end ext4_io_end_t; + +struct ext4_io_submit { + struct writeback_control *io_wbc; + struct bio *io_bio; + ext4_io_end_t *io_end; + sector_t io_next_block; }; -struct hda_jack_keymap { - enum snd_jack_types type; - int key; +struct mpage_da_data { + struct inode *inode; + struct writeback_control *wbc; + unsigned int can_map: 1; + unsigned long first_page; + unsigned long next_page; + unsigned long last_page; + struct ext4_map_blocks map; + struct ext4_io_submit io_submit; + unsigned int do_map: 1; + unsigned int scanned_until_end: 1; + unsigned int journalled_more_data: 1; }; -struct netdev_hw_addr { +struct ext4_io_end { 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; + handle_t *handle; + struct inode *inode; + struct bio *bio; + unsigned int flag; + refcount_t count; + struct list_head list_vec; }; -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 ext4_io_end_vec { + struct list_head list; + loff_t offset; + ssize_t size; }; -struct rss_req_info { - struct ethnl_req_info base; - u32 rss_context; +typedef enum { + EXT4_IGET_NORMAL = 0, + EXT4_IGET_SPECIAL = 1, + EXT4_IGET_HANDLE = 2, + EXT4_IGET_BAD = 4, + EXT4_IGET_EA_INODE = 8, +} ext4_iget_flags; + +struct nfs_clone_mount { + struct super_block *sb; + struct dentry *dentry; + struct nfs_fattr *fattr; + unsigned int inherited_bsize; }; -struct rss_reply_data { - struct ethnl_reply_data base; - u32 indir_size; - u32 hkey_size; - u32 hfunc; - u32 *indir_table; - u8 *hkey; +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; + struct xprtsec_parms xprtsec; + 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 nfnl_abort_action { - NFNL_ABORT_NONE = 0, - NFNL_ABORT_AUTOLOAD = 1, - NFNL_ABORT_VALIDATE = 2, +struct nfs_callback_data { + unsigned int users; + struct svc_serv *serv; }; -struct nfnl_callback; +enum nfs4_callback_procnum { + CB_NULL = 0, + CB_COMPOUND = 1, +}; -struct nfnetlink_subsystem { - const char *name; - __u8 subsys_id; - __u8 cb_count; - const struct nfnl_callback *cb; - struct module *owner; - int (*commit)(struct net *, struct sk_buff *); - int (*abort)(struct net *, struct sk_buff *, enum nfnl_abort_action); - bool (*valid_genid)(struct net *, u32); +struct bl_dev_msg { + int32_t status; + uint32_t major; + uint32_t minor; }; -enum nfnl_callback_type { - NFNL_CB_UNSPEC = 0, - NFNL_CB_MUTEX = 1, - NFNL_CB_RCU = 2, - NFNL_CB_BATCH = 3, +struct nfs_netns_client; + +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 nfnl_info; +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 xprtsec_parms xprtsec; + unsigned long connect_timeout; + unsigned long reconnect_timeout; +}; -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 nlm_reboot { + char *mon; + unsigned int len; + u32 state; + struct nsm_private priv; }; -struct nfgenmsg; +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; +}; -struct nfnl_info { +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; - struct sock *sk; - const struct nlmsghdr *nlh; - const struct nfgenmsg *nfmsg; - struct netlink_ext_ack *extack; + const struct cred *cred; }; -struct nfgenmsg { - __u8 nfgen_family; - __u8 version; - __be16 res_id; -}; +struct nlm_file; -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, +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; }; -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, +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; }; -enum nfulnl_msg_types { - NFULNL_MSG_PACKET = 0, - NFULNL_MSG_CONFIG = 1, - NFULNL_MSG_MAX = 2, +typedef int (*nlm_host_match_fn_t)(void *, struct nlm_host *); + +struct p9_getlock { + u8 type; + u64 start; + u64 length; + u32 proc_id; + char *client_id; }; -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, +struct p9_flock { + u8 type; + u32 flags; + u64 start; + u64 length; + u32 proc_id; + char *client_id; }; -enum nfulnl_vlan_attr { - NFULA_VLAN_UNSPEC = 0, - NFULA_VLAN_PROTO = 1, - NFULA_VLAN_TCI = 2, - __NFULA_VLAN_MAX = 3, +struct hashtab_key_params { + u32 (*hash)(const void *); + int (*cmp)(const void *, const void *); }; -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 policydb_compat_info { + unsigned int version; + unsigned int sym_num; + unsigned int ocon_num; }; -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 filename_trans_key { + u32 ttype; + u16 tclass; + const char *name; }; -struct nfnl_log_net { - spinlock_t instances_lock; - struct hlist_head instance_table[16]; - atomic_t global_seq; +struct role_trans_key { + u32 role; + u32 type; + u32 tclass; }; -struct iter_state { - struct seq_net_private p; - unsigned int bucket; +struct filename_trans_datum { + struct ebitmap stypes; + u32 otype; + struct filename_trans_datum *next; }; -struct nfulnl_msg_packet_hdr { - __be16 hw_protocol; - __u8 hook; - __u8 _pad; +struct role_trans_datum { + u32 new_role; }; -struct nfulnl_msg_packet_hw { - __be16 hw_addrlen; - __u16 _pad; - __u8 hw_addr[8]; +struct perm_datum { + u32 value; }; -struct nfulnl_msg_packet_timestamp { - __be64 sec; - __be64 usec; +struct aead_instance { + void (*free)(struct aead_instance *); + union { + struct { + char head[64]; + struct crypto_instance base; + } s; + struct aead_alg alg; + }; }; -struct nfulnl_msg_config_cmd { - __u8 command; +struct crypto_istat_aead { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t err_cnt; }; -struct nfulnl_msg_config_mode { - __be32 copy_range; - __u8 copy_mode; - __u8 _pad; -} __attribute__((packed)); +struct crypto_aead_spawn { + struct crypto_spawn base; +}; -struct netlink_notify { - struct net *net; - u32 portid; - int protocol; +struct shash_instance { + void (*free)(struct shash_instance *); + union { + struct { + char head[104]; + struct crypto_instance base; + } s; + struct shash_alg alg; + }; }; -struct net_proto_family { - int family; - int (*create)(struct net *, struct socket *, int, int); - struct module *owner; +struct cmac_desc_ctx { + unsigned int len; + u8 odds[0]; }; -struct socket_alloc { - struct socket socket; - struct inode vfs_inode; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct cmac_tfm_ctx { + struct crypto_cipher *child; + __be64 consts[0]; }; -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; +enum elv_merge { + ELEVATOR_NO_MERGE = 0, + ELEVATOR_FRONT_MERGE = 1, + ELEVATOR_BACK_MERGE = 2, + ELEVATOR_DISCARD_MERGE = 3, }; -struct xfrm_if_decode_session_result; +enum bio_merge_status { + BIO_MERGE_OK = 0, + BIO_MERGE_NONE = 1, + BIO_MERGE_FAILED = 2, +}; -struct xfrm_if_cb { - bool (*decode_session)(struct sk_buff *, unsigned short, struct xfrm_if_decode_session_result *); +struct elevator_type; + +struct elevator_queue { + struct elevator_type *type; + void *elevator_data; + struct kobject kobj; + struct mutex sysfs_lock; + unsigned long flags; + struct hlist_head hash[64]; }; -struct xfrm_if_decode_session_result { - struct net *net; - u32 if_id; +typedef unsigned int blk_insert_t; + +struct blk_mq_alloc_data; + +struct elevator_mq_ops { + int (*init_sched)(struct request_queue *, struct elevator_type *); + void (*exit_sched)(struct elevator_queue *); + int (*init_hctx)(struct blk_mq_hw_ctx *, unsigned int); + void (*exit_hctx)(struct blk_mq_hw_ctx *, unsigned int); + void (*depth_updated)(struct blk_mq_hw_ctx *); + bool (*allow_merge)(struct request_queue *, struct request *, struct bio *); + bool (*bio_merge)(struct request_queue *, struct bio *, unsigned int); + int (*request_merge)(struct request_queue *, struct request **, struct bio *); + void (*request_merged)(struct request_queue *, struct request *, enum elv_merge); + void (*requests_merged)(struct request_queue *, struct request *, struct request *); + void (*limit_depth)(blk_opf_t, struct blk_mq_alloc_data *); + void (*prepare_request)(struct request *); + void (*finish_request)(struct request *); + void (*insert_requests)(struct blk_mq_hw_ctx *, struct list_head *, blk_insert_t); + struct request * (*dispatch_request)(struct blk_mq_hw_ctx *); + bool (*has_work)(struct blk_mq_hw_ctx *); + void (*completed_request)(struct request *, u64); + void (*requeue_request)(struct request *); + struct request * (*former_request)(struct request_queue *, struct request *); + struct request * (*next_request)(struct request_queue *, struct request *); + void (*init_icq)(struct io_cq *); + void (*exit_icq)(struct io_cq *); }; -struct 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 *); +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; }; -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 blkg_iostat { + u64 bytes[3]; + u64 ios[3]; }; -struct xfrm_pol_inexact_node { - struct rb_node node; +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]; union { - xfrm_address_t addr; - struct callback_head rcu; + struct work_struct async_bio_work; + struct work_struct free_work; }; - u8 prefixlen; - struct rb_root root; - struct hlist_head hhead; + atomic_t use_delay; + atomic64_t delay_nsec; + atomic64_t delay_start; + u64 last_delay; + int last_use; + struct callback_head callback_head; }; -struct xfrm_pol_inexact_key { - possible_net_t net; - u32 if_id; - u16 family; - u8 dir; - u8 type; +struct blkcg_policy_data; + +struct blkcg { + struct cgroup_subsys_state css; + spinlock_t lock; + refcount_t online_pin; + struct xarray blkg_tree; + struct blkcg_gq __attribute__((btf_type_tag("rcu"))) *blkg_hint; + struct hlist_head blkg_list; + struct blkcg_policy_data *cpd[6]; + struct list_head all_blkcgs_node; + struct llist_head __attribute__((btf_type_tag("percpu"))) *lhead; + struct list_head cgwb_list; }; -struct 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 blkcg_policy_data { + struct blkcg *blkcg; + int plid; }; -struct sk_buff_fclones { - struct sk_buff skb1; - struct sk_buff skb2; - refcount_t fclone_ref; +struct blkg_policy_data { + struct blkcg_gq *blkg; + int plid; + bool online; }; -struct xfrm_pol_inexact_candidates { - struct hlist_head *res[4]; +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 xfrm_flo { - struct dst_entry *dst_orig; - u8 flags; +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 tcp_synack_type { - TCP_SYNACK_NORMAL = 0, - TCP_SYNACK_FASTOPEN = 1, - TCP_SYNACK_COOKIE = 2, +struct req_iterator { + struct bvec_iter iter; + struct bio *bio; }; -struct tcp_request_sock_ops; +struct io_rsrc_update { + struct file *file; + u64 arg; + u32 nr_args; + u32 offset; +}; -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; - u32 txhash; - u32 rcv_isn; - u32 snt_isn; - u32 ts_off; - u32 last_oow_ack_time; - u32 rcv_nxt; - u8 syn_tos; +struct io_uring_rsrc_update2 { + __u32 offset; + __u32 resv; + __u64 data; + __u64 tags; + __u32 nr; + __u32 resv2; }; -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 *); +struct io_uring_rsrc_register { + __u32 nr; + __u32 flags; + __u64 resv2; + __u64 data; + __u64 tags; }; -enum sock_shutdown_cmd { - SHUT_RD = 0, - SHUT_WR = 1, - SHUT_RDWR = 2, +enum pci_mmap_state { + pci_mmap_io = 0, + pci_mmap_mem = 1, }; -enum { - SVC_HANDSHAKE_TO = 5000, +enum pci_mmap_api { + PCI_MMAP_SYSFS = 0, + PCI_MMAP_PROCFS = 1, }; -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 completion sk_handshake_done; - struct page *sk_pages[259]; +struct pci_filp_private { + enum pci_mmap_state mmap_state; + int write_combine; }; -typedef __be32 rpc_fraghdr; +typedef int (*acpi_tbl_table_handler)(struct acpi_table_header *); -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, -}; +union acpi_subtable_headers; -struct mcs_group { - u8 shift; - u16 duration[12]; -}; +typedef int (*acpi_tbl_entry_handler)(union acpi_subtable_headers *, const unsigned long); -enum mac80211_rx_encoding { - RX_ENC_LEGACY = 0, - RX_ENC_HT = 1, - RX_ENC_VHT = 2, - RX_ENC_HE = 3, - RX_ENC_EHT = 4, -}; +struct acpi_probe_entry; -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, +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 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]; +struct acpi_hmat_structure { + u16 type; + u16 reserved; + u32 length; }; -struct pci_mmcfg_hostbridge_probe { - u32 bus; - u32 devfn; - u32 vendor; - u32 device; - const char * (*probe)(); +struct acpi_prmt_module_header { + u16 revision; + u16 length; }; -struct acpi_table_mcfg { - struct acpi_table_header header; - u8 reserved[8]; +struct acpi_cedt_header { + u8 type; + u8 reserved; + u16 length; }; -struct acpi_mcfg_allocation { - u64 address; - u16 pci_segment; - u8 start_bus_number; - u8 end_bus_number; - u32 reserved; +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; }; -typedef bool (*check_reserved_t)(u64, u64, enum e820_type); +enum acpi_reconfig_event { + ACPI_RECONFIG_DEVICE_ADD = 0, + ACPI_RECONFIG_DEVICE_REMOVE = 1, +}; -struct kretprobe_blackpoint { - const char *name; - void *addr; +struct acpi_device_bus_id { + const char *bus_id; + struct ida instance_ida; + struct list_head node; }; -struct __arch_relative_insn { - u8 op; - s32 raddr; -} __attribute__((packed)); +struct acpi_dep_data { + struct list_head node; + acpi_handle supplier; + acpi_handle consumer; + bool honor_dep; + bool met; + bool free_when_met; +}; -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 acpi_scan_clear_dep_work { + struct work_struct work; + struct acpi_device *adev; }; -typedef __s64 Elf64_Sxword; +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; +}; -struct elf64_rela { - Elf64_Addr r_offset; - Elf64_Xword r_info; - Elf64_Sxword r_addend; +struct acpi_handle_list { + u32 count; + acpi_handle *handles; }; -typedef struct elf64_rela Elf64_Rela; +struct acpi_table_stao { + struct acpi_table_header header; + u8 ignore_uart; +} __attribute__((packed)); -enum { - IORES_MAP_SYSTEM_RAM = 1, - IORES_MAP_ENCRYPTED = 2, -}; +typedef u32 (*acpi_sci_handler)(void *); -struct ioremap_desc { - unsigned int flags; +struct acpi_sci_handler_info { + struct acpi_sci_handler_info *next; + acpi_sci_handler address; + void *context; }; -typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long); +typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *); -typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long); +typedef u32 (*acpi_event_handler)(void *); -struct trace_event_raw_sys_enter { - struct trace_entry ent; - long id; - unsigned long args[6]; - char __data[0]; +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 trace_event_raw_sys_exit { - struct trace_entry ent; - long id; - long ret; - char __data[0]; +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 seccomp_data { - int nr; - __u32 arch; - __u64 instruction_pointer; - __u64 args[6]; +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 trace_event_data_offsets_sys_enter {}; +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; -struct trace_event_data_offsets_sys_exit {}; +typedef void (*acpi_osd_exec_callback)(void *); -typedef void (*btf_trace_csd_queue_cpu)(void *, const unsigned int, unsigned long, smp_call_func_t, struct __call_single_data *); +struct tty_file_private { + struct tty_struct *tty; + struct file *file; + struct list_head list; +}; -typedef void (*btf_trace_csd_function_entry)(void *, smp_call_func_t, struct __call_single_data *); +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; +}; -typedef void (*btf_trace_csd_function_exit)(void *, smp_call_func_t, struct __call_single_data *); +struct drm_gem_close { + __u32 handle; + __u32 pad; +}; -struct call_function_data { - call_single_data_t __attribute__((btf_type_tag("percpu"))) *csd; - cpumask_var_t cpumask; - cpumask_var_t cpumask_ipi; +struct drm_gem_flink { + __u32 handle; + __u32 name; }; -struct trace_event_raw_csd_queue_cpu { - struct trace_entry ent; - unsigned int cpu; - void *callsite; - void *func; - void *csd; - char __data[0]; +struct drm_gem_open { + __u32 name; + __u32 handle; + __u64 size; }; -struct trace_event_raw_csd_function { - struct trace_entry ent; - void *func; - void *csd; - char __data[0]; +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; }; -struct smp_call_on_cpu_struct { - struct work_struct work; - struct completion done; - int (*func)(void *); - void *data; - int ret; - int cpu; +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 trace_event_data_offsets_csd_queue_cpu {}; +struct sgt_dma { + struct scatterlist *sg; + dma_addr_t dma; + dma_addr_t max; +}; -struct trace_event_data_offsets_csd_function {}; +typedef int suspend_state_t; -struct boot_triggers { - const char *event; - char *trigger; +struct cparams { + u16 i; + u16 t; + u16 m; + u16 c; }; enum { - TRACE_PIDS = 1, - TRACE_NO_PIDS = 2, + INTEL_RPS_ENABLED = 0, + INTEL_RPS_ACTIVE = 1, + INTEL_RPS_INTERRUPTS = 2, + INTEL_RPS_TIMER = 3, }; -enum { - FORMAT_HEADER = 1, - FORMAT_FIELD_SEPERATOR = 2, - FORMAT_PRINTFMT = 3, +struct intel_rps_freq_caps { + u8 rp0_freq; + u8 rp1_freq; + u8 min_freq; }; -struct module_string { - struct list_head next; - struct module *module; - char *str; +enum intel_guc_rc_options { + INTEL_GUCRC_HOST_CONTROL = 0, + INTEL_GUCRC_FIRMWARE_CONTROL = 1, }; -struct event_probe_data { - struct trace_event_file *file; - unsigned long count; - int ref; - bool enable; +struct intel_hdcp_gsc_message { + struct i915_vma *vma; + void *hdcp_cmd_in; + void *hdcp_cmd_out; }; -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 memory_dev_type; +struct overlay_registers; -struct node_memory_type_map { - struct memory_dev_type *memtype; - int map_count; +struct intel_overlay { + struct drm_i915_private *i915; + struct intel_context *context; + struct intel_crtc *crtc; + struct i915_vma *vma; + struct i915_vma *old_vma; + struct intel_frontbuffer *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 *reg_bo; + struct overlay_registers *regs; + u32 flip_addr; + struct i915_active last_flip; + void (*flip_complete)(struct intel_overlay *); }; -struct memory_dev_type { - struct list_head tier_sibiling; - int adistance; - nodemask_t nodes; - struct kref kref; +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 demotion_nodes { - nodemask_t preferred; +struct intel_overlay_error_state { + struct overlay_registers regs; + unsigned long base; + u32 dovsta; + u32 isr; }; -struct simple_transaction_argresp { - ssize_t size; - char data[0]; +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 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; +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 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 tfp410_priv { + bool quiet; }; -struct fname; - -struct dir_private_info { - struct rb_root root; - struct rb_node *curr_node; - struct fname *extra_fname; - loff_t last_pos; - __u32 curr_hash; - __u32 curr_minor_hash; - __u32 next_hash; +enum 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, }; -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 *); +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, +}; -typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *); +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, +}; -typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *); +struct virtio_gpu_fence; -typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *); +struct virtio_gpu_framebuffer { + struct drm_framebuffer base; + struct virtio_gpu_fence *fence; +}; -typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *); +struct virtio_gpu_fence_event; -typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *); +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; +}; -typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, tid_t, unsigned int, unsigned int, int); +struct virtio_gpu_fence_event { + struct drm_pending_event base; + struct drm_event event; +}; -typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int); +struct cdrom_tochdr { + __u8 cdth_trk0; + __u8 cdth_trk1; +}; -typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int); +struct cdrom_ti { + __u8 cdti_trk0; + __u8 cdti_ind0; + __u8 cdti_trk1; + __u8 cdti_ind1; +}; -typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int); +union inet_addr { + __u32 all[4]; + __be32 ip; + __be32 ip6[4]; + struct in_addr in; + struct in6_addr in6; +}; -typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); +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]; +}; -typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); +struct netconsole_target { + struct list_head list; + bool enabled; + bool extended; + bool release; + struct netpoll np; +}; -typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, unsigned long, unsigned long); +struct driver_attribute { + struct attribute attr; + ssize_t (*show)(struct device_driver *, char *); + ssize_t (*store)(struct device_driver *, const char *, size_t); +}; -typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_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, +}; -typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, unsigned long); +struct pcmcia_dynids { + struct mutex lock; + struct list_head list; +}; -typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, unsigned long, unsigned long); +struct pcmcia_device; -typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, unsigned long, unsigned long); +struct pcmcia_device_id; -typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, unsigned long, unsigned long, unsigned long); +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; +}; -typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, unsigned long, tid_t); +struct config_t; -struct jbd2_journal_block_tail { - __be32 t_checksum; +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 trace_event_raw_jbd2_checkpoint { - struct trace_entry ent; - dev_t dev; - int result; - char __data[0]; +struct config_t { + struct kref ref; + unsigned int state; + struct resource io[2]; + struct resource mem[4]; }; -struct trace_event_raw_jbd2_commit { - struct trace_entry ent; - dev_t dev; - char sync_commit; - tid_t transaction; - char __data[0]; +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 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 pcmcia_dynid { + struct list_head node; + struct pcmcia_device_id id; }; -struct trace_event_raw_jbd2_submit_inode_data { - struct trace_entry ent; - dev_t dev; - ino_t ino; - char __data[0]; -}; +typedef struct config_t config_t; -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]; +enum snoop_when { + SUBMIT = 0, + COMPLETE = 1, }; -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 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 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 usb_memory; -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 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 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 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 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 usbdevfs_iso_packet_desc { + unsigned int length; + unsigned int actual_length; + unsigned int status; }; -struct trace_event_raw_jbd2_write_superblock { - struct trace_entry ent; - dev_t dev; - blk_opf_t write_flags; - char __data[0]; +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 trace_event_raw_jbd2_lock_buffer_stall { - struct trace_entry ent; - dev_t dev; - unsigned long stall_ms; - char __data[0]; -}; +typedef u32 compat_caddr_t; -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 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 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 usbdevfs_ioctl32 { + s32 ifno; + s32 ioctl_code; + compat_caddr_t data; }; -struct trace_event_raw_jbd2_shrink_checkpoint_list { - struct trace_entry ent; - dev_t dev; - tid_t first_tid; - tid_t tid; - tid_t last_tid; - unsigned long nr_freed; - tid_t next_tid; - char __data[0]; +struct usbdevfs_ioctl { + int ifno; + int ioctl_code; + void __attribute__((btf_type_tag("user"))) *data; }; -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 usbdevfs_setinterface { + unsigned int interface; + unsigned int altsetting; }; -enum p9_cache_bits { - CACHE_NONE = 0, - CACHE_FILE = 1, - CACHE_META = 2, - CACHE_WRITEBACK = 4, - CACHE_LOOSE = 8, - CACHE_FSCACHE = 128, +struct usbdevfs_ctrltransfer { + __u8 bRequestType; + __u8 bRequest; + __u16 wValue; + __u16 wIndex; + __u16 wLength; + __u32 timeout; + void __attribute__((btf_type_tag("user"))) *data; }; -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, -} __attribute__((mode(byte))); - -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 usbdevfs_disconnectsignal { + unsigned int signr; + void __attribute__((btf_type_tag("user"))) *context; }; -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; +struct usbdevfs_bulktransfer32 { + compat_uint_t ep; + compat_uint_t len; + compat_uint_t timeout; + compat_caddr_t data; }; -struct p9_rstatfs { - u32 type; - u32 bsize; - u64 blocks; - u64 bfree; - u64 bavail; - u64 files; - u64 ffree; - u64 fsid; - u32 namelen; +struct usbdevfs_bulktransfer { + unsigned int ep; + unsigned int len; + unsigned int timeout; + void __attribute__((btf_type_tag("user"))) *data; }; -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 mptcp_add_subflow; - 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; +struct usbdevfs_getdriver { + unsigned int interface; + char driver[256]; }; -struct xattr { - const char *name; - void *value; - size_t value_len; +struct usbdevfs_disconnect_claim { + unsigned int interface; + unsigned int flags; + char driver[256]; }; -typedef int (*initxattrs)(struct inode *, const struct xattr *, void *); - -enum bio_merge_status { - BIO_MERGE_OK = 0, - BIO_MERGE_NONE = 1, - BIO_MERGE_FAILED = 2, +struct usbdevfs_ctrltransfer32 { + u8 bRequestType; + u8 bRequest; + u16 wValue; + u16 wIndex; + u16 wLength; + u32 timeout; + compat_caddr_t data; }; -struct req_iterator { - struct bvec_iter iter; - struct bio *bio; +struct usbdevfs_disconnectsignal32 { + compat_int_t signr; + compat_caddr_t context; }; -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 usbdevfs_connectinfo { + unsigned int devnum; + unsigned char slow; }; -typedef int (*arch_set_vga_state_t)(struct pci_dev *, bool, unsigned int, u32); +struct usbdevfs_conninfo_ex { + __u32 size; + __u32 busnum; + __u32 devnum; + __u32 speed; + __u8 num_ports; + __u8 ports[7]; +}; -struct pci_reset_fn_method { - int (*reset_fn)(struct pci_dev *, bool); - char *name; +struct usbdevfs_streams { + unsigned int num_streams; + unsigned int num_eps; + unsigned char eps[0]; }; -struct bus_attribute { - struct attribute attr; - ssize_t (*show)(const struct bus_type *, char *); - ssize_t (*store)(const struct bus_type *, const char *, size_t); +enum serio_event_type { + SERIO_RESCAN_PORT = 0, + SERIO_RECONNECT_PORT = 1, + SERIO_RECONNECT_SUBTREE = 2, + SERIO_REGISTER_PORT = 3, + SERIO_ATTACH_DRIVER = 4, }; -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 serio_event { + enum serio_event_type type; + void *object; + struct module *owner; + struct list_head node; }; -enum pcie_reset_state { - pcie_deassert_reset = 1, - pcie_warm_reset = 2, - pcie_hot_reset = 3, +struct kvm_ptp_clock { + struct ptp_clock *ptp_clock; + struct ptp_clock_info caps; }; -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, +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]; }; -enum pcie_link_width { - PCIE_LNK_WIDTH_RESRV = 0, - PCIE_LNK_X1 = 1, - PCIE_LNK_X2 = 2, - PCIE_LNK_X4 = 4, - PCIE_LNK_X8 = 8, - PCIE_LNK_X12 = 12, - PCIE_LNK_X16 = 16, - PCIE_LNK_X32 = 32, - PCIE_LNK_WIDTH_UNKNOWN = 255, +struct thermal_state { + struct _thermal_state core_throttle; + struct _thermal_state core_power_limit; + struct _thermal_state package_throttle; + struct _thermal_state package_power_limit; + struct _thermal_state core_thresh0; + struct _thermal_state core_thresh1; + struct _thermal_state pkg_thresh0; + struct _thermal_state pkg_thresh1; }; -enum 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, +struct dm_kcopyd_throttle { + unsigned int throttle; + unsigned int num_io_jobs; + unsigned int io_period; + unsigned int total_period; + unsigned int last_jiffies; }; -struct pci_cap_saved_data { - u16 cap_nr; - bool cap_extended; - unsigned int size; - u32 data[0]; +enum dm_raid1_error { + DM_RAID1_WRITE_ERROR = 0, + DM_RAID1_FLUSH_ERROR = 1, + DM_RAID1_SYNC_ERROR = 2, + DM_RAID1_READ_ERROR = 3, }; -struct pci_cap_saved_state { - struct hlist_node next; - struct pci_cap_saved_data cap; +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 pci_pme_device { +struct dm_kcopyd_client; + +struct mirror_set { + struct dm_target *ti; struct list_head list; - struct pci_dev *dev; + 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 pci_saved_state { - u32 config_space[16]; - struct pci_cap_saved_data cap[0]; +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 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; +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; }; -struct acpi_pcc_info { - u8 subspace_id; - u16 length; - u8 *internal_buffer; +enum tcpa_event_types { + PREBOOT = 0, + POST_CODE = 1, + UNUSED = 2, + NO_ACTION = 3, + SEPARATOR = 4, + ACTION = 5, + EVENT_TAG = 6, + SCRTM_CONTENTS = 7, + SCRTM_VERSION = 8, + CPU_MICROCODE = 9, + PLATFORM_CONFIG_FLAGS = 10, + TABLE_OF_DEVICES = 11, + COMPACT_HASH = 12, + IPL = 13, + IPL_PARTITION_DATA = 14, + NONHOST_CODE = 15, + NONHOST_CONFIG = 16, + NONHOST_INFO = 17, }; -struct 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 tpm_digest { + u16 alg_id; + u8 digest[64]; }; -struct pcc_mbox_chan; +struct tcg_pcr_event2_head { + u32 pcr_idx; + u32 event_type; + u32 count; + struct tpm_digest digests[0]; +}; -struct pcc_data { - struct pcc_mbox_chan *pcc_chan; - void *pcc_comm_addr; - struct completion done; - struct mbox_client cl; - struct acpi_pcc_info ctx; +struct tcg_efi_specid_event_algs { + u16 alg_id; + u16 digest_size; }; -struct mbox_chan; +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 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 tcg_event_field { + u32 event_size; + u8 event[0]; }; -struct mbox_controller; +struct tcg_pcr_event { + u32 pcr_idx; + u32 event_type; + u8 digest[20]; + u32 event_size; + u8 event[0]; +}; -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 linux_efi_tpm_eventlog { + u32 size; + u32 final_events_preboot_size; + u8 version; + u8 log[0]; }; -struct mbox_chan_ops; +struct efi_tcg2_final_events_table { + u64 version; + u64 nr_events; + u8 events[0]; +}; -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 efi_system_resource_table { + u32 fw_resource_count; + u32 fw_resource_count_max; + u64 fw_resource_version; + u8 entries[0]; }; -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 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); }; -typedef u64 acpi_integer; +struct efi_system_resource_entry_v1; -enum acpi_srat_type { - ACPI_SRAT_TYPE_CPU_AFFINITY = 0, - ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1, - ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, - ACPI_SRAT_TYPE_GICC_AFFINITY = 3, - ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, - ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, - ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, - ACPI_SRAT_TYPE_RESERVED = 7, +struct esre_entry { + union { + struct efi_system_resource_entry_v1 *esre1; + } esre; + struct kobject kobj; + struct list_head list; }; -enum acpi_cedt_type { - ACPI_CEDT_TYPE_CHBS = 0, - ACPI_CEDT_TYPE_CFMWS = 1, - ACPI_CEDT_TYPE_CXIMS = 2, - ACPI_CEDT_TYPE_RDPAS = 3, - ACPI_CEDT_TYPE_RESERVED = 4, +struct 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 acpi_table_srat { - struct acpi_table_header header; - u32 table_revision; - u64 reserved; +struct apple_key_translation { + u16 from; + u16 to; + u8 flags; }; -struct acpi_srat_cpu_affinity { - struct acpi_subtable_header header; - u8 proximity_domain_lo; - u8 apic_id; - u32 flags; - u8 local_sapic_eid; - u8 proximity_domain_hi[3]; - u32 clock_domain; +struct apple_non_apple_keyboard { + char *name; }; -struct acpi_srat_mem_affinity { - struct acpi_subtable_header header; - u32 proximity_domain; - u16 reserved; - u64 base_address; - u64 length; - u32 reserved1; - u32 flags; - u64 reserved2; -} __attribute__((packed)); +struct apple_sc_backlight; -struct acpi_srat_x2apic_cpu_affinity { - struct acpi_subtable_header header; - u16 reserved; - u32 proximity_domain; - u32 apic_id; - u32 flags; - u32 clock_domain; - u32 reserved2; +struct 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 acpi_srat_gicc_affinity { - struct acpi_subtable_header header; - u32 proximity_domain; - u32 acpi_processor_uid; - u32 flags; - u32 clock_domain; -} __attribute__((packed)); - -struct acpi_srat_generic_affinity { - struct acpi_subtable_header header; - u8 reserved; - u8 device_handle_type; - u32 proximity_domain; - u8 device_handle[16]; - u32 flags; - u32 reserved1; +struct 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 acpi_table_slit { - struct acpi_table_header header; - u64 locality_count; - u8 entry[0]; -} __attribute__((packed)); +struct apple_backlight_config_report { + u8 report_id; + u8 version; + u16 backlight_off; + u16 backlight_on_min; + u16 backlight_on_max; +}; -struct acpi_cedt_cfmws { - struct acpi_cedt_header header; - u32 reserved1; - u64 base_hpa; - u64 window_size; - u8 interleave_ways; - u8 interleave_arithmetic; - u16 reserved2; - u32 granularity; - u16 restrictions; - u16 qtg_id; - u32 interleave_targets[0]; -} __attribute__((packed)); +struct apple_backlight_set_report { + u8 report_id; + u8 version; + u16 backlight; + u16 rate; +}; -typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const unsigned long); +struct snd_fasync { + struct fasync_struct *fasync; + int signal; + int poll; + int on; + struct list_head list; +}; -struct acpi_subtable_proc { - int id; - acpi_tbl_entry_handler handler; - acpi_tbl_entry_handler_arg handler_arg; - void *arg; - int count; +struct snd_pci_quirk { + unsigned short subvendor; + unsigned short subdevice; + unsigned short subdevice_mask; + int value; }; -struct virt_dma_desc { - struct dma_async_tx_descriptor tx; - struct dmaengine_result tx_result; - struct list_head node; +enum { + SND_CTL_SUBDEV_PCM = 0, + SND_CTL_SUBDEV_RAWMIDI = 1, + SND_CTL_SUBDEV_ITEMS = 2, }; -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 aper_size_info_16 { - int size; - int num_entries; - int page_order; - u16 size_value; -}; - -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 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 drm_memory_stats { - u64 shared; - u64 private; - u64 resident; - u64 purgeable; - u64 active; +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 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; +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; }; -struct drm_flip_task { - struct list_head node; - void *data; -}; - -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 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 cparams { - u16 i; - u16 t; - u16 m; - u16 c; -}; +typedef int (*snd_kctl_ioctl_func_t)(struct snd_card *, struct snd_ctl_file *, unsigned int, unsigned long); -enum { - INTEL_RPS_ENABLED = 0, - INTEL_RPS_ACTIVE = 1, - INTEL_RPS_INTERRUPTS = 2, - INTEL_RPS_TIMER = 3, +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]; }; -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 *, 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_hda_send_cmd)(void *, struct hdac_bus *, unsigned int); -typedef void (*btf_trace_i915_ppgtt_create)(void *, struct i915_address_space *); +typedef void (*btf_trace_hda_get_response)(void *, struct hdac_bus *, unsigned int, unsigned int); -typedef void (*btf_trace_i915_ppgtt_release)(void *, struct i915_address_space *); +typedef void (*btf_trace_hda_unsol_event)(void *, struct hdac_bus *, u32, u32); -typedef void (*btf_trace_i915_context_create)(void *, struct i915_gem_context *); +typedef void (*btf_trace_snd_hdac_stream_start)(void *, struct hdac_bus *, struct hdac_stream *); -typedef void (*btf_trace_i915_context_free)(void *, struct i915_gem_context *); +typedef void (*btf_trace_snd_hdac_stream_stop)(void *, struct hdac_bus *, struct hdac_stream *); -struct trace_event_raw_i915_gem_object_create { +struct trace_event_raw_hda_send_cmd { struct trace_entry ent; - struct drm_i915_gem_object *obj; - u64 size; + u32 __data_loc_name; + u32 cmd; char __data[0]; }; -struct trace_event_raw_i915_gem_shrink { +struct trace_event_raw_hda_get_response { struct trace_entry ent; - int dev; - unsigned long target; - unsigned int flags; + u32 __data_loc_name; + u32 addr; + u32 res; char __data[0]; }; -struct trace_event_raw_i915_vma_bind { +struct trace_event_raw_hda_unsol_event { struct trace_entry ent; - struct drm_i915_gem_object *obj; - struct i915_address_space *vm; - u64 offset; - u64 size; - unsigned int flags; + u32 __data_loc_name; + u32 res; + u32 res_ex; char __data[0]; }; -struct trace_event_raw_i915_vma_unbind { +struct trace_event_raw_hdac_stream { struct trace_entry ent; - struct drm_i915_gem_object *obj; - struct i915_address_space *vm; - u64 offset; - u64 size; + unsigned char stream_tag; 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_data_offsets_hda_send_cmd { + u32 name; }; -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_data_offsets_hda_get_response { + u32 name; }; -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_data_offsets_hda_unsol_event { + u32 name; }; -struct trace_event_raw_i915_gem_object { - struct trace_entry ent; - struct drm_i915_gem_object *obj; - char __data[0]; -}; +struct trace_event_data_offsets_hdac_stream {}; -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 cgroup_cls_state { + struct cgroup_subsys_state css; + u32 classid; }; -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 update_classid_context { + u32 classid; + unsigned int batch; }; -struct trace_event_raw_i915_gem_evict_vm { - struct trace_entry ent; - u32 dev; - struct i915_address_space *vm; - char __data[0]; +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, }; -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]; +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 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 pause_req_info { + struct ethnl_req_info base; + enum ethtool_mac_stats_src src; }; -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 pause_reply_data { + struct ethnl_reply_data base; + struct ethtool_pauseparam pauseparam; + struct ethtool_pause_stats pausestat; }; -struct trace_event_raw_i915_reg_rw { - struct trace_entry ent; - u64 val; - u32 reg; - u16 write; - u16 len; - char __data[0]; +enum nf_ct_sysctl_index { + NF_SYSCTL_CT_MAX = 0, + NF_SYSCTL_CT_COUNT = 1, + NF_SYSCTL_CT_BUCKETS = 2, + NF_SYSCTL_CT_CHECKSUM = 3, + NF_SYSCTL_CT_LOG_INVALID = 4, + NF_SYSCTL_CT_EXPECT_MAX = 5, + NF_SYSCTL_CT_ACCT = 6, + NF_SYSCTL_CT_PROTO_TIMEOUT_GENERIC = 7, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_SENT = 8, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_RECV = 9, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_ESTABLISHED = 10, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_FIN_WAIT = 11, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE_WAIT = 12, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_LAST_ACK = 13, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_TIME_WAIT = 14, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE = 15, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_RETRANS = 16, + NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_UNACK = 17, + NF_SYSCTL_CT_PROTO_TCP_LOOSE = 18, + NF_SYSCTL_CT_PROTO_TCP_LIBERAL = 19, + NF_SYSCTL_CT_PROTO_TCP_IGNORE_INVALID_RST = 20, + NF_SYSCTL_CT_PROTO_TCP_MAX_RETRANS = 21, + NF_SYSCTL_CT_PROTO_TIMEOUT_UDP = 22, + NF_SYSCTL_CT_PROTO_TIMEOUT_UDP_STREAM = 23, + NF_SYSCTL_CT_PROTO_TIMEOUT_ICMP = 24, + NF_SYSCTL_CT_PROTO_TIMEOUT_ICMPV6 = 25, + NF_SYSCTL_CT_LWTUNNEL = 26, + __NF_SYSCTL_CT_LAST_SYSCTL = 27, }; -struct trace_event_raw_i915_ppgtt { - struct trace_entry ent; - struct i915_address_space *vm; - u32 dev; - char __data[0]; +enum udp_conntrack { + UDP_CT_UNREPLIED = 0, + UDP_CT_REPLIED = 1, + UDP_CT_MAX = 2, }; -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]; +enum tcp_conntrack { + TCP_CONNTRACK_NONE = 0, + TCP_CONNTRACK_SYN_SENT = 1, + TCP_CONNTRACK_SYN_RECV = 2, + TCP_CONNTRACK_ESTABLISHED = 3, + TCP_CONNTRACK_FIN_WAIT = 4, + TCP_CONNTRACK_CLOSE_WAIT = 5, + TCP_CONNTRACK_LAST_ACK = 6, + TCP_CONNTRACK_TIME_WAIT = 7, + TCP_CONNTRACK_CLOSE = 8, + TCP_CONNTRACK_LISTEN = 9, + TCP_CONNTRACK_MAX = 10, + TCP_CONNTRACK_IGNORE = 11, + TCP_CONNTRACK_RETRANS = 12, + TCP_CONNTRACK_UNACK = 13, + TCP_CONNTRACK_TIMEOUT_MAX = 14, }; -struct 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 nf_conntrack_nat_helper { + struct list_head list; + char mod_name[16]; + struct module *module; +}; -struct trace_event_data_offsets_i915_gem_object {}; +struct nf_ct_helper_expectfn { + struct list_head head; + const char *name; + void (*expectfn)(struct nf_conn *, struct nf_conntrack_expect *); +}; -struct trace_event_data_offsets_i915_gem_evict {}; +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 trace_event_data_offsets_i915_gem_evict_node {}; +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 trace_event_data_offsets_i915_gem_evict_vm {}; +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 trace_event_data_offsets_i915_request_queue {}; +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 trace_event_data_offsets_i915_request {}; +struct nf_ct_sip_master { + unsigned int register_cseq; + unsigned int invite_cseq; + __be16 forced_dport; +}; -struct trace_event_data_offsets_i915_request_wait_begin {}; +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 trace_event_data_offsets_i915_reg_rw {}; +struct xt_policy_spec { + __u8 saddr: 1; + __u8 daddr: 1; + __u8 proto: 1; + __u8 mode: 1; + __u8 spi: 1; + __u8 reqid: 1; +}; -struct trace_event_data_offsets_i915_ppgtt {}; +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 trace_event_data_offsets_i915_context {}; +struct xt_policy_info { + struct xt_policy_elem pol[4]; + __u16 flags; + __u16 len; +}; -struct i915_power_well_desc_list { - const struct i915_power_well_desc *list; - u8 count; +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 virtio_gpu_object_shmem { - struct virtio_gpu_object base; +enum sk_action { + SK_DROP = 0, + SK_PASS = 1, }; -enum { - Lo_unbound = 0, - Lo_bound = 1, - Lo_rundown = 2, - Lo_deleting = 3, +struct inet_timewait_sock { + struct sock_common __tw_common; + __u32 tw_mark; + volatile unsigned char tw_substate; + unsigned char tw_rcv_wscale; + __be16 tw_sport; + unsigned int tw_transparent: 1; + unsigned int tw_flowlabel: 20; + unsigned int tw_usec_ts: 1; + unsigned int tw_pad: 2; + unsigned int tw_tos: 8; + u32 tw_txhash; + u32 tw_priority; + struct timer_list tw_timer; + struct inet_bind_bucket *tw_tb; + struct inet_bind2_bucket *tw_tb2; + struct hlist_node tw_bind2_node; }; +typedef u32 inet_ehashfn_t(const struct net *, const __be32, const __u16, const __be32, const __be16); + enum { - LO_FLAGS_READ_ONLY = 1, - LO_FLAGS_AUTOCLEAR = 4, - LO_FLAGS_PARTSCAN = 8, - LO_FLAGS_DIRECT_IO = 16, + 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, }; -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; +enum { + XFRM_MODE_FLAG_TUNNEL = 1, }; -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; +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, }; -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; +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, }; -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]; -}; +struct km_event; -struct loop_info64 { - __u64 lo_device; - __u64 lo_inode; - __u64 lo_rdevice; - __u64 lo_offset; - __u64 lo_sizelimit; - __u32 lo_number; - __u32 lo_encrypt_type; - __u32 lo_encrypt_key_size; - __u32 lo_flags; - __u8 lo_file_name[64]; - __u8 lo_crypt_name[64]; - __u8 lo_encrypt_key[32]; - __u64 lo_init[2]; -}; +struct xfrm_migrate; -typedef unsigned long __kernel_old_dev_t; +struct xfrm_kmaddress; -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 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 loop_config { - __u32 fd; - __u32 block_size; - struct loop_info64 info; - __u64 __reserved[8]; +struct km_event { + union { + u32 hard; + u32 proto; + u32 byid; + u32 aevent; + u32 type; + } data; + u32 seq; + u32 portid; + u32 event; + struct net *net; }; -enum { - D0TIM = 128, - D1TIM = 132, - PM = 7, - MDM = 768, - UDM = 458752, - PPE = 1073741824, - USD = -2147483648, +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; }; -typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t); - -struct e1000_reg_info { - u32 ofs; - char *name; +struct xfrm_kmaddress { + xfrm_address_t local; + xfrm_address_t remote; + u32 reserved; + u16 family; }; -enum pkt_hash_types { - PKT_HASH_TYPE_NONE = 0, - PKT_HASH_TYPE_L2 = 1, - PKT_HASH_TYPE_L3 = 2, - PKT_HASH_TYPE_L4 = 3, +struct xfrmk_sadinfo { + u32 sadhcnt; + u32 sadhmcnt; + u32 sadcnt; }; -enum latency_range { - lowest_latency = 0, - low_latency = 1, - bulk_latency = 2, - latency_invalid = 255, +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 trace_event_raw_e1000e_trace_mac_register { - struct trace_entry ent; - uint32_t reg; - char __data[0]; +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; }; -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 ip_auth_hdr { + __u8 nexthdr; + __u8 hdrlen; + __be16 reserved; + __be32 spi; + __be32 seq_no; + __u8 auth_data[0]; }; -struct e1000_context_desc { - union { - __le32 ip_config; - struct { - u8 ipcss; - u8 ipcso; - __le16 ipcse; - } ip_fields; - } lower_setup; +struct xfrm_skb_cb { + struct xfrm_tunnel_skb_cb header; union { - __le32 tcp_config; struct { - u8 tucss; - u8 tucso; - __le16 tucse; - } tcp_fields; - } upper_setup; - __le32 cmd_and_length; - union { - __le32 data; + __u32 low; + __u32 hi; + } output; struct { - u8 status; - u8 hdr_len; - __le16 mss; - } fields; - } tcp_seg_setup; + __be32 low; + __be32 hi; + } input; + } seq; }; -struct my_u0 { - __le64 a; - __le64 b; +struct ah_skb_cb { + struct xfrm_skb_cb xfrm; + void *tmp; }; -struct my_u1 { - __le64 a; - __le64 b; - __le64 c; - __le64 d; +struct rt0_hdr { + struct ipv6_rt_hdr rt_hdr; + __u32 reserved; + struct in6_addr addr[0]; }; -struct trace_event_data_offsets_e1000e_trace_mac_register {}; - -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 crypto_ahash { + bool using_shash; + unsigned int statesize; + unsigned int reqsize; + struct crypto_tfm base; }; -struct efivar_operations; - -struct efivars { - struct kset *kset; - const struct efivar_operations *ops; +struct xfrm_algo_aead_info { + char *geniv; + u16 icv_truncbits; }; -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); - -typedef efi_status_t efi_query_variable_info_t(u32, u64 *, u64 *, u64 *); - -struct efivar_operations { - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_set_variable_t *set_variable_nonblocking; - efi_query_variable_store_t *query_variable_store; - efi_query_variable_info_t *query_variable_info; +struct xfrm_algo_auth_info { + u16 icv_truncbits; + u16 icv_fullbits; }; -typedef u16 ucs2_char_t; +struct xfrm_algo_encr_info { + char *geniv; + u16 blockbits; + u16 defkeybits; +}; -struct pcm_format_data { - unsigned char width; - unsigned char phys; - signed char le; - signed char signd; - unsigned char silence[8]; +struct xfrm_algo_comp_info { + u16 threshold; }; -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 sadb_alg { + __u8 sadb_alg_id; + __u8 sadb_alg_ivlen; + __u16 sadb_alg_minbits; + __u16 sadb_alg_maxbits; + __u16 sadb_alg_reserved; }; -struct sg_page_iter { - struct scatterlist *sg; - unsigned int sg_pgoffset; - unsigned int __nents; - int __pg_advance; +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; }; -struct sg_dma_page_iter { - struct sg_page_iter base; +struct tmp_ext { + struct in6_addr daddr; + char hdrs[0]; }; -struct snd_dma_sg_fallback { - bool use_dma_alloc_coherent; - size_t count; - struct page **pages; - dma_addr_t *addrs; +struct ah_data { + int icv_full_len; + int icv_trunc_len; + struct crypto_ahash *ahash; }; -struct net_device_devres { - struct net_device *ndev; +struct rpc_sysfs_xprt_switch { + struct kobject kobject; + struct net *net; + struct rpc_xprt_switch *xprt_switch; + struct rpc_xprt *xprt; }; -struct tc_ratespec { - unsigned char cell_log; - __u8 linklayer; - unsigned short overhead; - short cell_align; - unsigned short mpu; - __u32 rate; +struct rpc_sysfs_xprt { + struct kobject kobject; + struct rpc_xprt *xprt; + struct rpc_xprt_switch *xprt_switch; }; -struct qdisc_rate_table { - struct tc_ratespec rate; - u32 data[256]; - struct qdisc_rate_table *next; - int refcnt; +typedef struct rpc_xprt * (*xprt_switch_find_xprt_t)(struct rpc_xprt_switch *, const struct rpc_xprt *); + +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 tc_link_layer { - TC_LINKLAYER_UNAWARE = 0, - TC_LINKLAYER_ETHERNET = 1, - TC_LINKLAYER_ATM = 2, +struct michael_mic_ctx { + u32 l; + u32 r; }; enum { - TCA_STAB_UNSPEC = 0, - TCA_STAB_BASE = 1, - TCA_STAB_DATA = 2, - __TCA_STAB_MAX = 3, + TKIP_DECRYPT_OK = 0, + TKIP_DECRYPT_NO_EXT_IV = -1, + TKIP_DECRYPT_INVALID_KEYIDX = -2, + TKIP_DECRYPT_REPLAY = -3, }; -enum tc_root_command { - TC_ROOT_GRAFT = 0, +enum { + LOGIC_PIO_INDIRECT = 0, + LOGIC_PIO_CPU_MMIO = 1, }; -struct Qdisc_class_common { - u32 classid; - struct hlist_node hnode; -}; +struct logic_pio_host_ops; -struct qdisc_watchdog { - struct hrtimer timer; - struct Qdisc *qdisc; +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 check_loop_arg { - struct qdisc_walker w; - struct Qdisc *p; - int depth; +struct logic_pio_host_ops { + u32 (*in)(void *, unsigned long, size_t); + void (*out)(void *, unsigned long, u32, size_t); + u32 (*ins)(void *, unsigned long, void *, size_t, unsigned int); + void (*outs)(void *, unsigned long, const void *, size_t, unsigned int); }; -struct tc_bind_class_args { - struct qdisc_walker w; - unsigned long new_cl; - u32 portid; - u32 clid; +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 qdisc_dump_args { - struct qdisc_walker w; - struct sk_buff *skb; - struct netlink_callback *cb; +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, }; -struct tc_root_qopt_offload { - enum tc_root_command command; - u32 handle; - bool ingress; +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 Qdisc_class_hash { - struct hlist_head *hash; - unsigned int hashsize; - unsigned int hashmask; - unsigned int hashelems; -}; +struct ghcb; -struct tc_query_caps_base { - enum tc_setup_type type; - void *caps; +struct x86_hyper_runtime { + void (*pin_vcpu)(int); + void (*sev_es_hcall_prepare)(struct ghcb *, struct pt_regs *); + bool (*sev_es_hcall_finish)(struct ghcb *, struct pt_regs *); + bool (*is_private_mmio)(u64); }; -struct tcf_bind_args { - struct tcf_walker w; - unsigned long base; - unsigned long cl; - u32 classid; +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; }; -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 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 module_reply_data { - struct ethnl_reply_data base; - struct ethtool_module_power_mode_params power; +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; }; -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, +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; + u8 vtl; + union { + u32 isolation_config_a; + struct { + u32 paravisor_present: 1; + u32 reserved_a1: 31; + }; + }; + union { + u32 isolation_config_b; + struct { + u32 cvm_type: 4; + u32 reserved_b1: 1; + u32 shared_gpa_boundary_active: 1; + u32 shared_gpa_boundary_bits: 6; + u32 reserved_b2: 20; + }; + }; + u64 shared_gpa_boundary; }; -enum tcp_fastopen_client_fail { - TFO_STATUS_UNSPEC = 0, - TFO_COOKIE_UNAVAILABLE = 1, - TFO_DATA_NOT_ACKED = 2, - TFO_SYN_RETRANSMITTED = 3, +enum hv_isolation_type { + HV_ISOLATION_TYPE_NONE = 0, + HV_ISOLATION_TYPE_VBS = 1, + HV_ISOLATION_TYPE_SNP = 2, + HV_ISOLATION_TYPE_TDX = 3, }; -struct unix_skb_parms { - struct pid *pid; - kuid_t uid; - kgid_t gid; - struct scm_fp_list *fp; - u32 secid; - u32 consumed; -}; +struct cpc_reg { + u8 descriptor; + u16 length; + u8 space_id; + u8 bit_width; + u8 bit_offset; + u8 access_width; + u64 address; +} __attribute__((packed)); -struct xdr_skb_reader { - struct sk_buff *skb; - unsigned int offset; - size_t count; - __wsum csum; +struct machine_ops { + void (*restart)(char *); + void (*halt)(); + void (*power_off)(); + void (*shutdown)(); + void (*crash_shutdown)(struct pt_regs *); + void (*emergency_restart)(); }; -typedef size_t (*xdr_skb_read_actor)(struct xdr_skb_reader *, void *, size_t); - -typedef unsigned int ieee80211_rx_result; +typedef void (*nmi_shootdown_cb)(int, struct pt_regs *); -enum ieee80211_offload_flags { - IEEE80211_OFFLOAD_ENCAP_ENABLED = 1, - IEEE80211_OFFLOAD_ENCAP_4ADDR = 2, - IEEE80211_OFFLOAD_DECAP_ENABLED = 4, +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 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_TLV_AT_END = 1048576, - RX_FLAG_MIC_STRIPPED = 2097152, - RX_FLAG_ALLOW_SAME_PN = 4194304, - RX_FLAG_ICV_STRIPPED = 8388608, - RX_FLAG_AMPDU_EOF_BIT = 16777216, - RX_FLAG_AMPDU_EOF_BIT_KNOWN = 33554432, - RX_FLAG_RADIOTAP_HE = 67108864, - RX_FLAG_RADIOTAP_HE_MU = 134217728, - RX_FLAG_RADIOTAP_LSIG = 268435456, - RX_FLAG_NO_PSDU = 536870912, - RX_FLAG_8023 = 1073741824, +enum reboot_mode { + REBOOT_UNDEFINED = -1, + REBOOT_COLD = 0, + REBOOT_WARM = 1, + REBOOT_HARD = 2, + REBOOT_SOFT = 3, + REBOOT_GPIO = 4, }; -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 allow_write_msrs { + MSR_WRITES_ON = 0, + MSR_WRITES_OFF = 1, + MSR_WRITES_DEFAULT = 2, }; -enum { - IEEE80211_RX_MSG = 1, - IEEE80211_TX_STATUS_MSG = 2, +struct pv_info { + const char *name; }; -enum ieee80211_packet_rx_flags { - IEEE80211_RX_AMSDU = 8, - IEEE80211_RX_MALFORMED_ACTION_FRM = 16, - IEEE80211_RX_DEFERRED_RELEASE = 32, +struct pv_cpu_ops { + void (*io_delay)(); }; -enum mac80211_drop_reason { - RX_CONTINUE = 1, - RX_QUEUED = 0, - RX_DROP_MONITOR = 131072, - RX_DROP_UNUSABLE = 65536, - RX_DROP_M_UNEXPECTED_4ADDR_FRAME = 131073, - RX_DROP_M_BAD_BCN_KEYIDX = 131074, - RX_DROP_M_BAD_MGMT_KEYIDX = 131075, - RX_DROP_U_MIC_FAIL = 65537, - RX_DROP_U_REPLAY = 65538, - RX_DROP_U_BAD_MMIE = 65539, -}; +struct pv_irq_ops {}; -enum ieee80211_rx_flags { - IEEE80211_RX_CMNTR = 1, - IEEE80211_RX_BEACON_REPORTED = 2, -}; +struct flush_tlb_info; -enum wiphy_opmode_flag { - STA_OPMODE_MAX_BW_CHANGED = 1, - STA_OPMODE_SMPS_MODE_CHANGED = 2, - STA_OPMODE_N_SS_CHANGED = 4, +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); }; -enum ieee80211_ht_chanwidth_values { - IEEE80211_HT_CHANWIDTH_20MHZ = 0, - IEEE80211_HT_CHANWIDTH_ANY = 1, +struct paravirt_callee_save { + void *func; }; -enum ieee80211_vht_actioncode { - WLAN_VHT_ACTION_COMPRESSED_BF = 0, - WLAN_VHT_ACTION_GROUPID_MGMT = 1, - WLAN_VHT_ACTION_OPMODE_NOTIF = 2, +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; }; -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, +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 ieee80211_unprotected_wnm_actioncode { - WLAN_UNPROTECTED_WNM_ACTION_TIM = 0, - WLAN_UNPROTECTED_WNM_ACTION_TIMING_MEASUREMENT_RESPONSE = 1, +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 ieee80211_sa_query_action { - WLAN_ACTION_SA_QUERY_REQUEST = 0, - WLAN_ACTION_SA_QUERY_RESPONSE = 1, -}; +struct wq_flusher; -enum skb_drop_reason_subsys { - SKB_DROP_REASON_SUBSYS_CORE = 0, - SKB_DROP_REASON_SUBSYS_MAC80211_UNUSABLE = 1, - SKB_DROP_REASON_SUBSYS_MAC80211_MONITOR = 2, - SKB_DROP_REASON_SUBSYS_NUM = 3, -}; +struct worker; -enum ieee80211_radiotap_presence { - IEEE80211_RADIOTAP_TSFT = 0, - IEEE80211_RADIOTAP_FLAGS = 1, - IEEE80211_RADIOTAP_RATE = 2, - IEEE80211_RADIOTAP_CHANNEL = 3, - IEEE80211_RADIOTAP_FHSS = 4, - IEEE80211_RADIOTAP_DBM_ANTSIGNAL = 5, - IEEE80211_RADIOTAP_DBM_ANTNOISE = 6, - IEEE80211_RADIOTAP_LOCK_QUALITY = 7, - IEEE80211_RADIOTAP_TX_ATTENUATION = 8, - IEEE80211_RADIOTAP_DB_TX_ATTENUATION = 9, - IEEE80211_RADIOTAP_DBM_TX_POWER = 10, - IEEE80211_RADIOTAP_ANTENNA = 11, - IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12, - IEEE80211_RADIOTAP_DB_ANTNOISE = 13, - IEEE80211_RADIOTAP_RX_FLAGS = 14, - IEEE80211_RADIOTAP_TX_FLAGS = 15, - IEEE80211_RADIOTAP_RTS_RETRIES = 16, - IEEE80211_RADIOTAP_DATA_RETRIES = 17, - IEEE80211_RADIOTAP_MCS = 19, - IEEE80211_RADIOTAP_AMPDU_STATUS = 20, - IEEE80211_RADIOTAP_VHT = 21, - IEEE80211_RADIOTAP_TIMESTAMP = 22, - IEEE80211_RADIOTAP_HE = 23, - IEEE80211_RADIOTAP_HE_MU = 24, - IEEE80211_RADIOTAP_ZERO_LEN_PSDU = 26, - IEEE80211_RADIOTAP_LSIG = 27, - IEEE80211_RADIOTAP_TLV = 28, - IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29, - IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30, - IEEE80211_RADIOTAP_EXT = 31, - IEEE80211_RADIOTAP_EHT_USIG = 33, - IEEE80211_RADIOTAP_EHT = 34, -}; +struct workqueue_attrs; -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, -}; +struct pool_workqueue; -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, -}; +struct wq_device; -enum ieee80211_radiotap_rx_flags { - IEEE80211_RADIOTAP_F_RX_BADPLCP = 2, +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"))) __attribute__((btf_type_tag("rcu"))) **cpu_pwq; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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, +struct wq_flusher { + struct list_head list; + int flush_color; + struct completion done; }; -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, -}; +struct worker_pool; -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, +struct worker { + union { + struct list_head entry; + struct hlist_node hentry; + }; + struct work_struct *current_work; + work_func_t current_func; + struct pool_workqueue *current_pwq; + u64 current_at; + unsigned int current_color; + int sleeping; + work_func_t last_func; + struct list_head scheduled; + struct task_struct *task; + struct worker_pool *pool; + struct list_head node; + unsigned long last_active; + unsigned int flags; + int id; + char desc[24]; + struct workqueue_struct *rescue_wq; }; -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, +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; + u64 stats[8]; + struct kthread_work release_work; + struct callback_head rcu; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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, +struct worker_pool { + raw_spinlock_t lock; + int cpu; + int node; + int id; + unsigned int flags; + unsigned long watchdog_ts; + bool cpu_stall; + int nr_running; + struct list_head worklist; + int nr_workers; + int nr_idle; + struct list_head idle_list; + struct timer_list idle_timer; + struct work_struct idle_cull_work; + struct timer_list mayday_timer; + struct hlist_head busy_hash[64]; + struct worker *manager; + struct list_head workers; + struct list_head dying_workers; + struct completion *detach_completion; + struct ida worker_ida; + struct workqueue_attrs *attrs; + struct hlist_node hash_node; + int refcnt; + struct callback_head rcu; }; -enum ieee80211_radiotap_timestamp_flags { - IEEE80211_RADIOTAP_TIMESTAMP_FLAG_64BIT = 0, - IEEE80211_RADIOTAP_TIMESTAMP_FLAG_32BIT = 1, - IEEE80211_RADIOTAP_TIMESTAMP_FLAG_ACCURACY = 2, +enum wq_affn_scope { + WQ_AFFN_DFL = 0, + WQ_AFFN_CPU = 1, + WQ_AFFN_SMT = 2, + WQ_AFFN_CACHE = 3, + WQ_AFFN_NUMA = 4, + WQ_AFFN_SYSTEM = 5, + WQ_AFFN_NR_TYPES = 6, }; -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, +struct workqueue_attrs { + int nice; + cpumask_var_t cpumask; + cpumask_var_t __pod_cpumask; + bool affn_strict; + enum wq_affn_scope affn_scope; + bool ordered; }; -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 wq_device { + struct workqueue_struct *wq; + struct device dev; }; -struct ieee80211_mmie { - u8 element_id; - u8 length; - __le16 key_id; - u8 sequence_number[6]; - u8 mic[8]; -}; +typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *); -struct ieee80211_mmie_16 { - u8 element_id; - u8 length; - __le16 key_id; - u8 sequence_number[6]; - u8 mic[16]; -}; +typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *); -struct ieee80211_bar { - __le16 frame_control; - __le16 duration; - __u8 ra[6]; - __u8 ta[6]; - __le16 control; - __le16 start_seq_num; +typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *); + +typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t); + +struct wq_pod_type { + int nr_pods; + cpumask_var_t *pod_cpus; + int *pod_node; + int *cpu_pod; }; -struct ieee80211_radiotap_he { - __le16 data1; - __le16 data2; - __le16 data3; - __le16 data4; - __le16 data5; - __le16 data6; +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 ieee80211_radiotap_he_mu { - __le16 flags1; - __le16 flags2; - u8 ru_ch1[4]; - u8 ru_ch2[4]; +enum pool_workqueue_stats { + PWQ_STAT_STARTED = 0, + PWQ_STAT_COMPLETED = 1, + PWQ_STAT_CPU_TIME = 2, + PWQ_STAT_CPU_INTENSIVE = 3, + PWQ_STAT_CM_WAKEUP = 4, + PWQ_STAT_REPATRIATED = 5, + PWQ_STAT_MAYDAY = 6, + PWQ_STAT_RESCUED = 7, + PWQ_NR_STATS = 8, }; -struct ieee80211_radiotap_lsig { - __le16 data1; - __le16 data2; +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 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 trace_event_raw_workqueue_activate_work { + struct trace_entry ent; + void *work; + char __data[0]; }; -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 trace_event_raw_workqueue_execute_start { + struct trace_entry ent; + void *work; + void *function; + char __data[0]; }; -struct sta_opmode_info { - u32 changed; - enum nl80211_smps_mode smps_mode; - enum nl80211_chan_width bw; - u8 rx_nss; +struct trace_event_raw_workqueue_execute_end { + struct trace_entry ent; + void *work; + void *function; + char __data[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; +struct wq_barrier { + struct work_struct work; + struct completion done; + struct task_struct *task; }; -struct ieee80211_hdr_3addr { - __le16 frame_control; - __le16 duration_id; - u8 addr1[6]; - u8 addr2[6]; - u8 addr3[6]; - __le16 seq_ctrl; +struct cwt_wait { + wait_queue_entry_t wait; + struct work_struct *work; }; -struct ieee80211_radiotap_header { - uint8_t it_version; - uint8_t it_pad; - __le16 it_len; - __le32 it_present; - __le32 it_optional[0]; +struct work_for_cpu { + struct work_struct work; + long (*fn)(void *); + void *arg; + long ret; }; -struct group_data { - int limit[21]; - int base[20]; - int permute[258]; - int minLen; - int maxLen; +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 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 trace_event_data_offsets_workqueue_queue_work { + u32 workqueue; }; -struct ida_bitmap { - unsigned long bitmap[16]; +struct pr_cont_work_struct { + bool comma; + work_func_t func; + long ctr; }; -typedef void (*btf_trace_ma_op)(void *, const char *, struct ma_state *); +struct trace_event_data_offsets_workqueue_activate_work {}; -typedef void (*btf_trace_ma_read)(void *, const char *, struct ma_state *); +struct trace_event_data_offsets_workqueue_execute_start {}; -typedef void (*btf_trace_ma_write)(void *, const char *, struct ma_state *, unsigned long, void *); +struct trace_event_data_offsets_workqueue_execute_end {}; -enum maple_type { - maple_dense = 0, - maple_leaf_64 = 1, - maple_range_64 = 2, - maple_arange_64 = 3, +struct platform_hibernation_ops { + int (*begin)(pm_message_t); + void (*end)(); + int (*pre_snapshot)(); + void (*finish)(); + int (*prepare)(); + int (*enter)(); + void (*leave)(); + int (*pre_restore)(); + void (*restore_cleanup)(); + void (*recover)(); }; -struct 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]; +enum { + HIBERNATION_INVALID = 0, + HIBERNATION_PLATFORM = 1, + HIBERNATION_SHUTDOWN = 2, + HIBERNATION_REBOOT = 3, + HIBERNATION_SUSPEND = 4, + HIBERNATION_TEST_RESUME = 5, + __HIBERNATION_AFTER_LAST = 6, }; -struct 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]; +enum { + TEST_NONE = 0, + TEST_CORE = 1, + TEST_CPUS = 2, + TEST_PLATFORM = 3, + TEST_DEVICES = 4, + TEST_FREEZER = 5, + __TEST_AFTER_LAST = 6, }; -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]; +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 maple_pnode; +struct vdso_timestamp { + u64 sec; + u64 nsec; +}; -struct maple_metadata { - unsigned char end; - unsigned char gap; +struct timens_offset { + s64 sec; + u64 nsec; }; -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 arch_vdso_data {}; -struct maple_node { +struct vdso_data { + u32 seq; + s32 clock_mode; + u64 cycle_last; + u64 mask; + u32 mult; + u32 shift; 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 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 maple_topiary { - struct maple_pnode *parent; - struct maple_enode *next; +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 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 timekeeper { + struct tk_read_base tkr_mono; + struct tk_read_base tkr_raw; + u64 xtime_sec; + unsigned long ktime_sec; + struct timespec64 wall_to_monotonic; + ktime_t offs_real; + ktime_t offs_boot; + ktime_t offs_tai; + s32 tai_offset; + unsigned int clock_was_set_seq; + u8 cs_was_changed_seq; + ktime_t next_leap_ktime; + u64 raw_sec; + struct timespec64 monotonic_to_boot; + u64 cycle_interval; + u64 xtime_interval; + s64 xtime_remainder; + u64 raw_interval; + u64 ntp_tick; + s64 ntp_error; + u32 ntp_error_shift; + u32 ntp_err_mult; + u32 skip_second_overflow; }; -struct 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; +enum futex_access { + FUTEX_READ = 0, + FUTEX_WRITE = 1, }; -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; +enum { + FUTEX_STATE_OK = 0, + FUTEX_STATE_EXITING = 1, + FUTEX_STATE_DEAD = 2, }; -struct ma_topiary { - struct maple_enode *head; - struct maple_enode *tail; - struct maple_tree *mtree; +struct rt_waiter_node { + struct rb_node entry; + int prio; + u64 deadline; }; -struct trace_event_data_offsets_ma_op {}; - -struct trace_event_data_offsets_ma_read {}; - -struct trace_event_data_offsets_ma_write {}; - -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 rt_mutex_waiter { + struct rt_waiter_node tree; + struct rt_waiter_node pi_tree; + struct task_struct *task; + struct rt_mutex_base *lock; + unsigned int wake_state; + struct ww_acquire_ctx *ww_ctx; }; -struct init_pgtable_data { - struct x86_mapping_info *info; - pgd_t *level4p; +struct cgrp_cset_link { + struct cgroup *cgrp; + struct css_set *cset; + struct list_head cset_link; + struct list_head cgrp_link; }; -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, +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; }; -enum perf_sample_regs_abi { - PERF_SAMPLE_REGS_ABI_NONE = 0, - PERF_SAMPLE_REGS_ABI_32 = 1, - PERF_SAMPLE_REGS_ABI_64 = 2, +enum kprobe_slot_state { + SLOT_CLEAN = 0, + SLOT_DIRTY = 1, + SLOT_USED = 2, }; -struct x86_perf_regs { - struct pt_regs regs; - u64 *xmm_regs; +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 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 arch_optimized_insn { + kprobe_opcode_t copied_insn[4]; + kprobe_opcode_t *insn; + size_t size; }; -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, +struct optimized_kprobe { + struct kprobe kp; + struct list_head list; + struct arch_optimized_insn optinsn; }; -enum cpa_warn { - CPA_CONFLICT = 0, - CPA_PROTECT = 1, - CPA_DETECT = 2, +struct prev_kprobe { + struct kprobe *kp; + unsigned long status; + unsigned long old_flags; + unsigned long saved_flags; }; -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; +struct kprobe_ctlblk { + unsigned long kprobe_status; + unsigned long kprobe_old_flags; + unsigned long kprobe_saved_flags; + struct prev_kprobe prev_kprobe; }; -struct wq_flusher; - -struct worker; - -struct workqueue_attrs; - -struct pool_workqueue; - -struct wq_device; - -struct workqueue_struct { - struct list_head pwqs; +struct kprobe_blacklist_entry { 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; + unsigned long start_addr; + unsigned long end_addr; }; -struct wq_flusher { - struct list_head list; - int flush_color; - struct completion done; -}; +typedef void (*rethook_handler_t)(struct rethook_node *, void *, unsigned long, struct pt_regs *); -struct worker_pool; +struct syscall_trace_enter { + struct trace_entry ent; + int nr; + unsigned long args[0]; +}; -struct worker { - union { - struct list_head entry; - struct hlist_node hentry; - }; - struct work_struct *current_work; - work_func_t current_func; - struct pool_workqueue *current_pwq; - u64 current_at; - unsigned int current_color; - int sleeping; - work_func_t last_func; - struct list_head scheduled; - struct task_struct *task; - struct worker_pool *pool; - struct list_head node; - unsigned long last_active; - unsigned int flags; - int id; - char desc[24]; - struct workqueue_struct *rescue_wq; +struct syscall_trace_exit { + struct trace_entry ent; + int nr; + long ret; }; -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; - u64 stats[7]; - struct work_struct unbound_release_work; - struct callback_head rcu; +struct syscall_tp_t { + struct trace_entry ent; + int syscall_nr; + unsigned long args[6]; }; -struct worker_pool { - raw_spinlock_t lock; - int cpu; - int node; - int id; - unsigned int flags; - unsigned long watchdog_ts; - bool cpu_stall; - int nr_running; - struct list_head worklist; - int nr_workers; - int nr_idle; - struct list_head idle_list; - struct timer_list idle_timer; - struct work_struct idle_cull_work; - struct timer_list mayday_timer; - struct hlist_head busy_hash[64]; - struct worker *manager; - struct list_head workers; - struct list_head dying_workers; - struct completion *detach_completion; - struct ida worker_ida; - struct workqueue_attrs *attrs; - struct hlist_node hash_node; - int refcnt; - struct callback_head rcu; +struct syscall_tp_t___2 { + struct trace_entry ent; + int syscall_nr; + unsigned long ret; }; -struct workqueue_attrs { - int nice; - cpumask_var_t cpumask; - bool no_numa; +enum error_detector { + ERROR_DETECTOR_KFENCE = 0, + ERROR_DETECTOR_KASAN = 1, + ERROR_DETECTOR_WARN = 2, }; -struct wq_device { - struct workqueue_struct *wq; - struct device dev; +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]; }; -typedef void (*btf_trace_workqueue_queue_work)(void *, int, struct pool_workqueue *, struct work_struct *); +struct trace_event_data_offsets_error_report_template {}; -typedef void (*btf_trace_workqueue_activate_work)(void *, struct work_struct *); +struct trace_probe_log { + const char *subsystem; + const char **argv; + int argc; + int index; +}; -typedef void (*btf_trace_workqueue_execute_start)(void *, struct work_struct *); +typedef void (*btf_trace_rseq_update)(void *, struct task_struct *); -typedef void (*btf_trace_workqueue_execute_end)(void *, struct work_struct *, work_func_t); +typedef void (*btf_trace_rseq_ip_fixup)(void *, unsigned long, unsigned long, unsigned long, unsigned long); -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, +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 pool_workqueue_stats { - PWQ_STAT_STARTED = 0, - PWQ_STAT_COMPLETED = 1, - PWQ_STAT_CPU_TIME = 2, - PWQ_STAT_CPU_INTENSIVE = 3, - PWQ_STAT_CM_WAKEUP = 4, - PWQ_STAT_MAYDAY = 5, - PWQ_STAT_RESCUED = 6, - PWQ_NR_STATS = 7, +enum rseq_flags { + RSEQ_FLAG_UNREGISTER = 1, }; -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]; +enum rseq_cpu_id_state { + RSEQ_CPU_ID_UNINITIALIZED = -1, + RSEQ_CPU_ID_REGISTRATION_FAILED = -2, }; -struct trace_event_raw_workqueue_activate_work { +struct trace_event_raw_rseq_update { struct trace_entry ent; - void *work; + s32 cpu_id; + s32 node_id; + s32 mm_cid; char __data[0]; }; -struct trace_event_raw_workqueue_execute_start { +struct trace_event_raw_rseq_ip_fixup { struct trace_entry ent; - void *work; - void *function; + unsigned long regs_ip; + unsigned long start_ip; + unsigned long post_commit_offset; + unsigned long abort_ip; char __data[0]; }; -struct trace_event_raw_workqueue_execute_end { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; +struct rseq_cs { + __u32 version; + __u32 flags; + __u64 start_ip; + __u64 post_commit_offset; + __u64 abort_ip; }; -struct wq_barrier { - struct work_struct work; - struct completion done; - struct task_struct *task; -}; +struct trace_event_data_offsets_rseq_update {}; -struct cwt_wait { - wait_queue_entry_t wait; - struct work_struct *work; +struct trace_event_data_offsets_rseq_ip_fixup {}; + +enum { + PAGE_WAS_MAPPED = 1, + PAGE_WAS_MLOCKED = 2, }; -struct work_for_cpu { - struct work_struct work; - long (*fn)(void *); - void *arg; - long ret; +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 *); }; -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 migrate_pages_stats { + int nr_succeeded; + int nr_failed_pages; + int nr_thp_succeeded; + int nr_thp_failed; + int nr_thp_split; + int nr_split; }; -struct trace_event_data_offsets_workqueue_queue_work { - u32 workqueue; +union migration_ptr { + struct anon_vma *anon_vma; + struct address_space *mapping; }; -struct pr_cont_work_struct { - bool comma; - work_func_t func; - long ctr; +struct splice_desc { + size_t total_len; + unsigned int len; + unsigned int flags; + union { + void __attribute__((btf_type_tag("user"))) *userptr; + struct file *file; + void *data; + } u; + void (*splice_eof)(struct splice_desc *); + loff_t pos; + loff_t *opos; + size_t num_spliced; + bool need_wakeup; }; -struct trace_event_data_offsets_workqueue_activate_work {}; +typedef int splice_actor(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); -struct trace_event_data_offsets_workqueue_execute_start {}; +struct partial_page; -struct trace_event_data_offsets_workqueue_execute_end {}; +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); +}; -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 partial_page { + unsigned int offset; + unsigned int len; + unsigned long private; }; -struct rcu_cblist { - struct callback_head *head; - struct callback_head **tail; - long len; +typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); + +struct bh_lru { + struct buffer_head *bhs[16]; }; -struct rcu_synchronize { - struct callback_head head; - struct completion completion; +struct bh_accounting { + int nr; + int ratelimit; }; -struct module_use { - struct list_head source_list; - struct list_head target_list; - struct module *source; - struct module *target; +struct postprocess_bh_ctx { + struct work_struct work; + struct buffer_head *bh; }; -enum tick_nohz_mode { - NOHZ_MODE_INACTIVE = 0, - NOHZ_MODE_LOWRES = 1, - NOHZ_MODE_HIGHRES = 2, +struct ext4_system_zone { + struct rb_node node; + ext4_fsblk_t start_blk; + unsigned int count; + u32 ino; }; -struct tick_sched { - 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; - unsigned int stalled_jiffies; - unsigned long last_tick_jiffies; - struct hrtimer sched_timer; - ktime_t last_tick; - ktime_t next_tick; - unsigned long idle_jiffies; - ktime_t idle_waketime; - seqcount_t idle_sleeptime_seq; - ktime_t idle_entrytime; - enum tick_nohz_mode nohz_mode; - unsigned long last_jiffies; - u64 timer_expires_base; - u64 timer_expires; - u64 next_timer; - ktime_t idle_expires; - unsigned long idle_calls; - unsigned long idle_sleeps; - ktime_t idle_exittime; - ktime_t idle_sleeptime; - ktime_t iowait_sleeptime; - atomic_t tick_dep_mask; - unsigned long check_clocks; +enum { + MBE_REFERENCED_B = 0, + MBE_REUSABLE_B = 1, }; -struct audit_nfcfgop_tab { - enum audit_nfcfgop op; - const char *s; +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]; }; -typedef int __kernel_mqd_t; +struct ext4_xattr_header { + __le32 h_magic; + __le32 h_refcount; + __le32 h_blocks; + __le32 h_hash; + __le32 h_checksum; + __u32 h_reserved[3]; +}; -typedef __kernel_mqd_t mqd_t; +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 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 ext4_xattr_info { + const char *name; + const void *value; + size_t value_len; + int name_index; + int in_inode; }; -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 ext4_xattr_search { + struct ext4_xattr_entry *first; + void *base; + void *end; + struct ext4_xattr_entry *here; + int not_found; }; -enum audit_state { - AUDIT_STATE_DISABLED = 0, - AUDIT_STATE_BUILD = 1, - AUDIT_STATE_RECORD = 2, +struct ext4_xattr_ibody_find { + struct ext4_xattr_search s; + struct ext4_iloc iloc; }; -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 ext4_xattr_block_find { + struct ext4_xattr_search s; + struct buffer_head *bh; }; -struct audit_proctitle { - int len; - char *value; +struct nlm_wait { + struct list_head b_list; + wait_queue_head_t b_wait; + struct nlm_host *b_host; + struct file_lock *b_lock; + __be32 b_status; }; -struct audit_aux_data; +struct nlm_block; -struct audit_tree_refs; +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 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; +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 audit_aux_data { - struct audit_aux_data *next; - int type; +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 audit_chunk; +struct msg_msgseg; -struct audit_tree_refs { - struct audit_tree_refs *next; - struct audit_chunk *c[31]; +struct msg_msg { + struct list_head m_list; + long m_type; + size_t m_ts; + struct msg_msgseg *next; + void *security; }; -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, +struct msg_msgseg { + struct msg_msgseg *next; }; -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, -}; +struct crypto_rng; -struct audit_entry { - struct list_head list; - struct callback_head rcu; - struct audit_krule rule; +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 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 crypto_rng { + struct crypto_tfm base; }; -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 aead_geniv_ctx { + spinlock_t lock; + struct crypto_aead *child; + struct crypto_sync_skcipher *sknull; + u8 salt[0]; }; -struct fanotify_response_info_header { - __u8 type; - __u8 pad; - __u16 len; +enum { + CRYPTO_AUTHENC_KEYA_UNSPEC = 0, + CRYPTO_AUTHENC_KEYA_PARAM = 1, }; -struct fanotify_response_info_audit_rule { - struct fanotify_response_info_header hdr; - __u32 rule_number; - __u32 subj_trust; - __u32 obj_trust; +struct crypto_ahash_spawn { + struct crypto_spawn base; }; -struct uprobe_cpu_buffer { - struct mutex mutex; - void *buf; +struct authenc_instance_ctx { + struct crypto_ahash_spawn auth; + struct crypto_skcipher_spawn enc; + unsigned int reqoff; }; -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 crypto_authenc_keys { + const u8 *authkey; + const u8 *enckey; + unsigned int authkeylen; + unsigned int enckeylen; }; -struct uprobe_trace_entry_head { - struct trace_entry ent; - unsigned long vaddr[0]; +struct crypto_authenc_key_param { + __be32 enckeylen; }; -struct uprobe_dispatch_data { - struct trace_uprobe *tu; - unsigned long bp_addr; +struct crypto_authenc_ctx { + struct crypto_ahash *auth; + struct crypto_skcipher *enc; + struct crypto_sync_skcipher *null; }; -typedef u32 (*bpf_prog_run_fn)(const struct bpf_prog *, const void *); - -struct bpf_trace_run_ctx { - struct bpf_run_ctx run_ctx; - u64 bpf_cookie; +struct authenc_request_ctx { + struct scatterlist src[2]; + struct scatterlist dst[2]; + char tail[0]; }; -typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); - -struct mmu_notifier_ops; +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)); -struct mmu_notifier { - struct hlist_node hlist; - const struct mmu_notifier_ops *ops; - struct mm_struct *mm; - struct callback_head rcu; - unsigned int users; -}; +typedef struct _gpt_header gpt_header; -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 _gpt_entry_attributes { + u64 required_to_function: 1; + u64 reserved: 47; + u64 type_guid_specific: 16; }; -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; -}; +typedef struct _gpt_entry_attributes gpt_entry_attributes; -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, +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]; }; -struct f_owner_ex { - int type; - __kernel_pid_t pid; -}; +typedef struct _gpt_entry gpt_entry; -struct flock { - short l_type; - short l_whence; - __kernel_off_t l_start; - __kernel_off_t l_len; - __kernel_pid_t l_pid; +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; }; -struct compat_flock64 { - short l_type; - short l_whence; - compat_loff_t l_start; - compat_loff_t l_len; - compat_pid_t l_pid; +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)); -struct compat_flock { - short l_type; - short l_whence; - compat_off_t l_start; - compat_off_t l_len; - compat_pid_t l_pid; -}; +typedef struct _legacy_mbr legacy_mbr; -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 xattr_name; -struct iomap_page { - atomic_t read_bytes_pending; - atomic_t write_bytes_pending; - spinlock_t uptodate_lock; - unsigned long uptodate[0]; +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 iomap_readpage_ctx { - struct folio *cur_folio; - bool cur_folio_in_bio; - struct bio *bio; - struct readahead_control *rac; +struct io_xattr { + struct file *file; + struct xattr_ctx ctx; + struct filename *filename; }; -struct folio_iter { - struct folio *folio; - size_t offset; - size_t length; - struct folio *_next; - size_t _seg_count; - int _i; +struct xattr_name { + char name[256]; }; -struct iomap_writeback_ops; - -struct iomap_writepage_ctx { - struct iomap iomap; - struct iomap_ioend *ioend; - const struct iomap_writeback_ops *ops; +union handle_parts { + depot_stack_handle_t handle; + struct { + u32 pool_index: 16; + u32 offset: 10; + u32 valid: 1; + u32 extra: 5; + }; }; -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); +struct stack_record { + struct stack_record *next; + u32 hash; + u32 size; + union handle_parts handle; + unsigned long entries[0]; }; -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, -} __attribute__((mode(byte))); - -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, -} __attribute__((mode(byte))); - -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; +enum support_mode { + ALLOW_LEGACY = 0, + DENY_LEGACY = 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; +enum msi_domain_ids { + MSI_DEFAULT_DOMAIN = 0, + MSI_SECONDARY_DOMAIN = 1, + MSI_MAX_DEVICE_IRQDOMAINS = 2, }; -struct nfs4_sessionid { - unsigned char data[16]; +struct msi_map { + int index; + int virq; }; -struct nfs4_channel_attrs { - u32 max_rqst_sz; - u32 max_resp_sz; - u32 max_resp_sz_cached; - u32 max_ops; - u32 max_reqs; +enum acpi_ec_event_state { + EC_EVENT_READY = 0, + EC_EVENT_IN_PROGRESS = 1, + EC_EVENT_COMPLETE = 2, }; -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; -}; +struct transaction; -enum nfs4_slot_tbl_state { - NFS4_SLOT_TBL_DRAINING = 0, +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 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 transaction { + const u8 *wdata; + u8 *rdata; + unsigned short irq_count; + u8 command; + u8 wi; + u8 ri; + u8 wlen; + u8 rlen; + u8 flags; }; -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, +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, }; -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]; +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, }; -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; -}; +typedef int (*acpi_ec_query_func)(void *); -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 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 keyring_read_iterator_context { - size_t buflen; - size_t count; - key_serial_t *buffer; +struct acpi_ec_query { + struct transaction transaction; + struct work_struct work; + struct acpi_ec_query_handler *handler; + struct acpi_ec *ec; }; -struct crypto_akcipher_sync_data { - struct crypto_akcipher *tfm; - const void *src; - void *dst; - unsigned int slen; - unsigned int dlen; - struct akcipher_request *req; - struct crypto_wait cwait; - struct scatterlist sg; - u8 *buf; -}; +typedef u32 acpi_event_status; -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, +struct acpi_table_ecdt { + struct acpi_table_header header; + struct acpi_generic_address control; + struct acpi_generic_address data; + u32 uid; + u8 gpe; + u8 id[0]; +} __attribute__((packed)); + +struct pnp_fixup { + char id[7]; + void (*quirk_function)(struct pnp_dev *); }; -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 tty_flow_change { + TTY_FLOW_NO_CHANGE = 0, + TTY_THROTTLE_SAFE = 1, + TTY_UNTHROTTLE_SAFE = 2, }; enum { - sysctl_hung_task_timeout_secs = 0, + ERASE = 0, + WERASE = 1, + KILL = 2, }; -enum prep_dispatch { - PREP_DISPATCH_OK = 0, - PREP_DISPATCH_NO_TAG = 1, - PREP_DISPATCH_NO_BUDGET = 2, +struct n_tty_data { + size_t read_head; + size_t commit_head; + size_t canon_head; + size_t echo_head; + size_t echo_commit; + size_t echo_mark; + unsigned long char_map[4]; + unsigned long overrun_time; + unsigned int num_overrun; + bool no_room; + unsigned char lnext: 1; + unsigned char erasing: 1; + unsigned char raw: 1; + unsigned char real_raw: 1; + unsigned char icanon: 1; + unsigned char push: 1; + u8 read_buf[4096]; + unsigned long read_flags[64]; + u8 echo_buf[4096]; + size_t read_tail; + size_t line_start; + size_t lookahead_count; + unsigned int column; + unsigned int canon_column; + size_t echo_tail; + struct mutex atomic_read_lock; + struct mutex output_lock; }; -struct blk_mq_qe_pair { - struct list_head node; - struct request_queue *q; - struct elevator_type *type; +struct drm_out_fence_state { + s32 __attribute__((btf_type_tag("user"))) *out_fence_ptr; + struct sync_file *sync_file; + int fd; }; -struct flush_busy_ctx_data { - struct blk_mq_hw_ctx *hctx; - struct list_head *list; +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 dispatch_rq_data { - struct blk_mq_hw_ctx *hctx; - struct request *rq; -}; +struct drm_panel_follower_funcs; -struct blk_expired_data { - bool has_timedout_rq; - unsigned long next; - unsigned long timeout_start; +struct drm_panel_follower { + const struct drm_panel_follower_funcs *funcs; + struct list_head list; + struct drm_panel *panel; }; -struct rq_iter_data { - struct blk_mq_hw_ctx *hctx; - bool has_rq; +struct drm_panel_follower_funcs { + int (*panel_prepared)(struct drm_panel_follower *); + int (*panel_unpreparing)(struct drm_panel_follower *); }; -struct mq_inflight { - struct block_device *part; - unsigned int inflight[2]; +struct dpcd_quirk { + u8 oui[3]; + u8 device_id[6]; + bool is_branch; + u32 quirks; }; -struct blk_rq_wait { - struct completion done; - blk_status_t ret; +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 { - REG_OP_ISFREE = 0, - REG_OP_ALLOC = 1, - REG_OP_RELEASE = 2, +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, }; -struct region { - unsigned int start; - unsigned int off; - unsigned int group_len; - unsigned int end; - unsigned int nbits; +struct est_timings { + u8 t1; + u8 t2; + u8 mfg_rsvd; }; -struct aperture_range { - struct device *dev; - resource_size_t base; - resource_size_t size; - struct list_head lh; - void (*detach)(struct device *); +struct std_timing { + u8 hsize; + u8 vfreq_aspect; }; -typedef enum { - ACPI_TRACE_AML_METHOD = 0, - ACPI_TRACE_AML_OPCODE = 1, - ACPI_TRACE_AML_REGION = 2, -} acpi_trace_event_type; - -struct pnp_port { - resource_size_t min; - resource_size_t max; - resource_size_t align; - resource_size_t size; - unsigned char flags; +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; }; -typedef struct { - unsigned long bits[4]; -} pnp_irq_mask_t; +struct detailed_data_string { + u8 str[13]; +}; -struct pnp_irq { - pnp_irq_mask_t map; - unsigned char flags; +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; }; -struct pnp_dma { - unsigned char map; - unsigned char flags; +struct detailed_data_wpindex { + u8 white_yx_lo; + u8 white_x_hi; + u8 white_y_hi; + u8 gamma; }; -struct pnp_mem { - resource_size_t min; - resource_size_t max; - resource_size_t align; - resource_size_t size; - unsigned char flags; +struct cvt_timing { + u8 code[3]; }; -struct pnp_option { - struct list_head list; - unsigned int flags; - unsigned long type; +struct detailed_non_pixel { + u8 pad1; + u8 type; + u8 pad2; union { - struct pnp_port port; - struct pnp_irq irq; - struct pnp_dma dma; - struct pnp_mem mem; - } u; + 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; }; -struct virtio_pci_legacy_device { - struct pci_dev *pci_dev; - u8 *isr; - void *ioaddr; - struct virtio_device_id id; +struct detailed_timing { + __le16 pixel_clock; + union { + struct detailed_pixel_timing pixel_data; + struct detailed_non_pixel other_data; + } data; }; -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; - int (*device_id_check)(struct pci_dev *); - u64 dma_mask; +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 virtio_pci_vq_info; - -struct virtio_pci_device { - struct virtio_device vdev; - struct pci_dev *pci_dev; - union { - struct virtio_pci_legacy_device ldev; - struct virtio_pci_modern_device mdev; - }; - bool is_legacy; - u8 *isr; - spinlock_t lock; - struct list_head virtqueues; - struct virtio_pci_vq_info **vqs; - 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 dp_aux_backlight { + struct backlight_device *base; + struct drm_dp_aux *aux; + struct drm_edp_backlight_info info; + bool enabled; }; -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 uc_fw_platform_requirement; -struct virtio_pci_vq_info { - struct virtqueue *vq; - struct list_head node; - unsigned int msix_vector; +struct fw_blobs_by_type { + const struct uc_fw_platform_requirement *blobs; + u32 count; }; -struct dw8250_port_data { - int line; - struct uart_8250_dma dma; - u8 dlf_size; - bool hw_rs485_support; -}; +struct uc_fw_blob { + const char *path; + bool legacy; + u8 major; + u8 minor; + u8 patch; + bool has_gsc_headers; +} __attribute__((packed)); -struct dw8250_platform_data; +struct uc_fw_platform_requirement { + enum intel_platform p; + u8 rev; + const struct uc_fw_blob blob; +} __attribute__((packed)); -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 intel_gsc_version { + u16 major; + u16 minor; + u16 hotfix; + u16 build; }; -struct dw8250_platform_data { - u8 usr_reg; - u32 cpr_val; - unsigned int quirks; +struct intel_gsc_manifest_header { + u32 header_type; + u32 header_length; + u32 header_version; + u32 flags; + u32 vendor; + u32 date; + u32 size; + u32 header_id; + u32 internal_data; + struct intel_gsc_version fw_version; + u32 security_version; + struct intel_gsc_version meu_kit_version; + u32 meu_manifest_version; + u8 general_data[4]; + u8 reserved3[56]; + u32 modulus_size; + u32 exponent_size; }; -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 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 iommu_group_attribute { - struct attribute attr; - ssize_t (*show)(struct iommu_group *, char *); - ssize_t (*store)(struct iommu_group *, const char *, size_t); +struct intel_dmc { + struct drm_i915_private *i915; + struct work_struct work; + const char *fw_path; + u32 max_fw_size; + u32 version; + struct dmc_fw_info dmc_info[5]; }; -enum iommu_fault_type { - IOMMU_FAULT_DMA_UNRECOV = 1, - IOMMU_FAULT_PAGE_REQ = 2, +enum intel_dmc_id { + DMC_FW_MAIN = 0, + DMC_FW_PIPEA = 1, + DMC_FW_PIPEB = 2, + DMC_FW_PIPEC = 3, + DMC_FW_PIPED = 4, + DMC_FW_MAX = 5, }; -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 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; }; -enum { - IOMMU_SET_DOMAIN_MUST_SUCCEED = 1, +struct intel_package_header { + u8 header_len; + u8 header_ver; + u8 reserved[10]; + u32 num_entries; }; -struct group_device { - struct list_head list; - struct device *dev; - char *name; +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 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 intel_fw_info { + u8 reserved1; + u8 dmc_id; + char stepping; + char substepping; + u32 offset; + u32 reserved2; }; -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 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 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 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 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 stepping_info { + char stepping; + char substepping; }; -struct fsl_mc_device_irq { - unsigned int virq; - struct fsl_mc_device *mc_dev; - u8 dev_irq_index; - struct fsl_mc_resource resource; +enum intel_broadcast_rgb { + INTEL_BROADCAST_RGB_AUTO = 0, + INTEL_BROADCAST_RGB_FULL = 1, + INTEL_BROADCAST_RGB_LIMITED = 2, }; -struct group_for_pci_data { - struct pci_dev *pdev; - struct iommu_group *group; +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 engine_mmio_base { - u32 graphics_ver: 8; - u32 base: 24; +struct link_config_limits { + int min_rate; + int max_rate; + int min_lane_count; + int max_lane_count; + struct { + int min_bpp; + int max_bpp; + } pipe; + struct { + int min_bpp_x16; + int max_bpp_x16; + } link; }; -struct engine_info { - u8 class; - u8 instance; - struct engine_mmio_base mmio_bases[3]; +struct dp_sdp { + struct dp_sdp_header sdp_header; + u8 db[32]; }; -struct pmap { - size_t offset; - const char *name; +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 measure_breadcrumb { - struct i915_request rq; - struct intel_ring ring; - u32 cs[2048]; +struct anon_transport_class { + struct transport_class tclass; + struct attribute_container container; }; -struct intel_renderstate_rodata { - const u32 *reloc; - const u32 *batch; - const u32 batch_items; -}; - -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, -}; - -struct drm_i915_gem_busy { - __u32 handle; - __u32 busy; -}; - -struct intel_hdcp_gsc_message { - struct i915_vma *vma; - void *hdcp_cmd; -}; - -enum fw_hdcp_status { - FW_HDCP_STATUS_SUCCESS = 0, - FW_HDCP_STATUS_INTERNAL_ERROR = 4096, - FW_HDCP_STATUS_UNKNOWN_ERROR = 4097, - FW_HDCP_STATUS_INCORRECT_API_VERSION = 4098, - FW_HDCP_STATUS_INVALID_FUNCTION = 4099, - FW_HDCP_STATUS_INVALID_BUFFER_LENGTH = 4100, - FW_HDCP_STATUS_INVALID_PARAMS = 4101, - FW_HDCP_STATUS_AUTHENTICATION_FAILED = 4102, - FW_HDCP_INVALID_SESSION_STATE = 24576, - FW_HDCP_SRM_FRAGMENT_UNEXPECTED = 24577, - FW_HDCP_SRM_INVALID_LENGTH = 24578, - FW_HDCP_SRM_FRAGMENT_OFFSET_INVALID = 24579, - FW_HDCP_SRM_VERIFICATION_FAILED = 24580, - FW_HDCP_SRM_VERSION_TOO_OLD = 24581, - FW_HDCP_RX_CERT_VERIFICATION_FAILED = 24582, - FW_HDCP_RX_REVOKED = 24583, - FW_HDCP_H_VERIFICATION_FAILED = 24584, - FW_HDCP_REPEATER_CHECK_UNEXPECTED = 24585, - FW_HDCP_TOPOLOGY_MAX_EXCEEDED = 24586, - FW_HDCP_V_VERIFICATION_FAILED = 24587, - FW_HDCP_L_VERIFICATION_FAILED = 24588, - FW_HDCP_STREAM_KEY_ALLOC_FAILED = 24589, - FW_HDCP_BASE_KEY_RESET_FAILED = 24590, - FW_HDCP_NONCE_GENERATION_FAILED = 24591, - FW_HDCP_STATUS_INVALID_E_KEY_STATE = 24592, - FW_HDCP_STATUS_INVALID_CS_ICV = 24593, - FW_HDCP_STATUS_INVALID_KB_KEY_STATE = 24594, - FW_HDCP_STATUS_INVALID_PAVP_MODE_ICV = 24595, - FW_HDCP_STATUS_INVALID_PAVP_MODE = 24596, - FW_HDCP_STATUS_LC_MAX_ATTEMPTS = 24597, - FW_HDCP_STATUS_MISMATCH_IN_M = 24598, - FW_HDCP_STATUS_RX_PROV_NOT_ALLOWED = 24599, - FW_HDCP_STATUS_RX_PROV_WRONG_SUBJECT = 24600, - FW_HDCP_RX_NEEDS_PROVISIONING = 24601, - FW_HDCP_BKSV_ICV_AUTH_FAILED = 24608, - FW_HDCP_STATUS_INVALID_STREAM_ID = 24609, - FW_HDCP_STATUS_CHAIN_NOT_INITIALIZED = 24610, - FW_HDCP_FAIL_NOT_EXPECTED = 24611, - FW_HDCP_FAIL_HDCP_OFF = 24612, - FW_HDCP_FAIL_INVALID_PAVP_MEMORY_MODE = 24613, - FW_HDCP_FAIL_AES_ECB_FAILURE = 24614, - FW_HDCP_FEATURE_NOT_SUPPORTED = 24615, - FW_HDCP_DMA_READ_ERROR = 24616, - FW_HDCP_DMA_WRITE_ERROR = 24617, - FW_HDCP_FAIL_INVALID_PACKET_SIZE = 24624, - FW_HDCP_H264_PARSING_ERROR = 24625, - FW_HDCP_HDCP2_ERRATA_VIDEO_VIOLATION = 24626, - FW_HDCP_HDCP2_ERRATA_AUDIO_VIOLATION = 24627, - FW_HDCP_TX_ACTIVE_ERROR = 24628, - FW_HDCP_MODE_CHANGE_ERROR = 24629, - FW_HDCP_STREAM_TYPE_ERROR = 24630, - FW_HDCP_STREAM_MANAGE_NOT_POSSIBLE = 24631, - FW_HDCP_STATUS_PORT_INVALID_COMMAND = 24632, - FW_HDCP_STATUS_UNSUPPORTED_PROTOCOL = 24633, - FW_HDCP_STATUS_INVALID_PORT_INDEX = 24634, - FW_HDCP_STATUS_TX_AUTH_NEEDED = 24635, - FW_HDCP_STATUS_NOT_INTEGRATED_PORT = 24636, - FW_HDCP_STATUS_SESSION_MAX_REACHED = 24637, - FW_HDCP_STATUS_NOT_HDCP_CAPABLE = 24641, - FW_HDCP_STATUS_INVALID_STREAM_COUNT = 24642, -}; - -enum hdcp_command_id { - _WIDI_COMMAND_BASE = 196608, - WIDI_INITIATE_HDCP2_SESSION = 196608, - HDCP_GET_SRM_STATUS = 196609, - HDCP_SEND_SRM_FRAGMENT = 196610, - _WIRED_COMMAND_BASE = 200704, - WIRED_INITIATE_HDCP2_SESSION = 200704, - WIRED_VERIFY_RECEIVER_CERT = 200705, - WIRED_AKE_SEND_HPRIME = 200706, - WIRED_AKE_SEND_PAIRING_INFO = 200707, - WIRED_INIT_LOCALITY_CHECK = 200708, - WIRED_VALIDATE_LOCALITY = 200709, - WIRED_GET_SESSION_KEY = 200710, - WIRED_ENABLE_AUTH = 200711, - WIRED_VERIFY_REPEATER = 200712, - WIRED_REPEATER_AUTH_STREAM_REQ = 200713, - WIRED_CLOSE_SESSION = 200714, - _WIRED_COMMANDS_COUNT = 200715, -}; - -struct intel_gsc_mtl_header { - u32 validity_marker; - u8 heci_client_id; - u8 reserved1; - u16 header_version; - u64 host_session_handle; - u64 gsc_message_handle; - u32 message_size; - u32 flags; - u32 status; -} __attribute__((packed)); - -struct hdcp_cmd_header { - u32 api_version; - u32 command_id; - enum fw_hdcp_status status; - u32 buffer_len; -}; - -struct hdcp_port_id { - u8 integrated_port_type; - u8 physical_port; - u8 attached_transcoder; - u8 reserved; -}; - -struct wired_cmd_initiate_hdcp2_session_in { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - u8 protocol; -} __attribute__((packed)); - -struct wired_cmd_initiate_hdcp2_session_out { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - u8 r_tx[8]; - struct hdcp2_tx_caps tx_caps; -} __attribute__((packed)); - -struct wired_cmd_verify_receiver_cert_in { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - struct hdcp2_cert_rx cert_rx; - u8 r_rx[8]; - u8 rx_caps[3]; -} __attribute__((packed)); - -union encrypted_buff { - u8 e_kpub_km[128]; - u8 e_kh_km_m[32]; - struct { - u8 e_kh_km[16]; - u8 m[16]; - }; -}; +typedef void (*btf_trace_regmap_reg_write)(void *, struct regmap *, unsigned int, unsigned int); -struct wired_cmd_verify_receiver_cert_out { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - u8 km_stored; - u8 reserved[3]; - union encrypted_buff ekm_buff; -}; +typedef void (*btf_trace_regmap_reg_read)(void *, struct regmap *, unsigned int, unsigned int); -struct wired_cmd_ake_send_hprime_in { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - u8 h_prime[32]; -}; +typedef void (*btf_trace_regmap_reg_read_cache)(void *, struct regmap *, unsigned int, unsigned int); -struct wired_cmd_ake_send_hprime_out { - struct hdcp_cmd_header header; - struct hdcp_port_id port; -}; +typedef void (*btf_trace_regmap_bulk_write)(void *, struct regmap *, unsigned int, const void *, int); -struct wired_cmd_ake_send_pairing_info_in { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - u8 e_kh_km[16]; -}; +typedef void (*btf_trace_regmap_bulk_read)(void *, struct regmap *, unsigned int, const void *, int); -struct wired_cmd_ake_send_pairing_info_out { - struct hdcp_cmd_header header; - struct hdcp_port_id port; -}; +typedef void (*btf_trace_regmap_hw_read_start)(void *, struct regmap *, unsigned int, int); -struct wired_cmd_init_locality_check_in { - struct hdcp_cmd_header header; - struct hdcp_port_id port; -}; +typedef void (*btf_trace_regmap_hw_read_done)(void *, struct regmap *, unsigned int, int); -struct wired_cmd_init_locality_check_out { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - u8 r_n[8]; -}; +typedef void (*btf_trace_regmap_hw_write_start)(void *, struct regmap *, unsigned int, int); -struct wired_cmd_validate_locality_in { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - u8 l_prime[32]; -}; +typedef void (*btf_trace_regmap_hw_write_done)(void *, struct regmap *, unsigned int, int); -struct wired_cmd_validate_locality_out { - struct hdcp_cmd_header header; - struct hdcp_port_id port; -}; +typedef void (*btf_trace_regcache_sync)(void *, struct regmap *, const char *, const char *); -struct wired_cmd_get_session_key_in { - struct hdcp_cmd_header header; - struct hdcp_port_id port; -}; +typedef void (*btf_trace_regmap_cache_only)(void *, struct regmap *, bool); -struct wired_cmd_get_session_key_out { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - u8 e_dkey_ks[16]; - u8 r_iv[8]; -}; +typedef void (*btf_trace_regmap_cache_bypass)(void *, struct regmap *, bool); -struct wired_cmd_verify_repeater_in { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - u8 rx_info[2]; - u8 seq_num_v[3]; - u8 v_prime[16]; - u8 receiver_ids[155]; -}; +typedef void (*btf_trace_regmap_async_write_start)(void *, struct regmap *, unsigned int, int); -struct wired_cmd_verify_repeater_out { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - u8 content_type_supported; - u8 v[16]; -} __attribute__((packed)); +typedef void (*btf_trace_regmap_async_io_complete)(void *, struct regmap *); -struct wired_cmd_repeater_auth_stream_req_out { - struct hdcp_cmd_header header; - struct hdcp_port_id port; -}; +typedef void (*btf_trace_regmap_async_complete_start)(void *, struct regmap *); -struct wired_cmd_repeater_auth_stream_req_in { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - u8 seq_num_m[3]; - u8 m_prime[32]; - __be16 k; - struct hdcp2_streamid_type streams[0]; -} __attribute__((packed)); +typedef void (*btf_trace_regmap_async_complete_done)(void *, struct regmap *); -struct wired_cmd_enable_auth_in { - struct hdcp_cmd_header header; - struct hdcp_port_id port; - u8 stream_type; -} __attribute__((packed)); +typedef void (*btf_trace_regcache_drop_region)(void *, struct regmap *, unsigned int, unsigned int); -struct wired_cmd_enable_auth_out { - struct hdcp_cmd_header header; - struct hdcp_port_id port; +struct trace_event_raw_regmap_reg { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int reg; + unsigned int val; + char __data[0]; }; -struct wired_cmd_close_session_in { - struct hdcp_cmd_header header; - struct hdcp_port_id port; +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 wired_cmd_close_session_out { - struct hdcp_cmd_header header; - struct hdcp_port_id port; +struct trace_event_raw_regmap_block { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int reg; + int count; + char __data[0]; }; -struct ivch_priv { - bool quiet; - u16 width; - u16 height; - u16 reg_backup[24]; +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]; }; -enum hdmi_force_audio { - HDMI_AUDIO_OFF_DVI = -2, - HDMI_AUDIO_OFF = -1, - HDMI_AUDIO_AUTO = 0, - HDMI_AUDIO_ON = 1, +struct trace_event_raw_regmap_bool { + struct trace_entry ent; + u32 __data_loc_name; + int flag; + char __data[0]; }; -enum intel_broadcast_rgb { - INTEL_BROADCAST_RGB_AUTO = 0, - INTEL_BROADCAST_RGB_FULL = 1, - INTEL_BROADCAST_RGB_LIMITED = 2, +struct trace_event_raw_regmap_async { + struct trace_entry ent; + u32 __data_loc_name; + char __data[0]; }; -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, +struct trace_event_raw_regcache_drop_region { + struct trace_entry ent; + u32 __data_loc_name; + unsigned int from; + unsigned int to; + char __data[0]; }; -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, +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 intel_digital_connector_state { - struct drm_connector_state base; - enum hdmi_force_audio force_audio; - int broadcast_rgb; +struct trace_event_data_offsets_regmap_reg { + u32 name; }; -struct dp_sdp { - struct dp_sdp_header sdp_header; - u8 db[32]; +struct trace_event_data_offsets_regmap_bulk { + u32 name; + u32 buf; }; -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 trace_event_data_offsets_regmap_block { + u32 name; }; -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 trace_event_data_offsets_regcache_sync { + u32 name; + u32 status; + u32 type; }; -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 trace_event_data_offsets_regmap_bool { + u32 name; }; -struct component_master_ops { - int (*bind)(struct device *); - void (*unbind)(struct device *); +struct trace_event_data_offsets_regmap_async { + u32 name; }; -struct component_match_array; - -struct component_match { - size_t alloc; - size_t num; - struct component_match_array *compare; +struct trace_event_data_offsets_regcache_drop_region { + u32 name; }; -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 regmap_range_cfg; -struct regcache_ops { +struct regmap_config { 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); -}; - -struct regmap_format { - size_t buf_size; - size_t reg_bytes; - size_t pad_bytes; - size_t val_bytes; - s8 reg_shift; - 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 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; + int reg_bits; + int reg_stride; + int reg_shift; 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; + 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; - 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; - bool force_write_field; - const struct regcache_ops *cache_ops; - enum regcache_type cache_type; - unsigned int cache_size_raw; - unsigned int cache_word_size; + const struct reg_default *reg_defaults; 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; + enum regcache_type cache_type; const void *reg_defaults_raw; - void *cache; - bool cache_dirty; - bool no_sync_defaults; - struct reg_sequence *patch; - int patch_regs; + 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; - size_t max_raw_read; - size_t max_raw_write; - struct rb_root range_tree; - void *selector_work_buf; - struct hwspinlock *hwlock; + 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_async { - struct list_head list; - struct regmap *map; - void *work_buf; +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 reg_sequence { +struct regmap_field { + struct regmap *regmap; + unsigned int mask; + unsigned int shift; unsigned int reg; - unsigned int def; - unsigned int delay_us; + unsigned int id_size; + unsigned int id_offset; }; -struct scsi_varlen_cdb_hdr { - __u8 opcode; - __u8 control; - __u8 misc[5]; - __u8 additional_cdb_length; - __be16 service_action; +struct reg_field { + unsigned int reg; + unsigned int lsb; + unsigned int msb; + unsigned int id_size; + unsigned int id_offset; }; -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 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 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 mdio_board_info { + const char *bus_id; + char modalias[32]; + int mdio_addr; + const void *platform_data; }; -struct netdev_lag_lower_state_info { - u8 link_up: 1; - u8 tx_enabled: 1; +struct mdio_board_entry { + struct list_head list; + struct mdio_board_info board_info; }; -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 sky2_stat { + char name[32]; + u16 offset; }; -enum i8042_controller_reset_mode { - I8042_RESET_NEVER = 0, - I8042_RESET_ALWAYS = 1, - I8042_RESET_ON_S2RAM = 2, +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, }; -struct i8042_port { - struct serio *serio; - int irq; - bool exists; - bool driver_bound; - signed char mux; +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, }; -struct pps_kinfo { - __u32 assert_sequence; - __u32 clear_sequence; - struct pps_ktime assert_tu; - struct pps_ktime clear_tu; - int current_mode; +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, }; -struct pps_fdata { - struct pps_kinfo info; - struct pps_ktime timeout; +enum { + CFG_CHIP_R_MSK = 240, + CFG_DIS_M2_CLK = 2, + CFG_SNG_MAC = 1, }; -struct pps_bind_args { - int tsformat; - int edge; - int consumer; +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, }; -struct pps_ktime_compat { - __s64 sec; - __s32 nsec; - __u32 flags; +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, }; -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)); - -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; +enum yukon_ex_rev { + CHIP_REV_YU_EX_A0 = 1, + CHIP_REV_YU_EX_B0 = 2, }; -struct bmp_header { - u16 id; - u32 size; -} __attribute__((packed)); - -struct earlycon_device; +enum yukon_ec_rev { + CHIP_REV_YU_EC_A1 = 0, + CHIP_REV_YU_EC_A2 = 1, + CHIP_REV_YU_EC_A3 = 2, +}; -struct earlycon_id { - char name[15]; - char name_term; - char compatible[128]; - int (*setup)(struct earlycon_device *, const char *); +enum yukon_fe_p_rev { + CHIP_REV_YU_FE2_A0 = 0, }; -struct earlycon_device { - struct console *con; - struct uart_port port; - char options[32]; - unsigned int baud; +enum yukon_supr_rev { + CHIP_REV_YU_SU_A0 = 0, + CHIP_REV_YU_SU_B0 = 1, + CHIP_REV_YU_SU_B1 = 3, }; -struct font_desc { - int idx; - const char *name; - unsigned int width; - unsigned int height; - unsigned int charcount; - const void *data; - int pref; +enum { + CFG_LED_MODE_MSK = 28, + CFG_LINK_2_AVAIL = 2, + CFG_LINK_1_AVAIL = 1, }; 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, + 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 { - 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, + 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, }; -struct snd_seq_real_time { - unsigned int tv_sec; - unsigned int tv_nsec; +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, }; -typedef struct snd_seq_real_time snd_seq_real_time_t; +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, +}; -typedef unsigned int snd_seq_tick_time_t; +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, +}; -struct snd_seq_timer_tick { - snd_seq_tick_time_t cur_tick; - unsigned long resolution; - unsigned long fraction; +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, }; -struct snd_timer_id { - int dev_class; - int dev_sclass; - int card; - int device; - int subdevice; +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, }; -struct snd_timer_instance; +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, +}; -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; +enum { + GMLC_RST_CLR = 2, + GMLC_RST_SET = 1, }; -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; +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, }; -typedef atomic_t snd_use_lock_t; - -struct snd_seq_prioq; - -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; +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, }; -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; +enum { + PEX_RD_ACCESS = -2147483648, + PEX_DB_ACCESS = 1073741824, }; -typedef unsigned char snd_seq_event_type_t; - -union snd_seq_timestamp { - snd_seq_tick_time_t tick; - struct snd_seq_real_time time; +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, }; -struct snd_seq_addr { - unsigned char client; - unsigned char port; +enum yukon_prm_rev { + CHIP_REV_YU_PRM_Z1 = 1, + CHIP_REV_YU_PRM_A0 = 2, }; -struct snd_seq_ev_note { - unsigned char channel; - unsigned char note; - unsigned char velocity; - unsigned char off_velocity; - unsigned int duration; +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, }; -struct snd_seq_ev_ctrl { - unsigned char channel; - unsigned char unused1; - unsigned char unused2; - unsigned char unused3; - unsigned int param; - int value; +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, }; -struct snd_seq_ev_raw8 { - unsigned char d[12]; +enum { + TIM_START = 4, + TIM_STOP = 2, + TIM_CLR_IRQ = 1, }; -struct snd_seq_ev_raw32 { - unsigned int d[3]; +enum { + B28_DPT_INI = 3584, + B28_DPT_VAL = 3588, + B28_DPT_CTRL = 3592, + B28_DPT_TST = 3594, }; -struct snd_seq_ev_ext { - unsigned int len; - void *ptr; -} __attribute__((packed)); - -struct snd_seq_queue_skew { - unsigned int value; - unsigned int base; +enum { + DPT_START = 2, + DPT_STOP = 1, }; -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; +enum { + GMAC_TI_ST_VAL = 3604, + GMAC_TI_ST_CTRL = 3608, + GMAC_TI_ST_TST = 3610, }; -struct snd_seq_connect { - struct snd_seq_addr sender; - struct snd_seq_addr dest; +enum { + GMT_ST_START = 4, + GMT_ST_STOP = 2, + GMT_ST_CLR_IRQ = 1, }; -struct snd_seq_result { - int event; - int result; +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, }; -struct snd_seq_event; - -struct snd_seq_ev_quote { - struct snd_seq_addr origin; - unsigned short value; - struct snd_seq_event *event; -} __attribute__((packed)); - -union snd_seq_event_data { - 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; +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, }; -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 snd_seq_event_data data; +enum { + RI_CLR_RD_PERR = 512, + RI_CLR_WR_PERR = 256, + RI_RST_CLR = 2, + RI_RST_SET = 1, }; -union __snd_seq_event { - struct snd_seq_event legacy; - struct { - struct snd_seq_event event; - } raw; +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, }; -struct snd_seq_pool; - -struct snd_seq_event_cell { - union { - struct snd_seq_event event; - union __snd_seq_event ump; - }; - struct snd_seq_pool *pool; - struct snd_seq_event_cell *next; +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, }; -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; +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 { - SOCK_WAKE_IO = 0, - SOCK_WAKE_WAITD = 1, - SOCK_WAKE_SPACE = 2, - SOCK_WAKE_URG = 3, + 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, }; -struct net_test { - char name[32]; - int (*fn)(struct net_device *); +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, }; -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; +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, }; -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 { + 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 { - 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, + 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, }; -struct features_reply_data { - struct ethnl_reply_data base; - u32 hw[2]; - u32 wanted[2]; - u32 active[2]; - u32 nochange[2]; - u32 all[2]; +enum { + GM_RXCR_UCF_ENA = 32768, + GM_RXCR_MCF_ENA = 16384, + GM_RXCR_CRC_DIS = 8192, + GM_RXCR_PASS_FC = 4096, }; -enum nf_ct_tcp_action { - NFCT_TCP_IGNORE = 0, - NFCT_TCP_INVALID = 1, - NFCT_TCP_ACCEPT = 2, +enum { + BASE_GMAC_1 = 10240, + BASE_GMAC_2 = 14336, }; -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 flow_control { + FC_NONE = 0, + FC_TX = 1, + FC_RX = 2, + FC_BOTH = 3, }; 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, + 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 ctattr_protoinfo { - CTA_PROTOINFO_UNSPEC = 0, - CTA_PROTOINFO_TCP = 1, - CTA_PROTOINFO_DCCP = 2, - CTA_PROTOINFO_SCTP = 3, - __CTA_PROTOINFO_MAX = 4, +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 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 { + MAC_TX_CLK_0_MHZ = 2, + MAC_TX_CLK_2_5_MHZ = 6, + MAC_TX_CLK_25_MHZ = 7, }; -struct nf_ct_tcp_flags { - __u8 flags; - __u8 mask; +enum { + PHY_M_PC_MAN_MDI = 0, + PHY_M_PC_MAN_MDIX = 1, + PHY_M_PC_ENA_AUTO = 3, }; -struct tsq_tasklet { - struct tasklet_struct tasklet; - struct list_head head; +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 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 { + PHY_M_FESC_DIS_WAIT = 4, + PHY_M_FESC_ENA_MCLK = 2, + PHY_M_FESC_SEL_CL_A = 1, }; enum { - BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, - BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, + PHY_M_PC_DIS_LINK_Pa = 32768, + PHY_M_PC_DSC_MSK = 28672, + PHY_M_PC_DOWN_S_ENA = 2048, }; -enum sk_pacing { - SK_PACING_NONE = 0, - SK_PACING_NEEDED = 1, - SK_PACING_FQ = 2, +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, }; -struct mptcp_out_options {}; - -struct tcp_out_options { - u16 options; - u16 mss; - u8 ws; - u8 num_sack_blocks; - u8 hash_size; - u8 bpf_opt_len; - __u8 *hash_location; - __u32 tsval; - __u32 tsecr; - struct tcp_fastopen_cookie *fastopen_cookie; - struct mptcp_out_options mptcp; +enum { + PHY_M_FIB_FORCE_LNK = 1024, + PHY_M_FIB_SIGD_POL = 512, + PHY_M_FIB_TX_DIS = 8, }; -typedef int (*btf_kfunc_filter_t)(const struct bpf_prog *, u32); - -struct btf_id_set8; - -struct btf_kfunc_id_set { - struct module *owner; - struct btf_id_set8 *set; - btf_kfunc_filter_t filter; +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, }; -struct btf_id_set8 { - u32 cnt; - u32 flags; - struct { - u32 id; - u32 flags; - } pairs[0]; +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, }; -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; +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, }; -struct mld2_grec { - __u8 grec_type; - __u8 grec_auxwords; - __be16 grec_nsrcs; - struct in6_addr grec_mca; - struct in6_addr grec_src[0]; +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, }; -struct mld2_report { - struct icmp6hdr mld2r_hdr; - struct mld2_grec mld2r_grec[0]; +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, }; -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]; +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, }; -struct igmp6_mc_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct inet6_dev *idev; +enum { + PHY_CT_SP1000 = 64, + PHY_CT_SP100 = 8192, + PHY_CT_SP10 = 0, }; -struct igmp6_mcf_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct inet6_dev *idev; - struct ifmcaddr6 *im; +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 tpacket_versions { - TPACKET_V1 = 0, - TPACKET_V2 = 1, - TPACKET_V3 = 2, +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 packet_sock_flags { - PACKET_SOCK_ORIGDEV = 0, - PACKET_SOCK_AUXDATA = 1, - PACKET_SOCK_TX_HAS_OFF = 2, - PACKET_SOCK_TP_LOSS = 3, - PACKET_SOCK_RUNNING = 4, - PACKET_SOCK_PRESSURE = 5, - PACKET_SOCK_QDISC_BYPASS = 6, +enum { + BLINK_42MS = 0, + BLINK_84MS = 1, + BLINK_170MS = 2, + BLINK_340MS = 3, + BLINK_670MS = 4, }; -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 { + PHY_M_FELP_LED2_MSK = 3840, + PHY_M_FELP_LED1_MSK = 240, + PHY_M_FELP_LED0_MSK = 15, }; -struct tpacket_stats { - unsigned int tp_packets; - unsigned int tp_drops; +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, }; -struct tpacket_stats_v3 { - unsigned int tp_packets; - unsigned int tp_drops; - unsigned int tp_freeze_q_cnt; +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, }; -union tpacket_stats_u { - struct tpacket_stats stats1; - struct tpacket_stats_v3 stats3; +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, }; -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; +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, }; -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; - }; +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, }; -struct packet_fanout; - -struct packet_rollover; - -struct packet_mclist; - -struct packet_sock { - struct sock sk; - struct packet_fanout *fanout; - union tpacket_stats_u stats; - struct packet_ring_buffer rx_ring; - struct packet_ring_buffer tx_ring; - int copy_thresh; - spinlock_t bind_lock; - struct mutex pg_vec_lock; - unsigned long flags; - int ifindex; - u8 vnet_hdr_sz; - __be16 num; - struct packet_rollover *rollover; - struct packet_mclist *mclist; - atomic_t mapped; - enum tpacket_versions tp_version; - unsigned int tp_hdrlen; - unsigned int tp_reserve; - unsigned int tp_tstamp; - struct completion skb_completion; - struct net_device __attribute__((btf_type_tag("rcu"))) *cached_dev; - long: 64; - long: 64; - struct packet_type prot_hook; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - atomic_t tp_drops; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +enum led_mode { + MO_LED_NORM = 0, + MO_LED_BLINK = 1, + MO_LED_OFF = 2, + MO_LED_ON = 3, }; -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; +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, }; -struct pgv { - char *buffer; +enum { + PHY_ADDR_MARV = 0, }; -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]; +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, }; -struct packet_mclist { - struct packet_mclist *next; - int ifindex; - int count; - unsigned short type; - unsigned short alen; - unsigned char addr[32]; +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, }; -struct tpacket_bd_ts { - unsigned int ts_sec; - union { - unsigned int ts_usec; - unsigned int ts_nsec; - }; +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, }; -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; +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, }; -union tpacket_bd_header_u { - struct tpacket_hdr_v1 bh1; +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, }; -struct tpacket_block_desc { - __u32 version; - __u32 offset_to_priv; - union tpacket_bd_header_u hdr; +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, }; -struct tpacket_hdr_variant1 { - __u32 tp_rxhash; - __u32 tp_vlan_tci; - __u16 tp_vlan_tpid; - __u16 tp_padding; +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, }; -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]; +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, }; -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; - union { - unsigned char sll_addr[8]; - struct { - struct {} __empty_sll_addr_flex; - unsigned char sll_addr_flex[0]; - }; - }; +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, }; -struct sockaddr_pkt { - unsigned short spkt_family; - unsigned char spkt_device[14]; - __be16 spkt_protocol; +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, }; -struct packet_skb_cb { - union { - struct sockaddr_pkt pkt; - union { - unsigned int origlen; - struct sockaddr_ll ll; - }; - } sa; +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, }; -typedef __u16 __virtio16; - -struct virtio_net_hdr { - __u8 flags; - __u8 gso_type; - __virtio16 hdr_len; - __virtio16 gso_size; - __virtio16 csum_start; - __virtio16 csum_offset; +enum { + PREF_UNIT_OP_ON = 8, + PREF_UNIT_OP_OFF = 4, + PREF_UNIT_RST_CLR = 2, + PREF_UNIT_RST_SET = 1, }; -struct sock_skb_cb { - u32 dropcount; +enum { + PHY_M_PC_COP_TX_DIS = 8, + PHY_M_PC_POW_D_ENA = 4, }; -struct tpacket_hdr; - -struct tpacket2_hdr; - -union tpacket_uhdr { - struct tpacket_hdr *h1; - struct tpacket2_hdr *h2; - struct tpacket3_hdr *h3; - void *raw; +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, }; -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; +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, }; -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]; +enum { + Q_R1 = 0, + Q_R2 = 128, + Q_XS1 = 512, + Q_XA1 = 640, + Q_XS2 = 768, + Q_XA2 = 896, }; -struct virtio_net_hdr_mrg_rxbuf { - struct virtio_net_hdr hdr; - __virtio16 num_buffers; +enum { + F_TX_CHK_AUTO_OFF = -2147483648, + F_TX_CHK_AUTO_ON = 1073741824, + F_M_RX_RAM_DIS = 16777216, }; -struct tpacket_req { - unsigned int tp_block_size; - unsigned int tp_block_nr; - unsigned int tp_frame_size; - unsigned int tp_frame_nr; +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, }; -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; +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, }; -union tpacket_req_u { - struct tpacket_req req; - struct tpacket_req3 req3; +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, }; -struct sock_fprog { - unsigned short len; - struct sock_filter __attribute__((btf_type_tag("user"))) *filter; +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, }; -typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); - -struct packet_mreq_max { - int mr_ifindex; - unsigned short mr_type; - unsigned short mr_alen; - unsigned char mr_address[32]; +enum { + GM_PAR_MIB_CLR = 32, + GM_PAR_MIB_TST = 16, }; -struct fanout_args { - __u16 id; - __u16 type_flags; - __u32 max_num_members; +enum { + GM_TXCR_FORCE_JAM = 32768, + GM_TXCR_CRC_DIS = 16384, + GM_TXCR_PAD_DIS = 8192, + GM_TXCR_COL_THR_MSK = 7168, }; -struct tpacket_rollover_stats { - __u64 tp_all; - __u64 tp_huge; - __u64 tp_failed; +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, }; -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; +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, }; -struct cfg80211_per_bw_puncturing_values { - u8 len; - const u16 *valid_values; +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 rate_control_capabilities { - RATE_CTRL_CAPA_VHT_EXT_NSS_BW = 1, - RATE_CTRL_CAPA_AMPDU_TRIGGER = 2, +enum { + TX_DYN_WM_ENA = 3, }; -enum ieee80211_encrypt { - ENCRYPT_NO = 0, - ENCRYPT_MGMT = 1, - ENCRYPT_DATA = 2, +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 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 { + 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 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 { + 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 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 { + 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 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, +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, }; -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 *); +enum { + UDPTCP = 1, + CALSUM = 2, + WR_SUM = 4, + INIT_SUM = 8, + LOCK_SUM = 16, + INS_VLAN = 32, + EOP = 128, +}; -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; +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, }; -struct ieee80211_radiotap_vendor_namespaces; +enum { + LINKLED_OFF = 1, + LINKLED_ON = 2, + LINKLED_LINKSYNC_OFF = 4, + LINKLED_LINKSYNC_ON = 8, + LINKLED_BLINK_OFF = 16, + LINKLED_BLINK_ON = 32, +}; -struct ieee80211_radiotap_namespace; +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, +}; -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; +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, }; -struct ieee80211_radiotap_vendor_namespaces { - const struct ieee80211_radiotap_namespace *ns; - int n_ns; +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 radiotap_align_size; +struct sky2_status_le; -struct ieee80211_radiotap_namespace { - const struct radiotap_align_size *align_size; - int n_bits; - uint32_t oui; - uint8_t subns; +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 radiotap_align_size { - uint8_t align: 4; - uint8_t size: 4; +struct sky2_status_le { + __le32 status; + __le16 length; + u8 css; + u8 opcode; }; -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 *); +struct sky2_stats { + struct u64_stats_sync syncp; + u64 packets; + u64 bytes; +}; -typedef codel_time_t (*codel_skb_time_t)(const struct sk_buff *); +struct tx_ring_info; -typedef void (*codel_skb_drop_t)(struct sk_buff *, void *); +struct sky2_tx_le; -typedef struct sk_buff * (*codel_skb_dequeue_t)(struct codel_vars *, void *); +struct rx_ring_info; -struct ieee80211_mutable_offsets { - u16 tim_offset; - u16 tim_length; - u16 cntdwn_counter_offs[2]; - u16 mbssid_off; -}; +struct sky2_rx_le; -struct ieee80211_ema_beacons { - u8 cnt; +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: 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 { - struct sk_buff *skb; - struct ieee80211_mutable_offsets offs; - } bcn[0]; + 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 mesh_path { - u8 dst[6]; - u8 mpp[6]; - struct rhash_head rhash; - struct hlist_node walk_list; - struct hlist_node gate_list; - struct ieee80211_sub_if_data *sdata; - struct sta_info __attribute__((btf_type_tag("rcu"))) *next_hop; - struct timer_list timer; - struct sk_buff_head frame_queue; - struct callback_head rcu; - u32 sn; - u32 metric; - u8 hop_count; - unsigned long exp_time; - u32 discovery_timeout; - u8 discovery_retries; - enum mesh_path_flags flags; - spinlock_t state_lock; - u8 rann_snd_addr[6]; - u32 rann_metric; - unsigned long last_preq_to_root; - unsigned long fast_tx_check; - bool is_root; - bool is_gate; - u32 path_change_count; +struct tx_ring_info { + struct sk_buff *skb; + unsigned long flags; + dma_addr_t mapaddr; + __u32 maplen; }; -struct ieee80211s_hdr { - u8 flags; - u8 ttl; - __le32 seqnum; - u8 eaddr1[6]; - u8 eaddr2[6]; -} __attribute__((packed)); +struct sky2_tx_le { + __le32 addr; + __le16 length; + u8 ctrl; + u8 opcode; +}; -struct ieee80211_pspoll { - __le16 frame_control; - __le16 aid; - u8 bssid[6]; - u8 ta[6]; +struct rx_ring_info { + struct sk_buff *skb; + dma_addr_t data_addr; + __u32 data_size; + dma_addr_t frag_addr[2]; }; -struct ieee80211_rts { - __le16 frame_control; - __le16 duration; - u8 ra[6]; - u8 ta[6]; +struct sky2_rx_le { + __le32 addr; + __le16 length; + u8 ctrl; + u8 opcode; }; -struct ieee80211_cts { - __le16 frame_control; - __le16 duration; - u8 ra[6]; +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 { - 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, +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); }; -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 quirk_printer_struct { + __u16 vendorId; + __u16 productId; + unsigned int quirks; }; -enum { - LBR_NONE = 0, - LBR_VALID = 1, +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 { - 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, +struct touchscreen_properties { + unsigned int max_x; + unsigned int max_y; + bool invert_x; + bool invert_y; + bool swap_x_y; }; +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 { - 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, + none = 0, + day = 1, + month = 2, + year = 3, }; -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, +struct trace_event_raw_rtc_time_alarm_class { + struct trace_entry ent; + time64_t secs; + int err; + char __data[0]; }; -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 trace_event_raw_rtc_irq_set_freq { + struct trace_entry ent; + int freq; + int err; + char __data[0]; }; -struct x86_perf_task_context_opt { - int lbr_callstack_users; - int lbr_stack_state; - int log_id; +struct trace_event_raw_rtc_irq_set_state { + struct trace_entry ent; + int enabled; + int err; + char __data[0]; }; -struct lbr_entry { - u64 from; - u64 to; - u64 info; +struct trace_event_raw_rtc_alarm_irq_enable { + struct trace_entry ent; + unsigned int enabled; + int err; + char __data[0]; }; -struct x86_perf_task_context_arch_lbr { - struct x86_perf_task_context_opt opt; - struct lbr_entry entries[0]; +struct trace_event_raw_rtc_offset_class { + struct trace_entry ent; + long offset; + int err; + char __data[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]; +struct trace_event_raw_rtc_timer_class { + struct trace_entry ent; + struct rtc_timer *timer; + ktime_t expires; + ktime_t period; + char __data[0]; }; -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; +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 stripe { + struct dm_dev *dev; + sector_t physical_start; + atomic_t error_count; }; -union cpuid28_ebx { - struct { - unsigned int lbr_cpl: 1; - unsigned int lbr_filter: 1; - unsigned int lbr_call_stack: 1; - } split; - unsigned int full; +struct 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]; }; -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; +enum { + UNDEFINED_CAPABLE = 0, + SYSTEM_INTEL_MSR_CAPABLE = 1, + SYSTEM_AMD_MSR_CAPABLE = 2, + SYSTEM_IO_CAPABLE = 3, }; -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 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 x86_perf_task_context_arch_lbr_xsave { - struct x86_perf_task_context_opt opt; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct drv_cmd { + struct acpi_pct_register *reg; + u32 val; 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; - }; - }; + void (*write)(struct acpi_pct_register *, u32); + u32 (*read)(struct acpi_pct_register *); + } func; }; -struct x86_pmu_lbr { - unsigned int nr; - unsigned int from; - unsigned int to; - unsigned int info; +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; }; -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 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 irqchip_fwid { - struct fwnode_handle fwnode; - unsigned int type; - char *name; - phys_addr_t *pa; +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 profile_hit { - u32 pc; - u32 hits; +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 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; +struct hid_bpf_ops { + struct hid_report * (*hid_get_report)(struct hid_report_enum *, const u8 *); + int (*hid_hw_raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, enum hid_report_type, enum hid_class_request); + struct module *owner; + struct bus_type *bus_type; }; -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; +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; }; -typedef struct acct acct_t; - -typedef __u32 comp2_t; - -struct ftrace_graph_ret; +struct hid_dynid { + struct list_head list; + struct hid_device_id id; +}; -typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); +typedef int (*hda_codec_patch_t)(struct hda_codec *); -struct ftrace_graph_ret { - unsigned long func; - unsigned long retval; - int depth; - unsigned int overrun; - unsigned long long calltime; - unsigned long long rettime; +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 ftrace_graph_ent; +struct hda_codec_driver { + struct hdac_driver core; + const struct hda_device_id *id; +}; -typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); +enum i915_component_type { + I915_COMPONENT_AUDIO = 1, + I915_COMPONENT_HDCP = 2, + I915_COMPONENT_PXP = 3, + I915_COMPONENT_GSC_PROXY = 4, +}; -struct ftrace_graph_ent { - unsigned long func; - int depth; -} __attribute__((packed)); +struct net_bridge; -enum { - FTRACE_UPDATE_CALLS = 1, - FTRACE_DISABLE_CALLS = 2, - FTRACE_UPDATE_TRACE_FUNC = 4, - FTRACE_START_FUNC_RET = 8, - FTRACE_STOP_FUNC_RET = 16, - FTRACE_MAY_SLEEP = 32, +struct sock_ee_data_rfc4884 { + __u16 len; + __u8 flags; + __u8 reserved; }; -struct fgraph_ret_regs { - unsigned long ax; - unsigned long dx; - unsigned long bp; +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 fgraph_ops { - trace_func_graph_ent_t entryfunc; - trace_func_graph_ret_t retfunc; +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 bpf_hrtimer { - struct hrtimer timer; - struct bpf_map *map; - struct bpf_prog *prog; - void __attribute__((btf_type_tag("rcu"))) *callback_fn; - void *value; +struct compat_mmsghdr { + struct compat_msghdr msg_hdr; + compat_uint_t msg_len; }; -struct bpf_bprintf_buffers { - char bin_args[512]; - char buf[1024]; +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; }; -enum { - BPF_F_INDEX_MASK = 4294967295ULL, - BPF_F_CURRENT_CPU = 4294967295ULL, - BPF_F_CTXLEN_MASK = 4503595332403200ULL, +struct compat_if_settings { + unsigned int type; + unsigned int size; + compat_uptr_t ifs_ifsu; }; -enum { - BPF_F_TIMER_ABS = 1, +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; }; -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 sock_skb_cb { + u32 dropcount; +}; -struct bpf_pidns_info { - __u32 pid; - __u32 tgid; +struct mmsghdr { + struct user_msghdr msg_hdr; + unsigned int msg_len; }; -typedef u64 (*btf_bpf_event_output_data)(void *, struct bpf_map *, u64, void *, u64); +struct __kernel_sock_timeval { + __s64 tv_sec; + __s64 tv_usec; +}; -typedef u64 (*btf_bpf_copy_from_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); +struct scm_ts_pktinfo { + __u32 if_index; + __u32 pkt_length; + __u32 reserved[2]; +}; -typedef u64 (*btf_bpf_copy_from_user_task)(void *, u32, const void __attribute__((btf_type_tag("user"))) *, struct task_struct *, u64); +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; +}; -typedef u64 (*btf_bpf_per_cpu_ptr)(const void *, u32); +struct used_address { + struct __kernel_sockaddr_storage name; + unsigned int name_len; +}; -typedef u64 (*btf_bpf_this_cpu_ptr)(const void *); +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, +}; -typedef u64 (*btf_bpf_snprintf)(char *, u32, char *, const void *, u32); +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 bpf_timer_kern; +struct fib_rule_uid_range { + __u32 start; + __u32 end; +}; -typedef u64 (*btf_bpf_timer_init)(struct bpf_timer_kern *, struct bpf_map *, u64); +struct fib_rule_notifier_info { + struct fib_notifier_info info; + struct fib_rule *rule; +}; -struct bpf_timer_kern { - struct bpf_hrtimer *timer; - struct bpf_spin_lock lock; +enum tc_fifo_command { + TC_FIFO_REPLACE = 0, + TC_FIFO_DESTROY = 1, + TC_FIFO_STATS = 2, }; -typedef u64 (*btf_bpf_timer_set_callback)(struct bpf_timer_kern *, void *, struct bpf_prog_aux *); +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, +}; -typedef u64 (*btf_bpf_timer_start)(struct bpf_timer_kern *, u64, u64); +struct tc_fifo_qopt { + __u32 limit; +}; -typedef u64 (*btf_bpf_timer_cancel)(struct bpf_timer_kern *); +struct tc_fifo_qopt_offload { + enum tc_fifo_command command; + u32 handle; + u32 parent; + union { + struct tc_qopt_offload_stats stats; + }; +}; -typedef u64 (*btf_bpf_kptr_xchg)(void *, void *); +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 bpf_dynptr_kern; +struct eee_reply_data { + struct ethnl_reply_data base; + struct ethtool_eee eee; +}; -typedef u64 (*btf_bpf_dynptr_from_mem)(void *, u32, u64, struct bpf_dynptr_kern *); +struct flow_dissector_key_tags { + u32 flow_label; +}; -struct bpf_dynptr_kern { - void *data; - u32 size; - u32 offset; +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; }; -typedef u64 (*btf_bpf_dynptr_read)(void *, u32, const struct bpf_dynptr_kern *, u32, u64); +struct flow_dissector_key_keyid { + __be32 keyid; +}; -typedef u64 (*btf_bpf_dynptr_write)(const struct bpf_dynptr_kern *, u32, void *, u32, u64); +struct flow_dissector_key_ports { + union { + __be32 ports; + struct { + __be16 src; + __be16 dst; + }; + }; +}; -typedef u64 (*btf_bpf_dynptr_data)(const struct bpf_dynptr_kern *, u32, u32); +struct flow_dissector_key_icmp { + struct { + u8 type; + u8 code; + }; + u16 id; +}; -struct bpf_refcount { - int: 32; +struct flow_dissector_key_ipv4_addrs { + __be32 src; + __be32 dst; }; -struct bpf_rb_node { - long: 64; - long: 64; - long: 64; +struct flow_dissector_key_ipv6_addrs { + struct in6_addr src; + struct in6_addr dst; }; -struct bpf_timer { - long: 64; - long: 64; +struct flow_dissector_key_tipc { + __be32 key; }; -struct bpf_dynptr { - long: 64; - long: 64; +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 bpf_list_node { - long: 64; - long: 64; +struct flow_keys { + struct flow_dissector_key_control control; + struct flow_dissector_key_basic basic; + struct flow_dissector_key_tags tags; + struct flow_dissector_key_vlan vlan; + struct flow_dissector_key_vlan cvlan; + struct flow_dissector_key_keyid keyid; + struct flow_dissector_key_ports ports; + struct flow_dissector_key_icmp icmp; + struct flow_dissector_key_addrs addrs; + long: 0; }; -struct bpf_bprintf_data { - u32 *bin_args; - char *buf; - bool get_bin_args; - bool get_buf; +struct static_key_false_deferred { + struct static_key_false key; + unsigned long timeout; + struct delayed_work work; }; -struct bpf_list_head { - long: 64; - long: 64; +struct ip6fl_iter_state { + struct seq_net_private p; + struct pid_namespace *pid_ns; + int bucket; }; -struct bpf_rb_root { - long: 64; - long: 64; +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 btf_id_dtor_kfunc { - u32 btf_id; - u32 kfunc_btf_id; +struct sockcm_cookie { + u64 transmit_time; + u32 mark; + u32 tsflags; }; -struct files_stat_struct { - unsigned long nr_files; - unsigned long nr_free_files; - unsigned long max_files; +struct ipcm6_cookie { + struct sockcm_cookie sockc; + __s16 hlimit; + __s16 tclass; + __u16 gso_size; + __s8 dontfrag; + struct ipv6_txoptions *opt; }; -struct backing_file { - struct file file; - struct path real_path; +enum { + SEG6_IPTUNNEL_UNSPEC = 0, + SEG6_IPTUNNEL_SRH = 1, + __SEG6_IPTUNNEL_MAX = 2, }; -typedef int splice_direct_actor(struct pipe_inode_info *, struct splice_desc *); +enum { + SEG6_IPTUN_MODE_INLINE = 0, + SEG6_IPTUN_MODE_ENCAP = 1, + SEG6_IPTUN_MODE_L2ENCAP = 2, + SEG6_IPTUN_MODE_ENCAP_RED = 3, + SEG6_IPTUN_MODE_L2ENCAP_RED = 4, +}; -struct core_name { - char *corename; - int used; - int size; +struct seg6_iptunnel_encap { + int mode; + struct ipv6_sr_hdr srh[0]; }; -struct ext4_attr { - struct attribute attr; - short attr_id; - short attr_ptr; - unsigned short attr_size; - union { - int offset; - void *explicit_ptr; - } u; +struct seg6_lwt { + struct dst_cache cache; + struct seg6_iptunnel_encap tuninfo[0]; }; 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, + TLS_ALERT_LEVEL_WARNING = 1, + TLS_ALERT_LEVEL_FATAL = 2, }; enum { - ptr_explicit = 0, - ptr_ext4_sb_info_offset = 1, - ptr_ext4_super_block_offset = 2, + SVC_HANDSHAKE_TO = 5000, }; -enum isofs_file_format { - isofs_file_normal = 0, - isofs_file_sparse = 1, - isofs_file_compressed = 2, +enum { + TLS_NO_KEYRING = 0, + TLS_NO_PEERID = 0, + TLS_NO_CERT = 0, + TLS_NO_PRIVKEY = 0, }; -struct SU_SP_s { - __u8 magic[2]; - __u8 skip; +struct page_frag_cache { + void *va; + __u16 offset; + __u16 size; + unsigned int pagecnt_bias; + bool pfmemalloc; }; -struct SU_CE_s { - __u8 extent[8]; - __u8 offset[8]; - __u8 size[8]; +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; + struct page_frag_cache sk_frag_cache; + struct completion sk_handshake_done; + struct page *sk_pages[259]; }; -struct SU_ER_s { - __u8 len_id; - __u8 len_des; - __u8 len_src; - __u8 ext_ver; - __u8 data[0]; -}; +typedef void (*tls_done_func_t)(void *, int, key_serial_t); -struct RR_RR_s { - __u8 flags[1]; +struct tls_handshake_args { + struct socket *ta_sock; + tls_done_func_t ta_done; + void *ta_data; + const char *ta_peername; + unsigned int ta_timeout_ms; + key_serial_t ta_keyring; + key_serial_t ta_my_cert; + key_serial_t ta_my_privkey; + unsigned int ta_num_peerids; + key_serial_t ta_my_peerids[5]; }; -struct RR_PX_s { - __u8 mode[8]; - __u8 n_links[8]; - __u8 uid[8]; - __u8 gid[8]; +struct in_pktinfo { + int ipi_ifindex; + struct in_addr ipi_spec_dst; + struct in_addr ipi_addr; }; -struct RR_PN_s { - __u8 dev_high[8]; - __u8 dev_low[8]; +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, }; -struct SL_component { - __u8 flags; - __u8 len; - __u8 text[0]; +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, }; -struct RR_SL_s { - __u8 flags; - struct SL_component link; +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, }; -struct RR_NM_s { - __u8 flags; - char name[0]; +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 RR_CL_s { - __u8 location[8]; -}; +struct ieee80211_twt_params { + __le16 req_type; + __le64 twt; + u8 min_twt_dur; + __le16 mantissa; + u8 channel; +} __attribute__((packed)); -struct RR_PL_s { - __u8 location[8]; +enum rfkill_operation { + RFKILL_OP_ADD = 0, + RFKILL_OP_DEL = 1, + RFKILL_OP_CHANGE = 2, + RFKILL_OP_CHANGE_ALL = 3, }; -struct stamp { - __u8 time[7]; +enum rfkill_user_states { + RFKILL_USER_STATE_SOFT_BLOCKED = 0, + RFKILL_USER_STATE_UNBLOCKED = 1, + RFKILL_USER_STATE_HARD_BLOCKED = 2, }; -struct RR_TF_s { - __u8 flags; - struct stamp times[0]; +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; + bool need_sync; + 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 RR_ZF_s { - __u8 algorithm[2]; - __u8 parms[2]; - __u8 real_size[8]; +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 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 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; }; -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; +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 *); }; -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 p9_fcall { + u32 size; + u8 id; + u16 tag; + size_t offset; + size_t capacity; + struct kmem_cache *cache; + u8 *sdata; + bool zc; }; -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, +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 { - NFS_OWNER_RECLAIM_REBOOT = 0, - NFS_OWNER_RECLAIM_NOGRACE = 1, + Rworksched = 1, + Rpending = 2, + Wworksched = 4, + Wpending = 8, }; -struct nfs4_setclientid_res { - u64 clientid; - nfs4_verifier confirm; +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, }; -struct bl_dev_msg { - int32_t status; - uint32_t major; - uint32_t minor; +enum { + Opt_port = 0, + Opt_rfdno = 1, + Opt_wfdno = 2, + Opt_err___5 = 3, + Opt_privport = 4, }; -struct nfs_netns_client; +struct p9_conn; -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 p9_poll_wait { + struct p9_conn *conn; + wait_queue_entry_t wait; + wait_queue_head_t *wait_addr; }; -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 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; }; -enum { - Opt_debug___2 = 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_noxattr = 9, - Opt_directio = 10, - Opt_ignoreqv = 11, - Opt_access = 12, - Opt_posixacl = 13, - Opt_locktimeout = 14, - Opt_err___5 = 15, -}; +typedef unsigned short ushort; -enum p9_cache_shortcuts { - CACHE_SC_NONE = 0, - CACHE_SC_READAHEAD = 1, - CACHE_SC_MMAP = 5, - CACHE_SC_LOOSE = 15, - CACHE_SC_FSCACHE = 143, +struct p9_trans_fd { + struct file *rd; + struct file *wr; + struct p9_conn conn; }; -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; -}; +typedef s8 int8_t; -enum sctp_endpoint_type { - SCTP_EP_TYPE_SOCKET = 0, - SCTP_EP_TYPE_ASSOCIATION = 1, +struct p9_fd_opts { + int rfd; + int wfd; + u16 port; + bool privport; }; -enum sctp_socket_type { - SCTP_SOCKET_UDP = 0, - SCTP_SOCKET_UDP_HIGH_BANDWIDTH = 1, - SCTP_SOCKET_TCP = 2, +struct radix_tree_preload { + local_lock_t lock; + unsigned int nr; + struct xa_node *nodes; }; -enum sctp_scope { - SCTP_SCOPE_GLOBAL = 0, - SCTP_SCOPE_PRIVATE = 1, - SCTP_SCOPE_LINK = 2, - SCTP_SCOPE_LOOPBACK = 3, - SCTP_SCOPE_UNUSABLE = 4, +struct cyc2ns_data { + u32 cyc2ns_mul; + u32 cyc2ns_shift; + u64 cyc2ns_offset; }; -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, +struct vmware_steal_time { + union { + uint64_t clock; + struct { + uint32_t clock_low; + uint32_t clock_high; + }; + }; + uint64_t reserved[7]; }; -union sctp_addr { - struct sockaddr_in v4; - struct sockaddr_in6 v6; - struct sockaddr sa; +struct cstate_entry { + struct { + unsigned int eax; + unsigned int ecx; + } states[8]; }; -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 pvclock_vsyscall_time_info { + struct pvclock_vcpu_time_info pvti; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct sctp_inithdr_host { - __u32 init_tag; - __u32 a_rwnd; - __u16 num_outbound_streams; - __u16 num_inbound_streams; - __u32 initial_tsn; +struct pvclock_wall_clock { + u32 version; + u32 sec; + u32 nsec; }; -struct sctp_chunk; - -struct sctp_inq { - struct list_head in_chunk_list; - struct sctp_chunk *in_progress; - struct work_struct immediate; +struct addr_marker { + unsigned long start_address; + const char *name; + unsigned long max_lines; }; -struct sctp_bind_addr { - __u16 port; - struct list_head address_list; +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 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; +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; }; -typedef __s32 sctp_assoc_t; +typedef void (*btf_trace_cpuhp_enter)(void *, unsigned int, int, int, int (*)(unsigned int)); -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; -}; +typedef void (*btf_trace_cpuhp_multi_enter)(void *, unsigned int, int, int, int (*)(unsigned int, struct hlist_node *), struct hlist_node *); -struct genradix_root; +typedef void (*btf_trace_cpuhp_exit)(void *, unsigned int, int, int, int); -struct __genradix { - struct genradix_root *root; +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 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 cpuhp_cpu_state { + enum cpuhp_state state; + enum cpuhp_state target; + enum cpuhp_state fail; + struct task_struct *thread; + bool should_run; + bool rollback; + bool single; + bool bringup; + struct hlist_node *node; + struct hlist_node *last; + enum cpuhp_state cb_state; + int result; + atomic_t ap_sync_state; + struct completion done_up; + struct completion done_down; }; -struct sctp_stream_in { - union { - __u32 mid; - __u16 ssn; - }; - __u32 mid_uo; - __u32 fsn; - __u32 fsn_uo; - char pd_mode; - char pd_mode_uo; +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; }; -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; +struct cpuhp_step { + const char *name; union { - struct { - struct list_head prio_list; - }; - struct { - struct list_head rr_list; - struct sctp_stream_out_ext *rr_next; - }; - struct { - struct list_head fc_list; - }; - }; - struct sctp_stream_interleave *si; + 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; }; -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; +enum cpu_mitigations { + CPU_MITIGATIONS_OFF = 0, + CPU_MITIGATIONS_AUTO = 1, + CPU_MITIGATIONS_AUTO_NOSMT = 2, }; -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; +enum cpuhp_sync_state { + SYNC_STATE_DEAD = 0, + SYNC_STATE_KICKED = 1, + SYNC_STATE_SHOULD_DIE = 2, + SYNC_STATE_ALIVE = 3, + SYNC_STATE_SHOULD_ONLINE = 4, + SYNC_STATE_ONLINE = 5, }; -struct 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 trace_event_raw_cpuhp_enter { + struct trace_entry ent; + unsigned int cpu; + int target; + int idx; + void *fun; + char __data[0]; }; -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 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 trace_event_raw_cpuhp_multi_enter { + struct trace_entry ent; + unsigned int cpu; + int target; + int idx; + void *fun; + char __data[0]; }; -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 trace_event_raw_cpuhp_exit { + struct trace_entry ent; + unsigned int cpu; + int state; + int idx; + int ret; + char __data[0]; }; -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 cpu_down_work { + unsigned int cpu; + enum cpuhp_state target; }; -struct sctp_datahdr; - -struct sctp_inithdr; - -struct sctp_sackhdr; - -struct sctp_heartbeathdr; - -struct sctp_sender_hb_info; - -struct sctp_shutdownhdr; - -struct sctp_signed_cookie; +struct trace_event_data_offsets_cpuhp_enter {}; -struct sctp_ecnehdr; +struct trace_event_data_offsets_cpuhp_multi_enter {}; -struct sctp_cwrhdr; +struct trace_event_data_offsets_cpuhp_exit {}; -struct sctp_errhdr; +struct kexec_load_limit { + struct mutex mutex; + int limit; +}; -struct sctp_addiphdr; +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 sctp_fwdtsn_hdr; +typedef u32 note_buf_t[92]; -struct sctp_authhdr; +typedef unsigned long elf_greg_t; -struct sctp_idatahdr; +typedef elf_greg_t elf_gregset_t[27]; -struct sctp_ifwdtsn_hdr; +struct elf_siginfo { + int si_signo; + int si_code; + int si_errno; +}; -struct sctp_chunkhdr; +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; +}; -struct sctphdr; +struct elf_prstatus { + struct elf_prstatus_common common; + elf_gregset_t pr_reg; + int pr_fpvalid; +}; -struct sctp_datamsg; +struct fgraph_ret_regs { + unsigned long ax; + unsigned long dx; + unsigned long bp; +}; -struct sctp_chunk { - struct list_head list; - refcount_t refcnt; - int sent_count; +struct bpf_iter__bpf_link { union { - struct list_head transmitted_list; - struct list_head stream_list; + struct bpf_iter_meta *meta; }; - struct list_head frag_list; - struct sk_buff *skb; union { - struct sk_buff *head_skb; - struct sctp_shared_key *shkey; + struct bpf_link *link; }; - 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 bpf_iter_seq_link_info { + u32 link_id; }; -struct sctp_auth_bytes { - refcount_t refcnt; - __u32 len; - __u8 data[0]; +struct bpf_mprog_cp { + struct bpf_link *link; }; -struct sctp_paramhdr { - __be16 type; - __be16 length; +struct bpf_mprog_bundle { + struct bpf_mprog_entry a; + struct bpf_mprog_entry b; + struct bpf_mprog_cp cp_items[64]; + struct bpf_prog *ref; + atomic64_t revision; + u32 count; }; -struct sctp_cookie_preserve_param { - struct sctp_paramhdr param_hdr; - __be32 lifespan_increment; -}; +struct mini_Qdisc; -struct sctp_hostname_param { - struct sctp_paramhdr param_hdr; - uint8_t hostname[0]; +struct tcx_entry { + struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) *miniq; + struct bpf_mprog_bundle bundle; + bool miniq_active; + struct callback_head rcu; }; -struct sctp_cookie_param { - struct sctp_paramhdr p; - __u8 body[0]; +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 sctp_supported_addrs_param { - struct sctp_paramhdr param_hdr; - __be16 types[0]; +struct tcx_link { + struct bpf_link link; + struct net_device *dev; + u32 location; }; -struct sctp_ipv4addr_param { - struct sctp_paramhdr param_hdr; - struct in_addr addr; +struct bpf_tuple { + struct bpf_prog *prog; + struct bpf_link *link; }; -struct sctp_ipv6addr_param { - struct sctp_paramhdr param_hdr; - struct in6_addr addr; -}; +typedef void (*btf_trace_mmap_lock_start_locking)(void *, struct mm_struct *, const char *, bool); -union sctp_addr_param { - struct sctp_paramhdr p; - struct sctp_ipv4addr_param v4; - struct sctp_ipv6addr_param v6; -}; +typedef void (*btf_trace_mmap_lock_released)(void *, struct mm_struct *, const char *, bool); -struct sctp_adaptation_ind_param { - struct sctp_paramhdr param_hdr; - __be32 adaptation_ind; +typedef void (*btf_trace_mmap_lock_acquire_returned)(void *, struct mm_struct *, const char *, bool, bool); + +struct memcg_path { + local_lock_t lock; + char __attribute__((btf_type_tag("rcu"))) *buf; + local_t buf_idx; }; -struct sctp_supported_ext_param { - struct sctp_paramhdr param_hdr; - __u8 chunks[0]; +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 sctp_random_param { - struct sctp_paramhdr param_hdr; - __u8 random_val[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 sctp_chunks_param { - struct sctp_paramhdr param_hdr; - __u8 chunks[0]; +struct trace_event_data_offsets_mmap_lock { + u32 memcg_path; }; -struct sctp_hmac_algo_param { - struct sctp_paramhdr param_hdr; - __be16 hmac_ids[0]; +struct trace_event_data_offsets_mmap_lock_acquire_returned { + u32 memcg_path; }; -struct sctp_addip_param { - struct sctp_paramhdr param_hdr; - __be32 crr_id; +enum { + PERCPU_REF_INIT_ATOMIC = 1, + PERCPU_REF_INIT_DEAD = 2, + PERCPU_REF_ALLOW_REINIT = 4, }; -struct sctp_datahdr { - __be32 tsn; - __be16 stream; - __be16 ssn; - __u32 ppid; +struct swap_extent { + struct rb_node rb_node; + unsigned long start_page; + unsigned long nr_pages; + sector_t start_block; }; -struct sctp_inithdr { - __be32 init_tag; - __be32 a_rwnd; - __be16 num_outbound_streams; - __be16 num_inbound_streams; - __be32 initial_tsn; +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 sctp_sackhdr { - __be32 cum_tsn_ack; - __be32 a_rwnd; - __be16 num_gap_ack_blocks; - __be16 num_dup_tsns; +struct fileattr { + u32 flags; + u32 fsx_xflags; + u32 fsx_extsize; + u32 fsx_nextents; + u32 fsx_projid; + u32 fsx_cowextsize; + bool flags_valid: 1; + bool fsx_valid: 1; }; -struct sctp_heartbeathdr { - struct sctp_paramhdr info; -}; +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 sctp_sender_hb_info { - struct sctp_paramhdr param_hdr; - union sctp_addr daddr; - unsigned long sent_at; - __u64 hb_nonce; - __u32 probe_size; +struct file_clone_range { + __s64 src_fd; + __u64 src_offset; + __u64 src_length; + __u64 dest_offset; }; -struct sctp_shutdownhdr { - __be32 cum_tsn_ack; +struct fsxattr { + __u32 fsx_xflags; + __u32 fsx_extsize; + __u32 fsx_nextents; + __u32 fsx_projid; + __u32 fsx_cowextsize; + unsigned char fsx_pad[8]; }; -struct sctp_signed_cookie { - __u8 signature[32]; - __u32 __pad; - struct sctp_cookie c; -} __attribute__((packed)); - -struct sctp_ecnehdr { - __be32 lowest_tsn; +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 sctp_cwrhdr { - __be32 lowest_tsn; +struct file_dedupe_range_info { + __s64 dest_fd; + __u64 dest_offset; + __u64 bytes_deduped; + __s32 status; + __u32 reserved; }; -struct sctp_errhdr { - __be16 cause; - __be16 length; +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 sctp_addiphdr { - __be32 serial; +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 sctp_fwdtsn_hdr { - __be32 new_cum_tsn; -}; +struct core_vma_metadata; -struct sctp_authhdr { - __be16 shkey_id; - __be16 hmac_id; +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 sctp_idatahdr { - __be32 tsn; - __be16 stream; - __be16 reserved; - __be32 mid; - union { - __u32 ppid; - __be32 fsn; - }; - __u8 payload[0]; +struct core_vma_metadata { + unsigned long start; + unsigned long end; + unsigned long flags; + unsigned long dump_size; + unsigned long pgoff; + struct file *file; }; -struct sctp_ifwdtsn_hdr { - __be32 new_cum_tsn; +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 sctp_chunkhdr { - __u8 type; - __u8 flags; - __be16 length; +struct elf64_phdr { + Elf64_Word p_type; + Elf64_Word p_flags; + Elf64_Off p_offset; + Elf64_Addr p_vaddr; + Elf64_Addr p_paddr; + Elf64_Xword p_filesz; + Elf64_Xword p_memsz; + Elf64_Xword p_align; }; -struct sctphdr { - __be16 source; - __be16 dest; - __be32 vtag; - __le32 checksum; +struct memelfnote { + const char *name; + int type; + unsigned int datasz; + void *data; }; -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 elf_thread_core_info; -struct sctp_packet { - __u16 source_port; - __u16 destination_port; - __u32 vtag; - struct list_head chunk_list; - size_t overhead; +struct elf_note_info { + struct elf_thread_core_info *thread; + struct memelfnote psinfo; + struct memelfnote signote; + struct memelfnote auxv; + struct memelfnote files; + siginfo_t csigdata; size_t size; - 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; + int thread_notes; }; -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 elf_thread_core_info { + struct elf_thread_core_info *next; + struct task_struct *task; + struct elf_prstatus prstatus; + struct memelfnote notes[0]; }; -struct sctp_sock; +typedef unsigned int __kernel_uid_t; -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; -}; +typedef unsigned int __kernel_gid_t; -struct sctp_rtoinfo { - sctp_assoc_t srto_assoc_id; - __u32 srto_initial; - __u32 srto_max; - __u32 srto_min; +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 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; - int: 0; -} __attribute__((packed)); +struct arch_elf_state {}; -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 elf64_note { + Elf64_Word n_namesz; + Elf64_Word n_descsz; + Elf64_Word n_type; }; -struct sctp_initmsg { - __u16 sinit_num_ostreams; - __u16 sinit_max_instreams; - __u16 sinit_max_attempts; - __u16 sinit_max_init_timeo; +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 sctp_pf; +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, +}; -struct sctp_bind_bucket; +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 sctp_sock { - struct inet_sock inet; - enum sctp_socket_type type; - 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; - __u32 default_ppid; - __u16 default_flags; - __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; - __u32 flowlabel; - __u8 dscp; - __u16 pf_retrans; - __u16 ps_retrans; - __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; - 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; - atomic_t pd_mode; - struct sk_buff_head pd_lobby; - struct list_head auto_asconf_list; - int do_auto_asconf; +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 sctp_ulpevent; +struct shortname_info { + unsigned char lower: 1; + unsigned char upper: 1; + unsigned char valid: 1; +}; -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 sel_netnode_bkt { + unsigned int size; + struct list_head list; }; -struct sctp_ulpevent { - struct sctp_association *asoc; - struct sctp_chunk *chunk; - unsigned int rmem_len; - union { - __u32 mid; - __u16 ssn; - }; +struct netnode_security_struct { union { - __u32 ppid; - __u32 fsn; - }; - __u32 tsn; - __u32 cumtsn; - __u16 stream; - __u16 flags; - __u16 msg_flags; -} __attribute__((packed)); + __be32 ipv4; + struct in6_addr ipv6; + } addr; + u32 sid; + u16 family; +}; -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 sel_netnode { + struct netnode_security_struct nsec; + struct list_head list; 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; +enum lsm_order { + LSM_ORDER_FIRST = -1, + LSM_ORDER_MUTABLE = 0, + LSM_ORDER_LAST = 1, }; -struct sctp_stream_priorities; +struct lsm_blob_sizes; -struct sctp_stream_out_ext { - __u64 abandoned_unsent[3]; - __u64 abandoned_sent[3]; - struct list_head outq; +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; + int lbs_xattr_count; +}; + +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; + unsigned long real_ino; + dev_t real_dev; + 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 { - struct list_head prio_list; - struct sctp_stream_priorities *prio_head; - }; - struct { - struct list_head rr_list; - }; + u8 unused; + u8 type; + } sha1; struct { - struct list_head fc_list; - __u32 fc_length; - __u16 fc_weight; - }; - }; + u8 type; + u8 algo; + } ng; + u8 data[2]; + } xattr; + u8 digest[0]; }; -struct sctp_stream_priorities { - struct list_head prio_sched; - struct list_head active; - struct sctp_stream_out_ext *next; - __u16 prio; - __u16 users; +struct sha256_state { + u32 state[8]; + u64 count; + u8 buf[64]; }; -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 *); +enum { + BLK_MQ_NO_TAG = 4294967295, + BLK_MQ_TAG_MIN = 1, + BLK_MQ_TAG_MAX = 4294967294, }; -struct percentile_stats { - u64 total; - u64 missed; +enum { + sysctl_hung_task_timeout_secs = 0, }; -struct blk_rq_stat { - u64 mean; - u64 min; - u64 max; - u32 nr_samples; - u64 batch; +enum prep_dispatch { + PREP_DISPATCH_OK = 0, + PREP_DISPATCH_NO_TAG = 1, + PREP_DISPATCH_NO_BUDGET = 2, }; -struct latency_stat { - union { - struct percentile_stats ps; - struct blk_rq_stat rqs; - }; +struct blk_mq_qe_pair { + struct list_head node; + struct request_queue *q; + struct elevator_type *type; }; -struct iolatency_grp; +typedef bool busy_tag_iter_fn(struct request *, void *); -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; +typedef bool (*sb_for_each_fn)(struct sbitmap *, unsigned int, void *); + +struct flush_busy_ctx_data { + struct blk_mq_hw_ctx *hctx; + struct list_head *list; }; -struct blk_iolatency; +struct dispatch_rq_data { + struct blk_mq_hw_ctx *hctx; + struct request *rq; +}; -struct iolatency_grp { - struct blkg_policy_data pd; - struct latency_stat __attribute__((btf_type_tag("percpu"))) *stats; - struct latency_stat cur_stat; - struct blk_iolatency *blkiolat; - unsigned int max_depth; - struct rq_wait rq_wait; - atomic64_t window_start; - atomic_t scale_cookie; - u64 min_lat_nsec; - u64 cur_win_nsec; - u64 lat_avg; - u64 nr_samples; - bool ssd; - struct child_latency_info child_lat; +struct blk_expired_data { + bool has_timedout_rq; + unsigned long next; + unsigned long timeout_start; }; -struct blk_iolatency { - struct rq_qos rqos; - struct timer_list timer; - bool enabled; - atomic_t enable_cnt; - struct work_struct enable_work; +struct rq_iter_data { + struct blk_mq_hw_ctx *hctx; + bool has_rq; }; -enum { - PERCPU_REF_INIT_ATOMIC = 1, - PERCPU_REF_INIT_DEAD = 2, - PERCPU_REF_ALLOW_REINIT = 4, +struct mq_inflight { + struct block_device *part; + unsigned int inflight[2]; }; -struct reciprocal_value_adv { - u32 m; - u8 sh; - u8 exp; - bool is_wide_m; +struct blk_rq_wait { + struct completion done; + blk_status_t ret; }; -struct sha256_state { - u32 state[8]; - u64 count; - u8 buf[64]; +struct epoll_event { + __poll_t events; + __u64 data; +} __attribute__((packed)); + +struct io_epoll { + struct file *file; + int epfd; + int op; + int fd; + struct epoll_event event; }; -typedef void sha256_block_fn(struct sha256_state *, const u8 *, int); +struct strarray { + char **array; + size_t n; +}; -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 cpu_rmap { + struct kref refcount; + u16 size; + void **obj; + struct { + u16 index; + u16 dist; + } near[0]; +}; -typedef struct { - unsigned char op; - unsigned char bits; - unsigned short val; -} code; +struct irq_glue { + struct irq_affinity_notify notify; + struct cpu_rmap *rmap; + u16 index; +}; -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]; +enum acpi_subtable_type { + ACPI_SUBTABLE_COMMON = 0, + ACPI_SUBTABLE_HMAT = 1, + ACPI_SUBTABLE_PRMT = 2, + ACPI_SUBTABLE_CEDT = 3, }; -typedef enum { - CODES = 0, - LENS = 1, - DISTS = 2, -} codetype; +struct acpi_subtable_entry { + union acpi_subtable_headers *hdr; + enum acpi_subtable_type type; +}; -typedef unsigned short ush; +typedef int (*acpi_tbl_entry_handler_arg)(union acpi_subtable_headers *, void *, const unsigned long); -typedef enum { - need_more = 0, - block_done = 1, - finish_started = 2, - finish_done = 3, -} block_state; +struct acpi_subtable_proc { + int id; + acpi_tbl_entry_handler handler; + acpi_tbl_entry_handler_arg handler_arg; + void *arg; + int count; +}; -struct deflate_state; +struct pcie_device; -typedef struct deflate_state deflate_state; +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; +}; -typedef block_state (*compress_func)(deflate_state *, int); +struct pcie_device { + int irq; + struct pci_dev *port; + u32 service; + void *priv_data; + struct device device; +}; -struct config_s { - ush good_length; - ush max_lazy; - ush nice_length; - ush max_chain; - compress_func func; +struct pcie_pme_service_data { + spinlock_t lock; + struct pcie_device *srv; + struct work_struct work; + bool noirq; }; -typedef struct config_s config; +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 *); +}; -typedef unsigned long ulg; +struct find_child_walk_data { + struct acpi_device *adev; + u64 address; + int score; + bool check_sta; + bool check_children; +}; -typedef unsigned int uInt; +struct lpi_constraints { + acpi_handle handle; + int min_dstate; +}; -typedef ush Pos; +struct amd_lps0_hid_device_data { + const bool check_off_by_one; +}; -typedef unsigned int IPos; +struct platform_s2idle_ops { + int (*begin)(); + int (*prepare)(); + int (*prepare_late)(); + void (*check)(); + bool (*wake)(); + void (*restore_early)(); + void (*restore)(); + void (*end)(); +}; -struct ct_data_s { - union { - ush freq; - ush code; - } fc; - union { - ush dad; - ush len; - } dl; +struct acpi_s2idle_dev_ops { + struct list_head list_node; + void (*prepare)(); + void (*check)(); + void (*restore)(); }; -typedef struct ct_data_s ct_data; +struct lpi_device_constraint_amd { + char *name; + int enabled; + int function_states; + int min_dstate; +}; -struct static_tree_desc_s; +struct lpi_device_info { + char *name; + int enabled; + union acpi_object *package; +}; -typedef struct static_tree_desc_s static_tree_desc; +struct lpi_device_constraint { + int uid; + int min_dstate; + int function_states; +}; -struct tree_desc_s { - ct_data *dyn_tree; - int max_code; - static_tree_desc *stat_desc; +struct vt_event { + unsigned int event; + unsigned int oldev; + unsigned int newev; + unsigned int pad[4]; }; -typedef unsigned char uch; +struct vt_event_wait { + struct list_head list; + struct vt_event event; + int done; +}; -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 vc { + struct vc_data *d; + struct work_struct SAK_work; }; -struct static_tree_desc_s { - const ct_data *static_tree; - const int *extra_bits; - int extra_base; - int elems; - int max_length; +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 deflate_workspace { - deflate_state deflate_memory; - Byte *window_memory; - Pos *prev_memory; - Pos *head_memory; - char *overlay_memory; +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; }; -typedef struct deflate_workspace deflate_workspace; +struct unipair; -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 unimapdesc { + unsigned short entry_ct; + struct unipair __attribute__((btf_type_tag("user"))) *entries; +}; -typedef ZSTD_ErrorCode ERR_enum; +struct unipair { + unsigned short unicode; + unsigned short fontpos; +}; -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 compat_unimapdesc { + unsigned short entry_ct; + compat_caddr_t entries; }; -struct irq_glue { - struct irq_affinity_notify notify; - struct cpu_rmap *rmap; - u16 index; +struct vt_stat { + unsigned short v_active; + unsigned short v_signal; + unsigned short v_state; }; -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 vt_sizes { + unsigned short v_rows; + unsigned short v_cols; + unsigned short v_scrollsize; }; -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; +struct vt_setactivate { + unsigned int console; + struct vt_mode mode; }; -struct pci_dev_reset_methods { - u16 vendor; - u16 device; - int (*reset)(struct pci_dev *, bool); +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 pci_dev_acs_enabled { - u16 vendor; - u16 device; - int (*acs_enabled)(struct pci_dev *, u16); +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 pci_dev_acs_ops { - u16 vendor; - u16 device; - int (*enable_acs)(struct pci_dev *); - int (*disable_acs_redir)(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]; }; -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, +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; }; -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, +struct timedia_struct { + int num; + const unsigned short *ids; }; -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 pci_board_num_t { + pbn_default = 0, + pbn_b0_1_115200 = 1, + pbn_b0_2_115200 = 2, + pbn_b0_4_115200 = 3, + pbn_b0_5_115200 = 4, + pbn_b0_8_115200 = 5, + pbn_b0_1_921600 = 6, + pbn_b0_2_921600 = 7, + pbn_b0_4_921600 = 8, + pbn_b0_2_1130000 = 9, + pbn_b0_4_1152000 = 10, + pbn_b0_4_1250000 = 11, + pbn_b0_2_1843200 = 12, + pbn_b0_4_1843200 = 13, + pbn_b0_1_15625000 = 14, + pbn_b0_bt_1_115200 = 15, + pbn_b0_bt_2_115200 = 16, + pbn_b0_bt_4_115200 = 17, + pbn_b0_bt_8_115200 = 18, + pbn_b0_bt_1_460800 = 19, + pbn_b0_bt_2_460800 = 20, + pbn_b0_bt_4_460800 = 21, + pbn_b0_bt_1_921600 = 22, + pbn_b0_bt_2_921600 = 23, + pbn_b0_bt_4_921600 = 24, + pbn_b0_bt_8_921600 = 25, + pbn_b1_1_115200 = 26, + pbn_b1_2_115200 = 27, + pbn_b1_4_115200 = 28, + pbn_b1_8_115200 = 29, + pbn_b1_16_115200 = 30, + pbn_b1_1_921600 = 31, + pbn_b1_2_921600 = 32, + pbn_b1_4_921600 = 33, + pbn_b1_8_921600 = 34, + pbn_b1_2_1250000 = 35, + pbn_b1_bt_1_115200 = 36, + pbn_b1_bt_2_115200 = 37, + pbn_b1_bt_4_115200 = 38, + pbn_b1_bt_2_921600 = 39, + pbn_b1_1_1382400 = 40, + pbn_b1_2_1382400 = 41, + pbn_b1_4_1382400 = 42, + pbn_b1_8_1382400 = 43, + pbn_b2_1_115200 = 44, + pbn_b2_2_115200 = 45, + pbn_b2_4_115200 = 46, + pbn_b2_8_115200 = 47, + pbn_b2_1_460800 = 48, + pbn_b2_4_460800 = 49, + pbn_b2_8_460800 = 50, + pbn_b2_16_460800 = 51, + pbn_b2_1_921600 = 52, + pbn_b2_4_921600 = 53, + pbn_b2_8_921600 = 54, + pbn_b2_8_1152000 = 55, + pbn_b2_bt_1_115200 = 56, + pbn_b2_bt_2_115200 = 57, + pbn_b2_bt_4_115200 = 58, + pbn_b2_bt_2_921600 = 59, + pbn_b2_bt_4_921600 = 60, + pbn_b3_2_115200 = 61, + pbn_b3_4_115200 = 62, + pbn_b3_8_115200 = 63, + pbn_b4_bt_2_921600 = 64, + pbn_b4_bt_4_921600 = 65, + pbn_b4_bt_8_921600 = 66, + pbn_panacom = 67, + pbn_panacom2 = 68, + pbn_panacom4 = 69, + pbn_plx_romulus = 70, + pbn_oxsemi = 71, + pbn_oxsemi_1_15625000 = 72, + pbn_oxsemi_2_15625000 = 73, + pbn_oxsemi_4_15625000 = 74, + pbn_oxsemi_8_15625000 = 75, + pbn_intel_i960 = 76, + pbn_sgi_ioc3 = 77, + pbn_computone_4 = 78, + pbn_computone_6 = 79, + pbn_computone_8 = 80, + pbn_sbsxrsio = 81, + pbn_pasemi_1682M = 82, + pbn_ni8430_2 = 83, + pbn_ni8430_4 = 84, + pbn_ni8430_8 = 85, + pbn_ni8430_16 = 86, + pbn_ADDIDATA_PCIe_1_3906250 = 87, + pbn_ADDIDATA_PCIe_2_3906250 = 88, + pbn_ADDIDATA_PCIe_4_3906250 = 89, + pbn_ADDIDATA_PCIe_8_3906250 = 90, + pbn_ce4100_1_115200 = 91, + pbn_omegapci = 92, + pbn_NETMOS9900_2s_115200 = 93, + pbn_brcm_trumanage = 94, + pbn_fintek_4 = 95, + pbn_fintek_8 = 96, + pbn_fintek_12 = 97, + pbn_fintek_F81504A = 98, + pbn_fintek_F81508A = 99, + pbn_fintek_F81512A = 100, + pbn_wch382_2 = 101, + pbn_wch384_4 = 102, + pbn_wch384_8 = 103, + pbn_sunix_pci_1s = 104, + pbn_sunix_pci_2s = 105, + pbn_sunix_pci_4s = 106, + pbn_sunix_pci_8s = 107, + pbn_sunix_pci_16s = 108, + pbn_titan_1_4000000 = 109, + pbn_titan_2_4000000 = 110, + pbn_titan_4_4000000 = 111, + pbn_titan_8_4000000 = 112, + pbn_moxa_2 = 113, + pbn_moxa_4 = 114, + pbn_moxa_8 = 115, }; -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 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, }; -enum { - SWITCHTEC_NTB_REG_INFO_OFFSET = 0, - SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384, - SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600, +struct f815xxa_data { + spinlock_t lock; + int idx; }; -struct pci_fixup { - u16 vendor; - u16 device; - u32 class; - unsigned int class_shift; - int hook_offset; +struct agp_3_5_dev { + struct list_head list; + u8 capndx; + u32 maxbw; + struct pci_dev *dev; }; -struct nt_partition_info { - u32 xlink_enabled; - u32 target_part_low; - u32 target_part_high; - u32 reserved; +struct isoch_data { + u32 maxbw; + u32 n; + u32 y; + u32 l; + u32 rq; + struct agp_3_5_dev *dev; }; -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)); +typedef bool (*drm_vblank_get_scanout_position_func)(struct drm_crtc *, bool, int *, int *, ktime_t *, ktime_t *, const struct drm_display_mode *); -struct ntb_ctrl_regs { - u32 partition_status; - u32 partition_op; - u32 partition_ctrl; - u32 bar_setup; - u32 bar_error; - u16 lut_table_entries; - u16 lut_table_offset; - u32 lut_error; - u16 req_id_table_size; - u16 req_id_table_offset; - u32 req_id_error; - u32 reserved1[7]; - struct { - u32 ctl; - u32 win_size; - u64 xlate_addr; - } bar_entry[6]; - struct { - u32 win_size; - u32 reserved[3]; - } bar_ext_entry[6]; - u32 reserved2[192]; - u32 req_id_table[512]; - u32 reserved3[256]; - u64 lut_entry[512]; +struct drm_modeset_ctl { + __u32 crtc; + __u32 cmd; }; -struct acpi_rw_lock { - void *writer_mutex; - void *reader_mutex; - u32 num_readers; +struct drm_crtc_get_sequence { + __u32 crtc_id; + __u32 active; + __u64 sequence; + __s64 sequence_ns; }; -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, +struct drm_crtc_queue_sequence { + __u32 crtc_id; + __u32 flags; + __u64 sequence; + __u64 user_data; }; -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, +struct active_node { + struct rb_node node; + struct i915_active_fence base; + struct i915_active *ref; + u64 timeline; }; -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 auto_active { + struct i915_active base; + struct kref ref; }; -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 wait_barrier { + struct wait_queue_entry base; + struct i915_active *ref; }; -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; +enum intel_guc_tlb_invalidation_type { + INTEL_GUC_TLB_INVAL_ENGINES = 0, + INTEL_GUC_TLB_INVAL_GUC = 3, }; -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; +enum intel_guc_state_capture_event_status { + INTEL_GUC_STATE_CAPTURE_EVENT_STATUS_SUCCESS = 0, + INTEL_GUC_STATE_CAPTURE_EVENT_STATUS_NOSPACE = 1, }; -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; +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, }; -struct dw_lli { - __le32 sar; - __le32 dar; - __le32 llp; - __le32 ctllo; - __le32 ctlhi; - __le32 sstat; - __le32 dstat; +enum { + GUC_SCHEDULING_POLICIES_KLV_ID_RENDER_COMPUTE_YIELD = 4097, }; -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; +enum intel_guc_tlb_inval_mode { + INTEL_GUC_TLB_INVAL_MODE_HEAVY = 0, + INTEL_GUC_TLB_INVAL_MODE_LITE = 1, }; -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 guc_sched_wq_desc { + u32 head; + u32 tail; + u32 error_offset; + u32 wq_status; + u32 reserved[28]; }; -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 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)); -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; +union guc_descs { + struct guc_sched_wq_desc wq_desc; + struct guc_process_desc_v69 pdesc; }; -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 sync_semaphore { + u32 semaphore; + u8 unused[60]; }; -enum cap_audit_type { - CAP_AUDIT_STATIC_DMAR = 0, - CAP_AUDIT_STATIC_IRQR = 1, - CAP_AUDIT_HOTPLUG_DMAR = 2, - CAP_AUDIT_HOTPLUG_IRQR = 3, +struct parent_scratch { + union guc_descs descs; + struct sync_semaphore go; + struct sync_semaphore join[9]; + u8 unused[1216]; + u32 wq[512]; }; -struct drm_mode_rect { - __s32 x1; - __s32 y1; - __s32 x2; - __s32 y2; +struct guc_virtual_engine { + struct intel_engine_cs base; + struct intel_context context; }; -struct drm_format_modifier { - __u64 formats; - __u32 offset; - __u32 pad; - __u64 modifier; +struct intel_guc_tlb_wait { + struct wait_queue_head wq; + bool busy; }; -struct drm_format_modifier_blob { - __u32 version; - __u32 flags; - __u32 count_formats; - __u32 formats_offset; - __u32 count_modifiers; - __u32 modifiers_offset; +struct guc_update_scheduling_policy_header { + u32 action; }; -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 guc_update_scheduling_policy { + struct guc_update_scheduling_policy_header header; + u32 data[3]; }; -struct drm_mode_get_plane_res { - __u64 plane_id_ptr; - __u32 count_planes; +struct scheduling_policy { + u32 max_words; + u32 num_words; + u32 count; + struct guc_update_scheduling_policy h2g; }; -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 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 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 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 drm_mode_cursor { - __u32 flags; - __u32 crtc_id; - __s32 x; - __s32 y; - __u32 width; - __u32 height; - __u32 handle; +struct guc_update_context_policy_header { + u32 action; + u32 ctx_id; }; -struct drm_mode_crtc_page_flip_target { - __u32 crtc_id; - __u32 fb_id; - __u32 flags; - __u32 sequence; - __u64 user_data; +struct guc_klv_generic_dw_t { + u32 kl; + u32 value; }; -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 guc_update_context_policy { + struct guc_update_context_policy_header header; + struct guc_klv_generic_dw_t klv[5]; }; -enum { - DMA_FENCE_WORK_IMM = 3, +struct context_policy { + u32 count; + struct guc_update_context_policy h2g; }; -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; - unsigned int pat_index; - unsigned int flags; +struct intel_link_bw_limits { + u8 bpp_limit_reached_pipes; + int max_bpp_x16[4]; }; -struct i915_power_well_regs { - i915_reg_t bios; - i915_reg_t driver; - i915_reg_t kvmr; - i915_reg_t debug; +enum drm_dp_mst_payload_allocation { + DRM_DP_MST_PAYLOAD_ALLOCATION_NONE = 0, + DRM_DP_MST_PAYLOAD_ALLOCATION_LOCAL = 1, + DRM_DP_MST_PAYLOAD_ALLOCATION_DFP = 2, + DRM_DP_MST_PAYLOAD_ALLOCATION_REMOTE = 3, }; -enum skl_power_gate { - SKL_PG0 = 0, - SKL_PG1 = 1, - SKL_PG2 = 2, - ICL_PG3 = 3, - ICL_PG4 = 4, +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 cb_id { - __u32 idx; - __u32 val; +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; + enum drm_dp_mst_payload_allocation payload_allocation_status; + struct list_head next; }; -struct local_event { - local_lock_t lock; - __u32 count; +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; }; -enum proc_cn_mcast_op { - PROC_CN_MCAST_LISTEN = 1, - PROC_CN_MCAST_IGNORE = 2, +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 fork_proc_event { - __kernel_pid_t parent_pid; - __kernel_pid_t parent_tgid; - __kernel_pid_t child_pid; - __kernel_pid_t child_tgid; +struct drm_virtgpu_3d_box { + __u32 x; + __u32 y; + __u32 z; + __u32 w; + __u32 h; + __u32 d; }; -struct exec_proc_event { - __kernel_pid_t process_pid; - __kernel_pid_t process_tgid; +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 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 drm_virtgpu_map { + __u64 offset; + __u32 handle; + __u32 pad; }; -struct sid_proc_event { - __kernel_pid_t process_pid; - __kernel_pid_t process_tgid; +struct drm_virtgpu_getparam { + __u64 param; + __u64 value; }; -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 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 comm_proc_event { - __kernel_pid_t process_pid; - __kernel_pid_t process_tgid; - char comm[16]; +struct drm_virtgpu_resource_info { + __u32 bo_handle; + __u32 res_handle; + __u32 size; + __u32 blob_mem; }; -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 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 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 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 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 drm_virtgpu_3d_wait { + __u32 handle; + __u32 flags; }; -struct cn_msg { - struct cb_id id; - __u32 seq; - __u32 ack; - __u16 len; - __u16 flags; - __u8 data[0]; +struct drm_virtgpu_get_caps { + __u32 cap_set_id; + __u32 cap_set_ver; + __u64 addr; + __u32 size; + __u32 pad; }; -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 drm_virtgpu_context_set_param { + __u64 param; + __u64 value; }; -struct scsi_event { - enum scsi_device_event evt_type; - struct list_head node; +struct drm_virtgpu_context_init { + __u32 num_params; + __u32 pad; + __u64 ctx_set_params; }; -struct mdio_driver { - struct mdio_driver_common mdiodrv; - int (*probe)(struct mdio_device *); - void (*remove)(struct mdio_device *); - void (*shutdown)(struct mdio_device *); +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 e1000_opt_list; +struct sg_io_v4; -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; - struct e1000_opt_list *p; - } l; - } arg; -}; +typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, unsigned int); -struct e1000_opt_list { - int i; - char *str; +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 quirk_printer_struct { - __u16 vendorId; - __u16 productId; - unsigned int quirks; +struct pci_bits { + unsigned int reg; + unsigned int width; + unsigned long mask; + unsigned long val; }; -struct usb_class_driver { - char *name; - char * (*devnode)(const struct device *, umode_t *); - const struct file_operations *fops; - int minor_base; +enum ru_state { + RU_SUSPENDED = 0, + RU_RUNNING = 1, + RU_UNINITIALIZED = -1, }; -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 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 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; +struct rfd { + __le16 status; + __le16 command; + __le32 link; + __le32 rbd; + __le16 actual_size; + __le16 size; }; -enum synaptics_pkt_type { - SYN_NEWABS = 0, - SYN_NEWABS_STRICT = 1, - SYN_NEWABS_RELAXED = 2, - SYN_OLDABS = 3, +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 rmi_sensor_type { - rmi_sensor_default = 0, - rmi_sensor_touchscreen = 1, - rmi_sensor_touchpad = 2, +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, }; -enum rmi_reg_state { - RMI_REG_STATE_DEFAULT = 0, - RMI_REG_STATE_OFF = 1, - RMI_REG_STATE_ON = 2, +struct param_range { + u32 min; + u32 max; + u32 count; }; -enum { - SYNAPTICS_INTERTOUCH_NOT_SET = -1, - SYNAPTICS_INTERTOUCH_OFF = 0, - SYNAPTICS_INTERTOUCH_ON = 1, +struct params { + struct param_range rfds; + struct param_range cbs; }; -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 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 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); +enum loopback { + lb_none = 0, + lb_mac = 1, + lb_phy = 3, }; -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 rx; -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 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: 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: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + enum { + ich = 1, + promiscuous = 2, + multicast_all = 4, + wol_magic = 8, + ich_10h_workaround = 16, + } flags; + enum mac mac; + enum phy___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 rmi_f01_power_management { - enum rmi_reg_state nosleep; - u8 wakeup_threshold; - u8 doze_holdoff; - u8 doze_interval; +struct rx { + struct rx *next; + struct rx *prev; + struct sk_buff *skb; + dma_addr_t dma_addr; }; -struct rmi_gpio_data { - bool buttonpad; - bool trackstick_buttons; - bool disable; +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 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 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 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 multi { + __le16 count; + u8 addr[386]; }; -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; +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 input_mt_pos { - s16 x; - s16 y; +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; }; -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, +struct mem { + struct { + u32 signature; + u32 result; + } selftest; + struct stats stats; + u8 dump_buf[596]; }; -enum suspend_mode { - PRESUSPEND = 0, - PRESUSPEND_UNDO = 1, - POSTSUSPEND = 2, +enum eeprom_offsets { + eeprom_cnfg_mdix = 3, + eeprom_phy_iface = 6, + eeprom_id = 10, + eeprom_config_asf = 13, + eeprom_smbus_addr = 144, }; -struct dm_dev_internal { - struct list_head list; - refcount_t count; - struct dm_dev *dm_dev; +enum eeprom_id { + eeprom_id_wol = 32, }; -struct dm_arg_set { - unsigned int argc; - char **argv; +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, }; -struct dm_arg { - unsigned int min; - unsigned int max; - char *error; +enum port___2 { + software_reset = 0, + selftest = 1, + selective_reset = 2, }; -struct blk_crypto_profile; +enum cb_status { + cb_complete = 32768, + cb_ok = 8192, +}; -struct blk_crypto_key; +enum mdi_ctrl { + mdi_write = 67108864, + mdi_read = 134217728, + mdi_ready = 268435456, +}; -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); +enum scb_cmd_hi { + irq_mask_none = 0, + irq_mask_all = 1, + irq_sw_gen = 2, }; -struct blk_crypto_keyslot; +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, +}; -struct blk_crypto_profile { - struct blk_crypto_ll_ops ll_ops; - unsigned int max_dun_bytes_supported; - unsigned int modes_supported[5]; - struct device *dev; - unsigned int num_slots; - struct rw_semaphore lock; - struct lock_class_key lockdep_key; - wait_queue_head_t idle_slots_wait_queue; - struct list_head idle_slots; - spinlock_t idle_slots_lock; - struct hlist_head *slot_hashtable; - unsigned int log_slot_ht_size; - struct blk_crypto_keyslot *slots; +enum eeprom_op { + op_write = 5, + op_read = 6, + op_ewds = 16, + op_ewen = 19, }; -struct blk_crypto_config { - enum blk_crypto_mode_num crypto_mode; - unsigned int data_unit_size; - unsigned int dun_bytes; +enum eeprom_ctrl_lo { + eesk = 1, + eecs = 2, + eedi = 4, + eedo = 8, }; -struct blk_crypto_key { - struct blk_crypto_config crypto_cfg; - unsigned int data_unit_size_bits; - unsigned int size; - u8 raw[64]; +enum led_state { + led_on = 1, + led_off = 4, + led_on_559 = 5, + led_on_557 = 7, }; -struct apple_key_translation { - u16 from; - u16 to; - u8 flags; +enum scb_status { + rus_no_res = 8, + rus_ready = 16, + rus_mask = 60, }; -struct apple_non_apple_keyboard { - char *name; +enum cuc_dump { + cuc_dump_complete = 40965, + cuc_dump_reset_complete = 40967, }; -struct apple_sc_backlight; +enum eeprom_cnfg_mdix { + eeprom_mdix_enabled = 128, +}; -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; +enum eeprom_phy_iface { + NoSuchPhy = 0, + I82553AB = 1, + I82553C = 2, + I82503 = 3, + DP83840 = 4, + S80C240 = 5, + S80C24 = 6, + I82555 = 7, + DP83840A = 10, }; -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; +enum eeprom_config_asf { + eeprom_asf = 32768, + eeprom_gcl = 16384, }; -struct apple_backlight_config_report { - u8 report_id; - u8 version; - u16 backlight_off; - u16 backlight_on_min; - u16 backlight_on_max; +struct iso_rec { + int error_count; + int numdesc; }; -struct apple_backlight_set_report { - u8 report_id; - u8 version; - u16 backlight; - u16 rate; +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 link_ctl_info { - snd_ctl_elem_type_t type; - int count; - int min_val; - int max_val; +struct mon_bin_mfetch { + u32 __attribute__((btf_type_tag("user"))) *offvec; + u32 nfetch; + u32 nflush; }; -struct link_master; +struct mon_bin_stats { + u32 queued; + u32 dropped; +}; -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 mon_bin_mfetch32 { + u32 offvec32; + u32 nfetch32; + u32 nflush32; }; -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 mon_bin_isodesc { + int iso_status; + unsigned int iso_off; + unsigned int iso_len; + u32 _pad; }; -struct snd_seq_port_subscribe; +struct mon_pgmap; -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 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 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 mon_pgmap { + struct page *pg; + unsigned char *ptr; }; -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; - unsigned char direction; - unsigned char ump_group; - char reserved[57]; +struct mon_bin_get { + struct mon_bin_hdr __attribute__((btf_type_tag("user"))) *hdr; + void __attribute__((btf_type_tag("user"))) *data; + size_t alloc; }; -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 mon_bin_get32 { + u32 hdr32; + u32 data32; + u32 alloc32; }; -struct gnet_stats_basic { - __u64 bytes; - __u32 packets; +struct md_setup_args { + int minor; + int partitioned; + int level; + int chunk; + char *device_names; }; -struct gnet_stats_rate_est { - __u32 bps; - __u32 pps; +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 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 *); +struct mdu_disk_info_s { + int number; + int major; + int minor; + int raid_disk; + int state; +}; -typedef void (*btf_trace_net_dev_xmit)(void *, struct sk_buff *, int, struct net_device *, unsigned int); +struct srcu_notifier_head { + struct mutex mutex; + struct srcu_usage srcuu; + struct srcu_struct srcu; + struct notifier_block __attribute__((btf_type_tag("rcu"))) *head; +}; -typedef void (*btf_trace_net_dev_xmit_timeout)(void *, struct net_device *, int); +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 *); +}; -typedef void (*btf_trace_net_dev_queue)(void *, struct sk_buff *); +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, +}; -typedef void (*btf_trace_netif_receive_skb)(void *, struct sk_buff *); +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, +}; -typedef void (*btf_trace_netif_rx)(void *, struct sk_buff *); +struct snd_timer_id { + int dev_class; + int dev_sclass; + int card; + int device; + int subdevice; +}; -typedef void (*btf_trace_napi_gro_frags_entry)(void *, const struct sk_buff *); +struct hda_pincfg { + hda_nid_t nid; + unsigned char ctrl; + unsigned char target; + unsigned int cfg; +}; -typedef void (*btf_trace_napi_gro_receive_entry)(void *, const struct sk_buff *); +struct compat_cmsghdr { + compat_size_t cmsg_len; + compat_int_t cmsg_level; + compat_int_t cmsg_type; +}; -typedef void (*btf_trace_netif_receive_skb_entry)(void *, const struct sk_buff *); +struct strset_info { + bool per_dev; + bool free_strings; + unsigned int count; + const char (*strings)[32]; +}; -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 *); +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, +}; -typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32); +enum { + ETHTOOL_A_STRINGSETS_UNSPEC = 0, + ETHTOOL_A_STRINGSETS_STRINGSET = 1, + __ETHTOOL_A_STRINGSETS_CNT = 2, + ETHTOOL_A_STRINGSETS_MAX = 1, +}; -typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32); +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, +}; -typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, const struct page *, u32); +enum { + ETHTOOL_A_STRINGS_UNSPEC = 0, + ETHTOOL_A_STRINGS_STRING = 1, + __ETHTOOL_A_STRINGS_CNT = 2, + ETHTOOL_A_STRINGS_MAX = 1, +}; -typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, const struct page *, u32); +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, +}; -typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int); +struct strset_req_info { + struct ethnl_req_info base; + u32 req_ids; + bool counts_only; +}; -typedef void (*btf_trace_neigh_create)(void *, struct neigh_table *, struct net_device *, const void *, const struct neighbour *, bool); +struct strset_reply_data { + struct ethnl_reply_data base; + struct strset_info sets[21]; +}; -typedef void (*btf_trace_neigh_update)(void *, struct neighbour *, const u8 *, u8, u32, u32); +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, +}; -typedef void (*btf_trace_neigh_update_done)(void *, struct neighbour *, int); +struct wol_reply_data { + struct ethnl_reply_data base; + struct ethtool_wolinfo wol; + bool show_sopass; +}; -typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int); +enum nf_ip_hook_priorities { + NF_IP_PRI_FIRST = -2147483648, + NF_IP_PRI_RAW_BEFORE_DEFRAG = -450, + NF_IP_PRI_CONNTRACK_DEFRAG = -400, + NF_IP_PRI_RAW = -300, + NF_IP_PRI_SELINUX_FIRST = -225, + NF_IP_PRI_CONNTRACK = -200, + NF_IP_PRI_MANGLE = -150, + NF_IP_PRI_NAT_DST = -100, + NF_IP_PRI_FILTER = 0, + NF_IP_PRI_SECURITY = 50, + NF_IP_PRI_NAT_SRC = 100, + NF_IP_PRI_SELINUX_LAST = 225, + NF_IP_PRI_CONNTRACK_HELPER = 300, + NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647, + NF_IP_PRI_LAST = 2147483647, +}; -typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int); +struct nf_defrag_hook; -typedef void (*btf_trace_neigh_event_send_dead)(void *, struct neighbour *, int); +struct bpf_nf_link { + struct bpf_link link; + struct nf_hook_ops hook_ops; + struct net *net; + u32 dead; + const struct nf_defrag_hook *defrag_hook; +}; -typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, int); +struct nf_defrag_hook { + struct module *owner; + int (*enable)(struct net *); + void (*disable)(struct net *); +}; -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 tcp_seq_afinfo { + sa_family_t family; }; -struct trace_event_raw_consume_skb { - struct trace_entry ent; - void *skbaddr; - void *location; - char __data[0]; +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, }; -struct trace_event_raw_skb_copy_datagram_iovec { - struct trace_entry ent; - const void *skbaddr; - int len; - char __data[0]; +enum tcp_tw_status { + TCP_TW_SUCCESS = 0, + TCP_TW_RST = 1, + TCP_TW_ACK = 2, + TCP_TW_SYN = 3, }; -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]; +enum tcp_seq_states { + TCP_SEQ_STATE_LISTENING = 0, + TCP_SEQ_STATE_ESTABLISHED = 1, }; -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 tcp_ao_key; + +struct tcp_key { + union { + struct { + struct tcp_ao_key *ao_key; + char *traffic_key; + u32 sne; + u8 rcv_next; + }; + struct tcp_md5sig_key *md5_key; + }; + enum { + TCP_KEY_NONE = 0, + TCP_KEY_MD5 = 1, + TCP_KEY_AO = 2, + } type; }; -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 tcp_ao_key { + struct hlist_node node; + union tcp_ao_addr addr; + u8 key[80]; + unsigned int tcp_sigpool_id; + unsigned int digest_size; + int l3index; + u8 prefixlen; + u8 family; + u8 keylen; + u8 keyflags; + u8 sndid; + u8 rcvid; + u8 maclen; + struct callback_head rcu; + atomic64_t pkt_good; + atomic64_t pkt_bad; + u8 traffic_keys[0]; }; -struct trace_event_raw_net_dev_template { - struct trace_entry ent; - void *skbaddr; - unsigned int len; - u32 __data_loc_name; - char __data[0]; +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 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 tcp_ao_hdr { + u8 kind; + u8 length; + u8 keyid; + u8 rnext_keyid; }; -struct trace_event_raw_net_dev_rx_exit_template { - struct trace_entry ent; - int ret; - char __data[0]; +struct tcp_sigpool { + void *scratch; + struct ahash_request *req; }; -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 tcp4_pseudohdr { + __be32 saddr; + __be32 daddr; + __u8 pad; + __u8 protocol; + __be16 len; }; -struct trace_event_raw_sock_rcvqueue_full { - struct trace_entry ent; - int rmem_alloc; - unsigned int truesize; - int sk_rcvbuf; - char __data[0]; +struct ip_reply_arg { + struct kvec iov[1]; + int flags; + __wsum csum; + int csumoffset; + int bound_dev_if; + u8 tos; + kuid_t uid; }; -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 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 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 bpf_iter__tcp { + union { + struct bpf_iter_meta *meta; + }; + union { + struct sock_common *sk_common; + }; + uid_t uid; }; -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 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 trace_event_raw_sk_data_ready { - struct trace_entry ent; - const void *skaddr; - __u16 family; - __u16 protocol; - unsigned long ip; - char __data[0]; +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 trace_event_raw_sock_msg_length { - struct trace_entry ent; - void *sk; - __u16 family; - __u16 protocol; - int ret; - int flags; - char __data[0]; +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, }; -struct trace_event_raw_udp_fail_queue_rcv_skb { - struct trace_entry ent; - int rc; - __u16 lport; - char __data[0]; +enum { + NDUSEROPT_UNSPEC = 0, + NDUSEROPT_SRCADDR = 1, + __NDUSEROPT_MAX = 2, }; -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 nd_msg { + struct icmp6hdr icmph; + struct in6_addr target; + __u8 opt[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 rs_msg { + struct icmp6hdr icmph; + __u8 opt[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 ra_msg { + struct icmp6hdr icmph; + __be32 reachable_time; + __be32 retrans_timer; }; -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 rd_msg { + struct icmp6hdr icmph; + struct in6_addr target; + struct in6_addr dest; + __u8 opt[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 ipv4_addr_key { + __be32 addr; + int vif; }; -struct trace_event_raw_tcp_cong_state_set { - struct trace_entry ent; - const void *skaddr; - __u16 sport; - __u16 dport; +struct inetpeer_addr { + union { + struct ipv4_addr_key a4; + struct in6_addr a6; + u32 key[4]; + }; __u16 family; - __u8 saddr[4]; - __u8 daddr[4]; - __u8 saddr_v6[16]; - __u8 daddr_v6[16]; - __u8 cong_state; - char __data[0]; }; -struct trace_event_raw_fib_table_lookup { - struct trace_entry ent; - u32 tb_id; - int err; - int oif; - int iif; - u8 proto; - __u8 tos; - __u8 scope; - __u8 flags; - __u8 src[4]; - __u8 dst[4]; - __u8 gw4[4]; - __u8 gw6[16]; - u16 sport; - u16 dport; - char name[16]; - char __data[0]; +struct 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 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 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 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 netdev_notifier_change_info { + struct netdev_notifier_info info; + unsigned int flags_changed; }; -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 xfrm_input_afinfo { + u8 family; + bool is_ipip; + int (*callback)(struct sk_buff *, u8, int); }; -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 gss_pipe; -struct trace_event_raw_qdisc_create { - struct trace_entry ent; - u32 __data_loc_dev; - u32 __data_loc_kind; - u32 parent; - char __data[0]; +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 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 gss_pipe { + struct rpc_pipe_dir_object pdo; + struct rpc_pipe *pipe; + struct rpc_clnt *clnt; + const char *name; + struct kref kref; }; -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 gss_cl_ctx; -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 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 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 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; }; -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 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; }; -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 gss_alloc_pdo { + struct rpc_clnt *clnt; + const char *name; + const struct rpc_pipe_ops *upcall_ops; }; -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]; -}; +typedef void (*rpc_action)(struct rpc_task *); -struct trace_event_data_offsets_net_dev_start_xmit { - u32 name; +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, }; -struct trace_event_data_offsets_net_dev_xmit { - u32 name; +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, }; -struct trace_event_data_offsets_net_dev_xmit_timeout { - u32 name; - u32 driver; +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, }; -struct trace_event_data_offsets_net_dev_template { - u32 name; +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, }; -struct trace_event_data_offsets_net_dev_rx_verbose_template { - u32 name; +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, }; -struct trace_event_data_offsets_napi_poll { - u32 dev_name; +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, }; -struct trace_event_data_offsets_qdisc_reset { - u32 dev; - u32 kind; +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 trace_event_data_offsets_qdisc_destroy { - u32 dev; - u32 kind; +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 trace_event_data_offsets_qdisc_create { - u32 dev; - u32 kind; +struct cfg80211_pmsr_result { + u64 host_time; + u64 ap_tsf; + enum nl80211_peer_measurement_status status; + u8 addr[6]; + u8 final: 1; + u8 ap_tsf_valid: 1; + enum nl80211_peer_measurement_type type; + union { + struct cfg80211_pmsr_ftm_result ftm; + }; }; -struct trace_event_data_offsets_neigh_create { - u32 dev; +struct rate_control_alg { + struct list_head list; + const struct rate_control_ops *ops; }; -struct trace_event_data_offsets_neigh_update { - u32 dev; +enum { + st_wordstart = 0, + st_wordcmp = 1, + st_wordskip = 2, }; -struct trace_event_data_offsets_neigh__update { - u32 dev; +enum { + st_wordstart___2 = 0, + st_wordcmp___2 = 1, + st_wordskip___2 = 2, + st_bufcpy = 3, }; -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 {}; +enum reg_type { + REG_TYPE_RM = 0, + REG_TYPE_REG = 1, + REG_TYPE_INDEX = 2, + REG_TYPE_BASE = 3, +}; -struct trace_event_data_offsets_inet_sock_set_state {}; +enum insn_mmio_type { + INSN_MMIO_DECODE_FAILED = 0, + INSN_MMIO_WRITE = 1, + INSN_MMIO_WRITE_IMM = 2, + INSN_MMIO_READ = 3, + INSN_MMIO_READ_ZERO_EXTEND = 4, + INSN_MMIO_READ_SIGN_EXTEND = 5, + INSN_MMIO_MOVS = 6, +}; -struct trace_event_data_offsets_inet_sk_error_report {}; +typedef long (*sys_call_ptr_t)(const struct pt_regs *); -struct trace_event_data_offsets_sk_data_ready {}; +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 trace_event_data_offsets_sock_msg_length {}; +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 trace_event_data_offsets_udp_fail_queue_rcv_skb {}; +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; + }; + }; +}; -struct trace_event_data_offsets_tcp_event_sk_skb {}; +struct sigaltstack { + void __attribute__((btf_type_tag("user"))) *ss_sp; + int ss_flags; + __kernel_size_t ss_size; +}; -struct trace_event_data_offsets_tcp_event_sk {}; +typedef struct sigaltstack stack_t; -struct trace_event_data_offsets_tcp_retransmit_synack {}; - -struct trace_event_data_offsets_tcp_probe {}; - -struct trace_event_data_offsets_tcp_event_skb {}; +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 trace_event_data_offsets_tcp_cong_state_set {}; +struct ucontext { + unsigned long uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; + struct sigcontext_64 uc_mcontext; + sigset_t uc_sigmask; +}; -struct trace_event_data_offsets_fib_table_lookup {}; +struct rt_sigframe { + char __attribute__((btf_type_tag("user"))) *pretcode; + struct ucontext uc; + struct siginfo info; +}; -struct trace_event_data_offsets_qdisc_dequeue {}; +struct estack_pages { + u32 offs; + u16 size; + u16 type; +}; -struct trace_event_data_offsets_qdisc_enqueue {}; +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 trace_event_data_offsets_page_pool_release {}; +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 trace_event_data_offsets_page_pool_state_release {}; +struct ist_info { + __u32 signature; + __u32 command; + __u32 event; + __u32 perf_level; +}; -struct trace_event_data_offsets_page_pool_state_hold {}; +struct sys_desc_table { + __u16 length; + __u8 table[14]; +}; -struct trace_event_data_offsets_page_pool_update_nid {}; +struct olpc_ofw_header { + __u32 ofw_magic; + __u32 ofw_version; + __u32 cif_handler; + __u32 irq_desc_table; +}; -enum nf_ip_hook_priorities { - NF_IP_PRI_FIRST = -2147483648, - NF_IP_PRI_RAW_BEFORE_DEFRAG = -450, - NF_IP_PRI_CONNTRACK_DEFRAG = -400, - NF_IP_PRI_RAW = -300, - NF_IP_PRI_SELINUX_FIRST = -225, - NF_IP_PRI_CONNTRACK = -200, - NF_IP_PRI_MANGLE = -150, - NF_IP_PRI_NAT_DST = -100, - NF_IP_PRI_FILTER = 0, - NF_IP_PRI_SECURITY = 50, - NF_IP_PRI_NAT_SRC = 100, - NF_IP_PRI_SELINUX_LAST = 225, - NF_IP_PRI_CONNTRACK_HELPER = 300, - NF_IP_PRI_CONNTRACK_CONFIRM = 2147483647, - NF_IP_PRI_LAST = 2147483647, +struct edid_info { + unsigned char dummy[128]; }; -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 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 bpf_nf_link { - struct bpf_link link; - struct nf_hook_ops hook_ops; - struct net *net; - u32 dead; +struct setup_header { + __u8 setup_sects; + __u16 root_flags; + __u32 syssize; + __u16 ram_size; + __u16 vid_mode; + __u16 root_dev; + __u16 boot_flag; + __u16 jump; + __u32 header; + __u16 version; + __u32 realmode_swtch; + __u16 start_sys_seg; + __u16 kernel_version; + __u8 type_of_loader; + __u8 loadflags; + __u16 setup_move_size; + __u32 code32_start; + __u32 ramdisk_image; + __u32 ramdisk_size; + __u32 bootsect_kludge; + __u16 heap_end_ptr; + __u8 ext_loader_ver; + __u8 ext_loader_type; + __u32 cmd_line_ptr; + __u32 initrd_addr_max; + __u32 kernel_alignment; + __u8 relocatable_kernel; + __u8 min_alignment; + __u16 xloadflags; + __u32 cmdline_size; + __u32 hardware_subarch; + __u64 hardware_subarch_data; + __u32 payload_offset; + __u32 payload_length; + __u64 setup_data; + __u64 pref_address; + __u32 init_size; + __u32 handover_offset; + __u32 kernel_info_offset; +} __attribute__((packed)); + +struct boot_e820_entry { + __u64 addr; + __u64 size; + __u32 type; +} __attribute__((packed)); + +struct edd_device_params { + __u16 length; + __u16 info_flags; + __u32 num_default_cylinders; + __u32 num_default_heads; + __u32 sectors_per_track; + __u64 number_of_sectors; + __u16 bytes_per_sector; + __u32 dpte_ptr; + __u16 key; + __u8 device_path_info_length; + __u8 reserved2; + __u16 reserved3; + __u8 host_bus_type[4]; + __u8 interface_type[8]; + union { + struct { + __u16 base_address; + __u16 reserved1; + __u32 reserved2; + } isa; + struct { + __u8 bus; + __u8 slot; + __u8 function; + __u8 channel; + __u32 reserved; + } pci; + struct { + __u64 reserved; + } ibnd; + struct { + __u64 reserved; + } xprs; + struct { + __u64 reserved; + } htpt; + struct { + __u64 reserved; + } unknown; + } interface_path; + union { + struct { + __u8 device; + __u8 reserved1; + __u16 reserved2; + __u32 reserved3; + __u64 reserved4; + } ata; + struct { + __u8 device; + __u8 lun; + __u8 reserved1; + __u8 reserved2; + __u32 reserved3; + __u64 reserved4; + } atapi; + struct { + __u16 id; + __u64 lun; + __u16 reserved1; + __u32 reserved2; + } __attribute__((packed)) scsi; + struct { + __u64 serial_number; + __u64 reserved; + } usb; + struct { + __u64 eui; + __u64 reserved; + } i1394; + struct { + __u64 wwid; + __u64 lun; + } fibre; + struct { + __u64 identity_tag; + __u64 reserved; + } i2o; + struct { + __u32 array_number; + __u32 reserved1; + __u64 reserved2; + } raid; + struct { + __u8 device; + __u8 reserved1; + __u16 reserved2; + __u32 reserved3; + __u64 reserved4; + } sata; + struct { + __u64 reserved1; + __u64 reserved2; + } unknown; + } device_path; + __u8 reserved4; + __u8 checksum; +} __attribute__((packed)); + +struct edd_info { + __u8 device; + __u8 version; + __u16 interface_support; + __u16 legacy_max_cylinder; + __u8 legacy_max_head; + __u8 legacy_sectors_per_track; + struct edd_device_params params; }; -struct bpf_nf_ctx { - const struct nf_hook_state *state; - struct sk_buff *skb; +struct boot_params { + struct screen_info screen_info; + struct apm_bios_info apm_bios_info; + __u8 _pad2[4]; + __u64 tboot_addr; + struct ist_info ist_info; + __u64 acpi_rsdp_addr; + __u8 _pad3[8]; + __u8 hd0_info[16]; + __u8 hd1_info[16]; + struct sys_desc_table sys_desc_table; + struct olpc_ofw_header olpc_ofw_header; + __u32 ext_ramdisk_image; + __u32 ext_ramdisk_size; + __u32 ext_cmd_line_ptr; + __u8 _pad4[112]; + __u32 cc_blob_address; + struct edid_info edid_info; + struct efi_info efi_info; + __u32 alt_mem_k; + __u32 scratch; + __u8 e820_entries; + __u8 eddbuf_entries; + __u8 edd_mbr_sig_buf_entries; + __u8 kbd_status; + __u8 secure_boot; + __u8 _pad5[2]; + __u8 sentinel; + __u8 _pad6[1]; + struct setup_header hdr; + __u8 _pad7[36]; + __u32 edd_mbr_sig_buffer[16]; + struct boot_e820_entry e820_table[128]; + __u8 _pad8[48]; + struct edd_info eddbuf[6]; + __u8 _pad9[276]; }; -struct xt_tcp { - __u16 spts[2]; - __u16 dpts[2]; - __u8 option; - __u8 flg_mask; - __u8 flg_cmp; - __u8 invflags; +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 xt_tcpmss_info { - __u16 mss; +struct setup_indirect { + __u32 type; + __u32 reserved; + __u64 len; + __u64 addr; }; -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 e820_table { + __u32 nr_entries; + struct e820_entry entries[320]; }; -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 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); }; -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, +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; }; -typedef u8 dscp_t; +struct _xmmreg { + __u32 element[4]; +}; -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 _fpx_sw_bytes { + __u32 magic1; + __u32 extended_size; + __u64 xfeatures; + __u32 xstate_size; + __u32 padding[7]; }; -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; +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 { - __be32 fc_gw4; - struct in6_addr fc_gw6; + __u32 padding1[44]; + __u32 padding[44]; + }; + union { + __u32 padding2[12]; + struct _fpx_sw_bytes sw_reserved; }; - 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 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; }; -struct rtvia { - __kernel_sa_family_t rtvia_family; - __u8 rtvia_addr[0]; +struct sigframe_ia32 { + u32 pretcode; + int sig; + struct sigcontext_32 sc; + struct _fpstate_32 fpstate_unused; + unsigned int extramask[1]; + char retcode[8]; }; -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 compat_sigaltstack { + compat_uptr_t ss_sp; + int ss_flags; + compat_size_t ss_size; }; -struct ip6_mtuinfo { - struct sockaddr_in6 ip6m_addr; - __u32 ip6m_mtu; -}; +typedef struct compat_sigaltstack compat_stack_t; -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, +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; }; -enum seal_alg { - SEAL_ALG_NONE = 65535, - SEAL_ALG_DES = 0, - SEAL_ALG_1 = 1, - SEAL_ALG_DES3KD = 2, +struct rt_sigframe_ia32 { + u32 pretcode; + int sig; + u32 pinfo; + u32 puc; + compat_siginfo_t info; + struct ucontext_ia32 uc; + char retcode[8]; }; -struct restore_data_record { - unsigned long jump_address; - unsigned long jump_address_phys; - unsigned long cr3; - unsigned long magic; - unsigned long e820_checksum; +struct ssb_state { + struct ssb_state *shared_state; + raw_spinlock_t lock; + unsigned int disable_state; + unsigned long local_state; }; -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 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 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 fork_frame { + struct inactive_task_frame frame; + struct pt_regs regs; }; -struct lzma_header { - uint8_t pos; - uint32_t dict_size; - uint64_t dst_size; -} __attribute__((packed)); +typedef struct ldttss_desc tss_desc; -struct cstate { - int state; - uint32_t rep0; - uint32_t rep1; - uint32_t rep2; - uint32_t rep3; +struct smp_ops { + void (*smp_prepare_boot_cpu)(); + void (*smp_prepare_cpus)(unsigned int); + void (*smp_cpus_done)(unsigned int); + void (*stop_other_cpus)(int); + void (*crash_stop_other_cpus)(); + void (*smp_send_reschedule)(int); + void (*cleanup_dead_cpu)(unsigned int); + void (*poll_sync_state)(); + int (*kick_ap_alive)(unsigned int, struct task_struct *); + int (*cpu_disable)(); + void (*cpu_die)(unsigned int); + void (*play_dead)(); + void (*send_call_func_ipi)(const struct cpumask *); + void (*send_call_func_single_ipi)(int); }; -struct vdso_exception_table_entry { - int insn; - int fixup; +struct va_alignment { + int flags; + unsigned long mask; + unsigned long bits; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -struct snapshot_data { - struct snapshot_handle handle; - int swap; - int mode; - bool frozen; - bool ready; - bool platform_support; - bool free_bitmaps; - dev_t dev; +enum efi_rts_ids { + EFI_NONE = 0, + EFI_GET_TIME = 1, + EFI_SET_TIME = 2, + EFI_GET_WAKEUP_TIME = 3, + EFI_SET_WAKEUP_TIME = 4, + EFI_GET_VARIABLE = 5, + EFI_GET_NEXT_VARIABLE = 6, + EFI_SET_VARIABLE = 7, + EFI_QUERY_VARIABLE_INFO = 8, + EFI_GET_NEXT_HIGH_MONO_COUNT = 9, + EFI_RESET_SYSTEM = 10, + EFI_UPDATE_CAPSULE = 11, + EFI_QUERY_CAPSULE_CAPS = 12, + EFI_ACPI_PRM_HANDLER = 13, }; -typedef int suspend_state_t; - -typedef void (*btf_trace_module_load)(void *, struct module *); +typedef struct { + efi_guid_t guid; + u64 table; +} efi_config_table_64_t; -typedef void (*btf_trace_module_free)(void *, struct module *); +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; +}; -typedef void (*btf_trace_module_get)(void *, struct module *, unsigned long); +struct efi_mem_range { + struct range range; + u64 attribute; +}; -typedef void (*btf_trace_module_put)(void *, struct module *, unsigned long); +struct efi_setup_data { + u64 fw_vendor; + u64 __unused; + u64 tables; + u64 smbios; + u64 reserved[8]; +}; -typedef void (*btf_trace_module_request)(void *, char *, bool, unsigned long); +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 mod_license { - NOT_GPL_ONLY = 0, - GPL_ONLY = 1, +struct tms { + __kernel_clock_t tms_utime; + __kernel_clock_t tms_stime; + __kernel_clock_t tms_cutime; + __kernel_clock_t tms_cstime; }; -struct symsearch { - const struct kernel_symbol *start; - const struct kernel_symbol *stop; - const s32 *crcs; - enum mod_license license; +struct compat_tms { + compat_clock_t tms_utime; + compat_clock_t tms_stime; + compat_clock_t tms_cutime; + compat_clock_t tms_cstime; }; -enum fail_dup_mod_reason { - FAIL_DUP_MOD_BECOMING = 0, - FAIL_DUP_MOD_LOAD = 1, +struct old_utsname { + char sysname[65]; + char nodename[65]; + char release[65]; + char version[65]; + char machine[65]; }; -struct trace_event_raw_module_load { - struct trace_entry ent; - unsigned int taints; - u32 __data_loc_name; - char __data[0]; +struct oldold_utsname { + char sysname[9]; + char nodename[9]; + char release[9]; + char version[9]; + char machine[9]; }; -struct trace_event_raw_module_free { - struct trace_entry ent; - u32 __data_loc_name; - char __data[0]; +struct compat_rlimit { + compat_ulong_t rlim_cur; + compat_ulong_t rlim_max; }; -struct trace_event_raw_module_refcnt { - struct trace_entry ent; - unsigned long ip; - int refcnt; - u32 __data_loc_name; - char __data[0]; +struct rlimit64 { + __u64 rlim_cur; + __u64 rlim_max; }; -struct trace_event_raw_module_request { - struct trace_entry ent; - unsigned long ip; - bool wait; - u32 __data_loc_name; - char __data[0]; +struct getcpu_cache { + unsigned long blob[16]; }; -struct mod_initfree { - struct llist_node node; - void *init_text; - void *init_data; - void *init_rodata; +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 idempotent { - const void *cookie; - struct hlist_node entry; - struct completion complete; - int ret; +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; }; -struct trace_event_data_offsets_module_load { - u32 name; +typedef int (*proc_visitor)(struct task_struct *, void *); + +struct optimistic_spin_node { + struct optimistic_spin_node *next; + struct optimistic_spin_node *prev; + int locked; + int cpu; }; -struct trace_event_data_offsets_module_free { - u32 name; +typedef struct { + seqcount_t seqcount; +} seqcount_latch_t; + +struct tk_fast { + seqcount_latch_t seq; + struct tk_read_base base[2]; }; -struct trace_event_data_offsets_module_refcnt { - u32 name; +enum timekeeping_adv_mode { + TK_ADV_TICK = 0, + TK_ADV_FREQ = 1, }; -struct trace_event_data_offsets_module_request { - u32 name; +struct ktime_timestamps { + u64 mono; + u64 boot; + u64 real; }; -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 rt_wake_q_head { + struct wake_q_head head; + struct task_struct *rtlock_task; }; -struct load_info { - const char *name; - struct module *mod; - Elf64_Ehdr *hdr; - unsigned long len; - Elf64_Shdr *sechdrs; - char *secstrings; - char *strtab; - unsigned long symoffs; - unsigned long stroffs; - unsigned long init_typeoffs; - unsigned long core_typeoffs; - bool sig_ok; - unsigned long mod_kallsyms_init_off; - struct { - unsigned int sym; - unsigned int str; - unsigned int mod; - unsigned int vers; - unsigned int info; - unsigned int pcpu; - } index; +struct 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 auditd_connection { - struct pid *pid; - u32 portid; - struct net *net; - struct callback_head rcu; +struct cpu_stop_done { + atomic_t nr_todo; + int ret; + struct completion completion; }; -struct audit_ctl_mutex { - struct mutex lock; - void *owner; +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 audit_features { - __u32 vers; - __u32 mask; - __u32 features; - __u32 lock; +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 audit_nlgrps { - AUDIT_NLGRP_NONE = 0, - AUDIT_NLGRP_READLOG = 1, - __AUDIT_NLGRP_MAX = 2, +struct tp_transition_snapshot { + unsigned long rcu; + unsigned long srcu; + bool ongoing; }; -struct audit_reply { - __u32 portid; - struct net *net; - struct sk_buff *skb; +enum tp_func_state { + TP_FUNC_0 = 0, + TP_FUNC_1 = 1, + TP_FUNC_2 = 2, + TP_FUNC_N = 3, }; -struct audit_net { - struct sock *sk; +enum tp_transition_sync { + TP_TRANSITION_SYNC_1_0_1 = 0, + TP_TRANSITION_SYNC_N_2_1 = 1, + _NR_TP_TRANSITION_SYNC = 2, }; -struct audit_buffer { - struct sk_buff *skb; - struct audit_context *ctx; - gfp_t gfp_mask; +struct tp_module { + struct list_head list; + struct module *mod; }; -struct audit_sig_info { - uid_t uid; - pid_t pid; - char ctx[0]; +struct tp_probes { + struct callback_head rcu; + struct tracepoint_func probes[0]; }; -struct audit_tty_status { - __u32 enabled; - __u32 log_passwd; +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, }; -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; +enum bpf_audit { + BPF_AUDIT_LOAD = 0, + BPF_AUDIT_UNLOAD = 1, + BPF_AUDIT_MAX = 2, }; -struct audit_netlink_list { - __u32 portid; - struct net *net; - struct sk_buff_head q; +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 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, +enum bpf_perf_event_type { + BPF_PERF_EVENT_UNSPEC = 0, + BPF_PERF_EVENT_UPROBE = 1, + BPF_PERF_EVENT_URETPROBE = 2, + BPF_PERF_EVENT_KPROBE = 3, + BPF_PERF_EVENT_KRETPROBE = 4, + BPF_PERF_EVENT_TRACEPOINT = 5, + BPF_PERF_EVENT_EVENT = 6, }; -struct bpf_lru_list { - struct list_head lists[3]; - unsigned int counts[2]; - struct list_head *next_inactive_rotation; - raw_spinlock_t lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +enum bpf_stats_type { + BPF_STATS_RUN_TIME = 0, }; -struct bpf_lru_locallist { - struct list_head lists[2]; - u16 next_steal; - raw_spinlock_t lock; +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_tramp_link { + struct bpf_link link; + struct hlist_node tramp_hlist; + u64 cookie; }; -struct bpf_lru_node { - struct list_head list; - u16 cpu; - u8 type; - u8 ref; +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_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_raw_tp_link { + struct bpf_link link; + struct bpf_raw_event_map *btp; }; -typedef bool (*del_from_htab_func)(void *, struct bpf_lru_node *); +struct bpf_perf_link { + struct bpf_link link; + struct file *perf_file; +}; -struct bpf_lru { +struct bpf_prog_kstats { + u64 nsecs; + u64 cnt; + u64 misses; +}; + +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 { + __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 bpf_attach_target_info { + struct btf_func_model fmodel; + long tgt_addr; + struct module *tgt_mod; + const char *tgt_name; + const struct btf_type *tgt_type; +}; + +struct bpf_tramp_run_ctx { + struct bpf_run_ctx run_ctx; + u64 bpf_cookie; + struct bpf_run_ctx *saved_run_ctx; +}; + +typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_mm_compaction_migratepages)(void *, 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); + +enum pageblock_bits { + PB_migrate = 0, + PB_migrate_end = 2, + PB_migrate_skip = 3, + NR_PAGEBLOCK_BITS = 4, +}; + +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 alloc_context { + struct zonelist *zonelist; + nodemask_t *nodemask; + struct zoneref *preferred_zoneref; + int migratetype; + enum zone_type highest_zoneidx; + bool spread_dirty_pages; +}; + +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]; +}; + +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]; +}; + +struct dqstats { + unsigned long stat[8]; + struct percpu_counter counter[8]; +}; + +struct quota_module_name { + int qm_fmt_id; + char *qm_mod_name; +}; + +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, +}; + +struct dquot_warn { + struct super_block *w_sb; + struct kqid w_dq_id; + short w_type; +}; + +struct journal_block_tag3_s { + __be32 t_blocknr; + __be32 t_flags; + __be32 t_blocknr_high; + __be32 t_checksum; +}; + +typedef struct journal_block_tag3_s journal_block_tag3_t; + +struct commit_header { + __be32 h_magic; + __be32 h_blocktype; + __be32 h_sequence; + unsigned char h_chksum_type; + unsigned char h_chksum_size; + unsigned char h_padding[2]; + __be32 h_chksum[8]; + __be64 h_commit_sec; + __be32 h_commit_nsec; +}; + +struct jbd2_journal_block_tail { + __be32 t_checksum; +}; + +struct jbd2_journal_revoke_header_s { + journal_header_t r_header; + __be32 r_count; +}; + +typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t; + +struct journal_block_tag_s { + __be32 t_blocknr; + __be16 t_checksum; + __be16 t_flags; + __be32 t_blocknr_high; +}; + +typedef struct journal_block_tag_s journal_block_tag_t; + +struct recovery_info { + tid_t start_transaction; + tid_t end_transaction; + unsigned long head_block; + int nr_replays; + int nr_revokes; + int nr_revoke_hits; +}; + +struct nfs_io_completion { + void (*complete)(void *); + void *data; + struct kref refcount; +}; + +enum pnfs_try_status { + PNFS_ATTEMPTED = 0, + PNFS_NOT_ATTEMPTED = 1, + PNFS_TRY_AGAIN = 2, +}; + +struct autofs_dev_ioctl; + +typedef int (*ioctl_fn)(struct file *, struct autofs_sb_info *, struct autofs_dev_ioctl *); + +struct args_protover { + __u32 version; +}; + +struct args_protosubver { + __u32 sub_version; +}; + +struct args_openmount { + __u32 devid; +}; + +struct args_ready { + __u32 token; +}; + +struct args_fail { + __u32 token; + __s32 status; +}; + +struct args_setpipefd { + __s32 pipefd; +}; + +struct args_timeout { + __u64 timeout; +}; + +struct args_requester { + __u32 uid; + __u32 gid; +}; + +struct args_expire { + __u32 how; +}; + +struct args_askumount { + __u32 may_umount; +}; + +struct args_in { + __u32 type; +}; + +struct args_out { + __u32 devid; + __u32 magic; +}; + +struct args_ismountpoint { union { - struct bpf_common_lru common_lru; - struct bpf_lru_list __attribute__((btf_type_tag("percpu"))) *percpu_lru; + struct args_in in; + struct args_out out; }; - del_from_htab_func del_from_htab; - void *del_arg; - unsigned int hash_offset; - unsigned int nr_scans; - bool percpu; - long: 64; - long: 64; - long: 64; - long: 64; }; -enum { - BPF_RINGBUF_BUSY_BIT = 2147483648, - BPF_RINGBUF_DISCARD_BIT = 1073741824, - BPF_RINGBUF_HDR_SZ = 8, +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 { - BPF_RB_NO_WAKEUP = 1, - BPF_RB_FORCE_WAKEUP = 2, + AUTOFS_DEV_IOCTL_VERSION_CMD = 113, + AUTOFS_DEV_IOCTL_PROTOVER_CMD = 114, + AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD = 115, + AUTOFS_DEV_IOCTL_OPENMOUNT_CMD = 116, + AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD = 117, + AUTOFS_DEV_IOCTL_READY_CMD = 118, + AUTOFS_DEV_IOCTL_FAIL_CMD = 119, + AUTOFS_DEV_IOCTL_SETPIPEFD_CMD = 120, + AUTOFS_DEV_IOCTL_CATATONIC_CMD = 121, + AUTOFS_DEV_IOCTL_TIMEOUT_CMD = 122, + AUTOFS_DEV_IOCTL_REQUESTER_CMD = 123, + AUTOFS_DEV_IOCTL_EXPIRE_CMD = 124, + AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD = 125, + AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD = 126, }; -enum { - BPF_RB_AVAIL_DATA = 0, - BPF_RB_RING_SIZE = 1, - BPF_RB_CONS_POS = 2, - BPF_RB_PROD_POS = 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, +} __attribute__((mode(byte))); + +struct p9_rdir { + int head; + int tail; + uint8_t buf[0]; }; -typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64); +struct p9_dirent { + struct p9_qid qid; + u64 d_off; + unsigned char d_type; + char d_name[256]; +}; -typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64); +struct selinux_mapping; -typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64); +struct selinux_map { + struct selinux_mapping *mapping; + u16 size; +}; -typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); +struct selinux_policy { + struct sidtab *sidtab; + struct policydb policydb; + struct selinux_map map; + u32 latest_granting; +}; -typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); +struct selinux_mapping { + u16 value; + u16 num_perms; + u32 perms[32]; +}; -typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); +struct selinux_audit_rule { + u32 au_seqno; + struct context au_ctxt; +}; -typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64); +struct security_class_mapping { + const char *name; + const char *perms[33]; +}; -typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64); +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; +}; -typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64); +struct selinux_policy_convert_data { + struct convert_context_args args; + struct sidtab_convert_params sidtab_params; +}; -struct bpf_ringbuf { - wait_queue_head_t waitq; - struct irq_work work; - u64 mask; - struct page **pages; - int nr_pages; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - spinlock_t spinlock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - atomic_t busy; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - 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; +struct selinux_state { + bool enforcing; + bool initialized; + bool policycap[8]; + struct page *status_page; + struct mutex status_lock; + struct selinux_policy __attribute__((btf_type_tag("rcu"))) *policy; + struct mutex policy_mutex; +}; + +struct blk_major_name { + struct blk_major_name *next; + int major; + char name[16]; + void (*probe)(dev_t); +}; + +struct io_splice { + struct file *file_out; + loff_t off_out; + loff_t off_in; + u64 len; + int splice_fd_in; + unsigned int flags; +}; + +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 enable_type { + undefined = -1, + user_disabled = 0, + auto_disabled = 1, + user_enabled = 2, + auto_enabled = 3, +}; + +enum release_type { + leaf_only = 0, + whole_subtree = 1, +}; + +struct pci_dev_resource { + struct list_head list; + struct resource *res; + struct pci_dev *dev; + resource_size_t start; + resource_size_t end; + resource_size_t add_size; + resource_size_t min_align; + unsigned long flags; +}; + +struct acpi_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; +}; + +typedef enum { + ACPI_TRACE_AML_METHOD = 0, + ACPI_TRACE_AML_OPCODE = 1, + ACPI_TRACE_AML_REGION = 2, +} acpi_trace_event_type; + +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 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 *); +}; + +enum translation_map { + LAT1_MAP = 0, + GRAF_MAP = 1, + IBMPC_MAP = 2, + USER_MAP = 3, + FIRST_MAP = 0, + LAST_MAP = 3, +}; + +struct uni_pagedict { + u16 **uni_pgdir[32]; + unsigned long refcount; + unsigned long sum; + unsigned char *inverse_translations[4]; + u16 *inverse_trans_unicode; +}; + +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 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 ivrs_quirk_entry { + u8 id; + u32 devid; +}; + +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 *); +}; + +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 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); + int (*read_and_clear_dirty)(struct io_pgtable_ops *, unsigned long, size_t, unsigned long, struct iommu_dirty_bitmap *); +}; + +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 amd_io_pgtable { + struct io_pgtable_cfg pgtbl_cfg; + struct io_pgtable iop; + int mode; + u64 *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; + int nid; + u64 *gcr3_tbl; + unsigned long flags; + bool dirty_tracking; + unsigned int dev_cnt; + unsigned int dev_iommu[32]; +}; + +struct drm_client_offset { + int x; + int y; +}; + +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 *, int, unsigned int); + +typedef void (*btf_trace_drm_vblank_event_delivered)(void *, struct drm_file *, 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 *file; + int crtc; + unsigned int seq; + char __data[0]; +}; + +struct trace_event_raw_drm_vblank_event_delivered { + struct trace_entry ent; + struct drm_file *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 {}; + +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; +}; + +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 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; +}; + +struct intel_gsc_partition { + u32 offset; + u32 size; +}; + +struct intel_gsc_layout_pointers { + u8 rom_bypass_vector[16]; + u16 size; + u8 flags; + u8 reserved; + u32 crc32; + struct intel_gsc_partition datap; + struct intel_gsc_partition boot1; + struct intel_gsc_partition boot2; + struct intel_gsc_partition boot3; + struct intel_gsc_partition boot4; + struct intel_gsc_partition boot5; + struct intel_gsc_partition temp_pages; +}; + +struct intel_gsc_bpdt_header { + u32 signature; + u16 descriptor_count; + u8 version; + u8 configuration; + u32 crc32; + u32 build_version; + struct intel_gsc_version tool_version; +}; + +struct intel_gsc_bpdt_entry { + u32 type; + u32 sub_partition_offset; + u32 sub_partition_size; +}; + +struct intel_gsc_mkhi_header { + u8 group_id; + u8 command; + u8 reserved; + u8 result; +}; + +struct mtl_gsc_ver_msg_in { + struct intel_gsc_mtl_header header; + struct intel_gsc_mkhi_header mkhi; +}; + +struct mtl_gsc_ver_msg_out { + struct intel_gsc_mtl_header header; + struct intel_gsc_mkhi_header mkhi; + u16 proj_major; + u16 compat_major; + u16 compat_minor; + u16 reserved[5]; +}; + +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); + +struct virtio_gpu_submit_post_dep; + +struct drm_virtgpu_execbuffer; + +struct virtio_gpu_submit { + struct virtio_gpu_submit_post_dep *post_deps; + unsigned int num_out_syncobjs; + struct drm_syncobj **in_syncobjs; + unsigned int num_in_syncobjs; + struct virtio_gpu_object_array *buflist; + struct drm_virtgpu_execbuffer *exbuf; + struct virtio_gpu_fence *out_fence; + struct virtio_gpu_fpriv *vfpriv; + struct virtio_gpu_device *vgdev; + struct sync_file *sync_file; + struct drm_file *file; + int out_fence_fd; + u64 fence_ctx; + u32 ring_idx; + void *buf; +}; + +struct virtio_gpu_submit_post_dep { + struct drm_syncobj *syncobj; + struct dma_fence_chain *chain; + u64 point; +}; + +struct drm_virtgpu_execbuffer { + __u32 flags; + __u32 size; + __u64 command; + __u64 bo_handles; + __u32 num_bo_handles; + __s32 fence_fd; + __u32 ring_idx; + __u32 syncobj_stride; + __u32 num_in_syncobjs; + __u32 num_out_syncobjs; + __u64 in_syncobjs; + __u64 out_syncobjs; +}; + +struct drm_virtgpu_execbuffer_syncobj { + __u32 handle; + __u32 flags; + __u64 point; +}; + +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; +}; + +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 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, +}; + +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 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: 64; 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; + unsigned long rx_dropped; 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; + unsigned long tx_dropped; + 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: 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; + u8 ptp_txts_retrycnt; + void (*write32_tx_mbox)(struct tg3 *, u32, u32); + u32 dma_limit; + u32 txq_req; + u32 txq_cnt; + u32 txq_max; + 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; + 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; + struct sk_buff *tx_tstamp_skb; + u64 pre_tx_ts; + 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 usb_phy_roothub { + struct phy___2 *phy; + struct list_head list; +}; + +enum xfer_buf_dir { + TO_XFER_BUF = 0, + FROM_XFER_BUF = 1, +}; + +struct vivaldi_data { + u32 function_row_physmap[24]; + unsigned int num_function_row_keys; +}; + +struct atkbd { + struct ps2dev ps2dev; + struct input_dev *dev; + char name[64]; + char phys[32]; + unsigned short id; + unsigned short keycode[512]; + unsigned long force_release_mask[8]; + unsigned char set; + bool translated; + bool extra; + bool write; + bool softrepeat; + bool softraw; + bool scroll; + bool enabled; + unsigned char emul; + bool resend; + bool release; + unsigned long xl_bit; + unsigned int last; + unsigned long time; + unsigned long err_count; + struct delayed_work event_work; + unsigned long event_jiffies; + unsigned long event_mask; + struct mutex mutex; + struct vivaldi_data vdata; +}; + +struct 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, + hwmon_temp_beep = 27, +}; + +struct power_supply_hwmon { + struct power_supply *psy; + unsigned long *props; +}; + +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 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; +}; + +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, + NVMEM_LAYOUT_ADD = 5, + NVMEM_LAYOUT_REMOVE = 6, +}; + +typedef int (*nvmem_reg_read_t)(void *, unsigned int, void *, size_t); + +typedef int (*nvmem_reg_write_t)(void *, unsigned int, void *, size_t); + +struct nvmem_keepout; + +struct nvmem_layout; + +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; + struct gpio_desc *wp_gpio; + struct nvmem_layout *layout; + void *priv; +}; + +struct nvmem_keepout { + unsigned int start; + unsigned int end; + unsigned char value; +}; + +struct nvmem_cell_info; + +struct nvmem_layout { + const char *name; + const struct of_device_id *of_match_table; + int (*add_cells)(struct device *, struct nvmem_device *, struct nvmem_layout *); + void (*fixup_cell_info)(struct nvmem_device *, struct nvmem_layout *, struct nvmem_cell_info *); + struct module *owner; + struct list_head node; +}; + +typedef int (*nvmem_cell_post_process_t)(void *, const char *, int, unsigned int, void *, size_t); + +struct nvmem_cell_info { + const char *name; + unsigned int offset; + size_t raw_len; + unsigned int bytes; + unsigned int bit_offset; + unsigned int nbits; + struct device_node *np; + nvmem_cell_post_process_t read_post_process; + void *priv; +}; + +struct nvmem_cell_table { + const char *nvmem_name; + const struct nvmem_cell_info *cells; + size_t ncells; + struct list_head node; +}; + +struct nvmem_cell_entry { + const char *name; + int offset; + size_t raw_len; + int bytes; + int bit_offset; + int nbits; + nvmem_cell_post_process_t read_post_process; + void *priv; + struct device_node *np; + struct nvmem_device *nvmem; + struct list_head node; +}; + +struct nvmem_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; + bool add_legacy_fixed_of_cells; + const struct nvmem_keepout *keepout; + unsigned int nkeepout; + enum nvmem_type type; + bool read_only; + bool root_only; + bool ignore_wp; + struct nvmem_layout *layout; + struct device_node *of_node; + nvmem_reg_read_t reg_read; + nvmem_reg_write_t reg_write; + int size; + int word_size; + int stride; + void *priv; + bool compat; + struct device *base_dev; +}; + +struct snd_seq_timer_tick { + snd_seq_tick_time_t cur_tick; + unsigned long resolution; + unsigned long fraction; +}; + +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_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 sd_flow_limit; + +struct softnet_data { + struct list_head poll_list; + struct sk_buff_head process_queue; + unsigned int processed; + unsigned int time_squeeze; + struct softnet_data *rps_ipi_list; + bool in_net_rx_action; + bool in_napi_threaded_poll; + struct sd_flow_limit __attribute__((btf_type_tag("rcu"))) *flow_limit; + struct Qdisc *output_queue; + struct Qdisc **output_queue_tailp; + struct sk_buff *completion_queue; + struct { + u16 recursion; + u8 more; + u8 skip_txqueue; + } xmit; long: 64; long: 64; long: 64; + unsigned int input_queue_head; long: 64; long: 64; long: 64; @@ -99970,12767 +102272,14598 @@ struct bpf_ringbuf { 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; 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]; +}; + +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 nfnl_abort_action { + NFNL_ABORT_NONE = 0, + NFNL_ABORT_AUTOLOAD = 1, + NFNL_ABORT_VALIDATE = 2, +}; + +struct nfnl_callback; + +struct nfnetlink_subsystem { + const char *name; + __u8 subsys_id; + __u8 cb_count; + const struct nfnl_callback *cb; + struct module *owner; + int (*commit)(struct net *, struct sk_buff *); + int (*abort)(struct net *, struct sk_buff *, enum nfnl_abort_action); + bool (*valid_genid)(struct net *, u32); +}; + +enum nfnl_callback_type { + NFNL_CB_UNSPEC = 0, + NFNL_CB_MUTEX = 1, + NFNL_CB_RCU = 2, + NFNL_CB_BATCH = 3, +}; + +struct nfnl_info; + +struct nfnl_callback { + int (*call)(struct sk_buff *, const struct nfnl_info *, const struct nlattr * const *); + const struct nla_policy *policy; + enum nfnl_callback_type type; + __u16 attr_count; +}; + +struct nfgenmsg; + +struct nfnl_info { + struct net *net; + struct sock *sk; + const struct nlmsghdr *nlh; + const struct nfgenmsg *nfmsg; + struct netlink_ext_ack *extack; +}; + +struct nfgenmsg { + __u8 nfgen_family; + __u8 version; + __be16 res_id; +}; + +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, +}; + +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, +}; + +struct nfnl_err { + struct list_head head; + struct nlmsghdr *nlh; + int err; + struct netlink_ext_ack extack; +}; + +struct nfnl_net { + struct sock *nfnl; +}; + +struct masq_dev_work { + struct work_struct work; + struct net *net; + netns_tracker ns_tracker; + union nf_inet_addr addr; + int ifindex; + int (*iter)(struct nf_conn *, void *); +}; + +union nf_conntrack_nat_help {}; + +struct nf_conn_nat { + union nf_conntrack_nat_help help; + int masq_index; +}; + +struct nf_ct_iter_data { + struct net *net; + void *data; + u32 portid; + int report; +}; + +struct tcp_plb_state { + u8 consec_cong_rounds: 5; + u8 unused: 3; + u32 pause_until; +}; + +struct fib_prop { + int error; + u8 scope; +}; + +typedef u8 dscp_t; + +struct fib_alias { + struct hlist_node fa_list; + struct fib_info *fa_info; + dscp_t fa_dscp; + u8 fa_type; + u8 fa_state; + u8 fa_slen; + u32 tb_id; + s16 fa_default; + u8 offload; + u8 trap; + u8 offload_failed; + struct callback_head rcu; +}; + +struct fib_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 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 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 fib_nh_notifier_info { + struct fib_notifier_info info; + struct fib_nh *fib_nh; +}; + +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 rtvia { + __kernel_sa_family_t rtvia_family; + __u8 rtvia_addr[0]; +}; + +struct ip6t_ip6 { + struct in6_addr src; + struct in6_addr dst; + struct in6_addr smsk; + struct in6_addr dmsk; + char iniface[16]; + char outiface[16]; + unsigned char iniface_mask[16]; + unsigned char outiface_mask[16]; + __u16 proto; + __u8 tos; + __u8 flags; + __u8 invflags; +}; + +struct ip6t_entry { + struct ip6t_ip6 ipv6; + unsigned int nfcache; + __u16 target_offset; + __u16 next_offset; + unsigned int comefrom; + struct xt_counters counters; + unsigned char elems[0]; +}; + +struct 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 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 mac80211_tx_status_flags { + IEEE80211_TX_STATUS_ACK_SIGNAL_VALID = 1, +}; + +enum ieee80211_radiotap_presence { + IEEE80211_RADIOTAP_TSFT = 0, + IEEE80211_RADIOTAP_FLAGS = 1, + IEEE80211_RADIOTAP_RATE = 2, + IEEE80211_RADIOTAP_CHANNEL = 3, + IEEE80211_RADIOTAP_FHSS = 4, + IEEE80211_RADIOTAP_DBM_ANTSIGNAL = 5, + IEEE80211_RADIOTAP_DBM_ANTNOISE = 6, + IEEE80211_RADIOTAP_LOCK_QUALITY = 7, + IEEE80211_RADIOTAP_TX_ATTENUATION = 8, + IEEE80211_RADIOTAP_DB_TX_ATTENUATION = 9, + IEEE80211_RADIOTAP_DBM_TX_POWER = 10, + IEEE80211_RADIOTAP_ANTENNA = 11, + IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12, + IEEE80211_RADIOTAP_DB_ANTNOISE = 13, + IEEE80211_RADIOTAP_RX_FLAGS = 14, + IEEE80211_RADIOTAP_TX_FLAGS = 15, + IEEE80211_RADIOTAP_RTS_RETRIES = 16, + IEEE80211_RADIOTAP_DATA_RETRIES = 17, + IEEE80211_RADIOTAP_MCS = 19, + IEEE80211_RADIOTAP_AMPDU_STATUS = 20, + IEEE80211_RADIOTAP_VHT = 21, + IEEE80211_RADIOTAP_TIMESTAMP = 22, + IEEE80211_RADIOTAP_HE = 23, + IEEE80211_RADIOTAP_HE_MU = 24, + IEEE80211_RADIOTAP_ZERO_LEN_PSDU = 26, + IEEE80211_RADIOTAP_LSIG = 27, + IEEE80211_RADIOTAP_TLV = 28, + IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29, + IEEE80211_RADIOTAP_VENDOR_NAMESPACE = 30, + IEEE80211_RADIOTAP_EXT = 31, + IEEE80211_RADIOTAP_EHT_USIG = 33, + IEEE80211_RADIOTAP_EHT = 34, +}; + +enum ieee80211_radiotap_tx_flags { + IEEE80211_RADIOTAP_F_TX_FAIL = 1, + IEEE80211_RADIOTAP_F_TX_CTS = 2, + IEEE80211_RADIOTAP_F_TX_RTS = 4, + IEEE80211_RADIOTAP_F_TX_NOACK = 8, + IEEE80211_RADIOTAP_F_TX_NOSEQNO = 16, + IEEE80211_RADIOTAP_F_TX_ORDER = 32, +}; + +enum ieee80211_radiotap_mcs_flags { + IEEE80211_RADIOTAP_MCS_BW_MASK = 3, + IEEE80211_RADIOTAP_MCS_BW_20 = 0, + IEEE80211_RADIOTAP_MCS_BW_40 = 1, + IEEE80211_RADIOTAP_MCS_BW_20L = 2, + IEEE80211_RADIOTAP_MCS_BW_20U = 3, + IEEE80211_RADIOTAP_MCS_SGI = 4, + IEEE80211_RADIOTAP_MCS_FMT_GF = 8, + IEEE80211_RADIOTAP_MCS_FEC_LDPC = 16, + IEEE80211_RADIOTAP_MCS_STBC_MASK = 96, + IEEE80211_RADIOTAP_MCS_STBC_1 = 1, + IEEE80211_RADIOTAP_MCS_STBC_2 = 2, + IEEE80211_RADIOTAP_MCS_STBC_3 = 3, + IEEE80211_RADIOTAP_MCS_STBC_SHIFT = 5, +}; + +enum ieee80211_radiotap_vht_flags { + IEEE80211_RADIOTAP_VHT_FLAG_STBC = 1, + IEEE80211_RADIOTAP_VHT_FLAG_TXOP_PS_NA = 2, + IEEE80211_RADIOTAP_VHT_FLAG_SGI = 4, + IEEE80211_RADIOTAP_VHT_FLAG_SGI_NSYM_M10_9 = 8, + IEEE80211_RADIOTAP_VHT_FLAG_LDPC_EXTRA_OFDM_SYM = 16, + IEEE80211_RADIOTAP_VHT_FLAG_BEAMFORMED = 32, +}; + +enum ieee80211_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_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_unprotected_wnm_actioncode { + WLAN_UNPROTECTED_WNM_ACTION_TIM = 0, + WLAN_UNPROTECTED_WNM_ACTION_TIMING_MEASUREMENT_RESPONSE = 1, +}; + +enum ieee80211_pub_actioncode { + WLAN_PUB_ACTION_20_40_BSS_COEX = 0, + WLAN_PUB_ACTION_DSE_ENABLEMENT = 1, + WLAN_PUB_ACTION_DSE_DEENABLEMENT = 2, + WLAN_PUB_ACTION_DSE_REG_LOC_ANN = 3, + WLAN_PUB_ACTION_EXT_CHANSW_ANN = 4, + WLAN_PUB_ACTION_DSE_MSMT_REQ = 5, + WLAN_PUB_ACTION_DSE_MSMT_RESP = 6, + WLAN_PUB_ACTION_MSMT_PILOT = 7, + WLAN_PUB_ACTION_DSE_PC = 8, + WLAN_PUB_ACTION_VENDOR_SPECIFIC = 9, + WLAN_PUB_ACTION_GAS_INITIAL_REQ = 10, + WLAN_PUB_ACTION_GAS_INITIAL_RESP = 11, + WLAN_PUB_ACTION_GAS_COMEBACK_REQ = 12, + WLAN_PUB_ACTION_GAS_COMEBACK_RESP = 13, + WLAN_PUB_ACTION_TDLS_DISCOVER_RES = 14, + WLAN_PUB_ACTION_LOC_TRACK_NOTI = 15, + WLAN_PUB_ACTION_QAB_REQUEST_FRAME = 16, + WLAN_PUB_ACTION_QAB_RESPONSE_FRAME = 17, + WLAN_PUB_ACTION_QMF_POLICY = 18, + WLAN_PUB_ACTION_QMF_POLICY_CHANGE = 19, + WLAN_PUB_ACTION_QLOAD_REQUEST = 20, + WLAN_PUB_ACTION_QLOAD_REPORT = 21, + WLAN_PUB_ACTION_HCCA_TXOP_ADVERT = 22, + WLAN_PUB_ACTION_HCCA_TXOP_RESPONSE = 23, + WLAN_PUB_ACTION_PUBLIC_KEY = 24, + WLAN_PUB_ACTION_CHANNEL_AVAIL_QUERY = 25, + WLAN_PUB_ACTION_CHANNEL_SCHEDULE_MGMT = 26, + WLAN_PUB_ACTION_CONTACT_VERI_SIGNAL = 27, + WLAN_PUB_ACTION_GDD_ENABLEMENT_REQ = 28, + WLAN_PUB_ACTION_GDD_ENABLEMENT_RESP = 29, + WLAN_PUB_ACTION_NETWORK_CHANNEL_CONTROL = 30, + WLAN_PUB_ACTION_WHITE_SPACE_MAP_ANN = 31, + WLAN_PUB_ACTION_FTM_REQUEST = 32, + WLAN_PUB_ACTION_FTM_RESPONSE = 33, + WLAN_PUB_ACTION_FILS_DISCOVERY = 34, +}; + +struct ieee80211_radiotap_he { + __le16 data1; + __le16 data2; + __le16 data3; + __le16 data4; + __le16 data5; + __le16 data6; +}; + +struct ieee80211_radiotap_header { + uint8_t it_version; + uint8_t it_pad; + __le16 it_len; + __le32 it_present; + __le32 it_optional[0]; +}; + +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 errormap { + char *name; + int val; + int namelen; + struct hlist_node list; +}; + +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_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; +}; + +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 xdp_umem_reg { + __u64 addr; + __u64 len; + __u32 chunk_size; + __u32 headroom; + __u32 flags; +}; + +enum die_val { + DIE_OOPS = 1, + DIE_INT3 = 2, + DIE_DEBUG = 3, + DIE_PANIC = 4, + DIE_NMI = 5, + DIE_DIE = 6, + DIE_KERNELDEBUG = 7, + DIE_TRAP = 8, + DIE_GPF = 9, + DIE_CALL = 10, + DIE_PAGE_FAULT = 11, + DIE_NMIUNKNOWN = 12, +}; + +enum { + 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 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]; +}; + +struct die_args { + struct pt_regs *regs; + const char *str; + long err; + int trapnr; + int signr; +}; + +struct tsc_adjust { + s64 bootval; + s64 adjusted; + unsigned long nextcheck; + bool warned; +}; + +typedef unsigned long long cycles_t; + +struct vector_cleanup { + struct hlist_head head; + struct timer_list timer; +}; + +enum { + X86_IRQ_ALLOC_LEGACY = 1, +}; + +struct apic_chip_data { + struct irq_cfg hw_irq_cfg; + unsigned int vector; + unsigned int prev_vector; + unsigned int cpu; + unsigned int prev_cpu; + unsigned int irq; + struct hlist_node clist; + unsigned int move_in_progress: 1; + unsigned int is_managed: 1; + unsigned int can_reserve: 1; + unsigned int has_reserved: 1; +}; + +typedef struct irq_desc *vector_irq_t[256]; + +typedef struct { + u64 signature; + u32 revision; + u32 headersize; + u32 crc32; + u32 reserved; +} efi_table_hdr_t; + +union efi_simple_text_input_protocol; + +typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t; + +union efi_simple_text_output_protocol; + +typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t; + +typedef struct { + u16 year; + u8 month; + u8 day; + u8 hour; + u8 minute; + u8 second; + u8 pad1; + u32 nanosecond; + s16 timezone; + u8 daylight; + u8 pad2; +} efi_time_t; + +typedef struct { + u32 resolution; + u32 accuracy; + u8 sets_to_zero; +} efi_time_cap_t; + +typedef u8 efi_bool_t; + +typedef struct { + efi_guid_t guid; + u32 headersize; + u32 flags; + u32 imagesize; +} efi_capsule_header_t; + +typedef struct { + efi_table_hdr_t hdr; + u32 get_time; + u32 set_time; + u32 get_wakeup_time; + u32 set_wakeup_time; + u32 set_virtual_address_map; + u32 convert_pointer; + u32 get_variable; + u32 get_next_variable; + u32 set_variable; + u32 get_next_high_mono_count; + u32 reset_system; + u32 update_capsule; + u32 query_capsule_caps; + u32 query_variable_info; +} efi_runtime_services_32_t; + +typedef union { + struct { + efi_table_hdr_t hdr; + efi_status_t (*get_time)(efi_time_t *, efi_time_cap_t *); + efi_status_t (*set_time)(efi_time_t *); + efi_status_t (*get_wakeup_time)(efi_bool_t *, efi_bool_t *, efi_time_t *); + efi_status_t (*set_wakeup_time)(efi_bool_t, efi_time_t *); + efi_status_t (*set_virtual_address_map)(unsigned long, unsigned long, u32, efi_memory_desc_t *); + void *convert_pointer; + efi_status_t (*get_variable)(efi_char16_t *, efi_guid_t *, u32 *, unsigned long *, void *); + efi_status_t (*get_next_variable)(unsigned long *, efi_char16_t *, efi_guid_t *); + efi_status_t (*set_variable)(efi_char16_t *, efi_guid_t *, u32, unsigned long, void *); + efi_status_t (*get_next_high_mono_count)(u32 *); + void (*reset_system)(int, efi_status_t, unsigned long, efi_char16_t *); + efi_status_t (*update_capsule)(efi_capsule_header_t **, unsigned long, unsigned long); + efi_status_t (*query_capsule_caps)(efi_capsule_header_t **, unsigned long, u64 *, int *); + efi_status_t (*query_variable_info)(u32, u64 *, u64 *, u64 *); + }; + efi_runtime_services_32_t mixed_mode; +} efi_runtime_services_t; + +union efi_boot_services; + +typedef union efi_boot_services efi_boot_services_t; + +typedef struct { + efi_table_hdr_t hdr; + u32 fw_vendor; + u32 fw_revision; + u32 con_in_handle; + u32 con_in; + u32 con_out_handle; + u32 con_out; + u32 stderr_handle; + u32 stderr; + u32 runtime; + u32 boottime; + u32 nr_tables; + u32 tables; +} efi_system_table_32_t; + +typedef union { + struct { + efi_table_hdr_t hdr; + unsigned long fw_vendor; + u32 fw_revision; + unsigned long con_in_handle; + efi_simple_text_input_protocol_t *con_in; + unsigned long con_out_handle; + efi_simple_text_output_protocol_t *con_out; + unsigned long stderr_handle; + unsigned long stderr; + efi_runtime_services_t *runtime; + efi_boot_services_t *boottime; + unsigned long nr_tables; + unsigned long tables; + }; + efi_system_table_32_t mixed_mode; +} efi_system_table_t; + +enum { + MAX_IORES_LEVEL = 5, +}; + +enum { + REGION_INTERSECTS = 0, + REGION_DISJOINT = 1, + REGION_MIXED = 2, +}; + +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; +}; + +enum KTHREAD_BITS { + KTHREAD_IS_PER_CPU = 0, + KTHREAD_SHOULD_STOP = 1, + KTHREAD_SHOULD_PARK = 2, +}; + +enum { + KTW_FREEZABLE = 1, +}; + +struct kthread_create_info { + char *full_name; + int (*threadfn)(void *); + void *data; + int node; + struct task_struct *result; + struct completion *done; + struct list_head list; +}; + +struct kthread_flush_work { + struct kthread_work work; + struct completion done; +}; + +struct kthread { + unsigned long flags; + unsigned int cpu; + int result; + int (*threadfn)(void *); + void *data; + struct completion parked; + struct completion exited; + struct cgroup_subsys_state *blkcg_css; + char *full_name; +}; + +enum numa_topology_type { + NUMA_DIRECT = 0, + NUMA_GLUELESS_MESH = 1, + NUMA_BACKPLANE = 2, +}; + +typedef const struct cpumask * (*sched_domain_mask_f)(int); + +typedef int (*sched_domain_flags_f)(); + +struct sd_data { + struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; + struct sched_domain_shared * __attribute__((btf_type_tag("percpu"))) *sds; + struct sched_group * __attribute__((btf_type_tag("percpu"))) *sg; + struct sched_group_capacity * __attribute__((btf_type_tag("percpu"))) *sgc; +}; + +struct sched_domain_topology_level { + sched_domain_mask_f mask; + sched_domain_flags_f sd_flags; + int flags; + int numa_level; + struct sd_data data; +}; + +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 tick_dep_bits { + TICK_DEP_BIT_POSIX_TIMER = 0, + TICK_DEP_BIT_PERF_EVENTS = 1, + TICK_DEP_BIT_SCHED = 2, + TICK_DEP_BIT_CLOCK_UNSTABLE = 3, + TICK_DEP_BIT_RCU = 4, + TICK_DEP_BIT_RCU_EXP = 5, +}; + +enum 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 swait_queue { + struct task_struct *task; + struct list_head task_list; +}; + +struct __cmp_key { + const struct cpumask *cpus; + struct cpumask ***masks; + int node; + int cpu; + int w; +}; + +struct asym_cap_data { + struct list_head link; + unsigned long capacity; + unsigned long cpus[0]; +}; + +struct s_data { + struct sched_domain * __attribute__((btf_type_tag("percpu"))) *sd; + struct root_domain *rd; +}; + +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 latch_tree_ops { + bool (*less)(struct latch_tree_node *, struct latch_tree_node *); + int (*comp)(void *, struct latch_tree_node *); +}; + +struct latch_tree_root { + seqcount_latch_t seq; + struct rb_root tree[2]; +}; + +struct mod_tree_root { + struct latch_tree_root root; + unsigned long addr_min; + unsigned long addr_max; +}; + +struct dma_chan___2 { + int lock; + const char *device_id; +}; + +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; +}; + +struct user_event_group { + char *system_name; + struct hlist_node node; + struct mutex reg_mutex; + struct hlist_head register_table[256]; +}; + +enum user_reg_flag { + USER_EVENT_REG_PERSIST = 1, + USER_EVENT_REG_MAX = 2, +}; + +struct user_event; + +struct user_event_enabler { + struct list_head mm_enablers_link; + struct user_event *event; + unsigned long addr; + unsigned long values; +}; + +struct user_event { + struct user_event_group *group; + struct tracepoint tracepoint; + struct trace_event_call call; + struct trace_event_class class; + struct dyn_event devent; + struct hlist_node node; + struct list_head fields; + struct list_head validators; + struct work_struct put_work; + refcount_t refcnt; + int min_size; + int reg_flags; + char status; +}; + +struct user_event_validator { + struct list_head user_event_link; + int offset; + int flags; +}; + +struct user_event_refs { + struct callback_head rcu; + int count; + struct user_event *events[0]; +}; + +struct user_reg { + __u32 size; + __u8 enable_bit; + __u8 enable_size; + __u16 flags; + __u64 enable_addr; + __u64 name_args; + __u32 write_index; +} __attribute__((packed)); + +struct user_event_enabler_fault { + struct work_struct work; + struct user_event_mm *mm; + struct user_event_enabler *enabler; + int attempt; +}; + +struct user_unreg { + __u32 size; + __u8 disable_bit; + __u8 __reserved; + __u16 __reserved2; + __u64 disable_addr; +}; + +struct user_event_file_info { + struct user_event_group *group; + struct user_event_refs *refs; +}; + +typedef void (*user_event_func_t)(struct user_event *, struct iov_iter *, void *, bool *); + +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 follow_page_context { + struct dev_pagemap *pgmap; + unsigned int page_mask; +}; + +struct core_name { + char *corename; + int used; + int size; +}; + +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, +}; + +typedef unsigned long long llu; + +struct fatent_ra { + sector_t cur; + sector_t limit; + unsigned int ra_blocks; + sector_t ra_advance; + sector_t ra_next; + sector_t ra_limit; +}; + +struct fstrim_range { + __u64 start; + __u64 len; + __u64 minlen; +}; + +enum { + 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, +}; + +struct nfs4_cached_acl { + enum nfs4_acl_type type; + int cached; + size_t len; 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 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 bpf_ringbuf_hdr { - u32 len; - u32 pg_off; +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; }; -typedef void (*btf_trace_mm_vmscan_kswapd_sleep)(void *, int); +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 (*btf_trace_mm_vmscan_kswapd_wake)(void *, int, int, int); +struct nfs4_exception { + struct nfs4_state *state; + struct inode *inode; + nfs4_stateid *stateid; + long timeout; + unsigned short retrans; + unsigned char task_is_privileged: 1; + unsigned char delay: 1; + unsigned char recovering: 1; + unsigned char retry: 1; + bool interruptible; +}; -typedef void (*btf_trace_mm_vmscan_wakeup_kswapd)(void *, int, int, int, gfp_t); +struct nfs4_call_sync_data { + const struct nfs_server *seq_server; + struct nfs4_sequence_args *seq_args; + struct nfs4_sequence_res *seq_res; +}; -typedef void (*btf_trace_mm_vmscan_direct_reclaim_begin)(void *, int, gfp_t); +struct nfs_netns_client { + struct kobject kobject; + struct kobject nfs_net_kobj; + struct net *net; + const char __attribute__((btf_type_tag("rcu"))) *identifier; +}; -typedef void (*btf_trace_mm_vmscan_direct_reclaim_end)(void *, unsigned long); +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; +}; -typedef void (*btf_trace_mm_shrink_slab_start)(void *, struct shrinker *, struct shrink_control *, long, unsigned long, unsigned long long, unsigned long, int); +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; +}; -typedef void (*btf_trace_mm_shrink_slab_end)(void *, struct shrinker *, int, int, long, long, long); +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; +}; -typedef unsigned int isolate_mode_t; +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; +}; -typedef void (*btf_trace_mm_vmscan_lru_isolate)(void *, int, int, unsigned long, unsigned long, unsigned long, unsigned long, isolate_mode_t, int); +struct nfs4_open_createattrs { + struct nfs4_label *label; + struct iattr *sattr; + const __u32 verf[2]; +}; -typedef void (*btf_trace_mm_vmscan_write_folio)(void *, struct folio *); +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 reclaim_stat; +struct nfs_release_lockowner_res { + struct nfs4_sequence_res seq_res; +}; -typedef void (*btf_trace_mm_vmscan_lru_shrink_inactive)(void *, int, unsigned long, unsigned long, struct reclaim_stat *, int, int); +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 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; +struct nfs4_renewdata { + struct nfs_client *client; + unsigned long timestamp; }; -typedef void (*btf_trace_mm_vmscan_lru_shrink_active)(void *, int, unsigned long, unsigned long, unsigned long, unsigned long, int, int); +struct dotl_openflag_map { + int open_flag; + int dotl_flag; +}; -typedef void (*btf_trace_mm_vmscan_node_reclaim_begin)(void *, int, int, gfp_t); +struct dotl_iattr_map { + int iattr_valid; + int p9_iattr_valid; +}; -typedef void (*btf_trace_mm_vmscan_node_reclaim_end)(void *, unsigned long); +struct lskcipher_alg { + int (*setkey)(struct crypto_lskcipher *, const u8 *, unsigned int); + int (*encrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, bool); + int (*decrypt)(struct crypto_lskcipher *, const u8 *, u8 *, unsigned int, u8 *, bool); + int (*init)(struct crypto_lskcipher *); + void (*exit)(struct crypto_lskcipher *); + struct skcipher_alg_common co; +}; -typedef void (*btf_trace_mm_vmscan_throttled)(void *, int, int, int, int); +struct lskcipher_instance { + void (*free)(struct lskcipher_instance *); + union { + struct { + char head[56]; + struct crypto_instance base; + } s; + struct lskcipher_alg alg; + }; +}; -enum pgdat_flags { - PGDAT_DIRTY = 0, - PGDAT_WRITEBACK = 1, - PGDAT_RECLAIM_LOCKED = 2, +struct crypto_lskcipher_spawn { + struct crypto_spawn base; }; -enum folio_references { - FOLIOREF_RECLAIM = 0, - FOLIOREF_RECLAIM_CLEAN = 1, - FOLIOREF_KEEP = 2, - FOLIOREF_ACTIVATE = 3, +struct ahash_alg { + int (*init)(struct ahash_request *); + int (*update)(struct ahash_request *); + int (*final)(struct ahash_request *); + int (*finup)(struct ahash_request *); + int (*digest)(struct ahash_request *); + int (*export)(struct ahash_request *, void *); + int (*import)(struct ahash_request *, const void *); + int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int); + int (*init_tfm)(struct crypto_ahash *); + void (*exit_tfm)(struct crypto_ahash *); + int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *); + struct hash_alg_common halg; +}; + +struct ahash_instance { + void (*free)(struct ahash_instance *); + union { + struct { + char head[96]; + struct crypto_instance base; + } s; + struct ahash_alg alg; + }; +}; + +struct crypto_hash_walk { + char *data; + unsigned int offset; + unsigned int flags; + struct page *pg; + unsigned int entrylen; + unsigned int total; + struct scatterlist *sg; +}; + +struct crypto_shash_spawn { + struct crypto_spawn base; +}; + +struct hmac_ctx { + struct crypto_shash *hash; + u8 pads[0]; +}; + +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 sbq_wait { + struct sbitmap_queue *sbq; + struct wait_queue_entry wait; +}; + +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_rename { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; +}; + +struct io_unlink { + struct file *file; + int dfd; + int flags; + struct filename *filename; +}; + +struct io_mkdir { + struct file *file; + int dfd; + umode_t mode; + struct filename *filename; +}; + +struct io_link { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; +}; + +struct 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 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_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; +}; + +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 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; +}; + +struct bus_attribute { + struct attribute attr; + ssize_t (*show)(const struct bus_type *, char *); + ssize_t (*store)(const struct bus_type *, const char *, size_t); +}; + +enum pcie_reset_state { + pcie_deassert_reset = 1, + pcie_warm_reset = 2, + pcie_hot_reset = 3, +}; + +enum pcie_link_width { + PCIE_LNK_WIDTH_RESRV = 0, + PCIE_LNK_X1 = 1, + PCIE_LNK_X2 = 2, + PCIE_LNK_X4 = 4, + PCIE_LNK_X8 = 8, + PCIE_LNK_X12 = 12, + PCIE_LNK_X16 = 16, + PCIE_LNK_X32 = 32, + PCIE_LNK_WIDTH_UNKNOWN = 255, +}; + +struct pci_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 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_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_mem_mapping; + +struct acpi_mem_space_context { + u32 length; + acpi_physical_address address; + struct acpi_mem_mapping *cur_mm; + struct acpi_mem_mapping *first_mm; +}; + +struct acpi_mem_mapping { + acpi_physical_address physical_address; + u8 *logical_address; + acpi_size length; + struct acpi_mem_mapping *next_mm; +}; + +struct acpi_pci_id { + u16 segment; + u16 bus; + u16 device; + u16 function; +}; + +struct acpi_data_table_mapping { + void *pointer; }; 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, + VP_MSIX_CONFIG_VECTOR = 0, + VP_MSIX_VQ_VECTOR = 1, }; -enum zone_watermarks { - WMARK_MIN = 0, - WMARK_LOW = 1, - WMARK_HIGH = 2, - WMARK_PROMO = 3, - NR_WMARK = 4, +struct lpss8250; + +struct lpss8250_board { + unsigned long freq; + unsigned int base_baud; + int (*setup)(struct lpss8250 *, struct uart_port *); + void (*exit)(struct lpss8250 *); }; -enum lruvec_flags { - LRUVEC_CGROUP_CONGESTED = 0, - LRUVEC_NODE_CONGESTED = 1, +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; }; -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, +struct ports_driver_data { + struct dentry *debugfs_dir; + struct list_head portdevs; + struct list_head consoles; }; -enum scan_balance { - SCAN_EQUAL = 0, - SCAN_FRACT = 1, - SCAN_ANON = 2, - SCAN_FILE = 3, +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; }; -enum zone_flags { - ZONE_BOOSTED_WATERMARK = 0, - ZONE_RECLAIM_ACTIVE = 1, +struct console___2 { + struct list_head list; + struct hvc_struct *hvc; + struct winsize ws; + u32 vtermno; }; -struct trace_event_raw_mm_vmscan_kswapd_sleep { - struct trace_entry ent; - int nid; - char __data[0]; +struct port_stats { + unsigned long bytes_sent; + unsigned long bytes_received; + unsigned long bytes_discarded; }; -struct trace_event_raw_mm_vmscan_kswapd_wake { - struct trace_entry ent; - int nid; - int zid; - int order; - char __data[0]; -}; +struct ports_device; -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 port_buffer; -struct trace_event_raw_mm_vmscan_direct_reclaim_begin_template { - struct trace_entry ent; - int order; - unsigned long gfp_flags; - char __data[0]; +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 trace_event_raw_mm_vmscan_direct_reclaim_end_template { - struct trace_entry ent; - unsigned long nr_reclaimed; - char __data[0]; +struct virtio_console_control { + __virtio32 id; + __virtio16 event; + __virtio16 value; }; -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 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 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 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 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 sg_list { + unsigned int n; + unsigned int size; + size_t len; + struct scatterlist *sg; }; -struct trace_event_raw_mm_vmscan_write_folio { - struct trace_entry ent; - unsigned long pfn; - int reclaim_flags; - char __data[0]; +enum iommufd_hwpt_alloc_flags { + IOMMU_HWPT_ALLOC_NEST_PARENT = 1, + IOMMU_HWPT_ALLOC_DIRTY_TRACKING = 2, }; -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]; +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 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 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; + u32 flags; + int ats_qdep; + u8 ats_enabled: 1; + u8 pri_enabled: 1; + u8 pasid_enabled: 1; + u8 pri_tlp: 1; + u8 ppr: 1; + bool use_vapic; + bool defer_attach; + struct ratelimit_state rs; }; -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 iommu_cmd { + u32 data[4]; }; -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 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 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; +struct drm_format_modifier { + __u64 formats; + __u32 offset; + __u32 pad; + __u64 modifier; }; -typedef enum { - PAGE_KEEP = 0, - PAGE_ACTIVATE = 1, - PAGE_SUCCESS = 2, - PAGE_CLEAN = 3, -} pageout_t; - -struct trace_event_data_offsets_mm_vmscan_kswapd_sleep {}; - -struct trace_event_data_offsets_mm_vmscan_kswapd_wake {}; +struct drm_format_modifier_blob { + __u32 version; + __u32 flags; + __u32 count_formats; + __u32 formats_offset; + __u32 count_modifiers; + __u32 modifiers_offset; +}; -struct trace_event_data_offsets_mm_vmscan_wakeup_kswapd {}; +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 trace_event_data_offsets_mm_vmscan_direct_reclaim_begin_template {}; +struct drm_mode_get_plane_res { + __u64 plane_id_ptr; + __u32 count_planes; +}; -struct trace_event_data_offsets_mm_vmscan_direct_reclaim_end_template {}; +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 trace_event_data_offsets_mm_shrink_slab_start {}; +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 trace_event_data_offsets_mm_shrink_slab_end {}; +struct drm_mode_cursor { + __u32 flags; + __u32 crtc_id; + __s32 x; + __s32 y; + __u32 width; + __u32 height; + __u32 handle; +}; -struct trace_event_data_offsets_mm_vmscan_lru_isolate {}; +struct drm_mode_crtc_page_flip_target { + __u32 crtc_id; + __u32 fb_id; + __u32 flags; + __u32 sequence; + __u64 user_data; +}; -struct trace_event_data_offsets_mm_vmscan_write_folio {}; +struct drm_fb_helper_funcs; -struct trace_event_data_offsets_mm_vmscan_lru_shrink_inactive {}; +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; +}; -struct trace_event_data_offsets_mm_vmscan_lru_shrink_active {}; +struct drm_fb_helper_surface_size; -struct trace_event_data_offsets_mm_vmscan_node_reclaim_begin {}; +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 trace_event_data_offsets_mm_vmscan_throttled {}; +struct drm_fb_helper_surface_size { + u32 fb_width; + u32 fb_height; + u32 surface_width; + u32 surface_height; + u32 surface_bpp; + u32 surface_depth; +}; -struct fileattr { - u32 flags; - u32 fsx_xflags; - u32 fsx_extsize; - u32 fsx_nextents; - u32 fsx_projid; - u32 fsx_cowextsize; - bool flags_valid: 1; - bool fsx_valid: 1; +struct drm_i915_getparam { + __s32 param; + int __attribute__((btf_type_tag("user"))) *value; }; -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)); +typedef struct drm_i915_getparam drm_i915_getparam_t; -struct file_clone_range { - __s64 src_fd; - __u64 src_offset; - __u64 src_length; - __u64 dest_offset; +enum { + DEBUG_FENCE_IDLE = 0, + DEBUG_FENCE_NOTIFY = 1, }; -struct fsxattr { - __u32 fsx_xflags; - __u32 fsx_extsize; - __u32 fsx_nextents; - __u32 fsx_projid; - __u32 fsx_cowextsize; - unsigned char fsx_pad[8]; +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 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 drm_info_list { + const char *name; + int (*show)(struct seq_file *, void *); + u32 driver_features; + void *data; }; -struct file_dedupe_range_info { - __s64 dest_fd; - __u64 dest_offset; - __u64 bytes_deduped; - __s32 status; - __u32 reserved; +struct drm_info_node { + struct drm_minor *minor; + const struct drm_info_list *info_ent; + struct list_head list; + struct dentry *dent; }; -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 ia_constants { + unsigned int min_gpu_freq; + unsigned int max_gpu_freq; + unsigned int min_ring_freq; + unsigned int max_ia_freq; }; -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 clflush { + struct dma_fence_work base; + struct drm_i915_gem_object *obj; }; -enum { - QUOTA_NL_C_UNSPEC = 0, - QUOTA_NL_C_WARNING = 1, - __QUOTA_NL_C_MAX = 2, +struct skl_wrpll_params { + u32 dco_fraction; + u32 dco_integer; + u32 qdiv_ratio; + u32 qdiv_mode; + u32 kdiv; + u32 pdiv; + u32 central_freq; }; -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, +struct icl_combo_pll_params { + int clock; + struct skl_wrpll_params wrpll; }; -typedef __kernel_uid32_t qid_t; - -struct move_extent { - __u32 reserved; - __u32 donor_fd; - __u64 orig_start; - __u64 donor_start; - __u64 len; - __u64 moved_len; +struct skl_dpll_regs { + i915_reg_t ctl; + i915_reg_t cfgcr1; + i915_reg_t cfgcr2; }; -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 skl_wrpll_context { + u64 min_deviation; + u64 central_freq; + u64 dco_freq; + unsigned int p; }; -struct ext4_new_group_data { - __u32 group; - __u64 block_bitmap; - __u64 inode_bitmap; - __u64 inode_table; - __u32 blocks_count; - __u16 reserved_blocks; - __u16 mdata_blocks; - __u32 free_clusters_count; +struct hsw_wrpll_rnp { + unsigned int p; + unsigned int n2; + unsigned int r2; }; -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 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; }; -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 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; }; -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 pmdemand_params { + u16 qclk_gv_bw; + u8 voltage_index; + u8 qclk_gv_index; + u8 active_pipes; + u8 active_dbufs; + u8 active_phys; + u8 plls; + u16 cdclk_freq_mhz; + u16 ddiclk_max; + u8 scalers; }; -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 intel_pmdemand_state { + struct intel_global_state base; + int ddi_clocks[4]; + u16 active_combo_phys_mask; + struct pmdemand_params params; }; -struct fsuuid { - __u32 fsu_len; - __u32 fsu_flags; - __u8 fsu_uuid[0]; +struct intel_dbuf_bw { + unsigned int max_bw[4]; + u8 active_planes[4]; }; -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 { - Opt_block = 0, - Opt_check_r = 1, - Opt_check_s = 2, - Opt_cruft = 3, - Opt_gid___3 = 4, - Opt_ignore = 5, - Opt_iocharset = 6, - Opt_map_a = 7, - Opt_map_n = 8, - Opt_map_o = 9, - Opt_mode___3 = 10, - Opt_nojoliet = 11, - Opt_norock = 12, - Opt_sb___2 = 13, - Opt_session = 14, - Opt_uid___3 = 15, - Opt_unhide = 16, - Opt_utf8 = 17, - Opt_err___6 = 18, - Opt_nocompress = 19, - Opt_hide = 20, - Opt_showassoc = 21, - Opt_dmode = 22, - Opt_overriderockperm = 23, +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_point_peakbw; + u16 qgv_points_mask; + int min_cdclk[4]; + unsigned int data_rate[4]; + u8 num_active_planes[4]; }; -struct isofs_iget5_callback_data { - unsigned long block; - unsigned long offset; +struct component_ops { + int (*bind)(struct device *, struct device *, void *); + void (*unbind)(struct device *, struct device *, void *); }; -struct iso_volume_descriptor { - __u8 type[1]; - char id[5]; - __u8 version[1]; - __u8 data[2041]; -}; +struct i915_pxp_component_ops; -struct hs_volume_descriptor { - __u8 foo[8]; - __u8 type[1]; - char id[5]; - __u8 version[1]; - __u8 data[2033]; +struct i915_pxp_component { + struct device *tee_dev; + const struct i915_pxp_component_ops *ops; + struct mutex mutex; }; -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 i915_pxp_component_ops { + struct module *owner; + int (*send)(struct device *, const void *, size_t, unsigned long); + int (*recv)(struct device *, void *, size_t, unsigned long); + ssize_t (*gsc_command)(struct device *, u8, u32, struct scatterlist *, size_t, struct scatterlist *); }; -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 i915_audio_component { + struct drm_audio_component base; + int aud_sample_rate[9]; }; -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 pxp42_create_arb_in { + struct pxp_cmd_header header; + u32 protection_mode; + u32 session_id; }; -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 pxp42_create_arb_out { + struct pxp_cmd_header header; }; -struct nfs_referral_count { - struct list_head list; - const struct task_struct *task; - unsigned int referral_count; +struct pxp42_inv_stream_key_in { + struct pxp_cmd_header header; + u32 rsvd[3]; }; -struct nfs_clone_mount { - struct super_block *sb; - struct dentry *dentry; - struct nfs_fattr *fattr; - unsigned int inherited_bsize; +struct pxp42_inv_stream_key_out { + struct pxp_cmd_header header; + u32 rsvd; }; -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; - struct xprtsec_parms xprtsec; - 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; +struct cb_id { + __u32 idx; + __u32 val; }; -struct crypto_istat_aead { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t err_cnt; +struct local_event { + local_lock_t lock; + __u32 count; }; -struct ccm_instance_ctx { - struct crypto_skcipher_spawn ctr; - struct crypto_ahash_spawn mac; +enum proc_cn_event { + PROC_EVENT_NONE = 0, + PROC_EVENT_FORK = 1, + PROC_EVENT_EXEC = 2, + PROC_EVENT_UID = 4, + PROC_EVENT_GID = 64, + PROC_EVENT_SID = 128, + PROC_EVENT_PTRACE = 256, + PROC_EVENT_COMM = 512, + PROC_EVENT_NONZERO_EXIT = 536870912, + PROC_EVENT_COREDUMP = 1073741824, + PROC_EVENT_EXIT = 2147483648, }; -struct 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; - }; +enum proc_cn_mcast_op { + PROC_CN_MCAST_LISTEN = 1, + PROC_CN_MCAST_IGNORE = 2, }; -struct cbcmac_tfm_ctx { - struct crypto_cipher *child; +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 cbcmac_desc_ctx { - unsigned int len; +struct exec_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; }; -struct crypto_ccm_ctx { - struct crypto_ahash *mac; - struct crypto_skcipher *ctr; +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 crypto_rfc4309_ctx { - struct crypto_aead *child; - u8 nonce[3]; +struct sid_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; }; -struct crypto_rfc4309_req_ctx { - struct scatterlist src[3]; - struct scatterlist dst[3]; - struct aead_request subreq; +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 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; +struct comm_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + char comm[16]; }; -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 coredump_proc_event { + __kernel_pid_t process_pid; + __kernel_pid_t process_tgid; + __kernel_pid_t parent_pid; + __kernel_pid_t parent_tgid; }; -struct msdos_partition { - u8 boot_ind; - u8 head; - u8 sector; - u8 cyl; - u8 sys_ind; - u8 end_head; - u8 end_sector; - u8 end_cyl; - __le32 start_sect; - __le32 nr_sects; +struct 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 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; +struct proc_event { + enum proc_cn_event what; + __u32 cpu; + __u64 timestamp_ns; 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; - }; + __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; }; -typedef struct { - struct folio *v; -} Sector; +struct cn_msg { + struct cb_id id; + __u32 seq; + __u32 ack; + __u16 len; + __u16 flags; + __u8 data[0]; +}; -enum { - IORING_MSG_DATA = 0, - IORING_MSG_SEND_FD = 1, +struct proc_input { + enum proc_cn_mcast_op mcast_op; + enum proc_cn_event event_type; }; -struct io_msg { - struct file *file; - struct file *src_file; - struct callback_head tw; - u64 user_data; - u32 len; - u32 cmd; - u32 src_fd; - union { - u32 dst_fd; - u32 cqe_flags; - }; - u32 flags; +struct builtin_fw { + char *name; + void *data; + unsigned long size; }; -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 node_attr { + struct device_attribute attr; + enum node_states state; }; -struct acpi_os_dpc { - acpi_osd_exec_callback function; - void *context; - struct work_struct work; +struct node_access_nodes { + struct device dev; + struct list_head list_node; + unsigned int access; }; -struct acpi_hp_work { - struct work_struct work; - struct acpi_device *adev; - u32 src; +enum spi_signal_type { + SPI_SIGNAL_UNKNOWN = 1, + SPI_SIGNAL_SE = 2, + SPI_SIGNAL_LVD = 3, + SPI_SIGNAL_HVD = 4, +}; + +enum scsi_devinfo_key { + SCSI_DEVINFO_GLOBAL = 0, + SCSI_DEVINFO_SPI = 1, +}; + +enum spi_compare_returns { + SPI_COMPARE_SUCCESS = 0, + SPI_COMPARE_FAILURE = 1, + SPI_COMPARE_SKIP_TEST = 2, }; enum { - MATCH_MTR = 0, - MATCH_MEQ = 1, - MATCH_MLE = 2, - MATCH_MLT = 3, - MATCH_MGE = 4, - MATCH_MGT = 5, + SPI_BLIST_NOIUS = 1, }; -struct sysrq_key_op { - void (* const handler)(int); - const char * const help_msg; - const char * const action_msg; - const int enable_mask; +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; }; -enum oom_constraint { - CONSTRAINT_NONE = 0, - CONSTRAINT_CPUSET = 1, - CONSTRAINT_MEMORY_POLICY = 2, - CONSTRAINT_MEMCG = 3, +struct spi_function_template; + +struct spi_internal { + struct scsi_transport_template t; + struct spi_function_template *f; }; -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 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 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 spi_host_attrs { + enum spi_signal_type signalling; }; -struct drm_dmi_panel_orientation_data { - int width; - int height; - const char * const *bios_dates; - int orientation; +struct work_queue_wrapper { + struct work_struct work; + struct scsi_device *sdev; }; -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 pcmcia_loop_mem { + struct pcmcia_device *p_dev; + void *priv_data; + int (*loop_tuple)(struct pcmcia_device *, tuple_t *, void *); }; -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 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 drm_encoder_slave; +struct pcmcia_loop_get { + size_t len; + cisdata_t **buf; +}; -struct drm_i2c_encoder_driver { - struct i2c_driver i2c_driver; - int (*encoder_init)(struct i2c_client *, struct drm_device *, struct drm_encoder_slave *); +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, }; -struct drm_encoder_slave_funcs; +typedef u32 usb_port_location_t; -struct drm_encoder_slave { - struct drm_encoder base; - const struct drm_encoder_slave_funcs *slave_funcs; - void *slave_priv; - void *bus_priv; +struct typec_connector; + +struct usb_port { + struct usb_device *child; + struct device dev; + struct usb_dev_state *port_owner; + struct usb_port *peer; + struct typec_connector *connector; + struct dev_pm_qos_request *req; + enum usb_port_connect_type connect_type; + enum usb_device_state state; + struct kernfs_node *state_kn; + usb_port_location_t location; + struct mutex status_lock; + u32 over_current_count; + u8 portnum; + u32 quirks; + unsigned int early_stop: 1; + unsigned int ignore_event: 1; + unsigned int is_superspeed: 1; + unsigned int usb3_lpm_u1_permit: 1; + unsigned int usb3_lpm_u2_permit: 1; }; -struct 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); +struct typec_connector { + void (*attach)(struct typec_connector *, struct device *); + void (*deattach)(struct typec_connector *, struct device *); }; -enum vga_switcheroo_state { - VGA_SWITCHEROO_OFF = 0, - VGA_SWITCHEROO_ON = 1, - VGA_SWITCHEROO_NOT_FOUND = 2, +struct usb_hub_status { + __le16 wHubStatus; + __le16 wHubChange; }; -enum vga_switcheroo_client_id { - VGA_SWITCHEROO_UNKNOWN_ID = 4096, - VGA_SWITCHEROO_IGD = 0, - VGA_SWITCHEROO_DIS = 1, - VGA_SWITCHEROO_MAX_CLIENTS = 2, +struct usb_port_status { + __le16 wPortStatus; + __le16 wPortChange; + __le32 dwExtPortStatus; }; -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 usb_hub_descriptor; + +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 drm_i915_gem_get_aperture { - __u64 aper_size; - __u64 aper_available_size; +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 ignore_entry { + u16 vid; + u16 pid; + u16 bcdmin; + u16 bcdmax; }; -struct drm_i915_gem_sw_finish { - __u32 handle; +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 drm_i915_gem_madvise { - __u32 handle; - __u32 madv; - __u32 retained; +struct kvm_clock_pairing { + __s64 sec; + __s64 nsec; + __u64 tsc; + __u32 flags; + __u32 pad[9]; }; -enum intel_sbi_destination { - SBI_ICLK = 0, - SBI_MPHY = 1, +struct dm_rq_target_io; + +struct dm_rq_clone_bio_info { + struct bio *orig; + struct dm_rq_target_io *tio; + struct bio clone; }; -struct iclkip_params { - u32 iclk_virtual_root_freq; - u32 iclk_pi_range; - u32 divsel; - u32 phaseinc; - u32 auxdiv; - u32 phasedir; - u32 desired_divisor; +struct dm_rq_target_io { + struct mapped_device *md; + struct dm_target *ti; + struct request *orig; + struct request *clone; + struct kthread_work work; + blk_status_t error; + union map_info info; + struct dm_stats_aux stats_aux; + unsigned long duration_jiffies; + unsigned int n_sectors; + unsigned int completed; }; -enum pm_qos_req_action { - PM_QOS_ADD_REQ = 0, - PM_QOS_UPDATE_REQ = 1, - PM_QOS_REMOVE_REQ = 2, +struct dmi_memdev_info { + const char *device; + const char *bank; + u64 size; + u16 handle; + u8 type; }; -typedef __u64 __virtio64; +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, +}; -typedef __u32 __virtio32; +struct dmi_device { + struct list_head list; + int type; + const char *name; + void *device_data; +}; -struct virtio_scsi_event { - __virtio32 event; - __u8 lun[8]; - __virtio32 reason; +struct dmi_dev_onboard { + struct dmi_device dev; + int instance; + int segment; + int bus; + int devfn; }; -struct virtio_scsi; +enum hid_bpf_prog_type { + HID_BPF_PROG_TYPE_UNDEF = -1, + HID_BPF_PROG_TYPE_DEVICE_EVENT = 0, + HID_BPF_PROG_TYPE_RDESC_FIXUP = 1, + HID_BPF_PROG_TYPE_MAX = 2, +}; -struct virtio_scsi_event_node { - struct virtio_scsi *vscsi; - struct virtio_scsi_event event; - struct work_struct work; +enum hid_bpf_attach_flags { + HID_BPF_FLAG_NONE = 0, + HID_BPF_FLAG_INSERT_HEAD = 1, + HID_BPF_FLAG_MAX = 2, }; -struct virtio_scsi_vq { - spinlock_t vq_lock; - struct virtqueue *vq; +struct hid_bpf_ctx { + __u32 index; + const struct hid_device *hid; + __u32 allocated_size; + enum hid_report_type report_type; + union { + __s32 retval; + __s32 size; + }; }; -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 hid_bpf_ctx_kern { + struct hid_bpf_ctx ctx; + u8 *data; }; -struct virtio_scsi_cmd_req { - __u8 lun[8]; - __virtio64 tag; - __u8 task_attr; - __u8 prio; - __u8 crn; - __u8 cdb[32]; +struct hid_class_descriptor { + __u8 bDescriptorType; + __le16 wDescriptorLength; } __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]; +struct hid_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdHID; + __u8 bCountryCode; + __u8 bNumDescriptors; + struct hid_class_descriptor desc[1]; } __attribute__((packed)); -struct virtio_scsi_ctrl_tmf_req { - __virtio32 type; - __virtio32 subtype; - __u8 lun[8]; - __virtio64 tag; +enum { + HDA_JACK_NOT_PRESENT = 0, + HDA_JACK_PRESENT = 1, + HDA_JACK_PHANTOM = 2, }; -struct virtio_scsi_ctrl_an_req { - __virtio32 type; - __u8 lun[8]; - __virtio32 event_requested; +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, }; -struct virtio_scsi_cmd_resp { - __virtio32 sense_len; - __virtio32 resid; - __virtio16 status_qualifier; - __u8 status; - __u8 response; - __u8 sense[96]; +enum { + AUTO_PIN_LINE_OUT = 0, + AUTO_PIN_SPEAKER_OUT = 1, + AUTO_PIN_HP_OUT = 2, }; -struct virtio_scsi_ctrl_tmf_resp { - __u8 response; +enum { + AC_JACK_PORT_COMPLEX = 0, + AC_JACK_PORT_NONE = 1, + AC_JACK_PORT_FIXED = 2, + AC_JACK_PORT_BOTH = 3, }; -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: 64; -} __attribute__((packed)); +struct hda_jack_callback; -struct sky2_stat { - char name[32]; - u16 offset; +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; }; -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, +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; }; -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, +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; }; -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, +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; }; -enum { - CFG_CHIP_R_MSK = 240, - CFG_DIS_M2_CLK = 2, - CFG_SNG_MAC = 1, +struct hda_jack_keymap { + enum snd_jack_types type; + int key; }; 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, + 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, }; -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, +struct gnet_stats_rate_est64 { + __u64 bps; + __u64 pps; }; -enum yukon_ex_rev { - CHIP_REV_YU_EX_A0 = 1, - CHIP_REV_YU_EX_B0 = 2, +struct gnet_stats_basic { + __u64 bytes; + __u32 packets; }; -enum yukon_ec_rev { - CHIP_REV_YU_EC_A1 = 0, - CHIP_REV_YU_EC_A2 = 1, - CHIP_REV_YU_EC_A3 = 2, +struct gnet_stats_rate_est { + __u32 bps; + __u32 pps; }; -enum yukon_fe_p_rev { - CHIP_REV_YU_FE2_A0 = 0, +enum __sk_action { + __SK_DROP = 0, + __SK_PASS = 1, + __SK_REDIRECT = 2, + __SK_NONE = 3, }; -enum yukon_supr_rev { - CHIP_REV_YU_SU_A0 = 0, - CHIP_REV_YU_SU_B0 = 1, - CHIP_REV_YU_SU_B1 = 3, +enum sk_psock_state_bits { + SK_PSOCK_TX_ENABLED = 0, + SK_PSOCK_RX_STRP_ENABLED = 1, }; enum { - CFG_LED_MODE_MSK = 28, - CFG_LINK_2_AVAIL = 2, - CFG_LINK_1_AVAIL = 1, + BPF_F_INGRESS = 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, +struct sk_psock_link { + struct list_head list; + struct bpf_map *map; + void *link_raw; }; -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, +struct strp_msg { + int full_len; + int offset; }; -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, +struct tls_strparser { + struct sock *sk; + u32 mark: 8; + u32 stopped: 1; + u32 copy_mode: 1; + u32 mixed_decrypted: 1; + u32 msg_ready: 1; + struct strp_msg stm; + struct sk_buff *anchor; + struct work_struct work; }; -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, +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; }; -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, +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; }; -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, +struct cipher_context { + char iv[20]; + char rec_seq[8]; }; -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, +struct tls_crypto_info { + __u16 version; + __u16 cipher_type; }; -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, +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]; }; -enum { - GMLC_RST_CLR = 2, - GMLC_RST_SET = 1, +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]; }; -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, +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]; }; -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, +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]; }; -enum { - PEX_RD_ACCESS = -2147483648, - PEX_DB_ACCESS = 1073741824, +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]; }; -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, +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; + }; }; -enum yukon_prm_rev { - CHIP_REV_YU_PRM_Z1 = 1, - CHIP_REV_YU_PRM_A0 = 2, +struct tls_context { + struct tls_prot_info prot_info; + u8 tx_conf: 3; + u8 rx_conf: 3; + u8 zerocopy_sendfile: 1; + u8 rx_no_pad: 1; + int (*push_pending_record)(struct sock *, int); + void (*sk_write_space)(struct sock *); + void *priv_ctx_tx; + void *priv_ctx_rx; + struct net_device __attribute__((btf_type_tag("rcu"))) *netdev; + struct cipher_context tx; + struct cipher_context rx; + struct scatterlist *partially_sent_record; + u16 partially_sent_offset; + bool splicing_pages; + bool pending_open_record_frags; + struct mutex tx_lock; + unsigned long flags; + struct proto *sk_proto; + struct sock *sk; + void (*sk_destruct)(struct sock *); + union tls_crypto_context crypto_send; + union tls_crypto_context crypto_recv; + struct list_head list; + refcount_t refcount; + struct callback_head rcu; }; 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, + 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, }; -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, +struct linkinfo_reply_data { + struct ethnl_reply_data base; + struct ethtool_link_ksettings ksettings; + struct ethtool_link_settings *lsettings; }; enum { - TIM_START = 4, - TIM_STOP = 2, - TIM_CLR_IRQ = 1, + 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 { - B28_DPT_INI = 3584, - B28_DPT_VAL = 3588, - B28_DPT_CTRL = 3592, - B28_DPT_TST = 3594, + 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, }; -enum { - DPT_START = 2, - DPT_STOP = 1, +struct mm_reply_data { + struct ethnl_reply_data base; + struct ethtool_mm_state state; + struct ethtool_mm_stats stats; }; -enum { - GMAC_TI_ST_VAL = 3604, - GMAC_TI_ST_CTRL = 3608, - GMAC_TI_ST_TST = 3610, +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 { - GMT_ST_START = 4, - GMT_ST_STOP = 2, - GMT_ST_CLR_IRQ = 1, +struct ipq { + struct inet_frag_queue q; + u8 ecn; + u16 max_df_size; + int iif; + unsigned int rid; + struct inet_peer *peer; }; -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, +struct devinet_sysctl_table { + struct ctl_table_header *sysctl_header; + struct ctl_table devinet_vars[34]; }; 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, + 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 { - RI_CLR_RD_PERR = 512, - RI_CLR_WR_PERR = 256, - RI_RST_CLR = 2, - RI_RST_SET = 1, + IFLA_INET_UNSPEC = 0, + IFLA_INET_CONF = 1, + __IFLA_INET_MAX = 2, }; -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, +struct ifaddrmsg { + __u8 ifa_family; + __u8 ifa_prefixlen; + __u8 ifa_flags; + __u8 ifa_scope; + __u32 ifa_index; }; -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, +struct ifa_cacheinfo { + __u32 ifa_prefered; + __u32 ifa_valid; + __u32 cstamp; + __u32 tstamp; }; -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, +struct inet_fill_args { + u32 portid; + u32 seq; + int event; + unsigned int flags; + int netnsid; + int ifindex; }; -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, +struct netconfmsg { + __u8 ncm_family; }; -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, +struct in_validator_info { + __be32 ivi_addr; + struct in_device *ivi_dev; + struct netlink_ext_ack *extack; }; -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, +struct ping_iter_state { + struct seq_net_private p; + int bucket; + sa_family_t family; }; -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, +struct pingfakehdr { + struct icmphdr icmph; + struct msghdr *msg; + sa_family_t family; + __wsum wcheck; }; -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, +struct ip_esp_hdr { + __be32 spi; + __be32 seq_no; + __u8 enc_data[0]; }; -enum { - GM_RXCR_UCF_ENA = 32768, - GM_RXCR_MCF_ENA = 16384, - GM_RXCR_CRC_DIS = 8192, - GM_RXCR_PASS_FC = 4096, +struct esp_skb_cb { + struct xfrm_skb_cb xfrm; + void *tmp; }; -enum { - BASE_GMAC_1 = 10240, - BASE_GMAC_2 = 14336, +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; }; -enum flow_control { - FC_NONE = 0, - FC_TX = 1, - FC_RX = 2, - FC_BOTH = 3, +struct esp_output_extra { + __be32 seqhi; + u32 esphoff; }; -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, +struct rpc_cred_cache { + struct hlist_head *hashtable; + unsigned int hashbits; + spinlock_t lock; }; 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, + 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, }; -enum { - MAC_TX_CLK_0_MHZ = 2, - MAC_TX_CLK_2_5_MHZ = 6, - MAC_TX_CLK_25_MHZ = 7, +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, + XPRT_TRANSPORT_TCP_TLS = 258, }; -enum { - PHY_M_PC_MAN_MDI = 0, - PHY_M_PC_MAN_MDIX = 1, - PHY_M_PC_ENA_AUTO = 3, +typedef struct xdr_netobj utf8string; + +typedef struct xdr_netobj gssx_buffer; + +struct gssx_option; + +struct gssx_option_array { + u32 count; + struct gssx_option *data; }; -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, +struct gssx_call_ctx { + utf8string locale; + gssx_buffer server_ctx; + struct gssx_option_array options; }; -enum { - PHY_M_FESC_DIS_WAIT = 4, - PHY_M_FESC_ENA_MCLK = 2, - PHY_M_FESC_SEL_CL_A = 1, +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; }; -enum { - PHY_M_PC_DIS_LINK_Pa = 32768, - PHY_M_PC_DSC_MSK = 28672, - PHY_M_PC_DOWN_S_ENA = 2048, +struct gssx_option { + gssx_buffer option; + gssx_buffer value; }; -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, +typedef struct xdr_netobj gssx_OID; + +struct gssx_name { + gssx_buffer display_name; }; -enum { - PHY_M_FIB_FORCE_LNK = 1024, - PHY_M_FIB_SIGD_POL = 512, - PHY_M_FIB_TX_DIS = 8, +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; }; -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, +struct gssx_cred_element; + +struct gssx_cred_element_array { + u32 count; + struct gssx_cred_element *data; }; -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, +struct gssx_cred { + gssx_name desired_name; + struct gssx_cred_element_array elements; + gssx_buffer cred_handle_reference; + u32 needs_release; }; -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, +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; }; -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, +struct gssx_cb { + u64 initiator_addrtype; + gssx_buffer initiator_address; + u64 acceptor_addrtype; + gssx_buffer acceptor_address; + gssx_buffer application_data; }; -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, +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; }; -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, +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 { - PHY_CT_SP1000 = 64, - PHY_CT_SP100 = 8192, - PHY_CT_SP10 = 0, +enum ieee80211_offload_flags { + IEEE80211_OFFLOAD_ENCAP_ENABLED = 1, + IEEE80211_OFFLOAD_ENCAP_4ADDR = 2, + IEEE80211_OFFLOAD_DECAP_ENABLED = 4, }; -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 ieee80211_vht_actioncode { + WLAN_VHT_ACTION_COMPRESSED_BF = 0, + WLAN_VHT_ACTION_GROUPID_MGMT = 1, + WLAN_VHT_ACTION_OPMODE_NOTIF = 2, }; -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, +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 { - BLINK_42MS = 0, - BLINK_84MS = 1, - BLINK_170MS = 2, - BLINK_340MS = 3, - BLINK_670MS = 4, +enum dns_payload_content_type { + DNS_PAYLOAD_IS_SERVER_LIST = 0, }; -enum { - PHY_M_FELP_LED2_MSK = 3840, - PHY_M_FELP_LED1_MSK = 240, - PHY_M_FELP_LED0_MSK = 15, +enum dns_lookup_status { + DNS_LOOKUP_NOT_DONE = 0, + DNS_LOOKUP_GOOD = 1, + DNS_LOOKUP_GOOD_WITH_BAD = 2, + DNS_LOOKUP_BAD = 3, + DNS_LOOKUP_GOT_NOT_FOUND = 4, + DNS_LOOKUP_GOT_LOCAL_FAILURE = 5, + DNS_LOOKUP_GOT_TEMP_FAILURE = 6, + DNS_LOOKUP_GOT_NS_FAILURE = 7, + NR__dns_lookup_status = 8, }; 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, + dns_key_data = 0, + dns_key_error = 1, }; -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, +struct dns_payload_header { + __u8 zero; + __u8 content; + __u8 version; }; -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, +struct dns_server_list_v1_header { + struct dns_payload_header hdr; + __u8 source; + __u8 status; + __u8 nr_servers; }; -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, +struct irq_info { + u8 bus; + u8 devfn; + struct { + u8 link; + u16 bitmap; + } __attribute__((packed)) irq[4]; + u8 slot; + u8 rfu; }; -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, +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 slots[0]; }; -enum led_mode { - MO_LED_NORM = 0, - MO_LED_BLINK = 1, - MO_LED_OFF = 2, - MO_LED_ON = 3, +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); }; -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, +struct irq_router_handler { + u16 vendor; + int (*probe)(struct irq_router *, struct pci_dev *, u16); }; -enum { - PHY_ADDR_MARV = 0, +struct irt_routing_table { + u32 signature; + u8 size; + u8 used; + u16 exclusive_irqs; + struct irq_info slots[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, +struct trampoline_header { + u64 start; + u64 efer; + u32 cr4; + u32 flags; + u32 lock; }; -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 x86_hardware_subarch { + X86_SUBARCH_PC = 0, + X86_SUBARCH_LGUEST = 1, + X86_SUBARCH_XEN = 2, + X86_SUBARCH_INTEL_MID = 3, + X86_SUBARCH_CE4100 = 4, + X86_NR_SUBARCHS = 5, }; -enum { - 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, +struct boot_params_to_save { + unsigned int start; + unsigned int len; }; -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 x86_legacy_i8042_state { + X86_LEGACY_I8042_PLATFORM_ABSENT = 0, + X86_LEGACY_I8042_FIRMWARE_ABSENT = 1, + X86_LEGACY_I8042_EXPECTED_PRESENT = 2, }; -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 show_regs_mode { + SHOW_REGS_SHORT = 0, + SHOW_REGS_USER = 1, + SHOW_REGS_ALL = 2, }; -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 which_selector { + FS = 0, + GS = 1, }; -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, +struct x86_init_resources { + void (*probe_roms)(); + void (*reserve_resources)(); + char * (*memory_setup)(); }; -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, +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)(); }; -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, +struct x86_init_oem { + void (*arch_setup)(); + void (*banner)(); }; -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, +struct x86_init_paging { + void (*pagetable_init)(); }; -enum { - PREF_UNIT_OP_ON = 8, - PREF_UNIT_OP_OFF = 4, - PREF_UNIT_RST_CLR = 2, - PREF_UNIT_RST_SET = 1, +struct x86_init_timers { + void (*setup_percpu_clockev)(); + void (*timer_init)(); + void (*wallclock_init)(); }; -enum { - PHY_M_PC_COP_TX_DIS = 8, - PHY_M_PC_POW_D_ENA = 4, +struct x86_init_iommu { + int (*iommu_init)(); }; -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, +struct x86_init_pci { + int (*arch_init)(); + int (*init)(); + void (*init_irq)(); + void (*fixup_irqs)(); }; -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, +struct x86_init_acpi { + void (*set_root_pointer)(u64); + u64 (*get_root_pointer)(); + void (*reduced_hw_early_init)(); }; -enum { - Q_R1 = 0, - Q_R2 = 128, - Q_XS1 = 512, - Q_XA1 = 640, - Q_XS2 = 768, - Q_XA2 = 896, +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; }; -enum { - F_TX_CHK_AUTO_OFF = -2147483648, - F_TX_CHK_AUTO_ON = 1073741824, - F_M_RX_RAM_DIS = 16777216, +struct x86_cpuinit_ops { + void (*setup_percpu_clockev)(); + void (*early_percpu_clock_init)(); + void (*fixup_cpu_id)(struct cpuinfo_x86 *, int); + bool parallel_bringup; }; -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, +struct x86_legacy_devices { + int pnpbios; }; -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, +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; }; -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, +struct x86_guest { + bool (*enc_status_change_prepare)(unsigned long, int, bool); + bool (*enc_status_change_finish)(unsigned long, int, bool); + bool (*enc_tlb_flush_required)(bool); + bool (*enc_cache_flush_required)(); }; -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, +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; }; -enum { - GM_PAR_MIB_CLR = 32, - GM_PAR_MIB_TST = 16, +struct x86_apic_ops { + unsigned int (*io_apic_read)(unsigned int, unsigned int); + void (*restore)(); }; -enum { - GM_TXCR_FORCE_JAM = 32768, - GM_TXCR_CRC_DIS = 16384, - GM_TXCR_PAD_DIS = 8192, - GM_TXCR_COL_THR_MSK = 7168, +struct setup_data_node { + u64 paddr; + u32 type; + u32 len; }; -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, +struct pt_regs_offset { + const char *name; + int offset; }; -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 x86_regset_32 { + REGSET32_GENERAL = 0, + REGSET32_FP = 1, + REGSET32_XFP = 2, + REGSET32_XSTATE = 3, + REGSET32_TLS = 4, + REGSET32_IOPERM = 5, }; -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 x86_regset_64 { + REGSET64_GENERAL = 0, + REGSET64_FP = 1, + REGSET64_IOPERM = 2, + REGSET64_XSTATE = 3, + REGSET64_SSP = 4, }; -enum { - TX_DYN_WM_ENA = 3, +struct cpuid_regs { + u32 eax; + u32 ebx; + u32 ecx; + u32 edx; }; -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, +struct cpuid_regs_done { + struct cpuid_regs regs; + struct completion done; }; -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, +struct numa_memblk { + u64 start; + u64 end; + int nid; }; -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, +struct numa_meminfo { + int nr_blks; + struct numa_memblk blk[128]; }; -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, +struct memblock_type { + unsigned long cnt; + unsigned long max; + phys_addr_t total_size; + struct memblock_region *regions; + char *name; }; -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, +struct taint_flag { + char c_true; + char c_false; + bool module; }; -enum { - UDPTCP = 1, - CALSUM = 2, - WR_SUM = 4, - INIT_SUM = 8, - LOCK_SUM = 16, - INS_VLAN = 32, - EOP = 128, +enum con_flush_mode { + CONSOLE_FLUSH_PENDING = 0, + CONSOLE_REPLAY_ALL = 1, }; -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 ftrace_dump_mode { + DUMP_NONE = 0, + DUMP_ALL = 1, + DUMP_ORIG = 2, }; -enum { - LINKLED_OFF = 1, - LINKLED_ON = 2, - LINKLED_LINKSYNC_OFF = 4, - LINKLED_LINKSYNC_ON = 8, - LINKLED_BLINK_OFF = 16, - LINKLED_BLINK_ON = 32, +struct warn_args { + const char *fmt; + va_list args; }; -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, +struct kallsym_iter { + loff_t pos; + loff_t pos_mod_end; + loff_t pos_ftrace_mod_end; + loff_t pos_bpf_end; + unsigned long value; + unsigned int nameoff; + char type; + char name[512]; + char module_name[56]; + int exported; + int show_value; }; -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, +struct bpf_iter__ksym { + union { + struct bpf_iter_meta *meta; + }; + union { + struct kallsym_iter *ksym; + }; }; -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 trace_mark { + unsigned long long val; + char sym; }; -struct sky2_status_le; +enum trace_iter_flags { + TRACE_FILE_LAT_FMT = 1, + TRACE_FILE_ANNOTATE = 2, + TRACE_FILE_TIME_IN_NS = 4, +}; -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 bputs_entry { + struct trace_entry ent; + unsigned long ip; + const char *str; }; -struct sky2_status_le { - __le32 status; - __le16 length; - u8 css; - u8 opcode; +struct bprint_entry { + struct trace_entry ent; + unsigned long ip; + const char *fmt; + u32 buf[0]; }; -struct sky2_stats { - struct u64_stats_sync syncp; - u64 packets; - u64 bytes; +struct print_entry { + struct trace_entry ent; + unsigned long ip; + char buf[0]; }; -struct tx_ring_info; +struct ftrace_entry { + struct trace_entry ent; + unsigned long ip; + unsigned long parent_ip; +}; -struct sky2_tx_le; +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 rx_ring_info; +struct stack_entry { + struct trace_entry ent; + int size; + unsigned long caller[0]; +}; -struct sky2_rx_le; +struct userstack_entry { + struct trace_entry ent; + unsigned int tgid; + unsigned long caller[8]; +}; -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: 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 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 tx_ring_info { - struct sk_buff *skb; - unsigned long flags; - dma_addr_t mapaddr; - __u32 maplen; +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 sky2_tx_le { - __le32 addr; - __le16 length; - u8 ctrl; - u8 opcode; +struct timerlat_entry { + struct trace_entry ent; + unsigned int seqnum; + int context; + u64 timer_latency; }; -struct rx_ring_info { - struct sk_buff *skb; - dma_addr_t data_addr; - __u32 data_size; - dma_addr_t frag_addr[2]; +struct raw_data_entry { + struct trace_entry ent; + unsigned int id; + char buf[0]; }; -struct sky2_rx_le { - __le32 addr; - __le16 length; - u8 ctrl; - u8 opcode; +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; }; -struct touchscreen_properties { - unsigned int max_x; - unsigned int max_y; - bool invert_x; - bool invert_y; - bool swap_x_y; +struct dynevent_arg_pair { + const char *lhs; + const char *rhs; + char operator; + char separator; }; -struct itco_wdt_platform_data { - char name[32]; - unsigned int version; - bool no_reboot_use_pmc; +struct trace_fprobe { + struct dyn_event devent; + struct fprobe fp; + const char *symbol; + struct tracepoint *tpoint; + struct module *mod; + struct trace_probe tp; }; -struct dmi_onboard_device_info { - const char *name; - u8 type; - unsigned short i2c_addr; - const char *i2c_type; +struct fexit_trace_entry_head { + struct trace_entry ent; + unsigned long func; + unsigned long ret_ip; }; -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 fentry_trace_entry_head { + struct trace_entry ent; + unsigned long ip; }; -typedef efi_status_t efi_get_time_t(efi_time_t *, efi_time_cap_t *); +struct __find_tracepoint_cb_data { + const char *tp_name; + struct tracepoint *tpoint; +}; -typedef efi_status_t efi_set_time_t(efi_time_t *); +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; +}; -typedef efi_status_t efi_get_wakeup_time_t(efi_bool_t *, efi_bool_t *, efi_time_t *); +enum lru_status { + LRU_REMOVED = 0, + LRU_REMOVED_RETRY = 1, + LRU_ROTATE = 2, + LRU_SKIP = 3, + LRU_RETRY = 4, +}; -typedef efi_status_t efi_set_wakeup_time_t(efi_bool_t, efi_time_t *); +struct list_lru_memcg { + struct callback_head rcu; + struct list_lru_one node[0]; +}; -typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **, unsigned long, unsigned long); +typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *); -typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, unsigned long, u64 *, int *); +struct list_lru_memcg_table { + struct list_lru_memcg *mlru; + struct mem_cgroup *memcg; +}; -typedef efi_status_t efi_get_next_high_mono_count_t(u32 *); +typedef void (*btf_trace_alloc_vmap_area)(void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, int); -typedef void efi_reset_system_t(int, efi_status_t, unsigned long, efi_char16_t *); +typedef void (*btf_trace_purge_vmap_area_lazy)(void *, unsigned long, unsigned long, unsigned int); -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; -}; +typedef void (*btf_trace_free_vmap_area_noflush)(void *, unsigned long, unsigned long, unsigned long); -struct efi { - const efi_runtime_services_t *runtime; - unsigned int runtime_version; - unsigned int runtime_supported_mask; - unsigned long acpi; - unsigned long acpi20; - unsigned long smbios; - unsigned long smbios3; - unsigned long esrt; - unsigned long tpm_log; - unsigned long tpm_final_log; - unsigned long mokvar_table; - unsigned long coco_secret; - unsigned long unaccepted; - efi_get_time_t *get_time; - efi_set_time_t *set_time; - efi_get_wakeup_time_t *get_wakeup_time; - efi_set_wakeup_time_t *set_wakeup_time; - efi_get_variable_t *get_variable; - efi_get_next_variable_t *get_next_variable; - efi_set_variable_t *set_variable; - efi_set_variable_t *set_variable_nonblocking; - efi_query_variable_info_t *query_variable_info; - efi_query_variable_info_t *query_variable_info_nonblocking; - efi_update_capsule_t *update_capsule; - efi_query_capsule_caps_t *query_capsule_caps; - efi_get_next_high_mono_count_t *get_next_high_mono_count; - efi_reset_system_t *reset_system; - struct efi_memory_map memmap; - unsigned long flags; +struct vfree_deferred { + struct llist_head list; + struct work_struct wq; }; -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 vmap_block_queue { + spinlock_t lock; + struct list_head free; + struct xarray vmap_blocks; }; -typedef struct { - efi_guid_t guid; - u64 table; -} efi_config_table_64_t; +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; +}; -struct linux_efi_random_seed { - u32 size; - u8 bits[0]; +enum fit_type { + NOTHING_FIT = 0, + FL_FIT_TYPE = 1, + LE_FIT_TYPE = 2, + RE_FIT_TYPE = 3, + NE_FIT_TYPE = 4, }; -typedef struct { - u16 version; - u16 length; - u32 runtime_services_supported; -} efi_rt_properties_table_t; +typedef unsigned int kasan_vmalloc_flags_t; -struct linux_efi_initrd { - unsigned long base; +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 hid_control_fifo { - unsigned char dir; - struct hid_report *report; - char *raw_report; +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 hid_output_fifo { - struct hid_report *report; - char *raw_report; +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 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; +struct vmap_block { 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 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; }; -struct hid_class_descriptor { - __u8 bDescriptorType; - __le16 wDescriptorLength; -} __attribute__((packed)); +struct trace_event_data_offsets_alloc_vmap_area {}; -struct hid_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 bcdHID; - __u8 bCountryCode; - __u8 bNumDescriptors; - struct hid_class_descriptor desc[1]; -} __attribute__((packed)); +struct trace_event_data_offsets_purge_vmap_area_lazy {}; -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 trace_event_data_offsets_free_vmap_area_noflush {}; + +struct vmap_pfn_data { + unsigned long *pfns; + pgprot_t prot; + unsigned int idx; }; -struct hdac_widget_tree { - struct kobject *root; - struct kobject *afg; - struct kobject **nodes; +enum umount_tree_flags { + UMOUNT_SYNC = 1, + UMOUNT_PROPAGATE = 2, + UMOUNT_CONNECTED = 4, }; -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, +enum mnt_tree_flags_t { + MNT_TREE_MOVE = 1, + MNT_TREE_BENEATH = 2, }; -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 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; +}; + +enum { + Enabled = 0, + Magic = 1, }; -struct broadcast_sk { - struct sock *sk; - struct work_struct work; -}; +typedef struct { + struct list_head list; + unsigned long flags; + int offset; + int size; + char *magic; + char *mask; + const char *interpreter; + char *name; + struct dentry *dentry; + struct file *interp_file; + refcount_t users; +} Node; -struct sock_diag_req { - __u8 sdiag_family; - __u8 sdiag_protocol; +typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); + +struct fd_data { + fmode_t mode; + unsigned int fd; }; -enum tc_mq_command { - TC_MQ_CREATE = 0, - TC_MQ_DESTROY = 1, - TC_MQ_STATS = 2, - TC_MQ_GRAFT = 3, +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 tc_qopt_offload_stats { - struct gnet_stats_basic_sync *bstats; - struct gnet_stats_queue *qstats; +enum { + FILEID_HIGH_OFF = 0, + FILEID_LOW_OFF = 1, + FILE_I_TYPE_OFF = 2, + EMBED_FH_OFF = 3, }; -struct tc_mq_opt_offload_graft_params { - unsigned long queue; - u32 child_handle; +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 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 cb_process_state { + __be32 drc_status; + struct nfs_client *clp; + struct nfs4_slot *slot; + u32 minorversion; + struct net *net; }; -struct mq_sched { - struct Qdisc **qdiscs; +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, }; -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 cb_compound_hdr_arg { + unsigned int taglen; + const char *tag; + unsigned int minorversion; + unsigned int cb_ident; + unsigned int nops; }; -struct channels_reply_data { - struct ethnl_reply_data base; - struct ethtool_channels channels; +struct cb_compound_hdr_res { + __be32 *status; + unsigned int taglen; + const char *tag; + __be32 *nops; }; -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 cb_getattrargs { + struct nfs_fh fh; + uint32_t bitmap[2]; }; -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 cb_getattrres { + __be32 status; + uint32_t bitmap[2]; + uint64_t size; + uint64_t change_attr; + struct timespec64 ctime; + struct timespec64 mtime; }; -struct static_key_false_deferred { - struct static_key_false key; - unsigned long timeout; - struct delayed_work work; +struct cb_recallargs { + struct nfs_fh fh; + nfs4_stateid stateid; + uint32_t truncate; }; -struct tcp_seq_afinfo { - sa_family_t family; +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 tcp_tw_status { - TCP_TW_SUCCESS = 0, - TCP_TW_RST = 1, - TCP_TW_ACK = 2, - TCP_TW_SYN = 3, +struct nsm_args { + struct nsm_private *priv; + u32 prog; + u32 vers; + u32 proc; + char *mon_name; + const char *nodename; }; -enum tcp_seq_states { - TCP_SEQ_STATE_LISTENING = 0, - TCP_SEQ_STATE_ESTABLISHED = 1, +struct nsm_res { + u32 status; + u32 state; }; -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; +enum { + TRACEFS_EVENT_INODE = 2, + TRACEFS_EVENT_TOP_INODE = 4, }; -struct tcp4_pseudohdr { - __be32 saddr; - __be32 daddr; - __u8 pad; - __u8 protocol; - __be16 len; +enum { + EVENTFS_SAVE_MODE = 65536, + EVENTFS_SAVE_UID = 131072, + EVENTFS_SAVE_GID = 262144, }; -struct ip_reply_arg { - struct kvec iov[1]; - int flags; - __wsum csum; - int csumoffset; - int bound_dev_if; - u8 tos; +struct eventfs_attr { + int mode; kuid_t uid; + kgid_t gid; }; -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 eventfs_entry; -struct bpf_iter__tcp { - union { - struct bpf_iter_meta *meta; - }; +struct eventfs_inode { + struct list_head list; + const struct eventfs_entry *entries; + const char *name; + struct list_head children; + struct dentry *dentry; + struct dentry *d_parent; + struct dentry **d_children; + struct eventfs_attr *entry_attrs; + struct eventfs_attr attr; + void *data; union { - struct sock_common *sk_common; + struct llist_node llist; + struct callback_head rcu; }; - uid_t uid; + unsigned int is_freed: 1; + unsigned int is_events: 1; + unsigned int nr_entries: 30; }; -struct bpf_tcp_iter_state { - struct tcp_iter_state state; - unsigned int cur_sk; - unsigned int end_sk; - unsigned int max_sk; - struct sock **batch; - bool st_bucket_done; -}; +typedef int (*eventfs_callback)(const char *, umode_t *, void **, const struct file_operations **); -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 eventfs_entry { + const char *name; + eventfs_callback callback; }; -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 tracefs_inode { + unsigned long flags; + void *private; + struct inode vfs_inode; }; -enum flowlabel_reflect { - FLOWLABEL_REFLECT_ESTABLISHED = 1, - FLOWLABEL_REFLECT_TCP_RESET = 2, - FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4, +struct dentry_list { + void *cursor; + struct dentry **dentries; }; -struct tcp6_sock { - struct tcp_sock tcp; - struct ipv6_pinfo inet6; +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; }; -struct tcp6_pseudohdr { - struct in6_addr saddr; - struct in6_addr daddr; - __be32 len; - __be32 protocol; +enum sctp_endpoint_type { + SCTP_EP_TYPE_SOCKET = 0, + SCTP_EP_TYPE_ASSOCIATION = 1, }; -enum xprt_xid_rb_cmp { - XID_RB_EQUAL = 0, - XID_RB_LEFT = 1, - XID_RB_RIGHT = 2, +enum sctp_socket_type { + SCTP_SOCKET_UDP = 0, + SCTP_SOCKET_UDP_HIGH_BANDWIDTH = 1, + SCTP_SOCKET_TCP = 2, }; -struct rpc_sysfs_xprt_switch { - struct kobject kobject; - struct net *net; - struct rpc_xprt_switch *xprt_switch; - struct rpc_xprt *xprt; +enum sctp_scope { + SCTP_SCOPE_GLOBAL = 0, + SCTP_SCOPE_PRIVATE = 1, + SCTP_SCOPE_LINK = 2, + SCTP_SCOPE_LOOPBACK = 3, + SCTP_SCOPE_UNUSABLE = 4, }; -struct rpc_sysfs_xprt { - struct kobject kobject; - struct rpc_xprt *xprt; - struct rpc_xprt_switch *xprt_switch; +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, }; -struct fwdb_country { - u8 alpha2[2]; - __be16 coll_ptr; +union sctp_addr { + struct sockaddr_in v4; + struct sockaddr_in6 v6; + struct sockaddr sa; }; -struct fwdb_header { - __be32 magic; - __be32 version; - struct fwdb_country country[0]; +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]; }; -enum nl80211_reg_rule_flags { - NL80211_RRF_NO_OFDM = 1, - NL80211_RRF_NO_CCK = 2, - NL80211_RRF_NO_INDOOR = 4, - NL80211_RRF_NO_OUTDOOR = 8, - NL80211_RRF_DFS = 16, - NL80211_RRF_PTP_ONLY = 32, - NL80211_RRF_PTMP_ONLY = 64, - NL80211_RRF_NO_IR = 128, - __NL80211_RRF_NO_IBSS = 256, - NL80211_RRF_AUTO_BW = 2048, - NL80211_RRF_IR_CONCURRENT = 4096, - NL80211_RRF_NO_HT40MINUS = 8192, - NL80211_RRF_NO_HT40PLUS = 16384, - NL80211_RRF_NO_80MHZ = 32768, - NL80211_RRF_NO_160MHZ = 65536, - NL80211_RRF_NO_HE = 131072, - NL80211_RRF_NO_320MHZ = 262144, - NL80211_RRF_NO_EHT = 524288, +struct sctp_inithdr_host { + __u32 init_tag; + __u32 a_rwnd; + __u16 num_outbound_streams; + __u16 num_inbound_streams; + __u32 initial_tsn; }; -enum ieee80211_regd_source { - REGD_SOURCE_INTERNAL_DB = 0, - REGD_SOURCE_CRDA = 1, - REGD_SOURCE_CACHED = 2, -}; +struct sctp_chunk; -enum reg_request_treatment { - REG_REQ_OK = 0, - REG_REQ_IGNORE = 1, - REG_REQ_INTERSECT = 2, - REG_REQ_ALREADY_SET = 3, +struct sctp_inq { + struct list_head in_chunk_list; + struct sctp_chunk *in_progress; + struct work_struct immediate; }; -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 sctp_bind_addr { + __u16 port; + struct list_head address_list; }; -struct reg_beacon { - struct list_head list; - struct ieee80211_channel chan; +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; }; -struct fwdb_wmm_ac { - u8 ecw; - u8 aifsn; - __be16 cot; -}; +typedef __s32 sctp_assoc_t; -struct reg_regdb_apply_request { - struct list_head list; - const struct ieee80211_regdomain *regdom; +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 fwdb_collection { - u8 len; - u8 n_rules; - u8 dfs_region; - int: 0; -}; +struct genradix_root; -struct fwdb_rule { - u8 len; - u8 flags; - __be16 max_eirp; - __be32 start; - __be32 end; - __be32 max_bw; - __be16 cac_timeout; - __be16 wmm_ptr; +struct __genradix { + struct genradix_root *root; }; -struct fwdb_wmm_rule { - struct fwdb_wmm_ac client[4]; - struct fwdb_wmm_ac ap[4]; -}; +struct sctp_stream_out_ext; -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 sctp_stream_out { + union { + __u32 mid; + __u16 ssn; + }; + __u32 mid_uo; + struct sctp_stream_out_ext *ext; + __u8 state; }; -enum ctx_state { - CONTEXT_DISABLED = -1, - CONTEXT_KERNEL = 0, - CONTEXT_IDLE = 1, - CONTEXT_USER = 2, - CONTEXT_GUEST = 3, - CONTEXT_MAX = 4, +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 user_event_mm { - struct list_head mms_link; - struct list_head enablers; - struct mm_struct *mm; - struct user_event_mm *next; - refcount_t refcnt; - refcount_t tasks; - struct rcu_work put_rwork; +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 { + struct list_head fc_list; + }; + }; + struct sctp_stream_interleave *si; }; -typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, unsigned long); +struct sctp_sched_ops; -typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *); +struct sctp_association; -enum mm_cid_state { - MM_CID_UNSET = 4294967295, - MM_CID_LAZY_PUT = 2147483648, +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; }; -enum { - FUTEX_STATE_OK = 0, - FUTEX_STATE_EXITING = 1, - FUTEX_STATE_DEAD = 2, +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 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 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 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 sctp_endpoint; -struct vm_stack { - struct callback_head rcu; - struct vm_struct *stack_vm_area; -}; +struct sctp_transport; -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 sctp_random_param; -struct trace_event_data_offsets_task_newtask {}; +struct sctp_chunks_param; -struct trace_event_data_offsets_task_rename {}; +struct sctp_hmac_algo_param; -struct multiprocess_signals { - sigset_t signal; - struct hlist_node node; -}; +struct sctp_auth_bytes; -struct action_cache { - unsigned long allow_native[8]; - unsigned long allow_compat[8]; +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 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 notification; +struct sctp_paramhdr; -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 sctp_cookie_preserve_param; -struct notification { - struct semaphore request; - u64 next_id; - struct list_head notifications; -}; +struct sctp_hostname_param; -struct seccomp_log_name { - u32 log; - const char *name; -}; +struct sctp_cookie_param; -enum notify_state { - SECCOMP_NOTIFY_INIT = 0, - SECCOMP_NOTIFY_SENT = 1, - SECCOMP_NOTIFY_REPLIED = 2, -}; +struct sctp_supported_addrs_param; -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 sctp_ipv4addr_param; -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 sctp_ipv6addr_param; -struct compat_sock_fprog { - u16 len; - compat_uptr_t filter; -}; +union sctp_addr_param; -struct seccomp_notif_sizes { - __u16 seccomp_notif; - __u16 seccomp_notif_resp; - __u16 seccomp_data; -}; +struct sctp_adaptation_ind_param; -struct seccomp_notif_resp { - __u64 id; - __s64 val; - __s32 error; - __u32 flags; -}; +struct sctp_supported_ext_param; -struct seccomp_notif { - __u64 id; - __u32 pid; - __u32 flags; - struct seccomp_data data; -}; +struct sctp_addip_param; -struct seccomp_notif_addfd { - __u64 id; - __u32 flags; - __u32 srcfd; - __u32 newfd; - __u32 newfd_flags; +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 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; +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 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 sctp_datahdr; -struct swevent_hlist; +struct sctp_inithdr; -struct swevent_htable { - struct swevent_hlist *swevent_hlist; - struct mutex hlist_mutex; - int hlist_refcount; - int recursion[4]; -}; +struct sctp_sackhdr; -struct swevent_hlist { - struct hlist_head heads[256]; - struct callback_head callback_head; -}; +struct sctp_heartbeathdr; -struct min_heap_callbacks { - int elem_size; - bool (*less)(const void *, const void *); - void (*swp)(void *, void *); -}; +struct sctp_sender_hb_info; -struct pmu_event_list { - raw_spinlock_t lock; - struct list_head list; -}; +struct sctp_shutdownhdr; -enum event_type_t { - EVENT_FLEXIBLE = 1, - EVENT_PINNED = 2, - EVENT_TIME = 4, - EVENT_CPU = 8, - EVENT_ALL = 3, -}; +struct sctp_signed_cookie; -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, -}; +struct sctp_ecnehdr; -enum perf_record_ksymbol_type { - PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0, - PERF_RECORD_KSYMBOL_TYPE_BPF = 1, - PERF_RECORD_KSYMBOL_TYPE_OOL = 2, - PERF_RECORD_KSYMBOL_TYPE_MAX = 3, -}; +struct sctp_cwrhdr; -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, -}; +struct sctp_errhdr; -enum perf_probe_config { - PERF_PROBE_CONFIG_IS_RETPROBE = 1, - PERF_UPROBE_REF_CTR_OFFSET_BITS = 32, - PERF_UPROBE_REF_CTR_OFFSET_SHIFT = 32, -}; +struct sctp_addiphdr; -enum perf_event_ioc_flags { - PERF_IOC_FLAG_GROUP = 1, -}; +struct sctp_fwdtsn_hdr; -enum { - IF_STATE_ACTION = 0, - IF_STATE_SOURCE = 1, - IF_STATE_END = 2, -}; +struct sctp_authhdr; -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, -}; +struct sctp_idatahdr; -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 sctp_ifwdtsn_hdr; + +struct sctp_chunkhdr; + +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; }; -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; +struct sctp_shared_key { + struct list_head key_list; + struct sctp_auth_bytes *key; + refcount_t refcnt; + __u16 key_id; + __u8 deactivated; }; -typedef void perf_iterate_f(struct perf_event *, void *); - -struct stop_event_data { - struct perf_event *event; - unsigned int restart; +struct sctp_auth_bytes { + refcount_t refcnt; + __u32 len; + __u8 data[0]; }; -typedef int (*remote_function_f)(void *); +struct sctp_paramhdr { + __be16 type; + __be16 length; +}; -struct remote_function_call { - struct task_struct *p; - remote_function_f func; - void *info; - int ret; +struct sctp_cookie_preserve_param { + struct sctp_paramhdr param_hdr; + __be32 lifespan_increment; }; -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 sctp_hostname_param { + struct sctp_paramhdr param_hdr; + uint8_t hostname[0]; }; -struct perf_ns_link_info { - __u64 dev; - __u64 ino; +struct sctp_cookie_param { + struct sctp_paramhdr p; + __u8 body[0]; }; -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 sctp_supported_addrs_param { + struct sctp_paramhdr param_hdr; + __be16 types[0]; }; -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 sctp_ipv4addr_param { + struct sctp_paramhdr param_hdr; + struct in_addr addr; }; -struct perf_aux_event { - struct perf_event_header header; - u64 offset; - u64 size; - u64 flags; +struct sctp_ipv6addr_param { + struct sctp_paramhdr param_hdr; + struct in6_addr addr; }; -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; +union sctp_addr_param { + struct sctp_paramhdr p; + struct sctp_ipv4addr_param v4; + struct sctp_ipv6addr_param v6; }; -struct perf_aux_event___2 { - struct perf_event_header header; - u64 hw_id; +struct sctp_adaptation_ind_param { + struct sctp_paramhdr param_hdr; + __be32 adaptation_ind; }; -struct __group_key { - int cpu; - struct pmu *pmu; - struct cgroup *cgroup; +struct sctp_supported_ext_param { + struct sctp_paramhdr param_hdr; + __u8 chunks[0]; }; -struct perf_cgroup_event { - char *path; - int path_size; - struct { - struct perf_event_header header; - u64 id; - char path[0]; - } event_id; +struct sctp_random_param { + struct sctp_paramhdr param_hdr; + __u8 random_val[0]; }; -struct min_heap { - void *data; - int nr; - int size; +struct sctp_chunks_param { + struct sctp_paramhdr param_hdr; + __u8 chunks[0]; }; -struct perf_aux_event___3 { - struct perf_event_header header; - u32 pid; - u32 tid; +struct sctp_hmac_algo_param { + struct sctp_paramhdr param_hdr; + __be16 hmac_ids[0]; }; -struct perf_read_event { - struct perf_event_header header; - u32 pid; - u32 tid; +struct sctp_addip_param { + struct sctp_paramhdr param_hdr; + __be32 crr_id; }; -struct remote_output { - struct perf_buffer *rb; - int err; +struct sctp_datahdr { + __be32 tsn; + __be16 stream; + __be16 ssn; + __u32 ppid; }; -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 sctp_inithdr { + __be32 init_tag; + __be32 a_rwnd; + __be16 num_outbound_streams; + __be16 num_inbound_streams; + __be32 initial_tsn; }; -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 sctp_sackhdr { + __be32 cum_tsn_ack; + __be32 a_rwnd; + __be16 num_gap_ack_blocks; + __be16 num_dup_tsns; }; -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 sctp_heartbeathdr { + struct sctp_paramhdr info; }; -struct event_function_struct { - struct perf_event *event; - event_f func; - void *data; +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 perf_read_data { - struct perf_event *event; - bool group; - int ret; +struct sctp_shutdownhdr { + __be32 cum_tsn_ack; }; -typedef struct pt_regs bpf_user_pt_regs_t; +struct sctp_signed_cookie { + __u8 signature[32]; + __u32 __pad; + struct sctp_cookie c; +} __attribute__((packed)); -struct bpf_perf_event_data_kern { - bpf_user_pt_regs_t *regs; - struct perf_sample_data *data; - struct perf_event *event; +struct sctp_ecnehdr { + __be32 lowest_tsn; }; -struct posix_acl_xattr_header { - __le32 a_version; +struct sctp_cwrhdr { + __be32 lowest_tsn; }; -struct posix_acl_xattr_entry { - __le16 e_tag; - __le16 e_perm; - __le32 e_id; +struct sctp_errhdr { + __be16 cause; + __be16 length; }; -struct pending_reservation { - struct rb_node rb_node; - ext4_lblk_t lclu; +struct sctp_addiphdr { + __be32 serial; }; -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 sctp_fwdtsn_hdr { + __be32 new_cum_tsn; }; -enum { - PARSE_INVALID = 1, - PARSE_NOT_LONGNAME = 2, - PARSE_EOF = 3, +struct sctp_authhdr { + __be16 shkey_id; + __be16 hmac_id; }; -struct __fat_dirent { - long d_ino; - __kernel_off_t d_off; - unsigned short d_reclen; - char d_name[256]; +struct sctp_idatahdr { + __be32 tsn; + __be16 stream; + __be16 reserved; + __be32 mid; + union { + __u32 ppid; + __be32 fsn; + }; + __u8 payload[0]; }; -struct fat_ioctl_filldir_callback { - struct dir_context ctx; - void __attribute__((btf_type_tag("user"))) *dirent; - int result; - const char *longname; - int long_len; - const char *shortname; - int short_len; +struct sctp_ifwdtsn_hdr { + __be32 new_cum_tsn; }; -struct compat_dirent { - u32 d_ino; - compat_off_t d_off; - u16 d_reclen; - char d_name[256]; +struct sctp_chunkhdr { + __u8 type; + __u8 flags; + __be16 length; }; -struct nfs_netns_client { - struct kobject kobject; - struct kobject nfs_net_kobj; - struct net *net; - const char __attribute__((btf_type_tag("rcu"))) *identifier; +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 ahash_alg { - int (*init)(struct ahash_request *); - int (*update)(struct ahash_request *); - int (*final)(struct ahash_request *); - int (*finup)(struct ahash_request *); - int (*digest)(struct ahash_request *); - int (*export)(struct ahash_request *, void *); - int (*import)(struct ahash_request *, const void *); - int (*setkey)(struct crypto_ahash *, const u8 *, unsigned int); - int (*init_tfm)(struct crypto_ahash *); - void (*exit_tfm)(struct crypto_ahash *); - int (*clone_tfm)(struct crypto_ahash *, struct crypto_ahash *); - struct hash_alg_common halg; +struct 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 ahash_instance { - void (*free)(struct ahash_instance *); - union { - struct { - char head[96]; - struct crypto_instance base; - } s; - struct ahash_alg alg; - }; +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 rand_data; +struct sctp_sock; -struct jitterentropy { - spinlock_t jent_lock; - struct rand_data *entropy_collector; - struct crypto_shash *tfm; - struct shash_desc *sdesc; +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 io_madvise { - struct file *file; - u64 addr; - u32 len; - u32 advice; +struct sctp_rtoinfo { + sctp_assoc_t srto_assoc_id; + __u32 srto_initial; + __u32 srto_max; + __u32 srto_min; }; -struct io_fadvise { - struct file *file; - u64 offset; - u32 len; - u32 advice; +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; + int: 0; +} __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 genradix_node { - union { - struct genradix_node *children[512]; - u8 data[4096]; - }; +struct sctp_initmsg { + __u16 sinit_num_ostreams; + __u16 sinit_max_instreams; + __u16 sinit_max_attempts; + __u16 sinit_max_init_timeo; }; -struct genradix_iter { - size_t offset; - size_t pos; +struct sctp_pf; + +struct sctp_bind_bucket; + +struct sctp_sock { + struct inet_sock inet; + enum sctp_socket_type type; + 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; + __u32 default_ppid; + __u16 default_flags; + __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; + __u32 flowlabel; + __u8 dscp; + __u16 pf_retrans; + __u16 ps_retrans; + __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; + 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; + atomic_t pd_mode; + struct sk_buff_head pd_lobby; + struct list_head auto_asconf_list; + int do_auto_asconf; }; -struct crypto_aes_ctx { - u32 key_enc[60]; - u32 key_dec[60]; - u32 key_length; +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; }; -typedef struct tree_desc_s tree_desc; +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 karatsuba_ctx { - struct karatsuba_ctx *next; - mpi_ptr_t tspace; - mpi_size_t tspace_size; - mpi_ptr_t tp; - mpi_size_t tp_size; +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 msr { +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 { - u32 l; - u32 h; + struct list_head prio_list; + struct sctp_stream_priorities *prio_head; + }; + struct { + struct list_head rr_list; + }; + struct { + struct list_head fc_list; + __u32 fc_length; + __u16 fc_weight; }; - u64 q; }; }; -struct msr_info { - u32 msr_no; - struct msr reg; - struct msr *msrs; - int err; +struct sctp_stream_priorities { + struct list_head prio_sched; + struct list_head active; + struct sctp_stream_out_ext *next; + __u16 prio; + __u16 users; }; -struct msr_info_completion { - struct msr_info msr; - struct completion done; +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 msr_regs_info { - u32 *regs; - int err; +struct queue_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct request_queue *, char *); + ssize_t (*store)(struct request_queue *, const char *, size_t); }; -enum enable_type { - undefined = -1, - user_disabled = 0, - auto_disabled = 1, - user_enabled = 2, - auto_enabled = 3, -}; +typedef void (*btf_trace_kyber_latency)(void *, dev_t, const char *, const char *, unsigned int, unsigned int, unsigned int, unsigned int); -enum release_type { - leaf_only = 0, - whole_subtree = 1, -}; +typedef void (*btf_trace_kyber_adjust)(void *, dev_t, const char *, unsigned int); -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; -}; +typedef void (*btf_trace_kyber_throttled)(void *, dev_t, const char *); -struct irq_override_cmp { - const struct dmi_system_id *system; - unsigned char irq; - unsigned char triggering; - unsigned char polarity; - unsigned char shareable; - bool override; +enum { + KYBER_READ = 0, + KYBER_WRITE = 1, + KYBER_DISCARD = 2, + KYBER_OTHER = 3, + KYBER_NUM_DOMAINS = 4, }; -struct res_proc_context { - struct list_head *list; - int (*preproc)(struct acpi_resource *, void *); - void *preproc_data; - int count; - int error; +enum { + KYBER_TOTAL_LATENCY = 0, + KYBER_IO_LATENCY = 1, }; -struct acpi_lpat { - int temp; - int raw; +enum { + KYBER_LATENCY_SHIFT = 2, + KYBER_GOOD_BUCKETS = 4, + KYBER_LATENCY_BUCKETS = 8, }; -struct acpi_lpat_conversion_table { - struct acpi_lpat *lpat; - int lpat_count; +enum { + KYBER_ASYNC_PERCENT = 75, }; -struct lpit_residency_info { - struct acpi_generic_address gaddr; - u64 frequency; - void *iomem_addr; +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 acpi_lpit_header { - u32 type; - u32 length; - u16 unique_id; - u16 reserved; - u32 flags; +struct trace_event_raw_kyber_adjust { + struct trace_entry ent; + dev_t dev; + char domain[16]; + unsigned int depth; + char __data[0]; }; -struct acpi_lpit_native { - struct acpi_lpit_header header; - struct acpi_generic_address entry_trigger; - u32 residency; - u32 latency; - struct acpi_generic_address residency_counter; - u64 counter_frequency; +struct trace_event_raw_kyber_throttled { + struct trace_entry ent; + dev_t dev; + char domain[16]; + char __data[0]; }; -struct acpi_table_lpit { - struct acpi_table_header header; +struct kyber_cpu_latency { + atomic_t buckets[48]; }; -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 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 acpi_mem_mapping { - acpi_physical_address physical_address; - u8 *logical_address; - acpi_size length; - struct acpi_mem_mapping *next_mm; +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 acpi_data_table_mapping { - void *pointer; +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 acpi_get_devices_info { - acpi_walk_callback user_function; - void *context; - const char *hid; +struct flush_kcq_data { + struct kyber_hctx_data *khd; + unsigned int sched_domain; + struct list_head *list; }; -typedef acpi_status (*acpi_walk_aml_callback)(u8 *, u32, u32, u8, void **); +struct trace_event_data_offsets_kyber_latency {}; -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 trace_event_data_offsets_kyber_adjust {}; -struct serial_port_device { - struct device dev; - struct uart_port *port; -}; +struct trace_event_data_offsets_kyber_throttled {}; -struct intel_agp_driver_description { - unsigned int chip_id; - char *name; - const struct agp_bridge_driver *driver; +struct genradix_node { + union { + struct genradix_node *children[512]; + u8 data[4096]; + }; }; -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 genradix_iter { + size_t offset; + size_t pos; }; -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; -}; +typedef void sha256_block_fn(struct sha256_state *, const u8 *, int); -struct drm_i915_gem_caching { - __u32 handle; - __u32 caching; +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 drm_i915_gem_set_domain { - __u32 handle; - __u32 read_domains; - __u32 write_domain; -}; +typedef struct { + U32 f1c; + U32 f1d; + U32 f7b; + U32 f7c; +} ZSTD_cpuid_t; -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; -}; +typedef struct { + size_t compressedSize; + unsigned long long decompressedBound; +} ZSTD_frameSizeInfo; -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; -}; +typedef enum { + ZSTD_dlm_byCopy = 0, + ZSTD_dlm_byRef = 1, +} ZSTD_dictLoadMethod_e; -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 enum { + ZSTD_dct_auto = 0, + ZSTD_dct_rawContent = 1, + ZSTD_dct_fullDict = 2, +} ZSTD_dictContentType_e; -struct pmdemand_params { - u16 qclk_gv_bw; - u8 voltage_index; - u8 qclk_gv_index; - u8 active_pipes; - u8 active_dbufs; - u8 active_phys; - u8 plls; - u16 cdclk_freq_mhz; - u16 ddiclk_max; - u8 scalers; -}; +typedef enum { + ZSTD_reset_session_only = 1, + ZSTD_reset_parameters = 2, + ZSTD_reset_session_and_parameters = 3, +} ZSTD_ResetDirective; -struct intel_pmdemand_state { - struct intel_global_state base; - int ddi_clocks[4]; - u16 active_combo_phys_mask; - struct pmdemand_params params; -}; +typedef enum { + ZSTD_d_windowLogMax = 100, + ZSTD_d_experimentalParam1 = 1000, + ZSTD_d_experimentalParam2 = 1001, + ZSTD_d_experimentalParam3 = 1002, + ZSTD_d_experimentalParam4 = 1003, +} ZSTD_dParameter; -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; +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 msi_domain_template { + char name[48]; + struct irq_chip chip; + struct msi_domain_ops ops; + struct msi_domain_info info; }; -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 lpit_residency_info { + struct acpi_generic_address gaddr; + u64 frequency; + void *iomem_addr; }; -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, +struct acpi_lpit_header { + u32 type; + u32 length; + u16 unique_id; + u16 reserved; + u32 flags; }; -struct virtio_gpu_framebuffer { - struct drm_framebuffer base; - struct virtio_gpu_fence *fence; +struct acpi_lpit_native { + struct acpi_lpit_header header; + struct acpi_generic_address entry_trigger; + u32 residency; + u32 latency; + struct acpi_generic_address residency_counter; + u64 counter_frequency; }; -struct regcache_rbtree_node { - void *block; - long *cache_present; - unsigned int base_reg; - unsigned int blklen; - struct rb_node node; +struct acpi_table_lpit { + struct acpi_table_header header; }; -struct regcache_rbtree_ctx { - struct rb_root root; - struct regcache_rbtree_node *cached_rbnode; +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 phy_fixup { - struct list_head list; - char bus_id[64]; - u32 phy_uid; - u32 phy_uid_mask; - int (*run)(struct phy_device *); +struct pnp_info_buffer { + char *buffer; + char *curr; + unsigned long size; + unsigned long len; + int stop; + int error; }; -struct sfp_eeprom_id; +typedef struct pnp_info_buffer pnp_info_buffer_t; -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 old_serial_port { + unsigned int uart; + unsigned int baud_base; + unsigned int port; + unsigned int irq; + upf_t flags; + unsigned char io_type; + unsigned char *iomem_base; + unsigned short iomem_reg_shift; }; -struct 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 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 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; +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 sfp_eeprom_id { - struct sfp_eeprom_base base; - struct sfp_eeprom_ext ext; +struct irq_info___2 { + struct hlist_node node; + int irq; + spinlock_t lock; + struct list_head *head; }; -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 plat_serial8250_port { + unsigned long iobase; + void *membase; + resource_size_t mapbase; + resource_size_t mapsize; + unsigned int uartclk; + unsigned int irq; + unsigned long irqflags; + void *private_data; + unsigned char regshift; + unsigned char iotype; + unsigned char hub6; + unsigned char has_sysrq; + unsigned int type; + upf_t flags; + u16 bugs; + unsigned int (*serial_in)(struct uart_port *, int); + void (*serial_out)(struct uart_port *, int, int); + u32 (*dl_read)(struct uart_8250_port *); + void (*dl_write)(struct uart_8250_port *, u32); + void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); + void (*set_ldisc)(struct uart_port *, struct ktermios *); + unsigned int (*get_mctrl)(struct uart_port *); + int (*handle_irq)(struct uart_port *); + void (*pm)(struct uart_port *, unsigned int, unsigned int); + void (*handle_break)(struct uart_port *); }; -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]; +struct drm_mode_create_lease { + __u64 object_ids; + __u32 object_count; + __u32 flags; + __u32 lessee_id; + __u32 fd; }; -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, +struct drm_mode_list_lessees { + __u32 count_lessees; + __u32 pad; + __u64 lessees_ptr; }; -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 drm_mode_get_lease { + __u32 count_objects; + __u32 pad; + __u64 objects_ptr; }; -struct ehci_iso_packet { - u64 bufp; - __le32 transaction; - u8 cross; - u32 buf1; +struct drm_mode_revoke_lease { + __u32 lessee_id; }; -struct ehci_iso_sched { - struct list_head td_list; - unsigned int span; - unsigned int first_packet; - struct ehci_iso_packet packet[0]; -}; +struct drm_flip_work; -struct i2c_smbus_alert { - struct work_struct alert; - struct i2c_client *ara; +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 alert_data { - unsigned short addr; - enum i2c_alert_protocol type; - unsigned int data; +struct drm_flip_task { + struct list_head node; + void *data; }; -struct i2c_smbus_alert_setup { - int irq; +struct drm_shadow_plane_state { + struct drm_plane_state base; + struct iosys_map map[4]; + struct iosys_map data[4]; }; -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 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 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 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 a4tech_sc { - unsigned long quirks; - unsigned int hw_wheel; - __s32 delayed_value; +struct drm_i915_mocs_entry { + u32 control_value; + u16 l3cc_value; + u16 used; }; enum { - SNDRV_HWDEP_IOCTL_DSP_LOAD32 = 1079003139, + HAS_GLOBAL_MOCS = 1, + HAS_ENGINE_MOCS = 2, + HAS_RENDER_L3CC = 4, }; -struct snd_hwdep_info { - unsigned int device; - int card; - unsigned char id[64]; - unsigned char name[80]; - int iface; - unsigned char reserved[64]; +enum i915_mocs_table_index { + I915_MOCS_UNCACHED = 0, + I915_MOCS_PTE = 1, + I915_MOCS_CACHED = 2, }; -typedef int (*snd_kctl_ioctl_func_t)(struct snd_card *, struct snd_ctl_file *, unsigned int, unsigned long); - -struct snd_hwdep_dsp_image32 { - u32 index; - unsigned char name[64]; - u32 image; - u32 length; - u32 driver_data; +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; }; -enum snd_compr_direction { - SND_COMPRESS_PLAYBACK = 0, - SND_COMPRESS_CAPTURE = 1, +struct i915_gem_ttm_pm_apply { + struct i915_gem_apply_to_region base; + bool allow_gpu: 1; + bool backup_pinned: 1; }; -struct snd_compr_ops; +struct __guc_mmio_reg_descr; -struct snd_compr_runtime; +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 snd_compr; +struct __guc_mmio_reg_descr { + i915_reg_t reg; + u32 flags; + u32 mask; + const char *regname; +}; -struct snd_compr_stream { +struct __ext_steer_reg { 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; + i915_mcr_reg_t reg; }; -struct snd_compr_params; - -struct snd_codec; - -struct snd_compr_metadata; - -struct snd_compr_tstamp; - -struct snd_compr_caps; +struct __guc_capture_ads_cache { + bool is_valid; + void *ptr; + size_t size; + int status; +}; -struct snd_compr_codec_caps; +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 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 gcap_reg_list_info { + u32 vfid; + u32 num_regs; + struct guc_mmio_reg *regs; }; -struct snd_compressed_buffer { - __u32 fragment_size; - __u32 fragments; +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]; }; -struct snd_enc_wma { - __u32 super_block_align; +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 snd_enc_vorbis { - __s32 quality; - __u32 managed; - __u32 max_bit_rate; - __u32 min_bit_rate; - __u32 downmix; +struct guc_debug_capture_list_header { + u32 info; }; -struct snd_enc_real { - __u32 quant_bits; - __u32 start_region; - __u32 num_regions; +struct guc_debug_capture_list { + struct guc_debug_capture_list_header header; + struct guc_mmio_reg regs[0]; }; -struct snd_enc_flac { - __u32 num; - __u32 gain; +struct __guc_capture_bufstate { + u32 size; + void *data; + u32 rd; + u32 wr; }; -struct snd_enc_generic { - __u32 bw; - __s32 reserved[15]; +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 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 guc_state_capture_header_t { + u32 owner; + u32 info; + u32 lrca; + u32 guc_id; + u32 num_mmios; }; -struct snd_dec_wma { - __u32 encoder_option; - __u32 adv_encoder_option; - __u32 adv_encoder_option2; - __u32 reserved; +struct guc_state_capture_group_header_t { + u32 owner; + u32 info; }; -struct snd_dec_alac { - __u32 frame_length; - __u8 compatible_version; - __u8 pb; - __u8 mb; - __u8 kb; - __u32 max_run; - __u32 max_frame_bytes; +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 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; +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, }; -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 bdb_block_entry { + struct list_head node; + enum bdb_block_id section_id; + u8 data[0]; }; -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 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 snd_compr_params { - struct snd_compressed_buffer buffer; - struct snd_codec codec; - __u8 no_wake_mode; +struct bdb_header { + u8 signature[16]; + u16 version; + u16 header_size; + u16 bdb_size; }; -struct snd_compr_metadata { - __u32 key; - __u32 value[8]; +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; }; -struct snd_compr_tstamp { - __u32 byte_offset; - __u32 copied_total; - __u32 pcm_frames; - __u32 pcm_io_frames; - __u32 sampling_rate; +struct bdb_lvds_lfp_data_ptrs { + u8 lvds_entries; + struct lvds_lfp_data_ptr ptr[16]; + struct lvds_lfp_data_ptr_table panel_name; }; -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 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 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 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 snd_compr_codec_caps { - __u32 codec; - __u32 num_descriptors; - struct snd_codec_desc descriptor[32]; +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]; }; -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 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 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; +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; }; -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 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; }; -struct debug_reply_data { - struct ethnl_reply_data base; - u32 msg_mask; +struct bdb_lvds_lfp_data { + struct lvds_lfp_data_entry data[16]; }; -enum nf_ct_helper_flags { - NF_CT_HELPER_F_USERSPACE = 1, - NF_CT_HELPER_F_CONFIGURED = 2, +struct lvds_lfp_panel_name { + u8 name[13]; }; -struct xt_state_info { - unsigned int statemask; +struct lvds_lfp_black_border { + u8 top; + u8 bottom; + u8 left; + u8 right; }; -struct devinet_sysctl_table { - struct ctl_table_header *sysctl_header; - struct ctl_table devinet_vars[34]; +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; }; -enum { - IFLA_INET_UNSPEC = 0, - IFLA_INET_CONF = 1, - __IFLA_INET_MAX = 2, +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 inet_fill_args { - u32 portid; - u32 seq; - int event; - unsigned int flags; - int netnsid; - int ifindex; +struct lfp_brightness_level { + u16 level; + u16 reserved; }; -struct in_validator_info { - __be32 ivi_addr; - struct in_device *ivi_dev; - struct netlink_ext_ack *extack; +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]; }; -enum { - TCP_BPF_IPV4 = 0, - TCP_BPF_IPV6 = 1, - TCP_BPF_NUM_PROTS = 2, +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; }; -enum { - TCP_BPF_BASE = 0, - TCP_BPF_TX = 1, - TCP_BPF_RX = 2, - TCP_BPF_TXRX = 3, - TCP_BPF_NUM_CFGS = 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; }; -enum sk_psock_state_bits { - SK_PSOCK_TX_ENABLED = 0, - SK_PSOCK_RX_STRP_ENABLED = 1, +struct als_data_entry { + u16 backlight_adjust; + u16 lux; }; -enum __sk_action { - __SK_DROP = 0, - __SK_PASS = 1, - __SK_REDIRECT = 2, - __SK_NONE = 3, +struct aggressiveness_profile_entry { + u8 dpst_aggressiveness: 4; + u8 lace_aggressiveness: 4; }; -struct tx_work { - struct delayed_work work; - struct sock *sk; +struct aggressiveness_profile2_entry { + u8 opst_aggressiveness: 4; + u8 elp_aggressiveness: 4; }; -struct tls_rec; +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 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 edp_fast_link_params { + u8 rate: 4; + u8 lanes: 4; + u8 preemphasis: 4; + u8 vswing: 4; }; -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 edp_pwm_delays { + u16 pwm_on_to_backlight_enable; + u16 backlight_disable_to_pwm_off; }; -struct cipher_context { - char *iv; - char *rec_seq; +struct edp_full_link_params { + u8 preemphasis: 4; + u8 vswing: 4; }; -struct tls_crypto_info { - __u16 version; - __u16 cipher_type; +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 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 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 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 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 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 bdb_psr { + struct psr_table psr_table[16]; + u32 psr2_tp2_tp3_wakeup_time; }; -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 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]; }; -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]; +struct bdb_mipi_sequence { + u8 version; + u8 data[0]; }; -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 intel_tc_phy_ops { + enum intel_display_power_domain (*cold_off_domain)(struct intel_tc_port *); + u32 (*hpd_live_status)(struct intel_tc_port *); + bool (*is_ready)(struct intel_tc_port *); + bool (*is_owned)(struct intel_tc_port *); + void (*get_hw_state)(struct intel_tc_port *); + bool (*connect)(struct intel_tc_port *, int); + void (*disconnect)(struct intel_tc_port *); + void (*init)(struct intel_tc_port *); }; -struct tls_context { - struct tls_prot_info prot_info; - u8 tx_conf: 3; - u8 rx_conf: 3; - u8 zerocopy_sendfile: 1; - u8 rx_no_pad: 1; - int (*push_pending_record)(struct sock *, int); - void (*sk_write_space)(struct sock *); - void *priv_ctx_tx; - void *priv_ctx_rx; - struct net_device __attribute__((btf_type_tag("rcu"))) *netdev; - struct cipher_context tx; - struct cipher_context rx; - struct scatterlist *partially_sent_record; - u16 partially_sent_offset; - bool splicing_pages; - bool pending_open_record_frags; - struct mutex tx_lock; - unsigned long flags; - struct proto *sk_proto; - struct sock *sk; - void (*sk_destruct)(struct sock *); - union tls_crypto_context crypto_send; - union tls_crypto_context crypto_recv; - struct list_head list; - refcount_t refcount; - struct callback_head rcu; +enum tc_port_mode { + TC_PORT_DISCONNECTED = 0, + TC_PORT_TBT_ALT = 1, + TC_PORT_DP_ALT = 2, + TC_PORT_LEGACY = 3, }; -struct ip6fl_iter_state { - struct seq_net_private p; - struct pid_namespace *pid_ns; - int bucket; +enum phy_fia { + FIA1 = 0, + FIA2 = 1, + FIA3 = 2, }; -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 intel_tc_port { + struct intel_digital_port *dig_port; + const struct intel_tc_phy_ops *phy_ops; + struct mutex lock; + intel_wakeref_t lock_wakeref; + struct delayed_work disconnect_phy_work; + struct delayed_work link_reset_work; + int link_refcount; + bool legacy_port: 1; + const char *port_name; + enum tc_port_mode mode; + enum tc_port_mode init_mode; + enum phy_fia phy_fia; + u8 phy_fia_idx; }; -enum { - IP6_FH_F_FRAG = 1, - IP6_FH_F_AUTH = 2, - IP6_FH_F_SKIP_RH = 4, +struct hdcp2_dp_msg_data { + u8 msg_id; + u32 offset; + bool msg_detectable; + u32 timeout; + u32 timeout2; + u32 msg_read_timeout; }; -struct unix_domain { - struct auth_domain h; +enum check_link_response { + HDCP_LINK_PROTECTED = 0, + HDCP_TOPOLOGY_CHANGE = 1, + HDCP_LINK_INTEGRITY_FAILURE = 2, + HDCP_REAUTH_REQUEST = 3, }; -struct unix_gid { - struct cache_head h; - kuid_t uid; - struct group_info *gi; - struct callback_head rcu; +struct hdcp2_dp_errata_stream_type { + u8 msg_id; + u8 stream_type; }; -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; +struct cn_callback_id { + unsigned char name[32]; + struct cb_id id; }; -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_inform_bss)(void *, struct wiphy *, struct cfg80211_bss *); - -typedef void (*btf_trace_rdev_set_txq_params)(void *, struct wiphy *, struct net_device *, struct ieee80211_txq_params *); - -typedef void (*btf_trace_rdev_libertas_set_mesh_channel)(void *, struct wiphy *, struct net_device *, struct ieee80211_channel *); - -typedef void (*btf_trace_rdev_set_monitor_channel)(void *, struct wiphy *, struct cfg80211_chan_def *); - -typedef void (*btf_trace_rdev_auth)(void *, struct wiphy *, struct net_device *, struct cfg80211_auth_request *); - -typedef void (*btf_trace_rdev_assoc)(void *, struct wiphy *, struct net_device *, struct cfg80211_assoc_request *); - -typedef void (*btf_trace_rdev_deauth)(void *, struct wiphy *, struct net_device *, struct cfg80211_deauth_request *); - -typedef void (*btf_trace_rdev_disassoc)(void *, struct wiphy *, struct net_device *, struct cfg80211_disassoc_request *); - -typedef void (*btf_trace_rdev_mgmt_tx_cancel_wait)(void *, struct wiphy *, struct wireless_dev *, u64); - -typedef void (*btf_trace_rdev_set_power_mgmt)(void *, struct wiphy *, struct net_device *, bool, int); - -typedef void (*btf_trace_rdev_connect)(void *, struct wiphy *, struct net_device *, struct cfg80211_connect_params *); - -typedef void (*btf_trace_rdev_update_connect_params)(void *, struct wiphy *, struct net_device *, struct cfg80211_connect_params *, u32); - -typedef void (*btf_trace_rdev_set_cqm_rssi_config)(void *, struct wiphy *, struct net_device *, s32, u32); - -typedef void (*btf_trace_rdev_set_cqm_rssi_range_config)(void *, struct wiphy *, struct net_device *, s32, s32); - -typedef void (*btf_trace_rdev_set_cqm_txe_config)(void *, struct wiphy *, struct net_device *, u32, u32, u32); - -typedef void (*btf_trace_rdev_disconnect)(void *, struct wiphy *, struct net_device *, u16); - -typedef void (*btf_trace_rdev_join_ibss)(void *, struct wiphy *, struct net_device *, struct cfg80211_ibss_params *); - -typedef void (*btf_trace_rdev_join_ocb)(void *, struct wiphy *, struct net_device *, const struct ocb_setup *); - -typedef void (*btf_trace_rdev_set_wiphy_params)(void *, struct wiphy *, u32); - -typedef void (*btf_trace_rdev_get_tx_power)(void *, struct wiphy *, struct wireless_dev *); - -typedef void (*btf_trace_rdev_set_tx_power)(void *, struct wiphy *, struct wireless_dev *, enum nl80211_tx_power_setting, int); - -typedef void (*btf_trace_rdev_return_int_int)(void *, struct wiphy *, int, int); - -typedef void (*btf_trace_rdev_set_bitrate_mask)(void *, struct wiphy *, struct net_device *, unsigned int, const u8 *, const struct cfg80211_bitrate_mask *); - -typedef void (*btf_trace_rdev_update_mgmt_frame_registrations)(void *, struct wiphy *, struct wireless_dev *, struct mgmt_frame_regs *); +struct cn_queue_dev; -typedef void (*btf_trace_rdev_return_int_tx_rx)(void *, struct wiphy *, int, u32, u32); +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; +}; -typedef void (*btf_trace_rdev_return_void_tx_rx)(void *, struct wiphy *, u32, u32, u32, u32); +struct cn_queue_dev { + atomic_t refcnt; + unsigned char name[32]; + struct list_head queue_list; + spinlock_t queue_lock; + struct sock *nls; +}; -typedef void (*btf_trace_rdev_set_antenna)(void *, struct wiphy *, u32, u32); +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, +}; -typedef void (*btf_trace_rdev_sched_scan_start)(void *, struct wiphy *, struct net_device *, u64); +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; + u64 last_hw_sleep; + u64 total_hw_sleep; + u64 max_hw_sleep; + enum suspend_stat_step failed_steps[2]; +}; -typedef void (*btf_trace_rdev_sched_scan_stop)(void *, struct wiphy *, struct net_device *, u64); +typedef int (*pm_callback_t)(struct device *); -typedef void (*btf_trace_rdev_tdls_mgmt)(void *, struct wiphy *, struct net_device *, u8 *, int, u8, u8, u16, u32, bool, const u8 *, size_t); +struct ata_eh_cmd_timeout_ent { + const u8 *commands; + const unsigned int *timeouts; +}; -typedef void (*btf_trace_rdev_dump_survey)(void *, struct wiphy *, struct net_device *, int); +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, +}; -typedef void (*btf_trace_rdev_return_int_survey_info)(void *, struct wiphy *, int, struct survey_info *); +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, +}; -typedef void (*btf_trace_rdev_tdls_oper)(void *, struct wiphy *, struct net_device *, u8 *, enum nl80211_tdls_operation); +enum ata_lpm_hints { + ATA_LPM_EMPTY = 1, + ATA_LPM_HIPM = 2, + ATA_LPM_WAKE_ONLY = 4, +}; -typedef void (*btf_trace_rdev_probe_client)(void *, struct wiphy *, struct net_device *, const u8 *); +struct speed_down_verdict_arg { + u64 since; + int xfer_ok; + int nr_errors[8]; +}; -typedef void (*btf_trace_rdev_set_pmksa)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmksa *); +enum e1000_state_t___2 { + __E1000_TESTING___2 = 0, + __E1000_RESETTING___2 = 1, + __E1000_DOWN___2 = 2, + __E1000_DISABLED = 3, +}; -typedef void (*btf_trace_rdev_del_pmksa)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmksa *); +struct e1000_rx_desc { + __le64 buffer_addr; + __le16 length; + __le16 csum; + u8 status; + u8 errors; + __le16 special; +}; -typedef void (*btf_trace_rdev_remain_on_channel)(void *, struct wiphy *, struct wireless_dev *, struct ieee80211_channel *, unsigned int); +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 void (*btf_trace_rdev_return_int_cookie)(void *, struct wiphy *, int, u64); +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 void (*btf_trace_rdev_cancel_remain_on_channel)(void *, struct wiphy *, struct wireless_dev *, u64); +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 void (*btf_trace_rdev_mgmt_tx)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_mgmt_tx_params *); +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 void (*btf_trace_rdev_tx_control_port)(void *, struct wiphy *, struct net_device *, const u8 *, size_t, const u8 *, __be16, bool, int); +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 void (*btf_trace_rdev_set_noack_map)(void *, struct wiphy *, struct net_device *, u16); +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 void (*btf_trace_rdev_get_channel)(void *, struct wiphy *, struct wireless_dev *, unsigned int); +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 void (*btf_trace_rdev_return_chandef)(void *, struct wiphy *, int, struct cfg80211_chan_def *); +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; -typedef void (*btf_trace_rdev_start_p2p_device)(void *, struct wiphy *, struct wireless_dev *); +struct e1000_eeprom_info { + e1000_eeprom_type type; + u16 word_size; + u16 opcode_bits; + u16 address_bits; + u16 delay_usec; + u16 page_size; +}; -typedef void (*btf_trace_rdev_stop_p2p_device)(void *, struct wiphy *, struct wireless_dev *); +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 void (*btf_trace_rdev_start_nan)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *); +typedef enum { + e1000_ffe_config_enabled = 0, + e1000_ffe_config_active = 1, + e1000_ffe_config_blocked = 2, +} e1000_ffe_config; -typedef void (*btf_trace_rdev_nan_change_conf)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *, u32); +typedef enum { + e1000_smart_speed_default___2 = 0, + e1000_smart_speed_on___2 = 1, + e1000_smart_speed_off___2 = 2, +} e1000_smart_speed; -typedef void (*btf_trace_rdev_stop_nan)(void *, struct wiphy *, struct wireless_dev *); +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; -typedef void (*btf_trace_rdev_add_nan_func)(void *, struct wiphy *, struct wireless_dev *, const struct cfg80211_nan_func *); +struct e1000_shadow_ram___2; -typedef void (*btf_trace_rdev_del_nan_func)(void *, struct wiphy *, struct wireless_dev *, u64); +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; +}; -typedef void (*btf_trace_rdev_set_mac_acl)(void *, struct wiphy *, struct net_device *, struct cfg80211_acl_data *); +struct e1000_shadow_ram___2 { + u16 eeprom_word; + bool modified; +}; -typedef void (*btf_trace_rdev_update_ft_ies)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_ft_ies_params *); +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 void (*btf_trace_rdev_crit_proto_start)(void *, struct wiphy *, struct wireless_dev *, enum nl80211_crit_proto_id, u16); +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 void (*btf_trace_rdev_crit_proto_stop)(void *, struct wiphy *, struct wireless_dev *); +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 void (*btf_trace_rdev_channel_switch)(void *, struct wiphy *, struct net_device *, struct cfg80211_csa_settings *); +typedef enum { + e1000_rev_polarity_normal___2 = 0, + e1000_rev_polarity_reversed___2 = 1, + e1000_rev_polarity_undefined___2 = 255, +} e1000_rev_polarity; -typedef void (*btf_trace_rdev_set_qos_map)(void *, struct wiphy *, struct net_device *, struct cfg80211_qos_map *); +typedef enum { + e1000_downshift_normal = 0, + e1000_downshift_activated = 1, + e1000_downshift_undefined = 255, +} e1000_downshift; -typedef void (*btf_trace_rdev_set_ap_chanwidth)(void *, struct wiphy *, struct net_device *, unsigned int, struct cfg80211_chan_def *); +typedef enum { + e1000_polarity_reversal_enabled = 0, + e1000_polarity_reversal_disabled = 1, + e1000_polarity_reversal_undefined = 255, +} e1000_polarity_reversal; -typedef void (*btf_trace_rdev_add_tx_ts)(void *, struct wiphy *, struct net_device *, u8, const u8 *, u8, u16); +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 void (*btf_trace_rdev_del_tx_ts)(void *, struct wiphy *, struct net_device *, u8, const u8 *); +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; -typedef void (*btf_trace_rdev_tdls_channel_switch)(void *, struct wiphy *, struct net_device *, const u8 *, u8, struct cfg80211_chan_def *); +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; +}; -typedef void (*btf_trace_rdev_tdls_cancel_channel_switch)(void *, struct wiphy *, struct net_device *, const u8 *); +struct e1000_tx_buffer; -typedef void (*btf_trace_rdev_set_pmk)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmk_conf *); +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; +}; -typedef void (*btf_trace_rdev_del_pmk)(void *, struct wiphy *, struct net_device *, const u8 *); +struct e1000_rx_buffer; -typedef void (*btf_trace_rdev_external_auth)(void *, struct wiphy *, struct net_device *, struct cfg80211_external_auth_params *); +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; +}; -typedef void (*btf_trace_rdev_start_radar_detection)(void *, struct wiphy *, struct net_device *, struct cfg80211_chan_def *, u32); +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; +}; -typedef void (*btf_trace_rdev_set_mcast_rate)(void *, struct wiphy *, struct net_device *, int *); +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; +}; -typedef void (*btf_trace_rdev_set_coalesce)(void *, struct wiphy *, struct cfg80211_coalesce *); +struct e1000_rx_buffer { + union { + struct page *page; + u8 *data; + } rxbuf; + dma_addr_t dma; +}; -typedef void (*btf_trace_rdev_abort_scan)(void *, struct wiphy *, struct wireless_dev *); +struct bulk_cb_wrap { + __le32 Signature; + __u32 Tag; + __le32 DataTransferLength; + __u8 Flags; + __u8 Lun; + __u8 Length; + __u8 CDB[16]; +}; -typedef void (*btf_trace_rdev_set_multicast_to_unicast)(void *, struct wiphy *, struct net_device *, const bool); +struct bulk_cs_wrap { + __le32 Signature; + __u32 Tag; + __le32 Residue; + __u8 Status; +}; -typedef void (*btf_trace_rdev_get_txq_stats)(void *, struct wiphy *, struct wireless_dev *); +struct input_led { + struct led_classdev cdev; + struct input_handle *handle; + unsigned int code; +}; -typedef void (*btf_trace_rdev_get_ftm_responder_stats)(void *, struct wiphy *, struct net_device *, struct cfg80211_ftm_responder_stats *); +struct input_leds { + struct input_handle handle; + unsigned int num_leds; + struct input_led leds[0]; +}; -typedef void (*btf_trace_rdev_start_pmsr)(void *, struct wiphy *, struct wireless_dev *, u64); +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_rdev_abort_pmsr)(void *, struct wiphy *, struct wireless_dev *, u64); +typedef void (*btf_trace_smbus_read)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int); -typedef void (*btf_trace_rdev_set_fils_aad)(void *, struct wiphy *, struct net_device *, struct cfg80211_fils_aad *); +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_rdev_update_owe_info)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *); +typedef void (*btf_trace_smbus_result)(void *, const struct i2c_adapter *, u16, unsigned short, char, u8, int, int); -typedef void (*btf_trace_rdev_probe_mesh_link)(void *, struct wiphy *, struct net_device *, const u8 *, const u8 *, size_t); +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]; +}; -typedef void (*btf_trace_rdev_set_tid_config)(void *, struct wiphy *, struct net_device *, struct cfg80211_tid_config *); +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]; +}; -typedef void (*btf_trace_rdev_reset_tid_config)(void *, struct wiphy *, struct net_device *, const u8 *, u8); +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]; +}; -typedef void (*btf_trace_rdev_set_sar_specs)(void *, struct wiphy *, struct cfg80211_sar_specs *); +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]; +}; -typedef void (*btf_trace_rdev_color_change)(void *, struct wiphy *, struct net_device *, struct cfg80211_color_change_settings *); +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; +}; -typedef void (*btf_trace_rdev_set_radar_background)(void *, struct wiphy *, struct cfg80211_chan_def *); +struct i2c_smbus_alert_setup { + int irq; +}; -typedef void (*btf_trace_rdev_add_intf_link)(void *, struct wiphy *, struct wireless_dev *, unsigned int); +struct trace_event_data_offsets_smbus_write {}; -typedef void (*btf_trace_rdev_del_intf_link)(void *, struct wiphy *, struct wireless_dev *, unsigned int); +struct trace_event_data_offsets_smbus_read {}; -typedef void (*btf_trace_cfg80211_return_bool)(void *, bool); +struct trace_event_data_offsets_smbus_reply {}; -typedef void (*btf_trace_cfg80211_notify_new_peer_candidate)(void *, struct net_device *, const u8 *); +struct trace_event_data_offsets_smbus_result {}; -typedef void (*btf_trace_cfg80211_send_rx_auth)(void *, struct net_device *); +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, +}; -struct cfg80211_rx_assoc_resp; +enum suspend_mode { + PRESUSPEND = 0, + PRESUSPEND_UNDO = 1, + POSTSUSPEND = 2, +}; -typedef void (*btf_trace_cfg80211_send_rx_assoc)(void *, struct net_device *, struct cfg80211_rx_assoc_resp *); +struct dm_dev_internal { + struct list_head list; + refcount_t count; + struct dm_dev *dm_dev; +}; -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 dm_arg_set { + unsigned int argc; + char **argv; }; -typedef void (*btf_trace_cfg80211_rx_unprot_mlme_mgmt)(void *, struct net_device *, const u8 *, int); +struct dm_arg { + unsigned int min; + unsigned int max; + char *error; +}; -typedef void (*btf_trace_cfg80211_rx_mlme_mgmt)(void *, struct net_device *, const u8 *, int); +struct blk_crypto_profile; -typedef void (*btf_trace_cfg80211_tx_mlme_mgmt)(void *, struct net_device *, const u8 *, int, bool); +struct blk_crypto_key; -typedef void (*btf_trace_cfg80211_send_auth_timeout)(void *, struct net_device *, const u8 *); +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 cfg80211_assoc_failure; +struct blk_crypto_keyslot; -typedef void (*btf_trace_cfg80211_send_assoc_failure)(void *, struct net_device *, struct cfg80211_assoc_failure *); +struct blk_crypto_profile { + struct blk_crypto_ll_ops ll_ops; + unsigned int max_dun_bytes_supported; + unsigned int modes_supported[5]; + struct device *dev; + unsigned int num_slots; + struct rw_semaphore lock; + struct lock_class_key lockdep_key; + wait_queue_head_t idle_slots_wait_queue; + struct list_head idle_slots; + spinlock_t idle_slots_lock; + struct hlist_head *slot_hashtable; + unsigned int log_slot_ht_size; + struct blk_crypto_keyslot *slots; +}; -struct cfg80211_assoc_failure { - const u8 *ap_mld_addr; - struct cfg80211_bss *bss[15]; - bool timeout; +struct blk_crypto_config { + enum blk_crypto_mode_num crypto_mode; + unsigned int data_unit_size; + unsigned int dun_bytes; }; -enum nl80211_key_type { - NL80211_KEYTYPE_GROUP = 0, - NL80211_KEYTYPE_PAIRWISE = 1, - NL80211_KEYTYPE_PEERKEY = 2, - NUM_NL80211_KEYTYPES = 3, +struct blk_crypto_key { + struct blk_crypto_config crypto_cfg; + unsigned int data_unit_size_bits; + unsigned int size; + u8 raw[64]; }; -typedef void (*btf_trace_cfg80211_michael_mic_failure)(void *, struct net_device *, const u8 *, enum nl80211_key_type, int, const u8 *); +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, +}; -typedef void (*btf_trace_cfg80211_ready_on_channel)(void *, struct wireless_dev *, u64, struct ieee80211_channel *, unsigned int); +enum timer_tread_format { + TREAD_FORMAT_NONE = 0, + TREAD_FORMAT_TIME64 = 1, + TREAD_FORMAT_TIME32 = 2, +}; -typedef void (*btf_trace_cfg80211_ready_on_channel_expired)(void *, struct wireless_dev *, u64, struct ieee80211_channel *); +enum { + SNDRV_TIMER_IOCTL_GPARAMS32 = 1077695492, + SNDRV_TIMER_IOCTL_INFO32 = 2162185233, + SNDRV_TIMER_IOCTL_STATUS_COMPAT32 = 1079530516, + SNDRV_TIMER_IOCTL_STATUS_COMPAT64 = 1080054804, +}; -typedef void (*btf_trace_cfg80211_tx_mgmt_expired)(void *, struct wireless_dev *, u64, struct ieee80211_channel *); +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; +}; -typedef void (*btf_trace_cfg80211_new_sta)(void *, struct net_device *, const u8 *, struct station_info *); +struct snd_timer_gparams32 { + struct snd_timer_id tid; + u32 period_num; + u32 period_den; + unsigned char reserved[32]; +}; -typedef void (*btf_trace_cfg80211_del_sta)(void *, struct net_device *, const u8 *); +struct snd_timer_gparams { + struct snd_timer_id tid; + unsigned long period_num; + unsigned long period_den; + unsigned char reserved[32]; +}; -typedef void (*btf_trace_cfg80211_rx_mgmt)(void *, struct wireless_dev *, struct cfg80211_rx_info *); +struct snd_timer_info32 { + u32 flags; + s32 card; + unsigned char id[64]; + unsigned char name[80]; + u32 reserved0; + u32 resolution; + unsigned char reserved[64]; +}; -typedef void (*btf_trace_cfg80211_mgmt_tx_status)(void *, struct wireless_dev *, u64, bool); +struct snd_timer_read; -typedef void (*btf_trace_cfg80211_control_port_tx_status)(void *, struct wireless_dev *, u64, bool); +struct snd_timer_tread64; -typedef void (*btf_trace_cfg80211_rx_control_port)(void *, struct net_device *, struct sk_buff *, bool, int); +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; +}; -enum nl80211_cqm_rssi_threshold_event { - NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW = 0, - NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH = 1, - NL80211_CQM_RSSI_BEACON_LOSS_EVENT = 2, +struct snd_timer_read { + unsigned int resolution; + unsigned int ticks; }; -typedef void (*btf_trace_cfg80211_cqm_rssi_notify)(void *, struct net_device *, enum nl80211_cqm_rssi_threshold_event, s32); +struct snd_timer_tread64 { + int event; + u8 pad1[4]; + s64 tstamp_sec; + s64 tstamp_nsec; + unsigned int val; + u8 pad2[4]; +}; -typedef void (*btf_trace_cfg80211_reg_can_beacon)(void *, struct wiphy *, struct cfg80211_chan_def *, enum nl80211_iftype, bool); +struct snd_timer_params { + unsigned int flags; + unsigned int ticks; + unsigned int queue_size; + unsigned int reserved0; + unsigned int filter; + unsigned char reserved[60]; +}; -typedef void (*btf_trace_cfg80211_chandef_dfs_required)(void *, struct wiphy *, struct cfg80211_chan_def *); +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]; +}; -typedef void (*btf_trace_cfg80211_ch_switch_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int, u16); +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]; +}; -typedef void (*btf_trace_cfg80211_ch_switch_started_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int, u16); +struct snd_timer_select { + struct snd_timer_id id; + unsigned char reserved[32]; +}; -typedef void (*btf_trace_cfg80211_radar_event)(void *, struct wiphy *, struct cfg80211_chan_def *, bool); +struct snd_timer_gstatus { + struct snd_timer_id tid; + unsigned long resolution; + unsigned long resolution_num; + unsigned long resolution_den; + unsigned char reserved[32]; +}; -typedef void (*btf_trace_cfg80211_cac_event)(void *, struct net_device *, enum nl80211_radar_event); +struct snd_timer_tread32 { + int event; + s32 tstamp_sec; + s32 tstamp_nsec; + unsigned int val; +}; -typedef void (*btf_trace_cfg80211_rx_spurious_frame)(void *, struct net_device *, const u8 *); +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]; +}; -typedef void (*btf_trace_cfg80211_rx_unexpected_4addr_frame)(void *, struct net_device *, const u8 *); +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]; +}; -typedef void (*btf_trace_cfg80211_ibss_joined)(void *, struct net_device *, const u8 *, struct ieee80211_channel *); +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; +}; -typedef void (*btf_trace_cfg80211_probe_status)(void *, struct net_device *, const u8 *, u64, bool); +enum { + HDA_INPUT = 0, + HDA_OUTPUT = 1, +}; -typedef void (*btf_trace_cfg80211_cqm_pktloss_notify)(void *, struct net_device *, const u8 *, u32); +enum { + HDA_DIG_NONE = 0, + HDA_DIG_EXCLUSIVE = 1, + HDA_DIG_ANALOG_DUP = 2, +}; -typedef void (*btf_trace_cfg80211_gtk_rekey_notify)(void *, struct net_device *, const u8 *); +enum { + HDA_FRONT = 0, + HDA_REAR = 1, + HDA_CLFE = 2, + HDA_SIDE = 3, +}; -typedef void (*btf_trace_cfg80211_pmksa_candidate_notify)(void *, struct net_device *, int, const u8 *, bool); +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); +}; -typedef void (*btf_trace_cfg80211_report_obss_beacon)(void *, struct wiphy *, const u8 *, size_t, int, int); +struct hda_conn_list { + struct list_head list; + int len; + hda_nid_t nid; + hda_nid_t conns[0]; +}; -typedef void (*btf_trace_cfg80211_tdls_oper_request)(void *, struct wiphy *, struct net_device *, const u8 *, enum nl80211_tdls_operation, u16); +struct hda_nid_item { + struct snd_kcontrol *kctl; + unsigned int index; + hda_nid_t nid; + unsigned short flags; +}; -typedef void (*btf_trace_cfg80211_scan_done)(void *, struct cfg80211_scan_request *, struct cfg80211_scan_info *); +struct hda_cvt_setup { + hda_nid_t nid; + u8 stream_tag; + u8 channel_id; + u16 format_id; + unsigned char active; + unsigned char dirty; +}; -typedef void (*btf_trace_cfg80211_sched_scan_stopped)(void *, struct wiphy *, u64); +typedef int (*map_follower_func_t)(struct hda_codec *, void *, struct snd_kcontrol *); -typedef void (*btf_trace_cfg80211_sched_scan_results)(void *, struct wiphy *, u64); +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; +}; -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); +struct follower_init_arg { + struct hda_codec *codec; + int step; +}; -typedef void (*btf_trace_cfg80211_inform_bss_frame)(void *, struct wiphy *, struct cfg80211_inform_bss *, struct ieee80211_mgmt *, size_t); +struct hda_vmaster_mute_hook { + struct snd_kcontrol *sw_kctl; + void (*hook)(void *, int); + struct hda_codec *codec; +}; -typedef void (*btf_trace_cfg80211_return_bss)(void *, struct cfg80211_bss *); +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; +}; -typedef void (*btf_trace_cfg80211_return_uint)(void *, unsigned int); +struct hda_amp_list; -typedef void (*btf_trace_cfg80211_return_u32)(void *, u32); +struct hda_loopback_check { + const struct hda_amp_list *amplist; + int power_on; +}; -struct cfg80211_wowlan_wakeup; +struct hda_amp_list { + hda_nid_t nid; + unsigned char dir; + unsigned char idx; +}; -typedef void (*btf_trace_cfg80211_report_wowlan_wakeup)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_wowlan_wakeup *); +struct hda_input_mux_item { + char label[32]; + unsigned int index; +}; -struct cfg80211_wowlan_nd_info; +struct hda_input_mux { + unsigned int num_items; + struct hda_input_mux_item items[36]; +}; -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 tso_t { + int next_frag_idx; + int size; + void *data; + u16 ip_id; + u8 tlen; + bool ipv6; + u32 tcp_seq; }; -struct cfg80211_wowlan_nd_match; +enum qdisc_state2_t { + __QDISC_STATE2_RUNNING = 0, +}; -struct cfg80211_wowlan_nd_info { - int n_matches; - struct cfg80211_wowlan_nd_match *matches[0]; +struct skb_array { + struct ptr_ring ring; }; -struct cfg80211_wowlan_nd_match { - struct cfg80211_ssid ssid; - int n_channels; - u32 channels[0]; +struct pfifo_fast_priv { + struct skb_array q[3]; }; -struct cfg80211_ft_event_params; +struct tc_prio_qopt { + int bands; + __u8 priomap[16]; +}; -typedef void (*btf_trace_cfg80211_ft_event)(void *, struct wiphy *, struct net_device *, struct cfg80211_ft_event_params *); +struct psched_ratecfg { + u64 rate_bytes_ps; + u32 mult; + u16 overhead; + u16 mpu; + u8 linklayer; + u8 shift; +}; -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 tc_ratespec { + unsigned char cell_log; + __u8 linklayer; + unsigned short overhead; + short cell_align; + unsigned short mpu; + __u32 rate; }; -typedef void (*btf_trace_cfg80211_stop_iface)(void *, struct wiphy *, struct wireless_dev *); +struct psched_pktrate { + u64 rate_pkts_ps; + u32 mult; + u8 shift; +}; -typedef void (*btf_trace_cfg80211_pmsr_report)(void *, struct wiphy *, struct wireless_dev *, u64, const u8 *); +struct mini_Qdisc_pair { + struct mini_Qdisc miniq1; + struct mini_Qdisc miniq2; + struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq; +}; -typedef void (*btf_trace_cfg80211_pmsr_complete)(void *, struct wiphy *, struct wireless_dev *, u64); +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, +}; -typedef void (*btf_trace_cfg80211_update_owe_info_event)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *); +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; +}; -typedef void (*btf_trace_cfg80211_bss_color_notify)(void *, struct net_device *, enum nl80211_commands, u8, u64); +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; +}; -typedef void (*btf_trace_cfg80211_assoc_comeback)(void *, struct wireless_dev *, const u8 *, u32); +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, +}; -typedef void (*btf_trace_rdev_add_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_parameters *); +struct xt_state_info { + unsigned int statemask; +}; -typedef void (*btf_trace_rdev_mod_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_parameters *); +struct ping_table { + struct hlist_head hash[64]; + spinlock_t lock; +}; -typedef void (*btf_trace_rdev_del_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_del_parameters *); +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); +}; -typedef void (*btf_trace_rdev_set_hw_timestamp)(void *, struct wiphy *, struct net_device *, struct cfg80211_set_hw_timestamp *); +struct ipcm_cookie { + struct sockcm_cookie sockc; + __be32 addr; + int oif; + struct ip_options_rcu *opt; + __u8 protocol; + __u8 ttl; + __s16 tos; + char priority; + __u16 gso_size; +}; -typedef void (*btf_trace_cfg80211_links_removed)(void *, struct net_device *, u16); +struct ip_options_data { + struct ip_options_rcu opt; + char data[40]; +}; -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]; +enum { + TCP_BPF_IPV4 = 0, + TCP_BPF_IPV6 = 1, + TCP_BPF_NUM_PROTS = 2, }; -struct trace_event_raw_rdev_return_int { - struct trace_entry ent; - char wiphy_name[32]; - int ret; - char __data[0]; +enum { + TCP_BPF_BASE = 0, + TCP_BPF_TX = 1, + TCP_BPF_RX = 2, + TCP_BPF_TXRX = 3, + TCP_BPF_NUM_CFGS = 4, }; -struct trace_event_raw_rdev_scan { - struct trace_entry ent; - char wiphy_name[32]; - char __data[0]; +struct tx_work { + struct delayed_work work; + struct sock *sk; }; -struct trace_event_raw_wiphy_only_evt { - struct trace_entry ent; - char wiphy_name[32]; - char __data[0]; +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 trace_event_raw_wiphy_enabled_evt { - struct trace_entry ent; - char wiphy_name[32]; - bool enabled; - char __data[0]; +struct ipv6_params { + __s32 disable_ipv6; + __s32 autoconf; }; -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 fib6_result; + +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 *); + struct sk_buff * (*xfrm6_gro_udp_encap_rcv)(struct sock *, struct list_head *, 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 trace_event_raw_wiphy_wdev_evt { - struct trace_entry ent; - char wiphy_name[32]; - u32 id; - char __data[0]; +struct fib6_result { + struct fib6_nh *nh; + struct fib6_info *f6i; + u32 fib6_flags; + u8 fib6_type; + struct rt6_info *rt6; }; -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 ipv6_bpf_stub { + int (*inet6_bind)(struct sock *, struct sockaddr *, int, u32); + struct sock * (*udp6_lib_lookup)(struct net *, const struct in6_addr *, __be16, const struct in6_addr *, __be16, int, int, struct udp_table *, struct sk_buff *); + int (*ipv6_setsockopt)(struct sock *, int, int, sockptr_t, unsigned int); + int (*ipv6_getsockopt)(struct sock *, int, int, sockptr_t, sockptr_t); + int (*ipv6_dev_get_saddr)(struct net *, const struct net_device *, const struct in6_addr *, unsigned int, struct in6_addr *); }; -struct 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]; +enum flowlabel_reflect { + FLOWLABEL_REFLECT_ESTABLISHED = 1, + FLOWLABEL_REFLECT_TCP_RESET = 2, + FLOWLABEL_REFLECT_ICMPV6_ECHO_REPLIES = 4, }; -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 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 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 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 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]; +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, }; -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]; +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 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 sr6_tlv { + __u8 type; + __u8 len; + __u8 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 ieee80211_mmie { + u8 element_id; + u8 length; + __le16 key_id; + u8 sequence_number[6]; + u8 mic[8]; }; -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 ieee80211_mmie_16 { + u8 element_id; + u8 length; + __le16 key_id; + u8 sequence_number[6]; + u8 mic[16]; }; -struct trace_event_raw_wiphy_netdev_evt { - struct trace_entry ent; - char wiphy_name[32]; - char name[16]; - int ifindex; - char __data[0]; +enum ieee80211_encrypt { + ENCRYPT_NO = 0, + ENCRYPT_MGMT = 1, + ENCRYPT_DATA = 2, }; -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]; +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, }; -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]; +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, }; -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]; +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_radiotap_vendor_namespaces; + +struct ieee80211_radiotap_namespace; + +struct ieee80211_radiotap_iterator { + struct ieee80211_radiotap_header *_rtheader; + const struct ieee80211_radiotap_vendor_namespaces *_vns; + const struct ieee80211_radiotap_namespace *current_namespace; + unsigned char *_arg; + unsigned char *_next_ns_data; + __le32 *_next_bitmap; + unsigned char *this_arg; + int this_arg_index; + int this_arg_size; + int is_radiotap_ns; + int _max_length; + int _arg_index; + uint32_t _bitmap_shifter; + int _reset_on_ext; }; -struct 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 ieee80211_radiotap_vendor_namespaces { + const struct ieee80211_radiotap_namespace *ns; + int n_ns; }; -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 radiotap_align_size; + +struct ieee80211_radiotap_namespace { + const struct radiotap_align_size *align_size; + int n_bits; + uint32_t oui; + uint8_t subns; }; -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 radiotap_align_size { + uint8_t align: 4; + uint8_t size: 4; }; -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]; +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 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 ieee80211_ema_beacons { + u8 cnt; + struct { + struct sk_buff *skb; + struct ieee80211_mutable_offsets offs; + } bcn[0]; }; -struct trace_event_raw_rdev_dump_mpp { - struct trace_entry ent; - char wiphy_name[32]; - char name[16]; - int ifindex; +struct mesh_path { 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; + 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; - u32 exptime; + u8 hop_count; + unsigned long exp_time; u32 discovery_timeout; u8 discovery_retries; - u8 flags; - char __data[0]; + enum mesh_path_flags flags; + spinlock_t state_lock; + u8 rann_snd_addr[6]; + u32 rann_metric; + unsigned long last_preq_to_root; + unsigned long fast_tx_check; + bool is_root; + bool is_gate; + u32 path_change_count; }; -struct 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 ieee80211s_hdr { + u8 flags; + u8 ttl; + __le32 seqnum; + u8 eaddr1[6]; + u8 eaddr2[6]; +} __attribute__((packed)); -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 ieee80211_pspoll { + __le16 frame_control; + __le16 aid; + u8 bssid[6]; + u8 ta[6]; }; -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 ieee80211_hdr_3addr { + __le16 frame_control; + __le16 duration_id; + u8 addr1[6]; + u8 addr2[6]; + u8 addr3[6]; + __le16 seq_ctrl; }; -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 ieee80211_rts { + __le16 frame_control; + __le16 duration; + u8 ra[6]; + u8 ta[6]; }; -struct trace_event_raw_rdev_inform_bss { - struct trace_entry ent; - char wiphy_name[32]; - u8 bssid[6]; - enum nl80211_band band; - u32 center_freq; - u16 freq_offset; - char __data[0]; +struct ieee80211_cts { + __le16 frame_control; + __le16 duration; + u8 ra[6]; }; -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 pci_root_info { + struct acpi_pci_root_info common; + struct pci_sysdata sd; + bool mcfg_added; + u8 start_bus; + u8 end_bus; }; -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 klist_waiter { + struct list_head list; + struct klist_node *node; + struct task_struct *process; + int woken; }; -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 vdso_exception_table_entry { + int insn; + int fixup; }; -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 change_member { + struct e820_entry *entry; + unsigned long long addr; }; -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 cpu { + int node_id; + int hotpluggable; + struct device dev; }; -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 x86_cpu { + struct cpu cpu; }; -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 muldiv { + u32 multiplier; + u32 divider; }; -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 freq_desc { + bool use_msr_plat; + struct muldiv muldiv[16]; + u32 freqs[16]; + u32 mask; }; -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 _cache_table { + unsigned char descriptor; + char cache_type; + short size; }; -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]; +enum cache_type { + CACHE_TYPE_NOCACHE = 0, + CACHE_TYPE_INST = 1, + CACHE_TYPE_DATA = 2, + CACHE_TYPE_SEPARATE = 3, + CACHE_TYPE_UNIFIED = 4, }; -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]; +enum _cache_type { + CTYPE_NULL = 0, + CTYPE_DATA = 1, + CTYPE_INST = 2, + CTYPE_UNIFIED = 3, }; -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]; +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; }; -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]; +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; }; -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]; +union _cpuid4_leaf_ecx { + struct { + unsigned int number_of_sets; + } split; + u32 full; }; -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]; +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; }; -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]; +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; }; -struct trace_event_raw_rdev_join_ocb { - struct trace_entry ent; - char wiphy_name[32]; - char name[16]; - int ifindex; - char __data[0]; +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 trace_event_raw_rdev_set_wiphy_params { - struct trace_entry ent; - char wiphy_name[32]; - u32 changed; - char __data[0]; -}; +struct cacheinfo; -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 cpu_cacheinfo { + struct cacheinfo *info_list; + unsigned int per_cpu_data_slice_size; + unsigned int num_levels; + unsigned int num_leaves; + bool cpu_map_populated; + bool early_ci_levels; }; -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 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 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 _cpuid4_info_regs { + union _cpuid4_leaf_eax eax; + union _cpuid4_leaf_ebx ebx; + union _cpuid4_leaf_ecx ecx; + unsigned int id; + unsigned long size; + struct amd_northbridge *nb; }; -struct 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]; +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 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 acpi_madt_multiproc_wakeup_mailbox { + u16 command; + u16 reserved; + u32 apic_id; + u64 wakeup_vector; + u8 reserved_os[2032]; + u8 reserved_firmware[2048]; }; -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]; +enum ioapic_domain_type { + IOAPIC_DOMAIN_INVALID = 0, + IOAPIC_DOMAIN_LEGACY = 1, + IOAPIC_DOMAIN_STRICT = 2, + IOAPIC_DOMAIN_DYNAMIC = 3, }; -struct trace_event_raw_tx_rx_evt { - struct trace_entry ent; - char wiphy_name[32]; - u32 tx; - u32 rx; - char __data[0]; +enum mp_irq_source_types { + mp_INT = 0, + mp_NMI = 1, + mp_SMI = 2, + mp_ExtINT = 3, }; -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 acpi_table_boot { + struct acpi_table_header header; + u8 cmos_index; + u8 reserved[3]; }; -struct trace_event_raw_rdev_tdls_mgmt { - struct trace_entry ent; - char wiphy_name[32]; - char name[16]; - int ifindex; - u8 peer[6]; - int link_id; - u8 action_code; - u8 dialog_token; - u16 status_code; - u32 peer_capability; - bool initiator; - u32 __data_loc_buf; - char __data[0]; -}; +struct acpi_madt_local_apic_override { + struct acpi_subtable_header header; + u16 reserved; + u64 address; +} __attribute__((packed)); -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 acpi_madt_local_x2apic_nmi { + struct acpi_subtable_header header; + u16 inti_flags; + u32 uid; + u8 lint; + u8 reserved[3]; }; -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 acpi_madt_local_apic_nmi { + struct acpi_subtable_header header; + u8 processor_id; + u16 inti_flags; + u8 lint; +} __attribute__((packed)); -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 acpi_madt_interrupt_override { + struct acpi_subtable_header header; + u8 bus; + u8 source_irq; + u32 global_irq; + u16 inti_flags; +} __attribute__((packed)); -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 acpi_madt_nmi_source { + struct acpi_subtable_header header; + u16 inti_flags; + u32 global_irq; }; -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 acpi_madt_multiproc_wakeup { + struct acpi_subtable_header header; + u16 mailbox_version; + u32 reserved; + u64 base_address; }; -struct trace_event_raw_rdev_remain_on_channel { - struct trace_entry ent; - char wiphy_name[32]; +struct acpi_table_hpet { + struct acpi_table_header header; u32 id; - enum nl80211_band band; - u32 center_freq; - u16 freq_offset; - unsigned int duration; - char __data[0]; -}; + struct acpi_generic_address address; + u8 sequence; + u16 minimum_tick; + u8 flags; +} __attribute__((packed)); -struct trace_event_raw_rdev_return_int_cookie { - struct trace_entry ent; - char wiphy_name[32]; - int ret; - u64 cookie; - char __data[0]; +struct ioapic_domain_cfg { + enum ioapic_domain_type type; + const struct irq_domain_ops *ops; + struct device_node *dev; }; -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 mpc_intsrc { + unsigned char type; + unsigned char irqtype; + unsigned short irqflag; + unsigned char srcbus; + unsigned char srcbusirq; + unsigned char dstapic; + unsigned char dstirq; }; -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]; +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 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 map_range { + unsigned long start; + unsigned long end; + unsigned int page_size_mask; }; -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]; +enum rwsem_waiter_type { + RWSEM_WAITING_FOR_WRITE = 0, + RWSEM_WAITING_FOR_READ = 1, }; -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]; +enum rwsem_wake_type { + RWSEM_WAKE_ANY = 0, + RWSEM_WAKE_READERS = 1, + RWSEM_WAKE_READ_OWNED = 2, }; -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]; +enum owner_state { + OWNER_NULL = 1, + OWNER_WRITER = 2, + OWNER_READER = 4, + OWNER_NONSPINNABLE = 8, }; -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 rwsem_waiter { + struct list_head list; + struct task_struct *task; + enum rwsem_waiter_type type; + unsigned long timeout; + bool handoff_set; }; -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]; -}; +typedef void (*btf_trace_module_load)(void *, struct module *); -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]; -}; +typedef void (*btf_trace_module_free)(void *, struct module *); -struct trace_event_raw_rdev_del_nan_func { - struct trace_entry ent; - char wiphy_name[32]; - u32 id; - u64 cookie; - char __data[0]; -}; +typedef void (*btf_trace_module_get)(void *, struct module *, unsigned long); -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]; -}; +typedef void (*btf_trace_module_put)(void *, struct module *, unsigned long); -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]; -}; +typedef void (*btf_trace_module_request)(void *, char *, bool, unsigned long); -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]; +enum mod_license { + NOT_GPL_ONLY = 0, + GPL_ONLY = 1, }; -struct trace_event_raw_rdev_crit_proto_stop { - struct trace_entry ent; - char wiphy_name[32]; - u32 id; - char __data[0]; +struct symsearch { + const struct kernel_symbol *start; + const struct kernel_symbol *stop; + const s32 *crcs; + enum mod_license license; }; -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]; +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, }; -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]; +enum fail_dup_mod_reason { + FAIL_DUP_MOD_BECOMING = 0, + FAIL_DUP_MOD_LOAD = 1, }; -struct trace_event_raw_rdev_set_ap_chanwidth { +struct trace_event_raw_module_load { 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; + unsigned int taints; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_rdev_add_tx_ts { +struct trace_event_raw_module_free { struct trace_entry ent; - char wiphy_name[32]; - char name[16]; - int ifindex; - u8 peer[6]; - u8 tsid; - u8 user_prio; - u16 admitted_time; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_rdev_del_tx_ts { +struct trace_event_raw_module_refcnt { struct trace_entry ent; - char wiphy_name[32]; - char name[16]; - int ifindex; - u8 peer[6]; - u8 tsid; + unsigned long ip; + int refcnt; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_rdev_tdls_channel_switch { +struct trace_event_raw_module_request { 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; + unsigned long ip; + bool wait; + u32 __data_loc_name; 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 mod_initfree { + struct llist_node node; + void *init_text; + void *init_data; + void *init_rodata; }; -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 idempotent { + const void *cookie; + struct hlist_node entry; + struct completion complete; + int ret; }; -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_data_offsets_module_load { + u32 name; }; -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_data_offsets_module_free { + u32 name; }; -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_data_offsets_module_refcnt { + u32 name; }; -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_data_offsets_module_request { + u32 name; }; -struct trace_event_raw_rdev_set_coalesce { - struct trace_entry ent; - char wiphy_name[32]; - int n_rules; - char __data[0]; +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 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]; +enum { + TRACE_FUNC_NO_OPTS = 0, + TRACE_FUNC_OPT_STACK = 1, + TRACE_FUNC_OPT_NO_REPEATS = 2, + TRACE_FUNC_OPT_HIGHEST_BIT = 4, }; -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]; +enum event_trigger_type { + ETT_NONE = 0, + ETT_TRACE_ONOFF = 1, + ETT_SNAPSHOT = 2, + ETT_STACKTRACE = 4, + ETT_EVENT_ENABLE = 8, + ETT_EVENT_HIST = 16, + ETT_HIST_ENABLE = 32, + ETT_EVENT_EPROBE = 64, }; -struct trace_event_raw_wiphy_wdev_cookie_evt { - struct trace_entry ent; - char wiphy_name[32]; - u32 id; - u64 cookie; - char __data[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 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 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 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 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 *); }; -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]; +enum { + EVENT_FILE_FL_ENABLED_BIT = 0, + EVENT_FILE_FL_RECORDED_CMD_BIT = 1, + EVENT_FILE_FL_RECORDED_TGID_BIT = 2, + EVENT_FILE_FL_FILTERED_BIT = 3, + EVENT_FILE_FL_NO_SET_FILTER_BIT = 4, + EVENT_FILE_FL_SOFT_MODE_BIT = 5, + EVENT_FILE_FL_SOFT_DISABLED_BIT = 6, + EVENT_FILE_FL_TRIGGER_MODE_BIT = 7, + EVENT_FILE_FL_TRIGGER_COND_BIT = 8, + EVENT_FILE_FL_PID_FILTER_BIT = 9, + EVENT_FILE_FL_WAS_ENABLED_BIT = 10, + EVENT_FILE_FL_FREED_BIT = 11, }; -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]; +enum event_command_flags { + EVENT_CMD_FL_POST_TRIGGER = 1, + EVENT_CMD_FL_NEEDS_REC = 2, }; -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]; +enum { + EVENT_TRIGGER_FL_PROBE = 1, }; -struct trace_event_raw_rdev_set_sar_specs { - struct trace_entry ent; - char wiphy_name[32]; - u16 type; - u16 num; - char __data[0]; +struct enable_trigger_data { + struct trace_event_file *file; + bool enable; + bool hist; }; -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 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; }; -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 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: 64; + long: 64; }; -struct trace_event_raw_cfg80211_return_bool { - struct trace_entry ent; - bool ret; - char __data[0]; +struct bpf_devmap_val { + __u32 ifindex; + union { + int fd; + __u32 id; + } bpf_prog; }; -struct trace_event_raw_cfg80211_netdev_mac_evt { - struct trace_entry ent; - char name[16]; - int ifindex; - u8 macaddr[6]; - char __data[0]; +struct bpf_dtab_netdev { + struct net_device *dev; + struct hlist_node index_hlist; + struct bpf_prog *xdp_prog; + struct callback_head rcu; + unsigned int idx; + struct bpf_devmap_val val; }; -struct trace_event_raw_netdev_evt_only { - struct trace_entry ent; - char name[16]; - int ifindex; - char __data[0]; +struct memory_dev_type; + +struct node_memory_type_map { + struct memory_dev_type *memtype; + int map_count; }; -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 memory_dev_type { + struct list_head tier_sibling; + struct list_head list; + int adistance; + nodemask_t nodes; + struct kref kref; }; -struct trace_event_raw_netdev_frame_event { - struct trace_entry ent; - char name[16]; - int ifindex; - u32 __data_loc_frame; - char __data[0]; +struct demotion_nodes { + nodemask_t preferred; }; -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 node_hmem_attrs { + unsigned int read_bandwidth; + unsigned int write_bandwidth; + unsigned int read_latency; + unsigned int write_latency; }; -struct trace_event_raw_netdev_mac_evt { - struct trace_entry ent; - char name[16]; - int ifindex; - u8 mac[6]; - char __data[0]; +struct dentry_stat_t { + long nr_dentry; + long nr_unused; + long age_limit; + long want_pages; + long nr_negative; + long dummy; }; -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]; +enum d_walk_ret { + D_WALK_CONTINUE = 0, + D_WALK_QUIT = 1, + D_WALK_NORETRY = 2, + D_WALK_SKIP = 3, }; -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 external_name { + union { + atomic_t count; + struct callback_head head; + } u; + unsigned char name[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 name_snapshot { + struct qstr name; + unsigned char inline_name[32]; }; -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 check_mount { + struct vfsmount *mnt; + unsigned int mounted; }; -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 select_data { + struct dentry *start; + union { + long found; + struct dentry *victim; + }; + struct list_head dispose; }; -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]; +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, }; -struct trace_event_raw_cfg80211_rx_mgmt { - struct trace_entry ent; - u32 id; - int freq; - int sig_dbm; - char __data[0]; +struct inotify_inode_mark { + struct fsnotify_mark fsn_mark; + int wd; }; -struct trace_event_raw_cfg80211_mgmt_tx_status { - struct trace_entry ent; - u32 id; - u64 cookie; - bool ack; - char __data[0]; +struct mb_cache { + struct hlist_bl_head *c_hash; + int c_bucket_bits; + unsigned long c_max_entries; + spinlock_t c_list_lock; + struct list_head c_list; + unsigned long c_entry_count; + struct shrinker *c_shrink; + struct work_struct c_shrink_work; }; -struct trace_event_raw_cfg80211_control_port_tx_status { +typedef void (*btf_trace_iomap_readpage)(void *, struct inode *, int); + +typedef void (*btf_trace_iomap_readahead)(void *, struct inode *, int); + +typedef void (*btf_trace_iomap_writepage)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_release_folio)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_invalidate_folio)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_dio_invalidate_fail)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_dio_rw_queued)(void *, struct inode *, loff_t, u64); + +typedef void (*btf_trace_iomap_iter_dstmap)(void *, struct inode *, struct iomap *); + +typedef void (*btf_trace_iomap_iter_srcmap)(void *, struct inode *, struct iomap *); + +typedef void (*btf_trace_iomap_writepage_map)(void *, struct inode *, struct iomap *); + +typedef void (*btf_trace_iomap_iter)(void *, struct iomap_iter *, const void *, unsigned long); + +typedef void (*btf_trace_iomap_dio_rw_begin)(void *, struct kiocb *, struct iov_iter *, unsigned int, size_t); + +typedef void (*btf_trace_iomap_dio_complete)(void *, struct kiocb *, int, ssize_t); + +struct trace_event_raw_iomap_readpage_class { struct trace_entry ent; - u32 id; - u64 cookie; - bool ack; + dev_t dev; + u64 ino; + int nr_pages; char __data[0]; }; -struct trace_event_raw_cfg80211_rx_control_port { +struct trace_event_raw_iomap_range_class { struct trace_entry ent; - char name[16]; - int ifindex; - int len; - u8 from[6]; - u16 proto; - bool unencrypted; - int link_id; + dev_t dev; + u64 ino; + loff_t size; + loff_t offset; + u64 length; char __data[0]; }; -struct trace_event_raw_cfg80211_cqm_rssi_notify { +struct trace_event_raw_iomap_class { struct trace_entry ent; - char name[16]; - int ifindex; - enum nl80211_cqm_rssi_threshold_event rssi_event; - s32 rssi_level; + 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_cfg80211_reg_can_beacon { +struct trace_event_raw_iomap_iter { 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; + 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_raw_cfg80211_chandef_dfs_required { +struct trace_event_raw_iomap_dio_rw_begin { 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; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + size_t count; + size_t done_before; + int ki_flags; + unsigned int dio_flags; + bool aio; char __data[0]; }; -struct trace_event_raw_cfg80211_ch_switch_notify { +struct trace_event_raw_iomap_dio_complete { 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; + dev_t dev; + ino_t ino; + loff_t isize; + loff_t pos; + int ki_flags; + bool aio; + int error; + ssize_t ret; char __data[0]; }; -struct trace_event_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_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 trace_event_data_offsets_iomap_dio_rw_begin {}; + +struct trace_event_data_offsets_iomap_dio_complete {}; + +struct xattr; + +typedef int (*initxattrs)(struct inode *, const struct xattr *, void *); + +struct xattr { + const char *name; + void *value; + size_t value_len; }; -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]; +typedef s32 compat_key_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; }; -struct trace_event_raw_cfg80211_cac_event { - struct trace_entry ent; - char name[16]; - int ifindex; - enum nl80211_radar_event evt; - char __data[0]; +typedef int __kernel_key_t; + +typedef unsigned int __kernel_mode_t; + +struct ipc64_perm { + __kernel_key_t key; + __kernel_uid32_t uid; + __kernel_gid32_t gid; + __kernel_uid32_t cuid; + __kernel_gid32_t cgid; + __kernel_mode_t mode; + unsigned char __pad1[0]; + unsigned short seq; + unsigned short __pad2; + __kernel_ulong_t __unused1; + __kernel_ulong_t __unused2; }; -struct trace_event_raw_cfg80211_rx_evt { - struct trace_entry ent; - char name[16]; - int ifindex; - u8 addr[6]; - char __data[0]; +typedef __kernel_key_t key_t; + +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; }; -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 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 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 sem_undo_list { + refcount_t refcnt; + spinlock_t lock; + struct list_head list_proc; }; -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 ipc_params { + key_t key; + int flg; + union { + size_t size; + int nsems; + } u; }; -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 kern_ipc_perm { + spinlock_t lock; + bool deleted; + int id; + key_t key; + kuid_t uid; + kgid_t gid; + kuid_t cuid; + kgid_t cgid; + umode_t mode; + unsigned long seq; + void *security; + struct rhash_head khtnode; + struct callback_head rcu; + refcount_t refcount; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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 sem_undo { + struct list_head list_proc; + struct callback_head rcu; + struct sem_undo_list *ulp; + struct list_head list_id; + int semid; + short semadj[0]; }; -struct 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 sem { + int semval; + struct pid *sempid; + spinlock_t lock; + struct list_head pending_alter; + struct list_head pending_const; + time64_t sem_otime; }; -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 sem_array { + struct kern_ipc_perm sem_perm; + time64_t sem_ctime; + struct list_head pending_alter; + struct list_head pending_const; + struct list_head list_id; + int sem_nsems; + int complex_count; + unsigned int use_global_lock; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + struct sem sems[0]; }; -struct trace_event_raw_wiphy_id_evt { - struct trace_entry ent; - char wiphy_name[32]; - u64 id; - char __data[0]; +struct sembuf; + +struct sem_queue { + struct list_head list; + struct task_struct *sleeper; + struct sem_undo *undo; + struct pid *pid; + int status; + struct sembuf *sops; + struct sembuf *blocking; + int nsops; + bool alter; + bool dupsop; }; -struct 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 sembuf { + unsigned short sem_num; + short sem_op; + short sem_flg; }; -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 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 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 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 trace_event_raw_cfg80211_return_uint { - struct trace_entry ent; - unsigned int ret; - char __data[0]; +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 trace_event_raw_cfg80211_return_u32 { - struct trace_entry ent; - u32 ret; - char __data[0]; +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 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 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 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 seminfo { + int semmap; + int semmni; + int semmns; + int semmnu; + int semmsl; + int semopm; + int semume; + int semusz; + int semvmx; + int semaem; }; -struct trace_event_raw_cfg80211_stop_iface { - struct trace_entry ent; - char wiphy_name[32]; - u32 id; - char __data[0]; +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_istat_hash { + atomic64_t hash_cnt; + atomic64_t hash_tlen; + atomic64_t err_cnt; +}; + +struct crypto_istat_rng { + atomic64_t generate_cnt; + atomic64_t generate_tlen; + atomic64_t seed_cnt; + atomic64_t err_cnt; }; -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 bio_map_data { + bool is_our_pages: 1; + bool is_null_mapped: 1; + struct iov_iter iter; + struct iovec iov[0]; }; -struct trace_event_raw_cfg80211_pmsr_complete { - struct trace_entry ent; - char wiphy_name[32]; - u32 id; - u64 cookie; - char __data[0]; +struct bvec_iter_all { + struct bio_vec bv; + int idx; + unsigned int done; }; -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]; +typedef struct blkcg_policy_data *blkcg_pol_alloc_cpd_fn(gfp_t); + +typedef void blkcg_pol_free_cpd_fn(struct blkcg_policy_data *); + +typedef struct blkg_policy_data *blkcg_pol_alloc_pd_fn(struct gendisk *, struct blkcg *, gfp_t); + +typedef void blkcg_pol_init_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_online_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_offline_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_free_pd_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_reset_pd_stats_fn(struct blkg_policy_data *); + +typedef void blkcg_pol_stat_pd_fn(struct blkg_policy_data *, struct seq_file *); + +struct blkcg_policy { + int plid; + struct cftype *dfl_cftypes; + struct cftype *legacy_cftypes; + blkcg_pol_alloc_cpd_fn *cpd_alloc_fn; + blkcg_pol_free_cpd_fn *cpd_free_fn; + blkcg_pol_alloc_pd_fn *pd_alloc_fn; + blkcg_pol_init_pd_fn *pd_init_fn; + blkcg_pol_online_pd_fn *pd_online_fn; + blkcg_pol_offline_pd_fn *pd_offline_fn; + blkcg_pol_free_pd_fn *pd_free_fn; + blkcg_pol_reset_pd_stats_fn *pd_reset_stats_fn; + blkcg_pol_stat_pd_fn *pd_stat_fn; }; -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 percentile_stats { + u64 total; + u64 missed; }; -struct trace_event_raw_cfg80211_assoc_comeback { - struct trace_entry ent; - u32 id; - u8 ap_addr[6]; - u32 timeout; - char __data[0]; +struct blk_rq_stat { + u64 mean; + u64 min; + u64 max; + u32 nr_samples; + u64 batch; }; -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 latency_stat { + union { + struct percentile_stats ps; + struct blk_rq_stat rqs; + }; }; -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 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 trace_event_raw_rdev_set_hw_timestamp { - struct trace_entry ent; - char wiphy_name[32]; - char name[16]; - int ifindex; - u8 macaddr[6]; - bool enable; - char __data[0]; +struct blk_iolatency; + +struct iolatency_grp { + struct blkg_policy_data pd; + struct latency_stat __attribute__((btf_type_tag("percpu"))) *stats; + struct latency_stat cur_stat; + struct blk_iolatency *blkiolat; + unsigned int max_depth; + struct rq_wait rq_wait; + atomic64_t window_start; + atomic_t scale_cookie; + u64 min_lat_nsec; + u64 cur_win_nsec; + u64 lat_avg; + u64 nr_samples; + bool ssd; + struct child_latency_info child_lat; }; -struct trace_event_raw_cfg80211_links_removed { - struct trace_entry ent; - char name[16]; - int ifindex; - u16 link_mask; - char __data[0]; +struct blk_iolatency { + struct rq_qos rqos; + struct timer_list timer; + bool enabled; + atomic_t enable_cnt; + struct work_struct enable_work; }; -struct trace_event_data_offsets_rdev_add_virtual_intf { - u32 vir_intf_name; +struct blkg_conf_ctx { + char *input; + char *body; + struct block_device *bdev; + struct blkcg_gq *blkg; }; -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 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 trace_event_data_offsets_station_add_change { - u32 supported_rates; - u32 ext_capab; - u32 supported_channels; - u32 supported_oper_classes; +struct vga_arb_user_card { + struct pci_dev *pdev; + unsigned int mem_cnt; + unsigned int io_cnt; }; -struct trace_event_data_offsets_rdev_assoc { - u32 elements; - u32 fils_kek; - u32 fils_nonces; +struct vga_arb_private { + struct list_head list; + struct pci_dev *target; + struct vga_arb_user_card cards[16]; + spinlock_t lock; }; -struct trace_event_data_offsets_rdev_tdls_mgmt { - u32 buf; +struct acpi_reg_walk_info { + u32 function; + u32 reg_run_count; + acpi_adr_space_type space_id; }; -struct trace_event_data_offsets_rdev_update_ft_ies { - u32 ie; +struct acpi_connection_info { + u8 *connection; + u16 length; + u8 access_length; }; -struct trace_event_data_offsets_rdev_channel_switch { - u32 bcn_ofs; - u32 pres_ofs; +struct acpi_pcc_info { + u8 subspace_id; + u16 length; + u8 *internal_buffer; }; -struct trace_event_data_offsets_rdev_set_pmk { - u32 pmk; - u32 pmk_r0_name; +struct acpi_ffh_info { + u64 offset; + u64 length; }; -struct trace_event_data_offsets_rdev_update_owe_info { - u32 ie; +enum { + MATCH_MTR = 0, + MATCH_MEQ = 1, + MATCH_MLE = 2, + MATCH_MLT = 3, + MATCH_MGE = 4, + MATCH_MGT = 5, }; -struct trace_event_data_offsets_netdev_frame_event { - u32 frame; +struct acpi_bit_register_info { + u8 parent_register; + u8 bit_position; + u16 access_bit_mask; }; -struct trace_event_data_offsets_cfg80211_tx_mlme_mgmt { - u32 frame; +typedef acpi_status (*acpi_object_converter)(struct acpi_namespace_node *, union acpi_operand_object *, union acpi_operand_object **); + +struct acpi_simple_repair_info { + char name[4]; + u32 unexpected_btypes; + u32 package_index; + acpi_object_converter object_converter; }; -struct trace_event_data_offsets_cfg80211_scan_done { - u32 ie; +struct acpi_pci_routing_table { + u32 length; + u32 pin; + u64 address; + u32 source_index; + union { + char pad[4]; + struct { + struct {} __Empty_source; + char source[0]; + }; + }; }; -struct trace_event_data_offsets_cfg80211_get_bss { - u32 ssid; +struct acpi_pkg_info { + u8 *free_space; + acpi_size length; + u32 object_space; + u32 num_packages; }; -struct trace_event_data_offsets_cfg80211_inform_bss_frame { - u32 mgmt; +enum acpi_srat_type { + ACPI_SRAT_TYPE_CPU_AFFINITY = 0, + ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1, + ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2, + ACPI_SRAT_TYPE_GICC_AFFINITY = 3, + ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, + ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, + ACPI_SRAT_TYPE_GENERIC_PORT_AFFINITY = 6, + ACPI_SRAT_TYPE_RESERVED = 7, }; -struct trace_event_data_offsets_cfg80211_report_wowlan_wakeup { - u32 packet; +enum acpi_cedt_type { + ACPI_CEDT_TYPE_CHBS = 0, + ACPI_CEDT_TYPE_CFMWS = 1, + ACPI_CEDT_TYPE_CXIMS = 2, + ACPI_CEDT_TYPE_RDPAS = 3, + ACPI_CEDT_TYPE_RESERVED = 4, }; -struct trace_event_data_offsets_cfg80211_ft_event { - u32 ies; - u32 ric_ies; +struct acpi_table_srat { + struct acpi_table_header header; + u32 table_revision; + u64 reserved; }; -struct trace_event_data_offsets_cfg80211_update_owe_info_event { - u32 ie; +struct acpi_srat_cpu_affinity { + struct acpi_subtable_header header; + u8 proximity_domain_lo; + u8 apic_id; + u32 flags; + u8 local_sapic_eid; + u8 proximity_domain_hi[3]; + u32 clock_domain; }; -struct trace_event_data_offsets_link_station_add_mod { - u32 supported_rates; - u32 he_capa; - u32 eht_capa; +struct acpi_srat_mem_affinity { + struct acpi_subtable_header header; + u32 proximity_domain; + u16 reserved; + u64 base_address; + u64 length; + u32 reserved1; + u32 flags; + u64 reserved2; +} __attribute__((packed)); + +struct acpi_srat_x2apic_cpu_affinity { + struct acpi_subtable_header header; + u16 reserved; + u32 proximity_domain; + u32 apic_id; + u32 flags; + u32 clock_domain; + u32 reserved2; }; -struct trace_event_data_offsets_rdev_suspend {}; +struct acpi_srat_gicc_affinity { + struct acpi_subtable_header header; + u32 proximity_domain; + u32 acpi_processor_uid; + u32 flags; + u32 clock_domain; +} __attribute__((packed)); -struct trace_event_data_offsets_rdev_return_int {}; +struct acpi_srat_generic_affinity { + struct acpi_subtable_header header; + u8 reserved; + u8 device_handle_type; + u32 proximity_domain; + u8 device_handle[16]; + u32 flags; + u32 reserved1; +}; -struct trace_event_data_offsets_rdev_scan {}; +struct acpi_table_slit { + struct acpi_table_header header; + u64 locality_count; + u8 entry[0]; +} __attribute__((packed)); -struct trace_event_data_offsets_wiphy_only_evt {}; +struct acpi_cedt_cfmws { + struct acpi_cedt_header header; + u32 reserved1; + u64 base_hpa; + u64 window_size; + u8 interleave_ways; + u8 interleave_arithmetic; + u16 reserved2; + u32 granularity; + u16 restrictions; + u16 qtg_id; + u32 interleave_targets[0]; +} __attribute__((packed)); -struct trace_event_data_offsets_wiphy_enabled_evt {}; +struct pcc_mbox_chan; -struct trace_event_data_offsets_wiphy_wdev_evt {}; +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 trace_event_data_offsets_wiphy_wdev_cookie_evt {}; +struct mbox_chan; -struct trace_event_data_offsets_rdev_change_virtual_intf {}; +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 trace_event_data_offsets_key_handle {}; +struct mbox_controller; -struct trace_event_data_offsets_rdev_add_key {}; +struct mbox_client; -struct trace_event_data_offsets_rdev_set_default_key {}; +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 trace_event_data_offsets_rdev_set_default_mgmt_key {}; +struct mbox_chan_ops; -struct trace_event_data_offsets_rdev_set_default_beacon_key {}; +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 trace_event_data_offsets_rdev_start_ap {}; +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 trace_event_data_offsets_rdev_stop_ap {}; +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 trace_event_data_offsets_wiphy_netdev_evt {}; +struct cpc_register_resource { + acpi_object_type type; + u64 *sys_mem_vaddr; + union { + struct cpc_reg reg; + u64 int_value; + } cpc_entry; +}; -struct trace_event_data_offsets_wiphy_netdev_mac_evt {}; +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; +}; -struct trace_event_data_offsets_station_del {}; +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 trace_event_data_offsets_rdev_dump_station {}; +struct cppc_perf_ctrls { + u32 max_perf; + u32 min_perf; + u32 desired_perf; + u32 energy_perf; +}; -struct trace_event_data_offsets_rdev_return_int_station_info {}; +struct cppc_perf_fb_ctrs { + u64 reference; + u64 delivered; + u64 reference_perf; + u64 wraparound_time; +}; -struct trace_event_data_offsets_mpath_evt {}; +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 trace_event_data_offsets_rdev_dump_mpath {}; +struct acpi_pcct_shared_memory { + u32 signature; + u16 command; + u16 status; +}; -struct trace_event_data_offsets_rdev_get_mpp {}; +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 trace_event_data_offsets_rdev_dump_mpp {}; +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 trace_event_data_offsets_rdev_return_int_mpath_info {}; +struct tty_audit_buf { + struct mutex mutex; + dev_t dev; + bool icanon; + size_t valid; + u8 *data; +}; -struct trace_event_data_offsets_rdev_return_int_mesh_config {}; +struct hpets; -struct trace_event_data_offsets_rdev_update_mesh_config {}; +struct hpet; -struct trace_event_data_offsets_rdev_join_mesh {}; +struct hpet_timer; -struct trace_event_data_offsets_rdev_change_bss {}; +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 trace_event_data_offsets_rdev_inform_bss {}; +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 trace_event_data_offsets_rdev_set_txq_params {}; +struct hpet_timer { + u64 hpet_config; + union { + u64 _hpet_hc64; + u32 _hpet_hc32; + unsigned long _hpet_compare; + } _u1; + u64 hpet_fsb[2]; +}; -struct trace_event_data_offsets_rdev_libertas_set_mesh_channel {}; +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]; +}; -struct trace_event_data_offsets_rdev_set_monitor_channel {}; +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 trace_event_data_offsets_rdev_auth {}; +struct hpet_info { + unsigned long hi_ireqfreq; + unsigned long hi_flags; + unsigned short hi_hpet; + unsigned short hi_timer; +}; -struct trace_event_data_offsets_rdev_deauth {}; +struct compat_hpet_info { + compat_ulong_t hi_ireqfreq; + compat_ulong_t hi_flags; + unsigned short hi_hpet; + unsigned short hi_timer; +}; -struct trace_event_data_offsets_rdev_disassoc {}; +struct displayid_block { + u8 tag; + u8 rev; + u8 num_bytes; +}; -struct trace_event_data_offsets_rdev_mgmt_tx_cancel_wait {}; +struct displayid_header { + u8 rev; + u8 bytes; + u8 prod_id; + u8 ext_count; +}; -struct trace_event_data_offsets_rdev_set_power_mgmt {}; +struct displayid_iter { + const struct drm_edid *drm_edid; + const u8 *section; + int length; + int idx; + int ext_index; + u8 version; + u8 primary_use; +}; -struct trace_event_data_offsets_rdev_connect {}; +struct edid_quirk { + u32 panel_id; + u32 quirks; +}; -struct trace_event_data_offsets_rdev_update_connect_params {}; +struct minimode { + short w; + short h; + short r; + short rb; +}; -struct trace_event_data_offsets_rdev_set_cqm_rssi_config {}; +struct stereo_mandatory_mode { + int width; + int height; + int vrefresh; + unsigned int flags; +}; -struct trace_event_data_offsets_rdev_set_cqm_rssi_range_config {}; +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 trace_event_data_offsets_rdev_set_cqm_txe_config {}; +struct cea_db { + u8 tag_length; + u8 data[0]; +}; -struct trace_event_data_offsets_rdev_disconnect {}; +struct displayid_vesa_vendor_specific_block { + struct displayid_block base; + u8 oui[3]; + u8 data_structure_type; + u8 mso; +}; -struct trace_event_data_offsets_rdev_join_ibss {}; +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 trace_event_data_offsets_rdev_join_ocb {}; +struct displayid_detailed_timing_block { + struct displayid_block base; + struct displayid_detailed_timings_1 timings[0]; +}; -struct trace_event_data_offsets_rdev_set_wiphy_params {}; +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 trace_event_data_offsets_rdev_set_tx_power {}; +typedef void detailed_cb(const struct detailed_timing *, void *); -struct trace_event_data_offsets_rdev_return_int_int {}; +struct drm_edid_iter { + const struct drm_edid *drm_edid; + int index; +}; -struct trace_event_data_offsets_rdev_set_bitrate_mask {}; +struct cea_db_iter { + struct drm_edid_iter edid_iter; + struct displayid_iter displayid_iter; + const u8 *collection; + int index; + int end; +}; -struct trace_event_data_offsets_rdev_update_mgmt_frame_registrations {}; +struct cea_sad { + u8 format; + u8 channels; + u8 freq; + u8 byte2; +}; -struct trace_event_data_offsets_rdev_return_int_tx_rx {}; +struct detailed_mode_closure { + struct drm_connector *connector; + const struct drm_edid *drm_edid; + bool preferred; + int modes; +}; -struct trace_event_data_offsets_rdev_return_void_tx_rx {}; +typedef int read_block_fn(void *, u8 *, unsigned int, size_t); -struct trace_event_data_offsets_tx_rx_evt {}; +enum i2c_alert_protocol { + I2C_PROTOCOL_SMBUS_ALERT = 0, + I2C_PROTOCOL_SMBUS_HOST_NOTIFY = 1, +}; -struct trace_event_data_offsets_wiphy_netdev_id_evt {}; +struct i2c_device_id; -struct trace_event_data_offsets_rdev_dump_survey {}; +struct i2c_driver { + unsigned int class; + int (*probe)(struct i2c_client *); + void (*remove)(struct i2c_client *); + void (*shutdown)(struct i2c_client *); + void (*alert)(struct i2c_client *, enum i2c_alert_protocol, unsigned int); + int (*command)(struct i2c_client *, unsigned int, void *); + struct device_driver driver; + const struct i2c_device_id *id_table; + int (*detect)(struct i2c_client *, struct i2c_board_info *); + const unsigned short *address_list; + struct list_head clients; + u32 flags; +}; -struct trace_event_data_offsets_rdev_return_int_survey_info {}; +struct i2c_device_id { + char name[20]; + kernel_ulong_t driver_data; +}; -struct trace_event_data_offsets_rdev_tdls_oper {}; +struct drm_encoder_slave; -struct trace_event_data_offsets_rdev_pmksa {}; +struct drm_i2c_encoder_driver { + struct i2c_driver i2c_driver; + int (*encoder_init)(struct i2c_client *, struct drm_device *, struct drm_encoder_slave *); +}; -struct trace_event_data_offsets_rdev_probe_client {}; +struct drm_encoder_slave_funcs; -struct trace_event_data_offsets_rdev_remain_on_channel {}; +struct drm_encoder_slave { + struct drm_encoder base; + const struct drm_encoder_slave_funcs *slave_funcs; + void *slave_priv; + void *bus_priv; +}; -struct trace_event_data_offsets_rdev_return_int_cookie {}; +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); +}; -struct trace_event_data_offsets_rdev_cancel_remain_on_channel {}; +struct ttm_range_manager { + struct ttm_resource_manager manager; + struct drm_mm mm; + spinlock_t lock; +}; -struct trace_event_data_offsets_rdev_mgmt_tx {}; +typedef u32 gen6_pte_t; -struct trace_event_data_offsets_rdev_tx_control_port {}; +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 trace_event_data_offsets_rdev_set_noack_map {}; +enum intel_steering_type { + L3BANK = 0, + MSLICE = 1, + LNCF = 2, + GAM = 3, + DSS = 4, + OADDRM = 5, + INSTANCE0 = 6, + NUM_STEERING_TYPES = 7, +}; -struct trace_event_data_offsets_wiphy_wdev_link_evt {}; +struct i915_deps { + struct dma_fence *single; + struct dma_fence **fences; + unsigned int num_deps; + unsigned int fences_size; + gfp_t gfp; +}; -struct trace_event_data_offsets_rdev_return_chandef {}; +struct gsc_heci_pkt { + u64 addr_in; + u32 size_in; + u64 addr_out; + u32 size_out; +}; -struct trace_event_data_offsets_rdev_start_nan {}; +struct intel_gsc_heci_non_priv_pkt { + u64 addr_in; + u32 size_in; + u64 addr_out; + u32 size_out; + struct i915_vma *heci_pkt_vma; + struct i915_vma *bb_vma; +}; -struct trace_event_data_offsets_rdev_nan_change_conf {}; +struct ns2501_reg { + u8 offset; + u8 value; +}; -struct trace_event_data_offsets_rdev_add_nan_func {}; +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; +}; -struct trace_event_data_offsets_rdev_del_nan_func {}; +enum { + MODE_640x480 = 0, + MODE_800x600 = 1, + MODE_1024x768 = 2, +}; -struct trace_event_data_offsets_rdev_set_mac_acl {}; +struct ns2501_priv { + bool quiet; + const struct ns2501_configuration *conf; +}; -struct trace_event_data_offsets_rdev_crit_proto_start {}; +typedef void (*activate_complete)(void *, int); -struct trace_event_data_offsets_rdev_crit_proto_stop {}; +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 trace_event_data_offsets_rdev_set_qos_map {}; +struct scsi_event { + enum scsi_device_event evt_type; + struct list_head node; +}; -struct trace_event_data_offsets_rdev_set_ap_chanwidth {}; +typedef void (*companion_fn)(struct pci_dev *, struct usb_hcd *, struct pci_dev *, struct usb_hcd *); -struct trace_event_data_offsets_rdev_add_tx_ts {}; +struct focaltech_finger_state { + bool active; + bool valid; + unsigned int x; + unsigned int y; +}; -struct trace_event_data_offsets_rdev_del_tx_ts {}; +struct focaltech_hw_state { + struct focaltech_finger_state fingers[5]; + unsigned int width; + bool pressed; +}; -struct trace_event_data_offsets_rdev_tdls_channel_switch {}; +struct focaltech_data { + unsigned int x_max; + unsigned int y_max; + struct focaltech_hw_state state; +}; -struct trace_event_data_offsets_rdev_tdls_cancel_channel_switch {}; +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 trace_event_data_offsets_rdev_del_pmk {}; +struct cmos_read_alarm_callback_param { + struct cmos_rtc *cmos; + struct rtc_time *time; + unsigned char rtc_control; +}; -struct trace_event_data_offsets_rdev_external_auth {}; +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; +}; -struct trace_event_data_offsets_rdev_start_radar_detection {}; +typedef irqreturn_t (*rtc_irq_handler)(int, void *); -struct trace_event_data_offsets_rdev_set_mcast_rate {}; +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 trace_event_data_offsets_rdev_set_coalesce {}; +struct linear_c { + struct dm_dev *dev; + sector_t start; +}; -struct trace_event_data_offsets_rdev_set_multicast_to_unicast {}; +struct od_ops { + unsigned int (*powersave_bias_target)(struct cpufreq_policy *, unsigned int, unsigned int); +}; -struct trace_event_data_offsets_rdev_get_ftm_responder_stats {}; +struct dbs_data; -struct trace_event_data_offsets_rdev_set_fils_aad {}; +struct policy_dbs_info; -struct trace_event_data_offsets_rdev_probe_mesh_link {}; +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 trace_event_data_offsets_rdev_set_tid_config {}; +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 trace_event_data_offsets_rdev_reset_tid_config {}; +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 trace_event_data_offsets_rdev_set_sar_specs {}; +enum { + OD_NORMAL_SAMPLE = 0, + OD_SUB_SAMPLE = 1, +}; -struct trace_event_data_offsets_rdev_color_change {}; +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 trace_event_data_offsets_rdev_set_radar_background {}; +struct od_dbs_tuners { + unsigned int powersave_bias; +}; -struct trace_event_data_offsets_cfg80211_return_bool {}; +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 trace_event_data_offsets_cfg80211_netdev_mac_evt {}; +struct sys_off_data { + int mode; + void *cb_data; + const char *cmd; + struct device *dev; +}; -struct trace_event_data_offsets_netdev_evt_only {}; +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); +}; -struct trace_event_data_offsets_cfg80211_send_rx_assoc {}; +enum snd_ctl_add_mode { + CTL_ADD_EXCLUSIVE = 0, + CTL_REPLACE = 1, + CTL_ADD_ON_REPLACE = 2, +}; -struct trace_event_data_offsets_netdev_mac_evt {}; +enum sndrv_ctl_event_type { + SNDRV_CTL_EVENT_ELEM = 0, + SNDRV_CTL_EVENT_LAST = 0, +}; -struct trace_event_data_offsets_cfg80211_send_assoc_failure {}; +enum { + SNDRV_CTL_TLV_OP_READ = 0, + SNDRV_CTL_TLV_OP_WRITE = 1, + SNDRV_CTL_TLV_OP_CMD = -1, +}; -struct trace_event_data_offsets_cfg80211_michael_mic_failure {}; +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, +}; -struct trace_event_data_offsets_cfg80211_ready_on_channel {}; +struct snd_kctl_event { + struct list_head list; + struct snd_ctl_elem_id id; + unsigned int mask; +}; -struct trace_event_data_offsets_cfg80211_ready_on_channel_expired {}; +struct snd_kctl_ioctl { + struct list_head list; + snd_kctl_ioctl_func_t fioctl; +}; -struct trace_event_data_offsets_cfg80211_tx_mgmt_expired {}; +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 trace_event_data_offsets_cfg80211_new_sta {}; +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 trace_event_data_offsets_cfg80211_rx_mgmt {}; +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 trace_event_data_offsets_cfg80211_mgmt_tx_status {}; +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 trace_event_data_offsets_cfg80211_control_port_tx_status {}; +struct snd_ctl_elem_list32 { + u32 offset; + u32 space; + u32 used; + u32 count; + u32 pids; + unsigned char reserved[50]; +}; -struct trace_event_data_offsets_cfg80211_rx_control_port {}; +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 trace_event_data_offsets_cfg80211_cqm_rssi_notify {}; +struct snd_ctl_event { + int type; + union { + struct { + unsigned int mask; + struct snd_ctl_elem_id id; + } elem; + unsigned char data8[60]; + } data; +}; -struct trace_event_data_offsets_cfg80211_reg_can_beacon {}; +struct snd_ctl_tlv { + unsigned int numid; + unsigned int length; + unsigned int tlv[0]; +}; -struct trace_event_data_offsets_cfg80211_chandef_dfs_required {}; +enum { + SNDRV_PCM_TSTAMP_NONE = 0, + SNDRV_PCM_TSTAMP_ENABLE = 1, + SNDRV_PCM_TSTAMP_LAST = 1, +}; -struct trace_event_data_offsets_cfg80211_ch_switch_notify {}; +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, +}; -struct trace_event_data_offsets_cfg80211_ch_switch_started_notify {}; +typedef int (*pcm_transfer_f)(struct snd_pcm_substream *, int, unsigned long, struct iov_iter *, unsigned long); -struct trace_event_data_offsets_cfg80211_radar_event {}; +struct snd_ratden { + unsigned int num_min; + unsigned int num_max; + unsigned int num_step; + unsigned int den; +}; -struct trace_event_data_offsets_cfg80211_cac_event {}; +struct snd_pcm_channel_info { + unsigned int channel; + __kernel_off_t offset; + unsigned int first; + unsigned int step; +}; -struct trace_event_data_offsets_cfg80211_rx_evt {}; +struct snd_ratnum { + unsigned int num; + unsigned int den_min; + unsigned int den_max; + unsigned int den_step; +}; -struct trace_event_data_offsets_cfg80211_ibss_joined {}; +struct snd_pcm_hw_constraint_list { + const unsigned int *list; + unsigned int count; + unsigned int mask; +}; -struct trace_event_data_offsets_cfg80211_probe_status {}; +struct snd_pcm_hw_constraint_ranges { + unsigned int count; + const struct snd_interval *ranges; + unsigned int mask; +}; -struct trace_event_data_offsets_cfg80211_cqm_pktloss_notify {}; +struct snd_pcm_hw_constraint_ratnums { + int nrats; + const struct snd_ratnum *rats; +}; -struct trace_event_data_offsets_cfg80211_pmksa_candidate_notify {}; +struct snd_pcm_hw_constraint_ratdens { + int nrats; + const struct snd_ratden *rats; +}; -struct trace_event_data_offsets_cfg80211_report_obss_beacon {}; +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, bool); -struct trace_event_data_offsets_cfg80211_tdls_oper_request {}; +enum offload_act_command { + FLOW_ACT_REPLACE = 0, + FLOW_ACT_DESTROY = 1, + FLOW_ACT_STATS = 2, +}; -struct trace_event_data_offsets_wiphy_id_evt {}; +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, +}; -struct trace_event_data_offsets_cfg80211_bss_evt {}; +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, +}; -struct trace_event_data_offsets_cfg80211_return_uint {}; +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, +}; -struct trace_event_data_offsets_cfg80211_return_u32 {}; +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, +}; -struct trace_event_data_offsets_cfg80211_stop_iface {}; +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 trace_event_data_offsets_cfg80211_pmsr_report {}; +enum flow_block_command { + FLOW_BLOCK_BIND = 0, + FLOW_BLOCK_UNBIND = 1, +}; -struct trace_event_data_offsets_cfg80211_pmsr_complete {}; +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, +}; -struct trace_event_data_offsets_cfg80211_bss_color_notify {}; +enum pedit_cmd { + TCA_PEDIT_KEY_EX_CMD_SET = 0, + TCA_PEDIT_KEY_EX_CMD_ADD = 1, + __PEDIT_CMD_MAX = 2, +}; -struct trace_event_data_offsets_cfg80211_assoc_comeback {}; +enum { + TCA_ROOT_UNSPEC = 0, + TCA_ROOT_TAB = 1, + TCA_ROOT_FLAGS = 2, + TCA_ROOT_COUNT = 3, + TCA_ROOT_TIME_DELTA = 4, + TCA_ROOT_EXT_WARN_MSG = 5, + __TCA_ROOT_MAX = 6, +}; -struct trace_event_data_offsets_rdev_del_link_station {}; +struct tc_act_pernet_id { + struct list_head list; + unsigned int id; +}; -struct trace_event_data_offsets_rdev_set_hw_timestamp {}; +struct tc_pedit_key; -struct trace_event_data_offsets_cfg80211_links_removed {}; +struct tcf_pedit_key_ex; -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 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 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 tc_pedit_key { + __u32 mask; + __u32 val; + __u32 off; + __u32 at; + __u32 offmask; + __u32 shift; }; -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 tcf_pedit_key_ex { + enum pedit_header_type htype; + enum pedit_cmd cmd; }; -struct kvm_vcpu_pv_apf_data { - __u32 flags; - __u32 token; - __u8 pad[56]; - __u32 enabled; +struct tcf_pedit { + struct tc_action common; + struct tcf_pedit_parms __attribute__((btf_type_tag("rcu"))) *parms; + long: 64; }; -struct kvm_steal_time { - __u64 steal; - __u32 version; - __u32 flags; - __u8 preempted; - __u8 u8_pad[3]; - __u32 pad[11]; +struct tcamsg { + unsigned char tca_family; + unsigned char tca__pad1; + unsigned short tca__pad2; }; -struct kvm_task_sleep_head { - raw_spinlock_t lock; - struct hlist_head list; +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 kvm_task_sleep_node { - struct hlist_node link; - struct swait_queue_head wq; - u32 token; - int cpu; -}; +typedef void (*action_destr)(void *); -typedef unsigned __int128 __uint128_t; +struct nf_flowtable; -struct numa_memblk { - u64 start; - u64 end; - int nid; -}; +struct action_gate_entry; -struct numa_meminfo { - int nr_blks; - struct numa_memblk blk[128]; +struct flow_action_cookie; + +struct flow_action_entry { + enum flow_action_id id; + u32 hw_index; + unsigned long cookie; + u64 miss_cookie; + enum flow_action_hw_stats hw_stats; + action_destr destructor; + void *destructor_priv; + union { + u32 chain_index; + struct net_device *dev; + struct { + u16 vid; + __be16 proto; + u8 prio; + } vlan; + struct { + unsigned char dst[6]; + unsigned char src[6]; + } vlan_push_eth; + struct { + enum flow_action_mangle_base htype; + u32 offset; + u32 mask; + u32 val; + } mangle; + struct ip_tunnel_info *tunnel; + u32 csum_flags; + u32 mark; + u16 ptype; + u16 rx_queue; + u32 priority; + struct { + u32 ctx; + u32 index; + u8 vf; + } queue; + struct { + struct psample_group *psample_group; + u32 rate; + u32 trunc_size; + bool truncate; + } sample; + struct { + u32 burst; + u64 rate_bytes_ps; + u64 peakrate_bytes_ps; + u32 avrate; + u16 overhead; + u64 burst_pkt; + u64 rate_pkt_ps; + u32 mtu; + struct { + enum flow_action_id act_id; + u32 extval; + } exceed; + struct { + enum flow_action_id act_id; + u32 extval; + } notexceed; + } police; + struct { + int action; + u16 zone; + struct nf_flowtable *flow_table; + } ct; + struct { + unsigned long cookie; + u32 mark; + u32 labels[4]; + bool orig_dir; + } ct_metadata; + struct { + u32 label; + __be16 proto; + u8 tc; + u8 bos; + u8 ttl; + } mpls_push; + struct { + __be16 proto; + } mpls_pop; + struct { + u32 label; + u8 tc; + u8 bos; + u8 ttl; + } mpls_mangle; + struct { + s32 prio; + u64 basetime; + u64 cycletime; + u64 cycletimeext; + u32 num_entries; + struct action_gate_entry *entries; + } gate; + struct { + u16 sid; + } pppoe; + }; + struct flow_action_cookie *user_cookie; }; -struct __user_cap_header_struct; +struct flow_action { + unsigned int num_entries; + struct flow_action_entry entries[0]; +}; -typedef struct __user_cap_header_struct *cap_user_header_t; +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 __user_cap_header_struct { - __u32 version; - int pid; +struct flow_action_cookie { + u32 cookie_len; + u8 cookie[0]; }; -struct __user_cap_data_struct; +struct flow_block_cb; -typedef struct __user_cap_data_struct __attribute__((btf_type_tag("user"))) *cap_user_data_t; +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 __user_cap_data_struct { - __u32 effective; - __u32 permitted; - __u32 inheritable; +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 *); }; -enum sched_tunable_scaling { - SCHED_TUNABLESCALING_NONE = 0, - SCHED_TUNABLESCALING_LOG = 1, - SCHED_TUNABLESCALING_LINEAR = 2, - SCHED_TUNABLESCALING_END = 3, +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; }; -enum uclamp_id { - UCLAMP_MIN = 0, - UCLAMP_MAX = 1, - UCLAMP_CNT = 2, +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; }; -enum fbq_type { - regular = 0, - remote = 1, - all = 2, +struct nla_bitfield32 { + __u32 value; + __u32 selector; }; -enum migration_type { - migrate_load = 0, - migrate_util = 1, - migrate_task = 2, - migrate_misfit = 3, +struct tc_action_net { + struct tcf_idrinfo *idrinfo; + const struct tc_action_ops *ops; }; -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 { + 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 sched_entity_stats { - struct sched_entity se; - struct sched_statistics stats; +struct eeprom_req_info { + struct ethnl_req_info base; + u32 offset; + u32 length; + u8 page; + u8 bank; + u8 i2c_address; }; -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 eeprom_reply_data { + struct ethnl_reply_data base; + u32 length; + u8 *data; }; -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; +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 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; +enum nf_ct_tcp_action { + NFCT_TCP_IGNORE = 0, + NFCT_TCP_INVALID = 1, + NFCT_TCP_ACCEPT = 2, }; -enum wd_read_status { - WD_READ_SUCCESS = 0, - WD_READ_UNSTABLE = 1, - WD_READ_SKIP = 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, }; -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 *); +enum ctattr_protoinfo { + CTA_PROTOINFO_UNSPEC = 0, + CTA_PROTOINFO_TCP = 1, + CTA_PROTOINFO_DCCP = 2, + CTA_PROTOINFO_SCTP = 3, + __CTA_PROTOINFO_MAX = 4, +}; -typedef void (*btf_trace_cgroup_rmdir)(void *, struct cgroup *, const char *); +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, +}; -typedef void (*btf_trace_cgroup_release)(void *, struct cgroup *, const char *); +struct nf_ct_tcp_flags { + __u8 flags; + __u8 mask; +}; -typedef void (*btf_trace_cgroup_rename)(void *, struct cgroup *, const char *); +struct udp_tunnel_info { + unsigned short type; + sa_family_t sa_family; + __be16 port; + u8 hw_priv; +}; -typedef void (*btf_trace_cgroup_freeze)(void *, struct cgroup *, const char *); +struct udp_tunnel_nic_shared { + struct udp_tunnel_nic *udp_tunnel_nic_info; + struct list_head devices; +}; -typedef void (*btf_trace_cgroup_unfreeze)(void *, struct cgroup *, const char *); +struct udp_seq_afinfo { + sa_family_t family; + struct udp_table *udp_table; +}; -typedef void (*btf_trace_cgroup_attach_task)(void *, struct cgroup *, const char *, struct task_struct *, bool); +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, +}; -typedef void (*btf_trace_cgroup_transfer_tasks)(void *, struct cgroup *, const char *, struct task_struct *, bool); +struct udp_skb_cb { + union { + struct inet_skb_parm h4; + struct inet6_skb_parm h6; + } header; + __u16 cscov; + __u8 partial_cov; +}; -typedef void (*btf_trace_cgroup_notify_populated)(void *, struct cgroup *, const char *, int); +struct udp_dev_scratch { + u32 _tsize_state; + u16 len; + bool is_linear; + bool csum_unnecessary; +}; -typedef void (*btf_trace_cgroup_notify_frozen)(void *, struct cgroup *, const char *, int); +struct bpf_iter__udp { + union { + struct bpf_iter_meta *meta; + }; + union { + struct udp_sock *udp_sk; + }; + uid_t uid; + long: 0; + int bucket; +}; -struct cgroup_fs_context { - struct kernfs_fs_context kfc; - struct cgroup_root *root; - struct cgroup_namespace *ns; - unsigned int flags; - bool cpuset_clone_children; - bool none; - bool all_ss; - u16 subsys_mask; - char *name; - char *release_agent; +struct udp_iter_state { + struct seq_net_private p; + int bucket; }; -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, +struct bpf_udp_iter_state { + struct udp_iter_state state; + unsigned int cur_sk; + unsigned int end_sk; + unsigned int max_sk; + int offset; + struct sock **batch; + bool st_bucket_done; }; -enum { - CGRP_NOTIFY_ON_RELEASE = 0, - CGRP_CPUSET_CLONE_CHILDREN = 1, - CGRP_FREEZE = 2, - CGRP_FROZEN = 3, - CGRP_KILL = 4, +struct ic_device { + struct ic_device *next; + struct net_device *dev; + unsigned short flags; + short able; + __be32 xid; }; -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 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]; }; -enum cgroup2_param { - Opt_nsdelegate = 0, - Opt_favordynmods = 1, - Opt_memory_localevents = 2, - Opt_memory_recursiveprot = 3, - nr__cgroup2_params = 4, +struct arphdr { + __be16 ar_hrd; + __be16 ar_pro; + unsigned char ar_hln; + unsigned char ar_pln; + __be16 ar_op; }; -enum cgroup_opt_features { - OPT_FEATURE_COUNT = 0, +struct uncached_list { + spinlock_t lock; + struct list_head head; + struct list_head quarantine; }; -struct trace_event_raw_cgroup_root { - struct trace_entry ent; - int root; - u16 ss_mask; - u32 __data_loc_name; - char __data[0]; +typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *); + +enum flow_dissector_key_id { + FLOW_DISSECTOR_KEY_CONTROL = 0, + FLOW_DISSECTOR_KEY_BASIC = 1, + FLOW_DISSECTOR_KEY_IPV4_ADDRS = 2, + FLOW_DISSECTOR_KEY_IPV6_ADDRS = 3, + FLOW_DISSECTOR_KEY_PORTS = 4, + FLOW_DISSECTOR_KEY_PORTS_RANGE = 5, + FLOW_DISSECTOR_KEY_ICMP = 6, + FLOW_DISSECTOR_KEY_ETH_ADDRS = 7, + FLOW_DISSECTOR_KEY_TIPC = 8, + FLOW_DISSECTOR_KEY_ARP = 9, + FLOW_DISSECTOR_KEY_VLAN = 10, + FLOW_DISSECTOR_KEY_FLOW_LABEL = 11, + FLOW_DISSECTOR_KEY_GRE_KEYID = 12, + FLOW_DISSECTOR_KEY_MPLS_ENTROPY = 13, + FLOW_DISSECTOR_KEY_ENC_KEYID = 14, + FLOW_DISSECTOR_KEY_ENC_IPV4_ADDRS = 15, + FLOW_DISSECTOR_KEY_ENC_IPV6_ADDRS = 16, + FLOW_DISSECTOR_KEY_ENC_CONTROL = 17, + FLOW_DISSECTOR_KEY_ENC_PORTS = 18, + FLOW_DISSECTOR_KEY_MPLS = 19, + FLOW_DISSECTOR_KEY_TCP = 20, + FLOW_DISSECTOR_KEY_IP = 21, + FLOW_DISSECTOR_KEY_CVLAN = 22, + FLOW_DISSECTOR_KEY_ENC_IP = 23, + FLOW_DISSECTOR_KEY_ENC_OPTS = 24, + FLOW_DISSECTOR_KEY_META = 25, + FLOW_DISSECTOR_KEY_CT = 26, + FLOW_DISSECTOR_KEY_HASH = 27, + FLOW_DISSECTOR_KEY_NUM_OF_VLANS = 28, + FLOW_DISSECTOR_KEY_PPPOE = 29, + FLOW_DISSECTOR_KEY_L2TPV3 = 30, + FLOW_DISSECTOR_KEY_CFM = 31, + FLOW_DISSECTOR_KEY_IPSEC = 32, + FLOW_DISSECTOR_KEY_MAX = 33, }; -struct trace_event_raw_cgroup { - struct trace_entry ent; - int root; - int level; - u64 id; - u32 __data_loc_path; - char __data[0]; +enum rt6_nud_state { + RT6_NUD_FAIL_HARD = -3, + RT6_NUD_FAIL_PROBE = -2, + RT6_NUD_FAIL_DO_RR = -1, + RT6_NUD_SUCCEED = 1, }; -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 ip6rd_flowi { + struct flowi6 fl6; + struct in6_addr gateway; }; -struct trace_event_raw_cgroup_event { +struct trace_event_raw_fib6_table_lookup { struct trace_entry ent; - int root; - int level; - u64 id; - u32 __data_loc_path; - int val; + 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 trace_event_data_offsets_cgroup_root { - u32 name; +struct rt6_exception { + struct hlist_node hlist; + struct rt6_info *rt6i; + unsigned long stamp; + struct callback_head rcu; }; -struct trace_event_data_offsets_cgroup { - u32 path; +struct arg_dev_net_ip { + struct net *net; + struct in6_addr *addr; }; -struct trace_event_data_offsets_cgroup_migrate { - u32 dst_path; - u32 comm; +struct rt6_mtu_change_arg { + struct net_device *dev; + unsigned int mtu; + struct fib6_info *f6i; }; -struct trace_event_data_offsets_cgroup_event { - u32 path; +struct rt6_nh { + struct fib6_info *fib6_info; + struct fib6_config r_cfg; + struct list_head next; }; -struct cgroup_mgctx { - struct list_head preloaded_src_csets; - struct list_head preloaded_dst_csets; - struct cgroup_taskset tset; - u16 ss_mask; +struct fib6_nh_dm_arg { + struct net *net; + const struct in6_addr *saddr; + int oif; + int flags; + struct fib6_nh *nh; }; -struct cgroup_pidlist; +typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); -struct cgroup_file_ctx { - struct cgroup_namespace *ns; - struct { - void *trigger; - } psi; - struct { - bool started; - struct css_task_iter iter; - } procs; - struct { - struct cgroup_pidlist *pidlist; - } procs1; +struct fib6_nh_match_arg { + const struct net_device *dev; + const struct in6_addr *gw; + struct fib6_nh *match; }; -enum bpf_cgroup_storage_type { - BPF_CGROUP_STORAGE_SHARED = 0, - BPF_CGROUP_STORAGE_PERCPU = 1, - __BPF_CGROUP_STORAGE_MAX = 2, +struct fib6_nh_del_cached_rt_arg { + struct fib6_config *cfg; + struct fib6_info *f6i; }; -enum { - BPF_F_SYSCTL_BASE_NAME = 1, +struct arg_netdev_event { + const struct net_device *dev; + union { + unsigned char nh_flags; + unsigned long event; + }; }; -typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64); +struct trace_event_data_offsets_fib6_table_lookup {}; -typedef u64 (*btf_bpf_get_retval)(); +struct fib6_nh_age_excptn_arg { + struct fib6_gc_args *gc_args; + unsigned long now; +}; -typedef u64 (*btf_bpf_set_retval)(int); +struct fib6_nh_rd_arg { + struct fib6_result *res; + struct flowi6 *fl6; + const struct in6_addr *gw; + struct rt6_info **ret; +}; -struct bpf_sysctl_kern; +struct netevent_redirect { + struct dst_entry *old; + struct dst_entry *new; + struct neighbour *neigh; + const void *daddr; +}; -typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64); +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 bpf_sysctl_kern { - struct ctl_table_header *head; - struct ctl_table *table; - void *cur_val; - size_t cur_len; - void *new_val; - size_t new_len; - int new_updated; - int write; - loff_t *ppos; - u64 tmp_reg; +struct fib6_nh_frl_arg { + u32 flags; + int oif; + int strict; + int *mpri; + bool *do_rr; + struct fib6_nh *nh; }; -typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t); +struct fib6_nh_excptn_arg { + struct rt6_info *rt; + int plen; +}; -typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t); +struct ip6t_standard { + struct ip6t_entry entry; + struct xt_standard_target target; +}; -typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t); +enum xprt_xid_rb_cmp { + XID_RB_EQUAL = 0, + XID_RB_LEFT = 1, + XID_RB_RIGHT = 2, +}; -struct bpf_sockopt_kern; +struct gssx_name_attr; -typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *); +struct gssx_name_attr_array { + u32 count; + struct gssx_name_attr *data; +}; -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 gssx_name_attr { + gssx_buffer attr; + gssx_buffer value; + struct gssx_option_array extensions; }; -struct bpf_cgroup_link; +typedef void (*btf_trace_rdev_suspend)(void *, struct wiphy *, struct cfg80211_wowlan *); -struct bpf_prog_list { - struct hlist_node node; - struct bpf_prog *prog; - struct bpf_cgroup_link *link; - struct bpf_cgroup_storage *storage[2]; -}; +typedef void (*btf_trace_rdev_return_int)(void *, struct wiphy *, int); -struct bpf_cgroup_link { - struct bpf_link link; - struct cgroup *cgroup; - enum bpf_attach_type type; -}; +typedef void (*btf_trace_rdev_scan)(void *, struct wiphy *, struct cfg80211_scan_request *); -struct bpf_skb_data_end { - struct qdisc_skb_cb qdisc_cb; - void *data_meta; - void *data_end; -}; +typedef void (*btf_trace_rdev_resume)(void *, struct wiphy *); -struct bpf_cg_run_ctx { - struct bpf_run_ctx run_ctx; - const struct bpf_prog_array_item *prog_item; - int retval; -}; +typedef void (*btf_trace_rdev_return_void)(void *, struct wiphy *); -struct bpf_sockopt_buf { - u8 data[32]; -}; +typedef void (*btf_trace_rdev_get_antenna)(void *, struct wiphy *); -struct bpf_sock_addr_kern { - struct sock *sk; - struct sockaddr *uaddr; - u64 tmp_reg; - void *t_ctx; -}; +typedef void (*btf_trace_rdev_rfkill_poll)(void *, struct wiphy *); -struct bpf_cgroup_dev_ctx { - __u32 access_type; - __u32 major; - __u32 minor; -}; +typedef void (*btf_trace_rdev_set_wakeup)(void *, struct wiphy *, bool); -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 void (*btf_trace_rdev_add_virtual_intf)(void *, struct wiphy *, char *, enum nl80211_iftype); -struct migrate_pages_stats { - int nr_succeeded; - int nr_failed_pages; - int nr_thp_succeeded; - int nr_thp_failed; - int nr_thp_split; -}; +typedef void (*btf_trace_rdev_return_wdev)(void *, struct wiphy *, struct wireless_dev *); -union migration_ptr { - struct anon_vma *anon_vma; - struct address_space *mapping; -}; +typedef void (*btf_trace_rdev_del_virtual_intf)(void *, struct wiphy *, struct wireless_dev *); -struct mnt_idmap { - struct user_namespace *owner; - refcount_t count; -}; +typedef void (*btf_trace_rdev_change_virtual_intf)(void *, struct wiphy *, struct net_device *, enum nl80211_iftype); -typedef void (*btf_trace_locks_get_lock_context)(void *, struct inode *, int, struct file_lock_context *); +typedef void (*btf_trace_rdev_get_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *); -typedef void (*btf_trace_posix_lock_inode)(void *, struct inode *, struct file_lock *, int); +typedef void (*btf_trace_rdev_del_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *); -typedef void (*btf_trace_fcntl_setlk)(void *, struct inode *, struct file_lock *, int); +typedef void (*btf_trace_rdev_add_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, const u8 *, u8); -typedef void (*btf_trace_locks_remove_posix)(void *, struct inode *, struct file_lock *, int); +typedef void (*btf_trace_rdev_set_default_key)(void *, struct wiphy *, struct net_device *, int, u8, bool, bool); -typedef void (*btf_trace_flock_lock_inode)(void *, struct inode *, struct file_lock *, int); +typedef void (*btf_trace_rdev_set_default_mgmt_key)(void *, struct wiphy *, struct net_device *, int, u8); -typedef void (*btf_trace_break_lease_noblock)(void *, struct inode *, struct file_lock *); +typedef void (*btf_trace_rdev_set_default_beacon_key)(void *, struct wiphy *, struct net_device *, int, u8); -typedef void (*btf_trace_break_lease_block)(void *, struct inode *, struct file_lock *); +typedef void (*btf_trace_rdev_start_ap)(void *, struct wiphy *, struct net_device *, struct cfg80211_ap_settings *); -typedef void (*btf_trace_break_lease_unblock)(void *, struct inode *, struct file_lock *); +typedef void (*btf_trace_rdev_change_beacon)(void *, struct wiphy *, struct net_device *, struct cfg80211_ap_update *); -typedef void (*btf_trace_generic_delete_lease)(void *, struct inode *, struct file_lock *); +typedef void (*btf_trace_rdev_stop_ap)(void *, struct wiphy *, struct net_device *, unsigned int); -typedef void (*btf_trace_time_out_leases)(void *, struct inode *, struct file_lock *); +typedef void (*btf_trace_rdev_set_rekey_data)(void *, struct wiphy *, struct net_device *); -typedef void (*btf_trace_generic_add_lease)(void *, struct inode *, struct file_lock *); +typedef void (*btf_trace_rdev_get_mesh_config)(void *, struct wiphy *, struct net_device *); -typedef void (*btf_trace_leases_conflict)(void *, bool, struct file_lock *, struct file_lock *); +typedef void (*btf_trace_rdev_leave_mesh)(void *, struct wiphy *, struct net_device *); -struct file_lock_list_struct { - spinlock_t lock; - struct hlist_head hlist; -}; +typedef void (*btf_trace_rdev_leave_ibss)(void *, struct wiphy *, struct net_device *); -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]; -}; +typedef void (*btf_trace_rdev_leave_ocb)(void *, struct wiphy *, struct net_device *); -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]; -}; +typedef void (*btf_trace_rdev_flush_pmksa)(void *, struct wiphy *, struct net_device *); -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]; -}; +typedef void (*btf_trace_rdev_end_cac)(void *, struct wiphy *, struct net_device *); -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]; -}; +typedef void (*btf_trace_rdev_add_station)(void *, struct wiphy *, struct net_device *, u8 *, struct station_parameters *); -struct trace_event_raw_leases_conflict { - struct trace_entry ent; - void *lease; - void *breaker; - unsigned int l_fl_flags; - unsigned int b_fl_flags; - unsigned char l_fl_type; - unsigned char b_fl_type; - bool conflict; - char __data[0]; -}; +typedef void (*btf_trace_rdev_change_station)(void *, struct wiphy *, struct net_device *, u8 *, struct station_parameters *); -struct flock64 { - short l_type; - short l_whence; - __kernel_loff_t l_start; - __kernel_loff_t l_len; - __kernel_pid_t l_pid; -}; +typedef void (*btf_trace_rdev_del_station)(void *, struct wiphy *, struct net_device *, struct station_del_parameters *); -struct trace_event_data_offsets_locks_get_lock_context {}; +typedef void (*btf_trace_rdev_get_station)(void *, struct wiphy *, struct net_device *, const u8 *); -struct trace_event_data_offsets_filelock_lock {}; +typedef void (*btf_trace_rdev_del_mpath)(void *, struct wiphy *, struct net_device *, const u8 *); -struct trace_event_data_offsets_filelock_lease {}; +typedef void (*btf_trace_rdev_dump_station)(void *, struct wiphy *, struct net_device *, int, u8 *); -struct trace_event_data_offsets_generic_add_lease {}; +typedef void (*btf_trace_rdev_return_int_station_info)(void *, struct wiphy *, int, struct station_info *); -struct trace_event_data_offsets_leases_conflict {}; +typedef void (*btf_trace_rdev_add_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *); -struct locks_iterator { - int li_cpu; - loff_t li_pos; -}; +typedef void (*btf_trace_rdev_change_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *); -typedef struct { - __le32 a_version; -} ext4_acl_header; +typedef void (*btf_trace_rdev_get_mpath)(void *, struct wiphy *, struct net_device *, u8 *, u8 *); -typedef struct { - __le16 e_tag; - __le16 e_perm; - __le32 e_id; -} ext4_acl_entry; +typedef void (*btf_trace_rdev_dump_mpath)(void *, struct wiphy *, struct net_device *, int, u8 *, u8 *); -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, -}; +typedef void (*btf_trace_rdev_get_mpp)(void *, struct wiphy *, struct net_device *, u8 *, u8 *); -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, -}; +typedef void (*btf_trace_rdev_dump_mpp)(void *, struct wiphy *, struct net_device *, int, u8 *, u8 *); -struct p9_rdir { - int head; - int tail; - uint8_t buf[0]; -}; +typedef void (*btf_trace_rdev_return_int_mpath_info)(void *, struct wiphy *, int, struct mpath_info *); -struct p9_dirent { - struct p9_qid qid; - u64 d_off; - unsigned char d_type; - char d_name[256]; -}; +typedef void (*btf_trace_rdev_return_int_mesh_config)(void *, struct wiphy *, int, struct mesh_config *); -enum { - SELNL_MSG_SETENFORCE = 16, - SELNL_MSG_POLICYLOAD = 17, - SELNL_MSG_MAX = 18, -}; +typedef void (*btf_trace_rdev_update_mesh_config)(void *, struct wiphy *, struct net_device *, u32, const struct mesh_config *); -enum selinux_nlgroups { - SELNLGRP_NONE = 0, - SELNLGRP_AVC = 1, - __SELNLGRP_MAX = 2, -}; +typedef void (*btf_trace_rdev_join_mesh)(void *, struct wiphy *, struct net_device *, const struct mesh_config *, const struct mesh_setup *); -struct selnl_msg_setenforce { - __s32 val; -}; +typedef void (*btf_trace_rdev_change_bss)(void *, struct wiphy *, struct net_device *, struct bss_parameters *); -struct selnl_msg_policyload { - __u32 seqno; -}; +typedef void (*btf_trace_rdev_inform_bss)(void *, struct wiphy *, struct cfg80211_bss *); -typedef unsigned char u8___2; +typedef void (*btf_trace_rdev_set_txq_params)(void *, struct wiphy *, struct net_device *, struct ieee80211_txq_params *); -struct rand_data { - void *hash_state; - __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; - unsigned int rct_count; - unsigned int apt_observations; - unsigned int apt_count; - unsigned int apt_base; - unsigned int apt_base_set: 1; -}; +typedef void (*btf_trace_rdev_libertas_set_mesh_channel)(void *, struct wiphy *, struct net_device *, struct ieee80211_channel *); -enum acpi_predicate { - all_versions = 0, - less_than_or_equal = 1, - equal = 2, - greater_than_or_equal = 3, -}; +typedef void (*btf_trace_rdev_set_monitor_channel)(void *, struct wiphy *, struct cfg80211_chan_def *); -struct acpi_platform_list { - char oem_id[7]; - char oem_table_id[9]; - u32 oem_revision; - char *table; - enum acpi_predicate pred; - char *reason; - u32 data; -}; +typedef void (*btf_trace_rdev_auth)(void *, struct wiphy *, struct net_device *, struct cfg80211_auth_request *); -struct acpi_dev_match_info { - struct acpi_device_id hid[2]; - const char *uid; - s64 hrv; -}; +typedef void (*btf_trace_rdev_assoc)(void *, struct wiphy *, struct net_device *, struct cfg80211_assoc_request *); -enum { - ACPI_GENL_CMD_UNSPEC = 0, - ACPI_GENL_CMD_EVENT = 1, - __ACPI_GENL_CMD_MAX = 2, -}; +typedef void (*btf_trace_rdev_deauth)(void *, struct wiphy *, struct net_device *, struct cfg80211_deauth_request *); -enum { - ACPI_GENL_ATTR_UNSPEC = 0, - ACPI_GENL_ATTR_EVENT = 1, - __ACPI_GENL_ATTR_MAX = 2, -}; +typedef void (*btf_trace_rdev_disassoc)(void *, struct wiphy *, struct net_device *, struct cfg80211_disassoc_request *); -struct acpi_bus_event { - struct list_head node; - acpi_device_class device_class; - acpi_bus_id bus_id; - u32 type; - u32 data; -}; +typedef void (*btf_trace_rdev_mgmt_tx_cancel_wait)(void *, struct wiphy *, struct wireless_dev *, u64); -struct acpi_genl_event { - acpi_device_class device_class; - char bus_id[15]; - u32 type; - u32 data; -}; +typedef void (*btf_trace_rdev_set_power_mgmt)(void *, struct wiphy *, struct net_device *, bool, int); -struct acpi_comment_node { - char *comment; - struct acpi_comment_node *next; -}; +typedef void (*btf_trace_rdev_connect)(void *, struct wiphy *, struct net_device *, struct cfg80211_connect_params *); -struct acpi_fixed_event_info { - u8 status_register_id; - u8 enable_register_id; - u16 status_bit_mask; - u16 enable_bit_mask; -}; +typedef void (*btf_trace_rdev_update_connect_params)(void *, struct wiphy *, struct net_device *, struct cfg80211_connect_params *, u32); -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)); +typedef void (*btf_trace_rdev_set_cqm_rssi_config)(void *, struct wiphy *, struct net_device *, s32, u32); -struct acpi_table_list { - struct acpi_table_desc *tables; - u32 current_table_count; - u32 max_table_count; - u8 flags; -}; +typedef void (*btf_trace_rdev_set_cqm_rssi_range_config)(void *, struct wiphy *, struct net_device *, s32, s32); -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]; -}; +typedef void (*btf_trace_rdev_set_cqm_txe_config)(void *, struct wiphy *, struct net_device *, u32, u32, u32); -struct acpi_mutex_info { - void *mutex; - u32 use_count; - u64 thread_id; -}; +typedef void (*btf_trace_rdev_disconnect)(void *, struct wiphy *, struct net_device *, u16); -typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); +typedef void (*btf_trace_rdev_join_ibss)(void *, struct wiphy *, struct net_device *, struct cfg80211_ibss_params *); -typedef acpi_status (*acpi_init_handler)(acpi_handle, u32); +typedef void (*btf_trace_rdev_join_ocb)(void *, struct wiphy *, struct net_device *, const struct ocb_setup *); -typedef acpi_status (*acpi_table_handler)(u32, void *, void *); +typedef void (*btf_trace_rdev_set_wiphy_params)(void *, struct wiphy *, u32); -typedef u32 (*acpi_interface_handler)(acpi_string, u32); +typedef void (*btf_trace_rdev_get_tx_power)(void *, struct wiphy *, struct wireless_dev *); -typedef u32 (*acpi_sci_handler)(void *); +typedef void (*btf_trace_rdev_set_tx_power)(void *, struct wiphy *, struct wireless_dev *, enum nl80211_tx_power_setting, int); -struct acpi_sci_handler_info { - struct acpi_sci_handler_info *next; - acpi_sci_handler address; - void *context; -}; +typedef void (*btf_trace_rdev_return_int_int)(void *, struct wiphy *, int, int); -struct acpi_interface_info { - char *name; - struct acpi_interface_info *next; - u8 flags; - u8 value; -}; +typedef void (*btf_trace_rdev_set_bitrate_mask)(void *, struct wiphy *, struct net_device *, unsigned int, const u8 *, const struct cfg80211_bitrate_mask *); -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; -}; +typedef void (*btf_trace_rdev_update_mgmt_frame_registrations)(void *, struct wiphy *, struct wireless_dev *, struct mgmt_frame_regs *); -typedef void (*acpi_gbl_event_handler)(u32, acpi_handle, u32, void *); +typedef void (*btf_trace_rdev_return_int_tx_rx)(void *, struct wiphy *, int, u32, u32); -typedef u32 (*acpi_event_handler)(void *); +typedef void (*btf_trace_rdev_return_void_tx_rx)(void *, struct wiphy *, u32, u32, u32, u32); -struct acpi_fixed_event_handler { - acpi_event_handler handler; - void *context; -}; +typedef void (*btf_trace_rdev_set_antenna)(void *, struct wiphy *, u32, u32); -struct acpi_dma_spec; +typedef void (*btf_trace_rdev_sched_scan_start)(void *, struct wiphy *, struct net_device *, u64); -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; -}; +typedef void (*btf_trace_rdev_sched_scan_stop)(void *, struct wiphy *, struct net_device *, u64); -struct acpi_dma_spec { - int chan_id; - int slave_id; - struct device *dev; -}; +typedef void (*btf_trace_rdev_tdls_mgmt)(void *, struct wiphy *, struct net_device *, u8 *, int, u8, u8, u16, u32, bool, const u8 *, size_t); -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; -}; +typedef void (*btf_trace_rdev_dump_survey)(void *, struct wiphy *, struct net_device *, int); -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; -}; +typedef void (*btf_trace_rdev_return_int_survey_info)(void *, struct wiphy *, int, struct survey_info *); -struct acpi_table_csrt { - struct acpi_table_header header; -}; +typedef void (*btf_trace_rdev_tdls_oper)(void *, struct wiphy *, struct net_device *, u8 *, enum nl80211_tdls_operation); -struct acpi_dma_parser_data { - struct acpi_dma_spec dma_spec; - size_t index; - size_t n; -}; +typedef void (*btf_trace_rdev_probe_client)(void *, struct wiphy *, struct net_device *, const u8 *); -struct acpi_dma_filter_info { - dma_cap_mask_t dma_cap; - dma_filter_fn filter_fn; -}; +typedef void (*btf_trace_rdev_set_pmksa)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmksa *); -struct kbdiacruc { - unsigned int diacr; - unsigned int base; - unsigned int result; -}; +typedef void (*btf_trace_rdev_del_pmksa)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmksa *); -struct serial_ctrl_device { - struct device dev; - struct ida port_ida; -}; +typedef void (*btf_trace_rdev_remain_on_channel)(void *, struct wiphy *, struct wireless_dev *, struct ieee80211_channel *, unsigned int); -struct uart_match { - struct uart_port *port; - struct uart_driver *driver; -}; +typedef void (*btf_trace_rdev_return_int_cookie)(void *, struct wiphy *, int, u64); -struct remap_pfn { - struct mm_struct *mm; - unsigned long pfn; - pgprot_t prot; - struct sgt_iter sgt; - resource_size_t iobase; -}; +typedef void (*btf_trace_rdev_cancel_remain_on_channel)(void *, struct wiphy *, struct wireless_dev *, u64); -struct cb_kernel { - const void *data; - u32 size; -}; +typedef void (*btf_trace_rdev_mgmt_tx)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_mgmt_tx_params *); -struct batch_vals { - u32 max_threads; - u32 state_start; - u32 surface_start; - u32 surface_height; - u32 surface_width; - u32 size; -}; +typedef void (*btf_trace_rdev_tx_control_port)(void *, struct wiphy *, struct net_device *, const u8 *, size_t, const u8 *, __be16, bool, int); -struct batch_chunk { - struct i915_vma *vma; - u32 offset; - u32 *start; - u32 *end; - u32 max_items; -}; +typedef void (*btf_trace_rdev_set_noack_map)(void *, struct wiphy *, struct net_device *, u16); -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, -}; +typedef void (*btf_trace_rdev_get_channel)(void *, struct wiphy *, struct wireless_dev *, unsigned int); -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; -}; +typedef void (*btf_trace_rdev_return_chandef)(void *, struct wiphy *, int, struct cfg80211_chan_def *); -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; -}; +typedef void (*btf_trace_rdev_start_p2p_device)(void *, struct wiphy *, struct wireless_dev *); -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 *i915; - struct drm_i915_gem_object *obj; - bool memcpy_allowed; -}; +typedef void (*btf_trace_rdev_stop_p2p_device)(void *, struct wiphy *, struct wireless_dev *); -struct intel_gsc_cpd_entry { - u8 name[12]; - u32 offset; - u32 length; - u8 reserved[4]; -}; +typedef void (*btf_trace_rdev_start_nan)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *); -struct intel_gsc_version { - u16 major; - u16 minor; - u16 hotfix; - u16 build; -}; +typedef void (*btf_trace_rdev_nan_change_conf)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_nan_conf *, u32); -struct intel_gsc_manifest_header { - u32 header_type; - u32 header_length; - u32 header_version; - u32 flags; - u32 vendor; - u32 date; - u32 size; - u32 header_id; - u32 internal_data; - struct intel_gsc_version fw_version; - u32 security_version; - struct intel_gsc_version meu_kit_version; - u32 meu_manifest_version; - u8 general_data[4]; - u8 reserved3[56]; - u32 modulus_size; - u32 exponent_size; -}; +typedef void (*btf_trace_rdev_stop_nan)(void *, struct wiphy *, struct wireless_dev *); -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; -}; +typedef void (*btf_trace_rdev_add_nan_func)(void *, struct wiphy *, struct wireless_dev *, const struct cfg80211_nan_func *); -struct pxp43_new_huc_auth_in { - struct pxp_cmd_header header; - u64 huc_base_address; - u32 huc_size; -} __attribute__((packed)); +typedef void (*btf_trace_rdev_del_nan_func)(void *, struct wiphy *, struct wireless_dev *, u64); -struct mtl_huc_auth_msg_in { - struct intel_gsc_mtl_header header; - struct pxp43_new_huc_auth_in huc_in; -}; +typedef void (*btf_trace_rdev_set_mac_acl)(void *, struct wiphy *, struct net_device *, struct cfg80211_acl_data *); -struct mtl_huc_auth_msg_out { - struct intel_gsc_mtl_header header; - struct pxp43_huc_auth_out huc_out; -}; +typedef void (*btf_trace_rdev_update_ft_ies)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_ft_ies_params *); -struct intel_gsc_cpd_header_v2 { - u32 header_marker; - u32 num_of_entries; - u8 header_version; - u8 entry_version; - u8 header_length; - u8 flags; - u32 partition_name; - u32 crc32; -}; +typedef void (*btf_trace_rdev_crit_proto_start)(void *, struct wiphy *, struct wireless_dev *, enum nl80211_crit_proto_id, u16); -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; -}; +typedef void (*btf_trace_rdev_crit_proto_stop)(void *, struct wiphy *, struct wireless_dev *); -struct fb_plane_view_dims { - unsigned int width; - unsigned int height; - unsigned int tile_width; - unsigned int tile_height; -}; +typedef void (*btf_trace_rdev_channel_switch)(void *, struct wiphy *, struct net_device *, struct cfg80211_csa_settings *); -struct ch7xxx_id_struct { - u8 vid; - char *name; -}; +typedef void (*btf_trace_rdev_set_qos_map)(void *, struct wiphy *, struct net_device *, struct cfg80211_qos_map *); -struct ch7xxx_did_struct { - u8 did; - char *name; -}; +typedef void (*btf_trace_rdev_set_ap_chanwidth)(void *, struct wiphy *, struct net_device *, unsigned int, struct cfg80211_chan_def *); -struct ch7xxx_priv { - bool quiet; -}; +typedef void (*btf_trace_rdev_add_tx_ts)(void *, struct wiphy *, struct net_device *, u8, const u8 *, u8, u16); -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, -}; +typedef void (*btf_trace_rdev_del_tx_ts)(void *, struct wiphy *, struct net_device *, u8, const u8 *); -struct drm_virtgpu_execbuffer; +typedef void (*btf_trace_rdev_tdls_channel_switch)(void *, struct wiphy *, struct net_device *, const u8 *, u8, struct cfg80211_chan_def *); -struct virtio_gpu_submit { - struct virtio_gpu_object_array *buflist; - struct drm_virtgpu_execbuffer *exbuf; - struct virtio_gpu_fence *out_fence; - struct virtio_gpu_fpriv *vfpriv; - struct virtio_gpu_device *vgdev; - struct sync_file *sync_file; - struct drm_file *file; - int out_fence_fd; - u64 fence_ctx; - u32 ring_idx; - void *buf; -}; +typedef void (*btf_trace_rdev_tdls_cancel_channel_switch)(void *, struct wiphy *, struct net_device *, const u8 *); -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; -}; +typedef void (*btf_trace_rdev_set_pmk)(void *, struct wiphy *, struct net_device *, struct cfg80211_pmk_conf *); -typedef void (*btf_trace_dma_fence_emit)(void *, struct dma_fence *); +typedef void (*btf_trace_rdev_del_pmk)(void *, struct wiphy *, struct net_device *, const u8 *); -typedef void (*btf_trace_dma_fence_init)(void *, struct dma_fence *); +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_dma_fence_destroy)(void *, struct dma_fence *); +typedef void (*btf_trace_rdev_set_coalesce)(void *, struct wiphy *, struct cfg80211_coalesce *); -typedef void (*btf_trace_dma_fence_enable_signal)(void *, struct dma_fence *); +typedef void (*btf_trace_rdev_abort_scan)(void *, struct wiphy *, struct wireless_dev *); -typedef void (*btf_trace_dma_fence_signaled)(void *, struct dma_fence *); +typedef void (*btf_trace_rdev_set_multicast_to_unicast)(void *, struct wiphy *, struct net_device *, const bool); -typedef void (*btf_trace_dma_fence_wait_start)(void *, struct dma_fence *); +typedef void (*btf_trace_rdev_get_txq_stats)(void *, struct wiphy *, struct wireless_dev *); -typedef void (*btf_trace_dma_fence_wait_end)(void *, struct dma_fence *); +typedef void (*btf_trace_rdev_get_ftm_responder_stats)(void *, struct wiphy *, struct net_device *, struct cfg80211_ftm_responder_stats *); -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]; -}; +typedef void (*btf_trace_rdev_start_pmsr)(void *, struct wiphy *, struct wireless_dev *, u64); -struct default_wait_cb { - struct dma_fence_cb base; - struct task_struct *task; -}; +typedef void (*btf_trace_rdev_abort_pmsr)(void *, struct wiphy *, struct wireless_dev *, u64); -struct trace_event_data_offsets_dma_fence { - u32 driver; - u32 timeline; -}; +typedef void (*btf_trace_rdev_set_fils_aad)(void *, struct wiphy *, struct net_device *, struct cfg80211_fils_aad *); -struct ich_laptop { - u16 device; - u16 subvendor; - u16 subdevice; -}; +typedef void (*btf_trace_rdev_update_owe_info)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *); -struct piix_map_db { - const u32 mask; - const u16 port_enable; - const int map[0]; -}; +typedef void (*btf_trace_rdev_probe_mesh_link)(void *, struct wiphy *, struct net_device *, const u8 *, const u8 *, size_t); -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, -}; +typedef void (*btf_trace_rdev_set_tid_config)(void *, struct wiphy *, struct net_device *, struct cfg80211_tid_config *); -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, -}; +typedef void (*btf_trace_rdev_reset_tid_config)(void *, struct wiphy *, struct net_device *, const u8 *, u8); -struct piix_host_priv { - const int *map; - u32 saved_iocfg; - void *sidpr; -}; +typedef void (*btf_trace_rdev_set_sar_specs)(void *, struct wiphy *, struct cfg80211_sar_specs *); -struct register_test { - __u32 reg; - __u32 mask; -}; +typedef void (*btf_trace_rdev_color_change)(void *, struct wiphy *, struct net_device *, struct cfg80211_color_change_settings *); -struct nv_ethtool_str { - char name[32]; -}; +typedef void (*btf_trace_rdev_set_radar_background)(void *, struct wiphy *, struct cfg80211_chan_def *); -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, -}; +typedef void (*btf_trace_rdev_add_intf_link)(void *, struct wiphy *, struct wireless_dev *, unsigned int); -enum { - NV_OPTIMIZATION_MODE_THROUGHPUT = 0, - NV_OPTIMIZATION_MODE_CPU = 1, - NV_OPTIMIZATION_MODE_DYNAMIC = 2, -}; +typedef void (*btf_trace_rdev_del_intf_link)(void *, struct wiphy *, struct wireless_dev *, unsigned int); -enum { - NV_CROSSOVER_DETECTION_DISABLED = 0, - NV_CROSSOVER_DETECTION_ENABLED = 1, -}; +typedef void (*btf_trace_cfg80211_return_bool)(void *, bool); -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; -}; +typedef void (*btf_trace_cfg80211_notify_new_peer_candidate)(void *, struct net_device *, const u8 *); -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; -}; +typedef void (*btf_trace_cfg80211_send_rx_auth)(void *, struct net_device *); -struct ring_desc; +typedef void (*btf_trace_cfg80211_send_rx_assoc)(void *, struct net_device *, struct cfg80211_rx_assoc_resp_data *); -struct ring_desc_ex; +typedef void (*btf_trace_cfg80211_rx_unprot_mlme_mgmt)(void *, struct net_device *, const u8 *, int); -union ring_type { - struct ring_desc *orig; - struct ring_desc_ex *ex; -}; +typedef void (*btf_trace_cfg80211_rx_mlme_mgmt)(void *, struct net_device *, const u8 *, int); -struct nv_skb_map; +typedef void (*btf_trace_cfg80211_tx_mlme_mgmt)(void *, struct net_device *, const u8 *, int, bool); -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]; -}; +typedef void (*btf_trace_cfg80211_send_auth_timeout)(void *, struct net_device *, const u8 *); -struct ring_desc { - __le32 buf; - __le32 flaglen; -}; +struct cfg80211_assoc_failure; -struct ring_desc_ex { - __le32 bufhigh; - __le32 buflow; - __le32 txvlan; - __le32 flaglen; -}; +typedef void (*btf_trace_cfg80211_send_assoc_failure)(void *, struct net_device *, struct cfg80211_assoc_failure *); -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; +struct cfg80211_assoc_failure { + const u8 *ap_mld_addr; + struct cfg80211_bss *bss[15]; + bool timeout; }; -enum ptp_clock_events { - PTP_CLOCK_ALARM = 0, - PTP_CLOCK_EXTTS = 1, - PTP_CLOCK_PPS = 2, - PTP_CLOCK_PPSUSR = 3, -}; +typedef void (*btf_trace_cfg80211_michael_mic_failure)(void *, struct net_device *, const u8 *, enum nl80211_key_type, int, const u8 *); -struct pps_event_time { - struct timespec64 ts_real; -}; +typedef void (*btf_trace_cfg80211_ready_on_channel)(void *, struct wireless_dev *, u64, struct ieee80211_channel *, unsigned int); -struct ptp_clock_event { - int type; - int index; - union { - u64 timestamp; - struct pps_event_time pps_times; - }; -}; +typedef void (*btf_trace_cfg80211_ready_on_channel_expired)(void *, struct wireless_dev *, u64, struct ieee80211_channel *); -enum lg_g15_model { - LG_G15 = 0, - LG_G15_V2 = 1, - LG_G510 = 2, - LG_G510_USB_AUDIO = 3, - LG_Z10 = 4, -}; +typedef void (*btf_trace_cfg80211_tx_mgmt_expired)(void *, struct wireless_dev *, u64, struct ieee80211_channel *); -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, -}; +typedef void (*btf_trace_cfg80211_new_sta)(void *, struct net_device *, const u8 *, struct station_info *); -struct lg_g15_led { - struct led_classdev cdev; - enum led_brightness brightness; - enum lg_g15_led_type led; - u8 red; - u8 green; - u8 blue; -}; +typedef void (*btf_trace_cfg80211_del_sta)(void *, struct net_device *, const u8 *); -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; -}; +typedef void (*btf_trace_cfg80211_rx_mgmt)(void *, struct wireless_dev *, struct cfg80211_rx_info *); -typedef int (*snd_seq_dump_func_t)(void *, void *, int); +typedef void (*btf_trace_cfg80211_mgmt_tx_status)(void *, struct wireless_dev *, u64, bool); -struct fib_notifier_net { - struct list_head fib_notifier_ops; - struct atomic_notifier_head fib_chain; -}; +typedef void (*btf_trace_cfg80211_control_port_tx_status)(void *, struct wireless_dev *, u64, bool); -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, -}; +typedef void (*btf_trace_cfg80211_rx_control_port)(void *, struct net_device *, struct sk_buff *, bool, int); -enum { - LWT_BPF_PROG_UNSPEC = 0, - LWT_BPF_PROG_FD = 1, - LWT_BPF_PROG_NAME = 2, - __LWT_BPF_PROG_MAX = 3, -}; +typedef void (*btf_trace_cfg80211_cqm_rssi_notify)(void *, struct net_device *, enum nl80211_cqm_rssi_threshold_event, s32); -struct bpf_lwt_prog { - struct bpf_prog *prog; - char *name; -}; +typedef void (*btf_trace_cfg80211_reg_can_beacon)(void *, struct wiphy *, struct cfg80211_chan_def *, enum nl80211_iftype, bool); -struct bpf_lwt { - struct bpf_lwt_prog in; - struct bpf_lwt_prog out; - struct bpf_lwt_prog xmit; - int family; -}; +typedef void (*btf_trace_cfg80211_chandef_dfs_required)(void *, struct wiphy *, struct cfg80211_chan_def *); -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, -}; +typedef void (*btf_trace_cfg80211_ch_switch_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int, u16); -struct coalesce_reply_data { - struct ethnl_reply_data base; - struct ethtool_coalesce coalesce; - struct kernel_ethtool_coalesce kernel_coalesce; - u32 supported_params; -}; +typedef void (*btf_trace_cfg80211_ch_switch_started_notify)(void *, struct net_device *, struct cfg80211_chan_def *, unsigned int, u16); -enum { - NF_BPF_CT_OPTS_SZ = 12, -}; +typedef void (*btf_trace_cfg80211_radar_event)(void *, struct wiphy *, struct cfg80211_chan_def *, bool); -enum { - BPF_F_CURRENT_NETNS = -1, -}; +typedef void (*btf_trace_cfg80211_cac_event)(void *, struct net_device *, enum nl80211_radar_event); -struct nf_conn___init { - struct nf_conn ct; -}; +typedef void (*btf_trace_cfg80211_rx_spurious_frame)(void *, struct net_device *, const u8 *); -struct bpf_sock_tuple { - union { - struct { - __be32 saddr; - __be32 daddr; - __be16 sport; - __be16 dport; - } ipv4; - struct { - __be32 saddr[4]; - __be32 daddr[4]; - __be16 sport; - __be16 dport; - } ipv6; - }; -}; +typedef void (*btf_trace_cfg80211_rx_unexpected_4addr_frame)(void *, struct net_device *, const u8 *); -struct bpf_ct_opts { - s32 netns_id; - s32 error; - u8 l4proto; - u8 dir; - u8 reserved[2]; -}; +typedef void (*btf_trace_cfg80211_ibss_joined)(void *, struct net_device *, const u8 *, struct ieee80211_channel *); -struct bpf_sock; +typedef void (*btf_trace_cfg80211_probe_status)(void *, struct net_device *, const u8 *, u64, bool); -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; -}; +typedef void (*btf_trace_cfg80211_cqm_pktloss_notify)(void *, struct net_device *, const u8 *, u32); -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; -}; +typedef void (*btf_trace_cfg80211_gtk_rekey_notify)(void *, struct net_device *, const u8 *); -enum tunnel_encap_types { - TUNNEL_ENCAP_NONE = 0, - TUNNEL_ENCAP_FOU = 1, - TUNNEL_ENCAP_GUE = 2, - TUNNEL_ENCAP_MPLS = 3, -}; +typedef void (*btf_trace_cfg80211_pmksa_candidate_notify)(void *, struct net_device *, int, const u8 *, bool); -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; -}; +typedef void (*btf_trace_cfg80211_report_obss_beacon)(void *, struct wiphy *, const u8 *, size_t, int, int); -struct tnl_ptk_info { - __be16 flags; - __be16 proto; - __be32 key; - __be32 seq; - int hdr_len; -}; +typedef void (*btf_trace_cfg80211_tdls_oper_request)(void *, struct wiphy *, struct net_device *, const u8 *, enum nl80211_tdls_operation, u16); -struct ipv6_params { - __s32 disable_ipv6; - __s32 autoconf; -}; +typedef void (*btf_trace_cfg80211_scan_done)(void *, struct cfg80211_scan_request *, struct cfg80211_scan_info *); -struct seg6_pernet_data { - struct mutex lock; - struct in6_addr __attribute__((btf_type_tag("rcu"))) *tun_src; -}; +typedef void (*btf_trace_cfg80211_sched_scan_stopped)(void *, struct wiphy *, u64); -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); -}; +typedef void (*btf_trace_cfg80211_sched_scan_results)(void *, struct wiphy *, u64); -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; -}; +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); -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; -}; +typedef void (*btf_trace_cfg80211_inform_bss_frame)(void *, struct wiphy *, struct cfg80211_inform_bss *, struct ieee80211_mgmt *, size_t); -enum { - SEG6_IPTUNNEL_UNSPEC = 0, - SEG6_IPTUNNEL_SRH = 1, - __SEG6_IPTUNNEL_MAX = 2, -}; +typedef void (*btf_trace_cfg80211_return_bss)(void *, struct cfg80211_bss *); -enum { - SEG6_IPTUN_MODE_INLINE = 0, - SEG6_IPTUN_MODE_ENCAP = 1, - SEG6_IPTUN_MODE_L2ENCAP = 2, - SEG6_IPTUN_MODE_ENCAP_RED = 3, - SEG6_IPTUN_MODE_L2ENCAP_RED = 4, -}; +typedef void (*btf_trace_cfg80211_return_uint)(void *, unsigned int); -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]; -}; +typedef void (*btf_trace_cfg80211_return_u32)(void *, u32); -struct seg6_iptunnel_encap { - int mode; - struct ipv6_sr_hdr srh[0]; -}; +typedef void (*btf_trace_cfg80211_report_wowlan_wakeup)(void *, struct wiphy *, struct wireless_dev *, struct cfg80211_wowlan_wakeup *); -struct seg6_lwt { - struct dst_cache cache; - struct seg6_iptunnel_encap tuninfo[0]; -}; +typedef void (*btf_trace_cfg80211_ft_event)(void *, struct wiphy *, struct net_device *, struct cfg80211_ft_event_params *); -struct strp_msg { - int full_len; - int offset; -}; +typedef void (*btf_trace_cfg80211_stop_iface)(void *, struct wiphy *, struct wireless_dev *); -struct _strp_msg { - struct strp_msg strp; - int accum_len; -}; +typedef void (*btf_trace_cfg80211_pmsr_report)(void *, struct wiphy *, struct wireless_dev *, u64, const u8 *); -struct rate_control_alg { - struct list_head list; - const struct rate_control_ops *ops; -}; +typedef void (*btf_trace_cfg80211_pmsr_complete)(void *, struct wiphy *, struct wireless_dev *, u64); -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, -}; +typedef void (*btf_trace_cfg80211_update_owe_info_event)(void *, struct wiphy *, struct net_device *, struct cfg80211_update_owe_info *); -struct xdp_rxtx_ring { - struct xdp_ring ptrs; - struct xdp_desc desc[0]; -}; +typedef void (*btf_trace_cfg80211_bss_color_notify)(void *, struct net_device *, enum nl80211_commands, u8, u64); -struct xdp_umem_ring { - struct xdp_ring ptrs; - u64 desc[0]; -}; +typedef void (*btf_trace_cfg80211_assoc_comeback)(void *, struct wireless_dev *, const u8 *, u32); -struct xsk_map; +typedef void (*btf_trace_rdev_add_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_parameters *); -struct xsk_map_node { - struct list_head node; - struct xsk_map *map; - struct xdp_sock __attribute__((btf_type_tag("rcu"))) **map_entry; -}; +typedef void (*btf_trace_rdev_mod_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_parameters *); -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; -}; +typedef void (*btf_trace_rdev_del_link_station)(void *, struct wiphy *, struct net_device *, struct link_station_del_parameters *); -struct sockaddr_xdp { - __u16 sxdp_family; - __u16 sxdp_flags; - __u32 sxdp_ifindex; - __u32 sxdp_queue_id; - __u32 sxdp_shared_umem_fd; -}; +typedef void (*btf_trace_rdev_set_hw_timestamp)(void *, struct wiphy *, struct net_device *, struct cfg80211_set_hw_timestamp *); -struct xdp_ring_offset_v1 { - __u64 producer; - __u64 consumer; - __u64 desc; -}; +typedef void (*btf_trace_cfg80211_links_removed)(void *, struct net_device *, u16); -struct xdp_umem_reg { - __u64 addr; - __u64 len; - __u32 chunk_size; - __u32 headroom; - __u32 flags; +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 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 trace_event_raw_rdev_return_int { + struct trace_entry ent; + char wiphy_name[32]; + int ret; + char __data[0]; }; -struct xdp_ring_offset { - __u64 producer; - __u64 consumer; - __u64 desc; - __u64 flags; +struct trace_event_raw_rdev_scan { + struct trace_entry ent; + char wiphy_name[32]; + char __data[0]; }; -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 trace_event_raw_wiphy_only_evt { + struct trace_entry ent; + char wiphy_name[32]; + char __data[0]; }; -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 trace_event_raw_wiphy_enabled_evt { + struct trace_entry ent; + char wiphy_name[32]; + bool enabled; + char __data[0]; }; -struct xdp_options { - __u32 flags; +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]; }; -enum { - MEMTYPE_EXACT_MATCH = 0, - MEMTYPE_END_MATCH = 1, +struct trace_event_raw_wiphy_wdev_evt { + struct trace_entry ent; + char wiphy_name[32]; + u32 id; + char __data[0]; }; -struct memtype { - u64 start; - u64 end; - u64 subtree_max_end; - enum page_cache_mode type; - struct rb_node rb; +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]; }; -enum sysctl_writes_mode { - SYSCTL_WRITES_LEGACY = -1, - SYSCTL_WRITES_WARN = 0, - SYSCTL_WRITES_STRICT = 1, +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 do_proc_dointvec_minmax_conv_param { - int *min; - int *max; +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 do_proc_douintvec_minmax_conv_param { - unsigned int *min; - unsigned int *max; +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 klp_shadow { - struct hlist_node node; - struct callback_head callback_head; - void *obj; - unsigned long id; - 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]; }; -typedef void (*klp_shadow_dtor_t)(void *, void *); - -typedef int (*klp_shadow_ctor_t)(void *, void *, void *); - -struct compat_kexec_segment { - compat_uptr_t buf; - compat_size_t bufsz; - compat_ulong_t mem; - compat_size_t memsz; +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 ftrace_page; - -struct ftrace_rec_iter { - struct ftrace_page *pg; - int index; +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 ftrace_page { - struct ftrace_page *next; - struct dyn_ftrace *records; - int index; - int order; +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]; }; -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 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 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 trace_event_raw_wiphy_netdev_evt { + struct trace_entry ent; + char wiphy_name[32]; + char name[16]; + int ifindex; + char __data[0]; }; -struct ftrace_profile_page; - -struct ftrace_profile_stat { - atomic_t disabled; - struct hlist_head *hash; - struct ftrace_profile_page *pages; - struct ftrace_profile_page *start; - struct tracer_stat stat; +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 ftrace_profile { - struct hlist_node node; - unsigned long ip; - unsigned long counter; - unsigned long long time; - unsigned long long time_squared; +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 ftrace_profile_page { - struct ftrace_profile_page *next; - unsigned long index; - struct ftrace_profile records[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]; }; -enum { - FTRACE_MODIFY_ENABLE_FL = 1, - FTRACE_MODIFY_MAY_SLEEP_FL = 2, +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]; }; -enum { - FTRACE_ITER_FILTER = 1, - FTRACE_ITER_NOTRACE = 2, - FTRACE_ITER_PRINTALL = 4, - FTRACE_ITER_DO_PROBES = 8, - FTRACE_ITER_PROBE = 16, - FTRACE_ITER_MOD = 32, - FTRACE_ITER_ENABLED = 64, - FTRACE_ITER_TOUCHED = 128, - FTRACE_ITER_ADDRS = 256, +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]; }; -enum regex_type { - MATCH_FULL = 0, - MATCH_FRONT_ONLY = 1, - MATCH_MIDDLE_ONLY = 2, - MATCH_END_ONLY = 3, - MATCH_GLOB = 4, - MATCH_INDEX = 5, +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]; }; -enum { - FTRACE_HASH_FL_MOD = 1, +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]; }; -enum graph_filter_type { - GRAPH_FILTER_NOTRACE = 0, - GRAPH_FILTER_FUNCTION = 1, +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 ftrace_func_mapper { - struct ftrace_hash hash; +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 ftrace_func_entry { - struct hlist_node hlist; - unsigned long ip; - unsigned long direct; +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 ftrace_func_map { - struct ftrace_func_entry entry; - void *data; +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 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 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 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 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 ftrace_mod_func { - struct list_head list; - char *name; - unsigned long ip; - unsigned int size; +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 ftrace_init_func { - struct list_head list; - unsigned long ip; +struct trace_event_raw_rdev_inform_bss { + struct trace_entry ent; + char wiphy_name[32]; + u8 bssid[6]; + enum nl80211_band band; + u32 center_freq; + u16 freq_offset; + char __data[0]; }; -struct ftrace_mod_load { - struct list_head list; - char *func; - char *module; - int enable; +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 ftrace_iterator { - loff_t pos; - loff_t func_pos; - loff_t mod_pos; - struct ftrace_page *pg; - struct dyn_ftrace *func; - struct ftrace_func_probe *probe; - struct ftrace_func_entry *probe_entry; - struct trace_parser parser; - struct ftrace_hash *hash; - struct ftrace_ops *ops; - struct trace_array *tr; - struct list_head *mod_list; - int pidx; - int idx; - unsigned int flags; +struct 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 ftrace_glob { - char *search; - unsigned int len; - int type; +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 ftrace_graph_data { - struct ftrace_hash *hash; - struct ftrace_func_entry *entry; - int idx; - enum graph_filter_type type; - struct ftrace_hash *new_hash; - const struct seq_operations *seq_ops; - struct trace_parser parser; +struct 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 kallsyms_data { - unsigned long *addrs; - const char **syms; - size_t cnt; - size_t found; +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]; }; -enum { - BPF_F_BROADCAST = 8, - BPF_F_EXCLUDE_INGRESS = 16, +struct trace_event_raw_rdev_deauth { + struct trace_entry ent; + char wiphy_name[32]; + char name[16]; + int ifindex; + u8 bssid[6]; + u16 reason_code; + bool local_state_change; + char __data[0]; }; -struct 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 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 bpf_cpumap_val { - __u32 qsize; - union { - int fd; - __u32 id; - } bpf_prog; +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 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 completion kthread_running; +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 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 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 bpf_nh_params { - u32 nh_family; - union { - u32 ipv4_nh; - struct in6_addr ipv6_nh; - }; +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 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 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]; }; -typedef void (*btf_trace_mm_compaction_isolate_migratepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_mm_compaction_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_mm_compaction_fast_isolate_freepages)(void *, unsigned long, unsigned long, unsigned long, unsigned long); - -typedef void (*btf_trace_mm_compaction_migratepages)(void *, 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); +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]; +}; -typedef void (*btf_trace_mm_compaction_kcompactd_wake)(void *, int, int, enum zone_type); +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]; +}; -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, +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]; }; -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, +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]; }; -enum pageblock_bits { - PB_migrate = 0, - PB_migrate_end = 2, - PB_migrate_skip = 3, - NR_PAGEBLOCK_BITS = 4, +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_mm_compaction_isolate_template { +struct trace_event_raw_rdev_set_wiphy_params { struct trace_entry ent; - unsigned long start_pfn; - unsigned long end_pfn; - unsigned long nr_scanned; - unsigned long nr_taken; + char wiphy_name[32]; + u32 changed; char __data[0]; }; -struct trace_event_raw_mm_compaction_migratepages { +struct trace_event_raw_rdev_set_tx_power { struct trace_entry ent; - unsigned long nr_migrated; - unsigned long nr_failed; + char wiphy_name[32]; + u32 id; + enum nl80211_tx_power_setting type; + int mbm; char __data[0]; }; -struct trace_event_raw_mm_compaction_begin { +struct trace_event_raw_rdev_return_int_int { struct trace_entry ent; - unsigned long zone_start; - unsigned long migrate_pfn; - unsigned long free_pfn; - unsigned long zone_end; - bool sync; + char wiphy_name[32]; + int func_ret; + int func_fill; char __data[0]; }; -struct trace_event_raw_mm_compaction_end { +struct trace_event_raw_rdev_set_bitrate_mask { 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 wiphy_name[32]; + char name[16]; + int ifindex; + unsigned int link_id; + u8 peer[6]; char __data[0]; }; -struct trace_event_raw_mm_compaction_try_to_compact_pages { +struct trace_event_raw_rdev_update_mgmt_frame_registrations { struct trace_entry ent; - int order; - unsigned long gfp_mask; - int prio; + char wiphy_name[32]; + u32 id; + u16 global_stypes; + u16 interface_stypes; char __data[0]; }; -struct trace_event_raw_mm_compaction_suitable_template { +struct trace_event_raw_rdev_return_int_tx_rx { struct trace_entry ent; - int nid; - enum zone_type idx; - int order; + char wiphy_name[32]; int ret; + u32 tx; + u32 rx; char __data[0]; }; -struct trace_event_raw_mm_compaction_defer_template { +struct trace_event_raw_rdev_return_void_tx_rx { struct trace_entry ent; - int nid; - enum zone_type idx; - int order; - unsigned int considered; - unsigned int defer_shift; - int order_failed; + char wiphy_name[32]; + u32 tx; + u32 tx_max; + u32 rx; + u32 rx_max; char __data[0]; }; -struct trace_event_raw_mm_compaction_kcompactd_sleep { +struct trace_event_raw_tx_rx_evt { struct trace_entry ent; - int nid; + char wiphy_name[32]; + u32 tx; + u32 rx; char __data[0]; }; -struct trace_event_raw_kcompactd_wake_template { +struct trace_event_raw_wiphy_netdev_id_evt { struct trace_entry ent; - int nid; - int order; - enum zone_type highest_zoneidx; + char wiphy_name[32]; + char name[16]; + int ifindex; + u64 id; 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 alloc_context { - struct zonelist *zonelist; - nodemask_t *nodemask; - struct zoneref *preferred_zoneref; - int migratetype; - enum zone_type highest_zoneidx; - bool spread_dirty_pages; +struct trace_event_raw_rdev_tdls_mgmt { + struct trace_entry ent; + char wiphy_name[32]; + char name[16]; + int ifindex; + u8 peer[6]; + int link_id; + u8 action_code; + u8 dialog_token; + u16 status_code; + u32 peer_capability; + bool initiator; + u32 __data_loc_buf; + char __data[0]; }; -struct dentry_stat_t { - long nr_dentry; - long nr_unused; - long age_limit; - long want_pages; - long nr_negative; - long dummy; +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]; }; -enum lru_status { - LRU_REMOVED = 0, - LRU_REMOVED_RETRY = 1, - LRU_ROTATE = 2, - LRU_SKIP = 3, - LRU_RETRY = 4, +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]; }; -enum d_walk_ret { - D_WALK_CONTINUE = 0, - D_WALK_QUIT = 1, - D_WALK_NORETRY = 2, - D_WALK_SKIP = 3, +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 external_name { - union { - atomic_t count; - struct callback_head head; - } u; - unsigned char name[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]; }; -typedef enum lru_status (*list_lru_walk_cb)(struct list_head *, struct list_lru_one *, spinlock_t *, void *); - -struct check_mount { - struct vfsmount *mnt; - unsigned int mounted; +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 select_data { - struct dentry *start; - union { - long found; - struct dentry *victim; - }; - struct list_head dispose; +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 dnotify_struct; - -struct dnotify_mark { - struct fsnotify_mark fsn_mark; - struct dnotify_struct *dn; +struct trace_event_raw_rdev_return_int_cookie { + struct trace_entry ent; + char wiphy_name[32]; + int ret; + u64 cookie; + char __data[0]; }; -struct dnotify_struct { - struct dnotify_struct *dn_next; - __u32 dn_mask; - int dn_fd; - struct file *dn_filp; - fl_owner_t dn_owner; +struct trace_event_raw_rdev_cancel_remain_on_channel { + struct trace_entry ent; + char wiphy_name[32]; + u32 id; + u64 cookie; + char __data[0]; }; -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, +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 qt_disk_dqdbheader { - __le32 dqdh_next_free; - __le32 dqdh_prev_free; - __le16 dqdh_entries; - __le16 dqdh_pad1; - __le32 dqdh_pad2; +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 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 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 qtree_fmt_operations { - void (*mem2disk_dqblk)(void *, struct dquot *); - void (*disk2mem_dqblk)(struct dquot *, void *); - int (*is_id)(void *, struct dquot *); +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]; }; -typedef struct dentry *instantiate_t(struct dentry *, struct task_struct *, const void *); - -enum criteria { - CR_POWER2_ALIGNED = 0, - CR_GOAL_LEN_FAST = 1, - CR_BEST_AVAIL_LEN = 2, - CR_GOAL_LEN_SLOW = 3, - CR_ANY_FREE = 4, - EXT4_MB_NUM_CRS = 5, +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]; }; -enum { - MB_INODE_PA = 0, - MB_GROUP_PA = 1, +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 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 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 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 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 sg { - struct ext4_group_info info; - ext4_grpblk_t counters[18]; +struct trace_event_raw_rdev_del_nan_func { + struct trace_entry ent; + char wiphy_name[32]; + u32 id; + u64 cookie; + char __data[0]; }; -typedef int (*ext4_mballoc_query_range_fn)(struct super_block *, ext4_group_t, ext4_grpblk_t, ext4_grpblk_t, void *); - -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 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]; }; -typedef int (*nlm_host_match_fn_t)(void *, struct nlm_host *); - -struct compat_ipc_kludge { - compat_uptr_t msgp; - compat_long_t msgtyp; +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 ext_wait_queue { - struct task_struct *task; - struct list_head list; - struct msg_msg *msg; - int state; +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 posix_msg_tree_node; +struct trace_event_raw_rdev_crit_proto_stop { + struct trace_entry ent; + char wiphy_name[32]; + u32 id; + char __data[0]; +}; -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 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 posix_msg_tree_node { - struct rb_node rb_node; - struct list_head msg_list; - int priority; +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 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 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 mqueue_fs_context { - struct ipc_namespace *ipc_ns; - bool newns; +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]; }; -enum { - CRYPTO_AUTHENC_KEYA_UNSPEC = 0, - CRYPTO_AUTHENC_KEYA_PARAM = 1, +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 authenc_instance_ctx { - struct crypto_ahash_spawn auth; - struct crypto_skcipher_spawn enc; - unsigned int reqoff; +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 crypto_authenc_key_param { - __be32 enckeylen; +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 crypto_authenc_ctx { - struct crypto_ahash *auth; - struct crypto_skcipher *enc; - struct crypto_sync_skcipher *null; +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 authenc_request_ctx { - struct scatterlist src[2]; - struct scatterlist dst[2]; - char tail[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]; }; -enum { - IO_WORKER_F_UP = 1, - IO_WORKER_F_RUNNING = 2, - IO_WORKER_F_FREE = 4, - IO_WORKER_F_BOUND = 8, +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]; }; -enum { - IO_WQ_BIT_EXIT = 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]; }; -enum { - IO_ACCT_STALLED_BIT = 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]; }; -enum { - IO_WQ_ACCT_BOUND = 0, - IO_WQ_ACCT_UNBOUND = 1, - IO_WQ_ACCT_NR = 2, +struct trace_event_raw_rdev_set_coalesce { + struct trace_entry ent; + char wiphy_name[32]; + int n_rules; + char __data[0]; }; -struct io_worker { - refcount_t ref; - unsigned int flags; - struct hlist_nulls_node nulls_node; - struct list_head all_list; - struct task_struct *task; - struct io_wq *wq; - struct io_wq_work *cur_work; - struct io_wq_work *next_work; - raw_spinlock_t lock; - struct completion ref_done; - unsigned long create_state; - struct callback_head create_work; - int create_index; - union { - struct callback_head rcu; - struct work_struct work; - }; +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 io_wq_acct { - unsigned int nr_workers; - unsigned int max_workers; - int index; - atomic_t nr_running; - raw_spinlock_t lock; - struct io_wq_work_list work_list; - unsigned long flags; +struct 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 io_wq { - unsigned long state; - free_work_fn *free_work; - io_wq_work_fn *do_work; - struct io_wq_hash *hash; - atomic_t worker_refs; - struct completion worker_done; - struct hlist_node cpuhp_node; - struct task_struct *task; - struct io_wq_acct acct[2]; - raw_spinlock_t lock; - struct hlist_nulls_head free_list; - struct list_head all_list; - struct wait_queue_entry wait; - struct io_wq_work *hash_tail[64]; - cpumask_var_t cpu_mask; +struct trace_event_raw_wiphy_wdev_cookie_evt { + struct trace_entry ent; + char wiphy_name[32]; + u32 id; + u64 cookie; + char __data[0]; }; -struct io_cb_cancel_data { - work_cancel_fn *fn; - void *data; - int nr_running; - int nr_pending; - bool cancel_all; +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 online_data { - unsigned int cpu; - bool online; +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 acpi_processor_errata { - u8 smp; - struct { - u8 throttle: 1; - u8 fdma: 1; - u8 reserved: 6; - u32 bmisx; - } piix4; +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 acpi_osc_context { - char *uuid_str; - int rev; - struct acpi_buffer cap; - struct acpi_buffer ret; +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 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 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 acpi_fan_fps { - u64 control; - u64 trip_point; - u64 speed; - u64 noise_level; - u64 power; - char name[20]; - struct device_attribute dev_attr; +struct trace_event_raw_rdev_set_sar_specs { + struct trace_entry ent; + char wiphy_name[32]; + u16 type; + u16 num; + char __data[0]; }; -struct acpi_fan_fst { - u64 revision; - u64 control; - u64 speed; +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 acpi_fan_fif { - u8 revision; - u8 fine_grain_ctrl; - u8 step_size; - u8 low_speed_notification; +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 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 trace_event_raw_cfg80211_return_bool { + struct trace_entry ent; + bool ret; + char __data[0]; }; -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 trace_event_raw_cfg80211_netdev_mac_evt { + struct trace_entry ent; + char name[16]; + int ifindex; + u8 macaddr[6]; + char __data[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; - bool irtcachedis_enabled; - 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; - atomic64_t cmd_sem_val; +struct trace_event_raw_netdev_evt_only { + struct trace_entry ent; + char name[16]; + int ifindex; + char __data[0]; }; -struct dev_table_entry; - -struct irq_remap_table; +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 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 trace_event_raw_netdev_frame_event { + struct trace_entry ent; + char name[16]; + int ifindex; + u32 __data_loc_frame; + char __data[0]; }; -struct dev_table_entry { - u64 data[4]; +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 irq_remap_table { - raw_spinlock_t lock; - unsigned int min_index; - u32 *table; +struct trace_event_raw_netdev_mac_evt { + struct trace_entry ent; + char name[16]; + int ifindex; + u8 mac[6]; + char __data[0]; }; -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 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 devid_map { - struct list_head list; - u8 id; - u32 devid; - bool cmd_line; +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 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 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]; }; -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, +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]; }; -enum { - IRQ_REMAP_XAPIC_MODE = 0, - IRQ_REMAP_X2APIC_MODE = 1, +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 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 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 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 trace_event_raw_cfg80211_rx_mgmt { + struct trace_entry ent; + u32 id; + int freq; + int sig_dbm; + char __data[0]; +}; -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; +struct trace_event_raw_cfg80211_mgmt_tx_status { + struct trace_entry ent; + u32 id; + u64 cookie; + bool ack; + char __data[0]; }; -struct unity_map_entry { - struct list_head list; - u16 devid_start; - u16 devid_end; - u64 address_start; - u64 address_end; - int prot; +struct trace_event_raw_cfg80211_control_port_tx_status { + struct trace_entry ent; + u32 id; + u64 cookie; + bool ack; + char __data[0]; }; -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 trace_event_raw_cfg80211_rx_control_port { + struct trace_entry ent; + char name[16]; + int ifindex; + int len; + u8 from[6]; + u16 proto; + bool unencrypted; + int link_id; + char __data[0]; }; -struct drm_property_enum { - uint64_t value; - struct list_head head; - char name[32]; +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 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 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 drm_mode_property_enum { - __u64 value; - char name[32]; +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 drm_mode_get_blob { - __u32 blob_id; - __u32 length; - __u64 data; +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 drm_mode_create_blob { - __u64 data; - __u32 length; - __u32 blob_id; +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 drm_mode_destroy_blob { - __u32 blob_id; +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]; }; -enum class_map_type { - DD_CLASS_TYPE_DISJOINT_BITS = 0, - DD_CLASS_TYPE_LEVEL_NUM = 1, - DD_CLASS_TYPE_DISJOINT_NAMES = 2, - DD_CLASS_TYPE_LEVEL_NAMES = 3, +struct trace_event_raw_cfg80211_cac_event { + struct trace_entry ent; + char name[16]; + int ifindex; + enum nl80211_radar_event evt; + char __data[0]; }; -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 trace_event_raw_cfg80211_rx_evt { + struct trace_entry ent; + char name[16]; + int ifindex; + u8 addr[6]; + char __data[0]; }; -struct dpcd_quirk { - u8 oui[3]; - u8 device_id[6]; - bool is_branch; - u32 quirks; +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 dp_aux_backlight { - struct backlight_device *base; - struct drm_dp_aux *aux; - struct drm_edp_backlight_info info; - bool enabled; +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]; }; -enum drm_i915_pmu_engine_sample { - I915_SAMPLE_BUSY = 0, - I915_SAMPLE_WAIT = 1, - I915_SAMPLE_SEMA = 2, +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]; }; -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, +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]; }; -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 trace_event_raw_cfg80211_report_obss_beacon { + struct trace_entry ent; + char wiphy_name[32]; + int freq; + int sig_dbm; + char __data[0]; }; -struct i915_str_attribute { - struct device_attribute attr; - const char *str; +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 i915_ext_attribute { - struct device_attribute attr; - unsigned long val; +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 drm_i915_gem_set_tiling { - __u32 handle; - __u32 tiling_mode; - __u32 stride; - __u32 swizzle_mode; +struct trace_event_raw_wiphy_id_evt { + struct trace_entry ent; + char wiphy_name[32]; + u64 id; + char __data[0]; }; -struct drm_i915_gem_get_tiling { - __u32 handle; - __u32 tiling_mode; - __u32 swizzle_mode; - __u32 phys_swizzle_mode; +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]; }; -enum intel_guc_rc_options { - INTEL_GUCRC_HOST_CONTROL = 0, - INTEL_GUCRC_FIRMWARE_CONTROL = 1, +struct trace_event_raw_cfg80211_inform_bss_frame { + struct trace_entry ent; + char wiphy_name[32]; + enum nl80211_band band; + u32 center_freq; + u16 freq_offset; + u32 __data_loc_mgmt; + s32 signal; + u64 ts_boottime; + u64 parent_tsf; + u8 parent_bssid[6]; + char __data[0]; }; -struct i915_dpt { - struct i915_address_space vm; - struct drm_i915_gem_object *obj; - struct i915_vma *vma; - void *iomem; +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]; }; -typedef bool (*drm_vblank_get_scanout_position_func)(struct drm_crtc *, bool, int *, int *, ktime_t *, ktime_t *, const struct drm_display_mode *); +struct trace_event_raw_cfg80211_return_uint { + struct trace_entry ent; + unsigned int ret; + char __data[0]; +}; -enum vga_switcheroo_handler_flags_t { - VGA_SWITCHEROO_CAN_SWITCH_DDC = 1, - VGA_SWITCHEROO_NEEDS_EDP_CONFIG = 2, +struct trace_event_raw_cfg80211_return_u32 { + struct trace_entry ent; + u32 ret; + char __data[0]; }; -struct intel_lvds_pps { - int t1_t2; - int t3; - int t4; - int t5; - int tx; - int divider; - int port; - bool powerdown_on_reset; +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 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 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 platform_object { - struct platform_device pdev; - char name[0]; +struct trace_event_raw_cfg80211_stop_iface { + struct trace_entry ent; + char wiphy_name[32]; + u32 id; + char __data[0]; }; -struct irq_affinity_devres { - unsigned int count; - unsigned int irq[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]; }; -enum scsi_ml_status { - SCSIML_STAT_OK = 0, - SCSIML_STAT_RESV_CONFLICT = 1, - SCSIML_STAT_NOSPC = 2, - SCSIML_STAT_MED_ERROR = 3, - SCSIML_STAT_TGT_FAILURE = 4, - SCSIML_STAT_DL_TIMEOUT = 5, +struct trace_event_raw_cfg80211_pmsr_complete { + struct trace_entry ent; + char wiphy_name[32]; + u32 id; + u64 cookie; + char __data[0]; }; -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, +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]; }; -typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); - -struct trace_event_raw_mdio_access { +struct trace_event_raw_cfg80211_bss_color_notify { struct trace_entry ent; - char busid[61]; - char read; - u8 addr; - u16 val; - unsigned int regnum; + char name[16]; + int ifindex; + u32 cmd; + u8 count; + u64 color_bitmap; char __data[0]; }; -struct mdio_board_info { - const char *bus_id; - char modalias[32]; - int mdio_addr; - const void *platform_data; +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_data_offsets_mdio_access {}; - -struct mdio_bus_stat_attr { - int addr; - unsigned int field_offset; +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]; }; -enum hub_led_mode { - INDICATOR_AUTO = 0, - INDICATOR_CYCLE = 1, - INDICATOR_GREEN_BLINK = 2, - INDICATOR_GREEN_BLINK_OFF = 3, - INDICATOR_AMBER_BLINK = 4, - INDICATOR_AMBER_BLINK_OFF = 5, - INDICATOR_ALT_BLINK = 6, - INDICATOR_ALT_BLINK_OFF = 7, -} __attribute__((mode(byte))); - -enum hub_quiescing_type { - HUB_DISCONNECT = 0, - HUB_PRE_RESET = 1, - HUB_SUSPEND = 2, +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]; }; -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 trace_event_raw_rdev_set_hw_timestamp { + struct trace_entry ent; + char wiphy_name[32]; + char name[16]; + int ifindex; + u8 macaddr[6]; + bool enable; + char __data[0]; }; -struct usb_tt_clear { - struct list_head clear_list; - unsigned int tt; - u16 devinfo; - struct usb_hcd *hcd; - struct usb_host_endpoint *ep; +struct trace_event_raw_cfg80211_links_removed { + struct trace_entry ent; + char name[16]; + int ifindex; + u16 link_mask; + char __data[0]; }; -struct usb_qualifier_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __le16 bcdUSB; - __u8 bDeviceClass; - __u8 bDeviceSubClass; - __u8 bDeviceProtocol; - __u8 bMaxPacketSize0; - __u8 bNumConfigurations; - __u8 bRESERVED; +struct trace_event_data_offsets_rdev_add_virtual_intf { + u32 vir_intf_name; }; -struct usbdevfs_hub_portinfo { - char nports; - char port[127]; +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 usb_set_sel_req { - __u8 u1_sel; - __u8 u1_pel; - __le16 u2_sel; - __le16 u2_pel; +struct trace_event_data_offsets_station_add_change { + u32 supported_rates; + u32 ext_capab; + u32 supported_channels; + u32 supported_oper_classes; }; -struct ehci_dev { - u32 bus; - u32 slot; - u32 func; +struct trace_event_data_offsets_rdev_assoc { + u32 elements; + u32 fils_kek; + u32 fils_nonces; }; -typedef void (*set_debug_port_t)(int); - -struct usb_debug_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDebugInEndpoint; - __u8 bDebugOutEndpoint; +struct trace_event_data_offsets_rdev_tdls_mgmt { + u32 buf; }; -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 trace_event_data_offsets_rdev_update_ft_ies { + u32 ie; }; -struct cpufreq_policy_data { - struct cpufreq_cpuinfo cpuinfo; - struct cpufreq_frequency_table *freq_table; - unsigned int cpu; - unsigned int min; - unsigned int max; +struct trace_event_data_offsets_rdev_channel_switch { + u32 bcn_ofs; + u32 pres_ofs; }; -struct freq_attr { - struct attribute attr; - ssize_t (*show)(struct cpufreq_policy *, char *); - ssize_t (*store)(struct cpufreq_policy *, const char *, size_t); +struct trace_event_data_offsets_rdev_set_pmk { + u32 pmk; + u32 pmk_r0_name; }; -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 *); +struct trace_event_data_offsets_rdev_update_owe_info { + u32 ie; }; -struct plff_device { - struct hid_report *report; - s32 maxval; - s32 *strong; - s32 *weak; +struct trace_event_data_offsets_netdev_frame_event { + u32 frame; }; -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 trace_event_data_offsets_cfg80211_tx_mlme_mgmt { + u32 frame; }; -struct snd_seq_driver { - struct device_driver driver; - char *id; - int argsize; +struct trace_event_data_offsets_cfg80211_scan_done { + u32 ie; }; -struct psample_group { - struct list_head list; - struct net *net; - u32 group_num; - u32 refcount; - u32 seq; - struct callback_head rcu; +struct trace_event_data_offsets_cfg80211_get_bss { + u32 ssid; }; -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; +struct trace_event_data_offsets_cfg80211_inform_bss_frame { + u32 mgmt; }; -enum net_xmit_qdisc_t { - __NET_XMIT_STOLEN = 65536, - __NET_XMIT_BYPASS = 131072, +struct trace_event_data_offsets_cfg80211_report_wowlan_wakeup { + u32 packet; }; -enum qdisc_class_ops_flags { - QDISC_CLASS_OPS_DOIT_UNLOCKED = 1, +struct trace_event_data_offsets_cfg80211_ft_event { + u32 ies; + u32 ric_ies; }; -enum tcf_proto_ops_flags { - TCF_PROTO_OPS_DOIT_UNLOCKED = 1, +struct trace_event_data_offsets_cfg80211_update_owe_info_event { + u32 ie; }; -struct tcf_block_owner_item { - struct list_head list; - struct Qdisc *q; - enum flow_block_binder_type binder_type; +struct trace_event_data_offsets_link_station_add_mod { + u32 supported_rates; + u32 he_capa; + u32 eht_capa; }; -typedef void tcf_chain_head_change_t(struct tcf_proto *, void *); +struct trace_event_data_offsets_rdev_suspend {}; -struct tcf_filter_chain_list_item { - struct list_head list; - tcf_chain_head_change_t *chain_head_change; - void *chain_head_change_priv; -}; +struct trace_event_data_offsets_rdev_return_int {}; -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 trace_event_data_offsets_rdev_scan {}; -struct tcf_net { - spinlock_t idr_lock; - struct idr idr; -}; +struct trace_event_data_offsets_wiphy_only_evt {}; -struct action_gate_entry { - u8 gate_state; - u32 interval; - s32 ipv; - s32 maxoctets; -}; +struct trace_event_data_offsets_wiphy_enabled_evt {}; -struct tcf_chain_info { - struct tcf_proto __attribute__((btf_type_tag("rcu"))) **pprev; - struct tcf_proto __attribute__((btf_type_tag("rcu"))) *next; -}; +struct trace_event_data_offsets_wiphy_wdev_evt {}; -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 trace_event_data_offsets_wiphy_wdev_cookie_evt {}; -struct tcf_qevent { - struct tcf_block *block; - struct tcf_block_ext_info info; - struct tcf_proto __attribute__((btf_type_tag("rcu"))) *filter_chain; -}; +struct trace_event_data_offsets_rdev_change_virtual_intf {}; -enum ip_conntrack_expect_events { - IPEXP_NEW = 0, - IPEXP_DESTROY = 1, -}; +struct trace_event_data_offsets_key_handle {}; -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 trace_event_data_offsets_rdev_add_key {}; -struct ipq { - struct inet_frag_queue q; - u8 ecn; - u16 max_df_size; - int iif; - unsigned int rid; - struct inet_peer *peer; -}; +struct trace_event_data_offsets_rdev_set_default_key {}; -struct fib_prop { - int error; - u8 scope; -}; +struct trace_event_data_offsets_rdev_set_default_mgmt_key {}; -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 trace_event_data_offsets_rdev_set_default_beacon_key {}; -struct fib_nh_notifier_info { - struct fib_notifier_info info; - struct fib_nh *fib_nh; -}; +struct trace_event_data_offsets_rdev_start_ap {}; -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 trace_event_data_offsets_rdev_stop_ap {}; -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, -}; +struct trace_event_data_offsets_wiphy_netdev_evt {}; -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 trace_event_data_offsets_wiphy_netdev_mac_evt {}; -struct sr6_tlv { - __u8 type; - __u8 len; - __u8 data[0]; -}; +struct trace_event_data_offsets_station_del {}; -struct frag_queue { - struct inet_frag_queue q; - int iif; - __u16 nhoffset; - u8 ecn; -}; +struct trace_event_data_offsets_rdev_dump_station {}; -struct nft_ct_frag6_pernet { - struct ctl_table_header *nf_frag_frags_hdr; - struct fqdir *fqdir; -}; +struct trace_event_data_offsets_rdev_return_int_station_info {}; -struct xprt_addr { - const char *addr; - struct callback_head rcu; -}; +struct trace_event_data_offsets_mpath_evt {}; -enum mac80211_tx_status_flags { - IEEE80211_TX_STATUS_ACK_SIGNAL_VALID = 1, -}; +struct trace_event_data_offsets_rdev_dump_mpath {}; -enum ocb_deferred_task_flags { - OCB_WORK_HOUSEKEEPING = 0, -}; +struct trace_event_data_offsets_rdev_get_mpp {}; -struct pcibios_fwaddrmap { - struct list_head list; - struct pci_dev *dev; - resource_size_t fw_addr[11]; -}; +struct trace_event_data_offsets_rdev_dump_mpp {}; -struct pci_check_idx_range { - int start; - int end; -}; +struct trace_event_data_offsets_rdev_return_int_mpath_info {}; -typedef struct { - unsigned long key[2]; -} hsiphash_key_t; +struct trace_event_data_offsets_rdev_return_int_mesh_config {}; -typedef void (*btf_trace_emulate_vsyscall)(void *, int); +struct trace_event_data_offsets_rdev_update_mesh_config {}; -enum { - EMULATE = 0, - XONLY = 1, - NONE = 2, -}; +struct trace_event_data_offsets_rdev_join_mesh {}; -struct trace_event_raw_emulate_vsyscall { - struct trace_entry ent; - int nr; - char __data[0]; -}; +struct trace_event_data_offsets_rdev_change_bss {}; -struct trace_event_data_offsets_emulate_vsyscall {}; +struct trace_event_data_offsets_rdev_inform_bss {}; -typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *); +struct trace_event_data_offsets_rdev_set_txq_params {}; -typedef void (*btf_trace_irq_handler_exit)(void *, int, struct irqaction *, int); +struct trace_event_data_offsets_rdev_libertas_set_mesh_channel {}; -typedef void (*btf_trace_softirq_entry)(void *, unsigned int); +struct trace_event_data_offsets_rdev_set_monitor_channel {}; -typedef void (*btf_trace_softirq_exit)(void *, unsigned int); +struct trace_event_data_offsets_rdev_auth {}; -typedef void (*btf_trace_softirq_raise)(void *, unsigned int); +struct trace_event_data_offsets_rdev_deauth {}; -typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *); +struct trace_event_data_offsets_rdev_disassoc {}; -typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); +struct trace_event_data_offsets_rdev_mgmt_tx_cancel_wait {}; -struct tasklet_head { - struct tasklet_struct *head; - struct tasklet_struct **tail; -}; +struct trace_event_data_offsets_rdev_set_power_mgmt {}; -struct trace_event_raw_irq_handler_entry { - struct trace_entry ent; - int irq; - u32 __data_loc_name; - char __data[0]; -}; +struct trace_event_data_offsets_rdev_connect {}; -struct trace_event_raw_irq_handler_exit { - struct trace_entry ent; - int irq; - int ret; - char __data[0]; -}; +struct trace_event_data_offsets_rdev_update_connect_params {}; -struct trace_event_raw_softirq { - struct trace_entry ent; - unsigned int vec; - char __data[0]; -}; +struct trace_event_data_offsets_rdev_set_cqm_rssi_config {}; -struct trace_event_raw_tasklet { - struct trace_entry ent; - void *tasklet; - void *func; - char __data[0]; -}; +struct trace_event_data_offsets_rdev_set_cqm_rssi_range_config {}; -struct trace_event_data_offsets_irq_handler_entry { - u32 name; -}; +struct trace_event_data_offsets_rdev_set_cqm_txe_config {}; -struct trace_event_data_offsets_irq_handler_exit {}; +struct trace_event_data_offsets_rdev_disconnect {}; -struct trace_event_data_offsets_softirq {}; +struct trace_event_data_offsets_rdev_join_ibss {}; -struct trace_event_data_offsets_tasklet {}; +struct trace_event_data_offsets_rdev_join_ocb {}; -struct platform_hibernation_ops { - int (*begin)(pm_message_t); - void (*end)(); - int (*pre_snapshot)(); - void (*finish)(); - int (*prepare)(); - int (*enter)(); - void (*leave)(); - int (*pre_restore)(); - void (*restore_cleanup)(); - void (*recover)(); -}; +struct trace_event_data_offsets_rdev_set_wiphy_params {}; -enum { - HIBERNATION_INVALID = 0, - HIBERNATION_PLATFORM = 1, - HIBERNATION_SHUTDOWN = 2, - HIBERNATION_REBOOT = 3, - HIBERNATION_SUSPEND = 4, - HIBERNATION_TEST_RESUME = 5, - __HIBERNATION_AFTER_LAST = 6, -}; +struct trace_event_data_offsets_rdev_set_tx_power {}; -enum { - TEST_NONE = 0, - TEST_CORE = 1, - TEST_CPUS = 2, - TEST_PLATFORM = 3, - TEST_DEVICES = 4, - TEST_FREEZER = 5, - __TEST_AFTER_LAST = 6, -}; +struct trace_event_data_offsets_rdev_return_int_int {}; -struct __kernel_old_itimerval { - struct __kernel_old_timeval it_interval; - struct __kernel_old_timeval it_value; -}; +struct trace_event_data_offsets_rdev_set_bitrate_mask {}; -struct old_itimerval32 { - struct old_timeval32 it_interval; - struct old_timeval32 it_value; -}; +struct trace_event_data_offsets_rdev_update_mgmt_frame_registrations {}; -struct audit_fsnotify_mark { - dev_t dev; - unsigned long ino; - char *path; - struct fsnotify_mark mark; - struct audit_krule *rule; -}; +struct trace_event_data_offsets_rdev_return_int_tx_rx {}; -struct user_event_group { - char *system_name; - struct hlist_node node; - struct mutex reg_mutex; - struct hlist_head register_table[256]; -}; +struct trace_event_data_offsets_rdev_return_void_tx_rx {}; -enum user_reg_flag { - USER_EVENT_REG_PERSIST = 1, - USER_EVENT_REG_MAX = 2, -}; +struct trace_event_data_offsets_tx_rx_evt {}; -struct user_event; +struct trace_event_data_offsets_wiphy_netdev_id_evt {}; -struct user_event_enabler { - struct list_head mm_enablers_link; - struct user_event *event; - unsigned long addr; - unsigned long values; -}; +struct trace_event_data_offsets_rdev_dump_survey {}; -struct user_event { - struct user_event_group *group; - struct tracepoint tracepoint; - struct trace_event_call call; - struct trace_event_class class; - struct dyn_event devent; - struct hlist_node node; - struct list_head fields; - struct list_head validators; - struct work_struct put_work; - refcount_t refcnt; - int min_size; - int reg_flags; - char status; -}; +struct trace_event_data_offsets_rdev_return_int_survey_info {}; -struct user_event_validator { - struct list_head user_event_link; - int offset; - int flags; -}; +struct trace_event_data_offsets_rdev_tdls_oper {}; -struct user_event_refs { - struct callback_head rcu; - int count; - struct user_event *events[0]; -}; +struct trace_event_data_offsets_rdev_pmksa {}; -struct user_reg { - __u32 size; - __u8 enable_bit; - __u8 enable_size; - __u16 flags; - __u64 enable_addr; - __u64 name_args; - __u32 write_index; -} __attribute__((packed)); +struct trace_event_data_offsets_rdev_probe_client {}; -struct user_event_enabler_fault { - struct work_struct work; - struct user_event_mm *mm; - struct user_event_enabler *enabler; - int attempt; -}; +struct trace_event_data_offsets_rdev_remain_on_channel {}; -struct user_unreg { - __u32 size; - __u8 disable_bit; - __u8 __reserved; - __u16 __reserved2; - __u64 disable_addr; -}; +struct trace_event_data_offsets_rdev_return_int_cookie {}; -struct user_event_file_info { - struct user_event_group *group; - struct user_event_refs *refs; -}; +struct trace_event_data_offsets_rdev_cancel_remain_on_channel {}; -typedef void (*user_event_func_t)(struct user_event *, struct iov_iter *, void *, bool *); +struct trace_event_data_offsets_rdev_mgmt_tx {}; -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, -}; +struct trace_event_data_offsets_rdev_tx_control_port {}; -enum bpf_stack_build_id_status { - BPF_STACK_BUILD_ID_EMPTY = 0, - BPF_STACK_BUILD_ID_VALID = 1, - BPF_STACK_BUILD_ID_IP = 2, -}; +struct trace_event_data_offsets_rdev_set_noack_map {}; -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 trace_event_data_offsets_wiphy_wdev_link_evt {}; -typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64); +struct trace_event_data_offsets_rdev_return_chandef {}; -typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); +struct trace_event_data_offsets_rdev_start_nan {}; -typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64); +struct trace_event_data_offsets_rdev_nan_change_conf {}; -typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64); +struct trace_event_data_offsets_rdev_add_nan_func {}; -typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64); +struct trace_event_data_offsets_rdev_del_nan_func {}; -struct stack_map_bucket; +struct trace_event_data_offsets_rdev_set_mac_acl {}; -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 trace_event_data_offsets_rdev_crit_proto_start {}; -struct stack_map_bucket { - struct pcpu_freelist_node fnode; - u32 hash; - u32 nr; - u64 data[0]; -}; +struct trace_event_data_offsets_rdev_crit_proto_stop {}; -struct bpf_stack_build_id { - __s32 status; - unsigned char build_id[20]; - union { - __u64 offset; - __u64 ip; - }; -}; +struct trace_event_data_offsets_rdev_set_qos_map {}; -struct mmap_unlock_irq_work { - struct irq_work irq_work; - struct mm_struct *mm; -}; +struct trace_event_data_offsets_rdev_set_ap_chanwidth {}; -struct swap_extent { - struct rb_node rb_node; - unsigned long start_page; - unsigned long nr_pages; - sector_t start_block; -}; +struct trace_event_data_offsets_rdev_add_tx_ts {}; -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 trace_event_data_offsets_rdev_del_tx_ts {}; -struct inotify_inode_mark { - struct fsnotify_mark fsn_mark; - int wd; -}; +struct trace_event_data_offsets_rdev_tdls_channel_switch {}; -struct inotify_event_info { - struct fsnotify_event fse; - u32 mask; - int wd; - u32 sync_cookie; - int name_len; - char name[0]; -}; +struct trace_event_data_offsets_rdev_tdls_cancel_channel_switch {}; -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 trace_event_data_offsets_rdev_del_pmk {}; -struct fat_floppy_defaults { - unsigned int nr_sectors; - unsigned int sec_per_clus; - unsigned int dir_entries; - unsigned int media; - unsigned int fat_length; -}; +struct trace_event_data_offsets_rdev_external_auth {}; -enum { - DIO_LOCKING = 1, - DIO_SKIP_HOLES = 2, -}; +struct trace_event_data_offsets_rdev_start_radar_detection {}; -enum { - Opt_check_n = 0, - Opt_check_r___2 = 1, - Opt_check_s___2 = 2, - Opt_uid___4 = 3, - Opt_gid___4 = 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___3 = 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___2 = 36, - Opt_nfs = 37, - Opt_time_offset = 38, - Opt_nfs_stale_rw = 39, - Opt_nfs_nostale_ro = 40, - Opt_err___7 = 41, - Opt_dos1xfloppy = 42, -}; +struct trace_event_data_offsets_rdev_set_mcast_rate {}; -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; -}; +struct trace_event_data_offsets_rdev_set_coalesce {}; -typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); +struct trace_event_data_offsets_rdev_set_multicast_to_unicast {}; -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, -}; +struct trace_event_data_offsets_rdev_get_ftm_responder_stats {}; -enum createmode4 { - NFS4_CREATE_UNCHECKED = 0, - NFS4_CREATE_GUARDED = 1, - NFS4_CREATE_EXCLUSIVE = 2, - NFS4_CREATE_EXCLUSIVE4_1 = 3, -}; +struct trace_event_data_offsets_rdev_set_fils_aad {}; -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, -}; +struct trace_event_data_offsets_rdev_probe_mesh_link {}; -enum nfs4_acl_type { - NFS4ACL_NONE = 0, - NFS4ACL_ACL = 1, - NFS4ACL_DACL = 2, - NFS4ACL_SACL = 3, -}; +struct trace_event_data_offsets_rdev_set_tid_config {}; -enum nfs_ftype4 { - NF4BAD = 0, - NF4REG = 1, - NF4DIR = 2, - NF4BLK = 3, - NF4CHR = 4, - NF4LNK = 5, - NF4SOCK = 6, - NF4FIFO = 7, - NF4ATTRDIR = 8, - NF4NAMEDATTR = 9, -}; +struct trace_event_data_offsets_rdev_reset_tid_config {}; -struct nfs4_cached_acl { - enum nfs4_acl_type type; - int cached; - size_t len; - char data[0]; -}; +struct trace_event_data_offsets_rdev_set_sar_specs {}; -struct stateowner_id { - __u64 create_time; - __u32 uniquifier; -}; +struct trace_event_data_offsets_rdev_color_change {}; -struct nfs4_layoutget_args; +struct trace_event_data_offsets_rdev_set_radar_background {}; -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 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 nfs4_layoutget_res; +struct trace_event_data_offsets_cfg80211_mgmt_tx_status {}; -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 trace_event_data_offsets_cfg80211_control_port_tx_status {}; -struct nfs_open_confirmargs { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - nfs4_stateid *stateid; - struct nfs_seqid *seqid; -}; +struct trace_event_data_offsets_cfg80211_rx_control_port {}; -struct nfs_open_confirmres { - struct nfs4_sequence_res seq_res; - nfs4_stateid stateid; - struct nfs_seqid *seqid; -}; +struct trace_event_data_offsets_cfg80211_cqm_rssi_notify {}; -struct nfs4_layoutget; +struct trace_event_data_offsets_cfg80211_reg_can_beacon {}; -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 trace_event_data_offsets_cfg80211_chandef_dfs_required {}; -struct nfs4_layoutdriver_data { - struct page **pages; - __u32 pglen; - __u32 len; -}; +struct trace_event_data_offsets_cfg80211_ch_switch_notify {}; -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 trace_event_data_offsets_cfg80211_ch_switch_started_notify {}; -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 trace_event_data_offsets_cfg80211_radar_event {}; -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 trace_event_data_offsets_cfg80211_cac_event {}; -struct nfs4_get_lease_time_args; +struct trace_event_data_offsets_cfg80211_rx_evt {}; -struct nfs4_get_lease_time_res; +struct trace_event_data_offsets_cfg80211_ibss_joined {}; -struct nfs4_get_lease_time_data { - struct nfs4_get_lease_time_args *args; - struct nfs4_get_lease_time_res *res; - struct nfs_client *clp; -}; +struct trace_event_data_offsets_cfg80211_probe_status {}; -struct nfs4_get_lease_time_args { - struct nfs4_sequence_args la_seq_args; -}; +struct trace_event_data_offsets_cfg80211_cqm_pktloss_notify {}; -struct nfs4_get_lease_time_res { - struct nfs4_sequence_res lr_seq_res; - struct nfs_fsinfo *lr_fsinfo; -}; +struct trace_event_data_offsets_cfg80211_pmksa_candidate_notify {}; -struct nfs4_call_sync_data { - const struct nfs_server *seq_server; - struct nfs4_sequence_args *seq_args; - struct nfs4_sequence_res *seq_res; -}; +struct trace_event_data_offsets_cfg80211_report_obss_beacon {}; -struct nfs4_server_caps_arg { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fhandle; - const u32 *bitmask; -}; +struct trace_event_data_offsets_cfg80211_tdls_oper_request {}; -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 trace_event_data_offsets_wiphy_id_evt {}; -struct nfs4_lookup_root_arg { - struct nfs4_sequence_args seq_args; - const u32 *bitmask; -}; +struct trace_event_data_offsets_cfg80211_bss_evt {}; -struct nfs4_lookup_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; - struct nfs_fh *fh; -}; +struct trace_event_data_offsets_cfg80211_return_uint {}; -struct nfs4_fsinfo_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; -}; +struct trace_event_data_offsets_cfg80211_return_u32 {}; -struct nfs4_fsinfo_res { - struct nfs4_sequence_res seq_res; - struct nfs_fsinfo *fsinfo; +struct trace_event_data_offsets_cfg80211_stop_iface {}; + +struct trace_event_data_offsets_cfg80211_pmsr_report {}; + +struct trace_event_data_offsets_cfg80211_pmsr_complete {}; + +struct trace_event_data_offsets_cfg80211_bss_color_notify {}; + +struct trace_event_data_offsets_cfg80211_assoc_comeback {}; + +struct trace_event_data_offsets_rdev_del_link_station {}; + +struct trace_event_data_offsets_rdev_set_hw_timestamp {}; + +struct trace_event_data_offsets_cfg80211_links_removed {}; + +struct pci_mmcfg_hostbridge_probe { + u32 bus; + u32 devfn; + u32 vendor; + u32 device; + const char * (*probe)(); }; -struct nfs4_getattr_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +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]; }; -struct nfs4_getattr_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; +struct acpi_table_mcfg { + struct acpi_table_header header; + u8 reserved[8]; }; -struct nfs4_lookup_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *dir_fh; - const struct qstr *name; - const u32 *bitmask; +struct acpi_mcfg_allocation { + u64 address; + u16 pci_segment; + u8 start_bus_number; + u8 end_bus_number; + u32 reserved; }; -struct nfs4_xdr_opaque_data; +typedef bool (*check_reserved_t)(u64, u64, enum e820_type); -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 pci_root_res { + struct list_head list; + struct resource res; }; -struct nfs4_layoutreturn_res { - struct nfs4_sequence_res seq_res; - u32 lrs_present; - nfs4_stateid stateid; +struct pci_root_info___2 { + struct list_head list; + char name[12]; + struct list_head resources; + struct resource busn; + int node; + int link; }; -struct nfs4_xdr_opaque_ops; +struct saved_msr; -struct nfs4_xdr_opaque_data { - const struct nfs4_xdr_opaque_ops *ops; - void *data; +struct saved_msrs { + unsigned int num; + struct saved_msr *array; }; -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 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 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 saved_msr { + bool valid; + struct msr_info info; }; -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; -}; +typedef int (*pm_cpu_match_t)(const struct x86_cpu_id *); -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 msr_enumeration { + u32 msr_no; + u32 feature; }; -struct nfs_lowner { - __u64 clientid; - __u64 id; - dev_t s_dev; +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, }; -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; +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, }; -struct nfs_lock_res { - struct nfs4_sequence_res seq_res; - nfs4_stateid stateid; - struct nfs_seqid *lock_seqid; - struct nfs_seqid *open_seqid; +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, }; -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; +enum l1d_flush_mitigations { + L1D_FLUSH_OFF = 0, + L1D_FLUSH_ON = 1, }; -typedef u64 clientid4; - -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; +enum gds_mitigations { + GDS_MITIGATION_OFF = 0, + GDS_MITIGATION_UCODE_NEEDED = 1, + GDS_MITIGATION_FORCE = 2, + GDS_MITIGATION_FULL = 3, + GDS_MITIGATION_FULL_LOCKED = 4, + GDS_MITIGATION_HYPERVISOR = 5, }; -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; +enum spectre_v1_mitigation { + SPECTRE_V1_MITIGATION_NONE = 0, + SPECTRE_V1_MITIGATION_AUTO = 1, }; -struct nfs4_secinfo4 { - u32 flavor; - struct rpcsec_gss_info flavor_info; +enum retbleed_mitigation_cmd { + RETBLEED_CMD_OFF = 0, + RETBLEED_CMD_AUTO = 1, + RETBLEED_CMD_UNRET = 2, + RETBLEED_CMD_IBPB = 3, + RETBLEED_CMD_STUFF = 4, }; -struct nfs4_secinfo_flavors { - unsigned int num_flavors; - struct nfs4_secinfo4 flavors[0]; +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, }; -struct nfs4_secinfo_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *dir_fh; - const struct qstr *name; +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, }; -struct nfs4_secinfo_res { - struct nfs4_sequence_res seq_res; - struct nfs4_secinfo_flavors *flavors; +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, }; -struct nfs4_lookupp_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +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, }; -struct nfs4_lookupp_res { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; - struct nfs_fh *fh; +enum mds_mitigations { + MDS_MITIGATION_OFF = 0, + MDS_MITIGATION_FULL = 1, + MDS_MITIGATION_VMWERV = 2, }; -struct nfs4_accessargs { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; - u32 access; +enum taa_mitigations { + TAA_MITIGATION_OFF = 0, + TAA_MITIGATION_UCODE_NEEDED = 1, + TAA_MITIGATION_VERW = 2, + TAA_MITIGATION_TSX_DISABLED = 3, }; -struct nfs4_accessres { - struct nfs4_sequence_res seq_res; - const struct nfs_server *server; - struct nfs_fattr *fattr; - u32 supported; - u32 access; +enum mmio_mitigations { + MMIO_MITIGATION_OFF = 0, + MMIO_MITIGATION_UCODE_NEEDED = 1, + MMIO_MITIGATION_VERW = 2, }; -struct nfs4_readlink { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - unsigned int pgbase; - unsigned int pglen; - struct page **pages; +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, }; -struct nfs4_readlink_res { - struct nfs4_sequence_res seq_res; +enum ssb_mitigation { + SPEC_STORE_BYPASS_NONE = 0, + SPEC_STORE_BYPASS_DISABLE = 1, + SPEC_STORE_BYPASS_PRCTL = 2, + SPEC_STORE_BYPASS_SECCOMP = 3, }; -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; +enum srso_mitigation_cmd { + SRSO_CMD_OFF = 0, + SRSO_CMD_MICROCODE = 1, + SRSO_CMD_SAFE_RET = 2, + SRSO_CMD_IBPB = 3, + SRSO_CMD_IBPB_ON_VMEXIT = 4, }; -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; +enum srso_mitigation { + SRSO_MITIGATION_NONE = 0, + SRSO_MITIGATION_UCODE_NEEDED = 1, + SRSO_MITIGATION_SAFE_RET_UCODE_NEEDED = 2, + SRSO_MITIGATION_MICROCODE = 3, + SRSO_MITIGATION_SAFE_RET = 4, + SRSO_MITIGATION_IBPB = 5, + SRSO_MITIGATION_IBPB_ON_VMEXIT = 6, }; -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 tlb_state_shared { + bool is_lazy; }; -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; +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, }; -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; +enum rtmutex_chainwalk { + RT_MUTEX_MIN_CHAINWALK = 0, + RT_MUTEX_FULL_CHAINWALK = 1, }; -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 irq_devres { + unsigned int irq; + void *dev_id; }; -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 irq_desc_devres { + unsigned int from; + unsigned int cnt; }; -struct nfs4_readdir_res { - struct nfs4_sequence_res seq_res; - nfs4_verifier verifier; - unsigned int pgbase; +struct klp_ops { + struct list_head node; + struct list_head func_stack; + struct ftrace_ops fops; }; -struct nfs4_statfs_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +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 nfs4_statfs_res { - struct nfs4_sequence_res seq_res; - struct nfs_fsstat *fsstat; +enum audit_nfcfgop { + AUDIT_XT_OP_REGISTER = 0, + AUDIT_XT_OP_REPLACE = 1, + AUDIT_XT_OP_UNREGISTER = 2, + AUDIT_NFT_OP_TABLE_REGISTER = 3, + AUDIT_NFT_OP_TABLE_UNREGISTER = 4, + AUDIT_NFT_OP_CHAIN_REGISTER = 5, + AUDIT_NFT_OP_CHAIN_UNREGISTER = 6, + AUDIT_NFT_OP_RULE_REGISTER = 7, + AUDIT_NFT_OP_RULE_UNREGISTER = 8, + AUDIT_NFT_OP_SET_REGISTER = 9, + AUDIT_NFT_OP_SET_UNREGISTER = 10, + AUDIT_NFT_OP_SETELEM_REGISTER = 11, + AUDIT_NFT_OP_SETELEM_UNREGISTER = 12, + AUDIT_NFT_OP_GEN_REGISTER = 13, + AUDIT_NFT_OP_OBJ_REGISTER = 14, + AUDIT_NFT_OP_OBJ_UNREGISTER = 15, + AUDIT_NFT_OP_OBJ_RESET = 16, + AUDIT_NFT_OP_FLOWTABLE_REGISTER = 17, + AUDIT_NFT_OP_FLOWTABLE_UNREGISTER = 18, + AUDIT_NFT_OP_SETELEM_RESET = 19, + AUDIT_NFT_OP_RULE_RESET = 20, + AUDIT_NFT_OP_INVALID = 21, }; -struct nfs4_pathconf_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - const u32 *bitmask; +struct audit_nfcfgop_tab { + enum audit_nfcfgop op; + const char *s; }; -struct nfs4_pathconf_res { - struct nfs4_sequence_res seq_res; - struct nfs_pathconf *pathconf; +struct audit_aux_data { + struct audit_aux_data *next; + int type; }; -struct nfs_lockt_args { - struct nfs4_sequence_args seq_args; - struct nfs_fh *fh; - struct file_lock *fl; - struct nfs_lowner lock_owner; +struct audit_chunk; + +struct audit_tree_refs { + struct audit_tree_refs *next; + struct audit_chunk *c[31]; }; -struct nfs_lockt_res { - struct nfs4_sequence_res seq_res; - struct file_lock *denied; +struct cpu_vfs_cap_data { + __u32 magic_etc; + kuid_t rootid; + kernel_cap_t permitted; + kernel_cap_t inheritable; }; -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 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 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 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 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 fanotify_response_info_header { + __u8 type; + __u8 pad; + __u16 len; }; -struct nfs_locku_res { - struct nfs4_sequence_res seq_res; - nfs4_stateid stateid; - struct nfs_seqid *seqid; +struct fanotify_response_info_audit_rule { + struct fanotify_response_info_header hdr; + __u32 rule_number; + __u32 subj_trust; + __u32 obj_trust; }; -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; +typedef unsigned long perf_trace_t[1024]; + +struct fprobe_rethook_node { + struct rethook_node node; + unsigned long entry_ip; + unsigned long entry_parent_ip; + char data[0]; }; -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 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 nfs_setattrres { - struct nfs4_sequence_res seq_res; - struct nfs_fattr *fattr; - const struct nfs_server *server; +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 nfs4_open_createattrs { - struct nfs4_label *label; - struct iattr *sattr; - const __u32 verf[2]; +struct uprobe_xol_ops; + +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; + }; }; -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 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; }; -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 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 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; +enum rp_check { + RP_CHECK_CALL = 0, + RP_CHECK_CHAIN_CALL = 1, + RP_CHECK_RET = 2, }; -struct nfs_setaclres { - struct nfs4_sequence_res seq_res; +typedef u8 uprobe_opcode_t; + +struct delayed_uprobe { + struct list_head list; + struct uprobe *uprobe; + struct mm_struct *mm; }; -struct nfs4_closedata { +struct __uprobe_key { 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; + loff_t offset; }; -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 map_info___2 { + struct map_info___2 *next; + struct mm_struct *mm; + unsigned long vaddr; }; -struct nfs_release_lockowner_args { - struct nfs4_sequence_args seq_args; - struct nfs_lowner lock_owner; +struct __old_kernel_stat { + unsigned short st_dev; + unsigned short st_ino; + unsigned short st_mode; + unsigned short st_nlink; + unsigned short st_uid; + unsigned short st_gid; + unsigned short st_rdev; + unsigned int st_size; + unsigned int st_atime; + unsigned int st_mtime; + unsigned int st_ctime; }; -struct nfs_release_lockowner_res { - struct nfs4_sequence_res seq_res; +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 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 statx_timestamp { + __s64 tv_sec; + __u32 tv_nsec; + __s32 __reserved; }; -struct nfs4_renewdata { - struct nfs_client *client; - unsigned long timestamp; +struct statx { + __u32 stx_mask; + __u32 stx_blksize; + __u64 stx_attributes; + __u32 stx_nlink; + __u32 stx_uid; + __u32 stx_gid; + __u16 stx_mode; + __u16 __spare0[1]; + __u64 stx_ino; + __u64 stx_size; + __u64 stx_blocks; + __u64 stx_attributes_mask; + struct statx_timestamp stx_atime; + struct statx_timestamp stx_btime; + struct statx_timestamp stx_ctime; + struct statx_timestamp stx_mtime; + __u32 stx_rdev_major; + __u32 stx_rdev_minor; + __u32 stx_dev_major; + __u32 stx_dev_minor; + __u64 stx_mnt_id; + __u32 stx_dio_mem_align; + __u32 stx_dio_offset_align; + __u64 __spare3[12]; }; -struct nfs4_fsid_present_arg { - struct nfs4_sequence_args seq_args; - const struct nfs_fh *fh; - clientid4 clientid; - unsigned char renew: 1; -}; +typedef u16 compat_nlink_t; -struct nfs4_fsid_present_res { - struct nfs4_sequence_res seq_res; - struct nfs_fh *fh; - unsigned char renew: 1; +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; }; -struct selinux_state { - bool enforcing; - bool initialized; - bool policycap[8]; - struct page *status_page; - struct mutex status_lock; - struct selinux_policy __attribute__((btf_type_tag("rcu"))) *policy; - struct mutex policy_mutex; +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 selinux_mapping; - -struct selinux_map { - struct selinux_mapping *mapping; - u16 size; +struct mpage_data { + struct bio *bio; + sector_t last_block_in_bio; + get_block_t *get_block; }; -struct selinux_policy { - struct sidtab *sidtab; - struct policydb policydb; - struct selinux_map map; - u32 latest_granting; -}; +struct iomap_dio_ops; -enum { - Opt_error = -1, - Opt_context = 0, - Opt_defcontext = 1, - Opt_fscontext = 2, - Opt_rootcontext = 3, - Opt_seclabel = 4, +struct iomap_dio { + struct kiocb *iocb; + const struct iomap_dio_ops *dops; + loff_t i_size; + loff_t size; + atomic_t ref; + unsigned int flags; + int error; + size_t done_before; + bool wait_for_completion; + union { + struct { + struct iov_iter *iter; + struct task_struct *waiter; + } submit; + struct { + struct work_struct work; + } aio; + }; }; -struct tty_file_private { - struct tty_struct *tty; - struct file *file; - struct list_head list; +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 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 pending_reservation { + struct rb_node rb_node; + ext4_lblk_t lclu; }; -struct file_security_struct { - u32 sid; - u32 fown_sid; - u32 isid; - u32 pseqno; +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 bpf_security_struct { - u32 sid; +struct jbd2_revoke_table_s { + int hash_size; + int hash_shift; + struct list_head *hash_table; }; -struct ipc_security_struct { - u16 sclass; - u32 sid; +struct jbd2_revoke_record_s { + struct list_head hash; + tid_t sequence; + unsigned long long blocknr; }; -struct msg_security_struct { - u32 sid; +enum { + MOUNTPROC3_NULL = 0, + MOUNTPROC3_MNT = 1, + MOUNTPROC3_DUMP = 2, + MOUNTPROC3_UMNT = 3, + MOUNTPROC3_UMNTALL = 4, + MOUNTPROC3_EXPORT = 5, }; -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; +enum { + MOUNTPROC_NULL = 0, + MOUNTPROC_MNT = 1, + MOUNTPROC_DUMP = 2, + MOUNTPROC_UMNT = 3, + MOUNTPROC_UMNTALL = 4, + MOUNTPROC_EXPORT = 5, }; -struct selinux_mnt_opts { - u32 fscontext_sid; - u32 context_sid; - u32 rootcontext_sid; - u32 defcontext_sid; +struct mountres { + int errno; + struct nfs_fh *fh; + unsigned int *auth_count; + rpc_authflavor_t *auth_flavors; }; -struct tun_security_struct { - u32 sid; +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 key_security_struct { - u32 sid; -}; +struct fscache_cookie; -struct perf_event_security_struct { - u32 sid; +struct rsa_mpi_key { + MPI n; + MPI e; + MPI d; + MPI p; + MPI q; + MPI dp; + MPI dq; + MPI qinv; }; -typedef void (*swap_r_func_t)(void *, void *, int, const void *); - -struct wrapper { - cmp_func_t cmp; - swap_func_t swap; +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; }; -typedef int (*cmp_r_func_t)(const void *, const void *, const void *); +struct drbg_state; -struct strarray { - char **array; - size_t n; +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 *); }; -struct pci_dynid { - struct list_head node; - struct pci_device_id id; +enum drbg_seed_state { + DRBG_SEED_STATE_UNSEEDED = 0, + DRBG_SEED_STATE_PARTIAL = 1, + DRBG_SEED_STATE_FULL = 2, }; -struct drv_dev_and_id { - struct pci_driver *drv; - struct pci_dev *dev; - const struct pci_device_id *id; +struct drbg_string { + const unsigned char *buf; + size_t len; + struct list_head list; }; -struct apd_private_data; +struct drbg_core; -struct apd_device_desc { - unsigned int fixed_clk_rate; - struct property_entry *properties; - int (*setup)(struct apd_private_data *); +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; }; -struct apd_private_data { - struct clk *clk; - struct acpi_device *adev; - const struct apd_device_desc *dev_desc; -}; +typedef uint32_t drbg_flag_t; -struct dma_chan_tbl_ent { - struct dma_chan *chan; +struct drbg_core { + drbg_flag_t flags; + __u8 statelen; + __u8 blocklen_bytes; + char cra_name[128]; + char backend_cra_name[128]; }; -struct dmaengine_unmap_pool { - struct kmem_cache *cache; - const char *name; - mempool_t *pool; - size_t size; +enum drbg_prefixes { + DRBG_PREFIX0 = 0, + DRBG_PREFIX1 = 1, + DRBG_PREFIX2 = 2, + DRBG_PREFIX3 = 3, }; -struct protection_domain; - -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 sdesc { + struct shash_desc shash; + char ctx[0]; }; -struct iommu_flush_ops; +enum { + IORING_MSG_DATA = 0, + IORING_MSG_SEND_FD = 1, +}; -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; +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 { - 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; + u32 dst_fd; + u32 cqe_flags; }; + u32 flags; }; -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_waitid { + struct file *file; + int which; + pid_t upid; + int options; + atomic_t refs; + struct wait_queue_head *head; + struct siginfo __attribute__((btf_type_tag("user"))) *infop; + struct waitid_info info; }; -struct io_pgtable { - enum io_pgtable_fmt fmt; - void *cookie; - struct io_pgtable_cfg cfg; - struct io_pgtable_ops ops; +struct io_waitid_async { + struct io_kiocb *req; + struct wait_opts wo; }; -struct amd_io_pgtable { - struct io_pgtable_cfg pgtbl_cfg; - struct io_pgtable iop; - int mode; - u64 *root; - atomic64_t pt_root; - u64 *pgd; +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 protection_domain { - struct list_head dev_list; - struct iommu_domain domain; - struct amd_io_pgtable iop; - spinlock_t lock; - u16 id; - int glx; - int nid; - u64 *gcr3_tbl; - unsigned long flags; - unsigned int dev_cnt; - unsigned int dev_iommu[32]; +struct acpi_create_field_info { + struct acpi_namespace_node *region_node; + struct acpi_namespace_node *field_node; + struct acpi_namespace_node *register_node; + struct acpi_namespace_node *data_register_node; + struct acpi_namespace_node *connection_node; + u8 *resource_buffer; + u32 bank_value; + u32 field_bit_position; + u32 field_bit_length; + u16 resource_length; + u16 pin_number_index; + u8 field_flags; + u8 attribute; + u8 field_type; + u8 access_length; }; -struct 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 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 iommu_cmd { - u32 data[4]; +struct acpi_vendor_walk_info { + struct acpi_vendor_uuid *uuid; + struct acpi_buffer *buffer; + acpi_status status; }; -struct amd_iommu_fault { - u64 address; - u32 pasid; - u32 sbdf; - u16 tag; - u16 flags; +struct acpi_interface_info { + char *name; + struct acpi_interface_info *next; + u8 flags; + u8 value; }; -struct amd_iommu_device_info { - int max_pasids; - u32 flags; +typedef u32 (*acpi_interface_handler)(acpi_string, u32); + +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]; }; -typedef void (*btf_trace_drm_vblank_event)(void *, int, unsigned int, ktime_t, bool); +struct earlycon_device { + struct console *con; + struct uart_port port; + char options[32]; + unsigned int baud; +}; -typedef void (*btf_trace_drm_vblank_event_queued)(void *, struct drm_file *, int, unsigned int); +struct earlycon_id { + char name[15]; + char name_term; + char compatible[128]; + int (*setup)(struct earlycon_device *, const char *); +}; -typedef void (*btf_trace_drm_vblank_event_delivered)(void *, struct drm_file *, int, unsigned int); +typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *); -struct trace_event_raw_drm_vblank_event { +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 crtc; - unsigned int seq; - ktime_t time; - bool high_prec; + int gid; + u32 __data_loc_device; char __data[0]; }; -struct trace_event_raw_drm_vblank_event_queued { +struct trace_event_raw_iommu_device_event { struct trace_entry ent; - struct drm_file *file; - int crtc; - unsigned int seq; + u32 __data_loc_device; char __data[0]; }; -struct trace_event_raw_drm_vblank_event_delivered { +struct trace_event_raw_map { struct trace_entry ent; - struct drm_file *file; - int crtc; - unsigned int seq; + u64 iova; + u64 paddr; + size_t size; char __data[0]; }; -struct trace_event_data_offsets_drm_vblank_event {}; +struct trace_event_raw_unmap { + struct trace_entry ent; + u64 iova; + size_t size; + size_t unmapped_size; + char __data[0]; +}; -struct trace_event_data_offsets_drm_vblank_event_queued {}; +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_drm_vblank_event_delivered {}; +struct trace_event_data_offsets_iommu_group_event { + u32 device; +}; -struct hdcp_srm_header { - u8 srm_id; - u8 reserved; - __be16 srm_version; - u8 srm_gen_no; -} __attribute__((packed)); +struct trace_event_data_offsets_iommu_device_event { + u32 device; +}; -struct kobj_engine { - struct kobject base; - struct intel_engine_cs *engine; +struct trace_event_data_offsets_iommu_error { + u32 device; + u32 driver; +}; + +struct trace_event_data_offsets_map {}; + +struct trace_event_data_offsets_unmap {}; + +enum drm_minor_type { + DRM_MINOR_PRIMARY = 0, + DRM_MINOR_CONTROL = 1, + DRM_MINOR_RENDER = 2, + DRM_MINOR_ACCEL = 32, +}; + +struct class_attribute { + struct attribute attr; + ssize_t (*show)(const struct class *, const struct class_attribute *, char *); + ssize_t (*store)(const struct class *, const struct class_attribute *, const char *, size_t); +}; + +struct class_attribute_string { + struct class_attribute attr; + char *str; +}; + +struct legacy_ring { + struct intel_gt *gt; + u8 class; + u8 instance; }; struct drm_i915_query_item { @@ -112740,11 +116873,6 @@ struct drm_i915_query_item { __u64 data_ptr; }; -struct i915_engine_class_instance { - __u16 engine_class; - __u16 engine_instance; -}; - struct drm_i915_query_perf_config { union { __u64 n_configs; @@ -112777,6 +116905,11 @@ struct drm_i915_query_engine_info { 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; @@ -112809,905 +116942,840 @@ struct drm_i915_query_topology_info { __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; -}; - -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_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; +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 bdb_lvds_lfp_data_ptrs { - u8 lvds_entries; - struct lvds_lfp_data_ptr ptr[16]; - struct lvds_lfp_data_ptr_table panel_name; +struct ivch_priv { + bool quiet; + u16 width; + u16 height; + u16 reg_backup[24]; }; -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; +enum virtio_gpu_shm_id { + VIRTIO_GPU_SHM_ID_UNDEFINED = 0, + VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1, }; -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]; -}; +typedef void (*btf_trace_virtio_gpu_cmd_queue)(void *, struct virtqueue *, struct virtio_gpu_ctrl_hdr *, u32); -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)); +typedef void (*btf_trace_virtio_gpu_cmd_response)(void *, struct virtqueue *, struct virtio_gpu_ctrl_hdr *, u32); -struct bdb_compression_parameters { - u16 entry_size; - struct dsc_compression_parameters_entry data[16]; +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 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 trace_event_data_offsets_virtio_gpu_cmd { + u32 name; }; -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 value_name_pair; -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 sa_name_list { + int opcode; + const struct value_name_pair *arr; + int arr_sz; }; -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; +struct value_name_pair { + int value; + const char *name; }; -struct bdb_lvds_lfp_data { - struct lvds_lfp_data_entry data[16]; +struct error_info { + unsigned short code12; + unsigned short size; }; -struct lvds_lfp_panel_name { - u8 name[13]; +struct error_info2 { + unsigned char code1; + unsigned char code2_min; + unsigned char code2_max; + const char *str; + const char *fmt; }; -struct lvds_lfp_black_border { - u8 top; - u8 bottom; - u8 left; - u8 right; +struct register_test { + __u32 reg; + __u32 mask; }; -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 nv_ethtool_str { + char name[32]; }; -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; +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, }; -struct lfp_brightness_level { - u16 level; - u16 reserved; +enum { + NV_OPTIMIZATION_MODE_THROUGHPUT = 0, + NV_OPTIMIZATION_MODE_CPU = 1, + NV_OPTIMIZATION_MODE_DYNAMIC = 2, }; -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]; +enum { + NV_CROSSOVER_DETECTION_DISABLED = 0, + NV_CROSSOVER_DETECTION_ENABLED = 1, }; -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 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 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 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 als_data_entry { - u16 backlight_adjust; - u16 lux; -}; +struct ring_desc; -struct aggressiveness_profile_entry { - u8 dpst_aggressiveness: 4; - u8 lace_aggressiveness: 4; -}; +struct ring_desc_ex; -struct aggressiveness_profile2_entry { - u8 opst_aggressiveness: 4; - u8 elp_aggressiveness: 4; +union ring_type { + struct ring_desc *orig; + struct ring_desc_ex *ex; }; -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 nv_skb_map; -struct edp_fast_link_params { - u8 rate: 4; - u8 lanes: 4; - u8 preemphasis: 4; - u8 vswing: 4; +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 edp_pwm_delays { - u16 pwm_on_to_backlight_enable; - u16 backlight_disable_to_pwm_off; +struct ring_desc { + __le32 buf; + __le32 flaglen; }; -struct edp_full_link_params { - u8 preemphasis: 4; - u8 vswing: 4; +struct ring_desc_ex { + __le32 bufhigh; + __le32 buflow; + __le32 txvlan; + __le32 flaglen; }; -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 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; }; -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 ohci_driver_overrides { + const char *product_desc; + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); }; -struct bdb_psr { - struct psr_table psr_table[16]; - u32 psr2_tp2_tp3_wakeup_time; +enum ohci_rh_state { + OHCI_RH_HALTED = 0, + OHCI_RH_SUSPENDED = 1, + OHCI_RH_RUNNING = 2, }; -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]; -}; +struct ohci_regs; -struct bdb_mipi_sequence { - u8 version; - u8 data[0]; -}; +struct ohci_hcca; -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 ed; -struct gmbus_pin { - const char *name; - enum gmbus_gpio gpio; -}; +struct td; -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 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 cn_queue_dev; +typedef __u32 __hc32; -struct cn_dev { - struct cb_id id; - u32 seq; - u32 groups; - struct sock *nls; - struct cn_queue_dev *cbdev; +struct ohci_roothub_regs { + __hc32 a; + __hc32 b; + __hc32 status; + __hc32 portstatus[15]; }; -struct cn_queue_dev { - atomic_t refcnt; - unsigned char name[32]; - struct list_head queue_list; - spinlock_t queue_lock; - struct sock *nls; +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 cn_callback_id { - unsigned char name[32]; - struct cb_id id; +struct ohci_hcca { + __hc32 int_table[32]; + __hc32 frame_no; + __hc32 done_head; + u8 reserved_for_hc[116]; + u8 what[4]; }; -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 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; }; -enum { - ACTION_FAIL = 0, - ACTION_REPREP = 1, - ACTION_DELAYED_REPREP = 2, - ACTION_RETRY = 3, - ACTION_DELAYED_RETRY = 4, +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; }; -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 i8042_controller_reset_mode { + I8042_RESET_NEVER = 0, + I8042_RESET_ALWAYS = 1, + I8042_RESET_ON_S2RAM = 2, }; -struct virtnet_stat_desc { - char desc[32]; - size_t offset; +struct i8042_port { + struct serio *serio; + int irq; + bool exists; + bool driver_bound; + signed char mux; }; -struct rx_queue_attribute { +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 netdev_rx_queue *, char *); - ssize_t (*store)(struct netdev_rx_queue *, const char *, size_t); + ssize_t (*show)(struct md_rdev *, char *); + ssize_t (*store)(struct md_rdev *, const char *, size_t); }; -enum netdev_xdp_act { - NETDEV_XDP_ACT_BASIC = 1, - NETDEV_XDP_ACT_REDIRECT = 2, - NETDEV_XDP_ACT_NDO_XMIT = 4, - NETDEV_XDP_ACT_XSK_ZEROCOPY = 8, - NETDEV_XDP_ACT_HW_OFFLOAD = 16, - NETDEV_XDP_ACT_RX_SG = 32, - NETDEV_XDP_ACT_NDO_XMIT_SG = 64, - NETDEV_XDP_ACT_MASK = 127, +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 xdp_buff_flags { - XDP_FLAGS_HAS_FRAGS = 1, - XDP_FLAGS_FRAGS_PF_MEMALLOC = 2, +enum md_ro_state { + MD_RDWR = 0, + MD_RDONLY = 1, + MD_AUTO_READ = 2, + MD_MAX_STATE = 3, }; 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, + MD_RESYNC_NONE = 0, + MD_RESYNC_YIELDED = 1, + MD_RESYNC_DELAYED = 2, + MD_RESYNC_ACTIVE = 3, }; -struct send_queue; - -struct receive_queue; - -struct control_buf; - -struct virtnet_info { - struct virtio_device *vdev; - struct virtqueue *cvq; - struct net_device *dev; - struct send_queue *sq; - struct receive_queue *rq; - unsigned int status; - u16 max_queue_pairs; - u16 curr_queue_pairs; - u16 xdp_queue_pairs; - bool xdp_enabled; - bool big_packets; - unsigned int big_packets_num_skbfrags; - bool mergeable_rx_bufs; - bool has_rss; - bool has_rss_hash_report; - u8 rss_key_size; - u16 rss_indir_table_size; - u32 rss_hash_types_supported; - u32 rss_hash_types_saved; - bool has_cvq; - bool any_header_sg; - u8 hdr_len; - struct delayed_work refill; - bool refill_enabled; - spinlock_t refill_lock; - struct work_struct config_work; - 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; +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 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 detected_devices_node { + struct list_head list; + dev_t dev; }; -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 md_io_clone { + struct mddev *mddev; + struct bio *orig_bio; + unsigned long start_time; + struct bio bio_clone; }; -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 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 ewma_pkt_len { - unsigned long internal; +struct mdu_version_s { + int major; + int minor; + int patchlevel; }; -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: 64; - long: 64; - struct xdp_rxq_info xdp_rxq; -}; +typedef struct mdu_version_s mdu_version_t; -struct virtio_net_ctrl_hdr { - __u8 class; - __u8 cmd; +typedef struct mdu_array_info_s mdu_array_info_t; + +struct mdu_bitmap_file_s { + char pathname[4096]; }; -typedef __u8 virtio_net_ctrl_ack; +typedef struct mdu_bitmap_file_s mdu_bitmap_file_t; -struct virtio_net_ctrl_mq { - __virtio16 virtqueue_pairs; -}; +typedef struct mdu_disk_info_s mdu_disk_info_t; -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 mdp_device_descriptor_s { + __u32 number; + __u32 major; + __u32 minor; + __u32 raid_disk; + __u32 state; + __u32 reserved[27]; }; -struct virtio_net_ctrl_coal_tx { - __le32 tx_max_packets; - __le32 tx_usecs; -}; +typedef struct mdp_device_descriptor_s mdp_disk_t; -struct virtio_net_ctrl_coal_rx { - __le32 rx_max_packets; - __le32 rx_usecs; +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; }; -struct control_buf { - struct virtio_net_ctrl_hdr hdr; - virtio_net_ctrl_ack status; - struct virtio_net_ctrl_mq mq; - u8 promisc; - u8 allmulti; - __virtio16 vid; - __virtio64 offloads; - struct virtio_net_ctrl_rss rss; - struct virtio_net_ctrl_coal_tx coal_tx; - struct virtio_net_ctrl_coal_rx coal_rx; -}; +typedef struct mdp_superblock_s mdp_super_t; -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 blk_integrity_profile; -struct virtio_net_hdr_v1_hash { - struct virtio_net_hdr_v1 hdr; - __le32 hash_value; - __le16 hash_report; - __le16 padding; +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 virtio_net_ctrl_mac { - __virtio32 entries; - __u8 macs[0]; -}; +struct blk_integrity_iter; -enum xhci_cancelled_td_status { - TD_DIRTY = 0, - TD_HALTED = 1, - TD_CLEARING_CACHE = 2, - TD_CLEARED = 3, -}; +typedef blk_status_t integrity_processing_fn(struct blk_integrity_iter *); -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; -}; +typedef void integrity_prepare_fn(struct request *); -struct urb_priv___2 { - int num_tds; - int num_tds_done; - struct xhci_td td[0]; -}; +typedef void integrity_complete_fn(struct request *, unsigned int); -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 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 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 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; }; -typedef struct { - u32 version; - u32 num_entries; - u32 desc_size; - u32 flags; - efi_memory_desc_t entry[0]; -} efi_memory_attributes_table_t; +union efi_rts_args; -typedef int (*efi_memattr_perm_setter)(struct mm_struct *, efi_memory_desc_t *, bool); +struct efi_runtime_work { + union efi_rts_args *args; + efi_status_t status; + struct work_struct work; + enum efi_rts_ids efi_rts_id; + struct completion efi_rts_comp; + const void *caller; +}; + +union efi_rts_args { + struct { + efi_time_t *time; + efi_time_cap_t *capabilities; + } GET_TIME; + struct { + efi_time_t *time; + } SET_TIME; + struct { + efi_bool_t *enabled; + efi_bool_t *pending; + efi_time_t *time; + } GET_WAKEUP_TIME; + struct { + efi_bool_t enable; + efi_time_t *time; + } SET_WAKEUP_TIME; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 *attr; + unsigned long *data_size; + void *data; + } GET_VARIABLE; + struct { + unsigned long *name_size; + efi_char16_t *name; + efi_guid_t *vendor; + } GET_NEXT_VARIABLE; + struct { + efi_char16_t *name; + efi_guid_t *vendor; + u32 attr; + unsigned long data_size; + void *data; + } SET_VARIABLE; + struct { + u32 attr; + u64 *storage_space; + u64 *remaining_space; + u64 *max_variable_size; + } QUERY_VARIABLE_INFO; + struct { + u32 *high_count; + } GET_NEXT_HIGH_MONO_COUNT; + struct { + efi_capsule_header_t **capsules; + unsigned long count; + unsigned long sg_list; + } UPDATE_CAPSULE; + struct { + efi_capsule_header_t **capsules; + unsigned long count; + u64 *max_size; + int *reset_type; + } QUERY_CAPSULE_CAPS; + struct { + efi_status_t (*acpi_prm_handler)(u64, void *); + u64 param_buffer_addr; + void *context; + } ACPI_PRM_HANDLER; +}; enum { MAGNITUDE_STRONG = 2, @@ -113733,5859 +117801,6228 @@ struct xb1s_ff_report { __u8 loop_count; }; -struct hda_vendor_id { - unsigned int id; - const char *name; +struct pcc_chan_reg { + void *vaddr; + struct acpi_generic_address *gas; + u64 preserve_mask; + u64 set_mask; + u64 status_mask; }; -struct hda_rate_tbl { - unsigned int hz; - unsigned int alsa_bits; - unsigned int hda_fmt; +struct pcc_chan_info { + struct pcc_mbox_chan chan; + struct pcc_chan_reg db; + struct pcc_chan_reg plat_irq_ack; + struct pcc_chan_reg cmd_complete; + struct pcc_chan_reg cmd_update; + struct pcc_chan_reg error; + int plat_irq; + u8 type; + unsigned int plat_irq_flags; + bool chan_in_use; +}; + +enum acpi_pcct_type { + ACPI_PCCT_TYPE_GENERIC_SUBSPACE = 0, + ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE = 1, + ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 = 2, + ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE = 3, + ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE = 4, + ACPI_PCCT_TYPE_HW_REG_COMM_SUBSPACE = 5, + ACPI_PCCT_TYPE_RESERVED = 6, +}; + +struct acpi_pcct_subspace { + struct acpi_subtable_header header; + u8 reserved[6]; + u64 base_address; + u64 length; + struct acpi_generic_address doorbell_register; + u64 preserve_mask; + u64 write_mask; + u32 latency; + u32 max_access_rate; + u16 min_turnaround_time; +} __attribute__((packed)); + +struct acpi_table_pcct { + struct acpi_table_header header; + u32 flags; + u64 reserved; }; -enum { - AC_GRP_AUDIO_FUNCTION = 1, - AC_GRP_MODEM_FUNCTION = 2, +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 link_ctl_info { + snd_ctl_elem_type_t type; + int count; + int min_val; + int max_val; }; -enum hwtstamp_flags { - HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1, - HWTSTAMP_FLAG_LAST = 1, - HWTSTAMP_FLAG_MASK = 1, -}; +struct link_master; -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 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 net_bridge; - -struct kernel_hwtstamp_config { - int flags; - int tx_type; - int rx_filter; +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 compat_ifconf { - compat_int_t ifc_len; - compat_caddr_t ifcbuf; +struct snd_seq_queue_tempo { + int queue; + unsigned int tempo; + int ppq; + unsigned int skew_value; + unsigned int skew_base; + char reserved[24]; }; -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 pcpu_gen_cookie; -struct skb_array { - struct ptr_ring ring; +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 pfifo_fast_priv { - struct skb_array q[3]; +struct pcpu_gen_cookie { + local_t nesting; + u64 last; }; -struct tc_prio_qopt { - int bands; - __u8 priomap[16]; +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 psched_ratecfg { - u64 rate_bytes_ps; - u32 mult; - u16 overhead; - u16 mpu; - u8 linklayer; - u8 shift; +struct broadcast_sk { + struct sock *sk; + struct work_struct work; }; -struct psched_pktrate { - u64 rate_pkts_ps; - u32 mult; - u8 shift; +struct sock_diag_req { + __u8 sdiag_family; + __u8 sdiag_protocol; }; -struct mini_Qdisc_pair { - struct mini_Qdisc miniq1; - struct mini_Qdisc miniq2; - struct mini_Qdisc __attribute__((btf_type_tag("rcu"))) **p_miniq; -}; +typedef void (*btf_trace_kfree_skb)(void *, struct sk_buff *, void *, enum skb_drop_reason); -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, -}; +typedef void (*btf_trace_consume_skb)(void *, struct sk_buff *, void *); -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, -}; +typedef void (*btf_trace_skb_copy_datagram_iovec)(void *, const struct sk_buff *, int); -struct mm_reply_data { - struct ethnl_reply_data base; - struct ethtool_mm_state state; - struct ethtool_mm_stats stats; -}; +typedef void (*btf_trace_net_dev_start_xmit)(void *, const struct sk_buff *, const struct net_device *); -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, -}; +typedef void (*btf_trace_net_dev_xmit)(void *, struct sk_buff *, int, struct net_device *, unsigned int); -struct udp_skb_cb { - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - } header; - __u16 cscov; - __u8 partial_cov; -}; +typedef void (*btf_trace_net_dev_xmit_timeout)(void *, struct net_device *, int); -struct udp_dev_scratch { - u32 _tsize_state; - u16 len; - bool is_linear; - bool csum_unnecessary; -}; +typedef void (*btf_trace_net_dev_queue)(void *, struct sk_buff *); -struct bpf_iter__udp { - union { - struct bpf_iter_meta *meta; - }; - union { - struct udp_sock *udp_sk; - }; - uid_t uid; - long: 0; - int bucket; -}; +typedef void (*btf_trace_netif_receive_skb)(void *, struct sk_buff *); -struct udp_iter_state { - struct seq_net_private p; - int bucket; -}; +typedef void (*btf_trace_netif_rx)(void *, struct sk_buff *); -struct bpf_udp_iter_state { - struct udp_iter_state state; - unsigned int cur_sk; - unsigned int end_sk; - unsigned int max_sk; - int offset; - struct sock **batch; - bool st_bucket_done; -}; +typedef void (*btf_trace_napi_gro_frags_entry)(void *, const struct sk_buff *); -struct rpc_filelist { - const char *name; - const struct file_operations *i_fop; - umode_t mode; -}; +typedef void (*btf_trace_napi_gro_receive_entry)(void *, const struct sk_buff *); -enum { - RPCAUTH_info = 0, - RPCAUTH_EOF = 1, -}; +typedef void (*btf_trace_netif_receive_skb_entry)(void *, const struct sk_buff *); -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, -}; +typedef void (*btf_trace_netif_receive_skb_list_entry)(void *, const struct sk_buff *); -enum { - RPC_PIPEFS_MOUNT = 0, - RPC_PIPEFS_UMOUNT = 1, -}; +typedef void (*btf_trace_netif_rx_entry)(void *, const struct sk_buff *); -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, -}; +typedef void (*btf_trace_napi_gro_frags_exit)(void *, int); -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, -}; +typedef void (*btf_trace_napi_gro_receive_exit)(void *, int); -struct netlbl_domaddr4_map { - struct netlbl_dommap_def def; - struct netlbl_af4list list; -}; +typedef void (*btf_trace_netif_receive_skb_exit)(void *, int); -struct netlbl_domaddr6_map { - struct netlbl_dommap_def def; - struct netlbl_af6list list; -}; +typedef void (*btf_trace_netif_rx_exit)(void *, int); -struct netlbl_domhsh_walk_arg___2 { - struct netlink_callback *nl_cb; - struct sk_buff *skb; - u32 seq; -}; +typedef void (*btf_trace_netif_receive_skb_list_exit)(void *, int); -typedef void (*btf_trace_handshake_submit)(void *, const struct net *, const struct handshake_req *, const struct sock *); +typedef void (*btf_trace_napi_poll)(void *, struct napi_struct *, int, int); -typedef void (*btf_trace_handshake_submit_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef void (*btf_trace_sock_rcvqueue_full)(void *, struct sock *, struct sk_buff *); -typedef void (*btf_trace_handshake_cancel)(void *, const struct net *, const struct handshake_req *, const struct sock *); +typedef void (*btf_trace_sock_exceed_buf_limit)(void *, struct sock *, struct proto *, long, int); -typedef void (*btf_trace_handshake_cancel_none)(void *, const struct net *, const struct handshake_req *, const struct sock *); +typedef void (*btf_trace_inet_sock_set_state)(void *, const struct sock *, const int, const int); -typedef void (*btf_trace_handshake_cancel_busy)(void *, const struct net *, const struct handshake_req *, const struct sock *); +typedef void (*btf_trace_inet_sk_error_report)(void *, const struct sock *); -typedef void (*btf_trace_handshake_destruct)(void *, const struct net *, const struct handshake_req *, const struct sock *); +typedef void (*btf_trace_sk_data_ready)(void *, const struct sock *); -typedef void (*btf_trace_handshake_complete)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef void (*btf_trace_sock_send_length)(void *, struct sock *, int, int); -typedef void (*btf_trace_handshake_notify_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef void (*btf_trace_sock_recv_length)(void *, struct sock *, int, int); -typedef void (*btf_trace_handshake_cmd_accept)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef void (*btf_trace_udp_fail_queue_rcv_skb)(void *, int, struct sock *); -typedef void (*btf_trace_handshake_cmd_accept_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef void (*btf_trace_tcp_retransmit_skb)(void *, const struct sock *, const struct sk_buff *); -typedef void (*btf_trace_handshake_cmd_done)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef void (*btf_trace_tcp_send_reset)(void *, const struct sock *, const struct sk_buff *); -typedef void (*btf_trace_handshake_cmd_done_err)(void *, const struct net *, const struct handshake_req *, const struct sock *, int); +typedef void (*btf_trace_tcp_receive_reset)(void *, struct sock *); -struct trace_event_raw_handshake_event_class { - struct trace_entry ent; - const void *req; - const void *sk; - unsigned int netns_ino; - char __data[0]; -}; +typedef void (*btf_trace_tcp_destroy_sock)(void *, struct sock *); -struct trace_event_raw_handshake_error_class { - struct trace_entry ent; - const void *req; - const void *sk; - int err; - unsigned int netns_ino; - char __data[0]; -}; +typedef void (*btf_trace_tcp_rcv_space_adjust)(void *, struct sock *); -struct trace_event_raw_handshake_complete { - struct trace_entry ent; - const void *req; - const void *sk; - int status; - unsigned int netns_ino; - char __data[0]; -}; +typedef void (*btf_trace_tcp_retransmit_synack)(void *, const struct sock *, const struct request_sock *); -struct trace_event_raw_handshake_fd_class { - struct trace_entry ent; - const void *req; - const void *sk; - int fd; - unsigned int netns_ino; - char __data[0]; -}; +typedef void (*btf_trace_tcp_probe)(void *, struct sock *, struct sk_buff *); -struct trace_event_data_offsets_handshake_event_class {}; +typedef void (*btf_trace_tcp_bad_csum)(void *, const struct sk_buff *); -struct trace_event_data_offsets_handshake_fd_class {}; +typedef void (*btf_trace_tcp_cong_state_set)(void *, struct sock *, const u8); -struct trace_event_data_offsets_handshake_error_class {}; +typedef void (*btf_trace_fib_table_lookup)(void *, u32, const struct flowi4 *, const struct fib_nh_common *, int); -struct trace_event_data_offsets_handshake_complete {}; +typedef void (*btf_trace_qdisc_dequeue)(void *, struct Qdisc *, const struct netdev_queue *, int, struct sk_buff *); -enum rwsem_waiter_type { - RWSEM_WAITING_FOR_WRITE = 0, - RWSEM_WAITING_FOR_READ = 1, -}; +typedef void (*btf_trace_qdisc_enqueue)(void *, struct Qdisc *, const struct netdev_queue *, struct sk_buff *); -enum rwsem_wake_type { - RWSEM_WAKE_ANY = 0, - RWSEM_WAKE_READERS = 1, - RWSEM_WAKE_READ_OWNED = 2, -}; +typedef void (*btf_trace_qdisc_reset)(void *, struct Qdisc *); -enum owner_state { - OWNER_NULL = 1, - OWNER_WRITER = 2, - OWNER_READER = 4, - OWNER_NONSPINNABLE = 8, -}; +typedef void (*btf_trace_qdisc_destroy)(void *, struct Qdisc *); -struct rwsem_waiter { - struct list_head list; - struct task_struct *task; - enum rwsem_waiter_type type; - unsigned long timeout; - bool handoff_set; -}; +typedef void (*btf_trace_qdisc_create)(void *, const struct Qdisc_ops *, struct net_device *, u32); -struct klp_ops { - struct list_head node; - struct list_head func_stack; - struct ftrace_ops fops; -}; +typedef void (*btf_trace_page_pool_release)(void *, const struct page_pool *, s32, u32, u32); -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; -}; +typedef void (*btf_trace_page_pool_state_release)(void *, const struct page_pool *, const struct page *, u32); -struct klp_object; +typedef void (*btf_trace_page_pool_state_hold)(void *, const struct page_pool *, const struct page *, u32); -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; -}; +typedef void (*btf_trace_page_pool_update_nid)(void *, const struct page_pool *, int); -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; -}; +typedef void (*btf_trace_neigh_create)(void *, struct neigh_table *, struct net_device *, const void *, const struct neighbour *, bool); -struct klp_state; +typedef void (*btf_trace_neigh_update)(void *, struct neighbour *, const u8 *, u8, u32, u32); -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; -}; +typedef void (*btf_trace_neigh_update_done)(void *, struct neighbour *, int); -struct klp_state { - unsigned long id; - unsigned int version; - void *data; -}; +typedef void (*btf_trace_neigh_timer_handler)(void *, struct neighbour *, int); -enum kprobe_slot_state { - SLOT_CLEAN = 0, - SLOT_DIRTY = 1, - SLOT_USED = 2, -}; +typedef void (*btf_trace_neigh_event_send_done)(void *, struct neighbour *, int); -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]; -}; +typedef void (*btf_trace_neigh_event_send_dead)(void *, struct neighbour *, int); -struct arch_optimized_insn { - kprobe_opcode_t copied_insn[4]; - kprobe_opcode_t *insn; - size_t size; -}; +typedef void (*btf_trace_neigh_cleanup_and_release)(void *, struct neighbour *, int); -struct optimized_kprobe { - struct kprobe kp; - struct list_head list; - struct arch_optimized_insn optinsn; +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 kprobe_blacklist_entry { - struct list_head list; - unsigned long start_addr; - unsigned long end_addr; +struct trace_event_raw_consume_skb { + struct trace_entry ent; + void *skbaddr; + void *location; + char __data[0]; }; -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 trace_event_raw_skb_copy_datagram_iovec { + struct trace_entry ent; + const void *skbaddr; + int len; + char __data[0]; }; -struct kretprobe_instance { - struct rethook_node node; - 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 btf_kfunc_hook_filter { - btf_kfunc_filter_t filters[16]; - u32 nr_filters; +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 btf_kfunc_set_tab { - struct btf_id_set8 *sets[13]; - struct btf_kfunc_hook_filter hook_filters[13]; +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 btf_id_dtor_kfunc_tab { - u32 cnt; - struct btf_id_dtor_kfunc dtors[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 btf_struct_metas { - u32 cnt; - struct btf_struct_meta types[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 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 trace_event_raw_net_dev_rx_exit_template { + struct trace_entry ent; + int ret; + char __data[0]; }; -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 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 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 trace_event_raw_sock_rcvqueue_full { + struct trace_entry ent; + int rmem_alloc; + unsigned int truesize; + int sk_rcvbuf; + char __data[0]; }; -struct bpf_perf_event_data { - bpf_user_pt_regs_t regs; - __u64 sample_period; - __u64 addr; +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 bpf_raw_tracepoint_args { - __u64 args[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 bpf_sysctl { - __u32 write; - __u32 file_pos; +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 bpf_sockopt { - union { - struct bpf_sock *sk; - }; - union { - void *optval; - }; - union { - void *optval_end; - }; - __s32 level; - __s32 optname; - __s32 optlen; - __s32 retval; +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 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 trace_event_raw_sock_msg_length { + struct trace_entry ent; + void *sk; + __u16 family; + __u16 protocol; + int ret; + int flags; + char __data[0]; }; -struct sk_reuseport_kern { - struct sk_buff *skb; - struct sock *sk; - struct sock *selected_sk; - struct sock *migrating_sk; - void *data_end; - u32 hash; - u32 reuseport_id; - bool bind_inany; +struct trace_event_raw_udp_fail_queue_rcv_skb { + struct trace_entry ent; + int rc; + __u16 lport; + char __data[0]; }; -struct bpf_sk_lookup { - union { - union { - struct bpf_sock *sk; - }; - __u64 cookie; - }; - __u32 family; - __u32 protocol; - __u32 remote_ip4; - __u32 remote_ip6[4]; - __be16 remote_port; - __u32 local_ip4; - __u32 local_ip6[4]; - __u32 local_port; - __u32 ingress_ifindex; +struct 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 bpf_ctx_convert { - struct __sk_buff BPF_PROG_TYPE_SOCKET_FILTER_prog; - struct sk_buff BPF_PROG_TYPE_SOCKET_FILTER_kern; - struct __sk_buff BPF_PROG_TYPE_SCHED_CLS_prog; - struct sk_buff BPF_PROG_TYPE_SCHED_CLS_kern; - struct __sk_buff BPF_PROG_TYPE_SCHED_ACT_prog; - struct sk_buff BPF_PROG_TYPE_SCHED_ACT_kern; - struct xdp_md BPF_PROG_TYPE_XDP_prog; - struct xdp_buff BPF_PROG_TYPE_XDP_kern; - struct __sk_buff BPF_PROG_TYPE_CGROUP_SKB_prog; - struct sk_buff BPF_PROG_TYPE_CGROUP_SKB_kern; - struct bpf_sock BPF_PROG_TYPE_CGROUP_SOCK_prog; - struct sock BPF_PROG_TYPE_CGROUP_SOCK_kern; - struct bpf_sock_addr BPF_PROG_TYPE_CGROUP_SOCK_ADDR_prog; - struct bpf_sock_addr_kern BPF_PROG_TYPE_CGROUP_SOCK_ADDR_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_IN_prog; - struct sk_buff BPF_PROG_TYPE_LWT_IN_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_OUT_prog; - struct sk_buff BPF_PROG_TYPE_LWT_OUT_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_XMIT_prog; - struct sk_buff BPF_PROG_TYPE_LWT_XMIT_kern; - struct __sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_prog; - struct sk_buff BPF_PROG_TYPE_LWT_SEG6LOCAL_kern; - struct bpf_sock_ops BPF_PROG_TYPE_SOCK_OPS_prog; - struct bpf_sock_ops_kern BPF_PROG_TYPE_SOCK_OPS_kern; - struct __sk_buff BPF_PROG_TYPE_SK_SKB_prog; - struct sk_buff BPF_PROG_TYPE_SK_SKB_kern; - struct sk_msg_md BPF_PROG_TYPE_SK_MSG_prog; - struct sk_msg BPF_PROG_TYPE_SK_MSG_kern; - struct __sk_buff BPF_PROG_TYPE_FLOW_DISSECTOR_prog; - struct bpf_flow_dissector BPF_PROG_TYPE_FLOW_DISSECTOR_kern; - bpf_user_pt_regs_t BPF_PROG_TYPE_KPROBE_prog; - struct pt_regs BPF_PROG_TYPE_KPROBE_kern; - __u64 BPF_PROG_TYPE_TRACEPOINT_prog; - u64 BPF_PROG_TYPE_TRACEPOINT_kern; - struct bpf_perf_event_data BPF_PROG_TYPE_PERF_EVENT_prog; - struct bpf_perf_event_data_kern BPF_PROG_TYPE_PERF_EVENT_kern; - struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_prog; - u64 BPF_PROG_TYPE_RAW_TRACEPOINT_kern; - struct bpf_raw_tracepoint_args BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_prog; - u64 BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE_kern; - void *BPF_PROG_TYPE_TRACING_prog; - void *BPF_PROG_TYPE_TRACING_kern; - struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_prog; - struct bpf_cgroup_dev_ctx BPF_PROG_TYPE_CGROUP_DEVICE_kern; - struct bpf_sysctl BPF_PROG_TYPE_CGROUP_SYSCTL_prog; - struct bpf_sysctl_kern BPF_PROG_TYPE_CGROUP_SYSCTL_kern; - struct bpf_sockopt BPF_PROG_TYPE_CGROUP_SOCKOPT_prog; - struct bpf_sockopt_kern BPF_PROG_TYPE_CGROUP_SOCKOPT_kern; - struct sk_reuseport_md BPF_PROG_TYPE_SK_REUSEPORT_prog; - struct sk_reuseport_kern BPF_PROG_TYPE_SK_REUSEPORT_kern; - struct bpf_sk_lookup BPF_PROG_TYPE_SK_LOOKUP_prog; - struct bpf_sk_lookup_kern BPF_PROG_TYPE_SK_LOOKUP_kern; - void *BPF_PROG_TYPE_SYSCALL_prog; - void *BPF_PROG_TYPE_SYSCALL_kern; - struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_prog; - struct bpf_nf_ctx BPF_PROG_TYPE_NETFILTER_kern; +struct 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 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 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 resolve_vertex { - const struct btf_type *t; - u32 type_id; - u16 next_member; +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]; }; -enum verifier_phase { - CHECK_META = 0, - CHECK_TYPE = 1, +struct trace_event_raw_tcp_event_skb { + struct trace_entry ent; + const void *skbaddr; + __u8 saddr[28]; + __u8 daddr[28]; + char __data[0]; }; -enum resolve_mode { - RESOLVE_TBD = 0, - RESOLVE_PTR = 1, - RESOLVE_STRUCT_OR_ARRAY = 2, +struct trace_event_raw_tcp_cong_state_set { + struct trace_entry ent; + const void *skaddr; + __u16 sport; + __u16 dport; + __u16 family; + __u8 saddr[4]; + __u8 daddr[4]; + __u8 saddr_v6[16]; + __u8 daddr_v6[16]; + __u8 cong_state; + char __data[0]; }; -struct 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 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 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 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 bpf_cand_cache { - const char *name; - u32 name_len; - u16 kind; - u16 cnt; - struct { - const struct btf *btf; - u32 id; - } cands[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]; }; -enum bpf_struct_walk_result { - WALK_SCALAR = 0, - WALK_PTR = 1, - WALK_STRUCT = 2, +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]; }; -enum btf_func_linkage { - BTF_FUNC_STATIC = 0, - BTF_FUNC_GLOBAL = 1, - BTF_FUNC_EXTERN = 2, +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]; }; -enum { - BTF_F_COMPACT = 1, - BTF_F_NONAME = 2, - BTF_F_PTR_RAW = 4, - BTF_F_ZERO = 8, +struct trace_event_raw_qdisc_create { + struct trace_entry ent; + u32 __data_loc_dev; + u32 __data_loc_kind; + u32 parent; + char __data[0]; }; -enum { - BTF_MODULE_F_LIVE = 1, +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]; }; -enum btf_kfunc_hook { - BTF_KFUNC_HOOK_COMMON = 0, - BTF_KFUNC_HOOK_XDP = 1, - BTF_KFUNC_HOOK_TC = 2, - BTF_KFUNC_HOOK_STRUCT_OPS = 3, - BTF_KFUNC_HOOK_TRACING = 4, - BTF_KFUNC_HOOK_SYSCALL = 5, - BTF_KFUNC_HOOK_FMODRET = 6, - BTF_KFUNC_HOOK_CGROUP_SKB = 7, - BTF_KFUNC_HOOK_SCHED_ACT = 8, - BTF_KFUNC_HOOK_SK_SKB = 9, - BTF_KFUNC_HOOK_SOCKET_FILTER = 10, - BTF_KFUNC_HOOK_LWT = 11, - BTF_KFUNC_HOOK_NETFILTER = 12, - BTF_KFUNC_HOOK_MAX = 13, +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]; }; -enum { - BTF_KFUNC_SET_MAX_CNT = 256, - BTF_DTOR_KFUNC_MAX_CNT = 256, - BTF_KFUNC_FILTER_MAX_CNT = 16, +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]; }; -enum { - BTF_FIELD_IGNORE = 0, - BTF_FIELD_FOUND = 1, +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]; }; -enum visit_state { - NOT_VISITED = 0, - VISITED = 1, - RESOLVED = 2, +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]; }; -enum { - BTF_VAR_STATIC = 0, - BTF_VAR_GLOBAL_ALLOCATED = 1, - BTF_VAR_GLOBAL_EXTERN = 2, +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 btf_module { - struct list_head list; - struct module *module; - struct btf *btf; - struct bin_attribute *sysfs_attr; - int flags; +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]; }; -typedef u64 (*btf_bpf_btf_find_by_name_kind)(char *, int, u32, int); - -struct btf_decl_tag { - __s32 component_idx; +struct trace_event_data_offsets_net_dev_start_xmit { + u32 name; }; -struct btf_var_secinfo { - __u32 type; - __u32 offset; - __u32 size; +struct trace_event_data_offsets_net_dev_xmit { + u32 name; }; -struct btf_sec_info { - u32 off; - u32 len; +struct trace_event_data_offsets_net_dev_xmit_timeout { + u32 name; + u32 driver; }; -struct btf_var { - __u32 linkage; +struct trace_event_data_offsets_net_dev_template { + u32 name; }; -struct btf_show_snprintf { - struct btf_show show; - int len_left; - int len; +struct trace_event_data_offsets_net_dev_rx_verbose_template { + u32 name; }; -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 trace_event_data_offsets_napi_poll { + u32 dev_name; }; -struct btf_id_set { - u32 cnt; - u32 ids[0]; +struct trace_event_data_offsets_qdisc_reset { + u32 dev; + u32 kind; }; -struct bpf_core_ctx { - struct bpf_verifier_log *log; - const struct btf *btf; +struct trace_event_data_offsets_qdisc_destroy { + u32 dev; + u32 kind; }; -enum umount_tree_flags { - UMOUNT_SYNC = 1, - UMOUNT_PROPAGATE = 2, - UMOUNT_CONNECTED = 4, +struct trace_event_data_offsets_qdisc_create { + u32 dev; + u32 kind; }; -enum mnt_tree_flags_t { - MNT_TREE_MOVE = 1, - MNT_TREE_BENEATH = 2, +struct trace_event_data_offsets_neigh_create { + u32 dev; }; -struct mount_attr { - __u64 attr_set; - __u64 attr_clr; - __u64 propagation; - __u64 userns_fd; +struct trace_event_data_offsets_neigh_update { + u32 dev; }; -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 trace_event_data_offsets_neigh__update { + u32 dev; }; -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 = 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, - Opt_xprtsec = 54, -}; +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 { - 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, + 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, }; enum { - Opt_lookupcache_all = 0, - Opt_lookupcache_none = 1, - Opt_lookupcache_positive = 2, + NLA_UNSPEC = 0, + NLA_U8 = 1, + NLA_U16 = 2, + NLA_U32 = 3, + NLA_U64 = 4, + NLA_STRING = 5, + NLA_FLAG = 6, + NLA_MSECS = 7, + NLA_NESTED = 8, + NLA_NESTED_ARRAY = 9, + NLA_NUL_STRING = 10, + NLA_BINARY = 11, + NLA_S8 = 12, + NLA_S16 = 13, + NLA_S32 = 14, + NLA_S64 = 15, + NLA_BITFIELD32 = 16, + NLA_REJECT = 17, + NLA_BE16 = 18, + NLA_BE32 = 19, + NLA_SINT = 20, + NLA_UINT = 21, + __NLA_TYPE_MAX = 22, }; -enum { - Opt_local_lock_all = 0, - Opt_local_lock_flock = 1, - Opt_local_lock_none = 2, - Opt_local_lock_posix = 3, +struct plca_reply_data { + struct ethnl_reply_data base; + struct phy_plca_cfg plca_cfg; + struct phy_plca_status plca_st; }; -enum { - Opt_write_lazy = 0, - Opt_write_eager = 1, - Opt_write_wait = 2, +struct xt_nflog_info { + __u32 len; + __u16 group; + __u16 threshold; + __u16 flags; + __u16 pad; + char prefix[64]; }; -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, +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); +}; + +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 { - 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, + 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 { - Opt_xprtsec_none = 0, - Opt_xprtsec_tls = 1, - Opt_xprtsec_mtls = 2, - nr__Opt_xprtsec = 3, + 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, }; -struct compat_nfs_string { - compat_uint_t len; - compat_uptr_t data; +enum { + LWTUNNEL_IP_OPT_VXLAN_UNSPEC = 0, + LWTUNNEL_IP_OPT_VXLAN_GBP = 1, + __LWTUNNEL_IP_OPT_VXLAN_MAX = 2, }; -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; +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, }; -struct nfs2_fh { - char data[32]; +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 nfs3_fh { - unsigned short size; - unsigned char data[64]; +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 nfs_mount_data { +struct erspan_metadata { 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]; + union { + __be32 index; + struct erspan_md2 md2; + } u; }; -struct nfs_string { - unsigned int len; - const char __attribute__((btf_type_tag("user"))) *data; +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 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; +struct vxlan_metadata { + u32 gbp; }; -struct sem_undo_list { - refcount_t refcnt; - spinlock_t lock; - struct list_head list_proc; +struct sigpool_entry { + struct crypto_ahash *hash; + const char *alg; + struct kref kref; + uint16_t needs_key: 1; + uint16_t reserved: 15; }; -struct sem_undo { - struct list_head list_proc; +struct scratches_to_free { struct callback_head rcu; - struct sem_undo_list *ulp; - struct list_head list_id; - int semid; - short *semadj; + unsigned int cnt; + void *scratches[0]; }; -struct sem { - int semval; - struct pid *sempid; - spinlock_t lock; - struct list_head pending_alter; - struct list_head pending_const; - time64_t sem_otime; +struct ip6_ra_chain { + struct ip6_ra_chain *next; + struct sock *sk; + int sel; + void (*destructor)(struct sock *); }; -struct sem_array { - struct kern_ipc_perm sem_perm; - time64_t sem_ctime; - struct list_head pending_alter; - struct list_head pending_const; - struct list_head list_id; - int sem_nsems; - int complex_count; - unsigned int use_global_lock; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - struct sem sems[0]; -}; +struct compat_group_source_req { + __u32 gsr_interface; + struct __kernel_sockaddr_storage gsr_group; + struct __kernel_sockaddr_storage gsr_source; +} __attribute__((packed)); -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 ipv6_mreq { + struct in6_addr ipv6mr_multiaddr; + int ipv6mr_ifindex; }; -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 compat_group_req { + __u32 gr_interface; + struct __kernel_sockaddr_storage gr_group; +} __attribute__((packed)); -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 group_req { + __u32 gr_interface; + struct __kernel_sockaddr_storage gr_group; }; -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_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)); + }; }; -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 ip6_mtuinfo { + struct sockaddr_in6 ip6m_addr; + __u32 ip6m_mtu; }; -struct seminfo { - int semmap; - int semmni; - int semmns; - int semmnu; - int semmsl; - int semopm; - int semume; - int semusz; - int semvmx; - int semaem; -}; +typedef u32 inet6_ehashfn_t(const struct net *, const struct in6_addr *, const u16, const struct in6_addr *, const __be16); -enum { - CRYPTO_MSG_ALG_REQUEST = 0, - CRYPTO_MSG_ALG_REGISTER = 1, - CRYPTO_MSG_ALG_LOADED = 2, +enum cfg80211_bss_frame_type { + CFG80211_BSS_FTYPE_UNKNOWN = 0, + CFG80211_BSS_FTYPE_BEACON = 1, + CFG80211_BSS_FTYPE_PRESP = 2, }; -enum { - CRYPTOA_UNSPEC = 0, - CRYPTOA_ALG = 1, - CRYPTOA_TYPE = 2, - __CRYPTOA_MAX = 3, +struct cfg80211_inform_single_bss_data { + struct cfg80211_inform_bss *drv_data; + enum cfg80211_bss_frame_type ftype; + struct ieee80211_channel *channel; + u8 bssid[6]; + u64 tsf; + u16 capability; + u16 beacon_interval; + const u8 *ie; + size_t ielen; + enum { + BSS_SOURCE_DIRECT = 0, + BSS_SOURCE_MBSSID = 1, + BSS_SOURCE_STA_PROFILE = 2, + } bss_source; + struct cfg80211_bss *source_bss; + u8 max_bssid_indicator; + u8 bssid_index; }; -struct crypto_larval { - struct crypto_alg alg; - struct crypto_alg *adult; - struct completion completion; - u32 mask; - bool test_started; +enum bss_compare_mode { + BSS_CMP_REGULAR = 0, + BSS_CMP_HIDE_ZLEN = 1, + BSS_CMP_HIDE_NUL = 2, }; -struct crypto_attr_type { - u32 type; - u32 mask; +struct cfg80211_colocated_ap { + struct list_head list; + u8 bssid[6]; + u8 ssid[32]; + size_t ssid_len; + u32 short_ssid; + u32 center_freq; + u8 unsolicited_probe: 1; + u8 oct_recommended: 1; + u8 same_ssid: 1; + u8 multi_bss: 1; + u8 transmitted_bssid: 1; + u8 colocated_ess: 1; + u8 short_ssid_valid: 1; + s8 psd_20; }; -struct crypto_attr_alg { - char name[128]; +struct ieee80211_neighbor_ap_info { + u8 tbtt_info_hdr; + u8 tbtt_info_len; + u8 op_class; + u8 channel; }; -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 ieee80211_rnr_mld_params { + u8 mld_id; + __le16 params; +} __attribute__((packed)); -struct disk_events { - struct list_head node; - struct gendisk *disk; - spinlock_t lock; - struct mutex block_mutex; - int block; - unsigned int pending; - unsigned int clearing; - long poll_msecs; - struct delayed_work dwork; -}; +struct ieee80211_tbtt_info_ge_11 { + u8 tbtt_offset; + u8 bssid[6]; + __le32 short_ssid; + u8 bss_params; + s8 psd_20; + struct ieee80211_rnr_mld_params mld_params; +} __attribute__((packed)); -enum { - IO_SQ_THREAD_SHOULD_STOP = 0, - IO_SQ_THREAD_SHOULD_PARK = 1, +struct ieee80211_tbtt_info_7_8_9 { + u8 tbtt_offset; + u8 bssid[6]; + u8 bss_params; + s8 psd_20; }; -typedef uint64_t vli_type; - -struct xz_dec_hash { - vli_type unpadded; - vli_type uncompressed; - uint32_t crc32; +struct cfg80211_mle { + struct ieee80211_multi_link_elem *mle; + struct ieee80211_mle_per_sta_profile *sta_prof[15]; + ssize_t sta_prof_len[15]; + u8 data[0]; }; -enum xz_check { - XZ_CHECK_NONE = 0, - XZ_CHECK_CRC32 = 1, - XZ_CHECK_CRC64 = 4, - XZ_CHECK_SHA256 = 10, +struct ieee80211_ext { + __le16 frame_control; + __le16 duration; + union { + struct { + u8 sa[6]; + __le32 timestamp; + u8 change_seq; + u8 variable[0]; + } __attribute__((packed)) s1g_beacon; + struct { + u8 sa[6]; + __le32 timestamp; + u8 change_seq; + u8 next_tbtt[3]; + u8 variable[0]; + } __attribute__((packed)) s1g_short_beacon; + } u; }; -struct xz_dec_lzma2; - -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 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 mpi_ec_ctx; - -struct field_table { - const char *p; - void (*addm)(MPI, MPI, MPI, struct mpi_ec_ctx *); - void (*subm)(MPI, MPI, MPI, struct mpi_ec_ctx *); - void (*mulm)(MPI, MPI, MPI, struct mpi_ec_ctx *); - void (*mul2)(MPI, MPI, struct mpi_ec_ctx *); - void (*pow2)(MPI, const MPI, struct mpi_ec_ctx *); +enum 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, }; -struct barrett_ctx_s; - -typedef struct barrett_ctx_s *mpi_barrett_t; +struct xdp_umem_ring { + struct xdp_ring ptrs; + u64 desc[0]; +}; -enum gcry_mpi_ec_models { - MPI_EC_WEIERSTRASS = 0, - MPI_EC_MONTGOMERY = 1, - MPI_EC_EDWARDS = 2, +struct xdp_rxtx_ring { + struct xdp_ring ptrs; + struct xdp_desc desc[0]; }; -enum ecc_dialects { - ECC_DIALECT_STANDARD = 0, - ECC_DIALECT_ED25519 = 1, - ECC_DIALECT_SAFECURVE = 2, +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 gcry_mpi_point; +struct mce; -typedef struct gcry_mpi_point *MPI_POINT; +typedef void (*btf_trace_mce_record)(void *, struct mce *); -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 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 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 gcry_mpi_point { - MPI x; - MPI y; - MPI z; -}; +typedef unsigned long mce_banks_t[1]; -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 mce_bank { + u64 ctl; + __u64 init: 1; + __u64 lsb_in_status: 1; + __u64 __reserved_1: 62; }; -struct acpi_gpe_walk_info { - struct acpi_namespace_node *gpe_device; - struct acpi_gpe_block_info *gpe_block; - u16 count; - acpi_owner_id owner_id; - u8 execute_by_owner_id; +struct mce_vendor_flags { + __u64 overflow_recov: 1; + __u64 succor: 1; + __u64 smca: 1; + __u64 zen_ifu_quirk: 1; + __u64 amd_threshold: 1; + __u64 p5: 1; + __u64 winchip: 1; + __u64 snb_ifu_quirk: 1; + __u64 skx_repmov_quirk: 1; + __u64 __reserved_0: 55; }; -struct acpi_signal_fatal_info { - u32 type; - u32 code; - u32 argument; +struct mce_bank_dev { + struct device_attribute attr; + char attrname[16]; + u8 bank; }; -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, +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, }; -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; +enum mcp_flags { + MCP_TIMESTAMP = 1, + MCP_UC = 2, + MCP_DONTLOG = 4, + MCP_QUEUE_LOG = 8, }; -struct timer_rand_state { - unsigned long last_time; - long last_delta; - long last_delta2; +enum mca_msr { + MCA_CTL = 0, + MCA_STATUS = 1, + MCA_ADDR = 2, + MCA_MISC = 3, }; -enum { - CRNG_EMPTY = 0, - CRNG_EARLY = 1, - CRNG_READY = 2, +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, }; -struct batch_u8 { - u8 entropy[96]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +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 batch_u16 { - u16 entropy[48]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +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 batch_u32 { - u32 entropy[24]; - local_lock_t lock; - unsigned long generation; - unsigned int position; +struct mce_evt_llist { + struct llist_node llnode; + struct mce mce; }; -struct batch_u64 { - u64 entropy[12]; - local_lock_t lock; - unsigned long generation; - unsigned int position; -}; +struct trace_event_data_offsets_mce_record {}; -struct crng { - u8 key[32]; - unsigned long generation; - local_lock_t lock; +struct mpc_ioapic { + unsigned char type; + unsigned char apicid; + unsigned char apicver; + unsigned char flags; + unsigned int apicaddr; }; -struct blake2s_state { - u32 h[8]; - u32 t[2]; - u32 f[2]; - u8 buf[64]; - unsigned int buflen; - unsigned int outlen; +struct mp_ioapic_gsi { + u32 gsi_base; + u32 gsi_end; }; -struct fast_pool { - unsigned long pool[4]; - unsigned long last; - unsigned int count; - struct timer_list mix; -}; +struct IO_APIC_route_entry; -enum { - NUM_TRIAL_SAMPLES = 8192, - MAX_SAMPLES_PER_BIT = 66, +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; }; -enum { - MIX_INFLIGHT = 2147483648, +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; + }; + }; }; -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, +struct irq_pin_list { + struct list_head list; + int apic; + int pin; }; -enum blake2s_iv { - BLAKE2S_IV0 = 1779033703, - BLAKE2S_IV1 = 3144134277, - BLAKE2S_IV2 = 1013904242, - BLAKE2S_IV3 = 2773480762, - BLAKE2S_IV4 = 1359893119, - BLAKE2S_IV5 = 2600822924, - BLAKE2S_IV6 = 528734635, - BLAKE2S_IV7 = 1541459225, +struct io_apic { + unsigned int index; + unsigned int unused[3]; + unsigned int data; + unsigned int unused2[11]; + unsigned int eoi; }; -enum chacha_constants { - CHACHA_CONSTANT_EXPA = 1634760805, - CHACHA_CONSTANT_ND_3 = 857760878, - CHACHA_CONSTANT_2_BY = 2036477234, - CHACHA_CONSTANT_TE_K = 1797285236, +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; }; -enum { - POOL_BITS = 256, - POOL_READY_BITS = 256, - POOL_EARLY_BITS = 128, +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; }; -enum { - CRNG_RESEED_START_INTERVAL = 1000, - CRNG_RESEED_INTERVAL = 60000, +union IO_APIC_reg_02 { + u32 raw; + struct { + u32 __reserved_2: 24; + u32 arbitration: 4; + u32 __reserved_1: 4; + } bits; }; -struct entropy_timer_state { - unsigned long entropy; - struct timer_list timer; - atomic_t samples; - unsigned int samples_per_bit; +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; }; -struct drm_mode_rmfb_work { - struct work_struct work; - struct list_head fbs; +union IO_APIC_reg_03 { + u32 raw; + struct { + u32 boot_DT: 1; + u32 __reserved_1: 31; + } bits; }; -struct drm_mode_fb_dirty_cmd { - __u32 fb_id; - __u32 flags; - __u32 color; - __u32 num_clips; - __u64 clips_ptr; +struct snapshot_handle { + unsigned int cur; + void *buffer; + int sync_read; }; -struct ewma_psr_time { - unsigned long internal; +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 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 { + GP_IDLE = 0, + GP_ENTER = 1, + GP_PASSED = 2, + GP_EXIT = 3, + GP_REPLAY = 4, }; -struct legacy_ring { - struct intel_gt *gt; - u8 class; - u8 instance; +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 drm_i915_gem_wait { - __u32 bo_handle; - __u32 flags; - __s64 timeout_ns; +struct rcu_synchronize { + struct callback_head head; + struct completion completion; }; -struct uc_fw_platform_requirement; - -struct fw_blobs_by_type { - const struct uc_fw_platform_requirement *blobs; - u32 count; -}; +typedef void (*btf_trace_timer_init)(void *, struct timer_list *); -struct uc_fw_blob { - const char *path; - bool legacy; - u8 major; - u8 minor; - u8 patch; - bool has_gsc_headers; -} __attribute__((packed)); +typedef void (*btf_trace_timer_start)(void *, struct timer_list *, unsigned long, unsigned int); -struct uc_fw_platform_requirement { - enum intel_platform p; - u8 rev; - const struct uc_fw_blob blob; -} __attribute__((packed)); +typedef void (*btf_trace_timer_expire_entry)(void *, struct timer_list *, unsigned long); -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); -}; +typedef void (*btf_trace_timer_expire_exit)(void *, struct timer_list *); -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; -}; +typedef void (*btf_trace_timer_cancel)(void *, struct timer_list *); -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; -}; +typedef void (*btf_trace_hrtimer_init)(void *, struct hrtimer *, clockid_t, enum hrtimer_mode); -struct sil164_priv { - bool quiet; -}; +typedef void (*btf_trace_hrtimer_start)(void *, struct hrtimer *, enum hrtimer_mode); -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, -}; +typedef void (*btf_trace_hrtimer_expire_entry)(void *, struct hrtimer *, ktime_t *); -typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *); +typedef void (*btf_trace_hrtimer_expire_exit)(void *, struct hrtimer *); -typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int); +typedef void (*btf_trace_hrtimer_cancel)(void *, struct hrtimer *); -typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *); +typedef void (*btf_trace_itimer_state)(void *, int, const struct itimerspec64 * const, unsigned long long); -typedef void (*btf_trace_scsi_dispatch_cmd_timeout)(void *, struct scsi_cmnd *); +typedef void (*btf_trace_itimer_expire)(void *, int, struct pid *, unsigned long long); -typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *); +typedef void (*btf_trace_tick_stop)(void *, int, int); -enum scsi_vpd_parameters { - SCSI_VPD_HEADER_SIZE = 4, +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_scsi_dispatch_cmd_start { +struct trace_event_raw_timer_class { 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; + void *timer; char __data[0]; }; -struct trace_event_raw_scsi_dispatch_cmd_error { +struct trace_event_raw_timer_start { 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; + void *timer; + void *function; + unsigned long expires; + unsigned long now; + unsigned int flags; char __data[0]; }; -struct trace_event_raw_scsi_cmd_done_timeout_template { +struct trace_event_raw_timer_expire_entry { struct trace_entry ent; - unsigned int host_no; - unsigned int channel; - unsigned int id; - unsigned int lun; - int result; - unsigned int opcode; - unsigned int cmd_len; - int driver_tag; - int scheduler_tag; - unsigned int data_sglen; - unsigned int prot_sglen; - unsigned char prot_op; - u32 __data_loc_cmnd; - u8 sense_key; - u8 asc; - u8 ascq; + void *timer; + unsigned long now; + void *function; + unsigned long baseclk; char __data[0]; }; -struct trace_event_raw_scsi_eh_wakeup { +struct trace_event_raw_hrtimer_init { struct trace_entry ent; - unsigned int host_no; + void *hrtimer; + clockid_t clockid; + enum hrtimer_mode mode; char __data[0]; }; -struct trace_event_data_offsets_scsi_dispatch_cmd_start { - u32 cmnd; +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_data_offsets_scsi_dispatch_cmd_error { - u32 cmnd; +struct trace_event_raw_hrtimer_expire_entry { + struct trace_entry ent; + void *hrtimer; + s64 now; + void *function; + char __data[0]; }; -struct trace_event_data_offsets_scsi_cmd_done_timeout_template { - u32 cmnd; +struct trace_event_raw_hrtimer_class { + struct trace_entry ent; + void *hrtimer; + char __data[0]; }; -struct trace_event_data_offsets_scsi_eh_wakeup {}; +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 mdiobus_devres { - struct mii_bus *mii; +struct trace_event_raw_itimer_expire { + struct trace_entry ent; + int which; + pid_t pid; + unsigned long long now; + char __data[0]; }; -struct usb_class { - struct kref kref; - struct class *class; +struct trace_event_raw_tick_stop { + struct trace_entry ent; + int success; + int dependency; + char __data[0]; }; -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, +struct process_timer { + struct timer_list timer; + struct task_struct *task; }; -struct uhci_td; +struct trace_event_data_offsets_timer_class {}; -struct uhci_qh; +struct trace_event_data_offsets_timer_start {}; -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 trace_event_data_offsets_timer_expire_entry {}; -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 trace_event_data_offsets_hrtimer_init {}; -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 trace_event_data_offsets_hrtimer_start {}; -struct urb_priv___3 { - struct list_head node; - struct urb *urb; - struct uhci_qh *qh; - struct list_head td_list; - unsigned int fsbr: 1; -}; +struct trace_event_data_offsets_hrtimer_expire_entry {}; -struct alps_protocol_info { - u16 version; - u8 byte0; - u8 mask0; - unsigned int flags; -}; +struct trace_event_data_offsets_hrtimer_class {}; -struct alps_model_info { - u8 signature[3]; - struct alps_protocol_info protocol_info; -}; +struct trace_event_data_offsets_itimer_state {}; -struct alps_nibble_commands { - int command; - unsigned char data; -}; +struct trace_event_data_offsets_itimer_expire {}; -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, -}; +struct trace_event_data_offsets_tick_stop {}; -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, +enum { + Blktrace_setup = 1, + Blktrace_running = 2, + Blktrace_stopped = 3, }; -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; +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, }; -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; +enum blktrace_notify { + __BLK_TN_PROCESS = 0, + __BLK_TN_TIMESTAMP = 1, + __BLK_TN_MESSAGE = 2, + __BLK_TN_CGROUP = 256, }; -struct alps_bitmap_point { - int start_bit; - int num_bits; +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, }; -enum { - DM_TIO_INSIDE_DM_IO = 0, - DM_TIO_IS_DUPLICATE_BIO = 1, +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; }; -enum { - DM_IO_ACCOUNTED = 0, - DM_IO_WAS_SPLIT = 1, - DM_IO_BLK_STAT = 2, +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 table_device { - struct list_head list; - refcount_t count; - struct dm_dev dm_dev; -}; +struct compat_blk_user_trace_setup { + char name[32]; + u16 act_mask; + int: 0; + u32 buf_size; + u32 buf_nr; + compat_u64 start_lba; + compat_u64 end_lba; + u32 pid; +} __attribute__((packed)); -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 blk_io_trace_remap { + __be32 device_from; + __be32 device_to; + __be64 sector_from; }; -struct dm_pr { - u64 old_key; - u64 new_key; - u32 flags; - bool abort; - bool fail_early; - int ret; - enum pr_type type; - struct pr_keys *read_keys; - struct pr_held_reservation *rsv; -}; +typedef void blk_log_action_t(struct trace_iterator *, const char *, bool); -struct lg4ff_alternate_mode { - const u16 product_id; - const char *tag; - const char *name; +struct mmap_unlock_irq_work { + struct irq_work irq_work; + struct mm_struct *mm; }; -struct lg4ff_wheel_ident_info { - const u32 modes; - const u16 mask; - const u16 result; - const u16 real_product_id; +enum { + BPF_TASK_ITER_ALL_PROCS = 0, + BPF_TASK_ITER_ALL_THREADS = 1, + BPF_TASK_ITER_PROC_THREADS = 2, }; -struct lg4ff_compat_mode_switch { - const u8 cmd_count; - const u8 cmd[0]; +enum { + BTF_TRACING_TYPE_TASK = 0, + BTF_TRACING_TYPE_FILE = 1, + BTF_TRACING_TYPE_VMA = 2, + MAX_BTF_TRACING_TYPE = 3, }; -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); +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, }; -struct lg4ff_multimode_wheel { - const u16 product_id; - const u32 alternate_modes; - const char *real_tag; - const char *real_name; -}; +typedef u64 (*btf_bpf_find_vma)(struct task_struct *, u64, bpf_callback_t, void *, u64); -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 bpf_iter__task { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; }; -struct lg_drv_data { - unsigned long quirks; - void *device_props; +struct bpf_iter_seq_task_common { + struct pid_namespace *ns; + enum bpf_iter_task_type type; + u32 pid; + u32 pid_visiting; }; -struct lg4ff_device_entry { - spinlock_t report_lock; - struct hid_report *report; - struct lg4ff_wheel_data wdata; +struct bpf_iter__task_file { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; + u32 fd; + union { + struct file *file; + }; }; -struct snd_hrtimer { - struct snd_timer *timer; - struct hrtimer hrt; - bool in_callback; +struct bpf_iter_seq_task_file_info { + struct bpf_iter_seq_task_common common; + struct task_struct *task; + u32 tid; + u32 fd; }; -enum { - HDA_INPUT = 0, - HDA_OUTPUT = 1, +struct bpf_iter__task_vma { + union { + struct bpf_iter_meta *meta; + }; + union { + struct task_struct *task; + }; + union { + struct vm_area_struct *vma; + }; }; -enum { - HDA_DIG_NONE = 0, - HDA_DIG_EXCLUSIVE = 1, - HDA_DIG_ANALOG_DUP = 2, +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; }; -enum { - HDA_FRONT = 0, - HDA_REAR = 1, - HDA_CLFE = 2, - HDA_SIDE = 3, +struct bpf_iter_task_vma { + __u64 __opaque[1]; }; -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 bpf_iter_task_vma_kern_data; -struct hda_conn_list { - struct list_head list; - int len; - hda_nid_t nid; - hda_nid_t conns[0]; +struct bpf_iter_task_vma_kern { + struct bpf_iter_task_vma_kern_data *data; }; -struct hda_nid_item { - struct snd_kcontrol *kctl; - unsigned int index; - hda_nid_t nid; - unsigned short flags; +struct bpf_iter_task_vma_kern_data { + struct task_struct *task; + struct mm_struct *mm; + struct mmap_unlock_irq_work *work; + struct vma_iterator vmi; }; -struct hda_cvt_setup { - hda_nid_t nid; - u8 stream_tag; - u8 channel_id; - u16 format_id; - unsigned char active; - unsigned char dirty; +struct bpf_iter_css_task { + __u64 __opaque[1]; }; -typedef int (*map_follower_func_t)(struct hda_codec *, void *, struct snd_kcontrol *); +struct bpf_iter_css_task_kern { + struct css_task_iter *css_it; +}; -struct follower_init_arg { - struct hda_codec *codec; - int step; +struct bpf_iter_task { + __u64 __opaque[3]; }; -struct hda_vmaster_mute_hook { - struct snd_kcontrol *sw_kctl; - void (*hook)(void *, int); - struct hda_codec *codec; +struct bpf_iter_task_kern { + struct task_struct *task; + struct task_struct *pos; + unsigned int flags; }; -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 bpf_iter_seq_task_info { + struct bpf_iter_seq_task_common common; + u32 tid; }; -struct hda_amp_list; +struct cgroup_iter_priv { + struct cgroup_subsys_state *start_css; + bool visited_all; + bool terminate; + int order; +}; -struct hda_loopback_check { - const struct hda_amp_list *amplist; - int power_on; +struct bpf_iter__cgroup { + union { + struct bpf_iter_meta *meta; + }; + union { + struct cgroup *cgroup; + }; }; -struct hda_amp_list { - hda_nid_t nid; - unsigned char dir; - unsigned char idx; +struct bpf_iter_css { + __u64 __opaque[3]; }; -struct hda_input_mux_item { - char label[32]; - unsigned int index; +struct bpf_iter_css_kern { + struct cgroup_subsys_state *start; + struct cgroup_subsys_state *pos; + unsigned int flags; }; -struct hda_input_mux { - unsigned int num_items; - struct hda_input_mux_item items[36]; +struct vm_event_state { + unsigned long event[77]; }; -enum { - ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0, - ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1, - ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2, +struct contig_page_info { + unsigned long free_pages; + unsigned long free_blocks_total; + unsigned long free_blocks_suitable; }; -enum { - ETHTOOL_A_RINGS_UNSPEC = 0, - ETHTOOL_A_RINGS_HEADER = 1, - ETHTOOL_A_RINGS_RX_MAX = 2, - ETHTOOL_A_RINGS_RX_MINI_MAX = 3, - ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4, - ETHTOOL_A_RINGS_TX_MAX = 5, - ETHTOOL_A_RINGS_RX = 6, - ETHTOOL_A_RINGS_RX_MINI = 7, - ETHTOOL_A_RINGS_RX_JUMBO = 8, - ETHTOOL_A_RINGS_TX = 9, - ETHTOOL_A_RINGS_RX_BUF_LEN = 10, - ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11, - ETHTOOL_A_RINGS_CQE_SIZE = 12, - ETHTOOL_A_RINGS_TX_PUSH = 13, - ETHTOOL_A_RINGS_RX_PUSH = 14, - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15, - ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16, - __ETHTOOL_A_RINGS_CNT = 17, - ETHTOOL_A_RINGS_MAX = 16, +struct memblock { + bool bottom_up; + phys_addr_t current_limit; + struct memblock_type memory; + struct memblock_type reserved; }; -enum ethtool_supported_ring_param { - ETHTOOL_RING_USE_RX_BUF_LEN = 1, - ETHTOOL_RING_USE_CQE_SIZE = 2, - ETHTOOL_RING_USE_TX_PUSH = 4, - ETHTOOL_RING_USE_RX_PUSH = 8, - ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16, +typedef s32 compat_off_t; + +struct open_flags { + int open_flag; + umode_t mode; + int acc_mode; + int intent; + int lookup_flags; }; -struct rings_reply_data { - struct ethnl_reply_data base; - struct ethtool_ringparam ringparam; - struct kernel_ethtool_ringparam kernel_ringparam; - u32 supported_ring_params; +struct simple_xattr { + struct rb_node rb_node; + char *name; + size_t size; + char value[0]; }; -typedef unsigned int t_key; +struct epitem; -struct key_vector { - t_key key; - unsigned char pos; - unsigned char bits; - unsigned char slen; +struct eventpoll { + struct mutex mtx; + wait_queue_head_t wq; + wait_queue_head_t poll_wait; + struct list_head rdllist; + rwlock_t lock; + struct rb_root_cached rbr; + struct epitem *ovflist; + struct wakeup_source *ws; + struct user_struct *user; + struct file *file; + u64 gen; + struct hlist_head refs; + refcount_t refcount; + unsigned int napi_id; +}; + +struct epoll_filefd { + struct file *file; + int fd; +} __attribute__((packed)); + +struct eppoll_entry; + +struct epitem { union { - struct hlist_head leaf; - struct { - struct {} __empty_tnode; - struct key_vector __attribute__((btf_type_tag("rcu"))) *tnode[0]; - }; + struct rb_node rbn; + struct callback_head rcu; }; + struct list_head rdllink; + struct epitem *next; + struct epoll_filefd ffd; + bool dying; + struct eppoll_entry *pwqlist; + struct eventpoll *ep; + struct hlist_node fllink; + struct wakeup_source __attribute__((btf_type_tag("rcu"))) *ws; + struct epoll_event event; }; -struct trie { - struct key_vector kv[1]; +struct eppoll_entry { + struct eppoll_entry *next; + struct epitem *base; + wait_queue_entry_t wait; + wait_queue_head_t *whead; }; -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 epitems_head { + struct hlist_head epitems; + struct epitems_head *next; }; -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 ep_pqueue { + poll_table pt; + struct epitem *epi; }; -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]; +typedef struct { + __le32 a_version; +} ext4_acl_header; + +typedef struct { + __le16 e_tag; + __le16 e_perm; + __le32 e_id; +} ext4_acl_entry; + +enum shrink_type { + SHRINK_DESTROY = 0, + SHRINK_BUSY_STOP = 1, + SHRINK_BUSY_SKIP = 2, }; -struct fib_trie_iter { - struct seq_net_private p; - struct fib_table *tb; - struct key_vector *tnode; - unsigned int index; - unsigned int depth; +enum nfs3_createmode { + NFS3_CREATE_UNCHECKED = 0, + NFS3_CREATE_GUARDED = 1, + NFS3_CREATE_EXCLUSIVE = 2, }; -struct fib_route_iter { - struct seq_net_private p; - struct fib_table *main_tb; - struct key_vector *tnode; - loff_t pos; - t_key key; +enum nfs3_ftype { + NF3NON = 0, + NF3REG = 1, + NF3DIR = 2, + NF3BLK = 3, + NF3CHR = 4, + NF3LNK = 5, + NF3SOCK = 6, + NF3FIFO = 7, + NF3BAD = 8, }; -struct rpc_cred_cache { - struct hlist_head *hashtable; - unsigned int hashbits; - spinlock_t lock; +struct nfs3_createargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + struct iattr *sattr; + enum nfs3_createmode createmode; + __be32 verifier[2]; }; -struct michael_mic_ctx { - u32 l; - u32 r; +struct nfs3_mkdirargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + struct iattr *sattr; }; -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, +struct nfs3_symlinkargs { + struct nfs_fh *fromfh; + const char *fromname; + unsigned int fromlen; + struct page **pages; + unsigned int pathlen; + struct iattr *sattr; }; -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 nfs3_mknodargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + enum nfs3_ftype type; + struct iattr *sattr; + dev_t rdev; }; -struct netlbl_cipsov4_doiwalk_arg { - struct netlink_callback *nl_cb; - struct sk_buff *skb; - u32 seq; +struct nfs3_diropres { + struct nfs_fattr *dir_attr; + struct nfs_fh *fh; + struct nfs_fattr *fattr; }; -struct irq_info { - u8 bus; - u8 devfn; - struct { - u8 link; - u16 bitmap; - } __attribute__((packed)) irq[4]; - u8 slot; - u8 rfu; +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; }; -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 slots[0]; +struct nfs3_sattrargs { + struct nfs_fh *fh; + struct iattr *sattr; + unsigned int guard; + struct timespec64 guardtime; }; -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 nfs3_accessargs { + struct nfs_fh *fh; + __u32 access; }; -struct irq_router_handler { - u16 vendor; - int (*probe)(struct irq_router *, struct pci_dev *, u16); +struct nfs3_accessres { + struct nfs_fattr *fattr; + __u32 access; }; -struct irt_routing_table { - u32 signature; - u8 size; - u8 used; - u16 exclusive_irqs; - struct irq_info slots[0]; +struct nfs3_readlinkargs { + struct nfs_fh *fh; + unsigned int pgbase; + unsigned int pglen; + struct page **pages; }; -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 nfs3_linkargs { + struct nfs_fh *fromfh; + struct nfs_fh *tofh; + const char *toname; + unsigned int tolen; }; -struct mcs_spinlock { - struct mcs_spinlock *next; - int locked; - int count; +struct nfs3_linkres { + struct nfs_fattr *dir_attr; + struct nfs_fattr *fattr; }; -struct qnode { - struct mcs_spinlock mcs; +struct nfs3_diropargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; }; -struct pm_vt_switch { - struct list_head head; - struct device *dev; - bool required; +struct nfs3_readdirargs { + struct nfs_fh *fh; + __u64 cookie; + __be32 verf[2]; + bool plus; + unsigned int count; + struct page **pages; }; -struct vdso_timestamp { - u64 sec; - u64 nsec; +struct nfs3_readdirres { + struct nfs_fattr *dir_attr; + __be32 *verf; + bool plus; }; -struct timens_offset { - s64 sec; - u64 nsec; +struct nlmsvc_binding { + __be32 (*fopen)(struct svc_rqst *, struct nfs_fh *, struct file **, int); + void (*fclose)(struct file *); }; -struct arch_vdso_data {}; +struct autofs_packet_missing { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[256]; +}; -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 autofs_packet_expire_multi { + struct autofs_packet_hdr hdr; + autofs_wqt_t wait_queue_token; + int len; + char name[256]; }; -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; +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 timekeeper { - struct tk_read_base tkr_mono; - struct tk_read_base tkr_raw; - u64 xtime_sec; - unsigned long ktime_sec; - struct timespec64 wall_to_monotonic; - ktime_t offs_real; - ktime_t offs_boot; - ktime_t offs_tai; - s32 tai_offset; - unsigned int clock_was_set_seq; - u8 cs_was_changed_seq; - ktime_t next_leap_ktime; - u64 raw_sec; - struct timespec64 monotonic_to_boot; - u64 cycle_interval; - u64 xtime_interval; - s64 xtime_remainder; - u64 raw_interval; - u64 ntp_tick; - s64 ntp_error; - u32 ntp_error_shift; - u32 ntp_err_mult; - u32 skip_second_overflow; +struct 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]; }; -struct audit_parent { - struct list_head watches; - struct fsnotify_mark mark; +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 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; +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 *, const struct file *); + int (*ptrace_access_check)(struct task_struct *, unsigned int); + int (*ptrace_traceme)(struct task_struct *); + int (*capget)(const 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, const 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 *, const struct file *); + int (*bprm_check_security)(struct linux_binprm *); + void (*bprm_committing_creds)(const struct linux_binprm *); + void (*bprm_committed_creds)(const struct linux_binprm *); + int (*fs_context_submount)(struct fs_context *, struct super_block *); + 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)(const 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 *, struct xattr *, int *); + 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)(const 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 (*mptcp_add_subflow)(struct sock *, struct sock *); + 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 *); }; -typedef void (*btf_trace_bpf_trace_printk)(void *, const char *); +struct security_hook_list { + struct hlist_node list; + struct hlist_head *head; + union security_list_options hook; + const char *lsm; +}; -struct bpf_nested_pt_regs { - struct pt_regs regs[3]; +struct vfs_cap_data { + __le32 magic_etc; + struct { + __le32 permitted; + __le32 inheritable; + } data[2]; }; -struct bpf_trace_sample_data { - struct perf_sample_data sds[3]; +struct vfs_ns_cap_data { + __le32 magic_etc; + struct { + __le32 permitted; + __le32 inheritable; + } data[2]; + __le32 rootid; }; -struct send_signal_irq_work { - struct irq_work irq_work; - struct task_struct *task; - u32 sig; - enum pid_type type; +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 bpf_raw_tp_regs { - struct pt_regs regs[3]; +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]; }; -enum { - BPF_F_GET_BRANCH_RECORDS_SIZE = 1, +struct comp_alg_common { + struct crypto_alg base; }; -typedef u64 (*btf_bpf_override_return)(struct pt_regs *, unsigned long); +struct acomp_alg { + int (*compress)(struct acomp_req *); + int (*decompress)(struct acomp_req *); + void (*dst_free)(struct scatterlist *); + int (*init)(struct crypto_acomp *); + void (*exit)(struct crypto_acomp *); + unsigned int reqsize; + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; +}; -typedef u64 (*btf_bpf_probe_read_user)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); +struct crypto_istat_compress { + atomic64_t compress_cnt; + atomic64_t compress_tlen; + atomic64_t decompress_cnt; + atomic64_t decompress_tlen; + atomic64_t err_cnt; +}; -typedef u64 (*btf_bpf_probe_read_user_str)(void *, u32, const void __attribute__((btf_type_tag("user"))) *); +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 u64 (*btf_bpf_probe_read_kernel)(void *, u32, const void *); +struct blk_queue_stats { + struct list_head callbacks; + spinlock_t lock; + int accounting; +}; -typedef u64 (*btf_bpf_probe_read_kernel_str)(void *, u32, const void *); +typedef void io_wq_work_fn(struct io_wq_work *); -typedef u64 (*btf_bpf_probe_read_compat)(void *, u32, const void *); +typedef struct io_wq_work *free_work_fn(struct io_wq_work *); -typedef u64 (*btf_bpf_probe_read_compat_str)(void *, u32, const void *); +struct io_wq_data { + struct io_wq_hash *hash; + struct task_struct *task; + io_wq_work_fn *do_work; + free_work_fn *free_work; +}; -typedef u64 (*btf_bpf_probe_write_user)(void __attribute__((btf_type_tag("user"))) *, const void *, u32); +struct io_uring_rsrc_update { + __u32 offset; + __u32 resv; + __u64 data; +}; -typedef u64 (*btf_bpf_trace_printk)(char *, u32, u64, u64, u64); +struct pci_dynid { + struct list_head node; + struct pci_device_id id; +}; -typedef u64 (*btf_bpf_trace_vprintk)(char *, u32, const void *, u32); +struct drv_dev_and_id { + struct pci_driver *drv; + struct pci_dev *dev; + const struct pci_device_id *id; +}; -typedef u64 (*btf_bpf_seq_printf)(struct seq_file *, char *, u32, const void *, u32); +struct acpi_dev_match_info { + struct acpi_device_id hid[2]; + const char *uid; + s64 hrv; +}; -typedef u64 (*btf_bpf_seq_write)(struct seq_file *, const void *, u32); +struct acpi_fadt_info { + const char *name; + u16 address64; + u16 address32; + u16 length; + u8 default_length; + u8 flags; +}; -struct btf_ptr; +struct acpi_fadt_pm_info { + struct acpi_generic_address *target; + u16 source; + u8 register_num; +}; -typedef u64 (*btf_bpf_seq_printf_btf)(struct seq_file *, struct btf_ptr *, u32, u64); +struct vc_selection { + struct mutex lock; + struct vc_data *cons; + char *buffer; + unsigned int buf_len; + volatile int start; + int end; +}; -struct btf_ptr { - void *ptr; - __u32 type_id; - __u32 flags; +struct tiocl_selection { + unsigned short xs; + unsigned short ys; + unsigned short xe; + unsigned short ye; + unsigned short sel_mode; }; -typedef u64 (*btf_bpf_perf_event_read)(struct bpf_map *, u64); +struct mid8250; -struct bpf_perf_event_value; +struct mid8250_board { + unsigned long freq; + unsigned int base_baud; + unsigned int bar; + int (*setup)(struct mid8250 *, struct uart_port *); + void (*exit)(struct mid8250 *); +}; -typedef u64 (*btf_bpf_perf_event_read_value)(struct bpf_map *, u64, struct bpf_perf_event_value *, u32); +struct hsu_dma; -struct bpf_perf_event_value { - __u64 counter; - __u64 enabled; - __u64 running; +struct hsu_dma_chip { + struct device *dev; + int irq; + void *regs; + unsigned int length; + unsigned int offset; + struct hsu_dma *hsu; }; -typedef u64 (*btf_bpf_perf_event_output)(struct pt_regs *, struct bpf_map *, u64, void *, u64); +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; +}; -typedef u64 (*btf_bpf_get_current_task)(); +struct hsu_dma_slave { + struct device *dma_dev; + int chan_id; +}; -typedef u64 (*btf_bpf_get_current_task_btf)(); +struct intel_agp_driver_description { + unsigned int chip_id; + char *name; + const struct agp_bridge_driver *driver; +}; -typedef u64 (*btf_bpf_task_pt_regs)(struct task_struct *); +struct aper_size_info_16 { + int size; + int num_entries; + int page_order; + u16 size_value; +}; -typedef u64 (*btf_bpf_current_task_under_cgroup)(struct bpf_map *, u32); +struct aper_size_info_8 { + int size; + int num_entries; + int page_order; + u8 size_value; +}; -typedef u64 (*btf_bpf_send_signal)(u32); +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; +}; -typedef u64 (*btf_bpf_send_signal_thread)(u32); +struct drm_dp_nak_reply { + u8 guid[16]; + u8 reason; + u8 nak_data; +}; -typedef u64 (*btf_bpf_d_path)(struct path *, char *, u32); +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; +}; -typedef u64 (*btf_bpf_snprintf_btf)(char *, u32, struct btf_ptr *, u32, u64); +struct drm_dp_link_address_ack_reply { + u8 guid[16]; + u8 nports; + struct drm_dp_link_addr_reply_port ports[16]; +}; -typedef u64 (*btf_bpf_get_func_ip_tracing)(void *); +struct drm_dp_port_number_rep { + u8 port_number; +}; -typedef u64 (*btf_bpf_get_func_ip_kprobe)(struct pt_regs *); +struct drm_dp_enum_path_resources_ack_reply { + u8 port_number; + bool fec_capable; + u16 full_payload_bw_number; + u16 avail_payload_bw_number; +}; -typedef u64 (*btf_bpf_get_func_ip_kprobe_multi)(struct pt_regs *); +struct drm_dp_allocate_payload_ack_reply { + u8 port_number; + u8 vcpi; + u16 allocated_pbn; +}; -typedef u64 (*btf_bpf_get_attach_cookie_kprobe_multi)(struct pt_regs *); +struct drm_dp_query_payload_ack_reply { + u8 port_number; + u16 allocated_pbn; +}; -typedef u64 (*btf_bpf_get_attach_cookie_trace)(void *); +struct drm_dp_remote_dpcd_read_ack_reply { + u8 port_number; + u8 num_bytes; + u8 bytes[255]; +}; -typedef u64 (*btf_bpf_get_attach_cookie_pe)(struct bpf_perf_event_data_kern *); +struct drm_dp_remote_dpcd_write_ack_reply { + u8 port_number; +}; -typedef u64 (*btf_bpf_get_attach_cookie_tracing)(void *); +struct drm_dp_remote_dpcd_write_nak_reply { + u8 port_number; + u8 reason; + u8 bytes_written_before_failure; +}; -typedef u64 (*btf_bpf_get_branch_snapshot)(void *, u32, u64); +struct drm_dp_remote_i2c_read_ack_reply { + u8 port_number; + u8 num_bytes; + u8 bytes[255]; +}; -typedef u64 (*btf_get_func_arg)(void *, u32, u64 *); +struct drm_dp_remote_i2c_read_nak_reply { + u8 port_number; + u8 nak_reason; + u8 i2c_nak_transaction; +}; -typedef u64 (*btf_get_func_ret)(void *, u64 *); +struct drm_dp_remote_i2c_write_ack_reply { + u8 port_number; +}; -typedef u64 (*btf_get_func_arg_cnt)(void *); +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; +}; -typedef u64 (*btf_bpf_perf_event_output_tp)(void *, struct bpf_map *, u64, void *, u64); +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; +}; -typedef u64 (*btf_bpf_get_stackid_tp)(void *, struct bpf_map *, u64); +struct drm_dp_sideband_msg_reply_body { + u8 reply_type; + u8 req_type; + union ack_replies u; +}; -typedef u64 (*btf_bpf_get_stack_tp)(void *, void *, u32, u64); +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; +}; -typedef u64 (*btf_bpf_perf_prog_read_value)(struct bpf_perf_event_data_kern *, struct bpf_perf_event_value *, u32); +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; +}; -typedef u64 (*btf_bpf_read_branch_records)(struct bpf_perf_event_data_kern *, void *, u32, u64); +struct drm_dp_port_number_req { + u8 port_number; +}; -typedef u64 (*btf_bpf_perf_event_output_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64, void *, u64); +struct drm_dp_resource_status_notify { + u8 port_number; + u8 guid[16]; + u16 available_pbn; +}; -typedef u64 (*btf_bpf_get_stackid_raw_tp)(struct bpf_raw_tracepoint_args *, struct bpf_map *, u64); +struct drm_dp_query_payload { + u8 port_number; + u8 vcpi; +}; -typedef u64 (*btf_bpf_get_stack_raw_tp)(struct bpf_raw_tracepoint_args *, void *, u32, u64); +struct drm_dp_allocate_payload { + u8 port_number; + u8 number_sdp_streams; + u8 vcpi; + u16 pbn; + u8 sdp_stream_sink[16]; +}; -struct trace_event_raw_bpf_trace_printk { - struct trace_entry ent; - u32 __data_loc_bpf_string; - char __data[0]; +struct drm_dp_remote_dpcd_read { + u8 port_number; + u32 dpcd_address; + u8 num_bytes; }; -struct bpf_kprobe_multi_link; +struct drm_dp_remote_dpcd_write { + u8 port_number; + u32 dpcd_address; + u8 num_bytes; + u8 *bytes; +}; -struct bpf_kprobe_multi_run_ctx { - struct bpf_run_ctx run_ctx; - struct bpf_kprobe_multi_link *link; - unsigned long entry_ip; +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 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 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 bpf_trace_module { - struct module *module; - struct list_head list; +struct drm_dp_remote_i2c_write { + u8 port_number; + u8 write_i2c_device_id; + u8 num_bytes; + u8 *bytes; }; -struct trace_event_data_offsets_bpf_trace_printk { - u32 bpf_string; +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; }; -struct user_syms { - const char **syms; - char *buf; +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 modules_array { - struct module **mods; - int mods_cnt; - int mods_cap; +struct drm_dp_sideband_msg_req_body { + u8 req_type; + union ack_req u; }; -struct bpf_key { - struct key *key; - bool has_ref; +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; }; -struct perf_event_query_bpf { - __u32 ids_len; - __u32 prog_cnt; - __u32 ids[0]; +struct dram_dimm_info { + u16 size; + u8 width; + u8 ranks; }; -struct multi_symbols_sort { - const char **funcs; - u64 *cookies; +struct dram_channel_info { + struct dram_dimm_info dimm_l; + struct dram_dimm_info dimm_s; + u8 ranks; + bool is_16gb_dimm; }; -struct copy_subpage_arg { - struct page *dst; - struct page *src; - struct vm_area_struct *vma; +struct insert_entries { + struct i915_address_space *vm; + struct i915_vma_resource *vma_res; + unsigned int pat_index; + u32 flags; }; -typedef void (*btf_trace_writeback_dirty_folio)(void *, struct folio *, struct address_space *); +struct insert_page { + struct i915_address_space *vm; + dma_addr_t addr; + u64 offset; + unsigned int pat_index; +}; -typedef void (*btf_trace_folio_wait_writeback)(void *, struct folio *, struct address_space *); +struct drm_i915_gem_wait { + __u32 bo_handle; + __u32 flags; + __s64 timeout_ns; +}; -typedef void (*btf_trace_writeback_mark_inode_dirty)(void *, struct inode *, int); +enum intel_guc_recv_message { + INTEL_GUC_RECV_MSG_CRASH_DUMP_POSTED = 2, + INTEL_GUC_RECV_MSG_EXCEPTION = 1073741824, +}; -typedef void (*btf_trace_writeback_dirty_inode_start)(void *, struct inode *, int); +enum { + GUC_LOG_SECTIONS_CRASH = 0, + GUC_LOG_SECTIONS_DEBUG = 1, + GUC_LOG_SECTIONS_CAPTURE = 2, + GUC_LOG_SECTIONS_LIMIT = 3, +}; -typedef void (*btf_trace_writeback_dirty_inode)(void *, struct inode *, int); +struct drm_i915_get_pipe_from_crtc_id { + __u32 crtc_id; + __u32 pipe; +}; -typedef void (*btf_trace_writeback_write_inode_start)(void *, struct inode *, struct writeback_control *); +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, +}; -typedef void (*btf_trace_writeback_write_inode)(void *, struct inode *, struct writeback_control *); +struct gmbus_pin { + const char *name; + enum gmbus_gpio gpio; +}; -struct wb_writeback_work; +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; +}; -typedef void (*btf_trace_writeback_queue)(void *, struct bdi_writeback *, struct wb_writeback_work *); +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 wb_completion; +struct device_attach_data { + struct device *dev; + bool check_async; + bool want_async; + bool have_async; +}; -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 phy_fixup { struct list_head list; - struct wb_completion *done; + char bus_id[64]; + u32 phy_uid; + u32 phy_uid_mask; + int (*run)(struct phy_device *); }; -struct wb_completion { - atomic_t cnt; - wait_queue_head_t *waitq; -}; +struct sfp_eeprom_id; -typedef void (*btf_trace_writeback_exec)(void *, struct bdi_writeback *, struct wb_writeback_work *); +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 *); +}; -typedef void (*btf_trace_writeback_start)(void *, struct bdi_writeback *, struct wb_writeback_work *); +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; + } 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; + } active; + }; + u8 reserved62; + u8 cc_base; +}; -typedef void (*btf_trace_writeback_written)(void *, struct bdi_writeback *, struct wb_writeback_work *); +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; +}; -typedef void (*btf_trace_writeback_wait)(void *, struct bdi_writeback *, struct wb_writeback_work *); +struct sfp_eeprom_id { + struct sfp_eeprom_base base; + struct sfp_eeprom_ext ext; +}; -typedef void (*btf_trace_writeback_pages_written)(void *, long); +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; +}; -typedef void (*btf_trace_writeback_wake_background)(void *, struct bdi_writeback *); +struct lifebook_data { + struct input_dev *dev2; + char phys[32]; +}; -typedef void (*btf_trace_writeback_bdi_register)(void *, struct backing_dev_info *); +struct itco_wdt_platform_data { + char name[32]; + unsigned int version; + bool no_reboot_use_pmc; +}; -typedef void (*btf_trace_wbc_writepage)(void *, struct writeback_control *, struct backing_dev_info *); +struct dmi_onboard_device_info { + const char *name; + u8 type; + unsigned short i2c_addr; + const char *i2c_type; +}; -typedef void (*btf_trace_writeback_queue_io)(void *, struct bdi_writeback *, struct wb_writeback_work *, unsigned long, int); +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; +}; -typedef void (*btf_trace_global_dirty_state)(void *, unsigned long, unsigned long); +struct userspace_policy { + unsigned int is_managed; + unsigned int setspeed; + struct mutex mutex; +}; -typedef void (*btf_trace_bdi_dirty_ratelimit)(void *, struct bdi_writeback *, unsigned long, unsigned long); +struct firmware_map_entry; -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); +struct memmap_attribute { + struct attribute attr; + ssize_t (*show)(struct firmware_map_entry *, char *); +}; -typedef void (*btf_trace_writeback_sb_inodes_requeue)(void *, struct inode *); +struct firmware_map_entry { + u64 start; + u64 end; + const char *type; + struct list_head list; + struct kobject kobj; +}; -typedef void (*btf_trace_writeback_single_inode_start)(void *, struct inode *, struct writeback_control *, unsigned long); +struct sixaxis_rumble { + u8 padding; + u8 right_duration; + u8 right_motor_on; + u8 left_duration; + u8 left_motor_force; +}; -typedef void (*btf_trace_writeback_single_inode)(void *, struct inode *, struct writeback_control *, unsigned long); +struct sixaxis_led { + u8 time_enabled; + u8 duty_length; + u8 enabled; + u8 duty_off; + u8 duty_on; +}; -typedef void (*btf_trace_writeback_lazytime)(void *, struct inode *); +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; +}; -typedef void (*btf_trace_writeback_lazytime_iput)(void *, struct inode *); +union sixaxis_output_report_01 { + struct sixaxis_output_report data; + u8 buf[36]; +}; -typedef void (*btf_trace_writeback_dirty_inode_enqueue)(void *, struct inode *); +enum sony_worker { + SONY_WORKER_STATE = 0, +}; -typedef void (*btf_trace_sb_mark_inode_writeback)(void *, struct inode *); +enum { + POWER_SUPPLY_SCOPE_UNKNOWN = 0, + POWER_SUPPLY_SCOPE_SYSTEM = 1, + POWER_SUPPLY_SCOPE_DEVICE = 2, +}; -typedef void (*btf_trace_sb_clear_inode_writeback)(void *, struct inode *); +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 trace_event_raw_writeback_folio_template { - struct trace_entry ent; - char name[32]; - ino_t ino; - unsigned long index; - char __data[0]; +struct motion_output_report_02 { + u8 type; + u8 zero; + u8 r; + u8 g; + u8 b; + u8 zero2; + u8 rumble; }; -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]; +enum { + AUTO_PIN_MIC = 0, + AUTO_PIN_LINE_IN = 1, + AUTO_PIN_CD = 2, + AUTO_PIN_AUX = 3, + AUTO_PIN_LAST = 4, }; -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]; +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, }; -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]; +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, }; -struct trace_event_raw_writeback_pages_written { - struct trace_entry ent; - long pages; - char __data[0]; +enum { + AC_JACK_LOC_EXTERNAL = 0, + AC_JACK_LOC_INTERNAL = 16, + AC_JACK_LOC_SEPARATE = 32, + AC_JACK_LOC_OTHER = 48, }; -struct trace_event_raw_writeback_class { - struct trace_entry ent; - char name[32]; - ino_t cgroup_ino; - char __data[0]; +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, }; -struct trace_event_raw_writeback_bdi_register { - struct trace_entry ent; - char name[32]; - char __data[0]; +enum { + HDA_FIXUP_INVALID = 0, + HDA_FIXUP_PINS = 1, + HDA_FIXUP_VERBS = 2, + HDA_FIXUP_FUNC = 3, + HDA_FIXUP_PINCTLS = 4, }; -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]; +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, }; -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 auto_out_pin { + hda_nid_t pin; + short seq; }; -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 snd_hda_pin_quirk { + unsigned int codec; + unsigned short subvendor; + const struct hda_pintbl *pins; + int value; }; -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 hda_model_fixup { + const int id; + const char *name; }; -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 netdev_queue_attribute { + struct attribute attr; + ssize_t (*show)(struct netdev_queue *, char *); + ssize_t (*store)(struct netdev_queue *, const char *, size_t); }; -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]; +typedef void (*btf_trace_bpf_test_finish)(void *, int *); + +struct bpf_test_timer { + enum { + NO_PREEMPT = 0, + NO_MIGRATE = 1, + } mode; + u32 i; + u64 time_start; + u64 time_spent; }; -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 bpf_fentry_test_t { + struct bpf_fentry_test_t *a; }; -struct trace_event_raw_writeback_inode_template { +struct trace_event_raw_bpf_test_finish { struct trace_entry ent; - dev_t dev; - ino_t ino; - unsigned long state; - __u16 mode; - unsigned long dirtied_when; + int err; 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 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 trace_event_data_offsets_writeback_work_class {}; +struct xdp_page_head { + struct xdp_buff orig_ctx; + struct xdp_buff ctx; + union { + struct { + struct {} __empty_frame; + struct xdp_frame frame[0]; + }; + struct { + struct {} __empty_data; + u8 data[0]; + }; + }; +}; -struct trace_event_data_offsets_writeback_pages_written {}; +struct trace_event_data_offsets_bpf_test_finish {}; -struct trace_event_data_offsets_writeback_class {}; +struct prog_test_member1 { + int a; +}; -struct trace_event_data_offsets_writeback_bdi_register {}; +struct prog_test_member { + struct prog_test_member1 m; + int c; +}; -struct trace_event_data_offsets_wbc_class {}; +struct prog_test_ref_kfunc { + int a; + int b; + struct prog_test_member memb; + struct prog_test_ref_kfunc *next; + refcount_t cnt; +}; -struct trace_event_data_offsets_writeback_queue_io {}; +struct bpf_raw_tp_test_run_info { + struct bpf_prog *prog; + void *ctx; + u32 retval; +}; -struct trace_event_data_offsets_global_dirty_state {}; +struct bpf_cg_run_ctx { + struct bpf_run_ctx run_ctx; + const struct bpf_prog_array_item *prog_item; + int retval; +}; -struct trace_event_data_offsets_bdi_dirty_ratelimit {}; +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 trace_event_data_offsets_balance_dirty_pages {}; +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 trace_event_data_offsets_writeback_sb_inodes_requeue {}; +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 trace_event_data_offsets_writeback_single_inode_template {}; +struct nf_nat_hook { + int (*parse_nat_setup)(struct nf_conn *, enum nf_nat_manip_type, const struct nlattr *); + void (*decode_session)(struct sk_buff *, struct flowi *); + unsigned int (*manip_pkt)(struct sk_buff *, struct nf_conn *, enum nf_nat_manip_type, enum ip_conntrack_dir); + void (*remove_nat_bysrc)(struct nf_conn *); +}; -struct trace_event_data_offsets_writeback_inode_template {}; +enum nf_dev_hooks { + NF_NETDEV_INGRESS = 0, + NF_NETDEV_EGRESS = 1, + NF_NETDEV_NUMHOOKS = 2, +}; -struct fd_data { - fmode_t mode; - unsigned int fd; +struct nf_hook_entries_rcu_head { + struct callback_head head; + void *allocation; }; -enum { - BLOCK_BITMAP = 0, - INODE_BITMAP = 1, - INODE_TABLE = 2, - GROUP_TABLE_COUNT = 3, +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 ext4_rcu_ptr { - struct callback_head rcu; - void *ptr; +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); }; -struct ext4_new_flex_group_data { - struct ext4_new_group_data *groups; - __u16 *bg_flags; - ext4_group_t count; +struct sdp_media_type { + const char *name; + unsigned int len; + enum sip_expectation_classes class; }; -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 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; }; -struct nfs_readdir_descriptor { - struct file *file; - struct folio *folio; - struct dir_context *ctx; - unsigned long folio_index; - unsigned long folio_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 netdev_notifier_changeupper_info { + struct netdev_notifier_info info; + struct net_device *upper_dev; + bool master; + bool linking; + void *upper_info; }; -struct nfs_cache_array_entry { - u64 cookie; - u64 ino; - const char *name; - unsigned int name_len; - unsigned char d_type; +struct netdev_notifier_info_ext { + struct netdev_notifier_info info; + union { + u32 mtu; + } ext; }; -struct nfs_cache_array { - u64 change_attr; - u64 last_cookie; - unsigned int size; - unsigned char folio_full: 1; - unsigned char folio_is_eof: 1; - unsigned char cookies_are_ordered: 1; - struct nfs_cache_array_entry array[0]; +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 selinux_mapping { - u16 value; - unsigned int num_perms; - u32 perms[32]; +struct ipt_reject_info { + enum ipt_reject_with with; }; -struct selinux_audit_rule { - u32 au_seqno; - struct context au_ctxt; +enum ip6_defrag_users { + IP6_DEFRAG_LOCAL_DELIVER = 0, + IP6_DEFRAG_CONNTRACK_IN = 1, + __IP6_DEFRAG_CONNTRACK_IN = 65536, + IP6_DEFRAG_CONNTRACK_OUT = 65537, + __IP6_DEFRAG_CONNTRACK_OUT = 131072, + IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 131073, + __IP6_DEFRAG_CONNTRACK_BRIDGE_IN = 196608, }; -struct filename_trans_key { - u32 ttype; - u16 tclass; - const char *name; +struct frag_queue { + struct inet_frag_queue q; + int iif; + __u16 nhoffset; + u8 ecn; }; -struct filename_trans_datum { - struct ebitmap stypes; - u32 otype; - struct filename_trans_datum *next; -}; +typedef void (*btf_trace_rpcgss_import_ctx)(void *, int); -struct role_trans_datum { - u32 new_role; -}; +typedef void (*btf_trace_rpcgss_get_mic)(void *, const struct rpc_task *, u32); -struct role_trans_key { - u32 role; - u32 type; - u32 tclass; -}; +typedef void (*btf_trace_rpcgss_verify_mic)(void *, const struct rpc_task *, u32); -struct selinux_policy_convert_data { - struct convert_context_args args; - struct sidtab_convert_params sidtab_params; -}; +typedef void (*btf_trace_rpcgss_wrap)(void *, const struct rpc_task *, u32); -struct perm_datum { - u32 value; -}; +typedef void (*btf_trace_rpcgss_unwrap)(void *, const struct rpc_task *, u32); -struct sg_io_v4; +typedef void (*btf_trace_rpcgss_ctx_init)(void *, const struct gss_cred *); -typedef int bsg_sg_io_fn(struct request_queue *, struct sg_io_v4 *, bool, unsigned int); +typedef void (*btf_trace_rpcgss_ctx_destroy)(void *, const struct gss_cred *); -struct bsg_device { - struct request_queue *queue; - struct device device; - struct cdev cdev; - int max_queue; - unsigned int timeout; - unsigned int reserved_size; - bsg_sg_io_fn *sg_io_fn; -}; +typedef void (*btf_trace_rpcgss_svc_wrap)(void *, const struct svc_rqst *, u32); -struct sg_io_v4 { - __s32 guard; - __u32 protocol; - __u32 subprotocol; - __u32 request_len; - __u64 request; - __u64 request_tag; - __u32 request_attr; - __u32 request_priority; - __u32 request_extra; - __u32 max_response_len; - __u64 response; - __u32 dout_iovec_count; - __u32 dout_xfer_len; - __u32 din_iovec_count; - __u32 din_xfer_len; - __u64 dout_xferp; - __u64 din_xferp; - __u32 timeout; - __u32 flags; - __u64 usr_ptr; - __u32 spare_in; - __u32 driver_status; - __u32 transport_status; - __u32 device_status; - __u32 retry_delay; - __u32 info; - __u32 duration; - __u32 response_len; - __s32 din_resid; - __s32 dout_resid; - __u64 generated_tag; - __u32 spare_out; - __u32 padding; -}; +typedef void (*btf_trace_rpcgss_svc_unwrap)(void *, const struct svc_rqst *, u32); -struct io_timeout { - struct file *file; - u32 off; - u32 target_seq; - u32 repeats; - struct list_head list; - struct io_kiocb *head; - struct io_kiocb *prev; -}; +typedef void (*btf_trace_rpcgss_svc_mic)(void *, const struct svc_rqst *, u32); -struct io_timeout_rem { - struct file *file; - u64 addr; - struct timespec64 ts; - u32 flags; - bool ltimeout; -}; +typedef void (*btf_trace_rpcgss_svc_get_mic)(void *, const struct svc_rqst *, u32); -struct io_timeout_data { - struct io_kiocb *req; - struct hrtimer timer; - struct timespec64 ts; - enum hrtimer_mode mode; - u32 flags; -}; +typedef void (*btf_trace_rpcgss_svc_wrap_failed)(void *, const struct svc_rqst *); -struct io_cancel_data { - struct io_ring_ctx *ctx; - union { - u64 data; - struct file *file; - }; - u32 flags; - int seq; -}; +typedef void (*btf_trace_rpcgss_svc_unwrap_failed)(void *, const struct svc_rqst *); -typedef unsigned int FSE_DTable; +typedef void (*btf_trace_rpcgss_svc_seqno_bad)(void *, const struct svc_rqst *, u32, u32); -typedef struct { - U16 tableLog; - U16 fastMode; -} FSE_DTableHeader; +typedef void (*btf_trace_rpcgss_svc_accept_upcall)(void *, const struct svc_rqst *, u32, u32); -typedef struct { - unsigned short newState; - unsigned char symbol; - unsigned char nbBits; -} FSE_decode_t; +typedef void (*btf_trace_rpcgss_svc_authenticate)(void *, const struct svc_rqst *, const struct rpc_gss_wire_cred *); -typedef s16 int16_t; +typedef void (*btf_trace_rpcgss_unwrap_failed)(void *, const struct rpc_task *); -typedef int16_t S16; +typedef void (*btf_trace_rpcgss_bad_seqno)(void *, const struct rpc_task *, u32, u32); -typedef struct { - short ncount[256]; - FSE_DTable dtable[1]; -} FSE_DecompressWksp; +typedef void (*btf_trace_rpcgss_seqno)(void *, const struct rpc_task *); -typedef struct { - size_t state; - const void *table; -} FSE_DState_t; +typedef void (*btf_trace_rpcgss_need_reencode)(void *, const struct rpc_task *, u32, bool); -struct barrett_ctx_s { - MPI m; - int m_copied; - int k; - MPI y; - MPI r1; - MPI r2; - MPI r3; -}; +typedef void (*btf_trace_rpcgss_update_slack)(void *, const struct rpc_task *, const struct rpc_auth *); -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, -}; +typedef void (*btf_trace_rpcgss_svc_seqno_large)(void *, const struct svc_rqst *, u32); -enum asn1_method { - ASN1_PRIM = 0, - ASN1_CONS = 1, -}; +typedef void (*btf_trace_rpcgss_svc_seqno_seen)(void *, const struct svc_rqst *, u32); -typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *); +typedef void (*btf_trace_rpcgss_svc_seqno_low)(void *, const struct svc_rqst *, u32, u32, u32); -struct acpi_reg_walk_info { - u32 function; - u32 reg_run_count; - acpi_adr_space_type space_id; -}; +typedef void (*btf_trace_rpcgss_upcall_msg)(void *, const char *); -struct acpi_connection_info { - u8 *connection; - u16 length; - u8 access_length; -}; +typedef void (*btf_trace_rpcgss_upcall_result)(void *, u32, int); -struct acpi_ffh_info { - u64 offset; - u64 length; -}; +typedef void (*btf_trace_rpcgss_context)(void *, u32, unsigned long, unsigned long, unsigned int, unsigned int, const u8 *); -struct acpi_vendor_uuid; +typedef void (*btf_trace_rpcgss_createauth)(void *, unsigned int, int); -struct acpi_vendor_walk_info { - struct acpi_vendor_uuid *uuid; - struct acpi_buffer *buffer; - acpi_status status; -}; +typedef void (*btf_trace_rpcgss_oid_to_mech)(void *, const char *); -struct acpi_vendor_uuid { - u8 subtype; - u8 data[16]; +struct trace_event_raw_rpcgss_import_ctx { + struct trace_entry ent; + int status; + char __data[0]; }; -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 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 displayid_block { - u8 tag; - u8 rev; - u8 num_bytes; +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 displayid_header { - u8 rev; - u8 bytes; - u8 prod_id; - u8 ext_count; +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 displayid_iter { - const struct drm_edid *drm_edid; - const u8 *section; - int length; - int idx; - int ext_index; - u8 version; - u8 primary_use; +struct trace_event_raw_rpcgss_svc_wrap_failed { + struct trace_entry ent; + u32 xid; + u32 __data_loc_addr; + char __data[0]; }; -struct edid_quirk { - u32 panel_id; - u32 quirks; +struct trace_event_raw_rpcgss_svc_unwrap_failed { + struct trace_entry ent; + u32 xid; + u32 __data_loc_addr; + char __data[0]; }; -struct minimode { - short w; - short h; - short r; - short rb; +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 stereo_mandatory_mode { - int width; - int height; - int vrefresh; - unsigned int flags; +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]; }; -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 trace_event_raw_rpcgss_svc_authenticate { + struct trace_entry ent; + u32 seqno; + u32 xid; + u32 __data_loc_addr; + char __data[0]; }; -struct cea_db { - u8 tag_length; - u8 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 displayid_vesa_vendor_specific_block { - struct displayid_block base; - u8 oui[3]; - u8 data_structure_type; - u8 mso; +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 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 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 displayid_detailed_timing_block { - struct displayid_block base; - struct displayid_detailed_timings_1 timings[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 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 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]; }; -typedef void detailed_cb(const struct detailed_timing *, void *); - -struct drm_edid_iter { - const struct drm_edid *drm_edid; - int index; +struct trace_event_raw_rpcgss_svc_seqno_class { + struct trace_entry ent; + u32 xid; + u32 seqno; + char __data[0]; }; -struct cea_db_iter { - struct drm_edid_iter edid_iter; - struct displayid_iter displayid_iter; - const u8 *collection; - int index; - int end; +struct trace_event_raw_rpcgss_svc_seqno_low { + struct trace_entry ent; + u32 xid; + u32 seqno; + u32 min; + u32 max; + char __data[0]; }; -struct cea_sad { - u8 format; - u8 channels; - u8 freq; - u8 byte2; +struct trace_event_raw_rpcgss_upcall_msg { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -struct detailed_mode_closure { - struct drm_connector *connector; - const struct drm_edid *drm_edid; - bool preferred; - int modes; +struct trace_event_raw_rpcgss_upcall_result { + struct trace_entry ent; + u32 uid; + int result; + char __data[0]; }; -typedef int read_block_fn(void *, u8 *, unsigned int, size_t); - -struct ttm_range_manager { - struct ttm_resource_manager manager; - struct drm_mm mm; - spinlock_t lock; +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 insert_pte_data { - u64 offset; +struct trace_event_raw_rpcgss_createauth { + struct trace_entry ent; + unsigned int flavor; + int error; + char __data[0]; }; -struct dbuf_slice_conf_entry { - u8 active_pipes; - u8 dbuf_mask[4]; - bool join_mbus; +struct trace_event_raw_rpcgss_oid_to_mech { + struct trace_entry ent; + u32 __data_loc_oid; + char __data[0]; }; -struct skl_hw_state { - struct skl_ddb_entry ddb[8]; - struct skl_ddb_entry ddb_y[8]; - struct skl_pipe_wm wm; +struct trace_event_data_offsets_rpcgss_ctx_class { + u32 principal; }; -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 trace_event_data_offsets_rpcgss_svc_gssapi_class { + u32 addr; }; -struct skl_plane_ddb_iter { - u64 data_rate; - u16 start; - u16 size; +struct trace_event_data_offsets_rpcgss_svc_wrap_failed { + u32 addr; }; -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_OA_ENGINE_CLASS = 9, - DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE = 10, - DRM_I915_PERF_PROP_MAX = 11, +struct trace_event_data_offsets_rpcgss_svc_unwrap_failed { + u32 addr; }; -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_OAM_FORMAT_MPEC8u64_B8_C8 = 13, - I915_OAM_FORMAT_MPEC8u32_B8_C8 = 14, - I915_OA_FORMAT_MAX = 15, +struct trace_event_data_offsets_rpcgss_svc_seqno_bad { + u32 addr; }; -enum { - START_TS = 0, - NOW_TS = 1, - DELTA_TS = 2, - JUMP_PREDICATE = 3, - DELTA_TARGET = 4, - N_CS_GPR = 5, +struct trace_event_data_offsets_rpcgss_svc_accept_upcall { + u32 addr; }; -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 trace_event_data_offsets_rpcgss_svc_authenticate { + u32 addr; }; -struct i915_oa_config_bo { - struct llist_node node; - struct i915_oa_config *oa_config; - struct i915_vma *vma; +struct trace_event_data_offsets_rpcgss_upcall_msg { + u32 msg; }; -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 trace_event_data_offsets_rpcgss_context { + u32 acceptor; }; -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 trace_event_data_offsets_rpcgss_oid_to_mech { + u32 oid; }; -struct drm_i915_perf_open_param { - __u32 flags; - __u32 num_properties; - __u64 properties_ptr; -}; +struct trace_event_data_offsets_rpcgss_gssapi_event {}; -struct i915_gem_engines_iter { - unsigned int idx; - const struct i915_gem_engines *engines; -}; +struct trace_event_data_offsets_rpcgss_import_ctx {}; -struct drm_i915_perf_record_header { - __u32 type; - __u16 pad; - __u16 size; -}; +struct trace_event_data_offsets_rpcgss_unwrap_failed {}; -struct flex { - i915_reg_t reg; - u32 offset; - u32 value; -}; +struct trace_event_data_offsets_rpcgss_bad_seqno {}; -struct scsi_proc_entry { - struct list_head entry; - const struct scsi_host_template *sht; - struct proc_dir_entry *proc_dir; - unsigned int present; -}; +struct trace_event_data_offsets_rpcgss_seqno {}; -struct netconsole_target { - struct list_head list; - bool enabled; - bool extended; - struct netpoll np; -}; +struct trace_event_data_offsets_rpcgss_need_reencode {}; -struct rtl_cond { - bool (*check)(struct rtl8169_private *); - const char *msg; -}; +struct trace_event_data_offsets_rpcgss_update_slack {}; -enum rtl_dash_type { - RTL_DASH_NONE = 0, - RTL_DASH_DP = 1, - RTL_DASH_EP = 2, -}; +struct trace_event_data_offsets_rpcgss_svc_seqno_class {}; -struct ring_info { - struct sk_buff *skb; - u32 len; -}; +struct trace_event_data_offsets_rpcgss_svc_seqno_low {}; -struct rtl8169_tc_offsets { - bool inited; - __le64 tx_errors; - __le32 tx_multi_collision; - __le16 tx_aborted; - __le16 rx_missed; +struct trace_event_data_offsets_rpcgss_upcall_result {}; + +struct trace_event_data_offsets_rpcgss_createauth {}; + +struct link_container { + struct ieee80211_link_data data; + struct ieee80211_bss_conf conf; }; -struct TxDesc; +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 RxDesc; +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 rtl8169_counters; +enum bug_trap_type { + BUG_TRAP_TYPE_NONE = 0, + BUG_TRAP_TYPE_WARN = 1, + BUG_TRAP_TYPE_BUG = 2, +}; -struct rtl_fw; +enum kernel_gp_hint { + GP_NO_HINT = 0, + GP_NON_CANONICAL = 1, + GP_CANONICAL = 2, +}; -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; - raw_spinlock_t config25_lock; - raw_spinlock_t mac_ocp_lock; - raw_spinlock_t cfg9346_usage_lock; - int cfg9346_usage_count; - unsigned int supports_gmii: 1; - unsigned int aspm_manageable: 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 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 TxDesc { - __le32 opts1; - __le32 opts2; - __le64 addr; +enum align_flags { + ALIGN_VA_32 = 1, + ALIGN_VA_64 = 2, }; -struct RxDesc { - __le32 opts1; - __le32 opts2; - __le64 addr; +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 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; +struct fixed_percpu_data { + char gs_base[40]; + unsigned long stack_canary; }; -typedef void (*rtl_fw_write_t)(struct rtl8169_private *, int, int); +struct cpuid_dependent_feature { + u32 feature; + u32 level; +}; -typedef int (*rtl_fw_read_t)(struct rtl8169_private *, int); +struct ppin_info { + int feature; + int msr_ppin_ctl; + int msr_ppin; +}; -struct rtl_fw_phy_action { - __le32 *code; - size_t size; +union ftrace_op_code_union { + char code[7]; + struct { + char op[3]; + int offset; + } __attribute__((packed)); }; -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; +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; }; -typedef void (*rtl_generic_fct)(struct rtl8169_private *); +struct semaphore_waiter { + struct list_head list; + struct task_struct *task; + bool up; +}; -struct ephy_info { - unsigned int offset; - u16 mask; - u16 bits; +enum desc_state { + desc_miss = -1, + desc_reserved = 0, + desc_committed = 1, + desc_finalized = 2, + desc_reusable = 3, }; -struct rtl_mac_info { - u16 mask; - u16 val; - enum mac_version ver; +struct prb_data_block { + unsigned long id; + char data[0]; }; -struct rtl_coalesce_info { - u32 speed; - u32 scale_nsecs[4]; +struct prb_reserved_entry { + struct printk_ringbuffer *rb; + unsigned long irqflags; + unsigned long id; + unsigned int text_space; }; -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, +struct printk_record { + struct printk_info *info; + char *text_buf; + unsigned int text_buf_size; }; -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 { + IRQ_STARTUP_NORMAL = 0, + IRQ_STARTUP_MANAGED = 1, + IRQ_STARTUP_ABORT = 2, }; -enum rtl_registers { - MAC0 = 0, - MAC4 = 4, - MAR0 = 8, - CounterAddrLow = 16, - CounterAddrHigh = 20, - TxDescStartAddrLow = 32, - TxDescStartAddrHigh = 36, - TxHDescStartAddrLow = 40, - TxHDescStartAddrHigh = 44, - FLASH = 48, - ERSR = 54, - ChipCmd = 55, - TxPoll = 56, - IntrMask = 60, - IntrStatus = 62, - TxConfig = 64, - RxConfig = 68, - Cfg9346 = 80, - Config0 = 81, - Config1 = 82, - Config2 = 83, - Config3 = 84, - Config4 = 85, - Config5 = 86, - PHYAR = 96, - PHYstatus = 108, - RxMaxSize = 218, - CPlusCmd = 224, - IntrMitigate = 226, - RxDescAddrLow = 228, - RxDescAddrHigh = 232, - EarlyTxThres = 236, - MaxTxPacketSize = 236, - FuncEvent = 240, - FuncEventMask = 244, - FuncPresetState = 248, - IBCR0 = 248, - IBCR2 = 249, - IBIMR0 = 250, - IBISR0 = 251, - FuncForceEvent = 252, +typedef void (*btf_trace_sys_enter)(void *, struct pt_regs *, long); + +typedef void (*btf_trace_sys_exit)(void *, struct pt_regs *, long); + +struct trace_event_raw_sys_enter { + struct trace_entry ent; + long id; + unsigned long args[6]; + char __data[0]; }; -enum rtl_register_content { - SYSErr = 32768, - PCSTimeout = 16384, - SWInt = 256, - TxDescUnavail = 128, - RxFIFOOver = 64, - LinkChg = 32, - RxOverflow = 16, - TxErr = 8, - TxOK = 4, - RxErr = 2, - RxOK = 1, - RxRWT = 4194304, - RxRES = 2097152, - RxRUNT = 1048576, - RxCRC = 524288, - StopReq = 128, - CmdReset = 16, - CmdRxEnb = 8, - CmdTxEnb = 4, - RxBufEmpty = 1, - HPQ = 128, - NPQ = 64, - FSWInt = 1, - Cfg9346_Lock = 0, - Cfg9346_Unlock = 192, - AcceptErr = 32, - AcceptRunt = 16, - AcceptBroadcast = 8, - AcceptMulticast = 4, - AcceptMyPhys = 2, - AcceptAllPhys = 1, - TxInterFrameGapShift = 24, - TxDMAShift = 8, - LEDS1 = 128, - LEDS0 = 64, - Speed_down = 16, - MEMMAP = 8, - IOMAP = 4, - VPD = 2, - PMEnable = 1, - ClkReqEn = 128, - MSIEnable = 32, - PCI_Clock_66MHz = 1, - PCI_Clock_33MHz = 0, - MagicPacket = 32, - LinkUp = 16, - Jumbo_En0 = 4, - Rdy_to_L23 = 2, - Beacon_en = 1, - Jumbo_En1 = 2, - BWF = 64, - MWF = 32, - UWF = 16, - Spi_en = 8, - LanWake = 2, - PMEStatus = 1, - ASPM_en = 1, - EnableBist = 32768, - Mac_dbgo_oe = 16384, - EnAnaPLL = 16384, - Normal_mode = 8192, - Force_half_dup = 4096, - Force_rxflow_en = 2048, - Force_txflow_en = 1024, - Cxpl_dbg_sel = 512, - ASF = 256, - PktCntrDisable = 128, - Mac_dbgo_sel = 28, - RxVlan = 64, - RxChkSum = 32, - PCIDAC = 16, - PCIMulRW = 8, - TBI_Enable = 128, - TxFlowCtrl = 64, - RxFlowCtrl = 32, - _1000bpsF = 16, - _100bps = 8, - _10bps = 4, - LinkStatus = 2, - FullDup = 1, - CounterReset = 1, - CounterDump = 8, - MagicPacket_v2 = 65536, +struct trace_event_raw_sys_exit { + struct trace_entry ent; + long id; + long ret; + char __data[0]; }; -enum rtl_desc_bit { - DescOwn = -2147483648, - RingEnd = 1073741824, - FirstFrag = 536870912, - LastFrag = 268435456, +struct trace_event_data_offsets_sys_enter {}; + +struct trace_event_data_offsets_sys_exit {}; + +struct ce_unbind { + struct clock_event_device *ce; + int res; }; -enum rtl_flag { - RTL_FLAG_TASK_ENABLED = 0, - RTL_FLAG_TASK_RESET_PENDING = 1, - RTL_FLAG_TASK_TX_TIMEOUT = 2, - RTL_FLAG_MAX = 3, +typedef struct elf64_phdr Elf64_Phdr; + +struct crash_mem { + unsigned int max_nr_ranges; + unsigned int nr_ranges; + struct range ranges[0]; }; -enum rtl8125_registers { - IntrMask_8125 = 56, - IntrStatus_8125 = 60, - TxPoll_8125 = 144, - MAC0_BKP = 6624, - EEE_TXIDLE_TIMER_8125 = 24648, +struct rchan_percpu_buf_dispatcher { + struct rchan_buf *buf; + struct dentry *dentry; }; -enum rtl_tx_desc_bit { - TD_LSO = 134217728, - TxVlanTag = 131072, +struct trace_export { + struct trace_export __attribute__((btf_type_tag("rcu"))) *next; + void (*write)(struct trace_export *, const void *, unsigned int); + int flags; }; -enum rtl_tx_desc_bit_0 { - TD0_TCP_CS = 65536, - TD0_UDP_CS = 131072, - TD0_IP_CS = 262144, +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; }; -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, +struct ftrace_stack { + unsigned long calls[1024]; }; -enum rtl_rx_desc_bit { - PID1 = 262144, - PID0 = 131072, - IPFail = 65536, - UDPFail = 32768, - TCPFail = 16384, - RxVlanTag = 65536, +struct ftrace_stacks { + struct ftrace_stack stacks[4]; }; -struct vivaldi_data { - u32 function_row_physmap[24]; - unsigned int num_function_row_keys; +struct trace_buffer_struct { + int nesting; + char buffer[4096]; }; -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 ring_buffer_flags { + RB_FL_OVERWRITE = 1, }; -struct linear_c { - struct dm_dev *dev; - sector_t start; +struct err_info { + const char **errs; + u8 type; + u16 pos; + u64 ts; }; -enum led_default_state { - LEDS_DEFSTATE_OFF = 0, - LEDS_DEFSTATE_ON = 1, - LEDS_DEFSTATE_KEEP = 2, +struct tracing_log_err { + struct list_head list; + struct err_info info; + char loc[128]; + char *cmd; }; -struct led_properties { - u32 color; - bool color_present; - const char *function; - u32 func_enum; - bool func_enum_present; - const char *label; +struct buffer_ref { + struct trace_buffer *buffer; + void *page; + int cpu; + refcount_t refcount; }; -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); +typedef bool (*cond_update_fn_t)(struct trace_array *, void *); + +struct trace_min_max_param { + struct mutex *lock; + u64 *val; + u64 *min; + u64 *max; }; -enum snd_ctl_add_mode { - CTL_ADD_EXCLUSIVE = 0, - CTL_REPLACE = 1, - CTL_ADD_ON_REPLACE = 2, +struct ftrace_buffer_info { + struct trace_iterator iter; + void *spare; + unsigned int spare_cpu; + unsigned int read; }; -enum sndrv_ctl_event_type { - SNDRV_CTL_EVENT_ELEM = 0, - SNDRV_CTL_EVENT_LAST = 0, +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: 64; + long: 64; + long: 64; }; -enum { - SNDRV_CTL_TLV_OP_READ = 0, - SNDRV_CTL_TLV_OP_WRITE = 1, - SNDRV_CTL_TLV_OP_CMD = -1, +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]; }; -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, +struct bpf_lpm_trie_key { + __u32 prefixlen; + __u8 data[0]; }; -enum { - SND_CTL_SUBDEV_PCM = 0, - SND_CTL_SUBDEV_RAWMIDI = 1, - SND_CTL_SUBDEV_ITEMS = 2, +struct context_tracking { + atomic_t state; + long dynticks_nesting; + long dynticks_nmi_nesting; }; -struct snd_kctl_event { - struct list_head list; - struct snd_ctl_elem_id id; - unsigned int mask; +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 snd_kctl_ioctl { - struct list_head list; - snd_kctl_ioctl_func_t fioctl; +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 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 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 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 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 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 cachestat_range { + __u64 off; + __u64 len; }; -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 cachestat { + __u64 nr_cache; + __u64 nr_dirty; + __u64 nr_writeback; + __u64 nr_evicted; + __u64 nr_recently_evicted; }; -struct snd_ctl_elem_list32 { - u32 offset; - u32 space; - u32 used; - u32 count; - u32 pids; - unsigned char reserved[50]; +struct wait_page_key { + struct folio *folio; + int bit_nr; + int page_match; }; -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 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 {}; + +enum pgt_entry { + NORMAL_PMD = 0, + HPAGE_PMD = 1, + NORMAL_PUD = 2, + HPAGE_PUD = 3, }; -struct snd_ctl_event { - int type; - union { - struct { - unsigned int mask; - struct snd_ctl_elem_id id; - } elem; - unsigned char data8[60]; - } data; +struct slub_flush_work { + struct work_struct work; + struct kmem_cache *s; + bool skip; }; -struct snd_ctl_tlv { - unsigned int numid; - unsigned int length; - unsigned int tlv[0]; +struct slab_attribute { + struct attribute attr; + ssize_t (*show)(struct kmem_cache *, char *); + ssize_t (*store)(struct kmem_cache *, const char *, size_t); }; -struct snd_soc_acpi_codecs; +struct saved_alias { + struct kmem_cache *s; + const char *name; + struct saved_alias *next; +}; -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; +enum track_item { + TRACK_ALLOC = 0, + TRACK_FREE = 1, }; -struct snd_soc_acpi_codecs { - int num_codecs; - u8 codecs[48]; +enum slab_state { + DOWN = 0, + PARTIAL = 1, + PARTIAL_NODE = 2, + UP = 3, + FULL = 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 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, }; -struct xdp_frame_bulk { - int count; - void *xa; - void *q[16]; +enum slab_modes { + M_NONE = 0, + M_PARTIAL = 1, + M_FREE = 2, + M_FULL_NOLIST = 3, }; -struct xdp_attachment_info { - struct bpf_prog *prog; - u32 flags; +enum slab_stat_type { + SL_ALL = 0, + SL_PARTIAL = 1, + SL_CPU = 2, + SL_OBJECTS = 3, + SL_TOTAL = 4, }; -enum tc_fifo_command { - TC_FIFO_REPLACE = 0, - TC_FIFO_DESTROY = 1, - TC_FIFO_STATS = 2, +typedef struct { + unsigned long v; +} freeptr_t; + +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 tc_fifo_qopt { - __u32 limit; +struct track { + unsigned long addr; + depot_stack_handle_t handle; + int cpu; + int pid; + unsigned long when; }; -struct tc_fifo_qopt_offload { - enum tc_fifo_command command; - u32 handle; - u32 parent; - union { - struct tc_qopt_offload_stats stats; +struct detached_freelist { + struct slab *slab; + void *tail; + void *freelist; + int cnt; + struct kmem_cache *s; +}; + +union __u128_halves { + u128 full; + struct { + u64 low; + u64 high; }; }; -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, +struct partial_context { + struct slab **slab; + gfp_t flags; + unsigned int orig_size; }; -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 loc_track { + unsigned long max; + unsigned long count; + struct location *loc; + loff_t idx; }; -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, +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]; }; -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, +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; }; -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, +struct ns_get_path_task_args { + const struct proc_ns_operations *ns_ops; + struct task_struct *task; }; -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, +typedef struct ns_common *ns_get_path_helper_t(void *); + +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 ethnl_tunnel_info_dump_ctx { - struct ethnl_req_info req_info; - int pos_hash; - int pos_idx; +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 tcp_metrics_block; +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 tcpm_hash_bucket { - struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *chain; +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 tcp_fastopen_metrics { - u16 mss; - u16 syn_loss: 10; - u16 try_exp: 2; - unsigned long last_syn_loss; - struct tcp_fastopen_cookie cookie; +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 tcp_metrics_block { - struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *tcpm_next; - struct net *tcpm_net; - struct inetpeer_addr tcpm_saddr; - struct inetpeer_addr tcpm_daddr; - unsigned long tcpm_stamp; - u32 tcpm_lock; - u32 tcpm_vals[5]; - struct tcp_fastopen_metrics tcpm_fastopen; - struct callback_head callback_head; +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]; }; -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, +struct flock { + short l_type; + short l_whence; + __kernel_off_t l_start; + __kernel_off_t l_len; + __kernel_pid_t l_pid; }; -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, +struct flock64 { + short l_type; + short l_whence; + __kernel_loff_t l_start; + __kernel_loff_t l_len; + __kernel_pid_t l_pid; }; -enum { - TCP_METRICS_CMD_UNSPEC = 0, - TCP_METRICS_CMD_GET = 1, - TCP_METRICS_CMD_DEL = 2, - __TCP_METRICS_CMD_MAX = 3, +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 ac6_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct inet6_dev *idev; +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, +} __attribute__((mode(byte))); + +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, +} __attribute__((mode(byte))); + +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 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 isofs_fid { + u32 block; + u16 offset; + u16 parent_offset; + u32 generation; + u32 parent_block; + u32 parent_generation; }; -struct rpc_cb_add_xprt_calldata { - struct rpc_xprt_switch *xps; - struct rpc_xprt *xprt; +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_submount; + 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 mptcp_add_subflow; + 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; }; -struct rpc_add_xprt_test { - void (*add_xprt_test)(struct rpc_clnt *, struct rpc_xprt *, void *); - void *data; +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 connect_timeout_data { - unsigned long connect_timeout; - unsigned long reconnect_timeout; +enum { + DIO_SHOULD_DIRTY = 1, + DIO_IS_SYNC = 2, }; -struct cfg80211_mgmt_registration { - struct list_head list; - struct wireless_dev *wdev; - u32 nlportid; - int match_len; - __le16 frame_type; - bool multicast_rx; - u8 match[0]; +struct 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; +}; + +enum prio_policy { + POLICY_NO_CHANGE = 0, + POLICY_PROMOTE_TO_RT = 1, + POLICY_RESTRICT_TO_BE = 2, + POLICY_ALL_TO_IDLE = 3, + POLICY_NONE_TO_RT = 4, +}; + +struct ioprio_blkcg { + struct blkcg_policy_data cpd; + enum prio_policy prio_policy; }; -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, +struct ioprio_blkg { + struct blkg_policy_data pd; }; enum { - IEEE80211_PROBE_FLAG_DIRECTED = 1, - IEEE80211_PROBE_FLAG_MIN_CONTENT = 2, - IEEE80211_PROBE_FLAG_RANDOM_SN = 4, + SOCKET_URING_OP_SIOCINQ = 0, + SOCKET_URING_OP_SIOCOUTQ = 1, + SOCKET_URING_OP_GETSOCKOPT = 2, + SOCKET_URING_OP_SETSOCKOPT = 3, }; -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 devm_ioremap_type { + DEVM_IOREMAP = 0, + DEVM_IOREMAP_UC = 1, + DEVM_IOREMAP_WC = 2, + DEVM_IOREMAP_NP = 3, }; -enum ieee80211_vht_chanwidth { - IEEE80211_VHT_CHANWIDTH_USE_HT = 0, - IEEE80211_VHT_CHANWIDTH_80MHZ = 1, - IEEE80211_VHT_CHANWIDTH_160MHZ = 2, - IEEE80211_VHT_CHANWIDTH_80P80MHZ = 3, +struct pcim_iomap_devres { + void *table[6]; }; -enum ieee80211_s1g_chanwidth { - IEEE80211_S1G_CHANWIDTH_1MHZ = 0, - IEEE80211_S1G_CHANWIDTH_2MHZ = 1, - IEEE80211_S1G_CHANWIDTH_4MHZ = 3, - IEEE80211_S1G_CHANWIDTH_8MHZ = 7, - IEEE80211_S1G_CHANWIDTH_16MHZ = 15, +struct arch_io_reserve_memtype_wc_devres { + resource_size_t start; + resource_size_t size; }; -struct ieee80211_eht_operation_info { - u8 control; - u8 ccfs0; - u8 ccfs1; - u8 optional[0]; +struct nvs_region { + __u64 phys_start; + __u64 size; + struct list_head node; }; -struct ieee80211_mle_basic_common_info { - u8 len; - u8 mld_mac_addr[6]; - u8 variable[0]; +struct nvs_page { + unsigned long phys_start; + unsigned int size; + void *kaddr; + void *data; + bool unmap; + struct list_head node; }; -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 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 iface_combination_params { - int num_different_channels; - u8 radar_detect; - int iftype_num[13]; - u32 new_beacon_int; +struct acpi_comment_node { + char *comment; + struct acpi_comment_node *next; }; -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, +struct acpi_fixed_event_info { + u8 status_register_id; + u8 enable_register_id; + u16 status_bit_mask; + u16 enable_bit_mask; }; -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, -}; +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)); -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, +struct acpi_table_list { + struct acpi_table_desc *tables; + u32 current_table_count; + u32 max_table_count; + u8 flags; }; -enum hybrid_pmu_type { - hybrid_big = 64, - hybrid_small = 32, - hybrid_big_small = 96, +struct acpi_mutex_info { + void *mutex; + u32 use_count; + u64 thread_id; }; -enum { - X86_PERF_KFREE_SHARED = 0, - X86_PERF_KFREE_EXCL = 1, - X86_PERF_KFREE_MAX = 2, +typedef acpi_status (*acpi_exception_handler)(acpi_status, acpi_name, u16, u32, void *); + +typedef acpi_status (*acpi_init_handler)(acpi_handle, u32); + +typedef acpi_status (*acpi_table_handler)(u32, void *, void *); + +struct acpi_ged_handler_info { + struct acpi_ged_handler_info *next; + u32 int_id; + struct acpi_namespace_node *evt_method; }; -struct perf_pmu_events_ht_attr { - struct device_attribute attr; - u64 id; - const char *event_str_ht; - const char *event_str_noht; +struct acpi_fixed_event_handler { + acpi_event_handler handler; + void *context; }; -struct perf_pmu_events_hybrid_attr { - struct device_attribute attr; - u64 id; - const char *event_str; - u64 pmu_type; +struct virt_dma_desc; + +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 stack_frame { - struct stack_frame *next_frame; - unsigned long return_address; +struct virt_dma_desc { + struct dma_async_tx_descriptor tx; + struct dmaengine_result tx_result; + struct list_head node; }; -struct sched_state { - int weight; - int event; - int counter; - int unassigned; - int nr_gp; - u64 used; +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 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 hsu_dma_sg { + dma_addr_t addr; + unsigned int len; }; -struct perf_callchain_entry_ctx { - struct perf_callchain_entry *entry; - u32 max_stack; - u32 nr; - short contexts; - bool contexts_maxed; +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 stack_frame_ia32 { - u32 next_frame; - u32 return_address; +struct hsu_dma { + struct dma_device dma; + struct hsu_dma_chan *chan; + unsigned short nr_channels; }; -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 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 taint_flag { - char c_true; - char c_false; - bool module; +struct exar8250 { + unsigned int nr; + struct exar8250_board *board; + void *virt; + int line[0]; }; -enum error_detector { - ERROR_DETECTOR_KFENCE = 0, - ERROR_DETECTOR_KASAN = 1, - ERROR_DETECTOR_WARN = 2, +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 warn_args { - const char *fmt; - va_list args; +enum iommu_dma_cookie_type { + IOMMU_DMA_IOVA_COOKIE = 0, + IOMMU_DMA_MSI_COOKIE = 1, }; -struct optimistic_spin_node { - struct optimistic_spin_node *next; - struct optimistic_spin_node *prev; - int locked; - int cpu; +enum iommu_dma_queue_type { + IOMMU_DMA_OPTS_PER_CPU_QUEUE = 0, + IOMMU_DMA_OPTS_SINGLE_QUEUE = 1, }; -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 iommu_dma_options { + enum iommu_dma_queue_type qt; + size_t fq_size; + unsigned int fq_timeout; }; -struct dma_devres { - size_t size; - void *vaddr; - dma_addr_t dma_handle; - unsigned long attrs; +struct iova_fq; + +struct iommu_dma_cookie { + enum iommu_dma_cookie_type type; + union { + struct { + struct iova_domain iovad; + union { + struct iova_fq *single_fq; + struct iova_fq __attribute__((btf_type_tag("percpu"))) *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 iommu_dma_options options; + struct mutex mutex; }; -struct rt_wake_q_head { - struct wake_q_head head; - struct task_struct *rtlock_task; +struct iova_fq_entry { + unsigned long iova_pfn; + unsigned long pages; + struct list_head freelist; + u64 counter; }; -struct trace_mark { - unsigned long long val; - char sym; +struct iova_fq { + spinlock_t lock; + unsigned int head; + unsigned int tail; + unsigned int mod_mask; + struct iova_fq_entry entries[0]; }; -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 iommu_dma_msi_page { + struct list_head list; + dma_addr_t iova; + phys_addr_t phys; }; -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 dma_sgt_handle { + struct sg_table sgt; + struct page **pages; }; -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 drm_memory_stats { + u64 shared; + u64 private; + u64 resident; + u64 purgeable; + u64 active; }; -struct timerlat_entry { - struct trace_entry ent; - unsigned int seqnum; - int context; - u64 timer_latency; +enum drm_i915_pmu_engine_sample { + I915_SAMPLE_BUSY = 0, + I915_SAMPLE_WAIT = 1, + I915_SAMPLE_SEMA = 2, }; enum { - BPF_MAX_LOOPS = 8388608, + __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 bpf_iter_feature { - BPF_ITER_RESCHED = 1, +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 bpf_iter_target_info { - struct list_head list; - const struct bpf_iter_reg *reg_info; - u32 btf_id; +struct i915_str_attribute { + struct device_attribute attr; + const char *str; }; -struct bpf_iter_link { - struct bpf_link link; - struct bpf_iter_aux_info aux; - struct bpf_iter_target_info *tinfo; +struct i915_ext_attribute { + struct device_attribute attr; + unsigned long val; }; -struct bpf_iter_priv_data { - struct bpf_iter_target_info *tinfo; - const struct bpf_iter_seq_info *seq_info; - struct bpf_prog *prog; - u64 session_id; - u64 seq_num; - bool done_stop; - long: 0; - u8 target_private[0]; +struct drm_i915_gem_create_ext_memory_regions { + struct i915_user_extension base; + __u32 pad; + __u32 num_regions; + __u64 regions; }; -typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64); - -typedef u64 (*btf_bpf_loop)(u32, void *, void *, u64); +struct create_ext___2 { + struct drm_i915_private *i915; + struct intel_memory_region *placements[7]; + unsigned int n_placements; + unsigned int placement_mask; + unsigned long flags; + unsigned int pat_index; +}; -struct btf_iter_num; +struct drm_i915_gem_create { + __u64 size; + __u32 handle; + __u32 pad; +}; -struct bpf_iter_num { - __u64 __opaque[1]; +struct drm_i915_gem_create_ext { + __u64 size; + __u32 handle; + __u32 flags; + __u64 extensions; }; -struct bpf_iter_num_kern { - int cur; - int end; +struct drm_i915_gem_create_ext_protected_content { + struct i915_user_extension base; + __u32 flags; }; -typedef void (*btf_trace_mm_lru_insertion)(void *, struct folio *); +struct drm_i915_gem_create_ext_set_pat { + struct i915_user_extension base; + __u32 pat_index; + __u32 rsvd; +}; -typedef void (*btf_trace_mm_lru_activate)(void *, struct folio *); +struct drm_i915_cmd_descriptor; -struct lru_rotate { - local_lock_t lock; - struct folio_batch fbatch; +struct drm_i915_cmd_table { + const struct drm_i915_cmd_descriptor *table; + int count; }; -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 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 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 drm_i915_reg_descriptor { + i915_reg_t addr; + u32 mask; + u32 value; }; -struct trace_event_raw_mm_lru_activate { - struct trace_entry ent; - struct folio *folio; - unsigned long pfn; - char __data[0]; +struct cmd_node { + const struct drm_i915_cmd_descriptor *desc; + struct hlist_node node; }; -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 {}; +struct auxiliary_device { + struct device dev; + const char *name; + u32 id; +}; -struct madvise_walk_private { - struct mmu_gather *tlb; - bool pageout; +struct mei_aux_device { + struct auxiliary_device aux_dev; + int irq; + struct resource bar; + struct resource ext_op_mem; + bool slow_firmware; }; -struct simple_xattr { - struct rb_node rb_node; - char *name; - size_t size; - char value[0]; +struct dbuf_slice_conf_entry { + u8 active_pipes; + u8 dbuf_mask[4]; + bool join_mbus; }; -struct xattr_name { - char name[256]; +enum dbuf_slice { + DBUF_S1 = 0, + DBUF_S2 = 1, + DBUF_S3 = 2, + DBUF_S4 = 3, + I915_MAX_DBUF_SLICES = 4, }; -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 skl_hw_state { + struct skl_ddb_entry ddb[8]; + struct skl_ddb_entry ddb_y[8]; + struct skl_pipe_wm wm; }; -struct compat_elf_siginfo { - compat_int_t si_signo; - compat_int_t si_code; - compat_int_t si_errno; +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 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 skl_plane_ddb_iter { + u64 data_rate; + u16 start; + u16 size; }; -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 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 i386_elf_prstatus { - struct compat_elf_prstatus_common common; - struct user_regs_struct32 pr_reg; - compat_int_t pr_fpvalid; +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 elf_thread_core_info___2; +struct component_match_array; -struct elf_note_info___2 { - struct elf_thread_core_info___2 *thread; - struct memelfnote psinfo; - struct memelfnote signote; - struct memelfnote auxv; - struct memelfnote files; - compat_siginfo_t csigdata; - size_t size; - int thread_notes; +struct component_match { + size_t alloc; + size_t num; + struct component_match_array *compare; }; -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; +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; }; -typedef struct user_regs_struct compat_elf_gregset_t; +struct auxiliary_device_id; -struct compat_elf_prstatus { - struct compat_elf_prstatus_common common; - compat_elf_gregset_t pr_reg; - compat_int_t pr_fpvalid; +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 elf_thread_core_info___2 { - struct elf_thread_core_info___2 *next; - struct task_struct *task; - struct compat_elf_prstatus prstatus; - struct memelfnote notes[0]; +struct auxiliary_device_id { + char name[32]; + kernel_ulong_t driver_data; }; -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 sync_merge_data { + char name[32]; + __s32 fd2; + __s32 fence; + __u32 flags; + __u32 pad; }; -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 sync_file_info { + char name[32]; + __s32 status; + __u32 flags; + __u32 num_fences; + __u32 pad; + __u64 sync_fence_info; }; -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, +struct sync_fence_info { + char obj_name[32]; + char driver_name[32]; + __s32 status; + __u32 flags; + __u64 timestamp_ns; }; -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, +struct scsi_varlen_cdb_hdr { + __u8 opcode; + __u8 control; + __u8 misc[5]; + __u8 additional_cdb_length; + __be16 service_action; }; -enum limit_by4 { - NFS4_LIMIT_SIZE = 1, - NFS4_LIMIT_BLOCKS = 2, +struct ich_laptop { + u16 device; + u16 subvendor; + u16 subdevice; }; -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, +struct piix_map_db { + const u32 mask; + const u16 port_enable; + const int map[0]; }; -enum lock_type4 { - NFS4_UNLOCK_LT = 0, - NFS4_READ_LT = 1, - NFS4_WRITE_LT = 2, - NFS4_READW_LT = 3, - NFS4_WRITEW_LT = 4, +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, }; -struct compound_hdr { - int32_t status; - uint32_t nops; - __be32 *nops_p; - uint32_t taglen; - char *tag; - uint32_t replen; - u32 minorversion; +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 autofs_packet_missing { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - int len; - char name[256]; +struct piix_host_priv { + const int *map; + u32 saved_iocfg; + void *sidpr; }; -struct autofs_packet_expire_multi { - struct autofs_packet_hdr hdr; - autofs_wqt_t wait_queue_token; - int len; - char name[256]; +enum { + e1000_10_half = 0, + e1000_10_full = 1, + e1000_100_half = 2, + e1000_100_full = 3, }; -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; +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 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]; +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 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; }; -typedef struct autofs_v5_packet autofs_packet_missing_indirect_t; +struct cytp_contact { + int x; + int y; + int z; +}; -typedef struct autofs_v5_packet autofs_packet_expire_indirect_t; +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; +}; -typedef struct autofs_v5_packet autofs_packet_missing_direct_t; +typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long); -typedef struct autofs_v5_packet autofs_packet_expire_direct_t; +typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long); -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; -}; +typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *); -struct debugfs_fsdata { - const struct file_operations *real_fops; - refcount_t active_users; - struct completion active_users_drained; +enum hwmon_chip_attributes { + hwmon_chip_temp_reset_history = 0, + hwmon_chip_in_reset_history = 1, + hwmon_chip_curr_reset_history = 2, + hwmon_chip_power_reset_history = 3, + hwmon_chip_register_tz = 4, + hwmon_chip_update_interval = 5, + hwmon_chip_alarms = 6, + hwmon_chip_samples = 7, + hwmon_chip_curr_samples = 8, + hwmon_chip_in_samples = 9, + hwmon_chip_power_samples = 10, + hwmon_chip_temp_samples = 11, + hwmon_chip_beep_enable = 12, }; -struct debugfs_mount_opts { - kuid_t uid; - kgid_t gid; - umode_t mode; - unsigned int opts; +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, }; -struct debugfs_fs_info { - struct debugfs_mount_opts mount_opts; +enum hwmon_fan_attributes { + hwmon_fan_enable = 0, + hwmon_fan_input = 1, + hwmon_fan_label = 2, + hwmon_fan_min = 3, + hwmon_fan_max = 4, + hwmon_fan_div = 5, + hwmon_fan_pulses = 6, + hwmon_fan_target = 7, + hwmon_fan_alarm = 8, + hwmon_fan_min_alarm = 9, + hwmon_fan_max_alarm = 10, + hwmon_fan_fault = 11, + hwmon_fan_beep = 12, }; -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 trace_event_raw_hwmon_attr_class { + struct trace_entry ent; + int index; + u32 __data_loc_attr_name; + long val; + char __data[0]; }; -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 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 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 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 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 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 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 trace_event_data_offsets_hwmon_attr_class { + u32 attr_name; }; -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 trace_event_data_offsets_hwmon_attr_show_string { + u32 attr_name; + u32 label; }; -struct comp_alg_common { - struct crypto_alg base; +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 acomp_alg { - int (*compress)(struct acomp_req *); - int (*decompress)(struct acomp_req *); - void (*dst_free)(struct scatterlist *); - int (*init)(struct crypto_acomp *); - void (*exit)(struct crypto_acomp *); - unsigned int reqsize; - union { - struct { - struct crypto_alg base; - }; - struct comp_alg_common calg; - }; +struct plff_device { + struct hid_report *report; + s32 maxval; + s32 *strong; + s32 *weak; }; -struct crypto_istat_compress { - atomic64_t compress_cnt; - atomic64_t compress_tlen; - atomic64_t decompress_cnt; - atomic64_t decompress_tlen; - atomic64_t err_cnt; +struct 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); }; -struct pci_bus_resource { - struct list_head list; - struct resource *res; - unsigned int flags; +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, }; -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; +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, }; -struct acpi_osi_entry { - char string[64]; - bool enable; -}; +typedef char __pad_before_u32[0]; -struct platform_s2idle_ops { - int (*begin)(); - int (*prepare)(); - int (*prepare_late)(); - void (*check)(); - bool (*wake)(); - void (*restore_early)(); - void (*restore)(); - void (*end)(); +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 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 snd_pcm_file { + struct snd_pcm_substream *substream; + int no_compat_mmap; + unsigned int user_pversion; }; -struct acpi_exception_info { - char *name; +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 lpss8250; - -struct lpss8250_board { - unsigned long freq; - unsigned int base_baud; - int (*setup)(struct lpss8250 *, struct uart_port *); - void (*exit)(struct lpss8250 *); +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 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 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 drm_color_ctm { - __u64 matrix[9]; +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 ch7017_priv { - u8 dummy; +struct snd_pcm_mmap_control32 { + u32 appl_ptr; + u32 avail_min; }; -struct scsi_host_busy_iter_data { - bool (*fn)(struct scsi_cmnd *, void *); - void *priv; +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 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 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 ethtool_cmd { - __u32 cmd; - __u32 supported; - __u32 advertising; - __u16 speed; - __u8 duplex; - __u8 port; - __u8 phy_address; - __u8 transceiver; - __u8 autoneg; - __u8 mdio_support; - __u32 maxtxpkt; - __u32 maxrxpkt; - __u16 speed_hi; - __u8 eth_tp_mdix; - __u8 eth_tp_mdix_ctrl; - __u32 lp_advertising; - __u32 reserved[2]; +struct snd_xferi { + snd_pcm_sframes_t result; + void __attribute__((btf_type_tag("user"))) *buf; + snd_pcm_uframes_t frames; }; -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 snd_xfern { + snd_pcm_sframes_t result; + void __attribute__((btf_type_tag("user"))) * __attribute__((btf_type_tag("user"))) *bufs; + snd_pcm_uframes_t frames; }; -enum { - NAMESZ = 10, +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 mon_iso_desc { - int status; - unsigned int offset; - unsigned int length; +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 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 snd_pcm_channel_info32 { + u32 channel; + u32 offset; + u32 first; + u32 step; }; -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 snd_xferi32 { + s32 result; + u32 buf; + u32 frames; }; -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 snd_xfern32 { + s32 result; + u32 bufs; + u32 frames; }; -struct mon_text_ptr { - int cnt; - int limit; - char *pbuf; +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 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 bpf_xdp_link { + struct bpf_link link; + struct net_device *dev; + int flags; }; -struct stripe { - struct dm_dev *dev; - sector_t physical_start; - atomic_t error_count; +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, }; -struct stripe_c { - uint32_t stripes; - int stripes_shift; - sector_t stripe_width; - uint32_t chunk_size; - int chunk_size_shift; - struct dm_target *ti; - struct work_struct trigger_event; - struct stripe stripe[0]; +enum tcx_action_base { + TCX_NEXT = -1, + TCX_PASS = 0, + TCX_DROP = 2, + TCX_REDIRECT = 7, }; -struct led_lookup_data { +struct netdev_adjacent { + struct net_device *dev; + netdevice_tracker dev_tracker; + bool master; + bool ignore; + u16 ref_nr; + void *private; struct list_head list; - const char *provider; - const char *dev_id; - const char *con_id; + struct callback_head rcu; }; -struct pcc_chan_reg { - void *vaddr; - struct acpi_generic_address *gas; - u64 preserve_mask; - u64 set_mask; - u64 status_mask; +struct dev_kfree_skb_cb { + enum skb_drop_reason reason; }; -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 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 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 netdev_net_notifier { + struct list_head list; + struct notifier_block *nb; }; -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 net_device_path_stack { + int num_paths; + struct net_device_path path[5]; }; -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 netdev_nested_priv { + unsigned char flags; + void *data; +}; -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 netdev_notifier_offload_xstats_rd; -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 netdev_notifier_offload_xstats_ru; -struct snd_seq_queue_tempo { - int queue; - unsigned int tempo; - int ppq; - unsigned int skew_value; - unsigned int skew_base; - char reserved[24]; +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; + }; }; -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, +struct netdev_notifier_offload_xstats_rd { + struct rtnl_hw_stats64 stats; + bool used; }; -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 netdev_notifier_offload_xstats_ru { + bool used; }; -struct fib_rule_uid_range { - __u32 start; - __u32 end; +struct netdev_notifier_pre_changeaddr_info { + struct netdev_notifier_info info; + const unsigned char *dev_addr; }; -struct fib_rule_notifier_info { - struct fib_notifier_info info; - struct fib_rule *rule; -}; +typedef int (*bpf_op_t)(struct net_device *, struct netdev_bpf *); -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 ifslave { + __s32 slave_id; + char slave_name[16]; + __s8 link; + __s8 state; + __u32 link_failure_count; }; -struct linkinfo_reply_data { - struct ethnl_reply_data base; - struct ethtool_link_ksettings ksettings; - struct ethtool_link_settings *lsettings; -}; +typedef struct ifslave ifslave; -struct nf_log_buf { - unsigned int count; - char buf[1020]; +struct ifbond { + __s32 bond_mode; + __s32 num_slaves; + __s32 miimon; }; -struct xt_udp { - __u16 spts[2]; - __u16 dpts[2]; - __u8 invflags; -}; +typedef struct ifbond ifbond; -struct ipt_icmp { - __u8 type; - __u8 code[2]; - __u8 invflags; +struct netdev_bonding_info { + ifslave slave; + ifbond master; }; -struct ip6t_icmp { - __u8 type; - __u8 code[2]; - __u8 invflags; +struct netdev_notifier_bonding_info { + struct netdev_notifier_info info; + struct netdev_bonding_info bonding_info; }; -typedef struct sk_buff * (*gro_receive_sk_t)(struct sock *, struct list_head *, struct sk_buff *); - -struct ipt_error { - struct ipt_entry entry; - struct xt_error_target target; +struct netdev_notifier_changelowerstate_info { + struct netdev_notifier_info info; + void *lower_state_info; }; -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 dpll_pin; -struct ipt_standard { - struct ipt_entry entry; - struct xt_standard_target target; +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 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 debug_reply_data { + struct ethnl_reply_data base; + u32 msg_mask; }; -struct ipt_get_entries { - char name[32]; - unsigned int size; - struct ipt_entry entrytable[0]; -}; +typedef unsigned int t_key; -struct xt_get_revision { - char name[29]; - __u8 revision; +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 uncached_list { - spinlock_t lock; - struct list_head head; - struct list_head quarantine; +struct trie { + struct key_vector kv[1]; }; -typedef void (*btf_trace_fib6_table_lookup)(void *, const struct net *, const struct fib6_result *, struct fib6_table *, const struct flowi6 *); - -enum rt6_nud_state { - RT6_NUD_FAIL_HARD = -3, - RT6_NUD_FAIL_PROBE = -2, - RT6_NUD_FAIL_DO_RR = -1, - RT6_NUD_SUCCEED = 1, +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 ip6rd_flowi { - struct flowi6 fl6; - struct in6_addr gateway; +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 rt6_rtnl_dump_arg { - struct sk_buff *skb; - struct netlink_callback *cb; - struct net *net; - struct fib_dump_filter filter; +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 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 fib_trie_iter { + struct seq_net_private p; + struct fib_table *tb; + struct key_vector *tnode; + unsigned int index; + unsigned int depth; }; -struct rt6_exception { - struct hlist_node hlist; - struct rt6_info *rt6i; - unsigned long stamp; - struct callback_head rcu; +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 arg_dev_net_ip { - struct net_device *dev; - struct net *net; - struct in6_addr *addr; +enum sk_pacing { + SK_PACING_NONE = 0, + SK_PACING_NEEDED = 1, + SK_PACING_FQ = 2, }; -struct rt6_mtu_change_arg { - struct net_device *dev; - unsigned int mtu; - struct fib6_info *f6i; +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 rt6_nh { - struct fib6_info *fib6_info; - struct fib6_config r_cfg; - struct list_head next; +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 fib6_nh_dm_arg { - struct net *net; - const struct in6_addr *saddr; - int oif; - int flags; - struct fib6_nh *nh; +struct ioam6_hdr { + __u8 opt_type; + __u8 opt_len; + char: 8; + __u8 type; }; -typedef struct rt6_info * (*pol_lookup_t)(struct net *, struct fib6_table *, struct flowi6 *, const struct sk_buff *, int); +struct xdr_array2_desc; -struct fib6_gc_args { - int timeout; - int more; -}; +typedef int (*xdr_xcode_elem_t)(struct xdr_array2_desc *, void *); -struct fib6_nh_match_arg { - const struct net_device *dev; - const struct in6_addr *gw; - struct fib6_nh *match; +struct xdr_array2_desc { + unsigned int elem_size; + unsigned int array_len; + unsigned int array_maxlen; + xdr_xcode_elem_t xcode; }; -struct fib6_nh_del_cached_rt_arg { - struct fib6_config *cfg; - struct fib6_info *f6i; +struct fwdb_country { + u8 alpha2[2]; + __be16 coll_ptr; }; -struct arg_netdev_event { - const struct net_device *dev; - union { - unsigned char nh_flags; - unsigned long event; - }; +struct fwdb_header { + __be32 magic; + __be32 version; + struct fwdb_country country[0]; }; -struct trace_event_data_offsets_fib6_table_lookup {}; - -struct fib6_nh_age_excptn_arg { - struct fib6_gc_args *gc_args; - unsigned long now; +enum reg_request_treatment { + REG_REQ_OK = 0, + REG_REQ_IGNORE = 1, + REG_REQ_INTERSECT = 2, + REG_REQ_ALREADY_SET = 3, }; -struct fib6_nh_rd_arg { - struct fib6_result *res; - struct flowi6 *fl6; - const struct in6_addr *gw; - struct rt6_info **ret; +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 netevent_redirect { - struct dst_entry *old; - struct dst_entry *new; - struct neighbour *neigh; - const void *daddr; +struct reg_beacon { + struct list_head list; + struct ieee80211_channel chan; }; -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 fwdb_wmm_ac { + u8 ecw; + u8 aifsn; + __be16 cot; }; -struct fib6_nh_frl_arg { - u32 flags; - int oif; - int strict; - int *mpri; - bool *do_rr; - struct fib6_nh *nh; +struct reg_regdb_apply_request { + struct list_head list; + const struct ieee80211_regdomain *regdom; }; -struct fib6_nh_excptn_arg { - struct rt6_info *rt; - int plen; +struct fwdb_collection { + u8 len; + u8 n_rules; + u8 dfs_region; + int: 0; }; -enum ieee80211_bss_corrupt_data_flags { - IEEE80211_BSS_CORRUPT_BEACON = 1, - IEEE80211_BSS_CORRUPT_PROBE_RESP = 2, +struct fwdb_rule { + u8 len; + u8 flags; + __be16 max_eirp; + __be32 start; + __be32 end; + __be32 max_bw; + __be16 cac_timeout; + __be16 wmm_ptr; }; -enum ieee80211_bss_valid_data_flags { - IEEE80211_BSS_VALID_WMM = 2, - IEEE80211_BSS_VALID_RATES = 4, - IEEE80211_BSS_VALID_ERP = 8, +struct fwdb_wmm_rule { + struct fwdb_wmm_ac client[4]; + struct fwdb_wmm_ac ap[4]; }; -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; +enum ieee80211_vif_flags { + IEEE80211_VIF_BEACON_FILTER = 1, + IEEE80211_VIF_SUPPORTS_CQM_RSSI = 2, + IEEE80211_VIF_SUPPORTS_UAPSD = 4, + IEEE80211_VIF_GET_NOA_UPDATE = 8, + IEEE80211_VIF_EML_ACTIVE = 16, }; -struct inform_bss_update_data { - struct ieee80211_rx_status *rx_status; - bool beacon; +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 netlbl_domhsh_tbl { - struct list_head *tbl; - u32 size; +struct ieee80211_color_change_settings { + u16 counter_offset_beacon; + u16 counter_offset_presp; + u8 count; }; enum rfkill_sched_op { @@ -119602,5326 +124039,5250 @@ enum rfkill_input_master_mode { NUM_RFKILL_INPUT_MASTER_MODES = 3, }; -enum { - PAT_UC = 0, - PAT_WC = 1, - PAT_WT = 4, - PAT_WP = 5, - PAT_WB = 6, - PAT_UC_MINUS = 7, +enum handshake_msg_type { + HANDSHAKE_MSG_TYPE_UNSPEC = 0, + HANDSHAKE_MSG_TYPE_CLIENTHELLO = 1, + HANDSHAKE_MSG_TYPE_SERVERHELLO = 2, }; -struct pagerange_state { - unsigned long cur_pfn; - int ram; - int not_ram; +enum handshake_auth { + HANDSHAKE_AUTH_UNSPEC = 0, + HANDSHAKE_AUTH_UNAUTH = 1, + HANDSHAKE_AUTH_PSK = 2, + HANDSHAKE_AUTH_X509 = 3, }; -enum desc_state { - desc_miss = -1, - desc_reserved = 0, - desc_committed = 1, - desc_finalized = 2, - desc_reusable = 3, +enum { + TLS_ALERT_DESC_CLOSE_NOTIFY = 0, + TLS_ALERT_DESC_UNEXPECTED_MESSAGE = 10, + TLS_ALERT_DESC_BAD_RECORD_MAC = 20, + TLS_ALERT_DESC_RECORD_OVERFLOW = 22, + TLS_ALERT_DESC_HANDSHAKE_FAILURE = 40, + TLS_ALERT_DESC_BAD_CERTIFICATE = 42, + TLS_ALERT_DESC_UNSUPPORTED_CERTIFICATE = 43, + TLS_ALERT_DESC_CERTIFICATE_REVOKED = 44, + TLS_ALERT_DESC_CERTIFICATE_EXPIRED = 45, + TLS_ALERT_DESC_CERTIFICATE_UNKNOWN = 46, + TLS_ALERT_DESC_ILLEGAL_PARAMETER = 47, + TLS_ALERT_DESC_UNKNOWN_CA = 48, + TLS_ALERT_DESC_ACCESS_DENIED = 49, + TLS_ALERT_DESC_DECODE_ERROR = 50, + TLS_ALERT_DESC_DECRYPT_ERROR = 51, + TLS_ALERT_DESC_TOO_MANY_CIDS_REQUESTED = 52, + TLS_ALERT_DESC_PROTOCOL_VERSION = 70, + TLS_ALERT_DESC_INSUFFICIENT_SECURITY = 71, + TLS_ALERT_DESC_INTERNAL_ERROR = 80, + TLS_ALERT_DESC_INAPPROPRIATE_FALLBACK = 86, + TLS_ALERT_DESC_USER_CANCELED = 90, + TLS_ALERT_DESC_MISSING_EXTENSION = 109, + TLS_ALERT_DESC_UNSUPPORTED_EXTENSION = 110, + TLS_ALERT_DESC_UNRECOGNIZED_NAME = 112, + TLS_ALERT_DESC_BAD_CERTIFICATE_STATUS_RESPONSE = 113, + TLS_ALERT_DESC_UNKNOWN_PSK_IDENTITY = 115, + TLS_ALERT_DESC_CERTIFICATE_REQUIRED = 116, + TLS_ALERT_DESC_NO_APPLICATION_PROTOCOL = 120, }; -struct prb_data_block { - unsigned long id; - char data[0]; +enum { + HANDSHAKE_A_ACCEPT_SOCKFD = 1, + HANDSHAKE_A_ACCEPT_HANDLER_CLASS = 2, + HANDSHAKE_A_ACCEPT_MESSAGE_TYPE = 3, + HANDSHAKE_A_ACCEPT_TIMEOUT = 4, + HANDSHAKE_A_ACCEPT_AUTH_MODE = 5, + HANDSHAKE_A_ACCEPT_PEER_IDENTITY = 6, + HANDSHAKE_A_ACCEPT_CERTIFICATE = 7, + HANDSHAKE_A_ACCEPT_PEERNAME = 8, + __HANDSHAKE_A_ACCEPT_MAX = 9, + HANDSHAKE_A_ACCEPT_MAX = 8, }; enum { - AFFINITY = 0, - AFFINITY_LIST = 1, - EFFECTIVE = 2, - EFFECTIVE_LIST = 3, + HANDSHAKE_A_X509_CERT = 1, + HANDSHAKE_A_X509_PRIVKEY = 2, + __HANDSHAKE_A_X509_MAX = 3, + HANDSHAKE_A_X509_MAX = 2, }; -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, +enum { + HANDSHAKE_A_DONE_STATUS = 1, + HANDSHAKE_A_DONE_SOCKFD = 2, + HANDSHAKE_A_DONE_REMOTE_AUTH = 3, + __HANDSHAKE_A_DONE_MAX = 4, + HANDSHAKE_A_DONE_MAX = 3, }; -struct kcmp_epoll_slot { - __u32 efd; - __u32 tfd; - __u32 toff; +struct tls_handshake_req { + void (*th_consumer_done)(void *, int, key_serial_t); + void *th_consumer_data; + int th_type; + unsigned int th_timeout_ms; + int th_auth_mode; + const char *th_peername; + key_serial_t th_keyring; + key_serial_t th_certificate; + key_serial_t th_privkey; + unsigned int th_num_peerids; + key_serial_t th_peerid[5]; }; -struct stat_session { - struct list_head session_list; - struct tracer_stat *ts; - struct rb_root stat_root; - struct mutex stat_mutex; - struct dentry *file; +enum pconfig_target { + INVALID_TARGET = 0, + MKTME_TARGET = 1, + PCONFIG_TARGET_NR = 2, }; -struct stat_node { - struct rb_node node; - void *stat; +enum { + PCONFIG_CPUID_SUBLEAF_INVALID = 0, + PCONFIG_CPUID_SUBLEAF_TARGETID = 1, }; -struct trace_fprobe { - struct dyn_event devent; - struct fprobe fp; - const char *symbol; - struct tracepoint *tpoint; - struct module *mod; - struct trace_probe tp; +enum tsx_ctrl_states { + TSX_CTRL_ENABLE = 0, + TSX_CTRL_DISABLE = 1, + TSX_CTRL_RTM_ALWAYS_ABORT = 2, + TSX_CTRL_NOT_SUPPORTED = 3, }; -struct fexit_trace_entry_head { - struct trace_entry ent; - unsigned long func; - unsigned long ret_ip; +struct scan_area { + u64 addr; + u64 size; }; -struct fentry_trace_entry_head { - struct trace_entry ent; - unsigned long ip; +enum { + IORES_MAP_SYSTEM_RAM = 1, + IORES_MAP_ENCRYPTED = 2, }; -struct __find_tracepoint_cb_data { - const char *tp_name; - struct tracepoint *tpoint; +struct ioremap_desc { + unsigned int flags; }; -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 *); - -struct dma_page { - struct list_head page_list; - void *vaddr; - dma_addr_t dma; +struct param_attribute { + struct module_attribute mattr; + const struct kernel_param *param; }; -struct dma_block; - -struct dma_pool { - struct list_head page_list; - spinlock_t lock; - struct dma_block *next_block; - size_t nr_blocks; - size_t nr_active; - size_t nr_pages; - struct device *dev; - unsigned int size; - unsigned int allocation; - unsigned int boundary; - char name[32]; - struct list_head pools; +struct module_param_attrs { + unsigned int num; + struct attribute_group grp; + struct param_attribute attrs[0]; }; -struct dma_block { - struct dma_block *next_block; - dma_addr_t dma; +enum { + KERNEL_PARAM_OPS_FL_NOARG = 1, }; -struct inodes_stat_t { - long nr_inodes; - long nr_unused; - long dummy[5]; +enum { + KERNEL_PARAM_FL_UNSAFE = 1, + KERNEL_PARAM_FL_HWPARAM = 2, }; -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 kmalloced_param { + struct list_head list; + char val[0]; }; -struct limit_names { - const char *name; - const char *unit; +enum dl_bw_request { + dl_bw_req_check_overflow = 0, + dl_bw_req_alloc = 1, + dl_bw_req_free = 2, }; -struct map_files_info { - unsigned long start; - unsigned long end; - fmode_t mode; +enum s2idle_states { + S2IDLE_STATE_NONE = 0, + S2IDLE_STATE_ENTER = 1, + S2IDLE_STATE_WAKE = 2, }; -struct syscall_info { - __u64 sp; - struct seccomp_data data; +struct idle_timer { + struct hrtimer timer; + int done; }; -struct proc_timens_offset { - int clockid; - struct timespec64 val; -}; +typedef struct rt_rq *rt_rq_iter_t; -struct tgid_iter { - unsigned int tgid; - struct task_struct *task; +struct profile_hit { + u32 pc; + u32 hits; }; -typedef struct { - __le32 *p; - __le32 key; - struct buffer_head *bh; -} Indirect; - -struct fat_cache { - struct list_head cache_list; - int nr_contig; - int fcluster; - int dcluster; +struct compat_kexec_segment { + compat_uptr_t buf; + compat_size_t bufsz; + compat_ulong_t mem; + compat_size_t memsz; }; -struct fat_cache_id { - unsigned int id; - int nr_contig; - int fcluster; - int dcluster; +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 debugfs_reg32 { - char *name; - unsigned long offset; +struct stat_node { + struct rb_node node; + void *stat; }; -struct debugfs_u32_array { - u32 *array; - u32 n_elements; -}; +typedef void (*btf_trace_rpm_suspend)(void *, struct device *, int); -struct debugfs_regset32 { - const struct debugfs_reg32 *regs; - int nregs; - void *base; - struct device *dev; -}; +typedef void (*btf_trace_rpm_resume)(void *, struct device *, int); -struct debugfs_devm_entry { - int (*read)(struct seq_file *, void *); - struct device *dev; -}; +typedef void (*btf_trace_rpm_idle)(void *, struct device *, int); -struct crypto_queue { - struct list_head list; - struct list_head *backlog; - unsigned int qlen; - unsigned int max_qlen; -}; +typedef void (*btf_trace_rpm_usage)(void *, struct device *, int); -enum { - DIO_SHOULD_DIRTY = 1, - DIO_IS_SYNC = 2, -}; +typedef void (*btf_trace_rpm_return_int)(void *, struct device *, unsigned long, int); -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 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 gf128mul_4k; - -struct gf128mul_64k { - struct gf128mul_4k *t[16]; +struct trace_event_raw_rpm_return_int { + struct trace_entry ent; + u32 __data_loc_name; + unsigned long ip; + int ret; + char __data[0]; }; -struct gf128mul_4k { - be128 t[256]; +struct trace_event_data_offsets_rpm_internal { + u32 name; }; -typedef struct { - __le64 b; - __le64 a; -} le128; - -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 trace_event_data_offsets_rpm_return_int { + u32 name; }; -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 btf_anon_stack { + u32 tid; + u32 offset; }; -struct assoc_array_delete_collapse_context { - struct assoc_array_node *node; - const void *skip_leaf; - int slot; +struct uprobe_cpu_buffer { + struct mutex mutex; + void *buf; }; -typedef struct { - U16 nextState; - BYTE nbAdditionalBits; - BYTE nbBits; - U32 baseValue; -} ZSTD_seqSymbol; +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; +}; -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; +struct uprobe_trace_entry_head { + struct trace_entry ent; + unsigned long vaddr[0]; +}; -typedef void * (*ZSTD_allocFunction)(void *, size_t); +typedef bool (*filter_func_t)(struct uprobe_consumer *, enum uprobe_filter_ctx, struct mm_struct *); -typedef void (*ZSTD_freeFunction)(void *, void *); +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]; +}; -typedef struct { - ZSTD_allocFunction customAlloc; - ZSTD_freeFunction customFree; - void *opaque; -} ZSTD_customMem; +struct swevent_hlist; -struct ZSTD_DDict_s { - void *dictBuffer; - const void *dictContent; - size_t dictSize; - ZSTD_entropyDTables_t entropy; - U32 dictID; - U32 entropyPresent; - ZSTD_customMem cMem; +struct swevent_htable { + struct swevent_hlist *swevent_hlist; + struct mutex hlist_mutex; + int hlist_refcount; + int recursion[4]; }; -typedef struct ZSTD_DDict_s ZSTD_DDict; +struct swevent_hlist { + struct hlist_head heads[256]; + struct callback_head callback_head; +}; -typedef enum { - ZSTD_dlm_byCopy = 0, - ZSTD_dlm_byRef = 1, -} ZSTD_dictLoadMethod_e; +struct min_heap_callbacks { + int elem_size; + bool (*less)(const void *, const void *); + void (*swp)(void *, void *); +}; -typedef enum { - ZSTD_dct_auto = 0, - ZSTD_dct_rawContent = 1, - ZSTD_dct_fullDict = 2, -} ZSTD_dictContentType_e; +struct pmu_event_list { + raw_spinlock_t lock; + struct list_head list; +}; -typedef enum { - ZSTD_frame = 0, - ZSTD_skippableFrame = 1, -} ZSTD_frameType_e; +enum event_type_t { + EVENT_FLEXIBLE = 1, + EVENT_PINNED = 2, + EVENT_TIME = 4, + EVENT_CPU = 8, + EVENT_CGROUP = 16, + EVENT_ALL = 3, +}; -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; +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, +}; -typedef enum { - bt_raw = 0, - bt_rle = 1, - bt_compressed = 2, - bt_reserved = 3, -} blockType_e; +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, +}; -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; +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, +}; -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; +enum perf_sample_regs_abi { + PERF_SAMPLE_REGS_ABI_NONE = 0, + PERF_SAMPLE_REGS_ABI_32 = 1, + PERF_SAMPLE_REGS_ABI_64 = 2, }; -typedef enum { - ZSTD_f_zstd1 = 0, - ZSTD_f_zstd1_magicless = 1, -} ZSTD_format_e; +enum perf_probe_config { + PERF_PROBE_CONFIG_IS_RETPROBE = 1, + PERF_UPROBE_REF_CTR_OFFSET_BITS = 32, + PERF_UPROBE_REF_CTR_OFFSET_SHIFT = 32, +}; -typedef enum { - ZSTD_d_validateChecksum = 0, - ZSTD_d_ignoreChecksum = 1, -} ZSTD_forceIgnoreChecksum_e; +enum perf_event_ioc_flags { + PERF_IOC_FLAG_GROUP = 1, +}; -typedef enum { - ZSTD_use_indefinitely = -1, - ZSTD_dont_use = 0, - ZSTD_use_once = 1, -} ZSTD_dictUses_e; +enum { + IF_STATE_ACTION = 0, + IF_STATE_SOURCE = 1, + IF_STATE_END = 2, +}; -typedef struct { - const ZSTD_DDict **ddictPtrTable; - size_t ddictPtrTableSize; - size_t ddictPtrCount; -} ZSTD_DDictHashSet; +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 enum { - ZSTD_rmd_refSingleDDict = 0, - ZSTD_rmd_refMultipleDDicts = 1, -} ZSTD_refMultipleDDicts_e; +typedef void (*event_f)(struct perf_event *, struct perf_cpu_context *, struct perf_event_context *, void *); -typedef enum { - zdss_init = 0, - zdss_loadHeader = 1, - zdss_read = 2, - zdss_load = 3, - zdss_flush = 4, -} ZSTD_dStreamStage; +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 enum { - ZSTD_bm_buffered = 0, - ZSTD_bm_stable = 1, -} ZSTD_bufferMode_e; +typedef void perf_iterate_f(struct perf_event *, void *); -struct ZSTD_outBuffer_s { - void *dst; - size_t size; - size_t pos; +struct stop_event_data { + struct perf_event *event; + unsigned int restart; }; -typedef struct ZSTD_outBuffer_s ZSTD_outBuffer; - -typedef enum { - ZSTD_not_in_dst = 0, - ZSTD_in_dst = 1, - ZSTD_split = 2, -} ZSTD_litLocation_e; +typedef int (*remote_function_f)(void *); -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; +struct remote_function_call { + struct task_struct *p; + remote_function_f func; + void *info; + int ret; }; -typedef struct ZSTD_DCtx_s ZSTD_DCtx; +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; +}; -enum acpi_subtable_type { - ACPI_SUBTABLE_COMMON = 0, - ACPI_SUBTABLE_HMAT = 1, - ACPI_SUBTABLE_PRMT = 2, - ACPI_SUBTABLE_CEDT = 3, +struct perf_ns_link_info { + __u64 dev; + __u64 ino; }; -struct acpi_madt_local_apic { - struct acpi_subtable_header header; - u8 processor_id; - u8 id; - u32 lapic_flags; +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 acpi_madt_local_x2apic { - struct acpi_subtable_header header; - u16 reserved; - u32 local_apic_id; - u32 lapic_flags; - u32 uid; +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 acpi_madt_io_apic { - struct acpi_subtable_header header; - u8 id; - u8 reserved; - u32 address; - u32 global_irq_base; +struct perf_aux_event { + struct perf_event_header header; + u64 offset; + u64 size; + u64 flags; }; -struct acpi_madt_interrupt_override { - struct acpi_subtable_header header; - u8 bus; - u8 source_irq; - u32 global_irq; - u16 inti_flags; -} __attribute__((packed)); +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 acpi_madt_nmi_source { - struct acpi_subtable_header header; - u16 inti_flags; - u32 global_irq; +struct perf_aux_event___2 { + struct perf_event_header header; + u64 hw_id; }; -struct acpi_madt_local_apic_nmi { - struct acpi_subtable_header header; - u8 processor_id; - u16 inti_flags; - u8 lint; -} __attribute__((packed)); +struct __group_key { + int cpu; + struct pmu *pmu; + struct cgroup *cgroup; +}; -struct acpi_madt_local_x2apic_nmi { - struct acpi_subtable_header header; - u16 inti_flags; - u32 uid; - u8 lint; - u8 reserved[3]; +struct perf_cgroup_event { + char *path; + int path_size; + struct { + struct perf_event_header header; + u64 id; + char path[0]; + } event_id; }; -struct acpi_madt_local_apic_override { - struct acpi_subtable_header header; - u16 reserved; - u64 address; -} __attribute__((packed)); +struct min_heap { + void *data; + int nr; + int size; +}; -struct acpi_madt_io_sapic { - struct acpi_subtable_header header; - u8 id; - u8 reserved; - u32 global_irq_base; - u64 address; +struct perf_aux_event___3 { + struct perf_event_header header; + u32 pid; + u32 tid; }; -struct acpi_madt_local_sapic { - struct acpi_subtable_header header; - u8 processor_id; - u8 id; - u8 eid; - u8 reserved[3]; - u32 lapic_flags; - u32 uid; - char uid_string[0]; +struct perf_read_event { + struct perf_event_header header; + u32 pid; + u32 tid; }; -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 remote_output { + struct perf_buffer *rb; + int err; }; -struct acpi_madt_generic_interrupt { - struct acpi_subtable_header header; - u16 reserved; - u32 cpu_interface_number; - u32 uid; - u32 flags; - u32 parking_version; - u32 performance_interrupt; - u64 parked_address; - u64 base_address; - u64 gicv_base_address; - u64 gich_base_address; - u32 vgic_interrupt; - u64 gicr_base_address; - u64 arm_mpidr; - u8 efficiency_class; - u8 reserved2[1]; - u16 spe_interrupt; - u16 trbe_interrupt; -} __attribute__((packed)); +struct 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 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 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 acpi_madt_core_pic { - struct acpi_subtable_header header; - u8 version; - u32 processor_id; - u32 core_id; - u32 flags; -} __attribute__((packed)); +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 acpi_madt_rintc { - struct acpi_subtable_header header; - u8 version; - u8 reserved; - u32 flags; - u64 hart_id; - u32 uid; -} __attribute__((packed)); +struct event_function_struct { + struct perf_event *event; + event_f func; + void *data; +}; -struct acpi_subtable_entry { - union acpi_subtable_headers *hdr; - enum acpi_subtable_type type; +struct perf_read_data { + struct perf_event *event; + bool group; + int ret; }; -struct acpipnp_parse_option_s { - struct pnp_dev *dev; - unsigned int option_flags; +typedef int fpi_t; + +enum { + QUOTA_NL_C_UNSPEC = 0, + QUOTA_NL_C_WARNING = 1, + __QUOTA_NL_C_MAX = 2, }; -struct vt_spawn_console { - spinlock_t lock; - struct pid *pid; - int sig; +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, }; -struct kbd_struct { - unsigned char lockstate; - unsigned char slockstate; - unsigned char ledmode: 1; - unsigned char ledflagstate: 4; - char: 3; - unsigned char default_ledflagstate: 4; - unsigned char kbdmode: 3; - int: 1; - unsigned char modeflags: 5; +enum criteria { + CR_POWER2_ALIGNED = 0, + CR_GOAL_LEN_FAST = 1, + CR_BEST_AVAIL_LEN = 2, + CR_GOAL_LEN_SLOW = 3, + CR_ANY_FREE = 4, + EXT4_MB_NUM_CRS = 5, }; -typedef void k_handler_fn(struct vc_data *, unsigned char, char); +enum { + MB_INODE_PA = 0, + MB_GROUP_PA = 1, +}; -typedef void fn_handler_fn(struct vc_data *); +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 kbd_led_trigger { - struct led_trigger trigger; - unsigned int mask; +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 getset_keycode_data { - struct input_keymap_entry ke; - int error; +struct sg { + struct ext4_group_info info; + ext4_grpblk_t counters[18]; }; -struct keyboard_notifier_param { - struct vc_data *vc; - int down; - int shift; - int ledstate; - unsigned int value; +struct akcipher_instance { + void (*free)(struct akcipher_instance *); + union { + struct { + char head[72]; + struct crypto_instance base; + } s; + struct akcipher_alg alg; + }; }; -struct kbd_repeat { - int delay; - int period; +struct crypto_istat_akcipher { + atomic64_t encrypt_cnt; + atomic64_t encrypt_tlen; + atomic64_t decrypt_cnt; + atomic64_t decrypt_tlen; + atomic64_t verify_cnt; + atomic64_t sign_cnt; + atomic64_t err_cnt; }; -struct kbdiacr { - unsigned char diacr; - unsigned char base; - unsigned char result; +struct crypto_akcipher_spawn { + struct crypto_spawn base; }; -struct kbdiacrs { - unsigned int kb_cnt; - struct kbdiacr kbdiacr[256]; +struct crypto_rfc3686_ctx { + struct crypto_skcipher *child; + u8 nonce[4]; }; -struct kbdiacrsuc { - unsigned int kb_cnt; - struct kbdiacruc kbdiacruc[256]; +struct crypto_rfc3686_req_ctx { + u8 iv[16]; + struct skcipher_request subreq; }; -struct kbkeycode { - unsigned int scancode; - unsigned int keycode; +struct blk_mq_hw_ctx_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_mq_hw_ctx *, char *); }; -struct kbentry { - unsigned char kb_table; - unsigned char kb_index; - unsigned short kb_value; +enum { + MAX_OPT_ARGS = 3, }; -struct kbsentry { - unsigned char kb_func; - unsigned char kb_string[512]; +struct rnd_state { + __u32 s1; + __u32 s2; + __u32 s3; + __u32 s4; }; -typedef void (*btf_trace_add_device_to_group)(void *, int, struct device *); +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; +}; -typedef void (*btf_trace_remove_device_from_group)(void *, int, struct device *); +struct acpi_os_dpc { + acpi_osd_exec_callback function; + void *context; + struct work_struct work; +}; -typedef void (*btf_trace_attach_device_to_domain)(void *, struct device *); +struct acpi_hp_work { + struct work_struct work; + struct acpi_device *adev; + u32 src; +}; -typedef void (*btf_trace_map)(void *, unsigned long, phys_addr_t, size_t); +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]; +}; -typedef void (*btf_trace_unmap)(void *, unsigned long, size_t, size_t); +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; +}; -typedef void (*btf_trace_io_page_fault)(void *, struct device *, unsigned long, int); +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 trace_event_raw_iommu_group_event { - struct trace_entry ent; - int gid; - u32 __data_loc_device; - char __data[0]; +struct serial_ctrl_device { + struct device dev; + struct ida port_ida; }; -struct trace_event_raw_iommu_device_event { - struct trace_entry ent; - u32 __data_loc_device; - char __data[0]; +struct serial_port_device { + struct device dev; + struct uart_port *port; }; -struct trace_event_raw_map { - struct trace_entry ent; - u64 iova; - u64 paddr; - size_t size; - char __data[0]; +enum iommu_hwpt_vtd_s1_flags { + IOMMU_VTD_S1_SRE = 1, + IOMMU_VTD_S1_EAFE = 2, + IOMMU_VTD_S1_WPE = 4, }; -struct trace_event_raw_unmap { - struct trace_entry ent; - u64 iova; - size_t size; - size_t unmapped_size; - char __data[0]; +struct pasid_entry { + u64 val[8]; }; -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 pasid_dir_entry { + u64 val; }; -struct trace_event_data_offsets_iommu_group_event { - u32 device; +struct qi_desc { + u64 qw0; + u64 qw1; + u64 qw2; + u64 qw3; }; -struct trace_event_data_offsets_iommu_device_event { - u32 device; +struct dmar_domain; + +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 trace_event_data_offsets_iommu_error { - u32 device; - u32 driver; +struct iommu_hwpt_vtd_s1 { + __u64 flags; + __u64 pgtbl_addr; + __u32 addr_width; + __u32 __reserved; }; -struct trace_event_data_offsets_map {}; +struct dma_pte; -struct trace_event_data_offsets_unmap {}; +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; + u8 dirty_tracking: 1; + u8 nested_parent: 1; + u8 has_mappings: 1; + spinlock_t lock; + struct list_head devices; + struct list_head dev_pasids; + int iommu_superpage; + union { + struct { + struct dma_pte *pgd; + int gaw; + int agaw; + u64 max_addr; + }; + struct { + struct dmar_domain *s2_domain; + unsigned long s1_pgtbl; + struct iommu_hwpt_vtd_s1 s1_cfg; + }; + }; + struct iommu_domain domain; +}; -struct drm_prime_member { - struct dma_buf *dma_buf; - uint32_t handle; - struct rb_node dmabuf_rb; - struct rb_node handle_rb; +struct dma_pte { + u64 val; }; -struct drm_prime_handle { - __u32 handle; - __u32 flags; - __s32 fd; +struct pasid_table { + void *table; + int order; + u32 max_pasid; }; -struct drm_dp_nak_reply { - u8 guid[16]; - u8 reason; - u8 nak_data; +struct iommu_domain_info { + struct intel_iommu *iommu; + unsigned int refcnt; + u16 did; }; -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_mode_get_encoder { + __u32 encoder_id; + __u32 encoder_type; + __u32 crtc_id; + __u32 possible_crtcs; + __u32 possible_clones; }; -struct drm_dp_link_address_ack_reply { - u8 guid[16]; - u8 nports; - struct drm_dp_link_addr_reply_port ports[16]; +struct drm_vma_offset_file { + struct rb_node vm_rb; + struct drm_file *vm_tag; + unsigned long vm_count; }; -struct drm_dp_port_number_rep { - u8 port_number; +struct i915_power_well_desc_list { + const struct i915_power_well_desc *list; + u8 count; }; -struct drm_dp_enum_path_resources_ack_reply { - u8 port_number; - bool fec_capable; - u16 full_payload_bw_number; - u16 avail_payload_bw_number; +enum vga_switcheroo_handler_flags_t { + VGA_SWITCHEROO_CAN_SWITCH_DDC = 1, + VGA_SWITCHEROO_NEEDS_EDP_CONFIG = 2, }; -struct drm_dp_allocate_payload_ack_reply { - u8 port_number; - u8 vcpi; - u16 allocated_pbn; +struct intel_lvds_pps { + int t1_t2; + int t3; + int t4; + int t5; + int tx; + int divider; + int port; + bool powerdown_on_reset; }; -struct drm_dp_query_payload_ack_reply { - u8 port_number; - u16 allocated_pbn; +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 drm_dp_remote_dpcd_read_ack_reply { - u8 port_number; - u8 num_bytes; - u8 bytes[255]; +enum scsi_timeouts { + SCSI_DEFAULT_EH_TIMEOUT = 10000, }; -struct drm_dp_remote_dpcd_write_ack_reply { - u8 port_number; +struct async_scan_data { + struct list_head list; + struct Scsi_Host *shost; + struct completion prev_finished; }; -struct drm_dp_remote_dpcd_write_nak_reply { - u8 port_number; - u8 reason; - u8 bytes_written_before_failure; +enum { + D0TIM = 128, + D1TIM = 132, + PM = 7, + MDM = 768, + UDM = 458752, + PPE = 1073741824, + USD = -2147483648, }; -struct drm_dp_remote_i2c_read_ack_reply { - u8 port_number; - u8 num_bytes; - u8 bytes[255]; +enum latency_range { + lowest_latency = 0, + low_latency = 1, + bulk_latency = 2, + latency_invalid = 255, }; -struct drm_dp_remote_i2c_read_nak_reply { - u8 port_number; - u8 nak_reason; - u8 i2c_nak_transaction; +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 drm_dp_remote_i2c_write_ack_reply { - u8 port_number; +struct my_u { + __le64 a; + __le64 b; }; -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; +enum hub_led_mode { + INDICATOR_AUTO = 0, + INDICATOR_CYCLE = 1, + INDICATOR_GREEN_BLINK = 2, + INDICATOR_GREEN_BLINK_OFF = 3, + INDICATOR_AMBER_BLINK = 4, + INDICATOR_AMBER_BLINK_OFF = 5, + INDICATOR_ALT_BLINK = 6, + INDICATOR_ALT_BLINK_OFF = 7, +} __attribute__((mode(byte))); + +enum hub_quiescing_type { + HUB_DISCONNECT = 0, + HUB_PRE_RESET = 1, + HUB_SUSPEND = 2, }; -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; +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 drm_dp_sideband_msg_reply_body { - u8 reply_type; - u8 req_type; - union ack_replies u; +struct usb_tt_clear { + struct list_head clear_list; + unsigned int tt; + u16 devinfo; + struct usb_hcd *hcd; + struct usb_host_endpoint *ep; }; -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 usb_qualifier_descriptor { + __u8 bLength; + __u8 bDescriptorType; + __le16 bcdUSB; + __u8 bDeviceClass; + __u8 bDeviceSubClass; + __u8 bDeviceProtocol; + __u8 bMaxPacketSize0; + __u8 bNumConfigurations; + __u8 bRESERVED; }; -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 usbdevfs_hub_portinfo { + char nports; + char port[127]; }; -struct drm_dp_port_number_req { - u8 port_number; +struct usb_set_sel_req { + __u8 u1_sel; + __u8 u1_pel; + __le16 u2_sel; + __le16 u2_pel; }; -struct drm_dp_resource_status_notify { - u8 port_number; - u8 guid[16]; - u16 available_pbn; +enum xhci_ep_reset_type { + EP_HARD_RESET = 0, + EP_SOFT_RESET = 1, }; -struct drm_dp_query_payload { - u8 port_number; - u8 vcpi; +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 drm_dp_allocate_payload { - u8 port_number; - u8 number_sdp_streams; - u8 vcpi; - u16 pbn; - u8 sdp_stream_sink[16]; +enum i2c_driver_flags { + I2C_DRV_ACPI_WAIVE_D0_PROBE = 1, }; -struct drm_dp_remote_dpcd_read { - u8 port_number; - u32 dpcd_address; - u8 num_bytes; +struct gsb_buffer { + u8 status; + u8 len; + union { + u16 wdata; + u8 bdata; + struct { + struct {} __empty_data; + u8 data[0]; + }; + }; }; -struct drm_dp_remote_dpcd_write { - u8 port_number; - u32 dpcd_address; - u8 num_bytes; - u8 *bytes; +struct i2c_acpi_irq_context { + int irq; + bool wake_capable; }; -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 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 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 i2c_acpi_handler_data { + struct acpi_connection_info info; + struct i2c_adapter *adapter; }; -struct drm_dp_remote_i2c_write { - u8 port_number; - u8 write_i2c_device_id; - u8 num_bytes; - u8 *bytes; +enum { + DM_TIO_INSIDE_DM_IO = 0, + DM_TIO_IS_DUPLICATE_BIO = 1, }; -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; +enum { + DM_IO_ACCOUNTED = 0, + DM_IO_WAS_SPLIT = 1, + DM_IO_BLK_STAT = 2, }; -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 table_device { + struct list_head list; + refcount_t count; + struct dm_dev dm_dev; }; -struct drm_dp_sideband_msg_req_body { - u8 req_type; - union ack_req u; +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 drm_dp_pending_up_req { - struct drm_dp_sideband_msg_hdr hdr; - struct drm_dp_sideband_msg_req_body msg; - struct list_head next; +struct dm_pr { + u64 old_key; + u64 new_key; + u32 flags; + bool abort; + bool fail_early; + int ret; + enum pr_type type; + struct pr_keys *read_keys; + struct pr_held_reservation *rsv; }; -struct 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 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 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 menu_device { + int needs_update; + int tick_wakeup; + u64 next_timer_ns; + unsigned int bucket; + unsigned int correction_factor[12]; + unsigned int intervals[8]; + int interval_ptr; }; -struct intel_sdvo { - struct intel_encoder base; - struct i2c_adapter *i2c; - u8 slave_addr; - long: 0; - struct i2c_adapter ddc; - i915_reg_t sdvo_reg; - u16 controlled_output; - struct intel_sdvo_caps caps; - u8 colorimetry_cap; - long: 0; - int pixel_clock_min; - int pixel_clock_max; - u16 attached_output; - u16 hotplug_active; - enum port port; - u8 ddc_bus; - u8 dtd_sdvo_flags; - long: 0; -} __attribute__((packed)); +enum lg_g15_model { + LG_G15 = 0, + LG_G15_V2 = 1, + LG_G510 = 2, + LG_G510_USB_AUDIO = 3, + LG_Z10 = 4, +}; -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; +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 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 lg_g15_led { + struct led_classdev cdev; + enum led_brightness brightness; + enum lg_g15_led_type led; + u8 red; + u8 green; + u8 blue; }; -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 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 intel_sdvo_encode { - u8 dvi_rev; - u8 hdmi_rev; +struct gnet_estimator { + signed char interval; + unsigned char ewma_log; }; -struct intel_sdvo_set_target_input_args { - unsigned int target_1: 1; - unsigned int pad: 7; -} __attribute__((packed)); +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 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 net_fill_args { + u32 portid; + u32 seq; + int flags; + int cmd; + int nsid; + bool add_ref; + int ref_nsid; +}; -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 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; }; -struct intel_sdvo_get_trained_inputs_response { - unsigned int input0_trained: 1; - unsigned int input1_trained: 1; - unsigned int pad: 6; -} __attribute__((packed)); +enum { + NETDEV_A_DEV_IFINDEX = 1, + NETDEV_A_DEV_PAD = 2, + NETDEV_A_DEV_XDP_FEATURES = 3, + NETDEV_A_DEV_XDP_ZC_MAX_SEGS = 4, + NETDEV_A_DEV_XDP_RX_METADATA_FEATURES = 5, + __NETDEV_A_DEV_MAX = 6, + NETDEV_A_DEV_MAX = 5, +}; -struct intel_sdvo_preferred_input_timing_args { - u16 clock; - u16 width; - u16 height; - u8 interlace: 1; - u8 scaled: 1; - u8 pad: 6; -} __attribute__((packed)); +enum netdev_xdp_rx_metadata { + NETDEV_XDP_RX_METADATA_TIMESTAMP = 1, + NETDEV_XDP_RX_METADATA_HASH = 2, + NETDEV_XDP_RX_METADATA_MASK = 3, +}; -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)); +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, +}; -struct intel_sdvo_in_out_map { - u16 in0; - u16 in1; +enum { + NETDEV_NLGRP_MGMT = 0, }; -struct intel_sdvo_pixel_clock_range { - u16 min; - u16 max; +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 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; - u64 last_hw_sleep; - u64 total_hw_sleep; - u64 max_hw_sleep; - enum suspend_stat_step failed_steps[2]; +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, }; -typedef int (*pm_callback_t)(struct device *); +struct channels_reply_data { + struct ethnl_reply_data base; + struct ethtool_channels channels; +}; -struct ep_device { - struct usb_endpoint_descriptor *desc; - struct usb_device *udev; - struct device dev; +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, }; -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; +enum ctattr_protonat { + CTA_PROTONAT_UNSPEC = 0, + CTA_PROTONAT_PORT_MIN = 1, + CTA_PROTONAT_PORT_MAX = 2, + __CTA_PROTONAT_MAX = 3, }; -typedef void (*btf_trace_hwmon_attr_show)(void *, int, const char *, long); +struct nf_nat_proto_clean { + u8 l3proto; + u8 l4proto; +}; -typedef void (*btf_trace_hwmon_attr_store)(void *, int, const char *, long); +struct nf_nat_lookup_hook_priv { + struct nf_hook_entries __attribute__((btf_type_tag("rcu"))) *entries; + struct callback_head callback_head; +}; -typedef void (*btf_trace_hwmon_attr_show_string)(void *, int, const char *, const char *); +struct nf_nat_hooks_net { + struct nf_hook_ops *nat_hook_ops; + unsigned int users; +}; -enum hwmon_chip_attributes { - hwmon_chip_temp_reset_history = 0, - hwmon_chip_in_reset_history = 1, - hwmon_chip_curr_reset_history = 2, - hwmon_chip_power_reset_history = 3, - hwmon_chip_register_tz = 4, - hwmon_chip_update_interval = 5, - hwmon_chip_alarms = 6, - hwmon_chip_samples = 7, - hwmon_chip_curr_samples = 8, - hwmon_chip_in_samples = 9, - hwmon_chip_power_samples = 10, - hwmon_chip_temp_samples = 11, - hwmon_chip_beep_enable = 12, +struct nat_net { + struct nf_nat_hooks_net nat_proto_net[11]; }; -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, +struct tsq_tasklet { + struct tasklet_struct tasklet; + struct list_head head; }; -enum hwmon_energy_attributes { - hwmon_energy_enable = 0, - hwmon_energy_input = 1, - hwmon_energy_label = 2, +enum tsq_flags { + TSQF_THROTTLED = 1, + TSQF_QUEUED = 2, + TCPF_TSQ_DEFERRED = 4, + TCPF_WRITE_TIMER_DEFERRED = 8, + TCPF_DELACK_TIMER_DEFERRED = 16, + TCPF_MTU_REDUCED_DEFERRED = 32, + TCPF_ACK_DEFERRED = 64, }; -enum 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 { + BPF_WRITE_HDR_TCP_CURRENT_MSS = 1, + BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 2, }; -enum hwmon_fan_attributes { - hwmon_fan_enable = 0, - hwmon_fan_input = 1, - hwmon_fan_label = 2, - hwmon_fan_min = 3, - hwmon_fan_max = 4, - hwmon_fan_div = 5, - hwmon_fan_pulses = 6, - hwmon_fan_target = 7, - hwmon_fan_alarm = 8, - hwmon_fan_min_alarm = 9, - hwmon_fan_max_alarm = 10, - hwmon_fan_fault = 11, - hwmon_fan_beep = 12, +enum { + TCP_NO_QUEUE = 0, + TCP_RECV_QUEUE = 1, + TCP_SEND_QUEUE = 2, + TCP_QUEUES_NR = 3, }; -struct trace_event_raw_hwmon_attr_class { - struct trace_entry ent; - int index; - u32 __data_loc_attr_name; - long val; - char __data[0]; +struct sk_buff_fclones { + struct sk_buff skb1; + struct sk_buff skb2; + refcount_t fclone_ref; }; -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 mptcp_out_options {}; + +struct tcp_out_options { + u16 options; + u16 mss; + u8 ws; + u8 num_sack_blocks; + u8 hash_size; + u8 bpf_opt_len; + __u8 *hash_location; + __u32 tsval; + __u32 tsecr; + struct tcp_fastopen_cookie *fastopen_cookie; + struct mptcp_out_options mptcp; }; -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 icmp_err { + int errno; + unsigned int fatal: 1; }; -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 icmp_control { + enum skb_drop_reason (*handler)(struct sk_buff *); + short error; }; -struct trace_event_data_offsets_hwmon_attr_class { - u32 attr_name; +enum { + XFRM_LOOKUP_ICMP = 1, + XFRM_LOOKUP_QUEUE = 2, + XFRM_LOOKUP_KEEP_DST_REF = 4, }; -struct trace_event_data_offsets_hwmon_attr_show_string { - u32 attr_name; - u32 label; +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 hid_bpf_ops { - struct hid_report * (*hid_get_report)(struct hid_report_enum *, const u8 *); - int (*hid_hw_raw_request)(struct hid_device *, unsigned char, __u8 *, size_t, enum hid_report_type, enum hid_class_request); - struct module *owner; - struct bus_type *bus_type; +struct icmp_extobj_hdr { + __be16 length; + __u8 class_num; + __u8 class_type; }; -enum hid_bpf_prog_type { - HID_BPF_PROG_TYPE_UNDEF = -1, - HID_BPF_PROG_TYPE_DEVICE_EVENT = 0, - HID_BPF_PROG_TYPE_RDESC_FIXUP = 1, - HID_BPF_PROG_TYPE_MAX = 2, +struct icmp_ext_hdr { + __u8 reserved1: 4; + __u8 version: 4; + __u8 reserved2; + __sum16 checksum; }; -enum hid_bpf_attach_flags { - HID_BPF_FLAG_NONE = 0, - HID_BPF_FLAG_INSERT_HEAD = 1, - HID_BPF_FLAG_MAX = 2, +struct icmp_ext_echo_ctype3_hdr { + __be16 afi; + __u8 addrlen; + __u8 reserved; }; -struct hid_bpf_ctx { - __u32 index; - const struct hid_device *hid; - __u32 allocated_size; - enum hid_report_type report_type; +struct icmp_ext_echo_iio { + struct icmp_extobj_hdr extobj_hdr; union { - __s32 retval; - __s32 size; - }; + char name[16]; + __be32 ifindex; + struct { + struct icmp_ext_echo_ctype3_hdr ctype3_hdr; + union { + __be32 ipv4_addr; + struct in6_addr ipv6_addr; + } ip_addr; + } addr; + } ident; }; -struct hid_bpf_ctx_kern { - struct hid_bpf_ctx ctx; - u8 *data; +struct xfrm_algo_list { + int (*find)(const char *, u32, u32); + struct xfrm_algo_desc *algs; + int entries; }; -struct ucred { - __u32 pid; - __u32 uid; - __u32 gid; +struct xfrm_aead_name { + const char *name; + int icvbits; }; -struct scm_timestamping64 { - struct __kernel_timespec ts[3]; +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; }; -struct scm_timestamping { - struct __kernel_old_timespec ts[3]; +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, }; -typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *); - enum { - ETHTOOL_A_HEADER_UNSPEC = 0, - ETHTOOL_A_HEADER_DEV_INDEX = 1, - ETHTOOL_A_HEADER_DEV_NAME = 2, - ETHTOOL_A_HEADER_FLAGS = 3, - __ETHTOOL_A_HEADER_CNT = 4, - ETHTOOL_A_HEADER_MAX = 3, + XFRM_DEV_OFFLOAD_IN = 1, + XFRM_DEV_OFFLOAD_OUT = 2, + XFRM_DEV_OFFLOAD_FWD = 3, }; -enum ethtool_multicast_groups { - ETHNL_MCGRP_MONITOR = 0, +enum { + XFRM_SHARE_ANY = 0, + XFRM_SHARE_SESSION = 1, + XFRM_SHARE_USER = 2, + XFRM_SHARE_UNIQUE = 3, }; -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; +enum { + XFRM_POLICY_TYPE_MAIN = 0, + XFRM_POLICY_TYPE_SUB = 1, + XFRM_POLICY_TYPE_MAX = 2, + XFRM_POLICY_TYPE_ANY = 255, }; -struct ip_rt_info { - __be32 daddr; - __be32 saddr; - u_int8_t tos; - u_int32_t mark; +enum xfrm_sadattr_type_t { + XFRMA_SAD_UNSPEC = 0, + XFRMA_SAD_CNT = 1, + XFRMA_SAD_HINFO = 2, + __XFRMA_SAD_MAX = 3, }; -enum xt_policy_flags { - XT_POLICY_MATCH_IN = 1, - XT_POLICY_MATCH_OUT = 2, - XT_POLICY_MATCH_NONE = 4, - XT_POLICY_MATCH_STRICT = 8, +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 xt_policy_spec { - __u8 saddr: 1; - __u8 daddr: 1; - __u8 proto: 1; - __u8 mode: 1; - __u8 spi: 1; - __u8 reqid: 1; +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 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; +struct xfrm_user_tmpl { + struct xfrm_id id; + __u16 family; + xfrm_address_t saddr; __u32 reqid; - __u8 proto; __u8 mode; - struct xt_policy_spec match; - struct xt_policy_spec invert; + __u8 share; + __u8 optional; + __u32 aalgos; + __u32 ealgos; + __u32 calgos; }; -struct xt_policy_info { - struct xt_policy_elem pol[4]; - __u16 flags; - __u16 len; +struct xfrm_policy_walk { + struct xfrm_policy_walk_entry walk; + u8 type; + u32 seq; }; -struct igmphdr { - __u8 type; - __u8 code; - __sum16 csum; - __be32 group; +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 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 xfrm_user_expire { + struct xfrm_usersa_info state; + __u8 hard; }; -struct igmpv3_grec { - __u8 grec_type; - __u8 grec_auxwords; - __be16 grec_nsrcs; - __be32 grec_mca; - __be32 grec_src[0]; +struct xfrm_usersa_id { + xfrm_address_t daddr; + __be32 spi; + __u16 family; + __u8 proto; }; -struct igmpv3_report { - __u8 type; - __u8 resv1; - __sum16 csum; - __be16 resv2; - __be16 ngrec; - struct igmpv3_grec grec[0]; +struct xfrm_usersa_flush { + __u8 proto; }; -struct igmp_mc_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct in_device *in_dev; +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 igmp_mcf_iter_state { - struct seq_net_private p; - struct net_device *dev; - struct in_device *idev; - struct ip_mc_list *im; +struct xfrm_user_sec_ctx { + __u16 len; + __u16 exttype; + __u8 ctx_alg; + __u8 ctx_doi; + __u16 ctx_len; }; -struct icmp6_filter { - __u32 data[8]; +struct xfrm_user_offload { + int ifindex; + __u8 flags; }; -struct raw6_sock { - struct inet_sock inet; - __u32 checksum; - __u32 offset; - struct icmp6_filter filter; - __u32 ip6mr_table; - struct ipv6_pinfo inet6; +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 raw_iter_state { - struct seq_net_private p; - int bucket; +struct xfrm_userpolicy_id { + struct xfrm_selector sel; + __u32 index; + __u8 dir; }; -struct raw6_frag_vec { - struct msghdr *msg; - int hlen; - char c[4]; +struct xfrm_user_polexpire { + struct xfrm_userpolicy_info pol; + __u8 hard; }; -struct cache_queue { - struct list_head list; - int reader; +struct xfrm_user_report { + __u8 proto; + struct xfrm_selector sel; }; -struct cache_request { - struct cache_queue q; - struct cache_head *item; - char *buf; - int len; - int readers; +struct xfrm_dump_info { + struct sk_buff *in_skb; + struct sk_buff *out_skb; + u32 nlmsg_seq; + u16 nlmsg_flags; }; -struct thread_deferred_req { - struct cache_deferred_req handle; - struct completion completion; +struct xfrm_userpolicy_type { + __u8 type; + __u16 reserved1; + __u8 reserved2; }; -struct cache_reader { - struct cache_queue q; - int offset; +struct xfrmu_sadhinfo { + __u32 sadhcnt; + __u32 sadhmcnt; }; -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, +struct xfrmk_spdinfo { + u32 incnt; + u32 outcnt; + u32 fwdcnt; + u32 inscnt; + u32 outscnt; + u32 fwdscnt; + u32 spdhcnt; + u32 spdhmcnt; }; -struct amd_hostbridge { - u32 bus; - u32 slot; - u32 device; +struct xfrmu_spdinfo { + __u32 incnt; + __u32 outcnt; + __u32 fwdcnt; + __u32 inscnt; + __u32 outscnt; + __u32 fwdscnt; }; -struct pci_root_info { - struct list_head list; - char name[12]; - struct list_head resources; - struct resource busn; - int node; - int link; +struct xfrmu_spdhinfo { + __u32 spdhcnt; + __u32 spdhmcnt; }; -struct pci_root_res { - struct list_head list; - struct resource res; +struct xfrmu_spdhthresh { + __u8 lbits; + __u8 rbits; }; -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, +struct xfrm_userpolicy_default { + __u8 in; + __u8 fwd; + __u8 out; }; -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; +struct xfrm_aevent_id { + struct xfrm_usersa_id sa_id; + xfrm_address_t saddr; + __u32 flags; + __u32 reqid; }; -enum context___2 { - IN_KERNEL = 1, - IN_USER = 2, - IN_KERNEL_RECOV = 3, +struct xfrm_userspi_info { + struct xfrm_usersa_info info; + __u32 min; + __u32 max; }; -enum exception { - EXCP_CONTEXT = 1, - NO_EXCP = 2, +struct nf_sockopt_ops { + struct list_head list; + u_int8_t pf; + int set_optmin; + int set_optmax; + int (*set)(struct sock *, int, sockptr_t, unsigned int); + int get_optmin; + int get_optmax; + int (*get)(struct sock *, int, void __attribute__((btf_type_tag("user"))) *, int *); + struct module *owner; }; -enum ser { - SER_REQUIRED = 1, - NO_SER = 2, +struct xt_error_target { + struct xt_entry_target target; + char errorname[30]; }; -struct mtrr_sentry32 { - compat_ulong_t base; - compat_uint_t size; - compat_uint_t type; +struct ip6t_error { + struct ip6t_entry entry; + struct xt_error_target target; }; -struct mtrr_gentry32 { - compat_ulong_t regnum; - compat_uint_t base; - compat_uint_t size; - compat_uint_t type; +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 mtrr_sentry { - __u64 base; - __u32 size; - __u32 type; +struct xt_percpu_counter_alloc_state { + unsigned int off; + const char __attribute__((btf_type_tag("percpu"))) *mem; }; -struct mtrr_gentry { - __u64 base; - __u32 size; - __u32 regnum; - __u32 type; - __u32 _pad; +struct xt_counters_info { + char name[32]; + unsigned int num_counters; + struct xt_counters counters[0]; }; -struct cache_map { - u64 start; - u64 end; - u64 flags; - u64 type: 8; - u64 fixed: 1; +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 mtrr_var_range { - __u32 base_lo; - __u32 base_hi; - __u32 mask_lo; - __u32 mask_hi; +struct ip6t_get_entries { + char name[32]; + unsigned int size; + struct ip6t_entry entrytable[0]; }; -struct mtrr_state_type { - struct mtrr_var_range var_ranges[256]; - mtrr_type fixed_ranges[88]; - unsigned char enabled; - bool have_fixed; - mtrr_type def_type; +struct xt_get_revision { + char name[29]; + __u8 revision; }; -struct fixed_range_block { - int base_msr; - int ranges; -}; +typedef void (*btf_trace_rpc_xdr_sendto)(void *, const struct rpc_task *, const struct xdr_buf *); -struct vmware_steal_time { - union { - uint64_t clock; - struct { - uint32_t clock_low; - uint32_t clock_high; - }; - }; - uint64_t reserved[7]; -}; +typedef void (*btf_trace_rpc_xdr_recvfrom)(void *, const struct rpc_task *, const struct xdr_buf *); -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; +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 struct rpc_create_args *); + +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 *); + +struct sock_xprt; + +typedef void (*btf_trace_rpc_socket_nospace)(void *, const struct rpc_rqst *, const struct sock_xprt *); + +struct sock_xprt { + struct rpc_xprt xprt; + struct socket *sock; + struct sock *inet; + struct file *file; + struct { struct { - u32 cvm_type: 4; - u32 reserved1: 1; - u32 shared_gpa_boundary_active: 1; - u32 shared_gpa_boundary_bits: 6; - u32 reserved2: 20; + __be32 fraghdr; + __be32 xid; + __be32 calldir; }; - }; - u64 shared_gpa_boundary; + 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 completion handshake_done; + struct __kernel_sockaddr_storage srcaddr; + unsigned short srcport; + int xprt_err; + struct rpc_clnt *clnt; + 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 *); }; -enum hv_isolation_type { - HV_ISOLATION_TYPE_NONE = 0, - HV_ISOLATION_TYPE_VBS = 1, - HV_ISOLATION_TYPE_SNP = 2, -}; +typedef void (*btf_trace_xprt_create)(void *, const struct rpc_xprt *); -struct acpi_madt_multiproc_wakeup_mailbox { - u16 command; - u16 reserved; - u32 apic_id; - u64 wakeup_vector; - u8 reserved_os[2032]; - u8 reserved_firmware[2048]; -}; +typedef void (*btf_trace_xprt_connect)(void *, const struct rpc_xprt *); -struct acpi_table_boot { - struct acpi_table_header header; - u8 cmos_index; - u8 reserved[3]; -}; +typedef void (*btf_trace_xprt_disconnect_auto)(void *, const struct rpc_xprt *); -struct acpi_table_madt { - struct acpi_table_header header; - u32 address; - u32 flags; -}; +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 *); -struct acpi_madt_multiproc_wakeup { - struct acpi_subtable_header header; - u16 mailbox_version; - u32 reserved; - u64 base_address; -}; +typedef void (*btf_trace_rpcb_getport)(void *, const struct rpc_clnt *, const struct rpc_task *, unsigned int); -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)); +typedef void (*btf_trace_rpcb_setport)(void *, const struct rpc_task *, int, unsigned short); -typedef int (*wakeup_cpu_handler)(int, unsigned long); +typedef void (*btf_trace_pmap_register)(void *, u32, u32, int, unsigned short); -struct tsc_adjust { - s64 bootval; - s64 adjusted; - unsigned long nextcheck; - bool warned; -}; +typedef void (*btf_trace_rpcb_register)(void *, u32, u32, const char *, const char *); -enum apic_intr_mode_id { - APIC_PIC = 0, - APIC_VIRTUAL_WIRE = 1, - APIC_VIRTUAL_WIRE_NO_CONFIG = 2, - APIC_SYMMETRIC_IO = 3, - APIC_SYMMETRIC_IO_NO_ROUTING = 4, -}; +typedef void (*btf_trace_rpcb_unregister)(void *, u32, u32, const char *); -union apic_ir { - unsigned long map[4]; - u32 regs[8]; -}; +typedef void (*btf_trace_rpc_tls_unavailable)(void *, const struct rpc_clnt *, const struct rpc_xprt *); -struct amd_nb_bus_dev_range { - u8 bus; - u8 dev_base; - u8 dev_limit; -}; +typedef void (*btf_trace_rpc_tls_not_started)(void *, const struct rpc_clnt *, const struct rpc_xprt *); -struct amd_northbridge_info { - u16 num; - u64 flags; - struct amd_northbridge *nb; -}; +typedef void (*btf_trace_svc_xdr_recvfrom)(void *, const struct xdr_buf *); -enum { - REGION_INTERSECTS = 0, - REGION_DISJOINT = 1, - REGION_MIXED = 2, -}; +typedef void (*btf_trace_svc_xdr_sendto)(void *, __be32, const struct xdr_buf *); -struct map_range { - unsigned long start; - unsigned long end; - unsigned int page_size_mask; -}; +typedef void (*btf_trace_svc_authenticate)(void *, const struct svc_rqst *, enum svc_auth_status); -struct efi_mem_range { - struct range range; - u64 attribute; -}; +typedef void (*btf_trace_svc_process)(void *, const struct svc_rqst *, const char *); -typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int); +typedef void (*btf_trace_svc_defer)(void *, const struct svc_rqst *); -typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); +typedef void (*btf_trace_svc_drop)(void *, const struct svc_rqst *); -enum sig_handler { - HANDLER_CURRENT = 0, - HANDLER_SIG_DFL = 1, - HANDLER_EXIT = 2, -}; +typedef void (*btf_trace_svc_send)(void *, const struct svc_rqst *, int); -enum { - TRACE_SIGNAL_DELIVERED = 0, - TRACE_SIGNAL_IGNORED = 1, - TRACE_SIGNAL_ALREADY_PENDING = 2, - TRACE_SIGNAL_OVERFLOW_FAIL = 3, - TRACE_SIGNAL_LOSE_INFO = 4, -}; +typedef void (*btf_trace_svc_replace_page_err)(void *, const struct svc_rqst *); -struct sigqueue { - struct list_head list; - int flags; - kernel_siginfo_t info; - struct ucounts *ucounts; -}; +typedef void (*btf_trace_svc_stats_latency)(void *, const struct svc_rqst *); -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]; -}; +typedef void (*btf_trace_svc_xprt_create_err)(void *, const char *, const char *, struct sockaddr *, size_t, const struct svc_xprt *); -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]; -}; +typedef void (*btf_trace_svc_xprt_enqueue)(void *, const struct svc_xprt *, unsigned long); -struct compat_sigaction { - compat_uptr_t sa_handler; - compat_ulong_t sa_flags; - compat_uptr_t sa_restorer; - compat_sigset_t sa_mask; -}; +typedef void (*btf_trace_svc_xprt_dequeue)(void *, const struct svc_rqst *); -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; -}; +typedef void (*btf_trace_svc_xprt_no_write_space)(void *, const struct svc_xprt *); -struct trace_event_data_offsets_signal_generate {}; +typedef void (*btf_trace_svc_xprt_close)(void *, const struct svc_xprt *); -struct trace_event_data_offsets_signal_deliver {}; +typedef void (*btf_trace_svc_xprt_detach)(void *, const struct svc_xprt *); -struct ptrace_sud_config { - __u64 mode; - __u64 selector; - __u64 offset; - __u64 len; -}; +typedef void (*btf_trace_svc_xprt_free)(void *, const struct svc_xprt *); -struct tk_fast { - seqcount_latch_t seq; - struct tk_read_base base[2]; -}; +typedef void (*btf_trace_svc_tls_start)(void *, const struct svc_xprt *); -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, -}; +typedef void (*btf_trace_svc_tls_upcall)(void *, const struct svc_xprt *); -enum timekeeping_adv_mode { - TK_ADV_TICK = 0, - TK_ADV_FREQ = 1, -}; +typedef void (*btf_trace_svc_tls_unavailable)(void *, const struct svc_xprt *); -struct ktime_timestamps { - u64 mono; - u64 boot; - u64 real; -}; +typedef void (*btf_trace_svc_tls_not_started)(void *, const struct svc_xprt *); -struct fmeter { - int cnt; - int val; - time64_t time; - spinlock_t lock; -}; +typedef void (*btf_trace_svc_tls_timed_out)(void *, const struct svc_xprt *); -enum prs_errcode { - PERR_NONE = 0, - PERR_INVCPUS = 1, - PERR_INVPARENT = 2, - PERR_NOTPART = 3, - PERR_NOTEXCL = 4, - PERR_NOCPUS = 5, - PERR_HOTPLUG = 6, - PERR_CPUSEMPTY = 7, -}; +typedef void (*btf_trace_svc_xprt_accept)(void *, const struct svc_xprt *, const char *); -struct cpuset { - struct cgroup_subsys_state css; - unsigned long flags; - cpumask_var_t cpus_allowed; - nodemask_t mems_allowed; - cpumask_var_t effective_cpus; - nodemask_t effective_mems; - cpumask_var_t subparts_cpus; - nodemask_t old_mems_allowed; - struct fmeter fmeter; - int attach_in_progress; - int pn; - int relax_domain_level; - int nr_subparts_cpus; - int partition_root_state; - int use_parent_ecpus; - int child_ecpus_count; - int nr_deadline_tasks; - int nr_migrate_dl_tasks; - u64 sum_migrate_dl_bw; - enum prs_errcode prs_err; - struct cgroup_file partition_file; -}; +typedef void (*btf_trace_svc_wake_up)(void *, int); -enum subparts_cmd { - partcmd_enable = 0, - partcmd_disable = 1, - partcmd_update = 2, - partcmd_invalidate = 3, -}; +typedef void (*btf_trace_svc_alloc_arg_err)(void *, unsigned int, unsigned int); -struct cpuset_migrate_mm_work { - struct work_struct work; - struct mm_struct *mm; - nodemask_t from; - nodemask_t to; -}; +typedef void (*btf_trace_svc_defer_drop)(void *, const struct svc_deferred_req *); -struct tmpmasks { - cpumask_var_t addmask; - cpumask_var_t delmask; - cpumask_var_t new_cpus; -}; +typedef void (*btf_trace_svc_defer_queue)(void *, const struct svc_deferred_req *); -typedef enum { - CS_ONLINE = 0, - CS_CPU_EXCLUSIVE = 1, - CS_MEM_EXCLUSIVE = 2, - CS_MEM_HARDWALL = 3, - CS_MEMORY_MIGRATE = 4, - CS_SCHED_LOAD_BALANCE = 5, - CS_SPREAD_PAGE = 6, - CS_SPREAD_SLAB = 7, -} cpuset_flagbits_t; +typedef void (*btf_trace_svc_defer_recv)(void *, const struct svc_deferred_req *); -typedef enum { - FILE_MEMORY_MIGRATE = 0, - FILE_CPULIST = 1, - FILE_MEMLIST = 2, - FILE_EFFECTIVE_CPULIST = 3, - FILE_EFFECTIVE_MEMLIST = 4, - FILE_SUBPARTS_CPULIST = 5, - FILE_CPU_EXCLUSIVE = 6, - FILE_MEM_EXCLUSIVE = 7, - FILE_MEM_HARDWALL = 8, - FILE_SCHED_LOAD_BALANCE = 9, - FILE_PARTITION_ROOT = 10, - FILE_SCHED_RELAX_DOMAIN_LEVEL = 11, - FILE_MEMORY_PRESSURE_ENABLED = 12, - FILE_MEMORY_PRESSURE = 13, - FILE_SPREAD_PAGE = 14, - FILE_SPREAD_SLAB = 15, -} cpuset_filetype_t; +typedef void (*btf_trace_svcsock_new)(void *, const void *, const struct socket *); -typedef void (*btf_trace_cpu_idle)(void *, unsigned int, unsigned int); +typedef void (*btf_trace_svcsock_free)(void *, const void *, const struct socket *); -typedef void (*btf_trace_cpu_idle_miss)(void *, unsigned int, unsigned int, bool); +typedef void (*btf_trace_svcsock_marker)(void *, const struct svc_xprt *, __be32); -typedef void (*btf_trace_powernv_throttle)(void *, int, const char *, int); +typedef void (*btf_trace_svcsock_udp_send)(void *, const struct svc_xprt *, ssize_t); -typedef void (*btf_trace_pstate_sample)(void *, u32, u32, u32, u32, u64, u64, u64, u32, u32); +typedef void (*btf_trace_svcsock_udp_recv)(void *, const struct svc_xprt *, ssize_t); -typedef void (*btf_trace_cpu_frequency)(void *, unsigned int, unsigned int); +typedef void (*btf_trace_svcsock_udp_recv_err)(void *, const struct svc_xprt *, ssize_t); -typedef void (*btf_trace_cpu_frequency_limits)(void *, struct cpufreq_policy *); +typedef void (*btf_trace_svcsock_tcp_send)(void *, const struct svc_xprt *, ssize_t); -typedef void (*btf_trace_device_pm_callback_start)(void *, struct device *, const char *, int); +typedef void (*btf_trace_svcsock_tcp_recv)(void *, const struct svc_xprt *, ssize_t); -typedef void (*btf_trace_device_pm_callback_end)(void *, struct device *, int); +typedef void (*btf_trace_svcsock_tcp_recv_eagain)(void *, const struct svc_xprt *, ssize_t); -typedef void (*btf_trace_suspend_resume)(void *, const char *, int, bool); +typedef void (*btf_trace_svcsock_tcp_recv_err)(void *, const struct svc_xprt *, ssize_t); -typedef void (*btf_trace_wakeup_source_activate)(void *, const char *, unsigned int); +typedef void (*btf_trace_svcsock_data_ready)(void *, const struct svc_xprt *, ssize_t); -typedef void (*btf_trace_wakeup_source_deactivate)(void *, const char *, unsigned int); +typedef void (*btf_trace_svcsock_write_space)(void *, const struct svc_xprt *, ssize_t); -typedef void (*btf_trace_clock_enable)(void *, const char *, unsigned int, unsigned int); +typedef void (*btf_trace_svcsock_tcp_recv_short)(void *, const struct svc_xprt *, u32, u32); -typedef void (*btf_trace_clock_disable)(void *, const char *, unsigned int, unsigned int); +typedef void (*btf_trace_svcsock_tcp_state)(void *, const struct svc_xprt *, const struct socket *); -typedef void (*btf_trace_clock_set_rate)(void *, const char *, unsigned int, unsigned int); +typedef void (*btf_trace_svcsock_accept_err)(void *, const struct svc_xprt *, const char *, long); -typedef void (*btf_trace_power_domain_target)(void *, const char *, unsigned int, unsigned int); +typedef void (*btf_trace_svcsock_getpeername_err)(void *, const struct svc_xprt *, const char *, long); -typedef void (*btf_trace_pm_qos_add_request)(void *, s32); +typedef void (*btf_trace_cache_entry_expired)(void *, const struct cache_detail *, const struct cache_head *); -typedef void (*btf_trace_pm_qos_update_request)(void *, s32); +typedef void (*btf_trace_cache_entry_upcall)(void *, const struct cache_detail *, const struct cache_head *); -typedef void (*btf_trace_pm_qos_remove_request)(void *, s32); +typedef void (*btf_trace_cache_entry_update)(void *, const struct cache_detail *, const struct cache_head *); -typedef void (*btf_trace_pm_qos_update_target)(void *, enum pm_qos_req_action, int, int); +typedef void (*btf_trace_cache_entry_make_negative)(void *, const struct cache_detail *, const struct cache_head *); -typedef void (*btf_trace_pm_qos_update_flags)(void *, enum pm_qos_req_action, int, int); +typedef void (*btf_trace_cache_entry_no_listener)(void *, const struct cache_detail *, const struct cache_head *); -typedef void (*btf_trace_dev_pm_qos_add_request)(void *, const char *, enum dev_pm_qos_req_type, s32); +typedef void (*btf_trace_svc_register)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); -typedef void (*btf_trace_dev_pm_qos_update_request)(void *, const char *, enum dev_pm_qos_req_type, s32); +typedef void (*btf_trace_svc_noregister)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); -typedef void (*btf_trace_dev_pm_qos_remove_request)(void *, const char *, enum dev_pm_qos_req_type, s32); +typedef void (*btf_trace_svc_unregister)(void *, const char *, const u32, int); -typedef void (*btf_trace_guest_halt_poll_ns)(void *, bool, unsigned int, unsigned int); +struct rpc_buffer { + size_t len; + char data[0]; +}; -struct trace_event_raw_cpu { +struct trace_event_raw_rpc_xdr_buf_class { struct trace_entry ent; - u32 state; - u32 cpu_id; + 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_cpu_idle_miss { +struct trace_event_raw_rpc_clnt_class { struct trace_entry ent; - u32 cpu_id; - u32 state; - bool below; + unsigned int client_id; char __data[0]; }; -struct trace_event_raw_powernv_throttle { +struct trace_event_raw_rpc_clnt_new { struct trace_entry ent; - int chip_id; - u32 __data_loc_reason; - int pmax; + unsigned int client_id; + unsigned long xprtsec; + unsigned long flags; + u32 __data_loc_program; + u32 __data_loc_server; + u32 __data_loc_addr; + u32 __data_loc_port; char __data[0]; }; -struct trace_event_raw_pstate_sample { +struct trace_event_raw_rpc_clnt_new_err { 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; + int error; + u32 __data_loc_program; + u32 __data_loc_server; char __data[0]; }; -struct trace_event_raw_cpu_frequency_limits { +struct trace_event_raw_rpc_clnt_clone_err { struct trace_entry ent; - u32 min_freq; - u32 max_freq; - u32 cpu_id; + unsigned int client_id; + int error; char __data[0]; }; -struct trace_event_raw_device_pm_callback_start { +struct trace_event_raw_rpc_task_status { struct trace_entry ent; - u32 __data_loc_device; - u32 __data_loc_driver; - u32 __data_loc_parent; - u32 __data_loc_pm_ops; - int event; + unsigned int task_id; + unsigned int client_id; + int status; char __data[0]; }; -struct trace_event_raw_device_pm_callback_end { +struct trace_event_raw_rpc_request { struct trace_entry ent; - u32 __data_loc_device; - u32 __data_loc_driver; - int error; + 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_suspend_resume { +struct trace_event_raw_rpc_task_running { struct trace_entry ent; - const char *action; - int val; - bool start; + 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_wakeup_source { +struct trace_event_raw_rpc_task_queued { struct trace_entry ent; - u32 __data_loc_name; - u64 state; + 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_clock { +struct trace_event_raw_rpc_failure { struct trace_entry ent; - u32 __data_loc_name; - u64 state; - u64 cpu_id; + unsigned int task_id; + unsigned int client_id; char __data[0]; }; -struct trace_event_raw_power_domain { +struct trace_event_raw_rpc_reply_event { struct trace_entry ent; - u32 __data_loc_name; - u64 state; - u64 cpu_id; + 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_cpu_latency_qos_request { +struct trace_event_raw_rpc_buf_alloc { struct trace_entry ent; - s32 value; + unsigned int task_id; + unsigned int client_id; + size_t callsize; + size_t recvsize; + int status; char __data[0]; }; -struct trace_event_raw_pm_qos_update { +struct trace_event_raw_rpc_call_rpcerror { struct trace_entry ent; - enum pm_qos_req_action action; - int prev_value; - int curr_value; + unsigned int task_id; + unsigned int client_id; + int tk_status; + int rpc_status; char __data[0]; }; -struct trace_event_raw_dev_pm_qos_request { +struct trace_event_raw_rpc_stats_latency { struct trace_entry ent; - u32 __data_loc_name; - enum dev_pm_qos_req_type type; - s32 new_value; + 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_guest_halt_poll_ns { +struct trace_event_raw_rpc_xdr_overflow { struct trace_entry ent; - bool grow; - unsigned int new; - unsigned int old; + 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_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_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_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_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_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_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 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 swap_iocb { - struct kiocb iocb; - struct bio_vec bvec[32]; - int pages; - int len; +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]; }; -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_event_raw_rpc_xprt_lifetime_class { 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; + unsigned long state; + u32 __data_loc_addr; + u32 __data_loc_port; char __data[0]; }; -struct trace_event_raw_netfs_rreq { +struct trace_event_raw_rpc_xprt_event { struct trace_entry ent; - unsigned int rreq; - unsigned int flags; - enum netfs_io_origin origin; - enum netfs_rreq_trace what; + u32 xid; + int status; + u32 __data_loc_addr; + u32 __data_loc_port; char __data[0]; }; -struct trace_event_raw_netfs_sreq { +struct trace_event_raw_xprt_transmit { 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; + unsigned int task_id; + unsigned int client_id; + u32 xid; + u32 seqno; + int status; char __data[0]; }; -struct trace_event_raw_netfs_failure { +struct trace_event_raw_xprt_retransmit { 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; + 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_netfs_rreq_ref { +struct trace_event_raw_xprt_ping { struct trace_entry ent; - unsigned int rreq; - int ref; - enum netfs_rreq_ref_trace what; + int status; + u32 __data_loc_addr; + u32 __data_loc_port; char __data[0]; }; -struct trace_event_raw_netfs_sreq_ref { +struct trace_event_raw_xprt_writelock_event { struct trace_entry ent; - unsigned int rreq; - unsigned int subreq; - int ref; - enum netfs_sreq_ref_trace what; + unsigned int task_id; + unsigned int client_id; + unsigned int snd_task_id; 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 jbd2_revoke_table_s { - int hash_size; - int hash_shift; - struct list_head *hash_table; +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 jbd2_revoke_record_s { - struct list_head hash; - tid_t sequence; - unsigned long long blocknr; +struct trace_event_raw_xprt_reserve { + struct trace_entry ent; + unsigned int task_id; + unsigned int client_id; + u32 xid; + char __data[0]; }; -struct jbd2_journal_revoke_header_s { - journal_header_t r_header; - __be32 r_count; +struct trace_event_raw_xs_data_ready { + struct trace_entry ent; + u32 __data_loc_addr; + u32 __data_loc_port; + char __data[0]; }; -typedef struct jbd2_journal_revoke_header_s jbd2_journal_revoke_header_t; - -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, +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]; }; -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 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]; }; -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, +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 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 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 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 trace_event_raw_pmap_register { + struct trace_entry ent; + unsigned int program; + unsigned int version; + int protocol; + unsigned int port; + char __data[0]; }; -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); +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]; }; -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_event_raw_rpcb_unregister { struct trace_entry ent; - u32 __data_loc_dstaddr; - unsigned long error; + unsigned int program; + unsigned int version; + u32 __data_loc_netid; char __data[0]; }; -struct trace_event_raw_nfs4_setup_sequence { +struct trace_event_raw_rpc_tls_class { struct trace_entry ent; - unsigned int session; - unsigned int slot_nr; - unsigned int seq_nr; - unsigned int highest_used_slotid; + unsigned long requested_policy; + u32 version; + u32 __data_loc_servername; + u32 __data_loc_progname; char __data[0]; }; -struct trace_event_raw_nfs4_state_mgr { +struct trace_event_raw_svc_xdr_msg_class { struct trace_entry ent; - unsigned long state; - u32 __data_loc_hostname; + 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_nfs4_state_mgr_failed { +struct trace_event_raw_svc_xdr_buf_class { struct trace_entry ent; - unsigned long error; - unsigned long state; - u32 __data_loc_hostname; - u32 __data_loc_section; + 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_nfs4_xdr_bad_operation { +struct trace_event_raw_svc_authenticate { struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; + u32 __data_loc_server; + u32 __data_loc_client; + unsigned int netns_ino; u32 xid; - u32 op; - u32 expected; + unsigned long svc_status; + unsigned long auth_stat; char __data[0]; }; -struct trace_event_raw_nfs4_xdr_event { +struct trace_event_raw_svc_process { struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; u32 xid; - u32 op; - unsigned long error; + u32 vers; + u32 proc; + u32 __data_loc_service; + u32 __data_loc_procedure; + u32 __data_loc_addr; char __data[0]; }; -struct trace_event_raw_nfs4_cb_error_class { +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; - u32 cbident; + unsigned long flags; char __data[0]; }; -struct trace_event_raw_nfs4_open_event { +struct trace_event_raw_svc_rqst_status { struct trace_entry ent; - unsigned long error; + u32 __data_loc_server; + u32 __data_loc_client; + unsigned int netns_ino; + u32 xid; + int status; 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_event_raw_svc_replace_page_err { struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - unsigned int fmode; - int stateid_seq; - u32 stateid_hash; + u32 __data_loc_server; + u32 __data_loc_client; + unsigned int netns_ino; + u32 xid; + const void *begin; + const void *respages; + const void *nextpage; char __data[0]; }; -struct trace_event_raw_nfs4_close { +struct trace_event_raw_svc_stats_latency { struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - unsigned int fmode; - unsigned long error; - int stateid_seq; - u32 stateid_hash; + 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_nfs4_lock_event { +struct trace_event_raw_svc_xprt_create_err { 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; + long error; + u32 __data_loc_program; + u32 __data_loc_protocol; + u32 __data_loc_addr; char __data[0]; }; -struct trace_event_raw_nfs4_set_lock { +struct trace_event_raw_svc_xprt_enqueue { 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; + u32 __data_loc_server; + u32 __data_loc_client; + unsigned long flags; + unsigned int netns_ino; char __data[0]; }; -struct trace_event_raw_nfs4_state_lock_reclaim { +struct trace_event_raw_svc_xprt_dequeue { 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; + 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_nfs4_set_delegation_event { +struct trace_event_raw_svc_xprt_event { struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - unsigned int fmode; + u32 __data_loc_server; + u32 __data_loc_client; + unsigned long flags; + unsigned int netns_ino; char __data[0]; }; -struct trace_event_raw_nfs4_delegreturn_exit { +struct trace_event_raw_svc_xprt_accept { struct trace_entry ent; - dev_t dev; - u32 fhandle; - unsigned long error; - int stateid_seq; - u32 stateid_hash; + 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_nfs4_lookup_event { +struct trace_event_raw_svc_wake_up { struct trace_entry ent; - dev_t dev; - unsigned long error; - u64 dir; - u32 __data_loc_name; + int pid; char __data[0]; }; -struct trace_event_raw_nfs4_lookupp { +struct trace_event_raw_svc_alloc_arg_err { struct trace_entry ent; - dev_t dev; - u64 ino; - unsigned long error; + unsigned int requested; + unsigned int allocated; char __data[0]; }; -struct trace_event_raw_nfs4_rename { +struct trace_event_raw_svc_deferred_event { struct trace_entry ent; - dev_t dev; - unsigned long error; - u64 olddir; - u32 __data_loc_oldname; - u64 newdir; - u32 __data_loc_newname; + const void *dr; + u32 xid; + u32 __data_loc_addr; char __data[0]; }; -struct trace_event_raw_nfs4_inode_event { +struct trace_event_raw_svcsock_lifetime_class { struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - unsigned long error; + unsigned int netns_ino; + const void *svsk; + const void *sk; + unsigned long type; + unsigned long family; + unsigned long state; char __data[0]; }; -struct trace_event_raw_nfs4_inode_stateid_event { +struct trace_event_raw_svcsock_marker { struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - unsigned long error; - int stateid_seq; - u32 stateid_hash; + unsigned int length; + bool last; + u32 __data_loc_addr; char __data[0]; }; -struct trace_event_raw_nfs4_getattr_event { +struct trace_event_raw_svcsock_class { struct trace_entry ent; - dev_t dev; - u32 fhandle; - u64 fileid; - unsigned int valid; - unsigned long error; + ssize_t result; + unsigned long flags; + u32 __data_loc_addr; char __data[0]; }; -struct trace_event_raw_nfs4_inode_callback_event { +struct trace_event_raw_svcsock_tcp_recv_short { struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - u64 fileid; - u32 __data_loc_dstaddr; + u32 expected; + u32 received; + unsigned long flags; + u32 __data_loc_addr; char __data[0]; }; -struct trace_event_raw_nfs4_inode_stateid_callback_event { +struct trace_event_raw_svcsock_tcp_state { struct trace_entry ent; - unsigned long error; - dev_t dev; - u32 fhandle; - u64 fileid; - u32 __data_loc_dstaddr; - int stateid_seq; - u32 stateid_hash; + unsigned long socket_state; + unsigned long sock_state; + unsigned long flags; + u32 __data_loc_addr; char __data[0]; }; -struct trace_event_raw_nfs4_idmap_event { +struct trace_event_raw_svcsock_accept_class { struct trace_entry ent; - unsigned long error; - u32 id; - u32 __data_loc_name; + long status; + u32 __data_loc_service; + unsigned int netns_ino; char __data[0]; }; -struct trace_event_raw_nfs4_read_event { +struct trace_event_raw_cache_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; + const struct cache_head *h; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_nfs4_write_event { +struct trace_event_raw_register_class { 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; + u32 version; + unsigned long family; + unsigned short protocol; + unsigned short port; + int error; + u32 __data_loc_program; char __data[0]; }; -struct trace_event_raw_nfs4_commit_event { +struct trace_event_raw_svc_unregister { 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; + u32 version; + int error; + u32 __data_loc_program; char __data[0]; }; -struct trace_event_data_offsets_nfs4_clientid_event { - u32 dstaddr; +struct trace_event_data_offsets_rpc_clnt_new { + u32 program; + u32 server; + u32 addr; + u32 port; }; -struct trace_event_data_offsets_nfs4_state_mgr { - u32 hostname; +struct trace_event_data_offsets_rpc_clnt_new_err { + u32 program; + u32 server; }; -struct trace_event_data_offsets_nfs4_state_mgr_failed { - u32 hostname; - u32 section; +struct trace_event_data_offsets_rpc_request { + u32 progname; + u32 procname; }; -struct trace_event_data_offsets_nfs4_open_event { - u32 name; +struct trace_event_data_offsets_rpc_task_queued { + u32 q_name; }; -struct trace_event_data_offsets_nfs4_lookup_event { - u32 name; +struct trace_event_data_offsets_rpc_reply_event { + u32 progname; + u32 procname; + u32 servername; }; -struct trace_event_data_offsets_nfs4_rename { - u32 oldname; - u32 newname; +struct trace_event_data_offsets_rpc_stats_latency { + u32 progname; + u32 procname; }; -struct trace_event_data_offsets_nfs4_inode_callback_event { - u32 dstaddr; +struct trace_event_data_offsets_rpc_xdr_overflow { + u32 progname; + u32 procedure; }; -struct trace_event_data_offsets_nfs4_inode_stateid_callback_event { - u32 dstaddr; +struct trace_event_data_offsets_rpc_xdr_alignment { + u32 progname; + u32 procedure; }; -struct trace_event_data_offsets_nfs4_idmap_event { - u32 name; +struct trace_event_data_offsets_rpc_xprt_lifetime_class { + u32 addr; + u32 port; }; -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_rpc_xprt_event { + u32 addr; + u32 port; +}; -struct trace_event_data_offsets_nfs4_close {}; +struct trace_event_data_offsets_xprt_retransmit { + u32 progname; + u32 procname; +}; -struct trace_event_data_offsets_nfs4_lock_event {}; +struct trace_event_data_offsets_xprt_ping { + u32 addr; + u32 port; +}; -struct trace_event_data_offsets_nfs4_set_lock {}; +struct trace_event_data_offsets_xs_data_ready { + u32 addr; + u32 port; +}; -struct trace_event_data_offsets_nfs4_state_lock_reclaim {}; +struct trace_event_data_offsets_xs_stream_read_data { + u32 addr; + u32 port; +}; -struct trace_event_data_offsets_nfs4_set_delegation_event {}; +struct trace_event_data_offsets_xs_stream_read_request { + u32 addr; + u32 port; +}; -struct trace_event_data_offsets_nfs4_delegreturn_exit {}; +struct trace_event_data_offsets_rpcb_getport { + u32 servername; +}; -struct trace_event_data_offsets_nfs4_lookupp {}; +struct trace_event_data_offsets_rpcb_register { + u32 addr; + u32 netid; +}; -struct trace_event_data_offsets_nfs4_inode_event {}; +struct trace_event_data_offsets_rpcb_unregister { + u32 netid; +}; -struct trace_event_data_offsets_nfs4_inode_stateid_event {}; +struct trace_event_data_offsets_rpc_tls_class { + u32 servername; + u32 progname; +}; -struct trace_event_data_offsets_nfs4_getattr_event {}; +struct trace_event_data_offsets_svc_authenticate { + u32 server; + u32 client; +}; -struct trace_event_data_offsets_nfs4_read_event {}; +struct trace_event_data_offsets_svc_process { + u32 service; + u32 procedure; + u32 addr; +}; -struct trace_event_data_offsets_nfs4_write_event {}; +struct trace_event_data_offsets_svc_rqst_event { + u32 server; + u32 client; +}; -struct trace_event_data_offsets_nfs4_commit_event {}; +struct trace_event_data_offsets_svc_rqst_status { + u32 server; + u32 client; +}; -struct ioc_gq; +struct trace_event_data_offsets_svc_replace_page_err { + u32 server; + u32 client; +}; -struct ioc_now; +struct trace_event_data_offsets_svc_stats_latency { + u32 server; + u32 client; + u32 procedure; +}; -typedef void (*btf_trace_iocost_iocg_activate)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); +struct trace_event_data_offsets_svc_xprt_create_err { + u32 program; + u32 protocol; + u32 addr; +}; -struct iocg_stat { - u64 usage_us; - u64 wait_us; - u64 indebt_us; - u64 indelay_us; +struct trace_event_data_offsets_svc_xprt_enqueue { + u32 server; + u32 client; }; -struct ioc; +struct trace_event_data_offsets_svc_xprt_dequeue { + u32 server; + u32 client; +}; -struct iocg_pcpu_stat; +struct trace_event_data_offsets_svc_xprt_event { + u32 server; + u32 client; +}; -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 trace_event_data_offsets_svc_xprt_accept { + u32 server; + u32 client; + u32 protocol; + u32 service; }; -struct ioc_params { - u32 qos[6]; - u64 i_lcoefs[6]; - u64 lcoefs[6]; - u32 too_fast_vrate_pct; - u32 too_slow_vrate_pct; +struct trace_event_data_offsets_svc_deferred_event { + u32 addr; }; -struct ioc_margins { - s64 min; - s64 low; - s64 target; +struct trace_event_data_offsets_svcsock_marker { + u32 addr; }; -enum ioc_running { - IOC_IDLE = 0, - IOC_RUNNING = 1, - IOC_STOP = 2, +struct trace_event_data_offsets_svcsock_class { + u32 addr; }; -struct ioc_pcpu_stat; +struct trace_event_data_offsets_svcsock_tcp_recv_short { + u32 addr; +}; -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 trace_event_data_offsets_svcsock_tcp_state { + u32 addr; }; -struct ioc_missed { - local_t nr_met; - local_t nr_missed; - u32 last_met; - u32 last_missed; +struct trace_event_data_offsets_svcsock_accept_class { + u32 service; }; -struct ioc_pcpu_stat { - struct ioc_missed missed[2]; - local64_t rq_wait_ns; - u64 last_rq_wait_ns; +struct trace_event_data_offsets_cache_event { + u32 name; }; -struct iocg_pcpu_stat { - local64_t abs_vusage; +struct trace_event_data_offsets_register_class { + u32 program; }; -struct ioc_now { - u64 now_ns; - u64 now; - u64 vnow; +struct trace_event_data_offsets_svc_unregister { + u32 program; }; -typedef void (*btf_trace_iocost_iocg_idle)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); +struct trace_event_data_offsets_rpc_xdr_buf_class {}; -typedef void (*btf_trace_iocost_inuse_shortage)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); +struct trace_event_data_offsets_rpc_clnt_class {}; -typedef void (*btf_trace_iocost_inuse_transfer)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); +struct trace_event_data_offsets_rpc_clnt_clone_err {}; -typedef void (*btf_trace_iocost_inuse_adjust)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); +struct trace_event_data_offsets_rpc_task_status {}; -typedef void (*btf_trace_iocost_ioc_vrate_adj)(void *, struct ioc *, u64, u32 *, u32, int, int); +struct trace_event_data_offsets_rpc_task_running {}; -typedef void (*btf_trace_iocost_iocg_forgive_debt)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u64, u64, u64, u64); +struct trace_event_data_offsets_rpc_failure {}; -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, -}; +struct trace_event_data_offsets_rpc_buf_alloc {}; -enum { - QOS_RPPM = 0, - QOS_RLAT = 1, - QOS_WPPM = 2, - QOS_WLAT = 3, - QOS_MIN = 4, - QOS_MAX = 5, - NR_QOS_PARAMS = 6, -}; +struct trace_event_data_offsets_rpc_call_rpcerror {}; -enum { - QOS_ENABLE = 0, - QOS_CTRL = 1, - NR_QOS_CTRL_PARAMS = 2, -}; +struct trace_event_data_offsets_xs_socket_event {}; -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, -}; +struct trace_event_data_offsets_xs_socket_event_done {}; -enum { - AUTOP_INVALID = 0, - AUTOP_HDD = 1, - AUTOP_SSD_QD1 = 2, - AUTOP_SSD_DFL = 3, - AUTOP_SSD_FAST = 4, -}; +struct trace_event_data_offsets_rpc_socket_nospace {}; -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, -}; +struct trace_event_data_offsets_xprt_transmit {}; -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, -}; +struct trace_event_data_offsets_xprt_writelock_event {}; -enum { - LCOEF_RPAGE = 0, - LCOEF_RSEQIO = 1, - LCOEF_RRANDIO = 2, - LCOEF_WPAGE = 3, - LCOEF_WSEQIO = 4, - LCOEF_WRANDIO = 5, - NR_LCOEFS = 6, -}; +struct trace_event_data_offsets_xprt_cong_event {}; -enum { - COST_CTRL = 0, - COST_MODEL = 1, - NR_COST_CTRL_PARAMS = 2, -}; +struct trace_event_data_offsets_xprt_reserve {}; -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_data_offsets_rpcb_setport {}; -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_data_offsets_pmap_register {}; -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_data_offsets_svc_xdr_msg_class {}; -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 trace_event_data_offsets_svc_xdr_buf_class {}; -struct ioc_cgrp { - struct blkcg_policy_data cpd; - unsigned int dfl_weight; -}; +struct trace_event_data_offsets_svc_wake_up {}; -struct iocg_wait { - struct wait_queue_entry wait; - struct bio *bio; - u64 abs_cost; - bool committed; -}; +struct trace_event_data_offsets_svc_alloc_arg_err {}; -struct trace_event_data_offsets_iocost_iocg_state { - u32 devname; - u32 cgroup; -}; +struct trace_event_data_offsets_svcsock_lifetime_class {}; -struct trace_event_data_offsets_iocg_inuse_update { - u32 devname; - u32 cgroup; -}; +typedef void (*btf_trace_drv_return_void)(void *, struct ieee80211_local *); -struct trace_event_data_offsets_iocost_ioc_vrate_adj { - u32 devname; -}; +typedef void (*btf_trace_drv_return_int)(void *, struct ieee80211_local *, int); -struct trace_event_data_offsets_iocost_iocg_forgive_debt { - u32 devname; - u32 cgroup; -}; +typedef void (*btf_trace_drv_return_bool)(void *, struct ieee80211_local *, bool); -struct iocg_wake_ctx { - struct ioc_gq *iocg; - u32 hw_inuse; - s64 vbudget; -}; +typedef void (*btf_trace_drv_return_u32)(void *, struct ieee80211_local *, u32); -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; -}; +typedef void (*btf_trace_drv_return_u64)(void *, struct ieee80211_local *, u64); -struct acpi_pci_link { - struct list_head list; - struct acpi_device *device; - struct acpi_pci_link_irq irq; - int refcnt; -}; +typedef void (*btf_trace_drv_start)(void *, struct ieee80211_local *); -typedef acpi_status (*acpi_object_converter)(struct acpi_namespace_node *, union acpi_operand_object *, union acpi_operand_object **); +typedef void (*btf_trace_drv_get_et_strings)(void *, struct ieee80211_local *, u32); -struct acpi_simple_repair_info { - char name[4]; - u32 unexpected_btypes; - u32 package_index; - acpi_object_converter object_converter; -}; +typedef void (*btf_trace_drv_get_et_sset_count)(void *, struct ieee80211_local *, u32); -struct virtio_pci_modern_common_cfg { - struct virtio_pci_common_cfg cfg; - __le16 queue_notify_data; - __le16 queue_reset; -}; +typedef void (*btf_trace_drv_get_et_stats)(void *, struct ieee80211_local *); -struct pasid_entry { - u64 val[8]; -}; +typedef void (*btf_trace_drv_suspend)(void *, struct ieee80211_local *); -struct pasid_dir_entry { - u64 val; -}; +typedef void (*btf_trace_drv_resume)(void *, struct ieee80211_local *); -struct dmar_domain; +typedef void (*btf_trace_drv_set_wakeup)(void *, struct ieee80211_local *, bool); -struct pasid_table; +typedef void (*btf_trace_drv_stop)(void *, struct ieee80211_local *); -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; -}; +typedef void (*btf_trace_drv_add_interface)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); -struct dma_pte; +typedef void (*btf_trace_drv_change_interface)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, enum nl80211_iftype, bool); -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; -}; +typedef void (*btf_trace_drv_remove_interface)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); -struct dma_pte { - u64 val; -}; +typedef void (*btf_trace_drv_config)(void *, struct ieee80211_local *, u32); -struct pasid_table { - void *table; - int order; - u32 max_pasid; -}; +typedef void (*btf_trace_drv_vif_cfg_changed)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u64); -struct iommu_domain_info { - struct intel_iommu *iommu; - unsigned int refcnt; - u16 did; -}; +typedef void (*btf_trace_drv_link_info_changed)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *, u64); -struct dram_dimm_info { - u16 size; - u8 width; - u8 ranks; -}; +typedef void (*btf_trace_drv_prepare_multicast)(void *, struct ieee80211_local *, int); -struct dram_channel_info { - struct dram_dimm_info dimm_l; - struct dram_dimm_info dimm_s; - u8 ranks; - bool is_16gb_dimm; -}; +typedef void (*btf_trace_drv_configure_filter)(void *, struct ieee80211_local *, unsigned int, unsigned int *, u64); -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, -}; +typedef void (*btf_trace_drv_config_iface_filter)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, unsigned int, unsigned int); -struct i915_lut_handle { - struct list_head obj_link; - struct i915_gem_context *ctx; - u32 handle; -}; +typedef void (*btf_trace_drv_set_tim)(void *, struct ieee80211_local *, struct ieee80211_sta *, bool); -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]; -}; +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 *); -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]; -}; +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); -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]; -}; +typedef void (*btf_trace_drv_hw_scan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); -struct i915_gem_proto_engine; +typedef void (*btf_trace_drv_cancel_hw_scan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); -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; -}; +typedef void (*btf_trace_drv_sched_scan_start)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); -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; -}; +typedef void (*btf_trace_drv_sched_scan_stop)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_sw_scan_start)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const u8 *); + +typedef void (*btf_trace_drv_sw_scan_complete)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_get_stats)(void *, struct ieee80211_local *, struct ieee80211_low_level_stats *, int); + +typedef void (*btf_trace_drv_get_key_seq)(void *, struct ieee80211_local *, struct ieee80211_key_conf *); + +typedef void (*btf_trace_drv_set_frag_threshold)(void *, struct ieee80211_local *, u32); + +typedef void (*btf_trace_drv_set_rts_threshold)(void *, struct ieee80211_local *, u32); + +typedef void (*btf_trace_drv_set_coverage_class)(void *, struct ieee80211_local *, s16); + +typedef void (*btf_trace_drv_sta_notify)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, enum sta_notify_cmd, struct ieee80211_sta *); + +typedef void (*btf_trace_drv_sta_state)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, enum ieee80211_sta_state, enum ieee80211_sta_state); + +typedef void (*btf_trace_drv_sta_set_txpwr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); + +typedef void (*btf_trace_drv_sta_rc_update)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, u32); + +typedef void (*btf_trace_drv_sta_statistics)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); + +typedef void (*btf_trace_drv_sta_add)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); + +typedef void (*btf_trace_drv_sta_remove)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); + +typedef void (*btf_trace_drv_sta_pre_rcu_remove)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); + +typedef void (*btf_trace_drv_sync_rx_queues)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); + +typedef void (*btf_trace_drv_sta_rate_tbl_update)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); + +typedef void (*btf_trace_drv_conf_tx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, unsigned int, u16, const struct ieee80211_tx_queue_params *); + +typedef void (*btf_trace_drv_get_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_set_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u64); + +typedef void (*btf_trace_drv_offset_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, s64); + +typedef void (*btf_trace_drv_reset_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_tx_last_beacon)(void *, struct ieee80211_local *); + +typedef void (*btf_trace_drv_ampdu_action)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_ampdu_params *); + +typedef void (*btf_trace_drv_get_survey)(void *, struct ieee80211_local *, int, struct survey_info *); + +typedef void (*btf_trace_drv_flush)(void *, struct ieee80211_local *, u32, bool); + +typedef void (*btf_trace_drv_flush_sta)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); + +typedef void (*btf_trace_drv_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel_switch *); + +typedef void (*btf_trace_drv_set_antenna)(void *, struct ieee80211_local *, u32, u32, int); + +typedef void (*btf_trace_drv_get_antenna)(void *, struct ieee80211_local *, u32, u32, int); + +typedef void (*btf_trace_drv_remain_on_channel)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel *, unsigned int, enum ieee80211_roc_type); + +typedef void (*btf_trace_drv_cancel_remain_on_channel)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_set_ringparam)(void *, struct ieee80211_local *, u32, u32); + +typedef void (*btf_trace_drv_get_ringparam)(void *, struct ieee80211_local *, u32 *, u32 *, u32 *, u32 *); + +typedef void (*btf_trace_drv_tx_frames_pending)(void *, struct ieee80211_local *); + +typedef void (*btf_trace_drv_offchannel_tx_cancel_wait)(void *, struct ieee80211_local *); + +typedef void (*btf_trace_drv_set_bitrate_mask)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const struct cfg80211_bitrate_mask *); + +typedef void (*btf_trace_drv_set_rekey_data)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_gtk_rekey_data *); + +typedef void (*btf_trace_drv_event_callback)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const struct ieee80211_event *); + +typedef void (*btf_trace_drv_release_buffered_frames)(void *, struct ieee80211_local *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool); + +typedef void (*btf_trace_drv_allow_buffered_frames)(void *, struct ieee80211_local *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool); + +typedef void (*btf_trace_drv_mgd_prepare_tx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16, u16, bool); + +typedef void (*btf_trace_drv_mgd_complete_tx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16, u16, bool); + +typedef void (*btf_trace_drv_mgd_protect_tdls_discover)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_add_chanctx)(void *, struct ieee80211_local *, struct ieee80211_chanctx *); + +typedef void (*btf_trace_drv_remove_chanctx)(void *, struct ieee80211_local *, struct ieee80211_chanctx *); + +typedef void (*btf_trace_drv_change_chanctx)(void *, struct ieee80211_local *, struct ieee80211_chanctx *, u32); + +typedef void (*btf_trace_drv_switch_vif_chanctx)(void *, struct ieee80211_local *, struct ieee80211_vif_chanctx_switch *, int, enum ieee80211_chanctx_switch_mode); + +typedef void (*btf_trace_drv_assign_vif_chanctx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *, struct ieee80211_chanctx *); + +typedef void (*btf_trace_drv_unassign_vif_chanctx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *, struct ieee80211_chanctx *); + +typedef void (*btf_trace_drv_start_ap)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *); + +typedef void (*btf_trace_drv_stop_ap)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *); + +typedef void (*btf_trace_drv_reconfig_complete)(void *, struct ieee80211_local *, enum ieee80211_reconfig_type); + +typedef void (*btf_trace_drv_ipv6_addr_change)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_join_ibss)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *); + +typedef void (*btf_trace_drv_leave_ibss)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_get_expected_throughput)(void *, struct ieee80211_sta *); + +typedef void (*btf_trace_drv_start_nan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_nan_conf *); + +typedef void (*btf_trace_drv_stop_nan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_nan_change_conf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_nan_conf *, u32); + +typedef void (*btf_trace_drv_add_nan_func)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const struct cfg80211_nan_func *); + +typedef void (*btf_trace_drv_del_nan_func)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u8); + +typedef void (*btf_trace_drv_start_pmsr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_abort_pmsr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_set_default_unicast_key)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, int); + +typedef void (*btf_trace_drv_channel_switch_beacon)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_chan_def *); + +typedef void (*btf_trace_drv_pre_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel_switch *); + +typedef void (*btf_trace_drv_post_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_abort_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); + +typedef void (*btf_trace_drv_channel_switch_rx_beacon)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel_switch *); + +typedef void (*btf_trace_drv_get_txpower)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, int, int); + +typedef void (*btf_trace_drv_tdls_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, u8, struct cfg80211_chan_def *); + +typedef void (*btf_trace_drv_tdls_cancel_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); + +typedef void (*btf_trace_drv_tdls_recv_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_tdls_ch_sw_params *); + +typedef void (*btf_trace_drv_wake_tx_queue)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct txq_info *); -struct drm_i915_gem_context_param { - __u32 ctx_id; - __u32 size; - __u64 param; - __u64 value; -}; +typedef void (*btf_trace_drv_get_ftm_responder_stats)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_ftm_responder_stats *); -struct set_proto_ctx_engines { - struct drm_i915_private *i915; - unsigned int num_engines; - struct i915_gem_proto_engine *engines; -}; +typedef void (*btf_trace_drv_update_vif_offload)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); -struct i915_context_param_engines { - __u64 extensions; - struct i915_engine_class_instance engines[0]; -}; +typedef void (*btf_trace_drv_sta_set_4addr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, bool); -struct drm_i915_gem_vm_control { - __u64 extensions; - __u32 flags; - __u32 vm_id; -}; +typedef void (*btf_trace_drv_sta_set_decap_offload)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, bool); -struct create_ext___2 { - struct i915_gem_proto_context *pc; - struct drm_i915_file_private *fpriv; -}; +typedef void (*btf_trace_drv_add_twt_setup)(void *, struct ieee80211_local *, struct ieee80211_sta *, struct ieee80211_twt_setup *, struct ieee80211_twt_params *); -struct drm_i915_gem_context_create_ext { - __u32 ctx_id; - __u32 flags; - __u64 extensions; -}; +typedef void (*btf_trace_drv_twt_teardown_request)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8); -struct drm_i915_gem_context_destroy { - __u32 ctx_id; - __u32 pad; -}; +typedef void (*btf_trace_drv_net_fill_forward_path)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); -struct drm_i915_reset_stats { - __u32 ctx_id; - __u32 flags; - __u32 reset_count; - __u32 batch_active; - __u32 batch_pending; - __u32 pad; -}; +typedef void (*btf_trace_drv_net_setup_tc)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u8); -struct drm_i915_gem_context_create_ext_setparam { - struct i915_user_extension base; - struct drm_i915_gem_context_param param; -}; +typedef void (*btf_trace_drv_change_vif_links)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16, u16); -struct gsc_heci_pkt { - u64 addr_in; - u32 size_in; - u64 addr_out; - u32 size_out; -}; +typedef void (*btf_trace_drv_change_sta_links)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, u16, u16); -struct intel_gsc_heci_non_priv_pkt { - u64 addr_in; - u32 size_in; - u64 addr_out; - u32 size_out; - struct i915_vma *heci_pkt_vma; - struct i915_vma *bb_vma; -}; +typedef void (*btf_trace_api_start_tx_ba_session)(void *, struct ieee80211_sta *, u16); -struct drm_i915_get_pipe_from_crtc_id { - __u32 crtc_id; - __u32 pipe; -}; +typedef void (*btf_trace_api_start_tx_ba_cb)(void *, struct ieee80211_sub_if_data *, const u8 *, u16); -struct tfp410_priv { - bool quiet; -}; +typedef void (*btf_trace_api_stop_tx_ba_session)(void *, struct ieee80211_sta *, u16); -struct virtio_blk_vq; +typedef void (*btf_trace_api_stop_tx_ba_cb)(void *, struct ieee80211_sub_if_data *, const u8 *, u16); -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; -}; +typedef void (*btf_trace_api_restart_hw)(void *, struct ieee80211_local *); -struct virtio_blk_vq { - struct virtqueue *vq; - spinlock_t lock; - char name[16]; - long: 64; - long: 64; - long: 64; - long: 64; -}; +typedef void (*btf_trace_api_beacon_loss)(void *, struct ieee80211_sub_if_data *); -struct virtio_blk_outhdr { - __virtio32 type; - __virtio32 ioprio; - __virtio64 sector; -}; +typedef void (*btf_trace_api_connection_loss)(void *, struct ieee80211_sub_if_data *); -struct virtblk_req { - struct virtio_blk_outhdr out_hdr; - union { - u8 status; - struct { - __virtio64 sector; - u8 status; - } zone_append; - } in_hdr; - size_t in_hdr_len; - struct sg_table sg_table; - struct scatterlist sg[0]; -}; +typedef void (*btf_trace_api_disconnect)(void *, struct ieee80211_sub_if_data *, bool); -struct virtio_blk_discard_write_zeroes { - __le64 sector; - __le32 num_sectors; - __le32 flags; -}; +typedef void (*btf_trace_api_cqm_rssi_notify)(void *, struct ieee80211_sub_if_data *, enum nl80211_cqm_rssi_threshold_event, s32); -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; -}; +typedef void (*btf_trace_api_cqm_beacon_loss_notify)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); -union ich8_hws_flash_status { - struct ich8_hsfsts hsf_status; - u16 regval; -}; +typedef void (*btf_trace_api_scan_completed)(void *, struct ieee80211_local *, bool); -struct ich8_hsflctl { - u16 flcgo: 1; - u16 flcycle: 2; - u16 reserved: 5; - u16 fldbcount: 2; - u16 flockdn: 6; -}; +typedef void (*btf_trace_api_sched_scan_results)(void *, struct ieee80211_local *); -union ich8_hws_flash_ctrl { - struct ich8_hsflctl hsf_ctrl; - u16 regval; -}; +typedef void (*btf_trace_api_sched_scan_stopped)(void *, struct ieee80211_local *); -struct ich8_pr { - u32 base: 13; - u32 reserved1: 2; - u32 rpe: 1; - u32 limit: 13; - u32 reserved2: 2; - u32 wpe: 1; -}; +typedef void (*btf_trace_api_sta_block_awake)(void *, struct ieee80211_local *, struct ieee80211_sta *, bool); -union ich8_flash_protected_range { - struct ich8_pr range; - u32 regval; -}; +typedef void (*btf_trace_api_chswitch_done)(void *, struct ieee80211_sub_if_data *, bool, unsigned int); -struct iso_rec { - int error_count; - int numdesc; -}; +typedef void (*btf_trace_api_ready_on_channel)(void *, struct ieee80211_local *); -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; -}; +typedef void (*btf_trace_api_remain_on_channel_expired)(void *, struct ieee80211_local *); -struct mon_bin_mfetch { - u32 __attribute__((btf_type_tag("user"))) *offvec; - u32 nfetch; - u32 nflush; -}; +typedef void (*btf_trace_api_gtk_rekey_notify)(void *, struct ieee80211_sub_if_data *, const u8 *, const u8 *); -struct mon_bin_stats { - u32 queued; - u32 dropped; -}; +typedef void (*btf_trace_api_enable_rssi_reports)(void *, struct ieee80211_sub_if_data *, int, int); -struct mon_bin_mfetch32 { - u32 offvec32; - u32 nfetch32; - u32 nflush32; -}; +typedef void (*btf_trace_api_eosp)(void *, struct ieee80211_local *, struct ieee80211_sta *); -struct mon_bin_isodesc { - int iso_status; - unsigned int iso_off; - unsigned int iso_len; - u32 _pad; -}; +typedef void (*btf_trace_api_send_eosp_nullfunc)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8); -struct mon_pgmap; +typedef void (*btf_trace_api_sta_set_buffered)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8, bool); -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; -}; +typedef void (*btf_trace_api_radar_detected)(void *, struct ieee80211_local *); -struct mon_pgmap { - struct page *pg; - unsigned char *ptr; -}; +typedef void (*btf_trace_wake_queue)(void *, struct ieee80211_local *, u16, enum queue_stop_reason); -struct mon_bin_get { - struct mon_bin_hdr __attribute__((btf_type_tag("user"))) *hdr; - void __attribute__((btf_type_tag("user"))) *data; - size_t alloc; -}; +typedef void (*btf_trace_stop_queue)(void *, struct ieee80211_local *, u16, enum queue_stop_reason); -struct mon_bin_get32 { - u32 hdr32; - u32 data32; - u32 alloc32; +struct trace_event_raw_local_only_evt { + struct trace_entry ent; + char wiphy_name[32]; + char __data[0]; }; -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 trace_event_raw_drv_return_int { + struct trace_entry ent; + char wiphy_name[32]; + int ret; + char __data[0]; }; -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 trace_event_raw_drv_return_bool { + struct trace_entry ent; + char wiphy_name[32]; + bool ret; + char __data[0]; }; -struct input_event_compat { - compat_ulong_t sec; - compat_ulong_t usec; - __u16 type; - __u16 code; - __s32 value; +struct trace_event_raw_drv_return_u32 { + struct trace_entry ent; + char wiphy_name[32]; + u32 ret; + char __data[0]; }; -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 trace_event_raw_drv_return_u64 { + struct trace_entry ent; + char wiphy_name[32]; + u64 ret; + char __data[0]; }; -struct cytp_contact { - int x; - int y; - int z; +struct trace_event_raw_local_u32_evt { + struct trace_entry ent; + char wiphy_name[32]; + u32 value; + char __data[0]; }; -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 trace_event_raw_drv_set_wakeup { + struct trace_entry ent; + char wiphy_name[32]; + bool enabled; + char __data[0]; }; -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 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 rdev_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct md_rdev *, char *); - ssize_t (*store)(struct md_rdev *, const char *, size_t); +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 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); +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]; }; -enum md_ro_state { - MD_RDWR = 0, - MD_RDONLY = 1, - MD_AUTO_READ = 2, - MD_MAX_STATE = 3, +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]; }; -enum { - MD_RESYNC_NONE = 0, - MD_RESYNC_YIELDED = 1, - MD_RESYNC_DELAYED = 2, - MD_RESYNC_ACTIVE = 3, +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]; }; -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 trace_event_raw_drv_prepare_multicast { + struct trace_entry ent; + char wiphy_name[32]; + int mc_count; + char __data[0]; }; -struct md_io_acct { - struct mddev *mddev; - struct bio *orig_bio; - unsigned long start_time; - struct bio bio_clone; +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 detected_devices_node { - struct list_head list; - dev_t dev; +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 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 trace_event_raw_drv_set_tim { + struct trace_entry ent; + char wiphy_name[32]; + char sta_addr[6]; + bool set; + char __data[0]; }; -struct mdu_version_s { - int major; - int minor; - int patchlevel; +struct trace_event_raw_drv_set_key { + struct trace_entry ent; + char wiphy_name[32]; + enum nl80211_iftype vif_type; + void *sdata; + bool p2p; + u32 __data_loc_vif_name; + char sta_addr[6]; + u32 cmd; + u32 cipher; + u8 hw_key_idx; + u8 flags; + s8 keyidx; + char __data[0]; }; -typedef struct mdu_version_s mdu_version_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; +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]; }; -typedef struct mdu_array_info_s mdu_array_info_t; - -struct mdu_bitmap_file_s { - char pathname[4096]; +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]; }; -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; +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]; }; -typedef struct mdu_disk_info_s mdu_disk_info_t; - -struct mdp_device_descriptor_s { - __u32 number; - __u32 major; - __u32 minor; - __u32 raid_disk; - __u32 state; - __u32 reserved[27]; +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]; }; -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; +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]; }; -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 trace_event_raw_drv_set_coverage_class { + struct trace_entry ent; + char wiphy_name[32]; + s16 value; + char __data[0]; }; -struct blk_integrity_iter; +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]; +}; -typedef blk_status_t integrity_processing_fn(struct blk_integrity_iter *); +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]; +}; -typedef void integrity_prepare_fn(struct request *); +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]; +}; -typedef void integrity_complete_fn(struct request *, unsigned int); +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 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 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 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 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 snd_jack_kctl { - struct snd_kcontrol *kctl; - struct list_head list; - unsigned int mask_bits; - struct snd_jack *jack; - bool sw_inject_enable; +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]; }; -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, +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]; }; -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, +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]; }; -enum { - NETDEV_NLGRP_MGMT = 0, +struct trace_event_raw_drv_get_survey { + struct trace_entry ent; + char wiphy_name[32]; + int idx; + char __data[0]; }; -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 trace_event_raw_drv_flush { + struct trace_entry ent; + char wiphy_name[32]; + bool drop; + u32 queues; + char __data[0]; }; -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 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 eee_reply_data { - struct ethnl_reply_data base; - struct ethtool_eee eee; +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]; }; -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, +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]; }; -enum ctattr_tuple { - CTA_TUPLE_UNSPEC = 0, - CTA_TUPLE_IP = 1, - CTA_TUPLE_PROTO = 2, - CTA_TUPLE_ZONE = 3, - __CTA_TUPLE_MAX = 4, +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]; }; -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, +struct trace_event_raw_drv_set_ringparam { + struct trace_entry ent; + char wiphy_name[32]; + u32 tx; + u32 rx; + char __data[0]; }; -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, +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]; }; -enum ctattr_expect_nat { - CTA_EXPECT_NAT_UNSPEC = 0, - CTA_EXPECT_NAT_DIR = 1, - CTA_EXPECT_NAT_TUPLE = 2, - __CTA_EXPECT_NAT_MAX = 3, +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]; }; -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, +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]; }; -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, +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]; }; -enum ctattr_help { - CTA_HELP_UNSPEC = 0, - CTA_HELP_NAME = 1, - CTA_HELP_INFO = 2, - __CTA_HELP_MAX = 3, +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]; }; -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, +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]; }; -enum ctattr_synproxy { - CTA_SYNPROXY_UNSPEC = 0, - CTA_SYNPROXY_ISN = 1, - CTA_SYNPROXY_ITS = 2, - CTA_SYNPROXY_TSOFF = 3, - __CTA_SYNPROXY_MAX = 4, +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]; }; -enum ctattr_filter { - CTA_FILTER_UNSPEC = 0, - CTA_FILTER_ORIG_FLAGS = 1, - CTA_FILTER_REPLY_FLAGS = 2, - __CTA_FILTER_MAX = 3, +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]; }; -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, +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]; }; -enum ctattr_secctx { - CTA_SECCTX_UNSPEC = 0, - CTA_SECCTX_NAME = 1, - __CTA_SECCTX_MAX = 2, +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]; }; -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, +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]; }; -enum ctattr_tstamp { - CTA_TIMESTAMP_UNSPEC = 0, - CTA_TIMESTAMP_START = 1, - CTA_TIMESTAMP_STOP = 2, - CTA_TIMESTAMP_PAD = 3, - __CTA_TIMESTAMP_MAX = 4, +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]; }; -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, +struct trace_event_raw_drv_reconfig_complete { + struct trace_entry ent; + char wiphy_name[32]; + u8 reconfig_type; + char __data[0]; }; -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 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 ctnetlink_filter_u32 { - u32 val; - u32 mask; +struct trace_event_raw_drv_get_expected_throughput { + struct trace_entry ent; + char sta_addr[6]; + char __data[0]; }; -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 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 nf_conn_counter { - atomic64_t packets; - atomic64_t bytes; +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 nf_conn_acct { - struct nf_conn_counter counter[2]; +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 nf_conn_tstamp { - u_int64_t start; - u_int64_t stop; +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 ctnetlink_list_dump_ctx { - struct nf_conn *last; - unsigned int cpu; - bool done; +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 ipv6_mreq { - struct in6_addr ipv6mr_multiaddr; - int ipv6mr_ifindex; +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 ip6t_error { - struct ip6t_entry entry; - struct xt_error_target target; +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 ip6t_standard { - struct ip6t_entry entry; - struct xt_standard_target target; +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 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 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 ip6t_get_entries { - char name[32]; - unsigned int size; - struct ip6t_entry entrytable[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]; }; -typedef struct rpc_xprt * (*xprt_switch_find_xprt_t)(struct rpc_xprt_switch *, const struct rpc_xprt *); - -enum assoc_status { - ASSOC_SUCCESS = 0, - ASSOC_REJECTED = 1, - ASSOC_TIMEOUT = 2, - ASSOC_ABANDON = 3, +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]; }; -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, +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]; }; -enum ieee80211_p2p_attr_id { - IEEE80211_P2P_ATTR_STATUS = 0, - IEEE80211_P2P_ATTR_MINOR_REASON = 1, - IEEE80211_P2P_ATTR_CAPABILITY = 2, - IEEE80211_P2P_ATTR_DEVICE_ID = 3, - IEEE80211_P2P_ATTR_GO_INTENT = 4, - IEEE80211_P2P_ATTR_GO_CONFIG_TIMEOUT = 5, - IEEE80211_P2P_ATTR_LISTEN_CHANNEL = 6, - IEEE80211_P2P_ATTR_GROUP_BSSID = 7, - IEEE80211_P2P_ATTR_EXT_LISTEN_TIMING = 8, - IEEE80211_P2P_ATTR_INTENDED_IFACE_ADDR = 9, - IEEE80211_P2P_ATTR_MANAGABILITY = 10, - IEEE80211_P2P_ATTR_CHANNEL_LIST = 11, - IEEE80211_P2P_ATTR_ABSENCE_NOTICE = 12, - IEEE80211_P2P_ATTR_DEVICE_INFO = 13, - IEEE80211_P2P_ATTR_GROUP_INFO = 14, - IEEE80211_P2P_ATTR_GROUP_ID = 15, - IEEE80211_P2P_ATTR_INTERFACE = 16, - IEEE80211_P2P_ATTR_OPER_CHANNEL = 17, - IEEE80211_P2P_ATTR_INVITE_FLAGS = 18, - IEEE80211_P2P_ATTR_VENDOR_SPECIFIC = 221, - IEEE80211_P2P_ATTR_MAX = 222, +struct 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]; }; -enum ieee80211_timeout_interval_type { - WLAN_TIMEOUT_REASSOC_DEADLINE = 1, - WLAN_TIMEOUT_KEY_LIFETIME = 2, - WLAN_TIMEOUT_ASSOC_COMEBACK = 3, +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]; }; -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, +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]; }; -enum ieee80211_idle_options { - WLAN_IDLE_OPTIONS_PROTECTED_KEEP_ALIVE = 1, +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]; }; -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, +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 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 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 rapl_pmu; - -struct rapl_pmus { - struct pmu pmu; - unsigned int maxdie; - struct rapl_pmu *pmus[0]; +struct trace_event_raw_drv_net_setup_tc { + struct trace_entry ent; + char wiphy_name[32]; + enum nl80211_iftype vif_type; + void *sdata; + bool p2p; + u32 __data_loc_vif_name; + u8 type; + char __data[0]; }; -struct 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; +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]; }; -enum rapl_unit_quirk { - RAPL_UNIT_QUIRK_NONE = 0, - RAPL_UNIT_QUIRK_INTEL_HSW = 1, - RAPL_UNIT_QUIRK_INTEL_SPR = 2, +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 rapl_model { - struct perf_msr *rapl_msrs; - unsigned long events; - unsigned int msr_power_unit; - enum rapl_unit_quirk unit_quirk; +struct trace_event_raw_api_start_tx_ba_session { + struct trace_entry ent; + char sta_addr[6]; + u16 tid; + char __data[0]; }; -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 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 addr_marker { - unsigned long start_address; - const char *name; - unsigned long max_lines; +struct trace_event_raw_api_stop_tx_ba_session { + struct trace_entry ent; + char sta_addr[6]; + u16 tid; + char __data[0]; }; -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 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 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 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]; }; -enum { - MAX_IORES_LEVEL = 5, +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 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 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 region_devres { - struct resource *parent; - resource_size_t start; - resource_size_t n; +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 semaphore_waiter { - struct list_head list; - struct task_struct *task; - bool up; +struct trace_event_raw_api_scan_completed { + struct trace_entry ent; + char wiphy_name[32]; + bool aborted; + char __data[0]; }; -enum { - IRQTF_RUNTHREAD = 0, - IRQTF_WARNED = 1, - IRQTF_AFFINITY = 2, - IRQTF_FORCED_THREAD = 3, - IRQTF_READY = 4, +struct trace_event_raw_api_sched_scan_results { + struct trace_entry ent; + char wiphy_name[32]; + char __data[0]; }; -enum { - GP_IDLE = 0, - GP_ENTER = 1, - GP_PASSED = 2, - GP_EXIT = 3, - GP_REPLAY = 4, +struct trace_event_raw_api_sched_scan_stopped { + struct trace_entry ent; + char wiphy_name[32]; + char __data[0]; }; -struct klp_find_arg { - const char *name; - unsigned long addr; - unsigned long count; - unsigned long pos; +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 timer_list_iter { - int cpu; - bool second_pass; - u64 now; +struct trace_event_raw_api_chswitch_done { + struct trace_entry ent; + enum nl80211_iftype vif_type; + void *sdata; + bool p2p; + u32 __data_loc_vif_name; + bool success; + unsigned int link_id; + char __data[0]; }; -enum cgroup_filetype { - CGROUP_FILE_PROCS = 0, - CGROUP_FILE_TASKS = 1, +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]; }; -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 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 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_event_raw_api_eosp { + struct trace_entry ent; + char wiphy_name[32]; + char sta_addr[6]; + char __data[0]; }; -struct cgroupstats { - __u64 nr_sleeping; - __u64 nr_running; - __u64 nr_stopped; - __u64 nr_uninterruptible; - __u64 nr_io_wait; +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]; }; -enum { - FLAGS_FILL_FULL = 268435456, - FLAGS_FILL_START = 536870912, - FLAGS_FILL_END = 805306368, +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 fgraph_cpu_data { - pid_t last_pid; - int depth; - int depth_irq; - int ignore; - unsigned long enter_funcs[50]; +struct trace_event_raw_api_radar_detected { + struct trace_entry ent; + char wiphy_name[32]; + char __data[0]; }; -struct ftrace_graph_ent_entry { +struct trace_event_raw_wake_queue { struct trace_entry ent; - struct ftrace_graph_ent graph_ent; + char wiphy_name[32]; + u16 queue; + u32 reason; + char __data[0]; }; -struct ftrace_graph_ret_entry { +struct trace_event_raw_stop_queue { struct trace_entry ent; - struct ftrace_graph_ret ret; + char wiphy_name[32]; + u16 queue; + u32 reason; + char __data[0]; }; -struct fgraph_data { - struct fgraph_cpu_data __attribute__((btf_type_tag("percpu"))) *cpu_data; - struct ftrace_graph_ent_entry ent; - struct ftrace_graph_ret_entry ret; - int failed; - int cpu; - long: 0; -} __attribute__((packed)); - -enum { - BTF_TRACING_TYPE_TASK = 0, - BTF_TRACING_TYPE_FILE = 1, - BTF_TRACING_TYPE_VMA = 2, - MAX_BTF_TRACING_TYPE = 3, +struct trace_event_data_offsets_local_sdata_addr_evt { + u32 vif_name; }; -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, +struct trace_event_data_offsets_local_sdata_evt { + u32 vif_name; }; -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 trace_event_data_offsets_drv_change_interface { + u32 vif_name; }; -struct bpf_iter_seq_task_common { - struct pid_namespace *ns; - enum bpf_iter_task_type type; - u32 pid; - u32 pid_visiting; +struct trace_event_data_offsets_drv_vif_cfg_changed { + u32 vif_name; + u32 arp_addr_list; + u32 ssid; }; -struct bpf_iter__task_file { - union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; - u32 fd; - union { - struct file *file; - }; +struct trace_event_data_offsets_drv_link_info_changed { + u32 vif_name; }; -struct bpf_iter_seq_task_file_info { - struct bpf_iter_seq_task_common common; - struct task_struct *task; - u32 tid; - u32 fd; +struct trace_event_data_offsets_drv_config_iface_filter { + u32 vif_name; }; -struct bpf_iter__task_vma { - union { - struct bpf_iter_meta *meta; - }; - union { - struct task_struct *task; - }; - union { - struct vm_area_struct *vma; - }; +struct trace_event_data_offsets_drv_set_key { + u32 vif_name; }; -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 trace_event_data_offsets_drv_update_tkip_key { + u32 vif_name; }; -struct bpf_iter_seq_task_info { - struct bpf_iter_seq_task_common common; - u32 tid; +struct trace_event_data_offsets_drv_sw_scan_start { + u32 vif_name; }; -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 *); +struct trace_event_data_offsets_drv_sta_notify { + u32 vif_name; +}; -typedef void (*btf_trace_filemap_set_wb_err)(void *, struct address_space *, errseq_t); +struct trace_event_data_offsets_drv_sta_state { + u32 vif_name; +}; -typedef void (*btf_trace_file_check_and_advance_wb_err)(void *, struct file *, errseq_t); +struct trace_event_data_offsets_drv_sta_set_txpwr { + u32 vif_name; +}; -enum behavior { - EXCLUSIVE = 0, - SHARED = 1, - DROP = 2, +struct trace_event_data_offsets_drv_sta_rc_update { + u32 vif_name; }; -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_data_offsets_sta_event { + u32 vif_name; }; -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_data_offsets_drv_conf_tx { + u32 vif_name; }; -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 trace_event_data_offsets_drv_set_tsf { + u32 vif_name; +}; + +struct trace_event_data_offsets_drv_offset_tsf { + u32 vif_name; }; -struct cachestat_range { - __u64 off; - __u64 len; +struct trace_event_data_offsets_drv_ampdu_action { + u32 vif_name; }; -struct cachestat { - __u64 nr_cache; - __u64 nr_dirty; - __u64 nr_writeback; - __u64 nr_evicted; - __u64 nr_recently_evicted; +struct trace_event_data_offsets_drv_channel_switch { + u32 vif_name; }; -struct wait_page_key { - struct folio *folio; - int bit_nr; - int page_match; +struct trace_event_data_offsets_drv_remain_on_channel { + u32 vif_name; }; -struct trace_event_data_offsets_mm_filemap_op_page_cache {}; +struct trace_event_data_offsets_drv_set_bitrate_mask { + u32 vif_name; +}; -struct trace_event_data_offsets_filemap_set_wb_err {}; +struct trace_event_data_offsets_drv_set_rekey_data { + u32 vif_name; +}; -struct trace_event_data_offsets_file_check_and_advance_wb_err {}; +struct trace_event_data_offsets_drv_event_callback { + u32 vif_name; +}; -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 trace_event_data_offsets_mgd_prepare_complete_tx_evt { + u32 vif_name; }; -struct mpage_data { - struct bio *bio; - sector_t last_block_in_bio; - get_block_t *get_block; +struct trace_event_data_offsets_drv_switch_vif_chanctx { + u32 vifs; }; -enum { - DQF_ROOT_SQUASH_B = 0, - DQF_SYS_FILE_B = 16, - DQF_PRIVATE = 17, +struct trace_event_data_offsets_local_sdata_chanctx { + u32 vif_name; }; -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, +struct trace_event_data_offsets_drv_start_ap { + u32 vif_name; + u32 ssid; }; -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 trace_event_data_offsets_drv_stop_ap { + u32 vif_name; }; -struct fs_qfilestat { - __u64 qfs_ino; - __u64 qfs_nblks; - __u32 qfs_nextents; +struct trace_event_data_offsets_drv_join_ibss { + u32 vif_name; + u32 ssid; }; -typedef struct fs_qfilestat fs_qfilestat_t; +struct trace_event_data_offsets_drv_start_nan { + u32 vif_name; +}; -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 trace_event_data_offsets_drv_stop_nan { + u32 vif_name; }; -struct compat_fs_qfilestat { - compat_u64 dqb_bhardlimit; - compat_u64 qfs_nblks; - compat_uint_t qfs_nextents; -} __attribute__((packed)); +struct trace_event_data_offsets_drv_nan_change_conf { + u32 vif_name; +}; -struct compat_fs_quota_stat { - __s8 qs_version; - __u16 qs_flags; - __s8 qs_pad; - long: 0; - 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; +struct trace_event_data_offsets_drv_add_nan_func { + u32 vif_name; }; -struct fs_qfilestatv { - __u64 qfs_ino; - __u64 qfs_nblks; - __u32 qfs_nextents; - __u32 qfs_pad; +struct trace_event_data_offsets_drv_del_nan_func { + u32 vif_name; }; -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 trace_event_data_offsets_drv_set_default_unicast_key { + u32 vif_name; }; -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 trace_event_data_offsets_drv_channel_switch_beacon { + u32 vif_name; }; -struct if_dqinfo { - __u64 dqi_bgrace; - __u64 dqi_igrace; - __u32 dqi_flags; - __u32 dqi_valid; +struct trace_event_data_offsets_drv_pre_channel_switch { + u32 vif_name; }; -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 trace_event_data_offsets_drv_channel_switch_rx_beacon { + u32 vif_name; +}; -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; +struct trace_event_data_offsets_drv_get_txpower { + u32 vif_name; }; -enum { - EXT4_FC_STATUS_OK = 0, - EXT4_FC_STATUS_INELIGIBLE = 1, - EXT4_FC_STATUS_SKIPPED = 2, - EXT4_FC_STATUS_FAILED = 3, +struct trace_event_data_offsets_drv_tdls_channel_switch { + u32 vif_name; }; -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 trace_event_data_offsets_drv_tdls_cancel_channel_switch { + u32 vif_name; }; -struct __track_dentry_update_args { - struct dentry *dentry; - int op; +struct trace_event_data_offsets_drv_tdls_recv_channel_switch { + u32 vif_name; }; -struct __track_range_args { - ext4_lblk_t start; - ext4_lblk_t end; +struct trace_event_data_offsets_drv_wake_tx_queue { + u32 vif_name; }; -struct ext4_fc_tl { - __le16 fc_tag; - __le16 fc_len; +struct trace_event_data_offsets_drv_get_ftm_responder_stats { + u32 vif_name; }; -struct ext4_fc_head { - __le32 fc_features; - __le32 fc_tid; +struct trace_event_data_offsets_sta_flag_evt { + u32 vif_name; }; -struct ext4_fc_dentry_info { - __le32 fc_parent_ino; - __le32 fc_ino; - __u8 fc_dname[0]; +struct trace_event_data_offsets_drv_net_setup_tc { + u32 vif_name; }; -struct ext4_fc_tail { - __le32 fc_tid; - __le32 fc_crc; +struct trace_event_data_offsets_drv_change_vif_links { + u32 vif_name; }; -struct ext4_fc_add_range { - __le32 fc_ino; - __u8 fc_ex[12]; +struct trace_event_data_offsets_drv_change_sta_links { + u32 vif_name; }; -struct ext4_fc_tl_mem { - u16 fc_tag; - u16 fc_len; +struct trace_event_data_offsets_api_start_tx_ba_cb { + u32 vif_name; }; -struct ext4_fc_inode { - __le32 fc_ino; - __u8 fc_raw_inode[0]; +struct trace_event_data_offsets_api_stop_tx_ba_cb { + u32 vif_name; }; -struct ext4_fc_del_range { - __le32 fc_ino; - __le32 fc_lblk; - __le32 fc_len; +struct trace_event_data_offsets_api_beacon_loss { + u32 vif_name; }; -struct dentry_info_args { - int parent_ino; - int dname_len; - int ino; - int inode_len; - char *dname; +struct trace_event_data_offsets_api_connection_loss { + u32 vif_name; }; -enum { - MOUNTPROC3_NULL = 0, - MOUNTPROC3_MNT = 1, - MOUNTPROC3_DUMP = 2, - MOUNTPROC3_UMNT = 3, - MOUNTPROC3_UMNTALL = 4, - MOUNTPROC3_EXPORT = 5, +struct trace_event_data_offsets_api_disconnect { + u32 vif_name; }; -enum { - MOUNTPROC_NULL = 0, - MOUNTPROC_MNT = 1, - MOUNTPROC_DUMP = 2, - MOUNTPROC_UMNT = 3, - MOUNTPROC_UMNTALL = 4, - MOUNTPROC_EXPORT = 5, +struct trace_event_data_offsets_api_cqm_rssi_notify { + u32 vif_name; }; -struct mountres { - int errno; - struct nfs_fh *fh; - unsigned int *auth_count; - rpc_authflavor_t *auth_flavors; +struct trace_event_data_offsets_api_chswitch_done { + u32 vif_name; }; -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 trace_event_data_offsets_api_gtk_rekey_notify { + u32 vif_name; }; -struct crypto_kpp { - unsigned int reqsize; - struct crypto_tfm base; +struct trace_event_data_offsets_api_enable_rssi_reports { + u32 vif_name; }; -struct kpp_request; +struct trace_event_data_offsets_local_only_evt {}; -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 trace_event_data_offsets_local_u32_evt {}; -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 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 kpp_instance { - void (*free)(struct kpp_instance *); - union { - struct { - char head[48]; - struct crypto_instance base; - } s; - struct kpp_alg alg; - }; +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 {}; + +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, }; -struct crypto_istat_kpp { - atomic64_t setsecret_cnt; - atomic64_t generate_public_key_cnt; - atomic64_t compute_shared_secret_cnt; - atomic64_t err_cnt; +enum pcpu_fc { + PCPU_FC_AUTO = 0, + PCPU_FC_EMBED = 1, + PCPU_FC_PAGE = 2, + PCPU_FC_NR = 3, }; -struct crypto_kpp_spawn { - struct crypto_spawn base; +typedef int pcpu_fc_cpu_to_node_fn_t(int); + +typedef int pcpu_fc_cpu_distance_fn_t(unsigned int, unsigned int); + +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 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 mpc_bus { + unsigned char type; + unsigned char busid; + unsigned char bustype[6]; }; -struct blk_stat_callback { - struct list_head list; - struct timer_list timer; - struct blk_rq_stat __attribute__((btf_type_tag("percpu"))) *cpu_stat; - int (*bucket_fn)(const struct request *); - unsigned int buckets; - struct blk_rq_stat *stat; - void (*timer_fn)(struct blk_stat_callback *); - void *data; - struct callback_head rcu; +struct mpc_lintsrc { + unsigned char type; + unsigned char irqtype; + unsigned short irqflag; + unsigned char srcbusid; + unsigned char srcbusirq; + unsigned char destapic; + unsigned char destapiclint; }; -struct blk_queue_stats { - struct list_head callbacks; - spinlock_t lock; - int accounting; +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; }; -typedef void (*btf_trace_kyber_latency)(void *, dev_t, const char *, const char *, unsigned int, unsigned int, unsigned int, unsigned int); +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; +}; -typedef void (*btf_trace_kyber_adjust)(void *, dev_t, const char *, unsigned int); +enum uv_system_type { + UV_NONE = 0, + UV_LEGACY_APIC = 1, + UV_X2APIC = 2, +}; -typedef void (*btf_trace_kyber_throttled)(void *, dev_t, const char *); +typedef void (*btf_trace_signal_generate)(void *, int, struct kernel_siginfo *, struct task_struct *, int, int); -enum { - KYBER_READ = 0, - KYBER_WRITE = 1, - KYBER_DISCARD = 2, - KYBER_OTHER = 3, - KYBER_NUM_DOMAINS = 4, -}; +typedef void (*btf_trace_signal_deliver)(void *, int, struct kernel_siginfo *, struct k_sigaction *); -enum { - KYBER_TOTAL_LATENCY = 0, - KYBER_IO_LATENCY = 1, +enum sig_handler { + HANDLER_CURRENT = 0, + HANDLER_SIG_DFL = 1, + HANDLER_EXIT = 2, }; enum { - KYBER_LATENCY_SHIFT = 2, - KYBER_GOOD_BUCKETS = 4, - KYBER_LATENCY_BUCKETS = 8, + TRACE_SIGNAL_DELIVERED = 0, + TRACE_SIGNAL_IGNORED = 1, + TRACE_SIGNAL_ALREADY_PENDING = 2, + TRACE_SIGNAL_OVERFLOW_FAIL = 3, + TRACE_SIGNAL_LOSE_INFO = 4, }; -enum { - KYBER_ASYNC_PERCENT = 75, +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_kyber_latency { +struct trace_event_raw_signal_generate { struct trace_entry ent; - dev_t dev; - char domain[16]; - char type[8]; - u8 percentile; - u8 numerator; - u8 denominator; - unsigned int samples; + int sig; + int errno; + int code; + char comm[16]; + pid_t pid; + int group; + int result; char __data[0]; }; -struct trace_event_raw_kyber_adjust { +struct trace_event_raw_signal_deliver { struct trace_entry ent; - dev_t dev; - char domain[16]; - unsigned int depth; + int sig; + int errno; + int code; + unsigned long sa_handler; + unsigned long sa_flags; char __data[0]; }; -struct trace_event_raw_kyber_throttled { - struct trace_entry ent; - dev_t dev; - char domain[16]; - char __data[0]; +struct multiprocess_signals { + sigset_t signal; + struct hlist_node node; }; -struct kyber_cpu_latency { - atomic_t buckets[48]; +struct compat_sigaction { + compat_uptr_t sa_handler; + compat_ulong_t sa_flags; + compat_uptr_t sa_restorer; + compat_sigset_t sa_mask; }; -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 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 kyber_ctx_queue { - spinlock_t lock; - struct list_head rq_list[4]; +struct trace_event_data_offsets_signal_generate {}; + +struct trace_event_data_offsets_signal_deliver {}; + +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; @@ -124931,3146 +129292,2698 @@ struct kyber_ctx_queue { 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 pci_osc_bit_struct { - u32 bit; - char *desc; -}; - -enum acpi_bridge_type { - ACPI_BRIDGE_TYPE_PCIE = 1, - ACPI_BRIDGE_TYPE_CXL = 2, -}; - -struct acpi_pci_root_ops; - -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_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 swap_map_page { + sector_t entries[511]; + sector_t next_swap; }; -struct hsu_dma_sg; +struct swap_map_page_list; -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 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 hsu_dma_sg { - dma_addr_t addr; - unsigned int len; +struct swap_map_page_list { + struct swap_map_page *map; + struct swap_map_page_list *next; }; -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 hib_bio_batch { + atomic_t count; + wait_queue_head_t wait; + blk_status_t error; + struct blk_plug plug; }; -struct hsu_dma { - struct dma_device dma; - struct hsu_dma_chan *chan; - unsigned short nr_channels; +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 old_serial_port { - unsigned int uart; - unsigned int baud_base; - unsigned int port; - unsigned int irq; - upf_t flags; - unsigned char io_type; - unsigned char *iomem_base; - unsigned short iomem_reg_shift; +struct 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]; }; -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 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 irq_info___2 { +struct klp_shadow { struct hlist_node node; - int irq; - spinlock_t lock; - struct list_head *head; -}; - -struct plat_serial8250_port { - unsigned long iobase; - void *membase; - resource_size_t mapbase; - resource_size_t mapsize; - unsigned int uartclk; - unsigned int irq; - unsigned long irqflags; - void *private_data; - unsigned char regshift; - unsigned char iotype; - unsigned char hub6; - unsigned char has_sysrq; - unsigned int type; - upf_t flags; - u16 bugs; - unsigned int (*serial_in)(struct uart_port *, int); - void (*serial_out)(struct uart_port *, int, int); - u32 (*dl_read)(struct uart_8250_port *); - void (*dl_write)(struct uart_8250_port *, u32); - void (*set_termios)(struct uart_port *, struct ktermios *, const struct ktermios *); - void (*set_ldisc)(struct uart_port *, struct ktermios *); - unsigned int (*get_mctrl)(struct uart_port *); - int (*handle_irq)(struct uart_port *); - void (*pm)(struct uart_port *, unsigned int, unsigned int); - void (*handle_break)(struct uart_port *); -}; - -struct io_pgtable_init_fns { - struct io_pgtable * (*alloc)(struct io_pgtable_cfg *, void *); - void (*free)(struct io_pgtable *); -}; - -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, -}; - -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 i915_gsc_proxy_component_ops; - -struct i915_gsc_proxy_component { - struct device *mei_dev; - const struct i915_gsc_proxy_component_ops *ops; -}; - -struct i915_gsc_proxy_component_ops { - struct module *owner; - int (*send)(struct device *, const void *, size_t); - int (*recv)(struct device *, void *, size_t); -}; - -enum intel_gsc_proxy_type { - GSC_PROXY_MSG_TYPE_PROXY_INVALID = 0, - GSC_PROXY_MSG_TYPE_PROXY_QUERY = 1, - GSC_PROXY_MSG_TYPE_PROXY_PAYLOAD = 2, - GSC_PROXY_MSG_TYPE_PROXY_END = 3, - GSC_PROXY_MSG_TYPE_PROXY_NOTIFICATION = 4, -}; - -struct intel_gsc_proxy_header { - u32 hdr; - u32 source; - u32 destination; - u32 status; -}; - -struct gsc_proxy_msg { - struct intel_gsc_mtl_header header; - struct intel_gsc_proxy_header proxy_header; + struct callback_head callback_head; + void *obj; + unsigned long id; + char data[0]; }; -typedef u32 (*hotplug_enables_func)(struct intel_encoder *); - -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); +typedef void (*klp_shadow_dtor_t)(void *, void *); -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]; -}; +typedef int (*klp_shadow_ctor_t)(void *, void *, void *); -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]; +enum wd_read_status { + WD_READ_SUCCESS = 0, + WD_READ_UNSTABLE = 1, + WD_READ_SKIP = 2, }; -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 proc_timens_offset { + int clockid; + struct timespec64 val; }; -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 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 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_bprintk_fmt { + struct list_head list; + const char *fmt; }; -struct trace_event_raw_intel_memory_cxsr { +struct eprobe_trace_entry_head { 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_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 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 eprobe_data { + struct trace_event_file *file; + struct trace_eprobe *ep; }; -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]; +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 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 bpf_bloom_filter { + struct bpf_map map; + u32 bitset_mask; + u32 hash_seed; + u32 nr_hash_funcs; + unsigned long bitset[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; }; -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]; +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, }; -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]; +enum bpf_stack_build_id_status { + BPF_STACK_BUILD_ID_EMPTY = 0, + BPF_STACK_BUILD_ID_VALID = 1, + BPF_STACK_BUILD_ID_IP = 2, }; -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]; -}; +typedef u64 (*btf_bpf_get_stackid)(struct pt_regs *, struct bpf_map *, u64); -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]; -}; +typedef u64 (*btf_bpf_get_stackid_pe)(struct bpf_perf_event_data_kern *, struct bpf_map *, u64); -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]; -}; +typedef u64 (*btf_bpf_get_stack)(struct pt_regs *, void *, u32, u64); -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]; -}; +typedef u64 (*btf_bpf_get_task_stack)(struct task_struct *, void *, u32, u64); -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]; -}; +typedef u64 (*btf_bpf_get_stack_pe)(struct bpf_perf_event_data_kern *, void *, u32, u64); -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 stack_map_bucket; -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 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 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 stack_map_bucket { + struct pcpu_freelist_node fnode; + u32 hash; + u32 nr; + u64 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 bpf_stack_build_id { + __s32 status; + unsigned char build_id[20]; + union { + __u64 offset; + __u64 ip; + }; }; -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 mlock_fbatch { + local_lock_t lock; + struct folio_batch fbatch; }; -struct trace_event_data_offsets_intel_pipe_enable { - u32 dev; +struct madvise_walk_private { + struct mmu_gather *tlb; + bool pageout; }; -struct trace_event_data_offsets_intel_pipe_disable { - u32 dev; +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, }; -struct trace_event_data_offsets_intel_pipe_crc { - u32 dev; +struct f_owner_ex { + int type; + __kernel_pid_t pid; }; -struct trace_event_data_offsets_intel_cpu_fifo_underrun { - u32 dev; -}; +typedef s64 compat_loff_t; -struct trace_event_data_offsets_intel_pch_fifo_underrun { - u32 dev; -}; +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 trace_event_data_offsets_intel_memory_cxsr { - u32 dev; +struct compat_flock { + short l_type; + short l_whence; + compat_off_t l_start; + compat_off_t l_len; + compat_pid_t l_pid; }; -struct trace_event_data_offsets_g4x_wm { - u32 dev; +enum fsconfig_command { + FSCONFIG_SET_FLAG = 0, + FSCONFIG_SET_STRING = 1, + FSCONFIG_SET_BINARY = 2, + FSCONFIG_SET_PATH = 3, + FSCONFIG_SET_PATH_EMPTY = 4, + FSCONFIG_SET_FD = 5, + FSCONFIG_CMD_CREATE = 6, + FSCONFIG_CMD_RECONFIGURE = 7, + FSCONFIG_CMD_CREATE_EXCL = 8, }; -struct trace_event_data_offsets_vlv_wm { - u32 dev; -}; +typedef __u16 Elf32_Half; -struct trace_event_data_offsets_vlv_fifo_size { - u32 dev; -}; +typedef __u32 Elf32_Addr; -struct trace_event_data_offsets_intel_plane_update_noarm { - u32 dev; - u32 name; -}; +typedef __u32 Elf32_Off; -struct trace_event_data_offsets_intel_plane_update_arm { - u32 dev; - u32 name; +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; }; -struct trace_event_data_offsets_intel_plane_disable_arm { - u32 dev; - u32 name; +struct compat_elf_siginfo { + compat_int_t si_signo; + compat_int_t si_code; + compat_int_t si_errno; }; -struct trace_event_data_offsets_intel_fbc_activate { - u32 dev; - u32 name; +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 trace_event_data_offsets_intel_fbc_deactivate { - u32 dev; - u32 name; +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 trace_event_data_offsets_intel_fbc_nuke { - u32 dev; - u32 name; +struct i386_elf_prstatus { + struct compat_elf_prstatus_common common; + struct user_regs_struct32 pr_reg; + compat_int_t pr_fpvalid; }; -struct trace_event_data_offsets_intel_crtc_vblank_work_start { - u32 dev; +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; }; -struct trace_event_data_offsets_intel_crtc_vblank_work_end { - u32 dev; -}; +struct elf_thread_core_info___2; -struct trace_event_data_offsets_intel_pipe_update_start { - u32 dev; +struct elf_note_info___2 { + struct elf_thread_core_info___2 *thread; + struct memelfnote psinfo; + struct memelfnote signote; + struct memelfnote auxv; + struct memelfnote files; + compat_siginfo_t csigdata; + size_t size; + int thread_notes; }; -struct trace_event_data_offsets_intel_pipe_update_vblank_evaded { - u32 dev; +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; }; -struct trace_event_data_offsets_intel_pipe_update_end { - u32 dev; -}; +typedef struct user_regs_struct compat_elf_gregset_t; -struct trace_event_data_offsets_intel_frontbuffer_invalidate { - u32 dev; +struct compat_elf_prstatus { + struct compat_elf_prstatus_common common; + compat_elf_gregset_t pr_reg; + compat_int_t pr_fpvalid; }; -struct trace_event_data_offsets_intel_frontbuffer_flush { - u32 dev; +struct elf_thread_core_info___2 { + struct elf_thread_core_info___2 *next; + struct task_struct *task; + struct compat_elf_prstatus prstatus; + struct memelfnote notes[0]; }; -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 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 trace_event_data_offsets_virtio_gpu_cmd { - u32 name; +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; }; -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_netfs_read)(void *, struct netfs_io_request *, loff_t, size_t, enum netfs_read_trace); -typedef void (*btf_trace_regmap_async_complete_done)(void *, struct regmap *); +typedef void (*btf_trace_netfs_rreq)(void *, struct netfs_io_request *, enum netfs_rreq_trace); -typedef void (*btf_trace_regcache_drop_region)(void *, struct regmap *, unsigned int, unsigned int); +typedef void (*btf_trace_netfs_sreq)(void *, struct netfs_io_subrequest *, enum netfs_sreq_trace); -struct trace_event_raw_regmap_reg { - struct trace_entry ent; - u32 __data_loc_name; - unsigned int reg; - unsigned int val; - char __data[0]; -}; +typedef void (*btf_trace_netfs_failure)(void *, struct netfs_io_request *, struct netfs_io_subrequest *, int, enum netfs_failure); -struct trace_event_raw_regmap_bulk { +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; - u32 __data_loc_name; - unsigned int reg; - u32 __data_loc_buf; - int val_len; + 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_regmap_block { +struct trace_event_raw_netfs_rreq { struct trace_entry ent; - u32 __data_loc_name; - unsigned int reg; - int count; + unsigned int rreq; + unsigned int flags; + enum netfs_io_origin origin; + enum netfs_rreq_trace what; char __data[0]; }; -struct trace_event_raw_regcache_sync { +struct trace_event_raw_netfs_sreq { struct trace_entry ent; - u32 __data_loc_name; - u32 __data_loc_status; - u32 __data_loc_type; + 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_regmap_bool { +struct trace_event_raw_netfs_failure { struct trace_entry ent; - u32 __data_loc_name; - int flag; + 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_regmap_async { +struct trace_event_raw_netfs_rreq_ref { struct trace_entry ent; - u32 __data_loc_name; + unsigned int rreq; + int ref; + enum netfs_rreq_ref_trace what; char __data[0]; }; -struct trace_event_raw_regcache_drop_region { +struct trace_event_raw_netfs_sreq_ref { struct trace_entry ent; - u32 __data_loc_name; - unsigned int from; - unsigned int to; + unsigned int rreq; + unsigned int subreq; + int ref; + enum netfs_sreq_ref_trace what; 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; -}; - -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; -}; - -typedef unsigned char cisdata_t; +struct trace_event_data_offsets_netfs_read {}; -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; -}; +struct trace_event_data_offsets_netfs_rreq {}; -typedef struct tuple_t tuple_t; +struct trace_event_data_offsets_netfs_sreq {}; -struct cistpl_device_t { - u_char ndev; - struct { - u_char type; - u_char wp; - u_int speed; - u_int size; - } dev[4]; -}; +struct trace_event_data_offsets_netfs_failure {}; -typedef struct cistpl_device_t cistpl_device_t; +struct trace_event_data_offsets_netfs_rreq_ref {}; -struct cistpl_checksum_t { - u_short addr; - u_short len; - u_char sum; -}; +struct trace_event_data_offsets_netfs_sreq_ref {}; -typedef struct cistpl_checksum_t cistpl_checksum_t; +typedef __kernel_mode_t mode_t; -struct cistpl_longlink_t { - u_int addr; +struct orlov_stats { + __u64 free_clusters; + __u32 free_inodes; + __u32 used_dirs; }; -typedef struct cistpl_longlink_t cistpl_longlink_t; - -struct cistpl_longlink_mfc_t { - u_char nfn; - struct { - u_char space; - u_int addr; - } fn[8]; +enum ramfs_param { + Opt_mode___3 = 0, }; -typedef struct cistpl_longlink_mfc_t cistpl_longlink_mfc_t; - -struct cistpl_vers_1_t { - u_char major; - u_char minor; - u_char ns; - u_char ofs[4]; - char str[254]; +struct ramfs_mount_opts { + umode_t mode; }; -typedef struct cistpl_vers_1_t cistpl_vers_1_t; - -struct cistpl_altstr_t { - u_char ns; - u_char ofs[4]; - char str[254]; +struct ramfs_fs_info { + struct ramfs_mount_opts mount_opts; }; -typedef struct cistpl_altstr_t cistpl_altstr_t; - -struct cistpl_jedec_t { - u_char nid; - struct { - u_char mfr; - u_char info; - } id[4]; +struct nfs3_getaclargs { + struct nfs_fh *fh; + int mask; + struct page **pages; }; -typedef struct cistpl_jedec_t cistpl_jedec_t; - -struct cistpl_manfid_t { - u_short manf; - u_short card; +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; }; -typedef struct cistpl_manfid_t cistpl_manfid_t; - -struct cistpl_funcid_t { - u_char func; - u_char sysinit; +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; }; -typedef struct cistpl_funcid_t cistpl_funcid_t; - -struct cistpl_funce_t { - u_char type; - u_char data[0]; +enum { + Opt_direct = 0, + Opt_fd = 1, + Opt_gid___4 = 2, + Opt_ignore___2 = 3, + Opt_indirect = 4, + Opt_maxproto = 5, + Opt_minproto = 6, + Opt_offset = 7, + Opt_pgrp = 8, + Opt_strictexpire = 9, + Opt_uid___4 = 10, +}; + +struct autofs_fs_context { + kuid_t uid; + kgid_t gid; + int pgrp; + bool pgrp_set; }; -typedef struct cistpl_funce_t cistpl_funce_t; - -struct cistpl_bar_t { - u_char attr; - u_int size; +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_noxattr = 9, + Opt_directio = 10, + Opt_ignoreqv = 11, + Opt_access = 12, + Opt_posixacl = 13, + Opt_locktimeout = 14, + Opt_err___6 = 15, }; -typedef struct cistpl_bar_t cistpl_bar_t; - -struct cistpl_config_t { - u_char last_idx; - u_int base; - u_int rmask[4]; - u_char subtuples; +enum p9_cache_shortcuts { + CACHE_SC_NONE = 0, + CACHE_SC_READAHEAD = 1, + CACHE_SC_MMAP = 5, + CACHE_SC_LOOSE = 15, + CACHE_SC_FSCACHE = 143, }; -typedef struct cistpl_config_t cistpl_config_t; - -struct cistpl_power_t { - u_char present; - u_char flags; - u_int param[7]; +enum { + Opt_error = -1, + Opt_context = 0, + Opt_defcontext = 1, + Opt_fscontext = 2, + Opt_rootcontext = 3, + Opt_seclabel = 4, }; -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; +struct file_security_struct { + u32 sid; + u32 fown_sid; + u32 isid; + u32 pseqno; }; -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]; +struct bpf_security_struct { + u32 sid; }; -typedef struct cistpl_io_t cistpl_io_t; - -struct cistpl_irq_t { - u_int IRQInfo1; - u_int IRQInfo2; +struct ipc_security_struct { + u16 sclass; + u32 sid; }; -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]; +struct msg_security_struct { + u32 sid; }; -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; +struct selinux_mnt_opts { + u32 fscontext_sid; + u32 context_sid; + u32 rootcontext_sid; + u32 defcontext_sid; }; -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; +struct tun_security_struct { + u32 sid; }; -typedef struct cistpl_cftable_entry_cb_t cistpl_cftable_entry_cb_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]; +struct key_security_struct { + u32 sid; }; -typedef struct cistpl_device_geo_t cistpl_device_geo_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]; +struct perf_event_security_struct { + u32 sid; }; -typedef struct cistpl_vers_2_t cistpl_vers_2_t; - -struct cistpl_org_t { - u_char data_org; - char desc[30]; +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 struct cistpl_org_t cistpl_org_t; - -struct cistpl_format_t { - u_char type; - u_char edc; - u_int offset; - u_int length; +enum { + IO_SQ_THREAD_SHOULD_STOP = 0, + IO_SQ_THREAD_SHOULD_PARK = 1, }; -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; +enum { + IO_WQ_BIT_EXIT = 0, }; -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 *); +enum { + IO_WORKER_F_UP = 1, + IO_WORKER_F_RUNNING = 2, + IO_WORKER_F_FREE = 4, + IO_WORKER_F_BOUND = 8, }; -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; +enum { + IO_ACCT_STALLED_BIT = 0, }; -struct pcmcia_loop_get { - size_t len; - cisdata_t **buf; +enum { + IO_WQ_ACCT_BOUND = 0, + IO_WQ_ACCT_UNBOUND = 1, + IO_WQ_ACCT_NR = 2, }; -enum xhci_setup_dev { - SETUP_CONTEXT_ONLY = 0, - SETUP_CONTEXT_ADDRESS = 1, +struct io_wq_acct { + unsigned int nr_workers; + unsigned int max_workers; + int index; + atomic_t nr_running; + raw_spinlock_t lock; + struct io_wq_work_list work_list; + unsigned long flags; }; -enum xhci_ep_reset_type { - EP_HARD_RESET = 0, - EP_SOFT_RESET = 1, +struct io_wq { + unsigned long state; + free_work_fn *free_work; + io_wq_work_fn *do_work; + struct io_wq_hash *hash; + atomic_t worker_refs; + struct completion worker_done; + struct hlist_node cpuhp_node; + struct task_struct *task; + struct io_wq_acct acct[2]; + raw_spinlock_t lock; + struct hlist_nulls_head free_list; + struct list_head all_list; + struct wait_queue_entry wait; + struct io_wq_work *hash_tail[64]; + cpumask_var_t cpu_mask; }; -struct 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; +struct io_worker { + refcount_t ref; + unsigned int flags; + struct hlist_nulls_node nulls_node; + struct list_head all_list; + struct task_struct *task; + struct io_wq *wq; + struct io_wq_work *cur_work; + struct io_wq_work *next_work; + raw_spinlock_t lock; + struct completion ref_done; + unsigned long create_state; + struct callback_head create_work; + int create_index; + union { + struct callback_head rcu; + struct work_struct work; + }; }; -enum power_supply_charge_behaviour { - POWER_SUPPLY_CHARGE_BEHAVIOUR_AUTO = 0, - POWER_SUPPLY_CHARGE_BEHAVIOUR_INHIBIT_CHARGE = 1, - POWER_SUPPLY_CHARGE_BEHAVIOUR_FORCE_DISCHARGE = 2, +struct io_cb_cancel_data { + work_cancel_fn *fn; + void *data; + int nr_running; + int nr_pending; + bool cancel_all; }; -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 online_data { + unsigned int cpu; + bool online; }; -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 *); +enum { + EI_ETYPE_NULL = 0, + EI_ETYPE_ERRNO = 1, + EI_ETYPE_ERRNO_NULL = 2, + EI_ETYPE_TRUE = 3, }; -struct snd_seq_client_port { - struct snd_seq_addr addr; - struct module *owner; - char name[64]; +struct ei_entry { 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; - unsigned char direction; - unsigned char ump_group; + unsigned long start_addr; + unsigned long end_addr; + int etype; + void *priv; }; -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 aperture_range { + struct device *dev; + resource_size_t base; + resource_size_t size; + struct list_head lh; + void (*detach)(struct device *); }; -typedef int snd_seq_client_type_t; - -struct snd_seq_fifo; - -struct snd_seq_user_client { - struct file *file; - struct pid *owner; - struct snd_seq_fifo *fifo; - int fifo_pool_size; +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 snd_seq_kernel_client { - struct snd_card *card; +struct virtio_input_event { + __le16 type; + __le16 code; + __le32 value; }; -struct snd_seq_client { - snd_seq_client_type_t type; - unsigned int accept_input: 1; - unsigned int accept_output: 1; - unsigned int midi_version; - unsigned int user_pversion; +struct virtio_input { + struct virtio_device *vdev; + struct input_dev *idev; char name[64]; - int number; - unsigned int filter; - unsigned long event_filter[4]; - unsigned short group_filter; - 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; - int ump_endpoint_port; - struct snd_seq_pool *pool; - union { - struct snd_seq_user_client user; - struct snd_seq_kernel_client kernel; - } data; - void **ump_info; -}; - -struct snd_seq_fifo { - struct snd_seq_pool *pool; - struct snd_seq_event_cell *head; - struct snd_seq_event_cell *tail; - int cells; + char serial[64]; + char phys[64]; + struct virtqueue *evt; + struct virtqueue *sts; + struct virtio_input_event evts[64]; spinlock_t lock; - snd_use_lock_t use_lock; - wait_queue_head_t input_sleep; - atomic_t overflow; -}; - -struct drop_reason_list { - const char * const *reasons; - size_t n_reasons; + bool ready; }; -struct page_frag_cache { - void *va; - __u16 offset; - __u16 size; - unsigned int pagecnt_bias; - bool pfmemalloc; +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, }; -struct page_frag_1k { - void *va; - u16 offset; - bool pfmemalloc; +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, }; -struct napi_alloc_cache { - struct page_frag_cache page; - struct page_frag_1k page_small; - unsigned int skb_count; - void *skb_cache[64]; +enum { + QI_FREE = 0, + QI_IN_USE = 1, + QI_DONE = 2, + QI_ABORT = 3, }; -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; +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, }; -struct ip_auth_hdr { - __u8 nexthdr; - __u8 hdrlen; - __be16 reserved; - __be32 spi; - __be32 seq_no; - __u8 auth_data[0]; +enum faulttype { + DMA_REMAP = 0, + INTR_REMAP = 1, + UNKNOWN = 2, }; -struct mpls_shim_hdr { - __be32 label_stack_entry; +struct acpi_dmar_pci_path { + u8 device; + u8 function; }; -struct skb_free_array { - unsigned int skb_count; - void *skb_array[16]; +struct acpi_dmar_hardware_unit { + struct acpi_dmar_header header; + u8 flags; + u8 size; + u16 segment; + u64 address; }; -typedef int (*sendmsg_func)(struct sock *, struct msghdr *); - -struct ts_ops; - -struct ts_state; - -struct ts_config { - struct ts_ops *ops; - int flags; - unsigned int (*get_next_block)(unsigned int, const u8 **, struct ts_config *, struct ts_state *); - void (*finish)(struct ts_config *, struct ts_state *); +struct acpi_table_dmar { + struct acpi_table_header header; + u8 width; + u8 flags; + u8 reserved[10]; }; -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 dmar_pci_path { + u8 bus; + u8 device; + u8 function; }; -struct ts_state { - unsigned int offset; - char cb[48]; +struct dmar_pci_notify_info { + struct pci_dev *dev; + unsigned long event; + int bus; + u16 seg; + u16 level; + struct dmar_pci_path path[0]; }; -enum ethtool_flags { - ETH_FLAG_TXVLAN = 128, - ETH_FLAG_RXVLAN = 256, - ETH_FLAG_LRO = 32768, - ETH_FLAG_NTUPLE = 134217728, - ETH_FLAG_RXHASH = 268435456, -}; +struct acpi_dmar_rhsa { + struct acpi_dmar_header header; + u32 reserved; + u64 base_address; + u32 proximity_domain; +} __attribute__((packed)); -enum ethtool_sfeatures_retval_bits { - ETHTOOL_F_UNSUPPORTED__BIT = 0, - ETHTOOL_F_WISH__BIT = 1, - ETHTOOL_F_COMPAT__BIT = 2, +struct acpi_dmar_reserved_memory { + struct acpi_dmar_header header; + u16 reserved; + u16 segment; + u64 base_address; + u64 end_address; }; -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, +struct acpi_dmar_atsr { + struct acpi_dmar_header header; + u8 flags; + u8 reserved; + u16 segment; }; -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, +struct acpi_dmar_satc { + struct acpi_dmar_header header; + u8 flags; + u8 reserved; + u16 segment; }; -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, -}; +typedef int (*dmar_res_handler_t)(struct acpi_dmar_header *, void *); -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 dmar_res_callback { + dmar_res_handler_t cb[6]; + void *arg[6]; + bool ignore_unhandled; + bool print_entry; }; -struct ethtool_rx_flow_match { - struct flow_dissector dissector; - long: 0; - struct ethtool_rx_flow_key key; - struct ethtool_rx_flow_key mask; +struct acpi_dmar_device_scope { + u8 entry_type; + u8 length; + u16 reserved; + u8 enumeration_id; + u8 bus; }; -struct ethtool_devlink_compat { - struct devlink *devlink; +struct acpi_dmar_andd { + struct acpi_dmar_header header; + u8 reserved[3]; + u8 device_number; union { - struct ethtool_flash efl; - struct ethtool_drvinfo info; + char __pad; + struct { + struct {} __Empty_device_name; + char device_name[0]; + }; }; -}; +} __attribute__((packed)); -struct ethtool_value { - __u32 cmd; - __u32 data; +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 flow_rule; - -struct ethtool_rx_flow_rule { - struct flow_rule *rule; - unsigned long priv[0]; +struct syncobj_eventfd_entry { + struct list_head node; + struct dma_fence *fence; + struct dma_fence_cb fence_cb; + struct drm_syncobj *syncobj; + struct eventfd_ctx *ev_fd_ctx; + u64 point; + u32 flags; }; -struct flow_match { - struct flow_dissector *dissector; - void *mask; - void *key; +struct drm_syncobj_transfer { + __u32 src_handle; + __u32 dst_handle; + __u64 src_point; + __u64 dst_point; + __u32 flags; + __u32 pad; }; -struct flow_rule { - struct flow_match match; - struct flow_action action; +struct drm_syncobj_wait { + __u64 handles; + __s64 timeout_nsec; + __u32 count_handles; + __u32 flags; + __u32 first_signaled; + __u32 pad; }; -struct ethtool_link_usettings { - struct ethtool_link_settings base; - struct { - __u32 supported[4]; - __u32 advertising[4]; - __u32 lp_advertising[4]; - } link_modes; +struct drm_syncobj_timeline_wait { + __u64 handles; + __u64 points; + __s64 timeout_nsec; + __u32 count_handles; + __u32 flags; + __u32 first_signaled; + __u32 pad; }; -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 drm_syncobj_create { + __u32 handle; + __u32 flags; +}; -struct ethtool_rx_flow_spec_input { - const struct ethtool_rx_flow_spec *fs; - u32 rss_ctx; +struct drm_syncobj_destroy { + __u32 handle; + __u32 pad; }; -struct ethtool_gstrings { - __u32 cmd; - __u32 string_set; - __u32 len; - __u8 data[0]; +struct drm_syncobj_handle { + __u32 handle; + __u32 flags; + __s32 fd; + __u32 pad; }; -struct ethtool_perm_addr { - __u32 cmd; - __u32 size; - __u8 data[0]; +struct drm_syncobj_eventfd { + __u32 handle; + __u32 flags; + __u64 point; + __s32 fd; + __u32 pad; }; -struct ethtool_sset_info { - __u32 cmd; - __u32 reserved; - __u64 sset_mask; - __u32 data[0]; +struct drm_syncobj_array { + __u64 handles; + __u32 count_handles; + __u32 pad; }; -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 drm_syncobj_timeline_array { + __u64 handles; + __u64 points; + __u32 count_handles; + __u32 flags; }; -struct ethtool_get_features_block { - __u32 available; - __u32 requested; - __u32 active; - __u32 never_changed; +enum vga_switcheroo_state { + VGA_SWITCHEROO_OFF = 0, + VGA_SWITCHEROO_ON = 1, + VGA_SWITCHEROO_NOT_FOUND = 2, }; -struct ethtool_gfeatures { - __u32 cmd; - __u32 size; - struct ethtool_get_features_block features[0]; +enum vga_switcheroo_client_id { + VGA_SWITCHEROO_UNKNOWN_ID = 4096, + VGA_SWITCHEROO_IGD = 0, + VGA_SWITCHEROO_DIS = 1, + VGA_SWITCHEROO_MAX_CLIENTS = 2, }; -struct ethtool_set_features_block { - __u32 valid; - __u32 requested; +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 ethtool_sfeatures { - __u32 cmd; - __u32 size; - struct ethtool_set_features_block features[0]; +struct insert_pte_data { + u64 offset; }; -struct ethtool_per_queue_op { - __u32 cmd; - __u32 sub_command; - __u32 queue_mask[128]; - char data[0]; +struct drm_i915_gem_caching { + __u32 handle; + __u32 caching; }; -struct ipfrag_skb_cb { - union { - struct inet_skb_parm h4; - struct inet6_skb_parm h6; - }; - struct sk_buff *next_frag; - int frag_run_len; +struct drm_i915_gem_set_domain { + __u32 handle; + __u32 read_domains; + __u32 write_domain; }; -struct rt0_hdr { - struct ipv6_rt_hdr rt_hdr; - __u32 reserved; - struct in6_addr addr[0]; +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, }; -struct ioam6_hdr { - __u8 opt_type; - __u8 opt_len; - char: 8; - __u8 type; +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, }; -struct ip6t_ipv6header_info { - __u8 matchflags; - __u8 invflags; - __u8 modeflag; +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, }; -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 void (*btf_trace_intel_pipe_enable)(void *, struct intel_crtc *); -typedef struct xdr_netobj utf8string; +typedef void (*btf_trace_intel_pipe_disable)(void *, struct intel_crtc *); -typedef struct xdr_netobj gssx_buffer; +typedef void (*btf_trace_intel_pipe_crc)(void *, struct intel_crtc *, const u32 *); -struct gssx_option; +typedef void (*btf_trace_intel_cpu_fifo_underrun)(void *, struct drm_i915_private *, enum pipe); -struct gssx_option_array { - u32 count; - struct gssx_option *data; -}; +typedef void (*btf_trace_intel_pch_fifo_underrun)(void *, struct drm_i915_private *, enum pipe); -struct gssx_call_ctx { - utf8string locale; - gssx_buffer server_ctx; - struct gssx_option_array options; -}; +typedef void (*btf_trace_intel_memory_cxsr)(void *, struct drm_i915_private *, bool, bool); -struct gssx_ctx; +typedef void (*btf_trace_g4x_wm)(void *, struct intel_crtc *, const struct g4x_wm_values *); -struct gssx_cred; +typedef void (*btf_trace_vlv_wm)(void *, struct intel_crtc *, const struct vlv_wm_values *); -struct gssx_cb; +typedef void (*btf_trace_vlv_fifo_size)(void *, struct intel_crtc *, u32, u32, u32); -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; -}; +typedef void (*btf_trace_intel_plane_update_noarm)(void *, struct intel_plane *, struct intel_crtc *); -struct gssx_option { - gssx_buffer option; - gssx_buffer value; -}; +typedef void (*btf_trace_intel_plane_update_arm)(void *, struct intel_plane *, struct intel_crtc *); -typedef struct xdr_netobj gssx_OID; +typedef void (*btf_trace_intel_plane_disable_arm)(void *, struct intel_plane *, struct intel_crtc *); -struct gssx_name { - gssx_buffer display_name; -}; +typedef void (*btf_trace_intel_fbc_activate)(void *, struct intel_plane *); -typedef struct gssx_name gssx_name; +typedef void (*btf_trace_intel_fbc_deactivate)(void *, struct intel_plane *); -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; -}; +typedef void (*btf_trace_intel_fbc_nuke)(void *, struct intel_plane *); -struct gssx_cred_element; +typedef void (*btf_trace_intel_crtc_vblank_work_start)(void *, struct intel_crtc *); -struct gssx_cred_element_array { - u32 count; - struct gssx_cred_element *data; -}; +typedef void (*btf_trace_intel_crtc_vblank_work_end)(void *, struct intel_crtc *); -struct gssx_cred { - gssx_name desired_name; - struct gssx_cred_element_array elements; - gssx_buffer cred_handle_reference; - u32 needs_release; -}; +typedef void (*btf_trace_intel_pipe_update_start)(void *, struct intel_crtc *); -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; -}; +typedef void (*btf_trace_intel_pipe_update_vblank_evaded)(void *, struct intel_crtc *); -struct gssx_cb { - u64 initiator_addrtype; - gssx_buffer initiator_address; - u64 acceptor_addrtype; - gssx_buffer acceptor_address; - gssx_buffer application_data; -}; +typedef void (*btf_trace_intel_pipe_update_end)(void *, struct intel_crtc *, u32, int); -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; -}; +typedef void (*btf_trace_intel_frontbuffer_invalidate)(void *, struct drm_i915_private *, unsigned int, unsigned int); -struct gssx_res_accept_sec_context { - struct gssx_status status; - struct gssx_ctx *context_handle; - gssx_buffer *output_token; - struct gssx_option_array options; -}; +typedef void (*btf_trace_intel_frontbuffer_flush)(void *, struct drm_i915_private *, unsigned int, unsigned int); -enum handshake_handler_class { - HANDSHAKE_HANDLER_CLASS_NONE = 0, - HANDSHAKE_HANDLER_CLASS_TLSHD = 1, - HANDSHAKE_HANDLER_CLASS_MAX = 2, +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]; }; -enum hr_flags_bits { - HANDSHAKE_F_REQ_COMPLETED = 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]; }; -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; +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 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 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]; }; -enum dl_bw_request { - dl_bw_req_check_overflow = 0, - dl_bw_req_alloc = 1, - dl_bw_req_free = 2, +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]; }; -enum s2idle_states { - S2IDLE_STATE_NONE = 0, - S2IDLE_STATE_ENTER = 1, - S2IDLE_STATE_WAKE = 2, +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 idle_timer { - struct hrtimer timer; - int done; +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]; }; -typedef struct rt_rq *rt_rq_iter_t; - -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 *); +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 cpu_timer { - struct timerqueue_node node; - struct timerqueue_head *head; - struct pid *pid; - struct list_head elist; - int firing; - struct task_struct __attribute__((btf_type_tag("rcu"))) *handling; +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]; }; -typedef __kernel_timer_t timer_t; - -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 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 posix_clock_desc { - struct file *fp; - struct posix_clock *clk; +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 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 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 cpu_stop_done { - atomic_t nr_todo; - int ret; - struct completion completion; +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]; }; -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 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 multi_stop_data { - cpu_stop_fn_t fn; - void *data; - unsigned int num_threads; - const struct cpumask *active_cpus; - enum multi_stop_state state; - atomic_t thread_ack; +struct 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]; }; -typedef unsigned long perf_trace_t[1024]; - -struct bpf_iter__bpf_prog { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_prog *prog; - }; +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 bpf_iter_seq_prog_info { - u32 prog_id; +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 vm_event_state { - unsigned long event[77]; +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]; }; -enum writeback_stat_item { - NR_DIRTY_THRESHOLD = 0, - NR_DIRTY_BG_THRESHOLD = 1, - NR_VM_WRITEBACK_STAT_ITEMS = 2, +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 contig_page_info { - unsigned long free_pages; - unsigned long free_blocks_total; - unsigned long free_blocks_suitable; +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 file_handle { - __u32 handle_bytes; - int handle_type; - unsigned char f_handle[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]; }; -enum proc_param { - Opt_gid___5 = 0, - Opt_hidepid = 1, - Opt_subset = 2, +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 proc_fs_context { - struct pid_namespace *pid_ns; - unsigned int mask; - enum proc_hidepid hidepid; - int gid; - enum proc_pidonly pidonly; +struct trace_event_data_offsets_intel_pipe_enable { + u32 dev; }; -struct cb_process_state; +struct trace_event_data_offsets_intel_pipe_disable { + u32 dev; +}; -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 trace_event_data_offsets_intel_pipe_crc { + u32 dev; }; -struct cb_process_state { - __be32 drc_status; - struct nfs_client *clp; - struct nfs4_slot *slot; - u32 minorversion; - struct net *net; +struct trace_event_data_offsets_intel_cpu_fifo_underrun { + u32 dev; }; -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 trace_event_data_offsets_intel_pch_fifo_underrun { + u32 dev; }; -struct cb_compound_hdr_arg { - unsigned int taglen; - const char *tag; - unsigned int minorversion; - unsigned int cb_ident; - unsigned int nops; +struct trace_event_data_offsets_intel_memory_cxsr { + u32 dev; }; -struct cb_compound_hdr_res { - __be32 *status; - unsigned int taglen; - const char *tag; - __be32 *nops; +struct trace_event_data_offsets_g4x_wm { + u32 dev; }; -struct cb_getattrargs { - struct nfs_fh fh; - uint32_t bitmap[2]; +struct trace_event_data_offsets_vlv_wm { + u32 dev; }; -struct cb_getattrres { - __be32 status; - uint32_t bitmap[2]; - uint64_t size; - uint64_t change_attr; - struct timespec64 ctime; - struct timespec64 mtime; +struct trace_event_data_offsets_vlv_fifo_size { + u32 dev; }; -struct cb_recallargs { - struct nfs_fh fh; - nfs4_stateid stateid; - uint32_t truncate; +struct trace_event_data_offsets_intel_plane_update_noarm { + u32 dev; + u32 name; }; -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 trace_event_data_offsets_intel_plane_update_arm { + u32 dev; + u32 name; }; -struct shm_file_data { - int id; - struct ipc_namespace *ns; - struct file *file; - const struct vm_operations_struct *vm_ops; +struct trace_event_data_offsets_intel_plane_disable_arm { + u32 dev; + u32 name; }; -typedef int __kernel_ipc_pid_t; +struct trace_event_data_offsets_intel_fbc_activate { + u32 dev; + u32 name; +}; -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 trace_event_data_offsets_intel_fbc_deactivate { + u32 dev; + u32 name; }; -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 trace_event_data_offsets_intel_fbc_nuke { + u32 dev; + u32 name; }; -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 trace_event_data_offsets_intel_crtc_vblank_work_start { + u32 dev; }; -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 trace_event_data_offsets_intel_crtc_vblank_work_end { + u32 dev; }; -struct shminfo { - int shmmax; - int shmmin; - int shmmni; - int shmseg; - int shmall; +struct trace_event_data_offsets_intel_pipe_update_start { + u32 dev; }; -typedef u16 compat_ipc_pid_t; +struct trace_event_data_offsets_intel_pipe_update_vblank_evaded { + u32 dev; +}; -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 trace_event_data_offsets_intel_pipe_update_end { + u32 dev; }; -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 trace_event_data_offsets_intel_frontbuffer_invalidate { + u32 dev; }; -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 trace_event_data_offsets_intel_frontbuffer_flush { + u32 dev; }; -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 _balloon_info_ { + struct drm_mm_node space[4]; }; -struct rsa_asn1_template { - const char *name; - const u8 *data; - size_t size; +struct regcache_rbtree_node { + void *block; + unsigned long *cache_present; + unsigned int base_reg; + unsigned int blklen; + struct rb_node node; }; -struct akcipher_instance { - void (*free)(struct akcipher_instance *); - union { - struct { - char head[72]; - struct crypto_instance base; - } s; - struct akcipher_alg alg; - }; +struct regcache_rbtree_ctx { + struct rb_root root; + struct regcache_rbtree_node *cached_rbnode; }; -struct crypto_akcipher_spawn { - struct crypto_spawn base; +enum scsi_ml_status { + SCSIML_STAT_OK = 0, + SCSIML_STAT_RESV_CONFLICT = 1, + SCSIML_STAT_NOSPC = 2, + SCSIML_STAT_MED_ERROR = 3, + SCSIML_STAT_TGT_FAILURE = 4, + SCSIML_STAT_DL_TIMEOUT = 5, }; -struct pkcs1pad_inst_ctx { - struct crypto_akcipher_spawn spawn; - const struct rsa_asn1_template *digest_info; +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, }; -struct pkcs1pad_ctx { - struct crypto_akcipher *child; - unsigned int key_size; +struct ahci_sg { + __le32 addr; + __le32 addr_hi; + __le32 reserved; + __le32 flags_size; }; -struct pkcs1pad_request { - struct scatterlist in_sg[2]; - struct scatterlist out_sg[1]; - uint8_t *in_buf; - uint8_t *out_buf; - struct akcipher_request child_req; +struct usb_descriptor_header { + __u8 bLength; + __u8 bDescriptorType; }; -enum dd_prio { - DD_RT_PRIO = 0, - DD_BE_PRIO = 1, - DD_IDLE_PRIO = 2, - DD_PRIO_MAX = 2, +struct each_dev_arg { + void *data; + int (*fn)(struct usb_device *, void *); }; -enum dd_data_dir { - DD_READ = 0, - DD_WRITE = 1, +struct find_interface_arg { + int minor; + struct device_driver *drv; }; -struct io_stats_per_prio { - uint32_t inserted; - uint32_t merged; - uint32_t dispatched; - atomic_t completed; +struct ehci_driver_overrides { + size_t extra_priv_size; + int (*reset)(struct usb_hcd *); + int (*port_power)(struct usb_hcd *, int, bool); }; -struct dd_per_prio { - struct list_head dispatch; - struct rb_root sort_list[2]; - struct list_head fifo_list[2]; - sector_t latest_pos[2]; - struct io_stats_per_prio stats; +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, }; -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 ehci_rh_state { + EHCI_RH_HALTED = 0, + EHCI_RH_SUSPENDED = 1, + EHCI_RH_RUNNING = 2, + EHCI_RH_STOPPING = 3, }; -typedef void sg_free_fn(struct scatterlist *, unsigned int); +struct ehci_qh; -struct sg_append_table { - struct sg_table sgt; - struct scatterlist *prv; - unsigned int total_nents; +union ehci_shadow; + +struct ehci_itd; + +struct ehci_sitd; + +struct ehci_hcd { + enum ehci_hrtimer_event next_hrtimer_event; + unsigned int enabled_hrtimer_events; + ktime_t hr_timeouts[12]; + struct hrtimer hrtimer; + int PSS_poll_count; + int ASS_poll_count; + int died_poll_count; + struct ehci_caps *caps; + struct ehci_regs *regs; + struct ehci_dbg_port *debug; + __u32 hcs_params; + spinlock_t lock; + enum ehci_rh_state rh_state; + bool scanning: 1; + bool need_rescan: 1; + bool intr_unlinking: 1; + bool iaa_in_progress: 1; + bool async_unlinking: 1; + bool shutdown: 1; + struct ehci_qh *qh_scan_next; + struct ehci_qh *async; + struct ehci_qh *dummy; + struct list_head async_unlink; + struct list_head async_idle; + unsigned int async_unlink_cycle; + unsigned int async_count; + __le32 old_current; + __le32 old_token; + unsigned int periodic_size; + __le32 *periodic; + dma_addr_t periodic_dma; + struct list_head intr_qh_list; + unsigned int i_thresh; + union ehci_shadow *pshadow; + struct list_head intr_unlink_wait; + struct list_head intr_unlink; + unsigned int intr_unlink_wait_cycle; + unsigned int intr_unlink_cycle; + unsigned int now_frame; + unsigned int last_iso_frame; + unsigned int intr_count; + unsigned int isoc_count; + unsigned int periodic_count; + unsigned int uframe_periodic_max; + struct list_head cached_itd_list; + struct ehci_itd *last_itd_to_free; + struct list_head cached_sitd_list; + struct ehci_sitd *last_sitd_to_free; + unsigned long reset_done[15]; + unsigned long bus_suspended; + unsigned long companion_ports; + unsigned long owned_ports; + unsigned long port_c_suspend; + unsigned long suspended_ports; + unsigned long resuming_ports; + struct dma_pool *qh_pool; + struct dma_pool *qtd_pool; + struct dma_pool *itd_pool; + struct dma_pool *sitd_pool; + unsigned int random_frame; + unsigned long next_statechange; + ktime_t last_periodic_enable; + u32 command; + unsigned int no_selective_suspend: 1; + unsigned int has_fsl_port_bug: 1; + unsigned int has_fsl_hs_errata: 1; + unsigned int has_fsl_susp_errata: 1; + unsigned int has_ci_pec_bug: 1; + unsigned int big_endian_mmio: 1; + unsigned int big_endian_desc: 1; + unsigned int big_endian_capbase: 1; + unsigned int has_amcc_usb23: 1; + unsigned int need_io_watchdog: 1; + unsigned int amd_pll_fix: 1; + unsigned int use_dummy_qh: 1; + unsigned int has_synopsys_hc_bug: 1; + unsigned int frame_index_bug: 1; + unsigned int need_oc_pp_cycle: 1; + unsigned int imx28_write_fix: 1; + unsigned int spurious_oc: 1; + unsigned int is_aspeed: 1; + unsigned int zx_wakeup_clear_needed: 1; + __le32 *ohci_hcctrl_reg; + unsigned int has_hostpc: 1; + unsigned int has_tdi_phy_lpm: 1; + unsigned int has_ppcd: 1; + u8 sbrn; + u8 bandwidth[64]; + u8 tt_budget[64]; + struct list_head tt_list; + unsigned long priv[0]; }; -typedef struct scatterlist *sg_alloc_fn(unsigned int, gfp_t); +struct ehci_fstn; -struct font_data { - unsigned int extra[4]; - const unsigned char data[0]; +union ehci_shadow { + struct ehci_qh *qh; + struct ehci_itd *itd; + struct ehci_sitd *sitd; + struct ehci_fstn *fstn; + __le32 *hw_next; + void *ptr; }; -enum backlight_notification { - BACKLIGHT_REGISTERED = 0, - BACKLIGHT_UNREGISTERED = 1, +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 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 ehci_qh_hw; -struct cpc_register_resource { - acpi_object_type type; - u64 *sys_mem_vaddr; - union { - struct cpc_reg reg; - u64 int_value; - } cpc_entry; -}; +struct ehci_qtd; -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; +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; }; -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 ehci_qh_hw { + __le32 hw_next; + __le32 hw_info1; + __le32 hw_info2; + __le32 hw_current; + __le32 hw_qtd_next; + __le32 hw_alt_next; + __le32 hw_token; + __le32 hw_buf[5]; + __le32 hw_buf_hi[5]; + long: 64; + long: 64; + long: 64; }; -struct cppc_perf_ctrls { - u32 max_perf; - u32 min_perf; - u32 desired_perf; - u32 energy_perf; -}; +struct ehci_iso_stream; -struct cppc_perf_fb_ctrs { - u64 reference; - u64 delivered; - u64 reference_perf; - u64 wraparound_time; +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 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 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 acpi_pcct_shared_memory { - u32 signature; - u16 command; - u16 status; +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 pericom8250 { - void *virt; - unsigned int nr; - int line[0]; +struct ehci_fstn { + __le32 hw_next; + __le32 hw_prev; + dma_addr_t fstn_dma; + union ehci_shadow fstn_next; + long: 64; }; -struct drmres_node { - struct list_head entry; - drmres_release_t release; - const char *name; - size_t size; +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 drmres { - struct drmres_node node; - u8 data[0]; -}; +struct swoc_info { + __u8 rev; + __u8 reserved[8]; + __u16 LinuxSKU; + __u16 LinuxVer; + __u8 reserved2[47]; +} __attribute__((packed)); -struct gsc_def { - const char *name; - unsigned long bar; - size_t bar_size; - bool use_polling; - bool slow_firmware; - size_t lmem_size; +struct alps_protocol_info { + u16 version; + u8 byte0; + u8 mask0; + unsigned int flags; }; -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 alps_model_info { + u8 signature[3]; + struct alps_protocol_info protocol_info; }; -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 alps_nibble_commands { + int command; + unsigned char data; }; -struct opregion_swsci { - u32 scic; - u32 parm; - u32 dslp; - u8 rsvd[244]; +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, }; -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]; +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 internal_container { - struct klist_node node; - struct attribute_container *cont; - struct device classdev; +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 firmware_cache { - spinlock_t lock; - struct list_head head; - int state; - spinlock_t name_lock; - struct list_head fw_names; - struct delayed_work work; - struct notifier_block pm_notify; +struct 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; }; -enum fw_status { - FW_STATUS_UNKNOWN = 0, - FW_STATUS_LOADING = 1, - FW_STATUS_DONE = 2, - FW_STATUS_ABORTED = 3, +struct alps_bitmap_point { + int start_bit; + int num_bits; }; -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 dmi_device_attribute { + struct device_attribute dev_attr; + int field; }; -struct fw_state { - struct completion completion; - enum fw_status status; +struct mafield { + const char *prefix; + int field; }; -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; -}; +typedef void (*btf_trace_azx_suspend)(void *, struct azx *); -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; +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 { + 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, }; -struct fw_cache_entry { - struct list_head list; - const char *name; +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_GFHDMI = 8, + AZX_DRIVER_VIA = 9, + AZX_DRIVER_SIS = 10, + AZX_DRIVER_ULI = 11, + AZX_DRIVER_NVIDIA = 12, + AZX_DRIVER_TERA = 13, + AZX_DRIVER_CTX = 14, + AZX_DRIVER_CTHDA = 15, + AZX_DRIVER_CMEDIA = 16, + AZX_DRIVER_ZHAOXIN = 17, + AZX_DRIVER_LOONGSON = 18, + AZX_DRIVER_GENERIC = 19, + AZX_NUM_DRIVERS = 20, }; -struct fw_name_devm { - unsigned long magic; - const char *name; +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, }; -typedef unsigned int (*ata_xlat_func_t)(struct ata_queued_cmd *); +enum { + AZX_SNOOP_TYPE_NONE = 0, + AZX_SNOOP_TYPE_SCH = 1, + AZX_SNOOP_TYPE_ATI = 2, + AZX_SNOOP_TYPE_NVIDIA = 3, +}; -struct ata_scsi_args { - struct ata_device *dev; - u16 *id; - struct scsi_cmnd *cmd; +struct trace_event_raw_hda_pm { + struct trace_entry ent; + int dev_index; + char __data[0]; }; -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 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 fw_info { - u32 magic; - char version[32]; - __le32 fw_start; - __le32 fw_len; - u8 chksum; -} __attribute__((packed)); +struct trace_event_data_offsets_hda_pm {}; 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, + TCA_EMATCH_TREE_UNSPEC = 0, + TCA_EMATCH_TREE_HDR = 1, + TCA_EMATCH_TREE_LIST = 2, + __TCA_EMATCH_TREE_MAX = 3, }; -struct pcmcia_dynids { - struct mutex lock; - struct list_head list; -}; +struct tcf_ematch; -struct pcmcia_device_id; +struct tcf_pkt_info; -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 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; - const struct pcmcia_device_id *id_table; - struct device_driver drv; - struct pcmcia_dynids dynids; + struct list_head link; }; -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 tcf_ematch { + struct tcf_ematch_ops *ops; + unsigned long data; + unsigned int datalen; + u16 matchid; + u16 flags; + struct net *net; }; -struct pcmcia_dynid { - struct list_head node; - struct pcmcia_device_id id; +struct tcf_pkt_info { + unsigned char *ptr; + int nexthdr; }; -struct usb_dev_cap_header { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDevCapabilityType; +struct tcf_ematch_tree_hdr { + __u16 nmatches; + __u16 progid; }; -struct usb_descriptor_header { - __u8 bLength; - __u8 bDescriptorType; +struct tcf_ematch_hdr { + __u16 matchid; + __u16 kind; + __u16 flags; + __u16 pad; }; -struct dm_ioctl; - -typedef int (*ioctl_fn___2)(struct file *, struct dm_ioctl *, size_t); - -struct dm_ioctl { - __u32 version[3]; - __u32 data_size; - __u32 data_start; - __u32 target_count; - __s32 open_count; - __u32 flags; - __u32 event_nr; - __u32 padding; - __u64 dev; - char name[128]; - char uuid[129]; - char data[7]; +struct tcf_ematch_tree { + struct tcf_ematch_tree_hdr hdr; + struct tcf_ematch *matches; }; 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, + 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 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 rss_req_info { + struct ethnl_req_info base; + u32 rss_context; }; -struct dm_target_spec { - __u64 sector_start; - __u64 length; - __s32 status; - __u32 next; - char target_type[16]; +struct rss_reply_data { + struct ethnl_reply_data base; + u32 indir_size; + u32 hkey_size; + u32 hfunc; + u32 *indir_table; + u8 *hkey; }; -struct dm_target_msg { - __u64 sector; - char message[0]; +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, }; -struct dm_target_deps { - __u32 count; - __u32 padding; - __u64 dev[0]; +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, }; -struct dm_target_versions; +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 vers_iter { - size_t param_size; - struct dm_target_versions *vers; - struct dm_target_versions *old_vers; - char *end; - uint32_t flags; +struct pse_control_status { + enum ethtool_podl_pse_admin_state podl_admin_state; + enum ethtool_podl_pse_pw_d_status podl_pw_status; }; -struct dm_target_versions { - __u32 next; - __u32 version[3]; - char name[0]; +struct pse_reply_data { + struct ethnl_reply_data base; + struct pse_control_status status; }; -struct dm_file { - volatile unsigned int global_event_nr; +struct pse_control_config { + enum ethtool_podl_pse_admin_state admin_cotrol; }; -struct dm_name_list { - __u64 dev; - __u32 next; - char name[0]; +enum nexthop_event_type { + NEXTHOP_EVENT_DEL = 0, + NEXTHOP_EVENT_REPLACE = 1, + NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, + NEXTHOP_EVENT_BUCKET_REPLACE = 3, }; -struct snd_seq_dummy_port { - int client; - int port; - int duplex; - int connect; +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, }; -struct compat_if_settings { - unsigned int type; - unsigned int size; - compat_uptr_t ifs_ifsu; +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, }; -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; +enum { + NEXTHOP_GRP_TYPE_MPATH = 0, + NEXTHOP_GRP_TYPE_RES = 1, + __NEXTHOP_GRP_TYPE_MAX = 2, }; -struct scm_ts_pktinfo { - __u32 if_index; - __u32 pkt_length; - __u32 reserved[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, }; -struct used_address { - struct __kernel_sockaddr_storage name; - unsigned int name_len; +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, }; -typedef void (*btf_trace_netlink_extack)(void *, const char *); +struct nh_notifier_single_info; -struct listeners; +struct nh_notifier_grp_info; -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); - int registered; +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 listeners { - struct callback_head rcu; - unsigned long masks[0]; +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; }; -enum netlink_skb_flags { - NETLINK_SKB_DST = 8, +struct nh_notifier_grp_entry_info { + u8 weight; + u32 id; + struct nh_notifier_single_info nh; }; -enum { - NETLINK_UNCONNECTED = 0, - NETLINK_CONNECTED = 1, +struct nh_notifier_grp_info { + u16 num_nh; + bool is_fdb; + struct nh_notifier_grp_entry_info nh_entries[0]; }; -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 nh_notifier_res_table_info { + u16 num_nh_buckets; + struct nh_notifier_single_info nhs[0]; }; -struct trace_event_raw_netlink_extack { - struct trace_entry ent; - u32 __data_loc_msg; - char __data[0]; +struct nh_notifier_res_bucket_info { + u16 bucket_index; + unsigned int idle_timer_ms; + bool force; + struct nh_notifier_single_info old_nh; + struct nh_notifier_single_info new_nh; }; -struct netlink_tap { +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; - struct module *module; - struct list_head list; + 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 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 nhmsg { + unsigned char nh_family; + unsigned char nh_scope; + unsigned char nh_protocol; + unsigned char resvd; + unsigned int nh_flags; }; -struct sockaddr_nl { - __kernel_sa_family_t nl_family; - unsigned short nl_pad; - __u32 nl_pid; - __u32 nl_groups; +struct nexthop_grp { + __u32 id; + __u8 weight; + __u8 resvd1; + __u16 resvd2; }; -struct trace_event_data_offsets_netlink_extack { - u32 msg; +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 netlink_tap_net { - struct list_head netlink_tap_all; - struct mutex netlink_tap_lock; +struct rtm_dump_nh_ctx { + u32 idx; }; -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 rtm_dump_res_bucket_ctx { + struct rtm_dump_nh_ctx nh; + u16 bucket_index; }; -struct netlink_set_err_data { - struct sock *exclude_sk; - u32 portid; - u32 group; - int code; +struct rtm_dump_nexthop_bucket_data { + struct rtm_dump_res_bucket_ctx *ctx; + struct nh_dump_filter filter; }; -struct netlink_compare_arg { - possible_net_t pnet; - u32 portid; +struct ip_beet_phdr { + __u8 nexthdr; + __u8 hdrlen; + __u8 padlen; + __u8 reserved; }; -struct nl_pktinfo { - __u32 group; +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, }; -struct nl_seq_iter { - struct seq_net_private p; - struct rhashtable_iter hti; - int link; +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, }; -struct bpf_iter__netlink { - union { - struct bpf_iter_meta *meta; - }; - union { - struct netlink_sock *sk; - }; +enum { + DAD_PROCESS = 0, + DAD_BEGIN = 1, + DAD_ABORT = 2, }; -struct nlmsgerr { - int error; - struct nlmsghdr msg; +enum cleanup_prefix_rt_t { + CLEANUP_PREFIX_RT_NOP = 0, + CLEANUP_PREFIX_RT_DEL = 1, + CLEANUP_PREFIX_RT_EXPIRE = 2, }; -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; +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, }; -struct ip_fraglist_iter { - struct sk_buff *frag; - struct iphdr *iph; - int offset; - unsigned int hlen; +enum { + DEVCONF_FORWARDING = 0, + DEVCONF_HOPLIMIT = 1, + DEVCONF_MTU6 = 2, + DEVCONF_ACCEPT_RA = 3, + DEVCONF_ACCEPT_REDIRECTS = 4, + DEVCONF_AUTOCONF = 5, + DEVCONF_DAD_TRANSMITS = 6, + DEVCONF_RTR_SOLICITS = 7, + DEVCONF_RTR_SOLICIT_INTERVAL = 8, + DEVCONF_RTR_SOLICIT_DELAY = 9, + DEVCONF_USE_TEMPADDR = 10, + DEVCONF_TEMP_VALID_LFT = 11, + DEVCONF_TEMP_PREFERED_LFT = 12, + DEVCONF_REGEN_MAX_RETRY = 13, + DEVCONF_MAX_DESYNC_FACTOR = 14, + DEVCONF_MAX_ADDRESSES = 15, + DEVCONF_FORCE_MLD_VERSION = 16, + DEVCONF_ACCEPT_RA_DEFRTR = 17, + DEVCONF_ACCEPT_RA_PINFO = 18, + DEVCONF_ACCEPT_RA_RTR_PREF = 19, + DEVCONF_RTR_PROBE_INTERVAL = 20, + DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN = 21, + DEVCONF_PROXY_NDP = 22, + DEVCONF_OPTIMISTIC_DAD = 23, + DEVCONF_ACCEPT_SOURCE_ROUTE = 24, + DEVCONF_MC_FORWARDING = 25, + DEVCONF_DISABLE_IPV6 = 26, + DEVCONF_ACCEPT_DAD = 27, + DEVCONF_FORCE_TLLAO = 28, + DEVCONF_NDISC_NOTIFY = 29, + DEVCONF_MLDV1_UNSOLICITED_REPORT_INTERVAL = 30, + DEVCONF_MLDV2_UNSOLICITED_REPORT_INTERVAL = 31, + DEVCONF_SUPPRESS_FRAG_NDISC = 32, + DEVCONF_ACCEPT_RA_FROM_LOCAL = 33, + DEVCONF_USE_OPTIMISTIC = 34, + DEVCONF_ACCEPT_RA_MTU = 35, + DEVCONF_STABLE_SECRET = 36, + DEVCONF_USE_OIF_ADDRS_ONLY = 37, + DEVCONF_ACCEPT_RA_MIN_HOP_LIMIT = 38, + DEVCONF_IGNORE_ROUTES_WITH_LINKDOWN = 39, + DEVCONF_DROP_UNICAST_IN_L2_MULTICAST = 40, + DEVCONF_DROP_UNSOLICITED_NA = 41, + DEVCONF_KEEP_ADDR_ON_DOWN = 42, + DEVCONF_RTR_SOLICIT_MAX_INTERVAL = 43, + DEVCONF_SEG6_ENABLED = 44, + DEVCONF_SEG6_REQUIRE_HMAC = 45, + DEVCONF_ENHANCED_DAD = 46, + DEVCONF_ADDR_GEN_MODE = 47, + DEVCONF_DISABLE_POLICY = 48, + DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN = 49, + DEVCONF_NDISC_TCLASS = 50, + DEVCONF_RPL_SEG_ENABLED = 51, + DEVCONF_RA_DEFRTR_METRIC = 52, + DEVCONF_IOAM6_ENABLED = 53, + DEVCONF_IOAM6_ID = 54, + DEVCONF_IOAM6_ID_WIDE = 55, + DEVCONF_NDISC_EVICT_NOCARRIER = 56, + DEVCONF_ACCEPT_UNTRACKED_NA = 57, + DEVCONF_ACCEPT_RA_MIN_LFT = 58, + DEVCONF_MAX = 59, }; -struct bpf_iter__unix { - union { - struct bpf_iter_meta *meta; - }; - union { - struct unix_sock *unix_sk; - }; - uid_t uid; +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, }; -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; +enum { + PREFIX_UNSPEC = 0, + PREFIX_ADDRESS = 1, + PREFIX_CACHEINFO = 2, + __PREFIX_MAX = 3, }; -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 addr_type_t { + UNICAST_ADDR = 0, + MULTICAST_ADDR = 1, + ANYCAST_ADDR = 2, }; -struct seg6_bpf_srh_state { - struct ipv6_sr_hdr *srh; - u16 hdrlen; - bool valid; +union fwnet_hwaddr { + u8 u[16]; + struct { + __be64 uniq_id; + u8 max_rec; + u8 sspd; + u8 fifo[6]; + } uc; }; -struct seg6_local_lwt; - -struct seg6_local_lwtunnel_ops { - int (*build_state)(struct seg6_local_lwt *, const void *, struct netlink_ext_ack *); - void (*destroy_state)(struct seg6_local_lwt *); +struct prefix_cacheinfo { + __u32 preferred_time; + __u32 valid_time; }; -struct seg6_action_desc { - int action; - unsigned long attrs; - unsigned long optattrs; - int (*input)(struct sk_buff *, struct seg6_local_lwt *); - int static_headroom; - struct seg6_local_lwtunnel_ops slwt_ops; +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 seg6_flavors_info { - __u32 flv_ops; - __u8 lcblock_bits; - __u8 lcnode_func_bits; +struct in6_ifreq { + struct in6_addr ifr6_addr; + __u32 ifr6_prefixlen; + int ifr6_ifindex; }; -struct pcpu_seg6_local_counters; - -struct seg6_local_lwt { - int action; - struct ipv6_sr_hdr *srh; - int table; - struct in_addr nh4; - struct in6_addr nh6; - int iif; - int oif; - struct bpf_lwt_prog bpf; - struct seg6_flavors_info flv_info; - struct pcpu_seg6_local_counters __attribute__((btf_type_tag("percpu"))) *pcpu_counters; - int headroom; - struct seg6_action_desc *desc; - unsigned long parsed_optattrs; +struct if6_iter_state { + struct seq_net_private p; + int bucket; + int offset; }; -struct pcpu_seg6_local_counters { - u64_stats_t packets; - u64_stats_t bytes; - u64_stats_t errors; - struct u64_stats_sync syncp; +struct inet6_fill_args { + u32 portid; + u32 seq; + int event; + unsigned int flags; + int netnsid; + int ifindex; + enum addr_type_t type; }; -struct seg6_action_param { - int (*parse)(struct nlattr **, struct seg6_local_lwt *, struct netlink_ext_ack *); - int (*put)(struct sk_buff *, struct seg6_local_lwt *); - int (*cmp)(struct seg6_local_lwt *, struct seg6_local_lwt *); - void (*destroy)(struct seg6_local_lwt *); +struct ipv6_saddr_score { + int rule; + int addr_type; + struct inet6_ifaddr *ifa; + unsigned long scorebits[1]; + int scopedist; + int matchlen; }; -enum { - SEG6_LOCAL_UNSPEC = 0, - SEG6_LOCAL_ACTION = 1, - SEG6_LOCAL_SRH = 2, - SEG6_LOCAL_TABLE = 3, - SEG6_LOCAL_NH4 = 4, - SEG6_LOCAL_NH6 = 5, - SEG6_LOCAL_IIF = 6, - SEG6_LOCAL_OIF = 7, - SEG6_LOCAL_BPF = 8, - SEG6_LOCAL_VRFTABLE = 9, - SEG6_LOCAL_COUNTERS = 10, - SEG6_LOCAL_FLAVORS = 11, - __SEG6_LOCAL_MAX = 12, +struct ipv6_saddr_dst { + const struct in6_addr *addr; + int ifindex; + int scope; + int label; + unsigned int prefs; }; -enum { - SEG6_LOCAL_FLV_OP_UNSPEC = 0, - SEG6_LOCAL_FLV_OP_PSP = 1, - SEG6_LOCAL_FLV_OP_USP = 2, - SEG6_LOCAL_FLV_OP_USD = 3, - SEG6_LOCAL_FLV_OP_NEXT_CSID = 4, - __SEG6_LOCAL_FLV_OP_MAX = 5, +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; }; -enum seg6_local_flv_action { - SEG6_LOCAL_FLV_ACT_UNSPEC = 0, - SEG6_LOCAL_FLV_ACT_END = 1, - SEG6_LOCAL_FLV_ACT_PSP = 2, - SEG6_LOCAL_FLV_ACT_USP = 3, - SEG6_LOCAL_FLV_ACT_USD = 4, - __SEG6_LOCAL_FLV_ACT_MAX = 5, +struct in6_validator_info { + struct in6_addr i6vi_addr; + struct inet6_dev *i6vi_dev; + struct netlink_ext_ack *extack; }; -enum seg6_local_pktinfo { - SEG6_LOCAL_PKTINFO_NOHDR = 0, - SEG6_LOCAL_PKTINFO_SL_ZERO = 1, - SEG6_LOCAL_PKTINFO_SL_ONE = 2, - SEG6_LOCAL_PKTINFO_SL_MORE = 3, - __SEG6_LOCAL_PKTINFO_MAX = 4, +struct ifla_cacheinfo { + __u32 max_reasm_len; + __u32 tstamp; + __u32 reachable_time; + __u32 retrans_time; }; -enum { - SEG6_LOCAL_BPF_PROG_UNSPEC = 0, - SEG6_LOCAL_BPF_PROG = 1, - SEG6_LOCAL_BPF_PROG_NAME = 2, - __SEG6_LOCAL_BPF_PROG_MAX = 3, +struct nft_ct_frag6_pernet { + struct ctl_table_header *nf_frag_frags_hdr; + struct fqdir *fqdir; }; -enum seg6_end_dt_mode { - DT_INVALID_MODE = -22, - DT_LEGACY_MODE = 0, - DT_VRF_MODE = 1, +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 { - SEG6_LOCAL_CNT_UNSPEC = 0, - SEG6_LOCAL_CNT_PAD = 1, - SEG6_LOCAL_CNT_PACKETS = 2, - SEG6_LOCAL_CNT_BYTES = 3, - SEG6_LOCAL_CNT_ERRORS = 4, - __SEG6_LOCAL_CNT_MAX = 5, + 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, }; -enum { - SEG6_LOCAL_FLV_UNSPEC = 0, - SEG6_LOCAL_FLV_OPERATION = 1, - SEG6_LOCAL_FLV_LCBLOCK_BITS = 2, - SEG6_LOCAL_FLV_LCNODE_FN_BITS = 3, - __SEG6_LOCAL_FLV_MAX = 4, +struct netlbl_domhsh_walk_arg___2 { + struct netlink_callback *nl_cb; + struct sk_buff *skb; + u32 seq; }; -struct seg6_local_counters { - __u64 packets; - __u64 bytes; - __u64 errors; +struct pcibios_fwaddrmap { + struct list_head list; + struct pci_dev *dev; + resource_size_t fw_addr[11]; }; -struct seg6_end_dt_info { - enum seg6_end_dt_mode mode; - struct net *net; - int vrf_ifindex; - int vrf_table; - u16 family; +struct pci_check_idx_range { + int start; + int end; }; -enum rfkill_operation { - RFKILL_OP_ADD = 0, - RFKILL_OP_DEL = 1, - RFKILL_OP_CHANGE = 2, - RFKILL_OP_CHANGE_ALL = 3, +struct amd_hostbridge { + u32 bus; + u32 slot; + u32 device; }; -enum rfkill_user_states { - RFKILL_USER_STATE_SOFT_BLOCKED = 0, - RFKILL_USER_STATE_UNBLOCKED = 1, - RFKILL_USER_STATE_HARD_BLOCKED = 2, +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 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 trace_event_raw_contention_end { + struct trace_entry ent; + void *lock_addr; + int ret; + char __data[0]; }; -struct rfkill_data { +struct mutex_waiter { struct list_head list; - struct list_head events; - struct mutex mtx; - wait_queue_head_t read_wait; - bool input_handler; - u8 max_size; + struct task_struct *task; + struct ww_acquire_ctx *ww_ctx; }; -struct rfkill_event_ext { - __u32 idx; - __u8 type; - __u8 op; - __u8 soft; - __u8 hard; - __u8 hard_block_reasons; -} __attribute__((packed)); +struct trace_event_data_offsets_contention_begin {}; -struct rfkill_int_event { - struct list_head list; - struct rfkill_event_ext ev; +struct trace_event_data_offsets_contention_end {}; + +struct irqchip_fwid { + struct fwnode_handle fwnode; + unsigned int type; + char *name; + phys_addr_t *pa; }; -struct branch_entry { - union { - struct { - u64 ip: 58; - u64 ip_sign_ext: 5; - u64 mispredict: 1; - } split; - u64 full; - } from; - union { - struct { - u64 ip: 58; - u64 ip_sign_ext: 3; - u64 reserved: 1; - u64 spec: 1; - u64 valid: 1; - } split; - u64 full; - } to; +struct __kernel_old_itimerval { + struct __kernel_old_timeval it_interval; + struct __kernel_old_timeval it_value; }; -struct ptrace_rseq_configuration { - __u64 rseq_abi_pointer; - __u32 rseq_abi_size; - __u32 signature; - __u32 flags; - __u32 pad; +struct old_itimerval32 { + struct old_timeval32 it_interval; + struct old_timeval32 it_value; }; -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; - }; +enum cgroup_filetype { + CGROUP_FILE_PROCS = 0, + CGROUP_FILE_TASKS = 1, }; -struct ptrace_peeksiginfo_args { - __u64 off; - __u32 flags; - __s32 nr; +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 = 8, + Opt_nofavordynmods = 9, }; -typedef int (*task_call_f)(struct task_struct *, void *); +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 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: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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; }; -typedef struct sigevent sigevent_t; +struct cgroup_mgctx { + struct list_head preloaded_src_csets; + struct list_head preloaded_dst_csets; + struct cgroup_taskset tset; + u16 ss_mask; +}; + +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; +}; enum ring_buffer_type { RINGBUF_TYPE_DATA_TYPE_LEN_MAX = 28, @@ -128219,210 +132132,569 @@ struct rb_event_info { int add_timestamp; }; -typedef void (*bpf_insn_print_t)(void *, const char *, ...); +typedef void (*btf_trace_kmem_cache_alloc)(void *, unsigned long, const void *, struct kmem_cache *, gfp_t, int); -typedef const char * (*bpf_insn_revmap_call_t)(void *, const struct bpf_insn *); +typedef void (*btf_trace_kmalloc)(void *, unsigned long, const void *, size_t, size_t, gfp_t, int); -typedef const char * (*bpf_insn_print_imm_t)(void *, const struct bpf_insn *, __u64); +typedef void (*btf_trace_kfree)(void *, unsigned long, const void *); -struct bpf_insn_cbs { - bpf_insn_print_t cb_print; - bpf_insn_revmap_call_t cb_call; - bpf_insn_print_imm_t cb_imm; - void *private_data; +typedef 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[4]; + unsigned int size; }; -struct bpf_dtab_netdev; +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 bpf_dtab { - struct bpf_map map; - struct bpf_dtab_netdev __attribute__((btf_type_tag("rcu"))) **netdev_map; - struct list_head list; - struct hlist_head *dev_index_head; - spinlock_t index_lock; - unsigned int items; - u32 n_buckets; +struct 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 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 {}; + +struct vmemmap_remap_walk { + void (*remap_pte)(pte_t *, unsigned long, struct vmemmap_remap_walk *); + unsigned long nr_walked; + struct page *reuse_page; + unsigned long reuse_addr; + struct list_head *vmemmap_pages; + unsigned long flags; +}; + +struct 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 proc_fs_opts { + int flag; + const char *str; +}; + +enum { + Opt_uid___5 = 0, + Opt_gid___5 = 1, + Opt_mode___4 = 2, + Opt_ptmxmode = 3, + Opt_newinstance = 4, + Opt_max = 5, + Opt_err___7 = 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 move_extent { + __u32 reserved; + __u32 donor_fd; + __u64 orig_start; + __u64 donor_start; + __u64 len; + __u64 moved_len; +}; + +struct ext4_new_group_input { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 unused; +}; + +struct ext4_new_group_data { + __u32 group; + __u64 block_bitmap; + __u64 inode_bitmap; + __u64 inode_table; + __u32 blocks_count; + __u16 reserved_blocks; + __u16 mdata_blocks; + __u32 free_clusters_count; +}; + +struct fsmap_head { + __u32 fmh_iflags; + __u32 fmh_oflags; + __u32 fmh_count; + __u32 fmh_entries; + __u64 fmh_reserved[6]; + struct fsmap fmh_keys[2]; + struct fsmap fmh_recs[0]; +}; + +struct getfsmap_info { + struct super_block *gi_sb; + struct fsmap_head __attribute__((btf_type_tag("user"))) *gi_data; + unsigned int gi_idx; + __u32 gi_last_flags; +}; + +struct fsuuid { + __u32 fsu_len; + __u32 fsu_flags; + __u8 fsu_uuid[0]; +}; + +typedef void ext4_update_sb_callback(struct ext4_super_block *, const void *); + +struct 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)); + +struct fat_fid { + u32 i_gen; + u32 i_pos_low; + u16 i_pos_hi; + u16 parent_i_pos_hi; + u32 parent_i_pos_low; + u32 parent_i_gen; +}; + +struct nfs_page_iter_page { + const struct nfs_page *req; + size_t count; +}; + +enum { + NFS_OWNER_RECLAIM_REBOOT = 0, + NFS_OWNER_RECLAIM_NOGRACE = 1, +}; + +enum { + Opt_uid___6 = 0, + Opt_gid___6 = 1, + Opt_mode___5 = 2, + Opt_err___8 = 3, +}; + +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 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 bpf_devmap_val { - __u32 ifindex; +struct shm_file_data { + int id; + struct ipc_namespace *ns; + struct file *file; + const struct vm_operations_struct *vm_ops; +}; + +typedef int __kernel_ipc_pid_t; + +struct shmid_ds { + struct ipc_perm shm_perm; + int shm_segsz; + __kernel_old_time_t shm_atime; + __kernel_old_time_t shm_dtime; + __kernel_old_time_t shm_ctime; + __kernel_ipc_pid_t shm_cpid; + __kernel_ipc_pid_t shm_lpid; + unsigned short shm_nattch; + unsigned short shm_unused; + void *shm_unused2; + void *shm_unused3; +}; + +struct shmem_inode_info { + spinlock_t lock; + unsigned int seals; + unsigned long flags; + unsigned long alloced; + unsigned long swapped; union { - int fd; - __u32 id; - } bpf_prog; + struct offset_ctx dir_offsets; + struct { + struct list_head shrinklist; + struct list_head swaplist; + }; + }; + struct timespec64 i_crtime; + struct shared_policy policy; + struct simple_xattrs xattrs; + unsigned long fallocend; + unsigned int fsflags; + atomic_t stop_eviction; + struct inode vfs_inode; }; -struct 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 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; }; -typedef void compound_page_dtor(struct page *); +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; +}; -typedef int fpi_t; +struct shminfo { + int shmmax; + int shmmin; + int shmmni; + int shmseg; + int shmall; +}; -enum legacy_fs_param { - LEGACY_FS_UNSET_PARAMS = 0, - LEGACY_FS_MONOLITHIC_PARAMS = 1, - LEGACY_FS_INDIVIDUAL_PARAMS = 2, +typedef u16 compat_ipc_pid_t; + +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 legacy_fs_context { - char *legacy_data; - size_t data_size; - enum legacy_fs_param param_type; +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; }; -enum { - DQF_INFO_DIRTY_B = 17, +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 v2_disk_dqheader { - __le32 dqh_magic; - __le32 dqh_version; +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 v2_disk_dqinfo { - __le32 dqi_bgrace; - __le32 dqi_igrace; - __le32 dqi_flags; - __le32 dqi_blocks; - __le32 dqi_free_blk; - __le32 dqi_free_entry; +struct scomp_scratch { + spinlock_t lock; + void *src; + void *dst; }; -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 crypto_scomp; -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 scomp_alg { + void * (*alloc_ctx)(struct crypto_scomp *); + void (*free_ctx)(struct crypto_scomp *, void *); + int (*compress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); + int (*decompress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); + union { + struct { + struct crypto_alg base; + }; + struct comp_alg_common calg; + }; }; -struct 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 crypto_scomp { + struct crypto_tfm base; }; -struct getdents_callback___2 { - struct dir_context ctx; +struct biovec_slab { + int nr_vecs; char *name; - u64 ino; - int found; - int sequence; + struct kmem_cache *slab; }; -typedef u32 unicode_t; +struct bio_slab { + struct kmem_cache *slab; + unsigned int slab_ref; + unsigned int slab_size; + char name[8]; +}; -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, - P9L_MODE_MASK = 8191, - P9L_DIRECT = 8192, - P9L_NOWRITECACHE = 16384, - P9L_LOOSE = 32768, +enum dd_prio { + DD_RT_PRIO = 0, + DD_BE_PRIO = 1, + DD_IDLE_PRIO = 2, + DD_PRIO_MAX = 2, }; -enum p9_qid_t { - P9_QTDIR = 128, - P9_QTAPPEND = 64, - P9_QTEXCL = 32, - P9_QTMOUNT = 16, - P9_QTAUTH = 8, - P9_QTTMP = 4, - P9_QTSYMLINK = 2, - P9_QTLINK = 1, - P9_QTFILE = 0, +enum dd_data_dir { + DD_READ = 0, + DD_WRITE = 1, }; -struct dotl_openflag_map { - int open_flag; - int dotl_flag; +struct io_stats_per_prio { + uint32_t inserted; + uint32_t merged; + uint32_t dispatched; + atomic_t completed; }; -struct dotl_iattr_map { - int iattr_valid; - int p9_iattr_valid; +struct dd_per_prio { + struct list_head dispatch; + struct rb_root sort_list[2]; + struct list_head fifo_list[2]; + sector_t latest_pos[2]; + struct io_stats_per_prio stats; }; -struct 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 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; }; -struct blk_major_name { - struct blk_major_name *next; - int major; - char name[16]; - void (*probe)(dev_t); +struct io_rw { + struct kiocb kiocb; + u64 addr; + u32 len; + rwf_t flags; }; -struct io_rsrc_update { - struct file *file; - u64 arg; - u32 nr_args; - u32 offset; +struct iov_iter_state { + size_t iov_offset; + size_t count; + unsigned long nr_segs; }; -struct io_uring_rsrc_update2 { - __u32 offset; - __u32 resv; - __u64 data; - __u64 tags; - __u32 nr; - __u32 resv2; +struct io_rw_state { + struct iov_iter iter; + struct iov_iter_state iter_state; + struct iovec fast_iov[8]; }; -struct io_uring_rsrc_register { - __u32 nr; - __u32 flags; - __u64 resv2; - __u64 data; - __u64 tags; +struct io_async_rw { + struct io_rw_state s; + const struct iovec *free_iovec; + size_t bytes_done; + struct wait_page_queue wpq; }; struct hpx_type0 { @@ -128492,4887 +132764,4934 @@ struct hpx_type3 { u32 reg_mask_or; }; -struct lpi_constraints { - acpi_handle handle; - int min_dstate; +struct apd_private_data; + +struct apd_device_desc { + unsigned int fixed_clk_rate; + struct property_entry *properties; + int (*setup)(struct apd_private_data *); }; -struct amd_lps0_hid_device_data { - const bool check_off_by_one; +struct apd_private_data { + struct clk *clk; + struct acpi_device *adev; + const struct apd_device_desc *dev_desc; }; -struct acpi_s2idle_dev_ops { - struct list_head list_node; - void (*prepare)(); - void (*check)(); - void (*restore)(); +struct acpi_thermal_trip { + unsigned long temp_dk; + struct acpi_handle_list devices; }; -struct lpi_device_constraint_amd { - char *name; - int enabled; - int function_states; - int min_dstate; +struct acpi_thermal_passive { + struct acpi_thermal_trip trip; + unsigned long tc1; + unsigned long tc2; + unsigned long tsp; }; -struct lpi_device_info { - char *name; - int enabled; - union acpi_object *package; +struct acpi_thermal_active { + struct acpi_thermal_trip trip; }; -struct lpi_device_constraint { - int uid; - int min_dstate; - int function_states; +struct acpi_thermal_trips { + struct acpi_thermal_passive passive; + struct acpi_thermal_active active[10]; }; -struct pnp_fixup { - char id[7]; - void (*quirk_function)(struct pnp_dev *); +struct acpi_thermal { + struct acpi_device *device; + acpi_bus_id name; + unsigned long temp_dk; + unsigned long last_temp_dk; + unsigned long polling_frequency; + volatile u8 zombie; + struct acpi_thermal_trips trips; + struct thermal_trip *trip_table; + 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 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 adjust_trip_data { + struct acpi_thermal *tz; + u32 event; }; -struct iova_magazine; +struct acpi_thermal_bind_data { + struct thermal_zone_device *thermal; + struct thermal_cooling_device *cdev; + bool bind; +}; -struct iova_cpu_rcache { - spinlock_t lock; - struct iova_magazine *loaded; - struct iova_magazine *prev; +struct dmaengine_desc_callback { + dma_async_tx_callback callback; + dma_async_tx_callback_result callback_result; + void *callback_param; }; -struct iova_magazine { - unsigned long size; - unsigned long pfns[127]; +struct pericom8250 { + void *virt; + unsigned int nr; + int line[0]; }; -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 aper_size_info_32 { + int size; + int num_entries; + int page_order; + u32 size_value; }; -struct drm_conn_prop_enum_list { - int type; +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; +}; + +struct sched_cache { + struct list_head *priolist; +}; + +struct guc_log_section { + u32 max; + u32 flag; + u32 default_val; const char *name; - struct ida ida; }; -struct drm_mode_connector_set_property { - __u64 value; - __u32 prop_id; - __u32 connector_id; +enum dsb_id { + INVALID_DSB = -1, + DSB1 = 0, + DSB2 = 1, + DSB3 = 2, + MAX_DSB_PER_PIPE = 3, }; -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 intel_dsb { + enum dsb_id id; + u32 *cmd_buf; + struct i915_vma *vma; + struct intel_crtc *crtc; + unsigned int size; + unsigned int free_pos; + unsigned int ins_start_offset; + int dewake_scanline; }; -struct drm_fb_helper_funcs; +struct intel_quirk { + int device; + int subsystem_vendor; + int subsystem_device; + void (*hook)(struct drm_i915_private *); +}; -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; +struct intel_dmi_quirk { + void (*hook)(struct drm_i915_private *); + const struct dmi_system_id (*dmi_id_list)[0]; }; -struct drm_fb_helper_surface_size; +struct intel_crt { + struct intel_encoder base; + struct intel_connector *connector; + bool force_hotplug_required; + i915_reg_t adpa_reg; +}; -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_dsc_pps_infoframe { + struct dp_sdp_header pps_header; + struct drm_dsc_picture_parameter_set pps_payload; }; -struct drm_fb_helper_surface_size { - u32 fb_width; - u32 fb_height; - u32 surface_width; - u32 surface_height; - u32 surface_bpp; - u32 surface_depth; +struct probe; + +struct kobj_map { + struct probe *probes[255]; + struct mutex *lock; }; -enum { - INTEL_CONTEXT_SCHEDULE_IN = 0, - INTEL_CONTEXT_SCHEDULE_OUT = 1, - INTEL_CONTEXT_SCHEDULE_PREEMPTED = 2, +typedef struct kobject *kobj_probe_t(dev_t, int *, void *); + +struct probe { + struct probe *next; + dev_t dev; + unsigned long range; + struct module *owner; + kobj_probe_t *get; + int (*lock)(dev_t, void *); + void *data; }; -struct ve_node { - struct rb_node rb; - int prio; +struct regmap_debugfs_node { + struct regmap *map; + struct list_head link; }; -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 regmap_debugfs_off_cache { + struct list_head list; + off_t min; + off_t max; + unsigned int base_reg; + unsigned int max_reg; }; -struct execlists_capture { - struct work_struct work; - struct i915_request *rq; - struct i915_gpu_coredump *error; +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 hdcp2_hdmi_msg_timeout { - u8 msg_id; - u16 timeout; +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 devres_node { - struct list_head entry; - dr_release_t release; - const char *name; - size_t size; +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 devres { - struct devres_node node; - u8 data[0]; +struct scsi_idlun { + __u32 dev_id; + __u32 host_unique_id; }; -struct devres_group { - struct devres_node node[2]; - void *id; - int color; +struct scsi_ioctl_command { + unsigned int inlen; + unsigned int outlen; + unsigned char data[0]; }; -struct action_devres { - void *data; - void (*action)(void *); +struct ata_acpi_hotplug_context { + struct acpi_hotplug_context hp; + union { + struct ata_port *ap; + struct ata_device *dev; + } data; }; -struct pages_devres { - unsigned long addr; - unsigned int order; +struct ata_acpi_gtf { + u8 tf[7]; }; -typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); +struct fixed_mdio_bus { + struct mii_bus *mii_bus; + struct list_head phys; +}; -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 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 { - 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, +struct netdev_lag_lower_state_info { + u8 link_up: 1; + u8 tx_enabled: 1; }; -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 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 ohci { - void *registers; +struct usb_dev_cap_header { + __u8 bLength; + __u8 bDescriptorType; + __u8 bDevCapabilityType; }; -struct each_dev_arg { - void *data; - int (*fn)(struct usb_device *, void *); +struct class_info { + int class; + char *class_name; }; -struct find_interface_arg { - int minor; - struct device_driver *drv; +struct xhci_driver_data { + u64 quirks; + const char *firmware; }; -struct input_led { - struct led_classdev cdev; - struct input_handle *handle; - unsigned int code; +struct ps2pp_info { + u8 model; + u8 kind; + u16 features; }; -struct input_leds { - struct input_handle handle; - unsigned int num_leds; - struct input_led leds[0]; +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 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 dm_stat_shared { + atomic_t in_flight[2]; + unsigned long long stamp; + struct dm_stat_percpu tmp; }; -struct ptp_clock_caps { - int max_adj; - int n_alarm; - int n_ext_ts; - int n_per_out; - int pps; - int n_pins; - int cross_timestamping; - int adjust_phase; - int max_phase_adj; - int rsv[11]; +struct 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 ptp_sys_offset_extended { - unsigned int n_samples; - unsigned int rsv[3]; - struct ptp_clock_time ts[75]; +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 ptp_sys_offset { - unsigned int n_samples; - unsigned int rsv[3]; - struct ptp_clock_time ts[51]; +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_update_capsule_t(efi_capsule_header_t **, unsigned long, unsigned long); + +typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **, unsigned long, u64 *, int *); + +typedef efi_status_t efi_get_next_high_mono_count_t(u32 *); + +typedef void efi_reset_system_t(int, efi_status_t, unsigned long, efi_char16_t *); + +struct efi { + const efi_runtime_services_t *runtime; + unsigned int runtime_version; + unsigned int runtime_supported_mask; + unsigned long acpi; + unsigned long acpi20; + unsigned long smbios; + unsigned long smbios3; + unsigned long esrt; + unsigned long tpm_log; + unsigned long tpm_final_log; + unsigned long mokvar_table; + unsigned long coco_secret; + unsigned long unaccepted; + efi_get_time_t *get_time; + efi_set_time_t *set_time; + efi_get_wakeup_time_t *get_wakeup_time; + efi_set_wakeup_time_t *set_wakeup_time; + efi_get_variable_t *get_variable; + efi_get_next_variable_t *get_next_variable; + efi_set_variable_t *set_variable; + efi_set_variable_t *set_variable_nonblocking; + efi_query_variable_info_t *query_variable_info; + efi_query_variable_info_t *query_variable_info_nonblocking; + efi_update_capsule_t *update_capsule; + efi_query_capsule_caps_t *query_capsule_caps; + efi_get_next_high_mono_count_t *get_next_high_mono_count; + efi_reset_system_t *reset_system; + struct efi_memory_map memmap; + unsigned long flags; }; -enum tcpa_event_types { - PREBOOT = 0, - POST_CODE = 1, - UNUSED = 2, - NO_ACTION = 3, - SEPARATOR = 4, - ACTION = 5, - EVENT_TAG = 6, - SCRTM_CONTENTS = 7, - SCRTM_VERSION = 8, - CPU_MICROCODE = 9, - PLATFORM_CONFIG_FLAGS = 10, - TABLE_OF_DEVICES = 11, - COMPACT_HASH = 12, - IPL = 13, - IPL_PARTITION_DATA = 14, - NONHOST_CODE = 15, - NONHOST_CONFIG = 16, - NONHOST_INFO = 17, +struct linux_efi_memreserve { + int size; + atomic_t count; + phys_addr_t next; + struct { + phys_addr_t base; + phys_addr_t size; + } entry[0]; }; -struct tpm_digest { - u16 alg_id; - u8 digest[64]; +typedef struct { + efi_guid_t guid; + unsigned long *ptr; + const char name[16]; +} efi_config_table_type_t; + +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; + +struct linux_efi_random_seed { + u32 size; + u8 bits[0]; }; -struct tcg_pcr_event2_head { - u32 pcr_idx; - u32 event_type; - u32 count; - struct tpm_digest digests[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 tcg_efi_specid_event_algs { - u16 alg_id; - u16 digest_size; +enum nhlt_link_type { + NHLT_LINK_HDA = 0, + NHLT_LINK_DSP = 1, + NHLT_LINK_DMIC = 2, + NHLT_LINK_SSP = 3, + NHLT_LINK_INVALID = 4, }; -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]; +enum { + NHLT_CONFIG_TYPE_GENERIC = 0, + NHLT_CONFIG_TYPE_MIC_ARRAY = 1, }; -struct tcg_event_field { - u32 event_size; - u8 event[0]; +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, }; -struct tcg_pcr_event { - u32 pcr_idx; - u32 event_type; - u8 digest[20]; - u32 event_size; - u8 event[0]; +enum nhlt_device_type { + NHLT_DEVICE_BT = 0, + NHLT_DEVICE_DMIC = 1, + NHLT_DEVICE_I2S = 4, + NHLT_DEVICE_INVALID = 5, }; -struct linux_efi_tpm_eventlog { +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; - u32 final_events_preboot_size; - u8 version; - u8 log[0]; + u8 caps[0]; }; -struct efi_tcg2_final_events_table { - u64 version; - u64 nr_events; - u8 events[0]; +struct nhlt_fmt_cfg { + struct wav_fmt_ext fmt_ext; + struct nhlt_specific_cfg config; }; -struct snd_fasync { - struct fasync_struct *fasync; - int signal; - int poll; - int on; - struct list_head list; +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 flow_indr_dev { - struct list_head list; - flow_indr_block_bind_cb_t *cb; - void *cb_priv; - refcount_t refcnt; +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)); + +struct skb_checksum_ops { + __wsum (*update)(const void *, int, __wsum); + __wsum (*combine)(__wsum, __wsum, int, int); }; -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 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 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 skb_seq_state { + __u32 lower_offset; + __u32 upper_offset; + __u32 frag_idx; + __u32 stepped_offset; + struct sk_buff *root_skb; + struct sk_buff *cur_skb; + __u8 *frag_data; + __u32 frag_off; +}; + +struct mpls_shim_hdr { + __be32 label_stack_entry; +}; + +struct skb_free_array { + unsigned int skb_count; + void *skb_array[16]; +}; + +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; - 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 ts_state { + unsigned int offset; + char cb[48]; +}; + +typedef int (*sendmsg_func)(struct sock *, struct msghdr *); + +typedef void (*btf_trace_netlink_extack)(void *, const char *); + +struct listeners; + +struct netlink_table { + struct rhashtable hash; + struct hlist_head mc_list; + struct listeners __attribute__((btf_type_tag("rcu"))) *listeners; + unsigned int flags; + unsigned int groups; + struct mutex *cb_mutex; + struct module *module; + int (*bind)(struct net *, int); + void (*unbind)(struct net *, int); + void (*release)(struct sock *, unsigned long *); + int registered; }; -struct flow_match_basic { - struct flow_dissector_key_basic *key; - struct flow_dissector_key_basic *mask; +struct listeners { + struct callback_head rcu; + unsigned long masks[0]; }; -struct flow_match_control { - struct flow_dissector_key_control *key; - struct flow_dissector_key_control *mask; +enum netlink_skb_flags { + NETLINK_SKB_DST = 8, }; -struct flow_match_eth_addrs { - struct flow_dissector_key_eth_addrs *key; - struct flow_dissector_key_eth_addrs *mask; +enum { + NETLINK_F_KERNEL_SOCKET = 0, + NETLINK_F_RECV_PKTINFO = 1, + NETLINK_F_BROADCAST_SEND_ERROR = 2, + NETLINK_F_RECV_NO_ENOBUFS = 3, + NETLINK_F_LISTEN_ALL_NSID = 4, + NETLINK_F_CAP_ACK = 5, + NETLINK_F_EXT_ACK = 6, + NETLINK_F_STRICT_CHK = 7, }; -struct flow_match_vlan { - struct flow_dissector_key_vlan *key; - struct flow_dissector_key_vlan *mask; +enum { + NETLINK_UNCONNECTED = 0, + NETLINK_CONNECTED = 1, }; -struct flow_match_arp { - struct flow_dissector_key_arp *key; - struct flow_dissector_key_arp *mask; +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 flow_match_ipv4_addrs { - struct flow_dissector_key_ipv4_addrs *key; - struct flow_dissector_key_ipv4_addrs *mask; +struct trace_event_raw_netlink_extack { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; }; -struct flow_match_ipv6_addrs { - struct flow_dissector_key_ipv6_addrs *key; - struct flow_dissector_key_ipv6_addrs *mask; +struct netlink_tap { + struct net_device *dev; + struct module *module; + struct list_head list; }; -struct flow_match_ip { - struct flow_dissector_key_ip *key; - struct flow_dissector_key_ip *mask; +struct netlink_sock { + struct sock sk; + unsigned long flags; + u32 portid; + u32 dst_portid; + u32 dst_group; + u32 subscriptions; + u32 ngroups; + unsigned long *groups; + unsigned long state; + size_t max_recvmsg_len; + wait_queue_head_t wait; + bool bound; + bool cb_running; + int dump_done_errno; + struct netlink_callback cb; + struct mutex *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); + void (*netlink_release)(struct sock *, unsigned long *); + struct module *module; + struct rhash_head node; + struct callback_head rcu; + struct work_struct work; }; -struct flow_match_ports { - struct flow_dissector_key_ports *key; - struct flow_dissector_key_ports *mask; +struct sockaddr_nl { + __kernel_sa_family_t nl_family; + unsigned short nl_pad; + __u32 nl_pid; + __u32 nl_groups; }; -struct flow_dissector_key_ports_range; - -struct flow_match_ports_range { - struct flow_dissector_key_ports_range *key; - struct flow_dissector_key_ports_range *mask; +struct trace_event_data_offsets_netlink_extack { + u32 msg; }; -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 netlink_tap_net { + struct list_head netlink_tap_all; + struct mutex netlink_tap_lock; }; -struct flow_match_tcp { - struct flow_dissector_key_tcp *key; - struct flow_dissector_key_tcp *mask; +struct netlink_broadcast_data { + struct sock *exclude_sk; + struct net *net; + u32 portid; + u32 group; + int failure; + int delivery_failure; + int congested; + int delivered; + gfp_t allocation; + struct sk_buff *skb; + struct sk_buff *skb2; + int (*tx_filter)(struct sock *, struct sk_buff *, void *); + void *tx_data; }; -struct flow_match_icmp { - struct flow_dissector_key_icmp *key; - struct flow_dissector_key_icmp *mask; +struct netlink_set_err_data { + struct sock *exclude_sk; + u32 portid; + u32 group; + int code; }; -struct flow_match_mpls { - struct flow_dissector_key_mpls *key; - struct flow_dissector_key_mpls *mask; +struct netlink_compare_arg { + possible_net_t pnet; + u32 portid; }; -struct flow_match_enc_keyid { - struct flow_dissector_key_keyid *key; - struct flow_dissector_key_keyid *mask; +struct nl_pktinfo { + __u32 group; }; -struct flow_match_enc_opts { - struct flow_dissector_key_enc_opts *key; - struct flow_dissector_key_enc_opts *mask; +struct nl_seq_iter { + struct seq_net_private p; + struct rhashtable_iter hti; + int link; }; -struct flow_match_ct { - struct flow_dissector_key_ct *key; - struct flow_dissector_key_ct *mask; +struct bpf_iter__netlink { + union { + struct bpf_iter_meta *meta; + }; + union { + struct netlink_sock *sk; + }; }; -struct flow_match_pppoe { - struct flow_dissector_key_pppoe *key; - struct flow_dissector_key_pppoe *mask; +struct tcpvegas_info { + __u32 tcpv_enabled; + __u32 tcpv_rttcnt; + __u32 tcpv_rtt; + __u32 tcpv_minrtt; }; -struct flow_match_l2tpv3 { - struct flow_dissector_key_l2tpv3 *key; - struct flow_dissector_key_l2tpv3 *mask; +struct tcp_dctcp_info { + __u16 dctcp_enabled; + __u16 dctcp_ce_state; + __u32 dctcp_alpha; + __u32 dctcp_ab_ecn; + __u32 dctcp_ab_tot; }; -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 tcp_bbr_info { + __u32 bbr_bw_lo; + __u32 bbr_bw_hi; + __u32 bbr_min_rtt; + __u32 bbr_pacing_gain; + __u32 bbr_cwnd_gain; }; -struct tsinfo_reply_data { - struct ethnl_reply_data base; - struct ethtool_ts_info ts_info; +union tcp_cc_info { + struct tcpvegas_info vegas; + struct tcp_dctcp_info dctcp; + struct tcp_bbr_info bbr; }; -struct snmp_mib { - const char *name; - int entry; +enum { + TCP_CMSG_INQ = 1, + TCP_CMSG_TS = 2, }; -struct ip6addrlbl_init_table { - const struct in6_addr *prefix; - int prefixlen; - u32 label; +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 { - IFAL_ADDRESS = 1, - IFAL_LABEL = 2, - __IFAL_MAX = 3, + 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 ip6addrlbl_entry { - struct in6_addr prefix; - int prefixlen; - int ifindex; - int addrtype; - u32 label; - struct hlist_node list; - struct callback_head rcu; +struct tcp_splice_state { + struct pipe_inode_info *pipe; + size_t len; + unsigned int flags; }; -struct ifaddrlblmsg { - __u8 ifal_family; - __u8 __ifal_reserved; - __u8 ifal_prefixlen; - __u8 ifal_flags; - __u32 ifal_index; - __u32 ifal_seq; +struct tcp_info { + __u8 tcpi_state; + __u8 tcpi_ca_state; + __u8 tcpi_retransmits; + __u8 tcpi_probes; + __u8 tcpi_backoff; + __u8 tcpi_options; + __u8 tcpi_snd_wscale: 4; + __u8 tcpi_rcv_wscale: 4; + __u8 tcpi_delivery_rate_app_limited: 1; + __u8 tcpi_fastopen_client_fail: 2; + __u32 tcpi_rto; + __u32 tcpi_ato; + __u32 tcpi_snd_mss; + __u32 tcpi_rcv_mss; + __u32 tcpi_unacked; + __u32 tcpi_sacked; + __u32 tcpi_lost; + __u32 tcpi_retrans; + __u32 tcpi_fackets; + __u32 tcpi_last_data_sent; + __u32 tcpi_last_ack_sent; + __u32 tcpi_last_data_recv; + __u32 tcpi_last_ack_recv; + __u32 tcpi_pmtu; + __u32 tcpi_rcv_ssthresh; + __u32 tcpi_rtt; + __u32 tcpi_rttvar; + __u32 tcpi_snd_ssthresh; + __u32 tcpi_snd_cwnd; + __u32 tcpi_advmss; + __u32 tcpi_reordering; + __u32 tcpi_rcv_rtt; + __u32 tcpi_rcv_space; + __u32 tcpi_total_retrans; + __u64 tcpi_pacing_rate; + __u64 tcpi_max_pacing_rate; + __u64 tcpi_bytes_acked; + __u64 tcpi_bytes_received; + __u32 tcpi_segs_out; + __u32 tcpi_segs_in; + __u32 tcpi_notsent_bytes; + __u32 tcpi_min_rtt; + __u32 tcpi_data_segs_in; + __u32 tcpi_data_segs_out; + __u64 tcpi_delivery_rate; + __u64 tcpi_busy_time; + __u64 tcpi_rwnd_limited; + __u64 tcpi_sndbuf_limited; + __u32 tcpi_delivered; + __u32 tcpi_delivered_ce; + __u64 tcpi_bytes_sent; + __u64 tcpi_bytes_retrans; + __u32 tcpi_dsack_dups; + __u32 tcpi_reord_seen; + __u32 tcpi_rcv_ooopack; + __u32 tcpi_snd_wnd; + __u32 tcpi_rcv_wnd; + __u32 tcpi_rehash; + __u16 tcpi_total_rto; + __u16 tcpi_total_rto_recoveries; + __u32 tcpi_total_rto_time; }; -struct fib6_rule { - struct fib_rule common; - struct rt6key src; - struct rt6key dst; - dscp_t dscp; +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; }; -enum rpc_msg_type { - RPC_CALL = 0, - RPC_REPLY = 1, +struct tcp_repair_opt { + __u32 opt_code; + __u32 opt_val; }; -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 completion handshake_done; - struct __kernel_sockaddr_storage srcaddr; - unsigned short srcport; - int xprt_err; - struct rpc_clnt *clnt; - 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 tcp_repair_window { + __u32 snd_wl1; + __u32 snd_wnd; + __u32 max_window; + __u32 rcv_wnd; + __u32 rcv_wup; }; -struct rpc_buffer { - size_t len; - char data[0]; +struct flow_dissector { + unsigned long long used_keys; + unsigned short offset[33]; }; -enum nl80211_attrs { - NL80211_ATTR_UNSPEC = 0, - NL80211_ATTR_WIPHY = 1, - NL80211_ATTR_WIPHY_NAME = 2, - NL80211_ATTR_IFINDEX = 3, - NL80211_ATTR_IFNAME = 4, - NL80211_ATTR_IFTYPE = 5, - NL80211_ATTR_MAC = 6, - NL80211_ATTR_KEY_DATA = 7, - NL80211_ATTR_KEY_IDX = 8, - NL80211_ATTR_KEY_CIPHER = 9, - NL80211_ATTR_KEY_SEQ = 10, - NL80211_ATTR_KEY_DEFAULT = 11, - NL80211_ATTR_BEACON_INTERVAL = 12, - NL80211_ATTR_DTIM_PERIOD = 13, - NL80211_ATTR_BEACON_HEAD = 14, - NL80211_ATTR_BEACON_TAIL = 15, - NL80211_ATTR_STA_AID = 16, - NL80211_ATTR_STA_FLAGS = 17, - NL80211_ATTR_STA_LISTEN_INTERVAL = 18, - NL80211_ATTR_STA_SUPPORTED_RATES = 19, - NL80211_ATTR_STA_VLAN = 20, - NL80211_ATTR_STA_INFO = 21, - NL80211_ATTR_WIPHY_BANDS = 22, - NL80211_ATTR_MNTR_FLAGS = 23, - NL80211_ATTR_MESH_ID = 24, - NL80211_ATTR_STA_PLINK_ACTION = 25, - NL80211_ATTR_MPATH_NEXT_HOP = 26, - NL80211_ATTR_MPATH_INFO = 27, - NL80211_ATTR_BSS_CTS_PROT = 28, - NL80211_ATTR_BSS_SHORT_PREAMBLE = 29, - NL80211_ATTR_BSS_SHORT_SLOT_TIME = 30, - NL80211_ATTR_HT_CAPABILITY = 31, - NL80211_ATTR_SUPPORTED_IFTYPES = 32, - NL80211_ATTR_REG_ALPHA2 = 33, - NL80211_ATTR_REG_RULES = 34, - NL80211_ATTR_MESH_CONFIG = 35, - NL80211_ATTR_BSS_BASIC_RATES = 36, - NL80211_ATTR_WIPHY_TXQ_PARAMS = 37, - NL80211_ATTR_WIPHY_FREQ = 38, - NL80211_ATTR_WIPHY_CHANNEL_TYPE = 39, - NL80211_ATTR_KEY_DEFAULT_MGMT = 40, - NL80211_ATTR_MGMT_SUBTYPE = 41, - NL80211_ATTR_IE = 42, - NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 43, - NL80211_ATTR_SCAN_FREQUENCIES = 44, - NL80211_ATTR_SCAN_SSIDS = 45, - NL80211_ATTR_GENERATION = 46, - NL80211_ATTR_BSS = 47, - NL80211_ATTR_REG_INITIATOR = 48, - NL80211_ATTR_REG_TYPE = 49, - NL80211_ATTR_SUPPORTED_COMMANDS = 50, - NL80211_ATTR_FRAME = 51, - NL80211_ATTR_SSID = 52, - NL80211_ATTR_AUTH_TYPE = 53, - NL80211_ATTR_REASON_CODE = 54, - NL80211_ATTR_KEY_TYPE = 55, - NL80211_ATTR_MAX_SCAN_IE_LEN = 56, - NL80211_ATTR_CIPHER_SUITES = 57, - NL80211_ATTR_FREQ_BEFORE = 58, - NL80211_ATTR_FREQ_AFTER = 59, - NL80211_ATTR_FREQ_FIXED = 60, - NL80211_ATTR_WIPHY_RETRY_SHORT = 61, - NL80211_ATTR_WIPHY_RETRY_LONG = 62, - NL80211_ATTR_WIPHY_FRAG_THRESHOLD = 63, - NL80211_ATTR_WIPHY_RTS_THRESHOLD = 64, - NL80211_ATTR_TIMED_OUT = 65, - NL80211_ATTR_USE_MFP = 66, - NL80211_ATTR_STA_FLAGS2 = 67, - NL80211_ATTR_CONTROL_PORT = 68, - NL80211_ATTR_TESTDATA = 69, - NL80211_ATTR_PRIVACY = 70, - NL80211_ATTR_DISCONNECTED_BY_AP = 71, - NL80211_ATTR_STATUS_CODE = 72, - NL80211_ATTR_CIPHER_SUITES_PAIRWISE = 73, - NL80211_ATTR_CIPHER_SUITE_GROUP = 74, - NL80211_ATTR_WPA_VERSIONS = 75, - NL80211_ATTR_AKM_SUITES = 76, - NL80211_ATTR_REQ_IE = 77, - NL80211_ATTR_RESP_IE = 78, - NL80211_ATTR_PREV_BSSID = 79, - NL80211_ATTR_KEY = 80, - NL80211_ATTR_KEYS = 81, - NL80211_ATTR_PID = 82, - NL80211_ATTR_4ADDR = 83, - NL80211_ATTR_SURVEY_INFO = 84, - NL80211_ATTR_PMKID = 85, - NL80211_ATTR_MAX_NUM_PMKIDS = 86, - NL80211_ATTR_DURATION = 87, - NL80211_ATTR_COOKIE = 88, - NL80211_ATTR_WIPHY_COVERAGE_CLASS = 89, - NL80211_ATTR_TX_RATES = 90, - NL80211_ATTR_FRAME_MATCH = 91, - NL80211_ATTR_ACK = 92, - NL80211_ATTR_PS_STATE = 93, - NL80211_ATTR_CQM = 94, - NL80211_ATTR_LOCAL_STATE_CHANGE = 95, - NL80211_ATTR_AP_ISOLATE = 96, - NL80211_ATTR_WIPHY_TX_POWER_SETTING = 97, - NL80211_ATTR_WIPHY_TX_POWER_LEVEL = 98, - NL80211_ATTR_TX_FRAME_TYPES = 99, - NL80211_ATTR_RX_FRAME_TYPES = 100, - NL80211_ATTR_FRAME_TYPE = 101, - NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 102, - NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT = 103, - NL80211_ATTR_SUPPORT_IBSS_RSN = 104, - NL80211_ATTR_WIPHY_ANTENNA_TX = 105, - NL80211_ATTR_WIPHY_ANTENNA_RX = 106, - NL80211_ATTR_MCAST_RATE = 107, - NL80211_ATTR_OFFCHANNEL_TX_OK = 108, - NL80211_ATTR_BSS_HT_OPMODE = 109, - NL80211_ATTR_KEY_DEFAULT_TYPES = 110, - NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION = 111, - NL80211_ATTR_MESH_SETUP = 112, - NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX = 113, - NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX = 114, - NL80211_ATTR_SUPPORT_MESH_AUTH = 115, - NL80211_ATTR_STA_PLINK_STATE = 116, - NL80211_ATTR_WOWLAN_TRIGGERS = 117, - NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED = 118, - NL80211_ATTR_SCHED_SCAN_INTERVAL = 119, - NL80211_ATTR_INTERFACE_COMBINATIONS = 120, - NL80211_ATTR_SOFTWARE_IFTYPES = 121, - NL80211_ATTR_REKEY_DATA = 122, - NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS = 123, - NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 124, - NL80211_ATTR_SCAN_SUPP_RATES = 125, - NL80211_ATTR_HIDDEN_SSID = 126, - NL80211_ATTR_IE_PROBE_RESP = 127, - NL80211_ATTR_IE_ASSOC_RESP = 128, - NL80211_ATTR_STA_WME = 129, - NL80211_ATTR_SUPPORT_AP_UAPSD = 130, - NL80211_ATTR_ROAM_SUPPORT = 131, - NL80211_ATTR_SCHED_SCAN_MATCH = 132, - NL80211_ATTR_MAX_MATCH_SETS = 133, - NL80211_ATTR_PMKSA_CANDIDATE = 134, - NL80211_ATTR_TX_NO_CCK_RATE = 135, - NL80211_ATTR_TDLS_ACTION = 136, - NL80211_ATTR_TDLS_DIALOG_TOKEN = 137, - NL80211_ATTR_TDLS_OPERATION = 138, - NL80211_ATTR_TDLS_SUPPORT = 139, - NL80211_ATTR_TDLS_EXTERNAL_SETUP = 140, - NL80211_ATTR_DEVICE_AP_SME = 141, - NL80211_ATTR_DONT_WAIT_FOR_ACK = 142, - NL80211_ATTR_FEATURE_FLAGS = 143, - NL80211_ATTR_PROBE_RESP_OFFLOAD = 144, - NL80211_ATTR_PROBE_RESP = 145, - NL80211_ATTR_DFS_REGION = 146, - NL80211_ATTR_DISABLE_HT = 147, - NL80211_ATTR_HT_CAPABILITY_MASK = 148, - NL80211_ATTR_NOACK_MAP = 149, - NL80211_ATTR_INACTIVITY_TIMEOUT = 150, - NL80211_ATTR_RX_SIGNAL_DBM = 151, - NL80211_ATTR_BG_SCAN_PERIOD = 152, - NL80211_ATTR_WDEV = 153, - NL80211_ATTR_USER_REG_HINT_TYPE = 154, - NL80211_ATTR_CONN_FAILED_REASON = 155, - NL80211_ATTR_AUTH_DATA = 156, - NL80211_ATTR_VHT_CAPABILITY = 157, - NL80211_ATTR_SCAN_FLAGS = 158, - NL80211_ATTR_CHANNEL_WIDTH = 159, - NL80211_ATTR_CENTER_FREQ1 = 160, - NL80211_ATTR_CENTER_FREQ2 = 161, - NL80211_ATTR_P2P_CTWINDOW = 162, - NL80211_ATTR_P2P_OPPPS = 163, - NL80211_ATTR_LOCAL_MESH_POWER_MODE = 164, - NL80211_ATTR_ACL_POLICY = 165, - NL80211_ATTR_MAC_ADDRS = 166, - NL80211_ATTR_MAC_ACL_MAX = 167, - NL80211_ATTR_RADAR_EVENT = 168, - NL80211_ATTR_EXT_CAPA = 169, - NL80211_ATTR_EXT_CAPA_MASK = 170, - NL80211_ATTR_STA_CAPABILITY = 171, - NL80211_ATTR_STA_EXT_CAPABILITY = 172, - NL80211_ATTR_PROTOCOL_FEATURES = 173, - NL80211_ATTR_SPLIT_WIPHY_DUMP = 174, - NL80211_ATTR_DISABLE_VHT = 175, - NL80211_ATTR_VHT_CAPABILITY_MASK = 176, - NL80211_ATTR_MDID = 177, - NL80211_ATTR_IE_RIC = 178, - NL80211_ATTR_CRIT_PROT_ID = 179, - NL80211_ATTR_MAX_CRIT_PROT_DURATION = 180, - NL80211_ATTR_PEER_AID = 181, - NL80211_ATTR_COALESCE_RULE = 182, - NL80211_ATTR_CH_SWITCH_COUNT = 183, - NL80211_ATTR_CH_SWITCH_BLOCK_TX = 184, - NL80211_ATTR_CSA_IES = 185, - NL80211_ATTR_CNTDWN_OFFS_BEACON = 186, - NL80211_ATTR_CNTDWN_OFFS_PRESP = 187, - NL80211_ATTR_RXMGMT_FLAGS = 188, - NL80211_ATTR_STA_SUPPORTED_CHANNELS = 189, - NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES = 190, - NL80211_ATTR_HANDLE_DFS = 191, - NL80211_ATTR_SUPPORT_5_MHZ = 192, - NL80211_ATTR_SUPPORT_10_MHZ = 193, - NL80211_ATTR_OPMODE_NOTIF = 194, - NL80211_ATTR_VENDOR_ID = 195, - NL80211_ATTR_VENDOR_SUBCMD = 196, - NL80211_ATTR_VENDOR_DATA = 197, - NL80211_ATTR_VENDOR_EVENTS = 198, - NL80211_ATTR_QOS_MAP = 199, - NL80211_ATTR_MAC_HINT = 200, - NL80211_ATTR_WIPHY_FREQ_HINT = 201, - NL80211_ATTR_MAX_AP_ASSOC_STA = 202, - NL80211_ATTR_TDLS_PEER_CAPABILITY = 203, - NL80211_ATTR_SOCKET_OWNER = 204, - NL80211_ATTR_CSA_C_OFFSETS_TX = 205, - NL80211_ATTR_MAX_CSA_COUNTERS = 206, - NL80211_ATTR_TDLS_INITIATOR = 207, - NL80211_ATTR_USE_RRM = 208, - NL80211_ATTR_WIPHY_DYN_ACK = 209, - NL80211_ATTR_TSID = 210, - NL80211_ATTR_USER_PRIO = 211, - NL80211_ATTR_ADMITTED_TIME = 212, - NL80211_ATTR_SMPS_MODE = 213, - NL80211_ATTR_OPER_CLASS = 214, - NL80211_ATTR_MAC_MASK = 215, - NL80211_ATTR_WIPHY_SELF_MANAGED_REG = 216, - NL80211_ATTR_EXT_FEATURES = 217, - NL80211_ATTR_SURVEY_RADIO_STATS = 218, - NL80211_ATTR_NETNS_FD = 219, - NL80211_ATTR_SCHED_SCAN_DELAY = 220, - NL80211_ATTR_REG_INDOOR = 221, - NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 222, - NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 223, - NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 224, - NL80211_ATTR_SCHED_SCAN_PLANS = 225, - NL80211_ATTR_PBSS = 226, - NL80211_ATTR_BSS_SELECT = 227, - NL80211_ATTR_STA_SUPPORT_P2P_PS = 228, - NL80211_ATTR_PAD = 229, - NL80211_ATTR_IFTYPE_EXT_CAPA = 230, - NL80211_ATTR_MU_MIMO_GROUP_DATA = 231, - NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR = 232, - NL80211_ATTR_SCAN_START_TIME_TSF = 233, - NL80211_ATTR_SCAN_START_TIME_TSF_BSSID = 234, - NL80211_ATTR_MEASUREMENT_DURATION = 235, - NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY = 236, - NL80211_ATTR_MESH_PEER_AID = 237, - NL80211_ATTR_NAN_MASTER_PREF = 238, - NL80211_ATTR_BANDS = 239, - NL80211_ATTR_NAN_FUNC = 240, - NL80211_ATTR_NAN_MATCH = 241, - NL80211_ATTR_FILS_KEK = 242, - NL80211_ATTR_FILS_NONCES = 243, - NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED = 244, - NL80211_ATTR_BSSID = 245, - NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI = 246, - NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST = 247, - NL80211_ATTR_TIMEOUT_REASON = 248, - NL80211_ATTR_FILS_ERP_USERNAME = 249, - NL80211_ATTR_FILS_ERP_REALM = 250, - NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM = 251, - NL80211_ATTR_FILS_ERP_RRK = 252, - NL80211_ATTR_FILS_CACHE_ID = 253, - NL80211_ATTR_PMK = 254, - NL80211_ATTR_SCHED_SCAN_MULTI = 255, - NL80211_ATTR_SCHED_SCAN_MAX_REQS = 256, - NL80211_ATTR_WANT_1X_4WAY_HS = 257, - NL80211_ATTR_PMKR0_NAME = 258, - NL80211_ATTR_PORT_AUTHORIZED = 259, - NL80211_ATTR_EXTERNAL_AUTH_ACTION = 260, - NL80211_ATTR_EXTERNAL_AUTH_SUPPORT = 261, - NL80211_ATTR_NSS = 262, - NL80211_ATTR_ACK_SIGNAL = 263, - NL80211_ATTR_CONTROL_PORT_OVER_NL80211 = 264, - NL80211_ATTR_TXQ_STATS = 265, - NL80211_ATTR_TXQ_LIMIT = 266, - NL80211_ATTR_TXQ_MEMORY_LIMIT = 267, - NL80211_ATTR_TXQ_QUANTUM = 268, - NL80211_ATTR_HE_CAPABILITY = 269, - NL80211_ATTR_FTM_RESPONDER = 270, - NL80211_ATTR_FTM_RESPONDER_STATS = 271, - NL80211_ATTR_TIMEOUT = 272, - NL80211_ATTR_PEER_MEASUREMENTS = 273, - NL80211_ATTR_AIRTIME_WEIGHT = 274, - NL80211_ATTR_STA_TX_POWER_SETTING = 275, - NL80211_ATTR_STA_TX_POWER = 276, - NL80211_ATTR_SAE_PASSWORD = 277, - NL80211_ATTR_TWT_RESPONDER = 278, - NL80211_ATTR_HE_OBSS_PD = 279, - NL80211_ATTR_WIPHY_EDMG_CHANNELS = 280, - NL80211_ATTR_WIPHY_EDMG_BW_CONFIG = 281, - NL80211_ATTR_VLAN_ID = 282, - NL80211_ATTR_HE_BSS_COLOR = 283, - NL80211_ATTR_IFTYPE_AKM_SUITES = 284, - NL80211_ATTR_TID_CONFIG = 285, - NL80211_ATTR_CONTROL_PORT_NO_PREAUTH = 286, - NL80211_ATTR_PMK_LIFETIME = 287, - NL80211_ATTR_PMK_REAUTH_THRESHOLD = 288, - NL80211_ATTR_RECEIVE_MULTICAST = 289, - NL80211_ATTR_WIPHY_FREQ_OFFSET = 290, - NL80211_ATTR_CENTER_FREQ1_OFFSET = 291, - NL80211_ATTR_SCAN_FREQ_KHZ = 292, - NL80211_ATTR_HE_6GHZ_CAPABILITY = 293, - NL80211_ATTR_FILS_DISCOVERY = 294, - NL80211_ATTR_UNSOL_BCAST_PROBE_RESP = 295, - NL80211_ATTR_S1G_CAPABILITY = 296, - NL80211_ATTR_S1G_CAPABILITY_MASK = 297, - NL80211_ATTR_SAE_PWE = 298, - NL80211_ATTR_RECONNECT_REQUESTED = 299, - NL80211_ATTR_SAR_SPEC = 300, - NL80211_ATTR_DISABLE_HE = 301, - NL80211_ATTR_OBSS_COLOR_BITMAP = 302, - NL80211_ATTR_COLOR_CHANGE_COUNT = 303, - NL80211_ATTR_COLOR_CHANGE_COLOR = 304, - NL80211_ATTR_COLOR_CHANGE_ELEMS = 305, - NL80211_ATTR_MBSSID_CONFIG = 306, - NL80211_ATTR_MBSSID_ELEMS = 307, - NL80211_ATTR_RADAR_BACKGROUND = 308, - NL80211_ATTR_AP_SETTINGS_FLAGS = 309, - NL80211_ATTR_EHT_CAPABILITY = 310, - NL80211_ATTR_DISABLE_EHT = 311, - NL80211_ATTR_MLO_LINKS = 312, - NL80211_ATTR_MLO_LINK_ID = 313, - NL80211_ATTR_MLD_ADDR = 314, - NL80211_ATTR_MLO_SUPPORT = 315, - NL80211_ATTR_MAX_NUM_AKM_SUITES = 316, - NL80211_ATTR_EML_CAPABILITY = 317, - NL80211_ATTR_MLD_CAPA_AND_OPS = 318, - NL80211_ATTR_TX_HW_TIMESTAMP = 319, - NL80211_ATTR_RX_HW_TIMESTAMP = 320, - NL80211_ATTR_TD_BITMAP = 321, - NL80211_ATTR_PUNCT_BITMAP = 322, - NL80211_ATTR_MAX_HW_TIMESTAMP_PEERS = 323, - NL80211_ATTR_HW_TIMESTAMP_ENABLED = 324, - NL80211_ATTR_EMA_RNR_ELEMS = 325, - NL80211_ATTR_MLO_LINK_DISABLED = 326, - __NL80211_ATTR_AFTER_LAST = 327, - NUM_NL80211_ATTR = 327, - NL80211_ATTR_MAX = 326, -}; +struct xfrm_if_decode_session_result; -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, +struct xfrm_if_cb { + bool (*decode_session)(struct sk_buff *, unsigned short, struct xfrm_if_decode_session_result *); }; -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, +struct xfrm_if_decode_session_result { + struct net *net; + u32 if_id; }; -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, +struct flow_dissector_key { + enum flow_dissector_key_id key_id; + size_t offset; }; -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 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, }; -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, +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; }; -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, +struct xfrm_pol_inexact_key { + possible_net_t net; + u32 if_id; + u16 family; + u8 dir; + u8 type; }; -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, +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; }; -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, +struct xfrm_pol_inexact_candidates { + struct hlist_head *res[4]; }; -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 xfrm_flo { + struct dst_entry *dst_orig; + u8 flags; }; -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 flow_dissector_key_ip { + __u8 tos; + __u8 ttl; }; -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; +struct xfrm_flow_keys { + struct flow_dissector_key_basic basic; + struct flow_dissector_key_control control; union { - struct cfg80211_pmsr_ftm_result ftm; - }; + struct flow_dissector_key_ipv4_addrs ipv4; + struct flow_dissector_key_ipv6_addrs ipv6; + } addrs; + struct flow_dissector_key_ip ip; + struct flow_dissector_key_icmp icmp; + struct flow_dissector_key_ports ports; + struct flow_dissector_key_keyid gre; }; -struct pci_root_info___2 { - struct acpi_pci_root_info common; - struct pci_sysdata sd; - bool mcfg_added; - u8 start_bus; - u8 end_bus; +struct xprt_addr { + const char *addr; + struct callback_head rcu; }; -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); +enum ieee80211_p2p_attr_id { + IEEE80211_P2P_ATTR_STATUS = 0, + IEEE80211_P2P_ATTR_MINOR_REASON = 1, + IEEE80211_P2P_ATTR_CAPABILITY = 2, + IEEE80211_P2P_ATTR_DEVICE_ID = 3, + IEEE80211_P2P_ATTR_GO_INTENT = 4, + IEEE80211_P2P_ATTR_GO_CONFIG_TIMEOUT = 5, + IEEE80211_P2P_ATTR_LISTEN_CHANNEL = 6, + IEEE80211_P2P_ATTR_GROUP_BSSID = 7, + IEEE80211_P2P_ATTR_EXT_LISTEN_TIMING = 8, + IEEE80211_P2P_ATTR_INTENDED_IFACE_ADDR = 9, + IEEE80211_P2P_ATTR_MANAGABILITY = 10, + IEEE80211_P2P_ATTR_CHANNEL_LIST = 11, + IEEE80211_P2P_ATTR_ABSENCE_NOTICE = 12, + IEEE80211_P2P_ATTR_DEVICE_INFO = 13, + IEEE80211_P2P_ATTR_GROUP_INFO = 14, + IEEE80211_P2P_ATTR_GROUP_ID = 15, + IEEE80211_P2P_ATTR_INTERFACE = 16, + IEEE80211_P2P_ATTR_OPER_CHANNEL = 17, + IEEE80211_P2P_ATTR_INVITE_FLAGS = 18, + IEEE80211_P2P_ATTR_VENDOR_SPECIFIC = 221, + IEEE80211_P2P_ATTR_MAX = 222, }; -struct cpu_perf_ibs { - struct perf_event *event; - unsigned long state[1]; +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 ibs_states { - IBS_ENABLED = 0, - IBS_STARTED = 1, - IBS_STOPPING = 2, - IBS_STOPPED = 3, - IBS_MAX_STATES = 4, +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, }; -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; - }; +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, }; -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 mpls_label { + __be32 entry; }; -struct perf_ibs_data { - u32 size; - union { - u32 data[0]; - u32 caps; - }; - u64 regs[8]; +struct iapp_layer2_update { + u8 da[6]; + u8 sa[6]; + __be16 len; + u8 dsap; + u8 ssap; + u8 control; + u8 xid_info[3]; }; -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; - }; +enum ieee80211_packet_rx_flags { + IEEE80211_RX_AMSDU = 8, + IEEE80211_RX_MALFORMED_ACTION_FRM = 16, + IEEE80211_RX_DEFERRED_RELEASE = 32, }; -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; - }; +enum ___mac80211_drop_reason { + ___RX_CONTINUE = 1, + ___RX_QUEUED = 0, + ___RX_DROP_MONITOR = 131072, + ___RX_DROP_M_UNEXPECTED_4ADDR_FRAME = 131073, + ___RX_DROP_M_BAD_BCN_KEYIDX = 131074, + ___RX_DROP_M_BAD_MGMT_KEYIDX = 131075, + ___RX_DROP_UNUSABLE = 65536, + ___RX_DROP_U_MIC_FAIL = 65537, + ___RX_DROP_U_REPLAY = 65538, + ___RX_DROP_U_BAD_MMIE = 65539, + ___RX_DROP_U_DUP = 65540, + ___RX_DROP_U_SPURIOUS = 65541, + ___RX_DROP_U_DECRYPT_FAIL = 65542, + ___RX_DROP_U_NO_KEY_ID = 65543, + ___RX_DROP_U_BAD_CIPHER = 65544, + ___RX_DROP_U_OOM = 65545, + ___RX_DROP_U_NONSEQ_PN = 65546, + ___RX_DROP_U_BAD_KEY_COLOR = 65547, + ___RX_DROP_U_BAD_4ADDR = 65548, + ___RX_DROP_U_BAD_AMSDU = 65549, + ___RX_DROP_U_BAD_AMSDU_CIPHER = 65550, + ___RX_DROP_U_INVALID_8023 = 65551, + ___RX_DROP_U_RUNT_ACTION = 65552, + ___RX_DROP_U_UNPROT_ACTION = 65553, + ___RX_DROP_U_UNPROT_DUAL = 65554, + ___RX_DROP_U_UNPROT_UCAST_MGMT = 65555, + ___RX_DROP_U_UNPROT_MCAST_MGMT = 65556, + ___RX_DROP_U_UNPROT_BEACON = 65557, + ___RX_DROP_U_UNPROT_UNICAST_PUB_ACTION = 65558, + ___RX_DROP_U_UNPROT_ROBUST_ACTION = 65559, + ___RX_DROP_U_ACTION_UNKNOWN_SRC = 65560, + ___RX_DROP_U_REJECTED_ACTION_RESPONSE = 65561, + ___RX_DROP_U_EXPECT_DEFRAG_PROT = 65562, + ___RX_DROP_U_WEP_DEC_FAIL = 65563, + ___RX_DROP_U_NO_IV = 65564, + ___RX_DROP_U_NO_ICV = 65565, + ___RX_DROP_U_AP_RX_GROUPCAST = 65566, + ___RX_DROP_U_SHORT_MMIC = 65567, + ___RX_DROP_U_MMIC_FAIL = 65568, + ___RX_DROP_U_SHORT_TKIP = 65569, + ___RX_DROP_U_TKIP_FAIL = 65570, + ___RX_DROP_U_SHORT_CCMP = 65571, + ___RX_DROP_U_SHORT_CCMP_MIC = 65572, + ___RX_DROP_U_SHORT_GCMP = 65573, + ___RX_DROP_U_SHORT_GCMP_MIC = 65574, + ___RX_DROP_U_SHORT_CMAC = 65575, + ___RX_DROP_U_SHORT_CMAC256 = 65576, + ___RX_DROP_U_SHORT_GMAC = 65577, + ___RX_DROP_U_UNEXPECTED_VLAN_4ADDR = 65578, + ___RX_DROP_U_UNEXPECTED_STA_4ADDR = 65579, + ___RX_DROP_U_UNEXPECTED_VLAN_MCAST = 65580, + ___RX_DROP_U_NOT_PORT_CONTROL = 65581, }; -union ibs_op_data { - __u64 val; - struct { - __u64 comp_to_ret_ctr: 16; - __u64 tag_to_ret_ctr: 16; - __u64 reserved1: 2; - __u64 op_return: 1; - __u64 op_brn_taken: 1; - __u64 op_brn_misp: 1; - __u64 op_brn_ret: 1; - __u64 op_rip_invalid: 1; - __u64 op_brn_fuse: 1; - __u64 op_microcode: 1; - __u64 reserved2: 23; - }; +enum ieee80211_rx_flags { + IEEE80211_RX_CMNTR = 1, + IEEE80211_RX_BEACON_REPORTED = 2, }; -typedef __kernel_long_t __kernel_suseconds_t; - -typedef __kernel_suseconds_t suseconds_t; +enum ieee80211_ht_chanwidth_values { + IEEE80211_HT_CHANWIDTH_20MHZ = 0, + IEEE80211_HT_CHANWIDTH_ANY = 1, +}; -struct listener_list { - struct rw_semaphore sem; - struct list_head list; +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 { - TASKSTATS_CMD_UNSPEC = 0, - TASKSTATS_CMD_GET = 1, - TASKSTATS_CMD_NEW = 2, - __TASKSTATS_CMD_MAX = 3, +enum ieee80211_sa_query_action { + WLAN_ACTION_SA_QUERY_REQUEST = 0, + WLAN_ACTION_SA_QUERY_RESPONSE = 1, }; -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 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 { - 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 ieee80211_radiotap_rx_flags { + IEEE80211_RADIOTAP_F_RX_BADPLCP = 2, }; -enum actions { - REGISTER = 0, - DEREGISTER = 1, - CPU_DONT_CARE = 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 { - CGROUPSTATS_CMD_ATTR_UNSPEC = 0, - CGROUPSTATS_CMD_ATTR_FD = 1, - __CGROUPSTATS_CMD_ATTR_MAX = 2, +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 { - CGROUPSTATS_CMD_UNSPEC = 3, - CGROUPSTATS_CMD_GET = 4, - CGROUPSTATS_CMD_NEW = 5, - __CGROUPSTATS_CMD_MAX = 6, +enum ieee80211_radiotap_timestamp_flags { + IEEE80211_RADIOTAP_TIMESTAMP_FLAG_64BIT = 0, + IEEE80211_RADIOTAP_TIMESTAMP_FLAG_32BIT = 1, + IEEE80211_RADIOTAP_TIMESTAMP_FLAG_ACCURACY = 2, }; -enum { - CGROUPSTATS_TYPE_UNSPEC = 0, - CGROUPSTATS_TYPE_CGROUP_STATS = 1, - __CGROUPSTATS_TYPE_MAX = 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 listener { - struct list_head list; - pid_t pid; - char valid; +struct ieee80211_radiotap_he_mu { + __le16 flags1; + __le16 flags2; + u8 ru_ch1[4]; + u8 ru_ch2[4]; }; -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 ieee80211_radiotap_lsig { + __le16 data1; + __le16 data2; }; -struct bpf_kfunc_desc { - struct btf_func_model func_model; - u32 func_id; - s32 imm; - u16 offset; - unsigned long addr; +struct ieee80211_tdls_data { + u8 da[6]; + u8 sa[6]; + __be16 ether_type; + u8 payload_type; + u8 category; + u8 action_code; + union { + struct { + u8 dialog_token; + __le16 capability; + u8 variable[0]; + } __attribute__((packed)) setup_req; + struct { + __le16 status_code; + u8 dialog_token; + __le16 capability; + u8 variable[0]; + } __attribute__((packed)) setup_resp; + struct { + __le16 status_code; + u8 dialog_token; + u8 variable[0]; + } __attribute__((packed)) setup_cfm; + struct { + __le16 reason_code; + u8 variable[0]; + } teardown; + struct { + u8 dialog_token; + u8 variable[0]; + } discover_req; + struct { + u8 target_channel; + u8 oper_class; + u8 variable[0]; + } chan_switch_req; + struct { + __le16 status_code; + u8 variable[0]; + } chan_switch_resp; + } u; }; -struct bpf_kfunc_desc_tab { - struct bpf_kfunc_desc descs[256]; - u32 nr_descs; +enum hp_flags_bits { + HANDSHAKE_F_PROTO_NOTIFY = 0, }; -struct bpf_kfunc_btf { - struct btf *btf; - struct module *module; - u16 offset; +enum { + HANDSHAKE_CMD_READY = 1, + HANDSHAKE_CMD_ACCEPT = 2, + HANDSHAKE_CMD_DONE = 3, + __HANDSHAKE_CMD_MAX = 4, + HANDSHAKE_CMD_MAX = 3, }; -struct bpf_kfunc_btf_tab { - struct bpf_kfunc_btf descs[256]; - u32 nr_descs; +typedef void (*btf_trace_emulate_vsyscall)(void *, int); + +enum { + EMULATE = 0, + XONLY = 1, + NONE = 2, }; -struct bpf_reg_types { - const enum bpf_reg_type types[10]; - u32 *btf_id; +enum x86_pf_error_code { + X86_PF_PROT = 1, + X86_PF_WRITE = 2, + X86_PF_USER = 4, + X86_PF_RSVD = 8, + X86_PF_INSTR = 16, + X86_PF_PK = 32, + X86_PF_SHSTK = 64, + X86_PF_SGX = 32768, }; -enum special_kfunc_type { - KF_bpf_obj_new_impl = 0, - KF_bpf_obj_drop_impl = 1, - KF_bpf_refcount_acquire_impl = 2, - KF_bpf_list_push_front_impl = 3, - KF_bpf_list_push_back_impl = 4, - KF_bpf_list_pop_front = 5, - KF_bpf_list_pop_back = 6, - KF_bpf_cast_to_kern_ctx = 7, - KF_bpf_rdonly_cast = 8, - KF_bpf_rcu_read_lock = 9, - KF_bpf_rcu_read_unlock = 10, - KF_bpf_rbtree_remove = 11, - KF_bpf_rbtree_add_impl = 12, - KF_bpf_rbtree_first = 13, - KF_bpf_dynptr_from_skb = 14, - KF_bpf_dynptr_from_xdp = 15, - KF_bpf_dynptr_slice = 16, - KF_bpf_dynptr_slice_rdwr = 17, - KF_bpf_dynptr_clone = 18, +struct trace_event_raw_emulate_vsyscall { + struct trace_entry ent; + int nr; + char __data[0]; }; -enum bpf_stack_slot_type { - STACK_INVALID = 0, - STACK_SPILL = 1, - STACK_MISC = 2, - STACK_ZERO = 3, - STACK_DYNPTR = 4, - STACK_ITER = 5, +struct trace_event_data_offsets_emulate_vsyscall {}; + +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 bpf_access_src { - ACCESS_DIRECT = 1, - ACCESS_HELPER = 2, +enum context___2 { + IN_KERNEL = 1, + IN_USER = 2, + IN_KERNEL_RECOV = 3, }; -enum { - DISCOVERED = 16, - EXPLORED = 32, - FALLTHROUGH = 1, - BRANCH = 2, +enum exception { + EXCP_CONTEXT = 1, + NO_EXCP = 2, }; -enum { - DONE_EXPLORING = 0, - KEEP_EXPLORING = 1, +enum ser { + SER_REQUIRED = 1, + NO_SER = 2, }; -enum reg_arg_type { - SRC_OP = 0, - DST_OP = 1, - DST_OP_NO_MARK = 2, +struct kretprobe_blackpoint { + const char *name; + void *addr; }; -enum { - REASON_BOUNDS = -1, - REASON_TYPE = -2, - REASON_PATHS = -3, - REASON_LIMIT = -4, - REASON_STACK = -5, +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; }; -enum kfunc_ptr_arg_type { - KF_ARG_PTR_TO_CTX = 0, - KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, - KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2, - KF_ARG_PTR_TO_DYNPTR = 3, - KF_ARG_PTR_TO_ITER = 4, - KF_ARG_PTR_TO_LIST_HEAD = 5, - KF_ARG_PTR_TO_LIST_NODE = 6, - KF_ARG_PTR_TO_BTF_ID = 7, - KF_ARG_PTR_TO_MEM = 8, - KF_ARG_PTR_TO_MEM_SIZE = 9, - KF_ARG_PTR_TO_CALLBACK = 10, - KF_ARG_PTR_TO_RB_ROOT = 11, - KF_ARG_PTR_TO_RB_NODE = 12, +struct kvm_steal_time { + __u64 steal; + __u32 version; + __u32 flags; + __u8 preempted; + __u8 u8_pad[3]; + __u32 pad[11]; }; -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, +struct kvm_task_sleep_head { + raw_spinlock_t lock; + struct hlist_head list; }; -enum { - AT_PKT_END = -1, - BEYOND_PKT_END = -2, +struct kvm_task_sleep_node { + struct hlist_node link; + struct swait_queue_head wq; + u32 token; + int cpu; }; -struct bpf_iter_meta__safe_trusted { - struct seq_file *seq; +typedef unsigned __int128 __uint128_t; + +struct linked_page; + +struct chain_allocator { + struct linked_page *chain; + unsigned int used_space; + gfp_t gfp_mask; + int safe_needed; }; -struct bpf_iter__task__safe_trusted { - struct bpf_iter_meta *meta; - struct task_struct *task; +struct linked_page { + struct linked_page *next; + char data[4088]; }; -struct linux_binprm__safe_trusted { - struct file *file; +struct pbe { + void *address; + void *orig_address; + struct pbe *next; }; -struct file__safe_trusted { - struct inode *f_inode; +struct mem_zone_bm_rtree; + +struct rtree_node; + +struct bm_position { + struct mem_zone_bm_rtree *zone; + struct rtree_node *node; + unsigned long node_pfn; + unsigned long cur_pfn; + int node_bit; }; -struct dentry__safe_trusted { - struct inode *d_inode; +struct memory_bitmap { + struct list_head zones; + struct linked_page *p_list; + struct bm_position cur; }; -struct socket__safe_trusted { - struct sock *sk; +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 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 rtree_node { + struct list_head list; + unsigned long *data; }; -struct cgroup__safe_rcu { - struct kernfs_node *kn; +struct nosave_region { + struct list_head list; + unsigned long start_pfn; + unsigned long end_pfn; }; -struct css_set__safe_rcu { - struct cgroup *dfl_cgrp; +struct mem_extent { + struct list_head hook; + unsigned long start; + unsigned long end; }; -struct mm_struct__safe_rcu_or_null { - struct file __attribute__((btf_type_tag("rcu"))) *exe_file; +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 sk_buff__safe_rcu_or_null { - struct sock *sk; +struct trace_event_raw_alarmtimer_suspend { + struct trace_entry ent; + s64 expires; + unsigned char alarm_type; + char __data[0]; }; -struct request_sock__safe_rcu_or_null { - struct sock *sk; +struct trace_event_raw_alarm_class { + struct trace_entry ent; + void *alarm; + unsigned char alarm_type; + s64 expires; + s64 now; + char __data[0]; }; -struct bpf_iter; +struct trace_event_data_offsets_alarmtimer_suspend {}; -typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); +struct trace_event_data_offsets_alarm_class {}; -struct bpf_struct_ops { - const struct bpf_verifier_ops *verifier_ops; - int (*init)(struct btf *); - int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *); - int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); - int (*reg)(void *); - void (*unreg)(void *); - int (*update)(void *, void *); - int (*validate)(void *); - 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; +typedef int (*objpool_init_obj_cb)(void *, void *); + +enum { + BPF_MAX_LOOPS = 8388608, }; -struct bpf_kfunc_call_arg_meta { - struct btf *btf; - u32 func_id; - u32 kfunc_flags; - const struct btf_type *func_proto; - const char *func_name; - u32 ref_obj_id; - u8 release_regno; - bool r0_rdonly; - u32 ret_btf_id; - u64 r0_size; - u32 subprogno; - struct { - u64 value; - bool found; - } arg_constant; - struct btf *arg_btf; - u32 arg_btf_id; - bool arg_owning_ref; - struct { - struct btf_field *field; - } arg_list_head; - struct { - struct btf_field *field; - } arg_rbtree_root; - struct { - enum bpf_dynptr_type type; - u32 id; - u32 ref_obj_id; - } initialized_dynptr; - struct { - u8 spi; - u8 frameno; - } iter; - u64 mem_size; +enum bpf_iter_feature { + BPF_ITER_RESCHED = 1, }; -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; +struct bpf_iter_target_info { + struct list_head list; + const struct bpf_iter_reg *reg_info; u32 btf_id; - struct btf *ret_btf; - u32 ret_btf_id; - u32 subprogno; - struct btf_field *kptr_field; }; -struct bpf_sanitize_info { - struct bpf_insn_aux_data aux; - bool mask_to_left; +struct bpf_iter_link { + struct bpf_link link; + struct bpf_iter_aux_info aux; + struct bpf_iter_target_info *tinfo; }; -typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); +struct bpf_iter_priv_data { + struct bpf_iter_target_info *tinfo; + const struct bpf_iter_seq_info *seq_info; + struct bpf_prog *prog; + u64 session_id; + u64 seq_num; + bool done_stop; + long: 0; + u8 target_private[0]; +}; -struct mempolicy_operations { - int (*create)(struct mempolicy *, const nodemask_t *); - void (*rebind)(struct mempolicy *, const nodemask_t *); +typedef u64 (*btf_bpf_for_each_map_elem)(struct bpf_map *, void *, void *, u64); + +typedef u64 (*btf_bpf_loop)(u32, void *, void *, u64); + +struct bpf_iter_num { + __u64 __opaque[1]; }; -struct sp_node { - struct rb_node nd; - unsigned long start; - unsigned long end; - struct mempolicy *policy; +struct bpf_iter_num_kern { + int cur; + int end; }; -struct queue_pages { - struct list_head *pagelist; - unsigned long flags; - nodemask_t *nmask; - unsigned long start; - unsigned long end; - struct vm_area_struct *first; +struct reuseport_array { + struct bpf_map map; + struct sock __attribute__((btf_type_tag("rcu"))) *ptrs[0]; }; -struct nodemask_scratch { - nodemask_t mask1; - nodemask_t mask2; +struct swap_iocb { + struct kiocb iocb; + struct bio_vec bvec[32]; + int pages; + int len; }; -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 sysctl_alias { - const char *kernel_param; - const char *sysctl_param; +struct signalfd_ctx { + sigset_t sigmask; }; -enum hugetlbfs_size_type { - NO_SIZE = 0, - SIZE_STD = 1, - SIZE_PERCENT = 2, +struct qt_disk_dqdbheader { + __le32 dqdh_next_free; + __le32 dqdh_prev_free; + __le16 dqdh_entries; + __le16 dqdh_pad1; + __le32 dqdh_pad2; }; -enum hugetlb_param { - Opt_gid___6 = 0, - Opt_min_size = 1, - Opt_mode___4 = 2, - Opt_nr_inodes = 3, - Opt_pagesize = 4, - Opt_size = 5, - Opt_uid___5 = 6, +struct vmcore { + struct list_head list; + unsigned long long paddr; + unsigned long long size; + loff_t offset; }; -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 vmcore_cb { + bool (*pfn_is_ram)(struct vmcore_cb *, unsigned long); + struct list_head next; }; -struct utf8_table { - int cmask; - int cval; - int shift; - long lmask; - long lval; +typedef struct elf64_note Elf64_Nhdr; + +typedef struct elf32_hdr Elf32_Ehdr; + +typedef struct elf32_phdr Elf32_Phdr; + +typedef struct elf32_note Elf32_Nhdr; + +struct fname; + +struct dir_private_info { + struct rb_root root; + struct rb_node *curr_node; + struct fname *extra_fname; + loff_t last_pos; + __u32 curr_hash; + __u32 curr_minor_hash; + __u32 next_hash; }; -enum { - Opt_err___8 = 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, +struct ext4_orphan_block_tail { + __le32 ob_magic; + __le32 ob_checksum; }; -struct selinux_kernel_status { - u32 version; - u32 sequence; - u32 enforcing; - u32 policyload; - u32 deny_unknown; +struct proc_nfs_info { + int flag; + const char *str; + const char *nostr; }; -typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *); +typedef void (*btf_trace_nfs4_setclientid)(void *, const struct nfs_client *, int); -typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *); +typedef void (*btf_trace_nfs4_setclientid_confirm)(void *, const struct nfs_client *, int); -typedef void (*btf_trace_block_rq_requeue)(void *, struct request *); +typedef void (*btf_trace_nfs4_renew)(void *, const struct nfs_client *, int); -typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int); +typedef void (*btf_trace_nfs4_renew_async)(void *, const struct nfs_client *, int); -typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int); +typedef void (*btf_trace_nfs4_setup_sequence)(void *, const struct nfs4_session *, const struct nfs4_sequence_args *); -typedef void (*btf_trace_block_rq_insert)(void *, struct request *); +typedef void (*btf_trace_nfs4_state_mgr)(void *, const struct nfs_client *); -typedef void (*btf_trace_block_rq_issue)(void *, struct request *); +typedef void (*btf_trace_nfs4_state_mgr_failed)(void *, const struct nfs_client *, const char *, int); -typedef void (*btf_trace_block_rq_merge)(void *, struct request *); +typedef void (*btf_trace_nfs4_xdr_bad_operation)(void *, const struct xdr_stream *, u32, u32); -typedef void (*btf_trace_block_io_start)(void *, struct request *); +typedef void (*btf_trace_nfs4_xdr_status)(void *, const struct xdr_stream *, u32, u32); -typedef void (*btf_trace_block_io_done)(void *, struct request *); +typedef void (*btf_trace_nfs4_xdr_bad_filehandle)(void *, const struct xdr_stream *, u32, u32); -typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *); +typedef void (*btf_trace_nfs_cb_no_clp)(void *, __be32, u32); -typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); +typedef void (*btf_trace_nfs_cb_badprinc)(void *, __be32, u32); -typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); +typedef void (*btf_trace_nfs4_open_reclaim)(void *, const struct nfs_open_context *, int, int); -typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *); +typedef void (*btf_trace_nfs4_open_expired)(void *, const struct nfs_open_context *, int, int); -typedef void (*btf_trace_block_bio_queue)(void *, struct bio *); +typedef void (*btf_trace_nfs4_open_file)(void *, const struct nfs_open_context *, int, int); -typedef void (*btf_trace_block_getrq)(void *, struct bio *); +typedef void (*btf_trace_nfs4_cached_open)(void *, const struct nfs4_state *); -typedef void (*btf_trace_block_plug)(void *, struct request_queue *); +typedef void (*btf_trace_nfs4_close)(void *, const struct nfs4_state *, const struct nfs_closeargs *, const struct nfs_closeres *, int); -typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); +typedef void (*btf_trace_nfs4_get_lock)(void *, const struct file_lock *, const struct nfs4_state *, int, int); -typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int); +typedef void (*btf_trace_nfs4_unlock)(void *, const struct file_lock *, const struct nfs4_state *, int, int); -typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t); +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_block_rq_remap)(void *, struct request *, dev_t, sector_t); +typedef void (*btf_trace_nfs4_state_lock_reclaim)(void *, const struct nfs4_state *, const struct nfs4_lock_state *); -struct blk_plug_cb; +typedef void (*btf_trace_nfs4_set_delegation)(void *, const struct inode *, fmode_t); -typedef void (*blk_plug_cb_fn)(struct blk_plug_cb *, bool); +typedef void (*btf_trace_nfs4_reclaim_delegation)(void *, const struct inode *, fmode_t); -struct blk_plug_cb { - struct list_head list; - blk_plug_cb_fn callback; - void *data; +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_block_buffer { +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; - sector_t sector; - size_t size; + 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_block_rq_requeue { +struct trace_event_raw_nfs4_set_delegation_event { struct trace_entry ent; dev_t dev; - sector_t sector; - unsigned int nr_sector; - char rwbs[8]; - u32 __data_loc_cmd; + u32 fhandle; + u64 fileid; + unsigned int fmode; char __data[0]; }; -struct trace_event_raw_block_rq_completion { +struct trace_event_raw_nfs4_delegreturn_exit { struct trace_entry ent; dev_t dev; - sector_t sector; - unsigned int nr_sector; - int error; - char rwbs[8]; - u32 __data_loc_cmd; + u32 fhandle; + unsigned long error; + int stateid_seq; + u32 stateid_hash; char __data[0]; }; -struct trace_event_raw_block_rq { +struct trace_event_raw_nfs4_lookup_event { 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; + unsigned long error; + u64 dir; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_block_bio_complete { +struct trace_event_raw_nfs4_lookupp { struct trace_entry ent; dev_t dev; - sector_t sector; - unsigned int nr_sector; - int error; - char rwbs[8]; + u64 ino; + unsigned long error; char __data[0]; }; -struct trace_event_raw_block_bio { +struct trace_event_raw_nfs4_rename { struct trace_entry ent; dev_t dev; - sector_t sector; - unsigned int nr_sector; - char rwbs[8]; - char comm[16]; + unsigned long error; + u64 olddir; + u32 __data_loc_oldname; + u64 newdir; + u32 __data_loc_newname; char __data[0]; }; -struct trace_event_raw_block_plug { +struct trace_event_raw_nfs4_inode_event { struct trace_entry ent; - char comm[16]; + dev_t dev; + u32 fhandle; + u64 fileid; + unsigned long error; char __data[0]; }; -struct trace_event_raw_block_unplug { +struct trace_event_raw_nfs4_inode_stateid_event { struct trace_entry ent; - int nr_rq; - char comm[16]; + dev_t dev; + u32 fhandle; + u64 fileid; + unsigned long error; + int stateid_seq; + u32 stateid_hash; char __data[0]; }; -struct trace_event_raw_block_split { +struct trace_event_raw_nfs4_getattr_event { struct trace_entry ent; dev_t dev; - sector_t sector; - sector_t new_sector; - char rwbs[8]; - char comm[16]; + u32 fhandle; + u64 fileid; + unsigned int valid; + unsigned long error; char __data[0]; }; -struct trace_event_raw_block_bio_remap { +struct trace_event_raw_nfs4_inode_callback_event { struct trace_entry ent; + unsigned long error; dev_t dev; - sector_t sector; - unsigned int nr_sector; - dev_t old_dev; - sector_t old_sector; - char rwbs[8]; + u32 fhandle; + u64 fileid; + u32 __data_loc_dstaddr; char __data[0]; }; -struct trace_event_raw_block_rq_remap { +struct trace_event_raw_nfs4_inode_stateid_callback_event { struct trace_entry ent; + unsigned long error; 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]; + u32 fhandle; + u64 fileid; + u32 __data_loc_dstaddr; + int stateid_seq; + u32 stateid_hash; 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 acpi_port_info { - char *name; - u16 start; - u16 end; - u8 osi_dependency; -}; - -typedef acpi_status (*acpi_repair_function)(struct acpi_evaluate_info *, union acpi_operand_object **); - -struct acpi_repair_info { - char name[4]; - acpi_repair_function repair_function; -}; - -struct 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 drm_mode_get_encoder { - __u32 encoder_id; - __u32 encoder_type; - __u32 crtc_id; - __u32 possible_crtcs; - __u32 possible_clones; -}; - -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; -}; - -struct ttm_agp_backend { - struct ttm_tt ttm; - struct agp_memory *mem; - struct agp_bridge_data *bridge; -}; - -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 intel_gt_buffer_pool_node; - -struct eb_fence; - -struct i915_execbuffer { - struct drm_i915_private *i915; - struct drm_file *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 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 trace_event_raw_nfs4_idmap_event { + struct trace_entry ent; + unsigned long error; + u32 id; + u32 __data_loc_name; + char __data[0]; }; -struct eb_fence { - struct drm_syncobj *syncobj; - struct dma_fence *dma_fence; - u64 value; - struct dma_fence_chain *chain_fence; +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 drm_i915_gem_relocation_entry { - __u32 target_handle; - __u32 delta; - __u64 offset; - __u64 presumed_offset; - __u32 read_domains; - __u32 write_domain; +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 drm_i915_gem_exec_fence { - __u32 handle; - __u32 flags; +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 drm_i915_gem_execbuffer_ext_timeline_fences { - struct i915_user_extension base; - __u64 fence_count; - __u64 handles_ptr; - __u64 values_ptr; +struct trace_event_data_offsets_nfs4_clientid_event { + u32 dstaddr; }; -enum intel_bootrom_load_status { - INTEL_BOOTROM_STATUS_NO_KEY_FOUND = 19, - INTEL_BOOTROM_STATUS_AES_PROD_KEY_FOUND = 26, - INTEL_BOOTROM_STATUS_PROD_KEY_CHECK_FAILURE = 43, - INTEL_BOOTROM_STATUS_RSA_FAILED = 80, - INTEL_BOOTROM_STATUS_PAVPC_FAILED = 115, - INTEL_BOOTROM_STATUS_WOPCM_FAILED = 116, - INTEL_BOOTROM_STATUS_LOADLOC_FAILED = 117, - INTEL_BOOTROM_STATUS_JUMP_PASSED = 118, - INTEL_BOOTROM_STATUS_JUMP_FAILED = 119, - INTEL_BOOTROM_STATUS_RC6CTXCONFIG_FAILED = 121, - INTEL_BOOTROM_STATUS_MPUMAP_INCORRECT = 122, - INTEL_BOOTROM_STATUS_EXCEPTION = 126, +struct trace_event_data_offsets_nfs4_state_mgr { + u32 hostname; }; -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_HWCONFIG_START = 5, - INTEL_GUC_LOAD_STATUS_HWCONFIG_DONE = 6, - INTEL_GUC_LOAD_STATUS_HWCONFIG_ERROR = 7, - 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, +struct trace_event_data_offsets_nfs4_state_mgr_failed { + u32 hostname; + u32 section; }; -struct intel_quirk { - int device; - int subsystem_vendor; - int subsystem_device; - void (*hook)(struct drm_i915_private *); +struct trace_event_data_offsets_nfs4_open_event { + u32 name; }; -struct intel_dmi_quirk { - void (*hook)(struct drm_i915_private *); - const struct dmi_system_id (*dmi_id_list)[0]; +struct trace_event_data_offsets_nfs4_lookup_event { + u32 name; }; -typedef const u8 * (*fn_mipi_elem_exec)(struct intel_dsi *, const u8 *); - -struct gpio_map { - u16 base_offset; - bool init; +struct trace_event_data_offsets_nfs4_rename { + u32 oldname; + u32 newname; }; -struct gpiod_lookup { - const char *key; - u16 chip_hwnum; - const char *con_id; - unsigned int idx; - unsigned long flags; +struct trace_event_data_offsets_nfs4_inode_callback_event { + u32 dstaddr; }; -struct gpiod_lookup_table { - struct list_head list; - const char *dev_id; - struct gpiod_lookup table[0]; +struct trace_event_data_offsets_nfs4_inode_stateid_callback_event { + u32 dstaddr; }; -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 trace_event_data_offsets_nfs4_idmap_event { + u32 name; }; -struct pinctrl_map_mux { - const char *group; - const char *function; -}; +struct trace_event_data_offsets_nfs4_setup_sequence {}; -struct pinctrl_map_configs { - const char *group_or_pin; - unsigned long *configs; - unsigned int num_configs; -}; +struct trace_event_data_offsets_nfs4_xdr_bad_operation {}; -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; -}; +struct trace_event_data_offsets_nfs4_xdr_event {}; -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 trace_event_data_offsets_nfs4_cb_error_class {}; -struct i2c_adapter_lookup { - u16 slave_addr; - struct intel_dsi *intel_dsi; - acpi_handle dev_handle; -}; +struct trace_event_data_offsets_nfs4_cached_open {}; -struct value_name_pair; +struct trace_event_data_offsets_nfs4_close {}; -struct sa_name_list { - int opcode; - const struct value_name_pair *arr; - int arr_sz; -}; +struct trace_event_data_offsets_nfs4_lock_event {}; -struct value_name_pair { - int value; - const char *name; -}; +struct trace_event_data_offsets_nfs4_set_lock {}; -struct error_info { - unsigned short code12; - unsigned short size; -}; +struct trace_event_data_offsets_nfs4_state_lock_reclaim {}; -struct error_info2 { - unsigned char code1; - unsigned char code2_min; - unsigned char code2_max; - const char *str; - const char *fmt; -}; +struct trace_event_data_offsets_nfs4_set_delegation_event {}; -enum spi_signal_type { - SPI_SIGNAL_UNKNOWN = 1, - SPI_SIGNAL_SE = 2, - SPI_SIGNAL_LVD = 3, - SPI_SIGNAL_HVD = 4, -}; +struct trace_event_data_offsets_nfs4_delegreturn_exit {}; -enum spi_compare_returns { - SPI_COMPARE_SUCCESS = 0, - SPI_COMPARE_FAILURE = 1, - SPI_COMPARE_SKIP_TEST = 2, -}; +struct trace_event_data_offsets_nfs4_lookupp {}; -enum { - SPI_BLIST_NOIUS = 1, -}; +struct trace_event_data_offsets_nfs4_inode_event {}; -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 trace_event_data_offsets_nfs4_inode_stateid_event {}; -struct spi_function_template; +struct trace_event_data_offsets_nfs4_getattr_event {}; -struct spi_internal { - struct scsi_transport_template t; - struct spi_function_template *f; -}; +struct trace_event_data_offsets_nfs4_read_event {}; -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 trace_event_data_offsets_nfs4_write_event {}; -struct spi_host_attrs { - enum spi_signal_type signalling; -}; +struct trace_event_data_offsets_nfs4_commit_event {}; -struct work_queue_wrapper { - struct work_struct work; - struct scsi_device *sdev; +struct selinux_kernel_status { + u32 version; + u32 sequence; + u32 enforcing; + u32 policyload; + u32 deny_unknown; }; -enum ru_state { - RU_SUSPENDED = 0, - RU_RUNNING = 1, - RU_UNINITIALIZED = -1, +struct crypto_rfc4543_instance_ctx { + struct crypto_aead_spawn aead; }; -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 gcm_instance_ctx { + struct crypto_skcipher_spawn ctr; + struct crypto_ahash_spawn ghash; }; -struct rfd { - __le16 status; - __le16 command; - __le32 link; - __le32 rbd; - __le16 actual_size; - __le16 size; +struct crypto_gcm_ghash_ctx { + unsigned int cryptlen; + struct scatterlist *src; + int (*complete)(struct aead_request *, u32); }; -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, +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; }; -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 crypto_gcm_ctx { + struct crypto_skcipher *ctr; + struct crypto_ahash *ghash; }; -struct param_range { - u32 min; - u32 max; - u32 count; +struct crypto_rfc4543_ctx { + struct crypto_aead *child; + struct crypto_sync_skcipher *null; + u8 nonce[4]; }; -struct params { - struct param_range rfds; - struct param_range cbs; +struct crypto_rfc4106_ctx { + struct crypto_aead *child; + u8 nonce[4]; }; -enum loopback { - lb_none = 0, - lb_mac = 1, - lb_phy = 3, +struct crypto_rfc4106_req_ctx { + struct scatterlist src[3]; + struct scatterlist dst[3]; + struct aead_request subreq; }; -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: 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: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - enum { - ich = 1, - promiscuous = 2, - multicast_all = 4, - wol_magic = 8, - ich_10h_workaround = 16, - } flags; - enum mac mac; - enum phy___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 crypto_rfc4543_req_ctx { + struct aead_request subreq; }; -struct rx { - struct rx *next; - struct rx *prev; - struct sk_buff *skb; - dma_addr_t dma_addr; +enum blkg_iostat_type { + BLKG_IOSTAT_READ = 0, + BLKG_IOSTAT_WRITE = 1, + BLKG_IOSTAT_DISCARD = 2, + BLKG_IOSTAT_NR = 3, }; -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; +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, }; -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]; +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 multi { - __le16 count; - u8 addr[386]; +enum asn1_method { + ASN1_PRIM = 0, + ASN1_CONS = 1, }; -struct cb { - __le16 status; - __le16 command; - __le32 link; +struct node_groups { + unsigned int id; 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]; + unsigned int ngroups; + unsigned int ncpus; + }; }; -enum eeprom_offsets { - eeprom_cnfg_mdix = 3, - eeprom_phy_iface = 6, - eeprom_id = 10, - eeprom_config_asf = 13, - eeprom_smbus_addr = 144, +enum smbios_attr_enum { + SMBIOS_ATTR_NONE = 0, + SMBIOS_ATTR_LABEL_SHOW = 1, + SMBIOS_ATTR_INSTANCE_SHOW = 2, }; -enum eeprom_id { - eeprom_id_wol = 32, +enum acpi_attr_enum { + ACPI_ATTR_LABEL_SHOW = 0, + ACPI_ATTR_INDEX_SHOW = 1, }; -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 dock_callback_type { + DOCK_CALL_HANDLER = 0, + DOCK_CALL_FIXUP = 1, + DOCK_CALL_UEVENT = 2, }; -enum port___2 { - software_reset = 0, - selftest = 1, - selective_reset = 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; }; -enum cb_status { - cb_complete = 32768, - cb_ok = 8192, +struct dock_dependent_device { + struct list_head list; + struct acpi_device *adev; }; -enum mdi_ctrl { - mdi_write = 67108864, - mdi_read = 134217728, - mdi_ready = 268435456, +struct acpi_pci_device { + acpi_handle device; + struct acpi_pci_device *next; }; -enum scb_cmd_hi { - irq_mask_none = 0, - irq_mask_all = 1, - irq_sw_gen = 2, +struct throttling_tstate { + unsigned int cpu; + int target_state; }; -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, +struct acpi_processor_throttling_arg { + struct acpi_processor *pr; + int target_state; + bool force; }; -enum eeprom_op { - op_write = 5, - op_read = 6, - op_ewds = 16, - op_ewen = 19, +struct vcs_poll_data { + struct notifier_block notifier; + unsigned int cons_num; + int event; + wait_queue_head_t waitq; + struct fasync_struct *fasync; }; -enum eeprom_ctrl_lo { - eesk = 1, - eecs = 2, - eedi = 4, - eedo = 8, +struct vt_notifier_param { + struct vc_data *vc; + unsigned int c; }; -enum led_state { - led_on = 1, - led_off = 4, - led_on_559 = 5, - led_on_557 = 7, +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)(); }; -enum scb_status { - rus_no_res = 8, - rus_ready = 16, - rus_mask = 60, +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; }; -enum cuc_dump { - cuc_dump_complete = 40965, - cuc_dump_reset_complete = 40967, +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 eeprom_cnfg_mdix { - eeprom_mdix_enabled = 128, +enum iommu_fault_type { + IOMMU_FAULT_DMA_UNRECOV = 1, + IOMMU_FAULT_PAGE_REQ = 2, }; -enum eeprom_phy_iface { - NoSuchPhy = 0, - I82553AB = 1, - I82553C = 2, - I82503 = 3, - DP83840 = 4, - S80C240 = 5, - S80C24 = 6, - I82555 = 7, - DP83840A = 10, +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, }; -enum eeprom_config_asf { - eeprom_asf = 32768, - eeprom_gcl = 16384, +enum { + IOMMU_SET_DOMAIN_MUST_SUCCEED = 1, }; -struct usb_cdc_union_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bMasterInterface0; - __u8 bSlaveInterface0; +struct group_device { + struct list_head list; + struct device *dev; + char *name; }; -struct usb_cdc_country_functional_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 iCountryCodeRelDate; - __le16 wCountyCode0; +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 usb_cdc_header_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdCDC; -} __attribute__((packed)); +struct fsl_mc_io; -struct usb_cdc_acm_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bmCapabilities; -}; +struct fsl_mc_device_irq; -struct usb_cdc_ether_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 iMACAddress; - __le32 bmEthernetStatistics; - __le16 wMaxSegmentSize; - __le16 wNumberMCFilters; - __u8 bNumberPowerFilters; -} __attribute__((packed)); +struct fsl_mc_resource; -struct usb_cdc_call_mgmt_descriptor { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bmCapabilities; - __u8 bDataInterface; +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 usb_cdc_dmm_desc { - __u8 bFunctionLength; - __u8 bDescriptorType; - __u8 bDescriptorSubtype; - __u16 bcdVersion; - __le16 wMaxCommand; -} __attribute__((packed)); +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 usb_cdc_mdlm_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdVersion; - __u8 bGUID[16]; -} __attribute__((packed)); +struct fsl_mc_resource_pool; -struct usb_cdc_mdlm_detail_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bGuidDescriptorType; - __u8 bDetailData[0]; +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 usb_cdc_ncm_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdNcmVersion; - __u8 bmNetworkCapabilities; -} __attribute__((packed)); +struct fsl_mc_device_irq { + unsigned int virq; + struct fsl_mc_device *mc_dev; + u8 dev_irq_index; + struct fsl_mc_resource resource; +}; -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 group_for_pci_data { + struct pci_dev *pdev; + struct iommu_group *group; +}; -struct usb_cdc_mbim_extended_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdMBIMExtendedVersion; - __u8 bMaxOutstandingCommandMessages; - __le16 wMTU; -} __attribute__((packed)); +struct drm_stats { + unsigned long count; + struct { + unsigned long value; + enum drm_stat_type type; + } data[15]; +}; -struct set_config_request { - struct usb_device *udev; - int config; - struct work_struct work; - struct list_head node; +struct drm_set_version { + int drm_di_major; + int drm_di_minor; + int drm_dd_major; + int drm_dd_minor; }; -struct api_context { - struct completion done; - int status; +struct drm_get_cap { + __u64 capability; + __u64 value; }; -struct usb_cdc_network_terminal_desc; +struct drm_set_client_cap { + __u64 capability; + __u64 value; +}; -struct usb_cdc_obex_desc; +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 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 execute_cb { + struct irq_work work; + struct i915_sw_fence *fence; + struct i915_request *signal; }; -struct usb_cdc_network_terminal_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __u8 bEntityId; - __u8 iName; - __u8 bChannelIndex; - __u8 bPhysicalInterface; +struct request_wait { + struct dma_fence_cb cb; + struct task_struct *tsk; }; -struct usb_cdc_obex_desc { - __u8 bLength; - __u8 bDescriptorType; - __u8 bDescriptorSubType; - __le16 bcdVersion; -} __attribute__((packed)); +typedef u32 (*hotplug_enables_func)(struct intel_encoder *); -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 hdcp2_hdmi_msg_timeout { + u8 msg_id; + u16 timeout; }; -struct xhci_driver_data { - u64 quirks; - const char *firmware; +struct virtio_gpu_object_shmem { + struct virtio_gpu_object base; }; -typedef void (*xhci_get_quirks_t)(struct device *, struct xhci_hcd *); - -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 cpu_attr { + struct device_attribute attr; + const struct cpumask * const map; }; -struct cmos_read_alarm_callback_param { - struct cmos_rtc *cmos; - struct rtc_time *time; - unsigned char rtc_control; +enum hsm_task_states { + HSM_ST_IDLE = 0, + HSM_ST_FIRST = 1, + HSM_ST = 2, + HSM_ST_LAST = 3, + HSM_ST_ERR = 4, }; -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; +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, }; -typedef irqreturn_t (*rtc_irq_handler)(int, void *); +struct fw_info { + u32 magic; + char version[32]; + __le32 fw_start; + __le32 fw_len; + u8 chksum; +} __attribute__((packed)); -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 ohci { + void *registers; }; -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 cdrom_sysctl_settings { + char info[1000]; + int autoclose; + int autoeject; + int debug; + int lock; + int check; }; -struct dm_stat_shared { - atomic_t in_flight[2]; - unsigned long long stamp; - struct dm_stat_percpu tmp; +enum cdrom_print_option { + CTL_NAME = 0, + CTL_SPEED = 1, + CTL_SLOTS = 2, + CTL_CAPABILITY = 3, }; -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 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 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; +struct mode_page_header { + __be16 mode_data_length; + __u8 medium_type; + __u8 reserved1; + __u8 reserved2; + __u8 reserved3; + __be16 desc_length; }; -enum { - AUTO_PIN_MIC = 0, - AUTO_PIN_LINE_IN = 1, - AUTO_PIN_CD = 2, - AUTO_PIN_AUX = 3, - AUTO_PIN_LAST = 4, +struct cdrom_timed_media_change_info { + __s64 last_media_change; + __u64 media_flags; }; -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, +struct cdrom_msf { + __u8 cdmsf_min0; + __u8 cdmsf_sec0; + __u8 cdmsf_frame0; + __u8 cdmsf_min1; + __u8 cdmsf_sec1; + __u8 cdmsf_frame1; }; -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, +struct cdrom_read_audio { + union cdrom_addr addr; + __u8 addr_format; + int nframes; + __u8 __attribute__((btf_type_tag("user"))) *buf; }; -enum { - AC_JACK_LOC_EXTERNAL = 0, - AC_JACK_LOC_INTERNAL = 16, - AC_JACK_LOC_SEPARATE = 32, - AC_JACK_LOC_OTHER = 48, +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; }; -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, +struct cdrom_blk { + unsigned int from; + unsigned short len; }; -enum { - HDA_FIXUP_INVALID = 0, - HDA_FIXUP_PINS = 1, - HDA_FIXUP_VERBS = 2, - HDA_FIXUP_FUNC = 3, - HDA_FIXUP_PINCTLS = 4, +struct cdrom_volctrl { + __u8 channel0; + __u8 channel1; + __u8 channel2; + __u8 channel3; }; -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, +struct dvd_lu_send_agid { + __u8 type; + unsigned int agid: 2; }; -struct auto_out_pin { - hda_nid_t pin; - short seq; -}; +typedef __u8 dvd_challenge[10]; -struct snd_hda_pin_quirk { - unsigned int codec; - unsigned short subvendor; - const struct hda_pintbl *pins; - int value; +struct dvd_host_send_challenge { + __u8 type; + unsigned int agid: 2; + dvd_challenge chal; }; -struct hda_model_fixup { - const int id; - const char *name; +typedef __u8 dvd_key[5]; + +struct dvd_send_key { + __u8 type; + unsigned int agid: 2; + dvd_key key; }; -struct rtnl_link { - rtnl_doit_func doit; - rtnl_dumpit_func dumpit; - struct module *owner; - unsigned int flags; - struct callback_head rcu; +struct dvd_lu_send_challenge { + __u8 type; + unsigned int agid: 2; + dvd_challenge chal; }; -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, +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; }; -enum { - IFLA_BRPORT_UNSPEC = 0, - IFLA_BRPORT_STATE = 1, - IFLA_BRPORT_PRIORITY = 2, - IFLA_BRPORT_COST = 3, - IFLA_BRPORT_MODE = 4, - IFLA_BRPORT_GUARD = 5, - IFLA_BRPORT_PROTECT = 6, - IFLA_BRPORT_FAST_LEAVE = 7, - IFLA_BRPORT_LEARNING = 8, - IFLA_BRPORT_UNICAST_FLOOD = 9, - IFLA_BRPORT_PROXYARP = 10, - IFLA_BRPORT_LEARNING_SYNC = 11, - IFLA_BRPORT_PROXYARP_WIFI = 12, - IFLA_BRPORT_ROOT_ID = 13, - IFLA_BRPORT_BRIDGE_ID = 14, - IFLA_BRPORT_DESIGNATED_PORT = 15, - IFLA_BRPORT_DESIGNATED_COST = 16, - IFLA_BRPORT_ID = 17, - IFLA_BRPORT_NO = 18, - IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 19, - IFLA_BRPORT_CONFIG_PENDING = 20, - IFLA_BRPORT_MESSAGE_AGE_TIMER = 21, - IFLA_BRPORT_FORWARD_DELAY_TIMER = 22, - IFLA_BRPORT_HOLD_TIMER = 23, - IFLA_BRPORT_FLUSH = 24, - IFLA_BRPORT_MULTICAST_ROUTER = 25, - IFLA_BRPORT_PAD = 26, - IFLA_BRPORT_MCAST_FLOOD = 27, - IFLA_BRPORT_MCAST_TO_UCAST = 28, - IFLA_BRPORT_VLAN_TUNNEL = 29, - IFLA_BRPORT_BCAST_FLOOD = 30, - IFLA_BRPORT_GROUP_FWD_MASK = 31, - IFLA_BRPORT_NEIGH_SUPPRESS = 32, - IFLA_BRPORT_ISOLATED = 33, - IFLA_BRPORT_BACKUP_PORT = 34, - IFLA_BRPORT_MRP_RING_OPEN = 35, - IFLA_BRPORT_MRP_IN_OPEN = 36, - IFLA_BRPORT_MCAST_EHT_HOSTS_LIMIT = 37, - IFLA_BRPORT_MCAST_EHT_HOSTS_CNT = 38, - IFLA_BRPORT_LOCKED = 39, - IFLA_BRPORT_MAB = 40, - IFLA_BRPORT_MCAST_N_GROUPS = 41, - IFLA_BRPORT_MCAST_MAX_GROUPS = 42, - IFLA_BRPORT_NEIGH_VLAN_SUPPRESS = 43, - __IFLA_BRPORT_MAX = 44, +struct dvd_lu_send_asf { + __u8 type; + unsigned int agid: 2; + unsigned int asf: 1; }; -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, +struct dvd_host_send_rpcstate { + __u8 type; + __u8 pdrc; }; -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, +struct dvd_lu_send_rpcstate { + __u8 type: 2; + __u8 vra: 3; + __u8 ucca: 3; + __u8 region_mask; + __u8 rpc_scheme; }; -enum rtnl_kinds { - RTNL_KIND_NEW = 0, - RTNL_KIND_DEL = 1, - RTNL_KIND_GET = 2, - RTNL_KIND_SET = 3, +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; }; -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, +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; }; -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, +struct cdrom_slot { + __u8 change: 1; + __u8 reserved1: 6; + __u8 disc_present: 1; + __u8 reserved2[3]; }; -enum { - IFLA_VF_INFO_UNSPEC = 0, - IFLA_VF_INFO = 1, - __IFLA_VF_INFO_MAX = 2, +struct cdrom_changer_info { + struct cdrom_mechstat_header hdr; + struct cdrom_slot slots[256]; }; -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, +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; }; -enum { - IFLA_VF_VLAN_INFO_UNSPEC = 0, - IFLA_VF_VLAN_INFO = 1, - __IFLA_VF_VLAN_INFO_MAX = 2, +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; }; -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, +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; }; -enum { - IFLA_VF_PORT_UNSPEC = 0, - IFLA_VF_PORT = 1, - __IFLA_VF_PORT_MAX = 2, +struct dvd_physical { + __u8 type; + __u8 layer_num; + struct dvd_layer layer[4]; }; -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, +struct dvd_copyright { + __u8 type; + __u8 layer_num; + __u8 cpst; + __u8 rmi; }; -enum { - XDP_ATTACHED_NONE = 0, - XDP_ATTACHED_DRV = 1, - XDP_ATTACHED_SKB = 2, - XDP_ATTACHED_HW = 3, - XDP_ATTACHED_MULTI = 4, +struct dvd_disckey { + __u8 type; + unsigned int agid: 2; + __u8 value[2048]; }; -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, +struct dvd_bca { + __u8 type; + int len; + __u8 value[188]; }; -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, +struct dvd_manufact { + __u8 type; + __u8 layer_num; + int len; + __u8 value[2048]; }; -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, +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 urb_priv___2 { + struct ed *ed; + u16 length; + u16 td_cnt; + struct list_head pending; + struct td *td[0]; }; -enum { - IFLA_STATS_GETSET_UNSPEC = 0, - IFLA_STATS_GET_FILTERS = 1, - IFLA_STATS_SET_OFFLOAD_XSTATS_L3_STATS = 2, - __IFLA_STATS_GETSET_MAX = 3, -}; +typedef struct urb_priv___2 urb_priv_t; -enum { - MDBA_SET_ENTRY_UNSPEC = 0, - MDBA_SET_ENTRY = 1, - MDBA_SET_ENTRY_ATTRS = 2, - __MDBA_SET_ENTRY_MAX = 3, +struct debug_buffer { + ssize_t (*fill_func)(struct debug_buffer *); + struct ohci_hcd *ohci; + struct mutex mutex; + size_t count; + char *page; }; -struct rtnl_offload_xstats_request_used { - bool request; - bool used; +struct mc146818_get_time_callback_param { + struct rtc_time *time; + unsigned char ctrl; + unsigned char century; }; -struct rtnl_newlink_tbs { - struct nlattr *tb[65]; - struct nlattr *attr[51]; - struct nlattr *slave_attr[44]; +struct i2c_devinfo { + struct list_head list; + int busnum; + struct i2c_board_info board_info; }; -struct if_stats_msg { - __u8 family; - __u8 pad1; - __u16 pad2; - __u32 ifindex; - __u32 filter_mask; +struct led_lookup_data { + struct list_head list; + const char *provider; + const char *dev_id; + const char *con_id; }; -struct br_port_msg { - __u8 family; - __u32 ifindex; +struct hid_bpf_prog_entry { + struct bpf_prog *prog; + struct hid_device *hdev; + enum hid_bpf_prog_type type; + u16 idx; }; -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 hid_bpf_jmp_table { + struct bpf_map *map; + struct hid_bpf_prog_entry entries[1024]; + int tail; + int head; + struct bpf_prog *progs[1024]; + unsigned long enabled[16]; }; -struct ifla_vf_mac { - __u32 vf; - __u8 mac[32]; +struct bpf_map_desc { + int map_fd; + __u32 max_entries; + __u64 initial_value; }; -struct ifla_vf_vlan { - __u32 vf; - __u32 vlan; - __u32 qos; +struct bpf_prog_desc { + int prog_fd; }; -struct ifla_vf_vlan_info { - __u32 vf; - __u32 vlan; - __u32 qos; - __be16 vlan_proto; +struct bpf_loader_ctx { + __u32 sz; + __u32 flags; + __u32 log_level; + __u32 log_size; + __u64 log_buf; }; -struct ifla_vf_tx_rate { - __u32 vf; - __u32 rate; +struct entrypoints_bpf { + struct bpf_loader_ctx ctx; + struct { + struct bpf_map_desc hid_jmp_table; + } maps; + struct { + struct bpf_prog_desc hid_tail_call; + } progs; + struct { + int hid_tail_call_fd; + } links; }; -struct ifla_vf_rate { - __u32 vf; - __u32 min_tx_rate; - __u32 max_tx_rate; +enum { + BPF_SKEL_KERNEL = 1, }; -struct ifla_vf_spoofchk { - __u32 vf; - __u32 setting; +struct hid_bpf_link { + struct bpf_link link; + int hid_table_index; }; -struct ifla_vf_link_state { - __u32 vf; - __u32 link_state; +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 ifla_vf_rss_query_en { - __u32 vf; - __u32 setting; +struct bmof_priv { + union acpi_object *bmofdata; + struct bin_attribute bmof_bin_attr; }; -struct ifla_vf_trust { - __u32 vf; - __u32 setting; +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 rtnl_stats_dump_filters { - u32 mask[6]; +struct fib_notifier_net { + struct list_head fib_notifier_ops; + struct atomic_notifier_head fib_chain; }; -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; +enum { + TCA_CGROUP_UNSPEC = 0, + TCA_CGROUP_ACT = 1, + TCA_CGROUP_POLICE = 2, + TCA_CGROUP_EMATCHES = 3, + __TCA_CGROUP_MAX = 4, }; -struct rtnl_mdb_dump_ctx { - long idx; +struct cls_cgroup_head { + u32 handle; + struct tcf_exts exts; + struct tcf_ematch_tree ematches; + struct tcf_proto *tp; + struct rcu_work rwork; }; -struct rtnl_link_ifmap { - __u64 mem_start; - __u64 mem_end; - __u64 base_addr; - __u16 irq; - __u8 dma; - __u8 port; +enum ethtool_fec_config_bits { + ETHTOOL_FEC_NONE_BIT = 0, + ETHTOOL_FEC_AUTO_BIT = 1, + ETHTOOL_FEC_OFF_BIT = 2, + ETHTOOL_FEC_RS_BIT = 3, + ETHTOOL_FEC_BASER_BIT = 4, + ETHTOOL_FEC_LLRS_BIT = 5, }; -struct ifla_vf_broadcast { - __u8 broadcast[32]; +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, }; -struct br_mdb_entry { - __u32 ifindex; - __u8 state; - __u8 flags; - __u16 vid; - struct { - union { - __be32 ip4; - struct in6_addr ip6; - unsigned char mac_addr[6]; - } u; - __be16 proto; - } addr; +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, }; -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 fec_stat_grp { + u64 stats[9]; + u8 cnt; }; -struct wol_reply_data { +struct fec_reply_data { struct ethnl_reply_data base; - struct ethtool_wolinfo wol; - bool show_sopass; + 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 nf_ct_sysctl_index { - NF_SYSCTL_CT_MAX = 0, - NF_SYSCTL_CT_COUNT = 1, - NF_SYSCTL_CT_BUCKETS = 2, - NF_SYSCTL_CT_CHECKSUM = 3, - NF_SYSCTL_CT_LOG_INVALID = 4, - NF_SYSCTL_CT_EXPECT_MAX = 5, - NF_SYSCTL_CT_ACCT = 6, - NF_SYSCTL_CT_PROTO_TIMEOUT_GENERIC = 7, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_SENT = 8, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_SYN_RECV = 9, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_ESTABLISHED = 10, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_FIN_WAIT = 11, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE_WAIT = 12, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_LAST_ACK = 13, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_TIME_WAIT = 14, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_CLOSE = 15, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_RETRANS = 16, - NF_SYSCTL_CT_PROTO_TIMEOUT_TCP_UNACK = 17, - NF_SYSCTL_CT_PROTO_TCP_LOOSE = 18, - NF_SYSCTL_CT_PROTO_TCP_LIBERAL = 19, - NF_SYSCTL_CT_PROTO_TCP_IGNORE_INVALID_RST = 20, - NF_SYSCTL_CT_PROTO_TCP_MAX_RETRANS = 21, - NF_SYSCTL_CT_PROTO_TIMEOUT_UDP = 22, - NF_SYSCTL_CT_PROTO_TIMEOUT_UDP_STREAM = 23, - NF_SYSCTL_CT_PROTO_TIMEOUT_ICMP = 24, - NF_SYSCTL_CT_PROTO_TIMEOUT_ICMPV6 = 25, - NF_SYSCTL_CT_LWTUNNEL = 26, - __NF_SYSCTL_CT_LAST_SYSCTL = 27, +struct nf_ct_bridge_info { + struct nf_hook_ops *ops; + unsigned int ops_size; + struct module *me; }; -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 xfrm_trans_tasklet { + struct work_struct work; + spinlock_t queue_lock; + struct sk_buff_head queue; }; -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 __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 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 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 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 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 arpreq { - struct sockaddr arp_pa; - struct sockaddr arp_ha; - int arp_flags; - struct sockaddr arp_netmask; - char arp_dev[16]; +enum { + LWTUNNEL_XMIT_DONE = 0, + LWTUNNEL_XMIT_CONTINUE = 256, }; -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 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 ipt_reject_info { - enum ipt_reject_with with; +struct ip6_fraglist_iter { + struct ipv6hdr *tmp_hdr; + struct sk_buff *frag; + int offset; + unsigned int hlen; + __be32 frag_id; + u8 nexthdr; }; -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 struct rpc_create_args *); - -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 *); +struct br_input_skb_cb { + struct net_device *brdev; + u16 frag_max_size; + u8 proxyarp_replied: 1; + u8 src_port_isolated: 1; + u32 backup_nhid; +}; -typedef void (*btf_trace_rpc_task_timeout)(void *, const struct rpc_task *, const void *); +struct nf_bridge_frag_data; -typedef void (*btf_trace_rpc_task_signalled)(void *, const struct rpc_task *, const void *); +enum rpc_msg_type { + RPC_CALL = 0, + RPC_REPLY = 1, +}; -typedef void (*btf_trace_rpc_task_end)(void *, const struct rpc_task *, const void *); +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; +}; -typedef void (*btf_trace_rpc_task_call_done)(void *, const struct rpc_task *, const void *); +struct decryptor_desc { + u8 iv[16]; + struct skcipher_request *req; + struct scatterlist frags[4]; + int fragno; + int fraglen; +}; -typedef void (*btf_trace_rpc_task_sleep)(void *, const struct rpc_task *, const struct rpc_wait_queue *); +struct cfg80211_per_bw_puncturing_values { + u8 len; + const u16 *valid_values; +}; -typedef void (*btf_trace_rpc_task_wakeup)(void *, const struct rpc_task *, const struct rpc_wait_queue *); +struct mcs_group { + u16 flags; + u8 streams; + u8 shift; + u8 bw; + u16 duration[10]; +}; -typedef void (*btf_trace_rpc_bad_callhdr)(void *, const struct rpc_task *); +enum minstrel_sample_type { + MINSTREL_SAMPLE_TYPE_INC = 0, + MINSTREL_SAMPLE_TYPE_JUMP = 1, + MINSTREL_SAMPLE_TYPE_SLOW = 2, + __MINSTREL_SAMPLE_TYPE_MAX = 3, +}; -typedef void (*btf_trace_rpc_bad_verifier)(void *, const struct rpc_task *); +struct minstrel_sample_category { + u8 sample_group; + u16 sample_rates[5]; + u16 cur_sample_rates[5]; +}; -typedef void (*btf_trace_rpc__prog_unavail)(void *, const struct rpc_task *); +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; +}; -typedef void (*btf_trace_rpc__prog_mismatch)(void *, const struct rpc_task *); +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]; +}; -typedef void (*btf_trace_rpc__proc_unavail)(void *, const struct rpc_task *); +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]; +}; -typedef void (*btf_trace_rpc__garbage_args)(void *, const struct rpc_task *); +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]; +}; -typedef void (*btf_trace_rpc__unparsable)(void *, const struct rpc_task *); +enum { + X86_PERF_KFREE_SHARED = 0, + X86_PERF_KFREE_EXCL = 1, + X86_PERF_KFREE_MAX = 2, +}; -typedef void (*btf_trace_rpc__mismatch)(void *, const struct rpc_task *); +struct stack_frame { + struct stack_frame *next_frame; + unsigned long return_address; +}; -typedef void (*btf_trace_rpc__stale_creds)(void *, const struct rpc_task *); +struct sched_state { + int weight; + int event; + int counter; + int unassigned; + int nr_gp; + u64 used; +}; -typedef void (*btf_trace_rpc__bad_creds)(void *, const struct rpc_task *); +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]; +}; -typedef void (*btf_trace_rpc__auth_tooweak)(void *, const struct rpc_task *); +struct stack_frame_ia32 { + u32 next_frame; + u32 return_address; +}; -typedef void (*btf_trace_rpcb_prog_unavail_err)(void *, const struct rpc_task *); +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; +}; -typedef void (*btf_trace_rpcb_timeout_err)(void *, const struct rpc_task *); +enum apic_intr_mode_id { + APIC_PIC = 0, + APIC_VIRTUAL_WIRE = 1, + APIC_VIRTUAL_WIRE_NO_CONFIG = 2, + APIC_SYMMETRIC_IO = 3, + APIC_SYMMETRIC_IO_NO_ROUTING = 4, +}; -typedef void (*btf_trace_rpcb_bind_version_err)(void *, const struct rpc_task *); +union apic_ir { + unsigned long map[4]; + u32 regs[8]; +}; -typedef void (*btf_trace_rpcb_unreachable_err)(void *, const struct rpc_task *); +struct kaslr_memory_region { + unsigned long *base; + unsigned long size_tb; +}; -typedef void (*btf_trace_rpcb_unrecognized_err)(void *, const struct rpc_task *); +enum pti_mode { + PTI_AUTO = 0, + PTI_FORCE_OFF = 1, + PTI_FORCE_ON = 2, +}; -typedef void (*btf_trace_rpc_buf_alloc)(void *, const struct rpc_task *, int); +enum pti_clone_level { + PTI_CLONE_PMD = 0, + PTI_CLONE_PTE = 1, +}; -typedef void (*btf_trace_rpc_call_rpcerror)(void *, const struct rpc_task *, int, int); +typedef void (*btf_trace_task_newtask)(void *, struct task_struct *, unsigned long); -typedef void (*btf_trace_rpc_stats_latency)(void *, const struct rpc_task *, ktime_t, ktime_t, ktime_t); +typedef void (*btf_trace_task_rename)(void *, struct task_struct *, const char *); -typedef void (*btf_trace_rpc_xdr_overflow)(void *, const struct xdr_stream *, size_t); +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]; +}; -typedef void (*btf_trace_rpc_xdr_alignment)(void *, const struct xdr_stream *, size_t, unsigned int); +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]; +}; -typedef void (*btf_trace_rpc_socket_state_change)(void *, struct rpc_xprt *, struct socket *); +struct vm_stack { + struct callback_head rcu; + struct vm_struct *stack_vm_area; +}; -typedef void (*btf_trace_rpc_socket_connect)(void *, struct rpc_xprt *, struct socket *, int); +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; +}; -typedef void (*btf_trace_rpc_socket_error)(void *, struct rpc_xprt *, struct socket *, int); +struct trace_event_data_offsets_task_newtask {}; -typedef void (*btf_trace_rpc_socket_reset_connection)(void *, struct rpc_xprt *, struct socket *, int); +struct trace_event_data_offsets_task_rename {}; -typedef void (*btf_trace_rpc_socket_close)(void *, struct rpc_xprt *, struct socket *); +struct ptrace_sud_config { + __u64 mode; + __u64 selector; + __u64 offset; + __u64 len; +}; -typedef void (*btf_trace_rpc_socket_shutdown)(void *, struct rpc_xprt *, struct socket *); +typedef __kernel_long_t __kernel_suseconds_t; -typedef void (*btf_trace_rpc_socket_nospace)(void *, const struct rpc_rqst *, const struct sock_xprt *); +typedef __kernel_suseconds_t suseconds_t; -typedef void (*btf_trace_xprt_create)(void *, const struct rpc_xprt *); +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 void (*btf_trace_xprt_connect)(void *, const struct rpc_xprt *); +typedef __u16 comp_t; -typedef void (*btf_trace_xprt_disconnect_auto)(void *, const struct rpc_xprt *); +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 void (*btf_trace_xprt_disconnect_done)(void *, const struct rpc_xprt *); +typedef struct acct acct_t; -typedef void (*btf_trace_xprt_disconnect_force)(void *, const struct rpc_xprt *); +typedef __u32 comp2_t; -typedef void (*btf_trace_xprt_destroy)(void *, const struct rpc_xprt *); +struct action_cache { + unsigned long allow_native[8]; + unsigned long allow_compat[8]; +}; -typedef void (*btf_trace_xprt_timer)(void *, const struct rpc_xprt *, __be32, int); +struct notification; -typedef void (*btf_trace_xprt_lookup_rqst)(void *, const struct rpc_xprt *, __be32, int); +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; +}; -typedef void (*btf_trace_xprt_transmit)(void *, const struct rpc_rqst *, int); +struct notification { + atomic_t requests; + u32 flags; + u64 next_id; + struct list_head notifications; +}; -typedef void (*btf_trace_xprt_retransmit)(void *, const struct rpc_rqst *); +struct seccomp_log_name { + u32 log; + const char *name; +}; -typedef void (*btf_trace_xprt_ping)(void *, const struct rpc_xprt *, int); +enum notify_state { + SECCOMP_NOTIFY_INIT = 0, + SECCOMP_NOTIFY_SENT = 1, + SECCOMP_NOTIFY_REPLIED = 2, +}; -typedef void (*btf_trace_xprt_reserve_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); +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; +}; -typedef void (*btf_trace_xprt_release_xprt)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct seccomp_data; -typedef void (*btf_trace_xprt_reserve_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +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; +}; -typedef void (*btf_trace_xprt_release_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct seccomp_data { + int nr; + __u32 arch; + __u64 instruction_pointer; + __u64 args[6]; +}; -typedef void (*btf_trace_xprt_get_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct sock_fprog { + unsigned short len; + struct sock_filter __attribute__((btf_type_tag("user"))) *filter; +}; -typedef void (*btf_trace_xprt_put_cong)(void *, const struct rpc_xprt *, const struct rpc_task *); +struct compat_sock_fprog { + u16 len; + compat_uptr_t filter; +}; -typedef void (*btf_trace_xprt_reserve)(void *, const struct rpc_rqst *); +struct seccomp_notif_sizes { + __u16 seccomp_notif; + __u16 seccomp_notif_resp; + __u16 seccomp_data; +}; -typedef void (*btf_trace_xs_data_ready)(void *, const struct rpc_xprt *); +typedef int (*bpf_aux_classic_check_t)(struct sock_filter *, unsigned int); -typedef void (*btf_trace_xs_stream_read_data)(void *, struct rpc_xprt *, ssize_t, size_t); +struct seccomp_notif { + __u64 id; + __u32 pid; + __u32 flags; + struct seccomp_data data; +}; -typedef void (*btf_trace_xs_stream_read_request)(void *, struct sock_xprt *); +struct seccomp_notif_resp { + __u64 id; + __s64 val; + __s32 error; + __u32 flags; +}; -typedef void (*btf_trace_rpcb_getport)(void *, const struct rpc_clnt *, const struct rpc_task *, unsigned int); +struct seccomp_notif_addfd { + __u64 id; + __u32 flags; + __u32 srcfd; + __u32 newfd; + __u32 newfd_flags; +}; -typedef void (*btf_trace_rpcb_setport)(void *, const struct rpc_task *, int, unsigned short); +struct bpf_empty_prog_array { + struct bpf_prog_array hdr; + struct bpf_prog *null_prog; +}; -typedef void (*btf_trace_pmap_register)(void *, u32, u32, int, unsigned short); +typedef void (*btf_trace_xdp_exception)(void *, const struct net_device *, const struct bpf_prog *, u32); -typedef void (*btf_trace_rpcb_register)(void *, u32, u32, const char *, const char *); +typedef void (*btf_trace_xdp_bulk_tx)(void *, const struct net_device *, int, int, int); -typedef void (*btf_trace_rpcb_unregister)(void *, u32, u32, const char *); +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_rpc_tls_unavailable)(void *, const struct rpc_clnt *, const struct rpc_xprt *); +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_rpc_tls_not_started)(void *, const struct rpc_clnt *, const struct rpc_xprt *); +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_svc_xdr_recvfrom)(void *, const struct xdr_buf *); +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_svc_xdr_sendto)(void *, __be32, const struct xdr_buf *); +struct xdp_cpumap_stats; -typedef void (*btf_trace_svc_authenticate)(void *, const struct svc_rqst *, int); +typedef void (*btf_trace_xdp_cpumap_kthread)(void *, int, unsigned int, unsigned int, int, struct xdp_cpumap_stats *); -typedef void (*btf_trace_svc_process)(void *, const struct svc_rqst *, const char *); +struct xdp_cpumap_stats { + unsigned int redirect; + unsigned int pass; + unsigned int drop; +}; -typedef void (*btf_trace_svc_defer)(void *, const struct svc_rqst *); +typedef void (*btf_trace_xdp_cpumap_enqueue)(void *, int, unsigned int, unsigned int, int); -typedef void (*btf_trace_svc_drop)(void *, const struct svc_rqst *); +typedef void (*btf_trace_xdp_devmap_xmit)(void *, const struct net_device *, const struct net_device *, int, int, int); -typedef void (*btf_trace_svc_send)(void *, const struct svc_rqst *, int); +typedef void (*btf_trace_mem_disconnect)(void *, const struct xdp_mem_allocator *); -typedef void (*btf_trace_svc_replace_page_err)(void *, const struct svc_rqst *); +typedef void (*btf_trace_mem_connect)(void *, const struct xdp_mem_allocator *, const struct xdp_rxq_info *); -typedef void (*btf_trace_svc_stats_latency)(void *, const struct svc_rqst *); +typedef void (*btf_trace_mem_return_failed)(void *, const struct xdp_mem_info *, const struct page *); -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_bpf_xdp_link_attach_failed)(void *, const char *); -typedef void (*btf_trace_svc_xprt_enqueue)(void *, const struct svc_xprt *, const struct svc_rqst *); +struct bpf_prog_dummy { + struct bpf_prog prog; +}; -typedef void (*btf_trace_svc_xprt_dequeue)(void *, const struct svc_rqst *); +enum bpf_text_poke_type { + BPF_MOD_CALL = 0, + BPF_MOD_JUMP = 1, +}; -typedef void (*btf_trace_svc_xprt_no_write_space)(void *, const struct svc_xprt *); +typedef u64 (*btf_bpf_user_rnd_u32)(); -typedef void (*btf_trace_svc_xprt_close)(void *, const struct svc_xprt *); +typedef u64 (*btf_bpf_get_raw_cpu_id)(); -typedef void (*btf_trace_svc_xprt_detach)(void *, const struct svc_xprt *); +struct trace_event_raw_xdp_exception { + struct trace_entry ent; + int prog_id; + u32 act; + int ifindex; + char __data[0]; +}; -typedef void (*btf_trace_svc_xprt_free)(void *, const struct svc_xprt *); +struct trace_event_raw_xdp_bulk_tx { + struct trace_entry ent; + int ifindex; + u32 act; + int drops; + int sent; + int err; + char __data[0]; +}; -typedef void (*btf_trace_svc_tls_start)(void *, const struct svc_xprt *); +struct _bpf_dtab_netdev { + struct net_device *dev; +}; -typedef void (*btf_trace_svc_tls_upcall)(void *, const struct svc_xprt *); +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]; +}; -typedef void (*btf_trace_svc_tls_unavailable)(void *, const struct svc_xprt *); +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]; +}; -typedef void (*btf_trace_svc_tls_not_started)(void *, const struct svc_xprt *); +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]; +}; -typedef void (*btf_trace_svc_tls_timed_out)(void *, const struct svc_xprt *); +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]; +}; -typedef void (*btf_trace_svc_xprt_accept)(void *, const struct svc_xprt *, const char *); +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]; +}; -typedef void (*btf_trace_svc_wake_up)(void *, int); +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]; +}; -typedef void (*btf_trace_svc_alloc_arg_err)(void *, unsigned int, unsigned int); +struct trace_event_raw_mem_return_failed { + struct trace_entry ent; + const struct page *page; + u32 mem_id; + u32 mem_type; + char __data[0]; +}; -typedef void (*btf_trace_svc_defer_drop)(void *, const struct svc_deferred_req *); +struct trace_event_raw_bpf_xdp_link_attach_failed { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; -typedef void (*btf_trace_svc_defer_queue)(void *, const struct svc_deferred_req *); +struct trace_event_data_offsets_bpf_xdp_link_attach_failed { + u32 msg; +}; -typedef void (*btf_trace_svc_defer_recv)(void *, const struct svc_deferred_req *); +struct trace_event_data_offsets_xdp_exception {}; -typedef void (*btf_trace_svcsock_new)(void *, const void *, const struct socket *); +struct trace_event_data_offsets_xdp_bulk_tx {}; -typedef void (*btf_trace_svcsock_free)(void *, const void *, const struct socket *); +struct trace_event_data_offsets_xdp_redirect_template {}; -typedef void (*btf_trace_svcsock_marker)(void *, const struct svc_xprt *, __be32); +struct trace_event_data_offsets_xdp_cpumap_kthread {}; -typedef void (*btf_trace_svcsock_udp_send)(void *, const struct svc_xprt *, ssize_t); +struct trace_event_data_offsets_xdp_cpumap_enqueue {}; -typedef void (*btf_trace_svcsock_udp_recv)(void *, const struct svc_xprt *, ssize_t); +struct trace_event_data_offsets_xdp_devmap_xmit {}; -typedef void (*btf_trace_svcsock_udp_recv_err)(void *, const struct svc_xprt *, ssize_t); +struct trace_event_data_offsets_mem_disconnect {}; -typedef void (*btf_trace_svcsock_tcp_send)(void *, const struct svc_xprt *, ssize_t); +struct trace_event_data_offsets_mem_connect {}; -typedef void (*btf_trace_svcsock_tcp_recv)(void *, const struct svc_xprt *, ssize_t); +struct trace_event_data_offsets_mem_return_failed {}; -typedef void (*btf_trace_svcsock_tcp_recv_eagain)(void *, const struct svc_xprt *, ssize_t); +enum { + BPF_F_SYSCTL_BASE_NAME = 1, +}; -typedef void (*btf_trace_svcsock_tcp_recv_err)(void *, const struct svc_xprt *, ssize_t); +typedef u64 (*btf_bpf_get_local_storage)(struct bpf_map *, u64); -typedef void (*btf_trace_svcsock_data_ready)(void *, const struct svc_xprt *, ssize_t); +typedef u64 (*btf_bpf_get_retval)(); -typedef void (*btf_trace_svcsock_write_space)(void *, const struct svc_xprt *, ssize_t); +typedef u64 (*btf_bpf_set_retval)(int); -typedef void (*btf_trace_svcsock_tcp_recv_short)(void *, const struct svc_xprt *, u32, u32); +typedef u64 (*btf_bpf_sysctl_get_name)(struct bpf_sysctl_kern *, char *, size_t, u64); -typedef void (*btf_trace_svcsock_tcp_state)(void *, const struct svc_xprt *, const struct socket *); +typedef u64 (*btf_bpf_sysctl_get_current_value)(struct bpf_sysctl_kern *, char *, size_t); -typedef void (*btf_trace_svcsock_accept_err)(void *, const struct svc_xprt *, const char *, long); +typedef u64 (*btf_bpf_sysctl_get_new_value)(struct bpf_sysctl_kern *, char *, size_t); -typedef void (*btf_trace_svcsock_getpeername_err)(void *, const struct svc_xprt *, const char *, long); +typedef u64 (*btf_bpf_sysctl_set_new_value)(struct bpf_sysctl_kern *, const char *, size_t); -typedef void (*btf_trace_cache_entry_expired)(void *, const struct cache_detail *, const struct cache_head *); +typedef u64 (*btf_bpf_get_netns_cookie_sockopt)(struct bpf_sockopt_kern *); -typedef void (*btf_trace_cache_entry_upcall)(void *, const struct cache_detail *, const struct cache_head *); +struct bpf_cgroup_link; -typedef void (*btf_trace_cache_entry_update)(void *, const struct cache_detail *, const struct cache_head *); +struct bpf_prog_list { + struct hlist_node node; + struct bpf_prog *prog; + struct bpf_cgroup_link *link; + struct bpf_cgroup_storage *storage[2]; +}; -typedef void (*btf_trace_cache_entry_make_negative)(void *, const struct cache_detail *, const struct cache_head *); +struct bpf_cgroup_link { + struct bpf_link link; + struct cgroup *cgroup; + enum bpf_attach_type type; +}; -typedef void (*btf_trace_cache_entry_no_listener)(void *, const struct cache_detail *, const struct cache_head *); +struct bpf_sockopt_buf { + u8 data[32]; +}; -typedef void (*btf_trace_svc_register)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); +struct inotify_event_info { + struct fsnotify_event fse; + u32 mask; + int wd; + u32 sync_cookie; + int name_len; + char name[0]; +}; -typedef void (*btf_trace_svc_noregister)(void *, const char *, const u32, const int, const unsigned short, const unsigned short, int); +struct nfsacl_encode_desc { + struct xdr_array2_desc desc; + unsigned int count; + struct posix_acl *acl; + int typeflag; + kuid_t uid; + kgid_t gid; +}; -typedef void (*btf_trace_svc_unregister)(void *, const char *, const u32, int); +struct nfsacl_decode_desc { + struct xdr_array2_desc desc; + unsigned int count; + struct posix_acl *acl; +}; -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 nfsacl_simple_acl { + struct posix_acl acl; + struct posix_acl_entry ace[4]; }; -struct trace_event_raw_rpc_clnt_class { - struct trace_entry ent; - unsigned int client_id; - char __data[0]; +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 trace_event_raw_rpc_clnt_new { - struct trace_entry ent; - unsigned int client_id; - unsigned long xprtsec; - unsigned long flags; - u32 __data_loc_program; - u32 __data_loc_server; - u32 __data_loc_addr; - u32 __data_loc_port; - char __data[0]; +struct limit_names { + const char *name; + const char *unit; }; -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 map_files_info { + unsigned long start; + unsigned long end; + fmode_t mode; }; -struct trace_event_raw_rpc_clnt_clone_err { - struct trace_entry ent; - unsigned int client_id; - int error; - char __data[0]; +struct syscall_info { + __u64 sp; + struct seccomp_data data; }; -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 tgid_iter { + unsigned int tgid; + struct task_struct *task; }; -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]; +enum SHIFT_DIRECTION { + SHIFT_LEFT = 0, + SHIFT_RIGHT = 1, }; -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 ext4_extent_tail { + __le32 et_checksum; }; -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]; +enum nfs_ftype { + NFNON = 0, + NFREG = 1, + NFDIR = 2, + NFBLK = 3, + NFCHR = 4, + NFLNK = 5, + NFSOCK = 6, + NFBAD = 7, + NFFIFO = 8, }; -struct trace_event_raw_rpc_failure { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - char __data[0]; +enum nfs2_ftype { + NF2NON = 0, + NF2REG = 1, + NF2DIR = 2, + NF2BLK = 3, + NF2CHR = 4, + NF2LNK = 5, + NF2SOCK = 6, + NF2BAD = 7, + NF2FIFO = 8, }; -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 nfs_diropok { + struct nfs_fh *fh; + struct nfs_fattr *fattr; }; -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 nfs_readdirargs { + struct nfs_fh *fh; + __u32 cookie; + unsigned int count; + struct page **pages; }; -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 nfs2_fsstat { + __u32 tsize; + __u32 bsize; + __u32 blocks; + __u32 bfree; + __u32 bavail; }; -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 nfs_sattrargs { + struct nfs_fh *fh; + struct iattr *sattr; }; -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; +struct nfs_diropargs { + struct nfs_fh *fh; + const char *name; 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 nfs_readlinkargs { + struct nfs_fh *fh; + unsigned int pgbase; + unsigned int pglen; + struct page **pages; }; -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 nfs_createargs { + struct nfs_fh *fh; + const char *name; + unsigned int len; + struct iattr *sattr; }; -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 nfs_linkargs { + struct nfs_fh *fromfh; + struct nfs_fh *tofh; + const char *toname; + unsigned int tolen; }; -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 nfs_symlinkargs { + struct nfs_fh *fromfh; + const char *fromname; + unsigned int fromlen; + struct page **pages; + unsigned int pathlen; + struct iattr *sattr; }; -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 compat_ipc_kludge { + compat_uptr_t msgp; + compat_long_t msgtyp; }; -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 crypto_queue { + struct list_head list; + struct list_head *backlog; + unsigned int qlen; + unsigned int max_qlen; }; -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 authenc_esn_instance_ctx { + struct crypto_ahash_spawn auth; + struct crypto_skcipher_spawn enc; }; -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 crypto_authenc_esn_ctx { + unsigned int reqoff; + struct crypto_ahash *auth; + struct crypto_skcipher *enc; + struct crypto_sync_skcipher *null; }; -struct trace_event_raw_xprt_ping { - struct trace_entry ent; - int status; - u32 __data_loc_addr; - u32 __data_loc_port; - char __data[0]; +struct authenc_esn_request_ctx { + struct scatterlist src[2]; + struct scatterlist dst[2]; + char tail[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]; +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 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 msdos_partition { + u8 boot_ind; + u8 head; + u8 sector; + u8 cyl; + u8 sys_ind; + u8 end_head; + u8 end_sector; + u8 end_cyl; + __le32 start_sect; + __le32 nr_sects; }; -struct trace_event_raw_xprt_reserve { - struct trace_entry ent; - unsigned int task_id; - unsigned int client_id; - u32 xid; - char __data[0]; +struct show_busy_params { + struct seq_file *m; + struct blk_mq_hw_ctx *hctx; }; -struct trace_event_raw_xs_data_ready { - struct trace_entry ent; - u32 __data_loc_addr; - u32 __data_loc_port; - char __data[0]; +struct io_timeout { + struct file *file; + u32 off; + u32 target_seq; + u32 repeats; + struct list_head list; + struct io_kiocb *head; + struct io_kiocb *prev; }; -struct 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 io_timeout_rem { + struct file *file; + u64 addr; + struct timespec64 ts; + u32 flags; + bool ltimeout; }; -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 io_timeout_data { + struct io_kiocb *req; + struct hrtimer timer; + struct timespec64 ts; + enum hrtimer_mode mode; + u32 flags; }; -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]; +enum { + IOU_PBUF_RING_MMAP = 1, }; -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 io_provide_buf { + struct file *file; + __u64 addr; + __u32 len; + __u32 bgid; + __u32 nbufs; + __u16 bid; }; -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 io_buf_free { + struct hlist_node list; + void *mem; + size_t size; + int inuse; }; -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 io_uring_buf_reg { + __u64 ring_addr; + __u32 ring_entries; + __u16 bgid; + __u16 flags; + __u64 resv[3]; }; -struct trace_event_raw_rpcb_unregister { - struct trace_entry ent; - unsigned int program; - unsigned int version; - u32 __data_loc_netid; - char __data[0]; +typedef long mpi_limb_signed_t; + +typedef struct tree_desc_s tree_desc; + +typedef ZSTD_ErrorCode ERR_enum; + +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 trace_event_raw_rpc_tls_class { - struct trace_entry ent; - unsigned long requested_policy; - u32 version; - u32 __data_loc_servername; - u32 __data_loc_progname; - char __data[0]; +enum xz_mode { + XZ_SINGLE = 0, + XZ_PREALLOC = 1, + XZ_DYNALLOC = 2, }; -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]; +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, }; -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]; +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 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 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 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 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 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 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 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 lzma_len_dec { + uint16_t choice; + uint16_t choice2; + uint16_t low[128]; + uint16_t mid[128]; + uint16_t high[256]; }; -struct trace_event_raw_svc_replace_page_err { - struct trace_entry ent; - u32 __data_loc_server; - u32 __data_loc_client; - unsigned int netns_ino; - u32 xid; - const void *begin; - const void *respages; - const void *nextpage; - char __data[0]; +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 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 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 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 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 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 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 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 event_counter { + u32 count; + u32 flags; }; -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 acpi_data_attr; + +struct acpi_data_obj { + char *name; + int (*fn)(void *, struct acpi_data_attr *); }; -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 acpi_data_attr { + struct bin_attribute attr; + u64 addr; }; -struct trace_event_raw_svc_wake_up { - struct trace_entry ent; - int pid; - char __data[0]; +struct acpi_table_attr { + struct bin_attribute attr; + char name[4]; + int instance; + char filename[8]; + struct list_head node; }; -struct trace_event_raw_svc_alloc_arg_err { - struct trace_entry ent; - unsigned int requested; - unsigned int allocated; - char __data[0]; +struct acpi_table_bert { + struct acpi_table_header header; + u32 region_length; + u64 address; }; -struct trace_event_raw_svc_deferred_event { - struct trace_entry ent; - const void *dr; - u32 xid; - u32 __data_loc_addr; - char __data[0]; +struct acpi_table_ccel { + struct acpi_table_header header; + u8 CCtype; + u8 Ccsub_type; + u16 reserved; + u64 log_area_minimum_length; + u64 log_area_start_address; }; -struct trace_event_raw_svcsock_lifetime_class { - struct trace_entry ent; - unsigned int netns_ino; - const void *svsk; - const void *sk; - unsigned long type; - unsigned long family; - unsigned long state; - char __data[0]; +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, }; -struct trace_event_raw_svcsock_marker { - struct trace_entry ent; - unsigned int length; - bool last; - u32 __data_loc_addr; - char __data[0]; +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 trace_event_raw_svcsock_class { - struct trace_entry ent; - ssize_t result; - unsigned long flags; - u32 __data_loc_addr; - char __data[0]; +struct dw_lli { + __le32 sar; + __le32 dar; + __le32 llp; + __le32 ctllo; + __le32 ctlhi; + __le32 sstat; + __le32 dstat; }; -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 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 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 sysrq_key_op { + void (* const handler)(u8); + const char * const help_msg; + const char * const action_msg; + const int enable_mask; }; -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 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 trace_event_raw_cache_event { - struct trace_entry ent; - const struct cache_head *h; - u32 __data_loc_name; - char __data[0]; +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, }; -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]; +enum iommu_hw_info_vtd_flags { + IOMMU_HW_INFO_VTD_ERRATA_772415_SPR17 = 1, }; -struct trace_event_raw_svc_unregister { - struct trace_entry ent; - u32 version; - int error; - u32 __data_loc_program; - char __data[0]; +enum iommu_hw_info_type { + IOMMU_HW_INFO_TYPE_NONE = 0, + IOMMU_HW_INFO_TYPE_INTEL_VTD = 1, }; -struct trace_event_data_offsets_rpc_clnt_new { - u32 program; - u32 server; - u32 addr; - u32 port; +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 trace_event_data_offsets_rpc_clnt_new_err { - u32 program; - u32 server; +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 trace_event_data_offsets_rpc_request { - u32 progname; - u32 procname; +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 trace_event_data_offsets_rpc_task_queued { - u32 q_name; +struct dev_pasid_info { + struct list_head link_domain; + struct device *dev; + ioasid_t pasid; }; -struct trace_event_data_offsets_rpc_reply_event { - u32 progname; - u32 procname; - u32 servername; +struct context_entry { + u64 lo; + u64 hi; }; -struct trace_event_data_offsets_rpc_stats_latency { - u32 progname; - u32 procname; +struct domain_context_mapping_data { + struct dmar_domain *domain; + struct intel_iommu *iommu; + struct pasid_table *table; }; -struct trace_event_data_offsets_rpc_xdr_overflow { - u32 progname; - u32 procedure; +struct iommu_hw_info_vtd { + __u32 flags; + __u32 __reserved; + __u64 cap_reg; + __u64 ecap_reg; }; -struct trace_event_data_offsets_rpc_xdr_alignment { - u32 progname; - u32 procedure; +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; }; -struct trace_event_data_offsets_rpc_xprt_lifetime_class { - u32 addr; - u32 port; +struct drm_i915_gem_userptr { + __u64 user_ptr; + __u64 user_size; + __u32 flags; + __u32 handle; }; -struct trace_event_data_offsets_rpc_xprt_event { - u32 addr; - u32 port; +struct dp_aud_n_m { + int sample_rate; + int clock; + u16 m; + u16 n; }; -struct trace_event_data_offsets_xprt_retransmit { - u32 progname; - u32 procname; +struct hdmi_aud_ncts { + int sample_rate; + int clock; + int n; + int cts; }; -struct trace_event_data_offsets_xprt_ping { - u32 addr; - u32 port; +struct aud_ts_cdclk_m_n { + u8 m; + u16 n; }; -struct trace_event_data_offsets_xs_data_ready { - u32 addr; - u32 port; +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 trace_event_data_offsets_xs_stream_read_data { - u32 addr; - u32 port; +enum hdcp_port_type { + HDCP_PORT_TYPE_INVALID = 0, + HDCP_PORT_TYPE_INTEGRATED = 1, + HDCP_PORT_TYPE_LSPCON = 2, + HDCP_PORT_TYPE_CPDP = 3, }; -struct trace_event_data_offsets_xs_stream_read_request { - u32 addr; - u32 port; +struct hdcp2_rep_stream_manage { + u8 msg_id; + u8 seq_num_m[3]; + __be16 k; + struct hdcp2_streamid_type streams[4]; }; -struct trace_event_data_offsets_rpcb_getport { - u32 servername; +struct pxp43_start_huc_auth_in { + struct pxp_cmd_header header; + __le64 huc_base_address; }; -struct trace_event_data_offsets_rpcb_register { - u32 addr; - u32 netid; +struct scsi_host_busy_iter_data { + bool (*fn)(struct scsi_cmnd *, void *); + void *priv; }; -struct trace_event_data_offsets_rpcb_unregister { - u32 netid; +enum ata_xfer_mask { + ATA_MASK_PIO = 127, + ATA_MASK_MWDMA = 3968, + ATA_MASK_UDMA = 1044480, }; -struct trace_event_data_offsets_rpc_tls_class { - u32 servername; - u32 progname; +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 trace_event_data_offsets_svc_authenticate { - u32 server; - u32 client; +struct e1000_opt_list { + int i; + char *str; }; -struct trace_event_data_offsets_svc_process { - u32 service; - u32 procedure; - u32 addr; +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; }; -struct trace_event_data_offsets_svc_rqst_event { - u32 server; - u32 client; +struct usb_dynid { + struct list_head node; + struct usb_device_id id; }; -struct trace_event_data_offsets_svc_rqst_status { - u32 server; - u32 client; +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 trace_event_data_offsets_svc_replace_page_err { - u32 server; - u32 client; +struct ehci_iso_packet { + u64 bufp; + __le32 transaction; + u8 cross; + u32 buf1; }; -struct trace_event_data_offsets_svc_stats_latency { - u32 server; - u32 client; - u32 procedure; +struct ehci_iso_sched { + struct list_head td_list; + unsigned int span; + unsigned int first_packet; + struct ehci_iso_packet packet[0]; }; -struct trace_event_data_offsets_svc_xprt_create_err { - u32 program; - u32 protocol; - u32 addr; +struct input_event { + __kernel_ulong_t __sec; + __kernel_ulong_t __usec; + __u16 type; + __u16 code; + __s32 value; }; -struct trace_event_data_offsets_svc_xprt_enqueue { - u32 server; - u32 client; -}; +struct evdev; -struct trace_event_data_offsets_svc_xprt_dequeue { - u32 server; - u32 client; +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 trace_event_data_offsets_svc_xprt_event { - u32 server; - u32 client; +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 trace_event_data_offsets_svc_xprt_accept { - u32 server; - u32 client; - u32 protocol; - u32 service; +struct input_mask { + __u32 type; + __u32 codes_size; + __u64 codes_ptr; }; -struct trace_event_data_offsets_svc_deferred_event { - u32 addr; +struct i2c_smbus_alert { + struct work_struct alert; + struct i2c_client *ara; }; -struct trace_event_data_offsets_svcsock_marker { - u32 addr; +struct alert_data { + unsigned short addr; + enum i2c_alert_protocol type; + unsigned int data; }; -struct trace_event_data_offsets_svcsock_class { - u32 addr; +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 trace_event_data_offsets_svcsock_tcp_recv_short { - u32 addr; +struct a4tech_sc { + unsigned long quirks; + unsigned int hw_wheel; + __s32 delayed_value; }; -struct trace_event_data_offsets_svcsock_tcp_state { - u32 addr; +enum hwtstamp_flags { + HWTSTAMP_FLAG_BONDED_PHC_INDEX = 1, + HWTSTAMP_FLAG_LAST = 1, + HWTSTAMP_FLAG_MASK = 1, }; -struct trace_event_data_offsets_svcsock_accept_class { - u32 service; +struct compat_ifconf { + compat_int_t ifc_len; + compat_caddr_t ifcbuf; }; -struct trace_event_data_offsets_cache_event { - u32 name; +enum netlink_attribute_type { + NL_ATTR_TYPE_INVALID = 0, + NL_ATTR_TYPE_FLAG = 1, + NL_ATTR_TYPE_U8 = 2, + NL_ATTR_TYPE_U16 = 3, + NL_ATTR_TYPE_U32 = 4, + NL_ATTR_TYPE_U64 = 5, + NL_ATTR_TYPE_S8 = 6, + NL_ATTR_TYPE_S16 = 7, + NL_ATTR_TYPE_S32 = 8, + NL_ATTR_TYPE_S64 = 9, + NL_ATTR_TYPE_BINARY = 10, + NL_ATTR_TYPE_STRING = 11, + NL_ATTR_TYPE_NUL_STRING = 12, + NL_ATTR_TYPE_NESTED = 13, + NL_ATTR_TYPE_NESTED_ARRAY = 14, + NL_ATTR_TYPE_BITFIELD32 = 15, + NL_ATTR_TYPE_SINT = 16, + NL_ATTR_TYPE_UINT = 17, }; -struct trace_event_data_offsets_register_class { - u32 program; +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 trace_event_data_offsets_svc_unregister { - u32 program; +enum nla_policy_validation { + NLA_VALIDATE_NONE = 0, + NLA_VALIDATE_RANGE = 1, + NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2, + NLA_VALIDATE_MIN = 3, + NLA_VALIDATE_MAX = 4, + NLA_VALIDATE_MASK = 5, + NLA_VALIDATE_RANGE_PTR = 6, + NLA_VALIDATE_FUNCTION = 7, }; -struct 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 netlink_policy_dump_state { + unsigned int policy_idx; + unsigned int attr_idx; + unsigned int n_alloc; + struct { + const struct nla_policy *policy; + unsigned int maxtype; + } policies[0]; +}; -struct trace_event_data_offsets_rpc_task_status {}; +typedef void (*ethnl_notify_handler_t)(struct net_device *, unsigned int, const void *); -struct trace_event_data_offsets_rpc_task_running {}; +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, +}; -struct trace_event_data_offsets_rpc_failure {}; +enum ethtool_multicast_groups { + ETHNL_MCGRP_MONITOR = 0, +}; -struct trace_event_data_offsets_rpc_buf_alloc {}; +struct ethnl_dump_ctx { + const struct ethnl_request_ops *ops; + struct ethnl_req_info *req_info; + struct ethnl_reply_data *reply_data; + unsigned long pos_ifindex; +}; -struct trace_event_data_offsets_rpc_call_rpcerror {}; +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, +}; -struct trace_event_data_offsets_xs_socket_event {}; +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 trace_event_data_offsets_xs_socket_event_done {}; +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, +}; -struct trace_event_data_offsets_rpc_socket_nospace {}; +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, +}; -struct trace_event_data_offsets_xprt_transmit {}; +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, +}; -struct trace_event_data_offsets_xprt_writelock_event {}; +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 trace_event_data_offsets_xprt_cong_event {}; +struct ethnl_tunnel_info_dump_ctx { + struct ethnl_req_info req_info; + unsigned long ifindex; +}; -struct trace_event_data_offsets_xprt_reserve {}; +struct xt_af { + struct mutex mutex; + struct list_head match; + struct list_head target; +}; -struct trace_event_data_offsets_rpcb_setport {}; +enum { + MTTG_TRAV_INIT = 0, + MTTG_TRAV_NFP_UNSPEC = 1, + MTTG_TRAV_NFP_SPEC = 2, + MTTG_TRAV_DONE = 3, +}; -struct trace_event_data_offsets_pmap_register {}; +struct xt_template { + struct list_head list; + int (*table_init)(struct net *); + struct module *me; + char name[32]; +}; -struct trace_event_data_offsets_svc_xdr_msg_class {}; +struct nf_mttg_trav { + struct list_head *head; + struct list_head *curr; + uint8_t class; +}; -struct trace_event_data_offsets_svc_xdr_buf_class {}; +struct xt_pernet { + struct list_head tables[11]; +}; -struct trace_event_data_offsets_svc_wake_up {}; +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 trace_event_data_offsets_svc_alloc_arg_err {}; +struct fib6_rule { + struct fib_rule common; + struct rt6key src; + struct rt6key dst; + dscp_t dscp; +}; -struct trace_event_data_offsets_svcsock_lifetime_class {}; +struct svc_pool_map { + int count; + int mode; + unsigned int npools; + unsigned int *pool_to; + unsigned int *to_pool; +}; -struct errormap { - char *name; - int val; - int namelen; - struct hlist_node list; +enum { + SVC_POOL_AUTO = -1, + SVC_POOL_GLOBAL = 0, + SVC_POOL_PERCPU = 1, + SVC_POOL_PERNODE = 2, }; -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 rpc_reply_stat { + RPC_MSG_ACCEPTED = 0, + RPC_MSG_DENIED = 1, }; -enum p9_proto_versions { - p9_proto_legacy = 0, - p9_proto_2000u = 1, - p9_proto_2000L = 2, +enum rpc_reject_stat { + RPC_MISMATCH = 0, + RPC_AUTH_ERROR = 1, }; -typedef s8 int8_t; +struct mcs_group___2 { + u8 shift; + u16 duration[12]; +}; -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, +struct group_data { + int limit[21]; + int base[20]; + int permute[258]; + int minLen; + int maxLen; }; -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 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]; }; -enum { - LOGIC_PIO_INDIRECT = 0, - LOGIC_PIO_CPU_MMIO = 1, +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 logic_pio_host_ops; +struct lzma_header; -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 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 logic_pio_host_ops { - u32 (*in)(void *, unsigned long, size_t); - void (*out)(void *, unsigned long, u32, size_t); - u32 (*ins)(void *, unsigned long, void *, size_t, unsigned int); - void (*outs)(void *, unsigned long, const void *, size_t, unsigned int); +struct 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; }; struct printf_spec { @@ -133413,373 +137732,373 @@ enum format_type { FORMAT_TYPE_PTRDIFF = 18, }; -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; +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; }; -typedef void (*btf_trace_alarmtimer_suspend)(void *, ktime_t, int); +enum nmi_states { + NMI_NOT_RUNNING = 0, + NMI_EXECUTING = 1, + NMI_LATCHED = 2, +}; -typedef void (*btf_trace_alarmtimer_fired)(void *, struct alarm *, ktime_t); +struct nmi_desc { + raw_spinlock_t lock; + struct list_head head; +}; -typedef void (*btf_trace_alarmtimer_start)(void *, struct alarm *, ktime_t); +struct trace_event_raw_nmi_handler { + struct trace_entry ent; + void *handler; + s64 delta_ns; + int handled; + char __data[0]; +}; -typedef void (*btf_trace_alarmtimer_cancel)(void *, struct alarm *, ktime_t); +struct trace_event_data_offsets_nmi_handler {}; -struct alarm_base { - spinlock_t lock; - struct timerqueue_head timerqueue; - ktime_t (*get_ktime)(); - void (*get_timespec)(struct timespec64 *); - clockid_t base_clockid; +struct cyc2ns { + struct cyc2ns_data data[2]; + seqcount_latch_t seq; }; -struct trace_event_raw_alarmtimer_suspend { - struct trace_entry ent; - s64 expires; - unsigned char alarm_type; - char __data[0]; +struct cpuid_bit { + u16 feature; + u8 reg; + u8 bit; + u32 level; + u32 sub_leaf; }; -struct trace_event_raw_alarm_class { - struct trace_entry ent; - void *alarm; - unsigned char alarm_type; - s64 expires; - s64 now; - char __data[0]; +struct cpuid_dep { + unsigned int feature; + unsigned int depends; }; -struct trace_event_data_offsets_alarmtimer_suspend {}; +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 trace_event_data_offsets_alarm_class {}; +struct hpet_channel; -enum event_command_flags { - EVENT_CMD_FL_POST_TRIGGER = 1, - EVENT_CMD_FL_NEEDS_REC = 2, +struct hpet_base { + unsigned int nr_channels; + unsigned int nr_clockevents; + unsigned int boot_cfg; + struct hpet_channel *channels; }; -struct enable_trigger_data { - struct trace_event_file *file; - bool enable; - bool hist; +enum hpet_mode { + HPET_MODE_UNUSED = 0, + HPET_MODE_LEGACY = 1, + HPET_MODE_CLOCKEVT = 2, + HPET_MODE_DEVICE = 3, }; -struct bpf_cgroup_storage_map { - struct bpf_map map; - spinlock_t lock; - struct rb_root root; - struct list_head list; - long: 64; +struct hpet_channel { + struct clock_event_device evt; + unsigned int num; + unsigned int cpu; + unsigned int irq; + unsigned int in_use; + enum hpet_mode mode; + unsigned int boot_cfg; + char name[10]; long: 64; long: 64; long: 64; }; -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; +union hpet_lock { + struct { + arch_spinlock_t lock; + u32 value; + }; + u64 lockval; }; -enum slab_state { - DOWN = 0, - PARTIAL = 1, - PARTIAL_NODE = 2, - UP = 3, - FULL = 4, -}; +typedef struct { + u32 version; + u32 length; + u64 memory_protection_attribute; +} efi_properties_table_t; -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]; -}; +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 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 __user_cap_header_struct; -struct trace_event_raw_kfree { - struct trace_entry ent; - unsigned long call_site; - const void *ptr; - char __data[0]; -}; +typedef struct __user_cap_header_struct *cap_user_header_t; -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 __user_cap_header_struct { + __u32 version; + int pid; }; -struct trace_event_raw_mm_page_free { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - char __data[0]; -}; +struct __user_cap_data_struct; -struct trace_event_raw_mm_page_free_batched { - struct trace_entry ent; - unsigned long pfn; - char __data[0]; -}; +typedef struct __user_cap_data_struct __attribute__((btf_type_tag("user"))) *cap_user_data_t; -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 __user_cap_data_struct { + __u32 effective; + __u32 permitted; + __u32 inheritable; }; -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 sys_off_handler { + struct notifier_block nb; + int (*sys_off_cb)(struct sys_off_data *); + void *cb_data; + enum sys_off_mode mode; + bool blocking; + void *list; + struct device *dev; }; -struct trace_event_raw_mm_page_pcpu_drain { - struct trace_entry ent; - unsigned long pfn; - unsigned int order; - int migratetype; - char __data[0]; +struct dma_devres { + size_t size; + void *vaddr; + dma_addr_t dma_handle; + unsigned long attrs; }; -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 stacktrace_cookie { + unsigned long *store; + unsigned int size; + unsigned int skip; + unsigned int len; }; -struct trace_event_raw_rss_stat { - struct trace_entry ent; - unsigned int mm_id; - unsigned int curr; - int member; - long size; - char __data[0]; +enum { + TRACE_NOP_OPT_ACCEPT = 1, + TRACE_NOP_OPT_REFUSE = 2, }; -struct trace_event_data_offsets_kmem_cache_free { - u32 name; +struct bpf_iter__bpf_map { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; }; -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 bpf_iter_seq_map_info { + u32 map_id; }; -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 static_key_deferred { + struct static_key key; + unsigned long timeout; + struct delayed_work work; }; -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 {}; +struct static_key_mod { + struct static_key_mod *next; + struct jump_entry *entries; + struct module *mod; +}; -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]; +enum sgp_type { + SGP_READ = 0, + SGP_NOALLOC = 1, + SGP_CACHE = 2, + SGP_WRITE = 3, + SGP_FALLOC = 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]; +enum shmem_param { + Opt_gid___7 = 0, + Opt_huge = 1, + Opt_mode___6 = 2, + Opt_mpol = 3, + Opt_nr_blocks = 4, + Opt_nr_inodes___2 = 5, + Opt_size___2 = 6, + Opt_uid___7 = 7, + Opt_inode32 = 8, + Opt_inode64 = 9, + Opt_noswap = 10, + Opt_quota___2 = 11, + Opt_usrquota___2 = 12, + Opt_grpquota___2 = 13, + Opt_usrquota_block_hardlimit = 14, + Opt_usrquota_inode_hardlimit = 15, + Opt_grpquota_block_hardlimit = 16, + Opt_grpquota_inode_hardlimit = 17, }; -typedef int __kernel_daddr_t; +struct shmem_quota_limits { + qsize_t usrquota_bhardlimit; + qsize_t usrquota_ihardlimit; + qsize_t grpquota_bhardlimit; + qsize_t grpquota_ihardlimit; +}; -struct ustat { - __kernel_daddr_t f_tfree; - unsigned long f_tinode; - char f_fname[6]; - char f_fpack[6]; +struct shmem_sb_info { + unsigned long max_blocks; + struct percpu_counter used_blocks; + unsigned long max_inodes; + unsigned long free_ispace; + raw_spinlock_t stat_lock; + umode_t mode; + unsigned char huge; + kuid_t uid; + kgid_t gid; + bool full_inums; + bool noswap; + ino_t next_ino; + ino_t __attribute__((btf_type_tag("percpu"))) *ino_batch; + struct mempolicy *mpol; + spinlock_t shrinklist_lock; + struct list_head shrinklist; + unsigned long shrinklist_len; + struct shmem_quota_limits qlimits; }; -typedef __kernel_fsid_t compat_fsid_t; +struct shmem_falloc { + wait_queue_head_t *waitq; + unsigned long start; + unsigned long next; + unsigned long nr_falloced; + unsigned long nr_unswapped; +}; -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]; +struct shmem_options { + unsigned long long blocks; + unsigned long long inodes; + struct mempolicy *mpol; + kuid_t uid; + kgid_t gid; + umode_t mode; + bool full_inums; + int huge; + int seen; + bool noswap; + unsigned short quota_types; + struct shmem_quota_limits qlimits; }; -struct 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)); +struct vma_swap_readahead { + unsigned short win; + unsigned short offset; + unsigned short nr_pte; +}; -typedef s32 compat_daddr_t; +struct saved { + struct path link; + struct delayed_call done; + const char *name; + unsigned int seq; +}; -typedef u32 compat_ino_t; +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; +}; -struct compat_ustat { - compat_daddr_t f_tfree; - compat_ino_t f_tinode; - char f_fname[6]; - char f_fpack[6]; +enum { + LAST_NORM = 0, + LAST_ROOT = 1, + LAST_DOT = 2, + LAST_DOTDOT = 3, }; -enum bio_post_read_step { - STEP_INITIAL = 0, - STEP_DECRYPT = 1, - STEP_VERITY = 2, - STEP_MAX = 3, +enum { + WALK_TRAILING = 1, + WALK_MORE = 2, + WALK_NOFOLLOW = 4, }; -struct bio_post_read_ctx { - struct bio *bio; - struct work_struct work; - unsigned int cur_step; - unsigned int enabled_steps; +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 fatent_ra { - sector_t cur; - sector_t limit; - unsigned int ra_blocks; - sector_t ra_advance; - sector_t ra_next; - sector_t ra_limit; +enum { + BLOCK_BITMAP = 0, + INODE_BITMAP = 1, + INODE_TABLE = 2, + GROUP_TABLE_COUNT = 3, }; -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 ext4_rcu_ptr { + struct callback_head rcu; + void *ptr; +}; + +struct ext4_new_flex_group_data { + struct ext4_new_group_data *groups; + __u16 *bg_flags; + ext4_group_t count; }; struct msg_queue { @@ -133900,2716 +138219,2185 @@ struct compat_msgbuf { char mtext[1]; }; -struct crypto_istat_akcipher { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t verify_cnt; - atomic64_t sign_cnt; - atomic64_t err_cnt; -}; - -struct ghash_ctx { - struct gf128mul_4k *gf128; -}; - -struct ghash_desc_ctx { - u8 buffer[16]; - u32 bytes; -}; - -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; -}; - -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 ldsem_waiter { - struct list_head list; - struct task_struct *task; -}; - -struct ports_driver_data { - 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 drm_mode_map_dumb { - __u32 handle; - __u32 pad; - __u64 offset; -}; - -struct drm_mode_destroy_dumb { - __u32 handle; -}; - -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 ia_constants { - unsigned int min_gpu_freq; - unsigned int max_gpu_freq; - unsigned int min_ring_freq; - unsigned int max_ia_freq; -}; - -enum intel_guc_recv_message { - INTEL_GUC_RECV_MSG_CRASH_DUMP_POSTED = 2, - INTEL_GUC_RECV_MSG_EXCEPTION = 1073741824, -}; - -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 subsys_dev_iter { - struct klist_iter ki; - const struct device_type *type; -}; - -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 nlmsg_perm { + u16 nlmsg_type; + u32 perm; }; -struct xhci_file_map { - const char *name; - int (*show)(struct seq_file *, void *); +struct netif_security_struct { + struct net *ns; + int ifindex; + u32 sid; }; -struct xhci_regset { - char name[32]; - struct debugfs_regset32 regset; - size_t nregs; +struct sel_netif { struct list_head list; + struct netif_security_struct nsec; + struct callback_head callback_head; }; -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 ps2pp_info { - u8 model; - u8 kind; - u16 features; -}; - -typedef void (*btf_trace_thermal_temperature)(void *, struct thermal_zone_device *); - -typedef void (*btf_trace_cdev_update)(void *, struct thermal_cooling_device *, unsigned long); - -typedef void (*btf_trace_thermal_zone_trip)(void *, struct thermal_zone_device *, int, enum thermal_trip_type); - -struct trace_event_raw_thermal_temperature { - struct trace_entry ent; - u32 __data_loc_thermal_zone; - int id; - int temp_prev; - int temp; - char __data[0]; -}; - -struct trace_event_raw_cdev_update { - struct trace_entry ent; - u32 __data_loc_type; - unsigned long target; - char __data[0]; -}; - -struct trace_event_raw_thermal_zone_trip { - struct trace_entry ent; - u32 __data_loc_thermal_zone; - int id; - int trip; - enum thermal_trip_type trip_type; - char __data[0]; -}; - -struct trace_event_data_offsets_thermal_temperature { - u32 thermal_zone; -}; - -struct trace_event_data_offsets_cdev_update { - u32 type; -}; - -struct trace_event_data_offsets_thermal_zone_trip { - u32 thermal_zone; -}; - -struct quirks_list_struct { - struct hid_device_id hid_bl_item; - struct list_head node; -}; - -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]; +struct ccm_instance_ctx { + struct crypto_skcipher_spawn ctr; + struct crypto_ahash_spawn mac; }; -struct bpf_scratchpad { +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 { - __be32 diff[128]; - u8 buff[512]; + struct ahash_request ahreq; + struct skcipher_request skreq; }; }; -enum { - BPF_F_NEIGH = 2, - BPF_F_PEER = 4, - BPF_F_NEXTHOP = 8, -}; - -enum { - BPF_F_RECOMPUTE_CSUM = 1, - BPF_F_INVALIDATE_HASH = 2, -}; - -enum bpf_hdr_start_off { - BPF_HDR_START_MAC = 0, - BPF_HDR_START_NET = 1, -}; - -enum { - BPF_F_HDR_FIELD_MASK = 15, -}; - -enum { - BPF_F_PSEUDO_HDR = 16, - BPF_F_MARK_MANGLED_0 = 32, - BPF_F_MARK_ENFORCE = 64, +struct cbcmac_tfm_ctx { + struct crypto_cipher *child; }; -enum { - BPF_CSUM_LEVEL_QUERY = 0, - BPF_CSUM_LEVEL_INC = 1, - BPF_CSUM_LEVEL_DEC = 2, - BPF_CSUM_LEVEL_RESET = 3, +struct cbcmac_desc_ctx { + unsigned int len; + u8 dg[0]; }; -enum { - BPF_F_INGRESS = 1, +struct crypto_ccm_ctx { + struct crypto_ahash *mac; + struct crypto_skcipher *ctr; }; -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, +struct crypto_rfc4309_ctx { + struct crypto_aead *child; + u8 nonce[3]; }; -enum { - BPF_ADJ_ROOM_ENCAP_L2_MASK = 255, - BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56, +struct crypto_rfc4309_req_ctx { + struct scatterlist src[3]; + struct scatterlist dst[3]; + struct aead_request subreq; }; -enum bpf_adj_room_mode { - BPF_ADJ_ROOM_NET = 0, - BPF_ADJ_ROOM_MAC = 1, -}; +struct ioc_gq; -enum { - BPF_F_TUNINFO_IPV6 = 1, -}; +struct ioc_now; -enum { - BPF_F_TUNINFO_FLAGS = 16, -}; +typedef void (*btf_trace_iocost_iocg_activate)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); -enum { - BPF_F_ZERO_CSUM_TX = 2, - BPF_F_DONT_FRAGMENT = 4, - BPF_F_SEQ_NUMBER = 8, - BPF_F_NO_TUNNEL_KEY = 16, +struct iocg_stat { + u64 usage_us; + u64 wait_us; + u64 indebt_us; + u64 indelay_us; }; -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, -}; +struct ioc; -enum { - BPF_FIB_LOOKUP_DIRECT = 1, - BPF_FIB_LOOKUP_OUTPUT = 2, - BPF_FIB_LOOKUP_SKIP_NEIGH = 4, - BPF_FIB_LOOKUP_TBID = 8, -}; +struct iocg_pcpu_stat; -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, +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]; }; -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, +struct ioc_params { + u32 qos[6]; + u64 i_lcoefs[6]; + u64 lcoefs[6]; + u32 too_fast_vrate_pct; + u32 too_slow_vrate_pct; }; -enum bpf_check_mtu_flags { - BPF_MTU_CHK_SEGS = 1, +struct ioc_margins { + s64 min; + s64 low; + s64 target; }; -enum bpf_lwt_encap_mode { - BPF_LWT_ENCAP_SEG6 = 0, - BPF_LWT_ENCAP_SEG6_INLINE = 1, - BPF_LWT_ENCAP_IP = 2, +enum ioc_running { + IOC_IDLE = 0, + IOC_RUNNING = 1, + IOC_STOP = 2, }; -enum { - SEG6_LOCAL_ACTION_UNSPEC = 0, - SEG6_LOCAL_ACTION_END = 1, - SEG6_LOCAL_ACTION_END_X = 2, - SEG6_LOCAL_ACTION_END_T = 3, - SEG6_LOCAL_ACTION_END_DX2 = 4, - SEG6_LOCAL_ACTION_END_DX6 = 5, - SEG6_LOCAL_ACTION_END_DX4 = 6, - SEG6_LOCAL_ACTION_END_DT6 = 7, - SEG6_LOCAL_ACTION_END_DT4 = 8, - SEG6_LOCAL_ACTION_END_B6 = 9, - SEG6_LOCAL_ACTION_END_B6_ENCAP = 10, - SEG6_LOCAL_ACTION_END_BM = 11, - SEG6_LOCAL_ACTION_END_S = 12, - SEG6_LOCAL_ACTION_END_AS = 13, - SEG6_LOCAL_ACTION_END_AM = 14, - SEG6_LOCAL_ACTION_END_BPF = 15, - SEG6_LOCAL_ACTION_END_DT46 = 16, - __SEG6_LOCAL_ACTION_MAX = 17, -}; +struct ioc_pcpu_stat; -enum { - BPF_LOAD_HDR_OPT_TCP_SYN = 1, +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; }; -enum { - BPF_SKB_TSTAMP_UNSPEC = 0, - BPF_SKB_TSTAMP_DELIVERY_MONO = 1, +struct ioc_missed { + local_t nr_met; + local_t nr_missed; + u32 last_met; + u32 last_missed; }; -enum { - BPF_SK_LOOKUP_F_REPLACE = 1, - BPF_SK_LOOKUP_F_NO_REUSEPORT = 2, +struct ioc_pcpu_stat { + struct ioc_missed missed[2]; + local64_t rq_wait_ns; + u64 last_rq_wait_ns; }; -typedef u64 (*btf_bpf_skb_get_pay_offset)(struct sk_buff *); - -typedef u64 (*btf_bpf_skb_get_nlattr)(struct sk_buff *, u32, u32); - -typedef u64 (*btf_bpf_skb_get_nlattr_nest)(struct sk_buff *, u32, u32); - -typedef u64 (*btf_bpf_skb_load_helper_8)(const struct sk_buff *, const void *, int, int); - -typedef u64 (*btf_bpf_skb_load_helper_8_no_cache)(const struct sk_buff *, int); - -typedef u64 (*btf_bpf_skb_load_helper_16)(const struct sk_buff *, const void *, int, int); - -typedef u64 (*btf_bpf_skb_load_helper_16_no_cache)(const struct sk_buff *, int); - -typedef u64 (*btf_bpf_skb_load_helper_32)(const struct sk_buff *, const void *, int, int); - -typedef u64 (*btf_bpf_skb_load_helper_32_no_cache)(const struct sk_buff *, int); - -typedef u64 (*btf_bpf_skb_store_bytes)(struct sk_buff *, u32, const void *, u32, u64); - -typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32); - -typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32); - -typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32); - -typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32); - -typedef u64 (*btf_bpf_sk_fullsock)(struct sock *); - -typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32); - -typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64); - -typedef u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64); - -typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum); - -typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum); - -typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64); - -typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64); - -typedef u64 (*btf_bpf_redirect)(u32, u64); - -typedef u64 (*btf_bpf_redirect_peer)(u32, u64); - -struct bpf_redir_neigh; - -typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64); - -struct bpf_redir_neigh { - __u32 nh_family; - union { - __be32 ipv4_nh; - __u32 ipv6_nh[4]; - }; +struct iocg_pcpu_stat { + local64_t abs_vusage; }; -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]; - }; +struct ioc_now { + u64 now_ns; + u64 now; + u64 vnow; }; -typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32); - -typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64); - -typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32); - -typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32); - -typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *); - -typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int); - -typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *); - -typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int); - -typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64); - -typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *); - -typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); - -typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *); - -typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *); - -typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *); - -typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *); - -typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *); - -typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *); - -typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); - -typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); - -typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); - -typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); - -typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int); - -typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); - -typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int); - -typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int); +typedef void (*btf_trace_iocost_iocg_idle)(void *, struct ioc_gq *, const char *, struct ioc_now *, u64, u64, u64); -struct bpf_xfrm_state; +typedef void (*btf_trace_iocost_inuse_shortage)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); -typedef u64 (*btf_bpf_skb_get_xfrm_state)(struct sk_buff *, u32, struct bpf_xfrm_state *, u32, u64); +typedef void (*btf_trace_iocost_inuse_transfer)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); -struct bpf_xfrm_state { - __u32 reqid; - __u32 spi; - __u16 family; - __u16 ext; - union { - __u32 remote_ipv4; - __u32 remote_ipv6[4]; - }; -}; +typedef void (*btf_trace_iocost_inuse_adjust)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u32, u64, u64); -struct bpf_fib_lookup; +typedef void (*btf_trace_iocost_ioc_vrate_adj)(void *, struct ioc *, u64, u32 *, u32, int, int); -typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32); +typedef void (*btf_trace_iocost_iocg_forgive_debt)(void *, struct ioc_gq *, const char *, struct ioc_now *, u32, u64, u64, u64, u64); -struct bpf_fib_lookup { - __u8 family; - __u8 l4_protocol; - __be16 sport; - __be16 dport; - union { - __u16 tot_len; - __u16 mtu_result; - }; - __u32 ifindex; - union { - __u8 tos; - __be32 flowinfo; - __u32 rt_metric; - }; - union { - __be32 ipv4_src; - __u32 ipv6_src[4]; - }; - union { - __be32 ipv4_dst; - __u32 ipv6_dst[4]; - }; - union { - struct { - __be16 h_vlan_proto; - __be16 h_vlan_TCI; - }; - __u32 tbid; - }; - __u8 smac[6]; - __u8 dmac[6]; +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, }; -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); +enum { + QOS_RPPM = 0, + QOS_RLAT = 1, + QOS_WPPM = 2, + QOS_WLAT = 3, + QOS_MIN = 4, + QOS_MAX = 5, + NR_QOS_PARAMS = 6, +}; -typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64); +enum { + QOS_ENABLE = 0, + QOS_CTRL = 1, + NR_QOS_CTRL_PARAMS = 2, +}; -typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32); +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, +}; -typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32); +enum { + AUTOP_INVALID = 0, + AUTOP_HDD = 1, + AUTOP_SSD_QD1 = 2, + AUTOP_SSD_DFL = 3, + AUTOP_SSD_FAST = 4, +}; -typedef u64 (*btf_bpf_lwt_seg6_store_bytes)(struct sk_buff *, u32, const void *, u32); +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, +}; -typedef u64 (*btf_bpf_lwt_seg6_action)(struct sk_buff *, u32, void *, u32); +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, +}; -typedef u64 (*btf_bpf_lwt_seg6_adjust_srh)(struct sk_buff *, u32, s32); +enum { + LCOEF_RPAGE = 0, + LCOEF_RSEQIO = 1, + LCOEF_RRANDIO = 2, + LCOEF_WPAGE = 3, + LCOEF_WSEQIO = 4, + LCOEF_WRANDIO = 5, + NR_LCOEFS = 6, +}; -typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +enum { + COST_CTRL = 0, + COST_MODEL = 1, + NR_COST_CTRL_PARAMS = 2, +}; -typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +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]; +}; -typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +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]; +}; -typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +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]; +}; -typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +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]; +}; -typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); +struct ioc_cgrp { + struct blkcg_policy_data cpd; + unsigned int dfl_weight; +}; -typedef u64 (*btf_bpf_sk_release)(struct sock *); +struct iocg_wait { + struct wait_queue_entry wait; + struct bio *bio; + u64 abs_cost; + bool committed; +}; -typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); +struct trace_event_data_offsets_iocost_iocg_state { + u32 devname; + u32 cgroup; +}; -typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); +struct trace_event_data_offsets_iocg_inuse_update { + u32 devname; + u32 cgroup; +}; -typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); +struct trace_event_data_offsets_iocost_ioc_vrate_adj { + u32 devname; +}; -typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); +struct trace_event_data_offsets_iocost_iocg_forgive_debt { + u32 devname; + u32 cgroup; +}; -typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); +struct iocg_wake_ctx { + struct ioc_gq *iocg; + u32 hw_inuse; + s64 vbudget; +}; -typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); +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 bpf_tcp_sock { - __u32 snd_cwnd; - __u32 srtt_us; - __u32 rtt_min; - __u32 snd_ssthresh; - __u32 rcv_nxt; - __u32 snd_nxt; - __u32 snd_una; - __u32 mss_cache; - __u32 ecn_flags; - __u32 rate_delivered; - __u32 rate_interval_us; - __u32 packets_out; - __u32 retrans_out; - __u32 total_retrans; - __u32 segs_in; - __u32 data_segs_in; - __u32 segs_out; - __u32 data_segs_out; - __u32 lost_out; - __u32 sacked_out; - __u64 bytes_received; - __u64 bytes_acked; - __u32 dsack_dups; - __u32 delivered; - __u32 delivered_ce; - __u32 icsk_retransmits; +enum msi_desc_filter { + MSI_DESC_ALL = 0, + MSI_DESC_NOTASSOCIATED = 1, + MSI_DESC_ASSOCIATED = 2, }; -typedef u64 (*btf_bpf_tcp_sock)(struct sock *); +struct acpi_lpat { + int temp; + int raw; +}; -typedef u64 (*btf_bpf_get_listener_sock)(struct sock *); +struct acpi_lpat_conversion_table { + struct acpi_lpat *lpat; + int lpat_count; +}; -typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *); +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)); -typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); +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)); -typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); +struct prm_buffer { + u8 prm_status; + u64 efi_status; + u8 prm_cmd; + guid_t handler_guid; +} __attribute__((packed)); -typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64); +struct prm_handler_info { + guid_t guid; + efi_status_t (*handler_addr)(u64, void *); + u64 static_data_buffer_addr; + u64 acpi_param_buffer_addr; + struct list_head handler_list; +}; -typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64); +struct prm_mmio_info; -typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64); +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]; +}; -typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64); +struct prm_mmio_addr_range { + u64 phys_addr; + u64 virt_addr; + u32 length; +} __attribute__((packed)); -typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32); +struct prm_mmio_info { + u64 mmio_count; + struct prm_mmio_addr_range addr_ranges[0]; +}; -typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv4)(struct iphdr *, struct tcphdr *, u32); +struct prm_context_buffer { + char signature[4]; + u16 revision; + u16 reserved; + guid_t identifier; + u64 static_data_buffer; + struct prm_mmio_info *mmio_ranges; +}; -typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *, u32); +typedef u64 acpi_integer; -typedef u64 (*btf_bpf_tcp_raw_check_syncookie_ipv4)(struct iphdr *, struct tcphdr *); +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 (*btf_bpf_tcp_raw_check_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *); +struct vring_desc; -typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32); +typedef struct vring_desc vring_desc_t; -typedef u64 (*btf_sk_reuseport_load_bytes)(const struct sk_reuseport_kern *, u32, void *, u32); +struct vring_avail; -typedef u64 (*btf_sk_reuseport_load_bytes_relative)(const struct sk_reuseport_kern *, u32, void *, u32, u32); +typedef struct vring_avail vring_avail_t; -typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, u64); +struct vring_used; -typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *); +typedef struct vring_used vring_used_t; -typedef u64 (*btf_bpf_skc_to_tcp_sock)(struct sock *); +struct vring { + unsigned int num; + vring_desc_t *desc; + vring_avail_t *avail; + vring_used_t *used; +}; -typedef u64 (*btf_bpf_skc_to_tcp_timewait_sock)(struct sock *); +struct vring_desc_state_split; -typedef u64 (*btf_bpf_skc_to_tcp_request_sock)(struct sock *); +struct vring_desc_extra; -typedef u64 (*btf_bpf_skc_to_udp6_sock)(struct sock *); +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; +}; -typedef u64 (*btf_bpf_skc_to_unix_sock)(struct sock *); +struct vring_packed_desc; -typedef u64 (*btf_bpf_skc_to_mptcp_sock)(struct sock *); +struct vring_packed_desc_event; -typedef u64 (*btf_bpf_sock_from_file)(struct file *); +struct vring_desc_state_packed; -struct tls_strparser { - struct sock *sk; - u32 mark: 8; - u32 stopped: 1; - u32 copy_mode: 1; - u32 mixed_decrypted: 1; - u32 msg_ready: 1; - struct strp_msg stm; - struct sk_buff *anchor; - struct work_struct work; +struct 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 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 vring_virtqueue { + struct virtqueue vq; + bool packed_ring; + bool use_dma_api; + bool weak_barriers; + bool broken; + bool indirect; + bool event; + bool premapped; + bool do_unmap; + unsigned int free_head; + unsigned int num_added; + u16 last_used_idx; + bool event_triggered; + union { + struct vring_virtqueue_split split; + struct vring_virtqueue_packed packed; + }; + bool (*notify)(struct virtqueue *); + bool we_own_ring; + struct device *dma_dev; }; -struct udp6_sock { - struct udp_sock udp; - struct ipv6_pinfo inet6; - long: 64; - long: 64; - long: 64; - long: 64; +struct vring_desc { + __virtio64 addr; + __virtio32 len; + __virtio16 flags; + __virtio16 next; }; -struct mptcp_sock {}; - -struct nf_queue_handler { - int (*outfn)(struct nf_queue_entry *, unsigned int); - void (*nf_hook_drop)(struct net *); +struct vring_avail { + __virtio16 flags; + __virtio16 idx; + __virtio16 ring[0]; }; -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 vring_used_elem { + __virtio32 id; + __virtio32 len; }; -enum nexthop_event_type { - NEXTHOP_EVENT_DEL = 0, - NEXTHOP_EVENT_REPLACE = 1, - NEXTHOP_EVENT_RES_TABLE_PRE_REPLACE = 2, - NEXTHOP_EVENT_BUCKET_REPLACE = 3, -}; +typedef struct vring_used_elem vring_used_elem_t; -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, +struct vring_used { + __virtio16 flags; + __virtio16 idx; + vring_used_elem_t ring[0]; }; -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, +struct vring_desc_state_split { + void *data; + struct vring_desc *indir_desc; }; -enum { - NEXTHOP_GRP_TYPE_MPATH = 0, - NEXTHOP_GRP_TYPE_RES = 1, - __NEXTHOP_GRP_TYPE_MAX = 2, +struct vring_desc_extra { + dma_addr_t addr; + u32 len; + u16 flags; + u16 next; }; -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, +struct vring_packed_desc { + __le64 addr; + __le32 len; + __le16 id; + __le16 flags; }; -enum { - NHA_RES_BUCKET_UNSPEC = 0, - NHA_RES_BUCKET_PAD = 0, - NHA_RES_BUCKET_INDEX = 1, - NHA_RES_BUCKET_IDLE_TIME = 2, - NHA_RES_BUCKET_NH_ID = 3, - __NHA_RES_BUCKET_MAX = 4, +struct vring_packed_desc_event { + __le16 off_wrap; + __le16 flags; }; -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 vring_desc_state_packed { + void *data; + struct vring_packed_desc *indir_desc; + u16 num; + u16 last; }; -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; +enum drm_color_lut_tests { + DRM_COLOR_LUT_EQUAL_CHANNELS = 1, + DRM_COLOR_LUT_NON_DECREASING = 2, }; -struct nh_notifier_grp_entry_info { - u8 weight; - u32 id; - struct nh_notifier_single_info nh; +struct drm_color_lut { + __u16 red; + __u16 green; + __u16 blue; + __u16 reserved; }; -struct nh_notifier_grp_info { - u16 num_nh; - bool is_fdb; - struct nh_notifier_grp_entry_info nh_entries[0]; +struct drm_mode_crtc_lut { + __u32 crtc_id; + __u32 gamma_size; + __u64 red; + __u64 green; + __u64 blue; }; -struct nh_notifier_res_table_info { - u16 num_nh_buckets; - struct nh_notifier_single_info nhs[0]; +typedef void (*drmres_release_t)(struct drm_device *, void *); + +struct drmres_node { + struct list_head entry; + drmres_release_t release; + const char *name; + size_t size; }; -struct nh_notifier_res_bucket_info { - u16 bucket_index; - unsigned int idle_timer_ms; - bool force; - struct nh_notifier_single_info old_nh; - struct nh_notifier_single_info new_nh; +struct drmres { + struct drmres_node node; + u8 data[0]; }; -struct nh_config { - u32 nh_id; - u8 nh_family; - u8 nh_protocol; - u8 nh_blackhole; - u8 nh_fdb; - u32 nh_flags; - int nh_ifindex; - struct net_device *dev; - union { - __be32 ipv4; - struct in6_addr ipv6; - } gw; - struct nlattr *nh_grp; - u16 nh_grp_type; - u16 nh_grp_res_num_buckets; - unsigned long nh_grp_res_idle_timer; - unsigned long nh_grp_res_unbalanced_timer; - bool nh_grp_res_has_num_buckets; - bool nh_grp_res_has_idle_timer; - bool nh_grp_res_has_unbalanced_timer; - struct nlattr *nh_encap; - u16 nh_encap_type; - u32 nlflags; - struct nl_info nlinfo; +struct ttm_pool_dma { + dma_addr_t addr; + unsigned long vaddr; }; -struct nhmsg { - unsigned char nh_family; - unsigned char nh_scope; - unsigned char nh_protocol; - unsigned char resvd; - unsigned int nh_flags; +struct i915_debugfs_files { + const char *name; + const struct file_operations *fops; }; -struct nexthop_grp { - __u32 id; - __u8 weight; - __u8 resvd1; - __u16 resvd2; +struct drm_i915_gem_set_tiling { + __u32 handle; + __u32 tiling_mode; + __u32 stride; + __u32 swizzle_mode; }; -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 drm_i915_gem_get_tiling { + __u32 handle; + __u32 tiling_mode; + __u32 swizzle_mode; + __u32 phys_swizzle_mode; }; -struct rtm_dump_nh_ctx { - u32 idx; +struct intel_sa_info { + u16 displayrtids; + u8 deburst; + u8 deprogbwlimit; + u8 derating; }; -struct rtm_dump_res_bucket_ctx { - struct rtm_dump_nh_ctx nh; - u16 bucket_index; - u32 done_nh_idx; +struct intel_qgv_point { + u16 dclk; + u16 t_rp; + u16 t_rdpre; + u16 t_rc; + u16 t_ras; + u16 t_rcd; }; -struct rtm_dump_nexthop_bucket_data { - struct rtm_dump_res_bucket_ctx *ctx; - struct nh_dump_filter filter; +struct intel_psf_gv_point { + u8 clk; }; -enum { - NDUSEROPT_UNSPEC = 0, - NDUSEROPT_SRCADDR = 1, - __NDUSEROPT_MAX = 2, +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 nd_msg { - struct icmp6hdr icmph; - struct in6_addr target; - __u8 opt[0]; +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 rs_msg { - struct icmp6hdr icmph; - __u8 opt[0]; +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 ra_msg { - struct icmp6hdr icmph; - __be32 reachable_time; - __be32 retrans_timer; +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 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 opregion_swsci { + u32 scic; + u32 parm; + u32 dslp; + u8 rsvd[244]; }; -struct gssx_name_attr; +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 gssx_name_attr_array { - u32 count; - struct gssx_name_attr *data; +struct opregion_asle_ext { + u32 phed; + u8 bddc[256]; + u8 rsvd[764]; }; -struct gssx_name_attr { - gssx_buffer attr; - gssx_buffer value; - struct gssx_option_array extensions; +struct acpi_bus_event { + struct list_head node; + acpi_device_class device_class; + acpi_bus_id bus_id; + u32 type; + u32 data; }; -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 video_levels; -enum p9_fid_reftype { - P9_FID_REF_CREATE = 0, - P9_FID_REF_GET = 1, - P9_FID_REF_PUT = 2, - P9_FID_REF_DESTROY = 3, -} __attribute__((mode(byte))); +struct color_conversion; -enum { - Opt_msize = 0, - Opt_trans = 1, - Opt_legacy = 2, - Opt_version = 3, - Opt_err___9 = 4, +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 trace_event_raw_9p_client_req { - struct trace_entry ent; - void *clnt; - __u8 type; - __u32 tag; - char __data[0]; +struct video_levels { + u16 blank; + u16 black; + u8 burst; }; -struct trace_event_raw_9p_client_res { - struct trace_entry ent; - void *clnt; - __u8 type; - __u32 tag; - __u32 err; - char __data[0]; +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 trace_event_raw_9p_protocol_dump { - struct trace_entry ent; - void *clnt; - __u8 type; - __u16 tag; - unsigned char line[32]; - char __data[0]; +struct input_res { + u16 w; + u16 h; }; -struct trace_event_raw_9p_fid_ref { - struct trace_entry ent; - int fid; - int refcount; - __u8 type; - char __data[0]; +struct intel_tv_connector_state { + struct drm_connector_state base; + struct { + u16 top; + u16 bottom; + } margins; + bool bypass_vfilter; }; -struct trace_event_data_offsets_9p_client_req {}; +struct intel_tv { + struct intel_encoder base; + int type; +}; -struct trace_event_data_offsets_9p_client_res {}; +struct subsys_private { + struct kset subsys; + struct kset *devices_kset; + struct list_head interfaces; + struct mutex mutex; + struct kset *drivers_kset; + struct klist klist_devices; + struct klist klist_drivers; + struct blocking_notifier_head bus_notifier; + unsigned int drivers_autoprobe: 1; + const struct bus_type *bus; + struct device *dev_root; + struct kset glue_dirs; + const struct class *class; + struct lock_class_key lock_key; +}; -struct trace_event_data_offsets_9p_protocol_dump {}; +struct subsys_dev_iter { + struct klist_iter ki; + const struct device_type *type; +}; -struct trace_event_data_offsets_9p_fid_ref {}; +enum { + ACTION_FAIL = 0, + ACTION_REPREP = 1, + ACTION_DELAYED_REPREP = 2, + ACTION_RETRY = 3, + ACTION_DELAYED_RETRY = 4, +}; -struct p9_flock { - u8 type; - u32 flags; - u64 start; - u64 length; - u32 proc_id; - char *client_id; +enum scsi_host_prot_capabilities { + SHOST_DIF_TYPE1_PROTECTION = 1, + SHOST_DIF_TYPE2_PROTECTION = 2, + SHOST_DIF_TYPE3_PROTECTION = 4, + SHOST_DIX_TYPE0_PROTECTION = 8, + SHOST_DIX_TYPE1_PROTECTION = 16, + SHOST_DIX_TYPE2_PROTECTION = 32, + SHOST_DIX_TYPE3_PROTECTION = 64, }; -struct p9_getlock { - u8 type; - u64 start; - u64 length; - u32 proc_id; - char *client_id; +enum chip_flags { + HasHltClk = 1, + HasLWake = 2, }; -struct compress_format { - unsigned char magic[2]; - const char *name; - decompress_fn decompressor; +enum RTL8139_registers { + MAC0___2 = 0, + MAR0___2 = 8, + TxStatus0 = 16, + TxAddr0 = 32, + RxBuf = 48, + ChipCmd___2 = 55, + RxBufPtr = 56, + RxBufAddr = 58, + IntrMask___2 = 60, + IntrStatus___2 = 62, + TxConfig___2 = 64, + RxConfig___2 = 68, + Timer = 72, + RxMissed = 76, + Cfg9346___2 = 80, + Config0___2 = 81, + Config1___2 = 82, + TimerInt = 84, + MediaStatus = 88, + Config3___2 = 89, + Config4___2 = 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___2 = 216, }; -struct inflate_workspace { - struct inflate_state inflate_state; - unsigned char working_window[32768]; +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, }; -struct amd_iommu_event_desc { - struct device_attribute attr; - const char *event; +enum Cfg9346Bits { + Cfg9346_Lock___2 = 0, + Cfg9346_Unlock___2 = 192, }; -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 Config4Bits { + LWPTN = 4, }; -struct module_sect_attr { - struct bin_attribute battr; - unsigned long address; +enum ChipCmdBits { + CmdReset___2 = 16, + CmdRxEnb___2 = 8, + CmdTxEnb___2 = 4, + RxBufEmpty___2 = 1, }; -struct module_sect_attrs { - struct attribute_group grp; - unsigned int nsections; - struct module_sect_attr attrs[0]; +enum IntrStatusBits { + PCIErr = 32768, + PCSTimeout___2 = 16384, + RxFIFOOver___2 = 64, + RxUnderrun = 32, + RxOverflow___2 = 16, + TxErr___2 = 8, + TxOK___2 = 4, + RxErr___2 = 2, + RxOK___2 = 1, + RxAckBits = 81, }; -struct module_notes_attrs { - struct kobject *dir; - unsigned int notes; - struct bin_attribute attrs[0]; +enum CSCRBits { + CSCR_LinkOKBit = 1024, + CSCR_LinkChangeBit = 2048, + CSCR_LinkStatusBits = 61440, + CSCR_LinkDownOffCmd = 960, + CSCR_LinkDownCmd = 62400, }; -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; +enum { + HAS_MII_XCVR = 65536, + HAS_CHIP_XCVR = 131072, + HAS_LNK_CHNG = 262144, }; -struct kretprobe_trace_entry_head { - struct trace_entry ent; - unsigned long func; - unsigned long ret_ip; +enum TxStatusBits { + TxHostOwns = 8192, + TxUnderrun = 16384, + TxStatOK = 32768, + TxOutOfWindow = 536870912, + TxAborted = 1073741824, + TxCarrierLost = 2147483648, }; -struct kprobe_trace_entry_head { - struct trace_entry ent; - unsigned long ip; +enum tx_config_bits { + TxIFGShift = 24, + TxIFG84 = 0, + TxIFG88 = 16777216, + TxIFG92 = 33554432, + TxIFG96 = 50331648, + TxLoopBack = 393216, + TxCRC = 65536, + TxClearAbt = 1, + TxDMAShift___2 = 8, + TxRetryShift = 4, + TxVersionMask = 2088763392, }; -struct bp_slots_histogram { - atomic_t count[4]; +enum rx_mode_bits { + AcceptErr___2 = 32, + AcceptRunt___2 = 16, + AcceptBroadcast___2 = 8, + AcceptMulticast___2 = 4, + AcceptMyPhys___2 = 2, + AcceptAllPhys___2 = 1, }; -struct bp_cpuinfo { - unsigned int cpu_pinned; - struct bp_slots_histogram tsk_pinned; +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 bp_type_idx { - TYPE_INST = 0, - TYPE_DATA = 0, - TYPE_MAX = 1, +enum ClearBitMasks { + MultiIntrClear = 61440, + ChipCmdClear = 226, + Config1Clear = 206, }; -struct slub_flush_work { - struct work_struct work; - struct kmem_cache *s; - bool skip; +enum Config5Bits { + Cfg5_PME_STS = 1, + Cfg5_LANWake = 2, + Cfg5_LDPS = 4, + Cfg5_FIFOAddrPtr = 8, + Cfg5_UWF = 16, + Cfg5_MWF = 32, + Cfg5_BWF = 64, }; -struct slab_attribute { - struct attribute attr; - ssize_t (*show)(struct kmem_cache *, char *); - ssize_t (*store)(struct kmem_cache *, const char *, size_t); +enum RxStatusBits { + RxMulticast = 32768, + RxPhysical = 16384, + RxBroadcast = 8192, + RxBadSymbol = 32, + RxRunt = 16, + RxTooLong = 8, + RxCRCErr = 4, + RxBadAlign = 2, + RxStatusOK = 1, }; -struct saved_alias { - struct kmem_cache *s; - const char *name; - struct saved_alias *next; +struct rtl8139_stats { + u64 packets; + u64 bytes; + struct u64_stats_sync syncp; }; -enum track_item { - TRACK_ALLOC = 0, - TRACK_FREE = 1, +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; }; -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, +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; }; -enum slab_modes { - M_NONE = 0, - M_PARTIAL = 1, - M_FREE = 2, - M_FULL_NOLIST = 3, +struct resource_map { + u_long base; + u_long num; + struct resource_map *next; }; -enum slab_stat_type { - SL_ALL = 0, - SL_PARTIAL = 1, - SL_CPU = 2, - SL_OBJECTS = 3, - SL_TOTAL = 4, +struct socket_data { + struct resource_map mem_db; + struct resource_map mem_db_valid; + struct resource_map io_db; }; -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 pcmcia_align_data { + unsigned long mask; + unsigned long offset; + struct resource_map *map; }; -struct track { - unsigned long addr; - depot_stack_handle_t handle; - int cpu; - int pid; - unsigned long when; +enum ptp_clock_events { + PTP_CLOCK_ALARM = 0, + PTP_CLOCK_EXTTS = 1, + PTP_CLOCK_PPS = 2, + PTP_CLOCK_PPSUSR = 3, }; -struct detached_freelist { - struct slab *slab; - void *tail; - void *freelist; - int cnt; - struct kmem_cache *s; +struct pps_event_time { + struct timespec64 ts_real; }; -union __u128_halves { - u128 full; - struct { - u64 low; - u64 high; +struct ptp_clock_event { + int type; + int index; + union { + u64 timestamp; + struct pps_event_time pps_times; }; }; -struct partial_context { - struct slab **slab; - gfp_t flags; - unsigned int orig_size; +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 loc_track { - unsigned long max; - unsigned long count; - struct location *loc; - loff_t idx; +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 inotify_event { - __s32 wd; - __u32 mask; - __u32 cookie; - __u32 len; - char name[0]; +struct snd_monitor_file { + struct file *file; + const struct file_operations *disconnected_f_op; + struct list_head shutdown_list; + struct list_head list; }; -struct ext4_xattr_header { - __le32 h_magic; - __le32 h_refcount; - __le32 h_blocks; - __le32 h_hash; - __le32 h_checksum; - __u32 h_reserved[3]; +struct snd_hrtimer { + struct snd_timer *timer; + struct hrtimer hrt; + bool in_callback; }; -struct ext4_xattr_block_find { - struct ext4_xattr_search s; - struct buffer_head *bh; +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 netif_security_struct { - struct net *ns; - int ifindex; - u32 sid; +struct hdac_widget_tree { + struct kobject *root; + struct kobject *afg; + struct kobject **nodes; }; -struct sel_netif { +struct flow_indr_dev { struct list_head list; - struct netif_security_struct nsec; - struct callback_head callback_head; + flow_indr_block_bind_cb_t *cb; + void *cb_priv; + refcount_t refcnt; }; -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 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 show_busy_params { - struct seq_file *m; - struct blk_mq_hw_ctx *hctx; +struct flow_match { + struct flow_dissector *dissector; + void *mask; + void *key; }; -union nested_table { - union nested_table __attribute__((btf_type_tag("rcu"))) *table; - struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket; +struct flow_rule { + struct flow_match match; + struct flow_action action; }; -typedef ZSTD_DCtx ZSTD_DStream; +struct flow_dissector_key_meta; -struct ZSTD_inBuffer_s { - const void *src; - size_t size; - size_t pos; +struct flow_match_meta { + struct flow_dissector_key_meta *key; + struct flow_dissector_key_meta *mask; }; -typedef struct ZSTD_inBuffer_s ZSTD_inBuffer; - -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 uint8_t U8; - -typedef struct { - U32 f1c; - U32 f1d; - U32 f7b; - U32 f7c; -} ZSTD_cpuid_t; - -typedef struct { - size_t compressedSize; - unsigned long long decompressedBound; -} ZSTD_frameSizeInfo; - -typedef struct { - blockType_e blockType; - U32 lastBlock; - U32 origSize; -} blockProperties_t; - -typedef enum { - not_streaming = 0, - is_streaming = 1, -} streaming_operation; - -typedef enum { - ZSTD_reset_session_only = 1, - ZSTD_reset_parameters = 2, - ZSTD_reset_session_and_parameters = 3, -} ZSTD_ResetDirective; - -typedef enum { - ZSTD_d_windowLogMax = 100, - ZSTD_d_experimentalParam1 = 1000, - ZSTD_d_experimentalParam2 = 1001, - ZSTD_d_experimentalParam3 = 1002, - ZSTD_d_experimentalParam4 = 1003, -} ZSTD_dParameter; - -typedef struct { - size_t error; - int lowerBound; - int upperBound; -} ZSTD_bounds; - -typedef enum { - ZSTDnit_frameHeader = 0, - ZSTDnit_blockHeader = 1, - ZSTDnit_block = 2, - ZSTDnit_lastBlock = 3, - ZSTDnit_checksum = 4, - ZSTDnit_skippableFrame = 5, -} ZSTD_nextInputType_e; - -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 flow_dissector_key_meta { + int ingress_ifindex; + u16 ingress_iftype; + u8 l2_miss; }; -struct trace_event_data_offsets_msr_trace_class {}; - -struct acpi_wakeup_handler { - struct list_head list_node; - bool (*wakeup)(void *); - void *context; +struct flow_match_basic { + struct flow_dissector_key_basic *key; + struct flow_dissector_key_basic *mask; }; -enum dock_callback_type { - DOCK_CALL_HANDLER = 0, - DOCK_CALL_FIXUP = 1, - DOCK_CALL_UEVENT = 2, +struct flow_match_control { + struct flow_dissector_key_control *key; + struct flow_dissector_key_control *mask; }; -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 flow_dissector_key_eth_addrs; -struct dock_dependent_device { - struct list_head list; - struct acpi_device *adev; +struct flow_match_eth_addrs { + struct flow_dissector_key_eth_addrs *key; + struct flow_dissector_key_eth_addrs *mask; }; -struct acpi_init_walk_info { - u32 table_index; - u32 object_count; - u32 method_count; - u32 serial_method_count; - u32 non_serial_method_count; - u32 serialized_method_count; - u32 device_count; - u32 op_region_count; - u32 field_count; - u32 buffer_count; - u32 package_count; - u32 op_region_init; - u32 field_init; - u32 buffer_init; - u32 package_init; - acpi_owner_id owner_id; +struct flow_dissector_key_eth_addrs { + unsigned char dst[6]; + unsigned char src[6]; }; -struct acpi_device_walk_info { - struct acpi_table_desc *table_desc; - struct acpi_evaluate_info *evaluate_info; - u32 device_count; - u32 num_STA; - u32 num_INI; +struct flow_match_vlan { + struct flow_dissector_key_vlan *key; + struct flow_dissector_key_vlan *mask; }; -struct vt_event { - unsigned int event; - unsigned int oldev; - unsigned int newev; - unsigned int pad[4]; -}; +struct flow_dissector_key_arp; -struct vt_event_wait { - struct list_head list; - struct vt_event event; - int done; +struct flow_match_arp { + struct flow_dissector_key_arp *key; + struct flow_dissector_key_arp *mask; }; -struct vc { - struct vc_data *d; - struct work_struct SAK_work; +struct flow_dissector_key_arp { + __u32 sip; + __u32 tip; + __u8 op; + unsigned char sha[6]; + unsigned char tha[6]; }; -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 flow_match_ipv4_addrs { + struct flow_dissector_key_ipv4_addrs *key; + struct flow_dissector_key_ipv4_addrs *mask; }; -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 flow_match_ipv6_addrs { + struct flow_dissector_key_ipv6_addrs *key; + struct flow_dissector_key_ipv6_addrs *mask; }; -struct unimapdesc { - unsigned short entry_ct; - struct unipair __attribute__((btf_type_tag("user"))) *entries; +struct flow_match_ip { + struct flow_dissector_key_ip *key; + struct flow_dissector_key_ip *mask; }; -struct compat_unimapdesc { - unsigned short entry_ct; - compat_caddr_t entries; +struct flow_match_ports { + struct flow_dissector_key_ports *key; + struct flow_dissector_key_ports *mask; }; -struct vt_stat { - unsigned short v_active; - unsigned short v_signal; - unsigned short v_state; -}; +struct flow_dissector_key_ports_range; -struct vt_sizes { - unsigned short v_rows; - unsigned short v_cols; - unsigned short v_scrollsize; +struct flow_match_ports_range { + struct flow_dissector_key_ports_range *key; + struct flow_dissector_key_ports_range *mask; }; -struct vt_setactivate { - unsigned int console; - struct vt_mode mode; +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 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 flow_dissector_key_tcp; -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, +struct flow_match_tcp { + struct flow_dissector_key_tcp *key; + struct flow_dissector_key_tcp *mask; }; -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 flow_dissector_key_tcp { + __be16 flags; }; -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 flow_dissector_key_ipsec; + +struct flow_match_ipsec { + struct flow_dissector_key_ipsec *key; + struct flow_dissector_key_ipsec *mask; }; -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 flow_dissector_key_ipsec { + __be32 spi; }; -struct context_entry { - u64 lo; - u64 hi; +struct flow_match_icmp { + struct flow_dissector_key_icmp *key; + struct flow_dissector_key_icmp *mask; }; -struct domain_context_mapping_data { - struct dmar_domain *domain; - struct intel_iommu *iommu; - struct pasid_table *table; +struct flow_dissector_key_mpls; + +struct flow_match_mpls { + struct flow_dissector_key_mpls *key; + struct flow_dissector_key_mpls *mask; }; -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; +struct flow_dissector_mpls_lse { + u32 mpls_ttl: 8; + u32 mpls_bos: 1; + u32 mpls_tc: 3; + u32 mpls_label: 20; }; -struct drm_i915_gem_mmap { - __u32 handle; - __u32 pad; - __u64 offset; - __u64 size; - __u64 addr_ptr; - __u64 flags; +struct flow_dissector_key_mpls { + struct flow_dissector_mpls_lse ls[7]; + u8 used_lses; }; -struct drm_i915_gem_mmap_offset { - __u32 handle; - __u32 pad; - __u64 offset; - __u64 flags; - __u64 extensions; +struct flow_match_enc_keyid { + struct flow_dissector_key_keyid *key; + struct flow_dissector_key_keyid *mask; }; -struct __guc_mmio_reg_descr; +struct flow_dissector_key_enc_opts; -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 flow_match_enc_opts { + struct flow_dissector_key_enc_opts *key; + struct flow_dissector_key_enc_opts *mask; }; -struct __guc_mmio_reg_descr { - i915_reg_t reg; - u32 flags; - u32 mask; - const char *regname; +struct flow_dissector_key_enc_opts { + u8 data[255]; + u8 len; + __be16 dst_opt_type; }; -struct __ext_steer_reg { - const char *name; - i915_mcr_reg_t reg; -}; +struct flow_dissector_key_ct; -struct __guc_capture_ads_cache { - bool is_valid; - void *ptr; - size_t size; - int status; +struct flow_match_ct { + struct flow_dissector_key_ct *key; + struct flow_dissector_key_ct *mask; }; -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 flow_dissector_key_ct { + u16 ct_state; + u16 ct_zone; + u32 ct_mark; + u32 ct_labels[4]; }; -struct gcap_reg_list_info { - u32 vfid; - u32 num_regs; - struct guc_mmio_reg *regs; -}; +struct flow_dissector_key_pppoe; -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]; +struct flow_match_pppoe { + struct flow_dissector_key_pppoe *key; + struct flow_dissector_key_pppoe *mask; }; -struct guc_debug_capture_list_header { - u32 info; +struct flow_dissector_key_pppoe { + __be16 session_id; + __be16 ppp_proto; + __be16 type; }; -struct guc_debug_capture_list { - struct guc_debug_capture_list_header header; - struct guc_mmio_reg regs[0]; -}; +struct flow_dissector_key_l2tpv3; -struct __guc_capture_bufstate { - u32 size; - void *data; - u32 rd; - u32 wr; +struct flow_match_l2tpv3 { + struct flow_dissector_key_l2tpv3 *key; + struct flow_dissector_key_l2tpv3 *mask; }; -struct guc_state_capture_header_t { - u32 owner; - u32 info; - u32 lrca; - u32 guc_id; - u32 num_mmios; +struct flow_dissector_key_l2tpv3 { + __be32 session_id; }; -struct guc_state_capture_group_header_t { - u32 owner; - u32 info; -}; +typedef u64 (*btf_bpf_sock_map_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); -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; -}; +typedef u64 (*btf_bpf_sk_redirect_map)(struct sk_buff *, struct bpf_map *, u32, u64); -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 u64 (*btf_bpf_msg_redirect_map)(struct sk_msg *, struct bpf_map *, u32, u64); -typedef bool (*pps_check)(struct drm_i915_private *, int); +typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); -struct auxiliary_device_id; +typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64); -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; -}; +typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); -struct auxiliary_device_id { - char name[32]; - kernel_ulong_t driver_data; +struct bpf_stab { + struct bpf_map map; + struct sock **sks; + struct sk_psock_progs progs; + spinlock_t lock; + long: 64; + long: 64; }; -struct mdio_board_entry { - struct list_head list; - struct mdio_board_info board_info; -}; +struct bpf_shtab_bucket; -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; - const struct e1000_opt_list *p; - } l; - } arg; +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: 64; }; -struct swoc_info { - __u8 rev; - __u8 reserved[8]; - __u16 LinuxSKU; - __u16 LinuxVer; - __u8 reserved2[47]; -} __attribute__((packed)); +struct bpf_shtab_bucket { + struct hlist_head head; + spinlock_t lock; +}; -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 bpf_shtab_elem { + struct callback_head rcu; + u32 hash; + struct sock *sk; + struct hlist_node node; + u8 key[0]; }; -struct kcopyd_job { - struct dm_kcopyd_client *kc; - struct list_head list; - unsigned int flags; - int read_err; - unsigned long write_err; - enum req_op op; - struct dm_io_region source; - unsigned int num_dests; - struct dm_io_region dests[8]; - struct page_list *pages; - dm_kcopyd_notify_fn fn; - void *context; - struct mutex lock; - atomic_t sub_jobs; - sector_t progress; - sector_t write_offset; - struct kcopyd_job *master_job; +struct sock_map_seq_info { + struct bpf_map *map; + struct sock *sk; + u32 index; }; -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 bpf_iter__sockmap { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_map *map; + }; + union { + void *key; + }; + union { + struct sock *sk; + }; }; -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 sock_hash_seq_info { + struct bpf_map *map; + struct bpf_shtab *htab; + u32 bucket_id; }; -struct hid_parser { - struct hid_global global; - struct hid_global global_stack[4]; - unsigned int global_stack_ptr; - struct hid_local local; - unsigned int *collection_stack; - unsigned int collection_stack_ptr; - unsigned int collection_stack_size; - struct hid_device *device; - unsigned int scan_flags; +enum { + 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 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 privflags_reply_data { + struct ethnl_reply_data base; + const char (*priv_flag_names)[32]; + unsigned int n_priv_flags; + u32 priv_flags; }; -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 conntrack_gc_work { + struct delayed_work dwork; + u32 next_bucket; + u32 avg_timeout; + u32 count; + u32 start_time; + bool exiting; + bool early_drop; }; -struct hid_dynid { - struct list_head list; - struct hid_device_id id; +enum nf_ct_ecache_state { + NFCT_ECACHE_DESTROY_FAIL = 0, + NFCT_ECACHE_DESTROY_SENT = 1, }; -struct snd_dma_data { - int dma; +enum nf_ct_helper_flags { + NF_CT_HELPER_F_USERSPACE = 1, + NF_CT_HELPER_F_CONFIGURED = 2, }; -struct snd_seq_usage { - int cur; - int peak; +struct nf_ct_timeout { + __u16 l3num; + const struct nf_conntrack_l4proto *l4proto; + char data[0]; }; -struct ioctl_handler { - unsigned int cmd; - int (*func)(struct snd_seq_client *, void *); +struct nf_conn_counter { + atomic64_t packets; + atomic64_t bytes; }; -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 nf_conn_acct { + struct nf_conn_counter counter[2]; }; -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; - unsigned int midi_version; - unsigned int group_filter; - char reserved[48]; +struct nf_conn_tstamp { + u_int64_t start; + u_int64_t stop; }; -struct snd_seq_queue_client { - int queue; - int client; - int used; - char reserved[64]; +struct nf_conn_timeout { + struct nf_ct_timeout __attribute__((btf_type_tag("rcu"))) *timeout; }; -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 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 snd_seq_system_info { - int queues; - int clients; - int ports; - int channels; - int cur_clients; - int cur_queues; - char reserved[24]; +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 snd_seq_running_info { - unsigned char client; - unsigned char big_endian; - unsigned char cpu_mode; - unsigned char pad; - unsigned char reserved[12]; +struct tcp6_sock { + struct tcp_sock tcp; + struct ipv6_pinfo inet6; }; -struct snd_seq_queue_info { - int queue; - int owner; - unsigned int locked: 1; - char name[64]; - unsigned int flags; - char reserved[60]; +struct tcp6_pseudohdr { + struct in6_addr saddr; + struct in6_addr daddr; + __be32 len; + __be32 protocol; }; -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 unix_domain { + struct auth_domain h; }; -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 unix_gid { + struct cache_head h; + kuid_t uid; + struct group_info *gi; + struct callback_head rcu; }; -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 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; }; -struct snd_seq_ump_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 { - union snd_seq_event_data data; - unsigned int ump[4]; - }; +struct _strp_msg { + struct strp_msg strp; + int accum_len; }; -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]; +struct sta_link_alloc { + struct link_sta_info info; + struct ieee80211_link_sta sta; + struct callback_head callback_head; }; -struct sk_psock_link { - struct list_head list; - struct bpf_map *map; - void *link_raw; +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 *); }; enum { - ETHTOOL_STATS_ETH_PHY = 0, - ETHTOOL_STATS_ETH_MAC = 1, - ETHTOOL_STATS_ETH_CTRL = 2, - ETHTOOL_STATS_RMON = 3, - __ETHTOOL_STATS_CNT = 4, + NLBL_CALIPSO_A_UNSPEC = 0, + NLBL_CALIPSO_A_DOI = 1, + NLBL_CALIPSO_A_MTYPE = 2, + __NLBL_CALIPSO_A_MAX = 3, }; 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, + 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, }; -enum { - ETHTOOL_A_STATS_GRP_UNSPEC = 0, - ETHTOOL_A_STATS_GRP_PAD = 1, - ETHTOOL_A_STATS_GRP_ID = 2, - ETHTOOL_A_STATS_GRP_SS_ID = 3, - ETHTOOL_A_STATS_GRP_STAT = 4, - ETHTOOL_A_STATS_GRP_HIST_RX = 5, - ETHTOOL_A_STATS_GRP_HIST_TX = 6, - ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, - ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, - ETHTOOL_A_STATS_GRP_HIST_VAL = 9, - __ETHTOOL_A_STATS_GRP_CNT = 10, - ETHTOOL_A_STATS_GRP_MAX = 9, +struct netlbl_calipso_doiwalk_arg { + struct netlink_callback *nl_cb; + struct sk_buff *skb; + u32 seq; }; -enum { - ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0, - __ETHTOOL_A_STATS_ETH_PHY_CNT = 1, - ETHTOOL_A_STATS_ETH_PHY_MAX = 0, +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, }; -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, +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]; }; -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, +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]; }; -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 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 stats_req_info { - struct ethnl_req_info base; - unsigned long stat_mask[1]; - enum ethtool_mac_stats_src src; +struct maple_pnode; + +struct maple_metadata { + unsigned char end; + unsigned char gap; }; -struct stats_reply_data { - struct ethnl_reply_data base; +struct maple_range_64 { + struct maple_pnode *parent; + unsigned long pivot[15]; union { + void __attribute__((btf_type_tag("rcu"))) *slot[16]; 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; + 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 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; + 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; }; - const struct ethtool_rmon_hist_range *rmon_ranges; }; -struct svc_xpt_user { - struct list_head list; - void (*callback)(struct svc_xpt_user *); +struct maple_topiary { + struct maple_pnode *parent; + struct maple_enode *next; }; -struct mcs_group___2 { - u16 flags; - u8 streams; - u8 shift; - u8 bw; - u16 duration[10]; +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; }; -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 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 minstrel_sample_category { - u8 sample_group; - u16 sample_rates[5]; - u16 cur_sample_rates[5]; +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 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 ma_topiary { + struct maple_enode *head; + struct maple_enode *tail; + struct maple_tree *mtree; }; -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 trace_event_data_offsets_ma_op {}; + +struct trace_event_data_offsets_ma_read {}; + +struct trace_event_data_offsets_ma_write {}; + +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, }; -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 smca_hwid; + +struct smca_bank { + const struct smca_hwid *hwid; + u32 id; + u8 sysfs_id; }; -struct minstrel_priv { - struct ieee80211_hw *hw; - unsigned int cw_min; - unsigned int cw_max; - unsigned int max_retry; - unsigned int segment_size; - unsigned int update_interval; - u8 cck_rates[4]; - u8 ofdm_rates[48]; +struct smca_hwid { + unsigned int bank_type; + u32 hwid_mcatype; }; -struct klist_waiter { - struct list_head list; - struct klist_node *node; - struct task_struct *process; - int woken; +struct smca_bank_name { + const char *name; + const char *long_name; }; -enum reg_type { - REG_TYPE_RM = 0, - REG_TYPE_REG = 1, - REG_TYPE_INDEX = 2, - REG_TYPE_BASE = 3, +struct threshold_attr { + struct attribute attr; + ssize_t (*show)(struct threshold_block *, char *); + ssize_t (*store)(struct threshold_block *, const char *, size_t); }; -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, +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 perf_msr_id { - PERF_MSR_TSC = 0, - PERF_MSR_APERF = 1, - PERF_MSR_MPERF = 2, - PERF_MSR_PPERF = 3, - PERF_MSR_SMI = 4, - PERF_MSR_PTSC = 5, - PERF_MSR_IRPERF = 6, - PERF_MSR_THERM = 7, - PERF_MSR_EVENT_MAX = 8, +struct thresh_restart { + struct threshold_block *b; + int reset; + int set_lvt_off; + int lvt_off; + u16 old_limit; }; -enum uv_system_type { - UV_NONE = 0, - UV_LEGACY_APIC = 1, - UV_X2APIC = 2, +enum cp_error_code { + CP_EC = 32767, + CP_RET = 1, + CP_IRET = 2, + CP_ENDBR = 3, + CP_RSTRORSSP = 4, + CP_SETSSBSY = 5, + CP_ENCL = 32768, }; -struct kaslr_memory_region { - unsigned long *base; - unsigned long size_tb; +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); + +struct trace_event_raw_x86_exceptions { + struct trace_entry ent; + unsigned long address; + unsigned long ip; + unsigned long error_code; + char __data[0]; }; -struct param_attribute { - struct module_attribute mattr; - const struct kernel_param *param; +struct trace_event_data_offsets_x86_exceptions {}; + +struct pm_vt_switch { + struct list_head head; + struct device *dev; + bool required; }; -struct module_param_attrs { - unsigned int num; - struct attribute_group grp; - struct param_attribute attrs[0]; +struct msi_ctrl { + unsigned int domid; + unsigned int first; + unsigned int last; + unsigned int nirqs; }; -enum { - KERNEL_PARAM_OPS_FL_NOARG = 1, +struct timer_list_iter { + int cpu; + bool second_pass; + u64 now; }; -enum { - KERNEL_PARAM_FL_UNSAFE = 1, - KERNEL_PARAM_FL_HWPARAM = 2, +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); + +enum cgroup2_param { + Opt_nsdelegate = 0, + Opt_favordynmods___2 = 1, + Opt_memory_localevents = 2, + Opt_memory_recursiveprot = 3, + Opt_memory_hugetlb_accounting = 4, + nr__cgroup2_params = 5, }; -struct kmalloced_param { - struct list_head list; - char val[0]; +enum cgroup_opt_features { + OPT_FEATURE_COUNT = 0, }; -enum rtmutex_chainwalk { - RT_MUTEX_MIN_CHAINWALK = 0, - RT_MUTEX_FULL_CHAINWALK = 1, +struct trace_event_raw_cgroup_root { + struct trace_entry ent; + int root; + u16 ss_mask; + u32 __data_loc_name; + char __data[0]; }; -struct rcu_exp_work { - unsigned long rew_s; - struct work_struct rew_work; +struct trace_event_raw_cgroup { + struct trace_entry ent; + int root; + int level; + u64 id; + u32 __data_loc_path; + char __data[0]; }; -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: 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; +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]; }; -union rcu_noqs { - struct { - u8 norm; - u8 exp; - } b; - u16 s; +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 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 trace_event_data_offsets_cgroup_root { + u32 name; }; -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 trace_event_data_offsets_cgroup { + u32 path; }; -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: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - arch_spinlock_t ofl_lock; - int nocb_is_setup; +struct trace_event_data_offsets_cgroup_migrate { + u32 dst_path; + u32 comm; +}; + +struct trace_event_data_offsets_cgroup_event { + u32 path; +}; + +struct bpf_cpu_map_entry; + +struct xdp_bulk_queue { + void *q[8]; + struct list_head flush_node; + struct bpf_cpu_map_entry *obj; + unsigned int count; +}; + +struct bpf_cpumap_val { + __u32 qsize; + union { + int fd; + __u32 id; + } bpf_prog; +}; + +struct bpf_cpu_map_entry { + u32 cpu; + int map_id; + struct xdp_bulk_queue __attribute__((btf_type_tag("percpu"))) *bulkq; + struct ptr_ring *queue; + struct task_struct *kthread; + struct bpf_cpumap_val value; + struct bpf_prog *prog; + struct completion kthread_running; + struct rcu_work free_work; +}; + +struct bpf_cpu_map { + struct bpf_map map; + struct bpf_cpu_map_entry __attribute__((btf_type_tag("rcu"))) **cpu_map; long: 64; long: 64; long: 64; @@ -136619,2294 +140407,1838 @@ struct rcu_state { long: 64; }; -struct rcu_gp_oldstate { - unsigned long rgos_norm; - unsigned long rgos_exp; +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 kfree_rcu_cpu; +struct swap_cgroup_ctrl { + struct page **map; + unsigned long length; + spinlock_t lock; +}; -struct kfree_rcu_cpu_work { - struct rcu_work rcu_work; - struct callback_head *head_free; - struct rcu_gp_oldstate head_free_gp_snap; - struct list_head bulk_head_free[2]; - struct kfree_rcu_cpu *krcp; +struct swap_cgroup { + unsigned short id; }; -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 old_linux_dirent { + unsigned long d_ino; + unsigned long d_offset; + unsigned short d_namlen; + char d_name[0]; }; -struct context_tracking { - atomic_t state; - long dynticks_nesting; - long dynticks_nmi_nesting; +struct readdir_callback { + struct dir_context ctx; + struct old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent; + int result; }; -struct kvfree_rcu_bulk_data { - struct list_head list; - struct rcu_gp_oldstate gp_snap; - unsigned long nr_records; - void *records[0]; +struct linux_dirent { + unsigned long d_ino; + unsigned long d_off; + unsigned short d_reclen; + char d_name[0]; }; -struct rcu_stall_chk_rdr { - int nesting; - union rcu_special rs; - bool on_blkd_list; +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; }; -typedef void (*call_rcu_func_t)(struct callback_head *, rcu_callback_t); +struct linux_dirent64 { + u64 d_ino; + s64 d_off; + unsigned short d_reclen; + unsigned char d_type; + char d_name[0]; +}; -struct sched_param { - int sched_priority; +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 syscall_trace_enter { - struct trace_entry ent; - int nr; - unsigned long args[0]; +struct compat_old_linux_dirent { + compat_ulong_t d_ino; + compat_ulong_t d_offset; + unsigned short d_namlen; + char d_name[0]; }; -struct syscall_trace_exit { - struct trace_entry ent; - int nr; - long ret; +struct compat_readdir_callback { + struct dir_context ctx; + struct compat_old_linux_dirent __attribute__((btf_type_tag("user"))) *dirent; + int result; }; -struct syscall_tp_t { - unsigned long long regs; - unsigned long syscall_nr; - unsigned long args[6]; +struct compat_linux_dirent { + compat_ulong_t d_ino; + compat_ulong_t d_off; + unsigned short d_reclen; + char d_name[0]; }; -struct syscall_tp_t___2 { - unsigned long long regs; - unsigned long syscall_nr; - unsigned long ret; +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 bpf_iter__bpf_link { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_link *link; - }; +struct inotify_event { + __s32 wd; + __u32 mask; + __u32 cookie; + __u32 len; + char name[0]; }; -struct bpf_iter_seq_link_info { - u32 link_id; +enum proc_param { + Opt_gid___8 = 0, + Opt_hidepid = 1, + Opt_subset = 2, }; -struct fprop_global { - struct percpu_counter events; - unsigned int period; - seqcount_t sequence; +struct proc_fs_context { + struct pid_namespace *pid_ns; + unsigned int mask; + enum proc_hidepid hidepid; + int gid; + enum proc_pidonly pidonly; }; -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 SU_SP_s { + __u8 magic[2]; + __u8 skip; }; -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 SU_CE_s { + __u8 extent[8]; + __u8 offset[8]; + __u8 size[8]; }; -struct wb_lock_cookie { - bool locked; - unsigned long flags; +struct SU_ER_s { + __u8 len_id; + __u8 len_des; + __u8 len_src; + __u8 ext_ver; + __u8 data[0]; }; -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 RR_RR_s { + __u8 flags[1]; }; -enum SHIFT_DIRECTION { - SHIFT_LEFT = 0, - SHIFT_RIGHT = 1, +struct RR_PX_s { + __u8 mode[8]; + __u8 n_links[8]; + __u8 uid[8]; + __u8 gid[8]; }; -struct ext4_extent_tail { - __le32 et_checksum; +struct RR_PN_s { + __u8 dev_high[8]; + __u8 dev_low[8]; }; -struct nfs_callback_data { - unsigned int users; - struct svc_serv *serv; +struct SL_component { + __u8 flags; + __u8 len; + __u8 text[0]; }; -enum nfs4_callback_procnum { - CB_NULL = 0, - CB_COMPOUND = 1, +struct RR_SL_s { + __u8 flags; + struct SL_component link; }; -struct fscache_cookie; +struct RR_NM_s { + __u8 flags; + char name[0]; +}; -struct hashtab_key_params { - u32 (*hash)(const void *); - int (*cmp)(const void *, const void *); +struct RR_CL_s { + __u8 location[8]; }; -struct policydb_compat_info { - int version; - int sym_num; - int ocon_num; +struct RR_PL_s { + __u8 location[8]; }; -struct uuidcmp { - const char *uuid; - int len; +struct stamp { + __u8 time[7]; }; -struct statx; +struct RR_TF_s { + __u8 flags; + struct stamp times[0]; +}; -struct io_statx { - struct file *file; - int dfd; - unsigned int mask; - unsigned int flags; - struct filename *filename; - struct statx __attribute__((btf_type_tag("user"))) *buffer; +struct RR_ZF_s { + __u8 algorithm[2]; + __u8 parms[2]; + __u8 real_size[8]; }; -struct statx_timestamp { - __s64 tv_sec; - __u32 tv_nsec; - __s32 __reserved; +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 statx { - __u32 stx_mask; - __u32 stx_blksize; - __u64 stx_attributes; - __u32 stx_nlink; - __u32 stx_uid; - __u32 stx_gid; - __u16 stx_mode; - __u16 __spare0[1]; - __u64 stx_ino; - __u64 stx_size; - __u64 stx_blocks; - __u64 stx_attributes_mask; - struct statx_timestamp stx_atime; - struct statx_timestamp stx_btime; - struct statx_timestamp stx_ctime; - struct statx_timestamp stx_mtime; - __u32 stx_rdev_major; - __u32 stx_rdev_minor; - __u32 stx_dev_major; - __u32 stx_dev_minor; - __u64 stx_mnt_id; - __u32 stx_dio_mem_align; - __u32 stx_dio_offset_align; - __u64 __spare3[12]; +struct rock_state { + void *buffer; + unsigned char *chr; + int len; + int cont_size; + int cont_extent; + int cont_offset; + int cont_loops; + struct inode *inode; }; -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 tracefs_dir_ops { + int (*mkdir)(const char *); + int (*rmdir)(const char *); }; -typedef enum { - set_basic = 0, - set_rle = 1, - set_compressed = 2, - set_repeat = 3, -} symbolEncodingType_e; +struct tracefs_mount_opts { + kuid_t uid; + kgid_t gid; + umode_t mode; + unsigned int opts; +}; -typedef enum { - ZSTD_lo_isRegularOffset = 0, - ZSTD_lo_isLongOffset = 1, -} ZSTD_longOffset_e; +struct tracefs_fs_info { + struct tracefs_mount_opts mount_opts; +}; -typedef struct { - U32 fastMode; - U32 tableLog; -} ZSTD_seqSymbol_header; +typedef void (*btf_trace_selinux_audited)(void *, struct selinux_audit_data *, char *, char *, const char *); -typedef struct { - size_t litLength; - size_t matchLength; - size_t offset; -} seq_t; +struct avc_cache { + struct hlist_head slots[512]; + spinlock_t slots_lock[512]; + atomic_t lru_hint; + atomic_t active_nodes; + u32 latest_notif; +}; -typedef struct { - size_t state; - const ZSTD_seqSymbol *table; -} ZSTD_fseState; +struct selinux_avc { + unsigned int avc_cache_threshold; + struct avc_cache avc_cache; +}; -typedef struct { - BIT_DStream_t DStream; - ZSTD_fseState stateLL; - ZSTD_fseState stateOffb; - ZSTD_fseState stateML; - size_t prevOffset[3]; -} seqState_t; +struct avc_callback_node { + int (*callback)(u32); + u32 events; + struct avc_callback_node *next; +}; -typedef enum { - ZSTD_no_overlap = 0, - ZSTD_overlap_src_before_dst = 1, -} ZSTD_overlap_e; +struct avc_xperms_node; -struct walk_rcec_data { - struct pci_dev *rcec; - int (*user_callback)(struct pci_dev *, void *); - void *user_data; +struct avc_entry { + u32 ssid; + u32 tsid; + u16 tclass; + struct av_decision avd; + struct avc_xperms_node *xp_node; }; -struct acpi_dev_walk_context { - int (*fn)(struct acpi_device *, void *); - void *data; +struct avc_node { + struct avc_entry ae; + struct hlist_node list; + struct callback_head rhead; }; -struct acpi_thermal_critical { - unsigned long temperature; - bool valid; +struct avc_xperms_node { + struct extended_perms xp; + struct list_head xpd_head; }; -struct acpi_thermal_hot { - unsigned long temperature; - bool valid; +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 acpi_thermal_passive { - struct acpi_handle_list devices; - unsigned long temperature; - unsigned long tc1; - unsigned long tc2; - unsigned long tsp; - bool valid; +struct avc_xperms_decision_node { + struct extended_perms_decision xpd; + struct list_head xpd_list; }; -struct acpi_thermal_active { - struct acpi_handle_list devices; - unsigned long temperature; - bool valid; - bool enabled; +struct trace_event_data_offsets_selinux_audited { + u32 scontext; + u32 tcontext; + u32 tclass; }; -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 chksum_ctx { + u32 key; }; -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_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 chksum_desc_ctx { + u32 crc; }; -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 blk_ia_range_sysfs_entry { + struct attribute attr; + ssize_t (*show)(struct blk_independent_access_range *, char *); }; -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 io_madvise { + struct file *file; + u64 addr; + u32 len; + u32 advice; }; -struct agp_3_5_dev { - struct list_head list; - u8 capndx; - u32 maxbw; - struct pci_dev *dev; +struct io_fadvise { + struct file *file; + u64 offset; + u32 len; + u32 advice; }; -struct isoch_data { - u32 maxbw; - u32 n; - u32 y; - u32 l; - u32 rq; - struct agp_3_5_dev *dev; +struct region { + unsigned int start; + unsigned int off; + unsigned int group_len; + unsigned int end; + unsigned int nbits; }; -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 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 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 genpool_data_align { + int align; }; -typedef struct drm_i915_getparam drm_i915_getparam_t; +struct genpool_data_fixed { + unsigned long offset; +}; -struct i915_ttm_tt { - struct ttm_tt ttm; - struct device *dev; - struct i915_refct_sgt cached_rsgt; - bool is_shmem; - struct file *filp; +struct prt_quirk { + const struct dmi_system_id *system; + unsigned int segment; + unsigned int bus; + unsigned int device; + unsigned char pin; + const char *source; + const char *actual_source; }; -struct skl_wrpll_params { - u32 dco_fraction; - u32 dco_integer; - u32 qdiv_ratio; - u32 qdiv_mode; - u32 kdiv; - u32 pdiv; - u32 central_freq; +enum pci_irq_reroute_variant { + INTEL_IRQ_REROUTE_VARIANT = 1, + MAX_IRQ_REROUTE_VARIANTS = 3, }; -struct icl_combo_pll_params { - int clock; - struct skl_wrpll_params wrpll; +struct acpi_prt_entry { + struct acpi_pci_id id; + u8 pin; + acpi_handle link; + u32 index; }; -struct skl_dpll_regs { - i915_reg_t ctl; - i915_reg_t cfgcr1; - i915_reg_t cfgcr2; +typedef acpi_status (*acpi_execute_op)(struct acpi_walk_state *); + +enum { + AML_FIELD_UPDATE_PRESERVE = 0, + AML_FIELD_UPDATE_WRITE_AS_ONES = 32, + AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64, }; -struct skl_wrpll_context { - u64 min_deviation; - u64 central_freq; - u64 dco_freq; - unsigned int p; +struct acpi_gpe_block_status_context { + struct acpi_gpe_register_info *gpe_skip_register_info; + u8 gpe_skip_mask; + u8 retval; }; -struct hsw_wrpll_rnp { - unsigned int p; - unsigned int n2; - unsigned int r2; +struct dma_chan_tbl_ent { + struct dma_chan *chan; }; -struct drm_dsc_pps_infoframe { - struct dp_sdp_header pps_header; - struct drm_dsc_picture_parameter_set pps_payload; +struct dmaengine_unmap_pool { + struct kmem_cache *cache; + const char *name; + mempool_t *pool; + size_t size; }; -struct probe; +struct memdev { + const char *name; + const struct file_operations *fops; + fmode_t fmode; + umode_t mode; +}; -struct kobj_map { - struct probe *probes[255]; - struct mutex *lock; +struct aper_size_info_lvl2 { + int size; + int num_entries; + u32 size_value; }; -struct probe { - struct probe *next; - dev_t dev; - unsigned long range; - struct module *owner; - kobj_probe_t *get; - int (*lock)(dev_t, void *); - void *data; +struct 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 builtin_fw { - char *name; - void *data; - unsigned long size; +struct drm_mode_obj_get_properties { + __u64 props_ptr; + __u64 prop_values_ptr; + __u32 count_props; + __u32 obj_id; + __u32 obj_type; }; -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; +enum drm_gpuva_flags { + DRM_GPUVA_INVALIDATED = 1, + DRM_GPUVA_SPARSE = 2, + DRM_GPUVA_USERBITS = 4, }; -struct swmii_regs { - u16 bmsr; - u16 lpa; - u16 lpagb; - u16 estat; +enum drm_gpuva_op_type { + DRM_GPUVA_OP_MAP = 0, + DRM_GPUVA_OP_REMAP = 1, + DRM_GPUVA_OP_UNMAP = 2, + DRM_GPUVA_OP_PREFETCH = 3, }; -enum { - SWMII_SPEED_10 = 0, - SWMII_SPEED_100 = 1, - SWMII_SPEED_1000 = 2, - SWMII_DUPLEX_HALF = 0, - SWMII_DUPLEX_FULL = 1, +struct drm_gpuvm; + +struct drm_gpuva { + struct drm_gpuvm *vm; + enum drm_gpuva_flags flags; + struct { + u64 addr; + u64 range; + } va; + struct { + u64 offset; + struct drm_gem_object *obj; + struct list_head entry; + } gem; + struct { + struct rb_node node; + struct list_head entry; + u64 __subtree_last; + } rb; }; -struct rtl821x_priv { - u16 phycr1; - u16 phycr2; - bool has_phycr2; - struct clk *clk; +struct drm_gpuvm_ops; + +struct drm_gpuvm { + const char *name; + u64 mm_start; + u64 mm_range; + struct { + struct rb_root_cached tree; + struct list_head list; + } rb; + struct drm_gpuva kernel_alloc_node; + const struct drm_gpuvm_ops *ops; }; -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); +struct drm_gpuva_op; + +struct drm_gpuvm_ops { + struct drm_gpuva_op * (*op_alloc)(); + void (*op_free)(struct drm_gpuva_op *); + int (*sm_step_map)(struct drm_gpuva_op *, void *); + int (*sm_step_remap)(struct drm_gpuva_op *, void *); + int (*sm_step_unmap)(struct drm_gpuva_op *, void *); }; -enum usb_led_event { - USB_LED_EVENT_HOST = 0, - USB_LED_EVENT_GADGET = 1, +struct drm_gpuva_op_map { + struct { + u64 addr; + u64 range; + } va; + struct { + u64 offset; + struct drm_gem_object *obj; + } gem; }; -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 drm_gpuva_op_unmap; + +struct drm_gpuva_op_remap { + struct drm_gpuva_op_map *prev; + struct drm_gpuva_op_map *next; + struct drm_gpuva_op_unmap *unmap; }; -struct psmouse_smbus_removal_work { - struct work_struct work; - struct i2c_client *client; +struct drm_gpuva_op_unmap { + struct drm_gpuva *va; + bool keep; }; -struct md_setup_args { - int minor; - int partitioned; - int level; - int chunk; - char *device_names; +struct drm_gpuva_op_prefetch { + struct drm_gpuva *va; }; -enum txtime_flags { - SOF_TXTIME_DEADLINE_MODE = 1, - SOF_TXTIME_REPORT_ERRORS = 2, - SOF_TXTIME_FLAGS_LAST = 2, - SOF_TXTIME_FLAGS_MASK = 3, +struct drm_gpuva_op { + struct list_head entry; + enum drm_gpuva_op_type op; + union { + struct drm_gpuva_op_map map; + struct drm_gpuva_op_remap remap; + struct drm_gpuva_op_unmap unmap; + struct drm_gpuva_op_prefetch prefetch; + }; }; -enum { - SK_MEMINFO_RMEM_ALLOC = 0, - SK_MEMINFO_RCVBUF = 1, - SK_MEMINFO_WMEM_ALLOC = 2, - SK_MEMINFO_SNDBUF = 3, - SK_MEMINFO_FWD_ALLOC = 4, - SK_MEMINFO_WMEM_QUEUED = 5, - SK_MEMINFO_OPTMEM = 6, - SK_MEMINFO_BACKLOG = 7, - SK_MEMINFO_DROPS = 8, - SK_MEMINFO_VARS = 9, +struct hdcp_srm_header { + u8 srm_id; + u8 reserved; + __be16 srm_version; + u8 srm_gen_no; +} __attribute__((packed)); + +struct reg_whitelist { + i915_reg_t offset_ldw; + i915_reg_t offset_udw; + u8 min_graphics_ver; + u8 max_graphics_ver; + u8 size; }; -struct linger { - int l_onoff; - int l_linger; +struct drm_i915_reg_read { + __u64 offset; + __u64 val; }; -struct sock_txtime { - __kernel_clockid_t clockid; - __u32 flags; +struct i915_syncmap { + u64 prefix; + unsigned int height; + unsigned int bitmap; + struct i915_syncmap *parent; }; -struct so_timestamping { - int flags; - int bind_phc; +struct drm_i915_getparam32 { + s32 param; + u32 value; }; -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 intel_wedge_me { + struct delayed_work work; + struct intel_gt *gt; + const char *name; }; -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, +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 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 i915_gsc_proxy_component_ops; + +struct i915_gsc_proxy_component { + struct device *mei_dev; + const struct i915_gsc_proxy_component_ops *ops; }; -enum nla_policy_validation { - NLA_VALIDATE_NONE = 0, - NLA_VALIDATE_RANGE = 1, - NLA_VALIDATE_RANGE_WARN_TOO_LONG = 2, - NLA_VALIDATE_MIN = 3, - NLA_VALIDATE_MAX = 4, - NLA_VALIDATE_MASK = 5, - NLA_VALIDATE_RANGE_PTR = 6, - NLA_VALIDATE_FUNCTION = 7, +struct i915_gsc_proxy_component_ops { + struct module *owner; + int (*send)(struct device *, const void *, size_t); + int (*recv)(struct device *, void *, size_t); }; -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]; +enum intel_gsc_proxy_type { + GSC_PROXY_MSG_TYPE_PROXY_INVALID = 0, + GSC_PROXY_MSG_TYPE_PROXY_QUERY = 1, + GSC_PROXY_MSG_TYPE_PROXY_PAYLOAD = 2, + GSC_PROXY_MSG_TYPE_PROXY_END = 3, + GSC_PROXY_MSG_TYPE_PROXY_NOTIFICATION = 4, }; -struct strset_info { - bool per_dev; - bool free_strings; - unsigned int count; - const char (*strings)[32]; +struct intel_gsc_proxy_header { + u32 hdr; + u32 source; + u32 destination; + u32 status; }; -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, +struct gsc_proxy_msg { + struct intel_gsc_mtl_header header; + struct intel_gsc_proxy_header proxy_header; +}; + +struct gsc_def { + const char *name; + unsigned long bar; + size_t bar_size; + bool use_polling; + bool slow_firmware; + size_t lmem_size; +}; + +struct wait_rps_boost { + struct wait_queue_entry wait; + struct drm_crtc *crtc; + struct i915_request *request; +}; + +enum fw_hdcp_status { + FW_HDCP_STATUS_SUCCESS = 0, + FW_HDCP_STATUS_INTERNAL_ERROR = 4096, + FW_HDCP_STATUS_UNKNOWN_ERROR = 4097, + FW_HDCP_STATUS_INCORRECT_API_VERSION = 4098, + FW_HDCP_STATUS_INVALID_FUNCTION = 4099, + FW_HDCP_STATUS_INVALID_BUFFER_LENGTH = 4100, + FW_HDCP_STATUS_INVALID_PARAMS = 4101, + FW_HDCP_STATUS_AUTHENTICATION_FAILED = 4102, + FW_HDCP_INVALID_SESSION_STATE = 24576, + FW_HDCP_SRM_FRAGMENT_UNEXPECTED = 24577, + FW_HDCP_SRM_INVALID_LENGTH = 24578, + FW_HDCP_SRM_FRAGMENT_OFFSET_INVALID = 24579, + FW_HDCP_SRM_VERIFICATION_FAILED = 24580, + FW_HDCP_SRM_VERSION_TOO_OLD = 24581, + FW_HDCP_RX_CERT_VERIFICATION_FAILED = 24582, + FW_HDCP_RX_REVOKED = 24583, + FW_HDCP_H_VERIFICATION_FAILED = 24584, + FW_HDCP_REPEATER_CHECK_UNEXPECTED = 24585, + FW_HDCP_TOPOLOGY_MAX_EXCEEDED = 24586, + FW_HDCP_V_VERIFICATION_FAILED = 24587, + FW_HDCP_L_VERIFICATION_FAILED = 24588, + FW_HDCP_STREAM_KEY_ALLOC_FAILED = 24589, + FW_HDCP_BASE_KEY_RESET_FAILED = 24590, + FW_HDCP_NONCE_GENERATION_FAILED = 24591, + FW_HDCP_STATUS_INVALID_E_KEY_STATE = 24592, + FW_HDCP_STATUS_INVALID_CS_ICV = 24593, + FW_HDCP_STATUS_INVALID_KB_KEY_STATE = 24594, + FW_HDCP_STATUS_INVALID_PAVP_MODE_ICV = 24595, + FW_HDCP_STATUS_INVALID_PAVP_MODE = 24596, + FW_HDCP_STATUS_LC_MAX_ATTEMPTS = 24597, + FW_HDCP_STATUS_MISMATCH_IN_M = 24598, + FW_HDCP_STATUS_RX_PROV_NOT_ALLOWED = 24599, + FW_HDCP_STATUS_RX_PROV_WRONG_SUBJECT = 24600, + FW_HDCP_RX_NEEDS_PROVISIONING = 24601, + FW_HDCP_BKSV_ICV_AUTH_FAILED = 24608, + FW_HDCP_STATUS_INVALID_STREAM_ID = 24609, + FW_HDCP_STATUS_CHAIN_NOT_INITIALIZED = 24610, + FW_HDCP_FAIL_NOT_EXPECTED = 24611, + FW_HDCP_FAIL_HDCP_OFF = 24612, + FW_HDCP_FAIL_INVALID_PAVP_MEMORY_MODE = 24613, + FW_HDCP_FAIL_AES_ECB_FAILURE = 24614, + FW_HDCP_FEATURE_NOT_SUPPORTED = 24615, + FW_HDCP_DMA_READ_ERROR = 24616, + FW_HDCP_DMA_WRITE_ERROR = 24617, + FW_HDCP_FAIL_INVALID_PACKET_SIZE = 24624, + FW_HDCP_H264_PARSING_ERROR = 24625, + FW_HDCP_HDCP2_ERRATA_VIDEO_VIOLATION = 24626, + FW_HDCP_HDCP2_ERRATA_AUDIO_VIOLATION = 24627, + FW_HDCP_TX_ACTIVE_ERROR = 24628, + FW_HDCP_MODE_CHANGE_ERROR = 24629, + FW_HDCP_STREAM_TYPE_ERROR = 24630, + FW_HDCP_STREAM_MANAGE_NOT_POSSIBLE = 24631, + FW_HDCP_STATUS_PORT_INVALID_COMMAND = 24632, + FW_HDCP_STATUS_UNSUPPORTED_PROTOCOL = 24633, + FW_HDCP_STATUS_INVALID_PORT_INDEX = 24634, + FW_HDCP_STATUS_TX_AUTH_NEEDED = 24635, + FW_HDCP_STATUS_NOT_INTEGRATED_PORT = 24636, + FW_HDCP_STATUS_SESSION_MAX_REACHED = 24637, + FW_HDCP_STATUS_NOT_HDCP_CAPABLE = 24641, + FW_HDCP_STATUS_INVALID_STREAM_COUNT = 24642, +}; + +enum hdcp_command_id { + _WIDI_COMMAND_BASE = 196608, + WIDI_INITIATE_HDCP2_SESSION = 196608, + HDCP_GET_SRM_STATUS = 196609, + HDCP_SEND_SRM_FRAGMENT = 196610, + _WIRED_COMMAND_BASE = 200704, + WIRED_INITIATE_HDCP2_SESSION = 200704, + WIRED_VERIFY_RECEIVER_CERT = 200705, + WIRED_AKE_SEND_HPRIME = 200706, + WIRED_AKE_SEND_PAIRING_INFO = 200707, + WIRED_INIT_LOCALITY_CHECK = 200708, + WIRED_VALIDATE_LOCALITY = 200709, + WIRED_GET_SESSION_KEY = 200710, + WIRED_ENABLE_AUTH = 200711, + WIRED_VERIFY_REPEATER = 200712, + WIRED_REPEATER_AUTH_STREAM_REQ = 200713, + WIRED_CLOSE_SESSION = 200714, + _WIRED_COMMANDS_COUNT = 200715, }; -enum { - ETHTOOL_A_STRINGSETS_UNSPEC = 0, - ETHTOOL_A_STRINGSETS_STRINGSET = 1, - __ETHTOOL_A_STRINGSETS_CNT = 2, - ETHTOOL_A_STRINGSETS_MAX = 1, +struct hdcp_cmd_header { + u32 api_version; + u32 command_id; + enum fw_hdcp_status status; + u32 buffer_len; }; -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, +struct hdcp_port_id { + u8 integrated_port_type; + u8 physical_port; + u8 attached_transcoder; + u8 reserved; }; -enum { - ETHTOOL_A_STRINGS_UNSPEC = 0, - ETHTOOL_A_STRINGS_STRING = 1, - __ETHTOOL_A_STRINGS_CNT = 2, - ETHTOOL_A_STRINGS_MAX = 1, -}; +struct wired_cmd_initiate_hdcp2_session_in { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + u8 protocol; +} __attribute__((packed)); -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 wired_cmd_initiate_hdcp2_session_out { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + u8 r_tx[8]; + struct hdcp2_tx_caps tx_caps; +} __attribute__((packed)); + +struct wired_cmd_verify_receiver_cert_in { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + struct hdcp2_cert_rx cert_rx; + u8 r_rx[8]; + u8 rx_caps[3]; +} __attribute__((packed)); + +union encrypted_buff { + u8 e_kpub_km[128]; + u8 e_kh_km_m[32]; + struct { + u8 e_kh_km[16]; + u8 m[16]; + }; }; -struct strset_req_info { - struct ethnl_req_info base; - u32 req_ids; - bool counts_only; +struct wired_cmd_verify_receiver_cert_out { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + u8 km_stored; + u8 reserved[3]; + union encrypted_buff ekm_buff; }; -struct strset_reply_data { - struct ethnl_reply_data base; - struct strset_info sets[21]; +struct wired_cmd_ake_send_hprime_in { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + u8 h_prime[32]; }; -struct conntrack_gc_work { - struct delayed_work dwork; - u32 next_bucket; - u32 avg_timeout; - u32 count; - u32 start_time; - bool exiting; - bool early_drop; +struct wired_cmd_ake_send_hprime_out { + struct hdcp_cmd_header header; + struct hdcp_port_id port; }; -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 wired_cmd_ake_send_pairing_info_in { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + u8 e_kh_km[16]; }; -enum nf_ct_ecache_state { - NFCT_ECACHE_DESTROY_FAIL = 0, - NFCT_ECACHE_DESTROY_SENT = 1, +struct wired_cmd_ake_send_pairing_info_out { + struct hdcp_cmd_header header; + struct hdcp_port_id port; }; -struct nf_ct_timeout { - __u16 l3num; - const struct nf_conntrack_l4proto *l4proto; - char data[0]; +struct wired_cmd_init_locality_check_in { + struct hdcp_cmd_header header; + struct hdcp_port_id port; }; -struct nf_conn_timeout { - struct nf_ct_timeout __attribute__((btf_type_tag("rcu"))) *timeout; +struct wired_cmd_init_locality_check_out { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + u8 r_n[8]; }; -struct ping_table { - struct hlist_head hash[64]; - spinlock_t lock; +struct wired_cmd_validate_locality_in { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + u8 l_prime[32]; }; -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 wired_cmd_validate_locality_out { + struct hdcp_cmd_header header; + struct hdcp_port_id port; }; -enum { - TKIP_DECRYPT_OK = 0, - TKIP_DECRYPT_NO_EXT_IV = -1, - TKIP_DECRYPT_INVALID_KEYIDX = -2, - TKIP_DECRYPT_REPLAY = -3, +struct wired_cmd_get_session_key_in { + struct hdcp_cmd_header header; + struct hdcp_port_id port; }; -struct saved_msr; +struct wired_cmd_get_session_key_out { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + u8 e_dkey_ks[16]; + u8 r_iv[8]; +}; -struct saved_msrs { - unsigned int num; - struct saved_msr *array; +struct wired_cmd_verify_repeater_in { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + u8 rx_info[2]; + u8 seq_num_v[3]; + u8 v_prime[16]; + u8 receiver_ids[155]; }; -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; +struct wired_cmd_verify_repeater_out { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + u8 content_type_supported; + u8 v[16]; } __attribute__((packed)); -struct saved_msr { - bool valid; - struct msr_info info; +struct wired_cmd_repeater_auth_stream_req_out { + struct hdcp_cmd_header header; + struct hdcp_port_id port; }; -typedef int (*pm_cpu_match_t)(const struct x86_cpu_id *); +struct wired_cmd_repeater_auth_stream_req_in { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + u8 seq_num_m[3]; + u8 m_prime[32]; + __be16 k; + struct hdcp2_streamid_type streams[0]; +} __attribute__((packed)); -struct msr_enumeration { - u32 msr_no; - u32 feature; +struct wired_cmd_enable_auth_in { + struct hdcp_cmd_header header; + struct hdcp_port_id port; + u8 stream_type; +} __attribute__((packed)); + +struct wired_cmd_enable_auth_out { + struct hdcp_cmd_header header; + struct hdcp_port_id port; }; -struct perf_pmu_format_hybrid_attr { - struct device_attribute attr; - u64 pmu_type; +struct wired_cmd_close_session_in { + struct hdcp_cmd_header header; + struct hdcp_port_id port; }; -enum pmc_type { - KVM_PMC_GP = 0, - KVM_PMC_FIXED = 1, +struct wired_cmd_close_session_out { + struct hdcp_cmd_header header; + struct hdcp_port_id port; }; -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, +struct sil164_priv { + bool quiet; }; -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 dpm_order { + DPM_ORDER_NONE = 0, + DPM_ORDER_DEV_AFTER_PARENT = 1, + DPM_ORDER_PARENT_BEFORE_DEV = 2, + DPM_ORDER_DEV_LAST = 3, }; -enum pfn_cache_usage { - KVM_GUEST_USES_PFN = 1, - KVM_HOST_USES_PFN = 2, - KVM_GUEST_AND_HOST_USE_PFN = 3, +struct fwnode_link { + struct fwnode_handle *supplier; + struct list_head s_hook; + struct fwnode_handle *consumer; + struct list_head c_hook; + u8 flags; }; -enum kvm_irqchip_mode { - KVM_IRQCHIP_NONE = 0, - KVM_IRQCHIP_KERNEL = 1, - KVM_IRQCHIP_SPLIT = 2, +struct class_dir { + struct kobject kobj; + const struct class *class; }; -enum kvm_stat_kind { - KVM_STAT_VM = 0, - KVM_STAT_VCPU = 1, +struct root_device { + struct device dev; + struct module *owner; }; -struct kvm_vcpu; +union device_attr_group_devres { + const struct attribute_group *group; + const struct attribute_group **groups; +}; -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; +enum { + Lo_unbound = 0, + Lo_bound = 1, + Lo_rundown = 2, + Lo_deleting = 3, }; -struct kvm_pmu { - u8 version; - unsigned int nr_arch_gp_counters; - unsigned int nr_arch_fixed_counters; - unsigned int available_event_types; - u64 fixed_ctr_ctrl; - u64 fixed_ctr_ctrl_mask; - u64 global_ctrl; - u64 global_status; - u64 counter_bitmask[2]; - u64 global_ctrl_mask; - u64 global_status_mask; - u64 reserved_bits; - u64 raw_event_mask; - struct kvm_pmc gp_counters[8]; - struct kvm_pmc fixed_counters[3]; - 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; +enum { + LO_FLAGS_READ_ONLY = 1, + LO_FLAGS_AUTOCLEAR = 4, + LO_FLAGS_PARTSCAN = 8, + LO_FLAGS_DIRECT_IO = 16, }; -typedef u64 gpa_t; +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 kvm_mmio_fragment { - gpa_t gpa; - void *data; - unsigned int len; +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 kvm_lapic; +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; +}; -struct kvm_page_fault; +typedef u16 compat_dev_t; -struct x86_exception; +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]; +}; -struct kvm_mmu_page; +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 u64 hpa_t; +typedef unsigned long __kernel_old_dev_t; -struct kvm_mmu_root_info { - gpa_t pgd; - hpa_t hpa; +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]; }; -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; - }; +struct loop_config { + __u32 fd; + __u32 block_size; + struct loop_info64 info; + __u64 __reserved[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; - }; +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]; }; -union kvm_cpu_role { - u64 as_u64; - struct { - union kvm_mmu_page_role base; - union kvm_mmu_extended_role ext; - }; +struct ata_show_ering_arg { + char *buf; + int written; }; -struct rsvd_bits_validate { - u64 rsvd_bits_mask[10]; - u64 bad_mt_xwr; -}; +typedef void (*btf_trace_mdio_access)(void *, struct mii_bus *, char, u8, unsigned int, u16, int); -struct kvm_mmu { - unsigned long (*get_guest_pgd)(struct kvm_vcpu *); - u64 (*get_pdptr)(struct kvm_vcpu *, int); - int (*page_fault)(struct kvm_vcpu *, struct kvm_page_fault *); - void (*inject_page_fault)(struct kvm_vcpu *, struct x86_exception *); - gpa_t (*gva_to_gpa)(struct kvm_vcpu *, struct kvm_mmu *, gpa_t, u64, struct x86_exception *); - int (*sync_spte)(struct kvm_vcpu *, struct kvm_mmu_page *, int); - struct kvm_mmu_root_info root; - union kvm_cpu_role cpu_role; - union kvm_mmu_page_role root_role; - u32 pkru_mask; - struct kvm_mmu_root_info prev_roots[3]; - u8 permissions[16]; - u64 *pae_root; - u64 *pml4_root; - u64 *pml5_root; - struct rsvd_bits_validate shadow_zero_check; - struct rsvd_bits_validate guest_rsvd_check; - u64 pdptrs[4]; +struct 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 kvm_mmu_memory_cache { - gfp_t gfp_zero; - gfp_t gfp_custom; - struct kmem_cache *kmem_cache; - int capacity; - int nobjs; - void **objects; +struct mdio_driver { + struct mdio_driver_common mdiodrv; + int (*probe)(struct mdio_device *); + void (*remove)(struct mdio_device *); + void (*shutdown)(struct mdio_device *); }; -struct kvm_pio_request { - unsigned long linear_rip; - unsigned long count; - int in; - int port; - int size; -}; +struct trace_event_data_offsets_mdio_access {}; -struct kvm_queued_exception { - bool pending; - bool injected; - bool has_error_code; - u8 vector; - u32 error_code; - unsigned long payload; - bool has_payload; +struct mdio_bus_stat_attr { + int addr; + unsigned int field_offset; }; -struct kvm_queued_interrupt { - bool injected; - bool soft; - u8 nr; +enum usb_led_event { + USB_LED_EVENT_HOST = 0, + USB_LED_EVENT_GADGET = 1, }; -struct kvm_hypervisor_cpuid { - u32 base; - u32 limit; +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, }; -struct x86_emulate_ctxt; - -typedef u64 hfn_t; - -typedef hfn_t kvm_pfn_t; +struct uhci_td; -struct kvm_memory_slot; +struct uhci_qh; -struct kvm; +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 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 uhci_td { + __le32 link; + __le32 status; + __le32 token; + __le32 buffer; + dma_addr_t dma_handle; 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; + int frame; + struct list_head fl_list; }; -struct gfn_to_hva_cache { - u64 generation; - gpa_t gpa; - unsigned long hva; - unsigned long len; - struct kvm_memory_slot *memslot; +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 kvm_mtrr_range { - u64 base; - u64 mask; +struct urb_priv___3 { struct list_head node; + struct urb *urb; + struct uhci_qh *qh; + struct list_head td_list; + unsigned int fsbr: 1; }; -struct kvm_mtrr { - struct kvm_mtrr_range var_ranges[8]; - mtrr_type fixed_ranges[88]; - u64 deftype; - struct list_head head; +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; }; -typedef u64 gfn_t; +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 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 psmouse_smbus_removal_work { + struct work_struct work; + struct i2c_client *client; }; -struct kvm_cpuid_entry2; +enum power_supply_notifier_events { + PSY_EVENT_PROP_CHANGED = 0, +}; -struct kvm_vcpu_hv; +struct psy_am_i_supplied_data { + struct power_supply *psy; + unsigned int count; +}; -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; - 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 psy_get_supplier_prop_data { + struct power_supply *psy; + enum power_supply_property psp; + union power_supply_propval *val; }; -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 dm_io_client { + mempool_t pool; + struct bio_set bios; }; -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 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 kvm_dirty_gfn; +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 kvm_dirty_ring { - u32 dirty_index; - u32 reset_index; - u32 size; - u32 soft_limit; - struct kvm_dirty_gfn *dirty_gfns; - int index; +struct sync_io { + unsigned long error_bits; + struct completion wait; }; -struct kvm_run; +struct pidff_usage { + struct hid_field *field; + s32 *value; +}; -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 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]; }; -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 snd_soc_acpi_codecs; -struct kvm_vm_stat_generic { - u64 remote_tlb_flush; - u64 remote_tlb_flush_requests; +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 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 snd_soc_acpi_codecs { + int num_codecs; + u8 codecs[48]; }; -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 *); +enum txtime_flags { + SOF_TXTIME_DEADLINE_MODE = 1, + SOF_TXTIME_REPORT_ERRORS = 2, + SOF_TXTIME_FLAGS_LAST = 2, + SOF_TXTIME_FLAGS_MASK = 3, }; -struct kvm_page_track_notifier_head { - struct srcu_struct track_srcu; - struct hlist_head track_notifier_list; +enum { + SK_MEMINFO_RMEM_ALLOC = 0, + SK_MEMINFO_RCVBUF = 1, + SK_MEMINFO_WMEM_ALLOC = 2, + SK_MEMINFO_SNDBUF = 3, + SK_MEMINFO_FWD_ALLOC = 4, + SK_MEMINFO_WMEM_QUEUED = 5, + SK_MEMINFO_OPTMEM = 6, + SK_MEMINFO_BACKLOG = 7, + SK_MEMINFO_DROPS = 8, + SK_MEMINFO_VARS = 9, }; -struct kvm_pic; - -struct kvm_ioapic; - -struct kvm_pit; +struct linger { + int l_onoff; + int l_linger; +}; -struct kvm_xen_hvm_config { +struct sock_txtime { + __kernel_clockid_t clockid; __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 so_timestamping { + int flags; + int bind_phc; }; -struct kvm_hv_syndbg { - struct { - u64 control; - u64 status; - u64 send_page; - u64 recv_page; - u64 pending_page; - } control; - u64 options; +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, }; -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; +enum { + LWT_BPF_PROG_UNSPEC = 0, + LWT_BPF_PROG_FD = 1, + LWT_BPF_PROG_NAME = 2, + __LWT_BPF_PROG_MAX = 3, }; -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 gre_base_hdr { + __be16 flags; + __be16 protocol; }; -struct kvm_apic_map; - -struct kvm_x86_msr_filter; +struct bpf_lwt { + struct bpf_lwt_prog in; + struct bpf_lwt_prog out; + struct bpf_lwt_prog xmit; + int family; +}; -struct kvm_x86_pmu_event_filter; +enum { + ETHTOOL_TCP_DATA_SPLIT_UNKNOWN = 0, + ETHTOOL_TCP_DATA_SPLIT_DISABLED = 1, + ETHTOOL_TCP_DATA_SPLIT_ENABLED = 2, +}; -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; +enum { + ETHTOOL_A_RINGS_UNSPEC = 0, + ETHTOOL_A_RINGS_HEADER = 1, + ETHTOOL_A_RINGS_RX_MAX = 2, + ETHTOOL_A_RINGS_RX_MINI_MAX = 3, + ETHTOOL_A_RINGS_RX_JUMBO_MAX = 4, + ETHTOOL_A_RINGS_TX_MAX = 5, + ETHTOOL_A_RINGS_RX = 6, + ETHTOOL_A_RINGS_RX_MINI = 7, + ETHTOOL_A_RINGS_RX_JUMBO = 8, + ETHTOOL_A_RINGS_TX = 9, + ETHTOOL_A_RINGS_RX_BUF_LEN = 10, + ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 11, + ETHTOOL_A_RINGS_CQE_SIZE = 12, + ETHTOOL_A_RINGS_TX_PUSH = 13, + ETHTOOL_A_RINGS_RX_PUSH = 14, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN = 15, + ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX = 16, + __ETHTOOL_A_RINGS_CNT = 17, + ETHTOOL_A_RINGS_MAX = 16, }; -struct kvm_io_bus; +enum ethtool_supported_ring_param { + ETHTOOL_RING_USE_RX_BUF_LEN = 1, + ETHTOOL_RING_USE_CQE_SIZE = 2, + ETHTOOL_RING_USE_TX_PUSH = 4, + ETHTOOL_RING_USE_RX_PUSH = 8, + ETHTOOL_RING_USE_TX_PUSH_BUF_LEN = 16, +}; -struct kvm_stat_data; +struct rings_reply_data { + struct ethnl_reply_data base; + struct ethtool_ringparam ringparam; + struct kernel_ethtool_ringparam kernel_ringparam; + u32 supported_ring_params; +}; -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]; +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, }; -struct kvm_io_device; +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, +}; -struct kvm_io_range { - gpa_t addr; - int len; - struct kvm_io_device *dev; +enum nfulnl_msg_types { + NFULNL_MSG_PACKET = 0, + NFULNL_MSG_CONFIG = 1, + NFULNL_MSG_MAX = 2, }; -struct kvm_io_bus { - int dev_count; - int ioeventfd_count; - struct kvm_io_range range[0]; +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, }; -struct kvm_rmap_head; +enum nfulnl_vlan_attr { + NFULA_VLAN_UNSPEC = 0, + NFULA_VLAN_PROTO = 1, + NFULA_VLAN_TCI = 2, + __NFULA_VLAN_MAX = 3, +}; -struct kvm_lpage_info; +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 kvm_arch_memory_slot { - struct kvm_rmap_head *rmap[3]; - struct kvm_lpage_info *lpage_info[2]; - unsigned short *gfn_track[1]; +struct nfnl_log_net { + spinlock_t instances_lock; + struct hlist_head instance_table[16]; + atomic_t global_seq; }; -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 iter_state { + struct seq_net_private p; + unsigned int bucket; }; -struct kvm_rmap_head { - unsigned long val; +struct nfulnl_msg_packet_hdr { + __be16 hw_protocol; + __u8 hook; + __u8 _pad; }; -struct kvm_lpage_info { - int disallow_lpage; +struct nfulnl_msg_packet_hw { + __be16 hw_addrlen; + __u16 _pad; + __u8 hw_addr[8]; }; -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 nfulnl_msg_packet_timestamp { + __be64 sec; + __be64 usec; }; -struct hv_partition_assist_pg { - u32 tlb_lock_count; +struct nfulnl_msg_config_cmd { + __u8 command; }; -struct msr_bitmap_range { - u32 flags; - u32 nmsrs; - u32 base; - unsigned long *bitmap; +struct nfulnl_msg_config_mode { + __be32 copy_range; + __u8 copy_mode; + __u8 _pad; +} __attribute__((packed)); + +enum { + CONNSECMARK_SAVE = 1, + CONNSECMARK_RESTORE = 2, }; -struct kvm_x86_msr_filter { - u8 count; - bool default_allow: 1; - struct msr_bitmap_range ranges[16]; +struct xt_connsecmark_target_info { + __u8 mode; }; -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 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 _kvm_stats_desc; +struct ip_fraglist_iter { + struct sk_buff *frag; + struct iphdr *iph; + int offset; + unsigned int hlen; +}; -struct kvm_stat_data { - struct kvm *kvm; - const struct _kvm_stats_desc *desc; - enum kvm_stat_kind kind; +struct arpreq { + struct sockaddr arp_pa; + struct sockaddr arp_ha; + int arp_flags; + struct sockaddr arp_netmask; + char arp_dev[16]; }; -struct kvm_stats_desc { - __u32 flags; - __s16 exponent; - __u16 size; - __u32 offset; - __u32 bucket_size; - char name[0]; +struct rta_mfc_stats { + __u64 mfcs_packets; + __u64 mfcs_bytes; + __u64 mfcs_wrong_if; }; -struct _kvm_stats_desc { - struct kvm_stats_desc desc; - char name[48]; +struct snmp_mib { + const char *name; + int entry; }; -struct kvm_debug_exit_arch { - __u32 exception; - __u32 pad; - __u64 pc; - __u64 dr6; - __u64 dr7; +struct ip6t_ipv6header_info { + __u8 matchflags; + __u8 invflags; + __u8 modeflag; }; -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 rpcb_info { + u32 rpc_vers; + const struct rpc_procinfo *rpc_proc; }; -struct kvm_xen_exit { - __u32 type; - union { - struct { - __u32 longmode; - __u32 cpl; - __u64 input; - __u64 result; - __u64 params[6]; - } hcall; - } u; +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 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 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 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; +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, }; -struct kvm_dtable { - __u64 base; - __u16 limit; - __u16 padding[3]; +enum assoc_status { + ASSOC_SUCCESS = 0, + ASSOC_REJECTED = 1, + ASSOC_TIMEOUT = 2, + ASSOC_ABANDON = 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]; +enum ieee80211_timeout_interval_type { + WLAN_TIMEOUT_REASSOC_DEADLINE = 1, + WLAN_TIMEOUT_KEY_LIFETIME = 2, + WLAN_TIMEOUT_ASSOC_COMEBACK = 3, }; -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; +enum ieee80211_idle_options { + WLAN_IDLE_OPTIONS_PROTECTED_KEEP_ALIVE = 1, }; -struct kvm_sync_regs { - struct kvm_regs regs; - struct kvm_sregs sregs; - struct kvm_vcpu_events events; +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 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; +struct ieee80211_country_ie_triplet { 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; - union { - __u64 flags; - }; - } hypercall; - struct { - __u64 rip; - __u32 is_write; - __u32 pad; - } tpr_access; - struct { - __u8 icptcode; - __u16 ipa; - __u32 ipb; - } s390_sieic; - __u64 s390_reset_flags; - struct { - __u64 trans_exc_code; - __u32 pgm_code; - } s390_ucontrol; - struct { - __u32 dcrn; - __u32 data; - __u8 is_write; - } dcr; - struct { - __u32 suberror; - __u32 ndata; - __u64 data[16]; - } internal; - struct { - __u32 suberror; - __u32 ndata; - __u64 flags; - union { - struct { - __u8 insn_size; - __u8 insn_bytes[15]; - }; - }; - } emulation_failure; - struct { - __u64 gprs[32]; - } osi; - struct { - __u64 nr; - __u64 ret; - __u64 args[9]; - } papr_hcall; - struct { - __u16 subchannel_id; - __u16 subchannel_nr; - __u32 io_int_parm; - __u32 io_int_word; - __u32 ipb; - __u8 dequeued; - } s390_tsch; - struct { - __u32 epr; - } epr; - struct { - __u32 type; - __u32 ndata; - union { - __u64 data[16]; - }; - } system_event; - struct { - __u64 addr; - __u8 ar; - __u8 reserved; - __u8 fc; - __u8 sel1; - __u16 sel2; - } s390_stsi; - struct { - __u8 vector; - } eoi; - struct kvm_hyperv_exit hyperv; - struct { - __u64 esr_iss; - __u64 fault_ipa; - } arm_nisv; - struct { - __u8 error; - __u8 pad[7]; - __u32 reason; - __u32 index; - __u64 data; - } msr; - struct kvm_xen_exit xen; - struct { - unsigned long extension_id; - unsigned long function_id; - unsigned long args[6]; - unsigned long ret[2]; - } riscv_sbi; - struct { - unsigned long csr_num; - unsigned long new_value; - unsigned long write_mask; - unsigned long ret_value; - } riscv_csr; + u8 first_channel; + u8 num_channels; + s8 max_power; + } chans; struct { - __u32 flags; - } notify; - char padding[256]; + u8 reg_extension_id; + u8 reg_class; + u8 coverage_class; + } ext; }; - __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 restore_data_record { + unsigned long jump_address; + unsigned long jump_address_phys; + unsigned long cr3; + unsigned long magic; + unsigned long e820_checksum; }; -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; +struct compress_format { + unsigned char magic[2]; + const char *name; + decompress_fn decompressor; }; -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; - }; -}; +struct rapl_pmu; -union hv_message_flags { - __u8 asu8; - struct { - __u8 msg_pending: 1; - __u8 reserved: 7; - }; +struct rapl_pmus { + struct pmu pmu; + unsigned int maxdie; + struct rapl_pmu *pmus[0]; }; -union hv_port_id { - __u32 asu32; - struct { - __u32 id: 24; - __u32 reserved: 8; - } u; +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; }; -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; - }; +enum rapl_unit_quirk { + RAPL_UNIT_QUIRK_NONE = 0, + RAPL_UNIT_QUIRK_INTEL_HSW = 1, + RAPL_UNIT_QUIRK_INTEL_SPR = 2, }; -struct hv_message { - struct hv_message_header header; - union { - __u64 payload[30]; - } u; +struct rapl_model { + struct perf_msr *rapl_msrs; + unsigned long events; + unsigned int msr_power_unit; + enum rapl_unit_quirk unit_quirk; }; -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; +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 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 pkru_state { + u32 pkru; + u32 pad; }; -struct hv_nested_enlightenments_control { - struct { - __u32 directhypercall: 1; - __u32 reserved: 31; - } features; - struct { - __u32 inter_partition_comm: 1; - __u32 reserved: 31; - } hypercallControls; +enum { + CMCI_STORM_NONE = 0, + CMCI_STORM_ACTIVE = 1, + CMCI_STORM_SUBSIDED = 2, }; -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 mtrr_sentry32 { + compat_ulong_t base; + compat_uint_t size; + compat_uint_t type; }; -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 mtrr_gentry32 { + compat_ulong_t regnum; + compat_uint_t base; + compat_uint_t size; + compat_uint_t type; }; -struct kvm_dirty_gfn { - __u32 flags; - __u32 slot; - __u64 offset; +struct mtrr_sentry { + __u64 base; + __u32 size; + __u32 type; }; -typedef int perf_snapshot_branch_stack_t(struct perf_branch_entry *, unsigned int); +struct mtrr_gentry { + __u64 base; + __u32 size; + __u32 regnum; + __u32 type; + __u32 _pad; +}; -enum pti_mode { - PTI_AUTO = 0, - PTI_FORCE_OFF = 1, - PTI_FORCE_ON = 2, +struct chipset { + u32 vendor; + u32 device; + u32 class; + u32 class_mask; + u32 flags; + void (*f)(int, int, int); }; -enum pti_clone_level { - PTI_CLONE_PMD = 0, - PTI_CLONE_PTE = 1, +struct intel_early_ops { + resource_size_t (*stolen_size)(int, int, int); + resource_size_t (*stolen_base)(int, int, int, resource_size_t); }; -struct efi_runtime_map_entry { - efi_memory_desc_t md; - struct kobject kobj; +struct mwait_cpu_dead { + unsigned int control; + unsigned int status; }; -struct map_attribute { - struct attribute attr; - ssize_t (*show)(struct efi_runtime_map_entry *, char *); +struct logical_maps { + u32 phys_pkg_id; + u32 phys_die_id; + u32 logical_pkg_id; + u32 logical_die_id; }; -enum KTHREAD_BITS { - KTHREAD_IS_PER_CPU = 0, - KTHREAD_SHOULD_STOP = 1, - KTHREAD_SHOULD_PARK = 2, +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]; }; -enum { - KTW_FREEZABLE = 1, +enum cpa_warn { + CPA_CONFLICT = 0, + CPA_PROTECT = 1, + CPA_DETECT = 2, }; -struct kthread_create_info { - char *full_name; - int (*threadfn)(void *); - void *data; - int node; - struct task_struct *result; - struct completion *done; - struct list_head list; +struct 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; }; -struct kthread_flush_work { - struct kthread_work work; - struct completion done; +enum { + HP_THREAD_NONE = 0, + HP_THREAD_ACTIVE = 1, + HP_THREAD_PARKED = 2, }; -struct kthread { - unsigned long flags; +struct smpboot_thread_data { 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; + unsigned int status; + struct smp_hotplug_thread *ht; }; typedef void (*btf_trace_rcu_utilization)(void *, const char *); @@ -138967,6 +142299,8 @@ 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 { @@ -138982,6 +142316,7 @@ struct rcu_tasks { unsigned long n_ipis; unsigned long n_ipis_fails; struct task_struct *kthread_ptr; + unsigned long lazy_jiffies; rcu_tasks_gp_func_t gp_func; pregp_func_t pregp_func; pertask_func_t pertask_func; @@ -139007,6 +142342,8 @@ struct rcu_tasks_percpu { raw_spinlock_t lock; unsigned long rtp_jiffies; unsigned long rtp_n_lock_retries; + struct timer_list lazy_timer; + unsigned int urgent_gp; struct work_struct rtp_work; struct irq_work rtp_irq_work; struct callback_head barrier_q_head; @@ -139209,1127 +142546,187 @@ struct trace_event_raw_rcu_barrier { 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; -}; - -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 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 callchain_cpus_entries { - struct callback_head callback_head; - struct perf_callchain_entry *cpu_entries[0]; -}; - -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 epitem; - -struct eventpoll { - struct mutex mtx; - wait_queue_head_t wq; - wait_queue_head_t poll_wait; - struct list_head rdllist; - rwlock_t lock; - struct rb_root_cached rbr; - struct epitem *ovflist; - struct wakeup_source *ws; - struct user_struct *user; - struct file *file; - u64 gen; - struct hlist_head refs; - refcount_t refcount; - unsigned int napi_id; -}; - -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; - bool dying; - struct eppoll_entry *pwqlist; - struct eventpoll *ep; - struct hlist_node fllink; - struct wakeup_source __attribute__((btf_type_tag("rcu"))) *ws; - struct epoll_event event; -}; - -struct eppoll_entry { - struct eppoll_entry *next; - struct epitem *base; - wait_queue_entry_t wait; - wait_queue_head_t *whead; -}; - -struct epitems_head { - struct hlist_head epitems; - struct epitems_head *next; -}; - -struct ep_pqueue { - poll_table pt; - struct epitem *epi; -}; - -struct 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 ramfs_param { - Opt_mode___5 = 0, -}; - -struct ramfs_mount_opts { - umode_t mode; -}; - -struct ramfs_fs_info { - struct ramfs_mount_opts mount_opts; -}; - -struct proc_nfs_info { - int flag; - const char *str; - const char *nostr; -}; - -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 bio_map_data { - bool is_our_pages: 1; - bool is_null_mapped: 1; - struct iov_iter iter; - struct iovec iov[0]; -}; - -struct bvec_iter_all { - struct bio_vec bv; - int idx; - unsigned int done; -}; - -struct io_xattr { - struct file *file; - struct xattr_ctx ctx; - struct filename *filename; -}; - -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); -}; - -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_lpi_states_array { - unsigned int size; - unsigned int composite_states_size; - struct acpi_lpi_state *entries; - struct acpi_lpi_state *composite_states[8]; -}; - -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 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 hdcp_port_type { - HDCP_PORT_TYPE_INVALID = 0, - HDCP_PORT_TYPE_INTEGRATED = 1, - HDCP_PORT_TYPE_LSPCON = 2, - HDCP_PORT_TYPE_CPDP = 3, -}; - -struct hdcp2_rep_stream_manage { - u8 msg_id; - u8 seq_num_m[3]; - __be16 k; - struct hdcp2_streamid_type streams[4]; -}; - -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]; -}; - -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 hsm_task_states { - HSM_ST_IDLE = 0, - HSM_ST_FIRST = 1, - HSM_ST = 2, - HSM_ST_LAST = 3, - HSM_ST_ERR = 4, -}; - -enum chip_flags { - HasHltClk = 1, - HasLWake = 2, -}; - -enum RTL8139_registers { - MAC0___2 = 0, - MAR0___2 = 8, - TxStatus0 = 16, - TxAddr0 = 32, - RxBuf = 48, - ChipCmd___2 = 55, - RxBufPtr = 56, - RxBufAddr = 58, - IntrMask___2 = 60, - IntrStatus___2 = 62, - TxConfig___2 = 64, - RxConfig___2 = 68, - Timer = 72, - RxMissed = 76, - Cfg9346___2 = 80, - Config0___2 = 81, - Config1___2 = 82, - TimerInt = 84, - MediaStatus = 88, - Config3___2 = 89, - Config4___2 = 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___2 = 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___2 = 0, - Cfg9346_Unlock___2 = 192, -}; - -enum Config4Bits { - LWPTN = 4, -}; - -enum ChipCmdBits { - CmdReset___2 = 16, - CmdRxEnb___2 = 8, - CmdTxEnb___2 = 4, - RxBufEmpty___2 = 1, -}; - -enum IntrStatusBits { - PCIErr = 32768, - PCSTimeout___2 = 16384, - RxFIFOOver___2 = 64, - RxUnderrun = 32, - RxOverflow___2 = 16, - TxErr___2 = 8, - TxOK___2 = 4, - RxErr___2 = 2, - RxOK___2 = 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___2 = 8, - TxRetryShift = 4, - TxVersionMask = 2088763392, -}; - -enum rx_mode_bits { - AcceptErr___2 = 32, - AcceptRunt___2 = 16, - AcceptBroadcast___2 = 8, - AcceptMulticast___2 = 4, - AcceptMyPhys___2 = 2, - AcceptAllPhys___2 = 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 Config5Bits { - Cfg5_PME_STS = 1, - Cfg5_LANWake = 2, - Cfg5_LDPS = 4, - Cfg5_FIFOAddrPtr = 8, - Cfg5_UWF = 16, - Cfg5_MWF = 32, - Cfg5_BWF = 64, -}; - -enum RxStatusBits { - RxMulticast = 32768, - RxPhysical = 16384, - RxBroadcast = 8192, - RxBadSymbol = 32, - RxRunt = 16, - RxTooLong = 8, - RxCRCErr = 4, - RxBadAlign = 2, - RxStatusOK = 1, -}; - -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 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; -}; - -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 {}; - -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 hid_usage_entry { - unsigned int page; - unsigned int usage; - const char *description; -}; - -struct hid_debug_list { - struct { - union { - struct __kfifo kfifo; - char *type; - const char *const_type; - char (*rectype)[0]; - char *ptr; - const char *ptr_const; - }; - char buf[0]; - } hid_debug_fifo; - struct fasync_struct *fasync; - struct hid_device *hdev; - struct list_head node; - struct mutex read_mutex; -}; - -enum 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]; + unsigned long done; + char __data[0]; }; -struct update_classid_context { - u32 classid; - unsigned int batch; +struct trc_stall_chk_rdr { + int nesting; + int ipi_to_cpu; + u8 needqs; }; -struct link_mode_info { - int speed; - u8 lanes; - u8 duplex; -}; +struct trace_event_data_offsets_rcu_utilization {}; -struct nf_hook_entries_rcu_head { - struct callback_head head; - void *allocation; -}; +struct trace_event_data_offsets_rcu_grace_period {}; -struct xt_nflog_info { - __u32 len; - __u16 group; - __u16 threshold; - __u16 flags; - __u16 pad; - char prefix[64]; -}; +struct trace_event_data_offsets_rcu_future_grace_period {}; -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 trace_event_data_offsets_rcu_grace_period_init {}; -enum fib6_walk_state { - FWS_S = 0, - FWS_L = 1, - FWS_R = 2, - FWS_C = 3, - FWS_U = 4, -}; +struct trace_event_data_offsets_rcu_exp_grace_period {}; -enum { - FIB6_NO_SERNUM_CHANGE = 0, -}; +struct trace_event_data_offsets_rcu_exp_funnel_lock {}; -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 trace_event_data_offsets_rcu_preempt_task {}; -struct fib6_cleaner { - struct fib6_walker w; - struct net *net; - int (*func)(struct fib6_info *, void *); - int sernum; - void *arg; - bool skip_notify; -}; +struct trace_event_data_offsets_rcu_unlock_preempted_task {}; -struct fib6_dump_arg { - struct net *net; - struct notifier_block *nb; - struct netlink_ext_ack *extack; -}; +struct trace_event_data_offsets_rcu_quiescent_state_report {}; -struct fib6_entry_notifier_info { - struct fib_notifier_info info; - struct fib6_info *rt; - unsigned int nsiblings; -}; +struct trace_event_data_offsets_rcu_fqs {}; -struct ipv6_route_iter { - struct seq_net_private p; - struct fib6_walker w; - loff_t skip; - struct fib6_table *tbl; - int sernum; -}; +struct trace_event_data_offsets_rcu_stall_warning {}; -struct bpf_iter__ipv6_route { - union { - struct bpf_iter_meta *meta; - }; - union { - struct fib6_info *rt; - }; -}; +struct trace_event_data_offsets_rcu_dyntick {}; -struct fib6_nh_pcpu_arg { - struct fib6_info *from; - const struct fib6_table *table; -}; +struct trace_event_data_offsets_rcu_callback {}; -struct lookup_args { - int offset; - const struct in6_addr *addr; -}; +struct trace_event_data_offsets_rcu_segcb_stats {}; -struct ip_esp_hdr { - __be32 spi; - __be32 seq_no; - __u8 enc_data[0]; -}; +struct trace_event_data_offsets_rcu_kvfree_callback {}; -struct esp_skb_cb { - struct xfrm_skb_cb xfrm; - void *tmp; +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 misc_res { + u64 max; + atomic64_t usage; + atomic64_t events; }; -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 misc_cg { + struct cgroup_subsys_state css; + struct cgroup_file events_file; + struct misc_res res[0]; }; -struct esp_output_extra { - __be32 seqhi; - u32 esphoff; +enum misc_res_type { + MISC_CG_RES_TYPES = 0, }; -struct gss_pipe; +enum { + HASH_SIZE = 128, +}; -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 audit_node { + struct list_head list; + struct audit_tree *owner; + unsigned int index; }; -struct gss_pipe { - struct rpc_pipe_dir_object pdo; - struct rpc_pipe *pipe; - struct rpc_clnt *clnt; - const char *name; - struct kref kref; +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 gss_upcall_msg { +struct audit_tree { refcount_t count; - kuid_t uid; - const char *service_name; - struct rpc_pipe_msg msg; + int goner; + struct audit_chunk *root; + struct list_head chunks; + struct list_head rules; 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 list_head same_root; + struct callback_head head; + char pathname[0]; }; -struct gss_alloc_pdo { - struct rpc_clnt *clnt; - const char *name; - const struct rpc_pipe_ops *upcall_ops; +struct audit_tree_mark { + struct fsnotify_mark mark; + struct audit_chunk *chunk; }; -enum { - Rworksched = 1, - Rpending = 2, - Wworksched = 4, - Wpending = 8, +struct boot_triggers { + const char *event; + char *trigger; }; enum { - Opt_port___2 = 0, - Opt_rfdno = 1, - Opt_wfdno = 2, - Opt_err___10 = 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; + FORMAT_HEADER = 1, + FORMAT_FIELD_SEPERATOR = 2, + FORMAT_PRINTFMT = 3, }; -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; +struct module_string { + struct list_head next; + struct module *module; + char *str; }; -struct p9_trans_fd { - struct file *rd; - struct file *wr; - struct p9_conn conn; +struct event_probe_data { + struct trace_event_file *file; + unsigned long count; + int ref; + bool enable; }; -struct p9_fd_opts { - int rfd; - int wfd; - u16 port; - bool privport; +enum { + BPF_RINGBUF_BUSY_BIT = 2147483648, + BPF_RINGBUF_DISCARD_BIT = 1073741824, + BPF_RINGBUF_HDR_SZ = 8, }; enum { - st_wordstart = 0, - st_wordcmp = 1, - st_wordskip = 2, + BPF_RB_NO_WAKEUP = 1, + BPF_RB_FORCE_WAKEUP = 2, }; enum { - st_wordstart___2 = 0, - st_wordcmp___2 = 1, - st_wordskip___2 = 2, - st_bufcpy = 3, + BPF_RB_AVAIL_DATA = 0, + BPF_RB_RING_SIZE = 1, + BPF_RB_CONS_POS = 2, + BPF_RB_PROD_POS = 3, }; -struct bts_ctx { - struct perf_output_handle handle; +typedef u64 (*btf_bpf_ringbuf_reserve)(struct bpf_map *, u64, u64); + +typedef u64 (*btf_bpf_ringbuf_submit)(void *, u64); + +typedef u64 (*btf_bpf_ringbuf_discard)(void *, u64); + +typedef u64 (*btf_bpf_ringbuf_output)(struct bpf_map *, void *, u64, u64); + +typedef u64 (*btf_bpf_ringbuf_query)(struct bpf_map *, u64); + +typedef u64 (*btf_bpf_ringbuf_reserve_dynptr)(struct bpf_map *, u32, u64, struct bpf_dynptr_kern *); + +typedef u64 (*btf_bpf_ringbuf_submit_dynptr)(struct bpf_dynptr_kern *, u64); + +typedef u64 (*btf_bpf_ringbuf_discard_dynptr)(struct bpf_dynptr_kern *, u64); + +typedef u64 (*btf_bpf_user_ringbuf_drain)(struct bpf_map *, void *, void *, u64); + +struct bpf_ringbuf { + wait_queue_head_t waitq; + struct irq_work work; + u64 mask; + struct page **pages; + int nr_pages; long: 64; long: 64; long: 64; long: 64; long: 64; long: 64; + spinlock_t spinlock; long: 64; long: 64; long: 64; @@ -140337,6 +142734,7 @@ struct bts_ctx { long: 64; long: 64; long: 64; + atomic_t busy; long: 64; long: 64; long: 64; @@ -140824,13 +143222,199 @@ struct bts_ctx { 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; - struct debug_store ds_back; - int state; long: 64; long: 64; long: 64; @@ -141150,6 +143734,262 @@ struct bts_ctx { 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; @@ -141342,8086 +144182,7930 @@ struct bts_ctx { long: 64; long: 64; long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + 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; +}; + +typedef int dio_iodone_t(struct kiocb *, loff_t, ssize_t, void *); + +struct dio { + int flags; + blk_opf_t opf; + struct gendisk *bio_disk; + struct inode *inode; + loff_t i_size; + dio_iodone_t *end_io; + bool is_pinned; + void *private; + spinlock_t bio_lock; + int page_errors; + int is_async; + bool defer_completion; + bool should_dirty; + int io_error; + unsigned long refcount; + struct bio *bio_list; + struct task_struct *waiter; + struct kiocb *iocb; + ssize_t result; + union { + struct page *pages[64]; + struct work_struct complete_work; + }; + long: 64; +}; + +struct dio_submit { + struct bio *bio; + unsigned int blkbits; + unsigned int blkfactor; + unsigned int start_zero_done; + int pages_in_io; + sector_t block_in_file; + unsigned int blocks_available; + int reap_counter; + sector_t final_block_in_request; + int boundary; + get_block_t *get_block; + loff_t logical_offset_in_bio; + sector_t final_block_in_bio; + sector_t next_block_for_io; + struct page *cur_page; + unsigned int cur_page_offset; + unsigned int cur_page_len; + sector_t cur_page_block; + loff_t cur_page_fs_offset; + struct iov_iter *iter; + unsigned int head; + unsigned int tail; + size_t from; + size_t to; +}; + +enum clear_refs_types { + CLEAR_REFS_ALL = 1, + CLEAR_REFS_ANON = 2, + CLEAR_REFS_MAPPED = 3, + CLEAR_REFS_SOFT_DIRTY = 4, + CLEAR_REFS_MM_HIWATER_RSS = 5, + CLEAR_REFS_LAST = 6, +}; + +struct page_region { + __u64 start; + __u64 end; + __u64 categories; +}; + +struct proc_maps_private { + struct inode *inode; + struct task_struct *task; + struct mm_struct *mm; + struct vma_iterator iter; + struct mempolicy *task_mempolicy; +}; + +struct pm_scan_arg { + __u64 size; + __u64 flags; + __u64 start; + __u64 end; + __u64 walk_end; + __u64 vec; + __u64 vec_len; + __u64 max_pages; + __u64 category_inverted; + __u64 category_mask; + __u64 category_anyof_mask; + __u64 return_mask; +}; + +struct pagemap_scan_private { + struct pm_scan_arg arg; + unsigned long masks_of_interest; + unsigned long cur_vma_category; + struct page_region *vec_buf; + unsigned long vec_buf_len; + unsigned long vec_buf_index; + unsigned long found_pages; + struct page_region __attribute__((btf_type_tag("user"))) *vec_out; +}; + +struct mem_size_stats { + unsigned long resident; + unsigned long shared_clean; + unsigned long shared_dirty; + unsigned long private_clean; + unsigned long private_dirty; + unsigned long referenced; + unsigned long anonymous; + unsigned long lazyfree; + unsigned long anonymous_thp; + unsigned long shmem_thp; + unsigned long file_thp; + unsigned long swap; + unsigned long shared_hugetlb; + unsigned long private_hugetlb; + unsigned long ksm; + u64 pss; + u64 pss_anon; + u64 pss_file; + u64 pss_shmem; + u64 pss_dirty; + u64 pss_locked; + u64 swap_pss; +}; + +typedef struct { + u64 pme; +} pagemap_entry_t; + +struct pagemapread { + int pos; + int len; + pagemap_entry_t *buffer; + bool show_pfn; +}; + +struct clear_refs_private { + enum clear_refs_types type; +}; + +struct numa_maps { + unsigned long pages; + unsigned long anon; + unsigned long active; + unsigned long writeback; + unsigned long mapcount_max; + unsigned long dirty; + unsigned long swapcache; + unsigned long node[64]; +}; + +struct numa_maps_private { + struct proc_maps_private proc_maps; + struct numa_maps md; +}; + +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_tl_mem { + u16 fc_tag; + u16 fc_len; +}; + +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 ext4_fc_inode { + __le32 fc_ino; + __u8 fc_raw_inode[0]; +}; + +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, + Opt_xprtsec = 54, }; enum { - BTS_STATE_STOPPED = 0, - BTS_STATE_INACTIVE = 1, - BTS_STATE_ACTIVE = 2, + 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, }; -struct bts_phys { - struct page *page; - unsigned long size; - unsigned long offset; - unsigned long displacement; +enum { + Opt_lookupcache_all = 0, + Opt_lookupcache_none = 1, + Opt_lookupcache_positive = 2, }; -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 { + Opt_local_lock_all = 0, + Opt_local_lock_flock = 1, + Opt_local_lock_none = 2, + Opt_local_lock_posix = 3, }; enum { - HASH_SIZE = 128, + Opt_write_lazy = 0, + Opt_write_eager = 1, + Opt_write_wait = 2, }; -struct audit_node { +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, +}; + +enum { + Opt_xprtsec_none = 0, + Opt_xprtsec_tls = 1, + Opt_xprtsec_mtls = 2, + nr__Opt_xprtsec = 3, +}; + +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; +}; + +struct nfs_referral_count { struct list_head list; - struct audit_tree *owner; + const struct task_struct *task; + unsigned int referral_count; +}; + +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; +}; + +typedef unsigned char u8___2; + +struct rand_data { + void *hash_state; + __u64 prev_time; + __u64 last_delta; + __s64 last_delta2; + unsigned int flags; + unsigned int osr; + unsigned char *mem; + unsigned int memlocation; + unsigned int memblocks; + unsigned int memblocksize; + unsigned int memaccessloops; + unsigned int rct_count; + unsigned int apt_cutoff; + unsigned int apt_cutoff_permanent; + unsigned int apt_observations; + unsigned int apt_count; + unsigned int apt_base; + unsigned int health_failure; + unsigned int apt_base_set: 1; +}; + +struct jitterentropy { + spinlock_t jent_lock; + struct rand_data *entropy_collector; + struct crypto_shash *tfm; + struct shash_desc *sdesc; +}; + +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 pkcs7_signed_info { + struct pkcs7_signed_info *next; + struct x509_certificate *signer; unsigned int index; + bool unsupported_crypto; + bool blacklisted; + const void *msgdigest; + unsigned int msgdigest_len; + unsigned int authattrs_len; + const void *authattrs; + unsigned long aa_set; + time64_t signing_time; + struct public_key_signature *sig; }; -struct 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]; +typedef void (*btf_trace_block_touch_buffer)(void *, struct buffer_head *); + +typedef void (*btf_trace_block_dirty_buffer)(void *, struct buffer_head *); + +typedef void (*btf_trace_block_rq_requeue)(void *, struct request *); + +typedef void (*btf_trace_block_rq_complete)(void *, struct request *, blk_status_t, unsigned int); + +typedef void (*btf_trace_block_rq_error)(void *, struct request *, blk_status_t, unsigned int); + +typedef void (*btf_trace_block_rq_insert)(void *, struct request *); + +typedef void (*btf_trace_block_rq_issue)(void *, struct request *); + +typedef void (*btf_trace_block_rq_merge)(void *, struct request *); + +typedef void (*btf_trace_block_io_start)(void *, struct request *); + +typedef void (*btf_trace_block_io_done)(void *, struct request *); + +typedef void (*btf_trace_block_bio_complete)(void *, struct request_queue *, struct bio *); + +typedef void (*btf_trace_block_bio_bounce)(void *, struct bio *); + +typedef void (*btf_trace_block_bio_backmerge)(void *, struct bio *); + +typedef void (*btf_trace_block_bio_frontmerge)(void *, struct bio *); + +typedef void (*btf_trace_block_bio_queue)(void *, struct bio *); + +typedef void (*btf_trace_block_getrq)(void *, struct bio *); + +typedef void (*btf_trace_block_plug)(void *, struct request_queue *); + +typedef void (*btf_trace_block_unplug)(void *, struct request_queue *, unsigned int, bool); + +typedef void (*btf_trace_block_split)(void *, struct bio *, unsigned int); + +typedef void (*btf_trace_block_bio_remap)(void *, struct bio *, dev_t, sector_t); + +typedef void (*btf_trace_block_rq_remap)(void *, struct request *, dev_t, sector_t); + +struct 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 audit_tree { - refcount_t count; - int goner; - struct audit_chunk *root; - struct list_head chunks; - struct list_head rules; +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 portdrv_service_data { + struct pcie_port_service_driver *drv; + struct device *dev; + u32 service; +}; + +typedef int (*pcie_callback_t)(struct pcie_device *); + +struct acpi_dev_walk_context { + int (*fn)(struct acpi_device *, void *); + void *data; +}; + +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 list_head same_root; - struct callback_head head; - char pathname[0]; + struct acpi_device *device; + struct acpi_pci_link_irq irq; + int refcnt; }; -struct audit_tree_mark { - struct fsnotify_mark mark; - struct audit_chunk *chunk; +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 trace_probe_log { - const char *subsystem; - const char **argv; - int argc; - int index; +struct con_driver { + const struct consw *con; + const char *desc; + struct device *dev; + int node; + int first; + int last; + int flag; }; -struct cgroup_iter_priv { - struct cgroup_subsys_state *start_css; - bool visited_all; - bool terminate; - int order; +struct interval { + uint32_t first; + uint32_t last; }; -struct bpf_iter__cgroup { +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, +}; + +struct vc_draw_region { + unsigned long from; + unsigned long to; + int x; +}; + +struct rgb { + u8 r; + u8 g; + u8 b; +}; + +struct ttm_validate_buffer { + struct list_head head; + struct ttm_buffer_object *bo; + unsigned int num_shared; +}; + +struct drm_i915_gem_busy { + __u32 handle; + __u32 busy; +}; + +struct i915_ttm_memcpy_arg { union { - struct bpf_iter_meta *meta; - }; + struct ttm_kmap_iter_tt tt; + struct ttm_kmap_iter_iomap io; + } _dst_iter; union { - struct cgroup *cgroup; - }; + 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; }; -typedef void (*btf_trace_oom_score_adj_update)(void *, struct task_struct *); +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 *i915; + struct drm_i915_gem_object *obj; + bool memcpy_allowed; +}; -typedef void (*btf_trace_reclaim_retry_zone)(void *, struct zoneref *, int, unsigned long, unsigned long, unsigned long, int, bool); +struct drm_color_ctm { + __u64 matrix[9]; +}; -typedef void (*btf_trace_mark_victim)(void *, int); +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); +}; -typedef void (*btf_trace_wake_reaper)(void *, int); +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; +}; -typedef void (*btf_trace_start_task_reaping)(void *, int); +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; +}; -typedef void (*btf_trace_finish_task_reaping)(void *, int); +struct cn_dev { + struct cb_id id; + u32 seq; + u32 groups; + struct sock *nls; + struct cn_queue_dev *cbdev; +}; -typedef void (*btf_trace_skip_task_reaping)(void *, int); +typedef void (*irq_write_msi_msg_t)(struct msi_desc *, struct msi_msg *); -typedef void (*btf_trace_compact_retry)(void *, int, enum compact_priority, enum compact_result, int, int, bool); +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 trace_event_raw_oom_score_adj_update { +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; +}; + +struct trace_event_raw_ata_qc_issue_template { struct trace_entry ent; - pid_t pid; - char comm[16]; - short oom_score_adj; + 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_reclaim_retry_zone { +struct trace_event_raw_ata_qc_complete_template { 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; + 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_mark_victim { +struct trace_event_raw_ata_tf_load { struct trace_entry ent; - int pid; + 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_wake_reaper { +struct trace_event_raw_ata_exec_command_template { struct trace_entry ent; - int pid; + 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_start_task_reaping { +struct trace_event_raw_ata_bmdma_status { struct trace_entry ent; - int pid; + unsigned int ata_port; + unsigned int tag; + unsigned char host_stat; char __data[0]; }; -struct trace_event_raw_finish_task_reaping { +struct trace_event_raw_ata_eh_link_autopsy { struct trace_entry ent; - int pid; + unsigned int ata_port; + unsigned int ata_dev; + unsigned int eh_action; + unsigned int eh_err_mask; char __data[0]; }; -struct trace_event_raw_skip_task_reaping { +struct trace_event_raw_ata_eh_link_autopsy_qc { struct trace_entry ent; - int pid; + 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_compact_retry { +struct trace_event_raw_ata_eh_action_template { struct trace_entry ent; - int order; - int priority; - int result; - int retries; - int max_retries; - bool ret; + 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_oom_score_adj_update {}; +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_reclaim_retry_zone {}; +struct trace_event_data_offsets_ata_bmdma_status {}; -struct trace_event_data_offsets_mark_victim {}; +struct trace_event_data_offsets_ata_eh_link_autopsy {}; -struct trace_event_data_offsets_wake_reaper {}; +struct trace_event_data_offsets_ata_eh_link_autopsy_qc {}; -struct trace_event_data_offsets_start_task_reaping {}; +struct trace_event_data_offsets_ata_eh_action_template {}; -struct trace_event_data_offsets_finish_task_reaping {}; +struct trace_event_data_offsets_ata_link_reset_begin_template {}; -struct trace_event_data_offsets_skip_task_reaping {}; +struct trace_event_data_offsets_ata_link_reset_end_template {}; -struct trace_event_data_offsets_compact_retry {}; +struct trace_event_data_offsets_ata_port_eh_begin_template {}; -struct vma_swap_readahead { - unsigned short win; - unsigned short offset; - unsigned short nr_pte; -}; +struct trace_event_data_offsets_ata_sff_hsm_template {}; -struct hmac_ctx { - struct crypto_shash *hash; -}; +struct trace_event_data_offsets_ata_transfer_data_template {}; -struct biovec_slab { - int nr_vecs; - char *name; - struct kmem_cache *slab; -}; +struct trace_event_data_offsets_ata_sff_template {}; -struct bio_slab { - struct kmem_cache *slab; - unsigned int slab_ref; - unsigned int slab_size; - char name[8]; +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 io_cancel { - struct file *file; - u64 addr; +struct quirk_entry { + u16 vid; + u16 pid; u32 flags; - s32 fd; }; -struct io_uring_sync_cancel_reg { - __u64 addr; - __s32 fd; - __u32 flags; - struct __kernel_timespec timeout; - __u64 pad[4]; +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 acpi_gpe_block_status_context { - struct acpi_gpe_register_info *gpe_skip_register_info; - u8 gpe_skip_mask; - u8 retval; +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 con_driver { - const struct consw *con; - const char *desc; - struct device *dev; - int node; - int first; - int last; - int flag; +struct input_event_compat { + compat_ulong_t sec; + compat_ulong_t usec; + __u16 type; + __u16 code; + __s32 value; }; -struct interval { - uint32_t first; - uint32_t last; -}; +struct dm_ioctl; -enum { - blank_off = 0, - blank_normal_wait = 1, - blank_vesa_wait = 2, -}; +typedef int (*ioctl_fn___2)(struct file *, struct dm_ioctl *, size_t); -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, +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 { - EPecma = 0, - EPdec = 1, - EPeq = 2, - EPgt = 3, - EPlt = 4, + 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 vc_draw_region { - unsigned long from; - unsigned long to; - int x; +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 rgb { - u8 r; - u8 g; - u8 b; +struct dm_target_spec { + __u64 sector_start; + __u64 length; + __s32 status; + __u32 next; + char target_type[16]; }; -struct drm_out_fence_state { - s32 __attribute__((btf_type_tag("user"))) *out_fence_ptr; - struct sync_file *sync_file; - int fd; +struct dm_target_msg { + __u64 sector; + char message[0]; }; -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 dm_target_deps { + __u32 count; + __u32 padding; + __u64 dev[0]; }; -struct drm_vma_offset_file { - struct rb_node vm_rb; - struct drm_file *vm_tag; - unsigned long vm_count; +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 ttm_pool_dma { - dma_addr_t addr; - unsigned long vaddr; +struct dm_target_versions { + __u32 next; + __u32 version[3]; + char name[0]; }; -struct i915_syncmap { - u64 prefix; - unsigned int height; - unsigned int bitmap; - struct i915_syncmap *parent; +struct dm_file { + volatile unsigned int global_event_nr; }; -struct i915_debugfs_files { - const char *name; - const struct file_operations *fops; +struct dm_name_list { + __u64 dev; + __u32 next; + char name[0]; }; -struct intel_gt_bool_throttle_attr { +struct cpuidle_state_attr { struct attribute attr; - ssize_t (*show)(struct kobject *, struct kobj_attribute *, char *); - i915_reg_t (*reg32)(struct intel_gt *); - u32 mask; + 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); }; -enum intel_gt_sysfs_op { - INTEL_GT_SYSFS_MIN = 0, - INTEL_GT_SYSFS_MAX = 1, +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 wait_rps_boost { - struct wait_queue_entry wait; - struct drm_crtc *crtc; - struct i915_request *request; +struct cpuidle_device_kobj { + struct cpuidle_device *dev; + struct completion kobj_unregister; + struct kobject kobj; }; -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 cpuidle_attr { + struct attribute attr; + ssize_t (*show)(struct cpuidle_device *, char *); + ssize_t (*store)(struct cpuidle_device *, const char *, size_t); }; -struct drm_virtgpu_map { - __u64 offset; - __u32 handle; - __u32 pad; +enum { + SNDRV_HWDEP_IOCTL_DSP_LOAD32 = 1079003139, }; -struct drm_virtgpu_getparam { - __u64 param; - __u64 value; +struct snd_hwdep_info { + unsigned int device; + int card; + unsigned char id[64]; + unsigned char name[80]; + int iface; + unsigned char reserved[64]; }; -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 snd_hwdep_dsp_image32 { + u32 index; + unsigned char name[64]; + u32 image; + u32 length; + u32 driver_data; }; -struct drm_virtgpu_resource_info { - __u32 bo_handle; - __u32 res_handle; - __u32 size; - __u32 blob_mem; +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 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 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; + unsigned char direction; + unsigned char ump_group; }; -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 snd_seq_subscribers { + struct snd_seq_port_subscribe info; + struct list_head src_list; + struct list_head dest_list; + atomic_t ref_count; }; -struct drm_virtgpu_3d_wait { - __u32 handle; - __u32 flags; +enum snd_compr_direction { + SND_COMPRESS_PLAYBACK = 0, + SND_COMPRESS_CAPTURE = 1, }; -struct drm_virtgpu_get_caps { - __u32 cap_set_id; - __u32 cap_set_ver; - __u64 addr; - __u32 size; - __u32 pad; -}; +struct snd_compr_ops; -struct drm_virtgpu_context_set_param { - __u64 param; - __u64 value; +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 drm_virtgpu_context_init { - __u32 num_params; - __u32 pad; - __u64 ctx_set_params; +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 request_sense; +struct snd_compressed_buffer { + __u32 fragment_size; + __u32 fragments; +}; -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 snd_enc_wma { + __u32 super_block_align; }; -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 snd_enc_vorbis { + __s32 quality; + __u32 managed; + __u32 max_bit_rate; + __u32 min_bit_rate; + __u32 downmix; }; -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 snd_enc_real { + __u32 quant_bits; + __u32 start_region; + __u32 num_regions; }; -struct scsi_idlun { - __u32 dev_id; - __u32 host_unique_id; +struct snd_enc_flac { + __u32 num; + __u32 gain; }; -struct scsi_ioctl_command { - unsigned int inlen; - unsigned int outlen; - unsigned char data[0]; +struct snd_enc_generic { + __u32 bw; + __s32 reserved[15]; }; -struct usb_phy_roothub { - struct phy___2 *phy; - struct list_head list; +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 trackpoint_attr_data { - size_t field_offset; - u8 command; - u8 mask; - bool inverted; - u8 power_on_default; +struct snd_dec_wma { + __u32 encoder_option; + __u32 adv_encoder_option; + __u32 adv_encoder_option2; + __u32 reserved; }; -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 snd_dec_alac { + __u32 frame_length; + __u8 compatible_version; + __u8 pb; + __u8 mb; + __u8 kb; + __u32 max_run; + __u32 max_frame_bytes; }; -enum sync { - DEFAULTSYNC = 0, - NOSYNC = 1, - FORCESYNC = 2, +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; }; -struct log_header_core { - uint32_t magic; - uint32_t version; - uint64_t nr_regions; +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 log_header_disk; +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 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 snd_compr_params { + struct snd_compressed_buffer buffer; + struct snd_codec codec; + __u8 no_wake_mode; }; -struct log_header_disk { - __le32 magic; - __le32 version; - __le64 nr_regions; +struct snd_compr_metadata { + __u32 key; + __u32 value[8]; }; -struct usage_priority { - __u32 usage; - bool global; - unsigned int slot_overwrite; +struct snd_compr_tstamp { + __u32 byte_offset; + __u32 copied_total; + __u32 pcm_frames; + __u32 pcm_io_frames; + __u32 sampling_rate; }; -typedef bool (*hid_usage_cmp_t)(struct hid_usage *, unsigned int, unsigned int); +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_monitor_file { - struct file *file; - const struct file_operations *disconnected_f_op; - struct list_head shutdown_list; - struct list_head list; +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]; }; -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 snd_compr_codec_caps { + __u32 codec; + __u32 num_descriptors; + struct snd_codec_desc descriptor[32]; }; -struct hda_verb_ioctl { - u32 verb; - u32 res; +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; }; -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 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; }; -struct privflags_reply_data { - struct ethnl_reply_data base; - const char (*priv_flag_names)[32]; - unsigned int n_priv_flags; - u32 priv_flags; +struct bpf_scratchpad { + union { + __be32 diff[128]; + u8 buff[512]; + }; }; -struct ah_skb_cb { - struct xfrm_skb_cb xfrm; - void *tmp; +enum { + BPF_F_NEIGH = 2, + BPF_F_PEER = 4, + BPF_F_NEXTHOP = 8, }; -struct tmp_ext { - struct in6_addr daddr; - char hdrs[0]; +enum { + BPF_F_RECOMPUTE_CSUM = 1, + BPF_F_INVALIDATE_HASH = 2, }; -struct ah_data { - int icv_full_len; - int icv_trunc_len; - struct crypto_ahash *ahash; +enum bpf_hdr_start_off { + BPF_HDR_START_MAC = 0, + BPF_HDR_START_NET = 1, }; -struct svc_pool_map { - int count; - int mode; - unsigned int npools; - unsigned int *pool_to; - unsigned int *to_pool; +enum { + BPF_F_HDR_FIELD_MASK = 15, }; enum { - SVC_POOL_AUTO = -1, - SVC_POOL_GLOBAL = 0, - SVC_POOL_PERCPU = 1, - SVC_POOL_PERNODE = 2, + BPF_F_PSEUDO_HDR = 16, + BPF_F_MARK_MANGLED_0 = 32, + BPF_F_MARK_ENFORCE = 64, }; -enum rpc_reply_stat { - RPC_MSG_ACCEPTED = 0, - RPC_MSG_DENIED = 1, +enum { + BPF_CSUM_LEVEL_QUERY = 0, + BPF_CSUM_LEVEL_INC = 1, + BPF_CSUM_LEVEL_DEC = 2, + BPF_CSUM_LEVEL_RESET = 3, }; -enum rpc_reject_stat { - RPC_MISMATCH = 0, - RPC_AUTH_ERROR = 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, }; -struct fprop_local_single { - unsigned long events; - unsigned int period; - raw_spinlock_t lock; +enum { + BPF_ADJ_ROOM_ENCAP_L2_MASK = 255, + BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 56, }; -struct uevent_sock { - struct list_head list; - struct sock *sk; +enum bpf_adj_room_mode { + BPF_ADJ_ROOM_NET = 0, + BPF_ADJ_ROOM_MAC = 1, }; 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, + BPF_F_TUNINFO_IPV6 = 1, }; -struct bts_record { - u64 from; - u64 to; - u64 flags; +enum { + BPF_F_TUNINFO_FLAGS = 16, }; -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; +enum { + BPF_F_ZERO_CSUM_TX = 2, + BPF_F_DONT_FRAGMENT = 4, + BPF_F_SEQ_NUMBER = 8, + BPF_F_NO_TUNNEL_KEY = 16, }; -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; +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, }; -struct pebs_basic { - u64 format_size; - u64 ip; - u64 applicable_counters; - u64 tsc; +enum { + BPF_FIB_LOOKUP_DIRECT = 1, + BPF_FIB_LOOKUP_OUTPUT = 2, + BPF_FIB_LOOKUP_SKIP_NEIGH = 4, + BPF_FIB_LOOKUP_TBID = 8, + BPF_FIB_LOOKUP_SRC = 16, }; -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; - }; +enum { + BPF_FIB_LKUP_RET_SUCCESS = 0, + BPF_FIB_LKUP_RET_BLACKHOLE = 1, + BPF_FIB_LKUP_RET_UNREACHABLE = 2, + BPF_FIB_LKUP_RET_PROHIBIT = 3, + BPF_FIB_LKUP_RET_NOT_FWDED = 4, + BPF_FIB_LKUP_RET_FWD_DISABLED = 5, + BPF_FIB_LKUP_RET_UNSUPP_LWT = 6, + BPF_FIB_LKUP_RET_NO_NEIGH = 7, + BPF_FIB_LKUP_RET_FRAG_NEEDED = 8, + BPF_FIB_LKUP_RET_NO_SRC_ADDR = 9, }; -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; +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, }; -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; +enum bpf_check_mtu_flags { + BPF_MTU_CHK_SEGS = 1, }; -struct pebs_meminfo { - u64 address; - u64 aux; - u64 latency; - u64 tsx_tuning; +enum bpf_lwt_encap_mode { + BPF_LWT_ENCAP_SEG6 = 0, + BPF_LWT_ENCAP_SEG6_INLINE = 1, + BPF_LWT_ENCAP_IP = 2, }; -struct pebs_xmm { - u64 xmm[32]; +enum { + BPF_LOAD_HDR_OPT_TCP_SYN = 1, }; enum { - HP_THREAD_NONE = 0, - HP_THREAD_ACTIVE = 1, - HP_THREAD_PARKED = 2, + BPF_SKB_TSTAMP_UNSPEC = 0, + BPF_SKB_TSTAMP_DELIVERY_MONO = 1, }; -struct smpboot_thread_data { - unsigned int cpu; - unsigned int status; - struct smp_hotplug_thread *ht; +enum { + BPF_SK_LOOKUP_F_REPLACE = 1, + BPF_SK_LOOKUP_F_NO_REUSEPORT = 2, }; -typedef void (*btf_trace_contention_begin)(void *, void *, unsigned int); +typedef u64 (*btf_bpf_skb_get_pay_offset)(struct sk_buff *); + +typedef u64 (*btf_bpf_skb_get_nlattr)(struct sk_buff *, u32, u32); + +typedef u64 (*btf_bpf_skb_get_nlattr_nest)(struct sk_buff *, u32, u32); + +typedef u64 (*btf_bpf_skb_load_helper_8)(const struct sk_buff *, const void *, int, int); + +typedef u64 (*btf_bpf_skb_load_helper_8_no_cache)(const struct sk_buff *, int); + +typedef u64 (*btf_bpf_skb_load_helper_16)(const struct sk_buff *, const void *, int, int); + +typedef u64 (*btf_bpf_skb_load_helper_16_no_cache)(const struct sk_buff *, int); + +typedef u64 (*btf_bpf_skb_load_helper_32)(const struct sk_buff *, const void *, int, int); + +typedef u64 (*btf_bpf_skb_load_helper_32_no_cache)(const struct sk_buff *, int); + +typedef u64 (*btf_bpf_skb_store_bytes)(struct sk_buff *, u32, const void *, u32, u64); + +typedef u64 (*btf_bpf_skb_load_bytes)(const struct sk_buff *, u32, void *, u32); + +typedef u64 (*btf_bpf_flow_dissector_load_bytes)(const struct bpf_flow_dissector *, u32, void *, u32); -typedef void (*btf_trace_contention_end)(void *, void *, int); +typedef u64 (*btf_bpf_skb_load_bytes_relative)(const struct sk_buff *, u32, void *, u32, u32); -struct trace_event_raw_contention_begin { - struct trace_entry ent; - void *lock_addr; - unsigned int flags; - char __data[0]; -}; +typedef u64 (*btf_bpf_skb_pull_data)(struct sk_buff *, u32); -struct trace_event_raw_contention_end { - struct trace_entry ent; - void *lock_addr; - int ret; - char __data[0]; -}; +typedef u64 (*btf_bpf_sk_fullsock)(struct sock *); -struct mutex_waiter { - struct list_head list; - struct task_struct *task; - struct ww_acquire_ctx *ww_ctx; -}; +typedef u64 (*btf_sk_skb_pull_data)(struct sk_buff *, u32); -struct trace_event_data_offsets_contention_begin {}; +typedef u64 (*btf_bpf_l3_csum_replace)(struct sk_buff *, u32, u64, u64, u64); -struct trace_event_data_offsets_contention_end {}; +typedef u64 (*btf_bpf_l4_csum_replace)(struct sk_buff *, u32, u64, u64, u64); -struct misc_res { - unsigned long max; - atomic_long_t usage; - atomic_long_t events; -}; +typedef u64 (*btf_bpf_csum_diff)(__be32 *, u32, __be32 *, u32, __wsum); -struct misc_cg { - struct cgroup_subsys_state css; - struct cgroup_file events_file; - struct misc_res res[0]; -}; +typedef u64 (*btf_bpf_csum_update)(struct sk_buff *, __wsum); -enum misc_res_type { - MISC_CG_RES_TYPES = 0, -}; +typedef u64 (*btf_bpf_csum_level)(struct sk_buff *, u64); -typedef void (*btf_trace_error_report_end)(void *, enum error_detector, unsigned long); +typedef u64 (*btf_bpf_clone_redirect)(struct sk_buff *, u32, u64); -struct trace_event_raw_error_report_template { - struct trace_entry ent; - enum error_detector error_detector; - unsigned long id; - char __data[0]; -}; +typedef u64 (*btf_bpf_redirect)(u32, u64); -struct trace_event_data_offsets_error_report_template {}; +typedef u64 (*btf_bpf_redirect_peer)(u32, u64); -struct bucket; +struct bpf_redir_neigh; -struct htab_elem; +typedef u64 (*btf_bpf_redirect_neigh)(u32, struct bpf_redir_neigh *, int, u64); -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; +struct bpf_redir_neigh { + __u32 nh_family; union { - struct pcpu_freelist freelist; - struct bpf_lru lru; + __be32 ipv4_nh; + __u32 ipv6_nh[4]; }; - 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; -}; +typedef u64 (*btf_bpf_msg_apply_bytes)(struct sk_msg *, u32); -struct htab_elem { - union { - struct hlist_nulls_node hash_node; - struct { - void *padding; - union { - struct pcpu_freelist_node fnode; - struct htab_elem *batch_flink; - }; - }; - }; - union { - void *ptr_to_pptr; - struct bpf_lru_node lru_node; - }; - u32 hash; - long: 0; - char key[0]; -}; +typedef u64 (*btf_bpf_msg_cork_bytes)(struct sk_msg *, u32); -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; -}; +typedef u64 (*btf_bpf_msg_pull_data)(struct sk_msg *, u32, u32, u64); -enum sgp_type { - SGP_READ = 0, - SGP_NOALLOC = 1, - SGP_CACHE = 2, - SGP_WRITE = 3, - SGP_FALLOC = 4, -}; +typedef u64 (*btf_bpf_msg_push_data)(struct sk_msg *, u32, u32, u64); -enum shmem_param { - Opt_gid___8 = 0, - Opt_huge = 1, - Opt_mode___6 = 2, - Opt_mpol = 3, - Opt_nr_blocks = 4, - Opt_nr_inodes___2 = 5, - Opt_size___2 = 6, - Opt_uid___7 = 7, - Opt_inode32 = 8, - Opt_inode64 = 9, - Opt_noswap = 10, -}; +typedef u64 (*btf_bpf_msg_pop_data)(struct sk_msg *, u32, u32, u64); -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; - bool noswap; - ino_t next_ino; - ino_t __attribute__((btf_type_tag("percpu"))) *ino_batch; - struct mempolicy *mpol; - spinlock_t shrinklist_lock; - struct list_head shrinklist; - unsigned long shrinklist_len; -}; +typedef u64 (*btf_bpf_get_cgroup_classid_curr)(); -struct shmem_falloc { - wait_queue_head_t *waitq; - unsigned long start; - unsigned long next; - unsigned long nr_falloced; - unsigned long nr_unswapped; -}; +typedef u64 (*btf_bpf_skb_cgroup_classid)(const struct sk_buff *); -struct shmem_options { - unsigned long long blocks; - unsigned long long inodes; - struct mempolicy *mpol; - kuid_t uid; - kgid_t gid; - umode_t mode; - bool full_inums; - int huge; - int seen; - bool noswap; -}; +typedef u64 (*btf_bpf_get_cgroup_classid)(const struct sk_buff *); -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 u64 (*btf_bpf_get_route_realm)(const struct sk_buff *); -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]; -}; +typedef u64 (*btf_bpf_get_hash_recalc)(struct sk_buff *); -typedef u16 compat_nlink_t; +typedef u64 (*btf_bpf_set_hash_invalid)(struct sk_buff *); -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; -}; +typedef u64 (*btf_bpf_set_hash)(struct sk_buff *, u32); -struct kioctx_cpu; +typedef u64 (*btf_bpf_skb_vlan_push)(struct sk_buff *, __be16, u16); -struct ctx_rq_wait; +typedef u64 (*btf_bpf_skb_vlan_pop)(struct sk_buff *); -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: 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: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - }; - struct page *internal_pages[8]; - struct file *aio_ring_file; - unsigned int id; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; -}; +typedef u64 (*btf_bpf_skb_change_proto)(struct sk_buff *, __be16, u64); -struct kioctx_cpu { - unsigned int reqs_available; -}; +typedef u64 (*btf_bpf_skb_change_type)(struct sk_buff *, u32); -struct ctx_rq_wait { - struct completion comp; - atomic_t count; -}; +typedef u64 (*btf_sk_skb_adjust_room)(struct sk_buff *, s32, u32, u64); -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, -}; +typedef u64 (*btf_bpf_skb_adjust_room)(struct sk_buff *, s32, u32, u64); -struct fsync_iocb { - struct file *file; - struct work_struct work; - bool datasync; - struct cred *creds; -}; +typedef u64 (*btf_bpf_skb_change_tail)(struct sk_buff *, u32, u64); -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 u64 (*btf_sk_skb_change_tail)(struct sk_buff *, u32, u64); -typedef int kiocb_cancel_fn(struct kiocb *); +typedef u64 (*btf_bpf_skb_change_head)(struct sk_buff *, u32, u64); -struct io_event { - __u64 data; - __u64 obj; - __s64 res; - __s64 res2; -}; +typedef u64 (*btf_sk_skb_change_head)(struct sk_buff *, u32, u64); -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 u64 (*btf_bpf_xdp_get_buff_len)(struct xdp_buff *); -typedef __kernel_ulong_t aio_context_t; +typedef u64 (*btf_bpf_xdp_adjust_head)(struct xdp_buff *, int); -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; -}; +typedef u64 (*btf_bpf_xdp_load_bytes)(struct xdp_buff *, u32, void *, u32); -struct aio_poll_table { - struct poll_table_struct pt; - struct aio_kiocb *iocb; - bool queued; - int error; -}; +typedef u64 (*btf_bpf_xdp_store_bytes)(struct xdp_buff *, u32, void *, u32); -typedef u32 compat_aio_context_t; +typedef u64 (*btf_bpf_xdp_adjust_tail)(struct xdp_buff *, int); -struct __aio_sigset { - const sigset_t __attribute__((btf_type_tag("user"))) *sigmask; - size_t sigsetsize; -}; +typedef u64 (*btf_bpf_xdp_adjust_meta)(struct xdp_buff *, int); -struct __compat_aio_sigset { - compat_uptr_t sigmask; - compat_size_t sigsetsize; -}; +typedef u64 (*btf_bpf_xdp_redirect)(u32, u64); -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 u64 (*btf_bpf_xdp_redirect_map)(struct bpf_map *, u64, u64); -struct nfs_createdata { - struct nfs_createargs arg; - struct nfs_diropok res; - struct nfs_fh fhandle; - struct nfs_fattr fattr; -}; +typedef u64 (*btf_bpf_skb_event_output)(struct sk_buff *, struct bpf_map *, u64, void *, u64); -struct keyctl_dh_params { +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 { - __s32 private; - __s32 priv; + __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]; }; - __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]; -}; +typedef u64 (*btf_bpf_skb_get_tunnel_opt)(struct sk_buff *, u8 *, u32); -struct scomp_scratch { - spinlock_t lock; - void *src; - void *dst; -}; +typedef u64 (*btf_bpf_skb_set_tunnel_key)(struct sk_buff *, const struct bpf_tunnel_key *, u32, u64); -struct crypto_scomp; +typedef u64 (*btf_bpf_skb_set_tunnel_opt)(struct sk_buff *, const u8 *, u32); -struct scomp_alg { - void * (*alloc_ctx)(struct crypto_scomp *); - void (*free_ctx)(struct crypto_scomp *, void *); - int (*compress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); - int (*decompress)(struct crypto_scomp *, const u8 *, unsigned int, u8 *, unsigned int *, void *); - union { - struct { - struct crypto_alg base; - }; - struct comp_alg_common calg; - }; -}; +typedef u64 (*btf_bpf_skb_under_cgroup)(struct sk_buff *, struct bpf_map *, u32); -struct crypto_scomp { - struct crypto_tfm base; -}; +typedef u64 (*btf_bpf_skb_cgroup_id)(const struct sk_buff *); -struct bdev_inode { - struct block_device bdev; - struct inode vfs_inode; -}; +typedef u64 (*btf_bpf_skb_ancestor_cgroup_id)(const struct sk_buff *, int); -struct io_splice { - struct file *file_out; - loff_t off_out; - loff_t off_in; - u64 len; - int splice_fd_in; - unsigned int flags; -}; +typedef u64 (*btf_bpf_sk_cgroup_id)(struct sock *); -struct once_work { - struct work_struct work; - struct static_key_true *key; - struct module *module; -}; +typedef u64 (*btf_bpf_sk_ancestor_cgroup_id)(struct sock *, int); -typedef uintptr_t uptrval; +typedef u64 (*btf_bpf_xdp_event_output)(struct xdp_buff *, struct bpf_map *, u64, void *, u64); -typedef enum { - endOnOutputSize = 0, - endOnInputSize = 1, -} endCondition_directive; +typedef u64 (*btf_bpf_get_socket_cookie)(struct sk_buff *); -typedef enum { - decode_full_block = 0, - partial_decode = 1, -} earlyEnd_directive; +typedef u64 (*btf_bpf_get_socket_cookie_sock_addr)(struct bpf_sock_addr_kern *); -typedef enum { - noDict = 0, - withPrefix64k = 1, - usingExtDict = 2, -} dict_directive; +typedef u64 (*btf_bpf_get_socket_cookie_sock)(struct sock *); -typedef struct { - const uint8_t *externalDict; - size_t extDictSize; - const uint8_t *prefixEnd; - size_t prefixSize; -} LZ4_streamDecode_t_internal; +typedef u64 (*btf_bpf_get_socket_ptr_cookie)(struct sock *); -typedef union { - unsigned long long table[4]; - LZ4_streamDecode_t_internal internal_donotuse; -} LZ4_streamDecode_t; +typedef u64 (*btf_bpf_get_socket_cookie_sock_ops)(struct bpf_sock_ops_kern *); -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, -}; +typedef u64 (*btf_bpf_get_netns_cookie_sock)(struct sock *); -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, -}; +typedef u64 (*btf_bpf_get_netns_cookie_sock_addr)(struct bpf_sock_addr_kern *); -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; -}; +typedef u64 (*btf_bpf_get_netns_cookie_sock_ops)(struct bpf_sock_ops_kern *); -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; -}; +typedef u64 (*btf_bpf_get_netns_cookie_sk_msg)(struct sk_msg *); -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; -}; +typedef u64 (*btf_bpf_get_socket_uid)(struct sk_buff *); -struct lzma_len_dec { - uint16_t choice; - uint16_t choice2; - uint16_t low[128]; - uint16_t mid[128]; - uint16_t high[256]; -}; +typedef u64 (*btf_bpf_sk_setsockopt)(struct sock *, int, int, char *, int); -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]; -}; +typedef u64 (*btf_bpf_sk_getsockopt)(struct sock *, int, int, char *, int); -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; -}; +typedef u64 (*btf_bpf_unlocked_sk_setsockopt)(struct sock *, int, int, char *, int); -typedef long mpi_limb_signed_t; +typedef u64 (*btf_bpf_unlocked_sk_getsockopt)(struct sock *, int, int, char *, int); -enum pci_bar_type { - pci_bar_unknown = 0, - pci_bar_io = 1, - pci_bar_mem32 = 2, - pci_bar_mem64 = 3, -}; +typedef u64 (*btf_bpf_sock_addr_setsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); -struct pci_domain_busn_res { - struct list_head list; - struct resource res; - int domain_nr; -}; +typedef u64 (*btf_bpf_sock_addr_getsockopt)(struct bpf_sock_addr_kern *, int, int, char *, int); -struct event_counter { - u32 count; - u32 flags; -}; +typedef u64 (*btf_bpf_sock_ops_setsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); -struct acpi_data_attr; +typedef u64 (*btf_bpf_sock_ops_getsockopt)(struct bpf_sock_ops_kern *, int, int, char *, int); -struct acpi_data_obj { - char *name; - int (*fn)(void *, struct acpi_data_attr *); -}; +typedef u64 (*btf_bpf_sock_ops_cb_flags_set)(struct bpf_sock_ops_kern *, int); -struct acpi_data_attr { - struct bin_attribute attr; - u64 addr; -}; +typedef u64 (*btf_bpf_bind)(struct bpf_sock_addr_kern *, struct sockaddr *, int); -struct acpi_table_attr { - struct bin_attribute attr; - char name[4]; - int instance; - char filename[8]; - struct list_head node; -}; +struct bpf_xfrm_state; -struct acpi_table_bert { - struct acpi_table_header header; - u32 region_length; - u64 address; -}; +typedef u64 (*btf_bpf_skb_get_xfrm_state)(struct sk_buff *, u32, struct bpf_xfrm_state *, u32, u64); -struct acpi_table_ccel { - struct acpi_table_header header; - u8 CCtype; - u8 Ccsub_type; - u16 reserved; - u64 log_area_minimum_length; - u64 log_area_start_address; +struct bpf_xfrm_state { + __u32 reqid; + __u32 spi; + __u16 family; + __u16 ext; + union { + __u32 remote_ipv4; + __u32 remote_ipv6[4]; + }; }; -struct acpi_pci_device { - acpi_handle device; - struct acpi_pci_device *next; +struct bpf_fib_lookup; + +typedef u64 (*btf_bpf_xdp_fib_lookup)(struct xdp_buff *, struct bpf_fib_lookup *, int, u32); + +struct bpf_fib_lookup { + __u8 family; + __u8 l4_protocol; + __be16 sport; + __be16 dport; + union { + __u16 tot_len; + __u16 mtu_result; + }; + __u32 ifindex; + union { + __u8 tos; + __be32 flowinfo; + __u32 rt_metric; + }; + union { + __be32 ipv4_src; + __u32 ipv6_src[4]; + }; + union { + __be32 ipv4_dst; + __u32 ipv6_dst[4]; + }; + union { + struct { + __be16 h_vlan_proto; + __be16 h_vlan_TCI; + }; + __u32 tbid; + }; + __u8 smac[6]; + __u8 dmac[6]; }; -struct vring_desc; +typedef u64 (*btf_bpf_skb_fib_lookup)(struct sk_buff *, struct bpf_fib_lookup *, int, u32); -typedef struct vring_desc vring_desc_t; +typedef u64 (*btf_bpf_skb_check_mtu)(struct sk_buff *, u32, u32 *, s32, u64); -struct vring_avail; +typedef u64 (*btf_bpf_xdp_check_mtu)(struct xdp_buff *, u32, u32 *, s32, u64); -typedef struct vring_avail vring_avail_t; +typedef u64 (*btf_bpf_lwt_in_push_encap)(struct sk_buff *, u32, void *, u32); -struct vring_used; +typedef u64 (*btf_bpf_lwt_xmit_push_encap)(struct sk_buff *, u32, void *, u32); -typedef struct vring_used vring_used_t; +typedef u64 (*btf_bpf_lwt_seg6_store_bytes)(struct sk_buff *, u32, const void *, u32); -struct vring { - unsigned int num; - vring_desc_t *desc; - vring_avail_t *avail; - vring_used_t *used; -}; +typedef u64 (*btf_bpf_lwt_seg6_action)(struct sk_buff *, u32, void *, u32); -struct vring_desc_state_split; +typedef u64 (*btf_bpf_lwt_seg6_adjust_srh)(struct sk_buff *, u32, s32); -struct vring_desc_extra; +typedef u64 (*btf_bpf_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -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; -}; +typedef u64 (*btf_bpf_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct vring_packed_desc; +typedef u64 (*btf_bpf_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct vring_packed_desc_event; +typedef u64 (*btf_bpf_tc_skc_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -struct vring_desc_state_packed; +typedef u64 (*btf_bpf_tc_sk_lookup_tcp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -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; -}; +typedef u64 (*btf_bpf_tc_sk_lookup_udp)(struct sk_buff *, struct bpf_sock_tuple *, u32, u64, u64); -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 (*btf_bpf_sk_release)(struct sock *); -struct vring_desc { - __virtio64 addr; - __virtio32 len; - __virtio16 flags; - __virtio16 next; -}; +typedef u64 (*btf_bpf_xdp_sk_lookup_udp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); -struct vring_avail { - __virtio16 flags; - __virtio16 idx; - __virtio16 ring[0]; -}; +typedef u64 (*btf_bpf_xdp_skc_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); -struct vring_used_elem { - __virtio32 id; - __virtio32 len; -}; +typedef u64 (*btf_bpf_xdp_sk_lookup_tcp)(struct xdp_buff *, struct bpf_sock_tuple *, u32, u32, u64); -typedef struct vring_used_elem vring_used_elem_t; +typedef u64 (*btf_bpf_sock_addr_skc_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); -struct vring_used { - __virtio16 flags; - __virtio16 idx; - vring_used_elem_t ring[0]; -}; +typedef u64 (*btf_bpf_sock_addr_sk_lookup_tcp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); -struct vring_desc_state_split { - void *data; - struct vring_desc *indir_desc; -}; +typedef u64 (*btf_bpf_sock_addr_sk_lookup_udp)(struct bpf_sock_addr_kern *, struct bpf_sock_tuple *, u32, u64, u64); -struct vring_desc_extra { - dma_addr_t addr; - u32 len; - u16 flags; - u16 next; +struct bpf_tcp_sock { + __u32 snd_cwnd; + __u32 srtt_us; + __u32 rtt_min; + __u32 snd_ssthresh; + __u32 rcv_nxt; + __u32 snd_nxt; + __u32 snd_una; + __u32 mss_cache; + __u32 ecn_flags; + __u32 rate_delivered; + __u32 rate_interval_us; + __u32 packets_out; + __u32 retrans_out; + __u32 total_retrans; + __u32 segs_in; + __u32 data_segs_in; + __u32 segs_out; + __u32 data_segs_out; + __u32 lost_out; + __u32 sacked_out; + __u64 bytes_received; + __u64 bytes_acked; + __u32 dsack_dups; + __u32 delivered; + __u32 delivered_ce; + __u32 icsk_retransmits; }; -struct vring_packed_desc { - __le64 addr; - __le32 len; - __le16 id; - __le16 flags; -}; +typedef u64 (*btf_bpf_tcp_sock)(struct sock *); -struct vring_packed_desc_event { - __le16 off_wrap; - __le16 flags; -}; +typedef u64 (*btf_bpf_get_listener_sock)(struct sock *); -struct vring_desc_state_packed { - void *data; - struct vring_packed_desc *indir_desc; - u16 num; - u16 last; -}; +typedef u64 (*btf_bpf_skb_ecn_set_ce)(struct sk_buff *); -typedef void (*btf_trace_qi_submit)(void *, struct intel_iommu *, u64, u64, u64, u64); +typedef u64 (*btf_bpf_tcp_check_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); -typedef void (*btf_trace_prq_report)(void *, struct intel_iommu *, struct device *, u64, u64, u64, u64, unsigned long); +typedef u64 (*btf_bpf_tcp_gen_syncookie)(struct sock *, void *, u32, struct tcphdr *, u32); -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]; -}; +typedef u64 (*btf_bpf_sk_assign)(struct sk_buff *, struct sock *, u64); -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]; -}; +typedef u64 (*btf_bpf_sock_ops_load_hdr_opt)(struct bpf_sock_ops_kern *, void *, u32, u64); -struct trace_event_data_offsets_qi_submit { - u32 iommu; -}; +typedef u64 (*btf_bpf_sock_ops_store_hdr_opt)(struct bpf_sock_ops_kern *, const void *, u32, u64); -struct trace_event_data_offsets_prq_report { - u32 iommu; - u32 dev; - u32 buff; -}; +typedef u64 (*btf_bpf_sock_ops_reserve_hdr_opt)(struct bpf_sock_ops_kern *, u32, u64); -struct drm_print_iterator { - void *data; - ssize_t start; - ssize_t remain; - ssize_t offset; -}; +typedef u64 (*btf_bpf_skb_set_tstamp)(struct sk_buff *, u64, u32); -struct overlay_registers; +typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv4)(struct iphdr *, struct tcphdr *, u32); -struct intel_overlay { - struct drm_i915_private *i915; - struct intel_context *context; - struct intel_crtc *crtc; - struct i915_vma *vma; - struct i915_vma *old_vma; - struct intel_frontbuffer *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 *reg_bo; - struct overlay_registers *regs; - u32 flip_addr; - struct i915_active last_flip; - void (*flip_complete)(struct intel_overlay *); -}; +typedef u64 (*btf_bpf_tcp_raw_gen_syncookie_ipv6)(struct ipv6hdr *, struct tcphdr *, u32); -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]; -}; +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 intel_overlay_error_state { - struct overlay_registers regs; - unsigned long base; - u32 dovsta; - u32 isr; -}; +typedef u64 (*btf_sk_select_reuseport)(struct sk_reuseport_kern *, struct bpf_map *, void *, u32); -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; -}; +typedef u64 (*btf_sk_reuseport_load_bytes)(const struct sk_reuseport_kern *, u32, void *, u32); -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; -}; +typedef u64 (*btf_sk_reuseport_load_bytes_relative)(const struct sk_reuseport_kern *, u32, void *, u32, u32); -struct intel_dvo { - struct intel_encoder base; - struct intel_dvo_device dev; - struct intel_connector *attached_connector; -}; +typedef u64 (*btf_bpf_sk_lookup_assign)(struct bpf_sk_lookup_kern *, struct sock *, u64); -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 *); -}; +typedef u64 (*btf_bpf_skc_to_tcp6_sock)(struct sock *); -struct regmap_debugfs_node { - struct regmap *map; - struct list_head link; -}; +typedef u64 (*btf_bpf_skc_to_tcp_sock)(struct sock *); -struct regmap_debugfs_off_cache { - struct list_head list; - off_t min; - off_t max; - unsigned int base_reg; - unsigned int max_reg; +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 udp6_sock { + struct udp_sock udp; + struct ipv6_pinfo inet6; + long: 64; + long: 64; + long: 64; + long: 64; }; -enum { - mechtype_caddy = 0, - mechtype_tray = 1, - mechtype_popup = 2, - mechtype_individual_changer = 4, - mechtype_cartridge_changer = 5, +struct mptcp_sock {}; + +enum ethtool_flags { + ETH_FLAG_TXVLAN = 128, + ETH_FLAG_RXVLAN = 256, + ETH_FLAG_LRO = 32768, + ETH_FLAG_NTUPLE = 134217728, + ETH_FLAG_RXHASH = 268435456, }; -struct mem_entry { - u32 offset; - u32 len; +enum ethtool_sfeatures_retval_bits { + ETHTOOL_F_UNSUPPORTED__BIT = 0, + ETHTOOL_F_WISH__BIT = 1, + ETHTOOL_F_COMPAT__BIT = 2, }; -struct sensor_device_attribute { - struct device_attribute dev_attr; - int index; +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, }; -struct tg3_dev_id { - u32 vendor; - u32 device; - u32 rev; +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, }; -struct tg3_dev_id___2 { - u32 vendor; - u32 device; +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 subsys_tbl_ent { - u16 subsys_vendor; - u16 subsys_devid; - u32 phy_id; +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; }; -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 ethtool_rx_flow_match { + struct flow_dissector dissector; + struct ethtool_rx_flow_key key; + struct ethtool_rx_flow_key mask; }; -struct tg3_rx_buffer_desc; +struct ethtool_devlink_compat { + struct devlink *devlink; + union { + struct ethtool_flash efl; + struct ethtool_drvinfo info; + }; +}; -struct tg3_ext_rx_buffer_desc; +struct ethtool_value { + __u32 cmd; + __u32 data; +}; -struct ring_info___2; +struct ethtool_rx_flow_rule { + struct flow_rule *rule; + unsigned long priv[0]; +}; -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 ethtool_link_usettings { + struct ethtool_link_settings base; + struct { + __u32 supported[4]; + __u32 advertising[4]; + __u32 lp_advertising[4]; + } link_modes; }; -struct tg3; +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 tg3_hw_status; +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 tg3_tx_buffer_desc; +struct ethtool_rx_flow_spec_input { + const struct ethtool_rx_flow_spec *fs; + u32 rss_ctx; +}; -struct tg3_tx_ring_info; +struct ethtool_gstrings { + __u32 cmd; + __u32 string_set; + __u32 len; + __u8 data[0]; +}; -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: 64; - 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: 64; - long: 64; - long: 64; - long: 64; - long: 64; +struct ethtool_perm_addr { + __u32 cmd; + __u32 size; + __u8 data[0]; }; -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 ethtool_sset_info { + __u32 cmd; + __u32 reserved; + __u64 sset_mask; + __u32 data[0]; }; -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 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 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 ethtool_get_features_block { + __u32 available; + __u32 requested; + __u32 active; + __u32 never_changed; }; -struct tg3_hw_stats; +struct ethtool_gfeatures { + __u32 cmd; + __u32 size; + struct ethtool_get_features_block features[0]; +}; -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; - 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 ethtool_set_features_block { + __u32 valid; + __u32 requested; }; -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 ethtool_sfeatures { + __u32 cmd; + __u32 size; + struct ethtool_set_features_block features[0]; }; -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 ethtool_per_queue_op { + __u32 cmd; + __u32 sub_command; + __u32 queue_mask[128]; + char data[0]; }; -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; +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, }; -struct ring_info___2 { - u8 *data; - dma_addr_t mapping; +enum ctattr_tuple { + CTA_TUPLE_UNSPEC = 0, + CTA_TUPLE_IP = 1, + CTA_TUPLE_PROTO = 2, + CTA_TUPLE_ZONE = 3, + __CTA_TUPLE_MAX = 4, }; -struct tg3_tx_buffer_desc { - u32 addr_hi; - u32 addr_lo; - u32 len_flags; - u32 vlan_tag; +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, }; -struct tg3_tx_ring_info { - struct sk_buff *skb; - dma_addr_t mapping; - bool fragmented; +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, }; -typedef struct { - u32 high; - u32 low; -} tg3_stat64_t; +enum ctattr_expect_nat { + CTA_EXPECT_NAT_UNSPEC = 0, + CTA_EXPECT_NAT_DIR = 1, + CTA_EXPECT_NAT_TUPLE = 2, + __CTA_EXPECT_NAT_MAX = 3, +}; -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]; +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, }; -struct tg3_firmware_hdr { - __be32 version; - __be32 base_addr; - __be32 len; +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, }; -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; +enum ctattr_help { + CTA_HELP_UNSPEC = 0, + CTA_HELP_NAME = 1, + CTA_HELP_INFO = 2, + __CTA_HELP_MAX = 3, }; -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; +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, }; -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; +enum ctattr_synproxy { + CTA_SYNPROXY_UNSPEC = 0, + CTA_SYNPROXY_ISN = 1, + CTA_SYNPROXY_ITS = 2, + CTA_SYNPROXY_TSOFF = 3, + __CTA_SYNPROXY_MAX = 4, }; -enum i2c_driver_flags { - I2C_DRV_ACPI_WAIVE_D0_PROBE = 1, +enum ctattr_filter { + CTA_FILTER_UNSPEC = 0, + CTA_FILTER_ORIG_FLAGS = 1, + CTA_FILTER_REPLY_FLAGS = 2, + __CTA_FILTER_MAX = 3, }; -struct gsb_buffer { - u8 status; - u8 len; - union { - u16 wdata; - u8 bdata; - struct { - struct {} __empty_data; - u8 data[0]; - }; - }; +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, }; -struct i2c_acpi_irq_context { - int irq; - bool wake_capable; +enum ctattr_secctx { + CTA_SECCTX_UNSPEC = 0, + CTA_SECCTX_NAME = 1, + __CTA_SECCTX_MAX = 2, }; -struct i2c_acpi_lookup { - struct i2c_board_info *info; - acpi_handle adapter_handle; - acpi_handle device_handle; - acpi_handle search_handle; - int n; - int index; - u32 speed; - u32 min_speed; - u32 force_speed; +enum 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, }; -struct i2c_acpi_handler_data { - struct acpi_connection_info info; - struct i2c_adapter *adapter; +enum ctattr_tstamp { + CTA_TIMESTAMP_UNSPEC = 0, + CTA_TIMESTAMP_START = 1, + CTA_TIMESTAMP_STOP = 2, + CTA_TIMESTAMP_PAD = 3, + __CTA_TIMESTAMP_MAX = 4, }; -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 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, }; -typedef void (*btf_trace_hda_send_cmd)(void *, struct hdac_bus *, unsigned int); +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, +}; -typedef void (*btf_trace_hda_get_response)(void *, struct hdac_bus *, unsigned int, unsigned int); +struct ctnetlink_filter_u32 { + u32 val; + u32 mask; +}; -typedef void (*btf_trace_hda_unsol_event)(void *, struct hdac_bus *, u32, u32); +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; +}; -typedef void (*btf_trace_snd_hdac_stream_start)(void *, struct hdac_bus *, struct hdac_stream *); +struct ctnetlink_list_dump_ctx { + struct nf_conn *last; + unsigned int cpu; + bool done; +}; -typedef void (*btf_trace_snd_hdac_stream_stop)(void *, struct hdac_bus *, struct hdac_stream *); +struct ipt_error { + struct ipt_entry entry; + struct xt_error_target target; +}; -struct trace_event_raw_hda_send_cmd { - struct trace_entry ent; - u32 __data_loc_name; - u32 cmd; - char __data[0]; +struct ipt_getinfo { + char name[32]; + unsigned int valid_hooks; + unsigned int hook_entry[5]; + unsigned int underflow[5]; + unsigned int num_entries; + unsigned int size; }; -struct trace_event_raw_hda_get_response { - struct trace_entry ent; - u32 __data_loc_name; - u32 addr; - u32 res; - char __data[0]; +struct ipt_get_entries { + char name[32]; + unsigned int size; + struct ipt_entry entrytable[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 icmp6_filter { + __u32 data[8]; }; -struct trace_event_raw_hdac_stream { - struct trace_entry ent; - unsigned char stream_tag; - char __data[0]; +struct raw6_sock { + struct inet_sock inet; + __u32 checksum; + __u32 offset; + struct icmp6_filter filter; + __u32 ip6mr_table; + struct ipv6_pinfo inet6; }; -struct trace_event_data_offsets_hda_send_cmd { - u32 name; +struct raw6_frag_vec { + struct msghdr *msg; + int hlen; + char c[4]; }; -struct trace_event_data_offsets_hda_get_response { - u32 name; +struct raw_iter_state { + struct seq_net_private p; + int bucket; }; -struct trace_event_data_offsets_hda_unsol_event { - u32 name; +struct calipso_map_cache_bkt { + spinlock_t lock; + u32 size; + struct list_head list; }; -struct trace_event_data_offsets_hdac_stream {}; - -struct netdev_queue_attribute { - struct attribute attr; - ssize_t (*show)(struct netdev_queue *, char *); - ssize_t (*store)(struct netdev_queue *, const char *, size_t); +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; }; -typedef void (*btf_trace_bpf_test_finish)(void *, int *); - -struct bpf_test_timer { - enum { - NO_PREEMPT = 0, - NO_MIGRATE = 1, - } mode; - u32 i; - u64 time_start; - u64 time_spent; +struct ieee80211_wmm_ac_param { + u8 aci_aifsn; + u8 cw; + __le16 txop_limit; }; -struct bpf_fentry_test_t { - struct bpf_fentry_test_t *a; +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 trace_event_raw_bpf_test_finish { - struct trace_entry ent; - int err; - char __data[0]; +struct sockaddr_xdp { + __u16 sxdp_family; + __u16 sxdp_flags; + __u32 sxdp_ifindex; + __u32 sxdp_queue_id; + __u32 sxdp_shared_umem_fd; }; -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_ring_offset_v1 { + __u64 producer; + __u64 consumer; + __u64 desc; }; -struct xdp_page_head { - struct xdp_buff orig_ctx; - struct xdp_buff ctx; - union { - struct { - struct {} __empty_frame; - struct xdp_frame frame[0]; - }; - struct { - struct {} __empty_data; - u8 data[0]; - }; - }; +struct parsed_desc { + u32 mb; + u32 valid; }; -struct trace_event_data_offsets_bpf_test_finish {}; - -struct prog_test_member1 { - int a; +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 prog_test_member { - struct prog_test_member1 m; - int c; +struct xdp_ring_offset { + __u64 producer; + __u64 consumer; + __u64 desc; + __u64 flags; }; -struct prog_test_ref_kfunc { - int a; - int b; - struct prog_test_member memb; - struct prog_test_ref_kfunc *next; - refcount_t cnt; +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 bpf_raw_tp_test_run_info { - struct bpf_prog *prog; - void *ctx; - u32 retval; +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 tcp_sack_block_wire { - __be32 start_seq; - __be32 end_seq; +struct xdp_options { + __u32 flags; }; -enum tcp_ca_ack_event_flags { - CA_ACK_SLOWPATH = 1, - CA_ACK_WIN_UPDATE = 2, - CA_ACK_ECE = 4, +struct text_poke_loc { + s32 rel_addr; + s32 disp; + u8 len; + u8 opcode; + const u8 text[5]; + u8 old; }; -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 bp_patching_desc { + struct text_poke_loc *vec; + int nr_entries; + atomic_t refs; }; -struct icmp6_err { - int err; - int fatal; +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; }; -struct icmpv6_msg { - struct sk_buff *skb; - int offset; - uint8_t type; -}; +typedef u8 retpoline_thunk_t[32]; -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; -}; +typedef struct { + struct mm_struct *mm; +} temp_mm_state_t; -struct ip_tunnel_prl { - __be32 addr; - __u16 flags; - __u16 __reserved; - __u32 datalen; - __u32 __reserved2; -}; +typedef void text_poke_f(void *, const void *, size_t); -enum nl80211_rate_info { - __NL80211_RATE_INFO_INVALID = 0, - NL80211_RATE_INFO_BITRATE = 1, - NL80211_RATE_INFO_MCS = 2, - NL80211_RATE_INFO_40_MHZ_WIDTH = 3, - NL80211_RATE_INFO_SHORT_GI = 4, - NL80211_RATE_INFO_BITRATE32 = 5, - NL80211_RATE_INFO_VHT_MCS = 6, - NL80211_RATE_INFO_VHT_NSS = 7, - NL80211_RATE_INFO_80_MHZ_WIDTH = 8, - NL80211_RATE_INFO_80P80_MHZ_WIDTH = 9, - NL80211_RATE_INFO_160_MHZ_WIDTH = 10, - NL80211_RATE_INFO_10_MHZ_WIDTH = 11, - NL80211_RATE_INFO_5_MHZ_WIDTH = 12, - NL80211_RATE_INFO_HE_MCS = 13, - NL80211_RATE_INFO_HE_NSS = 14, - NL80211_RATE_INFO_HE_GI = 15, - NL80211_RATE_INFO_HE_DCM = 16, - NL80211_RATE_INFO_HE_RU_ALLOC = 17, - NL80211_RATE_INFO_320_MHZ_WIDTH = 18, - NL80211_RATE_INFO_EHT_MCS = 19, - NL80211_RATE_INFO_EHT_NSS = 20, - NL80211_RATE_INFO_EHT_GI = 21, - NL80211_RATE_INFO_EHT_RU_ALLOC = 22, - NL80211_RATE_INFO_S1G_MCS = 23, - NL80211_RATE_INFO_S1G_NSS = 24, - NL80211_RATE_INFO_1_MHZ_WIDTH = 25, - NL80211_RATE_INFO_2_MHZ_WIDTH = 26, - NL80211_RATE_INFO_4_MHZ_WIDTH = 27, - NL80211_RATE_INFO_8_MHZ_WIDTH = 28, - NL80211_RATE_INFO_16_MHZ_WIDTH = 29, - __NL80211_RATE_INFO_AFTER_LAST = 30, - NL80211_RATE_INFO_MAX = 29, +enum { + SAMPLES = 8, + MIN_CHANGE = 5, }; -enum plink_actions { - NL80211_PLINK_ACTION_NO_ACTION = 0, - NL80211_PLINK_ACTION_OPEN = 1, - NL80211_PLINK_ACTION_BLOCK = 2, - NUM_NL80211_PLINK_ACTIONS = 3, +struct aperfmperf { + seqcount_t seq; + unsigned long last_update; + u64 acnt; + u64 mcnt; + u64 aperf; + u64 mperf; }; -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 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, }; -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, +struct cache_map { + u64 start; + u64 end; + u64 flags; + u64 type: 8; + u64 fixed: 1; }; -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, +struct mtrr_var_range { + __u32 base_lo; + __u32 base_hi; + __u32 mask_lo; + __u32 mask_hi; }; -enum nl80211_connect_failed_reason { - NL80211_CONN_FAIL_MAX_CLIENTS = 0, - NL80211_CONN_FAIL_BLOCKED_CLIENT = 1, +struct mtrr_state_type { + struct mtrr_var_range var_ranges[256]; + mtrr_type fixed_ranges[88]; + unsigned char enabled; + bool have_fixed; + mtrr_type def_type; }; -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, +struct fixed_range_block { + int base_msr; + int ranges; }; -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, -}; +typedef void (*btf_trace_irq_handler_entry)(void *, int, struct irqaction *); -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, -}; +typedef void (*btf_trace_irq_handler_exit)(void *, int, struct irqaction *, int); -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, -}; +typedef void (*btf_trace_softirq_entry)(void *, unsigned int); -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, +typedef void (*btf_trace_softirq_exit)(void *, unsigned int); + +typedef void (*btf_trace_softirq_raise)(void *, unsigned int); + +typedef void (*btf_trace_tasklet_entry)(void *, struct tasklet_struct *, void *); + +typedef void (*btf_trace_tasklet_exit)(void *, struct tasklet_struct *, void *); + +struct tasklet_head { + struct tasklet_struct *head; + struct tasklet_struct **tail; }; -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, +struct trace_event_raw_irq_handler_entry { + struct trace_entry ent; + int irq; + u32 __data_loc_name; + char __data[0]; }; -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, +struct trace_event_raw_irq_handler_exit { + struct trace_entry ent; + int irq; + int ret; + char __data[0]; }; -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, +struct trace_event_raw_softirq { + struct trace_entry ent; + unsigned int vec; + char __data[0]; }; -enum nl80211_ap_settings_flags { - NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1, - NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 2, +struct trace_event_raw_tasklet { + struct trace_entry ent; + void *tasklet; + void *func; + char __data[0]; }; -enum nl80211_wpa_versions { - NL80211_WPA_VERSION_1 = 1, - NL80211_WPA_VERSION_2 = 2, - NL80211_WPA_VERSION_3 = 4, +struct trace_event_data_offsets_irq_handler_entry { + u32 name; }; -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, +struct trace_event_data_offsets_irq_handler_exit {}; + +struct trace_event_data_offsets_softirq {}; + +struct trace_event_data_offsets_tasklet {}; + +typedef void (*btf_trace_notifier_register)(void *, void *); + +typedef void (*btf_trace_notifier_unregister)(void *, void *); + +typedef void (*btf_trace_notifier_run)(void *, void *); + +struct trace_event_raw_notifier_info { + struct trace_entry ent; + void *cb; + char __data[0]; }; -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, +struct trace_event_data_offsets_notifier_info {}; + +struct rcu_exp_work { + unsigned long rew_s; + struct work_struct rew_work; }; -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, +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: 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; }; -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, +union rcu_noqs { + struct { + u8 norm; + u8 exp; + } b; + u16 s; }; -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, +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; }; -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, +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; }; -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, +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; + int nr_fqs_jiffies_stall; + unsigned long jiffies_resched; + unsigned long n_force_qs_gpstart; + const char *name; + char abbr; + 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; }; -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, +struct rcu_gp_oldstate { + unsigned long rgos_norm; + unsigned long rgos_exp; }; -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, +struct kfree_rcu_cpu; + +struct kfree_rcu_cpu_work { + struct rcu_work rcu_work; + struct callback_head *head_free; + struct rcu_gp_oldstate head_free_gp_snap; + struct list_head bulk_head_free[2]; + struct kfree_rcu_cpu *krcp; }; -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, +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; }; -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, +struct kvfree_rcu_bulk_data { + struct list_head list; + struct rcu_gp_oldstate gp_snap; + unsigned long nr_records; + void *records[0]; }; -enum nl80211_bss_status { - NL80211_BSS_STATUS_AUTHENTICATED = 0, - NL80211_BSS_STATUS_ASSOCIATED = 1, - NL80211_BSS_STATUS_IBSS_JOINED = 2, +struct rcu_stall_chk_rdr { + int nesting; + union rcu_special rs; + bool on_blkd_list; }; -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, +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; }; -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, +struct bpf_kfunc_desc { + struct btf_func_model func_model; + u32 func_id; + s32 imm; + u16 offset; + unsigned long addr; }; -enum cfg80211_connect_params_changed { - UPDATE_ASSOC_IES = 1, - UPDATE_FILS_ERP_INFO = 2, - UPDATE_AUTH_TYPE = 4, +struct bpf_kfunc_desc_tab { + struct bpf_kfunc_desc descs[256]; + u32 nr_descs; }; -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, +struct bpf_kfunc_btf { + struct btf *btf; + struct module *module; + u16 offset; }; -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, +struct bpf_kfunc_btf_tab { + struct bpf_kfunc_btf descs[256]; + u32 nr_descs; }; -enum nl80211_ps_state { - NL80211_PS_DISABLED = 0, - NL80211_PS_ENABLED = 1, +struct bpf_reg_types { + const enum bpf_reg_type types[10]; + u32 *btf_id; }; -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 special_kfunc_type { + KF_bpf_obj_new_impl = 0, + KF_bpf_obj_drop_impl = 1, + KF_bpf_refcount_acquire_impl = 2, + KF_bpf_list_push_front_impl = 3, + KF_bpf_list_push_back_impl = 4, + KF_bpf_list_pop_front = 5, + KF_bpf_list_pop_back = 6, + KF_bpf_cast_to_kern_ctx = 7, + KF_bpf_rdonly_cast = 8, + KF_bpf_rcu_read_lock = 9, + KF_bpf_rcu_read_unlock = 10, + KF_bpf_rbtree_remove = 11, + KF_bpf_rbtree_add_impl = 12, + KF_bpf_rbtree_first = 13, + KF_bpf_dynptr_from_skb = 14, + KF_bpf_dynptr_from_xdp = 15, + KF_bpf_dynptr_slice = 16, + KF_bpf_dynptr_slice_rdwr = 17, + KF_bpf_dynptr_clone = 18, + KF_bpf_percpu_obj_new_impl = 19, + KF_bpf_percpu_obj_drop_impl = 20, + KF_bpf_throw = 21, + KF_bpf_iter_css_task_new = 22, }; -enum ieee80211_mesh_sync_method { - IEEE80211_SYNC_METHOD_NEIGHBOR_OFFSET = 1, - IEEE80211_SYNC_METHOD_VENDOR = 255, +enum bpf_stack_slot_type { + STACK_INVALID = 0, + STACK_SPILL = 1, + STACK_MISC = 2, + STACK_ZERO = 3, + STACK_DYNPTR = 4, + STACK_ITER = 5, }; -enum ieee80211_mesh_path_protocol { - IEEE80211_PATH_PROTOCOL_HWMP = 1, - IEEE80211_PATH_PROTOCOL_VENDOR = 255, +enum bpf_access_src { + ACCESS_DIRECT = 1, + ACCESS_HELPER = 2, }; -enum ieee80211_mesh_path_metric { - IEEE80211_PATH_METRIC_AIRTIME = 1, - IEEE80211_PATH_METRIC_VENDOR = 255, +enum { + DISCOVERED = 16, + EXPLORED = 32, + FALLTHROUGH = 1, + BRANCH = 2, }; -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 { + DONE_EXPLORING = 0, + KEEP_EXPLORING = 1, }; -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 reg_arg_type { + SRC_OP = 0, + DST_OP = 1, + DST_OP_NO_MARK = 2, }; -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 { + REASON_BOUNDS = -1, + REASON_TYPE = -2, + REASON_PATHS = -3, + REASON_LIMIT = -4, + REASON_STACK = -5, }; -enum nl80211_nan_publish_type { - NL80211_NAN_SOLICITED_PUBLISH = 1, - NL80211_NAN_UNSOLICITED_PUBLISH = 2, +enum kfunc_ptr_arg_type { + KF_ARG_PTR_TO_CTX = 0, + KF_ARG_PTR_TO_ALLOC_BTF_ID = 1, + KF_ARG_PTR_TO_REFCOUNTED_KPTR = 2, + KF_ARG_PTR_TO_DYNPTR = 3, + KF_ARG_PTR_TO_ITER = 4, + KF_ARG_PTR_TO_LIST_HEAD = 5, + KF_ARG_PTR_TO_LIST_NODE = 6, + KF_ARG_PTR_TO_BTF_ID = 7, + KF_ARG_PTR_TO_MEM = 8, + KF_ARG_PTR_TO_MEM_SIZE = 9, + KF_ARG_PTR_TO_CALLBACK = 10, + KF_ARG_PTR_TO_RB_ROOT = 11, + KF_ARG_PTR_TO_RB_NODE = 12, + KF_ARG_PTR_TO_NULL = 13, }; -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 { + 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 nl80211_protocol_features { - NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 1, +enum { + AT_PKT_END = -1, + BEYOND_PKT_END = -2, }; -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, +struct bpf_iter_meta__safe_trusted { + struct seq_file *seq; }; -enum wiphy_vendor_command_flags { - WIPHY_VENDOR_CMD_NEED_WDEV = 1, - WIPHY_VENDOR_CMD_NEED_NETDEV = 2, - WIPHY_VENDOR_CMD_NEED_RUNNING = 4, +struct bpf_iter__task__safe_trusted { + struct bpf_iter_meta *meta; + struct task_struct *task; }; -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, +struct linux_binprm__safe_trusted { + struct file *file; }; -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, +struct file__safe_trusted { + struct inode *f_inode; }; -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, +struct dentry__safe_trusted { + struct inode *d_inode; }; -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, +struct socket__safe_trusted { + struct sock *sk; }; -enum nl80211_band_attr { - __NL80211_BAND_ATTR_INVALID = 0, - NL80211_BAND_ATTR_FREQS = 1, - NL80211_BAND_ATTR_RATES = 2, - NL80211_BAND_ATTR_HT_MCS_SET = 3, - NL80211_BAND_ATTR_HT_CAPA = 4, - NL80211_BAND_ATTR_HT_AMPDU_FACTOR = 5, - NL80211_BAND_ATTR_HT_AMPDU_DENSITY = 6, - NL80211_BAND_ATTR_VHT_MCS_SET = 7, - NL80211_BAND_ATTR_VHT_CAPA = 8, - NL80211_BAND_ATTR_IFTYPE_DATA = 9, - NL80211_BAND_ATTR_EDMG_CHANNELS = 10, - NL80211_BAND_ATTR_EDMG_BW_CONFIG = 11, - NL80211_BAND_ATTR_S1G_MCS_NSS_SET = 12, - NL80211_BAND_ATTR_S1G_CAPA = 13, - __NL80211_BAND_ATTR_AFTER_LAST = 14, - NL80211_BAND_ATTR_MAX = 13, +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; }; -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, +struct cgroup__safe_rcu { + struct kernfs_node *kn; }; -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, +struct css_set__safe_rcu { + struct cgroup *dfl_cgrp; }; -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, +struct mm_struct__safe_rcu_or_null { + struct file __attribute__((btf_type_tag("rcu"))) *exe_file; }; -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, +struct sk_buff__safe_rcu_or_null { + struct sock *sk; }; -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, +struct request_sock__safe_rcu_or_null { + struct sock *sk; }; -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, -}; +struct bpf_iter; -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, +typedef u32 (*bpf_convert_ctx_access_t)(enum bpf_access_type, const struct bpf_insn *, struct bpf_insn *, struct bpf_prog *, u32 *); + +struct bpf_struct_ops { + const struct bpf_verifier_ops *verifier_ops; + int (*init)(struct btf *); + int (*check_member)(const struct btf_type *, const struct btf_member *, const struct bpf_prog *); + int (*init_member)(const struct btf_type *, const struct btf_member *, void *, const void *); + int (*reg)(void *); + void (*unreg)(void *); + int (*update)(void *, void *); + int (*validate)(void *); + 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 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, +struct bpf_kfunc_call_arg_meta { + struct btf *btf; + u32 func_id; + u32 kfunc_flags; + const struct btf_type *func_proto; + const char *func_name; + u32 ref_obj_id; + u8 release_regno; + bool r0_rdonly; + u32 ret_btf_id; + u64 r0_size; + u32 subprogno; + struct { + u64 value; + bool found; + } arg_constant; + struct btf *arg_btf; + u32 arg_btf_id; + bool arg_owning_ref; + struct { + struct btf_field *field; + } arg_list_head; + struct { + struct btf_field *field; + } arg_rbtree_root; + struct { + enum bpf_dynptr_type type; + u32 id; + u32 ref_obj_id; + } initialized_dynptr; + struct { + u8 spi; + u8 frameno; + } iter; + u64 mem_size; }; -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, +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; }; -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, +struct bpf_sanitize_info { + struct bpf_insn_aux_data aux; + bool mask_to_left; }; -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, +typedef int (*set_callee_state_fn)(struct bpf_verifier_env *, struct bpf_func_state *, struct bpf_func_state *, int); + +struct char_device_struct { + struct char_device_struct *next; + unsigned int major; + unsigned int baseminor; + int minorct; + char name[64]; + struct cdev *cdev; }; -struct key_parse { - struct key_params p; - int idx; - int type; - bool def; - bool defmgmt; - bool defbeacon; - bool def_uni; - bool def_multi; +struct dnotify_struct; + +struct dnotify_mark { + struct fsnotify_mark fsn_mark; + struct dnotify_struct *dn; }; -struct nl80211_txrate_vht { - __u16 mcs[8]; +struct dnotify_struct { + struct dnotify_struct *dn_next; + __u32 dn_mask; + int dn_fd; + struct file *dn_filp; + fl_owner_t dn_owner; }; -struct nl80211_txrate_he { - __u16 mcs[8]; +typedef struct { + __le32 *p; + __le32 key; + struct buffer_head *bh; +} Indirect; + +typedef void (*btf_trace_jbd2_checkpoint)(void *, journal_t *, int); + +typedef void (*btf_trace_jbd2_start_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_locking)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_flushing)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_commit_logging)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_drop_transaction)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_end_commit)(void *, journal_t *, transaction_t *); + +typedef void (*btf_trace_jbd2_submit_inode_data)(void *, struct inode *); + +typedef void (*btf_trace_jbd2_handle_start)(void *, dev_t, tid_t, unsigned int, unsigned int, int); + +typedef void (*btf_trace_jbd2_handle_restart)(void *, dev_t, tid_t, unsigned int, unsigned int, int); + +typedef void (*btf_trace_jbd2_handle_extend)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int); + +typedef void (*btf_trace_jbd2_handle_stats)(void *, dev_t, tid_t, unsigned int, unsigned int, int, int, int, int); + +typedef void (*btf_trace_jbd2_run_stats)(void *, dev_t, tid_t, struct transaction_run_stats_s *); + +typedef void (*btf_trace_jbd2_checkpoint_stats)(void *, dev_t, tid_t, struct transaction_chp_stats_s *); + +typedef void (*btf_trace_jbd2_update_log_tail)(void *, journal_t *, tid_t, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_write_superblock)(void *, journal_t *, blk_opf_t); + +typedef void (*btf_trace_jbd2_lock_buffer_stall)(void *, dev_t, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_count)(void *, journal_t *, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_scan_enter)(void *, journal_t *, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_scan_exit)(void *, journal_t *, unsigned long, unsigned long, unsigned long); + +typedef void (*btf_trace_jbd2_shrink_checkpoint_list)(void *, journal_t *, tid_t, tid_t, tid_t, unsigned long, tid_t); + +struct trace_event_raw_jbd2_checkpoint { + struct trace_entry ent; + dev_t dev; + int result; + char __data[0]; }; -struct nl80211_dump_wiphy_state { - s64 filter_wiphy; - long start; - long split_start; - long band_start; - long chan_start; - long capa_start; - bool split; +struct trace_event_raw_jbd2_commit { + struct trace_entry ent; + dev_t dev; + char sync_commit; + tid_t transaction; + char __data[0]; }; -struct get_key_cookie { - struct sk_buff *msg; - int error; - int idx; +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 nl80211_bss_select_rssi_adjust { - __u8 band; - __s8 delta; +struct trace_event_raw_jbd2_submit_inode_data { + struct trace_entry ent; + dev_t dev; + ino_t ino; + char __data[0]; }; -struct nl80211_pattern_support { - __u32 max_patterns; - __u32 min_pattern_len; - __u32 max_pattern_len; - __u32 max_pkt_offset; +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 nl80211_coalesce_rule_support { - __u32 max_rules; - struct nl80211_pattern_support pat; - __u32 max_delay; +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 pv_info { - const char *name; +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 pv_cpu_ops { - void (*io_delay)(); +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 pv_irq_ops {}; +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 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 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 paravirt_callee_save { - void *func; +struct trace_event_raw_jbd2_write_superblock { + struct trace_entry ent; + dev_t dev; + blk_opf_t write_flags; + char __data[0]; }; -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 trace_event_raw_jbd2_lock_buffer_stall { + struct trace_entry ent; + dev_t dev; + unsigned long stall_ms; + char __data[0]; }; -struct paravirt_patch_template { - struct pv_cpu_ops cpu; - struct pv_irq_ops irq; - struct pv_mmu_ops mmu; - struct pv_lock_ops lock; +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]; }; -enum paravirt_lazy_mode { - PARAVIRT_LAZY_NONE = 0, - PARAVIRT_LAZY_MMU = 1, - PARAVIRT_LAZY_CPU = 2, +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]; }; -union efi_simple_text_input_protocol; +struct trace_event_raw_jbd2_shrink_checkpoint_list { + struct trace_entry ent; + dev_t dev; + tid_t first_tid; + tid_t tid; + tid_t last_tid; + unsigned long nr_freed; + tid_t next_tid; + char __data[0]; +}; -typedef union efi_simple_text_input_protocol efi_simple_text_input_protocol_t; +struct trace_event_data_offsets_jbd2_checkpoint {}; -union efi_simple_text_output_protocol; +struct trace_event_data_offsets_jbd2_commit {}; -typedef union efi_simple_text_output_protocol efi_simple_text_output_protocol_t; +struct trace_event_data_offsets_jbd2_end_commit {}; -union efi_boot_services; +struct trace_event_data_offsets_jbd2_submit_inode_data {}; -typedef union efi_boot_services efi_boot_services_t; +struct trace_event_data_offsets_jbd2_handle_start_class {}; -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 trace_event_data_offsets_jbd2_handle_extend {}; -typedef void (*btf_trace_sched_kthread_stop)(void *, struct task_struct *); +struct trace_event_data_offsets_jbd2_handle_stats {}; -typedef void (*btf_trace_sched_kthread_stop_ret)(void *, int); +struct trace_event_data_offsets_jbd2_run_stats {}; -typedef void (*btf_trace_sched_kthread_work_queue_work)(void *, struct kthread_worker *, struct kthread_work *); +struct trace_event_data_offsets_jbd2_checkpoint_stats {}; -typedef void (*btf_trace_sched_kthread_work_execute_start)(void *, struct kthread_work *); +struct trace_event_data_offsets_jbd2_update_log_tail {}; -typedef void (*btf_trace_sched_kthread_work_execute_end)(void *, struct kthread_work *, kthread_work_func_t); +struct trace_event_data_offsets_jbd2_write_superblock {}; -typedef void (*btf_trace_sched_waking)(void *, struct task_struct *); +struct trace_event_data_offsets_jbd2_lock_buffer_stall {}; -typedef void (*btf_trace_sched_wakeup)(void *, struct task_struct *); +struct trace_event_data_offsets_jbd2_journal_shrink {}; -typedef void (*btf_trace_sched_wakeup_new)(void *, struct task_struct *); +struct trace_event_data_offsets_jbd2_shrink_scan_exit {}; -typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int); +struct trace_event_data_offsets_jbd2_shrink_checkpoint_list {}; -typedef void (*btf_trace_sched_migrate_task)(void *, struct task_struct *, int); +struct jbd2_stats_proc_session { + journal_t *journal; + struct transaction_stats_s *stats; + int start; + int max; +}; -typedef void (*btf_trace_sched_process_free)(void *, struct task_struct *); +struct nfs_createdata { + struct nfs_createargs arg; + struct nfs_diropok res; + struct nfs_fh fhandle; + struct nfs_fattr fattr; +}; -typedef void (*btf_trace_sched_process_exit)(void *, struct task_struct *); +struct p9_rstatfs { + u32 type; + u32 bsize; + u64 blocks; + u64 bfree; + u64 bavail; + u64 files; + u64 ffree; + u64 fsid; + u32 namelen; +}; -typedef void (*btf_trace_sched_wait_task)(void *, struct task_struct *); +struct rsa_asn1_template { + const char *name; + const u8 *data; + size_t size; +}; -typedef void (*btf_trace_sched_process_wait)(void *, struct pid *); +struct pkcs1pad_inst_ctx { + struct crypto_akcipher_spawn spawn; + const struct rsa_asn1_template *digest_info; +}; -typedef void (*btf_trace_sched_process_fork)(void *, struct task_struct *, struct task_struct *); +struct pkcs1pad_ctx { + struct crypto_akcipher *child; + unsigned int key_size; +}; -typedef void (*btf_trace_sched_process_exec)(void *, struct task_struct *, pid_t, struct linux_binprm *); +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; +}; -typedef void (*btf_trace_sched_stat_wait)(void *, struct task_struct *, u64); +enum asn1_class { + ASN1_UNIV = 0, + ASN1_APPL = 1, + ASN1_CONT = 2, + ASN1_PRIV = 3, +}; -typedef void (*btf_trace_sched_stat_sleep)(void *, struct task_struct *, u64); +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; +}; -typedef void (*btf_trace_sched_stat_iowait)(void *, struct task_struct *, u64); +struct bdev_inode { + struct block_device bdev; + struct inode vfs_inode; +}; -typedef void (*btf_trace_sched_stat_blocked)(void *, struct task_struct *, u64); +struct blkpg_ioctl_arg { + int op; + int flags; + int datalen; + void __attribute__((btf_type_tag("user"))) *data; +}; -typedef void (*btf_trace_sched_stat_runtime)(void *, struct task_struct *, u64, u64); +struct blkpg_partition { + long long start; + long long length; + int pno; + char devname[64]; + char volname[64]; +}; -typedef void (*btf_trace_sched_pi_setprio)(void *, struct task_struct *, struct task_struct *); +struct pr_preempt { + __u64 old_key; + __u64 new_key; + __u32 type; + __u32 flags; +}; -typedef void (*btf_trace_sched_move_numa)(void *, struct task_struct *, int, int); +struct pr_clear { + __u64 key; + __u32 flags; + __u32 __pad; +}; -typedef void (*btf_trace_sched_stick_numa)(void *, struct task_struct *, int, struct task_struct *, int); +struct pr_reservation { + __u64 key; + __u32 type; + __u32 flags; +}; -typedef void (*btf_trace_sched_swap_numa)(void *, struct task_struct *, int, struct task_struct *, int); +struct pr_registration { + __u64 old_key; + __u64 new_key; + __u32 flags; + __u32 __pad; +}; -typedef void (*btf_trace_sched_wake_idle_without_ipi)(void *, int); +struct compat_hd_geometry { + unsigned char heads; + unsigned char sectors; + unsigned short cylinders; + u32 start; +}; -typedef void (*btf_trace_pelt_cfs_tp)(void *, struct cfs_rq *); +struct compat_blkpg_ioctl_arg { + compat_int_t op; + compat_int_t flags; + compat_int_t datalen; + compat_caddr_t data; +}; -typedef void (*btf_trace_pelt_rt_tp)(void *, struct rq *); +struct io_cancel { + struct file *file; + u64 addr; + u32 flags; + s32 fd; + u8 opcode; +}; -typedef void (*btf_trace_pelt_dl_tp)(void *, struct rq *); +struct io_uring_sync_cancel_reg { + __u64 addr; + __s32 fd; + __u32 flags; + struct __kernel_timespec timeout; + __u8 opcode; + __u8 pad[7]; + __u64 pad2[3]; +}; -typedef void (*btf_trace_pelt_thermal_tp)(void *, struct rq *); +struct barrett_ctx_s { + MPI m; + int m_copied; + int k; + MPI y; + MPI r1; + MPI r2; + MPI r3; +}; -typedef void (*btf_trace_pelt_irq_tp)(void *, struct rq *); +typedef uint64_t vli_type; -typedef void (*btf_trace_pelt_se_tp)(void *, struct sched_entity *); +struct xz_dec_hash { + vli_type unpadded; + vli_type uncompressed; + uint32_t crc32; +}; -typedef void (*btf_trace_sched_cpu_capacity_tp)(void *, struct rq *); +enum xz_check { + XZ_CHECK_NONE = 0, + XZ_CHECK_CRC32 = 1, + XZ_CHECK_CRC64 = 4, + XZ_CHECK_SHA256 = 10, +}; -typedef void (*btf_trace_sched_overutilized_tp)(void *, struct root_domain *, bool); +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; +}; -typedef void (*btf_trace_sched_util_est_cfs_tp)(void *, struct cfs_rq *); +typedef void (*btf_trace_read_msr)(void *, unsigned int, u64, int); -typedef void (*btf_trace_sched_util_est_se_tp)(void *, struct sched_entity *); +typedef void (*btf_trace_write_msr)(void *, unsigned int, u64, int); -typedef void (*btf_trace_sched_update_nr_running_tp)(void *, struct rq *, int); +typedef void (*btf_trace_rdpmc)(void *, unsigned int, u64, int); -typedef void (*btf_trace_ipi_raise)(void *, const struct cpumask *, const char *); +struct trace_event_raw_msr_trace_class { + struct trace_entry ent; + unsigned int msr; + u64 val; + int failed; + char __data[0]; +}; -typedef void (*btf_trace_ipi_send_cpu)(void *, const unsigned int, unsigned long, void *); +struct trace_event_data_offsets_msr_trace_class {}; -typedef void (*btf_trace_ipi_send_cpumask)(void *, const struct cpumask *, unsigned long, void *); +struct pci_dev_reset_methods { + u16 vendor; + u16 device; + int (*reset)(struct pci_dev *, bool); +}; -typedef void (*btf_trace_ipi_entry)(void *, const char *); +struct pci_dev_acs_enabled { + u16 vendor; + u16 device; + int (*acs_enabled)(struct pci_dev *, u16); +}; -typedef void (*btf_trace_ipi_exit)(void *, const char *); +struct pci_dev_acs_ops { + u16 vendor; + u16 device; + int (*enable_acs)(struct pci_dev *); + int (*disable_acs_redir)(struct pci_dev *); +}; enum { - preempt_dynamic_undefined = -1, - preempt_dynamic_none = 0, - preempt_dynamic_voluntary = 1, - preempt_dynamic_full = 2, + 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 { - cpuset = 0, - possible = 1, - fail = 2, + 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, }; -union cpumask_rcuhead { - cpumask_t cpumask; - struct callback_head rcu; +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, }; -struct trace_event_raw_sched_kthread_stop { - struct trace_entry ent; - char comm[16]; - pid_t pid; - char __data[0]; +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, }; -struct trace_event_raw_sched_kthread_stop_ret { - struct trace_entry ent; - int ret; - char __data[0]; +enum { + SWITCHTEC_NTB_REG_INFO_OFFSET = 0, + SWITCHTEC_NTB_REG_CTRL_OFFSET = 16384, + SWITCHTEC_NTB_REG_DBMSG_OFFSET = 409600, }; -struct trace_event_raw_sched_kthread_work_queue_work { - struct trace_entry ent; - void *work; - void *function; - void *worker; - char __data[0]; +struct pci_fixup { + u16 vendor; + u16 device; + u32 class; + unsigned int class_shift; + int hook_offset; }; -struct trace_event_raw_sched_kthread_work_execute_start { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; +struct nt_partition_info { + u32 xlink_enabled; + u32 target_part_low; + u32 target_part_high; + u32 reserved; }; -struct trace_event_raw_sched_kthread_work_execute_end { - struct trace_entry ent; - void *work; - void *function; - char __data[0]; -}; +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 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 ntb_ctrl_regs { + u32 partition_status; + u32 partition_op; + u32 partition_ctrl; + u32 bar_setup; + u32 bar_error; + u16 lut_table_entries; + u16 lut_table_offset; + u32 lut_error; + u16 req_id_table_size; + u16 req_id_table_offset; + u32 req_id_error; + u32 reserved1[7]; + struct { + u32 ctl; + u32 win_size; + u64 xlate_addr; + } bar_entry[6]; + struct { + u32 win_size; + u32 reserved[3]; + } bar_ext_entry[6]; + u32 reserved2[192]; + u32 req_id_table[512]; + u32 reserved3[256]; + u64 lut_entry[512]; }; -struct 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 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 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 acpi_osi_entry { + char string[64]; + bool enable; }; -struct trace_event_raw_sched_process_template { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int prio; - char __data[0]; +enum { + ACPI_GENL_CMD_UNSPEC = 0, + ACPI_GENL_CMD_EVENT = 1, + __ACPI_GENL_CMD_MAX = 2, }; -struct trace_event_raw_sched_process_wait { - struct trace_entry ent; - char comm[16]; - pid_t pid; - int prio; - char __data[0]; +enum { + ACPI_GENL_ATTR_UNSPEC = 0, + ACPI_GENL_ATTR_EVENT = 1, + __ACPI_GENL_ATTR_MAX = 2, }; -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 acpi_genl_event { + acpi_device_class device_class; + char bus_id[15]; + u32 type; + u32 data; }; -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 acpi_signal_fatal_info { + u32 type; + u32 code; + u32 argument; }; -struct trace_event_raw_sched_stat_template { - struct trace_entry ent; - char comm[16]; - pid_t pid; - u64 delay; - char __data[0]; +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 trace_event_raw_sched_stat_runtime { - struct trace_entry ent; - char comm[16]; - pid_t pid; - u64 runtime; - u64 vruntime; - char __data[0]; +struct acpi_exception_info { + char *name; }; -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 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 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]; +enum iommu_hwpt_data_type { + IOMMU_HWPT_DATA_NONE = 0, + IOMMU_HWPT_DATA_VTD_S1 = 1, }; -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 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 trace_event_raw_sched_wake_idle_without_ipi { - struct trace_entry ent; - int cpu; - char __data[0]; +struct drm_property_enum { + uint64_t value; + struct list_head head; + char name[32]; }; -struct trace_event_raw_ipi_raise { - struct trace_entry ent; - u32 __data_loc_target_cpus; - const char *reason; - char __data[0]; +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 trace_event_raw_ipi_send_cpu { - struct trace_entry ent; - unsigned int cpu; - void *callsite; - void *callback; - char __data[0]; +struct drm_mode_property_enum { + __u64 value; + char name[32]; }; -struct trace_event_raw_ipi_send_cpumask { - struct trace_entry ent; - u32 __data_loc_cpumask; - void *callsite; - void *callback; - char __data[0]; +struct drm_mode_get_blob { + __u32 blob_id; + __u32 length; + __u64 data; }; -struct trace_event_raw_ipi_handler { - struct trace_entry ent; - const char *reason; - char __data[0]; +struct drm_mode_create_blob { + __u64 data; + __u32 length; + __u32 blob_id; }; -struct trace_event_data_offsets_sched_process_exec { - u32 filename; +struct drm_mode_destroy_blob { + __u32 blob_id; }; -struct trace_event_data_offsets_ipi_raise { - u32 target_cpus; +enum mipi_dsi_dcs_tear_mode { + MIPI_DSI_DCS_TEAR_MODE_VBLANK = 0, + MIPI_DSI_DCS_TEAR_MODE_VHBLANK = 1, }; -struct trace_event_data_offsets_ipi_send_cpumask { - u32 cpumask; +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 set_affinity_pending; +struct mipi_dsi_device_info { + char type[20]; + u32 channel; + struct device_node *node; +}; -struct migration_arg { - struct task_struct *task; - int dest_cpu; - struct set_affinity_pending *pending; +struct mipi_dsi_packet { + size_t size; + u8 header[4]; + size_t payload_length; + const u8 *payload; }; -struct set_affinity_pending { - refcount_t refs; - unsigned int stop_pending; - struct completion done; - struct cpu_stop_work stop_work; - struct migration_arg arg; +enum ack_type { + ACK_CLEAR = 0, + ACK_SET = 1, }; -struct trace_event_data_offsets_sched_kthread_stop {}; +typedef void (*btf_trace_i915_gem_object_create)(void *, struct drm_i915_gem_object *); -struct trace_event_data_offsets_sched_kthread_stop_ret {}; +typedef void (*btf_trace_i915_gem_shrink)(void *, struct drm_i915_private *, unsigned long, unsigned int); -struct trace_event_data_offsets_sched_kthread_work_queue_work {}; +typedef void (*btf_trace_i915_vma_bind)(void *, struct i915_vma *, unsigned int); -struct trace_event_data_offsets_sched_kthread_work_execute_start {}; +typedef void (*btf_trace_i915_vma_unbind)(void *, struct i915_vma *); -struct trace_event_data_offsets_sched_kthread_work_execute_end {}; +typedef void (*btf_trace_i915_gem_object_pwrite)(void *, struct drm_i915_gem_object *, u64, u64); -struct trace_event_data_offsets_sched_wakeup_template {}; +typedef void (*btf_trace_i915_gem_object_pread)(void *, struct drm_i915_gem_object *, u64, u64); -struct trace_event_data_offsets_sched_switch {}; +typedef void (*btf_trace_i915_gem_object_fault)(void *, struct drm_i915_gem_object *, u64, bool, bool); -struct trace_event_data_offsets_sched_migrate_task {}; +typedef void (*btf_trace_i915_gem_object_clflush)(void *, struct drm_i915_gem_object *); -struct trace_event_data_offsets_sched_process_template {}; +typedef void (*btf_trace_i915_gem_object_destroy)(void *, struct drm_i915_gem_object *); -struct trace_event_data_offsets_sched_process_wait {}; +typedef void (*btf_trace_i915_gem_evict)(void *, struct i915_address_space *, u64, u64, unsigned int); -struct trace_event_data_offsets_sched_process_fork {}; +typedef void (*btf_trace_i915_gem_evict_node)(void *, struct i915_address_space *, struct drm_mm_node *, unsigned int); -struct trace_event_data_offsets_sched_stat_template {}; +typedef void (*btf_trace_i915_gem_evict_vm)(void *, struct i915_address_space *); -struct trace_event_data_offsets_sched_stat_runtime {}; +typedef void (*btf_trace_i915_request_queue)(void *, struct i915_request *, u32); -struct trace_event_data_offsets_sched_pi_setprio {}; +typedef void (*btf_trace_i915_request_add)(void *, struct i915_request *); -struct trace_event_data_offsets_sched_move_numa {}; +typedef void (*btf_trace_i915_request_retire)(void *, struct i915_request *); -struct trace_event_data_offsets_sched_numa_pair_template {}; +typedef void (*btf_trace_i915_request_wait_begin)(void *, struct i915_request *, unsigned int); -struct trace_event_data_offsets_sched_wake_idle_without_ipi {}; +typedef void (*btf_trace_i915_request_wait_end)(void *, struct i915_request *); -struct trace_event_data_offsets_ipi_send_cpu {}; +typedef void (*btf_trace_i915_reg_rw)(void *, bool, i915_reg_t, u64, int, bool); -struct trace_event_data_offsets_ipi_handler {}; +typedef void (*btf_trace_i915_ppgtt_create)(void *, struct i915_address_space *); -typedef int (*tg_visitor)(struct task_group *, void *); +typedef void (*btf_trace_i915_ppgtt_release)(void *, struct i915_address_space *); -struct ustring_buffer { - char buffer[1024]; -}; +typedef void (*btf_trace_i915_context_create)(void *, struct i915_gem_context *); -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, -}; +typedef void (*btf_trace_i915_context_free)(void *, struct i915_gem_context *); -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, +struct trace_event_raw_i915_gem_object_create { + struct trace_entry ent; + struct drm_i915_gem_object *obj; + u64 size; + char __data[0]; }; -enum { - TOO_MANY_CLOSE = -1, - TOO_MANY_OPEN = -2, - MISSING_QUOTE = -3, +struct trace_event_raw_i915_gem_shrink { + struct trace_entry ent; + int dev; + unsigned long target; + unsigned int flags; + char __data[0]; }; -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, +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]; }; -enum { - INVERT = 1, - PROCESS_AND = 2, - PROCESS_OR = 4, +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 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 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 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 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 filter_list { - struct list_head list; - struct event_filter *filter; +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 filter_parse_error { - int lasterr; - int lasterr_pos; +struct trace_event_raw_i915_gem_object { + struct trace_entry ent; + struct drm_i915_gem_object *obj; + char __data[0]; }; -struct function_filter_data { - struct ftrace_ops *ops; - int first_filter; - int first_notrace; +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]; }; -typedef int (*parse_pred_fn)(const char *, void *, int, struct filter_parse_error *, struct filter_pred **); - -struct bpf_bloom_filter { - struct bpf_map map; - u32 bitset_mask; - u32 hash_seed; - u32 nr_hash_funcs; - unsigned long bitset[0]; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; - long: 64; +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 static_call_tramp_key { - s32 tramp; - s32 key; +struct trace_event_raw_i915_gem_evict_vm { + struct trace_entry ent; + u32 dev; + struct i915_address_space *vm; + char __data[0]; }; -struct static_key_deferred { - struct static_key key; - unsigned long timeout; - struct delayed_work work; +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 static_key_mod { - struct static_key_mod *next; - struct jump_entry *entries; - struct module *mod; +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]; }; -enum hugetlb_memory_event { - HUGETLB_MAX = 0, - HUGETLB_NR_MEMORY_EVENTS = 1, +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]; }; -enum { - RES_USAGE = 0, - RES_RSVD_USAGE = 1, - RES_LIMIT = 2, - RES_RSVD_LIMIT = 3, - RES_MAX_USAGE = 4, - RES_RSVD_MAX_USAGE = 5, - RES_FAILCNT = 6, - RES_RSVD_FAILCNT = 7, +struct trace_event_raw_i915_reg_rw { + struct trace_entry ent; + u64 val; + u32 reg; + u16 write; + u16 len; + char __data[0]; }; -struct dio { - int flags; - blk_opf_t opf; - struct gendisk *bio_disk; - struct inode *inode; - loff_t i_size; - dio_iodone_t *end_io; - bool is_pinned; - void *private; - spinlock_t bio_lock; - int page_errors; - int is_async; - bool defer_completion; - bool should_dirty; - int io_error; - unsigned long refcount; - struct bio *bio_list; - struct task_struct *waiter; - struct kiocb *iocb; - ssize_t result; - union { - struct page *pages[64]; - struct work_struct complete_work; - }; - long: 64; +struct trace_event_raw_i915_ppgtt { + struct trace_entry ent; + struct i915_address_space *vm; + u32 dev; + char __data[0]; }; -struct dio_submit { - struct bio *bio; - unsigned int blkbits; - unsigned int blkfactor; - unsigned int start_zero_done; - int pages_in_io; - sector_t block_in_file; - unsigned int blocks_available; - int reap_counter; - sector_t final_block_in_request; - int boundary; - get_block_t *get_block; - loff_t logical_offset_in_bio; - sector_t final_block_in_bio; - sector_t next_block_for_io; - struct page *cur_page; - unsigned int cur_page_offset; - unsigned int cur_page_len; - sector_t cur_page_block; - loff_t cur_page_fs_offset; - struct iov_iter *iter; - unsigned int head; - unsigned int tail; - size_t from; - size_t to; +struct trace_event_raw_i915_context { + struct trace_entry ent; + u32 dev; + struct i915_gem_context *ctx; + struct i915_address_space *vm; + char __data[0]; }; -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 trace_event_data_offsets_i915_gem_object_create {}; -struct proc_maps_private { - struct inode *inode; - struct task_struct *task; - struct mm_struct *mm; - struct vma_iterator iter; - struct mempolicy *task_mempolicy; -}; +struct trace_event_data_offsets_i915_gem_shrink {}; -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; -}; +struct trace_event_data_offsets_i915_vma_bind {}; -typedef struct { - u64 pme; -} pagemap_entry_t; +struct trace_event_data_offsets_i915_vma_unbind {}; -struct pagemapread { - int pos; - int len; - pagemap_entry_t *buffer; - bool show_pfn; -}; +struct trace_event_data_offsets_i915_gem_object_pwrite {}; -struct clear_refs_private { - enum clear_refs_types type; -}; +struct trace_event_data_offsets_i915_gem_object_pread {}; -struct numa_maps { - unsigned long pages; - unsigned long anon; - unsigned long active; - unsigned long writeback; - unsigned long mapcount_max; - unsigned long dirty; - unsigned long swapcache; - unsigned long node[64]; -}; +struct trace_event_data_offsets_i915_gem_object_fault {}; -struct numa_maps_private { - struct proc_maps_private proc_maps; - struct numa_maps md; -}; +struct trace_event_data_offsets_i915_gem_object {}; -struct journal_block_tag3_s { - __be32 t_blocknr; - __be32 t_flags; - __be32 t_blocknr_high; - __be32 t_checksum; -}; +struct trace_event_data_offsets_i915_gem_evict {}; -typedef struct journal_block_tag3_s journal_block_tag3_t; +struct trace_event_data_offsets_i915_gem_evict_node {}; -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 trace_event_data_offsets_i915_gem_evict_vm {}; -struct recovery_info { - tid_t start_transaction; - tid_t end_transaction; - unsigned long head_block; - int nr_replays; - int nr_revokes; - int nr_revoke_hits; -}; +struct trace_event_data_offsets_i915_request_queue {}; -struct journal_block_tag_s { - __be32 t_blocknr; - __be16 t_checksum; - __be16 t_flags; - __be32 t_blocknr_high; -}; +struct trace_event_data_offsets_i915_request {}; -typedef struct journal_block_tag_s journal_block_tag_t; +struct trace_event_data_offsets_i915_request_wait_begin {}; -struct nfs_page_iter_page { - const struct nfs_page *req; - size_t count; -}; +struct trace_event_data_offsets_i915_reg_rw {}; -enum { - NSMPROC_NULL = 0, - NSMPROC_STAT = 1, - NSMPROC_MON = 2, - NSMPROC_UNMON = 3, - NSMPROC_UNMON_ALL = 4, - NSMPROC_SIMU_CRASH = 5, - NSMPROC_NOTIFY = 6, -}; +struct trace_event_data_offsets_i915_ppgtt {}; -struct nsm_args { - struct nsm_private *priv; - u32 prog; - u32 vers; - u32 proc; - char *mon_name; - const char *nodename; -}; +struct trace_event_data_offsets_i915_context {}; -struct nsm_res { - u32 status; - u32 state; +enum intel_bootrom_load_status { + INTEL_BOOTROM_STATUS_NO_KEY_FOUND = 19, + INTEL_BOOTROM_STATUS_AES_PROD_KEY_FOUND = 26, + INTEL_BOOTROM_STATUS_PROD_KEY_CHECK_FAILURE = 43, + INTEL_BOOTROM_STATUS_RSA_FAILED = 80, + INTEL_BOOTROM_STATUS_PAVPC_FAILED = 115, + INTEL_BOOTROM_STATUS_WOPCM_FAILED = 116, + INTEL_BOOTROM_STATUS_LOADLOC_FAILED = 117, + INTEL_BOOTROM_STATUS_JUMP_PASSED = 118, + INTEL_BOOTROM_STATUS_JUMP_FAILED = 119, + INTEL_BOOTROM_STATUS_RC6CTXCONFIG_FAILED = 121, + INTEL_BOOTROM_STATUS_MPUMAP_INCORRECT = 122, + INTEL_BOOTROM_STATUS_EXCEPTION = 126, }; -struct rsa_mpi_key { - MPI n; - MPI e; - MPI d; - MPI p; - MPI q; - MPI dp; - MPI dq; - MPI qinv; +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_HWCONFIG_START = 5, + INTEL_GUC_LOAD_STATUS_HWCONFIG_DONE = 6, + INTEL_GUC_LOAD_STATUS_HWCONFIG_ERROR = 7, + 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, }; -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 *); +struct buddy_page_mask { + u32 page_mask; + u8 type; + u8 num_channels; }; -enum drbg_seed_state { - DRBG_SEED_STATE_UNSEEDED = 0, - DRBG_SEED_STATE_PARTIAL = 1, - DRBG_SEED_STATE_FULL = 2, +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 drbg_string { - const unsigned char *buf; - size_t len; - struct list_head list; +struct ch7xxx_id_struct { + u8 vid; + char *name; }; -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; +struct ch7xxx_did_struct { + u8 did; + char *name; }; -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]; +struct ch7xxx_priv { + bool quiet; }; -enum drbg_prefixes { - DRBG_PREFIX0 = 0, - DRBG_PREFIX1 = 1, - DRBG_PREFIX2 = 2, - DRBG_PREFIX3 = 3, -}; +typedef void (*vlv_dsi_dmi_quirk_func)(struct intel_dsi *); -struct sdesc { - struct shash_desc shash; - char ctx[0]; +struct class_compat { + struct kobject *kobj; }; -struct blk_ia_range_sysfs_entry { - struct attribute attr; - ssize_t (*show)(struct blk_independent_access_range *, char *); +struct scsi_dev_info_list { + struct list_head dev_info_list; + char vendor[8]; + char model[16]; + blist_flags_t flags; + unsigned int compatible; }; -enum { - IOU_POLL_DONE = 0, - IOU_POLL_NO_ACTION = 1, - IOU_POLL_REMOVE_POLL_USE_RES = 2, - IOU_POLL_REISSUE = 3, +struct scsi_dev_info_list_table { + struct list_head node; + struct list_head scsi_dev_info_list; + const char *name; + int key; }; -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 double_list { + struct list_head *top; + struct list_head *bottom; }; -struct io_poll_table { - struct poll_table_struct pt; - struct io_kiocb *req; - int nr_entries; - int error; - bool owning; - __poll_t result_mask; -}; +typedef void (*btf_trace_e1000e_trace_mac_register)(void *, uint32_t); -struct node_groups { - unsigned int id; - union { - unsigned int ngroups; - unsigned int ncpus; - }; +struct e1000_reg_info { + u32 ofs; + char *name; }; -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 trace_event_raw_e1000e_trace_mac_register { + struct trace_entry ent; + uint32_t reg; + char __data[0]; }; -enum { - VP_MSIX_CONFIG_VECTOR = 0, - VP_MSIX_VQ_VECTOR = 1, +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 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 my_u0 { + __le64 a; + __le64 b; }; -struct exar8250 { - unsigned int nr; - struct exar8250_board *board; - void *virt; - int line[0]; +struct my_u1 { + __le64 a; + __le64 b; + __le64 c; + __le64 d; }; -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 trace_event_data_offsets_e1000e_trace_mac_register {}; enum { - CLEAR_RESIDUALS = 0, -}; - -struct drm_i915_gem_userptr { - __u64 user_ptr; - __u64 user_size; - __u32 flags; - __u32 handle; -}; - -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; - bool reset_in_progress; - wait_queue_head_t waitq; -}; - -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[2]; - struct mutex hwmon_lock; - struct hwm_reg rg; - int scl_shift_power; - int scl_shift_energy; - int scl_shift_time; -}; - -struct cpu_attr { - struct device_attribute attr; - const struct cpumask * const map; -}; - -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; + NAMESZ = 10, }; -struct my_u { - __le64 a; - __le64 b; +struct mon_iso_desc { + int status; + unsigned int offset; + unsigned int length; }; -enum xhci_overhead_type { - LS_OVERHEAD_TYPE = 0, - FS_OVERHEAD_TYPE = 1, - HS_OVERHEAD_TYPE = 2, +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 kvm_clock_pairing { - __s64 sec; - __s64 nsec; - __u64 tsc; - __u32 flags; - __u32 pad[9]; +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 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 mon_text_ptr { + int cnt; + int limit; + char *pbuf; }; -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 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 cpuidle_device_kobj { - struct cpuidle_device *dev; - struct completion kobj_unregister; - struct kobject kobj; +struct ptp_clock_caps { + int max_adj; + int n_alarm; + int n_ext_ts; + int n_per_out; + int pps; + int n_pins; + int cross_timestamping; + int adjust_phase; + int max_phase_adj; + int rsv[11]; }; -struct cpuidle_attr { - struct attribute attr; - ssize_t (*show)(struct cpuidle_device *, char *); - ssize_t (*store)(struct cpuidle_device *, const char *, size_t); +struct ptp_sys_offset_extended { + unsigned int n_samples; + unsigned int rsv[3]; + struct ptp_clock_time ts[75]; }; -struct hid_bpf_prog_entry { - struct bpf_prog *prog; - struct hid_device *hdev; - enum hid_bpf_prog_type type; - u16 idx; +struct ptp_sys_offset { + unsigned int n_samples; + unsigned int rsv[3]; + struct ptp_clock_time ts[51]; }; -struct hid_bpf_jmp_table { - struct bpf_map *map; - struct hid_bpf_prog_entry entries[1024]; - int tail; - int head; - struct bpf_prog *progs[1024]; - unsigned long enabled[16]; +struct hidraw_report { + __u8 *value; + int len; }; -struct bpf_map_desc { - int map_fd; - __u32 max_entries; - __u64 initial_value; +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 bpf_prog_desc { - int prog_fd; +struct hidraw_devinfo { + __u32 bustype; + __s16 vendor; + __s16 product; }; -struct bpf_loader_ctx { - __u32 sz; - __u32 flags; - __u32 log_level; - __u32 log_size; - __u64 log_buf; +struct snd_seq_usage { + int cur; + int peak; }; -struct entrypoints_bpf { - struct bpf_loader_ctx ctx; - struct { - struct bpf_map_desc hid_jmp_table; - } maps; - struct { - struct bpf_prog_desc hid_tail_call; - } progs; - struct { - int hid_tail_call_fd; - } links; +struct ioctl_handler { + unsigned int cmd; + int (*func)(struct snd_seq_client *, void *); }; enum { - BPF_SKEL_KERNEL = 1, + 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 hid_bpf_link { - struct bpf_link link; - int hid_table_index; +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; + unsigned int midi_version; + unsigned int group_filter; + char reserved[48]; }; -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 snd_seq_queue_client { + int queue; + int client; + int used; + char reserved[64]; }; -enum { - NHLT_CONFIG_TYPE_GENERIC = 0, - NHLT_CONFIG_TYPE_MIC_ARRAY = 1, +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]; }; -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, +struct snd_seq_system_info { + int queues; + int clients; + int ports; + int channels; + int cur_clients; + int cur_queues; + char reserved[24]; }; -enum nhlt_device_type { - NHLT_DEVICE_BT = 0, - NHLT_DEVICE_DMIC = 1, - NHLT_DEVICE_I2S = 4, - NHLT_DEVICE_INVALID = 5, +struct snd_seq_running_info { + unsigned char client; + unsigned char big_endian; + unsigned char cpu_mode; + unsigned char pad; + unsigned char reserved[12]; }; -struct nhlt_device_specific_config { - u8 virtual_slot; - u8 config_type; +struct snd_seq_queue_info { + int queue; + int owner; + unsigned int locked: 1; + char name[64]; + unsigned int flags; + char reserved[60]; }; -struct nhlt_dmic_array_config { - struct nhlt_device_specific_config device_config; - u8 array_type; +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 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 snd_seq_queue_timer { + int queue; + int type; + union { + struct { + struct snd_timer_id id; + unsigned int resolution; + } alsa; + } u; + char reserved[64]; }; -struct wav_fmt_ext { - struct wav_fmt fmt; - union samples sample; - u32 channel_mask; - u8 sub_fmt[16]; +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 nhlt_specific_cfg { - u32 size; - u8 caps[0]; +struct snd_seq_ump_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 { + union snd_seq_event_data data; + unsigned int ump[4]; + }; }; -struct nhlt_fmt_cfg { - struct wav_fmt_ext fmt_ext; - struct nhlt_specific_cfg config; +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]; }; -struct nhlt_fmt { - u8 fmt_count; - struct nhlt_fmt_cfg fmt_config[0]; -} __attribute__((packed)); +struct channel_map_table { + unsigned char map; + int spk_mask; +}; -struct nhlt_vendor_dmic_array_config { - struct nhlt_dmic_array_config dmic_config; - u8 nb_mics; +struct hdac_cea_channel_speaker_allocation { + int ca_index; + int speakers[8]; + int channels; + int spk_mask; }; -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 hdac_chmap; -struct nhlt_acpi_table { - struct acpi_table_header header; - u8 endpoint_count; - struct nhlt_endpoint desc[0]; -} __attribute__((packed)); +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); +}; -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, +struct hdac_chmap { + unsigned int channels_max; + struct hdac_chmap_ops ops; + struct hdac_device *hdac; }; -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, +enum { + IF_LINK_MODE_DEFAULT = 0, + IF_LINK_MODE_DORMANT = 1, + IF_LINK_MODE_TESTING = 2, }; -struct netdev_lag_upper_info { - enum netdev_lag_tx_type tx_type; - enum netdev_lag_hash hash_type; +enum lw_bits { + LW_URGENT = 0, }; -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 page_pool_stats { + struct page_pool_alloc_stats alloc_stats; + struct page_pool_recycle_stats recycle_stats; }; -struct linkmodes_reply_data { - struct ethnl_reply_data base; - struct ethtool_link_ksettings ksettings; - struct ethtool_link_settings *lsettings; - bool peer_empty; +struct qdisc_rate_table { + struct tc_ratespec rate; + u32 data[256]; + struct qdisc_rate_table *next; + int refcnt; }; -enum nfnl_batch_attributes { - NFNL_BATCH_UNSPEC = 0, - NFNL_BATCH_GENID = 1, - __NFNL_BATCH_MAX = 2, +enum tc_link_layer { + TC_LINKLAYER_UNAWARE = 0, + TC_LINKLAYER_ETHERNET = 1, + TC_LINKLAYER_ATM = 2, }; enum { - NFNL_BATCH_FAILURE = 1, - NFNL_BATCH_DONE = 2, - NFNL_BATCH_REPLAY = 4, + TCA_STAB_UNSPEC = 0, + TCA_STAB_BASE = 1, + TCA_STAB_DATA = 2, + __TCA_STAB_MAX = 3, }; -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 tc_root_command { + TC_ROOT_GRAFT = 0, }; -struct nfnl_err { - struct list_head head; - struct nlmsghdr *nlh; - int err; - struct netlink_ext_ack extack; +struct Qdisc_class_common { + u32 classid; + unsigned int filter_cnt; + struct hlist_node hnode; }; -struct nfnl_net { - struct sock *nfnl; +struct qdisc_watchdog { + struct hrtimer timer; + struct Qdisc *qdisc; }; -struct xt_secmark_target_info_v1 { - __u8 mode; - char secctx[256]; - __u32 secid; +struct check_loop_arg { + struct qdisc_walker w; + struct Qdisc *p; + int depth; }; -struct xt_secmark_target_info { - __u8 mode; - __u32 secid; - char secctx[256]; +struct tc_bind_class_args { + struct qdisc_walker w; + unsigned long new_cl; + u32 portid; + u32 clid; }; -struct mfc_cache_cmp_arg { - __be32 mfc_mcastgrp; - __be32 mfc_origin; +struct qdisc_dump_args { + struct qdisc_walker w; + struct sk_buff *skb; + struct netlink_callback *cb; }; -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, +struct tc_root_qopt_offload { + enum tc_root_command command; + u32 handle; + bool ingress; }; -enum { - PIM_TYPE_HELLO = 0, - PIM_TYPE_REGISTER = 1, - PIM_TYPE_REGISTER_STOP = 2, - PIM_TYPE_JOIN_PRUNE = 3, - PIM_TYPE_BOOTSTRAP = 4, - PIM_TYPE_ASSERT = 5, - PIM_TYPE_GRAFT = 6, - PIM_TYPE_GRAFT_ACK = 7, - PIM_TYPE_CANDIDATE_RP_ADV = 8, +struct Qdisc_class_hash { + struct hlist_head *hash; + unsigned int hashsize; + unsigned int hashmask; + unsigned int hashelems; }; -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, +struct tc_query_caps_base { + enum tc_setup_type type; + void *caps; }; -enum { - IPMRA_VIF_UNSPEC = 0, - IPMRA_VIF = 1, - __IPMRA_VIF_MAX = 2, +struct tcf_bind_args { + struct tcf_walker w; + unsigned long base; + unsigned long cl; + u32 classid; }; 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, + 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 icmp_filter { - __u32 data; +struct tsinfo_reply_data { + struct ethnl_reply_data base; + struct ethtool_ts_info ts_info; }; -struct raw_sock { - struct inet_sock inet; - struct icmp_filter filter; - u32 ipmr_table; +struct xt_tcpmss_info { + __u16 mss; }; -typedef unsigned short vifi_t; - -struct sioc_vif_req { - vifi_t vifi; - unsigned long icount; - unsigned long ocount; - unsigned long ibytes; - unsigned long obytes; +struct raw_frag_vec { + struct msghdr *msg; + union { + struct icmphdr icmph; + char c[1]; + } hdr; + int hlen; }; -struct sioc_sg_req { - struct in_addr src; - struct in_addr grp; - unsigned long pktcnt; - unsigned long bytecnt; - unsigned long wrong_if; +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 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 icmp6_err { + int err; + int fatal; }; -struct mfc_cache { - struct mr_mfc _c; - union { - struct { - __be32 mfc_mcastgrp; - __be32 mfc_origin; - }; - struct mfc_cache_cmp_arg cmparg; - }; +struct icmpv6_msg { + struct sk_buff *skb; + int offset; + uint8_t type; }; -struct pimreghdr { - __u8 type; - __u8 reserved; - __be16 csum; - __be32 flags; +enum tpacket_versions { + TPACKET_V1 = 0, + TPACKET_V2 = 1, + TPACKET_V3 = 2, }; -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; +enum packet_sock_flags { + PACKET_SOCK_ORIGDEV = 0, + PACKET_SOCK_AUXDATA = 1, + PACKET_SOCK_TX_HAS_OFF = 2, + PACKET_SOCK_TP_LOSS = 3, + PACKET_SOCK_RUNNING = 4, + PACKET_SOCK_PRESSURE = 5, + PACKET_SOCK_QDISC_BYPASS = 6, }; -struct 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 tpacket_stats { + unsigned int tp_packets; + unsigned int tp_drops; }; -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 tpacket_stats_v3 { + unsigned int tp_packets; + unsigned int tp_drops; + unsigned int tp_freeze_q_cnt; }; -struct compat_sioc_vif_req { - vifi_t vifi; - compat_ulong_t icount; - compat_ulong_t ocount; - compat_ulong_t ibytes; - compat_ulong_t obytes; +union tpacket_stats_u { + struct tpacket_stats stats1; + struct tpacket_stats_v3 stats3; }; -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, -}; +struct pgv; -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 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 iapp_layer2_update { - u8 da[6]; - u8 sa[6]; - __be16 len; - u8 dsap; - u8 ssap; - u8 control; - u8 xid_info[3]; +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; + }; }; -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); +struct packet_fanout; -typedef void (*btf_trace_drv_vif_cfg_changed)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u64); +struct packet_rollover; -typedef void (*btf_trace_drv_link_info_changed)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *, u64); +struct packet_mclist; -typedef void (*btf_trace_drv_prepare_multicast)(void *, struct ieee80211_local *, int); +struct packet_sock { + struct sock sk; + struct packet_fanout *fanout; + union tpacket_stats_u stats; + struct packet_ring_buffer rx_ring; + struct packet_ring_buffer tx_ring; + int copy_thresh; + spinlock_t bind_lock; + struct mutex pg_vec_lock; + unsigned long flags; + int ifindex; + u8 vnet_hdr_sz; + __be16 num; + struct packet_rollover *rollover; + struct packet_mclist *mclist; + atomic_long_t mapped; + enum tpacket_versions tp_version; + unsigned int tp_hdrlen; + unsigned int tp_reserve; + unsigned int tp_tstamp; + struct completion skb_completion; + struct net_device __attribute__((btf_type_tag("rcu"))) *cached_dev; + long: 64; + long: 64; + struct packet_type prot_hook; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + atomic_t tp_drops; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; -typedef void (*btf_trace_drv_configure_filter)(void *, struct ieee80211_local *, unsigned int, unsigned int *, u64); +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; +}; -typedef void (*btf_trace_drv_config_iface_filter)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, unsigned int, unsigned int); +struct pgv { + char *buffer; +}; -typedef void (*btf_trace_drv_set_tim)(void *, struct ieee80211_local *, struct ieee80211_sta *, bool); +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]; +}; -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 *); +struct packet_mclist { + struct packet_mclist *next; + int ifindex; + int count; + unsigned short type; + unsigned short alen; + unsigned char addr[32]; +}; -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); +struct tpacket_bd_ts { + unsigned int ts_sec; + union { + unsigned int ts_usec; + unsigned int ts_nsec; + }; +}; -typedef void (*btf_trace_drv_hw_scan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +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; +}; -typedef void (*btf_trace_drv_cancel_hw_scan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +union tpacket_bd_header_u { + struct tpacket_hdr_v1 bh1; +}; -typedef void (*btf_trace_drv_sched_scan_start)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +struct tpacket_block_desc { + __u32 version; + __u32 offset_to_priv; + union tpacket_bd_header_u hdr; +}; -typedef void (*btf_trace_drv_sched_scan_stop)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +struct tpacket_hdr_variant1 { + __u32 tp_rxhash; + __u32 tp_vlan_tci; + __u16 tp_vlan_tpid; + __u16 tp_padding; +}; -typedef void (*btf_trace_drv_sw_scan_start)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const u8 *); +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]; +}; -typedef void (*btf_trace_drv_sw_scan_complete)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +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]; +}; -typedef void (*btf_trace_drv_get_stats)(void *, struct ieee80211_local *, struct ieee80211_low_level_stats *, int); +struct sockaddr_pkt { + unsigned short spkt_family; + unsigned char spkt_device[14]; + __be16 spkt_protocol; +}; -typedef void (*btf_trace_drv_get_key_seq)(void *, struct ieee80211_local *, struct ieee80211_key_conf *); +struct packet_skb_cb { + union { + struct sockaddr_pkt pkt; + union { + unsigned int origlen; + struct sockaddr_ll ll; + }; + } sa; +}; -typedef void (*btf_trace_drv_set_frag_threshold)(void *, struct ieee80211_local *, u32); +struct tpacket_hdr; -typedef void (*btf_trace_drv_set_rts_threshold)(void *, struct ieee80211_local *, u32); +struct tpacket2_hdr; -typedef void (*btf_trace_drv_set_coverage_class)(void *, struct ieee80211_local *, s16); +union tpacket_uhdr { + struct tpacket_hdr *h1; + struct tpacket2_hdr *h2; + struct tpacket3_hdr *h3; + void *raw; +}; -typedef void (*btf_trace_drv_sta_notify)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, enum sta_notify_cmd, struct ieee80211_sta *); +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; +}; -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); +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]; +}; -typedef void (*btf_trace_drv_sta_set_txpwr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); +struct tpacket_req { + unsigned int tp_block_size; + unsigned int tp_block_nr; + unsigned int tp_frame_size; + unsigned int tp_frame_nr; +}; -typedef void (*btf_trace_drv_sta_rc_update)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, u32); +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; +}; -typedef void (*btf_trace_drv_sta_statistics)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); +union tpacket_req_u { + struct tpacket_req req; + struct tpacket_req3 req3; +}; -typedef void (*btf_trace_drv_sta_add)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); +struct packet_mreq_max { + int mr_ifindex; + unsigned short mr_type; + unsigned short mr_alen; + unsigned char mr_address[32]; +}; -typedef void (*btf_trace_drv_sta_remove)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); +struct fanout_args { + __u16 id; + __u16 type_flags; + __u32 max_num_members; +}; -typedef void (*btf_trace_drv_sta_pre_rcu_remove)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); +struct tpacket_rollover_stats { + __u64 tp_all; + __u64 tp_huge; + __u64 tp_failed; +}; -typedef void (*btf_trace_drv_sync_rx_queues)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); +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; +}; -typedef void (*btf_trace_drv_sta_rate_tbl_update)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); +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, +}; -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 *); +struct fprop_local_single { + unsigned long events; + unsigned int period; + raw_spinlock_t lock; +}; -typedef void (*btf_trace_drv_get_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +typedef struct { + unsigned long key[2]; +} hsiphash_key_t; -typedef void (*btf_trace_drv_set_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u64); +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; +}; -typedef void (*btf_trace_drv_offset_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, s64); +enum { + PAT_UC = 0, + PAT_WC = 1, + PAT_WT = 4, + PAT_WP = 5, + PAT_WB = 6, + PAT_UC_MINUS = 7, +}; -typedef void (*btf_trace_drv_reset_tsf)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +struct pagerange_state { + unsigned long cur_pfn; + int ram; + int not_ram; +}; -typedef void (*btf_trace_drv_tx_last_beacon)(void *, struct ieee80211_local *); +struct efi_runtime_map_entry { + efi_memory_desc_t md; + struct kobject kobj; +}; -typedef void (*btf_trace_drv_ampdu_action)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_ampdu_params *); +struct map_attribute { + struct attribute attr; + ssize_t (*show)(struct efi_runtime_map_entry *, char *); +}; -typedef void (*btf_trace_drv_get_survey)(void *, struct ieee80211_local *, int, struct survey_info *); +typedef void (*btf_trace_console)(void *, const char *, size_t); -typedef void (*btf_trace_drv_flush)(void *, struct ieee80211_local *, u32, bool); +struct latched_seq { + seqcount_latch_t latch; + u64 val[2]; +}; -typedef void (*btf_trace_drv_flush_sta)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); +struct console_cmdline { + char name[16]; + int index; + bool user_specified; + char *options; +}; -typedef void (*btf_trace_drv_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel_switch *); +enum devkmsg_log_masks { + DEVKMSG_LOG_MASK_ON = 1, + DEVKMSG_LOG_MASK_OFF = 2, + DEVKMSG_LOG_MASK_LOCK = 4, +}; -typedef void (*btf_trace_drv_set_antenna)(void *, struct ieee80211_local *, u32, u32, int); +enum printk_info_flags { + LOG_NEWLINE = 2, + LOG_CONT = 8, +}; -typedef void (*btf_trace_drv_get_antenna)(void *, struct ieee80211_local *, u32, u32, int); +enum con_msg_format_flags { + MSG_FORMAT_DEFAULT = 0, + MSG_FORMAT_SYSLOG = 1, +}; -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); +struct kmsg_dumper { + struct list_head list; + void (*dump)(struct kmsg_dumper *, enum kmsg_dump_reason); + enum kmsg_dump_reason max_reason; + bool registered; +}; -typedef void (*btf_trace_drv_cancel_remain_on_channel)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +struct trace_event_raw_console { + struct trace_entry ent; + u32 __data_loc_msg; + char __data[0]; +}; -typedef void (*btf_trace_drv_set_ringparam)(void *, struct ieee80211_local *, u32, u32); +struct trace_event_data_offsets_console { + u32 msg; +}; -typedef void (*btf_trace_drv_get_ringparam)(void *, struct ieee80211_local *, u32 *, u32 *, u32 *, u32 *); +struct printk_message { + struct printk_buffers *pbufs; + unsigned int outbuf_len; + u64 seq; + unsigned long dropped; +}; -typedef void (*btf_trace_drv_tx_frames_pending)(void *, struct ieee80211_local *); +struct devkmsg_user { + atomic64_t seq; + struct ratelimit_state rs; + struct mutex lock; + struct printk_buffers pbufs; +}; -typedef void (*btf_trace_drv_offchannel_tx_cancel_wait)(void *, struct ieee80211_local *); +struct kmsg_dump_iter { + u64 cur_seq; + u64 next_seq; +}; -typedef void (*btf_trace_drv_set_bitrate_mask)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const struct cfg80211_bitrate_mask *); +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, +}; -typedef void (*btf_trace_drv_set_rekey_data)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_gtk_rekey_data *); +struct kcmp_epoll_slot { + __u32 efd; + __u32 tfd; + __u32 toff; +}; -typedef void (*btf_trace_drv_event_callback)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, const struct ieee80211_event *); +struct auditd_connection { + struct pid *pid; + u32 portid; + struct net *net; + struct callback_head rcu; +}; -typedef void (*btf_trace_drv_release_buffered_frames)(void *, struct ieee80211_local *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool); +struct audit_ctl_mutex { + struct mutex lock; + void *owner; +}; -typedef void (*btf_trace_drv_allow_buffered_frames)(void *, struct ieee80211_local *, struct ieee80211_sta *, u16, int, enum ieee80211_frame_release_type, bool); +struct audit_features { + __u32 vers; + __u32 mask; + __u32 features; + __u32 lock; +}; -typedef void (*btf_trace_drv_mgd_prepare_tx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16, u16, bool); +enum audit_nlgrps { + AUDIT_NLGRP_NONE = 0, + AUDIT_NLGRP_READLOG = 1, + __AUDIT_NLGRP_MAX = 2, +}; -typedef void (*btf_trace_drv_mgd_complete_tx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16, u16, bool); +struct audit_reply { + __u32 portid; + struct net *net; + struct sk_buff *skb; +}; -typedef void (*btf_trace_drv_mgd_protect_tdls_discover)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +struct audit_net { + struct sock *sk; +}; -typedef void (*btf_trace_drv_add_chanctx)(void *, struct ieee80211_local *, struct ieee80211_chanctx *); +struct audit_buffer { + struct sk_buff *skb; + struct audit_context *ctx; + gfp_t gfp_mask; +}; -typedef void (*btf_trace_drv_remove_chanctx)(void *, struct ieee80211_local *, struct ieee80211_chanctx *); +struct audit_sig_info { + uid_t uid; + pid_t pid; + char ctx[0]; +}; -typedef void (*btf_trace_drv_change_chanctx)(void *, struct ieee80211_local *, struct ieee80211_chanctx *, u32); +struct audit_tty_status { + __u32 enabled; + __u32 log_passwd; +}; -typedef void (*btf_trace_drv_switch_vif_chanctx)(void *, struct ieee80211_local *, struct ieee80211_vif_chanctx_switch *, int, enum ieee80211_chanctx_switch_mode); +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; +}; -typedef void (*btf_trace_drv_assign_vif_chanctx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *, struct ieee80211_chanctx *); +struct bpf_iter__bpf_prog { + union { + struct bpf_iter_meta *meta; + }; + union { + struct bpf_prog *prog; + }; +}; -typedef void (*btf_trace_drv_unassign_vif_chanctx)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *, struct ieee80211_chanctx *); +struct bpf_iter_seq_prog_info { + u32 prog_id; +}; -typedef void (*btf_trace_drv_start_ap)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *); +struct bpf_prog_offload_ops; -typedef void (*btf_trace_drv_stop_ap)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *); +struct bpf_offload_dev { + const struct bpf_prog_offload_ops *ops; + struct list_head netdevs; + void *priv; +}; -typedef void (*btf_trace_drv_reconfig_complete)(void *, struct ieee80211_local *, enum ieee80211_reconfig_type); +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 *); +}; -typedef void (*btf_trace_drv_ipv6_addr_change)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +enum xdp_rx_metadata { + XDP_METADATA_KFUNC_RX_TIMESTAMP = 0, + XDP_METADATA_KFUNC_RX_HASH = 1, + MAX_XDP_METADATA_KFUNC = 2, +}; -typedef void (*btf_trace_drv_join_ibss)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_bss_conf *); +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 void (*btf_trace_drv_leave_ibss)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +struct ns_get_path_bpf_prog_args { + struct bpf_prog *prog; + struct bpf_prog_info *info; +}; -typedef void (*btf_trace_drv_get_expected_throughput)(void *, struct ieee80211_sta *); +struct ns_get_path_bpf_map_args { + struct bpf_offloaded_map *offmap; + struct bpf_map_info *info; +}; -typedef void (*btf_trace_drv_start_nan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_nan_conf *); +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_drv_stop_nan)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +typedef void (*btf_trace_percpu_free_percpu)(void *, void *, int, void __attribute__((btf_type_tag("percpu"))) *); -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_percpu_alloc_percpu_fail)(void *, bool, bool, size_t, size_t); -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_percpu_create_chunk)(void *, void *); -typedef void (*btf_trace_drv_del_nan_func)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u8); +typedef void (*btf_trace_percpu_destroy_chunk)(void *, void *); -typedef void (*btf_trace_drv_start_pmsr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +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; +}; -typedef void (*btf_trace_drv_abort_pmsr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +struct pcpu_chunk { + struct list_head list; + int free_bytes; + struct pcpu_block_md chunk_md; + unsigned long *bound_map; + void *base_addr; + unsigned long *alloc_map; + struct pcpu_block_md *md_blocks; + void *data; + bool immutable; + bool isolated; + int start_offset; + int end_offset; + struct obj_cgroup **obj_cgroups; + int nr_pages; + int nr_populated; + int nr_empty_pop_pages; + unsigned long populated[0]; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; + long: 64; +}; -typedef void (*btf_trace_drv_set_default_unicast_key)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, int); +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]; +}; -typedef void (*btf_trace_drv_channel_switch_beacon)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_chan_def *); +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]; +}; -typedef void (*btf_trace_drv_pre_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel_switch *); +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]; +}; -typedef void (*btf_trace_drv_post_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +struct trace_event_raw_percpu_create_chunk { + struct trace_entry ent; + void *base_addr; + char __data[0]; +}; -typedef void (*btf_trace_drv_abort_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +struct trace_event_raw_percpu_destroy_chunk { + struct trace_entry ent; + void *base_addr; + char __data[0]; +}; -typedef void (*btf_trace_drv_channel_switch_rx_beacon)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_channel_switch *); +struct pcpu_group_info { + int nr_units; + unsigned long base_offset; + unsigned int *cpu_map; +}; -typedef void (*btf_trace_drv_get_txpower)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, int, int); +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]; +}; -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 *); +struct trace_event_data_offsets_percpu_alloc_percpu {}; -typedef void (*btf_trace_drv_tdls_cancel_channel_switch)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); +struct trace_event_data_offsets_percpu_free_percpu {}; -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 trace_event_data_offsets_percpu_alloc_percpu_fail {}; -typedef void (*btf_trace_drv_wake_tx_queue)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct txq_info *); +struct trace_event_data_offsets_percpu_create_chunk {}; -typedef void (*btf_trace_drv_get_ftm_responder_stats)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct cfg80211_ftm_responder_stats *); +struct trace_event_data_offsets_percpu_destroy_chunk {}; -typedef void (*btf_trace_drv_update_vif_offload)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +enum vmpressure_levels { + VMPRESSURE_LOW = 0, + VMPRESSURE_MEDIUM = 1, + VMPRESSURE_CRITICAL = 2, + VMPRESSURE_NUM_LEVELS = 3, +}; -typedef void (*btf_trace_drv_sta_set_4addr)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, bool); +enum vmpressure_modes { + VMPRESSURE_NO_PASSTHROUGH = 0, + VMPRESSURE_HIERARCHY = 1, + VMPRESSURE_LOCAL = 2, + VMPRESSURE_NUM_MODES = 3, +}; -typedef void (*btf_trace_drv_sta_set_decap_offload)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, bool); +struct vmpressure_event { + struct eventfd_ctx *efd; + enum vmpressure_levels level; + enum vmpressure_modes mode; + struct list_head node; +}; -typedef void (*btf_trace_drv_add_twt_setup)(void *, struct ieee80211_local *, struct ieee80211_sta *, struct ieee80211_twt_setup *, struct ieee80211_twt_params *); +struct inodes_stat_t { + long nr_inodes; + long nr_unused; + long dummy[5]; +}; -typedef void (*btf_trace_drv_twt_teardown_request)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8); +struct prepend_buffer { + char *buf; + int len; +}; -typedef void (*btf_trace_drv_net_fill_forward_path)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *); +struct eventfd_ctx { + struct kref kref; + wait_queue_head_t wqh; + __u64 count; + unsigned int flags; + int id; +}; -typedef void (*btf_trace_drv_net_setup_tc)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u8); +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]; +}; -typedef void (*btf_trace_drv_change_vif_links)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, u16, u16); +enum { + PARSE_INVALID = 1, + PARSE_NOT_LONGNAME = 2, + PARSE_EOF = 3, +}; -typedef void (*btf_trace_drv_change_sta_links)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *, struct ieee80211_sta *, u16, u16); +struct __fat_dirent { + long d_ino; + __kernel_off_t d_off; + unsigned short d_reclen; + char d_name[256]; +}; -typedef void (*btf_trace_api_start_tx_ba_session)(void *, struct ieee80211_sta *, u16); +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 void (*btf_trace_api_start_tx_ba_cb)(void *, struct ieee80211_sub_if_data *, const u8 *, u16); +struct compat_dirent { + u32 d_ino; + compat_off_t d_off; + u16 d_reclen; + char d_name[256]; +}; -typedef void (*btf_trace_api_stop_tx_ba_session)(void *, struct ieee80211_sta *, u16); +typedef void (*btf_trace_nfs_set_inode_stale)(void *, const struct inode *); -typedef void (*btf_trace_api_stop_tx_ba_cb)(void *, struct ieee80211_sub_if_data *, const u8 *, u16); +typedef void (*btf_trace_nfs_refresh_inode_enter)(void *, const struct inode *); -typedef void (*btf_trace_api_restart_hw)(void *, struct ieee80211_local *); +typedef void (*btf_trace_nfs_refresh_inode_exit)(void *, const struct inode *, int); -typedef void (*btf_trace_api_beacon_loss)(void *, struct ieee80211_sub_if_data *); +typedef void (*btf_trace_nfs_revalidate_inode_enter)(void *, const struct inode *); -typedef void (*btf_trace_api_connection_loss)(void *, struct ieee80211_sub_if_data *); +typedef void (*btf_trace_nfs_revalidate_inode_exit)(void *, const struct inode *, int); -typedef void (*btf_trace_api_disconnect)(void *, struct ieee80211_sub_if_data *, bool); +typedef void (*btf_trace_nfs_invalidate_mapping_enter)(void *, const struct inode *); -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_nfs_invalidate_mapping_exit)(void *, const struct inode *, int); -typedef void (*btf_trace_api_cqm_beacon_loss_notify)(void *, struct ieee80211_local *, struct ieee80211_sub_if_data *); +typedef void (*btf_trace_nfs_getattr_enter)(void *, const struct inode *); -typedef void (*btf_trace_api_scan_completed)(void *, struct ieee80211_local *, bool); +typedef void (*btf_trace_nfs_getattr_exit)(void *, const struct inode *, int); -typedef void (*btf_trace_api_sched_scan_results)(void *, struct ieee80211_local *); +typedef void (*btf_trace_nfs_setattr_enter)(void *, const struct inode *); -typedef void (*btf_trace_api_sched_scan_stopped)(void *, struct ieee80211_local *); +typedef void (*btf_trace_nfs_setattr_exit)(void *, const struct inode *, int); -typedef void (*btf_trace_api_sta_block_awake)(void *, struct ieee80211_local *, struct ieee80211_sta *, bool); +typedef void (*btf_trace_nfs_writeback_inode_enter)(void *, const struct inode *); -typedef void (*btf_trace_api_chswitch_done)(void *, struct ieee80211_sub_if_data *, bool); +typedef void (*btf_trace_nfs_writeback_inode_exit)(void *, const struct inode *, int); -typedef void (*btf_trace_api_ready_on_channel)(void *, struct ieee80211_local *); +typedef void (*btf_trace_nfs_fsync_enter)(void *, const struct inode *); -typedef void (*btf_trace_api_remain_on_channel_expired)(void *, struct ieee80211_local *); +typedef void (*btf_trace_nfs_fsync_exit)(void *, const struct inode *, int); -typedef void (*btf_trace_api_gtk_rekey_notify)(void *, struct ieee80211_sub_if_data *, const u8 *, const u8 *); +typedef void (*btf_trace_nfs_access_enter)(void *, const struct inode *); -typedef void (*btf_trace_api_enable_rssi_reports)(void *, struct ieee80211_sub_if_data *, int, int); +typedef void (*btf_trace_nfs_set_cache_invalid)(void *, const struct inode *, int); -typedef void (*btf_trace_api_eosp)(void *, struct ieee80211_local *, struct ieee80211_sta *); +typedef void (*btf_trace_nfs_readdir_force_readdirplus)(void *, const struct inode *); -typedef void (*btf_trace_api_send_eosp_nullfunc)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8); +typedef void (*btf_trace_nfs_readdir_cache_fill_done)(void *, const struct inode *, int); -typedef void (*btf_trace_api_sta_set_buffered)(void *, struct ieee80211_local *, struct ieee80211_sta *, u8, bool); +typedef void (*btf_trace_nfs_readdir_uncached_done)(void *, const struct inode *, int); -typedef void (*btf_trace_api_radar_detected)(void *, struct ieee80211_local *); +typedef void (*btf_trace_nfs_access_exit)(void *, const struct inode *, unsigned int, unsigned int, int); -typedef void (*btf_trace_wake_queue)(void *, struct ieee80211_local *, u16, enum queue_stop_reason); +typedef void (*btf_trace_nfs_size_truncate)(void *, const struct inode *, loff_t); -typedef void (*btf_trace_stop_queue)(void *, struct ieee80211_local *, u16, enum queue_stop_reason); +typedef void (*btf_trace_nfs_size_wcc)(void *, const struct inode *, loff_t); -struct trace_event_raw_local_only_evt { - struct trace_entry ent; - char wiphy_name[32]; - char __data[0]; -}; +typedef void (*btf_trace_nfs_size_update)(void *, const struct inode *, loff_t); -struct trace_event_raw_drv_return_int { - struct trace_entry ent; - char wiphy_name[32]; - int ret; - char __data[0]; -}; +typedef void (*btf_trace_nfs_size_grow)(void *, const struct inode *, loff_t); -struct trace_event_raw_drv_return_bool { - struct trace_entry ent; - char wiphy_name[32]; - bool ret; - char __data[0]; -}; +typedef void (*btf_trace_nfs_readdir_invalidate_cache_range)(void *, const struct inode *, loff_t, loff_t); -struct trace_event_raw_drv_return_u32 { - struct trace_entry ent; - char wiphy_name[32]; - u32 ret; - char __data[0]; -}; +typedef void (*btf_trace_nfs_readdir_cache_fill)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); -struct trace_event_raw_drv_return_u64 { - struct trace_entry ent; - char wiphy_name[32]; - u64 ret; - char __data[0]; -}; +typedef void (*btf_trace_nfs_readdir_uncached)(void *, const struct file *, const __be32 *, u64, unsigned long, unsigned int); -struct trace_event_raw_local_u32_evt { - struct trace_entry ent; - char wiphy_name[32]; - u32 value; - char __data[0]; -}; +typedef void (*btf_trace_nfs_lookup_enter)(void *, const struct inode *, const struct dentry *, unsigned int); -struct trace_event_raw_drv_set_wakeup { - struct trace_entry ent; - char wiphy_name[32]; - bool enabled; - char __data[0]; -}; +typedef void (*btf_trace_nfs_lookup_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); -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]; -}; +typedef void (*btf_trace_nfs_lookup_revalidate_enter)(void *, const struct inode *, const struct dentry *, unsigned int); -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]; -}; +typedef void (*btf_trace_nfs_lookup_revalidate_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); -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]; -}; +typedef void (*btf_trace_nfs_readdir_lookup)(void *, const struct inode *, const struct dentry *, unsigned int); -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]; -}; +typedef void (*btf_trace_nfs_readdir_lookup_revalidate_failed)(void *, const struct inode *, const struct dentry *, unsigned int); -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]; -}; +typedef void (*btf_trace_nfs_readdir_lookup_revalidate)(void *, const struct inode *, const struct dentry *, unsigned int, int); -struct trace_event_raw_drv_prepare_multicast { - struct trace_entry ent; - char wiphy_name[32]; - int mc_count; - char __data[0]; -}; +typedef void (*btf_trace_nfs_atomic_open_enter)(void *, const struct inode *, const struct nfs_open_context *, unsigned int); -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]; -}; +typedef void (*btf_trace_nfs_atomic_open_exit)(void *, const struct inode *, const struct nfs_open_context *, unsigned int, int); -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]; -}; +typedef void (*btf_trace_nfs_create_enter)(void *, const struct inode *, const struct dentry *, unsigned int); -struct trace_event_raw_drv_set_tim { - struct trace_entry ent; - char wiphy_name[32]; - char sta_addr[6]; - bool set; - char __data[0]; -}; +typedef void (*btf_trace_nfs_create_exit)(void *, const struct inode *, const struct dentry *, unsigned int, int); -struct trace_event_raw_drv_set_key { - struct trace_entry ent; - char wiphy_name[32]; - enum nl80211_iftype vif_type; - void *sdata; - bool p2p; - u32 __data_loc_vif_name; - char sta_addr[6]; - u32 cmd; - u32 cipher; - u8 hw_key_idx; - u8 flags; - s8 keyidx; - char __data[0]; -}; +typedef void (*btf_trace_nfs_mknod_enter)(void *, const struct inode *, const struct dentry *); -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]; -}; +typedef void (*btf_trace_nfs_mknod_exit)(void *, const struct inode *, const struct dentry *, int); -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]; -}; +typedef void (*btf_trace_nfs_mkdir_enter)(void *, const struct inode *, const struct dentry *); -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]; -}; +typedef void (*btf_trace_nfs_mkdir_exit)(void *, const struct inode *, const struct dentry *, int); -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]; -}; +typedef void (*btf_trace_nfs_rmdir_enter)(void *, const struct inode *, const struct dentry *); -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]; -}; +typedef void (*btf_trace_nfs_rmdir_exit)(void *, const struct inode *, const struct dentry *, int); -struct trace_event_raw_drv_set_coverage_class { - struct trace_entry ent; - char wiphy_name[32]; - s16 value; - char __data[0]; -}; +typedef void (*btf_trace_nfs_remove_enter)(void *, const struct inode *, const struct dentry *); -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]; -}; +typedef void (*btf_trace_nfs_remove_exit)(void *, const struct inode *, const struct dentry *, int); -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]; -}; +typedef void (*btf_trace_nfs_unlink_enter)(void *, const struct inode *, const struct dentry *); -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]; -}; +typedef void (*btf_trace_nfs_unlink_exit)(void *, const struct inode *, const struct dentry *, int); -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]; -}; +typedef void (*btf_trace_nfs_symlink_enter)(void *, const struct inode *, const struct dentry *); -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]; -}; +typedef void (*btf_trace_nfs_symlink_exit)(void *, const struct inode *, const struct dentry *, int); -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]; -}; +typedef void (*btf_trace_nfs_link_enter)(void *, const struct inode *, const struct inode *, const struct dentry *); -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]; -}; +typedef void (*btf_trace_nfs_link_exit)(void *, const struct inode *, const struct inode *, const struct dentry *, int); -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]; -}; +typedef void (*btf_trace_nfs_rename_enter)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *); -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]; -}; +typedef void (*btf_trace_nfs_rename_exit)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); -struct trace_event_raw_drv_get_survey { - struct trace_entry ent; - char wiphy_name[32]; - int idx; - char __data[0]; -}; +typedef void (*btf_trace_nfs_sillyrename_rename)(void *, const struct inode *, const struct dentry *, const struct inode *, const struct dentry *, int); -struct trace_event_raw_drv_flush { - struct trace_entry ent; - char wiphy_name[32]; - bool drop; - u32 queues; - char __data[0]; -}; +typedef void (*btf_trace_nfs_sillyrename_unlink)(void *, const struct nfs_unlinkdata *, int); -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]; -}; +typedef void (*btf_trace_nfs_aop_readpage)(void *, const struct inode *, struct folio *); -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]; -}; +typedef void (*btf_trace_nfs_aop_readpage_done)(void *, const struct inode *, struct folio *, int); -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]; -}; +typedef void (*btf_trace_nfs_writeback_folio)(void *, const struct inode *, struct folio *); -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]; -}; +typedef void (*btf_trace_nfs_writeback_folio_done)(void *, const struct inode *, struct folio *, int); -struct trace_event_raw_drv_set_ringparam { - struct trace_entry ent; - char wiphy_name[32]; - u32 tx; - u32 rx; - char __data[0]; -}; +typedef void (*btf_trace_nfs_invalidate_folio)(void *, const struct inode *, struct folio *); -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]; -}; +typedef void (*btf_trace_nfs_launder_folio_done)(void *, const struct inode *, struct folio *, int); -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]; -}; +typedef void (*btf_trace_nfs_aop_readahead)(void *, const struct inode *, loff_t, unsigned int); -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]; -}; +typedef void (*btf_trace_nfs_aop_readahead_done)(void *, const struct inode *, unsigned int, int); -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]; -}; +typedef void (*btf_trace_nfs_initiate_read)(void *, const struct nfs_pgio_header *); -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]; -}; +typedef void (*btf_trace_nfs_readpage_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); -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]; -}; +typedef void (*btf_trace_nfs_readpage_short)(void *, const struct rpc_task *, const struct nfs_pgio_header *); -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]; -}; +typedef void (*btf_trace_nfs_pgio_error)(void *, const struct nfs_pgio_header *, int, loff_t); -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]; -}; +typedef void (*btf_trace_nfs_initiate_write)(void *, const struct nfs_pgio_header *); -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]; -}; +typedef void (*btf_trace_nfs_writeback_done)(void *, const struct rpc_task *, const struct nfs_pgio_header *); -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]; -}; +typedef void (*btf_trace_nfs_write_error)(void *, const struct inode *, const struct nfs_page *, int); -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]; -}; +typedef void (*btf_trace_nfs_comp_error)(void *, const struct inode *, const struct nfs_page *, int); -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]; -}; +typedef void (*btf_trace_nfs_commit_error)(void *, const struct inode *, const struct nfs_page *, int); -struct trace_event_raw_drv_reconfig_complete { - struct trace_entry ent; - char wiphy_name[32]; - u8 reconfig_type; - char __data[0]; -}; +typedef void (*btf_trace_nfs_initiate_commit)(void *, const struct nfs_commit_data *); -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]; -}; +typedef void (*btf_trace_nfs_commit_done)(void *, const struct rpc_task *, const struct nfs_commit_data *); -struct trace_event_raw_drv_get_expected_throughput { - struct trace_entry ent; - char sta_addr[6]; - char __data[0]; -}; +typedef void (*btf_trace_nfs_direct_commit_complete)(void *, const struct nfs_direct_req *); -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]; -}; +typedef void (*btf_trace_nfs_direct_resched_write)(void *, const struct nfs_direct_req *); -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]; -}; +typedef void (*btf_trace_nfs_direct_write_complete)(void *, const struct nfs_direct_req *); -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]; -}; +typedef void (*btf_trace_nfs_direct_write_completion)(void *, const struct nfs_direct_req *); -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]; -}; +typedef void (*btf_trace_nfs_direct_write_schedule_iovec)(void *, const struct nfs_direct_req *); -struct trace_event_raw_drv_del_nan_func { +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; - char wiphy_name[32]; - enum nl80211_iftype vif_type; - void *sdata; - bool p2p; - u32 __data_loc_vif_name; - u8 instance_id; + dev_t dev; + u32 fhandle; + u64 fileid; + u64 version; char __data[0]; }; -struct trace_event_raw_drv_set_default_unicast_key { +struct trace_event_raw_nfs_inode_event_done { 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; + 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_drv_channel_switch_beacon { +struct trace_event_raw_nfs_access_exit { 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; + 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_drv_pre_channel_switch { +struct trace_event_raw_nfs_update_size_class { 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; + dev_t dev; + u32 fhandle; + u64 fileid; + u64 version; + loff_t cur_size; + loff_t new_size; char __data[0]; }; -struct trace_event_raw_drv_channel_switch_rx_beacon { +struct trace_event_raw_nfs_inode_range_event { 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; + dev_t dev; + u32 fhandle; + u64 fileid; + u64 version; + loff_t range_start; + loff_t range_end; char __data[0]; }; -struct trace_event_raw_drv_get_txpower { +struct trace_event_raw_nfs_readdir_event { 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; + 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_drv_tdls_channel_switch { +struct trace_event_raw_nfs_lookup_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]; - u8 oper_class; - u32 control_freq; - u32 freq_offset; - u32 chan_width; - u32 center_freq1; - u32 freq1_offset; - u32 center_freq2; + unsigned long flags; + dev_t dev; + u64 dir; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_drv_tdls_cancel_channel_switch { +struct trace_event_raw_nfs_lookup_event_done { 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]; + unsigned long error; + unsigned long flags; + dev_t dev; + u64 dir; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_drv_tdls_recv_channel_switch { +struct trace_event_raw_nfs_atomic_open_enter { 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; + unsigned long flags; + unsigned long fmode; + dev_t dev; + u64 dir; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_drv_wake_tx_queue { +struct trace_event_raw_nfs_atomic_open_exit { 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; + 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_drv_get_ftm_responder_stats { +struct trace_event_raw_nfs_create_enter { struct trace_entry ent; - char wiphy_name[32]; - enum nl80211_iftype vif_type; - void *sdata; - bool p2p; - u32 __data_loc_vif_name; + unsigned long flags; + dev_t dev; + u64 dir; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_sta_flag_evt { +struct trace_event_raw_nfs_create_exit { 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; + unsigned long error; + unsigned long flags; + dev_t dev; + u64 dir; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_drv_add_twt_setup { +struct trace_event_raw_nfs_directory_event { 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; + dev_t dev; + u64 dir; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_drv_twt_teardown_request { +struct trace_event_raw_nfs_directory_event_done { struct trace_entry ent; - char wiphy_name[32]; - char sta_addr[6]; - u8 flowid; + unsigned long error; + dev_t dev; + u64 dir; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_drv_net_setup_tc { +struct trace_event_raw_nfs_link_enter { struct trace_entry ent; - char wiphy_name[32]; - enum nl80211_iftype vif_type; - void *sdata; - bool p2p; - u32 __data_loc_vif_name; - u8 type; + dev_t dev; + u64 fileid; + u64 dir; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_drv_change_vif_links { +struct trace_event_raw_nfs_link_exit { 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; + unsigned long error; + dev_t dev; + u64 fileid; + u64 dir; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_drv_change_sta_links { +struct trace_event_raw_nfs_rename_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]; - u16 old_links; - u16 new_links; + 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_api_start_tx_ba_session { +struct trace_event_raw_nfs_rename_event_done { struct trace_entry ent; - char sta_addr[6]; - u16 tid; + 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_api_start_tx_ba_cb { +struct trace_event_raw_nfs_sillyrename_unlink { struct trace_entry ent; - enum nl80211_iftype vif_type; - void *sdata; - bool p2p; - u32 __data_loc_vif_name; - u8 ra[6]; - u16 tid; + dev_t dev; + unsigned long error; + u64 dir; + u32 __data_loc_name; char __data[0]; }; -struct trace_event_raw_api_stop_tx_ba_session { +struct trace_event_raw_nfs_folio_event { struct trace_entry ent; - char sta_addr[6]; - u16 tid; + dev_t dev; + u32 fhandle; + u64 fileid; + u64 version; + loff_t offset; + u32 count; char __data[0]; }; -struct trace_event_raw_api_stop_tx_ba_cb { +struct trace_event_raw_nfs_folio_event_done { struct trace_entry ent; - enum nl80211_iftype vif_type; - void *sdata; - bool p2p; - u32 __data_loc_vif_name; - u8 ra[6]; - u16 tid; + dev_t dev; + u32 fhandle; + int ret; + u64 fileid; + u64 version; + loff_t offset; + u32 count; char __data[0]; }; -struct trace_event_raw_api_beacon_loss { +struct trace_event_raw_nfs_aop_readahead { struct trace_entry ent; - enum nl80211_iftype vif_type; - void *sdata; - bool p2p; - u32 __data_loc_vif_name; + dev_t dev; + u32 fhandle; + u64 fileid; + u64 version; + loff_t offset; + unsigned int nr_pages; char __data[0]; }; -struct trace_event_raw_api_connection_loss { +struct trace_event_raw_nfs_aop_readahead_done { struct trace_entry ent; - enum nl80211_iftype vif_type; - void *sdata; - bool p2p; - u32 __data_loc_vif_name; + 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_api_disconnect { +struct trace_event_raw_nfs_initiate_read { struct trace_entry ent; - enum nl80211_iftype vif_type; - void *sdata; - bool p2p; - u32 __data_loc_vif_name; - int reconnect; + dev_t dev; + u32 fhandle; + u64 fileid; + loff_t offset; + u32 count; char __data[0]; }; -struct trace_event_raw_api_cqm_rssi_notify { +struct trace_event_raw_nfs_readpage_done { struct trace_entry ent; - enum nl80211_iftype vif_type; - void *sdata; - bool p2p; - u32 __data_loc_vif_name; - u32 rssi_event; - s32 rssi_level; + 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_api_scan_completed { +struct trace_event_raw_nfs_readpage_short { struct trace_entry ent; - char wiphy_name[32]; - bool aborted; + 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_api_sched_scan_results { +struct trace_event_raw_nfs_pgio_error { struct trace_entry ent; - char wiphy_name[32]; + 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_api_sched_scan_stopped { +struct trace_event_raw_nfs_initiate_write { struct trace_entry ent; - char wiphy_name[32]; + dev_t dev; + u32 fhandle; + u64 fileid; + loff_t offset; + u32 count; + unsigned long stable; char __data[0]; }; -struct trace_event_raw_api_sta_block_awake { +struct trace_event_raw_nfs_writeback_done { struct trace_entry ent; - char wiphy_name[32]; - char sta_addr[6]; - bool block; + 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_api_chswitch_done { +struct trace_event_raw_nfs_page_error_class { struct trace_entry ent; - enum nl80211_iftype vif_type; - void *sdata; - bool p2p; - u32 __data_loc_vif_name; - bool success; + dev_t dev; + u32 fhandle; + u64 fileid; + loff_t offset; + unsigned int count; + int error; char __data[0]; }; -struct trace_event_raw_api_gtk_rekey_notify { +struct trace_event_raw_nfs_initiate_commit { 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]; + dev_t dev; + u32 fhandle; + u64 fileid; + loff_t offset; + u32 count; char __data[0]; }; -struct trace_event_raw_api_enable_rssi_reports { +struct trace_event_raw_nfs_commit_done { 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; + 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_api_eosp { +struct trace_event_raw_nfs_direct_req_class { struct trace_entry ent; - char wiphy_name[32]; - char sta_addr[6]; + 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_api_send_eosp_nullfunc { +struct trace_event_raw_nfs_fh_to_dentry { struct trace_entry ent; - char wiphy_name[32]; - char sta_addr[6]; - u8 tid; + int error; + dev_t dev; + u32 fhandle; + u64 fileid; char __data[0]; }; -struct trace_event_raw_api_sta_set_buffered { +struct trace_event_raw_nfs_mount_assign { struct trace_entry ent; - char wiphy_name[32]; - char sta_addr[6]; - u8 tid; - bool buffered; + u32 __data_loc_option; + u32 __data_loc_value; char __data[0]; }; -struct trace_event_raw_api_radar_detected { +struct trace_event_raw_nfs_mount_option { struct trace_entry ent; - char wiphy_name[32]; + u32 __data_loc_option; char __data[0]; }; -struct trace_event_raw_wake_queue { +struct trace_event_raw_nfs_mount_path { struct trace_entry ent; - char wiphy_name[32]; - u16 queue; - u32 reason; + u32 __data_loc_path; char __data[0]; }; -struct trace_event_raw_stop_queue { +struct trace_event_raw_nfs_xdr_event { struct trace_entry ent; - char wiphy_name[32]; - u16 queue; - u32 reason; + 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_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_nfs_lookup_event { + u32 name; }; -struct trace_event_data_offsets_drv_remain_on_channel { - u32 vif_name; +struct trace_event_data_offsets_nfs_lookup_event_done { + u32 name; }; -struct trace_event_data_offsets_drv_set_bitrate_mask { - u32 vif_name; +struct trace_event_data_offsets_nfs_atomic_open_enter { + u32 name; }; -struct trace_event_data_offsets_drv_set_rekey_data { - u32 vif_name; +struct trace_event_data_offsets_nfs_atomic_open_exit { + u32 name; }; -struct trace_event_data_offsets_drv_event_callback { - u32 vif_name; +struct trace_event_data_offsets_nfs_create_enter { + u32 name; }; -struct trace_event_data_offsets_mgd_prepare_complete_tx_evt { - u32 vif_name; +struct trace_event_data_offsets_nfs_create_exit { + u32 name; }; -struct trace_event_data_offsets_drv_switch_vif_chanctx { - u32 vifs; +struct trace_event_data_offsets_nfs_directory_event { + u32 name; }; -struct trace_event_data_offsets_local_sdata_chanctx { - u32 vif_name; +struct trace_event_data_offsets_nfs_directory_event_done { + u32 name; }; -struct trace_event_data_offsets_drv_start_ap { - u32 vif_name; - u32 ssid; +struct trace_event_data_offsets_nfs_link_enter { + u32 name; }; -struct trace_event_data_offsets_drv_stop_ap { - u32 vif_name; +struct trace_event_data_offsets_nfs_link_exit { + u32 name; }; -struct trace_event_data_offsets_drv_join_ibss { - u32 vif_name; - u32 ssid; +struct trace_event_data_offsets_nfs_rename_event { + u32 old_name; + u32 new_name; }; -struct trace_event_data_offsets_drv_start_nan { - u32 vif_name; +struct trace_event_data_offsets_nfs_rename_event_done { + u32 old_name; + u32 new_name; }; -struct trace_event_data_offsets_drv_stop_nan { - u32 vif_name; +struct trace_event_data_offsets_nfs_sillyrename_unlink { + u32 name; }; -struct trace_event_data_offsets_drv_nan_change_conf { - u32 vif_name; +struct trace_event_data_offsets_nfs_mount_assign { + u32 option; + u32 value; }; -struct trace_event_data_offsets_drv_add_nan_func { - u32 vif_name; +struct trace_event_data_offsets_nfs_mount_option { + u32 option; }; -struct trace_event_data_offsets_drv_del_nan_func { - u32 vif_name; +struct trace_event_data_offsets_nfs_mount_path { + u32 path; }; -struct trace_event_data_offsets_drv_set_default_unicast_key { - u32 vif_name; +struct trace_event_data_offsets_nfs_xdr_event { + u32 program; + u32 procedure; }; -struct trace_event_data_offsets_drv_channel_switch_beacon { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_inode_event {}; -struct trace_event_data_offsets_drv_pre_channel_switch { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_inode_event_done {}; -struct trace_event_data_offsets_drv_channel_switch_rx_beacon { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_access_exit {}; -struct trace_event_data_offsets_drv_get_txpower { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_update_size_class {}; -struct trace_event_data_offsets_drv_tdls_channel_switch { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_inode_range_event {}; -struct trace_event_data_offsets_drv_tdls_cancel_channel_switch { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_readdir_event {}; -struct trace_event_data_offsets_drv_tdls_recv_channel_switch { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_folio_event {}; -struct trace_event_data_offsets_drv_wake_tx_queue { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_folio_event_done {}; -struct trace_event_data_offsets_drv_get_ftm_responder_stats { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_aop_readahead {}; -struct trace_event_data_offsets_sta_flag_evt { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_aop_readahead_done {}; -struct trace_event_data_offsets_drv_net_setup_tc { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_initiate_read {}; -struct trace_event_data_offsets_drv_change_vif_links { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_readpage_done {}; -struct trace_event_data_offsets_drv_change_sta_links { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_readpage_short {}; -struct trace_event_data_offsets_api_start_tx_ba_cb { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_pgio_error {}; -struct trace_event_data_offsets_api_stop_tx_ba_cb { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_initiate_write {}; -struct trace_event_data_offsets_api_beacon_loss { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_writeback_done {}; -struct trace_event_data_offsets_api_connection_loss { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_page_error_class {}; -struct trace_event_data_offsets_api_disconnect { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_initiate_commit {}; -struct trace_event_data_offsets_api_cqm_rssi_notify { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_commit_done {}; -struct trace_event_data_offsets_api_chswitch_done { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_direct_req_class {}; -struct trace_event_data_offsets_api_gtk_rekey_notify { - u32 vif_name; -}; +struct trace_event_data_offsets_nfs_fh_to_dentry {}; -struct trace_event_data_offsets_api_enable_rssi_reports { - u32 vif_name; +struct ipc_proc_iface { + const char *path; + const char *header; + int ids; + int (*show)(struct seq_file *, void *); }; -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 ipc_proc_iter { + struct ipc_namespace *ns; + struct pid_namespace *pid_ns; + struct ipc_proc_iface *iface; }; -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 ext_wait_queue { + struct task_struct *task; + struct list_head list; + struct msg_msg *msg; + int state; +}; -struct trace_event_data_offsets_stop_queue {}; +struct posix_msg_tree_node; -enum { - CMCI_STORM_NONE = 0, - CMCI_STORM_ACTIVE = 1, - CMCI_STORM_SUBSIDED = 2, +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 smca_hwid; - -struct smca_bank { - const struct smca_hwid *hwid; - u32 id; - u8 sysfs_id; +struct posix_msg_tree_node { + struct rb_node rb_node; + struct list_head msg_list; + int priority; }; -struct smca_hwid { - unsigned int bank_type; - u32 hwid_mcatype; +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 smca_bank_name { - const char *name; - const char *long_name; +struct mqueue_fs_context { + struct ipc_namespace *ipc_ns; + bool newns; }; -struct threshold_attr { - struct attribute attr; - ssize_t (*show)(struct threshold_block *, char *); - ssize_t (*store)(struct threshold_block *, const char *, size_t); +struct crypto_kpp { + unsigned int reqsize; + struct crypto_tfm base; }; -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, +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 thresh_restart { - struct threshold_block *b; - int reset; - int set_lvt_off; - int lvt_off; - u16 old_limit; +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 ucode_patch { - struct list_head plist; - void *data; - unsigned int size; - u32 patch_id; - u16 equiv_cpu; +struct kpp_instance { + void (*free)(struct kpp_instance *); + union { + struct { + char head[48]; + struct crypto_instance base; + } s; + struct kpp_alg alg; + }; }; -struct equiv_cpu_entry; +struct crypto_istat_kpp { + atomic64_t setsecret_cnt; + atomic64_t generate_public_key_cnt; + atomic64_t compute_shared_secret_cnt; + atomic64_t err_cnt; +}; -struct equiv_cpu_table { - unsigned int num_entries; - struct equiv_cpu_entry *entry; +struct crypto_kpp_spawn { + struct crypto_spawn base; }; -struct equiv_cpu_entry { - u32 installed_cpu; - u32 fixed_errata_mask; - u32 fixed_errata_compare; - u16 equiv_cpu; - u16 res; +enum hash_algo { + HASH_ALGO_MD4 = 0, + HASH_ALGO_MD5 = 1, + HASH_ALGO_SHA1 = 2, + HASH_ALGO_RIPE_MD_160 = 3, + HASH_ALGO_SHA256 = 4, + HASH_ALGO_SHA384 = 5, + HASH_ALGO_SHA512 = 6, + HASH_ALGO_SHA224 = 7, + HASH_ALGO_RIPE_MD_128 = 8, + HASH_ALGO_RIPE_MD_256 = 9, + HASH_ALGO_RIPE_MD_320 = 10, + HASH_ALGO_WP_256 = 11, + HASH_ALGO_WP_384 = 12, + HASH_ALGO_WP_512 = 13, + HASH_ALGO_TGR_128 = 14, + HASH_ALGO_TGR_160 = 15, + HASH_ALGO_TGR_192 = 16, + HASH_ALGO_SM3_256 = 17, + HASH_ALGO_STREEBOG_256 = 18, + HASH_ALGO_STREEBOG_512 = 19, + HASH_ALGO_SHA3_256 = 20, + HASH_ALGO_SHA3_384 = 21, + HASH_ALGO_SHA3_512 = 22, + HASH_ALGO__LAST = 23, }; -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]; +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, }; -struct microcode_amd { - struct microcode_header_amd hdr; - unsigned int mpb[0]; +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 cont_desc { - struct microcode_amd *mc; - u32 cpuid_1_eax; - u32 psize; - u8 *data; - size_t size; +struct io_sync { + struct file *file; + loff_t len; + loff_t off; + int flags; + int mode; }; -struct cpuid_regs_done { - struct cpuid_regs regs; - struct completion done; +union nested_table { + union nested_table __attribute__((btf_type_tag("rcu"))) *table; + struct rhash_lock_head __attribute__((btf_type_tag("rcu"))) *bucket; }; -struct mwait_cpu_dead { - unsigned int control; - unsigned int status; +struct gf128mul_64k { + struct gf128mul_4k *t[16]; }; -struct hpet_channel; +typedef struct { + __le64 b; + __le64 a; +} le128; -struct hpet_base { - unsigned int nr_channels; - unsigned int nr_clockevents; - unsigned int boot_cfg; - struct hpet_channel *channels; +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, }; -enum hpet_mode { - HPET_MODE_UNUSED = 0, - HPET_MODE_LEGACY = 1, - HPET_MODE_CLOCKEVT = 2, - HPET_MODE_DEVICE = 3, +struct acpi_madt_io_sapic { + struct acpi_subtable_header header; + u8 id; + u8 reserved; + u32 global_irq_base; + u64 address; }; -struct hpet_channel { - struct clock_event_device evt; - unsigned int num; - unsigned int cpu; - unsigned int irq; - unsigned int in_use; - enum hpet_mode mode; - unsigned int boot_cfg; - char name[10]; - long: 64; - long: 64; - long: 64; +struct 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; }; -union hpet_lock { - struct { - arch_spinlock_t lock; - u32 value; - }; - u64 lockval; +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 pci_hostbridge_probe { - u32 bus; - u32 slot; - u32 vendor; - u32 device; +struct acpi_wakeup_handler { + struct list_head list_node; + bool (*wakeup)(void *); + void *context; }; -typedef void (*btf_trace_page_fault_user)(void *, unsigned long, struct pt_regs *, unsigned long); +enum wmi_brightness_method { + WMI_BRIGHTNESS_METHOD_LEVEL = 1, + WMI_BRIGHTNESS_METHOD_SOURCE = 2, + WMI_BRIGHTNESS_METHOD_MAX = 3, +}; -typedef void (*btf_trace_page_fault_kernel)(void *, unsigned long, struct pt_regs *, unsigned long); +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 trace_event_raw_x86_exceptions { - struct trace_entry ent; - unsigned long address; - unsigned long ip; - unsigned long error_code; - char __data[0]; +struct wmi_brightness_args { + u32 mode; + u32 val; + u32 ret; + u32 ignored[3]; }; -struct trace_event_data_offsets_x86_exceptions {}; +struct uart_match { + struct uart_port *port; + struct uart_driver *driver; +}; -struct waitid_info; +struct panel_bridge { + struct drm_bridge bridge; + struct drm_connector connector; + struct drm_panel *panel; + u32 connector_type; +}; -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; +enum { + CLEAR_RESIDUALS = 0, }; -struct waitid_info { - pid_t pid; - uid_t uid; - int status; - int cause; +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; }; enum { - IRQC_IS_HARDIRQ = 0, - IRQC_IS_NESTED = 1, + INTEL_CONTEXT_SCHEDULE_IN = 0, + INTEL_CONTEXT_SCHEDULE_OUT = 1, + INTEL_CONTEXT_SCHEDULE_PREEMPTED = 2, }; -struct bpf_iter__bpf_map { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; +struct ve_node { + struct rb_node rb; + int prio; }; -struct bpf_iter_seq_map_info { - u32 map_id; +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 memblock { - bool bottom_up; - phys_addr_t current_limit; - struct memblock_type memory; - struct memblock_type reserved; +struct execlists_capture { + struct work_struct work; + struct i915_request *rq; + struct i915_gpu_coredump *error; }; -enum poll_time_type { - PT_TIMEVAL = 0, - PT_OLD_TIMEVAL = 1, - PT_TIMESPEC = 2, - PT_OLD_TIMESPEC = 3, +struct kobj_engine { + struct kobject base; + struct intel_engine_cs *engine; }; -struct poll_table_entry { +struct i915_ttm_tt { + struct ttm_tt ttm; + struct device *dev; + struct i915_refct_sgt cached_rsgt; + bool is_shmem; struct file *filp; - __poll_t key; - wait_queue_entry_t wait; - wait_queue_head_t *wait_address; }; -struct poll_table_page; +struct virtio_gpu_vbuffer; -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]; -}; +typedef void (*virtio_gpu_resp_cb)(struct virtio_gpu_device *, struct virtio_gpu_vbuffer *); -struct poll_table_page { - struct poll_table_page *next; - struct poll_table_entry *entry; - struct poll_table_entry entries[0]; +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; }; -typedef struct { - unsigned long fds_bits[16]; -} __kernel_fd_set; - -typedef __kernel_fd_set fd_set; +struct virtio_gpu_command; -struct poll_list { - struct poll_list *next; - int len; - struct pollfd entries[0]; +struct virtio_gpu_resp_display_info { + struct virtio_gpu_ctrl_hdr hdr; + struct virtio_gpu_display_one pmodes[16]; }; -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; +struct virtio_gpu_get_capset_info { + struct virtio_gpu_ctrl_hdr hdr; + __le32 capset_index; + __le32 padding; }; -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 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 compat_sigset_argpack { - compat_uptr_t p; - compat_size_t size; +struct virtio_gpu_get_capset { + struct virtio_gpu_ctrl_hdr hdr; + __le32 capset_id; + __le32 capset_version; }; -struct dqstats { - unsigned long stat[8]; - struct percpu_counter counter[8]; +struct virtio_gpu_resp_capset { + struct virtio_gpu_ctrl_hdr hdr; + __u8 capset_data[0]; }; -struct quota_module_name { - int qm_fmt_id; - char *qm_mod_name; +struct virtio_gpu_cmd_get_edid { + struct virtio_gpu_ctrl_hdr hdr; + __le32 scanout; + __le32 padding; }; -struct dquot_warn { - struct super_block *w_sb; - struct kqid w_dq_id; - short w_type; +struct virtio_gpu_resp_edid { + struct virtio_gpu_ctrl_hdr hdr; + __le32 size; + __le32 padding; + __u8 edid[1024]; }; -struct ext4_system_zone { - struct rb_node node; - ext4_fsblk_t start_blk; - unsigned int count; - u32 ino; +struct virtio_gpu_resp_resource_uuid { + struct virtio_gpu_ctrl_hdr hdr; + __u8 uuid[16]; }; -struct nfs_io_completion { - void (*complete)(void *); - void *data; - struct kref refcount; +struct virtio_gpu_resp_map_info { + struct virtio_gpu_ctrl_hdr hdr; + __u32 map_info; + __u32 padding; }; -enum pnfs_try_status { - PNFS_ATTEMPTED = 0, - PNFS_NOT_ATTEMPTED = 1, - PNFS_TRY_AGAIN = 2, +struct virtio_gpu_box { + __le32 x; + __le32 y; + __le32 z; + __le32 w; + __le32 h; + __le32 d; }; -enum { - SKCIPHER_WALK_PHYS = 1, - SKCIPHER_WALK_SLOW = 2, - SKCIPHER_WALK_COPY = 4, - SKCIPHER_WALK_DIFF = 8, - SKCIPHER_WALK_SLEEP = 16, +struct virtio_gpu_resource_attach_backing { + struct virtio_gpu_ctrl_hdr hdr; + __le32 resource_id; + __le32 nr_entries; }; -struct skcipher_walk_buffer { - struct list_head entry; - struct scatter_walk dst; - unsigned int len; - u8 *data; - u8 buffer[0]; +struct virtio_gpu_resource_create_2d { + struct virtio_gpu_ctrl_hdr hdr; + __le32 resource_id; + __le32 format; + __le32 width; + __le32 height; }; -struct crypto_istat_cipher { - atomic64_t encrypt_cnt; - atomic64_t encrypt_tlen; - atomic64_t decrypt_cnt; - atomic64_t decrypt_tlen; - atomic64_t err_cnt; +struct virtio_gpu_resource_unref { + struct virtio_gpu_ctrl_hdr hdr; + __le32 resource_id; + __le32 padding; }; -struct crypto_istat_rng { - atomic64_t generate_cnt; - atomic64_t generate_tlen; - atomic64_t seed_cnt; - atomic64_t err_cnt; +struct virtio_gpu_set_scanout { + struct virtio_gpu_ctrl_hdr hdr; + struct virtio_gpu_rect r; + __le32 scanout_id; + __le32 resource_id; }; -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 virtio_gpu_resource_flush { + struct virtio_gpu_ctrl_hdr hdr; + struct virtio_gpu_rect r; + __le32 resource_id; + __le32 padding; +}; -struct _gpt_entry_attributes { - u64 required_to_function: 1; - u64 reserved: 47; - u64 type_guid_specific: 16; +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; }; -typedef struct _gpt_entry_attributes gpt_entry_attributes; +struct virtio_gpu_ctx_create { + struct virtio_gpu_ctrl_hdr hdr; + __le32 nlen; + __le32 context_init; + char debug_name[64]; +}; -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]; +struct virtio_gpu_ctx_destroy { + struct virtio_gpu_ctrl_hdr hdr; }; -typedef struct _gpt_entry gpt_entry; +struct virtio_gpu_ctx_resource { + struct virtio_gpu_ctrl_hdr hdr; + __le32 resource_id; + __le32 padding; +}; -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; +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; }; -typedef struct _gpt_mbr_record gpt_mbr_record; +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 _legacy_mbr { - u8 boot_code[440]; - __le32 unique_mbr_signature; - __le16 unknown; - gpt_mbr_record partition_record[4]; - __le16 signature; -} __attribute__((packed)); +struct virtio_gpu_cmd_submit { + struct virtio_gpu_ctrl_hdr hdr; + __le32 size; + __le32 padding; +}; -typedef struct _legacy_mbr legacy_mbr; +struct virtio_gpu_resource_assign_uuid { + struct virtio_gpu_ctrl_hdr hdr; + __le32 resource_id; + __le32 padding; +}; -struct io_epoll { - struct file *file; - int epfd; - int op; - int fd; - struct epoll_event event; +struct virtio_gpu_resource_map_blob { + struct virtio_gpu_ctrl_hdr hdr; + __le32 resource_id; + __le32 padding; + __le64 offset; }; -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 virtio_gpu_resource_unmap_blob { + struct virtio_gpu_ctrl_hdr hdr; + __le32 resource_id; + __le32 padding; }; -struct genpool_data_align { - int align; +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 genpool_data_fixed { - unsigned long offset; +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 sg_pool { +struct devres_node { + struct list_head entry; + dr_release_t release; + const char *name; size_t size; - char *name; - struct kmem_cache *slab; - mempool_t *pool; }; -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 devres { + struct devres_node node; + u8 data[0]; }; -struct vga_arb_user_card { - struct pci_dev *pdev; - unsigned int mem_cnt; - unsigned int io_cnt; +struct devres_group { + struct devres_node node[2]; + void *id; + int color; }; -struct vga_arb_private { - struct list_head list; - struct pci_dev *target; - struct vga_arb_user_card cards[16]; - spinlock_t lock; +struct action_devres { + void *data; + void (*action)(void *); }; -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 pages_devres { + unsigned long addr; + unsigned int order; +}; -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 dma_fence_array_cb { + struct dma_fence_cb cb; + struct dma_fence_array *array; +}; -struct prm_buffer { - u8 prm_status; - u64 efi_status; - u8 prm_cmd; - guid_t handler_guid; -} __attribute__((packed)); +typedef void (*btf_trace_scsi_dispatch_cmd_start)(void *, struct scsi_cmnd *); -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; -}; +typedef void (*btf_trace_scsi_dispatch_cmd_error)(void *, struct scsi_cmnd *, int); -struct prm_mmio_info; +typedef void (*btf_trace_scsi_dispatch_cmd_done)(void *, struct scsi_cmnd *); -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]; -}; +typedef void (*btf_trace_scsi_dispatch_cmd_timeout)(void *, struct scsi_cmnd *); -struct prm_mmio_addr_range { - u64 phys_addr; - u64 virt_addr; - u32 length; -} __attribute__((packed)); +typedef void (*btf_trace_scsi_eh_wakeup)(void *, struct Scsi_Host *); -struct prm_mmio_info { - u64 mmio_count; - struct prm_mmio_addr_range addr_ranges[0]; +enum scsi_vpd_parameters { + SCSI_VPD_HEADER_SIZE = 4, }; -struct prm_context_buffer { - char signature[4]; - u16 revision; - u16 reserved; - guid_t identifier; - u64 static_data_buffer; - struct prm_mmio_info *mmio_ranges; +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]; }; -enum { - AML_FIELD_UPDATE_PRESERVE = 0, - AML_FIELD_UPDATE_WRITE_AS_ONES = 32, - AML_FIELD_UPDATE_WRITE_AS_ZEROS = 64, +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 pnp_info_buffer { - char *buffer; - char *curr; - unsigned long size; - unsigned long len; - int stop; - int error; +struct trace_event_raw_scsi_cmd_done_timeout_template { + struct trace_entry ent; + unsigned int host_no; + unsigned int channel; + unsigned int id; + unsigned int lun; + int result; + unsigned int opcode; + unsigned int cmd_len; + int driver_tag; + int scheduler_tag; + unsigned int data_sglen; + unsigned int prot_sglen; + unsigned char prot_op; + u32 __data_loc_cmnd; + u8 sense_key; + u8 asc; + u8 ascq; + char __data[0]; }; -typedef struct pnp_info_buffer pnp_info_buffer_t; - -struct drm_stats { - unsigned long count; - struct { - unsigned long value; - enum drm_stat_type type; - } data[15]; +struct trace_event_raw_scsi_eh_wakeup { + struct trace_entry ent; + unsigned int host_no; + char __data[0]; }; -struct drm_set_version { - int drm_di_major; - int drm_di_minor; - int drm_dd_major; - int drm_dd_minor; +struct trace_event_data_offsets_scsi_dispatch_cmd_start { + u32 cmnd; }; -struct drm_get_cap { - __u64 capability; - __u64 value; +struct trace_event_data_offsets_scsi_dispatch_cmd_error { + u32 cmnd; }; -struct drm_set_client_cap { - __u64 capability; - __u64 value; +struct trace_event_data_offsets_scsi_cmd_done_timeout_template { + u32 cmnd; }; -struct lri { - i915_reg_t reg; - u32 value; -}; +struct trace_event_data_offsets_scsi_eh_wakeup {}; -enum { - INTEL_ADVANCED_CONTEXT = 0, - INTEL_LEGACY_32B_CONTEXT = 1, - INTEL_ADVANCED_AD_CONTEXT = 2, - INTEL_LEGACY_64B_CONTEXT = 3, +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; }; -typedef u32 * (*wa_bb_func_t)(struct intel_engine_cs *, u32 *); - -enum intel_guc_state_capture_event_status { - INTEL_GUC_STATE_CAPTURE_EVENT_STATUS_SUCCESS = 0, - INTEL_GUC_STATE_CAPTURE_EVENT_STATUS_NOSPACE = 1, +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; }; -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, +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 { - GUC_SCHEDULING_POLICIES_KLV_ID_RENDER_COMPUTE_YIELD = 4097, -}; +typedef void (*btf_trace_i2c_write)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); -struct guc_sched_wq_desc { - u32 head; - u32 tail; - u32 error_offset; - u32 wq_status; - u32 reserved[28]; -}; +typedef void (*btf_trace_i2c_read)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); -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)); +typedef void (*btf_trace_i2c_reply)(void *, const struct i2c_adapter *, const struct i2c_msg *, int); -union guc_descs { - struct guc_sched_wq_desc wq_desc; - struct guc_process_desc_v69 pdesc; -}; +typedef void (*btf_trace_i2c_result)(void *, const struct i2c_adapter *, int, int); -struct sync_semaphore { - u32 semaphore; - u8 unused[60]; +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 parent_scratch { - union guc_descs descs; - struct sync_semaphore go; - struct sync_semaphore join[9]; - u8 unused[1216]; - u32 wq[512]; +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 guc_virtual_engine { - struct intel_engine_cs base; - struct intel_context context; +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 guc_update_scheduling_policy_header { - u32 action; +struct trace_event_raw_i2c_result { + struct trace_entry ent; + int adapter_nr; + __u16 nr_msgs; + __s16 ret; + char __data[0]; }; -struct guc_update_scheduling_policy { - struct guc_update_scheduling_policy_header header; - u32 data[3]; +struct trace_event_data_offsets_i2c_write { + u32 buf; }; -struct scheduling_policy { - u32 max_words; - u32 num_words; - u32 count; - struct guc_update_scheduling_policy h2g; +struct trace_event_data_offsets_i2c_reply { + u32 buf; }; -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 trace_event_data_offsets_i2c_read {}; -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 trace_event_data_offsets_i2c_result {}; -struct guc_update_context_policy_header { - u32 action; - u32 ctx_id; +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 guc_klv_generic_dw_t { - u32 kl; - u32 value; +struct i2c_cmd_arg { + unsigned int cmd; + void *arg; }; -struct guc_update_context_policy { - struct guc_update_context_policy_header header; - struct guc_klv_generic_dw_t klv[5]; +struct i2c_device_identity { + u16 manufacturer_id; + u16 part_id; + u8 die_revision; }; -struct context_policy { - u32 count; - struct guc_update_context_policy h2g; +enum led_default_state { + LEDS_DEFSTATE_OFF = 0, + LEDS_DEFSTATE_ON = 1, + LEDS_DEFSTATE_KEEP = 2, }; -enum snoop_when { - SUBMIT = 0, - COMPLETE = 1, +struct led_properties { + u32 color; + bool color_present; + const char *function; + u32 func_enum; + bool func_enum_present; + const char *label; }; -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 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; }; -struct usb_memory; +typedef int (*snd_seq_dump_func_t)(void *, void *, int); -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; +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 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 hda_verb_ioctl { + u32 verb; + u32 res; }; -struct usbdevfs_iso_packet_desc { - unsigned int length; - unsigned int actual_length; - unsigned int status; +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, }; -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]; +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, }; -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]; +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 usbdevfs_ioctl32 { - s32 ifno; - s32 ioctl_code; - compat_caddr_t data; +struct _flow_keys_digest_data { + __be16 n_proto; + u8 ip_proto; + u8 padding; + __be32 ports; + __be32 src; + __be32 dst; }; -struct usbdevfs_ioctl { - int ifno; - int ioctl_code; - void __attribute__((btf_type_tag("user"))) *data; +struct batadv_unicast_packet { + __u8 packet_type; + __u8 version; + __u8 ttl; + __u8 ttvn; + __u8 dest[6]; }; -struct usbdevfs_setinterface { - unsigned int interface; - unsigned int altsetting; +struct tipc_basic_hdr { + __be32 w[4]; }; -struct usbdevfs_ctrltransfer { - __u8 bRequestType; - __u8 bRequest; - __u16 wValue; - __u16 wIndex; - __u16 wLength; - __u32 timeout; - void __attribute__((btf_type_tag("user"))) *data; +struct pppoe_tag { + __be16 tag_type; + __be16 tag_len; + char tag_data[0]; }; -struct usbdevfs_disconnectsignal { - unsigned int signr; - void __attribute__((btf_type_tag("user"))) *context; +struct pppoe_hdr { + __u8 type: 4; + __u8 ver: 4; + __u8 code; + __be16 sid; + __be16 length; + struct pppoe_tag tag[0]; }; -struct usbdevfs_bulktransfer32 { - compat_uint_t ep; - compat_uint_t len; - compat_uint_t timeout; - compat_caddr_t data; +struct flow_dissector_key_cfm { + u8 mdl_ver; + u8 opcode; }; -struct usbdevfs_bulktransfer { - unsigned int ep; - unsigned int len; - unsigned int timeout; - void __attribute__((btf_type_tag("user"))) *data; +struct nf_conn_labels { + unsigned long bits[2]; }; -struct usbdevfs_getdriver { - unsigned int interface; - char driver[256]; +struct flow_dissector_key_hash { + u32 hash; }; -struct usbdevfs_disconnect_claim { - unsigned int interface; - unsigned int flags; - char driver[256]; +struct clock_identity { + u8 id[8]; }; -struct usbdevfs_ctrltransfer32 { - u8 bRequestType; - u8 bRequest; - u16 wValue; - u16 wIndex; - u16 wLength; - u32 timeout; - compat_caddr_t data; +struct port_identity { + struct clock_identity clock_identity; + __be16 port_number; }; -struct usbdevfs_disconnectsignal32 { - compat_int_t signr; - compat_caddr_t context; -}; +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 usbdevfs_connectinfo { - unsigned int devnum; - unsigned char slow; +struct hsr_tag { + __be16 path_and_LSDU_size; + __be16 sequence_nr; + __be16 encap_proto; }; -struct usbdevfs_conninfo_ex { - __u32 size; - __u32 busnum; - __u32 devnum; - __u32 speed; - __u8 num_ports; - __u8 ports[7]; +struct flow_dissector_key_num_of_vlans { + u8 num_of_vlans; }; -struct usbdevfs_streams { - unsigned int num_streams; - unsigned int num_eps; - unsigned char eps[0]; +struct flow_keys_digest { + u8 data[16]; }; -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 psample_group { + struct list_head list; + struct net *net; + u32 group_num; + u32 refcount; + u32 seq; + struct callback_head rcu; }; -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 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; }; -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]; +enum qdisc_class_ops_flags { + QDISC_CLASS_OPS_DOIT_UNLOCKED = 1, }; -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]; +enum tcf_proto_ops_flags { + TCF_PROTO_OPS_DOIT_UNLOCKED = 1, }; -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 tcf_block_owner_item { + struct list_head list; + struct Qdisc *q; + enum flow_block_binder_type binder_type; }; -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 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; -}; +typedef void tcf_chain_head_change_t(struct tcf_proto *, void *); -struct vid_data { - int min; - int max; - int turbo; - int32_t ratio; +struct tcf_filter_chain_list_item { + struct list_head list; + tcf_chain_head_change_t *chain_head_change; + void *chain_head_change_priv; }; -struct sample { - int32_t core_avg_perf; - int32_t busy_scaled; - u64 aperf; - u64 mperf; - u64 tsc; - u64 time; +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 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 tcf_net { + spinlock_t idr_lock; + struct idr idr; }; -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 action_gate_entry { + u8 gate_state; + u32 interval; + s32 ipv; + s32 maxoctets; }; -struct global_params { - bool no_turbo; - bool turbo_disabled; - bool turbo_disabled_mf; - int max_perf_pct; - int min_perf_pct; +struct tcf_chain_info { + struct tcf_proto __attribute__((btf_type_tag("rcu"))) **pprev; + struct tcf_proto __attribute__((btf_type_tag("rcu"))) *next; }; -enum energy_perf_value_index___2 { - EPP_INDEX_DEFAULT = 0, - EPP_INDEX_PERFORMANCE = 1, - EPP_INDEX_BALANCE_PERFORMANCE = 2, - EPP_INDEX_BALANCE_POWERSAVE = 3, - EPP_INDEX_POWERSAVE = 4, +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; }; -enum acpi_preferred_pm_profiles { - PM_UNSPECIFIED = 0, - PM_DESKTOP = 1, - PM_MOBILE = 2, - PM_WORKSTATION = 3, - PM_ENTERPRISE_SERVER = 4, - PM_SOHO_SERVER = 5, - PM_APPLIANCE_PC = 6, - PM_PERFORMANCE_SERVER = 7, - PM_TABLET = 8, - NR_PM_PROFILES = 9, +struct tcf_qevent { + struct tcf_block *block; + struct tcf_block_ext_info info; + struct tcf_proto __attribute__((btf_type_tag("rcu"))) *filter_chain; }; enum { - PSS = 0, - PPC = 1, + ETHTOOL_STATS_ETH_PHY = 0, + ETHTOOL_STATS_ETH_MAC = 1, + ETHTOOL_STATS_ETH_CTRL = 2, + ETHTOOL_STATS_RMON = 3, + __ETHTOOL_STATS_CNT = 4, }; -struct hiddev_usage_ref { - __u32 report_type; - __u32 report_id; - __u32 field_index; - __u32 usage_index; - __u32 usage_code; - __s32 value; +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, }; -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; +enum { + ETHTOOL_A_STATS_GRP_UNSPEC = 0, + ETHTOOL_A_STATS_GRP_PAD = 1, + ETHTOOL_A_STATS_GRP_ID = 2, + ETHTOOL_A_STATS_GRP_SS_ID = 3, + ETHTOOL_A_STATS_GRP_STAT = 4, + ETHTOOL_A_STATS_GRP_HIST_RX = 5, + ETHTOOL_A_STATS_GRP_HIST_TX = 6, + ETHTOOL_A_STATS_GRP_HIST_BKT_LOW = 7, + ETHTOOL_A_STATS_GRP_HIST_BKT_HI = 8, + ETHTOOL_A_STATS_GRP_HIST_VAL = 9, + __ETHTOOL_A_STATS_GRP_CNT = 10, + ETHTOOL_A_STATS_GRP_MAX = 9, }; -struct hiddev_report_info { - __u32 report_type; - __u32 report_id; - __u32 num_fields; +enum { + ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR = 0, + __ETHTOOL_A_STATS_ETH_PHY_CNT = 1, + ETHTOOL_A_STATS_ETH_PHY_MAX = 0, }; -struct hiddev_event { - unsigned int hid; - int value; +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, }; -struct hiddev_collection_info { - __u32 index; - __u32 type; - __u32 usage; - __u32 level; +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, }; -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; +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 hiddev_devinfo { - __u32 bustype; - __u32 busnum; - __u32 devnum; - __u32 ifnum; - __s16 vendor; - __s16 product; - __s16 version; - __u32 num_applications; +struct stats_req_info { + struct ethnl_req_info base; + unsigned long stat_mask[1]; + enum ethtool_mac_stats_src src; }; -struct hiddev_usage_ref_multi { - struct hiddev_usage_ref uref; - __u32 num_values; - __s32 values[1024]; +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; }; -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); +struct tcp_metrics_block; -typedef u64 (*btf_bpf_sock_hash_update)(struct bpf_sock_ops_kern *, struct bpf_map *, void *, u64); +struct tcpm_hash_bucket { + struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *chain; +}; -typedef u64 (*btf_bpf_sk_redirect_hash)(struct sk_buff *, struct bpf_map *, void *, u64); +struct tcp_fastopen_metrics { + u16 mss; + u16 syn_loss: 10; + u16 try_exp: 2; + unsigned long last_syn_loss; + struct tcp_fastopen_cookie cookie; +}; -typedef u64 (*btf_bpf_msg_redirect_hash)(struct sk_msg *, struct bpf_map *, void *, u64); +struct tcp_metrics_block { + struct tcp_metrics_block __attribute__((btf_type_tag("rcu"))) *tcpm_next; + struct net *tcpm_net; + struct inetpeer_addr tcpm_saddr; + struct inetpeer_addr tcpm_daddr; + unsigned long tcpm_stamp; + u32 tcpm_lock; + u32 tcpm_vals[5]; + struct tcp_fastopen_metrics tcpm_fastopen; + struct callback_head callback_head; +}; -struct bpf_stab { - struct bpf_map map; - struct sock **sks; - struct sk_psock_progs progs; - raw_spinlock_t lock; - long: 64; - long: 64; +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, }; -struct bpf_shtab_bucket; +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, +}; -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: 64; +enum { + TCP_METRICS_CMD_UNSPEC = 0, + TCP_METRICS_CMD_GET = 1, + TCP_METRICS_CMD_DEL = 2, + __TCP_METRICS_CMD_MAX = 3, }; -struct bpf_shtab_bucket { - struct hlist_head head; - raw_spinlock_t lock; +enum { + UDP_BPF_IPV4 = 0, + UDP_BPF_IPV6 = 1, + UDP_BPF_NUM_PROTS = 2, }; -struct bpf_shtab_elem { - struct callback_head rcu; - u32 hash; - struct sock *sk; - struct hlist_node node; - u8 key[0]; +struct ac6_iter_state { + struct seq_net_private p; + struct net_device *dev; + struct inet6_dev *idev; }; -struct sock_map_seq_info { - struct bpf_map *map; - struct sock *sk; - u32 index; +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 bpf_iter__sockmap { - union { - struct bpf_iter_meta *meta; - }; - union { - struct bpf_map *map; - }; - union { - void *key; - }; - union { - struct sock *sk; - }; +struct ip6t_reject_info { + __u32 with; }; -struct sock_hash_seq_info { - struct bpf_map *map; - struct bpf_shtab *htab; - u32 bucket_id; +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]; }; +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); + +enum p9_fid_reftype { + P9_FID_REF_CREATE = 0, + P9_FID_REF_GET = 1, + P9_FID_REF_PUT = 2, + P9_FID_REF_DESTROY = 3, +} __attribute__((mode(byte))); + 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, + Opt_msize = 0, + Opt_trans = 1, + Opt_legacy = 2, + Opt_version = 3, + Opt_err___9 = 4, }; -struct eeprom_req_info { - struct ethnl_req_info base; - u32 offset; - u32 length; - u8 page; - u8 bank; - u8 i2c_address; +struct trace_event_raw_9p_client_req { + struct trace_entry ent; + void *clnt; + __u8 type; + __u32 tag; + char __data[0]; }; -struct eeprom_reply_data { - struct ethnl_reply_data base; - u32 length; - u8 *data; +struct trace_event_raw_9p_client_res { + struct trace_entry ent; + void *clnt; + __u8 type; + __u32 tag; + __u32 err; + char __data[0]; }; -struct masq_dev_work { - struct work_struct work; - struct net *net; - netns_tracker ns_tracker; - union nf_inet_addr addr; - int ifindex; - int (*iter)(struct nf_conn *, void *); +struct trace_event_raw_9p_protocol_dump { + struct trace_entry ent; + void *clnt; + __u8 type; + __u16 tag; + u32 __data_loc_line; + char __data[0]; }; -struct raw_frag_vec { - struct msghdr *msg; - union { - struct icmphdr icmph; - char c[1]; - } hdr; - int hlen; +struct trace_event_raw_9p_fid_ref { + struct trace_entry ent; + int fid; + int refcount; + __u8 type; + char __data[0]; }; -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 trace_event_data_offsets_9p_protocol_dump { + u32 line; }; +struct trace_event_data_offsets_9p_client_req {}; + +struct trace_event_data_offsets_9p_client_res {}; + +struct trace_event_data_offsets_9p_fid_ref {}; + #ifndef BPF_NO_PRESERVE_ACCESS_INDEX #pragma clang attribute pop #endif diff --git a/xtask/src/vmlinux.rs b/xtask/src/vmlinux.rs index 61b78221..8bdf34ec 100644 --- a/xtask/src/vmlinux.rs +++ b/xtask/src/vmlinux.rs @@ -195,6 +195,26 @@ fn generate_vmlinux_for_arch( make(options, arch, cross_compile, builddir, "defconfig")?; make(options, arch, cross_compile, builddir, "scripts")?; + // Disable GDB scripts, we don't need them and they might mangle the debug + // info configuration. + disable_config(builddir, "CONFIG_GDB_SCRIPTS")?; + + // Enable all cgroup types. + enable_config(builddir, "CONFIG_CPUSETS")?; + enable_config(builddir, "CONFIG_CGROUP_SCHED")?; + enable_config(builddir, "CONFIG_CGROUP_CPUACCT")?; + enable_config(builddir, "CONFIG_BLK_CGROUP")?; + enable_config(builddir, "CONFIG_MEMCG")?; + enable_config(builddir, "CONFIG_CGROUP_DEVICE")?; + enable_config(builddir, "CONFIG_CGROUP_FREEZER")?; + enable_config(builddir, "CONFIG_CGROUP_NET_CLASSID")?; + enable_config(builddir, "CONFIG_CGROUP_PERF")?; + enable_config(builddir, "CONFIG_CGROUP_NET_PRIO")?; + enable_config(builddir, "CONFIG_CGROUP_HUGETLB")?; + enable_config(builddir, "CONFIG_CGROUP_PIDS")?; + enable_config(builddir, "CONFIG_CGROUP_RDMA")?; + enable_config(builddir, "CONFIG_CGROUP_MISC")?; + // Enable BTF and all BPF features. Even though some of these might not // seem directly related from name, they are (DWARF is needed for BTF, // page pool stats are related to XDP sockets). @@ -248,7 +268,6 @@ fn generate_vmlinux_for_arch( disable_config(builddir, "CONFIG_DEBUG_INFO_COMPRESSED_ZLIB")?; disable_config(builddir, "CONFIG_DEBUG_INFO_SPLIT")?; disable_config(builddir, "CONFIG_MODULE_ALLOW_BTF_MISMATCH")?; - disable_config(builddir, "CONFIG_GDB_SCRIPTS")?; enable_config(builddir, "CONFIG_PROBE_EVENTS_BTF_ARGS")?; enable_config(builddir, "CONFIG_BPF_LSM")?; enable_config(builddir, "CONFIG_DEBUG_INFO_BTF")?;